diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/__pycache__/classification_graphs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/__pycache__/classification_graphs.cpython-310.pyc deleted file mode 100644 index 0b78b01d3ce56420591400f31e0322b87b7ed096..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/__pycache__/classification_graphs.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/__pycache__/classification_graphs_binary.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/__pycache__/classification_graphs_binary.cpython-310.pyc deleted file mode 100644 index 95d93edaddb2897511501ae3ae9fe50ff125d34e..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/__pycache__/classification_graphs_binary.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/__pycache__/get_max_tokens.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/__pycache__/get_max_tokens.cpython-310.pyc deleted file mode 100644 index 11530b531676ecc49d612ea394bd34870c8c7377..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/__pycache__/get_max_tokens.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/checkpoints/tokenizer.json b/emissary-ml/llm-scripts/fine-tuning/llama3/checkpoints/tokenizer.json deleted file mode 100644 index 641df5beeeaf50b700ed2d53895beb204c164e78..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/checkpoints/tokenizer.json +++ /dev/null @@ -1,277199 +0,0 @@ -{ - "version": "1.0", - "truncation": null, - "padding": null, - "added_tokens": [ - { - "id": 0, - "content": "", - "single_word": false, - "lstrip": false, - "rstrip": false, - "normalized": false, - "special": true - }, - { - "id": 1, - "content": "", - "single_word": false, - "lstrip": false, - "rstrip": false, - "normalized": false, - "special": true - }, - { - "id": 2, - "content": "", - "single_word": false, - "lstrip": false, - "rstrip": false, - "normalized": false, - "special": true - } - ], - "normalizer": { - "type": "Sequence", - "normalizers": [ - { - "type": "Prepend", - "prepend": "▁" - }, - { - "type": "Replace", - "pattern": { - "String": " " - }, - "content": "▁" - } - ] - }, - "pre_tokenizer": null, - "post_processor": { - "type": "TemplateProcessing", - "single": [ - { - "SpecialToken": { - "id": "", - "type_id": 0 - } - }, - { - "Sequence": { - "id": "A", - "type_id": 0 - } - } - ], - "pair": [ - { - "SpecialToken": { - "id": "", - "type_id": 0 - } - }, - { - "Sequence": { - "id": "A", - "type_id": 0 - } - }, - { - "SpecialToken": { - "id": "", - "type_id": 1 - } - }, - { - "Sequence": { - "id": "B", - "type_id": 1 - } - } - ], - "special_tokens": { - "": { - "id": "", - "ids": [ - 1 - ], - "tokens": [ - "" - ] - } - } - }, - "decoder": { - "type": "Sequence", - "decoders": [ - { - "type": "Replace", - "pattern": { - "String": "▁" - }, - "content": " " - }, - { - "type": "ByteFallback" - }, - { - "type": "Fuse" - }, - { - "type": "Strip", - "content": " ", - "start": 1, - "stop": 0 - } - ] - }, - "model": { - "type": "BPE", - "dropout": null, - "unk_token": "", - "continuing_subword_prefix": null, - "end_of_word_suffix": null, - "fuse_unk": true, - "byte_fallback": true, - "ignore_merges": false, - "vocab": { - "": 0, - "": 1, - "": 2, - "<0x00>": 3, - "<0x01>": 4, - "<0x02>": 5, - "<0x03>": 6, - "<0x04>": 7, - "<0x05>": 8, - "<0x06>": 9, - "<0x07>": 10, - "<0x08>": 11, - "<0x09>": 12, - "<0x0A>": 13, - "<0x0B>": 14, - "<0x0C>": 15, - "<0x0D>": 16, - "<0x0E>": 17, - "<0x0F>": 18, - "<0x10>": 19, - "<0x11>": 20, - "<0x12>": 21, - "<0x13>": 22, - "<0x14>": 23, - "<0x15>": 24, - "<0x16>": 25, - "<0x17>": 26, - "<0x18>": 27, - "<0x19>": 28, - "<0x1A>": 29, - "<0x1B>": 30, - "<0x1C>": 31, - "<0x1D>": 32, - "<0x1E>": 33, - "<0x1F>": 34, - "<0x20>": 35, - "<0x21>": 36, - "<0x22>": 37, - "<0x23>": 38, - "<0x24>": 39, - "<0x25>": 40, - "<0x26>": 41, - "<0x27>": 42, - "<0x28>": 43, - "<0x29>": 44, - "<0x2A>": 45, - "<0x2B>": 46, - "<0x2C>": 47, - "<0x2D>": 48, - "<0x2E>": 49, - "<0x2F>": 50, - "<0x30>": 51, - "<0x31>": 52, - "<0x32>": 53, - "<0x33>": 54, - "<0x34>": 55, - "<0x35>": 56, - "<0x36>": 57, - "<0x37>": 58, - "<0x38>": 59, - "<0x39>": 60, - "<0x3A>": 61, - "<0x3B>": 62, - "<0x3C>": 63, - "<0x3D>": 64, - "<0x3E>": 65, - "<0x3F>": 66, - "<0x40>": 67, - "<0x41>": 68, - "<0x42>": 69, - "<0x43>": 70, - "<0x44>": 71, - "<0x45>": 72, - "<0x46>": 73, - "<0x47>": 74, - "<0x48>": 75, - "<0x49>": 76, - "<0x4A>": 77, - "<0x4B>": 78, - "<0x4C>": 79, - "<0x4D>": 80, - "<0x4E>": 81, - "<0x4F>": 82, - "<0x50>": 83, - "<0x51>": 84, - "<0x52>": 85, - "<0x53>": 86, - "<0x54>": 87, - "<0x55>": 88, - "<0x56>": 89, - "<0x57>": 90, - "<0x58>": 91, - "<0x59>": 92, - "<0x5A>": 93, - "<0x5B>": 94, - "<0x5C>": 95, - "<0x5D>": 96, - "<0x5E>": 97, - "<0x5F>": 98, - "<0x60>": 99, - "<0x61>": 100, - "<0x62>": 101, - "<0x63>": 102, - "<0x64>": 103, - "<0x65>": 104, - "<0x66>": 105, - "<0x67>": 106, - "<0x68>": 107, - "<0x69>": 108, - "<0x6A>": 109, - "<0x6B>": 110, - "<0x6C>": 111, - "<0x6D>": 112, - "<0x6E>": 113, - "<0x6F>": 114, - "<0x70>": 115, - "<0x71>": 116, - "<0x72>": 117, - "<0x73>": 118, - "<0x74>": 119, - "<0x75>": 120, - "<0x76>": 121, - "<0x77>": 122, - "<0x78>": 123, - "<0x79>": 124, - "<0x7A>": 125, - "<0x7B>": 126, - "<0x7C>": 127, - "<0x7D>": 128, - "<0x7E>": 129, - "<0x7F>": 130, - "<0x80>": 131, - "<0x81>": 132, - "<0x82>": 133, - "<0x83>": 134, - "<0x84>": 135, - "<0x85>": 136, - "<0x86>": 137, - "<0x87>": 138, - "<0x88>": 139, - "<0x89>": 140, - "<0x8A>": 141, - "<0x8B>": 142, - "<0x8C>": 143, - "<0x8D>": 144, - "<0x8E>": 145, - "<0x8F>": 146, - "<0x90>": 147, - "<0x91>": 148, - "<0x92>": 149, - "<0x93>": 150, - "<0x94>": 151, - "<0x95>": 152, - "<0x96>": 153, - "<0x97>": 154, - "<0x98>": 155, - "<0x99>": 156, - "<0x9A>": 157, - "<0x9B>": 158, - "<0x9C>": 159, - "<0x9D>": 160, - "<0x9E>": 161, - "<0x9F>": 162, - "<0xA0>": 163, - "<0xA1>": 164, - "<0xA2>": 165, - "<0xA3>": 166, - "<0xA4>": 167, - "<0xA5>": 168, - "<0xA6>": 169, - "<0xA7>": 170, - "<0xA8>": 171, - "<0xA9>": 172, - "<0xAA>": 173, - "<0xAB>": 174, - "<0xAC>": 175, - "<0xAD>": 176, - "<0xAE>": 177, - "<0xAF>": 178, - "<0xB0>": 179, - "<0xB1>": 180, - "<0xB2>": 181, - "<0xB3>": 182, - "<0xB4>": 183, - "<0xB5>": 184, - "<0xB6>": 185, - "<0xB7>": 186, - "<0xB8>": 187, - "<0xB9>": 188, - "<0xBA>": 189, - "<0xBB>": 190, - "<0xBC>": 191, - "<0xBD>": 192, - "<0xBE>": 193, - "<0xBF>": 194, - "<0xC0>": 195, - "<0xC1>": 196, - "<0xC2>": 197, - "<0xC3>": 198, - "<0xC4>": 199, - "<0xC5>": 200, - "<0xC6>": 201, - "<0xC7>": 202, - "<0xC8>": 203, - "<0xC9>": 204, - "<0xCA>": 205, - "<0xCB>": 206, - "<0xCC>": 207, - "<0xCD>": 208, - "<0xCE>": 209, - "<0xCF>": 210, - "<0xD0>": 211, - "<0xD1>": 212, - "<0xD2>": 213, - "<0xD3>": 214, - "<0xD4>": 215, - "<0xD5>": 216, - "<0xD6>": 217, - "<0xD7>": 218, - "<0xD8>": 219, - "<0xD9>": 220, - "<0xDA>": 221, - "<0xDB>": 222, - "<0xDC>": 223, - "<0xDD>": 224, - "<0xDE>": 225, - "<0xDF>": 226, - "<0xE0>": 227, - "<0xE1>": 228, - "<0xE2>": 229, - "<0xE3>": 230, - "<0xE4>": 231, - "<0xE5>": 232, - "<0xE6>": 233, - "<0xE7>": 234, - "<0xE8>": 235, - "<0xE9>": 236, - "<0xEA>": 237, - "<0xEB>": 238, - "<0xEC>": 239, - "<0xED>": 240, - "<0xEE>": 241, - "<0xEF>": 242, - "<0xF0>": 243, - "<0xF1>": 244, - "<0xF2>": 245, - "<0xF3>": 246, - "<0xF4>": 247, - "<0xF5>": 248, - "<0xF6>": 249, - "<0xF7>": 250, - "<0xF8>": 251, - "<0xF9>": 252, - "<0xFA>": 253, - "<0xFB>": 254, - "<0xFC>": 255, - "<0xFD>": 256, - "<0xFE>": 257, - "<0xFF>": 258, - "▁▁": 259, - "▁t": 260, - "er": 261, - "in": 262, - "▁a": 263, - "en": 264, - "on": 265, - "▁th": 266, - "es": 267, - "▁▁▁▁": 268, - "▁s": 269, - "▁d": 270, - "at": 271, - "or": 272, - "an": 273, - "▁c": 274, - "is": 275, - "re": 276, - "it": 277, - "▁the": 278, - "ar": 279, - "le": 280, - "▁w": 281, - "▁p": 282, - "ou": 283, - "al": 284, - "▁f": 285, - "▁m": 286, - "ed": 287, - "▁o": 288, - "▁b": 289, - "om": 290, - "ion": 291, - "ing": 292, - "ic": 293, - "as": 294, - "el": 295, - "ent": 296, - "▁in": 297, - "▁h": 298, - "nd": 299, - "et": 300, - "▁l": 301, - "▁n": 302, - "st": 303, - "▁to": 304, - "ch": 305, - "▁I": 306, - "ro": 307, - "▁▁▁▁▁▁▁▁": 308, - "il": 309, - "▁of": 310, - "de": 311, - "ct": 312, - "▁(": 313, - "am": 314, - "▁C": 315, - "▁de": 316, - "▁S": 317, - "▁u": 318, - "▁A": 319, - "▁\\": 320, - "▁e": 321, - "▁and": 322, - "▁T": 323, - "ol": 324, - "▁v": 325, - "im": 326, - "ot": 327, - "ad": 328, - "ut": 329, - "▁g": 330, - "em": 331, - "ur": 332, - "id": 333, - "▁*": 334, - "ig": 335, - "ra": 336, - "▁re": 337, - "▁is": 338, - "qu": 339, - "ow": 340, - "▁M": 341, - "est": 342, - "▁y": 343, - "se": 344, - "ve": 345, - "ce": 346, - "ie": 347, - "un": 348, - "▁P": 349, - "▁B": 350, - "ag": 351, - "ul": 352, - "▁=": 353, - "he": 354, - "end": 355, - "ode": 356, - "ter": 357, - "ment": 358, - "os": 359, - "▁D": 360, - "if": 361, - "ation": 362, - "▁for": 363, - "▁r": 364, - "▁L": 365, - "▁you": 366, - "▁be": 367, - "ly": 368, - "ver": 369, - "ab": 370, - "te": 371, - "▁it": 372, - "▁on": 373, - "ri": 374, - "us": 375, - "▁\"": 376, - "▁wh": 377, - "▁con": 378, - "▁H": 379, - "▁st": 380, - "ir": 381, - "▁E": 382, - "▁F": 383, - "ck": 384, - "▁an": 385, - "th": 386, - "eg": 387, - "ay": 388, - "ith": 389, - "▁R": 390, - "ist": 391, - "and": 392, - "▁that": 393, - "▁al": 394, - "▁$": 395, - "▁#": 396, - "od": 397, - "um": 398, - "▁W": 399, - "ht": 400, - "code": 401, - "▁G": 402, - "ate": 403, - "ess": 404, - "▁N": 405, - "ere": 406, - "pp": 407, - "▁as": 408, - "▁se": 409, - "▁pro": 410, - "▁with": 411, - "pe": 412, - "▁k": 413, - "ers": 414, - "pt": 415, - ");": 416, - "lo": 417, - "▁▁▁▁▁": 418, - "▁com": 419, - "ame": 420, - "▁`": 421, - "▁Com": 422, - "ia": 423, - "ant": 424, - "▁la": 425, - "▁{": 426, - "▁en": 427, - "ction": 428, - "▁ex": 429, - "ld": 430, - "ub": 431, - "▁j": 432, - "la": 433, - "ue": 434, - "▁J": 435, - "ich": 436, - "▁do": 437, - "▁O": 438, - "▁qu": 439, - "iv": 440, - "ort": 441, - "art": 442, - "▁un": 443, - "▁##": 444, - "▁this": 445, - "ke": 446, - "▁ha": 447, - "▁-": 448, - "out": 449, - "▁The": 450, - "▁not": 451, - "▁ne": 452, - "ill": 453, - "▁le": 454, - "ci": 455, - "rom": 456, - "ine": 457, - "//": 458, - "op": 459, - "egin": 460, - "▁Comment": 461, - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁": 462, - "begin": 463, - "ст": 464, - "ass": 465, - "iz": 466, - ").": 467, - "og": 468, - "▁п": 469, - "▁or": 470, - "▁was": 471, - "▁at": 472, - "our": 473, - "▁i": 474, - "ain": 475, - "▁K": 476, - "на": 477, - "▁V": 478, - "ge": 479, - "▁su": 480, - "ap": 481, - "age": 482, - "ould": 483, - "ne": 484, - "av": 485, - "xt": 486, - "ore": 487, - "ile": 488, - "--": 489, - "▁в": 490, - "▁by": 491, - "li": 492, - "ath": 493, - "ра": 494, - "ber": 495, - "ach": 496, - "all": 497, - "▁Th": 498, - "ult": 499, - "▁}": 500, - "▁U": 501, - "▁us": 502, - "▁z": 503, - "ust": 504, - "▁have": 505, - "lic": 506, - "ни": 507, - "▁can": 508, - "tr": 509, - "com": 510, - "),": 511, - "▁In": 512, - "ind": 513, - "ell": 514, - "▁from": 515, - "ов": 516, - "to": 517, - "▁[": 518, - "able": 519, - "ost": 520, - "▁ch": 521, - "ect": 522, - "ight": 523, - "int": 524, - "▁'": 525, - "▁are": 526, - "▁im": 527, - "▁sh": 528, - "▁<": 529, - "▁An": 530, - "▁с": 531, - "ata": 532, - "ire": 533, - "▁tr": 534, - "con": 535, - "ord": 536, - "ity": 537, - "ard": 538, - "▁▁▁▁▁▁": 539, - "▁he": 540, - "▁but": 541, - "oc": 542, - "=\"": 543, - "▁pr": 544, - "ure": 545, - "per": 546, - "ack": 547, - "ork": 548, - "ong": 549, - "ans": 550, - "ко": 551, - "ple": 552, - "▁des": 553, - "ok": 554, - "orm": 555, - "wer": 556, - "ak": 557, - "pr": 558, - "ase": 559, - "▁el": 560, - "ph": 561, - "ac": 562, - "▁und": 563, - "▁ar": 564, - "▁if": 565, - "ud": 566, - "ps": 567, - "ite": 568, - "ble": 569, - "но": 570, - "fer": 571, - "pl": 572, - "ive": 573, - "ang": 574, - "ens": 575, - "ро": 576, - "▁so": 577, - "so": 578, - "ast": 579, - "()": 580, - "swer": 581, - "ru": 582, - "ies": 583, - "▁:": 584, - "au": 585, - "ov": 586, - "ре": 587, - "го": 588, - "▁der": 589, - "▁my": 590, - "▁we": 591, - "▁me": 592, - "nt": 593, - "▁ad": 594, - "urn": 595, - "▁your": 596, - "://": 597, - "are": 598, - "▁all": 599, - "ff": 600, - "io": 601, - "estion": 602, - "ime": 603, - "▁er": 604, - "lass": 605, - "▁и": 606, - "▁which": 607, - "ome": 608, - "ont": 609, - "▁par": 610, - "▁ma": 611, - "▁Y": 612, - "\",": 613, - "▁о": 614, - "ft": 615, - "ial": 616, - "cc": 617, - "ound": 618, - "▁li": 619, - "▁res": 620, - "eth": 621, - "ject": 622, - "▁app": 623, - "▁St": 624, - "ice": 625, - "▁am": 626, - "act": 627, - "▁del": 628, - "gr": 629, - "ated": 630, - "ier": 631, - "▁▁▁▁▁▁▁▁▁▁▁▁": 632, - "▁ab": 633, - "▁et": 634, - "ally": 635, - "..": 636, - "port": 637, - "ik": 638, - "▁per": 639, - "▁cont": 640, - "ри": 641, - "ка": 642, - "ser": 643, - "ли": 644, - "ll": 645, - "iew": 646, - "ign": 647, - "_{": 648, - "put": 649, - "one": 650, - "unction": 651, - "▁di": 652, - "ary": 653, - "ition": 654, - "ma": 655, - "ен": 656, - "get": 657, - "▁lo": 658, - "▁val": 659, - "▁Q": 660, - "ran": 661, - "▁д": 662, - "ence": 663, - "▁work": 664, - "▁на": 665, - "ip": 666, - "item": 667, - "ype": 668, - "▁&": 669, - "▁his": 670, - "▁use": 671, - "der": 672, - "▁Answer": 673, - "▁will": 674, - "ize": 675, - "та": 676, - "low": 677, - "▁Ch": 678, - "▁get": 679, - "ide": 680, - "ous": 681, - "ink": 682, - "ption": 683, - "ла": 684, - "turn": 685, - "ung": 686, - "ec": 687, - "ug": 688, - "form": 689, - "res": 690, - "htt": 691, - "oug": 692, - "ль": 693, - "▁no": 694, - "cl": 695, - "▁ro": 696, - "▁one": 697, - "tt": 698, - "cri": 699, - "du": 700, - "▁up": 701, - "то": 702, - "(\"": 703, - "▁ob": 704, - "we": 705, - "ory": 706, - "▁est": 707, - "ery": 708, - "iel": 709, - "str": 710, - "ob": 711, - "▁que": 712, - "ian": 713, - "▁out": 714, - "▁pl": 715, - "▁new": 716, - "ки": 717, - "▁+": 718, - "ry": 719, - "oth": 720, - "ther": 721, - "▁var": 722, - "▁would": 723, - "▁ser": 724, - "tern": 725, - "text": 726, - "▁there": 727, - "ish": 728, - "ror": 729, - "те": 730, - "▁set": 731, - "▁@": 732, - "▁по": 733, - "▁te": 734, - "ex": 735, - "▁return": 736, - "ail": 737, - "▁any": 738, - "▁It": 739, - "▁function": 740, - "{\\": 741, - "',": 742, - "és": 743, - "ale": 744, - "ан": 745, - "▁when": 746, - "ib": 747, - "▁go": 748, - "ance": 749, - "▁had": 750, - "▁Qu": 751, - "▁comp": 752, - "ле": 753, - "▁з": 754, - "math": 755, - "▁has": 756, - "▁м": 757, - "▁pre": 758, - "ener": 759, - "▁part": 760, - "elf": 761, - "▁die": 762, - "▁like": 763, - "ray": 764, - "irst": 765, - "▁dis": 766, - "▁man": 767, - "rit": 768, - "▁then": 769, - "▁class": 770, - "pro": 771, - "▁po": 772, - "▁using": 773, - "eb": 774, - "▁code": 775, - "own": 776, - "▁some": 777, - "ces": 778, - "▁$\\": 779, - "ер": 780, - "lect": 781, - "▁au": 782, - "isch": 783, - "▁col": 784, - "▁–": 785, - "up": 786, - "ons": 787, - "▁add": 788, - "ild": 789, - "iss": 790, - "val": 791, - "ount": 792, - "les": 793, - "vent": 794, - "▁▁▁▁▁▁▁▁▁▁▁▁▁": 795, - "▁Z": 796, - "In": 797, - "row": 798, - "ear": 799, - "ations": 800, - "ah": 801, - "que": 802, - "ublic": 803, - "ank": 804, - "▁sp": 805, - "▁Wh": 806, - "----": 807, - "sk": 808, - "ew": 809, - "ags": 810, - "ти": 811, - "ann": 812, - "▁—": 813, - "ert": 814, - "ace": 815, - "sch": 816, - "▁need": 817, - "▁à": 818, - "ien": 819, - "ough": 820, - "не": 821, - "▁def": 822, - "ij": 823, - "ern": 824, - "▁what": 825, - "▁Ar": 826, - "wo": 827, - "ml": 828, - "": 976, - "▁fil": 977, - "name": 978, - "inal": 979, - "▁il": 980, - "ample": 981, - "▁way": 982, - "ica": 983, - "во": 984, - "cess": 985, - "itt": 986, - "uch": 987, - "▁where": 988, - "ми": 989, - "org": 990, - "https": 991, - "▁vo": 992, - "ient": 993, - "ove": 994, - "▁value": 995, - "eng": 996, - "▁La": 997, - "^{": 998, - "ref": 999, - "ied": 1000, - "ER": 1001, - "▁stat": 1002, - "fig": 1003, - "me": 1004, - "▁von": 1005, - "▁inter": 1006, - "roid": 1007, - "ater": 1008, - "▁their": 1009, - "▁bet": 1010, - "▁ein": 1011, - "}\\": 1012, - "\">": 1013, - "▁sub": 1014, - "▁op": 1015, - "▁don": 1016, - "ty": 1017, - "▁try": 1018, - "▁Pro": 1019, - "▁tra": 1020, - "▁same": 1021, - "ep": 1022, - "▁two": 1023, - "▁name": 1024, - "old": 1025, - "let": 1026, - "▁sim": 1027, - "sp": 1028, - "▁av": 1029, - "bre": 1030, - "blem": 1031, - "ey": 1032, - "▁could": 1033, - "▁cor": 1034, - "▁acc": 1035, - "ays": 1036, - "cre": 1037, - "urr": 1038, - "si": 1039, - "▁const": 1040, - "ues": 1041, - "}$": 1042, - "View": 1043, - "▁act": 1044, - "▁bo": 1045, - "▁ко": 1046, - "▁som": 1047, - "▁about": 1048, - "land": 1049, - "mer": 1050, - "▁list": 1051, - "cal": 1052, - "▁import": 1053, - "col": 1054, - "▁na": 1055, - "na": 1056, - "::": 1057, - "▁who": 1058, - "▁error": 1059, - "▁X": 1060, - "ator": 1061, - "ext": 1062, - "▁been": 1063, - "ér": 1064, - "▁run": 1065, - "pos": 1066, - "▁cl": 1067, - "**": 1068, - "▁К": 1069, - "ular": 1070, - "ause": 1071, - "▁reg": 1072, - "▁know": 1073, - "▁see": 1074, - "▁him": 1075, - "ning": 1076, - "▁за": 1077, - "ates": 1078, - "fore": 1079, - "ions": 1080, - "▁hel": 1081, - "ute": 1082, - "▁rem": 1083, - "▁го": 1084, - "▁Mar": 1085, - "ру": 1086, - "vice": 1087, - "irect": 1088, - "ner": 1089, - "▁under": 1090, - "rib": 1091, - "hr": 1092, - "че": 1093, - "▁As": 1094, - "▁end": 1095, - "ember": 1096, - "▁а": 1097, - "▁att": 1098, - "ina": 1099, - "son": 1100, - "▁follow": 1101, - "▁Sch": 1102, - "pect": 1103, - "▁rel": 1104, - "▁So": 1105, - "▁look": 1106, - "abel": 1107, - "▁problem": 1108, - "▁van": 1109, - "strong": 1110, - "co": 1111, - "pon": 1112, - "ca": 1113, - "ada": 1114, - "\":": 1115, - "cond": 1116, - "amb": 1117, - "},": 1118, - "quest": 1119, - "▁aut": 1120, - "▁result": 1121, - "▁may": 1122, - "Re": 1123, - "http": 1124, - "):": 1125, - "▁And": 1126, - "red": 1127, - "▁How": 1128, - "po": 1129, - "ско": 1130, - "att": 1131, - "oup": 1132, - "ced": 1133, - "▁type": 1134, - "▁than": 1135, - "▁cons": 1136, - "uf": 1137, - "ци": 1138, - "▁question": 1139, - "raph": 1140, - "igh": 1141, - "▁М": 1142, - "▁htt": 1143, - "ins": 1144, - "den": 1145, - "▁da": 1146, - "▁ver": 1147, - "oh": 1148, - "▁=>": 1149, - "riv": 1150, - "ude": 1151, - "▁For": 1152, - "▁ra": 1153, - "frac": 1154, - "ма": 1155, - "▁after": 1156, - "}{": 1157, - "▁method": 1158, - "\")": 1159, - "amp": 1160, - "ash": 1161, - "▁rec": 1162, - "▁differ": 1163, - "ON": 1164, - "ax": 1165, - "ament": 1166, - "ource": 1167, - "Con": 1168, - "its": 1169, - "Name": 1170, - "man": 1171, - "▁bec": 1172, - "che": 1173, - "▁En": 1174, - "aj": 1175, - "▁gener": 1176, - "IN": 1177, - "▁id": 1178, - "ages": 1179, - "▁loc": 1180, - "fo": 1181, - "br": 1182, - "▁she": 1183, - "Pro": 1184, - "▁una": 1185, - "▁к": 1186, - "eta": 1187, - "log": 1188, - "olog": 1189, - "▁sur": 1190, - "arg": 1191, - "▁--": 1192, - "kt": 1193, - "(\\": 1194, - "min": 1195, - "▁line": 1196, - "▁vari": 1197, - "ся": 1198, - "ics": 1199, - "ня": 1200, - "very": 1201, - "add": 1202, - "▁object": 1203, - "Id": 1204, - "▁But": 1205, - "▁case": 1206, - "▁make": 1207, - "▁cal": 1208, - "▁pass": 1209, - "сь": 1210, - "ession": 1211, - "net": 1212, - ".\"": 1213, - "▁г": 1214, - "är": 1215, - "де": 1216, - "no": 1217, - "ating": 1218, - "ato": 1219, - "line": 1220, - "ви": 1221, - "▁Ex": 1222, - "▁ass": 1223, - "▁vers": 1224, - "ля": 1225, - "▁ed": 1226, - "umn": 1227, - "other": 1228, - "ста": 1229, - "ative": 1230, - "String": 1231, - "▁los": 1232, - "wn": 1233, - "▁answer": 1234, - "▁let": 1235, - "▁pe": 1236, - "ents": 1237, - "▁fe": 1238, - "ince": 1239, - "ni": 1240, - "ider": 1241, - "ows": 1242, - "▁test": 1243, - "▁here": 1244, - "roll": 1245, - "▁call": 1246, - "ruct": 1247, - "▁pol": 1248, - "ait": 1249, - "▁back": 1250, - "ho": 1251, - "Ex": 1252, - "ress": 1253, - "ST": 1254, - "ried": 1255, - "date": 1256, - "ет": 1257, - "▁did": 1258, - "ting": 1259, - "▁El": 1260, - "▁dem": 1261, - ")$": 1262, - "ова": 1263, - "urrent": 1264, - "lace": 1265, - "right": 1266, - "ren": 1267, - "по": 1268, - "▁each": 1269, - "cy": 1270, - "block": 1271, - "data": 1272, - "▁%": 1273, - "▁ac": 1274, - "▁==": 1275, - "ür": 1276, - "▁por": 1277, - "ask": 1278, - "arch": 1279, - "ames": 1280, - "▁Con": 1281, - "ча": 1282, - "▁off": 1283, - "▁find": 1284, - "cont": 1285, - "▁now": 1286, - "work": 1287, - "ational": 1288, - "dd": 1289, - "ción": 1290, - "▁А": 1291, - "ault": 1292, - "List": 1293, - "▁ext": 1294, - "urs": 1295, - "ake": 1296, - "ule": 1297, - "▁point": 1298, - "AT": 1299, - "aut": 1300, - "▁trans": 1301, - "▁co": 1302, - "▁read": 1303, - "▁used": 1304, - "ски": 1305, - "ari": 1306, - "LE": 1307, - "eter": 1308, - "oun": 1309, - "ever": 1310, - "self": 1311, - "ined": 1312, - "idth": 1313, - "ux": 1314, - "js": 1315, - "▁such": 1316, - "▁Is": 1317, - "ée": 1318, - "ful": 1319, - "▁dist": 1320, - "▁bu": 1321, - "itemize": 1322, - "Cont": 1323, - "je": 1324, - "си": 1325, - "▁prov": 1326, - "bb": 1327, - "ward": 1328, - "esent": 1329, - "erson": 1330, - "anks": 1331, - "wh": 1332, - "not": 1333, - "▁We": 1334, - "ka": 1335, - "rop": 1336, - "atur": 1337, - "als": 1338, - "▁bel": 1339, - "ör": 1340, - "fr": 1341, - "▁example": 1342, - "▁incl": 1343, - "amil": 1344, - "▁ра": 1345, - "▁“": 1346, - "▁string": 1347, - "▁think": 1348, - "Th": 1349, - "▁tem": 1350, - "ave": 1351, - "▁Fran": 1352, - "▁number": 1353, - "▁si": 1354, - "imes": 1355, - "tem": 1356, - "my": 1357, - "ler": 1358, - "load": 1359, - "==": 1360, - "▁hand": 1361, - "za": 1362, - "▁because": 1363, - "▁sch": 1364, - "vo": 1365, - "this": 1366, - "ID": 1367, - "ão": 1368, - "▁start": 1369, - "▁war": 1370, - "▁help": 1371, - "ts": 1372, - "▁char": 1373, - "▁ph": 1374, - "▁min": 1375, - "til": 1376, - "rite": 1377, - "--------": 1378, - "els": 1379, - "▁mit": 1380, - "edia": 1381, - "ку": 1382, - "▁Sh": 1383, - "any": 1384, - "];": 1385, - "▁Б": 1386, - "ique": 1387, - "da": 1388, - "ef": 1389, - "dex": 1390, - "▁produ": 1391, - "▁Н": 1392, - "gram": 1393, - "▁Or": 1394, - "▁gre": 1395, - "quote": 1396, - "leg": 1397, - "orn": 1398, - "▁ind": 1399, - "▁post": 1400, - "▁dep": 1401, - "],": 1402, - "vi": 1403, - "▁user": 1404, - "▁>": 1405, - "lick": 1406, - "▁very": 1407, - "ething": 1408, - "▁array": 1409, - "▁gu": 1410, - "▁dur": 1411, - "`.": 1412, - "ть": 1413, - "lication": 1414, - "сти": 1415, - "ek": 1416, - "ico": 1417, - "▁dat": 1418, - "ор": 1419, - "html": 1420, - "ione": 1421, - "▁different": 1422, - "▁check": 1423, - "▁fr": 1424, - "▁Er": 1425, - "▁text": 1426, - "ні": 1427, - "icht": 1428, - "stack": 1429, - "EN": 1430, - "rag": 1431, - "▁every": 1432, - "Ar": 1433, - "▁before": 1434, - "alse": 1435, - "▁fin": 1436, - "▁dé": 1437, - "▁these": 1438, - "▁det": 1439, - "Val": 1440, - "ception": 1441, - "▁android": 1442, - "blockquote": 1443, - "▁je": 1444, - "file": 1445, - "ats": 1446, - "▁до": 1447, - "essage": 1448, - "▁again": 1449, - "aw": 1450, - "Ch": 1451, - "ween": 1452, - "▁Д": 1453, - "for": 1454, - "cial": 1455, - "play": 1456, - "pre": 1457, - "ida": 1458, - "▁Par": 1459, - "ny": 1460, - "ract": 1461, - "▁supp": 1462, - "ased": 1463, - "lection": 1464, - "▁dans": 1465, - "air": 1466, - "rol": 1467, - "▁thr": 1468, - "Data": 1469, - "lich": 1470, - "▁про": 1471, - "▁long": 1472, - "▁second": 1473, - "ually": 1474, - "ines": 1475, - "▁found": 1476, - "ength": 1477, - "yp": 1478, - "ead": 1479, - "▁log": 1480, - "ui": 1481, - "new": 1482, - "▁Р": 1483, - "go": 1484, - "aus": 1485, - "ody": 1486, - "▁son": 1487, - "ме": 1488, - "ero": 1489, - "ved": 1490, - "sub": 1491, - "▁right": 1492, - "view": 1493, - "▁following": 1494, - "')": 1495, - "\");": 1496, - "▁said": 1497, - "же": 1498, - "чи": 1499, - "ту": 1500, - "ott": 1501, - "се": 1502, - "ars": 1503, - "$.": 1504, - "gg": 1505, - "▁br": 1506, - "ool": 1507, - "yle": 1508, - "use": 1509, - "▁show": 1510, - "lease": 1511, - "cia": 1512, - "▁direct": 1513, - "doc": 1514, - "ар": 1515, - "ms": 1516, - "▁giv": 1517, - "▁exp": 1518, - "ql": 1519, - "ду": 1520, - "ве": 1521, - "▁Be": 1522, - "Com": 1523, - "iter": 1524, - "RE": 1525, - "mp": 1526, - "men": 1527, - "▁Ro": 1528, - "MA": 1529, - "▁Col": 1530, - "ister": 1531, - "▁well": 1532, - "▁": 1599, - "ene": 1600, - "▁mon": 1601, - "▁dec": 1602, - "▁still": 1603, - "▁об": 1604, - "▁Tr": 1605, - "▁ф": 1606, - "ife": 1607, - "ism": 1608, - "by": 1609, - "raw": 1610, - "ior": 1611, - "▁med": 1612, - "orld": 1613, - "▁comple": 1614, - "ww": 1615, - "▁art": 1616, - "ron": 1617, - "▁Г": 1618, - "▁My": 1619, - "▁als": 1620, - "rect": 1621, - "▁auf": 1622, - "▁down": 1623, - "ather": 1624, - "Col": 1625, - "Text": 1626, - "back": 1627, - "$,": 1628, - "▁year": 1629, - "мо": 1630, - "pi": 1631, - "▁Gr": 1632, - "ream": 1633, - "▁rep": 1634, - "bf": 1635, - "www": 1636, - "▁wur": 1637, - "▁org": 1638, - "inter": 1639, - "▁Die": 1640, - "▁being": 1641, - "\".": 1642, - "label": 1643, - "▁cent": 1644, - "java": 1645, - "bar": 1646, - "ante": 1647, - "ana": 1648, - "__": 1649, - "▁solution": 1650, - "▁О": 1651, - "▁fl": 1652, - "▁create": 1653, - "ici": 1654, - "ste": 1655, - "ython": 1656, - "unt": 1657, - "ason": 1658, - "ference": 1659, - "SE": 1660, - "▁non": 1661, - "ane": 1662, - "▁ins": 1663, - "ader": 1664, - "_{\\": 1665, - "Res": 1666, - "▁main": 1667, - "пи": 1668, - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁": 1669, - "▁There": 1670, - "▁pour": 1671, - "RO": 1672, - "`,": 1673, - "lish": 1674, - "bject": 1675, - "ccess": 1676, - "▁orig": 1677, - "▁▁▁": 1678, - "ischen": 1679, - "ower": 1680, - "▁het": 1681, - "uc": 1682, - "▁else": 1683, - "».": 1684, - "▁от": 1685, - "equ": 1686, - "sible": 1687, - "test": 1688, - "stand": 1689, - "én": 1690, - "ets": 1691, - "GE": 1692, - "ident": 1693, - "▁е": 1694, - "▁при": 1695, - ".,": 1696, - "▁das": 1697, - "ock": 1698, - ",\"": 1699, - "▁vol": 1700, - "▁fo": 1701, - "▁para": 1702, - "▁Т": 1703, - "▁Car": 1704, - "ral": 1705, - "▁Sp": 1706, - "var": 1707, - "▁play": 1708, - "ouse": 1709, - "▁та": 1710, - "ically": 1711, - "▁contain": 1712, - "ponse": 1713, - "▁String": 1714, - "án": 1715, - "▁both": 1716, - "ken": 1717, - "AR": 1718, - "ере": 1719, - "▁Il": 1720, - "▁iss": 1721, - "▁open": 1722, - "▁)": 1723, - "▁What": 1724, - "fe": 1725, - "rivate": 1726, - "reg": 1727, - "▁without": 1728, - "▁zu": 1729, - "vis": 1730, - "flow": 1731, - "▁http": 1732, - "abase": 1733, - "▁word": 1734, - "▁change": 1735, - "▁works": 1736, - "▁ge": 1737, - "▁!": 1738, - "▁een": 1739, - "itle": 1740, - "▁event": 1741, - "word": 1742, - "ando": 1743, - "SB": 1744, - "rem": 1745, - "▁field": 1746, - "ving": 1747, - "Ser": 1748, - "▁our": 1749, - "▁qui": 1750, - "▁oper": 1751, - "▁ist": 1752, - "def": 1753, - "▁made": 1754, - "ние": 1755, - "px": 1756, - "▁men": 1757, - "rm": 1758, - "ais": 1759, - "cent": 1760, - "list": 1761, - "To": 1762, - "▁To": 1763, - "ja": 1764, - "vert": 1765, - "▁mar": 1766, - "value": 1767, - "▁„": 1768, - "\";": 1769, - "▁aus": 1770, - "▁Br": 1771, - "ole": 1772, - "▁mult": 1773, - "ought": 1774, - "▁mat": 1775, - "▁view": 1776, - "fil": 1777, - "▁со": 1778, - "га": 1779, - "▁void": 1780, - "▁good": 1781, - "бо": 1782, - "CT": 1783, - "▁many": 1784, - "ben": 1785, - "▁во": 1786, - "▁ка": 1787, - "▁system": 1788, - "ino": 1789, - "▁another": 1790, - "▁rest": 1791, - "user": 1792, - "ility": 1793, - "ai": 1794, - "▁might": 1795, - "ustom": 1796, - "▁order": 1797, - "▁Ver": 1798, - "SS": 1799, - "})": 1800, - "▁eff": 1801, - "до": 1802, - "ett": 1803, - "▁sign": 1804, - "му": 1805, - "IT": 1806, - "string": 1807, - "elle": 1808, - "▁sing": 1809, - "cul": 1810, - "▁trying": 1811, - "▁beg": 1812, - "▁page": 1813, - "хо": 1814, - "▁Can": 1815, - "▁Ser": 1816, - "++": 1817, - "▁must": 1818, - "▁values": 1819, - "▁key": 1820, - "ible": 1821, - "].": 1822, - "ird": 1823, - "▁program": 1824, - "roller": 1825, - "▁conne": 1826, - "▁say": 1827, - "▁param": 1828, - "ache": 1829, - "velop": 1830, - "▁select": 1831, - "▁famil": 1832, - "▁last": 1833, - "▁Thanks": 1834, - "▁pop": 1835, - "}.": 1836, - "eq": 1837, - "▁doesn": 1838, - "['": 1839, - "▁term": 1840, - "▁ré": 1841, - "▁document": 1842, - "па": 1843, - "лу": 1844, - "ateg": 1845, - ".)": 1846, - "ling": 1847, - "ional": 1848, - "ables": 1849, - "▁tak": 1850, - "utton": 1851, - "▁arg": 1852, - "type": 1853, - "▁sure": 1854, - "▁real": 1855, - "▁web": 1856, - "▁current": 1857, - "▁Pl": 1858, - "cho": 1859, - "ments": 1860, - "▁Joh": 1861, - "ots": 1862, - "▁exist": 1863, - "ну": 1864, - "▁für": 1865, - "▁из": 1866, - "do": 1867, - "ного": 1868, - "▁las": 1869, - "▁null": 1870, - "▁inform": 1871, - "▁Л": 1872, - "▁version": 1873, - "▁chang": 1874, - "ager": 1875, - "▁Comm": 1876, - "лі": 1877, - "ush": 1878, - "▁Ge": 1879, - "▁high": 1880, - "▁input": 1881, - "ogle": 1882, - "ros": 1883, - "box": 1884, - "gen": 1885, - "▁ste": 1886, - "▁local": 1887, - "Im": 1888, - "▁process": 1889, - "ternal": 1890, - "ized": 1891, - "ги": 1892, - "ét": 1893, - "▁Ind": 1894, - "▁och": 1895, - "lt": 1896, - "▁column": 1897, - "▁tried": 1898, - "▁command": 1899, - "▁best": 1900, - "aster": 1901, - "за": 1902, - "▁prim": 1903, - "▁model": 1904, - "▁і": 1905, - "▁those": 1906, - "ities": 1907, - "ère": 1908, - "▁ре": 1909, - "је": 1910, - "ши": 1911, - "ques": 1912, - "▁Am": 1913, - "▁own": 1914, - "lin": 1915, - "зи": 1916, - "Value": 1917, - "thing": 1918, - "▁,": 1919, - "▁Te": 1920, - "▁stud": 1921, - "▁um": 1922, - "▁server": 1923, - "ille": 1924, - "▁put": 1925, - "ativ": 1926, - "gy": 1927, - "ови": 1928, - "raf": 1929, - "ово": 1930, - "▁wurde": 1931, - "▁When": 1932, - "▁div": 1933, - "ants": 1934, - "▁ter": 1935, - "▁partic": 1936, - "▁т": 1937, - "▁Do": 1938, - "▁No": 1939, - "sert": 1940, - "ido": 1941, - "mathcal": 1942, - "ade": 1943, - "▁II": 1944, - "lear": 1945, - "ograph": 1946, - "ense": 1947, - "▁row": 1948, - "num": 1949, - "▁possible": 1950, - "▁since": 1951, - "▁Bo": 1952, - "ctions": 1953, - "▁Im": 1954, - "OR": 1955, - "ці": 1956, - "▁ide": 1957, - "map": 1958, - "▁correct": 1959, - "ves": 1960, - "php": 1961, - "▁output": 1962, - "▁Ph": 1963, - "AL": 1964, - "ared": 1965, - "\\\\": 1966, - "▁image": 1967, - "esch": 1968, - "жи": 1969, - "▁conf": 1970, - "por": 1971, - "query": 1972, - "ures": 1973, - "ium": 1974, - "ends": 1975, - "▁Ab": 1976, - "SBN": 1977, - "ід": 1978, - "ether": 1979, - "ptions": 1980, - "itu": 1981, - "lib": 1982, - "ns": 1983, - "ki": 1984, - "▁working": 1985, - "▁como": 1986, - "▁Then": 1987, - "ML": 1988, - "key": 1989, - "class": 1990, - "ople": 1991, - "ittle": 1992, - "▁match": 1993, - "ways": 1994, - "mathbb": 1995, - "▁require": 1996, - "alt": 1997, - "▁vis": 1998, - "▁bl": 1999, - "▁called": 2000, - "Item": 2001, - "ura": 2002, - "vec": 2003, - "eme": 2004, - "▁della": 2005, - "embre": 2006, - "urg": 2007, - "Se": 2008, - "▁request": 2009, - "ische": 2010, - "▁port": 2011, - "▁instead": 2012, - "=\\": 2013, - "▁У": 2014, - "hor": 2015, - "ente": 2016, - "ume": 2017, - "erd": 2018, - "са": 2019, - "▁why": 2020, - "rist": 2021, - "▁person": 2022, - "▁...": 2023, - "▁private": 2024, - "▁tot": 2025, - "pha": 2026, - "ift": 2027, - "ita": 2028, - "loc": 2029, - "▁old": 2030, - "он": 2031, - "▁nel": 2032, - "']": 2033, - "ti": 2034, - "iet": 2035, - "cite": 2036, - "plement": 2037, - "▁above": 2038, - "ks": 2039, - "ready": 2040, - "▁come": 2041, - "section": 2042, - "▁Pol": 2043, - "▁writ": 2044, - "▁https": 2045, - "▁$$": 2046, - "▁»": 2047, - "▁build": 2048, - "ito": 2049, - "▁consider": 2050, - "aft": 2051, - "App": 2052, - ",\\": 2053, - "indows": 2054, - "comm": 2055, - "▁;": 2056, - "ground": 2057, - "▁place": 2058, - "By": 2059, - "▁project": 2060, - "Object": 2061, - "▁repr": 2062, - "ences": 2063, - "indow": 2064, - "zt": 2065, - "▁files": 2066, - "cz": 2067, - "ivity": 2068, - "▁init": 2069, - "▁prob": 2070, - "▁sk": 2071, - "orth": 2072, - "iment": 2073, - "ouble": 2074, - "atal": 2075, - "irc": 2076, - "▁è": 2077, - "▁bre": 2078, - "ista": 2079, - "input": 2080, - "▁И": 2081, - "ной": 2082, - "sum": 2083, - "path": 2084, - "▁cour": 2085, - "▁too": 2086, - "▁Ad": 2087, - "▁Gu": 2088, - "▁false": 2089, - "▁fun": 2090, - "▁ст": 2091, - "ood": 2092, - "ès": 2093, - "▁enc": 2094, - "bol": 2095, - "rl": 2096, - "arget": 2097, - "order": 2098, - "▁mean": 2099, - "пе": 2100, - "igen": 2101, - "▁пре": 2102, - "width": 2103, - ";\r": 2104, - "itor": 2105, - "▁state": 2106, - "▁great": 2107, - "enn": 2108, - "bin": 2109, - "Er": 2110, - "Mod": 2111, - "oz": 2112, - "▁won": 2113, - "▁fact": 2114, - "▁java": 2115, - "▁Univers": 2116, - "▁cap": 2117, - "istor": 2118, - "}(": 2119, - "ku": 2120, - "ither": 2121, - "ales": 2122, - "▁ou": 2123, - "ross": 2124, - "▁take": 2125, - "rix": 2126, - "lob": 2127, - "▁eine": 2128, - "ases": 2129, - "▁access": 2130, - "ité": 2131, - "istr": 2132, - "ization": 2133, - "▁appro": 2134, - "ball": 2135, - "▁mak": 2136, - "}^": 2137, - "▁Cons": 2138, - "press": 2139, - "serv": 2140, - "().": 2141, - "af": 2142, - "▁ref": 2143, - ")\\": 2144, - "▁contin": 2145, - "su": 2146, - "iver": 2147, - "▁cond": 2148, - "▁expect": 2149, - "▁charact": 2150, - "bert": 2151, - "elt": 2152, - "ters": 2153, - "script": 2154, - "▁Ed": 2155, - "apt": 2156, - "');": 2157, - "print": 2158, - "▁size": 2159, - "▁sich": 2160, - "face": 2161, - "enden": 2162, - "▁Amer": 2163, - "ified": 2164, - "ów": 2165, - "▁Su": 2166, - "tes": 2167, - "med": 2168, - "▁Reg": 2169, - "sole": 2170, - "▁includ": 2171, - "ini": 2172, - "inci": 2173, - "▁pla": 2174, - "▁left": 2175, - "df": 2176, - "Par": 2177, - "▁All": 2178, - "▁occ": 2179, - "▁At": 2180, - "▁cr": 2181, - "Qu": 2182, - "▁given": 2183, - "▁System": 2184, - "ican": 2185, - "▁final": 2186, - "itions": 2187, - "▁бы": 2188, - "▁perform": 2189, - "AN": 2190, - "▁Me": 2191, - "uro": 2192, - "▁That": 2193, - "гра": 2194, - "▁По": 2195, - "▁ви": 2196, - "ably": 2197, - "▁present": 2198, - "duct": 2199, - "ric": 2200, - "▁Eng": 2201, - "try": 2202, - "▁lar": 2203, - "bl": 2204, - "idd": 2205, - "▁är": 2206, - "ora": 2207, - "LL": 2208, - "oss": 2209, - "▁ISBN": 2210, - "▁three": 2211, - "jo": 2212, - "ní": 2213, - "rc": 2214, - "▁far": 2215, - "▁Not": 2216, - "▁little": 2217, - "dis": 2218, - "ati": 2219, - "function": 2220, - "▁able": 2221, - "less": 2222, - "со": 2223, - "▁path": 2224, - "▁pres": 2225, - "lose": 2226, - "PI": 2227, - "▁issue": 2228, - "ackage": 2229, - "time": 2230, - "ige": 2231, - "ams": 2232, - "▁Cl": 2233, - "ails": 2234, - "alk": 2235, - "ii": 2236, - "ше": 2237, - "pen": 2238, - "QL": 2239, - "▁eas": 2240, - "RL": 2241, - "cel": 2242, - "▁sl": 2243, - "▁ask": 2244, - "▁nom": 2245, - "▁top": 2246, - "ides": 2247, - "index": 2248, - "ém": 2249, - "▁happ": 2250, - "ox": 2251, - "cd": 2252, - "▁better": 2253, - "▁load": 2254, - "ados": 2255, - "zen": 2256, - "▁ce": 2257, - "▁fa": 2258, - "▁John": 2259, - "IMA": 2260, - "▁Bar": 2261, - "overflow": 2262, - "▁де": 2263, - "ness": 2264, - "cer": 2265, - "▁Here": 2266, - "ret": 2267, - "▁sz": 2268, - "ambda": 2269, - "opy": 2270, - "url": 2271, - "py": 2272, - "rt": 2273, - "▁understand": 2274, - "ał": 2275, - "her": 2276, - "##": 2277, - "▁child": 2278, - "▁exec": 2279, - "▁application": 2280, - "▁struct": 2281, - "▁я": 2282, - "File": 2283, - "▁cert": 2284, - "ison": 2285, - "▁variable": 2286, - "DE": 2287, - "rs": 2288, - "▁really": 2289, - "Port": 2290, - "ba": 2291, - "▁Ber": 2292, - "▁inte": 2293, - "▁static": 2294, - "▁config": 2295, - "▁She": 2296, - "estions": 2297, - "▁plus": 2298, - "▁hab": 2299, - "ope": 2300, - "▁mus": 2301, - "▁count": 2302, - "ME": 2303, - "▁support": 2304, - "▁people": 2305, - "▁beh": 2306, - "▁already": 2307, - "Tr": 2308, - "▁done": 2309, - "dem": 2310, - "size": 2311, - "alpha": 2312, - "▁disc": 2313, - "])": 2314, - "▁Man": 2315, - "▁mil": 2316, - "▁stand": 2317, - "▁group": 2318, - "▁small": 2319, - "▁mag": 2320, - "сть": 2321, - "▁default": 2322, - "▁single": 2323, - "link": 2324, - "clude": 2325, - "▁ear": 2326, - "ilar": 2327, - "****": 2328, - "▁fix": 2329, - "ley": 2330, - "▁pas": 2331, - "ний": 2332, - "ission": 2333, - "▁implement": 2334, - "itch": 2335, - "▁года": 2336, - "▁always": 2337, - "▁Jah": 2338, - "pring": 2339, - "ção": 2340, - "plate": 2341, - "▁descri": 2342, - "▁head": 2343, - "init": 2344, - "ograf": 2345, - "▁query": 2346, - "ived": 2347, - "▁ing": 2348, - "pty": 2349, - "ha": 2350, - "▁mov": 2351, - "▁э": 2352, - "ette": 2353, - "ily": 2354, - "▁got": 2355, - "iled": 2356, - "icro": 2357, - "▁wr": 2358, - "ря": 2359, - "▁never": 2360, - "ores": 2361, - "▁bas": 2362, - "ios": 2363, - "lack": 2364, - "aint": 2365, - "vious": 2366, - "▁give": 2367, - "idad": 2368, - "En": 2369, - "ный": 2370, - "table": 2371, - "▁На": 2372, - "▁pat": 2373, - "тор": 2374, - "angu": 2375, - "loy": 2376, - "▁seg": 2377, - "array": 2378, - "▁Fl": 2379, - "▁index": 2380, - "▁sw": 2381, - "IMAGE": 2382, - "▁km": 2383, - "би": 2384, - "Class": 2385, - "ena": 2386, - "мен": 2387, - "comp": 2388, - "atus": 2389, - "rap": 2390, - "▁List": 2391, - "Error": 2392, - "▁typ": 2393, - "▁ма": 2394, - "cs": 2395, - "':": 2396, - "ji": 2397, - "▁However": 2398, - "▁те": 2399, - "▁below": 2400, - "▁App": 2401, - "ще": 2402, - "}_": 2403, - "bum": 2404, - "vir": 2405, - "ées": 2406, - "▁record": 2407, - "tain": 2408, - "lem": 2409, - "ital": 2410, - "▁imp": 2411, - "ego": 2412, - "▁od": 2413, - "▁rece": 2414, - "mit": 2415, - "ffic": 2416, - "stackoverflow": 2417, - "ieve": 2418, - "▁З": 2419, - "▁nov": 2420, - "це": 2421, - "▁Intern": 2422, - "bu": 2423, - "▁sugg": 2424, - "▁loop": 2425, - "ride": 2426, - "▁$(": 2427, - "▁super": 2428, - "rid": 2429, - "ных": 2430, - "▁Per": 2431, - "▁dom": 2432, - "='": 2433, - "utsch": 2434, - "len": 2435, - "▁write": 2436, - "▁inv": 2437, - "outh": 2438, - "▁Her": 2439, - "▁years": 2440, - "▁original": 2441, - "ega": 2442, - "▁Ste": 2443, - "▁seems": 2444, - "ég": 2445, - "▁next": 2446, - "eder": 2447, - "▁Ne": 2448, - "avas": 2449, - "ification": 2450, - "Exception": 2451, - "▁Der": 2452, - "▁ve": 2453, - "atic": 2454, - "hat": 2455, - "brary": 2456, - "return": 2457, - "urch": 2458, - "ision": 2459, - "mi": 2460, - "oint": 2461, - "▁day": 2462, - "iction": 2463, - "ál": 2464, - "▁és": 2465, - "▁though": 2466, - "action": 2467, - "ít": 2468, - "ungen": 2469, - "ours": 2470, - "▁script": 2471, - "▁information": 2472, - "▁multi": 2473, - "▁\\\\": 2474, - "ster": 2475, - "ке": 2476, - "AC": 2477, - "cies": 2478, - "▁display": 2479, - "oman": 2480, - "Time": 2481, - "ius": 2482, - "));": 2483, - "tre": 2484, - "▁lim": 2485, - "ately": 2486, - "éd": 2487, - "iste": 2488, - "▁са": 2489, - "post": 2490, - "uel": 2491, - "img": 2492, - "▁ч": 2493, - "ска": 2494, - "eld": 2495, - "pper": 2496, - "ula": 2497, - "▁general": 2498, - "Al": 2499, - "Form": 2500, - "▁upon": 2501, - "zo": 2502, - "amente": 2503, - "▁prom": 2504, - "▁ü": 2505, - "lex": 2506, - "▁turn": 2507, - "▁ме": 2508, - "ention": 2509, - "лен": 2510, - "▁af": 2511, - "icle": 2512, - "ств": 2513, - "▁Fil": 2514, - "▁Ф": 2515, - "avascript": 2516, - "Man": 2517, - "ara": 2518, - "ware": 2519, - "align": 2520, - "angle": 2521, - "▁Sc": 2522, - "unic": 2523, - "▁fran": 2524, - "Un": 2525, - "zi": 2526, - "met": 2527, - "Add": 2528, - "▁pub": 2529, - "ков": 2530, - "▁gen": 2531, - "▁pod": 2532, - "▁sum": 2533, - "▁having": 2534, - "▁avec": 2535, - "sl": 2536, - "▁fig": 2537, - "▁Res": 2538, - "Date": 2539, - "ules": 2540, - "with": 2541, - "ский": 2542, - "gu": 2543, - "ET": 2544, - "▁bro": 2545, - "rie": 2546, - "aps": 2547, - "ending": 2548, - "mail": 2549, - "ook": 2550, - "▁success": 2551, - "berg": 2552, - "▁deb": 2553, - "elta": 2554, - "()`": 2555, - "ential": 2556, - "frame": 2557, - "Key": 2558, - "inn": 2559, - "▁simple": 2560, - "ival": 2561, - "▁care": 2562, - "▁Web": 2563, - "\").": 2564, - ">": 2900, - "ko": 2901, - "▁exper": 2902, - "▁separ": 2903, - "yl": 2904, - "ourn": 2905, - "▁dev": 2906, - "▁auch": 2907, - "▁block": 2908, - "book": 2909, - "▁map": 2910, - "illa": 2911, - "▁comput": 2912, - "▁space": 2913, - "result": 2914, - ")}": 2915, - "▁echo": 2916, - "config": 2917, - "hi": 2918, - "▁large": 2919, - "▁width": 2920, - "▁Go": 2921, - "mat": 2922, - "▁diff": 2923, - "▁kind": 2924, - "ances": 2925, - "ynam": 2926, - "▁color": 2927, - "Int": 2928, - "sol": 2929, - "▁pi": 2930, - "▁character": 2931, - "oment": 2932, - "▁response": 2933, - "igma": 2934, - "wards": 2935, - "arrow": 2936, - "су": 2937, - "ties": 2938, - "▁über": 2939, - "Image": 2940, - "yd": 2941, - "▁пере": 2942, - "▁node": 2943, - "▁item": 2944, - "achine": 2945, - "ima": 2946, - "▁va": 2947, - "▁approach": 2948, - "▁wer": 2949, - "▁че": 2950, - "On": 2951, - "ollow": 2952, - "она": 2953, - "cted": 2954, - "ured": 2955, - "Controller": 2956, - "lied": 2957, - "▁jo": 2958, - "▁dal": 2959, - "unk": 2960, - "▁î": 2961, - "start": 2962, - "ola": 2963, - "▁compon": 2964, - "IC": 2965, - "bit": 2966, - "▁base": 2967, - "пу": 2968, - "▁idea": 2969, - "▁dire": 2970, - "▁rad": 2971, - "group": 2972, - "▁With": 2973, - "server": 2974, - "side": 2975, - "sing": 2976, - "▁dies": 2977, - "▁near": 2978, - "▁voor": 2979, - "▁argument": 2980, - "▁},": 2981, - "▁land": 2982, - "▁names": 2983, - "▁option": 2984, - "ithub": 2985, - "pped": 2986, - "aug": 2987, - "▁links": 2988, - "▁full": 2989, - "▁situ": 2990, - "▁console": 2991, - "▁etc": 2992, - "aux": 2993, - "▁Cor": 2994, - "icrosoft": 2995, - "▁came": 2996, - "local": 2997, - "▁known": 2998, - "▁multiple": 2999, - "anguage": 3000, - "▁total": 3001, - "ology": 3002, - "ät": 3003, - "▁Х": 3004, - "▁fre": 3005, - "▁ten": 3006, - "ideo": 3007, - "▁bes": 3008, - "true": 3009, - "Query": 3010, - "omm": 3011, - "▁Art": 3012, - "▁keep": 3013, - "▁University": 3014, - "reate": 3015, - "pport": 3016, - "▁python": 3017, - "tra": 3018, - "ector": 3019, - "рі": 3020, - "oph": 3021, - "▁conc": 3022, - "▁four": 3023, - "viron": 3024, - "▁via": 3025, - "?\"": 3026, - "image": 3027, - "oll": 3028, - "ные": 3029, - "▁context": 3030, - "▁sem": 3031, - "._": 3032, - "▁eng": 3033, - "mar": 3034, - "AD": 3035, - "▁mor": 3036, - "▁Cal": 3037, - "▁cell": 3038, - "imal": 3039, - "ATE": 3040, - "▁inf": 3041, - "ön": 3042, - "uffer": 3043, - "sq": 3044, - "....": 3045, - "▁zur": 3046, - "With": 3047, - "ран": 3048, - "chn": 3049, - "▁door": 3050, - "content": 3051, - "▁miss": 3052, - "▁simp": 3053, - "ár": 3054, - "ira": 3055, - "▁hat": 3056, - "Test": 3057, - "▁certain": 3058, - "NS": 3059, - "▁cho": 3060, - "▁adv": 3061, - "where": 3062, - "▁looking": 3063, - "▁times": 3064, - "них": 3065, - "uto": 3066, - "▁É": 3067, - "can": 3068, - "host": 3069, - "▁(*": 3070, - "loat": 3071, - "▁nicht": 3072, - "Field": 3073, - "burg": 3074, - "const": 3075, - "ades": 3076, - "▁Mus": 3077, - "▁nothing": 3078, - "▁incre": 3079, - "▁Min": 3080, - "▁power": 3081, - "▁American": 3082, - "ln": 3083, - "valid": 3084, - "ungs": 3085, - "▁National": 3086, - "▁San": 3087, - "▁York": 3088, - "Request": 3089, - "char": 3090, - "▁Ze": 3091, - "button": 3092, - "▁alg": 3093, - "SON": 3094, - "▁ap": 3095, - "uff": 3096, - "ability": 3097, - "ем": 3098, - "▁anything": 3099, - "ela": 3100, - "())": 3101, - "ба": 3102, - "ampion": 3103, - "▁pot": 3104, - "▁fut": 3105, - "ailable": 3106, - "▁prop": 3107, - "\"]": 3108, - "▁less": 3109, - "lag": 3110, - "▁August": 3111, - "It": 3112, - "▁please": 3113, - "▁style": 3114, - "▁Also": 3115, - "bt": 3116, - "▁probably": 3117, - "▁One": 3118, - "▁poss": 3119, - "UI": 3120, - "uit": 3121, - "▁West": 3122, - "hn": 3123, - "+\\": 3124, - "Button": 3125, - "json": 3126, - "err": 3127, - "rame": 3128, - "dom": 3129, - "ilon": 3130, - "alf": 3131, - "▁client": 3132, - "▁continu": 3133, - "xml": 3134, - "pec": 3135, - "ador": 3136, - "ls": 3137, - "▁however": 3138, - "▁Any": 3139, - "änd": 3140, - "mathrm": 3141, - "▁url": 3142, - "▁book": 3143, - "▁gl": 3144, - "ives": 3145, - "gi": 3146, - "▁tro": 3147, - "▁US": 3148, - "point": 3149, - "open": 3150, - "▁cur": 3151, - "▁era": 3152, - "▁particular": 3153, - "▁HT": 3154, - "oot": 3155, - "ello": 3156, - "lobal": 3157, - "▁action": 3158, - "▁Int": 3159, - "▁include": 3160, - "▁elements": 3161, - "ная": 3162, - "ards": 3163, - "▁Bl": 3164, - "▁hum": 3165, - "from": 3166, - "change": 3167, - "▁functions": 3168, - "hen": 3169, - "Service": 3170, - "▁height": 3171, - "▁Land": 3172, - "ias": 3173, - "gs": 3174, - "ión": 3175, - "лов": 3176, - "node": 3177, - ".”": 3178, - "hand": 3179, - "▁бу": 3180, - "▁amb": 3181, - "▁Lu": 3182, - "▁throw": 3183, - "▁mot": 3184, - "▁Act": 3185, - "▁world": 3186, - "_\\": 3187, - "base": 3188, - "▁Co": 3189, - "▁arch": 3190, - "▁####": 3191, - "ged": 3192, - "pril": 3193, - "older": 3194, - "Model": 3195, - "▁several": 3196, - "lie": 3197, - "check": 3198, - "]{": 3199, - "cons": 3200, - "▁Tra": 3201, - "heck": 3202, - "▁least": 3203, - "down": 3204, - "ebru": 3205, - "Def": 3206, - "param": 3207, - "ischer": 3208, - "▁cas": 3209, - "CH": 3210, - "▁address": 3211, - "▁раз": 3212, - "ufen": 3213, - "urope": 3214, - "ей": 3215, - "▁bound": 3216, - "CO": 3217, - "▁Ang": 3218, - "▁Ma": 3219, - "Index": 3220, - "core": 3221, - "ouch": 3222, - "atabase": 3223, - "ribution": 3224, - "document": 3225, - "Le": 3226, - "}_{": 3227, - "vern": 3228, - "▁statement": 3229, - "▁Brit": 3230, - "ono": 3231, - "psilon": 3232, - "▁level": 3233, - "▁product": 3234, - "IS": 3235, - "▁course": 3236, - "▁Mr": 3237, - ">\r": 3238, - "▁background": 3239, - "▁ret": 3240, - "ering": 3241, - "most": 3242, - "сько": 3243, - "▁thread": 3244, - "itional": 3245, - "ites": 3246, - "Pl": 3247, - "▁dos": 3248, - "ga": 3249, - "day": 3250, - "▁Gener": 3251, - "▁tw": 3252, - "Ad": 3253, - "\"><": 3254, - "▁($": 3255, - "▁moment": 3256, - "title": 3257, - "create": 3258, - "version": 3259, - "Manager": 3260, - "▁fur": 3261, - "pping": 3262, - "ijn": 3263, - "ос": 3264, - "▁rather": 3265, - "ptember": 3266, - "OS": 3267, - "▁site": 3268, - "▁caus": 3269, - "ani": 3270, - "▁home": 3271, - "мі": 3272, - "▁short": 3273, - "pa": 3274, - "▁lead": 3275, - "ished": 3276, - "cing": 3277, - "ording": 3278, - "▁prote": 3279, - "сле": 3280, - "LECT": 3281, - "▁didn": 3282, - "position": 3283, - "\",\"": 3284, - "(),": 3285, - "trans": 3286, - "▁lot": 3287, - "▁од": 3288, - "AS": 3289, - "▁sat": 3290, - "▁points": 3291, - "github": 3292, - "style": 3293, - "▁году": 3294, - "▁Dis": 3295, - "ponent": 3296, - "omet": 3297, - "zer": 3298, - "ULL": 3299, - "▁pa": 3300, - "AP": 3301, - "aces": 3302, - "▁United": 3303, - "ama": 3304, - "ety": 3305, - "Color": 3306, - "▁enough": 3307, - "US": 3308, - "▁length": 3309, - "());": 3310, - "^{\\": 3311, - "fty": 3312, - "Box": 3313, - "apter": 3314, - "▁complet": 3315, - "ник": 3316, - "max": 3317, - "object": 3318, - "({": 3319, - "imgur": 3320, - "itive": 3321, - "unch": 3322, - "▁Sub": 3323, - "ende": 3324, - "гу": 3325, - "ategory": 3326, - "ты": 3327, - "iano": 3328, - "▁upd": 3329, - "▁Aust": 3330, - "}{\\": 3331, - "top": 3332, - "las": 3333, - "pis": 3334, - "iness": 3335, - "▁{\r": 3336, - "▁Е": 3337, - "Gr": 3338, - "▁AS": 3339, - "▁ве": 3340, - "thers": 3341, - "▁defined": 3342, - "azione": 3343, - "▁offic": 3344, - "▁autom": 3345, - "ün": 3346, - "▁brow": 3347, - "▁serv": 3348, - "▁remove": 3349, - "iro": 3350, - "▁Bibli": 3351, - "ED": 3352, - "▁whole": 3353, - "▁ш": 3354, - "▁Java": 3355, - "▁zum": 3356, - "ua": 3357, - "pm": 3358, - "dev": 3359, - "кра": 3360, - "olds": 3361, - "▁War": 3362, - "än": 3363, - "pass": 3364, - "uz": 3365, - "[\"": 3366, - "▁tri": 3367, - "ised": 3368, - "ха": 3369, - "▁memory": 3370, - "▁Port": 3371, - "oper": 3372, - "Up": 3373, - "▁Thank": 3374, - "▁Mich": 3375, - "ych": 3376, - "board": 3377, - "бу": 3378, - "Inst": 3379, - "▁begin": 3380, - "ination": 3381, - "▁Mod": 3382, - "_,": 3383, - "▁Den": 3384, - "option": 3385, - "▁construct": 3386, - "▁Just": 3387, - "Map": 3388, - "run": 3389, - "▁respect": 3390, - "ham": 3391, - "ман": 3392, - "imedia": 3393, - "▁apply": 3394, - "cription": 3395, - "main": 3396, - "▁Ка": 3397, - "oid": 3398, - "Code": 3399, - "};": 3400, - "Info": 3401, - "▁format": 3402, - "Log": 3403, - "▁су": 3404, - "▁lat": 3405, - "utor": 3406, - "▁reference": 3407, - "▁calcul": 3408, - "onn": 3409, - "Lo": 3410, - "infty": 3411, - "▁along": 3412, - "▁č": 3413, - "▁task": 3414, - "▁ev": 3415, - "theta": 3416, - "ras": 3417, - "jor": 3418, - "▁бо": 3419, - "▁princip": 3420, - "My": 3421, - "▁einer": 3422, - "▁Es": 3423, - "omb": 3424, - "quad": 3425, - "^{-": 3426, - "ump": 3427, - "▁till": 3428, - "ді": 3429, - "▁looks": 3430, - "▁ok": 3431, - "ца": 3432, - "nu": 3433, - "Fil": 3434, - "▁sont": 3435, - "▁Med": 3436, - "ague": 3437, - "▁cost": 3438, - "▁Sim": 3439, - "▁comment": 3440, - "▁(\\": 3441, - "egen": 3442, - "▁parameter": 3443, - "▁France": 3444, - "rep": 3445, - "▁TH": 3446, - "▁yet": 3447, - "▁away": 3448, - "▁circ": 3449, - "▁API": 3450, - "emp": 3451, - "ві": 3452, - "Layout": 3453, - "▁lines": 3454, - "▁Part": 3455, - "empt": 3456, - "▁Bi": 3457, - "▁mind": 3458, - "ky": 3459, - "ging": 3460, - "▁report": 3461, - "▁Add": 3462, - "род": 3463, - "▁range": 3464, - "cias": 3465, - "lip": 3466, - "▁Kar": 3467, - "▁Commons": 3468, - "gerufen": 3469, - "aff": 3470, - "sec": 3471, - "▁html": 3472, - "lig": 3473, - "▁window": 3474, - "inition": 3475, - "cis": 3476, - "▁ut": 3477, - "eln": 3478, - "▁aux": 3479, - "▁neg": 3480, - "Hand": 3481, - "▁);": 3482, - "▁anal": 3483, - "▁fri": 3484, - "▁си": 3485, - "etch": 3486, - "md": 3487, - "page": 3488, - "▁library": 3489, - "▁:=": 3490, - "ROM": 3491, - "You": 3492, - "space": 3493, - "▁durch": 3494, - "▁host": 3495, - "aven": 3496, - "▁File": 3497, - "alle": 3498, - "тив": 3499, - "▁pap": 3500, - "ство": 3501, - "mark": 3502, - "▁mais": 3503, - "erman": 3504, - "Size": 3505, - "ек": 3506, - "▁Ма": 3507, - "▁isn": 3508, - "▁copy": 3509, - "sten": 3510, - "river": 3511, - "▁went": 3512, - "▁javascript": 3513, - "▁sam": 3514, - "▁frame": 3515, - "▁vi": 3516, - "▁previous": 3517, - "rodu": 3518, - "▁methods": 3519, - "▁necess": 3520, - "NA": 3521, - "cket": 3522, - "▁opt": 3523, - "Loc": 3524, - "how": 3525, - "▁în": 3526, - "ship": 3527, - "▁itself": 3528, - "▁Please": 3529, - "iene": 3530, - "вер": 3531, - "▁<<": 3532, - "▁mill": 3533, - "▁trad": 3534, - "pace": 3535, - "▁Har": 3536, - "iten": 3537, - "wise": 3538, - "write": 3539, - "ции": 3540, - "ры": 3541, - "Line": 3542, - "olo": 3543, - "▁accept": 3544, - "height": 3545, - "▁elect": 3546, - "ella": 3547, - "▁på": 3548, - "Select": 3549, - "▁ли": 3550, - "▁\\<": 3551, - "((": 3552, - "▁ID": 3553, - "ops": 3554, - "ван": 3555, - "ió": 3556, - "TP": 3557, - "»,": 3558, - "nection": 3559, - "parent": 3560, - "▁Mag": 3561, - "Table": 3562, - "Over": 3563, - "▁network": 3564, - "спо": 3565, - "▁assign": 3566, - "igger": 3567, - "irm": 3568, - ")`": 3569, - "ottom": 3570, - "beta": 3571, - "▁dell": 3572, - "▁body": 3573, - "▁да": 3574, - "▁Your": 3575, - "▁fue": 3576, - "▁package": 3577, - "▁light": 3578, - "▁**": 3579, - "MP": 3580, - "▁cou": 3581, - "yes": 3582, - ":\\": 3583, - "▁Ч": 3584, - "▁mention": 3585, - "ensch": 3586, - "▁deg": 3587, - "▁convert": 3588, - "▁Dav": 3589, - "adt": 3590, - "Result": 3591, - "though": 3592, - "▁bus": 3593, - "xy": 3594, - "▁seen": 3595, - "All": 3596, - "public": 3597, - "ively": 3598, - "▁Rec": 3599, - "▁His": 3600, - "sim": 3601, - "▁för": 3602, - "▁histor": 3603, - "▁sett": 3604, - "rat": 3605, - "abled": 3606, - "▁»,": 3607, - "google": 3608, - "Web": 3609, - "él": 3610, - "▁title": 3611, - "▁Janu": 3612, - "ја": 3613, - "▁took": 3614, - "iden": 3615, - "sz": 3616, - "▁Get": 3617, - "▁objects": 3618, - "▁common": 3619, - "▁changes": 3620, - "▁Lond": 3621, - "▁extern": 3622, - "▁ju": 3623, - "Is": 3624, - "▁available": 3625, - "tri": 3626, - "▁más": 3627, - "osa": 3628, - "Be": 3629, - "▁Data": 3630, - "ural": 3631, - "▁hom": 3632, - "▁account": 3633, - "oo": 3634, - "▁perm": 3635, - "respond": 3636, - "yt": 3637, - "▁send": 3638, - "▁returns": 3639, - "ivid": 3640, - "▁expla": 3641, - "ín": 3642, - "▁nor": 3643, - "If": 3644, - "▁From": 3645, - "▁target": 3646, - "fect": 3647, - "ент": 3648, - "▁uit": 3649, - "▁Jo": 3650, - "▁variables": 3651, - "▁series": 3652, - "▁func": 3653, - "▁himself": 3654, - "▁ча": 3655, - "anti": 3656, - "▁ach": 3657, - "ialog": 3658, - "▁std": 3659, - "ae": 3660, - "▁foot": 3661, - "▁unter": 3662, - "gress": 3663, - "Not": 3664, - "rad": 3665, - "fér": 3666, - "▁util": 3667, - "orem": 3668, - "▁sou": 3669, - "opt": 3670, - "▁og": 3671, - "▁uma": 3672, - "itar": 3673, - "▁Ok": 3674, - "ück": 3675, - "sqrt": 3676, - "▁ant": 3677, - "▁werden": 3678, - "år": 3679, - "});": 3680, - "▁Paris": 3681, - "▁exception": 3682, - "▁determ": 3683, - "▁Vol": 3684, - "▁Sam": 3685, - "▁ess": 3686, - "lies": 3687, - "ioni": 3688, - "oding": 3689, - "idget": 3690, - "▁pri": 3691, - "▁whether": 3692, - "▁под": 3693, - "▁numbers": 3694, - "▁~": 3695, - "event": 3696, - "▁shows": 3697, - "atures": 3698, - "▁house": 3699, - "▁face": 3700, - "▁się": 3701, - "vironment": 3702, - "van": 3703, - "▁including": 3704, - "▁<-": 3705, - "times": 3706, - "now": 3707, - "▁pur": 3708, - "ifier": 3709, - "▁emp": 3710, - "▁cla": 3711, - "mon": 3712, - "▁Das": 3713, - "ady": 3714, - "▁від": 3715, - "▁ц": 3716, - "abor": 3717, - "OST": 3718, - "▁band": 3719, - "▁ú": 3720, - "▁exactly": 3721, - "iert": 3722, - "avig": 3723, - "▁redu": 3724, - "▁SE": 3725, - "lished": 3726, - "Bu": 3727, - "Message": 3728, - "cell": 3729, - "fully": 3730, - "▁sv": 3731, - "▁makes": 3732, - "pol": 3733, - "▁required": 3734, - "ferrer": 3735, - "▁pers": 3736, - "▁mi": 3737, - "FI": 3738, - "▁Paul": 3739, - "▁UI": 3740, - "▁Bel": 3741, - "inc": 3742, - "▁contains": 3743, - "Out": 3744, - "asure": 3745, - "pu": 3746, - "oto": 3747, - "▁game": 3748, - "zn": 3749, - "▁Why": 3750, - "orith": 3751, - "big": 3752, - "кий": 3753, - "sigma": 3754, - "▁quite": 3755, - "▁jed": 3756, - "rec": 3757, - "▁SQL": 3758, - "бе": 3759, - "▁Mart": 3760, - "ya": 3761, - "▁school": 3762, - "▁simply": 3763, - "▁vor": 3764, - "▁double": 3765, - "рав": 3766, - "▁Str": 3767, - "iem": 3768, - "▁album": 3769, - "▁resol": 3770, - "▁dei": 3771, - "▁Wik": 3772, - "▁aw": 3773, - "umb": 3774, - "ols": 3775, - "▁*/": 3776, - "▁ze": 3777, - "▁anim": 3778, - "/>": 3779, - "ris": 3780, - "resh": 3781, - "No": 3782, - "iques": 3783, - "current": 3784, - "▁period": 3785, - "▁April": 3786, - "▁store": 3787, - "','": 3788, - "▁Set": 3789, - "={": 3790, - "ached": 3791, - "▁Mal": 3792, - "▁Pal": 3793, - "antes": 3794, - "aterial": 3795, - "▁worked": 3796, - "leq": 3797, - "oreferrer": 3798, - "▁happen": 3799, - "▁box": 3800, - "ney": 3801, - "▁close": 3802, - "▁gran": 3803, - "▁lie": 3804, - "▁ir": 3805, - "▁expected": 3806, - "▁для": 3807, - "click": 3808, - "și": 3809, - "▁parte": 3810, - "ogn": 3811, - "▁Form": 3812, - "▁memb": 3813, - "▁plan": 3814, - "▁team": 3815, - "][": 3816, - "▁commun": 3817, - "orry": 3818, - "ency": 3819, - "gl": 3820, - "inary": 3821, - "cdot": 3822, - "^\\": 3823, - "▁First": 3824, - "ander": 3825, - "▁Dec": 3826, - "request": 3827, - "ства": 3828, - "▁structure": 3829, - "▁||": 3830, - "▁Comp": 3831, - "actory": 3832, - "▁Mil": 3833, - "▁Some": 3834, - "Stream": 3835, - "▁assum": 3836, - "uen": 3837, - "▁words": 3838, - "▁September": 3839, - "▁Ко": 3840, - "▁days": 3841, - "ories": 3842, - "став": 3843, - "sm": 3844, - "vin": 3845, - "partial": 3846, - "▁parent": 3847, - "oj": 3848, - "нии": 3849, - "!\"": 3850, - "ugin": 3851, - "▁Windows": 3852, - "Ed": 3853, - ":}": 3854, - "▁q": 3855, - "▁ben": 3856, - "iana": 3857, - "▁label": 3858, - "state": 3859, - "uted": 3860, - "▁()": 3861, - "▁сво": 3862, - "▁edit": 3863, - "uring": 3864, - "▁NS": 3865, - "▁Jahr": 3866, - "▁provide": 3867, - "He": 3868, - "▁Yes": 3869, - "anel": 3870, - "ename": 3871, - "▁Don": 3872, - "isk": 3873, - "gra": 3874, - "elij": 3875, - "▁root": 3876, - "*/": 3877, - "▁Fre": 3878, - "▁Mor": 3879, - "used": 3880, - "range": 3881, - "▁tamb": 3882, - "▁module": 3883, - "▁directory": 3884, - "ounds": 3885, - "Activity": 3886, - "▁mu": 3887, - "info": 3888, - "▁free": 3889, - "orge": 3890, - "tab": 3891, - ")=": 3892, - "lang": 3893, - "▁ос": 3894, - "▁FROM": 3895, - "▁enter": 3896, - "▁became": 3897, - "idae": 3898, - "хи": 3899, - "▁States": 3900, - "verse": 3901, - "▁expl": 3902, - "ynt": 3903, - "UN": 3904, - "ee": 3905, - "endent": 3906, - "▁making": 3907, - "▁\"$": 3908, - "uni": 3909, - "quence": 3910, - "▁lui": 3911, - "HT": 3912, - "▁uses": 3913, - "zie": 3914, - "nia": 3915, - "Content": 3916, - "▁Count": 3917, - "▁standard": 3918, - "ENT": 3919, - "▁кон": 3920, - "fort": 3921, - "adas": 3922, - "зу": 3923, - "System": 3924, - "▁Sw": 3925, - "▁ever": 3926, - "LO": 3927, - "▁correspond": 3928, - "▁Po": 3929, - "argin": 3930, - "кт": 3931, - "ій": 3932, - "▁remain": 3933, - "cio": 3934, - "▁actual": 3935, - "сту": 3936, - "▁sind": 3937, - "▁Pe": 3938, - "▁changed": 3939, - "▁Note": 3940, - "skie": 3941, - "▁family": 3942, - "ità": 3943, - "cos": 3944, - "txt": 3945, - "ker": 3946, - "ceed": 3947, - "▁arr": 3948, - "▁cam": 3949, - "izer": 3950, - "▁Dan": 3951, - "hel": 3952, - "icult": 3953, - "HP": 3954, - "iler": 3955, - "▁Sal": 3956, - "▁connection": 3957, - "usion": 3958, - "kn": 3959, - "RI": 3960, - "▁vom": 3961, - "Listener": 3962, - "▁ö": 3963, - "▁dim": 3964, - "▁press": 3965, - "▁esc": 3966, - "▁Try": 3967, - "atalog": 3968, - "▁thanks": 3969, - "DO": 3970, - "▁written": 3971, - "dir": 3972, - "rew": 3973, - "▁fire": 3974, - "▁Nach": 3975, - "▁á": 3976, - "enc": 3977, - "▁origin": 3978, - "▁November": 3979, - "▁};": 3980, - "Count": 3981, - "▁За": 3982, - "▁graph": 3983, - "▁mis": 3984, - "▁External": 3985, - "▁▁▁▁▁▁▁▁▁": 3986, - "▁options": 3987, - "▁URL": 3988, - "▁php": 3989, - "▁integr": 3990, - "Config": 3991, - "▁Text": 3992, - "inner": 3993, - "▁crit": 3994, - ",”": 3995, - "▁tog": 3996, - "$$": 3997, - "nof": 3998, - "▁ses": 3999, - "ühr": 4000, - "▁Since": 4001, - "Des": 4002, - "ube": 4003, - "▁section": 4004, - "▁gi": 4005, - "ford": 4006, - "▁Ass": 4007, - "ainer": 4008, - "ttp": 4009, - "▁behav": 4010, - "ports": 4011, - "draw": 4012, - "This": 4013, - "ranch": 4014, - "inding": 4015, - "▁estab": 4016, - "▁obtain": 4017, - "rich": 4018, - "licit": 4019, - "ев": 4020, - "▁qual": 4021, - "▁za": 4022, - "▁har": 4023, - "▁fac": 4024, - "aar": 4025, - "jet": 4026, - "icles": 4027, - "▁Aus": 4028, - "▁hor": 4029, - "▁remov": 4030, - "▁wie": 4031, - "Client": 4032, - "▁natur": 4033, - "hip": 4034, - "Sub": 4035, - "▁random": 4036, - "DF": 4037, - "▁area": 4038, - "tag": 4039, - "Pr": 4040, - "▁Ital": 4041, - "▁roku": 4042, - "nofollow": 4043, - "*}": 4044, - "▁others": 4045, - "▁limit": 4046, - "▁sil": 4047, - "▁sav": 4048, - "▁often": 4049, - "▁render": 4050, - "DB": 4051, - "▁Mc": 4052, - "▁zijn": 4053, - "жен": 4054, - "▁tag": 4055, - "ming": 4056, - "lichen": 4057, - "pack": 4058, - "▁Ag": 4059, - "▁sense": 4060, - "pg": 4061, - "Method": 4062, - "aged": 4063, - "ág": 4064, - "ła": 4065, - "▁interest": 4066, - "▁associ": 4067, - "volution": 4068, - "▁empty": 4069, - "iche": 4070, - "▁gro": 4071, - "▁types": 4072, - "▁Sie": 4073, - "Inter": 4074, - "▁noreferrer": 4075, - "▁gives": 4076, - "hal": 4077, - "▁save": 4078, - "▁font": 4079, - "ruction": 4080, - "Script": 4081, - "▁alla": 4082, - "▁says": 4083, - "▁fu": 4084, - "ape": 4085, - "▁language": 4086, - "iger": 4087, - "▁King": 4088, - "bor": 4089, - "uv": 4090, - "▁shall": 4091, - "▁Europe": 4092, - "▁einem": 4093, - "▁water": 4094, - "▁govern": 4095, - "anz": 4096, - "ators": 4097, - "▁month": 4098, - "ye": 4099, - "▁important": 4100, - "atz": 4101, - "first": 4102, - "▁Trans": 4103, - "▁Mad": 4104, - "▁bra": 4105, - "ika": 4106, - "▁Saint": 4107, - "oria": 4108, - "kre": 4109, - "ements": 4110, - "▁Ben": 4111, - "lav": 4112, - "▁admin": 4113, - "▁Hen": 4114, - "ril": 4115, - "▁Sm": 4116, - "cat": 4117, - "▁Refer": 4118, - "▁Ш": 4119, - "▁pract": 4120, - "▁Pat": 4121, - "▁Gre": 4122, - "▁young": 4123, - "▁Inter": 4124, - "oma": 4125, - "teger": 4126, - "ibility": 4127, - "▁parameters": 4128, - "▁everything": 4129, - "dat": 4130, - "urop": 4131, - "olean": 4132, - "▁returned": 4133, - "▁Class": 4134, - "acy": 4135, - "####": 4136, - "▁př": 4137, - "▁folder": 4138, - "▁kon": 4139, - "▁guess": 4140, - "gt": 4141, - "jen": 4142, - "annel": 4143, - "icon": 4144, - "▁comb": 4145, - "rict": 4146, - "▁hij": 4147, - "▁author": 4148, - "see": 4149, - "here": 4150, - "stra": 4151, - "▁entire": 4152, - "▁directly": 4153, - "raft": 4154, - "heet": 4155, - "ester": 4156, - "▁ми": 4157, - "▁mass": 4158, - "untu": 4159, - "▁users": 4160, - "chi": 4161, - "PE": 4162, - "▁component": 4163, - "Click": 4164, - "Att": 4165, - "▁sobre": 4166, - "ands": 4167, - "▁Hol": 4168, - "▁Sant": 4169, - "ori": 4170, - "▁sua": 4171, - "std": 4172, - "entic": 4173, - "CC": 4174, - "▁filter": 4175, - "SQL": 4176, - "▁God": 4177, - "At": 4178, - "▁му": 4179, - "▁performance": 4180, - "delta": 4181, - "ande": 4182, - "amer": 4183, - "ды": 4184, - "▁cult": 4185, - "▁Nor": 4186, - "but": 4187, - "▁lik": 4188, - "********": 4189, - "ствен": 4190, - "▁comme": 4191, - "▁dr": 4192, - "imer": 4193, - "ordin": 4194, - "▁condition": 4195, - "este": 4196, - "([": 4197, - "FF": 4198, - "ться": 4199, - "imo": 4200, - "rab": 4201, - "іль": 4202, - "▁half": 4203, - "each": 4204, - "Dis": 4205, - "▁rows": 4206, - "▁hon": 4207, - "▁together": 4208, - "▁și": 4209, - "medi": 4210, - "agn": 4211, - "alled": 4212, - "▁vill": 4213, - "ING": 4214, - "idden": 4215, - "▁draw": 4216, - "yntax": 4217, - "▁attempt": 4218, - "URL": 4219, - "pose": 4220, - "▁indic": 4221, - "ника": 4222, - "▁English": 4223, - "▁déc": 4224, - "▁needs": 4225, - "▁normal": 4226, - "urt": 4227, - "▁но": 4228, - "}}\\": 4229, - "last": 4230, - "▁Fin": 4231, - "▁Febru": 4232, - "ila": 4233, - "▁country": 4234, - "▁fields": 4235, - "▁max": 4236, - "lés": 4237, - "owie": 4238, - "▁deux": 4239, - "▁built": 4240, - "▁Main": 4241, - "▁camp": 4242, - "ivo": 4243, - "iva": 4244, - "icy": 4245, - "zione": 4246, - "Node": 4247, - "▁:)": 4248, - "▁among": 4249, - "▁Ob": 4250, - "▁cases": 4251, - "haps": 4252, - "sers": 4253, - "arter": 4254, - "ści": 4255, - "▁iter": 4256, - "▁named": 4257, - "exec": 4258, - "▁season": 4259, - "tot": 4260, - "=>": 4261, - "graph": 4262, - "▁nil": 4263, - "acional": 4264, - "▁NULL": 4265, - "▁special": 4266, - "сте": 4267, - "css": 4268, - "▁\\(": 4269, - "vs": 4270, - "ael": 4271, - "▁city": 4272, - "ova": 4273, - "▁article": 4274, - "▁South": 4275, - "Action": 4276, - "ça": 4277, - "spring": 4278, - "itude": 4279, - "▁complex": 4280, - "▁что": 4281, - "build": 4282, - "gamma": 4283, - "▁Ent": 4284, - "iers": 4285, - "'.": 4286, - "car": 4287, - "apache": 4288, - "ingen": 4289, - "Input": 4290, - ": ": 4291, - "▁dynam": 4292, - "alls": 4293, - "show": 4294, - "|\\": 4295, - "▁wird": 4296, - "Bar": 4297, - "alth": 4298, - "model": 4299, - "Trans": 4300, - "Row": 4301, - "abe": 4302, - "▁lib": 4303, - "null": 4304, - "ragment": 4305, - "▁State": 4306, - "▁law": 4307, - "Frame": 4308, - "▁Lo": 4309, - "geb": 4310, - "}$.": 4311, - "▁needed": 4312, - "▁contr": 4313, - "aries": 4314, - "▁screen": 4315, - "yr": 4316, - "mm": 4317, - "▁shown": 4318, - "▁bad": 4319, - "▁cast": 4320, - "▁Test": 4321, - "▁Auf": 4322, - "▁quant": 4323, - "iga": 4324, - "▁ren": 4325, - "▁Mac": 4326, - "▁transform": 4327, - "▁difference": 4328, - "▁tit": 4329, - "TE": 4330, - "▁step": 4331, - "▁capt": 4332, - "▁collection": 4333, - "ictionary": 4334, - "▁Tom": 4335, - "rier": 4336, - "▁move": 4337, - "cope": 4338, - "ords": 4339, - "▁further": 4340, - "▁columns": 4341, - "▁Lin": 4342, - "▁fixed": 4343, - "▁children": 4344, - "MS": 4345, - "mo": 4346, - "una": 4347, - "▁individ": 4348, - "tty": 4349, - "aste": 4350, - "src": 4351, - "match": 4352, - "wi": 4353, - "▁х": 4354, - "▁ди": 4355, - "▁ord": 4356, - "iving": 4357, - "▁Bro": 4358, - "▁almost": 4359, - "▁Pres": 4360, - "reci": 4361, - "aring": 4362, - "▁///": 4363, - "ется": 4364, - "▁sig": 4365, - "light": 4366, - "▁Red": 4367, - "▁suggest": 4368, - "olf": 4369, - "▁été": 4370, - "isation": 4371, - "зна": 4372, - "New": 4373, - "стан": 4374, - "LA": 4375, - "unicip": 4376, - "▁figure": 4377, - "mt": 4378, - "iale": 4379, - "▁catch": 4380, - "default": 4381, - "▁tele": 4382, - "▁matter": 4383, - "cast": 4384, - "▁Rich": 4385, - "▁handle": 4386, - "valu": 4387, - "$-": 4388, - "об": 4389, - "▁json": 4390, - "Create": 4391, - "▁exam": 4392, - "аль": 4393, - "ют": 4394, - "ored": 4395, - "idos": 4396, - "append": 4397, - "▁Array": 4398, - "кс": 4399, - "}[": 4400, - "rive": 4401, - "▁club": 4402, - "mann": 4403, - "▁este": 4404, - "esta": 4405, - "▁Gi": 4406, - "▁Jap": 4407, - "▁Name": 4408, - "Column": 4409, - "oups": 4410, - "ismo": 4411, - "▁City": 4412, - "▁classes": 4413, - "▁infl": 4414, - "hl": 4415, - "ром": 4416, - "▁adding": 4417, - "▁fail": 4418, - "xx": 4419, - "ões": 4420, - "Sc": 4421, - "util": 4422, - "▁location": 4423, - "lege": 4424, - "ago": 4425, - "▁properties": 4426, - "abil": 4427, - "vas": 4428, - "}$,": 4429, - "itted": 4430, - "ód": 4431, - "▁Dem": 4432, - "▁asked": 4433, - "▁tab": 4434, - "Source": 4435, - "▁errors": 4436, - "ographie": 4437, - "▁жи": 4438, - "▁mal": 4439, - "stract": 4440, - "▁dro": 4441, - "rak": 4442, - "▁note": 4443, - "▁setting": 4444, - "▁fem": 4445, - "▁saw": 4446, - "iar": 4447, - "HER": 4448, - "ес": 4449, - "▁pred": 4450, - "▁Out": 4451, - "▁items": 4452, - "лан": 4453, - "▁werd": 4454, - "ersion": 4455, - "lia": 4456, - "▁sin": 4457, - "ichte": 4458, - "▁feel": 4459, - "▁пра": 4460, - "▁oder": 4461, - "UE": 4462, - "ocument": 4463, - "▁mode": 4464, - "▁Na": 4465, - "ден": 4466, - "mes": 4467, - "framework": 4468, - "▁auto": 4469, - "ным": 4470, - "uby": 4471, - "▁template": 4472, - "▁mess": 4473, - "ieder": 4474, - "▁related": 4475, - "oken": 4476, - "▁follows": 4477, - "search": 4478, - "ami": 4479, - "▁wait": 4480, - "igr": 4481, - "▁low": 4482, - "ских": 4483, - "ская": 4484, - "▁Mark": 4485, - "▁ill": 4486, - "amento": 4487, - "\\<": 4488, - "▁df": 4489, - "osition": 4490, - "▁Ви": 4491, - "isf": 4492, - "▁Deutsch": 4493, - "ahl": 4494, - "war": 4495, - "itect": 4496, - "▁sal": 4497, - "elen": 4498, - "ById": 4499, - "▁gru": 4500, - "sv": 4501, - "▁passed": 4502, - "▁añ": 4503, - "Sch": 4504, - "▁solve": 4505, - "weise": 4506, - "atos": 4507, - "▁meg": 4508, - "▁member": 4509, - "ername": 4510, - "▁connect": 4511, - "ips": 4512, - "▁round": 4513, - "▁]": 4514, - "nes": 4515, - "▁dir": 4516, - "▁London": 4517, - "dy": 4518, - "FA": 4519, - "▁received": 4520, - "reet": 4521, - "▁Log": 4522, - "▁School": 4523, - "ango": 4524, - "▁These": 4525, - "▁Mont": 4526, - "▁ener": 4527, - "lad": 4528, - "▁define": 4529, - "sign": 4530, - "▁cle": 4531, - "figure": 4532, - "▁View": 4533, - "textbf": 4534, - "$\\": 4535, - "зы": 4536, - "number": 4537, - "▁din": 4538, - "eller": 4539, - "orithm": 4540, - "false": 4541, - "fol": 4542, - "fficient": 4543, - "▁HTML": 4544, - "liche": 4545, - "▁Mo": 4546, - "▁introdu": 4547, - "exp": 4548, - "▁strong": 4549, - "▁thus": 4550, - "/)": 4551, - "▁ele": 4552, - "▁так": 4553, - "▁па": 4554, - "▁dont": 4555, - "▁cause": 4556, - "Number": 4557, - "▁images": 4558, - "▁sample": 4559, - "▁sci": 4560, - "like": 4561, - "▁Lou": 4562, - "div": 4563, - "anc": 4564, - "▁front": 4565, - "nen": 4566, - "▁missing": 4567, - "aria": 4568, - "pres": 4569, - "▁пред": 4570, - "DI": 4571, - "filter": 4572, - "▁Mit": 4573, - "UR": 4574, - "▁opp": 4575, - "▁sql": 4576, - "▁року": 4577, - "eren": 4578, - "emat": 4579, - "ís": 4580, - "▁Jean": 4581, - "éc": 4582, - "▁ci": 4583, - "enne": 4584, - "atform": 4585, - "▁taken": 4586, - "▁Of": 4587, - "▁насе": 4588, - "▁err": 4589, - "OP": 4590, - "From": 4591, - "Default": 4592, - "▁General": 4593, - "wiki": 4594, - "▁grand": 4595, - "▁einen": 4596, - "Reg": 4597, - "Handler": 4598, - "conom": 4599, - "anger": 4600, - "▁был": 4601, - "▁Los": 4602, - "▁expression": 4603, - "ша": 4604, - "yal": 4605, - "▁$('": 4606, - "▁switch": 4607, - "▁vector": 4608, - "▁Thom": 4609, - "▁virt": 4610, - "leased": 4611, - "▁cover": 4612, - "▁resp": 4613, - "ako": 4614, - "rench": 4615, - "ota": 4616, - "Cell": 4617, - "anged": 4618, - "▁+=": 4619, - "lac": 4620, - "ska": 4621, - "next": 4622, - "▁International": 4623, - "▁Wil": 4624, - "▁ont": 4625, - "ibr": 4626, - "ustr": 4627, - "▁black": 4628, - "▁selected": 4629, - "cher": 4630, - "▁liter": 4631, - "root": 4632, - "лся": 4633, - "▁Life": 4634, - "▁insert": 4635, - "▁matrix": 4636, - "ises": 4637, - ")]": 4638, - "▁pel": 4639, - "Override": 4640, - "rypt": 4641, - "▁former": 4642, - "▁Film": 4643, - "▁North": 4644, - "client": 4645, - "▁night": 4646, - "ходи": 4647, - "▁Austral": 4648, - "▁Ret": 4649, - "rho": 4650, - "▁пер": 4651, - "ipedia": 4652, - "▁express": 4653, - "▁third": 4654, - "▁major": 4655, - "▁grad": 4656, - "owe": 4657, - "▁believe": 4658, - "ournal": 4659, - "▁status": 4660, - "unc": 4661, - "▁dou": 4662, - "▁JSON": 4663, - "uis": 4664, - "▁population": 4665, - "enz": 4666, - "▁William": 4667, - "sf": 4668, - "▁Object": 4669, - "▁cin": 4670, - "▁Di": 4671, - "curity": 4672, - "▁Open": 4673, - "▁ле": 4674, - "lar": 4675, - "adding": 4676, - "▁kom": 4677, - "}(\\": 4678, - "▁kil": 4679, - "umer": 4680, - "\"/>": 4681, - "▁feature": 4682, - "▁Are": 4683, - "cks": 4684, - "▁Internet": 4685, - "▁ih": 4686, - "▁started": 4687, - "▁early": 4688, - "▁began": 4689, - "TH": 4690, - "python": 4691, - "asp": 4692, - "▁Fr": 4693, - "▁clos": 4694, - "istic": 4695, - "▁music": 4696, - "▁dig": 4697, - "▁ital": 4698, - "▁David": 4699, - "▁website": 4700, - "▁controller": 4701, - "▁Mer": 4702, - "context": 4703, - "product": 4704, - "osp": 4705, - "▁▁▁▁▁▁▁": 4706, - "▁jun": 4707, - "rown": 4708, - "▁Az": 4709, - "\":\"": 4710, - "▁aan": 4711, - "▁Date": 4712, - "mult": 4713, - "▁browser": 4714, - "ред": 4715, - "which": 4716, - "RA": 4717, - "quare": 4718, - "▁Russ": 4719, - "▁soon": 4720, - "▁Pre": 4721, - "tau": 4722, - "▁week": 4723, - "▁ба": 4724, - "▁oct": 4725, - "▁town": 4726, - "roy": 4727, - "▁els": 4728, - "blic": 4729, - "undle": 4730, - "▁Histor": 4731, - "▁foi": 4732, - "▁models": 4733, - "зо": 4734, - "onym": 4735, - "Param": 4736, - "▁Met": 4737, - "gener": 4738, - "ją": 4739, - "▁espe": 4740, - "CE": 4741, - "▁device": 4742, - "ellow": 4743, - "▁debug": 4744, - "érie": 4745, - "using": 4746, - "анг": 4747, - "▁*)": 4748, - "udi": 4749, - "▁Miss": 4750, - "ком": 4751, - "posed": 4752, - "▁zwe": 4753, - "ін": 4754, - "▁Robert": 4755, - "▁Oct": 4756, - "lop": 4757, - "jar": 4758, - "▁aver": 4759, - "▁habit": 4760, - "▁::": 4761, - "äng": 4762, - "Start": 4763, - "▁pow": 4764, - "▁src": 4765, - "▁pattern": 4766, - "▁Э": 4767, - "▁bi": 4768, - "otes": 4769, - "▁__": 4770, - "▁sens": 4771, - "▁avoid": 4772, - "example": 4773, - "utt": 4774, - "Label": 4775, - "tex": 4776, - "boot": 4777, - "esto": 4778, - "▁March": 4779, - "▁easy": 4780, - "icture": 4781, - "Group": 4782, - "▁father": 4783, - "▁updated": 4784, - "▁Vo": 4785, - "▁III": 4786, - "omega": 4787, - "▁alle": 4788, - "Rec": 4789, - "yg": 4790, - "зе": 4791, - "▁Dim": 4792, - "nect": 4793, - "▁Tor": 4794, - "▁deutsch": 4795, - "▁white": 4796, - "▁national": 4797, - "ppe": 4798, - "▁air": 4799, - "▁password": 4800, - "det": 4801, - "▁big": 4802, - "▁Use": 4803, - "call": 4804, - "▁extra": 4805, - "We": 4806, - "ania": 4807, - "▁hold": 4808, - "Control": 4809, - "▁CO": 4810, - "▁мі": 4811, - "iti": 4812, - "▁Ke": 4813, - "enu": 4814, - "▁Park": 4815, - "том": 4816, - "▁auth": 4817, - "▁center": 4818, - "Ph": 4819, - "тов": 4820, - "iding": 4821, - "▁across": 4822, - "▁song": 4823, - "▁phys": 4824, - "▁numer": 4825, - "ща": 4826, - "▁Alex": 4827, - "▁problems": 4828, - "▁Error": 4829, - "format": 4830, - "▁Acc": 4831, - "▁six": 4832, - "▁db": 4833, - "▁Cast": 4834, - "oms": 4835, - "project": 4836, - "▁vert": 4837, - "cret": 4838, - "▁header": 4839, - "▁stream": 4840, - "ids": 4841, - "▁tor": 4842, - "▁sept": 4843, - "▁estim": 4844, - "▁decl": 4845, - "▁gave": 4846, - "▁player": 4847, - "ysis": 4848, - "▁дру": 4849, - "amm": 4850, - "що": 4851, - "▁(\"": 4852, - "▁ax": 4853, - "Property": 4854, - "usr": 4855, - "▁someone": 4856, - "▁impro": 4857, - "aden": 4858, - "rote": 4859, - "▁Ми": 4860, - "ih": 4861, - "++)": 4862, - "▁video": 4863, - "▁exists": 4864, - "кла": 4865, - "▁complete": 4866, - "▁session": 4867, - "▁constant": 4868, - "icos": 4869, - "▁pack": 4870, - "rome": 4871, - "egr": 4872, - "Application": 4873, - "▁yes": 4874, - "▁elle": 4875, - "▁email": 4876, - "orf": 4877, - "case": 4878, - "▁pointer": 4879, - "▁regard": 4880, - "sen": 4881, - "status": 4882, - "▁mes": 4883, - "▁delle": 4884, - "ington": 4885, - "▁Bas": 4886, - ")^": 4887, - "develop": 4888, - "▁force": 4889, - "▁characters": 4890, - "▁cross": 4891, - "▁death": 4892, - "▁takes": 4893, - "éri": 4894, - "igne": 4895, - "чен": 4896, - "UP": 4897, - ".:": 4898, - "Thread": 4899, - "ju": 4900, - "iny": 4901, - "▁details": 4902, - "▁xml": 4903, - "tait": 4904, - "output": 4905, - "message": 4906, - "''": 4907, - "▁British": 4908, - "ville": 4909, - "▁Div": 4910, - "▁User": 4911, - "cm": 4912, - "чно": 4913, - "column": 4914, - "eqref": 4915, - "ór": 4916, - "onom": 4917, - "▁Post": 4918, - "ellen": 4919, - "Ab": 4920, - "ulté": 4921, - "▁perfect": 4922, - "(){": 4923, - "vision": 4924, - "active": 4925, - "lier": 4926, - "rij": 4927, - "sd": 4928, - "▁kö": 4929, - "▁nie": 4930, - "▁relig": 4931, - "▁ot": 4932, - "▁machine": 4933, - "▁held": 4934, - ")$.": 4935, - "========": 4936, - "cker": 4937, - "вы": 4938, - "born": 4939, - "▁past": 4940, - "рия": 4941, - "▁Dr": 4942, - "▁regular": 4943, - "▁provided": 4944, - "TER": 4945, - "▁univers": 4946, - "▁gets": 4947, - "▁nu": 4948, - "▁/*": 4949, - "ober": 4950, - "fin": 4951, - "▁nella": 4952, - "▁become": 4953, - "▁``": 4954, - "▁history": 4955, - "▁Sol": 4956, - "▁Rad": 4957, - "▁terms": 4958, - "▁events": 4959, - "lymp": 4960, - ")))": 4961, - "рова": 4962, - "▁absol": 4963, - "▁soft": 4964, - "links": 4965, - "▁hope": 4966, - "▁subject": 4967, - "\"),": 4968, - "▁creating": 4969, - "▁}\r": 4970, - "▁Sk": 4971, - "▁flow": 4972, - "▁Ра": 4973, - "▁assert": 4974, - "zet": 4975, - "▁Frank": 4976, - "sa": 4977, - "▁distribution": 4978, - "cu": 4979, - "band": 4980, - "izz": 4981, - "▁job": 4982, - "iner": 4983, - "struct": 4984, - "ák": 4985, - "TO": 4986, - "auf": 4987, - "▁extends": 4988, - "▁Gra": 4989, - "display": 4990, - "▁signific": 4991, - "oney": 4992, - "source": 4993, - "microsoft": 4994, - "inder": 4995, - "▁quick": 4996, - "▁wonder": 4997, - "Instance": 4998, - "elles": 4999, - "ème": 5000, - "▁company": 5001, - "uß": 5002, - ".}": 5003, - "▁separate": 5004, - "UM": 5005, - "HERE": 5006, - "▁writing": 5007, - "itution": 5008, - "▁Gesch": 5009, - "мя": 5010, - "▁James": 5011, - "▁DE": 5012, - "▁Spe": 5013, - "process": 5014, - "Str": 5015, - "▁sym": 5016, - "▁ao": 5017, - "▁wy": 5018, - "▁anyone": 5019, - "▁Up": 5020, - "useum": 5021, - "aron": 5022, - "▁definition": 5023, - "▁`$": 5024, - "▁fav": 5025, - "ributes": 5026, - "▁Ré": 5027, - "ografia": 5028, - "element": 5029, - "cap": 5030, - "pat": 5031, - "▁Bra": 5032, - ")(": 5033, - "▁according": 5034, - "ге": 5035, - "▁pie": 5036, - "eli": 5037, - "}\"": 5038, - "▁activ": 5039, - "▁stop": 5040, - "patch": 5041, - "ті": 5042, - "▁Jose": 5043, - "End": 5044, - "▁prze": 5045, - "▁age": 5046, - "itory": 5047, - "▁PHP": 5048, - "agement": 5049, - "▁`.": 5050, - "▁pretty": 5051, - "▁recomm": 5052, - "▁sud": 5053, - "▁requ": 5054, - "▁обла": 5055, - "atives": 5056, - "▁High": 5057, - "áz": 5058, - "oul": 5059, - "rest": 5060, - "▁Ter": 5061, - "under": 5062, - "thern": 5063, - "center": 5064, - "▁ur": 5065, - "lat": 5066, - "▁interface": 5067, - "▁ин": 5068, - "▁whose": 5069, - "icas": 5070, - "amen": 5071, - "Filter": 5072, - "▁station": 5073, - "Page": 5074, - "▁arm": 5075, - "▁eyes": 5076, - "▁рай": 5077, - "▁seu": 5078, - "oli": 5079, - "win": 5080, - "lik": 5081, - "gex": 5082, - "chan": 5083, - "idence": 5084, - "args": 5085, - "aking": 5086, - "▁Google": 5087, - "▁Stud": 5088, - "▁ho": 5089, - "торы": 5090, - "Su": 5091, - "▁automat": 5092, - "ême": 5093, - "▁cy": 5094, - "lor": 5095, - "▁stack": 5096, - "▁SELECT": 5097, - "AF": 5098, - "▁>>": 5099, - "▁compet": 5100, - "▁pair": 5101, - "▁inglés": 5102, - "Response": 5103, - "▁Fig": 5104, - "grad": 5105, - "▁documentation": 5106, - "▁cant": 5107, - "▁appreci": 5108, - "ån": 5109, - "▁learn": 5110, - "▁indep": 5111, - "▁pal": 5112, - "package": 5113, - "ares": 5114, - "▁Berlin": 5115, - "бли": 5116, - "reich": 5117, - "ён": 5118, - "▁satisf": 5119, - "▁region": 5120, - "▁friend": 5121, - "▁George": 5122, - "▁Во": 5123, - "▁\"\"": 5124, - "▁desde": 5125, - "Factory": 5126, - "▁County": 5127, - "ouv": 5128, - "▁‘": 5129, - "▁installed": 5130, - "▁wanted": 5131, - "▁Python": 5132, - "▁interpre": 5133, - "▁included": 5134, - "▁((": 5135, - "▁altern": 5136, - "isto": 5137, - "gn": 5138, - "▁border": 5139, - "pdf": 5140, - "▁dup": 5141, - "▁download": 5142, - "just": 5143, - "▁members": 5144, - "child": 5145, - "▁pay": 5146, - "▁cer": 5147, - "▁looked": 5148, - "▁correctly": 5149, - "auth": 5150, - "▁стан": 5151, - "▁esp": 5152, - "▁desc": 5153, - "eben": 5154, - "▁questions": 5155, - "mal": 5156, - "▁abgerufen": 5157, - "▁Band": 5158, - "▁[]": 5159, - "Base": 5160, - "▁ris": 5161, - "▁fort": 5162, - "▁Id": 5163, - "▁various": 5164, - "▁League": 5165, - "▁Hand": 5166, - "▁Type": 5167, - "irl": 5168, - "▁Fe": 5169, - "ién": 5170, - "itter": 5171, - "▁fast": 5172, - "sta": 5173, - "▁except": 5174, - "icz": 5175, - "▁French": 5176, - "▁environment": 5177, - "▁conse": 5178, - "ур": 5179, - "ого": 5180, - "▁necessary": 5181, - "target": 5182, - "▁reading": 5183, - "home": 5184, - "zeich": 5185, - "▁equal": 5186, - "▁più": 5187, - "▁prem": 5188, - "▁difficult": 5189, - "▁unit": 5190, - "▁replace": 5191, - "▁heart": 5192, - "▁talk": 5193, - "AM": 5194, - "▁RE": 5195, - "▁Person": 5196, - "endency": 5197, - "▁imm": 5198, - "▁human": 5199, - "dn": 5200, - "▁Kir": 5201, - "▁Aut": 5202, - "known": 5203, - "▁frequ": 5204, - "system": 5205, - "лав": 5206, - "▁Sz": 5207, - "▁Gal": 5208, - "ное": 5209, - "selves": 5210, - "rightarrow": 5211, - "▁Са": 5212, - "=\"@": 5213, - "▁building": 5214, - "import": 5215, - "▁fam": 5216, - "▁delete": 5217, - "aire": 5218, - "mary": 5219, - "▁fund": 5220, - "▁particip": 5221, - "▁syn": 5222, - "sin": 5223, - "▁lower": 5224, - "▁zero": 5225, - "▁sec": 5226, - "▁fra": 5227, - "Point": 5228, - "▁failed": 5229, - "iento": 5230, - "cup": 5231, - "▁slow": 5232, - "▁nation": 5233, - "ähr": 5234, - "▁info": 5235, - "▁Public": 5236, - "▁decla": 5237, - "▁Та": 5238, - "▁sold": 5239, - "▁Rem": 5240, - "▁Phil": 5241, - "стра": 5242, - "▁mehr": 5243, - "▁Work": 5244, - "▁Nord": 5245, - "▁fait": 5246, - "▁gew": 5247, - "println": 5248, - "obile": 5249, - "▁Kon": 5250, - "▁assume": 5251, - "lands": 5252, - "▁amount": 5253, - "▁Press": 5254, - "ých": 5255, - "▁maxim": 5256, - "▁Champion": 5257, - "library": 5258, - "añ": 5259, - "▁Wal": 5260, - "Comm": 5261, - "]]": 5262, - "▁zw": 5263, - "▁social": 5264, - "LI": 5265, - "▁Unter": 5266, - "vor": 5267, - "Delta": 5268, - "email": 5269, - "raint": 5270, - "oni": 5271, - "▁alt": 5272, - "▁né": 5273, - "ция": 5274, - "ography": 5275, - "▁mentioned": 5276, - "▁<=": 5277, - "▁cette": 5278, - "▁currently": 5279, - "vare": 5280, - "izing": 5281, - "▁Def": 5282, - "icol": 5283, - "ünd": 5284, - "▁configuration": 5285, - "estig": 5286, - "III": 5287, - "lam": 5288, - "ière": 5289, - "▁Ear": 5290, - "▁tu": 5291, - "Ent": 5292, - "▁Using": 5293, - "▁ком": 5294, - "cie": 5295, - "▁proof": 5296, - "▁invol": 5297, - "▁History": 5298, - "><": 5299, - "▁AND": 5300, - "avy": 5301, - "▁relations": 5302, - "${": 5303, - "▁comes": 5304, - "▁direction": 5305, - "▁June": 5306, - "▁Way": 5307, - "Component": 5308, - "ech": 5309, - "▁Peter": 5310, - "sg": 5311, - "▁stra": 5312, - "uct": 5313, - "▁implementation": 5314, - "attle": 5315, - "▁cz": 5316, - "plot": 5317, - "▁played": 5318, - "\">(": 5961, - "▁ground": 5962, - "unn": 5963, - "rod": 5964, - "spe": 5965, - "ursor": 5966, - "▁leave": 5967, - "erk": 5968, - "▁tal": 5969, - "▁bottom": 5970, - "IO": 5971, - "▁popular": 5972, - "igo": 5973, - "▁Time": 5974, - "values": 5975, - "▁Loc": 5976, - "▁Club": 5977, - "▁anche": 5978, - "iał": 5979, - "ії": 5980, - "Omega": 5981, - "▁located": 5982, - "Url": 5983, - "▁Esp": 5984, - "лы": 5985, - "ць": 5986, - "ulate": 5987, - "▁join": 5988, - "aves": 5989, - "vet": 5990, - "lio": 5991, - "remove": 5992, - "▁token": 5993, - "▁optim": 5994, - "▁claim": 5995, - "ological": 5996, - "▁css": 5997, - "▁although": 5998, - "▁priv": 5999, - "▁Ba": 6000, - "ül": 6001, - "entication": 6002, - "▁ven": 6003, - "Server": 6004, - "▁Cong": 6005, - "NET": 6006, - "CON": 6007, - "dt": 6008, - "perties": 6009, - "▁epis": 6010, - "wikipedia": 6011, - "▁engine": 6012, - "▁fer": 6013, - "getElement": 6014, - "▁Cla": 6015, - "ří": 6016, - "▁rom": 6017, - "varepsilon": 6018, - "▁prime": 6019, - "istry": 6020, - "pected": 6021, - "orage": 6022, - "▁touch": 6023, - "▁['": 6024, - "▁dan": 6025, - "Em": 6026, - "aciones": 6027, - "Can": 6028, - "▁whom": 6029, - "▁behavior": 6030, - "▁strings": 6031, - "▁Europ": 6032, - "▁Rom": 6033, - "circ": 6034, - "▁pun": 6035, - "▁register": 6036, - "buntu": 6037, - "rain": 6038, - "Ob": 6039, - "TA": 6040, - "▁sometimes": 6041, - "▁ment": 6042, - "▁integer": 6043, - "▁Jac": 6044, - "legate": 6045, - "othing": 6046, - "▁sound": 6047, - "laces": 6048, - "▁Ба": 6049, - "rb": 6050, - "di": 6051, - "ления": 6052, - "▁themselves": 6053, - "▁Black": 6054, - "▁settings": 6055, - "▁norm": 6056, - "▁runs": 6057, - "▁NOT": 6058, - "KE": 6059, - "▁perhaps": 6060, - "▁Я": 6061, - "▁mol": 6062, - "▁ans": 6063, - "atre": 6064, - "▁Dies": 6065, - "Token": 6066, - "anie": 6067, - "▁allowed": 6068, - "Range": 6069, - "▁Gro": 6070, - "via": 6071, - "utorial": 6072, - "ensor": 6073, - "estival": 6074, - ");\r": 6075, - "краї": 6076, - "▁turned": 6077, - "scope": 6078, - "▁bien": 6079, - "=$": 6080, - "▁extension": 6081, - "atore": 6082, - "▁Ро": 6083, - "▁specify": 6084, - "edu": 6085, - "Datos": 6086, - "▁stored": 6087, - "▁parse": 6088, - "▁answers": 6089, - "ills": 6090, - "▁heard": 6091, - "lu": 6092, - "▁THE": 6093, - "▁gén": 6094, - "▁ful": 6095, - "ez": 6096, - "▁Prem": 6097, - "then": 6098, - "dp": 6099, - "ського": 6100, - "▁Si": 6101, - "ço": 6102, - "Edit": 6103, - "ків": 6104, - "▁Ли": 6105, - "▁Sing": 6106, - "▁categ": 6107, - "Equ": 6108, - "▁guer": 6109, - "Width": 6110, - "▁Christian": 6111, - "stat": 6112, - "Write": 6113, - "▁woman": 6114, - "wood": 6115, - "Vis": 6116, - "раз": 6117, - "▁$$\\": 6118, - "oder": 6119, - "▁bool": 6120, - "▁international": 6121, - "ность": 6122, - "▁Richard": 6123, - "▁addition": 6124, - "▁Music": 6125, - "▁aber": 6126, - "tó": 6127, - "▁hier": 6128, - "ugh": 6129, - "▁pob": 6130, - "▁tables": 6131, - "Do": 6132, - "▁higher": 6133, - "psi": 6134, - "rá": 6135, - "▁active": 6136, - "▁Table": 6137, - "ње": 6138, - "▁description": 6139, - "▁seemed": 6140, - "íst": 6141, - "▁myself": 6142, - "▁menu": 6143, - "del": 6144, - "▁ž": 6145, - "ele": 6146, - "Aut": 6147, - "▁гру": 6148, - "mut": 6149, - "oon": 6150, - "asc": 6151, - "bug": 6152, - "▁moved": 6153, - "CL": 6154, - "▁datas": 6155, - "SO": 6156, - "оло": 6157, - "▁Georg": 6158, - "▁reach": 6159, - ":\"": 6160, - "▁evalu": 6161, - "▁Hel": 6162, - "▁River": 6163, - "▁Ар": 6164, - "////": 6165, - "▁sets": 6166, - "▁Olymp": 6167, - "Adapter": 6168, - ".'": 6169, - "overn": 6170, - "▁Lord": 6171, - "!--": 6172, - "jpg": 6173, - "imento": 6174, - "▁Prof": 6175, - "▁achieve": 6176, - "}:": 6177, - "▁incor": 6178, - "▁onder": 6179, - "engl": 6180, - "ABLE": 6181, - "▁Mary": 6182, - "▁waren": 6183, - "lage": 6184, - "Dec": 6185, - "англ": 6186, - "encias": 6187, - "лей": 6188, - "▁Machine": 6189, - "▁Ан": 6190, - "uda": 6191, - "▁ś": 6192, - "▁XX": 6193, - "only": 6194, - "ление": 6195, - "▁también": 6196, - "nej": 6197, - "▁relative": 6198, - "▁hours": 6199, - "▁indeed": 6200, - "undo": 6201, - "ingu": 6202, - "area": 6203, - "▁Create": 6204, - "beit": 6205, - "▁removed": 6206, - "master": 6207, - "haus": 6208, - "▁Bern": 6209, - "▁speed": 6210, - "▁Bay": 6211, - "▁Att": 6212, - "▁None": 6213, - "application": 6214, - "üd": 6215, - "▁fit": 6216, - "▁Maria": 6217, - "▁nord": 6218, - "▁split": 6219, - "▁stru": 6220, - "▁official": 6221, - "▁execute": 6222, - "ouve": 6223, - "{{": 6224, - "▁Ap": 6225, - "▁ку": 6226, - "IL": 6227, - "▁^": 6228, - "dim": 6229, - "▁setup": 6230, - "ск": 6231, - "▁share": 6232, - "▁minutes": 6233, - "gle": 6234, - "oco": 6235, - "stell": 6236, - "▁Coun": 6237, - "▁temper": 6238, - "keit": 6239, - "ський": 6240, - "ao": 6241, - "▁Long": 6242, - "(&": 6243, - "кан": 6244, - "▁dens": 6245, - "But": 6246, - "XX": 6247, - "DATE": 6248, - "gan": 6249, - ".).": 6250, - "▁entry": 6251, - "install": 6252, - "▁зна": 6253, - "▁Som": 6254, - "Command": 6255, - "ßen": 6256, - "▁starting": 6257, - "▁sto": 6258, - "IG": 6259, - "▁minim": 6260, - "▁explicit": 6261, - "▁bytes": 6262, - "▁party": 6263, - "tober": 6264, - "▁Grand": 6265, - "▁Vor": 6266, - "▁leur": 6267, - "Document": 6268, - "erc": 6269, - "ensive": 6270, - "CP": 6271, - "env": 6272, - "▁arguments": 6273, - "▁Gran": 6274, - "arily": 6275, - "▁lin": 6276, - "tn": 6277, - "(-": 6278, - "geq": 6279, - "▁Famil": 6280, - "▁Бо": 6281, - "▁tour": 6282, - "▁nav": 6283, - "▁properly": 6284, - "▁Mrs": 6285, - "▁Mel": 6286, - "▁scale": 6287, - "astic": 6288, - "ds": 6289, - "▁Sir": 6290, - "▁Church": 6291, - "}^{\\": 6292, - "you": 6293, - "/.": 6294, - "So": 6295, - "▁brought": 6296, - "▁role": 6297, - "▁Sur": 6298, - "▁fond": 6299, - "▁ges": 6300, - "że": 6301, - "eten": 6302, - "▁était": 6303, - "SER": 6304, - "▁которы": 6305, - "▁equation": 6306, - "aspx": 6307, - "▁Afr": 6308, - "▁dit": 6309, - "empty": 6310, - "alement": 6311, - "wrap": 6312, - "▁Bet": 6313, - "▁collect": 6314, - "▁git": 6315, - "▁vie": 6316, - "▁..": 6317, - "рой": 6318, - "▁": 6580, - "▁Ва": 6581, - "nost": 6582, - "▁nem": 6583, - "▁pen": 6584, - "Open": 6585, - "▁church": 6586, - "кон": 6587, - "▁average": 6588, - "▁comments": 6589, - "▁corresponding": 6590, - "levant": 6591, - "▁bed": 6592, - "▁meaning": 6593, - "Version": 6594, - "Link": 6595, - "bel": 6596, - "▁extract": 6597, - "ść": 6598, - "▁IV": 6599, - "▁Ir": 6600, - "▁computer": 6601, - "▁affect": 6602, - "▁Ста": 6603, - "AX": 6604, - "sort": 6605, - "▁species": 6606, - "▁Oper": 6607, - "▁hash": 6608, - "ches": 6609, - "▁Einzeln": 6610, - "▁keys": 6611, - "▁marzo": 6612, - "▁interpret": 6613, - "hood": 6614, - "▁coordin": 6615, - "ös": 6616, - "rage": 6617, - "etz": 6618, - "iza": 6619, - "дер": 6620, - "üt": 6621, - "^*": 6622, - "▁modify": 6623, - "▁termin": 6624, - "▁cred": 6625, - "zon": 6626, - "ную": 6627, - "▁mie": 6628, - "▁''": 6629, - "▁Mos": 6630, - "▁connected": 6631, - "NO": 6632, - "▁compile": 6633, - "▁\"\\": 6634, - "▁cat": 6635, - "fiddle": 6636, - "uta": 6637, - "Access": 6638, - "▁Sto": 6639, - "▁Bur": 6640, - "▁north": 6641, - "Gamma": 6642, - "▁alloc": 6643, - "Init": 6644, - "▁Link": 6645, - "ialize": 6646, - "Impl": 6647, - "oupe": 6648, - "ropri": 6649, - "▁Gold": 6650, - "▁solo": 6651, - "▁Dist": 6652, - ",-": 6653, - "nav": 6654, - "▁alert": 6655, - "esis": 6656, - "▁Os": 6657, - "///": 6658, - "▁feb": 6659, - "▁-->": 6660, - "foot": 6661, - "▁Fried": 6662, - "▁Einzelnach": 6663, - "▁rev": 6664, - "zeit": 6665, - "▁Stat": 6666, - "▁Seg": 6667, - "▁blo": 6668, - "wick": 6669, - "EL": 6670, - "caption": 6671, - "header": 6672, - "▁president": 6673, - "▁multip": 6674, - "▁Einzelnachweise": 6675, - "▁seine": 6676, - "?”": 6677, - "Function": 6678, - "▁Stand": 6679, - "▁Function": 6680, - "▁?>": 6681, - "▁Bill": 6682, - "▁spect": 6683, - "▁redirect": 6684, - "rupt": 6685, - "▁walk": 6686, - "вши": 6687, - "springframework": 6688, - "place": 6689, - "ého": 6690, - "Entity": 6691, - "▁Service": 6692, - "inte": 6693, - "▁training": 6694, - "▁(`": 6695, - "фор": 6696, - "▁кра": 6697, - "aur": 6698, - "▁fetch": 6699, - "▁†": 6700, - "▁même": 6701, - "▁('": 6702, - "atively": 6703, - "▁execut": 6704, - "äch": 6705, - "▁Catalogue": 6706, - "based": 6707, - "Attribute": 6708, - "▁spring": 6709, - "phone": 6710, - "тра": 6711, - "▁пи": 6712, - "тера": 6713, - "▁`\\": 6714, - "▁Od": 6715, - "One": 6716, - "send": 6717, - "bon": 6718, - "▁°": 6719, - "MO": 6720, - "▁asking": 6721, - "▁où": 6722, - "▁ingår": 6723, - "▁testing": 6724, - "▁фа": 6725, - "▁Book": 6726, - "imm": 6727, - "▁progress": 6728, - "bro": 6729, - "First": 6730, - "▁phot": 6731, - "▁ON": 6732, - "Template": 6733, - "developer": 6734, - "annot": 6735, - "▁>=": 6736, - "mission": 6737, - "▁któ": 6738, - "pc": 6739, - "bach": 6740, - "zent": 6741, - "ued": 6742, - "▁ones": 6743, - "ји": 6744, - "▁rout": 6745, - "▁Ки": 6746, - "Post": 6747, - "ції": 6748, - "▁Vir": 6749, - "nek": 6750, - "aging": 6751, - "▁ок": 6752, - "izont": 6753, - "▁agosto": 6754, - "▁choose": 6755, - "▁\r": 6756, - "▁systems": 6757, - "loss": 6758, - "iente": 6759, - "▁Cre": 6760, - "▁contra": 6761, - "ums": 6762, - "▁beginning": 6763, - "emy": 6764, - "istics": 6765, - "▁served": 6766, - "Down": 6767, - "options": 6768, - "▁Govern": 6769, - "▁BY": 6770, - "▁jest": 6771, - "té": 6772, - "▁continue": 6773, - "pers": 6774, - "▁easier": 6775, - "▁cos": 6776, - "esso": 6777, - ">>": 6778, - "Net": 6779, - "▁Bor": 6780, - "▁Cr": 6781, - "▁transfer": 6782, - "▁CSS": 6783, - "▁finns": 6784, - "▁хо": 6785, - "username": 6786, - "▁constru": 6787, - "▁pain": 6788, - "▁Tem": 6789, - "▁specified": 6790, - "▁brit": 6791, - "ские": 6792, - "irk": 6793, - "rapper": 6794, - "▁counter": 6795, - "▁[\"": 6796, - "oded": 6797, - "дан": 6798, - "property": 6799, - "hard": 6800, - "istrict": 6801, - ")/": 6802, - "▁Pour": 6803, - "▁Where": 6804, - "▁===": 6805, - "▁sowie": 6806, - "▁Про": 6807, - "▁dess": 6808, - "▁tras": 6809, - "▁уча": 6810, - "▁Over": 6811, - "note": 6812, - "▁America": 6813, - "cp": 6814, - "▁grande": 6815, - "Me": 6816, - ")-": 6817, - "Mode": 6818, - "▁passing": 6819, - "▁giving": 6820, - "Cl": 6821, - "}/": 6822, - "Menu": 6823, - "!!": 6824, - "angular": 6825, - "▁launch": 6826, - "varphi": 6827, - "▁Johann": 6828, - "▁foreach": 6829, - "ró": 6830, - "sequ": 6831, - "ifi": 6832, - "Am": 6833, - "arp": 6834, - "▁buffer": 6835, - "▁ni": 6836, - "▁mix": 6837, - "▁Museum": 6838, - "▁meant": 6839, - "asi": 6840, - "▁kan": 6841, - "прав": 6842, - "Comp": 6843, - "istoire": 6844, - "iful": 6845, - "jer": 6846, - "issions": 6847, - "Resource": 6848, - "▁воз": 6849, - "▁ST": 6850, - "▁solutions": 6851, - "▁belong": 6852, - "▁Associ": 6853, - "cf": 6854, - "▁Mär": 6855, - "▁grid": 6856, - "Mult": 6857, - "▁requires": 6858, - "kk": 6859, - "▁teach": 6860, - "emeinde": 6861, - "▁square": 6862, - "▁коман": 6863, - "▁Event": 6864, - "▁rules": 6865, - "▁bur": 6866, - "▁eing": 6867, - "▁Mai": 6868, - "▁nam": 6869, - "▁slä": 6870, - "hör": 6871, - "▁tip": 6872, - "▁Literatur": 6873, - "▁scope": 6874, - "overline": 6875, - "▁exit": 6876, - ")?": 6877, - "bet": 6878, - "▁vict": 6879, - "Off": 6880, - "▁approxim": 6881, - "▁Geb": 6882, - "ktop": 6883, - "heit": 6884, - "▁Ю": 6885, - "template": 6886, - "рон": 6887, - "▁uno": 6888, - "Serv": 6889, - "▁framework": 6890, - "operator": 6891, - "▁generally": 6892, - "▁hundred": 6893, - "▁divers": 6894, - "ovi": 6895, - "▁rés": 6896, - "abs": 6897, - "▁gal": 6898, - "çais": 6899, - "▁feet": 6900, - "▁virtual": 6901, - "czy": 6902, - "ску": 6903, - "./": 6904, - "hu": 6905, - "ancy": 6906, - "▁recommend": 6907, - "▁під": 6908, - "▁money": 6909, - "▁versions": 6910, - "▁helps": 6911, - "▁Hor": 6912, - "Items": 6913, - "look": 6914, - "connect": 6915, - "anges": 6916, - "ViewController": 6917, - "elijk": 6918, - "▁occup": 6919, - "▁editor": 6920, - "auto": 6921, - "ög": 6922, - "▁seconds": 6923, - "▁obvious": 6924, - "vm": 6925, - "akes": 6926, - "▁gegen": 6927, - "▁til": 6928, - "jection": 6929, - "лення": 6930, - "▁operations": 6931, - "▁East": 6932, - "ogy": 6933, - "▁Polit": 6934, - "uten": 6935, - "▁Joseph": 6936, - "\"`": 6937, - "▁Company": 6938, - "▁callback": 6939, - "▁sen": 6940, - "cción": 6941, - "▁associated": 6942, - "▁containing": 6943, - "▁practice": 6944, - "elijke": 6945, - "oke": 6946, - "éra": 6947, - "uns": 6948, - "anta": 6949, - "vey": 6950, - "zu": 6951, - "▁Bes": 6952, - "▁Flor": 6953, - "mem": 6954, - "ycz": 6955, - "▁architect": 6956, - "▁anni": 6957, - "▁contact": 6958, - "YPE": 6959, - "▁Cas": 6960, - "▁полу": 6961, - "ovo": 6962, - "▁bring": 6963, - "▁concept": 6964, - "▁js": 6965, - "▁Referencias": 6966, - "emble": 6967, - "▁н": 6968, - "▁supported": 6969, - "Big": 6970, - "▁Hans": 6971, - "erv": 6972, - "▁Maj": 6973, - "▁arriv": 6974, - "▁Have": 6975, - "▁probability": 6976, - "▁Pop": 6977, - "▁Pass": 6978, - "token": 6979, - "Provider": 6980, - "▁Ra": 6981, - "Reader": 6982, - "ooth": 6983, - "lap": 6984, - "▁assist": 6985, - "adow": 6986, - "▁tests": 6987, - "сси": 6988, - "▁king": 6989, - "langle": 6990, - "▁Sum": 6991, - "OIN": 6992, - "▁security": 6993, - "nis": 6994, - "../": 6995, - "▁basic": 6996, - "unity": 6997, - "`:": 6998, - "▁кото": 6999, - "kow": 7000, - "▁Bibliothèque": 7001, - "asion": 7002, - "alo": 7003, - "ifest": 7004, - "▁novembre": 7005, - "▁peu": 7006, - "▁Ж": 7007, - "enschaft": 7008, - "clus": 7009, - "ју": 7010, - "Height": 7011, - "ún": 7012, - "▁tur": 7013, - "▁ideas": 7014, - "▁ces": 7015, - "frak": 7016, - "▁premier": 7017, - "itation": 7018, - "▁sé": 7019, - "HTML": 7020, - "▁Royal": 7021, - "ської": 7022, - "▁byte": 7023, - "PS": 7024, - "▁segu": 7025, - "inen": 7026, - "▁Great": 7027, - "▁Ку": 7028, - "▁external": 7029, - "Title": 7030, - "Top": 7031, - "Process": 7032, - "ität": 7033, - "▁`/": 7034, - "▁secret": 7035, - "pository": 7036, - "▁potential": 7037, - "▁Bud": 7038, - "names": 7039, - "asons": 7040, - "stackexchange": 7041, - "background": 7042, - "пер": 7043, - "сов": 7044, - "after": 7045, - "▁pero": 7046, - "▁software": 7047, - "▁sed": 7048, - "▁arrays": 7049, - "tmp": 7050, - "▁asp": 7051, - "scale": 7052, - "▁Lat": 7053, - "anal": 7054, - "▁gem": 7055, - "PU": 7056, - "▁Altri": 7057, - "That": 7058, - "▁Ни": 7059, - "ifact": 7060, - "Address": 7061, - "▁south": 7062, - "▁formula": 7063, - "▁Colleg": 7064, - "▁ін": 7065, - "ktion": 7066, - "▁sac": 7067, - "SH": 7068, - "ajo": 7069, - "etc": 7070, - "vc": 7071, - "`](": 7072, - "▁Dur": 7073, - "▁Ме": 7074, - "▁Smith": 7075, - "items": 7076, - "CK": 7077, - "elo": 7078, - "▁plugin": 7079, - "▁serie": 7080, - "ienne": 7081, - "▁или": 7082, - "Mar": 7083, - "▁Image": 7084, - "got": 7085, - "andas": 7086, - "▁matches": 7087, - "▁worth": 7088, - "▁Deb": 7089, - "▁cache": 7090, - "▁felt": 7091, - "ersch": 7092, - "izes": 7093, - "Oper": 7094, - "▁Jahre": 7095, - "▁commune": 7096, - "thread": 7097, - "▁ny": 7098, - "dec": 7099, - "ouw": 7100, - "▁surface": 7101, - "▁Por": 7102, - "▁Street": 7103, - "при": 7104, - "▁candid": 7105, - "▁Return": 7106, - "▁Kom": 7107, - "gru": 7108, - "▁ти": 7109, - "[\\": 7110, - "▁depends": 7111, - "▁influ": 7112, - "▁towards": 7113, - "ained": 7114, - "▁rank": 7115, - "▁Januar": 7116, - "▁components": 7117, - "gest": 7118, - "getElementById": 7119, - "▁checked": 7120, - "airs": 7121, - "join": 7122, - "▁dead": 7123, - "▁hit": 7124, - "ény": 7125, - "▁equivalent": 7126, - "▁Пре": 7127, - "▁appropri": 7128, - "Pass": 7129, - "▁primer": 7130, - "englisch": 7131, - "▁appar": 7132, - "▁During": 7133, - "▁knowledge": 7134, - "▁trigger": 7135, - "▁core": 7136, - "▁Ol": 7137, - "▁Produ": 7138, - "▁Fern": 7139, - "▁нача": 7140, - "Te": 7141, - "▁Mot": 7142, - "erve": 7143, - "тво": 7144, - "▁mid": 7145, - "▁finally": 7146, - "aires": 7147, - "▁especially": 7148, - "▁tut": 7149, - "▁receive": 7150, - "adre": 7151, - "▁neigh": 7152, - "ktet": 7153, - "ilde": 7154, - "▁radio": 7155, - "▁driver": 7156, - "лись": 7157, - "endencies": 7158, - "▁IE": 7159, - "▁saved": 7160, - "ffect": 7161, - "▁Wayback": 7162, - "iat": 7163, - "▁padding": 7164, - "window": 7165, - "тиче": 7166, - "▁mur": 7167, - "actor": 7168, - "▁Han": 7169, - "ональ": 7170, - "▁gar": 7171, - "▁familjen": 7172, - "ós": 7173, - "▁nationale": 7174, - "▁pré": 7175, - "ded": 7176, - "onal": 7177, - "▁President": 7178, - "▁\\,": 7179, - "▁placed": 7180, - "erni": 7181, - "▁signal": 7182, - "nab": 7183, - "hm": 7184, - "Mon": 7185, - "▁vs": 7186, - "SC": 7187, - "▁progetti": 7188, - "▁Ü": 7189, - "▁forms": 7190, - "▁messages": 7191, - "inf": 7192, - "users": 7193, - "GET": 7194, - "▁dels": 7195, - "Collection": 7196, - "▁Good": 7197, - "▁Maybe": 7198, - "▁compr": 7199, - "▁larger": 7200, - "gres": 7201, - "aper": 7202, - "▁При": 7203, - "undes": 7204, - "▁sea": 7205, - "▁Spring": 7206, - "ulo": 7207, - "▁mechan": 7208, - "▁sans": 7209, - "GB": 7210, - "Valid": 7211, - "▁communic": 7212, - "▁pra": 7213, - "vier": 7214, - "▁Се": 7215, - "▁ain": 7216, - "тура": 7217, - "kom": 7218, - "skiego": 7219, - "ково": 7220, - "adata": 7221, - "▁Ре": 7222, - "▁boolean": 7223, - "sets": 7224, - "▁effort": 7225, - ".[": 7226, - "▁został": 7227, - "PA": 7228, - "▁Vict": 7229, - "SD": 7230, - "ował": 7231, - "▁emb": 7232, - "▁prima": 7233, - "▁hour": 7234, - "subsection": 7235, - "▁Fort": 7236, - "mathfrak": 7237, - "igin": 7238, - "GL": 7239, - ")+": 7240, - "fi": 7241, - "▁anci": 7242, - "▁pan": 7243, - "\\)": 7244, - "▁lug": 7245, - "▁deploy": 7246, - "domain": 7247, - "▁slight": 7248, - "JSON": 7249, - "▁morning": 7250, - "▁hi": 7251, - "▁compare": 7252, - "ije": 7253, - "▁blue": 7254, - "▁Ac": 7255, - "▁middle": 7256, - "anden": 7257, - "▁shared": 7258, - "▁Camp": 7259, - "▁Á": 7260, - "ounded": 7261, - "uw": 7262, - "ierung": 7263, - "Stack": 7264, - "▁eines": 7265, - "▁Da": 7266, - "lij": 7267, - "enti": 7268, - "▁й": 7269, - "Util": 7270, - "▁experience": 7271, - "▁await": 7272, - "uls": 7273, - "▁requests": 7274, - "▁impos": 7275, - "▁constraint": 7276, - "Change": 7277, - "emph": 7278, - "бер": 7279, - "▁Another": 7280, - "Custom": 7281, - "▁significant": 7282, - "cr": 7283, - "▁million": 7284, - "reek": 7285, - "▁dalla": 7286, - "▁Germ": 7287, - "otal": 7288, - "ateur": 7289, - "btn": 7290, - "▁thinking": 7291, - "▁interval": 7292, - "onne": 7293, - "▁liv": 7294, - "():": 7295, - "▁Ве": 7296, - "oe": 7297, - "▁Ev": 7298, - "meta": 7299, - "▁broad": 7300, - "Rem": 7301, - "apply": 7302, - "▁couple": 7303, - "▁techni": 7304, - "idades": 7305, - "▁goal": 7306, - "▁CD": 7307, - "hab": 7308, - "▁explan": 7309, - "anner": 7310, - "▁Because": 7311, - "blog": 7312, - "includegraphics": 7313, - "▁voice": 7314, - "▁Map": 7315, - "vention": 7316, - "Session": 7317, - "▁Liens": 7318, - "▁sor": 7319, - "category": 7320, - "ashington": 7321, - "▁März": 7322, - "pop": 7323, - "illet": 7324, - "▁zwei": 7325, - "▁Lie": 7326, - "Null": 7327, - "address": 7328, - "▁factor": 7329, - "▁ligne": 7330, - "▁HTTP": 7331, - "▁suf": 7332, - "▁personal": 7333, - "cip": 7334, - "▁Dar": 7335, - "▁adm": 7336, - "кой": 7337, - "▁Ext": 7338, - "▁god": 7339, - "aa": 7340, - "Right": 7341, - "été": 7342, - "▁dynamic": 7343, - "▁maintain": 7344, - "tor": 7345, - "########": 7346, - "▁Fra": 7347, - "▁choice": 7348, - "▁сто": 7349, - "СР": 7350, - "▁Feder": 7351, - "ston": 7352, - "▁flag": 7353, - "kit": 7354, - "Module": 7355, - "▁спо": 7356, - "▁Stra": 7357, - "icks": 7358, - "▁haven": 7359, - "▁Mass": 7360, - "▁Emp": 7361, - "▁Pi": 7362, - "▁Pen": 7363, - "Rect": 7364, - "▁Kr": 7365, - "itat": 7366, - "eler": 7367, - "ября": 7368, - "itet": 7369, - "▁Start": 7370, - "▁produced": 7371, - "▁пол": 7372, - "(_": 7373, - "▁delet": 7374, - "▁hot": 7375, - "▁Geschichte": 7376, - "~~": 7377, - "▁months": 7378, - "▁tod": 7379, - "▁ни": 7380, - "ús": 7381, - "temp": 7382, - "▁Dez": 7383, - "ypes": 7384, - "▁cui": 7385, - "ommun": 7386, - "actions": 7387, - "▁eigen": 7388, - "▁immediately": 7389, - "PL": 7390, - "▁Го": 7391, - "▁Bal": 7392, - "ље": 7393, - "ului": 7394, - "▁online": 7395, - "▁años": 7396, - "▁namespace": 7397, - "▁mond": 7398, - "▁Base": 7399, - "▁Canada": 7400, - "etzt": 7401, - "}-": 7402, - "▁defin": 7403, - "▁doubt": 7404, - "▁investig": 7405, - "views": 7406, - "▁Line": 7407, - "▁stage": 7408, - "ettings": 7409, - "ubre": 7410, - "float": 7411, - "▁Play": 7412, - "▁Las": 7413, - "ptr": 7414, - "▁becomes": 7415, - "estamp": 7416, - "▁independent": 7417, - "▁analysis": 7418, - "▁Look": 7419, - "lain": 7420, - "▁рас": 7421, - "Reference": 7422, - "▁sorry": 7423, - "▁supposed": 7424, - "ût": 7425, - "▁degree": 7426, - "utz": 7427, - "MM": 7428, - "▁desired": 7429, - "ły": 7430, - "▁len": 7431, - "▁alone": 7432, - "signed": 7433, - "▁Sta": 7434, - "Person": 7435, - "▁applied": 7436, - "▁Back": 7437, - "▁mars": 7438, - "Part": 7439, - "▁Did": 7440, - "▁externes": 7441, - "▁np": 7442, - "ongo": 7443, - "▁esta": 7444, - "Block": 7445, - "▁pou": 7446, - "adores": 7447, - "▁Studio": 7448, - ".$": 7449, - "▁reached": 7450, - "bot": 7451, - "▁Juni": 7452, - "tons": 7453, - "itel": 7454, - "▁Gar": 7455, - "▁articles": 7456, - "▁District": 7457, - "▁trouble": 7458, - "lide": 7459, - "▁Found": 7460, - "ád": 7461, - "▁equip": 7462, - "▁internal": 7463, - "'],": 7464, - "▁async": 7465, - "UB": 7466, - "gel": 7467, - "▁ai": 7468, - "ensure": 7469, - "▁appeared": 7470, - "▁$_": 7471, - "▁maximum": 7472, - "▁Си": 7473, - "рь": 7474, - "▁announ": 7475, - "лась": 7476, - "▁cm": 7477, - "ган": 7478, - "aupt": 7479, - "▁latter": 7480, - "▁platform": 7481, - "▁dra": 7482, - "▁capital": 7483, - "▁solved": 7484, - "riz": 7485, - "edic": 7486, - "▁Mur": 7487, - "▁Top": 7488, - "тся": 7489, - "Panel": 7490, - "rule": 7491, - "etic": 7492, - "▁Ren": 7493, - "▁Wikimedia": 7494, - "▁TO": 7495, - "second": 7496, - "isl": 7497, - "▁hy": 7498, - "▁niet": 7499, - "▁loaded": 7500, - "dig": 7501, - "▁mayo": 7502, - "[:": 7503, - "Acc": 7504, - "▁bek": 7505, - "нию": 7506, - "login": 7507, - "tx": 7508, - "▁Fur": 7509, - "▁Santa": 7510, - "azz": 7511, - "▁conduct": 7512, - "▁India": 7513, - "Order": 7514, - "irth": 7515, - "tw": 7516, - "}+": 7517, - "▁wieder": 7518, - "▁Edu": 7519, - "AV": 7520, - "▁```": 7521, - "▁manually": 7522, - "▁Read": 7523, - "fortunately": 7524, - "▁Run": 7525, - "▁Award": 7526, - "▁Foot": 7527, - "*)": 7528, - "params": 7529, - "пі": 7530, - "▁native": 7531, - "rift": 7532, - "▁ä": 7533, - "ATH": 7534, - "▁yourself": 7535, - "▁prior": 7536, - "▁cit": 7537, - "äh": 7538, - "▁treat": 7539, - "▁meas": 7540, - "ributed": 7541, - "▁clar": 7542, - "card": 7543, - "ROR": 7544, - "illes": 7545, - "▁layer": 7546, - "auer": 7547, - "▁rat": 7548, - "bernate": 7549, - "▁stato": 7550, - "▁China": 7551, - "▁$('#": 7552, - "▁naar": 7553, - "zip": 7554, - "▁${\\": 7555, - "▁appreciated": 7556, - "▁име": 7557, - "ży": 7558, - "▁przez": 7559, - "▁Indian": 7560, - "▁Tod": 7561, - "▁Source": 7562, - "▁други": 7563, - "internal": 7564, - "ionale": 7565, - "Product": 7566, - "▁Men": 7567, - "▁upper": 7568, - "▁Every": 7569, - "},\\": 7570, - "▁printf": 7571, - "▁continued": 7572, - "▁nodes": 7573, - "лки": 7574, - "▁nice": 7575, - "modules": 7576, - "eign": 7577, - "▁Mex": 7578, - "▁According": 7579, - "▁undefined": 7580, - "▁binary": 7581, - "cut": 7582, - "Current": 7583, - "edy": 7584, - "}}{": 7585, - "bles": 7586, - "▁вой": 7587, - "scri": 7588, - "eqn": 7589, - "Changed": 7590, - "▁köz": 7591, - "▁remote": 7592, - "вля": 7593, - "▁quel": 7594, - "▁align": 7595, - "▁пар": 7596, - "SV": 7597, - "yer": 7598, - "▁Californ": 7599, - "▁places": 7600, - "▁primary": 7601, - "▁conv": 7602, - "▁Juli": 7603, - "▁visual": 7604, - "▁Select": 7605, - "atory": 7606, - "=(": 7607, - "iser": 7608, - "▁intent": 7609, - "sur": 7610, - "container": 7611, - "iced": 7612, - "▁board": 7613, - "astr": 7614, - "omial": 7615, - "вет": 7616, - "зва": 7617, - "▁cru": 7618, - "▁Oktober": 7619, - "save": 7620, - "▁greater": 7621, - "▁inn": 7622, - "▁picture": 7623, - "▁То": 7624, - "▁obtained": 7625, - "Wikimedia": 7626, - "úblic": 7627, - "▁lors": 7628, - "▁mont": 7629, - "obre": 7630, - "▁civil": 7631, - "▁construction": 7632, - "▁Welt": 7633, - "▁Under": 7634, - "undert": 7635, - "▁edge": 7636, - "▁Liste": 7637, - "csv": 7638, - "▁experiment": 7639, - "localhost": 7640, - "▁Edit": 7641, - "greg": 7642, - "ová": 7643, - "ља": 7644, - "msg": 7645, - "▁Green": 7646, - "Dialog": 7647, - "Ident": 7648, - "▁JS": 7649, - "^{(": 7650, - "▁släktet": 7651, - "____": 7652, - "Project": 7653, - "▁beskre": 7654, - "▁ber": 7655, - "▁wouldn": 7656, - "▁react": 7657, - "Hel": 7658, - "zw": 7659, - "▁Washington": 7660, - "orie": 7661, - "task": 7662, - "▁category": 7663, - "▁artist": 7664, - "anno": 7665, - "▁ook": 7666, - "ammen": 7667, - "▁Minister": 7668, - "▁declar": 7669, - "▁Key": 7670, - ",.": 7671, - "▁mach": 7672, - "▁ww": 7673, - "isen": 7674, - "Fran": 7675, - "▁Росси": 7676, - "бор": 7677, - "три": 7678, - "▁rock": 7679, - "quis": 7680, - "mos": 7681, - "пера": 7682, - "▁esterni": 7683, - "▁gold": 7684, - "Windows": 7685, - "%%": 7686, - "▁partial": 7687, - "▁weight": 7688, - "▁spr": 7689, - "}).": 7690, - "▁français": 7691, - "fun": 7692, - "▁thous": 7693, - "holder": 7694, - "▁gone": 7695, - "▁Č": 7696, - "▁rend": 7697, - "DA": 7698, - "▁answered": 7699, - "▁False": 7700, - "Buffer": 7701, - "▁daugh": 7702, - ".--": 7703, - "▁Show": 7704, - "▁rect": 7705, - "▁Kre": 7706, - "dr": 7707, - "osoph": 7708, - "▁yield": 7709, - "urity": 7710, - "toString": 7711, - "aval": 7712, - "Pol": 7713, - "▁lock": 7714, - "imation": 7715, - "antic": 7716, - "Local": 7717, - "▁beskrevs": 7718, - "ités": 7719, - "grid": 7720, - "ут": 7721, - "▁_{": 7722, - "сі": 7723, - "FILE": 7724, - "▁км": 7725, - "▁speak": 7726, - "summary": 7727, - "prop": 7728, - "javascript": 7729, - "zk": 7730, - "izontal": 7731, - "▁trois": 7732, - "▁Rod": 7733, - "prise": 7734, - "рово": 7735, - "▁odd": 7736, - "▁gest": 7737, - "▁produce": 7738, - "▁waar": 7739, - "▁Av": 7740, - "ribu": 7741, - "вання": 7742, - "▁finished": 7743, - "▁adapt": 7744, - "▁Sar": 7745, - "textit": 7746, - "▁Ce": 7747, - "▁Fa": 7748, - "osen": 7749, - "▁deriv": 7750, - "▁ship": 7751, - "▁opin": 7752, - "▁Even": 7753, - "gesch": 7754, - "▁suppose": 7755, - "▁Fer": 7756, - "ское": 7757, - "▁worden": 7758, - "sey": 7759, - "hline": 7760, - "▁Union": 7761, - "▁/**": 7762, - "▁vez": 7763, - "▁Collegamenti": 7764, - "▁Society": 7765, - "▁econom": 7766, - "ší": 7767, - "oi": 7768, - "▁orient": 7769, - "▁Teil": 7770, - "rent": 7771, - "лекс": 7772, - "▁solid": 7773, - "▁cart": 7774, - "****************": 7775, - "▁cab": 7776, - "▁Message": 7777, - "dots": 7778, - "▁ég": 7779, - "▁twe": 7780, - "aga": 7781, - "▁naz": 7782, - "▁Microsoft": 7783, - "▁underarter": 7784, - "ppen": 7785, - "▁recent": 7786, - "▁net": 7787, - "▁resources": 7788, - "Ste": 7789, - ".\\": 7790, - "▁SO": 7791, - "лом": 7792, - "▁cele": 7793, - "▁lic": 7794, - "▁benef": 7795, - "ldots": 7796, - "▁serial": 7797, - "Integer": 7798, - "cles": 7799, - "▁miles": 7800, - "▁Ale": 7801, - "▁entered": 7802, - "▁Two": 7803, - "wie": 7804, - "▁includes": 7805, - "▁Each": 7806, - "elling": 7807, - "quer": 7808, - "▁Dom": 7809, - "pf": 7810, - "WS": 7811, - "▁straight": 7812, - "▁Stan": 7813, - "▁nos": 7814, - "ícul": 7815, - "atro": 7816, - "▁Center": 7817, - "FT": 7818, - "▁Inga": 7819, - "ilo": 7820, - "▁www": 7821, - "jsfiddle": 7822, - "nic": 7823, - "▁European": 7824, - "▁commer": 7825, - "▁girl": 7826, - "total": 7827, - "▁Star": 7828, - "▁suggested": 7829, - "pal": 7830, - "▁zwischen": 7831, - "писа": 7832, - "IM": 7833, - "▁handler": 7834, - "▁Program": 7835, - "xsl": 7836, - "ály": 7837, - "BU": 7838, - ",--": 7839, - "▁vid": 7840, - "▁established": 7841, - "▁Spiel": 7842, - "ometry": 7843, - "unes": 7844, - "▁sit": 7845, - "▁inher": 7846, - "▁puis": 7847, - "▁être": 7848, - "▁Most": 7849, - "Header": 7850, - "insert": 7851, - "▁sist": 7852, - "▁favor": 7853, - "dest": 7854, - "▁entity": 7855, - "Cal": 7856, - "▁Therefore": 7857, - "DD": 7858, - ";;": 7859, - "▁Dezember": 7860, - "▁Rh": 7861, - "iments": 7862, - "▁returning": 7863, - "sto": 7864, - "▁Value": 7865, - "▁liber": 7866, - "▁Result": 7867, - "▁bind": 7868, - "voir": 7869, - "▁Tim": 7870, - "▁Movie": 7871, - "weg": 7872, - "ket": 7873, - "▁исто": 7874, - "▁friends": 7875, - "▁fn": 7876, - "▁él": 7877, - "▁&=": 7878, - "arden": 7879, - "fficial": 7880, - "▁community": 7881, - "▁api": 7882, - "Args": 7883, - "ieren": 7884, - "▁dann": 7885, - "omorph": 7886, - "adr": 7887, - "loop": 7888, - "uman": 7889, - "▁vous": 7890, - "bst": 7891, - "submit": 7892, - "\\|": 7893, - "тин": 7894, - "Container": 7895, - "asket": 7896, - "?)": 7897, - "Sec": 7898, - "▁drive": 7899, - "Ass": 7900, - "▁swe": 7901, - "▁amer": 7902, - "▁mine": 7903, - "▁Ham": 7904, - "▁avait": 7905, - "▁Hon": 7906, - "▁après": 7907, - "▁Mann": 7908, - "ська": 7909, - "▁increase": 7910, - "▁ty": 7911, - "sky": 7912, - "▁accur": 7913, - "article": 7914, - "weight": 7915, - "▁sex": 7916, - "▁listade": 7917, - "/**": 7918, - "▁está": 7919, - "}}$": 7920, - "argo": 7921, - "define": 7922, - "▁состав": 7923, - "session": 7924, - "ads": 7925, - "стви": 7926, - "▁Law": 7927, - "▁dialog": 7928, - "▁duplicate": 7929, - "▁ép": 7930, - "▁voc": 7931, - "fri": 7932, - "▁green": 7933, - "▁hidden": 7934, - "▁Island": 7935, - "▁diag": 7936, - "owej": 7937, - "mysql": 7938, - "teil": 7939, - "rä": 7940, - "ikan": 7941, - "▁José": 7942, - "aled": 7943, - "Runtime": 7944, - "▁train": 7945, - "▁Division": 7946, - "ниц": 7947, - "▁Span": 7948, - "нима": 7949, - ")=\\": 7950, - "тан": 7951, - "▁stay": 7952, - "▁foo": 7953, - "▁accom": 7954, - "▁hers": 7955, - "▁нау": 7956, - "▁Mün": 7957, - "ideos": 7958, - "static": 7959, - "▁ready": 7960, - "]`": 7961, - "▁visible": 7962, - "▁Hope": 7963, - "ulated": 7964, - "▁Cult": 7965, - "стро": 7966, - "Co": 7967, - "▁smaller": 7968, - "atura": 7969, - "▁perfectly": 7970, - "req": 7971, - "▁proposed": 7972, - "▁degli": 7973, - "Search": 7974, - "▁ich": 7975, - "Max": 7976, - "▁volume": 7977, - "execute": 7978, - "gre": 7979, - "▁sport": 7980, - "udad": 7981, - "PT": 7982, - "▁Records": 7983, - "▁cook": 7984, - "▁expand": 7985, - "бі": 7986, - "▁altri": 7987, - "ppet": 7988, - "arse": 7989, - "▁wet": 7990, - "▁Bob": 7991, - "▁FC": 7992, - "▁Association": 7993, - "uje": 7994, - "▁fel": 7995, - "▁слу": 7996, - "▁Big": 7997, - "/\\": 7998, - "Ge": 7999, - "while": 8000, - "{(": 8001, - "▁sufficient": 8002, - "Position": 8003, - "▁understanding": 8004, - "▁nue": 8005, - "▁raz": 8006, - "▁ye": 8007, - "hem": 8008, - "Num": 8009, - "▁Project": 8010, - "▁Its": 8011, - "▁hasta": 8012, - "enso": 8013, - "▁wire": 8014, - "Ret": 8015, - "uj": 8016, - "proof": 8017, - "▁relevant": 8018, - "▁partir": 8019, - "▁ago": 8020, - "ificate": 8021, - "▁domin": 8022, - "▁boy": 8023, - "▁plant": 8024, - "▁encoding": 8025, - "▁throws": 8026, - "▁Rock": 8027, - "zone": 8028, - "gang": 8029, - "widget": 8030, - "▁interesting": 8031, - "DER": 8032, - "▁demon": 8033, - "▁office": 8034, - "amt": 8035, - "äter": 8036, - "▁White": 8037, - "▁versch": 8038, - "▁dieser": 8039, - "▁Mount": 8040, - "▁students": 8041, - "▁Pub": 8042, - "▁Де": 8043, - "ija": 8044, - "▁Cy": 8045, - "▁California": 8046, - "▁abril": 8047, - "äll": 8048, - "▁чем": 8049, - "TV": 8050, - "▁més": 8051, - "▁declared": 8052, - "▁ю": 8053, - "ől": 8054, - "appa": 8055, - "▁Бе": 8056, - "echo": 8057, - "numer": 8058, - "▁posted": 8059, - "▁вер": 8060, - "▁године": 8061, - "▁weak": 8062, - "▁Republic": 8063, - "▁champion": 8064, - "ensuremath": 8065, - "your": 8066, - "▁Ober": 8067, - "▁Central": 8068, - "isa": 8069, - "анд": 8070, - "yy": 8071, - "▁fully": 8072, - "▁SD": 8073, - "▁Linux": 8074, - "▁Scott": 8075, - "partment": 8076, - "kon": 8077, - "▁contract": 8078, - "▁OF": 8079, - "▁ale": 8080, - "▁Ann": 8081, - "▁над": 8082, - "lah": 8083, - "▁Next": 8084, - "oren": 8085, - "▁disk": 8086, - "▁eg": 8087, - "atu": 8088, - "логи": 8089, - "▁games": 8090, - "Left": 8091, - "▁lu": 8092, - "▁finite": 8093, - "▁ки": 8094, - "▁crash": 8095, - "pher": 8096, - "exe": 8097, - "ATION": 8098, - "▁brother": 8099, - "Eng": 8100, - "tat": 8101, - "▁Integer": 8102, - "ному": 8103, - "▁colon": 8104, - "iqu": 8105, - ")).": 8106, - "ivi": 8107, - "▁Method": 8108, - "arten": 8109, - "Uni": 8110, - "vector": 8111, - "▁wood": 8112, - "рт": 8113, - "▁Ле": 8114, - "▁siècle": 8115, - "▁gent": 8116, - "}\r": 8117, - "▁contents": 8118, - "▁compan": 8119, - "Go": 8120, - "▁jou": 8121, - "uent": 8122, - "Async": 8123, - "printf": 8124, - "▁Model": 8125, - "▁kept": 8126, - "ASE": 8127, - "▁provides": 8128, - "▁Abgerufen": 8129, - "▁Gall": 8130, - "▁Alf": 8131, - "SA": 8132, - "▁Mem": 8133, - "▁kter": 8134, - "▁Bru": 8135, - "Android": 8136, - "(:": 8137, - "▁Украї": 8138, - "Ne": 8139, - "Min": 8140, - "atr": 8141, - "▁Hal": 8142, - "delete": 8143, - "odo": 8144, - "▁não": 8145, - "ène": 8146, - "▁calculate": 8147, - "Json": 8148, - "keys": 8149, - "ней": 8150, - "▁hence": 8151, - "▁ow": 8152, - "▁Lib": 8153, - "eno": 8154, - "▁Love": 8155, - "osi": 8156, - "wide": 8157, - "▁score": 8158, - "full": 8159, - "вод": 8160, - "▁determine": 8161, - "▁spaces": 8162, - "лова": 8163, - "▁peut": 8164, - "éral": 8165, - "ół": 8166, - "▁appoint": 8167, - "▁Tw": 8168, - "();": 8295, - "▁pure": 8296, - "▁embed": 8297, - "ação": 8298, - "controller": 8299, - "▁married": 8300, - "▁Fol": 8301, - "famil": 8302, - "▁prec": 8303, - "▁recurs": 8304, - "pad": 8305, - "istration": 8306, - "▁respectively": 8307, - "[$": 8308, - "autor": 8309, - "▁grav": 8310, - "iera": 8311, - "azioni": 8312, - "▁Bul": 8313, - "▁Australia": 8314, - "mond": 8315, - "▁Tro": 8316, - "▁Ele": 8317, - "packages": 8318, - "msdn": 8319, - "▁Als": 8320, - "▁przy": 8321, - "ART": 8322, - "▁charge": 8323, - "▁applications": 8324, - "Unit": 8325, - "aren": 8326, - "▁sudden": 8327, - "ometer": 8328, - "▁dot": 8329, - "acji": 8330, - "ктор": 8331, - "imin": 8332, - "ening": 8333, - "▁donde": 8334, - "▁Ho": 8335, - "tree": 8336, - "mb": 8337, - "▁drag": 8338, - "aje": 8339, - "▁invalid": 8340, - "▁finish": 8341, - "laim": 8342, - "▁feed": 8343, - "▁Nap": 8344, - "room": 8345, - "images": 8346, - "▁сай": 8347, - "▁succ": 8348, - "iffer": 8349, - "▁año": 8350, - "▁cual": 8351, - "мери": 8352, - "DR": 8353, - "▁Bilder": 8354, - "бра": 8355, - "rait": 8356, - "pan": 8357, - "ень": 8358, - "▁distinct": 8359, - "▁Kn": 8360, - "önig": 8361, - "anced": 8362, - "▁loading": 8363, - "▁Techn": 8364, - "▁Sel": 8365, - "mus": 8366, - "▁rail": 8367, - "▁student": 8368, - "▁notice": 8369, - "▁sla": 8370, - "▁Да": 8371, - "▁guard": 8372, - "▁Day": 8373, - "вали": 8374, - "Option": 8375, - "aison": 8376, - "ipp": 8377, - "▁Jun": 8378, - "▁fell": 8379, - "▁absolute": 8380, - "ове": 8381, - "debug": 8382, - "▁Sud": 8383, - "пы": 8384, - "ugins": 8385, - "▁views": 8386, - "lay": 8387, - "▁surr": 8388, - "▁stood": 8389, - "▁ві": 8390, - "selected": 8391, - "гі": 8392, - "▁attributes": 8393, - "final": 8394, - "enda": 8395, - "▁Bon": 8396, - "ners": 8397, - "▁Wer": 8398, - "bur": 8399, - "ittel": 8400, - "▁moving": 8401, - "▁Plan": 8402, - "isches": 8403, - "Java": 8404, - "▁basis": 8405, - "▁Bus": 8406, - "▁Au": 8407, - "▁Ill": 8408, - "▁время": 8409, - "▁цент": 8410, - "handle": 8411, - "ступ": 8412, - "▁Far": 8413, - "▁oraz": 8414, - "ocr": 8415, - "▁seit": 8416, - "onder": 8417, - "дом": 8418, - ":/": 8419, - "chor": 8420, - "▁Town": 8421, - "▁definit": 8422, - "react": 8423, - "▁piece": 8424, - "▁Karl": 8425, - "CI": 8426, - "▁Application": 8427, - "unter": 8428, - "▁formed": 8429, - "▁пу": 8430, - "Bo": 8431, - "▁Daniel": 8432, - "▁пла": 8433, - "Body": 8434, - "})$": 8435, - "▁были": 8436, - "▁earth": 8437, - "гла": 8438, - "There": 8439, - "▁стра": 8440, - "▁ville": 8441, - "▁centre": 8442, - ")\r": 8443, - "▁helpful": 8444, - "▁++": 8445, - "▁CG": 8446, - "izione": 8447, - "▁Game": 8448, - "▁Which": 8449, - "▁pip": 8450, - "▁Portug": 8451, - "DS": 8452, - "▁describe": 8453, - "▁checking": 8454, - "▁manager": 8455, - "BO": 8456, - "▁Bundes": 8457, - "buch": 8458, - "▁decided": 8459, - "▁Jahrhundert": 8460, - "▁fif": 8461, - "efficient": 8462, - "anci": 8463, - "braries": 8464, - "▁fails": 8465, - "▁kernel": 8466, - "▁Gl": 8467, - "▁Nacional": 8468, - "▁proceed": 8469, - "▁fuer": 8470, - "▁living": 8471, - "▁successfully": 8472, - "▁faster": 8473, - "▁contre": 8474, - "▁prison": 8475, - "ORT": 8476, - "help": 8477, - "▁autor": 8478, - "ław": 8479, - "ają": 8480, - "▁Arm": 8481, - "▁provin": 8482, - "▁naam": 8483, - "/#": 8484, - "sed": 8485, - "▁gesch": 8486, - "▁мар": 8487, - "esk": 8488, - "term": 8489, - "▁Tex": 8490, - "iring": 8491, - "▁tools": 8492, - "PDF": 8493, - "▁ult": 8494, - "issenschaft": 8495, - "▁couldn": 8496, - "ding": 8497, - "Dep": 8498, - "{-": 8499, - "▁predict": 8500, - "antage": 8501, - "▁Like": 8502, - "▁Би": 8503, - "tools": 8504, - "estra": 8505, - "▁ki": 8506, - "▁Jim": 8507, - "star": 8508, - "▁remark": 8509, - "óg": 8510, - "nabla": 8511, - "▁Although": 8512, - "mode": 8513, - "Host": 8514, - "▁strange": 8515, - "None": 8516, - "black": 8517, - "▁Festival": 8518, - "▁IS": 8519, - "anza": 8520, - "▁(-": 8521, - "icket": 8522, - "кола": 8523, - "▁Jes": 8524, - "▁flex": 8525, - "▁À": 8526, - "▁Network": 8527, - "▁EX": 8528, - "▁enero": 8529, - "!”": 8530, - "▁Ort": 8531, - "▁alors": 8532, - "▁Original": 8533, - "▁zo": 8534, - "ными": 8535, - "▁spl": 8536, - "Draw": 8537, - "yond": 8538, - "──": 8539, - "▁Ot": 8540, - "▁dram": 8541, - "▁division": 8542, - "▁efficient": 8543, - "▁Га": 8544, - "▁vier": 8545, - "nak": 8546, - "LS": 8547, - "▁spirit": 8548, - "zeichnet": 8549, - "▁dici": 8550, - "clear": 8551, - "copy": 8552, - "yar": 8553, - "▁році": 8554, - "usqu": 8555, - "▁nous": 8556, - "▁blev": 8557, - "жде": 8558, - "Arg": 8559, - "▁performed": 8560, - "▁Make": 8561, - "▁Carol": 8562, - "etto": 8563, - "▁Sand": 8564, - "▁Disc": 8565, - "Enc": 8566, - "rero": 8567, - "hash": 8568, - "▁focus": 8569, - "▁attention": 8570, - "▁agre": 8571, - "▁divis": 8572, - "▁было": 8573, - "▁ej": 8574, - "▁march": 8575, - "▁phase": 8576, - "ías": 8577, - "▁phil": 8578, - "▁Pap": 8579, - "▁river": 8580, - "▁caused": 8581, - "plugin": 8582, - "▁Team": 8583, - "uler": 8584, - "▁$(\"#": 8585, - "iej": 8586, - "ISBN": 8587, - "nam": 8588, - "▁fight": 8589, - "vid": 8590, - "▁Lud": 8591, - "Selected": 8592, - ":@\"": 8593, - "▁Pod": 8594, - "▁années": 8595, - "arios": 8596, - "▁deutscher": 8597, - "▁NA": 8598, - "▁ию": 8599, - "▁dictionary": 8600, - "▁Ла": 8601, - "▁Tri": 8602, - "èn": 8603, - "▁political": 8604, - "ridge": 8605, - "atten": 8606, - "▁circle": 8607, - "▁transport": 8608, - "emas": 8609, - "FC": 8610, - "▁replaced": 8611, - "▁Aud": 8612, - "iska": 8613, - "Configuration": 8614, - "▁soort": 8615, - "▁Не": 8616, - "▁sequ": 8617, - "PRO": 8618, - "▁bud": 8619, - "▁{{": 8620, - "ließ": 8621, - "▁Mas": 8622, - "ders": 8623, - "usammen": 8624, - "esa": 8625, - "▁Ly": 8626, - "вро": 8627, - "mac": 8628, - "▁испо": 8629, - "▁suc": 8630, - "uy": 8631, - "▁illustr": 8632, - "▁primera": 8633, - "ilation": 8634, - "▁storage": 8635, - "▁params": 8636, - "kaz": 8637, - "▁terminal": 8638, - "раль": 8639, - "▁holds": 8640, - "лось": 8641, - "▁nad": 8642, - "”.": 8643, - "▁octubre": 8644, - "bul": 8645, - "▁hus": 8646, - "ULT": 8647, - "▁également": 8648, - "▁Mill": 8649, - "ład": 8650, - "▁contiene": 8651, - "\"?": 8652, - "▁>>>": 8653, - "Que": 8654, - "  ": 8655, - "▁plain": 8656, - "ativa": 8657, - "ocker": 8658, - "Names": 8659, - "▁Jud": 8660, - "▁agree": 8661, - "▁Gemeinde": 8662, - "lare": 8663, - "каза": 8664, - "▁starts": 8665, - "▁price": 8666, - "Target": 8667, - "cus": 8668, - "▁Instead": 8669, - ".;": 8670, - "▁alternative": 8671, - "▁вла": 8672, - "IE": 8673, - "▁organiz": 8674, - "inu": 8675, - "▁completed": 8676, - "▁carry": 8677, - "atom": 8678, - "▁depending": 8679, - "▁Our": 8680, - "▁insp": 8681, - "▁&\\": 8682, - "aily": 8683, - "irection": 8684, - "фа": 8685, - "▁defe": 8686, - "TAC": 8687, - "▁designed": 8688, - "▁voir": 8689, - "break": 8690, - "▁partie": 8691, - "▁Jahren": 8692, - "▁studio": 8693, - "▁jour": 8694, - "▁Notes": 8695, - "fire": 8696, - "house": 8697, - "success": 8698, - "▁Juan": 8699, - "JS": 8700, - "▁Custom": 8701, - "▁besch": 8702, - "▁stated": 8703, - "bootstrap": 8704, - "ött": 8705, - "ozzá": 8706, - "▁CON": 8707, - "hav": 8708, - "▁sleep": 8709, - "eda": 8710, - "hot": 8711, - "ánd": 8712, - "▁Sy": 8713, - "▁temps": 8714, - "amar": 8715, - "▁scal": 8716, - "▁ast": 8717, - "▁opening": 8718, - "clipse": 8719, - "▁programming": 8720, - "▁letters": 8721, - "▁profile": 8722, - "nah": 8723, - "▁beyond": 8724, - "▁Further": 8725, - "faces": 8726, - "▁chart": 8727, - "зда": 8728, - "aign": 8729, - "ній": 8730, - "▁Rol": 8731, - "овано": 8732, - "terior": 8733, - "wed": 8734, - "▁herself": 8735, - "▁ng": 8736, - "anguages": 8737, - "}=\\": 8738, - "ynamic": 8739, - "▁jug": 8740, - "▁Example": 8741, - "▁(†": 8742, - "▁playing": 8743, - "▁usage": 8744, - "▁managed": 8745, - "▁Natur": 8746, - "тери": 8747, - "▁Et": 8748, - "eria": 8749, - "▁daughter": 8750, - "нием": 8751, - "Fragment": 8752, - "▁hol": 8753, - "Fl": 8754, - "ографи": 8755, - "▁ihn": 8756, - "üh": 8757, - "instance": 8758, - "▁comun": 8759, - "▁truth": 8760, - "▁само": 8761, - "▁implemented": 8762, - "▁anyway": 8763, - "▁Cro": 8764, - "фе": 8765, - "GC": 8766, - "ubuntu": 8767, - "types": 8768, - "ês": 8769, - ".~\\": 8770, - "fold": 8771, - "▁joined": 8772, - "??": 8773, - "▁mé": 8774, - "▁wild": 8775, - "клю": 8776, - "rowser": 8777, - "▁Home": 8778, - "skiej": 8779, - "▁JOIN": 8780, - "▁juin": 8781, - "hof": 8782, - "▁dataset": 8783, - "жду": 8784, - "'))": 8785, - "▁miejs": 8786, - "API": 8787, - "▁edited": 8788, - "ools": 8789, - "▁seeing": 8790, - "ijd": 8791, - "▁procedure": 8792, - "▁Bras": 8793, - "▁signed": 8794, - "▁externos": 8795, - "▁disapp": 8796, - "▁Direct": 8797, - "cyc": 8798, - "▁consult": 8799, - "örd": 8800, - "Widget": 8801, - "cious": 8802, - "sect": 8803, - "▁Ди": 8804, - "▁wind": 8805, - "▁Archivado": 8806, - "aml": 8807, - "сс": 8808, - "Wh": 8809, - "kbd": 8810, - "▁Army": 8811, - "▁suffer": 8812, - "artifact": 8813, - "▁resolve": 8814, - "▁Sport": 8815, - "▁це": 8816, - "idas": 8817, - "▁tax": 8818, - "idi": 8819, - "▁actions": 8820, - "пра": 8821, - "pués": 8822, - "▁naj": 8823, - "False": 8824, - "▁chance": 8825, - "▁тако": 8826, - "äd": 8827, - "▁dol": 8828, - "▁env": 8829, - "▁basically": 8830, - "▁Council": 8831, - "zte": 8832, - "▁displayed": 8833, - "nil": 8834, - "complete": 8835, - "▁Lem": 8836, - "iance": 8837, - "▁основ": 8838, - "▁depend": 8839, - "plom": 8840, - "ensus": 8841, - "uts": 8842, - "▁Hot": 8843, - "bitr": 8844, - "▁validation": 8845, - "abb": 8846, - "▁тре": 8847, - "km": 8848, - "zd": 8849, - "öff": 8850, - "WE": 8851, - "▁interested": 8852, - "▁{\"": 8853, - "aro": 8854, - "▁correl": 8855, - "▁dedic": 8856, - "▁lists": 8857, - "▁Bibliografia": 8858, - "▁earlier": 8859, - "program": 8860, - "▁première": 8861, - "front": 8862, - "Tab": 8863, - "ству": 8864, - "drop": 8865, - "▁fear": 8866, - "▁Enlaces": 8867, - "▁Capt": 8868, - "▁realiz": 8869, - "▁hal": 8870, - "▁instances": 8871, - "▁susp": 8872, - "illing": 8873, - "%;": 8874, - "{}": 8875, - "||": 8876, - "▁partition": 8877, - "▁Build": 8878, - "▁wo": 8879, - "▁Пер": 8880, - "▁director": 8881, - "▁Sin": 8882, - "тия": 8883, - "rsg": 8884, - "ouver": 8885, - "▁nearly": 8886, - "oda": 8887, - "ктив": 8888, - "▁sir": 8889, - "IME": 8890, - "▁janvier": 8891, - "▁Win": 8892, - "Build": 8893, - "ieurs": 8894, - "INE": 8895, - "double": 8896, - "Last": 8897, - "▁policy": 8898, - "store": 8899, - "▁observed": 8900, - "▁familie": 8901, - "nica": 8902, - "rey": 8903, - "зь": 8904, - "▁Year": 8905, - "▁developed": 8906, - "▁Institute": 8907, - "▁reply": 8908, - "Comple": 8909, - "ician": 8910, - "▁Guer": 8911, - "▁dall": 8912, - "▁desp": 8913, - "▁Football": 8914, - "Empty": 8915, - "cken": 8916, - "unda": 8917, - "▁Ur": 8918, - "▁ig": 8919, - "▁Atl": 8920, - "author": 8921, - "▁Bol": 8922, - "zig": 8923, - "nat": 8924, - "št": 8925, - "security": 8926, - "onic": 8927, - "▁pes": 8928, - "itan": 8929, - "▁Extern": 8930, - "jan": 8931, - "VAL": 8932, - "▁им": 8933, - "bold": 8934, - "▁ва": 8935, - "▁Мо": 8936, - "▁disput": 8937, - "▁trick": 8938, - "▁ped": 8939, - ")^{": 8940, - "into": 8941, - "Sim": 8942, - "▁parallel": 8943, - "fox": 8944, - "normal": 8945, - "inent": 8946, - "педи": 8947, - "hold": 8948, - "OK": 8949, - "▁chem": 8950, - "▁twice": 8951, - "▁username": 8952, - "ič": 8953, - "▁representation": 8954, - "▁journal": 8955, - "▁:-": 8956, - "▁batt": 8957, - "\\%": 8958, - "▁certainly": 8959, - "▁Exception": 8960, - "eps": 8961, - "shot": 8962, - "ategy": 8963, - "Show": 8964, - "▁Carl": 8965, - "rig": 8966, - "▁reported": 8967, - "bottom": 8968, - "TF": 8969, - "▁Francisco": 8970, - "nap": 8971, - "▁Championship": 8972, - "▁court": 8973, - "▁sources": 8974, - "iour": 8975, - "▁conserv": 8976, - "dict": 8977, - "▁Ру": 8978, - "IB": 8979, - "▁Ve": 8980, - "▁№": 8981, - "▁ER": 8982, - "\"));": 8983, - "▁Point": 8984, - "azine": 8985, - "▁internet": 8986, - "дна": 8987, - "▁carried": 8988, - "▁Field": 8989, - "axis": 8990, - "▁Sun": 8991, - "▁ave": 8992, - "пис": 8993, - "ян": 8994, - "asy": 8995, - "▁julio": 8996, - "▁depuis": 8997, - "▁suggestion": 8998, - "[[": 8999, - "▁Archive": 9000, - "ęp": 9001, - "▁Pra": 9002, - "reh": 9003, - "▁demonstr": 9004, - "фі": 9005, - "cmd": 9006, - "▁wasn": 9007, - "▁phone": 9008, - "upload": 9009, - "aya": 9010, - "тора": 9011, - "lines": 9012, - "▁indu": 9013, - "▁vot": 9014, - "▁espa": 9015, - "▁bin": 9016, - "▁после": 9017, - "plan": 9018, - "▁junio": 9019, - "orial": 9020, - "free": 9021, - "sterreich": 9022, - "▁ду": 9023, - "▁linked": 9024, - "▁enable": 9025, - "PC": 9026, - "▁density": 9027, - "▁Egy": 9028, - "yo": 9029, - "endre": 9030, - "▁съ": 9031, - "▁italiano": 9032, - "▁AR": 9033, - "▁Pers": 9034, - "férés": 9035, - "▁скла": 9036, - "Var": 9037, - "▁Once": 9038, - "Red": 9039, - "buffer": 9040, - "▁Enter": 9041, - "▁Š": 9042, - "imiento": 9043, - "Store": 9044, - "▁health": 9045, - "vat": 9046, - "IST": 9047, - "Oh": 9048, - "▁kw": 9049, - "▁riv": 9050, - "▁somewhere": 9051, - "ografie": 9052, - "private": 9053, - "кти": 9054, - "▁delay": 9055, - "▁Http": 9056, - "job": 9057, - "rael": 9058, - "empor": 9059, - "▁diciembre": 9060, - "ête": 9061, - "цу": 9062, - "▁commit": 9063, - "oso": 9064, - "Values": 9065, - "▁headers": 9066, - "transform": 9067, - "▁processing": 9068, - "rå": 9069, - "▁Ah": 9070, - "▁Node": 9071, - "------------": 9072, - "▁faire": 9073, - "▁hun": 9074, - "Player": 9075, - "▁review": 9076, - "гда": 9077, - "▁limited": 9078, - "▁Property": 9079, - "▁serve": 9080, - "riage": 9081, - "▁Master": 9082, - "▁kann": 9083, - "crete": 9084, - "phere": 9085, - "ёр": 9086, - "▁chief": 9087, - "▁scene": 9088, - "kin": 9089, - "▁uniform": 9090, - "▁febrero": 9091, - "\"}": 9092, - "illo": 9093, - "ITE": 9094, - "ouvel": 9095, - "usepackage": 9096, - "enth": 9097, - "▁quickly": 9098, - "Lambda": 9099, - "xes": 9100, - "▁cells": 9101, - "rog": 9102, - "amin": 9103, - "▁Мар": 9104, - "▁mayor": 9105, - "player": 9106, - "++;": 9107, - "▁Насе": 9108, - "▁safe": 9109, - "▁veloc": 9110, - "▁обра": 9111, - "Database": 9112, - "neh": 9113, - "Vert": 9114, - "▁fle": 9115, - "▁фор": 9116, - "▁foreign": 9117, - "Abstract": 9118, - "▁magn": 9119, - "▁modified": 9120, - "▁military": 9121, - "▁monde": 9122, - "▁Action": 9123, - "▁bank": 9124, - "Serial": 9125, - "▁continuous": 9126, - "▁gel": 9127, - "▁physical": 9128, - "▁introduced": 9129, - "uture": 9130, - "rick": 9131, - "▁presented": 9132, - "▁Prov": 9133, - "▁Both": 9134, - "Pos": 9135, - "super": 9136, - "&#": 9137, - "▁finding": 9138, - "nel": 9139, - "unde": 9140, - "▁från": 9141, - "skim": 9142, - "▁Hill": 9143, - "fn": 9144, - "▁Canad": 9145, - "▁intended": 9146, - "ozzáférés": 9147, - "▁juillet": 9148, - "▁Wars": 9149, - "▁successful": 9150, - "▁charg": 9151, - "iele": 9152, - "omething": 9153, - "oku": 9154, - "fetch": 9155, - "▁}}": 9156, - "bank": 9157, - "operatorname": 9158, - "▁Color": 9159, - "▁Card": 9160, - "tu": 9161, - "▁\",": 9162, - "wid": 9163, - "▁gep": 9164, - "XML": 9165, - "================": 9166, - "▁Virgin": 9167, - "ährend": 9168, - "licated": 9169, - "Dir": 9170, - "zero": 9171, - "▁Kal": 9172, - "▁Party": 9173, - "▁å": 9174, - "price": 9175, - "don": 9176, - "▁warning": 9177, - "▁Bad": 9178, - "▁Supp": 9179, - "▁Liga": 9180, - "▁Pierre": 9181, - "Record": 9182, - "ulator": 9183, - "▁Rome": 9184, - "▁theorem": 9185, - "▁entirely": 9186, - "ским": 9187, - "het": 9188, - "▁dopo": 9189, - "Next": 9190, - "mlung": 9191, - "wig": 9192, - "▁Ath": 9193, - "▁Sou": 9194, - "licher": 9195, - "▁sudo": 9196, - "ests": 9197, - "хів": 9198, - "▁septiembre": 9199, - "▁micro": 9200, - "▁trop": 9201, - "fit": 9202, - "Core": 9203, - "▁Radio": 9204, - "▁Organ": 9205, - "▁Power": 9206, - "CF": 9207, - "▁Last": 9208, - "▁oppos": 9209, - "▁offset": 9210, - "▁regia": 9211, - "▁minimum": 9212, - "▁helped": 9213, - "andon": 9214, - "ifying": 9215, - "ruit": 9216, - "enschapp": 9217, - "▁bere": 9218, - "VM": 9219, - "▁Awards": 9220, - "▁agr": 9221, - "ynomial": 9222, - "enced": 9223, - "▁devices": 9224, - "▁bot": 9225, - "▁firm": 9226, - "▁writer": 9227, - "▁ring": 9228, - ".-": 9229, - "istes": 9230, - "lä": 9231, - "▁mel": 9232, - "entation": 9233, - "▁Schw": 9234, - "▁nome": 9235, - "▁pobla": 9236, - "▁woj": 9237, - "▁ul": 9238, - "ento": 9239, - "ых": 9240, - "▁resist": 9241, - "▁remains": 9242, - "▁Ca": 9243, - "aña": 9244, - "▁Court": 9245, - "utable": 9246, - "entially": 9247, - "▁trat": 9248, - "▁Visual": 9249, - "▁restrict": 9250, - "▁previously": 9251, - "cation": 9252, - "▁осо": 9253, - "▁MySQL": 9254, - "för": 9255, - "cala": 9256, - "▁culture": 9257, - "live": 9258, - "▁accepted": 9259, - "Did": 9260, - "▁hous": 9261, - "▁selection": 9262, - "▁decre": 9263, - "margin": 9264, - "urb": 9265, - "▁Inc": 9266, - "▁Many": 9267, - "ibt": 9268, - "▁succeed": 9269, - "Binding": 9270, - "cí": 9271, - "▁Rog": 9272, - "▁shouldn": 9273, - "cloud": 9274, - "▁dz": 9275, - "вав": 9276, - "▁pix": 9277, - "small": 9278, - "▁projects": 9279, - "▁OK": 9280, - "▁latest": 9281, - "▁references": 9282, - "Program": 9283, - "▁erst": 9284, - "▁як": 9285, - "▁kam": 9286, - "▁Camb": 9287, - "ellt": 9288, - "öd": 9289, - "none": 9290, - "▁jusqu": 9291, - "king": 9292, - "▁Ped": 9293, - "assert": 9294, - "CS": 9295, - "rito": 9296, - "essa": 9297, - "лько": 9298, - "▁Von": 9299, - "▁Edward": 9300, - "▁impossible": 9301, - "np": 9302, - "words": 9303, - "ielt": 9304, - "▁Page": 9305, - "lers": 9306, - "▁pier": 9307, - "▁области": 9308, - "ittee": 9309, - "▁([": 9310, - "▁trust": 9311, - "NG": 9312, - "redu": 9313, - "<<": 9314, - "rial": 9315, - "▁products": 9316, - "▁Ern": 9317, - "rière": 9318, - "гов": 9319, - "▁Reich": 9320, - "▁Road": 9321, - "▁nested": 9322, - "Display": 9323, - "▁strength": 9324, - "ografía": 9325, - "▁announced": 9326, - "▁Science": 9327, - "▁райо": 9328, - "Parameter": 9329, - "▁Task": 9330, - "uments": 9331, - "▁adopt": 9332, - "▁Only": 9333, - "ють": 9334, - "▁cli": 9335, - "▁lem": 9336, - "stood": 9337, - "▁FI": 9338, - "ências": 9339, - "ponents": 9340, - "]$": 9341, - "comment": 9342, - "▁ya": 9343, - "should": 9344, - "ike": 9345, - "tim": 9346, - "ellig": 9347, - "▁sending": 9348, - "▁ajax": 9349, - "▁noviembre": 9350, - "umes": 9351, - "▁weiter": 9352, - "▁Dans": 9353, - "opp": 9354, - "▁septembre": 9355, - "otimes": 9356, - "ző": 9357, - "▁ep": 9358, - "vere": 9359, - "▁oh": 9360, - ":=": 9361, - "▁Song": 9362, - "”,": 9363, - "▁viv": 9364, - "▁queries": 9365, - "▁vá": 9366, - "▁décembre": 9367, - "▁unable": 9368, - "▁erh": 9369, - "▁`-": 9370, - "▁Lee": 9371, - "▁ersten": 9372, - "ôt": 9373, - "стве": 9374, - "TS": 9375, - "▁fragment": 9376, - "▁wide": 9377, - "▁suff": 9378, - "▁dut": 9379, - "▁Vere": 9380, - "іс": 9381, - "ading": 9382, - "iego": 9383, - "icago": 9384, - "▁Argent": 9385, - "orer": 9386, - "ennes": 9387, - "▁Leb": 9388, - "linux": 9389, - "acing": 9390, - "▁broken": 9391, - "tp": 9392, - "ío": 9393, - "abeth": 9394, - "istas": 9395, - "gew": 9396, - "ième": 9397, - "cas": 9398, - "▁preced": 9399, - "▁Dal": 9400, - "▁compared": 9401, - "equiv": 9402, - "illy": 9403, - "teen": 9404, - "▁Console": 9405, - "▁strict": 9406, - "itaire": 9407, - "▁ED": 9408, - "entials": 9409, - "▁perman": 9410, - "▁tous": 9411, - "▁geme": 9412, - "▁extrem": 9413, - "▁окру": 9414, - "kg": 9415, - "▁heavy": 9416, - "▁avril": 9417, - "▁anti": 9418, - "▁octobre": 9419, - "utf": 9420, - "helm": 9421, - "amples": 9422, - "▁(_": 9423, - "aken": 9424, - "▁dear": 9425, - "▁opinion": 9426, - "▁fish": 9427, - "▁Alexander": 9428, - "iw": 9429, - "им": 9430, - "cadem": 9431, - "▁reflect": 9432, - "▁др": 9433, - "▁trib": 9434, - "common": 9435, - "▁clearly": 9436, - "▁saf": 9437, - "=\"@+": 9438, - "▁Мос": 9439, - "сите": 9440, - "eqnarray": 9441, - "nung": 9442, - "▁relationship": 9443, - "▁Sem": 9444, - "▁killed": 9445, - "ted": 9446, - "uno": 9447, - "▁лі": 9448, - "▁wid": 9449, - "anning": 9450, - "▁panel": 9451, - "▁Leben": 9452, - "▁ruby": 9453, - "ansion": 9454, - "▁aren": 9455, - "tabular": 9456, - "alet": 9457, - "}$$": 9458, - "▁Lake": 9459, - "▁suite": 9460, - "▁minor": 9461, - "Hozzáférés": 9462, - "▁xmlns": 9463, - "DIR": 9464, - "driver": 9465, - "ints": 9466, - "▁vic": 9467, - "AND": 9468, - "prim": 9469, - "сылки": 9470, - "▁Ox": 9471, - "TC": 9472, - "rivial": 9473, - "atie": 9474, - "▁eight": 9475, - "▁conflic": 9476, - "angel": 9477, - "▁Begr": 9478, - "▁explicitly": 9479, - "ются": 9480, - "▁Dev": 9481, - "render": 9482, - "▁reprodu": 9483, - "▁cré": 9484, - "Gu": 9485, - "MB": 9486, - "▁kön": 9487, - "▁remained": 9488, - "▁kl": 9489, - "хов": 9490, - "▁byl": 9491, - "Phi": 9492, - "▁detail": 9493, - "jav": 9494, - "▁mouse": 9495, - "Bas": 9496, - "ię": 9497, - "asser": 9498, - "hs": 9499, - "▁shift": 9500, - "▁últ": 9501, - "rand": 9502, - "▁btn": 9503, - "raz": 9504, - "▁pul": 9505, - "▁statements": 9506, - "filename": 9507, - "▁prompt": 9508, - "élé": 9509, - "ikz": 9510, - "▁Sus": 9511, - "▁debut": 9512, - "Stat": 9513, - "forms": 9514, - "▁Hein": 9515, - "stadt": 9516, - "ennis": 9517, - "пол": 9518, - "arante": 9519, - "цій": 9520, - "▁queue": 9521, - "▁reci": 9522, - "▁sta": 9523, - "ynchron": 9524, - "centering": 9525, - "Some": 9526, - "Graph": 9527, - "▁tested": 9528, - "▁Kunst": 9529, - "ом": 9530, - "▁Nothing": 9531, - "ieu": 9532, - "“.": 9533, - "Bundle": 9534, - "▁oficial": 9535, - "allow": 9536, - "▁React": 9537, - "▁Library": 9538, - "blue": 9539, - "▁verw": 9540, - "▁pare": 9541, - "▁Friedrich": 9542, - "▁aware": 9543, - "Exp": 9544, - "▁effects": 9545, - "▁горо": 9546, - "lopedia": 9547, - "▁Ven": 9548, - "rale": 9549, - "▁Final": 9550, - "▁propos": 9551, - "lacement": 9552, - "kten": 9553, - "▁novel": 9554, - "orter": 9555, - "▁Germany": 9556, - "▁django": 9557, - "▁transition": 9558, - "▁happened": 9559, - "▁beautiful": 9560, - "▁neither": 9561, - "▁libraries": 9562, - "▁hide": 9563, - "alg": 9564, - "▁aspect": 9565, - "▁forget": 9566, - "cademy": 9567, - "onte": 9568, - "refix": 9569, - "▁cloud": 9570, - "ned": 9571, - "cdots": 9572, - "register": 9573, - "nym": 9574, - ".):": 9575, - "▁Jew": 9576, - "▁très": 9577, - "ниче": 9578, - "▁Dor": 9579, - "▁proc": 9580, - "▁gan": 9581, - "▁є": 9582, - "▁Sav": 9583, - "ví": 9584, - "Settings": 9585, - "▁Vari": 9586, - "▁cours": 9587, - "Ro": 9588, - "▁conj": 9589, - "▁reasons": 9590, - "▁reader": 9591, - "лександ": 9592, - "icate": 9593, - "}),": 9594, - "▁tasks": 9595, - "▁Ray": 9596, - "▁ric": 9597, - "Ke": 9598, - "onie": 9599, - "rf": 9600, - ")[": 9601, - "▁subsequ": 9602, - "▁Turn": 9603, - "▁VIAF": 9604, - "mathsf": 9605, - "HE": 9606, - "▁declare": 9607, - "▁protocol": 9608, - "▁PC": 9609, - "цион": 9610, - "ViewById": 9611, - "▁animation": 9612, - "▁confused": 9613, - "вич": 9614, - "▁enabled": 9615, - "owo": 9616, - "ást": 9617, - "öt": 9618, - "▁mand": 9619, - "▁Rail": 9620, - "fields": 9621, - "▁Kap": 9622, - "▁algebra": 9623, - "▁Су": 9624, - "férence": 9625, - "▁Current": 9626, - "сно": 9627, - "▁Lim": 9628, - "Params": 9629, - "▁Antonio": 9630, - "▁tv": 9631, - "late": 9632, - "ifer": 9633, - "Entry": 9634, - "▁Serv": 9635, - "▁musical": 9636, - "▁trace": 9637, - "▁scient": 9638, - "fic": 9639, - "▁forgot": 9640, - "video": 9641, - "▁older": 9642, - "Tree": 9643, - "▁uns": 9644, - "ники": 9645, - "▁Europa": 9646, - "▁Zwe": 9647, - "▁бе": 9648, - "▁vec": 9649, - "жу": 9650, - "▁▁▁▁▁▁▁▁▁▁▁": 9651, - "Match": 9652, - "span": 9653, - "▁blank": 9654, - "▁später": 9655, - "▁Ty": 9656, - "▁dict": 9657, - "ña": 9658, - "▁confirm": 9659, - "▁vý": 9660, - "зан": 9661, - "Rel": 9662, - "film": 9663, - "▁Rot": 9664, - "▁Hy": 9665, - "ках": 9666, - "▁demand": 9667, - "▁minist": 9668, - "▁Madrid": 9669, - "▁usual": 9670, - "spiel": 9671, - "eros": 9672, - "▁tutorial": 9673, - "▁Ссылки": 9674, - "sys": 9675, - "циаль": 9676, - "▁spread": 9677, - "▁convers": 9678, - "▁roll": 9679, - "artifactId": 9680, - "▁Number": 9681, - "▁symmet": 9682, - "▁Mult": 9683, - "expected": 9684, - "▁axis": 9685, - "▁matching": 9686, - "▁food": 9687, - "groupId": 9688, - "Mapp": 9689, - "▁свя": 9690, - "▁vend": 9691, - "Found": 9692, - "otto": 9693, - "Cat": 9694, - "crit": 9695, - "istent": 9696, - "▁drei": 9697, - "▁ended": 9698, - "▁Tele": 9699, - "component": 9700, - "▁involved": 9701, - "▁Estados": 9702, - "▁danger": 9703, - "▁chain": 9704, - "▁Prom": 9705, - "hom": 9706, - "▁polít": 9707, - "cop": 9708, - "▁nap": 9709, - "rif": 9710, - "plements": 9711, - "▁vent": 9712, - "anna": 9713, - "anted": 9714, - "dated": 9715, - "anth": 9716, - "▁threads": 9717, - "зова": 9718, - "▁станов": 9719, - "▁eerst": 9720, - "buf": 9721, - "heid": 9722, - "▁Ru": 9723, - "▁Prim": 9724, - "▁migr": 9725, - "▁Unidos": 9726, - "▁arbitr": 9727, - "▁roman": 9728, - "ountry": 9729, - "ultur": 9730, - "▁König": 9731, - "▁annot": 9732, - "aching": 9733, - "▁Haupt": 9734, - "umin": 9735, - "▁hem": 9736, - "ckets": 9737, - "bau": 9738, - "ection": 9739, - "eft": 9740, - "▁packages": 9741, - "▁Kur": 9742, - "thur": 9743, - "▁pays": 9744, - "liament": 9745, - "▁Бу": 9746, - "▁cada": 9747, - "points": 9748, - "ocket": 9749, - "▁verb": 9750, - "лее": 9751, - "▁submit": 9752, - "▁san": 9753, - "ruby": 9754, - "▁east": 9755, - "kov": 9756, - "▁Verlag": 9757, - "▁spot": 9758, - "ppo": 9759, - "Each": 9760, - "jekt": 9761, - "▁Biographie": 9762, - "▁news": 9763, - "▁país": 9764, - "ufact": 9765, - "▁dia": 9766, - "кова": 9767, - "▁accompl": 9768, - "▁Ét": 9769, - "ilities": 9770, - "▁ihm": 9771, - "invoke": 9772, - "▁append": 9773, - ".),": 9774, - "▁lab": 9775, - "anging": 9776, - "istan": 9777, - "resol": 9778, - "▁Section": 9779, - "Parent": 9780, - "moz": 9781, - "Mat": 9782, - "styles": 9783, - "unden": 9784, - "“,": 9785, - "irtschaft": 9786, - "ким": 9787, - "▁Finally": 9788, - "phen": 9789, - "▁Pac": 9790, - "▁ArrayList": 9791, - "▁recover": 9792, - "▁education": 9793, - "models": 9794, - "ped": 9795, - "▁happy": 9796, - "чу": 9797, - "▁guerra": 9798, - "media": 9799, - "OF": 9800, - "▁ensure": 9801, - "Mark": 9802, - "database": 9803, - "oggle": 9804, - "▁publish": 9805, - "OW": 9806, - "▁Bau": 9807, - "?.": 9808, - "▁части": 9809, - "▁repository": 9810, - "▁Matt": 9811, - "high": 9812, - "oven": 9813, - "▁ger": 9814, - "▁unknown": 9815, - "Amer": 9816, - "▁Brown": 9817, - "ALL": 9818, - "▁resulting": 9819, - "▁bor": 9820, - "▁poet": 9821, - "ними": 9822, - "Email": 9823, - "Font": 9824, - "▁hist": 9825, - "▁today": 9826, - "▁Berg": 9827, - "▁buttons": 9828, - "тал": 9829, - "▁sni": 9830, - "▁челов": 9831, - "Cre": 9832, - "▁union": 9833, - "▁zich": 9834, - "ishop": 9835, - "▁quando": 9836, - "Po": 9837, - "CTION": 9838, - "▁Cost": 9839, - "судар": 9840, - "erved": 9841, - "Note": 9842, - "Equal": 9843, - "лия": 9844, - "бур": 9845, - "▁abstract": 9846, - "stop": 9847, - "▁advice": 9848, - "▁icon": 9849, - "▁travel": 9850, - "BS": 9851, - "vens": 9852, - "▁batch": 9853, - "lique": 9854, - "sheet": 9855, - "▁ihre": 9856, - "emon": 9857, - "berto": 9858, - "▁assigned": 9859, - "ью": 9860, - "Phone": 9861, - "▁award": 9862, - "▁functionality": 9863, - "alla": 9864, - "▁Dam": 9865, - "▁ciudad": 9866, - "▁cluster": 9867, - "Description": 9868, - "▁sheet": 9869, - "▁Australian": 9870, - "▁».": 9871, - "▁\"<": 9872, - "▁wondering": 9873, - "aine": 9874, - "▁represented": 9875, - "kappa": 9876, - "nb": 9877, - "▁sy": 9878, - "▁Kö": 9879, - "=\"#": 9880, - "▁seven": 9881, - "Directory": 9882, - "▁sister": 9883, - "plates": 9884, - "▁luck": 9885, - "▁remaining": 9886, - "▁Vill": 9887, - "werk": 9888, - "anni": 9889, - "etti": 9890, - "func": 9891, - "▁ban": 9892, - "ims": 9893, - "miss": 9894, - "agraph": 9895, - "екси": 9896, - "▁Ref": 9897, - "nitt": 9898, - "▁Gab": 9899, - "▁andere": 9900, - "▁jedoch": 9901, - "results": 9902, - "!\\": 9903, - "▁listed": 9904, - "▁loro": 9905, - "▁knows": 9906, - "жно": 9907, - "Rad": 9908, - "▁socket": 9909, - "multi": 9910, - "▁рі": 9911, - "rails": 9912, - "▁tar": 9913, - "▁gentle": 9914, - "sett": 9915, - "services": 9916, - "bound": 9917, - "igkeit": 9918, - "aja": 9919, - "▁cmd": 9920, - "agger": 9921, - "▁ba": 9922, - "▁Belg": 9923, - "▁Kle": 9924, - "▁wordt": 9925, - "▁fost": 9926, - "▁dimension": 9927, - "Ang": 9928, - "uming": 9929, - "Obj": 9930, - "нен": 9931, - "▁Marie": 9932, - "exists": 9933, - "тро": 9934, - "▁боль": 9935, - "emente": 9936, - "▁Jon": 9937, - "SERT": 9938, - "▁highest": 9939, - "aki": 9940, - "▁tres": 9941, - "▁circum": 9942, - "▁Down": 9943, - "ommen": 9944, - "urer": 9945, - "▁causes": 9946, - "venue": 9947, - "issance": 9948, - "▁influence": 9949, - "▁fat": 9950, - "реди": 9951, - "}\\\\": 9952, - "▁entr": 9953, - "▁Sign": 9954, - "▁кла": 9955, - "▁binding": 9956, - "essen": 9957, - "▁Фран": 9958, - "▁Local": 9959, - "▁явля": 9960, - "appro": 9961, - "▁dependencies": 9962, - "▁talking": 9963, - "▁zurück": 9964, - "connection": 9965, - "Active": 9966, - "bbe": 9967, - "irls": 9968, - "▁Inf": 9969, - "wd": 9970, - "▁ис": 9971, - "road": 9972, - "▁conven": 9973, - "ět": 9974, - "вез": 9975, - "▁entries": 9976, - "esc": 9977, - "▁bits": 9978, - "asso": 9979, - "WR": 9980, - "ships": 9981, - "▁dés": 9982, - "esp": 9983, - "Make": 9984, - "▁familiar": 9985, - "Art": 9986, - "▁army": 9987, - "ctr": 9988, - "éric": 9989, - "queue": 9990, - "▁\\{": 9991, - "uela": 9992, - "amiento": 9993, - "ших": 9994, - "▁\"\"\"": 9995, - "contr": 9996, - "лле": 9997, - "FS": 9998, - "▁market": 9999, - "ång": 10000, - "citep": 10001, - "Ill": 10002, - "rank": 10003, - "▁sender": 10004, - "▁beim": 10005, - "рак": 10006, - "▁compat": 10007, - "▁occurs": 10008, - "▁diese": 10009, - "ститу": 10010, - "awa": 10011, - "▁iOS": 10012, - "▁Chinese": 10013, - "▁TR": 10014, - "▁Ken": 10015, - "▁Une": 10016, - "▁creates": 10017, - "▁showed": 10018, - "▁év": 10019, - "ologia": 10020, - "▁protest": 10021, - "▁Pf": 10022, - "▁squad": 10023, - "++,": 10024, - "áv": 10025, - "▁essere": 10026, - "зя": 10027, - "kol": 10028, - "▁slightly": 10029, - "addr": 10030, - "ân": 10031, - "▁reduce": 10032, - "▁\\(\\": 10033, - "▁Dep": 10034, - "▁generic": 10035, - "Loader": 10036, - "ți": 10037, - "▁пос": 10038, - "▁occasion": 10039, - "▁Lady": 10040, - "entity": 10041, - "▁avant": 10042, - "▁Pas": 10043, - "aggio": 10044, - "\\{": 10045, - "пад": 10046, - "atholic": 10047, - "Password": 10048, - "▁respond": 10049, - "▁Non": 10050, - "AG": 10051, - "neg": 10052, - "▁ус": 10053, - "blob": 10054, - "cke": 10055, - "▁Consider": 10056, - "▁Care": 10057, - "iki": 10058, - "▁Chicago": 10059, - "inden": 10060, - "▁Cop": 10061, - "]+": 10062, - "öm": 10063, - "évrier": 10064, - "кло": 10065, - "alen": 10066, - "▁maj": 10067, - "racy": 10068, - "orte": 10069, - "ients": 10070, - "ells": 10071, - "activity": 10072, - "▁runtime": 10073, - "NULL": 10074, - "▁possibly": 10075, - "▁stri": 10076, - "izi": 10077, - "▁mir": 10078, - "▁Version": 10079, - "prime": 10080, - "▁twenty": 10081, - "▁Mah": 10082, - "▁sounds": 10083, - "шен": 10084, - "clusion": 10085, - "acz": 10086, - "▁determined": 10087, - "▁Rep": 10088, - "▁Landes": 10089, - "▁wall": 10090, - "igi": 10091, - "▁reset": 10092, - "шо": 10093, - "yan": 10094, - "Met": 10095, - "ei": 10096, - "▁appearance": 10097, - "▁fois": 10098, - "▁nell": 10099, - "esi": 10100, - "ёт": 10101, - "loor": 10102, - "▁Ul": 10103, - "▁resolution": 10104, - "▁fot": 10105, - "▁throughout": 10106, - "▁ri": 10107, - "Level": 10108, - "pool": 10109, - "▁identity": 10110, - "▁janu": 10111, - "▁imper": 10112, - "▁över": 10113, - "}`": 10114, - "▁infer": 10115, - "▁dates": 10116, - "▁Standard": 10117, - "force": 10118, - "ockey": 10119, - "tera": 10120, - "▁distingu": 10121, - "▁presence": 10122, - "lica": 10123, - "▁leaving": 10124, - "itung": 10125, - "éb": 10126, - "▁establish": 10127, - "▁maar": 10128, - "adi": 10129, - "▁News": 10130, - "azon": 10131, - "folg": 10132, - "▁Hence": 10133, - "▁Ye": 10134, - "▁fab": 10135, - "▁führ": 10136, - "itmap": 10137, - "▁Vers": 10138, - "rov": 10139, - "Sign": 10140, - "device": 10141, - "Sigma": 10142, - "▁wetenschapp": 10143, - "▁Ps": 10144, - "PATH": 10145, - "▁torn": 10146, - "vest": 10147, - "стов": 10148, - "account": 10149, - "▁largest": 10150, - "▁percent": 10151, - "▁Women": 10152, - "▁img": 10153, - "tool": 10154, - "▁roce": 10155, - "▁ay": 10156, - "inet": 10157, - "▁août": 10158, - "▁polynomial": 10159, - "▁integral": 10160, - "▁areas": 10161, - "}'": 10162, - "▁hyp": 10163, - "loyee": 10164, - "таль": 10165, - "▁proxy": 10166, - "▁Wy": 10167, - "▁Мекси": 10168, - "▁escape": 10169, - "olar": 10170, - "▁mistake": 10171, - ")}{": 10172, - "▁Pot": 10173, - "▁processes": 10174, - "\">\r": 10175, - "halten": 10176, - "zza": 10177, - "amo": 10178, - "кре": 10179, - "▁Wood": 10180, - "ør": 10181, - "▁сер": 10182, - "ocia": 10183, - "two": 10184, - "profile": 10185, - "▁Ast": 10186, - "embro": 10187, - "▁arms": 10188, - "inas": 10189, - "innen": 10190, - "▁msg": 10191, - "INT": 10192, - "▁batter": 10193, - "ignment": 10194, - "▁vy": 10195, - "Hrsg": 10196, - "▁Grund": 10197, - "roc": 10198, - "seg": 10199, - "▁decor": 10200, - "▁eventually": 10201, - ">,": 10202, - "▁pag": 10203, - "anten": 10204, - "▁strugg": 10205, - "}^\\": 10206, - "daten": 10207, - "▁rela": 10208, - "пов": 10209, - "▁коро": 10210, - "▁Bos": 10211, - "▁labor": 10212, - "▁Secret": 10213, - "ugen": 10214, - "▁jap": 10215, - "▁husband": 10216, - "▁Album": 10217, - "▁etwa": 10218, - "▁произ": 10219, - "richt": 10220, - "rach": 10221, - "bat": 10222, - "▁prepar": 10223, - "▁Stock": 10224, - "▁lack": 10225, - "хід": 10226, - "▁hogy": 10227, - "▁Chrome": 10228, - "▁Admin": 10229, - "▁comparison": 10230, - "▁increasing": 10231, - "нг": 10232, - "imi": 10233, - "Db": 10234, - "▁gef": 10235, - "ucht": 10236, - "ése": 10237, - "gence": 10238, - "▁Core": 10239, - "▁incorrect": 10240, - "▁assuming": 10241, - "ourse": 10242, - "ieron": 10243, - "▁Theorem": 10244, - "▁casa": 10245, - "jes": 10246, - "▁дере": 10247, - "▁`\"": 10248, - "LD": 10249, - "äß": 10250, - "Deb": 10251, - "▁suiv": 10252, - "▁Bank": 10253, - "libs": 10254, - "▁Leon": 10255, - "▁quart": 10256, - "▁professional": 10257, - "▁tiene": 10258, - "▁accomp": 10259, - "стер": 10260, - "▁UK": 10261, - "NN": 10262, - "▁lí": 10263, - "ця": 10264, - "kel": 10265, - "▁•": 10266, - "▁dise": 10267, - "onto": 10268, - "▁má": 10269, - "ifs": 10270, - "bild": 10271, - "▁compute": 10272, - "▁éd": 10273, - "ję": 10274, - "▁Mé": 10275, - "▁languages": 10276, - "▁Times": 10277, - "cen": 10278, - "▁авто": 10279, - "ým": 10280, - "enez": 10281, - "▁upp": 10282, - "▁méd": 10283, - "▁cuando": 10284, - "од": 10285, - "Intent": 10286, - "eerd": 10287, - "▁Tal": 10288, - "offset": 10289, - "▁haben": 10290, - "reme": 10291, - "▁Stack": 10292, - "▁dri": 10293, - "▁seinem": 10294, - "▁février": 10295, - "▁combination": 10296, - "▁soll": 10297, - "▁movement": 10298, - "Spec": 10299, - "кры": 10300, - "retch": 10301, - "Offset": 10302, - "Root": 10303, - "Ар": 10304, - "wart": 10305, - "▁Follow": 10306, - "▁Social": 10307, - "ников": 10308, - "▁→": 10309, - "Don": 10310, - "▁harm": 10311, - "agr": 10312, - "nego": 10313, - "resource": 10314, - "▁Luc": 10315, - "▁seinen": 10316, - "▁Department": 10317, - "▁Update": 10318, - "▁Texas": 10319, - "▁reve": 10320, - "▁Pos": 10321, - "▁shot": 10322, - "othe": 10323, - "▁repeated": 10324, - "▁recently": 10325, - "ában": 10326, - "aks": 10327, - "пан": 10328, - "▁cha": 10329, - "ohl": 10330, - "▁tend": 10331, - "▁дво": 10332, - "chts": 10333, - "çaise": 10334, - "pling": 10335, - "album": 10336, - "ej": 10337, - "▁`[": 10338, - "maps": 10339, - "▁units": 10340, - "▁": 15110, - "▁pří": 15111, - "pandas": 15112, - "▁Plus": 15113, - "yll": 15114, - "▁terror": 15115, - "▁crim": 15116, - "▁zak": 15117, - "issue": 15118, - "panel": 15119, - "svg": 15120, - "▁reb": 15121, - "Customer": 15122, - "switch": 15123, - "обра": 15124, - "▁Championships": 15125, - "clo": 15126, - "atte": 15127, - "▁anymore": 15128, - "▁excellent": 15129, - "▁opportunity": 15130, - "▁Bahn": 15131, - "чин": 15132, - "eting": 15133, - "▁incident": 15134, - "tom": 15135, - "Pers": 15136, - "bben": 15137, - "ственной": 15138, - "их": 15139, - "router": 15140, - "▁newly": 15141, - "▁silence": 15142, - "▁GNU": 15143, - "▁Rails": 15144, - "▁Amb": 15145, - "▁Qual": 15146, - "▁Schaus": 15147, - "▁Sohn": 15148, - "▁ALL": 15149, - "▁royal": 15150, - "▁£": 15151, - "wię": 15152, - "▁entfer": 15153, - "▁Remove": 15154, - "▁hardly": 15155, - "Using": 15156, - "лог": 15157, - "▁Ich": 15158, - "▁derni": 15159, - "▁Connection": 15160, - "fish": 15161, - "▁Inform": 15162, - "▁Ener": 15163, - "roit": 15164, - "Bbb": 15165, - "ViewModel": 15166, - "Video": 15167, - "iley": 15168, - "▁много": 15169, - "▁Gem": 15170, - "▁compreh": 15171, - "enumerate": 15172, - "ulas": 15173, - "▁Bah": 15174, - "▁Yet": 15175, - "BR": 15176, - "хра": 15177, - "▁county": 15178, - "▁Hist": 15179, - "▁Гу": 15180, - "▁Ј": 15181, - "▁mari": 15182, - "▁Clar": 15183, - "Bitmap": 15184, - "▁Cz": 15185, - "▁mån": 15186, - "▁mere": 15187, - "▁musique": 15188, - "also": 15189, - "dates": 15190, - "▁DVD": 15191, - "▁gol": 15192, - "fony": 15193, - "▁Castle": 15194, - "▁фами": 15195, - "▁arrang": 15196, - "▁Business": 15197, - "▁Kaz": 15198, - "▁osc": 15199, - "▁secolo": 15200, - "▁affected": 15201, - "▁Health": 15202, - "reb": 15203, - "editor": 15204, - "▁owned": 15205, - "tl": 15206, - "▁ví": 15207, - "чних": 15208, - "кви": 15209, - "▁devient": 15210, - "Mutable": 15211, - "▁tegen": 15212, - "Register": 15213, - "єю": 15214, - "▁caracter": 15215, - "лли": 15216, - "▁nouvelle": 15217, - "oko": 15218, - "ichtet": 15219, - "▁evol": 15220, - "▁Hab": 15221, - "▁militar": 15222, - "▁puts": 15223, - "endif": 15224, - "▁Davis": 15225, - "▁Scotland": 15226, - "regular": 15227, - "▁Context": 15228, - "ispiel": 15229, - "▁Gallery": 15230, - "\",\r": 15231, - "▁arc": 15232, - "▁INFO": 15233, - "▁cod": 15234, - "дів": 15235, - "▁varchar": 15236, - "▁toujours": 15237, - "atial": 15238, - "▁hanno": 15239, - "▁профес": 15240, - "▁launched": 15241, - "▁населення": 15242, - "▁ton": 15243, - "aused": 15244, - "▁із": 15245, - "▁tö": 15246, - "▁Pur": 15247, - "▁olymp": 15248, - "ARN": 15249, - "óm": 15250, - "▁august": 15251, - "▁furn": 15252, - "▁Colomb": 15253, - "▁Staats": 15254, - "hora": 15255, - "▁мор": 15256, - "canvas": 15257, - "▁grave": 15258, - "▁composition": 15259, - "acja": 15260, - "▁которые": 15261, - "▁чо": 15262, - "General": 15263, - "ані": 15264, - "▁Johannes": 15265, - "кар": 15266, - "▁част": 15267, - "▁Васи": 15268, - "ssh": 15269, - "▁replacing": 15270, - "▁<>": 15271, - "ців": 15272, - "laus": 15273, - "eny": 15274, - "ähl": 15275, - "▁marg": 15276, - "cience": 15277, - "▁instruction": 15278, - "▁који": 15279, - "Editor": 15280, - "▁fundamental": 15281, - "mund": 15282, - "▁exceptions": 15283, - "▁plate": 15284, - "▁Lis": 15285, - "▁deren": 15286, - "prep": 15287, - "▁januari": 15288, - "Scope": 15289, - "ynast": 15290, - "rv": 15291, - "orsz": 15292, - "▁Tony": 15293, - "▁ді": 15294, - "▁одна": 15295, - "▁sab": 15296, - "oti": 15297, - "jel": 15298, - "▁generator": 15299, - "▁'.": 15300, - "▁sharp": 15301, - "▁только": 15302, - "▁accounts": 15303, - "▁že": 15304, - "▁foram": 15305, - "▁gouvern": 15306, - "TIME": 15307, - "▁Soviet": 15308, - "▁Gé": 15309, - "▁exped": 15310, - "▁ordinary": 15311, - "▁Conserv": 15312, - "▁compla": 15313, - "tei": 15314, - "▁captain": 15315, - "▁Samuel": 15316, - "▁Dark": 15317, - "▁він": 15318, - "▁delight": 15319, - "recht": 15320, - "dia": 15321, - "esses": 15322, - "ulp": 15323, - "шки": 15324, - "bez": 15325, - "▁detection": 15326, - "▁cookie": 15327, - "antry": 15328, - "Multi": 15329, - "oba": 15330, - "▁joy": 15331, - "▁safety": 15332, - "|^": 15333, - "pod": 15334, - "adém": 15335, - "▁Chron": 15336, - "▁Django": 15337, - "▁ehemal": 15338, - "kh": 15339, - "èle": 15340, - "▁poc": 15341, - "Bottom": 15342, - "launch": 15343, - "nem": 15344, - "▁GROUP": 15345, - "ního": 15346, - "▁Gib": 15347, - "sdk": 15348, - "BE": 15349, - "▁Gene": 15350, - "▁Staff": 15351, - "▁subsequent": 15352, - "icion": 15353, - "▁victory": 15354, - "▁canon": 15355, - "izar": 15356, - "izia": 15357, - "▁mate": 15358, - "▁layers": 15359, - "sudo": 15360, - "schule": 15361, - "periment": 15362, - "ület": 15363, - "ARCHAR": 15364, - "▁террито": 15365, - "▁measures": 15366, - "▁zou": 15367, - "opsis": 15368, - "нами": 15369, - "tbody": 15370, - "▁ese": 15371, - "sterdam": 15372, - "▁photo": 15373, - "ynchronous": 15374, - "setminus": 15375, - "▁loads": 15376, - "▁pleasure": 15377, - "▁meille": 15378, - "}\\,": 15379, - "qual": 15380, - "▁favour": 15381, - "▁rod": 15382, - "Der": 15383, - "рабо": 15384, - "▁pressed": 15385, - "rę": 15386, - "ieving": 15387, - "material": 15388, - "virt": 15389, - "▁capable": 15390, - "сло": 15391, - "ushed": 15392, - "▁побе": 15393, - "usetts": 15394, - "unsigned": 15395, - "ków": 15396, - "▁ov": 15397, - "egeben": 15398, - "▁applying": 15399, - "▁galax": 15400, - "▁Oracle": 15401, - "▁Stuttgart": 15402, - "Infl": 15403, - "achusetts": 15404, - "▁deel": 15405, - "lire": 15406, - "▁statunit": 15407, - "▁Politiker": 15408, - "▁beauty": 15409, - ")>": 15410, - "▁Columbia": 15411, - "▁zewnętrzne": 15412, - "▁програ": 15413, - "▁dx": 15414, - "cknow": 15415, - "▁dub": 15416, - "unächst": 15417, - "findViewById": 15418, - "▁Mand": 15419, - "áll": 15420, - "naire": 15421, - "▁destin": 15422, - "isting": 15423, - "aggi": 15424, - "chart": 15425, - "▁justice": 15426, - "Simple": 15427, - "▁unfortunately": 15428, - "ір": 15429, - "▁questa": 15430, - "▁Governor": 15431, - "яв": 15432, - "▁música": 15433, - "▁equipo": 15434, - "▁Dest": 15435, - "elect": 15436, - "StackTrace": 15437, - "зом": 15438, - "proc": 15439, - "entin": 15440, - "adora": 15441, - "▁Лю": 15442, - "▁registered": 15443, - "HL": 15444, - "facebook": 15445, - "▁storing": 15446, - "▁Currently": 15447, - "▁quadr": 15448, - "Standard": 15449, - "trim": 15450, - "ears": 15451, - "sender": 15452, - "▁Vas": 15453, - "▁edific": 15454, - "▁Bür": 15455, - "▁Country": 15456, - "tha": 15457, - ";\"": 15458, - "nor": 15459, - "▁Doctor": 15460, - "rument": 15461, - "Gen": 15462, - "▁Buen": 15463, - "rade": 15464, - "▁kun": 15465, - "navigation": 15466, - "Pay": 15467, - "▁captured": 15468, - "▁struck": 15469, - "venir": 15470, - "ément": 15471, - "▁Tree": 15472, - "▁xx": 15473, - "▁narr": 15474, - "льного": 15475, - "▁installing": 15476, - "▁association": 15477, - "▁inserted": 15478, - "erner": 15479, - "validate": 15480, - "▁lut": 15481, - "▁glo": 15482, - "▁technology": 15483, - "▁Place": 15484, - "$?": 15485, - "▁zv": 15486, - "слі": 15487, - "EP": 15488, - "▁atmos": 15489, - "ugo": 15490, - "ért": 15491, - "▁Werk": 15492, - "▁%}": 15493, - "tele": 15494, - "Span": 15495, - "▁Raj": 15496, - "▁Personen": 15497, - "▁Cant": 15498, - "▁combat": 15499, - "▁observation": 15500, - "parameter": 15501, - "▁agreed": 15502, - "pur": 15503, - "▁shadow": 15504, - "▁gł": 15505, - "Keys": 15506, - "Cred": 15507, - "ouri": 15508, - "▁pale": 15509, - "ické": 15510, - "▁Week": 15511, - "▁Prime": 15512, - ">.": 15513, - "Initial": 15514, - "▁один": 15515, - "▁'',": 15516, - "▁учи": 15517, - "▁Inv": 15518, - "cola": 15519, - "cible": 15520, - "▁Theatre": 15521, - "▁bem": 15522, - "▁satisfy": 15523, - "xl": 15524, - "▁разви": 15525, - "▁pixel": 15526, - "lán": 15527, - "▁twee": 15528, - "çon": 15529, - "нения": 15530, - "▁AT": 15531, - "ège": 15532, - "▁Mort": 15533, - "▁mysq": 15534, - "ften": 15535, - "▁пес": 15536, - "éma": 15537, - "▁Services": 15538, - "customer": 15539, - "▁AWS": 15540, - "ът": 15541, - "▁Ach": 15542, - "%.": 15543, - "▁clarify": 15544, - "▁университе": 15545, - "xture": 15546, - "umi": 15547, - "▁så": 15548, - "▁Pel": 15549, - "serial": 15550, - "URI": 15551, - "▁rg": 15552, - "▁соста": 15553, - "chestra": 15554, - "].[": 15555, - "wen": 15556, - "▁Londres": 15557, - "▁anys": 15558, - "DataSource": 15559, - "▁районе": 15560, - "▁rein": 15561, - "▁metadata": 15562, - "umble": 15563, - "arbeit": 15564, - "hner": 15565, - "cient": 15566, - "▁norte": 15567, - "▁она": 15568, - "▁scored": 15569, - "▁ray": 15570, - "▁февра": 15571, - "▁protagon": 15572, - "▁Sac": 15573, - "▁commonly": 15574, - "LinearLayout": 15575, - "▁applic": 15576, - "▁мая": 15577, - "За": 15578, - "▁accessible": 15579, - "iewer": 15580, - "flag": 15581, - "▁Rück": 15582, - "äu": 15583, - "▁erano": 15584, - "▁authentic": 15585, - "▁Ry": 15586, - "▁неско": 15587, - "▁embargo": 15588, - "▁dry": 15589, - "▁reasonable": 15590, - "▁Module": 15591, - "▁acceler": 15592, - "▁interview": 15593, - "▁Creek": 15594, - "▁alpha": 15595, - "serie": 15596, - "They": 15597, - "ючи": 15598, - "▁Hof": 15599, - "▁CR": 15600, - "modal": 15601, - "▁sequences": 15602, - "closed": 15603, - ")}$": 15604, - "▁Чер": 15605, - "▁ORDER": 15606, - "Rightarrow": 15607, - "hausen": 15608, - "}}_": 15609, - "▁també": 15610, - "▁magnetic": 15611, - "▁McC": 15612, - "▁winning": 15613, - "underline": 15614, - "▁Billboard": 15615, - "naio": 15616, - "▁liqu": 15617, - "displaystyle": 15618, - "timeout": 15619, - "▁considerable": 15620, - "▁eben": 15621, - "ifferent": 15622, - "anu": 15623, - "▁Сов": 15624, - "[(": 15625, - "▁:-)": 15626, - "leitung": 15627, - "formed": 15628, - "▁Manager": 15629, - "▁onclick": 15630, - "TY": 15631, - "тах": 15632, - "CV": 15633, - "runtime": 15634, - "poque": 15635, - "▁Ло": 15636, - "Temp": 15637, - "loaded": 15638, - "▁!==": 15639, - "▁singer": 15640, - "far": 15641, - "▁Comple": 15642, - "▁Österreich": 15643, - "Policy": 15644, - "▁worker": 15645, - "Wrapper": 15646, - "obi": 15647, - "▁discussed": 15648, - "▁buy": 15649, - "▁января": 15650, - "▁Din": 15651, - "▁ged": 15652, - "ској": 15653, - "Europe": 15654, - "▁tall": 15655, - "hos": 15656, - "лаго": 15657, - "▁Block": 15658, - "▁identified": 15659, - "ListView": 15660, - "▁attempting": 15661, - "▁typical": 15662, - "psum": 15663, - "oster": 15664, - "▁журна": 15665, - "Pe": 15666, - "merce": 15667, - "▁unexpected": 15668, - "hui": 15669, - "letter": 15670, - "▁nuevo": 15671, - "▁або": 15672, - "▁VALUES": 15673, - "▁Iz": 15674, - "Flags": 15675, - "▁TRUE": 15676, - "ización": 15677, - "▁growing": 15678, - "estre": 15679, - "▁poly": 15680, - "▁Stone": 15681, - "▁VIII": 15682, - "▁localhost": 15683, - "ählt": 15684, - "▁embedded": 15685, - "jdbc": 15686, - "▁convention": 15687, - "▁scala": 15688, - "сок": 15689, - "▁analog": 15690, - "▁\"+": 15691, - "цю": 15692, - "occ": 15693, - "▁litt": 15694, - "PN": 15695, - "▁актив": 15696, - "attributes": 15697, - "▁Ferd": 15698, - "▁azure": 15699, - "ști": 15700, - "ños": 15701, - "ping": 15702, - "▁teacher": 15703, - "}&": 15704, - "ipe": 15705, - "▁Nob": 15706, - "▁има": 15707, - "Bind": 15708, - "▁magic": 15709, - "▁Transport": 15710, - "ixel": 15711, - "▁computed": 15712, - "agna": 15713, - "erst": 15714, - "HA": 15715, - "Wait": 15716, - "▁authors": 15717, - "▁;)": 15718, - "clam": 15719, - "▁Pennsylvan": 15720, - "▁drug": 15721, - "▁vain": 15722, - "▁employed": 15723, - "▁individuals": 15724, - "▁ange": 15725, - "utat": 15726, - "▁$-": 15727, - "correct": 15728, - "▁experiments": 15729, - "Argument": 15730, - "▁IB": 15731, - "▁père": 15732, - "▁Brian": 15733, - "berger": 15734, - "Mac": 15735, - "iast": 15736, - "Perm": 15737, - "Cast": 15738, - "▁{};": 15739, - "▁Student": 15740, - "▁statt": 15741, - "algebra": 15742, - "▁equals": 15743, - "▁projet": 15744, - "▁président": 15745, - "ActivityThread": 15746, - "▁einz": 15747, - "enia": 15748, - "rez": 15749, - "essional": 15750, - "▁августа": 15751, - "override": 15752, - "news": 15753, - "▁planet": 15754, - "nn": 15755, - "▁Wis": 15756, - "твер": 15757, - "▁Valid": 15758, - "▁Gef": 15759, - "град": 15760, - "▁eig": 15761, - "antom": 15762, - "▁Meister": 15763, - "flags": 15764, - "fficiale": 15765, - "шая": 15766, - "-,": 15767, - "ationen": 15768, - "mouse": 15769, - "standard": 15770, - "Single": 15771, - "▁bol": 15772, - "isis": 15773, - "▁fruit": 15774, - "course": 15775, - "itants": 15776, - "▁étaient": 15777, - "TextField": 15778, - "▁фон": 15779, - "▁aircraft": 15780, - "▁ISSN": 15781, - "▁western": 15782, - "▁representing": 15783, - "Esp": 15784, - "▁Else": 15785, - "▁sizes": 15786, - "▁satisfied": 15787, - "otos": 15788, - "UD": 15789, - "Final": 15790, - "ój": 15791, - "ève": 15792, - "▁Roy": 15793, - "ffen": 15794, - "▁salt": 15795, - "▁Label": 15796, - "Sk": 15797, - "▁кре": 15798, - "▁Литература": 15799, - "▁см": 15800, - "Attributes": 15801, - "aye": 15802, - "ськ": 15803, - "▁высо": 15804, - "-)": 15805, - "oses": 15806, - "calcul": 15807, - "▁Cannot": 15808, - "Generic": 15809, - "emo": 15810, - "▁Autor": 15811, - "лён": 15812, - "лага": 15813, - "vote": 15814, - "licates": 15815, - "rus": 15816, - "éli": 15817, - "opf": 15818, - "atique": 15819, - "scala": 15820, - "▁Ohio": 15821, - "▁Britann": 15822, - "▁bef": 15823, - "▁Евро": 15824, - "▁Career": 15825, - "isée": 15826, - "ót": 15827, - "bose": 15828, - "▁Бер": 15829, - "▁Controller": 15830, - "pole": 15831, - "▁allen": 15832, - "▁hack": 15833, - "▁extent": 15834, - "▁calci": 15835, - "Mer": 15836, - "▁summary": 15837, - "Mart": 15838, - "▁historical": 15839, - "imat": 15840, - "bud": 15841, - "▁FOR": 15842, - "export": 15843, - "edi": 15844, - "Mapping": 15845, - "▁Ay": 15846, - "▁Ruby": 15847, - "▁definitions": 15848, - "▁{$": 15849, - "▁yours": 15850, - "rias": 15851, - "Touch": 15852, - "▁Gaz": 15853, - "▁Autom": 15854, - "▁истори": 15855, - "▁delen": 15856, - "▁Kinder": 15857, - "}}%": 15858, - "▁performing": 15859, - "FR": 15860, - "▁Sig": 15861, - "▁Brad": 15862, - "bras": 15863, - "▁Jar": 15864, - "pkg": 15865, - "wr": 15866, - "▁Pays": 15867, - "NC": 15868, - "▁opposed": 15869, - "Try": 15870, - "▁везе": 15871, - "▁Bog": 15872, - "▁writes": 15873, - "▁stories": 15874, - "▁mater": 15875, - "▁stagione": 15876, - "▁sty": 15877, - "▁compatible": 15878, - "heast": 15879, - "▁Guy": 15880, - "egründ": 15881, - "▁identifier": 15882, - "▁heads": 15883, - "пози": 15884, - "▁stup": 15885, - "▁tf": 15886, - "▁још": 15887, - "▁Hugh": 15888, - "▁cards": 15889, - "ovy": 15890, - "▁Toast": 15891, - "allas": 15892, - "▁públic": 15893, - "▁assumes": 15894, - "▁чемпиона": 15895, - "ycler": 15896, - "▁Junior": 15897, - "▁Fich": 15898, - "▁estimated": 15899, - "zerw": 15900, - "dialog": 15901, - "шин": 15902, - "shell": 15903, - "▁них": 15904, - "▁pitch": 15905, - "дол": 15906, - "outube": 15907, - "▁Santi": 15908, - "OnClickListener": 15909, - "▁Magyar": 15910, - "▁vue": 15911, - "ião": 15912, - "▁`#": 15913, - "collect": 15914, - "▁Rou": 15915, - "analysis": 15916, - "istrzost": 15917, - "▁Digital": 15918, - "▁crist": 15919, - "riere": 15920, - "▁campo": 15921, - "Us": 15922, - "▁circa": 15923, - "▁Component": 15924, - "▁NSString": 15925, - "pd": 15926, - "▁prince": 15927, - "▁invoke": 15928, - "▁Marine": 15929, - "Allow": 15930, - "estic": 15931, - "ристи": 15932, - "bone": 15933, - "туры": 15934, - "▁passion": 15935, - "áció": 15936, - "▁orn": 15937, - "вед": 15938, - "▁invari": 15939, - "▁ні": 15940, - "Remove": 15941, - "encies": 15942, - "ilib": 15943, - "▁Director": 15944, - "\"\"": 15945, - "▁Conse": 15946, - "googleapis": 15947, - "ók": 15948, - "▁Укра": 15949, - "▁Having": 15950, - "Domain": 15951, - "ierz": 15952, - "нологи": 15953, - "Cho": 15954, - "undefined": 15955, - "alloc": 15956, - "▁pied": 15957, - "▁fraction": 15958, - "bia": 15959, - "▁поло": 15960, - "ugno": 15961, - "minister": 15962, - "▁principale": 15963, - "▁refused": 15964, - "browser": 15965, - "*,": 15966, - "▁Hospital": 15967, - "▁universal": 15968, - "▁Ernst": 15969, - "who": 15970, - "▁Gard": 15971, - "'_": 15972, - "conde": 15973, - "▁[{": 15974, - "sob": 15975, - "▁Crit": 15976, - "▁декабря": 15977, - "▁punto": 15978, - "▁eingesetzt": 15979, - "▁tör": 15980, - "▁Ni": 15981, - "▁worry": 15982, - "▁legend": 15983, - "▁були": 15984, - "▁komm": 15985, - "rijk": 15986, - "effect": 15987, - "Ori": 15988, - "RES": 15989, - "▁Peters": 15990, - "▁Baron": 15991, - "▁Got": 15992, - "▁honest": 15993, - "äre": 15994, - "ász": 15995, - "▁noble": 15996, - "▁conclusion": 15997, - "▁formatting": 15998, - "▁otto": 15999, - "▁deleg": 16000, - "мб": 16001, - "ptop": 16002, - "▁sends": 16003, - "urname": 16004, - "▁festival": 16005, - ",‎": 16006, - "рус": 16007, - "▁doch": 16008, - "subject": 16009, - "▁careful": 16010, - "quent": 16011, - "▁Load": 16012, - "temperaturen": 16013, - "▁rue": 16014, - "Memory": 16015, - "ța": 16016, - "iona": 16017, - "▁dentro": 16018, - "▁begann": 16019, - "▁Aqu": 16020, - "▁scientific": 16021, - "kań": 16022, - "лок": 16023, - "elde": 16024, - "▁Those": 16025, - "quier": 16026, - "actér": 16027, - "▁Auflage": 16028, - ")'": 16029, - "▁gradient": 16030, - "integer": 16031, - "▁Import": 16032, - "SK": 16033, - "▁Status": 16034, - "▁explo": 16035, - "AE": 16036, - "Shell": 16037, - "▁Paulo": 16038, - ".»": 16039, - "}'": 16299, - "havior": 16300, - "lei": 16301, - "ulf": 16302, - "▁geometry": 16303, - "prev": 16304, - "empl": 16305, - "▁Lé": 16306, - "anson": 16307, - "▁Alice": 16308, - "prototype": 16309, - "READ": 16310, - "icular": 16311, - "▁бі": 16312, - "▁deutsche": 16313, - "▁Represent": 16314, - "sites": 16315, - "▁Mean": 16316, - "▁diss": 16317, - "▁Zur": 16318, - "▁през": 16319, - "PAR": 16320, - "▁'#": 16321, - "▁Dra": 16322, - "сон": 16323, - "▁steht": 16324, - "markt": 16325, - "▁ease": 16326, - "Drawing": 16327, - "=%": 16328, - "Stop": 16329, - "▁serving": 16330, - "▁także": 16331, - "▁DNS": 16332, - "▁literal": 16333, - "Die": 16334, - "▁вос": 16335, - "▁senior": 16336, - "acion": 16337, - "▁ubuntu": 16338, - "▁Frankfurt": 16339, - "▁Sunday": 16340, - "áb": 16341, - "▁journey": 16342, - "issa": 16343, - "berry": 16344, - "▁sep": 16345, - "▁ion": 16346, - "wert": 16347, - "ország": 16348, - "serve": 16349, - "▁Milano": 16350, - "▁века": 16351, - "рах": 16352, - "▁июля": 16353, - "▁manera": 16354, - "▁stations": 16355, - "▁adopted": 16356, - "▁anybody": 16357, - "VERSION": 16358, - "FE": 16359, - "dorf": 16360, - "...,": 16361, - "▁образова": 16362, - "Logger": 16363, - "фициаль": 16364, - "WRITE": 16365, - "▁ham": 16366, - "▁Future": 16367, - "oten": 16368, - "▁AG": 16369, - "▁trained": 16370, - "▁Nich": 16371, - "▁university": 16372, - "▁Olympics": 16373, - "▁doit": 16374, - "▁cultural": 16375, - "Conf": 16376, - "▁Conference": 16377, - "orno": 16378, - "▁MP": 16379, - "▁bou": 16380, - "cin": 16381, - "High": 16382, - "annte": 16383, - "▁displaying": 16384, - "▁chapter": 16385, - "▁Frauen": 16386, - "▁realized": 16387, - "▁attempted": 16388, - "▁preferred": 16389, - "Dat": 16390, - "▁trouve": 16391, - "▁intention": 16392, - "▁Notice": 16393, - "timestamp": 16394, - "*(": 16395, - "▁Ша": 16396, - "anas": 16397, - "cla": 16398, - "isz": 16399, - "tbl": 16400, - "Arr": 16401, - "▁inverse": 16402, - "▁terrible": 16403, - "▁occupied": 16404, - "JAX": 16405, - "<-": 16406, - "▁Philosoph": 16407, - "▁Corps": 16408, - "builder": 16409, - "▁begins": 16410, - "▁census": 16411, - ".’": 16412, - "▁proven": 16413, - "metric": 16414, - "▁increases": 16415, - "wich": 16416, - "▁ABC": 16417, - "projects": 16418, - "▁Thor": 16419, - "▁confidence": 16420, - "▁ufficiale": 16421, - "elm": 16422, - "▁garden": 16423, - "▁robust": 16424, - "▁così": 16425, - "iedz": 16426, - "▁Islam": 16427, - "▁Address": 16428, - "▁divide": 16429, - "▁Eu": 16430, - "catal": 16431, - "detail": 16432, - "ependant": 16433, - "fg": 16434, - "▁bew": 16435, - "▁fis": 16436, - "▁BO": 16437, - "▁wsp": 16438, - "▁pipeline": 16439, - "hd": 16440, - "▁Session": 16441, - "länd": 16442, - "iveau": 16443, - "estr": 16444, - "▁particle": 16445, - "▁laravel": 16446, - "pic": 16447, - "▁nau": 16448, - "▁fins": 16449, - "▁Vil": 16450, - "▁fus": 16451, - "▁quasi": 16452, - "operation": 16453, - "▁aller": 16454, - "▁analy": 16455, - "▁Он": 16456, - "▁Mes": 16457, - "▁опера": 16458, - "▁handled": 16459, - "▁deprec": 16460, - "tto": 16461, - "▁Ek": 16462, - "▁stran": 16463, - "▁anglais": 16464, - "jure": 16465, - "▁Silver": 16466, - "▁closely": 16467, - "enkins": 16468, - "anos": 16469, - "sted": 16470, - "▁сентября": 16471, - "brand": 16472, - "ньо": 16473, - "▁présent": 16474, - "rok": 16475, - "mount": 16476, - "▁Anthony": 16477, - "▁Furthermore": 16478, - "inha": 16479, - "▁архи": 16480, - "▁разли": 16481, - "▁октября": 16482, - "▁pint": 16483, - "ný": 16484, - "pts": 16485, - "▁italien": 16486, - "▁реги": 16487, - "лез": 16488, - "дина": 16489, - "atherine": 16490, - "Internal": 16491, - "Question": 16492, - "▁settlement": 16493, - "▁Все": 16494, - "▁folders": 16495, - "дри": 16496, - "▁valor": 16497, - "▁Miller": 16498, - "▁Assert": 16499, - "▁patient": 16500, - "▁Nieder": 16501, - "▁EP": 16502, - "▁Agr": 16503, - "▁onde": 16504, - "▁scop": 16505, - "sequence": 16506, - "▁PL": 16507, - "▁seek": 16508, - "javase": 16509, - "▁Vector": 16510, - "▁ná": 16511, - "▁categoría": 16512, - "clone": 16513, - "NR": 16514, - "available": 16515, - "▁Besch": 16516, - "▁eclipse": 16517, - "wicklung": 16518, - "deploy": 16519, - "enie": 16520, - "▁\")": 16521, - "äst": 16522, - "▁sync": 16523, - "CODE": 16524, - "▁Че": 16525, - "▁floating": 16526, - "/`": 16527, - "▁retired": 16528, - "deb": 16529, - "▁particul": 16530, - "▁collected": 16531, - "▁downloaded": 16532, - "nice": 16533, - "▁Buffer": 16534, - "▁Account": 16535, - "▁maggio": 16536, - "▁реда": 16537, - "▁sales": 16538, - "▁statunitense": 16539, - "▁Ki": 16540, - "▁Ferr": 16541, - "Lock": 16542, - "▁Isabel": 16543, - "clar": 16544, - "▁pov": 16545, - "atra": 16546, - "▁Frau": 16547, - "▁sorting": 16548, - "▁phrase": 16549, - "▁апреля": 16550, - "▁деятель": 16551, - "▁André": 16552, - "definition": 16553, - "writing": 16554, - "éré": 16555, - "щу": 16556, - "▁Ord": 16557, - "▁rum": 16558, - "▁Turk": 16559, - "▁Ivan": 16560, - "theless": 16561, - "▁ги": 16562, - "▁sake": 16563, - "▁Based": 16564, - "deck": 16565, - "orus": 16566, - "▁tutti": 16567, - "▁blan": 16568, - "▁Пу": 16569, - "Detail": 16570, - "▁Но": 16571, - "▁Sky": 16572, - "▁près": 16573, - "мой": 16574, - "coln": 16575, - "ческой": 16576, - "eti": 16577, - "▁arrow": 16578, - "▁Cha": 16579, - "chmark": 16580, - "œur": 16581, - "fab": 16582, - "куль": 16583, - "GridView": 16584, - "▁Background": 16585, - "sn": 16586, - "▁seguito": 16587, - "▁nic": 16588, - "cou": 16589, - "тів": 16590, - "▁bzw": 16591, - "addEventListener": 16592, - "sync": 16593, - "azzo": 16594, - "abstract": 16595, - "assets": 16596, - "▁Dru": 16597, - "зд": 16598, - "ordnet": 16599, - "▁bigger": 16600, - "▁initialized": 16601, - "каз": 16602, - "ogene": 16603, - "viously": 16604, - "▁guid": 16605, - "scheidung": 16606, - "▁Zent": 16607, - "▁frames": 16608, - "rieben": 16609, - "▁issued": 16610, - "▁dow": 16611, - "▁describes": 16612, - "ilst": 16613, - "▁criteria": 16614, - "▁gentleman": 16615, - "Basic": 16616, - "nez": 16617, - "Dev": 16618, - "Move": 16619, - "▁estaba": 16620, - "▁settembre": 16621, - "circle": 16622, - "▁fais": 16623, - "▁myst": 16624, - "▁archiv": 16625, - "dynamic": 16626, - "jà": 16627, - "itas": 16628, - "▁який": 16629, - "▁dor": 16630, - "▁Amazon": 16631, - "▁neces": 16632, - "▁Marcel": 16633, - "▁ella": 16634, - "рок": 16635, - "▁Pennsylvania": 16636, - "cular": 16637, - "Pack": 16638, - "itage": 16639, - "▁Burn": 16640, - "▁RO": 16641, - "▁они": 16642, - "~$": 16643, - "TeX": 16644, - "assign": 16645, - "▁beat": 16646, - "idense": 16647, - "acent": 16648, - "Alert": 16649, - "▁strateg": 16650, - "▁månaden": 16651, - "LOC": 16652, - "▁catalog": 16653, - "printStackTrace": 16654, - "()).": 16655, - "usted": 16656, - "▁Framework": 16657, - "ECK": 16658, - "▁até": 16659, - "Framework": 16660, - "▁attacks": 16661, - "▁Bert": 16662, - "▁тран": 16663, - ":%": 16664, - "arsi": 16665, - "notation": 16666, - "▁logical": 16667, - "weet": 16668, - "▁visited": 16669, - "bru": 16670, - "▁surprise": 16671, - "^^": 16672, - "inale": 16673, - "remote": 16674, - "'},": 16675, - "Syntax": 16676, - "iane": 16677, - "onnen": 16678, - "▁breaking": 16679, - "parser": 16680, - "apk": 16681, - "▁Miguel": 16682, - "▁§": 16683, - "▁acting": 16684, - "▁gebru": 16685, - "AtIndex": 16686, - "ються": 16687, - "▁offers": 16688, - "▁prac": 16689, - "▁grant": 16690, - "ternoon": 16691, - "▁acquired": 16692, - "▁Ny": 16693, - "▁comma": 16694, - "ník": 16695, - "▁Step": 16696, - "inners": 16697, - "▁SA": 16698, - "▁wat": 16699, - "days": 16700, - "▁rectangle": 16701, - "dar": 16702, - "▁trac": 16703, - "▁Indones": 16704, - "▁feedback": 16705, - "▁breaks": 16706, - "partition": 16707, - "icans": 16708, - "▁Notices": 16709, - "▁improved": 16710, - "phan": 16711, - "▁differential": 16712, - "scripts": 16713, - "▁XIII": 16714, - "▁Labor": 16715, - "▁precision": 16716, - "▁seed": 16717, - "bundle": 16718, - "idents": 16719, - "hre": 16720, - "▁Douglas": 16721, - "uld": 16722, - "▁secondary": 16723, - "▁brig": 16724, - "▁confirmed": 16725, - "▁claims": 16726, - "Role": 16727, - "▁Jewish": 16728, - "▁před": 16729, - "▁hotel": 16730, - "▁compte": 16731, - "▁recursive": 16732, - "](#)": 16733, - "▁rotate": 16734, - "▁chrome": 16735, - "inea": 16736, - "%;\r": 16737, - "▁Environment": 16738, - "platz": 16739, - "▁Single": 16740, - "▁sevent": 16741, - "▁posting": 16742, - "▁dealing": 16743, - "parameters": 16744, - "граф": 16745, - "Authentication": 16746, - "touch": 16747, - "Az": 16748, - "▁gray": 16749, - "encing": 16750, - "boldmath": 16751, - "▁сайте": 16752, - "▁Za": 16753, - "anje": 16754, - "▁polar": 16755, - "▁ули": 16756, - "kil": 16757, - "▁hover": 16758, - "▁REST": 16759, - "▁Come": 16760, - "jb": 16761, - "▁Georgia": 16762, - "▁Estado": 16763, - "OutputStream": 16764, - "ћи": 16765, - "▁dump": 16766, - "▁Age": 16767, - "▁swo": 16768, - "mobile": 16769, - "occup": 16770, - "шего": 16771, - "▁constitution": 16772, - "good": 16773, - "aku": 16774, - "▁анг": 16775, - "ieck": 16776, - "▁Psych": 16777, - "▁roots": 16778, - "▁vest": 16779, - "▁годах": 16780, - "▁República": 16781, - "▁pian": 16782, - "igration": 16783, - "▁préc": 16784, - "▁generates": 16785, - "LY": 16786, - "(`": 16787, - "▁=~": 16788, - "шения": 16789, - "▁Rah": 16790, - "▁connecting": 16791, - "ží": 16792, - "▁fő": 16793, - "▁appel": 16794, - "▁Railway": 16795, - "гли": 16796, - "▁développ": 16797, - "▁apo": 16798, - "fran": 16799, - "▁immediate": 16800, - "вого": 16801, - "Runner": 16802, - "äg": 16803, - "Something": 16804, - "▁généra": 16805, - "EventArgs": 16806, - "inction": 16807, - "gly": 16808, - "▁Due": 16809, - "▁prost": 16810, - "▁referring": 16811, - "▁jog": 16812, - "▁executable": 16813, - "▁Dream": 16814, - "acs": 16815, - "▁Cole": 16816, - "ampf": 16817, - "▁Bis": 16818, - "▁июня": 16819, - "lieder": 16820, - "тек": 16821, - "▁vb": 16822, - "▁mom": 16823, - "▁:(": 16824, - "▁dernier": 16825, - "'=>": 16826, - "▁этого": 16827, - "▁neue": 16828, - "▁Ча": 16829, - "▁weitere": 16830, - "▁alleg": 16831, - "▁reality": 16832, - "▁judge": 16833, - "▁Balt": 16834, - "▁thin": 16835, - "▁Ged": 16836, - "ieval": 16837, - "mx": 16838, - "ціональ": 16839, - "▁выпу": 16840, - "▁IX": 16841, - "▁blind": 16842, - "▁Motor": 16843, - "▁ша": 16844, - "▁approximation": 16845, - "dam": 16846, - "▁fog": 16847, - "кор": 16848, - "▁Writ": 16849, - "▁ling": 16850, - "▁писа": 16851, - "▁Mars": 16852, - "otti": 16853, - "Enum": 16854, - "▁Trib": 16855, - "▁merc": 16856, - "zung": 16857, - "vanced": 16858, - "cfg": 16859, - "нах": 16860, - "schen": 16861, - "\"].": 16862, - "bek": 16863, - "▁ster": 16864, - "jp": 16865, - "▁Rap": 16866, - "▁recording": 16867, - "▁peint": 16868, - "▁lets": 16869, - "änge": 16870, - ">\";": 16871, - "▁місце": 16872, - "▁caval": 16873, - "▁CSV": 16874, - "▁entstand": 16875, - "▁helper": 16876, - "endet": 16877, - "▁Gram": 16878, - "▁Diego": 16879, - "▁Bishop": 16880, - "TAG": 16881, - "▁ecc": 16882, - "▁Een": 16883, - "▁AV": 16884, - "City": 16885, - "▁Guide": 16886, - "hind": 16887, - "rical": 16888, - "▁Основ": 16889, - "Bus": 16890, - "▁zunächst": 16891, - "▁tick": 16892, - "▁Colonel": 16893, - "Thanks": 16894, - "▁ferm": 16895, - "▁granted": 16896, - "▁threshold": 16897, - "omorphic": 16898, - "▁Hun": 16899, - "enis": 16900, - "▁прав": 16901, - "▁які": 16902, - "PG": 16903, - "▁ws": 16904, - "▁technical": 16905, - "estro": 16906, - "klär": 16907, - "vars": 16908, - "ocrat": 16909, - "▁општи": 16910, - "onso": 16911, - "iba": 16912, - "▁Save": 16913, - "▁programa": 16914, - "▁въ": 16915, - "▁invån": 16916, - ">()": 16917, - "▁mejor": 16918, - "▁слова": 16919, - "▁replacement": 16920, - "▁impr": 16921, - "▁Francesco": 16922, - "▁Hotel": 16923, - "▁UPDATE": 16924, - "▁музы": 16925, - "ugs": 16926, - "vard": 16927, - "▁faz": 16928, - "inton": 16929, - "▁arts": 16930, - "▁Ky": 16931, - "▁Ils": 16932, - "▁sera": 16933, - "▁Volume": 16934, - "▁giugno": 16935, - "▁asym": 16936, - "▁Pir": 16937, - "▁NAS": 16938, - "▁Tam": 16939, - "ěl": 16940, - "Sequ": 16941, - "kmal": 16942, - "▁Eins": 16943, - "▁компа": 16944, - "obe": 16945, - "oor": 16946, - "▁heap": 16947, - "ctl": 16948, - "▁separately": 16949, - "reader": 16950, - "▁significantly": 16951, - "▁Lag": 16952, - "notes": 16953, - "▁sele": 16954, - "▁dedicated": 16955, - "▁Host": 16956, - "choice": 16957, - "wing": 16958, - "▁Titel": 16959, - "▁befindet": 16960, - "large": 16961, - "▁conten": 16962, - "JavaScript": 16963, - "▁deser": 16964, - "▁Gordon": 16965, - "спе": 16966, - "▁patri": 16967, - "▁Random": 16968, - "▁Returns": 16969, - "ым": 16970, - "рома": 16971, - "▁Studies": 16972, - "Sl": 16973, - "▁frü": 16974, - "TEXT": 16975, - "inate": 16976, - "▁Tol": 16977, - "▁everywhere": 16978, - "arta": 16979, - "▁orbit": 16980, - "▁Aires": 16981, - "▁Iss": 16982, - "▁też": 16983, - "▁diverse": 16984, - "▁numeric": 16985, - "maz": 16986, - "▁mise": 16987, - "▁battery": 16988, - "▁Akadem": 16989, - "нение": 16990, - "▁simultane": 16991, - "▁Dead": 16992, - "▁clust": 16993, - "▁otro": 16994, - "▁cerca": 16995, - "()`,": 16996, - "roz": 16997, - "ăt": 16998, - "▁MO": 16999, - "riften": 17000, - "important": 17001, - "▁jeho": 17002, - "▁findViewById": 17003, - "▁consequence": 17004, - "▁measured": 17005, - "ishes": 17006, - "▁sze": 17007, - "iendo": 17008, - "▁Wahl": 17009, - "strip": 17010, - "ARD": 17011, - "▁opacity": 17012, - "WORD": 17013, - "▁Ві": 17014, - "▁Location": 17015, - "rai": 17016, - "пен": 17017, - "▁rif": 17018, - "aussian": 17019, - "FileName": 17020, - "▁disco": 17021, - "ilen": 17022, - "▁vagy": 17023, - "licity": 17024, - "Border": 17025, - "▁Track": 17026, - "бом": 17027, - "fact": 17028, - "oka": 17029, - "▁gior": 17030, - "▁XVII": 17031, - "▁där": 17032, - "Site": 17033, - "ało": 17034, - "ská": 17035, - "▁pixels": 17036, - "vity": 17037, - "jQuery": 17038, - "▁sculpt": 17039, - "▁cargo": 17040, - "▁directive": 17041, - "▁wal": 17042, - "▁conna": 17043, - "▁Through": 17044, - "▁этом": 17045, - "Static": 17046, - "omsnitt": 17047, - "▁rund": 17048, - "▁claimed": 17049, - "зня": 17050, - "sha": 17051, - "▁rag": 17052, - "crement": 17053, - "▁fünf": 17054, - "▁rival": 17055, - "rin": 17056, - "slash": 17057, - "▁thirty": 17058, - "sleep": 17059, - "ологи": 17060, - "SM": 17061, - "gate": 17062, - "izations": 17063, - "vik": 17064, - "▁bless": 17065, - "▁Illinois": 17066, - "▁TE": 17067, - "uting": 17068, - "▁solving": 17069, - "GER": 17070, - "▁XIV": 17071, - "▁Indians": 17072, - "express": 17073, - "▁Heil": 17074, - "▁mujer": 17075, - "▁invånare": 17076, - "']);": 17077, - "▁aur": 17078, - "boost": 17079, - "GO": 17080, - "▁nin": 17081, - "tok": 17082, - "god": 17083, - "oter": 17084, - ")$$": 17085, - "▁descend": 17086, - "рю": 17087, - "▁Language": 17088, - "▁diver": 17089, - "▁Assuming": 17090, - "▁frequent": 17091, - "чні": 17092, - "▁Biography": 17093, - ",[": 17094, - "urm": 17095, - "▁walked": 17096, - "▁federal": 17097, - "▁Michigan": 17098, - "▁facts": 17099, - "▁Integr": 17100, - "LES": 17101, - "▁Alan": 17102, - "▁coup": 17103, - "Ber": 17104, - "▁particles": 17105, - "ће": 17106, - "Inflater": 17107, - "+(": 17108, - "Bound": 17109, - "▁Sü": 17110, - "Audio": 17111, - "citet": 17112, - "yect": 17113, - "▁nr": 17114, - "xe": 17115, - "▁Brun": 17116, - "▁_,": 17117, - "avor": 17118, - "▁discipl": 17119, - "alm": 17120, - "▁ноября": 17121, - "▁SSL": 17122, - "▁Kaiser": 17123, - "▁recher": 17124, - "ygon": 17125, - "▁regardless": 17126, - "▁configur": 17127, - "▁unnecess": 17128, - "▁Clark": 17129, - "PHP": 17130, - "▁FALSE": 17131, - "▁pad": 17132, - "$}": 17133, - "▁valu": 17134, - "▁disease": 17135, - "▁maior": 17136, - "▁hommes": 17137, - "▁Edition": 17138, - "slant": 17139, - "▁ending": 17140, - "▁settled": 17141, - "urus": 17142, - "hed": 17143, - "Pattern": 17144, - "▁година": 17145, - "▁Philadel": 17146, - "tikzpicture": 17147, - "▁coal": 17148, - "▁sede": 17149, - "▁satisfies": 17150, - "▁trim": 17151, - "▁bat": 17152, - "▁américain": 17153, - "▁luglio": 17154, - "▁поча": 17155, - "ffff": 17156, - "▁Target": 17157, - "generate": 17158, - "▁Zie": 17159, - "ția": 17160, - "▁gard": 17161, - "▁workers": 17162, - "▁Job": 17163, - "▁urban": 17164, - "ahlen": 17165, - "▁Building": 17166, - "▁neu": 17167, - "▁chron": 17168, - "▁Earl": 17169, - "gro": 17170, - "USE": 17171, - "▁XII": 17172, - "▁wealth": 17173, - "inae": 17174, - "▁Бра": 17175, - "▁libert": 17176, - "iros": 17177, - ":$": 17178, - "lee": 17179, - "ieves": 17180, - "▁Justice": 17181, - "▁oil": 17182, - "▁Athlet": 17183, - "▁clo": 17184, - "Scale": 17185, - "▁lips": 17186, - "▁april": 17187, - "▁impression": 17188, - "▁perce": 17189, - "▁участи": 17190, - "vil": 17191, - "éch": 17192, - "▁equality": 17193, - "▁мет": 17194, - "▁annotation": 17195, - "ernal": 17196, - "▁Mach": 17197, - "▁intitul": 17198, - "problem": 17199, - "ющих": 17200, - "oplus": 17201, - "▁thousands": 17202, - "▁calculations": 17203, - "umps": 17204, - "▁triangle": 17205, - "phal": 17206, - "▁Dorf": 17207, - "▁dollars": 17208, - "▁denen": 17209, - "lès": 17210, - "olid": 17211, - "▁Results": 17212, - "▁Stadium": 17213, - "▁Desp": 17214, - "▁Eisen": 17215, - "imir": 17216, - "▁sotto": 17217, - "▁či": 17218, - "atable": 17219, - "orum": 17220, - "▁convergence": 17221, - "▁jeune": 17222, - "oking": 17223, - "▁живо": 17224, - "aining": 17225, - "pointer": 17226, - "culo": 17227, - "▁jsou": 17228, - "▁grab": 17229, - "akte": 17230, - "▁hoping": 17231, - "▁Mak": 17232, - "▁sag": 17233, - "origine": 17234, - "▁послед": 17235, - "▁Veg": 17236, - "▁theoret": 17237, - "▁Tru": 17238, - "nement": 17239, - "▁faces": 17240, - "Hor": 17241, - "Join": 17242, - "arel": 17243, - "▁около": 17244, - "However": 17245, - "▁catal": 17246, - "bourg": 17247, - "▁mysqli": 17248, - "acions": 17249, - "▁Initial": 17250, - "▁rain": 17251, - "iture": 17252, - "▁Sciences": 17253, - "▁Kreis": 17254, - ".__": 17255, - "▁cinq": 17256, - "▁Auß": 17257, - "ithmet": 17258, - "itors": 17259, - "amazon": 17260, - "▁gap": 17261, - "▁ignored": 17262, - "adv": 17263, - "кої": 17264, - "▁часть": 17265, - "▁corpor": 17266, - "цер": 17267, - "▁crime": 17268, - "uous": 17269, - "▁налази": 17270, - "DataFrame": 17271, - "води": 17272, - "Ign": 17273, - "▁Lincoln": 17274, - "▁menos": 17275, - "▁Luft": 17276, - "▁Lind": 17277, - "▁Cook": 17278, - "▁materials": 17279, - "apped": 17280, - "ignore": 17281, - "▁откры": 17282, - "fried": 17283, - "▁gouvernement": 17284, - "▁fired": 17285, - "▁screenshot": 17286, - "сен": 17287, - "▁[(": 17288, - "▁организа": 17289, - "Graphics": 17290, - "▁проти": 17291, - "▁phen": 17292, - "craft": 17293, - "▁brain": 17294, - "▁Como": 17295, - "▁Everything": 17296, - "anes": 17297, - "IGN": 17298, - "▁nederbörd": 17299, - "▁Forest": 17300, - "zahl": 17301, - "▁Among": 17302, - "Qt": 17303, - "▁togg": 17304, - "▁variant": 17305, - "▁hill": 17306, - "писи": 17307, - "colon": 17308, - "▁dicembre": 17309, - "гор": 17310, - "▁Wind": 17311, - "ünstler": 17312, - "▁=\\": 17313, - "saved": 17314, - "▁nej": 17315, - "unte": 17316, - "utto": 17317, - "▁recens": 17318, - "▁sick": 17319, - "▁desen": 17320, - "UST": 17321, - "▁worst": 17322, - "▁Angel": 17323, - "odox": 17324, - "▁Province": 17325, - "▁Maz": 17326, - "▁agreement": 17327, - "▁Bass": 17328, - "▁segunda": 17329, - "onces": 17330, - "▁Linki": 17331, - "▁CL": 17332, - "▁já": 17333, - "itement": 17334, - "▁área": 17335, - "▁scalar": 17336, - "▁Рес": 17337, - "awt": 17338, - "sieme": 17339, - "▁juni": 17340, - "▁худож": 17341, - "ikus": 17342, - "▁lid": 17343, - "ppel": 17344, - "avi": 17345, - "▁balance": 17346, - "ipping": 17347, - "cussion": 17348, - "ческих": 17349, - "(\".": 17350, - "Also": 17351, - "▁whis": 17352, - "HOME": 17353, - "▁brown": 17354, - "▁día": 17355, - "▁può": 17356, - "plotlib": 17357, - "▁Jahrhunderts": 17358, - "DK": 17359, - "▁anchor": 17360, - "...]": 17361, - "▁Austria": 17362, - "▁marca": 17363, - "▁gez": 17364, - "iously": 17365, - "▁lazy": 17366, - "xa": 17367, - "▁Channel": 17368, - "▁neuen": 17369, - "das": 17370, - "▁searched": 17371, - "▁staat": 17372, - "▁Так": 17373, - "▁Josef": 17374, - "▁Sher": 17375, - "pois": 17376, - "▁enem": 17377, - "▁accessing": 17378, - "▁неко": 17379, - "▁furono": 17380, - "▁pseudo": 17381, - "?>": 17382, - "▁estadoun": 17383, - "▁Види": 17384, - "▁motiv": 17385, - "▁recall": 17386, - "isson": 17387, - "ób": 17388, - ")--": 17389, - "▁Erz": 17390, - "▁савез": 17391, - "Direct": 17392, - "соб": 17393, - "▁sho": 17394, - "völker": 17395, - "Ap": 17396, - "gens": 17397, - "ништво": 17398, - "▁Amsterdam": 17399, - "usk": 17400, - "пло": 17401, - "▁simulation": 17402, - "▁BC": 17403, - "▁Woj": 17404, - "autom": 17405, - "Alex": 17406, - "▁economic": 17407, - "гом": 17408, - "ikai": 17409, - "▁altre": 17410, - "▁'-": 17411, - "▁Weg": 17412, - "NotFound": 17413, - "йской": 17414, - "▁converting": 17415, - "phabet": 17416, - "atrice": 17417, - "bourne": 17418, - "alom": 17419, - "▁comparing": 17420, - "▁Zo": 17421, - "▁fla": 17422, - "вая": 17423, - "▁entra": 17424, - "▁charset": 17425, - "developers": 17426, - "ística": 17427, - "}>": 17428, - "▁Jazz": 17429, - "▁Howard": 17430, - "шта": 17431, - "▁clone": 17432, - "door": 17433, - "▁Pin": 17434, - "***": 17435, - "▁silent": 17436, - "ecycle": 17437, - "isce": 17438, - "▁mud": 17439, - "▁Display": 17440, - "▁lip": 17441, - "▁использова": 17442, - "▁characteristic": 17443, - "▁sb": 17444, - "firebase": 17445, - "▁Bew": 17446, - "Calendar": 17447, - "▁uso": 17448, - "èse": 17449, - "▁Rat": 17450, - "▁esper": 17451, - "▁throwing": 17452, - "▁rodz": 17453, - "▁yards": 17454, - "▁grass": 17455, - "▁marker": 17456, - "▁Kos": 17457, - "Theta": 17458, - "▁organis": 17459, - "kernel": 17460, - "▁personas": 17461, - "keep": 17462, - "▁exclaimed": 17463, - "oslav": 17464, - "▁Entertain": 17465, - "нер": 17466, - "▁inwon": 17467, - "▁Rand": 17468, - "reduce": 17469, - "fac": 17470, - "expression": 17471, - "yj": 17472, - "▁differenti": 17473, - "aglia": 17474, - "▁templates": 17475, - "▁mű": 17476, - "▁prv": 17477, - "▁mois": 17478, - "▁gewann": 17479, - "▁була": 17480, - "bibli": 17481, - "demo": 17482, - "▁Anderson": 17483, - "▁ред": 17484, - "▁porque": 17485, - "▁Pologne": 17486, - "▁trip": 17487, - "▁exemple": 17488, - "▁Internacional": 17489, - "▁као": 17490, - "Insert": 17491, - "general": 17492, - "SESSION": 17493, - "berga": 17494, - "hält": 17495, - "unas": 17496, - "мира": 17497, - "▁yields": 17498, - "mapsto": 17499, - "spot": 17500, - "▁+\\": 17501, - "лла": 17502, - "▁precisely": 17503, - "▁член": 17504, - "shadow": 17505, - "Are": 17506, - "unal": 17507, - "▁dispar": 17508, - "▁título": 17509, - "nest": 17510, - "▁Low": 17511, - "▁prot": 17512, - "▁Costa": 17513, - "named": 17514, - "▁gained": 17515, - "lesia": 17516, - "▁administration": 17517, - "Import": 17518, - "branch": 17519, - "▁sympath": 17520, - "voj": 17521, - "▁EC": 17522, - "▁municipio": 17523, - "▁animated": 17524, - "▁directories": 17525, - "▁roof": 17526, - "ząd": 17527, - "imet": 17528, - "proto": 17529, - "bla": 17530, - ":]": 17531, - "have": 17532, - "atem": 17533, - "▁ns": 17534, - "▁sector": 17535, - "three": 17536, - "owane": 17537, - "wers": 17538, - "ових": 17539, - "rence": 17540, - "▁extr": 17541, - "igten": 17542, - "▁occident": 17543, - "ță": 17544, - "▁eat": 17545, - "▁hydro": 17546, - "ubernetes": 17547, - "[@": 17548, - "▁Moon": 17549, - "▁Sho": 17550, - "▁elsewhere": 17551, - "üller": 17552, - "Upload": 17553, - "ланд": 17554, - "▁För": 17555, - "wissenschaft": 17556, - "KS": 17557, - "▁physics": 17558, - "tz": 17559, - "▁серед": 17560, - "▁Arbeit": 17561, - "▁мест": 17562, - "▁Gebiet": 17563, - "▁insect": 17564, - "Ah": 17565, - "izado": 17566, - "▁temple": 17567, - "▁annual": 17568, - "stad": 17569, - "▁habitat": 17570, - "▁AB": 17571, - "wort": 17572, - "▁repos": 17573, - "▁Neu": 17574, - "▁$(\".": 17575, - "Vorlage": 17576, - "▁reprezent": 17577, - "estanden": 17578, - "Intern": 17579, - ".`": 17580, - "▁failing": 17581, - "▁Material": 17582, - "▁effectively": 17583, - "телем": 17584, - "▁гла": 17585, - "▁nahm": 17586, - "▁differently": 17587, - "extension": 17588, - "▁Verm": 17589, - "enabled": 17590, - "configure": 17591, - "nio": 17592, - "ciones": 17593, - "▁Beach": 17594, - "сона": 17595, - "▁copying": 17596, - "▁україн": 17597, - "▁призна": 17598, - "zh": 17599, - "Desktop": 17600, - "▁sost": 17601, - "▁subsequently": 17602, - "▁Lehr": 17603, - "▁ó": 17604, - "lär": 17605, - "odor": 17606, - "phon": 17607, - "nc": 17608, - "iterator": 17609, - "▁эти": 17610, - "▁europé": 17611, - "▁Toronto": 17612, - "ódigo": 17613, - "▁posto": 17614, - "ffe": 17615, - "▁crew": 17616, - "▁Schwar": 17617, - "Sa": 17618, - "square": 17619, - "▁beside": 17620, - "▁Мі": 17621, - "▁ath": 17622, - "▁advent": 17623, - "cji": 17624, - "written": 17625, - "▁russ": 17626, - "rost": 17627, - "HI": 17628, - "▁dice": 17629, - "cca": 17630, - "▁dép": 17631, - "ply": 17632, - "bigg": 17633, - "ział": 17634, - "ütt": 17635, - "▁одно": 17636, - "JECT": 17637, - "ському": 17638, - "nos": 17639, - "mock": 17640, - "Launch": 17641, - "same": 17642, - "▁jobs": 17643, - "▁widely": 17644, - "▁defines": 17645, - "▁Pse": 17646, - "▁neighbour": 17647, - "ющие": 17648, - "▁closer": 17649, - "▁располо": 17650, - "▁clubs": 17651, - "fly": 17652, - "шим": 17653, - "▁suffered": 17654, - "▁nar": 17655, - "▁lavor": 17656, - "Extension": 17657, - "itionally": 17658, - "▁grace": 17659, - "▁Campeonato": 17660, - "▁Christmas": 17661, - "middle": 17662, - "othek": 17663, - "elements": 17664, - "▁sondern": 17665, - "▁tarde": 17666, - "▁permanent": 17667, - "▁conclude": 17668, - "Seg": 17669, - "▁акаде": 17670, - "}\",": 17671, - "▁февраля": 17672, - "řed": 17673, - "▁IL": 17674, - "jud": 17675, - "▁USS": 17676, - "▁Nature": 17677, - "ifference": 17678, - "Serializer": 17679, - "▁twelve": 17680, - "tid": 17681, - "мия": 17682, - "ческого": 17683, - "▁calendar": 17684, - "concat": 17685, - "▁intersection": 17686, - "▁PA": 17687, - "azure": 17688, - "▁située": 17689, - "▁kinds": 17690, - "▁ausge": 17691, - "▁rural": 17692, - "Theme": 17693, - "▁tale": 17694, - "noindent": 17695, - "going": 17696, - "rx": 17697, - "agi": 17698, - "wrapper": 17699, - "▁Coast": 17700, - "mbH": 17701, - "▁перед": 17702, - "spre": 17703, - "▁}\\": 17704, - "▁LI": 17705, - "znam": 17706, - "itled": 17707, - "Sample": 17708, - "uliar": 17709, - "*\\": 17710, - "▁resistance": 17711, - "stock": 17712, - "ked": 17713, - "▁HE": 17714, - "▁possession": 17715, - "▁Ring": 17716, - "▁magyar": 17717, - "outs": 17718, - "▁Secretary": 17719, - "nde": 17720, - "▁Wald": 17721, - "-(": 17722, - "▁ISO": 17723, - "▁afternoon": 17724, - "ionen": 17725, - "▁stops": 17726, - "▁constants": 17727, - "guard": 17728, - "bow": 17729, - "▁ers": 17730, - "▁Firebase": 17731, - "▁Clear": 17732, - "▁Holy": 17733, - "Win": 17734, - "▁titles": 17735, - "▁трав": 17736, - "▁contrib": 17737, - "häng": 17738, - "▁photograph": 17739, - "▁Distribution": 17740, - "ifts": 17741, - "▁aunque": 17742, - "comb": 17743, - "ADD": 17744, - "▁publication": 17745, - "▁служ": 17746, - "▁кня": 17747, - "▁ayant": 17748, - "▁restore": 17749, - "▁belief": 17750, - "▁vég": 17751, - "▁extensions": 17752, - "▁decom": 17753, - "вший": 17754, - "WT": 17755, - "▁parti": 17756, - "▁gioc": 17757, - "▁мира": 17758, - "▁issu": 17759, - "pipe": 17760, - "▁props": 17761, - "▁willing": 17762, - "▁nest": 17763, - "aso": 17764, - "pot": 17765, - "▁handles": 17766, - "▁фо": 17767, - "▁moder": 17768, - "▁ebenfalls": 17769, - "▁fighting": 17770, - "umbn": 17771, - "▁transparent": 17772, - "▁Krist": 17773, - "▁homes": 17774, - "▁voyage": 17775, - "Failed": 17776, - "▁Bird": 17777, - "▁Heart": 17778, - "Counter": 17779, - "▁Scottish": 17780, - "ática": 17781, - "▁arbeit": 17782, - "^{-\\": 17783, - "▁Sor": 17784, - "▁engaged": 17785, - "▁aside": 17786, - "▁Fou": 17787, - "▁wiel": 17788, - "▁reconst": 17789, - "ousin": 17790, - "▁hosted": 17791, - "▁classe": 17792, - "▁contest": 17793, - "...\"": 17794, - "мом": 17795, - "▁bean": 17796, - "gem": 17797, - "▁consultato": 17798, - "▁bio": 17799, - "▁subjects": 17800, - "boBox": 17801, - "▁Schrift": 17802, - "▁dinner": 17803, - "ăr": 17804, - "▁równ": 17805, - "▁%%": 17806, - "bage": 17807, - "▁veröff": 17808, - "▁detected": 17809, - "ienn": 17810, - "rose": 17811, - "▁Ton": 17812, - "Complete": 17813, - "▁proto": 17814, - "ichts": 17815, - "STAT": 17816, - "Checked": 17817, - "▁inten": 17818, - "▁smile": 17819, - "▁strip": 17820, - "neut": 17821, - "');\r": 17822, - "four": 17823, - "▁todas": 17824, - "Controls": 17825, - "▁thorough": 17826, - "rup": 17827, - "▁држави": 17828, - "ită": 17829, - "Protocol": 17830, - "Ка": 17831, - "▁expanded": 17832, - "extra": 17833, - "oport": 17834, - "▁Станов": 17835, - "leases": 17836, - "▁notion": 17837, - "▁guest": 17838, - "▁Islands": 17839, - "icked": 17840, - "▁Dave": 17841, - "▁reflection": 17842, - "liv": 17843, - "ální": 17844, - "▁revealed": 17845, - "▁sog": 17846, - "▁Tax": 17847, - "▁periodo": 17848, - "▁Weltkrie": 17849, - "catalina": 17850, - "qué": 17851, - "▁Father": 17852, - "▁Bir": 17853, - "expect": 17854, - "▁regression": 17855, - "iné": 17856, - "▁dabei": 17857, - "perm": 17858, - "мене": 17859, - "▁Abd": 17860, - "▁CF": 17861, - "arks": 17862, - "resolve": 17863, - "wedge": 17864, - "▁initialization": 17865, - "▁Véase": 17866, - "▁приня": 17867, - "stmt": 17868, - "▁income": 17869, - "MY": 17870, - "▁odkazy": 17871, - "▁Siehe": 17872, - "▁bodies": 17873, - "▁soc": 17874, - "Random": 17875, - "▁senza": 17876, - "ablo": 17877, - "▁regarded": 17878, - "onCreate": 17879, - "▁Magazine": 17880, - "▁Raf": 17881, - "▁Buenos": 17882, - "ил": 17883, - ")));": 17884, - "capt": 17885, - "redirect": 17886, - "▁petit": 17887, - "▁farm": 17888, - "▁rôle": 17889, - "▁статьи": 17890, - "    ": 17891, - "subfigure": 17892, - "èces": 17893, - "ziel": 17894, - "▁окон": 17895, - "EE": 17896, - "mee": 17897, - "▁perten": 17898, - "▁représent": 17899, - "▁LA": 17900, - "?'": 17901, - "▁тру": 17902, - "▁rational": 17903, - "osof": 17904, - "▁kne": 17905, - "▁artists": 17906, - "Flow": 17907, - "▁Аль": 17908, - "izard": 17909, - "▁numero": 17910, - "actic": 17911, - "▁destruct": 17912, - "▁Пра": 17913, - "onsieur": 17914, - "qt": 17915, - "abestanden": 17916, - "ność": 17917, - "Connect": 17918, - "▁oracle": 17919, - "▁Stockholm": 17920, - "sizeof": 17921, - "▁gemäß": 17922, - "ACT": 17923, - "▁expert": 17924, - "utions": 17925, - "▁hacia": 17926, - "▁logger": 17927, - "▁fool": 17928, - "rypto": 17929, - "ær": 17930, - "▁cidade": 17931, - "▁составе": 17932, - "oker": 17933, - "▁Transfer": 17934, - "▁denied": 17935, - "Track": 17936, - "▁radi": 17937, - "zec": 17938, - "▁Historic": 17939, - "▁Einwohner": 17940, - "кою": 17941, - "▁хра": 17942, - "▁Category": 17943, - "▁Disney": 17944, - "▁swap": 17945, - "Begin": 17946, - "▁mientras": 17947, - "▁dance": 17948, - "▁tête": 17949, - "▁droit": 17950, - "erta": 17951, - "▁birds": 17952, - "▁convin": 17953, - "parator": 17954, - "дра": 17955, - "▁ES": 17956, - "▁Ressources": 17957, - "EGIN": 17958, - "ücke": 17959, - "▁Cruz": 17960, - "abling": 17961, - "▁\"@": 17962, - "▁metres": 17963, - "▁Beg": 17964, - "▁Gründ": 17965, - "▁Boh": 17966, - "▁mile": 17967, - "▁Technology": 17968, - "\"+": 17969, - "acco": 17970, - "▁ss": 17971, - "▁Fed": 17972, - "▁Hend": 17973, - "usch": 17974, - "itä": 17975, - "folk": 17976, - "▁absor": 17977, - "antal": 17978, - "odge": 17979, - "▁WHEN": 17980, - "▁Externí": 17981, - "▁Regiment": 17982, - "▁evaluation": 17983, - "▁Tai": 17984, - "▁vocals": 17985, - "▁experimental": 17986, - "embed": 17987, - "▁Minn": 17988, - "▁вме": 17989, - "prec": 17990, - "every": 17991, - "▁hoof": 17992, - "▁Fernando": 17993, - "▁Bibliographie": 17994, - "▁nag": 17995, - "amerikanischer": 17996, - "▁marks": 17997, - "▁UTC": 17998, - "▁uncertain": 17999, - "дия": 18000, - "olia": 18001, - "▁cup": 18002, - "▁fille": 18003, - "▁dok": 18004, - "useppe": 18005, - "esterd": 18006, - "▁Brand": 18007, - "▁Third": 18008, - "PP": 18009, - "nodes": 18010, - "▁Pad": 18011, - "▁loved": 18012, - "swing": 18013, - "▁surprised": 18014, - "ardi": 18015, - "▁GR": 18016, - "]\"": 18017, - "▁equally": 18018, - "ihe": 18019, - "care": 18020, - "писок": 18021, - "lijk": 18022, - "rinn": 18023, - "▁\\[\\": 18024, - "▁sons": 18025, - "▁tät": 18026, - "icamente": 18027, - "▁listing": 18028, - "iellement": 18029, - "▁nyelven": 18030, - "▁ds": 18031, - "▁agricult": 18032, - "▁Hermann": 18033, - "▁besides": 18034, - "progress": 18035, - "▁peculiar": 18036, - "focus": 18037, - "cn": 18038, - "-$": 18039, - "ственный": 18040, - "ourg": 18041, - "▁wyn": 18042, - "▁conducted": 18043, - "▁Становништво": 18044, - "connected": 18045, - "▁bott": 18046, - "▁смер": 18047, - "▁Poz": 18048, - "unct": 18049, - "conda": 18050, - "▁савезној": 18051, - "▁havet": 18052, - "ligt": 18053, - "orted": 18054, - "▁entering": 18055, - "multip": 18056, - "▁Temple": 18057, - "▁Plant": 18058, - "typeof": 18059, - "▁Vlad": 18060, - "▁qued": 18061, - "▁reste": 18062, - "▁май": 18063, - "▁Very": 18064, - "ambiguation": 18065, - "▁challeng": 18066, - "▁respective": 18067, - "▁тор": 18068, - "Ctrl": 18069, - "▁absence": 18070, - "aru": 18071, - "вое": 18072, - "▁först": 18073, - "▁sq": 18074, - "▁Emperor": 18075, - "▁Ign": 18076, - "▁това": 18077, - ":`": 18078, - "adoop": 18079, - "▁Madame": 18080, - "▁gruppo": 18081, - "stud": 18082, - "▁externas": 18083, - "▁Александр": 18084, - "▁dign": 18085, - "▁живе": 18086, - "Amount": 18087, - "▁correlate": 18088, - "▁Fant": 18089, - "▁rails": 18090, - "fp": 18091, - "министратив": 18092, - "▁bought": 18093, - "▁filters": 18094, - "▁ancora": 18095, - "▁partner": 18096, - "▁quand": 18097, - "symbol": 18098, - "ulating": 18099, - "▁zd": 18100, - "awn": 18101, - "▁Grant": 18102, - "because": 18103, - "rable": 18104, - "\\}": 18105, - "ísticas": 18106, - "▁уче": 18107, - "▁période": 18108, - "▁ske": 18109, - "▁Anyway": 18110, - "▁indexes": 18111, - "▁directions": 18112, - "▁RAM": 18113, - "chrome": 18114, - "▁apost": 18115, - "▁warnings": 18116, - "▁Airport": 18117, - "VI": 18118, - "abile": 18119, - "▁lord": 18120, - "provider": 18121, - "▁Ji": 18122, - "ostream": 18123, - "▁gemeente": 18124, - "tableView": 18125, - "Extra": 18126, - "cursor": 18127, - "eground": 18128, - "▁Moz": 18129, - "▁rib": 18130, - "▁morph": 18131, - "loads": 18132, - "elsk": 18133, - "▁MAX": 18134, - "▁Santiago": 18135, - "▁Him": 18136, - "codes": 18137, - "▁lanz": 18138, - "▁counts": 18139, - "rinningsområ": 18140, - "щё": 18141, - "▁spé": 18142, - "▁pierws": 18143, - "▁Sver": 18144, - "▁acknow": 18145, - "Boolean": 18146, - "▁фамили": 18147, - "▁Senate": 18148, - "шов": 18149, - "agers": 18150, - "▁Nueva": 18151, - "bil": 18152, - "kiem": 18153, - "▁Mey": 18154, - "wij": 18155, - "▁GmbH": 18156, - "validation": 18157, - "▁ensuite": 18158, - "inking": 18159, - "▁campion": 18160, - "▁financial": 18161, - "izon": 18162, - "Headers": 18163, - "▁deprecated": 18164, - "▁fonction": 18165, - "REG": 18166, - "▁volumes": 18167, - "▁Chi": 18168, - "▁encountered": 18169, - "lak": 18170, - "рая": 18171, - "▁continues": 18172, - "▁~[": 18173, - "uerte": 18174, - "▁\\;": 18175, - "▁Dok": 18176, - "▁weights": 18177, - "▁rh": 18178, - "▁Napole": 18179, - "▁naturally": 18180, - "sku": 18181, - "pas": 18182, - "▁gegründ": 18183, - "etr": 18184, - "▁Ku": 18185, - "icted": 18186, - "▁fabric": 18187, - "▁ASC": 18188, - "▁Entertainment": 18189, - "▁energ": 18190, - "клад": 18191, - "omon": 18192, - "theme": 18193, - "▁харак": 18194, - "▁draft": 18195, - "▁channels": 18196, - "▁desert": 18197, - "▁través": 18198, - "▁Lock": 18199, - "▁siendo": 18200, - "фек": 18201, - "même": 18202, - "▁packet": 18203, - "▁Mountain": 18204, - "▁Fahr": 18205, - "braio": 18206, - "пере": 18207, - "▁genannt": 18208, - "▁deployment": 18209, - "Pal": 18210, - "ног": 18211, - "стру": 18212, - "Prim": 18213, - "für": 18214, - "▁dangerous": 18215, - "▁szám": 18216, - "reck": 18217, - "▁popup": 18218, - "icky": 18219, - "inar": 18220, - "cowo": 18221, - "нцикло": 18222, - "ítás": 18223, - "▁plugins": 18224, - "▁driven": 18225, - "лев": 18226, - "▁\"(": 18227, - "tta": 18228, - "▁Ú": 18229, - "▁eb": 18230, - "▁'';": 18231, - "▁knock": 18232, - "▁основа": 18233, - "▁maison": 18234, - "гля": 18235, - "▁Honor": 18236, - "tail": 18237, - "ritz": 18238, - "▁guys": 18239, - "▁combinations": 18240, - "ondere": 18241, - "▁Ald": 18242, - "▁fiddle": 18243, - "дав": 18244, - "urd": 18245, - "▁projection": 18246, - "▁También": 18247, - "verb": 18248, - "▁terre": 18249, - "rugu": 18250, - "▁september": 18251, - "▁=": 18572, - "▁Beat": 18573, - "▁Sax": 18574, - "vertical": 18575, - "кто": 18576, - "▁plants": 18577, - "▁Références": 18578, - "▁ogni": 18579, - "▁curs": 18580, - "▁SK": 18581, - "они": 18582, - "▁destac": 18583, - "\");\r": 18584, - "▁Sure": 18585, - "▁partido": 18586, - "▁Folge": 18587, - "▁Moore": 18588, - "▁wz": 18589, - "скус": 18590, - "ltre": 18591, - "ondo": 18592, - "▁pose": 18593, - "imos": 18594, - "бой": 18595, - "ципа": 18596, - "jus": 18597, - ".....": 18598, - "▁época": 18599, - "▁quanto": 18600, - "▁Support": 18601, - "geschichte": 18602, - "SERVER": 18603, - "▁Georges": 18604, - "enum": 18605, - "▁herm": 18606, - "▁nebo": 18607, - "▁Chr": 18608, - "character": 18609, - "▁***": 18610, - "▁Forsch": 18611, - "iami": 18612, - "▁¿": 18613, - "cych": 18614, - "▁fifth": 18615, - "sent": 18616, - "▁anderem": 18617, - "▁proportion": 18618, - "▁prest": 18619, - "▁Girl": 18620, - "▁drama": 18621, - "wand": 18622, - "▁Mail": 18623, - "▁Lux": 18624, - "▁který": 18625, - "▁Gesellschaft": 18626, - "▁Hinweis": 18627, - "nisse": 18628, - "▁mondo": 18629, - "Eq": 18630, - "▁perí": 18631, - "▁eastern": 18632, - "▁UEFA": 18633, - "uale": 18634, - "▁convex": 18635, - "▁поль": 18636, - "▁Hey": 18637, - "zenie": 18638, - "initely": 18639, - "▁Zusammen": 18640, - "SSL": 18641, - "ocal": 18642, - "▁canal": 18643, - "voy": 18644, - "▁Кри": 18645, - "▁között": 18646, - "▁cars": 18647, - "▁versión": 18648, - "Environment": 18649, - "Her": 18650, - "▁señ": 18651, - "▁spatial": 18652, - "ymi": 18653, - "Fire": 18654, - "▁veget": 18655, - "▁Wie": 18656, - "▁znaj": 18657, - "▁damage": 18658, - "▁endl": 18659, - "gif": 18660, - "▁quali": 18661, - "▁которых": 18662, - "ellan": 18663, - "▁mens": 18664, - "▁plug": 18665, - "▁abund": 18666, - "FIG": 18667, - "▁sf": 18668, - "▁confl": 18669, - "▁населения": 18670, - "▁principles": 18671, - "▁Gabriel": 18672, - "ibe": 18673, - "▁{%": 18674, - "▁població": 18675, - "ніципа": 18676, - "▁extreme": 18677, - "▁asse": 18678, - "▁vu": 18679, - "Mock": 18680, - "▁spielte": 18681, - "▁Aer": 18682, - "▁datos": 18683, - "endes": 18684, - "▁Gel": 18685, - "▁Gor": 18686, - "Christ": 18687, - "chos": 18688, - "Processor": 18689, - "▁instruct": 18690, - "▁picked": 18691, - "nahme": 18692, - "fahr": 18693, - "▁indicated": 18694, - "▁%.": 18695, - "▁ts": 18696, - "▁notable": 18697, - "▁qualified": 18698, - "▁Ал": 18699, - "Black": 18700, - "▁council": 18701, - "▁overhead": 18702, - "aci": 18703, - "année": 18704, - "▁initWith": 18705, - "bió": 18706, - "▁introduction": 18707, - "▁companion": 18708, - "▁expon": 18709, - "▁kör": 18710, - "oby": 18711, - "burn": 18712, - "gnu": 18713, - "virtual": 18714, - "▁intellect": 18715, - "▁держа": 18716, - "'+": 18717, - "бле": 18718, - "▁strictly": 18719, - "▁recognize": 18720, - "hour": 18721, - "▁Wrest": 18722, - "ennen": 18723, - "$).": 18724, - "fff": 18725, - "▁Centro": 18726, - "▁Pitt": 18727, - "▁dział": 18728, - "▁cela": 18729, - "▁francese": 18730, - "рами": 18731, - "special": 18732, - "▁Dup": 18733, - "toire": 18734, - "каль": 18735, - "COUNT": 18736, - "▁Brook": 18737, - "▁руково": 18738, - "publique": 18739, - "▁seconda": 18740, - "▁compt": 18741, - "▁bland": 18742, - "Before": 18743, - "▁Pack": 18744, - "alty": 18745, - "öder": 18746, - "▁intervals": 18747, - "▁Datenbank": 18748, - "Movie": 18749, - "▁transm": 18750, - "▁tap": 18751, - "▁поч": 18752, - "fon": 18753, - "iai": 18754, - "▁fib": 18755, - "▁wyd": 18756, - "▁hung": 18757, - "▁alive": 18758, - "Clear": 18759, - "▁pushed": 18760, - "▁tuple": 18761, - "achen": 18762, - "гово": 18763, - "▁revers": 18764, - "▁augment": 18765, - "▁challenge": 18766, - "lost": 18767, - "▁deuxième": 18768, - "structor": 18769, - "▁mehrerer": 18770, - "atural": 18771, - "Split": 18772, - "стем": 18773, - "шла": 18774, - ")\\\\": 18775, - "▁Dog": 18776, - "▁developers": 18777, - "▁nod": 18778, - "▁сторо": 18779, - "▁NaN": 18780, - "▁priest": 18781, - "▁exha": 18782, - "UND": 18783, - "pair": 18784, - "alone": 18785, - "▁moon": 18786, - "▁#!/": 18787, - "▁guns": 18788, - "rola": 18789, - "чита": 18790, - "▁Encyclopedia": 18791, - "atis": 18792, - "▁'\"": 18793, - "zych": 18794, - "▁superfic": 18795, - "▁эк": 18796, - "едера": 18797, - "feed": 18798, - "LAY": 18799, - "Fi": 18800, - "unks": 18801, - "isecond": 18802, - "▁'@": 18803, - "▁Adding": 18804, - "рое": 18805, - "▁tang": 18806, - "цо": 18807, - "hung": 18808, - "bis": 18809, - "ského": 18810, - "▁advert": 18811, - "▁занима": 18812, - "uzz": 18813, - "ágina": 18814, - "▁Tel": 18815, - "sig": 18816, - "▁Ez": 18817, - "▁guarantee": 18818, - "▁teaching": 18819, - "oty": 18820, - "termin": 18821, - "▁distributions": 18822, - "FLA": 18823, - "▁Giuseppe": 18824, - "querySelector": 18825, - "▁/\\": 18826, - "▁Squad": 18827, - "gz": 18828, - "delay": 18829, - "▁surrounding": 18830, - "▁manus": 18831, - "▁Hou": 18832, - "²,": 18833, - "▁cultiv": 18834, - "▁troubles": 18835, - "▁raison": 18836, - "expand": 18837, - "▁cov": 18838, - "nungen": 18839, - ")){": 18840, - "▁geen": 18841, - "▁außer": 18842, - "▁Лі": 18843, - "ři": 18844, - "▁situations": 18845, - "▁telep": 18846, - "▁Jed": 18847, - "▁travail": 18848, - "lias": 18849, - "bullet": 18850, - "▁selecting": 18851, - "avier": 18852, - "▁essential": 18853, - "(/": 18854, - "yyyy": 18855, - "ště": 18856, - "ulty": 18857, - "▁kra": 18858, - "▁tabs": 18859, - "▁experienced": 18860, - "azi": 18861, - "▁Directory": 18862, - "▁cron": 18863, - "▁spend": 18864, - "▁RA": 18865, - "▁selenium": 18866, - "▁Thé": 18867, - "Elements": 18868, - "cii": 18869, - "▁plat": 18870, - "▁archive": 18871, - "▁assistance": 18872, - "▁neck": 18873, - "▁Avenue": 18874, - "▁wheel": 18875, - "▁hade": 18876, - "Common": 18877, - "▁Dialog": 18878, - "▁forg": 18879, - "▁surely": 18880, - "▁hockey": 18881, - "któ": 18882, - "▁tk": 18883, - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁": 18884, - "▁Bruce": 18885, - "▁enorm": 18886, - ",’": 18887, - "▁Christopher": 18888, - "jev": 18889, - "▁quad": 18890, - "▁AJAX": 18891, - "▁relief": 18892, - "▁modes": 18893, - "sklär": 18894, - "▁Vid": 18895, - "▁Serial": 18896, - "▁tokens": 18897, - "▁Poland": 18898, - "\\]": 18899, - "▁vide": 18900, - "rooms": 18901, - "omas": 18902, - "▁Bureau": 18903, - "cx": 18904, - "ностью": 18905, - "▁signs": 18906, - "шение": 18907, - "lossen": 18908, - "▁Queens": 18909, - "▁membre": 18910, - "▁mez": 18911, - "▁Bool": 18912, - "▁Naj": 18913, - "▁Memory": 18914, - "▁Khan": 18915, - "▁là": 18916, - "▁Hud": 18917, - "▁dismiss": 18918, - "ighth": 18919, - "▁fs": 18920, - "prevent": 18921, - "▁меда": 18922, - "▁Police": 18923, - "▁ско": 18924, - "finite": 18925, - "▁ami": 18926, - "▁Much": 18927, - "owania": 18928, - "ORY": 18929, - "iors": 18930, - "▁Premio": 18931, - "▁textbox": 18932, - "dm": 18933, - "▁afin": 18934, - "▁Donald": 18935, - "▁Priv": 18936, - "▁decid": 18937, - "▁Maurice": 18938, - "agan": 18939, - "▁Britannica": 18940, - "▁oft": 18941, - "▁consecutive": 18942, - "\"?>": 18943, - "овий": 18944, - "student": 18945, - "▁peque": 18946, - "▁dieses": 18947, - "▁retour": 18948, - "étr": 18949, - "▁сез": 18950, - "▁kre": 18951, - "▁votes": 18952, - "ruption": 18953, - "izada": 18954, - "▁Wiel": 18955, - "▁Gray": 18956, - "▁Leop": 18957, - "teilung": 18958, - "(['": 18959, - "▁whites": 18960, - "frica": 18961, - "animation": 18962, - "curl": 18963, - "lings": 18964, - "=\"$": 18965, - "loyd": 18966, - "textsc": 18967, - "ору": 18968, - "▁села": 18969, - "esian": 18970, - "▁Mission": 18971, - "▁неза": 18972, - "▁ultimately": 18973, - "бов": 18974, - "olen": 18975, - "скому": 18976, - "nete": 18977, - "▁Dit": 18978, - "▁costru": 18979, - "dependent": 18980, - "▁Resource": 18981, - "▁hosts": 18982, - "▁rear": 18983, - "Duration": 18984, - "ників": 18985, - "Ма": 18986, - "▁planning": 18987, - "▁prediction": 18988, - "▁Lyn": 18989, - "▁kir": 18990, - "▁Legisl": 18991, - "мат": 18992, - "▁Soccer": 18993, - "▁survey": 18994, - "▁estadounidense": 18995, - "orgen": 18996, - "jourd": 18997, - "▁aprile": 18998, - "▁ids": 18999, - "ське": 19000, - "▁employee": 19001, - "▁Schauspieler": 19002, - "ръ": 19003, - "▁multimedia": 19004, - "▁свою": 19005, - "▁wine": 19006, - "▁EU": 19007, - "ică": 19008, - "▁Rhein": 19009, - "▁Palmar": 19010, - "oteca": 19011, - "▁prepare": 19012, - "▁Tot": 19013, - "▁Null": 19014, - "▁kin": 19015, - "inals": 19016, - "▁Newton": 19017, - "▁tbl": 19018, - "▁Sold": 19019, - "▁verf": 19020, - "aturing": 19021, - "▁laptop": 19022, - "▁Совет": 19023, - "secret": 19024, - "▁Olympic": 19025, - "▁footballer": 19026, - "▁Rudolf": 19027, - "▁conhe": 19028, - "zysk": 19029, - "▁evaluated": 19030, - "»)": 19031, - "shop": 19032, - "repository": 19033, - "▁zach": 19034, - "▁losing": 19035, - "etter": 19036, - "▁Wirtschaft": 19037, - "так": 19038, - "▁unnecessary": 19039, - "▁Phot": 19040, - "anska": 19041, - "▁Native": 19042, - "CCE": 19043, - "▁fifty": 19044, - "▁erw": 19045, - "rh": 19046, - "issent": 19047, - "}{(": 19048, - "▁lanç": 19049, - "▁Xcode": 19050, - "город": 19051, - "cir": 19052, - "▁película": 19053, - "▁Oscar": 19054, - "▁shore": 19055, - "▁supplied": 19056, - "examples": 19057, - "Mess": 19058, - "VICE": 19059, - "▁exclude": 19060, - "▁hen": 19061, - "▁губер": 19062, - "▁Fragment": 19063, - "▁Bitte": 19064, - "▁Besides": 19065, - "▁hes": 19066, - "▁ihrem": 19067, - "▁Serge": 19068, - "▁artific": 19069, - "=\"${": 19070, - "лово": 19071, - "uteur": 19072, - "taire": 19073, - "пас": 19074, - "▁easiest": 19075, - "▁famiglia": 19076, - "Normal": 19077, - "▁dalle": 19078, - "▁nations": 19079, - "rp": 19080, - "thead": 19081, - "▁області": 19082, - "▁Democratic": 19083, - "▁челове": 19084, - "мож": 19085, - "▁гер": 19086, - "▁smallest": 19087, - "▁Publishing": 19088, - "▁Ts": 19089, - "▁laughed": 19090, - "lle": 19091, - "▁Amt": 19092, - "▁IIS": 19093, - "FORM": 19094, - "Mag": 19095, - "дон": 19096, - "▁storia": 19097, - "▁organized": 19098, - "ční": 19099, - "▁ox": 19100, - "lingen": 19101, - "▁luego": 19102, - "cció": 19103, - "▁rely": 19104, - "▁tussen": 19105, - "erten": 19106, - "▁honour": 19107, - "▁Claude": 19108, - "▁Korea": 19109, - "▁Metropol": 19110, - "Super": 19111, - "rien": 19112, - "érature": 19113, - "attro": 19114, - "▁біль": 19115, - "▁Herbert": 19116, - "▁auteurs": 19117, - "▁darauf": 19118, - "▁mental": 19119, - "▁rang": 19120, - "▁són": 19121, - "▁Soph": 19122, - ")\",": 19123, - "Descriptor": 19124, - "prepare": 19125, - "▁Landkreis": 19126, - "HC": 19127, - "cross": 19128, - "лиза": 19129, - "▁Login": 19130, - "onen": 19131, - "Feature": 19132, - "▁museum": 19133, - "vek": 19134, - "▁Nelson": 19135, - "▁rejo": 19136, - "▁команди": 19137, - "▁summar": 19138, - "▁следу": 19139, - "ämp": 19140, - "▁Gas": 19141, - "вом": 19142, - "VALUE": 19143, - "inge": 19144, - "period": 19145, - "lassen": 19146, - "ával": 19147, - "▁altogether": 19148, - "umph": 19149, - "istro": 19150, - "ąż": 19151, - "▁Keep": 19152, - "▁Marco": 19153, - "▁étant": 19154, - "▁Dre": 19155, - "geometry": 19156, - "▁Kas": 19157, - "messages": 19158, - "Cook": 19159, - "▁Side": 19160, - "▁коми": 19161, - "стри": 19162, - "▁excess": 19163, - "▁Biografia": 19164, - "XXXX": 19165, - "▁Nie": 19166, - "vendor": 19167, - "xsd": 19168, - "Mill": 19169, - "processing": 19170, - "▁Missouri": 19171, - "▁permett": 19172, - "▁apar": 19173, - "▁crowd": 19174, - "fert": 19175, - "▁Dou": 19176, - "rí": 19177, - "▁CC": 19178, - "▁payment": 19179, - "▁Hollywood": 19180, - "▁Virtual": 19181, - "▁spoken": 19182, - "▁tram": 19183, - "▁Community": 19184, - "▁administrative": 19185, - "▁воло": 19186, - "gior": 19187, - "visor": 19188, - "▁Украи": 19189, - "stage": 19190, - "▁Format": 19191, - "▁convenient": 19192, - "На": 19193, - "▁median": 19194, - "▁вра": 19195, - "▁Према": 19196, - "enig": 19197, - "▁Opera": 19198, - "rés": 19199, - "▁fmt": 19200, - "▁efficiency": 19201, - "male": 19202, - "Master": 19203, - "Series": 19204, - "▁syd": 19205, - "generic": 19206, - "interval": 19207, - "▁efect": 19208, - "▁inwoners": 19209, - "лимпи": 19210, - "irement": 19211, - "Err": 19212, - "öh": 19213, - "▁lying": 19214, - "▁Settings": 19215, - "!=": 19216, - "ematic": 19217, - "argv": 19218, - "▁Basic": 19219, - "▁consideration": 19220, - "▁habe": 19221, - "-%": 19222, - "▁mountains": 19223, - "▁peak": 19224, - "▁fallen": 19225, - "eded": 19226, - "logic": 19227, - "▁matched": 19228, - "▁typing": 19229, - ")},": 19230, - "▁fancy": 19231, - "▁elegant": 19232, - "ال": 19233, - "▁участ": 19234, - "▁Sarah": 19235, - "▁Verd": 19236, - "▁tego": 19237, - "rules": 19238, - "▁mounted": 19239, - "▁ім": 19240, - "еру": 19241, - "stoff": 19242, - "fahren": 19243, - "distance": 19244, - "▁License": 19245, - "▁LEFT": 19246, - "▁wp": 19247, - "/{": 19248, - "▁amazon": 19249, - ">&": 19250, - "▁első": 19251, - "quarters": 19252, - "▁shock": 19253, - "nick": 19254, - "▁Archite": 19255, - "▁Square": 19256, - "▁rates": 19257, - "iore": 19258, - "▁Nat": 19259, - "▁Charlot": 19260, - "reichen": 19261, - "▁variation": 19262, - "osis": 19263, - "life": 19264, - "slide": 19265, - "abi": 19266, - "uki": 19267, - "mysq": 19268, - "▁primitive": 19269, - "▁universitaire": 19270, - "LENG": 19271, - "ależ": 19272, - "ebook": 19273, - "syn": 19274, - "▁Gegen": 19275, - "▁Kü": 19276, - "▁але": 19277, - "▁Lub": 19278, - "concurrent": 19279, - "izzato": 19280, - "▁stub": 19281, - "▁ie": 19282, - "▁'./": 19283, - "cod": 19284, - "▁internacional": 19285, - "▁Glas": 19286, - "▁mare": 19287, - "▁Neb": 19288, - "▁GB": 19289, - "kwargs": 19290, - "▁aument": 19291, - "WID": 19292, - "▁род": 19293, - "punkt": 19294, - "▁Grad": 19295, - "SN": 19296, - "AMP": 19297, - "▁Born": 19298, - "▁Guerre": 19299, - "готов": 19300, - "▁medio": 19301, - "Med": 19302, - "supp": 19303, - "actual": 19304, - "dropdown": 19305, - "▁oktober": 19306, - "▁ř": 19307, - "▁circular": 19308, - "▁skin": 19309, - "▁emphas": 19310, - "▁голов": 19311, - "▁pue": 19312, - "▁informations": 19313, - "▁Wolfgang": 19314, - "▁useless": 19315, - "ит": 19316, - "▁Joan": 19317, - "▁бор": 19318, - "▁Glad": 19319, - "▁Know": 19320, - "ként": 19321, - "speed": 19322, - "▁Kevin": 19323, - "unft": 19324, - "▁arqu": 19325, - "▁Casa": 19326, - "(...": 19327, - "▁rapidly": 19328, - "▁proble": 19329, - "▁Википеди": 19330, - "žen": 19331, - "▁Neben": 19332, - "▁Meter": 19333, - "Children": 19334, - "cem": 19335, - "igos": 19336, - "aju": 19337, - "▁Retrie": 19338, - "▁Hell": 19339, - "▁gig": 19340, - "▁controvers": 19341, - "▁zoom": 19342, - "▁cens": 19343, - "▁alcuni": 19344, - "▁Header": 19345, - "Meta": 19346, - "Required": 19347, - "▁институ": 19348, - "▁skup": 19349, - "▁ingles": 19350, - "égl": 19351, - "bij": 19352, - "▁tér": 19353, - "▁compag": 19354, - "▁committed": 19355, - "▁processed": 19356, - "Lower": 19357, - "▁Foreign": 19358, - "▁seq": 19359, - "sheets": 19360, - "▁Fem": 19361, - "hoz": 19362, - "inks": 19363, - "▁kall": 19364, - "variant": 19365, - "▁libro": 19366, - "▁clicks": 19367, - "▁gobierno": 19368, - "iegel": 19369, - "мого": 19370, - "geme": 19371, - "▁tower": 19372, - "▁parish": 19373, - "▁TCP": 19374, - "▁ls": 19375, - "▁nginx": 19376, - "NaN": 19377, - "▁Dir": 19378, - "▁Begriffe": 19379, - "arie": 19380, - "ímp": 19381, - "icios": 19382, - "▁sharing": 19383, - "▁cinéma": 19384, - "bec": 19385, - "RED": 19386, - "▁Kra": 19387, - "abol": 19388, - "▁flux": 19389, - "▁expensive": 19390, - "▁суще": 19391, - "▁`_": 19392, - "ocz": 19393, - "лист": 19394, - "▁acquaint": 19395, - "▁wise": 19396, - "▁pouvoir": 19397, - "▁devant": 19398, - "▁momentum": 19399, - "immer": 19400, - "▁Coupe": 19401, - "indexOf": 19402, - "▁doesnt": 19403, - "▁зав": 19404, - "▁license": 19405, - "▁â": 19406, - "CSS": 19407, - "▁rice": 19408, - "Team": 19409, - "▁ano": 19410, - "lit": 19411, - "▁merged": 19412, - "▁Cell": 19413, - "лл": 19414, - "boy": 19415, - "asts": 19416, - "▁sell": 19417, - "▁große": 19418, - "▁virtuel": 19419, - "Cancel": 19420, - "▁sj": 19421, - "gment": 19422, - ".<": 19423, - "чай": 19424, - "ië": 19425, - "akh": 19426, - "izers": 19427, - "prit": 19428, - "▁Tib": 19429, - "▁elaborate": 19430, - "▁fé": 19431, - "▁меди": 19432, - "LENGTH": 19433, - "▁primarily": 19434, - "▁scores": 19435, - "▁carrying": 19436, - "▁lake": 19437, - "compose": 19438, - "▁Township": 19439, - "unge": 19440, - "▁alberga": 19441, - "anych": 19442, - "quelle": 19443, - "▁Ark": 19444, - "▁pris": 19445, - "▁voll": 19446, - "шли": 19447, - "Validation": 19448, - "▁ceux": 19449, - "▁populate": 19450, - "\"\r": 19451, - "▁femmes": 19452, - "ANG": 19453, - "▁Despite": 19454, - "вые": 19455, - "iske": 19456, - "zug": 19457, - "нача": 19458, - "▁hatten": 19459, - "INSERT": 19460, - "Employee": 19461, - "▁moments": 19462, - "▁última": 19463, - "▁holder": 19464, - "blank": 19465, - "Collections": 19466, - "athers": 19467, - "▁grade": 19468, - "▁affairs": 19469, - ".$$": 19470, - "▁delta": 19471, - "▁Jugend": 19472, - "▁español": 19473, - "▁OUT": 19474, - "▁mathematical": 19475, - "▁mongo": 19476, - "▁Фе": 19477, - "uling": 19478, - "▁revolution": 19479, - "▁coin": 19480, - "▁subclass": 19481, - "\"=>": 19482, - "äche": 19483, - "▁pyg": 19484, - "щая": 19485, - "illery": 19486, - "▁comenz": 19487, - "depth": 19488, - "▁cél": 19489, - "▁resize": 19490, - "▁Same": 19491, - "▁strik": 19492, - "▁tir": 19493, - "▁scarc": 19494, - "▁Member": 19495, - "subscribe": 19496, - "óż": 19497, - "útbol": 19498, - "except": 19499, - "▁driving": 19500, - "kie": 19501, - "zony": 19502, - "èmes": 19503, - "David": 19504, - "issant": 19505, - "▁ты": 19506, - "▁élect": 19507, - "▁rename": 19508, - "▁Running": 19509, - "▁interfaces": 19510, - "////////////////": 19511, - "▁Walker": 19512, - "▁société": 19513, - "▁asks": 19514, - "brid": 19515, - "▁jewe": 19516, - "▁seines": 19517, - "▁agents": 19518, - "▁MY": 19519, - "▁Lawrence": 19520, - "dess": 19521, - "iesen": 19522, - "▁людях": 19523, - "прави": 19524, - "▁ancest": 19525, - "▁welche": 19526, - "raum": 19527, - "▁orb": 19528, - "scal": 19529, - "▁Lear": 19530, - "▁wear": 19531, - "▁slave": 19532, - "▁renamed": 19533, - "čen": 19534, - "maste": 19535, - "angles": 19536, - "▁América": 19537, - "▁ti": 19538, - "▁demsel": 19539, - "▁beneath": 19540, - "binary": 19541, - "▁edición": 19542, - "▁kilomet": 19543, - "uits": 19544, - "▁cuatro": 19545, - "▁entrance": 19546, - "ondissement": 19547, - "▁bag": 19548, - "▁Armen": 19549, - "ijo": 19550, - "▁Lors": 19551, - "▁demselben": 19552, - "êm": 19553, - "▁discrete": 19554, - "▁prominent": 19555, - "▁Jay": 19556, - "decor": 19557, - "DL": 19558, - "▁dí": 19559, - "Struct": 19560, - "▁Production": 19561, - "they": 19562, - "arius": 19563, - "schnitt": 19564, - "▁Cou": 19565, - "▁lex": 19566, - "youtube": 19567, - "▁работа": 19568, - "station": 19569, - "sep": 19570, - "▁mirror": 19571, - "▁hits": 19572, - "▁Beck": 19573, - "atically": 19574, - "▁Laz": 19575, - "▁winner": 19576, - "DEX": 19577, - "▁INT": 19578, - "}^{-": 19579, - "▁wegen": 19580, - "mad": 19581, - "Angle": 19582, - "zing": 19583, - "▁Bayern": 19584, - "sal": 19585, - "äger": 19586, - "▁busy": 19587, - "▁stör": 19588, - "▁folk": 19589, - "▁prix": 19590, - "▁allocated": 19591, - "▁pt": 19592, - "affen": 19593, - "cluster": 19594, - "▁complement": 19595, - "árs": 19596, - "▁Amerika": 19597, - "рій": 19598, - "▁valley": 19599, - "▁rooms": 19600, - "▁moi": 19601, - ".\",": 19602, - ";;;;": 19603, - "▁lowest": 19604, - "nog": 19605, - "▁landet": 19606, - "▁programme": 19607, - "chio": 19608, - "▁Während": 19609, - "ández": 19610, - "▁долж": 19611, - "▁ouv": 19612, - "omány": 19613, - "▁Википедии": 19614, - "▁só": 19615, - "▁elektr": 19616, - "Desc": 19617, - "▁Beaut": 19618, - "нар": 19619, - "▁може": 19620, - "Pierre": 19621, - "esota": 19622, - "▁operated": 19623, - "▁forte": 19624, - "рис": 19625, - "▁opposition": 19626, - "alia": 19627, - "▁Syl": 19628, - "getName": 19629, - "вели": 19630, - "fik": 19631, - "▁comprom": 19632, - "▁TextView": 19633, - "Spring": 19634, - "metadata": 19635, - "engu": 19636, - "/,": 19637, - "▁carri": 19638, - "istol": 19639, - "▁diagonal": 19640, - "lista": 19641, - "izen": 19642, - "▁rende": 19643, - "gcc": 19644, - "beck": 19645, - "lius": 19646, - "iral": 19647, - "Resolver": 19648, - "▁percentage": 19649, - "▁attra": 19650, - "strings": 19651, - "wiąz": 19652, - "ods": 19653, - "волю": 19654, - "ęż": 19655, - "▁newspaper": 19656, - "imiter": 19657, - "ABC": 19658, - "▁Manchester": 19659, - "[{": 19660, - "Agent": 19661, - "▁Wor": 19662, - "▁Kath": 19663, - "▁пові": 19664, - "▁entonces": 19665, - "▁niveau": 19666, - "atted": 19667, - "learn": 19668, - "atiques": 19669, - "▁уби": 19670, - "▁quindi": 19671, - "binding": 19672, - "▁imported": 19673, - "▁Horn": 19674, - "emberg": 19675, - "complex": 19676, - "▁neural": 19677, - "information": 19678, - "▁recognition": 19679, - "ingt": 19680, - "▁inhabitants": 19681, - "vue": 19682, - "▁Bevölker": 19683, - "▁curves": 19684, - "▁leb": 19685, - "дій": 19686, - "▁sow": 19687, - "▁sentiment": 19688, - "PH": 19689, - "rache": 19690, - "▁-(": 19691, - "▁estable": 19692, - "▁Ferdinand": 19693, - "▁écrit": 19694, - "▁primeiro": 19695, - "▁tex": 19696, - "▁intermediate": 19697, - "verage": 19698, - "ibus": 19699, - "▁serves": 19700, - "ivas": 19701, - "▁bru": 19702, - "▁lum": 19703, - "attice": 19704, - "чный": 19705, - "▁Dres": 19706, - "▁videos": 19707, - "duration": 19708, - "▁abit": 19709, - "▁egg": 19710, - "ographical": 19711, - "alph": 19712, - "STATE": 19713, - "▁пара": 19714, - "reading": 19715, - "▁vehicle": 19716, - "▁fortune": 19717, - "ultats": 19718, - "▁Storia": 19719, - "midt": 19720, - "łącz": 19721, - "▁Memorial": 19722, - "▁vas": 19723, - "▁зан": 19724, - "▁utility": 19725, - "▁obsc": 19726, - "▁relacion": 19727, - "▁runat": 19728, - "Release": 19729, - "take": 19730, - "▁Oliver": 19731, - "▁Sid": 19732, - "ulos": 19733, - "▁Garc": 19734, - "▁розта": 19735, - "▁Sak": 19736, - "Py": 19737, - "führt": 19738, - "▁trabal": 19739, - "*{": 19740, - "▁zes": 19741, - "▁szere": 19742, - "▁varios": 19743, - "▁otra": 19744, - "▁eval": 19745, - "▁situé": 19746, - "▁wounded": 19747, - "▁Vincent": 19748, - "▁викори": 19749, - "▁encode": 19750, - "Modal": 19751, - "▁forb": 19752, - "▁dynamics": 19753, - "▁depos": 19754, - "arde": 19755, - "▁streets": 19756, - "▁Komm": 19757, - "=$(": 19758, - "▁повер": 19759, - "▁dois": 19760, - "▁vitt": 19761, - "▁automatisch": 19762, - "▁reload": 19763, - "▁Verwalt": 19764, - "bero": 19765, - "▁hub": 19766, - "▁mos": 19767, - "▁tutto": 19768, - "▁Frederick": 19769, - "łow": 19770, - "antages": 19771, - "aque": 19772, - "paper": 19773, - "▁einige": 19774, - "`),": 19775, - "dj": 19776, - "▁Ple": 19777, - "▁%,": 19778, - "▁Bitmap": 19779, - "▁friendly": 19780, - "▁truly": 19781, - "▁stroke": 19782, - "roph": 19783, - "▁engl": 19784, - "▁coff": 19785, - "▁dust": 19786, - "▁Jahres": 19787, - "ppi": 19788, - "▁wys": 19789, - "factor": 19790, - "schluss": 19791, - "▁деревня": 19792, - "▁Past": 19793, - "▁дома": 19794, - "COM": 19795, - "▁pueden": 19796, - "▁gift": 19797, - "▁Gla": 19798, - "▁triggered": 19799, - "ély": 19800, - "ülés": 19801, - "▁Oliv": 19802, - "▁verso": 19803, - "▁lle": 19804, - "▁Gli": 19805, - "▁Ltd": 19806, - "oa": 19807, - "▁territorio": 19808, - "ordre": 19809, - "▁deck": 19810, - "dra": 19811, - "aszt": 19812, - "▁concerning": 19813, - "▁Additionally": 19814, - "▁které": 19815, - "▁grund": 19816, - "▁Gest": 19817, - "▁misunder": 19818, - "pret": 19819, - "────": 19820, - "▁reputation": 19821, - "zia": 19822, - "▁успе": 19823, - "▁escaped": 19824, - "▁Prag": 19825, - "perform": 19826, - "▁austral": 19827, - "▁Vater": 19828, - "час": 19829, - "▁races": 19830, - "▁Byte": 19831, - "Mask": 19832, - "▁Territ": 19833, - "стю": 19834, - "▁Voci": 19835, - "▁Fichier": 19836, - "▁Населення": 19837, - "▁Unterscheidung": 19838, - "teenth": 19839, - "▁pilot": 19840, - "▁ji": 19841, - "▁двух": 19842, - "▁orientation": 19843, - "indre": 19844, - "▁Dort": 19845, - "ças": 19846, - "пли": 19847, - "▁reaction": 19848, - "▁consisting": 19849, - "▁ferro": 19850, - "тисти": 19851, - "yard": 19852, - "▁сві": 19853, - "▁interpretation": 19854, - "ią": 19855, - "rah": 19856, - "▁fand": 19857, - "Public": 19858, - "▁universe": 19859, - "▁retir": 19860, - "▁conscious": 19861, - "arqu": 19862, - "▁waste": 19863, - "▁Bib": 19864, - "yclerView": 19865, - "▁listening": 19866, - "gleich": 19867, - "niejs": 19868, - "▁correlation": 19869, - "▁receiver": 19870, - "▁уда": 19871, - "▁courage": 19872, - "uchs": 19873, - "fass": 19874, - "▁chunk": 19875, - "▁Anfang": 19876, - "▁großen": 19877, - "continue": 19878, - "▁Warszawa": 19879, - "hé": 19880, - "iy": 19881, - "ivement": 19882, - "▁α": 19883, - "▁exposed": 19884, - "▁zahl": 19885, - "▁sacr": 19886, - "▁Looks": 19887, - "▁eager": 19888, - "enten": 19889, - "Cursor": 19890, - "/_": 19891, - "ixa": 19892, - "рела": 19893, - "знача": 19894, - "▁фамилией": 19895, - "▁argent": 19896, - "▁Anders": 19897, - "œuvre": 19898, - "▁Isa": 19899, - "мента": 19900, - "▁advers": 19901, - "riction": 19902, - "GP": 19903, - "▁після": 19904, - "▁preserve": 19905, - "▁Garden": 19906, - "Rate": 19907, - "après": 19908, - "▁readable": 19909, - "indu": 19910, - "▁skill": 19911, - "▁helping": 19912, - "ographique": 19913, - "cling": 19914, - "ologist": 19915, - "▁Filter": 19916, - "▁finger": 19917, - "▁Vall": 19918, - "▁Polish": 19919, - "lg": 19920, - "▁Familien": 19921, - "▁waters": 19922, - "▁pseud": 19923, - "aza": 19924, - "_)": 19925, - "ARY": 19926, - "▁среди": 19927, - "▁Must": 19928, - "▁Bod": 19929, - "anon": 19930, - "▁lado": 19931, - "▁tight": 19932, - "imen": 19933, - "appen": 19934, - "frames": 19935, - "ingers": 19936, - "▁COVID": 19937, - "▁зі": 19938, - "▁све": 19939, - "▁ць": 19940, - "▁Left": 19941, - "]];": 19942, - "чь": 19943, - "фика": 19944, - "▁сло": 19945, - "▁пі": 19946, - "▁existe": 19947, - "▁Atlantic": 19948, - "▁maintained": 19949, - "▁irre": 19950, - "▁année": 19951, - "▁commented": 19952, - "веро": 19953, - "berta": 19954, - "▁Lad": 19955, - "▁Upon": 19956, - "▁pause": 19957, - "mill": 19958, - "opter": 19959, - "UK": 19960, - "рес": 19961, - "нциклопеди": 19962, - "▁alongside": 19963, - "▁robot": 19964, - "▁fert": 19965, - "▁moy": 19966, - "▁ade": 19967, - "Mapper": 19968, - ")->": 19969, - "igua": 19970, - "étique": 19971, - "тка": 19972, - "alias": 19973, - "▁ори": 19974, - "▁Magn": 19975, - "▁gehörte": 19976, - "imb": 19977, - ")}{\\": 19978, - "▁Wikipédia": 19979, - "▁urs": 19980, - "▁ende": 19981, - "leb": 19982, - "▁GC": 19983, - "Hol": 19984, - "ancing": 19985, - "Union": 19986, - "▁tenía": 19987, - "TT": 19988, - "▁estate": 19989, - "há": 19990, - "▁полі": 19991, - "ultan": 19992, - "▁Hockey": 19993, - "ulse": 19994, - "▁choices": 19995, - "scher": 19996, - "▁[],": 19997, - "▁potentially": 19998, - "▁Übers": 19999, - "▁admit": 20000, - "Comment": 20001, - "стя": 20002, - "▁Vien": 20003, - "▁ці": 20004, - "▁permut": 20005, - "cgi": 20006, - "▁crít": 20007, - "Console": 20008, - "ctic": 20009, - "▁okres": 20010, - "awk": 20011, - "football": 20012, - "ouest": 20013, - "CTYPE": 20014, - "ologique": 20015, - "▁constit": 20016, - "▁interests": 20017, - "▁Progress": 20018, - "▁Menu": 20019, - "▁také": 20020, - "▁Asian": 20021, - "▁защи": 20022, - "▁younger": 20023, - "▁wished": 20024, - "▁Sort": 20025, - "▁audience": 20026, - "amba": 20027, - "▁gehört": 20028, - "▁Kansas": 20029, - "yaume": 20030, - "▁Professional": 20031, - "âce": 20032, - "▁fatto": 20033, - "tod": 20034, - "▁datasets": 20035, - "▁fare": 20036, - "▁waves": 20037, - "~/": 20038, - "▁measurement": 20039, - "▁wol": 20040, - "indust": 20041, - "▁struggling": 20042, - "▁pulled": 20043, - "▁caratter": 20044, - "▁Externe": 20045, - "▁действи": 20046, - "cnt": 20047, - "liches": 20048, - "▁Possible": 20049, - "▁faced": 20050, - "▁hypothesis": 20051, - "▁kilom": 20052, - "▁när": 20053, - "boolean": 20054, - "PY": 20055, - "ampa": 20056, - "▁kiss": 20057, - "▁astero": 20058, - "▁negli": 20059, - "aments": 20060, - "▁Stu": 20061, - "ató": 20062, - "▁Constitution": 20063, - "▁interpol": 20064, - "▁Unable": 20065, - "▁pis": 20066, - "▁parc": 20067, - "\"])": 20068, - "pler": 20069, - "▁autory": 20070, - "▁algunos": 20071, - "ywna": 20072, - "}))": 20073, - "▁falls": 20074, - "▁équip": 20075, - "▁emit": 20076, - "▁profil": 20077, - "gets": 20078, - "фо": 20079, - "▁Military": 20080, - "▁nombreux": 20081, - "oct": 20082, - "Replace": 20083, - "▁seasons": 20084, - "▁château": 20085, - "▁typeof": 20086, - "polit": 20087, - "▁rand": 20088, - "▁quar": 20089, - "▁erstmals": 20090, - "сини": 20091, - "▁payload": 20092, - "По": 20093, - "кін": 20094, - "repo": 20095, - "▁Pav": 20096, - "Score": 20097, - "erves": 20098, - "▁sollte": 20099, - "▁між": 20100, - "ébec": 20101, - "▁clip": 20102, - "▁Nice": 20103, - "▁neben": 20104, - "▁assass": 20105, - "itories": 20106, - "▁unity": 20107, - "▁ен": 20108, - "▁Institut": 20109, - "▁internationale": 20110, - "▁наук": 20111, - "▁comand": 20112, - "▁kleine": 20113, - "▁adjacent": 20114, - "▁delivered": 20115, - "▁ше": 20116, - "зем": 20117, - "▁cot": 20118, - "visual": 20119, - "вает": 20120, - "▁Census": 20121, - "\\_": 20122, - "▁territory": 20123, - "чил": 20124, - "чные": 20125, - "flutter": 20126, - "DidLoad": 20127, - "Documents": 20128, - "▁dob": 20129, - "Bre": 20130, - "animate": 20131, - "▁biz": 20132, - "▁bata": 20133, - "▁SU": 20134, - "eso": 20135, - "▁priority": 20136, - "ván": 20137, - "iras": 20138, - "▁charged": 20139, - "▁Micro": 20140, - "atoire": 20141, - "чер": 20142, - "abad": 20143, - "uru": 20144, - "▁vš": 20145, - "dire": 20146, - "▁Twitter": 20147, - "▁мето": 20148, - ")..": 20149, - "▁Цент": 20150, - "▁entwick": 20151, - "▁Mind": 20152, - "▁функ": 20153, - "Future": 20154, - "lst": 20155, - "łoż": 20156, - "fli": 20157, - "tensor": 20158, - "▁topology": 20159, - "▁arte": 20160, - "ERT": 20161, - "▁variance": 20162, - "Images": 20163, - "▁(@": 20164, - "ArrayList": 20165, - "OC": 20166, - "▁Демо": 20167, - "aucoup": 20168, - "▁denotes": 20169, - "imon": 20170, - "њи": 20171, - "▁Przyp": 20172, - "▁Zag": 20173, - "▁дире": 20174, - "▁Similarly": 20175, - "бро": 20176, - "▁militaire": 20177, - "▁тому": 20178, - "▁Johnny": 20179, - "▁Мексику": 20180, - "ћа": 20181, - "Supp": 20182, - "▁junior": 20183, - "oltre": 20184, - "▁Моск": 20185, - "▁admitted": 20186, - "▁religios": 20187, - "зяй": 20188, - "его": 20189, - "▁tears": 20190, - "ingo": 20191, - "odu": 20192, - "iveness": 20193, - "▁logo": 20194, - "▁último": 20195, - "▁aliment": 20196, - "▁UITableView": 20197, - ")!": 20198, - "▁nj": 20199, - "lette": 20200, - "▁resident": 20201, - "▁termine": 20202, - "▁уже": 20203, - "▁Сте": 20204, - "office": 20205, - "▁carte": 20206, - "▁livre": 20207, - "▁Москов": 20208, - "▁elections": 20209, - "зиден": 20210, - "Trigger": 20211, - "▁Benjamin": 20212, - "addClass": 20213, - "ског": 20214, - "▁Observable": 20215, - "Cla": 20216, - "gemein": 20217, - "▁consent": 20218, - "ври": 20219, - "▁unfold": 20220, - "▁governor": 20221, - "нал": 20222, - "▁toda": 20223, - "Remote": 20224, - "arias": 20225, - "▁instal": 20226, - "fixed": 20227, - "▁decay": 20228, - "▁дерев": 20229, - "xyz": 20230, - "▁DATE": 20231, - "imar": 20232, - "ntil": 20233, - "▁startup": 20234, - "alion": 20235, - "▁kolej": 20236, - "cios": 20237, - "▁ranges": 20238, - "▁stupid": 20239, - "▁implementations": 20240, - "▁rm": 20241, - "ének": 20242, - "▁gcc": 20243, - "▁scène": 20244, - "Navigation": 20245, - "▁ ": 20246, - "▁кан": 20247, - "▁towns": 20248, - "Username": 20249, - "▁фе": 20250, - "▁leaders": 20251, - "oit": 20252, - "wär": 20253, - "▁dummy": 20254, - "▁assistant": 20255, - "{$\\": 20256, - "бір": 20257, - "▁roy": 20258, - "▁Layout": 20259, - "▁Jung": 20260, - "Lines": 20261, - "▁Holland": 20262, - "пор": 20263, - "▁Гри": 20264, - "▁Bened": 20265, - "▁Под": 20266, - "xls": 20267, - "▁Gol": 20268, - "▁Aleks": 20269, - "▁ejemplo": 20270, - "▁sezon": 20271, - "arding": 20272, - "footnote": 20273, - "▁Congrès": 20274, - "refer": 20275, - "ската": 20276, - "Iterator": 20277, - "▁ourselves": 20278, - "▁Mic": 20279, - "▁código": 20280, - "▁площа": 20281, - "▁\\$": 20282, - "▁Charlie": 20283, - "Nodes": 20284, - "▁puzz": 20285, - "▁Identifier": 20286, - "▁flutter": 20287, - "▁prü": 20288, - "▁ort": 20289, - "▁Cort": 20290, - "asticsearch": 20291, - "▁Свя": 20292, - "▁Bull": 20293, - "udem": 20294, - "▁apparent": 20295, - ":--": 20296, - "▁Хар": 20297, - "▁Lap": 20298, - "▁comport": 20299, - "matically": 20300, - "▁curios": 20301, - "▁может": 20302, - "▁Bh": 20303, - "apping": 20304, - "▁basketball": 20305, - "zetek": 20306, - "▁runt": 20307, - "▁Milan": 20308, - "fection": 20309, - "ría": 20310, - "▁Kin": 20311, - "▁slower": 20312, - "both": 20313, - "▁Instituto": 20314, - "▁Historical": 20315, - "▁również": 20316, - "matches": 20317, - "yci": 20318, - "▁espèce": 20319, - "▁Schweizer": 20320, - "NT": 20321, - "SF": 20322, - "acia": 20323, - "forge": 20324, - "Points": 20325, - "numbers": 20326, - "▁falling": 20327, - "▁inheritance": 20328, - "▁Erst": 20329, - "▁customers": 20330, - "▁actu": 20331, - "▁migration": 20332, - "\\'": 20333, - "Plan": 20334, - "Mr": 20335, - "othy": 20336, - "▁upgrad": 20337, - "бира": 20338, - "▁Offic": 20339, - "▁Wait": 20340, - "▁toler": 20341, - "ardon": 20342, - "▁slide": 20343, - ")_": 20344, - "▁став": 20345, - "▁nuclear": 20346, - "▁Bil": 20347, - "owner": 20348, - "▁Harris": 20349, - "Information": 20350, - "▁pó": 20351, - "▁включа": 20352, - "▁nuovo": 20353, - "▁Cav": 20354, - "▁Descri": 20355, - "▁ак": 20356, - "ództ": 20357, - "▁reactjs": 20358, - "▁Adams": 20359, - "▁Alternatively": 20360, - "струк": 20361, - ")`,": 20362, - "substring": 20363, - "▁massive": 20364, - "▁heavily": 20365, - "▁сезо": 20366, - "▁Ana": 20367, - "▁vale": 20368, - "Pad": 20369, - "▁Either": 20370, - "▁rs": 20371, - "anche": 20372, - "▁uploaded": 20373, - "▁(/": 20374, - "▁спор": 20375, - "▁reduction": 20376, - "▁Tokyo": 20377, - "gren": 20378, - "▁migli": 20379, - "▁iterator": 20380, - "stav": 20381, - "▁supporting": 20382, - "▁österreich": 20383, - "▁NSLog": 20384, - "istiques": 20385, - "rimin": 20386, - "MODE": 20387, - "}}}\\": 20388, - "▁explos": 20389, - "оте": 20390, - "▁(„": 20391, - "Sal": 20392, - "▁simplest": 20393, - "▁già": 20394, - "▁тан": 20395, - "▁cyl": 20396, - "bir": 20397, - "▁measurements": 20398, - "Created": 20399, - "erek": 20400, - "lookup": 20401, - "wirtschaft": 20402, - "▁Воло": 20403, - "timer": 20404, - "derr": 20405, - "▁стала": 20406, - "▁scenes": 20407, - "▁persu": 20408, - "liest": 20409, - "▁schedule": 20410, - "tal": 20411, - "лено": 20412, - "▁painting": 20413, - "▁improvement": 20414, - "software": 20415, - "▁governo": 20416, - "▁Hir": 20417, - "Execution": 20418, - "▁Okay": 20419, - "Prop": 20420, - "loster": 20421, - "ніципалі": 20422, - "▁peuvent": 20423, - "olu": 20424, - "▁Фа": 20425, - "rollo": 20426, - "▁коло": 20427, - "▁carrière": 20428, - "▁toggle": 20429, - "▁($\\": 20430, - "▁aggregate": 20431, - "▁Бі": 20432, - "textarea": 20433, - "Ok": 20434, - "itto": 20435, - "▁stim": 20436, - "▁recursion": 20437, - "▁Federation": 20438, - ")_{": 20439, - "ategor": 20440, - "▁distribu": 20441, - "Cloud": 20442, - "▁madre": 20443, - "▁iv": 20444, - "▁Lieutenant": 20445, - "▁substant": 20446, - "▁leaf": 20447, - "▁Kontrola": 20448, - "VA": 20449, - "▁tomb": 20450, - "эн": 20451, - "atoes": 20452, - "▁godine": 20453, - "▁#>": 20454, - "Cert": 20455, - "▁empresa": 20456, - "Props": 20457, - "▁planned": 20458, - "▁randomly": 20459, - "jähr": 20460, - "elem": 20461, - "▁Operation": 20462, - "*`": 20463, - "protocol": 20464, - "()));": 20465, - "wel": 20466, - "▁praw": 20467, - "▁сим": 20468, - "▁wob": 20469, - "▁hace": 20470, - "▁nearest": 20471, - "disable": 20472, - "▁Commun": 20473, - "▁revel": 20474, - "Free": 20475, - "▁brackets": 20476, - "IOException": 20477, - "▁alto": 20478, - "▁marry": 20479, - "▁auc": 20480, - "),\\": 20481, - "▁typo": 20482, - "edad": 20483, - "ará": 20484, - "icator": 20485, - "tatywna": 20486, - "▁buff": 20487, - "orders": 20488, - "▁asynchronous": 20489, - "▁econ": 20490, - "▁feu": 20491, - "▁Iron": 20492, - "▁rising": 20493, - "Radius": 20494, - "clk": 20495, - "▁zweiten": 20496, - "`'": 20497, - "▁uniqu": 20498, - "▁FM": 20499, - "▁Bran": 20500, - "▁flu": 20501, - "▁sensitive": 20502, - "urre": 20503, - "▁Iter": 20504, - "▁Sein": 20505, - "▁diferentes": 20506, - "▁него": 20507, - "chia": 20508, - "▁Anleitung": 20509, - "aturday": 20510, - "▁shorter": 20511, - "▁translated": 20512, - "▁Rés": 20513, - "▁rode": 20514, - "drag": 20515, - "▁lange": 20516, - "Bi": 20517, - "üb": 20518, - "leur": 20519, - "▁ordering": 20520, - "alous": 20521, - "▁Кор": 20522, - "archar": 20523, - "destroy": 20524, - "ervation": 20525, - "]],": 20526, - "AccessorImpl": 20527, - "▁autorytatywna": 20528, - "Sequence": 20529, - "▁proyect": 20530, - "▁bran": 20531, - "▁(+": 20532, - "▁Kab": 20533, - "▁zem": 20534, - "▁Calcul": 20535, - "▁seul": 20536, - "▁Niger": 20537, - "▁chiam": 20538, - "throw": 20539, - "▁Planet": 20540, - "bildung": 20541, - "▁zones": 20542, - "transition": 20543, - "лений": 20544, - "▁mapped": 20545, - "onaut": 20546, - "Pair": 20547, - "ilian": 20548, - "▁Morgan": 20549, - "▁unto": 20550, - "jou": 20551, - "▁hid": 20552, - "▁Meta": 20553, - "▁elles": 20554, - "Lou": 20555, - "rama": 20556, - "geordnet": 20557, - "▁scarcely": 20558, - "▁mint": 20559, - "Focus": 20560, - "▁Alter": 20561, - "▁dio": 20562, - "▁ampl": 20563, - "ièrement": 20564, - "▁исследова": 20565, - "LED": 20566, - "algorithm": 20567, - "▁сайті": 20568, - "▁\"\")": 20569, - "History": 20570, - "pk": 20571, - "▁Whit": 20572, - "▁систем": 20573, - "▁Kirchen": 20574, - "rà": 20575, - "APP": 20576, - "▁<%": 20577, - "antine": 20578, - "▁Disk": 20579, - "conv": 20580, - "welt": 20581, - "▁Fut": 20582, - "▁Nom": 20583, - "ordo": 20584, - "ellij": 20585, - "▁receives": 20586, - "cow": 20587, - "ytu": 20588, - "▁obras": 20589, - "▁purchase": 20590, - "▁earned": 20591, - "▁accessed": 20592, - "axi": 20593, - "▁Mans": 20594, - "ivan": 20595, - "▁tuvo": 20596, - "▁Trace": 20597, - "rimonio": 20598, - "▁desenvol": 20599, - "érique": 20600, - "▁resulted": 20601, - "▁computing": 20602, - "▁inspired": 20603, - "▁Prize": 20604, - "*\"": 20605, - "Comput": 20606, - "▁extensive": 20607, - "èg": 20608, - "▁Portály": 20609, - "▁castle": 20610, - "▁*.": 20611, - "▁photos": 20612, - "▁voet": 20613, - "ONG": 20614, - "▁Alle": 20615, - "▁threaten": 20616, - "stüt": 20617, - "▁albums": 20618, - "▁dense": 20619, - "flat": 20620, - "continu": 20621, - "Subject": 20622, - "▁readonly": 20623, - "Opt": 20624, - "писко": 20625, - "▁Aber": 20626, - "▁Position": 20627, - "▁Today": 20628, - "▁mini": 20629, - "▁Bef": 20630, - "listen": 20631, - "ственного": 20632, - "SUB": 20633, - "ossa": 20634, - "▁Pope": 20635, - "▁Jimmy": 20636, - "▁Дру": 20637, - "ungsseite": 20638, - "▁tren": 20639, - "optim": 20640, - "itsch": 20641, - "▁samt": 20642, - "▁испол": 20643, - "&=": 20644, - "▁Przypisy": 20645, - "▁продол": 20646, - "Cr": 20647, - "ermann": 20648, - "▁матери": 20649, - "▁Hugo": 20650, - "▁Deze": 20651, - "TRUE": 20652, - "▁defeat": 20653, - "▁watched": 20654, - "▁Gent": 20655, - "AUT": 20656, - "orous": 20657, - "▁опреде": 20658, - "orientation": 20659, - "▁distinguished": 20660, - "▁mesmo": 20661, - "▁sli": 20662, - "мена": 20663, - "mittel": 20664, - "gericht": 20665, - "eton": 20666, - "->{": 20667, - "▁wont": 20668, - "▁weg": 20669, - "▁classific": 20670, - "ilus": 20671, - "▁MD": 20672, - "tasks": 20673, - "▁chim": 20674, - "await": 20675, - "▁gang": 20676, - "▁wię": 20677, - "through": 20678, - "▁Russell": 20679, - "▁guessing": 20680, - "▁акт": 20681, - "блі": 20682, - "categories": 20683, - "сут": 20684, - "▁Fen": 20685, - "▁муж": 20686, - "▁newer": 20687, - "▁Async": 20688, - "▁terme": 20689, - ">/": 20690, - "пара": 20691, - "▁Trust": 20692, - "▁Opt": 20693, - "▁dah": 20694, - "▁wonderful": 20695, - "adratkil": 20696, - "▁Гра": 20697, - "mapping": 20698, - "▁discovery": 20699, - "▁BE": 20700, - "Enable": 20701, - "▁Friend": 20702, - "сня": 20703, - "▁controlled": 20704, - "чної": 20705, - "▁contributions": 20706, - "jší": 20707, - "▁Lev": 20708, - "▁francés": 20709, - "▁mic": 20710, - "zik": 20711, - "▁alem": 20712, - "cancel": 20713, - "!'": 20714, - "▁grat": 20715, - "▁Begriffsklär": 20716, - "Camera": 20717, - "ificación": 20718, - "ród": 20719, - "▁Arnold": 20720, - "▁bezeichneter": 20721, - "▁fought": 20722, - "▁deput": 20723, - "▁Drop": 20724, - "tax": 20725, - "dg": 20726, - "▁Hop": 20727, - "GN": 20728, - "▁Kirch": 20729, - "▁Бар": 20730, - "Invoke": 20731, - "▁erhalten": 20732, - "▁veel": 20733, - "▁wordpress": 20734, - "▁INNER": 20735, - "transaction": 20736, - "▁déjà": 20737, - "Fact": 20738, - "▁надмор": 20739, - "▁angularjs": 20740, - "▁át": 20741, - "▁alap": 20742, - "▁Price": 20743, - "▁effet": 20744, - "▁sphere": 20745, - "ClassLoader": 20746, - "▁rugby": 20747, - "▁kingdom": 20748, - "▁Mut": 20749, - "▁кино": 20750, - "▁reward": 20751, - "cit": 20752, - "▁presente": 20753, - "Sto": 20754, - "Character": 20755, - "logs": 20756, - "▁centrale": 20757, - "▁mouv": 20758, - "▁okay": 20759, - "▁aplic": 20760, - "More": 20761, - "ények": 20762, - "▁Köln": 20763, - "nett": 20764, - "▁истории": 20765, - "▁describing": 20766, - "▁soldier": 20767, - "▁Need": 20768, - "Light": 20769, - "▁\"\\<": 20770, - "▁hav": 20771, - "ermo": 20772, - "▁inferior": 20773, - "lea": 20774, - "▁gg": 20775, - "▁конце": 20776, - "fragment": 20777, - "sb": 20778, - "Country": 20779, - "▁vě": 20780, - "▁Beng": 20781, - "▁Это": 20782, - "▁водо": 20783, - "мар": 20784, - "STRING": 20785, - "▁új": 20786, - "multiple": 20787, - "statement": 20788, - "▁involves": 20789, - "▁tecn": 20790, - "Student": 20791, - "gré": 20792, - "▁lean": 20793, - "▁bringing": 20794, - "▁Medical": 20795, - "▁програм": 20796, - "▁Vog": 20797, - "▁жов": 20798, - "▁Spirit": 20799, - "nth": 20800, - "▁standards": 20801, - "▁Profile": 20802, - "▁ez": 20803, - "▁территории": 20804, - "▁stem": 20805, - "uil": 20806, - "▁Og": 20807, - "Btn": 20808, - "nal": 20809, - "▁nearby": 20810, - "▁producing": 20811, - "criv": 20812, - "▁assumptions": 20813, - "▁Spark": 20814, - "▁Lot": 20815, - "itudes": 20816, - "afka": 20817, - "five": 20818, - "atio": 20819, - "▁distinguish": 20820, - "rock": 20821, - "église": 20822, - "▁rappres": 20823, - ">\\<": 20824, - "лій": 20825, - "▁мини": 20826, - "▁intitulé": 20827, - "}}(\\": 20828, - "▁Rout": 20829, - "▁Border": 20830, - "▁overrid": 20831, - "HOST": 20832, - "ritten": 20833, - "say": 20834, - "▁Чи": 20835, - "ichtung": 20836, - "▁straightforward": 20837, - "obb": 20838, - "▁Terra": 20839, - "▁[:": 20840, - "Ben": 20841, - "▁composite": 20842, - ")+\\": 20843, - "▁crown": 20844, - "direction": 20845, - "▁несколько": 20846, - "▁avail": 20847, - "▁purchased": 20848, - "hook": 20849, - "eties": 20850, - "▁fase": 20851, - "▁Rum": 20852, - "▁genom": 20853, - "▁dét": 20854, - "ową": 20855, - "mpeg": 20856, - "▁Ін": 20857, - "desktop": 20858, - "▁injection": 20859, - "agle": 20860, - "▁Edd": 20861, - "_{(": 20862, - "▁Hem": 20863, - "utos": 20864, - "proj": 20865, - "▁superficie": 20866, - "Plot": 20867, - "▁Docker": 20868, - "ätz": 20869, - "kreich": 20870, - "▁unclear": 20871, - "▁Unity": 20872, - "▁streams": 20873, - "вид": 20874, - "▁simplified": 20875, - "Fill": 20876, - "▁sant": 20877, - "▁Kommun": 20878, - "▁duc": 20879, - "▁две": 20880, - "▁obs": 20881, - "žit": 20882, - "▁Janeiro": 20883, - "бя": 20884, - "▁presso": 20885, - "▁Ministry": 20886, - "▁burst": 20887, - "▁reaching": 20888, - "liter": 20889, - "▁responses": 20890, - "▁Eug": 20891, - "▁sod": 20892, - "▁Cord": 20893, - "▁Perm": 20894, - "parts": 20895, - "цима": 20896, - "variables": 20897, - "▁forgotten": 20898, - "Fern": 20899, - "ostęp": 20900, - "vl": 20901, - "▁См": 20902, - "kim": 20903, - "ając": 20904, - "наль": 20905, - "гле": 20906, - "helper": 20907, - "dup": 20908, - "euw": 20909, - "fra": 20910, - "ellite": 20911, - "anya": 20912, - "▁reign": 20913, - "gesamt": 20914, - "седа": 20915, - "▁Ryan": 20916, - "▁formatted": 20917, - "▁Borg": 20918, - "walk": 20919, - "▁ал": 20920, - "agnostics": 20921, - "▁Cape": 20922, - "▁Franco": 20923, - "▁fug": 20924, - ":)": 20925, - "юз": 20926, - "Fetch": 20927, - "▁roughly": 20928, - "▁Mis": 20929, - "uetooth": 20930, - "▁Venezuela": 20931, - "▁astronom": 20932, - "\")`": 20933, - "ombres": 20934, - "▁которой": 20935, - "óp": 20936, - "owed": 20937, - "HR": 20938, - "▁Camer": 20939, - "кие": 20940, - "parison": 20941, - "▁Bij": 20942, - "templates": 20943, - "environment": 20944, - "ização": 20945, - "▁ér": 20946, - "▁plenty": 20947, - "▁TypeError": 20948, - "▁forty": 20949, - "коном": 20950, - "▁Sed": 20951, - "▁thats": 20952, - "▁gravity": 20953, - "▁spiritual": 20954, - "▁duplicates": 20955, - "▁encryption": 20956, - "▁reven": 20957, - "getInstance": 20958, - "ällor": 20959, - "disk": 20960, - "▁thro": 20961, - "▁Nak": 20962, - "▁poł": 20963, - "▁heraus": 20964, - "invalid": 20965, - "sBy": 20966, - "Boot": 20967, - "▁bucket": 20968, - "▁Parse": 20969, - "hex": 20970, - "Conne": 20971, - "▁Computer": 20972, - "zyk": 20973, - "▁induced": 20974, - "▁Bruno": 20975, - "▁addressed": 20976, - "mania": 20977, - "▁inclus": 20978, - "ounced": 20979, - "scriptsize": 20980, - "▁Epis": 20981, - "▁vocal": 20982, - "▁Jonathan": 20983, - "ум": 20984, - "staden": 20985, - "▁Children": 20986, - "пей": 20987, - "Italia": 20988, - "reibung": 20989, - "▁nost": 20990, - "▁ещё": 20991, - "▁Werke": 20992, - "▁actress": 20993, - "▁Minnesota": 20994, - "rike": 20995, - "▁tek": 20996, - "▁primeira": 20997, - "▁frat": 20998, - "▁Configuration": 20999, - "▁bid": 21000, - "trigger": 21001, - "Contents": 21002, - "▁constantly": 21003, - "!!!": 21004, - "▁dread": 21005, - "▁hundreds": 21006, - "istische": 21007, - "▁cardinal": 21008, - "TABLE": 21009, - "▁estos": 21010, - "assoc": 21011, - "gray": 21012, - "▁Schloss": 21013, - "▁sche": 21014, - "cong": 21015, - "▁koji": 21016, - "ètes": 21017, - "▁Era": 21018, - "omi": 21019, - "▁SR": 21020, - "▁wrapped": 21021, - "▁trunc": 21022, - "▁ah": 21023, - "egos": 21024, - "oki": 21025, - "mouth": 21026, - "logging": 21027, - "▁fasc": 21028, - "▁Sample": 21029, - "▁conte": 21030, - "▁villa": 21031, - "comments": 21032, - "▁batal": 21033, - "▁García": 21034, - "▁Norte": 21035, - "▁wechsel": 21036, - "▁Museo": 21037, - "▁enfants": 21038, - "▁whisper": 21039, - "nake": 21040, - "▁jednak": 21041, - "lês": 21042, - "enders": 21043, - "▁äl": 21044, - "▁VB": 21045, - "▁cookies": 21046, - "zeti": 21047, - "atum": 21048, - "▁dedu": 21049, - "▁arranged": 21050, - "laz": 21051, - "▁cuenta": 21052, - "yml": 21053, - "▁flav": 21054, - "MR": 21055, - "emet": 21056, - "біль": 21057, - "cmp": 21058, - "ituto": 21059, - "zett": 21060, - "▁envi": 21061, - "▁kot": 21062, - "$:": 21063, - "upper": 21064, - "▁Alberto": 21065, - "kb": 21066, - "Anal": 21067, - "ört": 21068, - "▁[-": 21069, - "▁führte": 21070, - "iah": 21071, - "▁Tun": 21072, - "▁искус": 21073, - "uwe": 21074, - "ispecies": 21075, - "Pub": 21076, - "Sync": 21077, - "▁Colombia": 21078, - "akers": 21079, - "▁Imperial": 21080, - "oving": 21081, - "▁intelligence": 21082, - "▁equipment": 21083, - "ein": 21084, - "dagger": 21085, - "▁Edge": 21086, - "▁Республи": 21087, - "adratkilometer": 21088, - "▁Anto": 21089, - "▁charges": 21090, - "▁Ocean": 21091, - "▁simplify": 21092, - "▁miesz": 21093, - "running": 21094, - "▁Lac": 21095, - "genommen": 21096, - "▁representative": 21097, - "=.": 21098, - "▁Pred": 21099, - "▁spite": 21100, - "ciale": 21101, - "▁nave": 21102, - "▁extens": 21103, - "▁neutral": 21104, - "▁которая": 21105, - ".::": 21347, - "шёл": 21348, - "▁principales": 21349, - "▁цар": 21350, - "▁tied": 21351, - "▁alta": 21352, - "▁Cit": 21353, - "lined": 21354, - "major": 21355, - "▁punk": 21356, - "▁cinco": 21357, - "ický": 21358, - "▁raggi": 21359, - "typen": 21360, - "тельство": 21361, - "▁conference": 21362, - "▁сіль": 21363, - "▁heut": 21364, - "iš": 21365, - "ета": 21366, - "velope": 21367, - "hbox": 21368, - "nown": 21369, - "▁zar": 21370, - "ktiv": 21371, - "ieß": 21372, - "▁стре": 21373, - "▁EventArgs": 21374, - "▁Ira": 21375, - "▁VBA": 21376, - "▁Santo": 21377, - "▁Fach": 21378, - "▁FF": 21379, - "▁Raymond": 21380, - "мец": 21381, - "implementation": 21382, - "▁brothers": 21383, - "▁côté": 21384, - "▁controllers": 21385, - "▁Cle": 21386, - "▁cable": 21387, - "▁confer": 21388, - "▁{-": 21389, - "▁czł": 21390, - "▁Filip": 21391, - "atorio": 21392, - "▁wicht": 21393, - "▁beaucoup": 21394, - "▁Lit": 21395, - "▁sessions": 21396, - "▁Success": 21397, - "▁routing": 21398, - "niu": 21399, - "▁Vice": 21400, - "▁krit": 21401, - "updated": 21402, - "▁Invalid": 21403, - "▁Mannschaft": 21404, - "▁aos": 21405, - "▁tudi": 21406, - "▁després": 21407, - "qua": 21408, - "Contains": 21409, - "Company": 21410, - "▁persona": 21411, - "adapter": 21412, - "сни": 21413, - "▁voj": 21414, - "▁escri": 21415, - "agt": 21416, - "▁ство": 21417, - "▁distrito": 21418, - "apan": 21419, - "▁aspects": 21420, - "▁zal": 21421, - ")^{\\": 21422, - "▁système": 21423, - "▁ана": 21424, - "iums": 21425, - "▁premiers": 21426, - "▁поэ": 21427, - "▁mère": 21428, - "▁Gun": 21429, - "aping": 21430, - "▁Rain": 21431, - "▁igual": 21432, - "▁processor": 21433, - "')`": 21434, - "bling": 21435, - "▁mism": 21436, - "bráz": 21437, - "▁closest": 21438, - "▁Reading": 21439, - "▁попу": 21440, - "cono": 21441, - "▁kult": 21442, - "▁!!": 21443, - "▁Expression": 21444, - "▁induction": 21445, - "ahren": 21446, - "▁cp": 21447, - "▁violence": 21448, - "ientí": 21449, - "cente": 21450, - "▁Dob": 21451, - "jack": 21452, - "song": 21453, - "bucket": 21454, - "▁deport": 21455, - "кими": 21456, - "lm": 21457, - "▁innoc": 21458, - "Changes": 21459, - "▁prohib": 21460, - "angol": 21461, - "iseconds": 21462, - "▁пор": 21463, - "▁hip": 21464, - "▁pů": 21465, - "endorf": 21466, - "▁scheduled": 21467, - "▁Flug": 21468, - "acyj": 21469, - "▁Films": 21470, - "athedral": 21471, - "Power": 21472, - "ardin": 21473, - "kap": 21474, - "icken": 21475, - "resize": 21476, - "eus": 21477, - "rr": 21478, - "лян": 21479, - "▁Hav": 21480, - "▁ora": 21481, - "FROM": 21482, - "лося": 21483, - "▁terug": 21484, - "▁Width": 21485, - "▁accepts": 21486, - "бен": 21487, - "▁mich": 21488, - "▁Czech": 21489, - "▁Bedeut": 21490, - "▁вид": 21491, - "ôme": 21492, - "▁Loop": 21493, - "spect": 21494, - "ük": 21495, - "eston": 21496, - "▁slot": 21497, - "▁została": 21498, - "▁Charlotte": 21499, - "▁составляет": 21500, - "▁Promise": 21501, - "▁epo": 21502, - "▁diction": 21503, - "▁Franklin": 21504, - "▁Riv": 21505, - "руг": 21506, - "cida": 21507, - "▁Explorer": 21508, - "cookie": 21509, - "▁formerly": 21510, - "▁municipality": 21511, - "▁Stefan": 21512, - "lists": 21513, - "COMP": 21514, - "Len": 21515, - "▁Staat": 21516, - "▁NBA": 21517, - "dens": 21518, - "▁oscill": 21519, - "!.": 21520, - "▁PO": 21521, - "ône": 21522, - "eses": 21523, - "▁националь": 21524, - "voor": 21525, - "▁копи": 21526, - "▁пози": 21527, - "ulu": 21528, - "Constraint": 21529, - "▁своей": 21530, - "▁algebraic": 21531, - "чня": 21532, - "Dict": 21533, - "▁appearing": 21534, - "▁prav": 21535, - "▁Universal": 21536, - "Browser": 21537, - "▁Singap": 21538, - "ennessee": 21539, - "]_": 21540, - "▁Sof": 21541, - "▁Cad": 21542, - "ounce": 21543, - "▁costs": 21544, - "]{\\": 21545, - "../../": 21546, - "ській": 21547, - "ühl": 21548, - "iety": 21549, - "пр": 21550, - "▁interpreted": 21551, - "ajn": 21552, - "colog": 21553, - "YS": 21554, - "mans": 21555, - "▁metrics": 21556, - "▁registr": 21557, - "istance": 21558, - "▁Поль": 21559, - "▁anonymous": 21560, - "▁institutions": 21561, - "▁zdob": 21562, - "prüng": 21563, - "▁арти": 21564, - "▁estat": 21565, - "acci": 21566, - "▁academic": 21567, - "▁chiesa": 21568, - "▁Gian": 21569, - "contrib": 21570, - "umed": 21571, - "▁Gir": 21572, - "▁baseball": 21573, - "numeric": 21574, - "Generator": 21575, - "GM": 21576, - "▁tiny": 21577, - "▁distinction": 21578, - "гер": 21579, - "▁rust": 21580, - "▁FIFA": 21581, - "▁Properties": 21582, - "^-": 21583, - "▁экс": 21584, - "▁Stanis": 21585, - "▁Ajax": 21586, - "escape": 21587, - "▁consp": 21588, - "▁Chen": 21589, - "▁Naval": 21590, - "Bit": 21591, - "▁bât": 21592, - "скими": 21593, - "drive": 21594, - "▁Round": 21595, - "photo": 21596, - "▁Level": 21597, - "▁geg": 21598, - "Tom": 21599, - "▁Mobile": 21600, - "▁Trop": 21601, - "Direction": 21602, - "isan": 21603, - ")^{-": 21604, - "▁Setting": 21605, - "▁Probably": 21606, - "лья": 21607, - "▁assets": 21608, - "▁atte": 21609, - "▁bulk": 21610, - "ést": 21611, - "▁wing": 21612, - "nius": 21613, - "▁wins": 21614, - "▁lud": 21615, - "ushing": 21616, - "▁deven": 21617, - "ограф": 21618, - "burger": 21619, - "▁embar": 21620, - "FilterChain": 21621, - "▁tum": 21622, - "▁öss": 21623, - "▁nommé": 21624, - "▁pir": 21625, - "▁luc": 21626, - "dbo": 21627, - "agues": 21628, - "▁alcan": 21629, - "ouwen": 21630, - "▁Stanley": 21631, - "циали": 21632, - "▁grown": 21633, - "▁preserved": 21634, - "▁solar": 21635, - "▁Население": 21636, - "▁performances": 21637, - "▁Cow": 21638, - "▁engineering": 21639, - "▁scaling": 21640, - "atomic": 21641, - "endance": 21642, - "▁ace": 21643, - "ängen": 21644, - "Anim": 21645, - "phase": 21646, - "zburg": 21647, - "Old": 21648, - "▁servant": 21649, - "▁gemeins": 21650, - "▁Observ": 21651, - "translate": 21652, - "▁covering": 21653, - "▁están": 21654, - "▁problema": 21655, - "▁установ": 21656, - "▁llev": 21657, - "▁czerw": 21658, - "éal": 21659, - "mez": 21660, - "REE": 21661, - "ERR": 21662, - "тури": 21663, - "segu": 21664, - "▁profit": 21665, - "▁multiplication": 21666, - "kommen": 21667, - "▁faut": 21668, - "▁candidates": 21669, - "▁Uri": 21670, - "▁Laura": 21671, - "▁sap": 21672, - "▁висини": 21673, - "▁Between": 21674, - "fade": 21675, - "▁reserved": 21676, - "▁involving": 21677, - "▁Mare": 21678, - "▁Container": 21679, - "▁назна": 21680, - "▁DEBUG": 21681, - "▁hurt": 21682, - "▁Polski": 21683, - "▁lux": 21684, - "CB": 21685, - "wach": 21686, - "▁период": 21687, - "▁Catherine": 21688, - "▁ganz": 21689, - "uchte": 21690, - "▁consumer": 21691, - "▁crossed": 21692, - "ordered": 21693, - "away": 21694, - "techn": 21695, - "▁subscri": 21696, - "▁shortcut": 21697, - "▁производ": 21698, - "▁simultaneously": 21699, - "▁rating": 21700, - "▁Kings": 21701, - "▁relationships": 21702, - "▁Sex": 21703, - "▁Tool": 21704, - "agh": 21705, - "acters": 21706, - "logger": 21707, - "homme": 21708, - "engers": 21709, - "▁Ri": 21710, - "earance": 21711, - "▁appearances": 21712, - "Real": 21713, - "▁passe": 21714, - "iclopedia": 21715, - "чко": 21716, - "terre": 21717, - "▁Ontario": 21718, - "▁переда": 21719, - "footer": 21720, - "archivi": 21721, - "ifiz": 21722, - "▁Protest": 21723, - "▁LIN": 21724, - "unnable": 21725, - "▁centuries": 21726, - "▁Bayer": 21727, - "цію": 21728, - "овин": 21729, - "▁Andrea": 21730, - "selection": 21731, - "▁calm": 21732, - "▁modification": 21733, - "▁shortly": 21734, - "inaire": 21735, - "▁fusion": 21736, - "▁feelings": 21737, - "PK": 21738, - "▁Roberto": 21739, - "гне": 21740, - "Shared": 21741, - "▁mehrere": 21742, - "▁Niem": 21743, - "omp": 21744, - "Env": 21745, - "▁Article": 21746, - "▁Pok": 21747, - "▁VARCHAR": 21748, - "▁dil": 21749, - "▁afford": 21750, - "▁confront": 21751, - "owanie": 21752, - "▁ministre": 21753, - "adesh": 21754, - "▁Poly": 21755, - "▁Распо": 21756, - "▁Gruppe": 21757, - "▁Helen": 21758, - "▁cc": 21759, - "▁portrait": 21760, - "bew": 21761, - "▁beta": 21762, - "▁Wir": 21763, - "▁Audio": 21764, - "▁(\\<": 21765, - "riority": 21766, - "▁nit": 21767, - "▁представи": 21768, - "▁Vie": 21769, - "▁wür": 21770, - "▁Hold": 21771, - "▁Sad": 21772, - "▁Tochter": 21773, - "▁oltre": 21774, - "▁Activ": 21775, - "▁Jason": 21776, - "▁wieku": 21777, - "▁regards": 21778, - "▁taste": 21779, - "agnostic": 21780, - "лася": 21781, - "▁Self": 21782, - "▁apr": 21783, - "▁Deep": 21784, - "scop": 21785, - "Activ": 21786, - "▁typedef": 21787, - "ContentView": 21788, - "compiler": 21789, - "▁Roth": 21790, - "xc": 21791, - "зик": 21792, - "▁largo": 21793, - "▁Rena": 21794, - "heiten": 21795, - "▁platforms": 21796, - "ulla": 21797, - "▁glance": 21798, - "▁mascul": 21799, - "▁mex": 21800, - "▁Jorge": 21801, - "▁funcion": 21802, - "choose": 21803, - "▁reviews": 21804, - "▁Alban": 21805, - "▁Glo": 21806, - "▁Species": 21807, - "▁Fame": 21808, - "▁Roll": 21809, - "▁Puerto": 21810, - "▁\\)": 21811, - "ymnas": 21812, - "environ": 21813, - "▁iphone": 21814, - "▁Wrestling": 21815, - "ały": 21816, - "▁Indiana": 21817, - "Radio": 21818, - "VS": 21819, - "▁independence": 21820, - "тай": 21821, - "▁decode": 21822, - "White": 21823, - "▁journ": 21824, - "ículo": 21825, - "▁Barb": 21826, - "▁Evangel": 21827, - "▁Andy": 21828, - "▁Welcome": 21829, - "▁Device": 21830, - "gef": 21831, - "▁remembered": 21832, - "▁variations": 21833, - "▁Adolf": 21834, - "itaine": 21835, - "▁надморској": 21836, - "▁steam": 21837, - "▁concerns": 21838, - "▁`|": 21839, - "▁био": 21840, - "тельства": 21841, - "▁quattro": 21842, - "extend": 21843, - "▁trabajo": 21844, - "enberg": 21845, - "▁scenarios": 21846, - "ânt": 21847, - "▁kommt": 21848, - "▁domestic": 21849, - "▁Basketball": 21850, - "▁Cooper": 21851, - "sock": 21852, - "держа": 21853, - "={\\": 21854, - "▁inici": 21855, - "▁Phill": 21856, - "▁генерал": 21857, - "archiviato": 21858, - "ън": 21859, - "Rob": 21860, - "▁tong": 21861, - "▁characteristics": 21862, - "▁amaz": 21863, - "▁Mode": 21864, - "▁inaugur": 21865, - "wehr": 21866, - "rant": 21867, - "ionali": 21868, - "▁Mother": 21869, - "Ma": 21870, - "équ": 21871, - "▁Kelly": 21872, - "cile": 21873, - "▁besteht": 21874, - "▁estimates": 21875, - "ruguay": 21876, - "▁Ans": 21877, - "Mad": 21878, - "▁нав": 21879, - "▁données": 21880, - "▁tropical": 21881, - "▁Several": 21882, - "elter": 21883, - "▁Pho": 21884, - "kem": 21885, - "▁Customer": 21886, - "▁складі": 21887, - "▁courses": 21888, - "Platform": 21889, - "navbar": 21890, - "learning": 21891, - "▁Swedish": 21892, - "▁zast": 21893, - "▁Lig": 21894, - "management": 21895, - "▁lod": 21896, - "uffle": 21897, - "Texture": 21898, - "arga": 21899, - "átum": 21900, - "▁DDR": 21901, - "нії": 21902, - "▁Société": 21903, - "▁domains": 21904, - "▁permitted": 21905, - "▁externe": 21906, - "▁quelque": 21907, - "vt": 21908, - "yman": 21909, - "▁Ward": 21910, - "▁agli": 21911, - "▁andra": 21912, - "Snapshot": 21913, - "▁må": 21914, - "▁yeah": 21915, - "дена": 21916, - "ępu": 21917, - "askell": 21918, - "▁République": 21919, - "inject": 21920, - "▁';": 21921, - "änn": 21922, - "▁zelf": 21923, - "▁Entwicklung": 21924, - "ária": 21925, - "onomy": 21926, - "▁svil": 21927, - "iese": 21928, - "▁conser": 21929, - "▁nim": 21930, - "▁rész": 21931, - "▁Итали": 21932, - "▁partici": 21933, - "▁Lion": 21934, - "sr": 21935, - "always": 21936, - "▁Владимир": 21937, - "ческие": 21938, - "[,": 21939, - "▁Definition": 21940, - "nant": 21941, - "oem": 21942, - "Ids": 21943, - "▁вне": 21944, - "▁[...]": 21945, - "▁направ": 21946, - "▁GO": 21947, - "▁års": 21948, - "▁után": 21949, - "▁outros": 21950, - "▁región": 21951, - "▁Mong": 21952, - "▁filme": 21953, - "▁triple": 21954, - "▁spons": 21955, - "Develop": 21956, - "▁outcome": 21957, - "▁Bible": 21958, - "▁имени": 21959, - "Canvas": 21960, - "пута": 21961, - "curr": 21962, - "ások": 21963, - "){\\": 21964, - "ningar": 21965, - "`;": 21966, - "▁Flash": 21967, - ":#": 21968, - "must": 21969, - "cpu": 21970, - "▁formats": 21971, - "Har": 21972, - "▁episodio": 21973, - "▁Rosa": 21974, - "▁dès": 21975, - "emit": 21976, - "riteria": 21977, - "Annotation": 21978, - "Flag": 21979, - "gmail": 21980, - "▁Normal": 21981, - "ollary": 21982, - "▁foss": 21983, - "▁concurrent": 21984, - "▁crashes": 21985, - "▁виде": 21986, - "▁Minor": 21987, - "▁Sit": 21988, - "▁SN": 21989, - "▁scar": 21990, - "▁femin": 21991, - "▁specification": 21992, - "soap": 21993, - "▁operate": 21994, - "▁principalmente": 21995, - "▁aust": 21996, - "ibile": 21997, - "itime": 21998, - "лежа": 21999, - "iframe": 22000, - "▁concepts": 22001, - "▁tack": 22002, - "▁viss": 22003, - "▁carbon": 22004, - "tery": 22005, - "▁naming": 22006, - "▁Orts": 22007, - "idente": 22008, - "▁Capit": 22009, - "▁expr": 22010, - "▁насељу": 22011, - "▁Selected": 22012, - "▁hinter": 22013, - "▁iframe": 22014, - "▁zb": 22015, - "indexPath": 22016, - "coll": 22017, - "▁wrześ": 22018, - "▁acht": 22019, - "▁gradually": 22020, - "▁чу": 22021, - "зей": 22022, - "haft": 22023, - "▁tran": 22024, - "▁laquelle": 22025, - "ytics": 22026, - "IDE": 22027, - "▁pygame": 22028, - "▁Package": 22029, - "▁className": 22030, - "Bal": 22031, - "perl": 22032, - "тина": 22033, - "Occ": 22034, - "▁infrastr": 22035, - "▁Champions": 22036, - "▁classic": 22037, - "▁Raw": 22038, - "▁partially": 22039, - "▁Ted": 22040, - "▁stolet": 22041, - "rained": 22042, - "WHERE": 22043, - "▁vall": 22044, - "▁Julia": 22045, - "zat": 22046, - "▁surrounded": 22047, - "SEE": 22048, - "▁walking": 22049, - "Bad": 22050, - "FOR": 22051, - "contre": 22052, - "▁Palest": 22053, - "ático": 22054, - "▁engineer": 22055, - "▁partners": 22056, - "▁Jews": 22057, - "ilers": 22058, - "▁cerem": 22059, - "▁interactions": 22060, - "acu": 22061, - "sty": 22062, - "▁Princess": 22063, - "sharp": 22064, - "▁Singles": 22065, - "▁їх": 22066, - "chez": 22067, - "Receiver": 22068, - "▁patients": 22069, - "stringify": 22070, - "▁competed": 22071, - "bey": 22072, - "$;": 22073, - "▁Bd": 22074, - "hadoop": 22075, - "▁División": 22076, - "öld": 22077, - "▁restricted": 22078, - "▁commander": 22079, - "▁Highway": 22080, - "▁Česk": 22081, - "▁myth": 22082, - "чан": 22083, - "raham": 22084, - "▁enqu": 22085, - "▁pog": 22086, - "▁comuna": 22087, - "▁println": 22088, - "▁круп": 22089, - "▁depois": 22090, - "▁seats": 22091, - "▁neighb": 22092, - "циона": 22093, - "agine": 22094, - "▁clothes": 22095, - "▁Prior": 22096, - "Brain": 22097, - "FFFF": 22098, - "':'": 22099, - "features": 22100, - "▁filesystem": 22101, - "▁singles": 22102, - "▁Melbourne": 22103, - "▁destruction": 22104, - "▁Lyon": 22105, - "▁Insel": 22106, - "Nav": 22107, - "▁Replace": 22108, - "▁lé": 22109, - "Who": 22110, - "▁Estad": 22111, - "▁dimensional": 22112, - "▁öff": 22113, - "▁grands": 22114, - "джа": 22115, - "plane": 22116, - "ності": 22117, - "▁Origin": 22118, - "WI": 22119, - "änner": 22120, - "▁Cry": 22121, - "ITION": 22122, - "▁född": 22123, - "▁cultura": 22124, - "▁Rank": 22125, - "▁vuel": 22126, - "▁zag": 22127, - "▁Maxim": 22128, - "ону": 22129, - "()))": 22130, - "Raw": 22131, - "kirche": 22132, - "▁además": 22133, - "▁tie": 22134, - "▁Style": 22135, - "сков": 22136, - "istant": 22137, - "olph": 22138, - "▁Zür": 22139, - "▁Info": 22140, - "DOM": 22141, - "usc": 22142, - "nahm": 22143, - "▁Федера": 22144, - "▁Fot": 22145, - "▁specifying": 22146, - "▁titolo": 22147, - "▁Boys": 22148, - "iech": 22149, - "Place": 22150, - "▁Hoff": 22151, - "▁cached": 22152, - "валь": 22153, - "isher": 22154, - "rolling": 22155, - "opens": 22156, - "▁hr": 22157, - "------": 22158, - "▁maggior": 22159, - "▁transactions": 22160, - "▁criminal": 22161, - "▁retre": 22162, - "▁Campbell": 22163, - ")):": 22164, - "▁ned": 22165, - "Pager": 22166, - "▁Hero": 22167, - "(__": 22168, - "▁uncle": 22169, - "▁reaches": 22170, - "arto": 22171, - "▁hello": 22172, - "Preferences": 22173, - "▁затем": 22174, - "Named": 22175, - "▁readers": 22176, - "хі": 22177, - "kern": 22178, - "▁упо": 22179, - "кин": 22180, - "▁lav": 22181, - "▁nob": 22182, - "▁secre": 22183, - "▁ListView": 22184, - "вания": 22185, - "▁Mayor": 22186, - "borough": 22187, - "▁filosof": 22188, - "нення": 22189, - "фри": 22190, - "▁patr": 22191, - "FM": 22192, - "▁acid": 22193, - "▁Salvador": 22194, - "▁abb": 22195, - "▁Graham": 22196, - "policy": 22197, - "negative": 22198, - "ńskiego": 22199, - "▁Heimat": 22200, - "▁dazu": 22201, - "▁mely": 22202, - "▁ride": 22203, - "▁duties": 22204, - "overy": 22205, - "▁Proposition": 22206, - "▁Paolo": 22207, - "/'": 22208, - "▁Mau": 22209, - "imenti": 22210, - "Saint": 22211, - "father": 22212, - "▁equilib": 22213, - "phony": 22214, - "▁clas": 22215, - "▁отли": 22216, - "▁Buffered": 22217, - "rek": 22218, - "▁mitt": 22219, - "▁Hur": 22220, - "▁Harvard": 22221, - "▁demonstrate": 22222, - "uario": 22223, - "▁dolor": 22224, - "▁rejected": 22225, - "▁Müller": 22226, - "▁nac": 22227, - "▁Belle": 22228, - "▁gathered": 22229, - "nr": 22230, - "frika": 22231, - "öll": 22232, - "▁chemical": 22233, - "nig": 22234, - "▁calc": 22235, - "▁DEFAULT": 22236, - "▁philosophy": 22237, - "▁Laravel": 22238, - "▁alignment": 22239, - "EV": 22240, - "eor": 22241, - "▁dzie": 22242, - "▁mest": 22243, - "▁Io": 22244, - "CRE": 22245, - "зви": 22246, - "▁Medic": 22247, - "▁nä": 22248, - "▁zab": 22249, - "▁Slov": 22250, - "utlich": 22251, - "▁amplit": 22252, - "▁Frankreich": 22253, - "▁кіль": 22254, - "IND": 22255, - "execution": 22256, - "▁Karriere": 22257, - "dostęp": 22258, - "▁réal": 22259, - "engo": 22260, - "▁severe": 22261, - "зма": 22262, - "▁турни": 22263, - "▁Carter": 22264, - "▁Robinson": 22265, - "getElementsBy": 22266, - "▁prototype": 22267, - "▁japon": 22268, - "führung": 22269, - "▁consegu": 22270, - "▁studi": 22271, - "▁lire": 22272, - "▁schließ": 22273, - "▁Buff": 22274, - "▁redund": 22275, - "▁ern": 22276, - "▁myster": 22277, - "▁proprio": 22278, - "ateful": 22279, - "▁Parent": 22280, - "▁ladies": 22281, - "rack": 22282, - "тика": 22283, - "enburg": 22284, - "▁качестве": 22285, - "▁EF": 22286, - "▁stam": 22287, - "▁nueva": 22288, - "▁filtered": 22289, - "reten": 22290, - "▁Ian": 22291, - "▁Matthew": 22292, - "kih": 22293, - "▁ő": 22294, - "▁компози": 22295, - "▁forever": 22296, - "oires": 22297, - ":\\\\": 22298, - "▁études": 22299, - "▁soup": 22300, - "▁pleased": 22301, - ")}(": 22302, - "▁Stop": 22303, - "Setter": 22304, - "▁Help": 22305, - "▁bars": 22306, - "▁ERR": 22307, - "▁(?": 22308, - "▁poetry": 22309, - "▁Util": 22310, - "AK": 22311, - "▁fick": 22312, - "▁IM": 22313, - "▁proud": 22314, - "носи": 22315, - "▁muerte": 22316, - "▁Palmarès": 22317, - "▁Nas": 22318, - "щих": 22319, - "▁quer": 22320, - "▁apenas": 22321, - "]['": 22322, - "▁Konst": 22323, - "пон": 22324, - "▁Schiff": 22325, - "▁mp": 22326, - "▁благо": 22327, - "fram": 22328, - "▁household": 22329, - "▁tract": 22330, - "encoding": 22331, - "▁undert": 22332, - "▁Aug": 22333, - "ован": 22334, - "▁Arten": 22335, - "▁invoked": 22336, - "▁dynast": 22337, - "▁fleet": 22338, - "чество": 22339, - "▁Murray": 22340, - "▁gut": 22341, - "elihood": 22342, - "▁SSH": 22343, - "ответ": 22344, - "▁personally": 22345, - "прия": 22346, - "▁financi": 22347, - "▁Thompson": 22348, - "alu": 22349, - "identity": 22350, - "▁Grab": 22351, - "addle": 22352, - "Ét": 22353, - "▁Tob": 22354, - "▁verlor": 22355, - "▁Sainte": 22356, - "▁dop": 22357, - "▁вере": 22358, - "___": 22359, - "▁promotion": 22360, - "▁-=": 22361, - "▁отде": 22362, - "▁ambigu": 22363, - "ORDER": 22364, - "▁Communic": 22365, - "▁imply": 22366, - "oned": 22367, - "cluding": 22368, - "▁collision": 22369, - "▁fragments": 22370, - "scription": 22371, - "▁'{": 22372, - "лях": 22373, - "▁hans": 22374, - "ус": 22375, - "wire": 22376, - "namespace": 22377, - "▁sword": 22378, - "refresh": 22379, - "▁kwam": 22380, - "zs": 22381, - "commons": 22382, - "▁cosa": 22383, - "▁regime": 22384, - "grep": 22385, - "▁dioc": 22386, - "▁Contact": 22387, - "▁estas": 22388, - "▁Stewart": 22389, - "▁viele": 22390, - "това": 22391, - "▁Ran": 22392, - "annes": 22393, - "iday": 22394, - "▁snapshot": 22395, - "orrow": 22396, - "▁zač": 22397, - "▁участие": 22398, - "▁promised": 22399, - "Assembly": 22400, - "▁championship": 22401, - "▁Define": 22402, - "▁eren": 22403, - "▁ново": 22404, - "▁thinks": 22405, - "Age": 22406, - "▁gev": 22407, - "varchar": 22408, - "ività": 22409, - "compos": 22410, - "▁Mutter": 22411, - "CONT": 22412, - "armée": 22413, - "agnet": 22414, - "▁Brow": 22415, - ".—": 22416, - "▁Television": 22417, - "▁Для": 22418, - "▁vm": 22419, - "▁ordin": 22420, - "▁Михай": 22421, - "▁aproxim": 22422, - "')->": 22423, - "▁zoo": 22424, - "ippi": 22425, - "▁sino": 22426, - "▁Québec": 22427, - "rages": 22428, - "äck": 22429, - "eing": 22430, - "arlo": 22431, - "pios": 22432, - "▁Chan": 22433, - "▁elli": 22434, - "▁incons": 22435, - "gestellt": 22436, - "ppers": 22437, - "Jean": 22438, - "anstalt": 22439, - "▁Dance": 22440, - "▁toen": 22441, - "▁decis": 22442, - "▁Резу": 22443, - "▁officially": 22444, - "ätze": 22445, - "▁доро": 22446, - "▁enumer": 22447, - "▁troisième": 22448, - "typ": 22449, - "offs": 22450, - "боль": 22451, - "odn": 22452, - "▁Zar": 22453, - "▁друго": 22454, - "quia": 22455, - "▁Nicolas": 22456, - "пису": 22457, - "▁mob": 22458, - "paces": 22459, - "нього": 22460, - "Alg": 22461, - "éroï": 22462, - "Errors": 22463, - "▁гре": 22464, - "▁женщи": 22465, - "inch": 22466, - "▁Korean": 22467, - "▁Apost": 22468, - "▁Liver": 22469, - "▁elementary": 22470, - "▁DI": 22471, - "виси": 22472, - "▁soil": 22473, - "▁DLL": 22474, - "▁risp": 22475, - "▁Shakespe": 22476, - "▁Gaussian": 22477, - "▁Kurt": 22478, - "Vertex": 22479, - "ebol": 22480, - "organisation": 22481, - "ären": 22482, - "▁YES": 22483, - "CUR": 22484, - "▁началь": 22485, - "▁постро": 22486, - "▁Luigi": 22487, - "▁caching": 22488, - "preventDefault": 22489, - "amd": 22490, - "▁Vit": 22491, - "subst": 22492, - "▁строи": 22493, - "▁Campion": 22494, - "chr": 22495, - "фере": 22496, - "▁Список": 22497, - "NF": 22498, - "▁cím": 22499, - "▁hé": 22500, - "rebbe": 22501, - "ocy": 22502, - "below": 22503, - "▁bylo": 22504, - "▁Уи": 22505, - "▁\\({\\": 22506, - "▁`:": 22507, - "giore": 22508, - "San": 22509, - "▁Gate": 22510, - "▁вс": 22511, - "▁olimp": 22512, - "▁Matrix": 22513, - "▁hearing": 22514, - "rii": 22515, - "tfrac": 22516, - "▁allemand": 22517, - "▁Vue": 22518, - "лн": 22519, - "▁compiling": 22520, - "▁Ens": 22521, - "▁investigation": 22522, - "▁Ax": 22523, - "▁chars": 22524, - "▁targets": 22525, - "▁loud": 22526, - "usement": 22527, - "▁Nether": 22528, - "commerce": 22529, - "IGHT": 22530, - "ocoa": 22531, - "ifecycle": 22532, - "▁Leo": 22533, - "priv": 22534, - "▁goods": 22535, - "adamente": 22536, - "Austral": 22537, - "▁reboot": 22538, - "Gest": 22539, - "▁representations": 22540, - "ceu": 22541, - "▁doctrine": 22542, - "cers": 22543, - "▁Krak": 22544, - "▁advoc": 22545, - "▁squadra": 22546, - "▁arbeitete": 22547, - "üst": 22548, - "▁pill": 22549, - "Answer": 22550, - "▁квіт": 22551, - "▁Wa": 22552, - "umann": 22553, - "▁Dynam": 22554, - "Famil": 22555, - "▁tennis": 22556, - "▁Engineering": 22557, - "▁circles": 22558, - "▁Maryland": 22559, - "▁besta": 22560, - "▁bases": 22561, - "▁znajdu": 22562, - "ктора": 22563, - "▁arrest": 22564, - "лер": 22565, - "▁Gia": 22566, - "▁remarkable": 22567, - "▁могу": 22568, - "▁Supreme": 22569, - "▁`%": 22570, - "dor": 22571, - "▁aujourd": 22572, - "▁wis": 22573, - "WIDTH": 22574, - "▁misma": 22575, - "▁fluid": 22576, - "▁petite": 22577, - "▁Tow": 22578, - "Registry": 22579, - "emed": 22580, - "▁Wisconsin": 22581, - "▁Racing": 22582, - "▁registration": 22583, - "/%": 22584, - "third": 22585, - "▁monuments": 22586, - "чей": 22587, - "▁jet": 22588, - "▁Urban": 22589, - "álva": 22590, - "▁milieu": 22591, - "▁possess": 22592, - "▁germ": 22593, - "dependencies": 22594, - "▁enemies": 22595, - "▁samen": 22596, - "▁Werner": 22597, - "▁hizo": 22598, - "▁td": 22599, - "▁yesterday": 22600, - "▁Ад": 22601, - "▁hasn": 22602, - "cellation": 22603, - "ování": 22604, - "lika": 22605, - "Week": 22606, - "▁Ing": 22607, - "▁Email": 22608, - "▁mètres": 22609, - "▁OCLC": 22610, - "▁amongst": 22611, - "▁splend": 22612, - "fur": 22613, - "antics": 22614, - "▁XXX": 22615, - "▁группы": 22616, - "lach": 22617, - "▁cousin": 22618, - "▁invariant": 22619, - "ђу": 22620, - "▁Beispiel": 22621, - "▁harder": 22622, - "▁bell": 22623, - "▁orch": 22624, - "tb": 22625, - "Footnote": 22626, - "regon": 22627, - "Martin": 22628, - "▁incon": 22629, - "▁attacked": 22630, - "_{-": 22631, - "▁Tras": 22632, - "party": 22633, - "iteit": 22634, - "▁saint": 22635, - "rások": 22636, - "▁containers": 22637, - "Mo": 22638, - "▁Sn": 22639, - "quantity": 22640, - "▁ras": 22641, - "▁Canal": 22642, - "ccion": 22643, - "uvo": 22644, - "▁idx": 22645, - "typename": 22646, - "▁Rugby": 22647, - "▁Seems": 22648, - "▁transmit": 22649, - "▁Präsident": 22650, - "зне": 22651, - "▁Baker": 22652, - "inth": 22653, - "▁több": 22654, - "verein": 22655, - "▁especie": 22656, - ",(": 22657, - "▁téc": 22658, - "▁WITH": 22659, - "▁unos": 22660, - "▁politics": 22661, - "createElement": 22662, - "▁stats": 22663, - "▁Tennessee": 22664, - "▁Bedeutung": 22665, - "▁Screen": 22666, - "▁Straße": 22667, - "anze": 22668, - "▁partly": 22669, - "manuel": 22670, - "olation": 22671, - "horizontal": 22672, - "érieure": 22673, - "ampio": 22674, - "▁струк": 22675, - "Weight": 22676, - "Land": 22677, - "poly": 22678, - "▁Dak": 22679, - "▁Assume": 22680, - "\".$": 22681, - "▁casi": 22682, - "▁gross": 22683, - "▁entertain": 22684, - "▁década": 22685, - "'.$": 22686, - "encer": 22687, - "▁guaranteed": 22688, - "]$.": 22689, - "лися": 22690, - "▁acceptable": 22691, - "raise": 22692, - "irus": 22693, - "weit": 22694, - "▁Ана": 22695, - "▁hills": 22696, - "ipage": 22697, - "BIT": 22698, - "▁nucle": 22699, - "▁utilis": 22700, - "CAA": 22701, - "ènes": 22702, - "▁Schweiz": 22703, - "▁AA": 22704, - "ninger": 22705, - "▁bands": 22706, - "▁tender": 22707, - "som": 22708, - "Warning": 22709, - "▁Bischof": 22710, - "▁Arc": 22711, - "▁Woman": 22712, - "▁transmission": 22713, - "чни": 22714, - "istre": 22715, - "BY": 22716, - "▁SI": 22717, - "▁Пар": 22718, - "▁}).": 22719, - "▁presenta": 22720, - "▁René": 22721, - "▁happiness": 22722, - "▁Punk": 22723, - "cols": 22724, - "▁Desde": 22725, - "рёх": 22726, - "▁мона": 22727, - "▁scratch": 22728, - "▁tcp": 22729, - "êtes": 22730, - "itated": 22731, - "▁diferen": 22732, - "geh": 22733, - "nahmen": 22734, - "Пе": 22735, - "cki": 22736, - "▁Teatro": 22737, - "▁Remember": 22738, - "▁fright": 22739, - "▁Yam": 22740, - "western": 22741, - "leted": 22742, - "▁встре": 22743, - "▁település": 22744, - "зин": 22745, - "▁Quant": 22746, - "▁supre": 22747, - "ája": 22748, - "дія": 22749, - "▁carrera": 22750, - "kret": 22751, - "para": 22752, - "▁SUM": 22753, - "▁pit": 22754, - "źdz": 22755, - "éo": 22756, - "рення": 22757, - "▁Chor": 22758, - "▁voix": 22759, - "▁executive": 22760, - "▁allerdings": 22761, - "Maybe": 22762, - "▁день": 22763, - "▁flying": 22764, - "▁parliament": 22765, - "ждан": 22766, - "▁fram": 22767, - "▁жовт": 22768, - "▁ugly": 22769, - "▁буду": 22770, - "igny": 22771, - "\\|_{": 22772, - "▁bitter": 22773, - "sce": 22774, - "▁pole": 22775, - "Verlag": 22776, - "▁totalité": 22777, - "▁foundation": 22778, - "jt": 22779, - "▁slice": 22780, - "ifique": 22781, - "▁integrate": 22782, - "strij": 22783, - "▁asympt": 22784, - "▁ему": 22785, - "▁perturb": 22786, - "▁Flow": 22787, - "jboss": 22788, - "RIG": 22789, - "▁Aless": 22790, - "XXX": 22791, - "▁summ": 22792, - "sqlite": 22793, - "▁cheer": 22794, - "prob": 22795, - "▁GPU": 22796, - "ził": 22797, - "(*)": 22798, - "▁induct": 22799, - "RAY": 22800, - "blatt": 22801, - "questa": 22802, - "oru": 22803, - "▁Inside": 22804, - "▁McG": 22805, - "▁Nep": 22806, - "мп": 22807, - "▁inve": 22808, - "▁Animal": 22809, - "▁sob": 22810, - "ított": 22811, - "loyment": 22812, - "▁bund": 22813, - "Station": 22814, - "▁BEGIN": 22815, - "▁partiellement": 22816, - "igg": 22817, - "estore": 22818, - "▁coinc": 22819, - "▁Sommer": 22820, - "▁md": 22821, - "▁locked": 22822, - "mathchar": 22823, - "arma": 22824, - "pent": 22825, - "arium": 22826, - "▁ears": 22827, - "▁Songs": 22828, - "▁similarly": 22829, - "▁literally": 22830, - "▁inches": 22831, - "▁affection": 22832, - "lp": 22833, - "▁concluded": 22834, - "▁муніципалі": 22835, - "▁памя": 22836, - "estaur": 22837, - "▁Josh": 22838, - "▁Fritz": 22839, - "DBC": 22840, - "дён": 22841, - "posa": 22842, - "▁golden": 22843, - "▁pc": 22844, - "▁comte": 22845, - "▁Ziel": 22846, - "▁présente": 22847, - "marks": 22848, - "igneur": 22849, - "▁Drive": 22850, - "▁neglect": 22851, - "▁rozp": 22852, - "▁Five": 22853, - "spaces": 22854, - "▁Medi": 22855, - "▁existed": 22856, - "▁była": 22857, - "джи": 22858, - "▁frente": 22859, - "тник": 22860, - "odd": 22861, - "▁answering": 22862, - "bian": 22863, - "▁Eugen": 22864, - "▁Publications": 22865, - "▁Dia": 22866, - "lá": 22867, - "▁'_": 22868, - "▁recuper": 22869, - "ому": 22870, - "▁Append": 22871, - "obar": 22872, - "▁employees": 22873, - "▁compens": 22874, - "emetery": 22875, - "▁элект": 22876, - "MON": 22877, - "olin": 22878, - "▁historic": 22879, - "his": 22880, - "ąd": 22881, - "nm": 22882, - "▁Goth": 22883, - "▁stress": 22884, - "▁partecip": 22885, - "▁Aw": 22886, - "▁sar": 22887, - "▁hu": 22888, - "▁matplotlib": 22889, - "▁Myst": 22890, - "();`": 22891, - "schein": 22892, - "Longrightarrow": 22893, - "▁ря": 22894, - "▁Isra": 22895, - "[^": 22896, - "nou": 22897, - "▁synd": 22898, - "working": 22899, - "▁Nation": 22900, - "▁Pent": 22901, - "▁klass": 22902, - "▁applicable": 22903, - "▁Diam": 22904, - "▁brasile": 22905, - "▁pac": 22906, - "▁Height": 22907, - "Put": 22908, - "▁intro": 22909, - "▁unusual": 22910, - "nas": 22911, - "▁Gebäude": 22912, - "▁beam": 22913, - "▁Rect": 22914, - "▁Primera": 22915, - "▁haut": 22916, - "▁trait": 22917, - "prüft": 22918, - "inación": 22919, - "▁configurations": 22920, - "▁gilt": 22921, - "▁territoire": 22922, - "hez": 22923, - "▁alte": 22924, - "relative": 22925, - "Excel": 22926, - "▁Wright": 22927, - "GV": 22928, - "поли": 22929, - "Quant": 22930, - "▁gauge": 22931, - "▁multiply": 22932, - "ASS": 22933, - "ственно": 22934, - "ану": 22935, - "▁jeden": 22936, - "▁literary": 22937, - "▁Dro": 22938, - "▁advise": 22939, - "itzen": 22940, - "▁disag": 22941, - "website": 22942, - "▁дія": 22943, - "▁observer": 22944, - "▁január": 22945, - "vě": 22946, - "kup": 22947, - "▁Ses": 22948, - "▁wojew": 22949, - "▁stages": 22950, - "▁времени": 22951, - "łuż": 22952, - "нос": 22953, - "Download": 22954, - "ipo": 22955, - "▁graf": 22956, - "▁робо": 22957, - "▁Nikol": 22958, - "▁fic": 22959, - "▁joining": 22960, - "▁diversos": 22961, - "▁LIKE": 22962, - "▁Fitz": 22963, - "▁dimin": 22964, - "▁distrib": 22965, - "Sam": 22966, - "koz": 22967, - "▁alphabet": 22968, - "oser": 22969, - "OUR": 22970, - "uka": 22971, - "кая": 22972, - "▁steel": 22973, - "▁`--": 22974, - "▁tener": 22975, - "marker": 22976, - "▁Heaven": 22977, - "newcommand": 22978, - "▁prisoners": 22979, - "▁Knight": 22980, - "▁presents": 22981, - "▁questi": 22982, - "▁trains": 22983, - "opera": 22984, - "▁Linear": 22985, - "▁ME": 22986, - "▁Buc": 22987, - "Leg": 22988, - "▁agua": 22989, - "▁Griff": 22990, - "olg": 22991, - "dst": 22992, - ".\r": 22993, - "▁persones": 22994, - "Mal": 22995, - "бере": 22996, - "folge": 22997, - "▁acab": 22998, - "ctu": 22999, - "ptic": 23000, - "▁Navigation": 23001, - "Russ": 23002, - "галь": 23003, - "▁Ful": 23004, - "▁має": 23005, - "чная": 23006, - "wner": 23007, - "contra": 23008, - "▁joueur": 23009, - "▁Jess": 23010, - "▁renew": 23011, - "▁lap": 23012, - "▁casting": 23013, - "gal": 23014, - "▁tématu": 23015, - "▁называ": 23016, - "зах": 23017, - "чне": 23018, - ")-\\": 23019, - "▁часто": 23020, - "}$-": 23021, - "▁licz": 23022, - "▁emot": 23023, - "harm": 23024, - "▁occasionally": 23025, - "▁horror": 23026, - "east": 23027, - "▁printer": 23028, - "aran": 23029, - "▁Mississ": 23030, - "follow": 23031, - "▁Barry": 23032, - "▁investigate": 23033, - "gow": 23034, - "▁Americans": 23035, - "Since": 23036, - "▁відо": 23037, - "▁reun": 23038, - "osci": 23039, - "▁Chapter": 23040, - "▁bay": 23041, - "роме": 23042, - "ethe": 23043, - "édie": 23044, - "comot": 23045, - "▁miejscowo": 23046, - "▁studierte": 23047, - "ouvert": 23048, - "▁кур": 23049, - "▁DESC": 23050, - "▁touched": 23051, - "▁Jerry": 23052, - "uese": 23053, - "лище": 23054, - "authentication": 23055, - "▁colle": 23056, - "heart": 23057, - "▁regiment": 23058, - "cribed": 23059, - "▁Боль": 23060, - "▁проис": 23061, - "ceae": 23062, - "▁masses": 23063, - "▁scrolling": 23064, - "usto": 23065, - "SW": 23066, - "ovat": 23067, - "▁grâce": 23068, - "▁Архив": 23069, - "▁Север": 23070, - "avait": 23071, - "▁Marshall": 23072, - "▁HashMap": 23073, - "acon": 23074, - "ücken": 23075, - "[])": 23076, - "▁evangel": 23077, - "etzung": 23078, - "ttemberg": 23079, - "sters": 23080, - "TM": 23081, - "▁литера": 23082, - "quot": 23083, - "Pred": 23084, - "▁werk": 23085, - "▁haber": 23086, - "lava": 23087, - "vous": 23088, - "▁Late": 23089, - "cycle": 23090, - "тирова": 23091, - "▁проду": 23092, - "▁populations": 23093, - "▁Yan": 23094, - "Prefix": 23095, - "actéristiques": 23096, - "+'": 23097, - "()`](": 23098, - "▁Ль": 23099, - "филь": 23100, - "▁жизни": 23101, - "ftp": 23102, - "▁всех": 23103, - "▁gdzie": 23104, - "▁videa": 23105, - "oauth": 23106, - "▁pid": 23107, - "ům": 23108, - "▁pesso": 23109, - "▁tracking": 23110, - "izin": 23111, - "▁Morris": 23112, - "щий": 23113, - "▁Provinz": 23114, - "▁Mitte": 23115, - "▁artificial": 23116, - "brázky": 23117, - "▁дости": 23118, - "▁restored": 23119, - "▁communicate": 23120, - "agit": 23121, - "Recogn": 23122, - "▁lon": 23123, - "▁заня": 23124, - "▁Argument": 23125, - "flush": 23126, - "мана": 23127, - "seconds": 23128, - "UC": 23129, - "▁Ruth": 23130, - "▁tub": 23131, - "▁Bret": 23132, - "▁Pere": 23133, - "▁responsibility": 23134, - "ńczy": 23135, - "▁environments": 23136, - "kee": 23137, - "▁groot": 23138, - "▁painted": 23139, - "▁Éditions": 23140, - "cpy": 23141, - "árt": 23142, - "lichkeit": 23143, - "arda": 23144, - "Batch": 23145, - "▁Leopold": 23146, - "reason": 23147, - "noreferrer": 23148, - "sens": 23149, - "▁rocks": 23150, - "▁Hitler": 23151, - "лат": 23152, - "▁quoted": 23153, - "▁колле": 23154, - "▁уров": 23155, - "bag": 23156, - ".\")": 23157, - "▁ML": 23158, - "▁komt": 23159, - "▁[_": 23160, - "▁spectral": 23161, - "edo": 23162, - "▁insieme": 23163, - "▁suffering": 23164, - "slider": 23165, - "▁Kennedy": 23166, - "olate": 23167, - "▁Patri": 23168, - "зии": 23169, - "OH": 23170, - "▁теа": 23171, - "▁права": 23172, - "мах": 23173, - "rewrite": 23174, - "▁Einsatz": 23175, - "external": 23176, - "holds": 23177, - "▁Places": 23178, - "atype": 23179, - "▁vulner": 23180, - "▁abandoned": 23181, - "Origin": 23182, - "▁maximal": 23183, - "AAAA": 23184, - "▁Baseball": 23185, - "▁Close": 23186, - "▁painter": 23187, - "▁assigning": 23188, - "NB": 23189, - "blast": 23190, - "▁Künstler": 23191, - ")](": 23192, - "fach": 23193, - "▁Constantin": 23194, - "okes": 23195, - "▁nobody": 23196, - "▁subtract": 23197, - "▁fosse": 23198, - "▁certific": 23199, - "▁muse": 23200, - "/),": 23201, - "▁Profil": 23202, - "▁proxim": 23203, - "▁Jerusalem": 23204, - "▁simplicity": 23205, - "▁wsz": 23206, - "NUMBER": 23207, - "uttavia": 23208, - "UITableView": 23209, - "ichter": 23210, - "жан": 23211, - "▁Lav": 23212, - "itchen": 23213, - "▁Чем": 23214, - "Tu": 23215, - "▁geom": 23216, - "▁zvuky": 23217, - "▁Survey": 23218, - "ANCE": 23219, - "▁encrypted": 23220, - "prof": 23221, - "▁dare": 23222, - "▁Loren": 23223, - "тв": 23224, - "▁Алек": 23225, - "▁computers": 23226, - "▁expectation": 23227, - "▁substantial": 23228, - "▁Дми": 23229, - "▁`{": 23230, - "▁дра": 23231, - "ubble": 23232, - "▁performs": 23233, - "▁Krieg": 23234, - "▁incoming": 23235, - "▁Classification": 23236, - "WebView": 23237, - "▁episodes": 23238, - "apper": 23239, - "äufig": 23240, - "▁giov": 23241, - "▁Depart": 23242, - "бора": 23243, - "edly": 23244, - "ospod": 23245, - "▁ptr": 23246, - "▁dátum": 23247, - "▁estimation": 23248, - "icole": 23249, - "▁----": 23250, - "▁princes": 23251, - "HEAD": 23252, - "▁diffusion": 23253, - "▁drie": 23254, - "▁Ada": 23255, - "нице": 23256, - "nginx": 23257, - "shal": 23258, - "▁februari": 23259, - "▁Tat": 23260, - "looking": 23261, - "kund": 23262, - "▁Dean": 23263, - "mongodb": 23264, - "вших": 23265, - "▁Aur": 23266, - "▁Flora": 23267, - "▁Studios": 23268, - "ције": 23269, - "eil": 23270, - "Install": 23271, - "▁franch": 23272, - "▁HMS": 23273, - "▁practices": 23274, - "lej": 23275, - "dale": 23276, - "▁poste": 23277, - "▁Hels": 23278, - "▁reliable": 23279, - "ździer": 23280, - "▁verse": 23281, - "ermeister": 23282, - "▁quit": 23283, - "ético": 23284, - "ilis": 23285, - "edor": 23286, - "▁Cultural": 23287, - "дже": 23288, - "▁liked": 23289, - "▁mongodb": 23290, - "▁Broadway": 23291, - "▁IR": 23292, - "eszt": 23293, - "hov": 23294, - "▁míst": 23295, - "reiche": 23296, - "▁kB": 23297, - "стом": 23298, - "▁SQLite": 23299, - "▁torneo": 23300, - "\\.": 23301, - "Ord": 23302, - "▁Administration": 23303, - "▁зда": 23304, - "▁Hinter": 23305, - "▁Via": 23306, - "Decimal": 23307, - "orious": 23308, - "▁nécessaire": 23309, - "wx": 23310, - "▁tej": 23311, - "▁tema": 23312, - "Obrázky": 23313, - "рите": 23314, - "▁builds": 23315, - "▁laten": 23316, - "▁гг": 23317, - "Visibility": 23318, - "läu": 23319, - "▁sechs": 23320, - "▁луч": 23321, - "cera": 23322, - "Could": 23323, - "▁traject": 23324, - "}}^{": 23325, - "▁Japon": 23326, - "another": 23327, - "IK": 23328, - "▁belonging": 23329, - "▁facilities": 23330, - "▁Daily": 23331, - "▁dece": 23332, - "intro": 23333, - "▁случа": 23334, - "Namespace": 23335, - "▁Bak": 23336, - "locale": 23337, - "UG": 23338, - "=${": 23339, - "▁compañ": 23340, - "jąc": 23341, - "▁arithmetic": 23342, - "forum": 23343, - "▁porta": 23344, - "onk": 23345, - "▁gender": 23346, - "▁expects": 23347, - "бка": 23348, - "▁nak": 23349, - "▁Grace": 23350, - "▁stro": 23351, - "ividual": 23352, - "▁COM": 23353, - "▁Farm": 23354, - "▁canton": 23355, - "тому": 23356, - "javax": 23357, - "сей": 23358, - "▁briefly": 23359, - "Face": 23360, - "rotate": 23361, - "constant": 23362, - "▁gallery": 23363, - "astro": 23364, - "allery": 23365, - "▁DJ": 23366, - "charge": 23367, - "ходить": 23368, - "Cent": 23369, - "\\\",": 23370, - "▁donna": 23371, - "arca": 23372, - "lade": 23373, - "zin": 23374, - "▁Ned": 23375, - "▁hosting": 23376, - "idor": 23377, - "itative": 23378, - "igs": 23379, - "▁пря": 23380, - "▁ticket": 23381, - "▁studying": 23382, - "▁designer": 23383, - "lapsed": 23384, - "▁laat": 23385, - "▁dix": 23386, - "▁integrated": 23387, - "▁informed": 23388, - "▁behave": 23389, - "▁labour": 23390, - "estellt": 23391, - "calendar": 23392, - "▁killing": 23393, - "▁twitter": 23394, - "iae": 23395, - "▁historique": 23396, - "DEFAULT": 23397, - "iała": 23398, - "▁theoretical": 23399, - "▁unders": 23400, - "ляет": 23401, - "atan": 23402, - "▁surname": 23403, - "▁intercept": 23404, - "гласно": 23405, - "▁општини": 23406, - "▁tired": 23407, - "▁Beth": 23408, - "▁административ": 23409, - "Li": 23410, - "▁Тур": 23411, - "▁Scanner": 23412, - "▁Stern": 23413, - "▁вместе": 23414, - "▁reporting": 23415, - "▁sull": 23416, - "цией": 23417, - "berts": 23418, - "ogonal": 23419, - "ők": 23420, - "▁ipsum": 23421, - "▁seulement": 23422, - "▁Seiten": 23423, - "wordpress": 23424, - "▁featuring": 23425, - "istischen": 23426, - "jub": 23427, - "▁étr": 23428, - "▁tea": 23429, - "▁adapted": 23430, - "▁scales": 23431, - "▁nan": 23432, - "getValue": 23433, - "▁Blues": 23434, - "acles": 23435, - "▁stati": 23436, - "▁entitled": 23437, - "▁Ralph": 23438, - "gravity": 23439, - "▁entrepr": 23440, - "któber": 23441, - "limat": 23442, - "lis": 23443, - "Demo": 23444, - "relation": 23445, - "▁nep": 23446, - "prowad": 23447, - "itis": 23448, - "▁pup": 23449, - "nehmer": 23450, - "▁disappoint": 23451, - "▁etwas": 23452, - "annon": 23453, - "▁approved": 23454, - "▁clever": 23455, - "Loading": 23456, - "▁verz": 23457, - "resse": 23458, - "▁inspir": 23459, - "▁sampling": 23460, - "▁Bek": 23461, - "})$.": 23462, - "▁грома": 23463, - "▁specie": 23464, - "▁repub": 23465, - "▁loader": 23466, - "▁erf": 23467, - "▁shoulder": 23468, - "rais": 23469, - "▁мате": 23470, - "▁Month": 23471, - "Scene": 23472, - "▁blocking": 23473, - "▁ocean": 23474, - "geben": 23475, - "▁Kilometer": 23476, - "▁bedeut": 23477, - "▁Mix": 23478, - "fmt": 23479, - "▁Norweg": 23480, - "▁IDs": 23481, - "parallel": 23482, - "▁anticip": 23483, - "▁revis": 23484, - "хан": 23485, - "▁свет": 23486, - "CASE": 23487, - "▁führt": 23488, - "▁atomic": 23489, - "▁darkness": 23490, - "▁Fußballspieler": 23491, - "▁Жи": 23492, - "quisition": 23493, - "▁Sieg": 23494, - "Circ": 23495, - "▁cientí": 23496, - "nelle": 23497, - "SHA": 23498, - "▁urb": 23499, - "▁ksi": 23500, - "leqslant": 23501, - "▁фрон": 23502, - "▁defect": 23503, - "▁rá": 23504, - "▁stronger": 23505, - "▁pł": 23506, - "▁communities": 23507, - "нина": 23508, - "enas": 23509, - "iennent": 23510, - "▁safely": 23511, - "▁тя": 23512, - "▁benchmark": 23513, - "▁Braun": 23514, - "methods": 23515, - "argument": 23516, - "vos": 23517, - "obox": 23518, - "рови": 23519, - "▁recherche": 23520, - "mn": 23521, - "▁brings": 23522, - "machine": 23523, - "CESS": 23524, - "hosts": 23525, - "▁NY": 23526, - "Autow": 23527, - "▁современ": 23528, - "▁Gary": 23529, - "▁sensor": 23530, - "▁documented": 23531, - "▁prendre": 23532, - "▁peer": 23533, - "enix": 23534, - "hai": 23535, - "arbe": 23536, - "цент": 23537, - "_(": 23538, - "▁URI": 23539, - "ева": 23540, - "▁Regie": 23541, - "▁Monument": 23542, - "▁onderwerp": 23543, - "Bag": 23544, - "tit": 23545, - "▁stir": 23546, - "▁nerv": 23547, - "сторія": 23548, - "▁sov": 23549, - "▁writers": 23550, - "▁sorts": 23551, - "absolute": 23552, - "▁difficulties": 23553, - "▁parlament": 23554, - "▁IEnumerable": 23555, - "▁dissol": 23556, - "▁CHECK": 23557, - "arina": 23558, - "inburgh": 23559, - "DM": 23560, - "▁eind": 23561, - "▁budget": 23562, - "▁certains": 23563, - "▁första": 23564, - "anja": 23565, - "▁годов": 23566, - "▁тек": 23567, - "▁Duch": 23568, - "gui": 23569, - "▁Teams": 23570, - "▁многи": 23571, - "Marie": 23572, - "Integr": 23573, - "ThreadPool": 23574, - "rust": 23575, - "ík": 23576, - "%\"": 23577, - "enf": 23578, - "spl": 23579, - "▁begun": 23580, - "lou": 23581, - "▁RewriteRule": 23582, - "tuple": 23583, - "aneous": 23584, - "▁marine": 23585, - "attan": 23586, - "ikal": 23587, - "▁graduated": 23588, - "illé": 23589, - "▁прове": 23590, - "▁Роз": 23591, - "',\r": 23592, - "▁Pfarr": 23593, - "▁nivel": 23594, - "▁працю": 23595, - "music": 23596, - "▁setTimeout": 23597, - "ERS": 23598, - "▁Erik": 23599, - "pit": 23600, - "▁Хро": 23601, - "▁pił": 23602, - "▁peri": 23603, - "док": 23604, - "uszt": 23605, - "▁Bear": 23606, - "ClassName": 23607, - "▁Parlament": 23608, - "▁aix": 23609, - "▁invited": 23610, - "▁PATH": 23611, - "xter": 23612, - "▁Race": 23613, - "▁hecho": 23614, - "▁Tower": 23615, - "▁utf": 23616, - "actly": 23617, - "▁буде": 23618, - "▁angles": 23619, - "няя": 23620, - "ouvelles": 23621, - "▁climate": 23622, - "▁singing": 23623, - "▁navigate": 23624, - ">';": 23625, - "adows": 23626, - "▁leta": 23627, - "▁Sitz": 23628, - "▁partitions": 23629, - "▁dock": 23630, - "▁ży": 23631, - "▁allocate": 23632, - "▁benefits": 23633, - "▁nieder": 23634, - "xpath": 23635, - "meck": 23636, - "älle": 23637, - "▁coupling": 23638, - "жил": 23639, - "ForKey": 23640, - "argent": 23641, - "clou": 23642, - "▁instruments": 23643, - "▁enthus": 23644, - "▁még": 23645, - "▁Пав": 23646, - "▁Rach": 23647, - "-----": 23648, - "▁APIs": 23649, - "▁Vier": 23650, - "Cmd": 23651, - "itore": 23652, - "▁Cuba": 23653, - "▁dátummal": 23654, - "▁embedding": 23655, - "stdio": 23656, - "▁Gilbert": 23657, - "▁geprüft": 23658, - "▁stating": 23659, - "▁triggers": 23660, - "+=": 23661, - "▁spécial": 23662, - "▁deliber": 23663, - "мин": 23664, - "Produ": 23665, - "▁Stati": 23666, - "▁zus": 23667, - "ktionen": 23668, - "Dispatcher": 23669, - "idal": 23670, - "▁LP": 23671, - "optera": 23672, - "▁estar": 23673, - "▁значи": 23674, - "смо": 23675, - "ouses": 23676, - "engono": 23677, - "▁WPF": 23678, - "publish": 23679, - "▁teor": 23680, - "elif": 23681, - "▁erg": 23682, - "▁separation": 23683, - "Pan": 23684, - "▁Orchestra": 23685, - "Peter": 23686, - "bounds": 23687, - "▁Shakespeare": 23688, - "▁cantante": 23689, - "▁demi": 23690, - "▁Popular": 23691, - "фр": 23692, - "arring": 23693, - "цин": 23694, - "▁Ис": 23695, - "von": 23696, - "▁substitution": 23697, - "▁línea": 23698, - "\\}$.": 23699, - "como": 23700, - "▁важ": 23701, - "wagen": 23702, - "▁rarely": 23703, - "▁periods": 23704, - "glob": 23705, - "▁Frid": 23706, - "▁Terr": 23707, - "▁Release": 23708, - "Brainz": 23709, - "▁граф": 23710, - "DIS": 23711, - "compatible": 23712, - "▁poč": 23713, - "LIN": 23714, - "▁Källor": 23715, - "▁Arizona": 23716, - "ppy": 23717, - "Seq": 23718, - "▁Ain": 23719, - "▁Tourn": 23720, - "brow": 23721, - "▁Kör": 23722, - "▁ash": 23723, - "ogeneous": 23724, - "▁dialect": 23725, - "▁насеља": 23726, - "mysqli": 23727, - "цов": 23728, - "▁flor": 23729, - "▁фло": 23730, - "IAB": 23731, - "▁Within": 23732, - "^(": 23733, - "▁bois": 23734, - "▁tank": 23735, - "▁affili": 23736, - "▁hijo": 23737, - "▁Kate": 23738, - "▁Verl": 23739, - "▁Miami": 23740, - "▁typescript": 23741, - "њу": 23742, - "▁Vern": 23743, - "▁висо": 23744, - "iemann": 23745, - "▁coverage": 23746, - "brie": 23747, - "▁Starting": 23748, - "numpy": 23749, - "▁Jenkins": 23750, - "▁két": 23751, - "▁grup": 23752, - "▁Scient": 23753, - "▁interrupt": 23754, - "▁blob": 23755, - "ugel": 23756, - "▁Orth": 23757, - "abama": 23758, - "▁Bapt": 23759, - "ownik": 23760, - "▁быть": 23761, - "▁Julius": 23762, - "▁През": 23763, - "▁substitute": 23764, - "supported": 23765, - "chy": 23766, - "egyzetek": 23767, - "▁Performance": 23768, - "lessly": 23769, - "Constructor": 23770, - "▁extending": 23771, - "▁Muslim": 23772, - "Overflow": 23773, - "▁Jenn": 23774, - "▁produz": 23775, - "мії": 23776, - "▁países": 23777, - "▁eux": 23778, - "▁fate": 23779, - "ologe": 23780, - "ук": 23781, - "▁wobei": 23782, - "▁Sachsen": 23783, - "▁сайт": 23784, - "Models": 23785, - "▁Fast": 23786, - "besondere": 23787, - "▁FR": 23788, - "▁acon": 23789, - "▁Denkmal": 23790, - "▁anch": 23791, - "▁público": 23792, - "▁Tas": 23793, - "▁cand": 23794, - "▁paździer": 23795, - "▁Мон": 23796, - "▁versus": 23797, - "rut": 23798, - "GT": 23799, - "▁inserting": 23800, - "▁canad": 23801, - "єм": 23802, - "▁Metro": 23803, - "▁Herzog": 23804, - "Ignore": 23805, - "▁decrease": 23806, - "▁пун": 23807, - "▁Fischer": 23808, - "▁Mall": 23809, - "▁nörd": 23810, - "iostream": 23811, - "▁Luxemb": 23812, - "payload": 23813, - "▁Zeitung": 23814, - "▁modifying": 23815, - "▁Cher": 23816, - "▁Luci": 23817, - "nx": 23818, - "▁loose": 23819, - "▁topics": 23820, - "▁varied": 23821, - "▁pg": 23822, - "ajes": 23823, - "umm": 23824, - "Views": 23825, - "▁Beau": 23826, - "MAP": 23827, - "ipeline": 23828, - "▁Interest": 23829, - "arith": 23830, - "▁según": 23831, - "▁Gemeins": 23832, - "▁Attribute": 23833, - "community": 23834, - "▁центр": 23835, - "▁kilometer": 23836, - "▁économ": 23837, - "laration": 23838, - "▁къ": 23839, - "▁carriage": 23840, - "▁Lane": 23841, - "▁необ": 23842, - "kur": 23843, - "▁AF": 23844, - "INTER": 23845, - "))$": 23846, - "▁beide": 23847, - "destination": 23848, - "▁fonts": 23849, - "appendChild": 23850, - "▁MAR": 23851, - "▁gay": 23852, - "mil": 23853, - "lesh": 23854, - "èt": 23855, - "▁Wang": 23856, - "▁Years": 23857, - "▁Symbol": 23858, - "Live": 23859, - "quency": 23860, - "▁Users": 23861, - "▁Unicode": 23862, - "▁Sau": 23863, - "▁tons": 23864, - "▁Ні": 23865, - "▁краї": 23866, - "AXI": 23867, - "▁Pick": 23868, - "AI": 23869, - "▁hath": 23870, - "▁ainda": 23871, - "▁papa": 23872, - "▁Censo": 23873, - "▁Bald": 23874, - "▁Насеље": 23875, - "▁simulations": 23876, - "▁jaren": 23877, - "▁inherited": 23878, - "▁той": 23879, - "▁feels": 23880, - "ression": 23881, - "▁október": 23882, - "bid": 23883, - "ási": 23884, - "▁muss": 23885, - "ventory": 23886, - "▁meist": 23887, - "▁bore": 23888, - "▁slider": 23889, - "дели": 23890, - "\\;": 23891, - "▁extracted": 23892, - "кур": 23893, - "Edge": 23894, - "▁perf": 23895, - "▁Brigade": 23896, - "▁град": 23897, - "ienie": 23898, - "▁Norden": 23899, - "▁cancer": 23900, - "\"/": 23901, - "Cur": 23902, - "▁Сере": 23903, - "▁liquid": 23904, - "structure": 23905, - "▁choosing": 23906, - "▁Perl": 23907, - "Side": 23908, - "üs": 23909, - "ритор": 23910, - "▁kost": 23911, - "▁packets": 23912, - "▁которого": 23913, - "▁Comun": 23914, - "▁fingers": 23915, - "ográfica": 23916, - ">:": 23917, - "▁championnat": 23918, - "▁blieb": 23919, - "▁Situ": 23920, - "▁suic": 23921, - "andis": 23922, - "Fre": 23923, - "▁Conc": 23924, - "▁republic": 23925, - "▁armed": 23926, - "▁hell": 23927, - "▁hög": 23928, - "ragma": 23929, - "▁ense": 23930, - "▁acres": 23931, - "▁Від": 23932, - "▁Reform": 23933, - "MainActivity": 23934, - "keeper": 23935, - "erb": 23936, - "▁monaster": 23937, - "subsubsection": 23938, - "▁Див": 23939, - "▁creature": 23940, - "▁indicating": 23941, - "▁urls": 23942, - "▁kein": 23943, - "образ": 23944, - "pick": 23945, - "▁Admir": 23946, - "▁oldest": 23947, - "▁muz": 23948, - "▁contradiction": 23949, - "▁probabil": 23950, - "illiant": 23951, - "▁pav": 23952, - "▁papel": 23953, - "ubs": 23954, - "▁жена": 23955, - "AML": 23956, - "▁recip": 23957, - "▁COL": 23958, - "added": 23959, - "▁clue": 23960, - "▁Ukraine": 23961, - "▁jelent": 23962, - "чень": 23963, - "▁mathematics": 23964, - "Accept": 23965, - "▁сот": 23966, - "▁север": 23967, - "▁isolated": 23968, - "▁поя": 23969, - "wür": 23970, - "Router": 23971, - "CAT": 23972, - "rgb": 23973, - "▁Lov": 23974, - "mutable": 23975, - "▁Wes": 23976, - "▁Italien": 23977, - "Drag": 23978, - "enium": 23979, - "atting": 23980, - "tcp": 23981, - "▁erfolgte": 23982, - "▁Beit": 23983, - "гато": 23984, - "▁Systems": 23985, - "▁reserve": 23986, - "eree": 23987, - "▁Пари": 23988, - "▁зали": 23989, - "▁rent": 23990, - "▁sunt": 23991, - "▁Girls": 23992, - "▁Ernest": 23993, - "▁fits": 23994, - "▁oppon": 23995, - "▁живело": 23996, - "▁avaient": 23997, - "▁Florence": 23998, - "▁числе": 23999, - "▁engines": 24000, - "Dynamic": 24001, - "▁stycznia": 24002, - "▁bias": 24003, - "▁Exchange": 24004, - "дий": 24005, - "▁historiques": 24006, - "▁Hä": 24007, - "hod": 24008, - "▁wł": 24009, - "schap": 24010, - "▁lac": 24011, - "▁Foi": 24012, - "▁dwell": 24013, - "▁Unternehmen": 24014, - "URN": 24015, - "▁kilometres": 24016, - "▁Однако": 24017, - "кли": 24018, - "▁Sri": 24019, - "Groups": 24020, - "mind": 24021, - "oslov": 24022, - "fern": 24023, - "egu": 24024, - "abeled": 24025, - "Fiddle": 24026, - "▁Century": 24027, - "/-": 24028, - "▁Jegyzetek": 24029, - "Hen": 24030, - "ensemble": 24031, - "▁Gut": 24032, - "_{{\\": 24033, - "▁ranking": 24034, - "+$": 24035, - "ала": 24036, - "▁#{": 24037, - "imientos": 24038, - "achim": 24039, - "rides": 24040, - "▁Klaus": 24041, - "▁intend": 24042, - "▁Kentucky": 24043, - "cipe": 24044, - "▁Dienst": 24045, - "▁situated": 24046, - "▁póź": 24047, - "▁scrit": 24048, - "clip": 24049, - "нет": 24050, - "tables": 24051, - "▁Nied": 24052, - "▁McK": 24053, - "▁powst": 24054, - "▁kunnen": 24055, - "▁Evans": 24056, - "жды": 24057, - "вать": 24058, - "uchar": 24059, - "▁residents": 24060, - "iak": 24061, - "▁Resol": 24062, - "▁veces": 24063, - "▁satisfying": 24064, - "INF": 24065, - "▁син": 24066, - "▁crossing": 24067, - "iben": 24068, - "▁широ": 24069, - "pto": 24070, - "ILL": 24071, - "▁роль": 24072, - "▁aktiv": 24073, - "▁обращения": 24074, - "Wikispecies": 24075, - "▁Höhe": 24076, - "cro": 24077, - "════": 24078, - "altra": 24079, - "▁FILE": 24080, - "▁ups": 24081, - "▁allocation": 24082, - "Michael": 24083, - "▁acknowled": 24084, - "Linux": 24085, - "▁metros": 24086, - "tte": 24087, - "afen": 24088, - "▁xcode": 24089, - "▁тради": 24090, - "species": 24091, - "▁injury": 24092, - "▁самы": 24093, - "▁lattice": 24094, - "Material": 24095, - "andenburg": 24096, - "▁huvudstaden": 24097, - "story": 24098, - "▁varying": 24099, - "▁követ": 24100, - "▁Российской": 24101, - "irse": 24102, - "▁drum": 24103, - "Pressed": 24104, - "Lar": 24105, - "▁Agu": 24106, - "▁weil": 24107, - "▁commence": 24108, - "▁Según": 24109, - "Gesture": 24110, - "Shape": 24111, - "▁Vors": 24112, - "▁succès": 24113, - "▁corrected": 24114, - "Kar": 24115, - "▁cruel": 24116, - "▁politico": 24117, - "▁Schriftsteller": 24118, - "▁risult": 24119, - "etu": 24120, - "archiv": 24121, - "▁género": 24122, - "▁Lü": 24123, - "▁triumph": 24124, - "ORS": 24125, - "Lu": 24126, - "▁personnel": 24127, - "▁Hills": 24128, - "asset": 24129, - "domin": 24130, - "Receive": 24131, - "▁Oak": 24132, - "▁Kno": 24133, - "▁Theory": 24134, - "irie": 24135, - "owan": 24136, - "▁estava": 24137, - "▁executes": 24138, - "йт": 24139, - "ópez": 24140, - "поло": 24141, - "ética": 24142, - "▁название": 24143, - "▁converges": 24144, - "▁notre": 24145, - "▁populated": 24146, - "▁movements": 24147, - "▁statistical": 24148, - "▁Zweiten": 24149, - "quin": 24150, - "▁importantes": 24151, - "▁klein": 24152, - "▁Segunda": 24153, - "schließend": 24154, - "Failure": 24155, - "nar": 24156, - "dag": 24157, - "▁ruolo": 24158, - "▁fiction": 24159, - "▁использу": 24160, - "▁crisis": 24161, - "▁Getting": 24162, - ",%": 24163, - "▁армии": 24164, - "▁campus": 24165, - "▁footer": 24166, - "▁días": 24167, - "бан": 24168, - "▁liberty": 24169, - "▁gh": 24170, - "▁chamber": 24171, - "▁districts": 24172, - "▁excited": 24173, - "▁canción": 24174, - "tero": 24175, - "▁Working": 24176, - "▁części": 24177, - "льный": 24178, - "▁forum": 24179, - "▁Ehe": 24180, - "▁ката": 24181, - "itations": 24182, - "Tools": 24183, - "achiv": 24184, - "▁cres": 24185, - "asto": 24186, - "▁rever": 24187, - "▁nazionale": 24188, - "▁doors": 24189, - "▁Nancy": 24190, - "▁islands": 24191, - "Imp": 24192, - "▁Chair": 24193, - "▁vorm": 24194, - "sein": 24195, - "▁доку": 24196, - "erset": 24197, - "▁tätig": 24198, - "▁Krit": 24199, - "▁пя": 24200, - "▁conservation": 24201, - "▁Partido": 24202, - "minipage": 24203, - "Validator": 24204, - "▁recovery": 24205, - "▁NASA": 24206, - "▁breast": 24207, - "ilty": 24208, - "analy": 24209, - "elines": 24210, - "▁Saturday": 24211, - "emark": 24212, - "cej": 24213, - "Zero": 24214, - "▁Turner": 24215, - "secure": 24216, - "Exists": 24217, - "▁Rick": 24218, - "evalu": 24219, - "ctrl": 24220, - "▁compression": 24221, - "▁CURL": 24222, - "textcolor": 24223, - ")\\,": 24224, - "longrightarrow": 24225, - "▁Fernseh": 24226, - "icha": 24227, - "▁loi": 24228, - "▁Оте": 24229, - "▁cave": 24230, - "▁dozen": 24231, - "▁explaining": 24232, - "▁innov": 24233, - "▁Nicholas": 24234, - "▁diameter": 24235, - "▁Marian": 24236, - "▁fires": 24237, - "▁artifact": 24238, - "▁Parker": 24239, - "▁Bund": 24240, - "▁verte": 24241, - "▁talent": 24242, - "▁Lucas": 24243, - "reverse": 24244, - "▁folgenden": 24245, - "▁Sah": 24246, - "jections": 24247, - "▁invece": 24248, - "▁costitu": 24249, - "▁ssl": 24250, - "}}^": 24251, - "▁violent": 24252, - "▁spos": 24253, - "Rout": 24254, - "jdk": 24255, - "▁заме": 24256, - "▁furent": 24257, - "andal": 24258, - "Hom": 24259, - "▁Senior": 24260, - "▁pounds": 24261, - "▁Discogs": 24262, - "▁зе": 24263, - "'}[": 24264, - "▁Napoleon": 24265, - "ordinates": 24266, - "àn": 24267, - "▁kurz": 24268, - "▁vere": 24269, - "▁reuse": 24270, - "▁Ген": 24271, - "▁Syst": 24272, - "▁disappeared": 24273, - "▁Watch": 24274, - "bibliothek": 24275, - "▁корпу": 24276, - "▁Cs": 24277, - "▁}`": 24278, - "▁rör": 24279, - "▁дела": 24280, - "VB": 24281, - "▁calculus": 24282, - "рода": 24283, - "▁judgment": 24284, - "atile": 24285, - "▁longue": 24286, - "▁Hus": 24287, - "Jac": 24288, - "}})": 24289, - "RIPT": 24290, - "IABot": 24291, - "▁após": 24292, - "▁aston": 24293, - "Webachiv": 24294, - "▁URLs": 24295, - "▁coat": 24296, - "▁эконо": 24297, - "▁lear": 24298, - "extensions": 24299, - "▁Classic": 24300, - "TI": 24301, - "▁Tage": 24302, - "▁lá": 24303, - "▁semb": 24304, - "▁développement": 24305, - "ISTS": 24306, - "▁solves": 24307, - ",\\,": 24308, - "▁чемпі": 24309, - "ordinary": 24310, - "▁Bav": 24311, - "▁muchos": 24312, - "Self": 24313, - "▁Май": 24314, - "▁Diet": 24315, - "▁necessity": 24316, - "від": 24317, - "▁mano": 24318, - "▁Ср": 24319, - "▁carre": 24320, - "▁Camera": 24321, - "▁Narod": 24322, - "▁Phone": 24323, - "▁polym": 24324, - "imore": 24325, - "isEmpty": 24326, - "▁Houston": 24327, - "▁Rece": 24328, - "▁presentation": 24329, - "ниципа": 24330, - "▁Db": 24331, - "▁confident": 24332, - "▁}{": 24333, - "▁bullet": 24334, - "▁{},": 24335, - "ANGE": 24336, - "▁Notre": 24337, - "chin": 24338, - "▁Dragon": 24339, - "erca": 24340, - "iali": 24341, - "▁asset": 24342, - "▁muito": 24343, - "▁deeply": 24344, - "▁restriction": 24345, - "▁commerce": 24346, - "▁Bomb": 24347, - "caught": 24348, - "qq": 24349, - "▁Arag": 24350, - "▁немец": 24351, - "▁Analysis": 24352, - "▁článku": 24353, - "▁baby": 24354, - "▁echter": 24355, - "▁одного": 24356, - "жена": 24357, - "▁whitespace": 24358, - "çu": 24359, - "LIST": 24360, - "frique": 24361, - "▁varias": 24362, - "▁Wit": 24363, - "▁Licencia": 24364, - "Exit": 24365, - "▁sierp": 24366, - "▁assemb": 24367, - "▁splitting": 24368, - "▁palace": 24369, - "▁blocked": 24370, - "▁boundaries": 24371, - "▁iterations": 24372, - "▁Rotten": 24373, - "▁Verkehr": 24374, - "▁weer": 24375, - "Tests": 24376, - "ifting": 24377, - "▁regul": 24378, - "▁persist": 24379, - "▁Solution": 24380, - "pb": 24381, - "▁collapse": 24382, - "▁arrested": 24383, - "▁predicate": 24384, - "▁Zone": 24385, - "▁ingen": 24386, - "zález": 24387, - "▁banks": 24388, - "plant": 24389, - "▁Nella": 24390, - "▁бан": 24391, - "▁Snow": 24392, - "▁Kreuz": 24393, - "ício": 24394, - "▁enters": 24395, - "▁expose": 24396, - "či": 24397, - "шие": 24398, - "Qual": 24399, - "▁landscape": 24400, - "▁подацима": 24401, - "mai": 24402, - "stag": 24403, - "ований": 24404, - "DEF": 24405, - "[]{": 24406, - "▁dernière": 24407, - "icut": 24408, - "▁Xml": 24409, - "▁subgroup": 24410, - "▁Polsce": 24411, - "▁Warning": 24412, - "▁vehicles": 24413, - "iot": 24414, - "▁dll": 24415, - "ront": 24416, - "▁Louise": 24417, - "▁ara": 24418, - "▁Scala": 24419, - "▁canonical": 24420, - "▁placing": 24421, - "ERY": 24422, - "▁Jag": 24423, - "▁virus": 24424, - "emu": 24425, - "▁});\r": 24426, - "▁мм": 24427, - "▁Trying": 24428, - "▁Lexikon": 24429, - "abord": 24430, - "▁expedition": 24431, - "▁demanded": 24432, - "Zyg": 24433, - "lein": 24434, - "▁verwendet": 24435, - "рина": 24436, - "wol": 24437, - "▁pivot": 24438, - "▁однако": 24439, - "▁propriet": 24440, - "▁awards": 24441, - "tout": 24442, - "▁assim": 24443, - "▁Storm": 24444, - "Limit": 24445, - "elin": 24446, - "wealth": 24447, - "uez": 24448, - "▁rappresent": 24449, - "▁resta": 24450, - "▁gegründet": 24451, - "▁journalist": 24452, - "isie": 24453, - "▁facility": 24454, - "illed": 24455, - "ulk": 24456, - "▁PK": 24457, - "Anchor": 24458, - "▁_)": 24459, - "VF": 24460, - "LAB": 24461, - "▁nå": 24462, - "odos": 24463, - "▁billion": 24464, - "virti": 24465, - "▁Jeux": 24466, - "юза": 24467, - "tomcat": 24468, - "▁charts": 24469, - "▁Bundle": 24470, - "▁lst": 24471, - "▁exer": 24472, - "▁females": 24473, - "▁obliged": 24474, - "▁aby": 24475, - "rolled": 24476, - "dri": 24477, - "▁Sche": 24478, - "▁vessels": 24479, - "IMARY": 24480, - "▁reasoning": 24481, - "▁проте": 24482, - "FILES": 24483, - "verk": 24484, - "osos": 24485, - "▁комму": 24486, - "дії": 24487, - "▁dd": 24488, - "▁соответ": 24489, - "▁IOException": 24490, - "ských": 24491, - "▁CLI": 24492, - "▁ње": 24493, - "CM": 24494, - "TD": 24495, - "▁possibilities": 24496, - "▁Compos": 24497, - "half": 24498, - "▁webpage": 24499, - "▁swing": 24500, - "▁zas": 24501, - "▁cycl": 24502, - "leid": 24503, - "istica": 24504, - "▁Insert": 24505, - "▁Sweden": 24506, - "▁wanting": 24507, - "▁ال": 24508, - "▁eeuw": 24509, - "▁Administr": 24510, - "▁Warren": 24511, - "▁bs": 24512, - "▁pam": 24513, - "anus": 24514, - "Dra": 24515, - "expl": 24516, - "▁Kant": 24517, - "▁Austin": 24518, - "▁csak": 24519, - "▁theatre": 24520, - "▁compatibility": 24521, - "матиче": 24522, - "setState": 24523, - "бю": 24524, - "}{|": 24525, - "▁Dy": 24526, - "▁Zwischen": 24527, - "Alt": 24528, - "CLARE": 24529, - "steps": 24530, - "▁Lage": 24531, - "▁Mitt": 24532, - "▁Dublin": 24533, - "▁работы": 24534, - "deep": 24535, - "▁flows": 24536, - "▁Palace": 24537, - "unix": 24538, - "refs": 24539, - "umar": 24540, - "aset": 24541, - "cov": 24542, - "▁ping": 24543, - "▁Safari": 24544, - "flug": 24545, - "creens": 24546, - "{#": 24547, - "▁реа": 24548, - "adors": 24549, - "▁amor": 24550, - "uce": 24551, - "demic": 24552, - "▁Netherlands": 24553, - "▁clusters": 24554, - "▁enfor": 24555, - "marine": 24556, - "▁bugs": 24557, - "izzata": 24558, - "▁scra": 24559, - "Les": 24560, - "quick": 24561, - "▁turno": 24562, - "_*": 24563, - "ера": 24564, - "Generated": 24565, - ">[": 24566, - "▁estre": 24567, - "orde": 24568, - "▁verg": 24569, - "роз": 24570, - "▁pau": 24571, - "includes": 24572, - "assa": 24573, - "aders": 24574, - "▁Герма": 24575, - "▁estaven": 24576, - "▁earliest": 24577, - "▁resultado": 24578, - "mun": 24579, - "▁plots": 24580, - "din": 24581, - "sorted": 24582, - "▁preference": 24583, - "rió": 24584, - "туре": 24585, - "▁Ligue": 24586, - "▁завер": 24587, - "phr": 24588, - "▁pocket": 24589, - "▁parl": 24590, - "▁lak": 24591, - "▁powie": 24592, - "▁altres": 24593, - "$};": 24594, - "plain": 24595, - "▁Cred": 24596, - "itza": 24597, - "perp": 24598, - "Green": 24599, - "▁devoted": 24600, - "production": 24601, - "worker": 24602, - "elsen": 24603, - "▁vern": 24604, - "▁március": 24605, - "▁Confeder": 24606, - "▁Liverpool": 24607, - "▁музи": 24608, - "▁emails": 24609, - "▁distances": 24610, - "▁segments": 24611, - "▁anth": 24612, - "▁wrest": 24613, - "▁hoog": 24614, - "▁cinema": 24615, - "rror": 24616, - "▁geboren": 24617, - "▁éc": 24618, - "Marker": 24619, - "▁Compet": 24620, - "▁листо": 24621, - "allowed": 24622, - "volume": 24623, - "Espagne": 24624, - "Ze": 24625, - "▁fixes": 24626, - "▁rond": 24627, - "▁arrangement": 24628, - "/~": 24629, - ".](": 24630, - "▁Források": 24631, - "▁weiteren": 24632, - "excel": 24633, - "▁змі": 24634, - "▁moderne": 24635, - "English": 24636, - "▁Transfermarkt": 24637, - "▁bearing": 24638, - "▁cleared": 24639, - "▁сам": 24640, - "▁divs": 24641, - "ći": 24642, - "▁этой": 24643, - "▁Геор": 24644, - "scene": 24645, - "▁ages": 24646, - "GEN": 24647, - "rän": 24648, - "▁Toul": 24649, - "▁Abs": 24650, - "ját": 24651, - "▁mediante": 24652, - "▁empres": 24653, - "▁Employee": 24654, - "▁polynomials": 24655, - "▁optimize": 24656, - "▁выступа": 24657, - "fare": 24658, - "вей": 24659, - "xf": 24660, - "quez": 24661, - "▁botan": 24662, - "▁defend": 24663, - "▁Quart": 24664, - "Mont": 24665, - "vb": 24666, - "tick": 24667, - "WD": 24668, - "mine": 24669, - "▁modific": 24670, - "notification": 24671, - "▁denn": 24672, - "▁algo": 24673, - "▁Spo": 24674, - "▁mistrzost": 24675, - "/:": 24676, - "▁apresent": 24677, - "▁прод": 24678, - "Volume": 24679, - "ską": 24680, - "protected": 24681, - "▁Turkish": 24682, - "azy": 24683, - "▁pouv": 24684, - "▁período": 24685, - "skog": 24686, - "▁entropy": 24687, - "zed": 24688, - "тори": 24689, - "▁lij": 24690, - "boards": 24691, - "▁стату": 24692, - "Bool": 24693, - "▁polity": 24694, - "@\",": 24695, - "▁рік": 24696, - "née": 24697, - "▁Zug": 24698, - "▁Uniti": 24699, - "émet": 24700, - "atience": 24701, - "dimen": 24702, - "▁Steven": 24703, - "Ha": 24704, - "ACTION": 24705, - "▁wand": 24706, - "▁Navar": 24707, - "▁січня": 24708, - "Watch": 24709, - "▁Stuart": 24710, - "▁zde": 24711, - "▁контро": 24712, - "dataset": 24713, - "yó": 24714, - "▁Bush": 24715, - "▁себя": 24716, - "▁worthy": 24717, - "▁Ble": 24718, - "▁propor": 24719, - "▁Village": 24720, - "▁ry": 24721, - "▁voit": 24722, - "▁копия": 24723, - "▁zp": 24724, - "▁cura": 24725, - "▁Html": 24726, - "▁Dieser": 24727, - "▁Days": 24728, - "onnes": 24729, - "▁antigu": 24730, - "▁Staaten": 24731, - "▁faint": 24732, - "ongs": 24733, - "▁öst": 24734, - "Redirect": 24735, - "ель": 24736, - "atorial": 24737, - "▁bother": 24738, - "EditText": 24739, - "▁Giul": 24740, - "▁заво": 24741, - "▁pueblo": 24742, - "▁Mississippi": 24743, - "jak": 24744, - "▁wings": 24745, - "onc": 24746, - "ível": 24747, - "iencia": 24748, - "entlicht": 24749, - "▁BTW": 24750, - "ornal": 24751, - "▁Коро": 24752, - "▁одним": 24753, - "▁salv": 24754, - "▁finden": 24755, - "geo": 24756, - "▁авиа": 24757, - "attung": 24758, - "viv": 24759, - "▁Luther": 24760, - "▁общи": 24761, - "▁Rolle": 24762, - "▁Abraham": 24763, - "▁centered": 24764, - "▁slash": 24765, - "isat": 24766, - "emann": 24767, - "Os": 24768, - "парта": 24769, - "▁Pablo": 24770, - "▁collaboration": 24771, - "paths": 24772, - "édition": 24773, - "▁viewed": 24774, - "▁consisted": 24775, - "▁recovered": 24776, - "▁Mexican": 24777, - "▁Fix": 24778, - "▁spell": 24779, - "Special": 24780, - "▁Ст": 24781, - "esseur": 24782, - "▁Украины": 24783, - "former": 24784, - "▁św": 24785, - "▁zeros": 24786, - "▁Straßen": 24787, - "▁organisation": 24788, - "üssen": 24789, - "▁Sierra": 24790, - "▁Season": 24791, - "▁volont": 24792, - "BeanFactory": 24793, - "▁помощ": 24794, - "▁pressing": 24795, - "▁equivalence": 24796, - "▁catt": 24797, - "icity": 24798, - "▁accomplished": 24799, - "▁yo": 24800, - "▁sic": 24801, - "▁imports": 24802, - "▁accommod": 24803, - "▁Porto": 24804, - "▁яка": 24805, - "▁loan": 24806, - "тики": 24807, - "▁checkout": 24808, - "▁assess": 24809, - "▁Population": 24810, - "urent": 24811, - "clojure": 24812, - "▁Santos": 24813, - "▁információ": 24814, - "POS": 24815, - "▁gare": 24816, - "▁kick": 24817, - "▁radical": 24818, - "▁Peace": 24819, - "▁streaming": 24820, - "camp": 24821, - "ząt": 24822, - "говор": 24823, - "▁Regierung": 24824, - "▁proceeded": 24825, - "fm": 24826, - "лены": 24827, - "▁earnest": 24828, - "▁Parad": 24829, - "requests": 24830, - "▁Raum": 24831, - "šč": 24832, - "▁policies": 24833, - "▁Tig": 24834, - "▁sitt": 24835, - "▁Energy": 24836, - "▁purely": 24837, - "▁Haut": 24838, - "▁Speed": 24839, - "bio": 24840, - "▁orange": 24841, - "▁biggest": 24842, - "▁britannique": 24843, - "▁Notable": 24844, - "vu": 24845, - "лении": 24846, - "бин": 24847, - "▁Nash": 24848, - "щение": 24849, - "▁ciel": 24850, - "adémie": 24851, - "▁грудня": 24852, - "▁joue": 24853, - "▁voted": 24854, - "rico": 24855, - "▁гор": 24856, - "▁команду": 24857, - "itivity": 24858, - "▁ще": 24859, - "▁definite": 24860, - "uropa": 24861, - "!\");": 24862, - "Defaults": 24863, - "▁некоторы": 24864, - "édération": 24865, - "▁silly": 24866, - "▁talked": 24867, - "reu": 24868, - "▁Lomb": 24869, - "▁statue": 24870, - "кта": 24871, - "юр": 24872, - "umably": 24873, - "▁городе": 24874, - "▁Runtime": 24875, - "▁diagn": 24876, - "▁retro": 24877, - "▁Sverige": 24878, - "▁inicial": 24879, - "ienza": 24880, - "▁figlio": 24881, - "▁zog": 24882, - "▁rey": 24883, - "▁Rund": 24884, - "тный": 24885, - "▁ceased": 24886, - "erno": 24887, - "▁esa": 24888, - "▁trouv": 24889, - "▁Gemeinden": 24890, - "▁comercial": 24891, - "skap": 24892, - "enario": 24893, - "▁juris": 24894, - "TB": 24895, - "нала": 24896, - "▁vij": 24897, - "VO": 24898, - "▁clin": 24899, - "jör": 24900, - "сан": 24901, - "owała": 24902, - "ribución": 24903, - "▁ursprüng": 24904, - "▁condem": 24905, - "▁Stage": 24906, - "▁mixing": 24907, - "▁різ": 24908, - "▁fans": 24909, - "ház": 24910, - "social": 24911, - "zan": 24912, - "▁свой": 24913, - "Cookie": 24914, - "▁Roland": 24915, - "azionale": 24916, - "▁Sloven": 24917, - "▁Fiche": 24918, - "▁Sé": 24919, - "hä": 24920, - "▁officials": 24921, - "▁înt": 24922, - "Interceptor": 24923, - "Tables": 24924, - "▁davon": 24925, - "initialize": 24926, - "]=\"": 24927, - "▁Body": 24928, - "▁Upper": 24929, - "▁Collect": 24930, - "▁Zürich": 24931, - "Horizontal": 24932, - "Typ": 24933, - "▁político": 24934, - "▁RewriteCond": 24935, - "▁hoped": 24936, - "▁anxious": 24937, - "Liter": 24938, - "jahr": 24939, - "▁assemble": 24940, - "▁crypt": 24941, - "lahoma": 24942, - "ASH": 24943, - "▁Бри": 24944, - "▁Cic": 24945, - "twitter": 24946, - "hyper": 24947, - "▁Tell": 24948, - "ільки": 24949, - "вобо": 24950, - "▁bazie": 24951, - "▁contemporary": 24952, - "▁Parameter": 24953, - "stwa": 24954, - "▁bekend": 24955, - "cock": 24956, - "previous": 24957, - "enska": 24958, - "▁caller": 24959, - "]])": 24960, - "▁Raz": 24961, - "▁Selon": 24962, - "▁proposal": 24963, - "▁bý": 24964, - "▁Sied": 24965, - "▁Arbeits": 24966, - "▁pride": 24967, - "▁slope": 24968, - "idé": 24969, - "gradient": 24970, - "▁Джерела": 24971, - "▁SH": 24972, - "▁разрабо": 24973, - "iversity": 24974, - "сподар": 24975, - "\\{\\": 24976, - "▁стали": 24977, - "▁Einzel": 24978, - "▁rgba": 24979, - "▁Anim": 24980, - "▁alles": 24981, - "бар": 24982, - "erte": 24983, - "▁réalisé": 24984, - "Institut": 24985, - "▁markup": 24986, - "▁vars": 24987, - "▁gam": 24988, - "▁Василь": 24989, - "izza": 24990, - "▁Cob": 24991, - "▁Metal": 24992, - "▁leak": 24993, - "▁Lanc": 24994, - "Switch": 24995, - "Delay": 24996, - "atuur": 24997, - "▁четы": 24998, - "▁англий": 24999, - "▁legacy": 25000, - "▁desarroll": 25001, - "▁topological": 25002, - "▁jeweils": 25003, - "▁Nederlandse": 25004, - "▁atmosphere": 25005, - "urban": 25006, - "▁slov": 25007, - "▁lawyer": 25008, - "pecially": 25009, - "▁alternate": 25010, - "▁paramet": 25011, - "▁establishment": 25012, - "▁woods": 25013, - "PD": 25014, - "▁наи": 25015, - "▁mang": 25016, - "▁wechselte": 25017, - "ську": 25018, - ".=": 25019, - "▁fifteen": 25020, - "SUM": 25021, - "▁Fro": 25022, - "▁LED": 25023, - "owano": 25024, - "ствие": 25025, - "▁Données": 25026, - "tol": 25027, - "żyn": 25028, - "cref": 25029, - "ствии": 25030, - "horn": 25031, - "▁сооб": 25032, - "▁оборо": 25033, - "▁Complete": 25034, - "“)": 25035, - "▁kindly": 25036, - "▁Chamber": 25037, - "ség": 25038, - "WH": 25039, - "▁ambient": 25040, - "кро": 25041, - "▁cheval": 25042, - "▁написа": 25043, - "flu": 25044, - "▁Offiz": 25045, - "mate": 25046, - "natural": 25047, - "separ": 25048, - "empre": 25049, - "ViewHolder": 25050, - "fw": 25051, - "▁letech": 25052, - "▁trailing": 25053, - "atri": 25054, - "▁Gó": 25055, - "▁Bonn": 25056, - "▁unlikely": 25057, - "RAM": 25058, - "enst": 25059, - "Stats": 25060, - "▁политиче": 25061, - ")--(": 25062, - "▁trom": 25063, - "!...": 25064, - "▁Meanwhile": 25065, - "стана": 25066, - "▁Reino": 25067, - "▁Arist": 25068, - "$}}%": 25069, - "▁solem": 25070, - "closure": 25071, - "ignation": 25072, - "łod": 25073, - "▁divor": 25074, - "▁международ": 25075, - "=\"": 25230, - "Orientation": 25231, - "cid": 25232, - "Cart": 25233, - "▁murm": 25234, - "▁assez": 25235, - "▁linking": 25236, - "building": 25237, - "▁reconna": 25238, - "▁shook": 25239, - "managed": 25240, - "landa": 25241, - "▁León": 25242, - "▁création": 25243, - "дой": 25244, - "ocity": 25245, - "▁wij": 25246, - "▁wieś": 25247, - "xtart": 25248, - "▁Move": 25249, - "lungen": 25250, - "ствует": 25251, - "orney": 25252, - "optional": 25253, - "macro": 25254, - "Condition": 25255, - "▁squares": 25256, - "▁mistaken": 25257, - "ánt": 25258, - "▁Ris": 25259, - "▁sentences": 25260, - "erea": 25261, - "▁mij": 25262, - "Und": 25263, - "▁nombr": 25264, - "zA": 25265, - "▁Independent": 25266, - "▁preview": 25267, - "imas": 25268, - "▁males": 25269, - "inental": 25270, - "Thank": 25271, - "▁popol": 25272, - "▁pover": 25273, - "▁grasp": 25274, - "▁imped": 25275, - "▁campionato": 25276, - "▁Wei": 25277, - "▁titled": 25278, - "▁Además": 25279, - "▁Password": 25280, - "▁Pam": 25281, - "UILD": 25282, - "▁липня": 25283, - "werb": 25284, - "................": 25285, - "▁Río": 25286, - "▁teeth": 25287, - "bp": 25288, - "▁SW": 25289, - "ulaire": 25290, - "▁seized": 25291, - "▁Stef": 25292, - "úl": 25293, - "▁viz": 25294, - "iony": 25295, - "▁junt": 25296, - "▁která": 25297, - "▁września": 25298, - "<>": 25299, - "▁surg": 25300, - "▁tutte": 25301, - "▁Hob": 25302, - "повід": 25303, - "▁wohl": 25304, - "▁trag": 25305, - "▁Crown": 25306, - "▁trova": 25307, - "стову": 25308, - "▁Vienna": 25309, - "esehen": 25310, - "▁metropol": 25311, - "▁reflected": 25312, - "тета": 25313, - "▁traduc": 25314, - "▁Bast": 25315, - "▁erschien": 25316, - "woord": 25317, - "()\"": 25318, - "talet": 25319, - "▁roads": 25320, - "ведения": 25321, - "ührung": 25322, - "▁cogn": 25323, - "▁Valle": 25324, - "▁landing": 25325, - "▁Regex": 25326, - "▁Iowa": 25327, - "dział": 25328, - "▁erreichte": 25329, - "aum": 25330, - "▁founder": 25331, - "apolis": 25332, - "Compiler": 25333, - "▁kop": 25334, - "▁marc": 25335, - "▁територ": 25336, - "))`": 25337, - "▁lei": 25338, - "geon": 25339, - "▁weapons": 25340, - "▁horn": 25341, - "▁elif": 25342, - "▁Capital": 25343, - "će": 25344, - "▁forall": 25345, - "▁эта": 25346, - "preview": 25347, - "▁DNA": 25348, - "▁sid": 25349, - "orch": 25350, - "▁Ras": 25351, - "▁arab": 25352, - "Best": 25353, - "▁счита": 25354, - "▁López": 25355, - "ança": 25356, - "▁funkc": 25357, - "▁tienen": 25358, - ";&": 25359, - "museum": 25360, - "▁Err": 25361, - "▁resort": 25362, - "Nov": 25363, - "▁kal": 25364, - "MW": 25365, - "шь": 25366, - "anchor": 25367, - "▁роман": 25368, - "leading": 25369, - "▁manten": 25370, - "▁Silva": 25371, - "dade": 25372, - "▁designated": 25373, - "▁revista": 25374, - "Oct": 25375, - "percent": 25376, - "▁уні": 25377, - "identifier": 25378, - "mass": 25379, - "@@": 25380, - "ulsion": 25381, - "germeister": 25382, - "▁predicted": 25383, - "▁сви": 25384, - "жной": 25385, - "▁Ergeb": 25386, - "▁cust": 25387, - "▁removes": 25388, - "charg": 25389, - "пример": 25390, - "▁forming": 25391, - "asma": 25392, - "stdout": 25393, - "Fun": 25394, - "yme": 25395, - "tered": 25396, - "ursive": 25397, - "ighed": 25398, - "▁след": 25399, - "verband": 25400, - "▁LOG": 25401, - "rams": 25402, - "éon": 25403, - "endra": 25404, - "▁Bereich": 25405, - "▁temporal": 25406, - "▁langue": 25407, - "▁Inn": 25408, - "▁moreover": 25409, - "▁tutorials": 25410, - "Middle": 25411, - "▁советский": 25412, - "▁maintenance": 25413, - "asures": 25414, - "▁válto": 25415, - "BASE": 25416, - "▁disappear": 25417, - "ския": 25418, - "▁conocido": 25419, - "▁Нау": 25420, - "▁Libert": 25421, - "▁Harold": 25422, - "▁lifetime": 25423, - "▁Tür": 25424, - "▁zawod": 25425, - "omic": 25426, - "▁Retrieved": 25427, - "architecture": 25428, - "čka": 25429, - "iformes": 25430, - "development": 25431, - "ordnung": 25432, - "Inf": 25433, - "leben": 25434, - "▁Stars": 25435, - "signal": 25436, - "▁grammar": 25437, - "▁corso": 25438, - "▁Wagner": 25439, - "▁geht": 25440, - "▁royale": 25441, - "warn": 25442, - "umbled": 25443, - "▁instit": 25444, - "▁Ши": 25445, - "hh": 25446, - "▁refuge": 25447, - "▁favorite": 25448, - "ierto": 25449, - "▁condado": 25450, - "▁Ther": 25451, - "▁человека": 25452, - "▁Food": 25453, - "▁seizo": 25454, - "▁Initialize": 25455, - "▁connu": 25456, - "▁overlap": 25457, - "▁Emil": 25458, - "▁Martí": 25459, - "▁жовтня": 25460, - "erva": 25461, - "▁boats": 25462, - "ações": 25463, - "▁derrot": 25464, - "▁malloc": 25465, - "▁conject": 25466, - "jk": 25467, - "▁sare": 25468, - "лемен": 25469, - "▁sums": 25470, - "Authorization": 25471, - "▁Kun": 25472, - "]$,": 25473, - "gemeinde": 25474, - "odot": 25475, - "defin": 25476, - "▁emission": 25477, - "▁Крас": 25478, - "▁appart": 25479, - "▁stopping": 25480, - "▁Сред": 25481, - "▁conjug": 25482, - "▁insight": 25483, - "▁Broadcast": 25484, - "▁PMID": 25485, - "▁advantages": 25486, - "enes": 25487, - "▁residence": 25488, - "ljen": 25489, - "isseur": 25490, - "▁pubblicato": 25491, - "▁GitHub": 25492, - "▁Peru": 25493, - "▁galaxies": 25494, - "▁annotations": 25495, - "gas": 25496, - "▁répond": 25497, - "Js": 25498, - "▁independently": 25499, - "NP": 25500, - "▁inqu": 25501, - "▁grounds": 25502, - "Components": 25503, - "▁anten": 25504, - "▁вз": 25505, - "▁hos": 25506, - "▁sint": 25507, - "▁hiding": 25508, - "▁województ": 25509, - "Messages": 25510, - "▁показа": 25511, - "===": 25512, - "▁Abstract": 25513, - "▁läng": 25514, - "▁Formula": 25515, - "dawn": 25516, - "▁designs": 25517, - "Img": 25518, - "▁Portuguese": 25519, - "▁incluy": 25520, - "avigator": 25521, - "▁Brothers": 25522, - "▁continent": 25523, - "▁evidently": 25524, - "race": 25525, - "цького": 25526, - "▁reck": 25527, - "▁серпня": 25528, - "▁Grey": 25529, - "▁appeal": 25530, - "▁unlike": 25531, - "▁powershell": 25532, - "▁racc": 25533, - "fers": 25534, - "▁burning": 25535, - "fasst": 25536, - "installed": 25537, - "▁Give": 25538, - "▁colonial": 25539, - "▁€": 25540, - "▁Rö": 25541, - "▁christ": 25542, - "nehm": 25543, - "там": 25544, - "▁corpo": 25545, - "▁convirti": 25546, - "yter": 25547, - "Sym": 25548, - "▁Greece": 25549, - "▁moth": 25550, - "▁Johan": 25551, - "▁monarch": 25552, - "▁Download": 25553, - "▁craft": 25554, - "už": 25555, - "▁Luke": 25556, - "▁suffix": 25557, - "\\/": 25558, - "Have": 25559, - "▁карь": 25560, - "▁comfortable": 25561, - "▁tips": 25562, - "▁Після": 25563, - "▁броја": 25564, - "▁информа": 25565, - "MQ": 25566, - "бран": 25567, - "▁tx": 25568, - "▁slaves": 25569, - "▁firewall": 25570, - "▁Forces": 25571, - "atif": 25572, - "▁Quellen": 25573, - "▁théâtre": 25574, - "льных": 25575, - "▁расположен": 25576, - "▁Details": 25577, - "ką": 25578, - "▁longitud": 25579, - "INST": 25580, - "▁naval": 25581, - "Fernseh": 25582, - "essel": 25583, - "Grad": 25584, - "▁belang": 25585, - "▁aggi": 25586, - "ZygoteInit": 25587, - "łów": 25588, - "▁Sug": 25589, - "sil": 25590, - "▁exterior": 25591, - "щі": 25592, - "ORD": 25593, - "enser": 25594, - "▁rapide": 25595, - "▁темпера": 25596, - "incie": 25597, - "Si": 25598, - "avam": 25599, - "arded": 25600, - "▁Added": 25601, - "Endpoint": 25602, - "hardt": 25603, - "стран": 25604, - "▁estilo": 25605, - "▁Haz": 25606, - "▁musste": 25607, - "uo": 25608, - "iii": 25609, - "▁ří": 25610, - "anzen": 25611, - "жений": 25612, - "aha": 25613, - "ARNING": 25614, - "▁renov": 25615, - "▁divine": 25616, - "▁convinced": 25617, - "▁humans": 25618, - "▁departure": 25619, - "▁Mediter": 25620, - "qa": 25621, - "▁possessed": 25622, - "▁церкви": 25623, - "giv": 25624, - "▁свої": 25625, - "▁Ortste": 25626, - "Rich": 25627, - "puis": 25628, - "increment": 25629, - "▁Hannover": 25630, - "▁ucz": 25631, - "Done": 25632, - "▁alguns": 25633, - "FIX": 25634, - "▁Heritage": 25635, - "removeClass": 25636, - "фер": 25637, - "▁abc": 25638, - "Dr": 25639, - "▁семей": 25640, - "{:": 25641, - "▁seule": 25642, - "zeichnungen": 25643, - "addy": 25644, - "▁París": 25645, - "üsseld": 25646, - "▁reception": 25647, - "folio": 25648, - "tiny": 25649, - "▁recensement": 25650, - "▁Nur": 25651, - "▁kier": 25652, - "▁gmina": 25653, - "staat": 25654, - "ándose": 25655, - "ческая": 25656, - "▁speaker": 25657, - "▁exponential": 25658, - "▁Dieu": 25659, - "▁приз": 25660, - "▁Rafael": 25661, - "▁ggplot": 25662, - "▁Template": 25663, - "oure": 25664, - "▁Inner": 25665, - "ogne": 25666, - "igare": 25667, - "▁Arte": 25668, - "▁Cov": 25669, - "▁aufgrund": 25670, - "▁Бы": 25671, - "▁ceremony": 25672, - "▁Spart": 25673, - "jective": 25674, - "yi": 25675, - "▁inizi": 25676, - "▁latin": 25677, - "▁Nevertheless": 25678, - "▁Done": 25679, - "тря": 25680, - "▁Arr": 25681, - "season": 25682, - "▁складу": 25683, - "▁podczas": 25684, - "▁Beautiful": 25685, - "▁Weltkrieg": 25686, - "▁зо": 25687, - "▁overcome": 25688, - "▁Praha": 25689, - "▁району": 25690, - "▁subscription": 25691, - "igent": 25692, - "▁пока": 25693, - "latex": 25694, - "▁beach": 25695, - "▁роках": 25696, - "geg": 25697, - "▁probl": 25698, - "arguments": 25699, - "▁organizations": 25700, - "▁Nan": 25701, - "▁stones": 25702, - "▁Hunter": 25703, - "▁regularly": 25704, - "шого": 25705, - "▁flexible": 25706, - "opts": 25707, - "ář": 25708, - "witz": 25709, - "▁')": 25710, - "PASS": 25711, - "▁kraj": 25712, - "▁fake": 25713, - "heits": 25714, - "osph": 25715, - "parseInt": 25716, - "FALSE": 25717, - "▁profess": 25718, - "people": 25719, - "▁precip": 25720, - "dirname": 25721, - "▁perpet": 25722, - "▁Updated": 25723, - "rayed": 25724, - "▁provoc": 25725, - "▁травня": 25726, - "▁categorie": 25727, - "▁тео": 25728, - "сну": 25729, - "otr": 25730, - "▁Верхов": 25731, - "▁compét": 25732, - "Cost": 25733, - "▁wider": 25734, - "▁Obviously": 25735, - "писан": 25736, - "▁настоя": 25737, - "▁seeking": 25738, - "()),": 25739, - "▁équipe": 25740, - "▁commits": 25741, - "▁Svens": 25742, - "ябре": 25743, - "atern": 25744, - "▁heter": 25745, - "▁Bootstrap": 25746, - "éné": 25747, - "▁derivatives": 25748, - "▁Detroit": 25749, - "▁provincial": 25750, - "onomie": 25751, - "EB": 25752, - "▁cuer": 25753, - "▁относи": 25754, - "▁ней": 25755, - ")».": 25756, - "▁Ciudad": 25757, - "IAL": 25758, - "zyst": 25759, - ")\")": 25760, - "▁Alc": 25761, - "blogs": 25762, - "▁parmi": 25763, - "▁Albums": 25764, - "▁Boliv": 25765, - "▁clés": 25766, - "Products": 25767, - "uerdo": 25768, - "▁gelang": 25769, - "znik": 25770, - "hagen": 25771, - "anonymous": 25772, - "▁svg": 25773, - "▁Conseil": 25774, - "▁Ari": 25775, - "coli": 25776, - "▁czy": 25777, - "▁CV": 25778, - "▁ford": 25779, - "▁Außer": 25780, - "▁CI": 25781, - "▁tempt": 25782, - "▁Organisation": 25783, - "áš": 25784, - "▁cycles": 25785, - "▁geslacht": 25786, - "▁людей": 25787, - "ými": 25788, - "▁Spieler": 25789, - "efe": 25790, - "▁Marvel": 25791, - "▁portal": 25792, - "▁Серг": 25793, - "▁grado": 25794, - "▁handlers": 25795, - "▁Interface": 25796, - "AME": 25797, - "▁seriously": 25798, - "▁Binding": 25799, - "▁Rang": 25800, - "▁nada": 25801, - "oce": 25802, - "▁integra": 25803, - "ocracy": 25804, - "▁альбо": 25805, - "▁stability": 25806, - "Uns": 25807, - "▁veter": 25808, - "------+": 25809, - "▁serait": 25810, - "▁omitted": 25811, - "▁uncertainty": 25812, - "onian": 25813, - "▁resto": 25814, - "▁желез": 25815, - "▁одной": 25816, - "▁Bevölkerung": 25817, - "▁Kraft": 25818, - "стр": 25819, - "▁Moscow": 25820, - "lane": 25821, - "arab": 25822, - "▁spole": 25823, - "▁своего": 25824, - "?:": 25825, - "START": 25826, - "▁интер": 25827, - "▁sympt": 25828, - "▁Lorenzo": 25829, - "▁ejec": 25830, - "▁prosper": 25831, - "DAT": 25832, - "лимпий": 25833, - "▁shapes": 25834, - "valueOf": 25835, - "▁associate": 25836, - "▁Medien": 25837, - "ENV": 25838, - "▁сре": 25839, - "▁државе": 25840, - "▁theories": 25841, - "heb": 25842, - "▁Wayne": 25843, - "▁StringBuilder": 25844, - "iwers": 25845, - "▁Maps": 25846, - "Phys": 25847, - "\\}\\": 25848, - "▁Parte": 25849, - "▁Hudson": 25850, - "лон": 25851, - "Lng": 25852, - "▁ры": 25853, - "стей": 25854, - "lau": 25855, - "ancer": 25856, - "▁Coppa": 25857, - "▁війсь": 25858, - "▁ucc": 25859, - "▁Pattern": 25860, - "▁garbage": 25861, - "▁González": 25862, - "▁Encyclop": 25863, - "etten": 25864, - "External": 25865, - "REF": 25866, - ">;": 25867, - "lijke": 25868, - "▁intersect": 25869, - "▁Unless": 25870, - "▁deeper": 25871, - "▁жі": 25872, - "dent": 25873, - "lef": 25874, - "▁chanson": 25875, - "▁diffus": 25876, - "▁primi": 25877, - "▁Wieder": 25878, - "▁aws": 25879, - "owana": 25880, - "▁sociale": 25881, - "ikk": 25882, - "льной": 25883, - "▁divisions": 25884, - "лосо": 25885, - "▁Claud": 25886, - "▁Ya": 25887, - "▁voce": 25888, - "▁Branch": 25889, - "▁fitted": 25890, - "orr": 25891, - "ôtel": 25892, - "stroke": 25893, - "listener": 25894, - "iman": 25895, - "восто": 25896, - "▁Shah": 25897, - "Introduction": 25898, - "▁newline": 25899, - "▁tile": 25900, - "']))": 25901, - "▁travaux": 25902, - "CONFIG": 25903, - "▁quadratic": 25904, - "onneur": 25905, - "▁Giorg": 25906, - "▁identific": 25907, - "éricaine": 25908, - "▁UIView": 25909, - "▁Liberal": 25910, - "▁Koch": 25911, - "▁Berliner": 25912, - "▁notifications": 25913, - "▁Susan": 25914, - "▁cadre": 25915, - "▁Kloster": 25916, - "▁examine": 25917, - "▁един": 25918, - "▁UNION": 25919, - "▁alten": 25920, - "▁finit": 25921, - "▁pedig": 25922, - "cyk": 25923, - "▁mouvement": 25924, - "IOS": 25925, - "▁британ": 25926, - "▁bout": 25927, - "▁автор": 25928, - "ництво": 25929, - "ето": 25930, - "lera": 25931, - "cls": 25932, - "▁Ley": 25933, - "amy": 25934, - "agens": 25935, - "ashed": 25936, - "▁okrę": 25937, - "гро": 25938, - "ellett": 25939, - "▁Fellow": 25940, - "▁manifold": 25941, - "$),": 25942, - "lder": 25943, - "▁voz": 25944, - "▁begg": 25945, - "▁baron": 25946, - "▁fid": 25947, - "▁firing": 25948, - "ilda": 25949, - "dek": 25950, - "AU": 25951, - "itare": 25952, - "▁Ara": 25953, - "▁Exit": 25954, - "▁cinemat": 25955, - "▁intros": 25956, - "▁contacts": 25957, - "пени": 25958, - "▁möglich": 25959, - "▁Singapore": 25960, - "ström": 25961, - "▁Hern": 25962, - "▁sixth": 25963, - "▁publications": 25964, - "vie": 25965, - "▁Hat": 25966, - "▁accepting": 25967, - "ác": 25968, - "stwo": 25969, - "▁quietly": 25970, - "Photo": 25971, - "▁basket": 25972, - "▁eigenvalues": 25973, - "▁médec": 25974, - "▁Olimp": 25975, - "▁церков": 25976, - "alin": 25977, - "consum": 25978, - "▁lassen": 25979, - "▁анти": 25980, - "▁Seq": 25981, - "\";\r": 25982, - "rare": 25983, - "▁$|\\": 25984, - "▁nick": 25985, - "dflare": 25986, - "Vec": 25987, - "bindung": 25988, - "▁bg": 25989, - "changes": 25990, - "Days": 25991, - "▁Mouse": 25992, - "▁waited": 25993, - "▁Tomatoes": 25994, - "▁fas": 25995, - "verte": 25996, - "▁succession": 25997, - "сор": 25998, - "▁sols": 25999, - "▁Render": 26000, - "▁leadership": 26001, - "▁significance": 26002, - "▁gauche": 26003, - "cano": 26004, - "▁Pie": 26005, - "ensoort": 26006, - "▁cambio": 26007, - "▁уз": 26008, - "▁endeav": 26009, - "Completed": 26010, - "▁Архивная": 26011, - "jd": 26012, - "órico": 26013, - "▁churches": 26014, - "▁animate": 26015, - "SG": 26016, - "compute": 26017, - "▁uniformly": 26018, - "INIT": 26019, - "lles": 26020, - "HttpRequest": 26021, - "Ко": 26022, - "Diff": 26023, - "▁sah": 26024, - "airo": 26025, - "maybe": 26026, - "UTE": 26027, - "▁Dow": 26028, - "human": 26029, - "▁aurait": 26030, - "dark": 26031, - "▁repair": 26032, - "▁ner": 26033, - "▁Dabei": 26034, - "▁Botan": 26035, - "Original": 26036, - "ază": 26037, - "▁NAT": 26038, - "imper": 26039, - "▁Youth": 26040, - "thes": 26041, - "▁округа": 26042, - "▁Flo": 26043, - "▁breakfast": 26044, - "urls": 26045, - "▁übernahm": 26046, - "ários": 26047, - "▁Orange": 26048, - "▁Affairs": 26049, - "ske": 26050, - "▁notify": 26051, - "imoine": 26052, - "▁Arena": 26053, - "▁liberal": 26054, - "▁obec": 26055, - "ifa": 26056, - "guez": 26057, - "iono": 26058, - "ператор": 26059, - "▁retained": 26060, - "failed": 26061, - "bine": 26062, - "тных": 26063, - "▁CGRect": 26064, - "camera": 26065, - "idenote": 26066, - "KB": 26067, - "▁lights": 26068, - "▁Pictures": 26069, - "▁Squadron": 26070, - "▁Volk": 26071, - "▁burg": 26072, - ",]": 26073, - "Gi": 26074, - "êque": 26075, - "makeText": 26076, - "▁everybody": 26077, - "▁Hyper": 26078, - "▁Deux": 26079, - "▁glory": 26080, - "presentation": 26081, - "onica": 26082, - "▁frère": 26083, - "aget": 26084, - "▁hints": 26085, - "▁tunnel": 26086, - "▁Ej": 26087, - "ális": 26088, - "▁Viv": 26089, - "ственных": 26090, - "▁caps": 26091, - "PART": 26092, - "oci": 26093, - "▁prices": 26094, - "currency": 26095, - "▁achter": 26096, - "romagnet": 26097, - "gender": 26098, - "▁suis": 26099, - "versions": 26100, - "▁Training": 26101, - "inside": 26102, - "ege": 26103, - "▁totale": 26104, - "▁Daar": 26105, - "▁grudnia": 26106, - "▁Ier": 26107, - "▁occasions": 26108, - "▁kde": 26109, - "▁tensorflow": 26110, - "▁ór": 26111, - "Methods": 26112, - "▁looping": 26113, - "▁directeur": 26114, - "kę": 26115, - "▁isomorphism": 26116, - "▁João": 26117, - "▁aligned": 26118, - "онов": 26119, - "urger": 26120, - "▁nova": 26121, - "morrow": 26122, - "altern": 26123, - "HD": 26124, - "▁marqu": 26125, - "ativas": 26126, - "ggreg": 26127, - "▁ancien": 26128, - "nit": 26129, - "▁secured": 26130, - "mier": 26131, - "▁Ole": 26132, - "▁инте": 26133, - "▁minus": 26134, - "▁clearer": 26135, - "▁nello": 26136, - "▁információk": 26137, - "▁propre": 26138, - "{.": 26139, - "ilog": 26140, - "▁Quick": 26141, - "▁accus": 26142, - "employee": 26143, - "▁зу": 26144, - "цький": 26145, - "фіцій": 26146, - "▁публи": 26147, - "▁bent": 26148, - "▁позво": 26149, - "▁Пор": 26150, - "ází": 26151, - "ánico": 26152, - "emptyset": 26153, - "▁surtout": 26154, - "reno": 26155, - "unya": 26156, - "▁уез": 26157, - "▁Millionen": 26158, - "▁listopada": 26159, - "▁Maine": 26160, - "▁grupos": 26161, - "▁Storage": 26162, - "▁apple": 26163, - "▁Lö": 26164, - "oused": 26165, - "дро": 26166, - "sci": 26167, - "▁hibernate": 26168, - "dog": 26169, - "▁восто": 26170, - "▁intensity": 26171, - "legend": 26172, - "▁Wille": 26173, - "▁szerint": 26174, - "gesellschaft": 26175, - "▁Living": 26176, - "allo": 26177, - "▁Split": 26178, - "dru": 26179, - "need": 26180, - "▁Джон": 26181, - "▁Swiss": 26182, - "▁spraw": 26183, - "▁beho": 26184, - "▁fotograf": 26185, - "▁rencontre": 26186, - "▁kis": 26187, - "▁signing": 26188, - "akult": 26189, - "▁indexing": 26190, - "apor": 26191, - "▁conception": 26192, - "aggreg": 26193, - "▁Савез": 26194, - "▁affair": 26195, - "ění": 26196, - "August": 26197, - "▁секре": 26198, - "▁mieszkań": 26199, - "UIImage": 26200, - "▁bishop": 26201, - "▁servants": 26202, - "▁trail": 26203, - "digit": 26204, - "▁joins": 26205, - "▁Near": 26206, - "öffentlich": 26207, - ">{": 26208, - "▁skład": 26209, - "geführt": 26210, - "▁Holz": 26211, - "▁Militär": 26212, - "achi": 26213, - "Upper": 26214, - "pine": 26215, - "utzt": 26216, - "▁nuova": 26217, - "ibration": 26218, - "▁Bien": 26219, - "▁первый": 26220, - "▁Creating": 26221, - "Once": 26222, - "▁einmal": 26223, - "▁geometric": 26224, - "stvo": 26225, - "▁kW": 26226, - "▁decomposition": 26227, - "▁comedy": 26228, - "▁activation": 26229, - "▁angry": 26230, - "illeurs": 26231, - "▁instantly": 26232, - "▁suggesting": 26233, - "▁Clay": 26234, - "cot": 26235, - "▁Gén": 26236, - "($(": 26237, - "unwrap": 26238, - "▁lifted": 26239, - "▁Kit": 26240, - "▁linea": 26241, - "ок": 26242, - "hart": 26243, - "->_": 26244, - "▁nuit": 26245, - "▁Issue": 26246, - "лии": 26247, - "▁röm": 26248, - "Tasks": 26249, - "▁Sr": 26250, - "▁seis": 26251, - "asia": 26252, - "}}$.": 26253, - ":{": 26254, - "controls": 26255, - "▁Stim": 26256, - "▁Recht": 26257, - "ociación": 26258, - "▁Natal": 26259, - "▁Philippines": 26260, - "ulen": 26261, - "Fixed": 26262, - "▁switched": 26263, - "Zip": 26264, - "ospel": 26265, - "▁начале": 26266, - "▁Blan": 26267, - "urst": 26268, - "▁autour": 26269, - "Ca": 26270, - "▁latitude": 26271, - "▁Frei": 26272, - "▁Musée": 26273, - "▁Kurz": 26274, - "▁região": 26275, - "swap": 26276, - "▁hate": 26277, - "▁modifications": 26278, - "▁Ком": 26279, - "▁Antoine": 26280, - "uga": 26281, - "RECT": 26282, - "éter": 26283, - "GROUP": 26284, - "▁sacrific": 26285, - "▁Whe": 26286, - "▁Stevens": 26287, - "ologische": 26288, - "Summary": 26289, - "obs": 26290, - "hnen": 26291, - "<%=": 26292, - "dienst": 26293, - "remark": 26294, - "▁veröffentlicht": 26295, - "ел": 26296, - "▁Mock": 26297, - "▁Льв": 26298, - "▁três": 26299, - "gb": 26300, - "▁celebrated": 26301, - "▁Eb": 26302, - "▁costa": 26303, - "▁Geographic": 26304, - "▁attachment": 26305, - "mannschaft": 26306, - "▁dependence": 26307, - "��": 26308, - "▁attitude": 26309, - "etal": 26310, - "vic": 26311, - "baut": 26312, - "▁дов": 26313, - "▁interven": 26314, - "▁Gü": 26315, - "ónica": 26316, - "▁Pon": 26317, - "▁disponible": 26318, - "▁Feb": 26319, - "▁worship": 26320, - "▁Specifically": 26321, - "Hy": 26322, - "iju": 26323, - "▁cb": 26324, - "▁spac": 26325, - "leveland": 26326, - "▁localidad": 26327, - "▁preceding": 26328, - "▁Hessen": 26329, - "xp": 26330, - "▁Wein": 26331, - "▁Româ": 26332, - "▁giorno": 26333, - "▁квітня": 26334, - "llaços": 26335, - "▁Academia": 26336, - "▁kül": 26337, - "▁Års": 26338, - "▁нај": 26339, - "uclide": 26340, - "Internet": 26341, - "orton": 26342, - "▁corn": 26343, - "ями": 26344, - "▁\"*": 26345, - "▁Felix": 26346, - "apat": 26347, - "▁свои": 26348, - "MIT": 26349, - "made": 26350, - "▁locomot": 26351, - "хода": 26352, - "FP": 26353, - "▁pm": 26354, - ".*;": 26355, - "▁Hamm": 26356, - "`}": 26357, - "LayoutInflater": 26358, - "==\"": 26359, - "▁Eur": 26360, - "▁dogs": 26361, - "жении": 26362, - "▁azon": 26363, - "▁emulator": 26364, - "▁ricon": 26365, - "beeld": 26366, - "▁ну": 26367, - "▁approximate": 26368, - "LM": 26369, - "▁Bond": 26370, - "▁enh": 26371, - "ędz": 26372, - "▁solit": 26373, - "RelativeLayout": 26374, - "eteor": 26375, - "amentos": 26376, - "▁indirect": 26377, - "iből": 26378, - "▁gros": 26379, - "▁Originals": 26380, - "commands": 26381, - "Export": 26382, - "▁Avec": 26383, - "▁solemn": 26384, - "▁correction": 26385, - "▁проводи": 26386, - "▁Mosk": 26387, - "▁подо": 26388, - "▁gebied": 26389, - "▁następ": 26390, - "▁Driver": 26391, - "▁Ook": 26392, - "▁Vec": 26393, - "▁lungo": 26394, - "ficos": 26395, - "▁svol": 26396, - "▁kid": 26397, - "nja": 26398, - "▁Hr": 26399, - "▁поддер": 26400, - "▁visibility": 26401, - "▁Méd": 26402, - "▁cpu": 26403, - "discussion": 26404, - "Asset": 26405, - "▁defense": 26406, - "▁Anyone": 26407, - "▁Justin": 26408, - "iszt": 26409, - "▁Collins": 26410, - "▁Valent": 26411, - "▁Pale": 26412, - "▁fuel": 26413, - "▁nose": 26414, - "ríguez": 26415, - "▁Schles": 26416, - "▁Malays": 26417, - "▁commut": 26418, - "dro": 26419, - "uing": 26420, - "▁Rico": 26421, - "▁Emma": 26422, - "orp": 26423, - "▁Kirk": 26424, - "▁Quando": 26425, - "▁Neue": 26426, - "▁demande": 26427, - "▁Cover": 26428, - "▁rescue": 26429, - "▁gewählt": 26430, - "▁Calendar": 26431, - "▁Madonna": 26432, - "WP": 26433, - "oshi": 26434, - "▁Maven": 26435, - "▁belle": 26436, - "▁wx": 26437, - "▁sugar": 26438, - "▁Betrieb": 26439, - "▁equilibrium": 26440, - "EAR": 26441, - "▁texts": 26442, - "слов": 26443, - "▁czerwca": 26444, - "▁Düsseld": 26445, - "▁ELSE": 26446, - "▁amery": 26447, - "▁ani": 26448, - "▁obey": 26449, - "▁Nell": 26450, - "▁inne": 26451, - "▁тро": 26452, - "FD": 26453, - "cco": 26454, - "▁Zob": 26455, - "alette": 26456, - "▁május": 26457, - "ected": 26458, - "▁Turkey": 26459, - "▁Whether": 26460, - "qi": 26461, - "▁што": 26462, - "▁headquarters": 26463, - "endi": 26464, - "arus": 26465, - "opus": 26466, - "▁золо": 26467, - "▁destru": 26468, - "▁Lok": 26469, - "▁satisfaction": 26470, - "()\r": 26471, - "▁Тер": 26472, - "Jose": 26473, - "▁conquer": 26474, - "▁Effect": 26475, - "LayoutParams": 26476, - "iez": 26477, - "▁externs": 26478, - "▁gegenüber": 26479, - "▁ESP": 26480, - "olta": 26481, - "processor": 26482, - "▁Kult": 26483, - "▁Atlanta": 26484, - "▁tier": 26485, - "Operator": 26486, - "▁диа": 26487, - "▁пись": 26488, - "▁groß": 26489, - "▁hearts": 26490, - "▁millimeter": 26491, - "although": 26492, - "alles": 26493, - "▁Magic": 26494, - "training": 26495, - "oline": 26496, - "▁органі": 26497, - ">\\<^": 26498, - "ціаль": 26499, - "exports": 26500, - "Workbook": 26501, - "▁вересня": 26502, - "▁teles": 26503, - "▁economy": 26504, - "▁trap": 26505, - "▁refuse": 26506, - "▁stranger": 26507, - "▁instinct": 26508, - "пода": 26509, - "olan": 26510, - "▁ning": 26511, - "inflate": 26512, - "itatea": 26513, - "acks": 26514, - "▁Joy": 26515, - "FLAG": 26516, - "ailand": 26517, - "▁sorti": 26518, - "▁впер": 26519, - "▁pén": 26520, - "Nothing": 26521, - "▁száz": 26522, - "▁Áng": 26523, - "▁AUT": 26524, - "Actions": 26525, - "Every": 26526, - "▁червня": 26527, - "▁автомо": 26528, - "▁routine": 26529, - "▁estruct": 26530, - "▁Gang": 26531, - "▁holes": 26532, - "thesis": 26533, - "▁concl": 26534, - "▁pé": 26535, - "riers": 26536, - "ровой": 26537, - "adic": 26538, - "Speed": 26539, - "▁commanded": 26540, - "▁Nazionale": 26541, - "Managed": 26542, - "▁DECLARE": 26543, - "▁sedan": 26544, - "Strings": 26545, - "▁sacred": 26546, - "tersuch": 26547, - "▁abitanti": 26548, - "brit": 26549, - "▁NCAA": 26550, - "▁СП": 26551, - "▁aged": 26552, - "▁Chiesa": 26553, - "▁revision": 26554, - "opro": 26555, - "▁overwrite": 26556, - "embros": 26557, - "▁sortie": 26558, - "▁otten": 26559, - "xiv": 26560, - "▁deli": 26561, - "▁Asp": 26562, - "▁balls": 26563, - "kaf": 26564, - "▁brave": 26565, - "▁всего": 26566, - "egn": 26567, - "jpeg": 26568, - "▁Osten": 26569, - "Constants": 26570, - "▁Infantry": 26571, - "▁Nev": 26572, - "▁яких": 26573, - "▁муниципа": 26574, - "cija": 26575, - "▁poem": 26576, - "▁negro": 26577, - "хар": 26578, - "▁Ask": 26579, - "▁avo": 26580, - "▁Meyer": 26581, - "▁Westen": 26582, - "▁oko": 26583, - "agin": 26584, - "▁Süden": 26585, - "entries": 26586, - "▁Republik": 26587, - "CollectionView": 26588, - "-------": 26589, - "▁firefox": 26590, - "▁alcune": 26591, - "▁фото": 26592, - "▁отрима": 26593, - "~~~~~~~~": 26594, - "▁Раз": 26595, - "▁Complex": 26596, - "▁pia": 26597, - "▁publicada": 26598, - "wei": 26599, - "cedure": 26600, - "occupation": 26601, - "▁medicine": 26602, - "▁drove": 26603, - "Problem": 26604, - "▁beginner": 26605, - "▁thoroughly": 26606, - "uria": 26607, - "avant": 26608, - "ucha": 26609, - "▁lever": 26610, - "▁teatro": 26611, - "AVA": 26612, - "squ": 26613, - "trat": 26614, - "ivatal": 26615, - "▁dirty": 26616, - "▁seconde": 26617, - "▁gravit": 26618, - "▁proposition": 26619, - "hbar": 26620, - "omini": 26621, - "▁”": 26622, - "▁Camil": 26623, - "▁queen": 26624, - "modifier": 26625, - "Jan": 26626, - "▁lyr": 26627, - "ComboBox": 26628, - "ionic": 26629, - "▁holy": 26630, - "▁Sebastian": 26631, - "|_{": 26632, - "▁{@": 26633, - "▁можно": 26634, - "▁Creative": 26635, - "▁interess": 26636, - "▁CT": 26637, - "ições": 26638, - "▁chant": 26639, - "▁współ": 26640, - "▁Мексика": 26641, - "▁ranked": 26642, - "▁października": 26643, - "▁brut": 26644, - "▁farther": 26645, - "▁Verb": 26646, - "▁Seven": 26647, - "lbl": 26648, - "▁mentions": 26649, - "▁Fight": 26650, - "ifen": 26651, - "▁bog": 26652, - "▁regres": 26653, - "▁scoring": 26654, - "icane": 26655, - "▁Elli": 26656, - "▁pierw": 26657, - "measure": 26658, - "ńskiej": 26659, - "#{": 26660, - "▁деся": 26661, - "▁varmaste": 26662, - "▁Unix": 26663, - "IZ": 26664, - "itié": 26665, - "Primary": 26666, - "▁Springer": 26667, - "üng": 26668, - "▁anv": 26669, - "▁versione": 26670, - "▁shoulders": 26671, - "▁брига": 26672, - "▁jav": 26673, - "ltal": 26674, - "▁kallaste": 26675, - "▁Mitchell": 26676, - "▁wireless": 26677, - "▁Ál": 26678, - "respons": 26679, - "could": 26680, - "▁relax": 26681, - "Lond": 26682, - "ńcz": 26683, - "ствовал": 26684, - "▁polski": 26685, - "enç": 26686, - "zar": 26687, - "▁dtype": 26688, - "owned": 26689, - "unknown": 26690, - "▁mutable": 26691, - "▁siempre": 26692, - "▁Montreal": 26693, - "▁locate": 26694, - "▁traces": 26695, - "▁insgesamt": 26696, - "▁Nil": 26697, - "▁прода": 26698, - "▁Warner": 26699, - "▁Nau": 26700, - "triangle": 26701, - "▁concentration": 26702, - "▁gentlemen": 26703, - "ächt": 26704, - "filters": 26705, - "incipal": 26706, - "VALID": 26707, - "▁депута": 26708, - "adó": 26709, - "▁konst": 26710, - "gså": 26711, - "agas": 26712, - "▁meilleur": 26713, - "▁данным": 26714, - "єдна": 26715, - "encoded": 26716, - "<'": 26717, - "▁sheets": 26718, - "cuador": 26719, - "▁використову": 26720, - "▁Deput": 26721, - "▁manière": 26722, - "ąg": 26723, - "csol": 26724, - ")$-": 26725, - "UIView": 26726, - "▁millones": 26727, - "▁Ehren": 26728, - "Sil": 26729, - "▁atac": 26730, - "▁Cold": 26731, - "\"\\": 26732, - "▁approached": 26733, - "▁Årsmed": 26734, - "WM": 26735, - "▁Deport": 26736, - "mis": 26737, - "andbox": 26738, - "observ": 26739, - "setting": 26740, - "ható": 26741, - "▁strat": 26742, - "▁spre": 26743, - "▁personne": 26744, - "▁dirige": 26745, - "pull": 26746, - "dating": 26747, - "▁Fact": 26748, - "▁manipulate": 26749, - "▁MAC": 26750, - "▁dej": 26751, - "ultimo": 26752, - "FX": 26753, - "Life": 26754, - "▁crack": 26755, - "▁mí": 26756, - "▁пове": 26757, - "▁wore": 26758, - "université": 26759, - "▁formulas": 26760, - "▁Elisabeth": 26761, - "plots": 26762, - "mile": 26763, - "▁menor": 26764, - "тил": 26765, - "keyword": 26766, - "▁Baltimore": 26767, - "hrer": 26768, - "▁Clement": 26769, - "vim": 26770, - "rass": 26771, - "Take": 26772, - "▁című": 26773, - "▁Convention": 26774, - "atge": 26775, - "seed": 26776, - "▁Dí": 26777, - "▁Spider": 26778, - "ahoo": 26779, - "▁имеет": 26780, - "ührt": 26781, - "▁пописа": 26782, - "▁Cot": 26783, - "▁nobles": 26784, - "RESS": 26785, - "▁chemin": 26786, - "▁główn": 26787, - "GG": 26788, - "▁Germania": 26789, - "▁Alexandre": 26790, - "hens": 26791, - "swift": 26792, - "oop": 26793, - "Subview": 26794, - "▁requiring": 26795, - "ędzy": 26796, - "▁fict": 26797, - "▁Констан": 26798, - "▁déput": 26799, - "▁surprising": 26800, - "▁deix": 26801, - "▁unterschied": 26802, - "inson": 26803, - "▁Character": 26804, - "▁gestion": 26805, - "chus": 26806, - "comes": 26807, - "▁neur": 26808, - "▁yeux": 26809, - "ollar": 26810, - "▁parad": 26811, - "▁maggiore": 26812, - "TRAN": 26813, - "▁votre": 26814, - "▁descent": 26815, - "▁Icon": 26816, - "▁Judge": 26817, - "▁occupation": 26818, - "eping": 26819, - "▁tongue": 26820, - "▁Enllaços": 26821, - "ruf": 26822, - "▁protein": 26823, - "▁visitors": 26824, - "axy": 26825, - "esten": 26826, - "blica": 26827, - "hw": 26828, - "▁spirits": 26829, - "▁reduces": 26830, - "▁мен": 26831, - "▁Lamb": 26832, - "▁Mine": 26833, - "▁verified": 26834, - "▁Baby": 26835, - "▁prize": 26836, - "вър": 26837, - "▁ratings": 26838, - "▁fore": 26839, - "asha": 26840, - "urrence": 26841, - "▁intér": 26842, - "▁Olímp": 26843, - "cra": 26844, - "▁computational": 26845, - "irche": 26846, - ".: ": 26847, - "▁illustrated": 26848, - "▁Share": 26849, - "▁households": 26850, - "▁convolution": 26851, - "oemd": 26852, - "▁zdoby": 26853, - "ccc": 26854, - "▁quantities": 26855, - "Che": 26856, - "Should": 26857, - "▁genius": 26858, - "adj": 26859, - "хва": 26860, - "Петер": 26861, - "EMA": 26862, - "▁Rights": 26863, - "▁Eli": 26864, - "VAR": 26865, - "шло": 26866, - "▁збір": 26867, - "iftung": 26868, - "▁contributed": 26869, - "zef": 26870, - "▁CHAR": 26871, - "▁Sib": 26872, - "▁Mant": 26873, - "▁связи": 26874, - "▁javafx": 26875, - "▁cependant": 26876, - "▁intu": 26877, - "▁твор": 26878, - "▁Ó": 26879, - "guer": 26880, - "rado": 26881, - "▁Revol": 26882, - "▁fémin": 26883, - "▁Orleans": 26884, - "▁poj": 26885, - "▁prez": 26886, - "Tex": 26887, - "ouwd": 26888, - "?(": 26889, - "▁LIM": 26890, - "istique": 26891, - "esar": 26892, - "▁heures": 26893, - "icki": 26894, - "▁dbo": 26895, - "skih": 26896, - "confirm": 26897, - "▁világ": 26898, - "▁ciutat": 26899, - "▁DR": 26900, - "▁Hawai": 26901, - "ched": 26902, - "▁spher": 26903, - "▁Artikel": 26904, - "▁Multiple": 26905, - "ciu": 26906, - "▁мы": 26907, - "▁lipca": 26908, - "](/": 26909, - "Strategy": 26910, - "▁Alabama": 26911, - "SDK": 26912, - "UTC": 26913, - "__.": 26914, - "Arguments": 26915, - "▁setContentView": 26916, - "île": 26917, - "ByVal": 26918, - "▁JVM": 26919, - "ющего": 26920, - "▁Leonard": 26921, - "▁justify": 26922, - "цем": 26923, - "▁nab": 26924, - "CCESS": 26925, - "▁hopes": 26926, - ")&": 26927, - "sero": 26928, - "▁зай": 26929, - "слід": 26930, - "▁Rég": 26931, - "▁Sang": 26932, - "▁fung": 26933, - "baar": 26934, - "▁coffee": 26935, - "assembly": 26936, - "▁Він": 26937, - "эй": 26938, - "▁comprend": 26939, - "filled": 26940, - "рд": 26941, - "odia": 26942, - "▁gens": 26943, - "fluss": 26944, - "Drawable": 26945, - "▁surve": 26946, - "Setup": 26947, - "▁należ": 26948, - "▁conjunto": 26949, - "▁Его": 26950, - "▁oldal": 26951, - "▁verbose": 26952, - "▁Electric": 26953, - "▁Harrison": 26954, - "engen": 26955, - "paragraph": 26956, - "▁nouvelles": 26957, - "▁време": 26958, - "▁memor": 26959, - "▁mayoría": 26960, - "сад": 26961, - "▁bataille": 26962, - "▁thermal": 26963, - "▁Хронологи": 26964, - "▁Better": 26965, - "bye": 26966, - "▁театра": 26967, - "roe": 26968, - "▁segle": 26969, - "rott": 26970, - "▁opinions": 26971, - ")})": 26972, - "ühle": 26973, - "▁Gün": 26974, - "▁Щ": 26975, - "ból": 26976, - "▁Larry": 26977, - "▁solic": 26978, - "▁zwar": 26979, - "▁Caroline": 26980, - "▁Reichs": 26981, - "Extensions": 26982, - "migr": 26983, - ":@": 26984, - "▁enumerate": 26985, - "▁eigenen": 26986, - "▁explore": 26987, - "ému": 26988, - "▁gat": 26989, - "▁imperial": 26990, - "▁Usually": 26991, - "▁tud": 26992, - "▁укра": 26993, - "him": 26994, - "▁corners": 26995, - "▁SER": 26996, - "▁interpreter": 26997, - "▁Ice": 26998, - "▁amounts": 26999, - "▁Pala": 27000, - "▁tinha": 27001, - "vole": 27002, - "▁gle": 27003, - "ucci": 27004, - "▁siehe": 27005, - "Jack": 27006, - "▁woll": 27007, - "▁elder": 27008, - "▁кораб": 27009, - "▁engag": 27010, - "▁Laurent": 27011, - "▁achiev": 27012, - "istik": 27013, - "arct": 27014, - "тного": 27015, - "▁gir": 27016, - "▁Singh": 27017, - "mathop": 27018, - "USA": 27019, - "▁Projekt": 27020, - "▁debe": 27021, - "richtung": 27022, - "▁Tsch": 27023, - "uminate": 27024, - "▁szó": 27025, - "lyph": 27026, - "зидент": 27027, - "▁limitations": 27028, - "ющей": 27029, - "▁bila": 27030, - "Push": 27031, - "▁offering": 27032, - "iennes": 27033, - "Fri": 27034, - "▁postgresql": 27035, - "▁Tommy": 27036, - "▁particolare": 27037, - "▁století": 27038, - "▁arrib": 27039, - "▁Eva": 27040, - "school": 27041, - "▁vendor": 27042, - "▁Dallas": 27043, - "▁prolong": 27044, - "CREATE": 27045, - "▁suivante": 27046, - "STATUS": 27047, - "là": 27048, - "kv": 27049, - "▁häufig": 27050, - "▁Agricult": 27051, - "▁huit": 27052, - "▁inoltre": 27053, - "▁Lloyd": 27054, - "▁француз": 27055, - "▁выпол": 27056, - "▁faithful": 27057, - "▁Вар": 27058, - "▁verl": 27059, - "▁juego": 27060, - "▁Резултати": 27061, - ",...,": 27062, - "▁implicitly": 27063, - "irks": 27064, - "Calcul": 27065, - "▁meses": 27066, - "omed": 27067, - "▁pak": 27068, - "herit": 27069, - "▁optical": 27070, - "▁Історія": 27071, - "veis": 27072, - "▁capitale": 27073, - "placeholder": 27074, - "intrag": 27075, - "▁Atlas": 27076, - ")];": 27077, - "icons": 27078, - "▁Bent": 27079, - "▁Widget": 27080, - "▁volunt": 27081, - "avo": 27082, - "égr": 27083, - "lige": 27084, - "▁NAME": 27085, - "▁abstra": 27086, - "▁fís": 27087, - "▁Browser": 27088, - "▁bush": 27089, - "hall": 27090, - "▁clouds": 27091, - "▁SUB": 27092, - "▁tandis": 27093, - "▁Commonwealth": 27094, - "тая": 27095, - "▁exhaust": 27096, - "________________": 27097, - "▁Statistics": 27098, - "▁Religion": 27099, - "▁Muham": 27100, - "uals": 27101, - "goto": 27102, - "Digital": 27103, - "Family": 27104, - "▁Bun": 27105, - "letin": 27106, - "Management": 27107, - "▁capabilities": 27108, - "annten": 27109, - "▁себе": 27110, - "▁stays": 27111, - "kter": 27112, - "▁dost": 27113, - "▁Тре": 27114, - "лович": 27115, - "▁dying": 27116, - "sections": 27117, - "ános": 27118, - "▁apparten": 27119, - "▁zoals": 27120, - "▁dressed": 27121, - "▁compress": 27122, - "ńska": 27123, - "▁sierpnia": 27124, - "▁титу": 27125, - "dictionary": 27126, - "▁rabb": 27127, - "▁vérit": 27128, - "Во": 27129, - "▁singleton": 27130, - "▁vital": 27131, - "Refresh": 27132, - "мель": 27133, - "▁Zh": 27134, - "▁Afghan": 27135, - "inkel": 27136, - "aaaa": 27137, - "▁participants": 27138, - "arin": 27139, - "▁Mold": 27140, - "▁primeros": 27141, - "▁ран": 27142, - "▁Амери": 27143, - "▁restaurant": 27144, - "ével": 27145, - "▁SL": 27146, - "▁Rey": 27147, - "chas": 27148, - "▁electrons": 27149, - "▁Pitts": 27150, - "▁Jules": 27151, - "май": 27152, - "enant": 27153, - "-}": 27154, - "лад": 27155, - "▁Москва": 27156, - "gom": 27157, - "▁Fernández": 27158, - "fund": 27159, - "interno": 27160, - "▁Mari": 27161, - "▁rius": 27162, - "▁Prozent": 27163, - "стрі": 27164, - "▁внут": 27165, - "anterie": 27166, - "▁прис": 27167, - "▁обы": 27168, - "▁Marina": 27169, - "▁occurrence": 27170, - "rikt": 27171, - "▁физи": 27172, - "▁schwer": 27173, - "▁Гре": 27174, - "Reset": 27175, - "▁mucho": 27176, - "andr": 27177, - "▁Wies": 27178, - "▁Keith": 27179, - "▁Julian": 27180, - "▁cole": 27181, - "ciendo": 27182, - "▁Contempor": 27183, - "etry": 27184, - "elian": 27185, - "гии": 27186, - "▁голо": 27187, - "▁dél": 27188, - "▁decent": 27189, - "РСР": 27190, - "▁szeptember": 27191, - "мест": 27192, - "castle": 27193, - "▁держав": 27194, - "}\")": 27195, - "▁ASCII": 27196, - "▁Glen": 27197, - "itzerland": 27198, - "Toggle": 27199, - "▁tradicional": 27200, - "▁Plat": 27201, - "vee": 27202, - "abgerufen": 27203, - "(|": 27204, - "CLI": 27205, - "}}$,": 27206, - "▁Bowl": 27207, - "▁Male": 27208, - "▁Bres": 27209, - "▁пси": 27210, - "▁Challenge": 27211, - "zó": 27212, - "▁projekt": 27213, - "▁negoti": 27214, - "above": 27215, - "▁перио": 27216, - "▁longest": 27217, - "authentic": 27218, - "▁tradu": 27219, - "▁mujeres": 27220, - "▁Andre": 27221, - "▁hadn": 27222, - "▁Schule": 27223, - "odel": 27224, - "bled": 27225, - "▁Trade": 27226, - "▁mobil": 27227, - "▁algunas": 27228, - "▁Lak": 27229, - "▁Connecticut": 27230, - "▁alco": 27231, - "▁Selbst": 27232, - "ił": 27233, - "▁alb": 27234, - "ouverneur": 27235, - "▁sr": 27236, - "▁vba": 27237, - "loped": 27238, - "▁Partei": 27239, - "uate": 27240, - "▁Authentication": 27241, - "bei": 27242, - "}}.": 27243, - "▁konnten": 27244, - "▁допо": 27245, - "▁hyd": 27246, - "Office": 27247, - "données": 27248, - "▁Cleveland": 27249, - "rita": 27250, - "íos": 27251, - "▁выше": 27252, - "▁Roberts": 27253, - "▁élections": 27254, - "▁'')": 27255, - "▁publishing": 27256, - "▁bapt": 27257, - "<>();": 27258, - "missing": 27259, - "ровано": 27260, - "▁housing": 27261, - "▁inference": 27262, - "▁Renaissance": 27263, - "▁règ": 27264, - "▁Steph": 27265, - "CES": 27266, - "ERE": 27267, - "кет": 27268, - "OU": 27269, - "▁grouping": 27270, - "verkehr": 27271, - "jih": 27272, - "agli": 27273, - "▁milk": 27274, - "lait": 27275, - "Stage": 27276, - "▁byly": 27277, - "▁wooden": 27278, - "keley": 27279, - "etra": 27280, - "▁Peg": 27281, - "▁donné": 27282, - "adal": 27283, - "sequently": 27284, - "▁insbesondere": 27285, - "ELD": 27286, - "▁Mam": 27287, - "▁volte": 27288, - "▁prospect": 27289, - "нове": 27290, - "▁denoted": 27291, - "▁overlay": 27292, - "Permission": 27293, - "een": 27294, - "▁EM": 27295, - "▁uz": 27296, - "Mc": 27297, - "olit": 27298, - "▁servi": 27299, - "▁Heidel": 27300, - "▁Wiener": 27301, - "▁illegal": 27302, - "▁predictions": 27303, - "▁goog": 27304, - "hon": 27305, - "▁Cinema": 27306, - "▁револю": 27307, - "▁Rule": 27308, - "wod": 27309, - "▁radiation": 27310, - "oł": 27311, - "ової": 27312, - "▁Perform": 27313, - "▁prisoner": 27314, - "▁amet": 27315, - "▁figura": 27316, - "▁Commander": 27317, - "▁официаль": 27318, - "▁trov": 27319, - "▁acted": 27320, - "▁workflow": 27321, - "▁Республики": 27322, - "▁guidance": 27323, - "▁мене": 27324, - "National": 27325, - "▁Kel": 27326, - "webpack": 27327, - "простра": 27328, - "▁llamado": 27329, - "alog": 27330, - "terra": 27331, - "ixen": 27332, - "legraph": 27333, - "äischen": 27334, - "▁teachers": 27335, - "uden": 27336, - "▁også": 27337, - "possible": 27338, - "▁Soul": 27339, - "▁Geography": 27340, - "▁зада": 27341, - "hit": 27342, - "▁anger": 27343, - "▁remporte": 27344, - "Pod": 27345, - "чке": 27346, - "▁aria": 27347, - "▁Astronom": 27348, - "chapter": 27349, - "▁fork": 27350, - "▁Cuando": 27351, - "mense": 27352, - "▁Christians": 27353, - "gc": 27354, - "▁#(": 27355, - "Organ": 27356, - "▁steady": 27357, - "pse": 27358, - "жить": 27359, - "ignes": 27360, - "aterra": 27361, - "movie": 27362, - "posta": 27363, - "raste": 27364, - "▁Ressource": 27365, - "▁País": 27366, - "▁();": 27367, - "▁penalty": 27368, - "тт": 27369, - "▁trasfer": 27370, - "century": 27371, - "▁cleaner": 27372, - "selenium": 27373, - "ortheast": 27374, - "xic": 27375, - "лії": 27376, - "▁inglese": 27377, - "▁Tang": 27378, - "▁gods": 27379, - "frent": 27380, - "ciente": 27381, - "starts": 27382, - "▁musica": 27383, - "ymnasium": 27384, - "----+": 27385, - "▁terrest": 27386, - "▁retrieved": 27387, - "iare": 27388, - "unning": 27389, - "▁Marcus": 27390, - "▁promote": 27391, - "warning": 27392, - "тый": 27393, - "})$,": 27394, - "Transport": 27395, - "▁reson": 27396, - "▁Clo": 27397, - "▁erm": 27398, - "▁eliminate": 27399, - "heimer": 27400, - "▁saves": 27401, - "▁prayer": 27402, - "Classes": 27403, - "Express": 27404, - "▁Akademie": 27405, - "Else": 27406, - "Turn": 27407, - "▁ikke": 27408, - "▁rei": 27409, - "▁dirett": 27410, - "▁Rost": 27411, - "▁Papa": 27412, - "▁jsf": 27413, - "лением": 27414, - "▁Tul": 27415, - "▁Zak": 27416, - "▁niemieck": 27417, - "Tw": 27418, - "amour": 27419, - "nested": 27420, - "ppets": 27421, - "шп": 27422, - "dit": 27423, - "зен": 27424, - "zyma": 27425, - "hrte": 27426, - "Constraints": 27427, - "▁ownership": 27428, - "Arm": 27429, - "▁consumption": 27430, - "▁fet": 27431, - "ivari": 27432, - "chrom": 27433, - "setAttribute": 27434, - "▁compose": 27435, - "▁backing": 27436, - "▁Paz": 27437, - "▁scri": 27438, - "▁Mechan": 27439, - "▁Norway": 27440, - "▁Jup": 27441, - "▁mér": 27442, - "▁administrator": 27443, - "▁cabe": 27444, - "ivalent": 27445, - "▁throne": 27446, - "▁dues": 27447, - "▁humor": 27448, - "▁Adri": 27449, - "▁abort": 27450, - "ñas": 27451, - "▁Київ": 27452, - "jící": 27453, - "▁zweite": 27454, - "▁doub": 27455, - "ershell": 27456, - "шой": 27457, - "▁Fam": 27458, - "åk": 27459, - "▁tweede": 27460, - "▁Rib": 27461, - "▁før": 27462, - "pción": 27463, - "inned": 27464, - "rvm": 27465, - "▁Appar": 27466, - "▁Dj": 27467, - "▁Shang": 27468, - "Distance": 27469, - "▁dawn": 27470, - "▁Matth": 27471, - "▁errichtet": 27472, - "phantom": 27473, - "▁releases": 27474, - "Recognizer": 27475, - "▁Kop": 27476, - "▁Pul": 27477, - "ué": 27478, - "nats": 27479, - "relax": 27480, - "▁fled": 27481, - "▁experiences": 27482, - "щее": 27483, - "меня": 27484, - "▁персона": 27485, - "▁Identity": 27486, - "rets": 27487, - "kunft": 27488, - "larg": 27489, - "ListItem": 27490, - "vd": 27491, - "runner": 27492, - "lant": 27493, - "ipart": 27494, - "bay": 27495, - "iei": 27496, - "▁lengths": 27497, - "▁cattle": 27498, - "jets": 27499, - "▁sehen": 27500, - "Jul": 27501, - "fatt": 27502, - "▁surrender": 27503, - "▁Trump": 27504, - "дного": 27505, - "▁Fourier": 27506, - "ieben": 27507, - "_\"": 27508, - "▁früher": 27509, - "▁garant": 27510, - "uclidean": 27511, - "ägt": 27512, - "▁півден": 27513, - "Pages": 27514, - "▁rivers": 27515, - "▁donner": 27516, - "svn": 27517, - "▁ł": 27518, - "ově": 27519, - "▁Leist": 27520, - "arial": 27521, - "ových": 27522, - "▁filling": 27523, - "▁musicale": 27524, - "maxim": 27525, - "▁dashed": 27526, - "▁Нов": 27527, - "Drawer": 27528, - "▁Medicine": 27529, - "▁dokument": 27530, - "owel": 27531, - "vić": 27532, - "hely": 27533, - "▁elet": 27534, - "Seconds": 27535, - "▁Gonz": 27536, - "rou": 27537, - "▁finales": 27538, - "rn": 27539, - "fø": 27540, - "▁indexed": 27541, - "className": 27542, - "▁ober": 27543, - "▁duas": 27544, - "▁optimized": 27545, - "▁kdy": 27546, - "versary": 27547, - "energy": 27548, - "▁центра": 27549, - "▁currency": 27550, - "zyż": 27551, - "Like": 27552, - "▁Ги": 27553, - "sono": 27554, - "▁palab": 27555, - "▁pushing": 27556, - "ublik": 27557, - "▁Hass": 27558, - "}\\,\\": 27559, - "unker": 27560, - "▁Factory": 27561, - "▁Resources": 27562, - "datei": 27563, - "▁Tools": 27564, - "▁stehen": 27565, - "sime": 27566, - "▁Ху": 27567, - "▁hoch": 27568, - "▁Rodríguez": 27569, - "zeitig": 27570, - "▁Terry": 27571, - "▁обу": 27572, - "Usage": 27573, - "urchase": 27574, - "lö": 27575, - "▁Introduction": 27576, - "▁participation": 27577, - "ος": 27578, - "ogli": 27579, - "apy": 27580, - "▁hopefully": 27581, - "ponder": 27582, - "▁Yang": 27583, - "▁promises": 27584, - "▁верну": 27585, - "▁остров": 27586, - "^{+": 27587, - "▁mostra": 27588, - "▁CURLOPT": 27589, - "HH": 27590, - "▁stdout": 27591, - "▁brilliant": 27592, - "▁manuscript": 27593, - "▁decir": 27594, - "▁Bolog": 27595, - "▁места": 27596, - "▁invisible": 27597, - "▁Chal": 27598, - "▁analyze": 27599, - "prilis": 27600, - "attend": 27601, - "Mvc": 27602, - "than": 27603, - "cko": 27604, - "▁Quebec": 27605, - "▁planta": 27606, - "▁télévis": 27607, - "▁uninstall": 27608, - "ències": 27609, - "▁gminie": 27610, - "▁Pref": 27611, - "▁lequel": 27612, - "Invocation": 27613, - "▁Í": 27614, - "▁transformed": 27615, - "MAN": 27616, - "gebaut": 27617, - "▁сохра": 27618, - "▁второй": 27619, - "▁Lith": 27620, - "wendung": 27621, - "▁Politik": 27622, - "▁Senator": 27623, - "▁LL": 27624, - "ждение": 27625, - "ште": 27626, - "▁Cés": 27627, - "▁bande": 27628, - "▁historian": 27629, - "▁passwords": 27630, - "malloc": 27631, - "▁semif": 27632, - "▁rå": 27633, - "unicí": 27634, - "Available": 27635, - "Optional": 27636, - "▁Twe": 27637, - "▁kró": 27638, - "▁subsets": 27639, - "▁DAT": 27640, - "▁doubles": 27641, - "никами": 27642, - "▁зв": 27643, - "gegeben": 27644, - "▁Попис": 27645, - "▁július": 27646, - "▁meteor": 27647, - "Mount": 27648, - "ivent": 27649, - "▁Nathan": 27650, - "▁Schutz": 27651, - "egov": 27652, - "▁död": 27653, - "▁meat": 27654, - "▁пункт": 27655, - "▁minds": 27656, - "elivery": 27657, - "▁TLS": 27658, - "рем": 27659, - "ckså": 27660, - "▁stayed": 27661, - "▁Bin": 27662, - "▁Pia": 27663, - "▁имен": 27664, - "▁Bobby": 27665, - "▁produit": 27666, - "empio": 27667, - "▁reducing": 27668, - "▁Yu": 27669, - "▁Geschäft": 27670, - "▁perché": 27671, - "▁cors": 27672, - "▁icons": 27673, - "AppData": 27674, - "▁Hog": 27675, - "▁рів": 27676, - "▁Sans": 27677, - "▁siège": 27678, - "stellen": 27679, - "Brush": 27680, - "OFF": 27681, - "▁visitor": 27682, - "▁bath": 27683, - "▁fee": 27684, - "atisf": 27685, - "▁curv": 27686, - "▁folgender": 27687, - "▁conscience": 27688, - "▁Seattle": 27689, - "▁medieval": 27690, - "distribution": 27691, - "▁DM": 27692, - "▁мя": 27693, - "▁RUN": 27694, - "akov": 27695, - "ceil": 27696, - "▁letting": 27697, - "▁dov": 27698, - "▁оби": 27699, - "kiej": 27700, - "▁direkt": 27701, - "▁tm": 27702, - "colors": 27703, - "▁altro": 27704, - "▁tijdens": 27705, - "]{'": 27706, - "▁Bom": 27707, - "▁kunst": 27708, - "▁shelter": 27709, - "▁rav": 27710, - "predict": 27711, - "▁comenzó": 27712, - "▁świat": 27713, - "▁Durant": 27714, - "▁schemes": 27715, - "▁mesh": 27716, - "▁indicator": 27717, - "▁Emer": 27718, - "▁guilty": 27719, - "нец": 27720, - "▁consequences": 27721, - "cludes": 27722, - "▁Lower": 27723, - "▁поме": 27724, - "▁pace": 27725, - "даго": 27726, - "▁ambos": 27727, - "lb": 27728, - "▁educated": 27729, - "urale": 27730, - "anh": 27731, - "esség": 27732, - "▁associations": 27733, - "town": 27734, - "▁trif": 27735, - "samples": 27736, - "bos": 27737, - "▁Spect": 27738, - "▁Це": 27739, - "altung": 27740, - "▁Lob": 27741, - "▁curiosity": 27742, - "▁Weiter": 27743, - "estone": 27744, - "▁demol": 27745, - "▁apolog": 27746, - "▁Dynamic": 27747, - "Inner": 27748, - "esper": 27749, - "ecz": 27750, - "uellement": 27751, - "▁Hamiltonian": 27752, - "Atlas": 27753, - "▁argue": 27754, - "Foreign": 27755, - "collapse": 27756, - "▁términ": 27757, - "▁electronic": 27758, - "▁NR": 27759, - "▁corr": 27760, - "temps": 27761, - "IndexPath": 27762, - "яз": 27763, - "▁talál": 27764, - "today": 27765, - "wave": 27766, - "▁sib": 27767, - "▁спи": 27768, - "▁convey": 27769, - "▁Géographie": 27770, - "▁Нью": 27771, - "▁Hibernate": 27772, - "▁tin": 27773, - "dic": 27774, - "ppings": 27775, - "sweise": 27776, - "▁rolling": 27777, - "▁selects": 27778, - ")\\)": 27779, - "▁poeta": 27780, - "▁степени": 27781, - "▁Abr": 27782, - "▁höch": 27783, - "▁stern": 27784, - "▁fjär": 27785, - "▁installer": 27786, - "decl": 27787, - "▁miser": 27788, - "groupby": 27789, - "substr": 27790, - "▁phenomen": 27791, - "▁Wing": 27792, - "▁fills": 27793, - "▁único": 27794, - "Running": 27795, - "Come": 27796, - "irable": 27797, - "simeq": 27798, - "▁remp": 27799, - "kele": 27800, - "liers": 27801, - "▁kwietnia": 27802, - "▁interrupted": 27803, - "▁Jet": 27804, - "=\\{": 27805, - "ído": 27806, - "▁Taiwan": 27807, - "▁возра": 27808, - "▁alternatives": 27809, - "▁Tir": 27810, - "▁Reserve": 27811, - "▁Кур": 27812, - "▁Nobel": 27813, - "▁работал": 27814, - "▁axes": 27815, - "▁Cependant": 27816, - "ká": 27817, - "▁erneut": 27818, - "▁Demo": 27819, - "communic": 27820, - "constructor": 27821, - "▁Monday": 27822, - "Nil": 27823, - "HashMap": 27824, - "payment": 27825, - "▁fixing": 27826, - "▁ADD": 27827, - "review": 27828, - "▁possibil": 27829, - "▁grote": 27830, - "▁grouped": 27831, - "▁Lima": 27832, - "▁Augen": 27833, - "▁också": 27834, - "onas": 27835, - "▁debate": 27836, - "▁Ingl": 27837, - "Da": 27838, - "SOUR": 27839, - "ettbe": 27840, - "▁Battalion": 27841, - "▁Float": 27842, - "▁cone": 27843, - "readsheet": 27844, - "court": 27845, - "ligen": 27846, - "▁Beginn": 27847, - "▁LIMIT": 27848, - "▁enjoyed": 27849, - "▁Jakob": 27850, - "▁telt": 27851, - "backend": 27852, - "▁Gemeinsame": 27853, - "lint": 27854, - "alling": 27855, - "▁bör": 27856, - "grand": 27857, - "▁diverses": 27858, - "▁związ": 27859, - "▁Kompon": 27860, - "▁innerhalb": 27861, - "▁desarrollo": 27862, - "▁Masters": 27863, - "ioso": 27864, - "]`.": 27865, - "▁francesa": 27866, - "Aff": 27867, - "inek": 27868, - "▁dessin": 27869, - "`.`": 27870, - "▁ranks": 27871, - "берг": 27872, - "▁skal": 27873, - "▁Sultan": 27874, - "АН": 27875, - "▁способ": 27876, - "▁contradict": 27877, - "▁recom": 27878, - "▁Oklahoma": 27879, - "▁Vladimir": 27880, - "▁meters": 27881, - "transport": 27882, - "▁consulté": 27883, - "▁ATP": 27884, - "ebb": 27885, - "▁volunte": 27886, - "▁outline": 27887, - "LIC": 27888, - "▁euro": 27889, - "CharField": 27890, - "medium": 27891, - "▁Belgique": 27892, - "Proc": 27893, - "routes": 27894, - "▁contribu": 27895, - "!}": 27896, - "ším": 27897, - "▁Less": 27898, - "▁Kost": 27899, - "▁eredetiből": 27900, - "reven": 27901, - "verify": 27902, - "▁Salt": 27903, - "▁shooting": 27904, - "▁dispose": 27905, - "ují": 27906, - "▁tierra": 27907, - "▁poison": 27908, - "sak": 27909, - "perimental": 27910, - "▁Né": 27911, - "▁Kid": 27912, - "agyar": 27913, - "▁archiválva": 27914, - "bereich": 27915, - "íz": 27916, - "▁Ritter": 27917, - "▁Хронологија": 27918, - "zeum": 27919, - "дах": 27920, - "▁gründ": 27921, - "▁programmer": 27922, - "▁conseil": 27923, - "▁encrypt": 27924, - "integration": 27925, - "Culture": 27926, - "▁Circle": 27927, - "Observable": 27928, - "▁genomsnitt": 27929, - "▁Selection": 27930, - "▁irregular": 27931, - "Autres": 27932, - "Percent": 27933, - "fault": 27934, - "▁virtue": 27935, - "ąpi": 27936, - "▁sess": 27937, - "▁Также": 27938, - "Timestamp": 27939, - "▁littérature": 27940, - "▁moż": 27941, - "▁borrow": 27942, - "▁conced": 27943, - "чник": 27944, - "▁Lund": 27945, - "IONS": 27946, - "ynie": 27947, - "▁Shin": 27948, - "▁osob": 27949, - "bě": 27950, - "▁intuit": 27951, - "▁нап": 27952, - "▁proph": 27953, - "▁pitt": 27954, - "▁IBM": 27955, - "▁Till": 27956, - "▁hina": 27957, - "ittest": 27958, - "generator": 27959, - "▁Nin": 27960, - "▁Kot": 27961, - "▁passer": 27962, - "▁disposition": 27963, - "uning": 27964, - "▁fame": 27965, - "▁tenia": 27966, - "ancement": 27967, - "▁Suisse": 27968, - "`-": 27969, - "▁hombres": 27970, - "▁infinity": 27971, - "▁оконча": 27972, - "▁cosm": 27973, - "▁Dennis": 27974, - "baz": 27975, - "haupt": 27976, - "▁mighty": 27977, - "▁prede": 27978, - "usable": 27979, - "▁wszyst": 27980, - "▁lb": 27981, - "ABASE": 27982, - "jna": 27983, - "нев": 27984, - "▁ases": 27985, - "▁finalmente": 27986, - "йм": 27987, - "pection": 27988, - "▁Studien": 27989, - "▁Norwegian": 27990, - "cego": 27991, - "INDEX": 27992, - "orten": 27993, - "▁friendship": 27994, - "metro": 27995, - "thick": 27996, - "▁Zel": 27997, - "LOW": 27998, - "▁thereby": 27999, - "unted": 28000, - "▁surfaces": 28001, - "ющим": 28002, - "%).": 28003, - "▁Wonder": 28004, - "▁redundant": 28005, - "▁Gros": 28006, - "▁websites": 28007, - "▁vio": 28008, - "▁ocas": 28009, - "vés": 28010, - "▁Gam": 28011, - "dw": 28012, - "Indicator": 28013, - "▁Kob": 28014, - "▁jack": 28015, - "Hint": 28016, - "▁Apol": 28017, - "▁другие": 28018, - "▁NUM": 28019, - "▁ofic": 28020, - "ystycz": 28021, - "▁wereld": 28022, - "мости": 28023, - "LEFT": 28024, - "▁Types": 28025, - "seen": 28026, - "uncia": 28027, - "▁narod": 28028, - "▁этот": 28029, - "Sidenote": 28030, - "ueil": 28031, - "▁отме": 28032, - "▁courts": 28033, - "fir": 28034, - "urz": 28035, - "ченко": 28036, - "Credentials": 28037, - "▁imagination": 28038, - "itats": 28039, - "buff": 28040, - "flash": 28041, - "▁badly": 28042, - "▁worn": 28043, - "▁округу": 28044, - "catalog": 28045, - "lime": 28046, - "▁Gill": 28047, - "▁Sent": 28048, - "iella": 28049, - "▁Craig": 28050, - "▁Sele": 28051, - "▁Independ": 28052, - "▁provincie": 28053, - "ossen": 28054, - "▁запад": 28055, - "▁infant": 28056, - "▁prevents": 28057, - "▁provinces": 28058, - "afé": 28059, - "beg": 28060, - "▁colours": 28061, - "BF": 28062, - "ën": 28063, - "▁Между": 28064, - "în": 28065, - "Observer": 28066, - "forsch": 28067, - "ígen": 28068, - "umption": 28069, - "▁Illustr": 28070, - "рист": 28071, - "▁полови": 28072, - "▁`&": 28073, - "▁ore": 28074, - "▁supplies": 28075, - "▁parenthes": 28076, - "Foundation": 28077, - "▁vou": 28078, - "▁Tout": 28079, - "Donald": 28080, - "▁RET": 28081, - "weig": 28082, - "▁producción": 28083, - "mix": 28084, - "▁utwor": 28085, - "▁föl": 28086, - "▁então": 28087, - "▁Sister": 28088, - "Tags": 28089, - "▁Савезне": 28090, - "▁privileges": 28091, - "▁nazw": 28092, - "▁Rav": 28093, - "▁repro": 28094, - "▁Mason": 28095, - "▁Platform": 28096, - "▁пробле": 28097, - "▁Pérez": 28098, - "▁blanc": 28099, - "Behavior": 28100, - "фици": 28101, - "eken": 28102, - "▁meets": 28103, - "(.*": 28104, - "▁få": 28105, - "epen": 28106, - "maker": 28107, - "▁loyal": 28108, - "members": 28109, - "meisterschaft": 28110, - "goal": 28111, - "шлен": 28112, - "▁северо": 28113, - "iende": 28114, - "дні": 28115, - "Proof": 28116, - "▁explic": 28117, - "▁electro": 28118, - "iels": 28119, - "reload": 28120, - "▁eleven": 28121, - "▁partidos": 28122, - "îne": 28123, - "▁Regin": 28124, - "▁éx": 28125, - "▁Bulg": 28126, - "▁networking": 28127, - "▁separator": 28128, - "UserName": 28129, - "▁edificio": 28130, - "▁Mie": 28131, - "▁idle": 28132, - "yed": 28133, - "▁passengers": 28134, - "+)": 28135, - "meno": 28136, - "eggi": 28137, - "▁nicely": 28138, - "endencia": 28139, - "чий": 28140, - "étés": 28141, - "ightarrow": 28142, - "▁orthogonal": 28143, - "▁Half": 28144, - "▁fewer": 28145, - "▁propi": 28146, - "▁primit": 28147, - "icale": 28148, - "▁flower": 28149, - "merk": 28150, - "▁Отече": 28151, - "▁persistent": 28152, - "▁Ville": 28153, - "Men": 28154, - "gaben": 28155, - "▁Isaac": 28156, - "ativity": 28157, - "▁północ": 28158, - "▁rok": 28159, - "cards": 28160, - "дения": 28161, - "▁юго": 28162, - "▁extraordinary": 28163, - "▁kyr": 28164, - "(\",": 28165, - "))]": 28166, - "▁unix": 28167, - "кол": 28168, - "▁sink": 28169, - "apsed": 28170, - "▁kommen": 28171, - "▁forcing": 28172, - "About": 28173, - "▁Halle": 28174, - "▁Majesty": 28175, - "▁Switch": 28176, - "▁abroad": 28177, - "▁acceleration": 28178, - "urbed": 28179, - "▁остан": 28180, - "Ready": 28181, - "▁півні": 28182, - "Bra": 28183, - "▁цього": 28184, - "▁plut": 28185, - "▁Train": 28186, - "▁április": 28187, - "▁puesto": 28188, - "▁toss": 28189, - "▁irrelevant": 28190, - "▁dip": 28191, - "segment": 28192, - "opacity": 28193, - "▁lorsque": 28194, - "▁verschill": 28195, - "ена": 28196, - "▁Doc": 28197, - "%%%%%%%%": 28198, - "▁borders": 28199, - "gebras": 28200, - "▁ries": 28201, - "▁Olympedia": 28202, - "▁Generation": 28203, - "metros": 28204, - "▁horizon": 28205, - "▁adaptation": 28206, - "▁Zahl": 28207, - "▁nahe": 28208, - "▁Bug": 28209, - "Picture": 28210, - "љи": 28211, - "RGB": 28212, - "Owner": 28213, - "adin": 28214, - "▁Catalunya": 28215, - "ných": 28216, - "▁cualquier": 28217, - "▁Institution": 28218, - "insen": 28219, - "▁Brasile": 28220, - "▁fitting": 28221, - "Deleg": 28222, - "ictwo": 28223, - "▁Exper": 28224, - "ochastic": 28225, - "▁dus": 28226, - "▁пора": 28227, - "▁substring": 28228, - "ссии": 28229, - "oin": 28230, - "▁школа": 28231, - "▁cx": 28232, - "▁%)": 28233, - "▁Buddh": 28234, - "▁pending": 28235, - "▁Entry": 28236, - "▁Berl": 28237, - "▁cler": 28238, - "▁Soc": 28239, - "▁rounded": 28240, - "▁mv": 28241, - "ített": 28242, - "▁Diplom": 28243, - "▁französischen": 28244, - "▁Gan": 28245, - "▁Investig": 28246, - "▁indexPath": 28247, - "▁molti": 28248, - "persistence": 28249, - "▁XIXe": 28250, - "▁Electron": 28251, - "bü": 28252, - "gele": 28253, - "▁Maler": 28254, - "▁proyecto": 28255, - "▁Bath": 28256, - "ellers": 28257, - "▁GP": 28258, - "oning": 28259, - "cloudflare": 28260, - "▁při": 28261, - "▁ded": 28262, - "▁Odkazy": 28263, - "▁Msg": 28264, - "▁Being": 28265, - "▁Depuis": 28266, - "▁Primary": 28267, - "▁Appro": 28268, - "▁formally": 28269, - "ступил": 28270, - "▁fuera": 28271, - "▁Root": 28272, - "▁autonom": 28273, - "▁secretary": 28274, - "▁osób": 28275, - "▁cuales": 28276, - "▁Depending": 28277, - "▁asi": 28278, - "vera": 28279, - "▁russe": 28280, - "▁proves": 28281, - "▁presiden": 28282, - "RU": 28283, - "▁Watson": 28284, - "▁webpack": 28285, - "elligence": 28286, - "кам": 28287, - "▁Officer": 28288, - "▁delivery": 28289, - "ждён": 28290, - "▁импе": 28291, - "▁wil": 28292, - "▁vesc": 28293, - "usztus": 28294, - "▁Geoff": 28295, - "()}": 28296, - "▁Fore": 28297, - "▁wenig": 28298, - "▁Airl": 28299, - "▁Efter": 28300, - "▁Break": 28301, - "▁Städ": 28302, - "ismiss": 28303, - "íp": 28304, - "▁avoided": 28305, - "▁assertion": 28306, - "DN": 28307, - "▁teat": 28308, - "ína": 28309, - "▁mechanical": 28310, - "isu": 28311, - "@{": 28312, - "▁nou": 28313, - "Italie": 28314, - "sourceforge": 28315, - "▁svo": 28316, - "▁király": 28317, - "▁References": 28318, - "six": 28319, - "▁Archives": 28320, - "▁finishing": 28321, - "acje": 28322, - "état": 28323, - "iffs": 28324, - "▁stead": 28325, - "▁feas": 28326, - "aware": 28327, - "lande": 28328, - "Inject": 28329, - "▁Agent": 28330, - "▁Normdatei": 28331, - "▁amen": 28332, - "▁Architecture": 28333, - "aze": 28334, - "ște": 28335, - "▁usar": 28336, - "▁cores": 28337, - "лін": 28338, - "▁Castro": 28339, - "▁væ": 28340, - ">\",": 28341, - "omena": 28342, - "▁gesam": 28343, - "▁Martín": 28344, - "egung": 28345, - "▁společ": 28346, - "▁amplitude": 28347, - "▁importing": 28348, - "▁listview": 28349, - "THE": 28350, - "ziale": 28351, - "cedes": 28352, - "▁particulier": 28353, - "▁Расподела": 28354, - "▁край": 28355, - "▁divent": 28356, - "▁ké": 28357, - "quit": 28358, - "тором": 28359, - "CheckBox": 28360, - "▁Zobacz": 28361, - "phe": 28362, - "pta": 28363, - "▁sjö": 28364, - "▁розташ": 28365, - "▁tedesco": 28366, - "▁stal": 28367, - "▁Beruf": 28368, - "овая": 28369, - "▁svě": 28370, - "▁flush": 28371, - "▁відбу": 28372, - "▁radial": 28373, - "▁différentes": 28374, - "анта": 28375, - "▁Perry": 28376, - "Coll": 28377, - "liqu": 28378, - "▁Optional": 28379, - "▁Санкт": 28380, - "▁LINQ": 28381, - "▁Franc": 28382, - "cije": 28383, - "▁Guillaume": 28384, - "know": 28385, - "▁Units": 28386, - "olk": 28387, - "▁Système": 28388, - "▁Sales": 28389, - "▁ehemaligen": 28390, - "мирова": 28391, - "xhtml": 28392, - "setopt": 28393, - "▁mellan": 28394, - "▁zie": 28395, - "▁giant": 28396, - "Board": 28397, - "▁Caval": 28398, - "▁defence": 28399, - "----------": 28400, - "pshire": 28401, - "mart": 28402, - "▁Dioc": 28403, - "iskt": 28404, - "▁inse": 28405, - "▁épisode": 28406, - "чик": 28407, - "bars": 28408, - "Sito": 28409, - "▁integrity": 28410, - "auff": 28411, - "▁vär": 28412, - "Azure": 28413, - "▁starb": 28414, - "▁контра": 28415, - "▁Мексичка": 28416, - "▁запа": 28417, - "▁Mountains": 28418, - "}}=": 28419, - "▁pulling": 28420, - "▁satellite": 28421, - "▁atoms": 28422, - "▁profesor": 28423, - "▁repeatedly": 28424, - "▁invasion": 28425, - "programming": 28426, - "├──": 28427, - "▁Lip": 28428, - "вшие": 28429, - "▁keen": 28430, - "▁critics": 28431, - "▁Nicola": 28432, - "▁Cand": 28433, - "▁distint": 28434, - "▁heading": 28435, - "pragma": 28436, - "{|": 28437, - "ymen": 28438, - "▁terrain": 28439, - "iedenis": 28440, - "▁besonders": 28441, - "▁nominated": 28442, - "BOOL": 28443, - "▁Kay": 28444, - "cian": 28445, - "stelle": 28446, - "▁dispute": 28447, - "▁щ": 28448, - "DataSet": 28449, - "nothing": 28450, - "Autom": 28451, - "hören": 28452, - "▁shed": 28453, - "▁paused": 28454, - "san": 28455, - "▁nunca": 28456, - "!(\"": 28457, - "▁położ": 28458, - "Secret": 28459, - "▁Domain": 28460, - "▁возмож": 28461, - "XV": 28462, - "lv": 28463, - "ikh": 28464, - "▁Sony": 28465, - "mq": 28466, - "otrop": 28467, - "▁Logger": 28468, - "▁threat": 28469, - "asted": 28470, - "зько": 28471, - "▁freely": 28472, - "▁improvements": 28473, - "istema": 28474, - "▁illustrate": 28475, - "▁tact": 28476, - "▁figur": 28477, - "ués": 28478, - "riminal": 28479, - "odon": 28480, - "intendo": 28481, - "▁influenced": 28482, - "FFER": 28483, - "▁Ghost": 28484, - "▁совер": 28485, - "nad": 28486, - "ioned": 28487, - "▁Events": 28488, - "▁wrapping": 28489, - "---------+": 28490, - "fif": 28491, - "▁(**": 28492, - "={{": 28493, - "маль": 28494, - "▁losses": 28495, - "▁Galerie": 28496, - "tel": 28497, - "▁лютого": 28498, - "▁Kru": 28499, - "▁Polen": 28500, - "нім": 28501, - "near": 28502, - "▁shame": 28503, - "▁moyenne": 28504, - "▁CP": 28505, - "preis": 28506, - "▁passenger": 28507, - "lek": 28508, - "ionales": 28509, - "kafka": 28510, - "▁participe": 28511, - "▁membership": 28512, - "[_": 28513, - "lando": 28514, - "stelling": 28515, - "Sem": 28516, - "gon": 28517, - "▁Correct": 28518, - "▁valle": 28519, - "▁readily": 28520, - "▁Dokument": 28521, - "honneur": 28522, - "▁testim": 28523, - "ulative": 28524, - "doFilter": 28525, - "▁dominant": 28526, - "ammer": 28527, - "▁која": 28528, - "▁Monsieur": 28529, - "zeg": 28530, - "▁війни": 28531, - "▁Fo": 28532, - "▁Amy": 28533, - "▁¡": 28534, - "▁február": 28535, - "▁downloading": 28536, - "▁leng": 28537, - "\\}$,": 28538, - "▁neat": 28539, - "▁Cache": 28540, - "ICATION": 28541, - "▁deve": 28542, - "▁sorrow": 28543, - "slow": 28544, - "▁hinaus": 28545, - "▁reconoc": 28546, - "▁Linked": 28547, - "▁Shaw": 28548, - "market": 28549, - "▁Dic": 28550, - "▁Ski": 28551, - "▁delimiter": 28552, - "▁MainActivity": 28553, - "▁Musical": 28554, - "▁Reyn": 28555, - "ScrollView": 28556, - "▁conventional": 28557, - "ença": 28558, - "▁refactor": 28559, - "'-": 28560, - "▁Hed": 28561, - "sprech": 28562, - "▁athlet": 28563, - "▁especies": 28564, - "▁Schön": 28565, - "▁kleinen": 28566, - "шко": 28567, - "▁Йо": 28568, - "▁Happy": 28569, - "multirow": 28570, - "▁augusti": 28571, - "▁Gand": 28572, - "▁appointment": 28573, - "▁Mediabestanden": 28574, - "Three": 28575, - "▁Kenneth": 28576, - "NEW": 28577, - "▁Notification": 28578, - "▁Marx": 28579, - "▁insc": 28580, - "Mor": 28581, - "вый": 28582, - "väst": 28583, - "vidia": 28584, - "▁demonstrated": 28585, - "fonts": 28586, - "▁kamen": 28587, - "▁Ster": 28588, - "▁mieszkańców": 28589, - "▁Koh": 28590, - "~$\\": 28591, - "»).": 28592, - "rene": 28593, - "insic": 28594, - "ická": 28595, - "xygen": 28596, - "▁mn": 28597, - "▁sched": 28598, - "ASC": 28599, - "Ig": 28600, - "▁Constant": 28601, - "▁opportun": 28602, - "▁MyClass": 28603, - "sef": 28604, - "oped": 28605, - "▁injured": 28606, - "VIS": 28607, - "▁Pero": 28608, - "▁Until": 28609, - "▁flesh": 28610, - "orphism": 28611, - "▁Portal": 28612, - "▁gminy": 28613, - "▁власти": 28614, - "▁Nä": 28615, - "ктиче": 28616, - "▁hrab": 28617, - "▁Cub": 28618, - "avoir": 28619, - "▁Lars": 28620, - "▁Бело": 28621, - "▁seizoen": 28622, - "▁Genomsnitt": 28623, - "▁Lil": 28624, - "▁Pool": 28625, - "▁Dios": 28626, - "TX": 28627, - "aes": 28628, - "autore": 28629, - "Alpha": 28630, - "states": 28631, - "Lab": 28632, - "nederbörd": 28633, - "erton": 28634, - "▁brid": 28635, - "▁richt": 28636, - "▁Ela": 28637, - "▁сла": 28638, - "▁weapon": 28639, - "▁combatt": 28640, - "agar": 28641, - "▁regnig": 28642, - "▁utilisé": 28643, - "▁servir": 28644, - "▁brick": 28645, - "▁gateway": 28646, - "▁torraste": 28647, - "▁procedures": 28648, - "▁årsnederbörd": 28649, - "▁Genomsnittlig": 28650, - "чёт": 28651, - "▁områ": 28652, - "▁regnigaste": 28653, - "▁честь": 28654, - "▁amid": 28655, - "▁grateful": 28656, - "▁DIS": 28657, - "DAY": 28658, - "▁ору": 28659, - "▁rivière": 28660, - "heure": 28661, - "▁Richmond": 28662, - "▁Compar": 28663, - "▁Нор": 28664, - "DOC": 28665, - "esia": 28666, - "calc": 28667, - "▁IU": 28668, - "▁vorg": 28669, - "▁habían": 28670, - "çoit": 28671, - "▁arist": 28672, - "▁кли": 28673, - "▁Sue": 28674, - "▁Touch": 28675, - "▁Writing": 28676, - "ifiable": 28677, - "▁wc": 28678, - "▁withdraw": 28679, - "зар": 28680, - "▁presently": 28681, - "▁FK": 28682, - "▁prakt": 28683, - "▁colored": 28684, - "usb": 28685, - "▁Perú": 28686, - "▁plata": 28687, - "▁wishes": 28688, - "▁кам": 28689, - "azar": 28690, - "ável": 28691, - "▁lamp": 28692, - "bishop": 28693, - "▁inclusion": 28694, - "jq": 28695, - "arth": 28696, - "▁Flag": 28697, - "▁нор": 28698, - "ædia": 28699, - "UNCTION": 28700, - "▁Bahnhof": 28701, - "▁approaching": 28702, - "▁Gött": 28703, - "▁cube": 28704, - "▁argued": 28705, - "▁Things": 28706, - "Gui": 28707, - "дови": 28708, - "▁recre": 28709, - "▁réseau": 28710, - "▁significa": 28711, - "Git": 28712, - "gebracht": 28713, - "▁liga": 28714, - "▁assured": 28715, - "alus": 28716, - "рит": 28717, - "▁энциклопеди": 28718, - "▁%).": 28719, - "▁Première": 28720, - "▁declarations": 28721, - "▁tricky": 28722, - "▁profiles": 28723, - "▁Fon": 28724, - "▁Jas": 28725, - "âr": 28726, - "babel": 28727, - "▁Friday": 28728, - "▁június": 28729, - "▁cols": 28730, - "▁EXISTS": 28731, - "▁Italiana": 28732, - "▁authorization": 28733, - "▁sulle": 28734, - "▁Emb": 28735, - "▁Variable": 28736, - "trees": 28737, - "▁Fly": 28738, - "riors": 28739, - "▁damals": 28740, - "▁findet": 28741, - "▁Sept": 28742, - "▁mundial": 28743, - "▁removal": 28744, - "▁longitude": 28745, - "clic": 28746, - "▁fade": 28747, - "▁gradle": 28748, - "▁zák": 28749, - "▁timing": 28750, - "trightarrow": 28751, - "atia": 28752, - "-.": 28753, - "uche": 28754, - "▁serialize": 28755, - "▁Hmm": 28756, - "▁Representatives": 28757, - "bah": 28758, - "rend": 28759, - "assador": 28760, - "▁shield": 28761, - "ucion": 28762, - "▁américaine": 28763, - "zę": 28764, - "villa": 28765, - "▁hombre": 28766, - "áss": 28767, - "▁SF": 28768, - "▁repeating": 28769, - "▁criter": 28770, - "▁Struct": 28771, - "???": 28772, - "▁cheap": 28773, - "▁rings": 28774, - "abhäng": 28775, - "▁corte": 28776, - "▁administ": 28777, - "ixon": 28778, - "gypt": 28779, - "▁puntos": 28780, - "▁mezi": 28781, - "▁pochod": 28782, - "isko": 28783, - "nię": 28784, - "▁осу": 28785, - "▁ár": 28786, - "тельной": 28787, - "▁Metropolitan": 28788, - "jin": 28789, - "zess": 28790, - "▁віці": 28791, - "▁conflicts": 28792, - "ijst": 28793, - "▁Market": 28794, - "стров": 28795, - "▁\",\"": 28796, - "▁Scroll": 28797, - "gun": 28798, - "тара": 28799, - "▁amateur": 28800, - "▁róż": 28801, - "poss": 28802, - "▁generalized": 28803, - "▁Harm": 28804, - "cita": 28805, - "▁Switzerland": 28806, - "icola": 28807, - "▁muit": 28808, - "located": 28809, - "▁có": 28810, - "▁arose": 28811, - "▁communauté": 28812, - "})^": 28813, - "visibility": 28814, - "ída": 28815, - "▁FB": 28816, - "▁Freund": 28817, - "gat": 28818, - "\":{\"": 28819, - "intellij": 28820, - "ifie": 28821, - "hmen": 28822, - "▁édition": 28823, - "▁које": 28824, - "▁інших": 28825, - "oming": 28826, - "▁arquitect": 28827, - "▁Presidente": 28828, - "▁Під": 28829, - "▁cabin": 28830, - "Theorem": 28831, - "▁Gay": 28832, - "ifice": 28833, - "▁hect": 28834, - "lą": 28835, - "irmingham": 28836, - "▁semantic": 28837, - "▁Louisiana": 28838, - "▁sacrifice": 28839, - "▁Christoph": 28840, - "▁Executive": 28841, - "_+": 28842, - "ják": 28843, - "▁seria": 28844, - "▁Overflow": 28845, - "▁Lucy": 28846, - "▁melhor": 28847, - "▁voices": 28848, - "cza": 28849, - "▁капи": 28850, - "▁университета": 28851, - "INCT": 28852, - "▁coloc": 28853, - "▁prue": 28854, - "▁geomet": 28855, - "▁diretto": 28856, - "reso": 28857, - "▁Akt": 28858, - "▁unh": 28859, - "▁сери": 28860, - "▁Alert": 28861, - "Wel": 28862, - "audi": 28863, - "äler": 28864, - "▁guests": 28865, - "▁иде": 28866, - "Studio": 28867, - "▁кате": 28868, - "▁exponent": 28869, - "rze": 28870, - "pmod": 28871, - "rolle": 28872, - "▁Limited": 28873, - "Allemagne": 28874, - "▁pity": 28875, - "▁lä": 28876, - "▁runner": 28877, - "kende": 28878, - "EQ": 28879, - "▁MM": 28880, - "szág": 28881, - "поді": 28882, - "▁regret": 28883, - "▁publié": 28884, - "▁departamento": 28885, - "▁accused": 28886, - "hp": 28887, - "▁Pfl": 28888, - "▁Sint": 28889, - "▁ekonom": 28890, - "ractor": 28891, - "▁Пів": 28892, - "▁awful": 28893, - "ować": 28894, - "]->": 28895, - "▁Fine": 28896, - "Са": 28897, - "tis": 28898, - "éta": 28899, - "▁Роди": 28900, - "▁Düsseldorf": 28901, - "LOB": 28902, - "osas": 28903, - "werke": 28904, - "▁lance": 28905, - "▁листопада": 28906, - "▁incomplete": 28907, - "▁Picture": 28908, - "('\\": 28909, - "esters": 28910, - "▁belonged": 28911, - "▁Sank": 28912, - "ammed": 28913, - "▁repositories": 28914, - "▁addr": 28915, - "Collect": 28916, - "Hot": 28917, - "▁tyl": 28918, - "▁instanceof": 28919, - "▁bonus": 28920, - "ový": 28921, - "▁моря": 28922, - "▁interactive": 28923, - "▁Mys": 28924, - "▁Edmund": 28925, - "fileName": 28926, - "emor": 28927, - "▁Три": 28928, - "▁Rosen": 28929, - "▁Prima": 28930, - "▁voting": 28931, - "▁XP": 28932, - "▁Zero": 28933, - "▁Led": 28934, - "amsung": 28935, - "▁enables": 28936, - "▁redirects": 28937, - "AST": 28938, - "Paint": 28939, - "acker": 28940, - "lecht": 28941, - "▁chairman": 28942, - "▁Aven": 28943, - "▁Sach": 28944, - "(\"<": 28945, - "кер": 28946, - "▁mistakes": 28947, - "▁Weit": 28948, - "▁prowad": 28949, - "▁didnt": 28950, - "énario": 28951, - "unless": 28952, - "▁backwards": 28953, - "boa": 28954, - "duino": 28955, - "```": 28956, - "stor": 28957, - "Completion": 28958, - "puesta": 28959, - "▁dinast": 28960, - "últ": 28961, - "▁SY": 28962, - "ifolia": 28963, - "œuvres": 28964, - "▁racing": 28965, - "▁cabinet": 28966, - "▁cutting": 28967, - "▁thumb": 28968, - "▁Кара": 28969, - "highlight": 28970, - "куп": 28971, - "▁sd": 28972, - "▁національ": 28973, - "▁campagne": 28974, - "▁registers": 28975, - "▁educational": 28976, - "▁pesar": 28977, - "üge": 28978, - "▁oro": 28979, - "burgo": 28980, - "▁Athletics": 28981, - "▁MTV": 28982, - "getMessage": 28983, - "▁Hyp": 28984, - "▁victim": 28985, - "))\\": 28986, - "▁drums": 28987, - "hostname": 28988, - "tał": 28989, - "making": 28990, - "▁powiat": 28991, - "őd": 28992, - "threads": 28993, - "▁absolv": 28994, - "▁люди": 28995, - "▁stepped": 28996, - "exist": 28997, - "▁NK": 28998, - "▁ves": 28999, - "istiche": 29000, - "%'": 29001, - "ativos": 29002, - "▁такой": 29003, - "▁MongoDB": 29004, - "▁Ung": 29005, - "▁Рус": 29006, - "▁elim": 29007, - "▁Fif": 29008, - "icación": 29009, - "▁Tennis": 29010, - "▁Jefferson": 29011, - "ján": 29012, - "fog": 29013, - "anha": 29014, - "zor": 29015, - "▁університе": 29016, - "ahu": 29017, - "iada": 29018, - "Sdk": 29019, - "Setting": 29020, - "▁Kill": 29021, - "▁Wend": 29022, - "▁bald": 29023, - "▁Kub": 29024, - "▁visto": 29025, - "▁jeunes": 29026, - "collections": 29027, - "ací": 29028, - "вропей": 29029, - "▁arise": 29030, - "оні": 29031, - "MAIN": 29032, - "доступ": 29033, - "▁berg": 29034, - "▁criticism": 29035, - "▁Torre": 29036, - "▁descript": 29037, - "ières": 29038, - "▁estudio": 29039, - "▁ili": 29040, - "▁militare": 29041, - "▁Clara": 29042, - "▁Ellen": 29043, - "limited": 29044, - "лм": 29045, - "▁Españ": 29046, - "▁infinitely": 29047, - "America": 29048, - "ouc": 29049, - "glass": 29050, - "▁rud": 29051, - "▁zat": 29052, - "▁rin": 29053, - "▁Bibliografía": 29054, - "▁merchant": 29055, - "tensorflow": 29056, - "▁dér": 29057, - "▁ActiveRecord": 29058, - "IES": 29059, - "▁linker": 29060, - "▁estudios": 29061, - "cdnjs": 29062, - "▁Государ": 29063, - "ánchez": 29064, - "appe": 29065, - "club": 29066, - "▁další": 29067, - "▁Algorithm": 29068, - "dfs": 29069, - "▁Bac": 29070, - "▁кафе": 29071, - "▁&=\\": 29072, - "▁ат": 29073, - "▁Глав": 29074, - "▁Mou": 29075, - "Machine": 29076, - "(...)": 29077, - "▁compart": 29078, - "▁augusztus": 29079, - "avan": 29080, - "▁rolled": 29081, - "▁еди": 29082, - "Scan": 29083, - "▁регі": 29084, - "▁świata": 29085, - "▁mines": 29086, - "},{": 29087, - "▁Tier": 29088, - "Cannot": 29089, - "мін": 29090, - "▁NEW": 29091, - "▁Вол": 29092, - "▁Manh": 29093, - "▁Gregory": 29094, - "▁principe": 29095, - "ISO": 29096, - "prog": 29097, - "▁Fail": 29098, - "▁aa": 29099, - "▁fecha": 29100, - "▁WCF": 29101, - "▁magistr": 29102, - "▁Zach": 29103, - "▁unicode": 29104, - "▁converter": 29105, - "▁dispers": 29106, - "ksam": 29107, - "▁Uncle": 29108, - "PropertyChanged": 29109, - "▁lider": 29110, - "▁opts": 29111, - "▁там": 29112, - "locked": 29113, - "zak": 29114, - "▁counted": 29115, - "▁persone": 29116, - "▁hurried": 29117, - "ätter": 29118, - "▁outras": 29119, - "▁genu": 29120, - "BD": 29121, - "veg": 29122, - "due": 29123, - "▁Pract": 29124, - "▁posible": 29125, - "▁contribute": 29126, - "UMN": 29127, - "▁Bürger": 29128, - "▁wars": 29129, - "▁exhibition": 29130, - "hill": 29131, - "▁astr": 29132, - "▁музе": 29133, - "▁CASE": 29134, - "manifest": 29135, - "yellow": 29136, - "Fn": 29137, - "▁RC": 29138, - "▁sott": 29139, - "▁sujet": 29140, - "▁Socket": 29141, - "▁Chine": 29142, - "▁frameworks": 29143, - "Hold": 29144, - "êts": 29145, - "▁філь": 29146, - "Loaded": 29147, - "ophe": 29148, - "texte": 29149, - "▁expres": 29150, - "▁consume": 29151, - "▁Richtung": 29152, - "ografi": 29153, - "▁magnific": 29154, - "àt": 29155, - "▁indul": 29156, - "ryty": 29157, - "▁offici": 29158, - "▁assault": 29159, - "rund": 29160, - "▁variants": 29161, - "▁сельсов": 29162, - "▁excitement": 29163, - "Times": 29164, - "kotlin": 29165, - "▁gering": 29166, - "▁Engel": 29167, - "▁Timer": 29168, - "²).": 29169, - "▁Ng": 29170, - "ässt": 29171, - "schau": 29172, - "SError": 29173, - "▁Edwards": 29174, - "▁Terminal": 29175, - "lict": 29176, - "Under": 29177, - "▁spawn": 29178, - "ürgen": 29179, - "▁Außerdem": 29180, - "▁kitchen": 29181, - "fahrt": 29182, - "▁Colors": 29183, - "▁система": 29184, - "▁terminated": 29185, - "▁LaTeX": 29186, - "igkeiten": 29187, - "▁mesure": 29188, - "▁Amts": 29189, - "▁empir": 29190, - "▁striking": 29191, - "▁exclusive": 29192, - "тех": 29193, - "▁rez": 29194, - "▁quan": 29195, - "▁Glasgow": 29196, - "▁lecture": 29197, - "▁Testament": 29198, - "▁funds": 29199, - "▁stessa": 29200, - "▁tribes": 29201, - "▁parfois": 29202, - "▁treball": 29203, - "nitz": 29204, - "bove": 29205, - "▁заслу": 29206, - "▁absent": 29207, - "▁Lauf": 29208, - "Smith": 29209, - "▁Николай": 29210, - "▁européenne": 29211, - "lr": 29212, - "▁programma": 29213, - "▁midst": 29214, - "▁daughters": 29215, - "Syn": 29216, - "oben": 29217, - "ână": 29218, - "idan": 29219, - "▁ther": 29220, - "odore": 29221, - "sdl": 29222, - "▁Quint": 29223, - "▁casos": 29224, - "▁Zam": 29225, - "▁страны": 29226, - "▁sprite": 29227, - "кал": 29228, - "▁nasc": 29229, - "▁сотруд": 29230, - "▁trava": 29231, - "▁хозяй": 29232, - "▁Uruguay": 29233, - "▁sparse": 29234, - "▁поле": 29235, - "▁mystery": 29236, - "▁Mang": 29237, - "registr": 29238, - "▁CGFloat": 29239, - "▁submission": 29240, - "вана": 29241, - "▁\":": 29242, - "▁Traceback": 29243, - "▁Pit": 29244, - "▁Ehr": 29245, - "▁сра": 29246, - "▁Graphics": 29247, - "Updated": 29248, - "▁svensk": 29249, - "▁spacing": 29250, - "tritt": 29251, - "▁Guinea": 29252, - "▁França": 29253, - "Associ": 29254, - "▁Tová": 29255, - "stab": 29256, - "▁Learning": 29257, - "▁Bright": 29258, - "śc": 29259, - "▁idő": 29260, - "}}_{\\": 29261, - "▁droite": 29262, - "▁raising": 29263, - "getting": 29264, - "ythm": 29265, - "onyme": 29266, - "żs": 29267, - "▁blah": 29268, - "TagName": 29269, - "Vertical": 29270, - "▁aper": 29271, - "postgresql": 29272, - "▁Handle": 29273, - "zew": 29274, - "▁skulle": 29275, - "▁opere": 29276, - "layers": 29277, - "▁possono": 29278, - "▁relate": 29279, - "ąc": 29280, - "▁Mih": 29281, - "âge": 29282, - "▁Świ": 29283, - "isses": 29284, - "▁servlet": 29285, - "Los": 29286, - "▁Advanced": 29287, - "atica": 29288, - "▁ced": 29289, - "▁elementos": 29290, - "рона": 29291, - "iks": 29292, - "arf": 29293, - "ariat": 29294, - "Mobile": 29295, - "agua": 29296, - "▁timp": 29297, - "▁Comité": 29298, - "▁combining": 29299, - "wohl": 29300, - "▁Study": 29301, - "coordinate": 29302, - "▁recommendation": 29303, - "▁transformations": 29304, - "until": 29305, - "bounded": 29306, - "▁изу": 29307, - "hanced": 29308, - "▁вопро": 29309, - "▁Prés": 29310, - "▁coord": 29311, - "xty": 29312, - "▁$,": 29313, - "▁champions": 29314, - "Den": 29315, - "Mil": 29316, - "(',": 29317, - "▁Preis": 29318, - "▁eigh": 29319, - "▁markers": 29320, - "▁gewesen": 29321, - "ätten": 29322, - "▁pione": 29323, - "mv": 29324, - "▁ју": 29325, - "zeichnis": 29326, - "hoff": 29327, - "News": 29328, - "▁Stanisław": 29329, - "▁Brandenburg": 29330, - "▁Feuer": 29331, - "=&": 29332, - "жет": 29333, - "▁Neil": 29334, - "▁wirk": 29335, - "▁società": 29336, - "▁spare": 29337, - "▁civile": 29338, - "sprach": 29339, - "▁disse": 29340, - "▁gates": 29341, - "▁anom": 29342, - "▁Федерации": 29343, - "▁tib": 29344, - "▁fútbol": 29345, - "▁Wikiped": 29346, - "iate": 29347, - "Front": 29348, - "▁craw": 29349, - "▁Rak": 29350, - "▁зву": 29351, - "street": 29352, - "▁Agency": 29353, - "вало": 29354, - "▁Рас": 29355, - "▁mkdir": 29356, - "ację": 29357, - "▁shares": 29358, - "Story": 29359, - "▁remarks": 29360, - "▁keywords": 29361, - "Bob": 29362, - "▁toe": 29363, - "▁Vitt": 29364, - "▁rhs": 29365, - "ROP": 29366, - "oris": 29367, - "/@": 29368, - "сии": 29369, - "▁traverse": 29370, - "▁referencing": 29371, - "präsident": 29372, - "rong": 29373, - "'):": 29374, - "aties": 29375, - "AW": 29376, - "Outlet": 29377, - "▁évol": 29378, - "ikes": 29379, - "▁environmental": 29380, - "icum": 29381, - "▁Lied": 29382, - "▁warn": 29383, - "▁Butler": 29384, - "▁%),": 29385, - "▁Zeitschrift": 29386, - "▁Montr": 29387, - "важа": 29388, - "▁Mercur": 29389, - "jekte": 29390, - "meter": 29391, - "ducation": 29392, - "▁attributed": 29393, - "*$": 29394, - "▁unf": 29395, - "▁Vertrag": 29396, - "zien": 29397, - "▁Роб": 29398, - "lices": 29399, - "pply": 29400, - "ansen": 29401, - "▁zeit": 29402, - "▁immense": 29403, - "▁lutego": 29404, - "▁Bulgar": 29405, - "▁miembros": 29406, - "▁Националь": 29407, - "▁Allow": 29408, - "▁anglès": 29409, - "дви": 29410, - "▁Toy": 29411, - "туа": 29412, - "▁yard": 29413, - "(%": 29414, - "isser": 29415, - "▁golf": 29416, - "▁Ukrain": 29417, - "▁hosp": 29418, - "Include": 29419, - "▁Lisa": 29420, - "▁csal": 29421, - "▁Mira": 29422, - "recogn": 29423, - "▁Ке": 29424, - "▁hitting": 29425, - "кономі": 29426, - "▁Tournament": 29427, - "LOAD": 29428, - "▁Guardian": 29429, - "▁daher": 29430, - "▁timezone": 29431, - "▁tomcat": 29432, - "▁successor": 29433, - "▁Void": 29434, - "▁começ": 29435, - "▁converts": 29436, - "ächs": 29437, - "osex": 29438, - "xelles": 29439, - "aser": 29440, - "▁És": 29441, - "▁mou": 29442, - "▁ung": 29443, - "▁origen": 29444, - "▁Crow": 29445, - "▁Erd": 29446, - "▁sieben": 29447, - "lua": 29448, - "▁BB": 29449, - "RENT": 29450, - "▁piłkar": 29451, - "▁marque": 29452, - "▁Labour": 29453, - "viders": 29454, - "▁exempl": 29455, - "Sound": 29456, - "▁Wass": 29457, - "arrison": 29458, - "▁течение": 29459, - "▁Oficina": 29460, - "▁Daw": 29461, - "▁Kauf": 29462, - "ént": 29463, - "éső": 29464, - "▁=\"": 29465, - "▁kat": 29466, - "diction": 29467, - "▁Voll": 29468, - "▁highway": 29469, - "James": 29470, - "zeuge": 29471, - "▁modelo": 29472, - "Throw": 29473, - "▁Forum": 29474, - "(\"@": 29475, - "▁enfer": 29476, - "▁специаль": 29477, - "Numbers": 29478, - "▁Binary": 29479, - "▁Martínez": 29480, - "▁Stato": 29481, - "▁festiv": 29482, - "▁katol": 29483, - "▁Аб": 29484, - "▁limitation": 29485, - "▁STR": 29486, - "▁Официаль": 29487, - "ipes": 29488, - "▁Isn": 29489, - "▁ruled": 29490, - "▁cí": 29491, - "geber": 29492, - "▁lavoro": 29493, - "▁parentheses": 29494, - "оз": 29495, - "▁équipes": 29496, - "▁efficiently": 29497, - "▁Period": 29498, - "▁Regarding": 29499, - "leaf": 29500, - "▁similarity": 29501, - "▁gesture": 29502, - "datab": 29503, - "▁terminate": 29504, - "▁semantics": 29505, - "▁Alo": 29506, - "▁cig": 29507, - "▁OpenGL": 29508, - "▁heutigen": 29509, - "xaml": 29510, - "▁frequencies": 29511, - ")}.": 29512, - "▁threatened": 29513, - "тик": 29514, - "▁calcio": 29515, - "▁Riemann": 29516, - "slug": 29517, - "▁Finale": 29518, - "LR": 29519, - "▁Derby": 29520, - "▁още": 29521, - "▁deviation": 29522, - "ächen": 29523, - "▁Cris": 29524, - "ново": 29525, - "▁столі": 29526, - "▁relev": 29527, - "▁splendid": 29528, - "▁учё": 29529, - "erving": 29530, - "gable": 29531, - "▁générale": 29532, - "pom": 29533, - "▁Cheers": 29534, - "▁imprison": 29535, - "▁indent": 29536, - "▁analyz": 29537, - "▁revert": 29538, - "érer": 29539, - "▁phases": 29540, - "FirstName": 29541, - "▁mig": 29542, - "▁disturb": 29543, - "▁mixture": 29544, - "▁){": 29545, - "inture": 29546, - "▁Tried": 29547, - "▁sooner": 29548, - "▁pels": 29549, - "▁établ": 29550, - "etro": 29551, - "itie": 29552, - "▁quartier": 29553, - "▁гово": 29554, - "▁város": 29555, - "ufe": 29556, - "heten": 29557, - "хом": 29558, - "▁soap": 29559, - "utors": 29560, - "▁duch": 29561, - "syntax": 29562, - "▁tribe": 29563, - "▁chante": 29564, - "Tri": 29565, - "▁Mate": 29566, - "quality": 29567, - "uola": 29568, - "=\".": 29569, - "chk": 29570, - "▁всі": 29571, - "▁przeci": 29572, - "▁Meteor": 29573, - "▁scattered": 29574, - "Plus": 29575, - "trad": 29576, - "▁stackoverflow": 29577, - "▁retra": 29578, - "▁éditions": 29579, - "▁sain": 29580, - "cribe": 29581, - "ignon": 29582, - "ucker": 29583, - "▁мало": 29584, - "▁tenir": 29585, - "▁exports": 29586, - "▁auxili": 29587, - "▁]]": 29588, - "▁CBS": 29589, - "uniform": 29590, - "▁periodic": 29591, - "agrant": 29592, - "▁emple": 29593, - "Wil": 29594, - "▁fres": 29595, - "▁strutt": 29596, - "▁світ": 29597, - "▁betre": 29598, - "▁объек": 29599, - "тися": 29600, - "▁bisher": 29601, - "baum": 29602, - "ishi": 29603, - "▁Gazette": 29604, - "backgroundColor": 29605, - "jl": 29606, - "▁fiel": 29607, - "▁према": 29608, - "▁protagonista": 29609, - "▁Muhammad": 29610, - "▁simulate": 29611, - "▁Hook": 29612, - "fest": 29613, - "▁своих": 29614, - "Sender": 29615, - "▁listened": 29616, - "жі": 29617, - "jest": 29618, - "kord": 29619, - "Choice": 29620, - "▁hoofd": 29621, - "reducible": 29622, - "hpp": 29623, - "▁Wu": 29624, - "ši": 29625, - "▁Marse": 29626, - "▁soir": 29627, - "westen": 29628, - "emos": 29629, - "▁Duc": 29630, - "▁amerik": 29631, - "|}{": 29632, - "▁Gul": 29633, - "▁Sprache": 29634, - "▁mismatch": 29635, - "Scal": 29636, - "Pixel": 29637, - "EF": 29638, - "▁Sep": 29639, - "▁powiecie": 29640, - "urk": 29641, - "▁Napoli": 29642, - "▁neighbourhood": 29643, - "стоян": 29644, - "▁searches": 29645, - "yrus": 29646, - "пет": 29647, - "Help": 29648, - "pont": 29649, - "▁Orient": 29650, - "▁Alfonso": 29651, - "▁monitoring": 29652, - "iao": 29653, - "édé": 29654, - "▁César": 29655, - "шее": 29656, - "Shift": 29657, - "suit": 29658, - "coded": 29659, - "ното": 29660, - "▁Parti": 29661, - "▁lasci": 29662, - "▁awesome": 29663, - "usta": 29664, - "▁Сове": 29665, - "▁Fland": 29666, - "oom": 29667, - "▁devi": 29668, - "engelsk": 29669, - "endum": 29670, - "▁Pascal": 29671, - "▁Bind": 29672, - "▁siguientes": 29673, - "JB": 29674, - "▁Petersburg": 29675, - "▁incorrectly": 29676, - "▁Bash": 29677, - "▁pelos": 29678, - "▁zespo": 29679, - "NSURL": 29680, - "▁přek": 29681, - "▁Crime": 29682, - "nach": 29683, - "▁thrust": 29684, - "▁Cultura": 29685, - "WF": 29686, - "▁Solo": 29687, - "▁invas": 29688, - "▁individually": 29689, - "ibm": 29690, - "▁etapa": 29691, - "▁handed": 29692, - "▁wherever": 29693, - "▁interpolation": 29694, - "▁musée": 29695, - "▁CNN": 29696, - "idia": 29697, - "ństw": 29698, - "▁przew": 29699, - "ughing": 29700, - "▁actors": 29701, - "▁Oriental": 29702, - "▁convenience": 29703, - "▁miasta": 29704, - "brains": 29705, - "▁меся": 29706, - "▁infatti": 29707, - "▁AllMovie": 29708, - "▁critique": 29709, - "▁successo": 29710, - "ancouver": 29711, - "▁fá": 29712, - "ългар": 29713, - "▁wisdom": 29714, - "▁Phoenix": 29715, - "hole": 29716, - "▁información": 29717, - "▁Airlines": 29718, - ".«": 29719, - "mort": 29720, - "userId": 29721, - "▁*/\r": 29722, - "▁Congo": 29723, - "▁\"`": 29724, - "corr": 29725, - "▁problemas": 29726, - "▁bib": 29727, - "▁później": 29728, - "▁fileName": 29729, - "zott": 29730, - "macht": 29731, - "▁Ulrich": 29732, - "Cy": 29733, - "endpoint": 29734, - "▁sheep": 29735, - "▁ibn": 29736, - "Feed": 29737, - "▁sympathy": 29738, - "▁Ib": 29739, - "▁territorial": 29740, - "rating": 29741, - "дами": 29742, - "▁dst": 29743, - "ую": 29744, - "aho": 29745, - "▁sug": 29746, - "emia": 29747, - "▁ted": 29748, - "▁Api": 29749, - "▁Rica": 29750, - "▁MR": 29751, - "ńskim": 29752, - "▁Voor": 29753, - "▁devil": 29754, - "▁Фо": 29755, - "▁När": 29756, - "▁...)": 29757, - "▁vois": 29758, - "▁abbre": 29759, - "▁Männer": 29760, - "ximo": 29761, - "▁intellectual": 29762, - "▁tales": 29763, - "similar": 29764, - "neum": 29765, - "▁Orig": 29766, - "▁postal": 29767, - "▁hvor": 29768, - "▁identification": 29769, - "▁Од": 29770, - "uesto": 29771, - "▁../": 29772, - "▁bir": 29773, - "▁Лон": 29774, - "▁esempio": 29775, - "▁Eing": 29776, - "Expand": 29777, - "▁PRIMARY": 29778, - "▁Jin": 29779, - "▁však": 29780, - "ourses": 29781, - "▁Betty": 29782, - "▁WM": 29783, - "▁flask": 29784, - "hlen": 29785, - "▁Adel": 29786, - "laravel": 29787, - "▁дет": 29788, - "ською": 29789, - "▁Mundo": 29790, - "iczn": 29791, - "ifié": 29792, - "▁Мор": 29793, - "▁древ": 29794, - "DateFormat": 29795, - "ським": 29796, - "▁dated": 29797, - "коли": 29798, - "▁результате": 29799, - "\\).": 29800, - "▁delayed": 29801, - "sound": 29802, - "▁Мак": 29803, - "▁\"...": 29804, - "▁binnen": 29805, - "▁факуль": 29806, - "▁polygon": 29807, - "▁eggs": 29808, - "AtIndexPath": 29809, - "менталь": 29810, - "▁incred": 29811, - "chunk": 29812, - "webdriver": 29813, - "▁свобо": 29814, - "▁między": 29815, - "Received": 29816, - "▁Monde": 29817, - "▁JQuery": 29818, - "Butt": 29819, - "▁PDO": 29820, - "▁forec": 29821, - "▁discipline": 29822, - "chev": 29823, - "нат": 29824, - "▁redis": 29825, - "▁hunting": 29826, - "▁alk": 29827, - "▁proofs": 29828, - "PRI": 29829, - "▁chip": 29830, - "ésie": 29831, - "▁HO": 29832, - "▁rug": 29833, - "zos": 29834, - "▁sorte": 29835, - "▁zeigt": 29836, - "▁Physics": 29837, - "legte": 29838, - "▁proportional": 29839, - "▁toolbar": 29840, - "vement": 29841, - "notin": 29842, - "▁první": 29843, - "blah": 29844, - "▁présence": 29845, - "▁lloc": 29846, - "▁líder": 29847, - "▁Accept": 29848, - "▁Always": 29849, - "▁\"{": 29850, - "▁diversi": 29851, - "ikor": 29852, - "Period": 29853, - "жён": 29854, - "▁Alliance": 29855, - "▁relay": 29856, - "Bro": 29857, - "jön": 29858, - "▁Baud": 29859, - "▁Bian": 29860, - "')[": 29861, - "чив": 29862, - "▁Poss": 29863, - "▁Mitglieder": 29864, - "▁nev": 29865, - "Daniel": 29866, - "▁tends": 29867, - "▁compagnie": 29868, - "▁livres": 29869, - "lub": 29870, - "▁": 29871, - "e": 29872, - "t": 29873, - "a": 29874, - "i": 29875, - "n": 29876, - "o": 29877, - "r": 29878, - "s": 29879, - "l": 29880, - "d": 29881, - "h": 29882, - "c": 29883, - "u": 29884, - "m": 29885, - "p": 29886, - "g": 29887, - "f": 29888, - ".": 29889, - "b": 29890, - "y": 29891, - ",": 29892, - "w": 29893, - "v": 29894, - "k": 29895, - "1": 29896, - ")": 29897, - "(": 29898, - "-": 29899, - "0": 29900, - ":": 29901, - "I": 29902, - "S": 29903, - "о": 29904, - "\\": 29905, - "2": 29906, - "C": 29907, - "\"": 29908, - "A": 29909, - "а": 29910, - "T": 29911, - "{": 29912, - "}": 29913, - "/": 29914, - "'": 29915, - "x": 29916, - "и": 29917, - "_": 29918, - "е": 29919, - "z": 29920, - "н": 29921, - "=": 29922, - "E": 29923, - "M": 29924, - "P": 29925, - "j": 29926, - "р": 29927, - "D": 29928, - "9": 29929, - "*": 29930, - "L": 29931, - "т": 29932, - "B": 29933, - "R": 29934, - "с": 29935, - ";": 29936, - "#": 29937, - "$": 29938, - "q": 29939, - "N": 29940, - "3": 29941, - "в": 29942, - "F": 29943, - "л": 29944, - "5": 29945, - "4": 29946, - "8": 29947, - "é": 29948, - "O": 29949, - "H": 29950, - "к": 29951, - "`": 29952, - "6": 29953, - "G": 29954, - "7": 29955, - "W": 29956, - "д": 29957, - ">": 29958, - "м": 29959, - "у": 29960, - "[": 29961, - "]": 29962, - "V": 29963, - "п": 29964, - "U": 29965, - "<": 29966, - "J": 29967, - "K": 29968, - "г": 29969, - "я": 29970, - "і": 29971, - "з": 29972, - "?": 29973, - "+": 29974, - "б": 29975, - "á": 29976, - "й": 29977, - "ь": 29978, - "Y": 29979, - "ó": 29980, - "ч": 29981, - "ы": 29982, - "í": 29983, - "Q": 29984, - "^": 29985, - "ä": 29986, - "&": 29987, - "х": 29988, - "|": 29989, - "X": 29990, - "!": 29991, - "@": 29992, - "ü": 29993, - "–": 29994, - "%": 29995, - "ц": 29996, - "ö": 29997, - "ж": 29998, - "Z": 29999, - "è": 30000, - "à": 30001, - "ш": 30002, - "—": 30003, - "\r": 30004, - "ю": 30005, - "ł": 30006, - "»": 30007, - "С": 30008, - "«": 30009, - "’": 30010, - "ф": 30011, - "В": 30012, - "П": 30013, - "К": 30014, - "“": 30015, - "ј": 30016, - "М": 30017, - "А": 30018, - "ç": 30019, - "å": 30020, - "щ": 30021, - "~": 30022, - "ę": 30023, - "”": 30024, - "ą": 30025, - "č": 30026, - "Р": 30027, - "ї": 30028, - "Н": 30029, - "ú": 30030, - "Б": 30031, - "Д": 30032, - "ã": 30033, - "ß": 30034, - "ă": 30035, - "ě": 30036, - "ê": 30037, - "О": 30038, - "š": 30039, - "Г": 30040, - "Т": 30041, - "ż": 30042, - "ё": 30043, - "ž": 30044, - "ś": 30045, - "ñ": 30046, - "ř": 30047, - "ő": 30048, - "„": 30049, - "Л": 30050, - "э": 30051, - "ý": 30052, - "У": 30053, - "И": 30054, - "ъ": 30055, - "є": 30056, - "â": 30057, - "î": 30058, - "ò": 30059, - "З": 30060, - "Ф": 30061, - "É": 30062, - "ć": 30063, - "·": 30064, - "ș": 30065, - "ń": 30066, - "ț": 30067, - "Х": 30068, - "ô": 30069, - "Е": 30070, - "ù": 30071, - "ů": 30072, - "°": 30073, - "Ш": 30074, - "љ": 30075, - "Ч": 30076, - "ø": 30077, - "æ": 30078, - "њ": 30079, - " ": 30080, - " ": 30081, - "Э": 30082, - "ë": 30083, - "õ": 30084, - "ï": 30085, - "‘": 30086, - "†": 30087, - "²": 30088, - "ű": 30089, - "І": 30090, - "─": 30091, - "Ц": 30092, - "ћ": 30093, - "Ö": 30094, - "û": 30095, - "Я": 30096, - "ì": 30097, - "…": 30098, - "ō": 30099, - "Ж": 30100, - "Ю": 30101, - "Á": 30102, - "́": 30103, - "Ü": 30104, - "º": 30105, - "œ": 30106, - "ā": 30107, - "Č": 30108, - "ź": 30109, - "α": 30110, - "│": 30111, - "ا": 30112, - "À": 30113, - "═": 30114, - "Š": 30115, - "ђ": 30116, - "№": 30117, - " ": 30118, - "•": 30119, - "−": 30120, - "→": 30121, - "×": 30122, - "ο": 30123, - "₂": 30124, - "Ä": 30125, - "Î": 30126, - "Ś": 30127, - "đ": 30128, - "Å": 30129, - "ı": 30130, - "‎": 30131, - "ū": 30132, - "ν": 30133, - "Й": 30134, - "ª": 30135, - "ι": 30136, - "τ": 30137, - "ل": 30138, - "′": 30139, - "�": 30140, - "È": 30141, - "λ": 30142, - "": 30143, - "Ž": 30144, - "ς": 30145, - "ň": 30146, - "ρ": 30147, - "₁": 30148, - "Є": 30149, - "ī": 30150, - "ε": 30151, - "§": 30152, - "Ł": 30153, - "Ј": 30154, - "£": 30155, - "ر": 30156, - "Ż": 30157, - "¿": 30158, - "م": 30159, - "″": 30160, - "Ú": 30161, - "ن": 30162, - "ي": 30163, - "σ": 30164, - "´": 30165, - "​": 30166, - "μ": 30167, - "³": 30168, - "ş": 30169, - "π": 30170, - "و": 30171, - "د": 30172, - "κ": 30173, - "₃": 30174, - "Í": 30175, - "ˈ": 30176, - "ب": 30177, - "Ó": 30178, - "Ã": 30179, - "¡": 30180, - "€": 30181, - "ť": 30182, - "η": 30183, - "ə": 30184, - "ー": 30185, - "Щ": 30186, - "β": 30187, - "├": 30188, - "ð": 30189, - "ґ": 30190, - "­": 30191, - "υ": 30192, - "¹": 30193, - "₄": 30194, - "ت": 30195, - "י": 30196, - "γ": 30197, - "س": 30198, - "の": 30199, - "ğ": 30200, - "δ": 30201, - "ی": 30202, - "ン": 30203, - "ه": 30204, - "ו": 30205, - "ω": 30206, - "ί": 30207, - "█": 30208, - "θ": 30209, - "的": 30210, - "©": 30211, - "Â": 30212, - "↑": 30213, - ",": 30214, - "ː": 30215, - "ά": 30216, - "―": 30217, - "ع": 30218, - "Ç": 30219, - "₀": 30220, - "±": 30221, - "Ø": 30222, - "ď": 30223, - "Ř": 30224, - "Œ": 30225, - "½": 30226, - "└": 30227, - "ό": 30228, - "‚": 30229, - "ē": 30230, - "₅": 30231, - "Æ": 30232, - "Ș": 30233, - "ɛ": 30234, - "ה": 30235, - "ר": 30236, - "φ": 30237, - "₆": 30238, - "ė": 30239, - "ح": 30240, - "ف": 30241, - "ة": 30242, - "İ": 30243, - " ": 30244, - "←": 30245, - "║": 30246, - "ɔ": 30247, - "≤": 30248, - "ל": 30249, - "Đ": 30250, - "ա": 30251, - "Ō": 30252, - "א": 30253, - "്": 30254, - "ス": 30255, - "ش": 30256, - "大": 30257, - "ル": 30258, - "џ": 30259, - "イ": 30260, - "⟩": 30261, - " ": 30262, - "µ": 30263, - "∈": 30264, - "ق": 30265, - "⟨": 30266, - "。": 30267, - "Ґ": 30268, - "ा": 30269, - "ج": 30270, - "ʿ": 30271, - "ა": 30272, - "έ": 30273, - "χ": 30274, - "中": 30275, - "ב": 30276, - "ი": 30277, - "₈": 30278, - "ト": 30279, - "ή": 30280, - "ラ": 30281, - "Џ": 30282, - "ك": 30283, - "₇": 30284, - "מ": 30285, - "ת": 30286, - "一": 30287, - "Π": 30288, - "า": 30289, - "・": 30290, - "Σ": 30291, - "Α": 30292, - "Δ": 30293, - "ש": 30294, - "ز": 30295, - "्": 30296, - "ร": 30297, - "い": 30298, - "ʻ": 30299, - "Њ": 30300, - "₉": 30301, - "ʼ": 30302, - "リ": 30303, - "‐": 30304, - "ク": 30305, - "∞": 30306, - "⁄": 30307, - "ύ": 30308, - "Ş": 30309, - "ア": 30310, - "Ε": 30311, - "ɪ": 30312, - "人": 30313, - "Κ": 30314, - "∀": 30315, - "र": 30316, - "ッ": 30317, - "►": 30318, - "子": 30319, - "¬": 30320, - "خ": 30321, - "◄": 30322, - "َ": 30323, - "ע": 30324, - "日": 30325, - "し": 30326, - "ḥ": 30327, - "נ": 30328, - "山": 30329, - "、": 30330, - "Ї": 30331, - "る": 30332, - "文": 30333, - "Ñ": 30334, - "ド": 30335, - "ד": 30336, - "ն": 30337, - "Ђ": 30338, - "Γ": 30339, - "þ": 30340, - "’": 30341, - "®": 30342, - "ک": 30343, - "“": 30344, - "⚭": 30345, - "本": 30346, - "ℕ": 30347, - "น": 30348, - "ѝ": 30349, - "̶": 30350, - "อ": 30351, - "ў": 30352, - "に": 30353, - "数": 30354, - "ე": 30355, - "国": 30356, - "Ω": 30357, - " ": 30358, - "ǎ": 30359, - "ص": 30360, - "”": 30361, - "Μ": 30362, - " ": 30363, - "と": 30364, - "⁠": 30365, - "た": 30366, - "ط": 30367, - "ր": 30368, - "タ": 30369, - "ÿ": 30370, - "な": 30371, - "أ": 30372, - "シ": 30373, - "新": 30374, - "﹕": 30375, - "ʃ": 30376, - "ľ": 30377, - "ロ": 30378, - "⁴": 30379, - "்": 30380, - "⇒": 30381, - "ţ": 30382, - ":": 30383, - "Ț": 30384, - "ക": 30385, - "≥": 30386, - "ി": 30387, - "マ": 30388, - "ん": 30389, - "ṣ": 30390, - "ジ": 30391, - "是": 30392, - "이": 30393, - "⋅": 30394, - "田": 30395, - "を": 30396, - "道": 30397, - "ง": 30398, - "¨": 30399, - "ـ": 30400, - "เ": 30401, - "村": 30402, - "Ê": 30403, - "ם": 30404, - "›": 30405, - "用": 30406, - "ώ": 30407, - "天": 30408, - ")": 30409, - "་": 30410, - "镇": 30411, - "か": 30412, - "不": 30413, - "Τ": 30414, - "学": 30415, - "ư": 30416, - "有": 30417, - "ո": 30418, - "(": 30419, - "レ": 30420, - "گ": 30421, - "‏": 30422, - "フ": 30423, - "न": 30424, - "ก": 30425, - "ɑ": 30426, - "す": 30427, - "ח": 30428, - "上": 30429, - "‌": 30430, - "∧": 30431, - "ṭ": 30432, - "ק": 30433, - "ξ": 30434, - "¤": 30435, - "ि": 30436, - "会": 30437, - "ന": 30438, - "カ": 30439, - "ų": 30440, - "ま": 30441, - "ു": 30442, - "͡": 30443, - "क": 30444, - "া": 30445, - "小": 30446, - "ן": 30447, - "行": 30448, - "は": 30449, - "ʁ": 30450, - "Ő": 30451, - "Þ": 30452, - "り": 30453, - "キ": 30454, - "Λ": 30455, - "რ": 30456, - "三": 30457, - "が": 30458, - "コ": 30459, - "ζ": 30460, - "市": 30461, - "王": 30462, - "ℝ": 30463, - "Ź": 30464, - "う": 30465, - "て": 30466, - "区": 30467, - "ാ": 30468, - "‚": 30469, - "年": 30470, - "פ": 30471, - "ի": 30472, - "ſ": 30473, - "‹": 30474, - "त": 30475, - "ŏ": 30476, - "‑": 30477, - "̃": 30478, - "Ć": 30479, - "ى": 30480, - "「": 30481, - "」": 30482, - "ს": 30483, - "Ā": 30484, - "म": 30485, - "生": 30486, - "≠": 30487, - "Љ": 30488, - "स": 30489, - "↔": 30490, - "Ο": 30491, - "ว": 30492, - "ლ": 30493, - "成": 30494, - "定": 30495, - "ล": 30496, - "¶": 30497, - "כ": 30498, - "で": 30499, - "ּ": 30500, - "ม": 30501, - "个": 30502, - "和": 30503, - "ס": 30504, - "在": 30505, - "Β": 30506, - "ิ": 30507, - "Ι": 30508, - "⁵": 30509, - "ั": 30510, - "ɡ": 30511, - "━": 30512, - "ら": 30513, - "オ": 30514, - "¼": 30515, - "ե": 30516, - "バ": 30517, - "ָ": 30518, - "ŋ": 30519, - "ŭ": 30520, - "グ": 30521, - "⁶": 30522, - "Ь": 30523, - "⁰": 30524, - "方": 30525, - "บ": 30526, - "—": 30527, - "高": 30528, - "ệ": 30529, - "Ν": 30530, - "ѣ": 30531, - "ィ": 30532, - "地": 30533, - "月": 30534, - "Ô": 30535, - "™": 30536, - "ウ": 30537, - "き": 30538, - "公": 30539, - "ạ": 30540, - "ო": 30541, - "ɾ": 30542, - "่": 30543, - "出": 30544, - "法": 30545, - "Θ": 30546, - "ส": 30547, - "名": 30548, - "ย": 30549, - "ത": 30550, - "Φ": 30551, - "↓": 30552, - "れ": 30553, - "ג": 30554, - "Ё": 30555, - "ơ": 30556, - "下": 30557, - "ә": 30558, - "ψ": 30559, - "┼": 30560, - "ャ": 30561, - "√": 30562, - "¥": 30563, - "社": 30564, - "ṇ": 30565, - "さ": 30566, - "ِ": 30567, - "く": 30568, - "े": 30569, - "Ы": 30570, - "ἐ": 30571, - "テ": 30572, - "为": 30573, - "乡": 30574, - "川": 30575, - "ナ": 30576, - "之": 30577, - "字": 30578, - "ム": 30579, - "ी": 30580, - "海": 30581, - "ブ": 30582, - "≈": 30583, - "!": 30584, - "پ": 30585, - "¯": 30586, - "ἀ": 30587, - "ƒ": 30588, - "こ": 30589, - "ְ": 30590, - "東": 30591, - "明": 30592, - "ὶ": 30593, - "时": 30594, - "ท": 30595, - "ɨ": 30596, - "デ": 30597, - "️": 30598, - "ʊ": 30599, - "エ": 30600, - "南": 30601, - "西": 30602, - "ल": 30603, - "メ": 30604, - "プ": 30605, - "平": 30606, - "式": 30607, - "ῖ": 30608, - "қ": 30609, - "व": 30610, - "غ": 30611, - "Ò": 30612, - "家": 30613, - "ʒ": 30614, - "サ": 30615, - "≡": 30616, - "ダ": 30617, - "ต": 30618, - "∃": 30619, - "₹": 30620, - "प": 30621, - "第": 30622, - "ര": 30623, - "ض": 30624, - "▄": 30625, - "城": 30626, - "ミ": 30627, - "ɐ": 30628, - "¦": 30629, - "美": 30630, - "件": 30631, - "ნ": 30632, - "Ð": 30633, - "ַ": 30634, - "ニ": 30635, - "部": 30636, - "ņ": 30637, - "ǐ": 30638, - "ט": 30639, - "य": 30640, - "あ": 30641, - "¾": 30642, - "ả": 30643, - "ち": 30644, - "ュ": 30645, - "÷": 30646, - "女": 30647, - "神": 30648, - "♦": 30649, - "¢": 30650, - "以": 30651, - "้": 30652, - "র": 30653, - "太": 30654, - "্": 30655, - "チ": 30656, - "յ": 30657, - "前": 30658, - "金": 30659, - "ւ": 30660, - "野": 30661, - "北": 30662, - "ห": 30663, - "‰": 30664, - "っ": 30665, - "加": 30666, - "原": 30667, - "ʲ": 30668, - "置": 30669, - "安": 30670, - "ガ": 30671, - "我": 30672, - "Ḥ": 30673, - "യ": 30674, - "京": 30675, - "▀": 30676, - "მ": 30677, - "ვ": 30678, - "ʾ": 30679, - "∨": 30680, - "ִ": 30681, - "可": 30682, - "取": 30683, - "县": 30684, - "二": 30685, - "▒": 30686, - "理": 30687, - "自": 30688, - "信": 30689, - "代": 30690, - "ี": 30691, - "צ": 30692, - "်": 30693, - "द": 30694, - "⁸": 30695, - "̯": 30696, - "お": 30697, - "要": 30698, - "ῦ": 30699, - "க": 30700, - "ễ": 30701, - "ु": 30702, - "ƒ": 30703, - "ʰ": 30704, - "化": 30705, - "✓": 30706, - "പ": 30707, - "의": 30708, - "다": 30709, - "木": 30710, - "ُ": 30711, - "̀": 30712, - "ˌ": 30713, - "ह": 30714, - "パ": 30715, - "水": 30716, - "ế": 30717, - "ด": 30718, - "ズ": 30719, - "⁹": 30720, - "島": 30721, - "‍": 30722, - "も": 30723, - "正": 30724, - "■": 30725, - "آ": 30726, - "พ": 30727, - "内": 30728, - "Ì": 30729, - "ǔ": 30730, - "┬": 30731, - "作": 30732, - "合": 30733, - "ὸ": 30734, - "み": 30735, - "▼": 30736, - "ῶ": 30737, - "⊙": 30738, - "~": 30739, - "ị": 30740, - "ْ": 30741, - "回": 30742, - "了": 30743, - "所": 30744, - "事": 30745, - "表": 30746, - "ำ": 30747, - "分": 30748, - "⁷": 30749, - "ү": 30750, - "€": 30751, - "入": 30752, - "全": 30753, - "إ": 30754, - "里": 30755, - "Χ": 30756, - "ं": 30757, - "ハ": 30758, - "ค": 30759, - "⁻": 30760, - "モ": 30761, - "郎": 30762, - "据": 30763, - "●": 30764, - "州": 30765, - "∩": 30766, - "者": 30767, - "通": 30768, - "都": 30769, - "ℤ": 30770, - "♭": 30771, - "╌": 30772, - "つ": 30773, - "ḍ": 30774, - "江": 30775, - "ז": 30776, - "Ý": 30777, - "ө": 30778, - "์": 30779, - "到": 30780, - "ி": 30781, - "ʂ": 30782, - "对": 30783, - "스": 30784, - "使": 30785, - "ি": 30786, - "よ": 30787, - "Ἀ": 30788, - "Ï": 30789, - "∘": 30790, - "사": 30791, - "ন": 30792, - "世": 30793, - "ɕ": 30794, - "կ": 30795, - "უ": 30796, - "ട": 30797, - "ბ": 30798, - "ो": 30799, - "വ": 30800, - "果": 30801, - "十": 30802, - "ุ": 30803, - "藤": 30804, - "来": 30805, - "面": 30806, - "け": 30807, - "ĕ": 30808, - "ビ": 30809, - "这": 30810, - "지": 30811, - "ം": 30812, - "街": 30813, - "石": 30814, - "能": 30815, - "空": 30816, - "տ": 30817, - "ئ": 30818, - "武": 30819, - "ʹ": 30820, - "ϕ": 30821, - "后": 30822, - "ะ": 30823, - "元": 30824, - "ʔ": 30825, - "리": 30826, - "기": 30827, - "河": 30828, - "町": 30829, - "花": 30830, - "ὐ": 30831, - "类": 30832, - "░": 30833, - "物": 30834, - "Η": 30835, - "¸": 30836, - "ு": 30837, - "თ": 30838, - "ث": 30839, - "െ": 30840, - "╠": 30841, - "⊆": 30842, - "》": 30843, - "ツ": 30844, - "版": 30845, - "动": 30846, - "如": 30847, - "真": 30848, - "ɲ": 30849, - "号": 30850, - "ذ": 30851, - "정": 30852, - "林": 30853, - "書": 30854, - "民": 30855, - "口": 30856, - "ّ": 30857, - "示": 30858, - "മ": 30859, - "아": 30860, - "图": 30861, - "∪": 30862, - "戦": 30863, - "李": 30864, - "ല": 30865, - "《": 30866, - "光": 30867, - "白": 30868, - "心": 30869, - "த": 30870, - "ज": 30871, - "设": 30872, - "ί": 30873, - "路": 30874, - "ग": 30875, - "∥": 30876, - "한": 30877, - "最": 30878, - "Ћ": 30879, - "手": 30880, - "ս": 30881, - "?": 30882, - "型": 30883, - "ầ": 30884, - "セ": 30885, - "建": 30886, - "ェ": 30887, - "主": 30888, - "시": 30889, - "대": 30890, - "ῆ": 30891, - "‡": 30892, - "集": 30893, - "დ": 30894, - "目": 30895, - "Ρ": 30896, - "ァ": 30897, - "度": 30898, - "長": 30899, - "星": 30900, - "ノ": 30901, - "ộ": 30902, - "가": 30903, - "五": 30904, - "چ": 30905, - "로": 30906, - "ョ": 30907, - "重": 30908, - "于": 30909, - "发": 30910, - "史": 30911, - "ظ": 30912, - "ช": 30913, - "え": 30914, - "國": 30915, - "ĭ": 30916, - "ப": 30917, - "인": 30918, - "你": 30919, - "駅": 30920, - "‒": 30921, - "♥": 30922, - "多": 30923, - "ħ": 30924, - "Қ": 30925, - "ồ": 30926, - "士": 30927, - "四": 30928, - "┴": 30929, - "ம": 30930, - "司": 30931, - "ে": 30932, - "ὰ": 30933, - "∂": 30934, - "╬": 30935, - "次": 30936, - "Ľ": 30937, - "⟶": 30938, - "立": 30939, - "点": 30940, - "音": 30941, - "⠀": 30942, - "器": 30943, - "하": 30944, - "井": 30945, - "存": 30946, - "ֹ": 30947, - "当": 30948, - "Ë": 30949, - "★": 30950, - "寺": 30951, - "性": 30952, - "也": 30953, - "め": 30954, - "だ": 30955, - "位": 30956, - "ങ": 30957, - "ہ": 30958, - "值": 30959, - "古": 30960, - "გ": 30961, - "ব": 30962, - "院": 30963, - "േ": 30964, - "▶": 30965, - "ர": 30966, - "界": 30967, - "語": 30968, - "സ": 30969, - "수": 30970, - "ǒ": 30971, - "愛": 30972, - "✔": 30973, - "時": 30974, - "ọ": 30975, - "റ": 30976, - "մ": 30977, - "ケ": 30978, - "东": 30979, - "同": 30980, - "주": 30981, - "保": 30982, - "Õ": 30983, - "ố": 30984, - "ἰ": 30985, - "青": 30986, - "ゴ": 30987, - "体": 30988, - "清": 30989, - "相": 30990, - "จ": 30991, - "ء": 30992, - "情": 30993, - "𝕜": 30994, - "ক": 30995, - "ḫ": 30996, - "ờ": 30997, - "将": 30998, - "族": 30999, - "동": 31000, - "Υ": 31001, - "┌": 31002, - "ボ": 31003, - "宮": 31004, - "』": 31005, - "ম": 31006, - "『": 31007, - "ļ": 31008, - "श": 31009, - "ป": 31010, - "Ա": 31011, - "ब": 31012, - "자": 31013, - "政": 31014, - "ா": 31015, - "间": 31016, - "fi": 31017, - "松": 31018, - "ṃ": 31019, - "始": 31020, - "息": 31021, - "少": 31022, - "教": 31023, - "获": 31024, - "列": 31025, - "开": 31026, - "ტ": 31027, - "ワ": 31028, - "კ": 31029, - "科": 31030, - "春": 31031, - "治": 31032, - "吉": 31033, - "ས": 31034, - "ศ": 31035, - "ɒ": 31036, - "台": 31037, - "ネ": 31038, - "း": 31039, - "ĩ": 31040, - "工": 31041, - "ά": 31042, - "知": 31043, - "八": 31044, - "場": 31045, - "画": 31046, - "百": 31047, - "☆": 31048, - "記": 31049, - "得": 31050, - "ソ": 31051, - "氏": 31052, - "ာ": 31053, - "에": 31054, - "ল": 31055, - "ṛ": 31056, - "关": 31057, - "ġ": 31058, - "έ": 31059, - "∑": 31060, - "ベ": 31061, - "标": 31062, - "니": 31063, - "ὴ": 31064, - "ֵ": 31065, - "外": 31066, - "♠": 31067, - "わ": 31068, - "間": 31069, - "ภ": 31070, - "校": 31071, - "制": 31072, - "แ": 31073, - "力": 31074, - "門": 31075, - "好": 31076, - "ғ": 31077, - "Ù": 31078, - "ℓ": 31079, - "ֶ": 31080, - "는": 31081, - "┐": 31082, - "∗": 31083, - "指": 31084, - "色": 31085, - "返": 31086, - "馬": 31087, - "请": 31088, - "≫": 31089, - "風": 31090, - "ό": 31091, - "接": 31092, - "서": 31093, - "↳": 31094, - "せ": 31095, - "志": 31096, - "̲": 31097, - "魔": 31098, - "ң": 31099, - "更": 31100, - "程": 31101, - "김": 31102, - "郡": 31103, - "ོ": 31104, - "ũ": 31105, - "ച": 31106, - "利": 31107, - "県": 31108, - "周": 31109, - "そ": 31110, - "や": 31111, - "谷": 31112, - "香": 31113, - "♯": 31114, - "じ": 31115, - "،": 31116, - "期": 31117, - "∅": 31118, - "┘": 31119, - "初": 31120, - "福": 31121, - "片": 31122, - "ザ": 31123, - "動": 31124, - "参": 31125, - "성": 31126, - "Ə": 31127, - "╦": 31128, - "어": 31129, - "ხ": 31130, - "義": 31131, - "च": 31132, - "象": 31133, - "功": 31134, - "♂": 31135, - "도": 31136, - "고": 31137, - "过": 31138, - "վ": 31139, - "皇": 31140, - "特": 31141, - "ậ": 31142, - "长": 31143, - "英": 31144, - "ấ": 31145, - "ണ": 31146, - "Ъ": 31147, - "স": 31148, - "其": 31149, - "ত": 31150, - "流": 31151, - "除": 31152, - "일": 31153, - "ু": 31154, - "្": 31155, - "永": 31156, - "直": 31157, - "상": 31158, - "千": 31159, - "ắ": 31160, - "館": 31161, - "Ť": 31162, - "朝": 31163, - "ட": 31164, - "ɣ": 31165, - "单": 31166, - "ʀ": 31167, - "格": 31168, - "德": 31169, - "전": 31170, - "☺": 31171, - "ピ": 31172, - "歌": 31173, - "进": 31174, - "限": 31175, - "夫": 31176, - "트": 31177, - "⊢": 31178, - "園": 31179, - "量": 31180, - "土": 31181, - "放": 31182, - "码": 31183, - "等": 31184, - "系": 31185, - "∼": 31186, - "華": 31187, - "↵": 31188, - "소": 31189, - "常": 31190, - "否": 31191, - "見": 31192, - "源": 31193, - "ׁ": 31194, - "实": 31195, - "博": 31196, - "라": 31197, - "원": 31198, - "보": 31199, - "⊕": 31200, - "解": 31201, - "〜": 31202, - "男": 31203, - "দ": 31204, - "ポ": 31205, - "ろ": 31206, - "나": 31207, - "ག": 31208, - "無": 31209, - "Û": 31210, - "̥": 31211, - "ұ": 31212, - "查": 31213, - "̣": 31214, - "╗": 31215, - "╩": 31216, - "条": 31217, - "য": 31218, - "ὁ": 31219, - "後": 31220, - "他": 31221, - "网": 31222, - "ல": 31223, - "≃": 31224, - "화": 31225, - "ە": 31226, - "阿": 31227, - "ေ": 31228, - "户": 31229, - "∫": 31230, - "구": 31231, - "ར": 31232, - "မ": 31233, - "▸": 31234, - "լ": 31235, - "○": 31236, - "命": 31237, - "就": 31238, - "龍": 31239, - "君": 31240, - "夏": 31241, - "": 31242, - "言": 31243, - "先": 31244, - "➜": 31245, - "შ": 31246, - "ძ": 31247, - "ਾ": 31248, - "வ": 31249, - "ど": 31250, - "ヒ": 31251, - "ไ": 31252, - "ன": 31253, - "ば": 31254, - "ギ": 31255, - "գ": 31256, - "ἄ": 31257, - "ヤ": 31258, - "典": 31259, - "府": 31260, - "̄": 31261, - "신": 31262, - "组": 31263, - "改": 31264, - "ὲ": 31265, - "华": 31266, - "与": 31267, - "调": 31268, - "╝": 31269, - "ヴ": 31270, - "ქ": 31271, - "由": 31272, - "修": 31273, - "學": 31274, - "♣": 31275, - "消": 31276, - "符": 31277, - "ʌ": 31278, - "부": 31279, - "ớ": 31280, - "‾": 31281, - "▲": 31282, - "录": 31283, - "ള": 31284, - "연": 31285, - "을": 31286, - "ひ": 31287, - "영": 31288, - "┤": 31289, - "已": 31290, - "陽": 31291, - "င": 31292, - "국": 31293, - "容": 31294, - "未": 31295, - "宗": 31296, - "ᴇ": 31297, - "び": 31298, - "장": 31299, - "龙": 31300, - "්": 31301, - "提": 31302, - "ĝ": 31303, - "六": 31304, - "形": 31305, - "제": 31306, - "Հ": 31307, - "伊": 31308, - "ϵ": 31309, - "ข": 31310, - "Ű": 31311, - "ゃ": 31312, - "火": 31313, - "Ṣ": 31314, - "佐": 31315, - "⊥": 31316, - "̪": 31317, - "ứ": 31318, - "□": 31319, - "结": 31320, - "九": 31321, - "雄": 31322, - "թ": 31323, - "ា": 31324, - "而": 31325, - "བ": 31326, - "우": 31327, - "张": 31328, - "ट": 31329, - "ष": 31330, - "向": 31331, - "ῥ": 31332, - "选": 31333, - "공": 31334, - "ゲ": 31335, - "ʐ": 31336, - "仁": 31337, - "堂": 31338, - "ך": 31339, - "ု": 31340, - "ἔ": 31341, - "അ": 31342, - "ề": 31343, - "ད": 31344, - "선": 31345, - "오": 31346, - "久": 31347, - "œ": 31348, - "义": 31349, - "अ": 31350, - "╔": 31351, - "无": 31352, - "
": 31353, - "은": 31354, - "ʷ": 31355, - "那": 31356, - "線": 31357, - "务": 31358, - "基": 31359, - "属": 31360, - "配": 31361, - "미": 31362, - "軍": 31363, - "โ": 31364, - "津": 31365, - "完": 31366, - "研": 31367, - "注": 31368, - "失": 31369, - "应": 31370, - "က": 31371, - "╚": 31372, - "友": 31373, - "章": 31374, - "Ψ": 31375, - "求": 31376, - "ण": 31377, - "경": 31378, - "‬": 31379, - "भ": 31380, - "们": 31381, - "模": 31382, - "需": 31383, - "ச": 31384, - "電": 31385, - "প": 31386, - "դ": 31387, - "へ": 31388, - "此": 31389, - "夜": 31390, - "或": 31391, - "橋": 31392, - "根": 31393, - "Ī": 31394, - "玉": 31395, - "ู": 31396, - "ṅ": 31397, - "交": 31398, - "品": 31399, - "良": 31400, - "ང": 31401, - "ォ": 31402, - "则": 31403, - "開": 31404, - "Ζ": 31405, - "문": 31406, - "被": 31407, - "조": 31408, - "株": 31409, - "记": 31410, - "會": 31411, - "经": 31412, - "ू": 31413, - "ょ": 31414, - "转": 31415, - "崎": 31416, - "마": 31417, - "⌘": 31418, - "比": 31419, - "造": 31420, - "ܐ": 31421, - "ื": 31422, - "没": 31423, - "现": 31424, - "七": 31425, - "Ά": 31426, - "商": 31427, - "ை": 31428, - "机": 31429, - "阳": 31430, - "ĉ": 31431, - "角": 31432, - "站": 31433, - "բ": 31434, - "해": 31435, - "及": 31436, - "ध": 31437, - "術": 31438, - "认": 31439, - "‘": 31440, - "创": 31441, - "編": 31442, - "ղ": 31443, - "ḩ": 31444, - "伝": 31445, - "岡": 31446, - "ड": 31447, - "ホ": 31448, - "港": 31449, - "任": 31450, - "登": 31451, - "ི": 31452, - "็": 31453, - "布": 31454, - "究": 31455, - "帝": 31456, - "여": 31457, - "산": 31458, - "န": 31459, - "◦": 31460, - "密": 31461, - "变": 31462, - "序": 31463, - "♀": 31464, - "∣": 31465, - "计": 31466, - "曲": 31467, - "Ă": 31468, - "ύ": 31469, - "ʋ": 31470, - "传": 31471, - "】": 31472, - "包": 31473, - "意": 31474, - "去": 31475, - "沙": 31476, - "⸮": 31477, - "【": 31478, - "写": 31479, - "超": 31480, - "ய": 31481, - "今": 31482, - "┈": 31483, - "森": 31484, - "ි": 31485, - "⊗": 31486, - "비": 31487, - "հ": 31488, - "Ḩ": 31489, - "ǫ": 31490, - "黄": 31491, - "∙": 31492, - "드": 31493, - "🌍": 31494, - "景": 31495, - "湖": 31496, - "ք": 31497, - "ိ": 31498, - "ⁿ": 31499, - "̂": 31500, - "ペ": 31501, - "何": 31502, - "宇": 31503, - "張": 31504, - "语": 31505, - "老": 31506, - "例": 31507, - "Ṭ": 31508, - "鉄": 31509, - "克": 31510, - "☉": 31511, - "™": 31512, - "ɹ": 31513, - "ἱ": 31514, - "ⴰ": 31515, - "然": 31516, - "를": 31517, - "ǧ": 31518, - "報": 31519, - "服": 31520, - "Ď": 31521, - "想": 31522, - "‖": 31523, - "ユ": 31524, - "実": 31525, - "载": 31526, - "요": 31527, - "ℚ": 31528, - "波": 31529, - "马": 31530, - "状": 31531, - "线": 31532, - "유": 31533, - "洋": 31534, - "万": 31535, - "진": 31536, - "জ": 31537, - "添": 31538, - "球": 31539, - "機": 31540, - "支": 31541, - "显": 31542, - "拉": 31543, - "ὑ": 31544, - "送": 31545, - "隊": 31546, - "ธ": 31547, - "处": 31548, - "師": 31549, - "⊂": 31550, - "像": 31551, - "়": 31552, - "黒": 31553, - "ց": 31554, - "": 31555, - "ủ": 31556, - "只": 31557, - "起": 31558, - "段": 31559, - "တ": 31560, - "區": 31561, - "選": 31562, - "천": 31563, - "業": 31564, - "算": 31565, - "广": 31566, - "រ": 31567, - "视": 31568, - "秋": 31569, - "因": 31570, - "년": 31571, - "ے": 31572, - "输": 31573, - "̱": 31574, - "Մ": 31575, - "∆": 31576, - "康": 31577, - "세": 31578, - "思": 31579, - "死": 31580, - "聖": 31581, - "민": 31582, - "-": 31583, - "头": 31584, - "ർ": 31585, - "∉": 31586, - "車": 31587, - "┃": 31588, - "▇": 31589, - "按": 31590, - "⍵": 31591, - "夢": 31592, - "汉": 31593, - "从": 31594, - "ী": 31595, - "题": 31596, - "ˆ": 31597, - "ἡ": 31598, - "展": 31599, - "省": 31600, - "ུ": 31601, - "葉": 31602, - "호": 31603, - "ਰ": 31604, - "素": 31605, - "関": 31606, - "그": 31607, - ";": 31608, - "න": 31609, - "页": 31610, - "共": 31611, - "宿": 31612, - "态": 31613, - "ན": 31614, - "技": 31615, - "乐": 31616, - "控": 31617, - "移": 31618, - "影": 31619, - "ụ": 31620, - "ゆ": 31621, - "ご": 31622, - "್": 31623, - "管": 31624, - "ൾ": 31625, - "╣": 31626, - "戸": 31627, - "⇔": 31628, - "函": 31629, - "ẓ": 31630, - "尾": 31631, - "场": 31632, - "介": 31633, - "": 31634, - "育": 31635, - "ර": 31636, - "泉": 31637, - "ൽ": 31638, - "说": 31639, - "换": 31640, - "必": 31641, - "紀": 31642, - "མ": 31643, - "ེ": 31644, - "ợ": 31645, - "ൻ": 31646, - "宝": 31647, - "気": 31648, - "门": 31649, - "令": 31650, - "左": 31651, - "漢": 31652, - "若": 31653, - "屋": 31654, - "局": 31655, - "打": 31656, - "発": 31657, - "问": 31658, - "恋": 31659, - "兵": 31660, - "別": 31661, - "ા": 31662, - "Ս": 31663, - "߬": 31664, - "গ": 31665, - "并": 31666, - "ख": 31667, - "ή": 31668, - "节": 31669, - "ʑ": 31670, - "ץ": 31671, - "Ḫ": 31672, - "ℂ": 31673, - "引": 31674, - "统": 31675, - "智": 31676, - "̩": 31677, - "ै": 31678, - "电": 31679, - "현": 31680, - "✅": 31681, - "赤": 31682, - "断": 31683, - "ね": 31684, - "称": 31685, - "শ": 31686, - "身": 31687, - "首": 31688, - "付": 31689, - "⅓": 31690, - "ਸ": 31691, - "連": 31692, - "ზ": 31693, - "官": 31694, - "持": 31695, - "奈": 31696, - "御": 31697, - "親": 31698, - "군": 31699, - "库": 31700, - "秀": 31701, - "址": 31702, - "守": 31703, - "活": 31704, - "ལ": 31705, - "ふ": 31706, - "藏": 31707, - "ស": 31708, - "竹": 31709, - "草": 31710, - "結": 31711, - "ා": 31712, - "昌": 31713, - "樹": 31714, - "ள": 31715, - "무": 31716, - "হ": 31717, - "ゼ": 31718, - "̈": 31719, - "շ": 31720, - "勝": 31721, - "足": 31722, - "ရ": 31723, - "위": 31724, - "į": 31725, - "Ἰ": 31726, - "航": 31727, - "陳": 31728, - "业": 31729, - "富": 31730, - "雪": 31731, - "आ": 31732, - "再": 31733, - "안": 31734, - "默": 31735, - "박": 31736, - "용": 31737, - "✿": 31738, - "楽": 31739, - "沢": 31740, - "羅": 31741, - "Ė": 31742, - "ʎ": 31743, - "忠": 31744, - "错": 31745, - "단": 31746, - "면": 31747, - "ķ": 31748, - "桥": 31749, - "雲": 31750, - "该": 31751, - "ṯ": 31752, - "岩": 31753, - "남": 31754, - "ỹ": 31755, - "专": 31756, - "切": 31757, - "店": 31758, - "朱": 31759, - "ף": 31760, - "ず": 31761, - "幸": 31762, - "母": 31763, - "ɫ": 31764, - "々": 31765, - "∷": 31766, - "串": 31767, - "击": 31768, - "Ἐ": 31769, - "設": 31770, - "⊤": 31771, - "ₗ": 31772, - "經": 31773, - "강": 31774, - "ပ": 31775, - "।": 31776, - "ѐ": 31777, - "ᾶ": 31778, - "➖": 31779, - "座": 31780, - "씨": 31781, - "ぶ": 31782, - "Ţ": 31783, - "云": 31784, - "告": 31785, - "変": 31786, - "试": 31787, - "隆": 31788, - "개": 31789, - "պ": 31790, - "判": 31791, - "劉": 31792, - "˜": 31793, - "ˠ": 31794, - "编": 31795, - "ณ": 31796, - "ữ": 31797, - "达": 31798, - "Ě": 31799, - "ܝ": 31800, - "ြ": 31801, - "ḷ": 31802, - "右": 31803, - "들": 31804, - "ŝ": 31805, - "ӏ": 31806, - "్": 31807, - "എ": 31808, - "ற": 31809, - "复": 31810, - "看": 31811, - "話": 31812, - "坂": 31813, - "尔": 31814, - "衛": 31815, - "զ": 31816, - "차": 31817, - "丸": 31818, - "样": 31819, - "鬼": 31820, - "़": 31821, - "학": 31822, - "喜": 31823, - "斯": 31824, - "銀": 31825, - "만": 31826, - "Ξ": 31827, - "ც": 31828, - "群": 31829, - "近": 31830, - "塔": 31831, - "ϊ": 31832, - "ந": 31833, - "む": 31834, - "确": 31835, - "索": 31836, - "∇": 31837, - "非": 31838, - "望": 31839, - "❯": 31840, - "希": 31841, - "ỳ": 31842, - "甲": 31843, - "越": 31844, - "鳥": 31845, - "麻": 31846, - "雅": 31847, - "拳": 31848, - "ក": 31849, - "溪": 31850, - "测": 31851, - "话": 31852, - "池": 31853, - "菜": 31854, - "食": 31855, - "터": 31856, - "ਿ": 31857, - "渡": 31858, - "速": 31859, - "ھ": 31860, - "ರ": 31861, - "陈": 31862, - "健": 31863, - "ো": 31864, - "ක": 31865, - "ὺ": 31866, - "军": 31867, - "庄": 31868, - "红": 31869, - "Ħ": 31870, - "論": 31871, - "Ÿ": 31872, - "Έ": 31873, - "ự": 31874, - "孝": 31875, - "頭": 31876, - "飛": 31877, - "˚": 31878, - "▓": 31879, - "ً": 31880, - "‭": 31881, - "么": 31882, - "達": 31883, - "ѫ": 31884, - "巴": 31885, - "洞": 31886, - "貴": 31887, - "项": 31888, - "ദ": 31889, - "ɵ": 31890, - "̍": 31891, - "ҡ": 31892, - "种": 31893, - "运": 31894, - "식": 31895, - "ྱ": 31896, - "ḳ": 31897, - "彦": 31898, - "⥤": 31899, - "书": 31900, - "构": 31901, - "米": 31902, - "连": 31903, - "操": 31904, - "装": 31905, - "과": 31906, - "ぐ": 31907, - "反": 31908, - "̌": 31909, - "仮": 31910, - "员": 31911, - "昭": 31912, - "ശ": 31913, - "兴": 31914, - "客": 31915, - "删": 31916, - "ම": 31917, - "ව": 31918, - "პ": 31919, - "ċ": 31920, - "ഷ": 31921, - "သ": 31922, - "ᵉ": 31923, - "居": 31924, - "타": 31925, - "𝓝": 31926, - "थ": 31927, - "現": 31928, - "ˇ": 31929, - "종": 31930, - "助": 31931, - "唐": 31932, - "瀬": 31933, - "ន": 31934, - "微": 31935, - "1": 31936, - "Ġ": 31937, - "ほ": 31938, - "舞": 31939, - "내": 31940, - "중": 31941, - "Ē": 31942, - "导": 31943, - "效": 31944, - "방": 31945, - "ḏ": 31946, - "深": 31947, - "梅": 31948, - "料": 31949, - "월": 31950, - "每": 31951, - "洲": 31952, - "회": 31953, - "茶": 31954, - "败": 31955, - "ഞ": 31956, - "ể": 31957, - "ヨ": 31958, - "些": 31959, - "双": 31960, - "嘉": 31961, - "모": 31962, - "바": 31963, - "ษ": 31964, - "進": 31965, - "음": 31966, - "ญ": 31967, - "丁": 31968, - "故": 31969, - "計": 31970, - "遠": 31971, - "교": 31972, - "재": 31973, - "候": 31974, - "房": 31975, - "명": 31976, - "两": 31977, - "ფ": 31978, - "才": 31979, - "합": 31980, - "止": 31981, - "番": 31982, - "ɯ": 31983, - "奇": 31984, - "怪": 31985, - "联": 31986, - "역": 31987, - "泰": 31988, - "백": 31989, - "ὀ": 31990, - "げ": 31991, - "べ": 31992, - "边": 31993, - "还": 31994, - "黃": 31995, - "왕": 31996, - "收": 31997, - "弘": 31998, - "给": 31999, - "▁": 32007, - "▁": 32008, - "▁": 32009, - "▁": 32010, - "▁": 32011, - "▁": 32012, - "▁": 32013, - "▁": 32014, - "": 32015 - }, - "merges": [ - [ - "▁", - "t" - ], - [ - "e", - "r" - ], - [ - "i", - "n" - ], - [ - "▁", - "a" - ], - [ - "e", - "n" - ], - [ - "o", - "n" - ], - [ - "▁t", - "h" - ], - [ - "▁", - "th" - ], - [ - "e", - "s" - ], - [ - "▁", - "s" - ], - [ - "▁", - "d" - ], - [ - "a", - "t" - ], - [ - "o", - "r" - ], - [ - "a", - "n" - ], - [ - "▁", - "c" - ], - [ - "i", - "s" - ], - [ - "r", - "e" - ], - [ - "i", - "t" - ], - [ - "▁t", - "he" - ], - [ - "▁th", - "e" - ], - [ - "▁", - "the" - ], - [ - "a", - "r" - ], - [ - "l", - "e" - ], - [ - "▁", - "w" - ], - [ - "▁", - "p" - ], - [ - "o", - "u" - ], - [ - "a", - "l" - ], - [ - "▁", - "f" - ], - [ - "▁", - "m" - ], - [ - "e", - "d" - ], - [ - "▁", - "o" - ], - [ - "▁", - "b" - ], - [ - "o", - "m" - ], - [ - "io", - "n" - ], - [ - "i", - "on" - ], - [ - "in", - "g" - ], - [ - "i", - "ng" - ], - [ - "i", - "c" - ], - [ - "a", - "s" - ], - [ - "e", - "l" - ], - [ - "en", - "t" - ], - [ - "e", - "nt" - ], - [ - "▁i", - "n" - ], - [ - "▁", - "in" - ], - [ - "▁", - "h" - ], - [ - "n", - "d" - ], - [ - "e", - "t" - ], - [ - "▁", - "l" - ], - [ - "▁", - "n" - ], - [ - "s", - "t" - ], - [ - "▁t", - "o" - ], - [ - "▁", - "to" - ], - [ - "c", - "h" - ], - [ - "▁", - "I" - ], - [ - "r", - "o" - ], - [ - "i", - "l" - ], - [ - "▁o", - "f" - ], - [ - "▁", - "of" - ], - [ - "d", - "e" - ], - [ - "c", - "t" - ], - [ - "▁", - "(" - ], - [ - "a", - "m" - ], - [ - "▁", - "C" - ], - [ - "▁d", - "e" - ], - [ - "▁", - "de" - ], - [ - "▁", - "S" - ], - [ - "▁", - "u" - ], - [ - "▁", - "A" - ], - [ - "▁", - "\\" - ], - [ - "▁", - "e" - ], - [ - "▁a", - "nd" - ], - [ - "▁an", - "d" - ], - [ - "▁", - "and" - ], - [ - "▁", - "T" - ], - [ - "o", - "l" - ], - [ - "▁", - "v" - ], - [ - "i", - "m" - ], - [ - "o", - "t" - ], - [ - "a", - "d" - ], - [ - "u", - "t" - ], - [ - "▁", - "g" - ], - [ - "e", - "m" - ], - [ - "u", - "r" - ], - [ - "i", - "d" - ], - [ - "▁", - "*" - ], - [ - "i", - "g" - ], - [ - "r", - "a" - ], - [ - "▁r", - "e" - ], - [ - "▁", - "re" - ], - [ - "▁i", - "s" - ], - [ - "▁", - "is" - ], - [ - "q", - "u" - ], - [ - "o", - "w" - ], - [ - "▁", - "M" - ], - [ - "es", - "t" - ], - [ - "e", - "st" - ], - [ - "▁", - "y" - ], - [ - "s", - "e" - ], - [ - "v", - "e" - ], - [ - "c", - "e" - ], - [ - "i", - "e" - ], - [ - "u", - "n" - ], - [ - "▁", - "P" - ], - [ - "▁", - "B" - ], - [ - "a", - "g" - ], - [ - "u", - "l" - ], - [ - "▁", - "=" - ], - [ - "h", - "e" - ], - [ - "en", - "d" - ], - [ - "e", - "nd" - ], - [ - "od", - "e" - ], - [ - "o", - "de" - ], - [ - "te", - "r" - ], - [ - "t", - "er" - ], - [ - "me", - "nt" - ], - [ - "men", - "t" - ], - [ - "m", - "ent" - ], - [ - "o", - "s" - ], - [ - "▁", - "D" - ], - [ - "i", - "f" - ], - [ - "at", - "ion" - ], - [ - "ati", - "on" - ], - [ - "atio", - "n" - ], - [ - "a", - "tion" - ], - [ - "▁f", - "or" - ], - [ - "▁fo", - "r" - ], - [ - "▁", - "for" - ], - [ - "▁", - "r" - ], - [ - "▁", - "L" - ], - [ - "▁y", - "ou" - ], - [ - "▁yo", - "u" - ], - [ - "▁", - "you" - ], - [ - "▁b", - "e" - ], - [ - "▁", - "be" - ], - [ - "l", - "y" - ], - [ - "ve", - "r" - ], - [ - "v", - "er" - ], - [ - "a", - "b" - ], - [ - "t", - "e" - ], - [ - "▁i", - "t" - ], - [ - "▁", - "it" - ], - [ - "▁o", - "n" - ], - [ - "▁", - "on" - ], - [ - "r", - "i" - ], - [ - "u", - "s" - ], - [ - "▁", - "\"" - ], - [ - "▁w", - "h" - ], - [ - "▁", - "wh" - ], - [ - "▁c", - "on" - ], - [ - "▁co", - "n" - ], - [ - "▁", - "con" - ], - [ - "▁", - "H" - ], - [ - "▁s", - "t" - ], - [ - "▁", - "st" - ], - [ - "i", - "r" - ], - [ - "▁", - "E" - ], - [ - "▁", - "F" - ], - [ - "c", - "k" - ], - [ - "▁a", - "n" - ], - [ - "▁", - "an" - ], - [ - "t", - "h" - ], - [ - "e", - "g" - ], - [ - "a", - "y" - ], - [ - "it", - "h" - ], - [ - "i", - "th" - ], - [ - "▁", - "R" - ], - [ - "is", - "t" - ], - [ - "i", - "st" - ], - [ - "an", - "d" - ], - [ - "a", - "nd" - ], - [ - "▁t", - "hat" - ], - [ - "▁th", - "at" - ], - [ - "▁", - "that" - ], - [ - "▁a", - "l" - ], - [ - "▁", - "al" - ], - [ - "▁", - "$" - ], - [ - "▁", - "#" - ], - [ - "o", - "d" - ], - [ - "u", - "m" - ], - [ - "▁", - "W" - ], - [ - "h", - "t" - ], - [ - "co", - "de" - ], - [ - "cod", - "e" - ], - [ - "c", - "ode" - ], - [ - "▁", - "G" - ], - [ - "at", - "e" - ], - [ - "a", - "te" - ], - [ - "es", - "s" - ], - [ - "e", - "ss" - ], - [ - "▁", - "N" - ], - [ - "er", - "e" - ], - [ - "e", - "re" - ], - [ - "p", - "p" - ], - [ - "▁a", - "s" - ], - [ - "▁", - "as" - ], - [ - "▁s", - "e" - ], - [ - "▁", - "se" - ], - [ - "▁p", - "ro" - ], - [ - "▁pr", - "o" - ], - [ - "▁", - "pro" - ], - [ - "▁w", - "ith" - ], - [ - "▁wit", - "h" - ], - [ - "▁", - "with" - ], - [ - "p", - "e" - ], - [ - "▁", - "k" - ], - [ - "er", - "s" - ], - [ - "e", - "rs" - ], - [ - "p", - "t" - ], - [ - ")", - ";" - ], - [ - "l", - "o" - ], - [ - "▁c", - "om" - ], - [ - "▁co", - "m" - ], - [ - "▁", - "com" - ], - [ - "am", - "e" - ], - [ - "a", - "me" - ], - [ - "▁", - "`" - ], - [ - "▁C", - "om" - ], - [ - "▁Co", - "m" - ], - [ - "▁", - "Com" - ], - [ - "i", - "a" - ], - [ - "an", - "t" - ], - [ - "a", - "nt" - ], - [ - "▁l", - "a" - ], - [ - "▁", - "la" - ], - [ - "▁", - "{" - ], - [ - "▁e", - "n" - ], - [ - "▁", - "en" - ], - [ - "ct", - "ion" - ], - [ - "c", - "tion" - ], - [ - "▁e", - "x" - ], - [ - "▁", - "ex" - ], - [ - "l", - "d" - ], - [ - "u", - "b" - ], - [ - "▁", - "j" - ], - [ - "l", - "a" - ], - [ - "u", - "e" - ], - [ - "▁", - "J" - ], - [ - "ic", - "h" - ], - [ - "i", - "ch" - ], - [ - "▁d", - "o" - ], - [ - "▁", - "do" - ], - [ - "▁", - "O" - ], - [ - "▁q", - "u" - ], - [ - "▁", - "qu" - ], - [ - "i", - "v" - ], - [ - "or", - "t" - ], - [ - "o", - "rt" - ], - [ - "ar", - "t" - ], - [ - "a", - "rt" - ], - [ - "▁u", - "n" - ], - [ - "▁", - "un" - ], - [ - "▁#", - "#" - ], - [ - "▁", - "##" - ], - [ - "▁t", - "his" - ], - [ - "▁th", - "is" - ], - [ - "▁", - "this" - ], - [ - "k", - "e" - ], - [ - "▁h", - "a" - ], - [ - "▁", - "ha" - ], - [ - "▁", - "-" - ], - [ - "ou", - "t" - ], - [ - "o", - "ut" - ], - [ - "▁T", - "he" - ], - [ - "▁Th", - "e" - ], - [ - "▁", - "The" - ], - [ - "▁n", - "ot" - ], - [ - "▁no", - "t" - ], - [ - "▁", - "not" - ], - [ - "▁n", - "e" - ], - [ - "▁", - "ne" - ], - [ - "il", - "l" - ], - [ - "i", - "ll" - ], - [ - "▁l", - "e" - ], - [ - "▁", - "le" - ], - [ - "c", - "i" - ], - [ - "ro", - "m" - ], - [ - "r", - "om" - ], - [ - "in", - "e" - ], - [ - "i", - "ne" - ], - [ - "/", - "/" - ], - [ - "o", - "p" - ], - [ - "eg", - "in" - ], - [ - "e", - "gin" - ], - [ - "▁Com", - "ment" - ], - [ - "▁Comm", - "ent" - ], - [ - "▁", - "Comment" - ], - [ - "be", - "gin" - ], - [ - "beg", - "in" - ], - [ - "b", - "egin" - ], - [ - "с", - "т" - ], - [ - "as", - "s" - ], - [ - "a", - "ss" - ], - [ - "i", - "z" - ], - [ - ")", - "." - ], - [ - "o", - "g" - ], - [ - "▁", - "п" - ], - [ - "▁o", - "r" - ], - [ - "▁", - "or" - ], - [ - "▁w", - "as" - ], - [ - "▁wa", - "s" - ], - [ - "▁", - "was" - ], - [ - "▁a", - "t" - ], - [ - "▁", - "at" - ], - [ - "ou", - "r" - ], - [ - "o", - "ur" - ], - [ - "▁", - "i" - ], - [ - "ai", - "n" - ], - [ - "a", - "in" - ], - [ - "▁", - "K" - ], - [ - "н", - "а" - ], - [ - "▁", - "V" - ], - [ - "g", - "e" - ], - [ - "▁s", - "u" - ], - [ - "▁", - "su" - ], - [ - "a", - "p" - ], - [ - "ag", - "e" - ], - [ - "a", - "ge" - ], - [ - "ou", - "ld" - ], - [ - "oul", - "d" - ], - [ - "o", - "uld" - ], - [ - "n", - "e" - ], - [ - "a", - "v" - ], - [ - "x", - "t" - ], - [ - "or", - "e" - ], - [ - "o", - "re" - ], - [ - "il", - "e" - ], - [ - "i", - "le" - ], - [ - "-", - "-" - ], - [ - "▁", - "в" - ], - [ - "▁b", - "y" - ], - [ - "▁", - "by" - ], - [ - "l", - "i" - ], - [ - "at", - "h" - ], - [ - "a", - "th" - ], - [ - "р", - "а" - ], - [ - "be", - "r" - ], - [ - "b", - "er" - ], - [ - "ac", - "h" - ], - [ - "a", - "ch" - ], - [ - "al", - "l" - ], - [ - "a", - "ll" - ], - [ - "▁T", - "h" - ], - [ - "▁", - "Th" - ], - [ - "ul", - "t" - ], - [ - "u", - "lt" - ], - [ - "▁", - "}" - ], - [ - "▁", - "U" - ], - [ - "▁u", - "s" - ], - [ - "▁", - "us" - ], - [ - "▁", - "z" - ], - [ - "us", - "t" - ], - [ - "u", - "st" - ], - [ - "▁h", - "ave" - ], - [ - "▁ha", - "ve" - ], - [ - "▁hav", - "e" - ], - [ - "▁", - "have" - ], - [ - "li", - "c" - ], - [ - "l", - "ic" - ], - [ - "н", - "и" - ], - [ - "▁c", - "an" - ], - [ - "▁ca", - "n" - ], - [ - "▁", - "can" - ], - [ - "t", - "r" - ], - [ - "co", - "m" - ], - [ - "c", - "om" - ], - [ - ")", - "," - ], - [ - "▁I", - "n" - ], - [ - "▁", - "In" - ], - [ - "in", - "d" - ], - [ - "i", - "nd" - ], - [ - "el", - "l" - ], - [ - "e", - "ll" - ], - [ - "▁f", - "rom" - ], - [ - "▁fr", - "om" - ], - [ - "▁fro", - "m" - ], - [ - "▁", - "from" - ], - [ - "о", - "в" - ], - [ - "t", - "o" - ], - [ - "▁", - "[" - ], - [ - "ab", - "le" - ], - [ - "abl", - "e" - ], - [ - "a", - "ble" - ], - [ - "os", - "t" - ], - [ - "o", - "st" - ], - [ - "▁c", - "h" - ], - [ - "▁", - "ch" - ], - [ - "ec", - "t" - ], - [ - "e", - "ct" - ], - [ - "ig", - "ht" - ], - [ - "igh", - "t" - ], - [ - "in", - "t" - ], - [ - "i", - "nt" - ], - [ - "▁", - "'" - ], - [ - "▁a", - "re" - ], - [ - "▁ar", - "e" - ], - [ - "▁", - "are" - ], - [ - "▁i", - "m" - ], - [ - "▁", - "im" - ], - [ - "▁s", - "h" - ], - [ - "▁", - "sh" - ], - [ - "▁", - "<" - ], - [ - "▁A", - "n" - ], - [ - "▁", - "An" - ], - [ - "▁", - "с" - ], - [ - "at", - "a" - ], - [ - "a", - "ta" - ], - [ - "ir", - "e" - ], - [ - "i", - "re" - ], - [ - "▁t", - "r" - ], - [ - "▁", - "tr" - ], - [ - "co", - "n" - ], - [ - "c", - "on" - ], - [ - "or", - "d" - ], - [ - "o", - "rd" - ], - [ - "it", - "y" - ], - [ - "i", - "ty" - ], - [ - "ar", - "d" - ], - [ - "a", - "rd" - ], - [ - "▁h", - "e" - ], - [ - "▁", - "he" - ], - [ - "▁b", - "ut" - ], - [ - "▁bu", - "t" - ], - [ - "▁", - "but" - ], - [ - "o", - "c" - ], - [ - "=", - "\"" - ], - [ - "▁p", - "r" - ], - [ - "▁", - "pr" - ], - [ - "ur", - "e" - ], - [ - "u", - "re" - ], - [ - "pe", - "r" - ], - [ - "p", - "er" - ], - [ - "ac", - "k" - ], - [ - "a", - "ck" - ], - [ - "or", - "k" - ], - [ - "on", - "g" - ], - [ - "o", - "ng" - ], - [ - "an", - "s" - ], - [ - "a", - "ns" - ], - [ - "к", - "о" - ], - [ - "pl", - "e" - ], - [ - "p", - "le" - ], - [ - "▁d", - "es" - ], - [ - "▁de", - "s" - ], - [ - "▁", - "des" - ], - [ - "o", - "k" - ], - [ - "or", - "m" - ], - [ - "o", - "rm" - ], - [ - "we", - "r" - ], - [ - "w", - "er" - ], - [ - "a", - "k" - ], - [ - "p", - "r" - ], - [ - "as", - "e" - ], - [ - "a", - "se" - ], - [ - "▁e", - "l" - ], - [ - "▁", - "el" - ], - [ - "p", - "h" - ], - [ - "a", - "c" - ], - [ - "▁u", - "nd" - ], - [ - "▁un", - "d" - ], - [ - "▁", - "und" - ], - [ - "▁a", - "r" - ], - [ - "▁", - "ar" - ], - [ - "▁i", - "f" - ], - [ - "▁", - "if" - ], - [ - "u", - "d" - ], - [ - "p", - "s" - ], - [ - "it", - "e" - ], - [ - "i", - "te" - ], - [ - "bl", - "e" - ], - [ - "b", - "le" - ], - [ - "н", - "о" - ], - [ - "fe", - "r" - ], - [ - "f", - "er" - ], - [ - "p", - "l" - ], - [ - "iv", - "e" - ], - [ - "i", - "ve" - ], - [ - "an", - "g" - ], - [ - "a", - "ng" - ], - [ - "en", - "s" - ], - [ - "e", - "ns" - ], - [ - "р", - "о" - ], - [ - "▁s", - "o" - ], - [ - "▁", - "so" - ], - [ - "s", - "o" - ], - [ - "as", - "t" - ], - [ - "a", - "st" - ], - [ - "(", - ")" - ], - [ - "sw", - "er" - ], - [ - "s", - "wer" - ], - [ - "r", - "u" - ], - [ - "ie", - "s" - ], - [ - "i", - "es" - ], - [ - "▁", - ":" - ], - [ - "a", - "u" - ], - [ - "o", - "v" - ], - [ - "р", - "е" - ], - [ - "г", - "о" - ], - [ - "▁d", - "er" - ], - [ - "▁de", - "r" - ], - [ - "▁", - "der" - ], - [ - "▁m", - "y" - ], - [ - "▁", - "my" - ], - [ - "▁w", - "e" - ], - [ - "▁", - "we" - ], - [ - "▁m", - "e" - ], - [ - "▁", - "me" - ], - [ - "n", - "t" - ], - [ - "▁a", - "d" - ], - [ - "▁", - "ad" - ], - [ - "ur", - "n" - ], - [ - "u", - "rn" - ], - [ - "▁y", - "our" - ], - [ - "▁you", - "r" - ], - [ - "▁yo", - "ur" - ], - [ - "▁", - "your" - ], - [ - ":/", - "/" - ], - [ - ":", - "//" - ], - [ - "ar", - "e" - ], - [ - "a", - "re" - ], - [ - "▁a", - "ll" - ], - [ - "▁al", - "l" - ], - [ - "▁", - "all" - ], - [ - "f", - "f" - ], - [ - "i", - "o" - ], - [ - "es", - "tion" - ], - [ - "est", - "ion" - ], - [ - "esti", - "on" - ], - [ - "im", - "e" - ], - [ - "i", - "me" - ], - [ - "▁e", - "r" - ], - [ - "▁", - "er" - ], - [ - "la", - "ss" - ], - [ - "las", - "s" - ], - [ - "l", - "ass" - ], - [ - "▁", - "и" - ], - [ - "▁wh", - "ich" - ], - [ - "▁", - "which" - ], - [ - "om", - "e" - ], - [ - "o", - "me" - ], - [ - "on", - "t" - ], - [ - "o", - "nt" - ], - [ - "▁p", - "ar" - ], - [ - "▁pa", - "r" - ], - [ - "▁", - "par" - ], - [ - "▁m", - "a" - ], - [ - "▁", - "ma" - ], - [ - "▁", - "Y" - ], - [ - "\"", - "," - ], - [ - "▁", - "о" - ], - [ - "f", - "t" - ], - [ - "ia", - "l" - ], - [ - "i", - "al" - ], - [ - "c", - "c" - ], - [ - "ou", - "nd" - ], - [ - "oun", - "d" - ], - [ - "o", - "und" - ], - [ - "▁l", - "i" - ], - [ - "▁", - "li" - ], - [ - "▁re", - "s" - ], - [ - "▁r", - "es" - ], - [ - "▁", - "res" - ], - [ - "et", - "h" - ], - [ - "e", - "th" - ], - [ - "je", - "ct" - ], - [ - "j", - "ect" - ], - [ - "▁a", - "pp" - ], - [ - "▁ap", - "p" - ], - [ - "▁", - "app" - ], - [ - "▁S", - "t" - ], - [ - "▁", - "St" - ], - [ - "ic", - "e" - ], - [ - "i", - "ce" - ], - [ - "▁a", - "m" - ], - [ - "▁", - "am" - ], - [ - "ac", - "t" - ], - [ - "a", - "ct" - ], - [ - "▁d", - "el" - ], - [ - "▁de", - "l" - ], - [ - "▁", - "del" - ], - [ - "g", - "r" - ], - [ - "at", - "ed" - ], - [ - "ate", - "d" - ], - [ - "a", - "ted" - ], - [ - "ie", - "r" - ], - [ - "i", - "er" - ], - [ - "▁a", - "b" - ], - [ - "▁", - "ab" - ], - [ - "▁e", - "t" - ], - [ - "▁", - "et" - ], - [ - "al", - "ly" - ], - [ - "all", - "y" - ], - [ - ".", - "." - ], - [ - "po", - "rt" - ], - [ - "por", - "t" - ], - [ - "p", - "ort" - ], - [ - "i", - "k" - ], - [ - "▁p", - "er" - ], - [ - "▁pe", - "r" - ], - [ - "▁", - "per" - ], - [ - "▁c", - "ont" - ], - [ - "▁con", - "t" - ], - [ - "▁co", - "nt" - ], - [ - "▁", - "cont" - ], - [ - "р", - "и" - ], - [ - "к", - "а" - ], - [ - "se", - "r" - ], - [ - "s", - "er" - ], - [ - "л", - "и" - ], - [ - "l", - "l" - ], - [ - "ie", - "w" - ], - [ - "i", - "ew" - ], - [ - "ig", - "n" - ], - [ - "i", - "gn" - ], - [ - "_", - "{" - ], - [ - "pu", - "t" - ], - [ - "p", - "ut" - ], - [ - "on", - "e" - ], - [ - "o", - "ne" - ], - [ - "un", - "ction" - ], - [ - "unc", - "tion" - ], - [ - "unct", - "ion" - ], - [ - "▁d", - "i" - ], - [ - "▁", - "di" - ], - [ - "ar", - "y" - ], - [ - "a", - "ry" - ], - [ - "it", - "ion" - ], - [ - "iti", - "on" - ], - [ - "i", - "tion" - ], - [ - "m", - "a" - ], - [ - "е", - "н" - ], - [ - "ge", - "t" - ], - [ - "g", - "et" - ], - [ - "▁l", - "o" - ], - [ - "▁", - "lo" - ], - [ - "▁v", - "al" - ], - [ - "▁va", - "l" - ], - [ - "▁", - "val" - ], - [ - "▁", - "Q" - ], - [ - "ra", - "n" - ], - [ - "r", - "an" - ], - [ - "▁", - "д" - ], - [ - "en", - "ce" - ], - [ - "enc", - "e" - ], - [ - "▁w", - "ork" - ], - [ - "▁wor", - "k" - ], - [ - "▁", - "work" - ], - [ - "▁н", - "а" - ], - [ - "▁", - "на" - ], - [ - "i", - "p" - ], - [ - "it", - "em" - ], - [ - "ite", - "m" - ], - [ - "i", - "tem" - ], - [ - "yp", - "e" - ], - [ - "y", - "pe" - ], - [ - "▁", - "&" - ], - [ - "▁h", - "is" - ], - [ - "▁hi", - "s" - ], - [ - "▁", - "his" - ], - [ - "▁u", - "se" - ], - [ - "▁us", - "e" - ], - [ - "▁", - "use" - ], - [ - "de", - "r" - ], - [ - "d", - "er" - ], - [ - "▁An", - "swer" - ], - [ - "▁Ans", - "wer" - ], - [ - "▁", - "Answer" - ], - [ - "▁w", - "ill" - ], - [ - "▁wil", - "l" - ], - [ - "▁", - "will" - ], - [ - "iz", - "e" - ], - [ - "i", - "ze" - ], - [ - "т", - "а" - ], - [ - "lo", - "w" - ], - [ - "l", - "ow" - ], - [ - "▁C", - "h" - ], - [ - "▁", - "Ch" - ], - [ - "▁g", - "et" - ], - [ - "▁ge", - "t" - ], - [ - "▁", - "get" - ], - [ - "id", - "e" - ], - [ - "i", - "de" - ], - [ - "ou", - "s" - ], - [ - "o", - "us" - ], - [ - "in", - "k" - ], - [ - "pt", - "ion" - ], - [ - "p", - "tion" - ], - [ - "л", - "а" - ], - [ - "tu", - "rn" - ], - [ - "t", - "urn" - ], - [ - "un", - "g" - ], - [ - "u", - "ng" - ], - [ - "e", - "c" - ], - [ - "u", - "g" - ], - [ - "fo", - "rm" - ], - [ - "for", - "m" - ], - [ - "f", - "orm" - ], - [ - "re", - "s" - ], - [ - "r", - "es" - ], - [ - "ht", - "t" - ], - [ - "h", - "tt" - ], - [ - "ou", - "g" - ], - [ - "o", - "ug" - ], - [ - "л", - "ь" - ], - [ - "▁n", - "o" - ], - [ - "▁", - "no" - ], - [ - "c", - "l" - ], - [ - "▁r", - "o" - ], - [ - "▁", - "ro" - ], - [ - "▁o", - "ne" - ], - [ - "▁on", - "e" - ], - [ - "▁", - "one" - ], - [ - "t", - "t" - ], - [ - "cr", - "i" - ], - [ - "c", - "ri" - ], - [ - "d", - "u" - ], - [ - "▁u", - "p" - ], - [ - "▁", - "up" - ], - [ - "т", - "о" - ], - [ - "(", - "\"" - ], - [ - "▁o", - "b" - ], - [ - "▁", - "ob" - ], - [ - "w", - "e" - ], - [ - "or", - "y" - ], - [ - "o", - "ry" - ], - [ - "▁e", - "st" - ], - [ - "▁es", - "t" - ], - [ - "▁", - "est" - ], - [ - "er", - "y" - ], - [ - "e", - "ry" - ], - [ - "ie", - "l" - ], - [ - "i", - "el" - ], - [ - "st", - "r" - ], - [ - "s", - "tr" - ], - [ - "o", - "b" - ], - [ - "▁qu", - "e" - ], - [ - "▁q", - "ue" - ], - [ - "▁", - "que" - ], - [ - "ia", - "n" - ], - [ - "i", - "an" - ], - [ - "▁o", - "ut" - ], - [ - "▁ou", - "t" - ], - [ - "▁", - "out" - ], - [ - "▁p", - "l" - ], - [ - "▁", - "pl" - ], - [ - "▁n", - "ew" - ], - [ - "▁ne", - "w" - ], - [ - "▁", - "new" - ], - [ - "к", - "и" - ], - [ - "▁", - "+" - ], - [ - "r", - "y" - ], - [ - "ot", - "h" - ], - [ - "o", - "th" - ], - [ - "th", - "er" - ], - [ - "the", - "r" - ], - [ - "t", - "her" - ], - [ - "▁v", - "ar" - ], - [ - "▁va", - "r" - ], - [ - "▁", - "var" - ], - [ - "▁w", - "ould" - ], - [ - "▁wo", - "uld" - ], - [ - "▁s", - "er" - ], - [ - "▁se", - "r" - ], - [ - "▁", - "ser" - ], - [ - "ter", - "n" - ], - [ - "te", - "rn" - ], - [ - "t", - "ern" - ], - [ - "te", - "xt" - ], - [ - "tex", - "t" - ], - [ - "t", - "ext" - ], - [ - "▁t", - "here" - ], - [ - "▁th", - "ere" - ], - [ - "▁the", - "re" - ], - [ - "▁ther", - "e" - ], - [ - "▁", - "there" - ], - [ - "is", - "h" - ], - [ - "i", - "sh" - ], - [ - "ro", - "r" - ], - [ - "r", - "or" - ], - [ - "т", - "е" - ], - [ - "▁s", - "et" - ], - [ - "▁se", - "t" - ], - [ - "▁", - "set" - ], - [ - "▁", - "@" - ], - [ - "▁п", - "о" - ], - [ - "▁", - "по" - ], - [ - "▁t", - "e" - ], - [ - "▁", - "te" - ], - [ - "e", - "x" - ], - [ - "▁re", - "turn" - ], - [ - "▁ret", - "urn" - ], - [ - "▁", - "return" - ], - [ - "ai", - "l" - ], - [ - "a", - "il" - ], - [ - "▁a", - "ny" - ], - [ - "▁an", - "y" - ], - [ - "▁", - "any" - ], - [ - "▁I", - "t" - ], - [ - "▁", - "It" - ], - [ - "▁f", - "unction" - ], - [ - "▁fun", - "ction" - ], - [ - "▁func", - "tion" - ], - [ - "▁", - "function" - ], - [ - "{", - "\\" - ], - [ - "'", - "," - ], - [ - "é", - "s" - ], - [ - "al", - "e" - ], - [ - "a", - "le" - ], - [ - "а", - "н" - ], - [ - "▁w", - "hen" - ], - [ - "▁wh", - "en" - ], - [ - "▁whe", - "n" - ], - [ - "▁", - "when" - ], - [ - "i", - "b" - ], - [ - "▁g", - "o" - ], - [ - "▁", - "go" - ], - [ - "an", - "ce" - ], - [ - "anc", - "e" - ], - [ - "▁h", - "ad" - ], - [ - "▁ha", - "d" - ], - [ - "▁", - "had" - ], - [ - "▁Q", - "u" - ], - [ - "▁", - "Qu" - ], - [ - "▁c", - "omp" - ], - [ - "▁com", - "p" - ], - [ - "▁co", - "mp" - ], - [ - "▁", - "comp" - ], - [ - "л", - "е" - ], - [ - "▁", - "з" - ], - [ - "ma", - "th" - ], - [ - "mat", - "h" - ], - [ - "m", - "ath" - ], - [ - "▁h", - "as" - ], - [ - "▁ha", - "s" - ], - [ - "▁", - "has" - ], - [ - "▁", - "м" - ], - [ - "▁p", - "re" - ], - [ - "▁pr", - "e" - ], - [ - "▁", - "pre" - ], - [ - "en", - "er" - ], - [ - "ene", - "r" - ], - [ - "e", - "ner" - ], - [ - "▁p", - "art" - ], - [ - "▁par", - "t" - ], - [ - "▁pa", - "rt" - ], - [ - "▁", - "part" - ], - [ - "el", - "f" - ], - [ - "▁d", - "ie" - ], - [ - "▁di", - "e" - ], - [ - "▁", - "die" - ], - [ - "▁l", - "ike" - ], - [ - "▁li", - "ke" - ], - [ - "▁lik", - "e" - ], - [ - "▁", - "like" - ], - [ - "ra", - "y" - ], - [ - "r", - "ay" - ], - [ - "ir", - "st" - ], - [ - "irs", - "t" - ], - [ - "▁d", - "is" - ], - [ - "▁di", - "s" - ], - [ - "▁", - "dis" - ], - [ - "▁m", - "an" - ], - [ - "▁ma", - "n" - ], - [ - "▁", - "man" - ], - [ - "ri", - "t" - ], - [ - "r", - "it" - ], - [ - "▁t", - "hen" - ], - [ - "▁th", - "en" - ], - [ - "▁the", - "n" - ], - [ - "▁", - "then" - ], - [ - "▁c", - "lass" - ], - [ - "▁cl", - "ass" - ], - [ - "▁cla", - "ss" - ], - [ - "▁clas", - "s" - ], - [ - "▁", - "class" - ], - [ - "pr", - "o" - ], - [ - "p", - "ro" - ], - [ - "▁p", - "o" - ], - [ - "▁", - "po" - ], - [ - "▁u", - "sing" - ], - [ - "▁us", - "ing" - ], - [ - "▁", - "using" - ], - [ - "e", - "b" - ], - [ - "▁c", - "ode" - ], - [ - "▁co", - "de" - ], - [ - "▁cod", - "e" - ], - [ - "▁", - "code" - ], - [ - "ow", - "n" - ], - [ - "o", - "wn" - ], - [ - "▁s", - "ome" - ], - [ - "▁so", - "me" - ], - [ - "▁som", - "e" - ], - [ - "▁", - "some" - ], - [ - "ce", - "s" - ], - [ - "c", - "es" - ], - [ - "▁$", - "\\" - ], - [ - "▁", - "$\\" - ], - [ - "е", - "р" - ], - [ - "le", - "ct" - ], - [ - "l", - "ect" - ], - [ - "▁a", - "u" - ], - [ - "▁", - "au" - ], - [ - "is", - "ch" - ], - [ - "isc", - "h" - ], - [ - "i", - "sch" - ], - [ - "▁c", - "ol" - ], - [ - "▁co", - "l" - ], - [ - "▁", - "col" - ], - [ - "▁", - "–" - ], - [ - "u", - "p" - ], - [ - "on", - "s" - ], - [ - "o", - "ns" - ], - [ - "▁a", - "dd" - ], - [ - "▁ad", - "d" - ], - [ - "▁", - "add" - ], - [ - "il", - "d" - ], - [ - "i", - "ld" - ], - [ - "is", - "s" - ], - [ - "i", - "ss" - ], - [ - "va", - "l" - ], - [ - "v", - "al" - ], - [ - "ou", - "nt" - ], - [ - "oun", - "t" - ], - [ - "o", - "unt" - ], - [ - "le", - "s" - ], - [ - "l", - "es" - ], - [ - "ve", - "nt" - ], - [ - "ven", - "t" - ], - [ - "v", - "ent" - ], - [ - "▁", - "Z" - ], - [ - "I", - "n" - ], - [ - "ro", - "w" - ], - [ - "r", - "ow" - ], - [ - "ea", - "r" - ], - [ - "e", - "ar" - ], - [ - "at", - "ions" - ], - [ - "ation", - "s" - ], - [ - "ati", - "ons" - ], - [ - "atio", - "ns" - ], - [ - "a", - "h" - ], - [ - "qu", - "e" - ], - [ - "q", - "ue" - ], - [ - "ub", - "lic" - ], - [ - "u", - "blic" - ], - [ - "an", - "k" - ], - [ - "▁s", - "p" - ], - [ - "▁", - "sp" - ], - [ - "▁W", - "h" - ], - [ - "▁", - "Wh" - ], - [ - "--", - "--" - ], - [ - "---", - "-" - ], - [ - "-", - "---" - ], - [ - "s", - "k" - ], - [ - "e", - "w" - ], - [ - "ag", - "s" - ], - [ - "a", - "gs" - ], - [ - "т", - "и" - ], - [ - "an", - "n" - ], - [ - "a", - "nn" - ], - [ - "▁", - "—" - ], - [ - "er", - "t" - ], - [ - "e", - "rt" - ], - [ - "ac", - "e" - ], - [ - "a", - "ce" - ], - [ - "sc", - "h" - ], - [ - "s", - "ch" - ], - [ - "▁n", - "eed" - ], - [ - "▁ne", - "ed" - ], - [ - "▁", - "need" - ], - [ - "▁", - "à" - ], - [ - "ie", - "n" - ], - [ - "i", - "en" - ], - [ - "ou", - "gh" - ], - [ - "oug", - "h" - ], - [ - "o", - "ugh" - ], - [ - "н", - "е" - ], - [ - "▁d", - "ef" - ], - [ - "▁de", - "f" - ], - [ - "▁", - "def" - ], - [ - "i", - "j" - ], - [ - "er", - "n" - ], - [ - "e", - "rn" - ], - [ - "▁w", - "hat" - ], - [ - "▁wh", - "at" - ], - [ - "▁", - "what" - ], - [ - "▁A", - "r" - ], - [ - "▁", - "Ar" - ], - [ - "w", - "o" - ], - [ - "m", - "l" - ], - [ - "<", - "/" - ], - [ - "▁R", - "e" - ], - [ - "▁", - "Re" - ], - [ - "▁e", - "s" - ], - [ - "▁", - "es" - ], - [ - "▁in", - "st" - ], - [ - "▁ins", - "t" - ], - [ - "▁", - "inst" - ], - [ - "b", - "o" - ], - [ - "a", - "z" - ], - [ - "▁#", - "##" - ], - [ - "▁##", - "#" - ], - [ - "▁", - "б" - ], - [ - "er", - "m" - ], - [ - "e", - "rm" - ], - [ - "▁A", - "l" - ], - [ - "▁", - "Al" - ], - [ - "le", - "d" - ], - [ - "l", - "ed" - ], - [ - "д", - "а" - ], - [ - "te", - "n" - ], - [ - "t", - "en" - ], - [ - "se", - "t" - ], - [ - "s", - "et" - ], - [ - "л", - "о" - ], - [ - "▁c", - "omm" - ], - [ - "▁com", - "m" - ], - [ - "▁co", - "mm" - ], - [ - "▁", - "comm" - ], - [ - "s", - "h" - ], - [ - "в", - "а" - ], - [ - "▁", - "/" - ], - [ - "▁d", - "ata" - ], - [ - "▁da", - "ta" - ], - [ - "▁dat", - "a" - ], - [ - "▁", - "data" - ], - [ - "▁/", - "/" - ], - [ - "▁", - "//" - ], - [ - "]", - "(" - ], - [ - "▁s", - "tr" - ], - [ - "▁st", - "r" - ], - [ - "▁", - "str" - ], - [ - "os", - "e" - ], - [ - "o", - "se" - ], - [ - "▁U", - "n" - ], - [ - "▁", - "Un" - ], - [ - "ve", - "n" - ], - [ - "v", - "en" - ], - [ - "S", - "t" - ], - [ - "..", - "." - ], - [ - ".", - ".." - ], - [ - "▁", - "С" - ], - [ - "ys", - "t" - ], - [ - "y", - "st" - ], - [ - "▁", - "«" - ], - [ - "ic", - "k" - ], - [ - "i", - "ck" - ], - [ - "i", - "x" - ], - [ - "pa", - "r" - ], - [ - "p", - "ar" - ], - [ - "▁", - "у" - ], - [ - "▁w", - "ant" - ], - [ - "▁wa", - "nt" - ], - [ - "n", - "g" - ], - [ - "ot", - "e" - ], - [ - "o", - "te" - ], - [ - "▁g", - "r" - ], - [ - "▁", - "gr" - ], - [ - "▁d", - "u" - ], - [ - "▁", - "du" - ], - [ - "▁", - "." - ], - [ - "un", - "d" - ], - [ - "u", - "nd" - ], - [ - "▁on", - "ly" - ], - [ - "▁", - "only" - ], - [ - "▁s", - "a" - ], - [ - "▁", - "sa" - ], - [ - "el", - "y" - ], - [ - "e", - "ly" - ], - [ - "ve", - "rs" - ], - [ - "ver", - "s" - ], - [ - "v", - "ers" - ], - [ - "▁e", - "nt" - ], - [ - "▁en", - "t" - ], - [ - "▁", - "ent" - ], - [ - ")", - ")" - ], - [ - "(", - "'" - ], - [ - "▁m", - "od" - ], - [ - "▁mo", - "d" - ], - [ - "▁", - "mod" - ], - [ - "av", - "a" - ], - [ - "a", - "va" - ], - [ - "to", - "n" - ], - [ - "t", - "on" - ], - [ - "▁sh", - "ould" - ], - [ - "▁sho", - "uld" - ], - [ - "▁", - "should" - ], - [ - "em", - "ent" - ], - [ - "eme", - "nt" - ], - [ - "emen", - "t" - ], - [ - "e", - "ment" - ], - [ - "▁f", - "orm" - ], - [ - "▁for", - "m" - ], - [ - "▁fo", - "rm" - ], - [ - "▁", - "form" - ], - [ - "▁al", - "so" - ], - [ - "▁als", - "o" - ], - [ - "▁", - "also" - ], - [ - "▁s", - "c" - ], - [ - "▁", - "sc" - ], - [ - "in", - "gs" - ], - [ - "ing", - "s" - ], - [ - "▁Y", - "ou" - ], - [ - "▁", - "You" - ], - [ - "ó", - "n" - ], - [ - "▁k", - "n" - ], - [ - "▁", - "kn" - ], - [ - "()", - ";" - ], - [ - "(", - ");" - ], - [ - "▁", - "|" - ], - [ - "▁w", - "ere" - ], - [ - "▁we", - "re" - ], - [ - "▁wer", - "e" - ], - [ - "s", - "s" - ], - [ - "▁Qu", - "estion" - ], - [ - "▁", - "Question" - ], - [ - "is", - "e" - ], - [ - "i", - "se" - ], - [ - "▁th", - "ey" - ], - [ - "▁the", - "y" - ], - [ - "▁", - "they" - ], - [ - "▁D", - "e" - ], - [ - "▁", - "De" - ], - [ - "on", - "d" - ], - [ - "o", - "nd" - ], - [ - "▁s", - "ol" - ], - [ - "▁so", - "l" - ], - [ - "▁", - "sol" - ], - [ - "▁f", - "ol" - ], - [ - "▁fo", - "l" - ], - [ - "▁", - "fol" - ], - [ - "▁m", - "ore" - ], - [ - "▁mo", - "re" - ], - [ - "▁mor", - "e" - ], - [ - "▁", - "more" - ], - [ - "▁h", - "er" - ], - [ - "▁he", - "r" - ], - [ - "▁", - "her" - ], - [ - "▁", - "_" - ], - [ - "▁", - "é" - ], - [ - "at", - "ch" - ], - [ - "ft", - "er" - ], - [ - "fte", - "r" - ], - [ - "f", - "ter" - ], - [ - "▁c", - "re" - ], - [ - "▁cr", - "e" - ], - [ - "▁", - "cre" - ], - [ - "lo", - "ck" - ], - [ - "loc", - "k" - ], - [ - "l", - "ock" - ], - [ - "tr", - "ing" - ], - [ - "tri", - "ng" - ], - [ - "t", - "ring" - ], - [ - "▁T", - "his" - ], - [ - "▁Th", - "is" - ], - [ - "▁", - "This" - ], - [ - "z", - "e" - ], - [ - "ad", - "o" - ], - [ - "a", - "do" - ], - [ - "ul", - "l" - ], - [ - "u", - "ll" - ], - [ - "ge", - "r" - ], - [ - "g", - "er" - ], - [ - "b", - "e" - ], - [ - "▁o", - "ther" - ], - [ - "▁ot", - "her" - ], - [ - "▁", - "other" - ], - [ - "▁T", - "ags" - ], - [ - "▁Tag", - "s" - ], - [ - "▁Ta", - "gs" - ], - [ - "▁", - "Tags" - ], - [ - "ut", - "ion" - ], - [ - "uti", - "on" - ], - [ - "u", - "tion" - ], - [ - "ic", - "t" - ], - [ - "i", - "ct" - ], - [ - "▁h", - "ow" - ], - [ - "▁ho", - "w" - ], - [ - "▁", - "how" - ], - [ - "▁", - "x" - ], - [ - "▁S", - "e" - ], - [ - "▁", - "Se" - ], - [ - "▁c", - "he" - ], - [ - "▁ch", - "e" - ], - [ - "▁", - "che" - ], - [ - "cri", - "pt" - ], - [ - "cr", - "ipt" - ], - [ - "▁j", - "ust" - ], - [ - "▁ju", - "st" - ], - [ - "▁", - "just" - ], - [ - "▁p", - "os" - ], - [ - "▁po", - "s" - ], - [ - "▁", - "pos" - ], - [ - "an", - "ge" - ], - [ - "ang", - "e" - ], - [ - "if", - "ic" - ], - [ - "ifi", - "c" - ], - [ - "i", - "fic" - ], - [ - "re", - "e" - ], - [ - "r", - "ee" - ], - [ - "}", - "}" - ], - [ - "▁t", - "ime" - ], - [ - "▁tim", - "e" - ], - [ - "▁ti", - "me" - ], - [ - "▁", - "time" - ], - [ - "ap", - "p" - ], - [ - "a", - "pp" - ], - [ - "н", - "ы" - ], - [ - "▁f", - "ile" - ], - [ - "▁fil", - "e" - ], - [ - "▁fi", - "le" - ], - [ - "▁", - "file" - ], - [ - "ar", - "k" - ], - [ - "ic", - "al" - ], - [ - "ica", - "l" - ], - [ - "i", - "cal" - ], - [ - "▁f", - "irst" - ], - [ - "▁fir", - "st" - ], - [ - "▁", - "first" - ], - [ - "▁in", - "t" - ], - [ - "▁i", - "nt" - ], - [ - "▁", - "int" - ], - [ - "▁", - "В" - ], - [ - "▁H", - "e" - ], - [ - "▁", - "He" - ], - [ - "t", - "a" - ], - [ - "um", - "ent" - ], - [ - "ume", - "nt" - ], - [ - "umen", - "t" - ], - [ - "u", - "ment" - ], - [ - "or", - "s" - ], - [ - "o", - "rs" - ], - [ - "le", - "ment" - ], - [ - "lem", - "ent" - ], - [ - "l", - "ement" - ], - [ - "ra", - "c" - ], - [ - "r", - "ac" - ], - [ - "▁a", - "g" - ], - [ - "▁", - "ag" - ], - [ - "▁do", - "es" - ], - [ - "▁", - "does" - ], - [ - "y", - "n" - ], - [ - "re", - "ad" - ], - [ - "rea", - "d" - ], - [ - "r", - "ead" - ], - [ - "ua", - "l" - ], - [ - "u", - "al" - ], - [ - "▁L", - "e" - ], - [ - "▁", - "Le" - ], - [ - "y", - "s" - ], - [ - "▁e", - "m" - ], - [ - "▁", - "em" - ], - [ - "▁n", - "um" - ], - [ - "▁nu", - "m" - ], - [ - "▁", - "num" - ], - [ - "ve", - "l" - ], - [ - "v", - "el" - ], - [ - "д", - "и" - ], - [ - "ov", - "er" - ], - [ - "ove", - "r" - ], - [ - "o", - "ver" - ], - [ - "▁d", - "if" - ], - [ - "▁di", - "f" - ], - [ - "et", - "hod" - ], - [ - "eth", - "od" - ], - [ - "▁I", - "f" - ], - [ - "▁", - "If" - ], - [ - "▁s", - "pe" - ], - [ - "▁sp", - "e" - ], - [ - "▁", - "spe" - ], - [ - "y", - "m" - ], - [ - "▁t", - "hem" - ], - [ - "▁th", - "em" - ], - [ - "▁the", - "m" - ], - [ - "▁in", - "to" - ], - [ - "▁int", - "o" - ], - [ - "▁", - "into" - ], - [ - "▁l", - "es" - ], - [ - "▁le", - "s" - ], - [ - "▁", - "les" - ], - [ - "▁it", - "s" - ], - [ - "▁i", - "ts" - ], - [ - "▁", - "its" - ], - [ - "es", - "e" - ], - [ - "e", - "se" - ], - [ - "ie", - "ld" - ], - [ - "iel", - "d" - ], - [ - "i", - "eld" - ], - [ - "▁p", - "ublic" - ], - [ - "▁pub", - "lic" - ], - [ - "▁pu", - "blic" - ], - [ - "▁publi", - "c" - ], - [ - "▁", - "public" - ], - [ - "▁", - "П" - ], - [ - "▁d", - "en" - ], - [ - "▁de", - "n" - ], - [ - "▁", - "den" - ], - [ - "yst", - "em" - ], - [ - "ys", - "tem" - ], - [ - "o", - "f" - ], - [ - "▁o", - "ver" - ], - [ - "▁ov", - "er" - ], - [ - "▁", - "over" - ], - [ - "-", - ">" - ], - [ - "▁f", - "il" - ], - [ - "▁fi", - "l" - ], - [ - "▁", - "fil" - ], - [ - "na", - "me" - ], - [ - "nam", - "e" - ], - [ - "n", - "ame" - ], - [ - "in", - "al" - ], - [ - "ina", - "l" - ], - [ - "i", - "nal" - ], - [ - "▁i", - "l" - ], - [ - "▁", - "il" - ], - [ - "am", - "ple" - ], - [ - "amp", - "le" - ], - [ - "▁w", - "ay" - ], - [ - "▁wa", - "y" - ], - [ - "▁", - "way" - ], - [ - "ic", - "a" - ], - [ - "i", - "ca" - ], - [ - "в", - "о" - ], - [ - "ce", - "ss" - ], - [ - "ces", - "s" - ], - [ - "c", - "ess" - ], - [ - "it", - "t" - ], - [ - "i", - "tt" - ], - [ - "uc", - "h" - ], - [ - "u", - "ch" - ], - [ - "▁w", - "here" - ], - [ - "▁wh", - "ere" - ], - [ - "▁whe", - "re" - ], - [ - "▁", - "where" - ], - [ - "м", - "и" - ], - [ - "or", - "g" - ], - [ - "o", - "rg" - ], - [ - "htt", - "ps" - ], - [ - "http", - "s" - ], - [ - "▁v", - "o" - ], - [ - "▁", - "vo" - ], - [ - "ie", - "nt" - ], - [ - "ien", - "t" - ], - [ - "i", - "ent" - ], - [ - "ov", - "e" - ], - [ - "o", - "ve" - ], - [ - "▁val", - "ue" - ], - [ - "▁valu", - "e" - ], - [ - "▁", - "value" - ], - [ - "en", - "g" - ], - [ - "e", - "ng" - ], - [ - "▁L", - "a" - ], - [ - "▁", - "La" - ], - [ - "^", - "{" - ], - [ - "re", - "f" - ], - [ - "r", - "ef" - ], - [ - "ie", - "d" - ], - [ - "i", - "ed" - ], - [ - "E", - "R" - ], - [ - "▁s", - "tat" - ], - [ - "▁st", - "at" - ], - [ - "▁sta", - "t" - ], - [ - "▁", - "stat" - ], - [ - "fi", - "g" - ], - [ - "f", - "ig" - ], - [ - "m", - "e" - ], - [ - "▁v", - "on" - ], - [ - "▁vo", - "n" - ], - [ - "▁", - "von" - ], - [ - "▁in", - "ter" - ], - [ - "▁int", - "er" - ], - [ - "▁inte", - "r" - ], - [ - "▁", - "inter" - ], - [ - "ro", - "id" - ], - [ - "r", - "oid" - ], - [ - "at", - "er" - ], - [ - "ate", - "r" - ], - [ - "a", - "ter" - ], - [ - "▁the", - "ir" - ], - [ - "▁b", - "et" - ], - [ - "▁be", - "t" - ], - [ - "▁", - "bet" - ], - [ - "▁e", - "in" - ], - [ - "▁", - "ein" - ], - [ - "}", - "\\" - ], - [ - "\"", - ">" - ], - [ - "▁s", - "ub" - ], - [ - "▁su", - "b" - ], - [ - "▁", - "sub" - ], - [ - "▁o", - "p" - ], - [ - "▁", - "op" - ], - [ - "▁d", - "on" - ], - [ - "▁do", - "n" - ], - [ - "▁", - "don" - ], - [ - "t", - "y" - ], - [ - "▁t", - "ry" - ], - [ - "▁tr", - "y" - ], - [ - "▁", - "try" - ], - [ - "▁P", - "ro" - ], - [ - "▁Pr", - "o" - ], - [ - "▁", - "Pro" - ], - [ - "▁t", - "ra" - ], - [ - "▁tr", - "a" - ], - [ - "▁", - "tra" - ], - [ - "▁s", - "ame" - ], - [ - "▁sa", - "me" - ], - [ - "▁sam", - "e" - ], - [ - "▁", - "same" - ], - [ - "e", - "p" - ], - [ - "▁t", - "wo" - ], - [ - "▁tw", - "o" - ], - [ - "▁", - "two" - ], - [ - "▁n", - "ame" - ], - [ - "▁na", - "me" - ], - [ - "▁nam", - "e" - ], - [ - "▁", - "name" - ], - [ - "ol", - "d" - ], - [ - "o", - "ld" - ], - [ - "le", - "t" - ], - [ - "l", - "et" - ], - [ - "▁s", - "im" - ], - [ - "▁si", - "m" - ], - [ - "▁", - "sim" - ], - [ - "s", - "p" - ], - [ - "▁a", - "v" - ], - [ - "▁", - "av" - ], - [ - "br", - "e" - ], - [ - "b", - "re" - ], - [ - "ble", - "m" - ], - [ - "bl", - "em" - ], - [ - "b", - "lem" - ], - [ - "e", - "y" - ], - [ - "▁c", - "ould" - ], - [ - "▁co", - "uld" - ], - [ - "▁cou", - "ld" - ], - [ - "▁", - "could" - ], - [ - "▁c", - "or" - ], - [ - "▁co", - "r" - ], - [ - "▁", - "cor" - ], - [ - "▁a", - "cc" - ], - [ - "▁ac", - "c" - ], - [ - "▁", - "acc" - ], - [ - "ay", - "s" - ], - [ - "a", - "ys" - ], - [ - "cr", - "e" - ], - [ - "c", - "re" - ], - [ - "ur", - "r" - ], - [ - "u", - "rr" - ], - [ - "s", - "i" - ], - [ - "▁con", - "st" - ], - [ - "▁cons", - "t" - ], - [ - "▁", - "const" - ], - [ - "ue", - "s" - ], - [ - "u", - "es" - ], - [ - "}", - "$" - ], - [ - "V", - "iew" - ], - [ - "▁a", - "ct" - ], - [ - "▁ac", - "t" - ], - [ - "▁", - "act" - ], - [ - "▁b", - "o" - ], - [ - "▁", - "bo" - ], - [ - "▁к", - "о" - ], - [ - "▁", - "ко" - ], - [ - "▁s", - "om" - ], - [ - "▁so", - "m" - ], - [ - "▁", - "som" - ], - [ - "▁ab", - "out" - ], - [ - "▁", - "about" - ], - [ - "la", - "nd" - ], - [ - "lan", - "d" - ], - [ - "l", - "and" - ], - [ - "me", - "r" - ], - [ - "m", - "er" - ], - [ - "▁l", - "ist" - ], - [ - "▁li", - "st" - ], - [ - "▁", - "list" - ], - [ - "ca", - "l" - ], - [ - "c", - "al" - ], - [ - "▁im", - "port" - ], - [ - "▁imp", - "ort" - ], - [ - "▁", - "import" - ], - [ - "co", - "l" - ], - [ - "c", - "ol" - ], - [ - "▁n", - "a" - ], - [ - "▁", - "na" - ], - [ - "n", - "a" - ], - [ - ":", - ":" - ], - [ - "▁w", - "ho" - ], - [ - "▁wh", - "o" - ], - [ - "▁", - "who" - ], - [ - "▁e", - "rror" - ], - [ - "▁er", - "ror" - ], - [ - "▁err", - "or" - ], - [ - "▁", - "error" - ], - [ - "▁", - "X" - ], - [ - "at", - "or" - ], - [ - "ato", - "r" - ], - [ - "a", - "tor" - ], - [ - "ex", - "t" - ], - [ - "e", - "xt" - ], - [ - "▁b", - "een" - ], - [ - "▁be", - "en" - ], - [ - "é", - "r" - ], - [ - "▁r", - "un" - ], - [ - "▁ru", - "n" - ], - [ - "▁", - "run" - ], - [ - "po", - "s" - ], - [ - "p", - "os" - ], - [ - "▁c", - "l" - ], - [ - "▁", - "cl" - ], - [ - "*", - "*" - ], - [ - "▁", - "К" - ], - [ - "ul", - "ar" - ], - [ - "ula", - "r" - ], - [ - "u", - "lar" - ], - [ - "au", - "se" - ], - [ - "aus", - "e" - ], - [ - "a", - "use" - ], - [ - "▁re", - "g" - ], - [ - "▁r", - "eg" - ], - [ - "▁", - "reg" - ], - [ - "▁k", - "now" - ], - [ - "▁kn", - "ow" - ], - [ - "▁", - "know" - ], - [ - "▁s", - "ee" - ], - [ - "▁se", - "e" - ], - [ - "▁", - "see" - ], - [ - "▁h", - "im" - ], - [ - "▁hi", - "m" - ], - [ - "▁", - "him" - ], - [ - "ni", - "ng" - ], - [ - "n", - "ing" - ], - [ - "▁з", - "а" - ], - [ - "▁", - "за" - ], - [ - "at", - "es" - ], - [ - "ate", - "s" - ], - [ - "a", - "tes" - ], - [ - "fo", - "re" - ], - [ - "for", - "e" - ], - [ - "f", - "ore" - ], - [ - "ion", - "s" - ], - [ - "io", - "ns" - ], - [ - "i", - "ons" - ], - [ - "▁h", - "el" - ], - [ - "▁he", - "l" - ], - [ - "▁", - "hel" - ], - [ - "ut", - "e" - ], - [ - "u", - "te" - ], - [ - "▁re", - "m" - ], - [ - "▁r", - "em" - ], - [ - "▁", - "rem" - ], - [ - "▁г", - "о" - ], - [ - "▁", - "го" - ], - [ - "▁M", - "ar" - ], - [ - "▁Ma", - "r" - ], - [ - "▁", - "Mar" - ], - [ - "р", - "у" - ], - [ - "vi", - "ce" - ], - [ - "vic", - "e" - ], - [ - "v", - "ice" - ], - [ - "ir", - "ect" - ], - [ - "ire", - "ct" - ], - [ - "i", - "rect" - ], - [ - "ne", - "r" - ], - [ - "n", - "er" - ], - [ - "▁u", - "nder" - ], - [ - "▁un", - "der" - ], - [ - "▁und", - "er" - ], - [ - "▁", - "under" - ], - [ - "ri", - "b" - ], - [ - "r", - "ib" - ], - [ - "h", - "r" - ], - [ - "ч", - "е" - ], - [ - "▁A", - "s" - ], - [ - "▁", - "As" - ], - [ - "▁e", - "nd" - ], - [ - "▁en", - "d" - ], - [ - "▁", - "end" - ], - [ - "em", - "ber" - ], - [ - "emb", - "er" - ], - [ - "▁", - "а" - ], - [ - "▁a", - "tt" - ], - [ - "▁at", - "t" - ], - [ - "▁", - "att" - ], - [ - "in", - "a" - ], - [ - "i", - "na" - ], - [ - "so", - "n" - ], - [ - "s", - "on" - ], - [ - "▁f", - "ollow" - ], - [ - "▁fol", - "low" - ], - [ - "▁", - "follow" - ], - [ - "▁S", - "ch" - ], - [ - "▁Sc", - "h" - ], - [ - "▁", - "Sch" - ], - [ - "pe", - "ct" - ], - [ - "pec", - "t" - ], - [ - "p", - "ect" - ], - [ - "▁re", - "l" - ], - [ - "▁r", - "el" - ], - [ - "▁", - "rel" - ], - [ - "▁S", - "o" - ], - [ - "▁", - "So" - ], - [ - "▁l", - "ook" - ], - [ - "▁lo", - "ok" - ], - [ - "▁", - "look" - ], - [ - "ab", - "el" - ], - [ - "abe", - "l" - ], - [ - "a", - "bel" - ], - [ - "▁pro", - "blem" - ], - [ - "▁prob", - "lem" - ], - [ - "▁proble", - "m" - ], - [ - "▁probl", - "em" - ], - [ - "▁", - "problem" - ], - [ - "▁v", - "an" - ], - [ - "▁va", - "n" - ], - [ - "▁", - "van" - ], - [ - "st", - "rong" - ], - [ - "str", - "ong" - ], - [ - "c", - "o" - ], - [ - "po", - "n" - ], - [ - "p", - "on" - ], - [ - "c", - "a" - ], - [ - "ad", - "a" - ], - [ - "a", - "da" - ], - [ - "\"", - ":" - ], - [ - "con", - "d" - ], - [ - "co", - "nd" - ], - [ - "c", - "ond" - ], - [ - "am", - "b" - ], - [ - "a", - "mb" - ], - [ - "}", - "," - ], - [ - "qu", - "est" - ], - [ - "que", - "st" - ], - [ - "ques", - "t" - ], - [ - "q", - "uest" - ], - [ - "▁a", - "ut" - ], - [ - "▁au", - "t" - ], - [ - "▁", - "aut" - ], - [ - "▁res", - "ult" - ], - [ - "▁", - "result" - ], - [ - "▁m", - "ay" - ], - [ - "▁ma", - "y" - ], - [ - "▁", - "may" - ], - [ - "R", - "e" - ], - [ - "ht", - "tp" - ], - [ - "htt", - "p" - ], - [ - "h", - "ttp" - ], - [ - ")", - ":" - ], - [ - "▁A", - "nd" - ], - [ - "▁An", - "d" - ], - [ - "▁", - "And" - ], - [ - "re", - "d" - ], - [ - "r", - "ed" - ], - [ - "▁H", - "ow" - ], - [ - "▁Ho", - "w" - ], - [ - "▁", - "How" - ], - [ - "p", - "o" - ], - [ - "ск", - "о" - ], - [ - "с", - "ко" - ], - [ - "at", - "t" - ], - [ - "a", - "tt" - ], - [ - "ou", - "p" - ], - [ - "o", - "up" - ], - [ - "ce", - "d" - ], - [ - "c", - "ed" - ], - [ - "▁t", - "ype" - ], - [ - "▁typ", - "e" - ], - [ - "▁ty", - "pe" - ], - [ - "▁", - "type" - ], - [ - "▁t", - "han" - ], - [ - "▁th", - "an" - ], - [ - "▁", - "than" - ], - [ - "▁c", - "ons" - ], - [ - "▁con", - "s" - ], - [ - "▁co", - "ns" - ], - [ - "▁", - "cons" - ], - [ - "u", - "f" - ], - [ - "ц", - "и" - ], - [ - "▁qu", - "estion" - ], - [ - "▁quest", - "ion" - ], - [ - "▁questi", - "on" - ], - [ - "▁", - "question" - ], - [ - "ra", - "ph" - ], - [ - "rap", - "h" - ], - [ - "r", - "aph" - ], - [ - "ig", - "h" - ], - [ - "i", - "gh" - ], - [ - "▁", - "М" - ], - [ - "▁h", - "tt" - ], - [ - "▁", - "htt" - ], - [ - "in", - "s" - ], - [ - "i", - "ns" - ], - [ - "de", - "n" - ], - [ - "d", - "en" - ], - [ - "▁d", - "a" - ], - [ - "▁", - "da" - ], - [ - "▁v", - "er" - ], - [ - "▁ve", - "r" - ], - [ - "▁", - "ver" - ], - [ - "o", - "h" - ], - [ - "▁=", - ">" - ], - [ - "▁", - "=>" - ], - [ - "ri", - "v" - ], - [ - "r", - "iv" - ], - [ - "ud", - "e" - ], - [ - "u", - "de" - ], - [ - "▁F", - "or" - ], - [ - "▁Fo", - "r" - ], - [ - "▁", - "For" - ], - [ - "▁r", - "a" - ], - [ - "▁", - "ra" - ], - [ - "fr", - "ac" - ], - [ - "fra", - "c" - ], - [ - "f", - "rac" - ], - [ - "м", - "а" - ], - [ - "▁a", - "fter" - ], - [ - "▁af", - "ter" - ], - [ - "▁", - "after" - ], - [ - "}", - "{" - ], - [ - "▁m", - "ethod" - ], - [ - "▁met", - "hod" - ], - [ - "▁", - "method" - ], - [ - "\"", - ")" - ], - [ - "am", - "p" - ], - [ - "a", - "mp" - ], - [ - "as", - "h" - ], - [ - "a", - "sh" - ], - [ - "▁re", - "c" - ], - [ - "▁r", - "ec" - ], - [ - "▁", - "rec" - ], - [ - "▁d", - "iffer" - ], - [ - "▁dif", - "fer" - ], - [ - "▁diff", - "er" - ], - [ - "O", - "N" - ], - [ - "a", - "x" - ], - [ - "am", - "ent" - ], - [ - "ame", - "nt" - ], - [ - "amen", - "t" - ], - [ - "a", - "ment" - ], - [ - "our", - "ce" - ], - [ - "Co", - "n" - ], - [ - "C", - "on" - ], - [ - "it", - "s" - ], - [ - "i", - "ts" - ], - [ - "Na", - "me" - ], - [ - "N", - "ame" - ], - [ - "ma", - "n" - ], - [ - "m", - "an" - ], - [ - "▁b", - "ec" - ], - [ - "▁be", - "c" - ], - [ - "▁", - "bec" - ], - [ - "ch", - "e" - ], - [ - "c", - "he" - ], - [ - "▁E", - "n" - ], - [ - "▁", - "En" - ], - [ - "a", - "j" - ], - [ - "▁g", - "ener" - ], - [ - "▁ge", - "ner" - ], - [ - "▁gen", - "er" - ], - [ - "▁gene", - "r" - ], - [ - "▁", - "gener" - ], - [ - "I", - "N" - ], - [ - "▁i", - "d" - ], - [ - "▁", - "id" - ], - [ - "ag", - "es" - ], - [ - "age", - "s" - ], - [ - "a", - "ges" - ], - [ - "▁l", - "oc" - ], - [ - "▁lo", - "c" - ], - [ - "▁", - "loc" - ], - [ - "f", - "o" - ], - [ - "b", - "r" - ], - [ - "▁s", - "he" - ], - [ - "▁sh", - "e" - ], - [ - "▁", - "she" - ], - [ - "Pr", - "o" - ], - [ - "P", - "ro" - ], - [ - "▁u", - "na" - ], - [ - "▁un", - "a" - ], - [ - "▁", - "una" - ], - [ - "▁", - "к" - ], - [ - "et", - "a" - ], - [ - "e", - "ta" - ], - [ - "lo", - "g" - ], - [ - "l", - "og" - ], - [ - "ol", - "og" - ], - [ - "olo", - "g" - ], - [ - "o", - "log" - ], - [ - "▁s", - "ur" - ], - [ - "▁su", - "r" - ], - [ - "▁", - "sur" - ], - [ - "ar", - "g" - ], - [ - "a", - "rg" - ], - [ - "▁-", - "-" - ], - [ - "▁", - "--" - ], - [ - "k", - "t" - ], - [ - "(", - "\\" - ], - [ - "mi", - "n" - ], - [ - "m", - "in" - ], - [ - "▁l", - "ine" - ], - [ - "▁li", - "ne" - ], - [ - "▁lin", - "e" - ], - [ - "▁", - "line" - ], - [ - "▁v", - "ari" - ], - [ - "▁var", - "i" - ], - [ - "▁va", - "ri" - ], - [ - "▁", - "vari" - ], - [ - "с", - "я" - ], - [ - "ic", - "s" - ], - [ - "i", - "cs" - ], - [ - "н", - "я" - ], - [ - "ve", - "ry" - ], - [ - "ver", - "y" - ], - [ - "v", - "ery" - ], - [ - "ad", - "d" - ], - [ - "a", - "dd" - ], - [ - "▁o", - "bject" - ], - [ - "▁ob", - "ject" - ], - [ - "▁obj", - "ect" - ], - [ - "▁", - "object" - ], - [ - "I", - "d" - ], - [ - "▁B", - "ut" - ], - [ - "▁Bu", - "t" - ], - [ - "▁", - "But" - ], - [ - "▁c", - "ase" - ], - [ - "▁cas", - "e" - ], - [ - "▁ca", - "se" - ], - [ - "▁", - "case" - ], - [ - "▁m", - "ake" - ], - [ - "▁ma", - "ke" - ], - [ - "▁mak", - "e" - ], - [ - "▁", - "make" - ], - [ - "▁c", - "al" - ], - [ - "▁ca", - "l" - ], - [ - "▁", - "cal" - ], - [ - "▁p", - "ass" - ], - [ - "▁pas", - "s" - ], - [ - "▁pa", - "ss" - ], - [ - "▁", - "pass" - ], - [ - "с", - "ь" - ], - [ - "ess", - "ion" - ], - [ - "ne", - "t" - ], - [ - "n", - "et" - ], - [ - ".", - "\"" - ], - [ - "▁", - "г" - ], - [ - "ä", - "r" - ], - [ - "д", - "е" - ], - [ - "n", - "o" - ], - [ - "at", - "ing" - ], - [ - "ati", - "ng" - ], - [ - "atin", - "g" - ], - [ - "a", - "ting" - ], - [ - "at", - "o" - ], - [ - "a", - "to" - ], - [ - "li", - "ne" - ], - [ - "lin", - "e" - ], - [ - "l", - "ine" - ], - [ - "в", - "и" - ], - [ - "▁E", - "x" - ], - [ - "▁", - "Ex" - ], - [ - "▁a", - "ss" - ], - [ - "▁as", - "s" - ], - [ - "▁", - "ass" - ], - [ - "▁v", - "ers" - ], - [ - "▁ver", - "s" - ], - [ - "▁ve", - "rs" - ], - [ - "▁", - "vers" - ], - [ - "л", - "я" - ], - [ - "▁e", - "d" - ], - [ - "▁", - "ed" - ], - [ - "um", - "n" - ], - [ - "u", - "mn" - ], - [ - "ot", - "her" - ], - [ - "oth", - "er" - ], - [ - "othe", - "r" - ], - [ - "o", - "ther" - ], - [ - "ст", - "а" - ], - [ - "с", - "та" - ], - [ - "at", - "ive" - ], - [ - "ativ", - "e" - ], - [ - "ati", - "ve" - ], - [ - "St", - "ring" - ], - [ - "Str", - "ing" - ], - [ - "S", - "tring" - ], - [ - "▁l", - "os" - ], - [ - "▁lo", - "s" - ], - [ - "▁", - "los" - ], - [ - "w", - "n" - ], - [ - "▁an", - "swer" - ], - [ - "▁ans", - "wer" - ], - [ - "▁", - "answer" - ], - [ - "▁l", - "et" - ], - [ - "▁le", - "t" - ], - [ - "▁", - "let" - ], - [ - "▁p", - "e" - ], - [ - "▁", - "pe" - ], - [ - "en", - "ts" - ], - [ - "ent", - "s" - ], - [ - "▁f", - "e" - ], - [ - "▁", - "fe" - ], - [ - "in", - "ce" - ], - [ - "inc", - "e" - ], - [ - "n", - "i" - ], - [ - "id", - "er" - ], - [ - "ide", - "r" - ], - [ - "i", - "der" - ], - [ - "ow", - "s" - ], - [ - "o", - "ws" - ], - [ - "▁t", - "est" - ], - [ - "▁te", - "st" - ], - [ - "▁", - "test" - ], - [ - "▁h", - "ere" - ], - [ - "▁he", - "re" - ], - [ - "▁her", - "e" - ], - [ - "▁", - "here" - ], - [ - "ro", - "ll" - ], - [ - "rol", - "l" - ], - [ - "r", - "oll" - ], - [ - "▁c", - "all" - ], - [ - "▁cal", - "l" - ], - [ - "▁ca", - "ll" - ], - [ - "▁", - "call" - ], - [ - "ru", - "ct" - ], - [ - "r", - "uct" - ], - [ - "▁p", - "ol" - ], - [ - "▁po", - "l" - ], - [ - "▁", - "pol" - ], - [ - "ai", - "t" - ], - [ - "a", - "it" - ], - [ - "▁b", - "ack" - ], - [ - "▁ba", - "ck" - ], - [ - "▁", - "back" - ], - [ - "h", - "o" - ], - [ - "E", - "x" - ], - [ - "re", - "ss" - ], - [ - "res", - "s" - ], - [ - "r", - "ess" - ], - [ - "S", - "T" - ], - [ - "ri", - "ed" - ], - [ - "rie", - "d" - ], - [ - "r", - "ied" - ], - [ - "da", - "te" - ], - [ - "dat", - "e" - ], - [ - "d", - "ate" - ], - [ - "е", - "т" - ], - [ - "▁d", - "id" - ], - [ - "▁di", - "d" - ], - [ - "▁", - "did" - ], - [ - "ti", - "ng" - ], - [ - "t", - "ing" - ], - [ - "▁E", - "l" - ], - [ - "▁", - "El" - ], - [ - "▁d", - "em" - ], - [ - "▁de", - "m" - ], - [ - "▁", - "dem" - ], - [ - ")", - "$" - ], - [ - "ов", - "а" - ], - [ - "о", - "ва" - ], - [ - "ur", - "rent" - ], - [ - "urr", - "ent" - ], - [ - "urre", - "nt" - ], - [ - "la", - "ce" - ], - [ - "lac", - "e" - ], - [ - "l", - "ace" - ], - [ - "rig", - "ht" - ], - [ - "r", - "ight" - ], - [ - "re", - "n" - ], - [ - "r", - "en" - ], - [ - "п", - "о" - ], - [ - "▁e", - "ach" - ], - [ - "▁", - "each" - ], - [ - "c", - "y" - ], - [ - "bl", - "ock" - ], - [ - "blo", - "ck" - ], - [ - "b", - "lock" - ], - [ - "da", - "ta" - ], - [ - "dat", - "a" - ], - [ - "d", - "ata" - ], - [ - "▁", - "%" - ], - [ - "▁a", - "c" - ], - [ - "▁", - "ac" - ], - [ - "▁=", - "=" - ], - [ - "▁", - "==" - ], - [ - "ü", - "r" - ], - [ - "▁p", - "or" - ], - [ - "▁po", - "r" - ], - [ - "▁", - "por" - ], - [ - "as", - "k" - ], - [ - "a", - "sk" - ], - [ - "ar", - "ch" - ], - [ - "arc", - "h" - ], - [ - "am", - "es" - ], - [ - "ame", - "s" - ], - [ - "a", - "mes" - ], - [ - "▁C", - "on" - ], - [ - "▁Co", - "n" - ], - [ - "▁", - "Con" - ], - [ - "ч", - "а" - ], - [ - "▁o", - "ff" - ], - [ - "▁of", - "f" - ], - [ - "▁", - "off" - ], - [ - "▁f", - "ind" - ], - [ - "▁fin", - "d" - ], - [ - "▁fi", - "nd" - ], - [ - "▁", - "find" - ], - [ - "con", - "t" - ], - [ - "co", - "nt" - ], - [ - "c", - "ont" - ], - [ - "▁n", - "ow" - ], - [ - "▁no", - "w" - ], - [ - "▁", - "now" - ], - [ - "wor", - "k" - ], - [ - "w", - "ork" - ], - [ - "at", - "ional" - ], - [ - "ation", - "al" - ], - [ - "ati", - "onal" - ], - [ - "atio", - "nal" - ], - [ - "d", - "d" - ], - [ - "ci", - "ón" - ], - [ - "ció", - "n" - ], - [ - "c", - "ión" - ], - [ - "▁", - "А" - ], - [ - "au", - "lt" - ], - [ - "a", - "ult" - ], - [ - "Li", - "st" - ], - [ - "L", - "ist" - ], - [ - "▁e", - "xt" - ], - [ - "▁ex", - "t" - ], - [ - "▁", - "ext" - ], - [ - "ur", - "s" - ], - [ - "u", - "rs" - ], - [ - "ak", - "e" - ], - [ - "a", - "ke" - ], - [ - "ul", - "e" - ], - [ - "u", - "le" - ], - [ - "▁p", - "oint" - ], - [ - "▁po", - "int" - ], - [ - "▁poi", - "nt" - ], - [ - "▁", - "point" - ], - [ - "A", - "T" - ], - [ - "au", - "t" - ], - [ - "a", - "ut" - ], - [ - "▁tr", - "ans" - ], - [ - "▁tra", - "ns" - ], - [ - "▁tran", - "s" - ], - [ - "▁", - "trans" - ], - [ - "▁c", - "o" - ], - [ - "▁", - "co" - ], - [ - "▁re", - "ad" - ], - [ - "▁r", - "ead" - ], - [ - "▁", - "read" - ], - [ - "▁u", - "sed" - ], - [ - "▁us", - "ed" - ], - [ - "▁use", - "d" - ], - [ - "▁", - "used" - ], - [ - "ск", - "и" - ], - [ - "с", - "ки" - ], - [ - "ar", - "i" - ], - [ - "a", - "ri" - ], - [ - "L", - "E" - ], - [ - "et", - "er" - ], - [ - "ete", - "r" - ], - [ - "e", - "ter" - ], - [ - "ou", - "n" - ], - [ - "o", - "un" - ], - [ - "ev", - "er" - ], - [ - "e", - "ver" - ], - [ - "sel", - "f" - ], - [ - "s", - "elf" - ], - [ - "in", - "ed" - ], - [ - "ine", - "d" - ], - [ - "i", - "ned" - ], - [ - "id", - "th" - ], - [ - "u", - "x" - ], - [ - "j", - "s" - ], - [ - "▁s", - "uch" - ], - [ - "▁su", - "ch" - ], - [ - "▁suc", - "h" - ], - [ - "▁", - "such" - ], - [ - "▁I", - "s" - ], - [ - "▁", - "Is" - ], - [ - "é", - "e" - ], - [ - "fu", - "l" - ], - [ - "f", - "ul" - ], - [ - "▁d", - "ist" - ], - [ - "▁di", - "st" - ], - [ - "▁dis", - "t" - ], - [ - "▁", - "dist" - ], - [ - "▁b", - "u" - ], - [ - "▁", - "bu" - ], - [ - "item", - "ize" - ], - [ - "Con", - "t" - ], - [ - "Co", - "nt" - ], - [ - "C", - "ont" - ], - [ - "j", - "e" - ], - [ - "с", - "и" - ], - [ - "▁p", - "rov" - ], - [ - "▁pro", - "v" - ], - [ - "▁pr", - "ov" - ], - [ - "▁", - "prov" - ], - [ - "b", - "b" - ], - [ - "wa", - "rd" - ], - [ - "war", - "d" - ], - [ - "w", - "ard" - ], - [ - "es", - "ent" - ], - [ - "ese", - "nt" - ], - [ - "esen", - "t" - ], - [ - "e", - "sent" - ], - [ - "er", - "son" - ], - [ - "ers", - "on" - ], - [ - "an", - "ks" - ], - [ - "ank", - "s" - ], - [ - "w", - "h" - ], - [ - "no", - "t" - ], - [ - "n", - "ot" - ], - [ - "▁W", - "e" - ], - [ - "▁", - "We" - ], - [ - "k", - "a" - ], - [ - "ro", - "p" - ], - [ - "r", - "op" - ], - [ - "at", - "ur" - ], - [ - "atu", - "r" - ], - [ - "al", - "s" - ], - [ - "a", - "ls" - ], - [ - "▁b", - "el" - ], - [ - "▁be", - "l" - ], - [ - "▁", - "bel" - ], - [ - "ö", - "r" - ], - [ - "f", - "r" - ], - [ - "▁ex", - "ample" - ], - [ - "▁exam", - "ple" - ], - [ - "▁", - "example" - ], - [ - "▁in", - "cl" - ], - [ - "▁inc", - "l" - ], - [ - "am", - "il" - ], - [ - "ami", - "l" - ], - [ - "a", - "mil" - ], - [ - "▁р", - "а" - ], - [ - "▁", - "ра" - ], - [ - "▁", - "“" - ], - [ - "▁s", - "tring" - ], - [ - "▁st", - "ring" - ], - [ - "▁str", - "ing" - ], - [ - "▁stri", - "ng" - ], - [ - "▁", - "string" - ], - [ - "▁th", - "ink" - ], - [ - "▁thin", - "k" - ], - [ - "T", - "h" - ], - [ - "▁t", - "em" - ], - [ - "▁te", - "m" - ], - [ - "▁", - "tem" - ], - [ - "av", - "e" - ], - [ - "a", - "ve" - ], - [ - "▁F", - "ran" - ], - [ - "▁Fr", - "an" - ], - [ - "▁Fra", - "n" - ], - [ - "▁", - "Fran" - ], - [ - "▁n", - "umber" - ], - [ - "▁num", - "ber" - ], - [ - "▁", - "number" - ], - [ - "▁s", - "i" - ], - [ - "▁", - "si" - ], - [ - "im", - "es" - ], - [ - "ime", - "s" - ], - [ - "i", - "mes" - ], - [ - "te", - "m" - ], - [ - "t", - "em" - ], - [ - "m", - "y" - ], - [ - "le", - "r" - ], - [ - "l", - "er" - ], - [ - "lo", - "ad" - ], - [ - "=", - "=" - ], - [ - "▁h", - "and" - ], - [ - "▁ha", - "nd" - ], - [ - "▁han", - "d" - ], - [ - "▁", - "hand" - ], - [ - "z", - "a" - ], - [ - "▁b", - "ecause" - ], - [ - "▁bec", - "ause" - ], - [ - "▁", - "because" - ], - [ - "▁s", - "ch" - ], - [ - "▁sc", - "h" - ], - [ - "▁", - "sch" - ], - [ - "v", - "o" - ], - [ - "th", - "is" - ], - [ - "t", - "his" - ], - [ - "I", - "D" - ], - [ - "ã", - "o" - ], - [ - "▁st", - "art" - ], - [ - "▁star", - "t" - ], - [ - "▁sta", - "rt" - ], - [ - "▁", - "start" - ], - [ - "▁w", - "ar" - ], - [ - "▁wa", - "r" - ], - [ - "▁", - "war" - ], - [ - "▁he", - "lp" - ], - [ - "▁hel", - "p" - ], - [ - "▁", - "help" - ], - [ - "t", - "s" - ], - [ - "▁c", - "har" - ], - [ - "▁ch", - "ar" - ], - [ - "▁cha", - "r" - ], - [ - "▁", - "char" - ], - [ - "▁p", - "h" - ], - [ - "▁", - "ph" - ], - [ - "▁m", - "in" - ], - [ - "▁mi", - "n" - ], - [ - "▁", - "min" - ], - [ - "ti", - "l" - ], - [ - "t", - "il" - ], - [ - "ri", - "te" - ], - [ - "rit", - "e" - ], - [ - "r", - "ite" - ], - [ - "--", - "------" - ], - [ - "----", - "----" - ], - [ - "---", - "-----" - ], - [ - "------", - "--" - ], - [ - "-----", - "---" - ], - [ - "-------", - "-" - ], - [ - "-", - "-------" - ], - [ - "el", - "s" - ], - [ - "e", - "ls" - ], - [ - "▁m", - "it" - ], - [ - "▁mi", - "t" - ], - [ - "▁", - "mit" - ], - [ - "ed", - "ia" - ], - [ - "edi", - "a" - ], - [ - "e", - "dia" - ], - [ - "к", - "у" - ], - [ - "▁S", - "h" - ], - [ - "▁", - "Sh" - ], - [ - "an", - "y" - ], - [ - "a", - "ny" - ], - [ - "]", - ";" - ], - [ - "▁", - "Б" - ], - [ - "iqu", - "e" - ], - [ - "i", - "que" - ], - [ - "d", - "a" - ], - [ - "e", - "f" - ], - [ - "de", - "x" - ], - [ - "d", - "ex" - ], - [ - "▁p", - "rodu" - ], - [ - "▁pro", - "du" - ], - [ - "▁pr", - "odu" - ], - [ - "▁prod", - "u" - ], - [ - "▁", - "produ" - ], - [ - "▁", - "Н" - ], - [ - "gr", - "am" - ], - [ - "gra", - "m" - ], - [ - "g", - "ram" - ], - [ - "▁O", - "r" - ], - [ - "▁", - "Or" - ], - [ - "▁g", - "re" - ], - [ - "▁gr", - "e" - ], - [ - "▁", - "gre" - ], - [ - "qu", - "ote" - ], - [ - "quot", - "e" - ], - [ - "le", - "g" - ], - [ - "l", - "eg" - ], - [ - "or", - "n" - ], - [ - "o", - "rn" - ], - [ - "▁in", - "d" - ], - [ - "▁i", - "nd" - ], - [ - "▁", - "ind" - ], - [ - "▁p", - "ost" - ], - [ - "▁po", - "st" - ], - [ - "▁pos", - "t" - ], - [ - "▁", - "post" - ], - [ - "▁d", - "ep" - ], - [ - "▁de", - "p" - ], - [ - "▁", - "dep" - ], - [ - "]", - "," - ], - [ - "v", - "i" - ], - [ - "▁u", - "ser" - ], - [ - "▁us", - "er" - ], - [ - "▁use", - "r" - ], - [ - "▁", - "user" - ], - [ - "▁", - ">" - ], - [ - "li", - "ck" - ], - [ - "lic", - "k" - ], - [ - "l", - "ick" - ], - [ - "▁v", - "ery" - ], - [ - "▁ver", - "y" - ], - [ - "▁ve", - "ry" - ], - [ - "▁", - "very" - ], - [ - "et", - "hing" - ], - [ - "eth", - "ing" - ], - [ - "e", - "thing" - ], - [ - "▁ar", - "ray" - ], - [ - "▁arr", - "ay" - ], - [ - "▁", - "array" - ], - [ - "▁g", - "u" - ], - [ - "▁", - "gu" - ], - [ - "▁d", - "ur" - ], - [ - "▁du", - "r" - ], - [ - "`", - "." - ], - [ - "т", - "ь" - ], - [ - "li", - "cation" - ], - [ - "lic", - "ation" - ], - [ - "lica", - "tion" - ], - [ - "ст", - "и" - ], - [ - "с", - "ти" - ], - [ - "e", - "k" - ], - [ - "ic", - "o" - ], - [ - "i", - "co" - ], - [ - "▁d", - "at" - ], - [ - "▁da", - "t" - ], - [ - "▁", - "dat" - ], - [ - "о", - "р" - ], - [ - "ht", - "ml" - ], - [ - "htm", - "l" - ], - [ - "h", - "tml" - ], - [ - "ion", - "e" - ], - [ - "io", - "ne" - ], - [ - "i", - "one" - ], - [ - "▁d", - "ifferent" - ], - [ - "▁differ", - "ent" - ], - [ - "▁c", - "heck" - ], - [ - "▁che", - "ck" - ], - [ - "▁", - "check" - ], - [ - "▁f", - "r" - ], - [ - "▁", - "fr" - ], - [ - "▁E", - "r" - ], - [ - "▁", - "Er" - ], - [ - "▁t", - "ext" - ], - [ - "▁te", - "xt" - ], - [ - "▁tex", - "t" - ], - [ - "▁", - "text" - ], - [ - "н", - "і" - ], - [ - "ic", - "ht" - ], - [ - "ich", - "t" - ], - [ - "i", - "cht" - ], - [ - "st", - "ack" - ], - [ - "sta", - "ck" - ], - [ - "E", - "N" - ], - [ - "ra", - "g" - ], - [ - "r", - "ag" - ], - [ - "▁e", - "very" - ], - [ - "▁ev", - "ery" - ], - [ - "▁ever", - "y" - ], - [ - "▁", - "every" - ], - [ - "A", - "r" - ], - [ - "▁be", - "fore" - ], - [ - "▁bef", - "ore" - ], - [ - "▁", - "before" - ], - [ - "al", - "se" - ], - [ - "als", - "e" - ], - [ - "▁f", - "in" - ], - [ - "▁fi", - "n" - ], - [ - "▁", - "fin" - ], - [ - "▁d", - "é" - ], - [ - "▁th", - "ese" - ], - [ - "▁the", - "se" - ], - [ - "▁d", - "et" - ], - [ - "▁de", - "t" - ], - [ - "▁", - "det" - ], - [ - "V", - "al" - ], - [ - "ce", - "ption" - ], - [ - "cept", - "ion" - ], - [ - "cep", - "tion" - ], - [ - "▁and", - "roid" - ], - [ - "▁", - "android" - ], - [ - "block", - "quote" - ], - [ - "▁j", - "e" - ], - [ - "▁", - "je" - ], - [ - "fil", - "e" - ], - [ - "fi", - "le" - ], - [ - "f", - "ile" - ], - [ - "at", - "s" - ], - [ - "a", - "ts" - ], - [ - "▁д", - "о" - ], - [ - "▁", - "до" - ], - [ - "ess", - "age" - ], - [ - "essa", - "ge" - ], - [ - "▁ag", - "ain" - ], - [ - "a", - "w" - ], - [ - "C", - "h" - ], - [ - "we", - "en" - ], - [ - "w", - "een" - ], - [ - "▁", - "Д" - ], - [ - "fo", - "r" - ], - [ - "f", - "or" - ], - [ - "ci", - "al" - ], - [ - "cia", - "l" - ], - [ - "c", - "ial" - ], - [ - "pl", - "ay" - ], - [ - "pla", - "y" - ], - [ - "p", - "lay" - ], - [ - "pr", - "e" - ], - [ - "p", - "re" - ], - [ - "id", - "a" - ], - [ - "i", - "da" - ], - [ - "▁P", - "ar" - ], - [ - "▁Pa", - "r" - ], - [ - "▁", - "Par" - ], - [ - "n", - "y" - ], - [ - "ra", - "ct" - ], - [ - "rac", - "t" - ], - [ - "r", - "act" - ], - [ - "▁s", - "upp" - ], - [ - "▁su", - "pp" - ], - [ - "▁sup", - "p" - ], - [ - "▁", - "supp" - ], - [ - "as", - "ed" - ], - [ - "ase", - "d" - ], - [ - "a", - "sed" - ], - [ - "le", - "ction" - ], - [ - "lect", - "ion" - ], - [ - "l", - "ection" - ], - [ - "▁d", - "ans" - ], - [ - "▁da", - "ns" - ], - [ - "▁dan", - "s" - ], - [ - "ai", - "r" - ], - [ - "a", - "ir" - ], - [ - "ro", - "l" - ], - [ - "r", - "ol" - ], - [ - "▁t", - "hr" - ], - [ - "▁th", - "r" - ], - [ - "Dat", - "a" - ], - [ - "Da", - "ta" - ], - [ - "D", - "ata" - ], - [ - "li", - "ch" - ], - [ - "lic", - "h" - ], - [ - "l", - "ich" - ], - [ - "▁п", - "ро" - ], - [ - "▁пр", - "о" - ], - [ - "▁", - "про" - ], - [ - "▁l", - "ong" - ], - [ - "▁lo", - "ng" - ], - [ - "▁lon", - "g" - ], - [ - "▁", - "long" - ], - [ - "▁se", - "cond" - ], - [ - "▁sec", - "ond" - ], - [ - "▁", - "second" - ], - [ - "ual", - "ly" - ], - [ - "u", - "ally" - ], - [ - "in", - "es" - ], - [ - "ine", - "s" - ], - [ - "i", - "nes" - ], - [ - "▁f", - "ound" - ], - [ - "▁fo", - "und" - ], - [ - "▁fou", - "nd" - ], - [ - "▁", - "found" - ], - [ - "eng", - "th" - ], - [ - "y", - "p" - ], - [ - "ea", - "d" - ], - [ - "e", - "ad" - ], - [ - "▁l", - "og" - ], - [ - "▁lo", - "g" - ], - [ - "▁", - "log" - ], - [ - "u", - "i" - ], - [ - "ne", - "w" - ], - [ - "n", - "ew" - ], - [ - "▁", - "Р" - ], - [ - "g", - "o" - ], - [ - "au", - "s" - ], - [ - "a", - "us" - ], - [ - "od", - "y" - ], - [ - "o", - "dy" - ], - [ - "▁s", - "on" - ], - [ - "▁so", - "n" - ], - [ - "▁", - "son" - ], - [ - "м", - "е" - ], - [ - "er", - "o" - ], - [ - "e", - "ro" - ], - [ - "ve", - "d" - ], - [ - "v", - "ed" - ], - [ - "su", - "b" - ], - [ - "s", - "ub" - ], - [ - "▁r", - "ight" - ], - [ - "▁rig", - "ht" - ], - [ - "▁", - "right" - ], - [ - "vi", - "ew" - ], - [ - "vie", - "w" - ], - [ - "v", - "iew" - ], - [ - "▁follow", - "ing" - ], - [ - "'", - ")" - ], - [ - "\")", - ";" - ], - [ - "\"", - ");" - ], - [ - "▁sa", - "id" - ], - [ - "ж", - "е" - ], - [ - "ч", - "и" - ], - [ - "т", - "у" - ], - [ - "ot", - "t" - ], - [ - "o", - "tt" - ], - [ - "с", - "е" - ], - [ - "ar", - "s" - ], - [ - "a", - "rs" - ], - [ - "$", - "." - ], - [ - "g", - "g" - ], - [ - "▁b", - "r" - ], - [ - "▁", - "br" - ], - [ - "oo", - "l" - ], - [ - "o", - "ol" - ], - [ - "yl", - "e" - ], - [ - "y", - "le" - ], - [ - "us", - "e" - ], - [ - "u", - "se" - ], - [ - "▁s", - "how" - ], - [ - "▁sh", - "ow" - ], - [ - "▁sho", - "w" - ], - [ - "▁", - "show" - ], - [ - "le", - "ase" - ], - [ - "lea", - "se" - ], - [ - "ci", - "a" - ], - [ - "c", - "ia" - ], - [ - "▁d", - "irect" - ], - [ - "▁di", - "rect" - ], - [ - "▁dire", - "ct" - ], - [ - "▁dir", - "ect" - ], - [ - "▁", - "direct" - ], - [ - "do", - "c" - ], - [ - "d", - "oc" - ], - [ - "а", - "р" - ], - [ - "m", - "s" - ], - [ - "▁g", - "iv" - ], - [ - "▁gi", - "v" - ], - [ - "▁", - "giv" - ], - [ - "▁e", - "xp" - ], - [ - "▁ex", - "p" - ], - [ - "▁", - "exp" - ], - [ - "q", - "l" - ], - [ - "д", - "у" - ], - [ - "в", - "е" - ], - [ - "▁B", - "e" - ], - [ - "▁", - "Be" - ], - [ - "Co", - "m" - ], - [ - "C", - "om" - ], - [ - "it", - "er" - ], - [ - "ite", - "r" - ], - [ - "i", - "ter" - ], - [ - "R", - "E" - ], - [ - "m", - "p" - ], - [ - "me", - "n" - ], - [ - "m", - "en" - ], - [ - "▁R", - "o" - ], - [ - "▁", - "Ro" - ], - [ - "M", - "A" - ], - [ - "▁C", - "ol" - ], - [ - "▁Co", - "l" - ], - [ - "▁", - "Col" - ], - [ - "is", - "ter" - ], - [ - "ist", - "er" - ], - [ - "iste", - "r" - ], - [ - "i", - "ster" - ], - [ - "▁w", - "ell" - ], - [ - "▁we", - "ll" - ], - [ - "▁wel", - "l" - ], - [ - "▁", - "well" - ], - [ - "▁<", - "/" - ], - [ - "▁", - "" - ], - [ - "▁", - "->" - ], - [ - "en", - "e" - ], - [ - "e", - "ne" - ], - [ - "▁m", - "on" - ], - [ - "▁mo", - "n" - ], - [ - "▁", - "mon" - ], - [ - "▁d", - "ec" - ], - [ - "▁de", - "c" - ], - [ - "▁", - "dec" - ], - [ - "▁st", - "ill" - ], - [ - "▁о", - "б" - ], - [ - "▁", - "об" - ], - [ - "▁T", - "r" - ], - [ - "▁", - "Tr" - ], - [ - "▁", - "ф" - ], - [ - "if", - "e" - ], - [ - "i", - "fe" - ], - [ - "is", - "m" - ], - [ - "i", - "sm" - ], - [ - "b", - "y" - ], - [ - "ra", - "w" - ], - [ - "r", - "aw" - ], - [ - "io", - "r" - ], - [ - "i", - "or" - ], - [ - "▁m", - "ed" - ], - [ - "▁me", - "d" - ], - [ - "▁", - "med" - ], - [ - "or", - "ld" - ], - [ - "▁com", - "ple" - ], - [ - "▁comp", - "le" - ], - [ - "▁compl", - "e" - ], - [ - "▁", - "comple" - ], - [ - "w", - "w" - ], - [ - "▁a", - "rt" - ], - [ - "▁ar", - "t" - ], - [ - "▁", - "art" - ], - [ - "ro", - "n" - ], - [ - "r", - "on" - ], - [ - "▁", - "Г" - ], - [ - "▁M", - "y" - ], - [ - "▁", - "My" - ], - [ - "▁a", - "ls" - ], - [ - "▁al", - "s" - ], - [ - "▁", - "als" - ], - [ - "re", - "ct" - ], - [ - "rec", - "t" - ], - [ - "r", - "ect" - ], - [ - "▁a", - "uf" - ], - [ - "▁au", - "f" - ], - [ - "▁", - "auf" - ], - [ - "▁d", - "own" - ], - [ - "▁do", - "wn" - ], - [ - "▁dow", - "n" - ], - [ - "▁", - "down" - ], - [ - "at", - "her" - ], - [ - "ath", - "er" - ], - [ - "a", - "ther" - ], - [ - "Co", - "l" - ], - [ - "C", - "ol" - ], - [ - "Te", - "xt" - ], - [ - "Tex", - "t" - ], - [ - "T", - "ext" - ], - [ - "ba", - "ck" - ], - [ - "b", - "ack" - ], - [ - "$", - "," - ], - [ - "▁y", - "ear" - ], - [ - "▁ye", - "ar" - ], - [ - "▁", - "year" - ], - [ - "м", - "о" - ], - [ - "p", - "i" - ], - [ - "▁G", - "r" - ], - [ - "▁", - "Gr" - ], - [ - "re", - "am" - ], - [ - "rea", - "m" - ], - [ - "▁re", - "p" - ], - [ - "▁r", - "ep" - ], - [ - "▁", - "rep" - ], - [ - "b", - "f" - ], - [ - "ww", - "w" - ], - [ - "w", - "ww" - ], - [ - "▁w", - "ur" - ], - [ - "▁o", - "rg" - ], - [ - "▁or", - "g" - ], - [ - "▁", - "org" - ], - [ - "in", - "ter" - ], - [ - "int", - "er" - ], - [ - "inte", - "r" - ], - [ - "▁D", - "ie" - ], - [ - "▁Di", - "e" - ], - [ - "▁", - "Die" - ], - [ - "▁b", - "eing" - ], - [ - "▁be", - "ing" - ], - [ - "▁bei", - "ng" - ], - [ - "\"", - "." - ], - [ - "la", - "bel" - ], - [ - "lab", - "el" - ], - [ - "l", - "abel" - ], - [ - "▁c", - "ent" - ], - [ - "▁ce", - "nt" - ], - [ - "▁", - "cent" - ], - [ - "ja", - "va" - ], - [ - "jav", - "a" - ], - [ - "j", - "ava" - ], - [ - "ba", - "r" - ], - [ - "b", - "ar" - ], - [ - "an", - "te" - ], - [ - "ant", - "e" - ], - [ - "an", - "a" - ], - [ - "a", - "na" - ], - [ - "_", - "_" - ], - [ - "▁sol", - "ution" - ], - [ - "▁", - "О" - ], - [ - "▁f", - "l" - ], - [ - "▁", - "fl" - ], - [ - "▁c", - "reate" - ], - [ - "▁cre", - "ate" - ], - [ - "▁", - "create" - ], - [ - "ic", - "i" - ], - [ - "i", - "ci" - ], - [ - "st", - "e" - ], - [ - "s", - "te" - ], - [ - "yth", - "on" - ], - [ - "yt", - "hon" - ], - [ - "un", - "t" - ], - [ - "u", - "nt" - ], - [ - "as", - "on" - ], - [ - "aso", - "n" - ], - [ - "a", - "son" - ], - [ - "fer", - "ence" - ], - [ - "fe", - "rence" - ], - [ - "S", - "E" - ], - [ - "▁n", - "on" - ], - [ - "▁no", - "n" - ], - [ - "▁", - "non" - ], - [ - "an", - "e" - ], - [ - "a", - "ne" - ], - [ - "▁in", - "s" - ], - [ - "▁i", - "ns" - ], - [ - "▁", - "ins" - ], - [ - "ad", - "er" - ], - [ - "ade", - "r" - ], - [ - "a", - "der" - ], - [ - "_{", - "\\" - ], - [ - "_", - "{\\" - ], - [ - "Re", - "s" - ], - [ - "R", - "es" - ], - [ - "▁m", - "ain" - ], - [ - "▁ma", - "in" - ], - [ - "▁mai", - "n" - ], - [ - "▁", - "main" - ], - [ - "п", - "и" - ], - [ - "▁T", - "here" - ], - [ - "▁The", - "re" - ], - [ - "▁Th", - "ere" - ], - [ - "▁Ther", - "e" - ], - [ - "▁", - "There" - ], - [ - "▁p", - "our" - ], - [ - "▁po", - "ur" - ], - [ - "▁pou", - "r" - ], - [ - "R", - "O" - ], - [ - "`", - "," - ], - [ - "li", - "sh" - ], - [ - "lis", - "h" - ], - [ - "l", - "ish" - ], - [ - "b", - "ject" - ], - [ - "cc", - "ess" - ], - [ - "c", - "cess" - ], - [ - "▁o", - "rig" - ], - [ - "▁or", - "ig" - ], - [ - "▁", - "orig" - ], - [ - "is", - "chen" - ], - [ - "isch", - "en" - ], - [ - "ische", - "n" - ], - [ - "isc", - "hen" - ], - [ - "i", - "schen" - ], - [ - "ow", - "er" - ], - [ - "owe", - "r" - ], - [ - "o", - "wer" - ], - [ - "▁h", - "et" - ], - [ - "▁he", - "t" - ], - [ - "▁", - "het" - ], - [ - "u", - "c" - ], - [ - "▁el", - "se" - ], - [ - "▁els", - "e" - ], - [ - "▁", - "else" - ], - [ - "»", - "." - ], - [ - "▁о", - "т" - ], - [ - "▁", - "от" - ], - [ - "eq", - "u" - ], - [ - "e", - "qu" - ], - [ - "si", - "ble" - ], - [ - "s", - "ible" - ], - [ - "te", - "st" - ], - [ - "tes", - "t" - ], - [ - "t", - "est" - ], - [ - "st", - "and" - ], - [ - "sta", - "nd" - ], - [ - "stan", - "d" - ], - [ - "é", - "n" - ], - [ - "et", - "s" - ], - [ - "e", - "ts" - ], - [ - "G", - "E" - ], - [ - "id", - "ent" - ], - [ - "ide", - "nt" - ], - [ - "iden", - "t" - ], - [ - "i", - "dent" - ], - [ - "▁", - "е" - ], - [ - "▁п", - "ри" - ], - [ - "▁пр", - "и" - ], - [ - "▁", - "при" - ], - [ - ".", - "," - ], - [ - "▁d", - "as" - ], - [ - "▁da", - "s" - ], - [ - "▁", - "das" - ], - [ - "oc", - "k" - ], - [ - "o", - "ck" - ], - [ - ",", - "\"" - ], - [ - "▁v", - "ol" - ], - [ - "▁vo", - "l" - ], - [ - "▁", - "vol" - ], - [ - "▁f", - "o" - ], - [ - "▁", - "fo" - ], - [ - "▁p", - "ara" - ], - [ - "▁par", - "a" - ], - [ - "▁pa", - "ra" - ], - [ - "▁", - "para" - ], - [ - "▁", - "Т" - ], - [ - "▁C", - "ar" - ], - [ - "▁Ca", - "r" - ], - [ - "▁", - "Car" - ], - [ - "ra", - "l" - ], - [ - "r", - "al" - ], - [ - "▁S", - "p" - ], - [ - "▁", - "Sp" - ], - [ - "va", - "r" - ], - [ - "v", - "ar" - ], - [ - "▁p", - "lay" - ], - [ - "▁pl", - "ay" - ], - [ - "▁pla", - "y" - ], - [ - "▁", - "play" - ], - [ - "ou", - "se" - ], - [ - "ous", - "e" - ], - [ - "o", - "use" - ], - [ - "▁т", - "а" - ], - [ - "▁", - "та" - ], - [ - "ic", - "ally" - ], - [ - "ical", - "ly" - ], - [ - "▁con", - "tain" - ], - [ - "▁cont", - "ain" - ], - [ - "pon", - "se" - ], - [ - "▁S", - "tring" - ], - [ - "▁St", - "ring" - ], - [ - "▁Str", - "ing" - ], - [ - "▁", - "String" - ], - [ - "á", - "n" - ], - [ - "▁b", - "oth" - ], - [ - "▁bo", - "th" - ], - [ - "▁bot", - "h" - ], - [ - "▁", - "both" - ], - [ - "ke", - "n" - ], - [ - "k", - "en" - ], - [ - "A", - "R" - ], - [ - "ер", - "е" - ], - [ - "е", - "ре" - ], - [ - "▁I", - "l" - ], - [ - "▁", - "Il" - ], - [ - "▁is", - "s" - ], - [ - "▁i", - "ss" - ], - [ - "▁", - "iss" - ], - [ - "▁o", - "pen" - ], - [ - "▁op", - "en" - ], - [ - "▁", - "open" - ], - [ - "▁", - ")" - ], - [ - "▁W", - "hat" - ], - [ - "▁Wh", - "at" - ], - [ - "▁", - "What" - ], - [ - "f", - "e" - ], - [ - "riv", - "ate" - ], - [ - "re", - "g" - ], - [ - "r", - "eg" - ], - [ - "▁with", - "out" - ], - [ - "▁", - "without" - ], - [ - "▁z", - "u" - ], - [ - "▁", - "zu" - ], - [ - "vi", - "s" - ], - [ - "v", - "is" - ], - [ - "fl", - "ow" - ], - [ - "f", - "low" - ], - [ - "▁h", - "ttp" - ], - [ - "▁htt", - "p" - ], - [ - "▁", - "http" - ], - [ - "ab", - "ase" - ], - [ - "aba", - "se" - ], - [ - "a", - "base" - ], - [ - "▁w", - "ord" - ], - [ - "▁wor", - "d" - ], - [ - "▁wo", - "rd" - ], - [ - "▁", - "word" - ], - [ - "▁ch", - "ange" - ], - [ - "▁chang", - "e" - ], - [ - "▁", - "change" - ], - [ - "▁work", - "s" - ], - [ - "▁wor", - "ks" - ], - [ - "▁", - "works" - ], - [ - "▁g", - "e" - ], - [ - "▁", - "ge" - ], - [ - "▁", - "!" - ], - [ - "▁e", - "en" - ], - [ - "▁", - "een" - ], - [ - "it", - "le" - ], - [ - "▁e", - "vent" - ], - [ - "▁even", - "t" - ], - [ - "▁ev", - "ent" - ], - [ - "▁", - "event" - ], - [ - "wo", - "rd" - ], - [ - "wor", - "d" - ], - [ - "w", - "ord" - ], - [ - "an", - "do" - ], - [ - "and", - "o" - ], - [ - "S", - "B" - ], - [ - "re", - "m" - ], - [ - "r", - "em" - ], - [ - "▁f", - "ield" - ], - [ - "▁fi", - "eld" - ], - [ - "▁fiel", - "d" - ], - [ - "▁", - "field" - ], - [ - "vi", - "ng" - ], - [ - "vin", - "g" - ], - [ - "v", - "ing" - ], - [ - "Se", - "r" - ], - [ - "S", - "er" - ], - [ - "▁o", - "ur" - ], - [ - "▁ou", - "r" - ], - [ - "▁", - "our" - ], - [ - "▁qu", - "i" - ], - [ - "▁q", - "ui" - ], - [ - "▁", - "qui" - ], - [ - "▁o", - "per" - ], - [ - "▁op", - "er" - ], - [ - "▁", - "oper" - ], - [ - "▁is", - "t" - ], - [ - "▁i", - "st" - ], - [ - "▁", - "ist" - ], - [ - "de", - "f" - ], - [ - "d", - "ef" - ], - [ - "▁m", - "ade" - ], - [ - "▁ma", - "de" - ], - [ - "▁mad", - "e" - ], - [ - "▁", - "made" - ], - [ - "ни", - "е" - ], - [ - "p", - "x" - ], - [ - "▁m", - "en" - ], - [ - "▁me", - "n" - ], - [ - "▁", - "men" - ], - [ - "r", - "m" - ], - [ - "ai", - "s" - ], - [ - "a", - "is" - ], - [ - "ce", - "nt" - ], - [ - "cen", - "t" - ], - [ - "c", - "ent" - ], - [ - "li", - "st" - ], - [ - "lis", - "t" - ], - [ - "l", - "ist" - ], - [ - "T", - "o" - ], - [ - "▁T", - "o" - ], - [ - "▁", - "To" - ], - [ - "j", - "a" - ], - [ - "ve", - "rt" - ], - [ - "ver", - "t" - ], - [ - "v", - "ert" - ], - [ - "▁m", - "ar" - ], - [ - "▁ma", - "r" - ], - [ - "▁", - "mar" - ], - [ - "val", - "ue" - ], - [ - "valu", - "e" - ], - [ - "▁", - "„" - ], - [ - "\"", - ";" - ], - [ - "▁a", - "us" - ], - [ - "▁au", - "s" - ], - [ - "▁", - "aus" - ], - [ - "▁B", - "r" - ], - [ - "▁", - "Br" - ], - [ - "ol", - "e" - ], - [ - "o", - "le" - ], - [ - "▁m", - "ult" - ], - [ - "▁mu", - "lt" - ], - [ - "▁mul", - "t" - ], - [ - "▁", - "mult" - ], - [ - "oug", - "ht" - ], - [ - "ough", - "t" - ], - [ - "▁m", - "at" - ], - [ - "▁ma", - "t" - ], - [ - "▁", - "mat" - ], - [ - "▁v", - "iew" - ], - [ - "▁vi", - "ew" - ], - [ - "▁vie", - "w" - ], - [ - "▁", - "view" - ], - [ - "fi", - "l" - ], - [ - "f", - "il" - ], - [ - "▁с", - "о" - ], - [ - "▁", - "со" - ], - [ - "г", - "а" - ], - [ - "▁v", - "oid" - ], - [ - "▁vo", - "id" - ], - [ - "▁", - "void" - ], - [ - "▁g", - "ood" - ], - [ - "▁go", - "od" - ], - [ - "▁", - "good" - ], - [ - "б", - "о" - ], - [ - "C", - "T" - ], - [ - "▁m", - "any" - ], - [ - "▁ma", - "ny" - ], - [ - "▁man", - "y" - ], - [ - "▁", - "many" - ], - [ - "be", - "n" - ], - [ - "b", - "en" - ], - [ - "▁в", - "о" - ], - [ - "▁", - "во" - ], - [ - "▁к", - "а" - ], - [ - "▁", - "ка" - ], - [ - "▁s", - "ystem" - ], - [ - "▁sys", - "tem" - ], - [ - "▁syst", - "em" - ], - [ - "▁", - "system" - ], - [ - "in", - "o" - ], - [ - "i", - "no" - ], - [ - "▁an", - "other" - ], - [ - "▁ano", - "ther" - ], - [ - "▁", - "another" - ], - [ - "▁re", - "st" - ], - [ - "▁r", - "est" - ], - [ - "▁res", - "t" - ], - [ - "▁", - "rest" - ], - [ - "us", - "er" - ], - [ - "use", - "r" - ], - [ - "u", - "ser" - ], - [ - "il", - "ity" - ], - [ - "ili", - "ty" - ], - [ - "a", - "i" - ], - [ - "▁m", - "ight" - ], - [ - "▁mig", - "ht" - ], - [ - "us", - "tom" - ], - [ - "ust", - "om" - ], - [ - "usto", - "m" - ], - [ - "▁or", - "der" - ], - [ - "▁ord", - "er" - ], - [ - "▁", - "order" - ], - [ - "▁V", - "er" - ], - [ - "▁Ve", - "r" - ], - [ - "▁", - "Ver" - ], - [ - "S", - "S" - ], - [ - "}", - ")" - ], - [ - "▁e", - "ff" - ], - [ - "▁", - "eff" - ], - [ - "д", - "о" - ], - [ - "et", - "t" - ], - [ - "e", - "tt" - ], - [ - "▁s", - "ign" - ], - [ - "▁si", - "gn" - ], - [ - "▁sig", - "n" - ], - [ - "▁", - "sign" - ], - [ - "м", - "у" - ], - [ - "I", - "T" - ], - [ - "st", - "ring" - ], - [ - "str", - "ing" - ], - [ - "s", - "tring" - ], - [ - "el", - "le" - ], - [ - "ell", - "e" - ], - [ - "e", - "lle" - ], - [ - "▁s", - "ing" - ], - [ - "▁si", - "ng" - ], - [ - "▁sin", - "g" - ], - [ - "▁", - "sing" - ], - [ - "cu", - "l" - ], - [ - "c", - "ul" - ], - [ - "▁tr", - "ying" - ], - [ - "▁try", - "ing" - ], - [ - "▁b", - "eg" - ], - [ - "▁be", - "g" - ], - [ - "▁", - "beg" - ], - [ - "▁p", - "age" - ], - [ - "▁pa", - "ge" - ], - [ - "▁pag", - "e" - ], - [ - "▁", - "page" - ], - [ - "х", - "о" - ], - [ - "▁C", - "an" - ], - [ - "▁Ca", - "n" - ], - [ - "▁", - "Can" - ], - [ - "▁S", - "er" - ], - [ - "▁Se", - "r" - ], - [ - "▁", - "Ser" - ], - [ - "+", - "+" - ], - [ - "▁m", - "ust" - ], - [ - "▁mus", - "t" - ], - [ - "▁mu", - "st" - ], - [ - "▁", - "must" - ], - [ - "▁val", - "ues" - ], - [ - "▁value", - "s" - ], - [ - "▁valu", - "es" - ], - [ - "▁", - "values" - ], - [ - "▁k", - "ey" - ], - [ - "▁ke", - "y" - ], - [ - "▁", - "key" - ], - [ - "ib", - "le" - ], - [ - "i", - "ble" - ], - [ - "]", - "." - ], - [ - "ir", - "d" - ], - [ - "i", - "rd" - ], - [ - "▁pro", - "gram" - ], - [ - "▁pr", - "ogram" - ], - [ - "▁", - "program" - ], - [ - "roll", - "er" - ], - [ - "rol", - "ler" - ], - [ - "rolle", - "r" - ], - [ - "▁c", - "onne" - ], - [ - "▁con", - "ne" - ], - [ - "▁conn", - "e" - ], - [ - "▁", - "conne" - ], - [ - "▁s", - "ay" - ], - [ - "▁sa", - "y" - ], - [ - "▁", - "say" - ], - [ - "▁p", - "aram" - ], - [ - "▁par", - "am" - ], - [ - "▁para", - "m" - ], - [ - "▁pa", - "ram" - ], - [ - "▁", - "param" - ], - [ - "ach", - "e" - ], - [ - "ac", - "he" - ], - [ - "a", - "che" - ], - [ - "ve", - "lop" - ], - [ - "vel", - "op" - ], - [ - "▁s", - "elect" - ], - [ - "▁se", - "lect" - ], - [ - "▁sel", - "ect" - ], - [ - "▁sele", - "ct" - ], - [ - "▁", - "select" - ], - [ - "▁f", - "amil" - ], - [ - "▁fa", - "mil" - ], - [ - "▁fam", - "il" - ], - [ - "▁", - "famil" - ], - [ - "▁l", - "ast" - ], - [ - "▁la", - "st" - ], - [ - "▁las", - "t" - ], - [ - "▁", - "last" - ], - [ - "▁Th", - "anks" - ], - [ - "▁Thank", - "s" - ], - [ - "▁", - "Thanks" - ], - [ - "▁p", - "op" - ], - [ - "▁po", - "p" - ], - [ - "▁", - "pop" - ], - [ - "}", - "." - ], - [ - "e", - "q" - ], - [ - "▁does", - "n" - ], - [ - "[", - "'" - ], - [ - "▁t", - "erm" - ], - [ - "▁te", - "rm" - ], - [ - "▁ter", - "m" - ], - [ - "▁", - "term" - ], - [ - "▁r", - "é" - ], - [ - "▁", - "ré" - ], - [ - "▁d", - "ocument" - ], - [ - "▁doc", - "ument" - ], - [ - "▁", - "document" - ], - [ - "п", - "а" - ], - [ - "л", - "у" - ], - [ - "at", - "eg" - ], - [ - "ate", - "g" - ], - [ - ".", - ")" - ], - [ - "li", - "ng" - ], - [ - "lin", - "g" - ], - [ - "l", - "ing" - ], - [ - "ion", - "al" - ], - [ - "io", - "nal" - ], - [ - "iona", - "l" - ], - [ - "i", - "onal" - ], - [ - "ab", - "les" - ], - [ - "able", - "s" - ], - [ - "abl", - "es" - ], - [ - "a", - "bles" - ], - [ - "▁t", - "ak" - ], - [ - "▁ta", - "k" - ], - [ - "ut", - "ton" - ], - [ - "utt", - "on" - ], - [ - "utto", - "n" - ], - [ - "▁a", - "rg" - ], - [ - "▁ar", - "g" - ], - [ - "▁", - "arg" - ], - [ - "ty", - "pe" - ], - [ - "typ", - "e" - ], - [ - "t", - "ype" - ], - [ - "▁s", - "ure" - ], - [ - "▁su", - "re" - ], - [ - "▁sur", - "e" - ], - [ - "▁re", - "al" - ], - [ - "▁", - "real" - ], - [ - "▁w", - "eb" - ], - [ - "▁we", - "b" - ], - [ - "▁", - "web" - ], - [ - "▁c", - "urrent" - ], - [ - "▁cur", - "rent" - ], - [ - "▁curr", - "ent" - ], - [ - "▁", - "current" - ], - [ - "▁P", - "l" - ], - [ - "▁", - "Pl" - ], - [ - "ch", - "o" - ], - [ - "c", - "ho" - ], - [ - "ment", - "s" - ], - [ - "men", - "ts" - ], - [ - "m", - "ents" - ], - [ - "▁J", - "oh" - ], - [ - "▁Jo", - "h" - ], - [ - "ot", - "s" - ], - [ - "o", - "ts" - ], - [ - "▁ex", - "ist" - ], - [ - "▁", - "exist" - ], - [ - "н", - "у" - ], - [ - "▁f", - "ür" - ], - [ - "▁", - "für" - ], - [ - "▁и", - "з" - ], - [ - "▁", - "из" - ], - [ - "d", - "o" - ], - [ - "но", - "го" - ], - [ - "ног", - "о" - ], - [ - "н", - "ого" - ], - [ - "▁l", - "as" - ], - [ - "▁la", - "s" - ], - [ - "▁", - "las" - ], - [ - "▁n", - "ull" - ], - [ - "▁nu", - "ll" - ], - [ - "▁", - "null" - ], - [ - "▁in", - "form" - ], - [ - "▁inf", - "orm" - ], - [ - "▁info", - "rm" - ], - [ - "▁", - "Л" - ], - [ - "▁v", - "ersion" - ], - [ - "▁vers", - "ion" - ], - [ - "▁", - "version" - ], - [ - "▁c", - "hang" - ], - [ - "▁ch", - "ang" - ], - [ - "▁cha", - "ng" - ], - [ - "ag", - "er" - ], - [ - "age", - "r" - ], - [ - "a", - "ger" - ], - [ - "▁C", - "omm" - ], - [ - "▁Com", - "m" - ], - [ - "▁Co", - "mm" - ], - [ - "▁", - "Comm" - ], - [ - "л", - "і" - ], - [ - "us", - "h" - ], - [ - "u", - "sh" - ], - [ - "▁G", - "e" - ], - [ - "▁", - "Ge" - ], - [ - "▁h", - "igh" - ], - [ - "▁hi", - "gh" - ], - [ - "▁", - "high" - ], - [ - "▁in", - "put" - ], - [ - "▁", - "input" - ], - [ - "og", - "le" - ], - [ - "o", - "gle" - ], - [ - "ro", - "s" - ], - [ - "r", - "os" - ], - [ - "bo", - "x" - ], - [ - "b", - "ox" - ], - [ - "ge", - "n" - ], - [ - "g", - "en" - ], - [ - "▁s", - "te" - ], - [ - "▁st", - "e" - ], - [ - "▁", - "ste" - ], - [ - "▁l", - "ocal" - ], - [ - "▁lo", - "cal" - ], - [ - "▁loc", - "al" - ], - [ - "▁", - "local" - ], - [ - "I", - "m" - ], - [ - "▁pro", - "cess" - ], - [ - "▁proc", - "ess" - ], - [ - "▁proces", - "s" - ], - [ - "▁", - "process" - ], - [ - "ter", - "nal" - ], - [ - "tern", - "al" - ], - [ - "t", - "ernal" - ], - [ - "iz", - "ed" - ], - [ - "ize", - "d" - ], - [ - "i", - "zed" - ], - [ - "г", - "и" - ], - [ - "é", - "t" - ], - [ - "▁I", - "nd" - ], - [ - "▁In", - "d" - ], - [ - "▁", - "Ind" - ], - [ - "▁o", - "ch" - ], - [ - "▁oc", - "h" - ], - [ - "▁", - "och" - ], - [ - "l", - "t" - ], - [ - "▁col", - "umn" - ], - [ - "▁", - "column" - ], - [ - "▁t", - "ried" - ], - [ - "▁tr", - "ied" - ], - [ - "▁tri", - "ed" - ], - [ - "▁comm", - "and" - ], - [ - "▁comma", - "nd" - ], - [ - "▁", - "command" - ], - [ - "▁b", - "est" - ], - [ - "▁be", - "st" - ], - [ - "▁bes", - "t" - ], - [ - "▁", - "best" - ], - [ - "as", - "ter" - ], - [ - "ast", - "er" - ], - [ - "aste", - "r" - ], - [ - "a", - "ster" - ], - [ - "з", - "а" - ], - [ - "▁p", - "rim" - ], - [ - "▁pr", - "im" - ], - [ - "▁pri", - "m" - ], - [ - "▁", - "prim" - ], - [ - "▁m", - "odel" - ], - [ - "▁mod", - "el" - ], - [ - "▁mo", - "del" - ], - [ - "▁mode", - "l" - ], - [ - "▁", - "model" - ], - [ - "▁", - "і" - ], - [ - "▁th", - "ose" - ], - [ - "it", - "ies" - ], - [ - "iti", - "es" - ], - [ - "itie", - "s" - ], - [ - "i", - "ties" - ], - [ - "è", - "re" - ], - [ - "▁р", - "е" - ], - [ - "▁", - "ре" - ], - [ - "ј", - "е" - ], - [ - "ш", - "и" - ], - [ - "qu", - "es" - ], - [ - "que", - "s" - ], - [ - "q", - "ues" - ], - [ - "▁A", - "m" - ], - [ - "▁", - "Am" - ], - [ - "▁o", - "wn" - ], - [ - "▁ow", - "n" - ], - [ - "▁", - "own" - ], - [ - "li", - "n" - ], - [ - "l", - "in" - ], - [ - "з", - "и" - ], - [ - "Val", - "ue" - ], - [ - "th", - "ing" - ], - [ - "t", - "hing" - ], - [ - "▁", - "," - ], - [ - "▁T", - "e" - ], - [ - "▁", - "Te" - ], - [ - "▁st", - "ud" - ], - [ - "▁", - "stud" - ], - [ - "▁u", - "m" - ], - [ - "▁", - "um" - ], - [ - "▁ser", - "ver" - ], - [ - "▁serv", - "er" - ], - [ - "▁serve", - "r" - ], - [ - "▁", - "server" - ], - [ - "il", - "le" - ], - [ - "ill", - "e" - ], - [ - "i", - "lle" - ], - [ - "▁p", - "ut" - ], - [ - "▁pu", - "t" - ], - [ - "▁", - "put" - ], - [ - "at", - "iv" - ], - [ - "ati", - "v" - ], - [ - "g", - "y" - ], - [ - "ов", - "и" - ], - [ - "о", - "ви" - ], - [ - "ra", - "f" - ], - [ - "r", - "af" - ], - [ - "ов", - "о" - ], - [ - "о", - "во" - ], - [ - "▁wur", - "de" - ], - [ - "▁W", - "hen" - ], - [ - "▁Wh", - "en" - ], - [ - "▁Whe", - "n" - ], - [ - "▁", - "When" - ], - [ - "▁d", - "iv" - ], - [ - "▁di", - "v" - ], - [ - "▁", - "div" - ], - [ - "an", - "ts" - ], - [ - "ant", - "s" - ], - [ - "▁t", - "er" - ], - [ - "▁te", - "r" - ], - [ - "▁", - "ter" - ], - [ - "▁part", - "ic" - ], - [ - "▁parti", - "c" - ], - [ - "▁", - "т" - ], - [ - "▁D", - "o" - ], - [ - "▁", - "Do" - ], - [ - "▁N", - "o" - ], - [ - "▁", - "No" - ], - [ - "se", - "rt" - ], - [ - "ser", - "t" - ], - [ - "s", - "ert" - ], - [ - "id", - "o" - ], - [ - "i", - "do" - ], - [ - "math", - "cal" - ], - [ - "ad", - "e" - ], - [ - "a", - "de" - ], - [ - "▁I", - "I" - ], - [ - "▁", - "II" - ], - [ - "le", - "ar" - ], - [ - "lea", - "r" - ], - [ - "l", - "ear" - ], - [ - "og", - "raph" - ], - [ - "o", - "graph" - ], - [ - "en", - "se" - ], - [ - "ens", - "e" - ], - [ - "▁r", - "ow" - ], - [ - "▁ro", - "w" - ], - [ - "▁", - "row" - ], - [ - "nu", - "m" - ], - [ - "n", - "um" - ], - [ - "▁pos", - "sible" - ], - [ - "▁poss", - "ible" - ], - [ - "▁possib", - "le" - ], - [ - "▁", - "possible" - ], - [ - "▁s", - "ince" - ], - [ - "▁sin", - "ce" - ], - [ - "▁", - "since" - ], - [ - "▁B", - "o" - ], - [ - "▁", - "Bo" - ], - [ - "ct", - "ions" - ], - [ - "ction", - "s" - ], - [ - "▁I", - "m" - ], - [ - "▁", - "Im" - ], - [ - "O", - "R" - ], - [ - "ц", - "і" - ], - [ - "▁i", - "de" - ], - [ - "▁id", - "e" - ], - [ - "▁", - "ide" - ], - [ - "ma", - "p" - ], - [ - "m", - "ap" - ], - [ - "▁cor", - "rect" - ], - [ - "▁corre", - "ct" - ], - [ - "▁corr", - "ect" - ], - [ - "▁", - "correct" - ], - [ - "ve", - "s" - ], - [ - "v", - "es" - ], - [ - "ph", - "p" - ], - [ - "p", - "hp" - ], - [ - "▁out", - "put" - ], - [ - "▁", - "output" - ], - [ - "▁P", - "h" - ], - [ - "▁", - "Ph" - ], - [ - "A", - "L" - ], - [ - "ar", - "ed" - ], - [ - "are", - "d" - ], - [ - "a", - "red" - ], - [ - "\\", - "\\" - ], - [ - "▁im", - "age" - ], - [ - "▁imag", - "e" - ], - [ - "▁", - "image" - ], - [ - "es", - "ch" - ], - [ - "esc", - "h" - ], - [ - "e", - "sch" - ], - [ - "ж", - "и" - ], - [ - "▁con", - "f" - ], - [ - "▁", - "conf" - ], - [ - "po", - "r" - ], - [ - "p", - "or" - ], - [ - "qu", - "ery" - ], - [ - "que", - "ry" - ], - [ - "quer", - "y" - ], - [ - "ur", - "es" - ], - [ - "ure", - "s" - ], - [ - "u", - "res" - ], - [ - "iu", - "m" - ], - [ - "i", - "um" - ], - [ - "en", - "ds" - ], - [ - "end", - "s" - ], - [ - "▁A", - "b" - ], - [ - "▁", - "Ab" - ], - [ - "SB", - "N" - ], - [ - "і", - "д" - ], - [ - "et", - "her" - ], - [ - "eth", - "er" - ], - [ - "ethe", - "r" - ], - [ - "e", - "ther" - ], - [ - "pt", - "ions" - ], - [ - "ption", - "s" - ], - [ - "it", - "u" - ], - [ - "i", - "tu" - ], - [ - "li", - "b" - ], - [ - "l", - "ib" - ], - [ - "n", - "s" - ], - [ - "k", - "i" - ], - [ - "▁work", - "ing" - ], - [ - "▁wor", - "king" - ], - [ - "▁", - "working" - ], - [ - "▁c", - "omo" - ], - [ - "▁com", - "o" - ], - [ - "▁co", - "mo" - ], - [ - "▁", - "como" - ], - [ - "▁T", - "hen" - ], - [ - "▁The", - "n" - ], - [ - "▁Th", - "en" - ], - [ - "▁", - "Then" - ], - [ - "M", - "L" - ], - [ - "ke", - "y" - ], - [ - "k", - "ey" - ], - [ - "cl", - "ass" - ], - [ - "cla", - "ss" - ], - [ - "c", - "lass" - ], - [ - "op", - "le" - ], - [ - "o", - "ple" - ], - [ - "itt", - "le" - ], - [ - "▁m", - "atch" - ], - [ - "▁mat", - "ch" - ], - [ - "▁", - "match" - ], - [ - "way", - "s" - ], - [ - "wa", - "ys" - ], - [ - "w", - "ays" - ], - [ - "math", - "bb" - ], - [ - "▁re", - "quire" - ], - [ - "▁requ", - "ire" - ], - [ - "▁", - "require" - ], - [ - "al", - "t" - ], - [ - "a", - "lt" - ], - [ - "▁v", - "is" - ], - [ - "▁vi", - "s" - ], - [ - "▁", - "vis" - ], - [ - "▁b", - "l" - ], - [ - "▁", - "bl" - ], - [ - "▁c", - "alled" - ], - [ - "▁cal", - "led" - ], - [ - "▁call", - "ed" - ], - [ - "▁", - "called" - ], - [ - "It", - "em" - ], - [ - "I", - "tem" - ], - [ - "ur", - "a" - ], - [ - "u", - "ra" - ], - [ - "ve", - "c" - ], - [ - "v", - "ec" - ], - [ - "em", - "e" - ], - [ - "e", - "me" - ], - [ - "▁d", - "ella" - ], - [ - "▁de", - "lla" - ], - [ - "▁del", - "la" - ], - [ - "▁dell", - "a" - ], - [ - "em", - "bre" - ], - [ - "emb", - "re" - ], - [ - "ur", - "g" - ], - [ - "u", - "rg" - ], - [ - "S", - "e" - ], - [ - "▁re", - "quest" - ], - [ - "▁requ", - "est" - ], - [ - "▁req", - "uest" - ], - [ - "▁", - "request" - ], - [ - "is", - "che" - ], - [ - "isch", - "e" - ], - [ - "isc", - "he" - ], - [ - "i", - "sche" - ], - [ - "▁p", - "ort" - ], - [ - "▁po", - "rt" - ], - [ - "▁por", - "t" - ], - [ - "▁", - "port" - ], - [ - "▁inst", - "ead" - ], - [ - "=", - "\\" - ], - [ - "▁", - "У" - ], - [ - "ho", - "r" - ], - [ - "h", - "or" - ], - [ - "en", - "te" - ], - [ - "ent", - "e" - ], - [ - "um", - "e" - ], - [ - "u", - "me" - ], - [ - "er", - "d" - ], - [ - "e", - "rd" - ], - [ - "с", - "а" - ], - [ - "▁w", - "hy" - ], - [ - "▁wh", - "y" - ], - [ - "▁", - "why" - ], - [ - "ri", - "st" - ], - [ - "ris", - "t" - ], - [ - "r", - "ist" - ], - [ - "▁p", - "erson" - ], - [ - "▁per", - "son" - ], - [ - "▁pers", - "on" - ], - [ - "▁", - "person" - ], - [ - "▁.", - ".." - ], - [ - "▁..", - "." - ], - [ - "▁", - "..." - ], - [ - "▁p", - "rivate" - ], - [ - "▁priv", - "ate" - ], - [ - "▁", - "private" - ], - [ - "▁t", - "ot" - ], - [ - "▁to", - "t" - ], - [ - "▁", - "tot" - ], - [ - "ph", - "a" - ], - [ - "p", - "ha" - ], - [ - "if", - "t" - ], - [ - "i", - "ft" - ], - [ - "it", - "a" - ], - [ - "i", - "ta" - ], - [ - "lo", - "c" - ], - [ - "l", - "oc" - ], - [ - "▁o", - "ld" - ], - [ - "▁ol", - "d" - ], - [ - "▁", - "old" - ], - [ - "о", - "н" - ], - [ - "▁n", - "el" - ], - [ - "▁ne", - "l" - ], - [ - "▁", - "nel" - ], - [ - "'", - "]" - ], - [ - "t", - "i" - ], - [ - "ie", - "t" - ], - [ - "i", - "et" - ], - [ - "ci", - "te" - ], - [ - "cit", - "e" - ], - [ - "c", - "ite" - ], - [ - "ple", - "ment" - ], - [ - "pl", - "ement" - ], - [ - "p", - "lement" - ], - [ - "▁a", - "bove" - ], - [ - "▁ab", - "ove" - ], - [ - "▁", - "above" - ], - [ - "k", - "s" - ], - [ - "re", - "ady" - ], - [ - "read", - "y" - ], - [ - "rea", - "dy" - ], - [ - "▁c", - "ome" - ], - [ - "▁com", - "e" - ], - [ - "▁co", - "me" - ], - [ - "▁", - "come" - ], - [ - "se", - "ction" - ], - [ - "sec", - "tion" - ], - [ - "sect", - "ion" - ], - [ - "s", - "ection" - ], - [ - "▁P", - "ol" - ], - [ - "▁Po", - "l" - ], - [ - "▁", - "Pol" - ], - [ - "▁w", - "rit" - ], - [ - "▁wr", - "it" - ], - [ - "▁", - "writ" - ], - [ - "▁htt", - "ps" - ], - [ - "▁http", - "s" - ], - [ - "▁", - "https" - ], - [ - "▁$", - "$" - ], - [ - "▁", - "$$" - ], - [ - "▁", - "»" - ], - [ - "▁bu", - "ild" - ], - [ - "▁", - "build" - ], - [ - "it", - "o" - ], - [ - "i", - "to" - ], - [ - "▁cons", - "ider" - ], - [ - "▁consid", - "er" - ], - [ - "af", - "t" - ], - [ - "a", - "ft" - ], - [ - "Ap", - "p" - ], - [ - "A", - "pp" - ], - [ - ",", - "\\" - ], - [ - "ind", - "ows" - ], - [ - "indow", - "s" - ], - [ - "indo", - "ws" - ], - [ - "com", - "m" - ], - [ - "co", - "mm" - ], - [ - "c", - "omm" - ], - [ - "▁", - ";" - ], - [ - "gr", - "ound" - ], - [ - "gro", - "und" - ], - [ - "g", - "round" - ], - [ - "▁p", - "lace" - ], - [ - "▁pl", - "ace" - ], - [ - "▁pla", - "ce" - ], - [ - "▁", - "place" - ], - [ - "B", - "y" - ], - [ - "▁pro", - "ject" - ], - [ - "▁", - "project" - ], - [ - "Ob", - "ject" - ], - [ - "Obj", - "ect" - ], - [ - "O", - "bject" - ], - [ - "▁re", - "pr" - ], - [ - "▁rep", - "r" - ], - [ - "en", - "ces" - ], - [ - "ence", - "s" - ], - [ - "enc", - "es" - ], - [ - "ind", - "ow" - ], - [ - "indo", - "w" - ], - [ - "z", - "t" - ], - [ - "▁f", - "iles" - ], - [ - "▁file", - "s" - ], - [ - "▁fil", - "es" - ], - [ - "▁fi", - "les" - ], - [ - "▁", - "files" - ], - [ - "c", - "z" - ], - [ - "iv", - "ity" - ], - [ - "ivi", - "ty" - ], - [ - "i", - "vity" - ], - [ - "▁in", - "it" - ], - [ - "▁i", - "nit" - ], - [ - "▁", - "init" - ], - [ - "▁p", - "rob" - ], - [ - "▁pro", - "b" - ], - [ - "▁pr", - "ob" - ], - [ - "▁", - "prob" - ], - [ - "▁s", - "k" - ], - [ - "▁", - "sk" - ], - [ - "or", - "th" - ], - [ - "ort", - "h" - ], - [ - "im", - "ent" - ], - [ - "ime", - "nt" - ], - [ - "imen", - "t" - ], - [ - "i", - "ment" - ], - [ - "ou", - "ble" - ], - [ - "at", - "al" - ], - [ - "ata", - "l" - ], - [ - "a", - "tal" - ], - [ - "ir", - "c" - ], - [ - "i", - "rc" - ], - [ - "▁", - "è" - ], - [ - "▁b", - "re" - ], - [ - "▁br", - "e" - ], - [ - "▁", - "bre" - ], - [ - "is", - "ta" - ], - [ - "ist", - "a" - ], - [ - "i", - "sta" - ], - [ - "in", - "put" - ], - [ - "▁", - "И" - ], - [ - "но", - "й" - ], - [ - "su", - "m" - ], - [ - "s", - "um" - ], - [ - "pa", - "th" - ], - [ - "pat", - "h" - ], - [ - "p", - "ath" - ], - [ - "▁c", - "our" - ], - [ - "▁co", - "ur" - ], - [ - "▁cou", - "r" - ], - [ - "▁t", - "oo" - ], - [ - "▁to", - "o" - ], - [ - "▁A", - "d" - ], - [ - "▁", - "Ad" - ], - [ - "▁G", - "u" - ], - [ - "▁", - "Gu" - ], - [ - "▁f", - "alse" - ], - [ - "▁fal", - "se" - ], - [ - "▁", - "false" - ], - [ - "▁f", - "un" - ], - [ - "▁fu", - "n" - ], - [ - "▁", - "fun" - ], - [ - "▁с", - "т" - ], - [ - "▁", - "ст" - ], - [ - "oo", - "d" - ], - [ - "o", - "od" - ], - [ - "è", - "s" - ], - [ - "▁e", - "nc" - ], - [ - "▁en", - "c" - ], - [ - "▁", - "enc" - ], - [ - "bo", - "l" - ], - [ - "b", - "ol" - ], - [ - "r", - "l" - ], - [ - "ar", - "get" - ], - [ - "arg", - "et" - ], - [ - "or", - "der" - ], - [ - "ord", - "er" - ], - [ - "orde", - "r" - ], - [ - "▁me", - "an" - ], - [ - "▁", - "mean" - ], - [ - "п", - "е" - ], - [ - "ig", - "en" - ], - [ - "ige", - "n" - ], - [ - "i", - "gen" - ], - [ - "▁п", - "ре" - ], - [ - "▁пр", - "е" - ], - [ - "▁", - "пре" - ], - [ - "wid", - "th" - ], - [ - "w", - "idth" - ], - [ - ";", - "\r" - ], - [ - "it", - "or" - ], - [ - "ito", - "r" - ], - [ - "i", - "tor" - ], - [ - "▁st", - "ate" - ], - [ - "▁stat", - "e" - ], - [ - "▁sta", - "te" - ], - [ - "▁", - "state" - ], - [ - "▁gre", - "at" - ], - [ - "en", - "n" - ], - [ - "e", - "nn" - ], - [ - "bi", - "n" - ], - [ - "b", - "in" - ], - [ - "E", - "r" - ], - [ - "Mo", - "d" - ], - [ - "M", - "od" - ], - [ - "o", - "z" - ], - [ - "▁w", - "on" - ], - [ - "▁wo", - "n" - ], - [ - "▁", - "won" - ], - [ - "▁f", - "act" - ], - [ - "▁fa", - "ct" - ], - [ - "▁fac", - "t" - ], - [ - "▁", - "fact" - ], - [ - "▁j", - "ava" - ], - [ - "▁ja", - "va" - ], - [ - "▁jav", - "a" - ], - [ - "▁", - "java" - ], - [ - "▁Un", - "ivers" - ], - [ - "▁", - "Univers" - ], - [ - "▁c", - "ap" - ], - [ - "▁ca", - "p" - ], - [ - "▁", - "cap" - ], - [ - "is", - "tor" - ], - [ - "ist", - "or" - ], - [ - "isto", - "r" - ], - [ - "i", - "stor" - ], - [ - "}", - "(" - ], - [ - "k", - "u" - ], - [ - "it", - "her" - ], - [ - "ith", - "er" - ], - [ - "i", - "ther" - ], - [ - "al", - "es" - ], - [ - "ale", - "s" - ], - [ - "a", - "les" - ], - [ - "▁o", - "u" - ], - [ - "▁", - "ou" - ], - [ - "ro", - "ss" - ], - [ - "ros", - "s" - ], - [ - "r", - "oss" - ], - [ - "▁t", - "ake" - ], - [ - "▁tak", - "e" - ], - [ - "▁ta", - "ke" - ], - [ - "▁", - "take" - ], - [ - "ri", - "x" - ], - [ - "r", - "ix" - ], - [ - "lo", - "b" - ], - [ - "l", - "ob" - ], - [ - "▁e", - "ine" - ], - [ - "▁ein", - "e" - ], - [ - "as", - "es" - ], - [ - "ase", - "s" - ], - [ - "▁a", - "ccess" - ], - [ - "▁acc", - "ess" - ], - [ - "▁ac", - "cess" - ], - [ - "▁", - "access" - ], - [ - "it", - "é" - ], - [ - "i", - "té" - ], - [ - "is", - "tr" - ], - [ - "ist", - "r" - ], - [ - "i", - "str" - ], - [ - "iz", - "ation" - ], - [ - "iza", - "tion" - ], - [ - "▁app", - "ro" - ], - [ - "▁ap", - "pro" - ], - [ - "▁", - "appro" - ], - [ - "ba", - "ll" - ], - [ - "bal", - "l" - ], - [ - "b", - "all" - ], - [ - "▁m", - "ak" - ], - [ - "▁ma", - "k" - ], - [ - "}", - "^" - ], - [ - "▁C", - "ons" - ], - [ - "▁Con", - "s" - ], - [ - "▁Co", - "ns" - ], - [ - "▁", - "Cons" - ], - [ - "pr", - "ess" - ], - [ - "pre", - "ss" - ], - [ - "pres", - "s" - ], - [ - "p", - "ress" - ], - [ - "se", - "rv" - ], - [ - "ser", - "v" - ], - [ - "s", - "erv" - ], - [ - "()", - "." - ], - [ - "(", - ")." - ], - [ - "a", - "f" - ], - [ - "▁re", - "f" - ], - [ - "▁r", - "ef" - ], - [ - "▁", - "ref" - ], - [ - ")", - "\\" - ], - [ - "▁cont", - "in" - ], - [ - "s", - "u" - ], - [ - "iv", - "er" - ], - [ - "ive", - "r" - ], - [ - "i", - "ver" - ], - [ - "▁c", - "ond" - ], - [ - "▁con", - "d" - ], - [ - "▁co", - "nd" - ], - [ - "▁", - "cond" - ], - [ - "▁ex", - "pect" - ], - [ - "▁exp", - "ect" - ], - [ - "▁", - "expect" - ], - [ - "▁char", - "act" - ], - [ - "▁cha", - "ract" - ], - [ - "ber", - "t" - ], - [ - "be", - "rt" - ], - [ - "b", - "ert" - ], - [ - "el", - "t" - ], - [ - "e", - "lt" - ], - [ - "ter", - "s" - ], - [ - "te", - "rs" - ], - [ - "t", - "ers" - ], - [ - "scri", - "pt" - ], - [ - "scr", - "ipt" - ], - [ - "s", - "cript" - ], - [ - "▁E", - "d" - ], - [ - "▁", - "Ed" - ], - [ - "ap", - "t" - ], - [ - "a", - "pt" - ], - [ - "')", - ";" - ], - [ - "'", - ");" - ], - [ - "pr", - "int" - ], - [ - "▁s", - "ize" - ], - [ - "▁si", - "ze" - ], - [ - "▁", - "size" - ], - [ - "▁s", - "ich" - ], - [ - "▁si", - "ch" - ], - [ - "▁sic", - "h" - ], - [ - "fa", - "ce" - ], - [ - "fac", - "e" - ], - [ - "f", - "ace" - ], - [ - "en", - "den" - ], - [ - "end", - "en" - ], - [ - "ende", - "n" - ], - [ - "▁A", - "mer" - ], - [ - "▁Am", - "er" - ], - [ - "▁", - "Amer" - ], - [ - "if", - "ied" - ], - [ - "ifi", - "ed" - ], - [ - "ifie", - "d" - ], - [ - "ó", - "w" - ], - [ - "▁S", - "u" - ], - [ - "▁", - "Su" - ], - [ - "te", - "s" - ], - [ - "t", - "es" - ], - [ - "me", - "d" - ], - [ - "m", - "ed" - ], - [ - "▁R", - "eg" - ], - [ - "▁Re", - "g" - ], - [ - "▁", - "Reg" - ], - [ - "so", - "le" - ], - [ - "sol", - "e" - ], - [ - "s", - "ole" - ], - [ - "▁in", - "clud" - ], - [ - "▁incl", - "ud" - ], - [ - "▁inclu", - "d" - ], - [ - "▁", - "includ" - ], - [ - "in", - "i" - ], - [ - "i", - "ni" - ], - [ - "in", - "ci" - ], - [ - "inc", - "i" - ], - [ - "▁p", - "la" - ], - [ - "▁pl", - "a" - ], - [ - "▁", - "pla" - ], - [ - "▁l", - "eft" - ], - [ - "▁le", - "ft" - ], - [ - "▁", - "left" - ], - [ - "d", - "f" - ], - [ - "Pa", - "r" - ], - [ - "P", - "ar" - ], - [ - "▁A", - "ll" - ], - [ - "▁Al", - "l" - ], - [ - "▁", - "All" - ], - [ - "▁o", - "cc" - ], - [ - "▁oc", - "c" - ], - [ - "▁", - "occ" - ], - [ - "▁A", - "t" - ], - [ - "▁", - "At" - ], - [ - "▁c", - "r" - ], - [ - "▁", - "cr" - ], - [ - "Q", - "u" - ], - [ - "▁g", - "iven" - ], - [ - "▁giv", - "en" - ], - [ - "▁give", - "n" - ], - [ - "▁gi", - "ven" - ], - [ - "▁S", - "ystem" - ], - [ - "▁Syst", - "em" - ], - [ - "▁", - "System" - ], - [ - "ic", - "an" - ], - [ - "ica", - "n" - ], - [ - "i", - "can" - ], - [ - "▁f", - "inal" - ], - [ - "▁fin", - "al" - ], - [ - "▁fi", - "nal" - ], - [ - "▁", - "final" - ], - [ - "it", - "ions" - ], - [ - "ition", - "s" - ], - [ - "iti", - "ons" - ], - [ - "▁б", - "ы" - ], - [ - "▁", - "бы" - ], - [ - "▁per", - "form" - ], - [ - "▁perf", - "orm" - ], - [ - "▁", - "perform" - ], - [ - "A", - "N" - ], - [ - "▁M", - "e" - ], - [ - "▁", - "Me" - ], - [ - "ur", - "o" - ], - [ - "u", - "ro" - ], - [ - "▁T", - "hat" - ], - [ - "▁Th", - "at" - ], - [ - "▁", - "That" - ], - [ - "г", - "ра" - ], - [ - "▁П", - "о" - ], - [ - "▁", - "По" - ], - [ - "▁в", - "и" - ], - [ - "▁", - "ви" - ], - [ - "ab", - "ly" - ], - [ - "abl", - "y" - ], - [ - "▁pr", - "esent" - ], - [ - "▁pre", - "sent" - ], - [ - "▁pres", - "ent" - ], - [ - "▁", - "present" - ], - [ - "du", - "ct" - ], - [ - "d", - "uct" - ], - [ - "ri", - "c" - ], - [ - "r", - "ic" - ], - [ - "▁E", - "ng" - ], - [ - "▁En", - "g" - ], - [ - "▁", - "Eng" - ], - [ - "tr", - "y" - ], - [ - "t", - "ry" - ], - [ - "▁l", - "ar" - ], - [ - "▁la", - "r" - ], - [ - "▁", - "lar" - ], - [ - "b", - "l" - ], - [ - "id", - "d" - ], - [ - "i", - "dd" - ], - [ - "▁ä", - "r" - ], - [ - "▁", - "är" - ], - [ - "or", - "a" - ], - [ - "o", - "ra" - ], - [ - "L", - "L" - ], - [ - "os", - "s" - ], - [ - "o", - "ss" - ], - [ - "▁I", - "SBN" - ], - [ - "▁", - "ISBN" - ], - [ - "▁th", - "ree" - ], - [ - "▁thr", - "ee" - ], - [ - "▁thre", - "e" - ], - [ - "▁", - "three" - ], - [ - "j", - "o" - ], - [ - "n", - "í" - ], - [ - "r", - "c" - ], - [ - "▁f", - "ar" - ], - [ - "▁fa", - "r" - ], - [ - "▁", - "far" - ], - [ - "▁N", - "ot" - ], - [ - "▁No", - "t" - ], - [ - "▁", - "Not" - ], - [ - "▁l", - "ittle" - ], - [ - "▁litt", - "le" - ], - [ - "di", - "s" - ], - [ - "d", - "is" - ], - [ - "at", - "i" - ], - [ - "a", - "ti" - ], - [ - "fun", - "ction" - ], - [ - "func", - "tion" - ], - [ - "f", - "unction" - ], - [ - "▁a", - "ble" - ], - [ - "▁ab", - "le" - ], - [ - "▁", - "able" - ], - [ - "le", - "ss" - ], - [ - "les", - "s" - ], - [ - "l", - "ess" - ], - [ - "с", - "о" - ], - [ - "▁p", - "ath" - ], - [ - "▁pat", - "h" - ], - [ - "▁pa", - "th" - ], - [ - "▁", - "path" - ], - [ - "▁p", - "res" - ], - [ - "▁pr", - "es" - ], - [ - "▁pre", - "s" - ], - [ - "▁", - "pres" - ], - [ - "lo", - "se" - ], - [ - "los", - "e" - ], - [ - "l", - "ose" - ], - [ - "P", - "I" - ], - [ - "▁iss", - "ue" - ], - [ - "▁issu", - "e" - ], - [ - "▁", - "issue" - ], - [ - "ack", - "age" - ], - [ - "ti", - "me" - ], - [ - "tim", - "e" - ], - [ - "t", - "ime" - ], - [ - "ig", - "e" - ], - [ - "i", - "ge" - ], - [ - "am", - "s" - ], - [ - "a", - "ms" - ], - [ - "▁C", - "l" - ], - [ - "▁", - "Cl" - ], - [ - "ail", - "s" - ], - [ - "ai", - "ls" - ], - [ - "a", - "ils" - ], - [ - "al", - "k" - ], - [ - "i", - "i" - ], - [ - "ш", - "е" - ], - [ - "pe", - "n" - ], - [ - "p", - "en" - ], - [ - "Q", - "L" - ], - [ - "▁e", - "as" - ], - [ - "R", - "L" - ], - [ - "ce", - "l" - ], - [ - "c", - "el" - ], - [ - "▁s", - "l" - ], - [ - "▁", - "sl" - ], - [ - "▁a", - "sk" - ], - [ - "▁as", - "k" - ], - [ - "▁", - "ask" - ], - [ - "▁n", - "om" - ], - [ - "▁no", - "m" - ], - [ - "▁", - "nom" - ], - [ - "▁t", - "op" - ], - [ - "▁to", - "p" - ], - [ - "▁", - "top" - ], - [ - "id", - "es" - ], - [ - "ide", - "s" - ], - [ - "i", - "des" - ], - [ - "in", - "dex" - ], - [ - "ind", - "ex" - ], - [ - "inde", - "x" - ], - [ - "é", - "m" - ], - [ - "▁h", - "app" - ], - [ - "▁ha", - "pp" - ], - [ - "o", - "x" - ], - [ - "c", - "d" - ], - [ - "▁b", - "etter" - ], - [ - "▁bet", - "ter" - ], - [ - "▁lo", - "ad" - ], - [ - "▁", - "load" - ], - [ - "ad", - "os" - ], - [ - "ado", - "s" - ], - [ - "ze", - "n" - ], - [ - "z", - "en" - ], - [ - "▁c", - "e" - ], - [ - "▁", - "ce" - ], - [ - "▁f", - "a" - ], - [ - "▁", - "fa" - ], - [ - "▁J", - "ohn" - ], - [ - "▁Joh", - "n" - ], - [ - "▁Jo", - "hn" - ], - [ - "▁", - "John" - ], - [ - "IM", - "A" - ], - [ - "I", - "MA" - ], - [ - "▁B", - "ar" - ], - [ - "▁Ba", - "r" - ], - [ - "▁", - "Bar" - ], - [ - "over", - "flow" - ], - [ - "▁д", - "е" - ], - [ - "▁", - "де" - ], - [ - "ne", - "ss" - ], - [ - "nes", - "s" - ], - [ - "n", - "ess" - ], - [ - "ce", - "r" - ], - [ - "c", - "er" - ], - [ - "▁H", - "ere" - ], - [ - "▁He", - "re" - ], - [ - "▁Her", - "e" - ], - [ - "▁", - "Here" - ], - [ - "re", - "t" - ], - [ - "r", - "et" - ], - [ - "▁s", - "z" - ], - [ - "▁", - "sz" - ], - [ - "amb", - "da" - ], - [ - "op", - "y" - ], - [ - "o", - "py" - ], - [ - "ur", - "l" - ], - [ - "u", - "rl" - ], - [ - "p", - "y" - ], - [ - "r", - "t" - ], - [ - "▁under", - "stand" - ], - [ - "a", - "ł" - ], - [ - "he", - "r" - ], - [ - "h", - "er" - ], - [ - "#", - "#" - ], - [ - "▁ch", - "ild" - ], - [ - "▁chi", - "ld" - ], - [ - "▁", - "child" - ], - [ - "▁ex", - "ec" - ], - [ - "▁", - "exec" - ], - [ - "▁app", - "lication" - ], - [ - "▁applic", - "ation" - ], - [ - "▁", - "application" - ], - [ - "▁st", - "ruct" - ], - [ - "▁str", - "uct" - ], - [ - "▁stru", - "ct" - ], - [ - "▁", - "struct" - ], - [ - "▁", - "я" - ], - [ - "Fil", - "e" - ], - [ - "Fi", - "le" - ], - [ - "F", - "ile" - ], - [ - "▁c", - "ert" - ], - [ - "▁ce", - "rt" - ], - [ - "▁cer", - "t" - ], - [ - "▁", - "cert" - ], - [ - "is", - "on" - ], - [ - "iso", - "n" - ], - [ - "i", - "son" - ], - [ - "▁vari", - "able" - ], - [ - "▁", - "variable" - ], - [ - "D", - "E" - ], - [ - "r", - "s" - ], - [ - "▁re", - "ally" - ], - [ - "▁real", - "ly" - ], - [ - "Po", - "rt" - ], - [ - "P", - "ort" - ], - [ - "b", - "a" - ], - [ - "▁B", - "er" - ], - [ - "▁Be", - "r" - ], - [ - "▁", - "Ber" - ], - [ - "▁in", - "te" - ], - [ - "▁int", - "e" - ], - [ - "▁", - "inte" - ], - [ - "▁st", - "atic" - ], - [ - "▁stat", - "ic" - ], - [ - "▁stati", - "c" - ], - [ - "▁", - "static" - ], - [ - "▁con", - "fig" - ], - [ - "▁conf", - "ig" - ], - [ - "▁", - "config" - ], - [ - "▁S", - "he" - ], - [ - "▁Sh", - "e" - ], - [ - "▁", - "She" - ], - [ - "est", - "ions" - ], - [ - "estion", - "s" - ], - [ - "esti", - "ons" - ], - [ - "▁p", - "lus" - ], - [ - "▁pl", - "us" - ], - [ - "▁", - "plus" - ], - [ - "▁h", - "ab" - ], - [ - "▁ha", - "b" - ], - [ - "▁", - "hab" - ], - [ - "op", - "e" - ], - [ - "o", - "pe" - ], - [ - "▁m", - "us" - ], - [ - "▁mu", - "s" - ], - [ - "▁", - "mus" - ], - [ - "▁c", - "ount" - ], - [ - "▁co", - "unt" - ], - [ - "▁coun", - "t" - ], - [ - "▁cou", - "nt" - ], - [ - "▁", - "count" - ], - [ - "M", - "E" - ], - [ - "▁su", - "pport" - ], - [ - "▁supp", - "ort" - ], - [ - "▁sup", - "port" - ], - [ - "▁", - "support" - ], - [ - "▁pe", - "ople" - ], - [ - "▁", - "people" - ], - [ - "▁b", - "eh" - ], - [ - "▁be", - "h" - ], - [ - "▁al", - "ready" - ], - [ - "T", - "r" - ], - [ - "▁d", - "one" - ], - [ - "▁do", - "ne" - ], - [ - "▁don", - "e" - ], - [ - "▁", - "done" - ], - [ - "de", - "m" - ], - [ - "d", - "em" - ], - [ - "si", - "ze" - ], - [ - "s", - "ize" - ], - [ - "al", - "pha" - ], - [ - "alph", - "a" - ], - [ - "▁d", - "isc" - ], - [ - "▁di", - "sc" - ], - [ - "▁dis", - "c" - ], - [ - "]", - ")" - ], - [ - "▁M", - "an" - ], - [ - "▁Ma", - "n" - ], - [ - "▁", - "Man" - ], - [ - "▁m", - "il" - ], - [ - "▁mi", - "l" - ], - [ - "▁", - "mil" - ], - [ - "▁st", - "and" - ], - [ - "▁sta", - "nd" - ], - [ - "▁stan", - "d" - ], - [ - "▁", - "stand" - ], - [ - "▁gr", - "oup" - ], - [ - "▁gro", - "up" - ], - [ - "▁", - "group" - ], - [ - "▁sm", - "all" - ], - [ - "▁", - "small" - ], - [ - "▁m", - "ag" - ], - [ - "▁ma", - "g" - ], - [ - "▁", - "mag" - ], - [ - "ст", - "ь" - ], - [ - "с", - "ть" - ], - [ - "▁de", - "fault" - ], - [ - "▁def", - "ault" - ], - [ - "▁", - "default" - ], - [ - "▁sing", - "le" - ], - [ - "▁sin", - "gle" - ], - [ - "▁", - "single" - ], - [ - "lin", - "k" - ], - [ - "l", - "ink" - ], - [ - "cl", - "ude" - ], - [ - "clud", - "e" - ], - [ - "▁e", - "ar" - ], - [ - "▁", - "ear" - ], - [ - "il", - "ar" - ], - [ - "ila", - "r" - ], - [ - "i", - "lar" - ], - [ - "**", - "**" - ], - [ - "***", - "*" - ], - [ - "*", - "***" - ], - [ - "▁f", - "ix" - ], - [ - "▁fi", - "x" - ], - [ - "▁", - "fix" - ], - [ - "le", - "y" - ], - [ - "l", - "ey" - ], - [ - "▁p", - "as" - ], - [ - "▁pa", - "s" - ], - [ - "▁", - "pas" - ], - [ - "ни", - "й" - ], - [ - "iss", - "ion" - ], - [ - "▁im", - "plement" - ], - [ - "▁imp", - "lement" - ], - [ - "▁impl", - "ement" - ], - [ - "it", - "ch" - ], - [ - "▁го", - "да" - ], - [ - "▁год", - "а" - ], - [ - "▁al", - "ways" - ], - [ - "▁", - "always" - ], - [ - "▁J", - "ah" - ], - [ - "▁Ja", - "h" - ], - [ - "pr", - "ing" - ], - [ - "p", - "ring" - ], - [ - "ç", - "ão" - ], - [ - "pl", - "ate" - ], - [ - "pla", - "te" - ], - [ - "p", - "late" - ], - [ - "▁de", - "scri" - ], - [ - "▁des", - "cri" - ], - [ - "▁desc", - "ri" - ], - [ - "▁h", - "ead" - ], - [ - "▁he", - "ad" - ], - [ - "▁", - "head" - ], - [ - "in", - "it" - ], - [ - "ini", - "t" - ], - [ - "i", - "nit" - ], - [ - "og", - "raf" - ], - [ - "▁qu", - "ery" - ], - [ - "▁que", - "ry" - ], - [ - "▁quer", - "y" - ], - [ - "▁", - "query" - ], - [ - "iv", - "ed" - ], - [ - "ive", - "d" - ], - [ - "i", - "ved" - ], - [ - "▁in", - "g" - ], - [ - "▁i", - "ng" - ], - [ - "▁", - "ing" - ], - [ - "pt", - "y" - ], - [ - "p", - "ty" - ], - [ - "h", - "a" - ], - [ - "▁m", - "ov" - ], - [ - "▁mo", - "v" - ], - [ - "▁", - "mov" - ], - [ - "▁", - "э" - ], - [ - "et", - "te" - ], - [ - "ett", - "e" - ], - [ - "e", - "tte" - ], - [ - "il", - "y" - ], - [ - "i", - "ly" - ], - [ - "▁g", - "ot" - ], - [ - "▁go", - "t" - ], - [ - "▁", - "got" - ], - [ - "il", - "ed" - ], - [ - "ile", - "d" - ], - [ - "i", - "led" - ], - [ - "ic", - "ro" - ], - [ - "i", - "cro" - ], - [ - "▁w", - "r" - ], - [ - "▁", - "wr" - ], - [ - "р", - "я" - ], - [ - "▁n", - "ever" - ], - [ - "▁ne", - "ver" - ], - [ - "▁nev", - "er" - ], - [ - "or", - "es" - ], - [ - "ore", - "s" - ], - [ - "o", - "res" - ], - [ - "▁b", - "as" - ], - [ - "▁ba", - "s" - ], - [ - "▁", - "bas" - ], - [ - "io", - "s" - ], - [ - "i", - "os" - ], - [ - "la", - "ck" - ], - [ - "lac", - "k" - ], - [ - "l", - "ack" - ], - [ - "ain", - "t" - ], - [ - "ai", - "nt" - ], - [ - "a", - "int" - ], - [ - "vi", - "ous" - ], - [ - "v", - "ious" - ], - [ - "▁g", - "ive" - ], - [ - "▁giv", - "e" - ], - [ - "▁gi", - "ve" - ], - [ - "id", - "ad" - ], - [ - "ida", - "d" - ], - [ - "E", - "n" - ], - [ - "ны", - "й" - ], - [ - "н", - "ый" - ], - [ - "ta", - "ble" - ], - [ - "tab", - "le" - ], - [ - "t", - "able" - ], - [ - "▁Н", - "а" - ], - [ - "▁", - "На" - ], - [ - "▁p", - "at" - ], - [ - "▁pa", - "t" - ], - [ - "▁", - "pat" - ], - [ - "то", - "р" - ], - [ - "т", - "ор" - ], - [ - "an", - "gu" - ], - [ - "ang", - "u" - ], - [ - "lo", - "y" - ], - [ - "l", - "oy" - ], - [ - "▁s", - "eg" - ], - [ - "▁se", - "g" - ], - [ - "▁", - "seg" - ], - [ - "ar", - "ray" - ], - [ - "arr", - "ay" - ], - [ - "▁F", - "l" - ], - [ - "▁", - "Fl" - ], - [ - "▁in", - "dex" - ], - [ - "▁ind", - "ex" - ], - [ - "▁inde", - "x" - ], - [ - "▁", - "index" - ], - [ - "▁s", - "w" - ], - [ - "▁", - "sw" - ], - [ - "IMA", - "GE" - ], - [ - "IM", - "AGE" - ], - [ - "▁k", - "m" - ], - [ - "▁", - "km" - ], - [ - "б", - "и" - ], - [ - "Cl", - "ass" - ], - [ - "Cla", - "ss" - ], - [ - "C", - "lass" - ], - [ - "en", - "a" - ], - [ - "e", - "na" - ], - [ - "ме", - "н" - ], - [ - "м", - "ен" - ], - [ - "com", - "p" - ], - [ - "co", - "mp" - ], - [ - "c", - "omp" - ], - [ - "at", - "us" - ], - [ - "atu", - "s" - ], - [ - "ra", - "p" - ], - [ - "r", - "ap" - ], - [ - "▁L", - "ist" - ], - [ - "▁Li", - "st" - ], - [ - "▁Lis", - "t" - ], - [ - "▁", - "List" - ], - [ - "Er", - "ror" - ], - [ - "Err", - "or" - ], - [ - "E", - "rror" - ], - [ - "▁t", - "yp" - ], - [ - "▁ty", - "p" - ], - [ - "▁", - "typ" - ], - [ - "▁м", - "а" - ], - [ - "▁", - "ма" - ], - [ - "c", - "s" - ], - [ - "'", - ":" - ], - [ - "j", - "i" - ], - [ - "▁How", - "ever" - ], - [ - "▁", - "However" - ], - [ - "▁т", - "е" - ], - [ - "▁", - "те" - ], - [ - "▁be", - "low" - ], - [ - "▁bel", - "ow" - ], - [ - "▁", - "below" - ], - [ - "▁A", - "pp" - ], - [ - "▁Ap", - "p" - ], - [ - "▁", - "App" - ], - [ - "щ", - "е" - ], - [ - "}", - "_" - ], - [ - "bu", - "m" - ], - [ - "b", - "um" - ], - [ - "vi", - "r" - ], - [ - "v", - "ir" - ], - [ - "ée", - "s" - ], - [ - "é", - "es" - ], - [ - "▁re", - "cord" - ], - [ - "▁rec", - "ord" - ], - [ - "▁", - "record" - ], - [ - "ta", - "in" - ], - [ - "t", - "ain" - ], - [ - "le", - "m" - ], - [ - "l", - "em" - ], - [ - "it", - "al" - ], - [ - "ita", - "l" - ], - [ - "i", - "tal" - ], - [ - "▁i", - "mp" - ], - [ - "▁im", - "p" - ], - [ - "▁", - "imp" - ], - [ - "eg", - "o" - ], - [ - "e", - "go" - ], - [ - "▁o", - "d" - ], - [ - "▁", - "od" - ], - [ - "▁re", - "ce" - ], - [ - "▁rec", - "e" - ], - [ - "▁", - "rece" - ], - [ - "mi", - "t" - ], - [ - "m", - "it" - ], - [ - "ff", - "ic" - ], - [ - "f", - "fic" - ], - [ - "stack", - "overflow" - ], - [ - "ie", - "ve" - ], - [ - "iev", - "e" - ], - [ - "▁", - "З" - ], - [ - "▁n", - "ov" - ], - [ - "▁no", - "v" - ], - [ - "▁", - "nov" - ], - [ - "ц", - "е" - ], - [ - "▁In", - "tern" - ], - [ - "▁Int", - "ern" - ], - [ - "▁Inter", - "n" - ], - [ - "▁", - "Intern" - ], - [ - "b", - "u" - ], - [ - "▁s", - "ugg" - ], - [ - "▁su", - "gg" - ], - [ - "▁sug", - "g" - ], - [ - "▁l", - "oop" - ], - [ - "▁lo", - "op" - ], - [ - "▁", - "loop" - ], - [ - "ri", - "de" - ], - [ - "rid", - "e" - ], - [ - "r", - "ide" - ], - [ - "▁$", - "(" - ], - [ - "▁", - "$(" - ], - [ - "▁s", - "uper" - ], - [ - "▁su", - "per" - ], - [ - "▁sup", - "er" - ], - [ - "▁", - "super" - ], - [ - "ri", - "d" - ], - [ - "r", - "id" - ], - [ - "ны", - "х" - ], - [ - "н", - "ых" - ], - [ - "▁P", - "er" - ], - [ - "▁Pe", - "r" - ], - [ - "▁", - "Per" - ], - [ - "▁d", - "om" - ], - [ - "▁do", - "m" - ], - [ - "▁", - "dom" - ], - [ - "=", - "'" - ], - [ - "ut", - "sch" - ], - [ - "uts", - "ch" - ], - [ - "le", - "n" - ], - [ - "l", - "en" - ], - [ - "▁w", - "rite" - ], - [ - "▁writ", - "e" - ], - [ - "▁wr", - "ite" - ], - [ - "▁", - "write" - ], - [ - "▁in", - "v" - ], - [ - "▁", - "inv" - ], - [ - "ou", - "th" - ], - [ - "out", - "h" - ], - [ - "o", - "uth" - ], - [ - "▁H", - "er" - ], - [ - "▁He", - "r" - ], - [ - "▁", - "Her" - ], - [ - "▁y", - "ears" - ], - [ - "▁year", - "s" - ], - [ - "▁ye", - "ars" - ], - [ - "▁or", - "iginal" - ], - [ - "▁orig", - "inal" - ], - [ - "▁origin", - "al" - ], - [ - "▁", - "original" - ], - [ - "eg", - "a" - ], - [ - "e", - "ga" - ], - [ - "▁S", - "te" - ], - [ - "▁St", - "e" - ], - [ - "▁", - "Ste" - ], - [ - "▁se", - "ems" - ], - [ - "▁see", - "ms" - ], - [ - "▁seem", - "s" - ], - [ - "é", - "g" - ], - [ - "▁n", - "ext" - ], - [ - "▁ne", - "xt" - ], - [ - "▁", - "next" - ], - [ - "ed", - "er" - ], - [ - "ede", - "r" - ], - [ - "e", - "der" - ], - [ - "▁N", - "e" - ], - [ - "▁", - "Ne" - ], - [ - "av", - "as" - ], - [ - "ava", - "s" - ], - [ - "a", - "vas" - ], - [ - "ific", - "ation" - ], - [ - "ifi", - "cation" - ], - [ - "ifica", - "tion" - ], - [ - "Ex", - "ception" - ], - [ - "▁D", - "er" - ], - [ - "▁De", - "r" - ], - [ - "▁", - "Der" - ], - [ - "▁v", - "e" - ], - [ - "▁", - "ve" - ], - [ - "at", - "ic" - ], - [ - "ati", - "c" - ], - [ - "ha", - "t" - ], - [ - "h", - "at" - ], - [ - "br", - "ary" - ], - [ - "bra", - "ry" - ], - [ - "re", - "turn" - ], - [ - "ret", - "urn" - ], - [ - "ur", - "ch" - ], - [ - "is", - "ion" - ], - [ - "isi", - "on" - ], - [ - "m", - "i" - ], - [ - "oi", - "nt" - ], - [ - "oin", - "t" - ], - [ - "o", - "int" - ], - [ - "▁d", - "ay" - ], - [ - "▁da", - "y" - ], - [ - "▁", - "day" - ], - [ - "ic", - "tion" - ], - [ - "ict", - "ion" - ], - [ - "i", - "ction" - ], - [ - "á", - "l" - ], - [ - "▁é", - "s" - ], - [ - "▁", - "és" - ], - [ - "▁th", - "ough" - ], - [ - "▁thou", - "gh" - ], - [ - "▁", - "though" - ], - [ - "ac", - "tion" - ], - [ - "act", - "ion" - ], - [ - "a", - "ction" - ], - [ - "í", - "t" - ], - [ - "un", - "gen" - ], - [ - "ung", - "en" - ], - [ - "unge", - "n" - ], - [ - "ou", - "rs" - ], - [ - "our", - "s" - ], - [ - "o", - "urs" - ], - [ - "▁s", - "cript" - ], - [ - "▁scr", - "ipt" - ], - [ - "▁scri", - "pt" - ], - [ - "▁", - "script" - ], - [ - "▁in", - "formation" - ], - [ - "▁inform", - "ation" - ], - [ - "▁", - "information" - ], - [ - "▁mult", - "i" - ], - [ - "▁mul", - "ti" - ], - [ - "▁", - "multi" - ], - [ - "▁\\", - "\\" - ], - [ - "▁", - "\\\\" - ], - [ - "st", - "er" - ], - [ - "ste", - "r" - ], - [ - "s", - "ter" - ], - [ - "к", - "е" - ], - [ - "A", - "C" - ], - [ - "ci", - "es" - ], - [ - "cie", - "s" - ], - [ - "c", - "ies" - ], - [ - "▁dis", - "play" - ], - [ - "▁disp", - "lay" - ], - [ - "▁", - "display" - ], - [ - "om", - "an" - ], - [ - "oma", - "n" - ], - [ - "o", - "man" - ], - [ - "Tim", - "e" - ], - [ - "T", - "ime" - ], - [ - "iu", - "s" - ], - [ - "i", - "us" - ], - [ - "))", - ";" - ], - [ - ")", - ");" - ], - [ - "tr", - "e" - ], - [ - "t", - "re" - ], - [ - "▁l", - "im" - ], - [ - "▁li", - "m" - ], - [ - "▁", - "lim" - ], - [ - "at", - "ely" - ], - [ - "ate", - "ly" - ], - [ - "atel", - "y" - ], - [ - "é", - "d" - ], - [ - "is", - "te" - ], - [ - "ist", - "e" - ], - [ - "i", - "ste" - ], - [ - "▁с", - "а" - ], - [ - "▁", - "са" - ], - [ - "pos", - "t" - ], - [ - "po", - "st" - ], - [ - "p", - "ost" - ], - [ - "ue", - "l" - ], - [ - "u", - "el" - ], - [ - "im", - "g" - ], - [ - "▁", - "ч" - ], - [ - "ск", - "а" - ], - [ - "с", - "ка" - ], - [ - "el", - "d" - ], - [ - "e", - "ld" - ], - [ - "pp", - "er" - ], - [ - "ppe", - "r" - ], - [ - "p", - "per" - ], - [ - "ul", - "a" - ], - [ - "u", - "la" - ], - [ - "▁gener", - "al" - ], - [ - "▁gen", - "eral" - ], - [ - "▁gene", - "ral" - ], - [ - "▁", - "general" - ], - [ - "A", - "l" - ], - [ - "For", - "m" - ], - [ - "F", - "orm" - ], - [ - "▁u", - "pon" - ], - [ - "▁up", - "on" - ], - [ - "z", - "o" - ], - [ - "am", - "ente" - ], - [ - "ament", - "e" - ], - [ - "amen", - "te" - ], - [ - "a", - "mente" - ], - [ - "▁p", - "rom" - ], - [ - "▁pro", - "m" - ], - [ - "▁pr", - "om" - ], - [ - "▁", - "prom" - ], - [ - "▁", - "ü" - ], - [ - "le", - "x" - ], - [ - "l", - "ex" - ], - [ - "▁t", - "urn" - ], - [ - "▁tu", - "rn" - ], - [ - "▁tur", - "n" - ], - [ - "▁", - "turn" - ], - [ - "▁м", - "е" - ], - [ - "▁", - "ме" - ], - [ - "en", - "tion" - ], - [ - "ent", - "ion" - ], - [ - "enti", - "on" - ], - [ - "ле", - "н" - ], - [ - "л", - "ен" - ], - [ - "▁a", - "f" - ], - [ - "▁", - "af" - ], - [ - "ic", - "le" - ], - [ - "i", - "cle" - ], - [ - "ст", - "в" - ], - [ - "с", - "тв" - ], - [ - "▁F", - "il" - ], - [ - "▁", - "Fil" - ], - [ - "▁", - "Ф" - ], - [ - "ava", - "script" - ], - [ - "avas", - "cript" - ], - [ - "Ma", - "n" - ], - [ - "M", - "an" - ], - [ - "ar", - "a" - ], - [ - "a", - "ra" - ], - [ - "wa", - "re" - ], - [ - "war", - "e" - ], - [ - "w", - "are" - ], - [ - "al", - "ign" - ], - [ - "ali", - "gn" - ], - [ - "an", - "gle" - ], - [ - "ang", - "le" - ], - [ - "▁S", - "c" - ], - [ - "▁", - "Sc" - ], - [ - "un", - "ic" - ], - [ - "uni", - "c" - ], - [ - "u", - "nic" - ], - [ - "▁f", - "ran" - ], - [ - "▁fr", - "an" - ], - [ - "▁fra", - "n" - ], - [ - "▁", - "fran" - ], - [ - "U", - "n" - ], - [ - "z", - "i" - ], - [ - "me", - "t" - ], - [ - "m", - "et" - ], - [ - "Ad", - "d" - ], - [ - "A", - "dd" - ], - [ - "▁p", - "ub" - ], - [ - "▁pu", - "b" - ], - [ - "▁", - "pub" - ], - [ - "ко", - "в" - ], - [ - "к", - "ов" - ], - [ - "▁g", - "en" - ], - [ - "▁ge", - "n" - ], - [ - "▁", - "gen" - ], - [ - "▁p", - "od" - ], - [ - "▁po", - "d" - ], - [ - "▁", - "pod" - ], - [ - "▁s", - "um" - ], - [ - "▁su", - "m" - ], - [ - "▁", - "sum" - ], - [ - "▁h", - "aving" - ], - [ - "▁ha", - "ving" - ], - [ - "▁hav", - "ing" - ], - [ - "▁a", - "vec" - ], - [ - "▁av", - "ec" - ], - [ - "▁ave", - "c" - ], - [ - "s", - "l" - ], - [ - "▁f", - "ig" - ], - [ - "▁fi", - "g" - ], - [ - "▁", - "fig" - ], - [ - "▁R", - "es" - ], - [ - "▁Re", - "s" - ], - [ - "▁", - "Res" - ], - [ - "Dat", - "e" - ], - [ - "Da", - "te" - ], - [ - "D", - "ate" - ], - [ - "ul", - "es" - ], - [ - "ule", - "s" - ], - [ - "u", - "les" - ], - [ - "wi", - "th" - ], - [ - "w", - "ith" - ], - [ - "ски", - "й" - ], - [ - "с", - "кий" - ], - [ - "g", - "u" - ], - [ - "E", - "T" - ], - [ - "▁b", - "ro" - ], - [ - "▁br", - "o" - ], - [ - "▁", - "bro" - ], - [ - "ri", - "e" - ], - [ - "r", - "ie" - ], - [ - "ap", - "s" - ], - [ - "a", - "ps" - ], - [ - "en", - "ding" - ], - [ - "end", - "ing" - ], - [ - "endi", - "ng" - ], - [ - "ma", - "il" - ], - [ - "mai", - "l" - ], - [ - "m", - "ail" - ], - [ - "oo", - "k" - ], - [ - "o", - "ok" - ], - [ - "▁su", - "ccess" - ], - [ - "▁succ", - "ess" - ], - [ - "▁suc", - "cess" - ], - [ - "▁", - "success" - ], - [ - "ber", - "g" - ], - [ - "be", - "rg" - ], - [ - "b", - "erg" - ], - [ - "▁d", - "eb" - ], - [ - "▁de", - "b" - ], - [ - "▁", - "deb" - ], - [ - "el", - "ta" - ], - [ - "elt", - "a" - ], - [ - "()", - "`" - ], - [ - "(", - ")`" - ], - [ - "ent", - "ial" - ], - [ - "enti", - "al" - ], - [ - "fr", - "ame" - ], - [ - "fra", - "me" - ], - [ - "fram", - "e" - ], - [ - "f", - "rame" - ], - [ - "Ke", - "y" - ], - [ - "K", - "ey" - ], - [ - "in", - "n" - ], - [ - "i", - "nn" - ], - [ - "▁sim", - "ple" - ], - [ - "▁simp", - "le" - ], - [ - "▁simpl", - "e" - ], - [ - "▁", - "simple" - ], - [ - "iv", - "al" - ], - [ - "iva", - "l" - ], - [ - "i", - "val" - ], - [ - "▁c", - "are" - ], - [ - "▁car", - "e" - ], - [ - "▁ca", - "re" - ], - [ - "▁", - "care" - ], - [ - "▁W", - "eb" - ], - [ - "▁We", - "b" - ], - [ - "▁", - "Web" - ], - [ - "\")", - "." - ], - [ - "\"", - ")." - ], - [ - "><", - "/" - ], - [ - ">", - "" - ], - [ - "▁", - "/>" - ], - [ - "k", - "o" - ], - [ - "▁ex", - "per" - ], - [ - "▁exp", - "er" - ], - [ - "▁se", - "par" - ], - [ - "▁sep", - "ar" - ], - [ - "▁", - "separ" - ], - [ - "y", - "l" - ], - [ - "ou", - "rn" - ], - [ - "our", - "n" - ], - [ - "o", - "urn" - ], - [ - "▁d", - "ev" - ], - [ - "▁de", - "v" - ], - [ - "▁", - "dev" - ], - [ - "▁a", - "uch" - ], - [ - "▁au", - "ch" - ], - [ - "▁auc", - "h" - ], - [ - "▁", - "auch" - ], - [ - "▁b", - "lock" - ], - [ - "▁bl", - "ock" - ], - [ - "▁blo", - "ck" - ], - [ - "▁", - "block" - ], - [ - "bo", - "ok" - ], - [ - "b", - "ook" - ], - [ - "▁m", - "ap" - ], - [ - "▁ma", - "p" - ], - [ - "▁", - "map" - ], - [ - "il", - "la" - ], - [ - "ill", - "a" - ], - [ - "i", - "lla" - ], - [ - "▁com", - "put" - ], - [ - "▁comp", - "ut" - ], - [ - "▁", - "comput" - ], - [ - "▁s", - "pace" - ], - [ - "▁sp", - "ace" - ], - [ - "▁spac", - "e" - ], - [ - "▁", - "space" - ], - [ - "res", - "ult" - ], - [ - ")", - "}" - ], - [ - "▁e", - "cho" - ], - [ - "▁ec", - "ho" - ], - [ - "▁", - "echo" - ], - [ - "con", - "fig" - ], - [ - "conf", - "ig" - ], - [ - "h", - "i" - ], - [ - "▁lar", - "ge" - ], - [ - "▁larg", - "e" - ], - [ - "▁", - "large" - ], - [ - "▁w", - "idth" - ], - [ - "▁wid", - "th" - ], - [ - "▁", - "width" - ], - [ - "▁G", - "o" - ], - [ - "▁", - "Go" - ], - [ - "ma", - "t" - ], - [ - "m", - "at" - ], - [ - "▁d", - "iff" - ], - [ - "▁di", - "ff" - ], - [ - "▁dif", - "f" - ], - [ - "▁", - "diff" - ], - [ - "▁k", - "ind" - ], - [ - "▁ki", - "nd" - ], - [ - "▁kin", - "d" - ], - [ - "▁", - "kind" - ], - [ - "an", - "ces" - ], - [ - "ance", - "s" - ], - [ - "anc", - "es" - ], - [ - "yn", - "am" - ], - [ - "yna", - "m" - ], - [ - "y", - "nam" - ], - [ - "▁col", - "or" - ], - [ - "▁co", - "lor" - ], - [ - "▁", - "color" - ], - [ - "In", - "t" - ], - [ - "I", - "nt" - ], - [ - "so", - "l" - ], - [ - "s", - "ol" - ], - [ - "▁p", - "i" - ], - [ - "▁", - "pi" - ], - [ - "▁char", - "acter" - ], - [ - "▁charact", - "er" - ], - [ - "▁", - "character" - ], - [ - "om", - "ent" - ], - [ - "ome", - "nt" - ], - [ - "omen", - "t" - ], - [ - "o", - "ment" - ], - [ - "▁res", - "ponse" - ], - [ - "▁respons", - "e" - ], - [ - "▁", - "response" - ], - [ - "ig", - "ma" - ], - [ - "ward", - "s" - ], - [ - "war", - "ds" - ], - [ - "w", - "ards" - ], - [ - "ar", - "row" - ], - [ - "arr", - "ow" - ], - [ - "с", - "у" - ], - [ - "ti", - "es" - ], - [ - "t", - "ies" - ], - [ - "▁ü", - "ber" - ], - [ - "▁", - "über" - ], - [ - "Im", - "age" - ], - [ - "y", - "d" - ], - [ - "▁п", - "ере" - ], - [ - "▁пер", - "е" - ], - [ - "▁пе", - "ре" - ], - [ - "▁", - "пере" - ], - [ - "▁n", - "ode" - ], - [ - "▁no", - "de" - ], - [ - "▁nod", - "e" - ], - [ - "▁", - "node" - ], - [ - "▁it", - "em" - ], - [ - "▁i", - "tem" - ], - [ - "▁", - "item" - ], - [ - "ach", - "ine" - ], - [ - "achi", - "ne" - ], - [ - "im", - "a" - ], - [ - "i", - "ma" - ], - [ - "▁v", - "a" - ], - [ - "▁", - "va" - ], - [ - "▁appro", - "ach" - ], - [ - "▁w", - "er" - ], - [ - "▁we", - "r" - ], - [ - "▁", - "wer" - ], - [ - "▁ч", - "е" - ], - [ - "▁", - "че" - ], - [ - "O", - "n" - ], - [ - "ol", - "low" - ], - [ - "oll", - "ow" - ], - [ - "он", - "а" - ], - [ - "о", - "на" - ], - [ - "ct", - "ed" - ], - [ - "c", - "ted" - ], - [ - "ur", - "ed" - ], - [ - "ure", - "d" - ], - [ - "u", - "red" - ], - [ - "Cont", - "roller" - ], - [ - "Control", - "ler" - ], - [ - "li", - "ed" - ], - [ - "lie", - "d" - ], - [ - "l", - "ied" - ], - [ - "▁j", - "o" - ], - [ - "▁", - "jo" - ], - [ - "▁d", - "al" - ], - [ - "▁da", - "l" - ], - [ - "▁", - "dal" - ], - [ - "un", - "k" - ], - [ - "▁", - "î" - ], - [ - "st", - "art" - ], - [ - "sta", - "rt" - ], - [ - "star", - "t" - ], - [ - "ol", - "a" - ], - [ - "o", - "la" - ], - [ - "▁com", - "pon" - ], - [ - "▁comp", - "on" - ], - [ - "I", - "C" - ], - [ - "bi", - "t" - ], - [ - "b", - "it" - ], - [ - "▁b", - "ase" - ], - [ - "▁bas", - "e" - ], - [ - "▁ba", - "se" - ], - [ - "▁", - "base" - ], - [ - "п", - "у" - ], - [ - "▁id", - "ea" - ], - [ - "▁ide", - "a" - ], - [ - "▁", - "idea" - ], - [ - "▁d", - "ire" - ], - [ - "▁di", - "re" - ], - [ - "▁dir", - "e" - ], - [ - "▁", - "dire" - ], - [ - "▁r", - "ad" - ], - [ - "▁ra", - "d" - ], - [ - "▁", - "rad" - ], - [ - "gr", - "oup" - ], - [ - "gro", - "up" - ], - [ - "▁W", - "ith" - ], - [ - "▁Wi", - "th" - ], - [ - "▁Wit", - "h" - ], - [ - "▁", - "With" - ], - [ - "ser", - "ver" - ], - [ - "serv", - "er" - ], - [ - "serve", - "r" - ], - [ - "si", - "de" - ], - [ - "s", - "ide" - ], - [ - "si", - "ng" - ], - [ - "sin", - "g" - ], - [ - "s", - "ing" - ], - [ - "▁d", - "ies" - ], - [ - "▁di", - "es" - ], - [ - "▁die", - "s" - ], - [ - "▁n", - "ear" - ], - [ - "▁ne", - "ar" - ], - [ - "▁", - "near" - ], - [ - "▁v", - "oor" - ], - [ - "▁vo", - "or" - ], - [ - "▁", - "voor" - ], - [ - "▁arg", - "ument" - ], - [ - "▁", - "argument" - ], - [ - "▁}", - "," - ], - [ - "▁", - "}," - ], - [ - "▁l", - "and" - ], - [ - "▁la", - "nd" - ], - [ - "▁lan", - "d" - ], - [ - "▁", - "land" - ], - [ - "▁n", - "ames" - ], - [ - "▁name", - "s" - ], - [ - "▁na", - "mes" - ], - [ - "▁nam", - "es" - ], - [ - "▁", - "names" - ], - [ - "▁o", - "ption" - ], - [ - "▁op", - "tion" - ], - [ - "▁opt", - "ion" - ], - [ - "▁", - "option" - ], - [ - "ith", - "ub" - ], - [ - "pp", - "ed" - ], - [ - "ppe", - "d" - ], - [ - "p", - "ped" - ], - [ - "au", - "g" - ], - [ - "a", - "ug" - ], - [ - "▁l", - "inks" - ], - [ - "▁link", - "s" - ], - [ - "▁lin", - "ks" - ], - [ - "▁", - "links" - ], - [ - "▁f", - "ull" - ], - [ - "▁fu", - "ll" - ], - [ - "▁ful", - "l" - ], - [ - "▁", - "full" - ], - [ - "▁s", - "itu" - ], - [ - "▁si", - "tu" - ], - [ - "▁sit", - "u" - ], - [ - "▁con", - "sole" - ], - [ - "▁cons", - "ole" - ], - [ - "▁", - "console" - ], - [ - "▁e", - "tc" - ], - [ - "▁et", - "c" - ], - [ - "▁", - "etc" - ], - [ - "au", - "x" - ], - [ - "a", - "ux" - ], - [ - "▁C", - "or" - ], - [ - "▁Co", - "r" - ], - [ - "▁", - "Cor" - ], - [ - "icro", - "soft" - ], - [ - "▁c", - "ame" - ], - [ - "▁cam", - "e" - ], - [ - "▁ca", - "me" - ], - [ - "lo", - "cal" - ], - [ - "loc", - "al" - ], - [ - "l", - "ocal" - ], - [ - "▁k", - "nown" - ], - [ - "▁kn", - "own" - ], - [ - "▁know", - "n" - ], - [ - "▁", - "known" - ], - [ - "▁multi", - "ple" - ], - [ - "▁multip", - "le" - ], - [ - "▁", - "multiple" - ], - [ - "angu", - "age" - ], - [ - "▁t", - "otal" - ], - [ - "▁to", - "tal" - ], - [ - "▁tot", - "al" - ], - [ - "▁", - "total" - ], - [ - "ol", - "ogy" - ], - [ - "olog", - "y" - ], - [ - "olo", - "gy" - ], - [ - "ä", - "t" - ], - [ - "▁", - "Х" - ], - [ - "▁f", - "re" - ], - [ - "▁fr", - "e" - ], - [ - "▁", - "fre" - ], - [ - "▁t", - "en" - ], - [ - "▁te", - "n" - ], - [ - "▁", - "ten" - ], - [ - "ide", - "o" - ], - [ - "▁b", - "es" - ], - [ - "▁be", - "s" - ], - [ - "▁", - "bes" - ], - [ - "tr", - "ue" - ], - [ - "Qu", - "ery" - ], - [ - "Que", - "ry" - ], - [ - "om", - "m" - ], - [ - "o", - "mm" - ], - [ - "▁A", - "rt" - ], - [ - "▁Ar", - "t" - ], - [ - "▁", - "Art" - ], - [ - "▁ke", - "ep" - ], - [ - "▁", - "keep" - ], - [ - "▁Un", - "iversity" - ], - [ - "▁Univers", - "ity" - ], - [ - "re", - "ate" - ], - [ - "rea", - "te" - ], - [ - "pp", - "ort" - ], - [ - "ppo", - "rt" - ], - [ - "p", - "port" - ], - [ - "▁p", - "ython" - ], - [ - "▁", - "python" - ], - [ - "tr", - "a" - ], - [ - "t", - "ra" - ], - [ - "ect", - "or" - ], - [ - "ec", - "tor" - ], - [ - "e", - "ctor" - ], - [ - "р", - "і" - ], - [ - "op", - "h" - ], - [ - "o", - "ph" - ], - [ - "▁c", - "onc" - ], - [ - "▁con", - "c" - ], - [ - "▁co", - "nc" - ], - [ - "▁f", - "our" - ], - [ - "▁fo", - "ur" - ], - [ - "▁fou", - "r" - ], - [ - "▁", - "four" - ], - [ - "vi", - "ron" - ], - [ - "vir", - "on" - ], - [ - "▁v", - "ia" - ], - [ - "▁vi", - "a" - ], - [ - "▁", - "via" - ], - [ - "?", - "\"" - ], - [ - "im", - "age" - ], - [ - "ima", - "ge" - ], - [ - "ol", - "l" - ], - [ - "o", - "ll" - ], - [ - "ны", - "е" - ], - [ - "н", - "ые" - ], - [ - "▁con", - "text" - ], - [ - "▁cont", - "ext" - ], - [ - "▁conte", - "xt" - ], - [ - "▁", - "context" - ], - [ - "▁s", - "em" - ], - [ - "▁se", - "m" - ], - [ - "▁", - "sem" - ], - [ - ".", - "_" - ], - [ - "▁e", - "ng" - ], - [ - "▁en", - "g" - ], - [ - "▁", - "eng" - ], - [ - "ma", - "r" - ], - [ - "m", - "ar" - ], - [ - "A", - "D" - ], - [ - "▁m", - "or" - ], - [ - "▁mo", - "r" - ], - [ - "▁", - "mor" - ], - [ - "▁C", - "al" - ], - [ - "▁Ca", - "l" - ], - [ - "▁", - "Cal" - ], - [ - "▁c", - "ell" - ], - [ - "▁ce", - "ll" - ], - [ - "▁cel", - "l" - ], - [ - "▁", - "cell" - ], - [ - "im", - "al" - ], - [ - "ima", - "l" - ], - [ - "i", - "mal" - ], - [ - "AT", - "E" - ], - [ - "A", - "TE" - ], - [ - "▁in", - "f" - ], - [ - "▁", - "inf" - ], - [ - "ö", - "n" - ], - [ - "uf", - "fer" - ], - [ - "uff", - "er" - ], - [ - "s", - "q" - ], - [ - "..", - ".." - ], - [ - "...", - "." - ], - [ - ".", - "..." - ], - [ - "▁z", - "ur" - ], - [ - "▁zu", - "r" - ], - [ - "W", - "ith" - ], - [ - "ра", - "н" - ], - [ - "р", - "ан" - ], - [ - "ch", - "n" - ], - [ - "c", - "hn" - ], - [ - "▁d", - "oor" - ], - [ - "▁do", - "or" - ], - [ - "▁", - "door" - ], - [ - "cont", - "ent" - ], - [ - "▁m", - "iss" - ], - [ - "▁mi", - "ss" - ], - [ - "▁mis", - "s" - ], - [ - "▁", - "miss" - ], - [ - "▁s", - "imp" - ], - [ - "▁sim", - "p" - ], - [ - "▁si", - "mp" - ], - [ - "▁", - "simp" - ], - [ - "á", - "r" - ], - [ - "ir", - "a" - ], - [ - "i", - "ra" - ], - [ - "▁h", - "at" - ], - [ - "▁ha", - "t" - ], - [ - "▁", - "hat" - ], - [ - "Te", - "st" - ], - [ - "T", - "est" - ], - [ - "▁c", - "ertain" - ], - [ - "▁cert", - "ain" - ], - [ - "▁cer", - "tain" - ], - [ - "▁", - "certain" - ], - [ - "N", - "S" - ], - [ - "▁c", - "ho" - ], - [ - "▁ch", - "o" - ], - [ - "▁", - "cho" - ], - [ - "▁ad", - "v" - ], - [ - "▁", - "adv" - ], - [ - "wh", - "ere" - ], - [ - "w", - "here" - ], - [ - "▁lo", - "oking" - ], - [ - "▁look", - "ing" - ], - [ - "▁", - "looking" - ], - [ - "▁t", - "imes" - ], - [ - "▁time", - "s" - ], - [ - "▁tim", - "es" - ], - [ - "▁ti", - "mes" - ], - [ - "▁", - "times" - ], - [ - "ни", - "х" - ], - [ - "н", - "их" - ], - [ - "ut", - "o" - ], - [ - "u", - "to" - ], - [ - "▁", - "É" - ], - [ - "ca", - "n" - ], - [ - "c", - "an" - ], - [ - "ho", - "st" - ], - [ - "hos", - "t" - ], - [ - "h", - "ost" - ], - [ - "▁(", - "*" - ], - [ - "▁", - "(*" - ], - [ - "lo", - "at" - ], - [ - "▁n", - "icht" - ], - [ - "▁ni", - "cht" - ], - [ - "▁nic", - "ht" - ], - [ - "▁nich", - "t" - ], - [ - "Fi", - "eld" - ], - [ - "F", - "ield" - ], - [ - "bu", - "rg" - ], - [ - "bur", - "g" - ], - [ - "b", - "urg" - ], - [ - "con", - "st" - ], - [ - "cons", - "t" - ], - [ - "ad", - "es" - ], - [ - "ade", - "s" - ], - [ - "a", - "des" - ], - [ - "▁M", - "us" - ], - [ - "▁Mu", - "s" - ], - [ - "▁", - "Mus" - ], - [ - "▁n", - "othing" - ], - [ - "▁not", - "hing" - ], - [ - "▁no", - "thing" - ], - [ - "▁", - "nothing" - ], - [ - "▁in", - "cre" - ], - [ - "▁inc", - "re" - ], - [ - "▁M", - "in" - ], - [ - "▁Mi", - "n" - ], - [ - "▁", - "Min" - ], - [ - "▁p", - "ower" - ], - [ - "▁po", - "wer" - ], - [ - "▁pow", - "er" - ], - [ - "▁", - "power" - ], - [ - "▁Amer", - "ican" - ], - [ - "▁America", - "n" - ], - [ - "▁", - "American" - ], - [ - "l", - "n" - ], - [ - "val", - "id" - ], - [ - "un", - "gs" - ], - [ - "ung", - "s" - ], - [ - "▁N", - "ational" - ], - [ - "▁Nat", - "ional" - ], - [ - "▁Nation", - "al" - ], - [ - "▁", - "National" - ], - [ - "▁S", - "an" - ], - [ - "▁Sa", - "n" - ], - [ - "▁", - "San" - ], - [ - "▁Y", - "ork" - ], - [ - "Re", - "quest" - ], - [ - "ch", - "ar" - ], - [ - "cha", - "r" - ], - [ - "c", - "har" - ], - [ - "▁Z", - "e" - ], - [ - "▁", - "Ze" - ], - [ - "but", - "ton" - ], - [ - "b", - "utton" - ], - [ - "▁a", - "lg" - ], - [ - "▁al", - "g" - ], - [ - "▁", - "alg" - ], - [ - "SO", - "N" - ], - [ - "S", - "ON" - ], - [ - "▁a", - "p" - ], - [ - "▁", - "ap" - ], - [ - "uf", - "f" - ], - [ - "u", - "ff" - ], - [ - "ab", - "ility" - ], - [ - "abil", - "ity" - ], - [ - "е", - "м" - ], - [ - "▁any", - "thing" - ], - [ - "el", - "a" - ], - [ - "e", - "la" - ], - [ - "()", - ")" - ], - [ - "(", - "))" - ], - [ - "б", - "а" - ], - [ - "amp", - "ion" - ], - [ - "ampio", - "n" - ], - [ - "▁p", - "ot" - ], - [ - "▁po", - "t" - ], - [ - "▁", - "pot" - ], - [ - "▁f", - "ut" - ], - [ - "▁fu", - "t" - ], - [ - "ail", - "able" - ], - [ - "▁p", - "rop" - ], - [ - "▁pro", - "p" - ], - [ - "▁pr", - "op" - ], - [ - "▁", - "prop" - ], - [ - "\"", - "]" - ], - [ - "▁l", - "ess" - ], - [ - "▁le", - "ss" - ], - [ - "▁les", - "s" - ], - [ - "▁", - "less" - ], - [ - "la", - "g" - ], - [ - "l", - "ag" - ], - [ - "▁A", - "ugust" - ], - [ - "▁Aug", - "ust" - ], - [ - "▁", - "August" - ], - [ - "I", - "t" - ], - [ - "▁p", - "lease" - ], - [ - "▁ple", - "ase" - ], - [ - "▁st", - "yle" - ], - [ - "▁sty", - "le" - ], - [ - "▁", - "style" - ], - [ - "▁Al", - "so" - ], - [ - "▁Als", - "o" - ], - [ - "▁", - "Also" - ], - [ - "b", - "t" - ], - [ - "▁pro", - "bably" - ], - [ - "▁prob", - "ably" - ], - [ - "▁O", - "ne" - ], - [ - "▁On", - "e" - ], - [ - "▁", - "One" - ], - [ - "▁p", - "oss" - ], - [ - "▁po", - "ss" - ], - [ - "▁pos", - "s" - ], - [ - "▁", - "poss" - ], - [ - "U", - "I" - ], - [ - "ui", - "t" - ], - [ - "u", - "it" - ], - [ - "▁W", - "est" - ], - [ - "▁We", - "st" - ], - [ - "▁Wes", - "t" - ], - [ - "▁", - "West" - ], - [ - "h", - "n" - ], - [ - "+", - "\\" - ], - [ - "But", - "ton" - ], - [ - "Butt", - "on" - ], - [ - "B", - "utton" - ], - [ - "js", - "on" - ], - [ - "j", - "son" - ], - [ - "er", - "r" - ], - [ - "e", - "rr" - ], - [ - "ra", - "me" - ], - [ - "ram", - "e" - ], - [ - "r", - "ame" - ], - [ - "do", - "m" - ], - [ - "d", - "om" - ], - [ - "il", - "on" - ], - [ - "ilo", - "n" - ], - [ - "i", - "lon" - ], - [ - "al", - "f" - ], - [ - "▁c", - "lient" - ], - [ - "▁cl", - "ient" - ], - [ - "▁cli", - "ent" - ], - [ - "▁", - "client" - ], - [ - "▁cont", - "inu" - ], - [ - "▁contin", - "u" - ], - [ - "▁", - "continu" - ], - [ - "x", - "ml" - ], - [ - "pe", - "c" - ], - [ - "p", - "ec" - ], - [ - "ad", - "or" - ], - [ - "ado", - "r" - ], - [ - "a", - "dor" - ], - [ - "l", - "s" - ], - [ - "▁how", - "ever" - ], - [ - "▁A", - "ny" - ], - [ - "▁An", - "y" - ], - [ - "▁", - "Any" - ], - [ - "än", - "d" - ], - [ - "ä", - "nd" - ], - [ - "math", - "rm" - ], - [ - "▁u", - "rl" - ], - [ - "▁ur", - "l" - ], - [ - "▁", - "url" - ], - [ - "▁b", - "ook" - ], - [ - "▁bo", - "ok" - ], - [ - "▁", - "book" - ], - [ - "▁g", - "l" - ], - [ - "▁", - "gl" - ], - [ - "iv", - "es" - ], - [ - "ive", - "s" - ], - [ - "i", - "ves" - ], - [ - "g", - "i" - ], - [ - "▁t", - "ro" - ], - [ - "▁tr", - "o" - ], - [ - "▁U", - "S" - ], - [ - "▁", - "US" - ], - [ - "po", - "int" - ], - [ - "p", - "oint" - ], - [ - "op", - "en" - ], - [ - "ope", - "n" - ], - [ - "o", - "pen" - ], - [ - "▁c", - "ur" - ], - [ - "▁cu", - "r" - ], - [ - "▁", - "cur" - ], - [ - "▁e", - "ra" - ], - [ - "▁er", - "a" - ], - [ - "▁", - "era" - ], - [ - "▁part", - "icular" - ], - [ - "▁partic", - "ular" - ], - [ - "▁particul", - "ar" - ], - [ - "▁parti", - "cular" - ], - [ - "▁H", - "T" - ], - [ - "▁", - "HT" - ], - [ - "oo", - "t" - ], - [ - "o", - "ot" - ], - [ - "el", - "lo" - ], - [ - "ell", - "o" - ], - [ - "lo", - "bal" - ], - [ - "lob", - "al" - ], - [ - "▁a", - "ction" - ], - [ - "▁act", - "ion" - ], - [ - "▁ac", - "tion" - ], - [ - "▁", - "action" - ], - [ - "▁I", - "nt" - ], - [ - "▁In", - "t" - ], - [ - "▁", - "Int" - ], - [ - "▁in", - "clude" - ], - [ - "▁incl", - "ude" - ], - [ - "▁includ", - "e" - ], - [ - "▁inclu", - "de" - ], - [ - "▁", - "include" - ], - [ - "▁el", - "ements" - ], - [ - "▁element", - "s" - ], - [ - "▁ele", - "ments" - ], - [ - "▁elem", - "ents" - ], - [ - "▁", - "elements" - ], - [ - "на", - "я" - ], - [ - "ar", - "ds" - ], - [ - "ard", - "s" - ], - [ - "▁B", - "l" - ], - [ - "▁", - "Bl" - ], - [ - "▁h", - "um" - ], - [ - "▁hu", - "m" - ], - [ - "▁", - "hum" - ], - [ - "fr", - "om" - ], - [ - "f", - "rom" - ], - [ - "ch", - "ange" - ], - [ - "chan", - "ge" - ], - [ - "▁function", - "s" - ], - [ - "▁fun", - "ctions" - ], - [ - "▁", - "functions" - ], - [ - "he", - "n" - ], - [ - "h", - "en" - ], - [ - "Ser", - "vice" - ], - [ - "Serv", - "ice" - ], - [ - "▁he", - "ight" - ], - [ - "▁", - "height" - ], - [ - "▁L", - "and" - ], - [ - "▁La", - "nd" - ], - [ - "▁Lan", - "d" - ], - [ - "▁", - "Land" - ], - [ - "ia", - "s" - ], - [ - "i", - "as" - ], - [ - "g", - "s" - ], - [ - "ió", - "n" - ], - [ - "i", - "ón" - ], - [ - "ло", - "в" - ], - [ - "л", - "ов" - ], - [ - "no", - "de" - ], - [ - "n", - "ode" - ], - [ - ".", - "”" - ], - [ - "ha", - "nd" - ], - [ - "han", - "d" - ], - [ - "h", - "and" - ], - [ - "▁б", - "у" - ], - [ - "▁", - "бу" - ], - [ - "▁a", - "mb" - ], - [ - "▁am", - "b" - ], - [ - "▁", - "amb" - ], - [ - "▁L", - "u" - ], - [ - "▁", - "Lu" - ], - [ - "▁th", - "row" - ], - [ - "▁thr", - "ow" - ], - [ - "▁thro", - "w" - ], - [ - "▁", - "throw" - ], - [ - "▁m", - "ot" - ], - [ - "▁mo", - "t" - ], - [ - "▁", - "mot" - ], - [ - "▁A", - "ct" - ], - [ - "▁Ac", - "t" - ], - [ - "▁", - "Act" - ], - [ - "▁w", - "orld" - ], - [ - "▁wor", - "ld" - ], - [ - "▁", - "world" - ], - [ - "_", - "\\" - ], - [ - "ba", - "se" - ], - [ - "bas", - "e" - ], - [ - "b", - "ase" - ], - [ - "▁C", - "o" - ], - [ - "▁", - "Co" - ], - [ - "▁ar", - "ch" - ], - [ - "▁arc", - "h" - ], - [ - "▁", - "arch" - ], - [ - "▁##", - "##" - ], - [ - "▁###", - "#" - ], - [ - "▁", - "####" - ], - [ - "ge", - "d" - ], - [ - "g", - "ed" - ], - [ - "pr", - "il" - ], - [ - "p", - "ril" - ], - [ - "ol", - "der" - ], - [ - "old", - "er" - ], - [ - "o", - "lder" - ], - [ - "Mod", - "el" - ], - [ - "Mode", - "l" - ], - [ - "Mo", - "del" - ], - [ - "M", - "odel" - ], - [ - "▁sever", - "al" - ], - [ - "li", - "e" - ], - [ - "l", - "ie" - ], - [ - "che", - "ck" - ], - [ - "c", - "heck" - ], - [ - "]", - "{" - ], - [ - "con", - "s" - ], - [ - "co", - "ns" - ], - [ - "c", - "ons" - ], - [ - "▁T", - "ra" - ], - [ - "▁Tr", - "a" - ], - [ - "▁", - "Tra" - ], - [ - "he", - "ck" - ], - [ - "▁l", - "east" - ], - [ - "▁le", - "ast" - ], - [ - "do", - "wn" - ], - [ - "d", - "own" - ], - [ - "eb", - "ru" - ], - [ - "e", - "bru" - ], - [ - "De", - "f" - ], - [ - "D", - "ef" - ], - [ - "par", - "am" - ], - [ - "pa", - "ram" - ], - [ - "para", - "m" - ], - [ - "p", - "aram" - ], - [ - "is", - "cher" - ], - [ - "isch", - "er" - ], - [ - "ische", - "r" - ], - [ - "isc", - "her" - ], - [ - "i", - "scher" - ], - [ - "▁c", - "as" - ], - [ - "▁ca", - "s" - ], - [ - "▁", - "cas" - ], - [ - "C", - "H" - ], - [ - "▁add", - "ress" - ], - [ - "▁addr", - "ess" - ], - [ - "▁", - "address" - ], - [ - "▁ра", - "з" - ], - [ - "▁", - "раз" - ], - [ - "uf", - "en" - ], - [ - "ufe", - "n" - ], - [ - "u", - "fen" - ], - [ - "ur", - "ope" - ], - [ - "uro", - "pe" - ], - [ - "urop", - "e" - ], - [ - "е", - "й" - ], - [ - "▁b", - "ound" - ], - [ - "▁bo", - "und" - ], - [ - "▁bou", - "nd" - ], - [ - "▁", - "bound" - ], - [ - "C", - "O" - ], - [ - "▁A", - "ng" - ], - [ - "▁An", - "g" - ], - [ - "▁", - "Ang" - ], - [ - "▁M", - "a" - ], - [ - "▁", - "Ma" - ], - [ - "In", - "dex" - ], - [ - "Ind", - "ex" - ], - [ - "co", - "re" - ], - [ - "cor", - "e" - ], - [ - "c", - "ore" - ], - [ - "ou", - "ch" - ], - [ - "ouc", - "h" - ], - [ - "o", - "uch" - ], - [ - "at", - "abase" - ], - [ - "ata", - "base" - ], - [ - "rib", - "ution" - ], - [ - "ribu", - "tion" - ], - [ - "doc", - "ument" - ], - [ - "d", - "ocument" - ], - [ - "L", - "e" - ], - [ - "}_", - "{" - ], - [ - "}", - "_{" - ], - [ - "ve", - "rn" - ], - [ - "ver", - "n" - ], - [ - "v", - "ern" - ], - [ - "▁stat", - "ement" - ], - [ - "▁state", - "ment" - ], - [ - "▁", - "statement" - ], - [ - "▁B", - "rit" - ], - [ - "▁Br", - "it" - ], - [ - "on", - "o" - ], - [ - "o", - "no" - ], - [ - "ps", - "ilon" - ], - [ - "psi", - "lon" - ], - [ - "▁le", - "vel" - ], - [ - "▁lev", - "el" - ], - [ - "▁", - "level" - ], - [ - "▁pro", - "duct" - ], - [ - "▁produ", - "ct" - ], - [ - "▁prod", - "uct" - ], - [ - "▁", - "product" - ], - [ - "I", - "S" - ], - [ - "▁c", - "ourse" - ], - [ - "▁cour", - "se" - ], - [ - "▁cours", - "e" - ], - [ - "▁", - "course" - ], - [ - "▁M", - "r" - ], - [ - "▁", - "Mr" - ], - [ - ">", - "\r" - ], - [ - "▁back", - "ground" - ], - [ - "▁", - "background" - ], - [ - "▁re", - "t" - ], - [ - "▁r", - "et" - ], - [ - "▁", - "ret" - ], - [ - "er", - "ing" - ], - [ - "eri", - "ng" - ], - [ - "e", - "ring" - ], - [ - "mo", - "st" - ], - [ - "mos", - "t" - ], - [ - "m", - "ost" - ], - [ - "сь", - "ко" - ], - [ - "ськ", - "о" - ], - [ - "▁th", - "read" - ], - [ - "▁thr", - "ead" - ], - [ - "▁thre", - "ad" - ], - [ - "▁", - "thread" - ], - [ - "it", - "ional" - ], - [ - "ition", - "al" - ], - [ - "iti", - "onal" - ], - [ - "it", - "es" - ], - [ - "ite", - "s" - ], - [ - "i", - "tes" - ], - [ - "P", - "l" - ], - [ - "▁d", - "os" - ], - [ - "▁do", - "s" - ], - [ - "g", - "a" - ], - [ - "da", - "y" - ], - [ - "d", - "ay" - ], - [ - "▁G", - "ener" - ], - [ - "▁Ge", - "ner" - ], - [ - "▁Gen", - "er" - ], - [ - "▁Gene", - "r" - ], - [ - "▁", - "Gener" - ], - [ - "▁t", - "w" - ], - [ - "▁", - "tw" - ], - [ - "A", - "d" - ], - [ - "\">", - "<" - ], - [ - "\"", - "><" - ], - [ - "▁(", - "$" - ], - [ - "▁", - "($" - ], - [ - "▁m", - "oment" - ], - [ - "▁mo", - "ment" - ], - [ - "▁mom", - "ent" - ], - [ - "tit", - "le" - ], - [ - "t", - "itle" - ], - [ - "cre", - "ate" - ], - [ - "c", - "reate" - ], - [ - "vers", - "ion" - ], - [ - "v", - "ersion" - ], - [ - "Man", - "ager" - ], - [ - "▁f", - "ur" - ], - [ - "▁fu", - "r" - ], - [ - "▁", - "fur" - ], - [ - "pp", - "ing" - ], - [ - "ppi", - "ng" - ], - [ - "p", - "ping" - ], - [ - "ij", - "n" - ], - [ - "о", - "с" - ], - [ - "▁r", - "ather" - ], - [ - "▁ra", - "ther" - ], - [ - "▁rat", - "her" - ], - [ - "pt", - "ember" - ], - [ - "O", - "S" - ], - [ - "▁s", - "ite" - ], - [ - "▁si", - "te" - ], - [ - "▁sit", - "e" - ], - [ - "▁", - "site" - ], - [ - "▁c", - "aus" - ], - [ - "▁ca", - "us" - ], - [ - "an", - "i" - ], - [ - "a", - "ni" - ], - [ - "▁h", - "ome" - ], - [ - "▁hom", - "e" - ], - [ - "▁ho", - "me" - ], - [ - "▁", - "home" - ], - [ - "м", - "і" - ], - [ - "▁sh", - "ort" - ], - [ - "▁sho", - "rt" - ], - [ - "▁", - "short" - ], - [ - "p", - "a" - ], - [ - "▁l", - "ead" - ], - [ - "▁le", - "ad" - ], - [ - "is", - "hed" - ], - [ - "ish", - "ed" - ], - [ - "ci", - "ng" - ], - [ - "cin", - "g" - ], - [ - "c", - "ing" - ], - [ - "or", - "ding" - ], - [ - "ord", - "ing" - ], - [ - "ordin", - "g" - ], - [ - "▁p", - "rote" - ], - [ - "▁pro", - "te" - ], - [ - "▁pr", - "ote" - ], - [ - "▁prot", - "e" - ], - [ - "▁", - "prote" - ], - [ - "с", - "ле" - ], - [ - "LE", - "CT" - ], - [ - "L", - "ECT" - ], - [ - "▁di", - "dn" - ], - [ - "▁did", - "n" - ], - [ - "pos", - "ition" - ], - [ - "p", - "osition" - ], - [ - "\",", - "\"" - ], - [ - "\"", - ",\"" - ], - [ - "()", - "," - ], - [ - "(", - ")," - ], - [ - "tr", - "ans" - ], - [ - "tra", - "ns" - ], - [ - "▁l", - "ot" - ], - [ - "▁lo", - "t" - ], - [ - "▁", - "lot" - ], - [ - "▁о", - "д" - ], - [ - "▁", - "од" - ], - [ - "A", - "S" - ], - [ - "▁s", - "at" - ], - [ - "▁sa", - "t" - ], - [ - "▁po", - "ints" - ], - [ - "▁point", - "s" - ], - [ - "▁", - "points" - ], - [ - "g", - "ithub" - ], - [ - "st", - "yle" - ], - [ - "sty", - "le" - ], - [ - "▁го", - "ду" - ], - [ - "▁год", - "у" - ], - [ - "▁D", - "is" - ], - [ - "▁Di", - "s" - ], - [ - "▁", - "Dis" - ], - [ - "pon", - "ent" - ], - [ - "om", - "et" - ], - [ - "ome", - "t" - ], - [ - "o", - "met" - ], - [ - "ze", - "r" - ], - [ - "z", - "er" - ], - [ - "UL", - "L" - ], - [ - "U", - "LL" - ], - [ - "▁p", - "a" - ], - [ - "▁", - "pa" - ], - [ - "A", - "P" - ], - [ - "ac", - "es" - ], - [ - "ace", - "s" - ], - [ - "a", - "ces" - ], - [ - "▁Un", - "ited" - ], - [ - "▁Unit", - "ed" - ], - [ - "am", - "a" - ], - [ - "a", - "ma" - ], - [ - "et", - "y" - ], - [ - "e", - "ty" - ], - [ - "Col", - "or" - ], - [ - "Co", - "lor" - ], - [ - "▁en", - "ough" - ], - [ - "U", - "S" - ], - [ - "▁l", - "ength" - ], - [ - "▁leng", - "th" - ], - [ - "▁", - "length" - ], - [ - "()", - ");" - ], - [ - "())", - ";" - ], - [ - "(", - "));" - ], - [ - "^{", - "\\" - ], - [ - "^", - "{\\" - ], - [ - "ft", - "y" - ], - [ - "f", - "ty" - ], - [ - "Bo", - "x" - ], - [ - "B", - "ox" - ], - [ - "ap", - "ter" - ], - [ - "apt", - "er" - ], - [ - "▁comp", - "let" - ], - [ - "▁comple", - "t" - ], - [ - "▁compl", - "et" - ], - [ - "ни", - "к" - ], - [ - "ma", - "x" - ], - [ - "m", - "ax" - ], - [ - "ob", - "ject" - ], - [ - "obj", - "ect" - ], - [ - "o", - "bject" - ], - [ - "(", - "{" - ], - [ - "img", - "ur" - ], - [ - "it", - "ive" - ], - [ - "iti", - "ve" - ], - [ - "un", - "ch" - ], - [ - "unc", - "h" - ], - [ - "▁S", - "ub" - ], - [ - "▁Su", - "b" - ], - [ - "▁", - "Sub" - ], - [ - "en", - "de" - ], - [ - "end", - "e" - ], - [ - "e", - "nde" - ], - [ - "г", - "у" - ], - [ - "ateg", - "ory" - ], - [ - "ategor", - "y" - ], - [ - "т", - "ы" - ], - [ - "ia", - "no" - ], - [ - "ian", - "o" - ], - [ - "i", - "ano" - ], - [ - "▁u", - "pd" - ], - [ - "▁up", - "d" - ], - [ - "▁A", - "ust" - ], - [ - "▁Aus", - "t" - ], - [ - "▁Au", - "st" - ], - [ - "}{", - "\\" - ], - [ - "}", - "{\\" - ], - [ - "to", - "p" - ], - [ - "t", - "op" - ], - [ - "la", - "s" - ], - [ - "l", - "as" - ], - [ - "pi", - "s" - ], - [ - "p", - "is" - ], - [ - "in", - "ess" - ], - [ - "ine", - "ss" - ], - [ - "ines", - "s" - ], - [ - "i", - "ness" - ], - [ - "▁{", - "\r" - ], - [ - "▁", - "{\r" - ], - [ - "▁", - "Е" - ], - [ - "G", - "r" - ], - [ - "▁A", - "S" - ], - [ - "▁", - "AS" - ], - [ - "▁в", - "е" - ], - [ - "▁", - "ве" - ], - [ - "th", - "ers" - ], - [ - "ther", - "s" - ], - [ - "the", - "rs" - ], - [ - "▁d", - "efined" - ], - [ - "▁def", - "ined" - ], - [ - "▁define", - "d" - ], - [ - "▁defin", - "ed" - ], - [ - "▁", - "defined" - ], - [ - "az", - "ione" - ], - [ - "azi", - "one" - ], - [ - "a", - "zione" - ], - [ - "▁o", - "ffic" - ], - [ - "▁of", - "fic" - ], - [ - "▁off", - "ic" - ], - [ - "▁au", - "tom" - ], - [ - "▁aut", - "om" - ], - [ - "▁auto", - "m" - ], - [ - "▁", - "autom" - ], - [ - "ü", - "n" - ], - [ - "▁b", - "row" - ], - [ - "▁br", - "ow" - ], - [ - "▁bro", - "w" - ], - [ - "▁", - "brow" - ], - [ - "▁s", - "erv" - ], - [ - "▁se", - "rv" - ], - [ - "▁ser", - "v" - ], - [ - "▁", - "serv" - ], - [ - "▁re", - "move" - ], - [ - "▁rem", - "ove" - ], - [ - "▁remov", - "e" - ], - [ - "▁", - "remove" - ], - [ - "ir", - "o" - ], - [ - "i", - "ro" - ], - [ - "▁B", - "ibli" - ], - [ - "▁Bib", - "li" - ], - [ - "E", - "D" - ], - [ - "▁w", - "hole" - ], - [ - "▁wh", - "ole" - ], - [ - "▁who", - "le" - ], - [ - "▁", - "ш" - ], - [ - "▁J", - "ava" - ], - [ - "▁Ja", - "va" - ], - [ - "▁", - "Java" - ], - [ - "▁z", - "um" - ], - [ - "▁zu", - "m" - ], - [ - "u", - "a" - ], - [ - "p", - "m" - ], - [ - "de", - "v" - ], - [ - "d", - "ev" - ], - [ - "к", - "ра" - ], - [ - "ol", - "ds" - ], - [ - "old", - "s" - ], - [ - "▁W", - "ar" - ], - [ - "▁Wa", - "r" - ], - [ - "ä", - "n" - ], - [ - "pa", - "ss" - ], - [ - "pas", - "s" - ], - [ - "p", - "ass" - ], - [ - "u", - "z" - ], - [ - "[", - "\"" - ], - [ - "▁t", - "ri" - ], - [ - "▁tr", - "i" - ], - [ - "▁", - "tri" - ], - [ - "is", - "ed" - ], - [ - "ise", - "d" - ], - [ - "i", - "sed" - ], - [ - "х", - "а" - ], - [ - "▁mem", - "ory" - ], - [ - "▁memor", - "y" - ], - [ - "▁", - "memory" - ], - [ - "▁P", - "ort" - ], - [ - "▁Po", - "rt" - ], - [ - "▁Por", - "t" - ], - [ - "▁", - "Port" - ], - [ - "op", - "er" - ], - [ - "ope", - "r" - ], - [ - "o", - "per" - ], - [ - "U", - "p" - ], - [ - "▁Th", - "ank" - ], - [ - "▁", - "Thank" - ], - [ - "▁M", - "ich" - ], - [ - "▁Mi", - "ch" - ], - [ - "▁Mic", - "h" - ], - [ - "▁", - "Mich" - ], - [ - "yc", - "h" - ], - [ - "y", - "ch" - ], - [ - "bo", - "ard" - ], - [ - "boa", - "rd" - ], - [ - "б", - "у" - ], - [ - "In", - "st" - ], - [ - "▁b", - "egin" - ], - [ - "▁be", - "gin" - ], - [ - "▁beg", - "in" - ], - [ - "▁", - "begin" - ], - [ - "in", - "ation" - ], - [ - "ina", - "tion" - ], - [ - "▁M", - "od" - ], - [ - "▁Mo", - "d" - ], - [ - "▁", - "Mod" - ], - [ - "_", - "," - ], - [ - "▁D", - "en" - ], - [ - "▁De", - "n" - ], - [ - "▁", - "Den" - ], - [ - "op", - "tion" - ], - [ - "opt", - "ion" - ], - [ - "o", - "ption" - ], - [ - "▁con", - "struct" - ], - [ - "▁const", - "ruct" - ], - [ - "▁constru", - "ct" - ], - [ - "▁", - "construct" - ], - [ - "▁J", - "ust" - ], - [ - "▁Ju", - "st" - ], - [ - "▁", - "Just" - ], - [ - "Ma", - "p" - ], - [ - "M", - "ap" - ], - [ - "ru", - "n" - ], - [ - "r", - "un" - ], - [ - "▁re", - "spect" - ], - [ - "▁res", - "pect" - ], - [ - "▁resp", - "ect" - ], - [ - "ha", - "m" - ], - [ - "h", - "am" - ], - [ - "ма", - "н" - ], - [ - "м", - "ан" - ], - [ - "im", - "edia" - ], - [ - "ime", - "dia" - ], - [ - "i", - "media" - ], - [ - "▁a", - "pply" - ], - [ - "▁app", - "ly" - ], - [ - "▁ap", - "ply" - ], - [ - "▁", - "apply" - ], - [ - "cri", - "ption" - ], - [ - "cript", - "ion" - ], - [ - "ma", - "in" - ], - [ - "mai", - "n" - ], - [ - "m", - "ain" - ], - [ - "▁К", - "а" - ], - [ - "▁", - "Ка" - ], - [ - "oi", - "d" - ], - [ - "o", - "id" - ], - [ - "Co", - "de" - ], - [ - "C", - "ode" - ], - [ - "}", - ";" - ], - [ - "In", - "fo" - ], - [ - "Inf", - "o" - ], - [ - "▁for", - "mat" - ], - [ - "▁form", - "at" - ], - [ - "▁forma", - "t" - ], - [ - "▁", - "format" - ], - [ - "Lo", - "g" - ], - [ - "L", - "og" - ], - [ - "▁с", - "у" - ], - [ - "▁", - "су" - ], - [ - "▁l", - "at" - ], - [ - "▁la", - "t" - ], - [ - "▁", - "lat" - ], - [ - "ut", - "or" - ], - [ - "uto", - "r" - ], - [ - "u", - "tor" - ], - [ - "▁re", - "ference" - ], - [ - "▁refer", - "ence" - ], - [ - "▁", - "reference" - ], - [ - "▁cal", - "cul" - ], - [ - "▁calc", - "ul" - ], - [ - "▁", - "calcul" - ], - [ - "on", - "n" - ], - [ - "o", - "nn" - ], - [ - "L", - "o" - ], - [ - "in", - "fty" - ], - [ - "inf", - "ty" - ], - [ - "▁a", - "long" - ], - [ - "▁al", - "ong" - ], - [ - "▁", - "č" - ], - [ - "▁t", - "ask" - ], - [ - "▁ta", - "sk" - ], - [ - "▁", - "task" - ], - [ - "▁e", - "v" - ], - [ - "▁", - "ev" - ], - [ - "th", - "eta" - ], - [ - "the", - "ta" - ], - [ - "ra", - "s" - ], - [ - "r", - "as" - ], - [ - "jo", - "r" - ], - [ - "j", - "or" - ], - [ - "▁б", - "о" - ], - [ - "▁", - "бо" - ], - [ - "▁princi", - "p" - ], - [ - "▁prin", - "cip" - ], - [ - "M", - "y" - ], - [ - "▁e", - "iner" - ], - [ - "▁ein", - "er" - ], - [ - "▁eine", - "r" - ], - [ - "▁E", - "s" - ], - [ - "▁", - "Es" - ], - [ - "om", - "b" - ], - [ - "o", - "mb" - ], - [ - "qu", - "ad" - ], - [ - "qua", - "d" - ], - [ - "^{", - "-" - ], - [ - "^", - "{-" - ], - [ - "um", - "p" - ], - [ - "u", - "mp" - ], - [ - "▁t", - "ill" - ], - [ - "▁til", - "l" - ], - [ - "▁ti", - "ll" - ], - [ - "д", - "і" - ], - [ - "▁lo", - "oks" - ], - [ - "▁look", - "s" - ], - [ - "▁o", - "k" - ], - [ - "▁", - "ok" - ], - [ - "ц", - "а" - ], - [ - "n", - "u" - ], - [ - "Fi", - "l" - ], - [ - "F", - "il" - ], - [ - "▁s", - "ont" - ], - [ - "▁so", - "nt" - ], - [ - "▁son", - "t" - ], - [ - "▁M", - "ed" - ], - [ - "▁Me", - "d" - ], - [ - "▁", - "Med" - ], - [ - "ag", - "ue" - ], - [ - "agu", - "e" - ], - [ - "a", - "gue" - ], - [ - "▁c", - "ost" - ], - [ - "▁co", - "st" - ], - [ - "▁cos", - "t" - ], - [ - "▁", - "cost" - ], - [ - "▁S", - "im" - ], - [ - "▁Si", - "m" - ], - [ - "▁", - "Sim" - ], - [ - "▁com", - "ment" - ], - [ - "▁comm", - "ent" - ], - [ - "▁comme", - "nt" - ], - [ - "▁", - "comment" - ], - [ - "▁(", - "\\" - ], - [ - "▁", - "(\\" - ], - [ - "eg", - "en" - ], - [ - "ege", - "n" - ], - [ - "e", - "gen" - ], - [ - "▁para", - "meter" - ], - [ - "▁param", - "eter" - ], - [ - "▁paramet", - "er" - ], - [ - "▁", - "parameter" - ], - [ - "▁F", - "rance" - ], - [ - "▁Fran", - "ce" - ], - [ - "▁Fr", - "ance" - ], - [ - "▁Franc", - "e" - ], - [ - "▁", - "France" - ], - [ - "re", - "p" - ], - [ - "r", - "ep" - ], - [ - "▁T", - "H" - ], - [ - "▁", - "TH" - ], - [ - "▁y", - "et" - ], - [ - "▁ye", - "t" - ], - [ - "▁a", - "way" - ], - [ - "▁aw", - "ay" - ], - [ - "▁", - "away" - ], - [ - "▁c", - "irc" - ], - [ - "▁ci", - "rc" - ], - [ - "▁cir", - "c" - ], - [ - "▁", - "circ" - ], - [ - "▁A", - "PI" - ], - [ - "▁AP", - "I" - ], - [ - "▁", - "API" - ], - [ - "em", - "p" - ], - [ - "e", - "mp" - ], - [ - "в", - "і" - ], - [ - "L", - "ayout" - ], - [ - "▁l", - "ines" - ], - [ - "▁li", - "nes" - ], - [ - "▁line", - "s" - ], - [ - "▁lin", - "es" - ], - [ - "▁", - "lines" - ], - [ - "▁P", - "art" - ], - [ - "▁Par", - "t" - ], - [ - "▁Pa", - "rt" - ], - [ - "▁", - "Part" - ], - [ - "em", - "pt" - ], - [ - "emp", - "t" - ], - [ - "▁B", - "i" - ], - [ - "▁", - "Bi" - ], - [ - "▁m", - "ind" - ], - [ - "▁min", - "d" - ], - [ - "▁mi", - "nd" - ], - [ - "▁", - "mind" - ], - [ - "k", - "y" - ], - [ - "gi", - "ng" - ], - [ - "gin", - "g" - ], - [ - "g", - "ing" - ], - [ - "▁re", - "port" - ], - [ - "▁rep", - "ort" - ], - [ - "▁repo", - "rt" - ], - [ - "▁", - "report" - ], - [ - "▁A", - "dd" - ], - [ - "▁Ad", - "d" - ], - [ - "▁", - "Add" - ], - [ - "ро", - "д" - ], - [ - "р", - "од" - ], - [ - "▁r", - "ange" - ], - [ - "▁ran", - "ge" - ], - [ - "▁rang", - "e" - ], - [ - "▁", - "range" - ], - [ - "ci", - "as" - ], - [ - "cia", - "s" - ], - [ - "c", - "ias" - ], - [ - "li", - "p" - ], - [ - "l", - "ip" - ], - [ - "▁K", - "ar" - ], - [ - "▁Ka", - "r" - ], - [ - "▁", - "Kar" - ], - [ - "▁Comm", - "ons" - ], - [ - "▁Common", - "s" - ], - [ - "ger", - "ufen" - ], - [ - "af", - "f" - ], - [ - "a", - "ff" - ], - [ - "se", - "c" - ], - [ - "s", - "ec" - ], - [ - "▁h", - "tml" - ], - [ - "▁", - "html" - ], - [ - "li", - "g" - ], - [ - "l", - "ig" - ], - [ - "▁w", - "indow" - ], - [ - "▁wind", - "ow" - ], - [ - "▁", - "window" - ], - [ - "in", - "ition" - ], - [ - "ini", - "tion" - ], - [ - "init", - "ion" - ], - [ - "ci", - "s" - ], - [ - "c", - "is" - ], - [ - "▁u", - "t" - ], - [ - "▁", - "ut" - ], - [ - "el", - "n" - ], - [ - "e", - "ln" - ], - [ - "▁a", - "ux" - ], - [ - "▁au", - "x" - ], - [ - "▁", - "aux" - ], - [ - "▁n", - "eg" - ], - [ - "▁ne", - "g" - ], - [ - "▁", - "neg" - ], - [ - "Ha", - "nd" - ], - [ - "H", - "and" - ], - [ - "▁)", - ";" - ], - [ - "▁", - ");" - ], - [ - "▁a", - "nal" - ], - [ - "▁an", - "al" - ], - [ - "▁", - "anal" - ], - [ - "▁f", - "ri" - ], - [ - "▁fr", - "i" - ], - [ - "▁", - "fri" - ], - [ - "▁с", - "и" - ], - [ - "▁", - "си" - ], - [ - "et", - "ch" - ], - [ - "etc", - "h" - ], - [ - "m", - "d" - ], - [ - "pa", - "ge" - ], - [ - "pag", - "e" - ], - [ - "p", - "age" - ], - [ - "▁l", - "ibrary" - ], - [ - "▁li", - "brary" - ], - [ - "▁", - "library" - ], - [ - "▁:", - "=" - ], - [ - "▁", - ":=" - ], - [ - "RO", - "M" - ], - [ - "R", - "OM" - ], - [ - "Y", - "ou" - ], - [ - "sp", - "ace" - ], - [ - "s", - "pace" - ], - [ - "▁d", - "urch" - ], - [ - "▁dur", - "ch" - ], - [ - "▁h", - "ost" - ], - [ - "▁ho", - "st" - ], - [ - "▁hos", - "t" - ], - [ - "▁", - "host" - ], - [ - "av", - "en" - ], - [ - "ave", - "n" - ], - [ - "a", - "ven" - ], - [ - "▁F", - "ile" - ], - [ - "▁Fil", - "e" - ], - [ - "▁", - "File" - ], - [ - "al", - "le" - ], - [ - "all", - "e" - ], - [ - "a", - "lle" - ], - [ - "ти", - "в" - ], - [ - "▁p", - "ap" - ], - [ - "▁pa", - "p" - ], - [ - "ст", - "во" - ], - [ - "ств", - "о" - ], - [ - "с", - "тво" - ], - [ - "mar", - "k" - ], - [ - "m", - "ark" - ], - [ - "▁m", - "ais" - ], - [ - "▁ma", - "is" - ], - [ - "▁mai", - "s" - ], - [ - "er", - "man" - ], - [ - "erm", - "an" - ], - [ - "Si", - "ze" - ], - [ - "S", - "ize" - ], - [ - "е", - "к" - ], - [ - "▁М", - "а" - ], - [ - "▁", - "Ма" - ], - [ - "▁is", - "n" - ], - [ - "▁i", - "sn" - ], - [ - "▁c", - "opy" - ], - [ - "▁co", - "py" - ], - [ - "▁cop", - "y" - ], - [ - "▁", - "copy" - ], - [ - "st", - "en" - ], - [ - "ste", - "n" - ], - [ - "s", - "ten" - ], - [ - "ri", - "ver" - ], - [ - "riv", - "er" - ], - [ - "rive", - "r" - ], - [ - "r", - "iver" - ], - [ - "▁w", - "ent" - ], - [ - "▁we", - "nt" - ], - [ - "▁wen", - "t" - ], - [ - "▁j", - "avascript" - ], - [ - "▁java", - "script" - ], - [ - "▁", - "javascript" - ], - [ - "▁s", - "am" - ], - [ - "▁sa", - "m" - ], - [ - "▁", - "sam" - ], - [ - "▁f", - "rame" - ], - [ - "▁fr", - "ame" - ], - [ - "▁fra", - "me" - ], - [ - "▁fram", - "e" - ], - [ - "▁", - "frame" - ], - [ - "▁v", - "i" - ], - [ - "▁", - "vi" - ], - [ - "▁pre", - "vious" - ], - [ - "▁prev", - "ious" - ], - [ - "▁", - "previous" - ], - [ - "ro", - "du" - ], - [ - "rod", - "u" - ], - [ - "r", - "odu" - ], - [ - "▁method", - "s" - ], - [ - "▁", - "methods" - ], - [ - "▁ne", - "cess" - ], - [ - "▁neces", - "s" - ], - [ - "▁", - "necess" - ], - [ - "N", - "A" - ], - [ - "ck", - "et" - ], - [ - "cke", - "t" - ], - [ - "c", - "ket" - ], - [ - "▁o", - "pt" - ], - [ - "▁op", - "t" - ], - [ - "▁", - "opt" - ], - [ - "Lo", - "c" - ], - [ - "L", - "oc" - ], - [ - "ho", - "w" - ], - [ - "h", - "ow" - ], - [ - "▁î", - "n" - ], - [ - "▁", - "în" - ], - [ - "sh", - "ip" - ], - [ - "s", - "hip" - ], - [ - "▁it", - "self" - ], - [ - "▁its", - "elf" - ], - [ - "▁P", - "lease" - ], - [ - "▁Ple", - "ase" - ], - [ - "▁", - "Please" - ], - [ - "ie", - "ne" - ], - [ - "ien", - "e" - ], - [ - "i", - "ene" - ], - [ - "ве", - "р" - ], - [ - "в", - "ер" - ], - [ - "▁<", - "<" - ], - [ - "▁", - "<<" - ], - [ - "▁m", - "ill" - ], - [ - "▁mil", - "l" - ], - [ - "▁mi", - "ll" - ], - [ - "▁", - "mill" - ], - [ - "▁t", - "rad" - ], - [ - "▁tr", - "ad" - ], - [ - "▁tra", - "d" - ], - [ - "▁", - "trad" - ], - [ - "pa", - "ce" - ], - [ - "p", - "ace" - ], - [ - "▁H", - "ar" - ], - [ - "▁Ha", - "r" - ], - [ - "▁", - "Har" - ], - [ - "it", - "en" - ], - [ - "ite", - "n" - ], - [ - "i", - "ten" - ], - [ - "wi", - "se" - ], - [ - "w", - "ise" - ], - [ - "writ", - "e" - ], - [ - "wr", - "ite" - ], - [ - "w", - "rite" - ], - [ - "ци", - "и" - ], - [ - "р", - "ы" - ], - [ - "Lin", - "e" - ], - [ - "Li", - "ne" - ], - [ - "L", - "ine" - ], - [ - "ol", - "o" - ], - [ - "o", - "lo" - ], - [ - "▁ac", - "cept" - ], - [ - "▁", - "accept" - ], - [ - "he", - "ight" - ], - [ - "▁e", - "lect" - ], - [ - "▁el", - "ect" - ], - [ - "▁ele", - "ct" - ], - [ - "▁", - "elect" - ], - [ - "el", - "la" - ], - [ - "ell", - "a" - ], - [ - "e", - "lla" - ], - [ - "▁p", - "å" - ], - [ - "Se", - "lect" - ], - [ - "S", - "elect" - ], - [ - "▁", - "ли" - ], - [ - "▁\\", - "<" - ], - [ - "▁", - "\\<" - ], - [ - "(", - "(" - ], - [ - "▁I", - "D" - ], - [ - "▁", - "ID" - ], - [ - "op", - "s" - ], - [ - "o", - "ps" - ], - [ - "ва", - "н" - ], - [ - "в", - "ан" - ], - [ - "i", - "ó" - ], - [ - "T", - "P" - ], - [ - "»", - "," - ], - [ - "ne", - "ction" - ], - [ - "nect", - "ion" - ], - [ - "n", - "ection" - ], - [ - "par", - "ent" - ], - [ - "pa", - "rent" - ], - [ - "▁M", - "ag" - ], - [ - "▁Ma", - "g" - ], - [ - "▁", - "Mag" - ], - [ - "Tab", - "le" - ], - [ - "T", - "able" - ], - [ - "O", - "ver" - ], - [ - "▁n", - "etwork" - ], - [ - "▁net", - "work" - ], - [ - "▁", - "network" - ], - [ - "с", - "по" - ], - [ - "▁as", - "sign" - ], - [ - "▁ass", - "ign" - ], - [ - "▁", - "assign" - ], - [ - "ig", - "ger" - ], - [ - "igg", - "er" - ], - [ - "ir", - "m" - ], - [ - "i", - "rm" - ], - [ - ")", - "`" - ], - [ - "ot", - "tom" - ], - [ - "ott", - "om" - ], - [ - "otto", - "m" - ], - [ - "be", - "ta" - ], - [ - "bet", - "a" - ], - [ - "b", - "eta" - ], - [ - "▁d", - "ell" - ], - [ - "▁de", - "ll" - ], - [ - "▁del", - "l" - ], - [ - "▁b", - "ody" - ], - [ - "▁bo", - "dy" - ], - [ - "▁bod", - "y" - ], - [ - "▁", - "body" - ], - [ - "▁д", - "а" - ], - [ - "▁", - "да" - ], - [ - "▁Y", - "our" - ], - [ - "▁You", - "r" - ], - [ - "▁", - "Your" - ], - [ - "▁f", - "ue" - ], - [ - "▁fu", - "e" - ], - [ - "▁p", - "ackage" - ], - [ - "▁pack", - "age" - ], - [ - "▁", - "package" - ], - [ - "▁l", - "ight" - ], - [ - "▁lig", - "ht" - ], - [ - "▁", - "light" - ], - [ - "▁*", - "*" - ], - [ - "▁", - "**" - ], - [ - "M", - "P" - ], - [ - "▁c", - "ou" - ], - [ - "▁co", - "u" - ], - [ - "▁", - "cou" - ], - [ - "ye", - "s" - ], - [ - "y", - "es" - ], - [ - ":", - "\\" - ], - [ - "▁", - "Ч" - ], - [ - "▁m", - "ention" - ], - [ - "▁men", - "tion" - ], - [ - "▁ment", - "ion" - ], - [ - "en", - "sch" - ], - [ - "ens", - "ch" - ], - [ - "▁d", - "eg" - ], - [ - "▁de", - "g" - ], - [ - "▁", - "deg" - ], - [ - "▁con", - "vert" - ], - [ - "▁conver", - "t" - ], - [ - "▁conv", - "ert" - ], - [ - "▁", - "convert" - ], - [ - "▁D", - "av" - ], - [ - "▁Da", - "v" - ], - [ - "ad", - "t" - ], - [ - "a", - "dt" - ], - [ - "Res", - "ult" - ], - [ - "th", - "ough" - ], - [ - "▁b", - "us" - ], - [ - "▁bu", - "s" - ], - [ - "▁", - "bus" - ], - [ - "x", - "y" - ], - [ - "▁s", - "een" - ], - [ - "▁se", - "en" - ], - [ - "▁see", - "n" - ], - [ - "▁", - "seen" - ], - [ - "Al", - "l" - ], - [ - "A", - "ll" - ], - [ - "pu", - "blic" - ], - [ - "pub", - "lic" - ], - [ - "p", - "ublic" - ], - [ - "iv", - "ely" - ], - [ - "ive", - "ly" - ], - [ - "ivel", - "y" - ], - [ - "▁R", - "ec" - ], - [ - "▁Re", - "c" - ], - [ - "▁", - "Rec" - ], - [ - "▁H", - "is" - ], - [ - "▁Hi", - "s" - ], - [ - "si", - "m" - ], - [ - "s", - "im" - ], - [ - "▁f", - "ör" - ], - [ - "▁fö", - "r" - ], - [ - "▁", - "för" - ], - [ - "▁h", - "istor" - ], - [ - "▁his", - "tor" - ], - [ - "▁hi", - "stor" - ], - [ - "▁hist", - "or" - ], - [ - "▁", - "histor" - ], - [ - "▁s", - "ett" - ], - [ - "▁se", - "tt" - ], - [ - "▁set", - "t" - ], - [ - "▁", - "sett" - ], - [ - "ra", - "t" - ], - [ - "r", - "at" - ], - [ - "ab", - "led" - ], - [ - "able", - "d" - ], - [ - "abl", - "ed" - ], - [ - "a", - "bled" - ], - [ - "▁»", - "," - ], - [ - "▁", - "»," - ], - [ - "go", - "ogle" - ], - [ - "We", - "b" - ], - [ - "W", - "eb" - ], - [ - "é", - "l" - ], - [ - "▁t", - "itle" - ], - [ - "▁tit", - "le" - ], - [ - "▁", - "title" - ], - [ - "▁J", - "anu" - ], - [ - "▁Jan", - "u" - ], - [ - "▁Ja", - "nu" - ], - [ - "ј", - "а" - ], - [ - "▁t", - "ook" - ], - [ - "▁to", - "ok" - ], - [ - "▁too", - "k" - ], - [ - "id", - "en" - ], - [ - "ide", - "n" - ], - [ - "i", - "den" - ], - [ - "s", - "z" - ], - [ - "▁G", - "et" - ], - [ - "▁Ge", - "t" - ], - [ - "▁", - "Get" - ], - [ - "▁object", - "s" - ], - [ - "▁", - "objects" - ], - [ - "▁com", - "mon" - ], - [ - "▁comm", - "on" - ], - [ - "▁", - "common" - ], - [ - "▁ch", - "anges" - ], - [ - "▁change", - "s" - ], - [ - "▁chang", - "es" - ], - [ - "▁", - "changes" - ], - [ - "▁L", - "ond" - ], - [ - "▁Lo", - "nd" - ], - [ - "▁", - "Lond" - ], - [ - "▁ex", - "tern" - ], - [ - "▁ext", - "ern" - ], - [ - "▁j", - "u" - ], - [ - "▁", - "ju" - ], - [ - "I", - "s" - ], - [ - "▁av", - "ailable" - ], - [ - "▁avail", - "able" - ], - [ - "▁", - "available" - ], - [ - "tr", - "i" - ], - [ - "t", - "ri" - ], - [ - "▁m", - "ás" - ], - [ - "▁má", - "s" - ], - [ - "os", - "a" - ], - [ - "o", - "sa" - ], - [ - "B", - "e" - ], - [ - "▁D", - "ata" - ], - [ - "▁Da", - "ta" - ], - [ - "▁Dat", - "a" - ], - [ - "▁", - "Data" - ], - [ - "ur", - "al" - ], - [ - "ura", - "l" - ], - [ - "u", - "ral" - ], - [ - "▁h", - "om" - ], - [ - "▁ho", - "m" - ], - [ - "▁", - "hom" - ], - [ - "▁acc", - "ount" - ], - [ - "▁ac", - "count" - ], - [ - "▁", - "account" - ], - [ - "o", - "o" - ], - [ - "▁p", - "erm" - ], - [ - "▁per", - "m" - ], - [ - "▁pe", - "rm" - ], - [ - "▁", - "perm" - ], - [ - "res", - "pond" - ], - [ - "resp", - "ond" - ], - [ - "y", - "t" - ], - [ - "▁s", - "end" - ], - [ - "▁se", - "nd" - ], - [ - "▁sen", - "d" - ], - [ - "▁", - "send" - ], - [ - "▁return", - "s" - ], - [ - "▁", - "returns" - ], - [ - "iv", - "id" - ], - [ - "ivi", - "d" - ], - [ - "i", - "vid" - ], - [ - "▁ex", - "pla" - ], - [ - "▁exp", - "la" - ], - [ - "▁expl", - "a" - ], - [ - "í", - "n" - ], - [ - "▁n", - "or" - ], - [ - "▁no", - "r" - ], - [ - "▁", - "nor" - ], - [ - "I", - "f" - ], - [ - "▁F", - "rom" - ], - [ - "▁Fr", - "om" - ], - [ - "▁Fro", - "m" - ], - [ - "▁", - "From" - ], - [ - "▁t", - "arget" - ], - [ - "▁tar", - "get" - ], - [ - "▁", - "target" - ], - [ - "fe", - "ct" - ], - [ - "f", - "ect" - ], - [ - "ен", - "т" - ], - [ - "▁u", - "it" - ], - [ - "▁ui", - "t" - ], - [ - "▁", - "uit" - ], - [ - "▁J", - "o" - ], - [ - "▁", - "Jo" - ], - [ - "▁vari", - "ables" - ], - [ - "▁variable", - "s" - ], - [ - "▁", - "variables" - ], - [ - "▁s", - "eries" - ], - [ - "▁se", - "ries" - ], - [ - "▁ser", - "ies" - ], - [ - "▁serie", - "s" - ], - [ - "▁", - "series" - ], - [ - "▁f", - "unc" - ], - [ - "▁fun", - "c" - ], - [ - "▁fu", - "nc" - ], - [ - "▁", - "func" - ], - [ - "▁him", - "self" - ], - [ - "▁ч", - "а" - ], - [ - "▁", - "ча" - ], - [ - "an", - "ti" - ], - [ - "ant", - "i" - ], - [ - "▁a", - "ch" - ], - [ - "▁ac", - "h" - ], - [ - "▁", - "ach" - ], - [ - "ia", - "log" - ], - [ - "ial", - "og" - ], - [ - "i", - "alog" - ], - [ - "▁s", - "td" - ], - [ - "▁st", - "d" - ], - [ - "▁", - "std" - ], - [ - "a", - "e" - ], - [ - "▁f", - "oot" - ], - [ - "▁fo", - "ot" - ], - [ - "▁foo", - "t" - ], - [ - "▁", - "foot" - ], - [ - "▁un", - "ter" - ], - [ - "▁", - "unter" - ], - [ - "gr", - "ess" - ], - [ - "gres", - "s" - ], - [ - "gre", - "ss" - ], - [ - "g", - "ress" - ], - [ - "No", - "t" - ], - [ - "N", - "ot" - ], - [ - "ra", - "d" - ], - [ - "r", - "ad" - ], - [ - "f", - "ér" - ], - [ - "▁u", - "til" - ], - [ - "▁ut", - "il" - ], - [ - "▁", - "util" - ], - [ - "or", - "em" - ], - [ - "ore", - "m" - ], - [ - "o", - "rem" - ], - [ - "▁s", - "ou" - ], - [ - "▁so", - "u" - ], - [ - "op", - "t" - ], - [ - "o", - "pt" - ], - [ - "▁o", - "g" - ], - [ - "▁", - "og" - ], - [ - "▁u", - "ma" - ], - [ - "▁um", - "a" - ], - [ - "▁", - "uma" - ], - [ - "it", - "ar" - ], - [ - "ita", - "r" - ], - [ - "i", - "tar" - ], - [ - "▁O", - "k" - ], - [ - "▁", - "Ok" - ], - [ - "ü", - "ck" - ], - [ - "sq", - "rt" - ], - [ - "▁a", - "nt" - ], - [ - "▁an", - "t" - ], - [ - "▁", - "ant" - ], - [ - "▁wer", - "den" - ], - [ - "▁werd", - "en" - ], - [ - "å", - "r" - ], - [ - "})", - ";" - ], - [ - "}", - ");" - ], - [ - "▁P", - "aris" - ], - [ - "▁Par", - "is" - ], - [ - "▁Pa", - "ris" - ], - [ - "▁ex", - "ception" - ], - [ - "▁except", - "ion" - ], - [ - "▁", - "exception" - ], - [ - "▁de", - "term" - ], - [ - "▁det", - "erm" - ], - [ - "▁V", - "ol" - ], - [ - "▁Vo", - "l" - ], - [ - "▁", - "Vol" - ], - [ - "▁S", - "am" - ], - [ - "▁Sa", - "m" - ], - [ - "▁", - "Sam" - ], - [ - "▁e", - "ss" - ], - [ - "▁es", - "s" - ], - [ - "▁", - "ess" - ], - [ - "li", - "es" - ], - [ - "lie", - "s" - ], - [ - "l", - "ies" - ], - [ - "ion", - "i" - ], - [ - "io", - "ni" - ], - [ - "i", - "oni" - ], - [ - "od", - "ing" - ], - [ - "odi", - "ng" - ], - [ - "o", - "ding" - ], - [ - "id", - "get" - ], - [ - "idge", - "t" - ], - [ - "▁p", - "ri" - ], - [ - "▁pr", - "i" - ], - [ - "▁wh", - "ether" - ], - [ - "▁whe", - "ther" - ], - [ - "▁п", - "од" - ], - [ - "▁по", - "д" - ], - [ - "▁num", - "bers" - ], - [ - "▁number", - "s" - ], - [ - "▁", - "numbers" - ], - [ - "▁", - "~" - ], - [ - "ev", - "ent" - ], - [ - "even", - "t" - ], - [ - "e", - "vent" - ], - [ - "▁sh", - "ows" - ], - [ - "▁show", - "s" - ], - [ - "▁sho", - "ws" - ], - [ - "at", - "ures" - ], - [ - "atur", - "es" - ], - [ - "ature", - "s" - ], - [ - "atu", - "res" - ], - [ - "▁h", - "ouse" - ], - [ - "▁ho", - "use" - ], - [ - "▁hous", - "e" - ], - [ - "▁", - "house" - ], - [ - "▁f", - "ace" - ], - [ - "▁fa", - "ce" - ], - [ - "▁fac", - "e" - ], - [ - "▁", - "face" - ], - [ - "▁s", - "ię" - ], - [ - "▁si", - "ę" - ], - [ - "viron", - "ment" - ], - [ - "va", - "n" - ], - [ - "v", - "an" - ], - [ - "▁in", - "cluding" - ], - [ - "▁includ", - "ing" - ], - [ - "▁inclu", - "ding" - ], - [ - "▁", - "including" - ], - [ - "▁<", - "-" - ], - [ - "▁", - "<-" - ], - [ - "ti", - "mes" - ], - [ - "time", - "s" - ], - [ - "tim", - "es" - ], - [ - "t", - "imes" - ], - [ - "no", - "w" - ], - [ - "n", - "ow" - ], - [ - "▁p", - "ur" - ], - [ - "▁pu", - "r" - ], - [ - "▁", - "pur" - ], - [ - "if", - "ier" - ], - [ - "ifi", - "er" - ], - [ - "ifie", - "r" - ], - [ - "▁e", - "mp" - ], - [ - "▁em", - "p" - ], - [ - "▁", - "emp" - ], - [ - "▁c", - "la" - ], - [ - "▁cl", - "a" - ], - [ - "▁", - "cla" - ], - [ - "mo", - "n" - ], - [ - "m", - "on" - ], - [ - "▁D", - "as" - ], - [ - "▁Da", - "s" - ], - [ - "ad", - "y" - ], - [ - "a", - "dy" - ], - [ - "▁в", - "ід" - ], - [ - "▁ві", - "д" - ], - [ - "▁", - "від" - ], - [ - "▁", - "ц" - ], - [ - "ab", - "or" - ], - [ - "a", - "bor" - ], - [ - "OS", - "T" - ], - [ - "O", - "ST" - ], - [ - "▁b", - "and" - ], - [ - "▁ban", - "d" - ], - [ - "▁ba", - "nd" - ], - [ - "▁", - "band" - ], - [ - "▁", - "ú" - ], - [ - "▁ex", - "actly" - ], - [ - "▁exact", - "ly" - ], - [ - "ie", - "rt" - ], - [ - "ier", - "t" - ], - [ - "i", - "ert" - ], - [ - "av", - "ig" - ], - [ - "avi", - "g" - ], - [ - "▁re", - "du" - ], - [ - "▁r", - "edu" - ], - [ - "▁red", - "u" - ], - [ - "▁", - "redu" - ], - [ - "▁S", - "E" - ], - [ - "▁", - "SE" - ], - [ - "lish", - "ed" - ], - [ - "lis", - "hed" - ], - [ - "l", - "ished" - ], - [ - "B", - "u" - ], - [ - "Mess", - "age" - ], - [ - "M", - "essage" - ], - [ - "ce", - "ll" - ], - [ - "cel", - "l" - ], - [ - "c", - "ell" - ], - [ - "ful", - "ly" - ], - [ - "full", - "y" - ], - [ - "▁s", - "v" - ], - [ - "▁", - "sv" - ], - [ - "▁m", - "akes" - ], - [ - "▁ma", - "kes" - ], - [ - "▁make", - "s" - ], - [ - "▁mak", - "es" - ], - [ - "po", - "l" - ], - [ - "p", - "ol" - ], - [ - "▁re", - "quired" - ], - [ - "▁require", - "d" - ], - [ - "▁requ", - "ired" - ], - [ - "▁", - "required" - ], - [ - "fer", - "rer" - ], - [ - "▁p", - "ers" - ], - [ - "▁per", - "s" - ], - [ - "▁pe", - "rs" - ], - [ - "▁", - "pers" - ], - [ - "▁m", - "i" - ], - [ - "▁", - "mi" - ], - [ - "F", - "I" - ], - [ - "▁Pa", - "ul" - ], - [ - "▁", - "Paul" - ], - [ - "▁U", - "I" - ], - [ - "▁", - "UI" - ], - [ - "▁B", - "el" - ], - [ - "▁Be", - "l" - ], - [ - "▁", - "Bel" - ], - [ - "in", - "c" - ], - [ - "i", - "nc" - ], - [ - "▁cont", - "ains" - ], - [ - "▁contain", - "s" - ], - [ - "▁", - "contains" - ], - [ - "O", - "ut" - ], - [ - "as", - "ure" - ], - [ - "p", - "u" - ], - [ - "ot", - "o" - ], - [ - "o", - "to" - ], - [ - "▁g", - "ame" - ], - [ - "▁ga", - "me" - ], - [ - "▁gam", - "e" - ], - [ - "▁", - "game" - ], - [ - "z", - "n" - ], - [ - "▁W", - "hy" - ], - [ - "▁Wh", - "y" - ], - [ - "▁", - "Why" - ], - [ - "or", - "ith" - ], - [ - "ori", - "th" - ], - [ - "bi", - "g" - ], - [ - "b", - "ig" - ], - [ - "ки", - "й" - ], - [ - "sig", - "ma" - ], - [ - "s", - "igma" - ], - [ - "▁qu", - "ite" - ], - [ - "▁qui", - "te" - ], - [ - "▁quit", - "e" - ], - [ - "▁j", - "ed" - ], - [ - "▁je", - "d" - ], - [ - "▁", - "jed" - ], - [ - "re", - "c" - ], - [ - "r", - "ec" - ], - [ - "▁S", - "QL" - ], - [ - "▁", - "SQL" - ], - [ - "б", - "е" - ], - [ - "▁M", - "art" - ], - [ - "▁Mar", - "t" - ], - [ - "▁Ma", - "rt" - ], - [ - "▁", - "Mart" - ], - [ - "y", - "a" - ], - [ - "▁sch", - "ool" - ], - [ - "▁", - "school" - ], - [ - "▁sim", - "ply" - ], - [ - "▁simp", - "ly" - ], - [ - "▁simpl", - "y" - ], - [ - "▁v", - "or" - ], - [ - "▁vo", - "r" - ], - [ - "▁", - "vor" - ], - [ - "▁d", - "ouble" - ], - [ - "▁dou", - "ble" - ], - [ - "▁doub", - "le" - ], - [ - "▁", - "double" - ], - [ - "ра", - "в" - ], - [ - "▁S", - "tr" - ], - [ - "▁St", - "r" - ], - [ - "▁", - "Str" - ], - [ - "ie", - "m" - ], - [ - "i", - "em" - ], - [ - "▁al", - "bum" - ], - [ - "▁alb", - "um" - ], - [ - "▁", - "album" - ], - [ - "▁re", - "sol" - ], - [ - "▁res", - "ol" - ], - [ - "▁", - "resol" - ], - [ - "▁d", - "ei" - ], - [ - "▁de", - "i" - ], - [ - "▁W", - "ik" - ], - [ - "▁Wi", - "k" - ], - [ - "▁", - "Wik" - ], - [ - "▁a", - "w" - ], - [ - "▁", - "aw" - ], - [ - "um", - "b" - ], - [ - "u", - "mb" - ], - [ - "ol", - "s" - ], - [ - "o", - "ls" - ], - [ - "▁*", - "/" - ], - [ - "▁", - "*/" - ], - [ - "▁z", - "e" - ], - [ - "▁", - "ze" - ], - [ - "▁a", - "nim" - ], - [ - "▁an", - "im" - ], - [ - "▁ani", - "m" - ], - [ - "▁", - "anim" - ], - [ - "/", - ">" - ], - [ - "ri", - "s" - ], - [ - "r", - "is" - ], - [ - "re", - "sh" - ], - [ - "res", - "h" - ], - [ - "r", - "esh" - ], - [ - "N", - "o" - ], - [ - "ique", - "s" - ], - [ - "iqu", - "es" - ], - [ - "i", - "ques" - ], - [ - "cur", - "rent" - ], - [ - "curr", - "ent" - ], - [ - "c", - "urrent" - ], - [ - "▁per", - "iod" - ], - [ - "▁peri", - "od" - ], - [ - "▁", - "period" - ], - [ - "▁A", - "pril" - ], - [ - "▁Ap", - "ril" - ], - [ - "▁st", - "ore" - ], - [ - "▁stor", - "e" - ], - [ - "▁sto", - "re" - ], - [ - "▁", - "store" - ], - [ - "',", - "'" - ], - [ - "'", - ",'" - ], - [ - "▁S", - "et" - ], - [ - "▁Se", - "t" - ], - [ - "▁", - "Set" - ], - [ - "=", - "{" - ], - [ - "ach", - "ed" - ], - [ - "ac", - "hed" - ], - [ - "ache", - "d" - ], - [ - "a", - "ched" - ], - [ - "▁M", - "al" - ], - [ - "▁Ma", - "l" - ], - [ - "▁", - "Mal" - ], - [ - "▁P", - "al" - ], - [ - "▁Pa", - "l" - ], - [ - "▁", - "Pal" - ], - [ - "an", - "tes" - ], - [ - "ant", - "es" - ], - [ - "ante", - "s" - ], - [ - "ate", - "rial" - ], - [ - "ater", - "ial" - ], - [ - "▁work", - "ed" - ], - [ - "▁wor", - "ked" - ], - [ - "le", - "q" - ], - [ - "l", - "eq" - ], - [ - "ore", - "ferrer" - ], - [ - "▁h", - "appen" - ], - [ - "▁ha", - "ppen" - ], - [ - "▁happ", - "en" - ], - [ - "▁b", - "ox" - ], - [ - "▁bo", - "x" - ], - [ - "▁", - "box" - ], - [ - "ne", - "y" - ], - [ - "n", - "ey" - ], - [ - "▁c", - "lose" - ], - [ - "▁cl", - "ose" - ], - [ - "▁clos", - "e" - ], - [ - "▁clo", - "se" - ], - [ - "▁", - "close" - ], - [ - "▁g", - "ran" - ], - [ - "▁gr", - "an" - ], - [ - "▁gra", - "n" - ], - [ - "▁l", - "ie" - ], - [ - "▁li", - "e" - ], - [ - "▁", - "lie" - ], - [ - "▁i", - "r" - ], - [ - "▁", - "ir" - ], - [ - "▁ex", - "pected" - ], - [ - "▁exp", - "ected" - ], - [ - "▁expect", - "ed" - ], - [ - "▁", - "expected" - ], - [ - "▁д", - "ля" - ], - [ - "cl", - "ick" - ], - [ - "cli", - "ck" - ], - [ - "clic", - "k" - ], - [ - "c", - "lick" - ], - [ - "ș", - "i" - ], - [ - "▁p", - "arte" - ], - [ - "▁par", - "te" - ], - [ - "▁part", - "e" - ], - [ - "og", - "n" - ], - [ - "o", - "gn" - ], - [ - "▁F", - "orm" - ], - [ - "▁For", - "m" - ], - [ - "▁Fo", - "rm" - ], - [ - "▁", - "Form" - ], - [ - "▁m", - "emb" - ], - [ - "▁me", - "mb" - ], - [ - "▁mem", - "b" - ], - [ - "▁p", - "lan" - ], - [ - "▁pl", - "an" - ], - [ - "▁pla", - "n" - ], - [ - "▁", - "plan" - ], - [ - "▁te", - "am" - ], - [ - "▁tea", - "m" - ], - [ - "▁", - "team" - ], - [ - "]", - "[" - ], - [ - "▁c", - "ommun" - ], - [ - "▁com", - "mun" - ], - [ - "▁comm", - "un" - ], - [ - "or", - "ry" - ], - [ - "orr", - "y" - ], - [ - "en", - "cy" - ], - [ - "enc", - "y" - ], - [ - "g", - "l" - ], - [ - "in", - "ary" - ], - [ - "ina", - "ry" - ], - [ - "inar", - "y" - ], - [ - "cd", - "ot" - ], - [ - "c", - "dot" - ], - [ - "^", - "\\" - ], - [ - "▁F", - "irst" - ], - [ - "▁Fir", - "st" - ], - [ - "▁", - "First" - ], - [ - "an", - "der" - ], - [ - "and", - "er" - ], - [ - "ande", - "r" - ], - [ - "a", - "nder" - ], - [ - "▁D", - "ec" - ], - [ - "▁De", - "c" - ], - [ - "▁", - "Dec" - ], - [ - "re", - "quest" - ], - [ - "req", - "uest" - ], - [ - "ст", - "ва" - ], - [ - "ств", - "а" - ], - [ - "с", - "тва" - ], - [ - "▁str", - "ucture" - ], - [ - "▁struct", - "ure" - ], - [ - "▁", - "structure" - ], - [ - "▁|", - "|" - ], - [ - "▁", - "||" - ], - [ - "▁C", - "omp" - ], - [ - "▁Com", - "p" - ], - [ - "▁Co", - "mp" - ], - [ - "▁", - "Comp" - ], - [ - "act", - "ory" - ], - [ - "actor", - "y" - ], - [ - "▁M", - "il" - ], - [ - "▁Mi", - "l" - ], - [ - "▁", - "Mil" - ], - [ - "▁S", - "ome" - ], - [ - "▁So", - "me" - ], - [ - "▁Som", - "e" - ], - [ - "▁", - "Some" - ], - [ - "St", - "ream" - ], - [ - "▁as", - "sum" - ], - [ - "▁ass", - "um" - ], - [ - "ue", - "n" - ], - [ - "u", - "en" - ], - [ - "▁w", - "ords" - ], - [ - "▁word", - "s" - ], - [ - "▁wor", - "ds" - ], - [ - "▁", - "words" - ], - [ - "▁Se", - "ptember" - ], - [ - "▁Sept", - "ember" - ], - [ - "▁К", - "о" - ], - [ - "▁", - "Ко" - ], - [ - "▁d", - "ays" - ], - [ - "▁da", - "ys" - ], - [ - "▁day", - "s" - ], - [ - "▁", - "days" - ], - [ - "or", - "ies" - ], - [ - "ori", - "es" - ], - [ - "orie", - "s" - ], - [ - "o", - "ries" - ], - [ - "ста", - "в" - ], - [ - "s", - "m" - ], - [ - "vi", - "n" - ], - [ - "v", - "in" - ], - [ - "part", - "ial" - ], - [ - "▁par", - "ent" - ], - [ - "▁pa", - "rent" - ], - [ - "▁pare", - "nt" - ], - [ - "▁", - "parent" - ], - [ - "o", - "j" - ], - [ - "ни", - "и" - ], - [ - "!", - "\"" - ], - [ - "ug", - "in" - ], - [ - "u", - "gin" - ], - [ - "▁W", - "indows" - ], - [ - "▁Wind", - "ows" - ], - [ - "▁Window", - "s" - ], - [ - "▁", - "Windows" - ], - [ - "E", - "d" - ], - [ - ":", - "}" - ], - [ - "▁", - "q" - ], - [ - "▁b", - "en" - ], - [ - "▁be", - "n" - ], - [ - "▁", - "ben" - ], - [ - "ia", - "na" - ], - [ - "ian", - "a" - ], - [ - "i", - "ana" - ], - [ - "▁l", - "abel" - ], - [ - "▁la", - "bel" - ], - [ - "▁lab", - "el" - ], - [ - "▁", - "label" - ], - [ - "st", - "ate" - ], - [ - "sta", - "te" - ], - [ - "stat", - "e" - ], - [ - "ut", - "ed" - ], - [ - "ute", - "d" - ], - [ - "u", - "ted" - ], - [ - "▁(", - ")" - ], - [ - "▁", - "()" - ], - [ - "▁с", - "во" - ], - [ - "▁e", - "dit" - ], - [ - "▁ed", - "it" - ], - [ - "▁", - "edit" - ], - [ - "ur", - "ing" - ], - [ - "uri", - "ng" - ], - [ - "u", - "ring" - ], - [ - "▁N", - "S" - ], - [ - "▁", - "NS" - ], - [ - "▁J", - "ahr" - ], - [ - "▁Jah", - "r" - ], - [ - "▁Ja", - "hr" - ], - [ - "▁prov", - "ide" - ], - [ - "H", - "e" - ], - [ - "▁Y", - "es" - ], - [ - "▁Ye", - "s" - ], - [ - "▁", - "Yes" - ], - [ - "an", - "el" - ], - [ - "ane", - "l" - ], - [ - "a", - "nel" - ], - [ - "en", - "ame" - ], - [ - "ena", - "me" - ], - [ - "e", - "name" - ], - [ - "▁D", - "on" - ], - [ - "▁Do", - "n" - ], - [ - "▁", - "Don" - ], - [ - "is", - "k" - ], - [ - "i", - "sk" - ], - [ - "gr", - "a" - ], - [ - "g", - "ra" - ], - [ - "el", - "ij" - ], - [ - "eli", - "j" - ], - [ - "e", - "lij" - ], - [ - "▁r", - "oot" - ], - [ - "▁ro", - "ot" - ], - [ - "▁", - "root" - ], - [ - "*", - "/" - ], - [ - "▁F", - "re" - ], - [ - "▁Fr", - "e" - ], - [ - "▁", - "Fre" - ], - [ - "▁M", - "or" - ], - [ - "▁Mo", - "r" - ], - [ - "▁", - "Mor" - ], - [ - "us", - "ed" - ], - [ - "use", - "d" - ], - [ - "u", - "sed" - ], - [ - "ran", - "ge" - ], - [ - "r", - "ange" - ], - [ - "▁t", - "amb" - ], - [ - "▁ta", - "mb" - ], - [ - "▁tam", - "b" - ], - [ - "▁mod", - "ule" - ], - [ - "▁", - "module" - ], - [ - "▁d", - "irectory" - ], - [ - "▁direct", - "ory" - ], - [ - "▁director", - "y" - ], - [ - "▁", - "directory" - ], - [ - "ound", - "s" - ], - [ - "oun", - "ds" - ], - [ - "Act", - "ivity" - ], - [ - "Activ", - "ity" - ], - [ - "▁m", - "u" - ], - [ - "▁", - "mu" - ], - [ - "in", - "fo" - ], - [ - "inf", - "o" - ], - [ - "▁f", - "ree" - ], - [ - "▁fr", - "ee" - ], - [ - "▁fre", - "e" - ], - [ - "▁", - "free" - ], - [ - "or", - "ge" - ], - [ - "org", - "e" - ], - [ - "ta", - "b" - ], - [ - "t", - "ab" - ], - [ - ")", - "=" - ], - [ - "la", - "ng" - ], - [ - "lan", - "g" - ], - [ - "l", - "ang" - ], - [ - "▁о", - "с" - ], - [ - "▁", - "ос" - ], - [ - "▁F", - "ROM" - ], - [ - "▁FR", - "OM" - ], - [ - "▁", - "FROM" - ], - [ - "▁en", - "ter" - ], - [ - "▁ent", - "er" - ], - [ - "▁", - "enter" - ], - [ - "▁bec", - "ame" - ], - [ - "id", - "ae" - ], - [ - "ida", - "e" - ], - [ - "х", - "и" - ], - [ - "▁St", - "ates" - ], - [ - "▁State", - "s" - ], - [ - "▁Stat", - "es" - ], - [ - "▁Sta", - "tes" - ], - [ - "ver", - "se" - ], - [ - "vers", - "e" - ], - [ - "▁ex", - "pl" - ], - [ - "▁exp", - "l" - ], - [ - "▁", - "expl" - ], - [ - "yn", - "t" - ], - [ - "y", - "nt" - ], - [ - "U", - "N" - ], - [ - "e", - "e" - ], - [ - "en", - "dent" - ], - [ - "end", - "ent" - ], - [ - "enden", - "t" - ], - [ - "ende", - "nt" - ], - [ - "▁m", - "aking" - ], - [ - "▁ma", - "king" - ], - [ - "▁mak", - "ing" - ], - [ - "▁", - "making" - ], - [ - "▁\"", - "$" - ], - [ - "un", - "i" - ], - [ - "u", - "ni" - ], - [ - "qu", - "ence" - ], - [ - "▁l", - "ui" - ], - [ - "▁lu", - "i" - ], - [ - "H", - "T" - ], - [ - "▁us", - "es" - ], - [ - "▁use", - "s" - ], - [ - "▁", - "uses" - ], - [ - "zi", - "e" - ], - [ - "z", - "ie" - ], - [ - "ni", - "a" - ], - [ - "n", - "ia" - ], - [ - "Cont", - "ent" - ], - [ - "▁C", - "ount" - ], - [ - "▁Co", - "unt" - ], - [ - "▁Coun", - "t" - ], - [ - "▁Cou", - "nt" - ], - [ - "▁", - "Count" - ], - [ - "▁stand", - "ard" - ], - [ - "▁", - "standard" - ], - [ - "EN", - "T" - ], - [ - "E", - "NT" - ], - [ - "▁ко", - "н" - ], - [ - "▁к", - "он" - ], - [ - "▁", - "кон" - ], - [ - "fo", - "rt" - ], - [ - "for", - "t" - ], - [ - "f", - "ort" - ], - [ - "ad", - "as" - ], - [ - "ada", - "s" - ], - [ - "a", - "das" - ], - [ - "з", - "у" - ], - [ - "S", - "ystem" - ], - [ - "▁S", - "w" - ], - [ - "▁", - "Sw" - ], - [ - "▁e", - "ver" - ], - [ - "▁ev", - "er" - ], - [ - "▁", - "ever" - ], - [ - "L", - "O" - ], - [ - "▁cor", - "respond" - ], - [ - "▁P", - "o" - ], - [ - "▁", - "Po" - ], - [ - "ar", - "gin" - ], - [ - "arg", - "in" - ], - [ - "к", - "т" - ], - [ - "і", - "й" - ], - [ - "▁re", - "main" - ], - [ - "▁rem", - "ain" - ], - [ - "ci", - "o" - ], - [ - "c", - "io" - ], - [ - "▁act", - "ual" - ], - [ - "▁actu", - "al" - ], - [ - "▁", - "actual" - ], - [ - "ст", - "у" - ], - [ - "с", - "ту" - ], - [ - "▁s", - "ind" - ], - [ - "▁si", - "nd" - ], - [ - "▁sin", - "d" - ], - [ - "▁P", - "e" - ], - [ - "▁", - "Pe" - ], - [ - "▁ch", - "anged" - ], - [ - "▁change", - "d" - ], - [ - "▁chang", - "ed" - ], - [ - "▁", - "changed" - ], - [ - "▁N", - "ote" - ], - [ - "▁No", - "te" - ], - [ - "▁Not", - "e" - ], - [ - "▁", - "Note" - ], - [ - "sk", - "ie" - ], - [ - "ski", - "e" - ], - [ - "s", - "kie" - ], - [ - "▁famil", - "y" - ], - [ - "▁fam", - "ily" - ], - [ - "▁", - "family" - ], - [ - "it", - "à" - ], - [ - "co", - "s" - ], - [ - "c", - "os" - ], - [ - "tx", - "t" - ], - [ - "t", - "xt" - ], - [ - "ke", - "r" - ], - [ - "k", - "er" - ], - [ - "ce", - "ed" - ], - [ - "c", - "eed" - ], - [ - "▁a", - "rr" - ], - [ - "▁ar", - "r" - ], - [ - "▁", - "arr" - ], - [ - "▁c", - "am" - ], - [ - "▁ca", - "m" - ], - [ - "▁", - "cam" - ], - [ - "iz", - "er" - ], - [ - "ize", - "r" - ], - [ - "i", - "zer" - ], - [ - "▁D", - "an" - ], - [ - "▁Da", - "n" - ], - [ - "▁", - "Dan" - ], - [ - "he", - "l" - ], - [ - "h", - "el" - ], - [ - "ic", - "ult" - ], - [ - "icul", - "t" - ], - [ - "H", - "P" - ], - [ - "il", - "er" - ], - [ - "ile", - "r" - ], - [ - "i", - "ler" - ], - [ - "▁S", - "al" - ], - [ - "▁Sa", - "l" - ], - [ - "▁", - "Sal" - ], - [ - "▁con", - "nection" - ], - [ - "▁conne", - "ction" - ], - [ - "▁connect", - "ion" - ], - [ - "▁conn", - "ection" - ], - [ - "▁", - "connection" - ], - [ - "us", - "ion" - ], - [ - "k", - "n" - ], - [ - "R", - "I" - ], - [ - "▁v", - "om" - ], - [ - "▁vo", - "m" - ], - [ - "List", - "ener" - ], - [ - "▁", - "ö" - ], - [ - "▁d", - "im" - ], - [ - "▁di", - "m" - ], - [ - "▁", - "dim" - ], - [ - "▁p", - "ress" - ], - [ - "▁pr", - "ess" - ], - [ - "▁pre", - "ss" - ], - [ - "▁pres", - "s" - ], - [ - "▁", - "press" - ], - [ - "▁e", - "sc" - ], - [ - "▁es", - "c" - ], - [ - "▁", - "esc" - ], - [ - "▁T", - "ry" - ], - [ - "▁Tr", - "y" - ], - [ - "▁", - "Try" - ], - [ - "at", - "alog" - ], - [ - "ata", - "log" - ], - [ - "atal", - "og" - ], - [ - "▁th", - "anks" - ], - [ - "▁than", - "ks" - ], - [ - "▁thank", - "s" - ], - [ - "D", - "O" - ], - [ - "▁w", - "ritten" - ], - [ - "▁writ", - "ten" - ], - [ - "▁wr", - "itten" - ], - [ - "▁", - "written" - ], - [ - "di", - "r" - ], - [ - "d", - "ir" - ], - [ - "re", - "w" - ], - [ - "r", - "ew" - ], - [ - "▁f", - "ire" - ], - [ - "▁fi", - "re" - ], - [ - "▁fir", - "e" - ], - [ - "▁", - "fire" - ], - [ - "▁N", - "ach" - ], - [ - "▁Na", - "ch" - ], - [ - "▁", - "á" - ], - [ - "en", - "c" - ], - [ - "e", - "nc" - ], - [ - "▁or", - "igin" - ], - [ - "▁orig", - "in" - ], - [ - "▁", - "origin" - ], - [ - "▁Nov", - "ember" - ], - [ - "▁}", - ";" - ], - [ - "▁", - "};" - ], - [ - "Co", - "unt" - ], - [ - "C", - "ount" - ], - [ - "▁З", - "а" - ], - [ - "▁", - "За" - ], - [ - "▁g", - "raph" - ], - [ - "▁gr", - "aph" - ], - [ - "▁gra", - "ph" - ], - [ - "▁", - "graph" - ], - [ - "▁m", - "is" - ], - [ - "▁mi", - "s" - ], - [ - "▁", - "mis" - ], - [ - "▁Ex", - "ternal" - ], - [ - "▁Ext", - "ernal" - ], - [ - "▁Extern", - "al" - ], - [ - "▁Externa", - "l" - ], - [ - "▁", - "External" - ], - [ - "▁o", - "ptions" - ], - [ - "▁option", - "s" - ], - [ - "▁opt", - "ions" - ], - [ - "▁", - "options" - ], - [ - "▁U", - "RL" - ], - [ - "▁", - "URL" - ], - [ - "▁p", - "hp" - ], - [ - "▁ph", - "p" - ], - [ - "▁", - "php" - ], - [ - "▁in", - "tegr" - ], - [ - "▁int", - "egr" - ], - [ - "▁inte", - "gr" - ], - [ - "▁", - "integr" - ], - [ - "Con", - "fig" - ], - [ - "Conf", - "ig" - ], - [ - "▁T", - "ext" - ], - [ - "▁Te", - "xt" - ], - [ - "▁Tex", - "t" - ], - [ - "▁", - "Text" - ], - [ - "in", - "ner" - ], - [ - "inn", - "er" - ], - [ - "▁c", - "rit" - ], - [ - "▁cr", - "it" - ], - [ - "▁cri", - "t" - ], - [ - "▁", - "crit" - ], - [ - ",", - "”" - ], - [ - "▁t", - "og" - ], - [ - "▁to", - "g" - ], - [ - "$", - "$" - ], - [ - "no", - "f" - ], - [ - "n", - "of" - ], - [ - "▁s", - "es" - ], - [ - "▁se", - "s" - ], - [ - "üh", - "r" - ], - [ - "ü", - "hr" - ], - [ - "▁S", - "ince" - ], - [ - "▁Sin", - "ce" - ], - [ - "▁", - "Since" - ], - [ - "De", - "s" - ], - [ - "D", - "es" - ], - [ - "ub", - "e" - ], - [ - "u", - "be" - ], - [ - "▁s", - "ection" - ], - [ - "▁se", - "ction" - ], - [ - "▁sec", - "tion" - ], - [ - "▁sect", - "ion" - ], - [ - "▁", - "section" - ], - [ - "▁g", - "i" - ], - [ - "▁", - "gi" - ], - [ - "fo", - "rd" - ], - [ - "for", - "d" - ], - [ - "f", - "ord" - ], - [ - "▁A", - "ss" - ], - [ - "▁As", - "s" - ], - [ - "▁", - "Ass" - ], - [ - "ain", - "er" - ], - [ - "ai", - "ner" - ], - [ - "aine", - "r" - ], - [ - "a", - "iner" - ], - [ - "tt", - "p" - ], - [ - "t", - "tp" - ], - [ - "▁be", - "hav" - ], - [ - "▁beh", - "av" - ], - [ - "port", - "s" - ], - [ - "por", - "ts" - ], - [ - "dr", - "aw" - ], - [ - "dra", - "w" - ], - [ - "d", - "raw" - ], - [ - "Th", - "is" - ], - [ - "T", - "his" - ], - [ - "ran", - "ch" - ], - [ - "r", - "anch" - ], - [ - "in", - "ding" - ], - [ - "ind", - "ing" - ], - [ - "indi", - "ng" - ], - [ - "▁e", - "stab" - ], - [ - "▁est", - "ab" - ], - [ - "▁es", - "tab" - ], - [ - "▁esta", - "b" - ], - [ - "▁ob", - "tain" - ], - [ - "▁obt", - "ain" - ], - [ - "ri", - "ch" - ], - [ - "ric", - "h" - ], - [ - "r", - "ich" - ], - [ - "li", - "cit" - ], - [ - "lic", - "it" - ], - [ - "е", - "в" - ], - [ - "▁qu", - "al" - ], - [ - "▁q", - "ual" - ], - [ - "▁", - "qual" - ], - [ - "▁z", - "a" - ], - [ - "▁", - "za" - ], - [ - "▁h", - "ar" - ], - [ - "▁ha", - "r" - ], - [ - "▁", - "har" - ], - [ - "▁f", - "ac" - ], - [ - "▁fa", - "c" - ], - [ - "▁", - "fac" - ], - [ - "aa", - "r" - ], - [ - "a", - "ar" - ], - [ - "je", - "t" - ], - [ - "j", - "et" - ], - [ - "ic", - "les" - ], - [ - "icle", - "s" - ], - [ - "i", - "cles" - ], - [ - "▁A", - "us" - ], - [ - "▁Au", - "s" - ], - [ - "▁", - "Aus" - ], - [ - "▁h", - "or" - ], - [ - "▁ho", - "r" - ], - [ - "▁", - "hor" - ], - [ - "▁re", - "mov" - ], - [ - "▁rem", - "ov" - ], - [ - "▁w", - "ie" - ], - [ - "▁", - "wie" - ], - [ - "Cl", - "ient" - ], - [ - "C", - "lient" - ], - [ - "▁n", - "atur" - ], - [ - "▁nat", - "ur" - ], - [ - "hi", - "p" - ], - [ - "h", - "ip" - ], - [ - "Su", - "b" - ], - [ - "S", - "ub" - ], - [ - "▁r", - "andom" - ], - [ - "▁ran", - "dom" - ], - [ - "▁rand", - "om" - ], - [ - "▁", - "random" - ], - [ - "D", - "F" - ], - [ - "▁a", - "rea" - ], - [ - "▁are", - "a" - ], - [ - "▁ar", - "ea" - ], - [ - "▁", - "area" - ], - [ - "ta", - "g" - ], - [ - "t", - "ag" - ], - [ - "P", - "r" - ], - [ - "▁I", - "tal" - ], - [ - "▁It", - "al" - ], - [ - "▁", - "Ital" - ], - [ - "▁r", - "oku" - ], - [ - "▁ro", - "ku" - ], - [ - "▁rok", - "u" - ], - [ - "no", - "follow" - ], - [ - "nof", - "ollow" - ], - [ - "*", - "}" - ], - [ - "▁o", - "thers" - ], - [ - "▁other", - "s" - ], - [ - "▁l", - "imit" - ], - [ - "▁li", - "mit" - ], - [ - "▁lim", - "it" - ], - [ - "▁", - "limit" - ], - [ - "▁s", - "il" - ], - [ - "▁si", - "l" - ], - [ - "▁", - "sil" - ], - [ - "▁s", - "av" - ], - [ - "▁sa", - "v" - ], - [ - "▁o", - "ften" - ], - [ - "▁of", - "ten" - ], - [ - "▁oft", - "en" - ], - [ - "▁re", - "nder" - ], - [ - "▁r", - "ender" - ], - [ - "▁ren", - "der" - ], - [ - "▁rend", - "er" - ], - [ - "▁rende", - "r" - ], - [ - "▁", - "render" - ], - [ - "D", - "B" - ], - [ - "▁M", - "c" - ], - [ - "▁", - "Mc" - ], - [ - "▁z", - "ijn" - ], - [ - "▁zij", - "n" - ], - [ - "же", - "н" - ], - [ - "ж", - "ен" - ], - [ - "▁t", - "ag" - ], - [ - "▁ta", - "g" - ], - [ - "▁", - "tag" - ], - [ - "min", - "g" - ], - [ - "mi", - "ng" - ], - [ - "m", - "ing" - ], - [ - "li", - "chen" - ], - [ - "lic", - "hen" - ], - [ - "lich", - "en" - ], - [ - "liche", - "n" - ], - [ - "l", - "ichen" - ], - [ - "pa", - "ck" - ], - [ - "p", - "ack" - ], - [ - "▁A", - "g" - ], - [ - "▁", - "Ag" - ], - [ - "▁s", - "ense" - ], - [ - "▁sens", - "e" - ], - [ - "▁sen", - "se" - ], - [ - "p", - "g" - ], - [ - "Met", - "hod" - ], - [ - "M", - "ethod" - ], - [ - "ag", - "ed" - ], - [ - "age", - "d" - ], - [ - "a", - "ged" - ], - [ - "á", - "g" - ], - [ - "ł", - "a" - ], - [ - "▁inter", - "est" - ], - [ - "▁inte", - "rest" - ], - [ - "▁as", - "soci" - ], - [ - "▁ass", - "oci" - ], - [ - "▁", - "associ" - ], - [ - "vol", - "ution" - ], - [ - "▁em", - "pty" - ], - [ - "▁emp", - "ty" - ], - [ - "▁", - "empty" - ], - [ - "ic", - "he" - ], - [ - "ich", - "e" - ], - [ - "i", - "che" - ], - [ - "▁g", - "ro" - ], - [ - "▁gr", - "o" - ], - [ - "▁", - "gro" - ], - [ - "▁t", - "ypes" - ], - [ - "▁type", - "s" - ], - [ - "▁typ", - "es" - ], - [ - "▁ty", - "pes" - ], - [ - "▁", - "types" - ], - [ - "▁S", - "ie" - ], - [ - "▁Si", - "e" - ], - [ - "In", - "ter" - ], - [ - "Int", - "er" - ], - [ - "▁n", - "oreferrer" - ], - [ - "▁", - "noreferrer" - ], - [ - "▁g", - "ives" - ], - [ - "▁giv", - "es" - ], - [ - "▁give", - "s" - ], - [ - "▁gi", - "ves" - ], - [ - "ha", - "l" - ], - [ - "h", - "al" - ], - [ - "▁s", - "ave" - ], - [ - "▁sa", - "ve" - ], - [ - "▁sav", - "e" - ], - [ - "▁", - "save" - ], - [ - "▁f", - "ont" - ], - [ - "▁fo", - "nt" - ], - [ - "▁fon", - "t" - ], - [ - "▁", - "font" - ], - [ - "ru", - "ction" - ], - [ - "ruct", - "ion" - ], - [ - "S", - "cript" - ], - [ - "▁a", - "lla" - ], - [ - "▁al", - "la" - ], - [ - "▁all", - "a" - ], - [ - "▁", - "alla" - ], - [ - "▁s", - "ays" - ], - [ - "▁sa", - "ys" - ], - [ - "▁say", - "s" - ], - [ - "▁f", - "u" - ], - [ - "▁", - "fu" - ], - [ - "ap", - "e" - ], - [ - "a", - "pe" - ], - [ - "▁l", - "anguage" - ], - [ - "▁", - "language" - ], - [ - "ig", - "er" - ], - [ - "ige", - "r" - ], - [ - "i", - "ger" - ], - [ - "▁K", - "ing" - ], - [ - "▁Ki", - "ng" - ], - [ - "▁Kin", - "g" - ], - [ - "bo", - "r" - ], - [ - "b", - "or" - ], - [ - "u", - "v" - ], - [ - "▁s", - "hall" - ], - [ - "▁sh", - "all" - ], - [ - "▁E", - "urope" - ], - [ - "▁Europ", - "e" - ], - [ - "▁Euro", - "pe" - ], - [ - "▁Eur", - "ope" - ], - [ - "▁", - "Europe" - ], - [ - "▁ein", - "em" - ], - [ - "▁eine", - "m" - ], - [ - "▁w", - "ater" - ], - [ - "▁wa", - "ter" - ], - [ - "▁wat", - "er" - ], - [ - "▁", - "water" - ], - [ - "▁g", - "overn" - ], - [ - "▁go", - "vern" - ], - [ - "▁gover", - "n" - ], - [ - "an", - "z" - ], - [ - "at", - "ors" - ], - [ - "ator", - "s" - ], - [ - "ato", - "rs" - ], - [ - "▁mon", - "th" - ], - [ - "▁mo", - "nth" - ], - [ - "▁mont", - "h" - ], - [ - "▁", - "month" - ], - [ - "y", - "e" - ], - [ - "▁import", - "ant" - ], - [ - "▁", - "important" - ], - [ - "at", - "z" - ], - [ - "a", - "tz" - ], - [ - "fir", - "st" - ], - [ - "f", - "irst" - ], - [ - "▁Tr", - "ans" - ], - [ - "▁Tra", - "ns" - ], - [ - "▁", - "Trans" - ], - [ - "▁M", - "ad" - ], - [ - "▁Ma", - "d" - ], - [ - "▁", - "Mad" - ], - [ - "▁b", - "ra" - ], - [ - "▁br", - "a" - ], - [ - "▁", - "bra" - ], - [ - "ik", - "a" - ], - [ - "i", - "ka" - ], - [ - "▁S", - "aint" - ], - [ - "▁Sa", - "int" - ], - [ - "▁Sain", - "t" - ], - [ - "▁", - "Saint" - ], - [ - "or", - "ia" - ], - [ - "ori", - "a" - ], - [ - "o", - "ria" - ], - [ - "kr", - "e" - ], - [ - "k", - "re" - ], - [ - "em", - "ents" - ], - [ - "ement", - "s" - ], - [ - "emen", - "ts" - ], - [ - "e", - "ments" - ], - [ - "▁B", - "en" - ], - [ - "▁Be", - "n" - ], - [ - "▁", - "Ben" - ], - [ - "la", - "v" - ], - [ - "l", - "av" - ], - [ - "▁ad", - "min" - ], - [ - "▁adm", - "in" - ], - [ - "▁", - "admin" - ], - [ - "▁H", - "en" - ], - [ - "▁He", - "n" - ], - [ - "▁", - "Hen" - ], - [ - "ri", - "l" - ], - [ - "r", - "il" - ], - [ - "▁S", - "m" - ], - [ - "▁", - "Sm" - ], - [ - "ca", - "t" - ], - [ - "c", - "at" - ], - [ - "▁Re", - "fer" - ], - [ - "▁Ref", - "er" - ], - [ - "▁", - "Ш" - ], - [ - "▁p", - "ract" - ], - [ - "▁pr", - "act" - ], - [ - "▁pra", - "ct" - ], - [ - "▁prac", - "t" - ], - [ - "▁P", - "at" - ], - [ - "▁Pa", - "t" - ], - [ - "▁", - "Pat" - ], - [ - "▁G", - "re" - ], - [ - "▁Gr", - "e" - ], - [ - "▁", - "Gre" - ], - [ - "▁you", - "ng" - ], - [ - "▁yo", - "ung" - ], - [ - "▁In", - "ter" - ], - [ - "▁Int", - "er" - ], - [ - "▁", - "Inter" - ], - [ - "om", - "a" - ], - [ - "o", - "ma" - ], - [ - "te", - "ger" - ], - [ - "ib", - "ility" - ], - [ - "ibil", - "ity" - ], - [ - "▁param", - "eters" - ], - [ - "▁parameter", - "s" - ], - [ - "▁paramet", - "ers" - ], - [ - "▁", - "parameters" - ], - [ - "▁every", - "thing" - ], - [ - "da", - "t" - ], - [ - "d", - "at" - ], - [ - "ur", - "op" - ], - [ - "uro", - "p" - ], - [ - "u", - "rop" - ], - [ - "ole", - "an" - ], - [ - "o", - "lean" - ], - [ - "▁return", - "ed" - ], - [ - "▁C", - "lass" - ], - [ - "▁Cl", - "ass" - ], - [ - "▁Cla", - "ss" - ], - [ - "▁", - "Class" - ], - [ - "ac", - "y" - ], - [ - "a", - "cy" - ], - [ - "##", - "##" - ], - [ - "▁p", - "ř" - ], - [ - "▁f", - "older" - ], - [ - "▁fol", - "der" - ], - [ - "▁fo", - "lder" - ], - [ - "▁", - "folder" - ], - [ - "▁k", - "on" - ], - [ - "▁ko", - "n" - ], - [ - "▁", - "kon" - ], - [ - "▁gu", - "ess" - ], - [ - "g", - "t" - ], - [ - "je", - "n" - ], - [ - "j", - "en" - ], - [ - "an", - "nel" - ], - [ - "ann", - "el" - ], - [ - "anne", - "l" - ], - [ - "ic", - "on" - ], - [ - "ico", - "n" - ], - [ - "i", - "con" - ], - [ - "▁c", - "omb" - ], - [ - "▁com", - "b" - ], - [ - "▁co", - "mb" - ], - [ - "▁", - "comb" - ], - [ - "ri", - "ct" - ], - [ - "ric", - "t" - ], - [ - "r", - "ict" - ], - [ - "▁h", - "ij" - ], - [ - "▁hi", - "j" - ], - [ - "▁aut", - "hor" - ], - [ - "▁auth", - "or" - ], - [ - "▁", - "author" - ], - [ - "se", - "e" - ], - [ - "s", - "ee" - ], - [ - "he", - "re" - ], - [ - "her", - "e" - ], - [ - "h", - "ere" - ], - [ - "st", - "ra" - ], - [ - "str", - "a" - ], - [ - "s", - "tra" - ], - [ - "▁ent", - "ire" - ], - [ - "▁direct", - "ly" - ], - [ - "ra", - "ft" - ], - [ - "raf", - "t" - ], - [ - "r", - "aft" - ], - [ - "he", - "et" - ], - [ - "es", - "ter" - ], - [ - "est", - "er" - ], - [ - "este", - "r" - ], - [ - "e", - "ster" - ], - [ - "▁м", - "и" - ], - [ - "▁", - "ми" - ], - [ - "▁m", - "ass" - ], - [ - "▁ma", - "ss" - ], - [ - "▁mas", - "s" - ], - [ - "▁", - "mass" - ], - [ - "un", - "tu" - ], - [ - "unt", - "u" - ], - [ - "▁u", - "sers" - ], - [ - "▁us", - "ers" - ], - [ - "▁use", - "rs" - ], - [ - "▁user", - "s" - ], - [ - "▁", - "users" - ], - [ - "ch", - "i" - ], - [ - "c", - "hi" - ], - [ - "P", - "E" - ], - [ - "▁com", - "ponent" - ], - [ - "▁compon", - "ent" - ], - [ - "▁", - "component" - ], - [ - "Cl", - "ick" - ], - [ - "C", - "lick" - ], - [ - "At", - "t" - ], - [ - "A", - "tt" - ], - [ - "▁s", - "obre" - ], - [ - "▁so", - "bre" - ], - [ - "▁sob", - "re" - ], - [ - "an", - "ds" - ], - [ - "and", - "s" - ], - [ - "▁H", - "ol" - ], - [ - "▁Ho", - "l" - ], - [ - "▁", - "Hol" - ], - [ - "▁S", - "ant" - ], - [ - "▁San", - "t" - ], - [ - "▁Sa", - "nt" - ], - [ - "or", - "i" - ], - [ - "o", - "ri" - ], - [ - "▁s", - "ua" - ], - [ - "▁su", - "a" - ], - [ - "st", - "d" - ], - [ - "s", - "td" - ], - [ - "ent", - "ic" - ], - [ - "enti", - "c" - ], - [ - "C", - "C" - ], - [ - "▁fil", - "ter" - ], - [ - "▁", - "filter" - ], - [ - "S", - "QL" - ], - [ - "▁G", - "od" - ], - [ - "▁Go", - "d" - ], - [ - "A", - "t" - ], - [ - "▁м", - "у" - ], - [ - "▁", - "му" - ], - [ - "▁per", - "formance" - ], - [ - "▁perform", - "ance" - ], - [ - "del", - "ta" - ], - [ - "d", - "elta" - ], - [ - "an", - "de" - ], - [ - "and", - "e" - ], - [ - "a", - "nde" - ], - [ - "am", - "er" - ], - [ - "ame", - "r" - ], - [ - "a", - "mer" - ], - [ - "д", - "ы" - ], - [ - "▁c", - "ult" - ], - [ - "▁cu", - "lt" - ], - [ - "▁cul", - "t" - ], - [ - "▁N", - "or" - ], - [ - "▁No", - "r" - ], - [ - "bu", - "t" - ], - [ - "b", - "ut" - ], - [ - "▁l", - "ik" - ], - [ - "▁li", - "k" - ], - [ - "▁", - "lik" - ], - [ - "****", - "****" - ], - [ - "ст", - "вен" - ], - [ - "ств", - "ен" - ], - [ - "стве", - "н" - ], - [ - "▁com", - "me" - ], - [ - "▁comm", - "e" - ], - [ - "▁d", - "r" - ], - [ - "▁", - "dr" - ], - [ - "im", - "er" - ], - [ - "ime", - "r" - ], - [ - "i", - "mer" - ], - [ - "or", - "din" - ], - [ - "ord", - "in" - ], - [ - "▁cond", - "ition" - ], - [ - "▁", - "condition" - ], - [ - "es", - "te" - ], - [ - "est", - "e" - ], - [ - "e", - "ste" - ], - [ - "(", - "[" - ], - [ - "F", - "F" - ], - [ - "ть", - "ся" - ], - [ - "im", - "o" - ], - [ - "i", - "mo" - ], - [ - "ra", - "b" - ], - [ - "r", - "ab" - ], - [ - "і", - "ль" - ], - [ - "▁h", - "alf" - ], - [ - "▁hal", - "f" - ], - [ - "▁", - "half" - ], - [ - "ea", - "ch" - ], - [ - "e", - "ach" - ], - [ - "Di", - "s" - ], - [ - "D", - "is" - ], - [ - "▁r", - "ows" - ], - [ - "▁ro", - "ws" - ], - [ - "▁row", - "s" - ], - [ - "▁", - "rows" - ], - [ - "▁h", - "on" - ], - [ - "▁ho", - "n" - ], - [ - "▁", - "hon" - ], - [ - "▁t", - "ogether" - ], - [ - "▁tog", - "ether" - ], - [ - "▁", - "și" - ], - [ - "me", - "di" - ], - [ - "med", - "i" - ], - [ - "m", - "edi" - ], - [ - "ag", - "n" - ], - [ - "a", - "gn" - ], - [ - "al", - "led" - ], - [ - "all", - "ed" - ], - [ - "alle", - "d" - ], - [ - "▁v", - "ill" - ], - [ - "▁vi", - "ll" - ], - [ - "▁vil", - "l" - ], - [ - "IN", - "G" - ], - [ - "I", - "NG" - ], - [ - "id", - "den" - ], - [ - "idd", - "en" - ], - [ - "▁d", - "raw" - ], - [ - "▁dr", - "aw" - ], - [ - "▁dra", - "w" - ], - [ - "▁", - "draw" - ], - [ - "yn", - "tax" - ], - [ - "ynt", - "ax" - ], - [ - "▁att", - "empt" - ], - [ - "UR", - "L" - ], - [ - "U", - "RL" - ], - [ - "pos", - "e" - ], - [ - "po", - "se" - ], - [ - "p", - "ose" - ], - [ - "▁in", - "dic" - ], - [ - "▁ind", - "ic" - ], - [ - "ни", - "ка" - ], - [ - "ник", - "а" - ], - [ - "▁Eng", - "lish" - ], - [ - "▁", - "English" - ], - [ - "▁d", - "éc" - ], - [ - "▁dé", - "c" - ], - [ - "▁ne", - "eds" - ], - [ - "▁need", - "s" - ], - [ - "▁n", - "ormal" - ], - [ - "▁nor", - "mal" - ], - [ - "▁norm", - "al" - ], - [ - "▁", - "normal" - ], - [ - "ur", - "t" - ], - [ - "u", - "rt" - ], - [ - "▁н", - "о" - ], - [ - "▁", - "но" - ], - [ - "}}", - "\\" - ], - [ - "}", - "}\\" - ], - [ - "la", - "st" - ], - [ - "las", - "t" - ], - [ - "l", - "ast" - ], - [ - "▁F", - "in" - ], - [ - "▁", - "Fin" - ], - [ - "▁F", - "ebru" - ], - [ - "▁Fe", - "bru" - ], - [ - "▁Feb", - "ru" - ], - [ - "il", - "a" - ], - [ - "i", - "la" - ], - [ - "▁c", - "ountry" - ], - [ - "▁count", - "ry" - ], - [ - "▁coun", - "try" - ], - [ - "▁", - "country" - ], - [ - "▁field", - "s" - ], - [ - "▁fiel", - "ds" - ], - [ - "▁", - "fields" - ], - [ - "▁m", - "ax" - ], - [ - "▁ma", - "x" - ], - [ - "▁", - "max" - ], - [ - "lé", - "s" - ], - [ - "l", - "és" - ], - [ - "ow", - "ie" - ], - [ - "owi", - "e" - ], - [ - "o", - "wie" - ], - [ - "▁de", - "ux" - ], - [ - "▁bu", - "ilt" - ], - [ - "▁", - "built" - ], - [ - "▁M", - "ain" - ], - [ - "▁Ma", - "in" - ], - [ - "▁Mai", - "n" - ], - [ - "▁", - "Main" - ], - [ - "▁c", - "amp" - ], - [ - "▁cam", - "p" - ], - [ - "▁ca", - "mp" - ], - [ - "▁", - "camp" - ], - [ - "iv", - "o" - ], - [ - "i", - "vo" - ], - [ - "iv", - "a" - ], - [ - "i", - "va" - ], - [ - "ic", - "y" - ], - [ - "i", - "cy" - ], - [ - "zi", - "one" - ], - [ - "z", - "ione" - ], - [ - "No", - "de" - ], - [ - "N", - "ode" - ], - [ - "▁:", - ")" - ], - [ - "▁", - ":)" - ], - [ - "▁am", - "ong" - ], - [ - "▁O", - "b" - ], - [ - "▁", - "Ob" - ], - [ - "▁c", - "ases" - ], - [ - "▁case", - "s" - ], - [ - "▁cas", - "es" - ], - [ - "▁", - "cases" - ], - [ - "ha", - "ps" - ], - [ - "h", - "aps" - ], - [ - "se", - "rs" - ], - [ - "ser", - "s" - ], - [ - "s", - "ers" - ], - [ - "ar", - "ter" - ], - [ - "art", - "er" - ], - [ - "arte", - "r" - ], - [ - "śc", - "i" - ], - [ - "ś", - "ci" - ], - [ - "▁it", - "er" - ], - [ - "▁i", - "ter" - ], - [ - "▁", - "iter" - ], - [ - "▁n", - "amed" - ], - [ - "▁name", - "d" - ], - [ - "▁na", - "med" - ], - [ - "▁nam", - "ed" - ], - [ - "▁", - "named" - ], - [ - "ex", - "ec" - ], - [ - "exe", - "c" - ], - [ - "▁se", - "ason" - ], - [ - "▁sea", - "son" - ], - [ - "▁", - "season" - ], - [ - "to", - "t" - ], - [ - "t", - "ot" - ], - [ - "=", - ">" - ], - [ - "gr", - "aph" - ], - [ - "gra", - "ph" - ], - [ - "g", - "raph" - ], - [ - "▁n", - "il" - ], - [ - "▁ni", - "l" - ], - [ - "▁", - "nil" - ], - [ - "ac", - "ional" - ], - [ - "acion", - "al" - ], - [ - "aci", - "onal" - ], - [ - "▁N", - "ULL" - ], - [ - "▁", - "NULL" - ], - [ - "▁spe", - "cial" - ], - [ - "▁spec", - "ial" - ], - [ - "▁", - "special" - ], - [ - "ст", - "е" - ], - [ - "с", - "те" - ], - [ - "cs", - "s" - ], - [ - "c", - "ss" - ], - [ - "▁\\", - "(" - ], - [ - "v", - "s" - ], - [ - "ae", - "l" - ], - [ - "a", - "el" - ], - [ - "▁c", - "ity" - ], - [ - "▁ci", - "ty" - ], - [ - "▁cit", - "y" - ], - [ - "▁", - "city" - ], - [ - "ov", - "a" - ], - [ - "o", - "va" - ], - [ - "▁art", - "icle" - ], - [ - "▁", - "article" - ], - [ - "▁S", - "outh" - ], - [ - "▁So", - "uth" - ], - [ - "▁Sou", - "th" - ], - [ - "Act", - "ion" - ], - [ - "Ac", - "tion" - ], - [ - "A", - "ction" - ], - [ - "ç", - "a" - ], - [ - "sp", - "ring" - ], - [ - "spr", - "ing" - ], - [ - "s", - "pring" - ], - [ - "it", - "ude" - ], - [ - "itu", - "de" - ], - [ - "itud", - "e" - ], - [ - "▁com", - "plex" - ], - [ - "▁comp", - "lex" - ], - [ - "▁comple", - "x" - ], - [ - "▁compl", - "ex" - ], - [ - "▁", - "complex" - ], - [ - "▁ч", - "то" - ], - [ - "bu", - "ild" - ], - [ - "g", - "amma" - ], - [ - "▁E", - "nt" - ], - [ - "▁En", - "t" - ], - [ - "▁", - "Ent" - ], - [ - "ie", - "rs" - ], - [ - "ier", - "s" - ], - [ - "i", - "ers" - ], - [ - "'", - "." - ], - [ - "ca", - "r" - ], - [ - "c", - "ar" - ], - [ - "ap", - "ache" - ], - [ - "apa", - "che" - ], - [ - "in", - "gen" - ], - [ - "ing", - "en" - ], - [ - "inge", - "n" - ], - [ - "In", - "put" - ], - [ - ":", - " " - ], - [ - "▁d", - "ynam" - ], - [ - "▁dy", - "nam" - ], - [ - "al", - "ls" - ], - [ - "all", - "s" - ], - [ - "sh", - "ow" - ], - [ - "s", - "how" - ], - [ - "|", - "\\" - ], - [ - "▁w", - "ird" - ], - [ - "▁wir", - "d" - ], - [ - "B", - "ar" - ], - [ - "al", - "th" - ], - [ - "alt", - "h" - ], - [ - "mod", - "el" - ], - [ - "mo", - "del" - ], - [ - "mode", - "l" - ], - [ - "m", - "odel" - ], - [ - "Tr", - "ans" - ], - [ - "Tra", - "ns" - ], - [ - "Ro", - "w" - ], - [ - "R", - "ow" - ], - [ - "ab", - "e" - ], - [ - "a", - "be" - ], - [ - "▁l", - "ib" - ], - [ - "▁li", - "b" - ], - [ - "▁", - "lib" - ], - [ - "nu", - "ll" - ], - [ - "n", - "ull" - ], - [ - "ra", - "gment" - ], - [ - "rag", - "ment" - ], - [ - "▁St", - "ate" - ], - [ - "▁Stat", - "e" - ], - [ - "▁Sta", - "te" - ], - [ - "▁", - "State" - ], - [ - "▁l", - "aw" - ], - [ - "▁la", - "w" - ], - [ - "▁", - "law" - ], - [ - "Fr", - "ame" - ], - [ - "F", - "rame" - ], - [ - "▁L", - "o" - ], - [ - "▁", - "Lo" - ], - [ - "ge", - "b" - ], - [ - "g", - "eb" - ], - [ - "}$", - "." - ], - [ - "}", - "$." - ], - [ - "▁ne", - "eded" - ], - [ - "▁need", - "ed" - ], - [ - "▁con", - "tr" - ], - [ - "▁cont", - "r" - ], - [ - "▁", - "contr" - ], - [ - "ar", - "ies" - ], - [ - "ari", - "es" - ], - [ - "arie", - "s" - ], - [ - "a", - "ries" - ], - [ - "▁s", - "creen" - ], - [ - "▁sc", - "reen" - ], - [ - "▁scr", - "een" - ], - [ - "▁", - "screen" - ], - [ - "y", - "r" - ], - [ - "m", - "m" - ], - [ - "▁sh", - "own" - ], - [ - "▁show", - "n" - ], - [ - "▁sho", - "wn" - ], - [ - "▁b", - "ad" - ], - [ - "▁ba", - "d" - ], - [ - "▁", - "bad" - ], - [ - "▁c", - "ast" - ], - [ - "▁cas", - "t" - ], - [ - "▁ca", - "st" - ], - [ - "▁", - "cast" - ], - [ - "▁T", - "est" - ], - [ - "▁Te", - "st" - ], - [ - "▁", - "Test" - ], - [ - "▁A", - "uf" - ], - [ - "▁Au", - "f" - ], - [ - "▁qu", - "ant" - ], - [ - "▁quan", - "t" - ], - [ - "▁", - "quant" - ], - [ - "ig", - "a" - ], - [ - "i", - "ga" - ], - [ - "▁re", - "n" - ], - [ - "▁r", - "en" - ], - [ - "▁", - "ren" - ], - [ - "▁M", - "ac" - ], - [ - "▁Ma", - "c" - ], - [ - "▁", - "Mac" - ], - [ - "▁trans", - "form" - ], - [ - "▁", - "transform" - ], - [ - "▁d", - "ifference" - ], - [ - "▁dif", - "ference" - ], - [ - "▁differ", - "ence" - ], - [ - "▁t", - "it" - ], - [ - "▁ti", - "t" - ], - [ - "▁", - "tit" - ], - [ - "T", - "E" - ], - [ - "▁st", - "ep" - ], - [ - "▁ste", - "p" - ], - [ - "▁", - "step" - ], - [ - "▁c", - "apt" - ], - [ - "▁cap", - "t" - ], - [ - "▁ca", - "pt" - ], - [ - "▁", - "capt" - ], - [ - "▁col", - "lection" - ], - [ - "▁coll", - "ection" - ], - [ - "▁collect", - "ion" - ], - [ - "▁colle", - "ction" - ], - [ - "▁", - "collection" - ], - [ - "iction", - "ary" - ], - [ - "▁T", - "om" - ], - [ - "▁To", - "m" - ], - [ - "▁", - "Tom" - ], - [ - "ri", - "er" - ], - [ - "rie", - "r" - ], - [ - "r", - "ier" - ], - [ - "▁m", - "ove" - ], - [ - "▁mov", - "e" - ], - [ - "▁mo", - "ve" - ], - [ - "▁", - "move" - ], - [ - "co", - "pe" - ], - [ - "cop", - "e" - ], - [ - "c", - "ope" - ], - [ - "or", - "ds" - ], - [ - "ord", - "s" - ], - [ - "▁fur", - "ther" - ], - [ - "▁column", - "s" - ], - [ - "▁", - "columns" - ], - [ - "▁L", - "in" - ], - [ - "▁Li", - "n" - ], - [ - "▁", - "Lin" - ], - [ - "▁f", - "ixed" - ], - [ - "▁fix", - "ed" - ], - [ - "▁", - "fixed" - ], - [ - "▁child", - "ren" - ], - [ - "▁", - "children" - ], - [ - "M", - "S" - ], - [ - "m", - "o" - ], - [ - "un", - "a" - ], - [ - "u", - "na" - ], - [ - "▁ind", - "ivid" - ], - [ - "tt", - "y" - ], - [ - "t", - "ty" - ], - [ - "as", - "te" - ], - [ - "ast", - "e" - ], - [ - "a", - "ste" - ], - [ - "sr", - "c" - ], - [ - "s", - "rc" - ], - [ - "mat", - "ch" - ], - [ - "m", - "atch" - ], - [ - "w", - "i" - ], - [ - "▁", - "х" - ], - [ - "▁д", - "и" - ], - [ - "▁", - "ди" - ], - [ - "▁o", - "rd" - ], - [ - "▁or", - "d" - ], - [ - "▁", - "ord" - ], - [ - "iv", - "ing" - ], - [ - "ivi", - "ng" - ], - [ - "i", - "ving" - ], - [ - "▁B", - "ro" - ], - [ - "▁Br", - "o" - ], - [ - "▁", - "Bro" - ], - [ - "▁al", - "most" - ], - [ - "▁P", - "res" - ], - [ - "▁Pr", - "es" - ], - [ - "▁Pre", - "s" - ], - [ - "▁", - "Pres" - ], - [ - "re", - "ci" - ], - [ - "rec", - "i" - ], - [ - "ar", - "ing" - ], - [ - "ari", - "ng" - ], - [ - "arin", - "g" - ], - [ - "a", - "ring" - ], - [ - "▁/", - "//" - ], - [ - "▁//", - "/" - ], - [ - "▁", - "///" - ], - [ - "ет", - "ся" - ], - [ - "е", - "тся" - ], - [ - "▁s", - "ig" - ], - [ - "▁si", - "g" - ], - [ - "▁", - "sig" - ], - [ - "lig", - "ht" - ], - [ - "l", - "ight" - ], - [ - "▁R", - "ed" - ], - [ - "▁Re", - "d" - ], - [ - "▁", - "Red" - ], - [ - "▁sugg", - "est" - ], - [ - "▁sug", - "gest" - ], - [ - "ol", - "f" - ], - [ - "▁é", - "té" - ], - [ - "▁ét", - "é" - ], - [ - "▁", - "été" - ], - [ - "is", - "ation" - ], - [ - "isa", - "tion" - ], - [ - "isat", - "ion" - ], - [ - "з", - "на" - ], - [ - "Ne", - "w" - ], - [ - "N", - "ew" - ], - [ - "ст", - "ан" - ], - [ - "ста", - "н" - ], - [ - "с", - "тан" - ], - [ - "L", - "A" - ], - [ - "un", - "icip" - ], - [ - "unic", - "ip" - ], - [ - "uni", - "cip" - ], - [ - "▁fig", - "ure" - ], - [ - "▁figur", - "e" - ], - [ - "▁", - "figure" - ], - [ - "m", - "t" - ], - [ - "ia", - "le" - ], - [ - "ial", - "e" - ], - [ - "i", - "ale" - ], - [ - "▁c", - "atch" - ], - [ - "▁cat", - "ch" - ], - [ - "▁", - "catch" - ], - [ - "de", - "fault" - ], - [ - "def", - "ault" - ], - [ - "▁t", - "ele" - ], - [ - "▁te", - "le" - ], - [ - "▁tel", - "e" - ], - [ - "▁", - "tele" - ], - [ - "▁m", - "atter" - ], - [ - "▁mat", - "ter" - ], - [ - "ca", - "st" - ], - [ - "cas", - "t" - ], - [ - "c", - "ast" - ], - [ - "▁R", - "ich" - ], - [ - "▁Ric", - "h" - ], - [ - "▁Ri", - "ch" - ], - [ - "▁", - "Rich" - ], - [ - "▁hand", - "le" - ], - [ - "▁", - "handle" - ], - [ - "val", - "u" - ], - [ - "va", - "lu" - ], - [ - "v", - "alu" - ], - [ - "$", - "-" - ], - [ - "о", - "б" - ], - [ - "▁j", - "son" - ], - [ - "▁js", - "on" - ], - [ - "▁", - "json" - ], - [ - "Cre", - "ate" - ], - [ - "C", - "reate" - ], - [ - "▁ex", - "am" - ], - [ - "ал", - "ь" - ], - [ - "а", - "ль" - ], - [ - "ю", - "т" - ], - [ - "or", - "ed" - ], - [ - "ore", - "d" - ], - [ - "o", - "red" - ], - [ - "id", - "os" - ], - [ - "ido", - "s" - ], - [ - "ap", - "pend" - ], - [ - "app", - "end" - ], - [ - "appen", - "d" - ], - [ - "appe", - "nd" - ], - [ - "▁Ar", - "ray" - ], - [ - "▁Arr", - "ay" - ], - [ - "▁", - "Array" - ], - [ - "к", - "с" - ], - [ - "}", - "[" - ], - [ - "ri", - "ve" - ], - [ - "riv", - "e" - ], - [ - "r", - "ive" - ], - [ - "▁c", - "lub" - ], - [ - "▁cl", - "ub" - ], - [ - "▁", - "club" - ], - [ - "ma", - "nn" - ], - [ - "man", - "n" - ], - [ - "m", - "ann" - ], - [ - "▁e", - "ste" - ], - [ - "▁est", - "e" - ], - [ - "▁es", - "te" - ], - [ - "▁", - "este" - ], - [ - "es", - "ta" - ], - [ - "est", - "a" - ], - [ - "e", - "sta" - ], - [ - "▁G", - "i" - ], - [ - "▁", - "Gi" - ], - [ - "▁J", - "ap" - ], - [ - "▁Ja", - "p" - ], - [ - "▁N", - "ame" - ], - [ - "▁Na", - "me" - ], - [ - "▁Nam", - "e" - ], - [ - "▁", - "Name" - ], - [ - "Col", - "umn" - ], - [ - "ou", - "ps" - ], - [ - "oup", - "s" - ], - [ - "o", - "ups" - ], - [ - "is", - "mo" - ], - [ - "ism", - "o" - ], - [ - "▁C", - "ity" - ], - [ - "▁Ci", - "ty" - ], - [ - "▁Cit", - "y" - ], - [ - "▁", - "City" - ], - [ - "▁class", - "es" - ], - [ - "▁classe", - "s" - ], - [ - "▁", - "classes" - ], - [ - "▁in", - "fl" - ], - [ - "▁inf", - "l" - ], - [ - "▁", - "infl" - ], - [ - "h", - "l" - ], - [ - "ро", - "м" - ], - [ - "р", - "ом" - ], - [ - "▁ad", - "ding" - ], - [ - "▁add", - "ing" - ], - [ - "▁", - "adding" - ], - [ - "▁f", - "ail" - ], - [ - "▁fa", - "il" - ], - [ - "▁", - "fail" - ], - [ - "x", - "x" - ], - [ - "õ", - "es" - ], - [ - "S", - "c" - ], - [ - "ut", - "il" - ], - [ - "uti", - "l" - ], - [ - "u", - "til" - ], - [ - "▁l", - "ocation" - ], - [ - "▁lo", - "cation" - ], - [ - "▁loc", - "ation" - ], - [ - "▁", - "location" - ], - [ - "le", - "ge" - ], - [ - "leg", - "e" - ], - [ - "l", - "ege" - ], - [ - "ag", - "o" - ], - [ - "a", - "go" - ], - [ - "▁pro", - "perties" - ], - [ - "▁proper", - "ties" - ], - [ - "▁", - "properties" - ], - [ - "ab", - "il" - ], - [ - "abi", - "l" - ], - [ - "a", - "bil" - ], - [ - "va", - "s" - ], - [ - "v", - "as" - ], - [ - "}$", - "," - ], - [ - "}", - "$," - ], - [ - "it", - "ted" - ], - [ - "itt", - "ed" - ], - [ - "itte", - "d" - ], - [ - "ó", - "d" - ], - [ - "▁D", - "em" - ], - [ - "▁De", - "m" - ], - [ - "▁as", - "ked" - ], - [ - "▁ask", - "ed" - ], - [ - "▁t", - "ab" - ], - [ - "▁ta", - "b" - ], - [ - "▁", - "tab" - ], - [ - "S", - "ource" - ], - [ - "▁error", - "s" - ], - [ - "▁err", - "ors" - ], - [ - "▁", - "errors" - ], - [ - "ograph", - "ie" - ], - [ - "▁ж", - "и" - ], - [ - "▁", - "жи" - ], - [ - "▁m", - "al" - ], - [ - "▁ma", - "l" - ], - [ - "▁", - "mal" - ], - [ - "st", - "ract" - ], - [ - "str", - "act" - ], - [ - "stra", - "ct" - ], - [ - "▁d", - "ro" - ], - [ - "▁dr", - "o" - ], - [ - "▁", - "dro" - ], - [ - "ra", - "k" - ], - [ - "r", - "ak" - ], - [ - "▁n", - "ote" - ], - [ - "▁not", - "e" - ], - [ - "▁no", - "te" - ], - [ - "▁", - "note" - ], - [ - "▁set", - "ting" - ], - [ - "▁sett", - "ing" - ], - [ - "▁", - "setting" - ], - [ - "▁f", - "em" - ], - [ - "▁fe", - "m" - ], - [ - "▁s", - "aw" - ], - [ - "▁sa", - "w" - ], - [ - "ia", - "r" - ], - [ - "i", - "ar" - ], - [ - "HE", - "R" - ], - [ - "H", - "ER" - ], - [ - "е", - "с" - ], - [ - "▁p", - "red" - ], - [ - "▁pr", - "ed" - ], - [ - "▁pre", - "d" - ], - [ - "▁", - "pred" - ], - [ - "▁O", - "ut" - ], - [ - "▁", - "Out" - ], - [ - "▁it", - "ems" - ], - [ - "▁item", - "s" - ], - [ - "▁", - "items" - ], - [ - "ла", - "н" - ], - [ - "л", - "ан" - ], - [ - "▁w", - "erd" - ], - [ - "▁we", - "rd" - ], - [ - "▁wer", - "d" - ], - [ - "ers", - "ion" - ], - [ - "li", - "a" - ], - [ - "l", - "ia" - ], - [ - "▁s", - "in" - ], - [ - "▁si", - "n" - ], - [ - "▁", - "sin" - ], - [ - "ich", - "te" - ], - [ - "icht", - "e" - ], - [ - "i", - "chte" - ], - [ - "▁fe", - "el" - ], - [ - "▁fee", - "l" - ], - [ - "▁п", - "ра" - ], - [ - "▁пр", - "а" - ], - [ - "▁", - "пра" - ], - [ - "▁o", - "der" - ], - [ - "▁od", - "er" - ], - [ - "▁", - "oder" - ], - [ - "U", - "E" - ], - [ - "oc", - "ument" - ], - [ - "▁m", - "ode" - ], - [ - "▁mod", - "e" - ], - [ - "▁mo", - "de" - ], - [ - "▁", - "mode" - ], - [ - "▁N", - "a" - ], - [ - "▁", - "Na" - ], - [ - "де", - "н" - ], - [ - "д", - "ен" - ], - [ - "me", - "s" - ], - [ - "m", - "es" - ], - [ - "frame", - "work" - ], - [ - "▁a", - "uto" - ], - [ - "▁au", - "to" - ], - [ - "▁aut", - "o" - ], - [ - "▁", - "auto" - ], - [ - "ны", - "м" - ], - [ - "н", - "ым" - ], - [ - "ub", - "y" - ], - [ - "u", - "by" - ], - [ - "▁tem", - "plate" - ], - [ - "▁temp", - "late" - ], - [ - "▁", - "template" - ], - [ - "▁m", - "ess" - ], - [ - "▁me", - "ss" - ], - [ - "▁mes", - "s" - ], - [ - "▁", - "mess" - ], - [ - "ie", - "der" - ], - [ - "ied", - "er" - ], - [ - "i", - "eder" - ], - [ - "▁rel", - "ated" - ], - [ - "▁rela", - "ted" - ], - [ - "▁relate", - "d" - ], - [ - "▁", - "related" - ], - [ - "ok", - "en" - ], - [ - "oke", - "n" - ], - [ - "o", - "ken" - ], - [ - "▁follow", - "s" - ], - [ - "se", - "arch" - ], - [ - "s", - "earch" - ], - [ - "am", - "i" - ], - [ - "a", - "mi" - ], - [ - "▁w", - "ait" - ], - [ - "▁wa", - "it" - ], - [ - "▁", - "wait" - ], - [ - "ig", - "r" - ], - [ - "i", - "gr" - ], - [ - "▁l", - "ow" - ], - [ - "▁lo", - "w" - ], - [ - "▁", - "low" - ], - [ - "ски", - "х" - ], - [ - "ск", - "их" - ], - [ - "с", - "ких" - ], - [ - "ска", - "я" - ], - [ - "с", - "кая" - ], - [ - "▁M", - "ark" - ], - [ - "▁Mar", - "k" - ], - [ - "▁", - "Mark" - ], - [ - "▁i", - "ll" - ], - [ - "▁il", - "l" - ], - [ - "▁", - "ill" - ], - [ - "am", - "ento" - ], - [ - "ament", - "o" - ], - [ - "amen", - "to" - ], - [ - "\\", - "<" - ], - [ - "▁d", - "f" - ], - [ - "▁", - "df" - ], - [ - "os", - "ition" - ], - [ - "osi", - "tion" - ], - [ - "▁В", - "и" - ], - [ - "is", - "f" - ], - [ - "i", - "sf" - ], - [ - "▁De", - "utsch" - ], - [ - "ah", - "l" - ], - [ - "a", - "hl" - ], - [ - "wa", - "r" - ], - [ - "w", - "ar" - ], - [ - "it", - "ect" - ], - [ - "ite", - "ct" - ], - [ - "▁s", - "al" - ], - [ - "▁sa", - "l" - ], - [ - "▁", - "sal" - ], - [ - "el", - "en" - ], - [ - "ele", - "n" - ], - [ - "e", - "len" - ], - [ - "By", - "Id" - ], - [ - "▁g", - "ru" - ], - [ - "▁gr", - "u" - ], - [ - "▁", - "gru" - ], - [ - "s", - "v" - ], - [ - "▁pass", - "ed" - ], - [ - "▁pas", - "sed" - ], - [ - "▁passe", - "d" - ], - [ - "▁a", - "ñ" - ], - [ - "▁", - "añ" - ], - [ - "Sc", - "h" - ], - [ - "S", - "ch" - ], - [ - "▁sol", - "ve" - ], - [ - "we", - "ise" - ], - [ - "weis", - "e" - ], - [ - "wei", - "se" - ], - [ - "at", - "os" - ], - [ - "ato", - "s" - ], - [ - "▁m", - "eg" - ], - [ - "▁me", - "g" - ], - [ - "▁m", - "ember" - ], - [ - "▁mem", - "ber" - ], - [ - "▁memb", - "er" - ], - [ - "▁", - "member" - ], - [ - "er", - "name" - ], - [ - "ern", - "ame" - ], - [ - "erna", - "me" - ], - [ - "▁con", - "nect" - ], - [ - "▁conne", - "ct" - ], - [ - "▁conn", - "ect" - ], - [ - "▁", - "connect" - ], - [ - "ip", - "s" - ], - [ - "i", - "ps" - ], - [ - "▁r", - "ound" - ], - [ - "▁ro", - "und" - ], - [ - "▁rou", - "nd" - ], - [ - "▁", - "round" - ], - [ - "▁", - "]" - ], - [ - "ne", - "s" - ], - [ - "n", - "es" - ], - [ - "▁d", - "ir" - ], - [ - "▁di", - "r" - ], - [ - "▁", - "dir" - ], - [ - "▁Lond", - "on" - ], - [ - "d", - "y" - ], - [ - "F", - "A" - ], - [ - "▁rece", - "ived" - ], - [ - "▁receive", - "d" - ], - [ - "re", - "et" - ], - [ - "ree", - "t" - ], - [ - "▁L", - "og" - ], - [ - "▁Lo", - "g" - ], - [ - "▁", - "Log" - ], - [ - "▁Sch", - "ool" - ], - [ - "an", - "go" - ], - [ - "ang", - "o" - ], - [ - "▁The", - "se" - ], - [ - "▁Th", - "ese" - ], - [ - "▁M", - "ont" - ], - [ - "▁Mon", - "t" - ], - [ - "▁Mo", - "nt" - ], - [ - "▁", - "Mont" - ], - [ - "▁e", - "ner" - ], - [ - "▁en", - "er" - ], - [ - "▁", - "ener" - ], - [ - "la", - "d" - ], - [ - "l", - "ad" - ], - [ - "▁def", - "ine" - ], - [ - "▁defin", - "e" - ], - [ - "▁", - "define" - ], - [ - "si", - "gn" - ], - [ - "sig", - "n" - ], - [ - "s", - "ign" - ], - [ - "▁c", - "le" - ], - [ - "▁cl", - "e" - ], - [ - "▁", - "cle" - ], - [ - "fig", - "ure" - ], - [ - "▁V", - "iew" - ], - [ - "▁Vi", - "ew" - ], - [ - "▁Vie", - "w" - ], - [ - "▁", - "View" - ], - [ - "text", - "bf" - ], - [ - "$", - "\\" - ], - [ - "з", - "ы" - ], - [ - "num", - "ber" - ], - [ - "n", - "umber" - ], - [ - "▁d", - "in" - ], - [ - "▁di", - "n" - ], - [ - "▁", - "din" - ], - [ - "el", - "ler" - ], - [ - "ell", - "er" - ], - [ - "elle", - "r" - ], - [ - "orith", - "m" - ], - [ - "ori", - "thm" - ], - [ - "fal", - "se" - ], - [ - "f", - "alse" - ], - [ - "fo", - "l" - ], - [ - "f", - "ol" - ], - [ - "ffic", - "ient" - ], - [ - "▁HT", - "ML" - ], - [ - "▁", - "HTML" - ], - [ - "li", - "che" - ], - [ - "lic", - "he" - ], - [ - "lich", - "e" - ], - [ - "l", - "iche" - ], - [ - "▁M", - "o" - ], - [ - "▁", - "Mo" - ], - [ - "▁int", - "rodu" - ], - [ - "▁intr", - "odu" - ], - [ - "▁intro", - "du" - ], - [ - "ex", - "p" - ], - [ - "e", - "xp" - ], - [ - "▁st", - "rong" - ], - [ - "▁str", - "ong" - ], - [ - "▁stro", - "ng" - ], - [ - "▁", - "strong" - ], - [ - "▁t", - "hus" - ], - [ - "▁th", - "us" - ], - [ - "/", - ")" - ], - [ - "▁e", - "le" - ], - [ - "▁el", - "e" - ], - [ - "▁", - "ele" - ], - [ - "▁та", - "к" - ], - [ - "▁", - "так" - ], - [ - "▁п", - "а" - ], - [ - "▁", - "па" - ], - [ - "▁d", - "ont" - ], - [ - "▁do", - "nt" - ], - [ - "▁don", - "t" - ], - [ - "▁c", - "ause" - ], - [ - "▁caus", - "e" - ], - [ - "▁ca", - "use" - ], - [ - "Num", - "ber" - ], - [ - "N", - "umber" - ], - [ - "▁im", - "ages" - ], - [ - "▁image", - "s" - ], - [ - "▁imag", - "es" - ], - [ - "▁", - "images" - ], - [ - "▁s", - "ample" - ], - [ - "▁sam", - "ple" - ], - [ - "▁", - "sample" - ], - [ - "▁s", - "ci" - ], - [ - "▁sc", - "i" - ], - [ - "▁", - "sci" - ], - [ - "li", - "ke" - ], - [ - "lik", - "e" - ], - [ - "l", - "ike" - ], - [ - "▁L", - "ou" - ], - [ - "▁Lo", - "u" - ], - [ - "▁", - "Lou" - ], - [ - "di", - "v" - ], - [ - "d", - "iv" - ], - [ - "an", - "c" - ], - [ - "a", - "nc" - ], - [ - "▁f", - "ront" - ], - [ - "▁fr", - "ont" - ], - [ - "▁fro", - "nt" - ], - [ - "▁", - "front" - ], - [ - "ne", - "n" - ], - [ - "n", - "en" - ], - [ - "▁miss", - "ing" - ], - [ - "▁mis", - "sing" - ], - [ - "▁", - "missing" - ], - [ - "ar", - "ia" - ], - [ - "ari", - "a" - ], - [ - "a", - "ria" - ], - [ - "pr", - "es" - ], - [ - "pre", - "s" - ], - [ - "p", - "res" - ], - [ - "▁п", - "ред" - ], - [ - "▁пре", - "д" - ], - [ - "D", - "I" - ], - [ - "fil", - "ter" - ], - [ - "▁M", - "it" - ], - [ - "▁Mi", - "t" - ], - [ - "U", - "R" - ], - [ - "▁o", - "pp" - ], - [ - "▁op", - "p" - ], - [ - "▁", - "opp" - ], - [ - "▁s", - "ql" - ], - [ - "▁sq", - "l" - ], - [ - "▁", - "sql" - ], - [ - "▁ро", - "ку" - ], - [ - "er", - "en" - ], - [ - "ere", - "n" - ], - [ - "e", - "ren" - ], - [ - "em", - "at" - ], - [ - "ema", - "t" - ], - [ - "e", - "mat" - ], - [ - "í", - "s" - ], - [ - "▁Je", - "an" - ], - [ - "▁", - "Jean" - ], - [ - "é", - "c" - ], - [ - "▁c", - "i" - ], - [ - "▁", - "ci" - ], - [ - "en", - "ne" - ], - [ - "enn", - "e" - ], - [ - "at", - "form" - ], - [ - "▁t", - "aken" - ], - [ - "▁tak", - "en" - ], - [ - "▁take", - "n" - ], - [ - "▁ta", - "ken" - ], - [ - "▁O", - "f" - ], - [ - "▁", - "Of" - ], - [ - "▁на", - "се" - ], - [ - "▁e", - "rr" - ], - [ - "▁er", - "r" - ], - [ - "▁", - "err" - ], - [ - "O", - "P" - ], - [ - "Fr", - "om" - ], - [ - "F", - "rom" - ], - [ - "De", - "fault" - ], - [ - "Def", - "ault" - ], - [ - "▁Gener", - "al" - ], - [ - "▁Gen", - "eral" - ], - [ - "▁Gene", - "ral" - ], - [ - "▁", - "General" - ], - [ - "wik", - "i" - ], - [ - "wi", - "ki" - ], - [ - "w", - "iki" - ], - [ - "▁g", - "rand" - ], - [ - "▁gr", - "and" - ], - [ - "▁gra", - "nd" - ], - [ - "▁gran", - "d" - ], - [ - "▁", - "grand" - ], - [ - "▁e", - "inen" - ], - [ - "▁ein", - "en" - ], - [ - "▁eine", - "n" - ], - [ - "Re", - "g" - ], - [ - "R", - "eg" - ], - [ - "Hand", - "ler" - ], - [ - "Handle", - "r" - ], - [ - "con", - "om" - ], - [ - "co", - "nom" - ], - [ - "cono", - "m" - ], - [ - "c", - "onom" - ], - [ - "an", - "ger" - ], - [ - "ang", - "er" - ], - [ - "ange", - "r" - ], - [ - "▁бы", - "л" - ], - [ - "▁L", - "os" - ], - [ - "▁Lo", - "s" - ], - [ - "▁", - "Los" - ], - [ - "▁ex", - "pression" - ], - [ - "▁exp", - "ression" - ], - [ - "▁express", - "ion" - ], - [ - "▁expr", - "ession" - ], - [ - "▁", - "expression" - ], - [ - "ш", - "а" - ], - [ - "ya", - "l" - ], - [ - "y", - "al" - ], - [ - "▁$", - "('" - ], - [ - "▁$(", - "'" - ], - [ - "▁sw", - "itch" - ], - [ - "▁", - "switch" - ], - [ - "▁v", - "ector" - ], - [ - "▁ve", - "ctor" - ], - [ - "▁vec", - "tor" - ], - [ - "▁", - "vector" - ], - [ - "▁T", - "hom" - ], - [ - "▁Th", - "om" - ], - [ - "▁v", - "irt" - ], - [ - "▁vi", - "rt" - ], - [ - "▁vir", - "t" - ], - [ - "▁", - "virt" - ], - [ - "le", - "ased" - ], - [ - "lease", - "d" - ], - [ - "lea", - "sed" - ], - [ - "▁c", - "over" - ], - [ - "▁co", - "ver" - ], - [ - "▁cov", - "er" - ], - [ - "▁", - "cover" - ], - [ - "▁re", - "sp" - ], - [ - "▁r", - "esp" - ], - [ - "▁res", - "p" - ], - [ - "▁", - "resp" - ], - [ - "ak", - "o" - ], - [ - "a", - "ko" - ], - [ - "ren", - "ch" - ], - [ - "ot", - "a" - ], - [ - "o", - "ta" - ], - [ - "C", - "ell" - ], - [ - "an", - "ged" - ], - [ - "ang", - "ed" - ], - [ - "ange", - "d" - ], - [ - "▁+", - "=" - ], - [ - "▁", - "+=" - ], - [ - "la", - "c" - ], - [ - "l", - "ac" - ], - [ - "sk", - "a" - ], - [ - "s", - "ka" - ], - [ - "ne", - "xt" - ], - [ - "nex", - "t" - ], - [ - "n", - "ext" - ], - [ - "▁Intern", - "ational" - ], - [ - "▁W", - "il" - ], - [ - "▁Wi", - "l" - ], - [ - "▁", - "Wil" - ], - [ - "▁o", - "nt" - ], - [ - "▁on", - "t" - ], - [ - "▁", - "ont" - ], - [ - "ib", - "r" - ], - [ - "i", - "br" - ], - [ - "us", - "tr" - ], - [ - "ust", - "r" - ], - [ - "u", - "str" - ], - [ - "▁b", - "lack" - ], - [ - "▁bl", - "ack" - ], - [ - "▁bla", - "ck" - ], - [ - "▁", - "black" - ], - [ - "▁select", - "ed" - ], - [ - "▁sel", - "ected" - ], - [ - "▁sele", - "cted" - ], - [ - "▁", - "selected" - ], - [ - "ch", - "er" - ], - [ - "che", - "r" - ], - [ - "c", - "her" - ], - [ - "▁l", - "iter" - ], - [ - "▁li", - "ter" - ], - [ - "▁lit", - "er" - ], - [ - "▁", - "liter" - ], - [ - "ro", - "ot" - ], - [ - "r", - "oot" - ], - [ - "л", - "ся" - ], - [ - "▁L", - "ife" - ], - [ - "▁Li", - "fe" - ], - [ - "▁", - "Life" - ], - [ - "▁in", - "sert" - ], - [ - "▁ins", - "ert" - ], - [ - "▁inser", - "t" - ], - [ - "▁inse", - "rt" - ], - [ - "▁", - "insert" - ], - [ - "▁mat", - "rix" - ], - [ - "▁", - "matrix" - ], - [ - "is", - "es" - ], - [ - "ise", - "s" - ], - [ - ")", - "]" - ], - [ - "▁p", - "el" - ], - [ - "▁pe", - "l" - ], - [ - "▁", - "pel" - ], - [ - "Over", - "ride" - ], - [ - "ry", - "pt" - ], - [ - "▁for", - "mer" - ], - [ - "▁form", - "er" - ], - [ - "▁forme", - "r" - ], - [ - "▁", - "former" - ], - [ - "▁Fil", - "m" - ], - [ - "▁N", - "orth" - ], - [ - "▁Nor", - "th" - ], - [ - "cl", - "ient" - ], - [ - "cli", - "ent" - ], - [ - "c", - "lient" - ], - [ - "▁n", - "ight" - ], - [ - "▁", - "night" - ], - [ - "хо", - "ди" - ], - [ - "ход", - "и" - ], - [ - "▁A", - "ustral" - ], - [ - "▁Aust", - "ral" - ], - [ - "▁", - "Austral" - ], - [ - "▁R", - "et" - ], - [ - "▁Re", - "t" - ], - [ - "▁", - "Ret" - ], - [ - "rh", - "o" - ], - [ - "r", - "ho" - ], - [ - "▁п", - "ер" - ], - [ - "▁пе", - "р" - ], - [ - "▁", - "пер" - ], - [ - "ip", - "edia" - ], - [ - "ipe", - "dia" - ], - [ - "▁ex", - "press" - ], - [ - "▁exp", - "ress" - ], - [ - "▁expr", - "ess" - ], - [ - "▁expres", - "s" - ], - [ - "▁", - "express" - ], - [ - "▁th", - "ird" - ], - [ - "▁", - "third" - ], - [ - "▁ma", - "jor" - ], - [ - "▁maj", - "or" - ], - [ - "▁", - "major" - ], - [ - "▁g", - "rad" - ], - [ - "▁gr", - "ad" - ], - [ - "▁gra", - "d" - ], - [ - "▁", - "grad" - ], - [ - "ow", - "e" - ], - [ - "o", - "we" - ], - [ - "▁bel", - "ieve" - ], - [ - "our", - "nal" - ], - [ - "ourn", - "al" - ], - [ - "▁st", - "atus" - ], - [ - "▁stat", - "us" - ], - [ - "▁", - "status" - ], - [ - "un", - "c" - ], - [ - "u", - "nc" - ], - [ - "▁d", - "ou" - ], - [ - "▁do", - "u" - ], - [ - "▁J", - "SON" - ], - [ - "▁JS", - "ON" - ], - [ - "▁", - "JSON" - ], - [ - "ui", - "s" - ], - [ - "u", - "is" - ], - [ - "▁pop", - "ulation" - ], - [ - "▁popula", - "tion" - ], - [ - "▁popul", - "ation" - ], - [ - "en", - "z" - ], - [ - "▁Will", - "iam" - ], - [ - "s", - "f" - ], - [ - "▁O", - "bject" - ], - [ - "▁Ob", - "ject" - ], - [ - "▁", - "Object" - ], - [ - "▁c", - "in" - ], - [ - "▁ci", - "n" - ], - [ - "▁", - "cin" - ], - [ - "▁D", - "i" - ], - [ - "▁", - "Di" - ], - [ - "cur", - "ity" - ], - [ - "c", - "urity" - ], - [ - "▁O", - "pen" - ], - [ - "▁Op", - "en" - ], - [ - "▁", - "Open" - ], - [ - "▁", - "ле" - ], - [ - "la", - "r" - ], - [ - "l", - "ar" - ], - [ - "ad", - "ding" - ], - [ - "add", - "ing" - ], - [ - "▁k", - "om" - ], - [ - "▁ko", - "m" - ], - [ - "▁", - "kom" - ], - [ - "}(", - "\\" - ], - [ - "}", - "(\\" - ], - [ - "▁k", - "il" - ], - [ - "▁ki", - "l" - ], - [ - "▁", - "kil" - ], - [ - "um", - "er" - ], - [ - "ume", - "r" - ], - [ - "u", - "mer" - ], - [ - "\"/", - ">" - ], - [ - "\"", - "/>" - ], - [ - "▁fe", - "ature" - ], - [ - "▁", - "feature" - ], - [ - "▁A", - "re" - ], - [ - "▁Ar", - "e" - ], - [ - "▁", - "Are" - ], - [ - "ck", - "s" - ], - [ - "c", - "ks" - ], - [ - "▁Intern", - "et" - ], - [ - "▁Inter", - "net" - ], - [ - "▁", - "Internet" - ], - [ - "▁i", - "h" - ], - [ - "▁", - "ih" - ], - [ - "▁start", - "ed" - ], - [ - "▁star", - "ted" - ], - [ - "▁ear", - "ly" - ], - [ - "▁be", - "gan" - ], - [ - "▁beg", - "an" - ], - [ - "T", - "H" - ], - [ - "p", - "ython" - ], - [ - "as", - "p" - ], - [ - "a", - "sp" - ], - [ - "▁F", - "r" - ], - [ - "▁", - "Fr" - ], - [ - "▁c", - "los" - ], - [ - "▁cl", - "os" - ], - [ - "▁clo", - "s" - ], - [ - "▁", - "clos" - ], - [ - "ist", - "ic" - ], - [ - "isti", - "c" - ], - [ - "▁mus", - "ic" - ], - [ - "▁", - "music" - ], - [ - "▁d", - "ig" - ], - [ - "▁di", - "g" - ], - [ - "▁", - "dig" - ], - [ - "▁it", - "al" - ], - [ - "▁i", - "tal" - ], - [ - "▁", - "ital" - ], - [ - "▁D", - "avid" - ], - [ - "▁Dav", - "id" - ], - [ - "▁Da", - "vid" - ], - [ - "▁", - "David" - ], - [ - "▁web", - "site" - ], - [ - "▁", - "website" - ], - [ - "▁cont", - "roller" - ], - [ - "▁control", - "ler" - ], - [ - "▁", - "controller" - ], - [ - "▁M", - "er" - ], - [ - "▁Me", - "r" - ], - [ - "▁", - "Mer" - ], - [ - "con", - "text" - ], - [ - "cont", - "ext" - ], - [ - "pro", - "duct" - ], - [ - "produ", - "ct" - ], - [ - "prod", - "uct" - ], - [ - "os", - "p" - ], - [ - "o", - "sp" - ], - [ - "▁j", - "un" - ], - [ - "▁ju", - "n" - ], - [ - "ro", - "wn" - ], - [ - "row", - "n" - ], - [ - "r", - "own" - ], - [ - "▁A", - "z" - ], - [ - "▁", - "Az" - ], - [ - "\":", - "\"" - ], - [ - "\"", - ":\"" - ], - [ - "▁a", - "an" - ], - [ - "▁aa", - "n" - ], - [ - "▁D", - "ate" - ], - [ - "▁Da", - "te" - ], - [ - "▁Dat", - "e" - ], - [ - "▁", - "Date" - ], - [ - "mu", - "lt" - ], - [ - "mul", - "t" - ], - [ - "m", - "ult" - ], - [ - "▁b", - "rowser" - ], - [ - "▁brow", - "ser" - ], - [ - "▁", - "browser" - ], - [ - "ре", - "д" - ], - [ - "wh", - "ich" - ], - [ - "R", - "A" - ], - [ - "qu", - "are" - ], - [ - "qua", - "re" - ], - [ - "▁R", - "uss" - ], - [ - "▁Ru", - "ss" - ], - [ - "▁Rus", - "s" - ], - [ - "▁", - "Russ" - ], - [ - "▁s", - "oon" - ], - [ - "▁so", - "on" - ], - [ - "▁P", - "re" - ], - [ - "▁Pr", - "e" - ], - [ - "▁", - "Pre" - ], - [ - "ta", - "u" - ], - [ - "t", - "au" - ], - [ - "▁we", - "ek" - ], - [ - "▁", - "week" - ], - [ - "▁б", - "а" - ], - [ - "▁", - "ба" - ], - [ - "▁o", - "ct" - ], - [ - "▁oc", - "t" - ], - [ - "▁", - "oct" - ], - [ - "▁t", - "own" - ], - [ - "▁to", - "wn" - ], - [ - "▁", - "town" - ], - [ - "ro", - "y" - ], - [ - "r", - "oy" - ], - [ - "▁e", - "ls" - ], - [ - "▁el", - "s" - ], - [ - "▁", - "els" - ], - [ - "bl", - "ic" - ], - [ - "b", - "lic" - ], - [ - "und", - "le" - ], - [ - "▁H", - "istor" - ], - [ - "▁His", - "tor" - ], - [ - "▁Hi", - "stor" - ], - [ - "▁Hist", - "or" - ], - [ - "▁f", - "oi" - ], - [ - "▁fo", - "i" - ], - [ - "▁mod", - "els" - ], - [ - "▁model", - "s" - ], - [ - "▁mode", - "ls" - ], - [ - "▁", - "models" - ], - [ - "з", - "о" - ], - [ - "on", - "ym" - ], - [ - "ony", - "m" - ], - [ - "o", - "nym" - ], - [ - "Par", - "am" - ], - [ - "Pa", - "ram" - ], - [ - "P", - "aram" - ], - [ - "▁M", - "et" - ], - [ - "▁Me", - "t" - ], - [ - "▁", - "Met" - ], - [ - "ge", - "ner" - ], - [ - "gen", - "er" - ], - [ - "g", - "ener" - ], - [ - "j", - "ą" - ], - [ - "▁e", - "spe" - ], - [ - "▁es", - "pe" - ], - [ - "▁esp", - "e" - ], - [ - "C", - "E" - ], - [ - "▁de", - "vice" - ], - [ - "▁dev", - "ice" - ], - [ - "▁devi", - "ce" - ], - [ - "▁", - "device" - ], - [ - "el", - "low" - ], - [ - "ell", - "ow" - ], - [ - "ello", - "w" - ], - [ - "▁de", - "bug" - ], - [ - "▁deb", - "ug" - ], - [ - "▁", - "debug" - ], - [ - "ér", - "ie" - ], - [ - "éri", - "e" - ], - [ - "é", - "rie" - ], - [ - "us", - "ing" - ], - [ - "u", - "sing" - ], - [ - "ан", - "г" - ], - [ - "а", - "нг" - ], - [ - "▁*", - ")" - ], - [ - "▁", - "*)" - ], - [ - "ud", - "i" - ], - [ - "u", - "di" - ], - [ - "▁M", - "iss" - ], - [ - "▁Mi", - "ss" - ], - [ - "▁Mis", - "s" - ], - [ - "▁", - "Miss" - ], - [ - "ко", - "м" - ], - [ - "к", - "ом" - ], - [ - "pos", - "ed" - ], - [ - "po", - "sed" - ], - [ - "pose", - "d" - ], - [ - "p", - "osed" - ], - [ - "▁z", - "we" - ], - [ - "▁zw", - "e" - ], - [ - "і", - "н" - ], - [ - "▁Ro", - "bert" - ], - [ - "▁Rob", - "ert" - ], - [ - "▁O", - "ct" - ], - [ - "▁", - "Oct" - ], - [ - "lo", - "p" - ], - [ - "l", - "op" - ], - [ - "ja", - "r" - ], - [ - "j", - "ar" - ], - [ - "▁a", - "ver" - ], - [ - "▁av", - "er" - ], - [ - "▁ave", - "r" - ], - [ - "▁", - "aver" - ], - [ - "▁ha", - "bit" - ], - [ - "▁hab", - "it" - ], - [ - "▁:", - ":" - ], - [ - "▁", - "::" - ], - [ - "än", - "g" - ], - [ - "ä", - "ng" - ], - [ - "St", - "art" - ], - [ - "Star", - "t" - ], - [ - "▁p", - "ow" - ], - [ - "▁po", - "w" - ], - [ - "▁", - "pow" - ], - [ - "▁s", - "rc" - ], - [ - "▁sr", - "c" - ], - [ - "▁", - "src" - ], - [ - "▁pat", - "tern" - ], - [ - "▁", - "pattern" - ], - [ - "▁", - "Э" - ], - [ - "▁b", - "i" - ], - [ - "▁", - "bi" - ], - [ - "ot", - "es" - ], - [ - "ote", - "s" - ], - [ - "o", - "tes" - ], - [ - "▁_", - "_" - ], - [ - "▁", - "__" - ], - [ - "▁s", - "ens" - ], - [ - "▁se", - "ns" - ], - [ - "▁sen", - "s" - ], - [ - "▁", - "sens" - ], - [ - "▁a", - "void" - ], - [ - "▁av", - "oid" - ], - [ - "▁avo", - "id" - ], - [ - "ex", - "ample" - ], - [ - "ut", - "t" - ], - [ - "u", - "tt" - ], - [ - "La", - "bel" - ], - [ - "Lab", - "el" - ], - [ - "L", - "abel" - ], - [ - "te", - "x" - ], - [ - "t", - "ex" - ], - [ - "bo", - "ot" - ], - [ - "b", - "oot" - ], - [ - "es", - "to" - ], - [ - "est", - "o" - ], - [ - "e", - "sto" - ], - [ - "▁M", - "arch" - ], - [ - "▁Mar", - "ch" - ], - [ - "▁Marc", - "h" - ], - [ - "▁e", - "asy" - ], - [ - "▁eas", - "y" - ], - [ - "ict", - "ure" - ], - [ - "Gr", - "oup" - ], - [ - "▁f", - "ather" - ], - [ - "▁fa", - "ther" - ], - [ - "▁fat", - "her" - ], - [ - "▁", - "father" - ], - [ - "▁up", - "dated" - ], - [ - "▁update", - "d" - ], - [ - "▁upd", - "ated" - ], - [ - "▁", - "updated" - ], - [ - "▁V", - "o" - ], - [ - "▁I", - "II" - ], - [ - "▁II", - "I" - ], - [ - "▁", - "III" - ], - [ - "om", - "ega" - ], - [ - "ome", - "ga" - ], - [ - "▁a", - "lle" - ], - [ - "▁al", - "le" - ], - [ - "▁all", - "e" - ], - [ - "▁", - "alle" - ], - [ - "Re", - "c" - ], - [ - "R", - "ec" - ], - [ - "y", - "g" - ], - [ - "з", - "е" - ], - [ - "▁D", - "im" - ], - [ - "▁Di", - "m" - ], - [ - "▁", - "Dim" - ], - [ - "ne", - "ct" - ], - [ - "n", - "ect" - ], - [ - "▁T", - "or" - ], - [ - "▁To", - "r" - ], - [ - "▁de", - "utsch" - ], - [ - "▁", - "deutsch" - ], - [ - "▁wh", - "ite" - ], - [ - "▁", - "white" - ], - [ - "▁n", - "ational" - ], - [ - "▁nation", - "al" - ], - [ - "▁nat", - "ional" - ], - [ - "pp", - "e" - ], - [ - "p", - "pe" - ], - [ - "▁a", - "ir" - ], - [ - "▁ai", - "r" - ], - [ - "▁", - "air" - ], - [ - "▁pass", - "word" - ], - [ - "▁", - "password" - ], - [ - "de", - "t" - ], - [ - "d", - "et" - ], - [ - "▁b", - "ig" - ], - [ - "▁bi", - "g" - ], - [ - "▁", - "big" - ], - [ - "▁U", - "se" - ], - [ - "▁Us", - "e" - ], - [ - "▁", - "Use" - ], - [ - "cal", - "l" - ], - [ - "ca", - "ll" - ], - [ - "c", - "all" - ], - [ - "▁ex", - "tra" - ], - [ - "▁ext", - "ra" - ], - [ - "▁extr", - "a" - ], - [ - "▁", - "extra" - ], - [ - "W", - "e" - ], - [ - "an", - "ia" - ], - [ - "ani", - "a" - ], - [ - "a", - "nia" - ], - [ - "▁h", - "old" - ], - [ - "▁ho", - "ld" - ], - [ - "▁hol", - "d" - ], - [ - "▁", - "hold" - ], - [ - "Cont", - "rol" - ], - [ - "▁C", - "O" - ], - [ - "▁", - "CO" - ], - [ - "▁м", - "і" - ], - [ - "▁", - "мі" - ], - [ - "it", - "i" - ], - [ - "i", - "ti" - ], - [ - "▁K", - "e" - ], - [ - "▁", - "Ke" - ], - [ - "en", - "u" - ], - [ - "e", - "nu" - ], - [ - "▁P", - "ark" - ], - [ - "▁Par", - "k" - ], - [ - "то", - "м" - ], - [ - "т", - "ом" - ], - [ - "▁a", - "uth" - ], - [ - "▁au", - "th" - ], - [ - "▁aut", - "h" - ], - [ - "▁", - "auth" - ], - [ - "▁c", - "enter" - ], - [ - "▁cent", - "er" - ], - [ - "▁", - "center" - ], - [ - "P", - "h" - ], - [ - "то", - "в" - ], - [ - "т", - "ов" - ], - [ - "id", - "ing" - ], - [ - "idi", - "ng" - ], - [ - "i", - "ding" - ], - [ - "▁a", - "cross" - ], - [ - "▁ac", - "ross" - ], - [ - "▁s", - "ong" - ], - [ - "▁so", - "ng" - ], - [ - "▁son", - "g" - ], - [ - "▁", - "song" - ], - [ - "▁ph", - "ys" - ], - [ - "▁", - "phys" - ], - [ - "▁n", - "umer" - ], - [ - "▁num", - "er" - ], - [ - "▁nu", - "mer" - ], - [ - "▁", - "numer" - ], - [ - "щ", - "а" - ], - [ - "▁A", - "lex" - ], - [ - "▁Al", - "ex" - ], - [ - "▁Ale", - "x" - ], - [ - "▁", - "Alex" - ], - [ - "▁problem", - "s" - ], - [ - "▁proble", - "ms" - ], - [ - "▁probl", - "ems" - ], - [ - "▁E", - "rror" - ], - [ - "▁Er", - "ror" - ], - [ - "▁Err", - "or" - ], - [ - "▁", - "Error" - ], - [ - "form", - "at" - ], - [ - "for", - "mat" - ], - [ - "▁A", - "cc" - ], - [ - "▁Ac", - "c" - ], - [ - "▁", - "Acc" - ], - [ - "▁s", - "ix" - ], - [ - "▁si", - "x" - ], - [ - "▁", - "six" - ], - [ - "▁d", - "b" - ], - [ - "▁", - "db" - ], - [ - "▁C", - "ast" - ], - [ - "▁Cas", - "t" - ], - [ - "▁Ca", - "st" - ], - [ - "▁", - "Cast" - ], - [ - "om", - "s" - ], - [ - "o", - "ms" - ], - [ - "pro", - "ject" - ], - [ - "proj", - "ect" - ], - [ - "▁v", - "ert" - ], - [ - "▁ver", - "t" - ], - [ - "▁ve", - "rt" - ], - [ - "▁", - "vert" - ], - [ - "cre", - "t" - ], - [ - "cr", - "et" - ], - [ - "c", - "ret" - ], - [ - "▁he", - "ader" - ], - [ - "▁head", - "er" - ], - [ - "▁", - "header" - ], - [ - "▁st", - "ream" - ], - [ - "▁stre", - "am" - ], - [ - "▁", - "stream" - ], - [ - "id", - "s" - ], - [ - "i", - "ds" - ], - [ - "▁t", - "or" - ], - [ - "▁to", - "r" - ], - [ - "▁", - "tor" - ], - [ - "▁se", - "pt" - ], - [ - "▁sep", - "t" - ], - [ - "▁est", - "im" - ], - [ - "▁es", - "tim" - ], - [ - "▁de", - "cl" - ], - [ - "▁dec", - "l" - ], - [ - "▁", - "decl" - ], - [ - "▁g", - "ave" - ], - [ - "▁ga", - "ve" - ], - [ - "▁p", - "layer" - ], - [ - "▁pl", - "ayer" - ], - [ - "▁play", - "er" - ], - [ - "▁pla", - "yer" - ], - [ - "▁", - "player" - ], - [ - "ys", - "is" - ], - [ - "▁д", - "ру" - ], - [ - "▁др", - "у" - ], - [ - "am", - "m" - ], - [ - "a", - "mm" - ], - [ - "щ", - "о" - ], - [ - "▁(", - "\"" - ], - [ - "▁", - "(\"" - ], - [ - "▁a", - "x" - ], - [ - "▁", - "ax" - ], - [ - "Pro", - "perty" - ], - [ - "us", - "r" - ], - [ - "u", - "sr" - ], - [ - "▁some", - "one" - ], - [ - "▁im", - "pro" - ], - [ - "▁imp", - "ro" - ], - [ - "▁impr", - "o" - ], - [ - "ad", - "en" - ], - [ - "ade", - "n" - ], - [ - "a", - "den" - ], - [ - "ro", - "te" - ], - [ - "rot", - "e" - ], - [ - "r", - "ote" - ], - [ - "▁М", - "и" - ], - [ - "i", - "h" - ], - [ - "++", - ")" - ], - [ - "+", - "+)" - ], - [ - "▁v", - "ideo" - ], - [ - "▁vide", - "o" - ], - [ - "▁", - "video" - ], - [ - "▁ex", - "ists" - ], - [ - "▁exist", - "s" - ], - [ - "▁", - "exists" - ], - [ - "к", - "ла" - ], - [ - "▁comp", - "lete" - ], - [ - "▁comple", - "te" - ], - [ - "▁complet", - "e" - ], - [ - "▁compl", - "ete" - ], - [ - "▁", - "complete" - ], - [ - "▁s", - "ession" - ], - [ - "▁sess", - "ion" - ], - [ - "▁", - "session" - ], - [ - "▁const", - "ant" - ], - [ - "▁", - "constant" - ], - [ - "ic", - "os" - ], - [ - "ico", - "s" - ], - [ - "i", - "cos" - ], - [ - "▁p", - "ack" - ], - [ - "▁pa", - "ck" - ], - [ - "▁pac", - "k" - ], - [ - "▁", - "pack" - ], - [ - "ro", - "me" - ], - [ - "rom", - "e" - ], - [ - "r", - "ome" - ], - [ - "eg", - "r" - ], - [ - "e", - "gr" - ], - [ - "App", - "lication" - ], - [ - "▁y", - "es" - ], - [ - "▁ye", - "s" - ], - [ - "▁", - "yes" - ], - [ - "▁e", - "lle" - ], - [ - "▁el", - "le" - ], - [ - "▁ell", - "e" - ], - [ - "▁", - "elle" - ], - [ - "▁e", - "mail" - ], - [ - "▁em", - "ail" - ], - [ - "▁", - "email" - ], - [ - "or", - "f" - ], - [ - "o", - "rf" - ], - [ - "ca", - "se" - ], - [ - "cas", - "e" - ], - [ - "c", - "ase" - ], - [ - "▁po", - "inter" - ], - [ - "▁point", - "er" - ], - [ - "▁", - "pointer" - ], - [ - "▁reg", - "ard" - ], - [ - "se", - "n" - ], - [ - "s", - "en" - ], - [ - "st", - "atus" - ], - [ - "stat", - "us" - ], - [ - "▁m", - "es" - ], - [ - "▁me", - "s" - ], - [ - "▁", - "mes" - ], - [ - "▁d", - "elle" - ], - [ - "▁de", - "lle" - ], - [ - "▁del", - "le" - ], - [ - "▁dell", - "e" - ], - [ - "ing", - "ton" - ], - [ - "ingt", - "on" - ], - [ - "▁B", - "as" - ], - [ - "▁Ba", - "s" - ], - [ - "▁", - "Bas" - ], - [ - ")", - "^" - ], - [ - "de", - "velop" - ], - [ - "▁for", - "ce" - ], - [ - "▁", - "force" - ], - [ - "▁char", - "acters" - ], - [ - "▁charact", - "ers" - ], - [ - "▁character", - "s" - ], - [ - "▁c", - "ross" - ], - [ - "▁cr", - "oss" - ], - [ - "▁cro", - "ss" - ], - [ - "▁", - "cross" - ], - [ - "▁de", - "ath" - ], - [ - "▁t", - "akes" - ], - [ - "▁tak", - "es" - ], - [ - "▁take", - "s" - ], - [ - "▁ta", - "kes" - ], - [ - "ér", - "i" - ], - [ - "é", - "ri" - ], - [ - "ig", - "ne" - ], - [ - "ign", - "e" - ], - [ - "че", - "н" - ], - [ - "ч", - "ен" - ], - [ - "U", - "P" - ], - [ - ".", - ":" - ], - [ - "Th", - "read" - ], - [ - "j", - "u" - ], - [ - "in", - "y" - ], - [ - "i", - "ny" - ], - [ - "▁det", - "ails" - ], - [ - "▁detail", - "s" - ], - [ - "▁", - "details" - ], - [ - "▁x", - "ml" - ], - [ - "▁", - "xml" - ], - [ - "ta", - "it" - ], - [ - "t", - "ait" - ], - [ - "out", - "put" - ], - [ - "mess", - "age" - ], - [ - "m", - "essage" - ], - [ - "'", - "'" - ], - [ - "▁Brit", - "ish" - ], - [ - "vi", - "lle" - ], - [ - "vil", - "le" - ], - [ - "v", - "ille" - ], - [ - "▁D", - "iv" - ], - [ - "▁Di", - "v" - ], - [ - "▁", - "Div" - ], - [ - "▁U", - "ser" - ], - [ - "▁Use", - "r" - ], - [ - "▁Us", - "er" - ], - [ - "▁", - "User" - ], - [ - "c", - "m" - ], - [ - "ч", - "но" - ], - [ - "col", - "umn" - ], - [ - "eq", - "ref" - ], - [ - "ó", - "r" - ], - [ - "on", - "om" - ], - [ - "ono", - "m" - ], - [ - "o", - "nom" - ], - [ - "▁P", - "ost" - ], - [ - "▁Po", - "st" - ], - [ - "▁Pos", - "t" - ], - [ - "▁", - "Post" - ], - [ - "el", - "len" - ], - [ - "ell", - "en" - ], - [ - "elle", - "n" - ], - [ - "A", - "b" - ], - [ - "ul", - "té" - ], - [ - "ult", - "é" - ], - [ - "▁per", - "fect" - ], - [ - "▁perf", - "ect" - ], - [ - "()", - "{" - ], - [ - "(", - "){" - ], - [ - "vis", - "ion" - ], - [ - "v", - "ision" - ], - [ - "act", - "ive" - ], - [ - "activ", - "e" - ], - [ - "li", - "er" - ], - [ - "lie", - "r" - ], - [ - "l", - "ier" - ], - [ - "ri", - "j" - ], - [ - "r", - "ij" - ], - [ - "s", - "d" - ], - [ - "▁k", - "ö" - ], - [ - "▁", - "kö" - ], - [ - "▁n", - "ie" - ], - [ - "▁ni", - "e" - ], - [ - "▁", - "nie" - ], - [ - "▁re", - "lig" - ], - [ - "▁rel", - "ig" - ], - [ - "▁reli", - "g" - ], - [ - "▁o", - "t" - ], - [ - "▁", - "ot" - ], - [ - "▁m", - "achine" - ], - [ - "▁mach", - "ine" - ], - [ - "▁", - "machine" - ], - [ - "▁h", - "eld" - ], - [ - "▁he", - "ld" - ], - [ - "▁hel", - "d" - ], - [ - ")$", - "." - ], - [ - ")", - "$." - ], - [ - "====", - "====" - ], - [ - "ck", - "er" - ], - [ - "cke", - "r" - ], - [ - "c", - "ker" - ], - [ - "в", - "ы" - ], - [ - "bo", - "rn" - ], - [ - "bor", - "n" - ], - [ - "b", - "orn" - ], - [ - "▁p", - "ast" - ], - [ - "▁pas", - "t" - ], - [ - "▁pa", - "st" - ], - [ - "ри", - "я" - ], - [ - "▁D", - "r" - ], - [ - "▁", - "Dr" - ], - [ - "▁reg", - "ular" - ], - [ - "▁regul", - "ar" - ], - [ - "▁", - "regular" - ], - [ - "▁prov", - "ided" - ], - [ - "▁provide", - "d" - ], - [ - "TE", - "R" - ], - [ - "T", - "ER" - ], - [ - "▁un", - "ivers" - ], - [ - "▁", - "univers" - ], - [ - "▁g", - "ets" - ], - [ - "▁get", - "s" - ], - [ - "▁ge", - "ts" - ], - [ - "▁", - "gets" - ], - [ - "▁n", - "u" - ], - [ - "▁", - "nu" - ], - [ - "▁/", - "*" - ], - [ - "▁", - "/*" - ], - [ - "ob", - "er" - ], - [ - "obe", - "r" - ], - [ - "o", - "ber" - ], - [ - "fi", - "n" - ], - [ - "f", - "in" - ], - [ - "▁n", - "ella" - ], - [ - "▁ne", - "lla" - ], - [ - "▁nel", - "la" - ], - [ - "▁nell", - "a" - ], - [ - "▁be", - "come" - ], - [ - "▁bec", - "ome" - ], - [ - "▁becom", - "e" - ], - [ - "▁`", - "`" - ], - [ - "▁", - "``" - ], - [ - "▁h", - "istory" - ], - [ - "▁histor", - "y" - ], - [ - "▁hi", - "story" - ], - [ - "▁hist", - "ory" - ], - [ - "▁", - "history" - ], - [ - "▁S", - "ol" - ], - [ - "▁So", - "l" - ], - [ - "▁", - "Sol" - ], - [ - "▁R", - "ad" - ], - [ - "▁Ra", - "d" - ], - [ - "▁", - "Rad" - ], - [ - "▁term", - "s" - ], - [ - "▁ter", - "ms" - ], - [ - "▁even", - "ts" - ], - [ - "▁event", - "s" - ], - [ - "▁ev", - "ents" - ], - [ - "▁", - "events" - ], - [ - "ly", - "mp" - ], - [ - "))", - ")" - ], - [ - ")", - "))" - ], - [ - "ро", - "ва" - ], - [ - "ров", - "а" - ], - [ - "р", - "ова" - ], - [ - "▁ab", - "sol" - ], - [ - "▁abs", - "ol" - ], - [ - "▁so", - "ft" - ], - [ - "▁", - "soft" - ], - [ - "lin", - "ks" - ], - [ - "link", - "s" - ], - [ - "l", - "inks" - ], - [ - "▁h", - "ope" - ], - [ - "▁ho", - "pe" - ], - [ - "▁hop", - "e" - ], - [ - "▁su", - "bject" - ], - [ - "▁sub", - "ject" - ], - [ - "▁", - "subject" - ], - [ - "\")", - "," - ], - [ - "\"", - ")," - ], - [ - "▁cre", - "ating" - ], - [ - "▁}", - "\r" - ], - [ - "▁", - "}\r" - ], - [ - "▁S", - "k" - ], - [ - "▁", - "Sk" - ], - [ - "▁f", - "low" - ], - [ - "▁fl", - "ow" - ], - [ - "▁flo", - "w" - ], - [ - "▁", - "flow" - ], - [ - "▁Р", - "а" - ], - [ - "▁as", - "sert" - ], - [ - "▁ass", - "ert" - ], - [ - "▁asse", - "rt" - ], - [ - "▁", - "assert" - ], - [ - "ze", - "t" - ], - [ - "z", - "et" - ], - [ - "▁F", - "rank" - ], - [ - "▁Fran", - "k" - ], - [ - "▁Fr", - "ank" - ], - [ - "s", - "a" - ], - [ - "▁dist", - "ribution" - ], - [ - "▁distribu", - "tion" - ], - [ - "▁distrib", - "ution" - ], - [ - "▁", - "distribution" - ], - [ - "c", - "u" - ], - [ - "ba", - "nd" - ], - [ - "ban", - "d" - ], - [ - "b", - "and" - ], - [ - "iz", - "z" - ], - [ - "i", - "zz" - ], - [ - "▁j", - "ob" - ], - [ - "▁jo", - "b" - ], - [ - "▁", - "job" - ], - [ - "in", - "er" - ], - [ - "ine", - "r" - ], - [ - "i", - "ner" - ], - [ - "st", - "ruct" - ], - [ - "str", - "uct" - ], - [ - "stru", - "ct" - ], - [ - "á", - "k" - ], - [ - "T", - "O" - ], - [ - "au", - "f" - ], - [ - "a", - "uf" - ], - [ - "▁ext", - "ends" - ], - [ - "▁extend", - "s" - ], - [ - "▁G", - "ra" - ], - [ - "▁Gr", - "a" - ], - [ - "dis", - "play" - ], - [ - "▁sign", - "ific" - ], - [ - "on", - "ey" - ], - [ - "one", - "y" - ], - [ - "o", - "ney" - ], - [ - "s", - "ource" - ], - [ - "m", - "icrosoft" - ], - [ - "in", - "der" - ], - [ - "ind", - "er" - ], - [ - "inde", - "r" - ], - [ - "i", - "nder" - ], - [ - "▁qu", - "ick" - ], - [ - "▁qui", - "ck" - ], - [ - "▁", - "quick" - ], - [ - "▁w", - "onder" - ], - [ - "▁won", - "der" - ], - [ - "▁wo", - "nder" - ], - [ - "Inst", - "ance" - ], - [ - "el", - "les" - ], - [ - "ell", - "es" - ], - [ - "elle", - "s" - ], - [ - "e", - "lles" - ], - [ - "è", - "me" - ], - [ - "▁comp", - "any" - ], - [ - "▁compan", - "y" - ], - [ - "▁", - "company" - ], - [ - "u", - "ß" - ], - [ - ".", - "}" - ], - [ - "▁separ", - "ate" - ], - [ - "U", - "M" - ], - [ - "HER", - "E" - ], - [ - "HE", - "RE" - ], - [ - "H", - "ERE" - ], - [ - "▁writ", - "ing" - ], - [ - "▁wr", - "iting" - ], - [ - "▁", - "writing" - ], - [ - "it", - "ution" - ], - [ - "itu", - "tion" - ], - [ - "itut", - "ion" - ], - [ - "▁G", - "esch" - ], - [ - "▁Ge", - "sch" - ], - [ - "▁Ges", - "ch" - ], - [ - "м", - "я" - ], - [ - "▁J", - "ames" - ], - [ - "▁Ja", - "mes" - ], - [ - "▁Jam", - "es" - ], - [ - "▁", - "James" - ], - [ - "▁D", - "E" - ], - [ - "▁", - "DE" - ], - [ - "▁S", - "pe" - ], - [ - "▁Sp", - "e" - ], - [ - "▁", - "Spe" - ], - [ - "pro", - "cess" - ], - [ - "proc", - "ess" - ], - [ - "St", - "r" - ], - [ - "S", - "tr" - ], - [ - "▁s", - "ym" - ], - [ - "▁sy", - "m" - ], - [ - "▁", - "sym" - ], - [ - "▁a", - "o" - ], - [ - "▁", - "ao" - ], - [ - "▁w", - "y" - ], - [ - "▁", - "wy" - ], - [ - "▁any", - "one" - ], - [ - "▁U", - "p" - ], - [ - "▁", - "Up" - ], - [ - "use", - "um" - ], - [ - "ar", - "on" - ], - [ - "aro", - "n" - ], - [ - "a", - "ron" - ], - [ - "▁def", - "inition" - ], - [ - "▁defin", - "ition" - ], - [ - "▁definit", - "ion" - ], - [ - "▁", - "definition" - ], - [ - "▁`", - "$" - ], - [ - "▁f", - "av" - ], - [ - "▁fa", - "v" - ], - [ - "rib", - "utes" - ], - [ - "ribute", - "s" - ], - [ - "ribu", - "tes" - ], - [ - "▁R", - "é" - ], - [ - "ograf", - "ia" - ], - [ - "ografi", - "a" - ], - [ - "el", - "ement" - ], - [ - "ele", - "ment" - ], - [ - "elem", - "ent" - ], - [ - "e", - "lement" - ], - [ - "ca", - "p" - ], - [ - "c", - "ap" - ], - [ - "pa", - "t" - ], - [ - "p", - "at" - ], - [ - "▁B", - "ra" - ], - [ - "▁Br", - "a" - ], - [ - "▁", - "Bra" - ], - [ - ")", - "(" - ], - [ - "▁acc", - "ording" - ], - [ - "▁accord", - "ing" - ], - [ - "г", - "е" - ], - [ - "▁p", - "ie" - ], - [ - "▁pi", - "e" - ], - [ - "▁", - "pie" - ], - [ - "el", - "i" - ], - [ - "e", - "li" - ], - [ - "}", - "\"" - ], - [ - "▁act", - "iv" - ], - [ - "▁", - "activ" - ], - [ - "▁s", - "top" - ], - [ - "▁st", - "op" - ], - [ - "▁sto", - "p" - ], - [ - "▁", - "stop" - ], - [ - "pat", - "ch" - ], - [ - "p", - "atch" - ], - [ - "т", - "і" - ], - [ - "▁J", - "ose" - ], - [ - "▁Jo", - "se" - ], - [ - "▁Jos", - "e" - ], - [ - "▁", - "Jose" - ], - [ - "En", - "d" - ], - [ - "E", - "nd" - ], - [ - "▁p", - "rze" - ], - [ - "▁pr", - "ze" - ], - [ - "▁prz", - "e" - ], - [ - "▁a", - "ge" - ], - [ - "▁ag", - "e" - ], - [ - "▁", - "age" - ], - [ - "it", - "ory" - ], - [ - "ito", - "ry" - ], - [ - "itor", - "y" - ], - [ - "▁P", - "HP" - ], - [ - "▁", - "PHP" - ], - [ - "ag", - "ement" - ], - [ - "age", - "ment" - ], - [ - "agem", - "ent" - ], - [ - "▁`", - "." - ], - [ - "▁", - "`." - ], - [ - "▁pre", - "tty" - ], - [ - "▁pret", - "ty" - ], - [ - "▁re", - "comm" - ], - [ - "▁rec", - "omm" - ], - [ - "▁recom", - "m" - ], - [ - "▁s", - "ud" - ], - [ - "▁su", - "d" - ], - [ - "▁re", - "qu" - ], - [ - "▁r", - "equ" - ], - [ - "▁req", - "u" - ], - [ - "▁об", - "ла" - ], - [ - "at", - "ives" - ], - [ - "ative", - "s" - ], - [ - "ativ", - "es" - ], - [ - "ati", - "ves" - ], - [ - "▁H", - "igh" - ], - [ - "▁Hi", - "gh" - ], - [ - "▁", - "High" - ], - [ - "á", - "z" - ], - [ - "ou", - "l" - ], - [ - "o", - "ul" - ], - [ - "re", - "st" - ], - [ - "res", - "t" - ], - [ - "r", - "est" - ], - [ - "▁T", - "er" - ], - [ - "▁Te", - "r" - ], - [ - "un", - "der" - ], - [ - "und", - "er" - ], - [ - "unde", - "r" - ], - [ - "u", - "nder" - ], - [ - "th", - "ern" - ], - [ - "ther", - "n" - ], - [ - "the", - "rn" - ], - [ - "cent", - "er" - ], - [ - "cen", - "ter" - ], - [ - "cente", - "r" - ], - [ - "c", - "enter" - ], - [ - "▁u", - "r" - ], - [ - "▁", - "ur" - ], - [ - "la", - "t" - ], - [ - "l", - "at" - ], - [ - "▁inter", - "face" - ], - [ - "▁", - "interface" - ], - [ - "▁и", - "н" - ], - [ - "▁", - "ин" - ], - [ - "▁wh", - "ose" - ], - [ - "▁who", - "se" - ], - [ - "ic", - "as" - ], - [ - "ica", - "s" - ], - [ - "i", - "cas" - ], - [ - "am", - "en" - ], - [ - "ame", - "n" - ], - [ - "a", - "men" - ], - [ - "Fil", - "ter" - ], - [ - "▁st", - "ation" - ], - [ - "▁stat", - "ion" - ], - [ - "▁sta", - "tion" - ], - [ - "▁stati", - "on" - ], - [ - "▁", - "station" - ], - [ - "Pa", - "ge" - ], - [ - "P", - "age" - ], - [ - "▁a", - "rm" - ], - [ - "▁ar", - "m" - ], - [ - "▁", - "arm" - ], - [ - "▁e", - "yes" - ], - [ - "▁eye", - "s" - ], - [ - "▁ра", - "й" - ], - [ - "▁s", - "eu" - ], - [ - "▁se", - "u" - ], - [ - "ol", - "i" - ], - [ - "o", - "li" - ], - [ - "wi", - "n" - ], - [ - "w", - "in" - ], - [ - "li", - "k" - ], - [ - "l", - "ik" - ], - [ - "ge", - "x" - ], - [ - "g", - "ex" - ], - [ - "ch", - "an" - ], - [ - "cha", - "n" - ], - [ - "c", - "han" - ], - [ - "id", - "ence" - ], - [ - "iden", - "ce" - ], - [ - "ar", - "gs" - ], - [ - "arg", - "s" - ], - [ - "ak", - "ing" - ], - [ - "aki", - "ng" - ], - [ - "a", - "king" - ], - [ - "▁Go", - "ogle" - ], - [ - "▁", - "Google" - ], - [ - "▁St", - "ud" - ], - [ - "▁Stu", - "d" - ], - [ - "▁h", - "o" - ], - [ - "▁", - "ho" - ], - [ - "то", - "ры" - ], - [ - "тор", - "ы" - ], - [ - "S", - "u" - ], - [ - "▁autom", - "at" - ], - [ - "▁auto", - "mat" - ], - [ - "êm", - "e" - ], - [ - "ê", - "me" - ], - [ - "▁c", - "y" - ], - [ - "▁", - "cy" - ], - [ - "lo", - "r" - ], - [ - "l", - "or" - ], - [ - "▁st", - "ack" - ], - [ - "▁sta", - "ck" - ], - [ - "▁", - "stack" - ], - [ - "▁SE", - "LECT" - ], - [ - "▁", - "SELECT" - ], - [ - "A", - "F" - ], - [ - "▁>", - ">" - ], - [ - "▁", - ">>" - ], - [ - "▁com", - "pet" - ], - [ - "▁comp", - "et" - ], - [ - "▁p", - "air" - ], - [ - "▁pa", - "ir" - ], - [ - "▁", - "pair" - ], - [ - "▁ing", - "lés" - ], - [ - "Res", - "ponse" - ], - [ - "▁F", - "ig" - ], - [ - "▁", - "Fig" - ], - [ - "gr", - "ad" - ], - [ - "gra", - "d" - ], - [ - "g", - "rad" - ], - [ - "▁document", - "ation" - ], - [ - "▁", - "documentation" - ], - [ - "▁c", - "ant" - ], - [ - "▁can", - "t" - ], - [ - "▁ca", - "nt" - ], - [ - "▁app", - "reci" - ], - [ - "å", - "n" - ], - [ - "▁le", - "arn" - ], - [ - "▁lear", - "n" - ], - [ - "▁", - "learn" - ], - [ - "▁in", - "dep" - ], - [ - "▁ind", - "ep" - ], - [ - "▁inde", - "p" - ], - [ - "▁p", - "al" - ], - [ - "▁pa", - "l" - ], - [ - "▁", - "pal" - ], - [ - "pack", - "age" - ], - [ - "p", - "ackage" - ], - [ - "ar", - "es" - ], - [ - "are", - "s" - ], - [ - "a", - "res" - ], - [ - "▁Ber", - "lin" - ], - [ - "▁Berl", - "in" - ], - [ - "б", - "ли" - ], - [ - "re", - "ich" - ], - [ - "rei", - "ch" - ], - [ - "ё", - "н" - ], - [ - "▁s", - "atisf" - ], - [ - "▁sat", - "isf" - ], - [ - "▁reg", - "ion" - ], - [ - "▁", - "region" - ], - [ - "▁fri", - "end" - ], - [ - "▁", - "friend" - ], - [ - "▁Ge", - "orge" - ], - [ - "▁Georg", - "e" - ], - [ - "▁В", - "о" - ], - [ - "▁", - "Во" - ], - [ - "▁\"", - "\"" - ], - [ - "▁", - "\"\"" - ], - [ - "▁des", - "de" - ], - [ - "Fact", - "ory" - ], - [ - "F", - "actory" - ], - [ - "▁Count", - "y" - ], - [ - "▁Coun", - "ty" - ], - [ - "ou", - "v" - ], - [ - "o", - "uv" - ], - [ - "▁", - "‘" - ], - [ - "▁inst", - "alled" - ], - [ - "▁install", - "ed" - ], - [ - "▁instal", - "led" - ], - [ - "▁", - "installed" - ], - [ - "▁w", - "anted" - ], - [ - "▁want", - "ed" - ], - [ - "▁P", - "ython" - ], - [ - "▁", - "Python" - ], - [ - "▁inter", - "pre" - ], - [ - "▁in", - "cluded" - ], - [ - "▁includ", - "ed" - ], - [ - "▁include", - "d" - ], - [ - "▁inclu", - "ded" - ], - [ - "▁(", - "(" - ], - [ - "▁", - "((" - ], - [ - "▁al", - "tern" - ], - [ - "▁alt", - "ern" - ], - [ - "▁alter", - "n" - ], - [ - "▁alte", - "rn" - ], - [ - "▁", - "altern" - ], - [ - "is", - "to" - ], - [ - "ist", - "o" - ], - [ - "i", - "sto" - ], - [ - "g", - "n" - ], - [ - "▁b", - "order" - ], - [ - "▁bor", - "der" - ], - [ - "▁bord", - "er" - ], - [ - "▁", - "border" - ], - [ - "pd", - "f" - ], - [ - "p", - "df" - ], - [ - "▁d", - "up" - ], - [ - "▁du", - "p" - ], - [ - "▁", - "dup" - ], - [ - "▁down", - "load" - ], - [ - "▁", - "download" - ], - [ - "ju", - "st" - ], - [ - "jus", - "t" - ], - [ - "j", - "ust" - ], - [ - "▁m", - "embers" - ], - [ - "▁mem", - "bers" - ], - [ - "▁memb", - "ers" - ], - [ - "▁member", - "s" - ], - [ - "▁", - "members" - ], - [ - "ch", - "ild" - ], - [ - "chi", - "ld" - ], - [ - "▁p", - "ay" - ], - [ - "▁pa", - "y" - ], - [ - "▁", - "pay" - ], - [ - "▁c", - "er" - ], - [ - "▁ce", - "r" - ], - [ - "▁", - "cer" - ], - [ - "▁lo", - "oked" - ], - [ - "▁look", - "ed" - ], - [ - "▁correct", - "ly" - ], - [ - "au", - "th" - ], - [ - "aut", - "h" - ], - [ - "a", - "uth" - ], - [ - "▁с", - "тан" - ], - [ - "▁ст", - "ан" - ], - [ - "▁ста", - "н" - ], - [ - "▁", - "стан" - ], - [ - "▁e", - "sp" - ], - [ - "▁es", - "p" - ], - [ - "▁", - "esp" - ], - [ - "▁d", - "esc" - ], - [ - "▁de", - "sc" - ], - [ - "▁des", - "c" - ], - [ - "▁", - "desc" - ], - [ - "eb", - "en" - ], - [ - "e", - "ben" - ], - [ - "▁qu", - "estions" - ], - [ - "▁question", - "s" - ], - [ - "▁quest", - "ions" - ], - [ - "▁questi", - "ons" - ], - [ - "▁", - "questions" - ], - [ - "ma", - "l" - ], - [ - "m", - "al" - ], - [ - "▁ab", - "gerufen" - ], - [ - "▁", - "abgerufen" - ], - [ - "▁B", - "and" - ], - [ - "▁Ba", - "nd" - ], - [ - "▁Ban", - "d" - ], - [ - "▁[", - "]" - ], - [ - "▁", - "[]" - ], - [ - "Bas", - "e" - ], - [ - "B", - "ase" - ], - [ - "▁r", - "is" - ], - [ - "▁ri", - "s" - ], - [ - "▁", - "ris" - ], - [ - "▁f", - "ort" - ], - [ - "▁for", - "t" - ], - [ - "▁fo", - "rt" - ], - [ - "▁", - "fort" - ], - [ - "▁I", - "d" - ], - [ - "▁", - "Id" - ], - [ - "▁var", - "ious" - ], - [ - "▁vari", - "ous" - ], - [ - "▁Le", - "ague" - ], - [ - "▁H", - "and" - ], - [ - "▁Ha", - "nd" - ], - [ - "▁Han", - "d" - ], - [ - "▁", - "Hand" - ], - [ - "▁T", - "ype" - ], - [ - "▁Ty", - "pe" - ], - [ - "▁Typ", - "e" - ], - [ - "▁", - "Type" - ], - [ - "ir", - "l" - ], - [ - "i", - "rl" - ], - [ - "▁F", - "e" - ], - [ - "▁", - "Fe" - ], - [ - "i", - "én" - ], - [ - "it", - "ter" - ], - [ - "itt", - "er" - ], - [ - "itte", - "r" - ], - [ - "▁f", - "ast" - ], - [ - "▁fa", - "st" - ], - [ - "▁fas", - "t" - ], - [ - "▁", - "fast" - ], - [ - "st", - "a" - ], - [ - "s", - "ta" - ], - [ - "▁ex", - "cept" - ], - [ - "▁", - "except" - ], - [ - "ic", - "z" - ], - [ - "i", - "cz" - ], - [ - "▁F", - "rench" - ], - [ - "▁en", - "vironment" - ], - [ - "▁environ", - "ment" - ], - [ - "▁", - "environment" - ], - [ - "▁con", - "se" - ], - [ - "▁cons", - "e" - ], - [ - "у", - "р" - ], - [ - "о", - "го" - ], - [ - "▁necess", - "ary" - ], - [ - "tar", - "get" - ], - [ - "t", - "arget" - ], - [ - "▁re", - "ading" - ], - [ - "▁read", - "ing" - ], - [ - "▁", - "reading" - ], - [ - "ho", - "me" - ], - [ - "hom", - "e" - ], - [ - "h", - "ome" - ], - [ - "ze", - "ich" - ], - [ - "▁e", - "qual" - ], - [ - "▁equ", - "al" - ], - [ - "▁eq", - "ual" - ], - [ - "▁", - "equal" - ], - [ - "▁pi", - "ù" - ], - [ - "▁p", - "rem" - ], - [ - "▁pr", - "em" - ], - [ - "▁pre", - "m" - ], - [ - "▁diff", - "icult" - ], - [ - "▁u", - "nit" - ], - [ - "▁un", - "it" - ], - [ - "▁", - "unit" - ], - [ - "▁re", - "place" - ], - [ - "▁rep", - "lace" - ], - [ - "▁repla", - "ce" - ], - [ - "▁", - "replace" - ], - [ - "▁he", - "art" - ], - [ - "▁hear", - "t" - ], - [ - "▁", - "heart" - ], - [ - "▁t", - "alk" - ], - [ - "▁tal", - "k" - ], - [ - "A", - "M" - ], - [ - "▁R", - "E" - ], - [ - "▁", - "RE" - ], - [ - "▁P", - "erson" - ], - [ - "▁Per", - "son" - ], - [ - "▁Pers", - "on" - ], - [ - "▁", - "Person" - ], - [ - "end", - "ency" - ], - [ - "enden", - "cy" - ], - [ - "▁i", - "mm" - ], - [ - "▁im", - "m" - ], - [ - "▁", - "imm" - ], - [ - "▁h", - "uman" - ], - [ - "▁hum", - "an" - ], - [ - "▁hu", - "man" - ], - [ - "▁", - "human" - ], - [ - "d", - "n" - ], - [ - "▁K", - "ir" - ], - [ - "▁Ki", - "r" - ], - [ - "▁A", - "ut" - ], - [ - "▁Au", - "t" - ], - [ - "▁", - "Aut" - ], - [ - "kn", - "own" - ], - [ - "know", - "n" - ], - [ - "k", - "nown" - ], - [ - "▁fr", - "equ" - ], - [ - "▁fre", - "qu" - ], - [ - "sys", - "tem" - ], - [ - "s", - "ystem" - ], - [ - "ла", - "в" - ], - [ - "▁S", - "z" - ], - [ - "▁G", - "al" - ], - [ - "▁Ga", - "l" - ], - [ - "но", - "е" - ], - [ - "sel", - "ves" - ], - [ - "right", - "arrow" - ], - [ - "r", - "ightarrow" - ], - [ - "▁С", - "а" - ], - [ - "▁", - "Са" - ], - [ - "=\"", - "@" - ], - [ - "▁build", - "ing" - ], - [ - "▁", - "building" - ], - [ - "im", - "port" - ], - [ - "imp", - "ort" - ], - [ - "▁f", - "am" - ], - [ - "▁fa", - "m" - ], - [ - "▁de", - "lete" - ], - [ - "▁del", - "ete" - ], - [ - "▁delet", - "e" - ], - [ - "▁", - "delete" - ], - [ - "air", - "e" - ], - [ - "ai", - "re" - ], - [ - "a", - "ire" - ], - [ - "ma", - "ry" - ], - [ - "mar", - "y" - ], - [ - "m", - "ary" - ], - [ - "▁f", - "und" - ], - [ - "▁fun", - "d" - ], - [ - "▁fu", - "nd" - ], - [ - "▁", - "fund" - ], - [ - "▁part", - "icip" - ], - [ - "▁partic", - "ip" - ], - [ - "▁parti", - "cip" - ], - [ - "▁partici", - "p" - ], - [ - "▁s", - "yn" - ], - [ - "▁sy", - "n" - ], - [ - "▁", - "syn" - ], - [ - "si", - "n" - ], - [ - "s", - "in" - ], - [ - "▁l", - "ower" - ], - [ - "▁lo", - "wer" - ], - [ - "▁low", - "er" - ], - [ - "▁", - "lower" - ], - [ - "▁z", - "ero" - ], - [ - "▁ze", - "ro" - ], - [ - "▁", - "zero" - ], - [ - "▁s", - "ec" - ], - [ - "▁se", - "c" - ], - [ - "▁", - "sec" - ], - [ - "▁f", - "ra" - ], - [ - "▁fr", - "a" - ], - [ - "▁", - "fra" - ], - [ - "Po", - "int" - ], - [ - "P", - "oint" - ], - [ - "▁fa", - "iled" - ], - [ - "▁fail", - "ed" - ], - [ - "▁", - "failed" - ], - [ - "ien", - "to" - ], - [ - "ient", - "o" - ], - [ - "i", - "ento" - ], - [ - "cu", - "p" - ], - [ - "c", - "up" - ], - [ - "▁s", - "low" - ], - [ - "▁sl", - "ow" - ], - [ - "▁slo", - "w" - ], - [ - "▁", - "slow" - ], - [ - "▁n", - "ation" - ], - [ - "▁na", - "tion" - ], - [ - "▁nat", - "ion" - ], - [ - "äh", - "r" - ], - [ - "ä", - "hr" - ], - [ - "▁in", - "fo" - ], - [ - "▁inf", - "o" - ], - [ - "▁", - "info" - ], - [ - "▁P", - "ublic" - ], - [ - "▁Pub", - "lic" - ], - [ - "▁Pu", - "blic" - ], - [ - "▁", - "Public" - ], - [ - "▁de", - "cla" - ], - [ - "▁dec", - "la" - ], - [ - "▁decl", - "a" - ], - [ - "▁Т", - "а" - ], - [ - "▁s", - "old" - ], - [ - "▁so", - "ld" - ], - [ - "▁sol", - "d" - ], - [ - "▁R", - "em" - ], - [ - "▁Re", - "m" - ], - [ - "▁", - "Rem" - ], - [ - "▁Ph", - "il" - ], - [ - "ст", - "ра" - ], - [ - "стр", - "а" - ], - [ - "с", - "тра" - ], - [ - "▁me", - "hr" - ], - [ - "▁W", - "ork" - ], - [ - "▁Wor", - "k" - ], - [ - "▁", - "Work" - ], - [ - "▁N", - "ord" - ], - [ - "▁No", - "rd" - ], - [ - "▁Nor", - "d" - ], - [ - "▁f", - "ait" - ], - [ - "▁fa", - "it" - ], - [ - "▁g", - "ew" - ], - [ - "▁ge", - "w" - ], - [ - "▁", - "gew" - ], - [ - "print", - "ln" - ], - [ - "ob", - "ile" - ], - [ - "obil", - "e" - ], - [ - "obi", - "le" - ], - [ - "▁K", - "on" - ], - [ - "▁Ko", - "n" - ], - [ - "▁ass", - "ume" - ], - [ - "▁assum", - "e" - ], - [ - "land", - "s" - ], - [ - "lan", - "ds" - ], - [ - "l", - "ands" - ], - [ - "▁a", - "mount" - ], - [ - "▁am", - "ount" - ], - [ - "▁", - "amount" - ], - [ - "▁P", - "ress" - ], - [ - "▁Pr", - "ess" - ], - [ - "▁Pres", - "s" - ], - [ - "▁Pre", - "ss" - ], - [ - "▁", - "Press" - ], - [ - "ý", - "ch" - ], - [ - "▁ma", - "xim" - ], - [ - "▁max", - "im" - ], - [ - "▁", - "maxim" - ], - [ - "▁Ch", - "ampion" - ], - [ - "▁Champ", - "ion" - ], - [ - "li", - "brary" - ], - [ - "l", - "ibrary" - ], - [ - "a", - "ñ" - ], - [ - "▁W", - "al" - ], - [ - "▁Wa", - "l" - ], - [ - "Com", - "m" - ], - [ - "Co", - "mm" - ], - [ - "C", - "omm" - ], - [ - "]", - "]" - ], - [ - "▁z", - "w" - ], - [ - "▁", - "zw" - ], - [ - "▁so", - "cial" - ], - [ - "▁soci", - "al" - ], - [ - "▁soc", - "ial" - ], - [ - "▁", - "social" - ], - [ - "L", - "I" - ], - [ - "▁Un", - "ter" - ], - [ - "vo", - "r" - ], - [ - "v", - "or" - ], - [ - "Del", - "ta" - ], - [ - "D", - "elta" - ], - [ - "em", - "ail" - ], - [ - "ema", - "il" - ], - [ - "e", - "mail" - ], - [ - "ra", - "int" - ], - [ - "rain", - "t" - ], - [ - "rai", - "nt" - ], - [ - "r", - "aint" - ], - [ - "on", - "i" - ], - [ - "o", - "ni" - ], - [ - "▁a", - "lt" - ], - [ - "▁al", - "t" - ], - [ - "▁", - "alt" - ], - [ - "▁n", - "é" - ], - [ - "▁", - "né" - ], - [ - "ци", - "я" - ], - [ - "ograph", - "y" - ], - [ - "▁mention", - "ed" - ], - [ - "▁ment", - "ioned" - ], - [ - "▁<", - "=" - ], - [ - "▁", - "<=" - ], - [ - "▁c", - "ette" - ], - [ - "▁ce", - "tte" - ], - [ - "▁cet", - "te" - ], - [ - "▁current", - "ly" - ], - [ - "▁curr", - "ently" - ], - [ - "va", - "re" - ], - [ - "var", - "e" - ], - [ - "v", - "are" - ], - [ - "iz", - "ing" - ], - [ - "izi", - "ng" - ], - [ - "izin", - "g" - ], - [ - "i", - "zing" - ], - [ - "▁D", - "ef" - ], - [ - "▁De", - "f" - ], - [ - "▁", - "Def" - ], - [ - "ic", - "ol" - ], - [ - "ico", - "l" - ], - [ - "i", - "col" - ], - [ - "ün", - "d" - ], - [ - "ü", - "nd" - ], - [ - "▁config", - "uration" - ], - [ - "▁configur", - "ation" - ], - [ - "▁", - "configuration" - ], - [ - "est", - "ig" - ], - [ - "esti", - "g" - ], - [ - "II", - "I" - ], - [ - "I", - "II" - ], - [ - "la", - "m" - ], - [ - "l", - "am" - ], - [ - "i", - "ère" - ], - [ - "▁E", - "ar" - ], - [ - "▁t", - "u" - ], - [ - "▁", - "tu" - ], - [ - "En", - "t" - ], - [ - "E", - "nt" - ], - [ - "▁U", - "sing" - ], - [ - "▁Us", - "ing" - ], - [ - "▁", - "Using" - ], - [ - "▁ко", - "м" - ], - [ - "▁к", - "ом" - ], - [ - "▁", - "ком" - ], - [ - "ci", - "e" - ], - [ - "c", - "ie" - ], - [ - "▁pro", - "of" - ], - [ - "▁", - "proof" - ], - [ - "▁in", - "vol" - ], - [ - "▁inv", - "ol" - ], - [ - "▁H", - "istory" - ], - [ - "▁Histor", - "y" - ], - [ - "▁Hi", - "story" - ], - [ - "▁Hist", - "ory" - ], - [ - "▁", - "History" - ], - [ - ">", - "<" - ], - [ - "▁A", - "ND" - ], - [ - "▁AN", - "D" - ], - [ - "▁", - "AND" - ], - [ - "av", - "y" - ], - [ - "a", - "vy" - ], - [ - "▁rel", - "ations" - ], - [ - "▁relation", - "s" - ], - [ - "$", - "{" - ], - [ - "▁com", - "es" - ], - [ - "▁co", - "mes" - ], - [ - "▁come", - "s" - ], - [ - "▁", - "comes" - ], - [ - "▁d", - "irection" - ], - [ - "▁direct", - "ion" - ], - [ - "▁dire", - "ction" - ], - [ - "▁dir", - "ection" - ], - [ - "▁", - "direction" - ], - [ - "▁J", - "une" - ], - [ - "▁Ju", - "ne" - ], - [ - "▁Jun", - "e" - ], - [ - "▁W", - "ay" - ], - [ - "▁Wa", - "y" - ], - [ - "Com", - "ponent" - ], - [ - "ec", - "h" - ], - [ - "e", - "ch" - ], - [ - "▁P", - "eter" - ], - [ - "▁Pe", - "ter" - ], - [ - "▁Pet", - "er" - ], - [ - "▁", - "Peter" - ], - [ - "s", - "g" - ], - [ - "▁s", - "tra" - ], - [ - "▁st", - "ra" - ], - [ - "▁str", - "a" - ], - [ - "▁", - "stra" - ], - [ - "uc", - "t" - ], - [ - "u", - "ct" - ], - [ - "▁im", - "plementation" - ], - [ - "▁implement", - "ation" - ], - [ - "▁", - "implementation" - ], - [ - "att", - "le" - ], - [ - "▁c", - "z" - ], - [ - "▁", - "cz" - ], - [ - "pl", - "ot" - ], - [ - "p", - "lot" - ], - [ - "▁play", - "ed" - ], - [ - "▁pla", - "yed" - ], - [ - "\">", - "<", - "/" - ], - [ - "\"", - ">", - "(" - ], - [ - "▁g", - "round" - ], - [ - "▁gr", - "ound" - ], - [ - "▁gro", - "und" - ], - [ - "▁", - "ground" - ], - [ - "un", - "n" - ], - [ - "u", - "nn" - ], - [ - "ro", - "d" - ], - [ - "r", - "od" - ], - [ - "sp", - "e" - ], - [ - "s", - "pe" - ], - [ - "urs", - "or" - ], - [ - "▁le", - "ave" - ], - [ - "er", - "k" - ], - [ - "▁t", - "al" - ], - [ - "▁ta", - "l" - ], - [ - "▁", - "tal" - ], - [ - "▁b", - "ottom" - ], - [ - "▁bot", - "tom" - ], - [ - "▁bott", - "om" - ], - [ - "▁", - "bottom" - ], - [ - "I", - "O" - ], - [ - "▁pop", - "ular" - ], - [ - "▁popula", - "r" - ], - [ - "▁popul", - "ar" - ], - [ - "ig", - "o" - ], - [ - "i", - "go" - ], - [ - "▁T", - "ime" - ], - [ - "▁Tim", - "e" - ], - [ - "▁Ti", - "me" - ], - [ - "▁", - "Time" - ], - [ - "val", - "ues" - ], - [ - "value", - "s" - ], - [ - "valu", - "es" - ], - [ - "▁L", - "oc" - ], - [ - "▁Lo", - "c" - ], - [ - "▁", - "Loc" - ], - [ - "▁C", - "lub" - ], - [ - "▁Cl", - "ub" - ], - [ - "▁an", - "che" - ], - [ - "▁anc", - "he" - ], - [ - "▁anch", - "e" - ], - [ - "▁", - "anche" - ], - [ - "ia", - "ł" - ], - [ - "i", - "ał" - ], - [ - "і", - "ї" - ], - [ - "Om", - "ega" - ], - [ - "▁loc", - "ated" - ], - [ - "▁locate", - "d" - ], - [ - "▁", - "located" - ], - [ - "U", - "rl" - ], - [ - "▁E", - "sp" - ], - [ - "▁Es", - "p" - ], - [ - "▁", - "Esp" - ], - [ - "л", - "ы" - ], - [ - "ц", - "ь" - ], - [ - "ul", - "ate" - ], - [ - "ula", - "te" - ], - [ - "u", - "late" - ], - [ - "▁j", - "oin" - ], - [ - "▁jo", - "in" - ], - [ - "▁", - "join" - ], - [ - "av", - "es" - ], - [ - "ave", - "s" - ], - [ - "a", - "ves" - ], - [ - "ve", - "t" - ], - [ - "v", - "et" - ], - [ - "li", - "o" - ], - [ - "l", - "io" - ], - [ - "re", - "move" - ], - [ - "rem", - "ove" - ], - [ - "▁t", - "oken" - ], - [ - "▁to", - "ken" - ], - [ - "▁", - "token" - ], - [ - "▁op", - "tim" - ], - [ - "▁opt", - "im" - ], - [ - "▁", - "optim" - ], - [ - "▁c", - "laim" - ], - [ - "▁cla", - "im" - ], - [ - "olog", - "ical" - ], - [ - "▁c", - "ss" - ], - [ - "▁cs", - "s" - ], - [ - "▁", - "css" - ], - [ - "▁al", - "though" - ], - [ - "▁", - "although" - ], - [ - "▁p", - "riv" - ], - [ - "▁pr", - "iv" - ], - [ - "▁pri", - "v" - ], - [ - "▁", - "priv" - ], - [ - "▁B", - "a" - ], - [ - "ü", - "l" - ], - [ - "entic", - "ation" - ], - [ - "enti", - "cation" - ], - [ - "▁v", - "en" - ], - [ - "▁ve", - "n" - ], - [ - "▁", - "ven" - ], - [ - "Ser", - "ver" - ], - [ - "Serv", - "er" - ], - [ - "▁C", - "ong" - ], - [ - "▁Con", - "g" - ], - [ - "▁Co", - "ng" - ], - [ - "NE", - "T" - ], - [ - "N", - "ET" - ], - [ - "CO", - "N" - ], - [ - "C", - "ON" - ], - [ - "d", - "t" - ], - [ - "per", - "ties" - ], - [ - "pert", - "ies" - ], - [ - "▁e", - "pis" - ], - [ - "▁ep", - "is" - ], - [ - "wik", - "ipedia" - ], - [ - "▁eng", - "ine" - ], - [ - "▁", - "engine" - ], - [ - "▁f", - "er" - ], - [ - "▁fe", - "r" - ], - [ - "▁", - "fer" - ], - [ - "get", - "Element" - ], - [ - "▁C", - "la" - ], - [ - "▁Cl", - "a" - ], - [ - "▁", - "Cla" - ], - [ - "ř", - "í" - ], - [ - "▁r", - "om" - ], - [ - "▁ro", - "m" - ], - [ - "▁", - "rom" - ], - [ - "var", - "epsilon" - ], - [ - "vare", - "psilon" - ], - [ - "▁pr", - "ime" - ], - [ - "▁prim", - "e" - ], - [ - "▁pri", - "me" - ], - [ - "▁", - "prime" - ], - [ - "is", - "try" - ], - [ - "ist", - "ry" - ], - [ - "istr", - "y" - ], - [ - "pe", - "cted" - ], - [ - "pect", - "ed" - ], - [ - "pec", - "ted" - ], - [ - "p", - "ected" - ], - [ - "or", - "age" - ], - [ - "ora", - "ge" - ], - [ - "o", - "rage" - ], - [ - "▁t", - "ouch" - ], - [ - "▁to", - "uch" - ], - [ - "▁tou", - "ch" - ], - [ - "▁", - "touch" - ], - [ - "▁[", - "'" - ], - [ - "▁", - "['" - ], - [ - "▁d", - "an" - ], - [ - "▁da", - "n" - ], - [ - "▁", - "dan" - ], - [ - "E", - "m" - ], - [ - "ac", - "iones" - ], - [ - "acion", - "es" - ], - [ - "aci", - "ones" - ], - [ - "a", - "ciones" - ], - [ - "Ca", - "n" - ], - [ - "C", - "an" - ], - [ - "▁w", - "hom" - ], - [ - "▁wh", - "om" - ], - [ - "▁who", - "m" - ], - [ - "▁be", - "havior" - ], - [ - "▁behav", - "ior" - ], - [ - "▁str", - "ings" - ], - [ - "▁string", - "s" - ], - [ - "▁", - "strings" - ], - [ - "▁E", - "urop" - ], - [ - "▁Euro", - "p" - ], - [ - "▁Eu", - "rop" - ], - [ - "▁Eur", - "op" - ], - [ - "▁R", - "om" - ], - [ - "▁Ro", - "m" - ], - [ - "ci", - "rc" - ], - [ - "cir", - "c" - ], - [ - "c", - "irc" - ], - [ - "▁p", - "un" - ], - [ - "▁pu", - "n" - ], - [ - "▁reg", - "ister" - ], - [ - "▁", - "register" - ], - [ - "b", - "untu" - ], - [ - "ra", - "in" - ], - [ - "rai", - "n" - ], - [ - "r", - "ain" - ], - [ - "O", - "b" - ], - [ - "T", - "A" - ], - [ - "▁s", - "ometimes" - ], - [ - "▁some", - "times" - ], - [ - "▁somet", - "imes" - ], - [ - "▁m", - "ent" - ], - [ - "▁me", - "nt" - ], - [ - "▁men", - "t" - ], - [ - "▁", - "ment" - ], - [ - "▁in", - "teger" - ], - [ - "▁inte", - "ger" - ], - [ - "▁", - "integer" - ], - [ - "▁J", - "ac" - ], - [ - "▁Ja", - "c" - ], - [ - "▁", - "Jac" - ], - [ - "le", - "gate" - ], - [ - "leg", - "ate" - ], - [ - "ot", - "hing" - ], - [ - "oth", - "ing" - ], - [ - "o", - "thing" - ], - [ - "▁s", - "ound" - ], - [ - "▁so", - "und" - ], - [ - "▁sou", - "nd" - ], - [ - "▁", - "sound" - ], - [ - "la", - "ces" - ], - [ - "lace", - "s" - ], - [ - "lac", - "es" - ], - [ - "l", - "aces" - ], - [ - "▁Б", - "а" - ], - [ - "r", - "b" - ], - [ - "d", - "i" - ], - [ - "ле", - "ния" - ], - [ - "▁them", - "selves" - ], - [ - "▁B", - "lack" - ], - [ - "▁Bl", - "ack" - ], - [ - "▁Bla", - "ck" - ], - [ - "▁", - "Black" - ], - [ - "▁s", - "ettings" - ], - [ - "▁sett", - "ings" - ], - [ - "▁setting", - "s" - ], - [ - "▁", - "settings" - ], - [ - "▁n", - "orm" - ], - [ - "▁no", - "rm" - ], - [ - "▁nor", - "m" - ], - [ - "▁", - "norm" - ], - [ - "▁r", - "uns" - ], - [ - "▁run", - "s" - ], - [ - "▁ru", - "ns" - ], - [ - "▁N", - "OT" - ], - [ - "▁NO", - "T" - ], - [ - "▁", - "NOT" - ], - [ - "K", - "E" - ], - [ - "▁per", - "haps" - ], - [ - "▁", - "Я" - ], - [ - "▁m", - "ol" - ], - [ - "▁mo", - "l" - ], - [ - "▁a", - "ns" - ], - [ - "▁an", - "s" - ], - [ - "▁", - "ans" - ], - [ - "at", - "re" - ], - [ - "atr", - "e" - ], - [ - "a", - "tre" - ], - [ - "▁D", - "ies" - ], - [ - "▁Die", - "s" - ], - [ - "▁Di", - "es" - ], - [ - "To", - "ken" - ], - [ - "T", - "oken" - ], - [ - "an", - "ie" - ], - [ - "ani", - "e" - ], - [ - "a", - "nie" - ], - [ - "▁all", - "owed" - ], - [ - "▁allow", - "ed" - ], - [ - "▁allo", - "wed" - ], - [ - "▁", - "allowed" - ], - [ - "R", - "ange" - ], - [ - "▁G", - "ro" - ], - [ - "▁Gr", - "o" - ], - [ - "vi", - "a" - ], - [ - "v", - "ia" - ], - [ - "ut", - "orial" - ], - [ - "uto", - "rial" - ], - [ - "utor", - "ial" - ], - [ - "ens", - "or" - ], - [ - "enso", - "r" - ], - [ - "est", - "ival" - ], - [ - "esti", - "val" - ], - [ - ");", - "\r" - ], - [ - ")", - ";\r" - ], - [ - "кра", - "ї" - ], - [ - "▁turn", - "ed" - ], - [ - "▁tur", - "ned" - ], - [ - "sc", - "ope" - ], - [ - "scop", - "e" - ], - [ - "s", - "cope" - ], - [ - "▁b", - "ien" - ], - [ - "▁bi", - "en" - ], - [ - "=", - "$" - ], - [ - "▁ext", - "ension" - ], - [ - "▁extens", - "ion" - ], - [ - "▁", - "extension" - ], - [ - "at", - "ore" - ], - [ - "ator", - "e" - ], - [ - "ato", - "re" - ], - [ - "▁Р", - "о" - ], - [ - "▁spec", - "ify" - ], - [ - "ed", - "u" - ], - [ - "e", - "du" - ], - [ - "Dat", - "os" - ], - [ - "D", - "atos" - ], - [ - "▁st", - "ored" - ], - [ - "▁stor", - "ed" - ], - [ - "▁store", - "d" - ], - [ - "▁sto", - "red" - ], - [ - "▁p", - "arse" - ], - [ - "▁par", - "se" - ], - [ - "▁", - "parse" - ], - [ - "▁an", - "swers" - ], - [ - "▁answer", - "s" - ], - [ - "▁ans", - "wers" - ], - [ - "il", - "ls" - ], - [ - "ill", - "s" - ], - [ - "▁he", - "ard" - ], - [ - "▁hear", - "d" - ], - [ - "l", - "u" - ], - [ - "▁T", - "HE" - ], - [ - "▁TH", - "E" - ], - [ - "▁", - "THE" - ], - [ - "▁g", - "én" - ], - [ - "▁gé", - "n" - ], - [ - "▁f", - "ul" - ], - [ - "▁fu", - "l" - ], - [ - "▁", - "ful" - ], - [ - "e", - "z" - ], - [ - "▁P", - "rem" - ], - [ - "▁Pr", - "em" - ], - [ - "▁Pre", - "m" - ], - [ - "th", - "en" - ], - [ - "the", - "n" - ], - [ - "t", - "hen" - ], - [ - "d", - "p" - ], - [ - "сь", - "кого" - ], - [ - "сько", - "го" - ], - [ - "ськ", - "ого" - ], - [ - "▁S", - "i" - ], - [ - "▁", - "Si" - ], - [ - "ç", - "o" - ], - [ - "Ed", - "it" - ], - [ - "E", - "dit" - ], - [ - "кі", - "в" - ], - [ - "к", - "ів" - ], - [ - "▁Л", - "и" - ], - [ - "▁S", - "ing" - ], - [ - "▁Si", - "ng" - ], - [ - "▁Sin", - "g" - ], - [ - "▁", - "Sing" - ], - [ - "▁c", - "ateg" - ], - [ - "▁cat", - "eg" - ], - [ - "Eq", - "u" - ], - [ - "E", - "qu" - ], - [ - "▁g", - "uer" - ], - [ - "▁gu", - "er" - ], - [ - "▁", - "guer" - ], - [ - "W", - "idth" - ], - [ - "▁Christ", - "ian" - ], - [ - "st", - "at" - ], - [ - "sta", - "t" - ], - [ - "s", - "tat" - ], - [ - "W", - "rite" - ], - [ - "▁w", - "oman" - ], - [ - "▁wo", - "man" - ], - [ - "wo", - "od" - ], - [ - "w", - "ood" - ], - [ - "V", - "is" - ], - [ - "ра", - "з" - ], - [ - "▁$", - "$\\" - ], - [ - "▁$$", - "\\" - ], - [ - "ode", - "r" - ], - [ - "od", - "er" - ], - [ - "o", - "der" - ], - [ - "▁b", - "ool" - ], - [ - "▁bo", - "ol" - ], - [ - "▁", - "bool" - ], - [ - "▁intern", - "ational" - ], - [ - "но", - "сть" - ], - [ - "ност", - "ь" - ], - [ - "нос", - "ть" - ], - [ - "▁Rich", - "ard" - ], - [ - "▁Ric", - "hard" - ], - [ - "▁add", - "ition" - ], - [ - "▁Mus", - "ic" - ], - [ - "▁", - "Music" - ], - [ - "▁a", - "ber" - ], - [ - "▁ab", - "er" - ], - [ - "t", - "ó" - ], - [ - "▁h", - "ier" - ], - [ - "▁hi", - "er" - ], - [ - "ug", - "h" - ], - [ - "u", - "gh" - ], - [ - "▁p", - "ob" - ], - [ - "▁po", - "b" - ], - [ - "▁t", - "ables" - ], - [ - "▁table", - "s" - ], - [ - "▁tab", - "les" - ], - [ - "▁ta", - "bles" - ], - [ - "▁", - "tables" - ], - [ - "D", - "o" - ], - [ - "▁high", - "er" - ], - [ - "ps", - "i" - ], - [ - "p", - "si" - ], - [ - "r", - "á" - ], - [ - "▁act", - "ive" - ], - [ - "▁activ", - "e" - ], - [ - "▁", - "active" - ], - [ - "▁T", - "able" - ], - [ - "▁Ta", - "ble" - ], - [ - "▁Tab", - "le" - ], - [ - "▁", - "Table" - ], - [ - "њ", - "е" - ], - [ - "▁de", - "scription" - ], - [ - "▁des", - "cription" - ], - [ - "▁descri", - "ption" - ], - [ - "▁descript", - "ion" - ], - [ - "▁", - "description" - ], - [ - "▁se", - "emed" - ], - [ - "▁see", - "med" - ], - [ - "▁seem", - "ed" - ], - [ - "ís", - "t" - ], - [ - "í", - "st" - ], - [ - "▁my", - "self" - ], - [ - "▁m", - "enu" - ], - [ - "▁me", - "nu" - ], - [ - "▁men", - "u" - ], - [ - "▁", - "menu" - ], - [ - "de", - "l" - ], - [ - "d", - "el" - ], - [ - "▁", - "ž" - ], - [ - "el", - "e" - ], - [ - "e", - "le" - ], - [ - "A", - "ut" - ], - [ - "▁г", - "ру" - ], - [ - "mu", - "t" - ], - [ - "m", - "ut" - ], - [ - "oo", - "n" - ], - [ - "o", - "on" - ], - [ - "as", - "c" - ], - [ - "a", - "sc" - ], - [ - "bu", - "g" - ], - [ - "b", - "ug" - ], - [ - "▁m", - "oved" - ], - [ - "▁mov", - "ed" - ], - [ - "▁mo", - "ved" - ], - [ - "▁move", - "d" - ], - [ - "C", - "L" - ], - [ - "▁data", - "s" - ], - [ - "▁dat", - "as" - ], - [ - "▁", - "datas" - ], - [ - "S", - "O" - ], - [ - "о", - "ло" - ], - [ - "▁Ge", - "org" - ], - [ - "▁re", - "ach" - ], - [ - "▁r", - "each" - ], - [ - ":", - "\"" - ], - [ - "▁e", - "valu" - ], - [ - "▁ev", - "alu" - ], - [ - "▁eval", - "u" - ], - [ - "▁", - "evalu" - ], - [ - "▁H", - "el" - ], - [ - "▁He", - "l" - ], - [ - "▁", - "Hel" - ], - [ - "▁R", - "iver" - ], - [ - "▁Riv", - "er" - ], - [ - "▁Ri", - "ver" - ], - [ - "▁А", - "р" - ], - [ - "▁", - "Ар" - ], - [ - "//", - "//" - ], - [ - "///", - "/" - ], - [ - "/", - "///" - ], - [ - "▁s", - "ets" - ], - [ - "▁se", - "ts" - ], - [ - "▁set", - "s" - ], - [ - "▁", - "sets" - ], - [ - "▁O", - "lymp" - ], - [ - "Ad", - "apter" - ], - [ - ".", - "'" - ], - [ - "ov", - "ern" - ], - [ - "over", - "n" - ], - [ - "ove", - "rn" - ], - [ - "o", - "vern" - ], - [ - "▁L", - "ord" - ], - [ - "▁Lo", - "rd" - ], - [ - "▁Lor", - "d" - ], - [ - "!", - "--" - ], - [ - "jp", - "g" - ], - [ - "j", - "pg" - ], - [ - "im", - "ento" - ], - [ - "iment", - "o" - ], - [ - "imen", - "to" - ], - [ - "▁Pro", - "f" - ], - [ - "▁Pr", - "of" - ], - [ - "▁ach", - "ieve" - ], - [ - "▁achiev", - "e" - ], - [ - "}", - ":" - ], - [ - "▁in", - "cor" - ], - [ - "▁inc", - "or" - ], - [ - "▁o", - "nder" - ], - [ - "▁on", - "der" - ], - [ - "▁onde", - "r" - ], - [ - "▁", - "onder" - ], - [ - "en", - "gl" - ], - [ - "eng", - "l" - ], - [ - "AB", - "LE" - ], - [ - "▁M", - "ary" - ], - [ - "▁Mar", - "y" - ], - [ - "▁Ma", - "ry" - ], - [ - "▁w", - "aren" - ], - [ - "▁war", - "en" - ], - [ - "▁wa", - "ren" - ], - [ - "la", - "ge" - ], - [ - "lag", - "e" - ], - [ - "l", - "age" - ], - [ - "De", - "c" - ], - [ - "D", - "ec" - ], - [ - "анг", - "л" - ], - [ - "en", - "cias" - ], - [ - "enc", - "ias" - ], - [ - "encia", - "s" - ], - [ - "enci", - "as" - ], - [ - "ле", - "й" - ], - [ - "л", - "ей" - ], - [ - "▁M", - "achine" - ], - [ - "▁Mach", - "ine" - ], - [ - "▁", - "Machine" - ], - [ - "▁А", - "н" - ], - [ - "ud", - "a" - ], - [ - "u", - "da" - ], - [ - "▁", - "ś" - ], - [ - "▁X", - "X" - ], - [ - "▁", - "XX" - ], - [ - "on", - "ly" - ], - [ - "ле", - "ние" - ], - [ - "▁tamb", - "ién" - ], - [ - "ne", - "j" - ], - [ - "n", - "ej" - ], - [ - "▁rel", - "ative" - ], - [ - "▁relativ", - "e" - ], - [ - "▁", - "relative" - ], - [ - "▁h", - "ours" - ], - [ - "▁ho", - "urs" - ], - [ - "▁hour", - "s" - ], - [ - "▁ind", - "eed" - ], - [ - "▁inde", - "ed" - ], - [ - "un", - "do" - ], - [ - "und", - "o" - ], - [ - "in", - "gu" - ], - [ - "ing", - "u" - ], - [ - "ar", - "ea" - ], - [ - "are", - "a" - ], - [ - "a", - "rea" - ], - [ - "▁C", - "reate" - ], - [ - "▁Cre", - "ate" - ], - [ - "▁", - "Create" - ], - [ - "be", - "it" - ], - [ - "bei", - "t" - ], - [ - "▁rem", - "oved" - ], - [ - "▁remove", - "d" - ], - [ - "▁remov", - "ed" - ], - [ - "ma", - "ster" - ], - [ - "mas", - "ter" - ], - [ - "maste", - "r" - ], - [ - "m", - "aster" - ], - [ - "ha", - "us" - ], - [ - "h", - "aus" - ], - [ - "▁B", - "ern" - ], - [ - "▁Be", - "rn" - ], - [ - "▁Ber", - "n" - ], - [ - "▁sp", - "eed" - ], - [ - "▁spe", - "ed" - ], - [ - "▁", - "speed" - ], - [ - "▁B", - "ay" - ], - [ - "▁Ba", - "y" - ], - [ - "▁A", - "tt" - ], - [ - "▁At", - "t" - ], - [ - "▁", - "Att" - ], - [ - "▁N", - "one" - ], - [ - "▁No", - "ne" - ], - [ - "▁Non", - "e" - ], - [ - "▁", - "None" - ], - [ - "app", - "lication" - ], - [ - "ü", - "d" - ], - [ - "▁f", - "it" - ], - [ - "▁fi", - "t" - ], - [ - "▁", - "fit" - ], - [ - "▁M", - "aria" - ], - [ - "▁Mar", - "ia" - ], - [ - "▁Ma", - "ria" - ], - [ - "▁Mari", - "a" - ], - [ - "▁n", - "ord" - ], - [ - "▁no", - "rd" - ], - [ - "▁nor", - "d" - ], - [ - "▁s", - "plit" - ], - [ - "▁sp", - "lit" - ], - [ - "▁spl", - "it" - ], - [ - "▁", - "split" - ], - [ - "▁st", - "ru" - ], - [ - "▁str", - "u" - ], - [ - "▁", - "stru" - ], - [ - "▁o", - "fficial" - ], - [ - "▁off", - "icial" - ], - [ - "▁offic", - "ial" - ], - [ - "▁offici", - "al" - ], - [ - "▁exec", - "ute" - ], - [ - "▁execut", - "e" - ], - [ - "▁", - "execute" - ], - [ - "ou", - "ve" - ], - [ - "ouv", - "e" - ], - [ - "o", - "uve" - ], - [ - "{", - "{" - ], - [ - "▁A", - "p" - ], - [ - "▁", - "Ap" - ], - [ - "▁к", - "у" - ], - [ - "▁", - "ку" - ], - [ - "I", - "L" - ], - [ - "▁", - "^" - ], - [ - "di", - "m" - ], - [ - "d", - "im" - ], - [ - "▁set", - "up" - ], - [ - "▁", - "setup" - ], - [ - "с", - "к" - ], - [ - "▁sh", - "are" - ], - [ - "▁", - "share" - ], - [ - "▁min", - "utes" - ], - [ - "▁minute", - "s" - ], - [ - "gl", - "e" - ], - [ - "g", - "le" - ], - [ - "oc", - "o" - ], - [ - "o", - "co" - ], - [ - "st", - "ell" - ], - [ - "ste", - "ll" - ], - [ - "▁C", - "oun" - ], - [ - "▁Co", - "un" - ], - [ - "▁Cou", - "n" - ], - [ - "▁tem", - "per" - ], - [ - "▁temp", - "er" - ], - [ - "▁", - "temper" - ], - [ - "ke", - "it" - ], - [ - "сь", - "кий" - ], - [ - "a", - "o" - ], - [ - "▁L", - "ong" - ], - [ - "▁Lo", - "ng" - ], - [ - "▁", - "Long" - ], - [ - "(", - "&" - ], - [ - "ка", - "н" - ], - [ - "к", - "ан" - ], - [ - "▁d", - "ens" - ], - [ - "▁de", - "ns" - ], - [ - "▁den", - "s" - ], - [ - "▁", - "dens" - ], - [ - "Bu", - "t" - ], - [ - "B", - "ut" - ], - [ - "X", - "X" - ], - [ - "DA", - "TE" - ], - [ - "DAT", - "E" - ], - [ - "D", - "ATE" - ], - [ - "ga", - "n" - ], - [ - "g", - "an" - ], - [ - ".)", - "." - ], - [ - ".", - ")." - ], - [ - "▁en", - "try" - ], - [ - "▁ent", - "ry" - ], - [ - "▁entr", - "y" - ], - [ - "▁", - "entry" - ], - [ - "inst", - "all" - ], - [ - "▁з", - "на" - ], - [ - "▁", - "зна" - ], - [ - "▁S", - "om" - ], - [ - "▁So", - "m" - ], - [ - "Comm", - "and" - ], - [ - "ße", - "n" - ], - [ - "ß", - "en" - ], - [ - "▁start", - "ing" - ], - [ - "▁star", - "ting" - ], - [ - "▁s", - "to" - ], - [ - "▁st", - "o" - ], - [ - "▁", - "sto" - ], - [ - "I", - "G" - ], - [ - "▁min", - "im" - ], - [ - "▁mi", - "nim" - ], - [ - "▁mini", - "m" - ], - [ - "▁exp", - "licit" - ], - [ - "▁explic", - "it" - ], - [ - "▁by", - "tes" - ], - [ - "▁byte", - "s" - ], - [ - "▁", - "bytes" - ], - [ - "▁par", - "ty" - ], - [ - "▁part", - "y" - ], - [ - "▁", - "party" - ], - [ - "to", - "ber" - ], - [ - "t", - "ober" - ], - [ - "▁G", - "rand" - ], - [ - "▁Gr", - "and" - ], - [ - "▁Gra", - "nd" - ], - [ - "▁Gran", - "d" - ], - [ - "▁V", - "or" - ], - [ - "▁Vo", - "r" - ], - [ - "▁", - "Vor" - ], - [ - "▁l", - "eur" - ], - [ - "▁le", - "ur" - ], - [ - "▁", - "leur" - ], - [ - "Doc", - "ument" - ], - [ - "D", - "ocument" - ], - [ - "er", - "c" - ], - [ - "e", - "rc" - ], - [ - "ens", - "ive" - ], - [ - "C", - "P" - ], - [ - "en", - "v" - ], - [ - "▁arg", - "uments" - ], - [ - "▁argument", - "s" - ], - [ - "▁", - "arguments" - ], - [ - "▁G", - "ran" - ], - [ - "▁Gr", - "an" - ], - [ - "▁Gra", - "n" - ], - [ - "ar", - "ily" - ], - [ - "ari", - "ly" - ], - [ - "▁l", - "in" - ], - [ - "▁li", - "n" - ], - [ - "▁", - "lin" - ], - [ - "t", - "n" - ], - [ - "(", - "-" - ], - [ - "ge", - "q" - ], - [ - "g", - "eq" - ], - [ - "▁F", - "amil" - ], - [ - "▁Fa", - "mil" - ], - [ - "▁Fam", - "il" - ], - [ - "▁", - "Famil" - ], - [ - "▁Б", - "о" - ], - [ - "▁t", - "our" - ], - [ - "▁to", - "ur" - ], - [ - "▁tou", - "r" - ], - [ - "▁n", - "av" - ], - [ - "▁na", - "v" - ], - [ - "▁", - "nav" - ], - [ - "▁proper", - "ly" - ], - [ - "▁M", - "rs" - ], - [ - "▁Mr", - "s" - ], - [ - "▁M", - "el" - ], - [ - "▁Me", - "l" - ], - [ - "▁sc", - "ale" - ], - [ - "▁scal", - "e" - ], - [ - "▁", - "scale" - ], - [ - "ast", - "ic" - ], - [ - "d", - "s" - ], - [ - "▁S", - "ir" - ], - [ - "▁Si", - "r" - ], - [ - "▁Ch", - "urch" - ], - [ - "}^", - "{\\" - ], - [ - "}^{", - "\\" - ], - [ - "}", - "^{\\" - ], - [ - "yo", - "u" - ], - [ - "y", - "ou" - ], - [ - "/", - "." - ], - [ - "S", - "o" - ], - [ - "▁br", - "ought" - ], - [ - "▁r", - "ole" - ], - [ - "▁ro", - "le" - ], - [ - "▁rol", - "e" - ], - [ - "▁", - "role" - ], - [ - "▁S", - "ur" - ], - [ - "▁Su", - "r" - ], - [ - "▁", - "Sur" - ], - [ - "▁f", - "ond" - ], - [ - "▁fo", - "nd" - ], - [ - "▁fon", - "d" - ], - [ - "▁g", - "es" - ], - [ - "▁ge", - "s" - ], - [ - "▁", - "ges" - ], - [ - "ż", - "e" - ], - [ - "et", - "en" - ], - [ - "ete", - "n" - ], - [ - "e", - "ten" - ], - [ - "▁é", - "tait" - ], - [ - "▁ét", - "ait" - ], - [ - "▁", - "était" - ], - [ - "SE", - "R" - ], - [ - "S", - "ER" - ], - [ - "▁ко", - "торы" - ], - [ - "▁кото", - "ры" - ], - [ - "▁equ", - "ation" - ], - [ - "▁", - "equation" - ], - [ - "as", - "px" - ], - [ - "asp", - "x" - ], - [ - "▁A", - "fr" - ], - [ - "▁Af", - "r" - ], - [ - "▁d", - "it" - ], - [ - "▁di", - "t" - ], - [ - "▁", - "dit" - ], - [ - "em", - "pty" - ], - [ - "emp", - "ty" - ], - [ - "empt", - "y" - ], - [ - "al", - "ement" - ], - [ - "ale", - "ment" - ], - [ - "alem", - "ent" - ], - [ - "a", - "lement" - ], - [ - "wr", - "ap" - ], - [ - "w", - "rap" - ], - [ - "▁B", - "et" - ], - [ - "▁Be", - "t" - ], - [ - "▁col", - "lect" - ], - [ - "▁coll", - "ect" - ], - [ - "▁colle", - "ct" - ], - [ - "▁", - "collect" - ], - [ - "▁g", - "it" - ], - [ - "▁gi", - "t" - ], - [ - "▁", - "git" - ], - [ - "▁v", - "ie" - ], - [ - "▁vi", - "e" - ], - [ - "▁", - "vie" - ], - [ - "▁.", - "." - ], - [ - "▁", - ".." - ], - [ - "ро", - "й" - ], - [ - "▁<", - "?" - ], - [ - "▁", - "" - ], - [ - "▁В", - "а" - ], - [ - "no", - "st" - ], - [ - "nos", - "t" - ], - [ - "n", - "ost" - ], - [ - "▁n", - "em" - ], - [ - "▁ne", - "m" - ], - [ - "▁", - "nem" - ], - [ - "▁p", - "en" - ], - [ - "▁pe", - "n" - ], - [ - "▁", - "pen" - ], - [ - "Op", - "en" - ], - [ - "O", - "pen" - ], - [ - "▁ch", - "urch" - ], - [ - "ко", - "н" - ], - [ - "к", - "он" - ], - [ - "▁a", - "verage" - ], - [ - "▁aver", - "age" - ], - [ - "▁ave", - "rage" - ], - [ - "▁com", - "ments" - ], - [ - "▁comm", - "ents" - ], - [ - "▁comment", - "s" - ], - [ - "▁", - "comments" - ], - [ - "▁correspond", - "ing" - ], - [ - "lev", - "ant" - ], - [ - "▁b", - "ed" - ], - [ - "▁be", - "d" - ], - [ - "▁", - "bed" - ], - [ - "▁mean", - "ing" - ], - [ - "V", - "ersion" - ], - [ - "Lin", - "k" - ], - [ - "L", - "ink" - ], - [ - "be", - "l" - ], - [ - "b", - "el" - ], - [ - "▁ext", - "ract" - ], - [ - "▁extra", - "ct" - ], - [ - "▁extr", - "act" - ], - [ - "▁", - "extract" - ], - [ - "ś", - "ć" - ], - [ - "▁I", - "V" - ], - [ - "▁", - "IV" - ], - [ - "▁I", - "r" - ], - [ - "▁comp", - "uter" - ], - [ - "▁comput", - "er" - ], - [ - "▁compute", - "r" - ], - [ - "▁a", - "ffect" - ], - [ - "▁af", - "fect" - ], - [ - "▁aff", - "ect" - ], - [ - "▁С", - "та" - ], - [ - "▁Ст", - "а" - ], - [ - "A", - "X" - ], - [ - "so", - "rt" - ], - [ - "s", - "ort" - ], - [ - "▁s", - "pecies" - ], - [ - "▁spe", - "cies" - ], - [ - "▁spec", - "ies" - ], - [ - "▁specie", - "s" - ], - [ - "▁", - "species" - ], - [ - "▁O", - "per" - ], - [ - "▁Op", - "er" - ], - [ - "▁", - "Oper" - ], - [ - "▁h", - "ash" - ], - [ - "▁ha", - "sh" - ], - [ - "▁has", - "h" - ], - [ - "▁", - "hash" - ], - [ - "ch", - "es" - ], - [ - "che", - "s" - ], - [ - "c", - "hes" - ], - [ - "▁Einz", - "eln" - ], - [ - "▁Einzel", - "n" - ], - [ - "▁ke", - "ys" - ], - [ - "▁key", - "s" - ], - [ - "▁", - "keys" - ], - [ - "▁mar", - "zo" - ], - [ - "▁inter", - "pret" - ], - [ - "▁interpre", - "t" - ], - [ - "ho", - "od" - ], - [ - "h", - "ood" - ], - [ - "▁co", - "ordin" - ], - [ - "▁coord", - "in" - ], - [ - "ö", - "s" - ], - [ - "ra", - "ge" - ], - [ - "rag", - "e" - ], - [ - "r", - "age" - ], - [ - "et", - "z" - ], - [ - "e", - "tz" - ], - [ - "iz", - "a" - ], - [ - "i", - "za" - ], - [ - "де", - "р" - ], - [ - "д", - "ер" - ], - [ - "ü", - "t" - ], - [ - "^", - "*" - ], - [ - "▁mod", - "ify" - ], - [ - "▁term", - "in" - ], - [ - "▁ter", - "min" - ], - [ - "▁", - "termin" - ], - [ - "▁c", - "red" - ], - [ - "▁cre", - "d" - ], - [ - "▁cr", - "ed" - ], - [ - "▁", - "cred" - ], - [ - "zo", - "n" - ], - [ - "z", - "on" - ], - [ - "ну", - "ю" - ], - [ - "н", - "ую" - ], - [ - "▁m", - "ie" - ], - [ - "▁mi", - "e" - ], - [ - "▁'", - "'" - ], - [ - "▁", - "''" - ], - [ - "▁M", - "os" - ], - [ - "▁Mo", - "s" - ], - [ - "▁conne", - "cted" - ], - [ - "▁connect", - "ed" - ], - [ - "▁conn", - "ected" - ], - [ - "▁", - "connected" - ], - [ - "N", - "O" - ], - [ - "▁comp", - "ile" - ], - [ - "▁", - "compile" - ], - [ - "▁\"", - "\\" - ], - [ - "▁", - "\"\\" - ], - [ - "▁c", - "at" - ], - [ - "▁ca", - "t" - ], - [ - "▁", - "cat" - ], - [ - "f", - "iddle" - ], - [ - "ut", - "a" - ], - [ - "u", - "ta" - ], - [ - "Acc", - "ess" - ], - [ - "Ac", - "cess" - ], - [ - "A", - "ccess" - ], - [ - "▁S", - "to" - ], - [ - "▁St", - "o" - ], - [ - "▁", - "Sto" - ], - [ - "▁B", - "ur" - ], - [ - "▁Bu", - "r" - ], - [ - "▁n", - "orth" - ], - [ - "▁nor", - "th" - ], - [ - "G", - "amma" - ], - [ - "▁al", - "loc" - ], - [ - "▁all", - "oc" - ], - [ - "▁allo", - "c" - ], - [ - "▁", - "alloc" - ], - [ - "In", - "it" - ], - [ - "I", - "nit" - ], - [ - "▁L", - "ink" - ], - [ - "▁Lin", - "k" - ], - [ - "▁", - "Link" - ], - [ - "ial", - "ize" - ], - [ - "iali", - "ze" - ], - [ - "Im", - "pl" - ], - [ - "Imp", - "l" - ], - [ - "ou", - "pe" - ], - [ - "oup", - "e" - ], - [ - "rop", - "ri" - ], - [ - "▁G", - "old" - ], - [ - "▁Go", - "ld" - ], - [ - "▁Gol", - "d" - ], - [ - "▁s", - "olo" - ], - [ - "▁so", - "lo" - ], - [ - "▁sol", - "o" - ], - [ - "▁D", - "ist" - ], - [ - "▁Dis", - "t" - ], - [ - "▁Di", - "st" - ], - [ - "▁", - "Dist" - ], - [ - ",", - "-" - ], - [ - "na", - "v" - ], - [ - "n", - "av" - ], - [ - "▁al", - "ert" - ], - [ - "▁ale", - "rt" - ], - [ - "▁", - "alert" - ], - [ - "es", - "is" - ], - [ - "esi", - "s" - ], - [ - "▁O", - "s" - ], - [ - "▁", - "Os" - ], - [ - "//", - "/" - ], - [ - "/", - "//" - ], - [ - "▁f", - "eb" - ], - [ - "▁fe", - "b" - ], - [ - "▁-", - "->" - ], - [ - "▁--", - ">" - ], - [ - "▁", - "-->" - ], - [ - "fo", - "ot" - ], - [ - "foo", - "t" - ], - [ - "f", - "oot" - ], - [ - "▁F", - "ried" - ], - [ - "▁Fr", - "ied" - ], - [ - "▁Fri", - "ed" - ], - [ - "▁Einzeln", - "ach" - ], - [ - "▁Einzel", - "nach" - ], - [ - "▁re", - "v" - ], - [ - "▁r", - "ev" - ], - [ - "▁", - "rev" - ], - [ - "ze", - "it" - ], - [ - "▁S", - "tat" - ], - [ - "▁St", - "at" - ], - [ - "▁Sta", - "t" - ], - [ - "▁", - "Stat" - ], - [ - "▁S", - "eg" - ], - [ - "▁Se", - "g" - ], - [ - "▁", - "Seg" - ], - [ - "▁b", - "lo" - ], - [ - "▁bl", - "o" - ], - [ - "▁", - "blo" - ], - [ - "wi", - "ck" - ], - [ - "w", - "ick" - ], - [ - "E", - "L" - ], - [ - "ca", - "ption" - ], - [ - "cap", - "tion" - ], - [ - "capt", - "ion" - ], - [ - "he", - "ader" - ], - [ - "head", - "er" - ], - [ - "▁pres", - "ident" - ], - [ - "▁presiden", - "t" - ], - [ - "▁mult", - "ip" - ], - [ - "▁multi", - "p" - ], - [ - "▁mul", - "tip" - ], - [ - "▁", - "multip" - ], - [ - "▁Einzelnach", - "weise" - ], - [ - "▁se", - "ine" - ], - [ - "▁sein", - "e" - ], - [ - "▁sei", - "ne" - ], - [ - "?", - "”" - ], - [ - "Func", - "tion" - ], - [ - "Fun", - "ction" - ], - [ - "F", - "unction" - ], - [ - "▁St", - "and" - ], - [ - "▁Sta", - "nd" - ], - [ - "▁Stan", - "d" - ], - [ - "▁", - "Stand" - ], - [ - "▁F", - "unction" - ], - [ - "▁Fun", - "ction" - ], - [ - "▁", - "Function" - ], - [ - "▁?", - ">" - ], - [ - "▁", - "?>" - ], - [ - "▁B", - "ill" - ], - [ - "▁Bi", - "ll" - ], - [ - "▁Bil", - "l" - ], - [ - "▁s", - "pect" - ], - [ - "▁sp", - "ect" - ], - [ - "▁spe", - "ct" - ], - [ - "▁spec", - "t" - ], - [ - "▁", - "spect" - ], - [ - "▁re", - "direct" - ], - [ - "▁red", - "irect" - ], - [ - "▁", - "redirect" - ], - [ - "ru", - "pt" - ], - [ - "rup", - "t" - ], - [ - "r", - "upt" - ], - [ - "▁w", - "alk" - ], - [ - "▁wal", - "k" - ], - [ - "▁", - "walk" - ], - [ - "в", - "ши" - ], - [ - "spring", - "framework" - ], - [ - "pl", - "ace" - ], - [ - "pla", - "ce" - ], - [ - "p", - "lace" - ], - [ - "é", - "ho" - ], - [ - "Ent", - "ity" - ], - [ - "▁Ser", - "vice" - ], - [ - "▁Serv", - "ice" - ], - [ - "▁", - "Service" - ], - [ - "in", - "te" - ], - [ - "int", - "e" - ], - [ - "▁tr", - "aining" - ], - [ - "▁tra", - "ining" - ], - [ - "▁train", - "ing" - ], - [ - "▁", - "training" - ], - [ - "▁(", - "`" - ], - [ - "▁", - "(`" - ], - [ - "фо", - "р" - ], - [ - "ф", - "ор" - ], - [ - "▁к", - "ра" - ], - [ - "▁", - "кра" - ], - [ - "au", - "r" - ], - [ - "a", - "ur" - ], - [ - "▁f", - "etch" - ], - [ - "▁fet", - "ch" - ], - [ - "▁", - "fetch" - ], - [ - "▁", - "†" - ], - [ - "▁m", - "ême" - ], - [ - "▁", - "même" - ], - [ - "▁(", - "'" - ], - [ - "▁", - "('" - ], - [ - "at", - "ively" - ], - [ - "ative", - "ly" - ], - [ - "ativ", - "ely" - ], - [ - "▁exec", - "ut" - ], - [ - "ä", - "ch" - ], - [ - "▁Catalog", - "ue" - ], - [ - "ba", - "sed" - ], - [ - "base", - "d" - ], - [ - "bas", - "ed" - ], - [ - "b", - "ased" - ], - [ - "Att", - "ribute" - ], - [ - "▁s", - "pring" - ], - [ - "▁sp", - "ring" - ], - [ - "▁spr", - "ing" - ], - [ - "▁", - "spring" - ], - [ - "ph", - "one" - ], - [ - "phon", - "e" - ], - [ - "т", - "ра" - ], - [ - "▁п", - "и" - ], - [ - "▁", - "пи" - ], - [ - "те", - "ра" - ], - [ - "тер", - "а" - ], - [ - "т", - "ера" - ], - [ - "▁`", - "\\" - ], - [ - "▁O", - "d" - ], - [ - "On", - "e" - ], - [ - "O", - "ne" - ], - [ - "se", - "nd" - ], - [ - "sen", - "d" - ], - [ - "s", - "end" - ], - [ - "bo", - "n" - ], - [ - "b", - "on" - ], - [ - "▁", - "°" - ], - [ - "M", - "O" - ], - [ - "▁as", - "king" - ], - [ - "▁ask", - "ing" - ], - [ - "▁o", - "ù" - ], - [ - "▁ing", - "år" - ], - [ - "▁test", - "ing" - ], - [ - "▁", - "testing" - ], - [ - "▁ф", - "а" - ], - [ - "▁", - "фа" - ], - [ - "▁B", - "ook" - ], - [ - "▁Bo", - "ok" - ], - [ - "▁", - "Book" - ], - [ - "im", - "m" - ], - [ - "i", - "mm" - ], - [ - "▁pro", - "gress" - ], - [ - "▁", - "progress" - ], - [ - "br", - "o" - ], - [ - "b", - "ro" - ], - [ - "F", - "irst" - ], - [ - "▁p", - "hot" - ], - [ - "▁ph", - "ot" - ], - [ - "▁O", - "N" - ], - [ - "▁", - "ON" - ], - [ - "Tem", - "plate" - ], - [ - "Temp", - "late" - ], - [ - "develop", - "er" - ], - [ - "an", - "not" - ], - [ - "ann", - "ot" - ], - [ - "anno", - "t" - ], - [ - "▁>", - "=" - ], - [ - "▁", - ">=" - ], - [ - "miss", - "ion" - ], - [ - "m", - "ission" - ], - [ - "▁k", - "tó" - ], - [ - "▁", - "któ" - ], - [ - "p", - "c" - ], - [ - "ba", - "ch" - ], - [ - "b", - "ach" - ], - [ - "ze", - "nt" - ], - [ - "zen", - "t" - ], - [ - "z", - "ent" - ], - [ - "ue", - "d" - ], - [ - "u", - "ed" - ], - [ - "▁o", - "nes" - ], - [ - "▁on", - "es" - ], - [ - "▁one", - "s" - ], - [ - "▁", - "ones" - ], - [ - "ј", - "и" - ], - [ - "▁r", - "out" - ], - [ - "▁ro", - "ut" - ], - [ - "▁rou", - "t" - ], - [ - "▁", - "rout" - ], - [ - "▁К", - "и" - ], - [ - "Pos", - "t" - ], - [ - "Po", - "st" - ], - [ - "P", - "ost" - ], - [ - "ці", - "ї" - ], - [ - "ц", - "ії" - ], - [ - "▁V", - "ir" - ], - [ - "▁Vi", - "r" - ], - [ - "ne", - "k" - ], - [ - "n", - "ek" - ], - [ - "ag", - "ing" - ], - [ - "agi", - "ng" - ], - [ - "agin", - "g" - ], - [ - "a", - "ging" - ], - [ - "▁о", - "к" - ], - [ - "▁", - "ок" - ], - [ - "iz", - "ont" - ], - [ - "izo", - "nt" - ], - [ - "izon", - "t" - ], - [ - "▁ag", - "osto" - ], - [ - "▁ago", - "sto" - ], - [ - "▁cho", - "ose" - ], - [ - "▁", - "choose" - ], - [ - "▁", - "\r" - ], - [ - "▁system", - "s" - ], - [ - "▁syst", - "ems" - ], - [ - "lo", - "ss" - ], - [ - "los", - "s" - ], - [ - "l", - "oss" - ], - [ - "ien", - "te" - ], - [ - "ient", - "e" - ], - [ - "i", - "ente" - ], - [ - "▁C", - "re" - ], - [ - "▁Cr", - "e" - ], - [ - "▁", - "Cre" - ], - [ - "▁con", - "tra" - ], - [ - "▁cont", - "ra" - ], - [ - "▁contr", - "a" - ], - [ - "▁", - "contra" - ], - [ - "um", - "s" - ], - [ - "u", - "ms" - ], - [ - "▁begin", - "ning" - ], - [ - "em", - "y" - ], - [ - "e", - "my" - ], - [ - "ist", - "ics" - ], - [ - "istic", - "s" - ], - [ - "isti", - "cs" - ], - [ - "▁s", - "erved" - ], - [ - "▁ser", - "ved" - ], - [ - "▁serv", - "ed" - ], - [ - "▁serve", - "d" - ], - [ - "Do", - "wn" - ], - [ - "D", - "own" - ], - [ - "option", - "s" - ], - [ - "opt", - "ions" - ], - [ - "o", - "ptions" - ], - [ - "▁G", - "overn" - ], - [ - "▁Go", - "vern" - ], - [ - "▁B", - "Y" - ], - [ - "▁", - "BY" - ], - [ - "▁j", - "est" - ], - [ - "▁je", - "st" - ], - [ - "▁", - "jest" - ], - [ - "t", - "é" - ], - [ - "▁cont", - "inue" - ], - [ - "▁contin", - "ue" - ], - [ - "▁continu", - "e" - ], - [ - "▁", - "continue" - ], - [ - "pe", - "rs" - ], - [ - "per", - "s" - ], - [ - "p", - "ers" - ], - [ - "▁eas", - "ier" - ], - [ - "▁c", - "os" - ], - [ - "▁co", - "s" - ], - [ - "▁", - "cos" - ], - [ - "es", - "so" - ], - [ - "ess", - "o" - ], - [ - ">", - ">" - ], - [ - "Ne", - "t" - ], - [ - "N", - "et" - ], - [ - "▁B", - "or" - ], - [ - "▁Bo", - "r" - ], - [ - "▁C", - "r" - ], - [ - "▁", - "Cr" - ], - [ - "▁trans", - "fer" - ], - [ - "▁C", - "SS" - ], - [ - "▁CS", - "S" - ], - [ - "▁", - "CSS" - ], - [ - "▁fin", - "ns" - ], - [ - "▁х", - "о" - ], - [ - "▁", - "хо" - ], - [ - "us", - "ername" - ], - [ - "user", - "name" - ], - [ - "▁con", - "stru" - ], - [ - "▁const", - "ru" - ], - [ - "▁p", - "ain" - ], - [ - "▁pa", - "in" - ], - [ - "▁T", - "em" - ], - [ - "▁Te", - "m" - ], - [ - "▁", - "Tem" - ], - [ - "▁spec", - "ified" - ], - [ - "▁b", - "rit" - ], - [ - "▁br", - "it" - ], - [ - "▁", - "brit" - ], - [ - "ски", - "е" - ], - [ - "с", - "кие" - ], - [ - "ir", - "k" - ], - [ - "ra", - "pper" - ], - [ - "rap", - "per" - ], - [ - "r", - "apper" - ], - [ - "▁c", - "ounter" - ], - [ - "▁co", - "unter" - ], - [ - "▁count", - "er" - ], - [ - "▁coun", - "ter" - ], - [ - "▁", - "counter" - ], - [ - "▁[", - "\"" - ], - [ - "▁", - "[\"" - ], - [ - "ode", - "d" - ], - [ - "od", - "ed" - ], - [ - "o", - "ded" - ], - [ - "да", - "н" - ], - [ - "д", - "ан" - ], - [ - "pro", - "perty" - ], - [ - "ha", - "rd" - ], - [ - "har", - "d" - ], - [ - "h", - "ard" - ], - [ - "ist", - "rict" - ], - [ - "istr", - "ict" - ], - [ - ")", - "/" - ], - [ - "▁P", - "our" - ], - [ - "▁Po", - "ur" - ], - [ - "▁W", - "here" - ], - [ - "▁Wh", - "ere" - ], - [ - "▁Whe", - "re" - ], - [ - "▁", - "Where" - ], - [ - "▁=", - "==" - ], - [ - "▁==", - "=" - ], - [ - "▁", - "===" - ], - [ - "▁s", - "owie" - ], - [ - "▁so", - "wie" - ], - [ - "▁sow", - "ie" - ], - [ - "▁П", - "ро" - ], - [ - "▁d", - "ess" - ], - [ - "▁de", - "ss" - ], - [ - "▁des", - "s" - ], - [ - "▁", - "dess" - ], - [ - "▁t", - "ras" - ], - [ - "▁tr", - "as" - ], - [ - "▁tra", - "s" - ], - [ - "▁", - "tras" - ], - [ - "▁у", - "ча" - ], - [ - "▁O", - "ver" - ], - [ - "▁", - "Over" - ], - [ - "no", - "te" - ], - [ - "not", - "e" - ], - [ - "n", - "ote" - ], - [ - "▁Amer", - "ica" - ], - [ - "▁", - "America" - ], - [ - "c", - "p" - ], - [ - "▁gr", - "ande" - ], - [ - "▁gra", - "nde" - ], - [ - "▁gran", - "de" - ], - [ - "▁grand", - "e" - ], - [ - "M", - "e" - ], - [ - ")", - "-" - ], - [ - "Mod", - "e" - ], - [ - "Mo", - "de" - ], - [ - "M", - "ode" - ], - [ - "▁pass", - "ing" - ], - [ - "▁pas", - "sing" - ], - [ - "▁g", - "iving" - ], - [ - "▁giv", - "ing" - ], - [ - "▁gi", - "ving" - ], - [ - "C", - "l" - ], - [ - "}", - "/" - ], - [ - "Me", - "nu" - ], - [ - "Men", - "u" - ], - [ - "M", - "enu" - ], - [ - "!", - "!" - ], - [ - "ang", - "ular" - ], - [ - "angu", - "lar" - ], - [ - "▁la", - "unch" - ], - [ - "▁", - "launch" - ], - [ - "var", - "phi" - ], - [ - "▁Joh", - "ann" - ], - [ - "▁Johan", - "n" - ], - [ - "▁for", - "each" - ], - [ - "▁fore", - "ach" - ], - [ - "▁", - "foreach" - ], - [ - "r", - "ó" - ], - [ - "se", - "qu" - ], - [ - "seq", - "u" - ], - [ - "s", - "equ" - ], - [ - "if", - "i" - ], - [ - "i", - "fi" - ], - [ - "A", - "m" - ], - [ - "ar", - "p" - ], - [ - "a", - "rp" - ], - [ - "▁b", - "uffer" - ], - [ - "▁buf", - "fer" - ], - [ - "▁buff", - "er" - ], - [ - "▁", - "buffer" - ], - [ - "▁n", - "i" - ], - [ - "▁", - "ni" - ], - [ - "▁m", - "ix" - ], - [ - "▁mi", - "x" - ], - [ - "▁", - "mix" - ], - [ - "▁M", - "useum" - ], - [ - "▁Muse", - "um" - ], - [ - "▁me", - "ant" - ], - [ - "▁mean", - "t" - ], - [ - "as", - "i" - ], - [ - "a", - "si" - ], - [ - "▁k", - "an" - ], - [ - "▁ka", - "n" - ], - [ - "▁", - "kan" - ], - [ - "пра", - "в" - ], - [ - "п", - "рав" - ], - [ - "Com", - "p" - ], - [ - "Co", - "mp" - ], - [ - "C", - "omp" - ], - [ - "is", - "toire" - ], - [ - "ist", - "oire" - ], - [ - "isto", - "ire" - ], - [ - "if", - "ul" - ], - [ - "i", - "ful" - ], - [ - "je", - "r" - ], - [ - "j", - "er" - ], - [ - "iss", - "ions" - ], - [ - "ission", - "s" - ], - [ - "Re", - "source" - ], - [ - "Res", - "ource" - ], - [ - "▁в", - "оз" - ], - [ - "▁во", - "з" - ], - [ - "▁S", - "T" - ], - [ - "▁", - "ST" - ], - [ - "▁sol", - "utions" - ], - [ - "▁solution", - "s" - ], - [ - "▁be", - "long" - ], - [ - "▁bel", - "ong" - ], - [ - "▁As", - "soci" - ], - [ - "▁Ass", - "oci" - ], - [ - "▁", - "Associ" - ], - [ - "c", - "f" - ], - [ - "▁M", - "är" - ], - [ - "▁g", - "rid" - ], - [ - "▁gr", - "id" - ], - [ - "▁", - "grid" - ], - [ - "M", - "ult" - ], - [ - "▁require", - "s" - ], - [ - "▁requ", - "ires" - ], - [ - "k", - "k" - ], - [ - "▁t", - "each" - ], - [ - "▁te", - "ach" - ], - [ - "▁tea", - "ch" - ], - [ - "eme", - "inde" - ], - [ - "emein", - "de" - ], - [ - "▁s", - "quare" - ], - [ - "▁squ", - "are" - ], - [ - "▁", - "square" - ], - [ - "▁ко", - "ман" - ], - [ - "▁ком", - "ан" - ], - [ - "▁E", - "vent" - ], - [ - "▁Ev", - "ent" - ], - [ - "▁Even", - "t" - ], - [ - "▁", - "Event" - ], - [ - "▁r", - "ules" - ], - [ - "▁rule", - "s" - ], - [ - "▁ru", - "les" - ], - [ - "▁", - "rules" - ], - [ - "▁b", - "ur" - ], - [ - "▁bu", - "r" - ], - [ - "▁", - "bur" - ], - [ - "▁e", - "ing" - ], - [ - "▁ein", - "g" - ], - [ - "▁", - "eing" - ], - [ - "▁M", - "ai" - ], - [ - "▁Ma", - "i" - ], - [ - "▁n", - "am" - ], - [ - "▁na", - "m" - ], - [ - "▁", - "nam" - ], - [ - "▁s", - "lä" - ], - [ - "▁sl", - "ä" - ], - [ - "hö", - "r" - ], - [ - "h", - "ör" - ], - [ - "▁t", - "ip" - ], - [ - "▁ti", - "p" - ], - [ - "▁", - "tip" - ], - [ - "▁Liter", - "atur" - ], - [ - "▁s", - "cope" - ], - [ - "▁sc", - "ope" - ], - [ - "▁scop", - "e" - ], - [ - "▁", - "scope" - ], - [ - "over", - "line" - ], - [ - "▁ex", - "it" - ], - [ - "▁", - "exit" - ], - [ - ")", - "?" - ], - [ - "be", - "t" - ], - [ - "b", - "et" - ], - [ - "▁v", - "ict" - ], - [ - "▁vi", - "ct" - ], - [ - "▁vic", - "t" - ], - [ - "Of", - "f" - ], - [ - "O", - "ff" - ], - [ - "▁appro", - "xim" - ], - [ - "▁G", - "eb" - ], - [ - "▁Ge", - "b" - ], - [ - "kt", - "op" - ], - [ - "k", - "top" - ], - [ - "he", - "it" - ], - [ - "▁", - "Ю" - ], - [ - "tem", - "plate" - ], - [ - "temp", - "late" - ], - [ - "ро", - "н" - ], - [ - "р", - "он" - ], - [ - "▁u", - "no" - ], - [ - "▁un", - "o" - ], - [ - "▁", - "uno" - ], - [ - "Ser", - "v" - ], - [ - "Se", - "rv" - ], - [ - "S", - "erv" - ], - [ - "▁frame", - "work" - ], - [ - "▁", - "framework" - ], - [ - "oper", - "ator" - ], - [ - "opera", - "tor" - ], - [ - "▁gener", - "ally" - ], - [ - "▁general", - "ly" - ], - [ - "▁h", - "undred" - ], - [ - "▁d", - "ivers" - ], - [ - "▁di", - "vers" - ], - [ - "▁div", - "ers" - ], - [ - "▁diver", - "s" - ], - [ - "ov", - "i" - ], - [ - "o", - "vi" - ], - [ - "▁r", - "és" - ], - [ - "▁ré", - "s" - ], - [ - "▁", - "rés" - ], - [ - "ab", - "s" - ], - [ - "a", - "bs" - ], - [ - "▁g", - "al" - ], - [ - "▁ga", - "l" - ], - [ - "▁", - "gal" - ], - [ - "ça", - "is" - ], - [ - "ç", - "ais" - ], - [ - "▁fe", - "et" - ], - [ - "▁fee", - "t" - ], - [ - "▁v", - "irtual" - ], - [ - "▁virt", - "ual" - ], - [ - "▁", - "virtual" - ], - [ - "cz", - "y" - ], - [ - "c", - "zy" - ], - [ - "ск", - "у" - ], - [ - "с", - "ку" - ], - [ - ".", - "/" - ], - [ - "h", - "u" - ], - [ - "an", - "cy" - ], - [ - "anc", - "y" - ], - [ - "▁recomm", - "end" - ], - [ - "▁п", - "ід" - ], - [ - "▁пі", - "д" - ], - [ - "▁m", - "oney" - ], - [ - "▁mon", - "ey" - ], - [ - "▁mo", - "ney" - ], - [ - "▁vers", - "ions" - ], - [ - "▁version", - "s" - ], - [ - "▁", - "versions" - ], - [ - "▁hel", - "ps" - ], - [ - "▁help", - "s" - ], - [ - "▁H", - "or" - ], - [ - "▁Ho", - "r" - ], - [ - "▁", - "Hor" - ], - [ - "Item", - "s" - ], - [ - "It", - "ems" - ], - [ - "lo", - "ok" - ], - [ - "l", - "ook" - ], - [ - "con", - "nect" - ], - [ - "conne", - "ct" - ], - [ - "conn", - "ect" - ], - [ - "an", - "ges" - ], - [ - "ang", - "es" - ], - [ - "ange", - "s" - ], - [ - "View", - "Controller" - ], - [ - "el", - "ijk" - ], - [ - "elij", - "k" - ], - [ - "eli", - "jk" - ], - [ - "e", - "lijk" - ], - [ - "▁occ", - "up" - ], - [ - "▁oc", - "cup" - ], - [ - "▁", - "occup" - ], - [ - "▁ed", - "itor" - ], - [ - "▁edit", - "or" - ], - [ - "▁", - "editor" - ], - [ - "au", - "to" - ], - [ - "aut", - "o" - ], - [ - "a", - "uto" - ], - [ - "ö", - "g" - ], - [ - "▁second", - "s" - ], - [ - "▁sec", - "onds" - ], - [ - "▁", - "seconds" - ], - [ - "▁ob", - "vious" - ], - [ - "v", - "m" - ], - [ - "ak", - "es" - ], - [ - "ake", - "s" - ], - [ - "a", - "kes" - ], - [ - "▁g", - "egen" - ], - [ - "▁ge", - "gen" - ], - [ - "▁geg", - "en" - ], - [ - "▁t", - "il" - ], - [ - "▁ti", - "l" - ], - [ - "▁", - "til" - ], - [ - "ject", - "ion" - ], - [ - "je", - "ction" - ], - [ - "j", - "ection" - ], - [ - "ле", - "ння" - ], - [ - "лен", - "ня" - ], - [ - "▁oper", - "ations" - ], - [ - "▁operation", - "s" - ], - [ - "▁E", - "ast" - ], - [ - "og", - "y" - ], - [ - "o", - "gy" - ], - [ - "▁P", - "olit" - ], - [ - "▁Pol", - "it" - ], - [ - "▁Po", - "lit" - ], - [ - "ut", - "en" - ], - [ - "ute", - "n" - ], - [ - "u", - "ten" - ], - [ - "▁Jose", - "ph" - ], - [ - "\"", - "`" - ], - [ - "▁Comp", - "any" - ], - [ - "▁", - "Company" - ], - [ - "▁call", - "back" - ], - [ - "▁", - "callback" - ], - [ - "▁s", - "en" - ], - [ - "▁se", - "n" - ], - [ - "▁", - "sen" - ], - [ - "cc", - "ión" - ], - [ - "cció", - "n" - ], - [ - "c", - "ción" - ], - [ - "▁associ", - "ated" - ], - [ - "▁associate", - "d" - ], - [ - "▁cont", - "aining" - ], - [ - "▁contain", - "ing" - ], - [ - "▁pract", - "ice" - ], - [ - "elij", - "ke" - ], - [ - "elijk", - "e" - ], - [ - "e", - "lijke" - ], - [ - "ok", - "e" - ], - [ - "o", - "ke" - ], - [ - "ér", - "a" - ], - [ - "é", - "ra" - ], - [ - "un", - "s" - ], - [ - "u", - "ns" - ], - [ - "an", - "ta" - ], - [ - "ant", - "a" - ], - [ - "ve", - "y" - ], - [ - "v", - "ey" - ], - [ - "z", - "u" - ], - [ - "▁B", - "es" - ], - [ - "▁Be", - "s" - ], - [ - "▁F", - "lor" - ], - [ - "▁Fl", - "or" - ], - [ - "▁Flo", - "r" - ], - [ - "me", - "m" - ], - [ - "m", - "em" - ], - [ - "yc", - "z" - ], - [ - "y", - "cz" - ], - [ - "▁arch", - "itect" - ], - [ - "▁an", - "ni" - ], - [ - "▁ann", - "i" - ], - [ - "▁", - "anni" - ], - [ - "▁cont", - "act" - ], - [ - "▁", - "contact" - ], - [ - "Y", - "PE" - ], - [ - "▁C", - "as" - ], - [ - "▁Ca", - "s" - ], - [ - "▁по", - "лу" - ], - [ - "▁пол", - "у" - ], - [ - "ov", - "o" - ], - [ - "o", - "vo" - ], - [ - "▁b", - "ring" - ], - [ - "▁br", - "ing" - ], - [ - "▁con", - "cept" - ], - [ - "▁conce", - "pt" - ], - [ - "▁j", - "s" - ], - [ - "▁", - "js" - ], - [ - "▁Refer", - "encias" - ], - [ - "em", - "ble" - ], - [ - "emb", - "le" - ], - [ - "embl", - "e" - ], - [ - "▁", - "н" - ], - [ - "▁supp", - "orted" - ], - [ - "▁support", - "ed" - ], - [ - "▁", - "supported" - ], - [ - "Bi", - "g" - ], - [ - "B", - "ig" - ], - [ - "▁H", - "ans" - ], - [ - "▁Ha", - "ns" - ], - [ - "▁Han", - "s" - ], - [ - "er", - "v" - ], - [ - "e", - "rv" - ], - [ - "▁M", - "aj" - ], - [ - "▁Ma", - "j" - ], - [ - "▁ar", - "riv" - ], - [ - "▁arr", - "iv" - ], - [ - "▁H", - "ave" - ], - [ - "▁Ha", - "ve" - ], - [ - "▁Hav", - "e" - ], - [ - "▁", - "Have" - ], - [ - "▁prob", - "ability" - ], - [ - "▁probabil", - "ity" - ], - [ - "▁P", - "op" - ], - [ - "▁Po", - "p" - ], - [ - "▁", - "Pop" - ], - [ - "▁P", - "ass" - ], - [ - "▁Pa", - "ss" - ], - [ - "▁Pas", - "s" - ], - [ - "▁", - "Pass" - ], - [ - "to", - "ken" - ], - [ - "tok", - "en" - ], - [ - "t", - "oken" - ], - [ - "Pro", - "vider" - ], - [ - "▁R", - "a" - ], - [ - "Re", - "ader" - ], - [ - "Read", - "er" - ], - [ - "oot", - "h" - ], - [ - "oo", - "th" - ], - [ - "o", - "oth" - ], - [ - "la", - "p" - ], - [ - "l", - "ap" - ], - [ - "▁ass", - "ist" - ], - [ - "ad", - "ow" - ], - [ - "ado", - "w" - ], - [ - "▁t", - "ests" - ], - [ - "▁test", - "s" - ], - [ - "▁", - "tests" - ], - [ - "сс", - "и" - ], - [ - "с", - "си" - ], - [ - "▁k", - "ing" - ], - [ - "▁ki", - "ng" - ], - [ - "▁kin", - "g" - ], - [ - "▁", - "king" - ], - [ - "lang", - "le" - ], - [ - "lan", - "gle" - ], - [ - "l", - "angle" - ], - [ - "▁S", - "um" - ], - [ - "▁Su", - "m" - ], - [ - "▁", - "Sum" - ], - [ - "O", - "IN" - ], - [ - "▁se", - "curity" - ], - [ - "▁sec", - "urity" - ], - [ - "▁", - "security" - ], - [ - "ni", - "s" - ], - [ - "n", - "is" - ], - [ - "..", - "/" - ], - [ - ".", - "./" - ], - [ - "▁bas", - "ic" - ], - [ - "▁", - "basic" - ], - [ - "un", - "ity" - ], - [ - "uni", - "ty" - ], - [ - "unit", - "y" - ], - [ - "`", - ":" - ], - [ - "▁ко", - "то" - ], - [ - "ko", - "w" - ], - [ - "k", - "ow" - ], - [ - "▁Bibli", - "othèque" - ], - [ - "as", - "ion" - ], - [ - "asi", - "on" - ], - [ - "al", - "o" - ], - [ - "a", - "lo" - ], - [ - "if", - "est" - ], - [ - "ife", - "st" - ], - [ - "i", - "fest" - ], - [ - "▁nov", - "embre" - ], - [ - "▁p", - "eu" - ], - [ - "▁pe", - "u" - ], - [ - "▁", - "Ж" - ], - [ - "en", - "schaft" - ], - [ - "ensch", - "aft" - ], - [ - "cl", - "us" - ], - [ - "c", - "lus" - ], - [ - "ј", - "у" - ], - [ - "He", - "ight" - ], - [ - "ú", - "n" - ], - [ - "▁t", - "ur" - ], - [ - "▁tu", - "r" - ], - [ - "▁ide", - "as" - ], - [ - "▁idea", - "s" - ], - [ - "▁c", - "es" - ], - [ - "▁ce", - "s" - ], - [ - "▁", - "ces" - ], - [ - "fr", - "ak" - ], - [ - "fra", - "k" - ], - [ - "f", - "rak" - ], - [ - "▁pre", - "mier" - ], - [ - "▁prem", - "ier" - ], - [ - "▁premi", - "er" - ], - [ - "it", - "ation" - ], - [ - "ita", - "tion" - ], - [ - "itat", - "ion" - ], - [ - "▁s", - "é" - ], - [ - "HT", - "ML" - ], - [ - "▁Ro", - "yal" - ], - [ - "▁Roy", - "al" - ], - [ - "сь", - "кої" - ], - [ - "сько", - "ї" - ], - [ - "▁by", - "te" - ], - [ - "▁", - "byte" - ], - [ - "P", - "S" - ], - [ - "▁s", - "egu" - ], - [ - "▁se", - "gu" - ], - [ - "▁seg", - "u" - ], - [ - "▁", - "segu" - ], - [ - "in", - "en" - ], - [ - "ine", - "n" - ], - [ - "i", - "nen" - ], - [ - "▁Gre", - "at" - ], - [ - "▁К", - "у" - ], - [ - "▁ex", - "ternal" - ], - [ - "▁ext", - "ernal" - ], - [ - "▁extern", - "al" - ], - [ - "▁", - "external" - ], - [ - "T", - "itle" - ], - [ - "To", - "p" - ], - [ - "T", - "op" - ], - [ - "Pro", - "cess" - ], - [ - "Proc", - "ess" - ], - [ - "it", - "ät" - ], - [ - "itä", - "t" - ], - [ - "▁`", - "/" - ], - [ - "▁se", - "cret" - ], - [ - "▁sec", - "ret" - ], - [ - "▁secre", - "t" - ], - [ - "▁", - "secret" - ], - [ - "pos", - "itory" - ], - [ - "▁pot", - "ential" - ], - [ - "▁B", - "ud" - ], - [ - "▁Bu", - "d" - ], - [ - "name", - "s" - ], - [ - "na", - "mes" - ], - [ - "nam", - "es" - ], - [ - "n", - "ames" - ], - [ - "as", - "ons" - ], - [ - "ason", - "s" - ], - [ - "aso", - "ns" - ], - [ - "stack", - "exchange" - ], - [ - "back", - "ground" - ], - [ - "пе", - "р" - ], - [ - "п", - "ер" - ], - [ - "со", - "в" - ], - [ - "с", - "ов" - ], - [ - "aft", - "er" - ], - [ - "af", - "ter" - ], - [ - "a", - "fter" - ], - [ - "▁p", - "ero" - ], - [ - "▁per", - "o" - ], - [ - "▁pe", - "ro" - ], - [ - "▁so", - "ftware" - ], - [ - "▁soft", - "ware" - ], - [ - "▁", - "software" - ], - [ - "▁s", - "ed" - ], - [ - "▁se", - "d" - ], - [ - "▁", - "sed" - ], - [ - "▁array", - "s" - ], - [ - "▁arr", - "ays" - ], - [ - "tm", - "p" - ], - [ - "t", - "mp" - ], - [ - "▁a", - "sp" - ], - [ - "▁as", - "p" - ], - [ - "▁", - "asp" - ], - [ - "sc", - "ale" - ], - [ - "scal", - "e" - ], - [ - "▁L", - "at" - ], - [ - "▁La", - "t" - ], - [ - "▁", - "Lat" - ], - [ - "an", - "al" - ], - [ - "ana", - "l" - ], - [ - "a", - "nal" - ], - [ - "▁g", - "em" - ], - [ - "▁ge", - "m" - ], - [ - "▁", - "gem" - ], - [ - "P", - "U" - ], - [ - "▁Al", - "tri" - ], - [ - "▁Alt", - "ri" - ], - [ - "Th", - "at" - ], - [ - "T", - "hat" - ], - [ - "▁Н", - "и" - ], - [ - "if", - "act" - ], - [ - "ifa", - "ct" - ], - [ - "i", - "fact" - ], - [ - "Add", - "ress" - ], - [ - "▁s", - "outh" - ], - [ - "▁so", - "uth" - ], - [ - "▁sou", - "th" - ], - [ - "▁sout", - "h" - ], - [ - "▁form", - "ula" - ], - [ - "▁Col", - "leg" - ], - [ - "▁Coll", - "eg" - ], - [ - "▁і", - "н" - ], - [ - "▁", - "ін" - ], - [ - "kt", - "ion" - ], - [ - "k", - "tion" - ], - [ - "▁s", - "ac" - ], - [ - "▁sa", - "c" - ], - [ - "S", - "H" - ], - [ - "aj", - "o" - ], - [ - "a", - "jo" - ], - [ - "et", - "c" - ], - [ - "e", - "tc" - ], - [ - "v", - "c" - ], - [ - "`", - "](" - ], - [ - "▁D", - "ur" - ], - [ - "▁Du", - "r" - ], - [ - "▁М", - "е" - ], - [ - "▁Sm", - "ith" - ], - [ - "▁", - "Smith" - ], - [ - "it", - "ems" - ], - [ - "ite", - "ms" - ], - [ - "item", - "s" - ], - [ - "C", - "K" - ], - [ - "el", - "o" - ], - [ - "e", - "lo" - ], - [ - "▁pl", - "ugin" - ], - [ - "▁plug", - "in" - ], - [ - "▁", - "plugin" - ], - [ - "▁s", - "erie" - ], - [ - "▁se", - "rie" - ], - [ - "▁ser", - "ie" - ], - [ - "▁", - "serie" - ], - [ - "ien", - "ne" - ], - [ - "ienn", - "e" - ], - [ - "i", - "enne" - ], - [ - "▁и", - "ли" - ], - [ - "Ma", - "r" - ], - [ - "M", - "ar" - ], - [ - "▁Im", - "age" - ], - [ - "▁", - "Image" - ], - [ - "go", - "t" - ], - [ - "g", - "ot" - ], - [ - "an", - "das" - ], - [ - "and", - "as" - ], - [ - "anda", - "s" - ], - [ - "▁mat", - "ches" - ], - [ - "▁match", - "es" - ], - [ - "▁", - "matches" - ], - [ - "▁w", - "orth" - ], - [ - "▁wor", - "th" - ], - [ - "▁", - "worth" - ], - [ - "▁D", - "eb" - ], - [ - "▁De", - "b" - ], - [ - "▁", - "Deb" - ], - [ - "▁c", - "ache" - ], - [ - "▁ca", - "che" - ], - [ - "▁", - "cache" - ], - [ - "▁f", - "elt" - ], - [ - "▁fe", - "lt" - ], - [ - "▁fel", - "t" - ], - [ - "er", - "sch" - ], - [ - "ers", - "ch" - ], - [ - "iz", - "es" - ], - [ - "ize", - "s" - ], - [ - "i", - "zes" - ], - [ - "Op", - "er" - ], - [ - "O", - "per" - ], - [ - "▁Jah", - "re" - ], - [ - "▁Jahr", - "e" - ], - [ - "▁Ja", - "hre" - ], - [ - "▁comm", - "une" - ], - [ - "▁commun", - "e" - ], - [ - "th", - "read" - ], - [ - "▁n", - "y" - ], - [ - "▁", - "ny" - ], - [ - "de", - "c" - ], - [ - "d", - "ec" - ], - [ - "ou", - "w" - ], - [ - "o", - "uw" - ], - [ - "▁sur", - "face" - ], - [ - "▁P", - "or" - ], - [ - "▁Po", - "r" - ], - [ - "▁St", - "reet" - ], - [ - "▁Stre", - "et" - ], - [ - "пр", - "и" - ], - [ - "п", - "ри" - ], - [ - "▁c", - "andid" - ], - [ - "▁can", - "did" - ], - [ - "▁cand", - "id" - ], - [ - "▁Re", - "turn" - ], - [ - "▁Ret", - "urn" - ], - [ - "▁", - "Return" - ], - [ - "▁K", - "om" - ], - [ - "▁Ko", - "m" - ], - [ - "gr", - "u" - ], - [ - "g", - "ru" - ], - [ - "▁т", - "и" - ], - [ - "▁", - "ти" - ], - [ - "[", - "\\" - ], - [ - "▁dep", - "ends" - ], - [ - "▁depend", - "s" - ], - [ - "▁in", - "flu" - ], - [ - "▁inf", - "lu" - ], - [ - "▁infl", - "u" - ], - [ - "▁to", - "wards" - ], - [ - "▁toward", - "s" - ], - [ - "ain", - "ed" - ], - [ - "ai", - "ned" - ], - [ - "aine", - "d" - ], - [ - "a", - "ined" - ], - [ - "▁r", - "ank" - ], - [ - "▁ran", - "k" - ], - [ - "▁", - "rank" - ], - [ - "▁Janu", - "ar" - ], - [ - "▁com", - "ponents" - ], - [ - "▁compon", - "ents" - ], - [ - "▁component", - "s" - ], - [ - "▁", - "components" - ], - [ - "ge", - "st" - ], - [ - "ges", - "t" - ], - [ - "g", - "est" - ], - [ - "getElement", - "ById" - ], - [ - "▁check", - "ed" - ], - [ - "▁", - "checked" - ], - [ - "air", - "s" - ], - [ - "ai", - "rs" - ], - [ - "a", - "irs" - ], - [ - "jo", - "in" - ], - [ - "j", - "oin" - ], - [ - "▁d", - "ead" - ], - [ - "▁de", - "ad" - ], - [ - "▁h", - "it" - ], - [ - "▁hi", - "t" - ], - [ - "▁", - "hit" - ], - [ - "én", - "y" - ], - [ - "é", - "ny" - ], - [ - "▁equ", - "ivalent" - ], - [ - "▁equival", - "ent" - ], - [ - "▁П", - "ре" - ], - [ - "▁app", - "ropri" - ], - [ - "Pa", - "ss" - ], - [ - "P", - "ass" - ], - [ - "▁pr", - "imer" - ], - [ - "▁prim", - "er" - ], - [ - "▁pri", - "mer" - ], - [ - "▁prime", - "r" - ], - [ - "engl", - "isch" - ], - [ - "▁app", - "ar" - ], - [ - "▁ap", - "par" - ], - [ - "▁D", - "uring" - ], - [ - "▁Du", - "ring" - ], - [ - "▁Dur", - "ing" - ], - [ - "▁know", - "ledge" - ], - [ - "▁tr", - "igger" - ], - [ - "▁trig", - "ger" - ], - [ - "▁", - "trigger" - ], - [ - "▁c", - "ore" - ], - [ - "▁cor", - "e" - ], - [ - "▁co", - "re" - ], - [ - "▁", - "core" - ], - [ - "▁O", - "l" - ], - [ - "▁P", - "rodu" - ], - [ - "▁Pro", - "du" - ], - [ - "▁Pr", - "odu" - ], - [ - "▁", - "Produ" - ], - [ - "▁F", - "ern" - ], - [ - "▁Fe", - "rn" - ], - [ - "▁Fer", - "n" - ], - [ - "▁", - "Fern" - ], - [ - "▁на", - "ча" - ], - [ - "▁", - "нача" - ], - [ - "T", - "e" - ], - [ - "▁M", - "ot" - ], - [ - "▁Mo", - "t" - ], - [ - "er", - "ve" - ], - [ - "erv", - "e" - ], - [ - "тв", - "о" - ], - [ - "т", - "во" - ], - [ - "▁m", - "id" - ], - [ - "▁mi", - "d" - ], - [ - "▁", - "mid" - ], - [ - "▁fin", - "ally" - ], - [ - "▁final", - "ly" - ], - [ - "air", - "es" - ], - [ - "ai", - "res" - ], - [ - "aire", - "s" - ], - [ - "a", - "ires" - ], - [ - "▁es", - "pecially" - ], - [ - "▁espe", - "cially" - ], - [ - "▁especial", - "ly" - ], - [ - "▁t", - "ut" - ], - [ - "▁tu", - "t" - ], - [ - "▁rece", - "ive" - ], - [ - "ad", - "re" - ], - [ - "adr", - "e" - ], - [ - "▁ne", - "igh" - ], - [ - "▁nei", - "gh" - ], - [ - "kt", - "et" - ], - [ - "kte", - "t" - ], - [ - "il", - "de" - ], - [ - "ild", - "e" - ], - [ - "▁rad", - "io" - ], - [ - "▁radi", - "o" - ], - [ - "▁", - "radio" - ], - [ - "▁d", - "river" - ], - [ - "▁dr", - "iver" - ], - [ - "▁drive", - "r" - ], - [ - "▁dri", - "ver" - ], - [ - "▁driv", - "er" - ], - [ - "▁", - "driver" - ], - [ - "ли", - "сь" - ], - [ - "end", - "encies" - ], - [ - "enden", - "cies" - ], - [ - "▁I", - "E" - ], - [ - "▁", - "IE" - ], - [ - "▁s", - "aved" - ], - [ - "▁sa", - "ved" - ], - [ - "▁sav", - "ed" - ], - [ - "▁save", - "d" - ], - [ - "▁", - "saved" - ], - [ - "ff", - "ect" - ], - [ - "ffe", - "ct" - ], - [ - "f", - "fect" - ], - [ - "▁Way", - "back" - ], - [ - "ia", - "t" - ], - [ - "i", - "at" - ], - [ - "▁p", - "adding" - ], - [ - "▁pad", - "ding" - ], - [ - "▁", - "padding" - ], - [ - "wind", - "ow" - ], - [ - "w", - "indow" - ], - [ - "ти", - "че" - ], - [ - "▁m", - "ur" - ], - [ - "▁mu", - "r" - ], - [ - "ac", - "tor" - ], - [ - "act", - "or" - ], - [ - "a", - "ctor" - ], - [ - "▁H", - "an" - ], - [ - "▁Ha", - "n" - ], - [ - "он", - "аль" - ], - [ - "она", - "ль" - ], - [ - "о", - "наль" - ], - [ - "▁g", - "ar" - ], - [ - "▁ga", - "r" - ], - [ - "▁", - "gar" - ], - [ - "▁famil", - "jen" - ], - [ - "ó", - "s" - ], - [ - "▁n", - "ationale" - ], - [ - "▁national", - "e" - ], - [ - "▁nation", - "ale" - ], - [ - "▁nat", - "ionale" - ], - [ - "▁p", - "ré" - ], - [ - "▁pr", - "é" - ], - [ - "de", - "d" - ], - [ - "d", - "ed" - ], - [ - "on", - "al" - ], - [ - "ona", - "l" - ], - [ - "o", - "nal" - ], - [ - "▁Pres", - "ident" - ], - [ - "▁\\", - "," - ], - [ - "▁", - "\\," - ], - [ - "▁place", - "d" - ], - [ - "▁pla", - "ced" - ], - [ - "er", - "ni" - ], - [ - "ern", - "i" - ], - [ - "▁sign", - "al" - ], - [ - "▁sig", - "nal" - ], - [ - "▁", - "signal" - ], - [ - "na", - "b" - ], - [ - "n", - "ab" - ], - [ - "h", - "m" - ], - [ - "Mo", - "n" - ], - [ - "M", - "on" - ], - [ - "▁v", - "s" - ], - [ - "▁", - "vs" - ], - [ - "S", - "C" - ], - [ - "▁proget", - "ti" - ], - [ - "▁", - "Ü" - ], - [ - "▁for", - "ms" - ], - [ - "▁form", - "s" - ], - [ - "▁", - "forms" - ], - [ - "▁message", - "s" - ], - [ - "▁mess", - "ages" - ], - [ - "▁", - "messages" - ], - [ - "in", - "f" - ], - [ - "us", - "ers" - ], - [ - "use", - "rs" - ], - [ - "user", - "s" - ], - [ - "u", - "sers" - ], - [ - "GE", - "T" - ], - [ - "G", - "ET" - ], - [ - "▁d", - "els" - ], - [ - "▁de", - "ls" - ], - [ - "▁del", - "s" - ], - [ - "Col", - "lection" - ], - [ - "Coll", - "ection" - ], - [ - "Collect", - "ion" - ], - [ - "▁G", - "ood" - ], - [ - "▁Go", - "od" - ], - [ - "▁", - "Good" - ], - [ - "▁May", - "be" - ], - [ - "▁", - "Maybe" - ], - [ - "▁com", - "pr" - ], - [ - "▁comp", - "r" - ], - [ - "▁lar", - "ger" - ], - [ - "▁large", - "r" - ], - [ - "▁larg", - "er" - ], - [ - "gr", - "es" - ], - [ - "gre", - "s" - ], - [ - "g", - "res" - ], - [ - "ap", - "er" - ], - [ - "ape", - "r" - ], - [ - "a", - "per" - ], - [ - "▁П", - "ри" - ], - [ - "un", - "des" - ], - [ - "und", - "es" - ], - [ - "unde", - "s" - ], - [ - "▁s", - "ea" - ], - [ - "▁se", - "a" - ], - [ - "▁S", - "pring" - ], - [ - "▁Sp", - "ring" - ], - [ - "▁Spr", - "ing" - ], - [ - "▁", - "Spring" - ], - [ - "ul", - "o" - ], - [ - "u", - "lo" - ], - [ - "▁me", - "chan" - ], - [ - "▁s", - "ans" - ], - [ - "▁sa", - "ns" - ], - [ - "▁san", - "s" - ], - [ - "G", - "B" - ], - [ - "Val", - "id" - ], - [ - "▁comm", - "unic" - ], - [ - "▁commun", - "ic" - ], - [ - "▁", - "communic" - ], - [ - "▁p", - "ra" - ], - [ - "▁pr", - "a" - ], - [ - "vi", - "er" - ], - [ - "vie", - "r" - ], - [ - "v", - "ier" - ], - [ - "▁С", - "е" - ], - [ - "▁a", - "in" - ], - [ - "▁ai", - "n" - ], - [ - "▁", - "ain" - ], - [ - "ту", - "ра" - ], - [ - "тур", - "а" - ], - [ - "ko", - "m" - ], - [ - "k", - "om" - ], - [ - "sk", - "iego" - ], - [ - "ski", - "ego" - ], - [ - "skie", - "go" - ], - [ - "ко", - "во" - ], - [ - "ков", - "о" - ], - [ - "к", - "ово" - ], - [ - "ad", - "ata" - ], - [ - "ada", - "ta" - ], - [ - "a", - "data" - ], - [ - "▁Р", - "е" - ], - [ - "▁bo", - "olean" - ], - [ - "▁", - "boolean" - ], - [ - "se", - "ts" - ], - [ - "set", - "s" - ], - [ - "s", - "ets" - ], - [ - "▁eff", - "ort" - ], - [ - ".", - "[" - ], - [ - "▁z", - "ostał" - ], - [ - "P", - "A" - ], - [ - "▁V", - "ict" - ], - [ - "▁Vi", - "ct" - ], - [ - "▁Vic", - "t" - ], - [ - "S", - "D" - ], - [ - "ow", - "ał" - ], - [ - "owa", - "ł" - ], - [ - "▁e", - "mb" - ], - [ - "▁em", - "b" - ], - [ - "▁", - "emb" - ], - [ - "▁pr", - "ima" - ], - [ - "▁prim", - "a" - ], - [ - "▁pri", - "ma" - ], - [ - "▁h", - "our" - ], - [ - "▁ho", - "ur" - ], - [ - "▁", - "hour" - ], - [ - "sub", - "section" - ], - [ - "▁F", - "ort" - ], - [ - "▁For", - "t" - ], - [ - "▁Fo", - "rt" - ], - [ - "math", - "frak" - ], - [ - "ig", - "in" - ], - [ - "igi", - "n" - ], - [ - "i", - "gin" - ], - [ - "G", - "L" - ], - [ - ")", - "+" - ], - [ - "f", - "i" - ], - [ - "▁an", - "ci" - ], - [ - "▁anc", - "i" - ], - [ - "▁", - "anci" - ], - [ - "▁p", - "an" - ], - [ - "▁pa", - "n" - ], - [ - "▁", - "pan" - ], - [ - "\\", - ")" - ], - [ - "▁l", - "ug" - ], - [ - "▁lu", - "g" - ], - [ - "▁dep", - "loy" - ], - [ - "▁", - "deploy" - ], - [ - "do", - "main" - ], - [ - "dom", - "ain" - ], - [ - "▁s", - "light" - ], - [ - "▁sl", - "ight" - ], - [ - "JS", - "ON" - ], - [ - "J", - "SON" - ], - [ - "▁mor", - "ning" - ], - [ - "▁h", - "i" - ], - [ - "▁", - "hi" - ], - [ - "▁comp", - "are" - ], - [ - "▁compar", - "e" - ], - [ - "▁", - "compare" - ], - [ - "ij", - "e" - ], - [ - "i", - "je" - ], - [ - "▁bl", - "ue" - ], - [ - "▁", - "blue" - ], - [ - "▁A", - "c" - ], - [ - "▁", - "Ac" - ], - [ - "▁m", - "iddle" - ], - [ - "▁", - "middle" - ], - [ - "an", - "den" - ], - [ - "and", - "en" - ], - [ - "ande", - "n" - ], - [ - "▁sh", - "ared" - ], - [ - "▁share", - "d" - ], - [ - "▁", - "shared" - ], - [ - "▁C", - "amp" - ], - [ - "▁Cam", - "p" - ], - [ - "▁Ca", - "mp" - ], - [ - "▁", - "Á" - ], - [ - "ound", - "ed" - ], - [ - "oun", - "ded" - ], - [ - "u", - "w" - ], - [ - "ier", - "ung" - ], - [ - "St", - "ack" - ], - [ - "▁e", - "ines" - ], - [ - "▁ein", - "es" - ], - [ - "▁eine", - "s" - ], - [ - "▁D", - "a" - ], - [ - "▁", - "Da" - ], - [ - "li", - "j" - ], - [ - "l", - "ij" - ], - [ - "en", - "ti" - ], - [ - "ent", - "i" - ], - [ - "▁", - "й" - ], - [ - "U", - "til" - ], - [ - "▁exper", - "ience" - ], - [ - "▁experien", - "ce" - ], - [ - "▁a", - "wait" - ], - [ - "▁aw", - "ait" - ], - [ - "▁", - "await" - ], - [ - "ul", - "s" - ], - [ - "u", - "ls" - ], - [ - "▁request", - "s" - ], - [ - "▁requ", - "ests" - ], - [ - "▁", - "requests" - ], - [ - "▁im", - "pos" - ], - [ - "▁imp", - "os" - ], - [ - "▁const", - "raint" - ], - [ - "▁", - "constraint" - ], - [ - "Ch", - "ange" - ], - [ - "em", - "ph" - ], - [ - "emp", - "h" - ], - [ - "бе", - "р" - ], - [ - "б", - "ер" - ], - [ - "▁An", - "other" - ], - [ - "C", - "ustom" - ], - [ - "▁signific", - "ant" - ], - [ - "▁significa", - "nt" - ], - [ - "c", - "r" - ], - [ - "▁mill", - "ion" - ], - [ - "re", - "ek" - ], - [ - "ree", - "k" - ], - [ - "▁d", - "alla" - ], - [ - "▁da", - "lla" - ], - [ - "▁dal", - "la" - ], - [ - "▁dall", - "a" - ], - [ - "▁G", - "erm" - ], - [ - "▁Ge", - "rm" - ], - [ - "▁Ger", - "m" - ], - [ - "ot", - "al" - ], - [ - "ota", - "l" - ], - [ - "o", - "tal" - ], - [ - "at", - "eur" - ], - [ - "ate", - "ur" - ], - [ - "bt", - "n" - ], - [ - "b", - "tn" - ], - [ - "▁th", - "inking" - ], - [ - "▁think", - "ing" - ], - [ - "▁thin", - "king" - ], - [ - "▁inter", - "val" - ], - [ - "▁", - "interval" - ], - [ - "on", - "ne" - ], - [ - "onn", - "e" - ], - [ - "▁l", - "iv" - ], - [ - "▁li", - "v" - ], - [ - "▁", - "liv" - ], - [ - "()", - ":" - ], - [ - "(", - "):" - ], - [ - "▁В", - "е" - ], - [ - "o", - "e" - ], - [ - "▁E", - "v" - ], - [ - "me", - "ta" - ], - [ - "met", - "a" - ], - [ - "m", - "eta" - ], - [ - "▁b", - "road" - ], - [ - "▁bro", - "ad" - ], - [ - "Re", - "m" - ], - [ - "R", - "em" - ], - [ - "ap", - "ply" - ], - [ - "app", - "ly" - ], - [ - "a", - "pply" - ], - [ - "▁cou", - "ple" - ], - [ - "▁coup", - "le" - ], - [ - "▁te", - "chni" - ], - [ - "▁techn", - "i" - ], - [ - "id", - "ades" - ], - [ - "ida", - "des" - ], - [ - "idad", - "es" - ], - [ - "idade", - "s" - ], - [ - "▁go", - "al" - ], - [ - "▁", - "goal" - ], - [ - "▁C", - "D" - ], - [ - "▁", - "CD" - ], - [ - "ha", - "b" - ], - [ - "h", - "ab" - ], - [ - "▁ex", - "plan" - ], - [ - "▁exp", - "lan" - ], - [ - "▁expla", - "n" - ], - [ - "▁expl", - "an" - ], - [ - "an", - "ner" - ], - [ - "ann", - "er" - ], - [ - "anne", - "r" - ], - [ - "▁B", - "ecause" - ], - [ - "bl", - "og" - ], - [ - "blo", - "g" - ], - [ - "b", - "log" - ], - [ - "include", - "graphics" - ], - [ - "▁vo", - "ice" - ], - [ - "▁", - "voice" - ], - [ - "▁M", - "ap" - ], - [ - "▁Ma", - "p" - ], - [ - "▁", - "Map" - ], - [ - "vent", - "ion" - ], - [ - "ven", - "tion" - ], - [ - "v", - "ention" - ], - [ - "S", - "ession" - ], - [ - "▁L", - "iens" - ], - [ - "▁Li", - "ens" - ], - [ - "▁Lie", - "ns" - ], - [ - "▁s", - "or" - ], - [ - "▁so", - "r" - ], - [ - "c", - "ategory" - ], - [ - "ash", - "ington" - ], - [ - "▁Mär", - "z" - ], - [ - "po", - "p" - ], - [ - "p", - "op" - ], - [ - "il", - "let" - ], - [ - "ill", - "et" - ], - [ - "ille", - "t" - ], - [ - "▁z", - "wei" - ], - [ - "▁zwe", - "i" - ], - [ - "▁zw", - "ei" - ], - [ - "▁L", - "ie" - ], - [ - "▁Li", - "e" - ], - [ - "N", - "ull" - ], - [ - "add", - "ress" - ], - [ - "addr", - "ess" - ], - [ - "▁f", - "actor" - ], - [ - "▁fact", - "or" - ], - [ - "▁fa", - "ctor" - ], - [ - "▁fac", - "tor" - ], - [ - "▁", - "factor" - ], - [ - "▁l", - "igne" - ], - [ - "▁lig", - "ne" - ], - [ - "▁HT", - "TP" - ], - [ - "▁", - "HTTP" - ], - [ - "▁s", - "uf" - ], - [ - "▁su", - "f" - ], - [ - "▁person", - "al" - ], - [ - "▁pers", - "onal" - ], - [ - "▁persona", - "l" - ], - [ - "ci", - "p" - ], - [ - "c", - "ip" - ], - [ - "▁D", - "ar" - ], - [ - "▁Da", - "r" - ], - [ - "▁a", - "dm" - ], - [ - "▁ad", - "m" - ], - [ - "ко", - "й" - ], - [ - "▁E", - "xt" - ], - [ - "▁Ex", - "t" - ], - [ - "▁", - "Ext" - ], - [ - "▁g", - "od" - ], - [ - "▁go", - "d" - ], - [ - "▁", - "god" - ], - [ - "a", - "a" - ], - [ - "R", - "ight" - ], - [ - "ét", - "é" - ], - [ - "é", - "té" - ], - [ - "▁d", - "ynamic" - ], - [ - "▁dynam", - "ic" - ], - [ - "▁", - "dynamic" - ], - [ - "▁main", - "tain" - ], - [ - "to", - "r" - ], - [ - "t", - "or" - ], - [ - "####", - "####" - ], - [ - "▁F", - "ra" - ], - [ - "▁Fr", - "a" - ], - [ - "▁cho", - "ice" - ], - [ - "▁", - "choice" - ], - [ - "▁с", - "то" - ], - [ - "▁ст", - "о" - ], - [ - "▁", - "сто" - ], - [ - "С", - "Р" - ], - [ - "▁F", - "eder" - ], - [ - "▁Fe", - "der" - ], - [ - "▁Fed", - "er" - ], - [ - "st", - "on" - ], - [ - "sto", - "n" - ], - [ - "s", - "ton" - ], - [ - "▁f", - "lag" - ], - [ - "▁fl", - "ag" - ], - [ - "▁fla", - "g" - ], - [ - "▁", - "flag" - ], - [ - "ki", - "t" - ], - [ - "k", - "it" - ], - [ - "Mod", - "ule" - ], - [ - "▁с", - "по" - ], - [ - "▁сп", - "о" - ], - [ - "▁", - "спо" - ], - [ - "▁S", - "tra" - ], - [ - "▁St", - "ra" - ], - [ - "▁Str", - "a" - ], - [ - "ic", - "ks" - ], - [ - "ick", - "s" - ], - [ - "i", - "cks" - ], - [ - "▁h", - "aven" - ], - [ - "▁ha", - "ven" - ], - [ - "▁have", - "n" - ], - [ - "▁hav", - "en" - ], - [ - "▁M", - "ass" - ], - [ - "▁Ma", - "ss" - ], - [ - "▁Mas", - "s" - ], - [ - "▁E", - "mp" - ], - [ - "▁Em", - "p" - ], - [ - "▁", - "Emp" - ], - [ - "▁P", - "i" - ], - [ - "▁", - "Pi" - ], - [ - "▁P", - "en" - ], - [ - "▁Pe", - "n" - ], - [ - "Re", - "ct" - ], - [ - "Rec", - "t" - ], - [ - "R", - "ect" - ], - [ - "▁K", - "r" - ], - [ - "it", - "at" - ], - [ - "ita", - "t" - ], - [ - "i", - "tat" - ], - [ - "el", - "er" - ], - [ - "ele", - "r" - ], - [ - "e", - "ler" - ], - [ - "я", - "бря" - ], - [ - "it", - "et" - ], - [ - "ite", - "t" - ], - [ - "▁St", - "art" - ], - [ - "▁Sta", - "rt" - ], - [ - "▁Star", - "t" - ], - [ - "▁", - "Start" - ], - [ - "▁produ", - "ced" - ], - [ - "▁produce", - "d" - ], - [ - "▁по", - "л" - ], - [ - "▁", - "пол" - ], - [ - "(", - "_" - ], - [ - "▁de", - "let" - ], - [ - "▁del", - "et" - ], - [ - "▁h", - "ot" - ], - [ - "▁ho", - "t" - ], - [ - "▁", - "hot" - ], - [ - "▁Gesch", - "ichte" - ], - [ - "~", - "~" - ], - [ - "▁month", - "s" - ], - [ - "▁mont", - "hs" - ], - [ - "▁t", - "od" - ], - [ - "▁to", - "d" - ], - [ - "▁", - "tod" - ], - [ - "▁н", - "и" - ], - [ - "▁", - "ни" - ], - [ - "ú", - "s" - ], - [ - "te", - "mp" - ], - [ - "tem", - "p" - ], - [ - "t", - "emp" - ], - [ - "▁D", - "ez" - ], - [ - "▁De", - "z" - ], - [ - "ype", - "s" - ], - [ - "yp", - "es" - ], - [ - "y", - "pes" - ], - [ - "▁c", - "ui" - ], - [ - "▁cu", - "i" - ], - [ - "om", - "mun" - ], - [ - "omm", - "un" - ], - [ - "act", - "ions" - ], - [ - "action", - "s" - ], - [ - "a", - "ctions" - ], - [ - "▁e", - "igen" - ], - [ - "▁eig", - "en" - ], - [ - "▁immedi", - "ately" - ], - [ - "▁immediate", - "ly" - ], - [ - "P", - "L" - ], - [ - "▁Г", - "о" - ], - [ - "▁B", - "al" - ], - [ - "▁Ba", - "l" - ], - [ - "▁", - "Bal" - ], - [ - "љ", - "е" - ], - [ - "ul", - "ui" - ], - [ - "ulu", - "i" - ], - [ - "▁on", - "line" - ], - [ - "▁", - "online" - ], - [ - "▁a", - "ños" - ], - [ - "▁añ", - "os" - ], - [ - "▁año", - "s" - ], - [ - "▁name", - "space" - ], - [ - "▁names", - "pace" - ], - [ - "▁", - "namespace" - ], - [ - "▁m", - "ond" - ], - [ - "▁mon", - "d" - ], - [ - "▁mo", - "nd" - ], - [ - "▁", - "mond" - ], - [ - "▁B", - "ase" - ], - [ - "▁Bas", - "e" - ], - [ - "▁Ba", - "se" - ], - [ - "▁", - "Base" - ], - [ - "▁Can", - "ada" - ], - [ - "▁Canad", - "a" - ], - [ - "et", - "zt" - ], - [ - "etz", - "t" - ], - [ - "}", - "-" - ], - [ - "▁de", - "fin" - ], - [ - "▁def", - "in" - ], - [ - "▁", - "defin" - ], - [ - "▁dou", - "bt" - ], - [ - "▁doub", - "t" - ], - [ - "▁inv", - "estig" - ], - [ - "▁invest", - "ig" - ], - [ - "view", - "s" - ], - [ - "vie", - "ws" - ], - [ - "▁L", - "ine" - ], - [ - "▁Li", - "ne" - ], - [ - "▁Lin", - "e" - ], - [ - "▁", - "Line" - ], - [ - "▁st", - "age" - ], - [ - "▁sta", - "ge" - ], - [ - "▁stag", - "e" - ], - [ - "▁", - "stage" - ], - [ - "ett", - "ings" - ], - [ - "ub", - "re" - ], - [ - "u", - "bre" - ], - [ - "f", - "loat" - ], - [ - "▁P", - "lay" - ], - [ - "▁Pl", - "ay" - ], - [ - "▁Pla", - "y" - ], - [ - "▁", - "Play" - ], - [ - "▁L", - "as" - ], - [ - "▁La", - "s" - ], - [ - "pt", - "r" - ], - [ - "p", - "tr" - ], - [ - "▁be", - "comes" - ], - [ - "▁become", - "s" - ], - [ - "▁becom", - "es" - ], - [ - "est", - "amp" - ], - [ - "esta", - "mp" - ], - [ - "▁in", - "dependent" - ], - [ - "▁indep", - "endent" - ], - [ - "▁independ", - "ent" - ], - [ - "▁anal", - "ysis" - ], - [ - "▁", - "analysis" - ], - [ - "▁L", - "ook" - ], - [ - "▁Lo", - "ok" - ], - [ - "▁", - "Look" - ], - [ - "la", - "in" - ], - [ - "l", - "ain" - ], - [ - "▁ра", - "с" - ], - [ - "Re", - "ference" - ], - [ - "▁s", - "orry" - ], - [ - "▁sor", - "ry" - ], - [ - "▁supp", - "osed" - ], - [ - "▁suppose", - "d" - ], - [ - "▁sup", - "posed" - ], - [ - "û", - "t" - ], - [ - "▁deg", - "ree" - ], - [ - "ut", - "z" - ], - [ - "u", - "tz" - ], - [ - "M", - "M" - ], - [ - "▁des", - "ired" - ], - [ - "▁desire", - "d" - ], - [ - "ł", - "y" - ], - [ - "▁l", - "en" - ], - [ - "▁le", - "n" - ], - [ - "▁", - "len" - ], - [ - "▁al", - "one" - ], - [ - "▁", - "alone" - ], - [ - "sign", - "ed" - ], - [ - "sig", - "ned" - ], - [ - "s", - "igned" - ], - [ - "▁S", - "ta" - ], - [ - "▁St", - "a" - ], - [ - "Per", - "son" - ], - [ - "Pers", - "on" - ], - [ - "P", - "erson" - ], - [ - "▁app", - "lied" - ], - [ - "▁B", - "ack" - ], - [ - "▁Ba", - "ck" - ], - [ - "▁Bac", - "k" - ], - [ - "▁", - "Back" - ], - [ - "▁m", - "ars" - ], - [ - "▁ma", - "rs" - ], - [ - "▁mar", - "s" - ], - [ - "Par", - "t" - ], - [ - "Pa", - "rt" - ], - [ - "P", - "art" - ], - [ - "▁D", - "id" - ], - [ - "▁Di", - "d" - ], - [ - "▁", - "Did" - ], - [ - "▁extern", - "es" - ], - [ - "▁externe", - "s" - ], - [ - "▁n", - "p" - ], - [ - "▁", - "np" - ], - [ - "on", - "go" - ], - [ - "ong", - "o" - ], - [ - "▁e", - "sta" - ], - [ - "▁est", - "a" - ], - [ - "▁es", - "ta" - ], - [ - "▁", - "esta" - ], - [ - "Bl", - "ock" - ], - [ - "B", - "lock" - ], - [ - "▁p", - "ou" - ], - [ - "▁po", - "u" - ], - [ - "ad", - "ores" - ], - [ - "ado", - "res" - ], - [ - "ador", - "es" - ], - [ - "▁St", - "udio" - ], - [ - "▁Stud", - "io" - ], - [ - "▁", - "Studio" - ], - [ - ".", - "$" - ], - [ - "▁re", - "ached" - ], - [ - "▁reach", - "ed" - ], - [ - "bo", - "t" - ], - [ - "b", - "ot" - ], - [ - "▁J", - "uni" - ], - [ - "▁Ju", - "ni" - ], - [ - "▁Jun", - "i" - ], - [ - "to", - "ns" - ], - [ - "ton", - "s" - ], - [ - "t", - "ons" - ], - [ - "it", - "el" - ], - [ - "ite", - "l" - ], - [ - "i", - "tel" - ], - [ - "▁G", - "ar" - ], - [ - "▁Ga", - "r" - ], - [ - "▁art", - "icles" - ], - [ - "▁article", - "s" - ], - [ - "▁", - "articles" - ], - [ - "▁D", - "istrict" - ], - [ - "▁Dist", - "rict" - ], - [ - "▁tr", - "ouble" - ], - [ - "▁trou", - "ble" - ], - [ - "li", - "de" - ], - [ - "l", - "ide" - ], - [ - "▁F", - "ound" - ], - [ - "▁Fou", - "nd" - ], - [ - "▁Fo", - "und" - ], - [ - "▁", - "Found" - ], - [ - "á", - "d" - ], - [ - "▁e", - "quip" - ], - [ - "▁equ", - "ip" - ], - [ - "▁in", - "ternal" - ], - [ - "▁int", - "ernal" - ], - [ - "▁inter", - "nal" - ], - [ - "▁intern", - "al" - ], - [ - "▁", - "internal" - ], - [ - "']", - "," - ], - [ - "'", - "]," - ], - [ - "▁a", - "sync" - ], - [ - "▁as", - "ync" - ], - [ - "▁", - "async" - ], - [ - "U", - "B" - ], - [ - "ge", - "l" - ], - [ - "g", - "el" - ], - [ - "▁a", - "i" - ], - [ - "▁", - "ai" - ], - [ - "ens", - "ure" - ], - [ - "▁app", - "eared" - ], - [ - "▁appear", - "ed" - ], - [ - "▁appe", - "ared" - ], - [ - "▁$", - "_" - ], - [ - "▁", - "$_" - ], - [ - "▁max", - "imum" - ], - [ - "▁maxim", - "um" - ], - [ - "▁С", - "и" - ], - [ - "р", - "ь" - ], - [ - "▁ann", - "oun" - ], - [ - "▁anno", - "un" - ], - [ - "ла", - "сь" - ], - [ - "▁c", - "m" - ], - [ - "▁", - "cm" - ], - [ - "га", - "н" - ], - [ - "г", - "ан" - ], - [ - "au", - "pt" - ], - [ - "a", - "upt" - ], - [ - "▁l", - "atter" - ], - [ - "▁lat", - "ter" - ], - [ - "▁pl", - "atform" - ], - [ - "▁plat", - "form" - ], - [ - "▁", - "platform" - ], - [ - "▁d", - "ra" - ], - [ - "▁dr", - "a" - ], - [ - "▁", - "dra" - ], - [ - "▁cap", - "ital" - ], - [ - "▁capit", - "al" - ], - [ - "▁sol", - "ved" - ], - [ - "▁solve", - "d" - ], - [ - "ri", - "z" - ], - [ - "r", - "iz" - ], - [ - "ed", - "ic" - ], - [ - "edi", - "c" - ], - [ - "e", - "dic" - ], - [ - "▁M", - "ur" - ], - [ - "▁Mu", - "r" - ], - [ - "▁T", - "op" - ], - [ - "▁To", - "p" - ], - [ - "▁", - "Top" - ], - [ - "т", - "ся" - ], - [ - "Pa", - "nel" - ], - [ - "Pane", - "l" - ], - [ - "Pan", - "el" - ], - [ - "P", - "anel" - ], - [ - "ru", - "le" - ], - [ - "r", - "ule" - ], - [ - "et", - "ic" - ], - [ - "eti", - "c" - ], - [ - "▁R", - "en" - ], - [ - "▁Re", - "n" - ], - [ - "▁Wik", - "imedia" - ], - [ - "▁", - "Wikimedia" - ], - [ - "▁T", - "O" - ], - [ - "▁", - "TO" - ], - [ - "se", - "cond" - ], - [ - "sec", - "ond" - ], - [ - "is", - "l" - ], - [ - "i", - "sl" - ], - [ - "▁h", - "y" - ], - [ - "▁", - "hy" - ], - [ - "▁n", - "iet" - ], - [ - "▁nie", - "t" - ], - [ - "▁ni", - "et" - ], - [ - "▁lo", - "aded" - ], - [ - "▁load", - "ed" - ], - [ - "▁", - "loaded" - ], - [ - "di", - "g" - ], - [ - "d", - "ig" - ], - [ - "▁ma", - "yo" - ], - [ - "▁may", - "o" - ], - [ - "[", - ":" - ], - [ - "Ac", - "c" - ], - [ - "A", - "cc" - ], - [ - "▁b", - "ek" - ], - [ - "▁be", - "k" - ], - [ - "▁", - "bek" - ], - [ - "ни", - "ю" - ], - [ - "lo", - "gin" - ], - [ - "log", - "in" - ], - [ - "t", - "x" - ], - [ - "▁F", - "ur" - ], - [ - "▁Fu", - "r" - ], - [ - "▁S", - "anta" - ], - [ - "▁San", - "ta" - ], - [ - "▁Sant", - "a" - ], - [ - "az", - "z" - ], - [ - "a", - "zz" - ], - [ - "▁con", - "duct" - ], - [ - "▁cond", - "uct" - ], - [ - "▁condu", - "ct" - ], - [ - "▁In", - "dia" - ], - [ - "▁Ind", - "ia" - ], - [ - "Or", - "der" - ], - [ - "Ord", - "er" - ], - [ - "ir", - "th" - ], - [ - "irt", - "h" - ], - [ - "t", - "w" - ], - [ - "}", - "+" - ], - [ - "▁w", - "ieder" - ], - [ - "▁wie", - "der" - ], - [ - "▁E", - "du" - ], - [ - "▁Ed", - "u" - ], - [ - "A", - "V" - ], - [ - "▁`", - "``" - ], - [ - "▁``", - "`" - ], - [ - "▁", - "```" - ], - [ - "▁man", - "ually" - ], - [ - "▁manual", - "ly" - ], - [ - "▁R", - "ead" - ], - [ - "▁Re", - "ad" - ], - [ - "▁", - "Read" - ], - [ - "fortun", - "ately" - ], - [ - "▁R", - "un" - ], - [ - "▁Ru", - "n" - ], - [ - "▁", - "Run" - ], - [ - "▁A", - "ward" - ], - [ - "▁Aw", - "ard" - ], - [ - "▁F", - "oot" - ], - [ - "▁Foo", - "t" - ], - [ - "▁Fo", - "ot" - ], - [ - "▁", - "Foot" - ], - [ - "*", - ")" - ], - [ - "par", - "ams" - ], - [ - "param", - "s" - ], - [ - "pa", - "rams" - ], - [ - "para", - "ms" - ], - [ - "п", - "і" - ], - [ - "▁n", - "ative" - ], - [ - "▁nat", - "ive" - ], - [ - "▁", - "native" - ], - [ - "ri", - "ft" - ], - [ - "rif", - "t" - ], - [ - "r", - "ift" - ], - [ - "▁", - "ä" - ], - [ - "AT", - "H" - ], - [ - "A", - "TH" - ], - [ - "▁your", - "self" - ], - [ - "▁yours", - "elf" - ], - [ - "▁p", - "rior" - ], - [ - "▁pr", - "ior" - ], - [ - "▁pri", - "or" - ], - [ - "▁c", - "it" - ], - [ - "▁ci", - "t" - ], - [ - "▁", - "cit" - ], - [ - "ä", - "h" - ], - [ - "▁tre", - "at" - ], - [ - "▁me", - "as" - ], - [ - "rib", - "uted" - ], - [ - "ribute", - "d" - ], - [ - "ribu", - "ted" - ], - [ - "▁c", - "lar" - ], - [ - "▁cl", - "ar" - ], - [ - "▁cla", - "r" - ], - [ - "▁", - "clar" - ], - [ - "ca", - "rd" - ], - [ - "car", - "d" - ], - [ - "c", - "ard" - ], - [ - "RO", - "R" - ], - [ - "R", - "OR" - ], - [ - "il", - "les" - ], - [ - "ill", - "es" - ], - [ - "ille", - "s" - ], - [ - "i", - "lles" - ], - [ - "▁l", - "ayer" - ], - [ - "▁la", - "yer" - ], - [ - "▁lay", - "er" - ], - [ - "▁", - "layer" - ], - [ - "au", - "er" - ], - [ - "a", - "uer" - ], - [ - "▁r", - "at" - ], - [ - "▁ra", - "t" - ], - [ - "▁", - "rat" - ], - [ - "bern", - "ate" - ], - [ - "▁st", - "ato" - ], - [ - "▁stat", - "o" - ], - [ - "▁sta", - "to" - ], - [ - "▁Ch", - "ina" - ], - [ - "▁Chi", - "na" - ], - [ - "▁$", - "('#" - ], - [ - "▁$('", - "#" - ], - [ - "▁n", - "aar" - ], - [ - "▁na", - "ar" - ], - [ - "zi", - "p" - ], - [ - "z", - "ip" - ], - [ - "▁$", - "{\\" - ], - [ - "▁${", - "\\" - ], - [ - "▁appreci", - "ated" - ], - [ - "▁appreciate", - "d" - ], - [ - "▁и", - "ме" - ], - [ - "▁им", - "е" - ], - [ - "ż", - "y" - ], - [ - "▁prze", - "z" - ], - [ - "▁prz", - "ez" - ], - [ - "▁Ind", - "ian" - ], - [ - "▁India", - "n" - ], - [ - "▁T", - "od" - ], - [ - "▁To", - "d" - ], - [ - "▁S", - "ource" - ], - [ - "▁", - "Source" - ], - [ - "▁дру", - "ги" - ], - [ - "in", - "ternal" - ], - [ - "int", - "ernal" - ], - [ - "inter", - "nal" - ], - [ - "intern", - "al" - ], - [ - "ion", - "ale" - ], - [ - "ional", - "e" - ], - [ - "iona", - "le" - ], - [ - "Pro", - "duct" - ], - [ - "Produ", - "ct" - ], - [ - "▁M", - "en" - ], - [ - "▁Me", - "n" - ], - [ - "▁", - "Men" - ], - [ - "▁u", - "pper" - ], - [ - "▁up", - "per" - ], - [ - "▁upp", - "er" - ], - [ - "▁", - "upper" - ], - [ - "▁E", - "very" - ], - [ - "▁Ev", - "ery" - ], - [ - "▁Ever", - "y" - ], - [ - "▁", - "Every" - ], - [ - "},", - "\\" - ], - [ - "}", - ",\\" - ], - [ - "▁print", - "f" - ], - [ - "▁prin", - "tf" - ], - [ - "▁", - "printf" - ], - [ - "▁contin", - "ued" - ], - [ - "▁continu", - "ed" - ], - [ - "▁continue", - "d" - ], - [ - "▁n", - "odes" - ], - [ - "▁no", - "des" - ], - [ - "▁node", - "s" - ], - [ - "▁nod", - "es" - ], - [ - "▁", - "nodes" - ], - [ - "л", - "ки" - ], - [ - "▁n", - "ice" - ], - [ - "▁ni", - "ce" - ], - [ - "▁nic", - "e" - ], - [ - "▁", - "nice" - ], - [ - "mod", - "ules" - ], - [ - "module", - "s" - ], - [ - "ei", - "gn" - ], - [ - "e", - "ign" - ], - [ - "▁M", - "ex" - ], - [ - "▁Me", - "x" - ], - [ - "▁Acc", - "ording" - ], - [ - "▁un", - "defined" - ], - [ - "▁und", - "efined" - ], - [ - "▁", - "undefined" - ], - [ - "▁b", - "inary" - ], - [ - "▁bin", - "ary" - ], - [ - "▁", - "binary" - ], - [ - "cu", - "t" - ], - [ - "c", - "ut" - ], - [ - "Cur", - "rent" - ], - [ - "C", - "urrent" - ], - [ - "ed", - "y" - ], - [ - "e", - "dy" - ], - [ - "}}", - "{" - ], - [ - "}", - "}{" - ], - [ - "ble", - "s" - ], - [ - "bl", - "es" - ], - [ - "b", - "les" - ], - [ - "▁во", - "й" - ], - [ - "▁", - "вой" - ], - [ - "sc", - "ri" - ], - [ - "scr", - "i" - ], - [ - "s", - "cri" - ], - [ - "eq", - "n" - ], - [ - "Ch", - "anged" - ], - [ - "Change", - "d" - ], - [ - "▁kö", - "z" - ], - [ - "▁rem", - "ote" - ], - [ - "▁", - "remote" - ], - [ - "в", - "ля" - ], - [ - "▁qu", - "el" - ], - [ - "▁que", - "l" - ], - [ - "▁q", - "uel" - ], - [ - "▁", - "quel" - ], - [ - "▁al", - "ign" - ], - [ - "▁ali", - "gn" - ], - [ - "▁", - "align" - ], - [ - "▁п", - "ар" - ], - [ - "▁па", - "р" - ], - [ - "▁", - "пар" - ], - [ - "S", - "V" - ], - [ - "ye", - "r" - ], - [ - "y", - "er" - ], - [ - "▁Cal", - "iforn" - ], - [ - "▁p", - "laces" - ], - [ - "▁pl", - "aces" - ], - [ - "▁place", - "s" - ], - [ - "▁pla", - "ces" - ], - [ - "▁prim", - "ary" - ], - [ - "▁pri", - "mary" - ], - [ - "▁prima", - "ry" - ], - [ - "▁", - "primary" - ], - [ - "▁con", - "v" - ], - [ - "▁", - "conv" - ], - [ - "▁J", - "uli" - ], - [ - "▁Jul", - "i" - ], - [ - "▁Ju", - "li" - ], - [ - "▁vis", - "ual" - ], - [ - "▁", - "visual" - ], - [ - "▁S", - "elect" - ], - [ - "▁Se", - "lect" - ], - [ - "▁Sel", - "ect" - ], - [ - "▁Sele", - "ct" - ], - [ - "▁", - "Select" - ], - [ - "at", - "ory" - ], - [ - "ator", - "y" - ], - [ - "ato", - "ry" - ], - [ - "=", - "(" - ], - [ - "is", - "er" - ], - [ - "ise", - "r" - ], - [ - "i", - "ser" - ], - [ - "▁int", - "ent" - ], - [ - "▁inte", - "nt" - ], - [ - "▁inten", - "t" - ], - [ - "▁", - "intent" - ], - [ - "su", - "r" - ], - [ - "s", - "ur" - ], - [ - "cont", - "ainer" - ], - [ - "ic", - "ed" - ], - [ - "ice", - "d" - ], - [ - "i", - "ced" - ], - [ - "▁bo", - "ard" - ], - [ - "▁", - "board" - ], - [ - "as", - "tr" - ], - [ - "ast", - "r" - ], - [ - "a", - "str" - ], - [ - "om", - "ial" - ], - [ - "omi", - "al" - ], - [ - "ве", - "т" - ], - [ - "в", - "ет" - ], - [ - "з", - "ва" - ], - [ - "▁c", - "ru" - ], - [ - "▁cr", - "u" - ], - [ - "▁Ok", - "tober" - ], - [ - "sa", - "ve" - ], - [ - "s", - "ave" - ], - [ - "▁gre", - "ater" - ], - [ - "▁great", - "er" - ], - [ - "▁in", - "n" - ], - [ - "▁i", - "nn" - ], - [ - "▁", - "inn" - ], - [ - "▁p", - "icture" - ], - [ - "▁", - "picture" - ], - [ - "▁Т", - "о" - ], - [ - "▁obtain", - "ed" - ], - [ - "▁obt", - "ained" - ], - [ - "Wik", - "imedia" - ], - [ - "ú", - "blic" - ], - [ - "▁l", - "ors" - ], - [ - "▁lo", - "rs" - ], - [ - "▁m", - "ont" - ], - [ - "▁mon", - "t" - ], - [ - "▁mo", - "nt" - ], - [ - "▁", - "mont" - ], - [ - "ob", - "re" - ], - [ - "o", - "bre" - ], - [ - "▁c", - "ivil" - ], - [ - "▁ci", - "vil" - ], - [ - "▁civ", - "il" - ], - [ - "▁const", - "ruction" - ], - [ - "▁construct", - "ion" - ], - [ - "▁constru", - "ction" - ], - [ - "▁W", - "elt" - ], - [ - "▁We", - "lt" - ], - [ - "▁Wel", - "t" - ], - [ - "▁U", - "nder" - ], - [ - "▁Un", - "der" - ], - [ - "▁Und", - "er" - ], - [ - "▁", - "Under" - ], - [ - "und", - "ert" - ], - [ - "under", - "t" - ], - [ - "unde", - "rt" - ], - [ - "▁ed", - "ge" - ], - [ - "▁", - "edge" - ], - [ - "▁L", - "iste" - ], - [ - "▁List", - "e" - ], - [ - "▁Li", - "ste" - ], - [ - "▁Lis", - "te" - ], - [ - "cs", - "v" - ], - [ - "c", - "sv" - ], - [ - "▁ex", - "periment" - ], - [ - "▁exper", - "iment" - ], - [ - "local", - "host" - ], - [ - "▁E", - "dit" - ], - [ - "▁Ed", - "it" - ], - [ - "▁", - "Edit" - ], - [ - "gr", - "eg" - ], - [ - "gre", - "g" - ], - [ - "g", - "reg" - ], - [ - "ov", - "á" - ], - [ - "o", - "vá" - ], - [ - "љ", - "а" - ], - [ - "ms", - "g" - ], - [ - "m", - "sg" - ], - [ - "▁G", - "reen" - ], - [ - "▁Gr", - "een" - ], - [ - "▁Gre", - "en" - ], - [ - "▁Gree", - "n" - ], - [ - "▁", - "Green" - ], - [ - "Di", - "alog" - ], - [ - "D", - "ialog" - ], - [ - "Id", - "ent" - ], - [ - "I", - "dent" - ], - [ - "▁J", - "S" - ], - [ - "▁", - "JS" - ], - [ - "^{", - "(" - ], - [ - "^", - "{(" - ], - [ - "▁slä", - "ktet" - ], - [ - "__", - "__" - ], - [ - "___", - "_" - ], - [ - "_", - "___" - ], - [ - "Pro", - "ject" - ], - [ - "▁bes", - "kre" - ], - [ - "▁b", - "er" - ], - [ - "▁be", - "r" - ], - [ - "▁", - "ber" - ], - [ - "▁would", - "n" - ], - [ - "▁re", - "act" - ], - [ - "▁", - "react" - ], - [ - "He", - "l" - ], - [ - "H", - "el" - ], - [ - "z", - "w" - ], - [ - "▁W", - "ashington" - ], - [ - "or", - "ie" - ], - [ - "ori", - "e" - ], - [ - "o", - "rie" - ], - [ - "ta", - "sk" - ], - [ - "t", - "ask" - ], - [ - "▁c", - "ategory" - ], - [ - "▁categ", - "ory" - ], - [ - "▁categor", - "y" - ], - [ - "▁", - "category" - ], - [ - "▁art", - "ist" - ], - [ - "an", - "no" - ], - [ - "ann", - "o" - ], - [ - "▁o", - "ok" - ], - [ - "▁", - "ook" - ], - [ - "am", - "men" - ], - [ - "amm", - "en" - ], - [ - "▁Min", - "ister" - ], - [ - "▁de", - "clar" - ], - [ - "▁dec", - "lar" - ], - [ - "▁decl", - "ar" - ], - [ - "▁decla", - "r" - ], - [ - "▁K", - "ey" - ], - [ - "▁Ke", - "y" - ], - [ - "▁", - "Key" - ], - [ - ",", - "." - ], - [ - "▁m", - "ach" - ], - [ - "▁ma", - "ch" - ], - [ - "▁mac", - "h" - ], - [ - "▁w", - "w" - ], - [ - "▁", - "ww" - ], - [ - "is", - "en" - ], - [ - "ise", - "n" - ], - [ - "i", - "sen" - ], - [ - "Fr", - "an" - ], - [ - "F", - "ran" - ], - [ - "▁Ро", - "сси" - ], - [ - "▁Рос", - "си" - ], - [ - "бо", - "р" - ], - [ - "б", - "ор" - ], - [ - "т", - "ри" - ], - [ - "▁r", - "ock" - ], - [ - "▁ro", - "ck" - ], - [ - "▁", - "rock" - ], - [ - "qu", - "is" - ], - [ - "qui", - "s" - ], - [ - "q", - "uis" - ], - [ - "mo", - "s" - ], - [ - "m", - "os" - ], - [ - "пе", - "ра" - ], - [ - "пер", - "а" - ], - [ - "п", - "ера" - ], - [ - "▁est", - "erni" - ], - [ - "▁g", - "old" - ], - [ - "▁go", - "ld" - ], - [ - "▁gol", - "d" - ], - [ - "Window", - "s" - ], - [ - "W", - "indows" - ], - [ - "%", - "%" - ], - [ - "▁part", - "ial" - ], - [ - "▁parti", - "al" - ], - [ - "▁", - "partial" - ], - [ - "▁we", - "ight" - ], - [ - "▁", - "weight" - ], - [ - "▁s", - "pr" - ], - [ - "▁sp", - "r" - ], - [ - "▁", - "spr" - ], - [ - "})", - "." - ], - [ - "}", - ")." - ], - [ - "▁fran", - "çais" - ], - [ - "fu", - "n" - ], - [ - "f", - "un" - ], - [ - "▁th", - "ous" - ], - [ - "▁thou", - "s" - ], - [ - "ho", - "lder" - ], - [ - "hol", - "der" - ], - [ - "hold", - "er" - ], - [ - "h", - "older" - ], - [ - "▁g", - "one" - ], - [ - "▁go", - "ne" - ], - [ - "▁", - "Č" - ], - [ - "▁re", - "nd" - ], - [ - "▁r", - "end" - ], - [ - "▁ren", - "d" - ], - [ - "▁", - "rend" - ], - [ - "D", - "A" - ], - [ - "▁answer", - "ed" - ], - [ - "▁F", - "alse" - ], - [ - "▁Fal", - "se" - ], - [ - "▁", - "False" - ], - [ - "B", - "uffer" - ], - [ - "▁d", - "augh" - ], - [ - "▁da", - "ugh" - ], - [ - ".-", - "-" - ], - [ - ".", - "--" - ], - [ - "▁S", - "how" - ], - [ - "▁Sh", - "ow" - ], - [ - "▁Sho", - "w" - ], - [ - "▁", - "Show" - ], - [ - "▁re", - "ct" - ], - [ - "▁r", - "ect" - ], - [ - "▁rec", - "t" - ], - [ - "▁", - "rect" - ], - [ - "▁K", - "re" - ], - [ - "▁Kr", - "e" - ], - [ - "d", - "r" - ], - [ - "os", - "oph" - ], - [ - "oso", - "ph" - ], - [ - "▁y", - "ield" - ], - [ - "ur", - "ity" - ], - [ - "uri", - "ty" - ], - [ - "to", - "String" - ], - [ - "av", - "al" - ], - [ - "ava", - "l" - ], - [ - "a", - "val" - ], - [ - "Po", - "l" - ], - [ - "P", - "ol" - ], - [ - "▁l", - "ock" - ], - [ - "▁lo", - "ck" - ], - [ - "▁loc", - "k" - ], - [ - "▁", - "lock" - ], - [ - "im", - "ation" - ], - [ - "ima", - "tion" - ], - [ - "imat", - "ion" - ], - [ - "ant", - "ic" - ], - [ - "anti", - "c" - ], - [ - "Lo", - "cal" - ], - [ - "Loc", - "al" - ], - [ - "L", - "ocal" - ], - [ - "▁beskre", - "vs" - ], - [ - "it", - "és" - ], - [ - "ité", - "s" - ], - [ - "gr", - "id" - ], - [ - "g", - "rid" - ], - [ - "у", - "т" - ], - [ - "▁_", - "{" - ], - [ - "▁", - "_{" - ], - [ - "с", - "і" - ], - [ - "FI", - "LE" - ], - [ - "▁к", - "м" - ], - [ - "▁spe", - "ak" - ], - [ - "sum", - "mary" - ], - [ - "pr", - "op" - ], - [ - "pro", - "p" - ], - [ - "p", - "rop" - ], - [ - "java", - "script" - ], - [ - "j", - "avascript" - ], - [ - "z", - "k" - ], - [ - "izont", - "al" - ], - [ - "izon", - "tal" - ], - [ - "▁tr", - "ois" - ], - [ - "▁tro", - "is" - ], - [ - "▁R", - "od" - ], - [ - "▁Ro", - "d" - ], - [ - "pr", - "ise" - ], - [ - "ро", - "во" - ], - [ - "ров", - "о" - ], - [ - "р", - "ово" - ], - [ - "▁o", - "dd" - ], - [ - "▁od", - "d" - ], - [ - "▁", - "odd" - ], - [ - "▁g", - "est" - ], - [ - "▁ge", - "st" - ], - [ - "▁ges", - "t" - ], - [ - "▁", - "gest" - ], - [ - "▁produ", - "ce" - ], - [ - "▁prod", - "uce" - ], - [ - "▁w", - "aar" - ], - [ - "▁wa", - "ar" - ], - [ - "▁A", - "v" - ], - [ - "▁", - "Av" - ], - [ - "ri", - "bu" - ], - [ - "rib", - "u" - ], - [ - "ва", - "ння" - ], - [ - "ван", - "ня" - ], - [ - "▁fin", - "ished" - ], - [ - "▁finish", - "ed" - ], - [ - "▁ad", - "apt" - ], - [ - "▁S", - "ar" - ], - [ - "▁Sa", - "r" - ], - [ - "text", - "it" - ], - [ - "tex", - "tit" - ], - [ - "▁C", - "e" - ], - [ - "▁F", - "a" - ], - [ - "▁", - "Fa" - ], - [ - "os", - "en" - ], - [ - "ose", - "n" - ], - [ - "o", - "sen" - ], - [ - "▁de", - "riv" - ], - [ - "▁der", - "iv" - ], - [ - "▁s", - "hip" - ], - [ - "▁sh", - "ip" - ], - [ - "▁", - "ship" - ], - [ - "▁o", - "pin" - ], - [ - "▁op", - "in" - ], - [ - "▁E", - "ven" - ], - [ - "▁Ev", - "en" - ], - [ - "ge", - "sch" - ], - [ - "ges", - "ch" - ], - [ - "g", - "esch" - ], - [ - "▁supp", - "ose" - ], - [ - "▁sup", - "pose" - ], - [ - "▁F", - "er" - ], - [ - "▁Fe", - "r" - ], - [ - "ско", - "е" - ], - [ - "▁w", - "orden" - ], - [ - "▁word", - "en" - ], - [ - "▁wor", - "den" - ], - [ - "se", - "y" - ], - [ - "s", - "ey" - ], - [ - "hl", - "ine" - ], - [ - "h", - "line" - ], - [ - "▁Un", - "ion" - ], - [ - "▁", - "Union" - ], - [ - "▁/", - "**" - ], - [ - "▁/*", - "*" - ], - [ - "▁", - "/**" - ], - [ - "▁v", - "ez" - ], - [ - "▁ve", - "z" - ], - [ - "▁", - "vez" - ], - [ - "▁Colleg", - "amenti" - ], - [ - "▁Soci", - "ety" - ], - [ - "▁Soc", - "iety" - ], - [ - "▁e", - "conom" - ], - [ - "▁econ", - "om" - ], - [ - "▁ec", - "onom" - ], - [ - "š", - "í" - ], - [ - "o", - "i" - ], - [ - "▁or", - "ient" - ], - [ - "▁", - "orient" - ], - [ - "▁T", - "eil" - ], - [ - "▁Te", - "il" - ], - [ - "re", - "nt" - ], - [ - "ren", - "t" - ], - [ - "r", - "ent" - ], - [ - "ле", - "кс" - ], - [ - "лек", - "с" - ], - [ - "▁s", - "olid" - ], - [ - "▁sol", - "id" - ], - [ - "▁c", - "art" - ], - [ - "▁car", - "t" - ], - [ - "▁ca", - "rt" - ], - [ - "▁", - "cart" - ], - [ - "********", - "********" - ], - [ - "▁c", - "ab" - ], - [ - "▁ca", - "b" - ], - [ - "▁M", - "essage" - ], - [ - "▁Mess", - "age" - ], - [ - "▁", - "Message" - ], - [ - "do", - "ts" - ], - [ - "dot", - "s" - ], - [ - "d", - "ots" - ], - [ - "▁é", - "g" - ], - [ - "▁", - "ég" - ], - [ - "▁t", - "we" - ], - [ - "▁tw", - "e" - ], - [ - "ag", - "a" - ], - [ - "a", - "ga" - ], - [ - "▁n", - "az" - ], - [ - "▁na", - "z" - ], - [ - "▁M", - "icrosoft" - ], - [ - "▁Micro", - "soft" - ], - [ - "▁", - "Microsoft" - ], - [ - "▁under", - "arter" - ], - [ - "pp", - "en" - ], - [ - "ppe", - "n" - ], - [ - "p", - "pen" - ], - [ - "▁re", - "cent" - ], - [ - "▁rec", - "ent" - ], - [ - "▁rece", - "nt" - ], - [ - "▁n", - "et" - ], - [ - "▁ne", - "t" - ], - [ - "▁", - "net" - ], - [ - "▁res", - "ources" - ], - [ - "▁resource", - "s" - ], - [ - "▁", - "resources" - ], - [ - "St", - "e" - ], - [ - "S", - "te" - ], - [ - ".", - "\\" - ], - [ - "▁S", - "O" - ], - [ - "▁", - "SO" - ], - [ - "ло", - "м" - ], - [ - "л", - "ом" - ], - [ - "▁c", - "ele" - ], - [ - "▁ce", - "le" - ], - [ - "▁cel", - "e" - ], - [ - "▁l", - "ic" - ], - [ - "▁li", - "c" - ], - [ - "▁", - "lic" - ], - [ - "▁ben", - "ef" - ], - [ - "▁bene", - "f" - ], - [ - "ld", - "ots" - ], - [ - "l", - "dots" - ], - [ - "▁se", - "rial" - ], - [ - "▁ser", - "ial" - ], - [ - "▁seria", - "l" - ], - [ - "▁", - "serial" - ], - [ - "In", - "teger" - ], - [ - "cl", - "es" - ], - [ - "cle", - "s" - ], - [ - "c", - "les" - ], - [ - "▁m", - "iles" - ], - [ - "▁mil", - "es" - ], - [ - "▁mi", - "les" - ], - [ - "▁mile", - "s" - ], - [ - "▁A", - "le" - ], - [ - "▁Al", - "e" - ], - [ - "▁en", - "tered" - ], - [ - "▁ent", - "ered" - ], - [ - "▁enter", - "ed" - ], - [ - "▁T", - "wo" - ], - [ - "▁Tw", - "o" - ], - [ - "▁", - "Two" - ], - [ - "wi", - "e" - ], - [ - "w", - "ie" - ], - [ - "▁in", - "cludes" - ], - [ - "▁incl", - "udes" - ], - [ - "▁includ", - "es" - ], - [ - "▁include", - "s" - ], - [ - "▁inclu", - "des" - ], - [ - "▁", - "includes" - ], - [ - "▁E", - "ach" - ], - [ - "▁", - "Each" - ], - [ - "el", - "ling" - ], - [ - "ell", - "ing" - ], - [ - "elli", - "ng" - ], - [ - "qu", - "er" - ], - [ - "que", - "r" - ], - [ - "q", - "uer" - ], - [ - "▁D", - "om" - ], - [ - "▁Do", - "m" - ], - [ - "▁", - "Dom" - ], - [ - "p", - "f" - ], - [ - "W", - "S" - ], - [ - "▁stra", - "ight" - ], - [ - "▁S", - "tan" - ], - [ - "▁St", - "an" - ], - [ - "▁Sta", - "n" - ], - [ - "▁n", - "os" - ], - [ - "▁no", - "s" - ], - [ - "▁", - "nos" - ], - [ - "í", - "cul" - ], - [ - "at", - "ro" - ], - [ - "atr", - "o" - ], - [ - "▁C", - "enter" - ], - [ - "▁Cent", - "er" - ], - [ - "▁", - "Center" - ], - [ - "F", - "T" - ], - [ - "▁In", - "ga" - ], - [ - "▁Ing", - "a" - ], - [ - "il", - "o" - ], - [ - "i", - "lo" - ], - [ - "▁w", - "ww" - ], - [ - "▁ww", - "w" - ], - [ - "▁", - "www" - ], - [ - "js", - "fiddle" - ], - [ - "ni", - "c" - ], - [ - "n", - "ic" - ], - [ - "▁Europe", - "an" - ], - [ - "▁com", - "mer" - ], - [ - "▁comm", - "er" - ], - [ - "▁comme", - "r" - ], - [ - "▁g", - "irl" - ], - [ - "▁gi", - "rl" - ], - [ - "▁gir", - "l" - ], - [ - "to", - "tal" - ], - [ - "tot", - "al" - ], - [ - "t", - "otal" - ], - [ - "▁S", - "tar" - ], - [ - "▁St", - "ar" - ], - [ - "▁Sta", - "r" - ], - [ - "▁", - "Star" - ], - [ - "▁sugg", - "ested" - ], - [ - "▁suggest", - "ed" - ], - [ - "pa", - "l" - ], - [ - "p", - "al" - ], - [ - "▁zw", - "ischen" - ], - [ - "пи", - "са" - ], - [ - "пис", - "а" - ], - [ - "I", - "M" - ], - [ - "▁hand", - "ler" - ], - [ - "▁handle", - "r" - ], - [ - "▁", - "handler" - ], - [ - "▁Pro", - "gram" - ], - [ - "▁Pr", - "ogram" - ], - [ - "▁", - "Program" - ], - [ - "xs", - "l" - ], - [ - "x", - "sl" - ], - [ - "ál", - "y" - ], - [ - "á", - "ly" - ], - [ - "B", - "U" - ], - [ - ",-", - "-" - ], - [ - ",", - "--" - ], - [ - "▁v", - "id" - ], - [ - "▁vi", - "d" - ], - [ - "▁", - "vid" - ], - [ - "▁estab", - "lished" - ], - [ - "▁establish", - "ed" - ], - [ - "▁S", - "piel" - ], - [ - "▁Sp", - "iel" - ], - [ - "om", - "etry" - ], - [ - "ome", - "try" - ], - [ - "omet", - "ry" - ], - [ - "un", - "es" - ], - [ - "une", - "s" - ], - [ - "u", - "nes" - ], - [ - "▁s", - "it" - ], - [ - "▁si", - "t" - ], - [ - "▁in", - "her" - ], - [ - "▁p", - "uis" - ], - [ - "▁pu", - "is" - ], - [ - "▁", - "puis" - ], - [ - "▁", - "être" - ], - [ - "▁M", - "ost" - ], - [ - "▁Mo", - "st" - ], - [ - "▁Mos", - "t" - ], - [ - "He", - "ader" - ], - [ - "Head", - "er" - ], - [ - "in", - "sert" - ], - [ - "ins", - "ert" - ], - [ - "▁s", - "ist" - ], - [ - "▁si", - "st" - ], - [ - "▁f", - "avor" - ], - [ - "▁fa", - "vor" - ], - [ - "▁fav", - "or" - ], - [ - "de", - "st" - ], - [ - "des", - "t" - ], - [ - "d", - "est" - ], - [ - "▁ent", - "ity" - ], - [ - "▁", - "entity" - ], - [ - "Ca", - "l" - ], - [ - "C", - "al" - ], - [ - "▁There", - "fore" - ], - [ - "D", - "D" - ], - [ - ";", - ";" - ], - [ - "▁Dez", - "ember" - ], - [ - "▁R", - "h" - ], - [ - "im", - "ents" - ], - [ - "iment", - "s" - ], - [ - "imen", - "ts" - ], - [ - "i", - "ments" - ], - [ - "▁return", - "ing" - ], - [ - "st", - "o" - ], - [ - "s", - "to" - ], - [ - "▁Val", - "ue" - ], - [ - "▁", - "Value" - ], - [ - "▁l", - "iber" - ], - [ - "▁li", - "ber" - ], - [ - "▁lib", - "er" - ], - [ - "▁Res", - "ult" - ], - [ - "▁", - "Result" - ], - [ - "▁b", - "ind" - ], - [ - "▁bi", - "nd" - ], - [ - "▁bin", - "d" - ], - [ - "▁", - "bind" - ], - [ - "vo", - "ir" - ], - [ - "v", - "oir" - ], - [ - "▁T", - "im" - ], - [ - "▁Ti", - "m" - ], - [ - "▁", - "Tim" - ], - [ - "▁M", - "ovie" - ], - [ - "▁Mo", - "vie" - ], - [ - "▁Mov", - "ie" - ], - [ - "▁", - "Movie" - ], - [ - "we", - "g" - ], - [ - "w", - "eg" - ], - [ - "ke", - "t" - ], - [ - "k", - "et" - ], - [ - "▁и", - "сто" - ], - [ - "▁ис", - "то" - ], - [ - "▁fri", - "ends" - ], - [ - "▁friend", - "s" - ], - [ - "▁f", - "n" - ], - [ - "▁", - "fn" - ], - [ - "▁é", - "l" - ], - [ - "▁", - "él" - ], - [ - "▁&", - "=" - ], - [ - "▁", - "&=" - ], - [ - "ar", - "den" - ], - [ - "ard", - "en" - ], - [ - "arde", - "n" - ], - [ - "ff", - "icial" - ], - [ - "ffic", - "ial" - ], - [ - "▁comm", - "unity" - ], - [ - "▁commun", - "ity" - ], - [ - "▁", - "community" - ], - [ - "▁a", - "pi" - ], - [ - "▁ap", - "i" - ], - [ - "▁", - "api" - ], - [ - "Ar", - "gs" - ], - [ - "Arg", - "s" - ], - [ - "ie", - "ren" - ], - [ - "ier", - "en" - ], - [ - "iere", - "n" - ], - [ - "i", - "eren" - ], - [ - "▁d", - "ann" - ], - [ - "▁da", - "nn" - ], - [ - "▁dan", - "n" - ], - [ - "om", - "orph" - ], - [ - "ad", - "r" - ], - [ - "a", - "dr" - ], - [ - "lo", - "op" - ], - [ - "l", - "oop" - ], - [ - "um", - "an" - ], - [ - "uma", - "n" - ], - [ - "u", - "man" - ], - [ - "▁v", - "ous" - ], - [ - "▁vo", - "us" - ], - [ - "▁vou", - "s" - ], - [ - "▁", - "vous" - ], - [ - "bs", - "t" - ], - [ - "b", - "st" - ], - [ - "sub", - "mit" - ], - [ - "\\", - "|" - ], - [ - "ти", - "н" - ], - [ - "т", - "ин" - ], - [ - "Cont", - "ainer" - ], - [ - "as", - "ket" - ], - [ - "ask", - "et" - ], - [ - "?", - ")" - ], - [ - "Se", - "c" - ], - [ - "S", - "ec" - ], - [ - "▁d", - "rive" - ], - [ - "▁dr", - "ive" - ], - [ - "▁dri", - "ve" - ], - [ - "▁driv", - "e" - ], - [ - "▁", - "drive" - ], - [ - "As", - "s" - ], - [ - "A", - "ss" - ], - [ - "▁s", - "we" - ], - [ - "▁sw", - "e" - ], - [ - "▁a", - "mer" - ], - [ - "▁am", - "er" - ], - [ - "▁", - "amer" - ], - [ - "▁m", - "ine" - ], - [ - "▁min", - "e" - ], - [ - "▁mi", - "ne" - ], - [ - "▁", - "mine" - ], - [ - "▁H", - "am" - ], - [ - "▁Ha", - "m" - ], - [ - "▁av", - "ait" - ], - [ - "▁", - "avait" - ], - [ - "▁H", - "on" - ], - [ - "▁Ho", - "n" - ], - [ - "▁a", - "près" - ], - [ - "▁ap", - "rès" - ], - [ - "▁apr", - "ès" - ], - [ - "▁", - "après" - ], - [ - "▁M", - "ann" - ], - [ - "▁Man", - "n" - ], - [ - "▁Ma", - "nn" - ], - [ - "сь", - "ка" - ], - [ - "ськ", - "а" - ], - [ - "▁incre", - "ase" - ], - [ - "▁t", - "y" - ], - [ - "▁", - "ty" - ], - [ - "sk", - "y" - ], - [ - "s", - "ky" - ], - [ - "▁acc", - "ur" - ], - [ - "▁ac", - "cur" - ], - [ - "art", - "icle" - ], - [ - "we", - "ight" - ], - [ - "weig", - "ht" - ], - [ - "▁s", - "ex" - ], - [ - "▁se", - "x" - ], - [ - "▁", - "sex" - ], - [ - "▁list", - "ade" - ], - [ - "▁lista", - "de" - ], - [ - "/*", - "*" - ], - [ - "/", - "**" - ], - [ - "▁est", - "á" - ], - [ - "}}", - "$" - ], - [ - "}", - "}$" - ], - [ - "ar", - "go" - ], - [ - "arg", - "o" - ], - [ - "def", - "ine" - ], - [ - "defin", - "e" - ], - [ - "▁со", - "став" - ], - [ - "▁соста", - "в" - ], - [ - "s", - "ession" - ], - [ - "ad", - "s" - ], - [ - "a", - "ds" - ], - [ - "ст", - "ви" - ], - [ - "ств", - "и" - ], - [ - "▁L", - "aw" - ], - [ - "▁La", - "w" - ], - [ - "▁d", - "ialog" - ], - [ - "▁di", - "alog" - ], - [ - "▁dia", - "log" - ], - [ - "▁", - "dialog" - ], - [ - "▁dup", - "licate" - ], - [ - "▁é", - "p" - ], - [ - "▁", - "ép" - ], - [ - "▁v", - "oc" - ], - [ - "▁vo", - "c" - ], - [ - "fr", - "i" - ], - [ - "f", - "ri" - ], - [ - "▁g", - "reen" - ], - [ - "▁gr", - "een" - ], - [ - "▁gre", - "en" - ], - [ - "▁", - "green" - ], - [ - "▁h", - "idden" - ], - [ - "▁hid", - "den" - ], - [ - "▁", - "hidden" - ], - [ - "▁Is", - "land" - ], - [ - "▁di", - "ag" - ], - [ - "▁dia", - "g" - ], - [ - "ow", - "ej" - ], - [ - "owe", - "j" - ], - [ - "my", - "sql" - ], - [ - "mys", - "ql" - ], - [ - "mysq", - "l" - ], - [ - "te", - "il" - ], - [ - "tei", - "l" - ], - [ - "t", - "eil" - ], - [ - "r", - "ä" - ], - [ - "ik", - "an" - ], - [ - "ika", - "n" - ], - [ - "i", - "kan" - ], - [ - "▁Jos", - "é" - ], - [ - "al", - "ed" - ], - [ - "ale", - "d" - ], - [ - "a", - "led" - ], - [ - "Run", - "time" - ], - [ - "R", - "untime" - ], - [ - "▁t", - "rain" - ], - [ - "▁tr", - "ain" - ], - [ - "▁tra", - "in" - ], - [ - "▁", - "train" - ], - [ - "▁Di", - "vision" - ], - [ - "▁Div", - "ision" - ], - [ - "ни", - "ц" - ], - [ - "▁S", - "pan" - ], - [ - "▁Sp", - "an" - ], - [ - "▁", - "Span" - ], - [ - "ни", - "ма" - ], - [ - "ним", - "а" - ], - [ - ")=", - "\\" - ], - [ - ")", - "=\\" - ], - [ - "та", - "н" - ], - [ - "т", - "ан" - ], - [ - "▁st", - "ay" - ], - [ - "▁sta", - "y" - ], - [ - "▁f", - "oo" - ], - [ - "▁fo", - "o" - ], - [ - "▁", - "foo" - ], - [ - "▁acc", - "om" - ], - [ - "▁ac", - "com" - ], - [ - "▁h", - "ers" - ], - [ - "▁he", - "rs" - ], - [ - "▁her", - "s" - ], - [ - "▁на", - "у" - ], - [ - "▁M", - "ün" - ], - [ - "ide", - "os" - ], - [ - "ideo", - "s" - ], - [ - "st", - "atic" - ], - [ - "stat", - "ic" - ], - [ - "▁re", - "ady" - ], - [ - "▁read", - "y" - ], - [ - "▁", - "ready" - ], - [ - "]", - "`" - ], - [ - "▁vis", - "ible" - ], - [ - "▁vi", - "sible" - ], - [ - "▁", - "visible" - ], - [ - "▁H", - "ope" - ], - [ - "▁Ho", - "pe" - ], - [ - "▁Hop", - "e" - ], - [ - "ul", - "ated" - ], - [ - "ula", - "ted" - ], - [ - "ulate", - "d" - ], - [ - "▁C", - "ult" - ], - [ - "▁Cu", - "lt" - ], - [ - "ст", - "ро" - ], - [ - "стр", - "о" - ], - [ - "с", - "тро" - ], - [ - "C", - "o" - ], - [ - "▁sm", - "aller" - ], - [ - "▁small", - "er" - ], - [ - "at", - "ura" - ], - [ - "atur", - "a" - ], - [ - "atu", - "ra" - ], - [ - "▁perfect", - "ly" - ], - [ - "re", - "q" - ], - [ - "r", - "eq" - ], - [ - "▁pro", - "posed" - ], - [ - "▁prop", - "osed" - ], - [ - "▁propos", - "ed" - ], - [ - "▁propose", - "d" - ], - [ - "▁deg", - "li" - ], - [ - "Se", - "arch" - ], - [ - "S", - "earch" - ], - [ - "▁i", - "ch" - ], - [ - "▁ic", - "h" - ], - [ - "▁", - "ich" - ], - [ - "Ma", - "x" - ], - [ - "M", - "ax" - ], - [ - "▁vol", - "ume" - ], - [ - "▁", - "volume" - ], - [ - "exec", - "ute" - ], - [ - "gr", - "e" - ], - [ - "g", - "re" - ], - [ - "▁s", - "port" - ], - [ - "▁sp", - "ort" - ], - [ - "▁spo", - "rt" - ], - [ - "ud", - "ad" - ], - [ - "uda", - "d" - ], - [ - "P", - "T" - ], - [ - "▁Rec", - "ords" - ], - [ - "▁Record", - "s" - ], - [ - "▁c", - "ook" - ], - [ - "▁co", - "ok" - ], - [ - "▁", - "cook" - ], - [ - "▁exp", - "and" - ], - [ - "▁", - "expand" - ], - [ - "б", - "і" - ], - [ - "▁al", - "tri" - ], - [ - "▁alt", - "ri" - ], - [ - "pp", - "et" - ], - [ - "ppe", - "t" - ], - [ - "p", - "pet" - ], - [ - "ar", - "se" - ], - [ - "ars", - "e" - ], - [ - "▁w", - "et" - ], - [ - "▁we", - "t" - ], - [ - "▁B", - "ob" - ], - [ - "▁Bo", - "b" - ], - [ - "▁", - "Bob" - ], - [ - "▁F", - "C" - ], - [ - "▁", - "FC" - ], - [ - "▁Associ", - "ation" - ], - [ - "uj", - "e" - ], - [ - "u", - "je" - ], - [ - "▁f", - "el" - ], - [ - "▁fe", - "l" - ], - [ - "▁", - "fel" - ], - [ - "▁с", - "лу" - ], - [ - "▁", - "слу" - ], - [ - "▁B", - "ig" - ], - [ - "▁Bi", - "g" - ], - [ - "▁", - "Big" - ], - [ - "/", - "\\" - ], - [ - "G", - "e" - ], - [ - "wh", - "ile" - ], - [ - "{", - "(" - ], - [ - "▁su", - "fficient" - ], - [ - "Pos", - "ition" - ], - [ - "P", - "osition" - ], - [ - "▁under", - "standing" - ], - [ - "▁understand", - "ing" - ], - [ - "▁n", - "ue" - ], - [ - "▁nu", - "e" - ], - [ - "▁r", - "az" - ], - [ - "▁ra", - "z" - ], - [ - "▁", - "raz" - ], - [ - "▁y", - "e" - ], - [ - "▁", - "ye" - ], - [ - "he", - "m" - ], - [ - "h", - "em" - ], - [ - "N", - "um" - ], - [ - "▁Pro", - "ject" - ], - [ - "▁", - "Project" - ], - [ - "▁I", - "ts" - ], - [ - "▁It", - "s" - ], - [ - "▁h", - "asta" - ], - [ - "▁ha", - "sta" - ], - [ - "▁has", - "ta" - ], - [ - "▁hast", - "a" - ], - [ - "en", - "so" - ], - [ - "ens", - "o" - ], - [ - "▁w", - "ire" - ], - [ - "▁wir", - "e" - ], - [ - "▁", - "wire" - ], - [ - "Re", - "t" - ], - [ - "R", - "et" - ], - [ - "u", - "j" - ], - [ - "pro", - "of" - ], - [ - "▁re", - "levant" - ], - [ - "▁relev", - "ant" - ], - [ - "▁part", - "ir" - ], - [ - "▁parti", - "r" - ], - [ - "▁a", - "go" - ], - [ - "▁ag", - "o" - ], - [ - "▁", - "ago" - ], - [ - "if", - "icate" - ], - [ - "ific", - "ate" - ], - [ - "ifica", - "te" - ], - [ - "▁d", - "omin" - ], - [ - "▁do", - "min" - ], - [ - "▁dom", - "in" - ], - [ - "▁", - "domin" - ], - [ - "▁b", - "oy" - ], - [ - "▁bo", - "y" - ], - [ - "▁", - "boy" - ], - [ - "▁p", - "lant" - ], - [ - "▁pl", - "ant" - ], - [ - "▁pla", - "nt" - ], - [ - "▁plan", - "t" - ], - [ - "▁", - "plant" - ], - [ - "▁enc", - "oding" - ], - [ - "▁", - "encoding" - ], - [ - "▁th", - "rows" - ], - [ - "▁thr", - "ows" - ], - [ - "▁throw", - "s" - ], - [ - "▁thro", - "ws" - ], - [ - "▁R", - "ock" - ], - [ - "▁Ro", - "ck" - ], - [ - "▁Roc", - "k" - ], - [ - "zo", - "ne" - ], - [ - "zon", - "e" - ], - [ - "z", - "one" - ], - [ - "ga", - "ng" - ], - [ - "gan", - "g" - ], - [ - "g", - "ang" - ], - [ - "wid", - "get" - ], - [ - "w", - "idget" - ], - [ - "▁interest", - "ing" - ], - [ - "DE", - "R" - ], - [ - "D", - "ER" - ], - [ - "▁d", - "emon" - ], - [ - "▁de", - "mon" - ], - [ - "▁dem", - "on" - ], - [ - "▁demo", - "n" - ], - [ - "▁off", - "ice" - ], - [ - "▁offic", - "e" - ], - [ - "▁", - "office" - ], - [ - "am", - "t" - ], - [ - "a", - "mt" - ], - [ - "ät", - "er" - ], - [ - "ä", - "ter" - ], - [ - "▁Wh", - "ite" - ], - [ - "▁Whit", - "e" - ], - [ - "▁", - "White" - ], - [ - "▁v", - "ersch" - ], - [ - "▁ver", - "sch" - ], - [ - "▁vers", - "ch" - ], - [ - "▁die", - "ser" - ], - [ - "▁dies", - "er" - ], - [ - "▁diese", - "r" - ], - [ - "▁M", - "ount" - ], - [ - "▁Mo", - "unt" - ], - [ - "▁Mou", - "nt" - ], - [ - "▁", - "Mount" - ], - [ - "▁stud", - "ents" - ], - [ - "▁student", - "s" - ], - [ - "▁P", - "ub" - ], - [ - "▁Pu", - "b" - ], - [ - "▁", - "Pub" - ], - [ - "▁Д", - "е" - ], - [ - "ij", - "a" - ], - [ - "i", - "ja" - ], - [ - "▁C", - "y" - ], - [ - "▁", - "Cy" - ], - [ - "▁Californ", - "ia" - ], - [ - "▁ab", - "ril" - ], - [ - "äl", - "l" - ], - [ - "ä", - "ll" - ], - [ - "▁ч", - "ем" - ], - [ - "▁че", - "м" - ], - [ - "T", - "V" - ], - [ - "▁m", - "és" - ], - [ - "▁mé", - "s" - ], - [ - "▁decl", - "ared" - ], - [ - "▁decla", - "red" - ], - [ - "▁declar", - "ed" - ], - [ - "▁declare", - "d" - ], - [ - "▁", - "ю" - ], - [ - "ő", - "l" - ], - [ - "ap", - "pa" - ], - [ - "app", - "a" - ], - [ - "a", - "ppa" - ], - [ - "▁Б", - "е" - ], - [ - "ec", - "ho" - ], - [ - "ech", - "o" - ], - [ - "e", - "cho" - ], - [ - "num", - "er" - ], - [ - "nu", - "mer" - ], - [ - "n", - "umer" - ], - [ - "▁po", - "sted" - ], - [ - "▁pos", - "ted" - ], - [ - "▁post", - "ed" - ], - [ - "▁poste", - "d" - ], - [ - "▁в", - "ер" - ], - [ - "▁ве", - "р" - ], - [ - "▁", - "вер" - ], - [ - "▁годи", - "не" - ], - [ - "▁we", - "ak" - ], - [ - "▁", - "weak" - ], - [ - "▁Re", - "public" - ], - [ - "▁Rep", - "ublic" - ], - [ - "▁Repub", - "lic" - ], - [ - "▁ch", - "ampion" - ], - [ - "▁champ", - "ion" - ], - [ - "ensure", - "math" - ], - [ - "you", - "r" - ], - [ - "yo", - "ur" - ], - [ - "y", - "our" - ], - [ - "▁O", - "ber" - ], - [ - "▁Ob", - "er" - ], - [ - "▁Cent", - "ral" - ], - [ - "is", - "a" - ], - [ - "i", - "sa" - ], - [ - "ан", - "д" - ], - [ - "а", - "нд" - ], - [ - "y", - "y" - ], - [ - "▁full", - "y" - ], - [ - "▁ful", - "ly" - ], - [ - "▁", - "fully" - ], - [ - "▁S", - "D" - ], - [ - "▁", - "SD" - ], - [ - "▁Lin", - "ux" - ], - [ - "▁", - "Linux" - ], - [ - "▁Sc", - "ott" - ], - [ - "▁Scot", - "t" - ], - [ - "part", - "ment" - ], - [ - "ko", - "n" - ], - [ - "k", - "on" - ], - [ - "▁cont", - "ract" - ], - [ - "▁contr", - "act" - ], - [ - "▁contra", - "ct" - ], - [ - "▁O", - "F" - ], - [ - "▁", - "OF" - ], - [ - "▁a", - "le" - ], - [ - "▁al", - "e" - ], - [ - "▁", - "ale" - ], - [ - "▁A", - "nn" - ], - [ - "▁An", - "n" - ], - [ - "▁на", - "д" - ], - [ - "▁", - "над" - ], - [ - "la", - "h" - ], - [ - "l", - "ah" - ], - [ - "▁N", - "ext" - ], - [ - "▁Ne", - "xt" - ], - [ - "▁", - "Next" - ], - [ - "or", - "en" - ], - [ - "ore", - "n" - ], - [ - "o", - "ren" - ], - [ - "▁d", - "isk" - ], - [ - "▁di", - "sk" - ], - [ - "▁dis", - "k" - ], - [ - "▁", - "disk" - ], - [ - "▁e", - "g" - ], - [ - "▁", - "eg" - ], - [ - "at", - "u" - ], - [ - "a", - "tu" - ], - [ - "ло", - "ги" - ], - [ - "лог", - "и" - ], - [ - "▁g", - "ames" - ], - [ - "▁game", - "s" - ], - [ - "▁ga", - "mes" - ], - [ - "▁gam", - "es" - ], - [ - "Le", - "ft" - ], - [ - "L", - "eft" - ], - [ - "▁l", - "u" - ], - [ - "▁", - "lu" - ], - [ - "▁fin", - "ite" - ], - [ - "▁finit", - "e" - ], - [ - "▁", - "finite" - ], - [ - "▁к", - "и" - ], - [ - "▁", - "ки" - ], - [ - "▁cr", - "ash" - ], - [ - "▁cra", - "sh" - ], - [ - "ph", - "er" - ], - [ - "phe", - "r" - ], - [ - "p", - "her" - ], - [ - "ex", - "e" - ], - [ - "e", - "xe" - ], - [ - "AT", - "ION" - ], - [ - "▁br", - "other" - ], - [ - "▁bro", - "ther" - ], - [ - "En", - "g" - ], - [ - "E", - "ng" - ], - [ - "ta", - "t" - ], - [ - "t", - "at" - ], - [ - "▁In", - "teger" - ], - [ - "▁", - "Integer" - ], - [ - "но", - "му" - ], - [ - "ном", - "у" - ], - [ - "н", - "ому" - ], - [ - "▁col", - "on" - ], - [ - "▁co", - "lon" - ], - [ - "▁", - "colon" - ], - [ - "i", - "qu" - ], - [ - "))", - "." - ], - [ - ")", - ")." - ], - [ - "iv", - "i" - ], - [ - "i", - "vi" - ], - [ - "▁M", - "ethod" - ], - [ - "▁Met", - "hod" - ], - [ - "▁", - "Method" - ], - [ - "ar", - "ten" - ], - [ - "art", - "en" - ], - [ - "arte", - "n" - ], - [ - "Un", - "i" - ], - [ - "U", - "ni" - ], - [ - "ve", - "ctor" - ], - [ - "vec", - "tor" - ], - [ - "v", - "ector" - ], - [ - "▁w", - "ood" - ], - [ - "▁wo", - "od" - ], - [ - "▁", - "wood" - ], - [ - "р", - "т" - ], - [ - "▁Л", - "е" - ], - [ - "▁siè", - "cle" - ], - [ - "▁g", - "ent" - ], - [ - "▁ge", - "nt" - ], - [ - "▁gen", - "t" - ], - [ - "▁", - "gent" - ], - [ - "}", - "\r" - ], - [ - "▁cont", - "ents" - ], - [ - "▁content", - "s" - ], - [ - "▁conten", - "ts" - ], - [ - "▁", - "contents" - ], - [ - "▁com", - "pan" - ], - [ - "▁comp", - "an" - ], - [ - "G", - "o" - ], - [ - "▁j", - "ou" - ], - [ - "▁jo", - "u" - ], - [ - "▁", - "jou" - ], - [ - "ue", - "nt" - ], - [ - "uen", - "t" - ], - [ - "u", - "ent" - ], - [ - "As", - "ync" - ], - [ - "A", - "sync" - ], - [ - "print", - "f" - ], - [ - "▁M", - "odel" - ], - [ - "▁Mod", - "el" - ], - [ - "▁Mo", - "del" - ], - [ - "▁Mode", - "l" - ], - [ - "▁", - "Model" - ], - [ - "▁ke", - "pt" - ], - [ - "AS", - "E" - ], - [ - "A", - "SE" - ], - [ - "▁prov", - "ides" - ], - [ - "▁provide", - "s" - ], - [ - "▁Ab", - "gerufen" - ], - [ - "▁G", - "all" - ], - [ - "▁Gal", - "l" - ], - [ - "▁Ga", - "ll" - ], - [ - "▁Al", - "f" - ], - [ - "S", - "A" - ], - [ - "▁M", - "em" - ], - [ - "▁Me", - "m" - ], - [ - "▁", - "Mem" - ], - [ - "▁k", - "ter" - ], - [ - "▁", - "kter" - ], - [ - "▁B", - "ru" - ], - [ - "▁Br", - "u" - ], - [ - "And", - "roid" - ], - [ - "(", - ":" - ], - [ - "▁У", - "краї" - ], - [ - "▁Укра", - "ї" - ], - [ - "N", - "e" - ], - [ - "M", - "in" - ], - [ - "at", - "r" - ], - [ - "a", - "tr" - ], - [ - "▁H", - "al" - ], - [ - "▁Ha", - "l" - ], - [ - "de", - "lete" - ], - [ - "del", - "ete" - ], - [ - "od", - "o" - ], - [ - "o", - "do" - ], - [ - "▁n", - "ão" - ], - [ - "èn", - "e" - ], - [ - "è", - "ne" - ], - [ - "▁calcul", - "ate" - ], - [ - "▁calc", - "ulate" - ], - [ - "Js", - "on" - ], - [ - "J", - "son" - ], - [ - "ke", - "ys" - ], - [ - "key", - "s" - ], - [ - "не", - "й" - ], - [ - "н", - "ей" - ], - [ - "▁h", - "ence" - ], - [ - "▁hen", - "ce" - ], - [ - "▁o", - "w" - ], - [ - "▁", - "ow" - ], - [ - "▁L", - "ib" - ], - [ - "▁Li", - "b" - ], - [ - "▁", - "Lib" - ], - [ - "en", - "o" - ], - [ - "e", - "no" - ], - [ - "▁L", - "ove" - ], - [ - "▁Lo", - "ve" - ], - [ - "▁Lov", - "e" - ], - [ - "os", - "i" - ], - [ - "o", - "si" - ], - [ - "wi", - "de" - ], - [ - "wid", - "e" - ], - [ - "w", - "ide" - ], - [ - "▁s", - "core" - ], - [ - "▁sc", - "ore" - ], - [ - "▁", - "score" - ], - [ - "ful", - "l" - ], - [ - "fu", - "ll" - ], - [ - "f", - "ull" - ], - [ - "во", - "д" - ], - [ - "в", - "од" - ], - [ - "▁determ", - "ine" - ], - [ - "▁determin", - "e" - ], - [ - "▁s", - "paces" - ], - [ - "▁sp", - "aces" - ], - [ - "▁space", - "s" - ], - [ - "▁spac", - "es" - ], - [ - "▁", - "spaces" - ], - [ - "ло", - "ва" - ], - [ - "лов", - "а" - ], - [ - "л", - "ова" - ], - [ - "▁pe", - "ut" - ], - [ - "▁peu", - "t" - ], - [ - "ér", - "al" - ], - [ - "éra", - "l" - ], - [ - "é", - "ral" - ], - [ - "ó", - "ł" - ], - [ - "▁app", - "oint" - ], - [ - "▁ap", - "point" - ], - [ - "▁T", - "w" - ], - [ - "▁", - "Tw" - ], - [ - "<", - "?" - ], - [ - "▁Or", - "der" - ], - [ - "▁Ord", - "er" - ], - [ - "▁", - "Order" - ], - [ - "▁h", - "op" - ], - [ - "▁ho", - "p" - ], - [ - "ran", - "dom" - ], - [ - "rand", - "om" - ], - [ - "r", - "andom" - ], - [ - "ca", - "che" - ], - [ - "c", - "ache" - ], - [ - "▁dest", - "roy" - ], - [ - "▁", - "destroy" - ], - [ - "▁r", - "ace" - ], - [ - "▁ra", - "ce" - ], - [ - "▁rac", - "e" - ], - [ - "▁", - "race" - ], - [ - "T", - "ag" - ], - [ - "▁r", - "id" - ], - [ - "▁ri", - "d" - ], - [ - "▁", - "rid" - ], - [ - "▁neg", - "ative" - ], - [ - "▁", - "negative" - ], - [ - "Ca", - "r" - ], - [ - "C", - "ar" - ], - [ - "ens", - "ional" - ], - [ - "ension", - "al" - ], - [ - "d", - "k" - ], - [ - "▁c", - "ro" - ], - [ - "▁cr", - "o" - ], - [ - "▁", - "cro" - ], - [ - "▁TH", - "EN" - ], - [ - "▁THE", - "N" - ], - [ - "▁$", - "." - ], - [ - "▁", - "$." - ], - [ - "en", - "sk" - ], - [ - "ens", - "k" - ], - [ - "N", - "E" - ], - [ - "H", - "O" - ], - [ - "▁k", - "le" - ], - [ - "▁kl", - "e" - ], - [ - "osp", - "ital" - ], - [ - "kt", - "e" - ], - [ - "k", - "te" - ], - [ - "fér", - "ences" - ], - [ - "férence", - "s" - ], - [ - "ud", - "es" - ], - [ - "ude", - "s" - ], - [ - "u", - "des" - ], - [ - "I", - "R" - ], - [ - "ot", - "ion" - ], - [ - "oti", - "on" - ], - [ - "o", - "tion" - ], - [ - "▁Re", - "al" - ], - [ - "▁", - "Real" - ], - [ - "▁Febru", - "ar" - ], - [ - "и", - "н" - ], - [ - "▁O", - "ld" - ], - [ - "▁Ol", - "d" - ], - [ - "▁", - "Old" - ], - [ - "ко", - "го" - ], - [ - "к", - "ого" - ], - [ - "le", - "ich" - ], - [ - "lei", - "ch" - ], - [ - "▁", - "р" - ], - [ - "ía", - "n" - ], - [ - "í", - "an" - ], - [ - "▁г", - "а" - ], - [ - "▁", - "га" - ], - [ - "ci", - "de" - ], - [ - "cid", - "e" - ], - [ - "c", - "ide" - ], - [ - "la", - "b" - ], - [ - "l", - "ab" - ], - [ - "▁p", - "ull" - ], - [ - "▁pu", - "ll" - ], - [ - "▁pul", - "l" - ], - [ - "▁", - "pull" - ], - [ - "▁'", - "/" - ], - [ - "Lo", - "ng" - ], - [ - "L", - "ong" - ], - [ - ",", - "$" - ], - [ - "▁appropri", - "ate" - ], - [ - "▁бы", - "ла" - ], - [ - "▁был", - "а" - ], - [ - "f", - "ühr" - ], - [ - "▁M", - "edia" - ], - [ - "▁Me", - "dia" - ], - [ - "▁Med", - "ia" - ], - [ - "▁Medi", - "a" - ], - [ - "▁", - "Media" - ], - [ - "▁m", - "anner" - ], - [ - "▁man", - "ner" - ], - [ - "▁Г", - "е" - ], - [ - "de", - "scription" - ], - [ - "des", - "cription" - ], - [ - "Be", - "an" - ], - [ - "▁L", - "ar" - ], - [ - "▁La", - "r" - ], - [ - "▁", - "Lar" - ], - [ - "']", - ";" - ], - [ - "'", - "];" - ], - [ - "▁re", - "lation" - ], - [ - "▁rel", - "ation" - ], - [ - "▁rela", - "tion" - ], - [ - "▁", - "relation" - ], - [ - "▁S", - "orry" - ], - [ - "▁Sor", - "ry" - ], - [ - "ha", - "r" - ], - [ - "h", - "ar" - ], - [ - "cp", - "p" - ], - [ - "c", - "pp" - ], - [ - "▁K", - "o" - ], - [ - "▁exec", - "ution" - ], - [ - "▁execut", - "ion" - ], - [ - "▁", - "execution" - ], - [ - "in", - "os" - ], - [ - "ino", - "s" - ], - [ - "i", - "nos" - ], - [ - "▁b", - "ul" - ], - [ - "▁bu", - "l" - ], - [ - "▁", - "bul" - ], - [ - "gr", - "ade" - ], - [ - "gra", - "de" - ], - [ - "grad", - "e" - ], - [ - "g", - "rade" - ], - [ - "▁M", - "u" - ], - [ - "▁p", - "il" - ], - [ - "▁pi", - "l" - ], - [ - "wr", - "it" - ], - [ - "w", - "rit" - ], - [ - "ific", - "ations" - ], - [ - "ification", - "s" - ], - [ - "in", - "ese" - ], - [ - "ine", - "se" - ], - [ - "ines", - "e" - ], - [ - "▁Ph", - "ili" - ], - [ - "▁Phil", - "i" - ], - [ - "d", - "x" - ], - [ - "▁le", - "ading" - ], - [ - "▁lead", - "ing" - ], - [ - "▁", - "leading" - ], - [ - "▁J", - "ournal" - ], - [ - "ov", - "ed" - ], - [ - "ove", - "d" - ], - [ - "o", - "ved" - ], - [ - "▁cont", - "ro" - ], - [ - "▁contr", - "o" - ], - [ - "но", - "ва" - ], - [ - "нов", - "а" - ], - [ - "н", - "ова" - ], - [ - "Y", - "es" - ], - [ - "▁ch", - "annel" - ], - [ - "▁", - "channel" - ], - [ - "))", - "," - ], - [ - ")", - ")," - ], - [ - "is", - "ten" - ], - [ - "ist", - "en" - ], - [ - "iste", - "n" - ], - [ - "i", - "sten" - ], - [ - "ak", - "a" - ], - [ - "a", - "ka" - ], - [ - "To", - "String" - ], - [ - "ma", - "s" - ], - [ - "m", - "as" - ], - [ - "▁e", - "tt" - ], - [ - "▁et", - "t" - ], - [ - "▁", - "ett" - ], - [ - "▁for", - "ces" - ], - [ - "▁force", - "s" - ], - [ - "ul", - "ations" - ], - [ - "ulation", - "s" - ], - [ - "▁C", - "all" - ], - [ - "▁Cal", - "l" - ], - [ - "▁Ca", - "ll" - ], - [ - "▁", - "Call" - ], - [ - "▁explan", - "ation" - ], - [ - "or", - "ing" - ], - [ - "ori", - "ng" - ], - [ - "o", - "ring" - ], - [ - "AT", - "A" - ], - [ - "A", - "TA" - ], - [ - "ch", - "ter" - ], - [ - "cht", - "er" - ], - [ - "chte", - "r" - ], - [ - "wh", - "en" - ], - [ - "w", - "hen" - ], - [ - "V", - "C" - ], - [ - "▁Jah", - "rh" - ], - [ - "▁Jahr", - "h" - ], - [ - "Ca", - "se" - ], - [ - "C", - "ase" - ], - [ - "▁comm", - "ands" - ], - [ - "▁command", - "s" - ], - [ - "▁", - "commands" - ], - [ - "▁r", - "ich" - ], - [ - "▁ric", - "h" - ], - [ - "▁ri", - "ch" - ], - [ - "▁", - "rich" - ], - [ - "bu", - "s" - ], - [ - "b", - "us" - ], - [ - "F", - "e" - ], - [ - "mb", - "ox" - ], - [ - "m", - "box" - ], - [ - "▁re", - "con" - ], - [ - "▁rec", - "on" - ], - [ - "ñ", - "o" - ], - [ - "▁s", - "hape" - ], - [ - "▁sh", - "ape" - ], - [ - "▁", - "shape" - ], - [ - "ow", - "y" - ], - [ - "o", - "wy" - ], - [ - "en", - "try" - ], - [ - "ent", - "ry" - ], - [ - "entr", - "y" - ], - [ - "it", - "able" - ], - [ - "ita", - "ble" - ], - [ - "i", - "table" - ], - [ - "▁e", - "lection" - ], - [ - "▁el", - "ection" - ], - [ - "▁elect", - "ion" - ], - [ - "▁ele", - "ction" - ], - [ - "є", - "ться" - ], - [ - "▁p", - "rep" - ], - [ - "▁pr", - "ep" - ], - [ - "▁pre", - "p" - ], - [ - "▁", - "prep" - ], - [ - "v", - "á" - ], - [ - "▁in", - "fin" - ], - [ - "▁inf", - "in" - ], - [ - "lo", - "t" - ], - [ - "l", - "ot" - ], - [ - "▁bo", - "oks" - ], - [ - "▁book", - "s" - ], - [ - "▁", - "books" - ], - [ - "▁U", - "SA" - ], - [ - "▁US", - "A" - ], - [ - "▁", - "USA" - ], - [ - "ли", - "н" - ], - [ - "л", - "ин" - ], - [ - "▁p", - "om" - ], - [ - "▁po", - "m" - ], - [ - "▁", - "pom" - ], - [ - "▁n", - "as" - ], - [ - "▁na", - "s" - ], - [ - "▁", - "nas" - ], - [ - "▁t", - "ags" - ], - [ - "▁tag", - "s" - ], - [ - "▁ta", - "gs" - ], - [ - "▁", - "tags" - ], - [ - "▁exec", - "uted" - ], - [ - "▁execute", - "d" - ], - [ - "▁execut", - "ed" - ], - [ - "ail", - "le" - ], - [ - "ai", - "lle" - ], - [ - "a", - "ille" - ], - [ - "lu", - "ng" - ], - [ - "l", - "ung" - ], - [ - "▁Java", - "Script" - ], - [ - "▁", - "JavaScript" - ], - [ - "▁b", - "all" - ], - [ - "▁bal", - "l" - ], - [ - "▁ba", - "ll" - ], - [ - "▁", - "ball" - ], - [ - "▁ain", - "si" - ], - [ - "▁P", - "ri" - ], - [ - "▁Pr", - "i" - ], - [ - "{", - "$" - ], - [ - "▁U", - "N" - ], - [ - "▁", - "UN" - ], - [ - "▁R", - "am" - ], - [ - "▁Ra", - "m" - ], - [ - "▁h", - "ear" - ], - [ - "▁he", - "ar" - ], - [ - "▁U", - "buntu" - ], - [ - ">(", - ");" - ], - [ - ">()", - ";" - ], - [ - ">", - "();" - ], - [ - "▁p", - "ure" - ], - [ - "▁pu", - "re" - ], - [ - "▁pur", - "e" - ], - [ - "▁em", - "bed" - ], - [ - "▁emb", - "ed" - ], - [ - "▁", - "embed" - ], - [ - "a", - "ção" - ], - [ - "cont", - "roller" - ], - [ - "control", - "ler" - ], - [ - "▁mar", - "ried" - ], - [ - "▁F", - "ol" - ], - [ - "▁Fo", - "l" - ], - [ - "fa", - "mil" - ], - [ - "f", - "amil" - ], - [ - "▁p", - "rec" - ], - [ - "▁pr", - "ec" - ], - [ - "▁pre", - "c" - ], - [ - "▁", - "prec" - ], - [ - "▁rec", - "urs" - ], - [ - "pa", - "d" - ], - [ - "p", - "ad" - ], - [ - "istr", - "ation" - ], - [ - "istra", - "tion" - ], - [ - "▁respect", - "ively" - ], - [ - "▁respective", - "ly" - ], - [ - "[", - "$" - ], - [ - "au", - "tor" - ], - [ - "aut", - "or" - ], - [ - "auto", - "r" - ], - [ - "a", - "utor" - ], - [ - "▁g", - "rav" - ], - [ - "▁gr", - "av" - ], - [ - "▁gra", - "v" - ], - [ - "ie", - "ra" - ], - [ - "ier", - "a" - ], - [ - "i", - "era" - ], - [ - "az", - "ioni" - ], - [ - "azi", - "oni" - ], - [ - "a", - "zioni" - ], - [ - "▁B", - "ul" - ], - [ - "▁Bu", - "l" - ], - [ - "▁Austral", - "ia" - ], - [ - "mon", - "d" - ], - [ - "mo", - "nd" - ], - [ - "m", - "ond" - ], - [ - "▁T", - "ro" - ], - [ - "▁Tr", - "o" - ], - [ - "▁E", - "le" - ], - [ - "▁El", - "e" - ], - [ - "pack", - "ages" - ], - [ - "package", - "s" - ], - [ - "ms", - "dn" - ], - [ - "▁A", - "ls" - ], - [ - "▁Al", - "s" - ], - [ - "▁pr", - "zy" - ], - [ - "▁prz", - "y" - ], - [ - "AR", - "T" - ], - [ - "A", - "RT" - ], - [ - "▁char", - "ge" - ], - [ - "▁charg", - "e" - ], - [ - "▁", - "charge" - ], - [ - "▁app", - "lications" - ], - [ - "▁application", - "s" - ], - [ - "▁applic", - "ations" - ], - [ - "Un", - "it" - ], - [ - "Uni", - "t" - ], - [ - "U", - "nit" - ], - [ - "ar", - "en" - ], - [ - "are", - "n" - ], - [ - "a", - "ren" - ], - [ - "▁sud", - "den" - ], - [ - "om", - "eter" - ], - [ - "ome", - "ter" - ], - [ - "omet", - "er" - ], - [ - "o", - "meter" - ], - [ - "▁d", - "ot" - ], - [ - "▁do", - "t" - ], - [ - "▁", - "dot" - ], - [ - "ac", - "ji" - ], - [ - "a", - "cji" - ], - [ - "кт", - "ор" - ], - [ - "кто", - "р" - ], - [ - "к", - "тор" - ], - [ - "im", - "in" - ], - [ - "imi", - "n" - ], - [ - "i", - "min" - ], - [ - "en", - "ing" - ], - [ - "eni", - "ng" - ], - [ - "e", - "ning" - ], - [ - "▁d", - "onde" - ], - [ - "▁do", - "nde" - ], - [ - "▁don", - "de" - ], - [ - "▁H", - "o" - ], - [ - "tr", - "ee" - ], - [ - "tre", - "e" - ], - [ - "t", - "ree" - ], - [ - "m", - "b" - ], - [ - "▁d", - "rag" - ], - [ - "▁dr", - "ag" - ], - [ - "▁dra", - "g" - ], - [ - "▁", - "drag" - ], - [ - "aj", - "e" - ], - [ - "a", - "je" - ], - [ - "▁in", - "valid" - ], - [ - "▁", - "invalid" - ], - [ - "▁fin", - "ish" - ], - [ - "la", - "im" - ], - [ - "▁f", - "eed" - ], - [ - "▁fe", - "ed" - ], - [ - "▁fee", - "d" - ], - [ - "▁", - "feed" - ], - [ - "▁N", - "ap" - ], - [ - "▁Na", - "p" - ], - [ - "ro", - "om" - ], - [ - "r", - "oom" - ], - [ - "im", - "ages" - ], - [ - "ima", - "ges" - ], - [ - "image", - "s" - ], - [ - "▁са", - "й" - ], - [ - "▁su", - "cc" - ], - [ - "▁suc", - "c" - ], - [ - "if", - "fer" - ], - [ - "iff", - "er" - ], - [ - "iffe", - "r" - ], - [ - "▁a", - "ño" - ], - [ - "▁añ", - "o" - ], - [ - "▁c", - "ual" - ], - [ - "▁cu", - "al" - ], - [ - "ме", - "ри" - ], - [ - "мер", - "и" - ], - [ - "D", - "R" - ], - [ - "▁B", - "ilder" - ], - [ - "▁Bi", - "lder" - ], - [ - "▁Bild", - "er" - ], - [ - "▁Bil", - "der" - ], - [ - "б", - "ра" - ], - [ - "ra", - "it" - ], - [ - "rai", - "t" - ], - [ - "r", - "ait" - ], - [ - "pa", - "n" - ], - [ - "p", - "an" - ], - [ - "ен", - "ь" - ], - [ - "е", - "нь" - ], - [ - "▁dist", - "inct" - ], - [ - "▁K", - "n" - ], - [ - "ön", - "ig" - ], - [ - "ö", - "nig" - ], - [ - "an", - "ced" - ], - [ - "ance", - "d" - ], - [ - "anc", - "ed" - ], - [ - "▁lo", - "ading" - ], - [ - "▁load", - "ing" - ], - [ - "▁", - "loading" - ], - [ - "▁Te", - "chn" - ], - [ - "▁S", - "el" - ], - [ - "▁Se", - "l" - ], - [ - "mu", - "s" - ], - [ - "m", - "us" - ], - [ - "▁r", - "ail" - ], - [ - "▁ra", - "il" - ], - [ - "▁st", - "udent" - ], - [ - "▁stud", - "ent" - ], - [ - "▁", - "student" - ], - [ - "▁not", - "ice" - ], - [ - "▁s", - "la" - ], - [ - "▁sl", - "a" - ], - [ - "▁Д", - "а" - ], - [ - "▁gu", - "ard" - ], - [ - "▁", - "guard" - ], - [ - "▁D", - "ay" - ], - [ - "▁Da", - "y" - ], - [ - "▁", - "Day" - ], - [ - "ва", - "ли" - ], - [ - "вал", - "и" - ], - [ - "в", - "али" - ], - [ - "Op", - "tion" - ], - [ - "Opt", - "ion" - ], - [ - "O", - "ption" - ], - [ - "ais", - "on" - ], - [ - "ai", - "son" - ], - [ - "a", - "ison" - ], - [ - "ip", - "p" - ], - [ - "i", - "pp" - ], - [ - "▁J", - "un" - ], - [ - "▁Ju", - "n" - ], - [ - "▁f", - "ell" - ], - [ - "▁fe", - "ll" - ], - [ - "▁fel", - "l" - ], - [ - "▁ab", - "solute" - ], - [ - "▁absol", - "ute" - ], - [ - "▁", - "absolute" - ], - [ - "ов", - "е" - ], - [ - "о", - "ве" - ], - [ - "de", - "bug" - ], - [ - "deb", - "ug" - ], - [ - "▁S", - "ud" - ], - [ - "▁Su", - "d" - ], - [ - "п", - "ы" - ], - [ - "ug", - "ins" - ], - [ - "ugin", - "s" - ], - [ - "▁view", - "s" - ], - [ - "▁vie", - "ws" - ], - [ - "▁", - "views" - ], - [ - "la", - "y" - ], - [ - "l", - "ay" - ], - [ - "▁s", - "urr" - ], - [ - "▁su", - "rr" - ], - [ - "▁sur", - "r" - ], - [ - "▁st", - "ood" - ], - [ - "▁sto", - "od" - ], - [ - "▁", - "stood" - ], - [ - "▁в", - "і" - ], - [ - "▁", - "ві" - ], - [ - "select", - "ed" - ], - [ - "sel", - "ected" - ], - [ - "г", - "і" - ], - [ - "▁att", - "ributes" - ], - [ - "▁attribute", - "s" - ], - [ - "▁", - "attributes" - ], - [ - "fin", - "al" - ], - [ - "fi", - "nal" - ], - [ - "f", - "inal" - ], - [ - "en", - "da" - ], - [ - "end", - "a" - ], - [ - "▁B", - "on" - ], - [ - "▁Bo", - "n" - ], - [ - "ne", - "rs" - ], - [ - "ner", - "s" - ], - [ - "n", - "ers" - ], - [ - "▁W", - "er" - ], - [ - "▁We", - "r" - ], - [ - "bu", - "r" - ], - [ - "b", - "ur" - ], - [ - "it", - "tel" - ], - [ - "itt", - "el" - ], - [ - "itte", - "l" - ], - [ - "▁m", - "oving" - ], - [ - "▁mov", - "ing" - ], - [ - "▁mo", - "ving" - ], - [ - "▁P", - "lan" - ], - [ - "▁Pl", - "an" - ], - [ - "▁Pla", - "n" - ], - [ - "▁", - "Plan" - ], - [ - "is", - "ches" - ], - [ - "isch", - "es" - ], - [ - "ische", - "s" - ], - [ - "isc", - "hes" - ], - [ - "J", - "ava" - ], - [ - "▁b", - "asis" - ], - [ - "▁bas", - "is" - ], - [ - "▁B", - "us" - ], - [ - "▁Bu", - "s" - ], - [ - "▁", - "Bus" - ], - [ - "▁A", - "u" - ], - [ - "▁I", - "ll" - ], - [ - "▁Il", - "l" - ], - [ - "▁", - "Ill" - ], - [ - "▁вре", - "мя" - ], - [ - "▁ц", - "ент" - ], - [ - "▁", - "цент" - ], - [ - "hand", - "le" - ], - [ - "сту", - "п" - ], - [ - "▁F", - "ar" - ], - [ - "▁Fa", - "r" - ], - [ - "▁o", - "raz" - ], - [ - "▁or", - "az" - ], - [ - "▁ora", - "z" - ], - [ - "oc", - "r" - ], - [ - "o", - "cr" - ], - [ - "▁se", - "it" - ], - [ - "▁sei", - "t" - ], - [ - "on", - "der" - ], - [ - "ond", - "er" - ], - [ - "onde", - "r" - ], - [ - "o", - "nder" - ], - [ - "до", - "м" - ], - [ - "д", - "ом" - ], - [ - ":", - "/" - ], - [ - "ch", - "or" - ], - [ - "cho", - "r" - ], - [ - "c", - "hor" - ], - [ - "▁T", - "own" - ], - [ - "▁To", - "wn" - ], - [ - "▁Tow", - "n" - ], - [ - "▁def", - "init" - ], - [ - "▁defin", - "it" - ], - [ - "re", - "act" - ], - [ - "rea", - "ct" - ], - [ - "▁pie", - "ce" - ], - [ - "▁Kar", - "l" - ], - [ - "▁Ka", - "rl" - ], - [ - "C", - "I" - ], - [ - "▁App", - "lication" - ], - [ - "▁", - "Application" - ], - [ - "un", - "ter" - ], - [ - "unt", - "er" - ], - [ - "unte", - "r" - ], - [ - "▁for", - "med" - ], - [ - "▁form", - "ed" - ], - [ - "▁forme", - "d" - ], - [ - "▁", - "formed" - ], - [ - "▁п", - "у" - ], - [ - "▁", - "пу" - ], - [ - "B", - "o" - ], - [ - "▁Dan", - "iel" - ], - [ - "▁", - "Daniel" - ], - [ - "▁п", - "ла" - ], - [ - "▁", - "пла" - ], - [ - "Bo", - "dy" - ], - [ - "B", - "ody" - ], - [ - "})", - "$" - ], - [ - "}", - ")$" - ], - [ - "▁бы", - "ли" - ], - [ - "▁был", - "и" - ], - [ - "▁e", - "arth" - ], - [ - "▁ear", - "th" - ], - [ - "г", - "ла" - ], - [ - "Th", - "ere" - ], - [ - "The", - "re" - ], - [ - "T", - "here" - ], - [ - "▁с", - "тра" - ], - [ - "▁ст", - "ра" - ], - [ - "▁", - "стра" - ], - [ - "▁v", - "ille" - ], - [ - "▁vi", - "lle" - ], - [ - "▁vill", - "e" - ], - [ - "▁vil", - "le" - ], - [ - "▁", - "ville" - ], - [ - "▁c", - "entre" - ], - [ - "▁cent", - "re" - ], - [ - ")", - "\r" - ], - [ - "▁help", - "ful" - ], - [ - "▁+", - "+" - ], - [ - "▁", - "++" - ], - [ - "▁C", - "G" - ], - [ - "▁", - "CG" - ], - [ - "iz", - "ione" - ], - [ - "izi", - "one" - ], - [ - "izio", - "ne" - ], - [ - "i", - "zione" - ], - [ - "▁G", - "ame" - ], - [ - "▁Ga", - "me" - ], - [ - "▁Gam", - "e" - ], - [ - "▁", - "Game" - ], - [ - "▁Wh", - "ich" - ], - [ - "▁p", - "ip" - ], - [ - "▁pi", - "p" - ], - [ - "▁", - "pip" - ], - [ - "▁Port", - "ug" - ], - [ - "D", - "S" - ], - [ - "▁de", - "scribe" - ], - [ - "▁des", - "cribe" - ], - [ - "▁descri", - "be" - ], - [ - "▁check", - "ing" - ], - [ - "▁man", - "ager" - ], - [ - "▁manage", - "r" - ], - [ - "▁", - "manager" - ], - [ - "B", - "O" - ], - [ - "▁B", - "undes" - ], - [ - "▁Bund", - "es" - ], - [ - "▁Bun", - "des" - ], - [ - "bu", - "ch" - ], - [ - "b", - "uch" - ], - [ - "▁dec", - "ided" - ], - [ - "▁decide", - "d" - ], - [ - "▁decid", - "ed" - ], - [ - "▁Jahrh", - "undert" - ], - [ - "▁f", - "if" - ], - [ - "▁fi", - "f" - ], - [ - "▁", - "fif" - ], - [ - "e", - "fficient" - ], - [ - "an", - "ci" - ], - [ - "anc", - "i" - ], - [ - "br", - "aries" - ], - [ - "bra", - "ries" - ], - [ - "▁f", - "ails" - ], - [ - "▁fa", - "ils" - ], - [ - "▁fail", - "s" - ], - [ - "▁k", - "ernel" - ], - [ - "▁ker", - "nel" - ], - [ - "▁", - "kernel" - ], - [ - "▁G", - "l" - ], - [ - "▁N", - "acional" - ], - [ - "▁pro", - "ceed" - ], - [ - "▁proc", - "eed" - ], - [ - "▁f", - "uer" - ], - [ - "▁fue", - "r" - ], - [ - "▁fu", - "er" - ], - [ - "▁l", - "iving" - ], - [ - "▁li", - "ving" - ], - [ - "▁liv", - "ing" - ], - [ - "▁success", - "fully" - ], - [ - "▁successful", - "ly" - ], - [ - "▁f", - "aster" - ], - [ - "▁fa", - "ster" - ], - [ - "▁fast", - "er" - ], - [ - "▁fas", - "ter" - ], - [ - "▁con", - "tre" - ], - [ - "▁cont", - "re" - ], - [ - "▁contr", - "e" - ], - [ - "▁", - "contre" - ], - [ - "▁pr", - "ison" - ], - [ - "▁pri", - "son" - ], - [ - "▁pris", - "on" - ], - [ - "OR", - "T" - ], - [ - "O", - "RT" - ], - [ - "he", - "lp" - ], - [ - "hel", - "p" - ], - [ - "▁a", - "utor" - ], - [ - "▁au", - "tor" - ], - [ - "▁aut", - "or" - ], - [ - "▁auto", - "r" - ], - [ - "▁", - "autor" - ], - [ - "ła", - "w" - ], - [ - "ł", - "aw" - ], - [ - "aj", - "ą" - ], - [ - "a", - "ją" - ], - [ - "▁A", - "rm" - ], - [ - "▁Ar", - "m" - ], - [ - "▁", - "Arm" - ], - [ - "▁pro", - "vin" - ], - [ - "▁prov", - "in" - ], - [ - "▁na", - "am" - ], - [ - "/", - "#" - ], - [ - "se", - "d" - ], - [ - "s", - "ed" - ], - [ - "▁g", - "esch" - ], - [ - "▁ge", - "sch" - ], - [ - "▁ges", - "ch" - ], - [ - "▁", - "gesch" - ], - [ - "▁м", - "ар" - ], - [ - "▁ма", - "р" - ], - [ - "▁", - "мар" - ], - [ - "es", - "k" - ], - [ - "e", - "sk" - ], - [ - "ter", - "m" - ], - [ - "te", - "rm" - ], - [ - "t", - "erm" - ], - [ - "▁T", - "ex" - ], - [ - "▁Te", - "x" - ], - [ - "▁", - "Tex" - ], - [ - "ir", - "ing" - ], - [ - "iri", - "ng" - ], - [ - "i", - "ring" - ], - [ - "▁t", - "ools" - ], - [ - "▁to", - "ols" - ], - [ - "▁too", - "ls" - ], - [ - "▁tool", - "s" - ], - [ - "▁", - "tools" - ], - [ - "PD", - "F" - ], - [ - "P", - "DF" - ], - [ - "▁u", - "lt" - ], - [ - "▁ul", - "t" - ], - [ - "▁", - "ult" - ], - [ - "iss", - "enschaft" - ], - [ - "issen", - "schaft" - ], - [ - "▁could", - "n" - ], - [ - "di", - "ng" - ], - [ - "din", - "g" - ], - [ - "d", - "ing" - ], - [ - "De", - "p" - ], - [ - "D", - "ep" - ], - [ - "{", - "-" - ], - [ - "▁pre", - "dict" - ], - [ - "▁pred", - "ict" - ], - [ - "▁", - "predict" - ], - [ - "ant", - "age" - ], - [ - "anta", - "ge" - ], - [ - "▁L", - "ike" - ], - [ - "▁Li", - "ke" - ], - [ - "▁", - "Like" - ], - [ - "▁Б", - "и" - ], - [ - "to", - "ols" - ], - [ - "tool", - "s" - ], - [ - "t", - "ools" - ], - [ - "es", - "tra" - ], - [ - "est", - "ra" - ], - [ - "estr", - "a" - ], - [ - "e", - "stra" - ], - [ - "▁k", - "i" - ], - [ - "▁", - "ki" - ], - [ - "▁J", - "im" - ], - [ - "▁Ji", - "m" - ], - [ - "st", - "ar" - ], - [ - "sta", - "r" - ], - [ - "s", - "tar" - ], - [ - "▁re", - "mark" - ], - [ - "▁r", - "emark" - ], - [ - "▁rem", - "ark" - ], - [ - "▁", - "remark" - ], - [ - "ó", - "g" - ], - [ - "na", - "bla" - ], - [ - "nab", - "la" - ], - [ - "▁Al", - "though" - ], - [ - "mod", - "e" - ], - [ - "mo", - "de" - ], - [ - "m", - "ode" - ], - [ - "H", - "ost" - ], - [ - "▁st", - "range" - ], - [ - "▁str", - "ange" - ], - [ - "▁stran", - "ge" - ], - [ - "No", - "ne" - ], - [ - "Non", - "e" - ], - [ - "N", - "one" - ], - [ - "bl", - "ack" - ], - [ - "bla", - "ck" - ], - [ - "b", - "lack" - ], - [ - "▁F", - "estival" - ], - [ - "▁Fest", - "ival" - ], - [ - "▁I", - "S" - ], - [ - "▁", - "IS" - ], - [ - "an", - "za" - ], - [ - "anz", - "a" - ], - [ - "▁(", - "-" - ], - [ - "▁", - "(-" - ], - [ - "ic", - "ket" - ], - [ - "ick", - "et" - ], - [ - "i", - "cket" - ], - [ - "ко", - "ла" - ], - [ - "кол", - "а" - ], - [ - "▁J", - "es" - ], - [ - "▁Je", - "s" - ], - [ - "▁f", - "lex" - ], - [ - "▁fl", - "ex" - ], - [ - "▁fle", - "x" - ], - [ - "▁", - "flex" - ], - [ - "▁", - "À" - ], - [ - "▁N", - "etwork" - ], - [ - "▁Net", - "work" - ], - [ - "▁", - "Network" - ], - [ - "▁E", - "X" - ], - [ - "▁", - "EX" - ], - [ - "▁e", - "nero" - ], - [ - "▁en", - "ero" - ], - [ - "▁ener", - "o" - ], - [ - "!", - "”" - ], - [ - "▁O", - "rt" - ], - [ - "▁Or", - "t" - ], - [ - "▁al", - "ors" - ], - [ - "▁Or", - "iginal" - ], - [ - "▁Origin", - "al" - ], - [ - "▁Orig", - "inal" - ], - [ - "▁", - "Original" - ], - [ - "▁z", - "o" - ], - [ - "▁", - "zo" - ], - [ - "ны", - "ми" - ], - [ - "ным", - "и" - ], - [ - "▁s", - "pl" - ], - [ - "▁sp", - "l" - ], - [ - "▁", - "spl" - ], - [ - "Dra", - "w" - ], - [ - "Dr", - "aw" - ], - [ - "D", - "raw" - ], - [ - "yo", - "nd" - ], - [ - "y", - "ond" - ], - [ - "─", - "─" - ], - [ - "▁O", - "t" - ], - [ - "▁d", - "ram" - ], - [ - "▁dr", - "am" - ], - [ - "▁dra", - "m" - ], - [ - "▁di", - "vision" - ], - [ - "▁div", - "ision" - ], - [ - "▁divis", - "ion" - ], - [ - "▁e", - "fficient" - ], - [ - "▁effic", - "ient" - ], - [ - "▁", - "efficient" - ], - [ - "▁Г", - "а" - ], - [ - "▁v", - "ier" - ], - [ - "▁vi", - "er" - ], - [ - "▁vie", - "r" - ], - [ - "▁", - "vier" - ], - [ - "na", - "k" - ], - [ - "n", - "ak" - ], - [ - "L", - "S" - ], - [ - "▁sp", - "irit" - ], - [ - "▁spir", - "it" - ], - [ - "zeich", - "net" - ], - [ - "▁d", - "ici" - ], - [ - "▁di", - "ci" - ], - [ - "▁dic", - "i" - ], - [ - "cl", - "ear" - ], - [ - "cle", - "ar" - ], - [ - "c", - "lear" - ], - [ - "co", - "py" - ], - [ - "cop", - "y" - ], - [ - "c", - "opy" - ], - [ - "ya", - "r" - ], - [ - "y", - "ar" - ], - [ - "▁ро", - "ці" - ], - [ - "us", - "qu" - ], - [ - "u", - "squ" - ], - [ - "▁n", - "ous" - ], - [ - "▁no", - "us" - ], - [ - "▁nou", - "s" - ], - [ - "▁b", - "lev" - ], - [ - "▁bl", - "ev" - ], - [ - "▁ble", - "v" - ], - [ - "ж", - "де" - ], - [ - "Ar", - "g" - ], - [ - "A", - "rg" - ], - [ - "▁per", - "formed" - ], - [ - "▁perform", - "ed" - ], - [ - "▁M", - "ake" - ], - [ - "▁Ma", - "ke" - ], - [ - "▁Mak", - "e" - ], - [ - "▁", - "Make" - ], - [ - "▁Car", - "ol" - ], - [ - "▁Ca", - "rol" - ], - [ - "et", - "to" - ], - [ - "ett", - "o" - ], - [ - "e", - "tto" - ], - [ - "▁S", - "and" - ], - [ - "▁San", - "d" - ], - [ - "▁Sa", - "nd" - ], - [ - "▁D", - "isc" - ], - [ - "▁Dis", - "c" - ], - [ - "▁Di", - "sc" - ], - [ - "En", - "c" - ], - [ - "E", - "nc" - ], - [ - "re", - "ro" - ], - [ - "rer", - "o" - ], - [ - "r", - "ero" - ], - [ - "ha", - "sh" - ], - [ - "has", - "h" - ], - [ - "h", - "ash" - ], - [ - "▁f", - "ocus" - ], - [ - "▁fo", - "cus" - ], - [ - "▁foc", - "us" - ], - [ - "▁", - "focus" - ], - [ - "▁att", - "ention" - ], - [ - "▁a", - "gre" - ], - [ - "▁ag", - "re" - ], - [ - "▁agr", - "e" - ], - [ - "▁di", - "vis" - ], - [ - "▁div", - "is" - ], - [ - "▁бы", - "ло" - ], - [ - "▁был", - "о" - ], - [ - "▁e", - "j" - ], - [ - "▁", - "ej" - ], - [ - "▁m", - "arch" - ], - [ - "▁mar", - "ch" - ], - [ - "▁marc", - "h" - ], - [ - "▁ph", - "ase" - ], - [ - "▁", - "phase" - ], - [ - "ía", - "s" - ], - [ - "í", - "as" - ], - [ - "▁ph", - "il" - ], - [ - "▁P", - "ap" - ], - [ - "▁Pa", - "p" - ], - [ - "▁r", - "iver" - ], - [ - "▁riv", - "er" - ], - [ - "▁ri", - "ver" - ], - [ - "▁", - "river" - ], - [ - "▁c", - "aused" - ], - [ - "▁caus", - "ed" - ], - [ - "▁cause", - "d" - ], - [ - "▁ca", - "used" - ], - [ - "pl", - "ugin" - ], - [ - "▁Te", - "am" - ], - [ - "▁", - "Team" - ], - [ - "ul", - "er" - ], - [ - "ule", - "r" - ], - [ - "u", - "ler" - ], - [ - "▁$", - "(\"#" - ], - [ - "▁$(\"", - "#" - ], - [ - "ie", - "j" - ], - [ - "i", - "ej" - ], - [ - "I", - "SBN" - ], - [ - "na", - "m" - ], - [ - "n", - "am" - ], - [ - "▁f", - "ight" - ], - [ - "▁fig", - "ht" - ], - [ - "vi", - "d" - ], - [ - "v", - "id" - ], - [ - "▁L", - "ud" - ], - [ - "▁Lu", - "d" - ], - [ - "Select", - "ed" - ], - [ - ":@", - "\"" - ], - [ - ":", - "@\"" - ], - [ - "▁P", - "od" - ], - [ - "▁Po", - "d" - ], - [ - "▁", - "Pod" - ], - [ - "▁ann", - "ées" - ], - [ - "▁année", - "s" - ], - [ - "ar", - "ios" - ], - [ - "ari", - "os" - ], - [ - "ario", - "s" - ], - [ - "a", - "rios" - ], - [ - "▁deutsch", - "er" - ], - [ - "▁deutsche", - "r" - ], - [ - "▁N", - "A" - ], - [ - "▁", - "NA" - ], - [ - "▁и", - "ю" - ], - [ - "▁d", - "ictionary" - ], - [ - "▁diction", - "ary" - ], - [ - "▁", - "dictionary" - ], - [ - "▁Л", - "а" - ], - [ - "▁T", - "ri" - ], - [ - "▁Tr", - "i" - ], - [ - "▁", - "Tri" - ], - [ - "è", - "n" - ], - [ - "▁polit", - "ical" - ], - [ - "rid", - "ge" - ], - [ - "r", - "idge" - ], - [ - "at", - "ten" - ], - [ - "att", - "en" - ], - [ - "atte", - "n" - ], - [ - "▁circ", - "le" - ], - [ - "▁cir", - "cle" - ], - [ - "▁", - "circle" - ], - [ - "▁trans", - "port" - ], - [ - "▁", - "transport" - ], - [ - "em", - "as" - ], - [ - "ema", - "s" - ], - [ - "e", - "mas" - ], - [ - "F", - "C" - ], - [ - "▁replace", - "d" - ], - [ - "▁repla", - "ced" - ], - [ - "▁A", - "ud" - ], - [ - "▁Au", - "d" - ], - [ - "is", - "ka" - ], - [ - "isk", - "a" - ], - [ - "i", - "ska" - ], - [ - "Config", - "uration" - ], - [ - "▁so", - "ort" - ], - [ - "▁Н", - "е" - ], - [ - "▁s", - "equ" - ], - [ - "▁se", - "qu" - ], - [ - "▁seq", - "u" - ], - [ - "▁", - "sequ" - ], - [ - "PR", - "O" - ], - [ - "P", - "RO" - ], - [ - "▁b", - "ud" - ], - [ - "▁bu", - "d" - ], - [ - "▁", - "bud" - ], - [ - "▁{", - "{" - ], - [ - "▁", - "{{" - ], - [ - "lie", - "ß" - ], - [ - "l", - "ieß" - ], - [ - "▁M", - "as" - ], - [ - "▁Ma", - "s" - ], - [ - "de", - "rs" - ], - [ - "der", - "s" - ], - [ - "d", - "ers" - ], - [ - "us", - "ammen" - ], - [ - "es", - "a" - ], - [ - "e", - "sa" - ], - [ - "▁L", - "y" - ], - [ - "в", - "ро" - ], - [ - "ma", - "c" - ], - [ - "m", - "ac" - ], - [ - "▁и", - "спо" - ], - [ - "▁ис", - "по" - ], - [ - "▁s", - "uc" - ], - [ - "▁su", - "c" - ], - [ - "u", - "y" - ], - [ - "▁ill", - "ustr" - ], - [ - "▁prim", - "era" - ], - [ - "▁prime", - "ra" - ], - [ - "▁primer", - "a" - ], - [ - "il", - "ation" - ], - [ - "ila", - "tion" - ], - [ - "i", - "lation" - ], - [ - "▁st", - "orage" - ], - [ - "▁stor", - "age" - ], - [ - "▁sto", - "rage" - ], - [ - "▁", - "storage" - ], - [ - "▁par", - "ams" - ], - [ - "▁para", - "ms" - ], - [ - "▁param", - "s" - ], - [ - "▁pa", - "rams" - ], - [ - "▁", - "params" - ], - [ - "ka", - "z" - ], - [ - "k", - "az" - ], - [ - "▁term", - "inal" - ], - [ - "▁termin", - "al" - ], - [ - "ра", - "ль" - ], - [ - "рал", - "ь" - ], - [ - "р", - "аль" - ], - [ - "▁h", - "olds" - ], - [ - "▁hold", - "s" - ], - [ - "▁hol", - "ds" - ], - [ - "▁", - "holds" - ], - [ - "ло", - "сь" - ], - [ - "▁n", - "ad" - ], - [ - "▁na", - "d" - ], - [ - "▁", - "nad" - ], - [ - "”", - "." - ], - [ - "▁oct", - "ubre" - ], - [ - "bu", - "l" - ], - [ - "b", - "ul" - ], - [ - "▁h", - "us" - ], - [ - "▁hu", - "s" - ], - [ - "▁", - "hus" - ], - [ - "UL", - "T" - ], - [ - "U", - "LT" - ], - [ - "▁ég", - "alement" - ], - [ - "▁M", - "ill" - ], - [ - "▁Mil", - "l" - ], - [ - "▁Mi", - "ll" - ], - [ - "▁", - "Mill" - ], - [ - "ła", - "d" - ], - [ - "ł", - "ad" - ], - [ - "▁cont", - "iene" - ], - [ - "\"", - "?" - ], - [ - "▁>", - ">>" - ], - [ - "▁>>", - ">" - ], - [ - "Qu", - "e" - ], - [ - "Q", - "ue" - ], - [ - " ", - " " - ], - [ - "▁p", - "lain" - ], - [ - "▁pl", - "ain" - ], - [ - "▁pla", - "in" - ], - [ - "▁", - "plain" - ], - [ - "at", - "iva" - ], - [ - "ativ", - "a" - ], - [ - "ati", - "va" - ], - [ - "oc", - "ker" - ], - [ - "ock", - "er" - ], - [ - "o", - "cker" - ], - [ - "Name", - "s" - ], - [ - "Na", - "mes" - ], - [ - "N", - "ames" - ], - [ - "▁J", - "ud" - ], - [ - "▁Ju", - "d" - ], - [ - "▁ag", - "ree" - ], - [ - "▁agre", - "e" - ], - [ - "▁agr", - "ee" - ], - [ - "▁G", - "emeinde" - ], - [ - "▁Geme", - "inde" - ], - [ - "la", - "re" - ], - [ - "lar", - "e" - ], - [ - "l", - "are" - ], - [ - "ка", - "за" - ], - [ - "каз", - "а" - ], - [ - "▁st", - "arts" - ], - [ - "▁start", - "s" - ], - [ - "▁star", - "ts" - ], - [ - "▁", - "starts" - ], - [ - "▁p", - "rice" - ], - [ - "▁pr", - "ice" - ], - [ - "▁pri", - "ce" - ], - [ - "▁", - "price" - ], - [ - "T", - "arget" - ], - [ - "cu", - "s" - ], - [ - "c", - "us" - ], - [ - "▁Inst", - "ead" - ], - [ - ".", - ";" - ], - [ - "▁altern", - "ative" - ], - [ - "▁alter", - "native" - ], - [ - "▁в", - "ла" - ], - [ - "I", - "E" - ], - [ - "▁organ", - "iz" - ], - [ - "in", - "u" - ], - [ - "i", - "nu" - ], - [ - "▁comp", - "leted" - ], - [ - "▁comple", - "ted" - ], - [ - "▁complet", - "ed" - ], - [ - "▁complete", - "d" - ], - [ - "▁car", - "ry" - ], - [ - "at", - "om" - ], - [ - "ato", - "m" - ], - [ - "a", - "tom" - ], - [ - "▁dep", - "ending" - ], - [ - "▁depend", - "ing" - ], - [ - "▁O", - "ur" - ], - [ - "▁in", - "sp" - ], - [ - "▁ins", - "p" - ], - [ - "▁&", - "\\" - ], - [ - "▁", - "&\\" - ], - [ - "ail", - "y" - ], - [ - "ai", - "ly" - ], - [ - "a", - "ily" - ], - [ - "ir", - "ection" - ], - [ - "ire", - "ction" - ], - [ - "irect", - "ion" - ], - [ - "ф", - "а" - ], - [ - "▁d", - "efe" - ], - [ - "▁de", - "fe" - ], - [ - "▁def", - "e" - ], - [ - "TA", - "C" - ], - [ - "T", - "AC" - ], - [ - "▁de", - "signed" - ], - [ - "▁des", - "igned" - ], - [ - "▁design", - "ed" - ], - [ - "▁v", - "oir" - ], - [ - "▁vo", - "ir" - ], - [ - "▁", - "voir" - ], - [ - "bre", - "ak" - ], - [ - "▁part", - "ie" - ], - [ - "▁parti", - "e" - ], - [ - "▁J", - "ahren" - ], - [ - "▁Jah", - "ren" - ], - [ - "▁Jahr", - "en" - ], - [ - "▁Jahre", - "n" - ], - [ - "▁Ja", - "hren" - ], - [ - "▁st", - "udio" - ], - [ - "▁stud", - "io" - ], - [ - "▁studi", - "o" - ], - [ - "▁", - "studio" - ], - [ - "▁j", - "our" - ], - [ - "▁jo", - "ur" - ], - [ - "▁jou", - "r" - ], - [ - "▁N", - "otes" - ], - [ - "▁No", - "tes" - ], - [ - "▁Not", - "es" - ], - [ - "▁Note", - "s" - ], - [ - "fi", - "re" - ], - [ - "fir", - "e" - ], - [ - "f", - "ire" - ], - [ - "ho", - "use" - ], - [ - "hou", - "se" - ], - [ - "h", - "ouse" - ], - [ - "su", - "ccess" - ], - [ - "▁J", - "uan" - ], - [ - "▁Ju", - "an" - ], - [ - "J", - "S" - ], - [ - "▁C", - "ustom" - ], - [ - "▁", - "Custom" - ], - [ - "▁b", - "esch" - ], - [ - "▁be", - "sch" - ], - [ - "▁bes", - "ch" - ], - [ - "▁st", - "ated" - ], - [ - "▁stat", - "ed" - ], - [ - "▁state", - "d" - ], - [ - "▁sta", - "ted" - ], - [ - "boot", - "strap" - ], - [ - "öt", - "t" - ], - [ - "ö", - "tt" - ], - [ - "oz", - "zá" - ], - [ - "▁C", - "ON" - ], - [ - "▁CO", - "N" - ], - [ - "▁", - "CON" - ], - [ - "ha", - "v" - ], - [ - "h", - "av" - ], - [ - "▁s", - "leep" - ], - [ - "▁sle", - "ep" - ], - [ - "▁", - "sleep" - ], - [ - "ed", - "a" - ], - [ - "e", - "da" - ], - [ - "ho", - "t" - ], - [ - "h", - "ot" - ], - [ - "án", - "d" - ], - [ - "á", - "nd" - ], - [ - "▁S", - "y" - ], - [ - "▁tem", - "ps" - ], - [ - "▁temp", - "s" - ], - [ - "▁", - "temps" - ], - [ - "am", - "ar" - ], - [ - "ama", - "r" - ], - [ - "a", - "mar" - ], - [ - "▁s", - "cal" - ], - [ - "▁sc", - "al" - ], - [ - "▁", - "scal" - ], - [ - "▁a", - "st" - ], - [ - "▁as", - "t" - ], - [ - "▁", - "ast" - ], - [ - "▁op", - "ening" - ], - [ - "▁open", - "ing" - ], - [ - "cli", - "pse" - ], - [ - "clip", - "se" - ], - [ - "c", - "lipse" - ], - [ - "▁program", - "ming" - ], - [ - "▁", - "programming" - ], - [ - "▁let", - "ters" - ], - [ - "▁letter", - "s" - ], - [ - "▁lett", - "ers" - ], - [ - "▁pro", - "file" - ], - [ - "▁prof", - "ile" - ], - [ - "▁profil", - "e" - ], - [ - "▁", - "profile" - ], - [ - "na", - "h" - ], - [ - "n", - "ah" - ], - [ - "▁be", - "yond" - ], - [ - "▁Fur", - "ther" - ], - [ - "face", - "s" - ], - [ - "fa", - "ces" - ], - [ - "fac", - "es" - ], - [ - "f", - "aces" - ], - [ - "▁c", - "hart" - ], - [ - "▁ch", - "art" - ], - [ - "▁char", - "t" - ], - [ - "▁cha", - "rt" - ], - [ - "▁", - "chart" - ], - [ - "зд", - "а" - ], - [ - "з", - "да" - ], - [ - "ai", - "gn" - ], - [ - "a", - "ign" - ], - [ - "ні", - "й" - ], - [ - "н", - "ій" - ], - [ - "▁R", - "ol" - ], - [ - "▁Ro", - "l" - ], - [ - "ова", - "но" - ], - [ - "ован", - "о" - ], - [ - "ter", - "ior" - ], - [ - "te", - "rior" - ], - [ - "we", - "d" - ], - [ - "w", - "ed" - ], - [ - "▁her", - "self" - ], - [ - "▁hers", - "elf" - ], - [ - "▁n", - "g" - ], - [ - "▁", - "ng" - ], - [ - "angu", - "ages" - ], - [ - "anguage", - "s" - ], - [ - "}=", - "\\" - ], - [ - "}", - "=\\" - ], - [ - "ynam", - "ic" - ], - [ - "yna", - "mic" - ], - [ - "▁j", - "ug" - ], - [ - "▁ju", - "g" - ], - [ - "▁Ex", - "ample" - ], - [ - "▁", - "Example" - ], - [ - "▁(", - "†" - ], - [ - "▁play", - "ing" - ], - [ - "▁pla", - "ying" - ], - [ - "▁us", - "age" - ], - [ - "▁", - "usage" - ], - [ - "▁man", - "aged" - ], - [ - "▁manage", - "d" - ], - [ - "▁", - "managed" - ], - [ - "▁N", - "atur" - ], - [ - "▁Nat", - "ur" - ], - [ - "те", - "ри" - ], - [ - "тер", - "и" - ], - [ - "▁E", - "t" - ], - [ - "er", - "ia" - ], - [ - "eri", - "a" - ], - [ - "e", - "ria" - ], - [ - "▁daugh", - "ter" - ], - [ - "ни", - "ем" - ], - [ - "ние", - "м" - ], - [ - "F", - "ragment" - ], - [ - "▁h", - "ol" - ], - [ - "▁ho", - "l" - ], - [ - "▁", - "hol" - ], - [ - "F", - "l" - ], - [ - "огра", - "фи" - ], - [ - "ограф", - "и" - ], - [ - "о", - "графи" - ], - [ - "▁i", - "hn" - ], - [ - "▁ih", - "n" - ], - [ - "ü", - "h" - ], - [ - "inst", - "ance" - ], - [ - "▁com", - "un" - ], - [ - "▁co", - "mun" - ], - [ - "▁tr", - "uth" - ], - [ - "▁са", - "мо" - ], - [ - "▁сам", - "о" - ], - [ - "▁implement", - "ed" - ], - [ - "▁any", - "way" - ], - [ - "▁C", - "ro" - ], - [ - "▁Cr", - "o" - ], - [ - "ф", - "е" - ], - [ - "G", - "C" - ], - [ - "ub", - "untu" - ], - [ - "u", - "buntu" - ], - [ - "ty", - "pes" - ], - [ - "type", - "s" - ], - [ - "typ", - "es" - ], - [ - "t", - "ypes" - ], - [ - "ê", - "s" - ], - [ - ".~", - "\\" - ], - [ - ".", - "~\\" - ], - [ - "fo", - "ld" - ], - [ - "fol", - "d" - ], - [ - "f", - "old" - ], - [ - "▁jo", - "ined" - ], - [ - "▁join", - "ed" - ], - [ - "?", - "?" - ], - [ - "▁m", - "é" - ], - [ - "▁", - "mé" - ], - [ - "▁w", - "ild" - ], - [ - "▁wil", - "d" - ], - [ - "к", - "лю" - ], - [ - "row", - "ser" - ], - [ - "rows", - "er" - ], - [ - "▁H", - "ome" - ], - [ - "▁Ho", - "me" - ], - [ - "▁Hom", - "e" - ], - [ - "▁", - "Home" - ], - [ - "sk", - "iej" - ], - [ - "ski", - "ej" - ], - [ - "skie", - "j" - ], - [ - "s", - "kiej" - ], - [ - "▁J", - "OIN" - ], - [ - "▁ju", - "in" - ], - [ - "ho", - "f" - ], - [ - "h", - "of" - ], - [ - "▁data", - "set" - ], - [ - "▁dat", - "aset" - ], - [ - "▁datas", - "et" - ], - [ - "▁", - "dataset" - ], - [ - "ж", - "ду" - ], - [ - "')", - ")" - ], - [ - "'", - "))" - ], - [ - "▁mie", - "js" - ], - [ - "AP", - "I" - ], - [ - "A", - "PI" - ], - [ - "▁ed", - "ited" - ], - [ - "▁edit", - "ed" - ], - [ - "ool", - "s" - ], - [ - "oo", - "ls" - ], - [ - "o", - "ols" - ], - [ - "▁se", - "eing" - ], - [ - "▁see", - "ing" - ], - [ - "ij", - "d" - ], - [ - "i", - "jd" - ], - [ - "▁pro", - "cedure" - ], - [ - "▁proced", - "ure" - ], - [ - "▁B", - "ras" - ], - [ - "▁Br", - "as" - ], - [ - "▁Bra", - "s" - ], - [ - "▁s", - "igned" - ], - [ - "▁sign", - "ed" - ], - [ - "▁sig", - "ned" - ], - [ - "▁", - "signed" - ], - [ - "▁extern", - "os" - ], - [ - "▁dis", - "app" - ], - [ - "▁D", - "irect" - ], - [ - "▁Di", - "rect" - ], - [ - "▁Dire", - "ct" - ], - [ - "▁Dir", - "ect" - ], - [ - "▁", - "Direct" - ], - [ - "cy", - "c" - ], - [ - "c", - "yc" - ], - [ - "▁cons", - "ult" - ], - [ - "ör", - "d" - ], - [ - "ö", - "rd" - ], - [ - "W", - "idget" - ], - [ - "ci", - "ous" - ], - [ - "cio", - "us" - ], - [ - "c", - "ious" - ], - [ - "se", - "ct" - ], - [ - "sec", - "t" - ], - [ - "s", - "ect" - ], - [ - "▁Д", - "и" - ], - [ - "▁w", - "ind" - ], - [ - "▁win", - "d" - ], - [ - "▁", - "wind" - ], - [ - "▁Archiv", - "ado" - ], - [ - "am", - "l" - ], - [ - "a", - "ml" - ], - [ - "с", - "с" - ], - [ - "W", - "h" - ], - [ - "kb", - "d" - ], - [ - "k", - "bd" - ], - [ - "▁Ar", - "my" - ], - [ - "▁Arm", - "y" - ], - [ - "▁s", - "uffer" - ], - [ - "▁suf", - "fer" - ], - [ - "▁suff", - "er" - ], - [ - "art", - "ifact" - ], - [ - "▁resol", - "ve" - ], - [ - "▁", - "resolve" - ], - [ - "▁S", - "port" - ], - [ - "▁Sp", - "ort" - ], - [ - "▁Spo", - "rt" - ], - [ - "▁ц", - "е" - ], - [ - "▁", - "це" - ], - [ - "id", - "as" - ], - [ - "ida", - "s" - ], - [ - "i", - "das" - ], - [ - "▁t", - "ax" - ], - [ - "▁ta", - "x" - ], - [ - "▁", - "tax" - ], - [ - "id", - "i" - ], - [ - "i", - "di" - ], - [ - "▁a", - "ctions" - ], - [ - "▁act", - "ions" - ], - [ - "▁action", - "s" - ], - [ - "▁", - "actions" - ], - [ - "пр", - "а" - ], - [ - "п", - "ра" - ], - [ - "pu", - "és" - ], - [ - "p", - "ués" - ], - [ - "▁n", - "aj" - ], - [ - "▁na", - "j" - ], - [ - "F", - "alse" - ], - [ - "▁ch", - "ance" - ], - [ - "▁та", - "ко" - ], - [ - "▁так", - "о" - ], - [ - "ä", - "d" - ], - [ - "▁d", - "ol" - ], - [ - "▁do", - "l" - ], - [ - "▁en", - "v" - ], - [ - "▁", - "env" - ], - [ - "▁bas", - "ically" - ], - [ - "▁basic", - "ally" - ], - [ - "▁Coun", - "cil" - ], - [ - "zt", - "e" - ], - [ - "z", - "te" - ], - [ - "▁display", - "ed" - ], - [ - "ni", - "l" - ], - [ - "n", - "il" - ], - [ - "comp", - "lete" - ], - [ - "comple", - "te" - ], - [ - "▁L", - "em" - ], - [ - "▁Le", - "m" - ], - [ - "ian", - "ce" - ], - [ - "i", - "ance" - ], - [ - "▁ос", - "нов" - ], - [ - "▁de", - "pend" - ], - [ - "▁dep", - "end" - ], - [ - "pl", - "om" - ], - [ - "ens", - "us" - ], - [ - "ut", - "s" - ], - [ - "u", - "ts" - ], - [ - "▁H", - "ot" - ], - [ - "▁Ho", - "t" - ], - [ - "▁", - "Hot" - ], - [ - "bit", - "r" - ], - [ - "bi", - "tr" - ], - [ - "▁valid", - "ation" - ], - [ - "▁", - "validation" - ], - [ - "ab", - "b" - ], - [ - "a", - "bb" - ], - [ - "▁т", - "ре" - ], - [ - "▁", - "тре" - ], - [ - "k", - "m" - ], - [ - "z", - "d" - ], - [ - "ö", - "ff" - ], - [ - "W", - "E" - ], - [ - "▁inter", - "ested" - ], - [ - "▁interest", - "ed" - ], - [ - "▁{", - "\"" - ], - [ - "▁", - "{\"" - ], - [ - "ar", - "o" - ], - [ - "a", - "ro" - ], - [ - "▁cor", - "rel" - ], - [ - "▁corre", - "l" - ], - [ - "▁corr", - "el" - ], - [ - "▁d", - "edic" - ], - [ - "▁de", - "dic" - ], - [ - "▁ded", - "ic" - ], - [ - "▁l", - "ists" - ], - [ - "▁list", - "s" - ], - [ - "▁", - "lists" - ], - [ - "▁Bibli", - "ografia" - ], - [ - "▁ear", - "lier" - ], - [ - "pr", - "ogram" - ], - [ - "pro", - "gram" - ], - [ - "prog", - "ram" - ], - [ - "▁prem", - "ière" - ], - [ - "▁premi", - "ère" - ], - [ - "fr", - "ont" - ], - [ - "f", - "ront" - ], - [ - "T", - "ab" - ], - [ - "ст", - "ву" - ], - [ - "ств", - "у" - ], - [ - "dr", - "op" - ], - [ - "dro", - "p" - ], - [ - "d", - "rop" - ], - [ - "▁f", - "ear" - ], - [ - "▁fe", - "ar" - ], - [ - "▁En", - "laces" - ], - [ - "▁C", - "apt" - ], - [ - "▁Cap", - "t" - ], - [ - "▁Ca", - "pt" - ], - [ - "▁", - "Capt" - ], - [ - "▁real", - "iz" - ], - [ - "▁h", - "al" - ], - [ - "▁ha", - "l" - ], - [ - "▁", - "hal" - ], - [ - "▁inst", - "ances" - ], - [ - "▁instance", - "s" - ], - [ - "▁su", - "sp" - ], - [ - "▁sus", - "p" - ], - [ - "il", - "ling" - ], - [ - "ill", - "ing" - ], - [ - "illi", - "ng" - ], - [ - "%", - ";" - ], - [ - "{", - "}" - ], - [ - "|", - "|" - ], - [ - "▁part", - "ition" - ], - [ - "▁parti", - "tion" - ], - [ - "▁", - "partition" - ], - [ - "▁Bu", - "ild" - ], - [ - "▁", - "Build" - ], - [ - "▁w", - "o" - ], - [ - "▁", - "wo" - ], - [ - "▁П", - "ер" - ], - [ - "▁Пе", - "р" - ], - [ - "▁direct", - "or" - ], - [ - "▁dire", - "ctor" - ], - [ - "▁dir", - "ector" - ], - [ - "▁S", - "in" - ], - [ - "▁Si", - "n" - ], - [ - "ти", - "я" - ], - [ - "rs", - "g" - ], - [ - "r", - "sg" - ], - [ - "ou", - "ver" - ], - [ - "ouv", - "er" - ], - [ - "ouve", - "r" - ], - [ - "▁near", - "ly" - ], - [ - "od", - "a" - ], - [ - "o", - "da" - ], - [ - "кти", - "в" - ], - [ - "к", - "тив" - ], - [ - "▁s", - "ir" - ], - [ - "▁si", - "r" - ], - [ - "IM", - "E" - ], - [ - "I", - "ME" - ], - [ - "▁jan", - "vier" - ], - [ - "▁W", - "in" - ], - [ - "▁Wi", - "n" - ], - [ - "▁", - "Win" - ], - [ - "Bu", - "ild" - ], - [ - "ie", - "urs" - ], - [ - "ieu", - "rs" - ], - [ - "ieur", - "s" - ], - [ - "i", - "eurs" - ], - [ - "IN", - "E" - ], - [ - "I", - "NE" - ], - [ - "d", - "ouble" - ], - [ - "La", - "st" - ], - [ - "L", - "ast" - ], - [ - "▁pol", - "icy" - ], - [ - "▁polic", - "y" - ], - [ - "▁", - "policy" - ], - [ - "st", - "ore" - ], - [ - "sto", - "re" - ], - [ - "stor", - "e" - ], - [ - "▁obser", - "ved" - ], - [ - "▁observ", - "ed" - ], - [ - "▁observe", - "d" - ], - [ - "▁obs", - "erved" - ], - [ - "▁famil", - "ie" - ], - [ - "ni", - "ca" - ], - [ - "nic", - "a" - ], - [ - "n", - "ica" - ], - [ - "re", - "y" - ], - [ - "r", - "ey" - ], - [ - "з", - "ь" - ], - [ - "▁Y", - "ear" - ], - [ - "▁Ye", - "ar" - ], - [ - "▁", - "Year" - ], - [ - "▁develop", - "ed" - ], - [ - "▁deve", - "loped" - ], - [ - "▁Inst", - "itute" - ], - [ - "▁Instit", - "ute" - ], - [ - "▁Institut", - "e" - ], - [ - "▁re", - "ply" - ], - [ - "▁rep", - "ly" - ], - [ - "Com", - "ple" - ], - [ - "Comp", - "le" - ], - [ - "ic", - "ian" - ], - [ - "ici", - "an" - ], - [ - "icia", - "n" - ], - [ - "i", - "cian" - ], - [ - "▁G", - "uer" - ], - [ - "▁Gu", - "er" - ], - [ - "▁d", - "all" - ], - [ - "▁da", - "ll" - ], - [ - "▁dal", - "l" - ], - [ - "▁d", - "esp" - ], - [ - "▁de", - "sp" - ], - [ - "▁des", - "p" - ], - [ - "▁Foot", - "ball" - ], - [ - "Em", - "pty" - ], - [ - "Emp", - "ty" - ], - [ - "ck", - "en" - ], - [ - "cke", - "n" - ], - [ - "c", - "ken" - ], - [ - "un", - "da" - ], - [ - "und", - "a" - ], - [ - "▁U", - "r" - ], - [ - "▁i", - "g" - ], - [ - "▁", - "ig" - ], - [ - "▁A", - "tl" - ], - [ - "▁At", - "l" - ], - [ - "aut", - "hor" - ], - [ - "auth", - "or" - ], - [ - "▁B", - "ol" - ], - [ - "▁Bo", - "l" - ], - [ - "zi", - "g" - ], - [ - "z", - "ig" - ], - [ - "na", - "t" - ], - [ - "n", - "at" - ], - [ - "š", - "t" - ], - [ - "se", - "curity" - ], - [ - "sec", - "urity" - ], - [ - "on", - "ic" - ], - [ - "oni", - "c" - ], - [ - "o", - "nic" - ], - [ - "▁p", - "es" - ], - [ - "▁pe", - "s" - ], - [ - "▁", - "pes" - ], - [ - "it", - "an" - ], - [ - "ita", - "n" - ], - [ - "i", - "tan" - ], - [ - "▁Ex", - "tern" - ], - [ - "▁Ext", - "ern" - ], - [ - "ja", - "n" - ], - [ - "j", - "an" - ], - [ - "VA", - "L" - ], - [ - "V", - "AL" - ], - [ - "▁и", - "м" - ], - [ - "▁", - "им" - ], - [ - "bo", - "ld" - ], - [ - "bol", - "d" - ], - [ - "b", - "old" - ], - [ - "▁в", - "а" - ], - [ - "▁", - "ва" - ], - [ - "▁М", - "о" - ], - [ - "▁dis", - "put" - ], - [ - "▁disp", - "ut" - ], - [ - "▁t", - "rick" - ], - [ - "▁tr", - "ick" - ], - [ - "▁tri", - "ck" - ], - [ - "▁p", - "ed" - ], - [ - "▁pe", - "d" - ], - [ - "▁", - "ped" - ], - [ - ")^", - "{" - ], - [ - ")", - "^{" - ], - [ - "in", - "to" - ], - [ - "int", - "o" - ], - [ - "Si", - "m" - ], - [ - "S", - "im" - ], - [ - "▁par", - "allel" - ], - [ - "▁", - "parallel" - ], - [ - "fo", - "x" - ], - [ - "f", - "ox" - ], - [ - "norm", - "al" - ], - [ - "nor", - "mal" - ], - [ - "n", - "ormal" - ], - [ - "in", - "ent" - ], - [ - "ine", - "nt" - ], - [ - "inen", - "t" - ], - [ - "пе", - "ди" - ], - [ - "п", - "еди" - ], - [ - "ho", - "ld" - ], - [ - "hol", - "d" - ], - [ - "h", - "old" - ], - [ - "O", - "K" - ], - [ - "▁c", - "hem" - ], - [ - "▁ch", - "em" - ], - [ - "▁che", - "m" - ], - [ - "▁", - "chem" - ], - [ - "▁tw", - "ice" - ], - [ - "▁us", - "ername" - ], - [ - "▁user", - "name" - ], - [ - "▁", - "username" - ], - [ - "i", - "č" - ], - [ - "▁re", - "presentation" - ], - [ - "▁represent", - "ation" - ], - [ - "▁repres", - "entation" - ], - [ - "▁j", - "ournal" - ], - [ - "▁jour", - "nal" - ], - [ - "▁journ", - "al" - ], - [ - "▁:", - "-" - ], - [ - "▁", - ":-" - ], - [ - "▁b", - "att" - ], - [ - "▁ba", - "tt" - ], - [ - "▁bat", - "t" - ], - [ - "\\", - "%" - ], - [ - "▁certain", - "ly" - ], - [ - "▁Ex", - "ception" - ], - [ - "▁", - "Exception" - ], - [ - "ep", - "s" - ], - [ - "e", - "ps" - ], - [ - "sh", - "ot" - ], - [ - "s", - "hot" - ], - [ - "at", - "egy" - ], - [ - "ate", - "gy" - ], - [ - "ateg", - "y" - ], - [ - "Sh", - "ow" - ], - [ - "S", - "how" - ], - [ - "▁Car", - "l" - ], - [ - "▁Ca", - "rl" - ], - [ - "ri", - "g" - ], - [ - "r", - "ig" - ], - [ - "▁rep", - "orted" - ], - [ - "▁report", - "ed" - ], - [ - "bot", - "tom" - ], - [ - "b", - "ottom" - ], - [ - "T", - "F" - ], - [ - "▁Francis", - "co" - ], - [ - "na", - "p" - ], - [ - "n", - "ap" - ], - [ - "▁Champion", - "ship" - ], - [ - "▁Champions", - "hip" - ], - [ - "▁c", - "ourt" - ], - [ - "▁co", - "urt" - ], - [ - "▁cour", - "t" - ], - [ - "▁cou", - "rt" - ], - [ - "▁", - "court" - ], - [ - "▁s", - "ources" - ], - [ - "▁source", - "s" - ], - [ - "io", - "ur" - ], - [ - "i", - "our" - ], - [ - "▁con", - "serv" - ], - [ - "▁cons", - "erv" - ], - [ - "▁conse", - "rv" - ], - [ - "▁conser", - "v" - ], - [ - "di", - "ct" - ], - [ - "dic", - "t" - ], - [ - "d", - "ict" - ], - [ - "▁Р", - "у" - ], - [ - "I", - "B" - ], - [ - "▁V", - "e" - ], - [ - "▁", - "№" - ], - [ - "▁E", - "R" - ], - [ - "▁", - "ER" - ], - [ - "\")", - ");" - ], - [ - "\"))", - ";" - ], - [ - "\"", - "));" - ], - [ - "▁P", - "oint" - ], - [ - "▁Po", - "int" - ], - [ - "▁", - "Point" - ], - [ - "az", - "ine" - ], - [ - "azi", - "ne" - ], - [ - "▁inter", - "net" - ], - [ - "▁intern", - "et" - ], - [ - "д", - "на" - ], - [ - "▁car", - "ried" - ], - [ - "▁carri", - "ed" - ], - [ - "▁F", - "ield" - ], - [ - "▁", - "Field" - ], - [ - "ax", - "is" - ], - [ - "axi", - "s" - ], - [ - "a", - "xis" - ], - [ - "▁S", - "un" - ], - [ - "▁Su", - "n" - ], - [ - "▁a", - "ve" - ], - [ - "▁av", - "e" - ], - [ - "▁", - "ave" - ], - [ - "пи", - "с" - ], - [ - "п", - "ис" - ], - [ - "я", - "н" - ], - [ - "as", - "y" - ], - [ - "▁ju", - "lio" - ], - [ - "▁jul", - "io" - ], - [ - "▁juli", - "o" - ], - [ - "▁de", - "puis" - ], - [ - "▁dep", - "uis" - ], - [ - "▁sugg", - "estion" - ], - [ - "▁suggest", - "ion" - ], - [ - "[", - "[" - ], - [ - "▁Arch", - "ive" - ], - [ - "▁Archiv", - "e" - ], - [ - "ę", - "p" - ], - [ - "▁P", - "ra" - ], - [ - "▁Pr", - "a" - ], - [ - "re", - "h" - ], - [ - "r", - "eh" - ], - [ - "▁demon", - "str" - ], - [ - "ф", - "і" - ], - [ - "cm", - "d" - ], - [ - "c", - "md" - ], - [ - "▁was", - "n" - ], - [ - "▁wa", - "sn" - ], - [ - "▁ph", - "one" - ], - [ - "▁", - "phone" - ], - [ - "up", - "load" - ], - [ - "ay", - "a" - ], - [ - "a", - "ya" - ], - [ - "то", - "ра" - ], - [ - "тор", - "а" - ], - [ - "li", - "nes" - ], - [ - "line", - "s" - ], - [ - "lin", - "es" - ], - [ - "l", - "ines" - ], - [ - "▁in", - "du" - ], - [ - "▁ind", - "u" - ], - [ - "▁", - "indu" - ], - [ - "▁v", - "ot" - ], - [ - "▁vo", - "t" - ], - [ - "▁es", - "pa" - ], - [ - "▁esp", - "a" - ], - [ - "▁b", - "in" - ], - [ - "▁bi", - "n" - ], - [ - "▁", - "bin" - ], - [ - "▁по", - "сле" - ], - [ - "▁пос", - "ле" - ], - [ - "pl", - "an" - ], - [ - "pla", - "n" - ], - [ - "p", - "lan" - ], - [ - "▁ju", - "nio" - ], - [ - "▁jun", - "io" - ], - [ - "▁juni", - "o" - ], - [ - "or", - "ial" - ], - [ - "oria", - "l" - ], - [ - "ori", - "al" - ], - [ - "o", - "rial" - ], - [ - "fr", - "ee" - ], - [ - "fre", - "e" - ], - [ - "f", - "ree" - ], - [ - "ster", - "reich" - ], - [ - "▁д", - "у" - ], - [ - "▁", - "ду" - ], - [ - "▁link", - "ed" - ], - [ - "▁lin", - "ked" - ], - [ - "▁en", - "able" - ], - [ - "▁", - "enable" - ], - [ - "P", - "C" - ], - [ - "▁dens", - "ity" - ], - [ - "▁E", - "gy" - ], - [ - "▁Eg", - "y" - ], - [ - "y", - "o" - ], - [ - "end", - "re" - ], - [ - "▁с", - "ъ" - ], - [ - "▁ital", - "iano" - ], - [ - "▁A", - "R" - ], - [ - "▁", - "AR" - ], - [ - "▁P", - "ers" - ], - [ - "▁Per", - "s" - ], - [ - "▁Pe", - "rs" - ], - [ - "▁", - "Pers" - ], - [ - "fér", - "és" - ], - [ - "▁с", - "кла" - ], - [ - "V", - "ar" - ], - [ - "▁On", - "ce" - ], - [ - "▁", - "Once" - ], - [ - "Re", - "d" - ], - [ - "R", - "ed" - ], - [ - "buf", - "fer" - ], - [ - "buff", - "er" - ], - [ - "b", - "uffer" - ], - [ - "▁En", - "ter" - ], - [ - "▁Ent", - "er" - ], - [ - "▁", - "Enter" - ], - [ - "▁", - "Š" - ], - [ - "im", - "iento" - ], - [ - "imi", - "ento" - ], - [ - "St", - "ore" - ], - [ - "Sto", - "re" - ], - [ - "▁he", - "alth" - ], - [ - "va", - "t" - ], - [ - "v", - "at" - ], - [ - "IS", - "T" - ], - [ - "I", - "ST" - ], - [ - "O", - "h" - ], - [ - "▁k", - "w" - ], - [ - "▁", - "kw" - ], - [ - "▁r", - "iv" - ], - [ - "▁ri", - "v" - ], - [ - "▁", - "riv" - ], - [ - "▁some", - "where" - ], - [ - "ograf", - "ie" - ], - [ - "ografi", - "e" - ], - [ - "priv", - "ate" - ], - [ - "p", - "rivate" - ], - [ - "кт", - "и" - ], - [ - "к", - "ти" - ], - [ - "▁de", - "lay" - ], - [ - "▁del", - "ay" - ], - [ - "▁", - "delay" - ], - [ - "▁H", - "ttp" - ], - [ - "▁", - "Http" - ], - [ - "jo", - "b" - ], - [ - "j", - "ob" - ], - [ - "ra", - "el" - ], - [ - "r", - "ael" - ], - [ - "em", - "por" - ], - [ - "emp", - "or" - ], - [ - "▁dici", - "embre" - ], - [ - "▁dic", - "iembre" - ], - [ - "êt", - "e" - ], - [ - "ê", - "te" - ], - [ - "ц", - "у" - ], - [ - "▁com", - "mit" - ], - [ - "▁comm", - "it" - ], - [ - "▁", - "commit" - ], - [ - "os", - "o" - ], - [ - "o", - "so" - ], - [ - "Val", - "ues" - ], - [ - "Value", - "s" - ], - [ - "▁he", - "aders" - ], - [ - "▁head", - "ers" - ], - [ - "▁header", - "s" - ], - [ - "▁", - "headers" - ], - [ - "trans", - "form" - ], - [ - "▁process", - "ing" - ], - [ - "▁proces", - "sing" - ], - [ - "▁", - "processing" - ], - [ - "r", - "å" - ], - [ - "▁A", - "h" - ], - [ - "▁", - "Ah" - ], - [ - "▁N", - "ode" - ], - [ - "▁No", - "de" - ], - [ - "▁", - "Node" - ], - [ - "--", - "----------" - ], - [ - "----", - "--------" - ], - [ - "--------", - "----" - ], - [ - "------", - "------" - ], - [ - "-----", - "-------" - ], - [ - "-------", - "-----" - ], - [ - "----------", - "--" - ], - [ - "▁f", - "aire" - ], - [ - "▁fa", - "ire" - ], - [ - "▁fair", - "e" - ], - [ - "▁h", - "un" - ], - [ - "▁hu", - "n" - ], - [ - "Pl", - "ayer" - ], - [ - "Play", - "er" - ], - [ - "P", - "layer" - ], - [ - "▁re", - "view" - ], - [ - "▁rev", - "iew" - ], - [ - "▁", - "review" - ], - [ - "г", - "да" - ], - [ - "▁lim", - "ited" - ], - [ - "▁limit", - "ed" - ], - [ - "▁", - "limited" - ], - [ - "▁Pro", - "perty" - ], - [ - "▁", - "Property" - ], - [ - "▁s", - "erve" - ], - [ - "▁ser", - "ve" - ], - [ - "▁serv", - "e" - ], - [ - "▁", - "serve" - ], - [ - "ri", - "age" - ], - [ - "ria", - "ge" - ], - [ - "▁M", - "aster" - ], - [ - "▁Ma", - "ster" - ], - [ - "▁Mas", - "ter" - ], - [ - "▁", - "Master" - ], - [ - "▁k", - "ann" - ], - [ - "▁kan", - "n" - ], - [ - "▁ka", - "nn" - ], - [ - "cre", - "te" - ], - [ - "cret", - "e" - ], - [ - "cr", - "ete" - ], - [ - "ph", - "ere" - ], - [ - "pher", - "e" - ], - [ - "phe", - "re" - ], - [ - "p", - "here" - ], - [ - "ё", - "р" - ], - [ - "▁ch", - "ief" - ], - [ - "▁chi", - "ef" - ], - [ - "▁sc", - "ene" - ], - [ - "▁scen", - "e" - ], - [ - "▁", - "scene" - ], - [ - "ki", - "n" - ], - [ - "k", - "in" - ], - [ - "▁un", - "iform" - ], - [ - "▁", - "uniform" - ], - [ - "▁feb", - "rero" - ], - [ - "\"", - "}" - ], - [ - "il", - "lo" - ], - [ - "ill", - "o" - ], - [ - "IT", - "E" - ], - [ - "I", - "TE" - ], - [ - "ou", - "vel" - ], - [ - "ouv", - "el" - ], - [ - "ouve", - "l" - ], - [ - "use", - "package" - ], - [ - "en", - "th" - ], - [ - "ent", - "h" - ], - [ - "e", - "nth" - ], - [ - "▁quick", - "ly" - ], - [ - "L", - "ambda" - ], - [ - "xe", - "s" - ], - [ - "x", - "es" - ], - [ - "▁c", - "ells" - ], - [ - "▁cell", - "s" - ], - [ - "▁cel", - "ls" - ], - [ - "ro", - "g" - ], - [ - "r", - "og" - ], - [ - "am", - "in" - ], - [ - "ami", - "n" - ], - [ - "a", - "min" - ], - [ - "▁М", - "ар" - ], - [ - "▁Ма", - "р" - ], - [ - "▁may", - "or" - ], - [ - "▁mayo", - "r" - ], - [ - "pl", - "ayer" - ], - [ - "play", - "er" - ], - [ - "pla", - "yer" - ], - [ - "p", - "layer" - ], - [ - "++", - ";" - ], - [ - "▁На", - "се" - ], - [ - "▁sa", - "fe" - ], - [ - "▁saf", - "e" - ], - [ - "▁", - "safe" - ], - [ - "▁ve", - "loc" - ], - [ - "▁vel", - "oc" - ], - [ - "▁о", - "бра" - ], - [ - "▁об", - "ра" - ], - [ - "▁", - "обра" - ], - [ - "Data", - "base" - ], - [ - "Dat", - "abase" - ], - [ - "D", - "atabase" - ], - [ - "ne", - "h" - ], - [ - "n", - "eh" - ], - [ - "Ver", - "t" - ], - [ - "V", - "ert" - ], - [ - "▁f", - "le" - ], - [ - "▁fl", - "e" - ], - [ - "▁ф", - "ор" - ], - [ - "▁фо", - "р" - ], - [ - "▁", - "фор" - ], - [ - "▁f", - "oreign" - ], - [ - "▁for", - "eign" - ], - [ - "▁fore", - "ign" - ], - [ - "Ab", - "stract" - ], - [ - "▁m", - "agn" - ], - [ - "▁ma", - "gn" - ], - [ - "▁mag", - "n" - ], - [ - "▁mod", - "ified" - ], - [ - "▁milit", - "ary" - ], - [ - "▁militar", - "y" - ], - [ - "▁m", - "onde" - ], - [ - "▁mon", - "de" - ], - [ - "▁mo", - "nde" - ], - [ - "▁mond", - "e" - ], - [ - "▁A", - "ction" - ], - [ - "▁Act", - "ion" - ], - [ - "▁Ac", - "tion" - ], - [ - "▁", - "Action" - ], - [ - "▁b", - "ank" - ], - [ - "▁ban", - "k" - ], - [ - "▁", - "bank" - ], - [ - "Ser", - "ial" - ], - [ - "Se", - "rial" - ], - [ - "▁contin", - "uous" - ], - [ - "▁continu", - "ous" - ], - [ - "▁g", - "el" - ], - [ - "▁ge", - "l" - ], - [ - "▁", - "gel" - ], - [ - "▁phys", - "ical" - ], - [ - "▁introdu", - "ced" - ], - [ - "▁introduce", - "d" - ], - [ - "ut", - "ure" - ], - [ - "ri", - "ck" - ], - [ - "ric", - "k" - ], - [ - "r", - "ick" - ], - [ - "▁present", - "ed" - ], - [ - "▁pres", - "ented" - ], - [ - "▁presente", - "d" - ], - [ - "▁P", - "rov" - ], - [ - "▁Pro", - "v" - ], - [ - "▁Pr", - "ov" - ], - [ - "▁B", - "oth" - ], - [ - "▁Bo", - "th" - ], - [ - "▁Bot", - "h" - ], - [ - "Po", - "s" - ], - [ - "P", - "os" - ], - [ - "su", - "per" - ], - [ - "sup", - "er" - ], - [ - "s", - "uper" - ], - [ - "&", - "#" - ], - [ - "▁f", - "inding" - ], - [ - "▁find", - "ing" - ], - [ - "▁fin", - "ding" - ], - [ - "ne", - "l" - ], - [ - "n", - "el" - ], - [ - "un", - "de" - ], - [ - "und", - "e" - ], - [ - "u", - "nde" - ], - [ - "▁fr", - "ån" - ], - [ - "sk", - "im" - ], - [ - "ski", - "m" - ], - [ - "s", - "kim" - ], - [ - "▁H", - "ill" - ], - [ - "▁Hi", - "ll" - ], - [ - "▁Hil", - "l" - ], - [ - "f", - "n" - ], - [ - "▁Can", - "ad" - ], - [ - "▁Ca", - "nad" - ], - [ - "▁int", - "ended" - ], - [ - "▁inten", - "ded" - ], - [ - "▁intend", - "ed" - ], - [ - "ozzá", - "férés" - ], - [ - "▁ju", - "illet" - ], - [ - "▁W", - "ars" - ], - [ - "▁War", - "s" - ], - [ - "▁Wa", - "rs" - ], - [ - "▁success", - "ful" - ], - [ - "▁ch", - "arg" - ], - [ - "▁char", - "g" - ], - [ - "▁cha", - "rg" - ], - [ - "▁", - "charg" - ], - [ - "ie", - "le" - ], - [ - "iel", - "e" - ], - [ - "i", - "ele" - ], - [ - "om", - "ething" - ], - [ - "ome", - "thing" - ], - [ - "omet", - "hing" - ], - [ - "ok", - "u" - ], - [ - "o", - "ku" - ], - [ - "f", - "etch" - ], - [ - "▁}", - "}" - ], - [ - "▁", - "}}" - ], - [ - "ban", - "k" - ], - [ - "b", - "ank" - ], - [ - "operator", - "name" - ], - [ - "▁Col", - "or" - ], - [ - "▁Co", - "lor" - ], - [ - "▁", - "Color" - ], - [ - "▁C", - "ard" - ], - [ - "▁Car", - "d" - ], - [ - "▁Ca", - "rd" - ], - [ - "▁", - "Card" - ], - [ - "t", - "u" - ], - [ - "▁\"", - "," - ], - [ - "▁", - "\"," - ], - [ - "wi", - "d" - ], - [ - "w", - "id" - ], - [ - "▁g", - "ep" - ], - [ - "▁ge", - "p" - ], - [ - "X", - "ML" - ], - [ - "========", - "========" - ], - [ - "▁Vir", - "gin" - ], - [ - "ähr", - "end" - ], - [ - "äh", - "rend" - ], - [ - "lic", - "ated" - ], - [ - "licate", - "d" - ], - [ - "lica", - "ted" - ], - [ - "Di", - "r" - ], - [ - "D", - "ir" - ], - [ - "ze", - "ro" - ], - [ - "zer", - "o" - ], - [ - "z", - "ero" - ], - [ - "▁K", - "al" - ], - [ - "▁Ka", - "l" - ], - [ - "▁Par", - "ty" - ], - [ - "▁Part", - "y" - ], - [ - "▁", - "å" - ], - [ - "pr", - "ice" - ], - [ - "p", - "rice" - ], - [ - "do", - "n" - ], - [ - "d", - "on" - ], - [ - "▁w", - "arning" - ], - [ - "▁war", - "ning" - ], - [ - "▁warn", - "ing" - ], - [ - "▁", - "warning" - ], - [ - "▁B", - "ad" - ], - [ - "▁Ba", - "d" - ], - [ - "▁", - "Bad" - ], - [ - "▁S", - "upp" - ], - [ - "▁Su", - "pp" - ], - [ - "▁Sup", - "p" - ], - [ - "▁", - "Supp" - ], - [ - "▁L", - "iga" - ], - [ - "▁Li", - "ga" - ], - [ - "▁Lig", - "a" - ], - [ - "▁P", - "ierre" - ], - [ - "▁Pier", - "re" - ], - [ - "▁", - "Pierre" - ], - [ - "Re", - "cord" - ], - [ - "Rec", - "ord" - ], - [ - "ul", - "ator" - ], - [ - "ula", - "tor" - ], - [ - "▁R", - "ome" - ], - [ - "▁Ro", - "me" - ], - [ - "▁Rom", - "e" - ], - [ - "▁the", - "orem" - ], - [ - "▁", - "theorem" - ], - [ - "▁entire", - "ly" - ], - [ - "ски", - "м" - ], - [ - "ск", - "им" - ], - [ - "с", - "ким" - ], - [ - "he", - "t" - ], - [ - "h", - "et" - ], - [ - "▁d", - "opo" - ], - [ - "▁do", - "po" - ], - [ - "▁dop", - "o" - ], - [ - "Ne", - "xt" - ], - [ - "N", - "ext" - ], - [ - "ml", - "ung" - ], - [ - "m", - "lung" - ], - [ - "wi", - "g" - ], - [ - "w", - "ig" - ], - [ - "▁A", - "th" - ], - [ - "▁At", - "h" - ], - [ - "▁S", - "ou" - ], - [ - "▁So", - "u" - ], - [ - "li", - "cher" - ], - [ - "lic", - "her" - ], - [ - "lich", - "er" - ], - [ - "liche", - "r" - ], - [ - "l", - "icher" - ], - [ - "▁s", - "udo" - ], - [ - "▁su", - "do" - ], - [ - "▁sud", - "o" - ], - [ - "▁", - "sudo" - ], - [ - "es", - "ts" - ], - [ - "est", - "s" - ], - [ - "хі", - "в" - ], - [ - "х", - "ів" - ], - [ - "▁sept", - "iembre" - ], - [ - "▁m", - "icro" - ], - [ - "▁mi", - "cro" - ], - [ - "▁mic", - "ro" - ], - [ - "▁t", - "rop" - ], - [ - "▁tr", - "op" - ], - [ - "▁tro", - "p" - ], - [ - "fi", - "t" - ], - [ - "f", - "it" - ], - [ - "Co", - "re" - ], - [ - "Cor", - "e" - ], - [ - "C", - "ore" - ], - [ - "▁Rad", - "io" - ], - [ - "▁", - "Radio" - ], - [ - "▁Or", - "gan" - ], - [ - "▁", - "Organ" - ], - [ - "▁P", - "ower" - ], - [ - "▁Po", - "wer" - ], - [ - "▁Pow", - "er" - ], - [ - "▁", - "Power" - ], - [ - "C", - "F" - ], - [ - "▁L", - "ast" - ], - [ - "▁La", - "st" - ], - [ - "▁Las", - "t" - ], - [ - "▁", - "Last" - ], - [ - "▁op", - "pos" - ], - [ - "▁opp", - "os" - ], - [ - "▁off", - "set" - ], - [ - "▁", - "offset" - ], - [ - "▁re", - "gia" - ], - [ - "▁reg", - "ia" - ], - [ - "▁min", - "imum" - ], - [ - "▁minim", - "um" - ], - [ - "▁hel", - "ped" - ], - [ - "▁help", - "ed" - ], - [ - "an", - "don" - ], - [ - "and", - "on" - ], - [ - "ando", - "n" - ], - [ - "if", - "ying" - ], - [ - "ify", - "ing" - ], - [ - "ru", - "it" - ], - [ - "r", - "uit" - ], - [ - "ensch", - "app" - ], - [ - "▁b", - "ere" - ], - [ - "▁be", - "re" - ], - [ - "▁ber", - "e" - ], - [ - "▁", - "bere" - ], - [ - "V", - "M" - ], - [ - "▁A", - "wards" - ], - [ - "▁Award", - "s" - ], - [ - "▁Aw", - "ards" - ], - [ - "▁a", - "gr" - ], - [ - "▁ag", - "r" - ], - [ - "▁", - "agr" - ], - [ - "yn", - "omial" - ], - [ - "en", - "ced" - ], - [ - "ence", - "d" - ], - [ - "enc", - "ed" - ], - [ - "▁dev", - "ices" - ], - [ - "▁device", - "s" - ], - [ - "▁devi", - "ces" - ], - [ - "▁b", - "ot" - ], - [ - "▁bo", - "t" - ], - [ - "▁", - "bot" - ], - [ - "▁f", - "irm" - ], - [ - "▁fi", - "rm" - ], - [ - "▁fir", - "m" - ], - [ - "▁w", - "riter" - ], - [ - "▁writ", - "er" - ], - [ - "▁wr", - "iter" - ], - [ - "▁write", - "r" - ], - [ - "▁", - "writer" - ], - [ - "▁r", - "ing" - ], - [ - "▁ri", - "ng" - ], - [ - "▁rin", - "g" - ], - [ - "▁", - "ring" - ], - [ - ".", - "-" - ], - [ - "is", - "tes" - ], - [ - "ist", - "es" - ], - [ - "iste", - "s" - ], - [ - "l", - "ä" - ], - [ - "▁m", - "el" - ], - [ - "▁me", - "l" - ], - [ - "▁", - "mel" - ], - [ - "ent", - "ation" - ], - [ - "enta", - "tion" - ], - [ - "▁Sch", - "w" - ], - [ - "▁Sc", - "hw" - ], - [ - "▁n", - "ome" - ], - [ - "▁no", - "me" - ], - [ - "▁nom", - "e" - ], - [ - "▁", - "nome" - ], - [ - "▁po", - "bla" - ], - [ - "▁pob", - "la" - ], - [ - "▁w", - "oj" - ], - [ - "▁wo", - "j" - ], - [ - "▁u", - "l" - ], - [ - "▁", - "ul" - ], - [ - "en", - "to" - ], - [ - "ent", - "o" - ], - [ - "ы", - "х" - ], - [ - "▁res", - "ist" - ], - [ - "▁rem", - "ains" - ], - [ - "▁remain", - "s" - ], - [ - "▁C", - "a" - ], - [ - "▁", - "Ca" - ], - [ - "añ", - "a" - ], - [ - "a", - "ña" - ], - [ - "▁C", - "ourt" - ], - [ - "▁Co", - "urt" - ], - [ - "▁Cour", - "t" - ], - [ - "▁Cou", - "rt" - ], - [ - "ut", - "able" - ], - [ - "uta", - "ble" - ], - [ - "u", - "table" - ], - [ - "ential", - "ly" - ], - [ - "enti", - "ally" - ], - [ - "▁t", - "rat" - ], - [ - "▁tr", - "at" - ], - [ - "▁tra", - "t" - ], - [ - "▁", - "trat" - ], - [ - "▁Vis", - "ual" - ], - [ - "▁", - "Visual" - ], - [ - "▁rest", - "rict" - ], - [ - "▁pre", - "viously" - ], - [ - "▁previous", - "ly" - ], - [ - "▁prev", - "iously" - ], - [ - "ca", - "tion" - ], - [ - "cat", - "ion" - ], - [ - "c", - "ation" - ], - [ - "▁о", - "со" - ], - [ - "▁ос", - "о" - ], - [ - "▁My", - "SQL" - ], - [ - "f", - "ör" - ], - [ - "cal", - "a" - ], - [ - "ca", - "la" - ], - [ - "c", - "ala" - ], - [ - "▁c", - "ulture" - ], - [ - "▁cult", - "ure" - ], - [ - "li", - "ve" - ], - [ - "liv", - "e" - ], - [ - "l", - "ive" - ], - [ - "▁accept", - "ed" - ], - [ - "Di", - "d" - ], - [ - "D", - "id" - ], - [ - "▁h", - "ous" - ], - [ - "▁ho", - "us" - ], - [ - "▁se", - "lection" - ], - [ - "▁select", - "ion" - ], - [ - "▁sel", - "ection" - ], - [ - "▁sele", - "ction" - ], - [ - "▁", - "selection" - ], - [ - "▁de", - "cre" - ], - [ - "▁dec", - "re" - ], - [ - "mar", - "gin" - ], - [ - "m", - "argin" - ], - [ - "ur", - "b" - ], - [ - "u", - "rb" - ], - [ - "▁I", - "nc" - ], - [ - "▁In", - "c" - ], - [ - "▁M", - "any" - ], - [ - "▁Man", - "y" - ], - [ - "▁Ma", - "ny" - ], - [ - "▁", - "Many" - ], - [ - "ib", - "t" - ], - [ - "i", - "bt" - ], - [ - "▁succ", - "eed" - ], - [ - "▁suc", - "ceed" - ], - [ - "Bind", - "ing" - ], - [ - "B", - "inding" - ], - [ - "c", - "í" - ], - [ - "▁R", - "og" - ], - [ - "▁Ro", - "g" - ], - [ - "▁should", - "n" - ], - [ - "cl", - "oud" - ], - [ - "clo", - "ud" - ], - [ - "clou", - "d" - ], - [ - "▁d", - "z" - ], - [ - "▁", - "dz" - ], - [ - "ва", - "в" - ], - [ - "▁p", - "ix" - ], - [ - "▁pi", - "x" - ], - [ - "sm", - "all" - ], - [ - "▁project", - "s" - ], - [ - "▁", - "projects" - ], - [ - "▁O", - "K" - ], - [ - "▁", - "OK" - ], - [ - "▁la", - "test" - ], - [ - "▁lat", - "est" - ], - [ - "▁late", - "st" - ], - [ - "▁", - "latest" - ], - [ - "▁re", - "ferences" - ], - [ - "▁refer", - "ences" - ], - [ - "▁reference", - "s" - ], - [ - "Pro", - "gram" - ], - [ - "Pr", - "ogram" - ], - [ - "▁er", - "st" - ], - [ - "▁ers", - "t" - ], - [ - "▁", - "erst" - ], - [ - "▁я", - "к" - ], - [ - "▁k", - "am" - ], - [ - "▁ka", - "m" - ], - [ - "▁C", - "amb" - ], - [ - "▁Cam", - "b" - ], - [ - "▁Ca", - "mb" - ], - [ - "el", - "lt" - ], - [ - "ell", - "t" - ], - [ - "ö", - "d" - ], - [ - "no", - "ne" - ], - [ - "non", - "e" - ], - [ - "n", - "one" - ], - [ - "▁j", - "usqu" - ], - [ - "▁ju", - "squ" - ], - [ - "ki", - "ng" - ], - [ - "kin", - "g" - ], - [ - "k", - "ing" - ], - [ - "▁P", - "ed" - ], - [ - "▁Pe", - "d" - ], - [ - "as", - "sert" - ], - [ - "ass", - "ert" - ], - [ - "asse", - "rt" - ], - [ - "asser", - "t" - ], - [ - "C", - "S" - ], - [ - "ri", - "to" - ], - [ - "rit", - "o" - ], - [ - "r", - "ito" - ], - [ - "es", - "sa" - ], - [ - "ess", - "a" - ], - [ - "ль", - "ко" - ], - [ - "▁V", - "on" - ], - [ - "▁Vo", - "n" - ], - [ - "▁Ed", - "ward" - ], - [ - "▁im", - "possible" - ], - [ - "▁impos", - "sible" - ], - [ - "n", - "p" - ], - [ - "word", - "s" - ], - [ - "wor", - "ds" - ], - [ - "w", - "ords" - ], - [ - "ie", - "lt" - ], - [ - "iel", - "t" - ], - [ - "i", - "elt" - ], - [ - "▁P", - "age" - ], - [ - "▁Pa", - "ge" - ], - [ - "▁", - "Page" - ], - [ - "le", - "rs" - ], - [ - "ler", - "s" - ], - [ - "l", - "ers" - ], - [ - "▁p", - "ier" - ], - [ - "▁pi", - "er" - ], - [ - "▁pie", - "r" - ], - [ - "▁обла", - "сти" - ], - [ - "itt", - "ee" - ], - [ - "itte", - "e" - ], - [ - "▁(", - "[" - ], - [ - "▁", - "([" - ], - [ - "▁t", - "rust" - ], - [ - "▁tr", - "ust" - ], - [ - "N", - "G" - ], - [ - "re", - "du" - ], - [ - "red", - "u" - ], - [ - "r", - "edu" - ], - [ - "<", - "<" - ], - [ - "ri", - "al" - ], - [ - "ria", - "l" - ], - [ - "r", - "ial" - ], - [ - "▁product", - "s" - ], - [ - "▁", - "products" - ], - [ - "▁E", - "rn" - ], - [ - "▁Er", - "n" - ], - [ - "ri", - "ère" - ], - [ - "r", - "ière" - ], - [ - "го", - "в" - ], - [ - "г", - "ов" - ], - [ - "▁Re", - "ich" - ], - [ - "▁Ro", - "ad" - ], - [ - "▁n", - "ested" - ], - [ - "▁ne", - "sted" - ], - [ - "▁nest", - "ed" - ], - [ - "▁", - "nested" - ], - [ - "Dis", - "play" - ], - [ - "▁str", - "ength" - ], - [ - "ograf", - "ía" - ], - [ - "▁ann", - "ounced" - ], - [ - "▁announ", - "ced" - ], - [ - "▁S", - "cience" - ], - [ - "▁Sc", - "ience" - ], - [ - "▁Sci", - "ence" - ], - [ - "▁рай", - "о" - ], - [ - "Param", - "eter" - ], - [ - "▁T", - "ask" - ], - [ - "▁Ta", - "sk" - ], - [ - "▁Tas", - "k" - ], - [ - "▁", - "Task" - ], - [ - "um", - "ents" - ], - [ - "ument", - "s" - ], - [ - "umen", - "ts" - ], - [ - "u", - "ments" - ], - [ - "▁ad", - "opt" - ], - [ - "▁On", - "ly" - ], - [ - "▁", - "Only" - ], - [ - "ют", - "ь" - ], - [ - "ю", - "ть" - ], - [ - "▁c", - "li" - ], - [ - "▁cl", - "i" - ], - [ - "▁", - "cli" - ], - [ - "▁l", - "em" - ], - [ - "▁le", - "m" - ], - [ - "▁", - "lem" - ], - [ - "st", - "ood" - ], - [ - "sto", - "od" - ], - [ - "▁F", - "I" - ], - [ - "▁", - "FI" - ], - [ - "ên", - "cias" - ], - [ - "ência", - "s" - ], - [ - "pon", - "ents" - ], - [ - "ponent", - "s" - ], - [ - "]", - "$" - ], - [ - "com", - "ment" - ], - [ - "comm", - "ent" - ], - [ - "▁y", - "a" - ], - [ - "▁", - "ya" - ], - [ - "sh", - "ould" - ], - [ - "ik", - "e" - ], - [ - "i", - "ke" - ], - [ - "ti", - "m" - ], - [ - "t", - "im" - ], - [ - "el", - "lig" - ], - [ - "ell", - "ig" - ], - [ - "elli", - "g" - ], - [ - "▁s", - "ending" - ], - [ - "▁send", - "ing" - ], - [ - "▁sen", - "ding" - ], - [ - "▁a", - "jax" - ], - [ - "▁aj", - "ax" - ], - [ - "▁", - "ajax" - ], - [ - "▁nov", - "iembre" - ], - [ - "um", - "es" - ], - [ - "ume", - "s" - ], - [ - "u", - "mes" - ], - [ - "▁we", - "iter" - ], - [ - "▁weit", - "er" - ], - [ - "▁D", - "ans" - ], - [ - "▁Dan", - "s" - ], - [ - "▁Da", - "ns" - ], - [ - "op", - "p" - ], - [ - "o", - "pp" - ], - [ - "▁sept", - "embre" - ], - [ - "▁sep", - "tembre" - ], - [ - "ot", - "imes" - ], - [ - "oti", - "mes" - ], - [ - "o", - "times" - ], - [ - "z", - "ő" - ], - [ - "▁e", - "p" - ], - [ - "▁", - "ep" - ], - [ - "ve", - "re" - ], - [ - "ver", - "e" - ], - [ - "v", - "ere" - ], - [ - "▁o", - "h" - ], - [ - "▁", - "oh" - ], - [ - ":", - "=" - ], - [ - "▁S", - "ong" - ], - [ - "▁So", - "ng" - ], - [ - "▁Son", - "g" - ], - [ - "”", - "," - ], - [ - "▁v", - "iv" - ], - [ - "▁vi", - "v" - ], - [ - "▁", - "viv" - ], - [ - "▁qu", - "eries" - ], - [ - "▁que", - "ries" - ], - [ - "▁quer", - "ies" - ], - [ - "▁v", - "á" - ], - [ - "▁", - "vá" - ], - [ - "▁déc", - "embre" - ], - [ - "▁un", - "able" - ], - [ - "▁una", - "ble" - ], - [ - "▁e", - "rh" - ], - [ - "▁er", - "h" - ], - [ - "▁`", - "-" - ], - [ - "▁", - "`-" - ], - [ - "▁L", - "ee" - ], - [ - "▁Le", - "e" - ], - [ - "▁er", - "sten" - ], - [ - "▁erst", - "en" - ], - [ - "▁erste", - "n" - ], - [ - "▁ers", - "ten" - ], - [ - "ô", - "t" - ], - [ - "ст", - "ве" - ], - [ - "ств", - "е" - ], - [ - "T", - "S" - ], - [ - "▁f", - "ragment" - ], - [ - "▁fra", - "gment" - ], - [ - "▁frag", - "ment" - ], - [ - "▁", - "fragment" - ], - [ - "▁w", - "ide" - ], - [ - "▁wid", - "e" - ], - [ - "▁", - "wide" - ], - [ - "▁s", - "uff" - ], - [ - "▁su", - "ff" - ], - [ - "▁suf", - "f" - ], - [ - "▁d", - "ut" - ], - [ - "▁du", - "t" - ], - [ - "▁V", - "ere" - ], - [ - "▁Ver", - "e" - ], - [ - "▁Ve", - "re" - ], - [ - "і", - "с" - ], - [ - "ad", - "ing" - ], - [ - "adi", - "ng" - ], - [ - "adin", - "g" - ], - [ - "a", - "ding" - ], - [ - "ie", - "go" - ], - [ - "ieg", - "o" - ], - [ - "i", - "ego" - ], - [ - "ic", - "ago" - ], - [ - "ica", - "go" - ], - [ - "▁Ar", - "gent" - ], - [ - "▁Arg", - "ent" - ], - [ - "or", - "er" - ], - [ - "ore", - "r" - ], - [ - "o", - "rer" - ], - [ - "en", - "nes" - ], - [ - "enn", - "es" - ], - [ - "enne", - "s" - ], - [ - "▁L", - "eb" - ], - [ - "▁Le", - "b" - ], - [ - "lin", - "ux" - ], - [ - "ac", - "ing" - ], - [ - "aci", - "ng" - ], - [ - "a", - "cing" - ], - [ - "▁br", - "oken" - ], - [ - "▁bro", - "ken" - ], - [ - "▁broke", - "n" - ], - [ - "t", - "p" - ], - [ - "í", - "o" - ], - [ - "ab", - "eth" - ], - [ - "abe", - "th" - ], - [ - "abet", - "h" - ], - [ - "ist", - "as" - ], - [ - "ista", - "s" - ], - [ - "ge", - "w" - ], - [ - "g", - "ew" - ], - [ - "i", - "ème" - ], - [ - "ca", - "s" - ], - [ - "c", - "as" - ], - [ - "▁pre", - "ced" - ], - [ - "▁prec", - "ed" - ], - [ - "▁D", - "al" - ], - [ - "▁Da", - "l" - ], - [ - "▁comp", - "ared" - ], - [ - "▁compar", - "ed" - ], - [ - "▁compare", - "d" - ], - [ - "equ", - "iv" - ], - [ - "il", - "ly" - ], - [ - "ill", - "y" - ], - [ - "te", - "en" - ], - [ - "t", - "een" - ], - [ - "▁Con", - "sole" - ], - [ - "▁Cons", - "ole" - ], - [ - "▁", - "Console" - ], - [ - "▁st", - "rict" - ], - [ - "▁str", - "ict" - ], - [ - "▁stri", - "ct" - ], - [ - "it", - "aire" - ], - [ - "ita", - "ire" - ], - [ - "i", - "taire" - ], - [ - "▁E", - "D" - ], - [ - "▁", - "ED" - ], - [ - "ential", - "s" - ], - [ - "enti", - "als" - ], - [ - "▁p", - "erman" - ], - [ - "▁per", - "man" - ], - [ - "▁perm", - "an" - ], - [ - "▁t", - "ous" - ], - [ - "▁to", - "us" - ], - [ - "▁tou", - "s" - ], - [ - "▁g", - "eme" - ], - [ - "▁ge", - "me" - ], - [ - "▁gem", - "e" - ], - [ - "▁", - "geme" - ], - [ - "▁ext", - "rem" - ], - [ - "▁extr", - "em" - ], - [ - "▁ок", - "ру" - ], - [ - "k", - "g" - ], - [ - "▁he", - "avy" - ], - [ - "▁heav", - "y" - ], - [ - "▁av", - "ril" - ], - [ - "▁an", - "ti" - ], - [ - "▁ant", - "i" - ], - [ - "▁", - "anti" - ], - [ - "▁oct", - "obre" - ], - [ - "ut", - "f" - ], - [ - "u", - "tf" - ], - [ - "he", - "lm" - ], - [ - "hel", - "m" - ], - [ - "h", - "elm" - ], - [ - "am", - "ples" - ], - [ - "ample", - "s" - ], - [ - "amp", - "les" - ], - [ - "▁(", - "_" - ], - [ - "▁", - "(_" - ], - [ - "ak", - "en" - ], - [ - "ake", - "n" - ], - [ - "a", - "ken" - ], - [ - "▁d", - "ear" - ], - [ - "▁de", - "ar" - ], - [ - "▁opin", - "ion" - ], - [ - "▁f", - "ish" - ], - [ - "▁fi", - "sh" - ], - [ - "▁fis", - "h" - ], - [ - "▁", - "fish" - ], - [ - "▁Alex", - "ander" - ], - [ - "▁Alexand", - "er" - ], - [ - "i", - "w" - ], - [ - "и", - "м" - ], - [ - "ca", - "dem" - ], - [ - "cade", - "m" - ], - [ - "c", - "adem" - ], - [ - "▁ref", - "lect" - ], - [ - "▁", - "reflect" - ], - [ - "▁д", - "р" - ], - [ - "▁t", - "rib" - ], - [ - "▁tr", - "ib" - ], - [ - "▁tri", - "b" - ], - [ - "com", - "mon" - ], - [ - "comm", - "on" - ], - [ - "▁clear", - "ly" - ], - [ - "▁s", - "af" - ], - [ - "▁sa", - "f" - ], - [ - "=\"@", - "+" - ], - [ - "▁М", - "ос" - ], - [ - "▁Мо", - "с" - ], - [ - "си", - "те" - ], - [ - "eqn", - "array" - ], - [ - "nu", - "ng" - ], - [ - "n", - "ung" - ], - [ - "▁relations", - "hip" - ], - [ - "▁relation", - "ship" - ], - [ - "▁S", - "em" - ], - [ - "▁Se", - "m" - ], - [ - "▁", - "Sem" - ], - [ - "▁k", - "illed" - ], - [ - "▁kil", - "led" - ], - [ - "▁kill", - "ed" - ], - [ - "te", - "d" - ], - [ - "t", - "ed" - ], - [ - "un", - "o" - ], - [ - "u", - "no" - ], - [ - "▁", - "лі" - ], - [ - "▁w", - "id" - ], - [ - "▁", - "wid" - ], - [ - "an", - "ning" - ], - [ - "ann", - "ing" - ], - [ - "anni", - "ng" - ], - [ - "▁p", - "anel" - ], - [ - "▁pa", - "nel" - ], - [ - "▁pan", - "el" - ], - [ - "▁", - "panel" - ], - [ - "▁L", - "eben" - ], - [ - "▁Le", - "ben" - ], - [ - "▁Leb", - "en" - ], - [ - "▁r", - "uby" - ], - [ - "▁ru", - "by" - ], - [ - "▁rub", - "y" - ], - [ - "▁", - "ruby" - ], - [ - "ans", - "ion" - ], - [ - "▁a", - "ren" - ], - [ - "▁are", - "n" - ], - [ - "▁ar", - "en" - ], - [ - "▁", - "aren" - ], - [ - "tab", - "ular" - ], - [ - "al", - "et" - ], - [ - "ale", - "t" - ], - [ - "a", - "let" - ], - [ - "}$", - "$" - ], - [ - "}", - "$$" - ], - [ - "▁L", - "ake" - ], - [ - "▁La", - "ke" - ], - [ - "▁Lak", - "e" - ], - [ - "▁su", - "ite" - ], - [ - "▁suit", - "e" - ], - [ - "▁", - "suite" - ], - [ - "▁min", - "or" - ], - [ - "▁mi", - "nor" - ], - [ - "H", - "ozzáférés" - ], - [ - "▁xml", - "ns" - ], - [ - "▁", - "xmlns" - ], - [ - "DI", - "R" - ], - [ - "D", - "IR" - ], - [ - "dr", - "iver" - ], - [ - "drive", - "r" - ], - [ - "dri", - "ver" - ], - [ - "d", - "river" - ], - [ - "in", - "ts" - ], - [ - "int", - "s" - ], - [ - "▁v", - "ic" - ], - [ - "▁vi", - "c" - ], - [ - "▁", - "vic" - ], - [ - "AN", - "D" - ], - [ - "A", - "ND" - ], - [ - "pr", - "im" - ], - [ - "p", - "rim" - ], - [ - "сы", - "лки" - ], - [ - "▁O", - "x" - ], - [ - "T", - "C" - ], - [ - "riv", - "ial" - ], - [ - "at", - "ie" - ], - [ - "ati", - "e" - ], - [ - "▁e", - "ight" - ], - [ - "▁eig", - "ht" - ], - [ - "▁eigh", - "t" - ], - [ - "▁conf", - "lic" - ], - [ - "▁confl", - "ic" - ], - [ - "an", - "gel" - ], - [ - "ang", - "el" - ], - [ - "ange", - "l" - ], - [ - "▁B", - "egr" - ], - [ - "▁Be", - "gr" - ], - [ - "▁Beg", - "r" - ], - [ - "▁explicit", - "ly" - ], - [ - "ют", - "ся" - ], - [ - "ю", - "тся" - ], - [ - "▁D", - "ev" - ], - [ - "▁De", - "v" - ], - [ - "▁", - "Dev" - ], - [ - "re", - "nder" - ], - [ - "ren", - "der" - ], - [ - "rend", - "er" - ], - [ - "r", - "ender" - ], - [ - "▁re", - "produ" - ], - [ - "▁rep", - "rodu" - ], - [ - "▁repr", - "odu" - ], - [ - "▁repro", - "du" - ], - [ - "▁c", - "ré" - ], - [ - "▁cr", - "é" - ], - [ - "G", - "u" - ], - [ - "M", - "B" - ], - [ - "▁k", - "ön" - ], - [ - "▁kö", - "n" - ], - [ - "▁rem", - "ained" - ], - [ - "▁remain", - "ed" - ], - [ - "▁k", - "l" - ], - [ - "▁", - "kl" - ], - [ - "хо", - "в" - ], - [ - "х", - "ов" - ], - [ - "▁b", - "yl" - ], - [ - "▁by", - "l" - ], - [ - "Ph", - "i" - ], - [ - "P", - "hi" - ], - [ - "▁de", - "tail" - ], - [ - "▁det", - "ail" - ], - [ - "▁", - "detail" - ], - [ - "ja", - "v" - ], - [ - "j", - "av" - ], - [ - "▁m", - "ouse" - ], - [ - "▁mo", - "use" - ], - [ - "▁mou", - "se" - ], - [ - "▁", - "mouse" - ], - [ - "B", - "as" - ], - [ - "i", - "ę" - ], - [ - "as", - "ser" - ], - [ - "ass", - "er" - ], - [ - "asse", - "r" - ], - [ - "h", - "s" - ], - [ - "▁sh", - "ift" - ], - [ - "▁", - "shift" - ], - [ - "▁ú", - "lt" - ], - [ - "▁", - "últ" - ], - [ - "ra", - "nd" - ], - [ - "ran", - "d" - ], - [ - "r", - "and" - ], - [ - "▁b", - "tn" - ], - [ - "▁", - "btn" - ], - [ - "ra", - "z" - ], - [ - "r", - "az" - ], - [ - "▁p", - "ul" - ], - [ - "▁pu", - "l" - ], - [ - "▁stat", - "ements" - ], - [ - "▁state", - "ments" - ], - [ - "▁statement", - "s" - ], - [ - "file", - "name" - ], - [ - "fil", - "ename" - ], - [ - "▁prom", - "pt" - ], - [ - "él", - "é" - ], - [ - "é", - "lé" - ], - [ - "ik", - "z" - ], - [ - "▁S", - "us" - ], - [ - "▁Su", - "s" - ], - [ - "▁de", - "but" - ], - [ - "▁deb", - "ut" - ], - [ - "St", - "at" - ], - [ - "S", - "tat" - ], - [ - "form", - "s" - ], - [ - "for", - "ms" - ], - [ - "▁H", - "ein" - ], - [ - "▁He", - "in" - ], - [ - "st", - "adt" - ], - [ - "sta", - "dt" - ], - [ - "stad", - "t" - ], - [ - "en", - "nis" - ], - [ - "enn", - "is" - ], - [ - "по", - "л" - ], - [ - "ar", - "ante" - ], - [ - "aran", - "te" - ], - [ - "ці", - "й" - ], - [ - "ц", - "ій" - ], - [ - "▁que", - "ue" - ], - [ - "▁", - "queue" - ], - [ - "▁re", - "ci" - ], - [ - "▁rec", - "i" - ], - [ - "▁", - "reci" - ], - [ - "▁s", - "ta" - ], - [ - "▁st", - "a" - ], - [ - "▁", - "sta" - ], - [ - "yn", - "chron" - ], - [ - "cent", - "ering" - ], - [ - "center", - "ing" - ], - [ - "cente", - "ring" - ], - [ - "So", - "me" - ], - [ - "S", - "ome" - ], - [ - "Gr", - "aph" - ], - [ - "G", - "raph" - ], - [ - "▁t", - "ested" - ], - [ - "▁te", - "sted" - ], - [ - "▁test", - "ed" - ], - [ - "▁K", - "unst" - ], - [ - "▁Kun", - "st" - ], - [ - "о", - "м" - ], - [ - "▁N", - "othing" - ], - [ - "▁No", - "thing" - ], - [ - "▁Not", - "hing" - ], - [ - "▁", - "Nothing" - ], - [ - "ie", - "u" - ], - [ - "i", - "eu" - ], - [ - "“", - "." - ], - [ - "B", - "undle" - ], - [ - "▁of", - "icial" - ], - [ - "▁ofic", - "ial" - ], - [ - "al", - "low" - ], - [ - "all", - "ow" - ], - [ - "allo", - "w" - ], - [ - "▁Re", - "act" - ], - [ - "▁L", - "ibrary" - ], - [ - "▁Li", - "brary" - ], - [ - "▁", - "Library" - ], - [ - "bl", - "ue" - ], - [ - "▁ver", - "w" - ], - [ - "▁ve", - "rw" - ], - [ - "▁p", - "are" - ], - [ - "▁par", - "e" - ], - [ - "▁pa", - "re" - ], - [ - "▁Fried", - "rich" - ], - [ - "▁a", - "ware" - ], - [ - "▁aw", - "are" - ], - [ - "▁", - "aware" - ], - [ - "Ex", - "p" - ], - [ - "E", - "xp" - ], - [ - "▁effect", - "s" - ], - [ - "▁го", - "ро" - ], - [ - "▁гор", - "о" - ], - [ - "lop", - "edia" - ], - [ - "loped", - "ia" - ], - [ - "▁V", - "en" - ], - [ - "▁Ve", - "n" - ], - [ - "ra", - "le" - ], - [ - "ral", - "e" - ], - [ - "r", - "ale" - ], - [ - "▁F", - "inal" - ], - [ - "▁Fin", - "al" - ], - [ - "▁", - "Final" - ], - [ - "▁pro", - "pos" - ], - [ - "▁prop", - "os" - ], - [ - "la", - "cement" - ], - [ - "lace", - "ment" - ], - [ - "lac", - "ement" - ], - [ - "kt", - "en" - ], - [ - "kte", - "n" - ], - [ - "k", - "ten" - ], - [ - "▁no", - "vel" - ], - [ - "▁nov", - "el" - ], - [ - "or", - "ter" - ], - [ - "ort", - "er" - ], - [ - "orte", - "r" - ], - [ - "▁German", - "y" - ], - [ - "▁Ger", - "many" - ], - [ - "▁Germ", - "any" - ], - [ - "▁d", - "jango" - ], - [ - "▁", - "django" - ], - [ - "▁trans", - "ition" - ], - [ - "▁", - "transition" - ], - [ - "▁happ", - "ened" - ], - [ - "▁happen", - "ed" - ], - [ - "▁beaut", - "iful" - ], - [ - "▁ne", - "ither" - ], - [ - "▁nei", - "ther" - ], - [ - "▁li", - "braries" - ], - [ - "▁h", - "ide" - ], - [ - "▁hi", - "de" - ], - [ - "▁hid", - "e" - ], - [ - "▁", - "hide" - ], - [ - "al", - "g" - ], - [ - "a", - "lg" - ], - [ - "▁a", - "spect" - ], - [ - "▁as", - "pect" - ], - [ - "▁asp", - "ect" - ], - [ - "▁for", - "get" - ], - [ - "▁forg", - "et" - ], - [ - "cade", - "my" - ], - [ - "cadem", - "y" - ], - [ - "on", - "te" - ], - [ - "ont", - "e" - ], - [ - "re", - "fix" - ], - [ - "ref", - "ix" - ], - [ - "▁cl", - "oud" - ], - [ - "▁clo", - "ud" - ], - [ - "▁", - "cloud" - ], - [ - "ne", - "d" - ], - [ - "n", - "ed" - ], - [ - "cd", - "ots" - ], - [ - "cdot", - "s" - ], - [ - "c", - "dots" - ], - [ - "reg", - "ister" - ], - [ - "ny", - "m" - ], - [ - "n", - "ym" - ], - [ - ".)", - ":" - ], - [ - ".", - "):" - ], - [ - "▁J", - "ew" - ], - [ - "▁Je", - "w" - ], - [ - "▁t", - "rès" - ], - [ - "▁tr", - "ès" - ], - [ - "ни", - "че" - ], - [ - "▁D", - "or" - ], - [ - "▁Do", - "r" - ], - [ - "▁p", - "roc" - ], - [ - "▁pro", - "c" - ], - [ - "▁pr", - "oc" - ], - [ - "▁", - "proc" - ], - [ - "▁g", - "an" - ], - [ - "▁ga", - "n" - ], - [ - "▁", - "gan" - ], - [ - "▁", - "є" - ], - [ - "▁S", - "av" - ], - [ - "▁Sa", - "v" - ], - [ - "v", - "í" - ], - [ - "Setting", - "s" - ], - [ - "S", - "ettings" - ], - [ - "▁V", - "ari" - ], - [ - "▁Var", - "i" - ], - [ - "▁Va", - "ri" - ], - [ - "▁", - "Vari" - ], - [ - "▁c", - "ours" - ], - [ - "▁co", - "urs" - ], - [ - "▁cour", - "s" - ], - [ - "▁cou", - "rs" - ], - [ - "R", - "o" - ], - [ - "▁con", - "j" - ], - [ - "▁re", - "asons" - ], - [ - "▁reason", - "s" - ], - [ - "▁re", - "ader" - ], - [ - "▁read", - "er" - ], - [ - "▁", - "reader" - ], - [ - "лекс", - "анд" - ], - [ - "ic", - "ate" - ], - [ - "ica", - "te" - ], - [ - "})", - "," - ], - [ - "}", - ")," - ], - [ - "▁task", - "s" - ], - [ - "▁", - "tasks" - ], - [ - "▁R", - "ay" - ], - [ - "▁Ra", - "y" - ], - [ - "▁r", - "ic" - ], - [ - "▁ri", - "c" - ], - [ - "▁", - "ric" - ], - [ - "K", - "e" - ], - [ - "on", - "ie" - ], - [ - "oni", - "e" - ], - [ - "o", - "nie" - ], - [ - "r", - "f" - ], - [ - ")", - "[" - ], - [ - "▁sub", - "sequ" - ], - [ - "▁subs", - "equ" - ], - [ - "▁T", - "urn" - ], - [ - "▁Tur", - "n" - ], - [ - "▁Tu", - "rn" - ], - [ - "▁", - "Turn" - ], - [ - "▁VI", - "AF" - ], - [ - "math", - "sf" - ], - [ - "H", - "E" - ], - [ - "▁dec", - "lare" - ], - [ - "▁decl", - "are" - ], - [ - "▁decla", - "re" - ], - [ - "▁declar", - "e" - ], - [ - "▁pro", - "tocol" - ], - [ - "▁proto", - "col" - ], - [ - "▁", - "protocol" - ], - [ - "▁P", - "C" - ], - [ - "▁", - "PC" - ], - [ - "ци", - "он" - ], - [ - "View", - "ById" - ], - [ - "▁an", - "imation" - ], - [ - "▁anim", - "ation" - ], - [ - "▁", - "animation" - ], - [ - "▁conf", - "used" - ], - [ - "ви", - "ч" - ], - [ - "▁en", - "abled" - ], - [ - "▁enable", - "d" - ], - [ - "▁", - "enabled" - ], - [ - "ow", - "o" - ], - [ - "o", - "wo" - ], - [ - "ás", - "t" - ], - [ - "á", - "st" - ], - [ - "ö", - "t" - ], - [ - "▁m", - "and" - ], - [ - "▁ma", - "nd" - ], - [ - "▁man", - "d" - ], - [ - "▁R", - "ail" - ], - [ - "▁Ra", - "il" - ], - [ - "field", - "s" - ], - [ - "▁K", - "ap" - ], - [ - "▁Ka", - "p" - ], - [ - "▁al", - "gebra" - ], - [ - "▁", - "algebra" - ], - [ - "▁С", - "у" - ], - [ - "fér", - "ence" - ], - [ - "▁C", - "urrent" - ], - [ - "▁Cur", - "rent" - ], - [ - "▁", - "Current" - ], - [ - "с", - "но" - ], - [ - "▁L", - "im" - ], - [ - "▁Li", - "m" - ], - [ - "Par", - "ams" - ], - [ - "Param", - "s" - ], - [ - "Pa", - "rams" - ], - [ - "▁Ant", - "onio" - ], - [ - "▁Anton", - "io" - ], - [ - "▁Anto", - "nio" - ], - [ - "▁t", - "v" - ], - [ - "▁", - "tv" - ], - [ - "la", - "te" - ], - [ - "lat", - "e" - ], - [ - "l", - "ate" - ], - [ - "if", - "er" - ], - [ - "ife", - "r" - ], - [ - "i", - "fer" - ], - [ - "En", - "try" - ], - [ - "Ent", - "ry" - ], - [ - "▁S", - "erv" - ], - [ - "▁Se", - "rv" - ], - [ - "▁Ser", - "v" - ], - [ - "▁", - "Serv" - ], - [ - "▁mus", - "ical" - ], - [ - "▁music", - "al" - ], - [ - "▁musica", - "l" - ], - [ - "▁t", - "race" - ], - [ - "▁tr", - "ace" - ], - [ - "▁tra", - "ce" - ], - [ - "▁trac", - "e" - ], - [ - "▁", - "trace" - ], - [ - "▁s", - "cient" - ], - [ - "▁sc", - "ient" - ], - [ - "▁sci", - "ent" - ], - [ - "fi", - "c" - ], - [ - "f", - "ic" - ], - [ - "▁for", - "got" - ], - [ - "▁forg", - "ot" - ], - [ - "v", - "ideo" - ], - [ - "▁o", - "lder" - ], - [ - "▁old", - "er" - ], - [ - "▁ol", - "der" - ], - [ - "▁", - "older" - ], - [ - "Tr", - "ee" - ], - [ - "T", - "ree" - ], - [ - "▁u", - "ns" - ], - [ - "▁un", - "s" - ], - [ - "▁", - "uns" - ], - [ - "ни", - "ки" - ], - [ - "ник", - "и" - ], - [ - "▁E", - "uropa" - ], - [ - "▁Europ", - "a" - ], - [ - "▁Euro", - "pa" - ], - [ - "▁Z", - "we" - ], - [ - "▁Zw", - "e" - ], - [ - "▁б", - "е" - ], - [ - "▁", - "бе" - ], - [ - "▁v", - "ec" - ], - [ - "▁ve", - "c" - ], - [ - "▁", - "vec" - ], - [ - "ж", - "у" - ], - [ - "Mat", - "ch" - ], - [ - "M", - "atch" - ], - [ - "sp", - "an" - ], - [ - "s", - "pan" - ], - [ - "▁bl", - "ank" - ], - [ - "▁blan", - "k" - ], - [ - "▁", - "blank" - ], - [ - "▁sp", - "äter" - ], - [ - "▁T", - "y" - ], - [ - "▁", - "Ty" - ], - [ - "▁d", - "ict" - ], - [ - "▁di", - "ct" - ], - [ - "▁dic", - "t" - ], - [ - "▁", - "dict" - ], - [ - "ñ", - "a" - ], - [ - "▁conf", - "irm" - ], - [ - "▁confir", - "m" - ], - [ - "▁", - "confirm" - ], - [ - "▁v", - "ý" - ], - [ - "за", - "н" - ], - [ - "з", - "ан" - ], - [ - "Re", - "l" - ], - [ - "R", - "el" - ], - [ - "fil", - "m" - ], - [ - "fi", - "lm" - ], - [ - "▁R", - "ot" - ], - [ - "▁Ro", - "t" - ], - [ - "▁", - "Rot" - ], - [ - "▁H", - "y" - ], - [ - "▁", - "Hy" - ], - [ - "ка", - "х" - ], - [ - "▁dem", - "and" - ], - [ - "▁min", - "ist" - ], - [ - "▁mini", - "st" - ], - [ - "▁Mad", - "rid" - ], - [ - "▁us", - "ual" - ], - [ - "sp", - "iel" - ], - [ - "s", - "piel" - ], - [ - "er", - "os" - ], - [ - "ero", - "s" - ], - [ - "e", - "ros" - ], - [ - "▁t", - "utorial" - ], - [ - "▁tut", - "orial" - ], - [ - "▁", - "tutorial" - ], - [ - "▁С", - "сылки" - ], - [ - "s", - "ys" - ], - [ - "ци", - "аль" - ], - [ - "▁sp", - "read" - ], - [ - "▁spr", - "ead" - ], - [ - "▁spre", - "ad" - ], - [ - "▁con", - "vers" - ], - [ - "▁conver", - "s" - ], - [ - "▁conv", - "ers" - ], - [ - "▁r", - "oll" - ], - [ - "▁ro", - "ll" - ], - [ - "▁rol", - "l" - ], - [ - "▁", - "roll" - ], - [ - "artifact", - "Id" - ], - [ - "▁N", - "umber" - ], - [ - "▁Num", - "ber" - ], - [ - "▁", - "Number" - ], - [ - "▁sym", - "met" - ], - [ - "▁M", - "ult" - ], - [ - "▁Mu", - "lt" - ], - [ - "▁Mul", - "t" - ], - [ - "▁", - "Mult" - ], - [ - "ex", - "pected" - ], - [ - "exp", - "ected" - ], - [ - "expect", - "ed" - ], - [ - "▁a", - "xis" - ], - [ - "▁ax", - "is" - ], - [ - "▁", - "axis" - ], - [ - "▁match", - "ing" - ], - [ - "▁f", - "ood" - ], - [ - "▁fo", - "od" - ], - [ - "▁foo", - "d" - ], - [ - "group", - "Id" - ], - [ - "Map", - "p" - ], - [ - "Ma", - "pp" - ], - [ - "M", - "app" - ], - [ - "▁с", - "вя" - ], - [ - "▁v", - "end" - ], - [ - "▁ve", - "nd" - ], - [ - "▁ven", - "d" - ], - [ - "F", - "ound" - ], - [ - "ot", - "to" - ], - [ - "ott", - "o" - ], - [ - "o", - "tto" - ], - [ - "Ca", - "t" - ], - [ - "C", - "at" - ], - [ - "cri", - "t" - ], - [ - "cr", - "it" - ], - [ - "c", - "rit" - ], - [ - "ist", - "ent" - ], - [ - "iste", - "nt" - ], - [ - "isten", - "t" - ], - [ - "▁d", - "rei" - ], - [ - "▁dr", - "ei" - ], - [ - "▁dre", - "i" - ], - [ - "▁en", - "ded" - ], - [ - "▁end", - "ed" - ], - [ - "▁ende", - "d" - ], - [ - "▁", - "ended" - ], - [ - "▁T", - "ele" - ], - [ - "▁Te", - "le" - ], - [ - "▁Tel", - "e" - ], - [ - "com", - "ponent" - ], - [ - "▁invol", - "ved" - ], - [ - "▁involve", - "d" - ], - [ - "▁Est", - "ados" - ], - [ - "▁Estado", - "s" - ], - [ - "▁Estad", - "os" - ], - [ - "▁d", - "anger" - ], - [ - "▁dan", - "ger" - ], - [ - "▁ch", - "ain" - ], - [ - "▁cha", - "in" - ], - [ - "▁", - "chain" - ], - [ - "▁P", - "rom" - ], - [ - "▁Pro", - "m" - ], - [ - "▁Pr", - "om" - ], - [ - "▁", - "Prom" - ], - [ - "ho", - "m" - ], - [ - "h", - "om" - ], - [ - "▁pol", - "ít" - ], - [ - "co", - "p" - ], - [ - "c", - "op" - ], - [ - "▁n", - "ap" - ], - [ - "▁na", - "p" - ], - [ - "▁", - "nap" - ], - [ - "ri", - "f" - ], - [ - "r", - "if" - ], - [ - "ple", - "ments" - ], - [ - "pl", - "ements" - ], - [ - "plement", - "s" - ], - [ - "▁v", - "ent" - ], - [ - "▁ve", - "nt" - ], - [ - "▁ven", - "t" - ], - [ - "▁", - "vent" - ], - [ - "an", - "na" - ], - [ - "ann", - "a" - ], - [ - "an", - "ted" - ], - [ - "ant", - "ed" - ], - [ - "ante", - "d" - ], - [ - "date", - "d" - ], - [ - "da", - "ted" - ], - [ - "dat", - "ed" - ], - [ - "d", - "ated" - ], - [ - "an", - "th" - ], - [ - "ant", - "h" - ], - [ - "a", - "nth" - ], - [ - "▁thread", - "s" - ], - [ - "▁thre", - "ads" - ], - [ - "▁", - "threads" - ], - [ - "зо", - "ва" - ], - [ - "зов", - "а" - ], - [ - "з", - "ова" - ], - [ - "▁ста", - "нов" - ], - [ - "▁стан", - "ов" - ], - [ - "▁", - "станов" - ], - [ - "▁e", - "erst" - ], - [ - "▁eer", - "st" - ], - [ - "bu", - "f" - ], - [ - "b", - "uf" - ], - [ - "he", - "id" - ], - [ - "▁R", - "u" - ], - [ - "▁P", - "rim" - ], - [ - "▁Pr", - "im" - ], - [ - "▁Pri", - "m" - ], - [ - "▁", - "Prim" - ], - [ - "▁m", - "igr" - ], - [ - "▁mi", - "gr" - ], - [ - "▁mig", - "r" - ], - [ - "▁", - "migr" - ], - [ - "▁Un", - "idos" - ], - [ - "▁ar", - "bitr" - ], - [ - "▁r", - "oman" - ], - [ - "▁ro", - "man" - ], - [ - "▁rom", - "an" - ], - [ - "ount", - "ry" - ], - [ - "oun", - "try" - ], - [ - "ult", - "ur" - ], - [ - "▁K", - "önig" - ], - [ - "▁Kö", - "nig" - ], - [ - "▁an", - "not" - ], - [ - "▁ann", - "ot" - ], - [ - "▁anno", - "t" - ], - [ - "▁", - "annot" - ], - [ - "ach", - "ing" - ], - [ - "ac", - "hing" - ], - [ - "achi", - "ng" - ], - [ - "▁H", - "aupt" - ], - [ - "▁Ha", - "upt" - ], - [ - "um", - "in" - ], - [ - "umi", - "n" - ], - [ - "u", - "min" - ], - [ - "▁h", - "em" - ], - [ - "▁he", - "m" - ], - [ - "▁", - "hem" - ], - [ - "ck", - "ets" - ], - [ - "cket", - "s" - ], - [ - "cke", - "ts" - ], - [ - "ba", - "u" - ], - [ - "b", - "au" - ], - [ - "ect", - "ion" - ], - [ - "ec", - "tion" - ], - [ - "e", - "ction" - ], - [ - "ef", - "t" - ], - [ - "e", - "ft" - ], - [ - "▁package", - "s" - ], - [ - "▁pack", - "ages" - ], - [ - "▁", - "packages" - ], - [ - "▁K", - "ur" - ], - [ - "▁Ku", - "r" - ], - [ - "th", - "ur" - ], - [ - "▁p", - "ays" - ], - [ - "▁pa", - "ys" - ], - [ - "▁pay", - "s" - ], - [ - "li", - "ament" - ], - [ - "lia", - "ment" - ], - [ - "▁Б", - "у" - ], - [ - "▁c", - "ada" - ], - [ - "▁ca", - "da" - ], - [ - "▁cad", - "a" - ], - [ - "po", - "ints" - ], - [ - "point", - "s" - ], - [ - "oc", - "ket" - ], - [ - "ock", - "et" - ], - [ - "o", - "cket" - ], - [ - "▁v", - "erb" - ], - [ - "▁ver", - "b" - ], - [ - "▁ve", - "rb" - ], - [ - "▁", - "verb" - ], - [ - "ле", - "е" - ], - [ - "▁sub", - "mit" - ], - [ - "▁subm", - "it" - ], - [ - "▁", - "submit" - ], - [ - "▁s", - "an" - ], - [ - "▁sa", - "n" - ], - [ - "▁", - "san" - ], - [ - "ru", - "by" - ], - [ - "r", - "uby" - ], - [ - "▁e", - "ast" - ], - [ - "▁eas", - "t" - ], - [ - "▁", - "east" - ], - [ - "ko", - "v" - ], - [ - "k", - "ov" - ], - [ - "▁Ver", - "lag" - ], - [ - "▁Verl", - "ag" - ], - [ - "▁", - "Verlag" - ], - [ - "▁s", - "pot" - ], - [ - "▁sp", - "ot" - ], - [ - "▁spo", - "t" - ], - [ - "▁", - "spot" - ], - [ - "pp", - "o" - ], - [ - "p", - "po" - ], - [ - "E", - "ach" - ], - [ - "je", - "kt" - ], - [ - "▁Bi", - "ographie" - ], - [ - "▁ne", - "ws" - ], - [ - "▁new", - "s" - ], - [ - "▁", - "news" - ], - [ - "▁pa", - "ís" - ], - [ - "uf", - "act" - ], - [ - "u", - "fact" - ], - [ - "▁d", - "ia" - ], - [ - "▁di", - "a" - ], - [ - "▁", - "dia" - ], - [ - "ко", - "ва" - ], - [ - "ков", - "а" - ], - [ - "к", - "ова" - ], - [ - "▁accom", - "pl" - ], - [ - "▁accomp", - "l" - ], - [ - "▁É", - "t" - ], - [ - "▁", - "Ét" - ], - [ - "il", - "ities" - ], - [ - "ili", - "ties" - ], - [ - "▁i", - "hm" - ], - [ - "▁ih", - "m" - ], - [ - "in", - "voke" - ], - [ - "inv", - "oke" - ], - [ - "▁app", - "end" - ], - [ - "▁ap", - "pend" - ], - [ - "▁appe", - "nd" - ], - [ - "▁", - "append" - ], - [ - ".)", - "," - ], - [ - ".", - ")," - ], - [ - "▁l", - "ab" - ], - [ - "▁la", - "b" - ], - [ - "▁", - "lab" - ], - [ - "an", - "ging" - ], - [ - "ang", - "ing" - ], - [ - "is", - "tan" - ], - [ - "ist", - "an" - ], - [ - "ista", - "n" - ], - [ - "i", - "stan" - ], - [ - "re", - "sol" - ], - [ - "res", - "ol" - ], - [ - "reso", - "l" - ], - [ - "▁S", - "ection" - ], - [ - "▁Se", - "ction" - ], - [ - "▁Sec", - "tion" - ], - [ - "▁", - "Section" - ], - [ - "Par", - "ent" - ], - [ - "Pa", - "rent" - ], - [ - "mo", - "z" - ], - [ - "m", - "oz" - ], - [ - "Ma", - "t" - ], - [ - "M", - "at" - ], - [ - "st", - "yles" - ], - [ - "style", - "s" - ], - [ - "sty", - "les" - ], - [ - "un", - "den" - ], - [ - "und", - "en" - ], - [ - "unde", - "n" - ], - [ - "“", - "," - ], - [ - "irt", - "schaft" - ], - [ - "ки", - "м" - ], - [ - "к", - "им" - ], - [ - "▁Fin", - "ally" - ], - [ - "▁Final", - "ly" - ], - [ - "ph", - "en" - ], - [ - "phe", - "n" - ], - [ - "p", - "hen" - ], - [ - "▁P", - "ac" - ], - [ - "▁Pa", - "c" - ], - [ - "▁Array", - "List" - ], - [ - "▁", - "ArrayList" - ], - [ - "▁re", - "cover" - ], - [ - "▁rec", - "over" - ], - [ - "▁e", - "ducation" - ], - [ - "▁educ", - "ation" - ], - [ - "mod", - "els" - ], - [ - "model", - "s" - ], - [ - "mode", - "ls" - ], - [ - "pe", - "d" - ], - [ - "p", - "ed" - ], - [ - "▁h", - "appy" - ], - [ - "▁ha", - "ppy" - ], - [ - "▁happ", - "y" - ], - [ - "ч", - "у" - ], - [ - "▁guer", - "ra" - ], - [ - "me", - "dia" - ], - [ - "med", - "ia" - ], - [ - "medi", - "a" - ], - [ - "m", - "edia" - ], - [ - "O", - "F" - ], - [ - "▁ens", - "ure" - ], - [ - "▁", - "ensure" - ], - [ - "Mar", - "k" - ], - [ - "M", - "ark" - ], - [ - "data", - "base" - ], - [ - "dat", - "abase" - ], - [ - "datab", - "ase" - ], - [ - "d", - "atabase" - ], - [ - "og", - "gle" - ], - [ - "▁pub", - "lish" - ], - [ - "▁publi", - "sh" - ], - [ - "▁", - "publish" - ], - [ - "O", - "W" - ], - [ - "▁B", - "au" - ], - [ - "▁Ba", - "u" - ], - [ - "?", - "." - ], - [ - "▁ча", - "сти" - ], - [ - "▁час", - "ти" - ], - [ - "▁част", - "и" - ], - [ - "▁re", - "pository" - ], - [ - "▁repos", - "itory" - ], - [ - "▁", - "repository" - ], - [ - "▁M", - "att" - ], - [ - "▁Ma", - "tt" - ], - [ - "▁Mat", - "t" - ], - [ - "hi", - "gh" - ], - [ - "h", - "igh" - ], - [ - "ov", - "en" - ], - [ - "ove", - "n" - ], - [ - "o", - "ven" - ], - [ - "▁g", - "er" - ], - [ - "▁ge", - "r" - ], - [ - "▁", - "ger" - ], - [ - "▁un", - "known" - ], - [ - "▁", - "unknown" - ], - [ - "Am", - "er" - ], - [ - "A", - "mer" - ], - [ - "▁B", - "rown" - ], - [ - "▁Br", - "own" - ], - [ - "▁Bro", - "wn" - ], - [ - "▁Brow", - "n" - ], - [ - "AL", - "L" - ], - [ - "A", - "LL" - ], - [ - "▁result", - "ing" - ], - [ - "▁b", - "or" - ], - [ - "▁bo", - "r" - ], - [ - "▁", - "bor" - ], - [ - "▁po", - "et" - ], - [ - "ни", - "ми" - ], - [ - "ним", - "и" - ], - [ - "Em", - "ail" - ], - [ - "E", - "mail" - ], - [ - "F", - "ont" - ], - [ - "▁h", - "ist" - ], - [ - "▁his", - "t" - ], - [ - "▁hi", - "st" - ], - [ - "▁to", - "day" - ], - [ - "▁tod", - "ay" - ], - [ - "▁toda", - "y" - ], - [ - "▁", - "today" - ], - [ - "▁B", - "erg" - ], - [ - "▁Be", - "rg" - ], - [ - "▁Ber", - "g" - ], - [ - "▁but", - "tons" - ], - [ - "▁button", - "s" - ], - [ - "та", - "л" - ], - [ - "т", - "ал" - ], - [ - "▁s", - "ni" - ], - [ - "▁sn", - "i" - ], - [ - "▁че", - "лов" - ], - [ - "Cr", - "e" - ], - [ - "C", - "re" - ], - [ - "▁un", - "ion" - ], - [ - "▁", - "union" - ], - [ - "▁z", - "ich" - ], - [ - "ish", - "op" - ], - [ - "i", - "shop" - ], - [ - "▁qu", - "ando" - ], - [ - "▁quand", - "o" - ], - [ - "▁quan", - "do" - ], - [ - "P", - "o" - ], - [ - "CT", - "ION" - ], - [ - "▁C", - "ost" - ], - [ - "▁Co", - "st" - ], - [ - "▁Cos", - "t" - ], - [ - "▁", - "Cost" - ], - [ - "су", - "дар" - ], - [ - "er", - "ved" - ], - [ - "erv", - "ed" - ], - [ - "erve", - "d" - ], - [ - "Not", - "e" - ], - [ - "No", - "te" - ], - [ - "N", - "ote" - ], - [ - "Equ", - "al" - ], - [ - "Eq", - "ual" - ], - [ - "E", - "qual" - ], - [ - "ли", - "я" - ], - [ - "бу", - "р" - ], - [ - "б", - "ур" - ], - [ - "▁ab", - "stract" - ], - [ - "▁abstra", - "ct" - ], - [ - "▁", - "abstract" - ], - [ - "st", - "op" - ], - [ - "sto", - "p" - ], - [ - "s", - "top" - ], - [ - "▁ad", - "vice" - ], - [ - "▁adv", - "ice" - ], - [ - "▁i", - "con" - ], - [ - "▁ic", - "on" - ], - [ - "▁", - "icon" - ], - [ - "▁tr", - "avel" - ], - [ - "▁tra", - "vel" - ], - [ - "▁trav", - "el" - ], - [ - "B", - "S" - ], - [ - "ve", - "ns" - ], - [ - "ven", - "s" - ], - [ - "v", - "ens" - ], - [ - "▁b", - "atch" - ], - [ - "▁bat", - "ch" - ], - [ - "▁", - "batch" - ], - [ - "li", - "que" - ], - [ - "liqu", - "e" - ], - [ - "l", - "ique" - ], - [ - "she", - "et" - ], - [ - "s", - "heet" - ], - [ - "▁i", - "hre" - ], - [ - "▁ih", - "re" - ], - [ - "▁ihr", - "e" - ], - [ - "em", - "on" - ], - [ - "emo", - "n" - ], - [ - "e", - "mon" - ], - [ - "ber", - "to" - ], - [ - "bert", - "o" - ], - [ - "▁as", - "signed" - ], - [ - "▁ass", - "igned" - ], - [ - "▁assign", - "ed" - ], - [ - "ь", - "ю" - ], - [ - "Ph", - "one" - ], - [ - "▁a", - "ward" - ], - [ - "▁aw", - "ard" - ], - [ - "▁function", - "ality" - ], - [ - "▁functional", - "ity" - ], - [ - "al", - "la" - ], - [ - "all", - "a" - ], - [ - "a", - "lla" - ], - [ - "▁D", - "am" - ], - [ - "▁Da", - "m" - ], - [ - "▁ci", - "udad" - ], - [ - "▁cl", - "uster" - ], - [ - "▁clust", - "er" - ], - [ - "▁", - "cluster" - ], - [ - "De", - "scription" - ], - [ - "Des", - "cription" - ], - [ - "▁s", - "heet" - ], - [ - "▁she", - "et" - ], - [ - "▁", - "sheet" - ], - [ - "▁Austral", - "ian" - ], - [ - "▁Australia", - "n" - ], - [ - "▁»", - "." - ], - [ - "▁", - "»." - ], - [ - "▁\"", - "<" - ], - [ - "▁wonder", - "ing" - ], - [ - "ain", - "e" - ], - [ - "ai", - "ne" - ], - [ - "a", - "ine" - ], - [ - "▁represent", - "ed" - ], - [ - "▁repres", - "ented" - ], - [ - "ka", - "ppa" - ], - [ - "kap", - "pa" - ], - [ - "k", - "appa" - ], - [ - "n", - "b" - ], - [ - "▁s", - "y" - ], - [ - "▁K", - "ö" - ], - [ - "=\"", - "#" - ], - [ - "▁s", - "even" - ], - [ - "▁se", - "ven" - ], - [ - "Direct", - "ory" - ], - [ - "D", - "irectory" - ], - [ - "▁s", - "ister" - ], - [ - "▁si", - "ster" - ], - [ - "▁sist", - "er" - ], - [ - "pl", - "ates" - ], - [ - "plate", - "s" - ], - [ - "pla", - "tes" - ], - [ - "▁l", - "uck" - ], - [ - "▁lu", - "ck" - ], - [ - "▁luc", - "k" - ], - [ - "▁rem", - "aining" - ], - [ - "▁remain", - "ing" - ], - [ - "▁V", - "ill" - ], - [ - "▁Vi", - "ll" - ], - [ - "▁Vil", - "l" - ], - [ - "wer", - "k" - ], - [ - "w", - "erk" - ], - [ - "an", - "ni" - ], - [ - "ann", - "i" - ], - [ - "et", - "ti" - ], - [ - "ett", - "i" - ], - [ - "fun", - "c" - ], - [ - "fu", - "nc" - ], - [ - "f", - "unc" - ], - [ - "▁b", - "an" - ], - [ - "▁ba", - "n" - ], - [ - "▁", - "ban" - ], - [ - "im", - "s" - ], - [ - "i", - "ms" - ], - [ - "mi", - "ss" - ], - [ - "mis", - "s" - ], - [ - "m", - "iss" - ], - [ - "ag", - "raph" - ], - [ - "agr", - "aph" - ], - [ - "a", - "graph" - ], - [ - "ек", - "си" - ], - [ - "е", - "кси" - ], - [ - "▁R", - "ef" - ], - [ - "▁Re", - "f" - ], - [ - "▁", - "Ref" - ], - [ - "ni", - "tt" - ], - [ - "nit", - "t" - ], - [ - "n", - "itt" - ], - [ - "▁G", - "ab" - ], - [ - "▁Ga", - "b" - ], - [ - "▁and", - "ere" - ], - [ - "▁jed", - "och" - ], - [ - "result", - "s" - ], - [ - "!", - "\\" - ], - [ - "▁l", - "isted" - ], - [ - "▁li", - "sted" - ], - [ - "▁list", - "ed" - ], - [ - "▁liste", - "d" - ], - [ - "▁l", - "oro" - ], - [ - "▁lo", - "ro" - ], - [ - "▁kn", - "ows" - ], - [ - "▁know", - "s" - ], - [ - "ж", - "но" - ], - [ - "R", - "ad" - ], - [ - "▁s", - "ocket" - ], - [ - "▁so", - "cket" - ], - [ - "▁soc", - "ket" - ], - [ - "▁", - "socket" - ], - [ - "mult", - "i" - ], - [ - "mul", - "ti" - ], - [ - "▁р", - "і" - ], - [ - "▁", - "рі" - ], - [ - "ra", - "ils" - ], - [ - "rai", - "ls" - ], - [ - "r", - "ails" - ], - [ - "▁t", - "ar" - ], - [ - "▁ta", - "r" - ], - [ - "▁", - "tar" - ], - [ - "▁gent", - "le" - ], - [ - "se", - "tt" - ], - [ - "set", - "t" - ], - [ - "s", - "ett" - ], - [ - "serv", - "ices" - ], - [ - "service", - "s" - ], - [ - "bo", - "und" - ], - [ - "b", - "ound" - ], - [ - "ig", - "keit" - ], - [ - "aj", - "a" - ], - [ - "a", - "ja" - ], - [ - "▁c", - "md" - ], - [ - "▁cm", - "d" - ], - [ - "▁", - "cmd" - ], - [ - "ag", - "ger" - ], - [ - "agg", - "er" - ], - [ - "▁b", - "a" - ], - [ - "▁", - "ba" - ], - [ - "▁Be", - "lg" - ], - [ - "▁Bel", - "g" - ], - [ - "▁K", - "le" - ], - [ - "▁Kl", - "e" - ], - [ - "▁word", - "t" - ], - [ - "▁wor", - "dt" - ], - [ - "▁f", - "ost" - ], - [ - "▁fo", - "st" - ], - [ - "▁fos", - "t" - ], - [ - "▁dim", - "ension" - ], - [ - "An", - "g" - ], - [ - "A", - "ng" - ], - [ - "um", - "ing" - ], - [ - "umin", - "g" - ], - [ - "umi", - "ng" - ], - [ - "u", - "ming" - ], - [ - "Ob", - "j" - ], - [ - "не", - "н" - ], - [ - "н", - "ен" - ], - [ - "▁M", - "arie" - ], - [ - "▁Mar", - "ie" - ], - [ - "▁Ma", - "rie" - ], - [ - "▁Mari", - "e" - ], - [ - "▁", - "Marie" - ], - [ - "ex", - "ists" - ], - [ - "exist", - "s" - ], - [ - "т", - "ро" - ], - [ - "▁бо", - "ль" - ], - [ - "▁", - "боль" - ], - [ - "em", - "ente" - ], - [ - "ement", - "e" - ], - [ - "emen", - "te" - ], - [ - "e", - "mente" - ], - [ - "▁J", - "on" - ], - [ - "▁Jo", - "n" - ], - [ - "SE", - "RT" - ], - [ - "SER", - "T" - ], - [ - "S", - "ERT" - ], - [ - "▁high", - "est" - ], - [ - "ak", - "i" - ], - [ - "a", - "ki" - ], - [ - "▁t", - "res" - ], - [ - "▁tr", - "es" - ], - [ - "▁tre", - "s" - ], - [ - "▁", - "tres" - ], - [ - "▁circ", - "um" - ], - [ - "▁D", - "own" - ], - [ - "▁Do", - "wn" - ], - [ - "▁Dow", - "n" - ], - [ - "▁", - "Down" - ], - [ - "om", - "men" - ], - [ - "omm", - "en" - ], - [ - "ur", - "er" - ], - [ - "ure", - "r" - ], - [ - "u", - "rer" - ], - [ - "▁caus", - "es" - ], - [ - "▁cause", - "s" - ], - [ - "▁ca", - "uses" - ], - [ - "ven", - "ue" - ], - [ - "iss", - "ance" - ], - [ - "▁influ", - "ence" - ], - [ - "▁influen", - "ce" - ], - [ - "▁f", - "at" - ], - [ - "▁fa", - "t" - ], - [ - "ре", - "ди" - ], - [ - "ред", - "и" - ], - [ - "р", - "еди" - ], - [ - "}\\", - "\\" - ], - [ - "}", - "\\\\" - ], - [ - "▁en", - "tr" - ], - [ - "▁ent", - "r" - ], - [ - "▁", - "entr" - ], - [ - "▁S", - "ign" - ], - [ - "▁Si", - "gn" - ], - [ - "▁Sig", - "n" - ], - [ - "▁", - "Sign" - ], - [ - "▁к", - "ла" - ], - [ - "▁", - "кла" - ], - [ - "▁b", - "inding" - ], - [ - "▁bind", - "ing" - ], - [ - "▁bin", - "ding" - ], - [ - "▁", - "binding" - ], - [ - "es", - "sen" - ], - [ - "ess", - "en" - ], - [ - "esse", - "n" - ], - [ - "▁Ф", - "ран" - ], - [ - "▁L", - "ocal" - ], - [ - "▁Lo", - "cal" - ], - [ - "▁Loc", - "al" - ], - [ - "▁", - "Local" - ], - [ - "▁я", - "вля" - ], - [ - "ap", - "pro" - ], - [ - "app", - "ro" - ], - [ - "▁dep", - "endencies" - ], - [ - "▁depend", - "encies" - ], - [ - "▁", - "dependencies" - ], - [ - "▁talk", - "ing" - ], - [ - "▁tal", - "king" - ], - [ - "▁zur", - "ück" - ], - [ - "con", - "nection" - ], - [ - "connect", - "ion" - ], - [ - "conne", - "ction" - ], - [ - "conn", - "ection" - ], - [ - "Act", - "ive" - ], - [ - "Activ", - "e" - ], - [ - "bb", - "e" - ], - [ - "b", - "be" - ], - [ - "ir", - "ls" - ], - [ - "irl", - "s" - ], - [ - "▁In", - "f" - ], - [ - "▁", - "Inf" - ], - [ - "w", - "d" - ], - [ - "▁и", - "с" - ], - [ - "▁", - "ис" - ], - [ - "ro", - "ad" - ], - [ - "▁con", - "ven" - ], - [ - "▁conv", - "en" - ], - [ - "ě", - "t" - ], - [ - "ве", - "з" - ], - [ - "в", - "ез" - ], - [ - "▁ent", - "ries" - ], - [ - "▁entr", - "ies" - ], - [ - "▁", - "entries" - ], - [ - "es", - "c" - ], - [ - "e", - "sc" - ], - [ - "▁b", - "its" - ], - [ - "▁bit", - "s" - ], - [ - "▁bi", - "ts" - ], - [ - "▁", - "bits" - ], - [ - "as", - "so" - ], - [ - "ass", - "o" - ], - [ - "W", - "R" - ], - [ - "sh", - "ips" - ], - [ - "ship", - "s" - ], - [ - "s", - "hips" - ], - [ - "▁d", - "és" - ], - [ - "▁dé", - "s" - ], - [ - "es", - "p" - ], - [ - "e", - "sp" - ], - [ - "Ma", - "ke" - ], - [ - "M", - "ake" - ], - [ - "▁famil", - "iar" - ], - [ - "▁familia", - "r" - ], - [ - "Ar", - "t" - ], - [ - "A", - "rt" - ], - [ - "▁ar", - "my" - ], - [ - "▁arm", - "y" - ], - [ - "ct", - "r" - ], - [ - "c", - "tr" - ], - [ - "ér", - "ic" - ], - [ - "éri", - "c" - ], - [ - "é", - "ric" - ], - [ - "que", - "ue" - ], - [ - "▁\\", - "{" - ], - [ - "▁", - "\\{" - ], - [ - "ue", - "la" - ], - [ - "uel", - "a" - ], - [ - "u", - "ela" - ], - [ - "am", - "iento" - ], - [ - "ami", - "ento" - ], - [ - "ши", - "х" - ], - [ - "ш", - "их" - ], - [ - "▁\"", - "\"\"" - ], - [ - "▁\"\"", - "\"" - ], - [ - "con", - "tr" - ], - [ - "cont", - "r" - ], - [ - "лл", - "е" - ], - [ - "л", - "ле" - ], - [ - "F", - "S" - ], - [ - "▁mar", - "ket" - ], - [ - "▁mark", - "et" - ], - [ - "▁", - "market" - ], - [ - "ån", - "g" - ], - [ - "å", - "ng" - ], - [ - "cite", - "p" - ], - [ - "cit", - "ep" - ], - [ - "Il", - "l" - ], - [ - "I", - "ll" - ], - [ - "ran", - "k" - ], - [ - "r", - "ank" - ], - [ - "▁s", - "ender" - ], - [ - "▁se", - "nder" - ], - [ - "▁send", - "er" - ], - [ - "▁sen", - "der" - ], - [ - "▁", - "sender" - ], - [ - "▁be", - "im" - ], - [ - "▁bei", - "m" - ], - [ - "ра", - "к" - ], - [ - "▁com", - "pat" - ], - [ - "▁comp", - "at" - ], - [ - "▁", - "compat" - ], - [ - "▁occ", - "urs" - ], - [ - "▁occur", - "s" - ], - [ - "▁d", - "iese" - ], - [ - "▁di", - "ese" - ], - [ - "▁die", - "se" - ], - [ - "▁dies", - "e" - ], - [ - "сти", - "ту" - ], - [ - "aw", - "a" - ], - [ - "a", - "wa" - ], - [ - "▁i", - "OS" - ], - [ - "▁Ch", - "inese" - ], - [ - "▁Chine", - "se" - ], - [ - "▁T", - "R" - ], - [ - "▁", - "TR" - ], - [ - "▁K", - "en" - ], - [ - "▁Ke", - "n" - ], - [ - "▁U", - "ne" - ], - [ - "▁Un", - "e" - ], - [ - "▁cre", - "ates" - ], - [ - "▁create", - "s" - ], - [ - "▁sh", - "owed" - ], - [ - "▁show", - "ed" - ], - [ - "▁sho", - "wed" - ], - [ - "▁é", - "v" - ], - [ - "▁", - "év" - ], - [ - "olog", - "ia" - ], - [ - "olo", - "gia" - ], - [ - "▁pro", - "test" - ], - [ - "▁prote", - "st" - ], - [ - "▁prot", - "est" - ], - [ - "▁P", - "f" - ], - [ - "▁s", - "quad" - ], - [ - "▁squ", - "ad" - ], - [ - "++", - "," - ], - [ - "á", - "v" - ], - [ - "▁ess", - "ere" - ], - [ - "з", - "я" - ], - [ - "ko", - "l" - ], - [ - "k", - "ol" - ], - [ - "▁slight", - "ly" - ], - [ - "ad", - "dr" - ], - [ - "add", - "r" - ], - [ - "â", - "n" - ], - [ - "▁red", - "uce" - ], - [ - "▁redu", - "ce" - ], - [ - "▁", - "reduce" - ], - [ - "▁\\", - "(\\" - ], - [ - "▁\\(", - "\\" - ], - [ - "▁D", - "ep" - ], - [ - "▁De", - "p" - ], - [ - "▁", - "Dep" - ], - [ - "▁gener", - "ic" - ], - [ - "▁gene", - "ric" - ], - [ - "▁", - "generic" - ], - [ - "Lo", - "ader" - ], - [ - "Load", - "er" - ], - [ - "ț", - "i" - ], - [ - "▁п", - "ос" - ], - [ - "▁по", - "с" - ], - [ - "▁occ", - "asion" - ], - [ - "▁occas", - "ion" - ], - [ - "▁L", - "ady" - ], - [ - "▁La", - "dy" - ], - [ - "▁Lad", - "y" - ], - [ - "ent", - "ity" - ], - [ - "enti", - "ty" - ], - [ - "▁av", - "ant" - ], - [ - "▁", - "avant" - ], - [ - "▁P", - "as" - ], - [ - "▁Pa", - "s" - ], - [ - "ag", - "gio" - ], - [ - "aggi", - "o" - ], - [ - "agg", - "io" - ], - [ - "\\", - "{" - ], - [ - "па", - "д" - ], - [ - "athol", - "ic" - ], - [ - "Pass", - "word" - ], - [ - "▁res", - "pond" - ], - [ - "▁resp", - "ond" - ], - [ - "▁", - "respond" - ], - [ - "▁N", - "on" - ], - [ - "▁No", - "n" - ], - [ - "▁", - "Non" - ], - [ - "A", - "G" - ], - [ - "ne", - "g" - ], - [ - "n", - "eg" - ], - [ - "▁у", - "с" - ], - [ - "▁", - "ус" - ], - [ - "bl", - "ob" - ], - [ - "blo", - "b" - ], - [ - "b", - "lob" - ], - [ - "ck", - "e" - ], - [ - "c", - "ke" - ], - [ - "▁Cons", - "ider" - ], - [ - "▁C", - "are" - ], - [ - "▁Car", - "e" - ], - [ - "▁Ca", - "re" - ], - [ - "ik", - "i" - ], - [ - "i", - "ki" - ], - [ - "▁Ch", - "icago" - ], - [ - "in", - "den" - ], - [ - "ind", - "en" - ], - [ - "inde", - "n" - ], - [ - "▁C", - "op" - ], - [ - "▁Co", - "p" - ], - [ - "]", - "+" - ], - [ - "ö", - "m" - ], - [ - "év", - "rier" - ], - [ - "к", - "ло" - ], - [ - "al", - "en" - ], - [ - "ale", - "n" - ], - [ - "a", - "len" - ], - [ - "▁m", - "aj" - ], - [ - "▁ma", - "j" - ], - [ - "ra", - "cy" - ], - [ - "rac", - "y" - ], - [ - "r", - "acy" - ], - [ - "or", - "te" - ], - [ - "ort", - "e" - ], - [ - "ien", - "ts" - ], - [ - "ient", - "s" - ], - [ - "i", - "ents" - ], - [ - "el", - "ls" - ], - [ - "ell", - "s" - ], - [ - "act", - "ivity" - ], - [ - "activ", - "ity" - ], - [ - "▁r", - "untime" - ], - [ - "▁run", - "time" - ], - [ - "▁runt", - "ime" - ], - [ - "▁", - "runtime" - ], - [ - "NU", - "LL" - ], - [ - "N", - "ULL" - ], - [ - "▁poss", - "ibly" - ], - [ - "▁possib", - "ly" - ], - [ - "▁s", - "tri" - ], - [ - "▁st", - "ri" - ], - [ - "▁str", - "i" - ], - [ - "iz", - "i" - ], - [ - "i", - "zi" - ], - [ - "▁m", - "ir" - ], - [ - "▁mi", - "r" - ], - [ - "▁", - "mir" - ], - [ - "▁V", - "ersion" - ], - [ - "▁Vers", - "ion" - ], - [ - "▁", - "Version" - ], - [ - "pr", - "ime" - ], - [ - "prim", - "e" - ], - [ - "▁tw", - "enty" - ], - [ - "▁M", - "ah" - ], - [ - "▁Ma", - "h" - ], - [ - "▁s", - "ounds" - ], - [ - "▁sound", - "s" - ], - [ - "ше", - "н" - ], - [ - "ш", - "ен" - ], - [ - "cl", - "usion" - ], - [ - "clus", - "ion" - ], - [ - "ac", - "z" - ], - [ - "a", - "cz" - ], - [ - "▁determ", - "ined" - ], - [ - "▁determine", - "d" - ], - [ - "▁determin", - "ed" - ], - [ - "▁R", - "ep" - ], - [ - "▁Re", - "p" - ], - [ - "▁", - "Rep" - ], - [ - "▁Land", - "es" - ], - [ - "▁Lan", - "des" - ], - [ - "▁w", - "all" - ], - [ - "▁wa", - "ll" - ], - [ - "▁wal", - "l" - ], - [ - "▁", - "wall" - ], - [ - "ig", - "i" - ], - [ - "i", - "gi" - ], - [ - "▁re", - "set" - ], - [ - "▁res", - "et" - ], - [ - "▁", - "reset" - ], - [ - "ш", - "о" - ], - [ - "ya", - "n" - ], - [ - "y", - "an" - ], - [ - "Me", - "t" - ], - [ - "M", - "et" - ], - [ - "e", - "i" - ], - [ - "▁app", - "earance" - ], - [ - "▁appear", - "ance" - ], - [ - "▁f", - "ois" - ], - [ - "▁fo", - "is" - ], - [ - "▁foi", - "s" - ], - [ - "▁", - "fois" - ], - [ - "▁n", - "ell" - ], - [ - "▁ne", - "ll" - ], - [ - "▁nel", - "l" - ], - [ - "▁", - "nell" - ], - [ - "es", - "i" - ], - [ - "e", - "si" - ], - [ - "ё", - "т" - ], - [ - "lo", - "or" - ], - [ - "l", - "oor" - ], - [ - "▁U", - "l" - ], - [ - "▁resol", - "ution" - ], - [ - "▁f", - "ot" - ], - [ - "▁fo", - "t" - ], - [ - "▁through", - "out" - ], - [ - "▁r", - "i" - ], - [ - "▁", - "ri" - ], - [ - "Le", - "vel" - ], - [ - "po", - "ol" - ], - [ - "p", - "ool" - ], - [ - "▁id", - "entity" - ], - [ - "▁ident", - "ity" - ], - [ - "▁", - "identity" - ], - [ - "▁j", - "anu" - ], - [ - "▁jan", - "u" - ], - [ - "▁ja", - "nu" - ], - [ - "▁im", - "per" - ], - [ - "▁imp", - "er" - ], - [ - "▁", - "imper" - ], - [ - "▁ö", - "ver" - ], - [ - "}", - "`" - ], - [ - "▁in", - "fer" - ], - [ - "▁inf", - "er" - ], - [ - "▁d", - "ates" - ], - [ - "▁da", - "tes" - ], - [ - "▁dat", - "es" - ], - [ - "▁date", - "s" - ], - [ - "▁", - "dates" - ], - [ - "▁Stand", - "ard" - ], - [ - "▁", - "Standard" - ], - [ - "for", - "ce" - ], - [ - "oc", - "key" - ], - [ - "ock", - "ey" - ], - [ - "ter", - "a" - ], - [ - "te", - "ra" - ], - [ - "t", - "era" - ], - [ - "▁dist", - "ingu" - ], - [ - "▁pres", - "ence" - ], - [ - "li", - "ca" - ], - [ - "lic", - "a" - ], - [ - "l", - "ica" - ], - [ - "▁le", - "aving" - ], - [ - "it", - "ung" - ], - [ - "itu", - "ng" - ], - [ - "é", - "b" - ], - [ - "▁estab", - "lish" - ], - [ - "▁m", - "aar" - ], - [ - "▁ma", - "ar" - ], - [ - "ad", - "i" - ], - [ - "a", - "di" - ], - [ - "▁New", - "s" - ], - [ - "▁Ne", - "ws" - ], - [ - "▁", - "News" - ], - [ - "az", - "on" - ], - [ - "a", - "zon" - ], - [ - "fo", - "lg" - ], - [ - "fol", - "g" - ], - [ - "f", - "olg" - ], - [ - "▁H", - "ence" - ], - [ - "▁Hen", - "ce" - ], - [ - "▁Y", - "e" - ], - [ - "▁f", - "ab" - ], - [ - "▁fa", - "b" - ], - [ - "▁", - "fab" - ], - [ - "▁f", - "ühr" - ], - [ - "▁", - "führ" - ], - [ - "it", - "map" - ], - [ - "▁V", - "ers" - ], - [ - "▁Ver", - "s" - ], - [ - "▁Ve", - "rs" - ], - [ - "ro", - "v" - ], - [ - "r", - "ov" - ], - [ - "Si", - "gn" - ], - [ - "S", - "ign" - ], - [ - "de", - "vice" - ], - [ - "dev", - "ice" - ], - [ - "S", - "igma" - ], - [ - "▁wet", - "enschapp" - ], - [ - "▁P", - "s" - ], - [ - "PA", - "TH" - ], - [ - "P", - "ATH" - ], - [ - "▁t", - "orn" - ], - [ - "▁to", - "rn" - ], - [ - "▁tor", - "n" - ], - [ - "ve", - "st" - ], - [ - "ves", - "t" - ], - [ - "v", - "est" - ], - [ - "ст", - "ов" - ], - [ - "сто", - "в" - ], - [ - "с", - "тов" - ], - [ - "ac", - "count" - ], - [ - "acc", - "ount" - ], - [ - "acco", - "unt" - ], - [ - "▁lar", - "gest" - ], - [ - "▁large", - "st" - ], - [ - "▁larg", - "est" - ], - [ - "▁per", - "cent" - ], - [ - "▁perce", - "nt" - ], - [ - "▁", - "percent" - ], - [ - "▁W", - "omen" - ], - [ - "▁Wo", - "men" - ], - [ - "▁im", - "g" - ], - [ - "▁", - "img" - ], - [ - "to", - "ol" - ], - [ - "t", - "ool" - ], - [ - "▁r", - "oce" - ], - [ - "▁ro", - "ce" - ], - [ - "▁a", - "y" - ], - [ - "▁", - "ay" - ], - [ - "in", - "et" - ], - [ - "ine", - "t" - ], - [ - "i", - "net" - ], - [ - "▁ao", - "ût" - ], - [ - "▁pol", - "ynomial" - ], - [ - "▁integr", - "al" - ], - [ - "▁integra", - "l" - ], - [ - "▁a", - "reas" - ], - [ - "▁are", - "as" - ], - [ - "▁area", - "s" - ], - [ - "}", - "'" - ], - [ - "▁h", - "yp" - ], - [ - "▁hy", - "p" - ], - [ - "loy", - "ee" - ], - [ - "та", - "ль" - ], - [ - "тал", - "ь" - ], - [ - "т", - "аль" - ], - [ - "▁pro", - "xy" - ], - [ - "▁", - "proxy" - ], - [ - "▁W", - "y" - ], - [ - "▁М", - "екси" - ], - [ - "▁Ме", - "кси" - ], - [ - "▁es", - "cape" - ], - [ - "▁esc", - "ape" - ], - [ - "▁", - "escape" - ], - [ - "ol", - "ar" - ], - [ - "ola", - "r" - ], - [ - "o", - "lar" - ], - [ - "▁mis", - "take" - ], - [ - "▁mist", - "ake" - ], - [ - ")}", - "{" - ], - [ - ")", - "}{" - ], - [ - "▁P", - "ot" - ], - [ - "▁Po", - "t" - ], - [ - "▁process", - "es" - ], - [ - "▁proc", - "esses" - ], - [ - "\">", - "\r" - ], - [ - "\"", - ">\r" - ], - [ - "hal", - "ten" - ], - [ - "halt", - "en" - ], - [ - "zz", - "a" - ], - [ - "z", - "za" - ], - [ - "am", - "o" - ], - [ - "a", - "mo" - ], - [ - "к", - "ре" - ], - [ - "▁W", - "ood" - ], - [ - "▁Wo", - "od" - ], - [ - "ø", - "r" - ], - [ - "▁с", - "ер" - ], - [ - "▁се", - "р" - ], - [ - "▁", - "сер" - ], - [ - "oc", - "ia" - ], - [ - "oci", - "a" - ], - [ - "o", - "cia" - ], - [ - "tw", - "o" - ], - [ - "t", - "wo" - ], - [ - "pro", - "file" - ], - [ - "prof", - "ile" - ], - [ - "▁A", - "st" - ], - [ - "▁As", - "t" - ], - [ - "em", - "bro" - ], - [ - "emb", - "ro" - ], - [ - "▁ar", - "ms" - ], - [ - "▁arm", - "s" - ], - [ - "in", - "as" - ], - [ - "ina", - "s" - ], - [ - "i", - "nas" - ], - [ - "in", - "nen" - ], - [ - "inn", - "en" - ], - [ - "▁m", - "sg" - ], - [ - "▁ms", - "g" - ], - [ - "▁", - "msg" - ], - [ - "IN", - "T" - ], - [ - "I", - "NT" - ], - [ - "▁b", - "atter" - ], - [ - "▁batt", - "er" - ], - [ - "▁bat", - "ter" - ], - [ - "ign", - "ment" - ], - [ - "▁v", - "y" - ], - [ - "▁", - "vy" - ], - [ - "H", - "rsg" - ], - [ - "▁G", - "rund" - ], - [ - "▁Gr", - "und" - ], - [ - "▁Gru", - "nd" - ], - [ - "ro", - "c" - ], - [ - "r", - "oc" - ], - [ - "se", - "g" - ], - [ - "s", - "eg" - ], - [ - "▁de", - "cor" - ], - [ - "▁dec", - "or" - ], - [ - "▁", - "decor" - ], - [ - "▁event", - "ually" - ], - [ - ">", - "," - ], - [ - "▁p", - "ag" - ], - [ - "▁pa", - "g" - ], - [ - "▁", - "pag" - ], - [ - "an", - "ten" - ], - [ - "ant", - "en" - ], - [ - "ante", - "n" - ], - [ - "a", - "nten" - ], - [ - "▁str", - "ugg" - ], - [ - "▁stru", - "gg" - ], - [ - "}^", - "\\" - ], - [ - "}", - "^\\" - ], - [ - "date", - "n" - ], - [ - "da", - "ten" - ], - [ - "dat", - "en" - ], - [ - "d", - "aten" - ], - [ - "▁re", - "la" - ], - [ - "▁r", - "ela" - ], - [ - "▁rel", - "a" - ], - [ - "по", - "в" - ], - [ - "п", - "ов" - ], - [ - "▁ко", - "ро" - ], - [ - "▁кор", - "о" - ], - [ - "▁B", - "os" - ], - [ - "▁Bo", - "s" - ], - [ - "▁l", - "abor" - ], - [ - "▁la", - "bor" - ], - [ - "▁lab", - "or" - ], - [ - "▁Se", - "cret" - ], - [ - "▁Sec", - "ret" - ], - [ - "▁", - "Secret" - ], - [ - "ug", - "en" - ], - [ - "uge", - "n" - ], - [ - "u", - "gen" - ], - [ - "▁j", - "ap" - ], - [ - "▁ja", - "p" - ], - [ - "▁hus", - "band" - ], - [ - "▁Al", - "bum" - ], - [ - "▁Alb", - "um" - ], - [ - "▁et", - "wa" - ], - [ - "▁про", - "из" - ], - [ - "ri", - "cht" - ], - [ - "ric", - "ht" - ], - [ - "rich", - "t" - ], - [ - "r", - "icht" - ], - [ - "ra", - "ch" - ], - [ - "rac", - "h" - ], - [ - "r", - "ach" - ], - [ - "ba", - "t" - ], - [ - "b", - "at" - ], - [ - "▁pre", - "par" - ], - [ - "▁prep", - "ar" - ], - [ - "▁St", - "ock" - ], - [ - "▁Sto", - "ck" - ], - [ - "▁l", - "ack" - ], - [ - "▁la", - "ck" - ], - [ - "▁lac", - "k" - ], - [ - "▁", - "lack" - ], - [ - "хі", - "д" - ], - [ - "х", - "ід" - ], - [ - "▁h", - "ogy" - ], - [ - "▁ho", - "gy" - ], - [ - "▁Ch", - "rome" - ], - [ - "▁Chr", - "ome" - ], - [ - "▁Ad", - "min" - ], - [ - "▁", - "Admin" - ], - [ - "▁com", - "parison" - ], - [ - "▁compar", - "ison" - ], - [ - "▁incre", - "asing" - ], - [ - "н", - "г" - ], - [ - "im", - "i" - ], - [ - "i", - "mi" - ], - [ - "D", - "b" - ], - [ - "▁g", - "ef" - ], - [ - "▁ge", - "f" - ], - [ - "▁", - "gef" - ], - [ - "uch", - "t" - ], - [ - "uc", - "ht" - ], - [ - "u", - "cht" - ], - [ - "és", - "e" - ], - [ - "é", - "se" - ], - [ - "gen", - "ce" - ], - [ - "g", - "ence" - ], - [ - "▁C", - "ore" - ], - [ - "▁Cor", - "e" - ], - [ - "▁Co", - "re" - ], - [ - "▁", - "Core" - ], - [ - "▁in", - "correct" - ], - [ - "▁incor", - "rect" - ], - [ - "▁ass", - "uming" - ], - [ - "▁assum", - "ing" - ], - [ - "our", - "se" - ], - [ - "ours", - "e" - ], - [ - "ie", - "ron" - ], - [ - "ier", - "on" - ], - [ - "iero", - "n" - ], - [ - "▁The", - "orem" - ], - [ - "▁", - "Theorem" - ], - [ - "▁c", - "asa" - ], - [ - "▁cas", - "a" - ], - [ - "▁ca", - "sa" - ], - [ - "je", - "s" - ], - [ - "j", - "es" - ], - [ - "▁д", - "ере" - ], - [ - "▁де", - "ре" - ], - [ - "▁`", - "\"" - ], - [ - "L", - "D" - ], - [ - "ä", - "ß" - ], - [ - "De", - "b" - ], - [ - "D", - "eb" - ], - [ - "▁su", - "iv" - ], - [ - "▁B", - "ank" - ], - [ - "▁Ban", - "k" - ], - [ - "li", - "bs" - ], - [ - "lib", - "s" - ], - [ - "▁Le", - "on" - ], - [ - "▁Leo", - "n" - ], - [ - "▁qu", - "art" - ], - [ - "▁quar", - "t" - ], - [ - "▁prof", - "essional" - ], - [ - "▁profession", - "al" - ], - [ - "▁profess", - "ional" - ], - [ - "▁t", - "iene" - ], - [ - "▁ti", - "ene" - ], - [ - "▁tie", - "ne" - ], - [ - "▁acc", - "omp" - ], - [ - "▁ac", - "comp" - ], - [ - "▁accom", - "p" - ], - [ - "ст", - "ер" - ], - [ - "сте", - "р" - ], - [ - "с", - "тер" - ], - [ - "▁U", - "K" - ], - [ - "▁", - "UK" - ], - [ - "N", - "N" - ], - [ - "▁l", - "í" - ], - [ - "ц", - "я" - ], - [ - "ke", - "l" - ], - [ - "k", - "el" - ], - [ - "▁", - "•" - ], - [ - "▁d", - "ise" - ], - [ - "▁di", - "se" - ], - [ - "▁dis", - "e" - ], - [ - "on", - "to" - ], - [ - "ont", - "o" - ], - [ - "▁m", - "á" - ], - [ - "if", - "s" - ], - [ - "i", - "fs" - ], - [ - "bi", - "ld" - ], - [ - "bil", - "d" - ], - [ - "b", - "ild" - ], - [ - "▁comp", - "ute" - ], - [ - "▁comput", - "e" - ], - [ - "▁", - "compute" - ], - [ - "▁é", - "d" - ], - [ - "▁", - "éd" - ], - [ - "j", - "ę" - ], - [ - "▁M", - "é" - ], - [ - "▁l", - "anguages" - ], - [ - "▁language", - "s" - ], - [ - "▁T", - "imes" - ], - [ - "▁Time", - "s" - ], - [ - "▁Tim", - "es" - ], - [ - "▁Ti", - "mes" - ], - [ - "▁", - "Times" - ], - [ - "ce", - "n" - ], - [ - "c", - "en" - ], - [ - "▁ав", - "то" - ], - [ - "ý", - "m" - ], - [ - "en", - "ez" - ], - [ - "ene", - "z" - ], - [ - "e", - "nez" - ], - [ - "▁u", - "pp" - ], - [ - "▁up", - "p" - ], - [ - "▁", - "upp" - ], - [ - "▁m", - "éd" - ], - [ - "▁mé", - "d" - ], - [ - "▁cu", - "ando" - ], - [ - "о", - "д" - ], - [ - "Int", - "ent" - ], - [ - "ee", - "rd" - ], - [ - "e", - "erd" - ], - [ - "▁T", - "al" - ], - [ - "▁Ta", - "l" - ], - [ - "off", - "set" - ], - [ - "offs", - "et" - ], - [ - "▁h", - "aben" - ], - [ - "▁ha", - "ben" - ], - [ - "▁hab", - "en" - ], - [ - "▁habe", - "n" - ], - [ - "re", - "me" - ], - [ - "rem", - "e" - ], - [ - "r", - "eme" - ], - [ - "▁St", - "ack" - ], - [ - "▁Sta", - "ck" - ], - [ - "▁", - "Stack" - ], - [ - "▁d", - "ri" - ], - [ - "▁dr", - "i" - ], - [ - "▁", - "dri" - ], - [ - "▁sein", - "em" - ], - [ - "▁seine", - "m" - ], - [ - "▁sei", - "nem" - ], - [ - "▁f", - "évrier" - ], - [ - "▁comb", - "ination" - ], - [ - "▁combin", - "ation" - ], - [ - "▁s", - "oll" - ], - [ - "▁so", - "ll" - ], - [ - "▁sol", - "l" - ], - [ - "▁mov", - "ement" - ], - [ - "▁mo", - "vement" - ], - [ - "▁move", - "ment" - ], - [ - "Sp", - "ec" - ], - [ - "Spe", - "c" - ], - [ - "S", - "pec" - ], - [ - "к", - "ры" - ], - [ - "ret", - "ch" - ], - [ - "r", - "etch" - ], - [ - "Off", - "set" - ], - [ - "Ro", - "ot" - ], - [ - "R", - "oot" - ], - [ - "А", - "р" - ], - [ - "wa", - "rt" - ], - [ - "war", - "t" - ], - [ - "w", - "art" - ], - [ - "▁F", - "ollow" - ], - [ - "▁Fol", - "low" - ], - [ - "▁So", - "cial" - ], - [ - "▁Soci", - "al" - ], - [ - "▁Soc", - "ial" - ], - [ - "ни", - "ков" - ], - [ - "ник", - "ов" - ], - [ - "▁", - "→" - ], - [ - "Do", - "n" - ], - [ - "D", - "on" - ], - [ - "▁h", - "arm" - ], - [ - "▁ha", - "rm" - ], - [ - "▁har", - "m" - ], - [ - "▁", - "harm" - ], - [ - "ag", - "r" - ], - [ - "a", - "gr" - ], - [ - "ne", - "go" - ], - [ - "neg", - "o" - ], - [ - "n", - "ego" - ], - [ - "re", - "source" - ], - [ - "res", - "ource" - ], - [ - "▁L", - "uc" - ], - [ - "▁Lu", - "c" - ], - [ - "▁se", - "inen" - ], - [ - "▁sein", - "en" - ], - [ - "▁seine", - "n" - ], - [ - "▁sei", - "nen" - ], - [ - "▁De", - "partment" - ], - [ - "▁Depart", - "ment" - ], - [ - "▁Up", - "date" - ], - [ - "▁", - "Update" - ], - [ - "▁Tex", - "as" - ], - [ - "▁re", - "ve" - ], - [ - "▁rev", - "e" - ], - [ - "▁P", - "os" - ], - [ - "▁Po", - "s" - ], - [ - "▁", - "Pos" - ], - [ - "▁s", - "hot" - ], - [ - "▁sh", - "ot" - ], - [ - "▁sho", - "t" - ], - [ - "▁", - "shot" - ], - [ - "ot", - "he" - ], - [ - "oth", - "e" - ], - [ - "o", - "the" - ], - [ - "▁repe", - "ated" - ], - [ - "▁repeat", - "ed" - ], - [ - "▁rec", - "ently" - ], - [ - "▁recent", - "ly" - ], - [ - "áb", - "an" - ], - [ - "á", - "ban" - ], - [ - "ak", - "s" - ], - [ - "a", - "ks" - ], - [ - "па", - "н" - ], - [ - "п", - "ан" - ], - [ - "▁c", - "ha" - ], - [ - "▁ch", - "a" - ], - [ - "▁", - "cha" - ], - [ - "oh", - "l" - ], - [ - "o", - "hl" - ], - [ - "▁t", - "end" - ], - [ - "▁te", - "nd" - ], - [ - "▁ten", - "d" - ], - [ - "▁д", - "во" - ], - [ - "ch", - "ts" - ], - [ - "cht", - "s" - ], - [ - "ça", - "ise" - ], - [ - "çais", - "e" - ], - [ - "pl", - "ing" - ], - [ - "p", - "ling" - ], - [ - "al", - "bum" - ], - [ - "e", - "j" - ], - [ - "▁`", - "[" - ], - [ - "ma", - "ps" - ], - [ - "map", - "s" - ], - [ - "m", - "aps" - ], - [ - "▁un", - "its" - ], - [ - "▁unit", - "s" - ], - [ - "▁<", - "!--" - ], - [ - "▁" - ], - [ - "St", - "and" - ], - [ - "▁techn", - "ique" - ], - [ - "▁techni", - "que" - ], - [ - "▁E", - "ss" - ], - [ - "▁Es", - "s" - ], - [ - "▁Ox", - "ford" - ], - [ - "▁", - "ла" - ], - [ - "t", - "ikz" - ], - [ - "ли", - "й" - ], - [ - "Log", - "in" - ], - [ - "Lo", - "gin" - ], - [ - "▁min", - "ister" - ], - [ - "▁minist", - "er" - ], - [ - "▁mini", - "ster" - ], - [ - "▁", - "minister" - ], - [ - "▁c", - "url" - ], - [ - "▁cu", - "rl" - ], - [ - "▁cur", - "l" - ], - [ - "▁", - "curl" - ], - [ - "ka", - "n" - ], - [ - "k", - "an" - ], - [ - "▁m", - "aps" - ], - [ - "▁ma", - "ps" - ], - [ - "▁map", - "s" - ], - [ - "▁", - "maps" - ], - [ - "in", - "da" - ], - [ - "ind", - "a" - ], - [ - "ri", - "eb" - ], - [ - "rie", - "b" - ], - [ - "r", - "ieb" - ], - [ - "▁E", - "ND" - ], - [ - "▁EN", - "D" - ], - [ - "▁", - "END" - ], - [ - "if", - "ies" - ], - [ - "ifi", - "es" - ], - [ - "ifie", - "s" - ], - [ - "con", - "sole" - ], - [ - "cons", - "ole" - ], - [ - "bu", - "ry" - ], - [ - "bur", - "y" - ], - [ - "b", - "ury" - ], - [ - "▁L", - "E" - ], - [ - "▁", - "LE" - ], - [ - "▁indep", - "end" - ], - [ - "▁inde", - "pend" - ], - [ - "▁t", - "a" - ], - [ - "▁", - "ta" - ], - [ - "▁", - "Ś" - ], - [ - "on", - "el" - ], - [ - "one", - "l" - ], - [ - "o", - "nel" - ], - [ - "és", - "z" - ], - [ - "é", - "sz" - ], - [ - "▁I", - "st" - ], - [ - "▁Is", - "t" - ], - [ - "ut", - "ive" - ], - [ - "uti", - "ve" - ], - [ - "ё", - "л" - ], - [ - "▁Reg", - "ion" - ], - [ - "▁", - "Region" - ], - [ - "▁(", - "=" - ], - [ - "▁comp", - "act" - ], - [ - "ço", - "is" - ], - [ - "ç", - "ois" - ], - [ - "▁label", - "s" - ], - [ - "▁lab", - "els" - ], - [ - "▁", - "labels" - ], - [ - "autor", - "ité" - ], - [ - "▁s", - "tan" - ], - [ - "▁st", - "an" - ], - [ - "▁sta", - "n" - ], - [ - "▁", - "stan" - ], - [ - "▁fran", - "çaise" - ], - [ - "▁français", - "e" - ], - [ - "▁rem", - "oving" - ], - [ - "▁remov", - "ing" - ], - [ - "y", - "c" - ], - [ - "}", - "|" - ], - [ - "▁Ex", - "ec" - ], - [ - "▁", - "Exec" - ], - [ - "($", - "_" - ], - [ - "(", - "$_" - ], - [ - "ma", - "g" - ], - [ - "m", - "ag" - ], - [ - "be", - "fore" - ], - [ - "▁stop", - "ped" - ], - [ - "▁sto", - "pped" - ], - [ - "ми", - "и" - ], - [ - "▁ref", - "resh" - ], - [ - "▁", - "refresh" - ], - [ - "un", - "kt" - ], - [ - "unk", - "t" - ], - [ - "ic", - "io" - ], - [ - "ici", - "o" - ], - [ - "i", - "cio" - ], - [ - "X", - "ml" - ], - [ - "▁T", - "ab" - ], - [ - "▁Ta", - "b" - ], - [ - "▁", - "Tab" - ], - [ - "▁f", - "ounded" - ], - [ - "▁found", - "ed" - ], - [ - "▁f", - "al" - ], - [ - "▁fa", - "l" - ], - [ - "▁", - "fal" - ], - [ - "f", - "x" - ], - [ - "▁Histor", - "ia" - ], - [ - "▁Hist", - "oria" - ], - [ - "▁Ear", - "ly" - ], - [ - "▁Earl", - "y" - ], - [ - "Do", - "m" - ], - [ - "D", - "om" - ], - [ - "▁de", - "cide" - ], - [ - "▁dec", - "ide" - ], - [ - "▁decid", - "e" - ], - [ - "▁under", - "stood" - ], - [ - "▁j", - "ur" - ], - [ - "▁ju", - "r" - ], - [ - "▁N", - "r" - ], - [ - "▁cap", - "ac" - ], - [ - "wa", - "s" - ], - [ - "w", - "as" - ], - [ - "▁en", - "emy" - ], - [ - "▁enem", - "y" - ], - [ - "▁program", - "s" - ], - [ - "▁m", - "ask" - ], - [ - "▁ma", - "sk" - ], - [ - "▁mas", - "k" - ], - [ - "▁", - "mask" - ], - [ - "ск", - "е" - ], - [ - "с", - "ке" - ], - [ - "▁gr", - "oupe" - ], - [ - "▁group", - "e" - ], - [ - "ca", - "m" - ], - [ - "c", - "am" - ], - [ - "▁w", - "idget" - ], - [ - "▁wid", - "get" - ], - [ - "▁", - "widget" - ], - [ - "RE", - "ATE" - ], - [ - "▁se", - "va" - ], - [ - "▁Bar", - "cel" - ], - [ - "▁p", - "erd" - ], - [ - "▁per", - "d" - ], - [ - "▁pe", - "rd" - ], - [ - "▁М", - "у" - ], - [ - "ran", - "ce" - ], - [ - "r", - "ance" - ], - [ - "TY", - "PE" - ], - [ - "T", - "YPE" - ], - [ - "▁{", - "'" - ], - [ - "▁", - "{'" - ], - [ - "▁b", - "ill" - ], - [ - "▁bi", - "ll" - ], - [ - "▁bil", - "l" - ], - [ - "▁\"", - "_" - ], - [ - "'", - "`" - ], - [ - "ba", - "hn" - ], - [ - "bah", - "n" - ], - [ - "b", - "ahn" - ], - [ - "▁cont", - "ained" - ], - [ - "▁contain", - "ed" - ], - [ - "Cl", - "ose" - ], - [ - "C", - "lose" - ], - [ - "ru", - "g" - ], - [ - "r", - "ug" - ], - [ - "eg", - "y" - ], - [ - "e", - "gy" - ], - [ - "▁s", - "ight" - ], - [ - "▁sig", - "ht" - ], - [ - "▁Pro", - "vin" - ], - [ - "▁Prov", - "in" - ], - [ - "н", - "ю" - ], - [ - "ar", - "z" - ], - [ - "a", - "rz" - ], - [ - "ще", - "н" - ], - [ - "щ", - "ен" - ], - [ - "▁J", - "oe" - ], - [ - "▁Jo", - "e" - ], - [ - "▁de", - "leted" - ], - [ - "▁delete", - "d" - ], - [ - "▁delet", - "ed" - ], - [ - "▁A", - "uto" - ], - [ - "▁Aut", - "o" - ], - [ - "▁Au", - "to" - ], - [ - "▁", - "Auto" - ], - [ - "▁m", - "eter" - ], - [ - "▁me", - "ter" - ], - [ - "▁met", - "er" - ], - [ - "▁", - "meter" - ], - [ - "C", - "G" - ], - [ - "ъ", - "л" - ], - [ - "▁p", - "ent" - ], - [ - "▁pe", - "nt" - ], - [ - "▁pen", - "t" - ], - [ - "▁", - "pent" - ], - [ - "▁be", - "zeichnet" - ], - [ - "Su", - "m" - ], - [ - "S", - "um" - ], - [ - "db", - "c" - ], - [ - "d", - "bc" - ], - [ - "▁Pl", - "atz" - ], - [ - "▁Pla", - "tz" - ], - [ - "▁Plat", - "z" - ], - [ - "ect", - "ors" - ], - [ - "ector", - "s" - ], - [ - "e", - "ctors" - ], - [ - "▁L", - "ittle" - ], - [ - "QU", - "E" - ], - [ - "Q", - "UE" - ], - [ - "ці", - "я" - ], - [ - "ц", - "ія" - ], - [ - "те", - "ля" - ], - [ - "тел", - "я" - ], - [ - "nig", - "ht" - ], - [ - "n", - "ight" - ], - [ - "▁l", - "l" - ], - [ - "▁", - "ll" - ], - [ - "▁most", - "ly" - ], - [ - "UI", - "D" - ], - [ - "U", - "ID" - ], - [ - "▁b", - "ez" - ], - [ - "▁be", - "z" - ], - [ - "▁", - "bez" - ], - [ - "do", - "b" - ], - [ - "d", - "ob" - ], - [ - "кс", - "и" - ], - [ - "к", - "си" - ], - [ - "ter", - "ne" - ], - [ - "tern", - "e" - ], - [ - "t", - "erne" - ], - [ - "▁cor", - "ner" - ], - [ - "▁corn", - "er" - ], - [ - "at", - "y" - ], - [ - "a", - "ty" - ], - [ - "▁impro", - "ve" - ], - [ - "▁improv", - "e" - ], - [ - "▁impr", - "ove" - ], - [ - "▁in", - "tr" - ], - [ - "▁int", - "r" - ], - [ - "▁`", - "@" - ], - [ - "ar", - "od" - ], - [ - "aro", - "d" - ], - [ - "a", - "rod" - ], - [ - "▁install", - "ation" - ], - [ - "▁instal", - "lation" - ], - [ - "▁Refer", - "ências" - ], - [ - "ig", - "an" - ], - [ - "iga", - "n" - ], - [ - "i", - "gan" - ], - [ - "▁crit", - "ic" - ], - [ - "ad", - "el" - ], - [ - "ade", - "l" - ], - [ - "a", - "del" - ], - [ - "▁се", - "ло" - ], - [ - ",", - "\r" - ], - [ - "at", - "ori" - ], - [ - "ator", - "i" - ], - [ - "ato", - "ri" - ], - [ - "▁F", - "ri" - ], - [ - "▁Fr", - "i" - ], - [ - "▁", - "Fri" - ], - [ - "▁ré", - "férences" - ], - [ - "▁Int", - "ent" - ], - [ - "▁", - "Intent" - ], - [ - "▁t", - "ant" - ], - [ - "▁tan", - "t" - ], - [ - "▁ta", - "nt" - ], - [ - "un", - "ci" - ], - [ - "unc", - "i" - ], - [ - "▁level", - "s" - ], - [ - "▁lev", - "els" - ], - [ - "er", - "es" - ], - [ - "ere", - "s" - ], - [ - "e", - "res" - ], - [ - "▁e", - "mer" - ], - [ - "▁em", - "er" - ], - [ - "▁", - "emer" - ], - [ - "sa", - "fe" - ], - [ - "t", - "k" - ], - [ - "▁c", - "ham" - ], - [ - "▁ch", - "am" - ], - [ - "▁cha", - "m" - ], - [ - "▁great", - "ly" - ], - [ - "▁we", - "it" - ], - [ - "▁", - "weit" - ], - [ - "▁co", - "ach" - ], - [ - "▁to", - "ward" - ], - [ - "Hom", - "e" - ], - [ - "H", - "ome" - ], - [ - "▁Bo", - "olean" - ], - [ - "▁", - "Boolean" - ], - [ - "те", - "л" - ], - [ - "т", - "ел" - ], - [ - "▁m", - "ock" - ], - [ - "▁mo", - "ck" - ], - [ - "▁", - "mock" - ], - [ - "▁appreci", - "ate" - ], - [ - "▁C", - "ross" - ], - [ - "▁Cr", - "oss" - ], - [ - "▁Cro", - "ss" - ], - [ - "▁T", - "ake" - ], - [ - "▁Ta", - "ke" - ], - [ - "▁Tak", - "e" - ], - [ - "▁", - "Take" - ], - [ - "D", - "P" - ], - [ - "▁s", - "ides" - ], - [ - "▁si", - "des" - ], - [ - "▁side", - "s" - ], - [ - "▁sid", - "es" - ], - [ - "▁Norm", - "daten" - ], - [ - "де", - "й" - ], - [ - "д", - "ей" - ], - [ - "st", - "al" - ], - [ - "sta", - "l" - ], - [ - "s", - "tal" - ], - [ - "▁c", - "out" - ], - [ - "▁co", - "ut" - ], - [ - "▁cou", - "t" - ], - [ - "▁", - "cout" - ], - [ - "b", - "n" - ], - [ - "▁V", - "ert" - ], - [ - "▁Ver", - "t" - ], - [ - "▁Ve", - "rt" - ], - [ - "▁", - "Vert" - ], - [ - "▁b", - "ird" - ], - [ - "▁bi", - "rd" - ], - [ - "▁bir", - "d" - ], - [ - "▁", - "bird" - ], - [ - "▁dynam", - "ically" - ], - [ - "▁dynamic", - "ally" - ], - [ - "▁D", - "ol" - ], - [ - "▁Do", - "l" - ], - [ - "▁B", - "urg" - ], - [ - "▁Bu", - "rg" - ], - [ - "▁Bur", - "g" - ], - [ - "▁d", - "og" - ], - [ - "▁do", - "g" - ], - [ - "▁", - "dog" - ], - [ - "ät", - "t" - ], - [ - "ä", - "tt" - ], - [ - "▁n", - "uc" - ], - [ - "▁nu", - "c" - ], - [ - "E", - "C" - ], - [ - "By", - "tes" - ], - [ - "Byte", - "s" - ], - [ - "▁a", - "k" - ], - [ - "▁", - "ak" - ], - [ - "re", - "land" - ], - [ - "rel", - "and" - ], - [ - "r", - "eland" - ], - [ - "▁gu", - "itar" - ], - [ - "▁reg", - "arding" - ], - [ - "▁regard", - "ing" - ], - [ - "▁F", - "uß" - ], - [ - "▁Fu", - "ß" - ], - [ - "▁до", - "л" - ], - [ - "▁", - "дол" - ], - [ - "au", - "ss" - ], - [ - "aus", - "s" - ], - [ - "a", - "uss" - ], - [ - "▁j", - "ej" - ], - [ - "▁je", - "j" - ], - [ - "ac", - "o" - ], - [ - "a", - "co" - ], - [ - "▁up", - "dates" - ], - [ - "▁update", - "s" - ], - [ - "▁upd", - "ates" - ], - [ - "ру", - "к" - ], - [ - "р", - "ук" - ], - [ - "('", - "/" - ], - [ - "▁c", - "old" - ], - [ - "▁col", - "d" - ], - [ - "▁co", - "ld" - ], - [ - "▁G", - "iven" - ], - [ - "▁Gi", - "ven" - ], - [ - "▁Give", - "n" - ], - [ - "hi", - "n" - ], - [ - "h", - "in" - ], - [ - "▁fe", - "eling" - ], - [ - "▁feel", - "ing" - ], - [ - "▁fee", - "ling" - ], - [ - "ig", - "li" - ], - [ - "fa", - "h" - ], - [ - "f", - "ah" - ], - [ - "ст", - "ре" - ], - [ - "стр", - "е" - ], - [ - "с", - "тре" - ], - [ - "bo", - "ol" - ], - [ - "b", - "ool" - ], - [ - "init", - "ial" - ], - [ - "▁станов", - "ника" - ], - [ - "▁An", - "na" - ], - [ - "▁Ann", - "a" - ], - [ - "▁h", - "ors" - ], - [ - "▁hor", - "s" - ], - [ - "▁ho", - "rs" - ], - [ - "▁d", - "oll" - ], - [ - "▁do", - "ll" - ], - [ - "▁dol", - "l" - ], - [ - "▁con", - "sum" - ], - [ - "▁cons", - "um" - ], - [ - "▁", - "consum" - ], - [ - "ub", - "er" - ], - [ - "ube", - "r" - ], - [ - "u", - "ber" - ], - [ - "stand", - "ing" - ], - [ - "stan", - "ding" - ], - [ - "act", - "iv" - ], - [ - "з", - "і" - ], - [ - "check", - "ed" - ], - [ - "▁perm", - "issions" - ], - [ - "▁permission", - "s" - ], - [ - "▁M", - "onte" - ], - [ - "▁Mon", - "te" - ], - [ - "▁Mont", - "e" - ], - [ - "Write", - "Line" - ], - [ - "pl", - "us" - ], - [ - "p", - "lus" - ], - [ - "▁E", - "qu" - ], - [ - "▁Eq", - "u" - ], - [ - "▁", - "Equ" - ], - [ - "▁и", - "х" - ], - [ - "▁", - "их" - ], - [ - "ч", - "ки" - ], - [ - "un", - "que" - ], - [ - "▁L", - "O" - ], - [ - "▁", - "LO" - ], - [ - "e", - "a" - ], - [ - "sam", - "ple" - ], - [ - "s", - "ample" - ], - [ - "ie", - "sz" - ], - [ - "ies", - "z" - ], - [ - "i", - "esz" - ], - [ - "or", - "al" - ], - [ - "ora", - "l" - ], - [ - "o", - "ral" - ], - [ - "▁И", - "н" - ], - [ - "os", - "ton" - ], - [ - "ost", - "on" - ], - [ - "osto", - "n" - ], - [ - "o", - "ston" - ], - [ - "▁S", - "imon" - ], - [ - "▁Sim", - "on" - ], - [ - "▁Si", - "mon" - ], - [ - "fa", - "st" - ], - [ - "fas", - "t" - ], - [ - "f", - "ast" - ], - [ - "m", - "k" - ], - [ - "as", - "sen" - ], - [ - "ass", - "en" - ], - [ - "asse", - "n" - ], - [ - "▁arch", - "itecture" - ], - [ - "▁architect", - "ure" - ], - [ - "▁", - "architecture" - ], - [ - "ens", - "es" - ], - [ - "ense", - "s" - ], - [ - "▁", - "Å" - ], - [ - "▁to", - "pic" - ], - [ - "▁top", - "ic" - ], - [ - "▁", - "topic" - ], - [ - "▁dis", - "able" - ], - [ - "▁", - "disable" - ], - [ - "▁C", - "ru" - ], - [ - "▁Cr", - "u" - ], - [ - "▁Cont", - "rol" - ], - [ - "▁", - "Control" - ], - [ - "▁cre", - "ation" - ], - [ - "▁hy", - "per" - ], - [ - "▁hyp", - "er" - ], - [ - "▁", - "hyper" - ], - [ - "it", - "ud" - ], - [ - "itu", - "d" - ], - [ - "же", - "ния" - ], - [ - "ar", - "am" - ], - [ - "ara", - "m" - ], - [ - "a", - "ram" - ], - [ - "▁г", - "де" - ], - [ - "ien", - "st" - ], - [ - "iens", - "t" - ], - [ - "i", - "enst" - ], - [ - "ed", - "ule" - ], - [ - "edu", - "le" - ], - [ - "▁B", - "ot" - ], - [ - "▁Bo", - "t" - ], - [ - "▁О", - "с" - ], - [ - "▁The", - "ir" - ], - [ - "an", - "ne" - ], - [ - "ann", - "e" - ], - [ - "M", - "icrosoft" - ], - [ - "▁P", - "M" - ], - [ - "▁", - "PM" - ], - [ - "yd", - "ro" - ], - [ - "y", - "dro" - ], - [ - "ent", - "lich" - ], - [ - "▁E", - "ine" - ], - [ - "▁Ein", - "e" - ], - [ - "CH", - "AR" - ], - [ - ":", - "'" - ], - [ - "We", - "ll" - ], - [ - "Wel", - "l" - ], - [ - "W", - "ell" - ], - [ - "le", - "ton" - ], - [ - "let", - "on" - ], - [ - "l", - "eton" - ], - [ - "▁support", - "s" - ], - [ - "▁sup", - "ports" - ], - [ - "']", - ")" - ], - [ - "'", - "])" - ], - [ - "man", - "ual" - ], - [ - "▁v", - "ice" - ], - [ - "▁vi", - "ce" - ], - [ - "▁vic", - "e" - ], - [ - "▁", - "vice" - ], - [ - "as", - "a" - ], - [ - "a", - "sa" - ], - [ - "cl", - "os" - ], - [ - "clo", - "s" - ], - [ - "c", - "los" - ], - [ - "vi", - "sed" - ], - [ - "vis", - "ed" - ], - [ - "v", - "ised" - ], - [ - "▁p", - "ok" - ], - [ - "▁po", - "k" - ], - [ - "tr", - "ack" - ], - [ - "tra", - "ck" - ], - [ - "t", - "rack" - ], - [ - "но", - "ст" - ], - [ - "нос", - "т" - ], - [ - "...", - "....." - ], - [ - "....", - "...." - ], - [ - ".....", - "..." - ], - [ - "▁'", - "\\" - ], - [ - "▁", - "'\\" - ], - [ - "²", - "." - ], - [ - "▁or", - "ders" - ], - [ - "▁order", - "s" - ], - [ - "▁ord", - "ers" - ], - [ - "▁", - "orders" - ], - [ - "et", - "ta" - ], - [ - "ett", - "a" - ], - [ - "e", - "tta" - ], - [ - "▁con", - "version" - ], - [ - "▁conv", - "ersion" - ], - [ - "▁convers", - "ion" - ], - [ - "▁t", - "rade" - ], - [ - "▁tr", - "ade" - ], - [ - "▁tra", - "de" - ], - [ - "▁trad", - "e" - ], - [ - "cl", - "i" - ], - [ - "c", - "li" - ], - [ - "▁И", - "сто" - ], - [ - "▁Ис", - "то" - ], - [ - "▁a", - "kt" - ], - [ - "▁ak", - "t" - ], - [ - "▁", - "akt" - ], - [ - "▁sub", - "set" - ], - [ - "▁subs", - "et" - ], - [ - "▁", - "subset" - ], - [ - "▁a", - "ug" - ], - [ - "▁au", - "g" - ], - [ - "▁", - "aug" - ], - [ - "▁le", - "aves" - ], - [ - "▁leave", - "s" - ], - [ - "Mat", - "h" - ], - [ - "Ma", - "th" - ], - [ - "M", - "ath" - ], - [ - "an", - "ned" - ], - [ - "ann", - "ed" - ], - [ - "anne", - "d" - ], - [ - "ka", - "l" - ], - [ - "k", - "al" - ], - [ - "▁Ве", - "ли" - ], - [ - "▁n", - "og" - ], - [ - "▁no", - "g" - ], - [ - "▁", - "nog" - ], - [ - "▁e", - "th" - ], - [ - "▁et", - "h" - ], - [ - "▁", - "eth" - ], - [ - "▁h", - "air" - ], - [ - "▁ha", - "ir" - ], - [ - "ar", - "ound" - ], - [ - "aro", - "und" - ], - [ - "a", - "round" - ], - [ - "▁java", - "x" - ], - [ - "▁jav", - "ax" - ], - [ - "▁", - "javax" - ], - [ - "во", - "й" - ], - [ - "▁C", - "entre" - ], - [ - "▁Cent", - "re" - ], - [ - "ö", - "ß" - ], - [ - "ut", - "i" - ], - [ - "u", - "ti" - ], - [ - "▁n", - "avigation" - ], - [ - "▁navig", - "ation" - ], - [ - "▁", - "navigation" - ], - [ - "▁P", - "S" - ], - [ - "▁", - "PS" - ], - [ - "▁w", - "a" - ], - [ - "▁", - "wa" - ], - [ - "▁Ро", - "ссии" - ], - [ - "▁Рос", - "сии" - ], - [ - "▁Росси", - "и" - ], - [ - "us", - "a" - ], - [ - "u", - "sa" - ], - [ - "ze", - "ta" - ], - [ - "zet", - "a" - ], - [ - "z", - "eta" - ], - [ - "▁P", - "DF" - ], - [ - "▁", - "PDF" - ], - [ - "▁m", - "ismo" - ], - [ - "▁mis", - "mo" - ], - [ - "▁mism", - "o" - ], - [ - "pro", - "perties" - ], - [ - "me", - "ister" - ], - [ - "ль", - "та" - ], - [ - "for", - "ward" - ], - [ - "▁O", - "st" - ], - [ - "▁Os", - "t" - ], - [ - "ki", - "ns" - ], - [ - "kin", - "s" - ], - [ - "k", - "ins" - ], - [ - "▁s", - "ido" - ], - [ - "▁si", - "do" - ], - [ - "▁sid", - "o" - ], - [ - "зо", - "в" - ], - [ - "з", - "ов" - ], - [ - "ta", - "gs" - ], - [ - "tag", - "s" - ], - [ - "t", - "ags" - ], - [ - "▁a", - "ctor" - ], - [ - "▁act", - "or" - ], - [ - "▁ac", - "tor" - ], - [ - "▁", - "actor" - ], - [ - "▁f", - "ly" - ], - [ - "▁fl", - "y" - ], - [ - "▁", - "fly" - ], - [ - "C", - "R" - ], - [ - "ag", - "ini" - ], - [ - "agi", - "ni" - ], - [ - "agin", - "i" - ], - [ - "▁l", - "ett" - ], - [ - "▁le", - "tt" - ], - [ - "▁let", - "t" - ], - [ - "▁", - "lett" - ], - [ - "en", - "i" - ], - [ - "e", - "ni" - ], - [ - "te", - "ch" - ], - [ - "t", - "ech" - ], - [ - "▁E", - "nc" - ], - [ - "▁En", - "c" - ], - [ - "▁", - "Enc" - ], - [ - "or", - "acle" - ], - [ - "ora", - "cle" - ], - [ - "o", - "racle" - ], - [ - "amil", - "ton" - ], - [ - "ze", - "j" - ], - [ - "z", - "ej" - ], - [ - "fe", - "n" - ], - [ - "f", - "en" - ], - [ - "ume", - "rate" - ], - [ - "umer", - "ate" - ], - [ - "▁qu", - "esto" - ], - [ - "▁que", - "sto" - ], - [ - "▁q", - "uesto" - ], - [ - "▁quest", - "o" - ], - [ - "da", - "rt" - ], - [ - "dar", - "t" - ], - [ - "d", - "art" - ], - [ - "▁K", - "ore" - ], - [ - "▁Ko", - "re" - ], - [ - "▁Kor", - "e" - ], - [ - "ap", - "is" - ], - [ - "api", - "s" - ], - [ - "a", - "pis" - ], - [ - "ep", - "er" - ], - [ - "e", - "per" - ], - [ - "Sc", - "reen" - ], - [ - "S", - "creen" - ], - [ - "wa", - "ll" - ], - [ - "wal", - "l" - ], - [ - "w", - "all" - ], - [ - "▁is", - "land" - ], - [ - "sh", - "e" - ], - [ - "s", - "he" - ], - [ - "▁l", - "igger" - ], - [ - "▁lig", - "ger" - ], - [ - "в", - "ся" - ], - [ - "fa", - "ng" - ], - [ - "fan", - "g" - ], - [ - "f", - "ang" - ], - [ - "▁t", - "ard" - ], - [ - "▁tar", - "d" - ], - [ - "▁ta", - "rd" - ], - [ - "▁pla", - "ats" - ], - [ - "▁п", - "ло" - ], - [ - "▁", - "пло" - ], - [ - "▁Off", - "ice" - ], - [ - "▁Offic", - "e" - ], - [ - "▁", - "Office" - ], - [ - "▁S", - "ET" - ], - [ - "▁SE", - "T" - ], - [ - "▁", - "SET" - ], - [ - "▁circ", - "uit" - ], - [ - "je", - "d" - ], - [ - "j", - "ed" - ], - [ - "Sa", - "ve" - ], - [ - "S", - "ave" - ], - [ - "ль", - "но" - ], - [ - "So", - "cket" - ], - [ - "S", - "ocket" - ], - [ - "▁In", - "dex" - ], - [ - "▁Ind", - "ex" - ], - [ - "▁", - "Index" - ], - [ - "AC", - "K" - ], - [ - "A", - "CK" - ], - [ - "id", - "ers" - ], - [ - "ide", - "rs" - ], - [ - "ider", - "s" - ], - [ - "i", - "ders" - ], - [ - "er", - "er" - ], - [ - "ere", - "r" - ], - [ - "e", - "rer" - ], - [ - "▁С", - "ША" - ], - [ - "▁l", - "ady" - ], - [ - "▁la", - "dy" - ], - [ - "▁lad", - "y" - ], - [ - "▁sch", - "eme" - ], - [ - "▁sche", - "me" - ], - [ - "ie", - "lle" - ], - [ - "iel", - "le" - ], - [ - "i", - "elle" - ], - [ - "▁ex", - "erc" - ], - [ - "▁exer", - "c" - ], - [ - ")}", - "\\" - ], - [ - ")", - "}\\" - ], - [ - "Date", - "Time" - ], - [ - "at", - "han" - ], - [ - "ath", - "an" - ], - [ - "a", - "than" - ], - [ - "▁Prof", - "essor" - ], - [ - "▁mo", - "ins" - ], - [ - "▁moi", - "ns" - ], - [ - "▁Ex", - "cel" - ], - [ - "▁", - "Excel" - ], - [ - "▁H", - "ay" - ], - [ - "▁Ha", - "y" - ], - [ - "▁Mus", - "ik" - ], - [ - "▁", - "ї" - ], - [ - "ę", - "d" - ], - [ - "▁\"", - "." - ], - [ - "▁", - "\"." - ], - [ - "▁бу", - "в" - ], - [ - "▁inst", - "rument" - ], - [ - "▁instru", - "ment" - ], - [ - "па", - "р" - ], - [ - "п", - "ар" - ], - [ - "▁б", - "ере" - ], - [ - "▁бе", - "ре" - ], - [ - "▁", - "бере" - ], - [ - "▁polit", - "ique" - ], - [ - "▁trad", - "ition" - ], - [ - "▁V", - "M" - ], - [ - "▁", - "VM" - ], - [ - "▁Ar", - "ts" - ], - [ - "▁Art", - "s" - ], - [ - "▁C", - "i" - ], - [ - "Us", - "e" - ], - [ - "U", - "se" - ], - [ - "▁a", - "ggreg" - ], - [ - "▁ag", - "greg" - ], - [ - "▁", - "aggreg" - ], - [ - "▁we", - "eks" - ], - [ - "▁week", - "s" - ], - [ - "▁o", - "pport" - ], - [ - "▁op", - "port" - ], - [ - "▁opp", - "ort" - ], - [ - "it", - "ing" - ], - [ - "iti", - "ng" - ], - [ - "i", - "ting" - ], - [ - "▁vert", - "ical" - ], - [ - "▁", - "vertical" - ], - [ - "▁N", - "az" - ], - [ - "▁Na", - "z" - ], - [ - "..", - ".)" - ], - [ - "...", - ")" - ], - [ - "iz", - "o" - ], - [ - "i", - "zo" - ], - [ - "▁c", - "ycle" - ], - [ - "▁cy", - "cle" - ], - [ - "▁cycl", - "e" - ], - [ - "▁", - "cycle" - ], - [ - "▁tem", - "po" - ], - [ - "▁temp", - "o" - ], - [ - "т", - "ре" - ], - [ - "▁hand", - "ling" - ], - [ - "ist", - "ence" - ], - [ - "isten", - "ce" - ], - [ - "▁p", - "aste" - ], - [ - "▁pas", - "te" - ], - [ - "▁pa", - "ste" - ], - [ - "▁past", - "e" - ], - [ - "▁", - "paste" - ], - [ - "▁en", - "jo" - ], - [ - "RO", - "UP" - ], - [ - "▁o", - "uter" - ], - [ - "▁out", - "er" - ], - [ - "▁ou", - "ter" - ], - [ - "▁", - "outer" - ], - [ - "▁su", - "pply" - ], - [ - "▁supp", - "ly" - ], - [ - "▁sup", - "ply" - ], - [ - "em", - "an" - ], - [ - "ema", - "n" - ], - [ - "e", - "man" - ], - [ - "▁acc", - "ident" - ], - [ - "▁\\", - "]" - ], - [ - "▁", - "\\]" - ], - [ - "▁те", - "х" - ], - [ - "▁", - "тех" - ], - [ - "Po", - "ol" - ], - [ - "P", - "ool" - ], - [ - "ot", - "ing" - ], - [ - "oti", - "ng" - ], - [ - "o", - "ting" - ], - [ - "onym", - "ous" - ], - [ - "▁Gi", - "ov" - ], - [ - "▁u", - "d" - ], - [ - "▁", - "ud" - ], - [ - "▁.", - "/" - ], - [ - "▁", - "./" - ], - [ - "ER", - "ROR" - ], - [ - "ERR", - "OR" - ], - [ - "con", - "struct" - ], - [ - "const", - "ruct" - ], - [ - "text", - "width" - ], - [ - "qu", - "ipe" - ], - [ - "qui", - "pe" - ], - [ - "quip", - "e" - ], - [ - "case", - "s" - ], - [ - "cas", - "es" - ], - [ - "c", - "ases" - ], - [ - "▁а", - "д" - ], - [ - "▁R", - "ow" - ], - [ - "▁Ro", - "w" - ], - [ - "▁", - "Row" - ], - [ - "Hol", - "der" - ], - [ - "Hold", - "er" - ], - [ - "H", - "older" - ], - [ - "wa", - "n" - ], - [ - "w", - "an" - ], - [ - "ar", - "na" - ], - [ - "arn", - "a" - ], - [ - "Me", - "m" - ], - [ - "M", - "em" - ], - [ - "▁Canad", - "ian" - ], - [ - "▁Com", - "mission" - ], - [ - "▁Comm", - "ission" - ], - [ - "su", - "n" - ], - [ - "s", - "un" - ], - [ - "▁app", - "s" - ], - [ - "▁ap", - "ps" - ], - [ - "▁", - "apps" - ], - [ - "▁B", - "lo" - ], - [ - "▁Bl", - "o" - ], - [ - "▁i", - "hrer" - ], - [ - "▁ih", - "rer" - ], - [ - "▁ihr", - "er" - ], - [ - "▁ihre", - "r" - ], - [ - "▁famil", - "le" - ], - [ - "▁fam", - "ille" - ], - [ - "▁m", - "ě" - ], - [ - "▁p", - "y" - ], - [ - "▁", - "py" - ], - [ - "и", - "с" - ], - [ - "▁т", - "ого" - ], - [ - "▁то", - "го" - ], - [ - "▁", - "того" - ], - [ - "▁Ag", - "ain" - ], - [ - "▁ign", - "ore" - ], - [ - "▁ignor", - "e" - ], - [ - "▁", - "ignore" - ], - [ - "▁tele", - "vision" - ], - [ - "▁televis", - "ion" - ], - [ - "Pa", - "t" - ], - [ - "P", - "at" - ], - [ - "hi", - "de" - ], - [ - "h", - "ide" - ], - [ - "▁R", - "ev" - ], - [ - "▁Re", - "v" - ], - [ - "▁b", - "ear" - ], - [ - "▁be", - "ar" - ], - [ - "ph", - "y" - ], - [ - "p", - "hy" - ], - [ - "▁no", - "ise" - ], - [ - "▁w", - "ra" - ], - [ - "▁wr", - "a" - ], - [ - "at", - "ionale" - ], - [ - "ation", - "ale" - ], - [ - "ational", - "e" - ], - [ - "▁coll", - "abor" - ], - [ - "bor", - "der" - ], - [ - "b", - "order" - ], - [ - "▁el", - "ected" - ], - [ - "▁elect", - "ed" - ], - [ - "▁ele", - "cted" - ], - [ - "▁sur", - "pr" - ], - [ - "▁a", - "voir" - ], - [ - "▁av", - "oir" - ], - [ - "▁avo", - "ir" - ], - [ - "▁", - "avoir" - ], - [ - "▁ass", - "embly" - ], - [ - "▁assemb", - "ly" - ], - [ - "▁", - "assembly" - ], - [ - "▁об", - "ще" - ], - [ - "▁arbitr", - "ary" - ], - [ - "▁br", - "ief" - ], - [ - "▁-", - "--" - ], - [ - "▁--", - "-" - ], - [ - "▁", - "---" - ], - [ - "▁M", - "aur" - ], - [ - "▁Ma", - "ur" - ], - [ - "▁Mau", - "r" - ], - [ - "gr", - "ession" - ], - [ - "gress", - "ion" - ], - [ - "g", - "ression" - ], - [ - "ic", - "ia" - ], - [ - "ici", - "a" - ], - [ - "i", - "cia" - ], - [ - "▁lie", - "gt" - ], - [ - "▁Fig", - "ure" - ], - [ - "▁on", - "to" - ], - [ - "▁ont", - "o" - ], - [ - "▁", - "onto" - ], - [ - "Re", - "pository" - ], - [ - "Repos", - "itory" - ], - [ - "▁dé", - "f" - ], - [ - "▁f", - "orth" - ], - [ - "▁for", - "th" - ], - [ - "▁fort", - "h" - ], - [ - "▁cl", - "icked" - ], - [ - "▁click", - "ed" - ], - [ - "se", - "ite" - ], - [ - "▁n", - "otes" - ], - [ - "▁not", - "es" - ], - [ - "▁no", - "tes" - ], - [ - "▁note", - "s" - ], - [ - "▁", - "notes" - ], - [ - "nat", - "ive" - ], - [ - "n", - "ative" - ], - [ - "▁ED", - "IT" - ], - [ - "▁", - "EDIT" - ], - [ - "ы", - "е" - ], - [ - "M", - "T" - ], - [ - "am", - "ental" - ], - [ - "ament", - "al" - ], - [ - "amen", - "tal" - ], - [ - "▁r", - "ose" - ], - [ - "▁ro", - "se" - ], - [ - "▁ros", - "e" - ], - [ - "▁", - "rose" - ], - [ - "▁pu", - "ede" - ], - [ - "▁pue", - "de" - ], - [ - "De", - "legate" - ], - [ - "Deleg", - "ate" - ], - [ - "ub", - "a" - ], - [ - "u", - "ba" - ], - [ - "ne", - "o" - ], - [ - "xi", - "s" - ], - [ - "x", - "is" - ], - [ - "▁Ar", - "thur" - ], - [ - "UR", - "E" - ], - [ - "U", - "RE" - ], - [ - "am", - "ing" - ], - [ - "ami", - "ng" - ], - [ - "amin", - "g" - ], - [ - "a", - "ming" - ], - [ - "De", - "vice" - ], - [ - "Dev", - "ice" - ], - [ - "▁d", - "iam" - ], - [ - "▁di", - "am" - ], - [ - "▁dia", - "m" - ], - [ - "st", - "änd" - ], - [ - "▁p", - "ron" - ], - [ - "▁pro", - "n" - ], - [ - "▁pr", - "on" - ], - [ - "oi", - "s" - ], - [ - "o", - "is" - ], - [ - "com", - "ing" - ], - [ - "co", - "ming" - ], - [ - "c", - "oming" - ], - [ - "Param", - "eters" - ], - [ - "Parameter", - "s" - ], - [ - "uv", - "ud" - ], - [ - "▁ab", - "ility" - ], - [ - "▁", - "ability" - ], - [ - "▁m", - "ét" - ], - [ - "▁mé", - "t" - ], - [ - "▁Un", - "fortunately" - ], - [ - "f", - "d" - ], - [ - "D", - "ictionary" - ], - [ - "so", - "cket" - ], - [ - "sock", - "et" - ], - [ - "s", - "ocket" - ], - [ - "▁con", - "oc" - ], - [ - "▁co", - "noc" - ], - [ - "cont", - "ains" - ], - [ - "es", - "sed" - ], - [ - "ess", - "ed" - ], - [ - "esse", - "d" - ], - [ - "▁gel", - "dig" - ], - [ - "▁geld", - "ig" - ], - [ - "ни", - "ца" - ], - [ - "ниц", - "а" - ], - [ - "▁point", - "ed" - ], - [ - "es", - "ti" - ], - [ - "est", - "i" - ], - [ - "no", - "m" - ], - [ - "n", - "om" - ], - [ - "ографи", - "я" - ], - [ - "▁represent", - "s" - ], - [ - "▁repres", - "ents" - ], - [ - "▁man", - "ip" - ], - [ - "wor", - "ld" - ], - [ - "w", - "orld" - ], - [ - "▁resol", - "ved" - ], - [ - "▁resolve", - "d" - ], - [ - "te", - "gr" - ], - [ - "t", - "egr" - ], - [ - "▁d", - "ort" - ], - [ - "▁do", - "rt" - ], - [ - "▁dor", - "t" - ], - [ - "as", - "tern" - ], - [ - "ast", - "ern" - ], - [ - "aster", - "n" - ], - [ - "aste", - "rn" - ], - [ - "▁camp", - "aign" - ], - [ - "▁pr", - "imo" - ], - [ - "▁prim", - "o" - ], - [ - "▁pri", - "mo" - ], - [ - "▁;", - ";" - ], - [ - "▁", - ";;" - ], - [ - "▁sni", - "ppet" - ], - [ - "▁N", - "ik" - ], - [ - "▁Ni", - "k" - ], - [ - "To", - "tal" - ], - [ - "T", - "otal" - ], - [ - "iss", - "ement" - ], - [ - "isse", - "ment" - ], - [ - "AC", - "E" - ], - [ - "A", - "CE" - ], - [ - "▁ver", - "ify" - ], - [ - "▁", - "verify" - ], - [ - "if", - "fe" - ], - [ - "iff", - "e" - ], - [ - "i", - "ffe" - ], - [ - "la", - "gen" - ], - [ - "lag", - "en" - ], - [ - "lage", - "n" - ], - [ - "l", - "agen" - ], - [ - "ie", - "ur" - ], - [ - "ieu", - "r" - ], - [ - "i", - "eur" - ], - [ - "▁convert", - "ed" - ], - [ - "▁conver", - "ted" - ], - [ - "▁Mil", - "it" - ], - [ - "▁Mi", - "lit" - ], - [ - "▁A", - "lg" - ], - [ - "▁Al", - "g" - ], - [ - "▁", - "Alg" - ], - [ - "▁R", - "on" - ], - [ - "▁Ro", - "n" - ], - [ - "▁k", - "onn" - ], - [ - "▁kon", - "n" - ], - [ - "▁ko", - "nn" - ], - [ - "ap", - "ple" - ], - [ - "app", - "le" - ], - [ - "▁dis", - "pos" - ], - [ - "▁disp", - "os" - ], - [ - "stell", - "ung" - ], - [ - "▁re", - "tain" - ], - [ - "▁ret", - "ain" - ], - [ - "▁m", - "entre" - ], - [ - "▁men", - "tre" - ], - [ - "▁ment", - "re" - ], - [ - "▁ne", - "ut" - ], - [ - "▁neu", - "t" - ], - [ - "▁", - "neut" - ], - [ - "▁N", - "ight" - ], - [ - "ch", - "é" - ], - [ - "c", - "hé" - ], - [ - "at", - "ti" - ], - [ - "att", - "i" - ], - [ - "▁o", - "bra" - ], - [ - "▁ob", - "ra" - ], - [ - "▁super", - "ior" - ], - [ - "▁Con", - "gress" - ], - [ - "▁Cong", - "ress" - ], - [ - "ё", - "м" - ], - [ - "▁c", - "odes" - ], - [ - "▁code", - "s" - ], - [ - "▁co", - "des" - ], - [ - "▁cod", - "es" - ], - [ - "▁", - "codes" - ], - [ - "▁A", - "ma" - ], - [ - "▁Am", - "a" - ], - [ - "▁E", - "arth" - ], - [ - "▁Ear", - "th" - ], - [ - "▁oppos", - "ite" - ], - [ - "▁p", - "ool" - ], - [ - "▁po", - "ol" - ], - [ - "▁", - "pool" - ], - [ - "▁D", - "un" - ], - [ - "▁Du", - "n" - ], - [ - "же", - "ние" - ], - [ - "▁\"", - "${" - ], - [ - "▁\"$", - "{" - ], - [ - "in", - "v" - ], - [ - "▁у", - "ни" - ], - [ - "▁And", - "rew" - ], - [ - "▁Andre", - "w" - ], - [ - "те", - "лей" - ], - [ - "тел", - "ей" - ], - [ - "▁by", - "ł" - ], - [ - "Un", - "ivers" - ], - [ - "Uni", - "vers" - ], - [ - "▁Ang", - "ular" - ], - [ - "an", - "im" - ], - [ - "ani", - "m" - ], - [ - "a", - "nim" - ], - [ - "до", - "ва" - ], - [ - "дов", - "а" - ], - [ - "д", - "ова" - ], - [ - "BU", - "G" - ], - [ - "B", - "UG" - ], - [ - "ut", - "ely" - ], - [ - "ute", - "ly" - ], - [ - "▁draw", - "ing" - ], - [ - "▁dra", - "wing" - ], - [ - "▁g", - "ain" - ], - [ - "▁ga", - "in" - ], - [ - "▁four", - "th" - ], - [ - "▁Pro", - "blem" - ], - [ - "▁", - "Problem" - ], - [ - "▁sudden", - "ly" - ], - [ - "▁", - "Ä" - ], - [ - "on", - "na" - ], - [ - "onn", - "a" - ], - [ - "▁K", - "ont" - ], - [ - "▁Kon", - "t" - ], - [ - "▁Ko", - "nt" - ], - [ - "▁Bilder", - "n" - ], - [ - "▁Bild", - "ern" - ], - [ - "▁Bil", - "dern" - ], - [ - "▁konn", - "te" - ], - [ - "ž", - "e" - ], - [ - "Tr", - "ace" - ], - [ - "Tra", - "ce" - ], - [ - "T", - "race" - ], - [ - "▁sec", - "ure" - ], - [ - "▁", - "secure" - ], - [ - "▁któ", - "ry" - ], - [ - "▁e", - "q" - ], - [ - "▁", - "eq" - ], - [ - "▁f", - "ormal" - ], - [ - "▁for", - "mal" - ], - [ - "▁form", - "al" - ], - [ - "▁forma", - "l" - ], - [ - "amer", - "ikan" - ], - [ - "▁A", - "nal" - ], - [ - "▁An", - "al" - ], - [ - "▁Ana", - "l" - ], - [ - "▁", - "Anal" - ], - [ - "▁R", - "ewrite" - ], - [ - "▁Re", - "write" - ], - [ - "▁D", - "ouble" - ], - [ - "▁Dou", - "ble" - ], - [ - "▁", - "Double" - ], - [ - "cre", - "ated" - ], - [ - "create", - "d" - ], - [ - "N", - "U" - ], - [ - "MD", - "b" - ], - [ - "M", - "Db" - ], - [ - "ap", - "es" - ], - [ - "ape", - "s" - ], - [ - "a", - "pes" - ], - [ - "Un", - "is" - ], - [ - "Uni", - "s" - ], - [ - "U", - "nis" - ], - [ - "▁e", - "special" - ], - [ - "▁espe", - "cial" - ], - [ - "▁espec", - "ial" - ], - [ - "})", - "\\" - ], - [ - "}", - ")\\" - ], - [ - "ed", - "om" - ], - [ - "edo", - "m" - ], - [ - "e", - "dom" - ], - [ - "▁c", - "ategor" - ], - [ - "▁categ", - "or" - ], - [ - "Re", - "turn" - ], - [ - "Ret", - "urn" - ], - [ - "▁H", - "amb" - ], - [ - "▁Ha", - "mb" - ], - [ - "▁Ham", - "b" - ], - [ - "▁R", - "io" - ], - [ - "▁Ri", - "o" - ], - [ - "▁M", - "ir" - ], - [ - "▁Mi", - "r" - ], - [ - "▁G", - "eme" - ], - [ - "▁Ge", - "me" - ], - [ - "▁Gem", - "e" - ], - [ - "ab", - "ilities" - ], - [ - "abil", - "ities" - ], - [ - "tr", - "z" - ], - [ - "t", - "rz" - ], - [ - "us", - "et" - ], - [ - "use", - "t" - ], - [ - "u", - "set" - ], - [ - "ier", - "ra" - ], - [ - "net", - "work" - ], - [ - "n", - "etwork" - ], - [ - "▁do", - "ctor" - ], - [ - "▁doc", - "tor" - ], - [ - "eur", - "s" - ], - [ - "eu", - "rs" - ], - [ - "e", - "urs" - ], - [ - "▁l", - "isten" - ], - [ - "▁li", - "sten" - ], - [ - "▁list", - "en" - ], - [ - "▁liste", - "n" - ], - [ - "▁", - "listen" - ], - [ - "д", - "ж" - ], - [ - "▁H", - "ö" - ], - [ - "▁cons", - "ists" - ], - [ - "▁consist", - "s" - ], - [ - "as", - "m" - ], - [ - "a", - "sm" - ], - [ - "Ch", - "r" - ], - [ - "C", - "hr" - ], - [ - "al", - "and" - ], - [ - "ala", - "nd" - ], - [ - "a", - "land" - ], - [ - "▁испо", - "ль" - ], - [ - "▁ис", - "поль" - ], - [ - "▁испол", - "ь" - ], - [ - "▁lug", - "ar" - ], - [ - "▁lu", - "gar" - ], - [ - "▁def", - "initely" - ], - [ - "▁definit", - "ely" - ], - [ - "▁definite", - "ly" - ], - [ - "mo", - "ve" - ], - [ - "mov", - "e" - ], - [ - "m", - "ove" - ], - [ - "úblic", - "a" - ], - [ - "ú", - "blica" - ], - [ - "▁l", - "än" - ], - [ - "▁lä", - "n" - ], - [ - "is", - "mus" - ], - [ - "ism", - "us" - ], - [ - "▁др", - "жа" - ], - [ - "▁d", - "t" - ], - [ - "▁", - "dt" - ], - [ - "▁Per", - "haps" - ], - [ - "▁Bra", - "sil" - ], - [ - "▁Bras", - "il" - ], - [ - "Jo", - "hn" - ], - [ - "J", - "ohn" - ], - [ - "▁prom", - "ise" - ], - [ - "ł", - "u" - ], - [ - "re", - "ens" - ], - [ - "ree", - "ns" - ], - [ - "reen", - "s" - ], - [ - "▁ps", - "ych" - ], - [ - "▁W", - "ho" - ], - [ - "▁Wh", - "o" - ], - [ - "▁", - "Who" - ], - [ - "ря", - "д" - ], - [ - "▁IN", - "TO" - ], - [ - "▁INT", - "O" - ], - [ - "▁Pe", - "ople" - ], - [ - "▁Will", - "iams" - ], - [ - "▁William", - "s" - ], - [ - "▁M", - "arg" - ], - [ - "▁Mar", - "g" - ], - [ - "▁Ma", - "rg" - ], - [ - "▁д", - "ан" - ], - [ - "▁да", - "н" - ], - [ - "▁", - "дан" - ], - [ - "re", - "cord" - ], - [ - "rec", - "ord" - ], - [ - "▁E", - "uro" - ], - [ - "▁Eu", - "ro" - ], - [ - "▁Eur", - "o" - ], - [ - "▁Virgin", - "ia" - ], - [ - "▁R", - "est" - ], - [ - "▁Re", - "st" - ], - [ - "▁Res", - "t" - ], - [ - "▁", - "Rest" - ], - [ - "▁C", - "orn" - ], - [ - "▁Cor", - "n" - ], - [ - "▁Co", - "rn" - ], - [ - "}}", - "," - ], - [ - "}", - "}," - ], - [ - "▁G", - "rid" - ], - [ - "▁Gr", - "id" - ], - [ - "▁", - "Grid" - ], - [ - "▁in", - "ject" - ], - [ - "▁inj", - "ect" - ], - [ - "▁", - "inject" - ], - [ - "на", - "н" - ], - [ - "н", - "ан" - ], - [ - "▁c", - "row" - ], - [ - "▁cr", - "ow" - ], - [ - "▁cro", - "w" - ], - [ - "▁Ph", - "ys" - ], - [ - "▁", - "Phys" - ], - [ - "▁D", - "O" - ], - [ - "▁", - "DO" - ], - [ - "▁\"", - "-" - ], - [ - "▁incre", - "ased" - ], - [ - "▁increase", - "d" - ], - [ - "ach", - "er" - ], - [ - "ac", - "her" - ], - [ - "ache", - "r" - ], - [ - "a", - "cher" - ], - [ - "pe", - "at" - ], - [ - "Li", - "n" - ], - [ - "L", - "in" - ], - [ - "▁D", - "ub" - ], - [ - "▁Du", - "b" - ], - [ - "ri", - "ces" - ], - [ - "ric", - "es" - ], - [ - "rice", - "s" - ], - [ - "r", - "ices" - ], - [ - "ag", - "nost" - ], - [ - "agn", - "ost" - ], - [ - "d", - "l" - ], - [ - "▁cur", - "ve" - ], - [ - "▁curv", - "e" - ], - [ - "ü", - "g" - ], - [ - "ri", - "ce" - ], - [ - "ric", - "e" - ], - [ - "r", - "ice" - ], - [ - "l", - "anguage" - ], - [ - "Click", - "Listener" - ], - [ - "▁municip", - "al" - ], - [ - "▁O", - "ri" - ], - [ - "▁Or", - "i" - ], - [ - "▁", - "Ori" - ], - [ - "▁B", - "ild" - ], - [ - "▁Bi", - "ld" - ], - [ - "▁Bil", - "d" - ], - [ - "▁C", - "ab" - ], - [ - "▁Ca", - "b" - ], - [ - "▁V", - "ar" - ], - [ - "▁Va", - "r" - ], - [ - "▁", - "Var" - ], - [ - "▁n", - "oted" - ], - [ - "▁not", - "ed" - ], - [ - "▁no", - "ted" - ], - [ - "▁note", - "d" - ], - [ - "▁", - "Î" - ], - [ - "▁s", - "ubs" - ], - [ - "▁su", - "bs" - ], - [ - "▁sub", - "s" - ], - [ - "ia", - "tion" - ], - [ - "iat", - "ion" - ], - [ - "i", - "ation" - ], - [ - "W", - "OR" - ], - [ - "in", - "gly" - ], - [ - "ing", - "ly" - ], - [ - "▁R", - "us" - ], - [ - "▁Ru", - "s" - ], - [ - "ie", - "ns" - ], - [ - "ien", - "s" - ], - [ - "i", - "ens" - ], - [ - "IN", - "FO" - ], - [ - "INF", - "O" - ], - [ - "к", - "ва" - ], - [ - "at", - "ivo" - ], - [ - "ativ", - "o" - ], - [ - "ati", - "vo" - ], - [ - "ge", - "nde" - ], - [ - "gen", - "de" - ], - [ - "g", - "ende" - ], - [ - "▁Fran", - "z" - ], - [ - "▁Fr", - "anz" - ], - [ - "▁is", - "ol" - ], - [ - "▁i", - "sol" - ], - [ - "ed", - "es" - ], - [ - "ede", - "s" - ], - [ - "e", - "des" - ], - [ - "ni", - "er" - ], - [ - "nie", - "r" - ], - [ - "n", - "ier" - ], - [ - "▁N", - "O" - ], - [ - "▁", - "NO" - ], - [ - "▁H", - "as" - ], - [ - "▁Ha", - "s" - ], - [ - "▁", - "Has" - ], - [ - "be", - "ans" - ], - [ - "bean", - "s" - ], - [ - "▁p", - "andas" - ], - [ - "▁pan", - "das" - ], - [ - "▁", - "pandas" - ], - [ - "(\"", - "%" - ], - [ - "ві", - "т" - ], - [ - "ут", - "бо" - ], - [ - "▁g", - "ather" - ], - [ - "▁ga", - "ther" - ], - [ - "▁gat", - "her" - ], - [ - "▁le", - "gal" - ], - [ - "▁leg", - "al" - ], - [ - "▁", - "legal" - ], - [ - "in", - "clud" - ], - [ - "▁circum", - "st" - ], - [ - "cript", - "or" - ], - [ - "ri", - "ble" - ], - [ - "rib", - "le" - ], - [ - "r", - "ible" - ], - [ - "▁S", - "üd" - ], - [ - "▁Sü", - "d" - ], - [ - "▁a", - "pro" - ], - [ - "▁ap", - "ro" - ], - [ - "▁apr", - "o" - ], - [ - "Ap", - "i" - ], - [ - "A", - "pi" - ], - [ - "▁на", - "й" - ], - [ - "▁Afr", - "ican" - ], - [ - "▁Africa", - "n" - ], - [ - "ow", - "ski" - ], - [ - "ows", - "ki" - ], - [ - "▁John", - "son" - ], - [ - "ie", - "k" - ], - [ - "i", - "ek" - ], - [ - "▁v", - "ote" - ], - [ - "▁vo", - "te" - ], - [ - "▁vot", - "e" - ], - [ - "▁", - "vote" - ], - [ - "▁K", - "an" - ], - [ - "▁Ka", - "n" - ], - [ - "▁b", - "ibli" - ], - [ - "▁bib", - "li" - ], - [ - "▁", - "bibli" - ], - [ - "▁h", - "aar" - ], - [ - "▁ha", - "ar" - ], - [ - "▁v", - "r" - ], - [ - "▁", - "vr" - ], - [ - "])", - "," - ], - [ - "]", - ")," - ], - [ - "subset", - "eq" - ], - [ - "Par", - "ser" - ], - [ - "Parse", - "r" - ], - [ - "ia", - "ni" - ], - [ - "ian", - "i" - ], - [ - "i", - "ani" - ], - [ - "is", - "é" - ], - [ - "id", - "ea" - ], - [ - "ide", - "a" - ], - [ - "On", - "ly" - ], - [ - "▁á", - "l" - ], - [ - "▁", - "ál" - ], - [ - "▁C", - "atal" - ], - [ - "▁Ca", - "tal" - ], - [ - "▁Cat", - "al" - ], - [ - "▁C", - "ase" - ], - [ - "▁Cas", - "e" - ], - [ - "▁Ca", - "se" - ], - [ - "▁", - "Case" - ], - [ - "se", - "h" - ], - [ - "s", - "eh" - ], - [ - "▁en", - "counter" - ], - [ - "▁enc", - "ounter" - ], - [ - "▁re", - "form" - ], - [ - "▁ref", - "orm" - ], - [ - "ми", - "ни" - ], - [ - "мин", - "и" - ], - [ - "▁S", - "tre" - ], - [ - "▁St", - "re" - ], - [ - "▁Str", - "e" - ], - [ - "ex", - "ception" - ], - [ - "except", - "ion" - ], - [ - "▁T", - "ar" - ], - [ - "▁Ta", - "r" - ], - [ - "та", - "р" - ], - [ - "т", - "ар" - ], - [ - "tr", - "l" - ], - [ - "t", - "rl" - ], - [ - "▁А", - "лександ" - ], - [ - "ле", - "кт" - ], - [ - "лек", - "т" - ], - [ - "equ", - "al" - ], - [ - "eq", - "ual" - ], - [ - "e", - "qual" - ], - [ - "O", - "p" - ], - [ - "▁l", - "if" - ], - [ - "▁li", - "f" - ], - [ - "▁й", - "ого" - ], - [ - "▁volt", - "age" - ], - [ - "▁volta", - "ge" - ], - [ - "sh", - "ire" - ], - [ - "s", - "hire" - ], - [ - "▁Gro", - "ß" - ], - [ - "в", - "ня" - ], - [ - "ning", - "s" - ], - [ - "n", - "ings" - ], - [ - "н", - "ци" - ], - [ - "▁l", - "ag" - ], - [ - "▁la", - "g" - ], - [ - "▁", - "lag" - ], - [ - "▁and", - "eren" - ], - [ - "▁andere", - "n" - ], - [ - "▁v", - "ac" - ], - [ - "▁va", - "c" - ], - [ - "▁ma", - "cro" - ], - [ - "▁mac", - "ro" - ], - [ - "▁", - "macro" - ], - [ - "=", - "[" - ], - [ - "Th", - "en" - ], - [ - "The", - "n" - ], - [ - "T", - "hen" - ], - [ - "▁control", - "s" - ], - [ - "▁contr", - "ols" - ], - [ - "▁contro", - "ls" - ], - [ - "▁", - "controls" - ], - [ - "se", - "q" - ], - [ - "s", - "eq" - ], - [ - "olog", - "ies" - ], - [ - "ologie", - "s" - ], - [ - "▁select", - "or" - ], - [ - "▁sel", - "ector" - ], - [ - "▁sele", - "ctor" - ], - [ - "▁", - "selector" - ], - [ - "▁Украї", - "ни" - ], - [ - "хів", - "овано" - ], - [ - "ы", - "й" - ], - [ - "allen", - "ge" - ], - [ - "alleng", - "e" - ], - [ - "▁I", - "MDb" - ], - [ - "▁IM", - "Db" - ], - [ - "um", - "my" - ], - [ - "umm", - "y" - ], - [ - "ye", - "n" - ], - [ - "y", - "en" - ], - [ - "▁b", - "este" - ], - [ - "▁be", - "ste" - ], - [ - "▁best", - "e" - ], - [ - "▁bes", - "te" - ], - [ - "▁B", - "ox" - ], - [ - "▁Bo", - "x" - ], - [ - "▁", - "Box" - ], - [ - "▁ch", - "air" - ], - [ - "▁cha", - "ir" - ], - [ - "▁S", - "ab" - ], - [ - "▁Sa", - "b" - ], - [ - "er", - "de" - ], - [ - "erd", - "e" - ], - [ - "▁n", - "ast" - ], - [ - "▁na", - "st" - ], - [ - "▁nas", - "t" - ], - [ - "iv", - "amente" - ], - [ - "iva", - "mente" - ], - [ - "▁об", - "ъ" - ], - [ - "▁require", - "ments" - ], - [ - "▁requirement", - "s" - ], - [ - "▁me", - "eting" - ], - [ - "▁meet", - "ing" - ], - [ - "▁fin", - "an" - ], - [ - "▁fi", - "nan" - ], - [ - "▁A", - "dam" - ], - [ - "▁Ad", - "am" - ], - [ - "▁Ada", - "m" - ], - [ - "▁tele", - "vis" - ], - [ - "▁b", - "right" - ], - [ - "▁br", - "ight" - ], - [ - "▁brig", - "ht" - ], - [ - "▁G", - "it" - ], - [ - "▁Gi", - "t" - ], - [ - "▁", - "Git" - ], - [ - "E", - "G" - ], - [ - "▁G", - "il" - ], - [ - "▁Gi", - "l" - ], - [ - "r", - "ès" - ], - [ - "▁C", - "ond" - ], - [ - "▁Con", - "d" - ], - [ - "▁Co", - "nd" - ], - [ - "▁", - "Cond" - ], - [ - "▁f", - "t" - ], - [ - "▁", - "ft" - ], - [ - "▁бу", - "ло" - ], - [ - "-", - "+" - ], - [ - "EN", - "D" - ], - [ - "E", - "ND" - ], - [ - "er", - "ne" - ], - [ - "ern", - "e" - ], - [ - "▁Com", - "put" - ], - [ - "▁Comp", - "ut" - ], - [ - "▁", - "Comput" - ], - [ - "▁i", - "ls" - ], - [ - "▁il", - "s" - ], - [ - "▁", - "ils" - ], - [ - "▁g", - "all" - ], - [ - "▁gal", - "l" - ], - [ - "▁ga", - "ll" - ], - [ - "▁c", - "sv" - ], - [ - "▁cs", - "v" - ], - [ - "▁", - "csv" - ], - [ - "łu", - "g" - ], - [ - "ł", - "ug" - ], - [ - "▁sum", - "mer" - ], - [ - "▁summ", - "er" - ], - [ - "ga", - "me" - ], - [ - "g", - "ame" - ], - [ - "▁pos", - "ts" - ], - [ - "▁post", - "s" - ], - [ - "▁", - "posts" - ], - [ - "Ар", - "хівовано" - ], - [ - "▁z", - "ij" - ], - [ - "▁de", - "termin" - ], - [ - "▁determ", - "in" - ], - [ - "▁ab", - "andon" - ], - [ - "co", - "unter" - ], - [ - "count", - "er" - ], - [ - "c", - "ounter" - ], - [ - "▁require", - "ment" - ], - [ - "▁requ", - "irement" - ], - [ - "▁T", - "it" - ], - [ - "▁Ti", - "t" - ], - [ - "irt", - "ual" - ], - [ - "▁V", - "ideos" - ], - [ - "▁Video", - "s" - ], - [ - "▁qu", - "iet" - ], - [ - "▁qui", - "et" - ], - [ - "▁T", - "erm" - ], - [ - "▁Te", - "rm" - ], - [ - "▁Ter", - "m" - ], - [ - "▁", - "Term" - ], - [ - "▁time", - "out" - ], - [ - "▁", - "timeout" - ], - [ - "Pr", - "int" - ], - [ - "▁in", - "vent" - ], - [ - "▁inv", - "ent" - ], - [ - "▁inve", - "nt" - ], - [ - "la", - "is" - ], - [ - "l", - "ais" - ], - [ - "▁mon", - "itor" - ], - [ - "ha", - "lb" - ], - [ - "hal", - "b" - ], - [ - "▁W", - "ild" - ], - [ - "▁Wil", - "d" - ], - [ - "▁Wi", - "ld" - ], - [ - "▁le", - "ader" - ], - [ - "▁lead", - "er" - ], - [ - "▁с", - "ель" - ], - [ - "▁се", - "ль" - ], - [ - "▁util", - "iz" - ], - [ - "▁par", - "ents" - ], - [ - "▁parent", - "s" - ], - [ - "▁for", - "ced" - ], - [ - "▁force", - "d" - ], - [ - "▁pro", - "ved" - ], - [ - "▁pr", - "oved" - ], - [ - "▁prov", - "ed" - ], - [ - "▁prove", - "d" - ], - [ - "▁effect", - "ive" - ], - [ - "▁l", - "lam" - ], - [ - "▁ll", - "am" - ], - [ - "▁С", - "по" - ], - [ - "or", - "b" - ], - [ - "o", - "rb" - ], - [ - "gg", - "i" - ], - [ - "g", - "gi" - ], - [ - "▁ass", - "umption" - ], - [ - "▁assum", - "ption" - ], - [ - "▁su", - "bm" - ], - [ - "▁sub", - "m" - ], - [ - "▁в", - "ій" - ], - [ - "▁ві", - "й" - ], - [ - "il", - "ia" - ], - [ - "ili", - "a" - ], - [ - "i", - "lia" - ], - [ - "▁re", - "verse" - ], - [ - "▁revers", - "e" - ], - [ - "▁rever", - "se" - ], - [ - "▁", - "reverse" - ], - [ - "'", - "\"" - ], - [ - "▁qu", - "otes" - ], - [ - "▁quot", - "es" - ], - [ - "▁quote", - "s" - ], - [ - "▁s", - "ites" - ], - [ - "▁si", - "tes" - ], - [ - "▁site", - "s" - ], - [ - "▁sit", - "es" - ], - [ - "▁", - "sites" - ], - [ - "ig", - "ung" - ], - [ - "igu", - "ng" - ], - [ - "▁A", - "rg" - ], - [ - "▁Ar", - "g" - ], - [ - "▁", - "Arg" - ], - [ - "D", - "ouble" - ], - [ - "▁s", - "creens" - ], - [ - "▁sc", - "reens" - ], - [ - "▁screen", - "s" - ], - [ - "▁cl", - "ause" - ], - [ - "▁cla", - "use" - ], - [ - "▁b", - "undle" - ], - [ - "▁bund", - "le" - ], - [ - "▁", - "bundle" - ], - [ - "▁phil", - "osoph" - ], - [ - "▁N", - "um" - ], - [ - "▁Nu", - "m" - ], - [ - "▁", - "Num" - ], - [ - "▁g", - "leich" - ], - [ - "▁gle", - "ich" - ], - [ - "▁", - "gleich" - ], - [ - "ul", - "y" - ], - [ - "u", - "ly" - ], - [ - "dir", - "ect" - ], - [ - "di", - "rect" - ], - [ - "dire", - "ct" - ], - [ - "d", - "irect" - ], - [ - "asket", - "ball" - ], - [ - "ow", - "any" - ], - [ - "owa", - "ny" - ], - [ - "owan", - "y" - ], - [ - "\\}", - "$" - ], - [ - "\\", - "}$" - ], - [ - "▁rad", - "ius" - ], - [ - "▁radi", - "us" - ], - [ - "▁", - "radius" - ], - [ - "▁S", - "earch" - ], - [ - "▁Se", - "arch" - ], - [ - "▁", - "Search" - ], - [ - "Pro", - "perties" - ], - [ - "▁e", - "lev" - ], - [ - "▁el", - "ev" - ], - [ - "▁ele", - "v" - ], - [ - "▁p", - "rod" - ], - [ - "▁pro", - "d" - ], - [ - "▁pr", - "od" - ], - [ - "▁", - "prod" - ], - [ - "▁\"", - "%" - ], - [ - "is", - "ión" - ], - [ - "isi", - "ón" - ], - [ - "De", - "bug" - ], - [ - "Deb", - "ug" - ], - [ - "Se", - "cond" - ], - [ - "Sec", - "ond" - ], - [ - "(", - "!" - ], - [ - "▁C", - "atholic" - ], - [ - "ро", - "ван" - ], - [ - "ров", - "ан" - ], - [ - "рова", - "н" - ], - [ - "р", - "ован" - ], - [ - "le", - "z" - ], - [ - "l", - "ez" - ], - [ - "P", - "a" - ], - [ - "ps", - "on" - ], - [ - "p", - "son" - ], - [ - "▁er", - "ste" - ], - [ - "▁erst", - "e" - ], - [ - "▁ers", - "te" - ], - [ - "▁F", - "u" - ], - [ - "▁l", - "it" - ], - [ - "▁li", - "t" - ], - [ - "▁", - "lit" - ], - [ - "▁S", - "aison" - ], - [ - "▁Sa", - "ison" - ], - [ - "▁H", - "ash" - ], - [ - "▁Ha", - "sh" - ], - [ - "▁Has", - "h" - ], - [ - "▁", - "Hash" - ], - [ - "▁ex", - "em" - ], - [ - "▁пред", - "став" - ], - [ - ")", - "*" - ], - [ - "▁e", - "u" - ], - [ - "▁", - "eu" - ], - [ - "▁", - "│" - ], - [ - "▁g", - "ab" - ], - [ - "▁ga", - "b" - ], - [ - "eta", - "iled" - ], - [ - "Co", - "py" - ], - [ - "C", - "opy" - ], - [ - "▁д", - "ва" - ], - [ - "ev", - "en" - ], - [ - "e", - "ven" - ], - [ - "K", - "ind" - ], - [ - "▁Jack", - "son" - ], - [ - "а", - "л" - ], - [ - "▁con", - "sec" - ], - [ - "▁cons", - "ec" - ], - [ - "▁conse", - "c" - ], - [ - "US", - "ER" - ], - [ - "USE", - "R" - ], - [ - "U", - "SER" - ], - [ - "▁T", - "ok" - ], - [ - "▁To", - "k" - ], - [ - "(", - "." - ], - [ - "▁$", - "|" - ], - [ - "▁T", - "amb" - ], - [ - "▁Ta", - "mb" - ], - [ - "▁Tam", - "b" - ], - [ - "▁Lem", - "ma" - ], - [ - "ha", - "ng" - ], - [ - "han", - "g" - ], - [ - "h", - "ang" - ], - [ - "▁cont", - "ribution" - ], - [ - "▁contrib", - "ution" - ], - [ - "▁contribu", - "tion" - ], - [ - "roll", - "ers" - ], - [ - "rol", - "lers" - ], - [ - "roller", - "s" - ], - [ - "rolle", - "rs" - ], - [ - "▁stud", - "ies" - ], - [ - "▁studi", - "es" - ], - [ - "▁p", - "oi" - ], - [ - "▁po", - "i" - ], - [ - "ge", - "ms" - ], - [ - "gem", - "s" - ], - [ - "g", - "ems" - ], - [ - "▁U", - "P" - ], - [ - "▁", - "UP" - ], - [ - "▁W", - "ol" - ], - [ - "▁Wo", - "l" - ], - [ - ">", - "\"" - ], - [ - "▁f", - "loor" - ], - [ - "▁fl", - "oor" - ], - [ - "▁flo", - "or" - ], - [ - "▁", - "floor" - ], - [ - "▁init", - "ialize" - ], - [ - "▁initial", - "ize" - ], - [ - "▁", - "initialize" - ], - [ - "▁L", - "ew" - ], - [ - "▁Le", - "w" - ], - [ - "ze", - "k" - ], - [ - "z", - "ek" - ], - [ - "ar", - "te" - ], - [ - "art", - "e" - ], - [ - "▁pos", - "itions" - ], - [ - "▁position", - "s" - ], - [ - "▁posit", - "ions" - ], - [ - "▁por", - "tion" - ], - [ - "▁port", - "ion" - ], - [ - "co", - "ver" - ], - [ - "cov", - "er" - ], - [ - "c", - "over" - ], - [ - "w", - "p" - ], - [ - "ов", - "ого" - ], - [ - "ово", - "го" - ], - [ - "о", - "вого" - ], - [ - "▁p", - "iano" - ], - [ - "▁pi", - "ano" - ], - [ - "▁pian", - "o" - ], - [ - "▁pia", - "no" - ], - [ - "▁m", - "etal" - ], - [ - "▁me", - "tal" - ], - [ - "▁met", - "al" - ], - [ - "▁meta", - "l" - ], - [ - "▁s", - "amples" - ], - [ - "▁sam", - "ples" - ], - [ - "▁sample", - "s" - ], - [ - "▁", - "samples" - ], - [ - "▁С", - "ан" - ], - [ - "▁Са", - "н" - ], - [ - "vari", - "able" - ], - [ - "▁ста", - "ть" - ], - [ - "▁inte", - "gers" - ], - [ - "▁integer", - "s" - ], - [ - "Wh", - "ere" - ], - [ - "W", - "here" - ], - [ - "famil", - "y" - ], - [ - "▁n", - "un" - ], - [ - "▁nu", - "n" - ], - [ - "▁in", - "crement" - ], - [ - "▁incre", - "ment" - ], - [ - "▁", - "increment" - ], - [ - "ix", - "ed" - ], - [ - "▁he", - "eft" - ], - [ - "ft", - "e" - ], - [ - "f", - "te" - ], - [ - "▁v", - "il" - ], - [ - "▁vi", - "l" - ], - [ - "▁", - "vil" - ], - [ - "▁ot", - "ros" - ], - [ - "▁otro", - "s" - ], - [ - "Mult", - "imedia" - ], - [ - "Multi", - "media" - ], - [ - "▁Hen", - "ri" - ], - [ - "ad", - "ed" - ], - [ - "ade", - "d" - ], - [ - "a", - "ded" - ], - [ - "ге", - "н" - ], - [ - "г", - "ен" - ], - [ - "▁cap", - "it" - ], - [ - "▁ca", - "pit" - ], - [ - "▁други", - "х" - ], - [ - "is", - "p" - ], - [ - "i", - "sp" - ], - [ - "IT", - "Y" - ], - [ - "I", - "TY" - ], - [ - "▁constraint", - "s" - ], - [ - "▁K", - "irche" - ], - [ - "▁Kir", - "che" - ], - [ - "▁Kirch", - "e" - ], - [ - "fo", - "und" - ], - [ - "f", - "ound" - ], - [ - "ши", - "й" - ], - [ - "▁p", - "ic" - ], - [ - "▁pi", - "c" - ], - [ - "▁", - "pic" - ], - [ - "▁t", - "ou" - ], - [ - "▁to", - "u" - ], - [ - "cre", - "d" - ], - [ - "cr", - "ed" - ], - [ - "c", - "red" - ], - [ - "ро", - "б" - ], - [ - "р", - "об" - ], - [ - "▁M", - "ess" - ], - [ - "▁Me", - "ss" - ], - [ - "▁Mes", - "s" - ], - [ - "▁", - "Mess" - ], - [ - "Jo", - "b" - ], - [ - "J", - "ob" - ], - [ - "▁M", - "ais" - ], - [ - "▁Ma", - "is" - ], - [ - "▁Mai", - "s" - ], - [ - "▁st", - "yles" - ], - [ - "▁style", - "s" - ], - [ - "▁sty", - "les" - ], - [ - "▁", - "styles" - ], - [ - "fa", - "ll" - ], - [ - "fal", - "l" - ], - [ - "f", - "all" - ], - [ - "▁U", - "k" - ], - [ - "▁st", - "reet" - ], - [ - "▁stre", - "et" - ], - [ - "▁", - "street" - ], - [ - "oc", - "cer" - ], - [ - "occ", - "er" - ], - [ - "es", - "en" - ], - [ - "ese", - "n" - ], - [ - "e", - "sen" - ], - [ - "▁col", - "ors" - ], - [ - "▁color", - "s" - ], - [ - "▁", - "colors" - ], - [ - "ce", - "an" - ], - [ - "ю", - "ще" - ], - [ - "con", - "ne" - ], - [ - "conn", - "e" - ], - [ - "c", - "onne" - ], - [ - "▁r", - "atio" - ], - [ - "▁rat", - "io" - ], - [ - "an", - "ton" - ], - [ - "ant", - "on" - ], - [ - "anto", - "n" - ], - [ - "▁F", - "el" - ], - [ - "▁Fe", - "l" - ], - [ - "▁custom", - "er" - ], - [ - "▁cust", - "omer" - ], - [ - "▁", - "customer" - ], - [ - "▁P", - "rix" - ], - [ - "▁Pr", - "ix" - ], - [ - "▁Pri", - "x" - ], - [ - "rá", - "s" - ], - [ - "r", - "ás" - ], - [ - "pr", - "ed" - ], - [ - "pre", - "d" - ], - [ - "p", - "red" - ], - [ - "▁elect", - "ron" - ], - [ - "▁electro", - "n" - ], - [ - "s", - "ym" - ], - [ - "▁ве", - "ли" - ], - [ - "▁", - "вели" - ], - [ - "▁over", - "flow" - ], - [ - "▁", - "overflow" - ], - [ - "▁$", - "[" - ], - [ - "▁P", - "OST" - ], - [ - "▁PO", - "ST" - ], - [ - "▁", - "POST" - ], - [ - "▁C", - "in" - ], - [ - "▁Ci", - "n" - ], - [ - "sc", - "heid" - ], - [ - "sche", - "id" - ], - [ - "(\"", - "/" - ], - [ - "(", - "\"/" - ], - [ - "▁search", - "ing" - ], - [ - "▁pur", - "poses" - ], - [ - "▁purpose", - "s" - ], - [ - "▁arr", - "ived" - ], - [ - "▁arriv", - "ed" - ], - [ - "▁arrive", - "d" - ], - [ - "▁p", - "unt" - ], - [ - "▁pu", - "nt" - ], - [ - "▁pun", - "t" - ], - [ - "▁l", - "ad" - ], - [ - "▁la", - "d" - ], - [ - "▁", - "lad" - ], - [ - "P", - "ython" - ], - [ - "▁le", - "ads" - ], - [ - "▁lead", - "s" - ], - [ - "▁s", - "and" - ], - [ - "▁sa", - "nd" - ], - [ - "▁san", - "d" - ], - [ - "па", - "да" - ], - [ - "пад", - "а" - ], - [ - "▁comm", - "unes" - ], - [ - "▁commun", - "es" - ], - [ - "▁commune", - "s" - ], - [ - "▁CH", - "AP" - ], - [ - "▁c", - "aso" - ], - [ - "▁cas", - "o" - ], - [ - "▁ca", - "so" - ], - [ - "r", - "z" - ], - [ - "▁d", - "w" - ], - [ - "▁", - "dw" - ], - [ - "ac", - "a" - ], - [ - "a", - "ca" - ], - [ - "▁Col", - "umb" - ], - [ - "child", - "ren" - ], - [ - "ê", - "t" - ], - [ - "sch", - "emas" - ], - [ - "sche", - "mas" - ], - [ - "schema", - "s" - ], - [ - "▁instru", - "ctions" - ], - [ - "▁instruction", - "s" - ], - [ - "▁instruct", - "ions" - ], - [ - "▁-", - "\\" - ], - [ - "▁", - "-\\" - ], - [ - "▁Is", - "rael" - ], - [ - "▁Isra", - "el" - ], - [ - "no", - "ści" - ], - [ - "▁об", - "раз" - ], - [ - "▁обра", - "з" - ], - [ - "▁", - "образ" - ], - [ - "▁со", - "вет" - ], - [ - "▁сов", - "ет" - ], - [ - "▁imm", - "agini" - ], - [ - "▁F", - "red" - ], - [ - "▁Fre", - "d" - ], - [ - "▁Fr", - "ed" - ], - [ - "▁G", - "lobal" - ], - [ - "▁Glo", - "bal" - ], - [ - "▁", - "Global" - ], - [ - "▁th", - "ick" - ], - [ - "▁", - "thick" - ], - [ - "▁fue", - "ron" - ], - [ - "▁fuer", - "on" - ], - [ - "▁th", - "rown" - ], - [ - "▁thr", - "own" - ], - [ - "▁throw", - "n" - ], - [ - "▁thro", - "wn" - ], - [ - "▁c", - "lock" - ], - [ - "▁cl", - "ock" - ], - [ - "▁clo", - "ck" - ], - [ - "▁", - "clock" - ], - [ - "en", - "able" - ], - [ - "ena", - "ble" - ], - [ - "''", - "'" - ], - [ - "'", - "''" - ], - [ - "▁S", - "und" - ], - [ - "▁Su", - "nd" - ], - [ - "▁Sun", - "d" - ], - [ - "▁cont", - "empor" - ], - [ - "an", - "swer" - ], - [ - "ans", - "wer" - ], - [ - "▁man", - "ufact" - ], - [ - "▁i", - "o" - ], - [ - "▁", - "io" - ], - [ - "q", - "quad" - ], - [ - "OU", - "T" - ], - [ - "O", - "UT" - ], - [ - "▁L", - "ab" - ], - [ - "▁La", - "b" - ], - [ - "▁", - "Lab" - ], - [ - "▁Z", - "w" - ], - [ - "le", - "gal" - ], - [ - "leg", - "al" - ], - [ - "▁V", - "el" - ], - [ - "▁Ve", - "l" - ], - [ - "▁ra", - "ise" - ], - [ - "▁", - "raise" - ], - [ - "▁de", - "liver" - ], - [ - "▁del", - "iver" - ], - [ - "▁deli", - "ver" - ], - [ - "▁V", - "oir" - ], - [ - "▁Vo", - "ir" - ], - [ - "▁ass", - "umed" - ], - [ - "▁assum", - "ed" - ], - [ - "▁assume", - "d" - ], - [ - "Le", - "t" - ], - [ - "L", - "et" - ], - [ - "ier", - "ten" - ], - [ - "iert", - "en" - ], - [ - "ierte", - "n" - ], - [ - "i", - "erten" - ], - [ - "▁K", - "ong" - ], - [ - "▁Kon", - "g" - ], - [ - "▁Ko", - "ng" - ], - [ - "▁E", - "xp" - ], - [ - "▁Ex", - "p" - ], - [ - "▁", - "Exp" - ], - [ - "▁J", - "ug" - ], - [ - "▁Ju", - "g" - ], - [ - "▁dec", - "laration" - ], - [ - "▁declar", - "ation" - ], - [ - "▁F", - "ish" - ], - [ - "m", - "é" - ], - [ - "▁spe", - "ech" - ], - [ - "▁t", - "ent" - ], - [ - "▁te", - "nt" - ], - [ - "▁ten", - "t" - ], - [ - "▁R", - "oute" - ], - [ - "▁Ro", - "ute" - ], - [ - "▁Rou", - "te" - ], - [ - "▁Rout", - "e" - ], - [ - "▁", - "Route" - ], - [ - "__", - "(" - ], - [ - "_", - "_(" - ], - [ - "▁ré", - "alis" - ], - [ - "▁réal", - "is" - ], - [ - "▁De", - "sign" - ], - [ - "▁Des", - "ign" - ], - [ - "set", - "Text" - ], - [ - "▁St", - "ation" - ], - [ - "▁Stat", - "ion" - ], - [ - "▁Sta", - "tion" - ], - [ - "▁Stati", - "on" - ], - [ - "▁", - "Station" - ], - [ - "ar", - "chy" - ], - [ - "arch", - "y" - ], - [ - "arc", - "hy" - ], - [ - "▁ка", - "то" - ], - [ - "▁d", - "ent" - ], - [ - "▁de", - "nt" - ], - [ - "▁den", - "t" - ], - [ - "▁", - "dent" - ], - [ - "▁K", - "l" - ], - [ - "i", - "ß" - ], - [ - "▁r", - "isk" - ], - [ - "▁ris", - "k" - ], - [ - "▁ri", - "sk" - ], - [ - "▁B", - "road" - ], - [ - "▁Bro", - "ad" - ], - [ - "▁v", - "ectors" - ], - [ - "▁ve", - "ctors" - ], - [ - "▁vector", - "s" - ], - [ - "▁S", - "pec" - ], - [ - "▁Sp", - "ec" - ], - [ - "▁Spe", - "c" - ], - [ - "▁", - "Spec" - ], - [ - "▁ro", - "utes" - ], - [ - "▁route", - "s" - ], - [ - "▁rout", - "es" - ], - [ - "▁rou", - "tes" - ], - [ - "▁", - "routes" - ], - [ - "ym", - "n" - ], - [ - "y", - "mn" - ], - [ - "▁G", - "reg" - ], - [ - "▁Gr", - "eg" - ], - [ - "▁Gre", - "g" - ], - [ - "▁полу", - "чи" - ], - [ - "gi", - "e" - ], - [ - "g", - "ie" - ], - [ - "OR", - "M" - ], - [ - "ве", - "де" - ], - [ - "вед", - "е" - ], - [ - "в", - "еде" - ], - [ - "wa", - "lt" - ], - [ - "wal", - "t" - ], - [ - "w", - "alt" - ], - [ - "▁e", - "fter" - ], - [ - "P", - "tr" - ], - [ - "▁su", - "bt" - ], - [ - "▁sub", - "t" - ], - [ - "▁b", - "irth" - ], - [ - "▁bir", - "th" - ], - [ - "▁dr", - "awn" - ], - [ - "▁draw", - "n" - ], - [ - "▁dra", - "wn" - ], - [ - "me", - "ss" - ], - [ - "mes", - "s" - ], - [ - "m", - "ess" - ], - [ - "мери", - "кан" - ], - [ - "V", - "E" - ], - [ - "▁P", - "ut" - ], - [ - "▁Pu", - "t" - ], - [ - "▁", - "Put" - ], - [ - "▁a", - "sc" - ], - [ - "▁as", - "c" - ], - [ - "▁", - "asc" - ], - [ - "▁f", - "eder" - ], - [ - "▁fe", - "der" - ], - [ - "▁fed", - "er" - ], - [ - "с", - "ли" - ], - [ - "▁P", - "rin" - ], - [ - "▁Pr", - "in" - ], - [ - "▁Pri", - "n" - ], - [ - "▁s", - "tick" - ], - [ - "▁st", - "ick" - ], - [ - "re", - "set" - ], - [ - "res", - "et" - ], - [ - "y", - "k" - ], - [ - "st", - "udio" - ], - [ - "stud", - "io" - ], - [ - "▁St", - "ill" - ], - [ - "Con", - "st" - ], - [ - "Cons", - "t" - ], - [ - "ac", - "ió" - ], - [ - "aci", - "ó" - ], - [ - "a", - "ció" - ], - [ - "▁Portug", - "al" - ], - [ - "▁script", - "s" - ], - [ - "▁scri", - "pts" - ], - [ - "▁", - "scripts" - ], - [ - "und", - "ial" - ], - [ - "▁l", - "ives" - ], - [ - "▁li", - "ves" - ], - [ - "▁live", - "s" - ], - [ - "▁liv", - "es" - ], - [ - "▁s", - "zer" - ], - [ - "▁sz", - "er" - ], - [ - "▁sze", - "r" - ], - [ - "▁est", - "ado" - ], - [ - "▁esta", - "do" - ], - [ - "▁estad", - "o" - ], - [ - "fo", - "lder" - ], - [ - "fol", - "der" - ], - [ - "fold", - "er" - ], - [ - "f", - "older" - ], - [ - "▁communic", - "ation" - ], - [ - "Ro", - "ute" - ], - [ - "Rout", - "e" - ], - [ - "R", - "oute" - ], - [ - "▁sw", - "ift" - ], - [ - "▁", - "swift" - ], - [ - "те", - "н" - ], - [ - "т", - "ен" - ], - [ - "▁k", - "ill" - ], - [ - "▁kil", - "l" - ], - [ - "▁ki", - "ll" - ], - [ - "▁", - "kill" - ], - [ - "▁P", - "R" - ], - [ - "▁", - "PR" - ], - [ - "jo", - "int" - ], - [ - "join", - "t" - ], - [ - "j", - "oint" - ], - [ - "▁ob", - "jective" - ], - [ - "▁object", - "ive" - ], - [ - "▁comp", - "licated" - ], - [ - "▁Ü", - "ber" - ], - [ - "es", - "h" - ], - [ - "e", - "sh" - ], - [ - "p", - "icture" - ], - [ - "ra", - "ine" - ], - [ - "rain", - "e" - ], - [ - "rai", - "ne" - ], - [ - "r", - "aine" - ], - [ - "com", - "put" - ], - [ - "comp", - "ut" - ], - [ - "▁pro", - "port" - ], - [ - "▁pr", - "oport" - ], - [ - "▁prop", - "ort" - ], - [ - "▁propor", - "t" - ], - [ - "og", - "s" - ], - [ - "o", - "gs" - ], - [ - "ül", - "t" - ], - [ - "ü", - "lt" - ], - [ - "▁quant", - "um" - ], - [ - "к", - "ри" - ], - [ - "▁s", - "op" - ], - [ - "▁so", - "p" - ], - [ - "▁lo", - "ops" - ], - [ - "▁loop", - "s" - ], - [ - "▁Re", - "ference" - ], - [ - "▁Refer", - "ence" - ], - [ - "▁", - "Reference" - ], - [ - "▁n", - "ei" - ], - [ - "▁ne", - "i" - ], - [ - "IC", - "E" - ], - [ - "I", - "CE" - ], - [ - "▁v", - "erm" - ], - [ - "▁ver", - "m" - ], - [ - "▁ve", - "rm" - ], - [ - "▁a", - "dj" - ], - [ - "▁ad", - "j" - ], - [ - "▁", - "adj" - ], - [ - "▁per", - "ò" - ], - [ - "▁t", - "rou" - ], - [ - "▁tr", - "ou" - ], - [ - "▁tro", - "u" - ], - [ - "is", - "ions" - ], - [ - "ision", - "s" - ], - [ - "isi", - "ons" - ], - [ - "▁App", - "le" - ], - [ - "▁Ap", - "ple" - ], - [ - "serv", - "able" - ], - [ - "▁B", - "oston" - ], - [ - "▁Bo", - "ston" - ], - [ - "▁Bos", - "ton" - ], - [ - "or", - "et" - ], - [ - "ore", - "t" - ], - [ - "o", - "ret" - ], - [ - "ok", - "s" - ], - [ - "o", - "ks" - ], - [ - "▁k", - "g" - ], - [ - "▁", - "kg" - ], - [ - "def", - "ined" - ], - [ - "define", - "d" - ], - [ - "defin", - "ed" - ], - [ - "d", - "efined" - ], - [ - "pl", - "atform" - ], - [ - "cl", - "er" - ], - [ - "cle", - "r" - ], - [ - "c", - "ler" - ], - [ - "ograph", - "ic" - ], - [ - "ri", - "tt" - ], - [ - "rit", - "t" - ], - [ - "r", - "itt" - ], - [ - "▁d", - "ic" - ], - [ - "▁di", - "c" - ], - [ - "▁", - "dic" - ], - [ - "▁M", - "ond" - ], - [ - "▁Mon", - "d" - ], - [ - "▁Mo", - "nd" - ], - [ - "▁I", - "reland" - ], - [ - "▁Ir", - "eland" - ], - [ - "▁U", - "na" - ], - [ - "▁Un", - "a" - ], - [ - "▁commer", - "cial" - ], - [ - "▁P", - "u" - ], - [ - "D", - "i" - ], - [ - "▁е", - "ё" - ], - [ - "▁pre", - "cis" - ], - [ - "▁prec", - "is" - ], - [ - "на", - "род" - ], - [ - "нар", - "од" - ], - [ - "▁qu", - "atre" - ], - [ - "ust", - "ral" - ], - [ - "ustr", - "al" - ], - [ - "▁d", - "ag" - ], - [ - "▁da", - "g" - ], - [ - "▁", - "dag" - ], - [ - "ig", - "ue" - ], - [ - "igu", - "e" - ], - [ - "i", - "gue" - ], - [ - "▁b", - "urn" - ], - [ - "▁bu", - "rn" - ], - [ - "▁bur", - "n" - ], - [ - "▁", - "burn" - ], - [ - "▁offic", - "er" - ], - [ - "▁office", - "r" - ], - [ - "▁А", - "в" - ], - [ - "▁high", - "light" - ], - [ - "▁", - "highlight" - ], - [ - "▁Supp", - "ose" - ], - [ - "▁Sup", - "pose" - ], - [ - "od", - "i" - ], - [ - "o", - "di" - ], - [ - "serv", - "let" - ], - [ - "▁En", - "cyc" - ], - [ - "▁Enc", - "yc" - ], - [ - "▁R", - "ange" - ], - [ - "▁Ran", - "ge" - ], - [ - "▁Rang", - "e" - ], - [ - "▁", - "Range" - ], - [ - "ти", - "й" - ], - [ - "P", - "lease" - ], - [ - "▁ро", - "ків" - ], - [ - "qu", - "ant" - ], - [ - "qua", - "nt" - ], - [ - "▁f", - "lat" - ], - [ - "▁fl", - "at" - ], - [ - "▁fla", - "t" - ], - [ - "▁", - "flat" - ], - [ - "▁Ré", - "férence" - ], - [ - "сле", - "дова" - ], - [ - "след", - "ова" - ], - [ - "ro", - "le" - ], - [ - "rol", - "e" - ], - [ - "r", - "ole" - ], - [ - "▁d", - "iesen" - ], - [ - "▁di", - "esen" - ], - [ - "▁die", - "sen" - ], - [ - "▁dies", - "en" - ], - [ - "▁diese", - "n" - ], - [ - "}}", - "(" - ], - [ - "}", - "}(" - ], - [ - "▁Ind", - "ust" - ], - [ - "▁nú", - "mer" - ], - [ - "▁\"", - ";" - ], - [ - "▁", - "\";" - ], - [ - "lu", - "s" - ], - [ - "l", - "us" - ], - [ - "ô", - "le" - ], - [ - "▁z", - "m" - ], - [ - "▁", - "zm" - ], - [ - "de", - "g" - ], - [ - "d", - "eg" - ], - [ - "▁r", - "ough" - ], - [ - "▁ro", - "ugh" - ], - [ - "▁rou", - "gh" - ], - [ - "▁", - "rough" - ], - [ - "In", - "v" - ], - [ - "▁h", - "ur" - ], - [ - "▁hu", - "r" - ], - [ - "▁R", - "ess" - ], - [ - "▁Re", - "ss" - ], - [ - "▁Res", - "s" - ], - [ - "ch", - "s" - ], - [ - "c", - "hs" - ], - [ - "▁turn", - "s" - ], - [ - "▁tur", - "ns" - ], - [ - "ne", - "ro" - ], - [ - "ner", - "o" - ], - [ - "n", - "ero" - ], - [ - "function", - "s" - ], - [ - "fun", - "ctions" - ], - [ - "ал", - "и" - ], - [ - "а", - "ли" - ], - [ - "▁hab", - "itants" - ], - [ - "▁habit", - "ants" - ], - [ - "а", - "т" - ], - [ - "iss", - "ues" - ], - [ - "issue", - "s" - ], - [ - "▁h", - "uge" - ], - [ - "▁hu", - "ge" - ], - [ - "Util", - "s" - ], - [ - "▁S", - "at" - ], - [ - "▁Sa", - "t" - ], - [ - "▁го", - "судар" - ], - [ - "▁co", - "ast" - ], - [ - "sh", - "ape" - ], - [ - "sha", - "pe" - ], - [ - "s", - "hape" - ], - [ - "L", - "C" - ], - [ - "▁log", - "ging" - ], - [ - "▁", - "logging" - ], - [ - "en", - "dor" - ], - [ - "end", - "or" - ], - [ - "endo", - "r" - ], - [ - "▁l", - "ies" - ], - [ - "▁li", - "es" - ], - [ - "▁lie", - "s" - ], - [ - "▁", - "lies" - ], - [ - "▁d", - "ifer" - ], - [ - "▁di", - "fer" - ], - [ - "▁dif", - "er" - ], - [ - "▁crit", - "ical" - ], - [ - "▁critic", - "al" - ], - [ - "X", - "T" - ], - [ - "ми", - "на" - ], - [ - "мин", - "а" - ], - [ - "an", - "sk" - ], - [ - "ans", - "k" - ], - [ - "Result", - "s" - ], - [ - "k", - "c" - ], - [ - "ivers", - "e" - ], - [ - "iver", - "se" - ], - [ - "i", - "verse" - ], - [ - "EX", - "T" - ], - [ - "E", - "XT" - ], - [ - "AL", - "SE" - ], - [ - "▁v", - "ál" - ], - [ - "▁vá", - "l" - ], - [ - "P", - "i" - ], - [ - "comp", - "ile" - ], - [ - "hel", - "lo" - ], - [ - "hell", - "o" - ], - [ - "h", - "ello" - ], - [ - "▁чем", - "пи" - ], - [ - "▁It", - "alia" - ], - [ - "▁Ital", - "ia" - ], - [ - "▁", - "Italia" - ], - [ - "ко", - "ло" - ], - [ - "кол", - "о" - ], - [ - "к", - "оло" - ], - [ - "▁ed", - "ition" - ], - [ - "▁edit", - "ion" - ], - [ - "gr", - "und" - ], - [ - "gru", - "nd" - ], - [ - "g", - "rund" - ], - [ - "▁data", - "frame" - ], - [ - "▁Follow", - "ing" - ], - [ - "re", - "ib" - ], - [ - "rei", - "b" - ], - [ - "▁J", - "eff" - ], - [ - "▁Je", - "ff" - ], - [ - "▁citt", - "à" - ], - [ - "IT", - "able" - ], - [ - "I", - "Table" - ], - [ - "▁$", - "(\\" - ], - [ - "▁$(", - "\\" - ], - [ - "▁redu", - "ced" - ], - [ - "▁reduce", - "d" - ], - [ - "ob", - "il" - ], - [ - "obi", - "l" - ], - [ - "o", - "bil" - ], - [ - "▁any", - "where" - ], - [ - "'", - "(" - ], - [ - "▁p", - "hr" - ], - [ - "▁ph", - "r" - ], - [ - "▁", - "phr" - ], - [ - "▁K", - "h" - ], - [ - "▁F", - "rame" - ], - [ - "▁Fr", - "ame" - ], - [ - "▁Fra", - "me" - ], - [ - "▁", - "Frame" - ], - [ - "▁man", - "ual" - ], - [ - "▁", - "manual" - ], - [ - "▁c", - "ra" - ], - [ - "▁cr", - "a" - ], - [ - "▁", - "cra" - ], - [ - "▁V", - "S" - ], - [ - "▁", - "VS" - ], - [ - "%", - "=" - ], - [ - "Instance", - "State" - ], - [ - "▁б", - "ра" - ], - [ - "▁", - "бра" - ], - [ - "▁D", - "rag" - ], - [ - "▁Dr", - "ag" - ], - [ - "▁Dra", - "g" - ], - [ - "▁", - "Drag" - ], - [ - "▁H", - "err" - ], - [ - "▁He", - "rr" - ], - [ - "▁Her", - "r" - ], - [ - "▁г", - "у" - ], - [ - "▁", - "гу" - ], - [ - "▁m", - "ús" - ], - [ - "To", - "ol" - ], - [ - "T", - "ool" - ], - [ - "▁P", - "rivate" - ], - [ - "▁Priv", - "ate" - ], - [ - "▁", - "Private" - ], - [ - "▁s", - "ynchron" - ], - [ - "▁syn", - "chron" - ], - [ - "ir", - "ation" - ], - [ - "ira", - "tion" - ], - [ - "irat", - "ion" - ], - [ - "▁о", - "бо" - ], - [ - "▁об", - "о" - ], - [ - "▁typ", - "ically" - ], - [ - "▁typical", - "ly" - ], - [ - "▁imp", - "licit" - ], - [ - "or", - "ient" - ], - [ - "ori", - "ent" - ], - [ - "orie", - "nt" - ], - [ - "▁t", - "imer" - ], - [ - "▁time", - "r" - ], - [ - "▁tim", - "er" - ], - [ - "▁ti", - "mer" - ], - [ - "▁", - "timer" - ], - [ - "▁kön", - "nen" - ], - [ - "ie", - "st" - ], - [ - "ies", - "t" - ], - [ - "i", - "est" - ], - [ - "ra", - "id" - ], - [ - "rai", - "d" - ], - [ - "▁expression", - "s" - ], - [ - "▁express", - "ions" - ], - [ - "▁expr", - "essions" - ], - [ - "▁a", - "im" - ], - [ - "▁ai", - "m" - ], - [ - "▁s", - "tre" - ], - [ - "▁st", - "re" - ], - [ - "▁str", - "e" - ], - [ - "▁", - "stre" - ], - [ - "▁w", - "rap" - ], - [ - "▁wr", - "ap" - ], - [ - "▁wra", - "p" - ], - [ - "▁", - "wrap" - ], - [ - "▁B", - "art" - ], - [ - "▁Bar", - "t" - ], - [ - "▁Ba", - "rt" - ], - [ - "▁b", - "ron" - ], - [ - "▁br", - "on" - ], - [ - "▁bro", - "n" - ], - [ - "▁key", - "board" - ], - [ - "po", - "w" - ], - [ - "p", - "ow" - ], - [ - "▁gru", - "po" - ], - [ - "▁grup", - "o" - ], - [ - "▁ре", - "зу" - ], - [ - "▁prof", - "essor" - ], - [ - "▁profess", - "or" - ], - [ - "▁H", - "ead" - ], - [ - "▁He", - "ad" - ], - [ - "▁", - "Head" - ], - [ - "но", - "ю" - ], - [ - "min", - "us" - ], - [ - "m", - "inus" - ], - [ - "▁Mich", - "el" - ], - [ - "▁Mic", - "hel" - ], - [ - "NO", - "T" - ], - [ - "N", - "OT" - ], - [ - "mo", - "r" - ], - [ - "m", - "or" - ], - [ - "]", - "}" - ], - [ - "wide", - "hat" - ], - [ - "ar", - "is" - ], - [ - "ari", - "s" - ], - [ - "a", - "ris" - ], - [ - "тера", - "тура" - ], - [ - "de", - "fn" - ], - [ - "def", - "n" - ], - [ - "is", - "trz" - ], - [ - "ist", - "rz" - ], - [ - "istr", - "z" - ], - [ - "▁t", - "anto" - ], - [ - "▁tan", - "to" - ], - [ - "▁tant", - "o" - ], - [ - "▁P", - "ow" - ], - [ - "▁Po", - "w" - ], - [ - "▁ind", - "icate" - ], - [ - "▁indic", - "ate" - ], - [ - "▁W", - "inter" - ], - [ - "▁Win", - "ter" - ], - [ - "res", - "hold" - ], - [ - "resh", - "old" - ], - [ - "рі", - "в" - ], - [ - "р", - "ів" - ], - [ - "▁`", - "(" - ], - [ - "▁o", - "wner" - ], - [ - "▁own", - "er" - ], - [ - "▁ow", - "ner" - ], - [ - "▁", - "owner" - ], - [ - "▁d", - "isp" - ], - [ - "▁di", - "sp" - ], - [ - "▁dis", - "p" - ], - [ - "▁к", - "ри" - ], - [ - "▁", - "кри" - ], - [ - "ме", - "т" - ], - [ - "м", - "ет" - ], - [ - "мен", - "т" - ], - [ - "м", - "ент" - ], - [ - "re", - "port" - ], - [ - "rep", - "ort" - ], - [ - "repo", - "rt" - ], - [ - "re", - "quire" - ], - [ - "▁v", - "oy" - ], - [ - "▁vo", - "y" - ], - [ - "▁", - "voy" - ], - [ - "▁A", - "P" - ], - [ - "▁", - "AP" - ], - [ - "▁Esp", - "aña" - ], - [ - "▁Españ", - "a" - ], - [ - "▁S", - "ão" - ], - [ - "j", - "är" - ], - [ - "No", - "n" - ], - [ - "N", - "on" - ], - [ - "Li", - "brary" - ], - [ - "L", - "ibrary" - ], - [ - "ich", - "ten" - ], - [ - "icht", - "en" - ], - [ - "ichte", - "n" - ], - [ - "i", - "chten" - ], - [ - "▁struct", - "ures" - ], - [ - "▁structure", - "s" - ], - [ - "▁m", - "uy" - ], - [ - "▁mu", - "y" - ], - [ - "ár", - "io" - ], - [ - "á", - "rio" - ], - [ - "▁cert", - "ificate" - ], - [ - "▁certific", - "ate" - ], - [ - "чно", - "го" - ], - [ - "ч", - "ного" - ], - [ - "▁prov", - "ince" - ], - [ - "▁provin", - "ce" - ], - [ - "pa", - "ges" - ], - [ - "page", - "s" - ], - [ - "pag", - "es" - ], - [ - "p", - "ages" - ], - [ - "da", - "l" - ], - [ - "d", - "al" - ], - [ - "▁Fre", - "der" - ], - [ - "▁Fr", - "eder" - ], - [ - "▁Fred", - "er" - ], - [ - "ь", - "е" - ], - [ - "Exec", - "ute" - ], - [ - "▁an", - "cient" - ], - [ - "▁anci", - "ent" - ], - [ - "▁anc", - "ient" - ], - [ - "▁ancien", - "t" - ], - [ - "▁fil", - "ms" - ], - [ - "▁film", - "s" - ], - [ - "▁Al", - "fred" - ], - [ - "▁Alf", - "red" - ], - [ - "Aut", - "o" - ], - [ - "A", - "uto" - ], - [ - "▁a", - "tom" - ], - [ - "▁at", - "om" - ], - [ - "▁", - "atom" - ], - [ - "▁e", - "ll" - ], - [ - "▁el", - "l" - ], - [ - "▁", - "ell" - ], - [ - "▁H", - "arr" - ], - [ - "▁Har", - "r" - ], - [ - "▁Ha", - "rr" - ], - [ - "й", - "н" - ], - [ - "▁\"", - "#" - ], - [ - "▁n", - "acional" - ], - [ - "▁nac", - "ional" - ], - [ - "▁neigh", - "bor" - ], - [ - "▁neighb", - "or" - ], - [ - "сту", - "па" - ], - [ - "ступ", - "а" - ], - [ - "▁w", - "it" - ], - [ - "Po", - "p" - ], - [ - "P", - "op" - ], - [ - "▁G", - "reek" - ], - [ - "▁Gre", - "ek" - ], - [ - "▁Gree", - "k" - ], - [ - "▁re", - "peat" - ], - [ - "▁repe", - "at" - ], - [ - "▁", - "repeat" - ], - [ - "ba", - "d" - ], - [ - "b", - "ad" - ], - [ - "▁S", - "C" - ], - [ - "▁", - "SC" - ], - [ - "▁Date", - "Time" - ], - [ - "▁", - "DateTime" - ], - [ - "ш", - "ти" - ], - [ - "▁W", - "H" - ], - [ - "▁", - "WH" - ], - [ - "▁пра", - "ви" - ], - [ - "▁прав", - "и" - ], - [ - "▁", - "прави" - ], - [ - "▁Т", - "и" - ], - [ - "▁s", - "aison" - ], - [ - "▁sa", - "ison" - ], - [ - "▁H", - "art" - ], - [ - "▁Har", - "t" - ], - [ - "▁Ha", - "rt" - ], - [ - "direct", - "ory" - ], - [ - "d", - "irectory" - ], - [ - "ua", - "n" - ], - [ - "u", - "an" - ], - [ - "no", - "rm" - ], - [ - "nor", - "m" - ], - [ - "n", - "orm" - ], - [ - "▁Phil", - "ipp" - ], - [ - "▁Phili", - "pp" - ], - [ - "▁Philip", - "p" - ], - [ - "▁su", - "spect" - ], - [ - "▁sus", - "pect" - ], - [ - "▁susp", - "ect" - ], - [ - "▁an", - "no" - ], - [ - "▁ann", - "o" - ], - [ - "▁", - "anno" - ], - [ - "b", - "c" - ], - [ - "с", - "ла" - ], - [ - "$", - "(" - ], - [ - "▁be", - "find" - ], - [ - "▁bef", - "ind" - ], - [ - "oc", - "s" - ], - [ - "o", - "cs" - ], - [ - "la", - "test" - ], - [ - "lat", - "est" - ], - [ - "late", - "st" - ], - [ - ";\"", - ">" - ], - [ - ";", - "\">" - ], - [ - "▁after", - "wards" - ], - [ - "PU", - "T" - ], - [ - "P", - "UT" - ], - [ - "▁j", - "a" - ], - [ - "▁", - "ja" - ], - [ - "▁H", - "il" - ], - [ - "▁Hi", - "l" - ], - [ - "y", - "z" - ], - [ - "▁B", - "our" - ], - [ - "▁Bo", - "ur" - ], - [ - "▁Bou", - "r" - ], - [ - "▁la", - "id" - ], - [ - "▁Д", - "же" - ], - [ - "▁Дж", - "е" - ], - [ - "pi", - "e" - ], - [ - "p", - "ie" - ], - [ - "w", - "atch" - ], - [ - "▁E", - "q" - ], - [ - "▁", - "Eq" - ], - [ - "cont", - "act" - ], - [ - "ib", - "er" - ], - [ - "ibe", - "r" - ], - [ - "i", - "ber" - ], - [ - "check", - "box" - ], - [ - "▁esp", - "añ" - ], - [ - "▁espa", - "ñ" - ], - [ - "an", - "se" - ], - [ - "ans", - "e" - ], - [ - "▁ш", - "ко" - ], - [ - "▁", - "шко" - ], - [ - "ef", - "f" - ], - [ - "e", - "ff" - ], - [ - "xx", - "x" - ], - [ - "x", - "xx" - ], - [ - "▁G", - "ET" - ], - [ - "▁", - "GET" - ], - [ - "▁l", - "ov" - ], - [ - "▁lo", - "v" - ], - [ - "▁", - "lov" - ], - [ - "it", - "ute" - ], - [ - "itu", - "te" - ], - [ - "itut", - "e" - ], - [ - "ze", - "ch" - ], - [ - "zec", - "h" - ], - [ - "z", - "ech" - ], - [ - "ter", - "e" - ], - [ - "te", - "re" - ], - [ - "t", - "ere" - ], - [ - "▁p", - "urs" - ], - [ - "▁pu", - "rs" - ], - [ - "▁pur", - "s" - ], - [ - "ke", - "ns" - ], - [ - "ken", - "s" - ], - [ - "k", - "ens" - ], - [ - "ian", - "te" - ], - [ - "i", - "ante" - ], - [ - "▁F", - "ree" - ], - [ - "▁Fre", - "e" - ], - [ - "▁Fr", - "ee" - ], - [ - "▁", - "Free" - ], - [ - "▁ор", - "гани" - ], - [ - "▁орган", - "и" - ], - [ - "kre", - "is" - ], - [ - "▁{", - ":" - ], - [ - "▁", - "{:" - ], - [ - "sh", - "ared" - ], - [ - "share", - "d" - ], - [ - "sha", - "red" - ], - [ - "▁G", - "raph" - ], - [ - "▁Gr", - "aph" - ], - [ - "▁Gra", - "ph" - ], - [ - "▁", - "Graph" - ], - [ - "▁conne", - "ctions" - ], - [ - "▁connection", - "s" - ], - [ - "▁connect", - "ions" - ], - [ - "▁D", - "OM" - ], - [ - "▁DO", - "M" - ], - [ - "▁", - "DOM" - ], - [ - "▁C", - "art" - ], - [ - "▁Car", - "t" - ], - [ - "▁Ca", - "rt" - ], - [ - "▁", - "Cart" - ], - [ - "ss", - "on" - ], - [ - "s", - "son" - ], - [ - "▁H", - "amilton" - ], - [ - "те", - "ли" - ], - [ - "тел", - "и" - ], - [ - "▁r", - "estaur" - ], - [ - "▁rest", - "aur" - ], - [ - "▁resta", - "ur" - ], - [ - "Re", - "sol" - ], - [ - "Res", - "ol" - ], - [ - "Dr", - "iver" - ], - [ - "D", - "river" - ], - [ - "▁en", - "f" - ], - [ - "▁", - "enf" - ], - [ - "ED", - "IT" - ], - [ - "▁p", - "rev" - ], - [ - "▁pr", - "ev" - ], - [ - "▁pre", - "v" - ], - [ - "▁", - "prev" - ], - [ - "▁i", - "k" - ], - [ - "▁", - "ik" - ], - [ - "▁s", - "ă" - ], - [ - "j", - "ö" - ], - [ - "▁С", - "ССР" - ], - [ - "▁col", - "our" - ], - [ - "ch", - "ten" - ], - [ - "cht", - "en" - ], - [ - "chte", - "n" - ], - [ - "▁e", - "stad" - ], - [ - "▁est", - "ad" - ], - [ - "▁esta", - "d" - ], - [ - "in", - "ois" - ], - [ - "ino", - "is" - ], - [ - "▁con", - "fir" - ], - [ - "▁conf", - "ir" - ], - [ - "▁v", - "é" - ], - [ - "▁", - "vé" - ], - [ - "▁C", - "es" - ], - [ - "▁Ce", - "s" - ], - [ - "▁N", - "ever" - ], - [ - "▁Ne", - "ver" - ], - [ - "▁Nev", - "er" - ], - [ - "om", - "er" - ], - [ - "ome", - "r" - ], - [ - "o", - "mer" - ], - [ - "ж", - "да" - ], - [ - "с", - "лу" - ], - [ - "че", - "ния" - ], - [ - "dl", - "l" - ], - [ - "d", - "ll" - ], - [ - "▁y", - "outh" - ], - [ - "▁you", - "th" - ], - [ - "▁yo", - "uth" - ], - [ - "em", - "en" - ], - [ - "eme", - "n" - ], - [ - "e", - "men" - ], - [ - "▁stud", - "ied" - ], - [ - "▁studi", - "ed" - ], - [ - "▁K", - "il" - ], - [ - "▁Ki", - "l" - ], - [ - "ci", - "on" - ], - [ - "cio", - "n" - ], - [ - "c", - "ion" - ], - [ - "▁n", - "avig" - ], - [ - "▁nav", - "ig" - ], - [ - "re", - "quired" - ], - [ - "require", - "d" - ], - [ - "orith", - "ms" - ], - [ - "orithm", - "s" - ], - [ - "il", - "or" - ], - [ - "ilo", - "r" - ], - [ - "i", - "lor" - ], - [ - "▁Deutsch", - "en" - ], - [ - "▁Deutsche", - "n" - ], - [ - "▁person", - "s" - ], - [ - "▁pers", - "ons" - ], - [ - "▁Barcel", - "ona" - ], - [ - "▁form", - "ation" - ], - [ - "▁format", - "ion" - ], - [ - "▁forma", - "tion" - ], - [ - "▁", - "formation" - ], - [ - "ab", - "ei" - ], - [ - "abe", - "i" - ], - [ - "a", - "bei" - ], - [ - "▁про", - "тив" - ], - [ - "▁проти", - "в" - ], - [ - "Eng", - "ine" - ], - [ - "ON", - "E" - ], - [ - "O", - "NE" - ], - [ - "og", - "rá" - ], - [ - "Ca", - "p" - ], - [ - "C", - "ap" - ], - [ - "ri", - "r" - ], - [ - "r", - "ir" - ], - [ - "▁g", - "ate" - ], - [ - "▁ga", - "te" - ], - [ - "▁gat", - "e" - ], - [ - "▁", - "gate" - ], - [ - "or", - "ation" - ], - [ - "ora", - "tion" - ], - [ - "ma", - "ven" - ], - [ - "m", - "aven" - ], - [ - "▁comb", - "ined" - ], - [ - "▁combin", - "ed" - ], - [ - "▁combine", - "d" - ], - [ - "▁at", - "tr" - ], - [ - "▁att", - "r" - ], - [ - "▁", - "attr" - ], - [ - "▁h", - "ook" - ], - [ - "▁ho", - "ok" - ], - [ - "▁", - "hook" - ], - [ - "▁которы", - "й" - ], - [ - "▁ser", - "vers" - ], - [ - "▁server", - "s" - ], - [ - "▁serv", - "ers" - ], - [ - "▁serve", - "rs" - ], - [ - "uct", - "ure" - ], - [ - "же", - "ння" - ], - [ - "жен", - "ня" - ], - [ - "t", - "v" - ], - [ - "▁re", - "q" - ], - [ - "▁r", - "eq" - ], - [ - "▁", - "req" - ], - [ - "ja", - "l" - ], - [ - "j", - "al" - ], - [ - "▁loc", - "ally" - ], - [ - "▁local", - "ly" - ], - [ - "}}", - "{\\" - ], - [ - "}}{", - "\\" - ], - [ - "}", - "}{\\" - ], - [ - "B", - "r" - ], - [ - "▁H", - "ier" - ], - [ - "▁Hi", - "er" - ], - [ - "мо", - "р" - ], - [ - "м", - "ор" - ], - [ - "▁a", - "part" - ], - [ - "▁ap", - "art" - ], - [ - "▁apar", - "t" - ], - [ - "\"]", - "," - ], - [ - "\"", - "]," - ], - [ - "▁%>", - "%" - ], - [ - "▁z", - "usammen" - ], - [ - "▁zus", - "ammen" - ], - [ - "▁ident", - "ify" - ], - [ - "▁Al", - "tern" - ], - [ - "▁Alt", - "ern" - ], - [ - "▁Alter", - "n" - ], - [ - "▁б", - "ро" - ], - [ - "▁", - "бро" - ], - [ - "▁ц", - "и" - ], - [ - "▁", - "ци" - ], - [ - "g", - "h" - ], - [ - "▁T", - "en" - ], - [ - "▁Te", - "n" - ], - [ - "R", - "S" - ], - [ - "фор", - "ма" - ], - [ - "▁n", - "elle" - ], - [ - "▁ne", - "lle" - ], - [ - "▁nel", - "le" - ], - [ - "▁nell", - "e" - ], - [ - "▁", - "nelle" - ], - [ - "▁H", - "in" - ], - [ - "▁Hi", - "n" - ], - [ - "ound", - "ing" - ], - [ - "oun", - "ding" - ], - [ - "▁re", - "prés" - ], - [ - "▁rep", - "rés" - ], - [ - "▁repr", - "és" - ], - [ - "ap", - "h" - ], - [ - "a", - "ph" - ], - [ - "▁[", - "\\" - ], - [ - "▁", - "[\\" - ], - [ - "▁S", - "ports" - ], - [ - "▁Sport", - "s" - ], - [ - "ра", - "л" - ], - [ - "р", - "ал" - ], - [ - "▁t", - "hre" - ], - [ - "▁th", - "re" - ], - [ - "▁thr", - "e" - ], - [ - "▁p", - "rin" - ], - [ - "▁pr", - "in" - ], - [ - "▁pri", - "n" - ], - [ - "▁El", - "iz" - ], - [ - "▁Eli", - "z" - ], - [ - "▁F", - "our" - ], - [ - "▁Fou", - "r" - ], - [ - "▁Fo", - "ur" - ], - [ - "▁soci", - "ety" - ], - [ - "▁soc", - "iety" - ], - [ - "Trans", - "action" - ], - [ - "▁v", - "eg" - ], - [ - "▁ve", - "g" - ], - [ - "▁", - "veg" - ], - [ - "▁sch", - "ools" - ], - [ - "▁school", - "s" - ], - [ - "▁over", - "all" - ], - [ - "▁t", - "ail" - ], - [ - "▁ta", - "il" - ], - [ - "▁", - "tail" - ], - [ - "üb", - "er" - ], - [ - "ü", - "ber" - ], - [ - "▁S", - "ov" - ], - [ - "▁So", - "v" - ], - [ - "▁С", - "ер" - ], - [ - "▁Се", - "р" - ], - [ - "▁r", - "app" - ], - [ - "▁ra", - "pp" - ], - [ - "▁rap", - "p" - ], - [ - "▁tra", - "ffic" - ], - [ - "qu", - "estion" - ], - [ - "quest", - "ion" - ], - [ - "ques", - "tion" - ], - [ - "▁en", - "viron" - ], - [ - "▁envi", - "ron" - ], - [ - "▁", - "environ" - ], - [ - "ate", - "ien" - ], - [ - "ic", - "us" - ], - [ - "i", - "cus" - ], - [ - "▁n", - "arrow" - ], - [ - "▁narr", - "ow" - ], - [ - "▁nar", - "row" - ], - [ - "▁p", - "ray" - ], - [ - "▁pr", - "ay" - ], - [ - "▁pra", - "y" - ], - [ - "▁B", - "ou" - ], - [ - "▁Bo", - "u" - ], - [ - "▁C", - "lient" - ], - [ - "▁Cl", - "ient" - ], - [ - "▁", - "Client" - ], - [ - "ab", - "l" - ], - [ - "a", - "bl" - ], - [ - "▁Aud", - "iod" - ], - [ - "▁Audio", - "d" - ], - [ - "▁n", - "pm" - ], - [ - "▁np", - "m" - ], - [ - "▁", - "npm" - ], - [ - "▁Col", - "umn" - ], - [ - "▁", - "Column" - ], - [ - "▁G", - "ames" - ], - [ - "▁Game", - "s" - ], - [ - "▁Ga", - "mes" - ], - [ - "▁Gam", - "es" - ], - [ - "av", - "er" - ], - [ - "ave", - "r" - ], - [ - "a", - "ver" - ], - [ - "ony", - "mes" - ], - [ - "onym", - "es" - ], - [ - "onyme", - "s" - ], - [ - "▁По", - "сле" - ], - [ - "n", - "ą" - ], - [ - "▁N", - "u" - ], - [ - "▁D", - "ick" - ], - [ - "▁Di", - "ck" - ], - [ - "▁Dic", - "k" - ], - [ - "▁t", - "ensor" - ], - [ - "▁tens", - "or" - ], - [ - "▁", - "tensor" - ], - [ - "▁@", - "\"" - ], - [ - "▁", - "@\"" - ], - [ - "v", - "é" - ], - [ - "I", - "con" - ], - [ - "▁по", - "да" - ], - [ - "▁под", - "а" - ], - [ - "▁", - "пода" - ], - [ - "▁G", - "on" - ], - [ - "▁Go", - "n" - ], - [ - "/)", - "." - ], - [ - "/", - ")." - ], - [ - "is", - "tra" - ], - [ - "ist", - "ra" - ], - [ - "istr", - "a" - ], - [ - "i", - "stra" - ], - [ - "▁Audiod", - "ateien" - ], - [ - "De", - "lete" - ], - [ - "Del", - "ete" - ], - [ - "}}", - "}" - ], - [ - "}", - "}}" - ], - [ - "▁j", - "ump" - ], - [ - "▁ju", - "mp" - ], - [ - "▁О", - "б" - ], - [ - "▁princi", - "ple" - ], - [ - "▁princip", - "le" - ], - [ - "▁Ét", - "ats" - ], - [ - "ok", - "ed" - ], - [ - "oke", - "d" - ], - [ - "o", - "ked" - ], - [ - "▁В", - "ла" - ], - [ - "Inter", - "val" - ], - [ - "▁s", - "au" - ], - [ - "▁sa", - "u" - ], - [ - "en", - "code" - ], - [ - "enc", - "ode" - ], - [ - "▁p", - "on" - ], - [ - "▁po", - "n" - ], - [ - "▁", - "pon" - ], - [ - "cat", - "ch" - ], - [ - "c", - "atch" - ], - [ - "▁t", - "iem" - ], - [ - "▁ti", - "em" - ], - [ - "▁tie", - "m" - ], - [ - "▁G", - "ust" - ], - [ - "▁Gu", - "st" - ], - [ - "M", - "C" - ], - [ - "lim", - "its" - ], - [ - "limit", - "s" - ], - [ - "▁ke", - "eping" - ], - [ - "▁keep", - "ing" - ], - [ - "▁s", - "ongs" - ], - [ - "▁son", - "gs" - ], - [ - "▁song", - "s" - ], - [ - "▁ав", - "гу" - ], - [ - "▁рай", - "он" - ], - [ - "▁райо", - "н" - ], - [ - "▁not", - "ification" - ], - [ - "▁", - "notification" - ], - [ - "▁off", - "ered" - ], - [ - "▁offer", - "ed" - ], - [ - "Co", - "r" - ], - [ - "C", - "or" - ], - [ - "▁sh", - "ut" - ], - [ - "error", - "s" - ], - [ - "err", - "ors" - ], - [ - "▁E", - "N" - ], - [ - "▁", - "EN" - ], - [ - "▁lat", - "ach" - ], - [ - "▁sel", - "bst" - ], - [ - "▁check", - "box" - ], - [ - "▁", - "checkbox" - ], - [ - "▁c", - "ool" - ], - [ - "▁co", - "ol" - ], - [ - "▁f", - "actory" - ], - [ - "▁fact", - "ory" - ], - [ - "▁factor", - "y" - ], - [ - "▁", - "factory" - ], - [ - "▁pa", - "id" - ], - [ - "dim", - "ensional" - ], - [ - "ni", - "ej" - ], - [ - "nie", - "j" - ], - [ - "n", - "iej" - ], - [ - "pt", - "on" - ], - [ - "pto", - "n" - ], - [ - "p", - "ton" - ], - [ - "▁p", - "in" - ], - [ - "▁pi", - "n" - ], - [ - "▁", - "pin" - ], - [ - "ak", - "ed" - ], - [ - "ake", - "d" - ], - [ - "a", - "ked" - ], - [ - "▁re", - "li" - ], - [ - "▁r", - "eli" - ], - [ - "▁rel", - "i" - ], - [ - "▁T", - "aylor" - ], - [ - "▁S", - "omething" - ], - [ - "▁Some", - "thing" - ], - [ - "▁Som", - "ething" - ], - [ - "▁", - "Something" - ], - [ - "im", - "um" - ], - [ - "▁V", - "in" - ], - [ - "▁Vi", - "n" - ], - [ - "▁iter", - "ation" - ], - [ - "Fin", - "d" - ], - [ - "Fi", - "nd" - ], - [ - "F", - "ind" - ], - [ - "ко", - "ви" - ], - [ - "ков", - "и" - ], - [ - "к", - "ови" - ], - [ - "▁bo", - "ys" - ], - [ - "▁boy", - "s" - ], - [ - "▁Sim", - "ple" - ], - [ - "▁", - "Simple" - ], - [ - "▁C", - "rist" - ], - [ - "▁Cr", - "ist" - ], - [ - "▁Cris", - "t" - ], - [ - "▁W", - "as" - ], - [ - "▁Wa", - "s" - ], - [ - "ân", - "d" - ], - [ - "â", - "nd" - ], - [ - "▁V", - "a" - ], - [ - "▁т", - "ра" - ], - [ - "▁", - "тра" - ], - [ - "▁dest", - "ination" - ], - [ - "▁destin", - "ation" - ], - [ - "▁", - "destination" - ], - [ - "li", - "mp" - ], - [ - "lim", - "p" - ], - [ - "l", - "imp" - ], - [ - "▁K", - "at" - ], - [ - "▁Ka", - "t" - ], - [ - "wor", - "th" - ], - [ - "wort", - "h" - ], - [ - "w", - "orth" - ], - [ - "▁K", - "or" - ], - [ - "▁Ko", - "r" - ], - [ - "i", - "ção" - ], - [ - "=", - "`" - ], - [ - "▁fair", - "ly" - ], - [ - "fall", - "s" - ], - [ - "fal", - "ls" - ], - [ - "f", - "alls" - ], - [ - "▁re", - "ject" - ], - [ - "▁d", - "ream" - ], - [ - "▁dre", - "am" - ], - [ - "be", - "ll" - ], - [ - "bel", - "l" - ], - [ - "b", - "ell" - ], - [ - "▁t", - "oute" - ], - [ - "▁to", - "ute" - ], - [ - "▁tout", - "e" - ], - [ - "▁tou", - "te" - ], - [ - "▁$", - "\\{" - ], - [ - "▁$\\", - "{" - ], - [ - "▁st", - "one" - ], - [ - "▁sto", - "ne" - ], - [ - "▁", - "stone" - ], - [ - "▁prote", - "ct" - ], - [ - "▁prot", - "ect" - ], - [ - "▁ex", - "cell" - ], - [ - "▁exc", - "ell" - ], - [ - "▁excel", - "l" - ], - [ - "▁Me", - "xico" - ], - [ - "▁Mex", - "ico" - ], - [ - "▁d", - "ash" - ], - [ - "▁da", - "sh" - ], - [ - "▁das", - "h" - ], - [ - "▁", - "dash" - ], - [ - "▁f", - "ault" - ], - [ - "▁fa", - "ult" - ], - [ - "▁", - "fault" - ], - [ - "p", - "matrix" - ], - [ - "al", - "ler" - ], - [ - "all", - "er" - ], - [ - "alle", - "r" - ], - [ - "▁guer", - "re" - ], - [ - "or", - "igin" - ], - [ - "ori", - "gin" - ], - [ - "orig", - "in" - ], - [ - "hi", - "bernate" - ], - [ - "í", - "lia" - ], - [ - "▁Reg", - "ister" - ], - [ - "▁", - "Register" - ], - [ - "un", - "to" - ], - [ - "unt", - "o" - ], - [ - "▁B", - "at" - ], - [ - "▁Ba", - "t" - ], - [ - "▁b", - "ow" - ], - [ - "▁bo", - "w" - ], - [ - "▁", - "bow" - ], - [ - "сь", - "ких" - ], - [ - "ськ", - "их" - ], - [ - "et", - "à" - ], - [ - "▁L", - "uis" - ], - [ - "▁Lu", - "is" - ], - [ - "▁f", - "ou" - ], - [ - "▁fo", - "u" - ], - [ - "▁Cam", - "bridge" - ], - [ - "▁Camb", - "ridge" - ], - [ - "▁o", - "tt" - ], - [ - "▁ot", - "t" - ], - [ - "▁", - "ott" - ], - [ - "su", - "p" - ], - [ - "s", - "up" - ], - [ - "re", - "as" - ], - [ - "rea", - "s" - ], - [ - "▁point", - "ers" - ], - [ - "▁pointer", - "s" - ], - [ - "▁Bo", - "ard" - ], - [ - "▁", - "Board" - ], - [ - "▁р", - "и" - ], - [ - "▁", - "ри" - ], - [ - "▁d", - "riv" - ], - [ - "▁dr", - "iv" - ], - [ - "▁dri", - "v" - ], - [ - "ни", - "н" - ], - [ - "н", - "ин" - ], - [ - "▁C", - "irc" - ], - [ - "▁Ci", - "rc" - ], - [ - "▁Cir", - "c" - ], - [ - "▁", - "Circ" - ], - [ - "▁t", - "hou" - ], - [ - "▁th", - "ou" - ], - [ - "Di", - "v" - ], - [ - "D", - "iv" - ], - [ - "sp", - "ark" - ], - [ - "s", - "park" - ], - [ - "la", - "ment" - ], - [ - "lam", - "ent" - ], - [ - "l", - "ament" - ], - [ - "▁V", - "AL" - ], - [ - "▁", - "VAL" - ], - [ - "Se", - "nd" - ], - [ - "S", - "end" - ], - [ - "▁Ir", - "ish" - ], - [ - "o", - "y" - ], - [ - "▁T", - "u" - ], - [ - "▁", - "Tu" - ], - [ - "▁t", - "rivial" - ], - [ - "Form", - "s" - ], - [ - "For", - "ms" - ], - [ - "▁as", - "í" - ], - [ - "▁Im", - "per" - ], - [ - "▁Imp", - "er" - ], - [ - "▁sign", - "ature" - ], - [ - "un", - "os" - ], - [ - "uno", - "s" - ], - [ - "u", - "nos" - ], - [ - "▁N", - "eg" - ], - [ - "▁Ne", - "g" - ], - [ - "▁can", - "cel" - ], - [ - "▁", - "cancel" - ], - [ - "▁Hein", - "rich" - ], - [ - "ee", - "d" - ], - [ - "e", - "ed" - ], - [ - "Ill", - "ustration" - ], - [ - "▁s", - "ulla" - ], - [ - "▁su", - "lla" - ], - [ - "▁sul", - "la" - ], - [ - "▁sull", - "a" - ], - [ - "▁qu", - "arter" - ], - [ - "▁quart", - "er" - ], - [ - "▁quar", - "ter" - ], - [ - "as", - "z" - ], - [ - "a", - "sz" - ], - [ - "▁b", - "log" - ], - [ - "▁bl", - "og" - ], - [ - "▁blo", - "g" - ], - [ - "▁", - "blog" - ], - [ - "fi", - "ca" - ], - [ - "fic", - "a" - ], - [ - "f", - "ica" - ], - [ - "wo", - "n" - ], - [ - "w", - "on" - ], - [ - "qu", - "et" - ], - [ - "que", - "t" - ], - [ - "q", - "uet" - ], - [ - "])", - ")" - ], - [ - "]", - "))" - ], - [ - "▁gener", - "ation" - ], - [ - "▁c", - "aught" - ], - [ - "▁", - "caught" - ], - [ - "▁l", - "ands" - ], - [ - "▁land", - "s" - ], - [ - "▁lan", - "ds" - ], - [ - "▁", - "lands" - ], - [ - "▁King", - "dom" - ], - [ - "schaft", - "en" - ], - [ - "ro", - "ns" - ], - [ - "ron", - "s" - ], - [ - "r", - "ons" - ], - [ - "ann", - "els" - ], - [ - "annel", - "s" - ], - [ - "anne", - "ls" - ], - [ - "▁Spe", - "cial" - ], - [ - "▁Spec", - "ial" - ], - [ - "▁", - "Special" - ], - [ - "t", - "utorial" - ], - [ - "ti", - "p" - ], - [ - "t", - "ip" - ], - [ - "▁\"", - "\"," - ], - [ - "▁\"\"", - "," - ], - [ - "▁Az", - "ure" - ], - [ - "▁", - "Azure" - ], - [ - "▁b", - "ounded" - ], - [ - "▁bound", - "ed" - ], - [ - "▁", - "bounded" - ], - [ - "S", - "m" - ], - [ - "ta", - "r" - ], - [ - "t", - "ar" - ], - [ - "ве", - "н" - ], - [ - "в", - "ен" - ], - [ - "▁з", - "ем" - ], - [ - "▁зе", - "м" - ], - [ - "▁", - "зем" - ], - [ - "▁not", - "ation" - ], - [ - "▁", - "notation" - ], - [ - "▁ap", - "ache" - ], - [ - "▁", - "apache" - ], - [ - "▁g", - "az" - ], - [ - "▁ga", - "z" - ], - [ - "ier", - "no" - ], - [ - "i", - "erno" - ], - [ - "an", - "gen" - ], - [ - "ang", - "en" - ], - [ - "ange", - "n" - ], - [ - "pect", - "ive" - ], - [ - "▁elect", - "ric" - ], - [ - "▁s", - "emi" - ], - [ - "▁se", - "mi" - ], - [ - "▁sem", - "i" - ], - [ - "MA", - "X" - ], - [ - "M", - "AX" - ], - [ - "ed", - "erb" - ], - [ - "eder", - "b" - ], - [ - "ede", - "rb" - ], - [ - "object", - "s" - ], - [ - "▁dif", - "ferences" - ], - [ - "▁differ", - "ences" - ], - [ - "▁difference", - "s" - ], - [ - "is", - "ted" - ], - [ - "ist", - "ed" - ], - [ - "iste", - "d" - ], - [ - "i", - "sted" - ], - [ - "hr", - "ef" - ], - [ - "hre", - "f" - ], - [ - "h", - "ref" - ], - [ - "ic", - "ip" - ], - [ - "ici", - "p" - ], - [ - "i", - "cip" - ], - [ - "▁num", - "py" - ], - [ - "▁", - "numpy" - ], - [ - "▁ф", - "утбо" - ], - [ - "lo", - "ader" - ], - [ - "load", - "er" - ], - [ - "▁d", - "ich" - ], - [ - "▁di", - "ch" - ], - [ - "▁dic", - "h" - ], - [ - "љ", - "у" - ], - [ - "▁D", - "é" - ], - [ - "H", - "z" - ], - [ - "▁P", - "aram" - ], - [ - "▁Par", - "am" - ], - [ - "▁Pa", - "ram" - ], - [ - "▁Para", - "m" - ], - [ - "▁", - "Param" - ], - [ - "document", - "ation" - ], - [ - "ir", - "craft" - ], - [ - "irc", - "raft" - ], - [ - "E", - "M" - ], - [ - "▁inst", - "itution" - ], - [ - "▁instit", - "ution" - ], - [ - "com", - "pat" - ], - [ - "comp", - "at" - ], - [ - "▁а", - "ль" - ], - [ - "▁ал", - "ь" - ], - [ - "▁", - "аль" - ], - [ - "сла", - "в" - ], - [ - "с", - "лав" - ], - [ - "▁N", - "et" - ], - [ - "▁Ne", - "t" - ], - [ - "▁", - "Net" - ], - [ - "ци", - "ональ" - ], - [ - "цион", - "аль" - ], - [ - "циона", - "ль" - ], - [ - "▁broad", - "cast" - ], - [ - "date", - "time" - ], - [ - "dat", - "etime" - ], - [ - "as", - "ync" - ], - [ - "asy", - "nc" - ], - [ - "a", - "sync" - ], - [ - "vr", - "e" - ], - [ - "v", - "re" - ], - [ - "me", - "an" - ], - [ - "▁C", - "hem" - ], - [ - "▁Ch", - "em" - ], - [ - "▁Che", - "m" - ], - [ - "▁est", - "imate" - ], - [ - "▁estim", - "ate" - ], - [ - "ic", - "ana" - ], - [ - "ica", - "na" - ], - [ - "ican", - "a" - ], - [ - "▁g", - "rep" - ], - [ - "▁gr", - "ep" - ], - [ - "▁gre", - "p" - ], - [ - "▁", - "grep" - ], - [ - "te", - "k" - ], - [ - "t", - "ek" - ], - [ - "ä", - "m" - ], - [ - "or", - "ig" - ], - [ - "ori", - "g" - ], - [ - "o", - "rig" - ], - [ - "▁Vict", - "or" - ], - [ - "▁Vi", - "ctor" - ], - [ - "▁Vic", - "tor" - ], - [ - "ut", - "enant" - ], - [ - "ute", - "nant" - ], - [ - "uten", - "ant" - ], - [ - "an", - "ga" - ], - [ - "ang", - "a" - ], - [ - "pi", - "n" - ], - [ - "p", - "in" - ], - [ - "▁ver", - "tex" - ], - [ - "▁vert", - "ex" - ], - [ - "▁verte", - "x" - ], - [ - "▁CHAP", - "TER" - ], - [ - "ci", - "ty" - ], - [ - "cit", - "y" - ], - [ - "c", - "ity" - ], - [ - "ug", - "by" - ], - [ - "gr", - "een" - ], - [ - "gre", - "en" - ], - [ - "g", - "reen" - ], - [ - "▁K", - "er" - ], - [ - "▁Ke", - "r" - ], - [ - "▁dif", - "fér" - ], - [ - "▁diff", - "ér" - ], - [ - "▁necess", - "arily" - ], - [ - "D", - "C" - ], - [ - "Line", - "ar" - ], - [ - "Lin", - "ear" - ], - [ - "Li", - "near" - ], - [ - "al", - "em" - ], - [ - "ale", - "m" - ], - [ - "a", - "lem" - ], - [ - "▁L", - "ater" - ], - [ - "▁La", - "ter" - ], - [ - "▁Lat", - "er" - ], - [ - "▁Late", - "r" - ], - [ - "▁m", - "eta" - ], - [ - "▁me", - "ta" - ], - [ - "▁met", - "a" - ], - [ - "▁", - "meta" - ], - [ - "je", - "m" - ], - [ - "j", - "em" - ], - [ - "ra", - "gen" - ], - [ - "rag", - "en" - ], - [ - "rage", - "n" - ], - [ - "r", - "agen" - ], - [ - "Ma", - "y" - ], - [ - "M", - "ay" - ], - [ - "▁Mitg", - "lied" - ], - [ - "▁s", - "orted" - ], - [ - "▁sort", - "ed" - ], - [ - "▁sor", - "ted" - ], - [ - "▁sorte", - "d" - ], - [ - "▁", - "sorted" - ], - [ - "us", - "sen" - ], - [ - "uss", - "en" - ], - [ - "▁sp", - "oke" - ], - [ - "▁spo", - "ke" - ], - [ - "▁dis", - "abled" - ], - [ - "▁disable", - "d" - ], - [ - "▁", - "disabled" - ], - [ - "▁accompl", - "ish" - ], - [ - "▁accomp", - "lish" - ], - [ - "▁Russ", - "ia" - ], - [ - "th", - "ere" - ], - [ - "ther", - "e" - ], - [ - "the", - "re" - ], - [ - "t", - "here" - ], - [ - "ee", - "s" - ], - [ - "e", - "es" - ], - [ - "▁h", - "all" - ], - [ - "▁ha", - "ll" - ], - [ - "▁hal", - "l" - ], - [ - "▁", - "hall" - ], - [ - "▁met", - "ric" - ], - [ - "▁", - "metric" - ], - [ - "att", - "ribute" - ], - [ - "то", - "го" - ], - [ - "т", - "ого" - ], - [ - "ab", - "out" - ], - [ - "▁L", - "am" - ], - [ - "▁La", - "m" - ], - [ - "ch", - "annel" - ], - [ - "chan", - "nel" - ], - [ - "▁e", - "pisode" - ], - [ - "▁epis", - "ode" - ], - [ - "▁$", - "('." - ], - [ - "▁$(", - "'." - ], - [ - "▁$('", - "." - ], - [ - "▁", - "ought" - ], - [ - "▁E", - "ste" - ], - [ - "▁Est", - "e" - ], - [ - "▁Es", - "te" - ], - [ - "Object", - "s" - ], - [ - "▁valid", - "ate" - ], - [ - "▁", - "validate" - ], - [ - "▁r", - "im" - ], - [ - "▁ri", - "m" - ], - [ - "▁", - "rim" - ], - [ - "▁numer", - "ous" - ], - [ - "▁numero", - "us" - ], - [ - "▁J", - "avascript" - ], - [ - "▁Java", - "script" - ], - [ - "▁G", - "L" - ], - [ - "▁", - "GL" - ], - [ - "▁It", - "aly" - ], - [ - "▁Ital", - "y" - ], - [ - "ederb", - "örd" - ], - [ - "on", - "ato" - ], - [ - "ona", - "to" - ], - [ - "bo", - "oks" - ], - [ - "book", - "s" - ], - [ - "st", - "one" - ], - [ - "ston", - "e" - ], - [ - "sto", - "ne" - ], - [ - "х", - "у" - ], - [ - "▁j", - "el" - ], - [ - "▁je", - "l" - ], - [ - "▁", - "jel" - ], - [ - "ir", - "i" - ], - [ - "i", - "ri" - ], - [ - "▁A", - "SP" - ], - [ - "▁AS", - "P" - ], - [ - "G", - "A" - ], - [ - "▁st", - "ata" - ], - [ - "▁stat", - "a" - ], - [ - "▁sta", - "ta" - ], - [ - "▁b", - "az" - ], - [ - "▁ba", - "z" - ], - [ - "▁", - "baz" - ], - [ - "Da", - "y" - ], - [ - "D", - "ay" - ], - [ - "th", - "m" - ], - [ - "t", - "hm" - ], - [ - "d", - "h" - ], - [ - "▁F", - "iles" - ], - [ - "▁Fil", - "es" - ], - [ - "▁File", - "s" - ], - [ - "▁", - "Files" - ], - [ - "Android", - "Runtime" - ], - [ - "▁che", - "cks" - ], - [ - "▁check", - "s" - ], - [ - "k", - "r" - ], - [ - "▁v", - "enne" - ], - [ - "▁ven", - "ne" - ], - [ - "S", - "L" - ], - [ - "av", - "ia" - ], - [ - "avi", - "a" - ], - [ - "a", - "via" - ], - [ - "ka", - "zy" - ], - [ - "kaz", - "y" - ], - [ - "k", - "azy" - ], - [ - "▁Th", - "ree" - ], - [ - "▁", - "Three" - ], - [ - "Ad", - "min" - ], - [ - "▁col", - "lege" - ], - [ - "▁coll", - "ege" - ], - [ - "▁colleg", - "e" - ], - [ - "▁colle", - "ge" - ], - [ - "G", - "lobal" - ], - [ - "ti", - "on" - ], - [ - "t", - "ion" - ], - [ - "▁cur", - "ious" - ], - [ - "sh", - "ort" - ], - [ - "▁b", - "ass" - ], - [ - "▁bas", - "s" - ], - [ - "▁ba", - "ss" - ], - [ - "де", - "ла" - ], - [ - "▁де", - "я" - ], - [ - "Sch", - "ema" - ], - [ - "'", - "\\" - ], - [ - "di", - "ff" - ], - [ - "d", - "iff" - ], - [ - "▁C", - "A" - ], - [ - "▁", - "CA" - ], - [ - "▁Cor", - "por" - ], - [ - "▁oper", - "ators" - ], - [ - "▁operator", - "s" - ], - [ - "om", - "rå" - ], - [ - "▁ed", - "ges" - ], - [ - "▁edge", - "s" - ], - [ - ");", - "`" - ], - [ - ")", - ";`" - ], - [ - "in", - "ds" - ], - [ - "ind", - "s" - ], - [ - "▁g", - "ing" - ], - [ - "▁gi", - "ng" - ], - [ - "▁", - "ging" - ], - [ - "&", - "&" - ], - [ - "}-", - "\\" - ], - [ - "}", - "-\\" - ], - [ - "ra", - "no" - ], - [ - "ran", - "o" - ], - [ - "r", - "ano" - ], - [ - "▁s", - "ão" - ], - [ - "▁ad", - "ds" - ], - [ - "▁add", - "s" - ], - [ - "el", - "or" - ], - [ - "elo", - "r" - ], - [ - "e", - "lor" - ], - [ - "▁un", - "signed" - ], - [ - "▁uns", - "igned" - ], - [ - "▁", - "unsigned" - ], - [ - "▁п", - "р" - ], - [ - "▁", - "пр" - ], - [ - "▁Con", - "fig" - ], - [ - "▁Conf", - "ig" - ], - [ - "▁", - "Config" - ], - [ - "▁E", - "sc" - ], - [ - "▁Es", - "c" - ], - [ - "▁ch", - "ose" - ], - [ - "▁cho", - "se" - ], - [ - "▁pie", - "ces" - ], - [ - "▁piece", - "s" - ], - [ - "▁reg", - "ions" - ], - [ - "▁region", - "s" - ], - [ - "Es", - "t" - ], - [ - "E", - "st" - ], - [ - "▁B", - "attle" - ], - [ - "▁Batt", - "le" - ], - [ - "▁f", - "oc" - ], - [ - "▁fo", - "c" - ], - [ - "▁L", - "ight" - ], - [ - "▁Lig", - "ht" - ], - [ - "▁", - "Light" - ], - [ - "pad", - "ding" - ], - [ - "p", - "adding" - ], - [ - "ab", - "en" - ], - [ - "abe", - "n" - ], - [ - "a", - "ben" - ], - [ - "▁e", - "urop" - ], - [ - "▁eu", - "rop" - ], - [ - "▁euro", - "p" - ], - [ - "il", - "lon" - ], - [ - "ill", - "on" - ], - [ - "illo", - "n" - ], - [ - "▁е", - "сть" - ], - [ - "▁b", - "ord" - ], - [ - "▁bo", - "rd" - ], - [ - "▁bor", - "d" - ], - [ - "▁о", - "тно" - ], - [ - "▁от", - "но" - ], - [ - "▁H", - "ong" - ], - [ - "▁Hon", - "g" - ], - [ - "▁Ho", - "ng" - ], - [ - "▁v", - "ul" - ], - [ - "▁vu", - "l" - ], - [ - "pl", - "ugins" - ], - [ - "plugin", - "s" - ], - [ - "▁'", - "<" - ], - [ - "▁k", - "ur" - ], - [ - "▁", - "kur" - ], - [ - "reg", - "ion" - ], - [ - "▁Re", - "pub" - ], - [ - "▁Rep", - "ub" - ], - [ - "ic", - "her" - ], - [ - "ich", - "er" - ], - [ - "iche", - "r" - ], - [ - "i", - "cher" - ], - [ - "}_", - "\\" - ], - [ - "}", - "_\\" - ], - [ - "▁me", - "dal" - ], - [ - "▁med", - "al" - ], - [ - "▁More", - "over" - ], - [ - "B", - "I" - ], - [ - "A", - "v" - ], - [ - "ut", - "er" - ], - [ - "ute", - "r" - ], - [ - "u", - "ter" - ], - [ - "▁s", - "can" - ], - [ - "▁sc", - "an" - ], - [ - "▁", - "scan" - ], - [ - "▁M", - "unicip" - ], - [ - "▁Mun", - "icip" - ], - [ - "▁contr", - "ast" - ], - [ - "▁contra", - "st" - ], - [ - "▁I", - "g" - ], - [ - "▁", - "Ig" - ], - [ - "▁го", - "род" - ], - [ - "▁горо", - "д" - ], - [ - "▁гор", - "од" - ], - [ - "▁", - "город" - ], - [ - "rel", - "ated" - ], - [ - "al", - "ing" - ], - [ - "ali", - "ng" - ], - [ - "alin", - "g" - ], - [ - "a", - "ling" - ], - [ - "▁м", - "ат" - ], - [ - "▁ма", - "т" - ], - [ - "▁", - "мат" - ], - [ - "ün", - "st" - ], - [ - "▁Ch", - "ris" - ], - [ - "▁Chr", - "is" - ], - [ - "w", - "y" - ], - [ - "▁Act", - "ually" - ], - [ - "▁Univers", - "idad" - ], - [ - "Event", - "Listener" - ], - [ - "▁tempor", - "ada" - ], - [ - "▁ass", - "ignment" - ], - [ - "▁assign", - "ment" - ], - [ - "▁M", - "ike" - ], - [ - "▁Mi", - "ke" - ], - [ - "▁Mik", - "e" - ], - [ - "▁w", - "ährend" - ], - [ - "▁ś", - "wi" - ], - [ - "▁św", - "i" - ], - [ - "▁с", - "ред" - ], - [ - "▁сре", - "д" - ], - [ - "ка", - "де" - ], - [ - "▁calcul", - "ated" - ], - [ - "▁calculate", - "d" - ], - [ - "▁calc", - "ulated" - ], - [ - "▁el", - "ler" - ], - [ - "▁elle", - "r" - ], - [ - "▁ell", - "er" - ], - [ - "▁", - "eller" - ], - [ - "▁A", - "sh" - ], - [ - "▁As", - "h" - ], - [ - "ri", - "el" - ], - [ - "rie", - "l" - ], - [ - "r", - "iel" - ], - [ - "▁hard", - "ware" - ], - [ - "▁int", - "ens" - ], - [ - "▁inte", - "ns" - ], - [ - "▁inten", - "s" - ], - [ - "('", - "." - ], - [ - "(", - "'." - ], - [ - "il", - "li" - ], - [ - "ill", - "i" - ], - [ - "ag", - "on" - ], - [ - "ago", - "n" - ], - [ - "a", - "gon" - ], - [ - "▁G", - "y" - ], - [ - "▁he", - "ute" - ], - [ - "▁heut", - "e" - ], - [ - "▁s", - "le" - ], - [ - "▁sl", - "e" - ], - [ - "▁liter", - "ature" - ], - [ - "se", - "m" - ], - [ - "s", - "em" - ], - [ - "man", - "ager" - ], - [ - "mana", - "ger" - ], - [ - "▁Gr", - "ande" - ], - [ - "▁Gra", - "nde" - ], - [ - "▁Grand", - "e" - ], - [ - "▁Gran", - "de" - ], - [ - "▁m", - "ixed" - ], - [ - "▁mix", - "ed" - ], - [ - "▁В", - "ер" - ], - [ - "▁Ве", - "р" - ], - [ - "í", - "cí" - ], - [ - "▁s", - "oit" - ], - [ - "▁so", - "it" - ], - [ - "▁wel", - "come" - ], - [ - "че", - "ние" - ], - [ - "▁Univers", - "ität" - ], - [ - "▁bu", - "ilder" - ], - [ - "▁build", - "er" - ], - [ - "▁", - "builder" - ], - [ - "sim", - "ple" - ], - [ - "simp", - "le" - ], - [ - "ic", - "ode" - ], - [ - "ico", - "de" - ], - [ - "i", - "code" - ], - [ - "ř", - "e" - ], - [ - "in", - "dent" - ], - [ - "ind", - "ent" - ], - [ - "inden", - "t" - ], - [ - "inde", - "nt" - ], - [ - "op", - "o" - ], - [ - "o", - "po" - ], - [ - "▁ad", - "vanced" - ], - [ - "▁adv", - "anced" - ], - [ - "▁advance", - "d" - ], - [ - "tem", - "per" - ], - [ - "temp", - "er" - ], - [ - "ed", - "ge" - ], - [ - "▁dat", - "etime" - ], - [ - "▁date", - "time" - ], - [ - "▁", - "datetime" - ], - [ - "▁d", - "onc" - ], - [ - "▁do", - "nc" - ], - [ - "▁don", - "c" - ], - [ - "ла", - "ння" - ], - [ - "лан", - "ня" - ], - [ - "▁v", - "erd" - ], - [ - "▁ver", - "d" - ], - [ - "▁ve", - "rd" - ], - [ - "д", - "но" - ], - [ - "it", - "os" - ], - [ - "ito", - "s" - ], - [ - "▁he", - "at" - ], - [ - "vi", - "sible" - ], - [ - "vis", - "ible" - ], - [ - "me", - "l" - ], - [ - "m", - "el" - ], - [ - "▁Giov", - "anni" - ], - [ - "▁var", - "iety" - ], - [ - "▁vari", - "ety" - ], - [ - "▁r", - "outer" - ], - [ - "▁ro", - "uter" - ], - [ - "▁route", - "r" - ], - [ - "▁rout", - "er" - ], - [ - "▁rou", - "ter" - ], - [ - "▁", - "router" - ], - [ - "Vec", - "tor" - ], - [ - "V", - "ector" - ], - [ - "▁W", - "alk" - ], - [ - "▁Wal", - "k" - ], - [ - "▁ob", - "viously" - ], - [ - "▁obvious", - "ly" - ], - [ - "he", - "in" - ], - [ - "h", - "ein" - ], - [ - "Fi", - "n" - ], - [ - "F", - "in" - ], - [ - "ITable", - "View" - ], - [ - "Y", - "ear" - ], - [ - "▁E", - "conom" - ], - [ - "▁vel", - "ocity" - ], - [ - "▁veloc", - "ity" - ], - [ - "▁C", - "ivil" - ], - [ - "▁Ci", - "vil" - ], - [ - "▁", - "ј" - ], - [ - "al", - "ert" - ], - [ - "ale", - "rt" - ], - [ - "aler", - "t" - ], - [ - "Ident", - "ifier" - ], - [ - "èn", - "cia" - ], - [ - "▁normal", - "ly" - ], - [ - "▁norm", - "ally" - ], - [ - "▁E", - "gypt" - ], - [ - "▁Egy", - "pt" - ], - [ - "▁c", - "tx" - ], - [ - "▁", - "ctx" - ], - [ - "▁Ver", - "ein" - ], - [ - "▁Vere", - "in" - ], - [ - "▁H", - "u" - ], - [ - "ult", - "ure" - ], - [ - "ultur", - "e" - ], - [ - "ни", - "те" - ], - [ - "l", - "é" - ], - [ - "▁W", - "ien" - ], - [ - "▁Wi", - "en" - ], - [ - "▁Wie", - "n" - ], - [ - "▁P", - "rz" - ], - [ - "▁Pr", - "z" - ], - [ - "By", - "te" - ], - [ - "▁n", - "ah" - ], - [ - "▁na", - "h" - ], - [ - "▁", - "nah" - ], - [ - "is", - "ms" - ], - [ - "ism", - "s" - ], - [ - "▁Pub", - "lish" - ], - [ - "▁He", - "rz" - ], - [ - "▁Her", - "z" - ], - [ - "ic", - "ul" - ], - [ - "i", - "cul" - ], - [ - "pis", - "ode" - ], - [ - "ч", - "і" - ], - [ - "▁die", - "sem" - ], - [ - "▁dies", - "em" - ], - [ - "▁diese", - "m" - ], - [ - "k", - "ö" - ], - [ - "Vis", - "ible" - ], - [ - "▁r", - "ig" - ], - [ - "▁ri", - "g" - ], - [ - "▁", - "rig" - ], - [ - "`)", - "." - ], - [ - "`", - ")." - ], - [ - "Par", - "se" - ], - [ - "P", - "arse" - ], - [ - "▁Jac", - "ques" - ], - [ - "N", - "I" - ], - [ - "▁g", - "lass" - ], - [ - "▁gl", - "ass" - ], - [ - "▁gla", - "ss" - ], - [ - "▁", - "glass" - ], - [ - "--", - "-+" - ], - [ - "---", - "+" - ], - [ - "-", - "--+" - ], - [ - "▁initial", - "ly" - ], - [ - "▁initi", - "ally" - ], - [ - "▁k", - "r" - ], - [ - "▁", - "kr" - ], - [ - "CC", - "N" - ], - [ - "C", - "CN" - ], - [ - "pl", - "ays" - ], - [ - "play", - "s" - ], - [ - "pla", - "ys" - ], - [ - "▁s", - "igu" - ], - [ - "▁si", - "gu" - ], - [ - "▁sig", - "u" - ], - [ - "F", - "older" - ], - [ - "st", - "orage" - ], - [ - "sto", - "rage" - ], - [ - "stor", - "age" - ], - [ - "▁\\", - "|" - ], - [ - "▁", - "\\|" - ], - [ - "iv", - "os" - ], - [ - "ivo", - "s" - ], - [ - "i", - "vos" - ], - [ - "ск", - "ую" - ], - [ - "ску", - "ю" - ], - [ - "▁M", - "oh" - ], - [ - "▁Mo", - "h" - ], - [ - "▁Comm", - "ittee" - ], - [ - "▁K", - "im" - ], - [ - "▁Ki", - "m" - ], - [ - "e", - "u" - ], - [ - "те", - "м" - ], - [ - "т", - "ем" - ], - [ - "▁orig", - "inale" - ], - [ - "▁original", - "e" - ], - [ - "▁origin", - "ale" - ], - [ - "ir", - "s" - ], - [ - "i", - "rs" - ], - [ - "▁R", - "eb" - ], - [ - "▁Re", - "b" - ], - [ - "it", - "ut" - ], - [ - "itu", - "t" - ], - [ - "n", - "l" - ], - [ - "▁P", - "ier" - ], - [ - "▁Pi", - "er" - ], - [ - "▁Pie", - "r" - ], - [ - "▁]", - ";" - ], - [ - "▁", - "];" - ], - [ - "▁F", - "al" - ], - [ - "▁Fa", - "l" - ], - [ - "▁\"", - "\";" - ], - [ - "▁\"\"", - ";" - ], - [ - "mv", - "c" - ], - [ - "m", - "vc" - ], - [ - "▁fe", - "male" - ], - [ - "▁fem", - "ale" - ], - [ - "▁b", - "ridge" - ], - [ - "▁br", - "idge" - ], - [ - "▁brid", - "ge" - ], - [ - "▁", - "bridge" - ], - [ - "▁t", - "ít" - ], - [ - "kt", - "r" - ], - [ - "k", - "tr" - ], - [ - ">", - ")" - ], - [ - "▁se", - "at" - ], - [ - "▁sea", - "t" - ], - [ - "▁v", - "ess" - ], - [ - "▁ve", - "ss" - ], - [ - "▁ves", - "s" - ], - [ - "▁U", - "SB" - ], - [ - "▁US", - "B" - ], - [ - "▁Art", - "icles" - ], - [ - "▁Article", - "s" - ], - [ - "▁De", - "scription" - ], - [ - "▁Des", - "cription" - ], - [ - "▁Descri", - "ption" - ], - [ - "▁", - "Description" - ], - [ - "▁o", - "c" - ], - [ - "▁", - "oc" - ], - [ - "▁h", - "ouses" - ], - [ - "▁house", - "s" - ], - [ - "▁ho", - "uses" - ], - [ - "▁hous", - "es" - ], - [ - "▁П", - "ет" - ], - [ - "▁Пе", - "т" - ], - [ - "lo", - "n" - ], - [ - "l", - "on" - ], - [ - "Not", - "ification" - ], - [ - "▁press", - "ure" - ], - [ - "▁ку", - "ль" - ], - [ - "▁", - "куль" - ], - [ - "ig", - "ned" - ], - [ - "ign", - "ed" - ], - [ - "igne", - "d" - ], - [ - "▁relig", - "ious" - ], - [ - "fa", - "n" - ], - [ - "f", - "an" - ], - [ - "ig", - "lia" - ], - [ - "igli", - "a" - ], - [ - "▁class", - "ification" - ], - [ - "▁classific", - "ation" - ], - [ - "og", - "ether" - ], - [ - "oge", - "ther" - ], - [ - "▁S", - "DK" - ], - [ - "▁SD", - "K" - ], - [ - "▁", - "SDK" - ], - [ - "▁H", - "uman" - ], - [ - "▁Hu", - "man" - ], - [ - "▁Hum", - "an" - ], - [ - "▁com", - "mission" - ], - [ - "▁comm", - "ission" - ], - [ - "▁О", - "р" - ], - [ - "▁an", - "tes" - ], - [ - "▁ant", - "es" - ], - [ - "▁ante", - "s" - ], - [ - "▁", - "antes" - ], - [ - "D", - "T" - ], - [ - "èt", - "e" - ], - [ - "è", - "te" - ], - [ - "pr", - "és" - ], - [ - "p", - "rés" - ], - [ - "/", - "\"" - ], - [ - "▁(", - "«" - ], - [ - "▁h", - "ö" - ], - [ - "▁", - "hö" - ], - [ - "▁ча", - "с" - ], - [ - "▁", - "час" - ], - [ - "▁j", - "ak" - ], - [ - "▁ja", - "k" - ], - [ - "▁", - "jak" - ], - [ - "ie", - "nen" - ], - [ - "ien", - "en" - ], - [ - "iene", - "n" - ], - [ - "i", - "enen" - ], - [ - "ug", - "g" - ], - [ - "u", - "gg" - ], - [ - "W", - "A" - ], - [ - "▁place", - "holder" - ], - [ - "▁", - "placeholder" - ], - [ - "Wil", - "l" - ], - [ - "W", - "ill" - ], - [ - ",", - "," - ], - [ - "▁K", - "am" - ], - [ - "▁Ka", - "m" - ], - [ - "▁w", - "en" - ], - [ - "▁we", - "n" - ], - [ - "▁", - "wen" - ], - [ - "▁Sch", - "ul" - ], - [ - "ți", - "e" - ], - [ - "ț", - "ie" - ], - [ - "▁a", - "ud" - ], - [ - "▁au", - "d" - ], - [ - "▁", - "aud" - ], - [ - "▁s", - "ue" - ], - [ - "▁su", - "e" - ], - [ - "▁re", - "ferred" - ], - [ - "▁refer", - "red" - ], - [ - "ва", - "т" - ], - [ - "в", - "ат" - ], - [ - "▁P", - "ara" - ], - [ - "▁Par", - "a" - ], - [ - "▁Pa", - "ra" - ], - [ - "▁b", - "la" - ], - [ - "▁bl", - "a" - ], - [ - "▁", - "bla" - ], - [ - "UE", - "S" - ], - [ - "U", - "ES" - ], - [ - "▁stat", - "ist" - ], - [ - "▁stati", - "st" - ], - [ - "▁т", - "у" - ], - [ - "▁", - "ту" - ], - [ - "▁Wars", - "za" - ], - [ - "gu", - "e" - ], - [ - "g", - "ue" - ], - [ - "▁I", - "de" - ], - [ - "▁Id", - "e" - ], - [ - "math", - "scr" - ], - [ - "▁l", - "ieu" - ], - [ - "▁li", - "eu" - ], - [ - "▁lie", - "u" - ], - [ - "▁b", - "od" - ], - [ - "▁bo", - "d" - ], - [ - "▁r", - "us" - ], - [ - "▁ru", - "s" - ], - [ - "▁", - "rus" - ], - [ - "▁bo", - "at" - ], - [ - "xs", - "pace" - ], - [ - "x", - "space" - ], - [ - "▁mod", - "al" - ], - [ - "▁mo", - "dal" - ], - [ - "▁", - "modal" - ], - [ - "ле", - "к" - ], - [ - "л", - "ек" - ], - [ - "to", - "pic" - ], - [ - "top", - "ic" - ], - [ - "ma", - "ny" - ], - [ - "man", - "y" - ], - [ - "m", - "any" - ], - [ - "sk", - "ý" - ], - [ - "▁organ", - "ization" - ], - [ - "▁organiz", - "ation" - ], - [ - "▁г", - "ене" - ], - [ - "▁ге", - "не" - ], - [ - "▁Wil", - "son" - ], - [ - "▁com", - "fort" - ], - [ - "ib", - "il" - ], - [ - "i", - "bil" - ], - [ - ":", - "-" - ], - [ - "▁an", - "imal" - ], - [ - "▁anim", - "al" - ], - [ - "▁ani", - "mal" - ], - [ - "Re", - "port" - ], - [ - "Rep", - "ort" - ], - [ - "ка", - "ми" - ], - [ - "кам", - "и" - ], - [ - "jo", - "n" - ], - [ - "j", - "on" - ], - [ - "▁k", - "er" - ], - [ - "▁ke", - "r" - ], - [ - "▁", - "ker" - ], - [ - "▁к", - "ни" - ], - [ - "moz", - "illa" - ], - [ - "Pr", - "ice" - ], - [ - "P", - "rice" - ], - [ - "ant", - "in" - ], - [ - "anti", - "n" - ], - [ - "em", - "ento" - ], - [ - "ement", - "o" - ], - [ - "emen", - "to" - ], - [ - "ma", - "y" - ], - [ - "m", - "ay" - ], - [ - "▁l", - "ung" - ], - [ - "▁lu", - "ng" - ], - [ - "▁lun", - "g" - ], - [ - "▁", - "lung" - ], - [ - "▁b", - "low" - ], - [ - "▁bl", - "ow" - ], - [ - "▁blo", - "w" - ], - [ - "ede", - "ut" - ], - [ - "▁type", - "d" - ], - [ - "▁typ", - "ed" - ], - [ - "▁ty", - "ped" - ], - [ - "▁dec", - "ember" - ], - [ - "▁.", - "..." - ], - [ - "▁...", - "." - ], - [ - "▁..", - ".." - ], - [ - "▁", - "...." - ], - [ - "li", - "ance" - ], - [ - "l", - "iance" - ], - [ - "▁v", - "iel" - ], - [ - "▁vi", - "el" - ], - [ - "▁vie", - "l" - ], - [ - "▁Ф", - "и" - ], - [ - "pr", - "esa" - ], - [ - "pre", - "sa" - ], - [ - "pres", - "a" - ], - [ - "▁ос", - "іб" - ], - [ - "▁N", - "am" - ], - [ - "▁Na", - "m" - ], - [ - "▁G", - "ren" - ], - [ - "▁Gr", - "en" - ], - [ - "▁Gre", - "n" - ], - [ - "си", - "лання" - ], - [ - "VI", - "D" - ], - [ - "V", - "ID" - ], - [ - "st", - "re" - ], - [ - "str", - "e" - ], - [ - "s", - "tre" - ], - [ - "we", - "is" - ], - [ - "wei", - "s" - ], - [ - "▁prote", - "ction" - ], - [ - "▁protect", - "ion" - ], - [ - "▁prot", - "ection" - ], - [ - "ta", - "ient" - ], - [ - "t", - "aient" - ], - [ - "▁offic", - "ers" - ], - [ - "▁office", - "rs" - ], - [ - "▁officer", - "s" - ], - [ - "т", - "но" - ], - [ - "▁B", - "rig" - ], - [ - "▁Br", - "ig" - ], - [ - "▁int", - "ellig" - ], - [ - "▁intel", - "lig" - ], - [ - "я", - "х" - ], - [ - "IT", - "H" - ], - [ - "I", - "TH" - ], - [ - "▁separ", - "ated" - ], - [ - "▁separate", - "d" - ], - [ - "▁L", - "CCN" - ], - [ - "ní", - "m" - ], - [ - "n", - "ím" - ], - [ - "cl", - "ock" - ], - [ - "clo", - "ck" - ], - [ - "c", - "lock" - ], - [ - "▁ap", - "are" - ], - [ - "▁apar", - "e" - ], - [ - "яв", - "и" - ], - [ - "я", - "ви" - ], - [ - "▁Eliz", - "abeth" - ], - [ - "▁W", - "ater" - ], - [ - "▁Wat", - "er" - ], - [ - "▁Wa", - "ter" - ], - [ - "geb", - "iet" - ], - [ - "▁con", - "vent" - ], - [ - "▁conv", - "ent" - ], - [ - "▁conven", - "t" - ], - [ - "fu", - "rt" - ], - [ - "fur", - "t" - ], - [ - "f", - "urt" - ], - [ - "▁be", - "iden" - ], - [ - "▁bei", - "den" - ], - [ - "▁beide", - "n" - ], - [ - "ba", - "sh" - ], - [ - "bas", - "h" - ], - [ - "b", - "ash" - ], - [ - "▁че", - "рез" - ], - [ - "▁чер", - "ез" - ], - [ - "▁u", - "b" - ], - [ - "▁", - "ub" - ], - [ - "▁Stat", - "ist" - ], - [ - "▁Stati", - "st" - ], - [ - "▁lim", - "its" - ], - [ - "▁limit", - "s" - ], - [ - "▁", - "limits" - ], - [ - "V", - "ol" - ], - [ - "ct", - "x" - ], - [ - "c", - "tx" - ], - [ - "▁но", - "в" - ], - [ - "▁н", - "ов" - ], - [ - "▁", - "нов" - ], - [ - "gu", - "ide" - ], - [ - "gui", - "de" - ], - [ - "mi", - "c" - ], - [ - "m", - "ic" - ], - [ - "ie", - "sa" - ], - [ - "ies", - "a" - ], - [ - "i", - "esa" - ], - [ - "▁h", - "uvud" - ], - [ - "R", - "T" - ], - [ - "Fi", - "g" - ], - [ - "F", - "ig" - ], - [ - "▁l", - "ect" - ], - [ - "▁le", - "ct" - ], - [ - "▁", - "lect" - ], - [ - "con", - "n" - ], - [ - "co", - "nn" - ], - [ - "c", - "onn" - ], - [ - "im", - "it" - ], - [ - "imi", - "t" - ], - [ - "i", - "mit" - ], - [ - "га", - "р" - ], - [ - "г", - "ар" - ], - [ - "▁b", - "ajo" - ], - [ - "▁ba", - "jo" - ], - [ - "scri", - "be" - ], - [ - "scr", - "ibe" - ], - [ - "s", - "cribe" - ], - [ - "re", - "gex" - ], - [ - "reg", - "ex" - ], - [ - "▁C", - "ass" - ], - [ - "▁Cas", - "s" - ], - [ - "▁Ca", - "ss" - ], - [ - "▁pro", - "pag" - ], - [ - "▁prop", - "ag" - ], - [ - "'", - "$" - ], - [ - "▁prof", - "es" - ], - [ - "un", - "ique" - ], - [ - "uni", - "que" - ], - [ - "▁S", - "ql" - ], - [ - "▁", - "Sql" - ], - [ - "un", - "ion" - ], - [ - "uni", - "on" - ], - [ - "ri", - "os" - ], - [ - "rio", - "s" - ], - [ - "r", - "ios" - ], - [ - "pi", - "p" - ], - [ - "p", - "ip" - ], - [ - "--", - "+" - ], - [ - "-", - "-+" - ], - [ - "ka", - "dem" - ], - [ - "k", - "adem" - ], - [ - "column", - "s" - ], - [ - "▁v", - "ary" - ], - [ - "▁var", - "y" - ], - [ - "▁va", - "ry" - ], - [ - "▁bere", - "its" - ], - [ - "▁d", - "oi" - ], - [ - "▁do", - "i" - ], - [ - "▁Com", - "mon" - ], - [ - "▁Comm", - "on" - ], - [ - "▁", - "Common" - ], - [ - "▁Ro", - "bin" - ], - [ - "▁Rob", - "in" - ], - [ - "▁", - "×" - ], - [ - "▁s", - "ei" - ], - [ - "▁se", - "i" - ], - [ - "▁s", - "yst" - ], - [ - "▁sy", - "st" - ], - [ - "▁sys", - "t" - ], - [ - "▁v", - "ä" - ], - [ - "▁", - "vä" - ], - [ - "▁De", - "fault" - ], - [ - "▁Def", - "ault" - ], - [ - "▁", - "Default" - ], - [ - "▁t", - "ym" - ], - [ - "▁ty", - "m" - ], - [ - "pe", - "l" - ], - [ - "p", - "el" - ], - [ - "▁bel", - "ieved" - ], - [ - "▁believe", - "d" - ], - [ - "▁pro", - "vider" - ], - [ - "▁prov", - "ider" - ], - [ - "▁provide", - "r" - ], - [ - "▁", - "provider" - ], - [ - "▁min", - "imal" - ], - [ - "▁minim", - "al" - ], - [ - "▁mini", - "mal" - ], - [ - "та", - "ли" - ], - [ - "тал", - "и" - ], - [ - "т", - "али" - ], - [ - "ain", - "es" - ], - [ - "ai", - "nes" - ], - [ - "aine", - "s" - ], - [ - "a", - "ines" - ], - [ - "K", - "it" - ], - [ - "iz", - "io" - ], - [ - "izi", - "o" - ], - [ - "is", - "sen" - ], - [ - "iss", - "en" - ], - [ - "isse", - "n" - ], - [ - "pr", - "essed" - ], - [ - "press", - "ed" - ], - [ - "pres", - "sed" - ], - [ - "▁s", - "tag" - ], - [ - "▁st", - "ag" - ], - [ - "▁sta", - "g" - ], - [ - "▁", - "stag" - ], - [ - "▁u", - "int" - ], - [ - "▁ui", - "nt" - ], - [ - "▁", - "uint" - ], - [ - "ko", - "r" - ], - [ - "k", - "or" - ], - [ - "▁ра", - "спо" - ], - [ - "▁рас", - "по" - ], - [ - "▁in", - "herit" - ], - [ - "▁inher", - "it" - ], - [ - "▁comp", - "iled" - ], - [ - "▁compile", - "d" - ], - [ - "▁f", - "ebru" - ], - [ - "▁fe", - "bru" - ], - [ - "▁feb", - "ru" - ], - [ - "▁t", - "mp" - ], - [ - "▁tm", - "p" - ], - [ - "▁", - "tmp" - ], - [ - "work", - "s" - ], - [ - "wor", - "ks" - ], - [ - "ч", - "на" - ], - [ - "draw", - "able" - ], - [ - "▁N", - "av" - ], - [ - "▁Na", - "v" - ], - [ - "▁", - "Nav" - ], - [ - "▁though", - "ts" - ], - [ - "▁thought", - "s" - ], - [ - "ro", - "ute" - ], - [ - "rout", - "e" - ], - [ - "rou", - "te" - ], - [ - "r", - "oute" - ], - [ - "▁con", - "cert" - ], - [ - "▁conc", - "ert" - ], - [ - "▁conce", - "rt" - ], - [ - "▁option", - "al" - ], - [ - "▁opt", - "ional" - ], - [ - "▁", - "optional" - ], - [ - "▁b", - "ras" - ], - [ - "▁br", - "as" - ], - [ - "▁bra", - "s" - ], - [ - "▁", - "bras" - ], - [ - "▁prov", - "iding" - ], - [ - "со", - "м" - ], - [ - "с", - "ом" - ], - [ - "id", - "x" - ], - [ - "i", - "dx" - ], - [ - "emp", - "lo" - ], - [ - "empl", - "o" - ], - [ - "▁ко", - "ли" - ], - [ - "▁", - "коли" - ], - [ - "▁B", - "ere" - ], - [ - "▁Be", - "re" - ], - [ - "▁Ber", - "e" - ], - [ - "▁E", - "ls" - ], - [ - "▁El", - "s" - ], - [ - "ре", - "мен" - ], - [ - "рем", - "ен" - ], - [ - "▁де", - "ка" - ], - [ - "co", - "ut" - ], - [ - "cou", - "t" - ], - [ - "c", - "out" - ], - [ - "la", - "yer" - ], - [ - "lay", - "er" - ], - [ - "l", - "ayer" - ], - [ - "▁g", - "lob" - ], - [ - "▁gl", - "ob" - ], - [ - "▁glo", - "b" - ], - [ - "▁", - "glob" - ], - [ - "fore", - "ach" - ], - [ - "for", - "each" - ], - [ - "▁E", - "ducation" - ], - [ - "▁Edu", - "cation" - ], - [ - "P", - "O" - ], - [ - "▁im", - "prov" - ], - [ - "▁imp", - "rov" - ], - [ - "▁impro", - "v" - ], - [ - "▁impr", - "ov" - ], - [ - "▁cl", - "ients" - ], - [ - "▁client", - "s" - ], - [ - "▁cli", - "ents" - ], - [ - "gr", - "oups" - ], - [ - "group", - "s" - ], - [ - "gro", - "ups" - ], - [ - "▁k", - "ont" - ], - [ - "▁kon", - "t" - ], - [ - "▁ko", - "nt" - ], - [ - "De", - "l" - ], - [ - "D", - "el" - ], - [ - "re", - "tt" - ], - [ - "ret", - "t" - ], - [ - "r", - "ett" - ], - [ - "▁s", - "up" - ], - [ - "▁su", - "p" - ], - [ - "▁", - "sup" - ], - [ - "▁m", - "og" - ], - [ - "▁mo", - "g" - ], - [ - "ta", - "n" - ], - [ - "t", - "an" - ], - [ - "▁com", - "pl" - ], - [ - "▁comp", - "l" - ], - [ - "ir", - "ty" - ], - [ - "irt", - "y" - ], - [ - "▁nouve", - "au" - ], - [ - "os", - "z" - ], - [ - "o", - "sz" - ], - [ - "▁N", - "avy" - ], - [ - "▁Na", - "vy" - ], - [ - "▁Nav", - "y" - ], - [ - "ber", - "e" - ], - [ - "be", - "re" - ], - [ - "b", - "ere" - ], - [ - "ma", - "sk" - ], - [ - "mas", - "k" - ], - [ - "m", - "ask" - ], - [ - "ov", - "é" - ], - [ - "o", - "vé" - ], - [ - "zi", - "l" - ], - [ - "z", - "il" - ], - [ - "PE", - "R" - ], - [ - "P", - "ER" - ], - [ - "▁pobla", - "ción" - ], - [ - "▁població", - "n" - ], - [ - "▁d", - "etailed" - ], - [ - "▁detail", - "ed" - ], - [ - "ле", - "т" - ], - [ - "л", - "ет" - ], - [ - "▁famil", - "ies" - ], - [ - "▁familie", - "s" - ], - [ - "ab", - "et" - ], - [ - "abe", - "t" - ], - [ - "a", - "bet" - ], - [ - "е", - "вич" - ], - [ - "änd", - "er" - ], - [ - "än", - "der" - ], - [ - "ände", - "r" - ], - [ - "ä", - "nder" - ], - [ - "▁å", - "r" - ], - [ - "▁", - "år" - ], - [ - "▁p", - "endant" - ], - [ - "▁b", - "il" - ], - [ - "▁bi", - "l" - ], - [ - "▁", - "bil" - ], - [ - "▁h", - "int" - ], - [ - "▁hi", - "nt" - ], - [ - "▁hin", - "t" - ], - [ - "ode", - "n" - ], - [ - "od", - "en" - ], - [ - "o", - "den" - ], - [ - "▁exp", - "ansion" - ], - [ - "▁p", - "ont" - ], - [ - "▁po", - "nt" - ], - [ - "▁pon", - "t" - ], - [ - "▁", - "pont" - ], - [ - "as", - "ant" - ], - [ - "asa", - "nt" - ], - [ - "▁K", - "ind" - ], - [ - "▁Ki", - "nd" - ], - [ - "▁Kin", - "d" - ], - [ - "▁", - "Kind" - ], - [ - "ij", - "i" - ], - [ - "i", - "ji" - ], - [ - "▁A", - "uth" - ], - [ - "▁Aut", - "h" - ], - [ - "▁Au", - "th" - ], - [ - "▁", - "Auth" - ], - [ - "laim", - "ed" - ], - [ - "ref", - "lect" - ], - [ - "]", - "=" - ], - [ - "by", - "tes" - ], - [ - "byte", - "s" - ], - [ - "ho", - "ver" - ], - [ - "hov", - "er" - ], - [ - "h", - "over" - ], - [ - "▁ц", - "ер" - ], - [ - "▁це", - "р" - ], - [ - "▁", - "цер" - ], - [ - "grad", - "le" - ], - [ - "Ar", - "ch" - ], - [ - "ap", - "est" - ], - [ - "ape", - "st" - ], - [ - "apes", - "t" - ], - [ - "ás", - "a" - ], - [ - "á", - "sa" - ], - [ - "Car", - "d" - ], - [ - "Ca", - "rd" - ], - [ - "C", - "ard" - ], - [ - "▁tempor", - "ary" - ], - [ - "▁départ", - "ement" - ], - [ - "class", - "es" - ], - [ - "жи", - "ва" - ], - [ - "▁х", - "удо" - ], - [ - "▁m", - "ole" - ], - [ - "▁mo", - "le" - ], - [ - "▁mol", - "e" - ], - [ - "R", - "Y" - ], - [ - "L", - "P" - ], - [ - "▁p", - "ec" - ], - [ - "▁pe", - "c" - ], - [ - "▁", - "pec" - ], - [ - "rodu", - "ction" - ], - [ - "▁Gu", - "ard" - ], - [ - "▁Par", - "liament" - ], - [ - "▁inst", - "anti" - ], - [ - "▁instant", - "i" - ], - [ - "▁not", - "amment" - ], - [ - "▁D", - "oug" - ], - [ - "▁Do", - "ug" - ], - [ - "▁Dou", - "g" - ], - [ - "▁Mar", - "sh" - ], - [ - "▁Mars", - "h" - ], - [ - ".", - "~" - ], - [ - "▁\\", - "\"" - ], - [ - "▁", - "\\\"" - ], - [ - "▁t", - "hé" - ], - [ - "▁th", - "é" - ], - [ - "▁li", - "bre" - ], - [ - "▁lib", - "re" - ], - [ - "do", - "es" - ], - [ - "▁dé", - "but" - ], - [ - "▁U", - "nit" - ], - [ - "▁Un", - "it" - ], - [ - "▁", - "Unit" - ], - [ - "▁с", - "ту" - ], - [ - "▁ст", - "у" - ], - [ - "▁", - "сту" - ], - [ - "▁le", - "ague" - ], - [ - "▁qu", - "ale" - ], - [ - "▁q", - "uale" - ], - [ - "▁qual", - "e" - ], - [ - "▁состав", - "ля" - ], - [ - "▁соста", - "вля" - ], - [ - "Se", - "curity" - ], - [ - "Sec", - "urity" - ], - [ - "▁appar", - "ently" - ], - [ - "▁apparent", - "ly" - ], - [ - "▁tro", - "ops" - ], - [ - "ic", - "ano" - ], - [ - "ica", - "no" - ], - [ - "ican", - "o" - ], - [ - "i", - "cano" - ], - [ - "▁M", - "B" - ], - [ - "▁", - "MB" - ], - [ - "en", - "ze" - ], - [ - "enz", - "e" - ], - [ - "lo", - "ading" - ], - [ - "load", - "ing" - ], - [ - "▁dist", - "ributed" - ], - [ - "▁distribu", - "ted" - ], - [ - "▁distrib", - "uted" - ], - [ - "write", - "r" - ], - [ - "writ", - "er" - ], - [ - "wr", - "iter" - ], - [ - "w", - "riter" - ], - [ - "res", - "ources" - ], - [ - "resource", - "s" - ], - [ - "h", - "ö" - ], - [ - "ut", - "ils" - ], - [ - "util", - "s" - ], - [ - "uti", - "ls" - ], - [ - "▁prep", - "ared" - ], - [ - "▁prepar", - "ed" - ], - [ - "▁prepare", - "d" - ], - [ - "ci", - "er" - ], - [ - "cie", - "r" - ], - [ - "c", - "ier" - ], - [ - "op", - "ol" - ], - [ - "opo", - "l" - ], - [ - "o", - "pol" - ], - [ - "▁län", - "kar" - ], - [ - "he", - "s" - ], - [ - "h", - "es" - ], - [ - "н", - "ва" - ], - [ - "▁op", - "ens" - ], - [ - "▁open", - "s" - ], - [ - "▁", - "opens" - ], - [ - "ag", - "og" - ], - [ - "ago", - "g" - ], - [ - "inter", - "face" - ], - [ - "▁F", - "und" - ], - [ - "▁Fu", - "nd" - ], - [ - "▁Fun", - "d" - ], - [ - "▁pent", - "ru" - ], - [ - "ní", - "ch" - ], - [ - "n", - "ích" - ], - [ - "▁config", - "ured" - ], - [ - "▁configure", - "d" - ], - [ - "▁configur", - "ed" - ], - [ - "▁Web", - "site" - ], - [ - "▁list", - "ener" - ], - [ - "▁listen", - "er" - ], - [ - "▁liste", - "ner" - ], - [ - "▁", - "listener" - ], - [ - "iv", - "el" - ], - [ - "ive", - "l" - ], - [ - "i", - "vel" - ], - [ - "n", - "ę" - ], - [ - "min", - "a" - ], - [ - "mi", - "na" - ], - [ - "m", - "ina" - ], - [ - "▁in", - "vest" - ], - [ - "▁inv", - "est" - ], - [ - "▁inve", - "st" - ], - [ - "▁м", - "іс" - ], - [ - "▁мі", - "с" - ], - [ - "▁d", - "av" - ], - [ - "▁da", - "v" - ], - [ - "▁p", - "atch" - ], - [ - "▁pat", - "ch" - ], - [ - "▁", - "patch" - ], - [ - "pi", - "eler" - ], - [ - "piel", - "er" - ], - [ - "pie", - "ler" - ], - [ - "▁Ext", - "erna" - ], - [ - "▁Extern", - "a" - ], - [ - "t", - "f" - ], - [ - "▁e", - "red" - ], - [ - "▁er", - "ed" - ], - [ - "▁ere", - "d" - ], - [ - "▁", - "ered" - ], - [ - "▁Ass", - "embly" - ], - [ - "▁", - "Assembly" - ], - [ - "▁s", - "out" - ], - [ - "▁so", - "ut" - ], - [ - "▁sou", - "t" - ], - [ - "▁v", - "erk" - ], - [ - "▁ver", - "k" - ], - [ - "▁", - "verk" - ], - [ - "me", - "rs" - ], - [ - "mer", - "s" - ], - [ - "m", - "ers" - ], - [ - "t", - "oggle" - ], - [ - "▁up", - "dating" - ], - [ - "▁upd", - "ating" - ], - [ - "▁K", - "ent" - ], - [ - "▁Ke", - "nt" - ], - [ - "▁Ken", - "t" - ], - [ - "ec", - "a" - ], - [ - "e", - "ca" - ], - [ - "FA", - "ULT" - ], - [ - "▁tit", - "re" - ], - [ - "▁ti", - "tre" - ], - [ - "▁K", - "enn" - ], - [ - "▁Ke", - "nn" - ], - [ - "▁Ken", - "n" - ], - [ - "▁Ми", - "ха" - ], - [ - "ст", - "ор" - ], - [ - "сто", - "р" - ], - [ - "с", - "тор" - ], - [ - "▁p", - "ode" - ], - [ - "▁po", - "de" - ], - [ - "▁pod", - "e" - ], - [ - "▁S", - "eb" - ], - [ - "▁Se", - "b" - ], - [ - "це", - "в" - ], - [ - "ц", - "ев" - ], - [ - "E", - "Y" - ], - [ - "▁sil", - "ver" - ], - [ - "▁cap", - "acity" - ], - [ - "▁capac", - "ity" - ], - [ - "▁comple", - "tion" - ], - [ - "▁complet", - "ion" - ], - [ - "▁Pe", - "dro" - ], - [ - "▁Ped", - "ro" - ], - [ - "fe", - "l" - ], - [ - "f", - "el" - ], - [ - "va", - "no" - ], - [ - "van", - "o" - ], - [ - "v", - "ano" - ], - [ - "ze", - "ug" - ], - [ - "▁in", - "terior" - ], - [ - "▁inter", - "ior" - ], - [ - "▁inte", - "rior" - ], - [ - "▁Res", - "ponse" - ], - [ - "▁", - "Response" - ], - [ - "éd", - "ia" - ], - [ - "é", - "dia" - ], - [ - "▁World", - "Cat" - ], - [ - "▁c", - "ă" - ], - [ - "qu", - "el" - ], - [ - "que", - "l" - ], - [ - "q", - "uel" - ], - [ - "So", - "l" - ], - [ - "S", - "ol" - ], - [ - "іс", - "ля" - ], - [ - "▁D", - "omin" - ], - [ - "▁Do", - "min" - ], - [ - "▁Dom", - "in" - ], - [ - "▁c", - "um" - ], - [ - "▁cu", - "m" - ], - [ - "ce", - "p" - ], - [ - "c", - "ep" - ], - [ - "▁M", - "use" - ], - [ - "▁Mus", - "e" - ], - [ - "▁Mu", - "se" - ], - [ - "▁M", - "aría" - ], - [ - "▁Mar", - "ía" - ], - [ - "▁Ma", - "ría" - ], - [ - "▁function", - "al" - ], - [ - "▁ad", - "apter" - ], - [ - "▁adapt", - "er" - ], - [ - "▁", - "adapter" - ], - [ - "config", - "uration" - ], - [ - "▁t", - "ipo" - ], - [ - "▁tip", - "o" - ], - [ - "▁ti", - "po" - ], - [ - "▁B", - "ry" - ], - [ - "▁Br", - "y" - ], - [ - "v", - "y" - ], - [ - "U", - "L" - ], - [ - "▁tra", - "vers" - ], - [ - "▁trav", - "ers" - ], - [ - "!", - "(" - ], - [ - "▁absol", - "utely" - ], - [ - "▁absolute", - "ly" - ], - [ - "л", - "та" - ], - [ - "тт", - "я" - ], - [ - "т", - "тя" - ], - [ - "▁I", - "T" - ], - [ - "▁", - "IT" - ], - [ - "▁во", - "ен" - ], - [ - "yc", - "le" - ], - [ - "y", - "cle" - ], - [ - "be", - "st" - ], - [ - "bes", - "t" - ], - [ - "b", - "est" - ], - [ - "▁construct", - "ed" - ], - [ - "▁constru", - "cted" - ], - [ - "▁фи", - "ль" - ], - [ - "▁", - "филь" - ], - [ - "ci", - "do" - ], - [ - "cid", - "o" - ], - [ - "c", - "ido" - ], - [ - "ex", - "it" - ], - [ - "ga", - "rt" - ], - [ - "gar", - "t" - ], - [ - "g", - "art" - ], - [ - "▁provin", - "cia" - ], - [ - "ve", - "z" - ], - [ - "v", - "ez" - ], - [ - "ci", - "pl" - ], - [ - "cip", - "l" - ], - [ - "▁Face", - "book" - ], - [ - "▁Fac", - "ebook" - ], - [ - "▁y", - "ellow" - ], - [ - "▁", - "yellow" - ], - [ - "▁Sum", - "mer" - ], - [ - "▁point", - "ing" - ], - [ - "▁poss", - "ibility" - ], - [ - "▁possib", - "ility" - ], - [ - "▁possibil", - "ity" - ], - [ - "▁leg", - "isl" - ], - [ - "▁мо", - "ж" - ], - [ - "▁", - "мож" - ], - [ - "de", - "rn" - ], - [ - "der", - "n" - ], - [ - "d", - "ern" - ], - [ - "ко", - "но" - ], - [ - "кон", - "о" - ], - [ - "▁mechan", - "ism" - ], - [ - "▁Bern", - "ard" - ], - [ - "ex", - "pr" - ], - [ - "exp", - "r" - ], - [ - "ло", - "ви" - ], - [ - "лов", - "и" - ], - [ - "л", - "ови" - ], - [ - "▁dig", - "its" - ], - [ - "▁digit", - "s" - ], - [ - "▁de", - "legate" - ], - [ - "▁deleg", - "ate" - ], - [ - "▁", - "delegate" - ], - [ - "og", - "ram" - ], - [ - "o", - "gram" - ], - [ - "▁D", - "ictionary" - ], - [ - "▁", - "Dictionary" - ], - [ - "is", - "y" - ], - [ - "▁s", - "po" - ], - [ - "▁sp", - "o" - ], - [ - "/", - "$" - ], - [ - "clude", - "d" - ], - [ - "clud", - "ed" - ], - [ - "▁M", - "VC" - ], - [ - "▁t", - "ém" - ], - [ - "▁té", - "m" - ], - [ - "▁print", - "ed" - ], - [ - "▁prin", - "ted" - ], - [ - "▁G", - "ott" - ], - [ - "▁Go", - "tt" - ], - [ - "▁Got", - "t" - ], - [ - "▁O", - "m" - ], - [ - "▁", - "Om" - ], - [ - "ans", - "as" - ], - [ - "▁D", - "urch" - ], - [ - "▁Dur", - "ch" - ], - [ - "▁I", - "dent" - ], - [ - "▁Id", - "ent" - ], - [ - "▁Ide", - "nt" - ], - [ - "▁", - "Ident" - ], - [ - "Q", - "U" - ], - [ - "ht", - "m" - ], - [ - "h", - "tm" - ], - [ - "▁S", - "ul" - ], - [ - "▁Su", - "l" - ], - [ - "']", - "." - ], - [ - "'", - "]." - ], - [ - "▁du", - "ty" - ], - [ - "▁dut", - "y" - ], - [ - "▁Aut", - "hor" - ], - [ - "▁Auth", - "or" - ], - [ - "▁", - "Author" - ], - [ - "▁n", - "ě" - ], - [ - "▁", - "ně" - ], - [ - "ow", - "ego" - ], - [ - "owe", - "go" - ], - [ - "pu", - "s" - ], - [ - "p", - "us" - ], - [ - "em", - "bl" - ], - [ - "emb", - "l" - ], - [ - "Exec", - "utor" - ], - [ - "B", - "L" - ], - [ - "▁M", - "ens" - ], - [ - "▁Me", - "ns" - ], - [ - "▁Men", - "s" - ], - [ - "dis", - "patch" - ], - [ - "▁M", - "id" - ], - [ - "▁Mi", - "d" - ], - [ - "ap", - "ps" - ], - [ - "app", - "s" - ], - [ - "Trans", - "form" - ], - [ - "▁D", - "at" - ], - [ - "▁Da", - "t" - ], - [ - "▁", - "Dat" - ], - [ - "▁im", - "pl" - ], - [ - "▁imp", - "l" - ], - [ - "▁", - "impl" - ], - [ - "ou", - "x" - ], - [ - "o", - "ux" - ], - [ - "ho", - "lm" - ], - [ - "hol", - "m" - ], - [ - "▁I", - "ns" - ], - [ - "▁In", - "s" - ], - [ - "▁Emp", - "ire" - ], - [ - "ру", - "п" - ], - [ - "▁Ap", - "ache" - ], - [ - "SI", - "ON" - ], - [ - "S", - "ION" - ], - [ - "▁pass", - "age" - ], - [ - "########", - "########" - ], - [ - "▁ex", - "pressed" - ], - [ - "▁express", - "ed" - ], - [ - "▁expr", - "essed" - ], - [ - "▁expres", - "sed" - ], - [ - "на", - "д" - ], - [ - "▁o", - "l" - ], - [ - "▁", - "ol" - ], - [ - "▁h", - "avia" - ], - [ - "▁ha", - "via" - ], - [ - "▁hav", - "ia" - ], - [ - "▁бо", - "лее" - ], - [ - "▁enjo", - "y" - ], - [ - "form", - "ance" - ], - [ - "▁dim", - "ensions" - ], - [ - "▁dimension", - "s" - ], - [ - "▁ч", - "ер" - ], - [ - "▁че", - "р" - ], - [ - "▁", - "чер" - ], - [ - "Se", - "e" - ], - [ - "S", - "ee" - ], - [ - "▁m", - "outh" - ], - [ - "▁mo", - "uth" - ], - [ - "▁mou", - "th" - ], - [ - "▁", - "mouth" - ], - [ - "▁g", - "au" - ], - [ - "▁ga", - "u" - ], - [ - "ien", - "cy" - ], - [ - "i", - "ency" - ], - [ - "▁Carol", - "ina" - ], - [ - "Dis", - "t" - ], - [ - "Di", - "st" - ], - [ - "D", - "ist" - ], - [ - "rad", - "io" - ], - [ - "li", - "mit" - ], - [ - "lim", - "it" - ], - [ - "l", - "imit" - ], - [ - "/", - "?" - ], - [ - "▁B", - "all" - ], - [ - "▁Ba", - "ll" - ], - [ - "▁Bal", - "l" - ], - [ - "ні", - "сть" - ], - [ - "Mem", - "ber" - ], - [ - "M", - "ember" - ], - [ - "wa", - "ter" - ], - [ - "w", - "ater" - ], - [ - "▁mur", - "der" - ], - [ - "▁stand", - "ing" - ], - [ - "▁stan", - "ding" - ], - [ - "▁", - "standing" - ], - [ - "▁V", - "II" - ], - [ - "▁VI", - "I" - ], - [ - "Cent", - "er" - ], - [ - "C", - "enter" - ], - [ - "pp", - "a" - ], - [ - "p", - "pa" - ], - [ - "ur", - "eau" - ], - [ - "ure", - "au" - ], - [ - "▁Le", - "ip" - ], - [ - "▁ob", - "jet" - ], - [ - "▁obj", - "et" - ], - [ - "▁Act", - "ivity" - ], - [ - "▁Activ", - "ity" - ], - [ - "▁", - "Activity" - ], - [ - "em", - "bers" - ], - [ - "ember", - "s" - ], - [ - "emb", - "ers" - ], - [ - "v", - "r" - ], - [ - "▁con", - "du" - ], - [ - "▁cond", - "u" - ], - [ - "Cell", - "s" - ], - [ - "C", - "ells" - ], - [ - "in", - "us" - ], - [ - "inu", - "s" - ], - [ - "▁'", - "," - ], - [ - "▁", - "'," - ], - [ - "▁af", - "raid" - ], - [ - "▁х", - "а" - ], - [ - "▁", - "ха" - ], - [ - "▁V", - "ic" - ], - [ - "▁Vi", - "c" - ], - [ - "test", - "ing" - ], - [ - "tes", - "ting" - ], - [ - "Tu", - "be" - ], - [ - "T", - "ube" - ], - [ - "▁v", - "ast" - ], - [ - "▁va", - "st" - ], - [ - "▁vas", - "t" - ], - [ - "P", - "M" - ], - [ - "ni", - "h" - ], - [ - "n", - "ih" - ], - [ - "SS", - "N" - ], - [ - "S", - "SN" - ], - [ - "▁Ch", - "ile" - ], - [ - "▁Chi", - "le" - ], - [ - "yl", - "van" - ], - [ - "▁B", - "ow" - ], - [ - "▁Bo", - "w" - ], - [ - "▁relig", - "ion" - ], - [ - "op", - "her" - ], - [ - "oph", - "er" - ], - [ - "ophe", - "r" - ], - [ - "o", - "pher" - ], - [ - "▁C", - "oll" - ], - [ - "▁Col", - "l" - ], - [ - "▁Co", - "ll" - ], - [ - "▁", - "Coll" - ], - [ - "▁dig", - "ital" - ], - [ - "▁digit", - "al" - ], - [ - "zi", - "oni" - ], - [ - "z", - "ioni" - ], - [ - "Se", - "ction" - ], - [ - "Sec", - "tion" - ], - [ - "S", - "ection" - ], - [ - "▁резу", - "льта" - ], - [ - "Foo", - "t" - ], - [ - "F", - "oot" - ], - [ - "con", - "vert" - ], - [ - "conv", - "ert" - ], - [ - "▁rece", - "iving" - ], - [ - "Cont", - "act" - ], - [ - "▁h", - "ero" - ], - [ - "▁he", - "ro" - ], - [ - "▁her", - "o" - ], - [ - "sa", - "m" - ], - [ - "s", - "am" - ], - [ - "▁pos", - "terior" - ], - [ - "▁poster", - "ior" - ], - [ - "▁poste", - "rior" - ], - [ - "ow", - "i" - ], - [ - "o", - "wi" - ], - [ - "An", - "t" - ], - [ - "A", - "nt" - ], - [ - "▁fl", - "ags" - ], - [ - "▁flag", - "s" - ], - [ - "▁fla", - "gs" - ], - [ - "▁", - "flags" - ], - [ - "▁Ze", - "aland" - ], - [ - "▁b", - "ounds" - ], - [ - "▁bound", - "s" - ], - [ - "▁", - "bounds" - ], - [ - "▁where", - "as" - ], - [ - "▁whe", - "reas" - ], - [ - "in", - "fl" - ], - [ - "inf", - "l" - ], - [ - "Pl", - "ay" - ], - [ - "P", - "lay" - ], - [ - "▁d", - "emo" - ], - [ - "▁de", - "mo" - ], - [ - "▁dem", - "o" - ], - [ - "▁", - "demo" - ], - [ - "▁g", - "ibt" - ], - [ - "▁gi", - "bt" - ], - [ - "▁h", - "ospital" - ], - [ - "▁hosp", - "ital" - ], - [ - "▁v", - "olta" - ], - [ - "▁vol", - "ta" - ], - [ - "▁volt", - "a" - ], - [ - "л", - "ё" - ], - [ - "▁f", - "ashion" - ], - [ - "▁ex", - "ceed" - ], - [ - "▁exc", - "eed" - ], - [ - "el", - "enium" - ], - [ - "elen", - "ium" - ], - [ - "It", - "er" - ], - [ - "I", - "ter" - ], - [ - "kr", - "ie" - ], - [ - "k", - "rie" - ], - [ - "▁integr", - "ation" - ], - [ - "▁integra", - "tion" - ], - [ - "▁", - "integration" - ], - [ - "▁Other", - "wise" - ], - [ - "ad", - "u" - ], - [ - "a", - "du" - ], - [ - "Sh", - "e" - ], - [ - "S", - "he" - ], - [ - "on", - "de" - ], - [ - "ond", - "e" - ], - [ - "o", - "nde" - ], - [ - "ui", - "nt" - ], - [ - "u", - "int" - ], - [ - "rad", - "ius" - ], - [ - "▁r", - "am" - ], - [ - "▁ra", - "m" - ], - [ - "▁", - "ram" - ], - [ - "▁ál", - "bum" - ], - [ - "▁т", - "ур" - ], - [ - "▁ту", - "р" - ], - [ - "▁", - "тур" - ], - [ - "▁d", - "y" - ], - [ - "▁", - "dy" - ], - [ - "▁O", - "tt" - ], - [ - "▁Ot", - "t" - ], - [ - "▁пер", - "и" - ], - [ - "▁пе", - "ри" - ], - [ - "re", - "v" - ], - [ - "r", - "ev" - ], - [ - "ri", - "or" - ], - [ - "rio", - "r" - ], - [ - "r", - "ior" - ], - [ - "í", - "d" - ], - [ - "ir", - "at" - ], - [ - "ira", - "t" - ], - [ - "i", - "rat" - ], - [ - "▁в", - "клю" - ], - [ - "▁import", - "ante" - ], - [ - "▁important", - "e" - ], - [ - "▁Du", - "ke" - ], - [ - "▁caus", - "a" - ], - [ - "▁ca", - "usa" - ], - [ - "▁Math", - "emat" - ], - [ - "▁di", - "plom" - ], - [ - "▁N", - "icol" - ], - [ - "▁Nic", - "ol" - ], - [ - "▁Ni", - "col" - ], - [ - "▁ex", - "clus" - ], - [ - "▁exc", - "lus" - ], - [ - "▁debug", - "ging" - ], - [ - "▁G", - "h" - ], - [ - "or", - "iginal" - ], - [ - "origin", - "al" - ], - [ - "orig", - "inal" - ], - [ - "ly", - "n" - ], - [ - "l", - "yn" - ], - [ - "▁P", - "la" - ], - [ - "▁Pl", - "a" - ], - [ - "su", - "ite" - ], - [ - "suit", - "e" - ], - [ - "ch", - "at" - ], - [ - "cha", - "t" - ], - [ - "c", - "hat" - ], - [ - "▁e", - "stud" - ], - [ - "▁est", - "ud" - ], - [ - "ue", - "lle" - ], - [ - "uel", - "le" - ], - [ - "u", - "elle" - ], - [ - "▁p", - "ert" - ], - [ - "▁per", - "t" - ], - [ - "▁pe", - "rt" - ], - [ - "▁", - "pert" - ], - [ - "▁import", - "ance" - ], - [ - "▁appro", - "aches" - ], - [ - "▁approach", - "es" - ], - [ - "▁d", - "la" - ], - [ - "▁про", - "ф" - ], - [ - "Pr", - "es" - ], - [ - "Pre", - "s" - ], - [ - "P", - "res" - ], - [ - "<", - "\\" - ], - [ - "pre", - "fix" - ], - [ - "p", - "refix" - ], - [ - "SS", - "ION" - ], - [ - "S", - "SION" - ], - [ - "ро", - "ди" - ], - [ - "род", - "и" - ], - [ - "count", - "ry" - ], - [ - "c", - "ountry" - ], - [ - "it", - "zer" - ], - [ - "itz", - "er" - ], - [ - "▁ко", - "р" - ], - [ - "▁к", - "ор" - ], - [ - "▁", - "кор" - ], - [ - "▁sing", - "ular" - ], - [ - "go", - "v" - ], - [ - "g", - "ov" - ], - [ - "ри", - "н" - ], - [ - "р", - "ин" - ], - [ - "▁F", - "A" - ], - [ - "▁", - "FA" - ], - [ - "▁mat", - "rices" - ], - [ - "ol", - "are" - ], - [ - "ola", - "re" - ], - [ - "olar", - "e" - ], - [ - "o", - "lare" - ], - [ - "ni", - "ka" - ], - [ - "nik", - "a" - ], - [ - "n", - "ika" - ], - [ - "po", - "wer" - ], - [ - "pow", - "er" - ], - [ - "p", - "ower" - ], - [ - "ll", - "a" - ], - [ - "l", - "la" - ], - [ - "▁des", - "ire" - ], - [ - "▁famil", - "ia" - ], - [ - "▁fam", - "ilia" - ], - [ - "до", - "р" - ], - [ - "д", - "ор" - ], - [ - "▁f", - "an" - ], - [ - "▁fa", - "n" - ], - [ - "▁", - "fan" - ], - [ - "gener", - "ated" - ], - [ - "generate", - "d" - ], - [ - "▁C", - "os" - ], - [ - "▁Co", - "s" - ], - [ - "▁ż", - "e" - ], - [ - "▁", - "że" - ], - [ - "▁D", - "iese" - ], - [ - "▁Die", - "se" - ], - [ - "▁Di", - "ese" - ], - [ - "▁Dies", - "e" - ], - [ - "mo", - "v" - ], - [ - "m", - "ov" - ], - [ - "▁de", - "note" - ], - [ - "▁den", - "ote" - ], - [ - "\")", - "]" - ], - [ - "\"", - ")]" - ], - [ - "ou", - "vern" - ], - [ - "ouv", - "ern" - ], - [ - "ouve", - "rn" - ], - [ - "ouver", - "n" - ], - [ - "am", - "an" - ], - [ - "ama", - "n" - ], - [ - "a", - "man" - ], - [ - "▁in", - "ser" - ], - [ - "▁ins", - "er" - ], - [ - "▁inse", - "r" - ], - [ - "ij", - "k" - ], - [ - "i", - "jk" - ], - [ - "ot", - "ta" - ], - [ - "ott", - "a" - ], - [ - "o", - "tta" - ], - [ - "er", - "al" - ], - [ - "era", - "l" - ], - [ - "e", - "ral" - ], - [ - "де", - "ль" - ], - [ - "д", - "ель" - ], - [ - "()", - "->" - ], - [ - "(", - ")->" - ], - [ - "▁p", - "oder" - ], - [ - "▁po", - "der" - ], - [ - "▁pod", - "er" - ], - [ - "▁pode", - "r" - ], - [ - "ig", - "es" - ], - [ - "ige", - "s" - ], - [ - "i", - "ges" - ], - [ - "▁On", - "line" - ], - [ - "▁we", - "ird" - ], - [ - "ia", - "c" - ], - [ - "i", - "ac" - ], - [ - "▁quel", - "ques" - ], - [ - "▁quelque", - "s" - ], - [ - "ère", - "nt" - ], - [ - "è", - "rent" - ], - [ - "▁t", - "el" - ], - [ - "▁te", - "l" - ], - [ - "▁", - "tel" - ], - [ - "▁L", - "atin" - ], - [ - "▁Lat", - "in" - ], - [ - "ver", - "ter" - ], - [ - "vert", - "er" - ], - [ - "verte", - "r" - ], - [ - "ля", - "р" - ], - [ - "ро", - "и" - ], - [ - "▁p", - "df" - ], - [ - "▁pd", - "f" - ], - [ - "▁", - "pdf" - ], - [ - "▁key", - "word" - ], - [ - "▁", - "keyword" - ], - [ - "Hand", - "le" - ], - [ - "A", - "fter" - ], - [ - "re", - "ce" - ], - [ - "rec", - "e" - ], - [ - "▁ident", - "ical" - ], - [ - "style", - "sheet" - ], - [ - "styles", - "heet" - ], - [ - "▁стан", - "ови" - ], - [ - "▁станов", - "и" - ], - [ - "▁k", - "a" - ], - [ - "▁", - "ka" - ], - [ - "ce", - "ment" - ], - [ - "cem", - "ent" - ], - [ - "c", - "ement" - ], - [ - "те", - "т" - ], - [ - "т", - "ет" - ], - [ - "▁c", - "hat" - ], - [ - "▁ch", - "at" - ], - [ - "▁cha", - "t" - ], - [ - "▁", - "chat" - ], - [ - "▁M", - "un" - ], - [ - "▁Mu", - "n" - ], - [ - "ał", - "a" - ], - [ - "a", - "ła" - ], - [ - "AN", - "T" - ], - [ - "A", - "NT" - ], - [ - "ol", - "óg" - ], - [ - "▁f", - "ant" - ], - [ - "▁fa", - "nt" - ], - [ - "▁fan", - "t" - ], - [ - "▁for", - "est" - ], - [ - "▁fo", - "rest" - ], - [ - "▁fore", - "st" - ], - [ - "▁ви", - "ко" - ], - [ - "cu", - "ss" - ], - [ - "cus", - "s" - ], - [ - "c", - "uss" - ], - [ - "▁se", - "hr" - ], - [ - "pa", - "g" - ], - [ - "p", - "ag" - ], - [ - "ot", - "ic" - ], - [ - "oti", - "c" - ], - [ - "▁á", - "ll" - ], - [ - "▁ál", - "l" - ], - [ - "▁", - "áll" - ], - [ - "ма", - "ти" - ], - [ - "мат", - "и" - ], - [ - "▁\"", - "'" - ], - [ - "+", - "\"" - ], - [ - "An", - "imation" - ], - [ - "Anim", - "ation" - ], - [ - "ходи", - "т" - ], - [ - "ход", - "ит" - ], - [ - "az", - "u" - ], - [ - "a", - "zu" - ], - [ - "▁pl", - "ays" - ], - [ - "▁play", - "s" - ], - [ - "▁pla", - "ys" - ], - [ - "▁", - "plays" - ], - [ - "iz", - "ioni" - ], - [ - "izi", - "oni" - ], - [ - "izio", - "ni" - ], - [ - "i", - "zioni" - ], - [ - "ми", - "че" - ], - [ - "▁b", - "omb" - ], - [ - "▁bo", - "mb" - ], - [ - "▁bom", - "b" - ], - [ - "▁mer", - "ely" - ], - [ - "▁mere", - "ly" - ], - [ - "▁hold", - "ing" - ], - [ - "▁hol", - "ding" - ], - [ - "▁w", - "enn" - ], - [ - "▁we", - "nn" - ], - [ - "▁wen", - "n" - ], - [ - "▁m", - "edic" - ], - [ - "▁me", - "dic" - ], - [ - "▁med", - "ic" - ], - [ - "▁medi", - "c" - ], - [ - "▁spe", - "aking" - ], - [ - "▁speak", - "ing" - ], - [ - "ong", - "odb" - ], - [ - "ongo", - "db" - ], - [ - "▁Cam", - "pe" - ], - [ - "▁Camp", - "e" - ], - [ - "in", - "ity" - ], - [ - "ini", - "ty" - ], - [ - "init", - "y" - ], - [ - "▁я", - "нва" - ], - [ - "()", - "`." - ], - [ - "()`", - "." - ], - [ - "(", - ")`." - ], - [ - "lu", - "ss" - ], - [ - "lus", - "s" - ], - [ - "l", - "uss" - ], - [ - "▁H", - "istoire" - ], - [ - "▁His", - "toire" - ], - [ - "▁Hist", - "oire" - ], - [ - "▁oper", - "ating" - ], - [ - "▁opera", - "ting" - ], - [ - "Ch", - "annel" - ], - [ - "▁accur", - "acy" - ], - [ - "▁b", - "os" - ], - [ - "▁bo", - "s" - ], - [ - "▁", - "bos" - ], - [ - "▁ev", - "ident" - ], - [ - "ци", - "ю" - ], - [ - "event", - "s" - ], - [ - "ev", - "ents" - ], - [ - "even", - "ts" - ], - [ - "text", - "rm" - ], - [ - "or", - "eign" - ], - [ - "ore", - "ign" - ], - [ - "▁i", - "i" - ], - [ - "▁", - "ii" - ], - [ - "hr", - "en" - ], - [ - "hre", - "n" - ], - [ - "h", - "ren" - ], - [ - "lo", - "wer" - ], - [ - "low", - "er" - ], - [ - "l", - "ower" - ], - [ - "▁т", - "ом" - ], - [ - "▁то", - "м" - ], - [ - "▁", - "том" - ], - [ - "▁Ab", - "out" - ], - [ - "▁", - "About" - ], - [ - "▁a", - "j" - ], - [ - "▁", - "aj" - ], - [ - "er", - "i" - ], - [ - "e", - "ri" - ], - [ - "сту", - "пи" - ], - [ - "ступ", - "и" - ], - [ - "▁di", - "git" - ], - [ - "▁dig", - "it" - ], - [ - "▁", - "digit" - ], - [ - "▁Sp", - "ain" - ], - [ - "▁D", - "aten" - ], - [ - "▁Date", - "n" - ], - [ - "▁Da", - "ten" - ], - [ - "▁Dat", - "en" - ], - [ - "▁for", - "me" - ], - [ - "▁form", - "e" - ], - [ - "▁ш", - "та" - ], - [ - "▁", - "шта" - ], - [ - "▁B", - "ach" - ], - [ - "▁Ba", - "ch" - ], - [ - "▁Bac", - "h" - ], - [ - "no", - "number" - ], - [ - "non", - "umber" - ], - [ - "▁recomm", - "ended" - ], - [ - "▁recommend", - "ed" - ], - [ - "▁re", - "ads" - ], - [ - "▁read", - "s" - ], - [ - "his", - "toire" - ], - [ - "h", - "istoire" - ], - [ - "▁s", - "ang" - ], - [ - "▁sa", - "ng" - ], - [ - "▁san", - "g" - ], - [ - "▁?", - "?" - ], - [ - "▁", - "??" - ], - [ - "▁с", - "тал" - ], - [ - "▁ст", - "ал" - ], - [ - "▁ста", - "л" - ], - [ - "sc", - "ore" - ], - [ - "s", - "core" - ], - [ - "fa", - "s" - ], - [ - "f", - "as" - ], - [ - "▁c", - "ub" - ], - [ - "▁cu", - "b" - ], - [ - "▁g", - "rew" - ], - [ - "▁gr", - "ew" - ], - [ - "▁gre", - "w" - ], - [ - "▁cent", - "ro" - ], - [ - "▁bek", - "annt" - ], - [ - "Event", - "s" - ], - [ - "BE", - "R" - ], - [ - "B", - "ER" - ], - [ - "he", - "w" - ], - [ - "h", - "ew" - ], - [ - "сс", - "а" - ], - [ - "с", - "са" - ], - [ - "▁major", - "ity" - ], - [ - "ît", - "re" - ], - [ - "î", - "tre" - ], - [ - "en", - "ci" - ], - [ - "enc", - "i" - ], - [ - "▁Qu", - "ery" - ], - [ - "▁Que", - "ry" - ], - [ - "▁", - "Query" - ], - [ - "▁któ", - "re" - ], - [ - "i", - "ć" - ], - [ - "▁complex", - "ity" - ], - [ - "▁Fran", - "çois" - ], - [ - "const", - "raint" - ], - [ - "ур", - "на" - ], - [ - "═", - "═" - ], - [ - "▁iter", - "ate" - ], - [ - "le", - "tt" - ], - [ - "let", - "t" - ], - [ - "l", - "ett" - ], - [ - "pe", - "ror" - ], - [ - "per", - "or" - ], - [ - "▁Neder", - "land" - ], - [ - "sh", - "are" - ], - [ - "sha", - "re" - ], - [ - "▁incl", - "u" - ], - [ - "▁inc", - "lu" - ], - [ - "än", - "ger" - ], - [ - "äng", - "er" - ], - [ - "änge", - "r" - ], - [ - "▁N", - "ic" - ], - [ - "▁Ni", - "c" - ], - [ - "ч", - "о" - ], - [ - "F", - "ull" - ], - [ - "▁ra", - "pport" - ], - [ - "▁rapp", - "ort" - ], - [ - "▁rap", - "port" - ], - [ - "ec", - "lipse" - ], - [ - "e", - "clipse" - ], - [ - "▁indust", - "ry" - ], - [ - "he", - "aders" - ], - [ - "head", - "ers" - ], - [ - "header", - "s" - ], - [ - "▁Р", - "и" - ], - [ - "ch", - "sel" - ], - [ - "chs", - "el" - ], - [ - "▁po", - "lic" - ], - [ - "▁pol", - "ic" - ], - [ - "sch", - "ied" - ], - [ - "%", - "," - ], - [ - "O", - "D" - ], - [ - "▁J", - "ak" - ], - [ - "▁Ja", - "k" - ], - [ - "({", - "\\" - ], - [ - "(", - "{\\" - ], - [ - "al", - "igned" - ], - [ - "align", - "ed" - ], - [ - "▁frequ", - "ently" - ], - [ - "▁frequent", - "ly" - ], - [ - "▁su", - "oi" - ], - [ - "▁suo", - "i" - ], - [ - "▁ess", - "entially" - ], - [ - "▁essential", - "ly" - ], - [ - "▁R", - "ic" - ], - [ - "▁Ri", - "c" - ], - [ - "▁re", - "ports" - ], - [ - "▁report", - "s" - ], - [ - "▁dec", - "imal" - ], - [ - "ra", - "r" - ], - [ - "r", - "ar" - ], - [ - "▁F", - "oo" - ], - [ - "▁Fo", - "o" - ], - [ - "▁", - "Foo" - ], - [ - "▁K", - "a" - ], - [ - "▁D", - "C" - ], - [ - "▁", - "DC" - ], - [ - "▁sim", - "pler" - ], - [ - "▁simple", - "r" - ], - [ - "▁simp", - "ler" - ], - [ - "▁simpl", - "er" - ], - [ - "Pa", - "ne" - ], - [ - "Pan", - "e" - ], - [ - "P", - "ane" - ], - [ - "?", - "}" - ], - [ - "So", - "rt" - ], - [ - "S", - "ort" - ], - [ - "▁pos", - "it" - ], - [ - "cd", - "n" - ], - [ - "c", - "dn" - ], - [ - "kt", - "ur" - ], - [ - "▁aw", - "k" - ], - [ - "▁", - "awk" - ], - [ - "зе", - "р" - ], - [ - "з", - "ер" - ], - [ - "P", - "F" - ], - [ - "u", - "ur" - ], - [ - "▁R", - "oss" - ], - [ - "▁Ro", - "ss" - ], - [ - "▁Ros", - "s" - ], - [ - "▁m", - "ant" - ], - [ - "▁ma", - "nt" - ], - [ - "▁man", - "t" - ], - [ - "N", - "a" - ], - [ - "Con", - "s" - ], - [ - "Co", - "ns" - ], - [ - "C", - "ons" - ], - [ - "))", - "))" - ], - [ - ")))", - ")" - ], - [ - ")", - ")))" - ], - [ - "▁techn", - "iques" - ], - [ - "▁techni", - "ques" - ], - [ - "▁technique", - "s" - ], - [ - "im", - "pl" - ], - [ - "imp", - "l" - ], - [ - "▁dro", - "pped" - ], - [ - "▁drop", - "ped" - ], - [ - "▁L", - "ista" - ], - [ - "▁List", - "a" - ], - [ - "▁Li", - "sta" - ], - [ - "▁Lis", - "ta" - ], - [ - "▁Bas", - "ically" - ], - [ - "▁Basic", - "ally" - ], - [ - "en", - "tal" - ], - [ - "ent", - "al" - ], - [ - "enta", - "l" - ], - [ - "▁cel", - "ui" - ], - [ - "▁str", - "ategy" - ], - [ - "▁strateg", - "y" - ], - [ - "▁strat", - "egy" - ], - [ - "▁W", - "ales" - ], - [ - "▁Wal", - "es" - ], - [ - "▁Wa", - "les" - ], - [ - "na", - "n" - ], - [ - "n", - "an" - ], - [ - "▁g", - "min" - ], - [ - "▁gr", - "öß" - ], - [ - "▁eer", - "ste" - ], - [ - "▁eerst", - "e" - ], - [ - "T", - "im" - ], - [ - "nt", - "en" - ], - [ - "n", - "ten" - ], - [ - "re", - "sp" - ], - [ - "res", - "p" - ], - [ - "r", - "esp" - ], - [ - "▁s", - "table" - ], - [ - "▁st", - "able" - ], - [ - "▁sta", - "ble" - ], - [ - "▁", - "stable" - ], - [ - "no", - "v" - ], - [ - "n", - "ov" - ], - [ - "ro", - "b" - ], - [ - "r", - "ob" - ], - [ - "но", - "ј" - ], - [ - "▁mar", - "riage" - ], - [ - "get", - "String" - ], - [ - "Aut", - "hor" - ], - [ - "Auth", - "or" - ], - [ - "▁G", - "raf" - ], - [ - "▁Gr", - "af" - ], - [ - "▁Gra", - "f" - ], - [ - "▁di", - "agram" - ], - [ - "▁diag", - "ram" - ], - [ - "▁dia", - "gram" - ], - [ - "gi", - "a" - ], - [ - "g", - "ia" - ], - [ - "Net", - "work" - ], - [ - "N", - "etwork" - ], - [ - "▁com", - "posed" - ], - [ - "▁comp", - "osed" - ], - [ - "▁compos", - "ed" - ], - [ - "▁compose", - "d" - ], - [ - "▁miss", - "ed" - ], - [ - "▁mis", - "sed" - ], - [ - "▁M", - "eg" - ], - [ - "▁Me", - "g" - ], - [ - "▁пра", - "во" - ], - [ - "▁прав", - "о" - ], - [ - "▁hom", - "onymes" - ], - [ - "▁Bo", - "oks" - ], - [ - "▁Book", - "s" - ], - [ - "▁en", - "cou" - ], - [ - "▁enc", - "ou" - ], - [ - "port", - "e" - ], - [ - "por", - "te" - ], - [ - "p", - "orte" - ], - [ - "▁rot", - "ation" - ], - [ - "▁f", - "ir" - ], - [ - "▁fi", - "r" - ], - [ - "▁", - "fir" - ], - [ - "те", - "льно" - ], - [ - "тель", - "но" - ], - [ - "▁g", - "un" - ], - [ - "▁gu", - "n" - ], - [ - "▁", - "gun" - ], - [ - "▁A", - "ff" - ], - [ - "▁Af", - "f" - ], - [ - "▁", - "Aff" - ], - [ - "но", - "к" - ], - [ - "н", - "ок" - ], - [ - "▁Fuß", - "ball" - ], - [ - "▁St", - "ory" - ], - [ - "▁Sto", - "ry" - ], - [ - "▁", - "Story" - ], - [ - "▁Ch", - "ap" - ], - [ - "▁Cha", - "p" - ], - [ - "▁)", - "." - ], - [ - "▁", - ")." - ], - [ - "▁Se", - "it" - ], - [ - "мо", - "н" - ], - [ - "м", - "он" - ], - [ - "▁t", - "élé" - ], - [ - "▁té", - "lé" - ], - [ - "▁cop", - "ied" - ], - [ - "▁cons", - "istent" - ], - [ - "▁consist", - "ent" - ], - [ - "▁dr", - "ink" - ], - [ - "▁C", - "ham" - ], - [ - "▁Ch", - "am" - ], - [ - "▁Cha", - "m" - ], - [ - "▁mat", - "ters" - ], - [ - "▁matter", - "s" - ], - [ - "▁render", - "ed" - ], - [ - "▁rend", - "ered" - ], - [ - "▁rende", - "red" - ], - [ - "▁hyp", - "oth" - ], - [ - "œ", - "uv" - ], - [ - "▁me", - "er" - ], - [ - "▁par", - "sing" - ], - [ - "▁P", - "RO" - ], - [ - "▁PR", - "O" - ], - [ - "▁", - "PRO" - ], - [ - "se", - "ries" - ], - [ - "ser", - "ies" - ], - [ - "serie", - "s" - ], - [ - "s", - "eries" - ], - [ - "▁z", - "á" - ], - [ - "▁", - "zá" - ], - [ - "stra", - "ße" - ], - [ - "▁B", - "oot" - ], - [ - "▁Bo", - "ot" - ], - [ - "▁", - "Boot" - ], - [ - "▁re", - "po" - ], - [ - "▁rep", - "o" - ], - [ - "▁", - "repo" - ], - [ - "wo", - "r" - ], - [ - "w", - "or" - ], - [ - "▁St", - "ream" - ], - [ - "▁Stre", - "am" - ], - [ - "▁", - "Stream" - ], - [ - "▁A", - "N" - ], - [ - "▁", - "AN" - ], - [ - "▁п", - "ів" - ], - [ - "▁пі", - "в" - ], - [ - "▁S", - "M" - ], - [ - "▁", - "SM" - ], - [ - "▁A", - "rn" - ], - [ - "▁Ar", - "n" - ], - [ - "▁", - "Ž" - ], - [ - "▁[", - "];" - ], - [ - "▁[]", - ";" - ], - [ - "Res", - "ources" - ], - [ - "Resource", - "s" - ], - [ - "▁el", - "abor" - ], - [ - "▁ela", - "bor" - ], - [ - "▁E", - "th" - ], - [ - "▁Et", - "h" - ], - [ - "▁l", - "iste" - ], - [ - "▁li", - "ste" - ], - [ - "▁list", - "e" - ], - [ - "▁rel", - "atively" - ], - [ - "▁relative", - "ly" - ], - [ - "▁relativ", - "ely" - ], - [ - "ch", - "ant" - ], - [ - "chan", - "t" - ], - [ - "cha", - "nt" - ], - [ - "=\"", - "\"" - ], - [ - "=", - "\"\"" - ], - [ - "▁l", - "ift" - ], - [ - "▁li", - "ft" - ], - [ - "▁lif", - "t" - ], - [ - "C", - "N" - ], - [ - "Service", - "s" - ], - [ - "Serv", - "ices" - ], - [ - "ME", - "NT" - ], - [ - "M", - "ENT" - ], - [ - "▁и", - "гра" - ], - [ - "▁иг", - "ра" - ], - [ - "▁", - "игра" - ], - [ - "б", - "ре" - ], - [ - "▁J", - "ord" - ], - [ - "▁Jo", - "rd" - ], - [ - "▁t", - "ec" - ], - [ - "▁te", - "c" - ], - [ - "ш", - "ка" - ], - [ - "▁S", - "up" - ], - [ - "▁Su", - "p" - ], - [ - "▁infl", - "uen" - ], - [ - "▁influ", - "en" - ], - [ - "on", - "ds" - ], - [ - "ond", - "s" - ], - [ - "hand", - "ler" - ], - [ - "handle", - "r" - ], - [ - "▁b", - "anda" - ], - [ - "▁band", - "a" - ], - [ - "▁ban", - "da" - ], - [ - "▁vert", - "ices" - ], - [ - "▁z", - "ap" - ], - [ - "▁za", - "p" - ], - [ - "▁c", - "ord" - ], - [ - "▁cor", - "d" - ], - [ - "▁co", - "rd" - ], - [ - "▁", - "cord" - ], - [ - "al", - "ter" - ], - [ - "alt", - "er" - ], - [ - "ze", - "nia" - ], - [ - "zen", - "ia" - ], - [ - "z", - "enia" - ], - [ - "ât", - "eau" - ], - [ - "âte", - "au" - ], - [ - "▁know", - "ing" - ], - [ - "▁Argent", - "ina" - ], - [ - "Ar", - "ea" - ], - [ - "Are", - "a" - ], - [ - "A", - "rea" - ], - [ - "ан", - "е" - ], - [ - "а", - "не" - ], - [ - "f", - "c" - ], - [ - "=\"", - "/" - ], - [ - "=", - "\"/" - ], - [ - "▁M", - "ik" - ], - [ - "▁Mi", - "k" - ], - [ - "at", - "ă" - ], - [ - "ie", - "ux" - ], - [ - "ieu", - "x" - ], - [ - "▁deutsch", - "en" - ], - [ - "▁deutsche", - "n" - ], - [ - "▁trad", - "itional" - ], - [ - "▁tradition", - "al" - ], - [ - "de", - "code" - ], - [ - "dec", - "ode" - ], - [ - "ve", - "x" - ], - [ - "v", - "ex" - ], - [ - "▁size", - "of" - ], - [ - "▁", - "sizeof" - ], - [ - "▁F", - "un" - ], - [ - "▁Fu", - "n" - ], - [ - "▁", - "Fun" - ], - [ - "▁par", - "ser" - ], - [ - "▁parse", - "r" - ], - [ - "▁", - "parser" - ], - [ - "▁Flor", - "ida" - ], - [ - "▁build", - "ings" - ], - [ - "▁building", - "s" - ], - [ - "▁Man", - "uel" - ], - [ - "ri", - "le" - ], - [ - "ril", - "e" - ], - [ - "r", - "ile" - ], - [ - "▁log", - "ged" - ], - [ - "▁strong", - "ly" - ], - [ - "▁re", - "vol" - ], - [ - "▁rev", - "ol" - ], - [ - "не", - "е" - ], - [ - "xi", - "co" - ], - [ - "xic", - "o" - ], - [ - "x", - "ico" - ], - [ - "▁F", - "air" - ], - [ - "▁Fa", - "ir" - ], - [ - "ca", - "rt" - ], - [ - "car", - "t" - ], - [ - "c", - "art" - ], - [ - "▁W", - "ort" - ], - [ - "▁Wo", - "rt" - ], - [ - "▁Wor", - "t" - ], - [ - "▁Jes", - "us" - ], - [ - "em", - "es" - ], - [ - "eme", - "s" - ], - [ - "e", - "mes" - ], - [ - "sch", - "rift" - ], - [ - "Input", - "Stream" - ], - [ - "wa", - "d" - ], - [ - "w", - "ad" - ], - [ - "▁gran", - "des" - ], - [ - "▁grand", - "es" - ], - [ - "▁grande", - "s" - ], - [ - "▁númer", - "o" - ], - [ - "▁O", - "tto" - ], - [ - "▁Ot", - "to" - ], - [ - "▁Ott", - "o" - ], - [ - "ien", - "tes" - ], - [ - "ient", - "es" - ], - [ - "iente", - "s" - ], - [ - "i", - "entes" - ], - [ - "▁fam", - "ous" - ], - [ - "ol", - "ogne" - ], - [ - "olog", - "ne" - ], - [ - "J", - "e" - ], - [ - "ни", - "ш" - ], - [ - "▁Guer", - "ra" - ], - [ - "bar", - "a" - ], - [ - "ba", - "ra" - ], - [ - "b", - "ara" - ], - [ - "▁c", - "ad" - ], - [ - "▁ca", - "d" - ], - [ - "el", - "ve" - ], - [ - "br", - "ace" - ], - [ - "bra", - "ce" - ], - [ - "b", - "race" - ], - [ - "▁J", - "r" - ], - [ - "st", - "able" - ], - [ - "sta", - "ble" - ], - [ - "stab", - "le" - ], - [ - "s", - "table" - ], - [ - "EC", - "T" - ], - [ - "E", - "CT" - ], - [ - "lem", - "ma" - ], - [ - "med", - "iate" - ], - [ - "medi", - "ate" - ], - [ - "media", - "te" - ], - [ - "▁v", - "in" - ], - [ - "▁vi", - "n" - ], - [ - "▁", - "vin" - ], - [ - "▁mon", - "ument" - ], - [ - "▁c", - "v" - ], - [ - "▁", - "cv" - ], - [ - "▁w", - "inter" - ], - [ - "▁win", - "ter" - ], - [ - "▁trans", - "formation" - ], - [ - "▁transform", - "ation" - ], - [ - "▁N", - "ick" - ], - [ - "▁Nic", - "k" - ], - [ - "▁Ni", - "ck" - ], - [ - "str", - "onom" - ], - [ - "▁f", - "rag" - ], - [ - "▁fr", - "ag" - ], - [ - "▁fra", - "g" - ], - [ - "▁in", - "tel" - ], - [ - "▁int", - "el" - ], - [ - "▁inte", - "l" - ], - [ - "ra", - "ction" - ], - [ - "rac", - "tion" - ], - [ - "ract", - "ion" - ], - [ - "r", - "action" - ], - [ - "▁consider", - "ing" - ], - [ - "▁consid", - "ering" - ], - [ - "▁F", - "le" - ], - [ - "▁Fl", - "e" - ], - [ - "▁", - "ло" - ], - [ - "▁A", - "près" - ], - [ - "▁Ap", - "rès" - ], - [ - "▁A", - "M" - ], - [ - "▁", - "AM" - ], - [ - "▁H", - "um" - ], - [ - "▁Hu", - "m" - ], - [ - "▁m", - "undo" - ], - [ - "NE", - "R" - ], - [ - "N", - "ER" - ], - [ - "▁Be", - "low" - ], - [ - "▁Bel", - "ow" - ], - [ - "▁го", - "рода" - ], - [ - "▁горо", - "да" - ], - [ - "▁город", - "а" - ], - [ - "ar", - "ters" - ], - [ - "art", - "ers" - ], - [ - "arter", - "s" - ], - [ - "arte", - "rs" - ], - [ - "--", - "\"" - ], - [ - "▁П", - "е" - ], - [ - "▁", - "Пе" - ], - [ - "î", - "t" - ], - [ - "▁t", - "xt" - ], - [ - "▁tx", - "t" - ], - [ - "▁", - "txt" - ], - [ - "an", - "gers" - ], - [ - "ang", - "ers" - ], - [ - "ange", - "rs" - ], - [ - "anger", - "s" - ], - [ - "▁t", - "hy" - ], - [ - "▁th", - "y" - ], - [ - "▁", - "thy" - ], - [ - "CL", - "A" - ], - [ - "C", - "LA" - ], - [ - "ib", - "les" - ], - [ - "ible", - "s" - ], - [ - "i", - "bles" - ], - [ - "▁request", - "ed" - ], - [ - "▁requ", - "ested" - ], - [ - "▁Alex", - "and" - ], - [ - "▁fact", - "ors" - ], - [ - "▁fa", - "ctors" - ], - [ - "▁factor", - "s" - ], - [ - "▁produ", - "ces" - ], - [ - "▁produce", - "s" - ], - [ - "ning", - "en" - ], - [ - "n", - "ingen" - ], - [ - "▁со", - "стоя" - ], - [ - "▁optim", - "ization" - ], - [ - "ch", - "od" - ], - [ - "cho", - "d" - ], - [ - "c", - "hod" - ], - [ - ">", - "`" - ], - [ - "▁Wik", - "ip" - ], - [ - "nost", - "i" - ], - [ - "nos", - "ti" - ], - [ - "n", - "osti" - ], - [ - "▁compet", - "ition" - ], - [ - "▁H", - "ann" - ], - [ - "▁Ha", - "nn" - ], - [ - "▁Han", - "n" - ], - [ - "▁z", - "ona" - ], - [ - "▁zo", - "na" - ], - [ - "d", - "c" - ], - [ - "de", - "sign" - ], - [ - "des", - "ign" - ], - [ - "▁Z", - "u" - ], - [ - "▁e", - "spec" - ], - [ - "▁es", - "pec" - ], - [ - "▁espe", - "c" - ], - [ - "▁esp", - "ec" - ], - [ - "equ", - "ality" - ], - [ - "equal", - "ity" - ], - [ - "e", - "quality" - ], - [ - "▁A", - "bb" - ], - [ - "▁Ab", - "b" - ], - [ - "▁develop", - "er" - ], - [ - "▁", - "developer" - ], - [ - "▁\"", - "^" - ], - [ - "▁Sh", - "ort" - ], - [ - "▁Sho", - "rt" - ], - [ - "▁", - "Short" - ], - [ - "▁pl", - "ans" - ], - [ - "▁pla", - "ns" - ], - [ - "▁plan", - "s" - ], - [ - "▁v", - "it" - ], - [ - "▁vi", - "t" - ], - [ - "iz", - "able" - ], - [ - "iza", - "ble" - ], - [ - "burg", - "h" - ], - [ - "bur", - "gh" - ], - [ - "ag", - "em" - ], - [ - "age", - "m" - ], - [ - "a", - "gem" - ], - [ - "▁Pr", - "int" - ], - [ - "▁Pri", - "nt" - ], - [ - "▁Prin", - "t" - ], - [ - "▁", - "Print" - ], - [ - "í", - "v" - ], - [ - "▁su", - "itable" - ], - [ - "▁suit", - "able" - ], - [ - "pi", - "cker" - ], - [ - "pic", - "ker" - ], - [ - "pick", - "er" - ], - [ - "p", - "icker" - ], - [ - "Pro", - "file" - ], - [ - "an", - "dy" - ], - [ - "and", - "y" - ], - [ - "▁qu", - "ot" - ], - [ - "▁", - "quot" - ], - [ - "▁Dur", - "ante" - ], - [ - "▁Durant", - "e" - ], - [ - "▁Fran", - "cia" - ], - [ - "▁Fr", - "ancia" - ], - [ - "▁Franc", - "ia" - ], - [ - "▁t", - "art" - ], - [ - "▁tar", - "t" - ], - [ - "▁ta", - "rt" - ], - [ - "▁V", - "enez" - ], - [ - "▁Ve", - "nez" - ], - [ - "▁Ven", - "ez" - ], - [ - "▁dis", - "patch" - ], - [ - "▁disp", - "atch" - ], - [ - "▁", - "dispatch" - ], - [ - "▁observ", - "ations" - ], - [ - "▁observation", - "s" - ], - [ - "▁", - "ż" - ], - [ - "In", - "valid" - ], - [ - "▁occ", - "urr" - ], - [ - "▁occur", - "r" - ], - [ - "▁oc", - "curr" - ], - [ - "т", - "ки" - ], - [ - "Mem", - "ento" - ], - [ - "M", - "emento" - ], - [ - "▁S", - "yd" - ], - [ - "▁Sy", - "d" - ], - [ - "▁tiem", - "po" - ], - [ - "▁st", - "aff" - ], - [ - "▁sta", - "ff" - ], - [ - "▁se", - "ctions" - ], - [ - "▁section", - "s" - ], - [ - "▁sect", - "ions" - ], - [ - "▁", - "sections" - ], - [ - "▁s", - "sh" - ], - [ - "▁ss", - "h" - ], - [ - "▁", - "ssh" - ], - [ - "▁N", - "GC" - ], - [ - "ë", - "l" - ], - [ - "▁er", - "re" - ], - [ - "▁err", - "e" - ], - [ - "▁div", - "ided" - ], - [ - "▁divide", - "d" - ], - [ - "▁divid", - "ed" - ], - [ - "▁With", - "out" - ], - [ - "▁du", - "rant" - ], - [ - "▁dur", - "ant" - ], - [ - "▁j", - "aar" - ], - [ - "▁ja", - "ar" - ], - [ - "▁", - "−" - ], - [ - "▁sold", - "iers" - ], - [ - "▁soldier", - "s" - ], - [ - "ун", - "к" - ], - [ - "la", - "pse" - ], - [ - "lap", - "se" - ], - [ - "laps", - "e" - ], - [ - "▁Val", - "ley" - ], - [ - "▁Vall", - "ey" - ], - [ - "▁Valle", - "y" - ], - [ - "▁(", - ":" - ], - [ - "▁", - "(:" - ], - [ - "re", - "ra" - ], - [ - "rer", - "a" - ], - [ - "r", - "era" - ], - [ - "▁d", - "ével" - ], - [ - "▁dé", - "vel" - ], - [ - "▁p", - "éri" - ], - [ - "▁pé", - "ri" - ], - [ - "▁calcul", - "ation" - ], - [ - "▁calc", - "ulation" - ], - [ - "▁ke", - "ine" - ], - [ - "▁kein", - "e" - ], - [ - "er", - "tain" - ], - [ - "ert", - "ain" - ], - [ - "erta", - "in" - ], - [ - "▁те", - "ле" - ], - [ - "ру", - "д" - ], - [ - "▁c", - "ul" - ], - [ - "▁cu", - "l" - ], - [ - "▁", - "cul" - ], - [ - "▁cl", - "oth" - ], - [ - "▁clo", - "th" - ], - [ - ";", - "}" - ], - [ - "▁pr", - "zed" - ], - [ - "▁prze", - "d" - ], - [ - "▁prz", - "ed" - ], - [ - "Mon", - "th" - ], - [ - "Mo", - "nth" - ], - [ - "Mont", - "h" - ], - [ - "Pi", - "cker" - ], - [ - "P", - "icker" - ], - [ - "▁S", - "V" - ], - [ - "▁", - "SV" - ], - [ - "ar", - "ian" - ], - [ - "ari", - "an" - ], - [ - "aria", - "n" - ], - [ - "a", - "rian" - ], - [ - "▁Re", - "view" - ], - [ - "▁Rev", - "iew" - ], - [ - "▁h", - "ang" - ], - [ - "▁ha", - "ng" - ], - [ - "▁han", - "g" - ], - [ - "▁", - "hang" - ], - [ - "▁о", - "кт" - ], - [ - "▁ок", - "т" - ], - [ - "▁F", - "ront" - ], - [ - "▁Fr", - "ont" - ], - [ - "▁Fro", - "nt" - ], - [ - "▁", - "Front" - ], - [ - "ot", - "lin" - ], - [ - "▁trans", - "lation" - ], - [ - "▁transl", - "ation" - ], - [ - "▁m", - "odo" - ], - [ - "▁mod", - "o" - ], - [ - "▁mo", - "do" - ], - [ - "▁stat", - "istics" - ], - [ - "▁statist", - "ics" - ], - [ - "▁N", - "ue" - ], - [ - "▁Nu", - "e" - ], - [ - "▁Ни", - "кола" - ], - [ - "NU", - "M" - ], - [ - "N", - "UM" - ], - [ - "▁s", - "hips" - ], - [ - "▁sh", - "ips" - ], - [ - "▁ship", - "s" - ], - [ - "▁", - "ships" - ], - [ - "▁Re", - "port" - ], - [ - "▁Rep", - "ort" - ], - [ - "▁", - "Report" - ], - [ - "{", - "[" - ], - [ - "E", - "ffect" - ], - [ - "ie", - "ri" - ], - [ - "ier", - "i" - ], - [ - "i", - "eri" - ], - [ - "▁par", - "ties" - ], - [ - "▁part", - "ies" - ], - [ - "▁partie", - "s" - ], - [ - "▁parti", - "es" - ], - [ - "pl", - "a" - ], - [ - "p", - "la" - ], - [ - "r", - "w" - ], - [ - "▁Work", - "s" - ], - [ - "▁Wor", - "ks" - ], - [ - "▁i", - "ron" - ], - [ - "▁ir", - "on" - ], - [ - "▁att", - "ract" - ], - [ - "▁attr", - "act" - ], - [ - "▁attra", - "ct" - ], - [ - "▁c", - "ort" - ], - [ - "▁cor", - "t" - ], - [ - "▁co", - "rt" - ], - [ - "n", - "á" - ], - [ - "▁Ste", - "ve" - ], - [ - "▁b", - "ene" - ], - [ - "▁be", - "ne" - ], - [ - "▁ben", - "e" - ], - [ - "то", - "н" - ], - [ - "т", - "он" - ], - [ - "ícul", - "a" - ], - [ - "Tw", - "o" - ], - [ - "T", - "wo" - ], - [ - "▁г", - "лав" - ], - [ - "▁гла", - "в" - ], - [ - "▁V", - "ideo" - ], - [ - "▁", - "Video" - ], - [ - "▁power", - "ful" - ], - [ - "au", - "ch" - ], - [ - "auc", - "h" - ], - [ - "a", - "uch" - ], - [ - "ma", - "nde" - ], - [ - "man", - "de" - ], - [ - "m", - "ande" - ], - [ - "äch", - "st" - ], - [ - "ächs", - "t" - ], - [ - "La", - "t" - ], - [ - "L", - "at" - ], - [ - "▁z", - "na" - ], - [ - "▁zn", - "a" - ], - [ - "▁", - "zna" - ], - [ - "▁fig", - "ures" - ], - [ - "▁figure", - "s" - ], - [ - "▁figur", - "es" - ], - [ - "▁a", - "lias" - ], - [ - "▁al", - "ias" - ], - [ - "▁ali", - "as" - ], - [ - "▁", - "alias" - ], - [ - "ne", - "x" - ], - [ - "n", - "ex" - ], - [ - "▁c", - "ategories" - ], - [ - "▁categ", - "ories" - ], - [ - "▁categor", - "ies" - ], - [ - "▁categorie", - "s" - ], - [ - "▁", - "categories" - ], - [ - "cal", - "led" - ], - [ - "call", - "ed" - ], - [ - "c", - "alled" - ], - [ - "▁Sim", - "ilar" - ], - [ - "▁g", - "irls" - ], - [ - "▁girl", - "s" - ], - [ - "▁gir", - "ls" - ], - [ - "pe", - "z" - ], - [ - "p", - "ez" - ], - [ - "▁j", - "oint" - ], - [ - "▁jo", - "int" - ], - [ - "▁join", - "t" - ], - [ - "▁", - "joint" - ], - [ - "ро", - "го" - ], - [ - "р", - "ого" - ], - [ - "ik", - "en" - ], - [ - "ike", - "n" - ], - [ - "i", - "ken" - ], - [ - "чи", - "на" - ], - [ - "чин", - "а" - ], - [ - "an", - "cia" - ], - [ - "anc", - "ia" - ], - [ - "anci", - "a" - ], - [ - "▁t", - "ijd" - ], - [ - "▁ti", - "jd" - ], - [ - "▁R", - "ose" - ], - [ - "▁Ro", - "se" - ], - [ - "▁Ros", - "e" - ], - [ - "▁alg", - "orithms" - ], - [ - "▁algorithm", - "s" - ], - [ - "▁print", - "ing" - ], - [ - "▁prin", - "ting" - ], - [ - "ne", - "a" - ], - [ - "n", - "ea" - ], - [ - "▁exec", - "uting" - ], - [ - "▁execut", - "ing" - ], - [ - "▁l", - "ambda" - ], - [ - "▁", - "lambda" - ], - [ - "▁reg", - "ional" - ], - [ - "▁region", - "al" - ], - [ - "▁Co", - "pa" - ], - [ - "▁Cop", - "a" - ], - [ - "F", - "oo" - ], - [ - "ph", - "ys" - ], - [ - "phy", - "s" - ], - [ - "z", - "m" - ], - [ - "▁L", - "aur" - ], - [ - "▁La", - "ur" - ], - [ - "▁Lau", - "r" - ], - [ - "▁candid", - "ate" - ], - [ - "▁J", - "a" - ], - [ - "zy", - "m" - ], - [ - "z", - "ym" - ], - [ - "Ex", - "ample" - ], - [ - "▁s", - "piel" - ], - [ - "▁sp", - "iel" - ], - [ - "▁", - "spiel" - ], - [ - "▁д", - "ей" - ], - [ - "▁де", - "й" - ], - [ - "▁", - "дей" - ], - [ - "ne", - "hmen" - ], - [ - "neh", - "men" - ], - [ - "nehm", - "en" - ], - [ - "ke", - "iten" - ], - [ - "keit", - "en" - ], - [ - "▁с", - "ент" - ], - [ - "int", - "ent" - ], - [ - "inte", - "nt" - ], - [ - ".", - "(" - ], - [ - "▁пер", - "вы" - ], - [ - "pr", - "om" - ], - [ - "pro", - "m" - ], - [ - "p", - "rom" - ], - [ - "▁n", - "at" - ], - [ - "▁na", - "t" - ], - [ - "▁", - "nat" - ], - [ - "▁im", - "agine" - ], - [ - "▁imag", - "ine" - ], - [ - "call", - "back" - ], - [ - "com", - "ponents" - ], - [ - "component", - "s" - ], - [ - "with", - "out" - ], - [ - "▁a", - "quest" - ], - [ - "▁aqu", - "est" - ], - [ - "Su", - "pport" - ], - [ - "Supp", - "ort" - ], - [ - "▁respons", - "ible" - ], - [ - "▁j", - "ego" - ], - [ - "▁je", - "go" - ], - [ - "l", - "j" - ], - [ - "wi", - "ll" - ], - [ - "w", - "ill" - ], - [ - "le", - "an" - ], - [ - "lea", - "n" - ], - [ - "el", - "and" - ], - [ - "ela", - "nd" - ], - [ - "e", - "land" - ], - [ - "olog", - "ía" - ], - [ - "m", - "c" - ], - [ - "Pro", - "xy" - ], - [ - "▁o", - "cup" - ], - [ - "▁oc", - "up" - ], - [ - "▁на", - "ходи" - ], - [ - "▁r", - "ub" - ], - [ - "▁ru", - "b" - ], - [ - "ні", - "в" - ], - [ - "н", - "ів" - ], - [ - "▁F", - "all" - ], - [ - "▁Fa", - "ll" - ], - [ - "▁Fal", - "l" - ], - [ - "am", - "os" - ], - [ - "amo", - "s" - ], - [ - "a", - "mos" - ], - [ - "▁E", - "p" - ], - [ - "en", - "tre" - ], - [ - "ent", - "re" - ], - [ - "entr", - "e" - ], - [ - "fa", - "il" - ], - [ - "f", - "ail" - ], - [ - "W", - "orld" - ], - [ - "▁Ed", - "itor" - ], - [ - "▁Edit", - "or" - ], - [ - "▁", - "Editor" - ], - [ - "▁ex", - "pos" - ], - [ - "▁exp", - "os" - ], - [ - "▁f", - "inds" - ], - [ - "▁find", - "s" - ], - [ - "▁fin", - "ds" - ], - [ - "▁C", - "ulture" - ], - [ - "▁Cult", - "ure" - ], - [ - "▁", - "Culture" - ], - [ - "LE", - "ASE" - ], - [ - "▁m", - "ovie" - ], - [ - "▁mov", - "ie" - ], - [ - "▁mo", - "vie" - ], - [ - "▁", - "movie" - ], - [ - "<", - "=" - ], - [ - "omet", - "ric" - ], - [ - "o", - "metric" - ], - [ - "el", - "ing" - ], - [ - "eli", - "ng" - ], - [ - "elin", - "g" - ], - [ - "e", - "ling" - ], - [ - "numer", - "able" - ], - [ - "ou", - "rd" - ], - [ - "our", - "d" - ], - [ - "o", - "urd" - ], - [ - "▁S", - "ea" - ], - [ - "▁Se", - "a" - ], - [ - "▁b", - "ild" - ], - [ - "▁bi", - "ld" - ], - [ - "▁bil", - "d" - ], - [ - "▁", - "bild" - ], - [ - "▁о", - "ста" - ], - [ - "▁ос", - "та" - ], - [ - "▁ост", - "а" - ], - [ - "bl", - "o" - ], - [ - "b", - "lo" - ], - [ - "▁l", - "ose" - ], - [ - "▁lo", - "se" - ], - [ - "▁los", - "e" - ], - [ - "▁", - "lose" - ], - [ - "at", - "eurs" - ], - [ - "ate", - "urs" - ], - [ - "ateur", - "s" - ], - [ - "ou", - "red" - ], - [ - "our", - "ed" - ], - [ - "oure", - "d" - ], - [ - "o", - "ured" - ], - [ - "▁B", - "att" - ], - [ - "▁Ba", - "tt" - ], - [ - "▁Bat", - "t" - ], - [ - "()", - ";\r" - ], - [ - "();", - "\r" - ], - [ - "(", - ");\r" - ], - [ - "▁p", - "oz" - ], - [ - "▁po", - "z" - ], - [ - "pos", - "ts" - ], - [ - "post", - "s" - ], - [ - "pe", - "nd" - ], - [ - "pen", - "d" - ], - [ - "p", - "end" - ], - [ - "cer", - "tain" - ], - [ - "cert", - "ain" - ], - [ - "c", - "ertain" - ], - [ - "ни", - "ком" - ], - [ - "ник", - "ом" - ], - [ - "J", - "ust" - ], - [ - "web", - "kit" - ], - [ - "dem", - "ás" - ], - [ - "~~", - "~~" - ], - [ - "▁indic", - "ates" - ], - [ - "▁indicate", - "s" - ], - [ - "▁p", - "ark" - ], - [ - "▁par", - "k" - ], - [ - "▁", - "park" - ], - [ - "ri", - "que" - ], - [ - "r", - "ique" - ], - [ - "vo", - "d" - ], - [ - "v", - "od" - ], - [ - "▁Ch", - "amp" - ], - [ - "▁Cham", - "p" - ], - [ - "▁Cha", - "mp" - ], - [ - "ft", - "ware" - ], - [ - "OP", - "T" - ], - [ - "O", - "PT" - ], - [ - "dj", - "ango" - ], - [ - "d", - "jango" - ], - [ - "re", - "lease" - ], - [ - "▁", - "È" - ], - [ - "S", - "R" - ], - [ - "▁polit", - "ician" - ], - [ - "▁r", - "oi" - ], - [ - "▁ro", - "i" - ], - [ - "at", - "uren" - ], - [ - "atur", - "en" - ], - [ - "ature", - "n" - ], - [ - "atu", - "ren" - ], - [ - "▁Deutsch", - "e" - ], - [ - "ta", - "gon" - ], - [ - "tag", - "on" - ], - [ - "t", - "agon" - ], - [ - "▁M", - "ov" - ], - [ - "▁Mo", - "v" - ], - [ - "ob", - "ierno" - ], - [ - "obi", - "erno" - ], - [ - "▁da", - "ß" - ], - [ - "ut", - "her" - ], - [ - "uth", - "er" - ], - [ - "u", - "ther" - ], - [ - "in", - "di" - ], - [ - "ind", - "i" - ], - [ - "▁Wik", - "ipedia" - ], - [ - "▁Wikip", - "edia" - ], - [ - "▁Wikiped", - "ia" - ], - [ - "▁a", - "nos" - ], - [ - "▁an", - "os" - ], - [ - "▁ano", - "s" - ], - [ - "▁", - "anos" - ], - [ - "▁ob", - "serve" - ], - [ - "▁obser", - "ve" - ], - [ - "▁observ", - "e" - ], - [ - "▁obs", - "erve" - ], - [ - "el", - "ly" - ], - [ - "ell", - "y" - ], - [ - "▁rail", - "way" - ], - [ - "at", - "on" - ], - [ - "ato", - "n" - ], - [ - "a", - "ton" - ], - [ - "▁e", - "num" - ], - [ - "▁en", - "um" - ], - [ - "▁", - "enum" - ], - [ - "hu", - "s" - ], - [ - "h", - "us" - ], - [ - "▁in", - "hab" - ], - [ - "P", - "si" - ], - [ - "oir", - "e" - ], - [ - "oi", - "re" - ], - [ - "o", - "ire" - ], - [ - "▁Х", - "о" - ], - [ - "▁S", - "pace" - ], - [ - "▁Sp", - "ace" - ], - [ - "▁", - "Space" - ], - [ - "▁Ар", - "хи" - ], - [ - "▁an", - "terior" - ], - [ - "▁ante", - "rior" - ], - [ - "▁", - "Ł" - ], - [ - "is", - "ons" - ], - [ - "ison", - "s" - ], - [ - "iso", - "ns" - ], - [ - "I", - "l" - ], - [ - "▁am", - "éric" - ], - [ - "la", - "ps" - ], - [ - "lap", - "s" - ], - [ - "l", - "aps" - ], - [ - "▁B", - "BC" - ], - [ - "▁BB", - "C" - ], - [ - "QUE", - "ST" - ], - [ - "Con", - "stra" - ], - [ - "Const", - "ra" - ], - [ - "Cons", - "tra" - ], - [ - "mon", - "t" - ], - [ - "mo", - "nt" - ], - [ - "m", - "ont" - ], - [ - "ä", - "ft" - ], - [ - "▁ä", - "ven" - ], - [ - "ub", - "ern" - ], - [ - "ube", - "rn" - ], - [ - "uber", - "n" - ], - [ - "u", - "bern" - ], - [ - "<", - "!--" - ], - [ - "▁c", - "oding" - ], - [ - "▁co", - "ding" - ], - [ - "▁cod", - "ing" - ], - [ - "the", - "ory" - ], - [ - "at", - "hed" - ], - [ - "ath", - "ed" - ], - [ - "▁Ar", - "be" - ], - [ - "▁ш", - "и" - ], - [ - "▁", - "ши" - ], - [ - "for", - "Each" - ], - [ - "om", - "orphism" - ], - [ - "omorph", - "ism" - ], - [ - "det", - "ails" - ], - [ - "detail", - "s" - ], - [ - "ach", - "sen" - ], - [ - "in", - "tegr" - ], - [ - "int", - "egr" - ], - [ - "inte", - "gr" - ], - [ - "V", - "or" - ], - [ - "Un", - "known" - ], - [ - "ace", - "ae" - ], - [ - "a", - "ceae" - ], - [ - "in", - "ue" - ], - [ - "inu", - "e" - ], - [ - "es", - "ome" - ], - [ - "eso", - "me" - ], - [ - "e", - "some" - ], - [ - "▁F", - "ir" - ], - [ - "ch", - "ain" - ], - [ - "cha", - "in" - ], - [ - "▁extrem", - "ely" - ], - [ - "▁extreme", - "ly" - ], - [ - "mult", - "icol" - ], - [ - "multi", - "col" - ], - [ - "▁Sw", - "ift" - ], - [ - "▁address", - "es" - ], - [ - "▁addr", - "esses" - ], - [ - "hs", - "pace" - ], - [ - "h", - "space" - ], - [ - "▁Ro", - "ger" - ], - [ - "▁Rog", - "er" - ], - [ - "▁d", - "essen" - ], - [ - "▁des", - "sen" - ], - [ - "▁dess", - "en" - ], - [ - "▁con", - "sequ" - ], - [ - "▁cons", - "equ" - ], - [ - "▁conse", - "qu" - ], - [ - "ual", - "mente" - ], - [ - "▁Pre", - "mier" - ], - [ - "▁Prem", - "ier" - ], - [ - "▁Re", - "cord" - ], - [ - "▁Rec", - "ord" - ], - [ - "▁", - "Record" - ], - [ - "▁B", - "ron" - ], - [ - "▁Br", - "on" - ], - [ - "▁Bro", - "n" - ], - [ - "ki", - "r" - ], - [ - "k", - "ir" - ], - [ - "se", - "x" - ], - [ - "s", - "ex" - ], - [ - "in", - "tern" - ], - [ - "int", - "ern" - ], - [ - "inter", - "n" - ], - [ - "inte", - "rn" - ], - [ - "▁benef", - "it" - ], - [ - "▁bene", - "fit" - ], - [ - "um", - "en" - ], - [ - "ume", - "n" - ], - [ - "u", - "men" - ], - [ - "▁be", - "coming" - ], - [ - "▁bec", - "oming" - ], - [ - "▁becom", - "ing" - ], - [ - "▁l", - "ig" - ], - [ - "▁li", - "g" - ], - [ - "▁", - "lig" - ], - [ - "▁pop", - "ula" - ], - [ - "▁popul", - "a" - ], - [ - "os", - "c" - ], - [ - "o", - "sc" - ], - [ - "▁c", - "iv" - ], - [ - "▁ci", - "v" - ], - [ - "▁great", - "est" - ], - [ - "▁pro", - "ces" - ], - [ - "▁proc", - "es" - ], - [ - "]", - "*" - ], - [ - "▁ме", - "сто" - ], - [ - "▁мест", - "о" - ], - [ - "▁'", - "$" - ], - [ - "▁", - "'$" - ], - [ - "he", - "ll" - ], - [ - "hel", - "l" - ], - [ - "h", - "ell" - ], - [ - "(\"", - "\\" - ], - [ - "(", - "\"\\" - ], - [ - "▁n", - "ine" - ], - [ - "▁ni", - "ne" - ], - [ - "▁nin", - "e" - ], - [ - "▁F", - "ac" - ], - [ - "▁Fa", - "c" - ], - [ - "ul", - "pt" - ], - [ - "ulp", - "t" - ], - [ - "jo", - "urs" - ], - [ - "jou", - "rs" - ], - [ - "j", - "ours" - ], - [ - "▁C", - "opy" - ], - [ - "▁Co", - "py" - ], - [ - "▁Cop", - "y" - ], - [ - "▁", - "Copy" - ], - [ - "▁activ", - "ities" - ], - [ - "▁Dem", - "ocr" - ], - [ - "▁Demo", - "cr" - ], - [ - "E", - "s" - ], - [ - "Su", - "ccess" - ], - [ - "▁E", - "sta" - ], - [ - "▁Est", - "a" - ], - [ - "▁Es", - "ta" - ], - [ - "it", - "ul" - ], - [ - "itu", - "l" - ], - [ - "is", - "ti" - ], - [ - "ist", - "i" - ], - [ - "▁B", - "ed" - ], - [ - "▁Be", - "d" - ], - [ - "ja", - "s" - ], - [ - "j", - "as" - ], - [ - "▁т", - "ем" - ], - [ - "▁те", - "м" - ], - [ - "▁", - "тем" - ], - [ - "▁H", - "ung" - ], - [ - "▁Hu", - "ng" - ], - [ - "▁Hun", - "g" - ], - [ - "G", - "ame" - ], - [ - "▁he", - "av" - ], - [ - "onn", - "ées" - ], - [ - "▁branch", - "es" - ], - [ - "▁bran", - "ches" - ], - [ - "bo", - "rg" - ], - [ - "bor", - "g" - ], - [ - "b", - "org" - ], - [ - "▁v", - "l" - ], - [ - "▁", - "vl" - ], - [ - "▁slow", - "ly" - ], - [ - "F", - "a" - ], - [ - "Go", - "ogle" - ], - [ - "em", - "i" - ], - [ - "e", - "mi" - ], - [ - "▁circumst", - "ances" - ], - [ - "▁'", - "%" - ], - [ - "▁U", - "nd" - ], - [ - "▁Un", - "d" - ], - [ - "▁", - "Und" - ], - [ - "▁Vict", - "oria" - ], - [ - "▁Victor", - "ia" - ], - [ - "▁T", - "yp" - ], - [ - "▁Ty", - "p" - ], - [ - "▁", - "Typ" - ], - [ - "rupt", - "ed" - ], - [ - "rup", - "ted" - ], - [ - "▁rel", - "ativ" - ], - [ - "▁s", - "lo" - ], - [ - "▁sl", - "o" - ], - [ - "▁p", - "adre" - ], - [ - "▁pad", - "re" - ], - [ - "▁d", - "aily" - ], - [ - "▁da", - "ily" - ], - [ - "▁dai", - "ly" - ], - [ - "▁or", - "th" - ], - [ - "▁ort", - "h" - ], - [ - "▁", - "orth" - ], - [ - "чни", - "й" - ], - [ - "ч", - "ний" - ], - [ - "▁fran", - "zös" - ], - [ - "▁t", - "eil" - ], - [ - "▁te", - "il" - ], - [ - "▁", - "teil" - ], - [ - "▁Se", - "curity" - ], - [ - "▁Sec", - "urity" - ], - [ - "▁", - "Security" - ], - [ - "or", - "don" - ], - [ - "ord", - "on" - ], - [ - "ordo", - "n" - ], - [ - "▁s", - "weet" - ], - [ - "▁swe", - "et" - ], - [ - "SI", - "ZE" - ], - [ - "▁C", - "el" - ], - [ - "▁Ce", - "l" - ], - [ - "èt", - "res" - ], - [ - "è", - "tres" - ], - [ - "om", - "mes" - ], - [ - "omm", - "es" - ], - [ - "▁с", - "і" - ], - [ - "▁", - "сі" - ], - [ - "▁effort", - "s" - ], - [ - "ą", - "z" - ], - [ - "▁oh", - "ne" - ], - [ - "▁South", - "ern" - ], - [ - "▁Sou", - "thern" - ], - [ - "▁approxim", - "ately" - ], - [ - "▁approximate", - "ly" - ], - [ - "це", - "н" - ], - [ - "ц", - "ен" - ], - [ - "('", - "#" - ], - [ - "▁s", - "aving" - ], - [ - "▁sa", - "ving" - ], - [ - "▁sav", - "ing" - ], - [ - "nb", - "sp" - ], - [ - "▁trans", - "late" - ], - [ - "▁transl", - "ate" - ], - [ - "▁", - "translate" - ], - [ - "▁Î", - "n" - ], - [ - "mem", - "ber" - ], - [ - "m", - "ember" - ], - [ - "▁l", - "aws" - ], - [ - "▁la", - "ws" - ], - [ - "▁law", - "s" - ], - [ - "▁ж", - "ен" - ], - [ - "▁же", - "н" - ], - [ - "▁", - "жен" - ], - [ - "▁си", - "сте" - ], - [ - "t", - "c" - ], - [ - ">", - "\\" - ], - [ - "el", - "te" - ], - [ - "elt", - "e" - ], - [ - "▁e", - "hem" - ], - [ - "▁con", - "trad" - ], - [ - "▁cont", - "rad" - ], - [ - "▁contr", - "ad" - ], - [ - "▁contra", - "d" - ], - [ - "▁ру", - "с" - ], - [ - "▁р", - "ус" - ], - [ - "▁", - "рус" - ], - [ - "ь", - "я" - ], - [ - "▁M", - "iddle" - ], - [ - "▁", - "Middle" - ], - [ - "qu", - "ip" - ], - [ - "qui", - "p" - ], - [ - "▁c", - "hez" - ], - [ - "▁ch", - "ez" - ], - [ - "▁che", - "z" - ], - [ - "▁", - "chez" - ], - [ - "Field", - "s" - ], - [ - "▁per", - "mit" - ], - [ - "▁perm", - "it" - ], - [ - "ik", - "el" - ], - [ - "ike", - "l" - ], - [ - "i", - "kel" - ], - [ - "▁w", - "ir" - ], - [ - "▁t", - "rial" - ], - [ - "▁tr", - "ial" - ], - [ - "▁tri", - "al" - ], - [ - "▁ver", - "schied" - ], - [ - "▁versch", - "ied" - ], - [ - "▁ф", - "ев" - ], - [ - "▁фе", - "в" - ], - [ - "▁m", - "ale" - ], - [ - "▁ma", - "le" - ], - [ - "▁mal", - "e" - ], - [ - "▁", - "male" - ], - [ - "▁я", - "зы" - ], - [ - "▁ny", - "el" - ], - [ - "ak", - "ter" - ], - [ - "akt", - "er" - ], - [ - "akte", - "r" - ], - [ - "a", - "kter" - ], - [ - "▁den", - "omin" - ], - [ - "cept", - "or" - ], - [ - "cep", - "tor" - ], - [ - "▁W", - "at" - ], - [ - "▁Wa", - "t" - ], - [ - "▁f", - "ino" - ], - [ - "▁fin", - "o" - ], - [ - "▁fi", - "no" - ], - [ - "▁XV", - "III" - ], - [ - "▁XVI", - "II" - ], - [ - "▁XVII", - "I" - ], - [ - "ry", - "ption" - ], - [ - "rypt", - "ion" - ], - [ - "de", - "sc" - ], - [ - "des", - "c" - ], - [ - "d", - "esc" - ], - [ - "ap", - "a" - ], - [ - "a", - "pa" - ], - [ - "ле", - "на" - ], - [ - "лен", - "а" - ], - [ - "л", - "ена" - ], - [ - "▁k", - "ol" - ], - [ - "▁ko", - "l" - ], - [ - "▁", - "kol" - ], - [ - "▁", - "Є" - ], - [ - "▁dep", - "endent" - ], - [ - "▁depend", - "ent" - ], - [ - "▁", - "dependent" - ], - [ - "▁C", - "ra" - ], - [ - "▁Cr", - "a" - ], - [ - "▁st", - "orm" - ], - [ - "▁stor", - "m" - ], - [ - "▁sto", - "rm" - ], - [ - "▁Г", - "ер" - ], - [ - "▁Ге", - "р" - ], - [ - "▁p", - "ipe" - ], - [ - "▁pi", - "pe" - ], - [ - "▁pip", - "e" - ], - [ - "▁", - "pipe" - ], - [ - "▁att", - "ended" - ], - [ - "▁attend", - "ed" - ], - [ - "▁v", - "ita" - ], - [ - "▁vi", - "ta" - ], - [ - "▁vit", - "a" - ], - [ - "uz", - "ione" - ], - [ - "u", - "zione" - ], - [ - "cz", - "as" - ], - [ - "cza", - "s" - ], - [ - "c", - "zas" - ], - [ - "on", - "da" - ], - [ - "ond", - "a" - ], - [ - "▁b", - "old" - ], - [ - "▁bo", - "ld" - ], - [ - "▁bol", - "d" - ], - [ - "▁", - "bold" - ], - [ - "Column", - "s" - ], - [ - "ic", - "ió" - ], - [ - "ici", - "ó" - ], - [ - "i", - "ció" - ], - [ - "▁c", - "zę" - ], - [ - "▁cz", - "ę" - ], - [ - "▁из", - "вест" - ], - [ - "▁Cl", - "oud" - ], - [ - "▁Clo", - "ud" - ], - [ - "▁", - "Cloud" - ], - [ - "▁w", - "arm" - ], - [ - "▁war", - "m" - ], - [ - "▁wa", - "rm" - ], - [ - "▁с", - "ы" - ], - [ - "▁", - "сы" - ], - [ - "▁с", - "те" - ], - [ - "▁ст", - "е" - ], - [ - "▁", - "сте" - ], - [ - "▁produ", - "cer" - ], - [ - "▁produce", - "r" - ], - [ - "▁Lud", - "wig" - ], - [ - "▁Nor", - "thern" - ], - [ - "▁North", - "ern" - ], - [ - "ł", - "ą" - ], - [ - "NS", - "String" - ], - [ - "▁H", - "ad" - ], - [ - "▁Ha", - "d" - ], - [ - "▁И", - "ван" - ], - [ - "▁E", - "g" - ], - [ - "▁I", - "mp" - ], - [ - "▁Im", - "p" - ], - [ - "▁", - "Imp" - ], - [ - "ш", - "і" - ], - [ - "▁A", - "uch" - ], - [ - "▁Au", - "ch" - ], - [ - "то", - "к" - ], - [ - "т", - "ок" - ], - [ - "▁H", - "it" - ], - [ - "▁Hi", - "t" - ], - [ - "▁qu", - "ien" - ], - [ - "▁qui", - "en" - ], - [ - "▁de", - "partment" - ], - [ - "▁depart", - "ment" - ], - [ - "▁erh", - "ielt" - ], - [ - "▁u", - "i" - ], - [ - "▁", - "ui" - ], - [ - "▁S", - "pr" - ], - [ - "▁Sp", - "r" - ], - [ - "се", - "р" - ], - [ - "с", - "ер" - ], - [ - "ou", - "rt" - ], - [ - "our", - "t" - ], - [ - "o", - "urt" - ], - [ - "▁Ste", - "phen" - ], - [ - "▁Step", - "hen" - ], - [ - "▁Steph", - "en" - ], - [ - "te", - "am" - ], - [ - "▁z", - "ip" - ], - [ - "▁", - "zip" - ], - [ - "▁B", - "ang" - ], - [ - "▁Ba", - "ng" - ], - [ - "▁Ban", - "g" - ], - [ - "▁grow", - "th" - ], - [ - "▁j", - "am" - ], - [ - "▁ja", - "m" - ], - [ - "▁K", - "ais" - ], - [ - "▁Ka", - "is" - ], - [ - "b", - "matrix" - ], - [ - "▁As", - "ia" - ], - [ - "▁rég", - "ion" - ], - [ - "=", - "/" - ], - [ - "▁Pac", - "ific" - ], - [ - "▁author", - "ity" - ], - [ - "▁#", - "[" - ], - [ - "та", - "ми" - ], - [ - "там", - "и" - ], - [ - "▁every", - "one" - ], - [ - "▁att", - "end" - ], - [ - "▁atte", - "nd" - ], - [ - "▁", - "attend" - ], - [ - "▁tim", - "estamp" - ], - [ - "▁", - "timestamp" - ], - [ - "▁t", - "ries" - ], - [ - "▁tr", - "ies" - ], - [ - "▁tri", - "es" - ], - [ - "▁f", - "f" - ], - [ - "▁", - "ff" - ], - [ - "ше", - "й" - ], - [ - "ш", - "ей" - ], - [ - "▁develop", - "ing" - ], - [ - "ol", - "t" - ], - [ - "o", - "lt" - ], - [ - "up", - "s" - ], - [ - "u", - "ps" - ], - [ - "▁moment", - "o" - ], - [ - "▁mom", - "ento" - ], - [ - "▁S", - "ain" - ], - [ - "▁Sa", - "in" - ], - [ - "Te", - "rm" - ], - [ - "T", - "erm" - ], - [ - "▁c", - "elle" - ], - [ - "▁ce", - "lle" - ], - [ - "▁cell", - "e" - ], - [ - "▁cel", - "le" - ], - [ - "G", - "R" - ], - [ - "Mo", - "use" - ], - [ - "M", - "ouse" - ], - [ - "▁челов", - "ек" - ], - [ - "▁челове", - "к" - ], - [ - "▁Col", - "lection" - ], - [ - "▁Coll", - "ection" - ], - [ - "▁Collect", - "ion" - ], - [ - "▁", - "Collection" - ], - [ - "ât", - "re" - ], - [ - "â", - "tre" - ], - [ - "▁W", - "rite" - ], - [ - "▁Writ", - "e" - ], - [ - "▁", - "Write" - ], - [ - "▁P", - "om" - ], - [ - "▁Po", - "m" - ], - [ - "[", - "-" - ], - [ - "Ca", - "m" - ], - [ - "C", - "am" - ], - [ - "▁loc", - "ations" - ], - [ - "▁location", - "s" - ], - [ - "▁J", - "son" - ], - [ - "▁", - "Json" - ], - [ - "el", - "led" - ], - [ - "ell", - "ed" - ], - [ - "elle", - "d" - ], - [ - "select", - "or" - ], - [ - "sel", - "ector" - ], - [ - "re", - "peat" - ], - [ - "ct", - "ors" - ], - [ - "ctor", - "s" - ], - [ - "ot", - "te" - ], - [ - "ott", - "e" - ], - [ - "o", - "tte" - ], - [ - "ви", - "зи" - ], - [ - "änd", - "e" - ], - [ - "än", - "de" - ], - [ - "ä", - "nde" - ], - [ - "▁ach", - "ieved" - ], - [ - "▁achieve", - "d" - ], - [ - "▁achiev", - "ed" - ], - [ - "▁main", - "ly" - ], - [ - "____", - "____" - ], - [ - "!", - ")" - ], - [ - "▁явля", - "ется" - ], - [ - "▁c", - "ities" - ], - [ - "▁ci", - "ties" - ], - [ - "▁cit", - "ies" - ], - [ - "sing", - "le" - ], - [ - "sin", - "gle" - ], - [ - "г", - "ре" - ], - [ - "▁P", - "ak" - ], - [ - "▁Pa", - "k" - ], - [ - "▁allow", - "ing" - ], - [ - "▁allo", - "wing" - ], - [ - "fer", - "red" - ], - [ - "▁а", - "пре" - ], - [ - "хо", - "дя" - ], - [ - "ход", - "я" - ], - [ - "▁brow", - "sers" - ], - [ - "▁browser", - "s" - ], - [ - "▁es", - "crit" - ], - [ - "▁esc", - "rit" - ], - [ - "▁escri", - "t" - ], - [ - "▁mount", - "ain" - ], - [ - "▁network", - "s" - ], - [ - "▁net", - "works" - ], - [ - "ki", - "nd" - ], - [ - "kin", - "d" - ], - [ - "k", - "ind" - ], - [ - "li", - "ver" - ], - [ - "live", - "r" - ], - [ - "liv", - "er" - ], - [ - "l", - "iver" - ], - [ - "▁cl", - "osing" - ], - [ - "▁clos", - "ing" - ], - [ - "▁clo", - "sing" - ], - [ - "▁sk", - "ip" - ], - [ - "▁ski", - "p" - ], - [ - "▁", - "skip" - ], - [ - "ú", - "t" - ], - [ - "▁d", - "uration" - ], - [ - "▁dur", - "ation" - ], - [ - "▁", - "duration" - ], - [ - "ét", - "ait" - ], - [ - "éta", - "it" - ], - [ - "é", - "tait" - ], - [ - "▁s", - "cr" - ], - [ - "▁sc", - "r" - ], - [ - "▁", - "scr" - ], - [ - "B", - "B" - ], - [ - "ór", - "ia" - ], - [ - "ó", - "ria" - ], - [ - "▁K", - "ultur" - ], - [ - "▁Kult", - "ur" - ], - [ - "▁output", - "s" - ], - [ - "multi", - "column" - ], - [ - "multicol", - "umn" - ], - [ - "▁bel", - "ongs" - ], - [ - "▁belong", - "s" - ], - [ - "fe", - "ature" - ], - [ - "uc", - "ky" - ], - [ - "uck", - "y" - ], - [ - "▁j", - "uli" - ], - [ - "▁ju", - "li" - ], - [ - "▁jul", - "i" - ], - [ - "▁рай", - "она" - ], - [ - "▁райо", - "на" - ], - [ - "▁район", - "а" - ], - [ - "з", - "во" - ], - [ - "fact", - "ory" - ], - [ - "factor", - "y" - ], - [ - "f", - "actory" - ], - [ - "Fun", - "c" - ], - [ - "F", - "unc" - ], - [ - "▁ut", - "ter" - ], - [ - "▁", - "utter" - ], - [ - "▁TO", - "DO" - ], - [ - "▁o", - "bt" - ], - [ - "▁ob", - "t" - ], - [ - "ateg", - "ories" - ], - [ - "ategor", - "ies" - ], - [ - "▁com", - "bine" - ], - [ - "▁comb", - "ine" - ], - [ - "▁combin", - "e" - ], - [ - "▁W", - "all" - ], - [ - "▁Wal", - "l" - ], - [ - "▁Wa", - "ll" - ], - [ - "▁under", - "lying" - ], - [ - "ar", - "ono" - ], - [ - "aron", - "o" - ], - [ - "aro", - "no" - ], - [ - "▁P", - "rote" - ], - [ - "▁Pro", - "te" - ], - [ - "▁Pr", - "ote" - ], - [ - "c", - "ów" - ], - [ - "st", - "an" - ], - [ - "sta", - "n" - ], - [ - "s", - "tan" - ], - [ - "▁G", - "ew" - ], - [ - "▁Ge", - "w" - ], - [ - "▁opt", - "imal" - ], - [ - "▁optim", - "al" - ], - [ - "▁Archiv", - "link" - ], - [ - "▁S", - "cript" - ], - [ - "▁", - "Script" - ], - [ - "▁destroy", - "ed" - ], - [ - "х", - "е" - ], - [ - "▁Fire", - "fox" - ], - [ - "▁s", - "ole" - ], - [ - "▁so", - "le" - ], - [ - "▁sol", - "e" - ], - [ - "▁", - "sole" - ], - [ - "La", - "yer" - ], - [ - "L", - "ayer" - ], - [ - "т", - "ку" - ], - [ - "▁st", - "ores" - ], - [ - "▁stor", - "es" - ], - [ - "▁store", - "s" - ], - [ - "▁sto", - "res" - ], - [ - "▁dis", - "plays" - ], - [ - "▁display", - "s" - ], - [ - "is", - "hing" - ], - [ - "ish", - "ing" - ], - [ - "ishi", - "ng" - ], - [ - "▁о", - "ст" - ], - [ - "▁ос", - "т" - ], - [ - "▁inst", - "ant" - ], - [ - "▁el", - "ő" - ], - [ - "▁habit", - "antes" - ], - [ - "▁Ein", - "wo" - ], - [ - "▁a", - "li" - ], - [ - "▁al", - "i" - ], - [ - "▁", - "ali" - ], - [ - "▁ER", - "ROR" - ], - [ - "▁ERR", - "OR" - ], - [ - "▁", - "ERROR" - ], - [ - "▁a", - "head" - ], - [ - "▁ah", - "ead" - ], - [ - "▁go", - "als" - ], - [ - "▁goal", - "s" - ], - [ - "▁m", - "ár" - ], - [ - "▁má", - "r" - ], - [ - "▁s", - "ą" - ], - [ - "▁m", - "art" - ], - [ - "▁ma", - "rt" - ], - [ - "▁mar", - "t" - ], - [ - "▁", - "mart" - ], - [ - "мини", - "стра" - ], - [ - "F", - "r" - ], - [ - "▁V", - "illa" - ], - [ - "▁Vill", - "a" - ], - [ - "▁Vi", - "lla" - ], - [ - "▁Vil", - "la" - ], - [ - "▁M", - "arc" - ], - [ - "▁Mar", - "c" - ], - [ - "▁Ma", - "rc" - ], - [ - "ro", - "py" - ], - [ - "rop", - "y" - ], - [ - "r", - "opy" - ], - [ - "ag", - "ram" - ], - [ - "agr", - "am" - ], - [ - "a", - "gram" - ], - [ - "ha", - "pe" - ], - [ - "h", - "ape" - ], - [ - "ме", - "й" - ], - [ - "м", - "ей" - ], - [ - "▁A", - "L" - ], - [ - "▁", - "AL" - ], - [ - "▁conne", - "xes" - ], - [ - "▁En", - "tre" - ], - [ - "▁Ent", - "re" - ], - [ - "St", - "ep" - ], - [ - "Ste", - "p" - ], - [ - "лі", - "в" - ], - [ - "л", - "ів" - ], - [ - "▁De", - "ath" - ], - [ - "▁r", - "ise" - ], - [ - "▁ris", - "e" - ], - [ - "▁ri", - "se" - ], - [ - "▁f", - "os" - ], - [ - "▁fo", - "s" - ], - [ - "▁l", - "ev" - ], - [ - "▁le", - "v" - ], - [ - "▁", - "lev" - ], - [ - "ga", - "be" - ], - [ - "g", - "abe" - ], - [ - "▁b", - "roke" - ], - [ - "▁br", - "oke" - ], - [ - "▁bro", - "ke" - ], - [ - "product", - "s" - ], - [ - "▁m", - "edi" - ], - [ - "▁me", - "di" - ], - [ - "▁med", - "i" - ], - [ - "▁", - "medi" - ], - [ - "▁dis", - "pon" - ], - [ - "▁disp", - "on" - ], - [ - "Pack", - "age" - ], - [ - "P", - "ackage" - ], - [ - "Image", - "View" - ], - [ - "▁N", - "ag" - ], - [ - "▁Na", - "g" - ], - [ - "uj", - "ą" - ], - [ - "u", - "ją" - ], - [ - "W", - "ord" - ], - [ - "▁k", - "ole" - ], - [ - "▁ko", - "le" - ], - [ - "▁kol", - "e" - ], - [ - "ße", - "r" - ], - [ - "ß", - "er" - ], - [ - ")`", - "." - ], - [ - ")", - "`." - ], - [ - "▁r", - "ol" - ], - [ - "▁ro", - "l" - ], - [ - "▁", - "rol" - ], - [ - "▁", - "í" - ], - [ - "те", - "й" - ], - [ - "т", - "ей" - ], - [ - "Pro", - "gress" - ], - [ - "be", - "an" - ], - [ - "▁s", - "empre" - ], - [ - "▁sem", - "pre" - ], - [ - "State", - "ment" - ], - [ - "Stat", - "ement" - ], - [ - "UP", - "DATE" - ], - [ - "▁mond", - "iale" - ], - [ - "▁w", - "rapper" - ], - [ - "▁wr", - "apper" - ], - [ - "▁wra", - "pper" - ], - [ - "▁wrap", - "per" - ], - [ - "▁", - "wrapper" - ], - [ - "▁C", - "hart" - ], - [ - "▁Ch", - "art" - ], - [ - "▁Char", - "t" - ], - [ - "▁Cha", - "rt" - ], - [ - "▁", - "Chart" - ], - [ - "▁on", - "Click" - ], - [ - "че", - "ння" - ], - [ - "чен", - "ня" - ], - [ - "LO", - "G" - ], - [ - "some", - "thing" - ], - [ - "som", - "ething" - ], - [ - "s", - "omething" - ], - [ - "▁IN", - "SERT" - ], - [ - "▁", - "INSERT" - ], - [ - "ще", - "ния" - ], - [ - "ue", - "t" - ], - [ - "u", - "et" - ], - [ - "wer", - "p" - ], - [ - "we", - "rp" - ], - [ - "ro", - "und" - ], - [ - "rou", - "nd" - ], - [ - "r", - "ound" - ], - [ - "ic", - "hen" - ], - [ - "ich", - "en" - ], - [ - "iche", - "n" - ], - [ - "i", - "chen" - ], - [ - "▁X", - "VI" - ], - [ - "▁XV", - "I" - ], - [ - "з", - "ни" - ], - [ - "▁ave", - "va" - ], - [ - "▁St", - "ore" - ], - [ - "▁Sto", - "re" - ], - [ - "▁", - "Store" - ], - [ - "▁x", - "s" - ], - [ - "▁", - "xs" - ], - [ - "ra", - "cht" - ], - [ - "rac", - "ht" - ], - [ - "rach", - "t" - ], - [ - "r", - "acht" - ], - [ - "sc", - "ar" - ], - [ - "s", - "car" - ], - [ - "▁op", - "era" - ], - [ - "▁oper", - "a" - ], - [ - "▁", - "opera" - ], - [ - "▁deg", - "rees" - ], - [ - "▁degree", - "s" - ], - [ - "▁cit", - "iz" - ], - [ - "äs", - "ident" - ], - [ - "▁class", - "ical" - ], - [ - "▁classic", - "al" - ], - [ - "▁Jer", - "sey" - ], - [ - "▁er", - "sch" - ], - [ - "▁ers", - "ch" - ], - [ - "▁", - "ersch" - ], - [ - "▁treat", - "ment" - ], - [ - "▁насе", - "ље" - ], - [ - "н", - "ня" - ], - [ - "▁bo", - "ost" - ], - [ - "▁", - "boost" - ], - [ - "am", - "ount" - ], - [ - "amo", - "unt" - ], - [ - "a", - "mount" - ], - [ - "▁со", - "зда" - ], - [ - "ér", - "ieur" - ], - [ - "érie", - "ur" - ], - [ - "éri", - "eur" - ], - [ - "▁t", - "elling" - ], - [ - "▁tell", - "ing" - ], - [ - "▁tel", - "ling" - ], - [ - "Ha", - "s" - ], - [ - "H", - "as" - ], - [ - "▁in", - "iti" - ], - [ - "▁init", - "i" - ], - [ - "▁П", - "и" - ], - [ - "ev", - "al" - ], - [ - "e", - "val" - ], - [ - "▁M", - "atch" - ], - [ - "▁Mat", - "ch" - ], - [ - "▁", - "Match" - ], - [ - "▁cor", - "re" - ], - [ - "▁corr", - "e" - ], - [ - "Point", - "er" - ], - [ - "Po", - "inter" - ], - [ - "▁pass", - "es" - ], - [ - "▁passe", - "s" - ], - [ - "comp", - "any" - ], - [ - "▁а", - "н" - ], - [ - "▁", - "ан" - ], - [ - "ach", - "es" - ], - [ - "ac", - "hes" - ], - [ - "ache", - "s" - ], - [ - "a", - "ches" - ], - [ - "▁sig", - "lo" - ], - [ - "не", - "м" - ], - [ - "н", - "ем" - ], - [ - "▁ex", - "change" - ], - [ - "▁", - "exchange" - ], - [ - "ci", - "to" - ], - [ - "cit", - "o" - ], - [ - "c", - "ito" - ], - [ - "▁B", - "ab" - ], - [ - "▁Ba", - "b" - ], - [ - "Do", - "c" - ], - [ - "D", - "oc" - ], - [ - "ze", - "ś" - ], - [ - "▁на", - "род" - ], - [ - "▁", - "народ" - ], - [ - "▁conf", - "lict" - ], - [ - "▁conflic", - "t" - ], - [ - "▁confl", - "ict" - ], - [ - "▁nov", - "ember" - ], - [ - "ea", - "u" - ], - [ - "e", - "au" - ], - [ - "ö", - "v" - ], - [ - "▁H", - "ub" - ], - [ - "▁Hu", - "b" - ], - [ - "▁", - "Hub" - ], - [ - "▁p", - "oco" - ], - [ - "▁po", - "co" - ], - [ - "▁poc", - "o" - ], - [ - "en", - "sa" - ], - [ - "ens", - "a" - ], - [ - "sch", - "ließ" - ], - [ - "lass", - "e" - ], - [ - "las", - "se" - ], - [ - "l", - "asse" - ], - [ - "data", - "s" - ], - [ - "dat", - "as" - ], - [ - "▁с", - "ти" - ], - [ - "▁ст", - "и" - ], - [ - "▁", - "сти" - ], - [ - "un", - "ivers" - ], - [ - "uni", - "vers" - ], - [ - "ek", - "s" - ], - [ - "e", - "ks" - ], - [ - "▁C", - "ho" - ], - [ - "▁Ch", - "o" - ], - [ - "▁", - "Cho" - ], - [ - "▁c", - "ô" - ], - [ - "▁(", - "." - ], - [ - "▁", - "(." - ], - [ - "ew", - "nę" - ], - [ - "▁Ch", - "ief" - ], - [ - "▁Chi", - "ef" - ], - [ - "▁ch", - "ef" - ], - [ - "▁che", - "f" - ], - [ - "▁у", - "прав" - ], - [ - "ul", - "i" - ], - [ - "u", - "li" - ], - [ - "▁'", - "''" - ], - [ - "▁''", - "'" - ], - [ - "▁", - "'''" - ], - [ - "nap", - "shot" - ], - [ - "▁re", - "lac" - ], - [ - "▁rel", - "ac" - ], - [ - "▁rela", - "c" - ], - [ - "ég", - "e" - ], - [ - "é", - "ge" - ], - [ - "w", - "t" - ], - [ - "we", - "nd" - ], - [ - "wen", - "d" - ], - [ - "w", - "end" - ], - [ - "os", - "ing" - ], - [ - "osi", - "ng" - ], - [ - "o", - "sing" - ], - [ - "▁ha", - "cer" - ], - [ - "▁hace", - "r" - ], - [ - "▁ф", - "ран" - ], - [ - "au", - "tres" - ], - [ - "aut", - "res" - ], - [ - "autre", - "s" - ], - [ - "▁f", - "ils" - ], - [ - "▁fil", - "s" - ], - [ - "▁fi", - "ls" - ], - [ - "er", - "ed" - ], - [ - "ere", - "d" - ], - [ - "e", - "red" - ], - [ - "▁По", - "силання" - ], - [ - "▁th", - "erm" - ], - [ - "▁the", - "rm" - ], - [ - "▁ther", - "m" - ], - [ - "ер", - "жа" - ], - [ - "su", - "ch" - ], - [ - "s", - "uch" - ], - [ - "▁i", - "hren" - ], - [ - "▁ih", - "ren" - ], - [ - "▁ihr", - "en" - ], - [ - "▁ihre", - "n" - ], - [ - "▁en", - "contr" - ], - [ - "▁l", - "ots" - ], - [ - "▁lo", - "ts" - ], - [ - "▁lot", - "s" - ], - [ - "lo", - "go" - ], - [ - "log", - "o" - ], - [ - "l", - "ogo" - ], - [ - "▁W", - "i" - ], - [ - "/", - "(" - ], - [ - "ш", - "ње" - ], - [ - "DA", - "TA" - ], - [ - "DAT", - "A" - ], - [ - "D", - "ATA" - ], - [ - "▁P", - "layer" - ], - [ - "▁Pl", - "ayer" - ], - [ - "▁Play", - "er" - ], - [ - "▁Pla", - "yer" - ], - [ - "▁", - "Player" - ], - [ - "▁Leip", - "zig" - ], - [ - "▁rel", - "atives" - ], - [ - "▁relative", - "s" - ], - [ - "▁relativ", - "es" - ], - [ - "ре", - "в" - ], - [ - "р", - "ев" - ], - [ - "▁new", - "sp" - ], - [ - "▁news", - "p" - ], - [ - "?", - "," - ], - [ - "▁St", - "utt" - ], - [ - "▁Stu", - "tt" - ], - [ - "▁d", - "ual" - ], - [ - "▁du", - "al" - ], - [ - "▁compan", - "ies" - ], - [ - "▁z", - "am" - ], - [ - "▁za", - "m" - ], - [ - "put", - "ation" - ], - [ - "▁in", - "equality" - ], - [ - "▁t", - "rem" - ], - [ - "▁tr", - "em" - ], - [ - "▁tre", - "m" - ], - [ - "hi", - "ps" - ], - [ - "hip", - "s" - ], - [ - "h", - "ips" - ], - [ - "an", - "ch" - ], - [ - "anc", - "h" - ], - [ - "▁", - "Ż" - ], - [ - "бур", - "г" - ], - [ - "▁cop", - "ies" - ], - [ - "da", - "sh" - ], - [ - "das", - "h" - ], - [ - "d", - "ash" - ], - [ - "во", - "р" - ], - [ - "в", - "ор" - ], - [ - "spiel", - "er" - ], - [ - "s", - "pieler" - ], - [ - "▁Re", - "volution" - ], - [ - "▁Revol", - "ution" - ], - [ - "es", - "ty" - ], - [ - "est", - "y" - ], - [ - "e", - "sty" - ], - [ - "▁j", - "unto" - ], - [ - "▁jun", - "to" - ], - [ - "▁junt", - "o" - ], - [ - "▁Ind", - "eed" - ], - [ - "ok", - "al" - ], - [ - "oka", - "l" - ], - [ - "o", - "kal" - ], - [ - "ctr", - "ine" - ], - [ - "▁F", - "ord" - ], - [ - "▁For", - "d" - ], - [ - "▁Fo", - "rd" - ], - [ - "▁C", - "REATE" - ], - [ - "▁", - "CREATE" - ], - [ - "▁w", - "alls" - ], - [ - "▁wall", - "s" - ], - [ - "▁wal", - "ls" - ], - [ - "▁a", - "ute" - ], - [ - "▁au", - "te" - ], - [ - "▁aut", - "e" - ], - [ - "S", - "U" - ], - [ - "wh", - "y" - ], - [ - "w", - "hy" - ], - [ - "plement", - "ation" - ], - [ - "ro", - "ut" - ], - [ - "rou", - "t" - ], - [ - "r", - "out" - ], - [ - "Mat", - "rix" - ], - [ - "▁s", - "ad" - ], - [ - "▁sa", - "d" - ], - [ - "ан", - "а" - ], - [ - "а", - "на" - ], - [ - "▁P", - "ic" - ], - [ - "▁Pi", - "c" - ], - [ - ".", - "“" - ], - [ - "▁A", - "C" - ], - [ - "▁", - "AC" - ], - [ - "▁F", - "est" - ], - [ - "▁Fe", - "st" - ], - [ - "▁des", - "ktop" - ], - [ - "▁", - "desktop" - ], - [ - "▁P", - "ay" - ], - [ - "▁Pa", - "y" - ], - [ - "▁", - "Pay" - ], - [ - "ome", - "times" - ], - [ - "omet", - "imes" - ], - [ - "▁T", - "ak" - ], - [ - "▁Ta", - "k" - ], - [ - "ра", - "б" - ], - [ - "▁S", - "ever" - ], - [ - "▁Se", - "ver" - ], - [ - "▁nor", - "thern" - ], - [ - "▁north", - "ern" - ], - [ - "an", - "ter" - ], - [ - "ant", - "er" - ], - [ - "ante", - "r" - ], - [ - "▁Mod", - "ern" - ], - [ - "▁Mo", - "dern" - ], - [ - "▁Mode", - "rn" - ], - [ - "wa", - "l" - ], - [ - "w", - "al" - ], - [ - "{", - "\r" - ], - [ - "on", - "line" - ], - [ - "ö", - "k" - ], - [ - "▁brit", - "ann" - ], - [ - "$", - "_" - ], - [ - "▁j", - "ar" - ], - [ - "▁ja", - "r" - ], - [ - "▁", - "jar" - ], - [ - "T", - "L" - ], - [ - "xx", - "xx" - ], - [ - "xxx", - "x" - ], - [ - "x", - "xxx" - ], - [ - "mer", - "ge" - ], - [ - "▁N", - "amen" - ], - [ - "▁Name", - "n" - ], - [ - "▁Na", - "men" - ], - [ - "▁Nam", - "en" - ], - [ - "▁K", - "EY" - ], - [ - "▁", - "KEY" - ], - [ - "▁re", - "fers" - ], - [ - "▁ref", - "ers" - ], - [ - "▁refer", - "s" - ], - [ - "▁h", - "in" - ], - [ - "▁hi", - "n" - ], - [ - "▁", - "hin" - ], - [ - "▁Vol", - "ks" - ], - [ - "▁Volk", - "s" - ], - [ - "st", - "eller" - ], - [ - "stell", - "er" - ], - [ - "stelle", - "r" - ], - [ - "vi", - "ation" - ], - [ - "via", - "tion" - ], - [ - "v", - "iation" - ], - [ - "on", - "io" - ], - [ - "oni", - "o" - ], - [ - "o", - "nio" - ], - [ - "ight", - "er" - ], - [ - "igh", - "ter" - ], - [ - "Com", - "pat" - ], - [ - "Comp", - "at" - ], - [ - "▁C", - "E" - ], - [ - "▁", - "CE" - ], - [ - "▁p", - "ró" - ], - [ - "▁pr", - "ó" - ], - [ - "▁encuent", - "ra" - ], - [ - "the", - "orem" - ], - [ - "▁pub", - "li" - ], - [ - "▁Develop", - "ment" - ], - [ - "н", - "д" - ], - [ - "▁r", - "os" - ], - [ - "▁ro", - "s" - ], - [ - "▁", - "ros" - ], - [ - "▁s", - "hr" - ], - [ - "▁sh", - "r" - ], - [ - "se", - "au" - ], - [ - "s", - "eau" - ], - [ - "▁gener", - "ating" - ], - [ - "▁gene", - "rating" - ], - [ - "▁difficult", - "y" - ], - [ - "▁Ex", - "press" - ], - [ - "▁Exp", - "ress" - ], - [ - "▁", - "Express" - ], - [ - "Al", - "ignment" - ], - [ - "de", - "utsch" - ], - [ - "▁Вла", - "ди" - ], - [ - "▁sugg", - "ests" - ], - [ - "▁suggest", - "s" - ], - [ - "▁Famil", - "y" - ], - [ - "▁Fam", - "ily" - ], - [ - "▁", - "Family" - ], - [ - "bb", - "i" - ], - [ - "b", - "bi" - ], - [ - "])", - "." - ], - [ - "]", - ")." - ], - [ - "st", - "aw" - ], - [ - "sta", - "w" - ], - [ - "▁pres", - "idente" - ], - [ - "▁president", - "e" - ], - [ - "▁presiden", - "te" - ], - [ - "▁st", - "esso" - ], - [ - "in", - "x" - ], - [ - "i", - "nx" - ], - [ - "set", - "up" - ], - [ - "▁con", - "form" - ], - [ - "▁conf", - "orm" - ], - [ - "▁f", - "ro" - ], - [ - "▁fr", - "o" - ], - [ - "=\\", - "\"" - ], - [ - "=", - "\\\"" - ], - [ - "▁d", - "å" - ], - [ - "ic", - "iones" - ], - [ - "ici", - "ones" - ], - [ - "icio", - "nes" - ], - [ - "icion", - "es" - ], - [ - "i", - "ciones" - ], - [ - "▁e", - "volution" - ], - [ - "▁evol", - "ution" - ], - [ - "pr", - "ote" - ], - [ - "pro", - "te" - ], - [ - "p", - "rote" - ], - [ - "▁pr", - "ints" - ], - [ - "▁print", - "s" - ], - [ - "▁prin", - "ts" - ], - [ - "▁P", - "ont" - ], - [ - "▁Po", - "nt" - ], - [ - "▁Pon", - "t" - ], - [ - "▁conf", - "usion" - ], - [ - "▁", - "Й" - ], - [ - "▁d", - "ello" - ], - [ - "▁del", - "lo" - ], - [ - "▁dell", - "o" - ], - [ - "▁man", - "if" - ], - [ - "Def", - "inition" - ], - [ - "ár", - "a" - ], - [ - "á", - "ra" - ], - [ - "ma", - "ls" - ], - [ - "mal", - "s" - ], - [ - "m", - "als" - ], - [ - "▁s", - "ale" - ], - [ - "▁sa", - "le" - ], - [ - "▁sal", - "e" - ], - [ - "▁drop", - "down" - ], - [ - "▁", - "dropdown" - ], - [ - "Ch", - "ain" - ], - [ - "Amer", - "ican" - ], - [ - "America", - "n" - ], - [ - "▁m", - "k" - ], - [ - "▁", - "mk" - ], - [ - "▁B", - "ez" - ], - [ - "▁Be", - "z" - ], - [ - "▁F", - "ue" - ], - [ - "▁Fu", - "e" - ], - [ - "▁N", - "E" - ], - [ - "▁", - "NE" - ], - [ - "гра", - "фи" - ], - [ - "граф", - "и" - ], - [ - "doc", - "ker" - ], - [ - "do", - "cker" - ], - [ - "d", - "ocker" - ], - [ - "▁^", - "{" - ], - [ - "▁", - "^{" - ], - [ - "As", - "sert" - ], - [ - "Ass", - "ert" - ], - [ - "▁hor", - "izontal" - ], - [ - "▁horizon", - "tal" - ], - [ - "▁", - "horizontal" - ], - [ - "(@", - "\"" - ], - [ - "(", - "@\"" - ], - [ - "▁д", - "ву" - ], - [ - "pro", - "xy" - ], - [ - "U", - "ri" - ], - [ - "gen", - "cy" - ], - [ - "g", - "ency" - ], - [ - "▁\"", - "[" - ], - [ - "▁Q", - "t" - ], - [ - "▁", - "Qt" - ], - [ - "▁N", - "ames" - ], - [ - "▁Name", - "s" - ], - [ - "▁Na", - "mes" - ], - [ - "▁Nam", - "es" - ], - [ - "▁", - "Names" - ], - [ - "▁evalu", - "ate" - ], - [ - "▁eval", - "uate" - ], - [ - "!", - "/" - ], - [ - "▁ein", - "ges" - ], - [ - "▁eing", - "es" - ], - [ - "▁syn", - "th" - ], - [ - "▁sy", - "nth" - ], - [ - "▁You", - "Tube" - ], - [ - "▁turn", - "ing" - ], - [ - "▁tur", - "ning" - ], - [ - "▁E", - "ric" - ], - [ - "▁Er", - "ic" - ], - [ - "▁б", - "ли" - ], - [ - "▁", - "бли" - ], - [ - "▁k", - "lub" - ], - [ - "▁kl", - "ub" - ], - [ - "pl", - "orer" - ], - [ - "▁s", - "ports" - ], - [ - "▁sport", - "s" - ], - [ - "▁s", - "ia" - ], - [ - "▁si", - "a" - ], - [ - "о", - "ш" - ], - [ - "▁d", - "ai" - ], - [ - "▁da", - "i" - ], - [ - "▁e", - "urope" - ], - [ - "▁europ", - "e" - ], - [ - "▁euro", - "pe" - ], - [ - "ic", - "ians" - ], - [ - "ici", - "ans" - ], - [ - "ician", - "s" - ], - [ - "icia", - "ns" - ], - [ - "ings", - "områ" - ], - [ - "▁d", - "re" - ], - [ - "▁dr", - "e" - ], - [ - "▁work", - "around" - ], - [ - "▁s", - "uit" - ], - [ - "▁su", - "it" - ], - [ - "▁", - "suit" - ], - [ - "amb", - "igu" - ], - [ - "▁quant", - "ity" - ], - [ - "▁", - "quantity" - ], - [ - "▁seg", - "undo" - ], - [ - "Sym", - "bol" - ], - [ - "S", - "ymbol" - ], - [ - "▁m", - "oral" - ], - [ - "▁mo", - "ral" - ], - [ - "▁mor", - "al" - ], - [ - "Ch", - "art" - ], - [ - "Char", - "t" - ], - [ - "C", - "hart" - ], - [ - "▁da", - "mit" - ], - [ - "▁dam", - "it" - ], - [ - "▁attempt", - "s" - ], - [ - "▁d", - "onn" - ], - [ - "▁do", - "nn" - ], - [ - "▁don", - "n" - ], - [ - "jo", - "s" - ], - [ - "j", - "os" - ], - [ - "▁e", - "re" - ], - [ - "▁er", - "e" - ], - [ - "▁", - "ere" - ], - [ - "▁hom", - "me" - ], - [ - "▁", - "homme" - ], - [ - "si", - "mp" - ], - [ - "sim", - "p" - ], - [ - "s", - "imp" - ], - [ - "rypt", - "ed" - ], - [ - "▁act", - "s" - ], - [ - "▁ac", - "ts" - ], - [ - "inner", - "HTML" - ], - [ - "▁tourn", - "ament" - ], - [ - "▁s", - "ky" - ], - [ - "▁sk", - "y" - ], - [ - "▁", - "sky" - ], - [ - "Time", - "r" - ], - [ - "Tim", - "er" - ], - [ - "T", - "imer" - ], - [ - "▁mill", - "ions" - ], - [ - "▁million", - "s" - ], - [ - "^", - "+" - ], - [ - "ag", - "ent" - ], - [ - "age", - "nt" - ], - [ - "agen", - "t" - ], - [ - "a", - "gent" - ], - [ - "')", - ");" - ], - [ - "'))", - ";" - ], - [ - "'", - "));" - ], - [ - "▁o", - "st" - ], - [ - "▁os", - "t" - ], - [ - "▁", - "ost" - ], - [ - "▁g", - "la" - ], - [ - "▁gl", - "a" - ], - [ - "▁по", - "мо" - ], - [ - "▁f", - "ün" - ], - [ - "ст", - "вом" - ], - [ - "ств", - "ом" - ], - [ - "ство", - "м" - ], - [ - "ewnę", - "trz" - ], - [ - "▁Mé", - "xico" - ], - [ - "▁l", - "ub" - ], - [ - "▁lu", - "b" - ], - [ - "▁", - "lub" - ], - [ - "▁É", - "d" - ], - [ - "if", - "ik" - ], - [ - "ifi", - "k" - ], - [ - "i", - "fik" - ], - [ - "че", - "ский" - ], - [ - "▁im", - "mer" - ], - [ - "▁imm", - "er" - ], - [ - "▁", - "immer" - ], - [ - "en", - "sen" - ], - [ - "ens", - "en" - ], - [ - "ense", - "n" - ], - [ - "an", - "ny" - ], - [ - "ann", - "y" - ], - [ - "in", - "line" - ], - [ - "▁g", - "over" - ], - [ - "▁go", - "ver" - ], - [ - "au", - "c" - ], - [ - "a", - "uc" - ], - [ - "▁re", - "pre" - ], - [ - "▁rep", - "re" - ], - [ - "▁repr", - "e" - ], - [ - "▁histor", - "ia" - ], - [ - "▁hist", - "oria" - ], - [ - "A", - "g" - ], - [ - "▁p", - "lt" - ], - [ - "▁pl", - "t" - ], - [ - "▁Pr", - "inci" - ], - [ - "▁Prin", - "ci" - ], - [ - "im", - "eter" - ], - [ - "ime", - "ter" - ], - [ - "imet", - "er" - ], - [ - "i", - "meter" - ], - [ - "ő", - "s" - ], - [ - "š", - "e" - ], - [ - "▁U", - "E" - ], - [ - "▁", - "UE" - ], - [ - "Equ", - "als" - ], - [ - "Equal", - "s" - ], - [ - "Eq", - "uals" - ], - [ - "Dis", - "patch" - ], - [ - "le", - "gen" - ], - [ - "leg", - "en" - ], - [ - "lege", - "n" - ], - [ - "l", - "egen" - ], - [ - "ла", - "зи" - ], - [ - "чно", - "й" - ], - [ - "ч", - "ной" - ], - [ - "▁st", - "ell" - ], - [ - "▁ste", - "ll" - ], - [ - "▁", - "stell" - ], - [ - "ń", - "st" - ], - [ - "▁c", - "ri" - ], - [ - "▁cr", - "i" - ], - [ - "▁", - "cri" - ], - [ - "▁In", - "dep" - ], - [ - "▁Ind", - "ep" - ], - [ - "è", - "de" - ], - [ - "}\\", - ")" - ], - [ - "}", - "\\)" - ], - [ - "▁w", - "yst" - ], - [ - "▁wy", - "st" - ], - [ - "▁wys", - "t" - ], - [ - "▁fig", - "ured" - ], - [ - "▁figure", - "d" - ], - [ - "▁figur", - "ed" - ], - [ - "AT", - "CH" - ], - [ - "éb", - "en" - ], - [ - "é", - "ben" - ], - [ - "la", - "cht" - ], - [ - "lac", - "ht" - ], - [ - "lach", - "t" - ], - [ - "l", - "acht" - ], - [ - "▁succeed", - "ed" - ], - [ - "gr", - "y" - ], - [ - "g", - "ry" - ], - [ - "▁p", - "ret" - ], - [ - "▁pr", - "et" - ], - [ - "▁pre", - "t" - ], - [ - "▁", - "pret" - ], - [ - "▁S", - "af" - ], - [ - "▁Sa", - "f" - ], - [ - "▁\"", - ");" - ], - [ - "▁\")", - ";" - ], - [ - "▁", - "\");" - ], - [ - "e", - "h" - ], - [ - "▁offic", - "iel" - ], - [ - "▁offici", - "el" - ], - [ - "краї", - "н" - ], - [ - "wi", - "nd" - ], - [ - "win", - "d" - ], - [ - "w", - "ind" - ], - [ - "▁sc", - "atter" - ], - [ - "▁F", - "ox" - ], - [ - "▁Fo", - "x" - ], - [ - "ic", - "ious" - ], - [ - "ici", - "ous" - ], - [ - "icio", - "us" - ], - [ - "i", - "cious" - ], - [ - "Man", - "y" - ], - [ - "Ma", - "ny" - ], - [ - "M", - "any" - ], - [ - "up", - "er" - ], - [ - "u", - "per" - ], - [ - "▁Con", - "vert" - ], - [ - "▁", - "Convert" - ], - [ - "st", - "erd" - ], - [ - "ste", - "rd" - ], - [ - "ster", - "d" - ], - [ - "▁St", - "ein" - ], - [ - "▁Ste", - "in" - ], - [ - "▁О", - "т" - ], - [ - "}^", - "{(" - ], - [ - "}^{", - "(" - ], - [ - "}", - "^{(" - ], - [ - "bet", - "ween" - ], - [ - "hi", - "re" - ], - [ - "h", - "ire" - ], - [ - "▁on", - "Create" - ], - [ - "▁", - "onCreate" - ], - [ - ";", - "" - ], - [ - "-", - "->" - ], - [ - "▁p", - "ří" - ], - [ - "▁př", - "í" - ], - [ - "pan", - "das" - ], - [ - "p", - "andas" - ], - [ - "▁P", - "lus" - ], - [ - "▁Pl", - "us" - ], - [ - "▁", - "Plus" - ], - [ - "yl", - "l" - ], - [ - "y", - "ll" - ], - [ - "▁t", - "error" - ], - [ - "▁te", - "rror" - ], - [ - "▁ter", - "ror" - ], - [ - "▁c", - "rim" - ], - [ - "▁cr", - "im" - ], - [ - "▁cri", - "m" - ], - [ - "▁z", - "ak" - ], - [ - "▁za", - "k" - ], - [ - "▁", - "zak" - ], - [ - "iss", - "ue" - ], - [ - "pa", - "nel" - ], - [ - "pan", - "el" - ], - [ - "p", - "anel" - ], - [ - "sv", - "g" - ], - [ - "▁re", - "b" - ], - [ - "▁r", - "eb" - ], - [ - "▁", - "reb" - ], - [ - "Custom", - "er" - ], - [ - "sw", - "itch" - ], - [ - "об", - "ра" - ], - [ - "о", - "бра" - ], - [ - "▁Champion", - "ships" - ], - [ - "▁Championship", - "s" - ], - [ - "▁Champions", - "hips" - ], - [ - "cl", - "o" - ], - [ - "c", - "lo" - ], - [ - "at", - "te" - ], - [ - "att", - "e" - ], - [ - "a", - "tte" - ], - [ - "▁any", - "more" - ], - [ - "▁excell", - "ent" - ], - [ - "▁opport", - "unity" - ], - [ - "▁opportun", - "ity" - ], - [ - "▁B", - "ahn" - ], - [ - "▁Ba", - "hn" - ], - [ - "▁Bah", - "n" - ], - [ - "чи", - "н" - ], - [ - "ч", - "ин" - ], - [ - "et", - "ing" - ], - [ - "eti", - "ng" - ], - [ - "e", - "ting" - ], - [ - "▁inc", - "ident" - ], - [ - "to", - "m" - ], - [ - "t", - "om" - ], - [ - "Per", - "s" - ], - [ - "Pe", - "rs" - ], - [ - "P", - "ers" - ], - [ - "bb", - "en" - ], - [ - "bbe", - "n" - ], - [ - "b", - "ben" - ], - [ - "ствен", - "ной" - ], - [ - "ственно", - "й" - ], - [ - "и", - "х" - ], - [ - "ro", - "uter" - ], - [ - "route", - "r" - ], - [ - "rout", - "er" - ], - [ - "rou", - "ter" - ], - [ - "r", - "outer" - ], - [ - "▁new", - "ly" - ], - [ - "▁sil", - "ence" - ], - [ - "▁G", - "NU" - ], - [ - "▁R", - "ails" - ], - [ - "▁Ra", - "ils" - ], - [ - "▁Rail", - "s" - ], - [ - "▁A", - "mb" - ], - [ - "▁Am", - "b" - ], - [ - "▁Q", - "ual" - ], - [ - "▁Qu", - "al" - ], - [ - "▁", - "Qual" - ], - [ - "▁Sch", - "aus" - ], - [ - "▁Sc", - "haus" - ], - [ - "▁S", - "ohn" - ], - [ - "▁So", - "hn" - ], - [ - "▁A", - "LL" - ], - [ - "▁AL", - "L" - ], - [ - "▁", - "ALL" - ], - [ - "▁ro", - "yal" - ], - [ - "▁roy", - "al" - ], - [ - "▁", - "£" - ], - [ - "wi", - "ę" - ], - [ - "w", - "ię" - ], - [ - "▁ent", - "fer" - ], - [ - "▁Re", - "move" - ], - [ - "▁Rem", - "ove" - ], - [ - "▁", - "Remove" - ], - [ - "▁hard", - "ly" - ], - [ - "Us", - "ing" - ], - [ - "U", - "sing" - ], - [ - "ло", - "г" - ], - [ - "▁I", - "ch" - ], - [ - "▁d", - "erni" - ], - [ - "▁der", - "ni" - ], - [ - "▁Con", - "nection" - ], - [ - "▁Connect", - "ion" - ], - [ - "▁", - "Connection" - ], - [ - "fi", - "sh" - ], - [ - "f", - "ish" - ], - [ - "▁In", - "form" - ], - [ - "▁Inf", - "orm" - ], - [ - "▁Info", - "rm" - ], - [ - "▁E", - "ner" - ], - [ - "▁En", - "er" - ], - [ - "ro", - "it" - ], - [ - "r", - "oit" - ], - [ - "B", - "bb" - ], - [ - "View", - "Model" - ], - [ - "V", - "ideo" - ], - [ - "il", - "ey" - ], - [ - "ile", - "y" - ], - [ - "i", - "ley" - ], - [ - "▁м", - "ного" - ], - [ - "▁мно", - "го" - ], - [ - "▁G", - "em" - ], - [ - "▁Ge", - "m" - ], - [ - "▁comp", - "reh" - ], - [ - "▁compr", - "eh" - ], - [ - "en", - "umerate" - ], - [ - "ul", - "as" - ], - [ - "ula", - "s" - ], - [ - "u", - "las" - ], - [ - "▁B", - "ah" - ], - [ - "▁Ba", - "h" - ], - [ - "▁Y", - "et" - ], - [ - "▁Ye", - "t" - ], - [ - "B", - "R" - ], - [ - "х", - "ра" - ], - [ - "▁count", - "y" - ], - [ - "▁coun", - "ty" - ], - [ - "▁H", - "ist" - ], - [ - "▁His", - "t" - ], - [ - "▁Hi", - "st" - ], - [ - "▁Г", - "у" - ], - [ - "▁", - "Ј" - ], - [ - "▁m", - "ari" - ], - [ - "▁ma", - "ri" - ], - [ - "▁mar", - "i" - ], - [ - "▁C", - "lar" - ], - [ - "▁Cl", - "ar" - ], - [ - "▁Cla", - "r" - ], - [ - "Bit", - "map" - ], - [ - "B", - "itmap" - ], - [ - "▁C", - "z" - ], - [ - "▁m", - "ån" - ], - [ - "▁må", - "n" - ], - [ - "▁m", - "ere" - ], - [ - "▁me", - "re" - ], - [ - "▁mer", - "e" - ], - [ - "▁mus", - "ique" - ], - [ - "al", - "so" - ], - [ - "als", - "o" - ], - [ - "date", - "s" - ], - [ - "da", - "tes" - ], - [ - "dat", - "es" - ], - [ - "d", - "ates" - ], - [ - "▁D", - "VD" - ], - [ - "▁g", - "ol" - ], - [ - "▁go", - "l" - ], - [ - "fo", - "ny" - ], - [ - "fon", - "y" - ], - [ - "f", - "ony" - ], - [ - "▁Cast", - "le" - ], - [ - "▁фа", - "ми" - ], - [ - "▁arr", - "ang" - ], - [ - "▁Bus", - "iness" - ], - [ - "▁K", - "az" - ], - [ - "▁Ka", - "z" - ], - [ - "▁o", - "sc" - ], - [ - "▁os", - "c" - ], - [ - "▁", - "osc" - ], - [ - "▁se", - "colo" - ], - [ - "▁sec", - "olo" - ], - [ - "▁aff", - "ected" - ], - [ - "▁affect", - "ed" - ], - [ - "▁He", - "alth" - ], - [ - "re", - "b" - ], - [ - "r", - "eb" - ], - [ - "ed", - "itor" - ], - [ - "edit", - "or" - ], - [ - "edi", - "tor" - ], - [ - "▁own", - "ed" - ], - [ - "▁ow", - "ned" - ], - [ - "▁", - "owned" - ], - [ - "t", - "l" - ], - [ - "▁v", - "í" - ], - [ - "▁", - "ví" - ], - [ - "чни", - "х" - ], - [ - "ч", - "них" - ], - [ - "к", - "ви" - ], - [ - "▁dev", - "ient" - ], - [ - "▁devi", - "ent" - ], - [ - "M", - "utable" - ], - [ - "▁t", - "egen" - ], - [ - "▁te", - "gen" - ], - [ - "Reg", - "ister" - ], - [ - "є", - "ю" - ], - [ - "▁car", - "acter" - ], - [ - "лл", - "и" - ], - [ - "л", - "ли" - ], - [ - "▁n", - "ouvelle" - ], - [ - "▁nouve", - "lle" - ], - [ - "ok", - "o" - ], - [ - "o", - "ko" - ], - [ - "icht", - "et" - ], - [ - "ichte", - "t" - ], - [ - "▁e", - "vol" - ], - [ - "▁ev", - "ol" - ], - [ - "▁H", - "ab" - ], - [ - "▁Ha", - "b" - ], - [ - "▁mil", - "itar" - ], - [ - "▁milit", - "ar" - ], - [ - "▁p", - "uts" - ], - [ - "▁put", - "s" - ], - [ - "▁pu", - "ts" - ], - [ - "end", - "if" - ], - [ - "endi", - "f" - ], - [ - "▁Dav", - "is" - ], - [ - "▁Da", - "vis" - ], - [ - "▁Scot", - "land" - ], - [ - "reg", - "ular" - ], - [ - "▁Con", - "text" - ], - [ - "▁Cont", - "ext" - ], - [ - "▁", - "Context" - ], - [ - "is", - "piel" - ], - [ - "isp", - "iel" - ], - [ - "i", - "spiel" - ], - [ - "▁G", - "allery" - ], - [ - "▁Gall", - "ery" - ], - [ - "\",", - "\r" - ], - [ - "\"", - ",\r" - ], - [ - "▁a", - "rc" - ], - [ - "▁ar", - "c" - ], - [ - "▁", - "arc" - ], - [ - "▁IN", - "FO" - ], - [ - "▁", - "INFO" - ], - [ - "▁c", - "od" - ], - [ - "▁co", - "d" - ], - [ - "▁", - "cod" - ], - [ - "ді", - "в" - ], - [ - "д", - "ів" - ], - [ - "▁v", - "archar" - ], - [ - "▁var", - "char" - ], - [ - "▁", - "varchar" - ], - [ - "▁tou", - "jours" - ], - [ - "at", - "ial" - ], - [ - "ati", - "al" - ], - [ - "atia", - "l" - ], - [ - "▁h", - "anno" - ], - [ - "▁han", - "no" - ], - [ - "▁проф", - "ес" - ], - [ - "▁launch", - "ed" - ], - [ - "▁насе", - "лення" - ], - [ - "▁t", - "on" - ], - [ - "▁to", - "n" - ], - [ - "▁", - "ton" - ], - [ - "au", - "sed" - ], - [ - "ause", - "d" - ], - [ - "aus", - "ed" - ], - [ - "a", - "used" - ], - [ - "▁і", - "з" - ], - [ - "▁t", - "ö" - ], - [ - "▁P", - "ur" - ], - [ - "▁Pu", - "r" - ], - [ - "▁o", - "lymp" - ], - [ - "AR", - "N" - ], - [ - "ó", - "m" - ], - [ - "▁a", - "ugust" - ], - [ - "▁aug", - "ust" - ], - [ - "▁f", - "urn" - ], - [ - "▁fur", - "n" - ], - [ - "▁fu", - "rn" - ], - [ - "▁Col", - "omb" - ], - [ - "▁Sta", - "ats" - ], - [ - "▁Staat", - "s" - ], - [ - "ho", - "ra" - ], - [ - "hor", - "a" - ], - [ - "h", - "ora" - ], - [ - "▁м", - "ор" - ], - [ - "▁мо", - "р" - ], - [ - "▁", - "мор" - ], - [ - "can", - "vas" - ], - [ - "▁gr", - "ave" - ], - [ - "▁gra", - "ve" - ], - [ - "▁grav", - "e" - ], - [ - "▁com", - "position" - ], - [ - "▁comp", - "osition" - ], - [ - "▁compos", - "ition" - ], - [ - "ac", - "ja" - ], - [ - "▁которы", - "е" - ], - [ - "▁ч", - "о" - ], - [ - "▁", - "чо" - ], - [ - "Gener", - "al" - ], - [ - "Gen", - "eral" - ], - [ - "ан", - "і" - ], - [ - "а", - "ні" - ], - [ - "▁Joh", - "annes" - ], - [ - "▁Johann", - "es" - ], - [ - "▁Johan", - "nes" - ], - [ - "ка", - "р" - ], - [ - "к", - "ар" - ], - [ - "▁ча", - "ст" - ], - [ - "▁час", - "т" - ], - [ - "▁Ва", - "си" - ], - [ - "ss", - "h" - ], - [ - "s", - "sh" - ], - [ - "▁repla", - "cing" - ], - [ - "▁<", - ">" - ], - [ - "▁", - "<>" - ], - [ - "ці", - "в" - ], - [ - "ц", - "ів" - ], - [ - "la", - "us" - ], - [ - "lau", - "s" - ], - [ - "l", - "aus" - ], - [ - "en", - "y" - ], - [ - "e", - "ny" - ], - [ - "äh", - "l" - ], - [ - "ä", - "hl" - ], - [ - "▁m", - "arg" - ], - [ - "▁ma", - "rg" - ], - [ - "▁mar", - "g" - ], - [ - "ci", - "ence" - ], - [ - "c", - "ience" - ], - [ - "▁inst", - "ruction" - ], - [ - "▁instru", - "ction" - ], - [ - "▁instruct", - "ion" - ], - [ - "▁ко", - "ји" - ], - [ - "Ed", - "itor" - ], - [ - "Edit", - "or" - ], - [ - "▁fund", - "amental" - ], - [ - "mu", - "nd" - ], - [ - "mun", - "d" - ], - [ - "m", - "und" - ], - [ - "▁exception", - "s" - ], - [ - "▁except", - "ions" - ], - [ - "▁p", - "late" - ], - [ - "▁pl", - "ate" - ], - [ - "▁pla", - "te" - ], - [ - "▁plat", - "e" - ], - [ - "▁", - "plate" - ], - [ - "▁L", - "is" - ], - [ - "▁Li", - "s" - ], - [ - "▁d", - "eren" - ], - [ - "▁de", - "ren" - ], - [ - "▁der", - "en" - ], - [ - "▁dere", - "n" - ], - [ - "pr", - "ep" - ], - [ - "pre", - "p" - ], - [ - "p", - "rep" - ], - [ - "▁janu", - "ari" - ], - [ - "Sc", - "ope" - ], - [ - "S", - "cope" - ], - [ - "yn", - "ast" - ], - [ - "yna", - "st" - ], - [ - "r", - "v" - ], - [ - "or", - "sz" - ], - [ - "ors", - "z" - ], - [ - "▁T", - "ony" - ], - [ - "▁To", - "ny" - ], - [ - "▁Ton", - "y" - ], - [ - "▁д", - "і" - ], - [ - "▁", - "ді" - ], - [ - "▁о", - "дна" - ], - [ - "▁од", - "на" - ], - [ - "▁s", - "ab" - ], - [ - "▁sa", - "b" - ], - [ - "ot", - "i" - ], - [ - "o", - "ti" - ], - [ - "je", - "l" - ], - [ - "j", - "el" - ], - [ - "▁gener", - "ator" - ], - [ - "▁", - "generator" - ], - [ - "▁'", - "." - ], - [ - "▁", - "'." - ], - [ - "▁sh", - "arp" - ], - [ - "▁", - "sharp" - ], - [ - "▁то", - "лько" - ], - [ - "▁account", - "s" - ], - [ - "▁ž", - "e" - ], - [ - "▁", - "že" - ], - [ - "▁for", - "am" - ], - [ - "▁fo", - "ram" - ], - [ - "▁g", - "ouvern" - ], - [ - "TI", - "ME" - ], - [ - "T", - "IME" - ], - [ - "▁Sov", - "iet" - ], - [ - "▁G", - "é" - ], - [ - "▁ex", - "ped" - ], - [ - "▁exp", - "ed" - ], - [ - "▁ord", - "inary" - ], - [ - "▁ordin", - "ary" - ], - [ - "▁", - "ordinary" - ], - [ - "▁Con", - "serv" - ], - [ - "▁Cons", - "erv" - ], - [ - "▁Conse", - "rv" - ], - [ - "▁com", - "pla" - ], - [ - "▁comp", - "la" - ], - [ - "▁compl", - "a" - ], - [ - "te", - "i" - ], - [ - "t", - "ei" - ], - [ - "▁cap", - "tain" - ], - [ - "▁capt", - "ain" - ], - [ - "▁Sam", - "uel" - ], - [ - "▁D", - "ark" - ], - [ - "▁Dar", - "k" - ], - [ - "▁в", - "ін" - ], - [ - "▁ві", - "н" - ], - [ - "▁de", - "light" - ], - [ - "▁del", - "ight" - ], - [ - "re", - "cht" - ], - [ - "rec", - "ht" - ], - [ - "di", - "a" - ], - [ - "d", - "ia" - ], - [ - "ess", - "es" - ], - [ - "esse", - "s" - ], - [ - "ul", - "p" - ], - [ - "u", - "lp" - ], - [ - "ш", - "ки" - ], - [ - "be", - "z" - ], - [ - "b", - "ez" - ], - [ - "▁det", - "ection" - ], - [ - "▁detect", - "ion" - ], - [ - "▁cook", - "ie" - ], - [ - "▁", - "cookie" - ], - [ - "an", - "try" - ], - [ - "ant", - "ry" - ], - [ - "Mult", - "i" - ], - [ - "ob", - "a" - ], - [ - "o", - "ba" - ], - [ - "▁j", - "oy" - ], - [ - "▁jo", - "y" - ], - [ - "▁safe", - "ty" - ], - [ - "▁saf", - "ety" - ], - [ - "|", - "^" - ], - [ - "po", - "d" - ], - [ - "p", - "od" - ], - [ - "ad", - "ém" - ], - [ - "▁Ch", - "ron" - ], - [ - "▁Chr", - "on" - ], - [ - "▁D", - "jango" - ], - [ - "▁Dj", - "ango" - ], - [ - "▁ehem", - "al" - ], - [ - "k", - "h" - ], - [ - "è", - "le" - ], - [ - "▁p", - "oc" - ], - [ - "▁po", - "c" - ], - [ - "B", - "ottom" - ], - [ - "la", - "unch" - ], - [ - "ne", - "m" - ], - [ - "n", - "em" - ], - [ - "▁G", - "ROUP" - ], - [ - "▁", - "GROUP" - ], - [ - "ní", - "ho" - ], - [ - "▁G", - "ib" - ], - [ - "▁Gi", - "b" - ], - [ - "sd", - "k" - ], - [ - "s", - "dk" - ], - [ - "B", - "E" - ], - [ - "▁G", - "ene" - ], - [ - "▁Ge", - "ne" - ], - [ - "▁Gen", - "e" - ], - [ - "▁St", - "aff" - ], - [ - "▁Sta", - "ff" - ], - [ - "▁subsequ", - "ent" - ], - [ - "ic", - "ion" - ], - [ - "ici", - "on" - ], - [ - "icio", - "n" - ], - [ - "i", - "cion" - ], - [ - "▁vict", - "ory" - ], - [ - "▁c", - "anon" - ], - [ - "▁can", - "on" - ], - [ - "▁ca", - "non" - ], - [ - "iz", - "ar" - ], - [ - "iza", - "r" - ], - [ - "i", - "zar" - ], - [ - "iz", - "ia" - ], - [ - "izi", - "a" - ], - [ - "i", - "zia" - ], - [ - "▁m", - "ate" - ], - [ - "▁ma", - "te" - ], - [ - "▁mat", - "e" - ], - [ - "▁", - "mate" - ], - [ - "▁lay", - "ers" - ], - [ - "▁layer", - "s" - ], - [ - "▁", - "layers" - ], - [ - "su", - "do" - ], - [ - "s", - "udo" - ], - [ - "sch", - "ule" - ], - [ - "per", - "iment" - ], - [ - "ül", - "et" - ], - [ - "ü", - "let" - ], - [ - "AR", - "CHAR" - ], - [ - "▁тер", - "рито" - ], - [ - "▁me", - "asures" - ], - [ - "▁measure", - "s" - ], - [ - "▁meas", - "ures" - ], - [ - "▁z", - "ou" - ], - [ - "▁zo", - "u" - ], - [ - "ops", - "is" - ], - [ - "на", - "ми" - ], - [ - "tb", - "ody" - ], - [ - "t", - "body" - ], - [ - "▁e", - "se" - ], - [ - "▁es", - "e" - ], - [ - "▁", - "ese" - ], - [ - "ster", - "dam" - ], - [ - "sterd", - "am" - ], - [ - "▁ph", - "oto" - ], - [ - "▁phot", - "o" - ], - [ - "▁", - "photo" - ], - [ - "ynchron", - "ous" - ], - [ - "set", - "minus" - ], - [ - "▁lo", - "ads" - ], - [ - "▁load", - "s" - ], - [ - "▁", - "loads" - ], - [ - "▁ple", - "asure" - ], - [ - "▁me", - "ille" - ], - [ - "}\\", - "," - ], - [ - "}", - "\\," - ], - [ - "qu", - "al" - ], - [ - "qua", - "l" - ], - [ - "q", - "ual" - ], - [ - "▁fav", - "our" - ], - [ - "▁r", - "od" - ], - [ - "▁ro", - "d" - ], - [ - "▁", - "rod" - ], - [ - "De", - "r" - ], - [ - "D", - "er" - ], - [ - "ра", - "бо" - ], - [ - "раб", - "о" - ], - [ - "▁pr", - "essed" - ], - [ - "▁pres", - "sed" - ], - [ - "▁press", - "ed" - ], - [ - "▁", - "pressed" - ], - [ - "r", - "ę" - ], - [ - "ie", - "ving" - ], - [ - "iev", - "ing" - ], - [ - "mate", - "rial" - ], - [ - "m", - "aterial" - ], - [ - "vi", - "rt" - ], - [ - "vir", - "t" - ], - [ - "v", - "irt" - ], - [ - "▁cap", - "able" - ], - [ - "с", - "ло" - ], - [ - "us", - "hed" - ], - [ - "ush", - "ed" - ], - [ - "▁по", - "бе" - ], - [ - "uset", - "ts" - ], - [ - "un", - "signed" - ], - [ - "uns", - "igned" - ], - [ - "k", - "ów" - ], - [ - "▁o", - "v" - ], - [ - "▁", - "ov" - ], - [ - "eg", - "eben" - ], - [ - "ege", - "ben" - ], - [ - "e", - "geben" - ], - [ - "▁app", - "lying" - ], - [ - "▁apply", - "ing" - ], - [ - "▁gal", - "ax" - ], - [ - "▁ga", - "lax" - ], - [ - "▁O", - "racle" - ], - [ - "▁Or", - "acle" - ], - [ - "▁Stutt", - "gart" - ], - [ - "In", - "fl" - ], - [ - "Inf", - "l" - ], - [ - "ach", - "usetts" - ], - [ - "▁de", - "el" - ], - [ - "li", - "re" - ], - [ - "l", - "ire" - ], - [ - "▁stat", - "unit" - ], - [ - "▁Polit", - "iker" - ], - [ - "▁Politik", - "er" - ], - [ - "▁beaut", - "y" - ], - [ - ")", - ">" - ], - [ - "▁Columb", - "ia" - ], - [ - "▁zewnętrz", - "ne" - ], - [ - "▁про", - "гра" - ], - [ - "▁пр", - "огра" - ], - [ - "▁d", - "x" - ], - [ - "▁", - "dx" - ], - [ - "ck", - "now" - ], - [ - "c", - "know" - ], - [ - "▁d", - "ub" - ], - [ - "▁du", - "b" - ], - [ - "un", - "ächst" - ], - [ - "find", - "ViewById" - ], - [ - "▁M", - "and" - ], - [ - "▁Man", - "d" - ], - [ - "▁Ma", - "nd" - ], - [ - "ál", - "l" - ], - [ - "á", - "ll" - ], - [ - "na", - "ire" - ], - [ - "n", - "aire" - ], - [ - "▁dest", - "in" - ], - [ - "is", - "ting" - ], - [ - "ist", - "ing" - ], - [ - "isti", - "ng" - ], - [ - "ag", - "gi" - ], - [ - "agg", - "i" - ], - [ - "a", - "ggi" - ], - [ - "ch", - "art" - ], - [ - "char", - "t" - ], - [ - "cha", - "rt" - ], - [ - "c", - "hart" - ], - [ - "▁just", - "ice" - ], - [ - "Sim", - "ple" - ], - [ - "▁un", - "fortunately" - ], - [ - "і", - "р" - ], - [ - "▁qu", - "esta" - ], - [ - "▁que", - "sta" - ], - [ - "▁quest", - "a" - ], - [ - "▁", - "questa" - ], - [ - "▁Govern", - "or" - ], - [ - "я", - "в" - ], - [ - "▁mús", - "ica" - ], - [ - "▁equ", - "ipo" - ], - [ - "▁equip", - "o" - ], - [ - "▁D", - "est" - ], - [ - "▁De", - "st" - ], - [ - "▁Des", - "t" - ], - [ - "▁", - "Dest" - ], - [ - "el", - "ect" - ], - [ - "ele", - "ct" - ], - [ - "e", - "lect" - ], - [ - "Stack", - "Trace" - ], - [ - "зо", - "м" - ], - [ - "з", - "ом" - ], - [ - "pr", - "oc" - ], - [ - "pro", - "c" - ], - [ - "p", - "roc" - ], - [ - "ent", - "in" - ], - [ - "enti", - "n" - ], - [ - "ad", - "ora" - ], - [ - "ado", - "ra" - ], - [ - "ador", - "a" - ], - [ - "▁Л", - "ю" - ], - [ - "▁register", - "ed" - ], - [ - "H", - "L" - ], - [ - "face", - "book" - ], - [ - "fac", - "ebook" - ], - [ - "▁st", - "oring" - ], - [ - "▁stor", - "ing" - ], - [ - "▁sto", - "ring" - ], - [ - "▁Current", - "ly" - ], - [ - "▁qu", - "adr" - ], - [ - "▁quad", - "r" - ], - [ - "Stand", - "ard" - ], - [ - "tr", - "im" - ], - [ - "tri", - "m" - ], - [ - "t", - "rim" - ], - [ - "ear", - "s" - ], - [ - "ea", - "rs" - ], - [ - "e", - "ars" - ], - [ - "se", - "nder" - ], - [ - "sen", - "der" - ], - [ - "send", - "er" - ], - [ - "s", - "ender" - ], - [ - "▁V", - "as" - ], - [ - "▁Va", - "s" - ], - [ - "▁ed", - "ific" - ], - [ - "▁B", - "ür" - ], - [ - "▁Bü", - "r" - ], - [ - "▁C", - "ountry" - ], - [ - "▁Count", - "ry" - ], - [ - "▁Coun", - "try" - ], - [ - "▁", - "Country" - ], - [ - "th", - "a" - ], - [ - "t", - "ha" - ], - [ - ";", - "\"" - ], - [ - "no", - "r" - ], - [ - "n", - "or" - ], - [ - "▁Do", - "ctor" - ], - [ - "▁Doc", - "tor" - ], - [ - "ru", - "ment" - ], - [ - "rum", - "ent" - ], - [ - "r", - "ument" - ], - [ - "Ge", - "n" - ], - [ - "G", - "en" - ], - [ - "▁B", - "uen" - ], - [ - "▁Bu", - "en" - ], - [ - "ra", - "de" - ], - [ - "rad", - "e" - ], - [ - "r", - "ade" - ], - [ - "▁k", - "un" - ], - [ - "n", - "avigation" - ], - [ - "Pa", - "y" - ], - [ - "P", - "ay" - ], - [ - "▁capt", - "ured" - ], - [ - "▁capture", - "d" - ], - [ - "▁st", - "ruck" - ], - [ - "▁str", - "uck" - ], - [ - "▁stru", - "ck" - ], - [ - "ven", - "ir" - ], - [ - "ém", - "ent" - ], - [ - "é", - "ment" - ], - [ - "▁T", - "ree" - ], - [ - "▁Tr", - "ee" - ], - [ - "▁Tre", - "e" - ], - [ - "▁", - "Tree" - ], - [ - "▁x", - "x" - ], - [ - "▁", - "xx" - ], - [ - "▁n", - "arr" - ], - [ - "▁na", - "rr" - ], - [ - "▁nar", - "r" - ], - [ - "ль", - "ного" - ], - [ - "льно", - "го" - ], - [ - "▁inst", - "alling" - ], - [ - "▁install", - "ing" - ], - [ - "▁instal", - "ling" - ], - [ - "▁associ", - "ation" - ], - [ - "▁insert", - "ed" - ], - [ - "▁inser", - "ted" - ], - [ - "er", - "ner" - ], - [ - "ern", - "er" - ], - [ - "erne", - "r" - ], - [ - "valid", - "ate" - ], - [ - "▁l", - "ut" - ], - [ - "▁lu", - "t" - ], - [ - "▁g", - "lo" - ], - [ - "▁gl", - "o" - ], - [ - "▁techn", - "ology" - ], - [ - "▁P", - "lace" - ], - [ - "▁Pl", - "ace" - ], - [ - "▁Pla", - "ce" - ], - [ - "▁", - "Place" - ], - [ - "$", - "?" - ], - [ - "▁z", - "v" - ], - [ - "с", - "лі" - ], - [ - "E", - "P" - ], - [ - "▁at", - "mos" - ], - [ - "ug", - "o" - ], - [ - "u", - "go" - ], - [ - "ér", - "t" - ], - [ - "é", - "rt" - ], - [ - "▁W", - "erk" - ], - [ - "▁Wer", - "k" - ], - [ - "▁%", - "}" - ], - [ - "te", - "le" - ], - [ - "tel", - "e" - ], - [ - "t", - "ele" - ], - [ - "Sp", - "an" - ], - [ - "S", - "pan" - ], - [ - "▁R", - "aj" - ], - [ - "▁Ra", - "j" - ], - [ - "▁Person", - "en" - ], - [ - "▁Pers", - "onen" - ], - [ - "▁C", - "ant" - ], - [ - "▁Can", - "t" - ], - [ - "▁Ca", - "nt" - ], - [ - "▁com", - "bat" - ], - [ - "▁comb", - "at" - ], - [ - "▁observ", - "ation" - ], - [ - "▁obs", - "ervation" - ], - [ - "param", - "eter" - ], - [ - "para", - "meter" - ], - [ - "▁agre", - "ed" - ], - [ - "▁agree", - "d" - ], - [ - "▁agr", - "eed" - ], - [ - "pu", - "r" - ], - [ - "p", - "ur" - ], - [ - "▁sh", - "adow" - ], - [ - "▁", - "shadow" - ], - [ - "▁g", - "ł" - ], - [ - "Key", - "s" - ], - [ - "Ke", - "ys" - ], - [ - "Cre", - "d" - ], - [ - "Cr", - "ed" - ], - [ - "C", - "red" - ], - [ - "ou", - "ri" - ], - [ - "our", - "i" - ], - [ - "o", - "uri" - ], - [ - "▁p", - "ale" - ], - [ - "▁pa", - "le" - ], - [ - "▁pal", - "e" - ], - [ - "ic", - "ké" - ], - [ - "ick", - "é" - ], - [ - "▁We", - "ek" - ], - [ - "▁", - "Week" - ], - [ - "▁Pr", - "ime" - ], - [ - "▁Pri", - "me" - ], - [ - "▁Prim", - "e" - ], - [ - ">", - "." - ], - [ - "Init", - "ial" - ], - [ - "▁о", - "дин" - ], - [ - "▁од", - "ин" - ], - [ - "▁'", - "'," - ], - [ - "▁''", - "," - ], - [ - "▁у", - "чи" - ], - [ - "▁In", - "v" - ], - [ - "▁", - "Inv" - ], - [ - "col", - "a" - ], - [ - "co", - "la" - ], - [ - "c", - "ola" - ], - [ - "ci", - "ble" - ], - [ - "c", - "ible" - ], - [ - "▁The", - "atre" - ], - [ - "▁b", - "em" - ], - [ - "▁be", - "m" - ], - [ - "▁satisf", - "y" - ], - [ - "x", - "l" - ], - [ - "▁ра", - "зви" - ], - [ - "▁раз", - "ви" - ], - [ - "▁p", - "ixel" - ], - [ - "▁pix", - "el" - ], - [ - "lá", - "n" - ], - [ - "l", - "án" - ], - [ - "▁tw", - "ee" - ], - [ - "▁twe", - "e" - ], - [ - "ço", - "n" - ], - [ - "ç", - "on" - ], - [ - "не", - "ния" - ], - [ - "▁A", - "T" - ], - [ - "▁", - "AT" - ], - [ - "èg", - "e" - ], - [ - "è", - "ge" - ], - [ - "▁M", - "ort" - ], - [ - "▁Mor", - "t" - ], - [ - "▁Mo", - "rt" - ], - [ - "▁my", - "sq" - ], - [ - "▁", - "mysq" - ], - [ - "ft", - "en" - ], - [ - "fte", - "n" - ], - [ - "f", - "ten" - ], - [ - "▁п", - "ес" - ], - [ - "▁пе", - "с" - ], - [ - "ém", - "a" - ], - [ - "é", - "ma" - ], - [ - "▁Service", - "s" - ], - [ - "▁Serv", - "ices" - ], - [ - "▁", - "Services" - ], - [ - "custom", - "er" - ], - [ - "▁A", - "WS" - ], - [ - "ъ", - "т" - ], - [ - "▁A", - "ch" - ], - [ - "▁Ac", - "h" - ], - [ - "%", - "." - ], - [ - "▁clar", - "ify" - ], - [ - "▁уни", - "версите" - ], - [ - "xt", - "ure" - ], - [ - "um", - "i" - ], - [ - "u", - "mi" - ], - [ - "▁s", - "å" - ], - [ - "▁P", - "el" - ], - [ - "▁Pe", - "l" - ], - [ - "se", - "rial" - ], - [ - "ser", - "ial" - ], - [ - "UR", - "I" - ], - [ - "U", - "RI" - ], - [ - "▁r", - "g" - ], - [ - "▁", - "rg" - ], - [ - "▁со", - "ста" - ], - [ - "ch", - "estra" - ], - [ - "che", - "stra" - ], - [ - "ches", - "tra" - ], - [ - "].", - "[" - ], - [ - "]", - ".[" - ], - [ - "we", - "n" - ], - [ - "w", - "en" - ], - [ - "▁Lond", - "res" - ], - [ - "▁an", - "ys" - ], - [ - "▁any", - "s" - ], - [ - "Data", - "Source" - ], - [ - "▁рай", - "оне" - ], - [ - "▁райо", - "не" - ], - [ - "▁район", - "е" - ], - [ - "▁re", - "in" - ], - [ - "▁r", - "ein" - ], - [ - "▁rei", - "n" - ], - [ - "▁met", - "adata" - ], - [ - "▁meta", - "data" - ], - [ - "▁", - "metadata" - ], - [ - "um", - "ble" - ], - [ - "umb", - "le" - ], - [ - "ar", - "beit" - ], - [ - "arbe", - "it" - ], - [ - "hn", - "er" - ], - [ - "h", - "ner" - ], - [ - "ci", - "ent" - ], - [ - "cie", - "nt" - ], - [ - "c", - "ient" - ], - [ - "▁n", - "orte" - ], - [ - "▁nor", - "te" - ], - [ - "▁о", - "на" - ], - [ - "▁он", - "а" - ], - [ - "▁", - "она" - ], - [ - "▁sc", - "ored" - ], - [ - "▁score", - "d" - ], - [ - "▁r", - "ay" - ], - [ - "▁ra", - "y" - ], - [ - "▁", - "ray" - ], - [ - "▁фев", - "ра" - ], - [ - "▁фе", - "вра" - ], - [ - "▁pro", - "tagon" - ], - [ - "▁prot", - "agon" - ], - [ - "▁S", - "ac" - ], - [ - "▁Sa", - "c" - ], - [ - "▁comm", - "only" - ], - [ - "▁common", - "ly" - ], - [ - "Linear", - "Layout" - ], - [ - "▁app", - "lic" - ], - [ - "▁ма", - "я" - ], - [ - "З", - "а" - ], - [ - "▁access", - "ible" - ], - [ - "ie", - "wer" - ], - [ - "iew", - "er" - ], - [ - "fl", - "ag" - ], - [ - "f", - "lag" - ], - [ - "▁R", - "ück" - ], - [ - "ä", - "u" - ], - [ - "▁e", - "rano" - ], - [ - "▁er", - "ano" - ], - [ - "▁era", - "no" - ], - [ - "▁eran", - "o" - ], - [ - "▁auth", - "entic" - ], - [ - "▁", - "authentic" - ], - [ - "▁R", - "y" - ], - [ - "▁не", - "ско" - ], - [ - "▁emb", - "argo" - ], - [ - "▁embar", - "go" - ], - [ - "▁d", - "ry" - ], - [ - "▁dr", - "y" - ], - [ - "▁reason", - "able" - ], - [ - "▁Mod", - "ule" - ], - [ - "▁", - "Module" - ], - [ - "▁acc", - "eler" - ], - [ - "▁inter", - "view" - ], - [ - "▁C", - "reek" - ], - [ - "▁Cre", - "ek" - ], - [ - "▁al", - "pha" - ], - [ - "▁", - "alpha" - ], - [ - "se", - "rie" - ], - [ - "ser", - "ie" - ], - [ - "s", - "erie" - ], - [ - "Th", - "ey" - ], - [ - "The", - "y" - ], - [ - "ю", - "чи" - ], - [ - "▁H", - "of" - ], - [ - "▁Ho", - "f" - ], - [ - "▁C", - "R" - ], - [ - "▁", - "CR" - ], - [ - "mod", - "al" - ], - [ - "mo", - "dal" - ], - [ - "▁sequence", - "s" - ], - [ - "▁sequ", - "ences" - ], - [ - "cl", - "osed" - ], - [ - "close", - "d" - ], - [ - "clos", - "ed" - ], - [ - "clo", - "sed" - ], - [ - ")}", - "$" - ], - [ - ")", - "}$" - ], - [ - "▁Ч", - "ер" - ], - [ - "▁Че", - "р" - ], - [ - "▁OR", - "DER" - ], - [ - "▁", - "ORDER" - ], - [ - "Right", - "arrow" - ], - [ - "R", - "ightarrow" - ], - [ - "haus", - "en" - ], - [ - "}}", - "_" - ], - [ - "}", - "}_" - ], - [ - "▁tamb", - "é" - ], - [ - "▁magn", - "etic" - ], - [ - "▁magnet", - "ic" - ], - [ - "▁Mc", - "C" - ], - [ - "▁win", - "ning" - ], - [ - "under", - "line" - ], - [ - "▁Bill", - "board" - ], - [ - "na", - "io" - ], - [ - "▁l", - "iqu" - ], - [ - "▁li", - "qu" - ], - [ - "▁", - "liqu" - ], - [ - "display", - "style" - ], - [ - "time", - "out" - ], - [ - "▁consider", - "able" - ], - [ - "▁e", - "ben" - ], - [ - "▁eb", - "en" - ], - [ - "▁", - "eben" - ], - [ - "iffer", - "ent" - ], - [ - "iffe", - "rent" - ], - [ - "an", - "u" - ], - [ - "a", - "nu" - ], - [ - "▁С", - "ов" - ], - [ - "▁Со", - "в" - ], - [ - "[", - "(" - ], - [ - "▁:", - "-)" - ], - [ - "▁:-", - ")" - ], - [ - "le", - "itung" - ], - [ - "form", - "ed" - ], - [ - "for", - "med" - ], - [ - "▁Man", - "ager" - ], - [ - "▁", - "Manager" - ], - [ - "▁on", - "click" - ], - [ - "T", - "Y" - ], - [ - "та", - "х" - ], - [ - "C", - "V" - ], - [ - "run", - "time" - ], - [ - "r", - "untime" - ], - [ - "po", - "que" - ], - [ - "▁Л", - "о" - ], - [ - "Tem", - "p" - ], - [ - "Te", - "mp" - ], - [ - "T", - "emp" - ], - [ - "lo", - "aded" - ], - [ - "load", - "ed" - ], - [ - "▁!", - "==" - ], - [ - "▁!=", - "=" - ], - [ - "▁s", - "inger" - ], - [ - "▁sing", - "er" - ], - [ - "▁sin", - "ger" - ], - [ - "fa", - "r" - ], - [ - "f", - "ar" - ], - [ - "▁Com", - "ple" - ], - [ - "▁Comp", - "le" - ], - [ - "▁", - "Comple" - ], - [ - "▁Ö", - "sterreich" - ], - [ - "Pol", - "icy" - ], - [ - "▁work", - "er" - ], - [ - "▁wor", - "ker" - ], - [ - "▁", - "worker" - ], - [ - "W", - "rapper" - ], - [ - "ob", - "i" - ], - [ - "o", - "bi" - ], - [ - "▁discuss", - "ed" - ], - [ - "▁b", - "uy" - ], - [ - "▁bu", - "y" - ], - [ - "▁янва", - "ря" - ], - [ - "▁D", - "in" - ], - [ - "▁Di", - "n" - ], - [ - "▁g", - "ed" - ], - [ - "▁ge", - "d" - ], - [ - "▁", - "ged" - ], - [ - "ско", - "ј" - ], - [ - "E", - "urope" - ], - [ - "▁t", - "all" - ], - [ - "▁tal", - "l" - ], - [ - "▁ta", - "ll" - ], - [ - "ho", - "s" - ], - [ - "h", - "os" - ], - [ - "ла", - "го" - ], - [ - "▁B", - "lock" - ], - [ - "▁Bl", - "ock" - ], - [ - "▁Blo", - "ck" - ], - [ - "▁", - "Block" - ], - [ - "▁ident", - "ified" - ], - [ - "List", - "View" - ], - [ - "▁attempt", - "ing" - ], - [ - "▁typ", - "ical" - ], - [ - "ps", - "um" - ], - [ - "p", - "sum" - ], - [ - "os", - "ter" - ], - [ - "ost", - "er" - ], - [ - "o", - "ster" - ], - [ - "▁ж", - "урна" - ], - [ - "P", - "e" - ], - [ - "mer", - "ce" - ], - [ - "▁un", - "expected" - ], - [ - "hu", - "i" - ], - [ - "h", - "ui" - ], - [ - "let", - "ter" - ], - [ - "lett", - "er" - ], - [ - "lette", - "r" - ], - [ - "l", - "etter" - ], - [ - "▁nue", - "vo" - ], - [ - "▁а", - "бо" - ], - [ - "▁VAL", - "UES" - ], - [ - "▁I", - "z" - ], - [ - "Fl", - "ags" - ], - [ - "Flag", - "s" - ], - [ - "▁TR", - "UE" - ], - [ - "▁", - "TRUE" - ], - [ - "iz", - "ación" - ], - [ - "iza", - "ción" - ], - [ - "▁gro", - "wing" - ], - [ - "▁grow", - "ing" - ], - [ - "es", - "tre" - ], - [ - "est", - "re" - ], - [ - "estr", - "e" - ], - [ - "e", - "stre" - ], - [ - "▁p", - "oly" - ], - [ - "▁po", - "ly" - ], - [ - "▁pol", - "y" - ], - [ - "▁", - "poly" - ], - [ - "▁St", - "one" - ], - [ - "▁Sto", - "ne" - ], - [ - "▁V", - "III" - ], - [ - "▁VI", - "II" - ], - [ - "▁VII", - "I" - ], - [ - "▁local", - "host" - ], - [ - "▁", - "localhost" - ], - [ - "äh", - "lt" - ], - [ - "ähl", - "t" - ], - [ - "▁embed", - "ded" - ], - [ - "jd", - "bc" - ], - [ - "j", - "dbc" - ], - [ - "▁con", - "vention" - ], - [ - "▁conv", - "ention" - ], - [ - "▁conven", - "tion" - ], - [ - "▁convent", - "ion" - ], - [ - "▁s", - "cala" - ], - [ - "▁sc", - "ala" - ], - [ - "▁scal", - "a" - ], - [ - "▁", - "scala" - ], - [ - "со", - "к" - ], - [ - "с", - "ок" - ], - [ - "▁an", - "alog" - ], - [ - "▁anal", - "og" - ], - [ - "▁\"", - "+" - ], - [ - "▁", - "\"+" - ], - [ - "ц", - "ю" - ], - [ - "oc", - "c" - ], - [ - "o", - "cc" - ], - [ - "▁l", - "itt" - ], - [ - "▁li", - "tt" - ], - [ - "▁lit", - "t" - ], - [ - "P", - "N" - ], - [ - "▁а", - "ктив" - ], - [ - "▁ак", - "тив" - ], - [ - "att", - "ributes" - ], - [ - "attribute", - "s" - ], - [ - "▁F", - "erd" - ], - [ - "▁Fe", - "rd" - ], - [ - "▁Fer", - "d" - ], - [ - "▁az", - "ure" - ], - [ - "▁", - "azure" - ], - [ - "ș", - "ti" - ], - [ - "ño", - "s" - ], - [ - "ñ", - "os" - ], - [ - "pi", - "ng" - ], - [ - "pin", - "g" - ], - [ - "p", - "ing" - ], - [ - "▁te", - "acher" - ], - [ - "▁teach", - "er" - ], - [ - "▁tea", - "cher" - ], - [ - "}", - "&" - ], - [ - "ip", - "e" - ], - [ - "i", - "pe" - ], - [ - "▁N", - "ob" - ], - [ - "▁No", - "b" - ], - [ - "▁и", - "ма" - ], - [ - "▁им", - "а" - ], - [ - "Bi", - "nd" - ], - [ - "B", - "ind" - ], - [ - "▁mag", - "ic" - ], - [ - "▁Trans", - "port" - ], - [ - "▁", - "Transport" - ], - [ - "ix", - "el" - ], - [ - "▁comp", - "uted" - ], - [ - "▁comput", - "ed" - ], - [ - "▁compute", - "d" - ], - [ - "ag", - "na" - ], - [ - "agn", - "a" - ], - [ - "er", - "st" - ], - [ - "ers", - "t" - ], - [ - "H", - "A" - ], - [ - "W", - "ait" - ], - [ - "▁author", - "s" - ], - [ - "▁auth", - "ors" - ], - [ - "▁;", - ")" - ], - [ - "cl", - "am" - ], - [ - "cla", - "m" - ], - [ - "c", - "lam" - ], - [ - "▁Pen", - "nsylvan" - ], - [ - "▁d", - "rug" - ], - [ - "▁dr", - "ug" - ], - [ - "▁dru", - "g" - ], - [ - "▁v", - "ain" - ], - [ - "▁va", - "in" - ], - [ - "▁employ", - "ed" - ], - [ - "▁individ", - "uals" - ], - [ - "▁individual", - "s" - ], - [ - "▁an", - "ge" - ], - [ - "▁ang", - "e" - ], - [ - "▁", - "ange" - ], - [ - "ut", - "at" - ], - [ - "uta", - "t" - ], - [ - "u", - "tat" - ], - [ - "▁$", - "-" - ], - [ - "▁", - "$-" - ], - [ - "cor", - "rect" - ], - [ - "corr", - "ect" - ], - [ - "▁exper", - "iments" - ], - [ - "▁experiment", - "s" - ], - [ - "Arg", - "ument" - ], - [ - "▁I", - "B" - ], - [ - "▁", - "IB" - ], - [ - "▁p", - "ère" - ], - [ - "▁B", - "rian" - ], - [ - "▁Br", - "ian" - ], - [ - "ber", - "ger" - ], - [ - "berg", - "er" - ], - [ - "Ma", - "c" - ], - [ - "M", - "ac" - ], - [ - "ia", - "st" - ], - [ - "ias", - "t" - ], - [ - "i", - "ast" - ], - [ - "Per", - "m" - ], - [ - "Pe", - "rm" - ], - [ - "P", - "erm" - ], - [ - "Ca", - "st" - ], - [ - "C", - "ast" - ], - [ - "▁{", - "};" - ], - [ - "▁{}", - ";" - ], - [ - "▁St", - "udent" - ], - [ - "▁Stud", - "ent" - ], - [ - "▁Stu", - "dent" - ], - [ - "▁", - "Student" - ], - [ - "▁st", - "att" - ], - [ - "▁stat", - "t" - ], - [ - "▁sta", - "tt" - ], - [ - "al", - "gebra" - ], - [ - "▁equ", - "als" - ], - [ - "▁equal", - "s" - ], - [ - "▁eq", - "uals" - ], - [ - "▁", - "equals" - ], - [ - "▁pro", - "jet" - ], - [ - "▁prés", - "ident" - ], - [ - "Activity", - "Thread" - ], - [ - "▁ein", - "z" - ], - [ - "en", - "ia" - ], - [ - "eni", - "a" - ], - [ - "e", - "nia" - ], - [ - "re", - "z" - ], - [ - "r", - "ez" - ], - [ - "ess", - "ional" - ], - [ - "ession", - "al" - ], - [ - "▁авгу", - "ста" - ], - [ - "over", - "ride" - ], - [ - "ne", - "ws" - ], - [ - "new", - "s" - ], - [ - "▁pla", - "net" - ], - [ - "▁plan", - "et" - ], - [ - "▁plane", - "t" - ], - [ - "n", - "n" - ], - [ - "▁W", - "is" - ], - [ - "▁Wi", - "s" - ], - [ - "тв", - "ер" - ], - [ - "т", - "вер" - ], - [ - "▁Val", - "id" - ], - [ - "▁", - "Valid" - ], - [ - "▁G", - "ef" - ], - [ - "▁Ge", - "f" - ], - [ - "гра", - "д" - ], - [ - "▁e", - "ig" - ], - [ - "an", - "tom" - ], - [ - "ant", - "om" - ], - [ - "anto", - "m" - ], - [ - "▁Me", - "ister" - ], - [ - "fl", - "ags" - ], - [ - "flag", - "s" - ], - [ - "ffic", - "iale" - ], - [ - "fficial", - "e" - ], - [ - "ша", - "я" - ], - [ - "-", - "," - ], - [ - "at", - "ionen" - ], - [ - "ation", - "en" - ], - [ - "ati", - "onen" - ], - [ - "atio", - "nen" - ], - [ - "mo", - "use" - ], - [ - "m", - "ouse" - ], - [ - "stand", - "ard" - ], - [ - "Sing", - "le" - ], - [ - "▁b", - "ol" - ], - [ - "▁bo", - "l" - ], - [ - "▁", - "bol" - ], - [ - "is", - "is" - ], - [ - "isi", - "s" - ], - [ - "▁f", - "ruit" - ], - [ - "▁fr", - "uit" - ], - [ - "c", - "ourse" - ], - [ - "it", - "ants" - ], - [ - "itan", - "ts" - ], - [ - "▁é", - "taient" - ], - [ - "▁ét", - "aient" - ], - [ - "Text", - "Field" - ], - [ - "▁ф", - "он" - ], - [ - "▁фо", - "н" - ], - [ - "▁a", - "ircraft" - ], - [ - "▁air", - "craft" - ], - [ - "▁I", - "SSN" - ], - [ - "▁IS", - "SN" - ], - [ - "▁west", - "ern" - ], - [ - "▁", - "western" - ], - [ - "▁represent", - "ing" - ], - [ - "Es", - "p" - ], - [ - "E", - "sp" - ], - [ - "▁El", - "se" - ], - [ - "▁Els", - "e" - ], - [ - "▁", - "Else" - ], - [ - "▁s", - "izes" - ], - [ - "▁si", - "zes" - ], - [ - "▁size", - "s" - ], - [ - "▁satisf", - "ied" - ], - [ - "ot", - "os" - ], - [ - "oto", - "s" - ], - [ - "U", - "D" - ], - [ - "Fin", - "al" - ], - [ - "Fi", - "nal" - ], - [ - "F", - "inal" - ], - [ - "ó", - "j" - ], - [ - "è", - "ve" - ], - [ - "▁R", - "oy" - ], - [ - "▁Ro", - "y" - ], - [ - "ff", - "en" - ], - [ - "ffe", - "n" - ], - [ - "f", - "fen" - ], - [ - "▁s", - "alt" - ], - [ - "▁sa", - "lt" - ], - [ - "▁sal", - "t" - ], - [ - "▁L", - "abel" - ], - [ - "▁La", - "bel" - ], - [ - "▁Lab", - "el" - ], - [ - "▁", - "Label" - ], - [ - "S", - "k" - ], - [ - "▁к", - "ре" - ], - [ - "▁", - "кре" - ], - [ - "▁Ли", - "тература" - ], - [ - "▁с", - "м" - ], - [ - "Att", - "ributes" - ], - [ - "Attribute", - "s" - ], - [ - "ay", - "e" - ], - [ - "a", - "ye" - ], - [ - "сь", - "к" - ], - [ - "▁вы", - "со" - ], - [ - "-", - ")" - ], - [ - "os", - "es" - ], - [ - "ose", - "s" - ], - [ - "cal", - "cul" - ], - [ - "calc", - "ul" - ], - [ - "▁C", - "annot" - ], - [ - "▁Can", - "not" - ], - [ - "▁", - "Cannot" - ], - [ - "Gener", - "ic" - ], - [ - "em", - "o" - ], - [ - "e", - "mo" - ], - [ - "▁A", - "utor" - ], - [ - "▁Aut", - "or" - ], - [ - "▁Au", - "tor" - ], - [ - "▁Auto", - "r" - ], - [ - "лё", - "н" - ], - [ - "л", - "ён" - ], - [ - "ла", - "га" - ], - [ - "vo", - "te" - ], - [ - "v", - "ote" - ], - [ - "lic", - "ates" - ], - [ - "licate", - "s" - ], - [ - "lica", - "tes" - ], - [ - "ru", - "s" - ], - [ - "r", - "us" - ], - [ - "él", - "i" - ], - [ - "é", - "li" - ], - [ - "op", - "f" - ], - [ - "o", - "pf" - ], - [ - "at", - "ique" - ], - [ - "ati", - "que" - ], - [ - "sc", - "ala" - ], - [ - "scal", - "a" - ], - [ - "s", - "cala" - ], - [ - "▁Oh", - "io" - ], - [ - "▁Brit", - "ann" - ], - [ - "▁b", - "ef" - ], - [ - "▁be", - "f" - ], - [ - "▁Е", - "вро" - ], - [ - "▁Ев", - "ро" - ], - [ - "▁Care", - "er" - ], - [ - "is", - "ée" - ], - [ - "isé", - "e" - ], - [ - "ó", - "t" - ], - [ - "bo", - "se" - ], - [ - "bos", - "e" - ], - [ - "b", - "ose" - ], - [ - "▁Б", - "ер" - ], - [ - "▁Бе", - "р" - ], - [ - "▁Cont", - "roller" - ], - [ - "▁Control", - "ler" - ], - [ - "▁", - "Controller" - ], - [ - "po", - "le" - ], - [ - "pol", - "e" - ], - [ - "p", - "ole" - ], - [ - "▁al", - "len" - ], - [ - "▁all", - "en" - ], - [ - "▁alle", - "n" - ], - [ - "▁", - "allen" - ], - [ - "▁h", - "ack" - ], - [ - "▁ha", - "ck" - ], - [ - "▁ext", - "ent" - ], - [ - "▁cal", - "ci" - ], - [ - "▁calc", - "i" - ], - [ - "Me", - "r" - ], - [ - "M", - "er" - ], - [ - "▁sum", - "mary" - ], - [ - "▁summar", - "y" - ], - [ - "▁summ", - "ary" - ], - [ - "▁", - "summary" - ], - [ - "Mar", - "t" - ], - [ - "Ma", - "rt" - ], - [ - "M", - "art" - ], - [ - "▁histor", - "ical" - ], - [ - "▁historic", - "al" - ], - [ - "im", - "at" - ], - [ - "ima", - "t" - ], - [ - "i", - "mat" - ], - [ - "bu", - "d" - ], - [ - "b", - "ud" - ], - [ - "▁F", - "OR" - ], - [ - "▁FO", - "R" - ], - [ - "▁", - "FOR" - ], - [ - "ex", - "port" - ], - [ - "exp", - "ort" - ], - [ - "ed", - "i" - ], - [ - "e", - "di" - ], - [ - "Map", - "ping" - ], - [ - "Mapp", - "ing" - ], - [ - "Ma", - "pping" - ], - [ - "M", - "apping" - ], - [ - "▁A", - "y" - ], - [ - "▁R", - "uby" - ], - [ - "▁Ru", - "by" - ], - [ - "▁Rub", - "y" - ], - [ - "▁definition", - "s" - ], - [ - "▁defin", - "itions" - ], - [ - "▁definit", - "ions" - ], - [ - "▁{", - "$" - ], - [ - "▁", - "{$" - ], - [ - "▁y", - "ours" - ], - [ - "▁you", - "rs" - ], - [ - "▁your", - "s" - ], - [ - "▁yo", - "urs" - ], - [ - "ri", - "as" - ], - [ - "ria", - "s" - ], - [ - "r", - "ias" - ], - [ - "To", - "uch" - ], - [ - "T", - "ouch" - ], - [ - "▁G", - "az" - ], - [ - "▁Ga", - "z" - ], - [ - "▁Aut", - "om" - ], - [ - "▁Au", - "tom" - ], - [ - "▁Auto", - "m" - ], - [ - "▁", - "Autom" - ], - [ - "▁и", - "стори" - ], - [ - "▁исто", - "ри" - ], - [ - "▁ис", - "тори" - ], - [ - "▁d", - "elen" - ], - [ - "▁de", - "len" - ], - [ - "▁del", - "en" - ], - [ - "▁K", - "inder" - ], - [ - "▁Kind", - "er" - ], - [ - "▁Ki", - "nder" - ], - [ - "▁Kin", - "der" - ], - [ - "}}", - "%" - ], - [ - "}", - "}%" - ], - [ - "▁perform", - "ing" - ], - [ - "F", - "R" - ], - [ - "▁S", - "ig" - ], - [ - "▁Si", - "g" - ], - [ - "▁B", - "rad" - ], - [ - "▁Br", - "ad" - ], - [ - "▁Bra", - "d" - ], - [ - "br", - "as" - ], - [ - "bra", - "s" - ], - [ - "b", - "ras" - ], - [ - "▁J", - "ar" - ], - [ - "▁Ja", - "r" - ], - [ - "pk", - "g" - ], - [ - "p", - "kg" - ], - [ - "w", - "r" - ], - [ - "▁P", - "ays" - ], - [ - "▁Pa", - "ys" - ], - [ - "▁Pay", - "s" - ], - [ - "N", - "C" - ], - [ - "▁op", - "posed" - ], - [ - "▁opp", - "osed" - ], - [ - "▁oppos", - "ed" - ], - [ - "Tr", - "y" - ], - [ - "T", - "ry" - ], - [ - "▁ве", - "зе" - ], - [ - "▁B", - "og" - ], - [ - "▁Bo", - "g" - ], - [ - "▁writ", - "es" - ], - [ - "▁wr", - "ites" - ], - [ - "▁write", - "s" - ], - [ - "▁st", - "ories" - ], - [ - "▁stor", - "ies" - ], - [ - "▁sto", - "ries" - ], - [ - "▁m", - "ater" - ], - [ - "▁ma", - "ter" - ], - [ - "▁mat", - "er" - ], - [ - "▁mate", - "r" - ], - [ - "▁stag", - "ione" - ], - [ - "▁s", - "ty" - ], - [ - "▁st", - "y" - ], - [ - "▁", - "sty" - ], - [ - "▁compat", - "ible" - ], - [ - "▁", - "compatible" - ], - [ - "he", - "ast" - ], - [ - "h", - "east" - ], - [ - "▁G", - "uy" - ], - [ - "▁Gu", - "y" - ], - [ - "egr", - "ünd" - ], - [ - "▁ident", - "ifier" - ], - [ - "▁", - "identifier" - ], - [ - "▁he", - "ads" - ], - [ - "▁head", - "s" - ], - [ - "по", - "зи" - ], - [ - "▁st", - "up" - ], - [ - "▁t", - "f" - ], - [ - "▁", - "tf" - ], - [ - "▁ј", - "ош" - ], - [ - "▁H", - "ugh" - ], - [ - "▁Hu", - "gh" - ], - [ - "▁c", - "ards" - ], - [ - "▁car", - "ds" - ], - [ - "▁card", - "s" - ], - [ - "▁", - "cards" - ], - [ - "ov", - "y" - ], - [ - "o", - "vy" - ], - [ - "▁To", - "ast" - ], - [ - "al", - "las" - ], - [ - "all", - "as" - ], - [ - "alla", - "s" - ], - [ - "▁p", - "úblic" - ], - [ - "▁ass", - "umes" - ], - [ - "▁assum", - "es" - ], - [ - "▁assume", - "s" - ], - [ - "▁чемпи", - "она" - ], - [ - "yc", - "ler" - ], - [ - "ycle", - "r" - ], - [ - "y", - "cler" - ], - [ - "▁Juni", - "or" - ], - [ - "▁Jun", - "ior" - ], - [ - "▁F", - "ich" - ], - [ - "▁estim", - "ated" - ], - [ - "▁estimate", - "d" - ], - [ - "ze", - "rw" - ], - [ - "zer", - "w" - ], - [ - "di", - "alog" - ], - [ - "dia", - "log" - ], - [ - "d", - "ialog" - ], - [ - "ши", - "н" - ], - [ - "ш", - "ин" - ], - [ - "sh", - "ell" - ], - [ - "she", - "ll" - ], - [ - "s", - "hell" - ], - [ - "▁н", - "их" - ], - [ - "▁ни", - "х" - ], - [ - "▁", - "них" - ], - [ - "▁p", - "itch" - ], - [ - "▁pit", - "ch" - ], - [ - "до", - "л" - ], - [ - "out", - "ube" - ], - [ - "▁S", - "anti" - ], - [ - "▁San", - "ti" - ], - [ - "▁Sant", - "i" - ], - [ - "On", - "ClickListener" - ], - [ - "▁M", - "agyar" - ], - [ - "▁Mag", - "yar" - ], - [ - "▁v", - "ue" - ], - [ - "▁vu", - "e" - ], - [ - "▁", - "vue" - ], - [ - "i", - "ão" - ], - [ - "▁`", - "#" - ], - [ - "col", - "lect" - ], - [ - "coll", - "ect" - ], - [ - "▁R", - "ou" - ], - [ - "▁Ro", - "u" - ], - [ - "anal", - "ysis" - ], - [ - "istrz", - "ost" - ], - [ - "▁Dig", - "ital" - ], - [ - "▁", - "Digital" - ], - [ - "▁c", - "rist" - ], - [ - "▁cr", - "ist" - ], - [ - "▁cri", - "st" - ], - [ - "ri", - "ere" - ], - [ - "rie", - "re" - ], - [ - "rier", - "e" - ], - [ - "r", - "iere" - ], - [ - "▁cam", - "po" - ], - [ - "▁camp", - "o" - ], - [ - "U", - "s" - ], - [ - "▁circ", - "a" - ], - [ - "▁cir", - "ca" - ], - [ - "▁Com", - "ponent" - ], - [ - "▁", - "Component" - ], - [ - "▁NS", - "String" - ], - [ - "▁", - "NSString" - ], - [ - "p", - "d" - ], - [ - "▁pr", - "ince" - ], - [ - "▁prin", - "ce" - ], - [ - "▁in", - "voke" - ], - [ - "▁inv", - "oke" - ], - [ - "▁", - "invoke" - ], - [ - "▁Mar", - "ine" - ], - [ - "▁Mari", - "ne" - ], - [ - "Al", - "low" - ], - [ - "All", - "ow" - ], - [ - "est", - "ic" - ], - [ - "esti", - "c" - ], - [ - "ри", - "сти" - ], - [ - "рис", - "ти" - ], - [ - "рист", - "и" - ], - [ - "bo", - "ne" - ], - [ - "bon", - "e" - ], - [ - "b", - "one" - ], - [ - "ту", - "ры" - ], - [ - "тур", - "ы" - ], - [ - "▁pass", - "ion" - ], - [ - "ác", - "ió" - ], - [ - "á", - "ció" - ], - [ - "▁o", - "rn" - ], - [ - "▁or", - "n" - ], - [ - "▁", - "orn" - ], - [ - "ве", - "д" - ], - [ - "▁in", - "vari" - ], - [ - "▁inv", - "ari" - ], - [ - "▁н", - "і" - ], - [ - "▁", - "ні" - ], - [ - "Re", - "move" - ], - [ - "Rem", - "ove" - ], - [ - "en", - "cies" - ], - [ - "enc", - "ies" - ], - [ - "enci", - "es" - ], - [ - "il", - "ib" - ], - [ - "ili", - "b" - ], - [ - "i", - "lib" - ], - [ - "▁Direct", - "or" - ], - [ - "▁Dire", - "ctor" - ], - [ - "▁Dir", - "ector" - ], - [ - "\"", - "\"" - ], - [ - "▁Con", - "se" - ], - [ - "▁Cons", - "e" - ], - [ - "google", - "apis" - ], - [ - "ó", - "k" - ], - [ - "▁У", - "кра" - ], - [ - "▁H", - "aving" - ], - [ - "▁Ha", - "ving" - ], - [ - "▁Hav", - "ing" - ], - [ - "Do", - "main" - ], - [ - "Dom", - "ain" - ], - [ - "ie", - "rz" - ], - [ - "ier", - "z" - ], - [ - "но", - "логи" - ], - [ - "н", - "ологи" - ], - [ - "Ch", - "o" - ], - [ - "C", - "ho" - ], - [ - "un", - "defined" - ], - [ - "und", - "efined" - ], - [ - "al", - "loc" - ], - [ - "all", - "oc" - ], - [ - "allo", - "c" - ], - [ - "▁p", - "ied" - ], - [ - "▁pi", - "ed" - ], - [ - "▁pie", - "d" - ], - [ - "▁f", - "raction" - ], - [ - "▁fr", - "action" - ], - [ - "▁fra", - "ction" - ], - [ - "bi", - "a" - ], - [ - "b", - "ia" - ], - [ - "▁п", - "оло" - ], - [ - "▁по", - "ло" - ], - [ - "▁пол", - "о" - ], - [ - "▁", - "поло" - ], - [ - "ug", - "no" - ], - [ - "min", - "ister" - ], - [ - "▁princip", - "ale" - ], - [ - "▁principal", - "e" - ], - [ - "▁ref", - "used" - ], - [ - "▁refuse", - "d" - ], - [ - "brow", - "ser" - ], - [ - "b", - "rowser" - ], - [ - "*", - "," - ], - [ - "▁H", - "ospital" - ], - [ - "▁univers", - "al" - ], - [ - "▁Ern", - "st" - ], - [ - "wh", - "o" - ], - [ - "w", - "ho" - ], - [ - "▁G", - "ard" - ], - [ - "▁Gar", - "d" - ], - [ - "▁Ga", - "rd" - ], - [ - "'", - "_" - ], - [ - "con", - "de" - ], - [ - "co", - "nde" - ], - [ - "cond", - "e" - ], - [ - "c", - "onde" - ], - [ - "▁[", - "{" - ], - [ - "▁", - "[{" - ], - [ - "so", - "b" - ], - [ - "s", - "ob" - ], - [ - "▁C", - "rit" - ], - [ - "▁Cr", - "it" - ], - [ - "▁дека", - "бря" - ], - [ - "▁p", - "unto" - ], - [ - "▁pun", - "to" - ], - [ - "▁punt", - "o" - ], - [ - "▁einges", - "etzt" - ], - [ - "▁t", - "ör" - ], - [ - "▁tö", - "r" - ], - [ - "▁N", - "i" - ], - [ - "▁w", - "orry" - ], - [ - "▁wor", - "ry" - ], - [ - "▁leg", - "end" - ], - [ - "▁", - "legend" - ], - [ - "▁бу", - "ли" - ], - [ - "▁k", - "omm" - ], - [ - "▁kom", - "m" - ], - [ - "▁ko", - "mm" - ], - [ - "ri", - "jk" - ], - [ - "rij", - "k" - ], - [ - "r", - "ijk" - ], - [ - "ef", - "fect" - ], - [ - "eff", - "ect" - ], - [ - "e", - "ffect" - ], - [ - "Or", - "i" - ], - [ - "O", - "ri" - ], - [ - "RE", - "S" - ], - [ - "R", - "ES" - ], - [ - "▁P", - "eters" - ], - [ - "▁Pe", - "ters" - ], - [ - "▁Peter", - "s" - ], - [ - "▁Pet", - "ers" - ], - [ - "▁B", - "aron" - ], - [ - "▁Bar", - "on" - ], - [ - "▁Ba", - "ron" - ], - [ - "▁G", - "ot" - ], - [ - "▁Go", - "t" - ], - [ - "▁hon", - "est" - ], - [ - "▁ho", - "nest" - ], - [ - "är", - "e" - ], - [ - "ä", - "re" - ], - [ - "ás", - "z" - ], - [ - "á", - "sz" - ], - [ - "▁no", - "ble" - ], - [ - "▁nob", - "le" - ], - [ - "▁con", - "clusion" - ], - [ - "▁conclus", - "ion" - ], - [ - "▁concl", - "usion" - ], - [ - "▁form", - "atting" - ], - [ - "▁format", - "ting" - ], - [ - "▁formatt", - "ing" - ], - [ - "▁o", - "tto" - ], - [ - "▁ot", - "to" - ], - [ - "▁ott", - "o" - ], - [ - "▁", - "otto" - ], - [ - "▁de", - "leg" - ], - [ - "▁del", - "eg" - ], - [ - "м", - "б" - ], - [ - "pt", - "op" - ], - [ - "pto", - "p" - ], - [ - "p", - "top" - ], - [ - "▁s", - "ends" - ], - [ - "▁send", - "s" - ], - [ - "▁sen", - "ds" - ], - [ - "ur", - "name" - ], - [ - "urn", - "ame" - ], - [ - "▁f", - "estival" - ], - [ - "▁fest", - "ival" - ], - [ - "▁festiv", - "al" - ], - [ - ",", - "‎" - ], - [ - "ру", - "с" - ], - [ - "р", - "ус" - ], - [ - "▁d", - "och" - ], - [ - "▁do", - "ch" - ], - [ - "▁doc", - "h" - ], - [ - "sub", - "ject" - ], - [ - "su", - "bject" - ], - [ - "▁care", - "ful" - ], - [ - "qu", - "ent" - ], - [ - "que", - "nt" - ], - [ - "q", - "uent" - ], - [ - "▁Lo", - "ad" - ], - [ - "▁", - "Load" - ], - [ - "temper", - "aturen" - ], - [ - "▁r", - "ue" - ], - [ - "▁ru", - "e" - ], - [ - "Mem", - "ory" - ], - [ - "ț", - "a" - ], - [ - "ion", - "a" - ], - [ - "io", - "na" - ], - [ - "i", - "ona" - ], - [ - "▁dent", - "ro" - ], - [ - "▁beg", - "ann" - ], - [ - "▁began", - "n" - ], - [ - "▁A", - "qu" - ], - [ - "▁scient", - "ific" - ], - [ - "ka", - "ń" - ], - [ - "ло", - "к" - ], - [ - "л", - "ок" - ], - [ - "el", - "de" - ], - [ - "eld", - "e" - ], - [ - "▁Th", - "ose" - ], - [ - "qu", - "ier" - ], - [ - "qui", - "er" - ], - [ - "act", - "ér" - ], - [ - "▁Auf", - "lage" - ], - [ - ")", - "'" - ], - [ - "▁grad", - "ient" - ], - [ - "▁", - "gradient" - ], - [ - "in", - "teger" - ], - [ - "inte", - "ger" - ], - [ - "▁Im", - "port" - ], - [ - "▁Imp", - "ort" - ], - [ - "▁", - "Import" - ], - [ - "S", - "K" - ], - [ - "▁St", - "atus" - ], - [ - "▁Stat", - "us" - ], - [ - "▁", - "Status" - ], - [ - "▁exp", - "lo" - ], - [ - "▁expl", - "o" - ], - [ - "A", - "E" - ], - [ - "Sh", - "ell" - ], - [ - "She", - "ll" - ], - [ - "S", - "hell" - ], - [ - "▁Pa", - "ulo" - ], - [ - "▁Paul", - "o" - ], - [ - ".", - "»" - ], - [ - "}", - "", - "'" - ], - [ - "hav", - "ior" - ], - [ - "le", - "i" - ], - [ - "l", - "ei" - ], - [ - "ul", - "f" - ], - [ - "▁ge", - "ometry" - ], - [ - "▁geom", - "etry" - ], - [ - "▁geomet", - "ry" - ], - [ - "▁", - "geometry" - ], - [ - "pr", - "ev" - ], - [ - "pre", - "v" - ], - [ - "p", - "rev" - ], - [ - "em", - "pl" - ], - [ - "emp", - "l" - ], - [ - "▁L", - "é" - ], - [ - "an", - "son" - ], - [ - "ans", - "on" - ], - [ - "▁A", - "lice" - ], - [ - "▁Al", - "ice" - ], - [ - "▁Ali", - "ce" - ], - [ - "pro", - "totype" - ], - [ - "proto", - "type" - ], - [ - "RE", - "AD" - ], - [ - "ic", - "ular" - ], - [ - "icul", - "ar" - ], - [ - "i", - "cular" - ], - [ - "▁б", - "і" - ], - [ - "▁", - "бі" - ], - [ - "▁deutsch", - "e" - ], - [ - "▁Re", - "present" - ], - [ - "si", - "tes" - ], - [ - "site", - "s" - ], - [ - "s", - "ites" - ], - [ - "▁Me", - "an" - ], - [ - "▁d", - "iss" - ], - [ - "▁di", - "ss" - ], - [ - "▁dis", - "s" - ], - [ - "▁Z", - "ur" - ], - [ - "▁Zu", - "r" - ], - [ - "▁п", - "рез" - ], - [ - "▁пре", - "з" - ], - [ - "▁пр", - "ез" - ], - [ - "PA", - "R" - ], - [ - "P", - "AR" - ], - [ - "▁'", - "#" - ], - [ - "▁D", - "ra" - ], - [ - "▁Dr", - "a" - ], - [ - "▁", - "Dra" - ], - [ - "со", - "н" - ], - [ - "с", - "он" - ], - [ - "▁ste", - "ht" - ], - [ - "mar", - "kt" - ], - [ - "mark", - "t" - ], - [ - "▁e", - "ase" - ], - [ - "▁eas", - "e" - ], - [ - "Draw", - "ing" - ], - [ - "Dra", - "wing" - ], - [ - "=", - "%" - ], - [ - "St", - "op" - ], - [ - "Sto", - "p" - ], - [ - "S", - "top" - ], - [ - "▁s", - "erving" - ], - [ - "▁ser", - "ving" - ], - [ - "▁serv", - "ing" - ], - [ - "▁servi", - "ng" - ], - [ - "▁tak", - "że" - ], - [ - "▁D", - "NS" - ], - [ - "▁liter", - "al" - ], - [ - "▁lit", - "eral" - ], - [ - "Di", - "e" - ], - [ - "D", - "ie" - ], - [ - "▁в", - "ос" - ], - [ - "▁во", - "с" - ], - [ - "▁sen", - "ior" - ], - [ - "ac", - "ion" - ], - [ - "aci", - "on" - ], - [ - "a", - "cion" - ], - [ - "▁u", - "buntu" - ], - [ - "▁ub", - "untu" - ], - [ - "▁", - "ubuntu" - ], - [ - "▁Frank", - "furt" - ], - [ - "▁Sun", - "day" - ], - [ - "▁Sund", - "ay" - ], - [ - "á", - "b" - ], - [ - "▁jour", - "ney" - ], - [ - "▁journ", - "ey" - ], - [ - "is", - "sa" - ], - [ - "iss", - "a" - ], - [ - "ber", - "ry" - ], - [ - "▁s", - "ep" - ], - [ - "▁se", - "p" - ], - [ - "▁", - "sep" - ], - [ - "▁i", - "on" - ], - [ - "▁io", - "n" - ], - [ - "▁", - "ion" - ], - [ - "wer", - "t" - ], - [ - "we", - "rt" - ], - [ - "w", - "ert" - ], - [ - "or", - "szág" - ], - [ - "orsz", - "ág" - ], - [ - "ser", - "ve" - ], - [ - "serv", - "e" - ], - [ - "s", - "erve" - ], - [ - "▁Mil", - "ano" - ], - [ - "▁Milan", - "o" - ], - [ - "▁ве", - "ка" - ], - [ - "ра", - "х" - ], - [ - "▁ию", - "ля" - ], - [ - "▁man", - "era" - ], - [ - "▁st", - "ations" - ], - [ - "▁stat", - "ions" - ], - [ - "▁station", - "s" - ], - [ - "▁stati", - "ons" - ], - [ - "▁adopt", - "ed" - ], - [ - "▁any", - "body" - ], - [ - "VER", - "SION" - ], - [ - "F", - "E" - ], - [ - "do", - "rf" - ], - [ - "dor", - "f" - ], - [ - "d", - "orf" - ], - [ - "..", - ".," - ], - [ - "...", - "," - ], - [ - "▁обра", - "зова" - ], - [ - "▁образ", - "ова" - ], - [ - "Log", - "ger" - ], - [ - "фи", - "циаль" - ], - [ - "фици", - "аль" - ], - [ - "WR", - "ITE" - ], - [ - "▁h", - "am" - ], - [ - "▁ha", - "m" - ], - [ - "▁", - "ham" - ], - [ - "▁F", - "uture" - ], - [ - "▁Fut", - "ure" - ], - [ - "▁", - "Future" - ], - [ - "ot", - "en" - ], - [ - "ote", - "n" - ], - [ - "o", - "ten" - ], - [ - "▁A", - "G" - ], - [ - "▁", - "AG" - ], - [ - "▁t", - "rained" - ], - [ - "▁tr", - "ained" - ], - [ - "▁tra", - "ined" - ], - [ - "▁train", - "ed" - ], - [ - "▁N", - "ich" - ], - [ - "▁Nic", - "h" - ], - [ - "▁Ni", - "ch" - ], - [ - "▁un", - "iversity" - ], - [ - "▁univers", - "ity" - ], - [ - "▁Olymp", - "ics" - ], - [ - "▁Olympic", - "s" - ], - [ - "▁d", - "oit" - ], - [ - "▁do", - "it" - ], - [ - "▁doi", - "t" - ], - [ - "▁cult", - "ural" - ], - [ - "▁cultura", - "l" - ], - [ - "Con", - "f" - ], - [ - "▁Con", - "ference" - ], - [ - "or", - "no" - ], - [ - "orn", - "o" - ], - [ - "▁M", - "P" - ], - [ - "▁", - "MP" - ], - [ - "▁b", - "ou" - ], - [ - "▁bo", - "u" - ], - [ - "ci", - "n" - ], - [ - "c", - "in" - ], - [ - "Hi", - "gh" - ], - [ - "H", - "igh" - ], - [ - "ann", - "te" - ], - [ - "annt", - "e" - ], - [ - "▁display", - "ing" - ], - [ - "▁ch", - "apter" - ], - [ - "▁chap", - "ter" - ], - [ - "▁", - "chapter" - ], - [ - "▁Fra", - "uen" - ], - [ - "▁Frau", - "en" - ], - [ - "▁real", - "ized" - ], - [ - "▁realiz", - "ed" - ], - [ - "▁realize", - "d" - ], - [ - "▁attempt", - "ed" - ], - [ - "▁pre", - "ferred" - ], - [ - "▁prefer", - "red" - ], - [ - "Da", - "t" - ], - [ - "D", - "at" - ], - [ - "▁tr", - "ouve" - ], - [ - "▁tro", - "uve" - ], - [ - "▁trou", - "ve" - ], - [ - "▁trouv", - "e" - ], - [ - "▁int", - "ention" - ], - [ - "▁intent", - "ion" - ], - [ - "▁inten", - "tion" - ], - [ - "▁Not", - "ice" - ], - [ - "tim", - "estamp" - ], - [ - "*", - "(" - ], - [ - "▁Ш", - "а" - ], - [ - "an", - "as" - ], - [ - "ana", - "s" - ], - [ - "a", - "nas" - ], - [ - "cl", - "a" - ], - [ - "c", - "la" - ], - [ - "is", - "z" - ], - [ - "i", - "sz" - ], - [ - "tb", - "l" - ], - [ - "t", - "bl" - ], - [ - "Ar", - "r" - ], - [ - "A", - "rr" - ], - [ - "▁in", - "verse" - ], - [ - "▁ter", - "rible" - ], - [ - "▁occup", - "ied" - ], - [ - "J", - "AX" - ], - [ - "<", - "-" - ], - [ - "▁Phil", - "osoph" - ], - [ - "▁Cor", - "ps" - ], - [ - "bu", - "ilder" - ], - [ - "build", - "er" - ], - [ - "▁beg", - "ins" - ], - [ - "▁begin", - "s" - ], - [ - "▁c", - "ensus" - ], - [ - "▁cens", - "us" - ], - [ - ".", - "’" - ], - [ - "▁pro", - "ven" - ], - [ - "▁pr", - "oven" - ], - [ - "▁prov", - "en" - ], - [ - "▁prove", - "n" - ], - [ - "met", - "ric" - ], - [ - "▁incre", - "ases" - ], - [ - "▁increase", - "s" - ], - [ - "wi", - "ch" - ], - [ - "w", - "ich" - ], - [ - "▁A", - "BC" - ], - [ - "▁AB", - "C" - ], - [ - "▁", - "ABC" - ], - [ - "project", - "s" - ], - [ - "▁T", - "hor" - ], - [ - "▁Th", - "or" - ], - [ - "▁conf", - "idence" - ], - [ - "▁u", - "fficiale" - ], - [ - "el", - "m" - ], - [ - "e", - "lm" - ], - [ - "▁g", - "arden" - ], - [ - "▁gar", - "den" - ], - [ - "▁gard", - "en" - ], - [ - "▁rob", - "ust" - ], - [ - "▁cos", - "ì" - ], - [ - "ie", - "dz" - ], - [ - "ied", - "z" - ], - [ - "▁Is", - "lam" - ], - [ - "▁Add", - "ress" - ], - [ - "▁", - "Address" - ], - [ - "▁div", - "ide" - ], - [ - "▁divid", - "e" - ], - [ - "▁E", - "u" - ], - [ - "ca", - "tal" - ], - [ - "cat", - "al" - ], - [ - "c", - "atal" - ], - [ - "de", - "tail" - ], - [ - "det", - "ail" - ], - [ - "ep", - "endant" - ], - [ - "f", - "g" - ], - [ - "▁b", - "ew" - ], - [ - "▁be", - "w" - ], - [ - "▁", - "bew" - ], - [ - "▁f", - "is" - ], - [ - "▁fi", - "s" - ], - [ - "▁B", - "O" - ], - [ - "▁", - "BO" - ], - [ - "▁w", - "sp" - ], - [ - "▁ws", - "p" - ], - [ - "▁p", - "ipeline" - ], - [ - "▁pip", - "eline" - ], - [ - "▁pipe", - "line" - ], - [ - "h", - "d" - ], - [ - "▁S", - "ession" - ], - [ - "▁", - "Session" - ], - [ - "lä", - "nd" - ], - [ - "l", - "änd" - ], - [ - "iv", - "eau" - ], - [ - "ive", - "au" - ], - [ - "es", - "tr" - ], - [ - "est", - "r" - ], - [ - "e", - "str" - ], - [ - "▁p", - "article" - ], - [ - "▁part", - "icle" - ], - [ - "▁partic", - "le" - ], - [ - "▁parti", - "cle" - ], - [ - "▁lar", - "avel" - ], - [ - "▁", - "laravel" - ], - [ - "pi", - "c" - ], - [ - "p", - "ic" - ], - [ - "▁n", - "au" - ], - [ - "▁na", - "u" - ], - [ - "▁f", - "ins" - ], - [ - "▁fin", - "s" - ], - [ - "▁fi", - "ns" - ], - [ - "▁V", - "il" - ], - [ - "▁Vi", - "l" - ], - [ - "▁f", - "us" - ], - [ - "▁fu", - "s" - ], - [ - "▁qu", - "asi" - ], - [ - "oper", - "ation" - ], - [ - "opera", - "tion" - ], - [ - "▁al", - "ler" - ], - [ - "▁all", - "er" - ], - [ - "▁alle", - "r" - ], - [ - "▁", - "aller" - ], - [ - "▁an", - "aly" - ], - [ - "▁anal", - "y" - ], - [ - "▁", - "analy" - ], - [ - "▁О", - "н" - ], - [ - "▁M", - "es" - ], - [ - "▁Me", - "s" - ], - [ - "▁о", - "пера" - ], - [ - "▁оп", - "ера" - ], - [ - "▁hand", - "led" - ], - [ - "▁handle", - "d" - ], - [ - "▁de", - "prec" - ], - [ - "▁dep", - "rec" - ], - [ - "tt", - "o" - ], - [ - "t", - "to" - ], - [ - "▁E", - "k" - ], - [ - "▁st", - "ran" - ], - [ - "▁str", - "an" - ], - [ - "▁stra", - "n" - ], - [ - "▁ang", - "lais" - ], - [ - "ju", - "re" - ], - [ - "j", - "ure" - ], - [ - "▁Sil", - "ver" - ], - [ - "▁close", - "ly" - ], - [ - "▁clos", - "ely" - ], - [ - "en", - "kins" - ], - [ - "enk", - "ins" - ], - [ - "an", - "os" - ], - [ - "ano", - "s" - ], - [ - "a", - "nos" - ], - [ - "st", - "ed" - ], - [ - "ste", - "d" - ], - [ - "s", - "ted" - ], - [ - "▁сент", - "ября" - ], - [ - "br", - "and" - ], - [ - "bra", - "nd" - ], - [ - "b", - "rand" - ], - [ - "нь", - "о" - ], - [ - "▁prés", - "ent" - ], - [ - "▁pré", - "sent" - ], - [ - "ro", - "k" - ], - [ - "r", - "ok" - ], - [ - "mo", - "unt" - ], - [ - "m", - "ount" - ], - [ - "▁Anth", - "ony" - ], - [ - "▁Further", - "more" - ], - [ - "in", - "ha" - ], - [ - "▁ар", - "хи" - ], - [ - "▁раз", - "ли" - ], - [ - "▁окт", - "ября" - ], - [ - "▁p", - "int" - ], - [ - "▁pi", - "nt" - ], - [ - "▁pin", - "t" - ], - [ - "n", - "ý" - ], - [ - "pt", - "s" - ], - [ - "p", - "ts" - ], - [ - "▁ital", - "ien" - ], - [ - "▁ре", - "ги" - ], - [ - "ле", - "з" - ], - [ - "л", - "ез" - ], - [ - "ди", - "на" - ], - [ - "дин", - "а" - ], - [ - "ather", - "ine" - ], - [ - "In", - "ternal" - ], - [ - "Int", - "ernal" - ], - [ - "Inter", - "nal" - ], - [ - "Intern", - "al" - ], - [ - "Qu", - "estion" - ], - [ - "▁sett", - "lement" - ], - [ - "▁В", - "се" - ], - [ - "▁fol", - "ders" - ], - [ - "▁folder", - "s" - ], - [ - "д", - "ри" - ], - [ - "▁val", - "or" - ], - [ - "▁va", - "lor" - ], - [ - "▁M", - "iller" - ], - [ - "▁Mil", - "ler" - ], - [ - "▁Mill", - "er" - ], - [ - "▁As", - "sert" - ], - [ - "▁Ass", - "ert" - ], - [ - "▁", - "Assert" - ], - [ - "▁pat", - "ient" - ], - [ - "▁N", - "ieder" - ], - [ - "▁Ni", - "eder" - ], - [ - "▁Nie", - "der" - ], - [ - "▁Nied", - "er" - ], - [ - "▁E", - "P" - ], - [ - "▁", - "EP" - ], - [ - "▁A", - "gr" - ], - [ - "▁Ag", - "r" - ], - [ - "▁o", - "nde" - ], - [ - "▁on", - "de" - ], - [ - "▁", - "onde" - ], - [ - "▁s", - "cop" - ], - [ - "▁sc", - "op" - ], - [ - "▁", - "scop" - ], - [ - "se", - "quence" - ], - [ - "sequ", - "ence" - ], - [ - "▁P", - "L" - ], - [ - "▁", - "PL" - ], - [ - "▁se", - "ek" - ], - [ - "▁see", - "k" - ], - [ - "java", - "se" - ], - [ - "jav", - "ase" - ], - [ - "▁V", - "ector" - ], - [ - "▁Ve", - "ctor" - ], - [ - "▁Vec", - "tor" - ], - [ - "▁", - "Vector" - ], - [ - "▁n", - "á" - ], - [ - "▁", - "ná" - ], - [ - "▁categor", - "ía" - ], - [ - "cl", - "one" - ], - [ - "clo", - "ne" - ], - [ - "N", - "R" - ], - [ - "av", - "ailable" - ], - [ - "▁B", - "esch" - ], - [ - "▁Be", - "sch" - ], - [ - "▁Bes", - "ch" - ], - [ - "▁e", - "clipse" - ], - [ - "▁ec", - "lipse" - ], - [ - "▁", - "eclipse" - ], - [ - "wick", - "lung" - ], - [ - "dep", - "loy" - ], - [ - "en", - "ie" - ], - [ - "eni", - "e" - ], - [ - "e", - "nie" - ], - [ - "▁\"", - ")" - ], - [ - "▁", - "\")" - ], - [ - "äs", - "t" - ], - [ - "ä", - "st" - ], - [ - "▁s", - "ync" - ], - [ - "▁syn", - "c" - ], - [ - "▁sy", - "nc" - ], - [ - "▁", - "sync" - ], - [ - "CO", - "DE" - ], - [ - "▁Ч", - "е" - ], - [ - "▁flo", - "ating" - ], - [ - "▁float", - "ing" - ], - [ - "/", - "`" - ], - [ - "▁ret", - "ired" - ], - [ - "▁retir", - "ed" - ], - [ - "de", - "b" - ], - [ - "d", - "eb" - ], - [ - "▁part", - "icul" - ], - [ - "▁partic", - "ul" - ], - [ - "▁parti", - "cul" - ], - [ - "▁coll", - "ected" - ], - [ - "▁collect", - "ed" - ], - [ - "▁colle", - "cted" - ], - [ - "▁down", - "loaded" - ], - [ - "▁download", - "ed" - ], - [ - "ni", - "ce" - ], - [ - "nic", - "e" - ], - [ - "n", - "ice" - ], - [ - "▁B", - "uffer" - ], - [ - "▁Buff", - "er" - ], - [ - "▁", - "Buffer" - ], - [ - "▁Acc", - "ount" - ], - [ - "▁Ac", - "count" - ], - [ - "▁", - "Account" - ], - [ - "▁m", - "aggio" - ], - [ - "▁mag", - "gio" - ], - [ - "▁ре", - "да" - ], - [ - "▁ред", - "а" - ], - [ - "▁s", - "ales" - ], - [ - "▁sa", - "les" - ], - [ - "▁sal", - "es" - ], - [ - "▁sale", - "s" - ], - [ - "▁statunit", - "ense" - ], - [ - "▁K", - "i" - ], - [ - "▁F", - "err" - ], - [ - "▁Fe", - "rr" - ], - [ - "▁Fer", - "r" - ], - [ - "Lo", - "ck" - ], - [ - "Loc", - "k" - ], - [ - "L", - "ock" - ], - [ - "▁Is", - "abel" - ], - [ - "▁Isa", - "bel" - ], - [ - "cl", - "ar" - ], - [ - "cla", - "r" - ], - [ - "c", - "lar" - ], - [ - "▁p", - "ov" - ], - [ - "▁po", - "v" - ], - [ - "at", - "ra" - ], - [ - "atr", - "a" - ], - [ - "a", - "tra" - ], - [ - "▁Fr", - "au" - ], - [ - "▁Fra", - "u" - ], - [ - "▁sort", - "ing" - ], - [ - "▁sor", - "ting" - ], - [ - "▁sorti", - "ng" - ], - [ - "▁phr", - "ase" - ], - [ - "▁апре", - "ля" - ], - [ - "▁дея", - "тель" - ], - [ - "▁And", - "ré" - ], - [ - "def", - "inition" - ], - [ - "defin", - "ition" - ], - [ - "writ", - "ing" - ], - [ - "wr", - "iting" - ], - [ - "ér", - "é" - ], - [ - "é", - "ré" - ], - [ - "щ", - "у" - ], - [ - "▁O", - "rd" - ], - [ - "▁Or", - "d" - ], - [ - "▁", - "Ord" - ], - [ - "▁r", - "um" - ], - [ - "▁ru", - "m" - ], - [ - "▁", - "rum" - ], - [ - "▁T", - "urk" - ], - [ - "▁Tur", - "k" - ], - [ - "▁I", - "van" - ], - [ - "th", - "eless" - ], - [ - "the", - "less" - ], - [ - "▁г", - "и" - ], - [ - "▁", - "ги" - ], - [ - "▁s", - "ake" - ], - [ - "▁sa", - "ke" - ], - [ - "▁B", - "ased" - ], - [ - "▁Bas", - "ed" - ], - [ - "▁Ba", - "sed" - ], - [ - "▁Base", - "d" - ], - [ - "de", - "ck" - ], - [ - "dec", - "k" - ], - [ - "or", - "us" - ], - [ - "oru", - "s" - ], - [ - "o", - "rus" - ], - [ - "▁tut", - "ti" - ], - [ - "▁b", - "lan" - ], - [ - "▁bl", - "an" - ], - [ - "▁bla", - "n" - ], - [ - "▁П", - "у" - ], - [ - "De", - "tail" - ], - [ - "Det", - "ail" - ], - [ - "▁Н", - "о" - ], - [ - "▁S", - "ky" - ], - [ - "▁Sk", - "y" - ], - [ - "▁p", - "rès" - ], - [ - "▁pr", - "ès" - ], - [ - "▁", - "près" - ], - [ - "мо", - "й" - ], - [ - "col", - "n" - ], - [ - "co", - "ln" - ], - [ - "че", - "ской" - ], - [ - "et", - "i" - ], - [ - "e", - "ti" - ], - [ - "▁ar", - "row" - ], - [ - "▁arr", - "ow" - ], - [ - "▁", - "arrow" - ], - [ - "▁C", - "ha" - ], - [ - "▁Ch", - "a" - ], - [ - "ch", - "mark" - ], - [ - "œ", - "ur" - ], - [ - "fa", - "b" - ], - [ - "f", - "ab" - ], - [ - "ку", - "ль" - ], - [ - "Grid", - "View" - ], - [ - "▁Back", - "ground" - ], - [ - "▁", - "Background" - ], - [ - "s", - "n" - ], - [ - "▁segu", - "ito" - ], - [ - "▁n", - "ic" - ], - [ - "▁ni", - "c" - ], - [ - "▁", - "nic" - ], - [ - "co", - "u" - ], - [ - "c", - "ou" - ], - [ - "ті", - "в" - ], - [ - "т", - "ів" - ], - [ - "▁b", - "zw" - ], - [ - "add", - "EventListener" - ], - [ - "syn", - "c" - ], - [ - "s", - "ync" - ], - [ - "az", - "zo" - ], - [ - "azz", - "o" - ], - [ - "ab", - "stract" - ], - [ - "as", - "sets" - ], - [ - "ass", - "ets" - ], - [ - "asse", - "ts" - ], - [ - "asset", - "s" - ], - [ - "▁D", - "ru" - ], - [ - "▁Dr", - "u" - ], - [ - "з", - "д" - ], - [ - "ord", - "net" - ], - [ - "▁b", - "igger" - ], - [ - "▁big", - "ger" - ], - [ - "▁initial", - "ized" - ], - [ - "▁initialize", - "d" - ], - [ - "ка", - "з" - ], - [ - "og", - "ene" - ], - [ - "ogen", - "e" - ], - [ - "oge", - "ne" - ], - [ - "vi", - "ously" - ], - [ - "vious", - "ly" - ], - [ - "v", - "iously" - ], - [ - "▁g", - "uid" - ], - [ - "▁gu", - "id" - ], - [ - "scheid", - "ung" - ], - [ - "▁Z", - "ent" - ], - [ - "▁Ze", - "nt" - ], - [ - "▁fr", - "ames" - ], - [ - "▁frame", - "s" - ], - [ - "▁fra", - "mes" - ], - [ - "▁fram", - "es" - ], - [ - "▁", - "frames" - ], - [ - "ri", - "eben" - ], - [ - "rie", - "ben" - ], - [ - "rieb", - "en" - ], - [ - "r", - "ieben" - ], - [ - "▁iss", - "ued" - ], - [ - "▁issue", - "d" - ], - [ - "▁issu", - "ed" - ], - [ - "▁d", - "ow" - ], - [ - "▁do", - "w" - ], - [ - "▁descri", - "bes" - ], - [ - "▁describe", - "s" - ], - [ - "il", - "st" - ], - [ - "ils", - "t" - ], - [ - "i", - "lst" - ], - [ - "▁c", - "riteria" - ], - [ - "▁crit", - "eria" - ], - [ - "▁criter", - "ia" - ], - [ - "▁gentle", - "man" - ], - [ - "Bas", - "ic" - ], - [ - "ne", - "z" - ], - [ - "n", - "ez" - ], - [ - "De", - "v" - ], - [ - "D", - "ev" - ], - [ - "Mo", - "ve" - ], - [ - "M", - "ove" - ], - [ - "▁est", - "aba" - ], - [ - "▁estab", - "a" - ], - [ - "▁esta", - "ba" - ], - [ - "▁set", - "tembre" - ], - [ - "▁sett", - "embre" - ], - [ - "circ", - "le" - ], - [ - "cir", - "cle" - ], - [ - "▁f", - "ais" - ], - [ - "▁fa", - "is" - ], - [ - "▁m", - "yst" - ], - [ - "▁my", - "st" - ], - [ - "▁arch", - "iv" - ], - [ - "▁", - "archiv" - ], - [ - "d", - "ynamic" - ], - [ - "j", - "à" - ], - [ - "it", - "as" - ], - [ - "ita", - "s" - ], - [ - "▁я", - "кий" - ], - [ - "▁d", - "or" - ], - [ - "▁do", - "r" - ], - [ - "▁", - "dor" - ], - [ - "▁Am", - "azon" - ], - [ - "▁Ama", - "zon" - ], - [ - "▁ne", - "ces" - ], - [ - "▁Mar", - "cel" - ], - [ - "▁Marc", - "el" - ], - [ - "▁e", - "lla" - ], - [ - "▁el", - "la" - ], - [ - "▁ell", - "a" - ], - [ - "▁", - "ella" - ], - [ - "ро", - "к" - ], - [ - "р", - "ок" - ], - [ - "▁Pennsylvan", - "ia" - ], - [ - "cul", - "ar" - ], - [ - "cu", - "lar" - ], - [ - "c", - "ular" - ], - [ - "Pa", - "ck" - ], - [ - "P", - "ack" - ], - [ - "it", - "age" - ], - [ - "ita", - "ge" - ], - [ - "▁B", - "urn" - ], - [ - "▁Bu", - "rn" - ], - [ - "▁Bur", - "n" - ], - [ - "▁R", - "O" - ], - [ - "▁", - "RO" - ], - [ - "▁о", - "ни" - ], - [ - "▁он", - "и" - ], - [ - "▁", - "они" - ], - [ - "~", - "$" - ], - [ - "Te", - "X" - ], - [ - "as", - "sign" - ], - [ - "ass", - "ign" - ], - [ - "▁be", - "at" - ], - [ - "id", - "ense" - ], - [ - "iden", - "se" - ], - [ - "ac", - "ent" - ], - [ - "ace", - "nt" - ], - [ - "a", - "cent" - ], - [ - "Al", - "ert" - ], - [ - "▁str", - "ateg" - ], - [ - "▁strat", - "eg" - ], - [ - "▁mån", - "aden" - ], - [ - "LO", - "C" - ], - [ - "L", - "OC" - ], - [ - "▁c", - "atalog" - ], - [ - "▁cat", - "alog" - ], - [ - "▁catal", - "og" - ], - [ - "▁", - "catalog" - ], - [ - "print", - "StackTrace" - ], - [ - "()", - ")." - ], - [ - "())", - "." - ], - [ - "(", - "))." - ], - [ - "us", - "ted" - ], - [ - "ust", - "ed" - ], - [ - "u", - "sted" - ], - [ - "▁Frame", - "work" - ], - [ - "▁", - "Framework" - ], - [ - "EC", - "K" - ], - [ - "E", - "CK" - ], - [ - "▁a", - "té" - ], - [ - "▁at", - "é" - ], - [ - "Frame", - "work" - ], - [ - "▁att", - "acks" - ], - [ - "▁attack", - "s" - ], - [ - "▁B", - "ert" - ], - [ - "▁Be", - "rt" - ], - [ - "▁Ber", - "t" - ], - [ - "▁т", - "ран" - ], - [ - "▁тра", - "н" - ], - [ - ":", - "%" - ], - [ - "ar", - "si" - ], - [ - "ars", - "i" - ], - [ - "not", - "ation" - ], - [ - "▁log", - "ical" - ], - [ - "▁logic", - "al" - ], - [ - "we", - "et" - ], - [ - "▁vis", - "ited" - ], - [ - "▁visit", - "ed" - ], - [ - "br", - "u" - ], - [ - "b", - "ru" - ], - [ - "▁sur", - "prise" - ], - [ - "▁surpr", - "ise" - ], - [ - "^", - "^" - ], - [ - "in", - "ale" - ], - [ - "inal", - "e" - ], - [ - "ina", - "le" - ], - [ - "rem", - "ote" - ], - [ - "'}", - "," - ], - [ - "'", - "}," - ], - [ - "Syn", - "tax" - ], - [ - "S", - "yntax" - ], - [ - "ia", - "ne" - ], - [ - "ian", - "e" - ], - [ - "i", - "ane" - ], - [ - "on", - "nen" - ], - [ - "onn", - "en" - ], - [ - "onne", - "n" - ], - [ - "▁bre", - "aking" - ], - [ - "▁break", - "ing" - ], - [ - "par", - "ser" - ], - [ - "parse", - "r" - ], - [ - "ap", - "k" - ], - [ - "a", - "pk" - ], - [ - "▁Mig", - "uel" - ], - [ - "▁", - "§" - ], - [ - "▁act", - "ing" - ], - [ - "▁ac", - "ting" - ], - [ - "▁g", - "ebru" - ], - [ - "▁ge", - "bru" - ], - [ - "▁geb", - "ru" - ], - [ - "At", - "Index" - ], - [ - "ють", - "ся" - ], - [ - "ю", - "ться" - ], - [ - "▁of", - "fers" - ], - [ - "▁off", - "ers" - ], - [ - "▁offer", - "s" - ], - [ - "▁p", - "rac" - ], - [ - "▁pr", - "ac" - ], - [ - "▁pra", - "c" - ], - [ - "▁g", - "rant" - ], - [ - "▁gr", - "ant" - ], - [ - "▁gra", - "nt" - ], - [ - "▁gran", - "t" - ], - [ - "tern", - "oon" - ], - [ - "▁ac", - "quired" - ], - [ - "▁acqu", - "ired" - ], - [ - "▁N", - "y" - ], - [ - "▁com", - "ma" - ], - [ - "▁comm", - "a" - ], - [ - "ní", - "k" - ], - [ - "n", - "ík" - ], - [ - "▁St", - "ep" - ], - [ - "▁Ste", - "p" - ], - [ - "▁", - "Step" - ], - [ - "in", - "ners" - ], - [ - "inn", - "ers" - ], - [ - "inner", - "s" - ], - [ - "▁S", - "A" - ], - [ - "▁", - "SA" - ], - [ - "▁w", - "at" - ], - [ - "▁wa", - "t" - ], - [ - "da", - "ys" - ], - [ - "day", - "s" - ], - [ - "d", - "ays" - ], - [ - "▁rect", - "angle" - ], - [ - "da", - "r" - ], - [ - "d", - "ar" - ], - [ - "▁t", - "rac" - ], - [ - "▁tr", - "ac" - ], - [ - "▁tra", - "c" - ], - [ - "▁Ind", - "ones" - ], - [ - "▁feed", - "back" - ], - [ - "▁bre", - "aks" - ], - [ - "▁break", - "s" - ], - [ - "part", - "ition" - ], - [ - "ic", - "ans" - ], - [ - "ica", - "ns" - ], - [ - "ican", - "s" - ], - [ - "▁Not", - "ices" - ], - [ - "▁Notice", - "s" - ], - [ - "▁impro", - "ved" - ], - [ - "▁improve", - "d" - ], - [ - "▁improv", - "ed" - ], - [ - "▁impr", - "oved" - ], - [ - "ph", - "an" - ], - [ - "pha", - "n" - ], - [ - "p", - "han" - ], - [ - "▁differ", - "ential" - ], - [ - "▁different", - "ial" - ], - [ - "▁differenti", - "al" - ], - [ - "script", - "s" - ], - [ - "scri", - "pts" - ], - [ - "▁X", - "III" - ], - [ - "▁XII", - "I" - ], - [ - "▁XI", - "II" - ], - [ - "▁L", - "abor" - ], - [ - "▁La", - "bor" - ], - [ - "▁Lab", - "or" - ], - [ - "▁prec", - "ision" - ], - [ - "▁precis", - "ion" - ], - [ - "▁s", - "eed" - ], - [ - "▁se", - "ed" - ], - [ - "▁see", - "d" - ], - [ - "▁", - "seed" - ], - [ - "bund", - "le" - ], - [ - "b", - "undle" - ], - [ - "id", - "ents" - ], - [ - "ident", - "s" - ], - [ - "iden", - "ts" - ], - [ - "hr", - "e" - ], - [ - "h", - "re" - ], - [ - "▁Doug", - "las" - ], - [ - "ul", - "d" - ], - [ - "u", - "ld" - ], - [ - "▁second", - "ary" - ], - [ - "▁seconda", - "ry" - ], - [ - "▁b", - "rig" - ], - [ - "▁br", - "ig" - ], - [ - "▁confirm", - "ed" - ], - [ - "▁confir", - "med" - ], - [ - "▁cla", - "ims" - ], - [ - "▁claim", - "s" - ], - [ - "Ro", - "le" - ], - [ - "R", - "ole" - ], - [ - "▁Jew", - "ish" - ], - [ - "▁p", - "řed" - ], - [ - "▁př", - "ed" - ], - [ - "▁ho", - "tel" - ], - [ - "▁hot", - "el" - ], - [ - "▁comp", - "te" - ], - [ - "▁compt", - "e" - ], - [ - "▁rec", - "ursive" - ], - [ - "▁recurs", - "ive" - ], - [ - "](#", - ")" - ], - [ - "▁rot", - "ate" - ], - [ - "▁", - "rotate" - ], - [ - "▁ch", - "rome" - ], - [ - "▁chr", - "ome" - ], - [ - "▁chrom", - "e" - ], - [ - "▁", - "chrome" - ], - [ - "in", - "ea" - ], - [ - "ine", - "a" - ], - [ - "i", - "nea" - ], - [ - "%;", - "\r" - ], - [ - "%", - ";\r" - ], - [ - "▁En", - "vironment" - ], - [ - "▁", - "Environment" - ], - [ - "pl", - "atz" - ], - [ - "pla", - "tz" - ], - [ - "▁Sing", - "le" - ], - [ - "▁Sin", - "gle" - ], - [ - "▁", - "Single" - ], - [ - "▁s", - "event" - ], - [ - "▁se", - "vent" - ], - [ - "▁seven", - "t" - ], - [ - "▁pos", - "ting" - ], - [ - "▁post", - "ing" - ], - [ - "▁de", - "aling" - ], - [ - "▁deal", - "ing" - ], - [ - "param", - "eters" - ], - [ - "parameter", - "s" - ], - [ - "гра", - "ф" - ], - [ - "Auth", - "entication" - ], - [ - "to", - "uch" - ], - [ - "t", - "ouch" - ], - [ - "A", - "z" - ], - [ - "▁g", - "ray" - ], - [ - "▁gr", - "ay" - ], - [ - "▁gra", - "y" - ], - [ - "▁", - "gray" - ], - [ - "en", - "cing" - ], - [ - "enc", - "ing" - ], - [ - "enci", - "ng" - ], - [ - "bold", - "math" - ], - [ - "▁сай", - "те" - ], - [ - "▁сайт", - "е" - ], - [ - "▁Z", - "a" - ], - [ - "an", - "je" - ], - [ - "▁p", - "olar" - ], - [ - "▁po", - "lar" - ], - [ - "▁pol", - "ar" - ], - [ - "▁у", - "ли" - ], - [ - "ki", - "l" - ], - [ - "k", - "il" - ], - [ - "▁h", - "over" - ], - [ - "▁ho", - "ver" - ], - [ - "▁", - "hover" - ], - [ - "▁RE", - "ST" - ], - [ - "▁C", - "ome" - ], - [ - "▁Com", - "e" - ], - [ - "▁Co", - "me" - ], - [ - "▁", - "Come" - ], - [ - "j", - "b" - ], - [ - "▁Georg", - "ia" - ], - [ - "▁Est", - "ado" - ], - [ - "▁Esta", - "do" - ], - [ - "▁Estad", - "o" - ], - [ - "Output", - "Stream" - ], - [ - "ћ", - "и" - ], - [ - "▁d", - "ump" - ], - [ - "▁du", - "mp" - ], - [ - "▁", - "dump" - ], - [ - "▁A", - "ge" - ], - [ - "▁Ag", - "e" - ], - [ - "▁", - "Age" - ], - [ - "▁s", - "wo" - ], - [ - "▁sw", - "o" - ], - [ - "m", - "obile" - ], - [ - "oc", - "cup" - ], - [ - "occ", - "up" - ], - [ - "ше", - "го" - ], - [ - "ш", - "его" - ], - [ - "▁const", - "itution" - ], - [ - "▁constitu", - "tion" - ], - [ - "▁constit", - "ution" - ], - [ - "go", - "od" - ], - [ - "g", - "ood" - ], - [ - "ak", - "u" - ], - [ - "a", - "ku" - ], - [ - "▁а", - "нг" - ], - [ - "▁ан", - "г" - ], - [ - "▁", - "анг" - ], - [ - "ie", - "ck" - ], - [ - "iec", - "k" - ], - [ - "▁Ps", - "ych" - ], - [ - "▁ro", - "ots" - ], - [ - "▁root", - "s" - ], - [ - "▁v", - "est" - ], - [ - "▁ve", - "st" - ], - [ - "▁ves", - "t" - ], - [ - "▁", - "vest" - ], - [ - "▁го", - "дах" - ], - [ - "▁года", - "х" - ], - [ - "▁Rep", - "ública" - ], - [ - "▁p", - "ian" - ], - [ - "▁pi", - "an" - ], - [ - "▁pia", - "n" - ], - [ - "igr", - "ation" - ], - [ - "▁pr", - "éc" - ], - [ - "▁pré", - "c" - ], - [ - "▁gener", - "ates" - ], - [ - "▁generate", - "s" - ], - [ - "L", - "Y" - ], - [ - "(", - "`" - ], - [ - "▁=", - "~" - ], - [ - "ше", - "ния" - ], - [ - "▁R", - "ah" - ], - [ - "▁Ra", - "h" - ], - [ - "▁connect", - "ing" - ], - [ - "ž", - "í" - ], - [ - "▁f", - "ő" - ], - [ - "▁a", - "ppel" - ], - [ - "▁app", - "el" - ], - [ - "▁ap", - "pel" - ], - [ - "▁appe", - "l" - ], - [ - "▁Rail", - "way" - ], - [ - "г", - "ли" - ], - [ - "▁dével", - "opp" - ], - [ - "▁a", - "po" - ], - [ - "▁ap", - "o" - ], - [ - "fr", - "an" - ], - [ - "fra", - "n" - ], - [ - "f", - "ran" - ], - [ - "▁im", - "mediate" - ], - [ - "▁immedi", - "ate" - ], - [ - "во", - "го" - ], - [ - "в", - "ого" - ], - [ - "Run", - "ner" - ], - [ - "ä", - "g" - ], - [ - "Some", - "thing" - ], - [ - "S", - "omething" - ], - [ - "▁gén", - "éra" - ], - [ - "Event", - "Args" - ], - [ - "in", - "ction" - ], - [ - "inc", - "tion" - ], - [ - "inct", - "ion" - ], - [ - "gl", - "y" - ], - [ - "g", - "ly" - ], - [ - "▁D", - "ue" - ], - [ - "▁Du", - "e" - ], - [ - "▁p", - "rost" - ], - [ - "▁pro", - "st" - ], - [ - "▁pr", - "ost" - ], - [ - "▁pros", - "t" - ], - [ - "▁refer", - "ring" - ], - [ - "▁j", - "og" - ], - [ - "▁jo", - "g" - ], - [ - "▁exec", - "utable" - ], - [ - "▁execut", - "able" - ], - [ - "▁D", - "ream" - ], - [ - "▁Dre", - "am" - ], - [ - "ac", - "s" - ], - [ - "a", - "cs" - ], - [ - "▁C", - "ole" - ], - [ - "▁Col", - "e" - ], - [ - "▁Co", - "le" - ], - [ - "am", - "pf" - ], - [ - "amp", - "f" - ], - [ - "▁B", - "is" - ], - [ - "▁Bi", - "s" - ], - [ - "▁ию", - "ня" - ], - [ - "li", - "eder" - ], - [ - "lied", - "er" - ], - [ - "lie", - "der" - ], - [ - "l", - "ieder" - ], - [ - "те", - "к" - ], - [ - "т", - "ек" - ], - [ - "▁v", - "b" - ], - [ - "▁", - "vb" - ], - [ - "▁m", - "om" - ], - [ - "▁mo", - "m" - ], - [ - "▁:", - "(" - ], - [ - "▁", - ":(" - ], - [ - "▁der", - "nier" - ], - [ - "▁derni", - "er" - ], - [ - "'", - "=>" - ], - [ - "▁э", - "того" - ], - [ - "▁это", - "го" - ], - [ - "▁ne", - "ue" - ], - [ - "▁neu", - "e" - ], - [ - "▁Ч", - "а" - ], - [ - "▁weiter", - "e" - ], - [ - "▁weit", - "ere" - ], - [ - "▁al", - "leg" - ], - [ - "▁all", - "eg" - ], - [ - "▁alle", - "g" - ], - [ - "▁re", - "ality" - ], - [ - "▁real", - "ity" - ], - [ - "▁jud", - "ge" - ], - [ - "▁B", - "alt" - ], - [ - "▁Ba", - "lt" - ], - [ - "▁Bal", - "t" - ], - [ - "▁t", - "hin" - ], - [ - "▁th", - "in" - ], - [ - "▁G", - "ed" - ], - [ - "▁Ge", - "d" - ], - [ - "ie", - "val" - ], - [ - "iev", - "al" - ], - [ - "i", - "eval" - ], - [ - "m", - "x" - ], - [ - "ці", - "ональ" - ], - [ - "▁вы", - "пу" - ], - [ - "▁I", - "X" - ], - [ - "▁", - "IX" - ], - [ - "▁bl", - "ind" - ], - [ - "▁Mo", - "tor" - ], - [ - "▁Mot", - "or" - ], - [ - "▁ш", - "а" - ], - [ - "▁", - "ша" - ], - [ - "▁approxim", - "ation" - ], - [ - "da", - "m" - ], - [ - "d", - "am" - ], - [ - "▁f", - "og" - ], - [ - "▁fo", - "g" - ], - [ - "▁", - "fog" - ], - [ - "ко", - "р" - ], - [ - "к", - "ор" - ], - [ - "▁W", - "rit" - ], - [ - "▁l", - "ing" - ], - [ - "▁li", - "ng" - ], - [ - "▁lin", - "g" - ], - [ - "▁", - "ling" - ], - [ - "▁пи", - "са" - ], - [ - "▁", - "писа" - ], - [ - "▁M", - "ars" - ], - [ - "▁Mar", - "s" - ], - [ - "▁Ma", - "rs" - ], - [ - "ot", - "ti" - ], - [ - "ott", - "i" - ], - [ - "En", - "um" - ], - [ - "E", - "num" - ], - [ - "▁T", - "rib" - ], - [ - "▁Tr", - "ib" - ], - [ - "▁Tri", - "b" - ], - [ - "▁m", - "erc" - ], - [ - "▁me", - "rc" - ], - [ - "▁mer", - "c" - ], - [ - "zu", - "ng" - ], - [ - "z", - "ung" - ], - [ - "van", - "ced" - ], - [ - "v", - "anced" - ], - [ - "cf", - "g" - ], - [ - "c", - "fg" - ], - [ - "на", - "х" - ], - [ - "sch", - "en" - ], - [ - "sc", - "hen" - ], - [ - "sche", - "n" - ], - [ - "s", - "chen" - ], - [ - "\"]", - "." - ], - [ - "\"", - "]." - ], - [ - "be", - "k" - ], - [ - "b", - "ek" - ], - [ - "▁s", - "ter" - ], - [ - "▁st", - "er" - ], - [ - "▁ste", - "r" - ], - [ - "▁", - "ster" - ], - [ - "j", - "p" - ], - [ - "▁R", - "ap" - ], - [ - "▁Ra", - "p" - ], - [ - "▁rec", - "ording" - ], - [ - "▁record", - "ing" - ], - [ - "▁pe", - "int" - ], - [ - "▁l", - "ets" - ], - [ - "▁le", - "ts" - ], - [ - "▁let", - "s" - ], - [ - "▁", - "lets" - ], - [ - "än", - "ge" - ], - [ - "äng", - "e" - ], - [ - ">\"", - ";" - ], - [ - ">", - "\";" - ], - [ - "▁міс", - "це" - ], - [ - "▁c", - "aval" - ], - [ - "▁ca", - "val" - ], - [ - "▁cav", - "al" - ], - [ - "▁C", - "SV" - ], - [ - "▁CS", - "V" - ], - [ - "▁ent", - "stand" - ], - [ - "▁hel", - "per" - ], - [ - "▁help", - "er" - ], - [ - "▁", - "helper" - ], - [ - "en", - "det" - ], - [ - "end", - "et" - ], - [ - "ende", - "t" - ], - [ - "▁G", - "ram" - ], - [ - "▁Gr", - "am" - ], - [ - "▁Gra", - "m" - ], - [ - "▁D", - "iego" - ], - [ - "▁Die", - "go" - ], - [ - "▁Di", - "ego" - ], - [ - "▁B", - "ishop" - ], - [ - "▁Bi", - "shop" - ], - [ - "TA", - "G" - ], - [ - "T", - "AG" - ], - [ - "▁e", - "cc" - ], - [ - "▁ec", - "c" - ], - [ - "▁E", - "en" - ], - [ - "▁A", - "V" - ], - [ - "▁", - "AV" - ], - [ - "C", - "ity" - ], - [ - "▁Gu", - "ide" - ], - [ - "hi", - "nd" - ], - [ - "hin", - "d" - ], - [ - "h", - "ind" - ], - [ - "ri", - "cal" - ], - [ - "ric", - "al" - ], - [ - "rica", - "l" - ], - [ - "r", - "ical" - ], - [ - "▁Ос", - "нов" - ], - [ - "Bu", - "s" - ], - [ - "B", - "us" - ], - [ - "▁z", - "unächst" - ], - [ - "▁t", - "ick" - ], - [ - "▁ti", - "ck" - ], - [ - "▁", - "tick" - ], - [ - "▁Col", - "onel" - ], - [ - "Th", - "anks" - ], - [ - "Thank", - "s" - ], - [ - "▁f", - "erm" - ], - [ - "▁fe", - "rm" - ], - [ - "▁fer", - "m" - ], - [ - "▁gr", - "anted" - ], - [ - "▁gran", - "ted" - ], - [ - "▁grant", - "ed" - ], - [ - "▁th", - "reshold" - ], - [ - "omorph", - "ic" - ], - [ - "▁H", - "un" - ], - [ - "▁Hu", - "n" - ], - [ - "en", - "is" - ], - [ - "eni", - "s" - ], - [ - "e", - "nis" - ], - [ - "▁п", - "рав" - ], - [ - "▁пра", - "в" - ], - [ - "▁", - "прав" - ], - [ - "▁я", - "кі" - ], - [ - "▁як", - "і" - ], - [ - "P", - "G" - ], - [ - "▁w", - "s" - ], - [ - "▁", - "ws" - ], - [ - "▁techn", - "ical" - ], - [ - "▁techni", - "cal" - ], - [ - "est", - "ro" - ], - [ - "estr", - "o" - ], - [ - "kl", - "är" - ], - [ - "k", - "lär" - ], - [ - "va", - "rs" - ], - [ - "var", - "s" - ], - [ - "v", - "ars" - ], - [ - "oc", - "rat" - ], - [ - "ocr", - "at" - ], - [ - "▁оп", - "шти" - ], - [ - "on", - "so" - ], - [ - "ons", - "o" - ], - [ - "ib", - "a" - ], - [ - "i", - "ba" - ], - [ - "▁S", - "ave" - ], - [ - "▁Sa", - "ve" - ], - [ - "▁Sav", - "e" - ], - [ - "▁", - "Save" - ], - [ - "▁program", - "a" - ], - [ - "▁в", - "ъ" - ], - [ - "▁inv", - "ån" - ], - [ - ">(", - ")" - ], - [ - ">", - "()" - ], - [ - "▁me", - "jor" - ], - [ - "▁с", - "лова" - ], - [ - "▁сло", - "ва" - ], - [ - "▁rep", - "lacement" - ], - [ - "▁replace", - "ment" - ], - [ - "▁repla", - "cement" - ], - [ - "▁im", - "pr" - ], - [ - "▁imp", - "r" - ], - [ - "▁Frances", - "co" - ], - [ - "▁Ho", - "tel" - ], - [ - "▁Hot", - "el" - ], - [ - "▁UP", - "DATE" - ], - [ - "▁", - "UPDATE" - ], - [ - "▁му", - "зы" - ], - [ - "ug", - "s" - ], - [ - "u", - "gs" - ], - [ - "va", - "rd" - ], - [ - "var", - "d" - ], - [ - "v", - "ard" - ], - [ - "▁f", - "az" - ], - [ - "▁fa", - "z" - ], - [ - "in", - "ton" - ], - [ - "int", - "on" - ], - [ - "into", - "n" - ], - [ - "▁ar", - "ts" - ], - [ - "▁art", - "s" - ], - [ - "▁", - "arts" - ], - [ - "▁K", - "y" - ], - [ - "▁I", - "ls" - ], - [ - "▁Il", - "s" - ], - [ - "▁s", - "era" - ], - [ - "▁se", - "ra" - ], - [ - "▁ser", - "a" - ], - [ - "▁Vol", - "ume" - ], - [ - "▁", - "Volume" - ], - [ - "▁gi", - "ugno" - ], - [ - "▁a", - "sym" - ], - [ - "▁as", - "ym" - ], - [ - "▁P", - "ir" - ], - [ - "▁Pi", - "r" - ], - [ - "▁N", - "AS" - ], - [ - "▁NA", - "S" - ], - [ - "▁T", - "am" - ], - [ - "▁Ta", - "m" - ], - [ - "ě", - "l" - ], - [ - "Se", - "qu" - ], - [ - "Seq", - "u" - ], - [ - "S", - "equ" - ], - [ - "km", - "al" - ], - [ - "k", - "mal" - ], - [ - "▁E", - "ins" - ], - [ - "▁Ein", - "s" - ], - [ - "▁ком", - "па" - ], - [ - "▁комп", - "а" - ], - [ - "ob", - "e" - ], - [ - "o", - "be" - ], - [ - "oo", - "r" - ], - [ - "o", - "or" - ], - [ - "▁he", - "ap" - ], - [ - "ct", - "l" - ], - [ - "c", - "tl" - ], - [ - "▁separ", - "ately" - ], - [ - "▁separate", - "ly" - ], - [ - "re", - "ader" - ], - [ - "read", - "er" - ], - [ - "rea", - "der" - ], - [ - "▁signific", - "antly" - ], - [ - "▁significant", - "ly" - ], - [ - "▁L", - "ag" - ], - [ - "▁La", - "g" - ], - [ - "no", - "tes" - ], - [ - "not", - "es" - ], - [ - "note", - "s" - ], - [ - "n", - "otes" - ], - [ - "▁s", - "ele" - ], - [ - "▁se", - "le" - ], - [ - "▁sel", - "e" - ], - [ - "▁dedic", - "ated" - ], - [ - "▁H", - "ost" - ], - [ - "▁Ho", - "st" - ], - [ - "▁", - "Host" - ], - [ - "cho", - "ice" - ], - [ - "wi", - "ng" - ], - [ - "win", - "g" - ], - [ - "w", - "ing" - ], - [ - "▁T", - "itel" - ], - [ - "▁Tit", - "el" - ], - [ - "▁Ti", - "tel" - ], - [ - "▁befind", - "et" - ], - [ - "lar", - "ge" - ], - [ - "larg", - "e" - ], - [ - "▁con", - "ten" - ], - [ - "▁cont", - "en" - ], - [ - "▁co", - "nten" - ], - [ - "▁conte", - "n" - ], - [ - "Java", - "Script" - ], - [ - "▁de", - "ser" - ], - [ - "▁des", - "er" - ], - [ - "▁G", - "ordon" - ], - [ - "▁Gor", - "don" - ], - [ - "с", - "пе" - ], - [ - "▁p", - "atri" - ], - [ - "▁pat", - "ri" - ], - [ - "▁pa", - "tri" - ], - [ - "▁patr", - "i" - ], - [ - "▁R", - "andom" - ], - [ - "▁Rand", - "om" - ], - [ - "▁Ran", - "dom" - ], - [ - "▁", - "Random" - ], - [ - "▁Return", - "s" - ], - [ - "ы", - "м" - ], - [ - "ро", - "ма" - ], - [ - "ром", - "а" - ], - [ - "▁Stud", - "ies" - ], - [ - "S", - "l" - ], - [ - "▁fr", - "ü" - ], - [ - "TE", - "XT" - ], - [ - "T", - "EXT" - ], - [ - "in", - "ate" - ], - [ - "ina", - "te" - ], - [ - "▁T", - "ol" - ], - [ - "▁To", - "l" - ], - [ - "▁every", - "where" - ], - [ - "ar", - "ta" - ], - [ - "art", - "a" - ], - [ - "▁or", - "bit" - ], - [ - "▁orb", - "it" - ], - [ - "▁A", - "ires" - ], - [ - "▁Air", - "es" - ], - [ - "▁I", - "ss" - ], - [ - "▁Is", - "s" - ], - [ - "▁te", - "ż" - ], - [ - "▁d", - "iverse" - ], - [ - "▁di", - "verse" - ], - [ - "▁divers", - "e" - ], - [ - "▁diver", - "se" - ], - [ - "▁n", - "umeric" - ], - [ - "▁numer", - "ic" - ], - [ - "▁", - "numeric" - ], - [ - "ma", - "z" - ], - [ - "m", - "az" - ], - [ - "▁m", - "ise" - ], - [ - "▁mi", - "se" - ], - [ - "▁mis", - "e" - ], - [ - "▁batt", - "ery" - ], - [ - "▁batter", - "y" - ], - [ - "▁bat", - "tery" - ], - [ - "▁A", - "kadem" - ], - [ - "▁Ak", - "adem" - ], - [ - "не", - "ние" - ], - [ - "▁simult", - "ane" - ], - [ - "▁D", - "ead" - ], - [ - "▁De", - "ad" - ], - [ - "▁cl", - "ust" - ], - [ - "▁ot", - "ro" - ], - [ - "▁c", - "erca" - ], - [ - "▁cer", - "ca" - ], - [ - "()", - "`," - ], - [ - "()`", - "," - ], - [ - "(", - ")`," - ], - [ - "ro", - "z" - ], - [ - "r", - "oz" - ], - [ - "ă", - "t" - ], - [ - "▁M", - "O" - ], - [ - "▁", - "MO" - ], - [ - "ri", - "ften" - ], - [ - "rift", - "en" - ], - [ - "rif", - "ten" - ], - [ - "import", - "ant" - ], - [ - "▁je", - "ho" - ], - [ - "▁find", - "ViewById" - ], - [ - "▁", - "findViewById" - ], - [ - "▁con", - "sequence" - ], - [ - "▁conse", - "quence" - ], - [ - "▁consequ", - "ence" - ], - [ - "▁measure", - "d" - ], - [ - "▁meas", - "ured" - ], - [ - "is", - "hes" - ], - [ - "ish", - "es" - ], - [ - "▁s", - "ze" - ], - [ - "▁sz", - "e" - ], - [ - "ien", - "do" - ], - [ - "i", - "endo" - ], - [ - "▁W", - "ahl" - ], - [ - "▁Wa", - "hl" - ], - [ - "st", - "rip" - ], - [ - "str", - "ip" - ], - [ - "AR", - "D" - ], - [ - "▁op", - "acity" - ], - [ - "▁", - "opacity" - ], - [ - "WOR", - "D" - ], - [ - "W", - "ORD" - ], - [ - "▁В", - "і" - ], - [ - "▁L", - "ocation" - ], - [ - "▁Lo", - "cation" - ], - [ - "▁Loc", - "ation" - ], - [ - "▁", - "Location" - ], - [ - "ra", - "i" - ], - [ - "r", - "ai" - ], - [ - "пе", - "н" - ], - [ - "п", - "ен" - ], - [ - "▁r", - "if" - ], - [ - "▁ri", - "f" - ], - [ - "▁", - "rif" - ], - [ - "auss", - "ian" - ], - [ - "File", - "Name" - ], - [ - "▁dis", - "co" - ], - [ - "▁disc", - "o" - ], - [ - "il", - "en" - ], - [ - "ile", - "n" - ], - [ - "i", - "len" - ], - [ - "▁v", - "agy" - ], - [ - "▁va", - "gy" - ], - [ - "li", - "city" - ], - [ - "lic", - "ity" - ], - [ - "licit", - "y" - ], - [ - "l", - "icity" - ], - [ - "B", - "order" - ], - [ - "▁T", - "rack" - ], - [ - "▁Tr", - "ack" - ], - [ - "▁Tra", - "ck" - ], - [ - "▁", - "Track" - ], - [ - "бо", - "м" - ], - [ - "б", - "ом" - ], - [ - "fa", - "ct" - ], - [ - "fac", - "t" - ], - [ - "f", - "act" - ], - [ - "ok", - "a" - ], - [ - "o", - "ka" - ], - [ - "▁g", - "ior" - ], - [ - "▁gi", - "or" - ], - [ - "▁", - "gior" - ], - [ - "▁XV", - "II" - ], - [ - "▁XVI", - "I" - ], - [ - "▁d", - "är" - ], - [ - "Si", - "te" - ], - [ - "S", - "ite" - ], - [ - "ał", - "o" - ], - [ - "a", - "ło" - ], - [ - "sk", - "á" - ], - [ - "s", - "ká" - ], - [ - "▁pix", - "els" - ], - [ - "▁pixel", - "s" - ], - [ - "vi", - "ty" - ], - [ - "v", - "ity" - ], - [ - "j", - "Query" - ], - [ - "▁sc", - "ulpt" - ], - [ - "▁c", - "argo" - ], - [ - "▁car", - "go" - ], - [ - "▁direct", - "ive" - ], - [ - "▁w", - "al" - ], - [ - "▁wa", - "l" - ], - [ - "▁", - "wal" - ], - [ - "▁c", - "onna" - ], - [ - "▁con", - "na" - ], - [ - "▁conn", - "a" - ], - [ - "▁Th", - "rough" - ], - [ - "▁э", - "том" - ], - [ - "▁это", - "м" - ], - [ - "St", - "atic" - ], - [ - "Stat", - "ic" - ], - [ - "oms", - "nitt" - ], - [ - "▁r", - "und" - ], - [ - "▁run", - "d" - ], - [ - "▁ru", - "nd" - ], - [ - "▁", - "rund" - ], - [ - "▁c", - "laimed" - ], - [ - "▁claim", - "ed" - ], - [ - "з", - "ня" - ], - [ - "sh", - "a" - ], - [ - "s", - "ha" - ], - [ - "▁r", - "ag" - ], - [ - "▁ra", - "g" - ], - [ - "▁", - "rag" - ], - [ - "cre", - "ment" - ], - [ - "cr", - "ement" - ], - [ - "▁fün", - "f" - ], - [ - "▁r", - "ival" - ], - [ - "▁riv", - "al" - ], - [ - "▁ri", - "val" - ], - [ - "▁", - "rival" - ], - [ - "ri", - "n" - ], - [ - "r", - "in" - ], - [ - "sl", - "ash" - ], - [ - "▁th", - "irty" - ], - [ - "s", - "leep" - ], - [ - "оло", - "ги" - ], - [ - "о", - "логи" - ], - [ - "S", - "M" - ], - [ - "ga", - "te" - ], - [ - "gat", - "e" - ], - [ - "g", - "ate" - ], - [ - "iz", - "ations" - ], - [ - "ization", - "s" - ], - [ - "vi", - "k" - ], - [ - "v", - "ik" - ], - [ - "▁b", - "less" - ], - [ - "▁bl", - "ess" - ], - [ - "▁ble", - "ss" - ], - [ - "▁Ill", - "inois" - ], - [ - "▁T", - "E" - ], - [ - "▁", - "TE" - ], - [ - "ut", - "ing" - ], - [ - "uti", - "ng" - ], - [ - "u", - "ting" - ], - [ - "▁sol", - "ving" - ], - [ - "GE", - "R" - ], - [ - "G", - "ER" - ], - [ - "▁X", - "IV" - ], - [ - "▁XI", - "V" - ], - [ - "▁Ind", - "ians" - ], - [ - "▁India", - "ns" - ], - [ - "▁Indian", - "s" - ], - [ - "ex", - "press" - ], - [ - "exp", - "ress" - ], - [ - "expr", - "ess" - ], - [ - "▁H", - "eil" - ], - [ - "▁He", - "il" - ], - [ - "▁mu", - "jer" - ], - [ - "▁invån", - "are" - ], - [ - "']", - ");" - ], - [ - "'])", - ";" - ], - [ - "'", - "]);" - ], - [ - "▁a", - "ur" - ], - [ - "▁au", - "r" - ], - [ - "▁", - "aur" - ], - [ - "bo", - "ost" - ], - [ - "G", - "O" - ], - [ - "▁n", - "in" - ], - [ - "▁ni", - "n" - ], - [ - "to", - "k" - ], - [ - "t", - "ok" - ], - [ - "go", - "d" - ], - [ - "g", - "od" - ], - [ - "ot", - "er" - ], - [ - "ote", - "r" - ], - [ - "o", - "ter" - ], - [ - ")$", - "$" - ], - [ - ")", - "$$" - ], - [ - "▁desc", - "end" - ], - [ - "р", - "ю" - ], - [ - "▁L", - "anguage" - ], - [ - "▁", - "Language" - ], - [ - "▁d", - "iver" - ], - [ - "▁di", - "ver" - ], - [ - "▁div", - "er" - ], - [ - "▁Ass", - "uming" - ], - [ - "▁fre", - "quent" - ], - [ - "▁frequ", - "ent" - ], - [ - "ч", - "ні" - ], - [ - "▁Bi", - "ography" - ], - [ - ",", - "[" - ], - [ - "ur", - "m" - ], - [ - "u", - "rm" - ], - [ - "▁walk", - "ed" - ], - [ - "▁wal", - "ked" - ], - [ - "▁feder", - "al" - ], - [ - "▁fed", - "eral" - ], - [ - "▁Mich", - "igan" - ], - [ - "▁fact", - "s" - ], - [ - "▁fac", - "ts" - ], - [ - "▁In", - "tegr" - ], - [ - "▁Int", - "egr" - ], - [ - "▁", - "Integr" - ], - [ - "LE", - "S" - ], - [ - "L", - "ES" - ], - [ - "▁A", - "lan" - ], - [ - "▁Al", - "an" - ], - [ - "▁c", - "oup" - ], - [ - "▁co", - "up" - ], - [ - "▁cou", - "p" - ], - [ - "Be", - "r" - ], - [ - "B", - "er" - ], - [ - "▁p", - "articles" - ], - [ - "▁part", - "icles" - ], - [ - "▁partic", - "les" - ], - [ - "▁particle", - "s" - ], - [ - "▁parti", - "cles" - ], - [ - "ћ", - "е" - ], - [ - "Infl", - "ater" - ], - [ - "+", - "(" - ], - [ - "Bo", - "und" - ], - [ - "B", - "ound" - ], - [ - "▁S", - "ü" - ], - [ - "A", - "udio" - ], - [ - "cite", - "t" - ], - [ - "cit", - "et" - ], - [ - "c", - "itet" - ], - [ - "ye", - "ct" - ], - [ - "y", - "ect" - ], - [ - "▁n", - "r" - ], - [ - "▁", - "nr" - ], - [ - "x", - "e" - ], - [ - "▁B", - "run" - ], - [ - "▁Br", - "un" - ], - [ - "▁Bru", - "n" - ], - [ - "▁_", - "," - ], - [ - "▁", - "_," - ], - [ - "av", - "or" - ], - [ - "avo", - "r" - ], - [ - "a", - "vor" - ], - [ - "▁dis", - "cipl" - ], - [ - "al", - "m" - ], - [ - "a", - "lm" - ], - [ - "▁но", - "ября" - ], - [ - "▁S", - "SL" - ], - [ - "▁SS", - "L" - ], - [ - "▁", - "SSL" - ], - [ - "▁Ka", - "iser" - ], - [ - "▁Kais", - "er" - ], - [ - "▁re", - "cher" - ], - [ - "▁rec", - "her" - ], - [ - "yg", - "on" - ], - [ - "y", - "gon" - ], - [ - "▁regard", - "less" - ], - [ - "▁config", - "ur" - ], - [ - "▁un", - "necess" - ], - [ - "▁Cl", - "ark" - ], - [ - "▁Clar", - "k" - ], - [ - "PH", - "P" - ], - [ - "P", - "HP" - ], - [ - "▁F", - "ALSE" - ], - [ - "▁", - "FALSE" - ], - [ - "▁p", - "ad" - ], - [ - "▁pa", - "d" - ], - [ - "▁", - "pad" - ], - [ - "$", - "}" - ], - [ - "▁v", - "alu" - ], - [ - "▁val", - "u" - ], - [ - "▁va", - "lu" - ], - [ - "▁", - "valu" - ], - [ - "▁dise", - "ase" - ], - [ - "▁ma", - "ior" - ], - [ - "▁mai", - "or" - ], - [ - "▁h", - "ommes" - ], - [ - "▁hom", - "mes" - ], - [ - "▁homme", - "s" - ], - [ - "▁Ed", - "ition" - ], - [ - "▁Edit", - "ion" - ], - [ - "sl", - "ant" - ], - [ - "s", - "lant" - ], - [ - "▁en", - "ding" - ], - [ - "▁end", - "ing" - ], - [ - "▁", - "ending" - ], - [ - "▁sett", - "led" - ], - [ - "ur", - "us" - ], - [ - "uru", - "s" - ], - [ - "u", - "rus" - ], - [ - "he", - "d" - ], - [ - "h", - "ed" - ], - [ - "Pat", - "tern" - ], - [ - "▁го", - "дина" - ], - [ - "▁годи", - "на" - ], - [ - "▁Phil", - "adel" - ], - [ - "tikz", - "picture" - ], - [ - "▁co", - "al" - ], - [ - "▁s", - "ede" - ], - [ - "▁se", - "de" - ], - [ - "▁sed", - "e" - ], - [ - "▁satisf", - "ies" - ], - [ - "▁t", - "rim" - ], - [ - "▁tr", - "im" - ], - [ - "▁tri", - "m" - ], - [ - "▁", - "trim" - ], - [ - "▁b", - "at" - ], - [ - "▁ba", - "t" - ], - [ - "▁", - "bat" - ], - [ - "▁améric", - "ain" - ], - [ - "▁lug", - "lio" - ], - [ - "▁по", - "ча" - ], - [ - "▁поч", - "а" - ], - [ - "ff", - "ff" - ], - [ - "fff", - "f" - ], - [ - "f", - "fff" - ], - [ - "▁T", - "arget" - ], - [ - "▁Tar", - "get" - ], - [ - "▁", - "Target" - ], - [ - "gener", - "ate" - ], - [ - "▁Z", - "ie" - ], - [ - "ți", - "a" - ], - [ - "ț", - "ia" - ], - [ - "▁g", - "ard" - ], - [ - "▁gar", - "d" - ], - [ - "▁ga", - "rd" - ], - [ - "▁work", - "ers" - ], - [ - "▁worker", - "s" - ], - [ - "▁J", - "ob" - ], - [ - "▁Jo", - "b" - ], - [ - "▁", - "Job" - ], - [ - "▁ur", - "ban" - ], - [ - "▁urb", - "an" - ], - [ - "▁", - "urban" - ], - [ - "ah", - "len" - ], - [ - "ahl", - "en" - ], - [ - "a", - "hlen" - ], - [ - "▁Build", - "ing" - ], - [ - "▁n", - "eu" - ], - [ - "▁ne", - "u" - ], - [ - "▁ch", - "ron" - ], - [ - "▁chr", - "on" - ], - [ - "▁", - "chron" - ], - [ - "▁Ear", - "l" - ], - [ - "gr", - "o" - ], - [ - "g", - "ro" - ], - [ - "US", - "E" - ], - [ - "U", - "SE" - ], - [ - "▁X", - "II" - ], - [ - "▁XI", - "I" - ], - [ - "▁we", - "alth" - ], - [ - "▁", - "wealth" - ], - [ - "in", - "ae" - ], - [ - "ina", - "e" - ], - [ - "▁Б", - "ра" - ], - [ - "▁li", - "bert" - ], - [ - "▁lib", - "ert" - ], - [ - "▁liber", - "t" - ], - [ - "ir", - "os" - ], - [ - "iro", - "s" - ], - [ - "i", - "ros" - ], - [ - ":", - "$" - ], - [ - "le", - "e" - ], - [ - "l", - "ee" - ], - [ - "ie", - "ves" - ], - [ - "ieve", - "s" - ], - [ - "iev", - "es" - ], - [ - "▁Just", - "ice" - ], - [ - "▁o", - "il" - ], - [ - "▁Ath", - "let" - ], - [ - "▁c", - "lo" - ], - [ - "▁cl", - "o" - ], - [ - "▁", - "clo" - ], - [ - "Sc", - "ale" - ], - [ - "Scal", - "e" - ], - [ - "▁l", - "ips" - ], - [ - "▁li", - "ps" - ], - [ - "▁lip", - "s" - ], - [ - "▁a", - "pril" - ], - [ - "▁ap", - "ril" - ], - [ - "▁apr", - "il" - ], - [ - "▁im", - "pression" - ], - [ - "▁imp", - "ression" - ], - [ - "▁impr", - "ession" - ], - [ - "▁impress", - "ion" - ], - [ - "▁per", - "ce" - ], - [ - "▁уча", - "сти" - ], - [ - "▁участ", - "и" - ], - [ - "vi", - "l" - ], - [ - "v", - "il" - ], - [ - "éc", - "h" - ], - [ - "é", - "ch" - ], - [ - "▁e", - "quality" - ], - [ - "▁equ", - "ality" - ], - [ - "▁equal", - "ity" - ], - [ - "▁", - "equality" - ], - [ - "▁м", - "ет" - ], - [ - "▁ме", - "т" - ], - [ - "▁", - "мет" - ], - [ - "▁an", - "notation" - ], - [ - "▁annot", - "ation" - ], - [ - "▁", - "annotation" - ], - [ - "er", - "nal" - ], - [ - "ern", - "al" - ], - [ - "erna", - "l" - ], - [ - "▁M", - "ach" - ], - [ - "▁Ma", - "ch" - ], - [ - "▁Mac", - "h" - ], - [ - "▁int", - "itul" - ], - [ - "pro", - "blem" - ], - [ - "prob", - "lem" - ], - [ - "ющи", - "х" - ], - [ - "ю", - "щих" - ], - [ - "op", - "lus" - ], - [ - "o", - "plus" - ], - [ - "▁thous", - "ands" - ], - [ - "▁thousand", - "s" - ], - [ - "▁calcul", - "ations" - ], - [ - "▁calculation", - "s" - ], - [ - "▁calc", - "ulations" - ], - [ - "um", - "ps" - ], - [ - "ump", - "s" - ], - [ - "▁tri", - "angle" - ], - [ - "▁", - "triangle" - ], - [ - "ph", - "al" - ], - [ - "pha", - "l" - ], - [ - "p", - "hal" - ], - [ - "▁D", - "orf" - ], - [ - "▁Do", - "rf" - ], - [ - "▁Dor", - "f" - ], - [ - "▁doll", - "ars" - ], - [ - "▁d", - "enen" - ], - [ - "▁de", - "nen" - ], - [ - "▁den", - "en" - ], - [ - "l", - "ès" - ], - [ - "ol", - "id" - ], - [ - "oli", - "d" - ], - [ - "▁Result", - "s" - ], - [ - "▁", - "Results" - ], - [ - "▁Stad", - "ium" - ], - [ - "▁D", - "esp" - ], - [ - "▁De", - "sp" - ], - [ - "▁Des", - "p" - ], - [ - "▁E", - "isen" - ], - [ - "im", - "ir" - ], - [ - "imi", - "r" - ], - [ - "i", - "mir" - ], - [ - "▁s", - "otto" - ], - [ - "▁so", - "tto" - ], - [ - "▁sott", - "o" - ], - [ - "▁č", - "i" - ], - [ - "▁", - "či" - ], - [ - "at", - "able" - ], - [ - "ata", - "ble" - ], - [ - "a", - "table" - ], - [ - "or", - "um" - ], - [ - "oru", - "m" - ], - [ - "o", - "rum" - ], - [ - "▁conver", - "gence" - ], - [ - "▁je", - "une" - ], - [ - "▁jeu", - "ne" - ], - [ - "ok", - "ing" - ], - [ - "oki", - "ng" - ], - [ - "o", - "king" - ], - [ - "▁жи", - "во" - ], - [ - "ain", - "ing" - ], - [ - "ai", - "ning" - ], - [ - "a", - "ining" - ], - [ - "po", - "inter" - ], - [ - "point", - "er" - ], - [ - "cul", - "o" - ], - [ - "cu", - "lo" - ], - [ - "c", - "ulo" - ], - [ - "▁js", - "ou" - ], - [ - "▁g", - "rab" - ], - [ - "▁gr", - "ab" - ], - [ - "▁gra", - "b" - ], - [ - "ak", - "te" - ], - [ - "akt", - "e" - ], - [ - "a", - "kte" - ], - [ - "▁ho", - "ping" - ], - [ - "▁hop", - "ing" - ], - [ - "▁M", - "ak" - ], - [ - "▁Ma", - "k" - ], - [ - "▁s", - "ag" - ], - [ - "▁sa", - "g" - ], - [ - "origin", - "e" - ], - [ - "orig", - "ine" - ], - [ - "▁по", - "след" - ], - [ - "▁после", - "д" - ], - [ - "▁V", - "eg" - ], - [ - "▁Ve", - "g" - ], - [ - "▁the", - "oret" - ], - [ - "▁T", - "ru" - ], - [ - "▁Tr", - "u" - ], - [ - "ne", - "ment" - ], - [ - "nem", - "ent" - ], - [ - "n", - "ement" - ], - [ - "▁f", - "aces" - ], - [ - "▁fa", - "ces" - ], - [ - "▁face", - "s" - ], - [ - "▁fac", - "es" - ], - [ - "▁", - "faces" - ], - [ - "H", - "or" - ], - [ - "Jo", - "in" - ], - [ - "J", - "oin" - ], - [ - "ar", - "el" - ], - [ - "are", - "l" - ], - [ - "a", - "rel" - ], - [ - "▁о", - "коло" - ], - [ - "▁ок", - "оло" - ], - [ - "How", - "ever" - ], - [ - "▁c", - "atal" - ], - [ - "▁ca", - "tal" - ], - [ - "▁cat", - "al" - ], - [ - "▁", - "catal" - ], - [ - "bo", - "urg" - ], - [ - "bour", - "g" - ], - [ - "b", - "ourg" - ], - [ - "▁mysql", - "i" - ], - [ - "▁mysq", - "li" - ], - [ - "▁", - "mysqli" - ], - [ - "ac", - "ions" - ], - [ - "acion", - "s" - ], - [ - "aci", - "ons" - ], - [ - "▁Init", - "ial" - ], - [ - "▁", - "Initial" - ], - [ - "▁r", - "ain" - ], - [ - "▁ra", - "in" - ], - [ - "▁", - "rain" - ], - [ - "it", - "ure" - ], - [ - "itu", - "re" - ], - [ - "▁Sci", - "ences" - ], - [ - "▁Science", - "s" - ], - [ - "▁Kre", - "is" - ], - [ - "._", - "_" - ], - [ - ".", - "__" - ], - [ - "▁cin", - "q" - ], - [ - "▁A", - "uß" - ], - [ - "▁Au", - "ß" - ], - [ - "ith", - "met" - ], - [ - "it", - "ors" - ], - [ - "ito", - "rs" - ], - [ - "itor", - "s" - ], - [ - "am", - "azon" - ], - [ - "ama", - "zon" - ], - [ - "▁g", - "ap" - ], - [ - "▁ga", - "p" - ], - [ - "▁ign", - "ored" - ], - [ - "▁ignore", - "d" - ], - [ - "▁ignor", - "ed" - ], - [ - "ad", - "v" - ], - [ - "ко", - "ї" - ], - [ - "▁ча", - "сть" - ], - [ - "▁час", - "ть" - ], - [ - "▁част", - "ь" - ], - [ - "▁cor", - "por" - ], - [ - "▁corpo", - "r" - ], - [ - "це", - "р" - ], - [ - "ц", - "ер" - ], - [ - "▁cr", - "ime" - ], - [ - "▁cri", - "me" - ], - [ - "▁crim", - "e" - ], - [ - "uo", - "us" - ], - [ - "u", - "ous" - ], - [ - "▁на", - "лази" - ], - [ - "Data", - "Frame" - ], - [ - "во", - "ди" - ], - [ - "вод", - "и" - ], - [ - "Ig", - "n" - ], - [ - "I", - "gn" - ], - [ - "▁Lin", - "coln" - ], - [ - "▁me", - "nos" - ], - [ - "▁men", - "os" - ], - [ - "▁Lu", - "ft" - ], - [ - "▁L", - "ind" - ], - [ - "▁Li", - "nd" - ], - [ - "▁Lin", - "d" - ], - [ - "▁C", - "ook" - ], - [ - "▁Co", - "ok" - ], - [ - "▁", - "Cook" - ], - [ - "▁material", - "s" - ], - [ - "ap", - "ped" - ], - [ - "app", - "ed" - ], - [ - "appe", - "d" - ], - [ - "a", - "pped" - ], - [ - "ign", - "ore" - ], - [ - "▁от", - "кры" - ], - [ - "fr", - "ied" - ], - [ - "fri", - "ed" - ], - [ - "f", - "ried" - ], - [ - "▁gouvern", - "ement" - ], - [ - "▁f", - "ired" - ], - [ - "▁fire", - "d" - ], - [ - "▁fi", - "red" - ], - [ - "▁fir", - "ed" - ], - [ - "▁screen", - "shot" - ], - [ - "▁screens", - "hot" - ], - [ - "се", - "н" - ], - [ - "с", - "ен" - ], - [ - "▁[", - "(" - ], - [ - "▁", - "[(" - ], - [ - "▁органи", - "за" - ], - [ - "Graph", - "ics" - ], - [ - "▁про", - "ти" - ], - [ - "▁p", - "hen" - ], - [ - "▁ph", - "en" - ], - [ - "▁", - "phen" - ], - [ - "cr", - "aft" - ], - [ - "cra", - "ft" - ], - [ - "c", - "raft" - ], - [ - "▁b", - "rain" - ], - [ - "▁br", - "ain" - ], - [ - "▁bra", - "in" - ], - [ - "▁C", - "omo" - ], - [ - "▁Com", - "o" - ], - [ - "▁Co", - "mo" - ], - [ - "▁Every", - "thing" - ], - [ - "an", - "es" - ], - [ - "ane", - "s" - ], - [ - "a", - "nes" - ], - [ - "IG", - "N" - ], - [ - "I", - "GN" - ], - [ - "▁n", - "ederbörd" - ], - [ - "▁", - "nederbörd" - ], - [ - "▁For", - "est" - ], - [ - "▁Fore", - "st" - ], - [ - "▁Fo", - "rest" - ], - [ - "za", - "hl" - ], - [ - "z", - "ahl" - ], - [ - "▁Am", - "ong" - ], - [ - "Q", - "t" - ], - [ - "▁to", - "gg" - ], - [ - "▁tog", - "g" - ], - [ - "▁vari", - "ant" - ], - [ - "▁", - "variant" - ], - [ - "▁h", - "ill" - ], - [ - "▁hi", - "ll" - ], - [ - "▁", - "hill" - ], - [ - "пи", - "си" - ], - [ - "пис", - "и" - ], - [ - "col", - "on" - ], - [ - "co", - "lon" - ], - [ - "colo", - "n" - ], - [ - "▁dic", - "embre" - ], - [ - "го", - "р" - ], - [ - "г", - "ор" - ], - [ - "▁W", - "ind" - ], - [ - "▁Win", - "d" - ], - [ - "▁Wi", - "nd" - ], - [ - "ünst", - "ler" - ], - [ - "▁=", - "\\" - ], - [ - "▁", - "=\\" - ], - [ - "sa", - "ved" - ], - [ - "save", - "d" - ], - [ - "s", - "aved" - ], - [ - "▁n", - "ej" - ], - [ - "▁ne", - "j" - ], - [ - "▁", - "nej" - ], - [ - "un", - "te" - ], - [ - "unt", - "e" - ], - [ - "ut", - "to" - ], - [ - "utt", - "o" - ], - [ - "u", - "tto" - ], - [ - "▁rec", - "ens" - ], - [ - "▁rece", - "ns" - ], - [ - "▁s", - "ick" - ], - [ - "▁si", - "ck" - ], - [ - "▁sic", - "k" - ], - [ - "▁d", - "esen" - ], - [ - "▁de", - "sen" - ], - [ - "▁des", - "en" - ], - [ - "US", - "T" - ], - [ - "U", - "ST" - ], - [ - "▁wor", - "st" - ], - [ - "▁An", - "gel" - ], - [ - "▁Ang", - "el" - ], - [ - "od", - "ox" - ], - [ - "odo", - "x" - ], - [ - "▁Prov", - "ince" - ], - [ - "▁Provin", - "ce" - ], - [ - "▁M", - "az" - ], - [ - "▁Ma", - "z" - ], - [ - "▁agre", - "ement" - ], - [ - "▁agree", - "ment" - ], - [ - "▁B", - "ass" - ], - [ - "▁Bas", - "s" - ], - [ - "▁Ba", - "ss" - ], - [ - "▁seg", - "unda" - ], - [ - "on", - "ces" - ], - [ - "once", - "s" - ], - [ - "onc", - "es" - ], - [ - "▁Lin", - "ki" - ], - [ - "▁Link", - "i" - ], - [ - "▁C", - "L" - ], - [ - "▁", - "CL" - ], - [ - "▁j", - "á" - ], - [ - "it", - "ement" - ], - [ - "ite", - "ment" - ], - [ - "item", - "ent" - ], - [ - "▁á", - "rea" - ], - [ - "▁ár", - "ea" - ], - [ - "▁scal", - "ar" - ], - [ - "▁scala", - "r" - ], - [ - "▁Р", - "ес" - ], - [ - "▁Ре", - "с" - ], - [ - "aw", - "t" - ], - [ - "a", - "wt" - ], - [ - "si", - "eme" - ], - [ - "▁j", - "uni" - ], - [ - "▁ju", - "ni" - ], - [ - "▁jun", - "i" - ], - [ - "▁худо", - "ж" - ], - [ - "ik", - "us" - ], - [ - "iku", - "s" - ], - [ - "▁l", - "id" - ], - [ - "▁li", - "d" - ], - [ - "pp", - "el" - ], - [ - "ppe", - "l" - ], - [ - "p", - "pel" - ], - [ - "av", - "i" - ], - [ - "a", - "vi" - ], - [ - "▁bal", - "ance" - ], - [ - "ip", - "ping" - ], - [ - "ipp", - "ing" - ], - [ - "ippi", - "ng" - ], - [ - "i", - "pping" - ], - [ - "cuss", - "ion" - ], - [ - "че", - "ских" - ], - [ - "(\"", - "." - ], - [ - "(", - "\"." - ], - [ - "Al", - "so" - ], - [ - "▁w", - "his" - ], - [ - "▁wh", - "is" - ], - [ - "HO", - "ME" - ], - [ - "▁b", - "rown" - ], - [ - "▁br", - "own" - ], - [ - "▁bro", - "wn" - ], - [ - "▁brow", - "n" - ], - [ - "▁d", - "ía" - ], - [ - "▁dí", - "a" - ], - [ - "▁pu", - "ò" - ], - [ - "plot", - "lib" - ], - [ - "▁Jahrhundert", - "s" - ], - [ - "D", - "K" - ], - [ - "▁an", - "chor" - ], - [ - "▁anc", - "hor" - ], - [ - "▁anch", - "or" - ], - [ - "▁", - "anchor" - ], - [ - "..", - ".]" - ], - [ - "...", - "]" - ], - [ - "▁Aust", - "ria" - ], - [ - "▁m", - "arca" - ], - [ - "▁mar", - "ca" - ], - [ - "▁marc", - "a" - ], - [ - "▁g", - "ez" - ], - [ - "▁ge", - "z" - ], - [ - "ious", - "ly" - ], - [ - "i", - "ously" - ], - [ - "▁l", - "azy" - ], - [ - "▁la", - "zy" - ], - [ - "x", - "a" - ], - [ - "▁Ch", - "annel" - ], - [ - "▁Chan", - "nel" - ], - [ - "▁", - "Channel" - ], - [ - "▁ne", - "uen" - ], - [ - "▁neue", - "n" - ], - [ - "▁neu", - "en" - ], - [ - "da", - "s" - ], - [ - "d", - "as" - ], - [ - "▁search", - "ed" - ], - [ - "▁sta", - "at" - ], - [ - "▁", - "staat" - ], - [ - "▁Та", - "к" - ], - [ - "▁Jo", - "sef" - ], - [ - "▁Jose", - "f" - ], - [ - "▁Jos", - "ef" - ], - [ - "▁S", - "her" - ], - [ - "▁Sh", - "er" - ], - [ - "▁She", - "r" - ], - [ - "po", - "is" - ], - [ - "p", - "ois" - ], - [ - "▁e", - "nem" - ], - [ - "▁en", - "em" - ], - [ - "▁access", - "ing" - ], - [ - "▁не", - "ко" - ], - [ - "▁fur", - "ono" - ], - [ - "▁pse", - "udo" - ], - [ - "▁pseud", - "o" - ], - [ - "?", - ">" - ], - [ - "▁estado", - "un" - ], - [ - "▁estad", - "oun" - ], - [ - "▁Ви", - "ди" - ], - [ - "▁mot", - "iv" - ], - [ - "▁re", - "call" - ], - [ - "▁rec", - "all" - ], - [ - "is", - "son" - ], - [ - "iss", - "on" - ], - [ - "i", - "sson" - ], - [ - "ó", - "b" - ], - [ - ")-", - "-" - ], - [ - ")", - "--" - ], - [ - "▁E", - "rz" - ], - [ - "▁Er", - "z" - ], - [ - "▁са", - "вез" - ], - [ - "Dir", - "ect" - ], - [ - "Di", - "rect" - ], - [ - "D", - "irect" - ], - [ - "со", - "б" - ], - [ - "с", - "об" - ], - [ - "▁s", - "ho" - ], - [ - "▁sh", - "o" - ], - [ - "v", - "ölker" - ], - [ - "A", - "p" - ], - [ - "ge", - "ns" - ], - [ - "gen", - "s" - ], - [ - "g", - "ens" - ], - [ - "ниш", - "тво" - ], - [ - "▁Am", - "sterdam" - ], - [ - "us", - "k" - ], - [ - "u", - "sk" - ], - [ - "п", - "ло" - ], - [ - "▁sim", - "ulation" - ], - [ - "▁B", - "C" - ], - [ - "▁", - "BC" - ], - [ - "▁W", - "oj" - ], - [ - "▁Wo", - "j" - ], - [ - "au", - "tom" - ], - [ - "aut", - "om" - ], - [ - "auto", - "m" - ], - [ - "Al", - "ex" - ], - [ - "A", - "lex" - ], - [ - "▁econom", - "ic" - ], - [ - "▁econ", - "omic" - ], - [ - "го", - "м" - ], - [ - "г", - "ом" - ], - [ - "ik", - "ai" - ], - [ - "ika", - "i" - ], - [ - "▁a", - "ltre" - ], - [ - "▁al", - "tre" - ], - [ - "▁alt", - "re" - ], - [ - "▁'", - "-" - ], - [ - "▁", - "'-" - ], - [ - "▁W", - "eg" - ], - [ - "▁We", - "g" - ], - [ - "Not", - "Found" - ], - [ - "й", - "ской" - ], - [ - "▁convert", - "ing" - ], - [ - "▁conver", - "ting" - ], - [ - "ph", - "abet" - ], - [ - "pha", - "bet" - ], - [ - "at", - "rice" - ], - [ - "atr", - "ice" - ], - [ - "atri", - "ce" - ], - [ - "bour", - "ne" - ], - [ - "al", - "om" - ], - [ - "alo", - "m" - ], - [ - "▁comp", - "aring" - ], - [ - "▁compar", - "ing" - ], - [ - "▁Z", - "o" - ], - [ - "▁f", - "la" - ], - [ - "▁fl", - "a" - ], - [ - "ва", - "я" - ], - [ - "▁en", - "tra" - ], - [ - "▁ent", - "ra" - ], - [ - "▁entr", - "a" - ], - [ - "▁char", - "set" - ], - [ - "▁chars", - "et" - ], - [ - "develop", - "ers" - ], - [ - "developer", - "s" - ], - [ - "íst", - "ica" - ], - [ - "}", - ">" - ], - [ - "▁J", - "azz" - ], - [ - "▁Ja", - "zz" - ], - [ - "▁How", - "ard" - ], - [ - "▁Ho", - "ward" - ], - [ - "ш", - "та" - ], - [ - "▁cl", - "one" - ], - [ - "▁clo", - "ne" - ], - [ - "▁", - "clone" - ], - [ - "do", - "or" - ], - [ - "d", - "oor" - ], - [ - "▁P", - "in" - ], - [ - "▁Pi", - "n" - ], - [ - "**", - "*" - ], - [ - "*", - "**" - ], - [ - "▁sil", - "ent" - ], - [ - "ec", - "ycle" - ], - [ - "e", - "cycle" - ], - [ - "is", - "ce" - ], - [ - "isc", - "e" - ], - [ - "i", - "sce" - ], - [ - "▁m", - "ud" - ], - [ - "▁mu", - "d" - ], - [ - "▁Dis", - "play" - ], - [ - "▁", - "Display" - ], - [ - "▁l", - "ip" - ], - [ - "▁li", - "p" - ], - [ - "▁", - "lip" - ], - [ - "▁исполь", - "зова" - ], - [ - "▁character", - "istic" - ], - [ - "▁s", - "b" - ], - [ - "▁", - "sb" - ], - [ - "fire", - "base" - ], - [ - "▁B", - "ew" - ], - [ - "▁Be", - "w" - ], - [ - "Cal", - "endar" - ], - [ - "▁u", - "so" - ], - [ - "▁us", - "o" - ], - [ - "▁", - "uso" - ], - [ - "ès", - "e" - ], - [ - "è", - "se" - ], - [ - "▁R", - "at" - ], - [ - "▁Ra", - "t" - ], - [ - "▁es", - "per" - ], - [ - "▁espe", - "r" - ], - [ - "▁esp", - "er" - ], - [ - "▁", - "esper" - ], - [ - "▁throw", - "ing" - ], - [ - "▁thro", - "wing" - ], - [ - "▁ro", - "dz" - ], - [ - "▁rod", - "z" - ], - [ - "▁y", - "ards" - ], - [ - "▁yard", - "s" - ], - [ - "▁g", - "rass" - ], - [ - "▁gr", - "ass" - ], - [ - "▁gra", - "ss" - ], - [ - "▁mar", - "ker" - ], - [ - "▁mark", - "er" - ], - [ - "▁", - "marker" - ], - [ - "▁K", - "os" - ], - [ - "▁Ko", - "s" - ], - [ - "Th", - "eta" - ], - [ - "The", - "ta" - ], - [ - "▁organ", - "is" - ], - [ - "ker", - "nel" - ], - [ - "kern", - "el" - ], - [ - "k", - "ernel" - ], - [ - "▁person", - "as" - ], - [ - "▁pers", - "onas" - ], - [ - "▁persona", - "s" - ], - [ - "ke", - "ep" - ], - [ - "kee", - "p" - ], - [ - "▁exc", - "laimed" - ], - [ - "os", - "lav" - ], - [ - "▁Ent", - "ertain" - ], - [ - "▁Enter", - "tain" - ], - [ - "не", - "р" - ], - [ - "н", - "ер" - ], - [ - "▁in", - "won" - ], - [ - "▁R", - "and" - ], - [ - "▁Ra", - "nd" - ], - [ - "▁Ran", - "d" - ], - [ - "red", - "uce" - ], - [ - "redu", - "ce" - ], - [ - "fa", - "c" - ], - [ - "f", - "ac" - ], - [ - "ex", - "pression" - ], - [ - "exp", - "ression" - ], - [ - "expr", - "ession" - ], - [ - "express", - "ion" - ], - [ - "y", - "j" - ], - [ - "▁differ", - "enti" - ], - [ - "▁different", - "i" - ], - [ - "ag", - "lia" - ], - [ - "agli", - "a" - ], - [ - "▁tem", - "plates" - ], - [ - "▁template", - "s" - ], - [ - "▁", - "templates" - ], - [ - "▁m", - "ű" - ], - [ - "▁p", - "rv" - ], - [ - "▁pr", - "v" - ], - [ - "▁m", - "ois" - ], - [ - "▁mo", - "is" - ], - [ - "▁moi", - "s" - ], - [ - "▁gew", - "ann" - ], - [ - "▁бу", - "ла" - ], - [ - "bib", - "li" - ], - [ - "b", - "ibli" - ], - [ - "de", - "mo" - ], - [ - "dem", - "o" - ], - [ - "d", - "emo" - ], - [ - "▁And", - "erson" - ], - [ - "▁Anders", - "on" - ], - [ - "▁ре", - "д" - ], - [ - "▁", - "ред" - ], - [ - "▁por", - "que" - ], - [ - "▁P", - "ologne" - ], - [ - "▁Pol", - "ogne" - ], - [ - "▁t", - "rip" - ], - [ - "▁tr", - "ip" - ], - [ - "▁tri", - "p" - ], - [ - "▁exem", - "ple" - ], - [ - "▁exempl", - "e" - ], - [ - "▁Intern", - "acional" - ], - [ - "▁ка", - "о" - ], - [ - "In", - "sert" - ], - [ - "gen", - "eral" - ], - [ - "gener", - "al" - ], - [ - "SE", - "SSION" - ], - [ - "ber", - "ga" - ], - [ - "berg", - "a" - ], - [ - "hä", - "lt" - ], - [ - "h", - "ält" - ], - [ - "un", - "as" - ], - [ - "una", - "s" - ], - [ - "u", - "nas" - ], - [ - "ми", - "ра" - ], - [ - "мир", - "а" - ], - [ - "▁yield", - "s" - ], - [ - "map", - "sto" - ], - [ - "maps", - "to" - ], - [ - "sp", - "ot" - ], - [ - "s", - "pot" - ], - [ - "▁+", - "\\" - ], - [ - "▁", - "+\\" - ], - [ - "лл", - "а" - ], - [ - "л", - "ла" - ], - [ - "▁precis", - "ely" - ], - [ - "▁precise", - "ly" - ], - [ - "▁ч", - "лен" - ], - [ - "sh", - "adow" - ], - [ - "Ar", - "e" - ], - [ - "A", - "re" - ], - [ - "un", - "al" - ], - [ - "una", - "l" - ], - [ - "u", - "nal" - ], - [ - "▁dis", - "par" - ], - [ - "▁disp", - "ar" - ], - [ - "▁tít", - "ulo" - ], - [ - "ne", - "st" - ], - [ - "nes", - "t" - ], - [ - "n", - "est" - ], - [ - "▁L", - "ow" - ], - [ - "▁Lo", - "w" - ], - [ - "▁p", - "rot" - ], - [ - "▁pro", - "t" - ], - [ - "▁pr", - "ot" - ], - [ - "▁C", - "osta" - ], - [ - "▁Co", - "sta" - ], - [ - "▁Cost", - "a" - ], - [ - "▁Cos", - "ta" - ], - [ - "name", - "d" - ], - [ - "na", - "med" - ], - [ - "nam", - "ed" - ], - [ - "n", - "amed" - ], - [ - "▁g", - "ained" - ], - [ - "▁ga", - "ined" - ], - [ - "▁gain", - "ed" - ], - [ - "les", - "ia" - ], - [ - "l", - "esia" - ], - [ - "▁admin", - "istration" - ], - [ - "▁administr", - "ation" - ], - [ - "Im", - "port" - ], - [ - "Imp", - "ort" - ], - [ - "br", - "anch" - ], - [ - "b", - "ranch" - ], - [ - "▁sym", - "path" - ], - [ - "vo", - "j" - ], - [ - "v", - "oj" - ], - [ - "▁E", - "C" - ], - [ - "▁", - "EC" - ], - [ - "▁municip", - "io" - ], - [ - "▁anim", - "ated" - ], - [ - "▁animate", - "d" - ], - [ - "▁direct", - "ories" - ], - [ - "▁director", - "ies" - ], - [ - "▁ro", - "of" - ], - [ - "zą", - "d" - ], - [ - "z", - "ąd" - ], - [ - "im", - "et" - ], - [ - "ime", - "t" - ], - [ - "i", - "met" - ], - [ - "pr", - "oto" - ], - [ - "pro", - "to" - ], - [ - "bl", - "a" - ], - [ - "b", - "la" - ], - [ - ":", - "]" - ], - [ - "ha", - "ve" - ], - [ - "hav", - "e" - ], - [ - "h", - "ave" - ], - [ - "at", - "em" - ], - [ - "ate", - "m" - ], - [ - "a", - "tem" - ], - [ - "▁n", - "s" - ], - [ - "▁", - "ns" - ], - [ - "▁s", - "ector" - ], - [ - "▁se", - "ctor" - ], - [ - "▁sec", - "tor" - ], - [ - "▁sect", - "or" - ], - [ - "th", - "ree" - ], - [ - "ow", - "ane" - ], - [ - "owa", - "ne" - ], - [ - "owan", - "e" - ], - [ - "wer", - "s" - ], - [ - "we", - "rs" - ], - [ - "w", - "ers" - ], - [ - "ов", - "их" - ], - [ - "ови", - "х" - ], - [ - "ren", - "ce" - ], - [ - "r", - "ence" - ], - [ - "▁ex", - "tr" - ], - [ - "▁ext", - "r" - ], - [ - "ig", - "ten" - ], - [ - "igt", - "en" - ], - [ - "igte", - "n" - ], - [ - "▁occ", - "ident" - ], - [ - "ț", - "ă" - ], - [ - "▁e", - "at" - ], - [ - "▁h", - "ydro" - ], - [ - "▁hy", - "dro" - ], - [ - "▁hyd", - "ro" - ], - [ - "ubern", - "etes" - ], - [ - "[", - "@" - ], - [ - "▁M", - "oon" - ], - [ - "▁Mo", - "on" - ], - [ - "▁S", - "ho" - ], - [ - "▁Sh", - "o" - ], - [ - "▁else", - "where" - ], - [ - "ül", - "ler" - ], - [ - "üll", - "er" - ], - [ - "Up", - "load" - ], - [ - "ла", - "нд" - ], - [ - "лан", - "д" - ], - [ - "л", - "анд" - ], - [ - "▁F", - "ör" - ], - [ - "w", - "issenschaft" - ], - [ - "K", - "S" - ], - [ - "▁phys", - "ics" - ], - [ - "▁", - "physics" - ], - [ - "t", - "z" - ], - [ - "▁се", - "ред" - ], - [ - "▁Ar", - "beit" - ], - [ - "▁Arbe", - "it" - ], - [ - "▁ме", - "ст" - ], - [ - "▁", - "мест" - ], - [ - "▁Geb", - "iet" - ], - [ - "▁in", - "sect" - ], - [ - "▁ins", - "ect" - ], - [ - "▁inse", - "ct" - ], - [ - "A", - "h" - ], - [ - "iz", - "ado" - ], - [ - "iza", - "do" - ], - [ - "▁tem", - "ple" - ], - [ - "▁temp", - "le" - ], - [ - "▁ann", - "ual" - ], - [ - "st", - "ad" - ], - [ - "sta", - "d" - ], - [ - "▁hab", - "itat" - ], - [ - "▁habit", - "at" - ], - [ - "▁A", - "B" - ], - [ - "▁", - "AB" - ], - [ - "wo", - "rt" - ], - [ - "wor", - "t" - ], - [ - "w", - "ort" - ], - [ - "▁re", - "pos" - ], - [ - "▁rep", - "os" - ], - [ - "▁repo", - "s" - ], - [ - "▁N", - "eu" - ], - [ - "▁Ne", - "u" - ], - [ - "▁$", - "(\"." - ], - [ - "▁$(", - "\"." - ], - [ - "▁$(\"", - "." - ], - [ - "Vor", - "lage" - ], - [ - "▁repre", - "zent" - ], - [ - "est", - "anden" - ], - [ - "In", - "tern" - ], - [ - "Int", - "ern" - ], - [ - "Inter", - "n" - ], - [ - ".", - "`" - ], - [ - "▁fa", - "iling" - ], - [ - "▁fail", - "ing" - ], - [ - "▁M", - "aterial" - ], - [ - "▁Mate", - "rial" - ], - [ - "▁", - "Material" - ], - [ - "▁effect", - "ively" - ], - [ - "▁effective", - "ly" - ], - [ - "те", - "лем" - ], - [ - "тел", - "ем" - ], - [ - "▁г", - "ла" - ], - [ - "▁", - "гла" - ], - [ - "▁na", - "hm" - ], - [ - "▁nah", - "m" - ], - [ - "▁", - "nahm" - ], - [ - "▁differ", - "ently" - ], - [ - "▁different", - "ly" - ], - [ - "ext", - "ension" - ], - [ - "▁V", - "erm" - ], - [ - "▁Ver", - "m" - ], - [ - "▁Ve", - "rm" - ], - [ - "en", - "abled" - ], - [ - "ena", - "bled" - ], - [ - "enable", - "d" - ], - [ - "con", - "figure" - ], - [ - "config", - "ure" - ], - [ - "ni", - "o" - ], - [ - "n", - "io" - ], - [ - "ci", - "ones" - ], - [ - "cio", - "nes" - ], - [ - "cion", - "es" - ], - [ - "c", - "iones" - ], - [ - "▁B", - "each" - ], - [ - "▁Be", - "ach" - ], - [ - "со", - "на" - ], - [ - "сон", - "а" - ], - [ - "с", - "она" - ], - [ - "▁copy", - "ing" - ], - [ - "▁cop", - "ying" - ], - [ - "▁у", - "країн" - ], - [ - "▁при", - "зна" - ], - [ - "▁приз", - "на" - ], - [ - "z", - "h" - ], - [ - "Des", - "ktop" - ], - [ - "▁s", - "ost" - ], - [ - "▁so", - "st" - ], - [ - "▁sub", - "sequently" - ], - [ - "▁subsequ", - "ently" - ], - [ - "▁subsequent", - "ly" - ], - [ - "▁Le", - "hr" - ], - [ - "▁", - "ó" - ], - [ - "lä", - "r" - ], - [ - "l", - "är" - ], - [ - "od", - "or" - ], - [ - "odo", - "r" - ], - [ - "o", - "dor" - ], - [ - "ph", - "on" - ], - [ - "p", - "hon" - ], - [ - "n", - "c" - ], - [ - "iter", - "ator" - ], - [ - "▁э", - "ти" - ], - [ - "▁europ", - "é" - ], - [ - "▁Tor", - "onto" - ], - [ - "ód", - "igo" - ], - [ - "▁p", - "osto" - ], - [ - "▁po", - "sto" - ], - [ - "▁pos", - "to" - ], - [ - "▁post", - "o" - ], - [ - "ff", - "e" - ], - [ - "f", - "fe" - ], - [ - "▁c", - "rew" - ], - [ - "▁cre", - "w" - ], - [ - "▁cr", - "ew" - ], - [ - "▁Sch", - "war" - ], - [ - "▁Schw", - "ar" - ], - [ - "S", - "a" - ], - [ - "squ", - "are" - ], - [ - "s", - "quare" - ], - [ - "▁be", - "side" - ], - [ - "▁bes", - "ide" - ], - [ - "▁М", - "і" - ], - [ - "▁a", - "th" - ], - [ - "▁at", - "h" - ], - [ - "▁", - "ath" - ], - [ - "▁ad", - "vent" - ], - [ - "▁adv", - "ent" - ], - [ - "c", - "ji" - ], - [ - "writ", - "ten" - ], - [ - "wr", - "itten" - ], - [ - "w", - "ritten" - ], - [ - "▁r", - "uss" - ], - [ - "▁ru", - "ss" - ], - [ - "▁rus", - "s" - ], - [ - "ro", - "st" - ], - [ - "ros", - "t" - ], - [ - "r", - "ost" - ], - [ - "H", - "I" - ], - [ - "▁d", - "ice" - ], - [ - "▁di", - "ce" - ], - [ - "▁dic", - "e" - ], - [ - "cc", - "a" - ], - [ - "c", - "ca" - ], - [ - "▁d", - "ép" - ], - [ - "▁dé", - "p" - ], - [ - "pl", - "y" - ], - [ - "p", - "ly" - ], - [ - "big", - "g" - ], - [ - "bi", - "gg" - ], - [ - "b", - "igg" - ], - [ - "zi", - "ał" - ], - [ - "zia", - "ł" - ], - [ - "z", - "iał" - ], - [ - "üt", - "t" - ], - [ - "ü", - "tt" - ], - [ - "▁о", - "дно" - ], - [ - "▁од", - "но" - ], - [ - "J", - "ECT" - ], - [ - "сь", - "кому" - ], - [ - "сько", - "му" - ], - [ - "ськ", - "ому" - ], - [ - "no", - "s" - ], - [ - "n", - "os" - ], - [ - "mo", - "ck" - ], - [ - "m", - "ock" - ], - [ - "La", - "unch" - ], - [ - "sa", - "me" - ], - [ - "sam", - "e" - ], - [ - "s", - "ame" - ], - [ - "▁j", - "obs" - ], - [ - "▁jo", - "bs" - ], - [ - "▁job", - "s" - ], - [ - "▁wide", - "ly" - ], - [ - "▁wid", - "ely" - ], - [ - "▁def", - "ines" - ], - [ - "▁define", - "s" - ], - [ - "▁defin", - "es" - ], - [ - "▁P", - "se" - ], - [ - "▁Ps", - "e" - ], - [ - "▁neigh", - "bour" - ], - [ - "▁neighb", - "our" - ], - [ - "ющи", - "е" - ], - [ - "▁cl", - "oser" - ], - [ - "▁close", - "r" - ], - [ - "▁clos", - "er" - ], - [ - "▁clo", - "ser" - ], - [ - "▁рас", - "поло" - ], - [ - "▁распо", - "ло" - ], - [ - "▁cl", - "ubs" - ], - [ - "▁club", - "s" - ], - [ - "fl", - "y" - ], - [ - "f", - "ly" - ], - [ - "ши", - "м" - ], - [ - "ш", - "им" - ], - [ - "▁suffer", - "ed" - ], - [ - "▁suff", - "ered" - ], - [ - "▁n", - "ar" - ], - [ - "▁na", - "r" - ], - [ - "▁", - "nar" - ], - [ - "▁l", - "avor" - ], - [ - "▁la", - "vor" - ], - [ - "▁lav", - "or" - ], - [ - "Ext", - "ension" - ], - [ - "ition", - "ally" - ], - [ - "itional", - "ly" - ], - [ - "▁g", - "race" - ], - [ - "▁gr", - "ace" - ], - [ - "▁gra", - "ce" - ], - [ - "▁Campe", - "onato" - ], - [ - "▁Christ", - "mas" - ], - [ - "m", - "iddle" - ], - [ - "oth", - "ek" - ], - [ - "othe", - "k" - ], - [ - "el", - "ements" - ], - [ - "element", - "s" - ], - [ - "ele", - "ments" - ], - [ - "elem", - "ents" - ], - [ - "▁son", - "dern" - ], - [ - "▁t", - "arde" - ], - [ - "▁tar", - "de" - ], - [ - "▁tard", - "e" - ], - [ - "▁perman", - "ent" - ], - [ - "▁con", - "clude" - ], - [ - "▁concl", - "ude" - ], - [ - "Se", - "g" - ], - [ - "S", - "eg" - ], - [ - "▁а", - "каде" - ], - [ - "}\"", - "," - ], - [ - "}", - "\"," - ], - [ - "▁февра", - "ля" - ], - [ - "ře", - "d" - ], - [ - "ř", - "ed" - ], - [ - "▁I", - "L" - ], - [ - "▁", - "IL" - ], - [ - "ju", - "d" - ], - [ - "j", - "ud" - ], - [ - "▁U", - "SS" - ], - [ - "▁US", - "S" - ], - [ - "▁N", - "ature" - ], - [ - "▁Natur", - "e" - ], - [ - "▁Nat", - "ure" - ], - [ - "if", - "ference" - ], - [ - "iffer", - "ence" - ], - [ - "iffe", - "rence" - ], - [ - "Serial", - "izer" - ], - [ - "▁tw", - "elve" - ], - [ - "ti", - "d" - ], - [ - "t", - "id" - ], - [ - "ми", - "я" - ], - [ - "че", - "ского" - ], - [ - "▁cal", - "endar" - ], - [ - "▁", - "calendar" - ], - [ - "con", - "cat" - ], - [ - "▁inter", - "section" - ], - [ - "▁intersect", - "ion" - ], - [ - "▁P", - "A" - ], - [ - "▁", - "PA" - ], - [ - "az", - "ure" - ], - [ - "azu", - "re" - ], - [ - "▁situ", - "ée" - ], - [ - "▁situé", - "e" - ], - [ - "▁k", - "inds" - ], - [ - "▁kind", - "s" - ], - [ - "▁kin", - "ds" - ], - [ - "▁aus", - "ge" - ], - [ - "▁r", - "ural" - ], - [ - "▁ru", - "ral" - ], - [ - "Th", - "eme" - ], - [ - "The", - "me" - ], - [ - "▁t", - "ale" - ], - [ - "▁tal", - "e" - ], - [ - "▁ta", - "le" - ], - [ - "no", - "indent" - ], - [ - "go", - "ing" - ], - [ - "r", - "x" - ], - [ - "ag", - "i" - ], - [ - "a", - "gi" - ], - [ - "wrap", - "per" - ], - [ - "wr", - "apper" - ], - [ - "w", - "rapper" - ], - [ - "▁Co", - "ast" - ], - [ - "mb", - "H" - ], - [ - "▁пере", - "д" - ], - [ - "▁пе", - "ред" - ], - [ - "sp", - "re" - ], - [ - "spr", - "e" - ], - [ - "s", - "pre" - ], - [ - "▁}", - "\\" - ], - [ - "▁", - "}\\" - ], - [ - "▁L", - "I" - ], - [ - "▁", - "LI" - ], - [ - "zn", - "am" - ], - [ - "zna", - "m" - ], - [ - "z", - "nam" - ], - [ - "it", - "led" - ], - [ - "itle", - "d" - ], - [ - "Sam", - "ple" - ], - [ - "S", - "ample" - ], - [ - "ul", - "iar" - ], - [ - "uli", - "ar" - ], - [ - "*", - "\\" - ], - [ - "▁res", - "istance" - ], - [ - "▁resist", - "ance" - ], - [ - "st", - "ock" - ], - [ - "sto", - "ck" - ], - [ - "ke", - "d" - ], - [ - "k", - "ed" - ], - [ - "▁H", - "E" - ], - [ - "▁", - "HE" - ], - [ - "▁pos", - "session" - ], - [ - "▁poss", - "ession" - ], - [ - "▁possess", - "ion" - ], - [ - "▁R", - "ing" - ], - [ - "▁Ri", - "ng" - ], - [ - "▁m", - "agyar" - ], - [ - "▁mag", - "yar" - ], - [ - "ou", - "ts" - ], - [ - "out", - "s" - ], - [ - "o", - "uts" - ], - [ - "▁Secret", - "ary" - ], - [ - "nd", - "e" - ], - [ - "n", - "de" - ], - [ - "▁W", - "ald" - ], - [ - "▁Wal", - "d" - ], - [ - "▁Wa", - "ld" - ], - [ - "-", - "(" - ], - [ - "▁I", - "SO" - ], - [ - "▁IS", - "O" - ], - [ - "▁", - "ISO" - ], - [ - "▁af", - "ternoon" - ], - [ - "ion", - "en" - ], - [ - "io", - "nen" - ], - [ - "ione", - "n" - ], - [ - "i", - "onen" - ], - [ - "▁st", - "ops" - ], - [ - "▁stop", - "s" - ], - [ - "▁sto", - "ps" - ], - [ - "▁const", - "ants" - ], - [ - "▁constant", - "s" - ], - [ - "gu", - "ard" - ], - [ - "bo", - "w" - ], - [ - "b", - "ow" - ], - [ - "▁e", - "rs" - ], - [ - "▁er", - "s" - ], - [ - "▁", - "ers" - ], - [ - "▁Fire", - "base" - ], - [ - "▁C", - "lear" - ], - [ - "▁Cl", - "ear" - ], - [ - "▁Cle", - "ar" - ], - [ - "▁", - "Clear" - ], - [ - "▁H", - "oly" - ], - [ - "▁Hol", - "y" - ], - [ - "▁Ho", - "ly" - ], - [ - "W", - "in" - ], - [ - "▁title", - "s" - ], - [ - "▁tit", - "les" - ], - [ - "▁т", - "рав" - ], - [ - "▁тра", - "в" - ], - [ - "▁cont", - "rib" - ], - [ - "▁contr", - "ib" - ], - [ - "▁", - "contrib" - ], - [ - "hä", - "ng" - ], - [ - "h", - "äng" - ], - [ - "▁phot", - "ograph" - ], - [ - "▁photo", - "graph" - ], - [ - "▁Dist", - "ribution" - ], - [ - "if", - "ts" - ], - [ - "ift", - "s" - ], - [ - "▁a", - "unque" - ], - [ - "com", - "b" - ], - [ - "co", - "mb" - ], - [ - "c", - "omb" - ], - [ - "AD", - "D" - ], - [ - "A", - "DD" - ], - [ - "▁public", - "ation" - ], - [ - "▁pub", - "lication" - ], - [ - "▁publi", - "cation" - ], - [ - "▁слу", - "ж" - ], - [ - "▁к", - "ня" - ], - [ - "▁ay", - "ant" - ], - [ - "▁re", - "store" - ], - [ - "▁r", - "estore" - ], - [ - "▁rest", - "ore" - ], - [ - "▁resto", - "re" - ], - [ - "▁bel", - "ief" - ], - [ - "▁v", - "ég" - ], - [ - "▁vé", - "g" - ], - [ - "▁ext", - "ensions" - ], - [ - "▁extension", - "s" - ], - [ - "▁extens", - "ions" - ], - [ - "▁", - "extensions" - ], - [ - "▁de", - "com" - ], - [ - "▁dec", - "om" - ], - [ - "вши", - "й" - ], - [ - "в", - "ший" - ], - [ - "W", - "T" - ], - [ - "▁par", - "ti" - ], - [ - "▁part", - "i" - ], - [ - "▁gi", - "oc" - ], - [ - "▁ми", - "ра" - ], - [ - "▁", - "мира" - ], - [ - "▁is", - "su" - ], - [ - "▁iss", - "u" - ], - [ - "pi", - "pe" - ], - [ - "pip", - "e" - ], - [ - "p", - "ipe" - ], - [ - "▁pro", - "ps" - ], - [ - "▁pr", - "ops" - ], - [ - "▁prop", - "s" - ], - [ - "▁", - "props" - ], - [ - "▁w", - "illing" - ], - [ - "▁will", - "ing" - ], - [ - "▁wil", - "ling" - ], - [ - "▁n", - "est" - ], - [ - "▁ne", - "st" - ], - [ - "▁", - "nest" - ], - [ - "as", - "o" - ], - [ - "a", - "so" - ], - [ - "po", - "t" - ], - [ - "p", - "ot" - ], - [ - "▁hand", - "les" - ], - [ - "▁handle", - "s" - ], - [ - "▁ф", - "о" - ], - [ - "▁", - "фо" - ], - [ - "▁m", - "oder" - ], - [ - "▁mod", - "er" - ], - [ - "▁mo", - "der" - ], - [ - "▁mode", - "r" - ], - [ - "▁eben", - "falls" - ], - [ - "▁fight", - "ing" - ], - [ - "um", - "bn" - ], - [ - "umb", - "n" - ], - [ - "▁trans", - "parent" - ], - [ - "▁K", - "rist" - ], - [ - "▁Kr", - "ist" - ], - [ - "▁home", - "s" - ], - [ - "▁hom", - "es" - ], - [ - "▁ho", - "mes" - ], - [ - "▁voy", - "age" - ], - [ - "Fa", - "iled" - ], - [ - "Fail", - "ed" - ], - [ - "▁B", - "ird" - ], - [ - "▁Bi", - "rd" - ], - [ - "▁Bir", - "d" - ], - [ - "▁He", - "art" - ], - [ - "Count", - "er" - ], - [ - "Co", - "unter" - ], - [ - "C", - "ounter" - ], - [ - "▁Scott", - "ish" - ], - [ - "át", - "ica" - ], - [ - "▁ar", - "beit" - ], - [ - "▁", - "arbeit" - ], - [ - "^{", - "-\\" - ], - [ - "^{-", - "\\" - ], - [ - "▁S", - "or" - ], - [ - "▁So", - "r" - ], - [ - "▁eng", - "aged" - ], - [ - "▁engag", - "ed" - ], - [ - "▁a", - "side" - ], - [ - "▁as", - "ide" - ], - [ - "▁asi", - "de" - ], - [ - "▁F", - "ou" - ], - [ - "▁Fo", - "u" - ], - [ - "▁w", - "iel" - ], - [ - "▁wie", - "l" - ], - [ - "▁re", - "const" - ], - [ - "▁recon", - "st" - ], - [ - "ou", - "sin" - ], - [ - "ous", - "in" - ], - [ - "▁host", - "ed" - ], - [ - "▁ho", - "sted" - ], - [ - "▁hos", - "ted" - ], - [ - "▁c", - "lasse" - ], - [ - "▁class", - "e" - ], - [ - "▁cl", - "asse" - ], - [ - "▁clas", - "se" - ], - [ - "▁con", - "test" - ], - [ - "▁cont", - "est" - ], - [ - "▁conte", - "st" - ], - [ - "..", - ".\"" - ], - [ - "...", - "\"" - ], - [ - "мо", - "м" - ], - [ - "м", - "ом" - ], - [ - "▁be", - "an" - ], - [ - "▁", - "bean" - ], - [ - "ge", - "m" - ], - [ - "g", - "em" - ], - [ - "▁consult", - "ato" - ], - [ - "▁b", - "io" - ], - [ - "▁bi", - "o" - ], - [ - "▁", - "bio" - ], - [ - "▁subject", - "s" - ], - [ - "bo", - "Box" - ], - [ - "▁Sch", - "rift" - ], - [ - "▁d", - "inner" - ], - [ - "▁din", - "ner" - ], - [ - "ă", - "r" - ], - [ - "▁r", - "ówn" - ], - [ - "▁%", - "%" - ], - [ - "▁", - "%%" - ], - [ - "ba", - "ge" - ], - [ - "bag", - "e" - ], - [ - "b", - "age" - ], - [ - "▁ver", - "öff" - ], - [ - "▁det", - "ected" - ], - [ - "▁detect", - "ed" - ], - [ - "ie", - "nn" - ], - [ - "ien", - "n" - ], - [ - "i", - "enn" - ], - [ - "ro", - "se" - ], - [ - "ros", - "e" - ], - [ - "r", - "ose" - ], - [ - "▁T", - "on" - ], - [ - "▁To", - "n" - ], - [ - "Comp", - "lete" - ], - [ - "Comple", - "te" - ], - [ - "▁pro", - "to" - ], - [ - "▁pr", - "oto" - ], - [ - "▁prot", - "o" - ], - [ - "▁", - "proto" - ], - [ - "ich", - "ts" - ], - [ - "icht", - "s" - ], - [ - "i", - "chts" - ], - [ - "ST", - "AT" - ], - [ - "Check", - "ed" - ], - [ - "▁in", - "ten" - ], - [ - "▁i", - "nten" - ], - [ - "▁int", - "en" - ], - [ - "▁inte", - "n" - ], - [ - "▁s", - "mile" - ], - [ - "▁sm", - "ile" - ], - [ - "▁st", - "rip" - ], - [ - "▁str", - "ip" - ], - [ - "▁stri", - "p" - ], - [ - "▁", - "strip" - ], - [ - "ne", - "ut" - ], - [ - "')", - ";\r" - ], - [ - "');", - "\r" - ], - [ - "'", - ");\r" - ], - [ - "fo", - "ur" - ], - [ - "f", - "our" - ], - [ - "▁to", - "das" - ], - [ - "▁tod", - "as" - ], - [ - "▁toda", - "s" - ], - [ - "Control", - "s" - ], - [ - "▁thor", - "ough" - ], - [ - "ru", - "p" - ], - [ - "r", - "up" - ], - [ - "▁држа", - "ви" - ], - [ - "it", - "ă" - ], - [ - "Pro", - "tocol" - ], - [ - "К", - "а" - ], - [ - "▁expand", - "ed" - ], - [ - "ex", - "tra" - ], - [ - "ext", - "ra" - ], - [ - "op", - "ort" - ], - [ - "opo", - "rt" - ], - [ - "o", - "port" - ], - [ - "▁Ста", - "нов" - ], - [ - "le", - "ases" - ], - [ - "lease", - "s" - ], - [ - "▁n", - "otion" - ], - [ - "▁not", - "ion" - ], - [ - "▁no", - "tion" - ], - [ - "▁g", - "uest" - ], - [ - "▁gu", - "est" - ], - [ - "▁Is", - "lands" - ], - [ - "▁Island", - "s" - ], - [ - "ic", - "ked" - ], - [ - "ick", - "ed" - ], - [ - "▁D", - "ave" - ], - [ - "▁Dav", - "e" - ], - [ - "▁Da", - "ve" - ], - [ - "▁ref", - "lection" - ], - [ - "▁reflect", - "ion" - ], - [ - "li", - "v" - ], - [ - "l", - "iv" - ], - [ - "ál", - "ní" - ], - [ - "▁reve", - "aled" - ], - [ - "▁s", - "og" - ], - [ - "▁so", - "g" - ], - [ - "▁T", - "ax" - ], - [ - "▁Ta", - "x" - ], - [ - "▁period", - "o" - ], - [ - "▁peri", - "odo" - ], - [ - "▁Welt", - "krie" - ], - [ - "catal", - "ina" - ], - [ - "qu", - "é" - ], - [ - "q", - "ué" - ], - [ - "▁F", - "ather" - ], - [ - "▁Fa", - "ther" - ], - [ - "▁B", - "ir" - ], - [ - "▁Bi", - "r" - ], - [ - "ex", - "pect" - ], - [ - "exp", - "ect" - ], - [ - "▁re", - "gression" - ], - [ - "▁reg", - "ression" - ], - [ - "in", - "é" - ], - [ - "i", - "né" - ], - [ - "▁d", - "abei" - ], - [ - "▁da", - "bei" - ], - [ - "pe", - "rm" - ], - [ - "per", - "m" - ], - [ - "p", - "erm" - ], - [ - "ме", - "не" - ], - [ - "мен", - "е" - ], - [ - "м", - "ене" - ], - [ - "▁A", - "bd" - ], - [ - "▁Ab", - "d" - ], - [ - "▁C", - "F" - ], - [ - "▁", - "CF" - ], - [ - "ar", - "ks" - ], - [ - "ark", - "s" - ], - [ - "resol", - "ve" - ], - [ - "wed", - "ge" - ], - [ - "w", - "edge" - ], - [ - "▁initial", - "ization" - ], - [ - "▁Vé", - "ase" - ], - [ - "▁при", - "ня" - ], - [ - "st", - "mt" - ], - [ - "▁in", - "come" - ], - [ - "▁inc", - "ome" - ], - [ - "M", - "Y" - ], - [ - "▁od", - "kazy" - ], - [ - "▁Sie", - "he" - ], - [ - "▁bod", - "ies" - ], - [ - "▁s", - "oc" - ], - [ - "▁so", - "c" - ], - [ - "R", - "andom" - ], - [ - "▁s", - "enza" - ], - [ - "▁sen", - "za" - ], - [ - "ab", - "lo" - ], - [ - "abl", - "o" - ], - [ - "a", - "blo" - ], - [ - "▁reg", - "arded" - ], - [ - "▁regard", - "ed" - ], - [ - "on", - "Create" - ], - [ - "▁Mag", - "azine" - ], - [ - "▁R", - "af" - ], - [ - "▁Ra", - "f" - ], - [ - "▁Buen", - "os" - ], - [ - "и", - "л" - ], - [ - "))", - ");" - ], - [ - ")))", - ";" - ], - [ - ")", - "));" - ], - [ - "ca", - "pt" - ], - [ - "cap", - "t" - ], - [ - "c", - "apt" - ], - [ - "re", - "direct" - ], - [ - "red", - "irect" - ], - [ - "▁pe", - "tit" - ], - [ - "▁pet", - "it" - ], - [ - "▁f", - "arm" - ], - [ - "▁far", - "m" - ], - [ - "▁fa", - "rm" - ], - [ - "▁r", - "ôle" - ], - [ - "▁стать", - "и" - ], - [ - "  ", - "  " - ], - [ - "sub", - "figure" - ], - [ - "èce", - "s" - ], - [ - "è", - "ces" - ], - [ - "zi", - "el" - ], - [ - "zie", - "l" - ], - [ - "z", - "iel" - ], - [ - "▁о", - "кон" - ], - [ - "▁ок", - "он" - ], - [ - "E", - "E" - ], - [ - "me", - "e" - ], - [ - "m", - "ee" - ], - [ - "▁p", - "erten" - ], - [ - "▁per", - "ten" - ], - [ - "▁pert", - "en" - ], - [ - "▁représ", - "ent" - ], - [ - "▁L", - "A" - ], - [ - "▁", - "LA" - ], - [ - "?", - "'" - ], - [ - "▁т", - "ру" - ], - [ - "▁r", - "ational" - ], - [ - "▁rat", - "ional" - ], - [ - "▁ratio", - "nal" - ], - [ - "os", - "of" - ], - [ - "oso", - "f" - ], - [ - "▁k", - "ne" - ], - [ - "▁kn", - "e" - ], - [ - "▁art", - "ists" - ], - [ - "▁artist", - "s" - ], - [ - "Fl", - "ow" - ], - [ - "F", - "low" - ], - [ - "▁А", - "ль" - ], - [ - "▁Ал", - "ь" - ], - [ - "iz", - "ard" - ], - [ - "iza", - "rd" - ], - [ - "izar", - "d" - ], - [ - "▁num", - "ero" - ], - [ - "▁numer", - "o" - ], - [ - "act", - "ic" - ], - [ - "a", - "ctic" - ], - [ - "▁de", - "struct" - ], - [ - "▁dest", - "ruct" - ], - [ - "▁destru", - "ct" - ], - [ - "▁П", - "ра" - ], - [ - "ons", - "ieur" - ], - [ - "q", - "t" - ], - [ - "ab", - "estanden" - ], - [ - "no", - "ść" - ], - [ - "Con", - "nect" - ], - [ - "Conne", - "ct" - ], - [ - "▁o", - "racle" - ], - [ - "▁or", - "acle" - ], - [ - "▁ora", - "cle" - ], - [ - "▁", - "oracle" - ], - [ - "▁Stock", - "holm" - ], - [ - "size", - "of" - ], - [ - "▁gem", - "äß" - ], - [ - "AC", - "T" - ], - [ - "A", - "CT" - ], - [ - "▁ex", - "pert" - ], - [ - "▁exp", - "ert" - ], - [ - "▁exper", - "t" - ], - [ - "ut", - "ions" - ], - [ - "ution", - "s" - ], - [ - "uti", - "ons" - ], - [ - "▁h", - "acia" - ], - [ - "▁ha", - "cia" - ], - [ - "▁log", - "ger" - ], - [ - "▁", - "logger" - ], - [ - "▁f", - "ool" - ], - [ - "▁fo", - "ol" - ], - [ - "▁foo", - "l" - ], - [ - "ry", - "pto" - ], - [ - "rypt", - "o" - ], - [ - "æ", - "r" - ], - [ - "▁c", - "idade" - ], - [ - "▁ci", - "dade" - ], - [ - "▁состав", - "е" - ], - [ - "▁соста", - "ве" - ], - [ - "ok", - "er" - ], - [ - "oke", - "r" - ], - [ - "o", - "ker" - ], - [ - "▁Trans", - "fer" - ], - [ - "▁den", - "ied" - ], - [ - "Tr", - "ack" - ], - [ - "Tra", - "ck" - ], - [ - "T", - "rack" - ], - [ - "▁r", - "adi" - ], - [ - "▁ra", - "di" - ], - [ - "▁rad", - "i" - ], - [ - "ze", - "c" - ], - [ - "z", - "ec" - ], - [ - "▁Histor", - "ic" - ], - [ - "▁Einwo", - "hner" - ], - [ - "ко", - "ю" - ], - [ - "▁х", - "ра" - ], - [ - "▁", - "хра" - ], - [ - "▁C", - "ategory" - ], - [ - "▁", - "Category" - ], - [ - "▁Dis", - "ney" - ], - [ - "▁sw", - "ap" - ], - [ - "▁", - "swap" - ], - [ - "Be", - "gin" - ], - [ - "B", - "egin" - ], - [ - "▁m", - "ientras" - ], - [ - "▁d", - "ance" - ], - [ - "▁dan", - "ce" - ], - [ - "▁t", - "ête" - ], - [ - "▁d", - "roit" - ], - [ - "▁dr", - "oit" - ], - [ - "▁dro", - "it" - ], - [ - "er", - "ta" - ], - [ - "ert", - "a" - ], - [ - "▁bird", - "s" - ], - [ - "▁bir", - "ds" - ], - [ - "▁con", - "vin" - ], - [ - "▁conv", - "in" - ], - [ - "par", - "ator" - ], - [ - "para", - "tor" - ], - [ - "д", - "ра" - ], - [ - "▁E", - "S" - ], - [ - "▁", - "ES" - ], - [ - "▁Ress", - "ources" - ], - [ - "▁Ressource", - "s" - ], - [ - "EG", - "IN" - ], - [ - "ück", - "e" - ], - [ - "ü", - "cke" - ], - [ - "▁Cr", - "uz" - ], - [ - "▁Cru", - "z" - ], - [ - "ab", - "ling" - ], - [ - "abl", - "ing" - ], - [ - "a", - "bling" - ], - [ - "▁\"", - "@" - ], - [ - "▁me", - "tres" - ], - [ - "▁met", - "res" - ], - [ - "▁B", - "eg" - ], - [ - "▁Be", - "g" - ], - [ - "▁Gr", - "ünd" - ], - [ - "▁B", - "oh" - ], - [ - "▁Bo", - "h" - ], - [ - "▁m", - "ile" - ], - [ - "▁mil", - "e" - ], - [ - "▁mi", - "le" - ], - [ - "▁", - "mile" - ], - [ - "▁Techn", - "ology" - ], - [ - "\"", - "+" - ], - [ - "ac", - "co" - ], - [ - "acc", - "o" - ], - [ - "a", - "cco" - ], - [ - "▁s", - "s" - ], - [ - "▁", - "ss" - ], - [ - "▁F", - "ed" - ], - [ - "▁Fe", - "d" - ], - [ - "▁H", - "end" - ], - [ - "▁He", - "nd" - ], - [ - "▁Hen", - "d" - ], - [ - "us", - "ch" - ], - [ - "usc", - "h" - ], - [ - "u", - "sch" - ], - [ - "it", - "ä" - ], - [ - "fol", - "k" - ], - [ - "f", - "olk" - ], - [ - "▁abs", - "or" - ], - [ - "an", - "tal" - ], - [ - "ant", - "al" - ], - [ - "anta", - "l" - ], - [ - "od", - "ge" - ], - [ - "▁WH", - "EN" - ], - [ - "▁Extern", - "í" - ], - [ - "▁Reg", - "iment" - ], - [ - "▁evalu", - "ation" - ], - [ - "▁T", - "ai" - ], - [ - "▁Ta", - "i" - ], - [ - "▁voc", - "als" - ], - [ - "▁vocal", - "s" - ], - [ - "▁ex", - "perimental" - ], - [ - "▁experiment", - "al" - ], - [ - "em", - "bed" - ], - [ - "emb", - "ed" - ], - [ - "▁M", - "inn" - ], - [ - "▁Min", - "n" - ], - [ - "▁Mi", - "nn" - ], - [ - "▁в", - "ме" - ], - [ - "pr", - "ec" - ], - [ - "pre", - "c" - ], - [ - "p", - "rec" - ], - [ - "ever", - "y" - ], - [ - "ev", - "ery" - ], - [ - "e", - "very" - ], - [ - "▁ho", - "of" - ], - [ - "▁Fern", - "ando" - ], - [ - "▁Bibli", - "ographie" - ], - [ - "▁n", - "ag" - ], - [ - "▁na", - "g" - ], - [ - "amerikan", - "ischer" - ], - [ - "▁m", - "arks" - ], - [ - "▁mar", - "ks" - ], - [ - "▁mark", - "s" - ], - [ - "▁", - "marks" - ], - [ - "▁U", - "TC" - ], - [ - "▁", - "UTC" - ], - [ - "▁un", - "certain" - ], - [ - "ди", - "я" - ], - [ - "ol", - "ia" - ], - [ - "oli", - "a" - ], - [ - "o", - "lia" - ], - [ - "▁c", - "up" - ], - [ - "▁cu", - "p" - ], - [ - "▁", - "cup" - ], - [ - "▁f", - "ille" - ], - [ - "▁fil", - "le" - ], - [ - "▁fill", - "e" - ], - [ - "▁fi", - "lle" - ], - [ - "▁d", - "ok" - ], - [ - "▁do", - "k" - ], - [ - "use", - "ppe" - ], - [ - "est", - "erd" - ], - [ - "ester", - "d" - ], - [ - "este", - "rd" - ], - [ - "e", - "sterd" - ], - [ - "▁B", - "rand" - ], - [ - "▁Br", - "and" - ], - [ - "▁Bra", - "nd" - ], - [ - "▁Bran", - "d" - ], - [ - "▁Th", - "ird" - ], - [ - "P", - "P" - ], - [ - "no", - "des" - ], - [ - "node", - "s" - ], - [ - "n", - "odes" - ], - [ - "▁P", - "ad" - ], - [ - "▁Pa", - "d" - ], - [ - "▁", - "Pad" - ], - [ - "▁l", - "oved" - ], - [ - "▁lo", - "ved" - ], - [ - "▁love", - "d" - ], - [ - "▁lov", - "ed" - ], - [ - "sw", - "ing" - ], - [ - "s", - "wing" - ], - [ - "▁surpr", - "ised" - ], - [ - "▁surprise", - "d" - ], - [ - "ar", - "di" - ], - [ - "ard", - "i" - ], - [ - "▁G", - "R" - ], - [ - "▁", - "GR" - ], - [ - "]", - "\"" - ], - [ - "▁equ", - "ally" - ], - [ - "▁equal", - "ly" - ], - [ - "▁eq", - "ually" - ], - [ - "ih", - "e" - ], - [ - "i", - "he" - ], - [ - "ca", - "re" - ], - [ - "car", - "e" - ], - [ - "c", - "are" - ], - [ - "пи", - "сок" - ], - [ - "пис", - "ок" - ], - [ - "li", - "jk" - ], - [ - "lij", - "k" - ], - [ - "l", - "ijk" - ], - [ - "ri", - "nn" - ], - [ - "rin", - "n" - ], - [ - "r", - "inn" - ], - [ - "▁\\", - "[\\" - ], - [ - "▁\\[", - "\\" - ], - [ - "▁s", - "ons" - ], - [ - "▁so", - "ns" - ], - [ - "▁son", - "s" - ], - [ - "▁t", - "ät" - ], - [ - "ic", - "amente" - ], - [ - "ica", - "mente" - ], - [ - "▁l", - "isting" - ], - [ - "▁list", - "ing" - ], - [ - "iel", - "lement" - ], - [ - "ielle", - "ment" - ], - [ - "▁nyel", - "ven" - ], - [ - "▁d", - "s" - ], - [ - "▁", - "ds" - ], - [ - "▁agr", - "icult" - ], - [ - "▁H", - "ermann" - ], - [ - "▁Her", - "mann" - ], - [ - "▁Herm", - "ann" - ], - [ - "▁bes", - "ides" - ], - [ - "▁beside", - "s" - ], - [ - "pro", - "gress" - ], - [ - "prog", - "ress" - ], - [ - "▁pec", - "uliar" - ], - [ - "fo", - "cus" - ], - [ - "f", - "ocus" - ], - [ - "c", - "n" - ], - [ - "-", - "$" - ], - [ - "ствен", - "ный" - ], - [ - "ou", - "rg" - ], - [ - "our", - "g" - ], - [ - "o", - "urg" - ], - [ - "▁w", - "yn" - ], - [ - "▁wy", - "n" - ], - [ - "▁conduct", - "ed" - ], - [ - "▁condu", - "cted" - ], - [ - "▁Станов", - "ништво" - ], - [ - "connect", - "ed" - ], - [ - "conne", - "cted" - ], - [ - "conn", - "ected" - ], - [ - "▁b", - "ott" - ], - [ - "▁bo", - "tt" - ], - [ - "▁bot", - "t" - ], - [ - "▁с", - "мер" - ], - [ - "▁см", - "ер" - ], - [ - "▁P", - "oz" - ], - [ - "▁Po", - "z" - ], - [ - "un", - "ct" - ], - [ - "unc", - "t" - ], - [ - "con", - "da" - ], - [ - "cond", - "a" - ], - [ - "c", - "onda" - ], - [ - "▁савез", - "ној" - ], - [ - "▁ha", - "vet" - ], - [ - "▁have", - "t" - ], - [ - "▁hav", - "et" - ], - [ - "li", - "gt" - ], - [ - "lig", - "t" - ], - [ - "l", - "igt" - ], - [ - "or", - "ted" - ], - [ - "ort", - "ed" - ], - [ - "orte", - "d" - ], - [ - "▁ent", - "ering" - ], - [ - "▁enter", - "ing" - ], - [ - "mult", - "ip" - ], - [ - "multi", - "p" - ], - [ - "mul", - "tip" - ], - [ - "▁Tem", - "ple" - ], - [ - "▁Temp", - "le" - ], - [ - "▁P", - "lant" - ], - [ - "▁Pl", - "ant" - ], - [ - "▁Plan", - "t" - ], - [ - "▁Pla", - "nt" - ], - [ - "type", - "of" - ], - [ - "▁V", - "lad" - ], - [ - "▁qu", - "ed" - ], - [ - "▁que", - "d" - ], - [ - "▁q", - "ued" - ], - [ - "▁re", - "ste" - ], - [ - "▁r", - "este" - ], - [ - "▁res", - "te" - ], - [ - "▁rest", - "e" - ], - [ - "▁ма", - "й" - ], - [ - "▁", - "май" - ], - [ - "▁V", - "ery" - ], - [ - "▁Ver", - "y" - ], - [ - "▁Ve", - "ry" - ], - [ - "ambigu", - "ation" - ], - [ - "▁ch", - "alleng" - ], - [ - "▁res", - "pective" - ], - [ - "▁respect", - "ive" - ], - [ - "▁т", - "ор" - ], - [ - "▁то", - "р" - ], - [ - "▁", - "тор" - ], - [ - "C", - "trl" - ], - [ - "▁abs", - "ence" - ], - [ - "ar", - "u" - ], - [ - "a", - "ru" - ], - [ - "во", - "е" - ], - [ - "▁för", - "st" - ], - [ - "▁s", - "q" - ], - [ - "▁", - "sq" - ], - [ - "▁Em", - "peror" - ], - [ - "▁I", - "gn" - ], - [ - "▁Ig", - "n" - ], - [ - "▁", - "Ign" - ], - [ - "▁т", - "ова" - ], - [ - "▁то", - "ва" - ], - [ - "▁", - "това" - ], - [ - ":", - "`" - ], - [ - "ad", - "oop" - ], - [ - "ado", - "op" - ], - [ - "▁Mad", - "ame" - ], - [ - "▁gru", - "ppo" - ], - [ - "▁grup", - "po" - ], - [ - "st", - "ud" - ], - [ - "▁extern", - "as" - ], - [ - "▁Александ", - "р" - ], - [ - "▁d", - "ign" - ], - [ - "▁di", - "gn" - ], - [ - "▁dig", - "n" - ], - [ - "▁жи", - "ве" - ], - [ - "Am", - "ount" - ], - [ - "A", - "mount" - ], - [ - "▁correl", - "ate" - ], - [ - "▁corre", - "late" - ], - [ - "▁F", - "ant" - ], - [ - "▁Fa", - "nt" - ], - [ - "▁r", - "ails" - ], - [ - "▁ra", - "ils" - ], - [ - "▁rail", - "s" - ], - [ - "▁", - "rails" - ], - [ - "f", - "p" - ], - [ - "министра", - "тив" - ], - [ - "▁b", - "ought" - ], - [ - "▁fil", - "ters" - ], - [ - "▁filter", - "s" - ], - [ - "▁", - "filters" - ], - [ - "▁anc", - "ora" - ], - [ - "▁part", - "ner" - ], - [ - "▁qu", - "and" - ], - [ - "▁quan", - "d" - ], - [ - "sym", - "bol" - ], - [ - "s", - "ymbol" - ], - [ - "ul", - "ating" - ], - [ - "ula", - "ting" - ], - [ - "▁z", - "d" - ], - [ - "▁", - "zd" - ], - [ - "aw", - "n" - ], - [ - "a", - "wn" - ], - [ - "▁G", - "rant" - ], - [ - "▁Gr", - "ant" - ], - [ - "▁Gra", - "nt" - ], - [ - "▁Gran", - "t" - ], - [ - "bec", - "ause" - ], - [ - "b", - "ecause" - ], - [ - "ra", - "ble" - ], - [ - "rab", - "le" - ], - [ - "r", - "able" - ], - [ - "\\", - "}" - ], - [ - "íst", - "icas" - ], - [ - "ística", - "s" - ], - [ - "▁у", - "че" - ], - [ - "▁péri", - "ode" - ], - [ - "▁s", - "ke" - ], - [ - "▁sk", - "e" - ], - [ - "▁", - "ske" - ], - [ - "▁Any", - "way" - ], - [ - "▁index", - "es" - ], - [ - "▁inde", - "xes" - ], - [ - "▁direct", - "ions" - ], - [ - "▁dire", - "ctions" - ], - [ - "▁direction", - "s" - ], - [ - "▁R", - "AM" - ], - [ - "▁RA", - "M" - ], - [ - "▁", - "RAM" - ], - [ - "ch", - "rome" - ], - [ - "chr", - "ome" - ], - [ - "chrom", - "e" - ], - [ - "▁a", - "post" - ], - [ - "▁ap", - "ost" - ], - [ - "▁apo", - "st" - ], - [ - "▁war", - "nings" - ], - [ - "▁warning", - "s" - ], - [ - "▁warn", - "ings" - ], - [ - "▁Air", - "port" - ], - [ - "V", - "I" - ], - [ - "ab", - "ile" - ], - [ - "abil", - "e" - ], - [ - "abi", - "le" - ], - [ - "▁l", - "ord" - ], - [ - "▁lo", - "rd" - ], - [ - "pro", - "vider" - ], - [ - "prov", - "ider" - ], - [ - "▁J", - "i" - ], - [ - "ost", - "ream" - ], - [ - "o", - "stream" - ], - [ - "▁geme", - "ente" - ], - [ - "table", - "View" - ], - [ - "Ex", - "tra" - ], - [ - "Ext", - "ra" - ], - [ - "c", - "ursor" - ], - [ - "eg", - "round" - ], - [ - "egr", - "ound" - ], - [ - "e", - "ground" - ], - [ - "▁M", - "oz" - ], - [ - "▁Mo", - "z" - ], - [ - "▁r", - "ib" - ], - [ - "▁ri", - "b" - ], - [ - "▁", - "rib" - ], - [ - "▁m", - "orph" - ], - [ - "▁mor", - "ph" - ], - [ - "lo", - "ads" - ], - [ - "load", - "s" - ], - [ - "el", - "sk" - ], - [ - "els", - "k" - ], - [ - "▁M", - "AX" - ], - [ - "▁MA", - "X" - ], - [ - "▁", - "MAX" - ], - [ - "▁Santi", - "ago" - ], - [ - "▁H", - "im" - ], - [ - "▁Hi", - "m" - ], - [ - "code", - "s" - ], - [ - "co", - "des" - ], - [ - "cod", - "es" - ], - [ - "c", - "odes" - ], - [ - "▁l", - "anz" - ], - [ - "▁lan", - "z" - ], - [ - "▁count", - "s" - ], - [ - "▁coun", - "ts" - ], - [ - "rinn", - "ingsområ" - ], - [ - "щ", - "ё" - ], - [ - "▁sp", - "é" - ], - [ - "▁pier", - "ws" - ], - [ - "▁pierw", - "s" - ], - [ - "▁S", - "ver" - ], - [ - "▁Sv", - "er" - ], - [ - "▁a", - "cknow" - ], - [ - "▁ac", - "know" - ], - [ - "Bo", - "olean" - ], - [ - "▁фами", - "ли" - ], - [ - "▁Sen", - "ate" - ], - [ - "шо", - "в" - ], - [ - "ш", - "ов" - ], - [ - "ag", - "ers" - ], - [ - "age", - "rs" - ], - [ - "ager", - "s" - ], - [ - "a", - "gers" - ], - [ - "▁Nue", - "va" - ], - [ - "bi", - "l" - ], - [ - "b", - "il" - ], - [ - "ki", - "em" - ], - [ - "kie", - "m" - ], - [ - "k", - "iem" - ], - [ - "▁M", - "ey" - ], - [ - "▁Me", - "y" - ], - [ - "wi", - "j" - ], - [ - "w", - "ij" - ], - [ - "▁G", - "mbH" - ], - [ - "valid", - "ation" - ], - [ - "▁en", - "suite" - ], - [ - "in", - "king" - ], - [ - "ink", - "ing" - ], - [ - "▁c", - "ampion" - ], - [ - "▁camp", - "ion" - ], - [ - "▁finan", - "cial" - ], - [ - "▁financi", - "al" - ], - [ - "iz", - "on" - ], - [ - "izo", - "n" - ], - [ - "i", - "zon" - ], - [ - "He", - "aders" - ], - [ - "Head", - "ers" - ], - [ - "Header", - "s" - ], - [ - "▁deprec", - "ated" - ], - [ - "▁fon", - "ction" - ], - [ - "RE", - "G" - ], - [ - "R", - "EG" - ], - [ - "▁vol", - "umes" - ], - [ - "▁volume", - "s" - ], - [ - "▁C", - "hi" - ], - [ - "▁Ch", - "i" - ], - [ - "▁encounter", - "ed" - ], - [ - "la", - "k" - ], - [ - "l", - "ak" - ], - [ - "ра", - "я" - ], - [ - "▁contin", - "ues" - ], - [ - "▁continu", - "es" - ], - [ - "▁continue", - "s" - ], - [ - "▁~", - "[" - ], - [ - "uer", - "te" - ], - [ - "u", - "erte" - ], - [ - "▁\\", - ";" - ], - [ - "▁", - "\\;" - ], - [ - "▁D", - "ok" - ], - [ - "▁Do", - "k" - ], - [ - "▁we", - "ights" - ], - [ - "▁weight", - "s" - ], - [ - "▁r", - "h" - ], - [ - "▁", - "rh" - ], - [ - "▁Na", - "pole" - ], - [ - "▁Nap", - "ole" - ], - [ - "▁natur", - "ally" - ], - [ - "▁natural", - "ly" - ], - [ - "sk", - "u" - ], - [ - "s", - "ku" - ], - [ - "pa", - "s" - ], - [ - "p", - "as" - ], - [ - "▁g", - "egründ" - ], - [ - "et", - "r" - ], - [ - "e", - "tr" - ], - [ - "▁K", - "u" - ], - [ - "ic", - "ted" - ], - [ - "ict", - "ed" - ], - [ - "i", - "cted" - ], - [ - "▁fab", - "ric" - ], - [ - "▁A", - "SC" - ], - [ - "▁AS", - "C" - ], - [ - "▁", - "ASC" - ], - [ - "▁Entertain", - "ment" - ], - [ - "▁en", - "erg" - ], - [ - "▁ener", - "g" - ], - [ - "кла", - "д" - ], - [ - "к", - "лад" - ], - [ - "om", - "on" - ], - [ - "omo", - "n" - ], - [ - "o", - "mon" - ], - [ - "th", - "eme" - ], - [ - "the", - "me" - ], - [ - "▁ха", - "рак" - ], - [ - "▁d", - "raft" - ], - [ - "▁dr", - "aft" - ], - [ - "▁dra", - "ft" - ], - [ - "▁ch", - "annels" - ], - [ - "▁channel", - "s" - ], - [ - "▁de", - "sert" - ], - [ - "▁des", - "ert" - ], - [ - "▁deser", - "t" - ], - [ - "▁tra", - "vés" - ], - [ - "▁trav", - "és" - ], - [ - "▁L", - "ock" - ], - [ - "▁Lo", - "ck" - ], - [ - "▁Loc", - "k" - ], - [ - "▁", - "Lock" - ], - [ - "▁s", - "iendo" - ], - [ - "▁si", - "endo" - ], - [ - "фе", - "к" - ], - [ - "ф", - "ек" - ], - [ - "m", - "ême" - ], - [ - "▁pa", - "cket" - ], - [ - "▁pack", - "et" - ], - [ - "▁pac", - "ket" - ], - [ - "▁Mount", - "ain" - ], - [ - "▁F", - "ahr" - ], - [ - "▁Fa", - "hr" - ], - [ - "bra", - "io" - ], - [ - "пе", - "ре" - ], - [ - "пер", - "е" - ], - [ - "п", - "ере" - ], - [ - "▁gen", - "annt" - ], - [ - "▁dep", - "loyment" - ], - [ - "▁deploy", - "ment" - ], - [ - "Pa", - "l" - ], - [ - "P", - "al" - ], - [ - "но", - "г" - ], - [ - "ст", - "ру" - ], - [ - "стр", - "у" - ], - [ - "Pr", - "im" - ], - [ - "P", - "rim" - ], - [ - "f", - "ür" - ], - [ - "▁danger", - "ous" - ], - [ - "▁sz", - "ám" - ], - [ - "re", - "ck" - ], - [ - "rec", - "k" - ], - [ - "▁pop", - "up" - ], - [ - "ic", - "ky" - ], - [ - "ick", - "y" - ], - [ - "in", - "ar" - ], - [ - "ina", - "r" - ], - [ - "i", - "nar" - ], - [ - "co", - "wo" - ], - [ - "cow", - "o" - ], - [ - "c", - "owo" - ], - [ - "нци", - "кло" - ], - [ - "ít", - "ás" - ], - [ - "▁pl", - "ugins" - ], - [ - "▁plugin", - "s" - ], - [ - "▁plug", - "ins" - ], - [ - "▁", - "plugins" - ], - [ - "▁dr", - "iven" - ], - [ - "▁drive", - "n" - ], - [ - "▁dri", - "ven" - ], - [ - "▁driv", - "en" - ], - [ - "ле", - "в" - ], - [ - "л", - "ев" - ], - [ - "▁\"", - "(" - ], - [ - "tt", - "a" - ], - [ - "t", - "ta" - ], - [ - "▁", - "Ú" - ], - [ - "▁e", - "b" - ], - [ - "▁", - "eb" - ], - [ - "▁'", - "';" - ], - [ - "▁''", - ";" - ], - [ - "▁kn", - "ock" - ], - [ - "▁ос", - "нова" - ], - [ - "▁основ", - "а" - ], - [ - "▁m", - "aison" - ], - [ - "▁ma", - "ison" - ], - [ - "▁mais", - "on" - ], - [ - "▁mai", - "son" - ], - [ - "г", - "ля" - ], - [ - "▁Hon", - "or" - ], - [ - "▁Ho", - "nor" - ], - [ - "ta", - "il" - ], - [ - "t", - "ail" - ], - [ - "ri", - "tz" - ], - [ - "rit", - "z" - ], - [ - "r", - "itz" - ], - [ - "▁gu", - "ys" - ], - [ - "▁combin", - "ations" - ], - [ - "▁combination", - "s" - ], - [ - "ond", - "ere" - ], - [ - "onder", - "e" - ], - [ - "onde", - "re" - ], - [ - "▁A", - "ld" - ], - [ - "▁Al", - "d" - ], - [ - "▁f", - "iddle" - ], - [ - "▁", - "fiddle" - ], - [ - "да", - "в" - ], - [ - "ur", - "d" - ], - [ - "u", - "rd" - ], - [ - "▁pro", - "jection" - ], - [ - "▁project", - "ion" - ], - [ - "▁Tamb", - "ién" - ], - [ - "ve", - "rb" - ], - [ - "ver", - "b" - ], - [ - "v", - "erb" - ], - [ - "▁ter", - "re" - ], - [ - "▁", - "terre" - ], - [ - "ru", - "gu" - ], - [ - "rug", - "u" - ], - [ - "▁se", - "ptember" - ], - [ - "▁sept", - "ember" - ], - [ - "▁<", - "!" - ], - [ - "co", - "st" - ], - [ - "cos", - "t" - ], - [ - "c", - "ost" - ], - [ - "▁n", - "ut" - ], - [ - "▁nu", - "t" - ], - [ - "▁", - "nut" - ], - [ - "{", - "%" - ], - [ - "▁ub", - "ic" - ], - [ - "am", - "arin" - ], - [ - "ama", - "rin" - ], - [ - "amar", - "in" - ], - [ - "ти", - "и" - ], - [ - "▁pat", - "ron" - ], - [ - "▁patr", - "on" - ], - [ - "▁am", - "ely" - ], - [ - "▁e", - "sto" - ], - [ - "▁est", - "o" - ], - [ - "▁es", - "to" - ], - [ - "▁", - "esto" - ], - [ - "▁li", - "stop" - ], - [ - "▁list", - "op" - ], - [ - "fa", - "l" - ], - [ - "f", - "al" - ], - [ - "▁P", - "rop" - ], - [ - "▁Pro", - "p" - ], - [ - "▁Pr", - "op" - ], - [ - "▁", - "Prop" - ], - [ - "▁O", - "nt" - ], - [ - "▁On", - "t" - ], - [ - "▁M", - "ade" - ], - [ - "▁Ma", - "de" - ], - [ - "▁Mad", - "e" - ], - [ - "TE", - "ST" - ], - [ - "▁N", - "em" - ], - [ - "▁Ne", - "m" - ], - [ - "▁N", - "ations" - ], - [ - "▁Nat", - "ions" - ], - [ - "▁Nation", - "s" - ], - [ - "▁в", - "у" - ], - [ - "▁", - "ву" - ], - [ - "in", - "cluding" - ], - [ - "includ", - "ing" - ], - [ - "▁spect", - "rum" - ], - [ - "▁L", - "an" - ], - [ - "▁La", - "n" - ], - [ - "▁E", - "ver" - ], - [ - "▁Ev", - "er" - ], - [ - "Pa", - "ul" - ], - [ - "t", - "m" - ], - [ - "App", - "end" - ], - [ - "Ap", - "pend" - ], - [ - "Rel", - "ative" - ], - [ - "dis", - "abled" - ], - [ - "disable", - "d" - ], - [ - "return", - "s" - ], - [ - "▁flow", - "ers" - ], - [ - "▁flo", - "wers" - ], - [ - "▁flower", - "s" - ], - [ - "ik", - "u" - ], - [ - "i", - "ku" - ], - [ - "▁|", - "\\" - ], - [ - "▁", - "|\\" - ], - [ - "▁Jord", - "an" - ], - [ - "▁Sm", - "all" - ], - [ - "▁c", - "ic" - ], - [ - "▁ci", - "c" - ], - [ - "▁sex", - "ual" - ], - [ - "au", - "tre" - ], - [ - "aut", - "re" - ], - [ - "ва", - "л" - ], - [ - "в", - "ал" - ], - [ - "▁r", - "ip" - ], - [ - "▁ri", - "p" - ], - [ - "▁", - "rip" - ], - [ - "ou", - "st" - ], - [ - "ous", - "t" - ], - [ - "o", - "ust" - ], - [ - "▁Philadel", - "phia" - ], - [ - "▁u", - "k" - ], - [ - "▁", - "uk" - ], - [ - "▁M", - "ongo" - ], - [ - "▁Mon", - "go" - ], - [ - "▁Mong", - "o" - ], - [ - "xml", - "ns" - ], - [ - "▁sh", - "op" - ], - [ - "▁sho", - "p" - ], - [ - "▁", - "shop" - ], - [ - "▁debug", - "ger" - ], - [ - "▁z", - "aj" - ], - [ - "▁za", - "j" - ], - [ - "▁B", - "illy" - ], - [ - "▁Bill", - "y" - ], - [ - "▁Bil", - "ly" - ], - [ - "▁n", - "iem" - ], - [ - "▁nie", - "m" - ], - [ - "▁ni", - "em" - ], - [ - "ol", - "is" - ], - [ - "oli", - "s" - ], - [ - "o", - "lis" - ], - [ - "▁ро", - "ссий" - ], - [ - "ag", - "ner" - ], - [ - "agn", - "er" - ], - [ - "agne", - "r" - ], - [ - "▁m", - "aven" - ], - [ - "▁ma", - "ven" - ], - [ - "▁", - "maven" - ], - [ - "▁Gu", - "stav" - ], - [ - "▁Gust", - "av" - ], - [ - "A", - "us" - ], - [ - "comp", - "are" - ], - [ - "▁j", - "eu" - ], - [ - "▁je", - "u" - ], - [ - "ud", - "er" - ], - [ - "ude", - "r" - ], - [ - "u", - "der" - ], - [ - "ish", - "ment" - ], - [ - "▁ди", - "визи" - ], - [ - "▁Fin", - "land" - ], - [ - "ну", - "т" - ], - [ - "н", - "ут" - ], - [ - "z", - "és" - ], - [ - "▁Liga", - "ções" - ], - [ - "▁Lig", - "ações" - ], - [ - "▁qu", - "ello" - ], - [ - "▁quel", - "lo" - ], - [ - "an", - "notation" - ], - [ - "annot", - "ation" - ], - [ - "▁th", - "rew" - ], - [ - "▁thr", - "ew" - ], - [ - "▁thre", - "w" - ], - [ - "▁Pro", - "of" - ], - [ - "▁", - "Proof" - ], - [ - "▁A", - "rea" - ], - [ - "▁Ar", - "ea" - ], - [ - "▁Are", - "a" - ], - [ - "▁", - "Area" - ], - [ - "as", - "hi" - ], - [ - "ash", - "i" - ], - [ - "▁F", - "O" - ], - [ - "▁", - "FO" - ], - [ - "ja", - "min" - ], - [ - "j", - "amin" - ], - [ - "ден", - "т" - ], - [ - "д", - "ент" - ], - [ - "▁un", - "us" - ], - [ - "fri", - "end" - ], - [ - ".\"", - ");" - ], - [ - ".\")", - ";" - ], - [ - ".", - "\");" - ], - [ - "▁tra", - "kten" - ], - [ - "document", - "class" - ], - [ - "an", - "ka" - ], - [ - "ank", - "a" - ], - [ - "▁ar", - "rive" - ], - [ - "▁arr", - "ive" - ], - [ - "▁arriv", - "e" - ], - [ - "▁d", - "onne" - ], - [ - "▁don", - "ne" - ], - [ - "▁donn", - "e" - ], - [ - "ol", - "y" - ], - [ - "o", - "ly" - ], - [ - "▁R", - "ein" - ], - [ - "▁Re", - "in" - ], - [ - "▁face", - "book" - ], - [ - "▁fac", - "ebook" - ], - [ - "▁", - "facebook" - ], - [ - "ic", - "ina" - ], - [ - "ici", - "na" - ], - [ - "sl", - "ice" - ], - [ - "s", - "lice" - ], - [ - "▁n", - "agy" - ], - [ - "▁na", - "gy" - ], - [ - "▁nag", - "y" - ], - [ - "▁he", - "bben" - ], - [ - "▁I", - "C" - ], - [ - "▁", - "IC" - ], - [ - "▁B", - "ag" - ], - [ - "▁Ba", - "g" - ], - [ - "▁", - "Bag" - ], - [ - "▁circ", - "ul" - ], - [ - "▁cir", - "cul" - ], - [ - "ác", - "t" - ], - [ - "á", - "ct" - ], - [ - "mit", - "t" - ], - [ - "mi", - "tt" - ], - [ - "m", - "itt" - ], - [ - "▁g", - "rey" - ], - [ - "▁gr", - "ey" - ], - [ - "▁gre", - "y" - ], - [ - "▁c", - "av" - ], - [ - "▁ca", - "v" - ], - [ - "▁осо", - "би" - ], - [ - "▁sym", - "metric" - ], - [ - "▁symmet", - "ric" - ], - [ - "▁S", - "ic" - ], - [ - "▁Si", - "c" - ], - [ - "▁med", - "ium" - ], - [ - "▁medi", - "um" - ], - [ - "▁", - "medium" - ], - [ - "▁U", - "TF" - ], - [ - "▁", - "UTF" - ], - [ - "▁D", - "opo" - ], - [ - "▁Do", - "po" - ], - [ - "í", - "ch" - ], - [ - "bar", - "e" - ], - [ - "ba", - "re" - ], - [ - "b", - "are" - ], - [ - "dz", - "ie" - ], - [ - "d", - "zie" - ], - [ - "▁he", - "aven" - ], - [ - "▁heav", - "en" - ], - [ - "▁cam", - "pe" - ], - [ - "▁camp", - "e" - ], - [ - "ester", - "day" - ], - [ - "esterd", - "ay" - ], - [ - "▁W", - "issenschaft" - ], - [ - "по", - "ль" - ], - [ - "пол", - "ь" - ], - [ - "di", - "d" - ], - [ - "d", - "id" - ], - [ - "al", - "er" - ], - [ - "ale", - "r" - ], - [ - "a", - "ler" - ], - [ - "▁citiz", - "ens" - ], - [ - "▁Marg", - "aret" - ], - [ - "▁s", - "ought" - ], - [ - "ch", - "arts" - ], - [ - "char", - "ts" - ], - [ - "chart", - "s" - ], - [ - "CL", - "C" - ], - [ - "C", - "LC" - ], - [ - "ol", - "ly" - ], - [ - "oll", - "y" - ], - [ - "ys", - "z" - ], - [ - "y", - "sz" - ], - [ - "wa", - "ld" - ], - [ - "wal", - "d" - ], - [ - "w", - "ald" - ], - [ - "▁f", - "en" - ], - [ - "▁fe", - "n" - ], - [ - "▁", - "fen" - ], - [ - "▁S", - "ix" - ], - [ - "▁Si", - "x" - ], - [ - "▁U", - "rs" - ], - [ - "▁Ur", - "s" - ], - [ - "▁ор", - "ган" - ], - [ - "▁T", - "rad" - ], - [ - "▁Tr", - "ad" - ], - [ - "▁Tra", - "d" - ], - [ - "cu", - "e" - ], - [ - "c", - "ue" - ], - [ - "sch", - "utz" - ], - [ - "▁prec", - "ise" - ], - [ - "▁precis", - "e" - ], - [ - "▁W", - "indow" - ], - [ - "▁Wind", - "ow" - ], - [ - "▁", - "Window" - ], - [ - "ти", - "е" - ], - [ - "ло", - "ві" - ], - [ - "лов", - "і" - ], - [ - "it", - "ori" - ], - [ - "ito", - "ri" - ], - [ - "itor", - "i" - ], - [ - "dis", - "ambiguation" - ], - [ - "▁х", - "и" - ], - [ - "▁", - "хи" - ], - [ - "▁N", - "atural" - ], - [ - "▁Natur", - "al" - ], - [ - "▁Nat", - "ural" - ], - [ - "da", - "n" - ], - [ - "d", - "an" - ], - [ - "▁con", - "crete" - ], - [ - "ци", - "ја" - ], - [ - "▁s", - "pel" - ], - [ - "▁sp", - "el" - ], - [ - "▁spe", - "l" - ], - [ - "▁Fa", - "iled" - ], - [ - "▁Fail", - "ed" - ], - [ - "▁", - "Failed" - ], - [ - "ści", - "e" - ], - [ - "śc", - "ie" - ], - [ - "ś", - "cie" - ], - [ - "▁b", - "uf" - ], - [ - "▁bu", - "f" - ], - [ - "▁", - "buf" - ], - [ - "uc", - "a" - ], - [ - "u", - "ca" - ], - [ - "ic", - "ional" - ], - [ - "ici", - "onal" - ], - [ - "icio", - "nal" - ], - [ - "icion", - "al" - ], - [ - "▁ott", - "obre" - ], - [ - "▁otto", - "bre" - ], - [ - "▁ф", - "і" - ], - [ - "▁", - "фі" - ], - [ - "▁submit", - "ted" - ], - [ - "▁subm", - "itted" - ], - [ - "la", - "ve" - ], - [ - "lav", - "e" - ], - [ - "l", - "ave" - ], - [ - "▁P", - "lot" - ], - [ - "▁Pl", - "ot" - ], - [ - "▁", - "Plot" - ], - [ - "▁col", - "leg" - ], - [ - "▁coll", - "eg" - ], - [ - "▁colle", - "g" - ], - [ - "ad", - "em" - ], - [ - "ade", - "m" - ], - [ - "a", - "dem" - ], - [ - "▁ch", - "aque" - ], - [ - "▁cha", - "que" - ], - [ - "▁neighbor", - "hood" - ], - [ - "▁calci", - "atore" - ], - [ - "Lo", - "op" - ], - [ - "L", - "oop" - ], - [ - "▁G", - "ast" - ], - [ - "▁Ga", - "st" - ], - [ - "▁Gas", - "t" - ], - [ - "▁ко", - "гда" - ], - [ - "▁indust", - "rial" - ], - [ - "▁industri", - "al" - ], - [ - "▁f", - "atal" - ], - [ - "▁fa", - "tal" - ], - [ - "▁fat", - "al" - ], - [ - "▁C", - "ert" - ], - [ - "▁Ce", - "rt" - ], - [ - "▁Cer", - "t" - ], - [ - "▁", - "Cert" - ], - [ - "la", - "tion" - ], - [ - "lat", - "ion" - ], - [ - "l", - "ation" - ], - [ - "▁О", - "дна" - ], - [ - "▁Од", - "на" - ], - [ - "▁jam", - "ais" - ], - [ - "▁acc", - "um" - ], - [ - "Id", - "entity" - ], - [ - "Ident", - "ity" - ], - [ - "▁Me", - "dal" - ], - [ - "▁Med", - "al" - ], - [ - "Met", - "adata" - ], - [ - "Meta", - "data" - ], - [ - "▁лю", - "дя" - ], - [ - "br", - "idge" - ], - [ - "brid", - "ge" - ], - [ - "b", - "ridge" - ], - [ - "Go", - "od" - ], - [ - "G", - "ood" - ], - [ - "▁что", - "бы" - ], - [ - "▁comp", - "oser" - ], - [ - "▁compos", - "er" - ], - [ - "▁compose", - "r" - ], - [ - "▁b", - "read" - ], - [ - "▁br", - "ead" - ], - [ - "▁bre", - "ad" - ], - [ - "▁clos", - "ure" - ], - [ - "▁", - "closure" - ], - [ - "▁large", - "ly" - ], - [ - "▁larg", - "ely" - ], - [ - "F", - "B" - ], - [ - "▁обла", - "сть" - ], - [ - "▁autom", - "atic" - ], - [ - "▁automat", - "ic" - ], - [ - "ar", - "ía" - ], - [ - "a", - "ría" - ], - [ - "▁sufficient", - "ly" - ], - [ - "▁ital", - "iana" - ], - [ - "▁ка", - "че" - ], - [ - "▁J", - "ó" - ], - [ - "hi", - "story" - ], - [ - "histor", - "y" - ], - [ - "h", - "istory" - ], - [ - "▁H", - "D" - ], - [ - "▁", - "HD" - ], - [ - "▁sigu", - "iente" - ], - [ - "ne", - "ll" - ], - [ - "nel", - "l" - ], - [ - "n", - "ell" - ], - [ - "▁G", - "ree" - ], - [ - "▁Gr", - "ee" - ], - [ - "▁Gre", - "e" - ], - [ - "▁T", - "i" - ], - [ - "▁trans", - "ferred" - ], - [ - "▁transfer", - "red" - ], - [ - "équ", - "ipe" - ], - [ - "é", - "quipe" - ], - [ - "▁Phili", - "ppe" - ], - [ - "▁Philipp", - "e" - ], - [ - "▁Philip", - "pe" - ], - [ - "▁encou", - "rag" - ], - [ - "▁V", - "ietnam" - ], - [ - "▁graph", - "s" - ], - [ - "▁symmet", - "ry" - ], - [ - "fr", - "ed" - ], - [ - "fre", - "d" - ], - [ - "f", - "red" - ], - [ - "we", - "ek" - ], - [ - "▁bron", - "ze" - ], - [ - "ry", - "s" - ], - [ - "r", - "ys" - ], - [ - "▁name", - "ly" - ], - [ - "▁nam", - "ely" - ], - [ - "on", - "ders" - ], - [ - "ond", - "ers" - ], - [ - "onder", - "s" - ], - [ - "onde", - "rs" - ], - [ - "lem", - "agne" - ], - [ - "X", - "Y" - ], - [ - "Con", - "vert" - ], - [ - "}]", - "(" - ], - [ - "}", - "](" - ], - [ - "Reg", - "ion" - ], - [ - "pe", - "cies" - ], - [ - "pec", - "ies" - ], - [ - "▁te", - "xture" - ], - [ - "▁text", - "ure" - ], - [ - "▁c", - "hr" - ], - [ - "▁ch", - "r" - ], - [ - "▁", - "chr" - ], - [ - "не", - "го" - ], - [ - "н", - "его" - ], - [ - "▁some", - "body" - ], - [ - "a", - "qu" - ], - [ - "er", - "as" - ], - [ - "era", - "s" - ], - [ - "e", - "ras" - ], - [ - "▁Н", - "ово" - ], - [ - "▁Но", - "во" - ], - [ - "▁Нов", - "о" - ], - [ - "▁d", - "ez" - ], - [ - "▁de", - "z" - ], - [ - "an", - "iu" - ], - [ - "ani", - "u" - ], - [ - "a", - "niu" - ], - [ - "ok", - "rat" - ], - [ - "▁co", - "vers" - ], - [ - "▁cover", - "s" - ], - [ - "▁cov", - "ers" - ], - [ - "▁sign", - "als" - ], - [ - "▁signal", - "s" - ], - [ - "ђ", - "е" - ], - [ - "▁H", - "eb" - ], - [ - "▁He", - "b" - ], - [ - "▁An", - "ti" - ], - [ - "▁Ant", - "i" - ], - [ - "IV", - "E" - ], - [ - "I", - "VE" - ], - [ - "▁re", - "ss" - ], - [ - "▁r", - "ess" - ], - [ - "▁res", - "s" - ], - [ - "▁", - "ress" - ], - [ - "LE", - "TE" - ], - [ - "yn", - "a" - ], - [ - "y", - "na" - ], - [ - "п", - "ла" - ], - [ - "жде", - "ния" - ], - [ - "ж", - "дения" - ], - [ - "▁ch", - "amp" - ], - [ - "▁cha", - "mp" - ], - [ - "▁cham", - "p" - ], - [ - "▁vill", - "ages" - ], - [ - "▁village", - "s" - ], - [ - "▁villa", - "ges" - ], - [ - "Z", - "one" - ], - [ - "▁i", - "Phone" - ], - [ - "▁sou", - "vent" - ], - [ - "сь", - "кі" - ], - [ - "ськ", - "і" - ], - [ - "▁feb", - "braio" - ], - [ - "ér", - "cito" - ], - [ - "▁X", - "I" - ], - [ - "ok", - "at" - ], - [ - "oka", - "t" - ], - [ - "▁mem", - "bres" - ], - [ - "▁memb", - "res" - ], - [ - "▁membre", - "s" - ], - [ - "ju", - "nit" - ], - [ - "j", - "unit" - ], - [ - "▁D", - "raw" - ], - [ - "▁Dr", - "aw" - ], - [ - "▁Dra", - "w" - ], - [ - "▁", - "Draw" - ], - [ - "▁п", - "рово" - ], - [ - "▁про", - "во" - ], - [ - "▁пров", - "о" - ], - [ - "▁пр", - "ово" - ], - [ - "aud", - "io" - ], - [ - "audi", - "o" - ], - [ - "a", - "udio" - ], - [ - "en", - "dl" - ], - [ - "end", - "l" - ], - [ - "▁N", - "ad" - ], - [ - "▁Na", - "d" - ], - [ - "▁magn", - "itude" - ], - [ - "Su", - "r" - ], - [ - "S", - "ur" - ], - [ - "ic", - "ing" - ], - [ - "ici", - "ng" - ], - [ - "i", - "cing" - ], - [ - "▁un", - "w" - ], - [ - "▁о", - "три" - ], - [ - "▁от", - "ри" - ], - [ - "▁B", - "ey" - ], - [ - "▁Be", - "y" - ], - [ - "▁V", - "ik" - ], - [ - "▁Vi", - "k" - ], - [ - "▁polít", - "ica" - ], - [ - "port", - "er" - ], - [ - "por", - "ter" - ], - [ - "porte", - "r" - ], - [ - "p", - "orter" - ], - [ - "▁Bar", - "bara" - ], - [ - "▁Barb", - "ara" - ], - [ - "ál", - "t" - ], - [ - "á", - "lt" - ], - [ - "bi", - "b" - ], - [ - "b", - "ib" - ], - [ - "▁accom", - "pan" - ], - [ - "▁accomp", - "an" - ], - [ - "V", - "P" - ], - [ - "▁en", - "coded" - ], - [ - "▁enc", - "oded" - ], - [ - "▁encode", - "d" - ], - [ - "▁", - "encoded" - ], - [ - "▁S", - "ometimes" - ], - [ - "▁Some", - "times" - ], - [ - "bi", - "rd" - ], - [ - "bir", - "d" - ], - [ - "b", - "ird" - ], - [ - "▁U", - "lt" - ], - [ - "▁Ul", - "t" - ], - [ - "▁t", - "un" - ], - [ - "▁tu", - "n" - ], - [ - "get", - "Text" - ], - [ - "▁ar", - "rival" - ], - [ - "▁arr", - "ival" - ], - [ - "▁arriv", - "al" - ], - [ - "script", - "style" - ], - [ - "{", - "`" - ], - [ - "▁pers", - "pective" - ], - [ - "LI", - "NE" - ], - [ - "LIN", - "E" - ], - [ - "L", - "INE" - ], - [ - "Form", - "atter" - ], - [ - "Format", - "ter" - ], - [ - "▁b", - "om" - ], - [ - "▁bo", - "m" - ], - [ - "в", - "ра" - ], - [ - "DE", - "BUG" - ], - [ - "Bound", - "s" - ], - [ - "B", - "ounds" - ], - [ - "▁T", - "itle" - ], - [ - "▁Tit", - "le" - ], - [ - "▁", - "Title" - ], - [ - "l", - "ó" - ], - [ - "Da", - "n" - ], - [ - "D", - "an" - ], - [ - "▁g", - "ene" - ], - [ - "▁ge", - "ne" - ], - [ - "▁gen", - "e" - ], - [ - "▁B", - "it" - ], - [ - "▁Bi", - "t" - ], - [ - "▁", - "Bit" - ], - [ - "▁reprodu", - "ce" - ], - [ - "▁graph", - "ics" - ], - [ - "▁", - "graphics" - ], - [ - "▁с", - "ем" - ], - [ - "▁се", - "м" - ], - [ - "р", - "ё" - ], - [ - "▁ре", - "ки" - ], - [ - "us", - "alem" - ], - [ - "usa", - "lem" - ], - [ - "ро", - "ж" - ], - [ - "▁D", - "ES" - ], - [ - "▁DE", - "S" - ], - [ - "▁So", - "ftware" - ], - [ - "ur", - "ance" - ], - [ - "u", - "rance" - ], - [ - "ithmet", - "ic" - ], - [ - "en", - "ess" - ], - [ - "ene", - "ss" - ], - [ - "enes", - "s" - ], - [ - "e", - "ness" - ], - [ - "ic", - "hi" - ], - [ - "ich", - "i" - ], - [ - "i", - "chi" - ], - [ - "Con", - "verter" - ], - [ - "Convert", - "er" - ], - [ - "▁g", - "ithub" - ], - [ - "▁", - "github" - ], - [ - "erd", - "ings" - ], - [ - "gl", - "ise" - ], - [ - "ác", - "h" - ], - [ - "á", - "ch" - ], - [ - "▁bu", - "ried" - ], - [ - "▁bur", - "ied" - ], - [ - "▁v", - "ision" - ], - [ - "▁vis", - "ion" - ], - [ - "▁", - "vision" - ], - [ - "M", - "iss" - ], - [ - "▁s", - "ees" - ], - [ - "▁se", - "es" - ], - [ - "▁see", - "s" - ], - [ - "▁person", - "nes" - ], - [ - "▁pers", - "onnes" - ], - [ - "▁personn", - "es" - ], - [ - "▁personne", - "s" - ], - [ - "▁In", - "tel" - ], - [ - "▁Int", - "el" - ], - [ - "el", - "ia" - ], - [ - "eli", - "a" - ], - [ - "e", - "lia" - ], - [ - "▁č", - "lán" - ], - [ - "▁c", - "hi" - ], - [ - "▁ch", - "i" - ], - [ - "▁", - "chi" - ], - [ - "▁k", - "las" - ], - [ - "▁kl", - "as" - ], - [ - "au", - "té" - ], - [ - "aut", - "é" - ], - [ - "▁st", - "ark" - ], - [ - "▁star", - "k" - ], - [ - "cz", - "e" - ], - [ - "c", - "ze" - ], - [ - "▁dr", - "ivers" - ], - [ - "▁driver", - "s" - ], - [ - "▁drive", - "rs" - ], - [ - "▁dri", - "vers" - ], - [ - "▁driv", - "ers" - ], - [ - "v", - "n" - ], - [ - "!", - "," - ], - [ - "▁го", - "ды" - ], - [ - "▁год", - "ы" - ], - [ - "H", - "i" - ], - [ - "▁expla", - "ins" - ], - [ - "▁expl", - "ains" - ], - [ - "▁explain", - "s" - ], - [ - "art", - "icles" - ], - [ - "article", - "s" - ], - [ - "▁z", - "ug" - ], - [ - "▁zu", - "g" - ], - [ - "▁", - "zug" - ], - [ - "Pro", - "m" - ], - [ - "Pr", - "om" - ], - [ - "P", - "rom" - ], - [ - ">", - "=" - ], - [ - "▁Be", - "at" - ], - [ - "▁S", - "ax" - ], - [ - "▁Sa", - "x" - ], - [ - "vert", - "ical" - ], - [ - "кт", - "о" - ], - [ - "к", - "то" - ], - [ - "▁pl", - "ants" - ], - [ - "▁plan", - "ts" - ], - [ - "▁plant", - "s" - ], - [ - "▁Ré", - "férences" - ], - [ - "▁Référence", - "s" - ], - [ - "▁og", - "ni" - ], - [ - "▁c", - "urs" - ], - [ - "▁cu", - "rs" - ], - [ - "▁cur", - "s" - ], - [ - "▁S", - "K" - ], - [ - "▁", - "SK" - ], - [ - "он", - "и" - ], - [ - "о", - "ни" - ], - [ - "▁des", - "tac" - ], - [ - "▁dest", - "ac" - ], - [ - "\")", - ";\r" - ], - [ - "\");", - "\r" - ], - [ - "\"", - ");\r" - ], - [ - "▁S", - "ure" - ], - [ - "▁Su", - "re" - ], - [ - "▁Sur", - "e" - ], - [ - "▁part", - "ido" - ], - [ - "▁parti", - "do" - ], - [ - "▁Fol", - "ge" - ], - [ - "▁Mo", - "ore" - ], - [ - "▁w", - "z" - ], - [ - "ск", - "ус" - ], - [ - "ску", - "с" - ], - [ - "lt", - "re" - ], - [ - "l", - "tre" - ], - [ - "on", - "do" - ], - [ - "ond", - "o" - ], - [ - "▁p", - "ose" - ], - [ - "▁po", - "se" - ], - [ - "▁pos", - "e" - ], - [ - "▁", - "pose" - ], - [ - "im", - "os" - ], - [ - "imo", - "s" - ], - [ - "i", - "mos" - ], - [ - "бо", - "й" - ], - [ - "ци", - "па" - ], - [ - "ju", - "s" - ], - [ - "j", - "us" - ], - [ - "..", - "..." - ], - [ - "...", - ".." - ], - [ - "....", - "." - ], - [ - ".", - "...." - ], - [ - "▁ép", - "oca" - ], - [ - "▁qu", - "anto" - ], - [ - "▁quant", - "o" - ], - [ - "▁quan", - "to" - ], - [ - "▁Su", - "pport" - ], - [ - "▁Supp", - "ort" - ], - [ - "▁Sup", - "port" - ], - [ - "▁", - "Support" - ], - [ - "gesch", - "ichte" - ], - [ - "SER", - "VER" - ], - [ - "▁George", - "s" - ], - [ - "▁Georg", - "es" - ], - [ - "en", - "um" - ], - [ - "enu", - "m" - ], - [ - "e", - "num" - ], - [ - "▁h", - "erm" - ], - [ - "▁he", - "rm" - ], - [ - "▁her", - "m" - ], - [ - "▁ne", - "bo" - ], - [ - "▁C", - "hr" - ], - [ - "▁Ch", - "r" - ], - [ - "▁", - "Chr" - ], - [ - "char", - "acter" - ], - [ - "▁*", - "**" - ], - [ - "▁**", - "*" - ], - [ - "▁", - "***" - ], - [ - "▁For", - "sch" - ], - [ - "ia", - "mi" - ], - [ - "iam", - "i" - ], - [ - "i", - "ami" - ], - [ - "▁", - "¿" - ], - [ - "cy", - "ch" - ], - [ - "cyc", - "h" - ], - [ - "c", - "ych" - ], - [ - "▁fif", - "th" - ], - [ - "se", - "nt" - ], - [ - "sen", - "t" - ], - [ - "s", - "ent" - ], - [ - "▁and", - "erem" - ], - [ - "▁andere", - "m" - ], - [ - "▁proport", - "ion" - ], - [ - "▁propor", - "tion" - ], - [ - "▁p", - "rest" - ], - [ - "▁pr", - "est" - ], - [ - "▁pre", - "st" - ], - [ - "▁pres", - "t" - ], - [ - "▁G", - "irl" - ], - [ - "▁Gi", - "rl" - ], - [ - "▁Gir", - "l" - ], - [ - "▁d", - "rama" - ], - [ - "▁dr", - "ama" - ], - [ - "▁dra", - "ma" - ], - [ - "▁dram", - "a" - ], - [ - "wa", - "nd" - ], - [ - "wan", - "d" - ], - [ - "w", - "and" - ], - [ - "▁M", - "ail" - ], - [ - "▁Ma", - "il" - ], - [ - "▁Mai", - "l" - ], - [ - "▁", - "Mail" - ], - [ - "▁L", - "ux" - ], - [ - "▁Lu", - "x" - ], - [ - "▁kter", - "ý" - ], - [ - "▁Ges", - "ellschaft" - ], - [ - "▁Hin", - "weis" - ], - [ - "nis", - "se" - ], - [ - "n", - "isse" - ], - [ - "▁m", - "ondo" - ], - [ - "▁mon", - "do" - ], - [ - "▁mond", - "o" - ], - [ - "E", - "q" - ], - [ - "▁per", - "í" - ], - [ - "▁pe", - "rí" - ], - [ - "▁e", - "astern" - ], - [ - "▁eas", - "tern" - ], - [ - "▁east", - "ern" - ], - [ - "▁UE", - "FA" - ], - [ - "ual", - "e" - ], - [ - "ua", - "le" - ], - [ - "u", - "ale" - ], - [ - "▁con", - "vex" - ], - [ - "▁conv", - "ex" - ], - [ - "▁по", - "ль" - ], - [ - "▁пол", - "ь" - ], - [ - "▁", - "поль" - ], - [ - "▁H", - "ey" - ], - [ - "▁He", - "y" - ], - [ - "ze", - "nie" - ], - [ - "zen", - "ie" - ], - [ - "z", - "enie" - ], - [ - "init", - "ely" - ], - [ - "▁Z", - "usammen" - ], - [ - "SS", - "L" - ], - [ - "S", - "SL" - ], - [ - "oc", - "al" - ], - [ - "oca", - "l" - ], - [ - "o", - "cal" - ], - [ - "▁c", - "anal" - ], - [ - "▁can", - "al" - ], - [ - "▁ca", - "nal" - ], - [ - "vo", - "y" - ], - [ - "v", - "oy" - ], - [ - "▁К", - "ри" - ], - [ - "▁köz", - "ött" - ], - [ - "▁c", - "ars" - ], - [ - "▁car", - "s" - ], - [ - "▁ca", - "rs" - ], - [ - "▁vers", - "ión" - ], - [ - "En", - "vironment" - ], - [ - "He", - "r" - ], - [ - "H", - "er" - ], - [ - "▁se", - "ñ" - ], - [ - "▁sp", - "atial" - ], - [ - "ym", - "i" - ], - [ - "y", - "mi" - ], - [ - "Fi", - "re" - ], - [ - "F", - "ire" - ], - [ - "▁ve", - "get" - ], - [ - "▁veg", - "et" - ], - [ - "▁W", - "ie" - ], - [ - "▁Wi", - "e" - ], - [ - "▁zn", - "aj" - ], - [ - "▁zna", - "j" - ], - [ - "▁dam", - "age" - ], - [ - "▁en", - "dl" - ], - [ - "▁end", - "l" - ], - [ - "▁", - "endl" - ], - [ - "gi", - "f" - ], - [ - "g", - "if" - ], - [ - "▁qu", - "ali" - ], - [ - "▁qual", - "i" - ], - [ - "▁которы", - "х" - ], - [ - "el", - "lan" - ], - [ - "ell", - "an" - ], - [ - "ella", - "n" - ], - [ - "▁m", - "ens" - ], - [ - "▁me", - "ns" - ], - [ - "▁men", - "s" - ], - [ - "▁pl", - "ug" - ], - [ - "▁a", - "bund" - ], - [ - "▁ab", - "und" - ], - [ - "FI", - "G" - ], - [ - "F", - "IG" - ], - [ - "▁s", - "f" - ], - [ - "▁", - "sf" - ], - [ - "▁con", - "fl" - ], - [ - "▁conf", - "l" - ], - [ - "▁насе", - "ления" - ], - [ - "▁princi", - "ples" - ], - [ - "▁princip", - "les" - ], - [ - "▁principle", - "s" - ], - [ - "▁Gab", - "riel" - ], - [ - "ib", - "e" - ], - [ - "i", - "be" - ], - [ - "▁{", - "%" - ], - [ - "▁", - "{%" - ], - [ - "▁pobla", - "ció" - ], - [ - "ні", - "ципа" - ], - [ - "▁ext", - "reme" - ], - [ - "▁extrem", - "e" - ], - [ - "▁extr", - "eme" - ], - [ - "▁as", - "se" - ], - [ - "▁ass", - "e" - ], - [ - "▁", - "asse" - ], - [ - "▁v", - "u" - ], - [ - "▁", - "vu" - ], - [ - "Mo", - "ck" - ], - [ - "M", - "ock" - ], - [ - "▁spiel", - "te" - ], - [ - "▁A", - "er" - ], - [ - "▁d", - "atos" - ], - [ - "▁dat", - "os" - ], - [ - "en", - "des" - ], - [ - "end", - "es" - ], - [ - "ende", - "s" - ], - [ - "▁G", - "el" - ], - [ - "▁Ge", - "l" - ], - [ - "▁G", - "or" - ], - [ - "▁Go", - "r" - ], - [ - "Ch", - "rist" - ], - [ - "Chr", - "ist" - ], - [ - "ch", - "os" - ], - [ - "cho", - "s" - ], - [ - "c", - "hos" - ], - [ - "Process", - "or" - ], - [ - "Proc", - "essor" - ], - [ - "▁in", - "struct" - ], - [ - "▁inst", - "ruct" - ], - [ - "▁instru", - "ct" - ], - [ - "▁p", - "icked" - ], - [ - "▁pick", - "ed" - ], - [ - "▁pic", - "ked" - ], - [ - "nah", - "me" - ], - [ - "nahm", - "e" - ], - [ - "fa", - "hr" - ], - [ - "fah", - "r" - ], - [ - "f", - "ahr" - ], - [ - "▁indic", - "ated" - ], - [ - "▁indicate", - "d" - ], - [ - "▁%", - "." - ], - [ - "▁", - "%." - ], - [ - "▁t", - "s" - ], - [ - "▁", - "ts" - ], - [ - "▁not", - "able" - ], - [ - "▁no", - "table" - ], - [ - "▁qual", - "ified" - ], - [ - "▁А", - "л" - ], - [ - "Bl", - "ack" - ], - [ - "B", - "lack" - ], - [ - "▁coun", - "cil" - ], - [ - "▁over", - "head" - ], - [ - "ac", - "i" - ], - [ - "a", - "ci" - ], - [ - "an", - "née" - ], - [ - "ann", - "ée" - ], - [ - "▁init", - "With" - ], - [ - "bi", - "ó" - ], - [ - "b", - "ió" - ], - [ - "▁int", - "roduction" - ], - [ - "▁introdu", - "ction" - ], - [ - "▁compan", - "ion" - ], - [ - "▁ex", - "pon" - ], - [ - "▁exp", - "on" - ], - [ - "▁k", - "ör" - ], - [ - "▁kö", - "r" - ], - [ - "ob", - "y" - ], - [ - "o", - "by" - ], - [ - "bu", - "rn" - ], - [ - "bur", - "n" - ], - [ - "b", - "urn" - ], - [ - "gn", - "u" - ], - [ - "g", - "nu" - ], - [ - "virt", - "ual" - ], - [ - "v", - "irtual" - ], - [ - "▁intel", - "lect" - ], - [ - "▁д", - "ержа" - ], - [ - "▁", - "держа" - ], - [ - "'", - "+" - ], - [ - "б", - "ле" - ], - [ - "▁strict", - "ly" - ], - [ - "▁recogn", - "ize" - ], - [ - "ho", - "ur" - ], - [ - "hou", - "r" - ], - [ - "h", - "our" - ], - [ - "▁W", - "rest" - ], - [ - "en", - "nen" - ], - [ - "enn", - "en" - ], - [ - "enne", - "n" - ], - [ - "$)", - "." - ], - [ - "$", - ")." - ], - [ - "ff", - "f" - ], - [ - "f", - "ff" - ], - [ - "▁Cent", - "ro" - ], - [ - "▁P", - "itt" - ], - [ - "▁Pi", - "tt" - ], - [ - "▁Pit", - "t" - ], - [ - "▁d", - "ział" - ], - [ - "▁dz", - "iał" - ], - [ - "▁", - "dział" - ], - [ - "▁c", - "ela" - ], - [ - "▁ce", - "la" - ], - [ - "▁cel", - "a" - ], - [ - "▁frances", - "e" - ], - [ - "▁franc", - "ese" - ], - [ - "ра", - "ми" - ], - [ - "spe", - "cial" - ], - [ - "spec", - "ial" - ], - [ - "▁D", - "up" - ], - [ - "▁Du", - "p" - ], - [ - "to", - "ire" - ], - [ - "t", - "oire" - ], - [ - "ка", - "ль" - ], - [ - "кал", - "ь" - ], - [ - "к", - "аль" - ], - [ - "CO", - "UNT" - ], - [ - "▁Br", - "ook" - ], - [ - "▁Bro", - "ok" - ], - [ - "▁ру", - "ково" - ], - [ - "pub", - "lique" - ], - [ - "▁se", - "conda" - ], - [ - "▁second", - "a" - ], - [ - "▁sec", - "onda" - ], - [ - "▁com", - "pt" - ], - [ - "▁comp", - "t" - ], - [ - "▁b", - "land" - ], - [ - "▁bl", - "and" - ], - [ - "▁bla", - "nd" - ], - [ - "▁blan", - "d" - ], - [ - "Be", - "fore" - ], - [ - "▁P", - "ack" - ], - [ - "▁Pa", - "ck" - ], - [ - "▁Pac", - "k" - ], - [ - "▁", - "Pack" - ], - [ - "al", - "ty" - ], - [ - "alt", - "y" - ], - [ - "öd", - "er" - ], - [ - "ö", - "der" - ], - [ - "▁interval", - "s" - ], - [ - "▁Daten", - "bank" - ], - [ - "Mo", - "vie" - ], - [ - "M", - "ovie" - ], - [ - "▁trans", - "m" - ], - [ - "▁tran", - "sm" - ], - [ - "▁t", - "ap" - ], - [ - "▁ta", - "p" - ], - [ - "▁по", - "ч" - ], - [ - "fo", - "n" - ], - [ - "f", - "on" - ], - [ - "ia", - "i" - ], - [ - "i", - "ai" - ], - [ - "▁f", - "ib" - ], - [ - "▁fi", - "b" - ], - [ - "▁w", - "yd" - ], - [ - "▁wy", - "d" - ], - [ - "▁h", - "ung" - ], - [ - "▁hun", - "g" - ], - [ - "▁hu", - "ng" - ], - [ - "▁", - "hung" - ], - [ - "▁a", - "live" - ], - [ - "▁al", - "ive" - ], - [ - "▁ali", - "ve" - ], - [ - "Cl", - "ear" - ], - [ - "C", - "lear" - ], - [ - "▁p", - "ushed" - ], - [ - "▁push", - "ed" - ], - [ - "▁tu", - "ple" - ], - [ - "▁", - "tuple" - ], - [ - "ach", - "en" - ], - [ - "ac", - "hen" - ], - [ - "ache", - "n" - ], - [ - "a", - "chen" - ], - [ - "го", - "во" - ], - [ - "гов", - "о" - ], - [ - "г", - "ово" - ], - [ - "▁re", - "vers" - ], - [ - "▁rev", - "ers" - ], - [ - "▁reve", - "rs" - ], - [ - "▁rever", - "s" - ], - [ - "▁au", - "gment" - ], - [ - "▁aug", - "ment" - ], - [ - "▁ch", - "allenge" - ], - [ - "▁challeng", - "e" - ], - [ - "lo", - "st" - ], - [ - "los", - "t" - ], - [ - "l", - "ost" - ], - [ - "▁deux", - "ième" - ], - [ - "struct", - "or" - ], - [ - "stru", - "ctor" - ], - [ - "▁mehr", - "erer" - ], - [ - "▁mehrere", - "r" - ], - [ - "at", - "ural" - ], - [ - "atur", - "al" - ], - [ - "atura", - "l" - ], - [ - "atu", - "ral" - ], - [ - "Sp", - "lit" - ], - [ - "S", - "plit" - ], - [ - "ст", - "ем" - ], - [ - "сте", - "м" - ], - [ - "с", - "тем" - ], - [ - "ш", - "ла" - ], - [ - ")\\", - "\\" - ], - [ - ")", - "\\\\" - ], - [ - "▁D", - "og" - ], - [ - "▁Do", - "g" - ], - [ - "▁develop", - "ers" - ], - [ - "▁developer", - "s" - ], - [ - "▁", - "developers" - ], - [ - "▁n", - "od" - ], - [ - "▁no", - "d" - ], - [ - "▁сто", - "ро" - ], - [ - "▁Na", - "N" - ], - [ - "▁", - "NaN" - ], - [ - "▁pr", - "iest" - ], - [ - "▁pri", - "est" - ], - [ - "▁ex", - "ha" - ], - [ - "UN", - "D" - ], - [ - "U", - "ND" - ], - [ - "pa", - "ir" - ], - [ - "p", - "air" - ], - [ - "al", - "one" - ], - [ - "alo", - "ne" - ], - [ - "▁m", - "oon" - ], - [ - "▁mo", - "on" - ], - [ - "▁#", - "!/" - ], - [ - "▁g", - "uns" - ], - [ - "▁gu", - "ns" - ], - [ - "▁gun", - "s" - ], - [ - "ro", - "la" - ], - [ - "rol", - "a" - ], - [ - "r", - "ola" - ], - [ - "чи", - "та" - ], - [ - "▁Encyc", - "lopedia" - ], - [ - "▁Encyclop", - "edia" - ], - [ - "at", - "is" - ], - [ - "ati", - "s" - ], - [ - "a", - "tis" - ], - [ - "▁'", - "\"" - ], - [ - "▁", - "'\"" - ], - [ - "zy", - "ch" - ], - [ - "z", - "ych" - ], - [ - "▁super", - "fic" - ], - [ - "▁э", - "к" - ], - [ - "еде", - "ра" - ], - [ - "fe", - "ed" - ], - [ - "f", - "eed" - ], - [ - "LA", - "Y" - ], - [ - "F", - "i" - ], - [ - "un", - "ks" - ], - [ - "unk", - "s" - ], - [ - "ise", - "cond" - ], - [ - "i", - "second" - ], - [ - "▁'", - "@" - ], - [ - "▁Ad", - "ding" - ], - [ - "▁Add", - "ing" - ], - [ - "ро", - "е" - ], - [ - "▁t", - "ang" - ], - [ - "▁tan", - "g" - ], - [ - "▁ta", - "ng" - ], - [ - "ц", - "о" - ], - [ - "hu", - "ng" - ], - [ - "h", - "ung" - ], - [ - "bi", - "s" - ], - [ - "b", - "is" - ], - [ - "sk", - "ého" - ], - [ - "ské", - "ho" - ], - [ - "▁ad", - "vert" - ], - [ - "▁adv", - "ert" - ], - [ - "▁за", - "нима" - ], - [ - "uz", - "z" - ], - [ - "u", - "zz" - ], - [ - "ág", - "ina" - ], - [ - "▁T", - "el" - ], - [ - "▁Te", - "l" - ], - [ - "si", - "g" - ], - [ - "s", - "ig" - ], - [ - "▁E", - "z" - ], - [ - "▁guarante", - "e" - ], - [ - "▁te", - "aching" - ], - [ - "▁teach", - "ing" - ], - [ - "ot", - "y" - ], - [ - "o", - "ty" - ], - [ - "ter", - "min" - ], - [ - "term", - "in" - ], - [ - "▁distribution", - "s" - ], - [ - "▁distrib", - "utions" - ], - [ - "FL", - "A" - ], - [ - "F", - "LA" - ], - [ - "▁Gi", - "useppe" - ], - [ - "query", - "Selector" - ], - [ - "▁/", - "\\" - ], - [ - "▁", - "/\\" - ], - [ - "▁S", - "quad" - ], - [ - "g", - "z" - ], - [ - "de", - "lay" - ], - [ - "del", - "ay" - ], - [ - "▁surr", - "ounding" - ], - [ - "▁m", - "anus" - ], - [ - "▁man", - "us" - ], - [ - "▁H", - "ou" - ], - [ - "▁Ho", - "u" - ], - [ - "²", - "," - ], - [ - "▁cult", - "iv" - ], - [ - "▁trouble", - "s" - ], - [ - "▁trou", - "bles" - ], - [ - "▁r", - "aison" - ], - [ - "▁ra", - "ison" - ], - [ - "exp", - "and" - ], - [ - "▁c", - "ov" - ], - [ - "▁co", - "v" - ], - [ - "▁", - "cov" - ], - [ - "nung", - "en" - ], - [ - "n", - "ungen" - ], - [ - "))", - "{" - ], - [ - ")", - "){" - ], - [ - "▁g", - "een" - ], - [ - "▁ge", - "en" - ], - [ - "▁au", - "ßer" - ], - [ - "▁Л", - "і" - ], - [ - "ř", - "i" - ], - [ - "▁situ", - "ations" - ], - [ - "▁situation", - "s" - ], - [ - "▁tele", - "p" - ], - [ - "▁tel", - "ep" - ], - [ - "▁J", - "ed" - ], - [ - "▁Je", - "d" - ], - [ - "▁trav", - "ail" - ], - [ - "▁trava", - "il" - ], - [ - "li", - "as" - ], - [ - "lia", - "s" - ], - [ - "l", - "ias" - ], - [ - "bul", - "let" - ], - [ - "▁select", - "ing" - ], - [ - "av", - "ier" - ], - [ - "avi", - "er" - ], - [ - "a", - "vier" - ], - [ - "▁ess", - "ential" - ], - [ - "(", - "/" - ], - [ - "yy", - "yy" - ], - [ - "št", - "ě" - ], - [ - "ul", - "ty" - ], - [ - "ult", - "y" - ], - [ - "▁k", - "ra" - ], - [ - "▁kr", - "a" - ], - [ - "▁t", - "abs" - ], - [ - "▁tab", - "s" - ], - [ - "▁ta", - "bs" - ], - [ - "▁", - "tabs" - ], - [ - "▁experience", - "d" - ], - [ - "▁experien", - "ced" - ], - [ - "az", - "i" - ], - [ - "a", - "zi" - ], - [ - "▁D", - "irectory" - ], - [ - "▁Direct", - "ory" - ], - [ - "▁Director", - "y" - ], - [ - "▁", - "Directory" - ], - [ - "▁c", - "ron" - ], - [ - "▁cr", - "on" - ], - [ - "▁cro", - "n" - ], - [ - "▁s", - "pend" - ], - [ - "▁sp", - "end" - ], - [ - "▁spe", - "nd" - ], - [ - "▁R", - "A" - ], - [ - "▁", - "RA" - ], - [ - "▁s", - "elenium" - ], - [ - "▁sel", - "enium" - ], - [ - "▁", - "selenium" - ], - [ - "▁T", - "hé" - ], - [ - "▁Th", - "é" - ], - [ - "Element", - "s" - ], - [ - "El", - "ements" - ], - [ - "ci", - "i" - ], - [ - "c", - "ii" - ], - [ - "▁p", - "lat" - ], - [ - "▁pl", - "at" - ], - [ - "▁pla", - "t" - ], - [ - "▁arch", - "ive" - ], - [ - "▁archiv", - "e" - ], - [ - "▁", - "archive" - ], - [ - "▁ass", - "istance" - ], - [ - "▁assist", - "ance" - ], - [ - "▁ne", - "ck" - ], - [ - "▁A", - "venue" - ], - [ - "▁Aven", - "ue" - ], - [ - "▁w", - "heel" - ], - [ - "▁whe", - "el" - ], - [ - "▁h", - "ade" - ], - [ - "▁ha", - "de" - ], - [ - "▁had", - "e" - ], - [ - "Com", - "mon" - ], - [ - "Comm", - "on" - ], - [ - "▁D", - "ialog" - ], - [ - "▁Di", - "alog" - ], - [ - "▁Dia", - "log" - ], - [ - "▁", - "Dialog" - ], - [ - "▁f", - "org" - ], - [ - "▁for", - "g" - ], - [ - "▁fo", - "rg" - ], - [ - "▁sur", - "ely" - ], - [ - "▁sure", - "ly" - ], - [ - "▁h", - "ockey" - ], - [ - "kt", - "ó" - ], - [ - "k", - "tó" - ], - [ - "▁t", - "k" - ], - [ - "▁", - "tk" - ], - [ - "▁Br", - "uce" - ], - [ - "▁Bru", - "ce" - ], - [ - "▁e", - "norm" - ], - [ - "▁en", - "orm" - ], - [ - ",", - "’" - ], - [ - "▁Christ", - "opher" - ], - [ - "▁Christoph", - "er" - ], - [ - "je", - "v" - ], - [ - "j", - "ev" - ], - [ - "▁qu", - "ad" - ], - [ - "▁", - "quad" - ], - [ - "▁A", - "JAX" - ], - [ - "▁rel", - "ief" - ], - [ - "▁reli", - "ef" - ], - [ - "▁m", - "odes" - ], - [ - "▁mod", - "es" - ], - [ - "▁mo", - "des" - ], - [ - "▁mode", - "s" - ], - [ - "sk", - "lär" - ], - [ - "s", - "klär" - ], - [ - "▁V", - "id" - ], - [ - "▁Vi", - "d" - ], - [ - "▁Se", - "rial" - ], - [ - "▁Ser", - "ial" - ], - [ - "▁", - "Serial" - ], - [ - "▁to", - "kens" - ], - [ - "▁token", - "s" - ], - [ - "▁Pol", - "and" - ], - [ - "▁Po", - "land" - ], - [ - "\\", - "]" - ], - [ - "▁v", - "ide" - ], - [ - "▁vi", - "de" - ], - [ - "▁vid", - "e" - ], - [ - "ro", - "oms" - ], - [ - "room", - "s" - ], - [ - "om", - "as" - ], - [ - "oma", - "s" - ], - [ - "o", - "mas" - ], - [ - "▁B", - "ureau" - ], - [ - "▁Bur", - "eau" - ], - [ - "c", - "x" - ], - [ - "ность", - "ю" - ], - [ - "ност", - "ью" - ], - [ - "▁sign", - "s" - ], - [ - "▁sig", - "ns" - ], - [ - "ше", - "ние" - ], - [ - "los", - "sen" - ], - [ - "loss", - "en" - ], - [ - "l", - "ossen" - ], - [ - "▁Que", - "ens" - ], - [ - "▁Queen", - "s" - ], - [ - "▁m", - "embre" - ], - [ - "▁mem", - "bre" - ], - [ - "▁memb", - "re" - ], - [ - "▁m", - "ez" - ], - [ - "▁me", - "z" - ], - [ - "▁", - "mez" - ], - [ - "▁B", - "ool" - ], - [ - "▁Bo", - "ol" - ], - [ - "▁", - "Bool" - ], - [ - "▁N", - "aj" - ], - [ - "▁Na", - "j" - ], - [ - "▁Mem", - "ory" - ], - [ - "▁", - "Memory" - ], - [ - "▁K", - "han" - ], - [ - "▁Kh", - "an" - ], - [ - "▁l", - "à" - ], - [ - "▁", - "là" - ], - [ - "▁H", - "ud" - ], - [ - "▁Hu", - "d" - ], - [ - "▁d", - "ismiss" - ], - [ - "▁dis", - "miss" - ], - [ - "ight", - "h" - ], - [ - "igh", - "th" - ], - [ - "▁f", - "s" - ], - [ - "▁", - "fs" - ], - [ - "pr", - "event" - ], - [ - "pre", - "vent" - ], - [ - "prev", - "ent" - ], - [ - "▁ме", - "да" - ], - [ - "▁Pol", - "ice" - ], - [ - "▁Po", - "lice" - ], - [ - "▁с", - "ко" - ], - [ - "▁", - "ско" - ], - [ - "fin", - "ite" - ], - [ - "▁a", - "mi" - ], - [ - "▁am", - "i" - ], - [ - "▁", - "ami" - ], - [ - "▁M", - "uch" - ], - [ - "▁Mu", - "ch" - ], - [ - "ow", - "ania" - ], - [ - "owa", - "nia" - ], - [ - "owan", - "ia" - ], - [ - "OR", - "Y" - ], - [ - "O", - "RY" - ], - [ - "io", - "rs" - ], - [ - "ior", - "s" - ], - [ - "i", - "ors" - ], - [ - "▁Prem", - "io" - ], - [ - "▁text", - "box" - ], - [ - "d", - "m" - ], - [ - "▁a", - "fin" - ], - [ - "▁af", - "in" - ], - [ - "▁Don", - "ald" - ], - [ - "▁", - "Donald" - ], - [ - "▁P", - "riv" - ], - [ - "▁Pr", - "iv" - ], - [ - "▁Pri", - "v" - ], - [ - "▁de", - "cid" - ], - [ - "▁dec", - "id" - ], - [ - "▁Maur", - "ice" - ], - [ - "▁Mau", - "rice" - ], - [ - "ag", - "an" - ], - [ - "aga", - "n" - ], - [ - "a", - "gan" - ], - [ - "▁Britann", - "ica" - ], - [ - "▁o", - "ft" - ], - [ - "▁of", - "t" - ], - [ - "▁consec", - "utive" - ], - [ - "\"?", - ">" - ], - [ - "\"", - "?>" - ], - [ - "ови", - "й" - ], - [ - "st", - "udent" - ], - [ - "stud", - "ent" - ], - [ - "▁pe", - "que" - ], - [ - "▁di", - "eses" - ], - [ - "▁dies", - "es" - ], - [ - "▁diese", - "s" - ], - [ - "▁ret", - "our" - ], - [ - "ét", - "r" - ], - [ - "é", - "tr" - ], - [ - "▁с", - "ез" - ], - [ - "▁се", - "з" - ], - [ - "▁k", - "re" - ], - [ - "▁kr", - "e" - ], - [ - "▁", - "kre" - ], - [ - "▁v", - "otes" - ], - [ - "▁vo", - "tes" - ], - [ - "▁vot", - "es" - ], - [ - "▁vote", - "s" - ], - [ - "ru", - "ption" - ], - [ - "rupt", - "ion" - ], - [ - "rup", - "tion" - ], - [ - "iz", - "ada" - ], - [ - "iza", - "da" - ], - [ - "▁W", - "iel" - ], - [ - "▁Wi", - "el" - ], - [ - "▁Wie", - "l" - ], - [ - "▁G", - "ray" - ], - [ - "▁Gr", - "ay" - ], - [ - "▁Gra", - "y" - ], - [ - "▁Le", - "op" - ], - [ - "▁Leo", - "p" - ], - [ - "teil", - "ung" - ], - [ - "tei", - "lung" - ], - [ - "([", - "'" - ], - [ - "(", - "['" - ], - [ - "▁wh", - "ites" - ], - [ - "▁white", - "s" - ], - [ - "fr", - "ica" - ], - [ - "fri", - "ca" - ], - [ - "f", - "rica" - ], - [ - "an", - "imation" - ], - [ - "anim", - "ation" - ], - [ - "cur", - "l" - ], - [ - "cu", - "rl" - ], - [ - "c", - "url" - ], - [ - "ling", - "s" - ], - [ - "lin", - "gs" - ], - [ - "l", - "ings" - ], - [ - "=\"", - "$" - ], - [ - "lo", - "yd" - ], - [ - "loy", - "d" - ], - [ - "text", - "sc" - ], - [ - "ор", - "у" - ], - [ - "о", - "ру" - ], - [ - "▁се", - "ла" - ], - [ - "es", - "ian" - ], - [ - "esi", - "an" - ], - [ - "esia", - "n" - ], - [ - "▁M", - "ission" - ], - [ - "▁Miss", - "ion" - ], - [ - "▁не", - "за" - ], - [ - "▁ult", - "imately" - ], - [ - "бо", - "в" - ], - [ - "б", - "ов" - ], - [ - "ol", - "en" - ], - [ - "ole", - "n" - ], - [ - "o", - "len" - ], - [ - "ско", - "му" - ], - [ - "ском", - "у" - ], - [ - "ск", - "ому" - ], - [ - "с", - "кому" - ], - [ - "ne", - "te" - ], - [ - "net", - "e" - ], - [ - "n", - "ete" - ], - [ - "▁D", - "it" - ], - [ - "▁Di", - "t" - ], - [ - "▁co", - "stru" - ], - [ - "▁cost", - "ru" - ], - [ - "dep", - "endent" - ], - [ - "▁Re", - "source" - ], - [ - "▁Res", - "ource" - ], - [ - "▁", - "Resource" - ], - [ - "▁host", - "s" - ], - [ - "▁hos", - "ts" - ], - [ - "▁", - "hosts" - ], - [ - "▁re", - "ar" - ], - [ - "▁r", - "ear" - ], - [ - "D", - "uration" - ], - [ - "ни", - "ків" - ], - [ - "ник", - "ів" - ], - [ - "М", - "а" - ], - [ - "▁pl", - "anning" - ], - [ - "▁plan", - "ning" - ], - [ - "▁pre", - "diction" - ], - [ - "▁pred", - "iction" - ], - [ - "▁predict", - "ion" - ], - [ - "▁L", - "yn" - ], - [ - "▁Ly", - "n" - ], - [ - "▁k", - "ir" - ], - [ - "▁ki", - "r" - ], - [ - "▁", - "kir" - ], - [ - "▁Leg", - "isl" - ], - [ - "ма", - "т" - ], - [ - "м", - "ат" - ], - [ - "▁S", - "occer" - ], - [ - "▁Soc", - "cer" - ], - [ - "▁sur", - "vey" - ], - [ - "▁surv", - "ey" - ], - [ - "▁surve", - "y" - ], - [ - "▁estadoun", - "idense" - ], - [ - "or", - "gen" - ], - [ - "org", - "en" - ], - [ - "orge", - "n" - ], - [ - "jo", - "urd" - ], - [ - "jou", - "rd" - ], - [ - "j", - "ourd" - ], - [ - "▁ap", - "rile" - ], - [ - "▁april", - "e" - ], - [ - "▁apr", - "ile" - ], - [ - "▁i", - "ds" - ], - [ - "▁id", - "s" - ], - [ - "▁", - "ids" - ], - [ - "сь", - "ке" - ], - [ - "ськ", - "е" - ], - [ - "▁emp", - "loyee" - ], - [ - "▁employ", - "ee" - ], - [ - "▁", - "employee" - ], - [ - "▁Schaus", - "pieler" - ], - [ - "р", - "ъ" - ], - [ - "▁mult", - "imedia" - ], - [ - "▁multi", - "media" - ], - [ - "▁сво", - "ю" - ], - [ - "▁w", - "ine" - ], - [ - "▁win", - "e" - ], - [ - "▁E", - "U" - ], - [ - "ic", - "ă" - ], - [ - "▁R", - "hein" - ], - [ - "▁Rh", - "ein" - ], - [ - "▁Pal", - "mar" - ], - [ - "ot", - "eca" - ], - [ - "ote", - "ca" - ], - [ - "▁prep", - "are" - ], - [ - "▁prepar", - "e" - ], - [ - "▁", - "prepare" - ], - [ - "▁T", - "ot" - ], - [ - "▁To", - "t" - ], - [ - "▁N", - "ull" - ], - [ - "▁Nu", - "ll" - ], - [ - "▁", - "Null" - ], - [ - "▁k", - "in" - ], - [ - "▁ki", - "n" - ], - [ - "▁", - "kin" - ], - [ - "in", - "als" - ], - [ - "inal", - "s" - ], - [ - "ina", - "ls" - ], - [ - "▁New", - "ton" - ], - [ - "▁t", - "bl" - ], - [ - "▁", - "tbl" - ], - [ - "▁S", - "old" - ], - [ - "▁So", - "ld" - ], - [ - "▁Sol", - "d" - ], - [ - "▁ver", - "f" - ], - [ - "▁ve", - "rf" - ], - [ - "at", - "uring" - ], - [ - "atur", - "ing" - ], - [ - "atu", - "ring" - ], - [ - "▁la", - "ptop" - ], - [ - "▁lap", - "top" - ], - [ - "▁Со", - "вет" - ], - [ - "▁Сов", - "ет" - ], - [ - "▁Сове", - "т" - ], - [ - "se", - "cret" - ], - [ - "sec", - "ret" - ], - [ - "▁Olymp", - "ic" - ], - [ - "▁football", - "er" - ], - [ - "▁Rud", - "olf" - ], - [ - "▁con", - "he" - ], - [ - "zy", - "sk" - ], - [ - "▁evalu", - "ated" - ], - [ - "▁evaluate", - "d" - ], - [ - "»", - ")" - ], - [ - "sh", - "op" - ], - [ - "re", - "pository" - ], - [ - "▁z", - "ach" - ], - [ - "▁za", - "ch" - ], - [ - "▁l", - "osing" - ], - [ - "▁lo", - "sing" - ], - [ - "▁los", - "ing" - ], - [ - "et", - "ter" - ], - [ - "ett", - "er" - ], - [ - "ette", - "r" - ], - [ - "▁W", - "irtschaft" - ], - [ - "та", - "к" - ], - [ - "▁unnecess", - "ary" - ], - [ - "▁P", - "hot" - ], - [ - "▁Ph", - "ot" - ], - [ - "▁Pho", - "t" - ], - [ - "an", - "ska" - ], - [ - "ans", - "ka" - ], - [ - "ansk", - "a" - ], - [ - "▁N", - "ative" - ], - [ - "▁Nat", - "ive" - ], - [ - "▁", - "Native" - ], - [ - "CC", - "E" - ], - [ - "C", - "CE" - ], - [ - "▁fi", - "fty" - ], - [ - "▁fif", - "ty" - ], - [ - "▁e", - "rw" - ], - [ - "▁er", - "w" - ], - [ - "r", - "h" - ], - [ - "is", - "sent" - ], - [ - "iss", - "ent" - ], - [ - "isse", - "nt" - ], - [ - "issen", - "t" - ], - [ - "}{", - "(" - ], - [ - "}", - "{(" - ], - [ - "▁lan", - "ç" - ], - [ - "▁X", - "code" - ], - [ - "го", - "род" - ], - [ - "гор", - "од" - ], - [ - "ci", - "r" - ], - [ - "c", - "ir" - ], - [ - "▁pel", - "ícula" - ], - [ - "▁O", - "scar" - ], - [ - "▁Os", - "car" - ], - [ - "▁sh", - "ore" - ], - [ - "▁sho", - "re" - ], - [ - "▁supp", - "lied" - ], - [ - "ex", - "amples" - ], - [ - "example", - "s" - ], - [ - "Me", - "ss" - ], - [ - "M", - "ess" - ], - [ - "VI", - "CE" - ], - [ - "V", - "ICE" - ], - [ - "▁ex", - "clude" - ], - [ - "▁h", - "en" - ], - [ - "▁he", - "n" - ], - [ - "▁", - "hen" - ], - [ - "▁гу", - "бер" - ], - [ - "▁F", - "ragment" - ], - [ - "▁Fra", - "gment" - ], - [ - "▁", - "Fragment" - ], - [ - "▁B", - "itte" - ], - [ - "▁Bi", - "tte" - ], - [ - "▁Bit", - "te" - ], - [ - "▁Bes", - "ides" - ], - [ - "▁h", - "es" - ], - [ - "▁he", - "s" - ], - [ - "▁", - "hes" - ], - [ - "▁ih", - "rem" - ], - [ - "▁ihr", - "em" - ], - [ - "▁ihre", - "m" - ], - [ - "▁Ser", - "ge" - ], - [ - "▁art", - "ific" - ], - [ - "=\"", - "${" - ], - [ - "=\"$", - "{" - ], - [ - "ло", - "во" - ], - [ - "лов", - "о" - ], - [ - "л", - "ово" - ], - [ - "ut", - "eur" - ], - [ - "ute", - "ur" - ], - [ - "ta", - "ire" - ], - [ - "t", - "aire" - ], - [ - "па", - "с" - ], - [ - "▁eas", - "iest" - ], - [ - "▁fam", - "iglia" - ], - [ - "N", - "ormal" - ], - [ - "▁d", - "alle" - ], - [ - "▁da", - "lle" - ], - [ - "▁dal", - "le" - ], - [ - "▁dall", - "e" - ], - [ - "▁n", - "ations" - ], - [ - "▁nation", - "s" - ], - [ - "▁nat", - "ions" - ], - [ - "r", - "p" - ], - [ - "th", - "ead" - ], - [ - "the", - "ad" - ], - [ - "t", - "head" - ], - [ - "▁обла", - "сті" - ], - [ - "▁Democr", - "atic" - ], - [ - "▁челов", - "е" - ], - [ - "мо", - "ж" - ], - [ - "▁г", - "ер" - ], - [ - "▁ге", - "р" - ], - [ - "▁", - "гер" - ], - [ - "▁small", - "est" - ], - [ - "▁Publish", - "ing" - ], - [ - "▁T", - "s" - ], - [ - "▁laugh", - "ed" - ], - [ - "ll", - "e" - ], - [ - "l", - "le" - ], - [ - "▁A", - "mt" - ], - [ - "▁Am", - "t" - ], - [ - "▁I", - "IS" - ], - [ - "▁II", - "S" - ], - [ - "FOR", - "M" - ], - [ - "F", - "ORM" - ], - [ - "Ma", - "g" - ], - [ - "M", - "ag" - ], - [ - "до", - "н" - ], - [ - "д", - "он" - ], - [ - "▁st", - "oria" - ], - [ - "▁stor", - "ia" - ], - [ - "▁sto", - "ria" - ], - [ - "▁organ", - "ized" - ], - [ - "▁organiz", - "ed" - ], - [ - "č", - "ní" - ], - [ - "▁o", - "x" - ], - [ - "▁", - "ox" - ], - [ - "ling", - "en" - ], - [ - "lin", - "gen" - ], - [ - "l", - "ingen" - ], - [ - "▁lu", - "ego" - ], - [ - "cc", - "ió" - ], - [ - "c", - "ció" - ], - [ - "▁re", - "ly" - ], - [ - "▁r", - "ely" - ], - [ - "▁rel", - "y" - ], - [ - "▁t", - "ussen" - ], - [ - "er", - "ten" - ], - [ - "ert", - "en" - ], - [ - "erte", - "n" - ], - [ - "▁hon", - "our" - ], - [ - "▁Cla", - "ude" - ], - [ - "▁Claud", - "e" - ], - [ - "▁Ko", - "rea" - ], - [ - "▁Kore", - "a" - ], - [ - "▁Kor", - "ea" - ], - [ - "▁Met", - "ropol" - ], - [ - "▁Metro", - "pol" - ], - [ - "Su", - "per" - ], - [ - "S", - "uper" - ], - [ - "ri", - "en" - ], - [ - "rie", - "n" - ], - [ - "r", - "ien" - ], - [ - "ér", - "ature" - ], - [ - "att", - "ro" - ], - [ - "attr", - "o" - ], - [ - "▁б", - "іль" - ], - [ - "▁бі", - "ль" - ], - [ - "▁", - "біль" - ], - [ - "▁Her", - "bert" - ], - [ - "▁aut", - "eurs" - ], - [ - "▁aute", - "urs" - ], - [ - "▁dar", - "auf" - ], - [ - "▁m", - "ental" - ], - [ - "▁men", - "tal" - ], - [ - "▁ment", - "al" - ], - [ - "▁r", - "ang" - ], - [ - "▁ra", - "ng" - ], - [ - "▁ran", - "g" - ], - [ - "▁s", - "ón" - ], - [ - "▁só", - "n" - ], - [ - "▁S", - "oph" - ], - [ - "▁So", - "ph" - ], - [ - ")\"", - "," - ], - [ - ")", - "\"," - ], - [ - "Des", - "criptor" - ], - [ - "prep", - "are" - ], - [ - "▁Land", - "kreis" - ], - [ - "H", - "C" - ], - [ - "cr", - "oss" - ], - [ - "cro", - "ss" - ], - [ - "c", - "ross" - ], - [ - "ли", - "за" - ], - [ - "▁Lo", - "gin" - ], - [ - "▁Log", - "in" - ], - [ - "▁", - "Login" - ], - [ - "on", - "en" - ], - [ - "one", - "n" - ], - [ - "o", - "nen" - ], - [ - "Fe", - "ature" - ], - [ - "▁m", - "useum" - ], - [ - "▁muse", - "um" - ], - [ - "▁", - "museum" - ], - [ - "ve", - "k" - ], - [ - "v", - "ek" - ], - [ - "▁Nel", - "son" - ], - [ - "▁re", - "jo" - ], - [ - "▁коман", - "ди" - ], - [ - "▁sum", - "mar" - ], - [ - "▁summ", - "ar" - ], - [ - "▁сле", - "ду" - ], - [ - "▁след", - "у" - ], - [ - "äm", - "p" - ], - [ - "ä", - "mp" - ], - [ - "▁G", - "as" - ], - [ - "▁Ga", - "s" - ], - [ - "во", - "м" - ], - [ - "в", - "ом" - ], - [ - "VAL", - "UE" - ], - [ - "in", - "ge" - ], - [ - "ing", - "e" - ], - [ - "per", - "iod" - ], - [ - "lass", - "en" - ], - [ - "las", - "sen" - ], - [ - "lasse", - "n" - ], - [ - "l", - "assen" - ], - [ - "áv", - "al" - ], - [ - "á", - "val" - ], - [ - "▁alt", - "ogether" - ], - [ - "um", - "ph" - ], - [ - "ump", - "h" - ], - [ - "ist", - "ro" - ], - [ - "istr", - "o" - ], - [ - "ą", - "ż" - ], - [ - "▁Ke", - "ep" - ], - [ - "▁Mar", - "co" - ], - [ - "▁Marc", - "o" - ], - [ - "▁ét", - "ant" - ], - [ - "▁D", - "re" - ], - [ - "▁Dr", - "e" - ], - [ - "ge", - "ometry" - ], - [ - "▁K", - "as" - ], - [ - "▁Ka", - "s" - ], - [ - "message", - "s" - ], - [ - "mess", - "ages" - ], - [ - "Co", - "ok" - ], - [ - "C", - "ook" - ], - [ - "▁S", - "ide" - ], - [ - "▁Si", - "de" - ], - [ - "▁Sid", - "e" - ], - [ - "▁", - "Side" - ], - [ - "▁ко", - "ми" - ], - [ - "▁ком", - "и" - ], - [ - "ст", - "ри" - ], - [ - "стр", - "и" - ], - [ - "с", - "три" - ], - [ - "▁ex", - "cess" - ], - [ - "▁exc", - "ess" - ], - [ - "▁Bi", - "ografia" - ], - [ - "XX", - "XX" - ], - [ - "XXX", - "X" - ], - [ - "X", - "XXX" - ], - [ - "▁N", - "ie" - ], - [ - "▁Ni", - "e" - ], - [ - "ven", - "dor" - ], - [ - "v", - "endor" - ], - [ - "xs", - "d" - ], - [ - "x", - "sd" - ], - [ - "Mil", - "l" - ], - [ - "M", - "ill" - ], - [ - "process", - "ing" - ], - [ - "▁Miss", - "ouri" - ], - [ - "▁perm", - "ett" - ], - [ - "▁permet", - "t" - ], - [ - "▁a", - "par" - ], - [ - "▁ap", - "ar" - ], - [ - "▁cro", - "wd" - ], - [ - "▁crow", - "d" - ], - [ - "fer", - "t" - ], - [ - "fe", - "rt" - ], - [ - "f", - "ert" - ], - [ - "▁D", - "ou" - ], - [ - "▁Do", - "u" - ], - [ - "r", - "í" - ], - [ - "▁C", - "C" - ], - [ - "▁", - "CC" - ], - [ - "▁pay", - "ment" - ], - [ - "▁", - "payment" - ], - [ - "▁Hol", - "lywood" - ], - [ - "▁V", - "irtual" - ], - [ - "▁", - "Virtual" - ], - [ - "▁sp", - "oken" - ], - [ - "▁spoke", - "n" - ], - [ - "▁spo", - "ken" - ], - [ - "▁t", - "ram" - ], - [ - "▁tr", - "am" - ], - [ - "▁tra", - "m" - ], - [ - "▁Comm", - "unity" - ], - [ - "▁Commun", - "ity" - ], - [ - "▁administr", - "ative" - ], - [ - "▁в", - "оло" - ], - [ - "▁во", - "ло" - ], - [ - "gi", - "or" - ], - [ - "gio", - "r" - ], - [ - "g", - "ior" - ], - [ - "vis", - "or" - ], - [ - "▁Укра", - "и" - ], - [ - "st", - "age" - ], - [ - "sta", - "ge" - ], - [ - "stag", - "e" - ], - [ - "▁For", - "mat" - ], - [ - "▁Form", - "at" - ], - [ - "▁", - "Format" - ], - [ - "▁conven", - "ient" - ], - [ - "Н", - "а" - ], - [ - "▁med", - "ian" - ], - [ - "▁media", - "n" - ], - [ - "▁medi", - "an" - ], - [ - "▁в", - "ра" - ], - [ - "▁", - "вра" - ], - [ - "▁Пре", - "ма" - ], - [ - "en", - "ig" - ], - [ - "eni", - "g" - ], - [ - "e", - "nig" - ], - [ - "▁Op", - "era" - ], - [ - "▁Oper", - "a" - ], - [ - "ré", - "s" - ], - [ - "r", - "és" - ], - [ - "▁f", - "mt" - ], - [ - "▁", - "fmt" - ], - [ - "▁effic", - "iency" - ], - [ - "ma", - "le" - ], - [ - "mal", - "e" - ], - [ - "m", - "ale" - ], - [ - "Ma", - "ster" - ], - [ - "M", - "aster" - ], - [ - "Ser", - "ies" - ], - [ - "Se", - "ries" - ], - [ - "S", - "eries" - ], - [ - "▁s", - "yd" - ], - [ - "▁sy", - "d" - ], - [ - "gener", - "ic" - ], - [ - "inter", - "val" - ], - [ - "▁e", - "fect" - ], - [ - "▁inwon", - "ers" - ], - [ - "лим", - "пи" - ], - [ - "ir", - "ement" - ], - [ - "ire", - "ment" - ], - [ - "Er", - "r" - ], - [ - "E", - "rr" - ], - [ - "ö", - "h" - ], - [ - "▁l", - "ying" - ], - [ - "▁ly", - "ing" - ], - [ - "▁", - "lying" - ], - [ - "▁S", - "ettings" - ], - [ - "▁Setting", - "s" - ], - [ - "▁", - "Settings" - ], - [ - "!", - "=" - ], - [ - "em", - "atic" - ], - [ - "emat", - "ic" - ], - [ - "arg", - "v" - ], - [ - "▁Bas", - "ic" - ], - [ - "▁", - "Basic" - ], - [ - "▁consider", - "ation" - ], - [ - "▁h", - "abe" - ], - [ - "▁ha", - "be" - ], - [ - "▁hab", - "e" - ], - [ - "-", - "%" - ], - [ - "▁mount", - "ains" - ], - [ - "▁mountain", - "s" - ], - [ - "▁pe", - "ak" - ], - [ - "▁f", - "allen" - ], - [ - "▁fall", - "en" - ], - [ - "▁fal", - "len" - ], - [ - "ed", - "ed" - ], - [ - "ede", - "d" - ], - [ - "e", - "ded" - ], - [ - "log", - "ic" - ], - [ - "▁mat", - "ched" - ], - [ - "▁match", - "ed" - ], - [ - "▁typ", - "ing" - ], - [ - "▁ty", - "ping" - ], - [ - ")}", - "," - ], - [ - ")", - "}," - ], - [ - "▁f", - "ancy" - ], - [ - "▁fan", - "cy" - ], - [ - "▁eleg", - "ant" - ], - [ - "ا", - "ل" - ], - [ - "▁уча", - "ст" - ], - [ - "▁Sa", - "rah" - ], - [ - "▁Sar", - "ah" - ], - [ - "▁V", - "erd" - ], - [ - "▁Ver", - "d" - ], - [ - "▁Ve", - "rd" - ], - [ - "▁t", - "ego" - ], - [ - "▁te", - "go" - ], - [ - "ru", - "les" - ], - [ - "rule", - "s" - ], - [ - "r", - "ules" - ], - [ - "▁mo", - "unted" - ], - [ - "▁mount", - "ed" - ], - [ - "▁і", - "м" - ], - [ - "ер", - "у" - ], - [ - "е", - "ру" - ], - [ - "st", - "off" - ], - [ - "sto", - "ff" - ], - [ - "fa", - "hren" - ], - [ - "fah", - "ren" - ], - [ - "fahr", - "en" - ], - [ - "f", - "ahren" - ], - [ - "dist", - "ance" - ], - [ - "d", - "istance" - ], - [ - "▁Lic", - "ense" - ], - [ - "▁LE", - "FT" - ], - [ - "▁", - "LEFT" - ], - [ - "▁w", - "p" - ], - [ - "▁", - "wp" - ], - [ - "/", - "{" - ], - [ - "▁am", - "azon" - ], - [ - "▁amaz", - "on" - ], - [ - "▁", - "amazon" - ], - [ - ">", - "&" - ], - [ - "▁els", - "ő" - ], - [ - "qu", - "arters" - ], - [ - "▁sh", - "ock" - ], - [ - "▁sho", - "ck" - ], - [ - "ni", - "ck" - ], - [ - "nic", - "k" - ], - [ - "n", - "ick" - ], - [ - "▁Arch", - "ite" - ], - [ - "▁S", - "quare" - ], - [ - "▁r", - "ates" - ], - [ - "▁ra", - "tes" - ], - [ - "▁rate", - "s" - ], - [ - "▁rat", - "es" - ], - [ - "io", - "re" - ], - [ - "ior", - "e" - ], - [ - "i", - "ore" - ], - [ - "▁N", - "at" - ], - [ - "▁Na", - "t" - ], - [ - "▁Char", - "lot" - ], - [ - "re", - "ichen" - ], - [ - "reich", - "en" - ], - [ - "rei", - "chen" - ], - [ - "reiche", - "n" - ], - [ - "▁var", - "iation" - ], - [ - "▁vari", - "ation" - ], - [ - "os", - "is" - ], - [ - "osi", - "s" - ], - [ - "li", - "fe" - ], - [ - "l", - "ife" - ], - [ - "sl", - "ide" - ], - [ - "s", - "lide" - ], - [ - "ab", - "i" - ], - [ - "a", - "bi" - ], - [ - "uk", - "i" - ], - [ - "u", - "ki" - ], - [ - "my", - "sq" - ], - [ - "mys", - "q" - ], - [ - "▁prim", - "itive" - ], - [ - "▁primit", - "ive" - ], - [ - "▁univers", - "itaire" - ], - [ - "LE", - "NG" - ], - [ - "ale", - "ż" - ], - [ - "eb", - "ook" - ], - [ - "e", - "book" - ], - [ - "s", - "yn" - ], - [ - "▁G", - "egen" - ], - [ - "▁Ge", - "gen" - ], - [ - "▁Geg", - "en" - ], - [ - "▁K", - "ü" - ], - [ - "▁а", - "ле" - ], - [ - "▁ал", - "е" - ], - [ - "▁L", - "ub" - ], - [ - "▁Lu", - "b" - ], - [ - "con", - "current" - ], - [ - "izz", - "ato" - ], - [ - "izza", - "to" - ], - [ - "▁st", - "ub" - ], - [ - "▁i", - "e" - ], - [ - "▁", - "ie" - ], - [ - "▁'", - "./" - ], - [ - "▁'.", - "/" - ], - [ - "co", - "d" - ], - [ - "c", - "od" - ], - [ - "▁intern", - "acional" - ], - [ - "▁G", - "las" - ], - [ - "▁Gl", - "as" - ], - [ - "▁Gla", - "s" - ], - [ - "▁m", - "are" - ], - [ - "▁ma", - "re" - ], - [ - "▁mar", - "e" - ], - [ - "▁N", - "eb" - ], - [ - "▁Ne", - "b" - ], - [ - "▁G", - "B" - ], - [ - "▁", - "GB" - ], - [ - "kw", - "args" - ], - [ - "▁a", - "ument" - ], - [ - "▁au", - "ment" - ], - [ - "WI", - "D" - ], - [ - "W", - "ID" - ], - [ - "▁ро", - "д" - ], - [ - "▁р", - "од" - ], - [ - "▁", - "род" - ], - [ - "p", - "unkt" - ], - [ - "▁G", - "rad" - ], - [ - "▁Gr", - "ad" - ], - [ - "▁Gra", - "d" - ], - [ - "▁", - "Grad" - ], - [ - "S", - "N" - ], - [ - "AM", - "P" - ], - [ - "A", - "MP" - ], - [ - "▁B", - "orn" - ], - [ - "▁Bo", - "rn" - ], - [ - "▁Bor", - "n" - ], - [ - "▁Guer", - "re" - ], - [ - "го", - "тов" - ], - [ - "▁med", - "io" - ], - [ - "▁medi", - "o" - ], - [ - "Me", - "d" - ], - [ - "M", - "ed" - ], - [ - "su", - "pp" - ], - [ - "sup", - "p" - ], - [ - "s", - "upp" - ], - [ - "act", - "ual" - ], - [ - "drop", - "down" - ], - [ - "▁ok", - "tober" - ], - [ - "▁", - "ř" - ], - [ - "▁circ", - "ular" - ], - [ - "▁cir", - "cular" - ], - [ - "▁circul", - "ar" - ], - [ - "▁s", - "kin" - ], - [ - "▁sk", - "in" - ], - [ - "▁ski", - "n" - ], - [ - "▁em", - "phas" - ], - [ - "▁emp", - "has" - ], - [ - "▁го", - "лов" - ], - [ - "▁голо", - "в" - ], - [ - "▁p", - "ue" - ], - [ - "▁pu", - "e" - ], - [ - "▁inform", - "ations" - ], - [ - "▁information", - "s" - ], - [ - "▁Wolf", - "gang" - ], - [ - "▁us", - "eless" - ], - [ - "▁use", - "less" - ], - [ - "и", - "т" - ], - [ - "▁Jo", - "an" - ], - [ - "▁б", - "ор" - ], - [ - "▁бо", - "р" - ], - [ - "▁", - "бор" - ], - [ - "▁G", - "lad" - ], - [ - "▁Gl", - "ad" - ], - [ - "▁Gla", - "d" - ], - [ - "▁K", - "now" - ], - [ - "▁Kn", - "ow" - ], - [ - "▁Kno", - "w" - ], - [ - "ké", - "nt" - ], - [ - "k", - "ént" - ], - [ - "sp", - "eed" - ], - [ - "spe", - "ed" - ], - [ - "▁Ke", - "vin" - ], - [ - "un", - "ft" - ], - [ - "▁ar", - "qu" - ], - [ - "▁", - "arqu" - ], - [ - "▁C", - "asa" - ], - [ - "▁Cas", - "a" - ], - [ - "▁Ca", - "sa" - ], - [ - "(.", - ".." - ], - [ - "(", - "..." - ], - [ - "▁rapid", - "ly" - ], - [ - "▁pro", - "ble" - ], - [ - "▁prob", - "le" - ], - [ - "▁probl", - "e" - ], - [ - "▁Ви", - "кипеди" - ], - [ - "že", - "n" - ], - [ - "ž", - "en" - ], - [ - "▁N", - "eben" - ], - [ - "▁Ne", - "ben" - ], - [ - "▁Neb", - "en" - ], - [ - "▁M", - "eter" - ], - [ - "▁Me", - "ter" - ], - [ - "▁Met", - "er" - ], - [ - "Child", - "ren" - ], - [ - "ce", - "m" - ], - [ - "c", - "em" - ], - [ - "ig", - "os" - ], - [ - "igo", - "s" - ], - [ - "aj", - "u" - ], - [ - "a", - "ju" - ], - [ - "▁Ret", - "rie" - ], - [ - "▁H", - "ell" - ], - [ - "▁He", - "ll" - ], - [ - "▁Hel", - "l" - ], - [ - "▁g", - "ig" - ], - [ - "▁gi", - "g" - ], - [ - "▁contro", - "vers" - ], - [ - "▁z", - "oom" - ], - [ - "▁zo", - "om" - ], - [ - "▁zoo", - "m" - ], - [ - "▁c", - "ens" - ], - [ - "▁ce", - "ns" - ], - [ - "▁alc", - "uni" - ], - [ - "▁He", - "ader" - ], - [ - "▁Head", - "er" - ], - [ - "▁", - "Header" - ], - [ - "Me", - "ta" - ], - [ - "Met", - "a" - ], - [ - "M", - "eta" - ], - [ - "Re", - "quired" - ], - [ - "▁ин", - "ститу" - ], - [ - "▁s", - "kup" - ], - [ - "▁sk", - "up" - ], - [ - "▁ing", - "les" - ], - [ - "ég", - "l" - ], - [ - "é", - "gl" - ], - [ - "bi", - "j" - ], - [ - "b", - "ij" - ], - [ - "▁t", - "ér" - ], - [ - "▁té", - "r" - ], - [ - "▁com", - "pag" - ], - [ - "▁comp", - "ag" - ], - [ - "▁comm", - "itted" - ], - [ - "▁commit", - "ted" - ], - [ - "▁process", - "ed" - ], - [ - "▁proc", - "essed" - ], - [ - "▁proces", - "sed" - ], - [ - "Lo", - "wer" - ], - [ - "L", - "ower" - ], - [ - "▁F", - "oreign" - ], - [ - "▁For", - "eign" - ], - [ - "▁Fore", - "ign" - ], - [ - "▁", - "Foreign" - ], - [ - "▁s", - "eq" - ], - [ - "▁se", - "q" - ], - [ - "▁", - "seq" - ], - [ - "sheet", - "s" - ], - [ - "she", - "ets" - ], - [ - "▁F", - "em" - ], - [ - "▁Fe", - "m" - ], - [ - "ho", - "z" - ], - [ - "h", - "oz" - ], - [ - "in", - "ks" - ], - [ - "ink", - "s" - ], - [ - "▁k", - "all" - ], - [ - "▁ka", - "ll" - ], - [ - "▁kal", - "l" - ], - [ - "vari", - "ant" - ], - [ - "▁li", - "bro" - ], - [ - "▁lib", - "ro" - ], - [ - "▁cl", - "icks" - ], - [ - "▁click", - "s" - ], - [ - "▁cli", - "cks" - ], - [ - "▁g", - "obierno" - ], - [ - "ie", - "gel" - ], - [ - "ieg", - "el" - ], - [ - "мо", - "го" - ], - [ - "м", - "ого" - ], - [ - "ge", - "me" - ], - [ - "gem", - "e" - ], - [ - "g", - "eme" - ], - [ - "▁t", - "ower" - ], - [ - "▁to", - "wer" - ], - [ - "▁par", - "ish" - ], - [ - "▁T", - "CP" - ], - [ - "▁l", - "s" - ], - [ - "▁", - "ls" - ], - [ - "▁n", - "ginx" - ], - [ - "▁ng", - "inx" - ], - [ - "▁", - "nginx" - ], - [ - "Na", - "N" - ], - [ - "▁D", - "ir" - ], - [ - "▁Di", - "r" - ], - [ - "▁", - "Dir" - ], - [ - "▁Begr", - "iffe" - ], - [ - "▁Begriff", - "e" - ], - [ - "ar", - "ie" - ], - [ - "ari", - "e" - ], - [ - "a", - "rie" - ], - [ - "ím", - "p" - ], - [ - "í", - "mp" - ], - [ - "ic", - "ios" - ], - [ - "ici", - "os" - ], - [ - "icio", - "s" - ], - [ - "i", - "cios" - ], - [ - "▁sh", - "aring" - ], - [ - "▁cin", - "éma" - ], - [ - "be", - "c" - ], - [ - "b", - "ec" - ], - [ - "RE", - "D" - ], - [ - "R", - "ED" - ], - [ - "▁K", - "ra" - ], - [ - "▁Kr", - "a" - ], - [ - "ab", - "ol" - ], - [ - "a", - "bol" - ], - [ - "▁fl", - "ux" - ], - [ - "▁flu", - "x" - ], - [ - "▁exp", - "ensive" - ], - [ - "▁су", - "ще" - ], - [ - "▁`", - "_" - ], - [ - "oc", - "z" - ], - [ - "o", - "cz" - ], - [ - "ли", - "ст" - ], - [ - "▁acqu", - "aint" - ], - [ - "▁w", - "ise" - ], - [ - "▁wis", - "e" - ], - [ - "▁", - "wise" - ], - [ - "▁pou", - "voir" - ], - [ - "▁pouv", - "oir" - ], - [ - "▁dev", - "ant" - ], - [ - "▁moment", - "um" - ], - [ - "im", - "mer" - ], - [ - "imm", - "er" - ], - [ - "▁C", - "oupe" - ], - [ - "▁Cou", - "pe" - ], - [ - "index", - "Of" - ], - [ - "▁does", - "nt" - ], - [ - "▁doesn", - "t" - ], - [ - "▁за", - "в" - ], - [ - "▁lic", - "ense" - ], - [ - "▁", - "â" - ], - [ - "CS", - "S" - ], - [ - "C", - "SS" - ], - [ - "▁r", - "ice" - ], - [ - "▁ric", - "e" - ], - [ - "▁ri", - "ce" - ], - [ - "▁", - "rice" - ], - [ - "Te", - "am" - ], - [ - "▁a", - "no" - ], - [ - "▁an", - "o" - ], - [ - "▁", - "ano" - ], - [ - "li", - "t" - ], - [ - "l", - "it" - ], - [ - "▁mer", - "ged" - ], - [ - "▁merge", - "d" - ], - [ - "▁C", - "ell" - ], - [ - "▁Ce", - "ll" - ], - [ - "▁Cel", - "l" - ], - [ - "▁", - "Cell" - ], - [ - "л", - "л" - ], - [ - "bo", - "y" - ], - [ - "b", - "oy" - ], - [ - "as", - "ts" - ], - [ - "ast", - "s" - ], - [ - "▁s", - "ell" - ], - [ - "▁se", - "ll" - ], - [ - "▁sel", - "l" - ], - [ - "▁gro", - "ße" - ], - [ - "▁groß", - "e" - ], - [ - "▁virt", - "uel" - ], - [ - "▁virtue", - "l" - ], - [ - "Can", - "cel" - ], - [ - "▁s", - "j" - ], - [ - "g", - "ment" - ], - [ - ".", - "<" - ], - [ - "ча", - "й" - ], - [ - "i", - "ë" - ], - [ - "ak", - "h" - ], - [ - "a", - "kh" - ], - [ - "iz", - "ers" - ], - [ - "ize", - "rs" - ], - [ - "izer", - "s" - ], - [ - "pr", - "it" - ], - [ - "p", - "rit" - ], - [ - "▁T", - "ib" - ], - [ - "▁Ti", - "b" - ], - [ - "▁elabor", - "ate" - ], - [ - "▁f", - "é" - ], - [ - "▁м", - "еди" - ], - [ - "▁ме", - "ди" - ], - [ - "LENG", - "TH" - ], - [ - "▁prim", - "arily" - ], - [ - "▁sc", - "ores" - ], - [ - "▁score", - "s" - ], - [ - "▁carry", - "ing" - ], - [ - "▁l", - "ake" - ], - [ - "▁la", - "ke" - ], - [ - "▁lak", - "e" - ], - [ - "com", - "pose" - ], - [ - "comp", - "ose" - ], - [ - "compos", - "e" - ], - [ - "▁Town", - "ship" - ], - [ - "un", - "ge" - ], - [ - "ung", - "e" - ], - [ - "▁al", - "berga" - ], - [ - "an", - "ych" - ], - [ - "any", - "ch" - ], - [ - "a", - "nych" - ], - [ - "qu", - "elle" - ], - [ - "que", - "lle" - ], - [ - "quel", - "le" - ], - [ - "q", - "uelle" - ], - [ - "▁Ar", - "k" - ], - [ - "▁p", - "ris" - ], - [ - "▁pr", - "is" - ], - [ - "▁pri", - "s" - ], - [ - "▁v", - "oll" - ], - [ - "▁vo", - "ll" - ], - [ - "▁vol", - "l" - ], - [ - "ш", - "ли" - ], - [ - "Valid", - "ation" - ], - [ - "▁ce", - "ux" - ], - [ - "▁pop", - "ulate" - ], - [ - "▁popula", - "te" - ], - [ - "▁popul", - "ate" - ], - [ - "\"", - "\r" - ], - [ - "▁fem", - "mes" - ], - [ - "▁femme", - "s" - ], - [ - "AN", - "G" - ], - [ - "A", - "NG" - ], - [ - "▁Desp", - "ite" - ], - [ - "вы", - "е" - ], - [ - "в", - "ые" - ], - [ - "is", - "ke" - ], - [ - "isk", - "e" - ], - [ - "i", - "ske" - ], - [ - "zu", - "g" - ], - [ - "z", - "ug" - ], - [ - "на", - "ча" - ], - [ - "▁h", - "atten" - ], - [ - "▁hat", - "ten" - ], - [ - "▁hatte", - "n" - ], - [ - "IN", - "SERT" - ], - [ - "Emp", - "loyee" - ], - [ - "▁mo", - "ments" - ], - [ - "▁moment", - "s" - ], - [ - "▁mom", - "ents" - ], - [ - "▁últ", - "ima" - ], - [ - "▁h", - "older" - ], - [ - "▁hold", - "er" - ], - [ - "▁ho", - "lder" - ], - [ - "▁hol", - "der" - ], - [ - "▁", - "holder" - ], - [ - "bl", - "ank" - ], - [ - "Col", - "lections" - ], - [ - "Collection", - "s" - ], - [ - "Collect", - "ions" - ], - [ - "ath", - "ers" - ], - [ - "ather", - "s" - ], - [ - "a", - "thers" - ], - [ - "▁g", - "rade" - ], - [ - "▁gr", - "ade" - ], - [ - "▁gra", - "de" - ], - [ - "▁grad", - "e" - ], - [ - "▁", - "grade" - ], - [ - "▁aff", - "airs" - ], - [ - "▁affair", - "s" - ], - [ - ".$", - "$" - ], - [ - ".", - "$$" - ], - [ - "▁d", - "elta" - ], - [ - "▁del", - "ta" - ], - [ - "▁", - "delta" - ], - [ - "▁Jug", - "end" - ], - [ - "▁españ", - "ol" - ], - [ - "▁O", - "UT" - ], - [ - "▁", - "OUT" - ], - [ - "▁mathemat", - "ical" - ], - [ - "▁m", - "ongo" - ], - [ - "▁mon", - "go" - ], - [ - "▁Ф", - "е" - ], - [ - "ul", - "ing" - ], - [ - "uli", - "ng" - ], - [ - "u", - "ling" - ], - [ - "▁re", - "volution" - ], - [ - "▁revol", - "ution" - ], - [ - "▁c", - "oin" - ], - [ - "▁co", - "in" - ], - [ - "▁sub", - "class" - ], - [ - "\"", - "=>" - ], - [ - "äch", - "e" - ], - [ - "ä", - "che" - ], - [ - "▁p", - "yg" - ], - [ - "▁py", - "g" - ], - [ - "ща", - "я" - ], - [ - "ill", - "ery" - ], - [ - "ille", - "ry" - ], - [ - "iller", - "y" - ], - [ - "▁com", - "enz" - ], - [ - "dep", - "th" - ], - [ - "▁c", - "él" - ], - [ - "▁re", - "size" - ], - [ - "▁res", - "ize" - ], - [ - "▁", - "resize" - ], - [ - "▁S", - "ame" - ], - [ - "▁Sam", - "e" - ], - [ - "▁Sa", - "me" - ], - [ - "▁st", - "rik" - ], - [ - "▁str", - "ik" - ], - [ - "▁stri", - "k" - ], - [ - "▁t", - "ir" - ], - [ - "▁ti", - "r" - ], - [ - "▁sc", - "arc" - ], - [ - "▁scar", - "c" - ], - [ - "▁M", - "ember" - ], - [ - "▁Mem", - "ber" - ], - [ - "▁", - "Member" - ], - [ - "sub", - "scribe" - ], - [ - "ó", - "ż" - ], - [ - "út", - "bol" - ], - [ - "ex", - "cept" - ], - [ - "▁dr", - "iving" - ], - [ - "▁dri", - "ving" - ], - [ - "▁driv", - "ing" - ], - [ - "ki", - "e" - ], - [ - "k", - "ie" - ], - [ - "zo", - "ny" - ], - [ - "zon", - "y" - ], - [ - "z", - "ony" - ], - [ - "ème", - "s" - ], - [ - "è", - "mes" - ], - [ - "Da", - "vid" - ], - [ - "D", - "avid" - ], - [ - "iss", - "ant" - ], - [ - "issa", - "nt" - ], - [ - "▁т", - "ы" - ], - [ - "▁", - "ты" - ], - [ - "▁é", - "lect" - ], - [ - "▁él", - "ect" - ], - [ - "▁re", - "name" - ], - [ - "▁r", - "ename" - ], - [ - "▁ren", - "ame" - ], - [ - "▁R", - "unning" - ], - [ - "▁Run", - "ning" - ], - [ - "▁", - "Running" - ], - [ - "▁inter", - "faces" - ], - [ - "▁interface", - "s" - ], - [ - "////////", - "////////" - ], - [ - "▁Wal", - "ker" - ], - [ - "▁Walk", - "er" - ], - [ - "▁soci", - "été" - ], - [ - "▁as", - "ks" - ], - [ - "▁ask", - "s" - ], - [ - "br", - "id" - ], - [ - "b", - "rid" - ], - [ - "▁je", - "we" - ], - [ - "▁se", - "ines" - ], - [ - "▁sein", - "es" - ], - [ - "▁seine", - "s" - ], - [ - "▁sei", - "nes" - ], - [ - "▁ag", - "ents" - ], - [ - "▁agent", - "s" - ], - [ - "▁M", - "Y" - ], - [ - "▁", - "MY" - ], - [ - "▁Law", - "rence" - ], - [ - "de", - "ss" - ], - [ - "des", - "s" - ], - [ - "d", - "ess" - ], - [ - "ie", - "sen" - ], - [ - "ies", - "en" - ], - [ - "iese", - "n" - ], - [ - "i", - "esen" - ], - [ - "▁людя", - "х" - ], - [ - "прав", - "и" - ], - [ - "пра", - "ви" - ], - [ - "▁anc", - "est" - ], - [ - "▁wel", - "che" - ], - [ - "ra", - "um" - ], - [ - "r", - "aum" - ], - [ - "▁o", - "rb" - ], - [ - "▁or", - "b" - ], - [ - "▁", - "orb" - ], - [ - "sc", - "al" - ], - [ - "s", - "cal" - ], - [ - "▁L", - "ear" - ], - [ - "▁Le", - "ar" - ], - [ - "▁w", - "ear" - ], - [ - "▁we", - "ar" - ], - [ - "▁s", - "lave" - ], - [ - "▁sl", - "ave" - ], - [ - "▁sla", - "ve" - ], - [ - "▁re", - "named" - ], - [ - "▁ren", - "amed" - ], - [ - "▁rename", - "d" - ], - [ - "če", - "n" - ], - [ - "č", - "en" - ], - [ - "ma", - "ste" - ], - [ - "mas", - "te" - ], - [ - "m", - "aste" - ], - [ - "ang", - "les" - ], - [ - "angle", - "s" - ], - [ - "▁Am", - "érica" - ], - [ - "▁t", - "i" - ], - [ - "▁", - "ti" - ], - [ - "▁dem", - "sel" - ], - [ - "▁bene", - "ath" - ], - [ - "bin", - "ary" - ], - [ - "b", - "inary" - ], - [ - "▁ed", - "ición" - ], - [ - "▁kil", - "omet" - ], - [ - "▁kilom", - "et" - ], - [ - "ui", - "ts" - ], - [ - "uit", - "s" - ], - [ - "u", - "its" - ], - [ - "▁cu", - "atro" - ], - [ - "▁ent", - "rance" - ], - [ - "▁entr", - "ance" - ], - [ - "ond", - "issement" - ], - [ - "▁b", - "ag" - ], - [ - "▁ba", - "g" - ], - [ - "▁", - "bag" - ], - [ - "▁Ar", - "men" - ], - [ - "▁Arm", - "en" - ], - [ - "ij", - "o" - ], - [ - "i", - "jo" - ], - [ - "▁L", - "ors" - ], - [ - "▁Lo", - "rs" - ], - [ - "▁Lor", - "s" - ], - [ - "▁demsel", - "ben" - ], - [ - "ê", - "m" - ], - [ - "▁dis", - "crete" - ], - [ - "▁prom", - "inent" - ], - [ - "▁J", - "ay" - ], - [ - "▁Ja", - "y" - ], - [ - "de", - "cor" - ], - [ - "dec", - "or" - ], - [ - "D", - "L" - ], - [ - "▁d", - "í" - ], - [ - "St", - "ruct" - ], - [ - "Str", - "uct" - ], - [ - "▁P", - "roduction" - ], - [ - "▁Produ", - "ction" - ], - [ - "▁Product", - "ion" - ], - [ - "th", - "ey" - ], - [ - "the", - "y" - ], - [ - "ar", - "ius" - ], - [ - "ari", - "us" - ], - [ - "sch", - "nitt" - ], - [ - "▁C", - "ou" - ], - [ - "▁Co", - "u" - ], - [ - "▁l", - "ex" - ], - [ - "▁le", - "x" - ], - [ - "▁", - "lex" - ], - [ - "y", - "outube" - ], - [ - "▁рабо", - "та" - ], - [ - "st", - "ation" - ], - [ - "sta", - "tion" - ], - [ - "stat", - "ion" - ], - [ - "se", - "p" - ], - [ - "s", - "ep" - ], - [ - "▁mi", - "rror" - ], - [ - "▁mir", - "ror" - ], - [ - "▁h", - "its" - ], - [ - "▁hit", - "s" - ], - [ - "▁hi", - "ts" - ], - [ - "▁Be", - "ck" - ], - [ - "at", - "ically" - ], - [ - "atic", - "ally" - ], - [ - "▁L", - "az" - ], - [ - "▁La", - "z" - ], - [ - "▁w", - "inner" - ], - [ - "▁win", - "ner" - ], - [ - "DE", - "X" - ], - [ - "D", - "EX" - ], - [ - "▁I", - "NT" - ], - [ - "▁IN", - "T" - ], - [ - "▁", - "INT" - ], - [ - "}^", - "{-" - ], - [ - "}^{", - "-" - ], - [ - "}", - "^{-" - ], - [ - "▁w", - "egen" - ], - [ - "▁we", - "gen" - ], - [ - "▁weg", - "en" - ], - [ - "ma", - "d" - ], - [ - "m", - "ad" - ], - [ - "An", - "gle" - ], - [ - "Ang", - "le" - ], - [ - "zi", - "ng" - ], - [ - "zin", - "g" - ], - [ - "z", - "ing" - ], - [ - "▁Bay", - "ern" - ], - [ - "▁Bayer", - "n" - ], - [ - "sa", - "l" - ], - [ - "s", - "al" - ], - [ - "äg", - "er" - ], - [ - "ä", - "ger" - ], - [ - "▁bus", - "y" - ], - [ - "▁st", - "ör" - ], - [ - "▁f", - "olk" - ], - [ - "▁fol", - "k" - ], - [ - "▁", - "folk" - ], - [ - "▁p", - "rix" - ], - [ - "▁pr", - "ix" - ], - [ - "▁pri", - "x" - ], - [ - "▁al", - "located" - ], - [ - "▁alloc", - "ated" - ], - [ - "▁allocate", - "d" - ], - [ - "▁p", - "t" - ], - [ - "▁", - "pt" - ], - [ - "af", - "fen" - ], - [ - "aff", - "en" - ], - [ - "a", - "ffen" - ], - [ - "cl", - "uster" - ], - [ - "clus", - "ter" - ], - [ - "▁com", - "plement" - ], - [ - "▁comp", - "lement" - ], - [ - "▁comple", - "ment" - ], - [ - "▁compl", - "ement" - ], - [ - "ár", - "s" - ], - [ - "á", - "rs" - ], - [ - "▁Amer", - "ika" - ], - [ - "рі", - "й" - ], - [ - "р", - "ій" - ], - [ - "▁val", - "ley" - ], - [ - "▁vall", - "ey" - ], - [ - "▁valle", - "y" - ], - [ - "▁ro", - "oms" - ], - [ - "▁room", - "s" - ], - [ - "▁", - "rooms" - ], - [ - "▁m", - "oi" - ], - [ - "▁mo", - "i" - ], - [ - ".\"", - "," - ], - [ - ".", - "\"," - ], - [ - ";;", - ";;" - ], - [ - "▁lo", - "west" - ], - [ - "▁low", - "est" - ], - [ - "no", - "g" - ], - [ - "n", - "og" - ], - [ - "▁land", - "et" - ], - [ - "▁lan", - "det" - ], - [ - "▁program", - "me" - ], - [ - "ch", - "io" - ], - [ - "chi", - "o" - ], - [ - "▁W", - "ährend" - ], - [ - "ánd", - "ez" - ], - [ - "▁дол", - "ж" - ], - [ - "▁o", - "uv" - ], - [ - "▁ou", - "v" - ], - [ - "▁", - "ouv" - ], - [ - "om", - "ány" - ], - [ - "▁Википеди", - "и" - ], - [ - "▁s", - "ó" - ], - [ - "▁ele", - "ktr" - ], - [ - "De", - "sc" - ], - [ - "Des", - "c" - ], - [ - "D", - "esc" - ], - [ - "▁Be", - "aut" - ], - [ - "▁Beau", - "t" - ], - [ - "на", - "р" - ], - [ - "н", - "ар" - ], - [ - "▁мо", - "же" - ], - [ - "▁мож", - "е" - ], - [ - "P", - "ierre" - ], - [ - "es", - "ota" - ], - [ - "eso", - "ta" - ], - [ - "▁oper", - "ated" - ], - [ - "▁opera", - "ted" - ], - [ - "▁operate", - "d" - ], - [ - "▁f", - "orte" - ], - [ - "▁for", - "te" - ], - [ - "▁fort", - "e" - ], - [ - "ри", - "с" - ], - [ - "р", - "ис" - ], - [ - "▁op", - "position" - ], - [ - "▁opp", - "osition" - ], - [ - "▁oppos", - "ition" - ], - [ - "al", - "ia" - ], - [ - "ali", - "a" - ], - [ - "a", - "lia" - ], - [ - "▁S", - "yl" - ], - [ - "▁Sy", - "l" - ], - [ - "get", - "Name" - ], - [ - "ве", - "ли" - ], - [ - "fi", - "k" - ], - [ - "f", - "ik" - ], - [ - "▁com", - "prom" - ], - [ - "▁comp", - "rom" - ], - [ - "▁compr", - "om" - ], - [ - "▁Text", - "View" - ], - [ - "▁", - "TextView" - ], - [ - "Sp", - "ring" - ], - [ - "S", - "pring" - ], - [ - "met", - "adata" - ], - [ - "meta", - "data" - ], - [ - "en", - "gu" - ], - [ - "eng", - "u" - ], - [ - "/", - "," - ], - [ - "▁car", - "ri" - ], - [ - "is", - "tol" - ], - [ - "ist", - "ol" - ], - [ - "isto", - "l" - ], - [ - "▁diag", - "onal" - ], - [ - "li", - "sta" - ], - [ - "list", - "a" - ], - [ - "lis", - "ta" - ], - [ - "l", - "ista" - ], - [ - "iz", - "en" - ], - [ - "ize", - "n" - ], - [ - "i", - "zen" - ], - [ - "▁re", - "nde" - ], - [ - "▁r", - "ende" - ], - [ - "▁ren", - "de" - ], - [ - "▁rend", - "e" - ], - [ - "gc", - "c" - ], - [ - "g", - "cc" - ], - [ - "be", - "ck" - ], - [ - "bec", - "k" - ], - [ - "li", - "us" - ], - [ - "l", - "ius" - ], - [ - "ir", - "al" - ], - [ - "ira", - "l" - ], - [ - "i", - "ral" - ], - [ - "Resol", - "ver" - ], - [ - "▁percent", - "age" - ], - [ - "▁at", - "tra" - ], - [ - "▁att", - "ra" - ], - [ - "▁attr", - "a" - ], - [ - "str", - "ings" - ], - [ - "string", - "s" - ], - [ - "wi", - "ąz" - ], - [ - "od", - "s" - ], - [ - "o", - "ds" - ], - [ - "во", - "лю" - ], - [ - "ę", - "ż" - ], - [ - "▁news", - "paper" - ], - [ - "▁newsp", - "aper" - ], - [ - "im", - "iter" - ], - [ - "imi", - "ter" - ], - [ - "imit", - "er" - ], - [ - "AB", - "C" - ], - [ - "A", - "BC" - ], - [ - "▁Man", - "chester" - ], - [ - "[", - "{" - ], - [ - "Ag", - "ent" - ], - [ - "Age", - "nt" - ], - [ - "A", - "gent" - ], - [ - "▁W", - "or" - ], - [ - "▁Wo", - "r" - ], - [ - "▁K", - "ath" - ], - [ - "▁Kat", - "h" - ], - [ - "▁Ka", - "th" - ], - [ - "▁по", - "ві" - ], - [ - "▁пов", - "і" - ], - [ - "▁ent", - "onces" - ], - [ - "▁n", - "iveau" - ], - [ - "at", - "ted" - ], - [ - "att", - "ed" - ], - [ - "atte", - "d" - ], - [ - "le", - "arn" - ], - [ - "lear", - "n" - ], - [ - "lea", - "rn" - ], - [ - "at", - "iques" - ], - [ - "ati", - "ques" - ], - [ - "atique", - "s" - ], - [ - "▁у", - "би" - ], - [ - "▁qu", - "indi" - ], - [ - "bin", - "ding" - ], - [ - "bind", - "ing" - ], - [ - "b", - "inding" - ], - [ - "▁import", - "ed" - ], - [ - "▁imp", - "orted" - ], - [ - "▁H", - "orn" - ], - [ - "▁Hor", - "n" - ], - [ - "▁Ho", - "rn" - ], - [ - "em", - "berg" - ], - [ - "ember", - "g" - ], - [ - "emb", - "erg" - ], - [ - "com", - "plex" - ], - [ - "comp", - "lex" - ], - [ - "comple", - "x" - ], - [ - "▁ne", - "ural" - ], - [ - "▁neu", - "ral" - ], - [ - "▁neur", - "al" - ], - [ - "in", - "formation" - ], - [ - "▁recogn", - "ition" - ], - [ - "in", - "gt" - ], - [ - "ing", - "t" - ], - [ - "▁inhab", - "itants" - ], - [ - "vu", - "e" - ], - [ - "v", - "ue" - ], - [ - "▁Be", - "völker" - ], - [ - "▁cur", - "ves" - ], - [ - "▁curve", - "s" - ], - [ - "▁curv", - "es" - ], - [ - "▁l", - "eb" - ], - [ - "▁le", - "b" - ], - [ - "▁", - "leb" - ], - [ - "ді", - "й" - ], - [ - "д", - "ій" - ], - [ - "▁s", - "ow" - ], - [ - "▁so", - "w" - ], - [ - "▁sent", - "iment" - ], - [ - "P", - "H" - ], - [ - "ra", - "che" - ], - [ - "rac", - "he" - ], - [ - "rach", - "e" - ], - [ - "r", - "ache" - ], - [ - "▁-", - "(" - ], - [ - "▁", - "-(" - ], - [ - "▁e", - "stable" - ], - [ - "▁est", - "able" - ], - [ - "▁es", - "table" - ], - [ - "▁estab", - "le" - ], - [ - "▁esta", - "ble" - ], - [ - "▁Ferd", - "inand" - ], - [ - "▁é", - "crit" - ], - [ - "▁éc", - "rit" - ], - [ - "▁prime", - "iro" - ], - [ - "▁t", - "ex" - ], - [ - "▁te", - "x" - ], - [ - "▁", - "tex" - ], - [ - "▁inter", - "mediate" - ], - [ - "ve", - "rage" - ], - [ - "ver", - "age" - ], - [ - "vera", - "ge" - ], - [ - "ib", - "us" - ], - [ - "i", - "bus" - ], - [ - "▁s", - "erves" - ], - [ - "▁ser", - "ves" - ], - [ - "▁serv", - "es" - ], - [ - "▁serve", - "s" - ], - [ - "iv", - "as" - ], - [ - "iva", - "s" - ], - [ - "i", - "vas" - ], - [ - "▁b", - "ru" - ], - [ - "▁br", - "u" - ], - [ - "▁", - "bru" - ], - [ - "▁l", - "um" - ], - [ - "▁lu", - "m" - ], - [ - "att", - "ice" - ], - [ - "atti", - "ce" - ], - [ - "ч", - "ный" - ], - [ - "▁D", - "res" - ], - [ - "▁Dr", - "es" - ], - [ - "▁Dre", - "s" - ], - [ - "▁v", - "ideos" - ], - [ - "▁video", - "s" - ], - [ - "▁vide", - "os" - ], - [ - "d", - "uration" - ], - [ - "▁a", - "bit" - ], - [ - "▁ab", - "it" - ], - [ - "▁e", - "gg" - ], - [ - "▁eg", - "g" - ], - [ - "ograph", - "ical" - ], - [ - "ographic", - "al" - ], - [ - "al", - "ph" - ], - [ - "ST", - "ATE" - ], - [ - "STAT", - "E" - ], - [ - "▁па", - "ра" - ], - [ - "▁пар", - "а" - ], - [ - "▁", - "пара" - ], - [ - "re", - "ading" - ], - [ - "read", - "ing" - ], - [ - "rea", - "ding" - ], - [ - "▁veh", - "icle" - ], - [ - "▁fort", - "une" - ], - [ - "ult", - "ats" - ], - [ - "▁St", - "oria" - ], - [ - "▁Sto", - "ria" - ], - [ - "mi", - "dt" - ], - [ - "mid", - "t" - ], - [ - "łą", - "cz" - ], - [ - "▁Mem", - "orial" - ], - [ - "▁v", - "as" - ], - [ - "▁va", - "s" - ], - [ - "▁", - "vas" - ], - [ - "▁з", - "ан" - ], - [ - "▁за", - "н" - ], - [ - "▁", - "зан" - ], - [ - "▁ut", - "ility" - ], - [ - "▁util", - "ity" - ], - [ - "▁ob", - "sc" - ], - [ - "▁obs", - "c" - ], - [ - "▁rel", - "acion" - ], - [ - "▁rela", - "cion" - ], - [ - "▁relac", - "ion" - ], - [ - "▁run", - "at" - ], - [ - "▁ru", - "nat" - ], - [ - "Re", - "lease" - ], - [ - "ta", - "ke" - ], - [ - "t", - "ake" - ], - [ - "▁O", - "liver" - ], - [ - "▁Ol", - "iver" - ], - [ - "▁Oliv", - "er" - ], - [ - "▁S", - "id" - ], - [ - "▁Si", - "d" - ], - [ - "ul", - "os" - ], - [ - "ulo", - "s" - ], - [ - "u", - "los" - ], - [ - "▁G", - "arc" - ], - [ - "▁Gar", - "c" - ], - [ - "▁Ga", - "rc" - ], - [ - "▁роз", - "та" - ], - [ - "▁S", - "ak" - ], - [ - "▁Sa", - "k" - ], - [ - "P", - "y" - ], - [ - "führ", - "t" - ], - [ - "f", - "ührt" - ], - [ - "▁tra", - "bal" - ], - [ - "▁trab", - "al" - ], - [ - "*", - "{" - ], - [ - "▁z", - "es" - ], - [ - "▁ze", - "s" - ], - [ - "▁", - "zes" - ], - [ - "▁sz", - "ere" - ], - [ - "▁szer", - "e" - ], - [ - "▁sze", - "re" - ], - [ - "▁v", - "arios" - ], - [ - "▁var", - "ios" - ], - [ - "▁vari", - "os" - ], - [ - "▁va", - "rios" - ], - [ - "▁o", - "tra" - ], - [ - "▁ot", - "ra" - ], - [ - "▁e", - "val" - ], - [ - "▁ev", - "al" - ], - [ - "▁", - "eval" - ], - [ - "▁situ", - "é" - ], - [ - "▁sit", - "ué" - ], - [ - "▁w", - "ounded" - ], - [ - "▁Vin", - "cent" - ], - [ - "▁вико", - "ри" - ], - [ - "▁en", - "code" - ], - [ - "▁enc", - "ode" - ], - [ - "▁", - "encode" - ], - [ - "Mod", - "al" - ], - [ - "Mo", - "dal" - ], - [ - "▁f", - "orb" - ], - [ - "▁for", - "b" - ], - [ - "▁fo", - "rb" - ], - [ - "▁dynam", - "ics" - ], - [ - "▁dynamic", - "s" - ], - [ - "▁de", - "pos" - ], - [ - "▁dep", - "os" - ], - [ - "ar", - "de" - ], - [ - "ard", - "e" - ], - [ - "▁street", - "s" - ], - [ - "▁stre", - "ets" - ], - [ - "▁K", - "omm" - ], - [ - "▁Kom", - "m" - ], - [ - "▁Ko", - "mm" - ], - [ - "=$", - "(" - ], - [ - "=", - "$(" - ], - [ - "▁по", - "вер" - ], - [ - "▁пов", - "ер" - ], - [ - "▁пове", - "р" - ], - [ - "▁d", - "ois" - ], - [ - "▁do", - "is" - ], - [ - "▁doi", - "s" - ], - [ - "▁v", - "itt" - ], - [ - "▁vi", - "tt" - ], - [ - "▁vit", - "t" - ], - [ - "▁automat", - "isch" - ], - [ - "▁re", - "load" - ], - [ - "▁", - "reload" - ], - [ - "▁Ver", - "walt" - ], - [ - "ber", - "o" - ], - [ - "be", - "ro" - ], - [ - "b", - "ero" - ], - [ - "▁h", - "ub" - ], - [ - "▁hu", - "b" - ], - [ - "▁m", - "os" - ], - [ - "▁mo", - "s" - ], - [ - "▁", - "mos" - ], - [ - "▁t", - "utto" - ], - [ - "▁tu", - "tto" - ], - [ - "▁tut", - "to" - ], - [ - "▁Freder", - "ick" - ], - [ - "ło", - "w" - ], - [ - "ł", - "ow" - ], - [ - "ant", - "ages" - ], - [ - "anta", - "ges" - ], - [ - "antage", - "s" - ], - [ - "aqu", - "e" - ], - [ - "a", - "que" - ], - [ - "pa", - "per" - ], - [ - "p", - "aper" - ], - [ - "▁ein", - "ige" - ], - [ - "`)", - "," - ], - [ - "`", - ")," - ], - [ - "d", - "j" - ], - [ - "▁P", - "le" - ], - [ - "▁Pl", - "e" - ], - [ - "▁%", - "," - ], - [ - "▁", - "%," - ], - [ - "▁B", - "itmap" - ], - [ - "▁Bit", - "map" - ], - [ - "▁", - "Bitmap" - ], - [ - "▁friend", - "ly" - ], - [ - "▁tr", - "uly" - ], - [ - "▁st", - "roke" - ], - [ - "▁str", - "oke" - ], - [ - "▁stro", - "ke" - ], - [ - "▁", - "stroke" - ], - [ - "ro", - "ph" - ], - [ - "rop", - "h" - ], - [ - "r", - "oph" - ], - [ - "▁en", - "gl" - ], - [ - "▁eng", - "l" - ], - [ - "▁", - "engl" - ], - [ - "▁c", - "off" - ], - [ - "▁co", - "ff" - ], - [ - "▁d", - "ust" - ], - [ - "▁du", - "st" - ], - [ - "▁dus", - "t" - ], - [ - "▁Jah", - "res" - ], - [ - "▁Jahr", - "es" - ], - [ - "▁Jahre", - "s" - ], - [ - "pp", - "i" - ], - [ - "p", - "pi" - ], - [ - "▁w", - "ys" - ], - [ - "▁wy", - "s" - ], - [ - "fa", - "ctor" - ], - [ - "fact", - "or" - ], - [ - "fac", - "tor" - ], - [ - "f", - "actor" - ], - [ - "sch", - "luss" - ], - [ - "▁дере", - "вня" - ], - [ - "▁дерев", - "ня" - ], - [ - "▁P", - "ast" - ], - [ - "▁Pa", - "st" - ], - [ - "▁Pas", - "t" - ], - [ - "▁до", - "ма" - ], - [ - "CO", - "M" - ], - [ - "C", - "OM" - ], - [ - "▁pu", - "eden" - ], - [ - "▁puede", - "n" - ], - [ - "▁pue", - "den" - ], - [ - "▁g", - "ift" - ], - [ - "▁gi", - "ft" - ], - [ - "▁G", - "la" - ], - [ - "▁Gl", - "a" - ], - [ - "▁trigger", - "ed" - ], - [ - "él", - "y" - ], - [ - "é", - "ly" - ], - [ - "ül", - "és" - ], - [ - "ü", - "lés" - ], - [ - "▁O", - "liv" - ], - [ - "▁Ol", - "iv" - ], - [ - "▁ver", - "so" - ], - [ - "▁vers", - "o" - ], - [ - "▁", - "verso" - ], - [ - "▁l", - "le" - ], - [ - "▁ll", - "e" - ], - [ - "▁", - "lle" - ], - [ - "▁G", - "li" - ], - [ - "▁Gl", - "i" - ], - [ - "▁L", - "td" - ], - [ - "o", - "a" - ], - [ - "▁territ", - "orio" - ], - [ - "ord", - "re" - ], - [ - "▁de", - "ck" - ], - [ - "▁dec", - "k" - ], - [ - "▁", - "deck" - ], - [ - "dr", - "a" - ], - [ - "d", - "ra" - ], - [ - "as", - "zt" - ], - [ - "asz", - "t" - ], - [ - "▁concern", - "ing" - ], - [ - "▁Add", - "itionally" - ], - [ - "▁kter", - "é" - ], - [ - "▁g", - "rund" - ], - [ - "▁gr", - "und" - ], - [ - "▁gru", - "nd" - ], - [ - "▁", - "grund" - ], - [ - "▁G", - "est" - ], - [ - "▁Ge", - "st" - ], - [ - "▁Ges", - "t" - ], - [ - "▁", - "Gest" - ], - [ - "▁mis", - "under" - ], - [ - "pr", - "et" - ], - [ - "pre", - "t" - ], - [ - "p", - "ret" - ], - [ - "──", - "──" - ], - [ - "▁re", - "putation" - ], - [ - "zi", - "a" - ], - [ - "z", - "ia" - ], - [ - "▁у", - "спе" - ], - [ - "▁ус", - "пе" - ], - [ - "▁esc", - "aped" - ], - [ - "▁escape", - "d" - ], - [ - "▁P", - "rag" - ], - [ - "▁Pr", - "ag" - ], - [ - "▁Pra", - "g" - ], - [ - "per", - "form" - ], - [ - "▁a", - "ustral" - ], - [ - "▁aust", - "ral" - ], - [ - "▁V", - "ater" - ], - [ - "▁Va", - "ter" - ], - [ - "ча", - "с" - ], - [ - "▁r", - "aces" - ], - [ - "▁ra", - "ces" - ], - [ - "▁race", - "s" - ], - [ - "▁rac", - "es" - ], - [ - "▁By", - "te" - ], - [ - "▁", - "Byte" - ], - [ - "Ma", - "sk" - ], - [ - "M", - "ask" - ], - [ - "▁Ter", - "rit" - ], - [ - "▁Terr", - "it" - ], - [ - "ст", - "ю" - ], - [ - "▁V", - "oci" - ], - [ - "▁Vo", - "ci" - ], - [ - "▁Fich", - "ier" - ], - [ - "▁Насе", - "лення" - ], - [ - "▁Unter", - "scheidung" - ], - [ - "te", - "enth" - ], - [ - "teen", - "th" - ], - [ - "▁pi", - "lot" - ], - [ - "▁pil", - "ot" - ], - [ - "▁j", - "i" - ], - [ - "▁", - "ji" - ], - [ - "▁дву", - "х" - ], - [ - "▁orient", - "ation" - ], - [ - "▁", - "orientation" - ], - [ - "ind", - "re" - ], - [ - "▁D", - "ort" - ], - [ - "▁Do", - "rt" - ], - [ - "▁Dor", - "t" - ], - [ - "ça", - "s" - ], - [ - "ç", - "as" - ], - [ - "п", - "ли" - ], - [ - "▁re", - "action" - ], - [ - "▁react", - "ion" - ], - [ - "▁cons", - "isting" - ], - [ - "▁consist", - "ing" - ], - [ - "▁fer", - "ro" - ], - [ - "ти", - "сти" - ], - [ - "ya", - "rd" - ], - [ - "yar", - "d" - ], - [ - "y", - "ard" - ], - [ - "▁с", - "ві" - ], - [ - "▁interpret", - "ation" - ], - [ - "i", - "ą" - ], - [ - "ra", - "h" - ], - [ - "r", - "ah" - ], - [ - "▁f", - "and" - ], - [ - "▁fa", - "nd" - ], - [ - "▁fan", - "d" - ], - [ - "Pub", - "lic" - ], - [ - "P", - "ublic" - ], - [ - "▁un", - "iverse" - ], - [ - "▁univers", - "e" - ], - [ - "▁ret", - "ir" - ], - [ - "▁cons", - "cious" - ], - [ - "ar", - "qu" - ], - [ - "▁w", - "aste" - ], - [ - "▁was", - "te" - ], - [ - "▁wa", - "ste" - ], - [ - "▁B", - "ib" - ], - [ - "▁Bi", - "b" - ], - [ - "ycler", - "View" - ], - [ - "▁list", - "ening" - ], - [ - "▁listen", - "ing" - ], - [ - "▁liste", - "ning" - ], - [ - "gle", - "ich" - ], - [ - "g", - "leich" - ], - [ - "nie", - "js" - ], - [ - "niej", - "s" - ], - [ - "▁cor", - "relation" - ], - [ - "▁correl", - "ation" - ], - [ - "▁corre", - "lation" - ], - [ - "▁rece", - "iver" - ], - [ - "▁receive", - "r" - ], - [ - "▁у", - "да" - ], - [ - "▁cour", - "age" - ], - [ - "▁cou", - "rage" - ], - [ - "uch", - "s" - ], - [ - "uc", - "hs" - ], - [ - "u", - "chs" - ], - [ - "fa", - "ss" - ], - [ - "fas", - "s" - ], - [ - "f", - "ass" - ], - [ - "▁ch", - "unk" - ], - [ - "▁", - "chunk" - ], - [ - "▁An", - "fang" - ], - [ - "▁gro", - "ßen" - ], - [ - "▁große", - "n" - ], - [ - "▁groß", - "en" - ], - [ - "cont", - "inue" - ], - [ - "continu", - "e" - ], - [ - "▁Warsza", - "wa" - ], - [ - "h", - "é" - ], - [ - "i", - "y" - ], - [ - "iv", - "ement" - ], - [ - "ive", - "ment" - ], - [ - "i", - "vement" - ], - [ - "▁", - "α" - ], - [ - "▁ex", - "posed" - ], - [ - "▁exp", - "osed" - ], - [ - "▁expos", - "ed" - ], - [ - "▁expose", - "d" - ], - [ - "▁z", - "ahl" - ], - [ - "▁za", - "hl" - ], - [ - "▁", - "zahl" - ], - [ - "▁sa", - "cr" - ], - [ - "▁sac", - "r" - ], - [ - "▁Lo", - "oks" - ], - [ - "▁Look", - "s" - ], - [ - "▁e", - "ager" - ], - [ - "en", - "ten" - ], - [ - "ent", - "en" - ], - [ - "ente", - "n" - ], - [ - "e", - "nten" - ], - [ - "C", - "ursor" - ], - [ - "/", - "_" - ], - [ - "ix", - "a" - ], - [ - "i", - "xa" - ], - [ - "ре", - "ла" - ], - [ - "зна", - "ча" - ], - [ - "з", - "нача" - ], - [ - "▁фамили", - "ей" - ], - [ - "▁ar", - "gent" - ], - [ - "▁arg", - "ent" - ], - [ - "▁", - "argent" - ], - [ - "▁An", - "ders" - ], - [ - "▁And", - "ers" - ], - [ - "œuv", - "re" - ], - [ - "▁I", - "sa" - ], - [ - "▁Is", - "a" - ], - [ - "мен", - "та" - ], - [ - "мент", - "а" - ], - [ - "▁ad", - "vers" - ], - [ - "▁adv", - "ers" - ], - [ - "ri", - "ction" - ], - [ - "ric", - "tion" - ], - [ - "rict", - "ion" - ], - [ - "r", - "iction" - ], - [ - "G", - "P" - ], - [ - "▁п", - "ісля" - ], - [ - "▁pre", - "serve" - ], - [ - "▁pres", - "erve" - ], - [ - "▁G", - "arden" - ], - [ - "▁Gar", - "den" - ], - [ - "▁Gard", - "en" - ], - [ - "R", - "ate" - ], - [ - "ap", - "rès" - ], - [ - "a", - "près" - ], - [ - "▁read", - "able" - ], - [ - "in", - "du" - ], - [ - "ind", - "u" - ], - [ - "▁s", - "kill" - ], - [ - "▁sk", - "ill" - ], - [ - "▁ski", - "ll" - ], - [ - "▁hel", - "ping" - ], - [ - "▁help", - "ing" - ], - [ - "ograph", - "ique" - ], - [ - "cl", - "ing" - ], - [ - "cli", - "ng" - ], - [ - "c", - "ling" - ], - [ - "olog", - "ist" - ], - [ - "▁Fil", - "ter" - ], - [ - "▁", - "Filter" - ], - [ - "▁f", - "inger" - ], - [ - "▁fin", - "ger" - ], - [ - "▁V", - "all" - ], - [ - "▁Val", - "l" - ], - [ - "▁Va", - "ll" - ], - [ - "▁Pol", - "ish" - ], - [ - "▁Po", - "lish" - ], - [ - "l", - "g" - ], - [ - "▁Famil", - "ien" - ], - [ - "▁Familie", - "n" - ], - [ - "▁w", - "aters" - ], - [ - "▁water", - "s" - ], - [ - "▁wa", - "ters" - ], - [ - "▁wat", - "ers" - ], - [ - "▁pse", - "ud" - ], - [ - "az", - "a" - ], - [ - "a", - "za" - ], - [ - "_", - ")" - ], - [ - "AR", - "Y" - ], - [ - "A", - "RY" - ], - [ - "▁с", - "реди" - ], - [ - "▁сред", - "и" - ], - [ - "▁сре", - "ди" - ], - [ - "▁M", - "ust" - ], - [ - "▁Mus", - "t" - ], - [ - "▁Mu", - "st" - ], - [ - "▁B", - "od" - ], - [ - "▁Bo", - "d" - ], - [ - "an", - "on" - ], - [ - "ano", - "n" - ], - [ - "a", - "non" - ], - [ - "▁l", - "ado" - ], - [ - "▁la", - "do" - ], - [ - "▁lad", - "o" - ], - [ - "▁t", - "ight" - ], - [ - "im", - "en" - ], - [ - "ime", - "n" - ], - [ - "i", - "men" - ], - [ - "ap", - "pen" - ], - [ - "app", - "en" - ], - [ - "appe", - "n" - ], - [ - "a", - "ppen" - ], - [ - "fr", - "ames" - ], - [ - "frame", - "s" - ], - [ - "fra", - "mes" - ], - [ - "fram", - "es" - ], - [ - "in", - "gers" - ], - [ - "ing", - "ers" - ], - [ - "inger", - "s" - ], - [ - "inge", - "rs" - ], - [ - "▁CO", - "VID" - ], - [ - "▁з", - "і" - ], - [ - "▁", - "зі" - ], - [ - "▁с", - "ве" - ], - [ - "▁ц", - "ь" - ], - [ - "▁", - "ць" - ], - [ - "▁L", - "eft" - ], - [ - "▁Le", - "ft" - ], - [ - "▁", - "Left" - ], - [ - "]]", - ";" - ], - [ - "]", - "];" - ], - [ - "ч", - "ь" - ], - [ - "фи", - "ка" - ], - [ - "▁с", - "ло" - ], - [ - "▁", - "сло" - ], - [ - "▁п", - "і" - ], - [ - "▁", - "пі" - ], - [ - "▁ex", - "iste" - ], - [ - "▁exist", - "e" - ], - [ - "▁Atl", - "antic" - ], - [ - "▁maintain", - "ed" - ], - [ - "▁ir", - "re" - ], - [ - "▁an", - "née" - ], - [ - "▁ann", - "ée" - ], - [ - "▁", - "année" - ], - [ - "▁comm", - "ented" - ], - [ - "▁comment", - "ed" - ], - [ - "ве", - "ро" - ], - [ - "вер", - "о" - ], - [ - "ber", - "ta" - ], - [ - "bert", - "a" - ], - [ - "b", - "erta" - ], - [ - "▁L", - "ad" - ], - [ - "▁La", - "d" - ], - [ - "▁U", - "pon" - ], - [ - "▁Up", - "on" - ], - [ - "▁p", - "ause" - ], - [ - "▁pa", - "use" - ], - [ - "▁pau", - "se" - ], - [ - "mi", - "ll" - ], - [ - "mil", - "l" - ], - [ - "m", - "ill" - ], - [ - "op", - "ter" - ], - [ - "opt", - "er" - ], - [ - "U", - "K" - ], - [ - "ре", - "с" - ], - [ - "р", - "ес" - ], - [ - "нцикло", - "педи" - ], - [ - "▁along", - "side" - ], - [ - "▁ro", - "bot" - ], - [ - "▁rob", - "ot" - ], - [ - "▁f", - "ert" - ], - [ - "▁fe", - "rt" - ], - [ - "▁fer", - "t" - ], - [ - "▁", - "fert" - ], - [ - "▁m", - "oy" - ], - [ - "▁mo", - "y" - ], - [ - "▁a", - "de" - ], - [ - "▁ad", - "e" - ], - [ - "▁", - "ade" - ], - [ - "Map", - "per" - ], - [ - "Mapp", - "er" - ], - [ - "Ma", - "pper" - ], - [ - "M", - "apper" - ], - [ - ")-", - ">" - ], - [ - ")", - "->" - ], - [ - "ig", - "ua" - ], - [ - "igu", - "a" - ], - [ - "ét", - "ique" - ], - [ - "т", - "ка" - ], - [ - "al", - "ias" - ], - [ - "ali", - "as" - ], - [ - "alia", - "s" - ], - [ - "a", - "lias" - ], - [ - "▁о", - "ри" - ], - [ - "▁ор", - "и" - ], - [ - "▁M", - "agn" - ], - [ - "▁Ma", - "gn" - ], - [ - "▁Mag", - "n" - ], - [ - "▁gehör", - "te" - ], - [ - "▁gehört", - "e" - ], - [ - "im", - "b" - ], - [ - "i", - "mb" - ], - [ - ")}", - "{\\" - ], - [ - ")}{", - "\\" - ], - [ - ")", - "}{\\" - ], - [ - "▁Wikip", - "édia" - ], - [ - "▁u", - "rs" - ], - [ - "▁ur", - "s" - ], - [ - "▁", - "urs" - ], - [ - "▁e", - "nde" - ], - [ - "▁en", - "de" - ], - [ - "▁end", - "e" - ], - [ - "▁", - "ende" - ], - [ - "le", - "b" - ], - [ - "l", - "eb" - ], - [ - "▁G", - "C" - ], - [ - "▁", - "GC" - ], - [ - "H", - "ol" - ], - [ - "an", - "cing" - ], - [ - "anc", - "ing" - ], - [ - "anci", - "ng" - ], - [ - "Un", - "ion" - ], - [ - "Uni", - "on" - ], - [ - "▁ten", - "ía" - ], - [ - "T", - "T" - ], - [ - "▁e", - "state" - ], - [ - "▁est", - "ate" - ], - [ - "▁esta", - "te" - ], - [ - "▁estat", - "e" - ], - [ - "h", - "á" - ], - [ - "▁по", - "лі" - ], - [ - "▁пол", - "і" - ], - [ - "ul", - "tan" - ], - [ - "ult", - "an" - ], - [ - "▁H", - "ockey" - ], - [ - "ul", - "se" - ], - [ - "uls", - "e" - ], - [ - "▁cho", - "ices" - ], - [ - "▁choice", - "s" - ], - [ - "sch", - "er" - ], - [ - "sc", - "her" - ], - [ - "sche", - "r" - ], - [ - "s", - "cher" - ], - [ - "▁[", - "]," - ], - [ - "▁[]", - "," - ], - [ - "▁pot", - "entially" - ], - [ - "▁potential", - "ly" - ], - [ - "▁Ü", - "bers" - ], - [ - "▁Über", - "s" - ], - [ - "▁ad", - "mit" - ], - [ - "▁adm", - "it" - ], - [ - "Com", - "ment" - ], - [ - "Comm", - "ent" - ], - [ - "ст", - "я" - ], - [ - "с", - "тя" - ], - [ - "▁V", - "ien" - ], - [ - "▁Vi", - "en" - ], - [ - "▁Vie", - "n" - ], - [ - "▁ц", - "і" - ], - [ - "▁", - "ці" - ], - [ - "▁per", - "mut" - ], - [ - "▁perm", - "ut" - ], - [ - "c", - "gi" - ], - [ - "▁cr", - "ít" - ], - [ - "Con", - "sole" - ], - [ - "Cons", - "ole" - ], - [ - "ct", - "ic" - ], - [ - "▁ok", - "res" - ], - [ - "aw", - "k" - ], - [ - "foot", - "ball" - ], - [ - "ou", - "est" - ], - [ - "o", - "uest" - ], - [ - "CT", - "YPE" - ], - [ - "C", - "TYPE" - ], - [ - "olog", - "ique" - ], - [ - "▁const", - "it" - ], - [ - "▁cons", - "tit" - ], - [ - "▁inter", - "ests" - ], - [ - "▁interest", - "s" - ], - [ - "▁Pro", - "gress" - ], - [ - "▁", - "Progress" - ], - [ - "▁M", - "enu" - ], - [ - "▁Me", - "nu" - ], - [ - "▁Men", - "u" - ], - [ - "▁", - "Menu" - ], - [ - "▁tak", - "é" - ], - [ - "▁ta", - "ké" - ], - [ - "▁As", - "ian" - ], - [ - "▁Asia", - "n" - ], - [ - "▁за", - "щи" - ], - [ - "▁young", - "er" - ], - [ - "▁w", - "ished" - ], - [ - "▁wish", - "ed" - ], - [ - "▁wis", - "hed" - ], - [ - "▁S", - "ort" - ], - [ - "▁So", - "rt" - ], - [ - "▁Sor", - "t" - ], - [ - "▁", - "Sort" - ], - [ - "▁aud", - "ience" - ], - [ - "▁audi", - "ence" - ], - [ - "am", - "ba" - ], - [ - "amb", - "a" - ], - [ - "▁gehör", - "t" - ], - [ - "▁K", - "ansas" - ], - [ - "ya", - "ume" - ], - [ - "▁Prof", - "essional" - ], - [ - "â", - "ce" - ], - [ - "▁f", - "atto" - ], - [ - "▁fa", - "tto" - ], - [ - "▁fat", - "to" - ], - [ - "to", - "d" - ], - [ - "t", - "od" - ], - [ - "▁data", - "sets" - ], - [ - "▁datas", - "ets" - ], - [ - "▁dataset", - "s" - ], - [ - "▁f", - "are" - ], - [ - "▁far", - "e" - ], - [ - "▁fa", - "re" - ], - [ - "▁", - "fare" - ], - [ - "▁w", - "aves" - ], - [ - "▁wave", - "s" - ], - [ - "▁wa", - "ves" - ], - [ - "~", - "/" - ], - [ - "▁measure", - "ment" - ], - [ - "▁w", - "ol" - ], - [ - "▁wo", - "l" - ], - [ - "▁", - "wol" - ], - [ - "ind", - "ust" - ], - [ - "indu", - "st" - ], - [ - "▁strugg", - "ling" - ], - [ - "▁pull", - "ed" - ], - [ - "▁pul", - "led" - ], - [ - "▁car", - "atter" - ], - [ - "▁Ex", - "terne" - ], - [ - "▁Ext", - "erne" - ], - [ - "▁Extern", - "e" - ], - [ - "▁дей", - "стви" - ], - [ - "cn", - "t" - ], - [ - "c", - "nt" - ], - [ - "li", - "ches" - ], - [ - "lic", - "hes" - ], - [ - "lich", - "es" - ], - [ - "liche", - "s" - ], - [ - "▁Pos", - "sible" - ], - [ - "▁Poss", - "ible" - ], - [ - "▁fa", - "ced" - ], - [ - "▁face", - "d" - ], - [ - "▁fac", - "ed" - ], - [ - "▁hypoth", - "esis" - ], - [ - "▁kil", - "om" - ], - [ - "▁n", - "är" - ], - [ - "▁nä", - "r" - ], - [ - "bo", - "olean" - ], - [ - "P", - "Y" - ], - [ - "am", - "pa" - ], - [ - "amp", - "a" - ], - [ - "▁k", - "iss" - ], - [ - "▁ki", - "ss" - ], - [ - "▁kis", - "s" - ], - [ - "▁as", - "tero" - ], - [ - "▁ast", - "ero" - ], - [ - "▁neg", - "li" - ], - [ - "am", - "ents" - ], - [ - "ament", - "s" - ], - [ - "amen", - "ts" - ], - [ - "a", - "ments" - ], - [ - "▁S", - "tu" - ], - [ - "▁St", - "u" - ], - [ - "at", - "ó" - ], - [ - "a", - "tó" - ], - [ - "▁Const", - "itution" - ], - [ - "▁inter", - "pol" - ], - [ - "▁Un", - "able" - ], - [ - "▁Una", - "ble" - ], - [ - "▁p", - "is" - ], - [ - "▁pi", - "s" - ], - [ - "▁", - "pis" - ], - [ - "▁p", - "arc" - ], - [ - "▁par", - "c" - ], - [ - "▁pa", - "rc" - ], - [ - "\"]", - ")" - ], - [ - "\"", - "])" - ], - [ - "ple", - "r" - ], - [ - "pl", - "er" - ], - [ - "p", - "ler" - ], - [ - "▁aut", - "ory" - ], - [ - "▁auto", - "ry" - ], - [ - "▁autor", - "y" - ], - [ - "▁alg", - "unos" - ], - [ - "yw", - "na" - ], - [ - "})", - ")" - ], - [ - "}", - "))" - ], - [ - "▁f", - "alls" - ], - [ - "▁fall", - "s" - ], - [ - "▁fal", - "ls" - ], - [ - "▁", - "falls" - ], - [ - "▁é", - "quip" - ], - [ - "▁e", - "mit" - ], - [ - "▁em", - "it" - ], - [ - "▁", - "emit" - ], - [ - "▁pro", - "fil" - ], - [ - "▁prof", - "il" - ], - [ - "ge", - "ts" - ], - [ - "get", - "s" - ], - [ - "g", - "ets" - ], - [ - "ф", - "о" - ], - [ - "▁Milit", - "ary" - ], - [ - "▁nombre", - "ux" - ], - [ - "oc", - "t" - ], - [ - "o", - "ct" - ], - [ - "Re", - "place" - ], - [ - "Rep", - "lace" - ], - [ - "▁se", - "asons" - ], - [ - "▁season", - "s" - ], - [ - "▁ch", - "âteau" - ], - [ - "▁type", - "of" - ], - [ - "▁", - "typeof" - ], - [ - "po", - "lit" - ], - [ - "pol", - "it" - ], - [ - "p", - "olit" - ], - [ - "▁r", - "and" - ], - [ - "▁ra", - "nd" - ], - [ - "▁ran", - "d" - ], - [ - "▁", - "rand" - ], - [ - "▁qu", - "ar" - ], - [ - "▁erst", - "mals" - ], - [ - "си", - "ни" - ], - [ - "▁pay", - "load" - ], - [ - "▁", - "payload" - ], - [ - "П", - "о" - ], - [ - "кі", - "н" - ], - [ - "к", - "ін" - ], - [ - "re", - "po" - ], - [ - "rep", - "o" - ], - [ - "▁P", - "av" - ], - [ - "▁Pa", - "v" - ], - [ - "Sc", - "ore" - ], - [ - "S", - "core" - ], - [ - "er", - "ves" - ], - [ - "erv", - "es" - ], - [ - "erve", - "s" - ], - [ - "▁soll", - "te" - ], - [ - "▁мі", - "ж" - ], - [ - "éb", - "ec" - ], - [ - "é", - "bec" - ], - [ - "▁c", - "lip" - ], - [ - "▁cl", - "ip" - ], - [ - "▁cli", - "p" - ], - [ - "▁", - "clip" - ], - [ - "▁N", - "ice" - ], - [ - "▁Nic", - "e" - ], - [ - "▁Ni", - "ce" - ], - [ - "▁n", - "eben" - ], - [ - "▁ne", - "ben" - ], - [ - "▁ass", - "ass" - ], - [ - "it", - "ories" - ], - [ - "ito", - "ries" - ], - [ - "itor", - "ies" - ], - [ - "itori", - "es" - ], - [ - "▁un", - "ity" - ], - [ - "▁unit", - "y" - ], - [ - "▁", - "unity" - ], - [ - "▁е", - "н" - ], - [ - "▁", - "ен" - ], - [ - "▁Inst", - "itut" - ], - [ - "▁Instit", - "ut" - ], - [ - "▁", - "Institut" - ], - [ - "▁intern", - "ationale" - ], - [ - "▁international", - "e" - ], - [ - "▁на", - "ук" - ], - [ - "▁нау", - "к" - ], - [ - "▁com", - "and" - ], - [ - "▁kle", - "ine" - ], - [ - "▁klein", - "e" - ], - [ - "▁adj", - "acent" - ], - [ - "▁deliver", - "ed" - ], - [ - "▁ш", - "е" - ], - [ - "▁", - "ше" - ], - [ - "зе", - "м" - ], - [ - "з", - "ем" - ], - [ - "▁c", - "ot" - ], - [ - "▁co", - "t" - ], - [ - "▁", - "cot" - ], - [ - "vis", - "ual" - ], - [ - "ва", - "ет" - ], - [ - "▁C", - "ensus" - ], - [ - "\\", - "_" - ], - [ - "▁territ", - "ory" - ], - [ - "чи", - "л" - ], - [ - "ч", - "ил" - ], - [ - "ч", - "ные" - ], - [ - "fl", - "utter" - ], - [ - "Did", - "Load" - ], - [ - "Document", - "s" - ], - [ - "Doc", - "uments" - ], - [ - "▁d", - "ob" - ], - [ - "▁do", - "b" - ], - [ - "▁", - "dob" - ], - [ - "Br", - "e" - ], - [ - "B", - "re" - ], - [ - "an", - "imate" - ], - [ - "ani", - "mate" - ], - [ - "anim", - "ate" - ], - [ - "▁b", - "iz" - ], - [ - "▁bi", - "z" - ], - [ - "▁b", - "ata" - ], - [ - "▁ba", - "ta" - ], - [ - "▁bat", - "a" - ], - [ - "▁S", - "U" - ], - [ - "▁", - "SU" - ], - [ - "es", - "o" - ], - [ - "e", - "so" - ], - [ - "▁p", - "riority" - ], - [ - "▁prior", - "ity" - ], - [ - "vá", - "n" - ], - [ - "v", - "án" - ], - [ - "ir", - "as" - ], - [ - "ira", - "s" - ], - [ - "i", - "ras" - ], - [ - "▁char", - "ged" - ], - [ - "▁charge", - "d" - ], - [ - "▁charg", - "ed" - ], - [ - "▁M", - "icro" - ], - [ - "▁Mi", - "cro" - ], - [ - "▁Mic", - "ro" - ], - [ - "at", - "oire" - ], - [ - "ato", - "ire" - ], - [ - "a", - "toire" - ], - [ - "че", - "р" - ], - [ - "ч", - "ер" - ], - [ - "ab", - "ad" - ], - [ - "aba", - "d" - ], - [ - "a", - "bad" - ], - [ - "ur", - "u" - ], - [ - "u", - "ru" - ], - [ - "▁v", - "š" - ], - [ - "dir", - "e" - ], - [ - "di", - "re" - ], - [ - "d", - "ire" - ], - [ - "▁Tw", - "itter" - ], - [ - "▁м", - "ето" - ], - [ - "▁ме", - "то" - ], - [ - "▁мет", - "о" - ], - [ - ").", - "." - ], - [ - ")", - ".." - ], - [ - "▁Ц", - "ент" - ], - [ - "▁ent", - "wick" - ], - [ - "▁M", - "ind" - ], - [ - "▁Min", - "d" - ], - [ - "▁Mi", - "nd" - ], - [ - "▁ф", - "унк" - ], - [ - "F", - "uture" - ], - [ - "ls", - "t" - ], - [ - "l", - "st" - ], - [ - "ło", - "ż" - ], - [ - "fl", - "i" - ], - [ - "f", - "li" - ], - [ - "t", - "ensor" - ], - [ - "▁top", - "ology" - ], - [ - "▁ar", - "te" - ], - [ - "▁art", - "e" - ], - [ - "▁", - "arte" - ], - [ - "ER", - "T" - ], - [ - "E", - "RT" - ], - [ - "▁var", - "iance" - ], - [ - "▁vari", - "ance" - ], - [ - "Im", - "ages" - ], - [ - "Image", - "s" - ], - [ - "▁(", - "@" - ], - [ - "▁", - "(@" - ], - [ - "Array", - "List" - ], - [ - "O", - "C" - ], - [ - "▁Де", - "мо" - ], - [ - "auc", - "oup" - ], - [ - "▁de", - "notes" - ], - [ - "▁den", - "otes" - ], - [ - "▁denote", - "s" - ], - [ - "im", - "on" - ], - [ - "imo", - "n" - ], - [ - "i", - "mon" - ], - [ - "њ", - "и" - ], - [ - "▁Prz", - "yp" - ], - [ - "▁Z", - "ag" - ], - [ - "▁Za", - "g" - ], - [ - "▁ди", - "ре" - ], - [ - "▁Similar", - "ly" - ], - [ - "б", - "ро" - ], - [ - "▁mil", - "itaire" - ], - [ - "▁milit", - "aire" - ], - [ - "▁т", - "ому" - ], - [ - "▁то", - "му" - ], - [ - "▁том", - "у" - ], - [ - "▁", - "тому" - ], - [ - "▁John", - "ny" - ], - [ - "▁Мекси", - "ку" - ], - [ - "ћ", - "а" - ], - [ - "Su", - "pp" - ], - [ - "S", - "upp" - ], - [ - "▁jun", - "ior" - ], - [ - "▁junio", - "r" - ], - [ - "▁juni", - "or" - ], - [ - "ol", - "tre" - ], - [ - "olt", - "re" - ], - [ - "o", - "ltre" - ], - [ - "▁Мо", - "ск" - ], - [ - "▁Мос", - "к" - ], - [ - "▁adm", - "itted" - ], - [ - "▁admit", - "ted" - ], - [ - "▁relig", - "ios" - ], - [ - "зя", - "й" - ], - [ - "е", - "го" - ], - [ - "▁t", - "ears" - ], - [ - "▁te", - "ars" - ], - [ - "▁tea", - "rs" - ], - [ - "in", - "go" - ], - [ - "ing", - "o" - ], - [ - "od", - "u" - ], - [ - "o", - "du" - ], - [ - "iv", - "eness" - ], - [ - "ive", - "ness" - ], - [ - "iven", - "ess" - ], - [ - "▁l", - "ogo" - ], - [ - "▁lo", - "go" - ], - [ - "▁log", - "o" - ], - [ - "▁", - "logo" - ], - [ - "▁últ", - "imo" - ], - [ - "▁al", - "iment" - ], - [ - "▁ali", - "ment" - ], - [ - "▁U", - "ITableView" - ], - [ - "▁", - "UITableView" - ], - [ - ")", - "!" - ], - [ - "▁n", - "j" - ], - [ - "le", - "tte" - ], - [ - "let", - "te" - ], - [ - "lett", - "e" - ], - [ - "l", - "ette" - ], - [ - "▁res", - "ident" - ], - [ - "▁resid", - "ent" - ], - [ - "▁term", - "ine" - ], - [ - "▁ter", - "mine" - ], - [ - "▁termin", - "e" - ], - [ - "▁у", - "же" - ], - [ - "▁С", - "те" - ], - [ - "▁Ст", - "е" - ], - [ - "off", - "ice" - ], - [ - "▁c", - "arte" - ], - [ - "▁car", - "te" - ], - [ - "▁cart", - "e" - ], - [ - "▁li", - "vre" - ], - [ - "▁liv", - "re" - ], - [ - "▁Мо", - "сков" - ], - [ - "▁Мос", - "ков" - ], - [ - "▁Моск", - "ов" - ], - [ - "▁e", - "lections" - ], - [ - "▁elect", - "ions" - ], - [ - "▁ele", - "ctions" - ], - [ - "▁election", - "s" - ], - [ - "зи", - "ден" - ], - [ - "Tr", - "igger" - ], - [ - "▁Ben", - "jamin" - ], - [ - "add", - "Class" - ], - [ - "ско", - "г" - ], - [ - "▁Ob", - "servable" - ], - [ - "▁Observ", - "able" - ], - [ - "▁", - "Observable" - ], - [ - "Cl", - "a" - ], - [ - "C", - "la" - ], - [ - "gem", - "ein" - ], - [ - "geme", - "in" - ], - [ - "g", - "emein" - ], - [ - "▁con", - "sent" - ], - [ - "▁cons", - "ent" - ], - [ - "▁conse", - "nt" - ], - [ - "в", - "ри" - ], - [ - "▁un", - "fold" - ], - [ - "▁unf", - "old" - ], - [ - "▁govern", - "or" - ], - [ - "▁gover", - "nor" - ], - [ - "▁governo", - "r" - ], - [ - "на", - "л" - ], - [ - "н", - "ал" - ], - [ - "▁t", - "oda" - ], - [ - "▁to", - "da" - ], - [ - "▁tod", - "a" - ], - [ - "Rem", - "ote" - ], - [ - "ar", - "ias" - ], - [ - "ari", - "as" - ], - [ - "aria", - "s" - ], - [ - "a", - "rias" - ], - [ - "▁in", - "stal" - ], - [ - "▁inst", - "al" - ], - [ - "▁ins", - "tal" - ], - [ - "fix", - "ed" - ], - [ - "f", - "ixed" - ], - [ - "▁dec", - "ay" - ], - [ - "▁де", - "рев" - ], - [ - "▁дере", - "в" - ], - [ - "xy", - "z" - ], - [ - "x", - "yz" - ], - [ - "▁D", - "ATE" - ], - [ - "▁DA", - "TE" - ], - [ - "▁DAT", - "E" - ], - [ - "▁", - "DATE" - ], - [ - "im", - "ar" - ], - [ - "ima", - "r" - ], - [ - "i", - "mar" - ], - [ - "nt", - "il" - ], - [ - "n", - "til" - ], - [ - "▁start", - "up" - ], - [ - "al", - "ion" - ], - [ - "ali", - "on" - ], - [ - "▁ko", - "lej" - ], - [ - "▁kol", - "ej" - ], - [ - "▁kole", - "j" - ], - [ - "ci", - "os" - ], - [ - "cio", - "s" - ], - [ - "c", - "ios" - ], - [ - "▁r", - "anges" - ], - [ - "▁range", - "s" - ], - [ - "▁ran", - "ges" - ], - [ - "▁rang", - "es" - ], - [ - "▁stup", - "id" - ], - [ - "▁implement", - "ations" - ], - [ - "▁implementation", - "s" - ], - [ - "▁r", - "m" - ], - [ - "▁", - "rm" - ], - [ - "én", - "ek" - ], - [ - "é", - "nek" - ], - [ - "▁g", - "cc" - ], - [ - "▁", - "gcc" - ], - [ - "▁sc", - "ène" - ], - [ - "N", - "avigation" - ], - [ - "▁", - " " - ], - [ - "▁к", - "ан" - ], - [ - "▁ка", - "н" - ], - [ - "▁", - "кан" - ], - [ - "▁town", - "s" - ], - [ - "User", - "name" - ], - [ - "Us", - "ername" - ], - [ - "▁ф", - "е" - ], - [ - "▁", - "фе" - ], - [ - "▁le", - "aders" - ], - [ - "▁lead", - "ers" - ], - [ - "▁leader", - "s" - ], - [ - "oi", - "t" - ], - [ - "o", - "it" - ], - [ - "w", - "är" - ], - [ - "▁d", - "ummy" - ], - [ - "▁ass", - "istant" - ], - [ - "▁assist", - "ant" - ], - [ - "{$", - "\\" - ], - [ - "{", - "$\\" - ], - [ - "бі", - "р" - ], - [ - "б", - "ір" - ], - [ - "▁r", - "oy" - ], - [ - "▁ro", - "y" - ], - [ - "▁", - "roy" - ], - [ - "▁L", - "ayout" - ], - [ - "▁", - "Layout" - ], - [ - "▁J", - "ung" - ], - [ - "▁Ju", - "ng" - ], - [ - "▁Jun", - "g" - ], - [ - "Line", - "s" - ], - [ - "Lin", - "es" - ], - [ - "Li", - "nes" - ], - [ - "L", - "ines" - ], - [ - "▁Hol", - "land" - ], - [ - "по", - "р" - ], - [ - "п", - "ор" - ], - [ - "▁Г", - "ри" - ], - [ - "▁B", - "ened" - ], - [ - "▁Be", - "ned" - ], - [ - "▁Ben", - "ed" - ], - [ - "▁П", - "од" - ], - [ - "▁По", - "д" - ], - [ - "xl", - "s" - ], - [ - "x", - "ls" - ], - [ - "▁G", - "ol" - ], - [ - "▁Go", - "l" - ], - [ - "▁Al", - "eks" - ], - [ - "▁Ale", - "ks" - ], - [ - "▁ej", - "emplo" - ], - [ - "▁se", - "zon" - ], - [ - "ar", - "ding" - ], - [ - "ard", - "ing" - ], - [ - "ardi", - "ng" - ], - [ - "ardin", - "g" - ], - [ - "foot", - "note" - ], - [ - "▁Cong", - "rès" - ], - [ - "re", - "fer" - ], - [ - "ref", - "er" - ], - [ - "ска", - "та" - ], - [ - "с", - "ката" - ], - [ - "Iter", - "ator" - ], - [ - "▁our", - "selves" - ], - [ - "▁M", - "ic" - ], - [ - "▁Mi", - "c" - ], - [ - "▁c", - "ódigo" - ], - [ - "▁пло", - "ща" - ], - [ - "▁\\", - "$" - ], - [ - "▁Char", - "lie" - ], - [ - "No", - "des" - ], - [ - "Node", - "s" - ], - [ - "N", - "odes" - ], - [ - "▁p", - "uzz" - ], - [ - "▁pu", - "zz" - ], - [ - "▁Ident", - "ifier" - ], - [ - "▁", - "Identifier" - ], - [ - "▁fl", - "utter" - ], - [ - "▁", - "flutter" - ], - [ - "▁pr", - "ü" - ], - [ - "▁", - "prü" - ], - [ - "▁o", - "rt" - ], - [ - "▁or", - "t" - ], - [ - "▁", - "ort" - ], - [ - "▁C", - "ort" - ], - [ - "▁Cor", - "t" - ], - [ - "▁Co", - "rt" - ], - [ - "astic", - "search" - ], - [ - "▁С", - "вя" - ], - [ - "▁B", - "ull" - ], - [ - "▁Bu", - "ll" - ], - [ - "▁Bul", - "l" - ], - [ - "ud", - "em" - ], - [ - "ude", - "m" - ], - [ - "u", - "dem" - ], - [ - "▁ap", - "parent" - ], - [ - "▁appar", - "ent" - ], - [ - ":-", - "-" - ], - [ - ":", - "--" - ], - [ - "▁Х", - "ар" - ], - [ - "▁Ха", - "р" - ], - [ - "▁L", - "ap" - ], - [ - "▁La", - "p" - ], - [ - "▁com", - "port" - ], - [ - "▁comp", - "ort" - ], - [ - "mat", - "ically" - ], - [ - "m", - "atically" - ], - [ - "▁cu", - "rios" - ], - [ - "▁cur", - "ios" - ], - [ - "▁мо", - "жет" - ], - [ - "▁мож", - "ет" - ], - [ - "▁може", - "т" - ], - [ - "▁B", - "h" - ], - [ - "ap", - "ping" - ], - [ - "app", - "ing" - ], - [ - "a", - "pping" - ], - [ - "▁b", - "asketball" - ], - [ - "▁basket", - "ball" - ], - [ - "ze", - "tek" - ], - [ - "zet", - "ek" - ], - [ - "▁r", - "unt" - ], - [ - "▁run", - "t" - ], - [ - "▁ru", - "nt" - ], - [ - "▁Mil", - "an" - ], - [ - "▁Mi", - "lan" - ], - [ - "fe", - "ction" - ], - [ - "fect", - "ion" - ], - [ - "f", - "ection" - ], - [ - "rí", - "a" - ], - [ - "r", - "ía" - ], - [ - "▁K", - "in" - ], - [ - "▁Ki", - "n" - ], - [ - "▁s", - "lower" - ], - [ - "▁sl", - "ower" - ], - [ - "▁slow", - "er" - ], - [ - "▁slo", - "wer" - ], - [ - "bo", - "th" - ], - [ - "bot", - "h" - ], - [ - "b", - "oth" - ], - [ - "▁Inst", - "ituto" - ], - [ - "▁Instit", - "uto" - ], - [ - "▁Institut", - "o" - ], - [ - "▁Histor", - "ical" - ], - [ - "▁Historic", - "al" - ], - [ - "▁równ", - "ież" - ], - [ - "mat", - "ches" - ], - [ - "match", - "es" - ], - [ - "yc", - "i" - ], - [ - "y", - "ci" - ], - [ - "▁esp", - "èce" - ], - [ - "▁Schwe", - "izer" - ], - [ - "▁Schweiz", - "er" - ], - [ - "N", - "T" - ], - [ - "S", - "F" - ], - [ - "ac", - "ia" - ], - [ - "aci", - "a" - ], - [ - "a", - "cia" - ], - [ - "for", - "ge" - ], - [ - "f", - "orge" - ], - [ - "Point", - "s" - ], - [ - "Po", - "ints" - ], - [ - "num", - "bers" - ], - [ - "number", - "s" - ], - [ - "▁f", - "alling" - ], - [ - "▁fall", - "ing" - ], - [ - "▁fal", - "ling" - ], - [ - "▁inherit", - "ance" - ], - [ - "▁Er", - "st" - ], - [ - "▁custom", - "ers" - ], - [ - "▁customer", - "s" - ], - [ - "▁a", - "ctu" - ], - [ - "▁act", - "u" - ], - [ - "▁ac", - "tu" - ], - [ - "▁m", - "igration" - ], - [ - "▁migr", - "ation" - ], - [ - "\\", - "'" - ], - [ - "Pl", - "an" - ], - [ - "P", - "lan" - ], - [ - "M", - "r" - ], - [ - "ot", - "hy" - ], - [ - "oth", - "y" - ], - [ - "o", - "thy" - ], - [ - "▁up", - "grad" - ], - [ - "би", - "ра" - ], - [ - "▁O", - "ffic" - ], - [ - "▁Of", - "fic" - ], - [ - "▁Off", - "ic" - ], - [ - "▁W", - "ait" - ], - [ - "▁Wa", - "it" - ], - [ - "▁", - "Wait" - ], - [ - "▁to", - "ler" - ], - [ - "ar", - "don" - ], - [ - "ard", - "on" - ], - [ - "ardo", - "n" - ], - [ - "▁s", - "lide" - ], - [ - "▁sl", - "ide" - ], - [ - "▁sli", - "de" - ], - [ - "▁", - "slide" - ], - [ - ")", - "_" - ], - [ - "▁ста", - "в" - ], - [ - "▁", - "став" - ], - [ - "▁nu", - "clear" - ], - [ - "▁nuc", - "lear" - ], - [ - "▁nucle", - "ar" - ], - [ - "▁B", - "il" - ], - [ - "▁Bi", - "l" - ], - [ - "ow", - "ner" - ], - [ - "own", - "er" - ], - [ - "o", - "wner" - ], - [ - "▁Har", - "ris" - ], - [ - "▁Harr", - "is" - ], - [ - "In", - "formation" - ], - [ - "▁p", - "ó" - ], - [ - "▁вклю", - "ча" - ], - [ - "▁nu", - "ovo" - ], - [ - "▁C", - "av" - ], - [ - "▁Ca", - "v" - ], - [ - "▁De", - "scri" - ], - [ - "▁Des", - "cri" - ], - [ - "▁а", - "к" - ], - [ - "ód", - "zt" - ], - [ - "▁react", - "js" - ], - [ - "▁Ad", - "ams" - ], - [ - "▁Adam", - "s" - ], - [ - "▁Ada", - "ms" - ], - [ - "▁Altern", - "atively" - ], - [ - "ст", - "рук" - ], - [ - "стру", - "к" - ], - [ - "стр", - "ук" - ], - [ - ")`", - "," - ], - [ - ")", - "`," - ], - [ - "sub", - "string" - ], - [ - "subst", - "ring" - ], - [ - "substr", - "ing" - ], - [ - "▁mass", - "ive" - ], - [ - "▁heav", - "ily" - ], - [ - "▁се", - "зо" - ], - [ - "▁сез", - "о" - ], - [ - "▁A", - "na" - ], - [ - "▁An", - "a" - ], - [ - "▁v", - "ale" - ], - [ - "▁val", - "e" - ], - [ - "▁va", - "le" - ], - [ - "Pa", - "d" - ], - [ - "P", - "ad" - ], - [ - "▁E", - "ither" - ], - [ - "▁r", - "s" - ], - [ - "▁", - "rs" - ], - [ - "an", - "che" - ], - [ - "anc", - "he" - ], - [ - "anch", - "e" - ], - [ - "▁up", - "loaded" - ], - [ - "▁upload", - "ed" - ], - [ - "▁(", - "/" - ], - [ - "▁", - "(/" - ], - [ - "▁с", - "пор" - ], - [ - "▁спо", - "р" - ], - [ - "▁сп", - "ор" - ], - [ - "▁redu", - "ction" - ], - [ - "▁Tok", - "yo" - ], - [ - "gr", - "en" - ], - [ - "gre", - "n" - ], - [ - "g", - "ren" - ], - [ - "▁m", - "igli" - ], - [ - "▁mig", - "li" - ], - [ - "▁iter", - "ator" - ], - [ - "▁", - "iterator" - ], - [ - "st", - "av" - ], - [ - "sta", - "v" - ], - [ - "▁support", - "ing" - ], - [ - "▁ö", - "sterreich" - ], - [ - "▁NS", - "Log" - ], - [ - "ist", - "iques" - ], - [ - "isti", - "ques" - ], - [ - "istique", - "s" - ], - [ - "ri", - "min" - ], - [ - "rim", - "in" - ], - [ - "r", - "imin" - ], - [ - "MO", - "DE" - ], - [ - "}}", - "}\\" - ], - [ - "}}}", - "\\" - ], - [ - "}", - "}}\\" - ], - [ - "▁exp", - "los" - ], - [ - "▁expl", - "os" - ], - [ - "▁explo", - "s" - ], - [ - "от", - "е" - ], - [ - "о", - "те" - ], - [ - "▁(", - "„" - ], - [ - "Sa", - "l" - ], - [ - "S", - "al" - ], - [ - "▁simple", - "st" - ], - [ - "▁simpl", - "est" - ], - [ - "▁gi", - "à" - ], - [ - "▁та", - "н" - ], - [ - "▁т", - "ан" - ], - [ - "▁", - "тан" - ], - [ - "▁c", - "yl" - ], - [ - "▁cy", - "l" - ], - [ - "bi", - "r" - ], - [ - "b", - "ir" - ], - [ - "▁measure", - "ments" - ], - [ - "▁measurement", - "s" - ], - [ - "Create", - "d" - ], - [ - "Cre", - "ated" - ], - [ - "er", - "ek" - ], - [ - "ere", - "k" - ], - [ - "e", - "rek" - ], - [ - "look", - "up" - ], - [ - "w", - "irtschaft" - ], - [ - "▁В", - "оло" - ], - [ - "▁Во", - "ло" - ], - [ - "▁Вол", - "о" - ], - [ - "ti", - "mer" - ], - [ - "time", - "r" - ], - [ - "tim", - "er" - ], - [ - "t", - "imer" - ], - [ - "de", - "rr" - ], - [ - "der", - "r" - ], - [ - "d", - "err" - ], - [ - "▁ст", - "ала" - ], - [ - "▁ста", - "ла" - ], - [ - "▁стал", - "а" - ], - [ - "▁sc", - "enes" - ], - [ - "▁scen", - "es" - ], - [ - "▁scene", - "s" - ], - [ - "▁per", - "su" - ], - [ - "▁pers", - "u" - ], - [ - "li", - "est" - ], - [ - "lie", - "st" - ], - [ - "lies", - "t" - ], - [ - "l", - "iest" - ], - [ - "▁sch", - "edule" - ], - [ - "▁sched", - "ule" - ], - [ - "ta", - "l" - ], - [ - "t", - "al" - ], - [ - "ле", - "но" - ], - [ - "лен", - "о" - ], - [ - "▁pain", - "ting" - ], - [ - "▁paint", - "ing" - ], - [ - "▁impro", - "vement" - ], - [ - "▁improve", - "ment" - ], - [ - "▁improv", - "ement" - ], - [ - "so", - "ftware" - ], - [ - "soft", - "ware" - ], - [ - "▁govern", - "o" - ], - [ - "▁gover", - "no" - ], - [ - "▁H", - "ir" - ], - [ - "▁Hi", - "r" - ], - [ - "Exec", - "ution" - ], - [ - "▁Ok", - "ay" - ], - [ - "Pro", - "p" - ], - [ - "Pr", - "op" - ], - [ - "P", - "rop" - ], - [ - "lo", - "ster" - ], - [ - "los", - "ter" - ], - [ - "lost", - "er" - ], - [ - "l", - "oster" - ], - [ - "ніципа", - "лі" - ], - [ - "▁peu", - "vent" - ], - [ - "ol", - "u" - ], - [ - "o", - "lu" - ], - [ - "▁Ф", - "а" - ], - [ - "roll", - "o" - ], - [ - "rol", - "lo" - ], - [ - "▁ко", - "ло" - ], - [ - "▁к", - "оло" - ], - [ - "▁", - "коло" - ], - [ - "▁car", - "rière" - ], - [ - "▁carri", - "ère" - ], - [ - "▁t", - "oggle" - ], - [ - "▁tog", - "gle" - ], - [ - "▁togg", - "le" - ], - [ - "▁", - "toggle" - ], - [ - "▁(", - "$\\" - ], - [ - "▁($", - "\\" - ], - [ - "▁aggreg", - "ate" - ], - [ - "▁Б", - "і" - ], - [ - "text", - "area" - ], - [ - "O", - "k" - ], - [ - "it", - "to" - ], - [ - "itt", - "o" - ], - [ - "i", - "tto" - ], - [ - "▁s", - "tim" - ], - [ - "▁st", - "im" - ], - [ - "▁recurs", - "ion" - ], - [ - "▁Feder", - "ation" - ], - [ - ")_", - "{" - ], - [ - ")", - "_{" - ], - [ - "ate", - "gor" - ], - [ - "ateg", - "or" - ], - [ - "▁dist", - "ribu" - ], - [ - "▁distrib", - "u" - ], - [ - "Cl", - "oud" - ], - [ - "▁m", - "adre" - ], - [ - "▁mad", - "re" - ], - [ - "▁i", - "v" - ], - [ - "▁", - "iv" - ], - [ - "▁Lie", - "utenant" - ], - [ - "▁subst", - "ant" - ], - [ - "▁le", - "af" - ], - [ - "▁", - "leaf" - ], - [ - "▁Kont", - "rola" - ], - [ - "V", - "A" - ], - [ - "▁t", - "omb" - ], - [ - "▁to", - "mb" - ], - [ - "▁tom", - "b" - ], - [ - "э", - "н" - ], - [ - "ato", - "es" - ], - [ - "▁god", - "ine" - ], - [ - "▁#", - ">" - ], - [ - "C", - "ert" - ], - [ - "▁em", - "presa" - ], - [ - "▁empres", - "a" - ], - [ - "Pro", - "ps" - ], - [ - "Pr", - "ops" - ], - [ - "Prop", - "s" - ], - [ - "▁pl", - "anned" - ], - [ - "▁plan", - "ned" - ], - [ - "▁random", - "ly" - ], - [ - "j", - "ähr" - ], - [ - "el", - "em" - ], - [ - "ele", - "m" - ], - [ - "e", - "lem" - ], - [ - "▁Oper", - "ation" - ], - [ - "▁Opera", - "tion" - ], - [ - "▁", - "Operation" - ], - [ - "*", - "`" - ], - [ - "pro", - "tocol" - ], - [ - "proto", - "col" - ], - [ - "()", - "));" - ], - [ - "())", - ");" - ], - [ - "()))", - ";" - ], - [ - "(", - ")));" - ], - [ - "we", - "l" - ], - [ - "w", - "el" - ], - [ - "▁p", - "raw" - ], - [ - "▁pr", - "aw" - ], - [ - "▁pra", - "w" - ], - [ - "▁с", - "им" - ], - [ - "▁си", - "м" - ], - [ - "▁w", - "ob" - ], - [ - "▁wo", - "b" - ], - [ - "▁h", - "ace" - ], - [ - "▁ha", - "ce" - ], - [ - "▁near", - "est" - ], - [ - "dis", - "able" - ], - [ - "▁C", - "ommun" - ], - [ - "▁Com", - "mun" - ], - [ - "▁Comm", - "un" - ], - [ - "▁re", - "vel" - ], - [ - "▁rev", - "el" - ], - [ - "▁reve", - "l" - ], - [ - "Fr", - "ee" - ], - [ - "Fre", - "e" - ], - [ - "F", - "ree" - ], - [ - "▁bra", - "ckets" - ], - [ - "IO", - "Exception" - ], - [ - "▁al", - "to" - ], - [ - "▁alt", - "o" - ], - [ - "▁mar", - "ry" - ], - [ - "▁a", - "uc" - ], - [ - "▁au", - "c" - ], - [ - "▁", - "auc" - ], - [ - "),", - "\\" - ], - [ - ")", - ",\\" - ], - [ - "▁typ", - "o" - ], - [ - "▁ty", - "po" - ], - [ - "ed", - "ad" - ], - [ - "eda", - "d" - ], - [ - "ar", - "á" - ], - [ - "a", - "rá" - ], - [ - "ic", - "ator" - ], - [ - "ica", - "tor" - ], - [ - "tat", - "ywna" - ], - [ - "▁b", - "uff" - ], - [ - "▁bu", - "ff" - ], - [ - "▁buf", - "f" - ], - [ - "▁", - "buff" - ], - [ - "or", - "ders" - ], - [ - "ord", - "ers" - ], - [ - "order", - "s" - ], - [ - "orde", - "rs" - ], - [ - "▁as", - "ynchronous" - ], - [ - "▁e", - "con" - ], - [ - "▁ec", - "on" - ], - [ - "▁f", - "eu" - ], - [ - "▁fe", - "u" - ], - [ - "▁I", - "ron" - ], - [ - "▁Ir", - "on" - ], - [ - "▁r", - "ising" - ], - [ - "▁ris", - "ing" - ], - [ - "▁ri", - "sing" - ], - [ - "Rad", - "ius" - ], - [ - "cl", - "k" - ], - [ - "▁zwe", - "iten" - ], - [ - "▁zwei", - "ten" - ], - [ - "▁zweite", - "n" - ], - [ - "`", - "'" - ], - [ - "▁un", - "iqu" - ], - [ - "▁F", - "M" - ], - [ - "▁", - "FM" - ], - [ - "▁B", - "ran" - ], - [ - "▁Br", - "an" - ], - [ - "▁Bra", - "n" - ], - [ - "▁f", - "lu" - ], - [ - "▁fl", - "u" - ], - [ - "▁", - "flu" - ], - [ - "▁sens", - "itive" - ], - [ - "ur", - "re" - ], - [ - "urr", - "e" - ], - [ - "▁I", - "ter" - ], - [ - "▁It", - "er" - ], - [ - "▁", - "Iter" - ], - [ - "▁S", - "ein" - ], - [ - "▁Se", - "in" - ], - [ - "▁difer", - "entes" - ], - [ - "▁diferen", - "tes" - ], - [ - "▁не", - "го" - ], - [ - "▁н", - "его" - ], - [ - "▁", - "него" - ], - [ - "ch", - "ia" - ], - [ - "chi", - "a" - ], - [ - "▁An", - "leitung" - ], - [ - "atur", - "day" - ], - [ - "▁sh", - "orter" - ], - [ - "▁short", - "er" - ], - [ - "▁transl", - "ated" - ], - [ - "▁translate", - "d" - ], - [ - "▁R", - "és" - ], - [ - "▁Ré", - "s" - ], - [ - "▁r", - "ode" - ], - [ - "▁ro", - "de" - ], - [ - "▁rod", - "e" - ], - [ - "dr", - "ag" - ], - [ - "dra", - "g" - ], - [ - "d", - "rag" - ], - [ - "▁l", - "ange" - ], - [ - "▁lang", - "e" - ], - [ - "▁lan", - "ge" - ], - [ - "B", - "i" - ], - [ - "ü", - "b" - ], - [ - "le", - "ur" - ], - [ - "l", - "eur" - ], - [ - "▁order", - "ing" - ], - [ - "▁ord", - "ering" - ], - [ - "al", - "ous" - ], - [ - "alo", - "us" - ], - [ - "▁К", - "ор" - ], - [ - "▁Ко", - "р" - ], - [ - "ar", - "char" - ], - [ - "arch", - "ar" - ], - [ - "arc", - "har" - ], - [ - "dest", - "roy" - ], - [ - "erv", - "ation" - ], - [ - "erva", - "tion" - ], - [ - "]]", - "," - ], - [ - "]", - "]," - ], - [ - "Accessor", - "Impl" - ], - [ - "▁autory", - "tatywna" - ], - [ - "Se", - "quence" - ], - [ - "Sequ", - "ence" - ], - [ - "▁pro", - "yect" - ], - [ - "▁b", - "ran" - ], - [ - "▁br", - "an" - ], - [ - "▁bra", - "n" - ], - [ - "▁(", - "+" - ], - [ - "▁K", - "ab" - ], - [ - "▁Ka", - "b" - ], - [ - "▁z", - "em" - ], - [ - "▁ze", - "m" - ], - [ - "▁", - "zem" - ], - [ - "▁Cal", - "cul" - ], - [ - "▁", - "Calcul" - ], - [ - "▁se", - "ul" - ], - [ - "▁seu", - "l" - ], - [ - "▁N", - "iger" - ], - [ - "▁Ni", - "ger" - ], - [ - "▁ch", - "iam" - ], - [ - "▁chi", - "am" - ], - [ - "th", - "row" - ], - [ - "▁Plan", - "et" - ], - [ - "▁Pla", - "net" - ], - [ - "bild", - "ung" - ], - [ - "▁z", - "ones" - ], - [ - "▁zo", - "nes" - ], - [ - "▁zone", - "s" - ], - [ - "trans", - "ition" - ], - [ - "ле", - "ний" - ], - [ - "▁m", - "apped" - ], - [ - "▁ma", - "pped" - ], - [ - "▁map", - "ped" - ], - [ - "on", - "aut" - ], - [ - "ona", - "ut" - ], - [ - "Pa", - "ir" - ], - [ - "P", - "air" - ], - [ - "il", - "ian" - ], - [ - "ili", - "an" - ], - [ - "ilia", - "n" - ], - [ - "▁M", - "organ" - ], - [ - "▁Mor", - "gan" - ], - [ - "▁un", - "to" - ], - [ - "▁", - "unto" - ], - [ - "jo", - "u" - ], - [ - "j", - "ou" - ], - [ - "▁h", - "id" - ], - [ - "▁hi", - "d" - ], - [ - "▁M", - "eta" - ], - [ - "▁Me", - "ta" - ], - [ - "▁Met", - "a" - ], - [ - "▁", - "Meta" - ], - [ - "▁e", - "lles" - ], - [ - "▁el", - "les" - ], - [ - "▁elle", - "s" - ], - [ - "▁ell", - "es" - ], - [ - "▁", - "elles" - ], - [ - "Lo", - "u" - ], - [ - "L", - "ou" - ], - [ - "ra", - "ma" - ], - [ - "ram", - "a" - ], - [ - "r", - "ama" - ], - [ - "ge", - "ordnet" - ], - [ - "▁scarc", - "ely" - ], - [ - "▁m", - "int" - ], - [ - "▁min", - "t" - ], - [ - "▁mi", - "nt" - ], - [ - "F", - "ocus" - ], - [ - "▁Al", - "ter" - ], - [ - "▁Alt", - "er" - ], - [ - "▁d", - "io" - ], - [ - "▁di", - "o" - ], - [ - "▁am", - "pl" - ], - [ - "▁amp", - "l" - ], - [ - "ière", - "ment" - ], - [ - "▁ис", - "следова" - ], - [ - "LE", - "D" - ], - [ - "L", - "ED" - ], - [ - "alg", - "orithm" - ], - [ - "▁сай", - "ті" - ], - [ - "▁сайт", - "і" - ], - [ - "▁\"", - "\")" - ], - [ - "▁\"\"", - ")" - ], - [ - "Hi", - "story" - ], - [ - "H", - "istory" - ], - [ - "p", - "k" - ], - [ - "▁W", - "hit" - ], - [ - "▁Wh", - "it" - ], - [ - "▁си", - "стем" - ], - [ - "▁систе", - "м" - ], - [ - "▁Kir", - "chen" - ], - [ - "▁Kirche", - "n" - ], - [ - "▁Kirch", - "en" - ], - [ - "r", - "à" - ], - [ - "AP", - "P" - ], - [ - "A", - "PP" - ], - [ - "▁<", - "%" - ], - [ - "ant", - "ine" - ], - [ - "anti", - "ne" - ], - [ - "antin", - "e" - ], - [ - "▁D", - "isk" - ], - [ - "▁Dis", - "k" - ], - [ - "▁Di", - "sk" - ], - [ - "con", - "v" - ], - [ - "we", - "lt" - ], - [ - "wel", - "t" - ], - [ - "w", - "elt" - ], - [ - "▁F", - "ut" - ], - [ - "▁Fu", - "t" - ], - [ - "▁N", - "om" - ], - [ - "▁No", - "m" - ], - [ - "or", - "do" - ], - [ - "ord", - "o" - ], - [ - "el", - "lij" - ], - [ - "ell", - "ij" - ], - [ - "elli", - "j" - ], - [ - "▁rece", - "ives" - ], - [ - "▁receive", - "s" - ], - [ - "co", - "w" - ], - [ - "c", - "ow" - ], - [ - "yt", - "u" - ], - [ - "y", - "tu" - ], - [ - "▁o", - "bras" - ], - [ - "▁ob", - "ras" - ], - [ - "▁obra", - "s" - ], - [ - "▁p", - "urchase" - ], - [ - "▁purch", - "ase" - ], - [ - "▁ear", - "ned" - ], - [ - "▁acc", - "essed" - ], - [ - "▁access", - "ed" - ], - [ - "ax", - "i" - ], - [ - "a", - "xi" - ], - [ - "▁M", - "ans" - ], - [ - "▁Man", - "s" - ], - [ - "▁Ma", - "ns" - ], - [ - "iv", - "an" - ], - [ - "iva", - "n" - ], - [ - "i", - "van" - ], - [ - "▁t", - "uvo" - ], - [ - "▁tu", - "vo" - ], - [ - "▁T", - "race" - ], - [ - "▁Tr", - "ace" - ], - [ - "▁Tra", - "ce" - ], - [ - "▁", - "Trace" - ], - [ - "rim", - "onio" - ], - [ - "▁desen", - "vol" - ], - [ - "ér", - "ique" - ], - [ - "éri", - "que" - ], - [ - "é", - "rique" - ], - [ - "▁result", - "ed" - ], - [ - "▁comp", - "uting" - ], - [ - "▁comput", - "ing" - ], - [ - "▁insp", - "ired" - ], - [ - "▁inspir", - "ed" - ], - [ - "▁Pr", - "ize" - ], - [ - "▁Pri", - "ze" - ], - [ - "*", - "\"" - ], - [ - "Com", - "put" - ], - [ - "Comp", - "ut" - ], - [ - "▁ext", - "ensive" - ], - [ - "▁extens", - "ive" - ], - [ - "è", - "g" - ], - [ - "▁Port", - "ály" - ], - [ - "▁cast", - "le" - ], - [ - "▁", - "castle" - ], - [ - "▁*", - "." - ], - [ - "▁", - "*." - ], - [ - "▁ph", - "otos" - ], - [ - "▁phot", - "os" - ], - [ - "▁photo", - "s" - ], - [ - "▁vo", - "et" - ], - [ - "ON", - "G" - ], - [ - "O", - "NG" - ], - [ - "▁A", - "lle" - ], - [ - "▁Al", - "le" - ], - [ - "▁All", - "e" - ], - [ - "▁thre", - "aten" - ], - [ - "▁threat", - "en" - ], - [ - "st", - "üt" - ], - [ - "▁album", - "s" - ], - [ - "▁alb", - "ums" - ], - [ - "▁d", - "ense" - ], - [ - "▁den", - "se" - ], - [ - "▁dens", - "e" - ], - [ - "fl", - "at" - ], - [ - "f", - "lat" - ], - [ - "cont", - "inu" - ], - [ - "Sub", - "ject" - ], - [ - "Su", - "bject" - ], - [ - "▁read", - "only" - ], - [ - "Op", - "t" - ], - [ - "O", - "pt" - ], - [ - "пи", - "ско" - ], - [ - "пис", - "ко" - ], - [ - "▁A", - "ber" - ], - [ - "▁Ab", - "er" - ], - [ - "▁P", - "osition" - ], - [ - "▁Pos", - "ition" - ], - [ - "▁", - "Position" - ], - [ - "▁To", - "day" - ], - [ - "▁Tod", - "ay" - ], - [ - "▁m", - "ini" - ], - [ - "▁min", - "i" - ], - [ - "▁mi", - "ni" - ], - [ - "▁B", - "ef" - ], - [ - "▁Be", - "f" - ], - [ - "li", - "sten" - ], - [ - "list", - "en" - ], - [ - "lis", - "ten" - ], - [ - "l", - "isten" - ], - [ - "ствен", - "ного" - ], - [ - "ственно", - "го" - ], - [ - "SU", - "B" - ], - [ - "S", - "UB" - ], - [ - "os", - "sa" - ], - [ - "oss", - "a" - ], - [ - "▁P", - "ope" - ], - [ - "▁Po", - "pe" - ], - [ - "▁Pop", - "e" - ], - [ - "▁Jim", - "my" - ], - [ - "▁Д", - "ру" - ], - [ - "ungs", - "seite" - ], - [ - "▁t", - "ren" - ], - [ - "▁tr", - "en" - ], - [ - "▁tre", - "n" - ], - [ - "op", - "tim" - ], - [ - "opt", - "im" - ], - [ - "it", - "sch" - ], - [ - "its", - "ch" - ], - [ - "▁s", - "amt" - ], - [ - "▁sa", - "mt" - ], - [ - "▁sam", - "t" - ], - [ - "▁испо", - "л" - ], - [ - "▁ис", - "пол" - ], - [ - "&", - "=" - ], - [ - "▁Przyp", - "isy" - ], - [ - "▁про", - "дол" - ], - [ - "C", - "r" - ], - [ - "er", - "mann" - ], - [ - "erm", - "ann" - ], - [ - "erman", - "n" - ], - [ - "▁ма", - "тери" - ], - [ - "▁мате", - "ри" - ], - [ - "▁H", - "ugo" - ], - [ - "▁Hu", - "go" - ], - [ - "▁De", - "ze" - ], - [ - "▁Dez", - "e" - ], - [ - "TR", - "UE" - ], - [ - "▁defe", - "at" - ], - [ - "▁watch", - "ed" - ], - [ - "▁wat", - "ched" - ], - [ - "▁G", - "ent" - ], - [ - "▁Ge", - "nt" - ], - [ - "▁Gen", - "t" - ], - [ - "AU", - "T" - ], - [ - "A", - "UT" - ], - [ - "or", - "ous" - ], - [ - "oro", - "us" - ], - [ - "▁о", - "преде" - ], - [ - "ori", - "entation" - ], - [ - "orient", - "ation" - ], - [ - "▁distingu", - "ished" - ], - [ - "▁distinguish", - "ed" - ], - [ - "▁mes", - "mo" - ], - [ - "▁s", - "li" - ], - [ - "▁sl", - "i" - ], - [ - "ме", - "на" - ], - [ - "мен", - "а" - ], - [ - "м", - "ена" - ], - [ - "mit", - "tel" - ], - [ - "mitt", - "el" - ], - [ - "m", - "ittel" - ], - [ - "ge", - "richt" - ], - [ - "ger", - "icht" - ], - [ - "et", - "on" - ], - [ - "eto", - "n" - ], - [ - "e", - "ton" - ], - [ - "->", - "{" - ], - [ - "-", - ">{" - ], - [ - "▁w", - "ont" - ], - [ - "▁won", - "t" - ], - [ - "▁wo", - "nt" - ], - [ - "▁w", - "eg" - ], - [ - "▁we", - "g" - ], - [ - "▁", - "weg" - ], - [ - "▁class", - "ific" - ], - [ - "il", - "us" - ], - [ - "i", - "lus" - ], - [ - "▁M", - "D" - ], - [ - "▁", - "MD" - ], - [ - "task", - "s" - ], - [ - "▁c", - "him" - ], - [ - "▁ch", - "im" - ], - [ - "▁chi", - "m" - ], - [ - "aw", - "ait" - ], - [ - "awa", - "it" - ], - [ - "a", - "wait" - ], - [ - "▁g", - "ang" - ], - [ - "▁gan", - "g" - ], - [ - "▁ga", - "ng" - ], - [ - "▁", - "gang" - ], - [ - "▁w", - "ię" - ], - [ - "▁", - "wię" - ], - [ - "th", - "rough" - ], - [ - "▁Russ", - "ell" - ], - [ - "▁guess", - "ing" - ], - [ - "▁а", - "кт" - ], - [ - "▁ак", - "т" - ], - [ - "б", - "лі" - ], - [ - "c", - "ategories" - ], - [ - "су", - "т" - ], - [ - "с", - "ут" - ], - [ - "▁F", - "en" - ], - [ - "▁Fe", - "n" - ], - [ - "▁му", - "ж" - ], - [ - "▁ne", - "wer" - ], - [ - "▁new", - "er" - ], - [ - "▁A", - "sync" - ], - [ - "▁As", - "ync" - ], - [ - "▁", - "Async" - ], - [ - "▁t", - "erme" - ], - [ - "▁term", - "e" - ], - [ - "▁ter", - "me" - ], - [ - ">", - "/" - ], - [ - "па", - "ра" - ], - [ - "пар", - "а" - ], - [ - "▁T", - "rust" - ], - [ - "▁Tr", - "ust" - ], - [ - "▁Tru", - "st" - ], - [ - "▁O", - "pt" - ], - [ - "▁Op", - "t" - ], - [ - "▁", - "Opt" - ], - [ - "▁d", - "ah" - ], - [ - "▁da", - "h" - ], - [ - "▁wonder", - "ful" - ], - [ - "adrat", - "kil" - ], - [ - "▁Г", - "ра" - ], - [ - "ma", - "pping" - ], - [ - "map", - "ping" - ], - [ - "m", - "apping" - ], - [ - "▁disc", - "overy" - ], - [ - "▁discover", - "y" - ], - [ - "▁disco", - "very" - ], - [ - "▁B", - "E" - ], - [ - "▁", - "BE" - ], - [ - "En", - "able" - ], - [ - "▁Fri", - "end" - ], - [ - "с", - "ня" - ], - [ - "▁cont", - "rolled" - ], - [ - "▁control", - "led" - ], - [ - "чно", - "ї" - ], - [ - "ч", - "ної" - ], - [ - "▁contribution", - "s" - ], - [ - "▁contrib", - "utions" - ], - [ - "j", - "ší" - ], - [ - "▁L", - "ev" - ], - [ - "▁Le", - "v" - ], - [ - "▁franc", - "és" - ], - [ - "▁m", - "ic" - ], - [ - "▁mi", - "c" - ], - [ - "▁", - "mic" - ], - [ - "zi", - "k" - ], - [ - "z", - "ik" - ], - [ - "▁a", - "lem" - ], - [ - "▁al", - "em" - ], - [ - "▁ale", - "m" - ], - [ - "▁", - "alem" - ], - [ - "can", - "cel" - ], - [ - "!", - "'" - ], - [ - "▁g", - "rat" - ], - [ - "▁gr", - "at" - ], - [ - "▁gra", - "t" - ], - [ - "▁Begriff", - "sklär" - ], - [ - "Cam", - "era" - ], - [ - "if", - "icación" - ], - [ - "ific", - "ación" - ], - [ - "ifica", - "ción" - ], - [ - "ró", - "d" - ], - [ - "r", - "ód" - ], - [ - "▁Arn", - "old" - ], - [ - "▁bezeichnet", - "er" - ], - [ - "▁f", - "ought" - ], - [ - "▁de", - "put" - ], - [ - "▁dep", - "ut" - ], - [ - "▁D", - "rop" - ], - [ - "▁Dr", - "op" - ], - [ - "▁Dro", - "p" - ], - [ - "▁", - "Drop" - ], - [ - "ta", - "x" - ], - [ - "t", - "ax" - ], - [ - "d", - "g" - ], - [ - "▁H", - "op" - ], - [ - "▁Ho", - "p" - ], - [ - "G", - "N" - ], - [ - "▁Kir", - "ch" - ], - [ - "▁Б", - "ар" - ], - [ - "▁Ба", - "р" - ], - [ - "In", - "voke" - ], - [ - "Inv", - "oke" - ], - [ - "▁er", - "halten" - ], - [ - "▁ve", - "el" - ], - [ - "▁word", - "press" - ], - [ - "▁", - "wordpress" - ], - [ - "▁IN", - "NER" - ], - [ - "trans", - "action" - ], - [ - "▁dé", - "jà" - ], - [ - "Fa", - "ct" - ], - [ - "F", - "act" - ], - [ - "▁над", - "мор" - ], - [ - "▁angular", - "js" - ], - [ - "▁á", - "t" - ], - [ - "▁", - "át" - ], - [ - "▁a", - "lap" - ], - [ - "▁al", - "ap" - ], - [ - "▁P", - "rice" - ], - [ - "▁Pr", - "ice" - ], - [ - "▁Pri", - "ce" - ], - [ - "▁", - "Price" - ], - [ - "▁eff", - "et" - ], - [ - "▁s", - "phere" - ], - [ - "▁sp", - "here" - ], - [ - "▁spher", - "e" - ], - [ - "Class", - "Loader" - ], - [ - "▁r", - "ugby" - ], - [ - "▁rug", - "by" - ], - [ - "▁king", - "dom" - ], - [ - "▁M", - "ut" - ], - [ - "▁Mu", - "t" - ], - [ - "▁ки", - "но" - ], - [ - "▁re", - "ward" - ], - [ - "ci", - "t" - ], - [ - "c", - "it" - ], - [ - "▁present", - "e" - ], - [ - "▁pres", - "ente" - ], - [ - "St", - "o" - ], - [ - "S", - "to" - ], - [ - "Char", - "acter" - ], - [ - "lo", - "gs" - ], - [ - "log", - "s" - ], - [ - "l", - "ogs" - ], - [ - "▁cent", - "rale" - ], - [ - "▁central", - "e" - ], - [ - "▁m", - "ouv" - ], - [ - "▁mo", - "uv" - ], - [ - "▁mou", - "v" - ], - [ - "▁ok", - "ay" - ], - [ - "▁ap", - "lic" - ], - [ - "Mo", - "re" - ], - [ - "Mor", - "e" - ], - [ - "M", - "ore" - ], - [ - "ény", - "ek" - ], - [ - "▁Kö", - "ln" - ], - [ - "ne", - "tt" - ], - [ - "net", - "t" - ], - [ - "n", - "ett" - ], - [ - "▁исто", - "рии" - ], - [ - "▁истори", - "и" - ], - [ - "▁descri", - "bing" - ], - [ - "▁sold", - "ier" - ], - [ - "▁N", - "eed" - ], - [ - "▁Ne", - "ed" - ], - [ - "L", - "ight" - ], - [ - "▁\"", - "\\<" - ], - [ - "▁\"\\", - "<" - ], - [ - "▁h", - "av" - ], - [ - "▁ha", - "v" - ], - [ - "▁", - "hav" - ], - [ - "er", - "mo" - ], - [ - "erm", - "o" - ], - [ - "▁infer", - "ior" - ], - [ - "le", - "a" - ], - [ - "l", - "ea" - ], - [ - "▁g", - "g" - ], - [ - "▁", - "gg" - ], - [ - "▁кон", - "це" - ], - [ - "fra", - "gment" - ], - [ - "f", - "ragment" - ], - [ - "s", - "b" - ], - [ - "Count", - "ry" - ], - [ - "C", - "ountry" - ], - [ - "▁v", - "ě" - ], - [ - "▁", - "vě" - ], - [ - "▁B", - "eng" - ], - [ - "▁Be", - "ng" - ], - [ - "▁Ben", - "g" - ], - [ - "▁Э", - "то" - ], - [ - "▁во", - "до" - ], - [ - "ма", - "р" - ], - [ - "м", - "ар" - ], - [ - "STR", - "ING" - ], - [ - "▁ú", - "j" - ], - [ - "multi", - "ple" - ], - [ - "multip", - "le" - ], - [ - "state", - "ment" - ], - [ - "stat", - "ement" - ], - [ - "▁invol", - "ves" - ], - [ - "▁involve", - "s" - ], - [ - "▁te", - "cn" - ], - [ - "▁tec", - "n" - ], - [ - "St", - "udent" - ], - [ - "gr", - "é" - ], - [ - "g", - "ré" - ], - [ - "▁le", - "an" - ], - [ - "▁", - "lean" - ], - [ - "▁bring", - "ing" - ], - [ - "▁Med", - "ical" - ], - [ - "▁Medic", - "al" - ], - [ - "▁Medi", - "cal" - ], - [ - "▁програ", - "м" - ], - [ - "▁V", - "og" - ], - [ - "▁Vo", - "g" - ], - [ - "▁ж", - "ов" - ], - [ - "▁Sp", - "irit" - ], - [ - "nt", - "h" - ], - [ - "n", - "th" - ], - [ - "▁stand", - "ards" - ], - [ - "▁standard", - "s" - ], - [ - "▁Pro", - "file" - ], - [ - "▁Prof", - "ile" - ], - [ - "▁Profil", - "e" - ], - [ - "▁", - "Profile" - ], - [ - "▁e", - "z" - ], - [ - "▁", - "ez" - ], - [ - "▁террито", - "рии" - ], - [ - "▁s", - "tem" - ], - [ - "▁st", - "em" - ], - [ - "▁ste", - "m" - ], - [ - "ui", - "l" - ], - [ - "u", - "il" - ], - [ - "▁O", - "g" - ], - [ - "B", - "tn" - ], - [ - "na", - "l" - ], - [ - "n", - "al" - ], - [ - "▁near", - "by" - ], - [ - "▁produ", - "cing" - ], - [ - "cri", - "v" - ], - [ - "cr", - "iv" - ], - [ - "c", - "riv" - ], - [ - "▁assum", - "ptions" - ], - [ - "▁assumption", - "s" - ], - [ - "▁S", - "park" - ], - [ - "▁Sp", - "ark" - ], - [ - "▁L", - "ot" - ], - [ - "▁Lo", - "t" - ], - [ - "it", - "udes" - ], - [ - "itu", - "des" - ], - [ - "itude", - "s" - ], - [ - "itud", - "es" - ], - [ - "af", - "ka" - ], - [ - "fi", - "ve" - ], - [ - "f", - "ive" - ], - [ - "at", - "io" - ], - [ - "ati", - "o" - ], - [ - "▁distingu", - "ish" - ], - [ - "ro", - "ck" - ], - [ - "roc", - "k" - ], - [ - "r", - "ock" - ], - [ - "égl", - "ise" - ], - [ - "é", - "glise" - ], - [ - "▁rapp", - "res" - ], - [ - "▁rap", - "pres" - ], - [ - ">\\", - "<" - ], - [ - ">", - "\\<" - ], - [ - "лі", - "й" - ], - [ - "л", - "ій" - ], - [ - "▁ми", - "ни" - ], - [ - "▁", - "мини" - ], - [ - "▁intitul", - "é" - ], - [ - "}}", - "(\\" - ], - [ - "}}(", - "\\" - ], - [ - "}", - "}(\\" - ], - [ - "▁R", - "out" - ], - [ - "▁Ro", - "ut" - ], - [ - "▁Rou", - "t" - ], - [ - "▁", - "Rout" - ], - [ - "▁B", - "order" - ], - [ - "▁Bor", - "der" - ], - [ - "▁", - "Border" - ], - [ - "▁over", - "rid" - ], - [ - "HO", - "ST" - ], - [ - "H", - "OST" - ], - [ - "rit", - "ten" - ], - [ - "ritt", - "en" - ], - [ - "r", - "itten" - ], - [ - "sa", - "y" - ], - [ - "s", - "ay" - ], - [ - "▁Ч", - "и" - ], - [ - "icht", - "ung" - ], - [ - "▁straight", - "forward" - ], - [ - "ob", - "b" - ], - [ - "o", - "bb" - ], - [ - "▁Ter", - "ra" - ], - [ - "▁Terr", - "a" - ], - [ - "▁[", - ":" - ], - [ - "▁", - "[:" - ], - [ - "Be", - "n" - ], - [ - "B", - "en" - ], - [ - "▁compos", - "ite" - ], - [ - ")+", - "\\" - ], - [ - ")", - "+\\" - ], - [ - "▁c", - "rown" - ], - [ - "▁cr", - "own" - ], - [ - "▁cro", - "wn" - ], - [ - "▁crow", - "n" - ], - [ - "dir", - "ection" - ], - [ - "direct", - "ion" - ], - [ - "dire", - "ction" - ], - [ - "d", - "irection" - ], - [ - "▁неско", - "лько" - ], - [ - "▁av", - "ail" - ], - [ - "▁purch", - "ased" - ], - [ - "▁purchase", - "d" - ], - [ - "ho", - "ok" - ], - [ - "h", - "ook" - ], - [ - "et", - "ies" - ], - [ - "eti", - "es" - ], - [ - "e", - "ties" - ], - [ - "▁f", - "ase" - ], - [ - "▁fa", - "se" - ], - [ - "▁fas", - "e" - ], - [ - "▁R", - "um" - ], - [ - "▁Ru", - "m" - ], - [ - "▁ge", - "nom" - ], - [ - "▁gen", - "om" - ], - [ - "▁d", - "ét" - ], - [ - "▁dé", - "t" - ], - [ - "ow", - "ą" - ], - [ - "mp", - "eg" - ], - [ - "▁І", - "н" - ], - [ - "des", - "ktop" - ], - [ - "▁in", - "jection" - ], - [ - "▁inj", - "ection" - ], - [ - "▁inject", - "ion" - ], - [ - "ag", - "le" - ], - [ - "a", - "gle" - ], - [ - "▁E", - "dd" - ], - [ - "▁Ed", - "d" - ], - [ - "_{", - "(" - ], - [ - "_", - "{(" - ], - [ - "▁H", - "em" - ], - [ - "▁He", - "m" - ], - [ - "ut", - "os" - ], - [ - "uto", - "s" - ], - [ - "pr", - "oj" - ], - [ - "pro", - "j" - ], - [ - "▁superfic", - "ie" - ], - [ - "Pl", - "ot" - ], - [ - "P", - "lot" - ], - [ - "▁D", - "ocker" - ], - [ - "▁Do", - "cker" - ], - [ - "▁Doc", - "ker" - ], - [ - "ät", - "z" - ], - [ - "ä", - "tz" - ], - [ - "kre", - "ich" - ], - [ - "k", - "reich" - ], - [ - "▁un", - "clear" - ], - [ - "▁uncle", - "ar" - ], - [ - "▁Un", - "ity" - ], - [ - "▁Unit", - "y" - ], - [ - "▁stream", - "s" - ], - [ - "▁stre", - "ams" - ], - [ - "ви", - "д" - ], - [ - "▁simpl", - "ified" - ], - [ - "Fil", - "l" - ], - [ - "Fi", - "ll" - ], - [ - "F", - "ill" - ], - [ - "▁s", - "ant" - ], - [ - "▁sa", - "nt" - ], - [ - "▁san", - "t" - ], - [ - "▁K", - "ommun" - ], - [ - "▁Kom", - "mun" - ], - [ - "▁Komm", - "un" - ], - [ - "▁d", - "uc" - ], - [ - "▁du", - "c" - ], - [ - "▁д", - "ве" - ], - [ - "▁o", - "bs" - ], - [ - "▁ob", - "s" - ], - [ - "▁", - "obs" - ], - [ - "ž", - "it" - ], - [ - "▁Jane", - "iro" - ], - [ - "б", - "я" - ], - [ - "▁pr", - "esso" - ], - [ - "▁pres", - "so" - ], - [ - "▁press", - "o" - ], - [ - "▁Min", - "istry" - ], - [ - "▁b", - "urst" - ], - [ - "▁bur", - "st" - ], - [ - "▁re", - "aching" - ], - [ - "▁reach", - "ing" - ], - [ - "li", - "ter" - ], - [ - "lit", - "er" - ], - [ - "l", - "iter" - ], - [ - "▁response", - "s" - ], - [ - "▁respons", - "es" - ], - [ - "▁E", - "ug" - ], - [ - "▁Eu", - "g" - ], - [ - "▁s", - "od" - ], - [ - "▁so", - "d" - ], - [ - "▁C", - "ord" - ], - [ - "▁Cor", - "d" - ], - [ - "▁Co", - "rd" - ], - [ - "▁P", - "erm" - ], - [ - "▁Per", - "m" - ], - [ - "▁Pe", - "rm" - ], - [ - "▁", - "Perm" - ], - [ - "par", - "ts" - ], - [ - "part", - "s" - ], - [ - "p", - "arts" - ], - [ - "ци", - "ма" - ], - [ - "vari", - "ables" - ], - [ - "variable", - "s" - ], - [ - "▁forgot", - "ten" - ], - [ - "Fe", - "rn" - ], - [ - "F", - "ern" - ], - [ - "ost", - "ęp" - ], - [ - "v", - "l" - ], - [ - "▁С", - "м" - ], - [ - "ki", - "m" - ], - [ - "k", - "im" - ], - [ - "aj", - "ąc" - ], - [ - "ają", - "c" - ], - [ - "a", - "jąc" - ], - [ - "на", - "ль" - ], - [ - "нал", - "ь" - ], - [ - "н", - "аль" - ], - [ - "г", - "ле" - ], - [ - "hel", - "per" - ], - [ - "help", - "er" - ], - [ - "du", - "p" - ], - [ - "d", - "up" - ], - [ - "eu", - "w" - ], - [ - "e", - "uw" - ], - [ - "fr", - "a" - ], - [ - "f", - "ra" - ], - [ - "ell", - "ite" - ], - [ - "elli", - "te" - ], - [ - "an", - "ya" - ], - [ - "any", - "a" - ], - [ - "▁re", - "ign" - ], - [ - "▁r", - "eign" - ], - [ - "▁rei", - "gn" - ], - [ - "ges", - "amt" - ], - [ - "се", - "да" - ], - [ - "▁R", - "yan" - ], - [ - "▁Ry", - "an" - ], - [ - "▁form", - "atted" - ], - [ - "▁format", - "ted" - ], - [ - "▁formatt", - "ed" - ], - [ - "▁B", - "org" - ], - [ - "▁Bo", - "rg" - ], - [ - "▁Bor", - "g" - ], - [ - "wal", - "k" - ], - [ - "w", - "alk" - ], - [ - "▁а", - "л" - ], - [ - "▁", - "ал" - ], - [ - "agnost", - "ics" - ], - [ - "agnostic", - "s" - ], - [ - "▁C", - "ape" - ], - [ - "▁Cap", - "e" - ], - [ - "▁Ca", - "pe" - ], - [ - "▁Fran", - "co" - ], - [ - "▁Franc", - "o" - ], - [ - "▁f", - "ug" - ], - [ - "▁fu", - "g" - ], - [ - ":", - ")" - ], - [ - "ю", - "з" - ], - [ - "F", - "etch" - ], - [ - "▁rough", - "ly" - ], - [ - "▁M", - "is" - ], - [ - "▁Mi", - "s" - ], - [ - "uet", - "ooth" - ], - [ - "▁Venez", - "uela" - ], - [ - "▁a", - "stronom" - ], - [ - "▁astr", - "onom" - ], - [ - "\")", - "`" - ], - [ - "\"", - ")`" - ], - [ - "om", - "bres" - ], - [ - "omb", - "res" - ], - [ - "▁кото", - "рой" - ], - [ - "ó", - "p" - ], - [ - "ow", - "ed" - ], - [ - "owe", - "d" - ], - [ - "o", - "wed" - ], - [ - "H", - "R" - ], - [ - "▁C", - "amer" - ], - [ - "▁Cam", - "er" - ], - [ - "▁Ca", - "mer" - ], - [ - "ки", - "е" - ], - [ - "par", - "ison" - ], - [ - "▁B", - "ij" - ], - [ - "▁Bi", - "j" - ], - [ - "tem", - "plates" - ], - [ - "template", - "s" - ], - [ - "en", - "vironment" - ], - [ - "environ", - "ment" - ], - [ - "iz", - "ação" - ], - [ - "iza", - "ção" - ], - [ - "▁é", - "r" - ], - [ - "▁", - "ér" - ], - [ - "▁pl", - "enty" - ], - [ - "▁Type", - "Error" - ], - [ - "▁for", - "ty" - ], - [ - "▁fort", - "y" - ], - [ - "ко", - "ном" - ], - [ - "кон", - "ом" - ], - [ - "коно", - "м" - ], - [ - "▁S", - "ed" - ], - [ - "▁Se", - "d" - ], - [ - "▁th", - "ats" - ], - [ - "▁that", - "s" - ], - [ - "▁gra", - "vity" - ], - [ - "▁grav", - "ity" - ], - [ - "▁gravit", - "y" - ], - [ - "▁", - "gravity" - ], - [ - "▁spirit", - "ual" - ], - [ - "▁dup", - "licates" - ], - [ - "▁duplicate", - "s" - ], - [ - "▁enc", - "ryption" - ], - [ - "▁encrypt", - "ion" - ], - [ - "▁re", - "ven" - ], - [ - "▁r", - "even" - ], - [ - "▁rev", - "en" - ], - [ - "▁reve", - "n" - ], - [ - "▁", - "reven" - ], - [ - "get", - "Instance" - ], - [ - "äl", - "lor" - ], - [ - "äll", - "or" - ], - [ - "dis", - "k" - ], - [ - "di", - "sk" - ], - [ - "d", - "isk" - ], - [ - "▁th", - "ro" - ], - [ - "▁thr", - "o" - ], - [ - "▁N", - "ak" - ], - [ - "▁Na", - "k" - ], - [ - "▁p", - "oł" - ], - [ - "▁po", - "ł" - ], - [ - "▁her", - "aus" - ], - [ - "in", - "valid" - ], - [ - "s", - "By" - ], - [ - "Bo", - "ot" - ], - [ - "B", - "oot" - ], - [ - "▁bu", - "cket" - ], - [ - "▁", - "bucket" - ], - [ - "▁P", - "arse" - ], - [ - "▁Par", - "se" - ], - [ - "▁", - "Parse" - ], - [ - "he", - "x" - ], - [ - "h", - "ex" - ], - [ - "Con", - "ne" - ], - [ - "C", - "onne" - ], - [ - "▁Comp", - "uter" - ], - [ - "▁Comput", - "er" - ], - [ - "zy", - "k" - ], - [ - "z", - "yk" - ], - [ - "▁indu", - "ced" - ], - [ - "▁Br", - "uno" - ], - [ - "▁Bru", - "no" - ], - [ - "▁Brun", - "o" - ], - [ - "▁address", - "ed" - ], - [ - "▁addr", - "essed" - ], - [ - "ma", - "nia" - ], - [ - "man", - "ia" - ], - [ - "m", - "ania" - ], - [ - "▁in", - "clus" - ], - [ - "▁incl", - "us" - ], - [ - "▁inc", - "lus" - ], - [ - "▁inclu", - "s" - ], - [ - "oun", - "ced" - ], - [ - "ounce", - "d" - ], - [ - "script", - "size" - ], - [ - "scripts", - "ize" - ], - [ - "▁E", - "pis" - ], - [ - "▁Ep", - "is" - ], - [ - "▁v", - "ocal" - ], - [ - "▁vo", - "cal" - ], - [ - "▁voc", - "al" - ], - [ - "▁Jon", - "athan" - ], - [ - "у", - "м" - ], - [ - "st", - "aden" - ], - [ - "sta", - "den" - ], - [ - "stad", - "en" - ], - [ - "▁Child", - "ren" - ], - [ - "▁", - "Children" - ], - [ - "пе", - "й" - ], - [ - "п", - "ей" - ], - [ - "It", - "alia" - ], - [ - "Ital", - "ia" - ], - [ - "reib", - "ung" - ], - [ - "▁n", - "ost" - ], - [ - "▁no", - "st" - ], - [ - "▁nos", - "t" - ], - [ - "▁", - "nost" - ], - [ - "▁е", - "щё" - ], - [ - "▁Wer", - "ke" - ], - [ - "▁Werk", - "e" - ], - [ - "▁act", - "ress" - ], - [ - "▁Minn", - "esota" - ], - [ - "ri", - "ke" - ], - [ - "rik", - "e" - ], - [ - "r", - "ike" - ], - [ - "▁t", - "ek" - ], - [ - "▁te", - "k" - ], - [ - "▁", - "tek" - ], - [ - "▁prime", - "ira" - ], - [ - "▁f", - "rat" - ], - [ - "▁fr", - "at" - ], - [ - "▁fra", - "t" - ], - [ - "▁Config", - "uration" - ], - [ - "▁", - "Configuration" - ], - [ - "▁b", - "id" - ], - [ - "▁bi", - "d" - ], - [ - "▁", - "bid" - ], - [ - "tr", - "igger" - ], - [ - "Cont", - "ents" - ], - [ - "Content", - "s" - ], - [ - "▁const", - "antly" - ], - [ - "▁constant", - "ly" - ], - [ - "!!", - "!" - ], - [ - "!", - "!!" - ], - [ - "▁d", - "read" - ], - [ - "▁dr", - "ead" - ], - [ - "▁dre", - "ad" - ], - [ - "▁hundred", - "s" - ], - [ - "ist", - "ische" - ], - [ - "isti", - "sche" - ], - [ - "▁card", - "inal" - ], - [ - "T", - "ABLE" - ], - [ - "▁est", - "os" - ], - [ - "▁esto", - "s" - ], - [ - "ass", - "oc" - ], - [ - "asso", - "c" - ], - [ - "gr", - "ay" - ], - [ - "gra", - "y" - ], - [ - "g", - "ray" - ], - [ - "▁Sch", - "loss" - ], - [ - "▁Schl", - "oss" - ], - [ - "▁s", - "che" - ], - [ - "▁sc", - "he" - ], - [ - "▁sch", - "e" - ], - [ - "▁", - "sche" - ], - [ - "con", - "g" - ], - [ - "co", - "ng" - ], - [ - "c", - "ong" - ], - [ - "▁ko", - "ji" - ], - [ - "ète", - "s" - ], - [ - "èt", - "es" - ], - [ - "è", - "tes" - ], - [ - "▁E", - "ra" - ], - [ - "▁Er", - "a" - ], - [ - "om", - "i" - ], - [ - "o", - "mi" - ], - [ - "▁S", - "R" - ], - [ - "▁", - "SR" - ], - [ - "▁wr", - "apped" - ], - [ - "▁wra", - "pped" - ], - [ - "▁wrap", - "ped" - ], - [ - "▁tr", - "unc" - ], - [ - "▁a", - "h" - ], - [ - "▁", - "ah" - ], - [ - "eg", - "os" - ], - [ - "ego", - "s" - ], - [ - "ok", - "i" - ], - [ - "o", - "ki" - ], - [ - "mo", - "uth" - ], - [ - "m", - "outh" - ], - [ - "log", - "ging" - ], - [ - "▁f", - "asc" - ], - [ - "▁fa", - "sc" - ], - [ - "▁fas", - "c" - ], - [ - "▁S", - "ample" - ], - [ - "▁Sam", - "ple" - ], - [ - "▁", - "Sample" - ], - [ - "▁c", - "onte" - ], - [ - "▁con", - "te" - ], - [ - "▁cont", - "e" - ], - [ - "▁v", - "illa" - ], - [ - "▁vi", - "lla" - ], - [ - "▁vill", - "a" - ], - [ - "▁vil", - "la" - ], - [ - "▁", - "villa" - ], - [ - "com", - "ments" - ], - [ - "comm", - "ents" - ], - [ - "comment", - "s" - ], - [ - "▁b", - "atal" - ], - [ - "▁ba", - "tal" - ], - [ - "▁bat", - "al" - ], - [ - "▁bata", - "l" - ], - [ - "▁Garc", - "ía" - ], - [ - "▁N", - "orte" - ], - [ - "▁Nor", - "te" - ], - [ - "▁we", - "chsel" - ], - [ - "▁Muse", - "o" - ], - [ - "▁enf", - "ants" - ], - [ - "▁whis", - "per" - ], - [ - "na", - "ke" - ], - [ - "nak", - "e" - ], - [ - "n", - "ake" - ], - [ - "▁jed", - "nak" - ], - [ - "l", - "ês" - ], - [ - "en", - "ders" - ], - [ - "end", - "ers" - ], - [ - "ender", - "s" - ], - [ - "ende", - "rs" - ], - [ - "▁ä", - "l" - ], - [ - "▁", - "äl" - ], - [ - "▁V", - "B" - ], - [ - "▁", - "VB" - ], - [ - "▁cook", - "ies" - ], - [ - "▁cookie", - "s" - ], - [ - "ze", - "ti" - ], - [ - "zet", - "i" - ], - [ - "z", - "eti" - ], - [ - "at", - "um" - ], - [ - "atu", - "m" - ], - [ - "▁d", - "edu" - ], - [ - "▁de", - "du" - ], - [ - "▁ded", - "u" - ], - [ - "▁arr", - "anged" - ], - [ - "▁arrang", - "ed" - ], - [ - "la", - "z" - ], - [ - "l", - "az" - ], - [ - "▁cu", - "enta" - ], - [ - "ym", - "l" - ], - [ - "y", - "ml" - ], - [ - "▁f", - "lav" - ], - [ - "▁fl", - "av" - ], - [ - "▁fla", - "v" - ], - [ - "M", - "R" - ], - [ - "em", - "et" - ], - [ - "eme", - "t" - ], - [ - "e", - "met" - ], - [ - "бі", - "ль" - ], - [ - "б", - "іль" - ], - [ - "cm", - "p" - ], - [ - "c", - "mp" - ], - [ - "it", - "uto" - ], - [ - "itu", - "to" - ], - [ - "itut", - "o" - ], - [ - "ze", - "tt" - ], - [ - "zet", - "t" - ], - [ - "z", - "ett" - ], - [ - "▁en", - "vi" - ], - [ - "▁env", - "i" - ], - [ - "▁k", - "ot" - ], - [ - "▁ko", - "t" - ], - [ - "$", - ":" - ], - [ - "up", - "per" - ], - [ - "upp", - "er" - ], - [ - "u", - "pper" - ], - [ - "▁Al", - "berto" - ], - [ - "▁Albert", - "o" - ], - [ - "k", - "b" - ], - [ - "An", - "al" - ], - [ - "A", - "nal" - ], - [ - "ör", - "t" - ], - [ - "ö", - "rt" - ], - [ - "▁[", - "-" - ], - [ - "▁", - "[-" - ], - [ - "▁führ", - "te" - ], - [ - "▁führt", - "e" - ], - [ - "ia", - "h" - ], - [ - "i", - "ah" - ], - [ - "▁T", - "un" - ], - [ - "▁Tu", - "n" - ], - [ - "▁и", - "скус" - ], - [ - "uw", - "e" - ], - [ - "u", - "we" - ], - [ - "is", - "pecies" - ], - [ - "i", - "species" - ], - [ - "P", - "ub" - ], - [ - "Syn", - "c" - ], - [ - "S", - "ync" - ], - [ - "▁Colomb", - "ia" - ], - [ - "ak", - "ers" - ], - [ - "ake", - "rs" - ], - [ - "aker", - "s" - ], - [ - "▁Imper", - "ial" - ], - [ - "ov", - "ing" - ], - [ - "ovi", - "ng" - ], - [ - "o", - "ving" - ], - [ - "▁int", - "elligence" - ], - [ - "▁intellig", - "ence" - ], - [ - "▁equip", - "ment" - ], - [ - "ei", - "n" - ], - [ - "e", - "in" - ], - [ - "dag", - "ger" - ], - [ - "d", - "agger" - ], - [ - "▁Ed", - "ge" - ], - [ - "▁", - "Edge" - ], - [ - "▁Рес", - "публи" - ], - [ - "adratkil", - "ometer" - ], - [ - "▁An", - "to" - ], - [ - "▁Ant", - "o" - ], - [ - "▁char", - "ges" - ], - [ - "▁charge", - "s" - ], - [ - "▁charg", - "es" - ], - [ - "▁O", - "cean" - ], - [ - "▁simpl", - "ify" - ], - [ - "▁m", - "iesz" - ], - [ - "▁mi", - "esz" - ], - [ - "▁mie", - "sz" - ], - [ - "run", - "ning" - ], - [ - "r", - "unning" - ], - [ - "▁L", - "ac" - ], - [ - "▁La", - "c" - ], - [ - "gen", - "ommen" - ], - [ - "▁represent", - "ative" - ], - [ - "=", - "." - ], - [ - "▁P", - "red" - ], - [ - "▁Pr", - "ed" - ], - [ - "▁Pre", - "d" - ], - [ - "▁", - "Pred" - ], - [ - "▁sp", - "ite" - ], - [ - "ci", - "ale" - ], - [ - "cial", - "e" - ], - [ - "cia", - "le" - ], - [ - "c", - "iale" - ], - [ - "▁n", - "ave" - ], - [ - "▁na", - "ve" - ], - [ - "▁nav", - "e" - ], - [ - "▁ext", - "ens" - ], - [ - "▁neut", - "ral" - ], - [ - "▁кото", - "рая" - ], - [ - ".<", - "/" - ], - [ - ".", - ":", - ":" - ], - [ - ">", - "::" - ], - [ - "ш", - "ёл" - ], - [ - "▁princip", - "ales" - ], - [ - "▁principal", - "es" - ], - [ - "▁principale", - "s" - ], - [ - "▁ц", - "ар" - ], - [ - "▁t", - "ied" - ], - [ - "▁ti", - "ed" - ], - [ - "▁tie", - "d" - ], - [ - "▁al", - "ta" - ], - [ - "▁alt", - "a" - ], - [ - "▁C", - "it" - ], - [ - "▁Ci", - "t" - ], - [ - "li", - "ned" - ], - [ - "line", - "d" - ], - [ - "lin", - "ed" - ], - [ - "l", - "ined" - ], - [ - "ma", - "jor" - ], - [ - "▁p", - "unk" - ], - [ - "▁pun", - "k" - ], - [ - "▁cin", - "co" - ], - [ - "ick", - "ý" - ], - [ - "▁r", - "aggi" - ], - [ - "▁ra", - "ggi" - ], - [ - "▁rag", - "gi" - ], - [ - "ty", - "pen" - ], - [ - "type", - "n" - ], - [ - "typ", - "en" - ], - [ - "тель", - "ство" - ], - [ - "▁con", - "ference" - ], - [ - "▁confer", - "ence" - ], - [ - "▁с", - "іль" - ], - [ - "▁сі", - "ль" - ], - [ - "▁he", - "ut" - ], - [ - "i", - "š" - ], - [ - "ет", - "а" - ], - [ - "е", - "та" - ], - [ - "vel", - "ope" - ], - [ - "velop", - "e" - ], - [ - "h", - "box" - ], - [ - "no", - "wn" - ], - [ - "now", - "n" - ], - [ - "n", - "own" - ], - [ - "▁z", - "ar" - ], - [ - "▁za", - "r" - ], - [ - "▁", - "zar" - ], - [ - "kt", - "iv" - ], - [ - "ie", - "ß" - ], - [ - "▁с", - "тре" - ], - [ - "▁ст", - "ре" - ], - [ - "▁", - "стре" - ], - [ - "▁Event", - "Args" - ], - [ - "▁", - "EventArgs" - ], - [ - "▁I", - "ra" - ], - [ - "▁Ir", - "a" - ], - [ - "▁V", - "BA" - ], - [ - "▁VB", - "A" - ], - [ - "▁S", - "anto" - ], - [ - "▁San", - "to" - ], - [ - "▁Sant", - "o" - ], - [ - "▁F", - "ach" - ], - [ - "▁Fa", - "ch" - ], - [ - "▁Fac", - "h" - ], - [ - "▁F", - "F" - ], - [ - "▁", - "FF" - ], - [ - "▁Ray", - "mond" - ], - [ - "ме", - "ц" - ], - [ - "im", - "plementation" - ], - [ - "▁bro", - "thers" - ], - [ - "▁brother", - "s" - ], - [ - "▁cô", - "té" - ], - [ - "▁cont", - "rollers" - ], - [ - "▁control", - "lers" - ], - [ - "▁controller", - "s" - ], - [ - "▁C", - "le" - ], - [ - "▁Cl", - "e" - ], - [ - "▁c", - "able" - ], - [ - "▁ca", - "ble" - ], - [ - "▁cab", - "le" - ], - [ - "▁con", - "fer" - ], - [ - "▁conf", - "er" - ], - [ - "▁{", - "-" - ], - [ - "▁", - "{-" - ], - [ - "▁cz", - "ł" - ], - [ - "▁Fil", - "ip" - ], - [ - "at", - "orio" - ], - [ - "ator", - "io" - ], - [ - "ato", - "rio" - ], - [ - "atori", - "o" - ], - [ - "▁w", - "icht" - ], - [ - "▁be", - "aucoup" - ], - [ - "▁L", - "it" - ], - [ - "▁Li", - "t" - ], - [ - "▁s", - "essions" - ], - [ - "▁session", - "s" - ], - [ - "▁sess", - "ions" - ], - [ - "▁Su", - "ccess" - ], - [ - "▁", - "Success" - ], - [ - "▁ro", - "uting" - ], - [ - "▁rout", - "ing" - ], - [ - "▁rou", - "ting" - ], - [ - "ni", - "u" - ], - [ - "n", - "iu" - ], - [ - "▁V", - "ice" - ], - [ - "▁Vi", - "ce" - ], - [ - "▁Vic", - "e" - ], - [ - "▁k", - "rit" - ], - [ - "▁kr", - "it" - ], - [ - "up", - "dated" - ], - [ - "update", - "d" - ], - [ - "▁In", - "valid" - ], - [ - "▁", - "Invalid" - ], - [ - "▁Mann", - "schaft" - ], - [ - "▁a", - "os" - ], - [ - "▁ao", - "s" - ], - [ - "▁t", - "udi" - ], - [ - "▁tu", - "di" - ], - [ - "▁tud", - "i" - ], - [ - "▁des", - "prés" - ], - [ - "▁desp", - "rés" - ], - [ - "qu", - "a" - ], - [ - "q", - "ua" - ], - [ - "Cont", - "ains" - ], - [ - "Comp", - "any" - ], - [ - "▁person", - "a" - ], - [ - "▁pers", - "ona" - ], - [ - "ad", - "apter" - ], - [ - "с", - "ни" - ], - [ - "▁v", - "oj" - ], - [ - "▁vo", - "j" - ], - [ - "▁", - "voj" - ], - [ - "▁e", - "scri" - ], - [ - "▁es", - "cri" - ], - [ - "▁esc", - "ri" - ], - [ - "ag", - "t" - ], - [ - "a", - "gt" - ], - [ - "▁с", - "тво" - ], - [ - "▁ст", - "во" - ], - [ - "▁", - "ство" - ], - [ - "▁dist", - "rito" - ], - [ - "ap", - "an" - ], - [ - "apa", - "n" - ], - [ - "a", - "pan" - ], - [ - "▁aspect", - "s" - ], - [ - "▁z", - "al" - ], - [ - "▁za", - "l" - ], - [ - ")^", - "{\\" - ], - [ - ")^{", - "\\" - ], - [ - ")", - "^{\\" - ], - [ - "▁syst", - "ème" - ], - [ - "▁а", - "на" - ], - [ - "▁ан", - "а" - ], - [ - "▁", - "ана" - ], - [ - "ium", - "s" - ], - [ - "iu", - "ms" - ], - [ - "i", - "ums" - ], - [ - "▁prem", - "iers" - ], - [ - "▁premi", - "ers" - ], - [ - "▁premier", - "s" - ], - [ - "▁по", - "э" - ], - [ - "▁m", - "ère" - ], - [ - "▁G", - "un" - ], - [ - "▁Gu", - "n" - ], - [ - "ap", - "ing" - ], - [ - "api", - "ng" - ], - [ - "a", - "ping" - ], - [ - "▁R", - "ain" - ], - [ - "▁Ra", - "in" - ], - [ - "▁ig", - "ual" - ], - [ - "▁process", - "or" - ], - [ - "▁proc", - "essor" - ], - [ - "▁", - "processor" - ], - [ - "')", - "`" - ], - [ - "'", - ")`" - ], - [ - "bl", - "ing" - ], - [ - "b", - "ling" - ], - [ - "▁m", - "ism" - ], - [ - "▁mi", - "sm" - ], - [ - "▁mis", - "m" - ], - [ - "br", - "áz" - ], - [ - "▁close", - "st" - ], - [ - "▁clos", - "est" - ], - [ - "▁Re", - "ading" - ], - [ - "▁Read", - "ing" - ], - [ - "▁по", - "пу" - ], - [ - "con", - "o" - ], - [ - "co", - "no" - ], - [ - "c", - "ono" - ], - [ - "▁k", - "ult" - ], - [ - "▁!", - "!" - ], - [ - "▁", - "!!" - ], - [ - "▁Ex", - "pression" - ], - [ - "▁Exp", - "ression" - ], - [ - "▁Express", - "ion" - ], - [ - "▁", - "Expression" - ], - [ - "▁indu", - "ction" - ], - [ - "▁induct", - "ion" - ], - [ - "ah", - "ren" - ], - [ - "ahr", - "en" - ], - [ - "a", - "hren" - ], - [ - "▁c", - "p" - ], - [ - "▁", - "cp" - ], - [ - "▁viol", - "ence" - ], - [ - "ient", - "í" - ], - [ - "cent", - "e" - ], - [ - "cen", - "te" - ], - [ - "c", - "ente" - ], - [ - "▁D", - "ob" - ], - [ - "▁Do", - "b" - ], - [ - "ja", - "ck" - ], - [ - "j", - "ack" - ], - [ - "so", - "ng" - ], - [ - "son", - "g" - ], - [ - "s", - "ong" - ], - [ - "bu", - "cket" - ], - [ - "▁de", - "port" - ], - [ - "▁dep", - "ort" - ], - [ - "ки", - "ми" - ], - [ - "ким", - "и" - ], - [ - "l", - "m" - ], - [ - "▁in", - "noc" - ], - [ - "▁inn", - "oc" - ], - [ - "Ch", - "anges" - ], - [ - "Change", - "s" - ], - [ - "▁pro", - "hib" - ], - [ - "ang", - "ol" - ], - [ - "ango", - "l" - ], - [ - "isecond", - "s" - ], - [ - "i", - "seconds" - ], - [ - "▁п", - "ор" - ], - [ - "▁по", - "р" - ], - [ - "▁", - "пор" - ], - [ - "▁h", - "ip" - ], - [ - "▁hi", - "p" - ], - [ - "▁", - "hip" - ], - [ - "▁p", - "ů" - ], - [ - "en", - "dorf" - ], - [ - "end", - "orf" - ], - [ - "endo", - "rf" - ], - [ - "endor", - "f" - ], - [ - "▁sch", - "eduled" - ], - [ - "▁schedule", - "d" - ], - [ - "▁Fl", - "ug" - ], - [ - "ac", - "yj" - ], - [ - "acy", - "j" - ], - [ - "▁Fil", - "ms" - ], - [ - "▁Film", - "s" - ], - [ - "athed", - "ral" - ], - [ - "Po", - "wer" - ], - [ - "P", - "ower" - ], - [ - "ar", - "din" - ], - [ - "ard", - "in" - ], - [ - "ardi", - "n" - ], - [ - "ka", - "p" - ], - [ - "k", - "ap" - ], - [ - "ic", - "ken" - ], - [ - "ick", - "en" - ], - [ - "i", - "cken" - ], - [ - "re", - "size" - ], - [ - "res", - "ize" - ], - [ - "eu", - "s" - ], - [ - "e", - "us" - ], - [ - "r", - "r" - ], - [ - "ля", - "н" - ], - [ - "л", - "ян" - ], - [ - "▁H", - "av" - ], - [ - "▁Ha", - "v" - ], - [ - "▁o", - "ra" - ], - [ - "▁or", - "a" - ], - [ - "▁", - "ora" - ], - [ - "FR", - "OM" - ], - [ - "F", - "ROM" - ], - [ - "ло", - "ся" - ], - [ - "▁te", - "rug" - ], - [ - "▁ter", - "ug" - ], - [ - "▁W", - "idth" - ], - [ - "▁", - "Width" - ], - [ - "▁accept", - "s" - ], - [ - "бе", - "н" - ], - [ - "б", - "ен" - ], - [ - "▁m", - "ich" - ], - [ - "▁mi", - "ch" - ], - [ - "▁mic", - "h" - ], - [ - "▁C", - "zech" - ], - [ - "▁Cz", - "ech" - ], - [ - "▁B", - "edeut" - ], - [ - "▁ви", - "д" - ], - [ - "▁", - "вид" - ], - [ - "ô", - "me" - ], - [ - "▁L", - "oop" - ], - [ - "▁Lo", - "op" - ], - [ - "▁", - "Loop" - ], - [ - "sp", - "ect" - ], - [ - "spe", - "ct" - ], - [ - "spec", - "t" - ], - [ - "s", - "pect" - ], - [ - "ü", - "k" - ], - [ - "es", - "ton" - ], - [ - "est", - "on" - ], - [ - "esto", - "n" - ], - [ - "e", - "ston" - ], - [ - "▁s", - "lot" - ], - [ - "▁sl", - "ot" - ], - [ - "▁slo", - "t" - ], - [ - "▁został", - "a" - ], - [ - "▁Charlot", - "te" - ], - [ - "▁состав", - "ляет" - ], - [ - "▁составля", - "ет" - ], - [ - "▁Prom", - "ise" - ], - [ - "▁e", - "po" - ], - [ - "▁ep", - "o" - ], - [ - "▁d", - "iction" - ], - [ - "▁di", - "ction" - ], - [ - "▁dict", - "ion" - ], - [ - "▁dic", - "tion" - ], - [ - "▁", - "diction" - ], - [ - "▁Frank", - "lin" - ], - [ - "▁R", - "iv" - ], - [ - "▁Ri", - "v" - ], - [ - "ру", - "г" - ], - [ - "ci", - "da" - ], - [ - "cid", - "a" - ], - [ - "c", - "ida" - ], - [ - "▁Ex", - "plorer" - ], - [ - "cook", - "ie" - ], - [ - "▁former", - "ly" - ], - [ - "▁municip", - "ality" - ], - [ - "▁municipal", - "ity" - ], - [ - "▁Ste", - "fan" - ], - [ - "▁Stef", - "an" - ], - [ - "list", - "s" - ], - [ - "lis", - "ts" - ], - [ - "l", - "ists" - ], - [ - "CO", - "MP" - ], - [ - "COM", - "P" - ], - [ - "Le", - "n" - ], - [ - "L", - "en" - ], - [ - "▁Sta", - "at" - ], - [ - "▁N", - "BA" - ], - [ - "de", - "ns" - ], - [ - "den", - "s" - ], - [ - "d", - "ens" - ], - [ - "▁osc", - "ill" - ], - [ - "!", - "." - ], - [ - "▁P", - "O" - ], - [ - "▁", - "PO" - ], - [ - "ô", - "ne" - ], - [ - "es", - "es" - ], - [ - "ese", - "s" - ], - [ - "▁на", - "циональ" - ], - [ - "vo", - "or" - ], - [ - "v", - "oor" - ], - [ - "▁ко", - "пи" - ], - [ - "▁по", - "зи" - ], - [ - "▁", - "пози" - ], - [ - "ul", - "u" - ], - [ - "u", - "lu" - ], - [ - "Const", - "raint" - ], - [ - "Constra", - "int" - ], - [ - "▁сво", - "ей" - ], - [ - "▁algebra", - "ic" - ], - [ - "ч", - "ня" - ], - [ - "Di", - "ct" - ], - [ - "D", - "ict" - ], - [ - "▁appear", - "ing" - ], - [ - "▁appe", - "aring" - ], - [ - "▁p", - "rav" - ], - [ - "▁pr", - "av" - ], - [ - "▁pra", - "v" - ], - [ - "▁Univers", - "al" - ], - [ - "B", - "rowser" - ], - [ - "▁Sing", - "ap" - ], - [ - "ennes", - "see" - ], - [ - "]", - "_" - ], - [ - "▁S", - "of" - ], - [ - "▁So", - "f" - ], - [ - "▁C", - "ad" - ], - [ - "▁Ca", - "d" - ], - [ - "oun", - "ce" - ], - [ - "▁cost", - "s" - ], - [ - "▁cos", - "ts" - ], - [ - "]{", - "\\" - ], - [ - "]", - "{\\" - ], - [ - "../", - "../" - ], - [ - "ськ", - "ій" - ], - [ - "ські", - "й" - ], - [ - "üh", - "l" - ], - [ - "ü", - "hl" - ], - [ - "ie", - "ty" - ], - [ - "iet", - "y" - ], - [ - "i", - "ety" - ], - [ - "п", - "р" - ], - [ - "▁interpre", - "ted" - ], - [ - "▁interpret", - "ed" - ], - [ - "aj", - "n" - ], - [ - "col", - "og" - ], - [ - "co", - "log" - ], - [ - "colo", - "g" - ], - [ - "c", - "olog" - ], - [ - "Y", - "S" - ], - [ - "ma", - "ns" - ], - [ - "man", - "s" - ], - [ - "m", - "ans" - ], - [ - "▁met", - "rics" - ], - [ - "▁metric", - "s" - ], - [ - "▁reg", - "istr" - ], - [ - "▁", - "registr" - ], - [ - "ist", - "ance" - ], - [ - "istan", - "ce" - ], - [ - "▁По", - "ль" - ], - [ - "▁an", - "onymous" - ], - [ - "▁", - "anonymous" - ], - [ - "▁institution", - "s" - ], - [ - "▁instit", - "utions" - ], - [ - "▁z", - "dob" - ], - [ - "▁zd", - "ob" - ], - [ - "pr", - "üng" - ], - [ - "prü", - "ng" - ], - [ - "▁ар", - "ти" - ], - [ - "▁e", - "stat" - ], - [ - "▁est", - "at" - ], - [ - "▁es", - "tat" - ], - [ - "▁esta", - "t" - ], - [ - "ac", - "ci" - ], - [ - "acc", - "i" - ], - [ - "▁academ", - "ic" - ], - [ - "▁ch", - "iesa" - ], - [ - "▁chi", - "esa" - ], - [ - "▁G", - "ian" - ], - [ - "▁Gi", - "an" - ], - [ - "▁Gia", - "n" - ], - [ - "cont", - "rib" - ], - [ - "contr", - "ib" - ], - [ - "um", - "ed" - ], - [ - "ume", - "d" - ], - [ - "u", - "med" - ], - [ - "▁G", - "ir" - ], - [ - "▁Gi", - "r" - ], - [ - "▁base", - "ball" - ], - [ - "numer", - "ic" - ], - [ - "n", - "umeric" - ], - [ - "Gener", - "ator" - ], - [ - "G", - "M" - ], - [ - "▁t", - "iny" - ], - [ - "▁ti", - "ny" - ], - [ - "▁tin", - "y" - ], - [ - "▁", - "tiny" - ], - [ - "▁dist", - "inction" - ], - [ - "▁distinct", - "ion" - ], - [ - "ге", - "р" - ], - [ - "г", - "ер" - ], - [ - "▁r", - "ust" - ], - [ - "▁ru", - "st" - ], - [ - "▁rus", - "t" - ], - [ - "▁", - "rust" - ], - [ - "▁FI", - "FA" - ], - [ - "▁Pro", - "perties" - ], - [ - "▁", - "Properties" - ], - [ - "^", - "-" - ], - [ - "▁э", - "кс" - ], - [ - "▁эк", - "с" - ], - [ - "▁Sta", - "nis" - ], - [ - "▁Stan", - "is" - ], - [ - "▁A", - "jax" - ], - [ - "es", - "cape" - ], - [ - "esc", - "ape" - ], - [ - "▁con", - "sp" - ], - [ - "▁cons", - "p" - ], - [ - "▁C", - "hen" - ], - [ - "▁Ch", - "en" - ], - [ - "▁Che", - "n" - ], - [ - "▁N", - "aval" - ], - [ - "▁Na", - "val" - ], - [ - "▁Nav", - "al" - ], - [ - "Bi", - "t" - ], - [ - "B", - "it" - ], - [ - "▁b", - "ât" - ], - [ - "ски", - "ми" - ], - [ - "ским", - "и" - ], - [ - "с", - "кими" - ], - [ - "dr", - "ive" - ], - [ - "dri", - "ve" - ], - [ - "d", - "rive" - ], - [ - "▁R", - "ound" - ], - [ - "▁Ro", - "und" - ], - [ - "▁Rou", - "nd" - ], - [ - "ph", - "oto" - ], - [ - "▁Le", - "vel" - ], - [ - "▁Lev", - "el" - ], - [ - "▁", - "Level" - ], - [ - "▁g", - "eg" - ], - [ - "▁ge", - "g" - ], - [ - "▁", - "geg" - ], - [ - "To", - "m" - ], - [ - "T", - "om" - ], - [ - "▁M", - "obile" - ], - [ - "▁", - "Mobile" - ], - [ - "▁T", - "rop" - ], - [ - "▁Tr", - "op" - ], - [ - "▁Tro", - "p" - ], - [ - "Dir", - "ection" - ], - [ - "Direct", - "ion" - ], - [ - "D", - "irection" - ], - [ - "is", - "an" - ], - [ - "isa", - "n" - ], - [ - "i", - "san" - ], - [ - ")^", - "{-" - ], - [ - ")^{", - "-" - ], - [ - ")", - "^{-" - ], - [ - "▁Set", - "ting" - ], - [ - "▁", - "Setting" - ], - [ - "▁Pro", - "bably" - ], - [ - "ль", - "я" - ], - [ - "л", - "ья" - ], - [ - "▁as", - "sets" - ], - [ - "▁ass", - "ets" - ], - [ - "▁asse", - "ts" - ], - [ - "▁asset", - "s" - ], - [ - "▁", - "assets" - ], - [ - "▁a", - "tte" - ], - [ - "▁at", - "te" - ], - [ - "▁att", - "e" - ], - [ - "▁", - "atte" - ], - [ - "▁b", - "ulk" - ], - [ - "▁bul", - "k" - ], - [ - "és", - "t" - ], - [ - "é", - "st" - ], - [ - "▁w", - "ing" - ], - [ - "▁win", - "g" - ], - [ - "▁", - "wing" - ], - [ - "ni", - "us" - ], - [ - "niu", - "s" - ], - [ - "n", - "ius" - ], - [ - "▁w", - "ins" - ], - [ - "▁win", - "s" - ], - [ - "▁l", - "ud" - ], - [ - "▁lu", - "d" - ], - [ - "us", - "hing" - ], - [ - "ush", - "ing" - ], - [ - "▁d", - "even" - ], - [ - "▁de", - "ven" - ], - [ - "▁dev", - "en" - ], - [ - "▁deve", - "n" - ], - [ - "огра", - "ф" - ], - [ - "о", - "граф" - ], - [ - "burg", - "er" - ], - [ - "bur", - "ger" - ], - [ - "b", - "urger" - ], - [ - "▁em", - "bar" - ], - [ - "▁emb", - "ar" - ], - [ - "Filter", - "Chain" - ], - [ - "▁t", - "um" - ], - [ - "▁tu", - "m" - ], - [ - "▁ö", - "ss" - ], - [ - "▁nom", - "mé" - ], - [ - "▁p", - "ir" - ], - [ - "▁pi", - "r" - ], - [ - "▁l", - "uc" - ], - [ - "▁lu", - "c" - ], - [ - "db", - "o" - ], - [ - "d", - "bo" - ], - [ - "ag", - "ues" - ], - [ - "ague", - "s" - ], - [ - "agu", - "es" - ], - [ - "▁al", - "can" - ], - [ - "▁alc", - "an" - ], - [ - "ou", - "wen" - ], - [ - "ouw", - "en" - ], - [ - "▁Stan", - "ley" - ], - [ - "ци", - "али" - ], - [ - "▁g", - "rown" - ], - [ - "▁gr", - "own" - ], - [ - "▁gro", - "wn" - ], - [ - "▁grow", - "n" - ], - [ - "▁pres", - "erved" - ], - [ - "▁preserve", - "d" - ], - [ - "▁s", - "olar" - ], - [ - "▁so", - "lar" - ], - [ - "▁sol", - "ar" - ], - [ - "▁Насе", - "ление" - ], - [ - "▁perform", - "ances" - ], - [ - "▁performance", - "s" - ], - [ - "▁C", - "ow" - ], - [ - "▁Co", - "w" - ], - [ - "▁engine", - "ering" - ], - [ - "▁engineer", - "ing" - ], - [ - "▁sc", - "aling" - ], - [ - "▁scal", - "ing" - ], - [ - "at", - "omic" - ], - [ - "ato", - "mic" - ], - [ - "atom", - "ic" - ], - [ - "end", - "ance" - ], - [ - "▁a", - "ce" - ], - [ - "▁ac", - "e" - ], - [ - "▁", - "ace" - ], - [ - "än", - "gen" - ], - [ - "äng", - "en" - ], - [ - "änge", - "n" - ], - [ - "An", - "im" - ], - [ - "A", - "nim" - ], - [ - "ph", - "ase" - ], - [ - "pha", - "se" - ], - [ - "phas", - "e" - ], - [ - "z", - "burg" - ], - [ - "O", - "ld" - ], - [ - "▁serv", - "ant" - ], - [ - "▁geme", - "ins" - ], - [ - "▁Ob", - "serv" - ], - [ - "trans", - "late" - ], - [ - "▁cover", - "ing" - ], - [ - "▁cov", - "ering" - ], - [ - "▁est", - "án" - ], - [ - "▁está", - "n" - ], - [ - "▁problem", - "a" - ], - [ - "▁proble", - "ma" - ], - [ - "▁probl", - "ema" - ], - [ - "▁у", - "станов" - ], - [ - "▁l", - "lev" - ], - [ - "▁ll", - "ev" - ], - [ - "▁lle", - "v" - ], - [ - "▁c", - "zerw" - ], - [ - "é", - "al" - ], - [ - "me", - "z" - ], - [ - "m", - "ez" - ], - [ - "RE", - "E" - ], - [ - "R", - "EE" - ], - [ - "ER", - "R" - ], - [ - "ту", - "ри" - ], - [ - "тур", - "и" - ], - [ - "se", - "gu" - ], - [ - "seg", - "u" - ], - [ - "s", - "egu" - ], - [ - "▁pro", - "fit" - ], - [ - "▁prof", - "it" - ], - [ - "▁multip", - "lication" - ], - [ - "kom", - "men" - ], - [ - "k", - "ommen" - ], - [ - "▁f", - "aut" - ], - [ - "▁fa", - "ut" - ], - [ - "▁candid", - "ates" - ], - [ - "▁candidate", - "s" - ], - [ - "▁U", - "ri" - ], - [ - "▁Ur", - "i" - ], - [ - "▁", - "Uri" - ], - [ - "▁La", - "ura" - ], - [ - "▁Laur", - "a" - ], - [ - "▁Lau", - "ra" - ], - [ - "▁s", - "ap" - ], - [ - "▁sa", - "p" - ], - [ - "▁ви", - "сини" - ], - [ - "▁Bet", - "ween" - ], - [ - "fa", - "de" - ], - [ - "f", - "ade" - ], - [ - "▁res", - "erved" - ], - [ - "▁reserve", - "d" - ], - [ - "▁invol", - "ving" - ], - [ - "▁M", - "are" - ], - [ - "▁Mar", - "e" - ], - [ - "▁Ma", - "re" - ], - [ - "▁Cont", - "ainer" - ], - [ - "▁", - "Container" - ], - [ - "▁на", - "зна" - ], - [ - "▁DE", - "BUG" - ], - [ - "▁", - "DEBUG" - ], - [ - "▁h", - "urt" - ], - [ - "▁hur", - "t" - ], - [ - "▁hu", - "rt" - ], - [ - "▁Pol", - "ski" - ], - [ - "▁l", - "ux" - ], - [ - "▁lu", - "x" - ], - [ - "C", - "B" - ], - [ - "wa", - "ch" - ], - [ - "w", - "ach" - ], - [ - "▁пери", - "од" - ], - [ - "▁перио", - "д" - ], - [ - "▁C", - "atherine" - ], - [ - "▁g", - "anz" - ], - [ - "▁gan", - "z" - ], - [ - "uch", - "te" - ], - [ - "ucht", - "e" - ], - [ - "u", - "chte" - ], - [ - "▁cons", - "umer" - ], - [ - "▁consum", - "er" - ], - [ - "▁consume", - "r" - ], - [ - "▁cross", - "ed" - ], - [ - "ord", - "ered" - ], - [ - "order", - "ed" - ], - [ - "orde", - "red" - ], - [ - "aw", - "ay" - ], - [ - "awa", - "y" - ], - [ - "a", - "way" - ], - [ - "te", - "chn" - ], - [ - "tech", - "n" - ], - [ - "▁sub", - "scri" - ], - [ - "▁subs", - "cri" - ], - [ - "▁short", - "cut" - ], - [ - "▁произ", - "вод" - ], - [ - "▁simultane", - "ously" - ], - [ - "▁r", - "ating" - ], - [ - "▁ra", - "ting" - ], - [ - "▁rat", - "ing" - ], - [ - "▁", - "rating" - ], - [ - "▁K", - "ings" - ], - [ - "▁King", - "s" - ], - [ - "▁Kin", - "gs" - ], - [ - "▁relations", - "hips" - ], - [ - "▁relation", - "ships" - ], - [ - "▁relationship", - "s" - ], - [ - "▁S", - "ex" - ], - [ - "▁Se", - "x" - ], - [ - "▁T", - "ool" - ], - [ - "▁To", - "ol" - ], - [ - "▁", - "Tool" - ], - [ - "ag", - "h" - ], - [ - "a", - "gh" - ], - [ - "ac", - "ters" - ], - [ - "act", - "ers" - ], - [ - "acter", - "s" - ], - [ - "log", - "ger" - ], - [ - "hom", - "me" - ], - [ - "en", - "gers" - ], - [ - "eng", - "ers" - ], - [ - "enger", - "s" - ], - [ - "▁R", - "i" - ], - [ - "ear", - "ance" - ], - [ - "ea", - "rance" - ], - [ - "▁appear", - "ances" - ], - [ - "▁appearance", - "s" - ], - [ - "Re", - "al" - ], - [ - "▁p", - "asse" - ], - [ - "▁pass", - "e" - ], - [ - "▁pas", - "se" - ], - [ - "ic", - "lopedia" - ], - [ - "ч", - "ко" - ], - [ - "ter", - "re" - ], - [ - "▁Ont", - "ario" - ], - [ - "▁пере", - "да" - ], - [ - "▁перед", - "а" - ], - [ - "fo", - "oter" - ], - [ - "foo", - "ter" - ], - [ - "foot", - "er" - ], - [ - "arch", - "ivi" - ], - [ - "archiv", - "i" - ], - [ - "if", - "iz" - ], - [ - "ifi", - "z" - ], - [ - "▁Pro", - "test" - ], - [ - "▁Prote", - "st" - ], - [ - "▁L", - "IN" - ], - [ - "▁LI", - "N" - ], - [ - "▁", - "LIN" - ], - [ - "unn", - "able" - ], - [ - "▁cent", - "uries" - ], - [ - "▁B", - "ayer" - ], - [ - "▁Ba", - "yer" - ], - [ - "▁Bay", - "er" - ], - [ - "ці", - "ю" - ], - [ - "ов", - "ин" - ], - [ - "ови", - "н" - ], - [ - "о", - "вин" - ], - [ - "▁And", - "rea" - ], - [ - "▁Andre", - "a" - ], - [ - "se", - "lection" - ], - [ - "select", - "ion" - ], - [ - "sel", - "ection" - ], - [ - "▁c", - "alm" - ], - [ - "▁cal", - "m" - ], - [ - "▁ca", - "lm" - ], - [ - "▁mod", - "ification" - ], - [ - "▁modific", - "ation" - ], - [ - "▁short", - "ly" - ], - [ - "in", - "aire" - ], - [ - "ina", - "ire" - ], - [ - "i", - "naire" - ], - [ - "▁f", - "usion" - ], - [ - "▁fus", - "ion" - ], - [ - "▁feel", - "ings" - ], - [ - "▁feeling", - "s" - ], - [ - "▁fee", - "lings" - ], - [ - "P", - "K" - ], - [ - "▁Ro", - "berto" - ], - [ - "▁Robert", - "o" - ], - [ - "г", - "не" - ], - [ - "Sh", - "ared" - ], - [ - "▁mehr", - "ere" - ], - [ - "▁N", - "iem" - ], - [ - "▁Ni", - "em" - ], - [ - "▁Nie", - "m" - ], - [ - "om", - "p" - ], - [ - "o", - "mp" - ], - [ - "En", - "v" - ], - [ - "▁Art", - "icle" - ], - [ - "▁P", - "ok" - ], - [ - "▁Po", - "k" - ], - [ - "▁V", - "ARCHAR" - ], - [ - "▁d", - "il" - ], - [ - "▁di", - "l" - ], - [ - "▁af", - "ford" - ], - [ - "▁aff", - "ord" - ], - [ - "▁con", - "front" - ], - [ - "▁conf", - "ront" - ], - [ - "ow", - "anie" - ], - [ - "owa", - "nie" - ], - [ - "owan", - "ie" - ], - [ - "▁min", - "istre" - ], - [ - "▁minist", - "re" - ], - [ - "▁mini", - "stre" - ], - [ - "ad", - "esh" - ], - [ - "ade", - "sh" - ], - [ - "ades", - "h" - ], - [ - "▁P", - "oly" - ], - [ - "▁Pol", - "y" - ], - [ - "▁Po", - "ly" - ], - [ - "▁Ра", - "спо" - ], - [ - "▁Рас", - "по" - ], - [ - "▁Gru", - "ppe" - ], - [ - "▁H", - "elen" - ], - [ - "▁He", - "len" - ], - [ - "▁Hel", - "en" - ], - [ - "▁c", - "c" - ], - [ - "▁", - "cc" - ], - [ - "▁port", - "rait" - ], - [ - "be", - "w" - ], - [ - "b", - "ew" - ], - [ - "▁b", - "eta" - ], - [ - "▁be", - "ta" - ], - [ - "▁bet", - "a" - ], - [ - "▁", - "beta" - ], - [ - "▁W", - "ir" - ], - [ - "▁Wi", - "r" - ], - [ - "▁A", - "udio" - ], - [ - "▁Aud", - "io" - ], - [ - "▁", - "Audio" - ], - [ - "▁(", - "\\<" - ], - [ - "▁(\\", - "<" - ], - [ - "rior", - "ity" - ], - [ - "▁n", - "it" - ], - [ - "▁ni", - "t" - ], - [ - "▁", - "nit" - ], - [ - "▁пред", - "стави" - ], - [ - "▁представ", - "и" - ], - [ - "▁V", - "ie" - ], - [ - "▁Vi", - "e" - ], - [ - "▁w", - "ür" - ], - [ - "▁", - "wür" - ], - [ - "▁H", - "old" - ], - [ - "▁Hol", - "d" - ], - [ - "▁Ho", - "ld" - ], - [ - "▁", - "Hold" - ], - [ - "▁S", - "ad" - ], - [ - "▁Sa", - "d" - ], - [ - "▁To", - "chter" - ], - [ - "▁o", - "ltre" - ], - [ - "▁ol", - "tre" - ], - [ - "▁", - "oltre" - ], - [ - "▁Act", - "iv" - ], - [ - "▁", - "Activ" - ], - [ - "▁J", - "ason" - ], - [ - "▁Ja", - "son" - ], - [ - "▁Jas", - "on" - ], - [ - "▁wie", - "ku" - ], - [ - "▁reg", - "ards" - ], - [ - "▁regard", - "s" - ], - [ - "▁t", - "aste" - ], - [ - "▁ta", - "ste" - ], - [ - "agnost", - "ic" - ], - [ - "ла", - "ся" - ], - [ - "▁S", - "elf" - ], - [ - "▁Sel", - "f" - ], - [ - "▁", - "Self" - ], - [ - "▁a", - "pr" - ], - [ - "▁ap", - "r" - ], - [ - "▁De", - "ep" - ], - [ - "sc", - "op" - ], - [ - "s", - "cop" - ], - [ - "Act", - "iv" - ], - [ - "▁type", - "def" - ], - [ - "▁typed", - "ef" - ], - [ - "Content", - "View" - ], - [ - "comp", - "iler" - ], - [ - "compile", - "r" - ], - [ - "▁R", - "oth" - ], - [ - "▁Ro", - "th" - ], - [ - "▁Rot", - "h" - ], - [ - "x", - "c" - ], - [ - "зи", - "к" - ], - [ - "▁l", - "argo" - ], - [ - "▁lar", - "go" - ], - [ - "▁larg", - "o" - ], - [ - "▁R", - "ena" - ], - [ - "▁Re", - "na" - ], - [ - "▁Ren", - "a" - ], - [ - "he", - "iten" - ], - [ - "heit", - "en" - ], - [ - "▁platform", - "s" - ], - [ - "▁plat", - "forms" - ], - [ - "ul", - "la" - ], - [ - "ull", - "a" - ], - [ - "u", - "lla" - ], - [ - "▁gl", - "ance" - ], - [ - "▁mas", - "cul" - ], - [ - "▁m", - "ex" - ], - [ - "▁me", - "x" - ], - [ - "▁J", - "orge" - ], - [ - "▁fun", - "cion" - ], - [ - "▁func", - "ion" - ], - [ - "cho", - "ose" - ], - [ - "▁re", - "views" - ], - [ - "▁review", - "s" - ], - [ - "▁Al", - "ban" - ], - [ - "▁Alb", - "an" - ], - [ - "▁G", - "lo" - ], - [ - "▁Gl", - "o" - ], - [ - "▁S", - "pecies" - ], - [ - "▁Spe", - "cies" - ], - [ - "▁Spec", - "ies" - ], - [ - "▁F", - "ame" - ], - [ - "▁Fa", - "me" - ], - [ - "▁Fam", - "e" - ], - [ - "▁R", - "oll" - ], - [ - "▁Ro", - "ll" - ], - [ - "▁Rol", - "l" - ], - [ - "▁P", - "uerto" - ], - [ - "▁\\", - ")" - ], - [ - "▁", - "\\)" - ], - [ - "ym", - "nas" - ], - [ - "ymn", - "as" - ], - [ - "en", - "viron" - ], - [ - "▁i", - "phone" - ], - [ - "▁Wrest", - "ling" - ], - [ - "ał", - "y" - ], - [ - "a", - "ły" - ], - [ - "▁Ind", - "iana" - ], - [ - "▁India", - "na" - ], - [ - "▁Indian", - "a" - ], - [ - "Rad", - "io" - ], - [ - "V", - "S" - ], - [ - "▁independ", - "ence" - ], - [ - "та", - "й" - ], - [ - "▁de", - "code" - ], - [ - "▁dec", - "ode" - ], - [ - "▁", - "decode" - ], - [ - "Wh", - "ite" - ], - [ - "▁j", - "ourn" - ], - [ - "▁jo", - "urn" - ], - [ - "▁jou", - "rn" - ], - [ - "▁jour", - "n" - ], - [ - "ícul", - "o" - ], - [ - "í", - "culo" - ], - [ - "▁Bar", - "b" - ], - [ - "▁Ba", - "rb" - ], - [ - "▁Ev", - "angel" - ], - [ - "▁An", - "dy" - ], - [ - "▁And", - "y" - ], - [ - "▁Wel", - "come" - ], - [ - "▁De", - "vice" - ], - [ - "▁Dev", - "ice" - ], - [ - "▁", - "Device" - ], - [ - "ge", - "f" - ], - [ - "g", - "ef" - ], - [ - "▁remember", - "ed" - ], - [ - "▁vari", - "ations" - ], - [ - "▁variation", - "s" - ], - [ - "▁Ad", - "olf" - ], - [ - "it", - "aine" - ], - [ - "ita", - "ine" - ], - [ - "▁надмор", - "ској" - ], - [ - "▁s", - "team" - ], - [ - "▁ste", - "am" - ], - [ - "▁concern", - "s" - ], - [ - "▁`", - "|" - ], - [ - "▁би", - "о" - ], - [ - "тель", - "ства" - ], - [ - "▁qu", - "attro" - ], - [ - "ext", - "end" - ], - [ - "▁trab", - "ajo" - ], - [ - "▁trabaj", - "o" - ], - [ - "en", - "berg" - ], - [ - "▁scen", - "arios" - ], - [ - "▁scenario", - "s" - ], - [ - "ân", - "t" - ], - [ - "â", - "nt" - ], - [ - "▁kom", - "mt" - ], - [ - "▁komm", - "t" - ], - [ - "▁dom", - "estic" - ], - [ - "▁B", - "asketball" - ], - [ - "▁Co", - "oper" - ], - [ - "so", - "ck" - ], - [ - "s", - "ock" - ], - [ - "дер", - "жа" - ], - [ - "д", - "ержа" - ], - [ - "={", - "\\" - ], - [ - "=", - "{\\" - ], - [ - "▁in", - "ici" - ], - [ - "▁P", - "hill" - ], - [ - "▁Ph", - "ill" - ], - [ - "▁Phil", - "l" - ], - [ - "▁гене", - "рал" - ], - [ - "archivi", - "ato" - ], - [ - "ъ", - "н" - ], - [ - "Ro", - "b" - ], - [ - "R", - "ob" - ], - [ - "▁t", - "ong" - ], - [ - "▁to", - "ng" - ], - [ - "▁ton", - "g" - ], - [ - "▁character", - "istics" - ], - [ - "▁characteristic", - "s" - ], - [ - "▁a", - "maz" - ], - [ - "▁am", - "az" - ], - [ - "▁M", - "ode" - ], - [ - "▁Mod", - "e" - ], - [ - "▁Mo", - "de" - ], - [ - "▁", - "Mode" - ], - [ - "▁inaug", - "ur" - ], - [ - "we", - "hr" - ], - [ - "ra", - "nt" - ], - [ - "ran", - "t" - ], - [ - "r", - "ant" - ], - [ - "ion", - "ali" - ], - [ - "ional", - "i" - ], - [ - "iona", - "li" - ], - [ - "▁M", - "other" - ], - [ - "▁Mo", - "ther" - ], - [ - "▁Mot", - "her" - ], - [ - "M", - "a" - ], - [ - "é", - "qu" - ], - [ - "▁K", - "elly" - ], - [ - "▁Kel", - "ly" - ], - [ - "ci", - "le" - ], - [ - "cil", - "e" - ], - [ - "c", - "ile" - ], - [ - "▁beste", - "ht" - ], - [ - "▁estim", - "ates" - ], - [ - "▁estimate", - "s" - ], - [ - "rugu", - "ay" - ], - [ - "▁A", - "ns" - ], - [ - "▁An", - "s" - ], - [ - "Ma", - "d" - ], - [ - "M", - "ad" - ], - [ - "▁на", - "в" - ], - [ - "▁d", - "onnées" - ], - [ - "▁donn", - "ées" - ], - [ - "▁donné", - "es" - ], - [ - "▁", - "données" - ], - [ - "▁trop", - "ical" - ], - [ - "▁Sever", - "al" - ], - [ - "el", - "ter" - ], - [ - "elt", - "er" - ], - [ - "elte", - "r" - ], - [ - "▁P", - "ho" - ], - [ - "▁Ph", - "o" - ], - [ - "ke", - "m" - ], - [ - "k", - "em" - ], - [ - "▁Custom", - "er" - ], - [ - "▁", - "Customer" - ], - [ - "▁скла", - "ді" - ], - [ - "▁c", - "ourses" - ], - [ - "▁course", - "s" - ], - [ - "▁cours", - "es" - ], - [ - "Pl", - "atform" - ], - [ - "nav", - "bar" - ], - [ - "le", - "arning" - ], - [ - "lear", - "ning" - ], - [ - "learn", - "ing" - ], - [ - "▁Sw", - "edish" - ], - [ - "▁z", - "ast" - ], - [ - "▁za", - "st" - ], - [ - "▁zas", - "t" - ], - [ - "▁L", - "ig" - ], - [ - "▁Li", - "g" - ], - [ - "man", - "agement" - ], - [ - "▁l", - "od" - ], - [ - "▁lo", - "d" - ], - [ - "uff", - "le" - ], - [ - "Text", - "ure" - ], - [ - "Te", - "xture" - ], - [ - "ar", - "ga" - ], - [ - "arg", - "a" - ], - [ - "át", - "um" - ], - [ - "▁D", - "DR" - ], - [ - "ні", - "ї" - ], - [ - "н", - "ії" - ], - [ - "▁Soci", - "été" - ], - [ - "▁dom", - "ains" - ], - [ - "▁domain", - "s" - ], - [ - "▁perm", - "itted" - ], - [ - "▁permit", - "ted" - ], - [ - "▁ex", - "terne" - ], - [ - "▁ext", - "erne" - ], - [ - "▁extern", - "e" - ], - [ - "▁quel", - "que" - ], - [ - "v", - "t" - ], - [ - "ym", - "an" - ], - [ - "y", - "man" - ], - [ - "▁W", - "ard" - ], - [ - "▁War", - "d" - ], - [ - "▁Wa", - "rd" - ], - [ - "▁ag", - "li" - ], - [ - "▁", - "agli" - ], - [ - "▁and", - "ra" - ], - [ - "▁an", - "dra" - ], - [ - "▁", - "andra" - ], - [ - "S", - "napshot" - ], - [ - "▁m", - "å" - ], - [ - "▁ye", - "ah" - ], - [ - "де", - "на" - ], - [ - "ден", - "а" - ], - [ - "д", - "ена" - ], - [ - "ęp", - "u" - ], - [ - "ę", - "pu" - ], - [ - "ask", - "ell" - ], - [ - "▁Ré", - "publique" - ], - [ - "in", - "ject" - ], - [ - "▁'", - ";" - ], - [ - "▁", - "';" - ], - [ - "än", - "n" - ], - [ - "ä", - "nn" - ], - [ - "▁z", - "elf" - ], - [ - "▁Ent", - "wicklung" - ], - [ - "ár", - "ia" - ], - [ - "á", - "ria" - ], - [ - "on", - "omy" - ], - [ - "ono", - "my" - ], - [ - "onom", - "y" - ], - [ - "▁s", - "vil" - ], - [ - "▁sv", - "il" - ], - [ - "ie", - "se" - ], - [ - "ies", - "e" - ], - [ - "i", - "ese" - ], - [ - "▁con", - "ser" - ], - [ - "▁cons", - "er" - ], - [ - "▁conse", - "r" - ], - [ - "▁n", - "im" - ], - [ - "▁ni", - "m" - ], - [ - "▁", - "nim" - ], - [ - "▁r", - "ész" - ], - [ - "▁ré", - "sz" - ], - [ - "▁rés", - "z" - ], - [ - "▁И", - "тали" - ], - [ - "▁part", - "ici" - ], - [ - "▁partic", - "i" - ], - [ - "▁parti", - "ci" - ], - [ - "▁L", - "ion" - ], - [ - "▁Li", - "on" - ], - [ - "s", - "r" - ], - [ - "al", - "ways" - ], - [ - "▁Влади", - "мир" - ], - [ - "че", - "ские" - ], - [ - "[", - "," - ], - [ - "▁Def", - "inition" - ], - [ - "▁", - "Definition" - ], - [ - "na", - "nt" - ], - [ - "nan", - "t" - ], - [ - "n", - "ant" - ], - [ - "oe", - "m" - ], - [ - "o", - "em" - ], - [ - "Id", - "s" - ], - [ - "I", - "ds" - ], - [ - "▁в", - "не" - ], - [ - "▁[", - "...]" - ], - [ - "▁на", - "прав" - ], - [ - "▁нап", - "рав" - ], - [ - "▁G", - "O" - ], - [ - "▁", - "GO" - ], - [ - "▁å", - "rs" - ], - [ - "▁år", - "s" - ], - [ - "▁ut", - "án" - ], - [ - "▁out", - "ros" - ], - [ - "▁reg", - "ión" - ], - [ - "▁M", - "ong" - ], - [ - "▁Mon", - "g" - ], - [ - "▁Mo", - "ng" - ], - [ - "▁fil", - "me" - ], - [ - "▁film", - "e" - ], - [ - "▁tri", - "ple" - ], - [ - "▁trip", - "le" - ], - [ - "▁sp", - "ons" - ], - [ - "▁spo", - "ns" - ], - [ - "De", - "velop" - ], - [ - "▁out", - "come" - ], - [ - "▁B", - "ible" - ], - [ - "▁Bi", - "ble" - ], - [ - "▁Bib", - "le" - ], - [ - "▁и", - "мени" - ], - [ - "▁име", - "ни" - ], - [ - "▁имен", - "и" - ], - [ - "Can", - "vas" - ], - [ - "пу", - "та" - ], - [ - "cur", - "r" - ], - [ - "cu", - "rr" - ], - [ - "c", - "urr" - ], - [ - "ás", - "ok" - ], - [ - "){", - "\\" - ], - [ - ")", - "{\\" - ], - [ - "ning", - "ar" - ], - [ - "`", - ";" - ], - [ - "▁Fl", - "ash" - ], - [ - ":", - "#" - ], - [ - "mu", - "st" - ], - [ - "mus", - "t" - ], - [ - "m", - "ust" - ], - [ - "cp", - "u" - ], - [ - "c", - "pu" - ], - [ - "▁form", - "ats" - ], - [ - "▁format", - "s" - ], - [ - "▁forma", - "ts" - ], - [ - "Ha", - "r" - ], - [ - "H", - "ar" - ], - [ - "▁epis", - "odio" - ], - [ - "▁R", - "osa" - ], - [ - "▁Ro", - "sa" - ], - [ - "▁Ros", - "a" - ], - [ - "▁d", - "ès" - ], - [ - "em", - "it" - ], - [ - "emi", - "t" - ], - [ - "e", - "mit" - ], - [ - "rit", - "eria" - ], - [ - "rite", - "ria" - ], - [ - "riter", - "ia" - ], - [ - "An", - "notation" - ], - [ - "Fl", - "ag" - ], - [ - "F", - "lag" - ], - [ - "g", - "mail" - ], - [ - "▁N", - "ormal" - ], - [ - "▁Nor", - "mal" - ], - [ - "▁Norm", - "al" - ], - [ - "▁", - "Normal" - ], - [ - "oll", - "ary" - ], - [ - "ollar", - "y" - ], - [ - "▁f", - "oss" - ], - [ - "▁fo", - "ss" - ], - [ - "▁fos", - "s" - ], - [ - "▁con", - "current" - ], - [ - "▁conc", - "urrent" - ], - [ - "▁", - "concurrent" - ], - [ - "▁crash", - "es" - ], - [ - "▁ви", - "де" - ], - [ - "▁вид", - "е" - ], - [ - "▁Min", - "or" - ], - [ - "▁Mi", - "nor" - ], - [ - "▁S", - "it" - ], - [ - "▁Si", - "t" - ], - [ - "▁S", - "N" - ], - [ - "▁", - "SN" - ], - [ - "▁s", - "car" - ], - [ - "▁sc", - "ar" - ], - [ - "▁", - "scar" - ], - [ - "▁fe", - "min" - ], - [ - "▁fem", - "in" - ], - [ - "▁spec", - "ification" - ], - [ - "▁specific", - "ation" - ], - [ - "so", - "ap" - ], - [ - "▁o", - "perate" - ], - [ - "▁oper", - "ate" - ], - [ - "▁opera", - "te" - ], - [ - "▁principal", - "mente" - ], - [ - "▁a", - "ust" - ], - [ - "▁au", - "st" - ], - [ - "▁aus", - "t" - ], - [ - "ib", - "ile" - ], - [ - "ibil", - "e" - ], - [ - "it", - "ime" - ], - [ - "iti", - "me" - ], - [ - "i", - "time" - ], - [ - "ле", - "жа" - ], - [ - "if", - "rame" - ], - [ - "i", - "frame" - ], - [ - "▁concept", - "s" - ], - [ - "▁conce", - "pts" - ], - [ - "▁t", - "ack" - ], - [ - "▁ta", - "ck" - ], - [ - "▁v", - "iss" - ], - [ - "▁vis", - "s" - ], - [ - "▁vi", - "ss" - ], - [ - "▁car", - "bon" - ], - [ - "ter", - "y" - ], - [ - "te", - "ry" - ], - [ - "t", - "ery" - ], - [ - "▁n", - "aming" - ], - [ - "▁na", - "ming" - ], - [ - "▁nam", - "ing" - ], - [ - "▁Or", - "ts" - ], - [ - "▁Ort", - "s" - ], - [ - "id", - "ente" - ], - [ - "ident", - "e" - ], - [ - "iden", - "te" - ], - [ - "▁Cap", - "it" - ], - [ - "▁Ca", - "pit" - ], - [ - "▁ex", - "pr" - ], - [ - "▁exp", - "r" - ], - [ - "▁", - "expr" - ], - [ - "▁насе", - "љу" - ], - [ - "▁Select", - "ed" - ], - [ - "▁Sel", - "ected" - ], - [ - "▁Sele", - "cted" - ], - [ - "▁", - "Selected" - ], - [ - "▁h", - "inter" - ], - [ - "▁hint", - "er" - ], - [ - "▁hin", - "ter" - ], - [ - "▁i", - "frame" - ], - [ - "▁if", - "rame" - ], - [ - "▁", - "iframe" - ], - [ - "▁z", - "b" - ], - [ - "index", - "Path" - ], - [ - "col", - "l" - ], - [ - "co", - "ll" - ], - [ - "c", - "oll" - ], - [ - "▁wr", - "ześ" - ], - [ - "▁a", - "cht" - ], - [ - "▁ac", - "ht" - ], - [ - "▁ach", - "t" - ], - [ - "▁", - "acht" - ], - [ - "▁grad", - "ually" - ], - [ - "▁gradu", - "ally" - ], - [ - "▁ч", - "у" - ], - [ - "▁", - "чу" - ], - [ - "зе", - "й" - ], - [ - "з", - "ей" - ], - [ - "ha", - "ft" - ], - [ - "h", - "aft" - ], - [ - "▁t", - "ran" - ], - [ - "▁tr", - "an" - ], - [ - "▁tra", - "n" - ], - [ - "▁la", - "quelle" - ], - [ - "yt", - "ics" - ], - [ - "ID", - "E" - ], - [ - "I", - "DE" - ], - [ - "▁py", - "game" - ], - [ - "▁pyg", - "ame" - ], - [ - "▁P", - "ackage" - ], - [ - "▁Pack", - "age" - ], - [ - "▁", - "Package" - ], - [ - "▁class", - "Name" - ], - [ - "▁", - "className" - ], - [ - "B", - "al" - ], - [ - "pe", - "rl" - ], - [ - "per", - "l" - ], - [ - "ти", - "на" - ], - [ - "тин", - "а" - ], - [ - "O", - "cc" - ], - [ - "▁in", - "frastr" - ], - [ - "▁Champion", - "s" - ], - [ - "▁Champ", - "ions" - ], - [ - "▁class", - "ic" - ], - [ - "▁R", - "aw" - ], - [ - "▁Ra", - "w" - ], - [ - "▁", - "Raw" - ], - [ - "▁partial", - "ly" - ], - [ - "▁parti", - "ally" - ], - [ - "▁T", - "ed" - ], - [ - "▁Te", - "d" - ], - [ - "▁sto", - "let" - ], - [ - "ra", - "ined" - ], - [ - "rain", - "ed" - ], - [ - "raine", - "d" - ], - [ - "rai", - "ned" - ], - [ - "r", - "ained" - ], - [ - "WH", - "ERE" - ], - [ - "W", - "HERE" - ], - [ - "▁v", - "all" - ], - [ - "▁val", - "l" - ], - [ - "▁va", - "ll" - ], - [ - "▁Jul", - "ia" - ], - [ - "▁Ju", - "lia" - ], - [ - "▁Juli", - "a" - ], - [ - "za", - "t" - ], - [ - "z", - "at" - ], - [ - "▁surr", - "ounded" - ], - [ - "SE", - "E" - ], - [ - "S", - "EE" - ], - [ - "▁walk", - "ing" - ], - [ - "▁wal", - "king" - ], - [ - "B", - "ad" - ], - [ - "FO", - "R" - ], - [ - "F", - "OR" - ], - [ - "con", - "tre" - ], - [ - "cont", - "re" - ], - [ - "contr", - "e" - ], - [ - "▁Pal", - "est" - ], - [ - "▁Pale", - "st" - ], - [ - "át", - "ico" - ], - [ - "▁engine", - "er" - ], - [ - "▁part", - "ners" - ], - [ - "▁partner", - "s" - ], - [ - "▁Je", - "ws" - ], - [ - "▁Jew", - "s" - ], - [ - "il", - "ers" - ], - [ - "ile", - "rs" - ], - [ - "iler", - "s" - ], - [ - "i", - "lers" - ], - [ - "▁c", - "erem" - ], - [ - "▁ce", - "rem" - ], - [ - "▁cer", - "em" - ], - [ - "▁inter", - "actions" - ], - [ - "▁interaction", - "s" - ], - [ - "▁interact", - "ions" - ], - [ - "ac", - "u" - ], - [ - "a", - "cu" - ], - [ - "st", - "y" - ], - [ - "s", - "ty" - ], - [ - "▁Prince", - "ss" - ], - [ - "▁Prin", - "cess" - ], - [ - "sh", - "arp" - ], - [ - "sha", - "rp" - ], - [ - "▁Sing", - "les" - ], - [ - "▁Single", - "s" - ], - [ - "▁ї", - "х" - ], - [ - "ch", - "ez" - ], - [ - "che", - "z" - ], - [ - "c", - "hez" - ], - [ - "Rece", - "iver" - ], - [ - "Receive", - "r" - ], - [ - "▁pat", - "ients" - ], - [ - "▁patient", - "s" - ], - [ - "string", - "ify" - ], - [ - "▁compet", - "ed" - ], - [ - "be", - "y" - ], - [ - "b", - "ey" - ], - [ - "$", - ";" - ], - [ - "▁B", - "d" - ], - [ - "had", - "oop" - ], - [ - "h", - "adoop" - ], - [ - "▁Div", - "isión" - ], - [ - "öl", - "d" - ], - [ - "ö", - "ld" - ], - [ - "▁restrict", - "ed" - ], - [ - "▁comm", - "ander" - ], - [ - "▁command", - "er" - ], - [ - "▁comma", - "nder" - ], - [ - "▁High", - "way" - ], - [ - "▁Č", - "esk" - ], - [ - "▁m", - "yth" - ], - [ - "▁my", - "th" - ], - [ - "ча", - "н" - ], - [ - "ч", - "ан" - ], - [ - "ra", - "ham" - ], - [ - "rah", - "am" - ], - [ - "▁en", - "qu" - ], - [ - "▁p", - "og" - ], - [ - "▁po", - "g" - ], - [ - "▁com", - "una" - ], - [ - "▁comun", - "a" - ], - [ - "▁print", - "ln" - ], - [ - "▁", - "println" - ], - [ - "▁к", - "руп" - ], - [ - "▁de", - "pois" - ], - [ - "▁dep", - "ois" - ], - [ - "▁se", - "ats" - ], - [ - "▁sea", - "ts" - ], - [ - "▁seat", - "s" - ], - [ - "▁neigh", - "b" - ], - [ - "ци", - "она" - ], - [ - "цион", - "а" - ], - [ - "ag", - "ine" - ], - [ - "agi", - "ne" - ], - [ - "agin", - "e" - ], - [ - "▁cloth", - "es" - ], - [ - "▁clo", - "thes" - ], - [ - "▁P", - "rior" - ], - [ - "▁Pr", - "ior" - ], - [ - "▁Pri", - "or" - ], - [ - "Br", - "ain" - ], - [ - "Bra", - "in" - ], - [ - "B", - "rain" - ], - [ - "FF", - "FF" - ], - [ - "':", - "'" - ], - [ - "'", - ":'" - ], - [ - "fe", - "atures" - ], - [ - "feature", - "s" - ], - [ - "▁file", - "system" - ], - [ - "▁files", - "ystem" - ], - [ - "▁sing", - "les" - ], - [ - "▁single", - "s" - ], - [ - "▁Mel", - "bourne" - ], - [ - "▁dest", - "ruction" - ], - [ - "▁destruct", - "ion" - ], - [ - "▁destru", - "ction" - ], - [ - "▁Ly", - "on" - ], - [ - "▁In", - "sel" - ], - [ - "▁Ins", - "el" - ], - [ - "Na", - "v" - ], - [ - "N", - "av" - ], - [ - "▁Re", - "place" - ], - [ - "▁Rep", - "lace" - ], - [ - "▁", - "Replace" - ], - [ - "▁l", - "é" - ], - [ - "▁", - "lé" - ], - [ - "Wh", - "o" - ], - [ - "W", - "ho" - ], - [ - "▁E", - "stad" - ], - [ - "▁Est", - "ad" - ], - [ - "▁Esta", - "d" - ], - [ - "▁dim", - "ensional" - ], - [ - "▁dimension", - "al" - ], - [ - "▁", - "dimensional" - ], - [ - "▁ö", - "ff" - ], - [ - "▁", - "öff" - ], - [ - "▁gr", - "ands" - ], - [ - "▁gran", - "ds" - ], - [ - "▁grand", - "s" - ], - [ - "дж", - "а" - ], - [ - "д", - "жа" - ], - [ - "pl", - "ane" - ], - [ - "plan", - "e" - ], - [ - "pla", - "ne" - ], - [ - "p", - "lane" - ], - [ - "но", - "сті" - ], - [ - "ност", - "і" - ], - [ - "нос", - "ті" - ], - [ - "▁Or", - "igin" - ], - [ - "▁Ori", - "gin" - ], - [ - "▁Orig", - "in" - ], - [ - "▁", - "Origin" - ], - [ - "W", - "I" - ], - [ - "än", - "ner" - ], - [ - "änn", - "er" - ], - [ - "▁C", - "ry" - ], - [ - "▁Cr", - "y" - ], - [ - "IT", - "ION" - ], - [ - "▁fö", - "dd" - ], - [ - "▁cult", - "ura" - ], - [ - "▁R", - "ank" - ], - [ - "▁Ran", - "k" - ], - [ - "▁v", - "uel" - ], - [ - "▁vue", - "l" - ], - [ - "▁vu", - "el" - ], - [ - "▁z", - "ag" - ], - [ - "▁za", - "g" - ], - [ - "▁Ma", - "xim" - ], - [ - "▁Max", - "im" - ], - [ - "он", - "у" - ], - [ - "о", - "ну" - ], - [ - "()", - "))" - ], - [ - "())", - ")" - ], - [ - "(", - ")))" - ], - [ - "R", - "aw" - ], - [ - "kir", - "che" - ], - [ - "k", - "irche" - ], - [ - "▁a", - "demás" - ], - [ - "▁t", - "ie" - ], - [ - "▁ti", - "e" - ], - [ - "▁St", - "yle" - ], - [ - "▁", - "Style" - ], - [ - "ско", - "в" - ], - [ - "ск", - "ов" - ], - [ - "с", - "ков" - ], - [ - "ist", - "ant" - ], - [ - "ista", - "nt" - ], - [ - "istan", - "t" - ], - [ - "ol", - "ph" - ], - [ - "▁Z", - "ür" - ], - [ - "▁In", - "fo" - ], - [ - "▁Inf", - "o" - ], - [ - "▁", - "Info" - ], - [ - "DO", - "M" - ], - [ - "D", - "OM" - ], - [ - "us", - "c" - ], - [ - "u", - "sc" - ], - [ - "na", - "hm" - ], - [ - "nah", - "m" - ], - [ - "▁Ф", - "едера" - ], - [ - "▁F", - "ot" - ], - [ - "▁Fo", - "t" - ], - [ - "▁spec", - "ifying" - ], - [ - "▁specify", - "ing" - ], - [ - "▁tit", - "olo" - ], - [ - "▁Bo", - "ys" - ], - [ - "▁Boy", - "s" - ], - [ - "ie", - "ch" - ], - [ - "iec", - "h" - ], - [ - "i", - "ech" - ], - [ - "Pl", - "ace" - ], - [ - "P", - "lace" - ], - [ - "▁H", - "off" - ], - [ - "▁Ho", - "ff" - ], - [ - "▁Hof", - "f" - ], - [ - "▁c", - "ached" - ], - [ - "▁ca", - "ched" - ], - [ - "▁cache", - "d" - ], - [ - "ва", - "ль" - ], - [ - "вал", - "ь" - ], - [ - "в", - "аль" - ], - [ - "is", - "her" - ], - [ - "ish", - "er" - ], - [ - "roll", - "ing" - ], - [ - "rol", - "ling" - ], - [ - "op", - "ens" - ], - [ - "ope", - "ns" - ], - [ - "open", - "s" - ], - [ - "▁h", - "r" - ], - [ - "▁", - "hr" - ], - [ - "--", - "----" - ], - [ - "----", - "--" - ], - [ - "---", - "---" - ], - [ - "-----", - "-" - ], - [ - "-", - "-----" - ], - [ - "▁mag", - "gior" - ], - [ - "▁maggio", - "r" - ], - [ - "▁trans", - "actions" - ], - [ - "▁transaction", - "s" - ], - [ - "▁c", - "riminal" - ], - [ - "▁crim", - "inal" - ], - [ - "▁re", - "tre" - ], - [ - "▁ret", - "re" - ], - [ - "▁retr", - "e" - ], - [ - "▁Camp", - "bell" - ], - [ - "))", - ":" - ], - [ - ")", - "):" - ], - [ - "▁n", - "ed" - ], - [ - "▁ne", - "d" - ], - [ - "▁", - "ned" - ], - [ - "Page", - "r" - ], - [ - "Pa", - "ger" - ], - [ - "P", - "ager" - ], - [ - "▁H", - "ero" - ], - [ - "▁He", - "ro" - ], - [ - "▁Her", - "o" - ], - [ - "(_", - "_" - ], - [ - "(", - "__" - ], - [ - "▁un", - "cle" - ], - [ - "▁re", - "aches" - ], - [ - "▁reach", - "es" - ], - [ - "ar", - "to" - ], - [ - "art", - "o" - ], - [ - "▁h", - "ello" - ], - [ - "▁hel", - "lo" - ], - [ - "▁hell", - "o" - ], - [ - "▁", - "hello" - ], - [ - "Pre", - "ferences" - ], - [ - "▁за", - "тем" - ], - [ - "Name", - "d" - ], - [ - "Na", - "med" - ], - [ - "N", - "amed" - ], - [ - "▁re", - "aders" - ], - [ - "▁read", - "ers" - ], - [ - "▁reader", - "s" - ], - [ - "х", - "і" - ], - [ - "ke", - "rn" - ], - [ - "ker", - "n" - ], - [ - "k", - "ern" - ], - [ - "▁у", - "по" - ], - [ - "ки", - "н" - ], - [ - "к", - "ин" - ], - [ - "▁l", - "av" - ], - [ - "▁la", - "v" - ], - [ - "▁", - "lav" - ], - [ - "▁n", - "ob" - ], - [ - "▁no", - "b" - ], - [ - "▁se", - "cre" - ], - [ - "▁sec", - "re" - ], - [ - "▁List", - "View" - ], - [ - "▁", - "ListView" - ], - [ - "ва", - "ния" - ], - [ - "▁May", - "or" - ], - [ - "bo", - "rough" - ], - [ - "bor", - "ough" - ], - [ - "▁fil", - "osof" - ], - [ - "не", - "ння" - ], - [ - "нен", - "ня" - ], - [ - "фр", - "и" - ], - [ - "ф", - "ри" - ], - [ - "▁p", - "atr" - ], - [ - "▁pat", - "r" - ], - [ - "▁pa", - "tr" - ], - [ - "F", - "M" - ], - [ - "▁a", - "cid" - ], - [ - "▁ac", - "id" - ], - [ - "▁Salv", - "ador" - ], - [ - "▁a", - "bb" - ], - [ - "▁ab", - "b" - ], - [ - "▁", - "abb" - ], - [ - "▁G", - "raham" - ], - [ - "▁Gra", - "ham" - ], - [ - "pol", - "icy" - ], - [ - "neg", - "ative" - ], - [ - "ński", - "ego" - ], - [ - "ń", - "skiego" - ], - [ - "▁He", - "imat" - ], - [ - "▁d", - "azu" - ], - [ - "▁da", - "zu" - ], - [ - "▁m", - "ely" - ], - [ - "▁me", - "ly" - ], - [ - "▁mel", - "y" - ], - [ - "▁r", - "ide" - ], - [ - "▁rid", - "e" - ], - [ - "▁ri", - "de" - ], - [ - "▁", - "ride" - ], - [ - "▁du", - "ties" - ], - [ - "▁dut", - "ies" - ], - [ - "ov", - "ery" - ], - [ - "over", - "y" - ], - [ - "ove", - "ry" - ], - [ - "o", - "very" - ], - [ - "▁Pro", - "position" - ], - [ - "▁Prop", - "osition" - ], - [ - "▁Pa", - "olo" - ], - [ - "/", - "'" - ], - [ - "▁M", - "au" - ], - [ - "▁Ma", - "u" - ], - [ - "im", - "enti" - ], - [ - "iment", - "i" - ], - [ - "imen", - "ti" - ], - [ - "Sa", - "int" - ], - [ - "S", - "aint" - ], - [ - "fa", - "ther" - ], - [ - "f", - "ather" - ], - [ - "▁equ", - "ilib" - ], - [ - "ph", - "ony" - ], - [ - "phon", - "y" - ], - [ - "▁c", - "las" - ], - [ - "▁cl", - "as" - ], - [ - "▁cla", - "s" - ], - [ - "▁от", - "ли" - ], - [ - "▁Buffer", - "ed" - ], - [ - "▁Buff", - "ered" - ], - [ - "re", - "k" - ], - [ - "r", - "ek" - ], - [ - "▁m", - "itt" - ], - [ - "▁mit", - "t" - ], - [ - "▁mi", - "tt" - ], - [ - "▁", - "mitt" - ], - [ - "▁H", - "ur" - ], - [ - "▁Hu", - "r" - ], - [ - "▁Har", - "vard" - ], - [ - "▁demonstr", - "ate" - ], - [ - "ua", - "rio" - ], - [ - "u", - "ario" - ], - [ - "▁do", - "lor" - ], - [ - "▁dol", - "or" - ], - [ - "▁reject", - "ed" - ], - [ - "▁M", - "üller" - ], - [ - "▁n", - "ac" - ], - [ - "▁na", - "c" - ], - [ - "▁B", - "elle" - ], - [ - "▁Be", - "lle" - ], - [ - "▁Bel", - "le" - ], - [ - "▁Bell", - "e" - ], - [ - "▁gather", - "ed" - ], - [ - "n", - "r" - ], - [ - "fr", - "ika" - ], - [ - "fri", - "ka" - ], - [ - "öl", - "l" - ], - [ - "ö", - "ll" - ], - [ - "▁chem", - "ical" - ], - [ - "ni", - "g" - ], - [ - "n", - "ig" - ], - [ - "▁cal", - "c" - ], - [ - "▁", - "calc" - ], - [ - "▁DE", - "FAULT" - ], - [ - "▁", - "DEFAULT" - ], - [ - "▁philosoph", - "y" - ], - [ - "▁Lar", - "avel" - ], - [ - "▁al", - "ignment" - ], - [ - "▁align", - "ment" - ], - [ - "E", - "V" - ], - [ - "e", - "or" - ], - [ - "▁d", - "zie" - ], - [ - "▁dz", - "ie" - ], - [ - "▁", - "dzie" - ], - [ - "▁m", - "est" - ], - [ - "▁me", - "st" - ], - [ - "▁mes", - "t" - ], - [ - "▁I", - "o" - ], - [ - "CR", - "E" - ], - [ - "C", - "RE" - ], - [ - "з", - "ви" - ], - [ - "▁M", - "edic" - ], - [ - "▁Me", - "dic" - ], - [ - "▁Med", - "ic" - ], - [ - "▁Medi", - "c" - ], - [ - "▁n", - "ä" - ], - [ - "▁z", - "ab" - ], - [ - "▁za", - "b" - ], - [ - "▁S", - "lov" - ], - [ - "▁Sl", - "ov" - ], - [ - "▁Slo", - "v" - ], - [ - "ut", - "lich" - ], - [ - "▁am", - "plit" - ], - [ - "▁ampl", - "it" - ], - [ - "▁amp", - "lit" - ], - [ - "▁Fran", - "kreich" - ], - [ - "▁Frank", - "reich" - ], - [ - "▁к", - "іль" - ], - [ - "▁кі", - "ль" - ], - [ - "IN", - "D" - ], - [ - "I", - "ND" - ], - [ - "exec", - "ution" - ], - [ - "▁Kar", - "riere" - ], - [ - "d", - "ostęp" - ], - [ - "▁r", - "éal" - ], - [ - "▁ré", - "al" - ], - [ - "en", - "go" - ], - [ - "eng", - "o" - ], - [ - "▁se", - "vere" - ], - [ - "▁sever", - "e" - ], - [ - "зм", - "а" - ], - [ - "з", - "ма" - ], - [ - "▁тур", - "ни" - ], - [ - "▁C", - "arter" - ], - [ - "▁Car", - "ter" - ], - [ - "▁Cart", - "er" - ], - [ - "▁Rob", - "inson" - ], - [ - "▁Robin", - "son" - ], - [ - "getElement", - "sBy" - ], - [ - "▁pro", - "totype" - ], - [ - "▁proto", - "type" - ], - [ - "▁", - "prototype" - ], - [ - "▁jap", - "on" - ], - [ - "▁ja", - "pon" - ], - [ - "führ", - "ung" - ], - [ - "f", - "ührung" - ], - [ - "▁con", - "segu" - ], - [ - "▁cons", - "egu" - ], - [ - "▁conse", - "gu" - ], - [ - "▁st", - "udi" - ], - [ - "▁stud", - "i" - ], - [ - "▁l", - "ire" - ], - [ - "▁li", - "re" - ], - [ - "▁", - "lire" - ], - [ - "▁sch", - "ließ" - ], - [ - "▁", - "schließ" - ], - [ - "▁B", - "uff" - ], - [ - "▁Bu", - "ff" - ], - [ - "▁red", - "und" - ], - [ - "▁redu", - "nd" - ], - [ - "▁e", - "rn" - ], - [ - "▁er", - "n" - ], - [ - "▁", - "ern" - ], - [ - "▁my", - "ster" - ], - [ - "▁myst", - "er" - ], - [ - "▁prop", - "rio" - ], - [ - "▁propri", - "o" - ], - [ - "ate", - "ful" - ], - [ - "▁Par", - "ent" - ], - [ - "▁Pa", - "rent" - ], - [ - "▁", - "Parent" - ], - [ - "▁lad", - "ies" - ], - [ - "ra", - "ck" - ], - [ - "rac", - "k" - ], - [ - "r", - "ack" - ], - [ - "ти", - "ка" - ], - [ - "тик", - "а" - ], - [ - "en", - "burg" - ], - [ - "▁каче", - "стве" - ], - [ - "▁E", - "F" - ], - [ - "▁", - "EF" - ], - [ - "▁st", - "am" - ], - [ - "▁sta", - "m" - ], - [ - "▁nue", - "va" - ], - [ - "▁fil", - "tered" - ], - [ - "▁filter", - "ed" - ], - [ - "re", - "ten" - ], - [ - "ret", - "en" - ], - [ - "r", - "eten" - ], - [ - "▁I", - "an" - ], - [ - "▁Matt", - "hew" - ], - [ - "▁Matth", - "ew" - ], - [ - "ki", - "h" - ], - [ - "k", - "ih" - ], - [ - "▁", - "ő" - ], - [ - "▁ком", - "пози" - ], - [ - "▁for", - "ever" - ], - [ - "▁fore", - "ver" - ], - [ - "oir", - "es" - ], - [ - "oi", - "res" - ], - [ - "oire", - "s" - ], - [ - "o", - "ires" - ], - [ - ":\\", - "\\" - ], - [ - ":", - "\\\\" - ], - [ - "▁ét", - "udes" - ], - [ - "▁s", - "oup" - ], - [ - "▁so", - "up" - ], - [ - "▁sou", - "p" - ], - [ - "▁p", - "leased" - ], - [ - "▁please", - "d" - ], - [ - "▁ple", - "ased" - ], - [ - ")}", - "(" - ], - [ - ")", - "}(" - ], - [ - "▁S", - "top" - ], - [ - "▁St", - "op" - ], - [ - "▁Sto", - "p" - ], - [ - "▁", - "Stop" - ], - [ - "Set", - "ter" - ], - [ - "S", - "etter" - ], - [ - "▁He", - "lp" - ], - [ - "▁Hel", - "p" - ], - [ - "▁", - "Help" - ], - [ - "▁b", - "ars" - ], - [ - "▁bar", - "s" - ], - [ - "▁ba", - "rs" - ], - [ - "▁", - "bars" - ], - [ - "▁ER", - "R" - ], - [ - "▁", - "ERR" - ], - [ - "▁(", - "?" - ], - [ - "▁", - "(?" - ], - [ - "▁po", - "etry" - ], - [ - "▁poet", - "ry" - ], - [ - "▁U", - "til" - ], - [ - "▁Ut", - "il" - ], - [ - "▁", - "Util" - ], - [ - "A", - "K" - ], - [ - "▁f", - "ick" - ], - [ - "▁fi", - "ck" - ], - [ - "▁fic", - "k" - ], - [ - "▁I", - "M" - ], - [ - "▁", - "IM" - ], - [ - "▁pro", - "ud" - ], - [ - "▁pr", - "oud" - ], - [ - "но", - "си" - ], - [ - "нос", - "и" - ], - [ - "▁m", - "uerte" - ], - [ - "▁mu", - "erte" - ], - [ - "▁Palmar", - "ès" - ], - [ - "▁N", - "as" - ], - [ - "▁Na", - "s" - ], - [ - "щи", - "х" - ], - [ - "щ", - "их" - ], - [ - "▁qu", - "er" - ], - [ - "▁que", - "r" - ], - [ - "▁q", - "uer" - ], - [ - "▁", - "quer" - ], - [ - "▁a", - "penas" - ], - [ - "▁ap", - "enas" - ], - [ - "][", - "'" - ], - [ - "]", - "['" - ], - [ - "▁Kon", - "st" - ], - [ - "по", - "н" - ], - [ - "п", - "он" - ], - [ - "▁Sch", - "iff" - ], - [ - "▁m", - "p" - ], - [ - "▁", - "mp" - ], - [ - "▁б", - "лаго" - ], - [ - "fr", - "am" - ], - [ - "fra", - "m" - ], - [ - "f", - "ram" - ], - [ - "▁house", - "hold" - ], - [ - "▁t", - "ract" - ], - [ - "▁tr", - "act" - ], - [ - "▁tra", - "ct" - ], - [ - "▁trac", - "t" - ], - [ - "enc", - "oding" - ], - [ - "▁und", - "ert" - ], - [ - "▁under", - "t" - ], - [ - "▁", - "undert" - ], - [ - "▁A", - "ug" - ], - [ - "▁Au", - "g" - ], - [ - "ов", - "ан" - ], - [ - "ова", - "н" - ], - [ - "о", - "ван" - ], - [ - "▁Ar", - "ten" - ], - [ - "▁Art", - "en" - ], - [ - "▁Arte", - "n" - ], - [ - "▁inv", - "oked" - ], - [ - "▁invoke", - "d" - ], - [ - "▁d", - "ynast" - ], - [ - "▁fle", - "et" - ], - [ - "че", - "ство" - ], - [ - "▁Mur", - "ray" - ], - [ - "▁g", - "ut" - ], - [ - "▁gu", - "t" - ], - [ - "eli", - "hood" - ], - [ - "▁S", - "SH" - ], - [ - "▁SS", - "H" - ], - [ - "от", - "вет" - ], - [ - "▁person", - "ally" - ], - [ - "▁personal", - "ly" - ], - [ - "при", - "я" - ], - [ - "п", - "рия" - ], - [ - "▁fin", - "anci" - ], - [ - "▁finan", - "ci" - ], - [ - "▁Thom", - "pson" - ], - [ - "al", - "u" - ], - [ - "a", - "lu" - ], - [ - "id", - "entity" - ], - [ - "ident", - "ity" - ], - [ - "▁G", - "rab" - ], - [ - "▁Gr", - "ab" - ], - [ - "▁Gra", - "b" - ], - [ - "add", - "le" - ], - [ - "É", - "t" - ], - [ - "▁T", - "ob" - ], - [ - "▁To", - "b" - ], - [ - "▁ver", - "lor" - ], - [ - "▁verl", - "or" - ], - [ - "▁Saint", - "e" - ], - [ - "▁Sa", - "inte" - ], - [ - "▁Sain", - "te" - ], - [ - "▁d", - "op" - ], - [ - "▁do", - "p" - ], - [ - "▁в", - "ере" - ], - [ - "▁ве", - "ре" - ], - [ - "▁вер", - "е" - ], - [ - "__", - "_" - ], - [ - "_", - "__" - ], - [ - "▁prom", - "otion" - ], - [ - "▁-", - "=" - ], - [ - "▁от", - "де" - ], - [ - "▁amb", - "igu" - ], - [ - "▁", - "ambigu" - ], - [ - "OR", - "DER" - ], - [ - "ORD", - "ER" - ], - [ - "▁Comm", - "unic" - ], - [ - "▁Commun", - "ic" - ], - [ - "▁im", - "ply" - ], - [ - "▁imp", - "ly" - ], - [ - "▁impl", - "y" - ], - [ - "on", - "ed" - ], - [ - "one", - "d" - ], - [ - "o", - "ned" - ], - [ - "clud", - "ing" - ], - [ - "▁coll", - "ision" - ], - [ - "▁fragment", - "s" - ], - [ - "▁frag", - "ments" - ], - [ - "script", - "ion" - ], - [ - "scri", - "ption" - ], - [ - "s", - "cription" - ], - [ - "▁'", - "{" - ], - [ - "ля", - "х" - ], - [ - "л", - "ях" - ], - [ - "▁h", - "ans" - ], - [ - "▁ha", - "ns" - ], - [ - "▁han", - "s" - ], - [ - "у", - "с" - ], - [ - "wi", - "re" - ], - [ - "w", - "ire" - ], - [ - "name", - "space" - ], - [ - "names", - "pace" - ], - [ - "▁s", - "word" - ], - [ - "▁sw", - "ord" - ], - [ - "▁swo", - "rd" - ], - [ - "ref", - "resh" - ], - [ - "▁kw", - "am" - ], - [ - "z", - "s" - ], - [ - "comm", - "ons" - ], - [ - "common", - "s" - ], - [ - "▁c", - "osa" - ], - [ - "▁co", - "sa" - ], - [ - "▁cos", - "a" - ], - [ - "▁reg", - "ime" - ], - [ - "gr", - "ep" - ], - [ - "gre", - "p" - ], - [ - "g", - "rep" - ], - [ - "▁di", - "oc" - ], - [ - "▁dio", - "c" - ], - [ - "▁Cont", - "act" - ], - [ - "▁", - "Contact" - ], - [ - "▁est", - "as" - ], - [ - "▁esta", - "s" - ], - [ - "▁Ste", - "wart" - ], - [ - "▁v", - "iele" - ], - [ - "▁vi", - "ele" - ], - [ - "▁vie", - "le" - ], - [ - "▁viel", - "e" - ], - [ - "то", - "ва" - ], - [ - "тов", - "а" - ], - [ - "т", - "ова" - ], - [ - "▁R", - "an" - ], - [ - "▁Ra", - "n" - ], - [ - "an", - "nes" - ], - [ - "ann", - "es" - ], - [ - "anne", - "s" - ], - [ - "id", - "ay" - ], - [ - "ida", - "y" - ], - [ - "i", - "day" - ], - [ - "▁s", - "napshot" - ], - [ - "▁snap", - "shot" - ], - [ - "or", - "row" - ], - [ - "orr", - "ow" - ], - [ - "▁za", - "č" - ], - [ - "▁участи", - "е" - ], - [ - "▁prom", - "ised" - ], - [ - "▁promise", - "d" - ], - [ - "Ass", - "embly" - ], - [ - "▁champion", - "ship" - ], - [ - "▁champions", - "hip" - ], - [ - "▁Def", - "ine" - ], - [ - "▁e", - "ren" - ], - [ - "▁er", - "en" - ], - [ - "▁ere", - "n" - ], - [ - "▁", - "eren" - ], - [ - "▁но", - "во" - ], - [ - "▁н", - "ово" - ], - [ - "▁нов", - "о" - ], - [ - "▁", - "ново" - ], - [ - "▁th", - "inks" - ], - [ - "▁think", - "s" - ], - [ - "▁thin", - "ks" - ], - [ - "Ag", - "e" - ], - [ - "A", - "ge" - ], - [ - "▁g", - "ev" - ], - [ - "▁ge", - "v" - ], - [ - "var", - "char" - ], - [ - "v", - "archar" - ], - [ - "iv", - "ità" - ], - [ - "com", - "pos" - ], - [ - "comp", - "os" - ], - [ - "▁M", - "utter" - ], - [ - "▁Mut", - "ter" - ], - [ - "CO", - "NT" - ], - [ - "CON", - "T" - ], - [ - "arm", - "ée" - ], - [ - "ag", - "net" - ], - [ - "agn", - "et" - ], - [ - "agne", - "t" - ], - [ - "▁B", - "row" - ], - [ - "▁Br", - "ow" - ], - [ - "▁Bro", - "w" - ], - [ - ".", - "—" - ], - [ - "▁Tele", - "vision" - ], - [ - "▁Д", - "ля" - ], - [ - "▁v", - "m" - ], - [ - "▁", - "vm" - ], - [ - "▁or", - "din" - ], - [ - "▁ord", - "in" - ], - [ - "▁", - "ordin" - ], - [ - "▁Миха", - "й" - ], - [ - "▁apro", - "xim" - ], - [ - "')", - "->" - ], - [ - "'", - ")->" - ], - [ - "▁z", - "oo" - ], - [ - "▁zo", - "o" - ], - [ - "ip", - "pi" - ], - [ - "ipp", - "i" - ], - [ - "i", - "ppi" - ], - [ - "▁s", - "ino" - ], - [ - "▁si", - "no" - ], - [ - "▁sin", - "o" - ], - [ - "▁Qu", - "ébec" - ], - [ - "ra", - "ges" - ], - [ - "rag", - "es" - ], - [ - "rage", - "s" - ], - [ - "r", - "ages" - ], - [ - "ä", - "ck" - ], - [ - "ei", - "ng" - ], - [ - "ein", - "g" - ], - [ - "e", - "ing" - ], - [ - "ar", - "lo" - ], - [ - "pi", - "os" - ], - [ - "pio", - "s" - ], - [ - "p", - "ios" - ], - [ - "▁C", - "han" - ], - [ - "▁Ch", - "an" - ], - [ - "▁Cha", - "n" - ], - [ - "▁el", - "li" - ], - [ - "▁ell", - "i" - ], - [ - "▁", - "elli" - ], - [ - "▁in", - "cons" - ], - [ - "▁inc", - "ons" - ], - [ - "▁incon", - "s" - ], - [ - "gest", - "ellt" - ], - [ - "g", - "estellt" - ], - [ - "pp", - "ers" - ], - [ - "pper", - "s" - ], - [ - "ppe", - "rs" - ], - [ - "p", - "pers" - ], - [ - "Je", - "an" - ], - [ - "anst", - "alt" - ], - [ - "▁D", - "ance" - ], - [ - "▁Dan", - "ce" - ], - [ - "▁to", - "en" - ], - [ - "▁toe", - "n" - ], - [ - "▁de", - "cis" - ], - [ - "▁dec", - "is" - ], - [ - "▁Ре", - "зу" - ], - [ - "▁official", - "ly" - ], - [ - "▁offici", - "ally" - ], - [ - "ät", - "ze" - ], - [ - "ätz", - "e" - ], - [ - "▁до", - "ро" - ], - [ - "▁e", - "numer" - ], - [ - "▁en", - "umer" - ], - [ - "▁enum", - "er" - ], - [ - "▁trois", - "ième" - ], - [ - "ty", - "p" - ], - [ - "t", - "yp" - ], - [ - "of", - "fs" - ], - [ - "off", - "s" - ], - [ - "бо", - "ль" - ], - [ - "od", - "n" - ], - [ - "o", - "dn" - ], - [ - "▁Z", - "ar" - ], - [ - "▁Za", - "r" - ], - [ - "▁дру", - "го" - ], - [ - "qu", - "ia" - ], - [ - "qui", - "a" - ], - [ - "▁Nicol", - "as" - ], - [ - "▁Nic", - "olas" - ], - [ - "▁Nicola", - "s" - ], - [ - "пи", - "су" - ], - [ - "пис", - "у" - ], - [ - "▁m", - "ob" - ], - [ - "▁mo", - "b" - ], - [ - "pa", - "ces" - ], - [ - "pace", - "s" - ], - [ - "p", - "aces" - ], - [ - "нь", - "ого" - ], - [ - "ньо", - "го" - ], - [ - "Al", - "g" - ], - [ - "A", - "lg" - ], - [ - "éro", - "ï" - ], - [ - "Error", - "s" - ], - [ - "Err", - "ors" - ], - [ - "▁г", - "ре" - ], - [ - "▁", - "гре" - ], - [ - "▁жен", - "щи" - ], - [ - "in", - "ch" - ], - [ - "inc", - "h" - ], - [ - "▁Kore", - "an" - ], - [ - "▁Korea", - "n" - ], - [ - "▁A", - "post" - ], - [ - "▁Ap", - "ost" - ], - [ - "▁L", - "iver" - ], - [ - "▁Li", - "ver" - ], - [ - "▁Live", - "r" - ], - [ - "▁Liv", - "er" - ], - [ - "▁element", - "ary" - ], - [ - "▁D", - "I" - ], - [ - "▁", - "DI" - ], - [ - "ви", - "си" - ], - [ - "▁so", - "il" - ], - [ - "▁D", - "LL" - ], - [ - "▁r", - "isp" - ], - [ - "▁ris", - "p" - ], - [ - "▁ri", - "sp" - ], - [ - "▁Sh", - "akespe" - ], - [ - "▁G", - "aussian" - ], - [ - "▁K", - "urt" - ], - [ - "▁Kur", - "t" - ], - [ - "▁Ku", - "rt" - ], - [ - "Ver", - "tex" - ], - [ - "Vert", - "ex" - ], - [ - "eb", - "ol" - ], - [ - "e", - "bol" - ], - [ - "organ", - "isation" - ], - [ - "är", - "en" - ], - [ - "äre", - "n" - ], - [ - "ä", - "ren" - ], - [ - "▁Y", - "ES" - ], - [ - "▁", - "YES" - ], - [ - "C", - "UR" - ], - [ - "▁нача", - "ль" - ], - [ - "▁по", - "стро" - ], - [ - "▁пос", - "тро" - ], - [ - "▁Lu", - "igi" - ], - [ - "▁c", - "aching" - ], - [ - "prevent", - "Default" - ], - [ - "am", - "d" - ], - [ - "a", - "md" - ], - [ - "▁V", - "it" - ], - [ - "▁Vi", - "t" - ], - [ - "sub", - "st" - ], - [ - "su", - "bst" - ], - [ - "▁ст", - "рои" - ], - [ - "▁C", - "ampion" - ], - [ - "▁Camp", - "ion" - ], - [ - "ch", - "r" - ], - [ - "c", - "hr" - ], - [ - "фе", - "ре" - ], - [ - "фер", - "е" - ], - [ - "ф", - "ере" - ], - [ - "▁С", - "писок" - ], - [ - "N", - "F" - ], - [ - "▁c", - "ím" - ], - [ - "▁cí", - "m" - ], - [ - "▁h", - "é" - ], - [ - "▁", - "hé" - ], - [ - "re", - "bbe" - ], - [ - "reb", - "be" - ], - [ - "oc", - "y" - ], - [ - "o", - "cy" - ], - [ - "be", - "low" - ], - [ - "bel", - "ow" - ], - [ - "▁by", - "lo" - ], - [ - "▁byl", - "o" - ], - [ - "▁У", - "и" - ], - [ - "▁\\", - "({\\" - ], - [ - "▁\\(", - "{\\" - ], - [ - "▁`", - ":" - ], - [ - "▁", - "`:" - ], - [ - "gi", - "ore" - ], - [ - "gio", - "re" - ], - [ - "gior", - "e" - ], - [ - "g", - "iore" - ], - [ - "Sa", - "n" - ], - [ - "S", - "an" - ], - [ - "▁G", - "ate" - ], - [ - "▁Ga", - "te" - ], - [ - "▁в", - "с" - ], - [ - "▁o", - "limp" - ], - [ - "▁ol", - "imp" - ], - [ - "▁Mat", - "rix" - ], - [ - "▁", - "Matrix" - ], - [ - "▁he", - "aring" - ], - [ - "▁hear", - "ing" - ], - [ - "ri", - "i" - ], - [ - "r", - "ii" - ], - [ - "tf", - "rac" - ], - [ - "t", - "frac" - ], - [ - "▁allem", - "and" - ], - [ - "▁V", - "ue" - ], - [ - "л", - "н" - ], - [ - "▁comp", - "iling" - ], - [ - "▁E", - "ns" - ], - [ - "▁En", - "s" - ], - [ - "▁investig", - "ation" - ], - [ - "▁A", - "x" - ], - [ - "▁ch", - "ars" - ], - [ - "▁char", - "s" - ], - [ - "▁cha", - "rs" - ], - [ - "▁target", - "s" - ], - [ - "▁tar", - "gets" - ], - [ - "▁l", - "oud" - ], - [ - "▁lo", - "ud" - ], - [ - "us", - "ement" - ], - [ - "use", - "ment" - ], - [ - "▁N", - "ether" - ], - [ - "▁Ne", - "ther" - ], - [ - "▁Net", - "her" - ], - [ - "com", - "merce" - ], - [ - "IG", - "HT" - ], - [ - "oc", - "oa" - ], - [ - "oco", - "a" - ], - [ - "if", - "ecycle" - ], - [ - "ife", - "cycle" - ], - [ - "▁Le", - "o" - ], - [ - "pr", - "iv" - ], - [ - "p", - "riv" - ], - [ - "▁go", - "ods" - ], - [ - "▁good", - "s" - ], - [ - "ad", - "amente" - ], - [ - "ada", - "mente" - ], - [ - "A", - "ustral" - ], - [ - "▁re", - "boot" - ], - [ - "▁reb", - "oot" - ], - [ - "Ge", - "st" - ], - [ - "G", - "est" - ], - [ - "▁represent", - "ations" - ], - [ - "▁representation", - "s" - ], - [ - "ce", - "u" - ], - [ - "c", - "eu" - ], - [ - "▁do", - "ctrine" - ], - [ - "ce", - "rs" - ], - [ - "cer", - "s" - ], - [ - "c", - "ers" - ], - [ - "▁K", - "rak" - ], - [ - "▁Kr", - "ak" - ], - [ - "▁Kra", - "k" - ], - [ - "▁adv", - "oc" - ], - [ - "▁squad", - "ra" - ], - [ - "▁arbeit", - "ete" - ], - [ - "üs", - "t" - ], - [ - "ü", - "st" - ], - [ - "▁p", - "ill" - ], - [ - "▁pi", - "ll" - ], - [ - "▁pil", - "l" - ], - [ - "An", - "swer" - ], - [ - "▁к", - "віт" - ], - [ - "▁W", - "a" - ], - [ - "um", - "ann" - ], - [ - "uman", - "n" - ], - [ - "uma", - "nn" - ], - [ - "u", - "mann" - ], - [ - "▁D", - "ynam" - ], - [ - "▁Dy", - "nam" - ], - [ - "Fa", - "mil" - ], - [ - "F", - "amil" - ], - [ - "▁t", - "ennis" - ], - [ - "▁ten", - "nis" - ], - [ - "▁Engine", - "ering" - ], - [ - "▁circ", - "les" - ], - [ - "▁cir", - "cles" - ], - [ - "▁circle", - "s" - ], - [ - "▁Mary", - "land" - ], - [ - "▁b", - "esta" - ], - [ - "▁be", - "sta" - ], - [ - "▁best", - "a" - ], - [ - "▁bes", - "ta" - ], - [ - "▁b", - "ases" - ], - [ - "▁bas", - "es" - ], - [ - "▁base", - "s" - ], - [ - "▁znaj", - "du" - ], - [ - "ктор", - "а" - ], - [ - "кто", - "ра" - ], - [ - "к", - "тора" - ], - [ - "▁ar", - "rest" - ], - [ - "▁arr", - "est" - ], - [ - "ле", - "р" - ], - [ - "л", - "ер" - ], - [ - "▁G", - "ia" - ], - [ - "▁Gi", - "a" - ], - [ - "▁remark", - "able" - ], - [ - "▁мо", - "гу" - ], - [ - "▁Sup", - "reme" - ], - [ - "▁`", - "%" - ], - [ - "do", - "r" - ], - [ - "d", - "or" - ], - [ - "▁au", - "jourd" - ], - [ - "▁w", - "is" - ], - [ - "WID", - "TH" - ], - [ - "▁mis", - "ma" - ], - [ - "▁mism", - "a" - ], - [ - "▁fl", - "uid" - ], - [ - "▁flu", - "id" - ], - [ - "▁pet", - "ite" - ], - [ - "▁petit", - "e" - ], - [ - "▁T", - "ow" - ], - [ - "▁To", - "w" - ], - [ - "Reg", - "istry" - ], - [ - "em", - "ed" - ], - [ - "eme", - "d" - ], - [ - "e", - "med" - ], - [ - "▁Wis", - "consin" - ], - [ - "▁R", - "acing" - ], - [ - "▁Ra", - "cing" - ], - [ - "▁reg", - "istration" - ], - [ - "▁registr", - "ation" - ], - [ - "/", - "%" - ], - [ - "th", - "ird" - ], - [ - "▁mon", - "uments" - ], - [ - "▁monument", - "s" - ], - [ - "че", - "й" - ], - [ - "ч", - "ей" - ], - [ - "▁j", - "et" - ], - [ - "▁je", - "t" - ], - [ - "▁", - "jet" - ], - [ - "▁Ur", - "ban" - ], - [ - "ál", - "va" - ], - [ - "▁mil", - "ieu" - ], - [ - "▁poss", - "ess" - ], - [ - "▁g", - "erm" - ], - [ - "▁ge", - "rm" - ], - [ - "▁ger", - "m" - ], - [ - "dep", - "endencies" - ], - [ - "▁enem", - "ies" - ], - [ - "▁s", - "amen" - ], - [ - "▁sa", - "men" - ], - [ - "▁same", - "n" - ], - [ - "▁sam", - "en" - ], - [ - "▁W", - "erner" - ], - [ - "▁Wer", - "ner" - ], - [ - "▁h", - "izo" - ], - [ - "▁hi", - "zo" - ], - [ - "▁t", - "d" - ], - [ - "▁", - "td" - ], - [ - "▁y", - "esterday" - ], - [ - "▁А", - "д" - ], - [ - "▁ha", - "sn" - ], - [ - "▁has", - "n" - ], - [ - "cel", - "lation" - ], - [ - "cell", - "ation" - ], - [ - "ov", - "ání" - ], - [ - "ová", - "ní" - ], - [ - "li", - "ka" - ], - [ - "lik", - "a" - ], - [ - "l", - "ika" - ], - [ - "We", - "ek" - ], - [ - "▁I", - "ng" - ], - [ - "▁In", - "g" - ], - [ - "▁E", - "mail" - ], - [ - "▁Em", - "ail" - ], - [ - "▁", - "Email" - ], - [ - "▁m", - "ètres" - ], - [ - "▁O", - "CLC" - ], - [ - "▁among", - "st" - ], - [ - "▁spl", - "end" - ], - [ - "fu", - "r" - ], - [ - "f", - "ur" - ], - [ - "ant", - "ics" - ], - [ - "anti", - "cs" - ], - [ - "antic", - "s" - ], - [ - "▁X", - "XX" - ], - [ - "▁XX", - "X" - ], - [ - "▁", - "XXX" - ], - [ - "▁груп", - "пы" - ], - [ - "la", - "ch" - ], - [ - "lac", - "h" - ], - [ - "l", - "ach" - ], - [ - "▁c", - "ousin" - ], - [ - "▁cou", - "sin" - ], - [ - "▁in", - "variant" - ], - [ - "▁invari", - "ant" - ], - [ - "ђ", - "у" - ], - [ - "▁Be", - "ispiel" - ], - [ - "▁Bei", - "spiel" - ], - [ - "▁hard", - "er" - ], - [ - "▁har", - "der" - ], - [ - "▁b", - "ell" - ], - [ - "▁be", - "ll" - ], - [ - "▁bel", - "l" - ], - [ - "▁", - "bell" - ], - [ - "▁or", - "ch" - ], - [ - "▁", - "orch" - ], - [ - "t", - "b" - ], - [ - "Foot", - "note" - ], - [ - "re", - "gon" - ], - [ - "reg", - "on" - ], - [ - "Mart", - "in" - ], - [ - "▁in", - "con" - ], - [ - "▁inc", - "on" - ], - [ - "▁attack", - "ed" - ], - [ - "_{", - "-" - ], - [ - "_", - "{-" - ], - [ - "▁T", - "ras" - ], - [ - "▁Tr", - "as" - ], - [ - "▁Tra", - "s" - ], - [ - "par", - "ty" - ], - [ - "part", - "y" - ], - [ - "ite", - "it" - ], - [ - "▁s", - "aint" - ], - [ - "▁sa", - "int" - ], - [ - "▁sain", - "t" - ], - [ - "rás", - "ok" - ], - [ - "r", - "ások" - ], - [ - "▁contain", - "ers" - ], - [ - "▁container", - "s" - ], - [ - "M", - "o" - ], - [ - "▁S", - "n" - ], - [ - "quant", - "ity" - ], - [ - "▁r", - "as" - ], - [ - "▁ra", - "s" - ], - [ - "▁", - "ras" - ], - [ - "▁C", - "anal" - ], - [ - "▁Can", - "al" - ], - [ - "▁Ca", - "nal" - ], - [ - "cc", - "ion" - ], - [ - "c", - "cion" - ], - [ - "uv", - "o" - ], - [ - "u", - "vo" - ], - [ - "▁i", - "dx" - ], - [ - "▁id", - "x" - ], - [ - "▁", - "idx" - ], - [ - "type", - "name" - ], - [ - "typen", - "ame" - ], - [ - "typ", - "ename" - ], - [ - "▁R", - "ugby" - ], - [ - "▁Se", - "ems" - ], - [ - "▁See", - "ms" - ], - [ - "▁trans", - "mit" - ], - [ - "▁transm", - "it" - ], - [ - "▁Pr", - "äsident" - ], - [ - "з", - "не" - ], - [ - "▁B", - "aker" - ], - [ - "▁Ba", - "ker" - ], - [ - "▁Bak", - "er" - ], - [ - "in", - "th" - ], - [ - "int", - "h" - ], - [ - "i", - "nth" - ], - [ - "▁tö", - "bb" - ], - [ - "ver", - "ein" - ], - [ - "vere", - "in" - ], - [ - "▁espe", - "cie" - ], - [ - "▁espec", - "ie" - ], - [ - ",", - "(" - ], - [ - "▁t", - "éc" - ], - [ - "▁té", - "c" - ], - [ - "▁W", - "ITH" - ], - [ - "▁u", - "nos" - ], - [ - "▁un", - "os" - ], - [ - "▁uno", - "s" - ], - [ - "▁", - "unos" - ], - [ - "▁polit", - "ics" - ], - [ - "create", - "Element" - ], - [ - "▁st", - "ats" - ], - [ - "▁stat", - "s" - ], - [ - "▁sta", - "ts" - ], - [ - "▁", - "stats" - ], - [ - "▁T", - "ennessee" - ], - [ - "▁Bedeut", - "ung" - ], - [ - "▁S", - "creen" - ], - [ - "▁Sc", - "reen" - ], - [ - "▁", - "Screen" - ], - [ - "▁Stra", - "ße" - ], - [ - "an", - "ze" - ], - [ - "anz", - "e" - ], - [ - "▁part", - "ly" - ], - [ - "man", - "uel" - ], - [ - "ol", - "ation" - ], - [ - "ola", - "tion" - ], - [ - "o", - "lation" - ], - [ - "hor", - "izontal" - ], - [ - "érie", - "ure" - ], - [ - "érieur", - "e" - ], - [ - "am", - "pio" - ], - [ - "amp", - "io" - ], - [ - "▁ст", - "рук" - ], - [ - "▁", - "струк" - ], - [ - "We", - "ight" - ], - [ - "La", - "nd" - ], - [ - "L", - "and" - ], - [ - "po", - "ly" - ], - [ - "pol", - "y" - ], - [ - "p", - "oly" - ], - [ - "▁D", - "ak" - ], - [ - "▁Da", - "k" - ], - [ - "▁Ass", - "ume" - ], - [ - "\".", - "$" - ], - [ - "\"", - ".$" - ], - [ - "▁c", - "asi" - ], - [ - "▁cas", - "i" - ], - [ - "▁ca", - "si" - ], - [ - "▁g", - "ross" - ], - [ - "▁gr", - "oss" - ], - [ - "▁gro", - "ss" - ], - [ - "▁gros", - "s" - ], - [ - "▁ent", - "ertain" - ], - [ - "▁enter", - "tain" - ], - [ - "▁déc", - "ada" - ], - [ - "'.", - "$" - ], - [ - "'", - ".$" - ], - [ - "en", - "cer" - ], - [ - "ence", - "r" - ], - [ - "enc", - "er" - ], - [ - "▁guarante", - "ed" - ], - [ - "▁guarantee", - "d" - ], - [ - "]$", - "." - ], - [ - "]", - "$." - ], - [ - "ли", - "ся" - ], - [ - "▁accept", - "able" - ], - [ - "ra", - "ise" - ], - [ - "rai", - "se" - ], - [ - "rais", - "e" - ], - [ - "ir", - "us" - ], - [ - "i", - "rus" - ], - [ - "we", - "it" - ], - [ - "wei", - "t" - ], - [ - "▁А", - "на" - ], - [ - "▁Ан", - "а" - ], - [ - "▁h", - "ills" - ], - [ - "▁hill", - "s" - ], - [ - "ip", - "age" - ], - [ - "i", - "page" - ], - [ - "BI", - "T" - ], - [ - "B", - "IT" - ], - [ - "▁nu", - "cle" - ], - [ - "▁nuc", - "le" - ], - [ - "▁ut", - "ilis" - ], - [ - "▁util", - "is" - ], - [ - "CA", - "A" - ], - [ - "C", - "AA" - ], - [ - "ène", - "s" - ], - [ - "èn", - "es" - ], - [ - "è", - "nes" - ], - [ - "▁Schwe", - "iz" - ], - [ - "▁A", - "A" - ], - [ - "▁", - "AA" - ], - [ - "ning", - "er" - ], - [ - "n", - "inger" - ], - [ - "▁b", - "ands" - ], - [ - "▁band", - "s" - ], - [ - "▁ban", - "ds" - ], - [ - "▁t", - "ender" - ], - [ - "▁te", - "nder" - ], - [ - "▁ten", - "der" - ], - [ - "▁tend", - "er" - ], - [ - "so", - "m" - ], - [ - "s", - "om" - ], - [ - "W", - "arning" - ], - [ - "▁B", - "ischof" - ], - [ - "▁A", - "rc" - ], - [ - "▁Ar", - "c" - ], - [ - "▁W", - "oman" - ], - [ - "▁Wo", - "man" - ], - [ - "▁trans", - "mission" - ], - [ - "▁transm", - "ission" - ], - [ - "ч", - "ни" - ], - [ - "is", - "tre" - ], - [ - "ist", - "re" - ], - [ - "istr", - "e" - ], - [ - "i", - "stre" - ], - [ - "B", - "Y" - ], - [ - "▁S", - "I" - ], - [ - "▁", - "SI" - ], - [ - "▁П", - "ар" - ], - [ - "▁Па", - "р" - ], - [ - "▁}", - ")." - ], - [ - "▁})", - "." - ], - [ - "▁", - "})." - ], - [ - "▁present", - "a" - ], - [ - "▁pres", - "enta" - ], - [ - "▁Re", - "né" - ], - [ - "▁Ren", - "é" - ], - [ - "▁happ", - "iness" - ], - [ - "▁P", - "unk" - ], - [ - "col", - "s" - ], - [ - "co", - "ls" - ], - [ - "c", - "ols" - ], - [ - "▁Des", - "de" - ], - [ - "рё", - "х" - ], - [ - "▁м", - "она" - ], - [ - "▁мо", - "на" - ], - [ - "▁scr", - "atch" - ], - [ - "▁t", - "cp" - ], - [ - "▁", - "tcp" - ], - [ - "ête", - "s" - ], - [ - "êt", - "es" - ], - [ - "ê", - "tes" - ], - [ - "it", - "ated" - ], - [ - "ita", - "ted" - ], - [ - "itat", - "ed" - ], - [ - "itate", - "d" - ], - [ - "▁dif", - "eren" - ], - [ - "▁difer", - "en" - ], - [ - "ge", - "h" - ], - [ - "g", - "eh" - ], - [ - "na", - "hmen" - ], - [ - "nah", - "men" - ], - [ - "nahme", - "n" - ], - [ - "nahm", - "en" - ], - [ - "П", - "е" - ], - [ - "ck", - "i" - ], - [ - "c", - "ki" - ], - [ - "▁Te", - "atro" - ], - [ - "▁Re", - "member" - ], - [ - "▁Rem", - "ember" - ], - [ - "▁f", - "right" - ], - [ - "▁fr", - "ight" - ], - [ - "▁Y", - "am" - ], - [ - "▁Ya", - "m" - ], - [ - "west", - "ern" - ], - [ - "le", - "ted" - ], - [ - "let", - "ed" - ], - [ - "lete", - "d" - ], - [ - "▁в", - "стре" - ], - [ - "▁вс", - "тре" - ], - [ - "▁telep", - "ülés" - ], - [ - "зи", - "н" - ], - [ - "з", - "ин" - ], - [ - "▁Qu", - "ant" - ], - [ - "▁", - "Quant" - ], - [ - "▁su", - "pre" - ], - [ - "▁sup", - "re" - ], - [ - "áj", - "a" - ], - [ - "á", - "ja" - ], - [ - "ді", - "я" - ], - [ - "д", - "ія" - ], - [ - "▁car", - "rera" - ], - [ - "▁carre", - "ra" - ], - [ - "kre", - "t" - ], - [ - "kr", - "et" - ], - [ - "k", - "ret" - ], - [ - "par", - "a" - ], - [ - "pa", - "ra" - ], - [ - "p", - "ara" - ], - [ - "▁S", - "UM" - ], - [ - "▁SU", - "M" - ], - [ - "▁", - "SUM" - ], - [ - "▁p", - "it" - ], - [ - "▁pi", - "t" - ], - [ - "▁", - "pit" - ], - [ - "ź", - "dz" - ], - [ - "é", - "o" - ], - [ - "ре", - "ння" - ], - [ - "рен", - "ня" - ], - [ - "▁C", - "hor" - ], - [ - "▁Ch", - "or" - ], - [ - "▁Cho", - "r" - ], - [ - "▁vo", - "ix" - ], - [ - "▁exec", - "utive" - ], - [ - "▁execut", - "ive" - ], - [ - "▁all", - "erdings" - ], - [ - "May", - "be" - ], - [ - "▁д", - "ень" - ], - [ - "▁де", - "нь" - ], - [ - "▁f", - "lying" - ], - [ - "▁fl", - "ying" - ], - [ - "▁fly", - "ing" - ], - [ - "▁par", - "liament" - ], - [ - "жда", - "н" - ], - [ - "ж", - "дан" - ], - [ - "▁f", - "ram" - ], - [ - "▁fr", - "am" - ], - [ - "▁fra", - "m" - ], - [ - "▁", - "fram" - ], - [ - "▁жов", - "т" - ], - [ - "▁u", - "gly" - ], - [ - "▁бу", - "ду" - ], - [ - "ig", - "ny" - ], - [ - "ign", - "y" - ], - [ - "\\|", - "_{" - ], - [ - "\\", - "|_{" - ], - [ - "▁b", - "itter" - ], - [ - "▁bit", - "ter" - ], - [ - "sc", - "e" - ], - [ - "s", - "ce" - ], - [ - "▁p", - "ole" - ], - [ - "▁po", - "le" - ], - [ - "▁pol", - "e" - ], - [ - "▁", - "pole" - ], - [ - "Ver", - "lag" - ], - [ - "▁total", - "ité" - ], - [ - "▁found", - "ation" - ], - [ - "j", - "t" - ], - [ - "▁s", - "lice" - ], - [ - "▁sl", - "ice" - ], - [ - "▁sli", - "ce" - ], - [ - "▁", - "slice" - ], - [ - "if", - "ique" - ], - [ - "ifi", - "que" - ], - [ - "▁integr", - "ate" - ], - [ - "▁integra", - "te" - ], - [ - "st", - "rij" - ], - [ - "str", - "ij" - ], - [ - "▁asym", - "pt" - ], - [ - "▁е", - "му" - ], - [ - "▁pert", - "urb" - ], - [ - "▁F", - "low" - ], - [ - "▁Fl", - "ow" - ], - [ - "▁Flo", - "w" - ], - [ - "▁", - "Flow" - ], - [ - "jb", - "oss" - ], - [ - "RI", - "G" - ], - [ - "R", - "IG" - ], - [ - "▁A", - "less" - ], - [ - "▁Al", - "ess" - ], - [ - "▁Ale", - "ss" - ], - [ - "XX", - "X" - ], - [ - "X", - "XX" - ], - [ - "▁s", - "umm" - ], - [ - "▁su", - "mm" - ], - [ - "▁sum", - "m" - ], - [ - "sql", - "ite" - ], - [ - "▁che", - "er" - ], - [ - "pr", - "ob" - ], - [ - "pro", - "b" - ], - [ - "p", - "rob" - ], - [ - "▁G", - "PU" - ], - [ - "▁GP", - "U" - ], - [ - "zi", - "ł" - ], - [ - "z", - "ił" - ], - [ - "(*", - ")" - ], - [ - "(", - "*)" - ], - [ - "▁in", - "duct" - ], - [ - "▁ind", - "uct" - ], - [ - "▁indu", - "ct" - ], - [ - "RA", - "Y" - ], - [ - "bl", - "att" - ], - [ - "bla", - "tt" - ], - [ - "qu", - "esta" - ], - [ - "que", - "sta" - ], - [ - "quest", - "a" - ], - [ - "ques", - "ta" - ], - [ - "or", - "u" - ], - [ - "o", - "ru" - ], - [ - "▁In", - "side" - ], - [ - "▁Ins", - "ide" - ], - [ - "▁Mc", - "G" - ], - [ - "▁N", - "ep" - ], - [ - "▁Ne", - "p" - ], - [ - "м", - "п" - ], - [ - "▁in", - "ve" - ], - [ - "▁inv", - "e" - ], - [ - "▁An", - "imal" - ], - [ - "▁Anim", - "al" - ], - [ - "▁s", - "ob" - ], - [ - "▁so", - "b" - ], - [ - "▁", - "sob" - ], - [ - "ít", - "ott" - ], - [ - "loy", - "ment" - ], - [ - "▁b", - "und" - ], - [ - "▁bu", - "nd" - ], - [ - "▁", - "bund" - ], - [ - "St", - "ation" - ], - [ - "Stat", - "ion" - ], - [ - "▁B", - "EGIN" - ], - [ - "▁part", - "iellement" - ], - [ - "ig", - "g" - ], - [ - "i", - "gg" - ], - [ - "est", - "ore" - ], - [ - "esto", - "re" - ], - [ - "e", - "store" - ], - [ - "▁co", - "inc" - ], - [ - "▁coin", - "c" - ], - [ - "▁Som", - "mer" - ], - [ - "▁m", - "d" - ], - [ - "▁", - "md" - ], - [ - "▁loc", - "ked" - ], - [ - "▁lock", - "ed" - ], - [ - "▁", - "locked" - ], - [ - "math", - "char" - ], - [ - "ar", - "ma" - ], - [ - "arm", - "a" - ], - [ - "pe", - "nt" - ], - [ - "pen", - "t" - ], - [ - "p", - "ent" - ], - [ - "ar", - "ium" - ], - [ - "ari", - "um" - ], - [ - "a", - "rium" - ], - [ - "▁e", - "ars" - ], - [ - "▁ear", - "s" - ], - [ - "▁", - "ears" - ], - [ - "▁S", - "ongs" - ], - [ - "▁Son", - "gs" - ], - [ - "▁Song", - "s" - ], - [ - "▁similar", - "ly" - ], - [ - "▁liter", - "ally" - ], - [ - "▁literal", - "ly" - ], - [ - "▁in", - "ches" - ], - [ - "▁inc", - "hes" - ], - [ - "▁af", - "fection" - ], - [ - "▁aff", - "ection" - ], - [ - "▁affect", - "ion" - ], - [ - "l", - "p" - ], - [ - "▁con", - "cluded" - ], - [ - "▁conclude", - "d" - ], - [ - "▁му", - "ніципалі" - ], - [ - "▁па", - "мя" - ], - [ - "est", - "aur" - ], - [ - "esta", - "ur" - ], - [ - "▁J", - "osh" - ], - [ - "▁Jo", - "sh" - ], - [ - "▁Jos", - "h" - ], - [ - "▁F", - "ritz" - ], - [ - "▁Fr", - "itz" - ], - [ - "▁Fri", - "tz" - ], - [ - "DB", - "C" - ], - [ - "D", - "BC" - ], - [ - "д", - "ён" - ], - [ - "pos", - "a" - ], - [ - "po", - "sa" - ], - [ - "p", - "osa" - ], - [ - "▁gold", - "en" - ], - [ - "▁gol", - "den" - ], - [ - "▁p", - "c" - ], - [ - "▁", - "pc" - ], - [ - "▁com", - "te" - ], - [ - "▁Z", - "iel" - ], - [ - "▁Zie", - "l" - ], - [ - "▁prés", - "ente" - ], - [ - "▁présent", - "e" - ], - [ - "mar", - "ks" - ], - [ - "mark", - "s" - ], - [ - "m", - "arks" - ], - [ - "ig", - "neur" - ], - [ - "ign", - "eur" - ], - [ - "igne", - "ur" - ], - [ - "▁D", - "rive" - ], - [ - "▁Dr", - "ive" - ], - [ - "▁neg", - "lect" - ], - [ - "▁roz", - "p" - ], - [ - "▁F", - "ive" - ], - [ - "sp", - "aces" - ], - [ - "space", - "s" - ], - [ - "s", - "paces" - ], - [ - "▁M", - "edi" - ], - [ - "▁Me", - "di" - ], - [ - "▁Med", - "i" - ], - [ - "▁ex", - "isted" - ], - [ - "▁exist", - "ed" - ], - [ - "▁existe", - "d" - ], - [ - "▁by", - "ła" - ], - [ - "▁był", - "a" - ], - [ - "дж", - "и" - ], - [ - "д", - "жи" - ], - [ - "▁fr", - "ente" - ], - [ - "т", - "ник" - ], - [ - "od", - "d" - ], - [ - "o", - "dd" - ], - [ - "▁answer", - "ing" - ], - [ - "bi", - "an" - ], - [ - "bia", - "n" - ], - [ - "b", - "ian" - ], - [ - "▁E", - "ugen" - ], - [ - "▁Eu", - "gen" - ], - [ - "▁Eug", - "en" - ], - [ - "▁Public", - "ations" - ], - [ - "▁Pub", - "lications" - ], - [ - "▁D", - "ia" - ], - [ - "▁Di", - "a" - ], - [ - "l", - "á" - ], - [ - "▁'", - "_" - ], - [ - "▁", - "'_" - ], - [ - "▁rec", - "uper" - ], - [ - "ом", - "у" - ], - [ - "о", - "му" - ], - [ - "▁App", - "end" - ], - [ - "▁Ap", - "pend" - ], - [ - "▁", - "Append" - ], - [ - "ob", - "ar" - ], - [ - "oba", - "r" - ], - [ - "o", - "bar" - ], - [ - "▁employ", - "ees" - ], - [ - "▁employee", - "s" - ], - [ - "▁comp", - "ens" - ], - [ - "eme", - "tery" - ], - [ - "emet", - "ery" - ], - [ - "▁э", - "лект" - ], - [ - "MO", - "N" - ], - [ - "M", - "ON" - ], - [ - "ol", - "in" - ], - [ - "oli", - "n" - ], - [ - "o", - "lin" - ], - [ - "▁histor", - "ic" - ], - [ - "hi", - "s" - ], - [ - "h", - "is" - ], - [ - "ą", - "d" - ], - [ - "n", - "m" - ], - [ - "▁G", - "oth" - ], - [ - "▁Go", - "th" - ], - [ - "▁Got", - "h" - ], - [ - "▁st", - "ress" - ], - [ - "▁str", - "ess" - ], - [ - "▁stre", - "ss" - ], - [ - "▁parte", - "cip" - ], - [ - "▁A", - "w" - ], - [ - "▁s", - "ar" - ], - [ - "▁sa", - "r" - ], - [ - "▁h", - "u" - ], - [ - "▁", - "hu" - ], - [ - "▁mat", - "plotlib" - ], - [ - "▁M", - "yst" - ], - [ - "▁My", - "st" - ], - [ - "▁Mys", - "t" - ], - [ - "()", - ";`" - ], - [ - "();", - "`" - ], - [ - "(", - ");`" - ], - [ - "sch", - "ein" - ], - [ - "sc", - "hein" - ], - [ - "sche", - "in" - ], - [ - "Long", - "rightarrow" - ], - [ - "▁р", - "я" - ], - [ - "▁", - "ря" - ], - [ - "▁Is", - "ra" - ], - [ - "[", - "^" - ], - [ - "no", - "u" - ], - [ - "n", - "ou" - ], - [ - "▁syn", - "d" - ], - [ - "▁sy", - "nd" - ], - [ - "work", - "ing" - ], - [ - "wor", - "king" - ], - [ - "▁N", - "ation" - ], - [ - "▁Na", - "tion" - ], - [ - "▁Nat", - "ion" - ], - [ - "▁P", - "ent" - ], - [ - "▁Pe", - "nt" - ], - [ - "▁Pen", - "t" - ], - [ - "▁k", - "lass" - ], - [ - "▁kl", - "ass" - ], - [ - "▁klas", - "s" - ], - [ - "▁applic", - "able" - ], - [ - "▁D", - "iam" - ], - [ - "▁Di", - "am" - ], - [ - "▁Dia", - "m" - ], - [ - "▁bras", - "ile" - ], - [ - "▁p", - "ac" - ], - [ - "▁pa", - "c" - ], - [ - "▁He", - "ight" - ], - [ - "▁", - "Height" - ], - [ - "P", - "ut" - ], - [ - "▁int", - "ro" - ], - [ - "▁intr", - "o" - ], - [ - "▁", - "intro" - ], - [ - "▁unus", - "ual" - ], - [ - "na", - "s" - ], - [ - "n", - "as" - ], - [ - "▁Geb", - "äude" - ], - [ - "▁be", - "am" - ], - [ - "▁R", - "ect" - ], - [ - "▁Re", - "ct" - ], - [ - "▁Rec", - "t" - ], - [ - "▁", - "Rect" - ], - [ - "▁Prim", - "era" - ], - [ - "▁Prime", - "ra" - ], - [ - "▁h", - "aut" - ], - [ - "▁ha", - "ut" - ], - [ - "▁t", - "rait" - ], - [ - "▁tr", - "ait" - ], - [ - "▁tra", - "it" - ], - [ - "prü", - "ft" - ], - [ - "in", - "ación" - ], - [ - "ina", - "ción" - ], - [ - "▁configuration", - "s" - ], - [ - "▁configur", - "ations" - ], - [ - "▁g", - "ilt" - ], - [ - "▁gi", - "lt" - ], - [ - "▁territ", - "oire" - ], - [ - "he", - "z" - ], - [ - "h", - "ez" - ], - [ - "▁al", - "te" - ], - [ - "▁alt", - "e" - ], - [ - "rel", - "ative" - ], - [ - "Ex", - "cel" - ], - [ - "▁W", - "right" - ], - [ - "G", - "V" - ], - [ - "по", - "ли" - ], - [ - "пол", - "и" - ], - [ - "Qu", - "ant" - ], - [ - "▁ga", - "uge" - ], - [ - "▁gau", - "ge" - ], - [ - "▁multi", - "ply" - ], - [ - "▁multip", - "ly" - ], - [ - "AS", - "S" - ], - [ - "A", - "SS" - ], - [ - "ствен", - "но" - ], - [ - "ан", - "у" - ], - [ - "а", - "ну" - ], - [ - "▁j", - "eden" - ], - [ - "▁je", - "den" - ], - [ - "▁jed", - "en" - ], - [ - "▁liter", - "ary" - ], - [ - "▁D", - "ro" - ], - [ - "▁Dr", - "o" - ], - [ - "▁adv", - "ise" - ], - [ - "▁advis", - "e" - ], - [ - "it", - "zen" - ], - [ - "itz", - "en" - ], - [ - "▁dis", - "ag" - ], - [ - "web", - "site" - ], - [ - "▁д", - "ія" - ], - [ - "▁ді", - "я" - ], - [ - "▁", - "дія" - ], - [ - "▁ob", - "server" - ], - [ - "▁obser", - "ver" - ], - [ - "▁observ", - "er" - ], - [ - "▁observe", - "r" - ], - [ - "▁janu", - "ár" - ], - [ - "v", - "ě" - ], - [ - "ku", - "p" - ], - [ - "k", - "up" - ], - [ - "▁S", - "es" - ], - [ - "▁Se", - "s" - ], - [ - "▁woj", - "ew" - ], - [ - "▁st", - "ages" - ], - [ - "▁stage", - "s" - ], - [ - "▁sta", - "ges" - ], - [ - "▁stag", - "es" - ], - [ - "▁вре", - "мени" - ], - [ - "▁време", - "ни" - ], - [ - "łu", - "ż" - ], - [ - "но", - "с" - ], - [ - "н", - "ос" - ], - [ - "Down", - "load" - ], - [ - "ip", - "o" - ], - [ - "i", - "po" - ], - [ - "▁g", - "raf" - ], - [ - "▁gr", - "af" - ], - [ - "▁gra", - "f" - ], - [ - "▁ро", - "бо" - ], - [ - "▁Nik", - "ol" - ], - [ - "▁Ni", - "kol" - ], - [ - "▁f", - "ic" - ], - [ - "▁fi", - "c" - ], - [ - "▁", - "fic" - ], - [ - "▁jo", - "ining" - ], - [ - "▁join", - "ing" - ], - [ - "▁divers", - "os" - ], - [ - "▁LI", - "KE" - ], - [ - "▁F", - "itz" - ], - [ - "▁d", - "imin" - ], - [ - "▁di", - "min" - ], - [ - "▁dim", - "in" - ], - [ - "▁dist", - "rib" - ], - [ - "Sa", - "m" - ], - [ - "S", - "am" - ], - [ - "ko", - "z" - ], - [ - "k", - "oz" - ], - [ - "▁al", - "phabet" - ], - [ - "▁alpha", - "bet" - ], - [ - "os", - "er" - ], - [ - "ose", - "r" - ], - [ - "o", - "ser" - ], - [ - "OU", - "R" - ], - [ - "O", - "UR" - ], - [ - "uk", - "a" - ], - [ - "u", - "ka" - ], - [ - "ка", - "я" - ], - [ - "▁ste", - "el" - ], - [ - "▁`", - "--" - ], - [ - "▁`-", - "-" - ], - [ - "▁t", - "ener" - ], - [ - "▁te", - "ner" - ], - [ - "▁ten", - "er" - ], - [ - "mar", - "ker" - ], - [ - "mark", - "er" - ], - [ - "▁He", - "aven" - ], - [ - "new", - "command" - ], - [ - "▁prison", - "ers" - ], - [ - "▁prisoner", - "s" - ], - [ - "▁K", - "night" - ], - [ - "▁Kn", - "ight" - ], - [ - "▁present", - "s" - ], - [ - "▁pres", - "ents" - ], - [ - "▁qu", - "esti" - ], - [ - "▁quest", - "i" - ], - [ - "▁tr", - "ains" - ], - [ - "▁tra", - "ins" - ], - [ - "▁train", - "s" - ], - [ - "op", - "era" - ], - [ - "ope", - "ra" - ], - [ - "oper", - "a" - ], - [ - "▁Li", - "near" - ], - [ - "▁Lin", - "ear" - ], - [ - "▁Line", - "ar" - ], - [ - "▁", - "Linear" - ], - [ - "▁M", - "E" - ], - [ - "▁", - "ME" - ], - [ - "▁B", - "uc" - ], - [ - "▁Bu", - "c" - ], - [ - "Le", - "g" - ], - [ - "L", - "eg" - ], - [ - "▁ag", - "ua" - ], - [ - "▁", - "agua" - ], - [ - "▁Gr", - "iff" - ], - [ - "ol", - "g" - ], - [ - "o", - "lg" - ], - [ - "ds", - "t" - ], - [ - "d", - "st" - ], - [ - ".", - "\r" - ], - [ - "▁person", - "es" - ], - [ - "▁pers", - "ones" - ], - [ - "▁persone", - "s" - ], - [ - "Ma", - "l" - ], - [ - "M", - "al" - ], - [ - "бе", - "ре" - ], - [ - "бер", - "е" - ], - [ - "б", - "ере" - ], - [ - "fol", - "ge" - ], - [ - "folg", - "e" - ], - [ - "▁ac", - "ab" - ], - [ - "ct", - "u" - ], - [ - "c", - "tu" - ], - [ - "pt", - "ic" - ], - [ - "▁N", - "avigation" - ], - [ - "▁", - "Navigation" - ], - [ - "R", - "uss" - ], - [ - "га", - "ль" - ], - [ - "г", - "аль" - ], - [ - "▁F", - "ul" - ], - [ - "▁Fu", - "l" - ], - [ - "▁ма", - "є" - ], - [ - "чна", - "я" - ], - [ - "ч", - "ная" - ], - [ - "wn", - "er" - ], - [ - "w", - "ner" - ], - [ - "con", - "tra" - ], - [ - "cont", - "ra" - ], - [ - "contr", - "a" - ], - [ - "▁jou", - "eur" - ], - [ - "▁joue", - "ur" - ], - [ - "▁J", - "ess" - ], - [ - "▁Je", - "ss" - ], - [ - "▁Jes", - "s" - ], - [ - "▁re", - "new" - ], - [ - "▁ren", - "ew" - ], - [ - "▁l", - "ap" - ], - [ - "▁la", - "p" - ], - [ - "▁", - "lap" - ], - [ - "▁cas", - "ting" - ], - [ - "▁cast", - "ing" - ], - [ - "ga", - "l" - ], - [ - "g", - "al" - ], - [ - "▁tém", - "atu" - ], - [ - "▁на", - "зыва" - ], - [ - "за", - "х" - ], - [ - "ч", - "не" - ], - [ - ")-", - "\\" - ], - [ - ")", - "-\\" - ], - [ - "▁ча", - "сто" - ], - [ - "▁час", - "то" - ], - [ - "▁част", - "о" - ], - [ - "}$", - "-" - ], - [ - "}", - "$-" - ], - [ - "▁l", - "icz" - ], - [ - "▁li", - "cz" - ], - [ - "▁lic", - "z" - ], - [ - "▁e", - "mot" - ], - [ - "▁em", - "ot" - ], - [ - "ha", - "rm" - ], - [ - "har", - "m" - ], - [ - "h", - "arm" - ], - [ - "▁occasion", - "ally" - ], - [ - "▁hor", - "ror" - ], - [ - "▁ho", - "rror" - ], - [ - "ea", - "st" - ], - [ - "e", - "ast" - ], - [ - "▁pr", - "inter" - ], - [ - "▁print", - "er" - ], - [ - "▁prin", - "ter" - ], - [ - "ar", - "an" - ], - [ - "ara", - "n" - ], - [ - "a", - "ran" - ], - [ - "▁Miss", - "iss" - ], - [ - "fol", - "low" - ], - [ - "f", - "ollow" - ], - [ - "▁Bar", - "ry" - ], - [ - "▁investig", - "ate" - ], - [ - "go", - "w" - ], - [ - "g", - "ow" - ], - [ - "▁Amer", - "icans" - ], - [ - "▁American", - "s" - ], - [ - "▁America", - "ns" - ], - [ - "S", - "ince" - ], - [ - "▁від", - "о" - ], - [ - "▁ві", - "до" - ], - [ - "▁re", - "un" - ], - [ - "os", - "ci" - ], - [ - "osc", - "i" - ], - [ - "o", - "sci" - ], - [ - "▁Ch", - "apter" - ], - [ - "▁Chap", - "ter" - ], - [ - "▁b", - "ay" - ], - [ - "▁ba", - "y" - ], - [ - "▁", - "bay" - ], - [ - "ро", - "ме" - ], - [ - "ром", - "е" - ], - [ - "et", - "he" - ], - [ - "eth", - "e" - ], - [ - "e", - "the" - ], - [ - "éd", - "ie" - ], - [ - "é", - "die" - ], - [ - "com", - "ot" - ], - [ - "co", - "mot" - ], - [ - "como", - "t" - ], - [ - "▁miejs", - "cowo" - ], - [ - "▁stud", - "ierte" - ], - [ - "▁studi", - "erte" - ], - [ - "ou", - "vert" - ], - [ - "ouv", - "ert" - ], - [ - "ouve", - "rt" - ], - [ - "ouver", - "t" - ], - [ - "▁к", - "ур" - ], - [ - "▁ку", - "р" - ], - [ - "▁", - "кур" - ], - [ - "▁DE", - "SC" - ], - [ - "▁DES", - "C" - ], - [ - "▁touch", - "ed" - ], - [ - "▁tou", - "ched" - ], - [ - "▁Jer", - "ry" - ], - [ - "ue", - "se" - ], - [ - "ues", - "e" - ], - [ - "u", - "ese" - ], - [ - "ли", - "ще" - ], - [ - "auth", - "entication" - ], - [ - "authentic", - "ation" - ], - [ - "▁col", - "le" - ], - [ - "▁co", - "lle" - ], - [ - "▁coll", - "e" - ], - [ - "he", - "art" - ], - [ - "▁reg", - "iment" - ], - [ - "▁regime", - "nt" - ], - [ - "cri", - "bed" - ], - [ - "cribe", - "d" - ], - [ - "▁Бо", - "ль" - ], - [ - "▁про", - "ис" - ], - [ - "ce", - "ae" - ], - [ - "▁mass", - "es" - ], - [ - "▁sc", - "rolling" - ], - [ - "▁scroll", - "ing" - ], - [ - "us", - "to" - ], - [ - "ust", - "o" - ], - [ - "u", - "sto" - ], - [ - "S", - "W" - ], - [ - "ov", - "at" - ], - [ - "ova", - "t" - ], - [ - "o", - "vat" - ], - [ - "▁gr", - "âce" - ], - [ - "▁Архи", - "в" - ], - [ - "▁Се", - "вер" - ], - [ - "av", - "ait" - ], - [ - "ava", - "it" - ], - [ - "▁Marsh", - "all" - ], - [ - "▁Mars", - "hall" - ], - [ - "▁Hash", - "Map" - ], - [ - "▁", - "HashMap" - ], - [ - "ac", - "on" - ], - [ - "aco", - "n" - ], - [ - "a", - "con" - ], - [ - "ück", - "en" - ], - [ - "ücke", - "n" - ], - [ - "ü", - "cken" - ], - [ - "[]", - ")" - ], - [ - "[", - "])" - ], - [ - "▁ev", - "angel" - ], - [ - "et", - "zung" - ], - [ - "etz", - "ung" - ], - [ - "tt", - "emberg" - ], - [ - "st", - "ers" - ], - [ - "ste", - "rs" - ], - [ - "ster", - "s" - ], - [ - "s", - "ters" - ], - [ - "T", - "M" - ], - [ - "▁ли", - "тера" - ], - [ - "qu", - "ot" - ], - [ - "Pr", - "ed" - ], - [ - "Pre", - "d" - ], - [ - "P", - "red" - ], - [ - "▁w", - "erk" - ], - [ - "▁wer", - "k" - ], - [ - "▁", - "werk" - ], - [ - "▁ha", - "ber" - ], - [ - "▁hab", - "er" - ], - [ - "▁habe", - "r" - ], - [ - "la", - "va" - ], - [ - "lav", - "a" - ], - [ - "l", - "ava" - ], - [ - "vo", - "us" - ], - [ - "v", - "ous" - ], - [ - "▁L", - "ate" - ], - [ - "▁La", - "te" - ], - [ - "▁Lat", - "e" - ], - [ - "cy", - "cle" - ], - [ - "cyc", - "le" - ], - [ - "c", - "ycle" - ], - [ - "ти", - "рова" - ], - [ - "▁про", - "ду" - ], - [ - "▁прод", - "у" - ], - [ - "▁pop", - "ulations" - ], - [ - "▁population", - "s" - ], - [ - "▁popul", - "ations" - ], - [ - "▁Y", - "an" - ], - [ - "▁Ya", - "n" - ], - [ - "Pre", - "fix" - ], - [ - "P", - "refix" - ], - [ - "actér", - "istiques" - ], - [ - "+", - "'" - ], - [ - "()", - "`](" - ], - [ - "()`", - "](" - ], - [ - "▁Л", - "ь" - ], - [ - "фи", - "ль" - ], - [ - "▁жи", - "зни" - ], - [ - "ft", - "p" - ], - [ - "f", - "tp" - ], - [ - "▁все", - "х" - ], - [ - "▁g", - "dzie" - ], - [ - "▁v", - "idea" - ], - [ - "▁vid", - "ea" - ], - [ - "▁vide", - "a" - ], - [ - "oa", - "uth" - ], - [ - "o", - "auth" - ], - [ - "▁p", - "id" - ], - [ - "▁pi", - "d" - ], - [ - "▁", - "pid" - ], - [ - "ů", - "m" - ], - [ - "▁p", - "esso" - ], - [ - "▁pes", - "so" - ], - [ - "▁track", - "ing" - ], - [ - "▁trac", - "king" - ], - [ - "iz", - "in" - ], - [ - "izi", - "n" - ], - [ - "i", - "zin" - ], - [ - "▁Mor", - "ris" - ], - [ - "щи", - "й" - ], - [ - "▁Provin", - "z" - ], - [ - "▁M", - "itte" - ], - [ - "▁Mit", - "te" - ], - [ - "▁Mi", - "tte" - ], - [ - "▁Mitt", - "e" - ], - [ - "▁artific", - "ial" - ], - [ - "bráz", - "ky" - ], - [ - "▁до", - "сти" - ], - [ - "▁rest", - "ored" - ], - [ - "▁restore", - "d" - ], - [ - "▁resto", - "red" - ], - [ - "▁commun", - "icate" - ], - [ - "▁communic", - "ate" - ], - [ - "ag", - "it" - ], - [ - "agi", - "t" - ], - [ - "a", - "git" - ], - [ - "Rec", - "ogn" - ], - [ - "▁l", - "on" - ], - [ - "▁lo", - "n" - ], - [ - "▁", - "lon" - ], - [ - "▁за", - "ня" - ], - [ - "▁зан", - "я" - ], - [ - "▁Arg", - "ument" - ], - [ - "▁", - "Argument" - ], - [ - "fl", - "ush" - ], - [ - "flu", - "sh" - ], - [ - "ма", - "на" - ], - [ - "ман", - "а" - ], - [ - "м", - "ана" - ], - [ - "sec", - "onds" - ], - [ - "second", - "s" - ], - [ - "U", - "C" - ], - [ - "▁R", - "uth" - ], - [ - "▁Ru", - "th" - ], - [ - "▁t", - "ub" - ], - [ - "▁tu", - "b" - ], - [ - "▁B", - "ret" - ], - [ - "▁Br", - "et" - ], - [ - "▁Bre", - "t" - ], - [ - "▁P", - "ere" - ], - [ - "▁Per", - "e" - ], - [ - "▁Pe", - "re" - ], - [ - "▁respons", - "ibility" - ], - [ - "ńcz", - "y" - ], - [ - "ń", - "czy" - ], - [ - "▁environment", - "s" - ], - [ - "▁environ", - "ments" - ], - [ - "ke", - "e" - ], - [ - "k", - "ee" - ], - [ - "▁g", - "root" - ], - [ - "▁gr", - "oot" - ], - [ - "▁gro", - "ot" - ], - [ - "▁pain", - "ted" - ], - [ - "▁paint", - "ed" - ], - [ - "▁Éd", - "itions" - ], - [ - "cp", - "y" - ], - [ - "c", - "py" - ], - [ - "ár", - "t" - ], - [ - "á", - "rt" - ], - [ - "lich", - "keit" - ], - [ - "ar", - "da" - ], - [ - "ard", - "a" - ], - [ - "B", - "atch" - ], - [ - "▁Leop", - "old" - ], - [ - "re", - "ason" - ], - [ - "rea", - "son" - ], - [ - "reas", - "on" - ], - [ - "n", - "oreferrer" - ], - [ - "se", - "ns" - ], - [ - "sen", - "s" - ], - [ - "s", - "ens" - ], - [ - "▁ro", - "cks" - ], - [ - "▁rock", - "s" - ], - [ - "▁Hit", - "ler" - ], - [ - "ла", - "т" - ], - [ - "л", - "ат" - ], - [ - "▁qu", - "oted" - ], - [ - "▁quot", - "ed" - ], - [ - "▁quote", - "d" - ], - [ - "▁ко", - "лле" - ], - [ - "▁у", - "ров" - ], - [ - "ba", - "g" - ], - [ - "b", - "ag" - ], - [ - ".\"", - ")" - ], - [ - ".", - "\")" - ], - [ - "▁M", - "L" - ], - [ - "▁", - "ML" - ], - [ - "▁kom", - "t" - ], - [ - "▁ko", - "mt" - ], - [ - "▁[", - "_" - ], - [ - "▁", - "[_" - ], - [ - "▁spect", - "ral" - ], - [ - "ed", - "o" - ], - [ - "e", - "do" - ], - [ - "▁in", - "sieme" - ], - [ - "▁suffer", - "ing" - ], - [ - "▁suff", - "ering" - ], - [ - "sl", - "ider" - ], - [ - "slide", - "r" - ], - [ - "▁Kenn", - "edy" - ], - [ - "ol", - "ate" - ], - [ - "ola", - "te" - ], - [ - "o", - "late" - ], - [ - "▁P", - "atri" - ], - [ - "▁Pa", - "tri" - ], - [ - "▁Pat", - "ri" - ], - [ - "зи", - "и" - ], - [ - "O", - "H" - ], - [ - "▁те", - "а" - ], - [ - "▁пра", - "ва" - ], - [ - "▁прав", - "а" - ], - [ - "ма", - "х" - ], - [ - "re", - "write" - ], - [ - "rew", - "rite" - ], - [ - "r", - "ewrite" - ], - [ - "▁Eins", - "atz" - ], - [ - "ex", - "ternal" - ], - [ - "ext", - "ernal" - ], - [ - "hol", - "ds" - ], - [ - "hold", - "s" - ], - [ - "h", - "olds" - ], - [ - "▁P", - "laces" - ], - [ - "▁Pl", - "aces" - ], - [ - "▁Pla", - "ces" - ], - [ - "▁Place", - "s" - ], - [ - "at", - "ype" - ], - [ - "aty", - "pe" - ], - [ - "a", - "type" - ], - [ - "▁vul", - "ner" - ], - [ - "▁abandon", - "ed" - ], - [ - "Or", - "igin" - ], - [ - "Ori", - "gin" - ], - [ - "▁max", - "imal" - ], - [ - "▁maxim", - "al" - ], - [ - "AA", - "AA" - ], - [ - "▁Base", - "ball" - ], - [ - "▁C", - "lose" - ], - [ - "▁Cl", - "ose" - ], - [ - "▁Clo", - "se" - ], - [ - "▁", - "Close" - ], - [ - "▁pa", - "inter" - ], - [ - "▁pain", - "ter" - ], - [ - "▁paint", - "er" - ], - [ - "▁assign", - "ing" - ], - [ - "N", - "B" - ], - [ - "bl", - "ast" - ], - [ - "bla", - "st" - ], - [ - "b", - "last" - ], - [ - "▁K", - "ünstler" - ], - [ - ")]", - "(" - ], - [ - ")", - "](" - ], - [ - "fa", - "ch" - ], - [ - "fac", - "h" - ], - [ - "f", - "ach" - ], - [ - "▁Const", - "antin" - ], - [ - "▁Constant", - "in" - ], - [ - "ok", - "es" - ], - [ - "oke", - "s" - ], - [ - "o", - "kes" - ], - [ - "▁no", - "body" - ], - [ - "▁nob", - "ody" - ], - [ - "▁subt", - "ract" - ], - [ - "▁fos", - "se" - ], - [ - "▁foss", - "e" - ], - [ - "▁cert", - "ific" - ], - [ - "▁m", - "use" - ], - [ - "▁mus", - "e" - ], - [ - "▁mu", - "se" - ], - [ - "/)", - "," - ], - [ - "/", - ")," - ], - [ - "▁Pro", - "fil" - ], - [ - "▁Prof", - "il" - ], - [ - "▁pro", - "xim" - ], - [ - "▁Jer", - "usalem" - ], - [ - "▁simp", - "licity" - ], - [ - "▁simpl", - "icity" - ], - [ - "▁w", - "sz" - ], - [ - "▁ws", - "z" - ], - [ - "NUM", - "BER" - ], - [ - "utt", - "avia" - ], - [ - "U", - "ITableView" - ], - [ - "ich", - "ter" - ], - [ - "icht", - "er" - ], - [ - "ichte", - "r" - ], - [ - "i", - "chter" - ], - [ - "жа", - "н" - ], - [ - "ж", - "ан" - ], - [ - "▁L", - "av" - ], - [ - "▁La", - "v" - ], - [ - "it", - "chen" - ], - [ - "itch", - "en" - ], - [ - "▁Ч", - "ем" - ], - [ - "▁Че", - "м" - ], - [ - "T", - "u" - ], - [ - "▁ge", - "om" - ], - [ - "▁zv", - "uky" - ], - [ - "▁Sur", - "vey" - ], - [ - "AN", - "CE" - ], - [ - "▁enc", - "rypted" - ], - [ - "▁encrypt", - "ed" - ], - [ - "pr", - "of" - ], - [ - "pro", - "f" - ], - [ - "▁d", - "are" - ], - [ - "▁da", - "re" - ], - [ - "▁dar", - "e" - ], - [ - "▁L", - "oren" - ], - [ - "▁Lo", - "ren" - ], - [ - "▁Lor", - "en" - ], - [ - "т", - "в" - ], - [ - "▁А", - "лек" - ], - [ - "▁Ал", - "ек" - ], - [ - "▁comput", - "ers" - ], - [ - "▁computer", - "s" - ], - [ - "▁compute", - "rs" - ], - [ - "▁expect", - "ation" - ], - [ - "▁substant", - "ial" - ], - [ - "▁Д", - "ми" - ], - [ - "▁`", - "{" - ], - [ - "▁д", - "ра" - ], - [ - "▁др", - "а" - ], - [ - "▁", - "дра" - ], - [ - "ub", - "ble" - ], - [ - "▁per", - "forms" - ], - [ - "▁perform", - "s" - ], - [ - "▁Kr", - "ieg" - ], - [ - "▁Krie", - "g" - ], - [ - "▁in", - "coming" - ], - [ - "▁inc", - "oming" - ], - [ - "▁Class", - "ification" - ], - [ - "Web", - "View" - ], - [ - "▁epis", - "odes" - ], - [ - "▁episode", - "s" - ], - [ - "ap", - "per" - ], - [ - "app", - "er" - ], - [ - "appe", - "r" - ], - [ - "a", - "pper" - ], - [ - "äu", - "fig" - ], - [ - "▁gi", - "ov" - ], - [ - "▁De", - "part" - ], - [ - "▁Dep", - "art" - ], - [ - "бо", - "ра" - ], - [ - "бор", - "а" - ], - [ - "ed", - "ly" - ], - [ - "os", - "pod" - ], - [ - "osp", - "od" - ], - [ - "▁p", - "tr" - ], - [ - "▁pt", - "r" - ], - [ - "▁", - "ptr" - ], - [ - "▁d", - "átum" - ], - [ - "▁est", - "imation" - ], - [ - "▁estim", - "ation" - ], - [ - "ic", - "ole" - ], - [ - "ico", - "le" - ], - [ - "icol", - "e" - ], - [ - "i", - "cole" - ], - [ - "▁-", - "---" - ], - [ - "▁--", - "--" - ], - [ - "▁---", - "-" - ], - [ - "▁", - "----" - ], - [ - "▁prin", - "ces" - ], - [ - "▁prince", - "s" - ], - [ - "HE", - "AD" - ], - [ - "▁diff", - "usion" - ], - [ - "▁diffus", - "ion" - ], - [ - "▁d", - "rie" - ], - [ - "▁dr", - "ie" - ], - [ - "▁dri", - "e" - ], - [ - "▁A", - "da" - ], - [ - "▁Ad", - "a" - ], - [ - "ни", - "це" - ], - [ - "ниц", - "е" - ], - [ - "ng", - "inx" - ], - [ - "n", - "ginx" - ], - [ - "sh", - "al" - ], - [ - "sha", - "l" - ], - [ - "s", - "hal" - ], - [ - "▁febru", - "ari" - ], - [ - "▁T", - "at" - ], - [ - "▁Ta", - "t" - ], - [ - "lo", - "oking" - ], - [ - "look", - "ing" - ], - [ - "ku", - "nd" - ], - [ - "k", - "und" - ], - [ - "▁De", - "an" - ], - [ - "m", - "ongodb" - ], - [ - "вши", - "х" - ], - [ - "в", - "ших" - ], - [ - "▁A", - "ur" - ], - [ - "▁Au", - "r" - ], - [ - "▁Fl", - "ora" - ], - [ - "▁Flor", - "a" - ], - [ - "▁Flo", - "ra" - ], - [ - "▁Stud", - "ios" - ], - [ - "▁Studio", - "s" - ], - [ - "ци", - "је" - ], - [ - "ei", - "l" - ], - [ - "e", - "il" - ], - [ - "Inst", - "all" - ], - [ - "▁f", - "ranch" - ], - [ - "▁fr", - "anch" - ], - [ - "▁fran", - "ch" - ], - [ - "▁franc", - "h" - ], - [ - "▁H", - "MS" - ], - [ - "▁pract", - "ices" - ], - [ - "▁practice", - "s" - ], - [ - "le", - "j" - ], - [ - "l", - "ej" - ], - [ - "da", - "le" - ], - [ - "dal", - "e" - ], - [ - "d", - "ale" - ], - [ - "▁po", - "ste" - ], - [ - "▁pos", - "te" - ], - [ - "▁post", - "e" - ], - [ - "▁H", - "els" - ], - [ - "▁He", - "ls" - ], - [ - "▁Hel", - "s" - ], - [ - "▁reli", - "able" - ], - [ - "źdz", - "ier" - ], - [ - "▁ver", - "se" - ], - [ - "▁vers", - "e" - ], - [ - "▁", - "verse" - ], - [ - "er", - "meister" - ], - [ - "erme", - "ister" - ], - [ - "▁qu", - "it" - ], - [ - "▁qui", - "t" - ], - [ - "▁q", - "uit" - ], - [ - "▁", - "quit" - ], - [ - "ét", - "ico" - ], - [ - "il", - "is" - ], - [ - "ili", - "s" - ], - [ - "i", - "lis" - ], - [ - "ed", - "or" - ], - [ - "edo", - "r" - ], - [ - "e", - "dor" - ], - [ - "▁Cult", - "ural" - ], - [ - "▁Cultura", - "l" - ], - [ - "дж", - "е" - ], - [ - "д", - "же" - ], - [ - "▁li", - "ked" - ], - [ - "▁like", - "d" - ], - [ - "▁lik", - "ed" - ], - [ - "▁m", - "ongodb" - ], - [ - "▁mongo", - "db" - ], - [ - "▁", - "mongodb" - ], - [ - "▁Broad", - "way" - ], - [ - "▁I", - "R" - ], - [ - "▁", - "IR" - ], - [ - "es", - "zt" - ], - [ - "esz", - "t" - ], - [ - "ho", - "v" - ], - [ - "h", - "ov" - ], - [ - "▁m", - "íst" - ], - [ - "▁mí", - "st" - ], - [ - "re", - "iche" - ], - [ - "reich", - "e" - ], - [ - "rei", - "che" - ], - [ - "▁k", - "B" - ], - [ - "ст", - "ом" - ], - [ - "сто", - "м" - ], - [ - "с", - "том" - ], - [ - "▁SQL", - "ite" - ], - [ - "▁tor", - "neo" - ], - [ - "\\", - "." - ], - [ - "Or", - "d" - ], - [ - "O", - "rd" - ], - [ - "▁Admin", - "istration" - ], - [ - "▁Administr", - "ation" - ], - [ - "▁з", - "да" - ], - [ - "▁", - "зда" - ], - [ - "▁H", - "inter" - ], - [ - "▁Hin", - "ter" - ], - [ - "▁V", - "ia" - ], - [ - "▁Vi", - "a" - ], - [ - "Dec", - "imal" - ], - [ - "or", - "ious" - ], - [ - "ori", - "ous" - ], - [ - "orio", - "us" - ], - [ - "▁nécess", - "aire" - ], - [ - "w", - "x" - ], - [ - "▁t", - "ej" - ], - [ - "▁te", - "j" - ], - [ - "▁t", - "ema" - ], - [ - "▁te", - "ma" - ], - [ - "▁tem", - "a" - ], - [ - "O", - "brázky" - ], - [ - "ри", - "те" - ], - [ - "рит", - "е" - ], - [ - "▁build", - "s" - ], - [ - "▁l", - "aten" - ], - [ - "▁la", - "ten" - ], - [ - "▁lat", - "en" - ], - [ - "▁late", - "n" - ], - [ - "▁г", - "г" - ], - [ - "Vis", - "ibility" - ], - [ - "lä", - "u" - ], - [ - "l", - "äu" - ], - [ - "▁se", - "chs" - ], - [ - "▁sec", - "hs" - ], - [ - "▁лу", - "ч" - ], - [ - "ce", - "ra" - ], - [ - "cer", - "a" - ], - [ - "c", - "era" - ], - [ - "Co", - "uld" - ], - [ - "C", - "ould" - ], - [ - "▁tra", - "ject" - ], - [ - "}}", - "^{" - ], - [ - "}}^", - "{" - ], - [ - "}", - "}^{" - ], - [ - "▁Jap", - "on" - ], - [ - "▁Ja", - "pon" - ], - [ - "an", - "other" - ], - [ - "ano", - "ther" - ], - [ - "I", - "K" - ], - [ - "▁belong", - "ing" - ], - [ - "▁fac", - "ilities" - ], - [ - "▁facil", - "ities" - ], - [ - "▁D", - "aily" - ], - [ - "▁Da", - "ily" - ], - [ - "▁de", - "ce" - ], - [ - "▁dec", - "e" - ], - [ - "int", - "ro" - ], - [ - "▁слу", - "ча" - ], - [ - "Name", - "space" - ], - [ - "Names", - "pace" - ], - [ - "▁B", - "ak" - ], - [ - "▁Ba", - "k" - ], - [ - "loc", - "ale" - ], - [ - "local", - "e" - ], - [ - "U", - "G" - ], - [ - "=$", - "{" - ], - [ - "=", - "${" - ], - [ - "▁comp", - "añ" - ], - [ - "ją", - "c" - ], - [ - "j", - "ąc" - ], - [ - "▁ar", - "ithmetic" - ], - [ - "fo", - "rum" - ], - [ - "for", - "um" - ], - [ - "f", - "orum" - ], - [ - "▁por", - "ta" - ], - [ - "▁port", - "a" - ], - [ - "on", - "k" - ], - [ - "▁g", - "ender" - ], - [ - "▁ge", - "nder" - ], - [ - "▁gen", - "der" - ], - [ - "▁", - "gender" - ], - [ - "▁expect", - "s" - ], - [ - "б", - "ка" - ], - [ - "▁n", - "ak" - ], - [ - "▁na", - "k" - ], - [ - "▁", - "nak" - ], - [ - "▁G", - "race" - ], - [ - "▁Gr", - "ace" - ], - [ - "▁Gra", - "ce" - ], - [ - "▁st", - "ro" - ], - [ - "▁str", - "o" - ], - [ - "ivid", - "ual" - ], - [ - "▁C", - "OM" - ], - [ - "▁CO", - "M" - ], - [ - "▁", - "COM" - ], - [ - "▁F", - "arm" - ], - [ - "▁Fa", - "rm" - ], - [ - "▁Far", - "m" - ], - [ - "▁c", - "anton" - ], - [ - "▁can", - "ton" - ], - [ - "▁cant", - "on" - ], - [ - "то", - "му" - ], - [ - "том", - "у" - ], - [ - "т", - "ому" - ], - [ - "java", - "x" - ], - [ - "jav", - "ax" - ], - [ - "се", - "й" - ], - [ - "с", - "ей" - ], - [ - "▁brief", - "ly" - ], - [ - "Fa", - "ce" - ], - [ - "F", - "ace" - ], - [ - "rot", - "ate" - ], - [ - "const", - "ant" - ], - [ - "▁g", - "allery" - ], - [ - "▁gall", - "ery" - ], - [ - "ast", - "ro" - ], - [ - "astr", - "o" - ], - [ - "all", - "ery" - ], - [ - "alle", - "ry" - ], - [ - "aller", - "y" - ], - [ - "▁D", - "J" - ], - [ - "char", - "ge" - ], - [ - "charg", - "e" - ], - [ - "ходи", - "ть" - ], - [ - "ходит", - "ь" - ], - [ - "C", - "ent" - ], - [ - "\\\"", - "," - ], - [ - "\\", - "\"," - ], - [ - "▁d", - "onna" - ], - [ - "▁don", - "na" - ], - [ - "▁donn", - "a" - ], - [ - "ar", - "ca" - ], - [ - "arc", - "a" - ], - [ - "la", - "de" - ], - [ - "lad", - "e" - ], - [ - "l", - "ade" - ], - [ - "zi", - "n" - ], - [ - "z", - "in" - ], - [ - "▁N", - "ed" - ], - [ - "▁Ne", - "d" - ], - [ - "▁host", - "ing" - ], - [ - "▁hos", - "ting" - ], - [ - "id", - "or" - ], - [ - "ido", - "r" - ], - [ - "i", - "dor" - ], - [ - "it", - "ative" - ], - [ - "itat", - "ive" - ], - [ - "ig", - "s" - ], - [ - "i", - "gs" - ], - [ - "▁п", - "ря" - ], - [ - "▁пр", - "я" - ], - [ - "▁t", - "icket" - ], - [ - "▁tick", - "et" - ], - [ - "▁ti", - "cket" - ], - [ - "▁stud", - "ying" - ], - [ - "▁study", - "ing" - ], - [ - "▁des", - "igner" - ], - [ - "▁design", - "er" - ], - [ - "lap", - "sed" - ], - [ - "lapse", - "d" - ], - [ - "laps", - "ed" - ], - [ - "l", - "apsed" - ], - [ - "▁la", - "at" - ], - [ - "▁d", - "ix" - ], - [ - "▁di", - "x" - ], - [ - "▁integr", - "ated" - ], - [ - "▁integrate", - "d" - ], - [ - "▁integra", - "ted" - ], - [ - "▁in", - "formed" - ], - [ - "▁inform", - "ed" - ], - [ - "▁be", - "have" - ], - [ - "▁beh", - "ave" - ], - [ - "▁behav", - "e" - ], - [ - "▁la", - "bour" - ], - [ - "▁lab", - "our" - ], - [ - "est", - "ellt" - ], - [ - "cal", - "endar" - ], - [ - "▁k", - "illing" - ], - [ - "▁kil", - "ling" - ], - [ - "▁kill", - "ing" - ], - [ - "▁tw", - "itter" - ], - [ - "▁", - "twitter" - ], - [ - "ia", - "e" - ], - [ - "i", - "ae" - ], - [ - "▁histor", - "ique" - ], - [ - "DE", - "FAULT" - ], - [ - "ia", - "ła" - ], - [ - "iał", - "a" - ], - [ - "i", - "ała" - ], - [ - "▁theoret", - "ical" - ], - [ - "▁un", - "ders" - ], - [ - "▁und", - "ers" - ], - [ - "▁under", - "s" - ], - [ - "ля", - "ет" - ], - [ - "at", - "an" - ], - [ - "ata", - "n" - ], - [ - "a", - "tan" - ], - [ - "▁s", - "urname" - ], - [ - "▁sur", - "name" - ], - [ - "▁inter", - "cept" - ], - [ - "гла", - "сно" - ], - [ - "▁општи", - "ни" - ], - [ - "▁t", - "ired" - ], - [ - "▁tir", - "ed" - ], - [ - "▁ti", - "red" - ], - [ - "▁B", - "eth" - ], - [ - "▁Be", - "th" - ], - [ - "▁Bet", - "h" - ], - [ - "▁ад", - "министратив" - ], - [ - "L", - "i" - ], - [ - "▁Т", - "ур" - ], - [ - "▁Ту", - "р" - ], - [ - "▁Sc", - "anner" - ], - [ - "▁S", - "tern" - ], - [ - "▁St", - "ern" - ], - [ - "▁Ste", - "rn" - ], - [ - "▁Ster", - "n" - ], - [ - "▁вме", - "сте" - ], - [ - "▁report", - "ing" - ], - [ - "▁s", - "ull" - ], - [ - "▁su", - "ll" - ], - [ - "▁sul", - "l" - ], - [ - "ци", - "ей" - ], - [ - "ber", - "ts" - ], - [ - "bert", - "s" - ], - [ - "og", - "onal" - ], - [ - "ogo", - "nal" - ], - [ - "ő", - "k" - ], - [ - "▁i", - "psum" - ], - [ - "▁ip", - "sum" - ], - [ - "▁seu", - "lement" - ], - [ - "▁seul", - "ement" - ], - [ - "▁seule", - "ment" - ], - [ - "▁Se", - "iten" - ], - [ - "▁Seit", - "en" - ], - [ - "▁Seite", - "n" - ], - [ - "word", - "press" - ], - [ - "▁fe", - "aturing" - ], - [ - "ist", - "ischen" - ], - [ - "isti", - "schen" - ], - [ - "istische", - "n" - ], - [ - "ju", - "b" - ], - [ - "j", - "ub" - ], - [ - "▁é", - "tr" - ], - [ - "▁ét", - "r" - ], - [ - "▁", - "étr" - ], - [ - "▁t", - "ea" - ], - [ - "▁te", - "a" - ], - [ - "▁adapt", - "ed" - ], - [ - "▁sc", - "ales" - ], - [ - "▁scale", - "s" - ], - [ - "▁scal", - "es" - ], - [ - "▁n", - "an" - ], - [ - "▁na", - "n" - ], - [ - "▁", - "nan" - ], - [ - "get", - "Value" - ], - [ - "▁Bl", - "ues" - ], - [ - "▁Blue", - "s" - ], - [ - "ac", - "les" - ], - [ - "acle", - "s" - ], - [ - "a", - "cles" - ], - [ - "▁st", - "ati" - ], - [ - "▁stat", - "i" - ], - [ - "▁sta", - "ti" - ], - [ - "▁ent", - "itled" - ], - [ - "▁R", - "alph" - ], - [ - "gra", - "vity" - ], - [ - "▁entre", - "pr" - ], - [ - "któ", - "ber" - ], - [ - "li", - "mat" - ], - [ - "lim", - "at" - ], - [ - "l", - "imat" - ], - [ - "li", - "s" - ], - [ - "l", - "is" - ], - [ - "De", - "mo" - ], - [ - "D", - "emo" - ], - [ - "re", - "lation" - ], - [ - "rel", - "ation" - ], - [ - "▁n", - "ep" - ], - [ - "▁ne", - "p" - ], - [ - "pro", - "wad" - ], - [ - "it", - "is" - ], - [ - "iti", - "s" - ], - [ - "i", - "tis" - ], - [ - "▁p", - "up" - ], - [ - "▁pu", - "p" - ], - [ - "neh", - "mer" - ], - [ - "nehm", - "er" - ], - [ - "▁disapp", - "oint" - ], - [ - "▁et", - "was" - ], - [ - "▁etwa", - "s" - ], - [ - "an", - "non" - ], - [ - "ann", - "on" - ], - [ - "anno", - "n" - ], - [ - "▁appro", - "ved" - ], - [ - "▁cl", - "ever" - ], - [ - "▁cle", - "ver" - ], - [ - "Lo", - "ading" - ], - [ - "Load", - "ing" - ], - [ - "▁ver", - "z" - ], - [ - "▁ve", - "rz" - ], - [ - "res", - "se" - ], - [ - "ress", - "e" - ], - [ - "r", - "esse" - ], - [ - "▁insp", - "ir" - ], - [ - "▁sam", - "pling" - ], - [ - "▁B", - "ek" - ], - [ - "▁Be", - "k" - ], - [ - "})", - "$." - ], - [ - "})$", - "." - ], - [ - "}", - ")$." - ], - [ - "▁г", - "рома" - ], - [ - "▁spe", - "cie" - ], - [ - "▁spec", - "ie" - ], - [ - "▁re", - "pub" - ], - [ - "▁rep", - "ub" - ], - [ - "▁lo", - "ader" - ], - [ - "▁load", - "er" - ], - [ - "▁", - "loader" - ], - [ - "▁e", - "rf" - ], - [ - "▁er", - "f" - ], - [ - "▁should", - "er" - ], - [ - "ra", - "is" - ], - [ - "rai", - "s" - ], - [ - "r", - "ais" - ], - [ - "▁ма", - "те" - ], - [ - "▁мат", - "е" - ], - [ - "▁Mon", - "th" - ], - [ - "▁Mont", - "h" - ], - [ - "▁Mo", - "nth" - ], - [ - "▁", - "Month" - ], - [ - "Sc", - "ene" - ], - [ - "▁block", - "ing" - ], - [ - "▁o", - "cean" - ], - [ - "ge", - "ben" - ], - [ - "geb", - "en" - ], - [ - "g", - "eben" - ], - [ - "▁Kil", - "ometer" - ], - [ - "▁b", - "edeut" - ], - [ - "▁M", - "ix" - ], - [ - "▁Mi", - "x" - ], - [ - "fm", - "t" - ], - [ - "f", - "mt" - ], - [ - "▁Nor", - "weg" - ], - [ - "▁ID", - "s" - ], - [ - "par", - "allel" - ], - [ - "▁ant", - "icip" - ], - [ - "▁anti", - "cip" - ], - [ - "▁re", - "vis" - ], - [ - "▁rev", - "is" - ], - [ - "ха", - "н" - ], - [ - "х", - "ан" - ], - [ - "▁с", - "вет" - ], - [ - "▁све", - "т" - ], - [ - "CA", - "SE" - ], - [ - "C", - "ASE" - ], - [ - "▁f", - "ührt" - ], - [ - "▁führ", - "t" - ], - [ - "▁", - "führt" - ], - [ - "▁at", - "omic" - ], - [ - "▁atom", - "ic" - ], - [ - "▁", - "atomic" - ], - [ - "▁dark", - "ness" - ], - [ - "▁Fußball", - "spieler" - ], - [ - "▁Ж", - "и" - ], - [ - "quis", - "ition" - ], - [ - "▁S", - "ieg" - ], - [ - "▁Sie", - "g" - ], - [ - "▁Si", - "eg" - ], - [ - "C", - "irc" - ], - [ - "▁c", - "ientí" - ], - [ - "ne", - "lle" - ], - [ - "nel", - "le" - ], - [ - "nell", - "e" - ], - [ - "n", - "elle" - ], - [ - "SH", - "A" - ], - [ - "S", - "HA" - ], - [ - "▁u", - "rb" - ], - [ - "▁ur", - "b" - ], - [ - "▁", - "urb" - ], - [ - "▁k", - "si" - ], - [ - "leq", - "slant" - ], - [ - "▁ф", - "рон" - ], - [ - "▁de", - "fect" - ], - [ - "▁def", - "ect" - ], - [ - "▁defe", - "ct" - ], - [ - "▁r", - "á" - ], - [ - "▁", - "rá" - ], - [ - "▁strong", - "er" - ], - [ - "▁p", - "ł" - ], - [ - "▁commun", - "ities" - ], - [ - "ни", - "на" - ], - [ - "нин", - "а" - ], - [ - "en", - "as" - ], - [ - "ena", - "s" - ], - [ - "e", - "nas" - ], - [ - "ienne", - "nt" - ], - [ - "ienn", - "ent" - ], - [ - "▁safe", - "ly" - ], - [ - "▁saf", - "ely" - ], - [ - "▁т", - "я" - ], - [ - "▁", - "тя" - ], - [ - "▁ben", - "chmark" - ], - [ - "▁Bra", - "un" - ], - [ - "method", - "s" - ], - [ - "arg", - "ument" - ], - [ - "vo", - "s" - ], - [ - "v", - "os" - ], - [ - "ob", - "ox" - ], - [ - "o", - "box" - ], - [ - "ро", - "ви" - ], - [ - "ров", - "и" - ], - [ - "р", - "ови" - ], - [ - "▁recher", - "che" - ], - [ - "m", - "n" - ], - [ - "▁br", - "ings" - ], - [ - "▁bring", - "s" - ], - [ - "m", - "achine" - ], - [ - "CE", - "SS" - ], - [ - "CES", - "S" - ], - [ - "host", - "s" - ], - [ - "hos", - "ts" - ], - [ - "▁N", - "Y" - ], - [ - "Aut", - "ow" - ], - [ - "Auto", - "w" - ], - [ - "▁сов", - "ремен" - ], - [ - "▁G", - "ary" - ], - [ - "▁Gar", - "y" - ], - [ - "▁Ga", - "ry" - ], - [ - "▁s", - "ensor" - ], - [ - "▁sens", - "or" - ], - [ - "▁document", - "ed" - ], - [ - "▁pr", - "endre" - ], - [ - "▁prend", - "re" - ], - [ - "▁pe", - "er" - ], - [ - "en", - "ix" - ], - [ - "eni", - "x" - ], - [ - "ha", - "i" - ], - [ - "h", - "ai" - ], - [ - "ar", - "be" - ], - [ - "цен", - "т" - ], - [ - "ц", - "ент" - ], - [ - "_", - "(" - ], - [ - "▁U", - "RI" - ], - [ - "▁", - "URI" - ], - [ - "ев", - "а" - ], - [ - "е", - "ва" - ], - [ - "▁Re", - "gie" - ], - [ - "▁Reg", - "ie" - ], - [ - "▁Mon", - "ument" - ], - [ - "▁onder", - "werp" - ], - [ - "B", - "ag" - ], - [ - "ti", - "t" - ], - [ - "t", - "it" - ], - [ - "▁st", - "ir" - ], - [ - "▁n", - "erv" - ], - [ - "▁ne", - "rv" - ], - [ - "▁ner", - "v" - ], - [ - "стор", - "ія" - ], - [ - "▁s", - "ov" - ], - [ - "▁so", - "v" - ], - [ - "▁writ", - "ers" - ], - [ - "▁write", - "rs" - ], - [ - "▁writer", - "s" - ], - [ - "▁sort", - "s" - ], - [ - "▁sor", - "ts" - ], - [ - "ab", - "solute" - ], - [ - "▁difficult", - "ies" - ], - [ - "▁par", - "lament" - ], - [ - "▁parl", - "ament" - ], - [ - "▁IE", - "numerable" - ], - [ - "▁dis", - "sol" - ], - [ - "▁diss", - "ol" - ], - [ - "▁CH", - "ECK" - ], - [ - "ar", - "ina" - ], - [ - "ari", - "na" - ], - [ - "arin", - "a" - ], - [ - "in", - "burgh" - ], - [ - "D", - "M" - ], - [ - "▁e", - "ind" - ], - [ - "▁ein", - "d" - ], - [ - "▁bud", - "get" - ], - [ - "▁cert", - "ains" - ], - [ - "▁certain", - "s" - ], - [ - "▁för", - "sta" - ], - [ - "▁först", - "a" - ], - [ - "an", - "ja" - ], - [ - "a", - "nja" - ], - [ - "▁го", - "дов" - ], - [ - "▁год", - "ов" - ], - [ - "▁т", - "ек" - ], - [ - "▁те", - "к" - ], - [ - "▁", - "тек" - ], - [ - "▁D", - "uch" - ], - [ - "▁Du", - "ch" - ], - [ - "▁Duc", - "h" - ], - [ - "gu", - "i" - ], - [ - "g", - "ui" - ], - [ - "▁Te", - "ams" - ], - [ - "▁Team", - "s" - ], - [ - "▁мно", - "ги" - ], - [ - "Mar", - "ie" - ], - [ - "Ma", - "rie" - ], - [ - "M", - "arie" - ], - [ - "In", - "tegr" - ], - [ - "Int", - "egr" - ], - [ - "Thread", - "Pool" - ], - [ - "ru", - "st" - ], - [ - "rus", - "t" - ], - [ - "r", - "ust" - ], - [ - "í", - "k" - ], - [ - "%", - "\"" - ], - [ - "en", - "f" - ], - [ - "sp", - "l" - ], - [ - "s", - "pl" - ], - [ - "▁be", - "gun" - ], - [ - "▁beg", - "un" - ], - [ - "lo", - "u" - ], - [ - "l", - "ou" - ], - [ - "▁Rewrite", - "Rule" - ], - [ - "tu", - "ple" - ], - [ - "ane", - "ous" - ], - [ - "▁mar", - "ine" - ], - [ - "▁mari", - "ne" - ], - [ - "▁", - "marine" - ], - [ - "at", - "tan" - ], - [ - "att", - "an" - ], - [ - "atta", - "n" - ], - [ - "ik", - "al" - ], - [ - "ika", - "l" - ], - [ - "i", - "kal" - ], - [ - "▁gradu", - "ated" - ], - [ - "il", - "lé" - ], - [ - "ill", - "é" - ], - [ - "▁про", - "ве" - ], - [ - "▁пров", - "е" - ], - [ - "▁пр", - "ове" - ], - [ - "▁Р", - "оз" - ], - [ - "▁Ро", - "з" - ], - [ - "',", - "\r" - ], - [ - "'", - ",\r" - ], - [ - "▁Pf", - "arr" - ], - [ - "▁n", - "ivel" - ], - [ - "▁ni", - "vel" - ], - [ - "▁пра", - "цю" - ], - [ - "mus", - "ic" - ], - [ - "▁set", - "Timeout" - ], - [ - "ER", - "S" - ], - [ - "E", - "RS" - ], - [ - "▁E", - "rik" - ], - [ - "▁Er", - "ik" - ], - [ - "pi", - "t" - ], - [ - "p", - "it" - ], - [ - "▁Х", - "ро" - ], - [ - "▁p", - "ił" - ], - [ - "▁pi", - "ł" - ], - [ - "▁p", - "eri" - ], - [ - "▁per", - "i" - ], - [ - "▁pe", - "ri" - ], - [ - "до", - "к" - ], - [ - "д", - "ок" - ], - [ - "us", - "zt" - ], - [ - "usz", - "t" - ], - [ - "▁B", - "ear" - ], - [ - "▁Be", - "ar" - ], - [ - "Class", - "Name" - ], - [ - "▁Par", - "lament" - ], - [ - "▁a", - "ix" - ], - [ - "▁ai", - "x" - ], - [ - "▁inv", - "ited" - ], - [ - "▁P", - "ATH" - ], - [ - "▁PA", - "TH" - ], - [ - "▁", - "PATH" - ], - [ - "xt", - "er" - ], - [ - "x", - "ter" - ], - [ - "▁R", - "ace" - ], - [ - "▁Ra", - "ce" - ], - [ - "▁h", - "echo" - ], - [ - "▁he", - "cho" - ], - [ - "▁T", - "ower" - ], - [ - "▁To", - "wer" - ], - [ - "▁Tow", - "er" - ], - [ - "▁u", - "tf" - ], - [ - "▁ut", - "f" - ], - [ - "▁", - "utf" - ], - [ - "act", - "ly" - ], - [ - "▁бу", - "де" - ], - [ - "▁ang", - "les" - ], - [ - "▁angle", - "s" - ], - [ - "▁", - "angles" - ], - [ - "ня", - "я" - ], - [ - "ouv", - "elles" - ], - [ - "ouve", - "lles" - ], - [ - "ouvel", - "les" - ], - [ - "ouvelle", - "s" - ], - [ - "▁cl", - "imate" - ], - [ - "▁cli", - "mate" - ], - [ - "▁clim", - "ate" - ], - [ - "▁sing", - "ing" - ], - [ - "▁sin", - "ging" - ], - [ - "▁navig", - "ate" - ], - [ - ">'", - ";" - ], - [ - ">", - "';" - ], - [ - "ad", - "ows" - ], - [ - "ado", - "ws" - ], - [ - "adow", - "s" - ], - [ - "▁l", - "eta" - ], - [ - "▁le", - "ta" - ], - [ - "▁let", - "a" - ], - [ - "▁S", - "itz" - ], - [ - "▁Si", - "tz" - ], - [ - "▁Sit", - "z" - ], - [ - "▁part", - "itions" - ], - [ - "▁partition", - "s" - ], - [ - "▁d", - "ock" - ], - [ - "▁do", - "ck" - ], - [ - "▁doc", - "k" - ], - [ - "▁ż", - "y" - ], - [ - "▁", - "ży" - ], - [ - "▁alloc", - "ate" - ], - [ - "▁benef", - "its" - ], - [ - "▁benefit", - "s" - ], - [ - "▁n", - "ieder" - ], - [ - "▁nie", - "der" - ], - [ - "▁ni", - "eder" - ], - [ - "xp", - "ath" - ], - [ - "x", - "path" - ], - [ - "me", - "ck" - ], - [ - "äl", - "le" - ], - [ - "äll", - "e" - ], - [ - "ä", - "lle" - ], - [ - "▁cou", - "pling" - ], - [ - "▁coup", - "ling" - ], - [ - "жи", - "л" - ], - [ - "ж", - "ил" - ], - [ - "For", - "Key" - ], - [ - "ar", - "gent" - ], - [ - "arg", - "ent" - ], - [ - "cl", - "ou" - ], - [ - "clo", - "u" - ], - [ - "c", - "lou" - ], - [ - "▁instru", - "ments" - ], - [ - "▁instrument", - "s" - ], - [ - "▁ent", - "hus" - ], - [ - "▁m", - "ég" - ], - [ - "▁mé", - "g" - ], - [ - "▁Па", - "в" - ], - [ - "▁R", - "ach" - ], - [ - "▁Ra", - "ch" - ], - [ - "--", - "---" - ], - [ - "----", - "-" - ], - [ - "---", - "--" - ], - [ - "-", - "----" - ], - [ - "▁API", - "s" - ], - [ - "▁AP", - "Is" - ], - [ - "▁V", - "ier" - ], - [ - "▁Vi", - "er" - ], - [ - "▁Vie", - "r" - ], - [ - "C", - "md" - ], - [ - "it", - "ore" - ], - [ - "ito", - "re" - ], - [ - "itor", - "e" - ], - [ - "▁C", - "uba" - ], - [ - "▁Cu", - "ba" - ], - [ - "▁Cub", - "a" - ], - [ - "▁dátum", - "mal" - ], - [ - "▁embed", - "ding" - ], - [ - "std", - "io" - ], - [ - "▁Gil", - "bert" - ], - [ - "▁ge", - "prüft" - ], - [ - "▁st", - "ating" - ], - [ - "▁stat", - "ing" - ], - [ - "▁sta", - "ting" - ], - [ - "▁stati", - "ng" - ], - [ - "▁trigger", - "s" - ], - [ - "▁trig", - "gers" - ], - [ - "+", - "=" - ], - [ - "▁spé", - "cial" - ], - [ - "▁del", - "iber" - ], - [ - "▁deli", - "ber" - ], - [ - "ми", - "н" - ], - [ - "м", - "ин" - ], - [ - "Pro", - "du" - ], - [ - "Pr", - "odu" - ], - [ - "P", - "rodu" - ], - [ - "▁St", - "ati" - ], - [ - "▁Stat", - "i" - ], - [ - "▁Sta", - "ti" - ], - [ - "▁z", - "us" - ], - [ - "▁zu", - "s" - ], - [ - "kt", - "ionen" - ], - [ - "ktion", - "en" - ], - [ - "Dispatch", - "er" - ], - [ - "id", - "al" - ], - [ - "ida", - "l" - ], - [ - "i", - "dal" - ], - [ - "▁L", - "P" - ], - [ - "▁", - "LP" - ], - [ - "op", - "tera" - ], - [ - "opt", - "era" - ], - [ - "opter", - "a" - ], - [ - "▁e", - "star" - ], - [ - "▁est", - "ar" - ], - [ - "▁es", - "tar" - ], - [ - "▁esta", - "r" - ], - [ - "▁зна", - "чи" - ], - [ - "с", - "мо" - ], - [ - "ous", - "es" - ], - [ - "ouse", - "s" - ], - [ - "o", - "uses" - ], - [ - "eng", - "ono" - ], - [ - "engo", - "no" - ], - [ - "▁W", - "PF" - ], - [ - "pub", - "lish" - ], - [ - "▁t", - "eor" - ], - [ - "▁te", - "or" - ], - [ - "el", - "if" - ], - [ - "eli", - "f" - ], - [ - "▁e", - "rg" - ], - [ - "▁er", - "g" - ], - [ - "▁", - "erg" - ], - [ - "▁separ", - "ation" - ], - [ - "Pa", - "n" - ], - [ - "P", - "an" - ], - [ - "▁Or", - "chestra" - ], - [ - "Pe", - "ter" - ], - [ - "P", - "eter" - ], - [ - "bound", - "s" - ], - [ - "b", - "ounds" - ], - [ - "▁Shakespe", - "are" - ], - [ - "▁cant", - "ante" - ], - [ - "▁d", - "emi" - ], - [ - "▁de", - "mi" - ], - [ - "▁dem", - "i" - ], - [ - "▁Pop", - "ular" - ], - [ - "ф", - "р" - ], - [ - "ar", - "ring" - ], - [ - "arr", - "ing" - ], - [ - "ци", - "н" - ], - [ - "ц", - "ин" - ], - [ - "▁И", - "с" - ], - [ - "vo", - "n" - ], - [ - "v", - "on" - ], - [ - "▁subst", - "itution" - ], - [ - "▁lí", - "nea" - ], - [ - "\\}$", - "." - ], - [ - "\\}", - "$." - ], - [ - "\\", - "}$." - ], - [ - "com", - "o" - ], - [ - "co", - "mo" - ], - [ - "c", - "omo" - ], - [ - "▁ва", - "ж" - ], - [ - "wa", - "gen" - ], - [ - "w", - "agen" - ], - [ - "▁rare", - "ly" - ], - [ - "▁period", - "s" - ], - [ - "▁peri", - "ods" - ], - [ - "gl", - "ob" - ], - [ - "g", - "lob" - ], - [ - "▁F", - "rid" - ], - [ - "▁Fr", - "id" - ], - [ - "▁Fri", - "d" - ], - [ - "▁T", - "err" - ], - [ - "▁Te", - "rr" - ], - [ - "▁Ter", - "r" - ], - [ - "▁Re", - "lease" - ], - [ - "▁", - "Release" - ], - [ - "Brain", - "z" - ], - [ - "▁гра", - "ф" - ], - [ - "▁", - "граф" - ], - [ - "DI", - "S" - ], - [ - "D", - "IS" - ], - [ - "compat", - "ible" - ], - [ - "▁po", - "č" - ], - [ - "LI", - "N" - ], - [ - "L", - "IN" - ], - [ - "▁K", - "ällor" - ], - [ - "▁A", - "rizona" - ], - [ - "pp", - "y" - ], - [ - "p", - "py" - ], - [ - "Se", - "q" - ], - [ - "S", - "eq" - ], - [ - "▁A", - "in" - ], - [ - "▁T", - "ourn" - ], - [ - "▁To", - "urn" - ], - [ - "▁Tour", - "n" - ], - [ - "br", - "ow" - ], - [ - "bro", - "w" - ], - [ - "b", - "row" - ], - [ - "▁K", - "ör" - ], - [ - "▁Kö", - "r" - ], - [ - "▁a", - "sh" - ], - [ - "▁as", - "h" - ], - [ - "▁", - "ash" - ], - [ - "ogene", - "ous" - ], - [ - "▁dia", - "lect" - ], - [ - "▁насе", - "ља" - ], - [ - "mysql", - "i" - ], - [ - "mysq", - "li" - ], - [ - "цо", - "в" - ], - [ - "ц", - "ов" - ], - [ - "▁f", - "lor" - ], - [ - "▁fl", - "or" - ], - [ - "▁flo", - "r" - ], - [ - "▁ф", - "ло" - ], - [ - "IA", - "B" - ], - [ - "I", - "AB" - ], - [ - "▁With", - "in" - ], - [ - "▁Wit", - "hin" - ], - [ - "^", - "(" - ], - [ - "▁b", - "ois" - ], - [ - "▁bo", - "is" - ], - [ - "▁t", - "ank" - ], - [ - "▁tan", - "k" - ], - [ - "▁aff", - "ili" - ], - [ - "▁h", - "ijo" - ], - [ - "▁hij", - "o" - ], - [ - "▁hi", - "jo" - ], - [ - "▁K", - "ate" - ], - [ - "▁Kat", - "e" - ], - [ - "▁Ka", - "te" - ], - [ - "▁Ver", - "l" - ], - [ - "▁Ve", - "rl" - ], - [ - "▁M", - "iami" - ], - [ - "▁Mi", - "ami" - ], - [ - "▁type", - "script" - ], - [ - "▁types", - "cript" - ], - [ - "њ", - "у" - ], - [ - "▁V", - "ern" - ], - [ - "▁Ver", - "n" - ], - [ - "▁Ve", - "rn" - ], - [ - "▁ви", - "со" - ], - [ - "ie", - "mann" - ], - [ - "iem", - "ann" - ], - [ - "i", - "emann" - ], - [ - "▁co", - "verage" - ], - [ - "▁cover", - "age" - ], - [ - "br", - "ie" - ], - [ - "b", - "rie" - ], - [ - "▁Start", - "ing" - ], - [ - "▁Star", - "ting" - ], - [ - "num", - "py" - ], - [ - "▁J", - "enkins" - ], - [ - "▁Jen", - "kins" - ], - [ - "▁k", - "ét" - ], - [ - "▁ké", - "t" - ], - [ - "▁g", - "rup" - ], - [ - "▁gr", - "up" - ], - [ - "▁gru", - "p" - ], - [ - "▁S", - "cient" - ], - [ - "▁Sc", - "ient" - ], - [ - "▁Sci", - "ent" - ], - [ - "▁inter", - "rupt" - ], - [ - "▁b", - "lob" - ], - [ - "▁bl", - "ob" - ], - [ - "▁blo", - "b" - ], - [ - "▁", - "blob" - ], - [ - "ug", - "el" - ], - [ - "uge", - "l" - ], - [ - "u", - "gel" - ], - [ - "▁Or", - "th" - ], - [ - "▁Ort", - "h" - ], - [ - "ab", - "ama" - ], - [ - "aba", - "ma" - ], - [ - "▁B", - "apt" - ], - [ - "▁Ba", - "pt" - ], - [ - "ow", - "nik" - ], - [ - "own", - "ik" - ], - [ - "▁бы", - "ть" - ], - [ - "▁Jul", - "ius" - ], - [ - "▁Ju", - "lius" - ], - [ - "▁Juli", - "us" - ], - [ - "▁П", - "рез" - ], - [ - "▁Пре", - "з" - ], - [ - "▁subst", - "itute" - ], - [ - "support", - "ed" - ], - [ - "supp", - "orted" - ], - [ - "ch", - "y" - ], - [ - "c", - "hy" - ], - [ - "egy", - "zetek" - ], - [ - "▁Per", - "formance" - ], - [ - "▁Perform", - "ance" - ], - [ - "less", - "ly" - ], - [ - "Con", - "structor" - ], - [ - "▁ext", - "ending" - ], - [ - "▁extend", - "ing" - ], - [ - "▁Mus", - "lim" - ], - [ - "Over", - "flow" - ], - [ - "▁J", - "enn" - ], - [ - "▁Je", - "nn" - ], - [ - "▁Jen", - "n" - ], - [ - "▁produ", - "z" - ], - [ - "▁prod", - "uz" - ], - [ - "мі", - "ї" - ], - [ - "м", - "ії" - ], - [ - "▁país", - "es" - ], - [ - "▁e", - "ux" - ], - [ - "▁eu", - "x" - ], - [ - "▁f", - "ate" - ], - [ - "▁fa", - "te" - ], - [ - "▁fat", - "e" - ], - [ - "ol", - "oge" - ], - [ - "olog", - "e" - ], - [ - "olo", - "ge" - ], - [ - "у", - "к" - ], - [ - "▁wo", - "bei" - ], - [ - "▁wob", - "ei" - ], - [ - "▁S", - "achsen" - ], - [ - "▁Sach", - "sen" - ], - [ - "▁са", - "йт" - ], - [ - "▁сай", - "т" - ], - [ - "Mod", - "els" - ], - [ - "Model", - "s" - ], - [ - "Mode", - "ls" - ], - [ - "▁F", - "ast" - ], - [ - "▁Fa", - "st" - ], - [ - "bes", - "ondere" - ], - [ - "▁F", - "R" - ], - [ - "▁", - "FR" - ], - [ - "▁a", - "con" - ], - [ - "▁ac", - "on" - ], - [ - "▁", - "acon" - ], - [ - "▁Den", - "kmal" - ], - [ - "▁an", - "ch" - ], - [ - "▁anc", - "h" - ], - [ - "▁", - "anch" - ], - [ - "▁públic", - "o" - ], - [ - "▁T", - "as" - ], - [ - "▁Ta", - "s" - ], - [ - "▁c", - "and" - ], - [ - "▁can", - "d" - ], - [ - "▁ca", - "nd" - ], - [ - "▁pa", - "ździer" - ], - [ - "▁М", - "он" - ], - [ - "▁Мо", - "н" - ], - [ - "▁vers", - "us" - ], - [ - "ru", - "t" - ], - [ - "r", - "ut" - ], - [ - "G", - "T" - ], - [ - "▁insert", - "ing" - ], - [ - "▁inser", - "ting" - ], - [ - "▁can", - "ad" - ], - [ - "▁ca", - "nad" - ], - [ - "є", - "м" - ], - [ - "▁M", - "etro" - ], - [ - "▁Met", - "ro" - ], - [ - "▁Herz", - "og" - ], - [ - "Ign", - "ore" - ], - [ - "▁decre", - "ase" - ], - [ - "▁п", - "ун" - ], - [ - "▁пу", - "н" - ], - [ - "▁F", - "ischer" - ], - [ - "▁M", - "all" - ], - [ - "▁Ma", - "ll" - ], - [ - "▁Mal", - "l" - ], - [ - "▁n", - "örd" - ], - [ - "io", - "stream" - ], - [ - "i", - "ostream" - ], - [ - "▁Lux", - "emb" - ], - [ - "pay", - "load" - ], - [ - "▁Ze", - "itung" - ], - [ - "▁Zeit", - "ung" - ], - [ - "▁mod", - "ifying" - ], - [ - "▁modify", - "ing" - ], - [ - "▁C", - "her" - ], - [ - "▁Ch", - "er" - ], - [ - "▁Che", - "r" - ], - [ - "▁Lu", - "ci" - ], - [ - "▁Luc", - "i" - ], - [ - "n", - "x" - ], - [ - "▁lo", - "ose" - ], - [ - "▁top", - "ics" - ], - [ - "▁topic", - "s" - ], - [ - "▁var", - "ied" - ], - [ - "▁vari", - "ed" - ], - [ - "▁va", - "ried" - ], - [ - "▁p", - "g" - ], - [ - "▁", - "pg" - ], - [ - "aj", - "es" - ], - [ - "aje", - "s" - ], - [ - "a", - "jes" - ], - [ - "um", - "m" - ], - [ - "u", - "mm" - ], - [ - "View", - "s" - ], - [ - "▁B", - "eau" - ], - [ - "▁Be", - "au" - ], - [ - "MA", - "P" - ], - [ - "M", - "AP" - ], - [ - "ip", - "eline" - ], - [ - "ipe", - "line" - ], - [ - "▁Inter", - "est" - ], - [ - "ar", - "ith" - ], - [ - "ari", - "th" - ], - [ - "▁seg", - "ún" - ], - [ - "▁Geme", - "ins" - ], - [ - "▁Att", - "ribute" - ], - [ - "▁", - "Attribute" - ], - [ - "comm", - "unity" - ], - [ - "▁цент", - "р" - ], - [ - "▁kil", - "ometer" - ], - [ - "▁kilomet", - "er" - ], - [ - "▁kilom", - "eter" - ], - [ - "▁é", - "conom" - ], - [ - "▁éc", - "onom" - ], - [ - "lar", - "ation" - ], - [ - "▁к", - "ъ" - ], - [ - "▁car", - "riage" - ], - [ - "▁carri", - "age" - ], - [ - "▁L", - "ane" - ], - [ - "▁La", - "ne" - ], - [ - "▁Lan", - "e" - ], - [ - "▁не", - "об" - ], - [ - "ku", - "r" - ], - [ - "k", - "ur" - ], - [ - "▁A", - "F" - ], - [ - "▁", - "AF" - ], - [ - "IN", - "TER" - ], - [ - "INT", - "ER" - ], - [ - "))", - "$" - ], - [ - ")", - ")$" - ], - [ - "▁be", - "ide" - ], - [ - "▁bei", - "de" - ], - [ - "dest", - "ination" - ], - [ - "▁font", - "s" - ], - [ - "▁fon", - "ts" - ], - [ - "▁", - "fonts" - ], - [ - "append", - "Child" - ], - [ - "▁M", - "AR" - ], - [ - "▁MA", - "R" - ], - [ - "▁g", - "ay" - ], - [ - "▁ga", - "y" - ], - [ - "mi", - "l" - ], - [ - "m", - "il" - ], - [ - "le", - "sh" - ], - [ - "les", - "h" - ], - [ - "l", - "esh" - ], - [ - "è", - "t" - ], - [ - "▁W", - "ang" - ], - [ - "▁Wa", - "ng" - ], - [ - "▁Y", - "ears" - ], - [ - "▁Year", - "s" - ], - [ - "▁Ye", - "ars" - ], - [ - "▁S", - "ymbol" - ], - [ - "▁Sym", - "bol" - ], - [ - "▁", - "Symbol" - ], - [ - "Li", - "ve" - ], - [ - "L", - "ive" - ], - [ - "qu", - "ency" - ], - [ - "▁U", - "sers" - ], - [ - "▁Use", - "rs" - ], - [ - "▁User", - "s" - ], - [ - "▁Us", - "ers" - ], - [ - "▁", - "Users" - ], - [ - "▁Un", - "icode" - ], - [ - "▁S", - "au" - ], - [ - "▁Sa", - "u" - ], - [ - "▁t", - "ons" - ], - [ - "▁to", - "ns" - ], - [ - "▁ton", - "s" - ], - [ - "▁", - "tons" - ], - [ - "▁Н", - "і" - ], - [ - "▁кра", - "ї" - ], - [ - "▁", - "краї" - ], - [ - "AX", - "I" - ], - [ - "▁P", - "ick" - ], - [ - "▁Pi", - "ck" - ], - [ - "▁Pic", - "k" - ], - [ - "A", - "I" - ], - [ - "▁h", - "ath" - ], - [ - "▁ha", - "th" - ], - [ - "▁hat", - "h" - ], - [ - "▁a", - "inda" - ], - [ - "▁ain", - "da" - ], - [ - "▁p", - "apa" - ], - [ - "▁pa", - "pa" - ], - [ - "▁pap", - "a" - ], - [ - "▁C", - "enso" - ], - [ - "▁B", - "ald" - ], - [ - "▁Ba", - "ld" - ], - [ - "▁Bal", - "d" - ], - [ - "▁Насе", - "ље" - ], - [ - "▁sim", - "ulations" - ], - [ - "▁simulation", - "s" - ], - [ - "▁j", - "aren" - ], - [ - "▁ja", - "ren" - ], - [ - "▁jar", - "en" - ], - [ - "▁inher", - "ited" - ], - [ - "▁inherit", - "ed" - ], - [ - "▁то", - "й" - ], - [ - "▁", - "той" - ], - [ - "▁fe", - "els" - ], - [ - "▁feel", - "s" - ], - [ - "▁fee", - "ls" - ], - [ - "ress", - "ion" - ], - [ - "r", - "ession" - ], - [ - "▁o", - "któber" - ], - [ - "bi", - "d" - ], - [ - "b", - "id" - ], - [ - "ás", - "i" - ], - [ - "á", - "si" - ], - [ - "▁m", - "uss" - ], - [ - "▁mus", - "s" - ], - [ - "▁mu", - "ss" - ], - [ - "vent", - "ory" - ], - [ - "▁me", - "ist" - ], - [ - "▁b", - "ore" - ], - [ - "▁bo", - "re" - ], - [ - "▁bor", - "e" - ], - [ - "▁sl", - "ider" - ], - [ - "▁slide", - "r" - ], - [ - "▁sli", - "der" - ], - [ - "▁", - "slider" - ], - [ - "де", - "ли" - ], - [ - "\\", - ";" - ], - [ - "▁extra", - "cted" - ], - [ - "▁extract", - "ed" - ], - [ - "ку", - "р" - ], - [ - "к", - "ур" - ], - [ - "Ed", - "ge" - ], - [ - "▁per", - "f" - ], - [ - "▁pe", - "rf" - ], - [ - "▁Brig", - "ade" - ], - [ - "▁гра", - "д" - ], - [ - "▁", - "град" - ], - [ - "ie", - "nie" - ], - [ - "ien", - "ie" - ], - [ - "i", - "enie" - ], - [ - "▁N", - "orden" - ], - [ - "▁Nor", - "den" - ], - [ - "▁Nord", - "en" - ], - [ - "▁c", - "ancer" - ], - [ - "▁can", - "cer" - ], - [ - "\"", - "/" - ], - [ - "C", - "ur" - ], - [ - "▁С", - "ере" - ], - [ - "▁Се", - "ре" - ], - [ - "▁Сер", - "е" - ], - [ - "▁liqu", - "id" - ], - [ - "str", - "ucture" - ], - [ - "struct", - "ure" - ], - [ - "▁cho", - "osing" - ], - [ - "▁Per", - "l" - ], - [ - "▁Pe", - "rl" - ], - [ - "Si", - "de" - ], - [ - "S", - "ide" - ], - [ - "ü", - "s" - ], - [ - "ри", - "тор" - ], - [ - "рито", - "р" - ], - [ - "рит", - "ор" - ], - [ - "▁k", - "ost" - ], - [ - "▁ko", - "st" - ], - [ - "▁pa", - "ckets" - ], - [ - "▁pack", - "ets" - ], - [ - "▁packet", - "s" - ], - [ - "▁кото", - "рого" - ], - [ - "▁Com", - "un" - ], - [ - "▁Co", - "mun" - ], - [ - "▁f", - "ingers" - ], - [ - "▁fin", - "gers" - ], - [ - "▁finger", - "s" - ], - [ - "ográ", - "fica" - ], - [ - ">", - ":" - ], - [ - "▁champion", - "nat" - ], - [ - "▁bl", - "ieb" - ], - [ - "▁S", - "itu" - ], - [ - "▁Si", - "tu" - ], - [ - "▁Sit", - "u" - ], - [ - "▁su", - "ic" - ], - [ - "an", - "dis" - ], - [ - "and", - "is" - ], - [ - "Fr", - "e" - ], - [ - "F", - "re" - ], - [ - "▁C", - "onc" - ], - [ - "▁Con", - "c" - ], - [ - "▁Co", - "nc" - ], - [ - "▁re", - "public" - ], - [ - "▁rep", - "ublic" - ], - [ - "▁repub", - "lic" - ], - [ - "▁ar", - "med" - ], - [ - "▁arm", - "ed" - ], - [ - "▁h", - "ell" - ], - [ - "▁he", - "ll" - ], - [ - "▁hel", - "l" - ], - [ - "▁", - "hell" - ], - [ - "▁h", - "ög" - ], - [ - "▁hö", - "g" - ], - [ - "rag", - "ma" - ], - [ - "▁en", - "se" - ], - [ - "▁ens", - "e" - ], - [ - "▁", - "ense" - ], - [ - "▁ac", - "res" - ], - [ - "▁В", - "ід" - ], - [ - "▁Ві", - "д" - ], - [ - "▁Re", - "form" - ], - [ - "▁Ref", - "orm" - ], - [ - "Main", - "Activity" - ], - [ - "ke", - "eper" - ], - [ - "keep", - "er" - ], - [ - "kee", - "per" - ], - [ - "er", - "b" - ], - [ - "e", - "rb" - ], - [ - "▁mon", - "aster" - ], - [ - "sub", - "subsection" - ], - [ - "▁Ди", - "в" - ], - [ - "▁cre", - "ature" - ], - [ - "▁indic", - "ating" - ], - [ - "▁url", - "s" - ], - [ - "▁ur", - "ls" - ], - [ - "▁", - "urls" - ], - [ - "▁k", - "ein" - ], - [ - "▁ke", - "in" - ], - [ - "об", - "раз" - ], - [ - "обра", - "з" - ], - [ - "pi", - "ck" - ], - [ - "pic", - "k" - ], - [ - "p", - "ick" - ], - [ - "▁Ad", - "mir" - ], - [ - "▁old", - "est" - ], - [ - "▁ol", - "dest" - ], - [ - "▁m", - "uz" - ], - [ - "▁mu", - "z" - ], - [ - "▁contra", - "diction" - ], - [ - "▁contrad", - "iction" - ], - [ - "▁contradict", - "ion" - ], - [ - "▁prob", - "abil" - ], - [ - "illi", - "ant" - ], - [ - "▁p", - "av" - ], - [ - "▁pa", - "v" - ], - [ - "▁pa", - "pel" - ], - [ - "▁pap", - "el" - ], - [ - "ub", - "s" - ], - [ - "u", - "bs" - ], - [ - "▁ж", - "ена" - ], - [ - "▁же", - "на" - ], - [ - "▁жен", - "а" - ], - [ - "▁", - "жена" - ], - [ - "AM", - "L" - ], - [ - "A", - "ML" - ], - [ - "▁re", - "cip" - ], - [ - "▁rec", - "ip" - ], - [ - "▁reci", - "p" - ], - [ - "▁C", - "OL" - ], - [ - "▁CO", - "L" - ], - [ - "▁", - "COL" - ], - [ - "ad", - "ded" - ], - [ - "add", - "ed" - ], - [ - "▁cl", - "ue" - ], - [ - "▁Uk", - "raine" - ], - [ - "▁Ukrain", - "e" - ], - [ - "▁jel", - "ent" - ], - [ - "че", - "нь" - ], - [ - "чен", - "ь" - ], - [ - "ч", - "ень" - ], - [ - "▁mathemat", - "ics" - ], - [ - "Ac", - "cept" - ], - [ - "▁с", - "от" - ], - [ - "▁со", - "т" - ], - [ - "▁се", - "вер" - ], - [ - "▁isol", - "ated" - ], - [ - "▁по", - "я" - ], - [ - "w", - "ür" - ], - [ - "Ro", - "uter" - ], - [ - "Route", - "r" - ], - [ - "Rout", - "er" - ], - [ - "R", - "outer" - ], - [ - "CA", - "T" - ], - [ - "C", - "AT" - ], - [ - "rg", - "b" - ], - [ - "r", - "gb" - ], - [ - "▁L", - "ov" - ], - [ - "▁Lo", - "v" - ], - [ - "mu", - "table" - ], - [ - "mut", - "able" - ], - [ - "m", - "utable" - ], - [ - "▁W", - "es" - ], - [ - "▁We", - "s" - ], - [ - "▁Ital", - "ien" - ], - [ - "Dra", - "g" - ], - [ - "Dr", - "ag" - ], - [ - "D", - "rag" - ], - [ - "en", - "ium" - ], - [ - "eni", - "um" - ], - [ - "at", - "ting" - ], - [ - "att", - "ing" - ], - [ - "atti", - "ng" - ], - [ - "tc", - "p" - ], - [ - "t", - "cp" - ], - [ - "▁erfolg", - "te" - ], - [ - "▁Be", - "it" - ], - [ - "▁Bei", - "t" - ], - [ - "га", - "то" - ], - [ - "▁System", - "s" - ], - [ - "▁Syst", - "ems" - ], - [ - "▁re", - "serve" - ], - [ - "▁res", - "erve" - ], - [ - "er", - "ee" - ], - [ - "ere", - "e" - ], - [ - "e", - "ree" - ], - [ - "▁Па", - "ри" - ], - [ - "▁Пар", - "и" - ], - [ - "▁з", - "али" - ], - [ - "▁за", - "ли" - ], - [ - "▁re", - "nt" - ], - [ - "▁r", - "ent" - ], - [ - "▁ren", - "t" - ], - [ - "▁", - "rent" - ], - [ - "▁s", - "unt" - ], - [ - "▁su", - "nt" - ], - [ - "▁sun", - "t" - ], - [ - "▁G", - "irls" - ], - [ - "▁Girl", - "s" - ], - [ - "▁Gir", - "ls" - ], - [ - "▁Er", - "nest" - ], - [ - "▁Ern", - "est" - ], - [ - "▁f", - "its" - ], - [ - "▁fi", - "ts" - ], - [ - "▁fit", - "s" - ], - [ - "▁op", - "pon" - ], - [ - "▁opp", - "on" - ], - [ - "▁живе", - "ло" - ], - [ - "▁av", - "aient" - ], - [ - "▁Flor", - "ence" - ], - [ - "▁Flo", - "rence" - ], - [ - "▁чи", - "сле" - ], - [ - "▁eng", - "ines" - ], - [ - "▁engine", - "s" - ], - [ - "D", - "ynamic" - ], - [ - "▁stycz", - "nia" - ], - [ - "▁b", - "ias" - ], - [ - "▁bi", - "as" - ], - [ - "▁Ex", - "change" - ], - [ - "ди", - "й" - ], - [ - "▁histor", - "iques" - ], - [ - "▁historique", - "s" - ], - [ - "▁H", - "ä" - ], - [ - "ho", - "d" - ], - [ - "h", - "od" - ], - [ - "▁w", - "ł" - ], - [ - "sch", - "ap" - ], - [ - "▁l", - "ac" - ], - [ - "▁la", - "c" - ], - [ - "▁", - "lac" - ], - [ - "▁F", - "oi" - ], - [ - "▁Fo", - "i" - ], - [ - "▁d", - "well" - ], - [ - "▁dw", - "ell" - ], - [ - "▁Unter", - "nehmen" - ], - [ - "UR", - "N" - ], - [ - "▁kilomet", - "res" - ], - [ - "▁Одна", - "ко" - ], - [ - "к", - "ли" - ], - [ - "▁S", - "ri" - ], - [ - "▁Sr", - "i" - ], - [ - "Gr", - "oups" - ], - [ - "Group", - "s" - ], - [ - "min", - "d" - ], - [ - "mi", - "nd" - ], - [ - "m", - "ind" - ], - [ - "os", - "lov" - ], - [ - "fer", - "n" - ], - [ - "fe", - "rn" - ], - [ - "f", - "ern" - ], - [ - "eg", - "u" - ], - [ - "e", - "gu" - ], - [ - "abel", - "ed" - ], - [ - "abe", - "led" - ], - [ - "F", - "iddle" - ], - [ - "▁Cent", - "ury" - ], - [ - "/", - "-" - ], - [ - "▁J", - "egyzetek" - ], - [ - "He", - "n" - ], - [ - "H", - "en" - ], - [ - "ens", - "emble" - ], - [ - "▁G", - "ut" - ], - [ - "▁Gu", - "t" - ], - [ - "_{", - "{\\" - ], - [ - "_", - "{{\\" - ], - [ - "▁ran", - "king" - ], - [ - "▁rank", - "ing" - ], - [ - "+", - "$" - ], - [ - "ал", - "а" - ], - [ - "а", - "ла" - ], - [ - "▁#", - "{" - ], - [ - "▁", - "#{" - ], - [ - "im", - "ientos" - ], - [ - "imiento", - "s" - ], - [ - "ach", - "im" - ], - [ - "ac", - "him" - ], - [ - "achi", - "m" - ], - [ - "ri", - "des" - ], - [ - "ride", - "s" - ], - [ - "rid", - "es" - ], - [ - "r", - "ides" - ], - [ - "▁K", - "laus" - ], - [ - "▁Kl", - "aus" - ], - [ - "▁int", - "end" - ], - [ - "▁inte", - "nd" - ], - [ - "▁inten", - "d" - ], - [ - "▁Kent", - "ucky" - ], - [ - "ci", - "pe" - ], - [ - "cip", - "e" - ], - [ - "c", - "ipe" - ], - [ - "▁D", - "ienst" - ], - [ - "▁Di", - "enst" - ], - [ - "▁situ", - "ated" - ], - [ - "▁pó", - "ź" - ], - [ - "▁s", - "crit" - ], - [ - "▁sc", - "rit" - ], - [ - "▁scr", - "it" - ], - [ - "▁scri", - "t" - ], - [ - "cl", - "ip" - ], - [ - "cli", - "p" - ], - [ - "c", - "lip" - ], - [ - "не", - "т" - ], - [ - "н", - "ет" - ], - [ - "ta", - "bles" - ], - [ - "table", - "s" - ], - [ - "tab", - "les" - ], - [ - "t", - "ables" - ], - [ - "▁N", - "ied" - ], - [ - "▁Ni", - "ed" - ], - [ - "▁Nie", - "d" - ], - [ - "▁Mc", - "K" - ], - [ - "▁pow", - "st" - ], - [ - "▁kun", - "nen" - ], - [ - "▁Ev", - "ans" - ], - [ - "▁Eva", - "ns" - ], - [ - "ж", - "ды" - ], - [ - "ва", - "ть" - ], - [ - "ват", - "ь" - ], - [ - "uch", - "ar" - ], - [ - "uc", - "har" - ], - [ - "ucha", - "r" - ], - [ - "u", - "char" - ], - [ - "▁res", - "idents" - ], - [ - "▁resid", - "ents" - ], - [ - "▁resident", - "s" - ], - [ - "ia", - "k" - ], - [ - "i", - "ak" - ], - [ - "▁Re", - "sol" - ], - [ - "▁Res", - "ol" - ], - [ - "▁", - "Resol" - ], - [ - "▁ve", - "ces" - ], - [ - "▁vec", - "es" - ], - [ - "▁satisf", - "ying" - ], - [ - "▁satisfy", - "ing" - ], - [ - "IN", - "F" - ], - [ - "I", - "NF" - ], - [ - "▁с", - "ин" - ], - [ - "▁си", - "н" - ], - [ - "▁cross", - "ing" - ], - [ - "ib", - "en" - ], - [ - "ibe", - "n" - ], - [ - "i", - "ben" - ], - [ - "▁ши", - "ро" - ], - [ - "pt", - "o" - ], - [ - "p", - "to" - ], - [ - "IL", - "L" - ], - [ - "I", - "LL" - ], - [ - "▁ро", - "ль" - ], - [ - "▁a", - "ktiv" - ], - [ - "▁akt", - "iv" - ], - [ - "▁обра", - "щения" - ], - [ - "Wik", - "ispecies" - ], - [ - "▁Hö", - "he" - ], - [ - "cr", - "o" - ], - [ - "c", - "ro" - ], - [ - "══", - "══" - ], - [ - "al", - "tra" - ], - [ - "alt", - "ra" - ], - [ - "▁FI", - "LE" - ], - [ - "▁", - "FILE" - ], - [ - "▁u", - "ps" - ], - [ - "▁up", - "s" - ], - [ - "▁", - "ups" - ], - [ - "▁al", - "location" - ], - [ - "▁all", - "ocation" - ], - [ - "▁alloc", - "ation" - ], - [ - "▁allo", - "cation" - ], - [ - "Mich", - "ael" - ], - [ - "▁acknow", - "led" - ], - [ - "Lin", - "ux" - ], - [ - "▁met", - "ros" - ], - [ - "▁", - "metros" - ], - [ - "tt", - "e" - ], - [ - "t", - "te" - ], - [ - "af", - "en" - ], - [ - "a", - "fen" - ], - [ - "▁x", - "code" - ], - [ - "▁тра", - "ди" - ], - [ - "spe", - "cies" - ], - [ - "spec", - "ies" - ], - [ - "s", - "pecies" - ], - [ - "▁inj", - "ury" - ], - [ - "▁са", - "мы" - ], - [ - "▁сам", - "ы" - ], - [ - "▁l", - "attice" - ], - [ - "M", - "aterial" - ], - [ - "and", - "enburg" - ], - [ - "anden", - "burg" - ], - [ - "▁huvud", - "staden" - ], - [ - "st", - "ory" - ], - [ - "sto", - "ry" - ], - [ - "stor", - "y" - ], - [ - "▁var", - "ying" - ], - [ - "▁vary", - "ing" - ], - [ - "▁kö", - "vet" - ], - [ - "▁Росси", - "йской" - ], - [ - "ir", - "se" - ], - [ - "irs", - "e" - ], - [ - "▁d", - "rum" - ], - [ - "▁dr", - "um" - ], - [ - "▁dru", - "m" - ], - [ - "Pr", - "essed" - ], - [ - "Press", - "ed" - ], - [ - "Pres", - "sed" - ], - [ - "La", - "r" - ], - [ - "L", - "ar" - ], - [ - "▁A", - "gu" - ], - [ - "▁Ag", - "u" - ], - [ - "▁w", - "eil" - ], - [ - "▁we", - "il" - ], - [ - "▁comm", - "ence" - ], - [ - "▁Seg", - "ún" - ], - [ - "Gest", - "ure" - ], - [ - "Sh", - "ape" - ], - [ - "S", - "hape" - ], - [ - "▁V", - "ors" - ], - [ - "▁Vo", - "rs" - ], - [ - "▁Vor", - "s" - ], - [ - "▁succ", - "ès" - ], - [ - "▁correct", - "ed" - ], - [ - "▁corre", - "cted" - ], - [ - "▁corr", - "ected" - ], - [ - "K", - "ar" - ], - [ - "▁cr", - "uel" - ], - [ - "▁cru", - "el" - ], - [ - "▁polit", - "ico" - ], - [ - "▁Schrift", - "steller" - ], - [ - "▁ris", - "ult" - ], - [ - "et", - "u" - ], - [ - "e", - "tu" - ], - [ - "arch", - "iv" - ], - [ - "▁gén", - "ero" - ], - [ - "▁gé", - "nero" - ], - [ - "▁L", - "ü" - ], - [ - "▁tri", - "umph" - ], - [ - "OR", - "S" - ], - [ - "O", - "RS" - ], - [ - "L", - "u" - ], - [ - "▁person", - "nel" - ], - [ - "▁personn", - "el" - ], - [ - "▁personne", - "l" - ], - [ - "▁H", - "ills" - ], - [ - "▁Hill", - "s" - ], - [ - "▁Hil", - "ls" - ], - [ - "as", - "set" - ], - [ - "ass", - "et" - ], - [ - "asse", - "t" - ], - [ - "do", - "min" - ], - [ - "dom", - "in" - ], - [ - "d", - "omin" - ], - [ - "Rece", - "ive" - ], - [ - "▁O", - "ak" - ], - [ - "▁K", - "no" - ], - [ - "▁Kn", - "o" - ], - [ - "▁The", - "ory" - ], - [ - "ir", - "ie" - ], - [ - "iri", - "e" - ], - [ - "i", - "rie" - ], - [ - "ow", - "an" - ], - [ - "owa", - "n" - ], - [ - "o", - "wan" - ], - [ - "▁est", - "ava" - ], - [ - "▁esta", - "va" - ], - [ - "▁exec", - "utes" - ], - [ - "▁execute", - "s" - ], - [ - "▁execut", - "es" - ], - [ - "й", - "т" - ], - [ - "óp", - "ez" - ], - [ - "ó", - "pez" - ], - [ - "по", - "ло" - ], - [ - "пол", - "о" - ], - [ - "п", - "оло" - ], - [ - "ét", - "ica" - ], - [ - "▁назва", - "ние" - ], - [ - "▁conver", - "ges" - ], - [ - "▁not", - "re" - ], - [ - "▁no", - "tre" - ], - [ - "▁pop", - "ulated" - ], - [ - "▁popula", - "ted" - ], - [ - "▁popul", - "ated" - ], - [ - "▁populate", - "d" - ], - [ - "▁mov", - "ements" - ], - [ - "▁move", - "ments" - ], - [ - "▁movement", - "s" - ], - [ - "▁statist", - "ical" - ], - [ - "▁Zwe", - "iten" - ], - [ - "qu", - "in" - ], - [ - "qui", - "n" - ], - [ - "▁import", - "antes" - ], - [ - "▁important", - "es" - ], - [ - "▁importante", - "s" - ], - [ - "▁k", - "lein" - ], - [ - "▁kle", - "in" - ], - [ - "▁kl", - "ein" - ], - [ - "▁Seg", - "unda" - ], - [ - "schließ", - "end" - ], - [ - "Fail", - "ure" - ], - [ - "na", - "r" - ], - [ - "n", - "ar" - ], - [ - "da", - "g" - ], - [ - "d", - "ag" - ], - [ - "▁ru", - "olo" - ], - [ - "▁f", - "iction" - ], - [ - "▁fi", - "ction" - ], - [ - "▁fic", - "tion" - ], - [ - "▁fict", - "ion" - ], - [ - "▁исполь", - "зу" - ], - [ - "▁cr", - "isis" - ], - [ - "▁Get", - "ting" - ], - [ - ",", - "%" - ], - [ - "▁ар", - "мии" - ], - [ - "▁cam", - "pus" - ], - [ - "▁camp", - "us" - ], - [ - "▁fo", - "oter" - ], - [ - "▁foot", - "er" - ], - [ - "▁foo", - "ter" - ], - [ - "▁", - "footer" - ], - [ - "▁d", - "ías" - ], - [ - "▁día", - "s" - ], - [ - "▁dí", - "as" - ], - [ - "ба", - "н" - ], - [ - "б", - "ан" - ], - [ - "▁liber", - "ty" - ], - [ - "▁libert", - "y" - ], - [ - "▁g", - "h" - ], - [ - "▁", - "gh" - ], - [ - "▁cham", - "ber" - ], - [ - "▁district", - "s" - ], - [ - "▁exc", - "ited" - ], - [ - "▁can", - "ción" - ], - [ - "ter", - "o" - ], - [ - "te", - "ro" - ], - [ - "t", - "ero" - ], - [ - "▁Work", - "ing" - ], - [ - "▁Wor", - "king" - ], - [ - "▁czę", - "ści" - ], - [ - "ль", - "ный" - ], - [ - "▁f", - "orum" - ], - [ - "▁for", - "um" - ], - [ - "▁fo", - "rum" - ], - [ - "▁", - "forum" - ], - [ - "▁E", - "he" - ], - [ - "▁ка", - "та" - ], - [ - "▁", - "ката" - ], - [ - "it", - "ations" - ], - [ - "itation", - "s" - ], - [ - "itat", - "ions" - ], - [ - "To", - "ols" - ], - [ - "Tool", - "s" - ], - [ - "T", - "ools" - ], - [ - "ach", - "iv" - ], - [ - "achi", - "v" - ], - [ - "▁c", - "res" - ], - [ - "▁cre", - "s" - ], - [ - "▁cr", - "es" - ], - [ - "as", - "to" - ], - [ - "ast", - "o" - ], - [ - "a", - "sto" - ], - [ - "▁re", - "ver" - ], - [ - "▁r", - "ever" - ], - [ - "▁rev", - "er" - ], - [ - "▁reve", - "r" - ], - [ - "▁n", - "azionale" - ], - [ - "▁naz", - "ionale" - ], - [ - "▁do", - "ors" - ], - [ - "▁door", - "s" - ], - [ - "▁N", - "ancy" - ], - [ - "▁Nan", - "cy" - ], - [ - "▁is", - "lands" - ], - [ - "▁island", - "s" - ], - [ - "Im", - "p" - ], - [ - "I", - "mp" - ], - [ - "▁Ch", - "air" - ], - [ - "▁Cha", - "ir" - ], - [ - "▁v", - "orm" - ], - [ - "▁vo", - "rm" - ], - [ - "▁vor", - "m" - ], - [ - "se", - "in" - ], - [ - "s", - "ein" - ], - [ - "▁до", - "ку" - ], - [ - "er", - "set" - ], - [ - "ers", - "et" - ], - [ - "▁tät", - "ig" - ], - [ - "▁K", - "rit" - ], - [ - "▁Kr", - "it" - ], - [ - "▁п", - "я" - ], - [ - "▁cons", - "ervation" - ], - [ - "▁conserv", - "ation" - ], - [ - "▁Part", - "ido" - ], - [ - "▁Parti", - "do" - ], - [ - "min", - "ipage" - ], - [ - "Valid", - "ator" - ], - [ - "▁rec", - "overy" - ], - [ - "▁recover", - "y" - ], - [ - "▁NA", - "SA" - ], - [ - "▁NAS", - "A" - ], - [ - "▁br", - "east" - ], - [ - "▁bre", - "ast" - ], - [ - "il", - "ty" - ], - [ - "ilt", - "y" - ], - [ - "an", - "aly" - ], - [ - "ana", - "ly" - ], - [ - "anal", - "y" - ], - [ - "el", - "ines" - ], - [ - "eli", - "nes" - ], - [ - "eline", - "s" - ], - [ - "elin", - "es" - ], - [ - "e", - "lines" - ], - [ - "▁S", - "aturday" - ], - [ - "em", - "ark" - ], - [ - "e", - "mark" - ], - [ - "ce", - "j" - ], - [ - "c", - "ej" - ], - [ - "Ze", - "ro" - ], - [ - "Z", - "ero" - ], - [ - "▁Tur", - "ner" - ], - [ - "▁Turn", - "er" - ], - [ - "sec", - "ure" - ], - [ - "Ex", - "ists" - ], - [ - "▁R", - "ick" - ], - [ - "▁Ric", - "k" - ], - [ - "▁Ri", - "ck" - ], - [ - "ev", - "alu" - ], - [ - "eval", - "u" - ], - [ - "e", - "valu" - ], - [ - "ct", - "rl" - ], - [ - "ctr", - "l" - ], - [ - "c", - "trl" - ], - [ - "▁com", - "pression" - ], - [ - "▁comp", - "ression" - ], - [ - "▁compr", - "ession" - ], - [ - "▁compress", - "ion" - ], - [ - "▁C", - "URL" - ], - [ - "text", - "color" - ], - [ - ")\\", - "," - ], - [ - ")", - "\\," - ], - [ - "long", - "rightarrow" - ], - [ - "▁Fern", - "seh" - ], - [ - "▁", - "Fernseh" - ], - [ - "ic", - "ha" - ], - [ - "ich", - "a" - ], - [ - "i", - "cha" - ], - [ - "▁l", - "oi" - ], - [ - "▁lo", - "i" - ], - [ - "▁О", - "те" - ], - [ - "▁От", - "е" - ], - [ - "▁c", - "ave" - ], - [ - "▁ca", - "ve" - ], - [ - "▁cav", - "e" - ], - [ - "▁do", - "zen" - ], - [ - "▁expla", - "ining" - ], - [ - "▁expl", - "aining" - ], - [ - "▁explain", - "ing" - ], - [ - "▁in", - "nov" - ], - [ - "▁inn", - "ov" - ], - [ - "▁Nich", - "olas" - ], - [ - "▁dia", - "meter" - ], - [ - "▁diam", - "eter" - ], - [ - "▁M", - "arian" - ], - [ - "▁Mar", - "ian" - ], - [ - "▁Ma", - "rian" - ], - [ - "▁Maria", - "n" - ], - [ - "▁Mari", - "an" - ], - [ - "▁f", - "ires" - ], - [ - "▁fire", - "s" - ], - [ - "▁fi", - "res" - ], - [ - "▁fir", - "es" - ], - [ - "▁art", - "ifact" - ], - [ - "▁", - "artifact" - ], - [ - "▁Par", - "ker" - ], - [ - "▁Park", - "er" - ], - [ - "▁B", - "und" - ], - [ - "▁Bu", - "nd" - ], - [ - "▁Bun", - "d" - ], - [ - "▁v", - "erte" - ], - [ - "▁ver", - "te" - ], - [ - "▁vert", - "e" - ], - [ - "▁", - "verte" - ], - [ - "▁tal", - "ent" - ], - [ - "▁tale", - "nt" - ], - [ - "▁Lu", - "cas" - ], - [ - "▁Luc", - "as" - ], - [ - "re", - "verse" - ], - [ - "▁folg", - "enden" - ], - [ - "▁S", - "ah" - ], - [ - "▁Sa", - "h" - ], - [ - "ject", - "ions" - ], - [ - "je", - "ctions" - ], - [ - "jection", - "s" - ], - [ - "▁inve", - "ce" - ], - [ - "▁cost", - "itu" - ], - [ - "▁s", - "sl" - ], - [ - "▁ss", - "l" - ], - [ - "▁", - "ssl" - ], - [ - "}}", - "^" - ], - [ - "}", - "}^" - ], - [ - "▁viol", - "ent" - ], - [ - "▁s", - "pos" - ], - [ - "▁sp", - "os" - ], - [ - "▁spo", - "s" - ], - [ - "Ro", - "ut" - ], - [ - "R", - "out" - ], - [ - "jd", - "k" - ], - [ - "j", - "dk" - ], - [ - "▁за", - "ме" - ], - [ - "▁f", - "urent" - ], - [ - "▁fur", - "ent" - ], - [ - "▁fu", - "rent" - ], - [ - "an", - "dal" - ], - [ - "and", - "al" - ], - [ - "anda", - "l" - ], - [ - "H", - "om" - ], - [ - "▁Sen", - "ior" - ], - [ - "▁p", - "ounds" - ], - [ - "▁Disc", - "ogs" - ], - [ - "▁з", - "е" - ], - [ - "▁", - "зе" - ], - [ - "'}", - "[" - ], - [ - "'", - "}[" - ], - [ - "▁Napole", - "on" - ], - [ - "ordin", - "ates" - ], - [ - "ordinate", - "s" - ], - [ - "à", - "n" - ], - [ - "▁k", - "urz" - ], - [ - "▁kur", - "z" - ], - [ - "▁v", - "ere" - ], - [ - "▁ver", - "e" - ], - [ - "▁ve", - "re" - ], - [ - "▁", - "vere" - ], - [ - "▁re", - "use" - ], - [ - "▁Г", - "ен" - ], - [ - "▁Ге", - "н" - ], - [ - "▁S", - "yst" - ], - [ - "▁Sy", - "st" - ], - [ - "▁disapp", - "eared" - ], - [ - "▁disappear", - "ed" - ], - [ - "▁W", - "atch" - ], - [ - "▁Wat", - "ch" - ], - [ - "▁", - "Watch" - ], - [ - "bibli", - "othek" - ], - [ - "▁кор", - "пу" - ], - [ - "▁C", - "s" - ], - [ - "▁}", - "`" - ], - [ - "▁", - "}`" - ], - [ - "▁r", - "ör" - ], - [ - "▁де", - "ла" - ], - [ - "▁", - "дела" - ], - [ - "V", - "B" - ], - [ - "▁calcul", - "us" - ], - [ - "▁calc", - "ulus" - ], - [ - "ро", - "да" - ], - [ - "род", - "а" - ], - [ - "▁jud", - "gment" - ], - [ - "at", - "ile" - ], - [ - "ati", - "le" - ], - [ - "▁long", - "ue" - ], - [ - "▁lon", - "gue" - ], - [ - "▁H", - "us" - ], - [ - "▁Hu", - "s" - ], - [ - "J", - "ac" - ], - [ - "}}", - ")" - ], - [ - "}", - "})" - ], - [ - "RI", - "PT" - ], - [ - "IAB", - "ot" - ], - [ - "▁ap", - "ós" - ], - [ - "▁a", - "ston" - ], - [ - "▁as", - "ton" - ], - [ - "▁ast", - "on" - ], - [ - "Web", - "achiv" - ], - [ - "▁URL", - "s" - ], - [ - "▁co", - "at" - ], - [ - "▁э", - "коно" - ], - [ - "▁l", - "ear" - ], - [ - "▁le", - "ar" - ], - [ - "▁", - "lear" - ], - [ - "ext", - "ensions" - ], - [ - "extension", - "s" - ], - [ - "▁Class", - "ic" - ], - [ - "T", - "I" - ], - [ - "▁T", - "age" - ], - [ - "▁Tag", - "e" - ], - [ - "▁Ta", - "ge" - ], - [ - "▁l", - "á" - ], - [ - "▁", - "lá" - ], - [ - "▁s", - "emb" - ], - [ - "▁se", - "mb" - ], - [ - "▁sem", - "b" - ], - [ - "▁développ", - "ement" - ], - [ - "IS", - "TS" - ], - [ - "IST", - "S" - ], - [ - "▁sol", - "ves" - ], - [ - "▁solve", - "s" - ], - [ - ",\\", - "," - ], - [ - ",", - "\\," - ], - [ - "▁чем", - "пі" - ], - [ - "ord", - "inary" - ], - [ - "ordin", - "ary" - ], - [ - "▁B", - "av" - ], - [ - "▁Ba", - "v" - ], - [ - "▁much", - "os" - ], - [ - "▁mu", - "chos" - ], - [ - "▁mucho", - "s" - ], - [ - "S", - "elf" - ], - [ - "▁Ма", - "й" - ], - [ - "▁D", - "iet" - ], - [ - "▁Die", - "t" - ], - [ - "▁Di", - "et" - ], - [ - "▁necess", - "ity" - ], - [ - "ві", - "д" - ], - [ - "в", - "ід" - ], - [ - "▁m", - "ano" - ], - [ - "▁ma", - "no" - ], - [ - "▁man", - "o" - ], - [ - "▁С", - "р" - ], - [ - "▁car", - "re" - ], - [ - "▁Cam", - "era" - ], - [ - "▁Camer", - "a" - ], - [ - "▁", - "Camera" - ], - [ - "▁N", - "arod" - ], - [ - "▁Na", - "rod" - ], - [ - "▁Nar", - "od" - ], - [ - "▁Ph", - "one" - ], - [ - "▁Pho", - "ne" - ], - [ - "▁", - "Phone" - ], - [ - "▁pol", - "ym" - ], - [ - "▁poly", - "m" - ], - [ - "im", - "ore" - ], - [ - "imo", - "re" - ], - [ - "i", - "more" - ], - [ - "is", - "Empty" - ], - [ - "▁Hou", - "ston" - ], - [ - "▁Re", - "ce" - ], - [ - "▁Rec", - "e" - ], - [ - "▁", - "Rece" - ], - [ - "▁present", - "ation" - ], - [ - "▁pres", - "entation" - ], - [ - "▁presenta", - "tion" - ], - [ - "▁", - "presentation" - ], - [ - "ни", - "ципа" - ], - [ - "ници", - "па" - ], - [ - "▁D", - "b" - ], - [ - "▁", - "Db" - ], - [ - "▁conf", - "ident" - ], - [ - "▁}", - "{" - ], - [ - "▁", - "}{" - ], - [ - "▁bul", - "let" - ], - [ - "▁", - "bullet" - ], - [ - "▁{", - "}," - ], - [ - "▁{}", - "," - ], - [ - "AN", - "GE" - ], - [ - "ANG", - "E" - ], - [ - "▁No", - "tre" - ], - [ - "▁Not", - "re" - ], - [ - "ch", - "in" - ], - [ - "chi", - "n" - ], - [ - "c", - "hin" - ], - [ - "▁Dr", - "agon" - ], - [ - "▁Drag", - "on" - ], - [ - "▁Dra", - "gon" - ], - [ - "er", - "ca" - ], - [ - "erc", - "a" - ], - [ - "ia", - "li" - ], - [ - "ial", - "i" - ], - [ - "i", - "ali" - ], - [ - "▁as", - "set" - ], - [ - "▁ass", - "et" - ], - [ - "▁asse", - "t" - ], - [ - "▁", - "asset" - ], - [ - "▁mu", - "ito" - ], - [ - "▁muit", - "o" - ], - [ - "▁deep", - "ly" - ], - [ - "▁rest", - "riction" - ], - [ - "▁restrict", - "ion" - ], - [ - "▁com", - "merce" - ], - [ - "▁commer", - "ce" - ], - [ - "▁", - "commerce" - ], - [ - "▁B", - "omb" - ], - [ - "▁Bo", - "mb" - ], - [ - "▁Bom", - "b" - ], - [ - "c", - "aught" - ], - [ - "q", - "q" - ], - [ - "▁A", - "rag" - ], - [ - "▁Ar", - "ag" - ], - [ - "▁Ara", - "g" - ], - [ - "▁не", - "мец" - ], - [ - "▁Anal", - "ysis" - ], - [ - "▁člán", - "ku" - ], - [ - "▁b", - "aby" - ], - [ - "▁ba", - "by" - ], - [ - "▁e", - "chter" - ], - [ - "▁о", - "дного" - ], - [ - "▁од", - "ного" - ], - [ - "▁одно", - "го" - ], - [ - "же", - "на" - ], - [ - "жен", - "а" - ], - [ - "ж", - "ена" - ], - [ - "▁white", - "space" - ], - [ - "▁whites", - "pace" - ], - [ - "ç", - "u" - ], - [ - "LI", - "ST" - ], - [ - "L", - "IST" - ], - [ - "fr", - "ique" - ], - [ - "fri", - "que" - ], - [ - "f", - "rique" - ], - [ - "▁v", - "arias" - ], - [ - "▁var", - "ias" - ], - [ - "▁vari", - "as" - ], - [ - "▁va", - "rias" - ], - [ - "▁W", - "it" - ], - [ - "▁Wi", - "t" - ], - [ - "▁Lic", - "encia" - ], - [ - "Ex", - "it" - ], - [ - "▁sie", - "rp" - ], - [ - "▁sier", - "p" - ], - [ - "▁ass", - "emb" - ], - [ - "▁asse", - "mb" - ], - [ - "▁split", - "ting" - ], - [ - "▁spl", - "itting" - ], - [ - "▁pa", - "lace" - ], - [ - "▁pal", - "ace" - ], - [ - "▁b", - "locked" - ], - [ - "▁block", - "ed" - ], - [ - "▁bound", - "aries" - ], - [ - "▁iter", - "ations" - ], - [ - "▁iteration", - "s" - ], - [ - "▁Rot", - "ten" - ], - [ - "▁Ver", - "kehr" - ], - [ - "▁we", - "er" - ], - [ - "Test", - "s" - ], - [ - "T", - "ests" - ], - [ - "if", - "ting" - ], - [ - "ift", - "ing" - ], - [ - "▁reg", - "ul" - ], - [ - "▁pers", - "ist" - ], - [ - "▁Sol", - "ution" - ], - [ - "p", - "b" - ], - [ - "▁col", - "lapse" - ], - [ - "▁", - "collapse" - ], - [ - "▁arr", - "ested" - ], - [ - "▁arrest", - "ed" - ], - [ - "▁pred", - "icate" - ], - [ - "▁Z", - "one" - ], - [ - "▁Zo", - "ne" - ], - [ - "▁", - "Zone" - ], - [ - "▁in", - "gen" - ], - [ - "▁ing", - "en" - ], - [ - "▁", - "ingen" - ], - [ - "zá", - "lez" - ], - [ - "▁b", - "anks" - ], - [ - "▁bank", - "s" - ], - [ - "▁ban", - "ks" - ], - [ - "pl", - "ant" - ], - [ - "plan", - "t" - ], - [ - "pla", - "nt" - ], - [ - "p", - "lant" - ], - [ - "▁N", - "ella" - ], - [ - "▁Ne", - "lla" - ], - [ - "▁Nel", - "la" - ], - [ - "▁Nell", - "a" - ], - [ - "▁б", - "ан" - ], - [ - "▁ба", - "н" - ], - [ - "▁", - "бан" - ], - [ - "▁S", - "now" - ], - [ - "▁Sn", - "ow" - ], - [ - "▁Kre", - "uz" - ], - [ - "í", - "cio" - ], - [ - "▁en", - "ters" - ], - [ - "▁ent", - "ers" - ], - [ - "▁enter", - "s" - ], - [ - "▁ex", - "pose" - ], - [ - "▁exp", - "ose" - ], - [ - "▁expos", - "e" - ], - [ - "č", - "i" - ], - [ - "ши", - "е" - ], - [ - "Qu", - "al" - ], - [ - "Q", - "ual" - ], - [ - "▁lands", - "cape" - ], - [ - "▁пода", - "цима" - ], - [ - "ma", - "i" - ], - [ - "m", - "ai" - ], - [ - "st", - "ag" - ], - [ - "sta", - "g" - ], - [ - "s", - "tag" - ], - [ - "ова", - "ний" - ], - [ - "DE", - "F" - ], - [ - "D", - "EF" - ], - [ - "[]", - "{" - ], - [ - "[", - "]{" - ], - [ - "▁derni", - "ère" - ], - [ - "ic", - "ut" - ], - [ - "i", - "cut" - ], - [ - "▁X", - "ml" - ], - [ - "▁", - "Xml" - ], - [ - "▁sub", - "group" - ], - [ - "▁Pol", - "sce" - ], - [ - "▁W", - "arning" - ], - [ - "▁War", - "ning" - ], - [ - "▁", - "Warning" - ], - [ - "▁veh", - "icles" - ], - [ - "▁vehicle", - "s" - ], - [ - "io", - "t" - ], - [ - "i", - "ot" - ], - [ - "▁d", - "ll" - ], - [ - "▁", - "dll" - ], - [ - "ro", - "nt" - ], - [ - "ron", - "t" - ], - [ - "r", - "ont" - ], - [ - "▁Lou", - "ise" - ], - [ - "▁Louis", - "e" - ], - [ - "▁a", - "ra" - ], - [ - "▁ar", - "a" - ], - [ - "▁", - "ara" - ], - [ - "▁S", - "cala" - ], - [ - "▁Sc", - "ala" - ], - [ - "▁canon", - "ical" - ], - [ - "▁pl", - "acing" - ], - [ - "▁pla", - "cing" - ], - [ - "ER", - "Y" - ], - [ - "E", - "RY" - ], - [ - "▁J", - "ag" - ], - [ - "▁Ja", - "g" - ], - [ - "▁v", - "irus" - ], - [ - "▁vi", - "rus" - ], - [ - "▁vir", - "us" - ], - [ - "em", - "u" - ], - [ - "e", - "mu" - ], - [ - "▁}", - ");\r" - ], - [ - "▁});", - "\r" - ], - [ - "▁})", - ";\r" - ], - [ - "▁м", - "м" - ], - [ - "▁Tr", - "ying" - ], - [ - "▁Try", - "ing" - ], - [ - "▁Lex", - "ikon" - ], - [ - "ab", - "ord" - ], - [ - "abor", - "d" - ], - [ - "▁exped", - "ition" - ], - [ - "▁demand", - "ed" - ], - [ - "▁demande", - "d" - ], - [ - "Z", - "yg" - ], - [ - "le", - "in" - ], - [ - "lei", - "n" - ], - [ - "l", - "ein" - ], - [ - "▁verw", - "endet" - ], - [ - "ри", - "на" - ], - [ - "рин", - "а" - ], - [ - "wo", - "l" - ], - [ - "w", - "ol" - ], - [ - "▁p", - "ivot" - ], - [ - "▁одна", - "ко" - ], - [ - "▁propri", - "et" - ], - [ - "▁a", - "wards" - ], - [ - "▁aw", - "ards" - ], - [ - "▁award", - "s" - ], - [ - "to", - "ut" - ], - [ - "t", - "out" - ], - [ - "▁as", - "sim" - ], - [ - "▁ass", - "im" - ], - [ - "▁St", - "orm" - ], - [ - "▁Sto", - "rm" - ], - [ - "Li", - "mit" - ], - [ - "L", - "imit" - ], - [ - "el", - "in" - ], - [ - "eli", - "n" - ], - [ - "e", - "lin" - ], - [ - "we", - "alth" - ], - [ - "ue", - "z" - ], - [ - "u", - "ez" - ], - [ - "▁rap", - "present" - ], - [ - "▁rappres", - "ent" - ], - [ - "▁re", - "sta" - ], - [ - "▁r", - "esta" - ], - [ - "▁res", - "ta" - ], - [ - "▁rest", - "a" - ], - [ - "▁gegründ", - "et" - ], - [ - "▁journal", - "ist" - ], - [ - "is", - "ie" - ], - [ - "isi", - "e" - ], - [ - "▁fac", - "ility" - ], - [ - "▁facil", - "ity" - ], - [ - "il", - "led" - ], - [ - "ill", - "ed" - ], - [ - "ille", - "d" - ], - [ - "ul", - "k" - ], - [ - "▁P", - "K" - ], - [ - "▁", - "PK" - ], - [ - "An", - "chor" - ], - [ - "▁_", - ")" - ], - [ - "▁", - "_)" - ], - [ - "V", - "F" - ], - [ - "LA", - "B" - ], - [ - "L", - "AB" - ], - [ - "▁n", - "å" - ], - [ - "od", - "os" - ], - [ - "odo", - "s" - ], - [ - "▁bill", - "ion" - ], - [ - "vir", - "ti" - ], - [ - "virt", - "i" - ], - [ - "▁Je", - "ux" - ], - [ - "юз", - "а" - ], - [ - "ю", - "за" - ], - [ - "tom", - "cat" - ], - [ - "▁ch", - "arts" - ], - [ - "▁char", - "ts" - ], - [ - "▁chart", - "s" - ], - [ - "▁", - "charts" - ], - [ - "▁B", - "undle" - ], - [ - "▁Bund", - "le" - ], - [ - "▁", - "Bundle" - ], - [ - "▁l", - "st" - ], - [ - "▁ls", - "t" - ], - [ - "▁", - "lst" - ], - [ - "▁ex", - "er" - ], - [ - "▁fem", - "ales" - ], - [ - "▁female", - "s" - ], - [ - "▁oblig", - "ed" - ], - [ - "▁a", - "by" - ], - [ - "▁ab", - "y" - ], - [ - "▁", - "aby" - ], - [ - "roll", - "ed" - ], - [ - "rol", - "led" - ], - [ - "rolle", - "d" - ], - [ - "dr", - "i" - ], - [ - "d", - "ri" - ], - [ - "▁S", - "che" - ], - [ - "▁Sch", - "e" - ], - [ - "▁Sc", - "he" - ], - [ - "▁vess", - "els" - ], - [ - "▁vessel", - "s" - ], - [ - "IMA", - "RY" - ], - [ - "IM", - "ARY" - ], - [ - "▁reason", - "ing" - ], - [ - "▁про", - "те" - ], - [ - "▁пр", - "оте" - ], - [ - "FI", - "LES" - ], - [ - "FILE", - "S" - ], - [ - "ver", - "k" - ], - [ - "v", - "erk" - ], - [ - "os", - "os" - ], - [ - "oso", - "s" - ], - [ - "▁ком", - "му" - ], - [ - "ді", - "ї" - ], - [ - "д", - "ії" - ], - [ - "▁d", - "d" - ], - [ - "▁", - "dd" - ], - [ - "▁со", - "ответ" - ], - [ - "▁IO", - "Exception" - ], - [ - "▁", - "IOException" - ], - [ - "sk", - "ých" - ], - [ - "ský", - "ch" - ], - [ - "▁C", - "LI" - ], - [ - "▁CL", - "I" - ], - [ - "▁", - "CLI" - ], - [ - "▁", - "ње" - ], - [ - "C", - "M" - ], - [ - "T", - "D" - ], - [ - "▁possib", - "ilities" - ], - [ - "▁possibil", - "ities" - ], - [ - "▁Com", - "pos" - ], - [ - "▁Comp", - "os" - ], - [ - "hal", - "f" - ], - [ - "h", - "alf" - ], - [ - "▁web", - "page" - ], - [ - "▁s", - "wing" - ], - [ - "▁sw", - "ing" - ], - [ - "▁", - "swing" - ], - [ - "▁z", - "as" - ], - [ - "▁za", - "s" - ], - [ - "▁", - "zas" - ], - [ - "▁cy", - "cl" - ], - [ - "le", - "id" - ], - [ - "lei", - "d" - ], - [ - "ist", - "ica" - ], - [ - "istic", - "a" - ], - [ - "isti", - "ca" - ], - [ - "▁In", - "sert" - ], - [ - "▁Ins", - "ert" - ], - [ - "▁", - "Insert" - ], - [ - "▁Sw", - "eden" - ], - [ - "▁want", - "ing" - ], - [ - "▁", - "ال" - ], - [ - "▁e", - "euw" - ], - [ - "▁Admin", - "istr" - ], - [ - "▁War", - "ren" - ], - [ - "▁b", - "s" - ], - [ - "▁", - "bs" - ], - [ - "▁p", - "am" - ], - [ - "▁pa", - "m" - ], - [ - "an", - "us" - ], - [ - "anu", - "s" - ], - [ - "Dr", - "a" - ], - [ - "D", - "ra" - ], - [ - "ex", - "pl" - ], - [ - "exp", - "l" - ], - [ - "▁K", - "ant" - ], - [ - "▁Kan", - "t" - ], - [ - "▁Ka", - "nt" - ], - [ - "▁Aust", - "in" - ], - [ - "▁c", - "sak" - ], - [ - "▁cs", - "ak" - ], - [ - "▁the", - "atre" - ], - [ - "▁compat", - "ibility" - ], - [ - "ма", - "тиче" - ], - [ - "мати", - "че" - ], - [ - "set", - "State" - ], - [ - "б", - "ю" - ], - [ - "}{", - "|" - ], - [ - "}", - "{|" - ], - [ - "▁D", - "y" - ], - [ - "▁Zw", - "ischen" - ], - [ - "Al", - "t" - ], - [ - "A", - "lt" - ], - [ - "CLA", - "RE" - ], - [ - "st", - "eps" - ], - [ - "ste", - "ps" - ], - [ - "step", - "s" - ], - [ - "▁L", - "age" - ], - [ - "▁La", - "ge" - ], - [ - "▁Lag", - "e" - ], - [ - "▁M", - "itt" - ], - [ - "▁Mit", - "t" - ], - [ - "▁Mi", - "tt" - ], - [ - "▁Dub", - "lin" - ], - [ - "▁рабо", - "ты" - ], - [ - "de", - "ep" - ], - [ - "▁fl", - "ows" - ], - [ - "▁flow", - "s" - ], - [ - "▁flo", - "ws" - ], - [ - "▁Pa", - "lace" - ], - [ - "▁Pal", - "ace" - ], - [ - "▁Pala", - "ce" - ], - [ - "un", - "ix" - ], - [ - "uni", - "x" - ], - [ - "re", - "fs" - ], - [ - "ref", - "s" - ], - [ - "um", - "ar" - ], - [ - "uma", - "r" - ], - [ - "u", - "mar" - ], - [ - "as", - "et" - ], - [ - "ase", - "t" - ], - [ - "a", - "set" - ], - [ - "co", - "v" - ], - [ - "c", - "ov" - ], - [ - "▁p", - "ing" - ], - [ - "▁pi", - "ng" - ], - [ - "▁pin", - "g" - ], - [ - "▁", - "ping" - ], - [ - "▁Saf", - "ari" - ], - [ - "fl", - "ug" - ], - [ - "flu", - "g" - ], - [ - "cre", - "ens" - ], - [ - "creen", - "s" - ], - [ - "c", - "reens" - ], - [ - "{", - "#" - ], - [ - "▁ре", - "а" - ], - [ - "ad", - "ors" - ], - [ - "ado", - "rs" - ], - [ - "ador", - "s" - ], - [ - "▁a", - "mor" - ], - [ - "▁am", - "or" - ], - [ - "uc", - "e" - ], - [ - "u", - "ce" - ], - [ - "de", - "mic" - ], - [ - "dem", - "ic" - ], - [ - "▁Nether", - "lands" - ], - [ - "▁cluster", - "s" - ], - [ - "▁clust", - "ers" - ], - [ - "▁en", - "for" - ], - [ - "▁enf", - "or" - ], - [ - "mar", - "ine" - ], - [ - "▁b", - "ugs" - ], - [ - "▁bu", - "gs" - ], - [ - "▁bug", - "s" - ], - [ - "izz", - "ata" - ], - [ - "izza", - "ta" - ], - [ - "▁s", - "cra" - ], - [ - "▁sc", - "ra" - ], - [ - "▁scr", - "a" - ], - [ - "Le", - "s" - ], - [ - "L", - "es" - ], - [ - "qu", - "ick" - ], - [ - "qui", - "ck" - ], - [ - "▁turn", - "o" - ], - [ - "▁tur", - "no" - ], - [ - "_", - "*" - ], - [ - "ер", - "а" - ], - [ - "е", - "ра" - ], - [ - "Gener", - "ated" - ], - [ - ">", - "[" - ], - [ - "▁e", - "stre" - ], - [ - "▁est", - "re" - ], - [ - "▁es", - "tre" - ], - [ - "▁", - "estre" - ], - [ - "or", - "de" - ], - [ - "ord", - "e" - ], - [ - "▁v", - "erg" - ], - [ - "▁ver", - "g" - ], - [ - "▁ve", - "rg" - ], - [ - "ро", - "з" - ], - [ - "р", - "оз" - ], - [ - "▁p", - "au" - ], - [ - "▁pa", - "u" - ], - [ - "in", - "cludes" - ], - [ - "include", - "s" - ], - [ - "includ", - "es" - ], - [ - "as", - "sa" - ], - [ - "ass", - "a" - ], - [ - "ad", - "ers" - ], - [ - "ader", - "s" - ], - [ - "ade", - "rs" - ], - [ - "a", - "ders" - ], - [ - "▁Гер", - "ма" - ], - [ - "▁est", - "aven" - ], - [ - "▁esta", - "ven" - ], - [ - "▁ear", - "liest" - ], - [ - "▁res", - "ultado" - ], - [ - "▁result", - "ado" - ], - [ - "mu", - "n" - ], - [ - "m", - "un" - ], - [ - "▁pl", - "ots" - ], - [ - "▁plot", - "s" - ], - [ - "▁", - "plots" - ], - [ - "di", - "n" - ], - [ - "d", - "in" - ], - [ - "sort", - "ed" - ], - [ - "s", - "orted" - ], - [ - "▁p", - "reference" - ], - [ - "▁pre", - "ference" - ], - [ - "▁prefer", - "ence" - ], - [ - "ri", - "ó" - ], - [ - "r", - "ió" - ], - [ - "ту", - "ре" - ], - [ - "тур", - "е" - ], - [ - "▁L", - "igue" - ], - [ - "▁Li", - "gue" - ], - [ - "▁Lig", - "ue" - ], - [ - "▁за", - "вер" - ], - [ - "▁зав", - "ер" - ], - [ - "ph", - "r" - ], - [ - "p", - "hr" - ], - [ - "▁p", - "ocket" - ], - [ - "▁po", - "cket" - ], - [ - "▁poc", - "ket" - ], - [ - "▁par", - "l" - ], - [ - "▁pa", - "rl" - ], - [ - "▁l", - "ak" - ], - [ - "▁la", - "k" - ], - [ - "▁", - "lak" - ], - [ - "▁p", - "owie" - ], - [ - "▁po", - "wie" - ], - [ - "▁pow", - "ie" - ], - [ - "▁al", - "tres" - ], - [ - "▁alt", - "res" - ], - [ - "▁altre", - "s" - ], - [ - "$}", - ";" - ], - [ - "$", - "};" - ], - [ - "pl", - "ain" - ], - [ - "pla", - "in" - ], - [ - "p", - "lain" - ], - [ - "▁C", - "red" - ], - [ - "▁Cre", - "d" - ], - [ - "▁Cr", - "ed" - ], - [ - "▁", - "Cred" - ], - [ - "it", - "za" - ], - [ - "itz", - "a" - ], - [ - "pe", - "rp" - ], - [ - "per", - "p" - ], - [ - "Gr", - "een" - ], - [ - "Gre", - "en" - ], - [ - "G", - "reen" - ], - [ - "▁dev", - "oted" - ], - [ - "product", - "ion" - ], - [ - "produ", - "ction" - ], - [ - "p", - "roduction" - ], - [ - "work", - "er" - ], - [ - "wor", - "ker" - ], - [ - "el", - "sen" - ], - [ - "els", - "en" - ], - [ - "else", - "n" - ], - [ - "▁v", - "ern" - ], - [ - "▁ver", - "n" - ], - [ - "▁ve", - "rn" - ], - [ - "▁", - "vern" - ], - [ - "▁már", - "cius" - ], - [ - "▁Conf", - "eder" - ], - [ - "▁Liver", - "pool" - ], - [ - "▁му", - "зи" - ], - [ - "▁em", - "ails" - ], - [ - "▁email", - "s" - ], - [ - "▁dist", - "ances" - ], - [ - "▁distance", - "s" - ], - [ - "▁seg", - "ments" - ], - [ - "▁segment", - "s" - ], - [ - "▁a", - "nth" - ], - [ - "▁an", - "th" - ], - [ - "▁ant", - "h" - ], - [ - "▁", - "anth" - ], - [ - "▁w", - "rest" - ], - [ - "▁wr", - "est" - ], - [ - "▁ho", - "og" - ], - [ - "▁cin", - "ema" - ], - [ - "rr", - "or" - ], - [ - "r", - "ror" - ], - [ - "▁geb", - "oren" - ], - [ - "▁é", - "c" - ], - [ - "▁", - "éc" - ], - [ - "Mar", - "ker" - ], - [ - "Mark", - "er" - ], - [ - "▁Com", - "pet" - ], - [ - "▁Comp", - "et" - ], - [ - "▁ли", - "сто" - ], - [ - "all", - "owed" - ], - [ - "allow", - "ed" - ], - [ - "allo", - "wed" - ], - [ - "vol", - "ume" - ], - [ - "Esp", - "agne" - ], - [ - "Z", - "e" - ], - [ - "▁fix", - "es" - ], - [ - "▁fi", - "xes" - ], - [ - "▁r", - "ond" - ], - [ - "▁ro", - "nd" - ], - [ - "▁arrang", - "ement" - ], - [ - "/", - "~" - ], - [ - ".]", - "(" - ], - [ - ".", - "](" - ], - [ - "▁For", - "rások" - ], - [ - "▁weiter", - "en" - ], - [ - "▁weit", - "eren" - ], - [ - "▁weitere", - "n" - ], - [ - "ex", - "cel" - ], - [ - "▁з", - "мі" - ], - [ - "▁mod", - "erne" - ], - [ - "▁modern", - "e" - ], - [ - "▁moder", - "ne" - ], - [ - "Eng", - "lish" - ], - [ - "▁Transfer", - "markt" - ], - [ - "▁be", - "aring" - ], - [ - "▁bear", - "ing" - ], - [ - "▁cl", - "eared" - ], - [ - "▁clear", - "ed" - ], - [ - "▁cle", - "ared" - ], - [ - "▁са", - "м" - ], - [ - "▁di", - "vs" - ], - [ - "▁div", - "s" - ], - [ - "ć", - "i" - ], - [ - "▁э", - "той" - ], - [ - "▁это", - "й" - ], - [ - "▁Ге", - "ор" - ], - [ - "sc", - "ene" - ], - [ - "sce", - "ne" - ], - [ - "▁a", - "ges" - ], - [ - "▁ag", - "es" - ], - [ - "▁age", - "s" - ], - [ - "▁", - "ages" - ], - [ - "GE", - "N" - ], - [ - "G", - "EN" - ], - [ - "rä", - "n" - ], - [ - "r", - "än" - ], - [ - "▁T", - "oul" - ], - [ - "▁To", - "ul" - ], - [ - "▁A", - "bs" - ], - [ - "▁Ab", - "s" - ], - [ - "j", - "át" - ], - [ - "▁med", - "iante" - ], - [ - "▁medi", - "ante" - ], - [ - "▁median", - "te" - ], - [ - "▁em", - "pres" - ], - [ - "▁emp", - "res" - ], - [ - "▁Emp", - "loyee" - ], - [ - "▁", - "Employee" - ], - [ - "▁polynomial", - "s" - ], - [ - "▁optim", - "ize" - ], - [ - "▁вы", - "ступа" - ], - [ - "fa", - "re" - ], - [ - "far", - "e" - ], - [ - "f", - "are" - ], - [ - "ве", - "й" - ], - [ - "в", - "ей" - ], - [ - "x", - "f" - ], - [ - "qu", - "ez" - ], - [ - "que", - "z" - ], - [ - "q", - "uez" - ], - [ - "▁bo", - "tan" - ], - [ - "▁bot", - "an" - ], - [ - "▁def", - "end" - ], - [ - "▁defe", - "nd" - ], - [ - "▁Qu", - "art" - ], - [ - "Mon", - "t" - ], - [ - "Mo", - "nt" - ], - [ - "M", - "ont" - ], - [ - "v", - "b" - ], - [ - "ti", - "ck" - ], - [ - "t", - "ick" - ], - [ - "W", - "D" - ], - [ - "min", - "e" - ], - [ - "mi", - "ne" - ], - [ - "m", - "ine" - ], - [ - "▁mod", - "ific" - ], - [ - "not", - "ification" - ], - [ - "▁d", - "enn" - ], - [ - "▁de", - "nn" - ], - [ - "▁den", - "n" - ], - [ - "▁al", - "go" - ], - [ - "▁alg", - "o" - ], - [ - "▁S", - "po" - ], - [ - "▁Sp", - "o" - ], - [ - "▁m", - "istrzost" - ], - [ - "/", - ":" - ], - [ - "▁a", - "present" - ], - [ - "▁apr", - "esent" - ], - [ - "▁п", - "род" - ], - [ - "▁про", - "д" - ], - [ - "▁пр", - "од" - ], - [ - "Vol", - "ume" - ], - [ - "sk", - "ą" - ], - [ - "s", - "ką" - ], - [ - "prote", - "cted" - ], - [ - "▁Turk", - "ish" - ], - [ - "az", - "y" - ], - [ - "a", - "zy" - ], - [ - "▁p", - "ouv" - ], - [ - "▁po", - "uv" - ], - [ - "▁pou", - "v" - ], - [ - "▁perí", - "odo" - ], - [ - "sk", - "og" - ], - [ - "sko", - "g" - ], - [ - "▁ent", - "ropy" - ], - [ - "▁entr", - "opy" - ], - [ - "ze", - "d" - ], - [ - "z", - "ed" - ], - [ - "то", - "ри" - ], - [ - "тор", - "и" - ], - [ - "▁l", - "ij" - ], - [ - "▁li", - "j" - ], - [ - "▁", - "lij" - ], - [ - "bo", - "ards" - ], - [ - "board", - "s" - ], - [ - "▁ста", - "ту" - ], - [ - "Bo", - "ol" - ], - [ - "B", - "ool" - ], - [ - "▁pol", - "ity" - ], - [ - "▁polit", - "y" - ], - [ - "@\"", - "," - ], - [ - "@", - "\"," - ], - [ - "▁рі", - "к" - ], - [ - "né", - "e" - ], - [ - "n", - "ée" - ], - [ - "▁Z", - "ug" - ], - [ - "▁Zu", - "g" - ], - [ - "▁Un", - "iti" - ], - [ - "▁Unit", - "i" - ], - [ - "ém", - "et" - ], - [ - "é", - "met" - ], - [ - "at", - "ience" - ], - [ - "ati", - "ence" - ], - [ - "di", - "men" - ], - [ - "dim", - "en" - ], - [ - "d", - "imen" - ], - [ - "▁St", - "even" - ], - [ - "▁Ste", - "ven" - ], - [ - "▁Steve", - "n" - ], - [ - "H", - "a" - ], - [ - "ACT", - "ION" - ], - [ - "A", - "CTION" - ], - [ - "▁w", - "and" - ], - [ - "▁wa", - "nd" - ], - [ - "▁", - "wand" - ], - [ - "▁Na", - "var" - ], - [ - "▁Nav", - "ar" - ], - [ - "▁сі", - "чня" - ], - [ - "W", - "atch" - ], - [ - "▁Stu", - "art" - ], - [ - "▁z", - "de" - ], - [ - "▁zd", - "e" - ], - [ - "▁кон", - "тро" - ], - [ - "data", - "set" - ], - [ - "dat", - "aset" - ], - [ - "datas", - "et" - ], - [ - "y", - "ó" - ], - [ - "▁B", - "ush" - ], - [ - "▁Bu", - "sh" - ], - [ - "▁Bus", - "h" - ], - [ - "▁се", - "бя" - ], - [ - "▁wor", - "thy" - ], - [ - "▁worth", - "y" - ], - [ - "▁B", - "le" - ], - [ - "▁Bl", - "e" - ], - [ - "▁pro", - "por" - ], - [ - "▁prop", - "or" - ], - [ - "▁Vill", - "age" - ], - [ - "▁Villa", - "ge" - ], - [ - "▁Vil", - "lage" - ], - [ - "▁r", - "y" - ], - [ - "▁", - "ry" - ], - [ - "▁v", - "oit" - ], - [ - "▁vo", - "it" - ], - [ - "▁копи", - "я" - ], - [ - "▁z", - "p" - ], - [ - "▁c", - "ura" - ], - [ - "▁cu", - "ra" - ], - [ - "▁cur", - "a" - ], - [ - "▁H", - "tml" - ], - [ - "▁", - "Html" - ], - [ - "▁Die", - "ser" - ], - [ - "▁Dies", - "er" - ], - [ - "▁Diese", - "r" - ], - [ - "▁D", - "ays" - ], - [ - "▁Da", - "ys" - ], - [ - "▁Day", - "s" - ], - [ - "▁", - "Days" - ], - [ - "on", - "nes" - ], - [ - "onn", - "es" - ], - [ - "onne", - "s" - ], - [ - "▁ant", - "igu" - ], - [ - "▁anti", - "gu" - ], - [ - "▁Sta", - "aten" - ], - [ - "▁Staat", - "en" - ], - [ - "▁f", - "aint" - ], - [ - "▁fa", - "int" - ], - [ - "on", - "gs" - ], - [ - "ong", - "s" - ], - [ - "▁ö", - "st" - ], - [ - "▁", - "öst" - ], - [ - "Re", - "direct" - ], - [ - "Red", - "irect" - ], - [ - "ел", - "ь" - ], - [ - "е", - "ль" - ], - [ - "at", - "orial" - ], - [ - "ator", - "ial" - ], - [ - "ato", - "rial" - ], - [ - "atori", - "al" - ], - [ - "▁b", - "other" - ], - [ - "▁bo", - "ther" - ], - [ - "▁both", - "er" - ], - [ - "▁bot", - "her" - ], - [ - "Edit", - "Text" - ], - [ - "▁Gi", - "ul" - ], - [ - "▁за", - "во" - ], - [ - "▁зав", - "о" - ], - [ - "▁pue", - "blo" - ], - [ - "▁Mississ", - "ippi" - ], - [ - "ja", - "k" - ], - [ - "j", - "ak" - ], - [ - "▁w", - "ings" - ], - [ - "▁win", - "gs" - ], - [ - "▁wing", - "s" - ], - [ - "on", - "c" - ], - [ - "o", - "nc" - ], - [ - "ív", - "el" - ], - [ - "í", - "vel" - ], - [ - "ien", - "cia" - ], - [ - "i", - "encia" - ], - [ - "ent", - "licht" - ], - [ - "entlich", - "t" - ], - [ - "▁B", - "TW" - ], - [ - "or", - "nal" - ], - [ - "orn", - "al" - ], - [ - "▁Ко", - "ро" - ], - [ - "▁Кор", - "о" - ], - [ - "▁од", - "ним" - ], - [ - "▁sa", - "lv" - ], - [ - "▁sal", - "v" - ], - [ - "▁f", - "inden" - ], - [ - "▁find", - "en" - ], - [ - "▁fin", - "den" - ], - [ - "ge", - "o" - ], - [ - "▁а", - "виа" - ], - [ - "att", - "ung" - ], - [ - "vi", - "v" - ], - [ - "v", - "iv" - ], - [ - "▁L", - "uther" - ], - [ - "▁Lu", - "ther" - ], - [ - "▁об", - "щи" - ], - [ - "▁Ro", - "lle" - ], - [ - "▁Rol", - "le" - ], - [ - "▁Roll", - "e" - ], - [ - "▁Ab", - "raham" - ], - [ - "▁cent", - "ered" - ], - [ - "▁center", - "ed" - ], - [ - "▁sl", - "ash" - ], - [ - "▁sla", - "sh" - ], - [ - "▁", - "slash" - ], - [ - "is", - "at" - ], - [ - "isa", - "t" - ], - [ - "em", - "ann" - ], - [ - "ema", - "nn" - ], - [ - "eman", - "n" - ], - [ - "e", - "mann" - ], - [ - "O", - "s" - ], - [ - "пар", - "та" - ], - [ - "▁P", - "ablo" - ], - [ - "▁Pa", - "blo" - ], - [ - "▁collabor", - "ation" - ], - [ - "path", - "s" - ], - [ - "pat", - "hs" - ], - [ - "éd", - "ition" - ], - [ - "▁view", - "ed" - ], - [ - "▁vie", - "wed" - ], - [ - "▁cons", - "isted" - ], - [ - "▁consist", - "ed" - ], - [ - "▁recover", - "ed" - ], - [ - "▁Mex", - "ican" - ], - [ - "▁F", - "ix" - ], - [ - "▁sp", - "ell" - ], - [ - "▁spe", - "ll" - ], - [ - "▁spel", - "l" - ], - [ - "Spec", - "ial" - ], - [ - "Spe", - "cial" - ], - [ - "▁С", - "т" - ], - [ - "ess", - "eur" - ], - [ - "esse", - "ur" - ], - [ - "▁Украи", - "ны" - ], - [ - "form", - "er" - ], - [ - "for", - "mer" - ], - [ - "▁ś", - "w" - ], - [ - "▁z", - "eros" - ], - [ - "▁ze", - "ros" - ], - [ - "▁zero", - "s" - ], - [ - "▁Stra", - "ßen" - ], - [ - "▁Straße", - "n" - ], - [ - "▁organ", - "isation" - ], - [ - "▁organis", - "ation" - ], - [ - "▁", - "organisation" - ], - [ - "üss", - "en" - ], - [ - "üs", - "sen" - ], - [ - "▁S", - "ierra" - ], - [ - "▁Se", - "ason" - ], - [ - "▁Sea", - "son" - ], - [ - "▁vol", - "ont" - ], - [ - "Bean", - "Factory" - ], - [ - "▁помо", - "щ" - ], - [ - "▁pres", - "sing" - ], - [ - "▁press", - "ing" - ], - [ - "▁equival", - "ence" - ], - [ - "▁c", - "att" - ], - [ - "▁ca", - "tt" - ], - [ - "▁cat", - "t" - ], - [ - "ic", - "ity" - ], - [ - "ici", - "ty" - ], - [ - "i", - "city" - ], - [ - "▁accompl", - "ished" - ], - [ - "▁accomp", - "lished" - ], - [ - "▁accomplish", - "ed" - ], - [ - "▁y", - "o" - ], - [ - "▁", - "yo" - ], - [ - "▁s", - "ic" - ], - [ - "▁si", - "c" - ], - [ - "▁im", - "ports" - ], - [ - "▁import", - "s" - ], - [ - "▁accom", - "mod" - ], - [ - "▁Port", - "o" - ], - [ - "▁Por", - "to" - ], - [ - "▁я", - "ка" - ], - [ - "▁як", - "а" - ], - [ - "▁lo", - "an" - ], - [ - "ти", - "ки" - ], - [ - "тик", - "и" - ], - [ - "▁check", - "out" - ], - [ - "▁ass", - "ess" - ], - [ - "▁asse", - "ss" - ], - [ - "▁Pop", - "ulation" - ], - [ - "ur", - "ent" - ], - [ - "ure", - "nt" - ], - [ - "uren", - "t" - ], - [ - "u", - "rent" - ], - [ - "clo", - "jure" - ], - [ - "▁Sant", - "os" - ], - [ - "▁Santo", - "s" - ], - [ - "▁inform", - "áció" - ], - [ - "PO", - "S" - ], - [ - "P", - "OS" - ], - [ - "▁g", - "are" - ], - [ - "▁gar", - "e" - ], - [ - "▁ga", - "re" - ], - [ - "▁k", - "ick" - ], - [ - "▁ki", - "ck" - ], - [ - "▁rad", - "ical" - ], - [ - "▁radi", - "cal" - ], - [ - "▁Pe", - "ace" - ], - [ - "▁stream", - "ing" - ], - [ - "▁stre", - "aming" - ], - [ - "ca", - "mp" - ], - [ - "cam", - "p" - ], - [ - "c", - "amp" - ], - [ - "zą", - "t" - ], - [ - "го", - "вор" - ], - [ - "гов", - "ор" - ], - [ - "гово", - "р" - ], - [ - "▁Reg", - "ierung" - ], - [ - "▁proceed", - "ed" - ], - [ - "f", - "m" - ], - [ - "ле", - "ны" - ], - [ - "лен", - "ы" - ], - [ - "▁ear", - "nest" - ], - [ - "▁Par", - "ad" - ], - [ - "▁Pa", - "rad" - ], - [ - "▁Para", - "d" - ], - [ - "request", - "s" - ], - [ - "▁R", - "aum" - ], - [ - "▁Ra", - "um" - ], - [ - "š", - "č" - ], - [ - "▁polic", - "ies" - ], - [ - "▁T", - "ig" - ], - [ - "▁Ti", - "g" - ], - [ - "▁s", - "itt" - ], - [ - "▁si", - "tt" - ], - [ - "▁sit", - "t" - ], - [ - "▁Ener", - "gy" - ], - [ - "▁pur", - "ely" - ], - [ - "▁pure", - "ly" - ], - [ - "▁H", - "aut" - ], - [ - "▁Ha", - "ut" - ], - [ - "▁Sp", - "eed" - ], - [ - "▁Spe", - "ed" - ], - [ - "▁", - "Speed" - ], - [ - "bi", - "o" - ], - [ - "b", - "io" - ], - [ - "▁o", - "range" - ], - [ - "▁or", - "ange" - ], - [ - "▁big", - "gest" - ], - [ - "▁britann", - "ique" - ], - [ - "▁No", - "table" - ], - [ - "▁Not", - "able" - ], - [ - "v", - "u" - ], - [ - "ле", - "нии" - ], - [ - "би", - "н" - ], - [ - "б", - "ин" - ], - [ - "▁N", - "ash" - ], - [ - "▁Na", - "sh" - ], - [ - "▁Nas", - "h" - ], - [ - "ще", - "ние" - ], - [ - "▁c", - "iel" - ], - [ - "▁ci", - "el" - ], - [ - "adém", - "ie" - ], - [ - "▁гру", - "дня" - ], - [ - "▁jo", - "ue" - ], - [ - "▁jou", - "e" - ], - [ - "▁v", - "oted" - ], - [ - "▁vo", - "ted" - ], - [ - "▁vot", - "ed" - ], - [ - "▁vote", - "d" - ], - [ - "ri", - "co" - ], - [ - "ric", - "o" - ], - [ - "r", - "ico" - ], - [ - "▁го", - "р" - ], - [ - "▁г", - "ор" - ], - [ - "▁", - "гор" - ], - [ - "▁коман", - "ду" - ], - [ - "it", - "ivity" - ], - [ - "iti", - "vity" - ], - [ - "▁щ", - "е" - ], - [ - "▁", - "ще" - ], - [ - "▁de", - "finite" - ], - [ - "▁defin", - "ite" - ], - [ - "▁definit", - "e" - ], - [ - "uro", - "pa" - ], - [ - "urop", - "a" - ], - [ - "!\"", - ");" - ], - [ - "!", - "\");" - ], - [ - "Default", - "s" - ], - [ - "▁неко", - "торы" - ], - [ - "éd", - "ération" - ], - [ - "▁s", - "illy" - ], - [ - "▁sil", - "ly" - ], - [ - "▁talk", - "ed" - ], - [ - "▁tal", - "ked" - ], - [ - "re", - "u" - ], - [ - "r", - "eu" - ], - [ - "▁L", - "omb" - ], - [ - "▁Lo", - "mb" - ], - [ - "▁stat", - "ue" - ], - [ - "кт", - "а" - ], - [ - "к", - "та" - ], - [ - "ю", - "р" - ], - [ - "um", - "ably" - ], - [ - "▁горо", - "де" - ], - [ - "▁город", - "е" - ], - [ - "▁R", - "untime" - ], - [ - "▁Run", - "time" - ], - [ - "▁", - "Runtime" - ], - [ - "▁di", - "agn" - ], - [ - "▁diag", - "n" - ], - [ - "▁dia", - "gn" - ], - [ - "▁r", - "etro" - ], - [ - "▁ret", - "ro" - ], - [ - "▁retr", - "o" - ], - [ - "▁Sver", - "ige" - ], - [ - "▁in", - "icial" - ], - [ - "▁inici", - "al" - ], - [ - "ien", - "za" - ], - [ - "i", - "enza" - ], - [ - "▁fig", - "lio" - ], - [ - "▁z", - "og" - ], - [ - "▁zo", - "g" - ], - [ - "▁re", - "y" - ], - [ - "▁r", - "ey" - ], - [ - "▁", - "rey" - ], - [ - "▁R", - "und" - ], - [ - "▁Run", - "d" - ], - [ - "▁Ru", - "nd" - ], - [ - "т", - "ный" - ], - [ - "▁ce", - "ased" - ], - [ - "er", - "no" - ], - [ - "ern", - "o" - ], - [ - "▁e", - "sa" - ], - [ - "▁es", - "a" - ], - [ - "▁", - "esa" - ], - [ - "▁tr", - "ouv" - ], - [ - "▁tro", - "uv" - ], - [ - "▁trou", - "v" - ], - [ - "▁Gemeinde", - "n" - ], - [ - "▁Geme", - "inden" - ], - [ - "▁comer", - "cial" - ], - [ - "sk", - "ap" - ], - [ - "ska", - "p" - ], - [ - "s", - "kap" - ], - [ - "en", - "ario" - ], - [ - "ena", - "rio" - ], - [ - "▁ju", - "ris" - ], - [ - "▁jur", - "is" - ], - [ - "T", - "B" - ], - [ - "на", - "ла" - ], - [ - "нал", - "а" - ], - [ - "н", - "ала" - ], - [ - "▁v", - "ij" - ], - [ - "▁vi", - "j" - ], - [ - "V", - "O" - ], - [ - "▁c", - "lin" - ], - [ - "▁cl", - "in" - ], - [ - "▁cli", - "n" - ], - [ - "jö", - "r" - ], - [ - "j", - "ör" - ], - [ - "са", - "н" - ], - [ - "с", - "ан" - ], - [ - "ow", - "ała" - ], - [ - "owa", - "ła" - ], - [ - "ował", - "a" - ], - [ - "rib", - "ución" - ], - [ - "ribu", - "ción" - ], - [ - "▁urs", - "prüng" - ], - [ - "▁con", - "dem" - ], - [ - "▁cond", - "em" - ], - [ - "▁St", - "age" - ], - [ - "▁Sta", - "ge" - ], - [ - "▁", - "Stage" - ], - [ - "▁mix", - "ing" - ], - [ - "▁рі", - "з" - ], - [ - "▁f", - "ans" - ], - [ - "▁fa", - "ns" - ], - [ - "▁fan", - "s" - ], - [ - "há", - "z" - ], - [ - "h", - "áz" - ], - [ - "so", - "cial" - ], - [ - "soci", - "al" - ], - [ - "za", - "n" - ], - [ - "z", - "an" - ], - [ - "▁с", - "вой" - ], - [ - "▁сво", - "й" - ], - [ - "Cook", - "ie" - ], - [ - "▁Ro", - "land" - ], - [ - "▁Rol", - "and" - ], - [ - "az", - "ionale" - ], - [ - "▁Sl", - "oven" - ], - [ - "▁Slo", - "ven" - ], - [ - "▁Slov", - "en" - ], - [ - "▁F", - "iche" - ], - [ - "▁Fich", - "e" - ], - [ - "▁S", - "é" - ], - [ - "h", - "ä" - ], - [ - "▁official", - "s" - ], - [ - "▁offici", - "als" - ], - [ - "▁î", - "nt" - ], - [ - "▁în", - "t" - ], - [ - "Inter", - "ceptor" - ], - [ - "Table", - "s" - ], - [ - "Tab", - "les" - ], - [ - "T", - "ables" - ], - [ - "▁da", - "von" - ], - [ - "▁dav", - "on" - ], - [ - "init", - "ialize" - ], - [ - "initial", - "ize" - ], - [ - "]=", - "\"" - ], - [ - "]", - "=\"" - ], - [ - "▁B", - "ody" - ], - [ - "▁Bo", - "dy" - ], - [ - "▁Bod", - "y" - ], - [ - "▁", - "Body" - ], - [ - "▁U", - "pper" - ], - [ - "▁Up", - "per" - ], - [ - "▁", - "Upper" - ], - [ - "▁Col", - "lect" - ], - [ - "▁Coll", - "ect" - ], - [ - "▁", - "Collect" - ], - [ - "▁Zür", - "ich" - ], - [ - "Hor", - "izontal" - ], - [ - "Ty", - "p" - ], - [ - "T", - "yp" - ], - [ - "▁polít", - "ico" - ], - [ - "▁Rewrite", - "Cond" - ], - [ - "▁h", - "oped" - ], - [ - "▁hope", - "d" - ], - [ - "▁ho", - "ped" - ], - [ - "▁hop", - "ed" - ], - [ - "▁anx", - "ious" - ], - [ - "Li", - "ter" - ], - [ - "L", - "iter" - ], - [ - "ja", - "hr" - ], - [ - "j", - "ahr" - ], - [ - "▁ass", - "emble" - ], - [ - "▁assemb", - "le" - ], - [ - "▁c", - "rypt" - ], - [ - "▁cry", - "pt" - ], - [ - "lah", - "oma" - ], - [ - "AS", - "H" - ], - [ - "A", - "SH" - ], - [ - "▁Б", - "ри" - ], - [ - "▁C", - "ic" - ], - [ - "▁Ci", - "c" - ], - [ - "tw", - "itter" - ], - [ - "hy", - "per" - ], - [ - "▁T", - "ell" - ], - [ - "▁Te", - "ll" - ], - [ - "▁Tel", - "l" - ], - [ - "іль", - "ки" - ], - [ - "во", - "бо" - ], - [ - "▁ba", - "zie" - ], - [ - "▁baz", - "ie" - ], - [ - "▁contempor", - "ary" - ], - [ - "▁Param", - "eter" - ], - [ - "▁Para", - "meter" - ], - [ - "▁", - "Parameter" - ], - [ - "st", - "wa" - ], - [ - "▁bek", - "end" - ], - [ - "co", - "ck" - ], - [ - "c", - "ock" - ], - [ - "pre", - "vious" - ], - [ - "prev", - "ious" - ], - [ - "en", - "ska" - ], - [ - "ens", - "ka" - ], - [ - "ensk", - "a" - ], - [ - "▁c", - "aller" - ], - [ - "▁cal", - "ler" - ], - [ - "▁call", - "er" - ], - [ - "]]", - ")" - ], - [ - "]", - "])" - ], - [ - "▁R", - "az" - ], - [ - "▁Ra", - "z" - ], - [ - "▁Se", - "lon" - ], - [ - "▁Sel", - "on" - ], - [ - "▁propos", - "al" - ], - [ - "▁b", - "ý" - ], - [ - "▁S", - "ied" - ], - [ - "▁Sie", - "d" - ], - [ - "▁Si", - "ed" - ], - [ - "▁Arbe", - "its" - ], - [ - "▁Arbeit", - "s" - ], - [ - "▁p", - "ride" - ], - [ - "▁pr", - "ide" - ], - [ - "▁pri", - "de" - ], - [ - "▁sl", - "ope" - ], - [ - "▁slo", - "pe" - ], - [ - "id", - "é" - ], - [ - "grad", - "ient" - ], - [ - "▁Дже", - "рела" - ], - [ - "▁S", - "H" - ], - [ - "▁", - "SH" - ], - [ - "▁раз", - "рабо" - ], - [ - "ivers", - "ity" - ], - [ - "спо", - "дар" - ], - [ - "\\{", - "\\" - ], - [ - "\\", - "{\\" - ], - [ - "▁с", - "тали" - ], - [ - "▁ст", - "али" - ], - [ - "▁ста", - "ли" - ], - [ - "▁стал", - "и" - ], - [ - "▁Ein", - "zel" - ], - [ - "▁Einz", - "el" - ], - [ - "▁rg", - "ba" - ], - [ - "▁A", - "nim" - ], - [ - "▁An", - "im" - ], - [ - "▁", - "Anim" - ], - [ - "▁a", - "lles" - ], - [ - "▁al", - "les" - ], - [ - "▁all", - "es" - ], - [ - "▁alle", - "s" - ], - [ - "▁", - "alles" - ], - [ - "ба", - "р" - ], - [ - "б", - "ар" - ], - [ - "er", - "te" - ], - [ - "ert", - "e" - ], - [ - "▁réalis", - "é" - ], - [ - "▁réal", - "isé" - ], - [ - "Inst", - "itut" - ], - [ - "▁mar", - "kup" - ], - [ - "▁mark", - "up" - ], - [ - "▁v", - "ars" - ], - [ - "▁var", - "s" - ], - [ - "▁va", - "rs" - ], - [ - "▁", - "vars" - ], - [ - "▁g", - "am" - ], - [ - "▁ga", - "m" - ], - [ - "▁Васи", - "ль" - ], - [ - "iz", - "za" - ], - [ - "izz", - "a" - ], - [ - "i", - "zza" - ], - [ - "▁C", - "ob" - ], - [ - "▁Co", - "b" - ], - [ - "▁M", - "etal" - ], - [ - "▁Me", - "tal" - ], - [ - "▁Met", - "al" - ], - [ - "▁Meta", - "l" - ], - [ - "▁le", - "ak" - ], - [ - "▁L", - "anc" - ], - [ - "▁La", - "nc" - ], - [ - "▁Lan", - "c" - ], - [ - "Sw", - "itch" - ], - [ - "De", - "lay" - ], - [ - "Del", - "ay" - ], - [ - "at", - "uur" - ], - [ - "atu", - "ur" - ], - [ - "▁че", - "ты" - ], - [ - "▁анг", - "лий" - ], - [ - "▁leg", - "acy" - ], - [ - "▁desar", - "roll" - ], - [ - "▁top", - "ological" - ], - [ - "▁jewe", - "ils" - ], - [ - "▁Nederland", - "se" - ], - [ - "▁atmos", - "phere" - ], - [ - "ur", - "ban" - ], - [ - "urb", - "an" - ], - [ - "▁s", - "lov" - ], - [ - "▁sl", - "ov" - ], - [ - "▁slo", - "v" - ], - [ - "▁law", - "yer" - ], - [ - "pe", - "cially" - ], - [ - "▁altern", - "ate" - ], - [ - "▁para", - "met" - ], - [ - "▁param", - "et" - ], - [ - "▁establish", - "ment" - ], - [ - "▁wood", - "s" - ], - [ - "▁wo", - "ods" - ], - [ - "P", - "D" - ], - [ - "▁на", - "и" - ], - [ - "▁m", - "ang" - ], - [ - "▁ma", - "ng" - ], - [ - "▁man", - "g" - ], - [ - "▁wechsel", - "te" - ], - [ - "сь", - "ку" - ], - [ - "ськ", - "у" - ], - [ - ".", - "=" - ], - [ - "▁fif", - "teen" - ], - [ - "SU", - "M" - ], - [ - "S", - "UM" - ], - [ - "▁F", - "ro" - ], - [ - "▁Fr", - "o" - ], - [ - "▁L", - "ED" - ], - [ - "▁LE", - "D" - ], - [ - "▁", - "LED" - ], - [ - "ow", - "ano" - ], - [ - "owa", - "no" - ], - [ - "owan", - "o" - ], - [ - "стви", - "е" - ], - [ - "▁D", - "onnées" - ], - [ - "to", - "l" - ], - [ - "t", - "ol" - ], - [ - "ży", - "n" - ], - [ - "ż", - "yn" - ], - [ - "cre", - "f" - ], - [ - "cr", - "ef" - ], - [ - "c", - "ref" - ], - [ - "стви", - "и" - ], - [ - "ho", - "rn" - ], - [ - "hor", - "n" - ], - [ - "h", - "orn" - ], - [ - "▁со", - "об" - ], - [ - "▁обо", - "ро" - ], - [ - "▁Comp", - "lete" - ], - [ - "▁Comple", - "te" - ], - [ - "▁", - "Complete" - ], - [ - "“", - ")" - ], - [ - "▁kind", - "ly" - ], - [ - "▁Cham", - "ber" - ], - [ - "s", - "ég" - ], - [ - "W", - "H" - ], - [ - "▁amb", - "ient" - ], - [ - "к", - "ро" - ], - [ - "▁ch", - "eval" - ], - [ - "▁che", - "val" - ], - [ - "▁на", - "писа" - ], - [ - "fl", - "u" - ], - [ - "f", - "lu" - ], - [ - "▁Off", - "iz" - ], - [ - "ma", - "te" - ], - [ - "mat", - "e" - ], - [ - "m", - "ate" - ], - [ - "nat", - "ural" - ], - [ - "n", - "atural" - ], - [ - "se", - "par" - ], - [ - "sep", - "ar" - ], - [ - "em", - "pre" - ], - [ - "emp", - "re" - ], - [ - "View", - "Holder" - ], - [ - "f", - "w" - ], - [ - "▁le", - "tech" - ], - [ - "▁let", - "ech" - ], - [ - "▁tra", - "iling" - ], - [ - "▁trail", - "ing" - ], - [ - "at", - "ri" - ], - [ - "atr", - "i" - ], - [ - "a", - "tri" - ], - [ - "▁G", - "ó" - ], - [ - "▁B", - "onn" - ], - [ - "▁Bo", - "nn" - ], - [ - "▁Bon", - "n" - ], - [ - "▁un", - "likely" - ], - [ - "▁unlike", - "ly" - ], - [ - "RA", - "M" - ], - [ - "R", - "AM" - ], - [ - "en", - "st" - ], - [ - "ens", - "t" - ], - [ - "St", - "ats" - ], - [ - "Stat", - "s" - ], - [ - "▁поли", - "тиче" - ], - [ - ")-", - "-(" - ], - [ - ")--", - "(" - ], - [ - "▁t", - "rom" - ], - [ - "▁tr", - "om" - ], - [ - "▁tro", - "m" - ], - [ - "!.", - ".." - ], - [ - "!", - "..." - ], - [ - "▁Mean", - "while" - ], - [ - "ст", - "ана" - ], - [ - "ста", - "на" - ], - [ - "стан", - "а" - ], - [ - "▁Re", - "ino" - ], - [ - "▁Rein", - "o" - ], - [ - "▁A", - "rist" - ], - [ - "▁Ar", - "ist" - ], - [ - "▁Ari", - "st" - ], - [ - "$}", - "}%" - ], - [ - "$", - "}}%" - ], - [ - "▁so", - "lem" - ], - [ - "▁sol", - "em" - ], - [ - "▁sole", - "m" - ], - [ - "clos", - "ure" - ], - [ - "ign", - "ation" - ], - [ - "ło", - "d" - ], - [ - "ł", - "od" - ], - [ - "▁di", - "vor" - ], - [ - "▁div", - "or" - ], - [ - "▁между", - "народ" - ], - [ - "=\"", - "" - ], - [ - "▁==", - ">" - ], - [ - "Ori", - "entation" - ], - [ - "ci", - "d" - ], - [ - "c", - "id" - ], - [ - "Car", - "t" - ], - [ - "Ca", - "rt" - ], - [ - "C", - "art" - ], - [ - "▁m", - "urm" - ], - [ - "▁mu", - "rm" - ], - [ - "▁mur", - "m" - ], - [ - "▁ass", - "ez" - ], - [ - "▁asse", - "z" - ], - [ - "▁l", - "inking" - ], - [ - "▁link", - "ing" - ], - [ - "▁lin", - "king" - ], - [ - "build", - "ing" - ], - [ - "▁rec", - "onna" - ], - [ - "▁recon", - "na" - ], - [ - "▁s", - "hook" - ], - [ - "▁sh", - "ook" - ], - [ - "▁sho", - "ok" - ], - [ - "man", - "aged" - ], - [ - "mana", - "ged" - ], - [ - "land", - "a" - ], - [ - "lan", - "da" - ], - [ - "l", - "anda" - ], - [ - "▁Le", - "ón" - ], - [ - "▁cré", - "ation" - ], - [ - "до", - "й" - ], - [ - "oc", - "ity" - ], - [ - "oci", - "ty" - ], - [ - "o", - "city" - ], - [ - "▁w", - "ij" - ], - [ - "▁", - "wij" - ], - [ - "▁wie", - "ś" - ], - [ - "xt", - "art" - ], - [ - "▁M", - "ove" - ], - [ - "▁Mo", - "ve" - ], - [ - "▁Mov", - "e" - ], - [ - "▁", - "Move" - ], - [ - "lung", - "en" - ], - [ - "l", - "ungen" - ], - [ - "ству", - "ет" - ], - [ - "or", - "ney" - ], - [ - "orn", - "ey" - ], - [ - "option", - "al" - ], - [ - "opt", - "ional" - ], - [ - "ma", - "cro" - ], - [ - "mac", - "ro" - ], - [ - "Cond", - "ition" - ], - [ - "▁square", - "s" - ], - [ - "▁squ", - "ares" - ], - [ - "▁mist", - "aken" - ], - [ - "▁mistake", - "n" - ], - [ - "án", - "t" - ], - [ - "á", - "nt" - ], - [ - "▁R", - "is" - ], - [ - "▁Ri", - "s" - ], - [ - "▁sent", - "ences" - ], - [ - "▁sentence", - "s" - ], - [ - "er", - "ea" - ], - [ - "ere", - "a" - ], - [ - "e", - "rea" - ], - [ - "▁m", - "ij" - ], - [ - "▁mi", - "j" - ], - [ - "Un", - "d" - ], - [ - "U", - "nd" - ], - [ - "▁nom", - "br" - ], - [ - "z", - "A" - ], - [ - "▁In", - "dependent" - ], - [ - "▁Indep", - "endent" - ], - [ - "▁Independ", - "ent" - ], - [ - "▁p", - "review" - ], - [ - "▁pre", - "view" - ], - [ - "▁prev", - "iew" - ], - [ - "▁", - "preview" - ], - [ - "im", - "as" - ], - [ - "ima", - "s" - ], - [ - "i", - "mas" - ], - [ - "▁m", - "ales" - ], - [ - "▁ma", - "les" - ], - [ - "▁mal", - "es" - ], - [ - "▁male", - "s" - ], - [ - "in", - "ental" - ], - [ - "inen", - "tal" - ], - [ - "inent", - "al" - ], - [ - "Th", - "ank" - ], - [ - "▁p", - "opol" - ], - [ - "▁po", - "pol" - ], - [ - "▁pop", - "ol" - ], - [ - "▁p", - "over" - ], - [ - "▁po", - "ver" - ], - [ - "▁pov", - "er" - ], - [ - "▁gr", - "asp" - ], - [ - "▁gra", - "sp" - ], - [ - "▁im", - "ped" - ], - [ - "▁imp", - "ed" - ], - [ - "▁campion", - "ato" - ], - [ - "▁W", - "ei" - ], - [ - "▁We", - "i" - ], - [ - "▁t", - "itled" - ], - [ - "▁title", - "d" - ], - [ - "▁tit", - "led" - ], - [ - "▁A", - "demás" - ], - [ - "▁Pass", - "word" - ], - [ - "▁", - "Password" - ], - [ - "▁P", - "am" - ], - [ - "▁Pa", - "m" - ], - [ - "UI", - "LD" - ], - [ - "▁ли", - "пня" - ], - [ - "wer", - "b" - ], - [ - "we", - "rb" - ], - [ - "w", - "erb" - ], - [ - "........", - "........" - ], - [ - "▁R", - "ío" - ], - [ - "▁te", - "eth" - ], - [ - "b", - "p" - ], - [ - "▁S", - "W" - ], - [ - "▁", - "SW" - ], - [ - "ul", - "aire" - ], - [ - "ula", - "ire" - ], - [ - "▁se", - "ized" - ], - [ - "▁sei", - "zed" - ], - [ - "▁St", - "ef" - ], - [ - "▁Ste", - "f" - ], - [ - "ú", - "l" - ], - [ - "▁v", - "iz" - ], - [ - "▁vi", - "z" - ], - [ - "ion", - "y" - ], - [ - "io", - "ny" - ], - [ - "i", - "ony" - ], - [ - "▁j", - "unt" - ], - [ - "▁ju", - "nt" - ], - [ - "▁jun", - "t" - ], - [ - "▁kter", - "á" - ], - [ - "▁wrześ", - "nia" - ], - [ - "<", - ">" - ], - [ - "▁s", - "urg" - ], - [ - "▁su", - "rg" - ], - [ - "▁sur", - "g" - ], - [ - "▁tu", - "tte" - ], - [ - "▁tut", - "te" - ], - [ - "▁H", - "ob" - ], - [ - "▁Ho", - "b" - ], - [ - "по", - "від" - ], - [ - "пов", - "ід" - ], - [ - "▁w", - "ohl" - ], - [ - "▁wo", - "hl" - ], - [ - "▁", - "wohl" - ], - [ - "▁t", - "rag" - ], - [ - "▁tr", - "ag" - ], - [ - "▁tra", - "g" - ], - [ - "▁C", - "rown" - ], - [ - "▁Cr", - "own" - ], - [ - "▁Cro", - "wn" - ], - [ - "▁Crow", - "n" - ], - [ - "▁tr", - "ova" - ], - [ - "▁tro", - "va" - ], - [ - "▁trov", - "a" - ], - [ - "сто", - "ву" - ], - [ - "стов", - "у" - ], - [ - "▁Vien", - "na" - ], - [ - "ese", - "hen" - ], - [ - "▁met", - "ropol" - ], - [ - "▁reflect", - "ed" - ], - [ - "те", - "та" - ], - [ - "тет", - "а" - ], - [ - "т", - "ета" - ], - [ - "▁trad", - "uc" - ], - [ - "▁tradu", - "c" - ], - [ - "▁B", - "ast" - ], - [ - "▁Bas", - "t" - ], - [ - "▁Ba", - "st" - ], - [ - "▁ersch", - "ien" - ], - [ - "wo", - "ord" - ], - [ - "()", - "\"" - ], - [ - "(", - ")\"" - ], - [ - "ta", - "let" - ], - [ - "tal", - "et" - ], - [ - "t", - "alet" - ], - [ - "▁ro", - "ads" - ], - [ - "▁road", - "s" - ], - [ - "ве", - "дения" - ], - [ - "веде", - "ния" - ], - [ - "ühr", - "ung" - ], - [ - "▁c", - "ogn" - ], - [ - "▁co", - "gn" - ], - [ - "▁V", - "alle" - ], - [ - "▁Val", - "le" - ], - [ - "▁Va", - "lle" - ], - [ - "▁Vall", - "e" - ], - [ - "▁land", - "ing" - ], - [ - "▁lan", - "ding" - ], - [ - "▁Re", - "gex" - ], - [ - "▁Reg", - "ex" - ], - [ - "▁I", - "owa" - ], - [ - "▁Io", - "wa" - ], - [ - "dz", - "iał" - ], - [ - "d", - "ział" - ], - [ - "▁erre", - "ichte" - ], - [ - "au", - "m" - ], - [ - "a", - "um" - ], - [ - "▁found", - "er" - ], - [ - "▁fo", - "under" - ], - [ - "▁fou", - "nder" - ], - [ - "ap", - "olis" - ], - [ - "Comp", - "iler" - ], - [ - "▁k", - "op" - ], - [ - "▁ko", - "p" - ], - [ - "▁", - "kop" - ], - [ - "▁m", - "arc" - ], - [ - "▁ma", - "rc" - ], - [ - "▁mar", - "c" - ], - [ - "▁те", - "ритор" - ], - [ - "))", - "`" - ], - [ - ")", - ")`" - ], - [ - "▁l", - "ei" - ], - [ - "▁le", - "i" - ], - [ - "▁", - "lei" - ], - [ - "ge", - "on" - ], - [ - "geo", - "n" - ], - [ - "▁weap", - "ons" - ], - [ - "▁weapon", - "s" - ], - [ - "▁h", - "orn" - ], - [ - "▁hor", - "n" - ], - [ - "▁ho", - "rn" - ], - [ - "▁", - "horn" - ], - [ - "▁el", - "if" - ], - [ - "▁", - "elif" - ], - [ - "▁Cap", - "ital" - ], - [ - "▁Capit", - "al" - ], - [ - "ć", - "e" - ], - [ - "▁for", - "all" - ], - [ - "▁", - "forall" - ], - [ - "▁э", - "та" - ], - [ - "pre", - "view" - ], - [ - "prev", - "iew" - ], - [ - "p", - "review" - ], - [ - "▁D", - "NA" - ], - [ - "▁s", - "id" - ], - [ - "▁si", - "d" - ], - [ - "or", - "ch" - ], - [ - "▁R", - "as" - ], - [ - "▁Ra", - "s" - ], - [ - "▁a", - "rab" - ], - [ - "▁ar", - "ab" - ], - [ - "▁ara", - "b" - ], - [ - "▁", - "arab" - ], - [ - "Be", - "st" - ], - [ - "B", - "est" - ], - [ - "▁с", - "чита" - ], - [ - "▁L", - "ópez" - ], - [ - "an", - "ça" - ], - [ - "▁fun", - "kc" - ], - [ - "▁t", - "ienen" - ], - [ - "▁tiene", - "n" - ], - [ - "▁ti", - "enen" - ], - [ - "▁tie", - "nen" - ], - [ - ";", - "&" - ], - [ - "m", - "useum" - ], - [ - "▁E", - "rr" - ], - [ - "▁Er", - "r" - ], - [ - "▁", - "Err" - ], - [ - "▁re", - "sort" - ], - [ - "▁res", - "ort" - ], - [ - "No", - "v" - ], - [ - "N", - "ov" - ], - [ - "▁k", - "al" - ], - [ - "▁ka", - "l" - ], - [ - "▁", - "kal" - ], - [ - "M", - "W" - ], - [ - "ш", - "ь" - ], - [ - "an", - "chor" - ], - [ - "anc", - "hor" - ], - [ - "anch", - "or" - ], - [ - "▁ро", - "ман" - ], - [ - "le", - "ading" - ], - [ - "lea", - "ding" - ], - [ - "▁m", - "anten" - ], - [ - "▁ma", - "nten" - ], - [ - "▁man", - "ten" - ], - [ - "▁mant", - "en" - ], - [ - "▁Sil", - "va" - ], - [ - "da", - "de" - ], - [ - "d", - "ade" - ], - [ - "▁design", - "ated" - ], - [ - "▁rev", - "ista" - ], - [ - "▁revis", - "ta" - ], - [ - "O", - "ct" - ], - [ - "per", - "cent" - ], - [ - "▁у", - "ні" - ], - [ - "ident", - "ifier" - ], - [ - "ma", - "ss" - ], - [ - "mas", - "s" - ], - [ - "m", - "ass" - ], - [ - "@", - "@" - ], - [ - "uls", - "ion" - ], - [ - "ger", - "meister" - ], - [ - "g", - "ermeister" - ], - [ - "▁pred", - "icted" - ], - [ - "▁predict", - "ed" - ], - [ - "▁с", - "ви" - ], - [ - "жно", - "й" - ], - [ - "ж", - "ной" - ], - [ - "▁Er", - "geb" - ], - [ - "▁c", - "ust" - ], - [ - "▁cu", - "st" - ], - [ - "▁remove", - "s" - ], - [ - "▁remov", - "es" - ], - [ - "ch", - "arg" - ], - [ - "char", - "g" - ], - [ - "cha", - "rg" - ], - [ - "при", - "мер" - ], - [ - "▁for", - "ming" - ], - [ - "▁form", - "ing" - ], - [ - "as", - "ma" - ], - [ - "asm", - "a" - ], - [ - "std", - "out" - ], - [ - "F", - "un" - ], - [ - "ym", - "e" - ], - [ - "y", - "me" - ], - [ - "ter", - "ed" - ], - [ - "te", - "red" - ], - [ - "tere", - "d" - ], - [ - "t", - "ered" - ], - [ - "urs", - "ive" - ], - [ - "ig", - "hed" - ], - [ - "igh", - "ed" - ], - [ - "▁сле", - "д" - ], - [ - "▁", - "след" - ], - [ - "ver", - "band" - ], - [ - "verb", - "and" - ], - [ - "▁LO", - "G" - ], - [ - "▁", - "LOG" - ], - [ - "ra", - "ms" - ], - [ - "ram", - "s" - ], - [ - "r", - "ams" - ], - [ - "éo", - "n" - ], - [ - "é", - "on" - ], - [ - "en", - "dra" - ], - [ - "end", - "ra" - ], - [ - "▁Be", - "reich" - ], - [ - "▁Bere", - "ich" - ], - [ - "▁tempor", - "al" - ], - [ - "▁temp", - "oral" - ], - [ - "▁tempo", - "ral" - ], - [ - "▁lang", - "ue" - ], - [ - "▁lan", - "gue" - ], - [ - "▁I", - "nn" - ], - [ - "▁In", - "n" - ], - [ - "▁more", - "over" - ], - [ - "▁tutorial", - "s" - ], - [ - "M", - "iddle" - ], - [ - "▁совет", - "ский" - ], - [ - "▁mainten", - "ance" - ], - [ - "as", - "ures" - ], - [ - "asure", - "s" - ], - [ - "▁vál", - "to" - ], - [ - "BA", - "SE" - ], - [ - "B", - "ASE" - ], - [ - "▁disapp", - "ear" - ], - [ - "ски", - "я" - ], - [ - "▁conoc", - "ido" - ], - [ - "▁На", - "у" - ], - [ - "▁Li", - "bert" - ], - [ - "▁Lib", - "ert" - ], - [ - "▁Liber", - "t" - ], - [ - "▁Har", - "old" - ], - [ - "▁life", - "time" - ], - [ - "▁lif", - "etime" - ], - [ - "▁T", - "ür" - ], - [ - "▁za", - "wod" - ], - [ - "▁zaw", - "od" - ], - [ - "om", - "ic" - ], - [ - "omi", - "c" - ], - [ - "o", - "mic" - ], - [ - "▁Retrie", - "ved" - ], - [ - "arch", - "itecture" - ], - [ - "č", - "ka" - ], - [ - "iform", - "es" - ], - [ - "develop", - "ment" - ], - [ - "ord", - "nung" - ], - [ - "In", - "f" - ], - [ - "le", - "ben" - ], - [ - "leb", - "en" - ], - [ - "l", - "eben" - ], - [ - "▁St", - "ars" - ], - [ - "▁Sta", - "rs" - ], - [ - "▁Star", - "s" - ], - [ - "sign", - "al" - ], - [ - "sig", - "nal" - ], - [ - "▁gram", - "mar" - ], - [ - "▁cor", - "so" - ], - [ - "▁cors", - "o" - ], - [ - "▁W", - "agner" - ], - [ - "▁ge", - "ht" - ], - [ - "▁royal", - "e" - ], - [ - "▁roy", - "ale" - ], - [ - "wa", - "rn" - ], - [ - "war", - "n" - ], - [ - "w", - "arn" - ], - [ - "um", - "bled" - ], - [ - "umb", - "led" - ], - [ - "umble", - "d" - ], - [ - "▁inst", - "it" - ], - [ - "▁ins", - "tit" - ], - [ - "▁Ш", - "и" - ], - [ - "h", - "h" - ], - [ - "▁ref", - "uge" - ], - [ - "▁favor", - "ite" - ], - [ - "ier", - "to" - ], - [ - "iert", - "o" - ], - [ - "▁cond", - "ado" - ], - [ - "▁T", - "her" - ], - [ - "▁The", - "r" - ], - [ - "▁Th", - "er" - ], - [ - "▁человек", - "а" - ], - [ - "▁челове", - "ка" - ], - [ - "▁F", - "ood" - ], - [ - "▁Foo", - "d" - ], - [ - "▁Fo", - "od" - ], - [ - "▁se", - "izo" - ], - [ - "▁sei", - "zo" - ], - [ - "▁Init", - "ialize" - ], - [ - "▁Initial", - "ize" - ], - [ - "▁con", - "nu" - ], - [ - "▁conn", - "u" - ], - [ - "▁over", - "lap" - ], - [ - "▁E", - "mil" - ], - [ - "▁Em", - "il" - ], - [ - "▁Mart", - "í" - ], - [ - "▁жовт", - "ня" - ], - [ - "er", - "va" - ], - [ - "erv", - "a" - ], - [ - "▁bo", - "ats" - ], - [ - "▁boat", - "s" - ], - [ - "a", - "ções" - ], - [ - "▁der", - "rot" - ], - [ - "▁m", - "alloc" - ], - [ - "▁mal", - "loc" - ], - [ - "▁", - "malloc" - ], - [ - "▁con", - "ject" - ], - [ - "▁conj", - "ect" - ], - [ - "j", - "k" - ], - [ - "▁s", - "are" - ], - [ - "▁sa", - "re" - ], - [ - "▁sar", - "e" - ], - [ - "ле", - "мен" - ], - [ - "лем", - "ен" - ], - [ - "▁s", - "ums" - ], - [ - "▁su", - "ms" - ], - [ - "▁sum", - "s" - ], - [ - "Author", - "ization" - ], - [ - "▁K", - "un" - ], - [ - "▁Ku", - "n" - ], - [ - "]$", - "," - ], - [ - "]", - "$," - ], - [ - "geme", - "inde" - ], - [ - "gemein", - "de" - ], - [ - "g", - "emeinde" - ], - [ - "od", - "ot" - ], - [ - "odo", - "t" - ], - [ - "o", - "dot" - ], - [ - "de", - "fin" - ], - [ - "def", - "in" - ], - [ - "▁e", - "mission" - ], - [ - "▁em", - "ission" - ], - [ - "▁Кра", - "с" - ], - [ - "▁app", - "art" - ], - [ - "▁ap", - "part" - ], - [ - "▁appar", - "t" - ], - [ - "▁stop", - "ping" - ], - [ - "▁sto", - "pping" - ], - [ - "▁С", - "ред" - ], - [ - "▁conj", - "ug" - ], - [ - "▁ins", - "ight" - ], - [ - "▁Broad", - "cast" - ], - [ - "▁PM", - "ID" - ], - [ - "▁adv", - "antages" - ], - [ - "▁advantage", - "s" - ], - [ - "en", - "es" - ], - [ - "ene", - "s" - ], - [ - "e", - "nes" - ], - [ - "▁res", - "idence" - ], - [ - "▁resid", - "ence" - ], - [ - "lj", - "en" - ], - [ - "l", - "jen" - ], - [ - "iss", - "eur" - ], - [ - "isse", - "ur" - ], - [ - "▁pubblic", - "ato" - ], - [ - "▁Git", - "Hub" - ], - [ - "▁Per", - "u" - ], - [ - "▁Pe", - "ru" - ], - [ - "▁galax", - "ies" - ], - [ - "▁annot", - "ations" - ], - [ - "▁annotation", - "s" - ], - [ - "ga", - "s" - ], - [ - "g", - "as" - ], - [ - "▁ré", - "pond" - ], - [ - "▁rép", - "ond" - ], - [ - "J", - "s" - ], - [ - "▁independent", - "ly" - ], - [ - "▁independ", - "ently" - ], - [ - "N", - "P" - ], - [ - "▁in", - "qu" - ], - [ - "▁gr", - "ounds" - ], - [ - "▁ground", - "s" - ], - [ - "Com", - "ponents" - ], - [ - "Component", - "s" - ], - [ - "▁a", - "nten" - ], - [ - "▁an", - "ten" - ], - [ - "▁ant", - "en" - ], - [ - "▁ante", - "n" - ], - [ - "▁", - "anten" - ], - [ - "▁в", - "з" - ], - [ - "▁h", - "os" - ], - [ - "▁ho", - "s" - ], - [ - "▁", - "hos" - ], - [ - "▁s", - "int" - ], - [ - "▁si", - "nt" - ], - [ - "▁sin", - "t" - ], - [ - "▁h", - "iding" - ], - [ - "▁hi", - "ding" - ], - [ - "▁hid", - "ing" - ], - [ - "▁wojew", - "ództ" - ], - [ - "Message", - "s" - ], - [ - "Mess", - "ages" - ], - [ - "▁по", - "каза" - ], - [ - "▁пока", - "за" - ], - [ - "==", - "=" - ], - [ - "=", - "==" - ], - [ - "▁Ab", - "stract" - ], - [ - "▁", - "Abstract" - ], - [ - "▁l", - "äng" - ], - [ - "▁län", - "g" - ], - [ - "▁lä", - "ng" - ], - [ - "▁Form", - "ula" - ], - [ - "da", - "wn" - ], - [ - "d", - "awn" - ], - [ - "▁design", - "s" - ], - [ - "Im", - "g" - ], - [ - "▁Portug", - "uese" - ], - [ - "▁incl", - "uy" - ], - [ - "▁inclu", - "y" - ], - [ - "avig", - "ator" - ], - [ - "▁Bro", - "thers" - ], - [ - "▁cont", - "inent" - ], - [ - "▁contin", - "ent" - ], - [ - "▁evident", - "ly" - ], - [ - "ra", - "ce" - ], - [ - "rac", - "e" - ], - [ - "r", - "ace" - ], - [ - "ць", - "кого" - ], - [ - "▁re", - "ck" - ], - [ - "▁rec", - "k" - ], - [ - "▁", - "reck" - ], - [ - "▁сер", - "пня" - ], - [ - "▁G", - "rey" - ], - [ - "▁Gr", - "ey" - ], - [ - "▁Gre", - "y" - ], - [ - "▁appe", - "al" - ], - [ - "▁un", - "like" - ], - [ - "▁power", - "shell" - ], - [ - "▁pow", - "ershell" - ], - [ - "▁powers", - "hell" - ], - [ - "▁r", - "acc" - ], - [ - "▁ra", - "cc" - ], - [ - "▁rac", - "c" - ], - [ - "fer", - "s" - ], - [ - "fe", - "rs" - ], - [ - "f", - "ers" - ], - [ - "▁bur", - "ning" - ], - [ - "▁burn", - "ing" - ], - [ - "fas", - "st" - ], - [ - "fass", - "t" - ], - [ - "inst", - "alled" - ], - [ - "install", - "ed" - ], - [ - "▁G", - "ive" - ], - [ - "▁Gi", - "ve" - ], - [ - "▁col", - "onial" - ], - [ - "▁colon", - "ial" - ], - [ - "▁", - "€" - ], - [ - "▁R", - "ö" - ], - [ - "▁ch", - "rist" - ], - [ - "▁chr", - "ist" - ], - [ - "ne", - "hm" - ], - [ - "neh", - "m" - ], - [ - "та", - "м" - ], - [ - "▁cor", - "po" - ], - [ - "▁con", - "virti" - ], - [ - "yt", - "er" - ], - [ - "y", - "ter" - ], - [ - "S", - "ym" - ], - [ - "▁Gree", - "ce" - ], - [ - "▁m", - "oth" - ], - [ - "▁mo", - "th" - ], - [ - "▁mot", - "h" - ], - [ - "▁Joh", - "an" - ], - [ - "▁Jo", - "han" - ], - [ - "▁mon", - "arch" - ], - [ - "▁Down", - "load" - ], - [ - "▁", - "Download" - ], - [ - "▁c", - "raft" - ], - [ - "▁cr", - "aft" - ], - [ - "▁cra", - "ft" - ], - [ - "▁", - "craft" - ], - [ - "u", - "ž" - ], - [ - "▁Lu", - "ke" - ], - [ - "▁suf", - "fix" - ], - [ - "▁suff", - "ix" - ], - [ - "\\", - "/" - ], - [ - "Ha", - "ve" - ], - [ - "H", - "ave" - ], - [ - "▁ка", - "рь" - ], - [ - "▁кар", - "ь" - ], - [ - "▁comfort", - "able" - ], - [ - "▁t", - "ips" - ], - [ - "▁tip", - "s" - ], - [ - "▁ti", - "ps" - ], - [ - "▁П", - "ісля" - ], - [ - "▁бро", - "ја" - ], - [ - "▁ин", - "форма" - ], - [ - "M", - "Q" - ], - [ - "бра", - "н" - ], - [ - "б", - "ран" - ], - [ - "▁t", - "x" - ], - [ - "▁", - "tx" - ], - [ - "▁sl", - "aves" - ], - [ - "▁sla", - "ves" - ], - [ - "▁slave", - "s" - ], - [ - "▁fire", - "wall" - ], - [ - "▁For", - "ces" - ], - [ - "▁Force", - "s" - ], - [ - "at", - "if" - ], - [ - "ati", - "f" - ], - [ - "▁Qu", - "ellen" - ], - [ - "▁thé", - "âtre" - ], - [ - "ль", - "ных" - ], - [ - "▁располо", - "жен" - ], - [ - "▁Det", - "ails" - ], - [ - "▁", - "Details" - ], - [ - "k", - "ą" - ], - [ - "▁long", - "itud" - ], - [ - "IN", - "ST" - ], - [ - "▁n", - "aval" - ], - [ - "▁na", - "val" - ], - [ - "▁nav", - "al" - ], - [ - "Fern", - "seh" - ], - [ - "es", - "sel" - ], - [ - "ess", - "el" - ], - [ - "esse", - "l" - ], - [ - "Gr", - "ad" - ], - [ - "G", - "rad" - ], - [ - "▁be", - "lang" - ], - [ - "▁bel", - "ang" - ], - [ - "▁a", - "ggi" - ], - [ - "▁ag", - "gi" - ], - [ - "▁", - "aggi" - ], - [ - "Zygote", - "Init" - ], - [ - "ł", - "ów" - ], - [ - "▁S", - "ug" - ], - [ - "▁Su", - "g" - ], - [ - "si", - "l" - ], - [ - "s", - "il" - ], - [ - "▁ex", - "terior" - ], - [ - "щ", - "і" - ], - [ - "OR", - "D" - ], - [ - "en", - "ser" - ], - [ - "ens", - "er" - ], - [ - "ense", - "r" - ], - [ - "▁rapid", - "e" - ], - [ - "▁rap", - "ide" - ], - [ - "▁тем", - "пера" - ], - [ - "in", - "cie" - ], - [ - "inci", - "e" - ], - [ - "inc", - "ie" - ], - [ - "S", - "i" - ], - [ - "av", - "am" - ], - [ - "ava", - "m" - ], - [ - "ar", - "ded" - ], - [ - "ard", - "ed" - ], - [ - "arde", - "d" - ], - [ - "▁Ad", - "ded" - ], - [ - "▁Add", - "ed" - ], - [ - "End", - "point" - ], - [ - "hard", - "t" - ], - [ - "har", - "dt" - ], - [ - "ст", - "ран" - ], - [ - "стра", - "н" - ], - [ - "стр", - "ан" - ], - [ - "▁est", - "ilo" - ], - [ - "▁H", - "az" - ], - [ - "▁Ha", - "z" - ], - [ - "▁mus", - "ste" - ], - [ - "▁muss", - "te" - ], - [ - "u", - "o" - ], - [ - "ii", - "i" - ], - [ - "i", - "ii" - ], - [ - "▁ř", - "í" - ], - [ - "▁", - "ří" - ], - [ - "an", - "zen" - ], - [ - "anz", - "en" - ], - [ - "anze", - "n" - ], - [ - "же", - "ний" - ], - [ - "ah", - "a" - ], - [ - "a", - "ha" - ], - [ - "ARN", - "ING" - ], - [ - "▁re", - "nov" - ], - [ - "▁ren", - "ov" - ], - [ - "▁div", - "ine" - ], - [ - "▁convin", - "ced" - ], - [ - "▁hum", - "ans" - ], - [ - "▁human", - "s" - ], - [ - "▁hu", - "mans" - ], - [ - "▁depart", - "ure" - ], - [ - "▁Med", - "iter" - ], - [ - "▁Medi", - "ter" - ], - [ - "q", - "a" - ], - [ - "▁poss", - "essed" - ], - [ - "▁possess", - "ed" - ], - [ - "▁цер", - "кви" - ], - [ - "gi", - "v" - ], - [ - "g", - "iv" - ], - [ - "▁сво", - "ї" - ], - [ - "▁Ort", - "ste" - ], - [ - "▁Orts", - "te" - ], - [ - "R", - "ich" - ], - [ - "pu", - "is" - ], - [ - "p", - "uis" - ], - [ - "in", - "crement" - ], - [ - "▁Hann", - "over" - ], - [ - "▁u", - "cz" - ], - [ - "Do", - "ne" - ], - [ - "Don", - "e" - ], - [ - "D", - "one" - ], - [ - "▁alg", - "uns" - ], - [ - "FI", - "X" - ], - [ - "F", - "IX" - ], - [ - "▁Her", - "itage" - ], - [ - "remove", - "Class" - ], - [ - "фе", - "р" - ], - [ - "ф", - "ер" - ], - [ - "▁a", - "bc" - ], - [ - "▁ab", - "c" - ], - [ - "▁", - "abc" - ], - [ - "D", - "r" - ], - [ - "▁се", - "мей" - ], - [ - "▁сем", - "ей" - ], - [ - "{", - ":" - ], - [ - "▁se", - "ule" - ], - [ - "▁seu", - "le" - ], - [ - "▁seul", - "e" - ], - [ - "zeich", - "nungen" - ], - [ - "zeichnung", - "en" - ], - [ - "ad", - "dy" - ], - [ - "add", - "y" - ], - [ - "▁Par", - "ís" - ], - [ - "üss", - "eld" - ], - [ - "▁re", - "ception" - ], - [ - "▁rece", - "ption" - ], - [ - "fo", - "lio" - ], - [ - "fol", - "io" - ], - [ - "ti", - "ny" - ], - [ - "t", - "iny" - ], - [ - "▁recens", - "ement" - ], - [ - "▁N", - "ur" - ], - [ - "▁Nu", - "r" - ], - [ - "▁k", - "ier" - ], - [ - "▁ki", - "er" - ], - [ - "▁g", - "mina" - ], - [ - "▁gmin", - "a" - ], - [ - "sta", - "at" - ], - [ - "ánd", - "ose" - ], - [ - "че", - "ская" - ], - [ - "▁spe", - "aker" - ], - [ - "▁speak", - "er" - ], - [ - "▁expon", - "ential" - ], - [ - "▁exponent", - "ial" - ], - [ - "▁D", - "ieu" - ], - [ - "▁Die", - "u" - ], - [ - "▁Di", - "eu" - ], - [ - "▁при", - "з" - ], - [ - "▁пр", - "из" - ], - [ - "▁Raf", - "ael" - ], - [ - "▁gg", - "plot" - ], - [ - "▁Tem", - "plate" - ], - [ - "▁Temp", - "late" - ], - [ - "▁", - "Template" - ], - [ - "ou", - "re" - ], - [ - "our", - "e" - ], - [ - "o", - "ure" - ], - [ - "▁In", - "ner" - ], - [ - "▁Inn", - "er" - ], - [ - "▁", - "Inner" - ], - [ - "og", - "ne" - ], - [ - "ogn", - "e" - ], - [ - "ig", - "are" - ], - [ - "iga", - "re" - ], - [ - "▁Ar", - "te" - ], - [ - "▁Art", - "e" - ], - [ - "▁C", - "ov" - ], - [ - "▁Co", - "v" - ], - [ - "▁auf", - "grund" - ], - [ - "▁Б", - "ы" - ], - [ - "▁cerem", - "ony" - ], - [ - "▁S", - "part" - ], - [ - "▁Sp", - "art" - ], - [ - "ject", - "ive" - ], - [ - "y", - "i" - ], - [ - "▁in", - "izi" - ], - [ - "▁l", - "atin" - ], - [ - "▁lat", - "in" - ], - [ - "▁Never", - "theless" - ], - [ - "▁D", - "one" - ], - [ - "▁Do", - "ne" - ], - [ - "▁Don", - "e" - ], - [ - "▁", - "Done" - ], - [ - "т", - "ря" - ], - [ - "▁A", - "rr" - ], - [ - "▁Ar", - "r" - ], - [ - "▁", - "Arr" - ], - [ - "se", - "ason" - ], - [ - "▁скла", - "ду" - ], - [ - "▁pod", - "czas" - ], - [ - "▁Beaut", - "iful" - ], - [ - "▁Weltkrie", - "g" - ], - [ - "▁з", - "о" - ], - [ - "▁", - "зо" - ], - [ - "▁over", - "come" - ], - [ - "▁Pr", - "aha" - ], - [ - "▁Pra", - "ha" - ], - [ - "▁рай", - "ону" - ], - [ - "▁райо", - "ну" - ], - [ - "▁район", - "у" - ], - [ - "▁sub", - "scription" - ], - [ - "▁subs", - "cription" - ], - [ - "▁subscri", - "ption" - ], - [ - "ig", - "ent" - ], - [ - "igen", - "t" - ], - [ - "ige", - "nt" - ], - [ - "i", - "gent" - ], - [ - "▁по", - "ка" - ], - [ - "la", - "tex" - ], - [ - "lat", - "ex" - ], - [ - "late", - "x" - ], - [ - "▁b", - "each" - ], - [ - "▁be", - "ach" - ], - [ - "▁ро", - "ках" - ], - [ - "ge", - "g" - ], - [ - "g", - "eg" - ], - [ - "▁pro", - "bl" - ], - [ - "▁prob", - "l" - ], - [ - "arg", - "uments" - ], - [ - "argument", - "s" - ], - [ - "▁organ", - "izations" - ], - [ - "▁organiz", - "ations" - ], - [ - "▁organization", - "s" - ], - [ - "▁N", - "an" - ], - [ - "▁Na", - "n" - ], - [ - "▁st", - "ones" - ], - [ - "▁sto", - "nes" - ], - [ - "▁stone", - "s" - ], - [ - "▁H", - "unter" - ], - [ - "▁Hun", - "ter" - ], - [ - "▁regular", - "ly" - ], - [ - "шо", - "го" - ], - [ - "ш", - "ого" - ], - [ - "▁flex", - "ible" - ], - [ - "op", - "ts" - ], - [ - "opt", - "s" - ], - [ - "o", - "pts" - ], - [ - "á", - "ř" - ], - [ - "wi", - "tz" - ], - [ - "w", - "itz" - ], - [ - "▁'", - ")" - ], - [ - "▁", - "')" - ], - [ - "PA", - "SS" - ], - [ - "P", - "ASS" - ], - [ - "▁k", - "raj" - ], - [ - "▁kr", - "aj" - ], - [ - "▁kra", - "j" - ], - [ - "▁f", - "ake" - ], - [ - "▁fa", - "ke" - ], - [ - "he", - "its" - ], - [ - "heit", - "s" - ], - [ - "os", - "ph" - ], - [ - "osp", - "h" - ], - [ - "parse", - "Int" - ], - [ - "F", - "ALSE" - ], - [ - "▁prof", - "ess" - ], - [ - "▁profes", - "s" - ], - [ - "pe", - "ople" - ], - [ - "▁pre", - "cip" - ], - [ - "▁prec", - "ip" - ], - [ - "dir", - "name" - ], - [ - "▁per", - "pet" - ], - [ - "▁Up", - "dated" - ], - [ - "▁Update", - "d" - ], - [ - "▁", - "Updated" - ], - [ - "ra", - "yed" - ], - [ - "ray", - "ed" - ], - [ - "▁prov", - "oc" - ], - [ - "▁тра", - "вня" - ], - [ - "▁трав", - "ня" - ], - [ - "▁categ", - "orie" - ], - [ - "▁categor", - "ie" - ], - [ - "▁те", - "о" - ], - [ - "с", - "ну" - ], - [ - "ot", - "r" - ], - [ - "o", - "tr" - ], - [ - "▁Вер", - "хов" - ], - [ - "▁comp", - "ét" - ], - [ - "Co", - "st" - ], - [ - "C", - "ost" - ], - [ - "▁w", - "ider" - ], - [ - "▁wide", - "r" - ], - [ - "▁wid", - "er" - ], - [ - "▁Ob", - "viously" - ], - [ - "пи", - "сан" - ], - [ - "писа", - "н" - ], - [ - "пис", - "ан" - ], - [ - "▁на", - "стоя" - ], - [ - "▁see", - "king" - ], - [ - "▁seek", - "ing" - ], - [ - "()", - ")," - ], - [ - "())", - "," - ], - [ - "(", - "))," - ], - [ - "▁é", - "quipe" - ], - [ - "▁équip", - "e" - ], - [ - "▁", - "équipe" - ], - [ - "▁comm", - "its" - ], - [ - "▁commit", - "s" - ], - [ - "▁S", - "vens" - ], - [ - "▁Sv", - "ens" - ], - [ - "я", - "бре" - ], - [ - "at", - "ern" - ], - [ - "ate", - "rn" - ], - [ - "ater", - "n" - ], - [ - "a", - "tern" - ], - [ - "▁h", - "eter" - ], - [ - "▁he", - "ter" - ], - [ - "▁het", - "er" - ], - [ - "▁Boot", - "strap" - ], - [ - "én", - "é" - ], - [ - "é", - "né" - ], - [ - "▁deriv", - "atives" - ], - [ - "▁derivative", - "s" - ], - [ - "▁Det", - "roit" - ], - [ - "▁provin", - "cial" - ], - [ - "▁provincia", - "l" - ], - [ - "onom", - "ie" - ], - [ - "E", - "B" - ], - [ - "▁c", - "uer" - ], - [ - "▁cu", - "er" - ], - [ - "▁от", - "носи" - ], - [ - "▁отно", - "си" - ], - [ - "▁не", - "й" - ], - [ - "▁н", - "ей" - ], - [ - "▁", - "ней" - ], - [ - ")", - "»." - ], - [ - "▁Ci", - "udad" - ], - [ - "IA", - "L" - ], - [ - "I", - "AL" - ], - [ - "zy", - "st" - ], - [ - "z", - "yst" - ], - [ - ")\"", - ")" - ], - [ - ")", - "\")" - ], - [ - "▁Al", - "c" - ], - [ - "bl", - "ogs" - ], - [ - "blog", - "s" - ], - [ - "blo", - "gs" - ], - [ - "b", - "logs" - ], - [ - "▁par", - "mi" - ], - [ - "▁Album", - "s" - ], - [ - "▁Alb", - "ums" - ], - [ - "▁Bo", - "liv" - ], - [ - "▁Bol", - "iv" - ], - [ - "▁c", - "lés" - ], - [ - "▁cl", - "és" - ], - [ - "Product", - "s" - ], - [ - "uer", - "do" - ], - [ - "▁ge", - "lang" - ], - [ - "▁gel", - "ang" - ], - [ - "zn", - "ik" - ], - [ - "z", - "nik" - ], - [ - "ha", - "gen" - ], - [ - "h", - "agen" - ], - [ - "an", - "onymous" - ], - [ - "▁sv", - "g" - ], - [ - "▁", - "svg" - ], - [ - "▁Cons", - "eil" - ], - [ - "▁Conse", - "il" - ], - [ - "▁A", - "ri" - ], - [ - "▁Ar", - "i" - ], - [ - "col", - "i" - ], - [ - "co", - "li" - ], - [ - "c", - "oli" - ], - [ - "▁c", - "zy" - ], - [ - "▁cz", - "y" - ], - [ - "▁", - "czy" - ], - [ - "▁C", - "V" - ], - [ - "▁", - "CV" - ], - [ - "▁f", - "ord" - ], - [ - "▁for", - "d" - ], - [ - "▁fo", - "rd" - ], - [ - "▁", - "ford" - ], - [ - "▁Au", - "ßer" - ], - [ - "▁Auß", - "er" - ], - [ - "▁C", - "I" - ], - [ - "▁", - "CI" - ], - [ - "▁t", - "empt" - ], - [ - "▁tem", - "pt" - ], - [ - "▁temp", - "t" - ], - [ - "▁Organ", - "isation" - ], - [ - "á", - "š" - ], - [ - "▁cy", - "cles" - ], - [ - "▁cycle", - "s" - ], - [ - "▁cycl", - "es" - ], - [ - "▁ges", - "lacht" - ], - [ - "▁лю", - "дей" - ], - [ - "ým", - "i" - ], - [ - "ý", - "mi" - ], - [ - "▁S", - "pieler" - ], - [ - "▁Spiel", - "er" - ], - [ - "ef", - "e" - ], - [ - "e", - "fe" - ], - [ - "▁Mar", - "vel" - ], - [ - "▁por", - "tal" - ], - [ - "▁port", - "al" - ], - [ - "▁porta", - "l" - ], - [ - "▁", - "portal" - ], - [ - "▁Сер", - "г" - ], - [ - "▁g", - "rado" - ], - [ - "▁gr", - "ado" - ], - [ - "▁gra", - "do" - ], - [ - "▁grad", - "o" - ], - [ - "▁hand", - "lers" - ], - [ - "▁handle", - "rs" - ], - [ - "▁handler", - "s" - ], - [ - "▁Inter", - "face" - ], - [ - "▁", - "Interface" - ], - [ - "AM", - "E" - ], - [ - "A", - "ME" - ], - [ - "▁ser", - "iously" - ], - [ - "▁serious", - "ly" - ], - [ - "▁B", - "inding" - ], - [ - "▁Bin", - "ding" - ], - [ - "▁Bind", - "ing" - ], - [ - "▁", - "Binding" - ], - [ - "▁R", - "ang" - ], - [ - "▁Ra", - "ng" - ], - [ - "▁Ran", - "g" - ], - [ - "▁n", - "ada" - ], - [ - "▁na", - "da" - ], - [ - "▁nad", - "a" - ], - [ - "oc", - "e" - ], - [ - "o", - "ce" - ], - [ - "▁inte", - "gra" - ], - [ - "▁integr", - "a" - ], - [ - "oc", - "racy" - ], - [ - "ocr", - "acy" - ], - [ - "▁аль", - "бо" - ], - [ - "▁st", - "ability" - ], - [ - "▁stabil", - "ity" - ], - [ - "Un", - "s" - ], - [ - "U", - "ns" - ], - [ - "▁v", - "eter" - ], - [ - "▁ve", - "ter" - ], - [ - "--", - "----+" - ], - [ - "----", - "--+" - ], - [ - "---", - "---+" - ], - [ - "------", - "+" - ], - [ - "-----", - "-+" - ], - [ - "▁se", - "rait" - ], - [ - "▁ser", - "ait" - ], - [ - "▁sera", - "it" - ], - [ - "▁om", - "itted" - ], - [ - "▁uncertain", - "ty" - ], - [ - "on", - "ian" - ], - [ - "oni", - "an" - ], - [ - "onia", - "n" - ], - [ - "▁re", - "sto" - ], - [ - "▁r", - "esto" - ], - [ - "▁res", - "to" - ], - [ - "▁rest", - "o" - ], - [ - "▁же", - "лез" - ], - [ - "▁од", - "ной" - ], - [ - "▁одно", - "й" - ], - [ - "▁Bevölker", - "ung" - ], - [ - "▁K", - "raft" - ], - [ - "▁Kr", - "aft" - ], - [ - "▁Kra", - "ft" - ], - [ - "ст", - "р" - ], - [ - "▁Mos", - "cow" - ], - [ - "la", - "ne" - ], - [ - "lan", - "e" - ], - [ - "l", - "ane" - ], - [ - "ar", - "ab" - ], - [ - "ara", - "b" - ], - [ - "a", - "rab" - ], - [ - "▁s", - "pole" - ], - [ - "▁sp", - "ole" - ], - [ - "▁spo", - "le" - ], - [ - "▁сво", - "его" - ], - [ - "?", - ":" - ], - [ - "ST", - "ART" - ], - [ - "▁ин", - "тер" - ], - [ - "▁инте", - "р" - ], - [ - "▁sym", - "pt" - ], - [ - "▁Loren", - "zo" - ], - [ - "▁ej", - "ec" - ], - [ - "▁pros", - "per" - ], - [ - "DA", - "T" - ], - [ - "D", - "AT" - ], - [ - "лимпи", - "й" - ], - [ - "▁sh", - "apes" - ], - [ - "▁shape", - "s" - ], - [ - "value", - "Of" - ], - [ - "▁associ", - "ate" - ], - [ - "▁Med", - "ien" - ], - [ - "▁Medi", - "en" - ], - [ - "EN", - "V" - ], - [ - "▁с", - "ре" - ], - [ - "▁држа", - "ве" - ], - [ - "▁the", - "ories" - ], - [ - "he", - "b" - ], - [ - "h", - "eb" - ], - [ - "▁Way", - "ne" - ], - [ - "▁String", - "Builder" - ], - [ - "iw", - "ers" - ], - [ - "i", - "wers" - ], - [ - "▁M", - "aps" - ], - [ - "▁Ma", - "ps" - ], - [ - "▁Map", - "s" - ], - [ - "Ph", - "ys" - ], - [ - "\\}", - "\\" - ], - [ - "\\", - "}\\" - ], - [ - "▁P", - "arte" - ], - [ - "▁Par", - "te" - ], - [ - "▁Part", - "e" - ], - [ - "▁Hud", - "son" - ], - [ - "ло", - "н" - ], - [ - "л", - "он" - ], - [ - "L", - "ng" - ], - [ - "▁р", - "ы" - ], - [ - "▁", - "ры" - ], - [ - "ст", - "ей" - ], - [ - "сте", - "й" - ], - [ - "с", - "тей" - ], - [ - "la", - "u" - ], - [ - "l", - "au" - ], - [ - "an", - "cer" - ], - [ - "ance", - "r" - ], - [ - "anc", - "er" - ], - [ - "▁Co", - "ppa" - ], - [ - "▁Cop", - "pa" - ], - [ - "▁вій", - "сь" - ], - [ - "▁u", - "cc" - ], - [ - "▁Pat", - "tern" - ], - [ - "▁", - "Pattern" - ], - [ - "▁gar", - "bage" - ], - [ - "▁Gon", - "zález" - ], - [ - "▁Encyc", - "lop" - ], - [ - "et", - "ten" - ], - [ - "ett", - "en" - ], - [ - "ette", - "n" - ], - [ - "Ex", - "ternal" - ], - [ - "Ext", - "ernal" - ], - [ - "RE", - "F" - ], - [ - "R", - "EF" - ], - [ - ">", - ";" - ], - [ - "lij", - "ke" - ], - [ - "lijk", - "e" - ], - [ - "▁inter", - "sect" - ], - [ - "▁Un", - "less" - ], - [ - "▁de", - "eper" - ], - [ - "▁deep", - "er" - ], - [ - "▁ж", - "і" - ], - [ - "▁", - "жі" - ], - [ - "de", - "nt" - ], - [ - "den", - "t" - ], - [ - "d", - "ent" - ], - [ - "le", - "f" - ], - [ - "l", - "ef" - ], - [ - "▁ch", - "anson" - ], - [ - "▁diff", - "us" - ], - [ - "▁pr", - "imi" - ], - [ - "▁prim", - "i" - ], - [ - "▁pri", - "mi" - ], - [ - "▁W", - "ieder" - ], - [ - "▁Wi", - "eder" - ], - [ - "▁Wie", - "der" - ], - [ - "▁a", - "ws" - ], - [ - "▁aw", - "s" - ], - [ - "▁", - "aws" - ], - [ - "ow", - "ana" - ], - [ - "owa", - "na" - ], - [ - "owan", - "a" - ], - [ - "▁so", - "ciale" - ], - [ - "▁social", - "e" - ], - [ - "▁soci", - "ale" - ], - [ - "▁soc", - "iale" - ], - [ - "ik", - "k" - ], - [ - "i", - "kk" - ], - [ - "ль", - "ной" - ], - [ - "льно", - "й" - ], - [ - "▁div", - "isions" - ], - [ - "▁division", - "s" - ], - [ - "▁divis", - "ions" - ], - [ - "ло", - "со" - ], - [ - "▁Cl", - "aud" - ], - [ - "▁Cla", - "ud" - ], - [ - "▁Y", - "a" - ], - [ - "▁v", - "oce" - ], - [ - "▁vo", - "ce" - ], - [ - "▁voc", - "e" - ], - [ - "▁B", - "ranch" - ], - [ - "▁Br", - "anch" - ], - [ - "▁Bran", - "ch" - ], - [ - "▁f", - "itted" - ], - [ - "▁fit", - "ted" - ], - [ - "or", - "r" - ], - [ - "o", - "rr" - ], - [ - "ôt", - "el" - ], - [ - "ô", - "tel" - ], - [ - "st", - "roke" - ], - [ - "str", - "oke" - ], - [ - "list", - "ener" - ], - [ - "listen", - "er" - ], - [ - "im", - "an" - ], - [ - "ima", - "n" - ], - [ - "i", - "man" - ], - [ - "во", - "сто" - ], - [ - "▁Sh", - "ah" - ], - [ - "Int", - "roduction" - ], - [ - "▁new", - "line" - ], - [ - "▁t", - "ile" - ], - [ - "▁til", - "e" - ], - [ - "▁ti", - "le" - ], - [ - "']", - "))" - ], - [ - "'])", - ")" - ], - [ - "'", - "]))" - ], - [ - "▁trav", - "aux" - ], - [ - "▁trava", - "ux" - ], - [ - "CON", - "FIG" - ], - [ - "▁quadr", - "atic" - ], - [ - "on", - "neur" - ], - [ - "onn", - "eur" - ], - [ - "onne", - "ur" - ], - [ - "▁Gi", - "org" - ], - [ - "▁ident", - "ific" - ], - [ - "éric", - "aine" - ], - [ - "érica", - "ine" - ], - [ - "▁UI", - "View" - ], - [ - "▁", - "UIView" - ], - [ - "▁Lib", - "eral" - ], - [ - "▁Liber", - "al" - ], - [ - "▁K", - "och" - ], - [ - "▁Ko", - "ch" - ], - [ - "▁Berlin", - "er" - ], - [ - "▁Berl", - "iner" - ], - [ - "▁not", - "ifications" - ], - [ - "▁notification", - "s" - ], - [ - "▁Su", - "san" - ], - [ - "▁Sus", - "an" - ], - [ - "▁c", - "adre" - ], - [ - "▁cad", - "re" - ], - [ - "▁K", - "loster" - ], - [ - "▁Kl", - "oster" - ], - [ - "▁exam", - "ine" - ], - [ - "▁е", - "дин" - ], - [ - "▁еди", - "н" - ], - [ - "▁UN", - "ION" - ], - [ - "▁al", - "ten" - ], - [ - "▁alt", - "en" - ], - [ - "▁alte", - "n" - ], - [ - "▁f", - "init" - ], - [ - "▁fin", - "it" - ], - [ - "▁fi", - "nit" - ], - [ - "▁pe", - "dig" - ], - [ - "▁ped", - "ig" - ], - [ - "cy", - "k" - ], - [ - "c", - "yk" - ], - [ - "▁mouv", - "ement" - ], - [ - "▁mou", - "vement" - ], - [ - "IO", - "S" - ], - [ - "I", - "OS" - ], - [ - "▁бри", - "тан" - ], - [ - "▁b", - "out" - ], - [ - "▁bo", - "ut" - ], - [ - "▁bou", - "t" - ], - [ - "▁ав", - "тор" - ], - [ - "▁авто", - "р" - ], - [ - "ниц", - "тво" - ], - [ - "ет", - "о" - ], - [ - "е", - "то" - ], - [ - "le", - "ra" - ], - [ - "ler", - "a" - ], - [ - "l", - "era" - ], - [ - "cl", - "s" - ], - [ - "c", - "ls" - ], - [ - "▁L", - "ey" - ], - [ - "▁Le", - "y" - ], - [ - "am", - "y" - ], - [ - "a", - "my" - ], - [ - "ag", - "ens" - ], - [ - "age", - "ns" - ], - [ - "agen", - "s" - ], - [ - "a", - "gens" - ], - [ - "as", - "hed" - ], - [ - "ash", - "ed" - ], - [ - "▁ok", - "rę" - ], - [ - "г", - "ро" - ], - [ - "el", - "lett" - ], - [ - "ell", - "ett" - ], - [ - "elle", - "tt" - ], - [ - "▁F", - "ellow" - ], - [ - "▁Fel", - "low" - ], - [ - "▁manif", - "old" - ], - [ - "$)", - "," - ], - [ - "$", - ")," - ], - [ - "ld", - "er" - ], - [ - "l", - "der" - ], - [ - "▁v", - "oz" - ], - [ - "▁vo", - "z" - ], - [ - "▁be", - "gg" - ], - [ - "▁beg", - "g" - ], - [ - "▁b", - "aron" - ], - [ - "▁bar", - "on" - ], - [ - "▁ba", - "ron" - ], - [ - "▁f", - "id" - ], - [ - "▁fi", - "d" - ], - [ - "▁f", - "iring" - ], - [ - "▁fi", - "ring" - ], - [ - "▁fir", - "ing" - ], - [ - "il", - "da" - ], - [ - "ild", - "a" - ], - [ - "de", - "k" - ], - [ - "d", - "ek" - ], - [ - "A", - "U" - ], - [ - "it", - "are" - ], - [ - "ita", - "re" - ], - [ - "itar", - "e" - ], - [ - "▁A", - "ra" - ], - [ - "▁Ar", - "a" - ], - [ - "▁Ex", - "it" - ], - [ - "▁", - "Exit" - ], - [ - "▁cin", - "emat" - ], - [ - "▁cinema", - "t" - ], - [ - "▁int", - "ros" - ], - [ - "▁intr", - "os" - ], - [ - "▁intro", - "s" - ], - [ - "▁contact", - "s" - ], - [ - "пе", - "ни" - ], - [ - "пен", - "и" - ], - [ - "▁m", - "öglich" - ], - [ - "▁Singap", - "ore" - ], - [ - "str", - "öm" - ], - [ - "▁H", - "ern" - ], - [ - "▁He", - "rn" - ], - [ - "▁Her", - "n" - ], - [ - "▁six", - "th" - ], - [ - "▁public", - "ations" - ], - [ - "▁pub", - "lications" - ], - [ - "▁publication", - "s" - ], - [ - "vi", - "e" - ], - [ - "v", - "ie" - ], - [ - "▁H", - "at" - ], - [ - "▁Ha", - "t" - ], - [ - "▁accept", - "ing" - ], - [ - "á", - "c" - ], - [ - "st", - "wo" - ], - [ - "s", - "two" - ], - [ - "▁quiet", - "ly" - ], - [ - "Ph", - "oto" - ], - [ - "▁b", - "asket" - ], - [ - "▁bas", - "ket" - ], - [ - "▁eigen", - "values" - ], - [ - "▁mé", - "dec" - ], - [ - "▁méd", - "ec" - ], - [ - "▁O", - "limp" - ], - [ - "▁Ol", - "imp" - ], - [ - "▁цер", - "ков" - ], - [ - "al", - "in" - ], - [ - "ali", - "n" - ], - [ - "a", - "lin" - ], - [ - "con", - "sum" - ], - [ - "cons", - "um" - ], - [ - "▁l", - "assen" - ], - [ - "▁las", - "sen" - ], - [ - "▁", - "lassen" - ], - [ - "▁ан", - "ти" - ], - [ - "▁S", - "eq" - ], - [ - "▁Se", - "q" - ], - [ - "▁", - "Seq" - ], - [ - "\";", - "\r" - ], - [ - "\"", - ";\r" - ], - [ - "ra", - "re" - ], - [ - "rar", - "e" - ], - [ - "r", - "are" - ], - [ - "▁$", - "|\\" - ], - [ - "▁$|", - "\\" - ], - [ - "▁n", - "ick" - ], - [ - "▁ni", - "ck" - ], - [ - "▁nic", - "k" - ], - [ - "▁", - "nick" - ], - [ - "df", - "lare" - ], - [ - "V", - "ec" - ], - [ - "bind", - "ung" - ], - [ - "▁b", - "g" - ], - [ - "▁", - "bg" - ], - [ - "ch", - "anges" - ], - [ - "change", - "s" - ], - [ - "chan", - "ges" - ], - [ - "Day", - "s" - ], - [ - "Da", - "ys" - ], - [ - "D", - "ays" - ], - [ - "▁M", - "ouse" - ], - [ - "▁Mo", - "use" - ], - [ - "▁Mou", - "se" - ], - [ - "▁", - "Mouse" - ], - [ - "▁wait", - "ed" - ], - [ - "▁wa", - "ited" - ], - [ - "▁Tom", - "atoes" - ], - [ - "▁f", - "as" - ], - [ - "▁fa", - "s" - ], - [ - "▁", - "fas" - ], - [ - "ver", - "te" - ], - [ - "vert", - "e" - ], - [ - "v", - "erte" - ], - [ - "▁success", - "ion" - ], - [ - "▁succ", - "ession" - ], - [ - "со", - "р" - ], - [ - "с", - "ор" - ], - [ - "▁s", - "ols" - ], - [ - "▁so", - "ls" - ], - [ - "▁sol", - "s" - ], - [ - "▁R", - "ender" - ], - [ - "▁Re", - "nder" - ], - [ - "▁Ren", - "der" - ], - [ - "▁", - "Render" - ], - [ - "▁lead", - "ership" - ], - [ - "▁leader", - "ship" - ], - [ - "▁leaders", - "hip" - ], - [ - "▁signific", - "ance" - ], - [ - "▁ga", - "uche" - ], - [ - "▁gau", - "che" - ], - [ - "ca", - "no" - ], - [ - "can", - "o" - ], - [ - "c", - "ano" - ], - [ - "▁P", - "ie" - ], - [ - "▁Pi", - "e" - ], - [ - "enso", - "ort" - ], - [ - "▁cam", - "bio" - ], - [ - "▁camb", - "io" - ], - [ - "▁у", - "з" - ], - [ - "▁ende", - "av" - ], - [ - "Comp", - "leted" - ], - [ - "Comple", - "ted" - ], - [ - "Complete", - "d" - ], - [ - "▁Архив", - "ная" - ], - [ - "j", - "d" - ], - [ - "ór", - "ico" - ], - [ - "ó", - "rico" - ], - [ - "▁church", - "es" - ], - [ - "▁an", - "imate" - ], - [ - "▁anim", - "ate" - ], - [ - "▁ani", - "mate" - ], - [ - "▁", - "animate" - ], - [ - "S", - "G" - ], - [ - "comp", - "ute" - ], - [ - "comput", - "e" - ], - [ - "▁uniform", - "ly" - ], - [ - "IN", - "IT" - ], - [ - "ll", - "es" - ], - [ - "lle", - "s" - ], - [ - "l", - "les" - ], - [ - "Http", - "Request" - ], - [ - "К", - "о" - ], - [ - "Di", - "ff" - ], - [ - "D", - "iff" - ], - [ - "▁s", - "ah" - ], - [ - "▁sa", - "h" - ], - [ - "air", - "o" - ], - [ - "ai", - "ro" - ], - [ - "a", - "iro" - ], - [ - "may", - "be" - ], - [ - "UT", - "E" - ], - [ - "U", - "TE" - ], - [ - "▁D", - "ow" - ], - [ - "▁Do", - "w" - ], - [ - "hu", - "man" - ], - [ - "hum", - "an" - ], - [ - "h", - "uman" - ], - [ - "▁au", - "rait" - ], - [ - "▁aur", - "ait" - ], - [ - "dar", - "k" - ], - [ - "d", - "ark" - ], - [ - "▁re", - "pair" - ], - [ - "▁rep", - "air" - ], - [ - "▁n", - "er" - ], - [ - "▁ne", - "r" - ], - [ - "▁", - "ner" - ], - [ - "▁D", - "abei" - ], - [ - "▁Da", - "bei" - ], - [ - "▁Bo", - "tan" - ], - [ - "▁Bot", - "an" - ], - [ - "Or", - "iginal" - ], - [ - "Origin", - "al" - ], - [ - "az", - "ă" - ], - [ - "▁N", - "AT" - ], - [ - "▁NA", - "T" - ], - [ - "im", - "per" - ], - [ - "imp", - "er" - ], - [ - "▁Y", - "outh" - ], - [ - "▁You", - "th" - ], - [ - "th", - "es" - ], - [ - "the", - "s" - ], - [ - "t", - "hes" - ], - [ - "▁окру", - "га" - ], - [ - "▁F", - "lo" - ], - [ - "▁Fl", - "o" - ], - [ - "▁break", - "fast" - ], - [ - "ur", - "ls" - ], - [ - "url", - "s" - ], - [ - "▁über", - "nahm" - ], - [ - "ár", - "ios" - ], - [ - "ário", - "s" - ], - [ - "á", - "rios" - ], - [ - "▁O", - "range" - ], - [ - "▁Or", - "ange" - ], - [ - "▁Aff", - "airs" - ], - [ - "sk", - "e" - ], - [ - "s", - "ke" - ], - [ - "▁not", - "ify" - ], - [ - "▁", - "notify" - ], - [ - "imo", - "ine" - ], - [ - "▁Ar", - "ena" - ], - [ - "▁Are", - "na" - ], - [ - "▁lib", - "eral" - ], - [ - "▁liber", - "al" - ], - [ - "▁o", - "bec" - ], - [ - "▁ob", - "ec" - ], - [ - "if", - "a" - ], - [ - "i", - "fa" - ], - [ - "gu", - "ez" - ], - [ - "gue", - "z" - ], - [ - "g", - "uez" - ], - [ - "ion", - "o" - ], - [ - "io", - "no" - ], - [ - "i", - "ono" - ], - [ - "пера", - "тор" - ], - [ - "▁ret", - "ained" - ], - [ - "▁retain", - "ed" - ], - [ - "fa", - "iled" - ], - [ - "fail", - "ed" - ], - [ - "bin", - "e" - ], - [ - "bi", - "ne" - ], - [ - "b", - "ine" - ], - [ - "т", - "ных" - ], - [ - "▁CG", - "Rect" - ], - [ - "cam", - "era" - ], - [ - "ide", - "note" - ], - [ - "iden", - "ote" - ], - [ - "K", - "B" - ], - [ - "▁l", - "ights" - ], - [ - "▁light", - "s" - ], - [ - "▁P", - "ictures" - ], - [ - "▁Picture", - "s" - ], - [ - "▁Squad", - "ron" - ], - [ - "▁V", - "olk" - ], - [ - "▁Vol", - "k" - ], - [ - "▁b", - "urg" - ], - [ - "▁bu", - "rg" - ], - [ - "▁bur", - "g" - ], - [ - "▁", - "burg" - ], - [ - ",", - "]" - ], - [ - "G", - "i" - ], - [ - "ê", - "que" - ], - [ - "make", - "Text" - ], - [ - "▁every", - "body" - ], - [ - "▁Hy", - "per" - ], - [ - "▁Hyp", - "er" - ], - [ - "▁De", - "ux" - ], - [ - "▁gl", - "ory" - ], - [ - "▁glo", - "ry" - ], - [ - "pres", - "entation" - ], - [ - "present", - "ation" - ], - [ - "on", - "ica" - ], - [ - "oni", - "ca" - ], - [ - "onic", - "a" - ], - [ - "o", - "nica" - ], - [ - "▁fr", - "ère" - ], - [ - "ag", - "et" - ], - [ - "age", - "t" - ], - [ - "a", - "get" - ], - [ - "▁h", - "ints" - ], - [ - "▁hint", - "s" - ], - [ - "▁hin", - "ts" - ], - [ - "▁t", - "unnel" - ], - [ - "▁tun", - "nel" - ], - [ - "▁E", - "j" - ], - [ - "ál", - "is" - ], - [ - "á", - "lis" - ], - [ - "▁V", - "iv" - ], - [ - "▁Vi", - "v" - ], - [ - "ствен", - "ных" - ], - [ - "▁c", - "aps" - ], - [ - "▁cap", - "s" - ], - [ - "▁ca", - "ps" - ], - [ - "PA", - "RT" - ], - [ - "PAR", - "T" - ], - [ - "P", - "ART" - ], - [ - "oc", - "i" - ], - [ - "o", - "ci" - ], - [ - "▁p", - "rices" - ], - [ - "▁pr", - "ices" - ], - [ - "▁pri", - "ces" - ], - [ - "▁price", - "s" - ], - [ - "curr", - "ency" - ], - [ - "c", - "urrency" - ], - [ - "▁a", - "chter" - ], - [ - "▁ach", - "ter" - ], - [ - "▁acht", - "er" - ], - [ - "rom", - "agnet" - ], - [ - "ge", - "nder" - ], - [ - "gen", - "der" - ], - [ - "gende", - "r" - ], - [ - "g", - "ender" - ], - [ - "▁s", - "uis" - ], - [ - "▁su", - "is" - ], - [ - "vers", - "ions" - ], - [ - "version", - "s" - ], - [ - "▁Tr", - "aining" - ], - [ - "▁Tra", - "ining" - ], - [ - "▁Train", - "ing" - ], - [ - "in", - "side" - ], - [ - "ins", - "ide" - ], - [ - "eg", - "e" - ], - [ - "e", - "ge" - ], - [ - "▁tot", - "ale" - ], - [ - "▁total", - "e" - ], - [ - "▁D", - "aar" - ], - [ - "▁Da", - "ar" - ], - [ - "▁grud", - "nia" - ], - [ - "▁I", - "er" - ], - [ - "▁occasion", - "s" - ], - [ - "▁occas", - "ions" - ], - [ - "▁k", - "de" - ], - [ - "▁tensor", - "flow" - ], - [ - "▁", - "tensorflow" - ], - [ - "▁ó", - "r" - ], - [ - "▁", - "ór" - ], - [ - "Method", - "s" - ], - [ - "▁loop", - "ing" - ], - [ - "▁direct", - "eur" - ], - [ - "k", - "ę" - ], - [ - "▁is", - "omorphism" - ], - [ - "▁Jo", - "ão" - ], - [ - "▁al", - "igned" - ], - [ - "▁align", - "ed" - ], - [ - "▁", - "aligned" - ], - [ - "он", - "ов" - ], - [ - "о", - "нов" - ], - [ - "ur", - "ger" - ], - [ - "urg", - "er" - ], - [ - "▁n", - "ova" - ], - [ - "▁no", - "va" - ], - [ - "▁nov", - "a" - ], - [ - "mor", - "row" - ], - [ - "m", - "orrow" - ], - [ - "al", - "tern" - ], - [ - "alt", - "ern" - ], - [ - "alter", - "n" - ], - [ - "H", - "D" - ], - [ - "▁m", - "arqu" - ], - [ - "▁mar", - "qu" - ], - [ - "at", - "ivas" - ], - [ - "ativ", - "as" - ], - [ - "ati", - "vas" - ], - [ - "ativa", - "s" - ], - [ - "gg", - "reg" - ], - [ - "g", - "greg" - ], - [ - "▁anci", - "en" - ], - [ - "▁anc", - "ien" - ], - [ - "ni", - "t" - ], - [ - "n", - "it" - ], - [ - "▁sec", - "ured" - ], - [ - "▁secure", - "d" - ], - [ - "mi", - "er" - ], - [ - "m", - "ier" - ], - [ - "▁O", - "le" - ], - [ - "▁Ol", - "e" - ], - [ - "▁ин", - "те" - ], - [ - "▁m", - "inus" - ], - [ - "▁min", - "us" - ], - [ - "▁", - "minus" - ], - [ - "▁clear", - "er" - ], - [ - "▁n", - "ello" - ], - [ - "▁nel", - "lo" - ], - [ - "▁nell", - "o" - ], - [ - "▁információ", - "k" - ], - [ - "▁pro", - "pre" - ], - [ - "▁prop", - "re" - ], - [ - "{", - "." - ], - [ - "il", - "og" - ], - [ - "ilo", - "g" - ], - [ - "i", - "log" - ], - [ - "▁Qu", - "ick" - ], - [ - "▁acc", - "us" - ], - [ - "▁ac", - "cus" - ], - [ - "emp", - "loyee" - ], - [ - "▁з", - "у" - ], - [ - "▁", - "зу" - ], - [ - "ць", - "кий" - ], - [ - "фі", - "цій" - ], - [ - "▁пу", - "бли" - ], - [ - "▁", - "публи" - ], - [ - "▁b", - "ent" - ], - [ - "▁be", - "nt" - ], - [ - "▁ben", - "t" - ], - [ - "▁по", - "зво" - ], - [ - "▁П", - "ор" - ], - [ - "▁По", - "р" - ], - [ - "áz", - "í" - ], - [ - "án", - "ico" - ], - [ - "á", - "nico" - ], - [ - "empty", - "set" - ], - [ - "▁sur", - "tout" - ], - [ - "re", - "no" - ], - [ - "ren", - "o" - ], - [ - "r", - "eno" - ], - [ - "un", - "ya" - ], - [ - "▁у", - "ез" - ], - [ - "▁Mill", - "ionen" - ], - [ - "▁listop", - "ada" - ], - [ - "▁M", - "aine" - ], - [ - "▁Ma", - "ine" - ], - [ - "▁Main", - "e" - ], - [ - "▁Mai", - "ne" - ], - [ - "▁gru", - "pos" - ], - [ - "▁grupo", - "s" - ], - [ - "▁grup", - "os" - ], - [ - "▁St", - "orage" - ], - [ - "▁Sto", - "rage" - ], - [ - "▁", - "Storage" - ], - [ - "▁app", - "le" - ], - [ - "▁ap", - "ple" - ], - [ - "▁", - "apple" - ], - [ - "▁L", - "ö" - ], - [ - "ou", - "sed" - ], - [ - "ous", - "ed" - ], - [ - "ouse", - "d" - ], - [ - "o", - "used" - ], - [ - "д", - "ро" - ], - [ - "sc", - "i" - ], - [ - "s", - "ci" - ], - [ - "▁hi", - "bernate" - ], - [ - "▁", - "hibernate" - ], - [ - "do", - "g" - ], - [ - "d", - "og" - ], - [ - "▁во", - "сто" - ], - [ - "▁вос", - "то" - ], - [ - "▁", - "восто" - ], - [ - "▁intens", - "ity" - ], - [ - "leg", - "end" - ], - [ - "lege", - "nd" - ], - [ - "legen", - "d" - ], - [ - "▁W", - "ille" - ], - [ - "▁Will", - "e" - ], - [ - "▁Wil", - "le" - ], - [ - "▁Wi", - "lle" - ], - [ - "▁szer", - "int" - ], - [ - "ges", - "ellschaft" - ], - [ - "▁L", - "iving" - ], - [ - "▁Li", - "ving" - ], - [ - "▁Liv", - "ing" - ], - [ - "al", - "lo" - ], - [ - "all", - "o" - ], - [ - "▁S", - "plit" - ], - [ - "▁Sp", - "lit" - ], - [ - "▁", - "Split" - ], - [ - "dr", - "u" - ], - [ - "d", - "ru" - ], - [ - "ne", - "ed" - ], - [ - "n", - "eed" - ], - [ - "▁Дж", - "он" - ], - [ - "▁Sw", - "iss" - ], - [ - "▁sp", - "raw" - ], - [ - "▁spr", - "aw" - ], - [ - "▁be", - "ho" - ], - [ - "▁beh", - "o" - ], - [ - "▁fot", - "ograf" - ], - [ - "▁ren", - "contre" - ], - [ - "▁k", - "is" - ], - [ - "▁ki", - "s" - ], - [ - "▁sign", - "ing" - ], - [ - "▁sig", - "ning" - ], - [ - "ak", - "ult" - ], - [ - "aku", - "lt" - ], - [ - "▁index", - "ing" - ], - [ - "ap", - "or" - ], - [ - "a", - "por" - ], - [ - "▁con", - "ception" - ], - [ - "▁concept", - "ion" - ], - [ - "▁conce", - "ption" - ], - [ - "ag", - "greg" - ], - [ - "agg", - "reg" - ], - [ - "a", - "ggreg" - ], - [ - "▁Са", - "вез" - ], - [ - "▁aff", - "air" - ], - [ - "ě", - "ní" - ], - [ - "A", - "ugust" - ], - [ - "▁се", - "кре" - ], - [ - "▁miesz", - "kań" - ], - [ - "UI", - "Image" - ], - [ - "▁b", - "ishop" - ], - [ - "▁bi", - "shop" - ], - [ - "▁", - "bishop" - ], - [ - "▁serv", - "ants" - ], - [ - "▁servant", - "s" - ], - [ - "▁tr", - "ail" - ], - [ - "▁tra", - "il" - ], - [ - "di", - "git" - ], - [ - "dig", - "it" - ], - [ - "▁jo", - "ins" - ], - [ - "▁join", - "s" - ], - [ - "▁N", - "ear" - ], - [ - "▁Ne", - "ar" - ], - [ - "öff", - "entlich" - ], - [ - ">", - "{" - ], - [ - "▁sk", - "ład" - ], - [ - "ge", - "führt" - ], - [ - "gef", - "ührt" - ], - [ - "▁Hol", - "z" - ], - [ - "▁Milit", - "är" - ], - [ - "ach", - "i" - ], - [ - "ac", - "hi" - ], - [ - "a", - "chi" - ], - [ - "Up", - "per" - ], - [ - "U", - "pper" - ], - [ - "pi", - "ne" - ], - [ - "pin", - "e" - ], - [ - "p", - "ine" - ], - [ - "ut", - "zt" - ], - [ - "utz", - "t" - ], - [ - "▁nu", - "ova" - ], - [ - "ibr", - "ation" - ], - [ - "▁B", - "ien" - ], - [ - "▁Bi", - "en" - ], - [ - "▁пер", - "вый" - ], - [ - "▁первы", - "й" - ], - [ - "▁Cre", - "ating" - ], - [ - "On", - "ce" - ], - [ - "▁ein", - "mal" - ], - [ - "▁ge", - "ometric" - ], - [ - "▁geomet", - "ric" - ], - [ - "st", - "vo" - ], - [ - "▁k", - "W" - ], - [ - "▁decom", - "position" - ], - [ - "▁com", - "edy" - ], - [ - "▁come", - "dy" - ], - [ - "▁activ", - "ation" - ], - [ - "▁an", - "gry" - ], - [ - "▁ang", - "ry" - ], - [ - "ill", - "eurs" - ], - [ - "ille", - "urs" - ], - [ - "▁inst", - "antly" - ], - [ - "▁instant", - "ly" - ], - [ - "▁suggest", - "ing" - ], - [ - "▁C", - "lay" - ], - [ - "▁Cl", - "ay" - ], - [ - "▁Cla", - "y" - ], - [ - "co", - "t" - ], - [ - "c", - "ot" - ], - [ - "▁G", - "én" - ], - [ - "▁Gé", - "n" - ], - [ - "($", - "(" - ], - [ - "(", - "$(" - ], - [ - "un", - "wrap" - ], - [ - "▁lif", - "ted" - ], - [ - "▁lift", - "ed" - ], - [ - "▁K", - "it" - ], - [ - "▁Ki", - "t" - ], - [ - "▁", - "Kit" - ], - [ - "▁l", - "inea" - ], - [ - "▁li", - "nea" - ], - [ - "▁line", - "a" - ], - [ - "▁lin", - "ea" - ], - [ - "о", - "к" - ], - [ - "ha", - "rt" - ], - [ - "har", - "t" - ], - [ - "h", - "art" - ], - [ - "->", - "_" - ], - [ - "▁n", - "uit" - ], - [ - "▁nu", - "it" - ], - [ - "▁Iss", - "ue" - ], - [ - "ли", - "и" - ], - [ - "▁r", - "öm" - ], - [ - "Task", - "s" - ], - [ - "▁S", - "r" - ], - [ - "▁se", - "is" - ], - [ - "▁sei", - "s" - ], - [ - "as", - "ia" - ], - [ - "asi", - "a" - ], - [ - "}}", - "$." - ], - [ - "}}$", - "." - ], - [ - "}", - "}$." - ], - [ - ":", - "{" - ], - [ - "control", - "s" - ], - [ - "contr", - "ols" - ], - [ - "▁S", - "tim" - ], - [ - "▁St", - "im" - ], - [ - "▁Re", - "cht" - ], - [ - "▁Rec", - "ht" - ], - [ - "ocia", - "ción" - ], - [ - "oci", - "ación" - ], - [ - "▁N", - "atal" - ], - [ - "▁Na", - "tal" - ], - [ - "▁Nat", - "al" - ], - [ - "▁Philipp", - "ines" - ], - [ - "ul", - "en" - ], - [ - "ule", - "n" - ], - [ - "u", - "len" - ], - [ - "F", - "ixed" - ], - [ - "▁switch", - "ed" - ], - [ - "Z", - "ip" - ], - [ - "os", - "pel" - ], - [ - "osp", - "el" - ], - [ - "▁нача", - "ле" - ], - [ - "▁B", - "lan" - ], - [ - "▁Bl", - "an" - ], - [ - "▁Bla", - "n" - ], - [ - "ur", - "st" - ], - [ - "urs", - "t" - ], - [ - "▁aut", - "our" - ], - [ - "▁auto", - "ur" - ], - [ - "C", - "a" - ], - [ - "▁lat", - "itude" - ], - [ - "▁F", - "rei" - ], - [ - "▁Fre", - "i" - ], - [ - "▁Fr", - "ei" - ], - [ - "▁Mus", - "ée" - ], - [ - "▁K", - "urz" - ], - [ - "▁Kur", - "z" - ], - [ - "▁Ku", - "rz" - ], - [ - "▁reg", - "ião" - ], - [ - "sw", - "ap" - ], - [ - "▁h", - "ate" - ], - [ - "▁ha", - "te" - ], - [ - "▁hat", - "e" - ], - [ - "▁mod", - "ifications" - ], - [ - "▁modification", - "s" - ], - [ - "▁modific", - "ations" - ], - [ - "▁К", - "ом" - ], - [ - "▁Ко", - "м" - ], - [ - "▁Anto", - "ine" - ], - [ - "ug", - "a" - ], - [ - "u", - "ga" - ], - [ - "RE", - "CT" - ], - [ - "R", - "ECT" - ], - [ - "ét", - "er" - ], - [ - "é", - "ter" - ], - [ - "G", - "ROUP" - ], - [ - "▁sacr", - "ific" - ], - [ - "▁W", - "he" - ], - [ - "▁Wh", - "e" - ], - [ - "▁Ste", - "vens" - ], - [ - "▁Steve", - "ns" - ], - [ - "▁Steven", - "s" - ], - [ - "olog", - "ische" - ], - [ - "Sum", - "mary" - ], - [ - "ob", - "s" - ], - [ - "o", - "bs" - ], - [ - "hn", - "en" - ], - [ - "h", - "nen" - ], - [ - "<", - "%=" - ], - [ - "di", - "enst" - ], - [ - "d", - "ienst" - ], - [ - "re", - "mark" - ], - [ - "rem", - "ark" - ], - [ - "r", - "emark" - ], - [ - "▁veröff", - "entlicht" - ], - [ - "е", - "л" - ], - [ - "▁M", - "ock" - ], - [ - "▁Mo", - "ck" - ], - [ - "▁", - "Mock" - ], - [ - "▁Ль", - "в" - ], - [ - "▁tr", - "ês" - ], - [ - "g", - "b" - ], - [ - "▁celebr", - "ated" - ], - [ - "▁E", - "b" - ], - [ - "▁c", - "osta" - ], - [ - "▁co", - "sta" - ], - [ - "▁cost", - "a" - ], - [ - "▁cos", - "ta" - ], - [ - "▁Ge", - "ographic" - ], - [ - "▁att", - "achment" - ], - [ - "▁attach", - "ment" - ], - [ - "mann", - "schaft" - ], - [ - "▁depend", - "ence" - ], - [ - "�", - "�" - ], - [ - "▁att", - "itude" - ], - [ - "et", - "al" - ], - [ - "eta", - "l" - ], - [ - "e", - "tal" - ], - [ - "vi", - "c" - ], - [ - "v", - "ic" - ], - [ - "ba", - "ut" - ], - [ - "bau", - "t" - ], - [ - "b", - "aut" - ], - [ - "▁д", - "ов" - ], - [ - "▁до", - "в" - ], - [ - "▁", - "дов" - ], - [ - "▁inter", - "ven" - ], - [ - "▁G", - "ü" - ], - [ - "ón", - "ica" - ], - [ - "ó", - "nica" - ], - [ - "▁P", - "on" - ], - [ - "▁Po", - "n" - ], - [ - "▁dispon", - "ible" - ], - [ - "▁F", - "eb" - ], - [ - "▁Fe", - "b" - ], - [ - "▁wor", - "ship" - ], - [ - "▁Specific", - "ally" - ], - [ - "H", - "y" - ], - [ - "ij", - "u" - ], - [ - "i", - "ju" - ], - [ - "▁c", - "b" - ], - [ - "▁", - "cb" - ], - [ - "▁sp", - "ac" - ], - [ - "lev", - "eland" - ], - [ - "level", - "and" - ], - [ - "▁local", - "idad" - ], - [ - "▁prec", - "eding" - ], - [ - "▁preced", - "ing" - ], - [ - "▁H", - "essen" - ], - [ - "x", - "p" - ], - [ - "▁W", - "ein" - ], - [ - "▁We", - "in" - ], - [ - "▁Wei", - "n" - ], - [ - "▁Rom", - "â" - ], - [ - "▁gi", - "orno" - ], - [ - "▁gior", - "no" - ], - [ - "▁квіт", - "ня" - ], - [ - "lla", - "ços" - ], - [ - "▁Academ", - "ia" - ], - [ - "▁k", - "ül" - ], - [ - "▁Å", - "rs" - ], - [ - "▁на", - "ј" - ], - [ - "uc", - "lide" - ], - [ - "Inter", - "net" - ], - [ - "Intern", - "et" - ], - [ - "or", - "ton" - ], - [ - "ort", - "on" - ], - [ - "▁c", - "orn" - ], - [ - "▁cor", - "n" - ], - [ - "▁co", - "rn" - ], - [ - "я", - "ми" - ], - [ - "▁\"", - "*" - ], - [ - "▁Fel", - "ix" - ], - [ - "ap", - "at" - ], - [ - "apa", - "t" - ], - [ - "a", - "pat" - ], - [ - "▁сво", - "и" - ], - [ - "MI", - "T" - ], - [ - "M", - "IT" - ], - [ - "ma", - "de" - ], - [ - "mad", - "e" - ], - [ - "m", - "ade" - ], - [ - "▁lo", - "comot" - ], - [ - "хо", - "да" - ], - [ - "ход", - "а" - ], - [ - "F", - "P" - ], - [ - "▁p", - "m" - ], - [ - "▁", - "pm" - ], - [ - ".*", - ";" - ], - [ - "▁H", - "amm" - ], - [ - "▁Ha", - "mm" - ], - [ - "▁Ham", - "m" - ], - [ - "`", - "}" - ], - [ - "Layout", - "Inflater" - ], - [ - "==", - "\"" - ], - [ - "=", - "=\"" - ], - [ - "▁E", - "ur" - ], - [ - "▁Eu", - "r" - ], - [ - "▁d", - "ogs" - ], - [ - "▁do", - "gs" - ], - [ - "▁dog", - "s" - ], - [ - "же", - "нии" - ], - [ - "▁a", - "zon" - ], - [ - "▁az", - "on" - ], - [ - "▁", - "azon" - ], - [ - "▁em", - "ulator" - ], - [ - "▁r", - "icon" - ], - [ - "▁ric", - "on" - ], - [ - "▁ri", - "con" - ], - [ - "be", - "eld" - ], - [ - "▁н", - "у" - ], - [ - "▁", - "ну" - ], - [ - "▁approxim", - "ate" - ], - [ - "L", - "M" - ], - [ - "▁B", - "ond" - ], - [ - "▁Bo", - "nd" - ], - [ - "▁Bon", - "d" - ], - [ - "▁en", - "h" - ], - [ - "ęd", - "z" - ], - [ - "ę", - "dz" - ], - [ - "▁s", - "olit" - ], - [ - "▁so", - "lit" - ], - [ - "▁sol", - "it" - ], - [ - "Relative", - "Layout" - ], - [ - "et", - "eor" - ], - [ - "ete", - "or" - ], - [ - "ament", - "os" - ], - [ - "amento", - "s" - ], - [ - "▁in", - "direct" - ], - [ - "▁ind", - "irect" - ], - [ - "ib", - "ől" - ], - [ - "▁g", - "ros" - ], - [ - "▁gr", - "os" - ], - [ - "▁gro", - "s" - ], - [ - "▁Original", - "s" - ], - [ - "▁Origin", - "als" - ], - [ - "▁Orig", - "inals" - ], - [ - "comm", - "ands" - ], - [ - "command", - "s" - ], - [ - "Ex", - "port" - ], - [ - "Exp", - "ort" - ], - [ - "▁A", - "vec" - ], - [ - "▁Av", - "ec" - ], - [ - "▁sole", - "mn" - ], - [ - "▁solem", - "n" - ], - [ - "▁correct", - "ion" - ], - [ - "▁corre", - "ction" - ], - [ - "▁corr", - "ection" - ], - [ - "▁про", - "води" - ], - [ - "▁прово", - "ди" - ], - [ - "▁Mo", - "sk" - ], - [ - "▁Mos", - "k" - ], - [ - "▁по", - "до" - ], - [ - "▁под", - "о" - ], - [ - "▁geb", - "ied" - ], - [ - "▁nast", - "ęp" - ], - [ - "▁D", - "river" - ], - [ - "▁Dr", - "iver" - ], - [ - "▁Drive", - "r" - ], - [ - "▁", - "Driver" - ], - [ - "▁O", - "ok" - ], - [ - "▁V", - "ec" - ], - [ - "▁Ve", - "c" - ], - [ - "▁", - "Vec" - ], - [ - "▁lung", - "o" - ], - [ - "▁lun", - "go" - ], - [ - "fi", - "cos" - ], - [ - "fic", - "os" - ], - [ - "fico", - "s" - ], - [ - "f", - "icos" - ], - [ - "▁s", - "vol" - ], - [ - "▁sv", - "ol" - ], - [ - "▁svo", - "l" - ], - [ - "▁k", - "id" - ], - [ - "▁ki", - "d" - ], - [ - "n", - "ja" - ], - [ - "▁H", - "r" - ], - [ - "▁под", - "дер" - ], - [ - "▁vis", - "ibility" - ], - [ - "▁", - "visibility" - ], - [ - "▁M", - "éd" - ], - [ - "▁Mé", - "d" - ], - [ - "▁c", - "pu" - ], - [ - "▁cp", - "u" - ], - [ - "▁", - "cpu" - ], - [ - "dis", - "cussion" - ], - [ - "As", - "set" - ], - [ - "Ass", - "et" - ], - [ - "▁def", - "ense" - ], - [ - "▁Any", - "one" - ], - [ - "▁Just", - "in" - ], - [ - "is", - "zt" - ], - [ - "isz", - "t" - ], - [ - "▁Coll", - "ins" - ], - [ - "▁Val", - "ent" - ], - [ - "▁P", - "ale" - ], - [ - "▁Pa", - "le" - ], - [ - "▁Pal", - "e" - ], - [ - "▁f", - "uel" - ], - [ - "▁fue", - "l" - ], - [ - "▁fu", - "el" - ], - [ - "▁n", - "ose" - ], - [ - "▁no", - "se" - ], - [ - "▁nos", - "e" - ], - [ - "rí", - "guez" - ], - [ - "▁Sch", - "les" - ], - [ - "▁Schl", - "es" - ], - [ - "▁Mal", - "ays" - ], - [ - "▁com", - "mut" - ], - [ - "▁comm", - "ut" - ], - [ - "dr", - "o" - ], - [ - "d", - "ro" - ], - [ - "ui", - "ng" - ], - [ - "u", - "ing" - ], - [ - "▁R", - "ico" - ], - [ - "▁Ric", - "o" - ], - [ - "▁Ri", - "co" - ], - [ - "▁Em", - "ma" - ], - [ - "or", - "p" - ], - [ - "o", - "rp" - ], - [ - "▁K", - "irk" - ], - [ - "▁Kir", - "k" - ], - [ - "▁Qu", - "ando" - ], - [ - "▁Ne", - "ue" - ], - [ - "▁Neu", - "e" - ], - [ - "▁de", - "mande" - ], - [ - "▁dem", - "ande" - ], - [ - "▁demand", - "e" - ], - [ - "▁C", - "over" - ], - [ - "▁Co", - "ver" - ], - [ - "▁Cov", - "er" - ], - [ - "▁res", - "cue" - ], - [ - "▁gew", - "ählt" - ], - [ - "▁Cal", - "endar" - ], - [ - "▁", - "Calendar" - ], - [ - "▁Mad", - "onna" - ], - [ - "W", - "P" - ], - [ - "os", - "hi" - ], - [ - "osh", - "i" - ], - [ - "▁M", - "aven" - ], - [ - "▁Ma", - "ven" - ], - [ - "▁b", - "elle" - ], - [ - "▁be", - "lle" - ], - [ - "▁bel", - "le" - ], - [ - "▁bell", - "e" - ], - [ - "▁w", - "x" - ], - [ - "▁", - "wx" - ], - [ - "▁su", - "gar" - ], - [ - "▁sug", - "ar" - ], - [ - "▁Bet", - "rieb" - ], - [ - "▁equilib", - "rium" - ], - [ - "E", - "AR" - ], - [ - "▁text", - "s" - ], - [ - "▁tex", - "ts" - ], - [ - "сло", - "в" - ], - [ - "с", - "лов" - ], - [ - "▁czerw", - "ca" - ], - [ - "▁D", - "üsseld" - ], - [ - "▁EL", - "SE" - ], - [ - "▁am", - "ery" - ], - [ - "▁amer", - "y" - ], - [ - "▁a", - "ni" - ], - [ - "▁an", - "i" - ], - [ - "▁", - "ani" - ], - [ - "▁o", - "bey" - ], - [ - "▁ob", - "ey" - ], - [ - "▁N", - "ell" - ], - [ - "▁Ne", - "ll" - ], - [ - "▁Nel", - "l" - ], - [ - "▁in", - "ne" - ], - [ - "▁inn", - "e" - ], - [ - "▁т", - "ро" - ], - [ - "▁", - "тро" - ], - [ - "F", - "D" - ], - [ - "cc", - "o" - ], - [ - "c", - "co" - ], - [ - "▁Z", - "ob" - ], - [ - "▁Zo", - "b" - ], - [ - "al", - "ette" - ], - [ - "ale", - "tte" - ], - [ - "alet", - "te" - ], - [ - "a", - "lette" - ], - [ - "▁má", - "jus" - ], - [ - "ect", - "ed" - ], - [ - "ec", - "ted" - ], - [ - "e", - "cted" - ], - [ - "▁Tur", - "key" - ], - [ - "▁Turk", - "ey" - ], - [ - "▁Wh", - "ether" - ], - [ - "▁Whe", - "ther" - ], - [ - "q", - "i" - ], - [ - "▁ш", - "то" - ], - [ - "▁head", - "quarters" - ], - [ - "en", - "di" - ], - [ - "end", - "i" - ], - [ - "ar", - "us" - ], - [ - "aru", - "s" - ], - [ - "a", - "rus" - ], - [ - "op", - "us" - ], - [ - "o", - "pus" - ], - [ - "▁з", - "оло" - ], - [ - "▁зо", - "ло" - ], - [ - "▁de", - "stru" - ], - [ - "▁dest", - "ru" - ], - [ - "▁L", - "ok" - ], - [ - "▁Lo", - "k" - ], - [ - "▁satisf", - "action" - ], - [ - "()", - "\r" - ], - [ - "(", - ")\r" - ], - [ - "▁Т", - "ер" - ], - [ - "▁Те", - "р" - ], - [ - "Jo", - "se" - ], - [ - "J", - "ose" - ], - [ - "▁con", - "quer" - ], - [ - "▁conqu", - "er" - ], - [ - "▁E", - "ffect" - ], - [ - "▁", - "Effect" - ], - [ - "Layout", - "Params" - ], - [ - "ie", - "z" - ], - [ - "i", - "ez" - ], - [ - "▁extern", - "s" - ], - [ - "▁gegen", - "über" - ], - [ - "▁E", - "SP" - ], - [ - "▁ES", - "P" - ], - [ - "ol", - "ta" - ], - [ - "olt", - "a" - ], - [ - "process", - "or" - ], - [ - "proc", - "essor" - ], - [ - "▁K", - "ult" - ], - [ - "▁Ku", - "lt" - ], - [ - "▁Atl", - "anta" - ], - [ - "▁t", - "ier" - ], - [ - "▁ti", - "er" - ], - [ - "▁tie", - "r" - ], - [ - "Oper", - "ator" - ], - [ - "▁ди", - "а" - ], - [ - "▁пи", - "сь" - ], - [ - "▁gro", - "ß" - ], - [ - "▁he", - "arts" - ], - [ - "▁heart", - "s" - ], - [ - "▁hear", - "ts" - ], - [ - "▁mill", - "imeter" - ], - [ - "al", - "though" - ], - [ - "alth", - "ough" - ], - [ - "al", - "les" - ], - [ - "all", - "es" - ], - [ - "alle", - "s" - ], - [ - "a", - "lles" - ], - [ - "▁Mag", - "ic" - ], - [ - "tr", - "aining" - ], - [ - "tra", - "ining" - ], - [ - "train", - "ing" - ], - [ - "ol", - "ine" - ], - [ - "oli", - "ne" - ], - [ - "olin", - "e" - ], - [ - "o", - "line" - ], - [ - "▁орган", - "і" - ], - [ - ">\\<", - "^" - ], - [ - ">", - "\\<^" - ], - [ - "ці", - "аль" - ], - [ - "ex", - "ports" - ], - [ - "export", - "s" - ], - [ - "Work", - "book" - ], - [ - "▁вере", - "сня" - ], - [ - "▁t", - "eles" - ], - [ - "▁te", - "les" - ], - [ - "▁tele", - "s" - ], - [ - "▁tel", - "es" - ], - [ - "▁econom", - "y" - ], - [ - "▁econ", - "omy" - ], - [ - "▁ec", - "onomy" - ], - [ - "▁t", - "rap" - ], - [ - "▁tr", - "ap" - ], - [ - "▁tra", - "p" - ], - [ - "▁ref", - "use" - ], - [ - "▁str", - "anger" - ], - [ - "▁strange", - "r" - ], - [ - "▁stran", - "ger" - ], - [ - "▁inst", - "inct" - ], - [ - "по", - "да" - ], - [ - "ol", - "an" - ], - [ - "ola", - "n" - ], - [ - "o", - "lan" - ], - [ - "▁n", - "ing" - ], - [ - "▁ni", - "ng" - ], - [ - "▁nin", - "g" - ], - [ - "▁", - "ning" - ], - [ - "inf", - "late" - ], - [ - "infl", - "ate" - ], - [ - "itat", - "ea" - ], - [ - "itate", - "a" - ], - [ - "ack", - "s" - ], - [ - "ac", - "ks" - ], - [ - "a", - "cks" - ], - [ - "▁J", - "oy" - ], - [ - "▁Jo", - "y" - ], - [ - "FL", - "AG" - ], - [ - "FLA", - "G" - ], - [ - "ail", - "and" - ], - [ - "ai", - "land" - ], - [ - "▁sort", - "i" - ], - [ - "▁sor", - "ti" - ], - [ - "▁в", - "пер" - ], - [ - "▁p", - "én" - ], - [ - "▁pé", - "n" - ], - [ - "Not", - "hing" - ], - [ - "No", - "thing" - ], - [ - "N", - "othing" - ], - [ - "▁sz", - "áz" - ], - [ - "▁Á", - "ng" - ], - [ - "▁A", - "UT" - ], - [ - "▁", - "AUT" - ], - [ - "Act", - "ions" - ], - [ - "Action", - "s" - ], - [ - "A", - "ctions" - ], - [ - "E", - "very" - ], - [ - "▁чер", - "вня" - ], - [ - "▁авто", - "мо" - ], - [ - "▁rout", - "ine" - ], - [ - "▁e", - "struct" - ], - [ - "▁est", - "ruct" - ], - [ - "▁G", - "ang" - ], - [ - "▁Ga", - "ng" - ], - [ - "▁Gan", - "g" - ], - [ - "▁h", - "oles" - ], - [ - "▁ho", - "les" - ], - [ - "▁hol", - "es" - ], - [ - "▁hole", - "s" - ], - [ - "th", - "esis" - ], - [ - "thes", - "is" - ], - [ - "▁con", - "cl" - ], - [ - "▁conc", - "l" - ], - [ - "▁p", - "é" - ], - [ - "ri", - "ers" - ], - [ - "rie", - "rs" - ], - [ - "rier", - "s" - ], - [ - "r", - "iers" - ], - [ - "ро", - "вой" - ], - [ - "рово", - "й" - ], - [ - "р", - "овой" - ], - [ - "ad", - "ic" - ], - [ - "adi", - "c" - ], - [ - "a", - "dic" - ], - [ - "Sp", - "eed" - ], - [ - "Spe", - "ed" - ], - [ - "▁command", - "ed" - ], - [ - "▁N", - "azionale" - ], - [ - "▁Naz", - "ionale" - ], - [ - "Man", - "aged" - ], - [ - "▁DE", - "CLARE" - ], - [ - "▁se", - "dan" - ], - [ - "▁sed", - "an" - ], - [ - "String", - "s" - ], - [ - "Str", - "ings" - ], - [ - "▁sa", - "cred" - ], - [ - "▁sac", - "red" - ], - [ - "▁sacr", - "ed" - ], - [ - "ter", - "such" - ], - [ - "ters", - "uch" - ], - [ - "▁abit", - "anti" - ], - [ - "br", - "it" - ], - [ - "b", - "rit" - ], - [ - "▁N", - "CAA" - ], - [ - "▁NC", - "AA" - ], - [ - "▁С", - "П" - ], - [ - "▁a", - "ged" - ], - [ - "▁ag", - "ed" - ], - [ - "▁age", - "d" - ], - [ - "▁", - "aged" - ], - [ - "▁Ch", - "iesa" - ], - [ - "▁Chi", - "esa" - ], - [ - "▁re", - "vision" - ], - [ - "▁rev", - "ision" - ], - [ - "▁revis", - "ion" - ], - [ - "op", - "ro" - ], - [ - "o", - "pro" - ], - [ - "▁over", - "write" - ], - [ - "emb", - "ros" - ], - [ - "embro", - "s" - ], - [ - "▁sort", - "ie" - ], - [ - "▁sorti", - "e" - ], - [ - "▁ot", - "ten" - ], - [ - "▁ott", - "en" - ], - [ - "xi", - "v" - ], - [ - "x", - "iv" - ], - [ - "▁d", - "eli" - ], - [ - "▁de", - "li" - ], - [ - "▁del", - "i" - ], - [ - "▁A", - "sp" - ], - [ - "▁As", - "p" - ], - [ - "▁b", - "alls" - ], - [ - "▁bal", - "ls" - ], - [ - "▁ball", - "s" - ], - [ - "ka", - "f" - ], - [ - "k", - "af" - ], - [ - "▁br", - "ave" - ], - [ - "▁bra", - "ve" - ], - [ - "▁все", - "го" - ], - [ - "▁вс", - "его" - ], - [ - "eg", - "n" - ], - [ - "e", - "gn" - ], - [ - "jp", - "eg" - ], - [ - "▁O", - "sten" - ], - [ - "▁Os", - "ten" - ], - [ - "▁Ost", - "en" - ], - [ - "Const", - "ants" - ], - [ - "▁Inf", - "antry" - ], - [ - "▁N", - "ev" - ], - [ - "▁Ne", - "v" - ], - [ - "▁я", - "ких" - ], - [ - "▁як", - "их" - ], - [ - "▁му", - "ниципа" - ], - [ - "ci", - "ja" - ], - [ - "c", - "ija" - ], - [ - "▁p", - "oem" - ], - [ - "▁po", - "em" - ], - [ - "▁ne", - "gro" - ], - [ - "▁neg", - "ro" - ], - [ - "ха", - "р" - ], - [ - "х", - "ар" - ], - [ - "▁A", - "sk" - ], - [ - "▁As", - "k" - ], - [ - "▁a", - "vo" - ], - [ - "▁av", - "o" - ], - [ - "▁", - "avo" - ], - [ - "▁Me", - "yer" - ], - [ - "▁Mey", - "er" - ], - [ - "▁W", - "esten" - ], - [ - "▁We", - "sten" - ], - [ - "▁West", - "en" - ], - [ - "▁Wes", - "ten" - ], - [ - "▁o", - "ko" - ], - [ - "▁ok", - "o" - ], - [ - "▁", - "oko" - ], - [ - "ag", - "in" - ], - [ - "agi", - "n" - ], - [ - "a", - "gin" - ], - [ - "▁Süd", - "en" - ], - [ - "▁Sü", - "den" - ], - [ - "ent", - "ries" - ], - [ - "entr", - "ies" - ], - [ - "▁Rep", - "ublik" - ], - [ - "▁Repub", - "lik" - ], - [ - "Collection", - "View" - ], - [ - "--", - "-----" - ], - [ - "----", - "---" - ], - [ - "---", - "----" - ], - [ - "------", - "-" - ], - [ - "-----", - "--" - ], - [ - "-", - "------" - ], - [ - "▁fire", - "fox" - ], - [ - "▁alc", - "une" - ], - [ - "▁фо", - "то" - ], - [ - "▁отри", - "ма" - ], - [ - "~~~~", - "~~~~" - ], - [ - "▁Ра", - "з" - ], - [ - "▁Com", - "plex" - ], - [ - "▁Comp", - "lex" - ], - [ - "▁Comple", - "x" - ], - [ - "▁p", - "ia" - ], - [ - "▁pi", - "a" - ], - [ - "▁public", - "ada" - ], - [ - "we", - "i" - ], - [ - "w", - "ei" - ], - [ - "ced", - "ure" - ], - [ - "occup", - "ation" - ], - [ - "▁medic", - "ine" - ], - [ - "▁dr", - "ove" - ], - [ - "▁dro", - "ve" - ], - [ - "Pro", - "blem" - ], - [ - "▁beg", - "inner" - ], - [ - "▁begin", - "ner" - ], - [ - "▁thorough", - "ly" - ], - [ - "ur", - "ia" - ], - [ - "uri", - "a" - ], - [ - "u", - "ria" - ], - [ - "av", - "ant" - ], - [ - "ava", - "nt" - ], - [ - "avan", - "t" - ], - [ - "uch", - "a" - ], - [ - "uc", - "ha" - ], - [ - "u", - "cha" - ], - [ - "▁l", - "ever" - ], - [ - "▁le", - "ver" - ], - [ - "▁lev", - "er" - ], - [ - "▁te", - "atro" - ], - [ - "▁teat", - "ro" - ], - [ - "AV", - "A" - ], - [ - "A", - "VA" - ], - [ - "sq", - "u" - ], - [ - "s", - "qu" - ], - [ - "tr", - "at" - ], - [ - "tra", - "t" - ], - [ - "t", - "rat" - ], - [ - "iv", - "atal" - ], - [ - "iva", - "tal" - ], - [ - "▁d", - "irty" - ], - [ - "▁dir", - "ty" - ], - [ - "▁se", - "conde" - ], - [ - "▁second", - "e" - ], - [ - "▁sec", - "onde" - ], - [ - "▁grav", - "it" - ], - [ - "▁pro", - "position" - ], - [ - "▁prop", - "osition" - ], - [ - "▁propos", - "ition" - ], - [ - "h", - "bar" - ], - [ - "om", - "ini" - ], - [ - "omin", - "i" - ], - [ - "omi", - "ni" - ], - [ - "▁", - "”" - ], - [ - "▁C", - "amil" - ], - [ - "▁Cam", - "il" - ], - [ - "▁Ca", - "mil" - ], - [ - "▁qu", - "een" - ], - [ - "▁que", - "en" - ], - [ - "mod", - "ifier" - ], - [ - "J", - "an" - ], - [ - "▁l", - "yr" - ], - [ - "▁ly", - "r" - ], - [ - "Com", - "boBox" - ], - [ - "ion", - "ic" - ], - [ - "io", - "nic" - ], - [ - "ioni", - "c" - ], - [ - "i", - "onic" - ], - [ - "▁h", - "oly" - ], - [ - "▁ho", - "ly" - ], - [ - "▁hol", - "y" - ], - [ - "▁Sebast", - "ian" - ], - [ - "|", - "_{" - ], - [ - "▁{", - "@" - ], - [ - "▁мо", - "жно" - ], - [ - "▁мож", - "но" - ], - [ - "▁Cre", - "ative" - ], - [ - "▁inter", - "ess" - ], - [ - "▁inte", - "ress" - ], - [ - "▁C", - "T" - ], - [ - "▁", - "CT" - ], - [ - "i", - "ções" - ], - [ - "▁ch", - "ant" - ], - [ - "▁cha", - "nt" - ], - [ - "▁", - "chant" - ], - [ - "▁wsp", - "ół" - ], - [ - "▁Мекси", - "ка" - ], - [ - "▁ran", - "ked" - ], - [ - "▁rank", - "ed" - ], - [ - "▁paździer", - "nika" - ], - [ - "▁b", - "rut" - ], - [ - "▁br", - "ut" - ], - [ - "▁bru", - "t" - ], - [ - "▁far", - "ther" - ], - [ - "▁V", - "erb" - ], - [ - "▁Ver", - "b" - ], - [ - "▁Ve", - "rb" - ], - [ - "▁S", - "even" - ], - [ - "▁Se", - "ven" - ], - [ - "lb", - "l" - ], - [ - "l", - "bl" - ], - [ - "▁mention", - "s" - ], - [ - "▁ment", - "ions" - ], - [ - "▁F", - "ight" - ], - [ - "▁Fig", - "ht" - ], - [ - "if", - "en" - ], - [ - "ife", - "n" - ], - [ - "i", - "fen" - ], - [ - "▁b", - "og" - ], - [ - "▁bo", - "g" - ], - [ - "▁re", - "gres" - ], - [ - "▁reg", - "res" - ], - [ - "▁sc", - "oring" - ], - [ - "ic", - "ane" - ], - [ - "ica", - "ne" - ], - [ - "ican", - "e" - ], - [ - "▁El", - "li" - ], - [ - "▁Ell", - "i" - ], - [ - "▁pie", - "rw" - ], - [ - "▁pier", - "w" - ], - [ - "me", - "asure" - ], - [ - "ński", - "ej" - ], - [ - "ń", - "skiej" - ], - [ - "#", - "{" - ], - [ - "▁де", - "ся" - ], - [ - "▁var", - "maste" - ], - [ - "▁Un", - "ix" - ], - [ - "I", - "Z" - ], - [ - "iti", - "é" - ], - [ - "Prim", - "ary" - ], - [ - "▁Spring", - "er" - ], - [ - "▁Spr", - "inger" - ], - [ - "ün", - "g" - ], - [ - "ü", - "ng" - ], - [ - "▁an", - "v" - ], - [ - "▁vers", - "ione" - ], - [ - "▁version", - "e" - ], - [ - "▁should", - "ers" - ], - [ - "▁shoulder", - "s" - ], - [ - "▁бри", - "га" - ], - [ - "▁j", - "av" - ], - [ - "▁ja", - "v" - ], - [ - "▁", - "jav" - ], - [ - "lt", - "al" - ], - [ - "l", - "tal" - ], - [ - "▁kall", - "aste" - ], - [ - "▁Mitch", - "ell" - ], - [ - "▁wire", - "less" - ], - [ - "▁wir", - "eless" - ], - [ - "▁Á", - "l" - ], - [ - "resp", - "ons" - ], - [ - "co", - "uld" - ], - [ - "cou", - "ld" - ], - [ - "c", - "ould" - ], - [ - "▁re", - "lax" - ], - [ - "▁rel", - "ax" - ], - [ - "▁rela", - "x" - ], - [ - "▁", - "relax" - ], - [ - "Lo", - "nd" - ], - [ - "L", - "ond" - ], - [ - "ń", - "cz" - ], - [ - "ство", - "вал" - ], - [ - "ствова", - "л" - ], - [ - "▁pol", - "ski" - ], - [ - "en", - "ç" - ], - [ - "za", - "r" - ], - [ - "z", - "ar" - ], - [ - "▁d", - "type" - ], - [ - "▁dt", - "ype" - ], - [ - "ow", - "ned" - ], - [ - "own", - "ed" - ], - [ - "un", - "known" - ], - [ - "unk", - "nown" - ], - [ - "▁m", - "utable" - ], - [ - "▁mu", - "table" - ], - [ - "▁mut", - "able" - ], - [ - "▁", - "mutable" - ], - [ - "▁si", - "empre" - ], - [ - "▁Mont", - "real" - ], - [ - "▁loc", - "ate" - ], - [ - "▁tr", - "aces" - ], - [ - "▁tra", - "ces" - ], - [ - "▁trace", - "s" - ], - [ - "▁trac", - "es" - ], - [ - "▁ins", - "gesamt" - ], - [ - "▁N", - "il" - ], - [ - "▁Ni", - "l" - ], - [ - "▁", - "Nil" - ], - [ - "▁п", - "рода" - ], - [ - "▁про", - "да" - ], - [ - "▁прод", - "а" - ], - [ - "▁War", - "ner" - ], - [ - "▁N", - "au" - ], - [ - "▁Na", - "u" - ], - [ - "tri", - "angle" - ], - [ - "▁concentr", - "ation" - ], - [ - "▁gentle", - "men" - ], - [ - "äch", - "t" - ], - [ - "ä", - "cht" - ], - [ - "fil", - "ters" - ], - [ - "filter", - "s" - ], - [ - "inci", - "pal" - ], - [ - "VAL", - "ID" - ], - [ - "▁де", - "пута" - ], - [ - "ad", - "ó" - ], - [ - "▁kon", - "st" - ], - [ - "gs", - "å" - ], - [ - "ag", - "as" - ], - [ - "aga", - "s" - ], - [ - "a", - "gas" - ], - [ - "▁meille", - "ur" - ], - [ - "▁дан", - "ным" - ], - [ - "є", - "дна" - ], - [ - "en", - "coded" - ], - [ - "enc", - "oded" - ], - [ - "encode", - "d" - ], - [ - "<", - "'" - ], - [ - "▁she", - "ets" - ], - [ - "▁sheet", - "s" - ], - [ - "▁", - "sheets" - ], - [ - "cu", - "ador" - ], - [ - "▁викори", - "стову" - ], - [ - "▁De", - "put" - ], - [ - "▁Dep", - "ut" - ], - [ - "▁man", - "ière" - ], - [ - "ą", - "g" - ], - [ - "cs", - "ol" - ], - [ - "c", - "sol" - ], - [ - ")$", - "-" - ], - [ - ")", - "$-" - ], - [ - "UI", - "View" - ], - [ - "▁mill", - "ones" - ], - [ - "▁E", - "hren" - ], - [ - "▁Ehr", - "en" - ], - [ - "Si", - "l" - ], - [ - "S", - "il" - ], - [ - "▁a", - "tac" - ], - [ - "▁at", - "ac" - ], - [ - "▁C", - "old" - ], - [ - "▁Col", - "d" - ], - [ - "▁Co", - "ld" - ], - [ - "\"", - "\\" - ], - [ - "▁appro", - "ached" - ], - [ - "▁approach", - "ed" - ], - [ - "▁Års", - "med" - ], - [ - "W", - "M" - ], - [ - "▁De", - "port" - ], - [ - "▁Dep", - "ort" - ], - [ - "mi", - "s" - ], - [ - "m", - "is" - ], - [ - "and", - "box" - ], - [ - "ob", - "serv" - ], - [ - "obs", - "erv" - ], - [ - "set", - "ting" - ], - [ - "sett", - "ing" - ], - [ - "ha", - "tó" - ], - [ - "hat", - "ó" - ], - [ - "h", - "ató" - ], - [ - "▁s", - "trat" - ], - [ - "▁st", - "rat" - ], - [ - "▁str", - "at" - ], - [ - "▁stra", - "t" - ], - [ - "▁s", - "pre" - ], - [ - "▁sp", - "re" - ], - [ - "▁spr", - "e" - ], - [ - "▁", - "spre" - ], - [ - "▁person", - "ne" - ], - [ - "▁pers", - "onne" - ], - [ - "▁personn", - "e" - ], - [ - "▁dir", - "ige" - ], - [ - "▁dirig", - "e" - ], - [ - "pu", - "ll" - ], - [ - "p", - "ull" - ], - [ - "da", - "ting" - ], - [ - "dat", - "ing" - ], - [ - "d", - "ating" - ], - [ - "▁F", - "act" - ], - [ - "▁Fa", - "ct" - ], - [ - "▁Fac", - "t" - ], - [ - "▁", - "Fact" - ], - [ - "▁manip", - "ulate" - ], - [ - "▁M", - "AC" - ], - [ - "▁MA", - "C" - ], - [ - "▁d", - "ej" - ], - [ - "▁de", - "j" - ], - [ - "ult", - "imo" - ], - [ - "F", - "X" - ], - [ - "Li", - "fe" - ], - [ - "L", - "ife" - ], - [ - "▁c", - "rack" - ], - [ - "▁cr", - "ack" - ], - [ - "▁cra", - "ck" - ], - [ - "▁m", - "í" - ], - [ - "▁п", - "ове" - ], - [ - "▁по", - "ве" - ], - [ - "▁пов", - "е" - ], - [ - "▁w", - "ore" - ], - [ - "▁wor", - "e" - ], - [ - "▁wo", - "re" - ], - [ - "univers", - "ité" - ], - [ - "▁form", - "ulas" - ], - [ - "▁formula", - "s" - ], - [ - "▁Elis", - "abeth" - ], - [ - "pl", - "ots" - ], - [ - "plot", - "s" - ], - [ - "mi", - "le" - ], - [ - "mil", - "e" - ], - [ - "m", - "ile" - ], - [ - "▁me", - "nor" - ], - [ - "▁men", - "or" - ], - [ - "ти", - "л" - ], - [ - "т", - "ил" - ], - [ - "key", - "word" - ], - [ - "▁Balt", - "imore" - ], - [ - "hr", - "er" - ], - [ - "hre", - "r" - ], - [ - "h", - "rer" - ], - [ - "▁C", - "lement" - ], - [ - "▁Cl", - "ement" - ], - [ - "▁Cle", - "ment" - ], - [ - "vi", - "m" - ], - [ - "v", - "im" - ], - [ - "ra", - "ss" - ], - [ - "ras", - "s" - ], - [ - "r", - "ass" - ], - [ - "T", - "ake" - ], - [ - "▁cím", - "ű" - ], - [ - "▁Con", - "vention" - ], - [ - "at", - "ge" - ], - [ - "se", - "ed" - ], - [ - "see", - "d" - ], - [ - "s", - "eed" - ], - [ - "▁D", - "í" - ], - [ - "▁Sp", - "ider" - ], - [ - "ah", - "oo" - ], - [ - "aho", - "o" - ], - [ - "▁име", - "ет" - ], - [ - "ühr", - "t" - ], - [ - "üh", - "rt" - ], - [ - "▁по", - "писа" - ], - [ - "▁C", - "ot" - ], - [ - "▁Co", - "t" - ], - [ - "▁no", - "bles" - ], - [ - "▁noble", - "s" - ], - [ - "▁nob", - "les" - ], - [ - "RE", - "SS" - ], - [ - "RES", - "S" - ], - [ - "▁che", - "min" - ], - [ - "▁chem", - "in" - ], - [ - "▁gł", - "ówn" - ], - [ - "G", - "G" - ], - [ - "▁German", - "ia" - ], - [ - "▁Ger", - "mania" - ], - [ - "▁Germ", - "ania" - ], - [ - "▁Alexand", - "re" - ], - [ - "he", - "ns" - ], - [ - "hen", - "s" - ], - [ - "h", - "ens" - ], - [ - "sw", - "ift" - ], - [ - "oo", - "p" - ], - [ - "o", - "op" - ], - [ - "Sub", - "view" - ], - [ - "▁requ", - "iring" - ], - [ - "ęd", - "zy" - ], - [ - "ędz", - "y" - ], - [ - "▁f", - "ict" - ], - [ - "▁fi", - "ct" - ], - [ - "▁fic", - "t" - ], - [ - "▁Кон", - "стан" - ], - [ - "▁dé", - "put" - ], - [ - "▁dép", - "ut" - ], - [ - "▁surpr", - "ising" - ], - [ - "▁de", - "ix" - ], - [ - "▁dei", - "x" - ], - [ - "▁unter", - "schied" - ], - [ - "in", - "son" - ], - [ - "ins", - "on" - ], - [ - "▁Char", - "acter" - ], - [ - "▁", - "Character" - ], - [ - "▁g", - "estion" - ], - [ - "▁ges", - "tion" - ], - [ - "▁gest", - "ion" - ], - [ - "ch", - "us" - ], - [ - "c", - "hus" - ], - [ - "com", - "es" - ], - [ - "co", - "mes" - ], - [ - "come", - "s" - ], - [ - "▁n", - "eur" - ], - [ - "▁ne", - "ur" - ], - [ - "▁neu", - "r" - ], - [ - "▁", - "neur" - ], - [ - "▁ye", - "ux" - ], - [ - "ol", - "lar" - ], - [ - "oll", - "ar" - ], - [ - "▁par", - "ad" - ], - [ - "▁para", - "d" - ], - [ - "▁pa", - "rad" - ], - [ - "▁mag", - "giore" - ], - [ - "▁maggio", - "re" - ], - [ - "▁maggior", - "e" - ], - [ - "TR", - "AN" - ], - [ - "▁vo", - "tre" - ], - [ - "▁vot", - "re" - ], - [ - "▁des", - "cent" - ], - [ - "▁desc", - "ent" - ], - [ - "▁I", - "con" - ], - [ - "▁", - "Icon" - ], - [ - "▁Jud", - "ge" - ], - [ - "▁occup", - "ation" - ], - [ - "▁", - "occupation" - ], - [ - "ep", - "ing" - ], - [ - "e", - "ping" - ], - [ - "▁ton", - "gue" - ], - [ - "▁tong", - "ue" - ], - [ - "▁En", - "llaços" - ], - [ - "ru", - "f" - ], - [ - "r", - "uf" - ], - [ - "▁prote", - "in" - ], - [ - "▁prot", - "ein" - ], - [ - "▁vis", - "itors" - ], - [ - "▁visit", - "ors" - ], - [ - "▁visitor", - "s" - ], - [ - "ax", - "y" - ], - [ - "a", - "xy" - ], - [ - "es", - "ten" - ], - [ - "est", - "en" - ], - [ - "este", - "n" - ], - [ - "e", - "sten" - ], - [ - "bl", - "ica" - ], - [ - "blic", - "a" - ], - [ - "b", - "lica" - ], - [ - "h", - "w" - ], - [ - "▁spir", - "its" - ], - [ - "▁spirit", - "s" - ], - [ - "▁redu", - "ces" - ], - [ - "▁reduce", - "s" - ], - [ - "▁м", - "ен" - ], - [ - "▁ме", - "н" - ], - [ - "▁", - "мен" - ], - [ - "▁L", - "amb" - ], - [ - "▁La", - "mb" - ], - [ - "▁Lam", - "b" - ], - [ - "▁M", - "ine" - ], - [ - "▁Min", - "e" - ], - [ - "▁Mi", - "ne" - ], - [ - "▁ver", - "ified" - ], - [ - "▁B", - "aby" - ], - [ - "▁Ba", - "by" - ], - [ - "▁Bab", - "y" - ], - [ - "▁pr", - "ize" - ], - [ - "▁pri", - "ze" - ], - [ - "в", - "ър" - ], - [ - "▁rat", - "ings" - ], - [ - "▁rating", - "s" - ], - [ - "▁f", - "ore" - ], - [ - "▁for", - "e" - ], - [ - "▁fo", - "re" - ], - [ - "▁", - "fore" - ], - [ - "as", - "ha" - ], - [ - "ash", - "a" - ], - [ - "a", - "sha" - ], - [ - "ur", - "rence" - ], - [ - "urr", - "ence" - ], - [ - "▁int", - "ér" - ], - [ - "▁Ol", - "ímp" - ], - [ - "cr", - "a" - ], - [ - "c", - "ra" - ], - [ - "▁comput", - "ational" - ], - [ - "▁computation", - "al" - ], - [ - "ir", - "che" - ], - [ - "irc", - "he" - ], - [ - ".:", - " " - ], - [ - "▁illustr", - "ated" - ], - [ - "▁illustrate", - "d" - ], - [ - "▁Sh", - "are" - ], - [ - "▁house", - "holds" - ], - [ - "▁household", - "s" - ], - [ - "▁con", - "volution" - ], - [ - "oe", - "md" - ], - [ - "oem", - "d" - ], - [ - "▁zd", - "oby" - ], - [ - "▁zdob", - "y" - ], - [ - "cc", - "c" - ], - [ - "c", - "cc" - ], - [ - "▁quant", - "ities" - ], - [ - "Ch", - "e" - ], - [ - "C", - "he" - ], - [ - "Sh", - "ould" - ], - [ - "▁ge", - "nius" - ], - [ - "▁gen", - "ius" - ], - [ - "ad", - "j" - ], - [ - "a", - "dj" - ], - [ - "х", - "ва" - ], - [ - "Пе", - "тер" - ], - [ - "EM", - "A" - ], - [ - "E", - "MA" - ], - [ - "▁R", - "ights" - ], - [ - "▁Right", - "s" - ], - [ - "▁E", - "li" - ], - [ - "▁El", - "i" - ], - [ - "VA", - "R" - ], - [ - "V", - "AR" - ], - [ - "ш", - "ло" - ], - [ - "▁з", - "бір" - ], - [ - "ift", - "ung" - ], - [ - "▁cont", - "ributed" - ], - [ - "▁contrib", - "uted" - ], - [ - "▁contribu", - "ted" - ], - [ - "▁contribute", - "d" - ], - [ - "ze", - "f" - ], - [ - "z", - "ef" - ], - [ - "▁CH", - "AR" - ], - [ - "▁", - "CHAR" - ], - [ - "▁S", - "ib" - ], - [ - "▁Si", - "b" - ], - [ - "▁M", - "ant" - ], - [ - "▁Man", - "t" - ], - [ - "▁Ma", - "nt" - ], - [ - "▁свя", - "зи" - ], - [ - "▁java", - "fx" - ], - [ - "▁c", - "ependant" - ], - [ - "▁in", - "tu" - ], - [ - "▁int", - "u" - ], - [ - "▁т", - "вор" - ], - [ - "▁", - "Ó" - ], - [ - "gu", - "er" - ], - [ - "gue", - "r" - ], - [ - "g", - "uer" - ], - [ - "ra", - "do" - ], - [ - "rad", - "o" - ], - [ - "r", - "ado" - ], - [ - "▁Re", - "vol" - ], - [ - "▁Rev", - "ol" - ], - [ - "▁fé", - "min" - ], - [ - "▁Or", - "leans" - ], - [ - "▁p", - "oj" - ], - [ - "▁po", - "j" - ], - [ - "▁p", - "rez" - ], - [ - "▁pr", - "ez" - ], - [ - "▁pre", - "z" - ], - [ - "Te", - "x" - ], - [ - "T", - "ex" - ], - [ - "ou", - "wd" - ], - [ - "ouw", - "d" - ], - [ - "?", - "(" - ], - [ - "▁L", - "IM" - ], - [ - "▁LI", - "M" - ], - [ - "ist", - "ique" - ], - [ - "isti", - "que" - ], - [ - "es", - "ar" - ], - [ - "esa", - "r" - ], - [ - "▁he", - "ures" - ], - [ - "ic", - "ki" - ], - [ - "ick", - "i" - ], - [ - "i", - "cki" - ], - [ - "▁d", - "bo" - ], - [ - "▁db", - "o" - ], - [ - "▁", - "dbo" - ], - [ - "sk", - "ih" - ], - [ - "ski", - "h" - ], - [ - "s", - "kih" - ], - [ - "conf", - "irm" - ], - [ - "▁vil", - "ág" - ], - [ - "▁ci", - "utat" - ], - [ - "▁D", - "R" - ], - [ - "▁", - "DR" - ], - [ - "▁Haw", - "ai" - ], - [ - "ch", - "ed" - ], - [ - "che", - "d" - ], - [ - "c", - "hed" - ], - [ - "▁s", - "pher" - ], - [ - "▁sp", - "her" - ], - [ - "▁Art", - "ikel" - ], - [ - "▁Multi", - "ple" - ], - [ - "ci", - "u" - ], - [ - "c", - "iu" - ], - [ - "▁м", - "ы" - ], - [ - "▁", - "мы" - ], - [ - "▁lip", - "ca" - ], - [ - "](", - "/" - ], - [ - "]", - "(/" - ], - [ - "Str", - "ategy" - ], - [ - "▁Al", - "abama" - ], - [ - "SD", - "K" - ], - [ - "S", - "DK" - ], - [ - "UT", - "C" - ], - [ - "U", - "TC" - ], - [ - "__", - "." - ], - [ - "_", - "_." - ], - [ - "Arg", - "uments" - ], - [ - "Argument", - "s" - ], - [ - "▁set", - "ContentView" - ], - [ - "î", - "le" - ], - [ - "By", - "Val" - ], - [ - "▁J", - "VM" - ], - [ - "юще", - "го" - ], - [ - "▁Leon", - "ard" - ], - [ - "▁just", - "ify" - ], - [ - "це", - "м" - ], - [ - "ц", - "ем" - ], - [ - "▁n", - "ab" - ], - [ - "▁na", - "b" - ], - [ - "▁", - "nab" - ], - [ - "CCE", - "SS" - ], - [ - "C", - "CESS" - ], - [ - "▁hope", - "s" - ], - [ - "▁ho", - "pes" - ], - [ - "▁hop", - "es" - ], - [ - ")", - "&" - ], - [ - "se", - "ro" - ], - [ - "ser", - "o" - ], - [ - "s", - "ero" - ], - [ - "▁за", - "й" - ], - [ - "слі", - "д" - ], - [ - "▁R", - "ég" - ], - [ - "▁Ré", - "g" - ], - [ - "▁S", - "ang" - ], - [ - "▁San", - "g" - ], - [ - "▁Sa", - "ng" - ], - [ - "▁f", - "ung" - ], - [ - "▁fun", - "g" - ], - [ - "▁fu", - "ng" - ], - [ - "ba", - "ar" - ], - [ - "b", - "aar" - ], - [ - "▁coff", - "ee" - ], - [ - "ass", - "embly" - ], - [ - "▁В", - "ін" - ], - [ - "▁Ві", - "н" - ], - [ - "э", - "й" - ], - [ - "▁comp", - "rend" - ], - [ - "▁compr", - "end" - ], - [ - "fil", - "led" - ], - [ - "fill", - "ed" - ], - [ - "f", - "illed" - ], - [ - "р", - "д" - ], - [ - "od", - "ia" - ], - [ - "odi", - "a" - ], - [ - "o", - "dia" - ], - [ - "▁g", - "ens" - ], - [ - "▁ge", - "ns" - ], - [ - "▁gen", - "s" - ], - [ - "▁", - "gens" - ], - [ - "fl", - "uss" - ], - [ - "flu", - "ss" - ], - [ - "f", - "luss" - ], - [ - "Draw", - "able" - ], - [ - "▁sur", - "ve" - ], - [ - "▁surv", - "e" - ], - [ - "Set", - "up" - ], - [ - "▁n", - "ależ" - ], - [ - "▁conj", - "unto" - ], - [ - "▁Е", - "го" - ], - [ - "▁old", - "al" - ], - [ - "▁ol", - "dal" - ], - [ - "▁ver", - "bose" - ], - [ - "▁verb", - "ose" - ], - [ - "▁Elect", - "ric" - ], - [ - "▁H", - "arrison" - ], - [ - "▁Harr", - "ison" - ], - [ - "▁Harris", - "on" - ], - [ - "en", - "gen" - ], - [ - "eng", - "en" - ], - [ - "par", - "agraph" - ], - [ - "para", - "graph" - ], - [ - "▁n", - "ouvelles" - ], - [ - "▁nouve", - "lles" - ], - [ - "▁nouvelle", - "s" - ], - [ - "▁вре", - "ме" - ], - [ - "▁m", - "emor" - ], - [ - "▁me", - "mor" - ], - [ - "▁mem", - "or" - ], - [ - "▁mayo", - "ría" - ], - [ - "▁mayor", - "ía" - ], - [ - "са", - "д" - ], - [ - "▁bat", - "aille" - ], - [ - "▁bata", - "ille" - ], - [ - "▁therm", - "al" - ], - [ - "▁ther", - "mal" - ], - [ - "▁Хро", - "нологи" - ], - [ - "▁B", - "etter" - ], - [ - "▁Bet", - "ter" - ], - [ - "by", - "e" - ], - [ - "b", - "ye" - ], - [ - "▁теа", - "тра" - ], - [ - "ro", - "e" - ], - [ - "r", - "oe" - ], - [ - "▁se", - "gle" - ], - [ - "▁seg", - "le" - ], - [ - "ro", - "tt" - ], - [ - "rot", - "t" - ], - [ - "r", - "ott" - ], - [ - "▁opin", - "ions" - ], - [ - "▁opinion", - "s" - ], - [ - ")}", - ")" - ], - [ - ")", - "})" - ], - [ - "üh", - "le" - ], - [ - "ühl", - "e" - ], - [ - "▁G", - "ün" - ], - [ - "▁Gü", - "n" - ], - [ - "▁", - "Щ" - ], - [ - "b", - "ól" - ], - [ - "▁Lar", - "ry" - ], - [ - "▁so", - "lic" - ], - [ - "▁sol", - "ic" - ], - [ - "▁z", - "war" - ], - [ - "▁zw", - "ar" - ], - [ - "▁Car", - "oline" - ], - [ - "▁Carol", - "ine" - ], - [ - "▁Reich", - "s" - ], - [ - "Ext", - "ensions" - ], - [ - "Extension", - "s" - ], - [ - "mi", - "gr" - ], - [ - "m", - "igr" - ], - [ - ":", - "@" - ], - [ - "▁en", - "umerate" - ], - [ - "▁enumer", - "ate" - ], - [ - "▁", - "enumerate" - ], - [ - "▁eigen", - "en" - ], - [ - "▁eig", - "enen" - ], - [ - "▁expl", - "ore" - ], - [ - "▁explo", - "re" - ], - [ - "ém", - "u" - ], - [ - "é", - "mu" - ], - [ - "▁g", - "at" - ], - [ - "▁ga", - "t" - ], - [ - "▁", - "gat" - ], - [ - "▁imper", - "ial" - ], - [ - "▁Us", - "ually" - ], - [ - "▁t", - "ud" - ], - [ - "▁tu", - "d" - ], - [ - "▁у", - "кра" - ], - [ - "hi", - "m" - ], - [ - "h", - "im" - ], - [ - "▁cor", - "ners" - ], - [ - "▁corner", - "s" - ], - [ - "▁corn", - "ers" - ], - [ - "▁S", - "ER" - ], - [ - "▁SE", - "R" - ], - [ - "▁", - "SER" - ], - [ - "▁interpre", - "ter" - ], - [ - "▁interpret", - "er" - ], - [ - "▁I", - "ce" - ], - [ - "▁amount", - "s" - ], - [ - "▁P", - "ala" - ], - [ - "▁Pa", - "la" - ], - [ - "▁Pal", - "a" - ], - [ - "▁t", - "inha" - ], - [ - "▁tin", - "ha" - ], - [ - "vo", - "le" - ], - [ - "vol", - "e" - ], - [ - "v", - "ole" - ], - [ - "▁g", - "le" - ], - [ - "▁gl", - "e" - ], - [ - "▁", - "gle" - ], - [ - "uc", - "ci" - ], - [ - "▁sie", - "he" - ], - [ - "Jac", - "k" - ], - [ - "J", - "ack" - ], - [ - "▁w", - "oll" - ], - [ - "▁wo", - "ll" - ], - [ - "▁wol", - "l" - ], - [ - "▁e", - "lder" - ], - [ - "▁el", - "der" - ], - [ - "▁ко", - "раб" - ], - [ - "▁eng", - "ag" - ], - [ - "▁La", - "urent" - ], - [ - "▁Laur", - "ent" - ], - [ - "▁Lau", - "rent" - ], - [ - "▁ach", - "iev" - ], - [ - "ist", - "ik" - ], - [ - "isti", - "k" - ], - [ - "ar", - "ct" - ], - [ - "arc", - "t" - ], - [ - "тно", - "го" - ], - [ - "т", - "ного" - ], - [ - "▁g", - "ir" - ], - [ - "▁gi", - "r" - ], - [ - "▁Sing", - "h" - ], - [ - "▁Sin", - "gh" - ], - [ - "math", - "op" - ], - [ - "US", - "A" - ], - [ - "U", - "SA" - ], - [ - "▁Pro", - "jekt" - ], - [ - "▁de", - "be" - ], - [ - "▁deb", - "e" - ], - [ - "richt", - "ung" - ], - [ - "r", - "ichtung" - ], - [ - "▁T", - "sch" - ], - [ - "▁Ts", - "ch" - ], - [ - "um", - "inate" - ], - [ - "umin", - "ate" - ], - [ - "▁s", - "zó" - ], - [ - "▁sz", - "ó" - ], - [ - "ly", - "ph" - ], - [ - "зи", - "дент" - ], - [ - "зиден", - "т" - ], - [ - "▁lim", - "itations" - ], - [ - "▁limit", - "ations" - ], - [ - "▁limitation", - "s" - ], - [ - "юще", - "й" - ], - [ - "▁b", - "ila" - ], - [ - "▁bi", - "la" - ], - [ - "▁bil", - "a" - ], - [ - "P", - "ush" - ], - [ - "▁off", - "ering" - ], - [ - "▁offer", - "ing" - ], - [ - "ien", - "nes" - ], - [ - "ienne", - "s" - ], - [ - "ienn", - "es" - ], - [ - "i", - "ennes" - ], - [ - "Fr", - "i" - ], - [ - "F", - "ri" - ], - [ - "▁post", - "gresql" - ], - [ - "▁", - "postgresql" - ], - [ - "▁Tom", - "my" - ], - [ - "▁partic", - "olare" - ], - [ - "▁stolet", - "í" - ], - [ - "▁ar", - "rib" - ], - [ - "▁arr", - "ib" - ], - [ - "▁E", - "va" - ], - [ - "▁Ev", - "a" - ], - [ - "sch", - "ool" - ], - [ - "▁v", - "endor" - ], - [ - "▁ven", - "dor" - ], - [ - "▁vend", - "or" - ], - [ - "▁", - "vendor" - ], - [ - "▁D", - "allas" - ], - [ - "▁Dal", - "las" - ], - [ - "▁pro", - "long" - ], - [ - "CRE", - "ATE" - ], - [ - "C", - "REATE" - ], - [ - "▁suiv", - "ante" - ], - [ - "STAT", - "US" - ], - [ - "l", - "à" - ], - [ - "k", - "v" - ], - [ - "▁h", - "äufig" - ], - [ - "▁Agr", - "icult" - ], - [ - "▁h", - "uit" - ], - [ - "▁hu", - "it" - ], - [ - "▁in", - "oltre" - ], - [ - "▁L", - "loyd" - ], - [ - "▁францу", - "з" - ], - [ - "▁вы", - "пол" - ], - [ - "▁faith", - "ful" - ], - [ - "▁В", - "ар" - ], - [ - "▁Ва", - "р" - ], - [ - "▁ver", - "l" - ], - [ - "▁ve", - "rl" - ], - [ - "▁ju", - "ego" - ], - [ - "▁Резу", - "лтати" - ], - [ - ",", - "...," - ], - [ - "▁implicit", - "ly" - ], - [ - "ir", - "ks" - ], - [ - "irk", - "s" - ], - [ - "Cal", - "cul" - ], - [ - "▁m", - "eses" - ], - [ - "▁mes", - "es" - ], - [ - "om", - "ed" - ], - [ - "ome", - "d" - ], - [ - "o", - "med" - ], - [ - "▁p", - "ak" - ], - [ - "▁pa", - "k" - ], - [ - "he", - "rit" - ], - [ - "her", - "it" - ], - [ - "▁opt", - "ical" - ], - [ - "▁І", - "сторія" - ], - [ - "ve", - "is" - ], - [ - "▁capital", - "e" - ], - [ - "▁capit", - "ale" - ], - [ - "place", - "holder" - ], - [ - "int", - "rag" - ], - [ - "▁At", - "las" - ], - [ - "▁Atl", - "as" - ], - [ - "▁", - "Atlas" - ], - [ - ")]", - ";" - ], - [ - ")", - "];" - ], - [ - "ic", - "ons" - ], - [ - "ico", - "ns" - ], - [ - "icon", - "s" - ], - [ - "i", - "cons" - ], - [ - "▁B", - "ent" - ], - [ - "▁Be", - "nt" - ], - [ - "▁Ben", - "t" - ], - [ - "▁W", - "idget" - ], - [ - "▁", - "Widget" - ], - [ - "▁vol", - "unt" - ], - [ - "av", - "o" - ], - [ - "a", - "vo" - ], - [ - "ég", - "r" - ], - [ - "é", - "gr" - ], - [ - "li", - "ge" - ], - [ - "lig", - "e" - ], - [ - "l", - "ige" - ], - [ - "▁N", - "AME" - ], - [ - "▁NA", - "ME" - ], - [ - "▁", - "NAME" - ], - [ - "▁ab", - "stra" - ], - [ - "▁abs", - "tra" - ], - [ - "▁f", - "ís" - ], - [ - "▁B", - "rowser" - ], - [ - "▁Brow", - "ser" - ], - [ - "▁", - "Browser" - ], - [ - "▁b", - "ush" - ], - [ - "▁bu", - "sh" - ], - [ - "▁bus", - "h" - ], - [ - "ha", - "ll" - ], - [ - "hal", - "l" - ], - [ - "h", - "all" - ], - [ - "▁cloud", - "s" - ], - [ - "▁S", - "UB" - ], - [ - "▁SU", - "B" - ], - [ - "▁", - "SUB" - ], - [ - "▁t", - "andis" - ], - [ - "▁tan", - "dis" - ], - [ - "▁Common", - "wealth" - ], - [ - "та", - "я" - ], - [ - "▁exha", - "ust" - ], - [ - "________", - "________" - ], - [ - "▁Stat", - "istics" - ], - [ - "▁Statist", - "ics" - ], - [ - "▁Relig", - "ion" - ], - [ - "▁Mu", - "ham" - ], - [ - "ual", - "s" - ], - [ - "ua", - "ls" - ], - [ - "u", - "als" - ], - [ - "go", - "to" - ], - [ - "got", - "o" - ], - [ - "g", - "oto" - ], - [ - "Dig", - "ital" - ], - [ - "Famil", - "y" - ], - [ - "▁B", - "un" - ], - [ - "▁Bu", - "n" - ], - [ - "let", - "in" - ], - [ - "Man", - "agement" - ], - [ - "▁cap", - "abilities" - ], - [ - "an", - "nten" - ], - [ - "ann", - "ten" - ], - [ - "annt", - "en" - ], - [ - "annte", - "n" - ], - [ - "▁се", - "бе" - ], - [ - "▁st", - "ays" - ], - [ - "▁stay", - "s" - ], - [ - "▁sta", - "ys" - ], - [ - "kt", - "er" - ], - [ - "kte", - "r" - ], - [ - "k", - "ter" - ], - [ - "▁d", - "ost" - ], - [ - "▁do", - "st" - ], - [ - "▁dos", - "t" - ], - [ - "▁Т", - "ре" - ], - [ - "ло", - "вич" - ], - [ - "лови", - "ч" - ], - [ - "л", - "ович" - ], - [ - "▁d", - "ying" - ], - [ - "▁dy", - "ing" - ], - [ - "se", - "ctions" - ], - [ - "section", - "s" - ], - [ - "sect", - "ions" - ], - [ - "án", - "os" - ], - [ - "á", - "nos" - ], - [ - "▁app", - "arten" - ], - [ - "▁appar", - "ten" - ], - [ - "▁appart", - "en" - ], - [ - "▁zo", - "als" - ], - [ - "▁dr", - "essed" - ], - [ - "▁dress", - "ed" - ], - [ - "▁com", - "press" - ], - [ - "▁comp", - "ress" - ], - [ - "▁compr", - "ess" - ], - [ - "ń", - "ska" - ], - [ - "▁sierp", - "nia" - ], - [ - "▁ти", - "ту" - ], - [ - "diction", - "ary" - ], - [ - "d", - "ictionary" - ], - [ - "▁r", - "abb" - ], - [ - "▁ra", - "bb" - ], - [ - "▁vé", - "rit" - ], - [ - "В", - "о" - ], - [ - "▁sing", - "leton" - ], - [ - "▁single", - "ton" - ], - [ - "▁v", - "ital" - ], - [ - "▁vi", - "tal" - ], - [ - "▁vit", - "al" - ], - [ - "▁vita", - "l" - ], - [ - "Ref", - "resh" - ], - [ - "ме", - "ль" - ], - [ - "м", - "ель" - ], - [ - "▁Z", - "h" - ], - [ - "▁Af", - "ghan" - ], - [ - "in", - "kel" - ], - [ - "ink", - "el" - ], - [ - "aa", - "aa" - ], - [ - "▁particip", - "ants" - ], - [ - "ar", - "in" - ], - [ - "ari", - "n" - ], - [ - "a", - "rin" - ], - [ - "▁M", - "old" - ], - [ - "▁Mo", - "ld" - ], - [ - "▁Mol", - "d" - ], - [ - "▁prim", - "eros" - ], - [ - "▁prime", - "ros" - ], - [ - "▁primer", - "os" - ], - [ - "▁ра", - "н" - ], - [ - "▁р", - "ан" - ], - [ - "▁", - "ран" - ], - [ - "▁А", - "мери" - ], - [ - "▁restaur", - "ant" - ], - [ - "év", - "el" - ], - [ - "é", - "vel" - ], - [ - "▁S", - "L" - ], - [ - "▁", - "SL" - ], - [ - "▁R", - "ey" - ], - [ - "▁Re", - "y" - ], - [ - "ch", - "as" - ], - [ - "cha", - "s" - ], - [ - "c", - "has" - ], - [ - "▁elect", - "rons" - ], - [ - "▁electron", - "s" - ], - [ - "▁electro", - "ns" - ], - [ - "▁Pitt", - "s" - ], - [ - "▁Pit", - "ts" - ], - [ - "▁J", - "ules" - ], - [ - "▁Jul", - "es" - ], - [ - "▁Ju", - "les" - ], - [ - "ма", - "й" - ], - [ - "en", - "ant" - ], - [ - "ena", - "nt" - ], - [ - "e", - "nant" - ], - [ - "-", - "}" - ], - [ - "ла", - "д" - ], - [ - "▁Мос", - "ква" - ], - [ - "▁Моск", - "ва" - ], - [ - "go", - "m" - ], - [ - "g", - "om" - ], - [ - "▁Fern", - "ández" - ], - [ - "fun", - "d" - ], - [ - "fu", - "nd" - ], - [ - "f", - "und" - ], - [ - "int", - "erno" - ], - [ - "inter", - "no" - ], - [ - "intern", - "o" - ], - [ - "▁M", - "ari" - ], - [ - "▁Mar", - "i" - ], - [ - "▁Ma", - "ri" - ], - [ - "▁r", - "ius" - ], - [ - "▁ri", - "us" - ], - [ - "▁Pro", - "zent" - ], - [ - "ст", - "рі" - ], - [ - "стр", - "і" - ], - [ - "▁в", - "нут" - ], - [ - "ant", - "erie" - ], - [ - "ante", - "rie" - ], - [ - "anter", - "ie" - ], - [ - "▁п", - "рис" - ], - [ - "▁при", - "с" - ], - [ - "▁пр", - "ис" - ], - [ - "▁о", - "бы" - ], - [ - "▁об", - "ы" - ], - [ - "▁M", - "arina" - ], - [ - "▁Mar", - "ina" - ], - [ - "▁Mari", - "na" - ], - [ - "▁occ", - "urrence" - ], - [ - "▁occur", - "rence" - ], - [ - "▁occurr", - "ence" - ], - [ - "ri", - "kt" - ], - [ - "rik", - "t" - ], - [ - "r", - "ikt" - ], - [ - "▁фи", - "зи" - ], - [ - "▁sch", - "wer" - ], - [ - "▁schw", - "er" - ], - [ - "▁Г", - "ре" - ], - [ - "Re", - "set" - ], - [ - "Res", - "et" - ], - [ - "▁much", - "o" - ], - [ - "▁mu", - "cho" - ], - [ - "an", - "dr" - ], - [ - "and", - "r" - ], - [ - "▁W", - "ies" - ], - [ - "▁Wi", - "es" - ], - [ - "▁Wie", - "s" - ], - [ - "▁Ke", - "ith" - ], - [ - "▁Jul", - "ian" - ], - [ - "▁Juli", - "an" - ], - [ - "▁Julia", - "n" - ], - [ - "▁c", - "ole" - ], - [ - "▁col", - "e" - ], - [ - "▁co", - "le" - ], - [ - "▁", - "cole" - ], - [ - "ci", - "endo" - ], - [ - "c", - "iendo" - ], - [ - "▁Cont", - "empor" - ], - [ - "et", - "ry" - ], - [ - "etr", - "y" - ], - [ - "e", - "try" - ], - [ - "el", - "ian" - ], - [ - "eli", - "an" - ], - [ - "elia", - "n" - ], - [ - "ги", - "и" - ], - [ - "▁го", - "ло" - ], - [ - "▁г", - "оло" - ], - [ - "▁d", - "él" - ], - [ - "▁dé", - "l" - ], - [ - "▁de", - "cent" - ], - [ - "▁dec", - "ent" - ], - [ - "▁dece", - "nt" - ], - [ - "Р", - "СР" - ], - [ - "▁sze", - "ptember" - ], - [ - "ме", - "ст" - ], - [ - "cast", - "le" - ], - [ - "▁держа", - "в" - ], - [ - "}\"", - ")" - ], - [ - "}", - "\")" - ], - [ - "▁ASC", - "II" - ], - [ - "▁G", - "len" - ], - [ - "▁Gl", - "en" - ], - [ - "itzer", - "land" - ], - [ - "T", - "oggle" - ], - [ - "▁trad", - "icional" - ], - [ - "▁P", - "lat" - ], - [ - "▁Pl", - "at" - ], - [ - "▁Pla", - "t" - ], - [ - "ve", - "e" - ], - [ - "v", - "ee" - ], - [ - "ab", - "gerufen" - ], - [ - "(", - "|" - ], - [ - "CL", - "I" - ], - [ - "C", - "LI" - ], - [ - "}}", - "$," - ], - [ - "}}$", - "," - ], - [ - "}", - "}$," - ], - [ - "▁Bow", - "l" - ], - [ - "▁M", - "ale" - ], - [ - "▁Ma", - "le" - ], - [ - "▁Mal", - "e" - ], - [ - "▁B", - "res" - ], - [ - "▁Br", - "es" - ], - [ - "▁Bre", - "s" - ], - [ - "▁п", - "си" - ], - [ - "▁Ch", - "allenge" - ], - [ - "z", - "ó" - ], - [ - "▁pro", - "jekt" - ], - [ - "▁neg", - "oti" - ], - [ - "ab", - "ove" - ], - [ - "a", - "bove" - ], - [ - "▁пери", - "о" - ], - [ - "▁long", - "est" - ], - [ - "▁lon", - "gest" - ], - [ - "auth", - "entic" - ], - [ - "▁tr", - "adu" - ], - [ - "▁tra", - "du" - ], - [ - "▁trad", - "u" - ], - [ - "▁mujer", - "es" - ], - [ - "▁And", - "re" - ], - [ - "▁ha", - "dn" - ], - [ - "▁had", - "n" - ], - [ - "▁Sch", - "ule" - ], - [ - "▁Schul", - "e" - ], - [ - "ode", - "l" - ], - [ - "od", - "el" - ], - [ - "o", - "del" - ], - [ - "ble", - "d" - ], - [ - "bl", - "ed" - ], - [ - "b", - "led" - ], - [ - "▁T", - "rade" - ], - [ - "▁Tr", - "ade" - ], - [ - "▁Tra", - "de" - ], - [ - "▁Trad", - "e" - ], - [ - "▁m", - "obil" - ], - [ - "▁mo", - "bil" - ], - [ - "▁mob", - "il" - ], - [ - "▁alg", - "unas" - ], - [ - "▁L", - "ak" - ], - [ - "▁La", - "k" - ], - [ - "▁Connect", - "icut" - ], - [ - "▁al", - "co" - ], - [ - "▁alc", - "o" - ], - [ - "▁Sel", - "bst" - ], - [ - "i", - "ł" - ], - [ - "▁a", - "lb" - ], - [ - "▁al", - "b" - ], - [ - "ouver", - "neur" - ], - [ - "ouvern", - "eur" - ], - [ - "▁s", - "r" - ], - [ - "▁", - "sr" - ], - [ - "▁v", - "ba" - ], - [ - "▁vb", - "a" - ], - [ - "lo", - "ped" - ], - [ - "lop", - "ed" - ], - [ - "l", - "oped" - ], - [ - "▁Par", - "tei" - ], - [ - "▁Part", - "ei" - ], - [ - "▁Parte", - "i" - ], - [ - "ua", - "te" - ], - [ - "u", - "ate" - ], - [ - "▁Auth", - "entication" - ], - [ - "▁", - "Authentication" - ], - [ - "be", - "i" - ], - [ - "b", - "ei" - ], - [ - "}}", - "." - ], - [ - "}", - "}." - ], - [ - "▁kon", - "nten" - ], - [ - "▁konn", - "ten" - ], - [ - "▁konnte", - "n" - ], - [ - "▁до", - "по" - ], - [ - "▁h", - "yd" - ], - [ - "▁hy", - "d" - ], - [ - "Off", - "ice" - ], - [ - "d", - "onnées" - ], - [ - "▁C", - "leveland" - ], - [ - "ri", - "ta" - ], - [ - "rit", - "a" - ], - [ - "r", - "ita" - ], - [ - "ío", - "s" - ], - [ - "í", - "os" - ], - [ - "▁вы", - "ше" - ], - [ - "▁Ro", - "berts" - ], - [ - "▁Robert", - "s" - ], - [ - "▁é", - "lections" - ], - [ - "▁élect", - "ions" - ], - [ - "▁'", - "')" - ], - [ - "▁''", - ")" - ], - [ - "▁publish", - "ing" - ], - [ - "▁b", - "apt" - ], - [ - "▁ba", - "pt" - ], - [ - "<>", - "();" - ], - [ - "<", - ">();" - ], - [ - "miss", - "ing" - ], - [ - "mis", - "sing" - ], - [ - "рова", - "но" - ], - [ - "рован", - "о" - ], - [ - "р", - "овано" - ], - [ - "▁ho", - "using" - ], - [ - "▁hous", - "ing" - ], - [ - "▁in", - "ference" - ], - [ - "▁infer", - "ence" - ], - [ - "▁Rena", - "issance" - ], - [ - "▁r", - "èg" - ], - [ - "▁Ste", - "ph" - ], - [ - "▁Step", - "h" - ], - [ - "CE", - "S" - ], - [ - "C", - "ES" - ], - [ - "ER", - "E" - ], - [ - "E", - "RE" - ], - [ - "ке", - "т" - ], - [ - "к", - "ет" - ], - [ - "O", - "U" - ], - [ - "▁group", - "ing" - ], - [ - "ver", - "kehr" - ], - [ - "ji", - "h" - ], - [ - "j", - "ih" - ], - [ - "ag", - "li" - ], - [ - "▁mil", - "k" - ], - [ - "la", - "it" - ], - [ - "l", - "ait" - ], - [ - "St", - "age" - ], - [ - "▁by", - "ly" - ], - [ - "▁byl", - "y" - ], - [ - "▁wood", - "en" - ], - [ - "▁wo", - "oden" - ], - [ - "ke", - "ley" - ], - [ - "kel", - "ey" - ], - [ - "kele", - "y" - ], - [ - "et", - "ra" - ], - [ - "etr", - "a" - ], - [ - "e", - "tra" - ], - [ - "▁P", - "eg" - ], - [ - "▁Pe", - "g" - ], - [ - "▁don", - "né" - ], - [ - "▁donn", - "é" - ], - [ - "ad", - "al" - ], - [ - "ada", - "l" - ], - [ - "a", - "dal" - ], - [ - "sequ", - "ently" - ], - [ - "▁ins", - "besondere" - ], - [ - "EL", - "D" - ], - [ - "E", - "LD" - ], - [ - "▁M", - "am" - ], - [ - "▁Ma", - "m" - ], - [ - "▁vol", - "te" - ], - [ - "▁volt", - "e" - ], - [ - "▁pro", - "spect" - ], - [ - "▁pros", - "pect" - ], - [ - "но", - "ве" - ], - [ - "нов", - "е" - ], - [ - "н", - "ове" - ], - [ - "▁den", - "oted" - ], - [ - "▁denote", - "d" - ], - [ - "▁over", - "lay" - ], - [ - "Per", - "mission" - ], - [ - "Perm", - "ission" - ], - [ - "ee", - "n" - ], - [ - "e", - "en" - ], - [ - "▁E", - "M" - ], - [ - "▁", - "EM" - ], - [ - "▁u", - "z" - ], - [ - "▁", - "uz" - ], - [ - "M", - "c" - ], - [ - "ol", - "it" - ], - [ - "oli", - "t" - ], - [ - "o", - "lit" - ], - [ - "▁ser", - "vi" - ], - [ - "▁serv", - "i" - ], - [ - "▁He", - "idel" - ], - [ - "▁Wien", - "er" - ], - [ - "▁Wi", - "ener" - ], - [ - "▁Wie", - "ner" - ], - [ - "▁il", - "legal" - ], - [ - "▁predict", - "ions" - ], - [ - "▁prediction", - "s" - ], - [ - "▁go", - "og" - ], - [ - "ho", - "n" - ], - [ - "h", - "on" - ], - [ - "▁Cin", - "ema" - ], - [ - "▁ре", - "волю" - ], - [ - "▁R", - "ule" - ], - [ - "▁Ru", - "le" - ], - [ - "▁", - "Rule" - ], - [ - "wo", - "d" - ], - [ - "w", - "od" - ], - [ - "▁rad", - "iation" - ], - [ - "▁radi", - "ation" - ], - [ - "o", - "ł" - ], - [ - "ово", - "ї" - ], - [ - "▁Per", - "form" - ], - [ - "▁prison", - "er" - ], - [ - "▁a", - "met" - ], - [ - "▁am", - "et" - ], - [ - "▁fig", - "ura" - ], - [ - "▁figur", - "a" - ], - [ - "▁Comm", - "ander" - ], - [ - "▁Command", - "er" - ], - [ - "▁о", - "фициаль" - ], - [ - "▁t", - "rov" - ], - [ - "▁tr", - "ov" - ], - [ - "▁tro", - "v" - ], - [ - "▁a", - "cted" - ], - [ - "▁act", - "ed" - ], - [ - "▁ac", - "ted" - ], - [ - "▁work", - "flow" - ], - [ - "▁Республи", - "ки" - ], - [ - "▁guid", - "ance" - ], - [ - "▁м", - "ене" - ], - [ - "▁ме", - "не" - ], - [ - "▁мен", - "е" - ], - [ - "▁", - "мене" - ], - [ - "N", - "ational" - ], - [ - "▁K", - "el" - ], - [ - "▁Ke", - "l" - ], - [ - "web", - "pack" - ], - [ - "про", - "стра" - ], - [ - "▁llam", - "ado" - ], - [ - "al", - "og" - ], - [ - "alo", - "g" - ], - [ - "a", - "log" - ], - [ - "ter", - "ra" - ], - [ - "ix", - "en" - ], - [ - "le", - "graph" - ], - [ - "leg", - "raph" - ], - [ - "ä", - "ischen" - ], - [ - "▁teach", - "ers" - ], - [ - "▁teacher", - "s" - ], - [ - "ud", - "en" - ], - [ - "ude", - "n" - ], - [ - "u", - "den" - ], - [ - "▁o", - "gså" - ], - [ - "pos", - "sible" - ], - [ - "poss", - "ible" - ], - [ - "▁S", - "oul" - ], - [ - "▁So", - "ul" - ], - [ - "▁Sou", - "l" - ], - [ - "▁Ge", - "ography" - ], - [ - "▁за", - "да" - ], - [ - "hi", - "t" - ], - [ - "h", - "it" - ], - [ - "▁an", - "ger" - ], - [ - "▁ang", - "er" - ], - [ - "▁ange", - "r" - ], - [ - "▁", - "anger" - ], - [ - "▁rem", - "porte" - ], - [ - "▁remp", - "orte" - ], - [ - "Po", - "d" - ], - [ - "P", - "od" - ], - [ - "ч", - "ке" - ], - [ - "▁a", - "ria" - ], - [ - "▁ar", - "ia" - ], - [ - "▁", - "aria" - ], - [ - "▁A", - "stronom" - ], - [ - "ch", - "apter" - ], - [ - "▁f", - "ork" - ], - [ - "▁for", - "k" - ], - [ - "▁Cu", - "ando" - ], - [ - "men", - "se" - ], - [ - "m", - "ense" - ], - [ - "▁Christ", - "ians" - ], - [ - "▁Christian", - "s" - ], - [ - "g", - "c" - ], - [ - "▁#", - "(" - ], - [ - "Or", - "gan" - ], - [ - "▁ste", - "ady" - ], - [ - "▁stead", - "y" - ], - [ - "ps", - "e" - ], - [ - "p", - "se" - ], - [ - "жи", - "ть" - ], - [ - "ig", - "nes" - ], - [ - "ign", - "es" - ], - [ - "igne", - "s" - ], - [ - "ater", - "ra" - ], - [ - "a", - "terra" - ], - [ - "mo", - "vie" - ], - [ - "mov", - "ie" - ], - [ - "m", - "ovie" - ], - [ - "pos", - "ta" - ], - [ - "po", - "sta" - ], - [ - "post", - "a" - ], - [ - "p", - "osta" - ], - [ - "ra", - "ste" - ], - [ - "ras", - "te" - ], - [ - "r", - "aste" - ], - [ - "▁Res", - "source" - ], - [ - "▁Ress", - "ource" - ], - [ - "▁Pa", - "ís" - ], - [ - "▁(", - ");" - ], - [ - "▁()", - ";" - ], - [ - "▁", - "();" - ], - [ - "▁pen", - "alty" - ], - [ - "т", - "т" - ], - [ - "▁tras", - "fer" - ], - [ - "cent", - "ury" - ], - [ - "▁clean", - "er" - ], - [ - "sel", - "enium" - ], - [ - "s", - "elenium" - ], - [ - "ort", - "heast" - ], - [ - "orth", - "east" - ], - [ - "xi", - "c" - ], - [ - "x", - "ic" - ], - [ - "лі", - "ї" - ], - [ - "л", - "ії" - ], - [ - "▁ingles", - "e" - ], - [ - "▁T", - "ang" - ], - [ - "▁Ta", - "ng" - ], - [ - "▁Tan", - "g" - ], - [ - "▁g", - "ods" - ], - [ - "▁go", - "ds" - ], - [ - "▁god", - "s" - ], - [ - "fr", - "ent" - ], - [ - "fre", - "nt" - ], - [ - "f", - "rent" - ], - [ - "ci", - "ente" - ], - [ - "cient", - "e" - ], - [ - "c", - "iente" - ], - [ - "st", - "arts" - ], - [ - "start", - "s" - ], - [ - "star", - "ts" - ], - [ - "▁mus", - "ica" - ], - [ - "▁music", - "a" - ], - [ - "ymnas", - "ium" - ], - [ - "--", - "--+" - ], - [ - "----", - "+" - ], - [ - "---", - "-+" - ], - [ - "-", - "---+" - ], - [ - "▁ter", - "rest" - ], - [ - "▁terre", - "st" - ], - [ - "▁retr", - "ieved" - ], - [ - "▁retrieve", - "d" - ], - [ - "ia", - "re" - ], - [ - "iar", - "e" - ], - [ - "i", - "are" - ], - [ - "un", - "ning" - ], - [ - "unn", - "ing" - ], - [ - "▁Mar", - "cus" - ], - [ - "▁Marc", - "us" - ], - [ - "▁prom", - "ote" - ], - [ - "war", - "ning" - ], - [ - "warn", - "ing" - ], - [ - "w", - "arning" - ], - [ - "ты", - "й" - ], - [ - "т", - "ый" - ], - [ - "})", - "$," - ], - [ - "})$", - "," - ], - [ - "}", - ")$," - ], - [ - "Trans", - "port" - ], - [ - "▁re", - "son" - ], - [ - "▁res", - "on" - ], - [ - "▁C", - "lo" - ], - [ - "▁Cl", - "o" - ], - [ - "▁e", - "rm" - ], - [ - "▁er", - "m" - ], - [ - "▁", - "erm" - ], - [ - "▁elimin", - "ate" - ], - [ - "▁elim", - "inate" - ], - [ - "he", - "imer" - ], - [ - "heim", - "er" - ], - [ - "▁s", - "aves" - ], - [ - "▁sa", - "ves" - ], - [ - "▁sav", - "es" - ], - [ - "▁save", - "s" - ], - [ - "▁pr", - "ayer" - ], - [ - "▁pra", - "yer" - ], - [ - "▁pray", - "er" - ], - [ - "Class", - "es" - ], - [ - "Ex", - "press" - ], - [ - "Exp", - "ress" - ], - [ - "Expr", - "ess" - ], - [ - "▁Akadem", - "ie" - ], - [ - "El", - "se" - ], - [ - "Tu", - "rn" - ], - [ - "T", - "urn" - ], - [ - "▁ik", - "ke" - ], - [ - "▁re", - "i" - ], - [ - "▁r", - "ei" - ], - [ - "▁", - "rei" - ], - [ - "▁di", - "rett" - ], - [ - "▁dire", - "tt" - ], - [ - "▁dir", - "ett" - ], - [ - "▁R", - "ost" - ], - [ - "▁Ro", - "st" - ], - [ - "▁Ros", - "t" - ], - [ - "▁P", - "apa" - ], - [ - "▁Pa", - "pa" - ], - [ - "▁Pap", - "a" - ], - [ - "▁j", - "sf" - ], - [ - "▁js", - "f" - ], - [ - "ле", - "нием" - ], - [ - "ление", - "м" - ], - [ - "▁T", - "ul" - ], - [ - "▁Tu", - "l" - ], - [ - "▁Z", - "ak" - ], - [ - "▁Za", - "k" - ], - [ - "▁niem", - "ieck" - ], - [ - "T", - "w" - ], - [ - "am", - "our" - ], - [ - "amo", - "ur" - ], - [ - "ne", - "sted" - ], - [ - "nes", - "ted" - ], - [ - "nest", - "ed" - ], - [ - "n", - "ested" - ], - [ - "pp", - "ets" - ], - [ - "ppe", - "ts" - ], - [ - "ppet", - "s" - ], - [ - "ш", - "п" - ], - [ - "di", - "t" - ], - [ - "d", - "it" - ], - [ - "зе", - "н" - ], - [ - "з", - "ен" - ], - [ - "zy", - "ma" - ], - [ - "zym", - "a" - ], - [ - "hr", - "te" - ], - [ - "Constra", - "ints" - ], - [ - "Constraint", - "s" - ], - [ - "▁own", - "ership" - ], - [ - "▁owner", - "ship" - ], - [ - "Ar", - "m" - ], - [ - "A", - "rm" - ], - [ - "▁cons", - "umption" - ], - [ - "▁consum", - "ption" - ], - [ - "▁f", - "et" - ], - [ - "▁fe", - "t" - ], - [ - "iv", - "ari" - ], - [ - "iva", - "ri" - ], - [ - "i", - "vari" - ], - [ - "ch", - "rom" - ], - [ - "chr", - "om" - ], - [ - "set", - "Attribute" - ], - [ - "▁com", - "pose" - ], - [ - "▁comp", - "ose" - ], - [ - "▁compos", - "e" - ], - [ - "▁", - "compose" - ], - [ - "▁back", - "ing" - ], - [ - "▁P", - "az" - ], - [ - "▁Pa", - "z" - ], - [ - "▁s", - "cri" - ], - [ - "▁sc", - "ri" - ], - [ - "▁scr", - "i" - ], - [ - "▁", - "scri" - ], - [ - "▁Me", - "chan" - ], - [ - "▁Nor", - "way" - ], - [ - "▁J", - "up" - ], - [ - "▁Ju", - "p" - ], - [ - "▁m", - "ér" - ], - [ - "▁mé", - "r" - ], - [ - "▁administr", - "ator" - ], - [ - "▁c", - "abe" - ], - [ - "▁ca", - "be" - ], - [ - "▁cab", - "e" - ], - [ - "ival", - "ent" - ], - [ - "▁thr", - "one" - ], - [ - "▁thro", - "ne" - ], - [ - "▁d", - "ues" - ], - [ - "▁du", - "es" - ], - [ - "▁due", - "s" - ], - [ - "▁hum", - "or" - ], - [ - "▁hu", - "mor" - ], - [ - "▁A", - "dri" - ], - [ - "▁Ad", - "ri" - ], - [ - "▁ab", - "ort" - ], - [ - "ña", - "s" - ], - [ - "ñ", - "as" - ], - [ - "▁Ки", - "їв" - ], - [ - "j", - "ící" - ], - [ - "▁zwe", - "ite" - ], - [ - "▁zwei", - "te" - ], - [ - "▁do", - "ub" - ], - [ - "▁dou", - "b" - ], - [ - "er", - "shell" - ], - [ - "ers", - "hell" - ], - [ - "шо", - "й" - ], - [ - "▁F", - "am" - ], - [ - "▁Fa", - "m" - ], - [ - "å", - "k" - ], - [ - "▁twe", - "ede" - ], - [ - "▁twee", - "de" - ], - [ - "▁R", - "ib" - ], - [ - "▁Ri", - "b" - ], - [ - "▁f", - "ør" - ], - [ - "pc", - "ión" - ], - [ - "p", - "ción" - ], - [ - "in", - "ned" - ], - [ - "inn", - "ed" - ], - [ - "rv", - "m" - ], - [ - "r", - "vm" - ], - [ - "▁App", - "ar" - ], - [ - "▁Ap", - "par" - ], - [ - "▁D", - "j" - ], - [ - "▁S", - "hang" - ], - [ - "▁Sh", - "ang" - ], - [ - "Dist", - "ance" - ], - [ - "D", - "istance" - ], - [ - "▁d", - "awn" - ], - [ - "▁da", - "wn" - ], - [ - "▁", - "dawn" - ], - [ - "▁Mat", - "th" - ], - [ - "▁Matt", - "h" - ], - [ - "▁err", - "ichtet" - ], - [ - "ph", - "antom" - ], - [ - "phan", - "tom" - ], - [ - "▁re", - "leases" - ], - [ - "▁release", - "s" - ], - [ - "Recogn", - "izer" - ], - [ - "▁K", - "op" - ], - [ - "▁Ko", - "p" - ], - [ - "▁P", - "ul" - ], - [ - "▁Pu", - "l" - ], - [ - "u", - "é" - ], - [ - "na", - "ts" - ], - [ - "nat", - "s" - ], - [ - "n", - "ats" - ], - [ - "re", - "lax" - ], - [ - "rel", - "ax" - ], - [ - "▁f", - "led" - ], - [ - "▁fl", - "ed" - ], - [ - "▁fle", - "d" - ], - [ - "▁experience", - "s" - ], - [ - "▁experien", - "ces" - ], - [ - "ще", - "е" - ], - [ - "ме", - "ня" - ], - [ - "мен", - "я" - ], - [ - "▁пер", - "сона" - ], - [ - "▁Id", - "entity" - ], - [ - "▁Ident", - "ity" - ], - [ - "▁", - "Identity" - ], - [ - "re", - "ts" - ], - [ - "ret", - "s" - ], - [ - "r", - "ets" - ], - [ - "k", - "unft" - ], - [ - "la", - "rg" - ], - [ - "lar", - "g" - ], - [ - "l", - "arg" - ], - [ - "List", - "Item" - ], - [ - "v", - "d" - ], - [ - "run", - "ner" - ], - [ - "la", - "nt" - ], - [ - "lan", - "t" - ], - [ - "l", - "ant" - ], - [ - "ip", - "art" - ], - [ - "i", - "part" - ], - [ - "ba", - "y" - ], - [ - "b", - "ay" - ], - [ - "ie", - "i" - ], - [ - "i", - "ei" - ], - [ - "▁length", - "s" - ], - [ - "▁c", - "attle" - ], - [ - "▁catt", - "le" - ], - [ - "je", - "ts" - ], - [ - "jet", - "s" - ], - [ - "j", - "ets" - ], - [ - "▁se", - "hen" - ], - [ - "J", - "ul" - ], - [ - "fa", - "tt" - ], - [ - "f", - "att" - ], - [ - "▁sur", - "render" - ], - [ - "▁surr", - "ender" - ], - [ - "▁Tr", - "ump" - ], - [ - "▁Tru", - "mp" - ], - [ - "дно", - "го" - ], - [ - "д", - "ного" - ], - [ - "▁Four", - "ier" - ], - [ - "▁Fou", - "rier" - ], - [ - "ie", - "ben" - ], - [ - "ieb", - "en" - ], - [ - "i", - "eben" - ], - [ - "_", - "\"" - ], - [ - "▁frü", - "her" - ], - [ - "▁gar", - "ant" - ], - [ - "▁ga", - "rant" - ], - [ - "uclide", - "an" - ], - [ - "äg", - "t" - ], - [ - "ä", - "gt" - ], - [ - "▁пів", - "ден" - ], - [ - "Page", - "s" - ], - [ - "Pa", - "ges" - ], - [ - "P", - "ages" - ], - [ - "▁r", - "ivers" - ], - [ - "▁river", - "s" - ], - [ - "▁riv", - "ers" - ], - [ - "▁ri", - "vers" - ], - [ - "▁don", - "ner" - ], - [ - "▁donn", - "er" - ], - [ - "▁donne", - "r" - ], - [ - "sv", - "n" - ], - [ - "s", - "vn" - ], - [ - "▁", - "ł" - ], - [ - "ov", - "ě" - ], - [ - "o", - "vě" - ], - [ - "▁Le", - "ist" - ], - [ - "ar", - "ial" - ], - [ - "ari", - "al" - ], - [ - "aria", - "l" - ], - [ - "a", - "rial" - ], - [ - "ov", - "ých" - ], - [ - "ový", - "ch" - ], - [ - "▁f", - "illing" - ], - [ - "▁fil", - "ling" - ], - [ - "▁fill", - "ing" - ], - [ - "▁mus", - "icale" - ], - [ - "▁music", - "ale" - ], - [ - "▁musical", - "e" - ], - [ - "▁musica", - "le" - ], - [ - "ma", - "xim" - ], - [ - "max", - "im" - ], - [ - "▁d", - "ashed" - ], - [ - "▁das", - "hed" - ], - [ - "▁dash", - "ed" - ], - [ - "▁Н", - "ов" - ], - [ - "▁Но", - "в" - ], - [ - "Draw", - "er" - ], - [ - "Dra", - "wer" - ], - [ - "▁Medic", - "ine" - ], - [ - "▁dok", - "ument" - ], - [ - "ow", - "el" - ], - [ - "owe", - "l" - ], - [ - "o", - "wel" - ], - [ - "vi", - "ć" - ], - [ - "v", - "ić" - ], - [ - "he", - "ly" - ], - [ - "hel", - "y" - ], - [ - "h", - "ely" - ], - [ - "▁e", - "let" - ], - [ - "▁el", - "et" - ], - [ - "▁ele", - "t" - ], - [ - "Sec", - "onds" - ], - [ - "Second", - "s" - ], - [ - "▁Gon", - "z" - ], - [ - "ro", - "u" - ], - [ - "r", - "ou" - ], - [ - "▁fin", - "ales" - ], - [ - "▁final", - "es" - ], - [ - "▁finale", - "s" - ], - [ - "r", - "n" - ], - [ - "f", - "ø" - ], - [ - "▁index", - "ed" - ], - [ - "class", - "Name" - ], - [ - "▁o", - "ber" - ], - [ - "▁ob", - "er" - ], - [ - "▁", - "ober" - ], - [ - "▁du", - "as" - ], - [ - "▁optim", - "ized" - ], - [ - "▁optimize", - "d" - ], - [ - "▁k", - "dy" - ], - [ - "vers", - "ary" - ], - [ - "ener", - "gy" - ], - [ - "▁цент", - "ра" - ], - [ - "▁центр", - "а" - ], - [ - "▁c", - "urrency" - ], - [ - "▁curr", - "ency" - ], - [ - "▁", - "currency" - ], - [ - "zy", - "ż" - ], - [ - "Li", - "ke" - ], - [ - "L", - "ike" - ], - [ - "▁Г", - "и" - ], - [ - "so", - "no" - ], - [ - "son", - "o" - ], - [ - "s", - "ono" - ], - [ - "▁pa", - "lab" - ], - [ - "▁pal", - "ab" - ], - [ - "▁p", - "ushing" - ], - [ - "▁push", - "ing" - ], - [ - "ub", - "lik" - ], - [ - "▁H", - "ass" - ], - [ - "▁Ha", - "ss" - ], - [ - "▁Has", - "s" - ], - [ - "}\\", - ",\\" - ], - [ - "}\\,", - "\\" - ], - [ - "}", - "\\,\\" - ], - [ - "un", - "ker" - ], - [ - "unk", - "er" - ], - [ - "▁F", - "actory" - ], - [ - "▁Fact", - "ory" - ], - [ - "▁", - "Factory" - ], - [ - "▁Res", - "ources" - ], - [ - "▁Resource", - "s" - ], - [ - "▁", - "Resources" - ], - [ - "date", - "i" - ], - [ - "da", - "tei" - ], - [ - "dat", - "ei" - ], - [ - "▁T", - "ools" - ], - [ - "▁To", - "ols" - ], - [ - "▁Tool", - "s" - ], - [ - "▁", - "Tools" - ], - [ - "▁ste", - "hen" - ], - [ - "si", - "me" - ], - [ - "sim", - "e" - ], - [ - "s", - "ime" - ], - [ - "▁Х", - "у" - ], - [ - "▁h", - "och" - ], - [ - "▁ho", - "ch" - ], - [ - "▁Rod", - "ríguez" - ], - [ - "zeit", - "ig" - ], - [ - "▁Ter", - "ry" - ], - [ - "▁Terr", - "y" - ], - [ - "▁о", - "бу" - ], - [ - "▁об", - "у" - ], - [ - "Us", - "age" - ], - [ - "urch", - "ase" - ], - [ - "l", - "ö" - ], - [ - "▁Int", - "roduction" - ], - [ - "▁", - "Introduction" - ], - [ - "▁particip", - "ation" - ], - [ - "ο", - "ς" - ], - [ - "og", - "li" - ], - [ - "ap", - "y" - ], - [ - "a", - "py" - ], - [ - "▁hope", - "fully" - ], - [ - "pon", - "der" - ], - [ - "po", - "nder" - ], - [ - "pond", - "er" - ], - [ - "p", - "onder" - ], - [ - "▁Y", - "ang" - ], - [ - "▁Yan", - "g" - ], - [ - "▁Ya", - "ng" - ], - [ - "▁prom", - "ises" - ], - [ - "▁promise", - "s" - ], - [ - "▁вер", - "ну" - ], - [ - "▁о", - "стров" - ], - [ - "▁ост", - "ров" - ], - [ - "^{", - "+" - ], - [ - "▁most", - "ra" - ], - [ - "▁mo", - "stra" - ], - [ - "▁mos", - "tra" - ], - [ - "▁CURL", - "OPT" - ], - [ - "H", - "H" - ], - [ - "▁std", - "out" - ], - [ - "▁", - "stdout" - ], - [ - "▁br", - "illiant" - ], - [ - "▁manus", - "cript" - ], - [ - "▁de", - "cir" - ], - [ - "▁dec", - "ir" - ], - [ - "▁B", - "olog" - ], - [ - "▁Bo", - "log" - ], - [ - "▁Bol", - "og" - ], - [ - "▁ме", - "ста" - ], - [ - "▁мест", - "а" - ], - [ - "▁in", - "visible" - ], - [ - "▁C", - "hal" - ], - [ - "▁Ch", - "al" - ], - [ - "▁Cha", - "l" - ], - [ - "▁analy", - "ze" - ], - [ - "▁analyz", - "e" - ], - [ - "pr", - "ilis" - ], - [ - "pril", - "is" - ], - [ - "att", - "end" - ], - [ - "atten", - "d" - ], - [ - "atte", - "nd" - ], - [ - "M", - "vc" - ], - [ - "th", - "an" - ], - [ - "tha", - "n" - ], - [ - "t", - "han" - ], - [ - "ck", - "o" - ], - [ - "c", - "ko" - ], - [ - "▁Que", - "bec" - ], - [ - "▁pl", - "anta" - ], - [ - "▁plan", - "ta" - ], - [ - "▁plant", - "a" - ], - [ - "▁télé", - "vis" - ], - [ - "▁un", - "install" - ], - [ - "èn", - "cies" - ], - [ - "▁gmin", - "ie" - ], - [ - "▁P", - "ref" - ], - [ - "▁Pr", - "ef" - ], - [ - "▁Pre", - "f" - ], - [ - "▁le", - "quel" - ], - [ - "Inv", - "ocation" - ], - [ - "▁", - "Í" - ], - [ - "▁trans", - "formed" - ], - [ - "▁transform", - "ed" - ], - [ - "MA", - "N" - ], - [ - "M", - "AN" - ], - [ - "ge", - "baut" - ], - [ - "geb", - "aut" - ], - [ - "▁со", - "хра" - ], - [ - "▁вто", - "рой" - ], - [ - "▁L", - "ith" - ], - [ - "▁Li", - "th" - ], - [ - "▁Lit", - "h" - ], - [ - "wend", - "ung" - ], - [ - "▁Polit", - "ik" - ], - [ - "▁Sen", - "ator" - ], - [ - "▁L", - "L" - ], - [ - "▁", - "LL" - ], - [ - "жде", - "ние" - ], - [ - "ш", - "те" - ], - [ - "▁C", - "és" - ], - [ - "▁b", - "ande" - ], - [ - "▁band", - "e" - ], - [ - "▁ban", - "de" - ], - [ - "▁ba", - "nde" - ], - [ - "▁histor", - "ian" - ], - [ - "▁historia", - "n" - ], - [ - "▁pass", - "words" - ], - [ - "▁password", - "s" - ], - [ - "mal", - "loc" - ], - [ - "m", - "alloc" - ], - [ - "▁sem", - "if" - ], - [ - "▁semi", - "f" - ], - [ - "▁r", - "å" - ], - [ - "▁", - "rå" - ], - [ - "unic", - "í" - ], - [ - "uni", - "cí" - ], - [ - "Av", - "ailable" - ], - [ - "Option", - "al" - ], - [ - "Opt", - "ional" - ], - [ - "▁T", - "we" - ], - [ - "▁Tw", - "e" - ], - [ - "▁k", - "ró" - ], - [ - "▁kr", - "ó" - ], - [ - "▁sub", - "sets" - ], - [ - "▁subset", - "s" - ], - [ - "▁subs", - "ets" - ], - [ - "▁D", - "AT" - ], - [ - "▁DA", - "T" - ], - [ - "▁", - "DAT" - ], - [ - "▁double", - "s" - ], - [ - "▁dou", - "bles" - ], - [ - "▁doub", - "les" - ], - [ - "ни", - "ками" - ], - [ - "ника", - "ми" - ], - [ - "▁з", - "в" - ], - [ - "ge", - "geben" - ], - [ - "geg", - "eben" - ], - [ - "g", - "egeben" - ], - [ - "▁По", - "пис" - ], - [ - "▁jú", - "lius" - ], - [ - "▁m", - "eteor" - ], - [ - "▁met", - "eor" - ], - [ - "Mo", - "unt" - ], - [ - "M", - "ount" - ], - [ - "iv", - "ent" - ], - [ - "ive", - "nt" - ], - [ - "iven", - "t" - ], - [ - "i", - "vent" - ], - [ - "▁N", - "athan" - ], - [ - "▁Na", - "than" - ], - [ - "▁Nat", - "han" - ], - [ - "▁Sch", - "utz" - ], - [ - "eg", - "ov" - ], - [ - "ego", - "v" - ], - [ - "e", - "gov" - ], - [ - "▁d", - "öd" - ], - [ - "▁me", - "at" - ], - [ - "▁пун", - "кт" - ], - [ - "▁m", - "inds" - ], - [ - "▁min", - "ds" - ], - [ - "▁mind", - "s" - ], - [ - "eli", - "very" - ], - [ - "▁T", - "LS" - ], - [ - "ре", - "м" - ], - [ - "р", - "ем" - ], - [ - "cks", - "å" - ], - [ - "▁stay", - "ed" - ], - [ - "▁sta", - "yed" - ], - [ - "▁B", - "in" - ], - [ - "▁Bi", - "n" - ], - [ - "▁P", - "ia" - ], - [ - "▁Pi", - "a" - ], - [ - "▁и", - "мен" - ], - [ - "▁име", - "н" - ], - [ - "▁им", - "ен" - ], - [ - "▁Bob", - "by" - ], - [ - "▁produ", - "it" - ], - [ - "▁prod", - "uit" - ], - [ - "em", - "pio" - ], - [ - "emp", - "io" - ], - [ - "▁redu", - "cing" - ], - [ - "▁Y", - "u" - ], - [ - "▁Gesch", - "äft" - ], - [ - "▁per", - "ché" - ], - [ - "▁c", - "ors" - ], - [ - "▁cor", - "s" - ], - [ - "▁co", - "rs" - ], - [ - "▁i", - "cons" - ], - [ - "▁icon", - "s" - ], - [ - "▁ic", - "ons" - ], - [ - "▁", - "icons" - ], - [ - "App", - "Data" - ], - [ - "▁H", - "og" - ], - [ - "▁Ho", - "g" - ], - [ - "▁р", - "ів" - ], - [ - "▁рі", - "в" - ], - [ - "▁", - "рів" - ], - [ - "▁S", - "ans" - ], - [ - "▁San", - "s" - ], - [ - "▁Sa", - "ns" - ], - [ - "▁si", - "ège" - ], - [ - "▁siè", - "ge" - ], - [ - "st", - "ellen" - ], - [ - "stell", - "en" - ], - [ - "stelle", - "n" - ], - [ - "Br", - "ush" - ], - [ - "OF", - "F" - ], - [ - "O", - "FF" - ], - [ - "▁vis", - "itor" - ], - [ - "▁visit", - "or" - ], - [ - "▁b", - "ath" - ], - [ - "▁ba", - "th" - ], - [ - "▁bat", - "h" - ], - [ - "▁f", - "ee" - ], - [ - "▁fe", - "e" - ], - [ - "at", - "isf" - ], - [ - "ati", - "sf" - ], - [ - "atis", - "f" - ], - [ - "▁cu", - "rv" - ], - [ - "▁cur", - "v" - ], - [ - "▁fol", - "gender" - ], - [ - "▁folg", - "ender" - ], - [ - "▁cons", - "cience" - ], - [ - "▁Se", - "attle" - ], - [ - "▁med", - "ieval" - ], - [ - "▁medi", - "eval" - ], - [ - "dist", - "ribution" - ], - [ - "▁D", - "M" - ], - [ - "▁", - "DM" - ], - [ - "▁м", - "я" - ], - [ - "▁", - "мя" - ], - [ - "▁R", - "UN" - ], - [ - "ak", - "ov" - ], - [ - "ako", - "v" - ], - [ - "a", - "kov" - ], - [ - "ce", - "il" - ], - [ - "c", - "eil" - ], - [ - "▁let", - "ting" - ], - [ - "▁lett", - "ing" - ], - [ - "▁d", - "ov" - ], - [ - "▁do", - "v" - ], - [ - "▁о", - "би" - ], - [ - "▁об", - "и" - ], - [ - "ki", - "ej" - ], - [ - "kie", - "j" - ], - [ - "k", - "iej" - ], - [ - "▁dire", - "kt" - ], - [ - "▁t", - "m" - ], - [ - "▁", - "tm" - ], - [ - "col", - "ors" - ], - [ - "color", - "s" - ], - [ - "colo", - "rs" - ], - [ - "▁alt", - "ro" - ], - [ - "▁tijd", - "ens" - ], - [ - "]{", - "'" - ], - [ - "]", - "{'" - ], - [ - "▁B", - "om" - ], - [ - "▁Bo", - "m" - ], - [ - "▁k", - "unst" - ], - [ - "▁kun", - "st" - ], - [ - "▁sh", - "elter" - ], - [ - "▁r", - "av" - ], - [ - "▁ra", - "v" - ], - [ - "▁", - "rav" - ], - [ - "pre", - "dict" - ], - [ - "pred", - "ict" - ], - [ - "▁comenz", - "ó" - ], - [ - "▁świ", - "at" - ], - [ - "▁św", - "iat" - ], - [ - "▁Du", - "rant" - ], - [ - "▁Dur", - "ant" - ], - [ - "▁sch", - "emes" - ], - [ - "▁scheme", - "s" - ], - [ - "▁sche", - "mes" - ], - [ - "▁m", - "esh" - ], - [ - "▁me", - "sh" - ], - [ - "▁mes", - "h" - ], - [ - "▁ind", - "icator" - ], - [ - "▁indic", - "ator" - ], - [ - "▁E", - "mer" - ], - [ - "▁Em", - "er" - ], - [ - "▁gu", - "ilty" - ], - [ - "не", - "ц" - ], - [ - "▁consequ", - "ences" - ], - [ - "▁consequence", - "s" - ], - [ - "cl", - "udes" - ], - [ - "clude", - "s" - ], - [ - "clud", - "es" - ], - [ - "▁L", - "ower" - ], - [ - "▁Lo", - "wer" - ], - [ - "▁Low", - "er" - ], - [ - "▁", - "Lower" - ], - [ - "▁по", - "ме" - ], - [ - "▁p", - "ace" - ], - [ - "▁pa", - "ce" - ], - [ - "▁pac", - "e" - ], - [ - "▁", - "pace" - ], - [ - "да", - "го" - ], - [ - "▁am", - "bos" - ], - [ - "▁amb", - "os" - ], - [ - "l", - "b" - ], - [ - "▁educ", - "ated" - ], - [ - "ur", - "ale" - ], - [ - "ura", - "le" - ], - [ - "ural", - "e" - ], - [ - "u", - "rale" - ], - [ - "an", - "h" - ], - [ - "es", - "ség" - ], - [ - "ess", - "ég" - ], - [ - "▁associ", - "ations" - ], - [ - "▁association", - "s" - ], - [ - "to", - "wn" - ], - [ - "t", - "own" - ], - [ - "▁t", - "rif" - ], - [ - "▁tr", - "if" - ], - [ - "▁tri", - "f" - ], - [ - "sample", - "s" - ], - [ - "sam", - "ples" - ], - [ - "s", - "amples" - ], - [ - "bo", - "s" - ], - [ - "b", - "os" - ], - [ - "▁S", - "pect" - ], - [ - "▁Sp", - "ect" - ], - [ - "▁Spe", - "ct" - ], - [ - "▁Spec", - "t" - ], - [ - "▁Ц", - "е" - ], - [ - "alt", - "ung" - ], - [ - "▁L", - "ob" - ], - [ - "▁Lo", - "b" - ], - [ - "▁curios", - "ity" - ], - [ - "▁We", - "iter" - ], - [ - "▁Wei", - "ter" - ], - [ - "▁Weit", - "er" - ], - [ - "est", - "one" - ], - [ - "esto", - "ne" - ], - [ - "eston", - "e" - ], - [ - "e", - "stone" - ], - [ - "▁dem", - "ol" - ], - [ - "▁demo", - "l" - ], - [ - "▁ap", - "olog" - ], - [ - "▁apo", - "log" - ], - [ - "▁D", - "ynamic" - ], - [ - "▁Dynam", - "ic" - ], - [ - "▁", - "Dynamic" - ], - [ - "In", - "ner" - ], - [ - "es", - "per" - ], - [ - "esp", - "er" - ], - [ - "ec", - "z" - ], - [ - "e", - "cz" - ], - [ - "uel", - "lement" - ], - [ - "uelle", - "ment" - ], - [ - "▁Hamilton", - "ian" - ], - [ - "At", - "las" - ], - [ - "▁ar", - "gue" - ], - [ - "▁arg", - "ue" - ], - [ - "For", - "eign" - ], - [ - "F", - "oreign" - ], - [ - "col", - "lapse" - ], - [ - "▁tér", - "min" - ], - [ - "▁electron", - "ic" - ], - [ - "▁electro", - "nic" - ], - [ - "▁N", - "R" - ], - [ - "▁", - "NR" - ], - [ - "▁c", - "orr" - ], - [ - "▁cor", - "r" - ], - [ - "▁co", - "rr" - ], - [ - "▁", - "corr" - ], - [ - "tem", - "ps" - ], - [ - "temp", - "s" - ], - [ - "Index", - "Path" - ], - [ - "я", - "з" - ], - [ - "▁tal", - "ál" - ], - [ - "to", - "day" - ], - [ - "tod", - "ay" - ], - [ - "wa", - "ve" - ], - [ - "w", - "ave" - ], - [ - "▁s", - "ib" - ], - [ - "▁si", - "b" - ], - [ - "▁с", - "пи" - ], - [ - "▁сп", - "и" - ], - [ - "▁con", - "vey" - ], - [ - "▁conv", - "ey" - ], - [ - "▁Gé", - "ographie" - ], - [ - "▁Н", - "ью" - ], - [ - "▁Hi", - "bernate" - ], - [ - "▁t", - "in" - ], - [ - "▁ti", - "n" - ], - [ - "di", - "c" - ], - [ - "d", - "ic" - ], - [ - "pp", - "ings" - ], - [ - "pping", - "s" - ], - [ - "s", - "weise" - ], - [ - "▁roll", - "ing" - ], - [ - "▁rol", - "ling" - ], - [ - "▁", - "rolling" - ], - [ - "▁select", - "s" - ], - [ - ")\\", - ")" - ], - [ - ")", - "\\)" - ], - [ - "▁po", - "eta" - ], - [ - "▁poet", - "a" - ], - [ - "▁сте", - "пени" - ], - [ - "▁A", - "br" - ], - [ - "▁Ab", - "r" - ], - [ - "▁hö", - "ch" - ], - [ - "▁s", - "tern" - ], - [ - "▁st", - "ern" - ], - [ - "▁ste", - "rn" - ], - [ - "▁ster", - "n" - ], - [ - "▁f", - "jär" - ], - [ - "▁inst", - "aller" - ], - [ - "▁install", - "er" - ], - [ - "▁instal", - "ler" - ], - [ - "de", - "cl" - ], - [ - "dec", - "l" - ], - [ - "▁m", - "iser" - ], - [ - "▁mi", - "ser" - ], - [ - "▁mis", - "er" - ], - [ - "▁mise", - "r" - ], - [ - "group", - "by" - ], - [ - "sub", - "str" - ], - [ - "subst", - "r" - ], - [ - "▁phen", - "omen" - ], - [ - "▁W", - "ing" - ], - [ - "▁Win", - "g" - ], - [ - "▁Wi", - "ng" - ], - [ - "▁f", - "ills" - ], - [ - "▁fil", - "ls" - ], - [ - "▁fill", - "s" - ], - [ - "▁ú", - "nico" - ], - [ - "Run", - "ning" - ], - [ - "R", - "unning" - ], - [ - "Com", - "e" - ], - [ - "Co", - "me" - ], - [ - "C", - "ome" - ], - [ - "ir", - "able" - ], - [ - "ira", - "ble" - ], - [ - "i", - "rable" - ], - [ - "sim", - "eq" - ], - [ - "sime", - "q" - ], - [ - "▁re", - "mp" - ], - [ - "▁r", - "emp" - ], - [ - "▁rem", - "p" - ], - [ - "ke", - "le" - ], - [ - "kel", - "e" - ], - [ - "k", - "ele" - ], - [ - "li", - "ers" - ], - [ - "lie", - "rs" - ], - [ - "lier", - "s" - ], - [ - "l", - "iers" - ], - [ - "▁kwiet", - "nia" - ], - [ - "▁inter", - "rupted" - ], - [ - "▁interrupt", - "ed" - ], - [ - "▁J", - "et" - ], - [ - "▁Je", - "t" - ], - [ - "=\\", - "{" - ], - [ - "=", - "\\{" - ], - [ - "íd", - "o" - ], - [ - "í", - "do" - ], - [ - "▁Tai", - "wan" - ], - [ - "▁воз", - "ра" - ], - [ - "▁altern", - "atives" - ], - [ - "▁alternative", - "s" - ], - [ - "▁T", - "ir" - ], - [ - "▁Ti", - "r" - ], - [ - "▁Re", - "serve" - ], - [ - "▁Res", - "erve" - ], - [ - "▁К", - "ур" - ], - [ - "▁Ку", - "р" - ], - [ - "▁No", - "bel" - ], - [ - "▁Nob", - "el" - ], - [ - "▁рабо", - "тал" - ], - [ - "▁работа", - "л" - ], - [ - "▁a", - "xes" - ], - [ - "▁ax", - "es" - ], - [ - "▁C", - "ependant" - ], - [ - "k", - "á" - ], - [ - "▁er", - "neut" - ], - [ - "▁D", - "emo" - ], - [ - "▁De", - "mo" - ], - [ - "▁Dem", - "o" - ], - [ - "▁", - "Demo" - ], - [ - "comm", - "unic" - ], - [ - "con", - "structor" - ], - [ - "construct", - "or" - ], - [ - "▁Mon", - "day" - ], - [ - "▁Mond", - "ay" - ], - [ - "N", - "il" - ], - [ - "Hash", - "Map" - ], - [ - "pay", - "ment" - ], - [ - "▁fix", - "ing" - ], - [ - "▁A", - "DD" - ], - [ - "▁AD", - "D" - ], - [ - "▁", - "ADD" - ], - [ - "re", - "view" - ], - [ - "rev", - "iew" - ], - [ - "▁poss", - "ibil" - ], - [ - "▁possib", - "il" - ], - [ - "▁g", - "rote" - ], - [ - "▁gr", - "ote" - ], - [ - "▁gro", - "te" - ], - [ - "▁group", - "ed" - ], - [ - "▁groupe", - "d" - ], - [ - "▁L", - "ima" - ], - [ - "▁Li", - "ma" - ], - [ - "▁Lim", - "a" - ], - [ - "▁A", - "ugen" - ], - [ - "▁Au", - "gen" - ], - [ - "▁Aug", - "en" - ], - [ - "▁o", - "ckså" - ], - [ - "on", - "as" - ], - [ - "ona", - "s" - ], - [ - "o", - "nas" - ], - [ - "▁deb", - "ate" - ], - [ - "▁In", - "gl" - ], - [ - "▁Ing", - "l" - ], - [ - "D", - "a" - ], - [ - "SO", - "UR" - ], - [ - "S", - "OUR" - ], - [ - "ett", - "be" - ], - [ - "▁Batt", - "alion" - ], - [ - "▁F", - "loat" - ], - [ - "▁Flo", - "at" - ], - [ - "▁", - "Float" - ], - [ - "▁c", - "one" - ], - [ - "▁con", - "e" - ], - [ - "▁co", - "ne" - ], - [ - "read", - "sheet" - ], - [ - "co", - "urt" - ], - [ - "cou", - "rt" - ], - [ - "c", - "ourt" - ], - [ - "li", - "gen" - ], - [ - "lig", - "en" - ], - [ - "lige", - "n" - ], - [ - "l", - "igen" - ], - [ - "▁Begin", - "n" - ], - [ - "▁Beg", - "inn" - ], - [ - "▁LI", - "MIT" - ], - [ - "▁LIM", - "IT" - ], - [ - "▁enjo", - "yed" - ], - [ - "▁enjoy", - "ed" - ], - [ - "▁Jak", - "ob" - ], - [ - "▁t", - "elt" - ], - [ - "▁te", - "lt" - ], - [ - "▁tel", - "t" - ], - [ - "back", - "end" - ], - [ - "▁Gemeins", - "ame" - ], - [ - "li", - "nt" - ], - [ - "lin", - "t" - ], - [ - "l", - "int" - ], - [ - "al", - "ling" - ], - [ - "all", - "ing" - ], - [ - "▁b", - "ör" - ], - [ - "gr", - "and" - ], - [ - "gra", - "nd" - ], - [ - "g", - "rand" - ], - [ - "▁divers", - "es" - ], - [ - "▁diverse", - "s" - ], - [ - "▁z", - "wiąz" - ], - [ - "▁Kom", - "pon" - ], - [ - "▁inner", - "halb" - ], - [ - "▁desar", - "rollo" - ], - [ - "▁desarroll", - "o" - ], - [ - "▁Ma", - "sters" - ], - [ - "▁Mas", - "ters" - ], - [ - "▁Master", - "s" - ], - [ - "io", - "so" - ], - [ - "ios", - "o" - ], - [ - "i", - "oso" - ], - [ - "]`", - "." - ], - [ - "]", - "`." - ], - [ - "▁frances", - "a" - ], - [ - "▁franc", - "esa" - ], - [ - "A", - "ff" - ], - [ - "in", - "ek" - ], - [ - "ine", - "k" - ], - [ - "i", - "nek" - ], - [ - "▁des", - "sin" - ], - [ - "▁dess", - "in" - ], - [ - "`.", - "`" - ], - [ - "`", - ".`" - ], - [ - "▁r", - "anks" - ], - [ - "▁ran", - "ks" - ], - [ - "▁rank", - "s" - ], - [ - "бер", - "г" - ], - [ - "▁s", - "kal" - ], - [ - "▁sk", - "al" - ], - [ - "▁S", - "ultan" - ], - [ - "▁Sul", - "tan" - ], - [ - "А", - "Н" - ], - [ - "▁спо", - "соб" - ], - [ - "▁contra", - "dict" - ], - [ - "▁contrad", - "ict" - ], - [ - "▁re", - "com" - ], - [ - "▁rec", - "om" - ], - [ - "▁Ok", - "lahoma" - ], - [ - "▁Vlad", - "imir" - ], - [ - "▁m", - "eters" - ], - [ - "▁me", - "ters" - ], - [ - "▁met", - "ers" - ], - [ - "▁meter", - "s" - ], - [ - "trans", - "port" - ], - [ - "▁cons", - "ulté" - ], - [ - "▁consult", - "é" - ], - [ - "▁", - "consulté" - ], - [ - "▁A", - "TP" - ], - [ - "▁AT", - "P" - ], - [ - "eb", - "b" - ], - [ - "e", - "bb" - ], - [ - "▁vol", - "unte" - ], - [ - "▁volunt", - "e" - ], - [ - "▁out", - "line" - ], - [ - "LI", - "C" - ], - [ - "L", - "IC" - ], - [ - "▁e", - "uro" - ], - [ - "▁eu", - "ro" - ], - [ - "Char", - "Field" - ], - [ - "med", - "ium" - ], - [ - "medi", - "um" - ], - [ - "▁Belg", - "ique" - ], - [ - "Pro", - "c" - ], - [ - "Pr", - "oc" - ], - [ - "P", - "roc" - ], - [ - "ro", - "utes" - ], - [ - "route", - "s" - ], - [ - "rout", - "es" - ], - [ - "rou", - "tes" - ], - [ - "▁cont", - "ribu" - ], - [ - "▁contrib", - "u" - ], - [ - "!", - "}" - ], - [ - "ší", - "m" - ], - [ - "š", - "ím" - ], - [ - "▁L", - "ess" - ], - [ - "▁Le", - "ss" - ], - [ - "▁Les", - "s" - ], - [ - "▁K", - "ost" - ], - [ - "▁Ko", - "st" - ], - [ - "▁Kos", - "t" - ], - [ - "▁eredet", - "iből" - ], - [ - "re", - "ven" - ], - [ - "rev", - "en" - ], - [ - "r", - "even" - ], - [ - "ver", - "ify" - ], - [ - "▁S", - "alt" - ], - [ - "▁Sal", - "t" - ], - [ - "▁Sa", - "lt" - ], - [ - "▁shoot", - "ing" - ], - [ - "▁sho", - "oting" - ], - [ - "▁dis", - "pose" - ], - [ - "▁dispos", - "e" - ], - [ - "▁disp", - "ose" - ], - [ - "uj", - "í" - ], - [ - "▁t", - "ierra" - ], - [ - "▁tier", - "ra" - ], - [ - "▁po", - "ison" - ], - [ - "▁poi", - "son" - ], - [ - "sa", - "k" - ], - [ - "s", - "ak" - ], - [ - "periment", - "al" - ], - [ - "▁N", - "é" - ], - [ - "▁K", - "id" - ], - [ - "▁Ki", - "d" - ], - [ - "ag", - "yar" - ], - [ - "agy", - "ar" - ], - [ - "▁archiv", - "álva" - ], - [ - "be", - "reich" - ], - [ - "bere", - "ich" - ], - [ - "í", - "z" - ], - [ - "▁R", - "itter" - ], - [ - "▁Хронологи", - "ја" - ], - [ - "ze", - "um" - ], - [ - "да", - "х" - ], - [ - "▁gr", - "ünd" - ], - [ - "▁program", - "mer" - ], - [ - "▁programme", - "r" - ], - [ - "▁cons", - "eil" - ], - [ - "▁conse", - "il" - ], - [ - "▁enc", - "rypt" - ], - [ - "integr", - "ation" - ], - [ - "C", - "ulture" - ], - [ - "▁Circ", - "le" - ], - [ - "▁Cir", - "cle" - ], - [ - "Ob", - "servable" - ], - [ - "▁gen", - "omsnitt" - ], - [ - "▁Se", - "lection" - ], - [ - "▁Select", - "ion" - ], - [ - "▁Sel", - "ection" - ], - [ - "▁Sele", - "ction" - ], - [ - "▁", - "Selection" - ], - [ - "▁ir", - "regular" - ], - [ - "Aut", - "res" - ], - [ - "Per", - "cent" - ], - [ - "fa", - "ult" - ], - [ - "f", - "ault" - ], - [ - "▁virt", - "ue" - ], - [ - "ą", - "pi" - ], - [ - "▁s", - "ess" - ], - [ - "▁se", - "ss" - ], - [ - "▁ses", - "s" - ], - [ - "▁Так", - "же" - ], - [ - "Tim", - "estamp" - ], - [ - "▁litt", - "érature" - ], - [ - "▁mo", - "ż" - ], - [ - "▁b", - "orrow" - ], - [ - "▁bor", - "row" - ], - [ - "▁con", - "ced" - ], - [ - "▁conc", - "ed" - ], - [ - "▁conce", - "d" - ], - [ - "чни", - "к" - ], - [ - "ч", - "ник" - ], - [ - "▁L", - "und" - ], - [ - "▁Lu", - "nd" - ], - [ - "ION", - "S" - ], - [ - "IO", - "NS" - ], - [ - "yn", - "ie" - ], - [ - "y", - "nie" - ], - [ - "▁S", - "hin" - ], - [ - "▁Sh", - "in" - ], - [ - "▁o", - "sob" - ], - [ - "▁os", - "ob" - ], - [ - "b", - "ě" - ], - [ - "▁int", - "uit" - ], - [ - "▁intu", - "it" - ], - [ - "▁на", - "п" - ], - [ - "▁p", - "roph" - ], - [ - "▁pro", - "ph" - ], - [ - "▁pr", - "oph" - ], - [ - "▁prop", - "h" - ], - [ - "▁p", - "itt" - ], - [ - "▁pi", - "tt" - ], - [ - "▁pit", - "t" - ], - [ - "▁IB", - "M" - ], - [ - "▁T", - "ill" - ], - [ - "▁Ti", - "ll" - ], - [ - "▁h", - "ina" - ], - [ - "▁hi", - "na" - ], - [ - "▁hin", - "a" - ], - [ - "it", - "test" - ], - [ - "itt", - "est" - ], - [ - "itte", - "st" - ], - [ - "gener", - "ator" - ], - [ - "▁N", - "in" - ], - [ - "▁Ni", - "n" - ], - [ - "▁K", - "ot" - ], - [ - "▁Ko", - "t" - ], - [ - "▁p", - "asser" - ], - [ - "▁pass", - "er" - ], - [ - "▁pas", - "ser" - ], - [ - "▁passe", - "r" - ], - [ - "▁dis", - "position" - ], - [ - "▁dispos", - "ition" - ], - [ - "▁disp", - "osition" - ], - [ - "un", - "ing" - ], - [ - "uni", - "ng" - ], - [ - "u", - "ning" - ], - [ - "▁f", - "ame" - ], - [ - "▁fa", - "me" - ], - [ - "▁fam", - "e" - ], - [ - "▁t", - "enia" - ], - [ - "▁te", - "nia" - ], - [ - "▁ten", - "ia" - ], - [ - "an", - "cement" - ], - [ - "ance", - "ment" - ], - [ - "anc", - "ement" - ], - [ - "▁Su", - "isse" - ], - [ - "`", - "-" - ], - [ - "▁h", - "ombres" - ], - [ - "▁hom", - "bres" - ], - [ - "▁hombre", - "s" - ], - [ - "▁inf", - "inity" - ], - [ - "▁infin", - "ity" - ], - [ - "▁окон", - "ча" - ], - [ - "▁co", - "sm" - ], - [ - "▁cos", - "m" - ], - [ - "▁D", - "ennis" - ], - [ - "▁Den", - "nis" - ], - [ - "ba", - "z" - ], - [ - "b", - "az" - ], - [ - "ha", - "upt" - ], - [ - "h", - "aupt" - ], - [ - "▁might", - "y" - ], - [ - "▁pr", - "ede" - ], - [ - "▁pre", - "de" - ], - [ - "▁pred", - "e" - ], - [ - "us", - "able" - ], - [ - "usa", - "ble" - ], - [ - "▁ws", - "zyst" - ], - [ - "▁wsz", - "yst" - ], - [ - "▁l", - "b" - ], - [ - "▁", - "lb" - ], - [ - "AB", - "ASE" - ], - [ - "A", - "BASE" - ], - [ - "j", - "na" - ], - [ - "не", - "в" - ], - [ - "н", - "ев" - ], - [ - "▁as", - "es" - ], - [ - "▁", - "ases" - ], - [ - "▁final", - "mente" - ], - [ - "й", - "м" - ], - [ - "pe", - "ction" - ], - [ - "pect", - "ion" - ], - [ - "pec", - "tion" - ], - [ - "p", - "ection" - ], - [ - "▁Stud", - "ien" - ], - [ - "▁Norweg", - "ian" - ], - [ - "ce", - "go" - ], - [ - "c", - "ego" - ], - [ - "IN", - "DEX" - ], - [ - "IND", - "EX" - ], - [ - "or", - "ten" - ], - [ - "ort", - "en" - ], - [ - "orte", - "n" - ], - [ - "▁friend", - "ship" - ], - [ - "▁friends", - "hip" - ], - [ - "met", - "ro" - ], - [ - "m", - "etro" - ], - [ - "th", - "ick" - ], - [ - "▁Z", - "el" - ], - [ - "▁Ze", - "l" - ], - [ - "LO", - "W" - ], - [ - "L", - "OW" - ], - [ - "▁there", - "by" - ], - [ - "un", - "ted" - ], - [ - "unt", - "ed" - ], - [ - "unte", - "d" - ], - [ - "▁sur", - "faces" - ], - [ - "▁surface", - "s" - ], - [ - "ющи", - "м" - ], - [ - "%)", - "." - ], - [ - "%", - ")." - ], - [ - "▁W", - "onder" - ], - [ - "▁Wo", - "nder" - ], - [ - "▁redund", - "ant" - ], - [ - "▁G", - "ros" - ], - [ - "▁Gr", - "os" - ], - [ - "▁Gro", - "s" - ], - [ - "▁web", - "sites" - ], - [ - "▁website", - "s" - ], - [ - "▁v", - "io" - ], - [ - "▁vi", - "o" - ], - [ - "▁o", - "cas" - ], - [ - "▁oc", - "as" - ], - [ - "vé", - "s" - ], - [ - "v", - "és" - ], - [ - "▁G", - "am" - ], - [ - "▁Ga", - "m" - ], - [ - "d", - "w" - ], - [ - "Ind", - "icator" - ], - [ - "▁K", - "ob" - ], - [ - "▁Ko", - "b" - ], - [ - "▁j", - "ack" - ], - [ - "▁ja", - "ck" - ], - [ - "▁", - "jack" - ], - [ - "Hi", - "nt" - ], - [ - "H", - "int" - ], - [ - "▁A", - "pol" - ], - [ - "▁Ap", - "ol" - ], - [ - "▁други", - "е" - ], - [ - "▁N", - "UM" - ], - [ - "▁", - "NUM" - ], - [ - "▁o", - "fic" - ], - [ - "▁of", - "ic" - ], - [ - "yst", - "ycz" - ], - [ - "▁were", - "ld" - ], - [ - "▁wer", - "eld" - ], - [ - "мо", - "сти" - ], - [ - "LE", - "FT" - ], - [ - "▁T", - "ypes" - ], - [ - "▁Type", - "s" - ], - [ - "▁Ty", - "pes" - ], - [ - "▁Typ", - "es" - ], - [ - "▁", - "Types" - ], - [ - "se", - "en" - ], - [ - "see", - "n" - ], - [ - "s", - "een" - ], - [ - "un", - "cia" - ], - [ - "unc", - "ia" - ], - [ - "unci", - "a" - ], - [ - "▁n", - "arod" - ], - [ - "▁na", - "rod" - ], - [ - "▁nar", - "od" - ], - [ - "▁это", - "т" - ], - [ - "Side", - "note" - ], - [ - "S", - "idenote" - ], - [ - "ue", - "il" - ], - [ - "u", - "eil" - ], - [ - "▁от", - "ме" - ], - [ - "▁cour", - "ts" - ], - [ - "▁court", - "s" - ], - [ - "fi", - "r" - ], - [ - "f", - "ir" - ], - [ - "ur", - "z" - ], - [ - "u", - "rz" - ], - [ - "чен", - "ко" - ], - [ - "Cred", - "entials" - ], - [ - "▁imag", - "ination" - ], - [ - "it", - "ats" - ], - [ - "ita", - "ts" - ], - [ - "itat", - "s" - ], - [ - "bu", - "ff" - ], - [ - "buf", - "f" - ], - [ - "b", - "uff" - ], - [ - "fl", - "ash" - ], - [ - "▁bad", - "ly" - ], - [ - "▁w", - "orn" - ], - [ - "▁wor", - "n" - ], - [ - "▁wo", - "rn" - ], - [ - "▁окру", - "гу" - ], - [ - "cat", - "alog" - ], - [ - "catal", - "og" - ], - [ - "c", - "atalog" - ], - [ - "li", - "me" - ], - [ - "lim", - "e" - ], - [ - "l", - "ime" - ], - [ - "▁G", - "ill" - ], - [ - "▁Gi", - "ll" - ], - [ - "▁Gil", - "l" - ], - [ - "▁S", - "ent" - ], - [ - "▁Se", - "nt" - ], - [ - "▁Sen", - "t" - ], - [ - "ie", - "lla" - ], - [ - "iel", - "la" - ], - [ - "i", - "ella" - ], - [ - "▁Cra", - "ig" - ], - [ - "▁S", - "ele" - ], - [ - "▁Se", - "le" - ], - [ - "▁Sel", - "e" - ], - [ - "▁Indep", - "end" - ], - [ - "▁prov", - "incie" - ], - [ - "▁provin", - "cie" - ], - [ - "os", - "sen" - ], - [ - "oss", - "en" - ], - [ - "▁за", - "пад" - ], - [ - "▁запа", - "д" - ], - [ - "▁inf", - "ant" - ], - [ - "▁pr", - "events" - ], - [ - "▁prevent", - "s" - ], - [ - "▁prev", - "ents" - ], - [ - "▁provin", - "ces" - ], - [ - "▁province", - "s" - ], - [ - "af", - "é" - ], - [ - "be", - "g" - ], - [ - "b", - "eg" - ], - [ - "▁col", - "ours" - ], - [ - "▁colour", - "s" - ], - [ - "B", - "F" - ], - [ - "ë", - "n" - ], - [ - "▁Ме", - "жду" - ], - [ - "î", - "n" - ], - [ - "Ob", - "server" - ], - [ - "for", - "sch" - ], - [ - "í", - "gen" - ], - [ - "um", - "ption" - ], - [ - "ump", - "tion" - ], - [ - "▁Ill", - "ustr" - ], - [ - "ри", - "ст" - ], - [ - "рис", - "т" - ], - [ - "▁по", - "лови" - ], - [ - "▁пол", - "ови" - ], - [ - "▁поло", - "ви" - ], - [ - "▁`", - "&" - ], - [ - "▁o", - "re" - ], - [ - "▁or", - "e" - ], - [ - "▁", - "ore" - ], - [ - "▁supp", - "lies" - ], - [ - "▁parent", - "hes" - ], - [ - "Found", - "ation" - ], - [ - "▁v", - "ou" - ], - [ - "▁vo", - "u" - ], - [ - "▁T", - "out" - ], - [ - "▁To", - "ut" - ], - [ - "Don", - "ald" - ], - [ - "▁R", - "ET" - ], - [ - "▁RE", - "T" - ], - [ - "we", - "ig" - ], - [ - "wei", - "g" - ], - [ - "▁produ", - "cción" - ], - [ - "mi", - "x" - ], - [ - "m", - "ix" - ], - [ - "▁ut", - "wor" - ], - [ - "▁f", - "öl" - ], - [ - "▁fö", - "l" - ], - [ - "▁ent", - "ão" - ], - [ - "▁S", - "ister" - ], - [ - "▁Si", - "ster" - ], - [ - "Tag", - "s" - ], - [ - "T", - "ags" - ], - [ - "▁Савез", - "не" - ], - [ - "▁privile", - "ges" - ], - [ - "▁na", - "zw" - ], - [ - "▁naz", - "w" - ], - [ - "▁R", - "av" - ], - [ - "▁Ra", - "v" - ], - [ - "▁re", - "pro" - ], - [ - "▁rep", - "ro" - ], - [ - "▁repr", - "o" - ], - [ - "▁M", - "ason" - ], - [ - "▁Ma", - "son" - ], - [ - "▁Mas", - "on" - ], - [ - "▁Pl", - "atform" - ], - [ - "▁Plat", - "form" - ], - [ - "▁", - "Platform" - ], - [ - "▁про", - "бле" - ], - [ - "▁P", - "érez" - ], - [ - "▁bl", - "anc" - ], - [ - "▁bla", - "nc" - ], - [ - "▁blan", - "c" - ], - [ - "Be", - "havior" - ], - [ - "фи", - "ци" - ], - [ - "ek", - "en" - ], - [ - "e", - "ken" - ], - [ - "▁me", - "ets" - ], - [ - "▁meet", - "s" - ], - [ - "(.", - "*" - ], - [ - "(", - ".*" - ], - [ - "▁f", - "å" - ], - [ - "ep", - "en" - ], - [ - "e", - "pen" - ], - [ - "ma", - "ker" - ], - [ - "make", - "r" - ], - [ - "m", - "aker" - ], - [ - "▁lo", - "yal" - ], - [ - "mem", - "bers" - ], - [ - "member", - "s" - ], - [ - "m", - "embers" - ], - [ - "meister", - "schaft" - ], - [ - "go", - "al" - ], - [ - "ш", - "лен" - ], - [ - "▁се", - "веро" - ], - [ - "▁север", - "о" - ], - [ - "ie", - "nde" - ], - [ - "ien", - "de" - ], - [ - "i", - "ende" - ], - [ - "д", - "ні" - ], - [ - "Pro", - "of" - ], - [ - "▁exp", - "lic" - ], - [ - "▁expl", - "ic" - ], - [ - "▁elect", - "ro" - ], - [ - "ie", - "ls" - ], - [ - "iel", - "s" - ], - [ - "i", - "els" - ], - [ - "re", - "load" - ], - [ - "▁el", - "even" - ], - [ - "▁ele", - "ven" - ], - [ - "▁elev", - "en" - ], - [ - "▁part", - "idos" - ], - [ - "▁partido", - "s" - ], - [ - "în", - "e" - ], - [ - "î", - "ne" - ], - [ - "▁R", - "egin" - ], - [ - "▁Re", - "gin" - ], - [ - "▁Reg", - "in" - ], - [ - "▁é", - "x" - ], - [ - "▁Bu", - "lg" - ], - [ - "▁Bul", - "g" - ], - [ - "▁network", - "ing" - ], - [ - "▁net", - "working" - ], - [ - "▁se", - "parator" - ], - [ - "▁separ", - "ator" - ], - [ - "User", - "Name" - ], - [ - "▁edific", - "io" - ], - [ - "▁M", - "ie" - ], - [ - "▁Mi", - "e" - ], - [ - "▁id", - "le" - ], - [ - "ye", - "d" - ], - [ - "y", - "ed" - ], - [ - "▁pass", - "engers" - ], - [ - "▁passenger", - "s" - ], - [ - "+", - ")" - ], - [ - "me", - "no" - ], - [ - "men", - "o" - ], - [ - "m", - "eno" - ], - [ - "eg", - "gi" - ], - [ - "e", - "ggi" - ], - [ - "▁nice", - "ly" - ], - [ - "▁nic", - "ely" - ], - [ - "end", - "encia" - ], - [ - "enden", - "cia" - ], - [ - "чи", - "й" - ], - [ - "ét", - "és" - ], - [ - "été", - "s" - ], - [ - "ight", - "arrow" - ], - [ - "▁orth", - "ogonal" - ], - [ - "▁H", - "alf" - ], - [ - "▁Hal", - "f" - ], - [ - "▁fe", - "wer" - ], - [ - "▁few", - "er" - ], - [ - "▁pro", - "pi" - ], - [ - "▁prop", - "i" - ], - [ - "▁pr", - "imit" - ], - [ - "▁prim", - "it" - ], - [ - "▁pri", - "mit" - ], - [ - "▁primi", - "t" - ], - [ - "ic", - "ale" - ], - [ - "ical", - "e" - ], - [ - "ica", - "le" - ], - [ - "▁f", - "lower" - ], - [ - "▁fl", - "ower" - ], - [ - "▁flow", - "er" - ], - [ - "▁flo", - "wer" - ], - [ - "mer", - "k" - ], - [ - "m", - "erk" - ], - [ - "▁Оте", - "че" - ], - [ - "▁pers", - "istent" - ], - [ - "▁persist", - "ent" - ], - [ - "▁V", - "ille" - ], - [ - "▁Vill", - "e" - ], - [ - "▁Vi", - "lle" - ], - [ - "▁Vil", - "le" - ], - [ - "Me", - "n" - ], - [ - "M", - "en" - ], - [ - "ga", - "ben" - ], - [ - "gabe", - "n" - ], - [ - "g", - "aben" - ], - [ - "▁Isa", - "ac" - ], - [ - "at", - "ivity" - ], - [ - "ativ", - "ity" - ], - [ - "ati", - "vity" - ], - [ - "▁pół", - "noc" - ], - [ - "▁r", - "ok" - ], - [ - "▁ro", - "k" - ], - [ - "▁", - "rok" - ], - [ - "car", - "ds" - ], - [ - "card", - "s" - ], - [ - "c", - "ards" - ], - [ - "де", - "ния" - ], - [ - "▁ю", - "го" - ], - [ - "▁extra", - "ordinary" - ], - [ - "▁k", - "yr" - ], - [ - "(\"", - "," - ], - [ - "(", - "\"," - ], - [ - "))", - "]" - ], - [ - ")", - ")]" - ], - [ - "▁un", - "ix" - ], - [ - "▁", - "unix" - ], - [ - "ко", - "л" - ], - [ - "▁s", - "ink" - ], - [ - "▁sin", - "k" - ], - [ - "ap", - "sed" - ], - [ - "aps", - "ed" - ], - [ - "▁k", - "ommen" - ], - [ - "▁kom", - "men" - ], - [ - "▁komm", - "en" - ], - [ - "▁", - "kommen" - ], - [ - "▁for", - "cing" - ], - [ - "Ab", - "out" - ], - [ - "▁H", - "alle" - ], - [ - "▁Ha", - "lle" - ], - [ - "▁Hall", - "e" - ], - [ - "▁Hal", - "le" - ], - [ - "▁Maj", - "esty" - ], - [ - "▁Sw", - "itch" - ], - [ - "▁", - "Switch" - ], - [ - "▁ab", - "road" - ], - [ - "▁acceler", - "ation" - ], - [ - "ur", - "bed" - ], - [ - "urb", - "ed" - ], - [ - "▁о", - "стан" - ], - [ - "▁ос", - "тан" - ], - [ - "▁оста", - "н" - ], - [ - "▁ост", - "ан" - ], - [ - "Re", - "ady" - ], - [ - "Read", - "y" - ], - [ - "▁пів", - "ні" - ], - [ - "Br", - "a" - ], - [ - "B", - "ra" - ], - [ - "▁ць", - "ого" - ], - [ - "▁pl", - "ut" - ], - [ - "▁T", - "rain" - ], - [ - "▁Tr", - "ain" - ], - [ - "▁Tra", - "in" - ], - [ - "▁á", - "prilis" - ], - [ - "▁p", - "uesto" - ], - [ - "▁pu", - "esto" - ], - [ - "▁pue", - "sto" - ], - [ - "▁t", - "oss" - ], - [ - "▁to", - "ss" - ], - [ - "▁irre", - "levant" - ], - [ - "▁d", - "ip" - ], - [ - "▁di", - "p" - ], - [ - "se", - "gment" - ], - [ - "seg", - "ment" - ], - [ - "op", - "acity" - ], - [ - "▁lors", - "que" - ], - [ - "▁versch", - "ill" - ], - [ - "ен", - "а" - ], - [ - "е", - "на" - ], - [ - "▁D", - "oc" - ], - [ - "▁Do", - "c" - ], - [ - "▁", - "Doc" - ], - [ - "%%%%", - "%%%%" - ], - [ - "▁b", - "orders" - ], - [ - "▁border", - "s" - ], - [ - "▁bor", - "ders" - ], - [ - "▁bord", - "ers" - ], - [ - "ge", - "bras" - ], - [ - "geb", - "ras" - ], - [ - "gebra", - "s" - ], - [ - "▁r", - "ies" - ], - [ - "▁ri", - "es" - ], - [ - "▁", - "ries" - ], - [ - "▁Olymp", - "edia" - ], - [ - "▁Gener", - "ation" - ], - [ - "met", - "ros" - ], - [ - "metro", - "s" - ], - [ - "▁hor", - "izon" - ], - [ - "▁adapt", - "ation" - ], - [ - "▁Z", - "ahl" - ], - [ - "▁Za", - "hl" - ], - [ - "▁na", - "he" - ], - [ - "▁nah", - "e" - ], - [ - "▁B", - "ug" - ], - [ - "▁Bu", - "g" - ], - [ - "P", - "icture" - ], - [ - "љ", - "и" - ], - [ - "R", - "GB" - ], - [ - "O", - "wner" - ], - [ - "ad", - "in" - ], - [ - "adi", - "n" - ], - [ - "a", - "din" - ], - [ - "▁Catal", - "unya" - ], - [ - "ný", - "ch" - ], - [ - "n", - "ých" - ], - [ - "▁cual", - "quier" - ], - [ - "▁Inst", - "itution" - ], - [ - "▁Instit", - "ution" - ], - [ - "▁Institut", - "ion" - ], - [ - "in", - "sen" - ], - [ - "ins", - "en" - ], - [ - "▁Bras", - "ile" - ], - [ - "▁Brasil", - "e" - ], - [ - "▁f", - "itting" - ], - [ - "▁fit", - "ting" - ], - [ - "De", - "leg" - ], - [ - "Del", - "eg" - ], - [ - "ic", - "two" - ], - [ - "ict", - "wo" - ], - [ - "▁Ex", - "per" - ], - [ - "▁Exp", - "er" - ], - [ - "och", - "astic" - ], - [ - "▁d", - "us" - ], - [ - "▁du", - "s" - ], - [ - "▁по", - "ра" - ], - [ - "▁пор", - "а" - ], - [ - "▁sub", - "string" - ], - [ - "▁subst", - "ring" - ], - [ - "▁subs", - "tring" - ], - [ - "▁substr", - "ing" - ], - [ - "▁", - "substring" - ], - [ - "сси", - "и" - ], - [ - "с", - "сии" - ], - [ - "oi", - "n" - ], - [ - "o", - "in" - ], - [ - "▁ш", - "кола" - ], - [ - "▁шко", - "ла" - ], - [ - "▁c", - "x" - ], - [ - "▁", - "cx" - ], - [ - "▁%", - ")" - ], - [ - "▁", - "%)" - ], - [ - "▁Bud", - "dh" - ], - [ - "▁p", - "ending" - ], - [ - "▁pen", - "ding" - ], - [ - "▁En", - "try" - ], - [ - "▁Ent", - "ry" - ], - [ - "▁", - "Entry" - ], - [ - "▁Be", - "rl" - ], - [ - "▁Ber", - "l" - ], - [ - "▁c", - "ler" - ], - [ - "▁cl", - "er" - ], - [ - "▁cle", - "r" - ], - [ - "▁", - "cler" - ], - [ - "▁S", - "oc" - ], - [ - "▁So", - "c" - ], - [ - "▁r", - "ounded" - ], - [ - "▁round", - "ed" - ], - [ - "▁m", - "v" - ], - [ - "▁", - "mv" - ], - [ - "ít", - "ett" - ], - [ - "▁Di", - "plom" - ], - [ - "▁französ", - "ischen" - ], - [ - "▁G", - "an" - ], - [ - "▁Ga", - "n" - ], - [ - "▁Inv", - "estig" - ], - [ - "▁index", - "Path" - ], - [ - "▁", - "indexPath" - ], - [ - "▁mol", - "ti" - ], - [ - "▁molt", - "i" - ], - [ - "pers", - "istence" - ], - [ - "▁XIX", - "e" - ], - [ - "▁Elect", - "ron" - ], - [ - "b", - "ü" - ], - [ - "ge", - "le" - ], - [ - "gel", - "e" - ], - [ - "g", - "ele" - ], - [ - "▁M", - "aler" - ], - [ - "▁Ma", - "ler" - ], - [ - "▁Mal", - "er" - ], - [ - "▁Male", - "r" - ], - [ - "▁proyect", - "o" - ], - [ - "▁B", - "ath" - ], - [ - "▁Ba", - "th" - ], - [ - "▁Bat", - "h" - ], - [ - "el", - "lers" - ], - [ - "ell", - "ers" - ], - [ - "elle", - "rs" - ], - [ - "eller", - "s" - ], - [ - "▁G", - "P" - ], - [ - "▁", - "GP" - ], - [ - "on", - "ing" - ], - [ - "oni", - "ng" - ], - [ - "o", - "ning" - ], - [ - "clou", - "dflare" - ], - [ - "▁p", - "ři" - ], - [ - "▁př", - "i" - ], - [ - "▁d", - "ed" - ], - [ - "▁de", - "d" - ], - [ - "▁", - "ded" - ], - [ - "▁Od", - "kazy" - ], - [ - "▁M", - "sg" - ], - [ - "▁", - "Msg" - ], - [ - "▁B", - "eing" - ], - [ - "▁Be", - "ing" - ], - [ - "▁Bei", - "ng" - ], - [ - "▁De", - "puis" - ], - [ - "▁Dep", - "uis" - ], - [ - "▁Pri", - "mary" - ], - [ - "▁Prim", - "ary" - ], - [ - "▁Prima", - "ry" - ], - [ - "▁", - "Primary" - ], - [ - "▁App", - "ro" - ], - [ - "▁Ap", - "pro" - ], - [ - "▁form", - "ally" - ], - [ - "▁formal", - "ly" - ], - [ - "ступ", - "ил" - ], - [ - "ступи", - "л" - ], - [ - "▁fue", - "ra" - ], - [ - "▁fu", - "era" - ], - [ - "▁fuer", - "a" - ], - [ - "▁R", - "oot" - ], - [ - "▁Ro", - "ot" - ], - [ - "▁", - "Root" - ], - [ - "▁aut", - "onom" - ], - [ - "▁auto", - "nom" - ], - [ - "▁secret", - "ary" - ], - [ - "▁os", - "ób" - ], - [ - "▁cu", - "ales" - ], - [ - "▁cual", - "es" - ], - [ - "▁Dep", - "ending" - ], - [ - "▁a", - "si" - ], - [ - "▁as", - "i" - ], - [ - "▁", - "asi" - ], - [ - "ve", - "ra" - ], - [ - "ver", - "a" - ], - [ - "v", - "era" - ], - [ - "▁rus", - "se" - ], - [ - "▁russ", - "e" - ], - [ - "▁pro", - "ves" - ], - [ - "▁prov", - "es" - ], - [ - "▁prove", - "s" - ], - [ - "▁pres", - "iden" - ], - [ - "R", - "U" - ], - [ - "▁Wat", - "son" - ], - [ - "▁web", - "pack" - ], - [ - "▁", - "webpack" - ], - [ - "elli", - "gence" - ], - [ - "ellig", - "ence" - ], - [ - "ка", - "м" - ], - [ - "▁Office", - "r" - ], - [ - "▁Offic", - "er" - ], - [ - "▁d", - "elivery" - ], - [ - "▁deliver", - "y" - ], - [ - "▁deli", - "very" - ], - [ - "ж", - "дён" - ], - [ - "▁им", - "пе" - ], - [ - "▁w", - "il" - ], - [ - "▁v", - "esc" - ], - [ - "▁ve", - "sc" - ], - [ - "▁ves", - "c" - ], - [ - "uszt", - "us" - ], - [ - "▁Ge", - "off" - ], - [ - "()", - "}" - ], - [ - "(", - ")}" - ], - [ - "▁F", - "ore" - ], - [ - "▁For", - "e" - ], - [ - "▁Fo", - "re" - ], - [ - "▁w", - "enig" - ], - [ - "▁we", - "nig" - ], - [ - "▁wen", - "ig" - ], - [ - "▁A", - "irl" - ], - [ - "▁Air", - "l" - ], - [ - "▁E", - "fter" - ], - [ - "▁Bre", - "ak" - ], - [ - "▁St", - "äd" - ], - [ - "is", - "miss" - ], - [ - "ism", - "iss" - ], - [ - "í", - "p" - ], - [ - "▁avoid", - "ed" - ], - [ - "▁avo", - "ided" - ], - [ - "▁assert", - "ion" - ], - [ - "D", - "N" - ], - [ - "▁te", - "at" - ], - [ - "▁tea", - "t" - ], - [ - "ín", - "a" - ], - [ - "í", - "na" - ], - [ - "▁mechan", - "ical" - ], - [ - "is", - "u" - ], - [ - "i", - "su" - ], - [ - "@", - "{" - ], - [ - "▁n", - "ou" - ], - [ - "▁no", - "u" - ], - [ - "▁", - "nou" - ], - [ - "Ital", - "ie" - ], - [ - "source", - "forge" - ], - [ - "▁s", - "vo" - ], - [ - "▁sv", - "o" - ], - [ - "▁kir", - "ály" - ], - [ - "▁Re", - "ferences" - ], - [ - "▁Refer", - "ences" - ], - [ - "▁Reference", - "s" - ], - [ - "si", - "x" - ], - [ - "s", - "ix" - ], - [ - "▁Arch", - "ives" - ], - [ - "▁Archiv", - "es" - ], - [ - "▁Archive", - "s" - ], - [ - "▁fin", - "ishing" - ], - [ - "▁finish", - "ing" - ], - [ - "ac", - "je" - ], - [ - "ét", - "at" - ], - [ - "éta", - "t" - ], - [ - "é", - "tat" - ], - [ - "if", - "fs" - ], - [ - "iff", - "s" - ], - [ - "▁st", - "ead" - ], - [ - "▁ste", - "ad" - ], - [ - "▁fe", - "as" - ], - [ - "aw", - "are" - ], - [ - "awa", - "re" - ], - [ - "a", - "ware" - ], - [ - "la", - "nde" - ], - [ - "land", - "e" - ], - [ - "lan", - "de" - ], - [ - "l", - "ande" - ], - [ - "In", - "ject" - ], - [ - "▁A", - "gent" - ], - [ - "▁Ag", - "ent" - ], - [ - "▁Age", - "nt" - ], - [ - "▁", - "Agent" - ], - [ - "▁Norm", - "datei" - ], - [ - "▁a", - "men" - ], - [ - "▁am", - "en" - ], - [ - "▁", - "amen" - ], - [ - "▁Arch", - "itecture" - ], - [ - "az", - "e" - ], - [ - "a", - "ze" - ], - [ - "ș", - "te" - ], - [ - "▁us", - "ar" - ], - [ - "▁c", - "ores" - ], - [ - "▁cor", - "es" - ], - [ - "▁co", - "res" - ], - [ - "▁core", - "s" - ], - [ - "лі", - "н" - ], - [ - "л", - "ін" - ], - [ - "▁C", - "astro" - ], - [ - "▁Cast", - "ro" - ], - [ - "▁v", - "æ" - ], - [ - ">\"", - "," - ], - [ - ">", - "\"," - ], - [ - "om", - "ena" - ], - [ - "ome", - "na" - ], - [ - "omen", - "a" - ], - [ - "▁ge", - "sam" - ], - [ - "▁ges", - "am" - ], - [ - "▁Mart", - "ín" - ], - [ - "▁Martí", - "n" - ], - [ - "eg", - "ung" - ], - [ - "egu", - "ng" - ], - [ - "▁spole", - "č" - ], - [ - "▁ampl", - "itude" - ], - [ - "▁amplit", - "ude" - ], - [ - "▁import", - "ing" - ], - [ - "▁list", - "view" - ], - [ - "TH", - "E" - ], - [ - "T", - "HE" - ], - [ - "zi", - "ale" - ], - [ - "zial", - "e" - ], - [ - "zia", - "le" - ], - [ - "z", - "iale" - ], - [ - "ce", - "des" - ], - [ - "ced", - "es" - ], - [ - "c", - "edes" - ], - [ - "▁particul", - "ier" - ], - [ - "▁Распо", - "дела" - ], - [ - "▁кра", - "й" - ], - [ - "▁d", - "ivent" - ], - [ - "▁di", - "vent" - ], - [ - "▁div", - "ent" - ], - [ - "▁k", - "é" - ], - [ - "▁", - "ké" - ], - [ - "qu", - "it" - ], - [ - "qui", - "t" - ], - [ - "q", - "uit" - ], - [ - "то", - "ром" - ], - [ - "тор", - "ом" - ], - [ - "Check", - "Box" - ], - [ - "▁Zob", - "acz" - ], - [ - "ph", - "e" - ], - [ - "p", - "he" - ], - [ - "pt", - "a" - ], - [ - "p", - "ta" - ], - [ - "▁s", - "jö" - ], - [ - "▁sj", - "ö" - ], - [ - "▁розта", - "ш" - ], - [ - "▁tedes", - "co" - ], - [ - "▁s", - "tal" - ], - [ - "▁st", - "al" - ], - [ - "▁sta", - "l" - ], - [ - "▁", - "stal" - ], - [ - "▁Be", - "ruf" - ], - [ - "▁Ber", - "uf" - ], - [ - "ова", - "я" - ], - [ - "о", - "вая" - ], - [ - "▁s", - "vě" - ], - [ - "▁sv", - "ě" - ], - [ - "▁fl", - "ush" - ], - [ - "▁flu", - "sh" - ], - [ - "▁", - "flush" - ], - [ - "▁від", - "бу" - ], - [ - "▁rad", - "ial" - ], - [ - "▁radi", - "al" - ], - [ - "▁différ", - "entes" - ], - [ - "ан", - "та" - ], - [ - "▁Per", - "ry" - ], - [ - "Col", - "l" - ], - [ - "Co", - "ll" - ], - [ - "C", - "oll" - ], - [ - "li", - "qu" - ], - [ - "l", - "iqu" - ], - [ - "▁Option", - "al" - ], - [ - "▁Opt", - "ional" - ], - [ - "▁", - "Optional" - ], - [ - "▁Сан", - "кт" - ], - [ - "▁LIN", - "Q" - ], - [ - "▁Fran", - "c" - ], - [ - "▁Fr", - "anc" - ], - [ - "▁Fra", - "nc" - ], - [ - "ci", - "je" - ], - [ - "c", - "ije" - ], - [ - "▁Gu", - "illaume" - ], - [ - "kn", - "ow" - ], - [ - "k", - "now" - ], - [ - "▁Un", - "its" - ], - [ - "▁Unit", - "s" - ], - [ - "ol", - "k" - ], - [ - "▁Syst", - "ème" - ], - [ - "▁S", - "ales" - ], - [ - "▁Sal", - "es" - ], - [ - "▁Sa", - "les" - ], - [ - "▁ehemal", - "igen" - ], - [ - "ми", - "рова" - ], - [ - "мир", - "ова" - ], - [ - "x", - "html" - ], - [ - "set", - "opt" - ], - [ - "▁m", - "ellan" - ], - [ - "▁mel", - "lan" - ], - [ - "▁z", - "ie" - ], - [ - "▁", - "zie" - ], - [ - "▁gi", - "ant" - ], - [ - "Bo", - "ard" - ], - [ - "▁C", - "aval" - ], - [ - "▁Ca", - "val" - ], - [ - "▁Cav", - "al" - ], - [ - "▁def", - "ence" - ], - [ - "--", - "--------" - ], - [ - "----", - "------" - ], - [ - "--------", - "--" - ], - [ - "---", - "-------" - ], - [ - "------", - "----" - ], - [ - "-----", - "-----" - ], - [ - "-------", - "---" - ], - [ - "ps", - "hire" - ], - [ - "p", - "shire" - ], - [ - "ma", - "rt" - ], - [ - "mar", - "t" - ], - [ - "m", - "art" - ], - [ - "▁Di", - "oc" - ], - [ - "is", - "kt" - ], - [ - "isk", - "t" - ], - [ - "▁in", - "se" - ], - [ - "▁ins", - "e" - ], - [ - "▁é", - "pisode" - ], - [ - "чи", - "к" - ], - [ - "bar", - "s" - ], - [ - "ba", - "rs" - ], - [ - "b", - "ars" - ], - [ - "Si", - "to" - ], - [ - "S", - "ito" - ], - [ - "▁integr", - "ity" - ], - [ - "au", - "ff" - ], - [ - "auf", - "f" - ], - [ - "a", - "uff" - ], - [ - "▁v", - "är" - ], - [ - "▁vä", - "r" - ], - [ - "Az", - "ure" - ], - [ - "▁star", - "b" - ], - [ - "▁sta", - "rb" - ], - [ - "▁кон", - "тра" - ], - [ - "▁Мекси", - "чка" - ], - [ - "▁за", - "па" - ], - [ - "▁Mount", - "ains" - ], - [ - "▁Mountain", - "s" - ], - [ - "}}", - "=" - ], - [ - "}", - "}=" - ], - [ - "▁pull", - "ing" - ], - [ - "▁pul", - "ling" - ], - [ - "▁sat", - "ellite" - ], - [ - "▁at", - "oms" - ], - [ - "▁atom", - "s" - ], - [ - "▁profes", - "or" - ], - [ - "▁repeated", - "ly" - ], - [ - "▁repeat", - "edly" - ], - [ - "▁inv", - "asion" - ], - [ - "▁invas", - "ion" - ], - [ - "program", - "ming" - ], - [ - "├", - "──" - ], - [ - "▁L", - "ip" - ], - [ - "▁Li", - "p" - ], - [ - "вши", - "е" - ], - [ - "в", - "шие" - ], - [ - "▁k", - "een" - ], - [ - "▁ke", - "en" - ], - [ - "▁crit", - "ics" - ], - [ - "▁critic", - "s" - ], - [ - "▁N", - "icola" - ], - [ - "▁Nicol", - "a" - ], - [ - "▁Nic", - "ola" - ], - [ - "▁Ni", - "cola" - ], - [ - "▁C", - "and" - ], - [ - "▁Can", - "d" - ], - [ - "▁Ca", - "nd" - ], - [ - "▁dist", - "int" - ], - [ - "▁he", - "ading" - ], - [ - "▁head", - "ing" - ], - [ - "p", - "ragma" - ], - [ - "{", - "|" - ], - [ - "ym", - "en" - ], - [ - "yme", - "n" - ], - [ - "y", - "men" - ], - [ - "▁ter", - "rain" - ], - [ - "▁terra", - "in" - ], - [ - "ied", - "enis" - ], - [ - "▁bes", - "onders" - ], - [ - "▁nomin", - "ated" - ], - [ - "BO", - "OL" - ], - [ - "▁K", - "ay" - ], - [ - "▁Ka", - "y" - ], - [ - "ci", - "an" - ], - [ - "cia", - "n" - ], - [ - "c", - "ian" - ], - [ - "st", - "elle" - ], - [ - "ste", - "lle" - ], - [ - "stell", - "e" - ], - [ - "▁disput", - "e" - ], - [ - "▁disp", - "ute" - ], - [ - "▁", - "щ" - ], - [ - "Data", - "Set" - ], - [ - "no", - "thing" - ], - [ - "not", - "hing" - ], - [ - "n", - "othing" - ], - [ - "Aut", - "om" - ], - [ - "Auto", - "m" - ], - [ - "hör", - "en" - ], - [ - "hö", - "ren" - ], - [ - "▁s", - "hed" - ], - [ - "▁sh", - "ed" - ], - [ - "▁she", - "d" - ], - [ - "▁p", - "aused" - ], - [ - "▁pa", - "used" - ], - [ - "▁pause", - "d" - ], - [ - "▁pau", - "sed" - ], - [ - "sa", - "n" - ], - [ - "s", - "an" - ], - [ - "▁nun", - "ca" - ], - [ - "!(", - "\"" - ], - [ - "!", - "(\"" - ], - [ - "▁po", - "łoż" - ], - [ - "Se", - "cret" - ], - [ - "Sec", - "ret" - ], - [ - "▁Do", - "main" - ], - [ - "▁Dom", - "ain" - ], - [ - "▁", - "Domain" - ], - [ - "▁воз", - "мож" - ], - [ - "X", - "V" - ], - [ - "l", - "v" - ], - [ - "ik", - "h" - ], - [ - "i", - "kh" - ], - [ - "▁S", - "ony" - ], - [ - "▁So", - "ny" - ], - [ - "▁Son", - "y" - ], - [ - "m", - "q" - ], - [ - "ot", - "rop" - ], - [ - "otr", - "op" - ], - [ - "▁Log", - "ger" - ], - [ - "▁", - "Logger" - ], - [ - "▁thre", - "at" - ], - [ - "as", - "ted" - ], - [ - "ast", - "ed" - ], - [ - "aste", - "d" - ], - [ - "a", - "sted" - ], - [ - "зь", - "ко" - ], - [ - "▁fre", - "ely" - ], - [ - "▁free", - "ly" - ], - [ - "▁improve", - "ments" - ], - [ - "▁improv", - "ements" - ], - [ - "▁improvement", - "s" - ], - [ - "ist", - "ema" - ], - [ - "iste", - "ma" - ], - [ - "▁illustr", - "ate" - ], - [ - "▁t", - "act" - ], - [ - "▁ta", - "ct" - ], - [ - "▁fig", - "ur" - ], - [ - "ué", - "s" - ], - [ - "u", - "és" - ], - [ - "rim", - "inal" - ], - [ - "rimin", - "al" - ], - [ - "od", - "on" - ], - [ - "odo", - "n" - ], - [ - "o", - "don" - ], - [ - "int", - "endo" - ], - [ - "▁influ", - "enced" - ], - [ - "▁influence", - "d" - ], - [ - "▁influen", - "ced" - ], - [ - "FF", - "ER" - ], - [ - "▁G", - "host" - ], - [ - "▁Gh", - "ost" - ], - [ - "▁со", - "вер" - ], - [ - "▁сов", - "ер" - ], - [ - "na", - "d" - ], - [ - "n", - "ad" - ], - [ - "ion", - "ed" - ], - [ - "io", - "ned" - ], - [ - "ione", - "d" - ], - [ - "i", - "oned" - ], - [ - "▁Event", - "s" - ], - [ - "▁Ev", - "ents" - ], - [ - "▁Even", - "ts" - ], - [ - "▁", - "Events" - ], - [ - "▁wr", - "apping" - ], - [ - "▁wra", - "pping" - ], - [ - "▁wrap", - "ping" - ], - [ - "--------", - "-+" - ], - [ - "---", - "------+" - ], - [ - "------", - "---+" - ], - [ - "-----", - "----+" - ], - [ - "-------", - "--+" - ], - [ - "fi", - "f" - ], - [ - "f", - "if" - ], - [ - "▁(", - "**" - ], - [ - "▁(*", - "*" - ], - [ - "={", - "{" - ], - [ - "=", - "{{" - ], - [ - "ма", - "ль" - ], - [ - "м", - "аль" - ], - [ - "▁loss", - "es" - ], - [ - "▁Gal", - "erie" - ], - [ - "te", - "l" - ], - [ - "t", - "el" - ], - [ - "▁лю", - "того" - ], - [ - "▁K", - "ru" - ], - [ - "▁Kr", - "u" - ], - [ - "▁P", - "olen" - ], - [ - "▁Pol", - "en" - ], - [ - "▁Po", - "len" - ], - [ - "ні", - "м" - ], - [ - "ne", - "ar" - ], - [ - "nea", - "r" - ], - [ - "n", - "ear" - ], - [ - "▁sh", - "ame" - ], - [ - "▁moy", - "enne" - ], - [ - "▁C", - "P" - ], - [ - "▁", - "CP" - ], - [ - "pre", - "is" - ], - [ - "▁pass", - "enger" - ], - [ - "le", - "k" - ], - [ - "l", - "ek" - ], - [ - "ion", - "ales" - ], - [ - "ional", - "es" - ], - [ - "ionale", - "s" - ], - [ - "iona", - "les" - ], - [ - "kaf", - "ka" - ], - [ - "k", - "afka" - ], - [ - "▁partic", - "ipe" - ], - [ - "▁particip", - "e" - ], - [ - "▁parti", - "cipe" - ], - [ - "▁partici", - "pe" - ], - [ - "▁memb", - "ership" - ], - [ - "▁member", - "ship" - ], - [ - "▁members", - "hip" - ], - [ - "[", - "_" - ], - [ - "land", - "o" - ], - [ - "lan", - "do" - ], - [ - "l", - "ando" - ], - [ - "st", - "elling" - ], - [ - "stell", - "ing" - ], - [ - "Se", - "m" - ], - [ - "S", - "em" - ], - [ - "go", - "n" - ], - [ - "g", - "on" - ], - [ - "▁Cor", - "rect" - ], - [ - "▁v", - "alle" - ], - [ - "▁val", - "le" - ], - [ - "▁va", - "lle" - ], - [ - "▁vall", - "e" - ], - [ - "▁read", - "ily" - ], - [ - "▁Dok", - "ument" - ], - [ - "hon", - "neur" - ], - [ - "h", - "onneur" - ], - [ - "▁test", - "im" - ], - [ - "ul", - "ative" - ], - [ - "do", - "Filter" - ], - [ - "▁domin", - "ant" - ], - [ - "am", - "mer" - ], - [ - "amm", - "er" - ], - [ - "▁ко", - "ја" - ], - [ - "▁M", - "onsieur" - ], - [ - "ze", - "g" - ], - [ - "z", - "eg" - ], - [ - "▁вій", - "ни" - ], - [ - "▁F", - "o" - ], - [ - "▁A", - "my" - ], - [ - "▁Am", - "y" - ], - [ - "▁", - "¡" - ], - [ - "▁febru", - "ár" - ], - [ - "▁down", - "loading" - ], - [ - "▁download", - "ing" - ], - [ - "▁l", - "eng" - ], - [ - "▁le", - "ng" - ], - [ - "▁len", - "g" - ], - [ - "\\}$", - "," - ], - [ - "\\}", - "$," - ], - [ - "\\", - "}$," - ], - [ - "▁ne", - "at" - ], - [ - "▁C", - "ache" - ], - [ - "▁Ca", - "che" - ], - [ - "▁", - "Cache" - ], - [ - "IC", - "ATION" - ], - [ - "▁de", - "ve" - ], - [ - "▁dev", - "e" - ], - [ - "▁s", - "orrow" - ], - [ - "▁sor", - "row" - ], - [ - "sl", - "ow" - ], - [ - "s", - "low" - ], - [ - "▁hin", - "aus" - ], - [ - "▁hina", - "us" - ], - [ - "▁recon", - "oc" - ], - [ - "▁Lin", - "ked" - ], - [ - "▁Link", - "ed" - ], - [ - "▁Sh", - "aw" - ], - [ - "mar", - "ket" - ], - [ - "mark", - "et" - ], - [ - "▁D", - "ic" - ], - [ - "▁Di", - "c" - ], - [ - "▁S", - "ki" - ], - [ - "▁Sk", - "i" - ], - [ - "▁del", - "imiter" - ], - [ - "▁Main", - "Activity" - ], - [ - "▁", - "MainActivity" - ], - [ - "▁Mus", - "ical" - ], - [ - "▁Music", - "al" - ], - [ - "▁Re", - "yn" - ], - [ - "▁Rey", - "n" - ], - [ - "Scroll", - "View" - ], - [ - "▁convent", - "ional" - ], - [ - "▁convention", - "al" - ], - [ - "en", - "ça" - ], - [ - "enç", - "a" - ], - [ - "▁re", - "factor" - ], - [ - "▁ref", - "actor" - ], - [ - "'", - "-" - ], - [ - "▁H", - "ed" - ], - [ - "▁He", - "d" - ], - [ - "spr", - "ech" - ], - [ - "spre", - "ch" - ], - [ - "▁ath", - "let" - ], - [ - "▁e", - "species" - ], - [ - "▁es", - "pecies" - ], - [ - "▁espe", - "cies" - ], - [ - "▁espec", - "ies" - ], - [ - "▁especie", - "s" - ], - [ - "▁Sch", - "ön" - ], - [ - "▁kle", - "inen" - ], - [ - "▁kleine", - "n" - ], - [ - "▁klein", - "en" - ], - [ - "ш", - "ко" - ], - [ - "▁Й", - "о" - ], - [ - "▁H", - "appy" - ], - [ - "▁Ha", - "ppy" - ], - [ - "multi", - "row" - ], - [ - "▁august", - "i" - ], - [ - "▁G", - "and" - ], - [ - "▁Ga", - "nd" - ], - [ - "▁Gan", - "d" - ], - [ - "▁appoint", - "ment" - ], - [ - "▁Medi", - "abestanden" - ], - [ - "Th", - "ree" - ], - [ - "▁Kenn", - "eth" - ], - [ - "NE", - "W" - ], - [ - "▁Not", - "ification" - ], - [ - "▁", - "Notification" - ], - [ - "▁Mar", - "x" - ], - [ - "▁Ma", - "rx" - ], - [ - "▁in", - "sc" - ], - [ - "▁ins", - "c" - ], - [ - "Mo", - "r" - ], - [ - "M", - "or" - ], - [ - "вы", - "й" - ], - [ - "в", - "ый" - ], - [ - "vä", - "st" - ], - [ - "v", - "äst" - ], - [ - "vi", - "dia" - ], - [ - "vid", - "ia" - ], - [ - "v", - "idia" - ], - [ - "▁demonstr", - "ated" - ], - [ - "▁demonstrate", - "d" - ], - [ - "font", - "s" - ], - [ - "fon", - "ts" - ], - [ - "▁k", - "amen" - ], - [ - "▁kam", - "en" - ], - [ - "▁ka", - "men" - ], - [ - "▁S", - "ter" - ], - [ - "▁St", - "er" - ], - [ - "▁Ste", - "r" - ], - [ - "▁mieszkań", - "ców" - ], - [ - "▁K", - "oh" - ], - [ - "▁Ko", - "h" - ], - [ - "~$", - "\\" - ], - [ - "~", - "$\\" - ], - [ - "»)", - "." - ], - [ - "»", - ")." - ], - [ - "re", - "ne" - ], - [ - "ren", - "e" - ], - [ - "r", - "ene" - ], - [ - "ins", - "ic" - ], - [ - "ic", - "ká" - ], - [ - "ick", - "á" - ], - [ - "xy", - "gen" - ], - [ - "▁m", - "n" - ], - [ - "▁", - "mn" - ], - [ - "▁s", - "ched" - ], - [ - "▁sc", - "hed" - ], - [ - "▁sch", - "ed" - ], - [ - "▁sche", - "d" - ], - [ - "AS", - "C" - ], - [ - "A", - "SC" - ], - [ - "I", - "g" - ], - [ - "▁Const", - "ant" - ], - [ - "▁opport", - "un" - ], - [ - "▁My", - "Class" - ], - [ - "se", - "f" - ], - [ - "s", - "ef" - ], - [ - "op", - "ed" - ], - [ - "ope", - "d" - ], - [ - "o", - "ped" - ], - [ - "▁inj", - "ured" - ], - [ - "VI", - "S" - ], - [ - "V", - "IS" - ], - [ - "▁P", - "ero" - ], - [ - "▁Per", - "o" - ], - [ - "▁Pe", - "ro" - ], - [ - "▁U", - "ntil" - ], - [ - "▁Un", - "til" - ], - [ - "▁f", - "lesh" - ], - [ - "▁fl", - "esh" - ], - [ - "▁fle", - "sh" - ], - [ - "orph", - "ism" - ], - [ - "▁Port", - "al" - ], - [ - "▁Por", - "tal" - ], - [ - "▁gmin", - "y" - ], - [ - "▁вла", - "сти" - ], - [ - "▁N", - "ä" - ], - [ - "кти", - "че" - ], - [ - "к", - "тиче" - ], - [ - "▁h", - "rab" - ], - [ - "▁hr", - "ab" - ], - [ - "▁C", - "ub" - ], - [ - "▁Cu", - "b" - ], - [ - "av", - "oir" - ], - [ - "avo", - "ir" - ], - [ - "a", - "voir" - ], - [ - "▁L", - "ars" - ], - [ - "▁La", - "rs" - ], - [ - "▁Lar", - "s" - ], - [ - "▁Бе", - "ло" - ], - [ - "▁seizo", - "en" - ], - [ - "▁Gen", - "omsnitt" - ], - [ - "▁L", - "il" - ], - [ - "▁Li", - "l" - ], - [ - "▁P", - "ool" - ], - [ - "▁Po", - "ol" - ], - [ - "▁", - "Pool" - ], - [ - "▁D", - "ios" - ], - [ - "▁Di", - "os" - ], - [ - "T", - "X" - ], - [ - "ae", - "s" - ], - [ - "a", - "es" - ], - [ - "aut", - "ore" - ], - [ - "auto", - "re" - ], - [ - "autor", - "e" - ], - [ - "Al", - "pha" - ], - [ - "st", - "ates" - ], - [ - "state", - "s" - ], - [ - "sta", - "tes" - ], - [ - "stat", - "es" - ], - [ - "La", - "b" - ], - [ - "L", - "ab" - ], - [ - "n", - "ederbörd" - ], - [ - "er", - "ton" - ], - [ - "ert", - "on" - ], - [ - "▁b", - "rid" - ], - [ - "▁br", - "id" - ], - [ - "▁", - "brid" - ], - [ - "▁r", - "icht" - ], - [ - "▁rich", - "t" - ], - [ - "▁ric", - "ht" - ], - [ - "▁ri", - "cht" - ], - [ - "▁", - "richt" - ], - [ - "▁E", - "la" - ], - [ - "▁El", - "a" - ], - [ - "▁с", - "ла" - ], - [ - "▁", - "сла" - ], - [ - "▁weap", - "on" - ], - [ - "▁comb", - "att" - ], - [ - "▁combat", - "t" - ], - [ - "ag", - "ar" - ], - [ - "aga", - "r" - ], - [ - "a", - "gar" - ], - [ - "▁reg", - "nig" - ], - [ - "▁util", - "isé" - ], - [ - "▁utilis", - "é" - ], - [ - "▁ser", - "vir" - ], - [ - "▁serv", - "ir" - ], - [ - "▁servi", - "r" - ], - [ - "▁b", - "rick" - ], - [ - "▁br", - "ick" - ], - [ - "▁gate", - "way" - ], - [ - "▁tor", - "raste" - ], - [ - "▁proced", - "ures" - ], - [ - "▁procedure", - "s" - ], - [ - "▁års", - "nederbörd" - ], - [ - "▁Genomsnitt", - "lig" - ], - [ - "чё", - "т" - ], - [ - "ч", - "ёт" - ], - [ - "▁om", - "rå" - ], - [ - "▁", - "områ" - ], - [ - "▁regnig", - "aste" - ], - [ - "▁че", - "сть" - ], - [ - "▁a", - "mid" - ], - [ - "▁am", - "id" - ], - [ - "▁ami", - "d" - ], - [ - "▁gr", - "ateful" - ], - [ - "▁D", - "IS" - ], - [ - "▁DI", - "S" - ], - [ - "▁", - "DIS" - ], - [ - "DA", - "Y" - ], - [ - "▁о", - "ру" - ], - [ - "▁ор", - "у" - ], - [ - "▁", - "ору" - ], - [ - "▁riv", - "ière" - ], - [ - "he", - "ure" - ], - [ - "▁Rich", - "mond" - ], - [ - "▁Com", - "par" - ], - [ - "▁Comp", - "ar" - ], - [ - "▁Н", - "ор" - ], - [ - "▁Но", - "р" - ], - [ - "DO", - "C" - ], - [ - "D", - "OC" - ], - [ - "es", - "ia" - ], - [ - "esi", - "a" - ], - [ - "cal", - "c" - ], - [ - "▁I", - "U" - ], - [ - "▁v", - "org" - ], - [ - "▁vo", - "rg" - ], - [ - "▁vor", - "g" - ], - [ - "▁hab", - "ían" - ], - [ - "▁había", - "n" - ], - [ - "ço", - "it" - ], - [ - "ç", - "oit" - ], - [ - "▁a", - "rist" - ], - [ - "▁ar", - "ist" - ], - [ - "▁к", - "ли" - ], - [ - "▁", - "кли" - ], - [ - "▁S", - "ue" - ], - [ - "▁Su", - "e" - ], - [ - "▁T", - "ouch" - ], - [ - "▁To", - "uch" - ], - [ - "▁", - "Touch" - ], - [ - "▁Writ", - "ing" - ], - [ - "ifi", - "able" - ], - [ - "▁w", - "c" - ], - [ - "▁with", - "draw" - ], - [ - "за", - "р" - ], - [ - "з", - "ар" - ], - [ - "▁present", - "ly" - ], - [ - "▁pres", - "ently" - ], - [ - "▁F", - "K" - ], - [ - "▁pr", - "akt" - ], - [ - "▁pra", - "kt" - ], - [ - "▁col", - "ored" - ], - [ - "▁color", - "ed" - ], - [ - "us", - "b" - ], - [ - "u", - "sb" - ], - [ - "▁Per", - "ú" - ], - [ - "▁pl", - "ata" - ], - [ - "▁pla", - "ta" - ], - [ - "▁plat", - "a" - ], - [ - "▁w", - "ishes" - ], - [ - "▁wish", - "es" - ], - [ - "▁wis", - "hes" - ], - [ - "▁ка", - "м" - ], - [ - "▁", - "кам" - ], - [ - "az", - "ar" - ], - [ - "aza", - "r" - ], - [ - "a", - "zar" - ], - [ - "áv", - "el" - ], - [ - "á", - "vel" - ], - [ - "▁l", - "amp" - ], - [ - "▁la", - "mp" - ], - [ - "bi", - "shop" - ], - [ - "b", - "ishop" - ], - [ - "▁in", - "clusion" - ], - [ - "▁incl", - "usion" - ], - [ - "▁inclus", - "ion" - ], - [ - "j", - "q" - ], - [ - "ar", - "th" - ], - [ - "art", - "h" - ], - [ - "▁F", - "lag" - ], - [ - "▁Fl", - "ag" - ], - [ - "▁", - "Flag" - ], - [ - "▁но", - "р" - ], - [ - "▁н", - "ор" - ], - [ - "æ", - "dia" - ], - [ - "UN", - "CTION" - ], - [ - "▁Bahn", - "hof" - ], - [ - "▁appro", - "aching" - ], - [ - "▁approach", - "ing" - ], - [ - "▁G", - "ött" - ], - [ - "▁Gö", - "tt" - ], - [ - "▁c", - "ube" - ], - [ - "▁cu", - "be" - ], - [ - "▁cub", - "e" - ], - [ - "▁arg", - "ued" - ], - [ - "▁argue", - "d" - ], - [ - "▁Th", - "ings" - ], - [ - "Gu", - "i" - ], - [ - "G", - "ui" - ], - [ - "до", - "ви" - ], - [ - "дов", - "и" - ], - [ - "д", - "ови" - ], - [ - "▁re", - "cre" - ], - [ - "▁rec", - "re" - ], - [ - "▁ré", - "seau" - ], - [ - "▁rés", - "eau" - ], - [ - "▁sign", - "ifica" - ], - [ - "▁signific", - "a" - ], - [ - "Gi", - "t" - ], - [ - "G", - "it" - ], - [ - "geb", - "racht" - ], - [ - "gebra", - "cht" - ], - [ - "▁l", - "iga" - ], - [ - "▁li", - "ga" - ], - [ - "▁lig", - "a" - ], - [ - "▁", - "liga" - ], - [ - "▁ass", - "ured" - ], - [ - "al", - "us" - ], - [ - "alu", - "s" - ], - [ - "a", - "lus" - ], - [ - "ри", - "т" - ], - [ - "р", - "ит" - ], - [ - "▁э", - "нциклопеди" - ], - [ - "▁%", - ")." - ], - [ - "▁%)", - "." - ], - [ - "▁", - "%)." - ], - [ - "▁Prem", - "ière" - ], - [ - "▁declar", - "ations" - ], - [ - "▁declaration", - "s" - ], - [ - "▁tr", - "icky" - ], - [ - "▁trick", - "y" - ], - [ - "▁pro", - "files" - ], - [ - "▁prof", - "iles" - ], - [ - "▁profile", - "s" - ], - [ - "▁profil", - "es" - ], - [ - "▁F", - "on" - ], - [ - "▁Fo", - "n" - ], - [ - "▁J", - "as" - ], - [ - "▁Ja", - "s" - ], - [ - "â", - "r" - ], - [ - "ba", - "bel" - ], - [ - "b", - "abel" - ], - [ - "▁Fr", - "iday" - ], - [ - "▁Fri", - "day" - ], - [ - "▁Frid", - "ay" - ], - [ - "▁jú", - "nius" - ], - [ - "▁c", - "ols" - ], - [ - "▁col", - "s" - ], - [ - "▁co", - "ls" - ], - [ - "▁", - "cols" - ], - [ - "▁EX", - "ISTS" - ], - [ - "▁Ital", - "iana" - ], - [ - "▁Italian", - "a" - ], - [ - "▁Italia", - "na" - ], - [ - "▁author", - "ization" - ], - [ - "▁s", - "ulle" - ], - [ - "▁su", - "lle" - ], - [ - "▁sul", - "le" - ], - [ - "▁sull", - "e" - ], - [ - "▁E", - "mb" - ], - [ - "▁Em", - "b" - ], - [ - "▁Vari", - "able" - ], - [ - "▁", - "Variable" - ], - [ - "tr", - "ees" - ], - [ - "tre", - "es" - ], - [ - "tree", - "s" - ], - [ - "t", - "rees" - ], - [ - "▁F", - "ly" - ], - [ - "▁Fl", - "y" - ], - [ - "ri", - "ors" - ], - [ - "rio", - "rs" - ], - [ - "rior", - "s" - ], - [ - "r", - "iors" - ], - [ - "▁da", - "mals" - ], - [ - "▁dam", - "als" - ], - [ - "▁find", - "et" - ], - [ - "▁fin", - "det" - ], - [ - "▁Se", - "pt" - ], - [ - "▁Sep", - "t" - ], - [ - "▁m", - "undial" - ], - [ - "▁rem", - "oval" - ], - [ - "▁remov", - "al" - ], - [ - "▁long", - "itude" - ], - [ - "▁longitud", - "e" - ], - [ - "cl", - "ic" - ], - [ - "cli", - "c" - ], - [ - "c", - "lic" - ], - [ - "▁f", - "ade" - ], - [ - "▁fa", - "de" - ], - [ - "▁", - "fade" - ], - [ - "▁grad", - "le" - ], - [ - "▁", - "gradle" - ], - [ - "▁z", - "ák" - ], - [ - "▁zá", - "k" - ], - [ - "▁tim", - "ing" - ], - [ - "▁ti", - "ming" - ], - [ - "tr", - "ightarrow" - ], - [ - "t", - "rightarrow" - ], - [ - "at", - "ia" - ], - [ - "ati", - "a" - ], - [ - "-", - "." - ], - [ - "uch", - "e" - ], - [ - "uc", - "he" - ], - [ - "u", - "che" - ], - [ - "▁ser", - "ialize" - ], - [ - "▁serial", - "ize" - ], - [ - "▁H", - "mm" - ], - [ - "▁Represent", - "atives" - ], - [ - "ba", - "h" - ], - [ - "b", - "ah" - ], - [ - "re", - "nd" - ], - [ - "ren", - "d" - ], - [ - "r", - "end" - ], - [ - "ass", - "ador" - ], - [ - "assa", - "dor" - ], - [ - "▁sh", - "ield" - ], - [ - "uc", - "ion" - ], - [ - "u", - "cion" - ], - [ - "▁am", - "éricaine" - ], - [ - "▁améric", - "aine" - ], - [ - "▁américain", - "e" - ], - [ - "z", - "ę" - ], - [ - "vi", - "lla" - ], - [ - "vil", - "la" - ], - [ - "v", - "illa" - ], - [ - "▁hom", - "bre" - ], - [ - "ás", - "s" - ], - [ - "á", - "ss" - ], - [ - "▁S", - "F" - ], - [ - "▁", - "SF" - ], - [ - "▁repe", - "ating" - ], - [ - "▁repeat", - "ing" - ], - [ - "▁c", - "riter" - ], - [ - "▁cr", - "iter" - ], - [ - "▁crit", - "er" - ], - [ - "▁cri", - "ter" - ], - [ - "▁St", - "ruct" - ], - [ - "▁Str", - "uct" - ], - [ - "▁", - "Struct" - ], - [ - "??", - "?" - ], - [ - "?", - "??" - ], - [ - "▁che", - "ap" - ], - [ - "▁r", - "ings" - ], - [ - "▁ring", - "s" - ], - [ - "▁rin", - "gs" - ], - [ - "ab", - "häng" - ], - [ - "▁c", - "orte" - ], - [ - "▁cor", - "te" - ], - [ - "▁cort", - "e" - ], - [ - "▁admin", - "ist" - ], - [ - "ix", - "on" - ], - [ - "gy", - "pt" - ], - [ - "▁punt", - "os" - ], - [ - "▁punto", - "s" - ], - [ - "▁me", - "zi" - ], - [ - "▁mez", - "i" - ], - [ - "▁po", - "chod" - ], - [ - "▁poc", - "hod" - ], - [ - "is", - "ko" - ], - [ - "isk", - "o" - ], - [ - "i", - "sko" - ], - [ - "ni", - "ę" - ], - [ - "n", - "ię" - ], - [ - "▁о", - "су" - ], - [ - "▁ос", - "у" - ], - [ - "▁á", - "r" - ], - [ - "▁", - "ár" - ], - [ - "те", - "льной" - ], - [ - "тель", - "ной" - ], - [ - "тельно", - "й" - ], - [ - "▁Metropol", - "itan" - ], - [ - "ji", - "n" - ], - [ - "j", - "in" - ], - [ - "ze", - "ss" - ], - [ - "zes", - "s" - ], - [ - "z", - "ess" - ], - [ - "▁ві", - "ці" - ], - [ - "▁conflic", - "ts" - ], - [ - "▁conflict", - "s" - ], - [ - "ij", - "st" - ], - [ - "▁Mar", - "ket" - ], - [ - "▁Mark", - "et" - ], - [ - "ст", - "ров" - ], - [ - "стро", - "в" - ], - [ - "стр", - "ов" - ], - [ - "▁\"", - ",\"" - ], - [ - "▁\",", - "\"" - ], - [ - "▁", - "\",\"" - ], - [ - "▁Sc", - "roll" - ], - [ - "▁", - "Scroll" - ], - [ - "gu", - "n" - ], - [ - "g", - "un" - ], - [ - "та", - "ра" - ], - [ - "тар", - "а" - ], - [ - "▁am", - "ateur" - ], - [ - "▁r", - "óż" - ], - [ - "pos", - "s" - ], - [ - "po", - "ss" - ], - [ - "p", - "oss" - ], - [ - "▁general", - "ized" - ], - [ - "▁H", - "arm" - ], - [ - "▁Har", - "m" - ], - [ - "▁Ha", - "rm" - ], - [ - "ci", - "ta" - ], - [ - "cit", - "a" - ], - [ - "c", - "ita" - ], - [ - "▁Sw", - "itzerland" - ], - [ - "ic", - "ola" - ], - [ - "ico", - "la" - ], - [ - "icol", - "a" - ], - [ - "i", - "cola" - ], - [ - "▁m", - "uit" - ], - [ - "▁mu", - "it" - ], - [ - "loc", - "ated" - ], - [ - "▁c", - "ó" - ], - [ - "▁a", - "rose" - ], - [ - "▁ar", - "ose" - ], - [ - "▁commun", - "auté" - ], - [ - "})", - "^" - ], - [ - "}", - ")^" - ], - [ - "vis", - "ibility" - ], - [ - "íd", - "a" - ], - [ - "í", - "da" - ], - [ - "▁F", - "B" - ], - [ - "▁", - "FB" - ], - [ - "▁Fre", - "und" - ], - [ - "ga", - "t" - ], - [ - "g", - "at" - ], - [ - "\":", - "{\"" - ], - [ - "int", - "ellij" - ], - [ - "if", - "ie" - ], - [ - "ifi", - "e" - ], - [ - "hm", - "en" - ], - [ - "h", - "men" - ], - [ - "▁éd", - "ition" - ], - [ - "▁", - "édition" - ], - [ - "▁ко", - "је" - ], - [ - "▁ін", - "ших" - ], - [ - "om", - "ing" - ], - [ - "omin", - "g" - ], - [ - "omi", - "ng" - ], - [ - "o", - "ming" - ], - [ - "▁arqu", - "itect" - ], - [ - "▁Pres", - "idente" - ], - [ - "▁President", - "e" - ], - [ - "▁П", - "ід" - ], - [ - "▁ca", - "bin" - ], - [ - "▁cab", - "in" - ], - [ - "The", - "orem" - ], - [ - "▁G", - "ay" - ], - [ - "▁Ga", - "y" - ], - [ - "if", - "ice" - ], - [ - "ific", - "e" - ], - [ - "ifi", - "ce" - ], - [ - "▁h", - "ect" - ], - [ - "▁he", - "ct" - ], - [ - "l", - "ą" - ], - [ - "irm", - "ingham" - ], - [ - "▁sem", - "antic" - ], - [ - "▁Louis", - "iana" - ], - [ - "▁sac", - "rifice" - ], - [ - "▁sacr", - "ifice" - ], - [ - "▁sacrific", - "e" - ], - [ - "▁Christ", - "oph" - ], - [ - "▁Exec", - "utive" - ], - [ - "_", - "+" - ], - [ - "j", - "ák" - ], - [ - "▁s", - "eria" - ], - [ - "▁se", - "ria" - ], - [ - "▁ser", - "ia" - ], - [ - "▁Over", - "flow" - ], - [ - "▁", - "Overflow" - ], - [ - "▁Lu", - "cy" - ], - [ - "▁Luc", - "y" - ], - [ - "▁mel", - "hor" - ], - [ - "▁vo", - "ices" - ], - [ - "▁voice", - "s" - ], - [ - "cz", - "a" - ], - [ - "c", - "za" - ], - [ - "▁ка", - "пи" - ], - [ - "▁университе", - "та" - ], - [ - "IN", - "CT" - ], - [ - "▁col", - "oc" - ], - [ - "▁co", - "loc" - ], - [ - "▁pr", - "ue" - ], - [ - "▁ge", - "omet" - ], - [ - "▁geom", - "et" - ], - [ - "▁di", - "retto" - ], - [ - "▁dire", - "tto" - ], - [ - "▁dir", - "etto" - ], - [ - "▁dirett", - "o" - ], - [ - "re", - "so" - ], - [ - "res", - "o" - ], - [ - "r", - "eso" - ], - [ - "▁A", - "kt" - ], - [ - "▁Ak", - "t" - ], - [ - "▁un", - "h" - ], - [ - "▁се", - "ри" - ], - [ - "▁сер", - "и" - ], - [ - "▁Al", - "ert" - ], - [ - "▁Ale", - "rt" - ], - [ - "▁", - "Alert" - ], - [ - "We", - "l" - ], - [ - "W", - "el" - ], - [ - "au", - "di" - ], - [ - "aud", - "i" - ], - [ - "a", - "udi" - ], - [ - "äl", - "er" - ], - [ - "ä", - "ler" - ], - [ - "▁gu", - "ests" - ], - [ - "▁guest", - "s" - ], - [ - "▁и", - "де" - ], - [ - "St", - "udio" - ], - [ - "▁ка", - "те" - ], - [ - "▁ex", - "ponent" - ], - [ - "▁expon", - "ent" - ], - [ - "rz", - "e" - ], - [ - "r", - "ze" - ], - [ - "pm", - "od" - ], - [ - "p", - "mod" - ], - [ - "ro", - "lle" - ], - [ - "roll", - "e" - ], - [ - "rol", - "le" - ], - [ - "▁Lim", - "ited" - ], - [ - "Al", - "lemagne" - ], - [ - "▁p", - "ity" - ], - [ - "▁pi", - "ty" - ], - [ - "▁pit", - "y" - ], - [ - "▁l", - "ä" - ], - [ - "▁", - "lä" - ], - [ - "▁run", - "ner" - ], - [ - "▁", - "runner" - ], - [ - "ke", - "nde" - ], - [ - "ken", - "de" - ], - [ - "k", - "ende" - ], - [ - "E", - "Q" - ], - [ - "▁M", - "M" - ], - [ - "▁", - "MM" - ], - [ - "sz", - "ág" - ], - [ - "по", - "ді" - ], - [ - "▁reg", - "ret" - ], - [ - "▁publi", - "é" - ], - [ - "▁depart", - "amento" - ], - [ - "▁acc", - "used" - ], - [ - "▁accus", - "ed" - ], - [ - "h", - "p" - ], - [ - "▁P", - "fl" - ], - [ - "▁Pf", - "l" - ], - [ - "▁S", - "int" - ], - [ - "▁Si", - "nt" - ], - [ - "▁Sin", - "t" - ], - [ - "▁ek", - "onom" - ], - [ - "ra", - "ctor" - ], - [ - "rac", - "tor" - ], - [ - "ract", - "or" - ], - [ - "r", - "actor" - ], - [ - "▁П", - "ів" - ], - [ - "▁aw", - "ful" - ], - [ - "owa", - "ć" - ], - [ - "]", - "->" - ], - [ - "▁F", - "ine" - ], - [ - "▁Fin", - "e" - ], - [ - "С", - "а" - ], - [ - "ti", - "s" - ], - [ - "t", - "is" - ], - [ - "ét", - "a" - ], - [ - "é", - "ta" - ], - [ - "▁Ро", - "ди" - ], - [ - "▁Düsseld", - "orf" - ], - [ - "LO", - "B" - ], - [ - "L", - "OB" - ], - [ - "os", - "as" - ], - [ - "osa", - "s" - ], - [ - "wer", - "ke" - ], - [ - "werk", - "e" - ], - [ - "▁l", - "ance" - ], - [ - "▁lan", - "ce" - ], - [ - "▁листо", - "пада" - ], - [ - "▁in", - "complete" - ], - [ - "▁P", - "icture" - ], - [ - "▁", - "Picture" - ], - [ - "('", - "\\" - ], - [ - "(", - "'\\" - ], - [ - "es", - "ters" - ], - [ - "est", - "ers" - ], - [ - "ester", - "s" - ], - [ - "este", - "rs" - ], - [ - "e", - "sters" - ], - [ - "▁belong", - "ed" - ], - [ - "▁S", - "ank" - ], - [ - "▁San", - "k" - ], - [ - "am", - "med" - ], - [ - "amm", - "ed" - ], - [ - "▁repos", - "itories" - ], - [ - "▁ad", - "dr" - ], - [ - "▁add", - "r" - ], - [ - "▁", - "addr" - ], - [ - "Col", - "lect" - ], - [ - "Coll", - "ect" - ], - [ - "H", - "ot" - ], - [ - "▁t", - "yl" - ], - [ - "▁ty", - "l" - ], - [ - "▁instance", - "of" - ], - [ - "▁bon", - "us" - ], - [ - "ov", - "ý" - ], - [ - "▁мо", - "ря" - ], - [ - "▁мор", - "я" - ], - [ - "▁inter", - "active" - ], - [ - "▁interact", - "ive" - ], - [ - "▁M", - "ys" - ], - [ - "▁My", - "s" - ], - [ - "▁Ed", - "mund" - ], - [ - "file", - "Name" - ], - [ - "em", - "or" - ], - [ - "emo", - "r" - ], - [ - "e", - "mor" - ], - [ - "▁Т", - "ри" - ], - [ - "▁R", - "osen" - ], - [ - "▁Ro", - "sen" - ], - [ - "▁Ros", - "en" - ], - [ - "▁Rose", - "n" - ], - [ - "▁Pr", - "ima" - ], - [ - "▁Pri", - "ma" - ], - [ - "▁Prim", - "a" - ], - [ - "▁v", - "oting" - ], - [ - "▁vo", - "ting" - ], - [ - "▁vot", - "ing" - ], - [ - "▁X", - "P" - ], - [ - "▁Z", - "ero" - ], - [ - "▁Ze", - "ro" - ], - [ - "▁", - "Zero" - ], - [ - "▁L", - "ed" - ], - [ - "▁Le", - "d" - ], - [ - "ams", - "ung" - ], - [ - "▁en", - "ables" - ], - [ - "▁enable", - "s" - ], - [ - "▁redirect", - "s" - ], - [ - "AS", - "T" - ], - [ - "A", - "ST" - ], - [ - "Pa", - "int" - ], - [ - "P", - "aint" - ], - [ - "ack", - "er" - ], - [ - "ac", - "ker" - ], - [ - "a", - "cker" - ], - [ - "le", - "cht" - ], - [ - "▁chair", - "man" - ], - [ - "▁A", - "ven" - ], - [ - "▁Av", - "en" - ], - [ - "▁S", - "ach" - ], - [ - "▁Sa", - "ch" - ], - [ - "▁Sac", - "h" - ], - [ - "(\"", - "<" - ], - [ - "ке", - "р" - ], - [ - "к", - "ер" - ], - [ - "▁mist", - "akes" - ], - [ - "▁mistake", - "s" - ], - [ - "▁We", - "it" - ], - [ - "▁Wei", - "t" - ], - [ - "▁pro", - "wad" - ], - [ - "▁", - "prowad" - ], - [ - "▁did", - "nt" - ], - [ - "▁didn", - "t" - ], - [ - "én", - "ario" - ], - [ - "un", - "less" - ], - [ - "▁back", - "wards" - ], - [ - "bo", - "a" - ], - [ - "b", - "oa" - ], - [ - "du", - "ino" - ], - [ - "``", - "`" - ], - [ - "`", - "``" - ], - [ - "st", - "or" - ], - [ - "sto", - "r" - ], - [ - "s", - "tor" - ], - [ - "Comple", - "tion" - ], - [ - "pu", - "esta" - ], - [ - "▁din", - "ast" - ], - [ - "úl", - "t" - ], - [ - "ú", - "lt" - ], - [ - "▁S", - "Y" - ], - [ - "▁", - "SY" - ], - [ - "if", - "olia" - ], - [ - "œuv", - "res" - ], - [ - "œuvre", - "s" - ], - [ - "▁r", - "acing" - ], - [ - "▁ra", - "cing" - ], - [ - "▁rac", - "ing" - ], - [ - "▁cab", - "inet" - ], - [ - "▁cabin", - "et" - ], - [ - "▁cut", - "ting" - ], - [ - "▁th", - "umb" - ], - [ - "▁Ка", - "ра" - ], - [ - "▁Кар", - "а" - ], - [ - "high", - "light" - ], - [ - "ку", - "п" - ], - [ - "▁s", - "d" - ], - [ - "▁", - "sd" - ], - [ - "▁на", - "ціональ" - ], - [ - "▁camp", - "agne" - ], - [ - "▁register", - "s" - ], - [ - "▁educ", - "ational" - ], - [ - "▁education", - "al" - ], - [ - "▁p", - "esar" - ], - [ - "▁pes", - "ar" - ], - [ - "üg", - "e" - ], - [ - "ü", - "ge" - ], - [ - "▁o", - "ro" - ], - [ - "▁or", - "o" - ], - [ - "▁", - "oro" - ], - [ - "burg", - "o" - ], - [ - "bur", - "go" - ], - [ - "▁Athlet", - "ics" - ], - [ - "▁M", - "TV" - ], - [ - "get", - "Message" - ], - [ - "▁H", - "yp" - ], - [ - "▁Hy", - "p" - ], - [ - "▁vict", - "im" - ], - [ - "▁vic", - "tim" - ], - [ - "))", - "\\" - ], - [ - ")", - ")\\" - ], - [ - "▁dr", - "ums" - ], - [ - "▁dru", - "ms" - ], - [ - "▁drum", - "s" - ], - [ - "host", - "name" - ], - [ - "ta", - "ł" - ], - [ - "t", - "ał" - ], - [ - "ma", - "king" - ], - [ - "m", - "aking" - ], - [ - "▁pow", - "iat" - ], - [ - "ő", - "d" - ], - [ - "thread", - "s" - ], - [ - "▁absol", - "v" - ], - [ - "▁лю", - "ди" - ], - [ - "▁ste", - "pped" - ], - [ - "▁step", - "ped" - ], - [ - "ex", - "ist" - ], - [ - "▁N", - "K" - ], - [ - "▁v", - "es" - ], - [ - "▁ve", - "s" - ], - [ - "▁", - "ves" - ], - [ - "ist", - "iche" - ], - [ - "istic", - "he" - ], - [ - "isti", - "che" - ], - [ - "%", - "'" - ], - [ - "at", - "ivos" - ], - [ - "ativ", - "os" - ], - [ - "ati", - "vos" - ], - [ - "ativo", - "s" - ], - [ - "▁та", - "кой" - ], - [ - "▁тако", - "й" - ], - [ - "▁Mongo", - "DB" - ], - [ - "▁U", - "ng" - ], - [ - "▁Un", - "g" - ], - [ - "▁Р", - "ус" - ], - [ - "▁Ру", - "с" - ], - [ - "▁e", - "lim" - ], - [ - "▁el", - "im" - ], - [ - "▁F", - "if" - ], - [ - "ic", - "ación" - ], - [ - "ica", - "ción" - ], - [ - "▁T", - "ennis" - ], - [ - "▁Ten", - "nis" - ], - [ - "▁Jeff", - "erson" - ], - [ - "j", - "án" - ], - [ - "fo", - "g" - ], - [ - "f", - "og" - ], - [ - "an", - "ha" - ], - [ - "anh", - "a" - ], - [ - "zo", - "r" - ], - [ - "z", - "or" - ], - [ - "▁уні", - "версите" - ], - [ - "ah", - "u" - ], - [ - "a", - "hu" - ], - [ - "ia", - "da" - ], - [ - "i", - "ada" - ], - [ - "S", - "dk" - ], - [ - "Set", - "ting" - ], - [ - "▁K", - "ill" - ], - [ - "▁Kil", - "l" - ], - [ - "▁Ki", - "ll" - ], - [ - "▁W", - "end" - ], - [ - "▁We", - "nd" - ], - [ - "▁b", - "ald" - ], - [ - "▁bal", - "d" - ], - [ - "▁ba", - "ld" - ], - [ - "▁K", - "ub" - ], - [ - "▁Ku", - "b" - ], - [ - "▁v", - "isto" - ], - [ - "▁vis", - "to" - ], - [ - "▁vi", - "sto" - ], - [ - "▁je", - "unes" - ], - [ - "▁jeune", - "s" - ], - [ - "▁jeu", - "nes" - ], - [ - "col", - "lections" - ], - [ - "collection", - "s" - ], - [ - "collect", - "ions" - ], - [ - "ac", - "í" - ], - [ - "a", - "cí" - ], - [ - "вро", - "пей" - ], - [ - "▁ar", - "ise" - ], - [ - "он", - "і" - ], - [ - "о", - "ні" - ], - [ - "MA", - "IN" - ], - [ - "до", - "ступ" - ], - [ - "▁b", - "erg" - ], - [ - "▁be", - "rg" - ], - [ - "▁ber", - "g" - ], - [ - "▁", - "berg" - ], - [ - "▁critic", - "ism" - ], - [ - "▁Tor", - "re" - ], - [ - "▁de", - "script" - ], - [ - "▁des", - "cript" - ], - [ - "▁descri", - "pt" - ], - [ - "ière", - "s" - ], - [ - "i", - "ères" - ], - [ - "▁e", - "studio" - ], - [ - "▁est", - "udio" - ], - [ - "▁estud", - "io" - ], - [ - "▁i", - "li" - ], - [ - "▁il", - "i" - ], - [ - "▁", - "ili" - ], - [ - "▁mil", - "itare" - ], - [ - "▁milit", - "are" - ], - [ - "▁militar", - "e" - ], - [ - "▁Cl", - "ara" - ], - [ - "▁Cla", - "ra" - ], - [ - "▁Clar", - "a" - ], - [ - "▁El", - "len" - ], - [ - "▁Elle", - "n" - ], - [ - "▁Ell", - "en" - ], - [ - "lim", - "ited" - ], - [ - "limit", - "ed" - ], - [ - "л", - "м" - ], - [ - "▁Esp", - "añ" - ], - [ - "▁inf", - "initely" - ], - [ - "▁infinite", - "ly" - ], - [ - "Amer", - "ica" - ], - [ - "ou", - "c" - ], - [ - "o", - "uc" - ], - [ - "gl", - "ass" - ], - [ - "g", - "lass" - ], - [ - "▁r", - "ud" - ], - [ - "▁ru", - "d" - ], - [ - "▁z", - "at" - ], - [ - "▁za", - "t" - ], - [ - "▁", - "zat" - ], - [ - "▁r", - "in" - ], - [ - "▁ri", - "n" - ], - [ - "▁", - "rin" - ], - [ - "▁Bibli", - "ografía" - ], - [ - "▁mer", - "chant" - ], - [ - "tensor", - "flow" - ], - [ - "▁d", - "ér" - ], - [ - "▁dé", - "r" - ], - [ - "▁Active", - "Record" - ], - [ - "IE", - "S" - ], - [ - "I", - "ES" - ], - [ - "▁link", - "er" - ], - [ - "▁lin", - "ker" - ], - [ - "▁estud", - "ios" - ], - [ - "▁estudio", - "s" - ], - [ - "cdn", - "js" - ], - [ - "▁Го", - "судар" - ], - [ - "án", - "chez" - ], - [ - "ap", - "pe" - ], - [ - "app", - "e" - ], - [ - "a", - "ppe" - ], - [ - "cl", - "ub" - ], - [ - "c", - "lub" - ], - [ - "▁dal", - "ší" - ], - [ - "▁Alg", - "orithm" - ], - [ - "df", - "s" - ], - [ - "d", - "fs" - ], - [ - "▁B", - "ac" - ], - [ - "▁Ba", - "c" - ], - [ - "▁ка", - "фе" - ], - [ - "▁&", - "=\\" - ], - [ - "▁&=", - "\\" - ], - [ - "▁а", - "т" - ], - [ - "▁", - "ат" - ], - [ - "▁Г", - "лав" - ], - [ - "▁M", - "ou" - ], - [ - "▁Mo", - "u" - ], - [ - "M", - "achine" - ], - [ - "(...", - ")" - ], - [ - "(", - "...)" - ], - [ - "▁com", - "part" - ], - [ - "▁comp", - "art" - ], - [ - "▁compar", - "t" - ], - [ - "▁aug", - "usztus" - ], - [ - "av", - "an" - ], - [ - "ava", - "n" - ], - [ - "a", - "van" - ], - [ - "▁roll", - "ed" - ], - [ - "▁rol", - "led" - ], - [ - "▁", - "rolled" - ], - [ - "▁е", - "ди" - ], - [ - "▁", - "еди" - ], - [ - "Sc", - "an" - ], - [ - "S", - "can" - ], - [ - "▁ре", - "гі" - ], - [ - "▁świ", - "ata" - ], - [ - "▁świat", - "a" - ], - [ - "▁m", - "ines" - ], - [ - "▁min", - "es" - ], - [ - "▁mi", - "nes" - ], - [ - "▁mine", - "s" - ], - [ - "},", - "{" - ], - [ - "▁T", - "ier" - ], - [ - "▁Ti", - "er" - ], - [ - "Can", - "not" - ], - [ - "C", - "annot" - ], - [ - "мі", - "н" - ], - [ - "м", - "ін" - ], - [ - "▁NE", - "W" - ], - [ - "▁", - "NEW" - ], - [ - "▁Во", - "л" - ], - [ - "▁M", - "anh" - ], - [ - "▁Man", - "h" - ], - [ - "▁Greg", - "ory" - ], - [ - "▁princi", - "pe" - ], - [ - "▁princip", - "e" - ], - [ - "▁prin", - "cipe" - ], - [ - "IS", - "O" - ], - [ - "I", - "SO" - ], - [ - "pr", - "og" - ], - [ - "pro", - "g" - ], - [ - "p", - "rog" - ], - [ - "▁F", - "ail" - ], - [ - "▁Fa", - "il" - ], - [ - "▁", - "Fail" - ], - [ - "▁a", - "a" - ], - [ - "▁", - "aa" - ], - [ - "▁fe", - "cha" - ], - [ - "▁W", - "CF" - ], - [ - "▁mag", - "istr" - ], - [ - "▁Z", - "ach" - ], - [ - "▁Za", - "ch" - ], - [ - "▁un", - "icode" - ], - [ - "▁con", - "verter" - ], - [ - "▁convert", - "er" - ], - [ - "▁conver", - "ter" - ], - [ - "▁dis", - "pers" - ], - [ - "▁disp", - "ers" - ], - [ - "ks", - "am" - ], - [ - "k", - "sam" - ], - [ - "▁Un", - "cle" - ], - [ - "Property", - "Changed" - ], - [ - "▁l", - "ider" - ], - [ - "▁li", - "der" - ], - [ - "▁lid", - "er" - ], - [ - "▁o", - "pts" - ], - [ - "▁op", - "ts" - ], - [ - "▁opt", - "s" - ], - [ - "▁", - "opts" - ], - [ - "▁та", - "м" - ], - [ - "▁", - "там" - ], - [ - "lock", - "ed" - ], - [ - "loc", - "ked" - ], - [ - "za", - "k" - ], - [ - "z", - "ak" - ], - [ - "▁co", - "unted" - ], - [ - "▁count", - "ed" - ], - [ - "▁coun", - "ted" - ], - [ - "▁person", - "e" - ], - [ - "▁pers", - "one" - ], - [ - "▁hur", - "ried" - ], - [ - "ät", - "ter" - ], - [ - "ätt", - "er" - ], - [ - "ätte", - "r" - ], - [ - "▁out", - "ras" - ], - [ - "▁ou", - "tras" - ], - [ - "▁g", - "enu" - ], - [ - "▁ge", - "nu" - ], - [ - "▁gen", - "u" - ], - [ - "B", - "D" - ], - [ - "ve", - "g" - ], - [ - "v", - "eg" - ], - [ - "du", - "e" - ], - [ - "d", - "ue" - ], - [ - "▁P", - "ract" - ], - [ - "▁Pr", - "act" - ], - [ - "▁Pra", - "ct" - ], - [ - "▁po", - "sible" - ], - [ - "▁pos", - "ible" - ], - [ - "▁cont", - "ribute" - ], - [ - "▁contrib", - "ute" - ], - [ - "▁contribu", - "te" - ], - [ - "UM", - "N" - ], - [ - "▁Bür", - "ger" - ], - [ - "▁w", - "ars" - ], - [ - "▁war", - "s" - ], - [ - "▁wa", - "rs" - ], - [ - "▁exhib", - "ition" - ], - [ - "hi", - "ll" - ], - [ - "h", - "ill" - ], - [ - "▁a", - "str" - ], - [ - "▁as", - "tr" - ], - [ - "▁ast", - "r" - ], - [ - "▁", - "astr" - ], - [ - "▁му", - "зе" - ], - [ - "▁C", - "ASE" - ], - [ - "▁CA", - "SE" - ], - [ - "▁", - "CASE" - ], - [ - "man", - "ifest" - ], - [ - "y", - "ellow" - ], - [ - "F", - "n" - ], - [ - "▁R", - "C" - ], - [ - "▁", - "RC" - ], - [ - "▁s", - "ott" - ], - [ - "▁so", - "tt" - ], - [ - "▁su", - "jet" - ], - [ - "▁S", - "ocket" - ], - [ - "▁So", - "cket" - ], - [ - "▁Soc", - "ket" - ], - [ - "▁", - "Socket" - ], - [ - "▁Ch", - "ine" - ], - [ - "▁Chi", - "ne" - ], - [ - "▁frame", - "works" - ], - [ - "▁framework", - "s" - ], - [ - "Hol", - "d" - ], - [ - "H", - "old" - ], - [ - "êt", - "s" - ], - [ - "ê", - "ts" - ], - [ - "▁ф", - "іль" - ], - [ - "▁фі", - "ль" - ], - [ - "Lo", - "aded" - ], - [ - "Load", - "ed" - ], - [ - "op", - "he" - ], - [ - "oph", - "e" - ], - [ - "o", - "phe" - ], - [ - "text", - "e" - ], - [ - "tex", - "te" - ], - [ - "▁ex", - "pres" - ], - [ - "▁exp", - "res" - ], - [ - "▁expr", - "es" - ], - [ - "▁cons", - "ume" - ], - [ - "▁consum", - "e" - ], - [ - "▁R", - "ichtung" - ], - [ - "ograf", - "i" - ], - [ - "▁magn", - "ific" - ], - [ - "à", - "t" - ], - [ - "▁ind", - "ul" - ], - [ - "▁indu", - "l" - ], - [ - "ry", - "ty" - ], - [ - "▁off", - "ici" - ], - [ - "▁offic", - "i" - ], - [ - "▁ass", - "ault" - ], - [ - "ru", - "nd" - ], - [ - "run", - "d" - ], - [ - "r", - "und" - ], - [ - "▁vari", - "ants" - ], - [ - "▁variant", - "s" - ], - [ - "▁сель", - "сов" - ], - [ - "▁exc", - "itement" - ], - [ - "Time", - "s" - ], - [ - "Tim", - "es" - ], - [ - "T", - "imes" - ], - [ - "k", - "otlin" - ], - [ - "▁g", - "ering" - ], - [ - "▁ge", - "ring" - ], - [ - "▁ger", - "ing" - ], - [ - "▁En", - "gel" - ], - [ - "▁Eng", - "el" - ], - [ - "▁T", - "imer" - ], - [ - "▁Time", - "r" - ], - [ - "▁Tim", - "er" - ], - [ - "▁Ti", - "mer" - ], - [ - "▁", - "Timer" - ], - [ - "²", - ")." - ], - [ - "▁N", - "g" - ], - [ - "äs", - "st" - ], - [ - "sch", - "au" - ], - [ - "SE", - "rror" - ], - [ - "S", - "Error" - ], - [ - "▁Ed", - "wards" - ], - [ - "▁Edward", - "s" - ], - [ - "▁Term", - "inal" - ], - [ - "li", - "ct" - ], - [ - "lic", - "t" - ], - [ - "l", - "ict" - ], - [ - "Un", - "der" - ], - [ - "Und", - "er" - ], - [ - "U", - "nder" - ], - [ - "▁sp", - "awn" - ], - [ - "ür", - "gen" - ], - [ - "▁Außer", - "dem" - ], - [ - "▁k", - "itchen" - ], - [ - "fah", - "rt" - ], - [ - "fahr", - "t" - ], - [ - "▁Col", - "ors" - ], - [ - "▁Color", - "s" - ], - [ - "▁систе", - "ма" - ], - [ - "▁систем", - "а" - ], - [ - "▁termin", - "ated" - ], - [ - "▁terminate", - "d" - ], - [ - "▁La", - "TeX" - ], - [ - "ig", - "keiten" - ], - [ - "igkeit", - "en" - ], - [ - "▁mes", - "ure" - ], - [ - "▁Am", - "ts" - ], - [ - "▁Amt", - "s" - ], - [ - "▁emp", - "ir" - ], - [ - "▁stri", - "king" - ], - [ - "▁strik", - "ing" - ], - [ - "▁exclus", - "ive" - ], - [ - "те", - "х" - ], - [ - "▁re", - "z" - ], - [ - "▁r", - "ez" - ], - [ - "▁", - "rez" - ], - [ - "▁qu", - "an" - ], - [ - "▁q", - "uan" - ], - [ - "▁Glas", - "gow" - ], - [ - "▁lect", - "ure" - ], - [ - "▁Test", - "ament" - ], - [ - "▁fun", - "ds" - ], - [ - "▁fund", - "s" - ], - [ - "▁st", - "essa" - ], - [ - "▁tri", - "bes" - ], - [ - "▁trib", - "es" - ], - [ - "▁tribe", - "s" - ], - [ - "▁par", - "fois" - ], - [ - "▁tre", - "ball" - ], - [ - "ni", - "tz" - ], - [ - "nit", - "z" - ], - [ - "n", - "itz" - ], - [ - "bo", - "ve" - ], - [ - "b", - "ove" - ], - [ - "▁за", - "слу" - ], - [ - "▁ab", - "sent" - ], - [ - "▁abs", - "ent" - ], - [ - "▁L", - "auf" - ], - [ - "▁La", - "uf" - ], - [ - "▁Lau", - "f" - ], - [ - "Sm", - "ith" - ], - [ - "▁Никола", - "й" - ], - [ - "▁europé", - "enne" - ], - [ - "l", - "r" - ], - [ - "▁program", - "ma" - ], - [ - "▁mi", - "dst" - ], - [ - "▁mid", - "st" - ], - [ - "▁daugh", - "ters" - ], - [ - "▁daughter", - "s" - ], - [ - "S", - "yn" - ], - [ - "ob", - "en" - ], - [ - "obe", - "n" - ], - [ - "o", - "ben" - ], - [ - "ân", - "ă" - ], - [ - "id", - "an" - ], - [ - "ida", - "n" - ], - [ - "i", - "dan" - ], - [ - "▁t", - "her" - ], - [ - "▁th", - "er" - ], - [ - "▁the", - "r" - ], - [ - "▁", - "ther" - ], - [ - "od", - "ore" - ], - [ - "odo", - "re" - ], - [ - "odor", - "e" - ], - [ - "sd", - "l" - ], - [ - "s", - "dl" - ], - [ - "▁Q", - "uint" - ], - [ - "▁Qu", - "int" - ], - [ - "▁cas", - "os" - ], - [ - "▁caso", - "s" - ], - [ - "▁Z", - "am" - ], - [ - "▁Za", - "m" - ], - [ - "▁стра", - "ны" - ], - [ - "▁sp", - "rite" - ], - [ - "▁spr", - "ite" - ], - [ - "ка", - "л" - ], - [ - "к", - "ал" - ], - [ - "▁n", - "asc" - ], - [ - "▁na", - "sc" - ], - [ - "▁nas", - "c" - ], - [ - "▁сот", - "руд" - ], - [ - "▁tr", - "ava" - ], - [ - "▁tra", - "va" - ], - [ - "▁trav", - "a" - ], - [ - "▁хо", - "зяй" - ], - [ - "▁U", - "ruguay" - ], - [ - "▁s", - "parse" - ], - [ - "▁sp", - "arse" - ], - [ - "▁по", - "ле" - ], - [ - "▁пол", - "е" - ], - [ - "▁myst", - "ery" - ], - [ - "▁myster", - "y" - ], - [ - "▁M", - "ang" - ], - [ - "▁Man", - "g" - ], - [ - "▁Ma", - "ng" - ], - [ - "reg", - "istr" - ], - [ - "▁CG", - "Float" - ], - [ - "▁sub", - "mission" - ], - [ - "▁subm", - "ission" - ], - [ - "ва", - "на" - ], - [ - "ван", - "а" - ], - [ - "в", - "ана" - ], - [ - "▁\"", - ":" - ], - [ - "▁", - "\":" - ], - [ - "▁Trace", - "back" - ], - [ - "▁P", - "it" - ], - [ - "▁Pi", - "t" - ], - [ - "▁E", - "hr" - ], - [ - "▁с", - "ра" - ], - [ - "▁Graph", - "ics" - ], - [ - "▁", - "Graphics" - ], - [ - "Up", - "dated" - ], - [ - "Update", - "d" - ], - [ - "▁sv", - "ensk" - ], - [ - "▁sp", - "acing" - ], - [ - "▁spac", - "ing" - ], - [ - "tr", - "itt" - ], - [ - "tri", - "tt" - ], - [ - "t", - "ritt" - ], - [ - "▁Gu", - "inea" - ], - [ - "▁Fran", - "ça" - ], - [ - "▁Fr", - "ança" - ], - [ - "As", - "soci" - ], - [ - "Ass", - "oci" - ], - [ - "▁T", - "ová" - ], - [ - "▁To", - "vá" - ], - [ - "st", - "ab" - ], - [ - "sta", - "b" - ], - [ - "s", - "tab" - ], - [ - "▁Le", - "arning" - ], - [ - "▁Lear", - "ning" - ], - [ - "▁B", - "right" - ], - [ - "▁Br", - "ight" - ], - [ - "▁Brig", - "ht" - ], - [ - "ś", - "c" - ], - [ - "▁id", - "ő" - ], - [ - "}}", - "_{\\" - ], - [ - "}}_{", - "\\" - ], - [ - "}}_", - "{\\" - ], - [ - "}", - "}_{\\" - ], - [ - "▁dro", - "ite" - ], - [ - "▁droit", - "e" - ], - [ - "▁ra", - "ising" - ], - [ - "get", - "ting" - ], - [ - "yth", - "m" - ], - [ - "yt", - "hm" - ], - [ - "y", - "thm" - ], - [ - "on", - "yme" - ], - [ - "ony", - "me" - ], - [ - "onym", - "e" - ], - [ - "ż", - "s" - ], - [ - "▁b", - "lah" - ], - [ - "▁bl", - "ah" - ], - [ - "▁bla", - "h" - ], - [ - "▁", - "blah" - ], - [ - "Tag", - "Name" - ], - [ - "Vert", - "ical" - ], - [ - "▁a", - "per" - ], - [ - "▁ap", - "er" - ], - [ - "▁", - "aper" - ], - [ - "post", - "gresql" - ], - [ - "▁Hand", - "le" - ], - [ - "▁", - "Handle" - ], - [ - "ze", - "w" - ], - [ - "z", - "ew" - ], - [ - "▁sk", - "ulle" - ], - [ - "▁op", - "ere" - ], - [ - "▁oper", - "e" - ], - [ - "lay", - "ers" - ], - [ - "layer", - "s" - ], - [ - "▁pos", - "sono" - ], - [ - "▁poss", - "ono" - ], - [ - "▁re", - "late" - ], - [ - "▁rel", - "ate" - ], - [ - "▁rela", - "te" - ], - [ - "ą", - "c" - ], - [ - "▁M", - "ih" - ], - [ - "▁Mi", - "h" - ], - [ - "â", - "ge" - ], - [ - "▁Ś", - "wi" - ], - [ - "iss", - "es" - ], - [ - "isse", - "s" - ], - [ - "▁serv", - "let" - ], - [ - "▁", - "servlet" - ], - [ - "Lo", - "s" - ], - [ - "L", - "os" - ], - [ - "▁Ad", - "vanced" - ], - [ - "▁Adv", - "anced" - ], - [ - "at", - "ica" - ], - [ - "ati", - "ca" - ], - [ - "atic", - "a" - ], - [ - "▁c", - "ed" - ], - [ - "▁ce", - "d" - ], - [ - "▁", - "ced" - ], - [ - "▁element", - "os" - ], - [ - "ро", - "на" - ], - [ - "рон", - "а" - ], - [ - "р", - "она" - ], - [ - "ik", - "s" - ], - [ - "i", - "ks" - ], - [ - "ar", - "f" - ], - [ - "a", - "rf" - ], - [ - "ar", - "iat" - ], - [ - "ari", - "at" - ], - [ - "aria", - "t" - ], - [ - "M", - "obile" - ], - [ - "ag", - "ua" - ], - [ - "agu", - "a" - ], - [ - "▁t", - "imp" - ], - [ - "▁tim", - "p" - ], - [ - "▁ti", - "mp" - ], - [ - "▁Com", - "ité" - ], - [ - "▁comb", - "ining" - ], - [ - "▁combin", - "ing" - ], - [ - "wo", - "hl" - ], - [ - "w", - "ohl" - ], - [ - "▁Stud", - "y" - ], - [ - "▁Stu", - "dy" - ], - [ - "co", - "ordinate" - ], - [ - "▁recommend", - "ation" - ], - [ - "▁transform", - "ations" - ], - [ - "▁transformation", - "s" - ], - [ - "un", - "til" - ], - [ - "unt", - "il" - ], - [ - "u", - "ntil" - ], - [ - "bound", - "ed" - ], - [ - "b", - "ounded" - ], - [ - "▁и", - "зу" - ], - [ - "▁из", - "у" - ], - [ - "han", - "ced" - ], - [ - "h", - "anced" - ], - [ - "▁во", - "про" - ], - [ - "▁P", - "rés" - ], - [ - "▁Pr", - "és" - ], - [ - "▁co", - "ord" - ], - [ - "xt", - "y" - ], - [ - "x", - "ty" - ], - [ - "▁$", - "," - ], - [ - "▁", - "$," - ], - [ - "▁champion", - "s" - ], - [ - "▁champ", - "ions" - ], - [ - "De", - "n" - ], - [ - "D", - "en" - ], - [ - "M", - "il" - ], - [ - "('", - "," - ], - [ - "(", - "'," - ], - [ - "▁Pre", - "is" - ], - [ - "▁e", - "igh" - ], - [ - "▁eig", - "h" - ], - [ - "▁mark", - "ers" - ], - [ - "▁marker", - "s" - ], - [ - "▁gew", - "esen" - ], - [ - "ät", - "ten" - ], - [ - "ätt", - "en" - ], - [ - "ätte", - "n" - ], - [ - "▁p", - "ione" - ], - [ - "▁pi", - "one" - ], - [ - "m", - "v" - ], - [ - "▁ј", - "у" - ], - [ - "▁", - "ју" - ], - [ - "zeich", - "nis" - ], - [ - "ho", - "ff" - ], - [ - "hof", - "f" - ], - [ - "h", - "off" - ], - [ - "New", - "s" - ], - [ - "Ne", - "ws" - ], - [ - "▁Stanis", - "ław" - ], - [ - "▁Br", - "andenburg" - ], - [ - "▁Brand", - "enburg" - ], - [ - "▁Fe", - "uer" - ], - [ - "=", - "&" - ], - [ - "же", - "т" - ], - [ - "ж", - "ет" - ], - [ - "▁N", - "eil" - ], - [ - "▁Ne", - "il" - ], - [ - "▁w", - "irk" - ], - [ - "▁wir", - "k" - ], - [ - "▁soci", - "età" - ], - [ - "▁sp", - "are" - ], - [ - "▁civil", - "e" - ], - [ - "▁civ", - "ile" - ], - [ - "sp", - "rach" - ], - [ - "spr", - "ach" - ], - [ - "▁d", - "isse" - ], - [ - "▁dis", - "se" - ], - [ - "▁diss", - "e" - ], - [ - "▁g", - "ates" - ], - [ - "▁ga", - "tes" - ], - [ - "▁gate", - "s" - ], - [ - "▁gat", - "es" - ], - [ - "▁a", - "nom" - ], - [ - "▁an", - "om" - ], - [ - "▁ano", - "m" - ], - [ - "▁Федера", - "ции" - ], - [ - "▁t", - "ib" - ], - [ - "▁ti", - "b" - ], - [ - "▁f", - "útbol" - ], - [ - "▁Wikip", - "ed" - ], - [ - "ia", - "te" - ], - [ - "iat", - "e" - ], - [ - "i", - "ate" - ], - [ - "Fr", - "ont" - ], - [ - "F", - "ront" - ], - [ - "▁c", - "raw" - ], - [ - "▁cr", - "aw" - ], - [ - "▁cra", - "w" - ], - [ - "▁R", - "ak" - ], - [ - "▁Ra", - "k" - ], - [ - "▁з", - "ву" - ], - [ - "▁зв", - "у" - ], - [ - "st", - "reet" - ], - [ - "stre", - "et" - ], - [ - "▁A", - "gency" - ], - [ - "▁Ag", - "ency" - ], - [ - "ва", - "ло" - ], - [ - "вал", - "о" - ], - [ - "▁Ра", - "с" - ], - [ - "▁mk", - "dir" - ], - [ - "ac", - "ję" - ], - [ - "▁sh", - "ares" - ], - [ - "▁share", - "s" - ], - [ - "St", - "ory" - ], - [ - "Sto", - "ry" - ], - [ - "▁re", - "marks" - ], - [ - "▁rem", - "arks" - ], - [ - "▁remark", - "s" - ], - [ - "▁key", - "words" - ], - [ - "▁keyword", - "s" - ], - [ - "Bo", - "b" - ], - [ - "B", - "ob" - ], - [ - "▁t", - "oe" - ], - [ - "▁to", - "e" - ], - [ - "▁V", - "itt" - ], - [ - "▁Vi", - "tt" - ], - [ - "▁Vit", - "t" - ], - [ - "▁r", - "hs" - ], - [ - "▁rh", - "s" - ], - [ - "RO", - "P" - ], - [ - "R", - "OP" - ], - [ - "or", - "is" - ], - [ - "ori", - "s" - ], - [ - "o", - "ris" - ], - [ - "/", - "@" - ], - [ - "си", - "и" - ], - [ - "▁tra", - "verse" - ], - [ - "▁travers", - "e" - ], - [ - "▁refer", - "encing" - ], - [ - "pr", - "äsident" - ], - [ - "ro", - "ng" - ], - [ - "ron", - "g" - ], - [ - "r", - "ong" - ], - [ - "')", - ":" - ], - [ - "'", - "):" - ], - [ - "at", - "ies" - ], - [ - "ati", - "es" - ], - [ - "atie", - "s" - ], - [ - "a", - "ties" - ], - [ - "A", - "W" - ], - [ - "Out", - "let" - ], - [ - "▁é", - "vol" - ], - [ - "▁év", - "ol" - ], - [ - "ik", - "es" - ], - [ - "ike", - "s" - ], - [ - "i", - "kes" - ], - [ - "▁environment", - "al" - ], - [ - "ic", - "um" - ], - [ - "▁L", - "ied" - ], - [ - "▁Li", - "ed" - ], - [ - "▁Lie", - "d" - ], - [ - "▁w", - "arn" - ], - [ - "▁war", - "n" - ], - [ - "▁wa", - "rn" - ], - [ - "▁", - "warn" - ], - [ - "▁But", - "ler" - ], - [ - "▁%", - ")," - ], - [ - "▁%)", - "," - ], - [ - "▁Zeit", - "schrift" - ], - [ - "▁Mon", - "tr" - ], - [ - "▁Mont", - "r" - ], - [ - "ва", - "жа" - ], - [ - "▁Mer", - "cur" - ], - [ - "je", - "kte" - ], - [ - "jekt", - "e" - ], - [ - "me", - "ter" - ], - [ - "met", - "er" - ], - [ - "m", - "eter" - ], - [ - "du", - "cation" - ], - [ - "▁att", - "ributed" - ], - [ - "▁attribute", - "d" - ], - [ - "*", - "$" - ], - [ - "▁un", - "f" - ], - [ - "▁Vert", - "rag" - ], - [ - "zi", - "en" - ], - [ - "zie", - "n" - ], - [ - "z", - "ien" - ], - [ - "▁Р", - "об" - ], - [ - "▁Ро", - "б" - ], - [ - "li", - "ces" - ], - [ - "lic", - "es" - ], - [ - "lice", - "s" - ], - [ - "l", - "ices" - ], - [ - "pp", - "ly" - ], - [ - "p", - "ply" - ], - [ - "an", - "sen" - ], - [ - "ans", - "en" - ], - [ - "anse", - "n" - ], - [ - "▁ze", - "it" - ], - [ - "▁", - "zeit" - ], - [ - "▁im", - "mense" - ], - [ - "▁imm", - "ense" - ], - [ - "▁lut", - "ego" - ], - [ - "▁Bul", - "gar" - ], - [ - "▁Bulg", - "ar" - ], - [ - "▁mi", - "embros" - ], - [ - "▁На", - "циональ" - ], - [ - "▁Al", - "low" - ], - [ - "▁All", - "ow" - ], - [ - "▁", - "Allow" - ], - [ - "▁ang", - "lès" - ], - [ - "д", - "ви" - ], - [ - "▁T", - "oy" - ], - [ - "▁To", - "y" - ], - [ - "ту", - "а" - ], - [ - "▁y", - "ard" - ], - [ - "▁ya", - "rd" - ], - [ - "▁", - "yard" - ], - [ - "(", - "%" - ], - [ - "is", - "ser" - ], - [ - "iss", - "er" - ], - [ - "isse", - "r" - ], - [ - "▁g", - "olf" - ], - [ - "▁gol", - "f" - ], - [ - "▁Uk", - "rain" - ], - [ - "▁h", - "osp" - ], - [ - "▁ho", - "sp" - ], - [ - "▁hos", - "p" - ], - [ - "In", - "clude" - ], - [ - "▁L", - "isa" - ], - [ - "▁Li", - "sa" - ], - [ - "▁Lis", - "a" - ], - [ - "▁c", - "sal" - ], - [ - "▁cs", - "al" - ], - [ - "▁M", - "ira" - ], - [ - "▁Mi", - "ra" - ], - [ - "▁Mir", - "a" - ], - [ - "rec", - "ogn" - ], - [ - "▁К", - "е" - ], - [ - "▁h", - "itting" - ], - [ - "▁hit", - "ting" - ], - [ - "коно", - "мі" - ], - [ - "коном", - "і" - ], - [ - "▁Tourn", - "ament" - ], - [ - "LO", - "AD" - ], - [ - "▁Guard", - "ian" - ], - [ - "▁da", - "her" - ], - [ - "▁dah", - "er" - ], - [ - "▁time", - "zone" - ], - [ - "▁tom", - "cat" - ], - [ - "▁", - "tomcat" - ], - [ - "▁success", - "or" - ], - [ - "▁succ", - "essor" - ], - [ - "▁successo", - "r" - ], - [ - "▁V", - "oid" - ], - [ - "▁Vo", - "id" - ], - [ - "▁come", - "ç" - ], - [ - "▁convert", - "s" - ], - [ - "▁conver", - "ts" - ], - [ - "äch", - "s" - ], - [ - "ä", - "chs" - ], - [ - "os", - "ex" - ], - [ - "ose", - "x" - ], - [ - "o", - "sex" - ], - [ - "xe", - "lles" - ], - [ - "x", - "elles" - ], - [ - "as", - "er" - ], - [ - "ase", - "r" - ], - [ - "a", - "ser" - ], - [ - "▁É", - "s" - ], - [ - "▁m", - "ou" - ], - [ - "▁mo", - "u" - ], - [ - "▁u", - "ng" - ], - [ - "▁un", - "g" - ], - [ - "▁", - "ung" - ], - [ - "▁or", - "igen" - ], - [ - "▁orig", - "en" - ], - [ - "▁C", - "row" - ], - [ - "▁Cr", - "ow" - ], - [ - "▁Cro", - "w" - ], - [ - "▁E", - "rd" - ], - [ - "▁Er", - "d" - ], - [ - "▁s", - "ieben" - ], - [ - "▁si", - "eben" - ], - [ - "▁sie", - "ben" - ], - [ - "lu", - "a" - ], - [ - "l", - "ua" - ], - [ - "▁B", - "B" - ], - [ - "▁", - "BB" - ], - [ - "RE", - "NT" - ], - [ - "R", - "ENT" - ], - [ - "▁pił", - "kar" - ], - [ - "▁mar", - "que" - ], - [ - "▁marqu", - "e" - ], - [ - "▁La", - "bour" - ], - [ - "▁Lab", - "our" - ], - [ - "vi", - "ders" - ], - [ - "vider", - "s" - ], - [ - "vid", - "ers" - ], - [ - "v", - "iders" - ], - [ - "▁ex", - "empl" - ], - [ - "▁exem", - "pl" - ], - [ - "So", - "und" - ], - [ - "S", - "ound" - ], - [ - "▁W", - "ass" - ], - [ - "▁Was", - "s" - ], - [ - "▁Wa", - "ss" - ], - [ - "arr", - "ison" - ], - [ - "▁те", - "чение" - ], - [ - "▁Of", - "icina" - ], - [ - "▁D", - "aw" - ], - [ - "▁Da", - "w" - ], - [ - "▁K", - "auf" - ], - [ - "▁Ka", - "uf" - ], - [ - "én", - "t" - ], - [ - "é", - "nt" - ], - [ - "és", - "ő" - ], - [ - "▁=", - "\"" - ], - [ - "▁", - "=\"" - ], - [ - "▁k", - "at" - ], - [ - "▁ka", - "t" - ], - [ - "di", - "ction" - ], - [ - "dict", - "ion" - ], - [ - "dic", - "tion" - ], - [ - "d", - "iction" - ], - [ - "▁V", - "oll" - ], - [ - "▁Vol", - "l" - ], - [ - "▁Vo", - "ll" - ], - [ - "▁high", - "way" - ], - [ - "J", - "ames" - ], - [ - "ze", - "uge" - ], - [ - "zeug", - "e" - ], - [ - "▁mod", - "elo" - ], - [ - "▁model", - "o" - ], - [ - "▁mode", - "lo" - ], - [ - "Th", - "row" - ], - [ - "▁F", - "orum" - ], - [ - "▁For", - "um" - ], - [ - "▁Fo", - "rum" - ], - [ - "(\"", - "@" - ], - [ - "▁en", - "fer" - ], - [ - "▁enf", - "er" - ], - [ - "▁спе", - "циаль" - ], - [ - "Number", - "s" - ], - [ - "Num", - "bers" - ], - [ - "▁B", - "inary" - ], - [ - "▁Bin", - "ary" - ], - [ - "▁", - "Binary" - ], - [ - "▁Martí", - "nez" - ], - [ - "▁Martín", - "ez" - ], - [ - "▁St", - "ato" - ], - [ - "▁Stat", - "o" - ], - [ - "▁Sta", - "to" - ], - [ - "▁fest", - "iv" - ], - [ - "▁k", - "atol" - ], - [ - "▁ka", - "tol" - ], - [ - "▁kat", - "ol" - ], - [ - "▁А", - "б" - ], - [ - "▁lim", - "itation" - ], - [ - "▁limit", - "ation" - ], - [ - "▁S", - "TR" - ], - [ - "▁ST", - "R" - ], - [ - "▁", - "STR" - ], - [ - "▁О", - "фициаль" - ], - [ - "ip", - "es" - ], - [ - "ipe", - "s" - ], - [ - "i", - "pes" - ], - [ - "▁I", - "sn" - ], - [ - "▁Is", - "n" - ], - [ - "▁rule", - "d" - ], - [ - "▁ru", - "led" - ], - [ - "▁c", - "í" - ], - [ - "▁", - "cí" - ], - [ - "ge", - "ber" - ], - [ - "geb", - "er" - ], - [ - "▁lavor", - "o" - ], - [ - "▁lav", - "oro" - ], - [ - "▁parenthes", - "es" - ], - [ - "о", - "з" - ], - [ - "▁équip", - "es" - ], - [ - "▁équipe", - "s" - ], - [ - "▁efficient", - "ly" - ], - [ - "▁Per", - "iod" - ], - [ - "▁", - "Period" - ], - [ - "▁Reg", - "arding" - ], - [ - "le", - "af" - ], - [ - "lea", - "f" - ], - [ - "▁similar", - "ity" - ], - [ - "▁gest", - "ure" - ], - [ - "data", - "b" - ], - [ - "da", - "tab" - ], - [ - "dat", - "ab" - ], - [ - "▁term", - "inate" - ], - [ - "▁termin", - "ate" - ], - [ - "▁sem", - "antics" - ], - [ - "▁semantic", - "s" - ], - [ - "▁A", - "lo" - ], - [ - "▁Al", - "o" - ], - [ - "▁c", - "ig" - ], - [ - "▁ci", - "g" - ], - [ - "▁Open", - "GL" - ], - [ - "▁heut", - "igen" - ], - [ - "xa", - "ml" - ], - [ - "x", - "aml" - ], - [ - "▁frequ", - "encies" - ], - [ - ")}", - "." - ], - [ - ")", - "}." - ], - [ - "▁threaten", - "ed" - ], - [ - "▁threat", - "ened" - ], - [ - "ти", - "к" - ], - [ - "▁cal", - "cio" - ], - [ - "▁calci", - "o" - ], - [ - "▁calc", - "io" - ], - [ - "▁R", - "iemann" - ], - [ - "▁Ri", - "emann" - ], - [ - "sl", - "ug" - ], - [ - "▁F", - "inale" - ], - [ - "▁Fin", - "ale" - ], - [ - "▁Final", - "e" - ], - [ - "L", - "R" - ], - [ - "▁Der", - "by" - ], - [ - "▁о", - "ще" - ], - [ - "▁de", - "viation" - ], - [ - "▁dev", - "iation" - ], - [ - "▁devi", - "ation" - ], - [ - "äch", - "en" - ], - [ - "äche", - "n" - ], - [ - "ä", - "chen" - ], - [ - "▁C", - "ris" - ], - [ - "▁Cr", - "is" - ], - [ - "но", - "во" - ], - [ - "нов", - "о" - ], - [ - "н", - "ово" - ], - [ - "▁сто", - "лі" - ], - [ - "▁re", - "lev" - ], - [ - "▁rel", - "ev" - ], - [ - "▁splend", - "id" - ], - [ - "▁у", - "чё" - ], - [ - "er", - "ving" - ], - [ - "erv", - "ing" - ], - [ - "ga", - "ble" - ], - [ - "g", - "able" - ], - [ - "▁général", - "e" - ], - [ - "▁généra", - "le" - ], - [ - "po", - "m" - ], - [ - "p", - "om" - ], - [ - "▁Che", - "ers" - ], - [ - "▁impr", - "ison" - ], - [ - "▁in", - "dent" - ], - [ - "▁ind", - "ent" - ], - [ - "▁inde", - "nt" - ], - [ - "▁", - "indent" - ], - [ - "▁anal", - "yz" - ], - [ - "▁analy", - "z" - ], - [ - "▁re", - "vert" - ], - [ - "▁rev", - "ert" - ], - [ - "▁reve", - "rt" - ], - [ - "▁rever", - "t" - ], - [ - "ér", - "er" - ], - [ - "ére", - "r" - ], - [ - "é", - "rer" - ], - [ - "▁ph", - "ases" - ], - [ - "▁phase", - "s" - ], - [ - "First", - "Name" - ], - [ - "▁m", - "ig" - ], - [ - "▁mi", - "g" - ], - [ - "▁dist", - "urb" - ], - [ - "▁mi", - "xture" - ], - [ - "▁)", - "{" - ], - [ - "▁", - "){" - ], - [ - "int", - "ure" - ], - [ - "▁T", - "ried" - ], - [ - "▁Tr", - "ied" - ], - [ - "▁Tri", - "ed" - ], - [ - "▁soon", - "er" - ], - [ - "▁p", - "els" - ], - [ - "▁pe", - "ls" - ], - [ - "▁pel", - "s" - ], - [ - "▁ét", - "abl" - ], - [ - "et", - "ro" - ], - [ - "etr", - "o" - ], - [ - "it", - "ie" - ], - [ - "iti", - "e" - ], - [ - "▁quart", - "ier" - ], - [ - "▁го", - "во" - ], - [ - "▁г", - "ово" - ], - [ - "▁", - "гово" - ], - [ - "▁vá", - "ros" - ], - [ - "uf", - "e" - ], - [ - "u", - "fe" - ], - [ - "he", - "ten" - ], - [ - "het", - "en" - ], - [ - "h", - "eten" - ], - [ - "хо", - "м" - ], - [ - "х", - "ом" - ], - [ - "▁so", - "ap" - ], - [ - "▁", - "soap" - ], - [ - "ut", - "ors" - ], - [ - "uto", - "rs" - ], - [ - "utor", - "s" - ], - [ - "▁d", - "uch" - ], - [ - "▁du", - "ch" - ], - [ - "▁duc", - "h" - ], - [ - "syn", - "tax" - ], - [ - "s", - "yntax" - ], - [ - "▁tr", - "ibe" - ], - [ - "▁tri", - "be" - ], - [ - "▁trib", - "e" - ], - [ - "▁ch", - "ante" - ], - [ - "▁chant", - "e" - ], - [ - "Tr", - "i" - ], - [ - "T", - "ri" - ], - [ - "▁M", - "ate" - ], - [ - "▁Ma", - "te" - ], - [ - "▁Mat", - "e" - ], - [ - "qu", - "ality" - ], - [ - "qual", - "ity" - ], - [ - "uo", - "la" - ], - [ - "u", - "ola" - ], - [ - "=\"", - "." - ], - [ - "=", - "\"." - ], - [ - "ch", - "k" - ], - [ - "▁в", - "сі" - ], - [ - "▁вс", - "і" - ], - [ - "▁prze", - "ci" - ], - [ - "▁M", - "eteor" - ], - [ - "▁Met", - "eor" - ], - [ - "▁scatter", - "ed" - ], - [ - "Pl", - "us" - ], - [ - "P", - "lus" - ], - [ - "tr", - "ad" - ], - [ - "tra", - "d" - ], - [ - "t", - "rad" - ], - [ - "▁stack", - "overflow" - ], - [ - "▁", - "stackoverflow" - ], - [ - "▁re", - "tra" - ], - [ - "▁r", - "etra" - ], - [ - "▁ret", - "ra" - ], - [ - "▁retr", - "a" - ], - [ - "▁éd", - "itions" - ], - [ - "▁édition", - "s" - ], - [ - "▁s", - "ain" - ], - [ - "▁sa", - "in" - ], - [ - "cri", - "be" - ], - [ - "cr", - "ibe" - ], - [ - "ig", - "non" - ], - [ - "ign", - "on" - ], - [ - "uc", - "ker" - ], - [ - "uck", - "er" - ], - [ - "u", - "cker" - ], - [ - "▁ма", - "ло" - ], - [ - "▁ten", - "ir" - ], - [ - "▁ex", - "ports" - ], - [ - "▁export", - "s" - ], - [ - "▁", - "exports" - ], - [ - "▁aux", - "ili" - ], - [ - "▁]", - "]" - ], - [ - "▁", - "]]" - ], - [ - "▁C", - "BS" - ], - [ - "un", - "iform" - ], - [ - "uni", - "form" - ], - [ - "▁period", - "ic" - ], - [ - "ag", - "rant" - ], - [ - "agr", - "ant" - ], - [ - "▁em", - "ple" - ], - [ - "▁emp", - "le" - ], - [ - "W", - "il" - ], - [ - "▁f", - "res" - ], - [ - "▁fr", - "es" - ], - [ - "▁fre", - "s" - ], - [ - "▁str", - "utt" - ], - [ - "▁stru", - "tt" - ], - [ - "▁с", - "віт" - ], - [ - "▁сві", - "т" - ], - [ - "▁be", - "tre" - ], - [ - "▁bet", - "re" - ], - [ - "▁объ", - "ек" - ], - [ - "ти", - "ся" - ], - [ - "▁b", - "isher" - ], - [ - "▁bis", - "her" - ], - [ - "ba", - "um" - ], - [ - "bau", - "m" - ], - [ - "b", - "aum" - ], - [ - "is", - "hi" - ], - [ - "ish", - "i" - ], - [ - "▁Gaz", - "ette" - ], - [ - "background", - "Color" - ], - [ - "j", - "l" - ], - [ - "▁f", - "iel" - ], - [ - "▁fi", - "el" - ], - [ - "▁пре", - "ма" - ], - [ - "▁protagon", - "ista" - ], - [ - "▁Muham", - "mad" - ], - [ - "▁sim", - "ulate" - ], - [ - "▁H", - "ook" - ], - [ - "▁Ho", - "ok" - ], - [ - "fe", - "st" - ], - [ - "f", - "est" - ], - [ - "▁сво", - "их" - ], - [ - "▁свои", - "х" - ], - [ - "Se", - "nder" - ], - [ - "Send", - "er" - ], - [ - "S", - "ender" - ], - [ - "▁list", - "ened" - ], - [ - "▁listen", - "ed" - ], - [ - "▁liste", - "ned" - ], - [ - "ж", - "і" - ], - [ - "je", - "st" - ], - [ - "jes", - "t" - ], - [ - "j", - "est" - ], - [ - "ko", - "rd" - ], - [ - "kor", - "d" - ], - [ - "k", - "ord" - ], - [ - "Cho", - "ice" - ], - [ - "▁hoof", - "d" - ], - [ - "redu", - "cible" - ], - [ - "hp", - "p" - ], - [ - "h", - "pp" - ], - [ - "▁W", - "u" - ], - [ - "š", - "i" - ], - [ - "▁M", - "arse" - ], - [ - "▁Mar", - "se" - ], - [ - "▁Mars", - "e" - ], - [ - "▁s", - "oir" - ], - [ - "▁so", - "ir" - ], - [ - "we", - "sten" - ], - [ - "west", - "en" - ], - [ - "w", - "esten" - ], - [ - "em", - "os" - ], - [ - "emo", - "s" - ], - [ - "e", - "mos" - ], - [ - "▁D", - "uc" - ], - [ - "▁Du", - "c" - ], - [ - "▁amer", - "ik" - ], - [ - "|", - "}{" - ], - [ - "▁G", - "ul" - ], - [ - "▁Gu", - "l" - ], - [ - "▁Sp", - "rache" - ], - [ - "▁Spr", - "ache" - ], - [ - "▁mis", - "match" - ], - [ - "▁mism", - "atch" - ], - [ - "Sc", - "al" - ], - [ - "S", - "cal" - ], - [ - "P", - "ixel" - ], - [ - "E", - "F" - ], - [ - "▁S", - "ep" - ], - [ - "▁Se", - "p" - ], - [ - "▁powie", - "cie" - ], - [ - "ur", - "k" - ], - [ - "▁Nap", - "oli" - ], - [ - "▁neighbour", - "hood" - ], - [ - "сто", - "ян" - ], - [ - "стоя", - "н" - ], - [ - "▁search", - "es" - ], - [ - "yr", - "us" - ], - [ - "y", - "rus" - ], - [ - "пе", - "т" - ], - [ - "п", - "ет" - ], - [ - "He", - "lp" - ], - [ - "Hel", - "p" - ], - [ - "pon", - "t" - ], - [ - "po", - "nt" - ], - [ - "p", - "ont" - ], - [ - "▁Or", - "ient" - ], - [ - "▁Ori", - "ent" - ], - [ - "▁Alf", - "onso" - ], - [ - "▁monitor", - "ing" - ], - [ - "ia", - "o" - ], - [ - "i", - "ao" - ], - [ - "éd", - "é" - ], - [ - "▁Cés", - "ar" - ], - [ - "ше", - "е" - ], - [ - "Sh", - "ift" - ], - [ - "su", - "it" - ], - [ - "s", - "uit" - ], - [ - "code", - "d" - ], - [ - "co", - "ded" - ], - [ - "cod", - "ed" - ], - [ - "c", - "oded" - ], - [ - "но", - "то" - ], - [ - "▁Par", - "ti" - ], - [ - "▁Part", - "i" - ], - [ - "▁la", - "sci" - ], - [ - "▁las", - "ci" - ], - [ - "▁aw", - "esome" - ], - [ - "us", - "ta" - ], - [ - "ust", - "a" - ], - [ - "u", - "sta" - ], - [ - "▁С", - "ове" - ], - [ - "▁Со", - "ве" - ], - [ - "▁Сов", - "е" - ], - [ - "▁F", - "land" - ], - [ - "▁Fl", - "and" - ], - [ - "oo", - "m" - ], - [ - "o", - "om" - ], - [ - "▁de", - "vi" - ], - [ - "▁dev", - "i" - ], - [ - "eng", - "elsk" - ], - [ - "end", - "um" - ], - [ - "▁Pa", - "scal" - ], - [ - "▁Pas", - "cal" - ], - [ - "▁B", - "ind" - ], - [ - "▁Bi", - "nd" - ], - [ - "▁Bin", - "d" - ], - [ - "▁", - "Bind" - ], - [ - "▁sigu", - "ientes" - ], - [ - "▁siguiente", - "s" - ], - [ - "J", - "B" - ], - [ - "▁Peters", - "burg" - ], - [ - "▁incorrect", - "ly" - ], - [ - "▁B", - "ash" - ], - [ - "▁Bas", - "h" - ], - [ - "▁Ba", - "sh" - ], - [ - "▁pe", - "los" - ], - [ - "▁pel", - "os" - ], - [ - "▁pelo", - "s" - ], - [ - "▁zes", - "po" - ], - [ - "NS", - "URL" - ], - [ - "▁př", - "ek" - ], - [ - "▁Cr", - "ime" - ], - [ - "na", - "ch" - ], - [ - "n", - "ach" - ], - [ - "▁th", - "rust" - ], - [ - "▁thr", - "ust" - ], - [ - "▁Cult", - "ura" - ], - [ - "W", - "F" - ], - [ - "▁S", - "olo" - ], - [ - "▁So", - "lo" - ], - [ - "▁Sol", - "o" - ], - [ - "▁in", - "vas" - ], - [ - "▁inv", - "as" - ], - [ - "▁individ", - "ually" - ], - [ - "▁individual", - "ly" - ], - [ - "ib", - "m" - ], - [ - "i", - "bm" - ], - [ - "▁et", - "apa" - ], - [ - "▁hand", - "ed" - ], - [ - "▁han", - "ded" - ], - [ - "▁where", - "ver" - ], - [ - "▁interpol", - "ation" - ], - [ - "▁mus", - "ée" - ], - [ - "▁C", - "NN" - ], - [ - "id", - "ia" - ], - [ - "idi", - "a" - ], - [ - "i", - "dia" - ], - [ - "ńst", - "w" - ], - [ - "▁pr", - "zew" - ], - [ - "▁prze", - "w" - ], - [ - "▁prz", - "ew" - ], - [ - "ug", - "hing" - ], - [ - "ugh", - "ing" - ], - [ - "▁a", - "ctors" - ], - [ - "▁act", - "ors" - ], - [ - "▁actor", - "s" - ], - [ - "▁Ori", - "ental" - ], - [ - "▁Orient", - "al" - ], - [ - "▁conven", - "ience" - ], - [ - "▁mi", - "asta" - ], - [ - "br", - "ains" - ], - [ - "bra", - "ins" - ], - [ - "▁ме", - "ся" - ], - [ - "▁inf", - "atti" - ], - [ - "▁All", - "Movie" - ], - [ - "▁crit", - "ique" - ], - [ - "▁success", - "o" - ], - [ - "▁succ", - "esso" - ], - [ - "anc", - "ouver" - ], - [ - "▁f", - "á" - ], - [ - "ъл", - "гар" - ], - [ - "▁wis", - "dom" - ], - [ - "▁Pho", - "enix" - ], - [ - "ho", - "le" - ], - [ - "hol", - "e" - ], - [ - "h", - "ole" - ], - [ - "▁inform", - "ación" - ], - [ - "▁Air", - "lines" - ], - [ - "▁Airl", - "ines" - ], - [ - ".", - "«" - ], - [ - "mo", - "rt" - ], - [ - "mor", - "t" - ], - [ - "m", - "ort" - ], - [ - "user", - "Id" - ], - [ - "▁*/", - "\r" - ], - [ - "▁C", - "ongo" - ], - [ - "▁Con", - "go" - ], - [ - "▁Cong", - "o" - ], - [ - "▁\"", - "`" - ], - [ - "▁", - "\"`" - ], - [ - "co", - "rr" - ], - [ - "cor", - "r" - ], - [ - "c", - "orr" - ], - [ - "▁problem", - "as" - ], - [ - "▁proble", - "mas" - ], - [ - "▁problema", - "s" - ], - [ - "▁probl", - "emas" - ], - [ - "▁b", - "ib" - ], - [ - "▁bi", - "b" - ], - [ - "▁", - "bib" - ], - [ - "▁póź", - "niej" - ], - [ - "▁file", - "Name" - ], - [ - "▁", - "fileName" - ], - [ - "zo", - "tt" - ], - [ - "z", - "ott" - ], - [ - "ma", - "cht" - ], - [ - "mac", - "ht" - ], - [ - "m", - "acht" - ], - [ - "▁Ul", - "rich" - ], - [ - "C", - "y" - ], - [ - "end", - "point" - ], - [ - "▁she", - "ep" - ], - [ - "▁i", - "bn" - ], - [ - "Fe", - "ed" - ], - [ - "F", - "eed" - ], - [ - "▁sympath", - "y" - ], - [ - "▁I", - "b" - ], - [ - "▁territ", - "orial" - ], - [ - "ra", - "ting" - ], - [ - "rat", - "ing" - ], - [ - "r", - "ating" - ], - [ - "да", - "ми" - ], - [ - "▁d", - "st" - ], - [ - "▁ds", - "t" - ], - [ - "▁", - "dst" - ], - [ - "у", - "ю" - ], - [ - "ah", - "o" - ], - [ - "a", - "ho" - ], - [ - "▁s", - "ug" - ], - [ - "▁su", - "g" - ], - [ - "em", - "ia" - ], - [ - "emi", - "a" - ], - [ - "▁t", - "ed" - ], - [ - "▁te", - "d" - ], - [ - "▁", - "ted" - ], - [ - "▁A", - "pi" - ], - [ - "▁Ap", - "i" - ], - [ - "▁", - "Api" - ], - [ - "▁R", - "ica" - ], - [ - "▁Ric", - "a" - ], - [ - "▁Ri", - "ca" - ], - [ - "▁M", - "R" - ], - [ - "▁", - "MR" - ], - [ - "ński", - "m" - ], - [ - "ń", - "skim" - ], - [ - "▁V", - "oor" - ], - [ - "▁Vo", - "or" - ], - [ - "▁de", - "vil" - ], - [ - "▁dev", - "il" - ], - [ - "▁devi", - "l" - ], - [ - "▁Ф", - "о" - ], - [ - "▁N", - "är" - ], - [ - "▁Nä", - "r" - ], - [ - "▁...", - ")" - ], - [ - "▁..", - ".)" - ], - [ - "▁", - "...)" - ], - [ - "▁v", - "ois" - ], - [ - "▁vo", - "is" - ], - [ - "▁ab", - "bre" - ], - [ - "▁abb", - "re" - ], - [ - "▁M", - "änner" - ], - [ - "xim", - "o" - ], - [ - "xi", - "mo" - ], - [ - "x", - "imo" - ], - [ - "▁intellect", - "ual" - ], - [ - "▁t", - "ales" - ], - [ - "▁tal", - "es" - ], - [ - "▁ta", - "les" - ], - [ - "▁tale", - "s" - ], - [ - "sim", - "ilar" - ], - [ - "ne", - "um" - ], - [ - "▁O", - "rig" - ], - [ - "▁Or", - "ig" - ], - [ - "▁Ori", - "g" - ], - [ - "▁po", - "stal" - ], - [ - "▁pos", - "tal" - ], - [ - "▁post", - "al" - ], - [ - "▁h", - "vor" - ], - [ - "▁ident", - "ification" - ], - [ - "▁identific", - "ation" - ], - [ - "▁О", - "д" - ], - [ - "ue", - "sto" - ], - [ - "ues", - "to" - ], - [ - "uest", - "o" - ], - [ - "u", - "esto" - ], - [ - "▁.", - "./" - ], - [ - "▁..", - "/" - ], - [ - "▁", - "../" - ], - [ - "▁b", - "ir" - ], - [ - "▁bi", - "r" - ], - [ - "▁", - "bir" - ], - [ - "▁Л", - "он" - ], - [ - "▁Ло", - "н" - ], - [ - "▁es", - "empio" - ], - [ - "▁E", - "ing" - ], - [ - "▁Ein", - "g" - ], - [ - "Exp", - "and" - ], - [ - "▁PR", - "IMARY" - ], - [ - "▁J", - "in" - ], - [ - "▁Ji", - "n" - ], - [ - "▁vš", - "ak" - ], - [ - "ours", - "es" - ], - [ - "ourse", - "s" - ], - [ - "▁Be", - "tty" - ], - [ - "▁Bet", - "ty" - ], - [ - "▁W", - "M" - ], - [ - "▁", - "WM" - ], - [ - "▁fl", - "ask" - ], - [ - "▁fla", - "sk" - ], - [ - "hl", - "en" - ], - [ - "h", - "len" - ], - [ - "▁A", - "del" - ], - [ - "▁Ad", - "el" - ], - [ - "lar", - "avel" - ], - [ - "▁д", - "ет" - ], - [ - "▁де", - "т" - ], - [ - "сь", - "кою" - ], - [ - "сько", - "ю" - ], - [ - "▁M", - "undo" - ], - [ - "▁Mun", - "do" - ], - [ - "ic", - "zn" - ], - [ - "icz", - "n" - ], - [ - "ifi", - "é" - ], - [ - "▁М", - "ор" - ], - [ - "▁Мо", - "р" - ], - [ - "▁д", - "рев" - ], - [ - "▁др", - "ев" - ], - [ - "Date", - "Format" - ], - [ - "сь", - "ким" - ], - [ - "ськ", - "им" - ], - [ - "▁d", - "ated" - ], - [ - "▁da", - "ted" - ], - [ - "▁dat", - "ed" - ], - [ - "▁date", - "d" - ], - [ - "▁", - "dated" - ], - [ - "ко", - "ли" - ], - [ - "кол", - "и" - ], - [ - "▁результа", - "те" - ], - [ - "\\)", - "." - ], - [ - "\\", - ")." - ], - [ - "▁delay", - "ed" - ], - [ - "so", - "und" - ], - [ - "s", - "ound" - ], - [ - "▁Ма", - "к" - ], - [ - "▁\"", - "..." - ], - [ - "▁\".", - ".." - ], - [ - "▁b", - "innen" - ], - [ - "▁bin", - "nen" - ], - [ - "▁фа", - "куль" - ], - [ - "▁pol", - "ygon" - ], - [ - "▁poly", - "gon" - ], - [ - "▁eg", - "gs" - ], - [ - "▁egg", - "s" - ], - [ - "At", - "IndexPath" - ], - [ - "AtIndex", - "Path" - ], - [ - "мен", - "таль" - ], - [ - "мент", - "аль" - ], - [ - "мента", - "ль" - ], - [ - "▁in", - "cred" - ], - [ - "▁incre", - "d" - ], - [ - "▁inc", - "red" - ], - [ - "ch", - "unk" - ], - [ - "web", - "driver" - ], - [ - "▁с", - "вобо" - ], - [ - "▁сво", - "бо" - ], - [ - "▁mi", - "ędzy" - ], - [ - "Rece", - "ived" - ], - [ - "Receive", - "d" - ], - [ - "▁M", - "onde" - ], - [ - "▁Mon", - "de" - ], - [ - "▁Mo", - "nde" - ], - [ - "▁Mond", - "e" - ], - [ - "▁J", - "Query" - ], - [ - "Bu", - "tt" - ], - [ - "But", - "t" - ], - [ - "B", - "utt" - ], - [ - "▁P", - "DO" - ], - [ - "▁for", - "ec" - ], - [ - "▁fo", - "rec" - ], - [ - "▁fore", - "c" - ], - [ - "▁discipl", - "ine" - ], - [ - "ch", - "ev" - ], - [ - "che", - "v" - ], - [ - "на", - "т" - ], - [ - "н", - "ат" - ], - [ - "▁re", - "dis" - ], - [ - "▁red", - "is" - ], - [ - "▁hun", - "ting" - ], - [ - "▁al", - "k" - ], - [ - "▁", - "alk" - ], - [ - "▁proof", - "s" - ], - [ - "PR", - "I" - ], - [ - "P", - "RI" - ], - [ - "▁c", - "hip" - ], - [ - "▁ch", - "ip" - ], - [ - "▁chi", - "p" - ], - [ - "és", - "ie" - ], - [ - "▁H", - "O" - ], - [ - "▁", - "HO" - ], - [ - "▁r", - "ug" - ], - [ - "▁ru", - "g" - ], - [ - "▁", - "rug" - ], - [ - "zo", - "s" - ], - [ - "z", - "os" - ], - [ - "▁s", - "orte" - ], - [ - "▁sort", - "e" - ], - [ - "▁sor", - "te" - ], - [ - "▁ze", - "igt" - ], - [ - "▁Phys", - "ics" - ], - [ - "leg", - "te" - ], - [ - "legt", - "e" - ], - [ - "▁proport", - "ional" - ], - [ - "▁proportion", - "al" - ], - [ - "▁tool", - "bar" - ], - [ - "ve", - "ment" - ], - [ - "v", - "ement" - ], - [ - "not", - "in" - ], - [ - "▁prv", - "ní" - ], - [ - "bl", - "ah" - ], - [ - "bla", - "h" - ], - [ - "b", - "lah" - ], - [ - "▁prés", - "ence" - ], - [ - "▁l", - "loc" - ], - [ - "▁ll", - "oc" - ], - [ - "▁lí", - "der" - ], - [ - "▁Ac", - "cept" - ], - [ - "▁", - "Accept" - ], - [ - "▁Al", - "ways" - ], - [ - "▁\"", - "{" - ], - [ - "▁divers", - "i" - ], - [ - "▁diver", - "si" - ], - [ - "ik", - "or" - ], - [ - "iko", - "r" - ], - [ - "i", - "kor" - ], - [ - "Per", - "iod" - ], - [ - "ж", - "ён" - ], - [ - "▁Al", - "liance" - ], - [ - "▁All", - "iance" - ], - [ - "▁re", - "lay" - ], - [ - "▁rel", - "ay" - ], - [ - "▁rela", - "y" - ], - [ - "Br", - "o" - ], - [ - "B", - "ro" - ], - [ - "jö", - "n" - ], - [ - "j", - "ön" - ], - [ - "▁B", - "aud" - ], - [ - "▁Ba", - "ud" - ], - [ - "▁Bau", - "d" - ], - [ - "▁B", - "ian" - ], - [ - "▁Bi", - "an" - ], - [ - "')", - "[" - ], - [ - "'", - ")[" - ], - [ - "чи", - "в" - ], - [ - "▁P", - "oss" - ], - [ - "▁Po", - "ss" - ], - [ - "▁Pos", - "s" - ], - [ - "▁Mitg", - "lieder" - ], - [ - "▁Mitglied", - "er" - ], - [ - "▁n", - "ev" - ], - [ - "▁ne", - "v" - ], - [ - "Dan", - "iel" - ], - [ - "▁t", - "ends" - ], - [ - "▁ten", - "ds" - ], - [ - "▁tend", - "s" - ], - [ - "▁compag", - "nie" - ], - [ - "▁liv", - "res" - ], - [ - "▁livre", - "s" - ], - [ - "lu", - "b" - ], - [ - "l", - "ub" - ], - [ - "▁", - "▁" - ], - [ - "▁▁", - "▁▁" - ], - [ - "▁▁▁", - "▁" - ], - [ - "▁", - "▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁", - "▁" - ], - [ - "▁▁▁", - "▁▁" - ], - [ - "▁", - "▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁", - "▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁" - ], - [ - "▁", - "▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁", - "▁▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁<", - "SU" - ], - [ - "▁" - ], - [ - "▁" - ], - [ - "▁" - ], - [ - "▁" - ] - ] - } -} \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/gpu_monitoring.py b/emissary-ml/llm-scripts/fine-tuning/llama3/gpu_monitoring.py deleted file mode 100644 index 349b3911af80aa6327d15f62d6a1665806345445..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/gpu_monitoring.py +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/env python3 -""" -GPU Memory Monitoring Script for Model Parallelization Experiments -""" - -import subprocess -import time -import csv -import datetime -import argparse - - -def get_gpu_memory_info(): - """Get current GPU memory usage using nvidia-smi""" - try: - result = subprocess.run( - ['nvidia-smi', '--query-gpu=index,name,memory.used,memory.total,utilization.gpu', - '--format=csv,noheader,nounits'], - capture_output=True, text=True, check=True - ) - - gpu_info = [] - for line in result.stdout.strip().split('\n'): - parts = line.split(', ') - gpu_info.append({ - 'index': int(parts[0]), - 'name': parts[1], - 'memory_used_mb': int(parts[2]), - 'memory_total_mb': int(parts[3]), - 'gpu_utilization': int(parts[4]) - }) - return gpu_info - except Exception as e: - print(f"Error getting GPU info: {e}") - return [] - -def monitor_gpus(output_file, interval=5, experiment_name=""): - """Monitor GPU memory usage and save to CSV""" - - with open(output_file, 'w', newline='') as csvfile: - fieldnames = ['timestamp', 'experiment', 'gpu_index', 'gpu_name', - 'memory_used_mb', 'memory_total_mb', 'memory_percent', - 'gpu_utilization'] - writer = csv.DictWriter(csvfile, fieldnames=fieldnames) - writer.writeheader() - - print(f"Starting GPU monitoring for experiment: {experiment_name}") - print(f"Writing to: {output_file}") - print("Press Ctrl+C to stop monitoring\n") - - try: - while True: - timestamp = datetime.datetime.now().isoformat() - gpu_infos = get_gpu_memory_info() - - for gpu in gpu_infos: - memory_percent = (gpu['memory_used_mb'] / gpu['memory_total_mb']) * 100 - - writer.writerow({ - 'timestamp': timestamp, - 'experiment': experiment_name, - 'gpu_index': gpu['index'], - 'gpu_name': gpu['name'], - 'memory_used_mb': gpu['memory_used_mb'], - 'memory_total_mb': gpu['memory_total_mb'], - 'memory_percent': f"{memory_percent:.2f}", - 'gpu_utilization': gpu['gpu_utilization'] - }) - - print(f"GPU {gpu['index']}: {gpu['memory_used_mb']}/{gpu['memory_total_mb']} MB " - f"({memory_percent:.1f}%) | Util: {gpu['gpu_utilization']}%") - - print("-" * 80) - csvfile.flush() - time.sleep(interval) - - except KeyboardInterrupt: - print("\nMonitoring stopped.") - -def analyze_log(log_file): - """Analyze the monitoring log and produce summary statistics""" - data = [] - with open(log_file, 'r') as f: - reader = csv.DictReader(f) - for row in reader: - row['memory_used_mb'] = int(row['memory_used_mb']) - row['memory_total_mb'] = int(row['memory_total_mb']) - row['memory_percent'] = float(row['memory_percent']) - row['gpu_utilization'] = int(row['gpu_utilization']) - data.append(row) - - if not data: - print("No data found in log file") - return - - # Group by GPU - gpus = {} - for row in data: - gpu_idx = row['gpu_index'] - if gpu_idx not in gpus: - gpus[gpu_idx] = [] - gpus[gpu_idx].append(row) - - print(f"\nAnalysis of {log_file}:") - print("=" * 80) - - for gpu_idx, gpu_data in sorted(gpus.items()): - memory_used = [d['memory_used_mb'] for d in gpu_data] - memory_percent = [d['memory_percent'] for d in gpu_data] - gpu_util = [d['gpu_utilization'] for d in gpu_data] - - print(f"\nGPU {gpu_idx} ({gpu_data[0]['gpu_name']}):") - print(f" Memory - Max: {max(memory_used)} MB ({max(memory_percent):.1f}%)") - print(f" Memory - Avg: {sum(memory_used)/len(memory_used):.0f} MB ({sum(memory_percent)/len(memory_percent):.1f}%)") - print(f" GPU Util - Max: {max(gpu_util)}%") - print(f" GPU Util - Avg: {sum(gpu_util)/len(gpu_util):.1f}%") - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description='GPU Memory Monitor for ML Experiments') - parser.add_argument('--output', '-o', default='gpu_monitor.csv', - help='Output CSV file') - parser.add_argument('--interval', '-i', type=int, default=5, - help='Monitoring interval in seconds') - parser.add_argument('--experiment', '-e', default='', - help='Experiment name/description') - parser.add_argument('--analyze', '-a', - help='Analyze existing log file instead of monitoring') - - args = parser.parse_args() - - if args.analyze: - analyze_log(args.analyze) - else: - monitor_gpus(args.output, args.interval, args.experiment) \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/outputs/special_tokens_map.json b/emissary-ml/llm-scripts/fine-tuning/llama3/outputs/special_tokens_map.json deleted file mode 100644 index 492d4b2966a1763442d426d880dbc29f94906e4c..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/outputs/special_tokens_map.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "bos_token": { - "content": "", - "lstrip": false, - "normalized": false, - "rstrip": false, - "single_word": false - }, - "eos_token": { - "content": "", - "lstrip": false, - "normalized": false, - "rstrip": false, - "single_word": false - }, - "pad_token": { - "content": "", - "lstrip": false, - "normalized": false, - "rstrip": false, - "single_word": false - }, - "unk_token": { - "content": "", - "lstrip": false, - "normalized": false, - "rstrip": false, - "single_word": false - } -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/outputs/tokenizer.json b/emissary-ml/llm-scripts/fine-tuning/llama3/outputs/tokenizer.json deleted file mode 100644 index 641df5beeeaf50b700ed2d53895beb204c164e78..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/outputs/tokenizer.json +++ /dev/null @@ -1,277199 +0,0 @@ -{ - "version": "1.0", - "truncation": null, - "padding": null, - "added_tokens": [ - { - "id": 0, - "content": "", - "single_word": false, - "lstrip": false, - "rstrip": false, - "normalized": false, - "special": true - }, - { - "id": 1, - "content": "", - "single_word": false, - "lstrip": false, - "rstrip": false, - "normalized": false, - "special": true - }, - { - "id": 2, - "content": "", - "single_word": false, - "lstrip": false, - "rstrip": false, - "normalized": false, - "special": true - } - ], - "normalizer": { - "type": "Sequence", - "normalizers": [ - { - "type": "Prepend", - "prepend": "▁" - }, - { - "type": "Replace", - "pattern": { - "String": " " - }, - "content": "▁" - } - ] - }, - "pre_tokenizer": null, - "post_processor": { - "type": "TemplateProcessing", - "single": [ - { - "SpecialToken": { - "id": "", - "type_id": 0 - } - }, - { - "Sequence": { - "id": "A", - "type_id": 0 - } - } - ], - "pair": [ - { - "SpecialToken": { - "id": "", - "type_id": 0 - } - }, - { - "Sequence": { - "id": "A", - "type_id": 0 - } - }, - { - "SpecialToken": { - "id": "", - "type_id": 1 - } - }, - { - "Sequence": { - "id": "B", - "type_id": 1 - } - } - ], - "special_tokens": { - "": { - "id": "", - "ids": [ - 1 - ], - "tokens": [ - "" - ] - } - } - }, - "decoder": { - "type": "Sequence", - "decoders": [ - { - "type": "Replace", - "pattern": { - "String": "▁" - }, - "content": " " - }, - { - "type": "ByteFallback" - }, - { - "type": "Fuse" - }, - { - "type": "Strip", - "content": " ", - "start": 1, - "stop": 0 - } - ] - }, - "model": { - "type": "BPE", - "dropout": null, - "unk_token": "", - "continuing_subword_prefix": null, - "end_of_word_suffix": null, - "fuse_unk": true, - "byte_fallback": true, - "ignore_merges": false, - "vocab": { - "": 0, - "": 1, - "": 2, - "<0x00>": 3, - "<0x01>": 4, - "<0x02>": 5, - "<0x03>": 6, - "<0x04>": 7, - "<0x05>": 8, - "<0x06>": 9, - "<0x07>": 10, - "<0x08>": 11, - "<0x09>": 12, - "<0x0A>": 13, - "<0x0B>": 14, - "<0x0C>": 15, - "<0x0D>": 16, - "<0x0E>": 17, - "<0x0F>": 18, - "<0x10>": 19, - "<0x11>": 20, - "<0x12>": 21, - "<0x13>": 22, - "<0x14>": 23, - "<0x15>": 24, - "<0x16>": 25, - "<0x17>": 26, - "<0x18>": 27, - "<0x19>": 28, - "<0x1A>": 29, - "<0x1B>": 30, - "<0x1C>": 31, - "<0x1D>": 32, - "<0x1E>": 33, - "<0x1F>": 34, - "<0x20>": 35, - "<0x21>": 36, - "<0x22>": 37, - "<0x23>": 38, - "<0x24>": 39, - "<0x25>": 40, - "<0x26>": 41, - "<0x27>": 42, - "<0x28>": 43, - "<0x29>": 44, - "<0x2A>": 45, - "<0x2B>": 46, - "<0x2C>": 47, - "<0x2D>": 48, - "<0x2E>": 49, - "<0x2F>": 50, - "<0x30>": 51, - "<0x31>": 52, - "<0x32>": 53, - "<0x33>": 54, - "<0x34>": 55, - "<0x35>": 56, - "<0x36>": 57, - "<0x37>": 58, - "<0x38>": 59, - "<0x39>": 60, - "<0x3A>": 61, - "<0x3B>": 62, - "<0x3C>": 63, - "<0x3D>": 64, - "<0x3E>": 65, - "<0x3F>": 66, - "<0x40>": 67, - "<0x41>": 68, - "<0x42>": 69, - "<0x43>": 70, - "<0x44>": 71, - "<0x45>": 72, - "<0x46>": 73, - "<0x47>": 74, - "<0x48>": 75, - "<0x49>": 76, - "<0x4A>": 77, - "<0x4B>": 78, - "<0x4C>": 79, - "<0x4D>": 80, - "<0x4E>": 81, - "<0x4F>": 82, - "<0x50>": 83, - "<0x51>": 84, - "<0x52>": 85, - "<0x53>": 86, - "<0x54>": 87, - "<0x55>": 88, - "<0x56>": 89, - "<0x57>": 90, - "<0x58>": 91, - "<0x59>": 92, - "<0x5A>": 93, - "<0x5B>": 94, - "<0x5C>": 95, - "<0x5D>": 96, - "<0x5E>": 97, - "<0x5F>": 98, - "<0x60>": 99, - "<0x61>": 100, - "<0x62>": 101, - "<0x63>": 102, - "<0x64>": 103, - "<0x65>": 104, - "<0x66>": 105, - "<0x67>": 106, - "<0x68>": 107, - "<0x69>": 108, - "<0x6A>": 109, - "<0x6B>": 110, - "<0x6C>": 111, - "<0x6D>": 112, - "<0x6E>": 113, - "<0x6F>": 114, - "<0x70>": 115, - "<0x71>": 116, - "<0x72>": 117, - "<0x73>": 118, - "<0x74>": 119, - "<0x75>": 120, - "<0x76>": 121, - "<0x77>": 122, - "<0x78>": 123, - "<0x79>": 124, - "<0x7A>": 125, - "<0x7B>": 126, - "<0x7C>": 127, - "<0x7D>": 128, - "<0x7E>": 129, - "<0x7F>": 130, - "<0x80>": 131, - "<0x81>": 132, - "<0x82>": 133, - "<0x83>": 134, - "<0x84>": 135, - "<0x85>": 136, - "<0x86>": 137, - "<0x87>": 138, - "<0x88>": 139, - "<0x89>": 140, - "<0x8A>": 141, - "<0x8B>": 142, - "<0x8C>": 143, - "<0x8D>": 144, - "<0x8E>": 145, - "<0x8F>": 146, - "<0x90>": 147, - "<0x91>": 148, - "<0x92>": 149, - "<0x93>": 150, - "<0x94>": 151, - "<0x95>": 152, - "<0x96>": 153, - "<0x97>": 154, - "<0x98>": 155, - "<0x99>": 156, - "<0x9A>": 157, - "<0x9B>": 158, - "<0x9C>": 159, - "<0x9D>": 160, - "<0x9E>": 161, - "<0x9F>": 162, - "<0xA0>": 163, - "<0xA1>": 164, - "<0xA2>": 165, - "<0xA3>": 166, - "<0xA4>": 167, - "<0xA5>": 168, - "<0xA6>": 169, - "<0xA7>": 170, - "<0xA8>": 171, - "<0xA9>": 172, - "<0xAA>": 173, - "<0xAB>": 174, - "<0xAC>": 175, - "<0xAD>": 176, - "<0xAE>": 177, - "<0xAF>": 178, - "<0xB0>": 179, - "<0xB1>": 180, - "<0xB2>": 181, - "<0xB3>": 182, - "<0xB4>": 183, - "<0xB5>": 184, - "<0xB6>": 185, - "<0xB7>": 186, - "<0xB8>": 187, - "<0xB9>": 188, - "<0xBA>": 189, - "<0xBB>": 190, - "<0xBC>": 191, - "<0xBD>": 192, - "<0xBE>": 193, - "<0xBF>": 194, - "<0xC0>": 195, - "<0xC1>": 196, - "<0xC2>": 197, - "<0xC3>": 198, - "<0xC4>": 199, - "<0xC5>": 200, - "<0xC6>": 201, - "<0xC7>": 202, - "<0xC8>": 203, - "<0xC9>": 204, - "<0xCA>": 205, - "<0xCB>": 206, - "<0xCC>": 207, - "<0xCD>": 208, - "<0xCE>": 209, - "<0xCF>": 210, - "<0xD0>": 211, - "<0xD1>": 212, - "<0xD2>": 213, - "<0xD3>": 214, - "<0xD4>": 215, - "<0xD5>": 216, - "<0xD6>": 217, - "<0xD7>": 218, - "<0xD8>": 219, - "<0xD9>": 220, - "<0xDA>": 221, - "<0xDB>": 222, - "<0xDC>": 223, - "<0xDD>": 224, - "<0xDE>": 225, - "<0xDF>": 226, - "<0xE0>": 227, - "<0xE1>": 228, - "<0xE2>": 229, - "<0xE3>": 230, - "<0xE4>": 231, - "<0xE5>": 232, - "<0xE6>": 233, - "<0xE7>": 234, - "<0xE8>": 235, - "<0xE9>": 236, - "<0xEA>": 237, - "<0xEB>": 238, - "<0xEC>": 239, - "<0xED>": 240, - "<0xEE>": 241, - "<0xEF>": 242, - "<0xF0>": 243, - "<0xF1>": 244, - "<0xF2>": 245, - "<0xF3>": 246, - "<0xF4>": 247, - "<0xF5>": 248, - "<0xF6>": 249, - "<0xF7>": 250, - "<0xF8>": 251, - "<0xF9>": 252, - "<0xFA>": 253, - "<0xFB>": 254, - "<0xFC>": 255, - "<0xFD>": 256, - "<0xFE>": 257, - "<0xFF>": 258, - "▁▁": 259, - "▁t": 260, - "er": 261, - "in": 262, - "▁a": 263, - "en": 264, - "on": 265, - "▁th": 266, - "es": 267, - "▁▁▁▁": 268, - "▁s": 269, - "▁d": 270, - "at": 271, - "or": 272, - "an": 273, - "▁c": 274, - "is": 275, - "re": 276, - "it": 277, - "▁the": 278, - "ar": 279, - "le": 280, - "▁w": 281, - "▁p": 282, - "ou": 283, - "al": 284, - "▁f": 285, - "▁m": 286, - "ed": 287, - "▁o": 288, - "▁b": 289, - "om": 290, - "ion": 291, - "ing": 292, - "ic": 293, - "as": 294, - "el": 295, - "ent": 296, - "▁in": 297, - "▁h": 298, - "nd": 299, - "et": 300, - "▁l": 301, - "▁n": 302, - "st": 303, - "▁to": 304, - "ch": 305, - "▁I": 306, - "ro": 307, - "▁▁▁▁▁▁▁▁": 308, - "il": 309, - "▁of": 310, - "de": 311, - "ct": 312, - "▁(": 313, - "am": 314, - "▁C": 315, - "▁de": 316, - "▁S": 317, - "▁u": 318, - "▁A": 319, - "▁\\": 320, - "▁e": 321, - "▁and": 322, - "▁T": 323, - "ol": 324, - "▁v": 325, - "im": 326, - "ot": 327, - "ad": 328, - "ut": 329, - "▁g": 330, - "em": 331, - "ur": 332, - "id": 333, - "▁*": 334, - "ig": 335, - "ra": 336, - "▁re": 337, - "▁is": 338, - "qu": 339, - "ow": 340, - "▁M": 341, - "est": 342, - "▁y": 343, - "se": 344, - "ve": 345, - "ce": 346, - "ie": 347, - "un": 348, - "▁P": 349, - "▁B": 350, - "ag": 351, - "ul": 352, - "▁=": 353, - "he": 354, - "end": 355, - "ode": 356, - "ter": 357, - "ment": 358, - "os": 359, - "▁D": 360, - "if": 361, - "ation": 362, - "▁for": 363, - "▁r": 364, - "▁L": 365, - "▁you": 366, - "▁be": 367, - "ly": 368, - "ver": 369, - "ab": 370, - "te": 371, - "▁it": 372, - "▁on": 373, - "ri": 374, - "us": 375, - "▁\"": 376, - "▁wh": 377, - "▁con": 378, - "▁H": 379, - "▁st": 380, - "ir": 381, - "▁E": 382, - "▁F": 383, - "ck": 384, - "▁an": 385, - "th": 386, - "eg": 387, - "ay": 388, - "ith": 389, - "▁R": 390, - "ist": 391, - "and": 392, - "▁that": 393, - "▁al": 394, - "▁$": 395, - "▁#": 396, - "od": 397, - "um": 398, - "▁W": 399, - "ht": 400, - "code": 401, - "▁G": 402, - "ate": 403, - "ess": 404, - "▁N": 405, - "ere": 406, - "pp": 407, - "▁as": 408, - "▁se": 409, - "▁pro": 410, - "▁with": 411, - "pe": 412, - "▁k": 413, - "ers": 414, - "pt": 415, - ");": 416, - "lo": 417, - "▁▁▁▁▁": 418, - "▁com": 419, - "ame": 420, - "▁`": 421, - "▁Com": 422, - "ia": 423, - "ant": 424, - "▁la": 425, - "▁{": 426, - "▁en": 427, - "ction": 428, - "▁ex": 429, - "ld": 430, - "ub": 431, - "▁j": 432, - "la": 433, - "ue": 434, - "▁J": 435, - "ich": 436, - "▁do": 437, - "▁O": 438, - "▁qu": 439, - "iv": 440, - "ort": 441, - "art": 442, - "▁un": 443, - "▁##": 444, - "▁this": 445, - "ke": 446, - "▁ha": 447, - "▁-": 448, - "out": 449, - "▁The": 450, - "▁not": 451, - "▁ne": 452, - "ill": 453, - "▁le": 454, - "ci": 455, - "rom": 456, - "ine": 457, - "//": 458, - "op": 459, - "egin": 460, - "▁Comment": 461, - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁": 462, - "begin": 463, - "ст": 464, - "ass": 465, - "iz": 466, - ").": 467, - "og": 468, - "▁п": 469, - "▁or": 470, - "▁was": 471, - "▁at": 472, - "our": 473, - "▁i": 474, - "ain": 475, - "▁K": 476, - "на": 477, - "▁V": 478, - "ge": 479, - "▁su": 480, - "ap": 481, - "age": 482, - "ould": 483, - "ne": 484, - "av": 485, - "xt": 486, - "ore": 487, - "ile": 488, - "--": 489, - "▁в": 490, - "▁by": 491, - "li": 492, - "ath": 493, - "ра": 494, - "ber": 495, - "ach": 496, - "all": 497, - "▁Th": 498, - "ult": 499, - "▁}": 500, - "▁U": 501, - "▁us": 502, - "▁z": 503, - "ust": 504, - "▁have": 505, - "lic": 506, - "ни": 507, - "▁can": 508, - "tr": 509, - "com": 510, - "),": 511, - "▁In": 512, - "ind": 513, - "ell": 514, - "▁from": 515, - "ов": 516, - "to": 517, - "▁[": 518, - "able": 519, - "ost": 520, - "▁ch": 521, - "ect": 522, - "ight": 523, - "int": 524, - "▁'": 525, - "▁are": 526, - "▁im": 527, - "▁sh": 528, - "▁<": 529, - "▁An": 530, - "▁с": 531, - "ata": 532, - "ire": 533, - "▁tr": 534, - "con": 535, - "ord": 536, - "ity": 537, - "ard": 538, - "▁▁▁▁▁▁": 539, - "▁he": 540, - "▁but": 541, - "oc": 542, - "=\"": 543, - "▁pr": 544, - "ure": 545, - "per": 546, - "ack": 547, - "ork": 548, - "ong": 549, - "ans": 550, - "ко": 551, - "ple": 552, - "▁des": 553, - "ok": 554, - "orm": 555, - "wer": 556, - "ak": 557, - "pr": 558, - "ase": 559, - "▁el": 560, - "ph": 561, - "ac": 562, - "▁und": 563, - "▁ar": 564, - "▁if": 565, - "ud": 566, - "ps": 567, - "ite": 568, - "ble": 569, - "но": 570, - "fer": 571, - "pl": 572, - "ive": 573, - "ang": 574, - "ens": 575, - "ро": 576, - "▁so": 577, - "so": 578, - "ast": 579, - "()": 580, - "swer": 581, - "ru": 582, - "ies": 583, - "▁:": 584, - "au": 585, - "ov": 586, - "ре": 587, - "го": 588, - "▁der": 589, - "▁my": 590, - "▁we": 591, - "▁me": 592, - "nt": 593, - "▁ad": 594, - "urn": 595, - "▁your": 596, - "://": 597, - "are": 598, - "▁all": 599, - "ff": 600, - "io": 601, - "estion": 602, - "ime": 603, - "▁er": 604, - "lass": 605, - "▁и": 606, - "▁which": 607, - "ome": 608, - "ont": 609, - "▁par": 610, - "▁ma": 611, - "▁Y": 612, - "\",": 613, - "▁о": 614, - "ft": 615, - "ial": 616, - "cc": 617, - "ound": 618, - "▁li": 619, - "▁res": 620, - "eth": 621, - "ject": 622, - "▁app": 623, - "▁St": 624, - "ice": 625, - "▁am": 626, - "act": 627, - "▁del": 628, - "gr": 629, - "ated": 630, - "ier": 631, - "▁▁▁▁▁▁▁▁▁▁▁▁": 632, - "▁ab": 633, - "▁et": 634, - "ally": 635, - "..": 636, - "port": 637, - "ik": 638, - "▁per": 639, - "▁cont": 640, - "ри": 641, - "ка": 642, - "ser": 643, - "ли": 644, - "ll": 645, - "iew": 646, - "ign": 647, - "_{": 648, - "put": 649, - "one": 650, - "unction": 651, - "▁di": 652, - "ary": 653, - "ition": 654, - "ma": 655, - "ен": 656, - "get": 657, - "▁lo": 658, - "▁val": 659, - "▁Q": 660, - "ran": 661, - "▁д": 662, - "ence": 663, - "▁work": 664, - "▁на": 665, - "ip": 666, - "item": 667, - "ype": 668, - "▁&": 669, - "▁his": 670, - "▁use": 671, - "der": 672, - "▁Answer": 673, - "▁will": 674, - "ize": 675, - "та": 676, - "low": 677, - "▁Ch": 678, - "▁get": 679, - "ide": 680, - "ous": 681, - "ink": 682, - "ption": 683, - "ла": 684, - "turn": 685, - "ung": 686, - "ec": 687, - "ug": 688, - "form": 689, - "res": 690, - "htt": 691, - "oug": 692, - "ль": 693, - "▁no": 694, - "cl": 695, - "▁ro": 696, - "▁one": 697, - "tt": 698, - "cri": 699, - "du": 700, - "▁up": 701, - "то": 702, - "(\"": 703, - "▁ob": 704, - "we": 705, - "ory": 706, - "▁est": 707, - "ery": 708, - "iel": 709, - "str": 710, - "ob": 711, - "▁que": 712, - "ian": 713, - "▁out": 714, - "▁pl": 715, - "▁new": 716, - "ки": 717, - "▁+": 718, - "ry": 719, - "oth": 720, - "ther": 721, - "▁var": 722, - "▁would": 723, - "▁ser": 724, - "tern": 725, - "text": 726, - "▁there": 727, - "ish": 728, - "ror": 729, - "те": 730, - "▁set": 731, - "▁@": 732, - "▁по": 733, - "▁te": 734, - "ex": 735, - "▁return": 736, - "ail": 737, - "▁any": 738, - "▁It": 739, - "▁function": 740, - "{\\": 741, - "',": 742, - "és": 743, - "ale": 744, - "ан": 745, - "▁when": 746, - "ib": 747, - "▁go": 748, - "ance": 749, - "▁had": 750, - "▁Qu": 751, - "▁comp": 752, - "ле": 753, - "▁з": 754, - "math": 755, - "▁has": 756, - "▁м": 757, - "▁pre": 758, - "ener": 759, - "▁part": 760, - "elf": 761, - "▁die": 762, - "▁like": 763, - "ray": 764, - "irst": 765, - "▁dis": 766, - "▁man": 767, - "rit": 768, - "▁then": 769, - "▁class": 770, - "pro": 771, - "▁po": 772, - "▁using": 773, - "eb": 774, - "▁code": 775, - "own": 776, - "▁some": 777, - "ces": 778, - "▁$\\": 779, - "ер": 780, - "lect": 781, - "▁au": 782, - "isch": 783, - "▁col": 784, - "▁–": 785, - "up": 786, - "ons": 787, - "▁add": 788, - "ild": 789, - "iss": 790, - "val": 791, - "ount": 792, - "les": 793, - "vent": 794, - "▁▁▁▁▁▁▁▁▁▁▁▁▁": 795, - "▁Z": 796, - "In": 797, - "row": 798, - "ear": 799, - "ations": 800, - "ah": 801, - "que": 802, - "ublic": 803, - "ank": 804, - "▁sp": 805, - "▁Wh": 806, - "----": 807, - "sk": 808, - "ew": 809, - "ags": 810, - "ти": 811, - "ann": 812, - "▁—": 813, - "ert": 814, - "ace": 815, - "sch": 816, - "▁need": 817, - "▁à": 818, - "ien": 819, - "ough": 820, - "не": 821, - "▁def": 822, - "ij": 823, - "ern": 824, - "▁what": 825, - "▁Ar": 826, - "wo": 827, - "ml": 828, - "": 976, - "▁fil": 977, - "name": 978, - "inal": 979, - "▁il": 980, - "ample": 981, - "▁way": 982, - "ica": 983, - "во": 984, - "cess": 985, - "itt": 986, - "uch": 987, - "▁where": 988, - "ми": 989, - "org": 990, - "https": 991, - "▁vo": 992, - "ient": 993, - "ove": 994, - "▁value": 995, - "eng": 996, - "▁La": 997, - "^{": 998, - "ref": 999, - "ied": 1000, - "ER": 1001, - "▁stat": 1002, - "fig": 1003, - "me": 1004, - "▁von": 1005, - "▁inter": 1006, - "roid": 1007, - "ater": 1008, - "▁their": 1009, - "▁bet": 1010, - "▁ein": 1011, - "}\\": 1012, - "\">": 1013, - "▁sub": 1014, - "▁op": 1015, - "▁don": 1016, - "ty": 1017, - "▁try": 1018, - "▁Pro": 1019, - "▁tra": 1020, - "▁same": 1021, - "ep": 1022, - "▁two": 1023, - "▁name": 1024, - "old": 1025, - "let": 1026, - "▁sim": 1027, - "sp": 1028, - "▁av": 1029, - "bre": 1030, - "blem": 1031, - "ey": 1032, - "▁could": 1033, - "▁cor": 1034, - "▁acc": 1035, - "ays": 1036, - "cre": 1037, - "urr": 1038, - "si": 1039, - "▁const": 1040, - "ues": 1041, - "}$": 1042, - "View": 1043, - "▁act": 1044, - "▁bo": 1045, - "▁ко": 1046, - "▁som": 1047, - "▁about": 1048, - "land": 1049, - "mer": 1050, - "▁list": 1051, - "cal": 1052, - "▁import": 1053, - "col": 1054, - "▁na": 1055, - "na": 1056, - "::": 1057, - "▁who": 1058, - "▁error": 1059, - "▁X": 1060, - "ator": 1061, - "ext": 1062, - "▁been": 1063, - "ér": 1064, - "▁run": 1065, - "pos": 1066, - "▁cl": 1067, - "**": 1068, - "▁К": 1069, - "ular": 1070, - "ause": 1071, - "▁reg": 1072, - "▁know": 1073, - "▁see": 1074, - "▁him": 1075, - "ning": 1076, - "▁за": 1077, - "ates": 1078, - "fore": 1079, - "ions": 1080, - "▁hel": 1081, - "ute": 1082, - "▁rem": 1083, - "▁го": 1084, - "▁Mar": 1085, - "ру": 1086, - "vice": 1087, - "irect": 1088, - "ner": 1089, - "▁under": 1090, - "rib": 1091, - "hr": 1092, - "че": 1093, - "▁As": 1094, - "▁end": 1095, - "ember": 1096, - "▁а": 1097, - "▁att": 1098, - "ina": 1099, - "son": 1100, - "▁follow": 1101, - "▁Sch": 1102, - "pect": 1103, - "▁rel": 1104, - "▁So": 1105, - "▁look": 1106, - "abel": 1107, - "▁problem": 1108, - "▁van": 1109, - "strong": 1110, - "co": 1111, - "pon": 1112, - "ca": 1113, - "ada": 1114, - "\":": 1115, - "cond": 1116, - "amb": 1117, - "},": 1118, - "quest": 1119, - "▁aut": 1120, - "▁result": 1121, - "▁may": 1122, - "Re": 1123, - "http": 1124, - "):": 1125, - "▁And": 1126, - "red": 1127, - "▁How": 1128, - "po": 1129, - "ско": 1130, - "att": 1131, - "oup": 1132, - "ced": 1133, - "▁type": 1134, - "▁than": 1135, - "▁cons": 1136, - "uf": 1137, - "ци": 1138, - "▁question": 1139, - "raph": 1140, - "igh": 1141, - "▁М": 1142, - "▁htt": 1143, - "ins": 1144, - "den": 1145, - "▁da": 1146, - "▁ver": 1147, - "oh": 1148, - "▁=>": 1149, - "riv": 1150, - "ude": 1151, - "▁For": 1152, - "▁ra": 1153, - "frac": 1154, - "ма": 1155, - "▁after": 1156, - "}{": 1157, - "▁method": 1158, - "\")": 1159, - "amp": 1160, - "ash": 1161, - "▁rec": 1162, - "▁differ": 1163, - "ON": 1164, - "ax": 1165, - "ament": 1166, - "ource": 1167, - "Con": 1168, - "its": 1169, - "Name": 1170, - "man": 1171, - "▁bec": 1172, - "che": 1173, - "▁En": 1174, - "aj": 1175, - "▁gener": 1176, - "IN": 1177, - "▁id": 1178, - "ages": 1179, - "▁loc": 1180, - "fo": 1181, - "br": 1182, - "▁she": 1183, - "Pro": 1184, - "▁una": 1185, - "▁к": 1186, - "eta": 1187, - "log": 1188, - "olog": 1189, - "▁sur": 1190, - "arg": 1191, - "▁--": 1192, - "kt": 1193, - "(\\": 1194, - "min": 1195, - "▁line": 1196, - "▁vari": 1197, - "ся": 1198, - "ics": 1199, - "ня": 1200, - "very": 1201, - "add": 1202, - "▁object": 1203, - "Id": 1204, - "▁But": 1205, - "▁case": 1206, - "▁make": 1207, - "▁cal": 1208, - "▁pass": 1209, - "сь": 1210, - "ession": 1211, - "net": 1212, - ".\"": 1213, - "▁г": 1214, - "är": 1215, - "де": 1216, - "no": 1217, - "ating": 1218, - "ato": 1219, - "line": 1220, - "ви": 1221, - "▁Ex": 1222, - "▁ass": 1223, - "▁vers": 1224, - "ля": 1225, - "▁ed": 1226, - "umn": 1227, - "other": 1228, - "ста": 1229, - "ative": 1230, - "String": 1231, - "▁los": 1232, - "wn": 1233, - "▁answer": 1234, - "▁let": 1235, - "▁pe": 1236, - "ents": 1237, - "▁fe": 1238, - "ince": 1239, - "ni": 1240, - "ider": 1241, - "ows": 1242, - "▁test": 1243, - "▁here": 1244, - "roll": 1245, - "▁call": 1246, - "ruct": 1247, - "▁pol": 1248, - "ait": 1249, - "▁back": 1250, - "ho": 1251, - "Ex": 1252, - "ress": 1253, - "ST": 1254, - "ried": 1255, - "date": 1256, - "ет": 1257, - "▁did": 1258, - "ting": 1259, - "▁El": 1260, - "▁dem": 1261, - ")$": 1262, - "ова": 1263, - "urrent": 1264, - "lace": 1265, - "right": 1266, - "ren": 1267, - "по": 1268, - "▁each": 1269, - "cy": 1270, - "block": 1271, - "data": 1272, - "▁%": 1273, - "▁ac": 1274, - "▁==": 1275, - "ür": 1276, - "▁por": 1277, - "ask": 1278, - "arch": 1279, - "ames": 1280, - "▁Con": 1281, - "ча": 1282, - "▁off": 1283, - "▁find": 1284, - "cont": 1285, - "▁now": 1286, - "work": 1287, - "ational": 1288, - "dd": 1289, - "ción": 1290, - "▁А": 1291, - "ault": 1292, - "List": 1293, - "▁ext": 1294, - "urs": 1295, - "ake": 1296, - "ule": 1297, - "▁point": 1298, - "AT": 1299, - "aut": 1300, - "▁trans": 1301, - "▁co": 1302, - "▁read": 1303, - "▁used": 1304, - "ски": 1305, - "ari": 1306, - "LE": 1307, - "eter": 1308, - "oun": 1309, - "ever": 1310, - "self": 1311, - "ined": 1312, - "idth": 1313, - "ux": 1314, - "js": 1315, - "▁such": 1316, - "▁Is": 1317, - "ée": 1318, - "ful": 1319, - "▁dist": 1320, - "▁bu": 1321, - "itemize": 1322, - "Cont": 1323, - "je": 1324, - "си": 1325, - "▁prov": 1326, - "bb": 1327, - "ward": 1328, - "esent": 1329, - "erson": 1330, - "anks": 1331, - "wh": 1332, - "not": 1333, - "▁We": 1334, - "ka": 1335, - "rop": 1336, - "atur": 1337, - "als": 1338, - "▁bel": 1339, - "ör": 1340, - "fr": 1341, - "▁example": 1342, - "▁incl": 1343, - "amil": 1344, - "▁ра": 1345, - "▁“": 1346, - "▁string": 1347, - "▁think": 1348, - "Th": 1349, - "▁tem": 1350, - "ave": 1351, - "▁Fran": 1352, - "▁number": 1353, - "▁si": 1354, - "imes": 1355, - "tem": 1356, - "my": 1357, - "ler": 1358, - "load": 1359, - "==": 1360, - "▁hand": 1361, - "za": 1362, - "▁because": 1363, - "▁sch": 1364, - "vo": 1365, - "this": 1366, - "ID": 1367, - "ão": 1368, - "▁start": 1369, - "▁war": 1370, - "▁help": 1371, - "ts": 1372, - "▁char": 1373, - "▁ph": 1374, - "▁min": 1375, - "til": 1376, - "rite": 1377, - "--------": 1378, - "els": 1379, - "▁mit": 1380, - "edia": 1381, - "ку": 1382, - "▁Sh": 1383, - "any": 1384, - "];": 1385, - "▁Б": 1386, - "ique": 1387, - "da": 1388, - "ef": 1389, - "dex": 1390, - "▁produ": 1391, - "▁Н": 1392, - "gram": 1393, - "▁Or": 1394, - "▁gre": 1395, - "quote": 1396, - "leg": 1397, - "orn": 1398, - "▁ind": 1399, - "▁post": 1400, - "▁dep": 1401, - "],": 1402, - "vi": 1403, - "▁user": 1404, - "▁>": 1405, - "lick": 1406, - "▁very": 1407, - "ething": 1408, - "▁array": 1409, - "▁gu": 1410, - "▁dur": 1411, - "`.": 1412, - "ть": 1413, - "lication": 1414, - "сти": 1415, - "ek": 1416, - "ico": 1417, - "▁dat": 1418, - "ор": 1419, - "html": 1420, - "ione": 1421, - "▁different": 1422, - "▁check": 1423, - "▁fr": 1424, - "▁Er": 1425, - "▁text": 1426, - "ні": 1427, - "icht": 1428, - "stack": 1429, - "EN": 1430, - "rag": 1431, - "▁every": 1432, - "Ar": 1433, - "▁before": 1434, - "alse": 1435, - "▁fin": 1436, - "▁dé": 1437, - "▁these": 1438, - "▁det": 1439, - "Val": 1440, - "ception": 1441, - "▁android": 1442, - "blockquote": 1443, - "▁je": 1444, - "file": 1445, - "ats": 1446, - "▁до": 1447, - "essage": 1448, - "▁again": 1449, - "aw": 1450, - "Ch": 1451, - "ween": 1452, - "▁Д": 1453, - "for": 1454, - "cial": 1455, - "play": 1456, - "pre": 1457, - "ida": 1458, - "▁Par": 1459, - "ny": 1460, - "ract": 1461, - "▁supp": 1462, - "ased": 1463, - "lection": 1464, - "▁dans": 1465, - "air": 1466, - "rol": 1467, - "▁thr": 1468, - "Data": 1469, - "lich": 1470, - "▁про": 1471, - "▁long": 1472, - "▁second": 1473, - "ually": 1474, - "ines": 1475, - "▁found": 1476, - "ength": 1477, - "yp": 1478, - "ead": 1479, - "▁log": 1480, - "ui": 1481, - "new": 1482, - "▁Р": 1483, - "go": 1484, - "aus": 1485, - "ody": 1486, - "▁son": 1487, - "ме": 1488, - "ero": 1489, - "ved": 1490, - "sub": 1491, - "▁right": 1492, - "view": 1493, - "▁following": 1494, - "')": 1495, - "\");": 1496, - "▁said": 1497, - "же": 1498, - "чи": 1499, - "ту": 1500, - "ott": 1501, - "се": 1502, - "ars": 1503, - "$.": 1504, - "gg": 1505, - "▁br": 1506, - "ool": 1507, - "yle": 1508, - "use": 1509, - "▁show": 1510, - "lease": 1511, - "cia": 1512, - "▁direct": 1513, - "doc": 1514, - "ар": 1515, - "ms": 1516, - "▁giv": 1517, - "▁exp": 1518, - "ql": 1519, - "ду": 1520, - "ве": 1521, - "▁Be": 1522, - "Com": 1523, - "iter": 1524, - "RE": 1525, - "mp": 1526, - "men": 1527, - "▁Ro": 1528, - "MA": 1529, - "▁Col": 1530, - "ister": 1531, - "▁well": 1532, - "▁": 1599, - "ene": 1600, - "▁mon": 1601, - "▁dec": 1602, - "▁still": 1603, - "▁об": 1604, - "▁Tr": 1605, - "▁ф": 1606, - "ife": 1607, - "ism": 1608, - "by": 1609, - "raw": 1610, - "ior": 1611, - "▁med": 1612, - "orld": 1613, - "▁comple": 1614, - "ww": 1615, - "▁art": 1616, - "ron": 1617, - "▁Г": 1618, - "▁My": 1619, - "▁als": 1620, - "rect": 1621, - "▁auf": 1622, - "▁down": 1623, - "ather": 1624, - "Col": 1625, - "Text": 1626, - "back": 1627, - "$,": 1628, - "▁year": 1629, - "мо": 1630, - "pi": 1631, - "▁Gr": 1632, - "ream": 1633, - "▁rep": 1634, - "bf": 1635, - "www": 1636, - "▁wur": 1637, - "▁org": 1638, - "inter": 1639, - "▁Die": 1640, - "▁being": 1641, - "\".": 1642, - "label": 1643, - "▁cent": 1644, - "java": 1645, - "bar": 1646, - "ante": 1647, - "ana": 1648, - "__": 1649, - "▁solution": 1650, - "▁О": 1651, - "▁fl": 1652, - "▁create": 1653, - "ici": 1654, - "ste": 1655, - "ython": 1656, - "unt": 1657, - "ason": 1658, - "ference": 1659, - "SE": 1660, - "▁non": 1661, - "ane": 1662, - "▁ins": 1663, - "ader": 1664, - "_{\\": 1665, - "Res": 1666, - "▁main": 1667, - "пи": 1668, - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁": 1669, - "▁There": 1670, - "▁pour": 1671, - "RO": 1672, - "`,": 1673, - "lish": 1674, - "bject": 1675, - "ccess": 1676, - "▁orig": 1677, - "▁▁▁": 1678, - "ischen": 1679, - "ower": 1680, - "▁het": 1681, - "uc": 1682, - "▁else": 1683, - "».": 1684, - "▁от": 1685, - "equ": 1686, - "sible": 1687, - "test": 1688, - "stand": 1689, - "én": 1690, - "ets": 1691, - "GE": 1692, - "ident": 1693, - "▁е": 1694, - "▁при": 1695, - ".,": 1696, - "▁das": 1697, - "ock": 1698, - ",\"": 1699, - "▁vol": 1700, - "▁fo": 1701, - "▁para": 1702, - "▁Т": 1703, - "▁Car": 1704, - "ral": 1705, - "▁Sp": 1706, - "var": 1707, - "▁play": 1708, - "ouse": 1709, - "▁та": 1710, - "ically": 1711, - "▁contain": 1712, - "ponse": 1713, - "▁String": 1714, - "án": 1715, - "▁both": 1716, - "ken": 1717, - "AR": 1718, - "ере": 1719, - "▁Il": 1720, - "▁iss": 1721, - "▁open": 1722, - "▁)": 1723, - "▁What": 1724, - "fe": 1725, - "rivate": 1726, - "reg": 1727, - "▁without": 1728, - "▁zu": 1729, - "vis": 1730, - "flow": 1731, - "▁http": 1732, - "abase": 1733, - "▁word": 1734, - "▁change": 1735, - "▁works": 1736, - "▁ge": 1737, - "▁!": 1738, - "▁een": 1739, - "itle": 1740, - "▁event": 1741, - "word": 1742, - "ando": 1743, - "SB": 1744, - "rem": 1745, - "▁field": 1746, - "ving": 1747, - "Ser": 1748, - "▁our": 1749, - "▁qui": 1750, - "▁oper": 1751, - "▁ist": 1752, - "def": 1753, - "▁made": 1754, - "ние": 1755, - "px": 1756, - "▁men": 1757, - "rm": 1758, - "ais": 1759, - "cent": 1760, - "list": 1761, - "To": 1762, - "▁To": 1763, - "ja": 1764, - "vert": 1765, - "▁mar": 1766, - "value": 1767, - "▁„": 1768, - "\";": 1769, - "▁aus": 1770, - "▁Br": 1771, - "ole": 1772, - "▁mult": 1773, - "ought": 1774, - "▁mat": 1775, - "▁view": 1776, - "fil": 1777, - "▁со": 1778, - "га": 1779, - "▁void": 1780, - "▁good": 1781, - "бо": 1782, - "CT": 1783, - "▁many": 1784, - "ben": 1785, - "▁во": 1786, - "▁ка": 1787, - "▁system": 1788, - "ino": 1789, - "▁another": 1790, - "▁rest": 1791, - "user": 1792, - "ility": 1793, - "ai": 1794, - "▁might": 1795, - "ustom": 1796, - "▁order": 1797, - "▁Ver": 1798, - "SS": 1799, - "})": 1800, - "▁eff": 1801, - "до": 1802, - "ett": 1803, - "▁sign": 1804, - "му": 1805, - "IT": 1806, - "string": 1807, - "elle": 1808, - "▁sing": 1809, - "cul": 1810, - "▁trying": 1811, - "▁beg": 1812, - "▁page": 1813, - "хо": 1814, - "▁Can": 1815, - "▁Ser": 1816, - "++": 1817, - "▁must": 1818, - "▁values": 1819, - "▁key": 1820, - "ible": 1821, - "].": 1822, - "ird": 1823, - "▁program": 1824, - "roller": 1825, - "▁conne": 1826, - "▁say": 1827, - "▁param": 1828, - "ache": 1829, - "velop": 1830, - "▁select": 1831, - "▁famil": 1832, - "▁last": 1833, - "▁Thanks": 1834, - "▁pop": 1835, - "}.": 1836, - "eq": 1837, - "▁doesn": 1838, - "['": 1839, - "▁term": 1840, - "▁ré": 1841, - "▁document": 1842, - "па": 1843, - "лу": 1844, - "ateg": 1845, - ".)": 1846, - "ling": 1847, - "ional": 1848, - "ables": 1849, - "▁tak": 1850, - "utton": 1851, - "▁arg": 1852, - "type": 1853, - "▁sure": 1854, - "▁real": 1855, - "▁web": 1856, - "▁current": 1857, - "▁Pl": 1858, - "cho": 1859, - "ments": 1860, - "▁Joh": 1861, - "ots": 1862, - "▁exist": 1863, - "ну": 1864, - "▁für": 1865, - "▁из": 1866, - "do": 1867, - "ного": 1868, - "▁las": 1869, - "▁null": 1870, - "▁inform": 1871, - "▁Л": 1872, - "▁version": 1873, - "▁chang": 1874, - "ager": 1875, - "▁Comm": 1876, - "лі": 1877, - "ush": 1878, - "▁Ge": 1879, - "▁high": 1880, - "▁input": 1881, - "ogle": 1882, - "ros": 1883, - "box": 1884, - "gen": 1885, - "▁ste": 1886, - "▁local": 1887, - "Im": 1888, - "▁process": 1889, - "ternal": 1890, - "ized": 1891, - "ги": 1892, - "ét": 1893, - "▁Ind": 1894, - "▁och": 1895, - "lt": 1896, - "▁column": 1897, - "▁tried": 1898, - "▁command": 1899, - "▁best": 1900, - "aster": 1901, - "за": 1902, - "▁prim": 1903, - "▁model": 1904, - "▁і": 1905, - "▁those": 1906, - "ities": 1907, - "ère": 1908, - "▁ре": 1909, - "је": 1910, - "ши": 1911, - "ques": 1912, - "▁Am": 1913, - "▁own": 1914, - "lin": 1915, - "зи": 1916, - "Value": 1917, - "thing": 1918, - "▁,": 1919, - "▁Te": 1920, - "▁stud": 1921, - "▁um": 1922, - "▁server": 1923, - "ille": 1924, - "▁put": 1925, - "ativ": 1926, - "gy": 1927, - "ови": 1928, - "raf": 1929, - "ово": 1930, - "▁wurde": 1931, - "▁When": 1932, - "▁div": 1933, - "ants": 1934, - "▁ter": 1935, - "▁partic": 1936, - "▁т": 1937, - "▁Do": 1938, - "▁No": 1939, - "sert": 1940, - "ido": 1941, - "mathcal": 1942, - "ade": 1943, - "▁II": 1944, - "lear": 1945, - "ograph": 1946, - "ense": 1947, - "▁row": 1948, - "num": 1949, - "▁possible": 1950, - "▁since": 1951, - "▁Bo": 1952, - "ctions": 1953, - "▁Im": 1954, - "OR": 1955, - "ці": 1956, - "▁ide": 1957, - "map": 1958, - "▁correct": 1959, - "ves": 1960, - "php": 1961, - "▁output": 1962, - "▁Ph": 1963, - "AL": 1964, - "ared": 1965, - "\\\\": 1966, - "▁image": 1967, - "esch": 1968, - "жи": 1969, - "▁conf": 1970, - "por": 1971, - "query": 1972, - "ures": 1973, - "ium": 1974, - "ends": 1975, - "▁Ab": 1976, - "SBN": 1977, - "ід": 1978, - "ether": 1979, - "ptions": 1980, - "itu": 1981, - "lib": 1982, - "ns": 1983, - "ki": 1984, - "▁working": 1985, - "▁como": 1986, - "▁Then": 1987, - "ML": 1988, - "key": 1989, - "class": 1990, - "ople": 1991, - "ittle": 1992, - "▁match": 1993, - "ways": 1994, - "mathbb": 1995, - "▁require": 1996, - "alt": 1997, - "▁vis": 1998, - "▁bl": 1999, - "▁called": 2000, - "Item": 2001, - "ura": 2002, - "vec": 2003, - "eme": 2004, - "▁della": 2005, - "embre": 2006, - "urg": 2007, - "Se": 2008, - "▁request": 2009, - "ische": 2010, - "▁port": 2011, - "▁instead": 2012, - "=\\": 2013, - "▁У": 2014, - "hor": 2015, - "ente": 2016, - "ume": 2017, - "erd": 2018, - "са": 2019, - "▁why": 2020, - "rist": 2021, - "▁person": 2022, - "▁...": 2023, - "▁private": 2024, - "▁tot": 2025, - "pha": 2026, - "ift": 2027, - "ita": 2028, - "loc": 2029, - "▁old": 2030, - "он": 2031, - "▁nel": 2032, - "']": 2033, - "ti": 2034, - "iet": 2035, - "cite": 2036, - "plement": 2037, - "▁above": 2038, - "ks": 2039, - "ready": 2040, - "▁come": 2041, - "section": 2042, - "▁Pol": 2043, - "▁writ": 2044, - "▁https": 2045, - "▁$$": 2046, - "▁»": 2047, - "▁build": 2048, - "ito": 2049, - "▁consider": 2050, - "aft": 2051, - "App": 2052, - ",\\": 2053, - "indows": 2054, - "comm": 2055, - "▁;": 2056, - "ground": 2057, - "▁place": 2058, - "By": 2059, - "▁project": 2060, - "Object": 2061, - "▁repr": 2062, - "ences": 2063, - "indow": 2064, - "zt": 2065, - "▁files": 2066, - "cz": 2067, - "ivity": 2068, - "▁init": 2069, - "▁prob": 2070, - "▁sk": 2071, - "orth": 2072, - "iment": 2073, - "ouble": 2074, - "atal": 2075, - "irc": 2076, - "▁è": 2077, - "▁bre": 2078, - "ista": 2079, - "input": 2080, - "▁И": 2081, - "ной": 2082, - "sum": 2083, - "path": 2084, - "▁cour": 2085, - "▁too": 2086, - "▁Ad": 2087, - "▁Gu": 2088, - "▁false": 2089, - "▁fun": 2090, - "▁ст": 2091, - "ood": 2092, - "ès": 2093, - "▁enc": 2094, - "bol": 2095, - "rl": 2096, - "arget": 2097, - "order": 2098, - "▁mean": 2099, - "пе": 2100, - "igen": 2101, - "▁пре": 2102, - "width": 2103, - ";\r": 2104, - "itor": 2105, - "▁state": 2106, - "▁great": 2107, - "enn": 2108, - "bin": 2109, - "Er": 2110, - "Mod": 2111, - "oz": 2112, - "▁won": 2113, - "▁fact": 2114, - "▁java": 2115, - "▁Univers": 2116, - "▁cap": 2117, - "istor": 2118, - "}(": 2119, - "ku": 2120, - "ither": 2121, - "ales": 2122, - "▁ou": 2123, - "ross": 2124, - "▁take": 2125, - "rix": 2126, - "lob": 2127, - "▁eine": 2128, - "ases": 2129, - "▁access": 2130, - "ité": 2131, - "istr": 2132, - "ization": 2133, - "▁appro": 2134, - "ball": 2135, - "▁mak": 2136, - "}^": 2137, - "▁Cons": 2138, - "press": 2139, - "serv": 2140, - "().": 2141, - "af": 2142, - "▁ref": 2143, - ")\\": 2144, - "▁contin": 2145, - "su": 2146, - "iver": 2147, - "▁cond": 2148, - "▁expect": 2149, - "▁charact": 2150, - "bert": 2151, - "elt": 2152, - "ters": 2153, - "script": 2154, - "▁Ed": 2155, - "apt": 2156, - "');": 2157, - "print": 2158, - "▁size": 2159, - "▁sich": 2160, - "face": 2161, - "enden": 2162, - "▁Amer": 2163, - "ified": 2164, - "ów": 2165, - "▁Su": 2166, - "tes": 2167, - "med": 2168, - "▁Reg": 2169, - "sole": 2170, - "▁includ": 2171, - "ini": 2172, - "inci": 2173, - "▁pla": 2174, - "▁left": 2175, - "df": 2176, - "Par": 2177, - "▁All": 2178, - "▁occ": 2179, - "▁At": 2180, - "▁cr": 2181, - "Qu": 2182, - "▁given": 2183, - "▁System": 2184, - "ican": 2185, - "▁final": 2186, - "itions": 2187, - "▁бы": 2188, - "▁perform": 2189, - "AN": 2190, - "▁Me": 2191, - "uro": 2192, - "▁That": 2193, - "гра": 2194, - "▁По": 2195, - "▁ви": 2196, - "ably": 2197, - "▁present": 2198, - "duct": 2199, - "ric": 2200, - "▁Eng": 2201, - "try": 2202, - "▁lar": 2203, - "bl": 2204, - "idd": 2205, - "▁är": 2206, - "ora": 2207, - "LL": 2208, - "oss": 2209, - "▁ISBN": 2210, - "▁three": 2211, - "jo": 2212, - "ní": 2213, - "rc": 2214, - "▁far": 2215, - "▁Not": 2216, - "▁little": 2217, - "dis": 2218, - "ati": 2219, - "function": 2220, - "▁able": 2221, - "less": 2222, - "со": 2223, - "▁path": 2224, - "▁pres": 2225, - "lose": 2226, - "PI": 2227, - "▁issue": 2228, - "ackage": 2229, - "time": 2230, - "ige": 2231, - "ams": 2232, - "▁Cl": 2233, - "ails": 2234, - "alk": 2235, - "ii": 2236, - "ше": 2237, - "pen": 2238, - "QL": 2239, - "▁eas": 2240, - "RL": 2241, - "cel": 2242, - "▁sl": 2243, - "▁ask": 2244, - "▁nom": 2245, - "▁top": 2246, - "ides": 2247, - "index": 2248, - "ém": 2249, - "▁happ": 2250, - "ox": 2251, - "cd": 2252, - "▁better": 2253, - "▁load": 2254, - "ados": 2255, - "zen": 2256, - "▁ce": 2257, - "▁fa": 2258, - "▁John": 2259, - "IMA": 2260, - "▁Bar": 2261, - "overflow": 2262, - "▁де": 2263, - "ness": 2264, - "cer": 2265, - "▁Here": 2266, - "ret": 2267, - "▁sz": 2268, - "ambda": 2269, - "opy": 2270, - "url": 2271, - "py": 2272, - "rt": 2273, - "▁understand": 2274, - "ał": 2275, - "her": 2276, - "##": 2277, - "▁child": 2278, - "▁exec": 2279, - "▁application": 2280, - "▁struct": 2281, - "▁я": 2282, - "File": 2283, - "▁cert": 2284, - "ison": 2285, - "▁variable": 2286, - "DE": 2287, - "rs": 2288, - "▁really": 2289, - "Port": 2290, - "ba": 2291, - "▁Ber": 2292, - "▁inte": 2293, - "▁static": 2294, - "▁config": 2295, - "▁She": 2296, - "estions": 2297, - "▁plus": 2298, - "▁hab": 2299, - "ope": 2300, - "▁mus": 2301, - "▁count": 2302, - "ME": 2303, - "▁support": 2304, - "▁people": 2305, - "▁beh": 2306, - "▁already": 2307, - "Tr": 2308, - "▁done": 2309, - "dem": 2310, - "size": 2311, - "alpha": 2312, - "▁disc": 2313, - "])": 2314, - "▁Man": 2315, - "▁mil": 2316, - "▁stand": 2317, - "▁group": 2318, - "▁small": 2319, - "▁mag": 2320, - "сть": 2321, - "▁default": 2322, - "▁single": 2323, - "link": 2324, - "clude": 2325, - "▁ear": 2326, - "ilar": 2327, - "****": 2328, - "▁fix": 2329, - "ley": 2330, - "▁pas": 2331, - "ний": 2332, - "ission": 2333, - "▁implement": 2334, - "itch": 2335, - "▁года": 2336, - "▁always": 2337, - "▁Jah": 2338, - "pring": 2339, - "ção": 2340, - "plate": 2341, - "▁descri": 2342, - "▁head": 2343, - "init": 2344, - "ograf": 2345, - "▁query": 2346, - "ived": 2347, - "▁ing": 2348, - "pty": 2349, - "ha": 2350, - "▁mov": 2351, - "▁э": 2352, - "ette": 2353, - "ily": 2354, - "▁got": 2355, - "iled": 2356, - "icro": 2357, - "▁wr": 2358, - "ря": 2359, - "▁never": 2360, - "ores": 2361, - "▁bas": 2362, - "ios": 2363, - "lack": 2364, - "aint": 2365, - "vious": 2366, - "▁give": 2367, - "idad": 2368, - "En": 2369, - "ный": 2370, - "table": 2371, - "▁На": 2372, - "▁pat": 2373, - "тор": 2374, - "angu": 2375, - "loy": 2376, - "▁seg": 2377, - "array": 2378, - "▁Fl": 2379, - "▁index": 2380, - "▁sw": 2381, - "IMAGE": 2382, - "▁km": 2383, - "би": 2384, - "Class": 2385, - "ena": 2386, - "мен": 2387, - "comp": 2388, - "atus": 2389, - "rap": 2390, - "▁List": 2391, - "Error": 2392, - "▁typ": 2393, - "▁ма": 2394, - "cs": 2395, - "':": 2396, - "ji": 2397, - "▁However": 2398, - "▁те": 2399, - "▁below": 2400, - "▁App": 2401, - "ще": 2402, - "}_": 2403, - "bum": 2404, - "vir": 2405, - "ées": 2406, - "▁record": 2407, - "tain": 2408, - "lem": 2409, - "ital": 2410, - "▁imp": 2411, - "ego": 2412, - "▁od": 2413, - "▁rece": 2414, - "mit": 2415, - "ffic": 2416, - "stackoverflow": 2417, - "ieve": 2418, - "▁З": 2419, - "▁nov": 2420, - "це": 2421, - "▁Intern": 2422, - "bu": 2423, - "▁sugg": 2424, - "▁loop": 2425, - "ride": 2426, - "▁$(": 2427, - "▁super": 2428, - "rid": 2429, - "ных": 2430, - "▁Per": 2431, - "▁dom": 2432, - "='": 2433, - "utsch": 2434, - "len": 2435, - "▁write": 2436, - "▁inv": 2437, - "outh": 2438, - "▁Her": 2439, - "▁years": 2440, - "▁original": 2441, - "ega": 2442, - "▁Ste": 2443, - "▁seems": 2444, - "ég": 2445, - "▁next": 2446, - "eder": 2447, - "▁Ne": 2448, - "avas": 2449, - "ification": 2450, - "Exception": 2451, - "▁Der": 2452, - "▁ve": 2453, - "atic": 2454, - "hat": 2455, - "brary": 2456, - "return": 2457, - "urch": 2458, - "ision": 2459, - "mi": 2460, - "oint": 2461, - "▁day": 2462, - "iction": 2463, - "ál": 2464, - "▁és": 2465, - "▁though": 2466, - "action": 2467, - "ít": 2468, - "ungen": 2469, - "ours": 2470, - "▁script": 2471, - "▁information": 2472, - "▁multi": 2473, - "▁\\\\": 2474, - "ster": 2475, - "ке": 2476, - "AC": 2477, - "cies": 2478, - "▁display": 2479, - "oman": 2480, - "Time": 2481, - "ius": 2482, - "));": 2483, - "tre": 2484, - "▁lim": 2485, - "ately": 2486, - "éd": 2487, - "iste": 2488, - "▁са": 2489, - "post": 2490, - "uel": 2491, - "img": 2492, - "▁ч": 2493, - "ска": 2494, - "eld": 2495, - "pper": 2496, - "ula": 2497, - "▁general": 2498, - "Al": 2499, - "Form": 2500, - "▁upon": 2501, - "zo": 2502, - "amente": 2503, - "▁prom": 2504, - "▁ü": 2505, - "lex": 2506, - "▁turn": 2507, - "▁ме": 2508, - "ention": 2509, - "лен": 2510, - "▁af": 2511, - "icle": 2512, - "ств": 2513, - "▁Fil": 2514, - "▁Ф": 2515, - "avascript": 2516, - "Man": 2517, - "ara": 2518, - "ware": 2519, - "align": 2520, - "angle": 2521, - "▁Sc": 2522, - "unic": 2523, - "▁fran": 2524, - "Un": 2525, - "zi": 2526, - "met": 2527, - "Add": 2528, - "▁pub": 2529, - "ков": 2530, - "▁gen": 2531, - "▁pod": 2532, - "▁sum": 2533, - "▁having": 2534, - "▁avec": 2535, - "sl": 2536, - "▁fig": 2537, - "▁Res": 2538, - "Date": 2539, - "ules": 2540, - "with": 2541, - "ский": 2542, - "gu": 2543, - "ET": 2544, - "▁bro": 2545, - "rie": 2546, - "aps": 2547, - "ending": 2548, - "mail": 2549, - "ook": 2550, - "▁success": 2551, - "berg": 2552, - "▁deb": 2553, - "elta": 2554, - "()`": 2555, - "ential": 2556, - "frame": 2557, - "Key": 2558, - "inn": 2559, - "▁simple": 2560, - "ival": 2561, - "▁care": 2562, - "▁Web": 2563, - "\").": 2564, - ">": 2900, - "ko": 2901, - "▁exper": 2902, - "▁separ": 2903, - "yl": 2904, - "ourn": 2905, - "▁dev": 2906, - "▁auch": 2907, - "▁block": 2908, - "book": 2909, - "▁map": 2910, - "illa": 2911, - "▁comput": 2912, - "▁space": 2913, - "result": 2914, - ")}": 2915, - "▁echo": 2916, - "config": 2917, - "hi": 2918, - "▁large": 2919, - "▁width": 2920, - "▁Go": 2921, - "mat": 2922, - "▁diff": 2923, - "▁kind": 2924, - "ances": 2925, - "ynam": 2926, - "▁color": 2927, - "Int": 2928, - "sol": 2929, - "▁pi": 2930, - "▁character": 2931, - "oment": 2932, - "▁response": 2933, - "igma": 2934, - "wards": 2935, - "arrow": 2936, - "су": 2937, - "ties": 2938, - "▁über": 2939, - "Image": 2940, - "yd": 2941, - "▁пере": 2942, - "▁node": 2943, - "▁item": 2944, - "achine": 2945, - "ima": 2946, - "▁va": 2947, - "▁approach": 2948, - "▁wer": 2949, - "▁че": 2950, - "On": 2951, - "ollow": 2952, - "она": 2953, - "cted": 2954, - "ured": 2955, - "Controller": 2956, - "lied": 2957, - "▁jo": 2958, - "▁dal": 2959, - "unk": 2960, - "▁î": 2961, - "start": 2962, - "ola": 2963, - "▁compon": 2964, - "IC": 2965, - "bit": 2966, - "▁base": 2967, - "пу": 2968, - "▁idea": 2969, - "▁dire": 2970, - "▁rad": 2971, - "group": 2972, - "▁With": 2973, - "server": 2974, - "side": 2975, - "sing": 2976, - "▁dies": 2977, - "▁near": 2978, - "▁voor": 2979, - "▁argument": 2980, - "▁},": 2981, - "▁land": 2982, - "▁names": 2983, - "▁option": 2984, - "ithub": 2985, - "pped": 2986, - "aug": 2987, - "▁links": 2988, - "▁full": 2989, - "▁situ": 2990, - "▁console": 2991, - "▁etc": 2992, - "aux": 2993, - "▁Cor": 2994, - "icrosoft": 2995, - "▁came": 2996, - "local": 2997, - "▁known": 2998, - "▁multiple": 2999, - "anguage": 3000, - "▁total": 3001, - "ology": 3002, - "ät": 3003, - "▁Х": 3004, - "▁fre": 3005, - "▁ten": 3006, - "ideo": 3007, - "▁bes": 3008, - "true": 3009, - "Query": 3010, - "omm": 3011, - "▁Art": 3012, - "▁keep": 3013, - "▁University": 3014, - "reate": 3015, - "pport": 3016, - "▁python": 3017, - "tra": 3018, - "ector": 3019, - "рі": 3020, - "oph": 3021, - "▁conc": 3022, - "▁four": 3023, - "viron": 3024, - "▁via": 3025, - "?\"": 3026, - "image": 3027, - "oll": 3028, - "ные": 3029, - "▁context": 3030, - "▁sem": 3031, - "._": 3032, - "▁eng": 3033, - "mar": 3034, - "AD": 3035, - "▁mor": 3036, - "▁Cal": 3037, - "▁cell": 3038, - "imal": 3039, - "ATE": 3040, - "▁inf": 3041, - "ön": 3042, - "uffer": 3043, - "sq": 3044, - "....": 3045, - "▁zur": 3046, - "With": 3047, - "ран": 3048, - "chn": 3049, - "▁door": 3050, - "content": 3051, - "▁miss": 3052, - "▁simp": 3053, - "ár": 3054, - "ira": 3055, - "▁hat": 3056, - "Test": 3057, - "▁certain": 3058, - "NS": 3059, - "▁cho": 3060, - "▁adv": 3061, - "where": 3062, - "▁looking": 3063, - "▁times": 3064, - "них": 3065, - "uto": 3066, - "▁É": 3067, - "can": 3068, - "host": 3069, - "▁(*": 3070, - "loat": 3071, - "▁nicht": 3072, - "Field": 3073, - "burg": 3074, - "const": 3075, - "ades": 3076, - "▁Mus": 3077, - "▁nothing": 3078, - "▁incre": 3079, - "▁Min": 3080, - "▁power": 3081, - "▁American": 3082, - "ln": 3083, - "valid": 3084, - "ungs": 3085, - "▁National": 3086, - "▁San": 3087, - "▁York": 3088, - "Request": 3089, - "char": 3090, - "▁Ze": 3091, - "button": 3092, - "▁alg": 3093, - "SON": 3094, - "▁ap": 3095, - "uff": 3096, - "ability": 3097, - "ем": 3098, - "▁anything": 3099, - "ela": 3100, - "())": 3101, - "ба": 3102, - "ampion": 3103, - "▁pot": 3104, - "▁fut": 3105, - "ailable": 3106, - "▁prop": 3107, - "\"]": 3108, - "▁less": 3109, - "lag": 3110, - "▁August": 3111, - "It": 3112, - "▁please": 3113, - "▁style": 3114, - "▁Also": 3115, - "bt": 3116, - "▁probably": 3117, - "▁One": 3118, - "▁poss": 3119, - "UI": 3120, - "uit": 3121, - "▁West": 3122, - "hn": 3123, - "+\\": 3124, - "Button": 3125, - "json": 3126, - "err": 3127, - "rame": 3128, - "dom": 3129, - "ilon": 3130, - "alf": 3131, - "▁client": 3132, - "▁continu": 3133, - "xml": 3134, - "pec": 3135, - "ador": 3136, - "ls": 3137, - "▁however": 3138, - "▁Any": 3139, - "änd": 3140, - "mathrm": 3141, - "▁url": 3142, - "▁book": 3143, - "▁gl": 3144, - "ives": 3145, - "gi": 3146, - "▁tro": 3147, - "▁US": 3148, - "point": 3149, - "open": 3150, - "▁cur": 3151, - "▁era": 3152, - "▁particular": 3153, - "▁HT": 3154, - "oot": 3155, - "ello": 3156, - "lobal": 3157, - "▁action": 3158, - "▁Int": 3159, - "▁include": 3160, - "▁elements": 3161, - "ная": 3162, - "ards": 3163, - "▁Bl": 3164, - "▁hum": 3165, - "from": 3166, - "change": 3167, - "▁functions": 3168, - "hen": 3169, - "Service": 3170, - "▁height": 3171, - "▁Land": 3172, - "ias": 3173, - "gs": 3174, - "ión": 3175, - "лов": 3176, - "node": 3177, - ".”": 3178, - "hand": 3179, - "▁бу": 3180, - "▁amb": 3181, - "▁Lu": 3182, - "▁throw": 3183, - "▁mot": 3184, - "▁Act": 3185, - "▁world": 3186, - "_\\": 3187, - "base": 3188, - "▁Co": 3189, - "▁arch": 3190, - "▁####": 3191, - "ged": 3192, - "pril": 3193, - "older": 3194, - "Model": 3195, - "▁several": 3196, - "lie": 3197, - "check": 3198, - "]{": 3199, - "cons": 3200, - "▁Tra": 3201, - "heck": 3202, - "▁least": 3203, - "down": 3204, - "ebru": 3205, - "Def": 3206, - "param": 3207, - "ischer": 3208, - "▁cas": 3209, - "CH": 3210, - "▁address": 3211, - "▁раз": 3212, - "ufen": 3213, - "urope": 3214, - "ей": 3215, - "▁bound": 3216, - "CO": 3217, - "▁Ang": 3218, - "▁Ma": 3219, - "Index": 3220, - "core": 3221, - "ouch": 3222, - "atabase": 3223, - "ribution": 3224, - "document": 3225, - "Le": 3226, - "}_{": 3227, - "vern": 3228, - "▁statement": 3229, - "▁Brit": 3230, - "ono": 3231, - "psilon": 3232, - "▁level": 3233, - "▁product": 3234, - "IS": 3235, - "▁course": 3236, - "▁Mr": 3237, - ">\r": 3238, - "▁background": 3239, - "▁ret": 3240, - "ering": 3241, - "most": 3242, - "сько": 3243, - "▁thread": 3244, - "itional": 3245, - "ites": 3246, - "Pl": 3247, - "▁dos": 3248, - "ga": 3249, - "day": 3250, - "▁Gener": 3251, - "▁tw": 3252, - "Ad": 3253, - "\"><": 3254, - "▁($": 3255, - "▁moment": 3256, - "title": 3257, - "create": 3258, - "version": 3259, - "Manager": 3260, - "▁fur": 3261, - "pping": 3262, - "ijn": 3263, - "ос": 3264, - "▁rather": 3265, - "ptember": 3266, - "OS": 3267, - "▁site": 3268, - "▁caus": 3269, - "ani": 3270, - "▁home": 3271, - "мі": 3272, - "▁short": 3273, - "pa": 3274, - "▁lead": 3275, - "ished": 3276, - "cing": 3277, - "ording": 3278, - "▁prote": 3279, - "сле": 3280, - "LECT": 3281, - "▁didn": 3282, - "position": 3283, - "\",\"": 3284, - "(),": 3285, - "trans": 3286, - "▁lot": 3287, - "▁од": 3288, - "AS": 3289, - "▁sat": 3290, - "▁points": 3291, - "github": 3292, - "style": 3293, - "▁году": 3294, - "▁Dis": 3295, - "ponent": 3296, - "omet": 3297, - "zer": 3298, - "ULL": 3299, - "▁pa": 3300, - "AP": 3301, - "aces": 3302, - "▁United": 3303, - "ama": 3304, - "ety": 3305, - "Color": 3306, - "▁enough": 3307, - "US": 3308, - "▁length": 3309, - "());": 3310, - "^{\\": 3311, - "fty": 3312, - "Box": 3313, - "apter": 3314, - "▁complet": 3315, - "ник": 3316, - "max": 3317, - "object": 3318, - "({": 3319, - "imgur": 3320, - "itive": 3321, - "unch": 3322, - "▁Sub": 3323, - "ende": 3324, - "гу": 3325, - "ategory": 3326, - "ты": 3327, - "iano": 3328, - "▁upd": 3329, - "▁Aust": 3330, - "}{\\": 3331, - "top": 3332, - "las": 3333, - "pis": 3334, - "iness": 3335, - "▁{\r": 3336, - "▁Е": 3337, - "Gr": 3338, - "▁AS": 3339, - "▁ве": 3340, - "thers": 3341, - "▁defined": 3342, - "azione": 3343, - "▁offic": 3344, - "▁autom": 3345, - "ün": 3346, - "▁brow": 3347, - "▁serv": 3348, - "▁remove": 3349, - "iro": 3350, - "▁Bibli": 3351, - "ED": 3352, - "▁whole": 3353, - "▁ш": 3354, - "▁Java": 3355, - "▁zum": 3356, - "ua": 3357, - "pm": 3358, - "dev": 3359, - "кра": 3360, - "olds": 3361, - "▁War": 3362, - "än": 3363, - "pass": 3364, - "uz": 3365, - "[\"": 3366, - "▁tri": 3367, - "ised": 3368, - "ха": 3369, - "▁memory": 3370, - "▁Port": 3371, - "oper": 3372, - "Up": 3373, - "▁Thank": 3374, - "▁Mich": 3375, - "ych": 3376, - "board": 3377, - "бу": 3378, - "Inst": 3379, - "▁begin": 3380, - "ination": 3381, - "▁Mod": 3382, - "_,": 3383, - "▁Den": 3384, - "option": 3385, - "▁construct": 3386, - "▁Just": 3387, - "Map": 3388, - "run": 3389, - "▁respect": 3390, - "ham": 3391, - "ман": 3392, - "imedia": 3393, - "▁apply": 3394, - "cription": 3395, - "main": 3396, - "▁Ка": 3397, - "oid": 3398, - "Code": 3399, - "};": 3400, - "Info": 3401, - "▁format": 3402, - "Log": 3403, - "▁су": 3404, - "▁lat": 3405, - "utor": 3406, - "▁reference": 3407, - "▁calcul": 3408, - "onn": 3409, - "Lo": 3410, - "infty": 3411, - "▁along": 3412, - "▁č": 3413, - "▁task": 3414, - "▁ev": 3415, - "theta": 3416, - "ras": 3417, - "jor": 3418, - "▁бо": 3419, - "▁princip": 3420, - "My": 3421, - "▁einer": 3422, - "▁Es": 3423, - "omb": 3424, - "quad": 3425, - "^{-": 3426, - "ump": 3427, - "▁till": 3428, - "ді": 3429, - "▁looks": 3430, - "▁ok": 3431, - "ца": 3432, - "nu": 3433, - "Fil": 3434, - "▁sont": 3435, - "▁Med": 3436, - "ague": 3437, - "▁cost": 3438, - "▁Sim": 3439, - "▁comment": 3440, - "▁(\\": 3441, - "egen": 3442, - "▁parameter": 3443, - "▁France": 3444, - "rep": 3445, - "▁TH": 3446, - "▁yet": 3447, - "▁away": 3448, - "▁circ": 3449, - "▁API": 3450, - "emp": 3451, - "ві": 3452, - "Layout": 3453, - "▁lines": 3454, - "▁Part": 3455, - "empt": 3456, - "▁Bi": 3457, - "▁mind": 3458, - "ky": 3459, - "ging": 3460, - "▁report": 3461, - "▁Add": 3462, - "род": 3463, - "▁range": 3464, - "cias": 3465, - "lip": 3466, - "▁Kar": 3467, - "▁Commons": 3468, - "gerufen": 3469, - "aff": 3470, - "sec": 3471, - "▁html": 3472, - "lig": 3473, - "▁window": 3474, - "inition": 3475, - "cis": 3476, - "▁ut": 3477, - "eln": 3478, - "▁aux": 3479, - "▁neg": 3480, - "Hand": 3481, - "▁);": 3482, - "▁anal": 3483, - "▁fri": 3484, - "▁си": 3485, - "etch": 3486, - "md": 3487, - "page": 3488, - "▁library": 3489, - "▁:=": 3490, - "ROM": 3491, - "You": 3492, - "space": 3493, - "▁durch": 3494, - "▁host": 3495, - "aven": 3496, - "▁File": 3497, - "alle": 3498, - "тив": 3499, - "▁pap": 3500, - "ство": 3501, - "mark": 3502, - "▁mais": 3503, - "erman": 3504, - "Size": 3505, - "ек": 3506, - "▁Ма": 3507, - "▁isn": 3508, - "▁copy": 3509, - "sten": 3510, - "river": 3511, - "▁went": 3512, - "▁javascript": 3513, - "▁sam": 3514, - "▁frame": 3515, - "▁vi": 3516, - "▁previous": 3517, - "rodu": 3518, - "▁methods": 3519, - "▁necess": 3520, - "NA": 3521, - "cket": 3522, - "▁opt": 3523, - "Loc": 3524, - "how": 3525, - "▁în": 3526, - "ship": 3527, - "▁itself": 3528, - "▁Please": 3529, - "iene": 3530, - "вер": 3531, - "▁<<": 3532, - "▁mill": 3533, - "▁trad": 3534, - "pace": 3535, - "▁Har": 3536, - "iten": 3537, - "wise": 3538, - "write": 3539, - "ции": 3540, - "ры": 3541, - "Line": 3542, - "olo": 3543, - "▁accept": 3544, - "height": 3545, - "▁elect": 3546, - "ella": 3547, - "▁på": 3548, - "Select": 3549, - "▁ли": 3550, - "▁\\<": 3551, - "((": 3552, - "▁ID": 3553, - "ops": 3554, - "ван": 3555, - "ió": 3556, - "TP": 3557, - "»,": 3558, - "nection": 3559, - "parent": 3560, - "▁Mag": 3561, - "Table": 3562, - "Over": 3563, - "▁network": 3564, - "спо": 3565, - "▁assign": 3566, - "igger": 3567, - "irm": 3568, - ")`": 3569, - "ottom": 3570, - "beta": 3571, - "▁dell": 3572, - "▁body": 3573, - "▁да": 3574, - "▁Your": 3575, - "▁fue": 3576, - "▁package": 3577, - "▁light": 3578, - "▁**": 3579, - "MP": 3580, - "▁cou": 3581, - "yes": 3582, - ":\\": 3583, - "▁Ч": 3584, - "▁mention": 3585, - "ensch": 3586, - "▁deg": 3587, - "▁convert": 3588, - "▁Dav": 3589, - "adt": 3590, - "Result": 3591, - "though": 3592, - "▁bus": 3593, - "xy": 3594, - "▁seen": 3595, - "All": 3596, - "public": 3597, - "ively": 3598, - "▁Rec": 3599, - "▁His": 3600, - "sim": 3601, - "▁för": 3602, - "▁histor": 3603, - "▁sett": 3604, - "rat": 3605, - "abled": 3606, - "▁»,": 3607, - "google": 3608, - "Web": 3609, - "él": 3610, - "▁title": 3611, - "▁Janu": 3612, - "ја": 3613, - "▁took": 3614, - "iden": 3615, - "sz": 3616, - "▁Get": 3617, - "▁objects": 3618, - "▁common": 3619, - "▁changes": 3620, - "▁Lond": 3621, - "▁extern": 3622, - "▁ju": 3623, - "Is": 3624, - "▁available": 3625, - "tri": 3626, - "▁más": 3627, - "osa": 3628, - "Be": 3629, - "▁Data": 3630, - "ural": 3631, - "▁hom": 3632, - "▁account": 3633, - "oo": 3634, - "▁perm": 3635, - "respond": 3636, - "yt": 3637, - "▁send": 3638, - "▁returns": 3639, - "ivid": 3640, - "▁expla": 3641, - "ín": 3642, - "▁nor": 3643, - "If": 3644, - "▁From": 3645, - "▁target": 3646, - "fect": 3647, - "ент": 3648, - "▁uit": 3649, - "▁Jo": 3650, - "▁variables": 3651, - "▁series": 3652, - "▁func": 3653, - "▁himself": 3654, - "▁ча": 3655, - "anti": 3656, - "▁ach": 3657, - "ialog": 3658, - "▁std": 3659, - "ae": 3660, - "▁foot": 3661, - "▁unter": 3662, - "gress": 3663, - "Not": 3664, - "rad": 3665, - "fér": 3666, - "▁util": 3667, - "orem": 3668, - "▁sou": 3669, - "opt": 3670, - "▁og": 3671, - "▁uma": 3672, - "itar": 3673, - "▁Ok": 3674, - "ück": 3675, - "sqrt": 3676, - "▁ant": 3677, - "▁werden": 3678, - "år": 3679, - "});": 3680, - "▁Paris": 3681, - "▁exception": 3682, - "▁determ": 3683, - "▁Vol": 3684, - "▁Sam": 3685, - "▁ess": 3686, - "lies": 3687, - "ioni": 3688, - "oding": 3689, - "idget": 3690, - "▁pri": 3691, - "▁whether": 3692, - "▁под": 3693, - "▁numbers": 3694, - "▁~": 3695, - "event": 3696, - "▁shows": 3697, - "atures": 3698, - "▁house": 3699, - "▁face": 3700, - "▁się": 3701, - "vironment": 3702, - "van": 3703, - "▁including": 3704, - "▁<-": 3705, - "times": 3706, - "now": 3707, - "▁pur": 3708, - "ifier": 3709, - "▁emp": 3710, - "▁cla": 3711, - "mon": 3712, - "▁Das": 3713, - "ady": 3714, - "▁від": 3715, - "▁ц": 3716, - "abor": 3717, - "OST": 3718, - "▁band": 3719, - "▁ú": 3720, - "▁exactly": 3721, - "iert": 3722, - "avig": 3723, - "▁redu": 3724, - "▁SE": 3725, - "lished": 3726, - "Bu": 3727, - "Message": 3728, - "cell": 3729, - "fully": 3730, - "▁sv": 3731, - "▁makes": 3732, - "pol": 3733, - "▁required": 3734, - "ferrer": 3735, - "▁pers": 3736, - "▁mi": 3737, - "FI": 3738, - "▁Paul": 3739, - "▁UI": 3740, - "▁Bel": 3741, - "inc": 3742, - "▁contains": 3743, - "Out": 3744, - "asure": 3745, - "pu": 3746, - "oto": 3747, - "▁game": 3748, - "zn": 3749, - "▁Why": 3750, - "orith": 3751, - "big": 3752, - "кий": 3753, - "sigma": 3754, - "▁quite": 3755, - "▁jed": 3756, - "rec": 3757, - "▁SQL": 3758, - "бе": 3759, - "▁Mart": 3760, - "ya": 3761, - "▁school": 3762, - "▁simply": 3763, - "▁vor": 3764, - "▁double": 3765, - "рав": 3766, - "▁Str": 3767, - "iem": 3768, - "▁album": 3769, - "▁resol": 3770, - "▁dei": 3771, - "▁Wik": 3772, - "▁aw": 3773, - "umb": 3774, - "ols": 3775, - "▁*/": 3776, - "▁ze": 3777, - "▁anim": 3778, - "/>": 3779, - "ris": 3780, - "resh": 3781, - "No": 3782, - "iques": 3783, - "current": 3784, - "▁period": 3785, - "▁April": 3786, - "▁store": 3787, - "','": 3788, - "▁Set": 3789, - "={": 3790, - "ached": 3791, - "▁Mal": 3792, - "▁Pal": 3793, - "antes": 3794, - "aterial": 3795, - "▁worked": 3796, - "leq": 3797, - "oreferrer": 3798, - "▁happen": 3799, - "▁box": 3800, - "ney": 3801, - "▁close": 3802, - "▁gran": 3803, - "▁lie": 3804, - "▁ir": 3805, - "▁expected": 3806, - "▁для": 3807, - "click": 3808, - "și": 3809, - "▁parte": 3810, - "ogn": 3811, - "▁Form": 3812, - "▁memb": 3813, - "▁plan": 3814, - "▁team": 3815, - "][": 3816, - "▁commun": 3817, - "orry": 3818, - "ency": 3819, - "gl": 3820, - "inary": 3821, - "cdot": 3822, - "^\\": 3823, - "▁First": 3824, - "ander": 3825, - "▁Dec": 3826, - "request": 3827, - "ства": 3828, - "▁structure": 3829, - "▁||": 3830, - "▁Comp": 3831, - "actory": 3832, - "▁Mil": 3833, - "▁Some": 3834, - "Stream": 3835, - "▁assum": 3836, - "uen": 3837, - "▁words": 3838, - "▁September": 3839, - "▁Ко": 3840, - "▁days": 3841, - "ories": 3842, - "став": 3843, - "sm": 3844, - "vin": 3845, - "partial": 3846, - "▁parent": 3847, - "oj": 3848, - "нии": 3849, - "!\"": 3850, - "ugin": 3851, - "▁Windows": 3852, - "Ed": 3853, - ":}": 3854, - "▁q": 3855, - "▁ben": 3856, - "iana": 3857, - "▁label": 3858, - "state": 3859, - "uted": 3860, - "▁()": 3861, - "▁сво": 3862, - "▁edit": 3863, - "uring": 3864, - "▁NS": 3865, - "▁Jahr": 3866, - "▁provide": 3867, - "He": 3868, - "▁Yes": 3869, - "anel": 3870, - "ename": 3871, - "▁Don": 3872, - "isk": 3873, - "gra": 3874, - "elij": 3875, - "▁root": 3876, - "*/": 3877, - "▁Fre": 3878, - "▁Mor": 3879, - "used": 3880, - "range": 3881, - "▁tamb": 3882, - "▁module": 3883, - "▁directory": 3884, - "ounds": 3885, - "Activity": 3886, - "▁mu": 3887, - "info": 3888, - "▁free": 3889, - "orge": 3890, - "tab": 3891, - ")=": 3892, - "lang": 3893, - "▁ос": 3894, - "▁FROM": 3895, - "▁enter": 3896, - "▁became": 3897, - "idae": 3898, - "хи": 3899, - "▁States": 3900, - "verse": 3901, - "▁expl": 3902, - "ynt": 3903, - "UN": 3904, - "ee": 3905, - "endent": 3906, - "▁making": 3907, - "▁\"$": 3908, - "uni": 3909, - "quence": 3910, - "▁lui": 3911, - "HT": 3912, - "▁uses": 3913, - "zie": 3914, - "nia": 3915, - "Content": 3916, - "▁Count": 3917, - "▁standard": 3918, - "ENT": 3919, - "▁кон": 3920, - "fort": 3921, - "adas": 3922, - "зу": 3923, - "System": 3924, - "▁Sw": 3925, - "▁ever": 3926, - "LO": 3927, - "▁correspond": 3928, - "▁Po": 3929, - "argin": 3930, - "кт": 3931, - "ій": 3932, - "▁remain": 3933, - "cio": 3934, - "▁actual": 3935, - "сту": 3936, - "▁sind": 3937, - "▁Pe": 3938, - "▁changed": 3939, - "▁Note": 3940, - "skie": 3941, - "▁family": 3942, - "ità": 3943, - "cos": 3944, - "txt": 3945, - "ker": 3946, - "ceed": 3947, - "▁arr": 3948, - "▁cam": 3949, - "izer": 3950, - "▁Dan": 3951, - "hel": 3952, - "icult": 3953, - "HP": 3954, - "iler": 3955, - "▁Sal": 3956, - "▁connection": 3957, - "usion": 3958, - "kn": 3959, - "RI": 3960, - "▁vom": 3961, - "Listener": 3962, - "▁ö": 3963, - "▁dim": 3964, - "▁press": 3965, - "▁esc": 3966, - "▁Try": 3967, - "atalog": 3968, - "▁thanks": 3969, - "DO": 3970, - "▁written": 3971, - "dir": 3972, - "rew": 3973, - "▁fire": 3974, - "▁Nach": 3975, - "▁á": 3976, - "enc": 3977, - "▁origin": 3978, - "▁November": 3979, - "▁};": 3980, - "Count": 3981, - "▁За": 3982, - "▁graph": 3983, - "▁mis": 3984, - "▁External": 3985, - "▁▁▁▁▁▁▁▁▁": 3986, - "▁options": 3987, - "▁URL": 3988, - "▁php": 3989, - "▁integr": 3990, - "Config": 3991, - "▁Text": 3992, - "inner": 3993, - "▁crit": 3994, - ",”": 3995, - "▁tog": 3996, - "$$": 3997, - "nof": 3998, - "▁ses": 3999, - "ühr": 4000, - "▁Since": 4001, - "Des": 4002, - "ube": 4003, - "▁section": 4004, - "▁gi": 4005, - "ford": 4006, - "▁Ass": 4007, - "ainer": 4008, - "ttp": 4009, - "▁behav": 4010, - "ports": 4011, - "draw": 4012, - "This": 4013, - "ranch": 4014, - "inding": 4015, - "▁estab": 4016, - "▁obtain": 4017, - "rich": 4018, - "licit": 4019, - "ев": 4020, - "▁qual": 4021, - "▁za": 4022, - "▁har": 4023, - "▁fac": 4024, - "aar": 4025, - "jet": 4026, - "icles": 4027, - "▁Aus": 4028, - "▁hor": 4029, - "▁remov": 4030, - "▁wie": 4031, - "Client": 4032, - "▁natur": 4033, - "hip": 4034, - "Sub": 4035, - "▁random": 4036, - "DF": 4037, - "▁area": 4038, - "tag": 4039, - "Pr": 4040, - "▁Ital": 4041, - "▁roku": 4042, - "nofollow": 4043, - "*}": 4044, - "▁others": 4045, - "▁limit": 4046, - "▁sil": 4047, - "▁sav": 4048, - "▁often": 4049, - "▁render": 4050, - "DB": 4051, - "▁Mc": 4052, - "▁zijn": 4053, - "жен": 4054, - "▁tag": 4055, - "ming": 4056, - "lichen": 4057, - "pack": 4058, - "▁Ag": 4059, - "▁sense": 4060, - "pg": 4061, - "Method": 4062, - "aged": 4063, - "ág": 4064, - "ła": 4065, - "▁interest": 4066, - "▁associ": 4067, - "volution": 4068, - "▁empty": 4069, - "iche": 4070, - "▁gro": 4071, - "▁types": 4072, - "▁Sie": 4073, - "Inter": 4074, - "▁noreferrer": 4075, - "▁gives": 4076, - "hal": 4077, - "▁save": 4078, - "▁font": 4079, - "ruction": 4080, - "Script": 4081, - "▁alla": 4082, - "▁says": 4083, - "▁fu": 4084, - "ape": 4085, - "▁language": 4086, - "iger": 4087, - "▁King": 4088, - "bor": 4089, - "uv": 4090, - "▁shall": 4091, - "▁Europe": 4092, - "▁einem": 4093, - "▁water": 4094, - "▁govern": 4095, - "anz": 4096, - "ators": 4097, - "▁month": 4098, - "ye": 4099, - "▁important": 4100, - "atz": 4101, - "first": 4102, - "▁Trans": 4103, - "▁Mad": 4104, - "▁bra": 4105, - "ika": 4106, - "▁Saint": 4107, - "oria": 4108, - "kre": 4109, - "ements": 4110, - "▁Ben": 4111, - "lav": 4112, - "▁admin": 4113, - "▁Hen": 4114, - "ril": 4115, - "▁Sm": 4116, - "cat": 4117, - "▁Refer": 4118, - "▁Ш": 4119, - "▁pract": 4120, - "▁Pat": 4121, - "▁Gre": 4122, - "▁young": 4123, - "▁Inter": 4124, - "oma": 4125, - "teger": 4126, - "ibility": 4127, - "▁parameters": 4128, - "▁everything": 4129, - "dat": 4130, - "urop": 4131, - "olean": 4132, - "▁returned": 4133, - "▁Class": 4134, - "acy": 4135, - "####": 4136, - "▁př": 4137, - "▁folder": 4138, - "▁kon": 4139, - "▁guess": 4140, - "gt": 4141, - "jen": 4142, - "annel": 4143, - "icon": 4144, - "▁comb": 4145, - "rict": 4146, - "▁hij": 4147, - "▁author": 4148, - "see": 4149, - "here": 4150, - "stra": 4151, - "▁entire": 4152, - "▁directly": 4153, - "raft": 4154, - "heet": 4155, - "ester": 4156, - "▁ми": 4157, - "▁mass": 4158, - "untu": 4159, - "▁users": 4160, - "chi": 4161, - "PE": 4162, - "▁component": 4163, - "Click": 4164, - "Att": 4165, - "▁sobre": 4166, - "ands": 4167, - "▁Hol": 4168, - "▁Sant": 4169, - "ori": 4170, - "▁sua": 4171, - "std": 4172, - "entic": 4173, - "CC": 4174, - "▁filter": 4175, - "SQL": 4176, - "▁God": 4177, - "At": 4178, - "▁му": 4179, - "▁performance": 4180, - "delta": 4181, - "ande": 4182, - "amer": 4183, - "ды": 4184, - "▁cult": 4185, - "▁Nor": 4186, - "but": 4187, - "▁lik": 4188, - "********": 4189, - "ствен": 4190, - "▁comme": 4191, - "▁dr": 4192, - "imer": 4193, - "ordin": 4194, - "▁condition": 4195, - "este": 4196, - "([": 4197, - "FF": 4198, - "ться": 4199, - "imo": 4200, - "rab": 4201, - "іль": 4202, - "▁half": 4203, - "each": 4204, - "Dis": 4205, - "▁rows": 4206, - "▁hon": 4207, - "▁together": 4208, - "▁și": 4209, - "medi": 4210, - "agn": 4211, - "alled": 4212, - "▁vill": 4213, - "ING": 4214, - "idden": 4215, - "▁draw": 4216, - "yntax": 4217, - "▁attempt": 4218, - "URL": 4219, - "pose": 4220, - "▁indic": 4221, - "ника": 4222, - "▁English": 4223, - "▁déc": 4224, - "▁needs": 4225, - "▁normal": 4226, - "urt": 4227, - "▁но": 4228, - "}}\\": 4229, - "last": 4230, - "▁Fin": 4231, - "▁Febru": 4232, - "ila": 4233, - "▁country": 4234, - "▁fields": 4235, - "▁max": 4236, - "lés": 4237, - "owie": 4238, - "▁deux": 4239, - "▁built": 4240, - "▁Main": 4241, - "▁camp": 4242, - "ivo": 4243, - "iva": 4244, - "icy": 4245, - "zione": 4246, - "Node": 4247, - "▁:)": 4248, - "▁among": 4249, - "▁Ob": 4250, - "▁cases": 4251, - "haps": 4252, - "sers": 4253, - "arter": 4254, - "ści": 4255, - "▁iter": 4256, - "▁named": 4257, - "exec": 4258, - "▁season": 4259, - "tot": 4260, - "=>": 4261, - "graph": 4262, - "▁nil": 4263, - "acional": 4264, - "▁NULL": 4265, - "▁special": 4266, - "сте": 4267, - "css": 4268, - "▁\\(": 4269, - "vs": 4270, - "ael": 4271, - "▁city": 4272, - "ova": 4273, - "▁article": 4274, - "▁South": 4275, - "Action": 4276, - "ça": 4277, - "spring": 4278, - "itude": 4279, - "▁complex": 4280, - "▁что": 4281, - "build": 4282, - "gamma": 4283, - "▁Ent": 4284, - "iers": 4285, - "'.": 4286, - "car": 4287, - "apache": 4288, - "ingen": 4289, - "Input": 4290, - ": ": 4291, - "▁dynam": 4292, - "alls": 4293, - "show": 4294, - "|\\": 4295, - "▁wird": 4296, - "Bar": 4297, - "alth": 4298, - "model": 4299, - "Trans": 4300, - "Row": 4301, - "abe": 4302, - "▁lib": 4303, - "null": 4304, - "ragment": 4305, - "▁State": 4306, - "▁law": 4307, - "Frame": 4308, - "▁Lo": 4309, - "geb": 4310, - "}$.": 4311, - "▁needed": 4312, - "▁contr": 4313, - "aries": 4314, - "▁screen": 4315, - "yr": 4316, - "mm": 4317, - "▁shown": 4318, - "▁bad": 4319, - "▁cast": 4320, - "▁Test": 4321, - "▁Auf": 4322, - "▁quant": 4323, - "iga": 4324, - "▁ren": 4325, - "▁Mac": 4326, - "▁transform": 4327, - "▁difference": 4328, - "▁tit": 4329, - "TE": 4330, - "▁step": 4331, - "▁capt": 4332, - "▁collection": 4333, - "ictionary": 4334, - "▁Tom": 4335, - "rier": 4336, - "▁move": 4337, - "cope": 4338, - "ords": 4339, - "▁further": 4340, - "▁columns": 4341, - "▁Lin": 4342, - "▁fixed": 4343, - "▁children": 4344, - "MS": 4345, - "mo": 4346, - "una": 4347, - "▁individ": 4348, - "tty": 4349, - "aste": 4350, - "src": 4351, - "match": 4352, - "wi": 4353, - "▁х": 4354, - "▁ди": 4355, - "▁ord": 4356, - "iving": 4357, - "▁Bro": 4358, - "▁almost": 4359, - "▁Pres": 4360, - "reci": 4361, - "aring": 4362, - "▁///": 4363, - "ется": 4364, - "▁sig": 4365, - "light": 4366, - "▁Red": 4367, - "▁suggest": 4368, - "olf": 4369, - "▁été": 4370, - "isation": 4371, - "зна": 4372, - "New": 4373, - "стан": 4374, - "LA": 4375, - "unicip": 4376, - "▁figure": 4377, - "mt": 4378, - "iale": 4379, - "▁catch": 4380, - "default": 4381, - "▁tele": 4382, - "▁matter": 4383, - "cast": 4384, - "▁Rich": 4385, - "▁handle": 4386, - "valu": 4387, - "$-": 4388, - "об": 4389, - "▁json": 4390, - "Create": 4391, - "▁exam": 4392, - "аль": 4393, - "ют": 4394, - "ored": 4395, - "idos": 4396, - "append": 4397, - "▁Array": 4398, - "кс": 4399, - "}[": 4400, - "rive": 4401, - "▁club": 4402, - "mann": 4403, - "▁este": 4404, - "esta": 4405, - "▁Gi": 4406, - "▁Jap": 4407, - "▁Name": 4408, - "Column": 4409, - "oups": 4410, - "ismo": 4411, - "▁City": 4412, - "▁classes": 4413, - "▁infl": 4414, - "hl": 4415, - "ром": 4416, - "▁adding": 4417, - "▁fail": 4418, - "xx": 4419, - "ões": 4420, - "Sc": 4421, - "util": 4422, - "▁location": 4423, - "lege": 4424, - "ago": 4425, - "▁properties": 4426, - "abil": 4427, - "vas": 4428, - "}$,": 4429, - "itted": 4430, - "ód": 4431, - "▁Dem": 4432, - "▁asked": 4433, - "▁tab": 4434, - "Source": 4435, - "▁errors": 4436, - "ographie": 4437, - "▁жи": 4438, - "▁mal": 4439, - "stract": 4440, - "▁dro": 4441, - "rak": 4442, - "▁note": 4443, - "▁setting": 4444, - "▁fem": 4445, - "▁saw": 4446, - "iar": 4447, - "HER": 4448, - "ес": 4449, - "▁pred": 4450, - "▁Out": 4451, - "▁items": 4452, - "лан": 4453, - "▁werd": 4454, - "ersion": 4455, - "lia": 4456, - "▁sin": 4457, - "ichte": 4458, - "▁feel": 4459, - "▁пра": 4460, - "▁oder": 4461, - "UE": 4462, - "ocument": 4463, - "▁mode": 4464, - "▁Na": 4465, - "ден": 4466, - "mes": 4467, - "framework": 4468, - "▁auto": 4469, - "ным": 4470, - "uby": 4471, - "▁template": 4472, - "▁mess": 4473, - "ieder": 4474, - "▁related": 4475, - "oken": 4476, - "▁follows": 4477, - "search": 4478, - "ami": 4479, - "▁wait": 4480, - "igr": 4481, - "▁low": 4482, - "ских": 4483, - "ская": 4484, - "▁Mark": 4485, - "▁ill": 4486, - "amento": 4487, - "\\<": 4488, - "▁df": 4489, - "osition": 4490, - "▁Ви": 4491, - "isf": 4492, - "▁Deutsch": 4493, - "ahl": 4494, - "war": 4495, - "itect": 4496, - "▁sal": 4497, - "elen": 4498, - "ById": 4499, - "▁gru": 4500, - "sv": 4501, - "▁passed": 4502, - "▁añ": 4503, - "Sch": 4504, - "▁solve": 4505, - "weise": 4506, - "atos": 4507, - "▁meg": 4508, - "▁member": 4509, - "ername": 4510, - "▁connect": 4511, - "ips": 4512, - "▁round": 4513, - "▁]": 4514, - "nes": 4515, - "▁dir": 4516, - "▁London": 4517, - "dy": 4518, - "FA": 4519, - "▁received": 4520, - "reet": 4521, - "▁Log": 4522, - "▁School": 4523, - "ango": 4524, - "▁These": 4525, - "▁Mont": 4526, - "▁ener": 4527, - "lad": 4528, - "▁define": 4529, - "sign": 4530, - "▁cle": 4531, - "figure": 4532, - "▁View": 4533, - "textbf": 4534, - "$\\": 4535, - "зы": 4536, - "number": 4537, - "▁din": 4538, - "eller": 4539, - "orithm": 4540, - "false": 4541, - "fol": 4542, - "fficient": 4543, - "▁HTML": 4544, - "liche": 4545, - "▁Mo": 4546, - "▁introdu": 4547, - "exp": 4548, - "▁strong": 4549, - "▁thus": 4550, - "/)": 4551, - "▁ele": 4552, - "▁так": 4553, - "▁па": 4554, - "▁dont": 4555, - "▁cause": 4556, - "Number": 4557, - "▁images": 4558, - "▁sample": 4559, - "▁sci": 4560, - "like": 4561, - "▁Lou": 4562, - "div": 4563, - "anc": 4564, - "▁front": 4565, - "nen": 4566, - "▁missing": 4567, - "aria": 4568, - "pres": 4569, - "▁пред": 4570, - "DI": 4571, - "filter": 4572, - "▁Mit": 4573, - "UR": 4574, - "▁opp": 4575, - "▁sql": 4576, - "▁року": 4577, - "eren": 4578, - "emat": 4579, - "ís": 4580, - "▁Jean": 4581, - "éc": 4582, - "▁ci": 4583, - "enne": 4584, - "atform": 4585, - "▁taken": 4586, - "▁Of": 4587, - "▁насе": 4588, - "▁err": 4589, - "OP": 4590, - "From": 4591, - "Default": 4592, - "▁General": 4593, - "wiki": 4594, - "▁grand": 4595, - "▁einen": 4596, - "Reg": 4597, - "Handler": 4598, - "conom": 4599, - "anger": 4600, - "▁был": 4601, - "▁Los": 4602, - "▁expression": 4603, - "ша": 4604, - "yal": 4605, - "▁$('": 4606, - "▁switch": 4607, - "▁vector": 4608, - "▁Thom": 4609, - "▁virt": 4610, - "leased": 4611, - "▁cover": 4612, - "▁resp": 4613, - "ako": 4614, - "rench": 4615, - "ota": 4616, - "Cell": 4617, - "anged": 4618, - "▁+=": 4619, - "lac": 4620, - "ska": 4621, - "next": 4622, - "▁International": 4623, - "▁Wil": 4624, - "▁ont": 4625, - "ibr": 4626, - "ustr": 4627, - "▁black": 4628, - "▁selected": 4629, - "cher": 4630, - "▁liter": 4631, - "root": 4632, - "лся": 4633, - "▁Life": 4634, - "▁insert": 4635, - "▁matrix": 4636, - "ises": 4637, - ")]": 4638, - "▁pel": 4639, - "Override": 4640, - "rypt": 4641, - "▁former": 4642, - "▁Film": 4643, - "▁North": 4644, - "client": 4645, - "▁night": 4646, - "ходи": 4647, - "▁Austral": 4648, - "▁Ret": 4649, - "rho": 4650, - "▁пер": 4651, - "ipedia": 4652, - "▁express": 4653, - "▁third": 4654, - "▁major": 4655, - "▁grad": 4656, - "owe": 4657, - "▁believe": 4658, - "ournal": 4659, - "▁status": 4660, - "unc": 4661, - "▁dou": 4662, - "▁JSON": 4663, - "uis": 4664, - "▁population": 4665, - "enz": 4666, - "▁William": 4667, - "sf": 4668, - "▁Object": 4669, - "▁cin": 4670, - "▁Di": 4671, - "curity": 4672, - "▁Open": 4673, - "▁ле": 4674, - "lar": 4675, - "adding": 4676, - "▁kom": 4677, - "}(\\": 4678, - "▁kil": 4679, - "umer": 4680, - "\"/>": 4681, - "▁feature": 4682, - "▁Are": 4683, - "cks": 4684, - "▁Internet": 4685, - "▁ih": 4686, - "▁started": 4687, - "▁early": 4688, - "▁began": 4689, - "TH": 4690, - "python": 4691, - "asp": 4692, - "▁Fr": 4693, - "▁clos": 4694, - "istic": 4695, - "▁music": 4696, - "▁dig": 4697, - "▁ital": 4698, - "▁David": 4699, - "▁website": 4700, - "▁controller": 4701, - "▁Mer": 4702, - "context": 4703, - "product": 4704, - "osp": 4705, - "▁▁▁▁▁▁▁": 4706, - "▁jun": 4707, - "rown": 4708, - "▁Az": 4709, - "\":\"": 4710, - "▁aan": 4711, - "▁Date": 4712, - "mult": 4713, - "▁browser": 4714, - "ред": 4715, - "which": 4716, - "RA": 4717, - "quare": 4718, - "▁Russ": 4719, - "▁soon": 4720, - "▁Pre": 4721, - "tau": 4722, - "▁week": 4723, - "▁ба": 4724, - "▁oct": 4725, - "▁town": 4726, - "roy": 4727, - "▁els": 4728, - "blic": 4729, - "undle": 4730, - "▁Histor": 4731, - "▁foi": 4732, - "▁models": 4733, - "зо": 4734, - "onym": 4735, - "Param": 4736, - "▁Met": 4737, - "gener": 4738, - "ją": 4739, - "▁espe": 4740, - "CE": 4741, - "▁device": 4742, - "ellow": 4743, - "▁debug": 4744, - "érie": 4745, - "using": 4746, - "анг": 4747, - "▁*)": 4748, - "udi": 4749, - "▁Miss": 4750, - "ком": 4751, - "posed": 4752, - "▁zwe": 4753, - "ін": 4754, - "▁Robert": 4755, - "▁Oct": 4756, - "lop": 4757, - "jar": 4758, - "▁aver": 4759, - "▁habit": 4760, - "▁::": 4761, - "äng": 4762, - "Start": 4763, - "▁pow": 4764, - "▁src": 4765, - "▁pattern": 4766, - "▁Э": 4767, - "▁bi": 4768, - "otes": 4769, - "▁__": 4770, - "▁sens": 4771, - "▁avoid": 4772, - "example": 4773, - "utt": 4774, - "Label": 4775, - "tex": 4776, - "boot": 4777, - "esto": 4778, - "▁March": 4779, - "▁easy": 4780, - "icture": 4781, - "Group": 4782, - "▁father": 4783, - "▁updated": 4784, - "▁Vo": 4785, - "▁III": 4786, - "omega": 4787, - "▁alle": 4788, - "Rec": 4789, - "yg": 4790, - "зе": 4791, - "▁Dim": 4792, - "nect": 4793, - "▁Tor": 4794, - "▁deutsch": 4795, - "▁white": 4796, - "▁national": 4797, - "ppe": 4798, - "▁air": 4799, - "▁password": 4800, - "det": 4801, - "▁big": 4802, - "▁Use": 4803, - "call": 4804, - "▁extra": 4805, - "We": 4806, - "ania": 4807, - "▁hold": 4808, - "Control": 4809, - "▁CO": 4810, - "▁мі": 4811, - "iti": 4812, - "▁Ke": 4813, - "enu": 4814, - "▁Park": 4815, - "том": 4816, - "▁auth": 4817, - "▁center": 4818, - "Ph": 4819, - "тов": 4820, - "iding": 4821, - "▁across": 4822, - "▁song": 4823, - "▁phys": 4824, - "▁numer": 4825, - "ща": 4826, - "▁Alex": 4827, - "▁problems": 4828, - "▁Error": 4829, - "format": 4830, - "▁Acc": 4831, - "▁six": 4832, - "▁db": 4833, - "▁Cast": 4834, - "oms": 4835, - "project": 4836, - "▁vert": 4837, - "cret": 4838, - "▁header": 4839, - "▁stream": 4840, - "ids": 4841, - "▁tor": 4842, - "▁sept": 4843, - "▁estim": 4844, - "▁decl": 4845, - "▁gave": 4846, - "▁player": 4847, - "ysis": 4848, - "▁дру": 4849, - "amm": 4850, - "що": 4851, - "▁(\"": 4852, - "▁ax": 4853, - "Property": 4854, - "usr": 4855, - "▁someone": 4856, - "▁impro": 4857, - "aden": 4858, - "rote": 4859, - "▁Ми": 4860, - "ih": 4861, - "++)": 4862, - "▁video": 4863, - "▁exists": 4864, - "кла": 4865, - "▁complete": 4866, - "▁session": 4867, - "▁constant": 4868, - "icos": 4869, - "▁pack": 4870, - "rome": 4871, - "egr": 4872, - "Application": 4873, - "▁yes": 4874, - "▁elle": 4875, - "▁email": 4876, - "orf": 4877, - "case": 4878, - "▁pointer": 4879, - "▁regard": 4880, - "sen": 4881, - "status": 4882, - "▁mes": 4883, - "▁delle": 4884, - "ington": 4885, - "▁Bas": 4886, - ")^": 4887, - "develop": 4888, - "▁force": 4889, - "▁characters": 4890, - "▁cross": 4891, - "▁death": 4892, - "▁takes": 4893, - "éri": 4894, - "igne": 4895, - "чен": 4896, - "UP": 4897, - ".:": 4898, - "Thread": 4899, - "ju": 4900, - "iny": 4901, - "▁details": 4902, - "▁xml": 4903, - "tait": 4904, - "output": 4905, - "message": 4906, - "''": 4907, - "▁British": 4908, - "ville": 4909, - "▁Div": 4910, - "▁User": 4911, - "cm": 4912, - "чно": 4913, - "column": 4914, - "eqref": 4915, - "ór": 4916, - "onom": 4917, - "▁Post": 4918, - "ellen": 4919, - "Ab": 4920, - "ulté": 4921, - "▁perfect": 4922, - "(){": 4923, - "vision": 4924, - "active": 4925, - "lier": 4926, - "rij": 4927, - "sd": 4928, - "▁kö": 4929, - "▁nie": 4930, - "▁relig": 4931, - "▁ot": 4932, - "▁machine": 4933, - "▁held": 4934, - ")$.": 4935, - "========": 4936, - "cker": 4937, - "вы": 4938, - "born": 4939, - "▁past": 4940, - "рия": 4941, - "▁Dr": 4942, - "▁regular": 4943, - "▁provided": 4944, - "TER": 4945, - "▁univers": 4946, - "▁gets": 4947, - "▁nu": 4948, - "▁/*": 4949, - "ober": 4950, - "fin": 4951, - "▁nella": 4952, - "▁become": 4953, - "▁``": 4954, - "▁history": 4955, - "▁Sol": 4956, - "▁Rad": 4957, - "▁terms": 4958, - "▁events": 4959, - "lymp": 4960, - ")))": 4961, - "рова": 4962, - "▁absol": 4963, - "▁soft": 4964, - "links": 4965, - "▁hope": 4966, - "▁subject": 4967, - "\"),": 4968, - "▁creating": 4969, - "▁}\r": 4970, - "▁Sk": 4971, - "▁flow": 4972, - "▁Ра": 4973, - "▁assert": 4974, - "zet": 4975, - "▁Frank": 4976, - "sa": 4977, - "▁distribution": 4978, - "cu": 4979, - "band": 4980, - "izz": 4981, - "▁job": 4982, - "iner": 4983, - "struct": 4984, - "ák": 4985, - "TO": 4986, - "auf": 4987, - "▁extends": 4988, - "▁Gra": 4989, - "display": 4990, - "▁signific": 4991, - "oney": 4992, - "source": 4993, - "microsoft": 4994, - "inder": 4995, - "▁quick": 4996, - "▁wonder": 4997, - "Instance": 4998, - "elles": 4999, - "ème": 5000, - "▁company": 5001, - "uß": 5002, - ".}": 5003, - "▁separate": 5004, - "UM": 5005, - "HERE": 5006, - "▁writing": 5007, - "itution": 5008, - "▁Gesch": 5009, - "мя": 5010, - "▁James": 5011, - "▁DE": 5012, - "▁Spe": 5013, - "process": 5014, - "Str": 5015, - "▁sym": 5016, - "▁ao": 5017, - "▁wy": 5018, - "▁anyone": 5019, - "▁Up": 5020, - "useum": 5021, - "aron": 5022, - "▁definition": 5023, - "▁`$": 5024, - "▁fav": 5025, - "ributes": 5026, - "▁Ré": 5027, - "ografia": 5028, - "element": 5029, - "cap": 5030, - "pat": 5031, - "▁Bra": 5032, - ")(": 5033, - "▁according": 5034, - "ге": 5035, - "▁pie": 5036, - "eli": 5037, - "}\"": 5038, - "▁activ": 5039, - "▁stop": 5040, - "patch": 5041, - "ті": 5042, - "▁Jose": 5043, - "End": 5044, - "▁prze": 5045, - "▁age": 5046, - "itory": 5047, - "▁PHP": 5048, - "agement": 5049, - "▁`.": 5050, - "▁pretty": 5051, - "▁recomm": 5052, - "▁sud": 5053, - "▁requ": 5054, - "▁обла": 5055, - "atives": 5056, - "▁High": 5057, - "áz": 5058, - "oul": 5059, - "rest": 5060, - "▁Ter": 5061, - "under": 5062, - "thern": 5063, - "center": 5064, - "▁ur": 5065, - "lat": 5066, - "▁interface": 5067, - "▁ин": 5068, - "▁whose": 5069, - "icas": 5070, - "amen": 5071, - "Filter": 5072, - "▁station": 5073, - "Page": 5074, - "▁arm": 5075, - "▁eyes": 5076, - "▁рай": 5077, - "▁seu": 5078, - "oli": 5079, - "win": 5080, - "lik": 5081, - "gex": 5082, - "chan": 5083, - "idence": 5084, - "args": 5085, - "aking": 5086, - "▁Google": 5087, - "▁Stud": 5088, - "▁ho": 5089, - "торы": 5090, - "Su": 5091, - "▁automat": 5092, - "ême": 5093, - "▁cy": 5094, - "lor": 5095, - "▁stack": 5096, - "▁SELECT": 5097, - "AF": 5098, - "▁>>": 5099, - "▁compet": 5100, - "▁pair": 5101, - "▁inglés": 5102, - "Response": 5103, - "▁Fig": 5104, - "grad": 5105, - "▁documentation": 5106, - "▁cant": 5107, - "▁appreci": 5108, - "ån": 5109, - "▁learn": 5110, - "▁indep": 5111, - "▁pal": 5112, - "package": 5113, - "ares": 5114, - "▁Berlin": 5115, - "бли": 5116, - "reich": 5117, - "ён": 5118, - "▁satisf": 5119, - "▁region": 5120, - "▁friend": 5121, - "▁George": 5122, - "▁Во": 5123, - "▁\"\"": 5124, - "▁desde": 5125, - "Factory": 5126, - "▁County": 5127, - "ouv": 5128, - "▁‘": 5129, - "▁installed": 5130, - "▁wanted": 5131, - "▁Python": 5132, - "▁interpre": 5133, - "▁included": 5134, - "▁((": 5135, - "▁altern": 5136, - "isto": 5137, - "gn": 5138, - "▁border": 5139, - "pdf": 5140, - "▁dup": 5141, - "▁download": 5142, - "just": 5143, - "▁members": 5144, - "child": 5145, - "▁pay": 5146, - "▁cer": 5147, - "▁looked": 5148, - "▁correctly": 5149, - "auth": 5150, - "▁стан": 5151, - "▁esp": 5152, - "▁desc": 5153, - "eben": 5154, - "▁questions": 5155, - "mal": 5156, - "▁abgerufen": 5157, - "▁Band": 5158, - "▁[]": 5159, - "Base": 5160, - "▁ris": 5161, - "▁fort": 5162, - "▁Id": 5163, - "▁various": 5164, - "▁League": 5165, - "▁Hand": 5166, - "▁Type": 5167, - "irl": 5168, - "▁Fe": 5169, - "ién": 5170, - "itter": 5171, - "▁fast": 5172, - "sta": 5173, - "▁except": 5174, - "icz": 5175, - "▁French": 5176, - "▁environment": 5177, - "▁conse": 5178, - "ур": 5179, - "ого": 5180, - "▁necessary": 5181, - "target": 5182, - "▁reading": 5183, - "home": 5184, - "zeich": 5185, - "▁equal": 5186, - "▁più": 5187, - "▁prem": 5188, - "▁difficult": 5189, - "▁unit": 5190, - "▁replace": 5191, - "▁heart": 5192, - "▁talk": 5193, - "AM": 5194, - "▁RE": 5195, - "▁Person": 5196, - "endency": 5197, - "▁imm": 5198, - "▁human": 5199, - "dn": 5200, - "▁Kir": 5201, - "▁Aut": 5202, - "known": 5203, - "▁frequ": 5204, - "system": 5205, - "лав": 5206, - "▁Sz": 5207, - "▁Gal": 5208, - "ное": 5209, - "selves": 5210, - "rightarrow": 5211, - "▁Са": 5212, - "=\"@": 5213, - "▁building": 5214, - "import": 5215, - "▁fam": 5216, - "▁delete": 5217, - "aire": 5218, - "mary": 5219, - "▁fund": 5220, - "▁particip": 5221, - "▁syn": 5222, - "sin": 5223, - "▁lower": 5224, - "▁zero": 5225, - "▁sec": 5226, - "▁fra": 5227, - "Point": 5228, - "▁failed": 5229, - "iento": 5230, - "cup": 5231, - "▁slow": 5232, - "▁nation": 5233, - "ähr": 5234, - "▁info": 5235, - "▁Public": 5236, - "▁decla": 5237, - "▁Та": 5238, - "▁sold": 5239, - "▁Rem": 5240, - "▁Phil": 5241, - "стра": 5242, - "▁mehr": 5243, - "▁Work": 5244, - "▁Nord": 5245, - "▁fait": 5246, - "▁gew": 5247, - "println": 5248, - "obile": 5249, - "▁Kon": 5250, - "▁assume": 5251, - "lands": 5252, - "▁amount": 5253, - "▁Press": 5254, - "ých": 5255, - "▁maxim": 5256, - "▁Champion": 5257, - "library": 5258, - "añ": 5259, - "▁Wal": 5260, - "Comm": 5261, - "]]": 5262, - "▁zw": 5263, - "▁social": 5264, - "LI": 5265, - "▁Unter": 5266, - "vor": 5267, - "Delta": 5268, - "email": 5269, - "raint": 5270, - "oni": 5271, - "▁alt": 5272, - "▁né": 5273, - "ция": 5274, - "ography": 5275, - "▁mentioned": 5276, - "▁<=": 5277, - "▁cette": 5278, - "▁currently": 5279, - "vare": 5280, - "izing": 5281, - "▁Def": 5282, - "icol": 5283, - "ünd": 5284, - "▁configuration": 5285, - "estig": 5286, - "III": 5287, - "lam": 5288, - "ière": 5289, - "▁Ear": 5290, - "▁tu": 5291, - "Ent": 5292, - "▁Using": 5293, - "▁ком": 5294, - "cie": 5295, - "▁proof": 5296, - "▁invol": 5297, - "▁History": 5298, - "><": 5299, - "▁AND": 5300, - "avy": 5301, - "▁relations": 5302, - "${": 5303, - "▁comes": 5304, - "▁direction": 5305, - "▁June": 5306, - "▁Way": 5307, - "Component": 5308, - "ech": 5309, - "▁Peter": 5310, - "sg": 5311, - "▁stra": 5312, - "uct": 5313, - "▁implementation": 5314, - "attle": 5315, - "▁cz": 5316, - "plot": 5317, - "▁played": 5318, - "\">(": 5961, - "▁ground": 5962, - "unn": 5963, - "rod": 5964, - "spe": 5965, - "ursor": 5966, - "▁leave": 5967, - "erk": 5968, - "▁tal": 5969, - "▁bottom": 5970, - "IO": 5971, - "▁popular": 5972, - "igo": 5973, - "▁Time": 5974, - "values": 5975, - "▁Loc": 5976, - "▁Club": 5977, - "▁anche": 5978, - "iał": 5979, - "ії": 5980, - "Omega": 5981, - "▁located": 5982, - "Url": 5983, - "▁Esp": 5984, - "лы": 5985, - "ць": 5986, - "ulate": 5987, - "▁join": 5988, - "aves": 5989, - "vet": 5990, - "lio": 5991, - "remove": 5992, - "▁token": 5993, - "▁optim": 5994, - "▁claim": 5995, - "ological": 5996, - "▁css": 5997, - "▁although": 5998, - "▁priv": 5999, - "▁Ba": 6000, - "ül": 6001, - "entication": 6002, - "▁ven": 6003, - "Server": 6004, - "▁Cong": 6005, - "NET": 6006, - "CON": 6007, - "dt": 6008, - "perties": 6009, - "▁epis": 6010, - "wikipedia": 6011, - "▁engine": 6012, - "▁fer": 6013, - "getElement": 6014, - "▁Cla": 6015, - "ří": 6016, - "▁rom": 6017, - "varepsilon": 6018, - "▁prime": 6019, - "istry": 6020, - "pected": 6021, - "orage": 6022, - "▁touch": 6023, - "▁['": 6024, - "▁dan": 6025, - "Em": 6026, - "aciones": 6027, - "Can": 6028, - "▁whom": 6029, - "▁behavior": 6030, - "▁strings": 6031, - "▁Europ": 6032, - "▁Rom": 6033, - "circ": 6034, - "▁pun": 6035, - "▁register": 6036, - "buntu": 6037, - "rain": 6038, - "Ob": 6039, - "TA": 6040, - "▁sometimes": 6041, - "▁ment": 6042, - "▁integer": 6043, - "▁Jac": 6044, - "legate": 6045, - "othing": 6046, - "▁sound": 6047, - "laces": 6048, - "▁Ба": 6049, - "rb": 6050, - "di": 6051, - "ления": 6052, - "▁themselves": 6053, - "▁Black": 6054, - "▁settings": 6055, - "▁norm": 6056, - "▁runs": 6057, - "▁NOT": 6058, - "KE": 6059, - "▁perhaps": 6060, - "▁Я": 6061, - "▁mol": 6062, - "▁ans": 6063, - "atre": 6064, - "▁Dies": 6065, - "Token": 6066, - "anie": 6067, - "▁allowed": 6068, - "Range": 6069, - "▁Gro": 6070, - "via": 6071, - "utorial": 6072, - "ensor": 6073, - "estival": 6074, - ");\r": 6075, - "краї": 6076, - "▁turned": 6077, - "scope": 6078, - "▁bien": 6079, - "=$": 6080, - "▁extension": 6081, - "atore": 6082, - "▁Ро": 6083, - "▁specify": 6084, - "edu": 6085, - "Datos": 6086, - "▁stored": 6087, - "▁parse": 6088, - "▁answers": 6089, - "ills": 6090, - "▁heard": 6091, - "lu": 6092, - "▁THE": 6093, - "▁gén": 6094, - "▁ful": 6095, - "ez": 6096, - "▁Prem": 6097, - "then": 6098, - "dp": 6099, - "ського": 6100, - "▁Si": 6101, - "ço": 6102, - "Edit": 6103, - "ків": 6104, - "▁Ли": 6105, - "▁Sing": 6106, - "▁categ": 6107, - "Equ": 6108, - "▁guer": 6109, - "Width": 6110, - "▁Christian": 6111, - "stat": 6112, - "Write": 6113, - "▁woman": 6114, - "wood": 6115, - "Vis": 6116, - "раз": 6117, - "▁$$\\": 6118, - "oder": 6119, - "▁bool": 6120, - "▁international": 6121, - "ность": 6122, - "▁Richard": 6123, - "▁addition": 6124, - "▁Music": 6125, - "▁aber": 6126, - "tó": 6127, - "▁hier": 6128, - "ugh": 6129, - "▁pob": 6130, - "▁tables": 6131, - "Do": 6132, - "▁higher": 6133, - "psi": 6134, - "rá": 6135, - "▁active": 6136, - "▁Table": 6137, - "ње": 6138, - "▁description": 6139, - "▁seemed": 6140, - "íst": 6141, - "▁myself": 6142, - "▁menu": 6143, - "del": 6144, - "▁ž": 6145, - "ele": 6146, - "Aut": 6147, - "▁гру": 6148, - "mut": 6149, - "oon": 6150, - "asc": 6151, - "bug": 6152, - "▁moved": 6153, - "CL": 6154, - "▁datas": 6155, - "SO": 6156, - "оло": 6157, - "▁Georg": 6158, - "▁reach": 6159, - ":\"": 6160, - "▁evalu": 6161, - "▁Hel": 6162, - "▁River": 6163, - "▁Ар": 6164, - "////": 6165, - "▁sets": 6166, - "▁Olymp": 6167, - "Adapter": 6168, - ".'": 6169, - "overn": 6170, - "▁Lord": 6171, - "!--": 6172, - "jpg": 6173, - "imento": 6174, - "▁Prof": 6175, - "▁achieve": 6176, - "}:": 6177, - "▁incor": 6178, - "▁onder": 6179, - "engl": 6180, - "ABLE": 6181, - "▁Mary": 6182, - "▁waren": 6183, - "lage": 6184, - "Dec": 6185, - "англ": 6186, - "encias": 6187, - "лей": 6188, - "▁Machine": 6189, - "▁Ан": 6190, - "uda": 6191, - "▁ś": 6192, - "▁XX": 6193, - "only": 6194, - "ление": 6195, - "▁también": 6196, - "nej": 6197, - "▁relative": 6198, - "▁hours": 6199, - "▁indeed": 6200, - "undo": 6201, - "ingu": 6202, - "area": 6203, - "▁Create": 6204, - "beit": 6205, - "▁removed": 6206, - "master": 6207, - "haus": 6208, - "▁Bern": 6209, - "▁speed": 6210, - "▁Bay": 6211, - "▁Att": 6212, - "▁None": 6213, - "application": 6214, - "üd": 6215, - "▁fit": 6216, - "▁Maria": 6217, - "▁nord": 6218, - "▁split": 6219, - "▁stru": 6220, - "▁official": 6221, - "▁execute": 6222, - "ouve": 6223, - "{{": 6224, - "▁Ap": 6225, - "▁ку": 6226, - "IL": 6227, - "▁^": 6228, - "dim": 6229, - "▁setup": 6230, - "ск": 6231, - "▁share": 6232, - "▁minutes": 6233, - "gle": 6234, - "oco": 6235, - "stell": 6236, - "▁Coun": 6237, - "▁temper": 6238, - "keit": 6239, - "ський": 6240, - "ao": 6241, - "▁Long": 6242, - "(&": 6243, - "кан": 6244, - "▁dens": 6245, - "But": 6246, - "XX": 6247, - "DATE": 6248, - "gan": 6249, - ".).": 6250, - "▁entry": 6251, - "install": 6252, - "▁зна": 6253, - "▁Som": 6254, - "Command": 6255, - "ßen": 6256, - "▁starting": 6257, - "▁sto": 6258, - "IG": 6259, - "▁minim": 6260, - "▁explicit": 6261, - "▁bytes": 6262, - "▁party": 6263, - "tober": 6264, - "▁Grand": 6265, - "▁Vor": 6266, - "▁leur": 6267, - "Document": 6268, - "erc": 6269, - "ensive": 6270, - "CP": 6271, - "env": 6272, - "▁arguments": 6273, - "▁Gran": 6274, - "arily": 6275, - "▁lin": 6276, - "tn": 6277, - "(-": 6278, - "geq": 6279, - "▁Famil": 6280, - "▁Бо": 6281, - "▁tour": 6282, - "▁nav": 6283, - "▁properly": 6284, - "▁Mrs": 6285, - "▁Mel": 6286, - "▁scale": 6287, - "astic": 6288, - "ds": 6289, - "▁Sir": 6290, - "▁Church": 6291, - "}^{\\": 6292, - "you": 6293, - "/.": 6294, - "So": 6295, - "▁brought": 6296, - "▁role": 6297, - "▁Sur": 6298, - "▁fond": 6299, - "▁ges": 6300, - "że": 6301, - "eten": 6302, - "▁était": 6303, - "SER": 6304, - "▁которы": 6305, - "▁equation": 6306, - "aspx": 6307, - "▁Afr": 6308, - "▁dit": 6309, - "empty": 6310, - "alement": 6311, - "wrap": 6312, - "▁Bet": 6313, - "▁collect": 6314, - "▁git": 6315, - "▁vie": 6316, - "▁..": 6317, - "рой": 6318, - "▁": 6580, - "▁Ва": 6581, - "nost": 6582, - "▁nem": 6583, - "▁pen": 6584, - "Open": 6585, - "▁church": 6586, - "кон": 6587, - "▁average": 6588, - "▁comments": 6589, - "▁corresponding": 6590, - "levant": 6591, - "▁bed": 6592, - "▁meaning": 6593, - "Version": 6594, - "Link": 6595, - "bel": 6596, - "▁extract": 6597, - "ść": 6598, - "▁IV": 6599, - "▁Ir": 6600, - "▁computer": 6601, - "▁affect": 6602, - "▁Ста": 6603, - "AX": 6604, - "sort": 6605, - "▁species": 6606, - "▁Oper": 6607, - "▁hash": 6608, - "ches": 6609, - "▁Einzeln": 6610, - "▁keys": 6611, - "▁marzo": 6612, - "▁interpret": 6613, - "hood": 6614, - "▁coordin": 6615, - "ös": 6616, - "rage": 6617, - "etz": 6618, - "iza": 6619, - "дер": 6620, - "üt": 6621, - "^*": 6622, - "▁modify": 6623, - "▁termin": 6624, - "▁cred": 6625, - "zon": 6626, - "ную": 6627, - "▁mie": 6628, - "▁''": 6629, - "▁Mos": 6630, - "▁connected": 6631, - "NO": 6632, - "▁compile": 6633, - "▁\"\\": 6634, - "▁cat": 6635, - "fiddle": 6636, - "uta": 6637, - "Access": 6638, - "▁Sto": 6639, - "▁Bur": 6640, - "▁north": 6641, - "Gamma": 6642, - "▁alloc": 6643, - "Init": 6644, - "▁Link": 6645, - "ialize": 6646, - "Impl": 6647, - "oupe": 6648, - "ropri": 6649, - "▁Gold": 6650, - "▁solo": 6651, - "▁Dist": 6652, - ",-": 6653, - "nav": 6654, - "▁alert": 6655, - "esis": 6656, - "▁Os": 6657, - "///": 6658, - "▁feb": 6659, - "▁-->": 6660, - "foot": 6661, - "▁Fried": 6662, - "▁Einzelnach": 6663, - "▁rev": 6664, - "zeit": 6665, - "▁Stat": 6666, - "▁Seg": 6667, - "▁blo": 6668, - "wick": 6669, - "EL": 6670, - "caption": 6671, - "header": 6672, - "▁president": 6673, - "▁multip": 6674, - "▁Einzelnachweise": 6675, - "▁seine": 6676, - "?”": 6677, - "Function": 6678, - "▁Stand": 6679, - "▁Function": 6680, - "▁?>": 6681, - "▁Bill": 6682, - "▁spect": 6683, - "▁redirect": 6684, - "rupt": 6685, - "▁walk": 6686, - "вши": 6687, - "springframework": 6688, - "place": 6689, - "ého": 6690, - "Entity": 6691, - "▁Service": 6692, - "inte": 6693, - "▁training": 6694, - "▁(`": 6695, - "фор": 6696, - "▁кра": 6697, - "aur": 6698, - "▁fetch": 6699, - "▁†": 6700, - "▁même": 6701, - "▁('": 6702, - "atively": 6703, - "▁execut": 6704, - "äch": 6705, - "▁Catalogue": 6706, - "based": 6707, - "Attribute": 6708, - "▁spring": 6709, - "phone": 6710, - "тра": 6711, - "▁пи": 6712, - "тера": 6713, - "▁`\\": 6714, - "▁Od": 6715, - "One": 6716, - "send": 6717, - "bon": 6718, - "▁°": 6719, - "MO": 6720, - "▁asking": 6721, - "▁où": 6722, - "▁ingår": 6723, - "▁testing": 6724, - "▁фа": 6725, - "▁Book": 6726, - "imm": 6727, - "▁progress": 6728, - "bro": 6729, - "First": 6730, - "▁phot": 6731, - "▁ON": 6732, - "Template": 6733, - "developer": 6734, - "annot": 6735, - "▁>=": 6736, - "mission": 6737, - "▁któ": 6738, - "pc": 6739, - "bach": 6740, - "zent": 6741, - "ued": 6742, - "▁ones": 6743, - "ји": 6744, - "▁rout": 6745, - "▁Ки": 6746, - "Post": 6747, - "ції": 6748, - "▁Vir": 6749, - "nek": 6750, - "aging": 6751, - "▁ок": 6752, - "izont": 6753, - "▁agosto": 6754, - "▁choose": 6755, - "▁\r": 6756, - "▁systems": 6757, - "loss": 6758, - "iente": 6759, - "▁Cre": 6760, - "▁contra": 6761, - "ums": 6762, - "▁beginning": 6763, - "emy": 6764, - "istics": 6765, - "▁served": 6766, - "Down": 6767, - "options": 6768, - "▁Govern": 6769, - "▁BY": 6770, - "▁jest": 6771, - "té": 6772, - "▁continue": 6773, - "pers": 6774, - "▁easier": 6775, - "▁cos": 6776, - "esso": 6777, - ">>": 6778, - "Net": 6779, - "▁Bor": 6780, - "▁Cr": 6781, - "▁transfer": 6782, - "▁CSS": 6783, - "▁finns": 6784, - "▁хо": 6785, - "username": 6786, - "▁constru": 6787, - "▁pain": 6788, - "▁Tem": 6789, - "▁specified": 6790, - "▁brit": 6791, - "ские": 6792, - "irk": 6793, - "rapper": 6794, - "▁counter": 6795, - "▁[\"": 6796, - "oded": 6797, - "дан": 6798, - "property": 6799, - "hard": 6800, - "istrict": 6801, - ")/": 6802, - "▁Pour": 6803, - "▁Where": 6804, - "▁===": 6805, - "▁sowie": 6806, - "▁Про": 6807, - "▁dess": 6808, - "▁tras": 6809, - "▁уча": 6810, - "▁Over": 6811, - "note": 6812, - "▁America": 6813, - "cp": 6814, - "▁grande": 6815, - "Me": 6816, - ")-": 6817, - "Mode": 6818, - "▁passing": 6819, - "▁giving": 6820, - "Cl": 6821, - "}/": 6822, - "Menu": 6823, - "!!": 6824, - "angular": 6825, - "▁launch": 6826, - "varphi": 6827, - "▁Johann": 6828, - "▁foreach": 6829, - "ró": 6830, - "sequ": 6831, - "ifi": 6832, - "Am": 6833, - "arp": 6834, - "▁buffer": 6835, - "▁ni": 6836, - "▁mix": 6837, - "▁Museum": 6838, - "▁meant": 6839, - "asi": 6840, - "▁kan": 6841, - "прав": 6842, - "Comp": 6843, - "istoire": 6844, - "iful": 6845, - "jer": 6846, - "issions": 6847, - "Resource": 6848, - "▁воз": 6849, - "▁ST": 6850, - "▁solutions": 6851, - "▁belong": 6852, - "▁Associ": 6853, - "cf": 6854, - "▁Mär": 6855, - "▁grid": 6856, - "Mult": 6857, - "▁requires": 6858, - "kk": 6859, - "▁teach": 6860, - "emeinde": 6861, - "▁square": 6862, - "▁коман": 6863, - "▁Event": 6864, - "▁rules": 6865, - "▁bur": 6866, - "▁eing": 6867, - "▁Mai": 6868, - "▁nam": 6869, - "▁slä": 6870, - "hör": 6871, - "▁tip": 6872, - "▁Literatur": 6873, - "▁scope": 6874, - "overline": 6875, - "▁exit": 6876, - ")?": 6877, - "bet": 6878, - "▁vict": 6879, - "Off": 6880, - "▁approxim": 6881, - "▁Geb": 6882, - "ktop": 6883, - "heit": 6884, - "▁Ю": 6885, - "template": 6886, - "рон": 6887, - "▁uno": 6888, - "Serv": 6889, - "▁framework": 6890, - "operator": 6891, - "▁generally": 6892, - "▁hundred": 6893, - "▁divers": 6894, - "ovi": 6895, - "▁rés": 6896, - "abs": 6897, - "▁gal": 6898, - "çais": 6899, - "▁feet": 6900, - "▁virtual": 6901, - "czy": 6902, - "ску": 6903, - "./": 6904, - "hu": 6905, - "ancy": 6906, - "▁recommend": 6907, - "▁під": 6908, - "▁money": 6909, - "▁versions": 6910, - "▁helps": 6911, - "▁Hor": 6912, - "Items": 6913, - "look": 6914, - "connect": 6915, - "anges": 6916, - "ViewController": 6917, - "elijk": 6918, - "▁occup": 6919, - "▁editor": 6920, - "auto": 6921, - "ög": 6922, - "▁seconds": 6923, - "▁obvious": 6924, - "vm": 6925, - "akes": 6926, - "▁gegen": 6927, - "▁til": 6928, - "jection": 6929, - "лення": 6930, - "▁operations": 6931, - "▁East": 6932, - "ogy": 6933, - "▁Polit": 6934, - "uten": 6935, - "▁Joseph": 6936, - "\"`": 6937, - "▁Company": 6938, - "▁callback": 6939, - "▁sen": 6940, - "cción": 6941, - "▁associated": 6942, - "▁containing": 6943, - "▁practice": 6944, - "elijke": 6945, - "oke": 6946, - "éra": 6947, - "uns": 6948, - "anta": 6949, - "vey": 6950, - "zu": 6951, - "▁Bes": 6952, - "▁Flor": 6953, - "mem": 6954, - "ycz": 6955, - "▁architect": 6956, - "▁anni": 6957, - "▁contact": 6958, - "YPE": 6959, - "▁Cas": 6960, - "▁полу": 6961, - "ovo": 6962, - "▁bring": 6963, - "▁concept": 6964, - "▁js": 6965, - "▁Referencias": 6966, - "emble": 6967, - "▁н": 6968, - "▁supported": 6969, - "Big": 6970, - "▁Hans": 6971, - "erv": 6972, - "▁Maj": 6973, - "▁arriv": 6974, - "▁Have": 6975, - "▁probability": 6976, - "▁Pop": 6977, - "▁Pass": 6978, - "token": 6979, - "Provider": 6980, - "▁Ra": 6981, - "Reader": 6982, - "ooth": 6983, - "lap": 6984, - "▁assist": 6985, - "adow": 6986, - "▁tests": 6987, - "сси": 6988, - "▁king": 6989, - "langle": 6990, - "▁Sum": 6991, - "OIN": 6992, - "▁security": 6993, - "nis": 6994, - "../": 6995, - "▁basic": 6996, - "unity": 6997, - "`:": 6998, - "▁кото": 6999, - "kow": 7000, - "▁Bibliothèque": 7001, - "asion": 7002, - "alo": 7003, - "ifest": 7004, - "▁novembre": 7005, - "▁peu": 7006, - "▁Ж": 7007, - "enschaft": 7008, - "clus": 7009, - "ју": 7010, - "Height": 7011, - "ún": 7012, - "▁tur": 7013, - "▁ideas": 7014, - "▁ces": 7015, - "frak": 7016, - "▁premier": 7017, - "itation": 7018, - "▁sé": 7019, - "HTML": 7020, - "▁Royal": 7021, - "ської": 7022, - "▁byte": 7023, - "PS": 7024, - "▁segu": 7025, - "inen": 7026, - "▁Great": 7027, - "▁Ку": 7028, - "▁external": 7029, - "Title": 7030, - "Top": 7031, - "Process": 7032, - "ität": 7033, - "▁`/": 7034, - "▁secret": 7035, - "pository": 7036, - "▁potential": 7037, - "▁Bud": 7038, - "names": 7039, - "asons": 7040, - "stackexchange": 7041, - "background": 7042, - "пер": 7043, - "сов": 7044, - "after": 7045, - "▁pero": 7046, - "▁software": 7047, - "▁sed": 7048, - "▁arrays": 7049, - "tmp": 7050, - "▁asp": 7051, - "scale": 7052, - "▁Lat": 7053, - "anal": 7054, - "▁gem": 7055, - "PU": 7056, - "▁Altri": 7057, - "That": 7058, - "▁Ни": 7059, - "ifact": 7060, - "Address": 7061, - "▁south": 7062, - "▁formula": 7063, - "▁Colleg": 7064, - "▁ін": 7065, - "ktion": 7066, - "▁sac": 7067, - "SH": 7068, - "ajo": 7069, - "etc": 7070, - "vc": 7071, - "`](": 7072, - "▁Dur": 7073, - "▁Ме": 7074, - "▁Smith": 7075, - "items": 7076, - "CK": 7077, - "elo": 7078, - "▁plugin": 7079, - "▁serie": 7080, - "ienne": 7081, - "▁или": 7082, - "Mar": 7083, - "▁Image": 7084, - "got": 7085, - "andas": 7086, - "▁matches": 7087, - "▁worth": 7088, - "▁Deb": 7089, - "▁cache": 7090, - "▁felt": 7091, - "ersch": 7092, - "izes": 7093, - "Oper": 7094, - "▁Jahre": 7095, - "▁commune": 7096, - "thread": 7097, - "▁ny": 7098, - "dec": 7099, - "ouw": 7100, - "▁surface": 7101, - "▁Por": 7102, - "▁Street": 7103, - "при": 7104, - "▁candid": 7105, - "▁Return": 7106, - "▁Kom": 7107, - "gru": 7108, - "▁ти": 7109, - "[\\": 7110, - "▁depends": 7111, - "▁influ": 7112, - "▁towards": 7113, - "ained": 7114, - "▁rank": 7115, - "▁Januar": 7116, - "▁components": 7117, - "gest": 7118, - "getElementById": 7119, - "▁checked": 7120, - "airs": 7121, - "join": 7122, - "▁dead": 7123, - "▁hit": 7124, - "ény": 7125, - "▁equivalent": 7126, - "▁Пре": 7127, - "▁appropri": 7128, - "Pass": 7129, - "▁primer": 7130, - "englisch": 7131, - "▁appar": 7132, - "▁During": 7133, - "▁knowledge": 7134, - "▁trigger": 7135, - "▁core": 7136, - "▁Ol": 7137, - "▁Produ": 7138, - "▁Fern": 7139, - "▁нача": 7140, - "Te": 7141, - "▁Mot": 7142, - "erve": 7143, - "тво": 7144, - "▁mid": 7145, - "▁finally": 7146, - "aires": 7147, - "▁especially": 7148, - "▁tut": 7149, - "▁receive": 7150, - "adre": 7151, - "▁neigh": 7152, - "ktet": 7153, - "ilde": 7154, - "▁radio": 7155, - "▁driver": 7156, - "лись": 7157, - "endencies": 7158, - "▁IE": 7159, - "▁saved": 7160, - "ffect": 7161, - "▁Wayback": 7162, - "iat": 7163, - "▁padding": 7164, - "window": 7165, - "тиче": 7166, - "▁mur": 7167, - "actor": 7168, - "▁Han": 7169, - "ональ": 7170, - "▁gar": 7171, - "▁familjen": 7172, - "ós": 7173, - "▁nationale": 7174, - "▁pré": 7175, - "ded": 7176, - "onal": 7177, - "▁President": 7178, - "▁\\,": 7179, - "▁placed": 7180, - "erni": 7181, - "▁signal": 7182, - "nab": 7183, - "hm": 7184, - "Mon": 7185, - "▁vs": 7186, - "SC": 7187, - "▁progetti": 7188, - "▁Ü": 7189, - "▁forms": 7190, - "▁messages": 7191, - "inf": 7192, - "users": 7193, - "GET": 7194, - "▁dels": 7195, - "Collection": 7196, - "▁Good": 7197, - "▁Maybe": 7198, - "▁compr": 7199, - "▁larger": 7200, - "gres": 7201, - "aper": 7202, - "▁При": 7203, - "undes": 7204, - "▁sea": 7205, - "▁Spring": 7206, - "ulo": 7207, - "▁mechan": 7208, - "▁sans": 7209, - "GB": 7210, - "Valid": 7211, - "▁communic": 7212, - "▁pra": 7213, - "vier": 7214, - "▁Се": 7215, - "▁ain": 7216, - "тура": 7217, - "kom": 7218, - "skiego": 7219, - "ково": 7220, - "adata": 7221, - "▁Ре": 7222, - "▁boolean": 7223, - "sets": 7224, - "▁effort": 7225, - ".[": 7226, - "▁został": 7227, - "PA": 7228, - "▁Vict": 7229, - "SD": 7230, - "ował": 7231, - "▁emb": 7232, - "▁prima": 7233, - "▁hour": 7234, - "subsection": 7235, - "▁Fort": 7236, - "mathfrak": 7237, - "igin": 7238, - "GL": 7239, - ")+": 7240, - "fi": 7241, - "▁anci": 7242, - "▁pan": 7243, - "\\)": 7244, - "▁lug": 7245, - "▁deploy": 7246, - "domain": 7247, - "▁slight": 7248, - "JSON": 7249, - "▁morning": 7250, - "▁hi": 7251, - "▁compare": 7252, - "ije": 7253, - "▁blue": 7254, - "▁Ac": 7255, - "▁middle": 7256, - "anden": 7257, - "▁shared": 7258, - "▁Camp": 7259, - "▁Á": 7260, - "ounded": 7261, - "uw": 7262, - "ierung": 7263, - "Stack": 7264, - "▁eines": 7265, - "▁Da": 7266, - "lij": 7267, - "enti": 7268, - "▁й": 7269, - "Util": 7270, - "▁experience": 7271, - "▁await": 7272, - "uls": 7273, - "▁requests": 7274, - "▁impos": 7275, - "▁constraint": 7276, - "Change": 7277, - "emph": 7278, - "бер": 7279, - "▁Another": 7280, - "Custom": 7281, - "▁significant": 7282, - "cr": 7283, - "▁million": 7284, - "reek": 7285, - "▁dalla": 7286, - "▁Germ": 7287, - "otal": 7288, - "ateur": 7289, - "btn": 7290, - "▁thinking": 7291, - "▁interval": 7292, - "onne": 7293, - "▁liv": 7294, - "():": 7295, - "▁Ве": 7296, - "oe": 7297, - "▁Ev": 7298, - "meta": 7299, - "▁broad": 7300, - "Rem": 7301, - "apply": 7302, - "▁couple": 7303, - "▁techni": 7304, - "idades": 7305, - "▁goal": 7306, - "▁CD": 7307, - "hab": 7308, - "▁explan": 7309, - "anner": 7310, - "▁Because": 7311, - "blog": 7312, - "includegraphics": 7313, - "▁voice": 7314, - "▁Map": 7315, - "vention": 7316, - "Session": 7317, - "▁Liens": 7318, - "▁sor": 7319, - "category": 7320, - "ashington": 7321, - "▁März": 7322, - "pop": 7323, - "illet": 7324, - "▁zwei": 7325, - "▁Lie": 7326, - "Null": 7327, - "address": 7328, - "▁factor": 7329, - "▁ligne": 7330, - "▁HTTP": 7331, - "▁suf": 7332, - "▁personal": 7333, - "cip": 7334, - "▁Dar": 7335, - "▁adm": 7336, - "кой": 7337, - "▁Ext": 7338, - "▁god": 7339, - "aa": 7340, - "Right": 7341, - "été": 7342, - "▁dynamic": 7343, - "▁maintain": 7344, - "tor": 7345, - "########": 7346, - "▁Fra": 7347, - "▁choice": 7348, - "▁сто": 7349, - "СР": 7350, - "▁Feder": 7351, - "ston": 7352, - "▁flag": 7353, - "kit": 7354, - "Module": 7355, - "▁спо": 7356, - "▁Stra": 7357, - "icks": 7358, - "▁haven": 7359, - "▁Mass": 7360, - "▁Emp": 7361, - "▁Pi": 7362, - "▁Pen": 7363, - "Rect": 7364, - "▁Kr": 7365, - "itat": 7366, - "eler": 7367, - "ября": 7368, - "itet": 7369, - "▁Start": 7370, - "▁produced": 7371, - "▁пол": 7372, - "(_": 7373, - "▁delet": 7374, - "▁hot": 7375, - "▁Geschichte": 7376, - "~~": 7377, - "▁months": 7378, - "▁tod": 7379, - "▁ни": 7380, - "ús": 7381, - "temp": 7382, - "▁Dez": 7383, - "ypes": 7384, - "▁cui": 7385, - "ommun": 7386, - "actions": 7387, - "▁eigen": 7388, - "▁immediately": 7389, - "PL": 7390, - "▁Го": 7391, - "▁Bal": 7392, - "ље": 7393, - "ului": 7394, - "▁online": 7395, - "▁años": 7396, - "▁namespace": 7397, - "▁mond": 7398, - "▁Base": 7399, - "▁Canada": 7400, - "etzt": 7401, - "}-": 7402, - "▁defin": 7403, - "▁doubt": 7404, - "▁investig": 7405, - "views": 7406, - "▁Line": 7407, - "▁stage": 7408, - "ettings": 7409, - "ubre": 7410, - "float": 7411, - "▁Play": 7412, - "▁Las": 7413, - "ptr": 7414, - "▁becomes": 7415, - "estamp": 7416, - "▁independent": 7417, - "▁analysis": 7418, - "▁Look": 7419, - "lain": 7420, - "▁рас": 7421, - "Reference": 7422, - "▁sorry": 7423, - "▁supposed": 7424, - "ût": 7425, - "▁degree": 7426, - "utz": 7427, - "MM": 7428, - "▁desired": 7429, - "ły": 7430, - "▁len": 7431, - "▁alone": 7432, - "signed": 7433, - "▁Sta": 7434, - "Person": 7435, - "▁applied": 7436, - "▁Back": 7437, - "▁mars": 7438, - "Part": 7439, - "▁Did": 7440, - "▁externes": 7441, - "▁np": 7442, - "ongo": 7443, - "▁esta": 7444, - "Block": 7445, - "▁pou": 7446, - "adores": 7447, - "▁Studio": 7448, - ".$": 7449, - "▁reached": 7450, - "bot": 7451, - "▁Juni": 7452, - "tons": 7453, - "itel": 7454, - "▁Gar": 7455, - "▁articles": 7456, - "▁District": 7457, - "▁trouble": 7458, - "lide": 7459, - "▁Found": 7460, - "ád": 7461, - "▁equip": 7462, - "▁internal": 7463, - "'],": 7464, - "▁async": 7465, - "UB": 7466, - "gel": 7467, - "▁ai": 7468, - "ensure": 7469, - "▁appeared": 7470, - "▁$_": 7471, - "▁maximum": 7472, - "▁Си": 7473, - "рь": 7474, - "▁announ": 7475, - "лась": 7476, - "▁cm": 7477, - "ган": 7478, - "aupt": 7479, - "▁latter": 7480, - "▁platform": 7481, - "▁dra": 7482, - "▁capital": 7483, - "▁solved": 7484, - "riz": 7485, - "edic": 7486, - "▁Mur": 7487, - "▁Top": 7488, - "тся": 7489, - "Panel": 7490, - "rule": 7491, - "etic": 7492, - "▁Ren": 7493, - "▁Wikimedia": 7494, - "▁TO": 7495, - "second": 7496, - "isl": 7497, - "▁hy": 7498, - "▁niet": 7499, - "▁loaded": 7500, - "dig": 7501, - "▁mayo": 7502, - "[:": 7503, - "Acc": 7504, - "▁bek": 7505, - "нию": 7506, - "login": 7507, - "tx": 7508, - "▁Fur": 7509, - "▁Santa": 7510, - "azz": 7511, - "▁conduct": 7512, - "▁India": 7513, - "Order": 7514, - "irth": 7515, - "tw": 7516, - "}+": 7517, - "▁wieder": 7518, - "▁Edu": 7519, - "AV": 7520, - "▁```": 7521, - "▁manually": 7522, - "▁Read": 7523, - "fortunately": 7524, - "▁Run": 7525, - "▁Award": 7526, - "▁Foot": 7527, - "*)": 7528, - "params": 7529, - "пі": 7530, - "▁native": 7531, - "rift": 7532, - "▁ä": 7533, - "ATH": 7534, - "▁yourself": 7535, - "▁prior": 7536, - "▁cit": 7537, - "äh": 7538, - "▁treat": 7539, - "▁meas": 7540, - "ributed": 7541, - "▁clar": 7542, - "card": 7543, - "ROR": 7544, - "illes": 7545, - "▁layer": 7546, - "auer": 7547, - "▁rat": 7548, - "bernate": 7549, - "▁stato": 7550, - "▁China": 7551, - "▁$('#": 7552, - "▁naar": 7553, - "zip": 7554, - "▁${\\": 7555, - "▁appreciated": 7556, - "▁име": 7557, - "ży": 7558, - "▁przez": 7559, - "▁Indian": 7560, - "▁Tod": 7561, - "▁Source": 7562, - "▁други": 7563, - "internal": 7564, - "ionale": 7565, - "Product": 7566, - "▁Men": 7567, - "▁upper": 7568, - "▁Every": 7569, - "},\\": 7570, - "▁printf": 7571, - "▁continued": 7572, - "▁nodes": 7573, - "лки": 7574, - "▁nice": 7575, - "modules": 7576, - "eign": 7577, - "▁Mex": 7578, - "▁According": 7579, - "▁undefined": 7580, - "▁binary": 7581, - "cut": 7582, - "Current": 7583, - "edy": 7584, - "}}{": 7585, - "bles": 7586, - "▁вой": 7587, - "scri": 7588, - "eqn": 7589, - "Changed": 7590, - "▁köz": 7591, - "▁remote": 7592, - "вля": 7593, - "▁quel": 7594, - "▁align": 7595, - "▁пар": 7596, - "SV": 7597, - "yer": 7598, - "▁Californ": 7599, - "▁places": 7600, - "▁primary": 7601, - "▁conv": 7602, - "▁Juli": 7603, - "▁visual": 7604, - "▁Select": 7605, - "atory": 7606, - "=(": 7607, - "iser": 7608, - "▁intent": 7609, - "sur": 7610, - "container": 7611, - "iced": 7612, - "▁board": 7613, - "astr": 7614, - "omial": 7615, - "вет": 7616, - "зва": 7617, - "▁cru": 7618, - "▁Oktober": 7619, - "save": 7620, - "▁greater": 7621, - "▁inn": 7622, - "▁picture": 7623, - "▁То": 7624, - "▁obtained": 7625, - "Wikimedia": 7626, - "úblic": 7627, - "▁lors": 7628, - "▁mont": 7629, - "obre": 7630, - "▁civil": 7631, - "▁construction": 7632, - "▁Welt": 7633, - "▁Under": 7634, - "undert": 7635, - "▁edge": 7636, - "▁Liste": 7637, - "csv": 7638, - "▁experiment": 7639, - "localhost": 7640, - "▁Edit": 7641, - "greg": 7642, - "ová": 7643, - "ља": 7644, - "msg": 7645, - "▁Green": 7646, - "Dialog": 7647, - "Ident": 7648, - "▁JS": 7649, - "^{(": 7650, - "▁släktet": 7651, - "____": 7652, - "Project": 7653, - "▁beskre": 7654, - "▁ber": 7655, - "▁wouldn": 7656, - "▁react": 7657, - "Hel": 7658, - "zw": 7659, - "▁Washington": 7660, - "orie": 7661, - "task": 7662, - "▁category": 7663, - "▁artist": 7664, - "anno": 7665, - "▁ook": 7666, - "ammen": 7667, - "▁Minister": 7668, - "▁declar": 7669, - "▁Key": 7670, - ",.": 7671, - "▁mach": 7672, - "▁ww": 7673, - "isen": 7674, - "Fran": 7675, - "▁Росси": 7676, - "бор": 7677, - "три": 7678, - "▁rock": 7679, - "quis": 7680, - "mos": 7681, - "пера": 7682, - "▁esterni": 7683, - "▁gold": 7684, - "Windows": 7685, - "%%": 7686, - "▁partial": 7687, - "▁weight": 7688, - "▁spr": 7689, - "}).": 7690, - "▁français": 7691, - "fun": 7692, - "▁thous": 7693, - "holder": 7694, - "▁gone": 7695, - "▁Č": 7696, - "▁rend": 7697, - "DA": 7698, - "▁answered": 7699, - "▁False": 7700, - "Buffer": 7701, - "▁daugh": 7702, - ".--": 7703, - "▁Show": 7704, - "▁rect": 7705, - "▁Kre": 7706, - "dr": 7707, - "osoph": 7708, - "▁yield": 7709, - "urity": 7710, - "toString": 7711, - "aval": 7712, - "Pol": 7713, - "▁lock": 7714, - "imation": 7715, - "antic": 7716, - "Local": 7717, - "▁beskrevs": 7718, - "ités": 7719, - "grid": 7720, - "ут": 7721, - "▁_{": 7722, - "сі": 7723, - "FILE": 7724, - "▁км": 7725, - "▁speak": 7726, - "summary": 7727, - "prop": 7728, - "javascript": 7729, - "zk": 7730, - "izontal": 7731, - "▁trois": 7732, - "▁Rod": 7733, - "prise": 7734, - "рово": 7735, - "▁odd": 7736, - "▁gest": 7737, - "▁produce": 7738, - "▁waar": 7739, - "▁Av": 7740, - "ribu": 7741, - "вання": 7742, - "▁finished": 7743, - "▁adapt": 7744, - "▁Sar": 7745, - "textit": 7746, - "▁Ce": 7747, - "▁Fa": 7748, - "osen": 7749, - "▁deriv": 7750, - "▁ship": 7751, - "▁opin": 7752, - "▁Even": 7753, - "gesch": 7754, - "▁suppose": 7755, - "▁Fer": 7756, - "ское": 7757, - "▁worden": 7758, - "sey": 7759, - "hline": 7760, - "▁Union": 7761, - "▁/**": 7762, - "▁vez": 7763, - "▁Collegamenti": 7764, - "▁Society": 7765, - "▁econom": 7766, - "ší": 7767, - "oi": 7768, - "▁orient": 7769, - "▁Teil": 7770, - "rent": 7771, - "лекс": 7772, - "▁solid": 7773, - "▁cart": 7774, - "****************": 7775, - "▁cab": 7776, - "▁Message": 7777, - "dots": 7778, - "▁ég": 7779, - "▁twe": 7780, - "aga": 7781, - "▁naz": 7782, - "▁Microsoft": 7783, - "▁underarter": 7784, - "ppen": 7785, - "▁recent": 7786, - "▁net": 7787, - "▁resources": 7788, - "Ste": 7789, - ".\\": 7790, - "▁SO": 7791, - "лом": 7792, - "▁cele": 7793, - "▁lic": 7794, - "▁benef": 7795, - "ldots": 7796, - "▁serial": 7797, - "Integer": 7798, - "cles": 7799, - "▁miles": 7800, - "▁Ale": 7801, - "▁entered": 7802, - "▁Two": 7803, - "wie": 7804, - "▁includes": 7805, - "▁Each": 7806, - "elling": 7807, - "quer": 7808, - "▁Dom": 7809, - "pf": 7810, - "WS": 7811, - "▁straight": 7812, - "▁Stan": 7813, - "▁nos": 7814, - "ícul": 7815, - "atro": 7816, - "▁Center": 7817, - "FT": 7818, - "▁Inga": 7819, - "ilo": 7820, - "▁www": 7821, - "jsfiddle": 7822, - "nic": 7823, - "▁European": 7824, - "▁commer": 7825, - "▁girl": 7826, - "total": 7827, - "▁Star": 7828, - "▁suggested": 7829, - "pal": 7830, - "▁zwischen": 7831, - "писа": 7832, - "IM": 7833, - "▁handler": 7834, - "▁Program": 7835, - "xsl": 7836, - "ály": 7837, - "BU": 7838, - ",--": 7839, - "▁vid": 7840, - "▁established": 7841, - "▁Spiel": 7842, - "ometry": 7843, - "unes": 7844, - "▁sit": 7845, - "▁inher": 7846, - "▁puis": 7847, - "▁être": 7848, - "▁Most": 7849, - "Header": 7850, - "insert": 7851, - "▁sist": 7852, - "▁favor": 7853, - "dest": 7854, - "▁entity": 7855, - "Cal": 7856, - "▁Therefore": 7857, - "DD": 7858, - ";;": 7859, - "▁Dezember": 7860, - "▁Rh": 7861, - "iments": 7862, - "▁returning": 7863, - "sto": 7864, - "▁Value": 7865, - "▁liber": 7866, - "▁Result": 7867, - "▁bind": 7868, - "voir": 7869, - "▁Tim": 7870, - "▁Movie": 7871, - "weg": 7872, - "ket": 7873, - "▁исто": 7874, - "▁friends": 7875, - "▁fn": 7876, - "▁él": 7877, - "▁&=": 7878, - "arden": 7879, - "fficial": 7880, - "▁community": 7881, - "▁api": 7882, - "Args": 7883, - "ieren": 7884, - "▁dann": 7885, - "omorph": 7886, - "adr": 7887, - "loop": 7888, - "uman": 7889, - "▁vous": 7890, - "bst": 7891, - "submit": 7892, - "\\|": 7893, - "тин": 7894, - "Container": 7895, - "asket": 7896, - "?)": 7897, - "Sec": 7898, - "▁drive": 7899, - "Ass": 7900, - "▁swe": 7901, - "▁amer": 7902, - "▁mine": 7903, - "▁Ham": 7904, - "▁avait": 7905, - "▁Hon": 7906, - "▁après": 7907, - "▁Mann": 7908, - "ська": 7909, - "▁increase": 7910, - "▁ty": 7911, - "sky": 7912, - "▁accur": 7913, - "article": 7914, - "weight": 7915, - "▁sex": 7916, - "▁listade": 7917, - "/**": 7918, - "▁está": 7919, - "}}$": 7920, - "argo": 7921, - "define": 7922, - "▁состав": 7923, - "session": 7924, - "ads": 7925, - "стви": 7926, - "▁Law": 7927, - "▁dialog": 7928, - "▁duplicate": 7929, - "▁ép": 7930, - "▁voc": 7931, - "fri": 7932, - "▁green": 7933, - "▁hidden": 7934, - "▁Island": 7935, - "▁diag": 7936, - "owej": 7937, - "mysql": 7938, - "teil": 7939, - "rä": 7940, - "ikan": 7941, - "▁José": 7942, - "aled": 7943, - "Runtime": 7944, - "▁train": 7945, - "▁Division": 7946, - "ниц": 7947, - "▁Span": 7948, - "нима": 7949, - ")=\\": 7950, - "тан": 7951, - "▁stay": 7952, - "▁foo": 7953, - "▁accom": 7954, - "▁hers": 7955, - "▁нау": 7956, - "▁Mün": 7957, - "ideos": 7958, - "static": 7959, - "▁ready": 7960, - "]`": 7961, - "▁visible": 7962, - "▁Hope": 7963, - "ulated": 7964, - "▁Cult": 7965, - "стро": 7966, - "Co": 7967, - "▁smaller": 7968, - "atura": 7969, - "▁perfectly": 7970, - "req": 7971, - "▁proposed": 7972, - "▁degli": 7973, - "Search": 7974, - "▁ich": 7975, - "Max": 7976, - "▁volume": 7977, - "execute": 7978, - "gre": 7979, - "▁sport": 7980, - "udad": 7981, - "PT": 7982, - "▁Records": 7983, - "▁cook": 7984, - "▁expand": 7985, - "бі": 7986, - "▁altri": 7987, - "ppet": 7988, - "arse": 7989, - "▁wet": 7990, - "▁Bob": 7991, - "▁FC": 7992, - "▁Association": 7993, - "uje": 7994, - "▁fel": 7995, - "▁слу": 7996, - "▁Big": 7997, - "/\\": 7998, - "Ge": 7999, - "while": 8000, - "{(": 8001, - "▁sufficient": 8002, - "Position": 8003, - "▁understanding": 8004, - "▁nue": 8005, - "▁raz": 8006, - "▁ye": 8007, - "hem": 8008, - "Num": 8009, - "▁Project": 8010, - "▁Its": 8011, - "▁hasta": 8012, - "enso": 8013, - "▁wire": 8014, - "Ret": 8015, - "uj": 8016, - "proof": 8017, - "▁relevant": 8018, - "▁partir": 8019, - "▁ago": 8020, - "ificate": 8021, - "▁domin": 8022, - "▁boy": 8023, - "▁plant": 8024, - "▁encoding": 8025, - "▁throws": 8026, - "▁Rock": 8027, - "zone": 8028, - "gang": 8029, - "widget": 8030, - "▁interesting": 8031, - "DER": 8032, - "▁demon": 8033, - "▁office": 8034, - "amt": 8035, - "äter": 8036, - "▁White": 8037, - "▁versch": 8038, - "▁dieser": 8039, - "▁Mount": 8040, - "▁students": 8041, - "▁Pub": 8042, - "▁Де": 8043, - "ija": 8044, - "▁Cy": 8045, - "▁California": 8046, - "▁abril": 8047, - "äll": 8048, - "▁чем": 8049, - "TV": 8050, - "▁més": 8051, - "▁declared": 8052, - "▁ю": 8053, - "ől": 8054, - "appa": 8055, - "▁Бе": 8056, - "echo": 8057, - "numer": 8058, - "▁posted": 8059, - "▁вер": 8060, - "▁године": 8061, - "▁weak": 8062, - "▁Republic": 8063, - "▁champion": 8064, - "ensuremath": 8065, - "your": 8066, - "▁Ober": 8067, - "▁Central": 8068, - "isa": 8069, - "анд": 8070, - "yy": 8071, - "▁fully": 8072, - "▁SD": 8073, - "▁Linux": 8074, - "▁Scott": 8075, - "partment": 8076, - "kon": 8077, - "▁contract": 8078, - "▁OF": 8079, - "▁ale": 8080, - "▁Ann": 8081, - "▁над": 8082, - "lah": 8083, - "▁Next": 8084, - "oren": 8085, - "▁disk": 8086, - "▁eg": 8087, - "atu": 8088, - "логи": 8089, - "▁games": 8090, - "Left": 8091, - "▁lu": 8092, - "▁finite": 8093, - "▁ки": 8094, - "▁crash": 8095, - "pher": 8096, - "exe": 8097, - "ATION": 8098, - "▁brother": 8099, - "Eng": 8100, - "tat": 8101, - "▁Integer": 8102, - "ному": 8103, - "▁colon": 8104, - "iqu": 8105, - ")).": 8106, - "ivi": 8107, - "▁Method": 8108, - "arten": 8109, - "Uni": 8110, - "vector": 8111, - "▁wood": 8112, - "рт": 8113, - "▁Ле": 8114, - "▁siècle": 8115, - "▁gent": 8116, - "}\r": 8117, - "▁contents": 8118, - "▁compan": 8119, - "Go": 8120, - "▁jou": 8121, - "uent": 8122, - "Async": 8123, - "printf": 8124, - "▁Model": 8125, - "▁kept": 8126, - "ASE": 8127, - "▁provides": 8128, - "▁Abgerufen": 8129, - "▁Gall": 8130, - "▁Alf": 8131, - "SA": 8132, - "▁Mem": 8133, - "▁kter": 8134, - "▁Bru": 8135, - "Android": 8136, - "(:": 8137, - "▁Украї": 8138, - "Ne": 8139, - "Min": 8140, - "atr": 8141, - "▁Hal": 8142, - "delete": 8143, - "odo": 8144, - "▁não": 8145, - "ène": 8146, - "▁calculate": 8147, - "Json": 8148, - "keys": 8149, - "ней": 8150, - "▁hence": 8151, - "▁ow": 8152, - "▁Lib": 8153, - "eno": 8154, - "▁Love": 8155, - "osi": 8156, - "wide": 8157, - "▁score": 8158, - "full": 8159, - "вод": 8160, - "▁determine": 8161, - "▁spaces": 8162, - "лова": 8163, - "▁peut": 8164, - "éral": 8165, - "ół": 8166, - "▁appoint": 8167, - "▁Tw": 8168, - "();": 8295, - "▁pure": 8296, - "▁embed": 8297, - "ação": 8298, - "controller": 8299, - "▁married": 8300, - "▁Fol": 8301, - "famil": 8302, - "▁prec": 8303, - "▁recurs": 8304, - "pad": 8305, - "istration": 8306, - "▁respectively": 8307, - "[$": 8308, - "autor": 8309, - "▁grav": 8310, - "iera": 8311, - "azioni": 8312, - "▁Bul": 8313, - "▁Australia": 8314, - "mond": 8315, - "▁Tro": 8316, - "▁Ele": 8317, - "packages": 8318, - "msdn": 8319, - "▁Als": 8320, - "▁przy": 8321, - "ART": 8322, - "▁charge": 8323, - "▁applications": 8324, - "Unit": 8325, - "aren": 8326, - "▁sudden": 8327, - "ometer": 8328, - "▁dot": 8329, - "acji": 8330, - "ктор": 8331, - "imin": 8332, - "ening": 8333, - "▁donde": 8334, - "▁Ho": 8335, - "tree": 8336, - "mb": 8337, - "▁drag": 8338, - "aje": 8339, - "▁invalid": 8340, - "▁finish": 8341, - "laim": 8342, - "▁feed": 8343, - "▁Nap": 8344, - "room": 8345, - "images": 8346, - "▁сай": 8347, - "▁succ": 8348, - "iffer": 8349, - "▁año": 8350, - "▁cual": 8351, - "мери": 8352, - "DR": 8353, - "▁Bilder": 8354, - "бра": 8355, - "rait": 8356, - "pan": 8357, - "ень": 8358, - "▁distinct": 8359, - "▁Kn": 8360, - "önig": 8361, - "anced": 8362, - "▁loading": 8363, - "▁Techn": 8364, - "▁Sel": 8365, - "mus": 8366, - "▁rail": 8367, - "▁student": 8368, - "▁notice": 8369, - "▁sla": 8370, - "▁Да": 8371, - "▁guard": 8372, - "▁Day": 8373, - "вали": 8374, - "Option": 8375, - "aison": 8376, - "ipp": 8377, - "▁Jun": 8378, - "▁fell": 8379, - "▁absolute": 8380, - "ове": 8381, - "debug": 8382, - "▁Sud": 8383, - "пы": 8384, - "ugins": 8385, - "▁views": 8386, - "lay": 8387, - "▁surr": 8388, - "▁stood": 8389, - "▁ві": 8390, - "selected": 8391, - "гі": 8392, - "▁attributes": 8393, - "final": 8394, - "enda": 8395, - "▁Bon": 8396, - "ners": 8397, - "▁Wer": 8398, - "bur": 8399, - "ittel": 8400, - "▁moving": 8401, - "▁Plan": 8402, - "isches": 8403, - "Java": 8404, - "▁basis": 8405, - "▁Bus": 8406, - "▁Au": 8407, - "▁Ill": 8408, - "▁время": 8409, - "▁цент": 8410, - "handle": 8411, - "ступ": 8412, - "▁Far": 8413, - "▁oraz": 8414, - "ocr": 8415, - "▁seit": 8416, - "onder": 8417, - "дом": 8418, - ":/": 8419, - "chor": 8420, - "▁Town": 8421, - "▁definit": 8422, - "react": 8423, - "▁piece": 8424, - "▁Karl": 8425, - "CI": 8426, - "▁Application": 8427, - "unter": 8428, - "▁formed": 8429, - "▁пу": 8430, - "Bo": 8431, - "▁Daniel": 8432, - "▁пла": 8433, - "Body": 8434, - "})$": 8435, - "▁были": 8436, - "▁earth": 8437, - "гла": 8438, - "There": 8439, - "▁стра": 8440, - "▁ville": 8441, - "▁centre": 8442, - ")\r": 8443, - "▁helpful": 8444, - "▁++": 8445, - "▁CG": 8446, - "izione": 8447, - "▁Game": 8448, - "▁Which": 8449, - "▁pip": 8450, - "▁Portug": 8451, - "DS": 8452, - "▁describe": 8453, - "▁checking": 8454, - "▁manager": 8455, - "BO": 8456, - "▁Bundes": 8457, - "buch": 8458, - "▁decided": 8459, - "▁Jahrhundert": 8460, - "▁fif": 8461, - "efficient": 8462, - "anci": 8463, - "braries": 8464, - "▁fails": 8465, - "▁kernel": 8466, - "▁Gl": 8467, - "▁Nacional": 8468, - "▁proceed": 8469, - "▁fuer": 8470, - "▁living": 8471, - "▁successfully": 8472, - "▁faster": 8473, - "▁contre": 8474, - "▁prison": 8475, - "ORT": 8476, - "help": 8477, - "▁autor": 8478, - "ław": 8479, - "ają": 8480, - "▁Arm": 8481, - "▁provin": 8482, - "▁naam": 8483, - "/#": 8484, - "sed": 8485, - "▁gesch": 8486, - "▁мар": 8487, - "esk": 8488, - "term": 8489, - "▁Tex": 8490, - "iring": 8491, - "▁tools": 8492, - "PDF": 8493, - "▁ult": 8494, - "issenschaft": 8495, - "▁couldn": 8496, - "ding": 8497, - "Dep": 8498, - "{-": 8499, - "▁predict": 8500, - "antage": 8501, - "▁Like": 8502, - "▁Би": 8503, - "tools": 8504, - "estra": 8505, - "▁ki": 8506, - "▁Jim": 8507, - "star": 8508, - "▁remark": 8509, - "óg": 8510, - "nabla": 8511, - "▁Although": 8512, - "mode": 8513, - "Host": 8514, - "▁strange": 8515, - "None": 8516, - "black": 8517, - "▁Festival": 8518, - "▁IS": 8519, - "anza": 8520, - "▁(-": 8521, - "icket": 8522, - "кола": 8523, - "▁Jes": 8524, - "▁flex": 8525, - "▁À": 8526, - "▁Network": 8527, - "▁EX": 8528, - "▁enero": 8529, - "!”": 8530, - "▁Ort": 8531, - "▁alors": 8532, - "▁Original": 8533, - "▁zo": 8534, - "ными": 8535, - "▁spl": 8536, - "Draw": 8537, - "yond": 8538, - "──": 8539, - "▁Ot": 8540, - "▁dram": 8541, - "▁division": 8542, - "▁efficient": 8543, - "▁Га": 8544, - "▁vier": 8545, - "nak": 8546, - "LS": 8547, - "▁spirit": 8548, - "zeichnet": 8549, - "▁dici": 8550, - "clear": 8551, - "copy": 8552, - "yar": 8553, - "▁році": 8554, - "usqu": 8555, - "▁nous": 8556, - "▁blev": 8557, - "жде": 8558, - "Arg": 8559, - "▁performed": 8560, - "▁Make": 8561, - "▁Carol": 8562, - "etto": 8563, - "▁Sand": 8564, - "▁Disc": 8565, - "Enc": 8566, - "rero": 8567, - "hash": 8568, - "▁focus": 8569, - "▁attention": 8570, - "▁agre": 8571, - "▁divis": 8572, - "▁было": 8573, - "▁ej": 8574, - "▁march": 8575, - "▁phase": 8576, - "ías": 8577, - "▁phil": 8578, - "▁Pap": 8579, - "▁river": 8580, - "▁caused": 8581, - "plugin": 8582, - "▁Team": 8583, - "uler": 8584, - "▁$(\"#": 8585, - "iej": 8586, - "ISBN": 8587, - "nam": 8588, - "▁fight": 8589, - "vid": 8590, - "▁Lud": 8591, - "Selected": 8592, - ":@\"": 8593, - "▁Pod": 8594, - "▁années": 8595, - "arios": 8596, - "▁deutscher": 8597, - "▁NA": 8598, - "▁ию": 8599, - "▁dictionary": 8600, - "▁Ла": 8601, - "▁Tri": 8602, - "èn": 8603, - "▁political": 8604, - "ridge": 8605, - "atten": 8606, - "▁circle": 8607, - "▁transport": 8608, - "emas": 8609, - "FC": 8610, - "▁replaced": 8611, - "▁Aud": 8612, - "iska": 8613, - "Configuration": 8614, - "▁soort": 8615, - "▁Не": 8616, - "▁sequ": 8617, - "PRO": 8618, - "▁bud": 8619, - "▁{{": 8620, - "ließ": 8621, - "▁Mas": 8622, - "ders": 8623, - "usammen": 8624, - "esa": 8625, - "▁Ly": 8626, - "вро": 8627, - "mac": 8628, - "▁испо": 8629, - "▁suc": 8630, - "uy": 8631, - "▁illustr": 8632, - "▁primera": 8633, - "ilation": 8634, - "▁storage": 8635, - "▁params": 8636, - "kaz": 8637, - "▁terminal": 8638, - "раль": 8639, - "▁holds": 8640, - "лось": 8641, - "▁nad": 8642, - "”.": 8643, - "▁octubre": 8644, - "bul": 8645, - "▁hus": 8646, - "ULT": 8647, - "▁également": 8648, - "▁Mill": 8649, - "ład": 8650, - "▁contiene": 8651, - "\"?": 8652, - "▁>>>": 8653, - "Que": 8654, - "  ": 8655, - "▁plain": 8656, - "ativa": 8657, - "ocker": 8658, - "Names": 8659, - "▁Jud": 8660, - "▁agree": 8661, - "▁Gemeinde": 8662, - "lare": 8663, - "каза": 8664, - "▁starts": 8665, - "▁price": 8666, - "Target": 8667, - "cus": 8668, - "▁Instead": 8669, - ".;": 8670, - "▁alternative": 8671, - "▁вла": 8672, - "IE": 8673, - "▁organiz": 8674, - "inu": 8675, - "▁completed": 8676, - "▁carry": 8677, - "atom": 8678, - "▁depending": 8679, - "▁Our": 8680, - "▁insp": 8681, - "▁&\\": 8682, - "aily": 8683, - "irection": 8684, - "фа": 8685, - "▁defe": 8686, - "TAC": 8687, - "▁designed": 8688, - "▁voir": 8689, - "break": 8690, - "▁partie": 8691, - "▁Jahren": 8692, - "▁studio": 8693, - "▁jour": 8694, - "▁Notes": 8695, - "fire": 8696, - "house": 8697, - "success": 8698, - "▁Juan": 8699, - "JS": 8700, - "▁Custom": 8701, - "▁besch": 8702, - "▁stated": 8703, - "bootstrap": 8704, - "ött": 8705, - "ozzá": 8706, - "▁CON": 8707, - "hav": 8708, - "▁sleep": 8709, - "eda": 8710, - "hot": 8711, - "ánd": 8712, - "▁Sy": 8713, - "▁temps": 8714, - "amar": 8715, - "▁scal": 8716, - "▁ast": 8717, - "▁opening": 8718, - "clipse": 8719, - "▁programming": 8720, - "▁letters": 8721, - "▁profile": 8722, - "nah": 8723, - "▁beyond": 8724, - "▁Further": 8725, - "faces": 8726, - "▁chart": 8727, - "зда": 8728, - "aign": 8729, - "ній": 8730, - "▁Rol": 8731, - "овано": 8732, - "terior": 8733, - "wed": 8734, - "▁herself": 8735, - "▁ng": 8736, - "anguages": 8737, - "}=\\": 8738, - "ynamic": 8739, - "▁jug": 8740, - "▁Example": 8741, - "▁(†": 8742, - "▁playing": 8743, - "▁usage": 8744, - "▁managed": 8745, - "▁Natur": 8746, - "тери": 8747, - "▁Et": 8748, - "eria": 8749, - "▁daughter": 8750, - "нием": 8751, - "Fragment": 8752, - "▁hol": 8753, - "Fl": 8754, - "ографи": 8755, - "▁ihn": 8756, - "üh": 8757, - "instance": 8758, - "▁comun": 8759, - "▁truth": 8760, - "▁само": 8761, - "▁implemented": 8762, - "▁anyway": 8763, - "▁Cro": 8764, - "фе": 8765, - "GC": 8766, - "ubuntu": 8767, - "types": 8768, - "ês": 8769, - ".~\\": 8770, - "fold": 8771, - "▁joined": 8772, - "??": 8773, - "▁mé": 8774, - "▁wild": 8775, - "клю": 8776, - "rowser": 8777, - "▁Home": 8778, - "skiej": 8779, - "▁JOIN": 8780, - "▁juin": 8781, - "hof": 8782, - "▁dataset": 8783, - "жду": 8784, - "'))": 8785, - "▁miejs": 8786, - "API": 8787, - "▁edited": 8788, - "ools": 8789, - "▁seeing": 8790, - "ijd": 8791, - "▁procedure": 8792, - "▁Bras": 8793, - "▁signed": 8794, - "▁externos": 8795, - "▁disapp": 8796, - "▁Direct": 8797, - "cyc": 8798, - "▁consult": 8799, - "örd": 8800, - "Widget": 8801, - "cious": 8802, - "sect": 8803, - "▁Ди": 8804, - "▁wind": 8805, - "▁Archivado": 8806, - "aml": 8807, - "сс": 8808, - "Wh": 8809, - "kbd": 8810, - "▁Army": 8811, - "▁suffer": 8812, - "artifact": 8813, - "▁resolve": 8814, - "▁Sport": 8815, - "▁це": 8816, - "idas": 8817, - "▁tax": 8818, - "idi": 8819, - "▁actions": 8820, - "пра": 8821, - "pués": 8822, - "▁naj": 8823, - "False": 8824, - "▁chance": 8825, - "▁тако": 8826, - "äd": 8827, - "▁dol": 8828, - "▁env": 8829, - "▁basically": 8830, - "▁Council": 8831, - "zte": 8832, - "▁displayed": 8833, - "nil": 8834, - "complete": 8835, - "▁Lem": 8836, - "iance": 8837, - "▁основ": 8838, - "▁depend": 8839, - "plom": 8840, - "ensus": 8841, - "uts": 8842, - "▁Hot": 8843, - "bitr": 8844, - "▁validation": 8845, - "abb": 8846, - "▁тре": 8847, - "km": 8848, - "zd": 8849, - "öff": 8850, - "WE": 8851, - "▁interested": 8852, - "▁{\"": 8853, - "aro": 8854, - "▁correl": 8855, - "▁dedic": 8856, - "▁lists": 8857, - "▁Bibliografia": 8858, - "▁earlier": 8859, - "program": 8860, - "▁première": 8861, - "front": 8862, - "Tab": 8863, - "ству": 8864, - "drop": 8865, - "▁fear": 8866, - "▁Enlaces": 8867, - "▁Capt": 8868, - "▁realiz": 8869, - "▁hal": 8870, - "▁instances": 8871, - "▁susp": 8872, - "illing": 8873, - "%;": 8874, - "{}": 8875, - "||": 8876, - "▁partition": 8877, - "▁Build": 8878, - "▁wo": 8879, - "▁Пер": 8880, - "▁director": 8881, - "▁Sin": 8882, - "тия": 8883, - "rsg": 8884, - "ouver": 8885, - "▁nearly": 8886, - "oda": 8887, - "ктив": 8888, - "▁sir": 8889, - "IME": 8890, - "▁janvier": 8891, - "▁Win": 8892, - "Build": 8893, - "ieurs": 8894, - "INE": 8895, - "double": 8896, - "Last": 8897, - "▁policy": 8898, - "store": 8899, - "▁observed": 8900, - "▁familie": 8901, - "nica": 8902, - "rey": 8903, - "зь": 8904, - "▁Year": 8905, - "▁developed": 8906, - "▁Institute": 8907, - "▁reply": 8908, - "Comple": 8909, - "ician": 8910, - "▁Guer": 8911, - "▁dall": 8912, - "▁desp": 8913, - "▁Football": 8914, - "Empty": 8915, - "cken": 8916, - "unda": 8917, - "▁Ur": 8918, - "▁ig": 8919, - "▁Atl": 8920, - "author": 8921, - "▁Bol": 8922, - "zig": 8923, - "nat": 8924, - "št": 8925, - "security": 8926, - "onic": 8927, - "▁pes": 8928, - "itan": 8929, - "▁Extern": 8930, - "jan": 8931, - "VAL": 8932, - "▁им": 8933, - "bold": 8934, - "▁ва": 8935, - "▁Мо": 8936, - "▁disput": 8937, - "▁trick": 8938, - "▁ped": 8939, - ")^{": 8940, - "into": 8941, - "Sim": 8942, - "▁parallel": 8943, - "fox": 8944, - "normal": 8945, - "inent": 8946, - "педи": 8947, - "hold": 8948, - "OK": 8949, - "▁chem": 8950, - "▁twice": 8951, - "▁username": 8952, - "ič": 8953, - "▁representation": 8954, - "▁journal": 8955, - "▁:-": 8956, - "▁batt": 8957, - "\\%": 8958, - "▁certainly": 8959, - "▁Exception": 8960, - "eps": 8961, - "shot": 8962, - "ategy": 8963, - "Show": 8964, - "▁Carl": 8965, - "rig": 8966, - "▁reported": 8967, - "bottom": 8968, - "TF": 8969, - "▁Francisco": 8970, - "nap": 8971, - "▁Championship": 8972, - "▁court": 8973, - "▁sources": 8974, - "iour": 8975, - "▁conserv": 8976, - "dict": 8977, - "▁Ру": 8978, - "IB": 8979, - "▁Ve": 8980, - "▁№": 8981, - "▁ER": 8982, - "\"));": 8983, - "▁Point": 8984, - "azine": 8985, - "▁internet": 8986, - "дна": 8987, - "▁carried": 8988, - "▁Field": 8989, - "axis": 8990, - "▁Sun": 8991, - "▁ave": 8992, - "пис": 8993, - "ян": 8994, - "asy": 8995, - "▁julio": 8996, - "▁depuis": 8997, - "▁suggestion": 8998, - "[[": 8999, - "▁Archive": 9000, - "ęp": 9001, - "▁Pra": 9002, - "reh": 9003, - "▁demonstr": 9004, - "фі": 9005, - "cmd": 9006, - "▁wasn": 9007, - "▁phone": 9008, - "upload": 9009, - "aya": 9010, - "тора": 9011, - "lines": 9012, - "▁indu": 9013, - "▁vot": 9014, - "▁espa": 9015, - "▁bin": 9016, - "▁после": 9017, - "plan": 9018, - "▁junio": 9019, - "orial": 9020, - "free": 9021, - "sterreich": 9022, - "▁ду": 9023, - "▁linked": 9024, - "▁enable": 9025, - "PC": 9026, - "▁density": 9027, - "▁Egy": 9028, - "yo": 9029, - "endre": 9030, - "▁съ": 9031, - "▁italiano": 9032, - "▁AR": 9033, - "▁Pers": 9034, - "férés": 9035, - "▁скла": 9036, - "Var": 9037, - "▁Once": 9038, - "Red": 9039, - "buffer": 9040, - "▁Enter": 9041, - "▁Š": 9042, - "imiento": 9043, - "Store": 9044, - "▁health": 9045, - "vat": 9046, - "IST": 9047, - "Oh": 9048, - "▁kw": 9049, - "▁riv": 9050, - "▁somewhere": 9051, - "ografie": 9052, - "private": 9053, - "кти": 9054, - "▁delay": 9055, - "▁Http": 9056, - "job": 9057, - "rael": 9058, - "empor": 9059, - "▁diciembre": 9060, - "ête": 9061, - "цу": 9062, - "▁commit": 9063, - "oso": 9064, - "Values": 9065, - "▁headers": 9066, - "transform": 9067, - "▁processing": 9068, - "rå": 9069, - "▁Ah": 9070, - "▁Node": 9071, - "------------": 9072, - "▁faire": 9073, - "▁hun": 9074, - "Player": 9075, - "▁review": 9076, - "гда": 9077, - "▁limited": 9078, - "▁Property": 9079, - "▁serve": 9080, - "riage": 9081, - "▁Master": 9082, - "▁kann": 9083, - "crete": 9084, - "phere": 9085, - "ёр": 9086, - "▁chief": 9087, - "▁scene": 9088, - "kin": 9089, - "▁uniform": 9090, - "▁febrero": 9091, - "\"}": 9092, - "illo": 9093, - "ITE": 9094, - "ouvel": 9095, - "usepackage": 9096, - "enth": 9097, - "▁quickly": 9098, - "Lambda": 9099, - "xes": 9100, - "▁cells": 9101, - "rog": 9102, - "amin": 9103, - "▁Мар": 9104, - "▁mayor": 9105, - "player": 9106, - "++;": 9107, - "▁Насе": 9108, - "▁safe": 9109, - "▁veloc": 9110, - "▁обра": 9111, - "Database": 9112, - "neh": 9113, - "Vert": 9114, - "▁fle": 9115, - "▁фор": 9116, - "▁foreign": 9117, - "Abstract": 9118, - "▁magn": 9119, - "▁modified": 9120, - "▁military": 9121, - "▁monde": 9122, - "▁Action": 9123, - "▁bank": 9124, - "Serial": 9125, - "▁continuous": 9126, - "▁gel": 9127, - "▁physical": 9128, - "▁introduced": 9129, - "uture": 9130, - "rick": 9131, - "▁presented": 9132, - "▁Prov": 9133, - "▁Both": 9134, - "Pos": 9135, - "super": 9136, - "&#": 9137, - "▁finding": 9138, - "nel": 9139, - "unde": 9140, - "▁från": 9141, - "skim": 9142, - "▁Hill": 9143, - "fn": 9144, - "▁Canad": 9145, - "▁intended": 9146, - "ozzáférés": 9147, - "▁juillet": 9148, - "▁Wars": 9149, - "▁successful": 9150, - "▁charg": 9151, - "iele": 9152, - "omething": 9153, - "oku": 9154, - "fetch": 9155, - "▁}}": 9156, - "bank": 9157, - "operatorname": 9158, - "▁Color": 9159, - "▁Card": 9160, - "tu": 9161, - "▁\",": 9162, - "wid": 9163, - "▁gep": 9164, - "XML": 9165, - "================": 9166, - "▁Virgin": 9167, - "ährend": 9168, - "licated": 9169, - "Dir": 9170, - "zero": 9171, - "▁Kal": 9172, - "▁Party": 9173, - "▁å": 9174, - "price": 9175, - "don": 9176, - "▁warning": 9177, - "▁Bad": 9178, - "▁Supp": 9179, - "▁Liga": 9180, - "▁Pierre": 9181, - "Record": 9182, - "ulator": 9183, - "▁Rome": 9184, - "▁theorem": 9185, - "▁entirely": 9186, - "ским": 9187, - "het": 9188, - "▁dopo": 9189, - "Next": 9190, - "mlung": 9191, - "wig": 9192, - "▁Ath": 9193, - "▁Sou": 9194, - "licher": 9195, - "▁sudo": 9196, - "ests": 9197, - "хів": 9198, - "▁septiembre": 9199, - "▁micro": 9200, - "▁trop": 9201, - "fit": 9202, - "Core": 9203, - "▁Radio": 9204, - "▁Organ": 9205, - "▁Power": 9206, - "CF": 9207, - "▁Last": 9208, - "▁oppos": 9209, - "▁offset": 9210, - "▁regia": 9211, - "▁minimum": 9212, - "▁helped": 9213, - "andon": 9214, - "ifying": 9215, - "ruit": 9216, - "enschapp": 9217, - "▁bere": 9218, - "VM": 9219, - "▁Awards": 9220, - "▁agr": 9221, - "ynomial": 9222, - "enced": 9223, - "▁devices": 9224, - "▁bot": 9225, - "▁firm": 9226, - "▁writer": 9227, - "▁ring": 9228, - ".-": 9229, - "istes": 9230, - "lä": 9231, - "▁mel": 9232, - "entation": 9233, - "▁Schw": 9234, - "▁nome": 9235, - "▁pobla": 9236, - "▁woj": 9237, - "▁ul": 9238, - "ento": 9239, - "ых": 9240, - "▁resist": 9241, - "▁remains": 9242, - "▁Ca": 9243, - "aña": 9244, - "▁Court": 9245, - "utable": 9246, - "entially": 9247, - "▁trat": 9248, - "▁Visual": 9249, - "▁restrict": 9250, - "▁previously": 9251, - "cation": 9252, - "▁осо": 9253, - "▁MySQL": 9254, - "för": 9255, - "cala": 9256, - "▁culture": 9257, - "live": 9258, - "▁accepted": 9259, - "Did": 9260, - "▁hous": 9261, - "▁selection": 9262, - "▁decre": 9263, - "margin": 9264, - "urb": 9265, - "▁Inc": 9266, - "▁Many": 9267, - "ibt": 9268, - "▁succeed": 9269, - "Binding": 9270, - "cí": 9271, - "▁Rog": 9272, - "▁shouldn": 9273, - "cloud": 9274, - "▁dz": 9275, - "вав": 9276, - "▁pix": 9277, - "small": 9278, - "▁projects": 9279, - "▁OK": 9280, - "▁latest": 9281, - "▁references": 9282, - "Program": 9283, - "▁erst": 9284, - "▁як": 9285, - "▁kam": 9286, - "▁Camb": 9287, - "ellt": 9288, - "öd": 9289, - "none": 9290, - "▁jusqu": 9291, - "king": 9292, - "▁Ped": 9293, - "assert": 9294, - "CS": 9295, - "rito": 9296, - "essa": 9297, - "лько": 9298, - "▁Von": 9299, - "▁Edward": 9300, - "▁impossible": 9301, - "np": 9302, - "words": 9303, - "ielt": 9304, - "▁Page": 9305, - "lers": 9306, - "▁pier": 9307, - "▁области": 9308, - "ittee": 9309, - "▁([": 9310, - "▁trust": 9311, - "NG": 9312, - "redu": 9313, - "<<": 9314, - "rial": 9315, - "▁products": 9316, - "▁Ern": 9317, - "rière": 9318, - "гов": 9319, - "▁Reich": 9320, - "▁Road": 9321, - "▁nested": 9322, - "Display": 9323, - "▁strength": 9324, - "ografía": 9325, - "▁announced": 9326, - "▁Science": 9327, - "▁райо": 9328, - "Parameter": 9329, - "▁Task": 9330, - "uments": 9331, - "▁adopt": 9332, - "▁Only": 9333, - "ють": 9334, - "▁cli": 9335, - "▁lem": 9336, - "stood": 9337, - "▁FI": 9338, - "ências": 9339, - "ponents": 9340, - "]$": 9341, - "comment": 9342, - "▁ya": 9343, - "should": 9344, - "ike": 9345, - "tim": 9346, - "ellig": 9347, - "▁sending": 9348, - "▁ajax": 9349, - "▁noviembre": 9350, - "umes": 9351, - "▁weiter": 9352, - "▁Dans": 9353, - "opp": 9354, - "▁septembre": 9355, - "otimes": 9356, - "ző": 9357, - "▁ep": 9358, - "vere": 9359, - "▁oh": 9360, - ":=": 9361, - "▁Song": 9362, - "”,": 9363, - "▁viv": 9364, - "▁queries": 9365, - "▁vá": 9366, - "▁décembre": 9367, - "▁unable": 9368, - "▁erh": 9369, - "▁`-": 9370, - "▁Lee": 9371, - "▁ersten": 9372, - "ôt": 9373, - "стве": 9374, - "TS": 9375, - "▁fragment": 9376, - "▁wide": 9377, - "▁suff": 9378, - "▁dut": 9379, - "▁Vere": 9380, - "іс": 9381, - "ading": 9382, - "iego": 9383, - "icago": 9384, - "▁Argent": 9385, - "orer": 9386, - "ennes": 9387, - "▁Leb": 9388, - "linux": 9389, - "acing": 9390, - "▁broken": 9391, - "tp": 9392, - "ío": 9393, - "abeth": 9394, - "istas": 9395, - "gew": 9396, - "ième": 9397, - "cas": 9398, - "▁preced": 9399, - "▁Dal": 9400, - "▁compared": 9401, - "equiv": 9402, - "illy": 9403, - "teen": 9404, - "▁Console": 9405, - "▁strict": 9406, - "itaire": 9407, - "▁ED": 9408, - "entials": 9409, - "▁perman": 9410, - "▁tous": 9411, - "▁geme": 9412, - "▁extrem": 9413, - "▁окру": 9414, - "kg": 9415, - "▁heavy": 9416, - "▁avril": 9417, - "▁anti": 9418, - "▁octobre": 9419, - "utf": 9420, - "helm": 9421, - "amples": 9422, - "▁(_": 9423, - "aken": 9424, - "▁dear": 9425, - "▁opinion": 9426, - "▁fish": 9427, - "▁Alexander": 9428, - "iw": 9429, - "им": 9430, - "cadem": 9431, - "▁reflect": 9432, - "▁др": 9433, - "▁trib": 9434, - "common": 9435, - "▁clearly": 9436, - "▁saf": 9437, - "=\"@+": 9438, - "▁Мос": 9439, - "сите": 9440, - "eqnarray": 9441, - "nung": 9442, - "▁relationship": 9443, - "▁Sem": 9444, - "▁killed": 9445, - "ted": 9446, - "uno": 9447, - "▁лі": 9448, - "▁wid": 9449, - "anning": 9450, - "▁panel": 9451, - "▁Leben": 9452, - "▁ruby": 9453, - "ansion": 9454, - "▁aren": 9455, - "tabular": 9456, - "alet": 9457, - "}$$": 9458, - "▁Lake": 9459, - "▁suite": 9460, - "▁minor": 9461, - "Hozzáférés": 9462, - "▁xmlns": 9463, - "DIR": 9464, - "driver": 9465, - "ints": 9466, - "▁vic": 9467, - "AND": 9468, - "prim": 9469, - "сылки": 9470, - "▁Ox": 9471, - "TC": 9472, - "rivial": 9473, - "atie": 9474, - "▁eight": 9475, - "▁conflic": 9476, - "angel": 9477, - "▁Begr": 9478, - "▁explicitly": 9479, - "ются": 9480, - "▁Dev": 9481, - "render": 9482, - "▁reprodu": 9483, - "▁cré": 9484, - "Gu": 9485, - "MB": 9486, - "▁kön": 9487, - "▁remained": 9488, - "▁kl": 9489, - "хов": 9490, - "▁byl": 9491, - "Phi": 9492, - "▁detail": 9493, - "jav": 9494, - "▁mouse": 9495, - "Bas": 9496, - "ię": 9497, - "asser": 9498, - "hs": 9499, - "▁shift": 9500, - "▁últ": 9501, - "rand": 9502, - "▁btn": 9503, - "raz": 9504, - "▁pul": 9505, - "▁statements": 9506, - "filename": 9507, - "▁prompt": 9508, - "élé": 9509, - "ikz": 9510, - "▁Sus": 9511, - "▁debut": 9512, - "Stat": 9513, - "forms": 9514, - "▁Hein": 9515, - "stadt": 9516, - "ennis": 9517, - "пол": 9518, - "arante": 9519, - "цій": 9520, - "▁queue": 9521, - "▁reci": 9522, - "▁sta": 9523, - "ynchron": 9524, - "centering": 9525, - "Some": 9526, - "Graph": 9527, - "▁tested": 9528, - "▁Kunst": 9529, - "ом": 9530, - "▁Nothing": 9531, - "ieu": 9532, - "“.": 9533, - "Bundle": 9534, - "▁oficial": 9535, - "allow": 9536, - "▁React": 9537, - "▁Library": 9538, - "blue": 9539, - "▁verw": 9540, - "▁pare": 9541, - "▁Friedrich": 9542, - "▁aware": 9543, - "Exp": 9544, - "▁effects": 9545, - "▁горо": 9546, - "lopedia": 9547, - "▁Ven": 9548, - "rale": 9549, - "▁Final": 9550, - "▁propos": 9551, - "lacement": 9552, - "kten": 9553, - "▁novel": 9554, - "orter": 9555, - "▁Germany": 9556, - "▁django": 9557, - "▁transition": 9558, - "▁happened": 9559, - "▁beautiful": 9560, - "▁neither": 9561, - "▁libraries": 9562, - "▁hide": 9563, - "alg": 9564, - "▁aspect": 9565, - "▁forget": 9566, - "cademy": 9567, - "onte": 9568, - "refix": 9569, - "▁cloud": 9570, - "ned": 9571, - "cdots": 9572, - "register": 9573, - "nym": 9574, - ".):": 9575, - "▁Jew": 9576, - "▁très": 9577, - "ниче": 9578, - "▁Dor": 9579, - "▁proc": 9580, - "▁gan": 9581, - "▁є": 9582, - "▁Sav": 9583, - "ví": 9584, - "Settings": 9585, - "▁Vari": 9586, - "▁cours": 9587, - "Ro": 9588, - "▁conj": 9589, - "▁reasons": 9590, - "▁reader": 9591, - "лександ": 9592, - "icate": 9593, - "}),": 9594, - "▁tasks": 9595, - "▁Ray": 9596, - "▁ric": 9597, - "Ke": 9598, - "onie": 9599, - "rf": 9600, - ")[": 9601, - "▁subsequ": 9602, - "▁Turn": 9603, - "▁VIAF": 9604, - "mathsf": 9605, - "HE": 9606, - "▁declare": 9607, - "▁protocol": 9608, - "▁PC": 9609, - "цион": 9610, - "ViewById": 9611, - "▁animation": 9612, - "▁confused": 9613, - "вич": 9614, - "▁enabled": 9615, - "owo": 9616, - "ást": 9617, - "öt": 9618, - "▁mand": 9619, - "▁Rail": 9620, - "fields": 9621, - "▁Kap": 9622, - "▁algebra": 9623, - "▁Су": 9624, - "férence": 9625, - "▁Current": 9626, - "сно": 9627, - "▁Lim": 9628, - "Params": 9629, - "▁Antonio": 9630, - "▁tv": 9631, - "late": 9632, - "ifer": 9633, - "Entry": 9634, - "▁Serv": 9635, - "▁musical": 9636, - "▁trace": 9637, - "▁scient": 9638, - "fic": 9639, - "▁forgot": 9640, - "video": 9641, - "▁older": 9642, - "Tree": 9643, - "▁uns": 9644, - "ники": 9645, - "▁Europa": 9646, - "▁Zwe": 9647, - "▁бе": 9648, - "▁vec": 9649, - "жу": 9650, - "▁▁▁▁▁▁▁▁▁▁▁": 9651, - "Match": 9652, - "span": 9653, - "▁blank": 9654, - "▁später": 9655, - "▁Ty": 9656, - "▁dict": 9657, - "ña": 9658, - "▁confirm": 9659, - "▁vý": 9660, - "зан": 9661, - "Rel": 9662, - "film": 9663, - "▁Rot": 9664, - "▁Hy": 9665, - "ках": 9666, - "▁demand": 9667, - "▁minist": 9668, - "▁Madrid": 9669, - "▁usual": 9670, - "spiel": 9671, - "eros": 9672, - "▁tutorial": 9673, - "▁Ссылки": 9674, - "sys": 9675, - "циаль": 9676, - "▁spread": 9677, - "▁convers": 9678, - "▁roll": 9679, - "artifactId": 9680, - "▁Number": 9681, - "▁symmet": 9682, - "▁Mult": 9683, - "expected": 9684, - "▁axis": 9685, - "▁matching": 9686, - "▁food": 9687, - "groupId": 9688, - "Mapp": 9689, - "▁свя": 9690, - "▁vend": 9691, - "Found": 9692, - "otto": 9693, - "Cat": 9694, - "crit": 9695, - "istent": 9696, - "▁drei": 9697, - "▁ended": 9698, - "▁Tele": 9699, - "component": 9700, - "▁involved": 9701, - "▁Estados": 9702, - "▁danger": 9703, - "▁chain": 9704, - "▁Prom": 9705, - "hom": 9706, - "▁polít": 9707, - "cop": 9708, - "▁nap": 9709, - "rif": 9710, - "plements": 9711, - "▁vent": 9712, - "anna": 9713, - "anted": 9714, - "dated": 9715, - "anth": 9716, - "▁threads": 9717, - "зова": 9718, - "▁станов": 9719, - "▁eerst": 9720, - "buf": 9721, - "heid": 9722, - "▁Ru": 9723, - "▁Prim": 9724, - "▁migr": 9725, - "▁Unidos": 9726, - "▁arbitr": 9727, - "▁roman": 9728, - "ountry": 9729, - "ultur": 9730, - "▁König": 9731, - "▁annot": 9732, - "aching": 9733, - "▁Haupt": 9734, - "umin": 9735, - "▁hem": 9736, - "ckets": 9737, - "bau": 9738, - "ection": 9739, - "eft": 9740, - "▁packages": 9741, - "▁Kur": 9742, - "thur": 9743, - "▁pays": 9744, - "liament": 9745, - "▁Бу": 9746, - "▁cada": 9747, - "points": 9748, - "ocket": 9749, - "▁verb": 9750, - "лее": 9751, - "▁submit": 9752, - "▁san": 9753, - "ruby": 9754, - "▁east": 9755, - "kov": 9756, - "▁Verlag": 9757, - "▁spot": 9758, - "ppo": 9759, - "Each": 9760, - "jekt": 9761, - "▁Biographie": 9762, - "▁news": 9763, - "▁país": 9764, - "ufact": 9765, - "▁dia": 9766, - "кова": 9767, - "▁accompl": 9768, - "▁Ét": 9769, - "ilities": 9770, - "▁ihm": 9771, - "invoke": 9772, - "▁append": 9773, - ".),": 9774, - "▁lab": 9775, - "anging": 9776, - "istan": 9777, - "resol": 9778, - "▁Section": 9779, - "Parent": 9780, - "moz": 9781, - "Mat": 9782, - "styles": 9783, - "unden": 9784, - "“,": 9785, - "irtschaft": 9786, - "ким": 9787, - "▁Finally": 9788, - "phen": 9789, - "▁Pac": 9790, - "▁ArrayList": 9791, - "▁recover": 9792, - "▁education": 9793, - "models": 9794, - "ped": 9795, - "▁happy": 9796, - "чу": 9797, - "▁guerra": 9798, - "media": 9799, - "OF": 9800, - "▁ensure": 9801, - "Mark": 9802, - "database": 9803, - "oggle": 9804, - "▁publish": 9805, - "OW": 9806, - "▁Bau": 9807, - "?.": 9808, - "▁части": 9809, - "▁repository": 9810, - "▁Matt": 9811, - "high": 9812, - "oven": 9813, - "▁ger": 9814, - "▁unknown": 9815, - "Amer": 9816, - "▁Brown": 9817, - "ALL": 9818, - "▁resulting": 9819, - "▁bor": 9820, - "▁poet": 9821, - "ними": 9822, - "Email": 9823, - "Font": 9824, - "▁hist": 9825, - "▁today": 9826, - "▁Berg": 9827, - "▁buttons": 9828, - "тал": 9829, - "▁sni": 9830, - "▁челов": 9831, - "Cre": 9832, - "▁union": 9833, - "▁zich": 9834, - "ishop": 9835, - "▁quando": 9836, - "Po": 9837, - "CTION": 9838, - "▁Cost": 9839, - "судар": 9840, - "erved": 9841, - "Note": 9842, - "Equal": 9843, - "лия": 9844, - "бур": 9845, - "▁abstract": 9846, - "stop": 9847, - "▁advice": 9848, - "▁icon": 9849, - "▁travel": 9850, - "BS": 9851, - "vens": 9852, - "▁batch": 9853, - "lique": 9854, - "sheet": 9855, - "▁ihre": 9856, - "emon": 9857, - "berto": 9858, - "▁assigned": 9859, - "ью": 9860, - "Phone": 9861, - "▁award": 9862, - "▁functionality": 9863, - "alla": 9864, - "▁Dam": 9865, - "▁ciudad": 9866, - "▁cluster": 9867, - "Description": 9868, - "▁sheet": 9869, - "▁Australian": 9870, - "▁».": 9871, - "▁\"<": 9872, - "▁wondering": 9873, - "aine": 9874, - "▁represented": 9875, - "kappa": 9876, - "nb": 9877, - "▁sy": 9878, - "▁Kö": 9879, - "=\"#": 9880, - "▁seven": 9881, - "Directory": 9882, - "▁sister": 9883, - "plates": 9884, - "▁luck": 9885, - "▁remaining": 9886, - "▁Vill": 9887, - "werk": 9888, - "anni": 9889, - "etti": 9890, - "func": 9891, - "▁ban": 9892, - "ims": 9893, - "miss": 9894, - "agraph": 9895, - "екси": 9896, - "▁Ref": 9897, - "nitt": 9898, - "▁Gab": 9899, - "▁andere": 9900, - "▁jedoch": 9901, - "results": 9902, - "!\\": 9903, - "▁listed": 9904, - "▁loro": 9905, - "▁knows": 9906, - "жно": 9907, - "Rad": 9908, - "▁socket": 9909, - "multi": 9910, - "▁рі": 9911, - "rails": 9912, - "▁tar": 9913, - "▁gentle": 9914, - "sett": 9915, - "services": 9916, - "bound": 9917, - "igkeit": 9918, - "aja": 9919, - "▁cmd": 9920, - "agger": 9921, - "▁ba": 9922, - "▁Belg": 9923, - "▁Kle": 9924, - "▁wordt": 9925, - "▁fost": 9926, - "▁dimension": 9927, - "Ang": 9928, - "uming": 9929, - "Obj": 9930, - "нен": 9931, - "▁Marie": 9932, - "exists": 9933, - "тро": 9934, - "▁боль": 9935, - "emente": 9936, - "▁Jon": 9937, - "SERT": 9938, - "▁highest": 9939, - "aki": 9940, - "▁tres": 9941, - "▁circum": 9942, - "▁Down": 9943, - "ommen": 9944, - "urer": 9945, - "▁causes": 9946, - "venue": 9947, - "issance": 9948, - "▁influence": 9949, - "▁fat": 9950, - "реди": 9951, - "}\\\\": 9952, - "▁entr": 9953, - "▁Sign": 9954, - "▁кла": 9955, - "▁binding": 9956, - "essen": 9957, - "▁Фран": 9958, - "▁Local": 9959, - "▁явля": 9960, - "appro": 9961, - "▁dependencies": 9962, - "▁talking": 9963, - "▁zurück": 9964, - "connection": 9965, - "Active": 9966, - "bbe": 9967, - "irls": 9968, - "▁Inf": 9969, - "wd": 9970, - "▁ис": 9971, - "road": 9972, - "▁conven": 9973, - "ět": 9974, - "вез": 9975, - "▁entries": 9976, - "esc": 9977, - "▁bits": 9978, - "asso": 9979, - "WR": 9980, - "ships": 9981, - "▁dés": 9982, - "esp": 9983, - "Make": 9984, - "▁familiar": 9985, - "Art": 9986, - "▁army": 9987, - "ctr": 9988, - "éric": 9989, - "queue": 9990, - "▁\\{": 9991, - "uela": 9992, - "amiento": 9993, - "ших": 9994, - "▁\"\"\"": 9995, - "contr": 9996, - "лле": 9997, - "FS": 9998, - "▁market": 9999, - "ång": 10000, - "citep": 10001, - "Ill": 10002, - "rank": 10003, - "▁sender": 10004, - "▁beim": 10005, - "рак": 10006, - "▁compat": 10007, - "▁occurs": 10008, - "▁diese": 10009, - "ститу": 10010, - "awa": 10011, - "▁iOS": 10012, - "▁Chinese": 10013, - "▁TR": 10014, - "▁Ken": 10015, - "▁Une": 10016, - "▁creates": 10017, - "▁showed": 10018, - "▁év": 10019, - "ologia": 10020, - "▁protest": 10021, - "▁Pf": 10022, - "▁squad": 10023, - "++,": 10024, - "áv": 10025, - "▁essere": 10026, - "зя": 10027, - "kol": 10028, - "▁slightly": 10029, - "addr": 10030, - "ân": 10031, - "▁reduce": 10032, - "▁\\(\\": 10033, - "▁Dep": 10034, - "▁generic": 10035, - "Loader": 10036, - "ți": 10037, - "▁пос": 10038, - "▁occasion": 10039, - "▁Lady": 10040, - "entity": 10041, - "▁avant": 10042, - "▁Pas": 10043, - "aggio": 10044, - "\\{": 10045, - "пад": 10046, - "atholic": 10047, - "Password": 10048, - "▁respond": 10049, - "▁Non": 10050, - "AG": 10051, - "neg": 10052, - "▁ус": 10053, - "blob": 10054, - "cke": 10055, - "▁Consider": 10056, - "▁Care": 10057, - "iki": 10058, - "▁Chicago": 10059, - "inden": 10060, - "▁Cop": 10061, - "]+": 10062, - "öm": 10063, - "évrier": 10064, - "кло": 10065, - "alen": 10066, - "▁maj": 10067, - "racy": 10068, - "orte": 10069, - "ients": 10070, - "ells": 10071, - "activity": 10072, - "▁runtime": 10073, - "NULL": 10074, - "▁possibly": 10075, - "▁stri": 10076, - "izi": 10077, - "▁mir": 10078, - "▁Version": 10079, - "prime": 10080, - "▁twenty": 10081, - "▁Mah": 10082, - "▁sounds": 10083, - "шен": 10084, - "clusion": 10085, - "acz": 10086, - "▁determined": 10087, - "▁Rep": 10088, - "▁Landes": 10089, - "▁wall": 10090, - "igi": 10091, - "▁reset": 10092, - "шо": 10093, - "yan": 10094, - "Met": 10095, - "ei": 10096, - "▁appearance": 10097, - "▁fois": 10098, - "▁nell": 10099, - "esi": 10100, - "ёт": 10101, - "loor": 10102, - "▁Ul": 10103, - "▁resolution": 10104, - "▁fot": 10105, - "▁throughout": 10106, - "▁ri": 10107, - "Level": 10108, - "pool": 10109, - "▁identity": 10110, - "▁janu": 10111, - "▁imper": 10112, - "▁över": 10113, - "}`": 10114, - "▁infer": 10115, - "▁dates": 10116, - "▁Standard": 10117, - "force": 10118, - "ockey": 10119, - "tera": 10120, - "▁distingu": 10121, - "▁presence": 10122, - "lica": 10123, - "▁leaving": 10124, - "itung": 10125, - "éb": 10126, - "▁establish": 10127, - "▁maar": 10128, - "adi": 10129, - "▁News": 10130, - "azon": 10131, - "folg": 10132, - "▁Hence": 10133, - "▁Ye": 10134, - "▁fab": 10135, - "▁führ": 10136, - "itmap": 10137, - "▁Vers": 10138, - "rov": 10139, - "Sign": 10140, - "device": 10141, - "Sigma": 10142, - "▁wetenschapp": 10143, - "▁Ps": 10144, - "PATH": 10145, - "▁torn": 10146, - "vest": 10147, - "стов": 10148, - "account": 10149, - "▁largest": 10150, - "▁percent": 10151, - "▁Women": 10152, - "▁img": 10153, - "tool": 10154, - "▁roce": 10155, - "▁ay": 10156, - "inet": 10157, - "▁août": 10158, - "▁polynomial": 10159, - "▁integral": 10160, - "▁areas": 10161, - "}'": 10162, - "▁hyp": 10163, - "loyee": 10164, - "таль": 10165, - "▁proxy": 10166, - "▁Wy": 10167, - "▁Мекси": 10168, - "▁escape": 10169, - "olar": 10170, - "▁mistake": 10171, - ")}{": 10172, - "▁Pot": 10173, - "▁processes": 10174, - "\">\r": 10175, - "halten": 10176, - "zza": 10177, - "amo": 10178, - "кре": 10179, - "▁Wood": 10180, - "ør": 10181, - "▁сер": 10182, - "ocia": 10183, - "two": 10184, - "profile": 10185, - "▁Ast": 10186, - "embro": 10187, - "▁arms": 10188, - "inas": 10189, - "innen": 10190, - "▁msg": 10191, - "INT": 10192, - "▁batter": 10193, - "ignment": 10194, - "▁vy": 10195, - "Hrsg": 10196, - "▁Grund": 10197, - "roc": 10198, - "seg": 10199, - "▁decor": 10200, - "▁eventually": 10201, - ">,": 10202, - "▁pag": 10203, - "anten": 10204, - "▁strugg": 10205, - "}^\\": 10206, - "daten": 10207, - "▁rela": 10208, - "пов": 10209, - "▁коро": 10210, - "▁Bos": 10211, - "▁labor": 10212, - "▁Secret": 10213, - "ugen": 10214, - "▁jap": 10215, - "▁husband": 10216, - "▁Album": 10217, - "▁etwa": 10218, - "▁произ": 10219, - "richt": 10220, - "rach": 10221, - "bat": 10222, - "▁prepar": 10223, - "▁Stock": 10224, - "▁lack": 10225, - "хід": 10226, - "▁hogy": 10227, - "▁Chrome": 10228, - "▁Admin": 10229, - "▁comparison": 10230, - "▁increasing": 10231, - "нг": 10232, - "imi": 10233, - "Db": 10234, - "▁gef": 10235, - "ucht": 10236, - "ése": 10237, - "gence": 10238, - "▁Core": 10239, - "▁incorrect": 10240, - "▁assuming": 10241, - "ourse": 10242, - "ieron": 10243, - "▁Theorem": 10244, - "▁casa": 10245, - "jes": 10246, - "▁дере": 10247, - "▁`\"": 10248, - "LD": 10249, - "äß": 10250, - "Deb": 10251, - "▁suiv": 10252, - "▁Bank": 10253, - "libs": 10254, - "▁Leon": 10255, - "▁quart": 10256, - "▁professional": 10257, - "▁tiene": 10258, - "▁accomp": 10259, - "стер": 10260, - "▁UK": 10261, - "NN": 10262, - "▁lí": 10263, - "ця": 10264, - "kel": 10265, - "▁•": 10266, - "▁dise": 10267, - "onto": 10268, - "▁má": 10269, - "ifs": 10270, - "bild": 10271, - "▁compute": 10272, - "▁éd": 10273, - "ję": 10274, - "▁Mé": 10275, - "▁languages": 10276, - "▁Times": 10277, - "cen": 10278, - "▁авто": 10279, - "ým": 10280, - "enez": 10281, - "▁upp": 10282, - "▁méd": 10283, - "▁cuando": 10284, - "од": 10285, - "Intent": 10286, - "eerd": 10287, - "▁Tal": 10288, - "offset": 10289, - "▁haben": 10290, - "reme": 10291, - "▁Stack": 10292, - "▁dri": 10293, - "▁seinem": 10294, - "▁février": 10295, - "▁combination": 10296, - "▁soll": 10297, - "▁movement": 10298, - "Spec": 10299, - "кры": 10300, - "retch": 10301, - "Offset": 10302, - "Root": 10303, - "Ар": 10304, - "wart": 10305, - "▁Follow": 10306, - "▁Social": 10307, - "ников": 10308, - "▁→": 10309, - "Don": 10310, - "▁harm": 10311, - "agr": 10312, - "nego": 10313, - "resource": 10314, - "▁Luc": 10315, - "▁seinen": 10316, - "▁Department": 10317, - "▁Update": 10318, - "▁Texas": 10319, - "▁reve": 10320, - "▁Pos": 10321, - "▁shot": 10322, - "othe": 10323, - "▁repeated": 10324, - "▁recently": 10325, - "ában": 10326, - "aks": 10327, - "пан": 10328, - "▁cha": 10329, - "ohl": 10330, - "▁tend": 10331, - "▁дво": 10332, - "chts": 10333, - "çaise": 10334, - "pling": 10335, - "album": 10336, - "ej": 10337, - "▁`[": 10338, - "maps": 10339, - "▁units": 10340, - "▁": 15110, - "▁pří": 15111, - "pandas": 15112, - "▁Plus": 15113, - "yll": 15114, - "▁terror": 15115, - "▁crim": 15116, - "▁zak": 15117, - "issue": 15118, - "panel": 15119, - "svg": 15120, - "▁reb": 15121, - "Customer": 15122, - "switch": 15123, - "обра": 15124, - "▁Championships": 15125, - "clo": 15126, - "atte": 15127, - "▁anymore": 15128, - "▁excellent": 15129, - "▁opportunity": 15130, - "▁Bahn": 15131, - "чин": 15132, - "eting": 15133, - "▁incident": 15134, - "tom": 15135, - "Pers": 15136, - "bben": 15137, - "ственной": 15138, - "их": 15139, - "router": 15140, - "▁newly": 15141, - "▁silence": 15142, - "▁GNU": 15143, - "▁Rails": 15144, - "▁Amb": 15145, - "▁Qual": 15146, - "▁Schaus": 15147, - "▁Sohn": 15148, - "▁ALL": 15149, - "▁royal": 15150, - "▁£": 15151, - "wię": 15152, - "▁entfer": 15153, - "▁Remove": 15154, - "▁hardly": 15155, - "Using": 15156, - "лог": 15157, - "▁Ich": 15158, - "▁derni": 15159, - "▁Connection": 15160, - "fish": 15161, - "▁Inform": 15162, - "▁Ener": 15163, - "roit": 15164, - "Bbb": 15165, - "ViewModel": 15166, - "Video": 15167, - "iley": 15168, - "▁много": 15169, - "▁Gem": 15170, - "▁compreh": 15171, - "enumerate": 15172, - "ulas": 15173, - "▁Bah": 15174, - "▁Yet": 15175, - "BR": 15176, - "хра": 15177, - "▁county": 15178, - "▁Hist": 15179, - "▁Гу": 15180, - "▁Ј": 15181, - "▁mari": 15182, - "▁Clar": 15183, - "Bitmap": 15184, - "▁Cz": 15185, - "▁mån": 15186, - "▁mere": 15187, - "▁musique": 15188, - "also": 15189, - "dates": 15190, - "▁DVD": 15191, - "▁gol": 15192, - "fony": 15193, - "▁Castle": 15194, - "▁фами": 15195, - "▁arrang": 15196, - "▁Business": 15197, - "▁Kaz": 15198, - "▁osc": 15199, - "▁secolo": 15200, - "▁affected": 15201, - "▁Health": 15202, - "reb": 15203, - "editor": 15204, - "▁owned": 15205, - "tl": 15206, - "▁ví": 15207, - "чних": 15208, - "кви": 15209, - "▁devient": 15210, - "Mutable": 15211, - "▁tegen": 15212, - "Register": 15213, - "єю": 15214, - "▁caracter": 15215, - "лли": 15216, - "▁nouvelle": 15217, - "oko": 15218, - "ichtet": 15219, - "▁evol": 15220, - "▁Hab": 15221, - "▁militar": 15222, - "▁puts": 15223, - "endif": 15224, - "▁Davis": 15225, - "▁Scotland": 15226, - "regular": 15227, - "▁Context": 15228, - "ispiel": 15229, - "▁Gallery": 15230, - "\",\r": 15231, - "▁arc": 15232, - "▁INFO": 15233, - "▁cod": 15234, - "дів": 15235, - "▁varchar": 15236, - "▁toujours": 15237, - "atial": 15238, - "▁hanno": 15239, - "▁профес": 15240, - "▁launched": 15241, - "▁населення": 15242, - "▁ton": 15243, - "aused": 15244, - "▁із": 15245, - "▁tö": 15246, - "▁Pur": 15247, - "▁olymp": 15248, - "ARN": 15249, - "óm": 15250, - "▁august": 15251, - "▁furn": 15252, - "▁Colomb": 15253, - "▁Staats": 15254, - "hora": 15255, - "▁мор": 15256, - "canvas": 15257, - "▁grave": 15258, - "▁composition": 15259, - "acja": 15260, - "▁которые": 15261, - "▁чо": 15262, - "General": 15263, - "ані": 15264, - "▁Johannes": 15265, - "кар": 15266, - "▁част": 15267, - "▁Васи": 15268, - "ssh": 15269, - "▁replacing": 15270, - "▁<>": 15271, - "ців": 15272, - "laus": 15273, - "eny": 15274, - "ähl": 15275, - "▁marg": 15276, - "cience": 15277, - "▁instruction": 15278, - "▁који": 15279, - "Editor": 15280, - "▁fundamental": 15281, - "mund": 15282, - "▁exceptions": 15283, - "▁plate": 15284, - "▁Lis": 15285, - "▁deren": 15286, - "prep": 15287, - "▁januari": 15288, - "Scope": 15289, - "ynast": 15290, - "rv": 15291, - "orsz": 15292, - "▁Tony": 15293, - "▁ді": 15294, - "▁одна": 15295, - "▁sab": 15296, - "oti": 15297, - "jel": 15298, - "▁generator": 15299, - "▁'.": 15300, - "▁sharp": 15301, - "▁только": 15302, - "▁accounts": 15303, - "▁že": 15304, - "▁foram": 15305, - "▁gouvern": 15306, - "TIME": 15307, - "▁Soviet": 15308, - "▁Gé": 15309, - "▁exped": 15310, - "▁ordinary": 15311, - "▁Conserv": 15312, - "▁compla": 15313, - "tei": 15314, - "▁captain": 15315, - "▁Samuel": 15316, - "▁Dark": 15317, - "▁він": 15318, - "▁delight": 15319, - "recht": 15320, - "dia": 15321, - "esses": 15322, - "ulp": 15323, - "шки": 15324, - "bez": 15325, - "▁detection": 15326, - "▁cookie": 15327, - "antry": 15328, - "Multi": 15329, - "oba": 15330, - "▁joy": 15331, - "▁safety": 15332, - "|^": 15333, - "pod": 15334, - "adém": 15335, - "▁Chron": 15336, - "▁Django": 15337, - "▁ehemal": 15338, - "kh": 15339, - "èle": 15340, - "▁poc": 15341, - "Bottom": 15342, - "launch": 15343, - "nem": 15344, - "▁GROUP": 15345, - "ního": 15346, - "▁Gib": 15347, - "sdk": 15348, - "BE": 15349, - "▁Gene": 15350, - "▁Staff": 15351, - "▁subsequent": 15352, - "icion": 15353, - "▁victory": 15354, - "▁canon": 15355, - "izar": 15356, - "izia": 15357, - "▁mate": 15358, - "▁layers": 15359, - "sudo": 15360, - "schule": 15361, - "periment": 15362, - "ület": 15363, - "ARCHAR": 15364, - "▁террито": 15365, - "▁measures": 15366, - "▁zou": 15367, - "opsis": 15368, - "нами": 15369, - "tbody": 15370, - "▁ese": 15371, - "sterdam": 15372, - "▁photo": 15373, - "ynchronous": 15374, - "setminus": 15375, - "▁loads": 15376, - "▁pleasure": 15377, - "▁meille": 15378, - "}\\,": 15379, - "qual": 15380, - "▁favour": 15381, - "▁rod": 15382, - "Der": 15383, - "рабо": 15384, - "▁pressed": 15385, - "rę": 15386, - "ieving": 15387, - "material": 15388, - "virt": 15389, - "▁capable": 15390, - "сло": 15391, - "ushed": 15392, - "▁побе": 15393, - "usetts": 15394, - "unsigned": 15395, - "ków": 15396, - "▁ov": 15397, - "egeben": 15398, - "▁applying": 15399, - "▁galax": 15400, - "▁Oracle": 15401, - "▁Stuttgart": 15402, - "Infl": 15403, - "achusetts": 15404, - "▁deel": 15405, - "lire": 15406, - "▁statunit": 15407, - "▁Politiker": 15408, - "▁beauty": 15409, - ")>": 15410, - "▁Columbia": 15411, - "▁zewnętrzne": 15412, - "▁програ": 15413, - "▁dx": 15414, - "cknow": 15415, - "▁dub": 15416, - "unächst": 15417, - "findViewById": 15418, - "▁Mand": 15419, - "áll": 15420, - "naire": 15421, - "▁destin": 15422, - "isting": 15423, - "aggi": 15424, - "chart": 15425, - "▁justice": 15426, - "Simple": 15427, - "▁unfortunately": 15428, - "ір": 15429, - "▁questa": 15430, - "▁Governor": 15431, - "яв": 15432, - "▁música": 15433, - "▁equipo": 15434, - "▁Dest": 15435, - "elect": 15436, - "StackTrace": 15437, - "зом": 15438, - "proc": 15439, - "entin": 15440, - "adora": 15441, - "▁Лю": 15442, - "▁registered": 15443, - "HL": 15444, - "facebook": 15445, - "▁storing": 15446, - "▁Currently": 15447, - "▁quadr": 15448, - "Standard": 15449, - "trim": 15450, - "ears": 15451, - "sender": 15452, - "▁Vas": 15453, - "▁edific": 15454, - "▁Bür": 15455, - "▁Country": 15456, - "tha": 15457, - ";\"": 15458, - "nor": 15459, - "▁Doctor": 15460, - "rument": 15461, - "Gen": 15462, - "▁Buen": 15463, - "rade": 15464, - "▁kun": 15465, - "navigation": 15466, - "Pay": 15467, - "▁captured": 15468, - "▁struck": 15469, - "venir": 15470, - "ément": 15471, - "▁Tree": 15472, - "▁xx": 15473, - "▁narr": 15474, - "льного": 15475, - "▁installing": 15476, - "▁association": 15477, - "▁inserted": 15478, - "erner": 15479, - "validate": 15480, - "▁lut": 15481, - "▁glo": 15482, - "▁technology": 15483, - "▁Place": 15484, - "$?": 15485, - "▁zv": 15486, - "слі": 15487, - "EP": 15488, - "▁atmos": 15489, - "ugo": 15490, - "ért": 15491, - "▁Werk": 15492, - "▁%}": 15493, - "tele": 15494, - "Span": 15495, - "▁Raj": 15496, - "▁Personen": 15497, - "▁Cant": 15498, - "▁combat": 15499, - "▁observation": 15500, - "parameter": 15501, - "▁agreed": 15502, - "pur": 15503, - "▁shadow": 15504, - "▁gł": 15505, - "Keys": 15506, - "Cred": 15507, - "ouri": 15508, - "▁pale": 15509, - "ické": 15510, - "▁Week": 15511, - "▁Prime": 15512, - ">.": 15513, - "Initial": 15514, - "▁один": 15515, - "▁'',": 15516, - "▁учи": 15517, - "▁Inv": 15518, - "cola": 15519, - "cible": 15520, - "▁Theatre": 15521, - "▁bem": 15522, - "▁satisfy": 15523, - "xl": 15524, - "▁разви": 15525, - "▁pixel": 15526, - "lán": 15527, - "▁twee": 15528, - "çon": 15529, - "нения": 15530, - "▁AT": 15531, - "ège": 15532, - "▁Mort": 15533, - "▁mysq": 15534, - "ften": 15535, - "▁пес": 15536, - "éma": 15537, - "▁Services": 15538, - "customer": 15539, - "▁AWS": 15540, - "ът": 15541, - "▁Ach": 15542, - "%.": 15543, - "▁clarify": 15544, - "▁университе": 15545, - "xture": 15546, - "umi": 15547, - "▁så": 15548, - "▁Pel": 15549, - "serial": 15550, - "URI": 15551, - "▁rg": 15552, - "▁соста": 15553, - "chestra": 15554, - "].[": 15555, - "wen": 15556, - "▁Londres": 15557, - "▁anys": 15558, - "DataSource": 15559, - "▁районе": 15560, - "▁rein": 15561, - "▁metadata": 15562, - "umble": 15563, - "arbeit": 15564, - "hner": 15565, - "cient": 15566, - "▁norte": 15567, - "▁она": 15568, - "▁scored": 15569, - "▁ray": 15570, - "▁февра": 15571, - "▁protagon": 15572, - "▁Sac": 15573, - "▁commonly": 15574, - "LinearLayout": 15575, - "▁applic": 15576, - "▁мая": 15577, - "За": 15578, - "▁accessible": 15579, - "iewer": 15580, - "flag": 15581, - "▁Rück": 15582, - "äu": 15583, - "▁erano": 15584, - "▁authentic": 15585, - "▁Ry": 15586, - "▁неско": 15587, - "▁embargo": 15588, - "▁dry": 15589, - "▁reasonable": 15590, - "▁Module": 15591, - "▁acceler": 15592, - "▁interview": 15593, - "▁Creek": 15594, - "▁alpha": 15595, - "serie": 15596, - "They": 15597, - "ючи": 15598, - "▁Hof": 15599, - "▁CR": 15600, - "modal": 15601, - "▁sequences": 15602, - "closed": 15603, - ")}$": 15604, - "▁Чер": 15605, - "▁ORDER": 15606, - "Rightarrow": 15607, - "hausen": 15608, - "}}_": 15609, - "▁també": 15610, - "▁magnetic": 15611, - "▁McC": 15612, - "▁winning": 15613, - "underline": 15614, - "▁Billboard": 15615, - "naio": 15616, - "▁liqu": 15617, - "displaystyle": 15618, - "timeout": 15619, - "▁considerable": 15620, - "▁eben": 15621, - "ifferent": 15622, - "anu": 15623, - "▁Сов": 15624, - "[(": 15625, - "▁:-)": 15626, - "leitung": 15627, - "formed": 15628, - "▁Manager": 15629, - "▁onclick": 15630, - "TY": 15631, - "тах": 15632, - "CV": 15633, - "runtime": 15634, - "poque": 15635, - "▁Ло": 15636, - "Temp": 15637, - "loaded": 15638, - "▁!==": 15639, - "▁singer": 15640, - "far": 15641, - "▁Comple": 15642, - "▁Österreich": 15643, - "Policy": 15644, - "▁worker": 15645, - "Wrapper": 15646, - "obi": 15647, - "▁discussed": 15648, - "▁buy": 15649, - "▁января": 15650, - "▁Din": 15651, - "▁ged": 15652, - "ској": 15653, - "Europe": 15654, - "▁tall": 15655, - "hos": 15656, - "лаго": 15657, - "▁Block": 15658, - "▁identified": 15659, - "ListView": 15660, - "▁attempting": 15661, - "▁typical": 15662, - "psum": 15663, - "oster": 15664, - "▁журна": 15665, - "Pe": 15666, - "merce": 15667, - "▁unexpected": 15668, - "hui": 15669, - "letter": 15670, - "▁nuevo": 15671, - "▁або": 15672, - "▁VALUES": 15673, - "▁Iz": 15674, - "Flags": 15675, - "▁TRUE": 15676, - "ización": 15677, - "▁growing": 15678, - "estre": 15679, - "▁poly": 15680, - "▁Stone": 15681, - "▁VIII": 15682, - "▁localhost": 15683, - "ählt": 15684, - "▁embedded": 15685, - "jdbc": 15686, - "▁convention": 15687, - "▁scala": 15688, - "сок": 15689, - "▁analog": 15690, - "▁\"+": 15691, - "цю": 15692, - "occ": 15693, - "▁litt": 15694, - "PN": 15695, - "▁актив": 15696, - "attributes": 15697, - "▁Ferd": 15698, - "▁azure": 15699, - "ști": 15700, - "ños": 15701, - "ping": 15702, - "▁teacher": 15703, - "}&": 15704, - "ipe": 15705, - "▁Nob": 15706, - "▁има": 15707, - "Bind": 15708, - "▁magic": 15709, - "▁Transport": 15710, - "ixel": 15711, - "▁computed": 15712, - "agna": 15713, - "erst": 15714, - "HA": 15715, - "Wait": 15716, - "▁authors": 15717, - "▁;)": 15718, - "clam": 15719, - "▁Pennsylvan": 15720, - "▁drug": 15721, - "▁vain": 15722, - "▁employed": 15723, - "▁individuals": 15724, - "▁ange": 15725, - "utat": 15726, - "▁$-": 15727, - "correct": 15728, - "▁experiments": 15729, - "Argument": 15730, - "▁IB": 15731, - "▁père": 15732, - "▁Brian": 15733, - "berger": 15734, - "Mac": 15735, - "iast": 15736, - "Perm": 15737, - "Cast": 15738, - "▁{};": 15739, - "▁Student": 15740, - "▁statt": 15741, - "algebra": 15742, - "▁equals": 15743, - "▁projet": 15744, - "▁président": 15745, - "ActivityThread": 15746, - "▁einz": 15747, - "enia": 15748, - "rez": 15749, - "essional": 15750, - "▁августа": 15751, - "override": 15752, - "news": 15753, - "▁planet": 15754, - "nn": 15755, - "▁Wis": 15756, - "твер": 15757, - "▁Valid": 15758, - "▁Gef": 15759, - "град": 15760, - "▁eig": 15761, - "antom": 15762, - "▁Meister": 15763, - "flags": 15764, - "fficiale": 15765, - "шая": 15766, - "-,": 15767, - "ationen": 15768, - "mouse": 15769, - "standard": 15770, - "Single": 15771, - "▁bol": 15772, - "isis": 15773, - "▁fruit": 15774, - "course": 15775, - "itants": 15776, - "▁étaient": 15777, - "TextField": 15778, - "▁фон": 15779, - "▁aircraft": 15780, - "▁ISSN": 15781, - "▁western": 15782, - "▁representing": 15783, - "Esp": 15784, - "▁Else": 15785, - "▁sizes": 15786, - "▁satisfied": 15787, - "otos": 15788, - "UD": 15789, - "Final": 15790, - "ój": 15791, - "ève": 15792, - "▁Roy": 15793, - "ffen": 15794, - "▁salt": 15795, - "▁Label": 15796, - "Sk": 15797, - "▁кре": 15798, - "▁Литература": 15799, - "▁см": 15800, - "Attributes": 15801, - "aye": 15802, - "ськ": 15803, - "▁высо": 15804, - "-)": 15805, - "oses": 15806, - "calcul": 15807, - "▁Cannot": 15808, - "Generic": 15809, - "emo": 15810, - "▁Autor": 15811, - "лён": 15812, - "лага": 15813, - "vote": 15814, - "licates": 15815, - "rus": 15816, - "éli": 15817, - "opf": 15818, - "atique": 15819, - "scala": 15820, - "▁Ohio": 15821, - "▁Britann": 15822, - "▁bef": 15823, - "▁Евро": 15824, - "▁Career": 15825, - "isée": 15826, - "ót": 15827, - "bose": 15828, - "▁Бер": 15829, - "▁Controller": 15830, - "pole": 15831, - "▁allen": 15832, - "▁hack": 15833, - "▁extent": 15834, - "▁calci": 15835, - "Mer": 15836, - "▁summary": 15837, - "Mart": 15838, - "▁historical": 15839, - "imat": 15840, - "bud": 15841, - "▁FOR": 15842, - "export": 15843, - "edi": 15844, - "Mapping": 15845, - "▁Ay": 15846, - "▁Ruby": 15847, - "▁definitions": 15848, - "▁{$": 15849, - "▁yours": 15850, - "rias": 15851, - "Touch": 15852, - "▁Gaz": 15853, - "▁Autom": 15854, - "▁истори": 15855, - "▁delen": 15856, - "▁Kinder": 15857, - "}}%": 15858, - "▁performing": 15859, - "FR": 15860, - "▁Sig": 15861, - "▁Brad": 15862, - "bras": 15863, - "▁Jar": 15864, - "pkg": 15865, - "wr": 15866, - "▁Pays": 15867, - "NC": 15868, - "▁opposed": 15869, - "Try": 15870, - "▁везе": 15871, - "▁Bog": 15872, - "▁writes": 15873, - "▁stories": 15874, - "▁mater": 15875, - "▁stagione": 15876, - "▁sty": 15877, - "▁compatible": 15878, - "heast": 15879, - "▁Guy": 15880, - "egründ": 15881, - "▁identifier": 15882, - "▁heads": 15883, - "пози": 15884, - "▁stup": 15885, - "▁tf": 15886, - "▁још": 15887, - "▁Hugh": 15888, - "▁cards": 15889, - "ovy": 15890, - "▁Toast": 15891, - "allas": 15892, - "▁públic": 15893, - "▁assumes": 15894, - "▁чемпиона": 15895, - "ycler": 15896, - "▁Junior": 15897, - "▁Fich": 15898, - "▁estimated": 15899, - "zerw": 15900, - "dialog": 15901, - "шин": 15902, - "shell": 15903, - "▁них": 15904, - "▁pitch": 15905, - "дол": 15906, - "outube": 15907, - "▁Santi": 15908, - "OnClickListener": 15909, - "▁Magyar": 15910, - "▁vue": 15911, - "ião": 15912, - "▁`#": 15913, - "collect": 15914, - "▁Rou": 15915, - "analysis": 15916, - "istrzost": 15917, - "▁Digital": 15918, - "▁crist": 15919, - "riere": 15920, - "▁campo": 15921, - "Us": 15922, - "▁circa": 15923, - "▁Component": 15924, - "▁NSString": 15925, - "pd": 15926, - "▁prince": 15927, - "▁invoke": 15928, - "▁Marine": 15929, - "Allow": 15930, - "estic": 15931, - "ристи": 15932, - "bone": 15933, - "туры": 15934, - "▁passion": 15935, - "áció": 15936, - "▁orn": 15937, - "вед": 15938, - "▁invari": 15939, - "▁ні": 15940, - "Remove": 15941, - "encies": 15942, - "ilib": 15943, - "▁Director": 15944, - "\"\"": 15945, - "▁Conse": 15946, - "googleapis": 15947, - "ók": 15948, - "▁Укра": 15949, - "▁Having": 15950, - "Domain": 15951, - "ierz": 15952, - "нологи": 15953, - "Cho": 15954, - "undefined": 15955, - "alloc": 15956, - "▁pied": 15957, - "▁fraction": 15958, - "bia": 15959, - "▁поло": 15960, - "ugno": 15961, - "minister": 15962, - "▁principale": 15963, - "▁refused": 15964, - "browser": 15965, - "*,": 15966, - "▁Hospital": 15967, - "▁universal": 15968, - "▁Ernst": 15969, - "who": 15970, - "▁Gard": 15971, - "'_": 15972, - "conde": 15973, - "▁[{": 15974, - "sob": 15975, - "▁Crit": 15976, - "▁декабря": 15977, - "▁punto": 15978, - "▁eingesetzt": 15979, - "▁tör": 15980, - "▁Ni": 15981, - "▁worry": 15982, - "▁legend": 15983, - "▁були": 15984, - "▁komm": 15985, - "rijk": 15986, - "effect": 15987, - "Ori": 15988, - "RES": 15989, - "▁Peters": 15990, - "▁Baron": 15991, - "▁Got": 15992, - "▁honest": 15993, - "äre": 15994, - "ász": 15995, - "▁noble": 15996, - "▁conclusion": 15997, - "▁formatting": 15998, - "▁otto": 15999, - "▁deleg": 16000, - "мб": 16001, - "ptop": 16002, - "▁sends": 16003, - "urname": 16004, - "▁festival": 16005, - ",‎": 16006, - "рус": 16007, - "▁doch": 16008, - "subject": 16009, - "▁careful": 16010, - "quent": 16011, - "▁Load": 16012, - "temperaturen": 16013, - "▁rue": 16014, - "Memory": 16015, - "ța": 16016, - "iona": 16017, - "▁dentro": 16018, - "▁begann": 16019, - "▁Aqu": 16020, - "▁scientific": 16021, - "kań": 16022, - "лок": 16023, - "elde": 16024, - "▁Those": 16025, - "quier": 16026, - "actér": 16027, - "▁Auflage": 16028, - ")'": 16029, - "▁gradient": 16030, - "integer": 16031, - "▁Import": 16032, - "SK": 16033, - "▁Status": 16034, - "▁explo": 16035, - "AE": 16036, - "Shell": 16037, - "▁Paulo": 16038, - ".»": 16039, - "}'": 16299, - "havior": 16300, - "lei": 16301, - "ulf": 16302, - "▁geometry": 16303, - "prev": 16304, - "empl": 16305, - "▁Lé": 16306, - "anson": 16307, - "▁Alice": 16308, - "prototype": 16309, - "READ": 16310, - "icular": 16311, - "▁бі": 16312, - "▁deutsche": 16313, - "▁Represent": 16314, - "sites": 16315, - "▁Mean": 16316, - "▁diss": 16317, - "▁Zur": 16318, - "▁през": 16319, - "PAR": 16320, - "▁'#": 16321, - "▁Dra": 16322, - "сон": 16323, - "▁steht": 16324, - "markt": 16325, - "▁ease": 16326, - "Drawing": 16327, - "=%": 16328, - "Stop": 16329, - "▁serving": 16330, - "▁także": 16331, - "▁DNS": 16332, - "▁literal": 16333, - "Die": 16334, - "▁вос": 16335, - "▁senior": 16336, - "acion": 16337, - "▁ubuntu": 16338, - "▁Frankfurt": 16339, - "▁Sunday": 16340, - "áb": 16341, - "▁journey": 16342, - "issa": 16343, - "berry": 16344, - "▁sep": 16345, - "▁ion": 16346, - "wert": 16347, - "ország": 16348, - "serve": 16349, - "▁Milano": 16350, - "▁века": 16351, - "рах": 16352, - "▁июля": 16353, - "▁manera": 16354, - "▁stations": 16355, - "▁adopted": 16356, - "▁anybody": 16357, - "VERSION": 16358, - "FE": 16359, - "dorf": 16360, - "...,": 16361, - "▁образова": 16362, - "Logger": 16363, - "фициаль": 16364, - "WRITE": 16365, - "▁ham": 16366, - "▁Future": 16367, - "oten": 16368, - "▁AG": 16369, - "▁trained": 16370, - "▁Nich": 16371, - "▁university": 16372, - "▁Olympics": 16373, - "▁doit": 16374, - "▁cultural": 16375, - "Conf": 16376, - "▁Conference": 16377, - "orno": 16378, - "▁MP": 16379, - "▁bou": 16380, - "cin": 16381, - "High": 16382, - "annte": 16383, - "▁displaying": 16384, - "▁chapter": 16385, - "▁Frauen": 16386, - "▁realized": 16387, - "▁attempted": 16388, - "▁preferred": 16389, - "Dat": 16390, - "▁trouve": 16391, - "▁intention": 16392, - "▁Notice": 16393, - "timestamp": 16394, - "*(": 16395, - "▁Ша": 16396, - "anas": 16397, - "cla": 16398, - "isz": 16399, - "tbl": 16400, - "Arr": 16401, - "▁inverse": 16402, - "▁terrible": 16403, - "▁occupied": 16404, - "JAX": 16405, - "<-": 16406, - "▁Philosoph": 16407, - "▁Corps": 16408, - "builder": 16409, - "▁begins": 16410, - "▁census": 16411, - ".’": 16412, - "▁proven": 16413, - "metric": 16414, - "▁increases": 16415, - "wich": 16416, - "▁ABC": 16417, - "projects": 16418, - "▁Thor": 16419, - "▁confidence": 16420, - "▁ufficiale": 16421, - "elm": 16422, - "▁garden": 16423, - "▁robust": 16424, - "▁così": 16425, - "iedz": 16426, - "▁Islam": 16427, - "▁Address": 16428, - "▁divide": 16429, - "▁Eu": 16430, - "catal": 16431, - "detail": 16432, - "ependant": 16433, - "fg": 16434, - "▁bew": 16435, - "▁fis": 16436, - "▁BO": 16437, - "▁wsp": 16438, - "▁pipeline": 16439, - "hd": 16440, - "▁Session": 16441, - "länd": 16442, - "iveau": 16443, - "estr": 16444, - "▁particle": 16445, - "▁laravel": 16446, - "pic": 16447, - "▁nau": 16448, - "▁fins": 16449, - "▁Vil": 16450, - "▁fus": 16451, - "▁quasi": 16452, - "operation": 16453, - "▁aller": 16454, - "▁analy": 16455, - "▁Он": 16456, - "▁Mes": 16457, - "▁опера": 16458, - "▁handled": 16459, - "▁deprec": 16460, - "tto": 16461, - "▁Ek": 16462, - "▁stran": 16463, - "▁anglais": 16464, - "jure": 16465, - "▁Silver": 16466, - "▁closely": 16467, - "enkins": 16468, - "anos": 16469, - "sted": 16470, - "▁сентября": 16471, - "brand": 16472, - "ньо": 16473, - "▁présent": 16474, - "rok": 16475, - "mount": 16476, - "▁Anthony": 16477, - "▁Furthermore": 16478, - "inha": 16479, - "▁архи": 16480, - "▁разли": 16481, - "▁октября": 16482, - "▁pint": 16483, - "ný": 16484, - "pts": 16485, - "▁italien": 16486, - "▁реги": 16487, - "лез": 16488, - "дина": 16489, - "atherine": 16490, - "Internal": 16491, - "Question": 16492, - "▁settlement": 16493, - "▁Все": 16494, - "▁folders": 16495, - "дри": 16496, - "▁valor": 16497, - "▁Miller": 16498, - "▁Assert": 16499, - "▁patient": 16500, - "▁Nieder": 16501, - "▁EP": 16502, - "▁Agr": 16503, - "▁onde": 16504, - "▁scop": 16505, - "sequence": 16506, - "▁PL": 16507, - "▁seek": 16508, - "javase": 16509, - "▁Vector": 16510, - "▁ná": 16511, - "▁categoría": 16512, - "clone": 16513, - "NR": 16514, - "available": 16515, - "▁Besch": 16516, - "▁eclipse": 16517, - "wicklung": 16518, - "deploy": 16519, - "enie": 16520, - "▁\")": 16521, - "äst": 16522, - "▁sync": 16523, - "CODE": 16524, - "▁Че": 16525, - "▁floating": 16526, - "/`": 16527, - "▁retired": 16528, - "deb": 16529, - "▁particul": 16530, - "▁collected": 16531, - "▁downloaded": 16532, - "nice": 16533, - "▁Buffer": 16534, - "▁Account": 16535, - "▁maggio": 16536, - "▁реда": 16537, - "▁sales": 16538, - "▁statunitense": 16539, - "▁Ki": 16540, - "▁Ferr": 16541, - "Lock": 16542, - "▁Isabel": 16543, - "clar": 16544, - "▁pov": 16545, - "atra": 16546, - "▁Frau": 16547, - "▁sorting": 16548, - "▁phrase": 16549, - "▁апреля": 16550, - "▁деятель": 16551, - "▁André": 16552, - "definition": 16553, - "writing": 16554, - "éré": 16555, - "щу": 16556, - "▁Ord": 16557, - "▁rum": 16558, - "▁Turk": 16559, - "▁Ivan": 16560, - "theless": 16561, - "▁ги": 16562, - "▁sake": 16563, - "▁Based": 16564, - "deck": 16565, - "orus": 16566, - "▁tutti": 16567, - "▁blan": 16568, - "▁Пу": 16569, - "Detail": 16570, - "▁Но": 16571, - "▁Sky": 16572, - "▁près": 16573, - "мой": 16574, - "coln": 16575, - "ческой": 16576, - "eti": 16577, - "▁arrow": 16578, - "▁Cha": 16579, - "chmark": 16580, - "œur": 16581, - "fab": 16582, - "куль": 16583, - "GridView": 16584, - "▁Background": 16585, - "sn": 16586, - "▁seguito": 16587, - "▁nic": 16588, - "cou": 16589, - "тів": 16590, - "▁bzw": 16591, - "addEventListener": 16592, - "sync": 16593, - "azzo": 16594, - "abstract": 16595, - "assets": 16596, - "▁Dru": 16597, - "зд": 16598, - "ordnet": 16599, - "▁bigger": 16600, - "▁initialized": 16601, - "каз": 16602, - "ogene": 16603, - "viously": 16604, - "▁guid": 16605, - "scheidung": 16606, - "▁Zent": 16607, - "▁frames": 16608, - "rieben": 16609, - "▁issued": 16610, - "▁dow": 16611, - "▁describes": 16612, - "ilst": 16613, - "▁criteria": 16614, - "▁gentleman": 16615, - "Basic": 16616, - "nez": 16617, - "Dev": 16618, - "Move": 16619, - "▁estaba": 16620, - "▁settembre": 16621, - "circle": 16622, - "▁fais": 16623, - "▁myst": 16624, - "▁archiv": 16625, - "dynamic": 16626, - "jà": 16627, - "itas": 16628, - "▁який": 16629, - "▁dor": 16630, - "▁Amazon": 16631, - "▁neces": 16632, - "▁Marcel": 16633, - "▁ella": 16634, - "рок": 16635, - "▁Pennsylvania": 16636, - "cular": 16637, - "Pack": 16638, - "itage": 16639, - "▁Burn": 16640, - "▁RO": 16641, - "▁они": 16642, - "~$": 16643, - "TeX": 16644, - "assign": 16645, - "▁beat": 16646, - "idense": 16647, - "acent": 16648, - "Alert": 16649, - "▁strateg": 16650, - "▁månaden": 16651, - "LOC": 16652, - "▁catalog": 16653, - "printStackTrace": 16654, - "()).": 16655, - "usted": 16656, - "▁Framework": 16657, - "ECK": 16658, - "▁até": 16659, - "Framework": 16660, - "▁attacks": 16661, - "▁Bert": 16662, - "▁тран": 16663, - ":%": 16664, - "arsi": 16665, - "notation": 16666, - "▁logical": 16667, - "weet": 16668, - "▁visited": 16669, - "bru": 16670, - "▁surprise": 16671, - "^^": 16672, - "inale": 16673, - "remote": 16674, - "'},": 16675, - "Syntax": 16676, - "iane": 16677, - "onnen": 16678, - "▁breaking": 16679, - "parser": 16680, - "apk": 16681, - "▁Miguel": 16682, - "▁§": 16683, - "▁acting": 16684, - "▁gebru": 16685, - "AtIndex": 16686, - "ються": 16687, - "▁offers": 16688, - "▁prac": 16689, - "▁grant": 16690, - "ternoon": 16691, - "▁acquired": 16692, - "▁Ny": 16693, - "▁comma": 16694, - "ník": 16695, - "▁Step": 16696, - "inners": 16697, - "▁SA": 16698, - "▁wat": 16699, - "days": 16700, - "▁rectangle": 16701, - "dar": 16702, - "▁trac": 16703, - "▁Indones": 16704, - "▁feedback": 16705, - "▁breaks": 16706, - "partition": 16707, - "icans": 16708, - "▁Notices": 16709, - "▁improved": 16710, - "phan": 16711, - "▁differential": 16712, - "scripts": 16713, - "▁XIII": 16714, - "▁Labor": 16715, - "▁precision": 16716, - "▁seed": 16717, - "bundle": 16718, - "idents": 16719, - "hre": 16720, - "▁Douglas": 16721, - "uld": 16722, - "▁secondary": 16723, - "▁brig": 16724, - "▁confirmed": 16725, - "▁claims": 16726, - "Role": 16727, - "▁Jewish": 16728, - "▁před": 16729, - "▁hotel": 16730, - "▁compte": 16731, - "▁recursive": 16732, - "](#)": 16733, - "▁rotate": 16734, - "▁chrome": 16735, - "inea": 16736, - "%;\r": 16737, - "▁Environment": 16738, - "platz": 16739, - "▁Single": 16740, - "▁sevent": 16741, - "▁posting": 16742, - "▁dealing": 16743, - "parameters": 16744, - "граф": 16745, - "Authentication": 16746, - "touch": 16747, - "Az": 16748, - "▁gray": 16749, - "encing": 16750, - "boldmath": 16751, - "▁сайте": 16752, - "▁Za": 16753, - "anje": 16754, - "▁polar": 16755, - "▁ули": 16756, - "kil": 16757, - "▁hover": 16758, - "▁REST": 16759, - "▁Come": 16760, - "jb": 16761, - "▁Georgia": 16762, - "▁Estado": 16763, - "OutputStream": 16764, - "ћи": 16765, - "▁dump": 16766, - "▁Age": 16767, - "▁swo": 16768, - "mobile": 16769, - "occup": 16770, - "шего": 16771, - "▁constitution": 16772, - "good": 16773, - "aku": 16774, - "▁анг": 16775, - "ieck": 16776, - "▁Psych": 16777, - "▁roots": 16778, - "▁vest": 16779, - "▁годах": 16780, - "▁República": 16781, - "▁pian": 16782, - "igration": 16783, - "▁préc": 16784, - "▁generates": 16785, - "LY": 16786, - "(`": 16787, - "▁=~": 16788, - "шения": 16789, - "▁Rah": 16790, - "▁connecting": 16791, - "ží": 16792, - "▁fő": 16793, - "▁appel": 16794, - "▁Railway": 16795, - "гли": 16796, - "▁développ": 16797, - "▁apo": 16798, - "fran": 16799, - "▁immediate": 16800, - "вого": 16801, - "Runner": 16802, - "äg": 16803, - "Something": 16804, - "▁généra": 16805, - "EventArgs": 16806, - "inction": 16807, - "gly": 16808, - "▁Due": 16809, - "▁prost": 16810, - "▁referring": 16811, - "▁jog": 16812, - "▁executable": 16813, - "▁Dream": 16814, - "acs": 16815, - "▁Cole": 16816, - "ampf": 16817, - "▁Bis": 16818, - "▁июня": 16819, - "lieder": 16820, - "тек": 16821, - "▁vb": 16822, - "▁mom": 16823, - "▁:(": 16824, - "▁dernier": 16825, - "'=>": 16826, - "▁этого": 16827, - "▁neue": 16828, - "▁Ча": 16829, - "▁weitere": 16830, - "▁alleg": 16831, - "▁reality": 16832, - "▁judge": 16833, - "▁Balt": 16834, - "▁thin": 16835, - "▁Ged": 16836, - "ieval": 16837, - "mx": 16838, - "ціональ": 16839, - "▁выпу": 16840, - "▁IX": 16841, - "▁blind": 16842, - "▁Motor": 16843, - "▁ша": 16844, - "▁approximation": 16845, - "dam": 16846, - "▁fog": 16847, - "кор": 16848, - "▁Writ": 16849, - "▁ling": 16850, - "▁писа": 16851, - "▁Mars": 16852, - "otti": 16853, - "Enum": 16854, - "▁Trib": 16855, - "▁merc": 16856, - "zung": 16857, - "vanced": 16858, - "cfg": 16859, - "нах": 16860, - "schen": 16861, - "\"].": 16862, - "bek": 16863, - "▁ster": 16864, - "jp": 16865, - "▁Rap": 16866, - "▁recording": 16867, - "▁peint": 16868, - "▁lets": 16869, - "änge": 16870, - ">\";": 16871, - "▁місце": 16872, - "▁caval": 16873, - "▁CSV": 16874, - "▁entstand": 16875, - "▁helper": 16876, - "endet": 16877, - "▁Gram": 16878, - "▁Diego": 16879, - "▁Bishop": 16880, - "TAG": 16881, - "▁ecc": 16882, - "▁Een": 16883, - "▁AV": 16884, - "City": 16885, - "▁Guide": 16886, - "hind": 16887, - "rical": 16888, - "▁Основ": 16889, - "Bus": 16890, - "▁zunächst": 16891, - "▁tick": 16892, - "▁Colonel": 16893, - "Thanks": 16894, - "▁ferm": 16895, - "▁granted": 16896, - "▁threshold": 16897, - "omorphic": 16898, - "▁Hun": 16899, - "enis": 16900, - "▁прав": 16901, - "▁які": 16902, - "PG": 16903, - "▁ws": 16904, - "▁technical": 16905, - "estro": 16906, - "klär": 16907, - "vars": 16908, - "ocrat": 16909, - "▁општи": 16910, - "onso": 16911, - "iba": 16912, - "▁Save": 16913, - "▁programa": 16914, - "▁въ": 16915, - "▁invån": 16916, - ">()": 16917, - "▁mejor": 16918, - "▁слова": 16919, - "▁replacement": 16920, - "▁impr": 16921, - "▁Francesco": 16922, - "▁Hotel": 16923, - "▁UPDATE": 16924, - "▁музы": 16925, - "ugs": 16926, - "vard": 16927, - "▁faz": 16928, - "inton": 16929, - "▁arts": 16930, - "▁Ky": 16931, - "▁Ils": 16932, - "▁sera": 16933, - "▁Volume": 16934, - "▁giugno": 16935, - "▁asym": 16936, - "▁Pir": 16937, - "▁NAS": 16938, - "▁Tam": 16939, - "ěl": 16940, - "Sequ": 16941, - "kmal": 16942, - "▁Eins": 16943, - "▁компа": 16944, - "obe": 16945, - "oor": 16946, - "▁heap": 16947, - "ctl": 16948, - "▁separately": 16949, - "reader": 16950, - "▁significantly": 16951, - "▁Lag": 16952, - "notes": 16953, - "▁sele": 16954, - "▁dedicated": 16955, - "▁Host": 16956, - "choice": 16957, - "wing": 16958, - "▁Titel": 16959, - "▁befindet": 16960, - "large": 16961, - "▁conten": 16962, - "JavaScript": 16963, - "▁deser": 16964, - "▁Gordon": 16965, - "спе": 16966, - "▁patri": 16967, - "▁Random": 16968, - "▁Returns": 16969, - "ым": 16970, - "рома": 16971, - "▁Studies": 16972, - "Sl": 16973, - "▁frü": 16974, - "TEXT": 16975, - "inate": 16976, - "▁Tol": 16977, - "▁everywhere": 16978, - "arta": 16979, - "▁orbit": 16980, - "▁Aires": 16981, - "▁Iss": 16982, - "▁też": 16983, - "▁diverse": 16984, - "▁numeric": 16985, - "maz": 16986, - "▁mise": 16987, - "▁battery": 16988, - "▁Akadem": 16989, - "нение": 16990, - "▁simultane": 16991, - "▁Dead": 16992, - "▁clust": 16993, - "▁otro": 16994, - "▁cerca": 16995, - "()`,": 16996, - "roz": 16997, - "ăt": 16998, - "▁MO": 16999, - "riften": 17000, - "important": 17001, - "▁jeho": 17002, - "▁findViewById": 17003, - "▁consequence": 17004, - "▁measured": 17005, - "ishes": 17006, - "▁sze": 17007, - "iendo": 17008, - "▁Wahl": 17009, - "strip": 17010, - "ARD": 17011, - "▁opacity": 17012, - "WORD": 17013, - "▁Ві": 17014, - "▁Location": 17015, - "rai": 17016, - "пен": 17017, - "▁rif": 17018, - "aussian": 17019, - "FileName": 17020, - "▁disco": 17021, - "ilen": 17022, - "▁vagy": 17023, - "licity": 17024, - "Border": 17025, - "▁Track": 17026, - "бом": 17027, - "fact": 17028, - "oka": 17029, - "▁gior": 17030, - "▁XVII": 17031, - "▁där": 17032, - "Site": 17033, - "ało": 17034, - "ská": 17035, - "▁pixels": 17036, - "vity": 17037, - "jQuery": 17038, - "▁sculpt": 17039, - "▁cargo": 17040, - "▁directive": 17041, - "▁wal": 17042, - "▁conna": 17043, - "▁Through": 17044, - "▁этом": 17045, - "Static": 17046, - "omsnitt": 17047, - "▁rund": 17048, - "▁claimed": 17049, - "зня": 17050, - "sha": 17051, - "▁rag": 17052, - "crement": 17053, - "▁fünf": 17054, - "▁rival": 17055, - "rin": 17056, - "slash": 17057, - "▁thirty": 17058, - "sleep": 17059, - "ологи": 17060, - "SM": 17061, - "gate": 17062, - "izations": 17063, - "vik": 17064, - "▁bless": 17065, - "▁Illinois": 17066, - "▁TE": 17067, - "uting": 17068, - "▁solving": 17069, - "GER": 17070, - "▁XIV": 17071, - "▁Indians": 17072, - "express": 17073, - "▁Heil": 17074, - "▁mujer": 17075, - "▁invånare": 17076, - "']);": 17077, - "▁aur": 17078, - "boost": 17079, - "GO": 17080, - "▁nin": 17081, - "tok": 17082, - "god": 17083, - "oter": 17084, - ")$$": 17085, - "▁descend": 17086, - "рю": 17087, - "▁Language": 17088, - "▁diver": 17089, - "▁Assuming": 17090, - "▁frequent": 17091, - "чні": 17092, - "▁Biography": 17093, - ",[": 17094, - "urm": 17095, - "▁walked": 17096, - "▁federal": 17097, - "▁Michigan": 17098, - "▁facts": 17099, - "▁Integr": 17100, - "LES": 17101, - "▁Alan": 17102, - "▁coup": 17103, - "Ber": 17104, - "▁particles": 17105, - "ће": 17106, - "Inflater": 17107, - "+(": 17108, - "Bound": 17109, - "▁Sü": 17110, - "Audio": 17111, - "citet": 17112, - "yect": 17113, - "▁nr": 17114, - "xe": 17115, - "▁Brun": 17116, - "▁_,": 17117, - "avor": 17118, - "▁discipl": 17119, - "alm": 17120, - "▁ноября": 17121, - "▁SSL": 17122, - "▁Kaiser": 17123, - "▁recher": 17124, - "ygon": 17125, - "▁regardless": 17126, - "▁configur": 17127, - "▁unnecess": 17128, - "▁Clark": 17129, - "PHP": 17130, - "▁FALSE": 17131, - "▁pad": 17132, - "$}": 17133, - "▁valu": 17134, - "▁disease": 17135, - "▁maior": 17136, - "▁hommes": 17137, - "▁Edition": 17138, - "slant": 17139, - "▁ending": 17140, - "▁settled": 17141, - "urus": 17142, - "hed": 17143, - "Pattern": 17144, - "▁година": 17145, - "▁Philadel": 17146, - "tikzpicture": 17147, - "▁coal": 17148, - "▁sede": 17149, - "▁satisfies": 17150, - "▁trim": 17151, - "▁bat": 17152, - "▁américain": 17153, - "▁luglio": 17154, - "▁поча": 17155, - "ffff": 17156, - "▁Target": 17157, - "generate": 17158, - "▁Zie": 17159, - "ția": 17160, - "▁gard": 17161, - "▁workers": 17162, - "▁Job": 17163, - "▁urban": 17164, - "ahlen": 17165, - "▁Building": 17166, - "▁neu": 17167, - "▁chron": 17168, - "▁Earl": 17169, - "gro": 17170, - "USE": 17171, - "▁XII": 17172, - "▁wealth": 17173, - "inae": 17174, - "▁Бра": 17175, - "▁libert": 17176, - "iros": 17177, - ":$": 17178, - "lee": 17179, - "ieves": 17180, - "▁Justice": 17181, - "▁oil": 17182, - "▁Athlet": 17183, - "▁clo": 17184, - "Scale": 17185, - "▁lips": 17186, - "▁april": 17187, - "▁impression": 17188, - "▁perce": 17189, - "▁участи": 17190, - "vil": 17191, - "éch": 17192, - "▁equality": 17193, - "▁мет": 17194, - "▁annotation": 17195, - "ernal": 17196, - "▁Mach": 17197, - "▁intitul": 17198, - "problem": 17199, - "ющих": 17200, - "oplus": 17201, - "▁thousands": 17202, - "▁calculations": 17203, - "umps": 17204, - "▁triangle": 17205, - "phal": 17206, - "▁Dorf": 17207, - "▁dollars": 17208, - "▁denen": 17209, - "lès": 17210, - "olid": 17211, - "▁Results": 17212, - "▁Stadium": 17213, - "▁Desp": 17214, - "▁Eisen": 17215, - "imir": 17216, - "▁sotto": 17217, - "▁či": 17218, - "atable": 17219, - "orum": 17220, - "▁convergence": 17221, - "▁jeune": 17222, - "oking": 17223, - "▁живо": 17224, - "aining": 17225, - "pointer": 17226, - "culo": 17227, - "▁jsou": 17228, - "▁grab": 17229, - "akte": 17230, - "▁hoping": 17231, - "▁Mak": 17232, - "▁sag": 17233, - "origine": 17234, - "▁послед": 17235, - "▁Veg": 17236, - "▁theoret": 17237, - "▁Tru": 17238, - "nement": 17239, - "▁faces": 17240, - "Hor": 17241, - "Join": 17242, - "arel": 17243, - "▁около": 17244, - "However": 17245, - "▁catal": 17246, - "bourg": 17247, - "▁mysqli": 17248, - "acions": 17249, - "▁Initial": 17250, - "▁rain": 17251, - "iture": 17252, - "▁Sciences": 17253, - "▁Kreis": 17254, - ".__": 17255, - "▁cinq": 17256, - "▁Auß": 17257, - "ithmet": 17258, - "itors": 17259, - "amazon": 17260, - "▁gap": 17261, - "▁ignored": 17262, - "adv": 17263, - "кої": 17264, - "▁часть": 17265, - "▁corpor": 17266, - "цер": 17267, - "▁crime": 17268, - "uous": 17269, - "▁налази": 17270, - "DataFrame": 17271, - "води": 17272, - "Ign": 17273, - "▁Lincoln": 17274, - "▁menos": 17275, - "▁Luft": 17276, - "▁Lind": 17277, - "▁Cook": 17278, - "▁materials": 17279, - "apped": 17280, - "ignore": 17281, - "▁откры": 17282, - "fried": 17283, - "▁gouvernement": 17284, - "▁fired": 17285, - "▁screenshot": 17286, - "сен": 17287, - "▁[(": 17288, - "▁организа": 17289, - "Graphics": 17290, - "▁проти": 17291, - "▁phen": 17292, - "craft": 17293, - "▁brain": 17294, - "▁Como": 17295, - "▁Everything": 17296, - "anes": 17297, - "IGN": 17298, - "▁nederbörd": 17299, - "▁Forest": 17300, - "zahl": 17301, - "▁Among": 17302, - "Qt": 17303, - "▁togg": 17304, - "▁variant": 17305, - "▁hill": 17306, - "писи": 17307, - "colon": 17308, - "▁dicembre": 17309, - "гор": 17310, - "▁Wind": 17311, - "ünstler": 17312, - "▁=\\": 17313, - "saved": 17314, - "▁nej": 17315, - "unte": 17316, - "utto": 17317, - "▁recens": 17318, - "▁sick": 17319, - "▁desen": 17320, - "UST": 17321, - "▁worst": 17322, - "▁Angel": 17323, - "odox": 17324, - "▁Province": 17325, - "▁Maz": 17326, - "▁agreement": 17327, - "▁Bass": 17328, - "▁segunda": 17329, - "onces": 17330, - "▁Linki": 17331, - "▁CL": 17332, - "▁já": 17333, - "itement": 17334, - "▁área": 17335, - "▁scalar": 17336, - "▁Рес": 17337, - "awt": 17338, - "sieme": 17339, - "▁juni": 17340, - "▁худож": 17341, - "ikus": 17342, - "▁lid": 17343, - "ppel": 17344, - "avi": 17345, - "▁balance": 17346, - "ipping": 17347, - "cussion": 17348, - "ческих": 17349, - "(\".": 17350, - "Also": 17351, - "▁whis": 17352, - "HOME": 17353, - "▁brown": 17354, - "▁día": 17355, - "▁può": 17356, - "plotlib": 17357, - "▁Jahrhunderts": 17358, - "DK": 17359, - "▁anchor": 17360, - "...]": 17361, - "▁Austria": 17362, - "▁marca": 17363, - "▁gez": 17364, - "iously": 17365, - "▁lazy": 17366, - "xa": 17367, - "▁Channel": 17368, - "▁neuen": 17369, - "das": 17370, - "▁searched": 17371, - "▁staat": 17372, - "▁Так": 17373, - "▁Josef": 17374, - "▁Sher": 17375, - "pois": 17376, - "▁enem": 17377, - "▁accessing": 17378, - "▁неко": 17379, - "▁furono": 17380, - "▁pseudo": 17381, - "?>": 17382, - "▁estadoun": 17383, - "▁Види": 17384, - "▁motiv": 17385, - "▁recall": 17386, - "isson": 17387, - "ób": 17388, - ")--": 17389, - "▁Erz": 17390, - "▁савез": 17391, - "Direct": 17392, - "соб": 17393, - "▁sho": 17394, - "völker": 17395, - "Ap": 17396, - "gens": 17397, - "ништво": 17398, - "▁Amsterdam": 17399, - "usk": 17400, - "пло": 17401, - "▁simulation": 17402, - "▁BC": 17403, - "▁Woj": 17404, - "autom": 17405, - "Alex": 17406, - "▁economic": 17407, - "гом": 17408, - "ikai": 17409, - "▁altre": 17410, - "▁'-": 17411, - "▁Weg": 17412, - "NotFound": 17413, - "йской": 17414, - "▁converting": 17415, - "phabet": 17416, - "atrice": 17417, - "bourne": 17418, - "alom": 17419, - "▁comparing": 17420, - "▁Zo": 17421, - "▁fla": 17422, - "вая": 17423, - "▁entra": 17424, - "▁charset": 17425, - "developers": 17426, - "ística": 17427, - "}>": 17428, - "▁Jazz": 17429, - "▁Howard": 17430, - "шта": 17431, - "▁clone": 17432, - "door": 17433, - "▁Pin": 17434, - "***": 17435, - "▁silent": 17436, - "ecycle": 17437, - "isce": 17438, - "▁mud": 17439, - "▁Display": 17440, - "▁lip": 17441, - "▁использова": 17442, - "▁characteristic": 17443, - "▁sb": 17444, - "firebase": 17445, - "▁Bew": 17446, - "Calendar": 17447, - "▁uso": 17448, - "èse": 17449, - "▁Rat": 17450, - "▁esper": 17451, - "▁throwing": 17452, - "▁rodz": 17453, - "▁yards": 17454, - "▁grass": 17455, - "▁marker": 17456, - "▁Kos": 17457, - "Theta": 17458, - "▁organis": 17459, - "kernel": 17460, - "▁personas": 17461, - "keep": 17462, - "▁exclaimed": 17463, - "oslav": 17464, - "▁Entertain": 17465, - "нер": 17466, - "▁inwon": 17467, - "▁Rand": 17468, - "reduce": 17469, - "fac": 17470, - "expression": 17471, - "yj": 17472, - "▁differenti": 17473, - "aglia": 17474, - "▁templates": 17475, - "▁mű": 17476, - "▁prv": 17477, - "▁mois": 17478, - "▁gewann": 17479, - "▁була": 17480, - "bibli": 17481, - "demo": 17482, - "▁Anderson": 17483, - "▁ред": 17484, - "▁porque": 17485, - "▁Pologne": 17486, - "▁trip": 17487, - "▁exemple": 17488, - "▁Internacional": 17489, - "▁као": 17490, - "Insert": 17491, - "general": 17492, - "SESSION": 17493, - "berga": 17494, - "hält": 17495, - "unas": 17496, - "мира": 17497, - "▁yields": 17498, - "mapsto": 17499, - "spot": 17500, - "▁+\\": 17501, - "лла": 17502, - "▁precisely": 17503, - "▁член": 17504, - "shadow": 17505, - "Are": 17506, - "unal": 17507, - "▁dispar": 17508, - "▁título": 17509, - "nest": 17510, - "▁Low": 17511, - "▁prot": 17512, - "▁Costa": 17513, - "named": 17514, - "▁gained": 17515, - "lesia": 17516, - "▁administration": 17517, - "Import": 17518, - "branch": 17519, - "▁sympath": 17520, - "voj": 17521, - "▁EC": 17522, - "▁municipio": 17523, - "▁animated": 17524, - "▁directories": 17525, - "▁roof": 17526, - "ząd": 17527, - "imet": 17528, - "proto": 17529, - "bla": 17530, - ":]": 17531, - "have": 17532, - "atem": 17533, - "▁ns": 17534, - "▁sector": 17535, - "three": 17536, - "owane": 17537, - "wers": 17538, - "ових": 17539, - "rence": 17540, - "▁extr": 17541, - "igten": 17542, - "▁occident": 17543, - "ță": 17544, - "▁eat": 17545, - "▁hydro": 17546, - "ubernetes": 17547, - "[@": 17548, - "▁Moon": 17549, - "▁Sho": 17550, - "▁elsewhere": 17551, - "üller": 17552, - "Upload": 17553, - "ланд": 17554, - "▁För": 17555, - "wissenschaft": 17556, - "KS": 17557, - "▁physics": 17558, - "tz": 17559, - "▁серед": 17560, - "▁Arbeit": 17561, - "▁мест": 17562, - "▁Gebiet": 17563, - "▁insect": 17564, - "Ah": 17565, - "izado": 17566, - "▁temple": 17567, - "▁annual": 17568, - "stad": 17569, - "▁habitat": 17570, - "▁AB": 17571, - "wort": 17572, - "▁repos": 17573, - "▁Neu": 17574, - "▁$(\".": 17575, - "Vorlage": 17576, - "▁reprezent": 17577, - "estanden": 17578, - "Intern": 17579, - ".`": 17580, - "▁failing": 17581, - "▁Material": 17582, - "▁effectively": 17583, - "телем": 17584, - "▁гла": 17585, - "▁nahm": 17586, - "▁differently": 17587, - "extension": 17588, - "▁Verm": 17589, - "enabled": 17590, - "configure": 17591, - "nio": 17592, - "ciones": 17593, - "▁Beach": 17594, - "сона": 17595, - "▁copying": 17596, - "▁україн": 17597, - "▁призна": 17598, - "zh": 17599, - "Desktop": 17600, - "▁sost": 17601, - "▁subsequently": 17602, - "▁Lehr": 17603, - "▁ó": 17604, - "lär": 17605, - "odor": 17606, - "phon": 17607, - "nc": 17608, - "iterator": 17609, - "▁эти": 17610, - "▁europé": 17611, - "▁Toronto": 17612, - "ódigo": 17613, - "▁posto": 17614, - "ffe": 17615, - "▁crew": 17616, - "▁Schwar": 17617, - "Sa": 17618, - "square": 17619, - "▁beside": 17620, - "▁Мі": 17621, - "▁ath": 17622, - "▁advent": 17623, - "cji": 17624, - "written": 17625, - "▁russ": 17626, - "rost": 17627, - "HI": 17628, - "▁dice": 17629, - "cca": 17630, - "▁dép": 17631, - "ply": 17632, - "bigg": 17633, - "ział": 17634, - "ütt": 17635, - "▁одно": 17636, - "JECT": 17637, - "ському": 17638, - "nos": 17639, - "mock": 17640, - "Launch": 17641, - "same": 17642, - "▁jobs": 17643, - "▁widely": 17644, - "▁defines": 17645, - "▁Pse": 17646, - "▁neighbour": 17647, - "ющие": 17648, - "▁closer": 17649, - "▁располо": 17650, - "▁clubs": 17651, - "fly": 17652, - "шим": 17653, - "▁suffered": 17654, - "▁nar": 17655, - "▁lavor": 17656, - "Extension": 17657, - "itionally": 17658, - "▁grace": 17659, - "▁Campeonato": 17660, - "▁Christmas": 17661, - "middle": 17662, - "othek": 17663, - "elements": 17664, - "▁sondern": 17665, - "▁tarde": 17666, - "▁permanent": 17667, - "▁conclude": 17668, - "Seg": 17669, - "▁акаде": 17670, - "}\",": 17671, - "▁февраля": 17672, - "řed": 17673, - "▁IL": 17674, - "jud": 17675, - "▁USS": 17676, - "▁Nature": 17677, - "ifference": 17678, - "Serializer": 17679, - "▁twelve": 17680, - "tid": 17681, - "мия": 17682, - "ческого": 17683, - "▁calendar": 17684, - "concat": 17685, - "▁intersection": 17686, - "▁PA": 17687, - "azure": 17688, - "▁située": 17689, - "▁kinds": 17690, - "▁ausge": 17691, - "▁rural": 17692, - "Theme": 17693, - "▁tale": 17694, - "noindent": 17695, - "going": 17696, - "rx": 17697, - "agi": 17698, - "wrapper": 17699, - "▁Coast": 17700, - "mbH": 17701, - "▁перед": 17702, - "spre": 17703, - "▁}\\": 17704, - "▁LI": 17705, - "znam": 17706, - "itled": 17707, - "Sample": 17708, - "uliar": 17709, - "*\\": 17710, - "▁resistance": 17711, - "stock": 17712, - "ked": 17713, - "▁HE": 17714, - "▁possession": 17715, - "▁Ring": 17716, - "▁magyar": 17717, - "outs": 17718, - "▁Secretary": 17719, - "nde": 17720, - "▁Wald": 17721, - "-(": 17722, - "▁ISO": 17723, - "▁afternoon": 17724, - "ionen": 17725, - "▁stops": 17726, - "▁constants": 17727, - "guard": 17728, - "bow": 17729, - "▁ers": 17730, - "▁Firebase": 17731, - "▁Clear": 17732, - "▁Holy": 17733, - "Win": 17734, - "▁titles": 17735, - "▁трав": 17736, - "▁contrib": 17737, - "häng": 17738, - "▁photograph": 17739, - "▁Distribution": 17740, - "ifts": 17741, - "▁aunque": 17742, - "comb": 17743, - "ADD": 17744, - "▁publication": 17745, - "▁служ": 17746, - "▁кня": 17747, - "▁ayant": 17748, - "▁restore": 17749, - "▁belief": 17750, - "▁vég": 17751, - "▁extensions": 17752, - "▁decom": 17753, - "вший": 17754, - "WT": 17755, - "▁parti": 17756, - "▁gioc": 17757, - "▁мира": 17758, - "▁issu": 17759, - "pipe": 17760, - "▁props": 17761, - "▁willing": 17762, - "▁nest": 17763, - "aso": 17764, - "pot": 17765, - "▁handles": 17766, - "▁фо": 17767, - "▁moder": 17768, - "▁ebenfalls": 17769, - "▁fighting": 17770, - "umbn": 17771, - "▁transparent": 17772, - "▁Krist": 17773, - "▁homes": 17774, - "▁voyage": 17775, - "Failed": 17776, - "▁Bird": 17777, - "▁Heart": 17778, - "Counter": 17779, - "▁Scottish": 17780, - "ática": 17781, - "▁arbeit": 17782, - "^{-\\": 17783, - "▁Sor": 17784, - "▁engaged": 17785, - "▁aside": 17786, - "▁Fou": 17787, - "▁wiel": 17788, - "▁reconst": 17789, - "ousin": 17790, - "▁hosted": 17791, - "▁classe": 17792, - "▁contest": 17793, - "...\"": 17794, - "мом": 17795, - "▁bean": 17796, - "gem": 17797, - "▁consultato": 17798, - "▁bio": 17799, - "▁subjects": 17800, - "boBox": 17801, - "▁Schrift": 17802, - "▁dinner": 17803, - "ăr": 17804, - "▁równ": 17805, - "▁%%": 17806, - "bage": 17807, - "▁veröff": 17808, - "▁detected": 17809, - "ienn": 17810, - "rose": 17811, - "▁Ton": 17812, - "Complete": 17813, - "▁proto": 17814, - "ichts": 17815, - "STAT": 17816, - "Checked": 17817, - "▁inten": 17818, - "▁smile": 17819, - "▁strip": 17820, - "neut": 17821, - "');\r": 17822, - "four": 17823, - "▁todas": 17824, - "Controls": 17825, - "▁thorough": 17826, - "rup": 17827, - "▁држави": 17828, - "ită": 17829, - "Protocol": 17830, - "Ка": 17831, - "▁expanded": 17832, - "extra": 17833, - "oport": 17834, - "▁Станов": 17835, - "leases": 17836, - "▁notion": 17837, - "▁guest": 17838, - "▁Islands": 17839, - "icked": 17840, - "▁Dave": 17841, - "▁reflection": 17842, - "liv": 17843, - "ální": 17844, - "▁revealed": 17845, - "▁sog": 17846, - "▁Tax": 17847, - "▁periodo": 17848, - "▁Weltkrie": 17849, - "catalina": 17850, - "qué": 17851, - "▁Father": 17852, - "▁Bir": 17853, - "expect": 17854, - "▁regression": 17855, - "iné": 17856, - "▁dabei": 17857, - "perm": 17858, - "мене": 17859, - "▁Abd": 17860, - "▁CF": 17861, - "arks": 17862, - "resolve": 17863, - "wedge": 17864, - "▁initialization": 17865, - "▁Véase": 17866, - "▁приня": 17867, - "stmt": 17868, - "▁income": 17869, - "MY": 17870, - "▁odkazy": 17871, - "▁Siehe": 17872, - "▁bodies": 17873, - "▁soc": 17874, - "Random": 17875, - "▁senza": 17876, - "ablo": 17877, - "▁regarded": 17878, - "onCreate": 17879, - "▁Magazine": 17880, - "▁Raf": 17881, - "▁Buenos": 17882, - "ил": 17883, - ")));": 17884, - "capt": 17885, - "redirect": 17886, - "▁petit": 17887, - "▁farm": 17888, - "▁rôle": 17889, - "▁статьи": 17890, - "    ": 17891, - "subfigure": 17892, - "èces": 17893, - "ziel": 17894, - "▁окон": 17895, - "EE": 17896, - "mee": 17897, - "▁perten": 17898, - "▁représent": 17899, - "▁LA": 17900, - "?'": 17901, - "▁тру": 17902, - "▁rational": 17903, - "osof": 17904, - "▁kne": 17905, - "▁artists": 17906, - "Flow": 17907, - "▁Аль": 17908, - "izard": 17909, - "▁numero": 17910, - "actic": 17911, - "▁destruct": 17912, - "▁Пра": 17913, - "onsieur": 17914, - "qt": 17915, - "abestanden": 17916, - "ność": 17917, - "Connect": 17918, - "▁oracle": 17919, - "▁Stockholm": 17920, - "sizeof": 17921, - "▁gemäß": 17922, - "ACT": 17923, - "▁expert": 17924, - "utions": 17925, - "▁hacia": 17926, - "▁logger": 17927, - "▁fool": 17928, - "rypto": 17929, - "ær": 17930, - "▁cidade": 17931, - "▁составе": 17932, - "oker": 17933, - "▁Transfer": 17934, - "▁denied": 17935, - "Track": 17936, - "▁radi": 17937, - "zec": 17938, - "▁Historic": 17939, - "▁Einwohner": 17940, - "кою": 17941, - "▁хра": 17942, - "▁Category": 17943, - "▁Disney": 17944, - "▁swap": 17945, - "Begin": 17946, - "▁mientras": 17947, - "▁dance": 17948, - "▁tête": 17949, - "▁droit": 17950, - "erta": 17951, - "▁birds": 17952, - "▁convin": 17953, - "parator": 17954, - "дра": 17955, - "▁ES": 17956, - "▁Ressources": 17957, - "EGIN": 17958, - "ücke": 17959, - "▁Cruz": 17960, - "abling": 17961, - "▁\"@": 17962, - "▁metres": 17963, - "▁Beg": 17964, - "▁Gründ": 17965, - "▁Boh": 17966, - "▁mile": 17967, - "▁Technology": 17968, - "\"+": 17969, - "acco": 17970, - "▁ss": 17971, - "▁Fed": 17972, - "▁Hend": 17973, - "usch": 17974, - "itä": 17975, - "folk": 17976, - "▁absor": 17977, - "antal": 17978, - "odge": 17979, - "▁WHEN": 17980, - "▁Externí": 17981, - "▁Regiment": 17982, - "▁evaluation": 17983, - "▁Tai": 17984, - "▁vocals": 17985, - "▁experimental": 17986, - "embed": 17987, - "▁Minn": 17988, - "▁вме": 17989, - "prec": 17990, - "every": 17991, - "▁hoof": 17992, - "▁Fernando": 17993, - "▁Bibliographie": 17994, - "▁nag": 17995, - "amerikanischer": 17996, - "▁marks": 17997, - "▁UTC": 17998, - "▁uncertain": 17999, - "дия": 18000, - "olia": 18001, - "▁cup": 18002, - "▁fille": 18003, - "▁dok": 18004, - "useppe": 18005, - "esterd": 18006, - "▁Brand": 18007, - "▁Third": 18008, - "PP": 18009, - "nodes": 18010, - "▁Pad": 18011, - "▁loved": 18012, - "swing": 18013, - "▁surprised": 18014, - "ardi": 18015, - "▁GR": 18016, - "]\"": 18017, - "▁equally": 18018, - "ihe": 18019, - "care": 18020, - "писок": 18021, - "lijk": 18022, - "rinn": 18023, - "▁\\[\\": 18024, - "▁sons": 18025, - "▁tät": 18026, - "icamente": 18027, - "▁listing": 18028, - "iellement": 18029, - "▁nyelven": 18030, - "▁ds": 18031, - "▁agricult": 18032, - "▁Hermann": 18033, - "▁besides": 18034, - "progress": 18035, - "▁peculiar": 18036, - "focus": 18037, - "cn": 18038, - "-$": 18039, - "ственный": 18040, - "ourg": 18041, - "▁wyn": 18042, - "▁conducted": 18043, - "▁Становништво": 18044, - "connected": 18045, - "▁bott": 18046, - "▁смер": 18047, - "▁Poz": 18048, - "unct": 18049, - "conda": 18050, - "▁савезној": 18051, - "▁havet": 18052, - "ligt": 18053, - "orted": 18054, - "▁entering": 18055, - "multip": 18056, - "▁Temple": 18057, - "▁Plant": 18058, - "typeof": 18059, - "▁Vlad": 18060, - "▁qued": 18061, - "▁reste": 18062, - "▁май": 18063, - "▁Very": 18064, - "ambiguation": 18065, - "▁challeng": 18066, - "▁respective": 18067, - "▁тор": 18068, - "Ctrl": 18069, - "▁absence": 18070, - "aru": 18071, - "вое": 18072, - "▁först": 18073, - "▁sq": 18074, - "▁Emperor": 18075, - "▁Ign": 18076, - "▁това": 18077, - ":`": 18078, - "adoop": 18079, - "▁Madame": 18080, - "▁gruppo": 18081, - "stud": 18082, - "▁externas": 18083, - "▁Александр": 18084, - "▁dign": 18085, - "▁живе": 18086, - "Amount": 18087, - "▁correlate": 18088, - "▁Fant": 18089, - "▁rails": 18090, - "fp": 18091, - "министратив": 18092, - "▁bought": 18093, - "▁filters": 18094, - "▁ancora": 18095, - "▁partner": 18096, - "▁quand": 18097, - "symbol": 18098, - "ulating": 18099, - "▁zd": 18100, - "awn": 18101, - "▁Grant": 18102, - "because": 18103, - "rable": 18104, - "\\}": 18105, - "ísticas": 18106, - "▁уче": 18107, - "▁période": 18108, - "▁ske": 18109, - "▁Anyway": 18110, - "▁indexes": 18111, - "▁directions": 18112, - "▁RAM": 18113, - "chrome": 18114, - "▁apost": 18115, - "▁warnings": 18116, - "▁Airport": 18117, - "VI": 18118, - "abile": 18119, - "▁lord": 18120, - "provider": 18121, - "▁Ji": 18122, - "ostream": 18123, - "▁gemeente": 18124, - "tableView": 18125, - "Extra": 18126, - "cursor": 18127, - "eground": 18128, - "▁Moz": 18129, - "▁rib": 18130, - "▁morph": 18131, - "loads": 18132, - "elsk": 18133, - "▁MAX": 18134, - "▁Santiago": 18135, - "▁Him": 18136, - "codes": 18137, - "▁lanz": 18138, - "▁counts": 18139, - "rinningsområ": 18140, - "щё": 18141, - "▁spé": 18142, - "▁pierws": 18143, - "▁Sver": 18144, - "▁acknow": 18145, - "Boolean": 18146, - "▁фамили": 18147, - "▁Senate": 18148, - "шов": 18149, - "agers": 18150, - "▁Nueva": 18151, - "bil": 18152, - "kiem": 18153, - "▁Mey": 18154, - "wij": 18155, - "▁GmbH": 18156, - "validation": 18157, - "▁ensuite": 18158, - "inking": 18159, - "▁campion": 18160, - "▁financial": 18161, - "izon": 18162, - "Headers": 18163, - "▁deprecated": 18164, - "▁fonction": 18165, - "REG": 18166, - "▁volumes": 18167, - "▁Chi": 18168, - "▁encountered": 18169, - "lak": 18170, - "рая": 18171, - "▁continues": 18172, - "▁~[": 18173, - "uerte": 18174, - "▁\\;": 18175, - "▁Dok": 18176, - "▁weights": 18177, - "▁rh": 18178, - "▁Napole": 18179, - "▁naturally": 18180, - "sku": 18181, - "pas": 18182, - "▁gegründ": 18183, - "etr": 18184, - "▁Ku": 18185, - "icted": 18186, - "▁fabric": 18187, - "▁ASC": 18188, - "▁Entertainment": 18189, - "▁energ": 18190, - "клад": 18191, - "omon": 18192, - "theme": 18193, - "▁харак": 18194, - "▁draft": 18195, - "▁channels": 18196, - "▁desert": 18197, - "▁través": 18198, - "▁Lock": 18199, - "▁siendo": 18200, - "фек": 18201, - "même": 18202, - "▁packet": 18203, - "▁Mountain": 18204, - "▁Fahr": 18205, - "braio": 18206, - "пере": 18207, - "▁genannt": 18208, - "▁deployment": 18209, - "Pal": 18210, - "ног": 18211, - "стру": 18212, - "Prim": 18213, - "für": 18214, - "▁dangerous": 18215, - "▁szám": 18216, - "reck": 18217, - "▁popup": 18218, - "icky": 18219, - "inar": 18220, - "cowo": 18221, - "нцикло": 18222, - "ítás": 18223, - "▁plugins": 18224, - "▁driven": 18225, - "лев": 18226, - "▁\"(": 18227, - "tta": 18228, - "▁Ú": 18229, - "▁eb": 18230, - "▁'';": 18231, - "▁knock": 18232, - "▁основа": 18233, - "▁maison": 18234, - "гля": 18235, - "▁Honor": 18236, - "tail": 18237, - "ritz": 18238, - "▁guys": 18239, - "▁combinations": 18240, - "ondere": 18241, - "▁Ald": 18242, - "▁fiddle": 18243, - "дав": 18244, - "urd": 18245, - "▁projection": 18246, - "▁También": 18247, - "verb": 18248, - "▁terre": 18249, - "rugu": 18250, - "▁september": 18251, - "▁=": 18572, - "▁Beat": 18573, - "▁Sax": 18574, - "vertical": 18575, - "кто": 18576, - "▁plants": 18577, - "▁Références": 18578, - "▁ogni": 18579, - "▁curs": 18580, - "▁SK": 18581, - "они": 18582, - "▁destac": 18583, - "\");\r": 18584, - "▁Sure": 18585, - "▁partido": 18586, - "▁Folge": 18587, - "▁Moore": 18588, - "▁wz": 18589, - "скус": 18590, - "ltre": 18591, - "ondo": 18592, - "▁pose": 18593, - "imos": 18594, - "бой": 18595, - "ципа": 18596, - "jus": 18597, - ".....": 18598, - "▁época": 18599, - "▁quanto": 18600, - "▁Support": 18601, - "geschichte": 18602, - "SERVER": 18603, - "▁Georges": 18604, - "enum": 18605, - "▁herm": 18606, - "▁nebo": 18607, - "▁Chr": 18608, - "character": 18609, - "▁***": 18610, - "▁Forsch": 18611, - "iami": 18612, - "▁¿": 18613, - "cych": 18614, - "▁fifth": 18615, - "sent": 18616, - "▁anderem": 18617, - "▁proportion": 18618, - "▁prest": 18619, - "▁Girl": 18620, - "▁drama": 18621, - "wand": 18622, - "▁Mail": 18623, - "▁Lux": 18624, - "▁který": 18625, - "▁Gesellschaft": 18626, - "▁Hinweis": 18627, - "nisse": 18628, - "▁mondo": 18629, - "Eq": 18630, - "▁perí": 18631, - "▁eastern": 18632, - "▁UEFA": 18633, - "uale": 18634, - "▁convex": 18635, - "▁поль": 18636, - "▁Hey": 18637, - "zenie": 18638, - "initely": 18639, - "▁Zusammen": 18640, - "SSL": 18641, - "ocal": 18642, - "▁canal": 18643, - "voy": 18644, - "▁Кри": 18645, - "▁között": 18646, - "▁cars": 18647, - "▁versión": 18648, - "Environment": 18649, - "Her": 18650, - "▁señ": 18651, - "▁spatial": 18652, - "ymi": 18653, - "Fire": 18654, - "▁veget": 18655, - "▁Wie": 18656, - "▁znaj": 18657, - "▁damage": 18658, - "▁endl": 18659, - "gif": 18660, - "▁quali": 18661, - "▁которых": 18662, - "ellan": 18663, - "▁mens": 18664, - "▁plug": 18665, - "▁abund": 18666, - "FIG": 18667, - "▁sf": 18668, - "▁confl": 18669, - "▁населения": 18670, - "▁principles": 18671, - "▁Gabriel": 18672, - "ibe": 18673, - "▁{%": 18674, - "▁població": 18675, - "ніципа": 18676, - "▁extreme": 18677, - "▁asse": 18678, - "▁vu": 18679, - "Mock": 18680, - "▁spielte": 18681, - "▁Aer": 18682, - "▁datos": 18683, - "endes": 18684, - "▁Gel": 18685, - "▁Gor": 18686, - "Christ": 18687, - "chos": 18688, - "Processor": 18689, - "▁instruct": 18690, - "▁picked": 18691, - "nahme": 18692, - "fahr": 18693, - "▁indicated": 18694, - "▁%.": 18695, - "▁ts": 18696, - "▁notable": 18697, - "▁qualified": 18698, - "▁Ал": 18699, - "Black": 18700, - "▁council": 18701, - "▁overhead": 18702, - "aci": 18703, - "année": 18704, - "▁initWith": 18705, - "bió": 18706, - "▁introduction": 18707, - "▁companion": 18708, - "▁expon": 18709, - "▁kör": 18710, - "oby": 18711, - "burn": 18712, - "gnu": 18713, - "virtual": 18714, - "▁intellect": 18715, - "▁держа": 18716, - "'+": 18717, - "бле": 18718, - "▁strictly": 18719, - "▁recognize": 18720, - "hour": 18721, - "▁Wrest": 18722, - "ennen": 18723, - "$).": 18724, - "fff": 18725, - "▁Centro": 18726, - "▁Pitt": 18727, - "▁dział": 18728, - "▁cela": 18729, - "▁francese": 18730, - "рами": 18731, - "special": 18732, - "▁Dup": 18733, - "toire": 18734, - "каль": 18735, - "COUNT": 18736, - "▁Brook": 18737, - "▁руково": 18738, - "publique": 18739, - "▁seconda": 18740, - "▁compt": 18741, - "▁bland": 18742, - "Before": 18743, - "▁Pack": 18744, - "alty": 18745, - "öder": 18746, - "▁intervals": 18747, - "▁Datenbank": 18748, - "Movie": 18749, - "▁transm": 18750, - "▁tap": 18751, - "▁поч": 18752, - "fon": 18753, - "iai": 18754, - "▁fib": 18755, - "▁wyd": 18756, - "▁hung": 18757, - "▁alive": 18758, - "Clear": 18759, - "▁pushed": 18760, - "▁tuple": 18761, - "achen": 18762, - "гово": 18763, - "▁revers": 18764, - "▁augment": 18765, - "▁challenge": 18766, - "lost": 18767, - "▁deuxième": 18768, - "structor": 18769, - "▁mehrerer": 18770, - "atural": 18771, - "Split": 18772, - "стем": 18773, - "шла": 18774, - ")\\\\": 18775, - "▁Dog": 18776, - "▁developers": 18777, - "▁nod": 18778, - "▁сторо": 18779, - "▁NaN": 18780, - "▁priest": 18781, - "▁exha": 18782, - "UND": 18783, - "pair": 18784, - "alone": 18785, - "▁moon": 18786, - "▁#!/": 18787, - "▁guns": 18788, - "rola": 18789, - "чита": 18790, - "▁Encyclopedia": 18791, - "atis": 18792, - "▁'\"": 18793, - "zych": 18794, - "▁superfic": 18795, - "▁эк": 18796, - "едера": 18797, - "feed": 18798, - "LAY": 18799, - "Fi": 18800, - "unks": 18801, - "isecond": 18802, - "▁'@": 18803, - "▁Adding": 18804, - "рое": 18805, - "▁tang": 18806, - "цо": 18807, - "hung": 18808, - "bis": 18809, - "ského": 18810, - "▁advert": 18811, - "▁занима": 18812, - "uzz": 18813, - "ágina": 18814, - "▁Tel": 18815, - "sig": 18816, - "▁Ez": 18817, - "▁guarantee": 18818, - "▁teaching": 18819, - "oty": 18820, - "termin": 18821, - "▁distributions": 18822, - "FLA": 18823, - "▁Giuseppe": 18824, - "querySelector": 18825, - "▁/\\": 18826, - "▁Squad": 18827, - "gz": 18828, - "delay": 18829, - "▁surrounding": 18830, - "▁manus": 18831, - "▁Hou": 18832, - "²,": 18833, - "▁cultiv": 18834, - "▁troubles": 18835, - "▁raison": 18836, - "expand": 18837, - "▁cov": 18838, - "nungen": 18839, - ")){": 18840, - "▁geen": 18841, - "▁außer": 18842, - "▁Лі": 18843, - "ři": 18844, - "▁situations": 18845, - "▁telep": 18846, - "▁Jed": 18847, - "▁travail": 18848, - "lias": 18849, - "bullet": 18850, - "▁selecting": 18851, - "avier": 18852, - "▁essential": 18853, - "(/": 18854, - "yyyy": 18855, - "ště": 18856, - "ulty": 18857, - "▁kra": 18858, - "▁tabs": 18859, - "▁experienced": 18860, - "azi": 18861, - "▁Directory": 18862, - "▁cron": 18863, - "▁spend": 18864, - "▁RA": 18865, - "▁selenium": 18866, - "▁Thé": 18867, - "Elements": 18868, - "cii": 18869, - "▁plat": 18870, - "▁archive": 18871, - "▁assistance": 18872, - "▁neck": 18873, - "▁Avenue": 18874, - "▁wheel": 18875, - "▁hade": 18876, - "Common": 18877, - "▁Dialog": 18878, - "▁forg": 18879, - "▁surely": 18880, - "▁hockey": 18881, - "któ": 18882, - "▁tk": 18883, - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁": 18884, - "▁Bruce": 18885, - "▁enorm": 18886, - ",’": 18887, - "▁Christopher": 18888, - "jev": 18889, - "▁quad": 18890, - "▁AJAX": 18891, - "▁relief": 18892, - "▁modes": 18893, - "sklär": 18894, - "▁Vid": 18895, - "▁Serial": 18896, - "▁tokens": 18897, - "▁Poland": 18898, - "\\]": 18899, - "▁vide": 18900, - "rooms": 18901, - "omas": 18902, - "▁Bureau": 18903, - "cx": 18904, - "ностью": 18905, - "▁signs": 18906, - "шение": 18907, - "lossen": 18908, - "▁Queens": 18909, - "▁membre": 18910, - "▁mez": 18911, - "▁Bool": 18912, - "▁Naj": 18913, - "▁Memory": 18914, - "▁Khan": 18915, - "▁là": 18916, - "▁Hud": 18917, - "▁dismiss": 18918, - "ighth": 18919, - "▁fs": 18920, - "prevent": 18921, - "▁меда": 18922, - "▁Police": 18923, - "▁ско": 18924, - "finite": 18925, - "▁ami": 18926, - "▁Much": 18927, - "owania": 18928, - "ORY": 18929, - "iors": 18930, - "▁Premio": 18931, - "▁textbox": 18932, - "dm": 18933, - "▁afin": 18934, - "▁Donald": 18935, - "▁Priv": 18936, - "▁decid": 18937, - "▁Maurice": 18938, - "agan": 18939, - "▁Britannica": 18940, - "▁oft": 18941, - "▁consecutive": 18942, - "\"?>": 18943, - "овий": 18944, - "student": 18945, - "▁peque": 18946, - "▁dieses": 18947, - "▁retour": 18948, - "étr": 18949, - "▁сез": 18950, - "▁kre": 18951, - "▁votes": 18952, - "ruption": 18953, - "izada": 18954, - "▁Wiel": 18955, - "▁Gray": 18956, - "▁Leop": 18957, - "teilung": 18958, - "(['": 18959, - "▁whites": 18960, - "frica": 18961, - "animation": 18962, - "curl": 18963, - "lings": 18964, - "=\"$": 18965, - "loyd": 18966, - "textsc": 18967, - "ору": 18968, - "▁села": 18969, - "esian": 18970, - "▁Mission": 18971, - "▁неза": 18972, - "▁ultimately": 18973, - "бов": 18974, - "olen": 18975, - "скому": 18976, - "nete": 18977, - "▁Dit": 18978, - "▁costru": 18979, - "dependent": 18980, - "▁Resource": 18981, - "▁hosts": 18982, - "▁rear": 18983, - "Duration": 18984, - "ників": 18985, - "Ма": 18986, - "▁planning": 18987, - "▁prediction": 18988, - "▁Lyn": 18989, - "▁kir": 18990, - "▁Legisl": 18991, - "мат": 18992, - "▁Soccer": 18993, - "▁survey": 18994, - "▁estadounidense": 18995, - "orgen": 18996, - "jourd": 18997, - "▁aprile": 18998, - "▁ids": 18999, - "ське": 19000, - "▁employee": 19001, - "▁Schauspieler": 19002, - "ръ": 19003, - "▁multimedia": 19004, - "▁свою": 19005, - "▁wine": 19006, - "▁EU": 19007, - "ică": 19008, - "▁Rhein": 19009, - "▁Palmar": 19010, - "oteca": 19011, - "▁prepare": 19012, - "▁Tot": 19013, - "▁Null": 19014, - "▁kin": 19015, - "inals": 19016, - "▁Newton": 19017, - "▁tbl": 19018, - "▁Sold": 19019, - "▁verf": 19020, - "aturing": 19021, - "▁laptop": 19022, - "▁Совет": 19023, - "secret": 19024, - "▁Olympic": 19025, - "▁footballer": 19026, - "▁Rudolf": 19027, - "▁conhe": 19028, - "zysk": 19029, - "▁evaluated": 19030, - "»)": 19031, - "shop": 19032, - "repository": 19033, - "▁zach": 19034, - "▁losing": 19035, - "etter": 19036, - "▁Wirtschaft": 19037, - "так": 19038, - "▁unnecessary": 19039, - "▁Phot": 19040, - "anska": 19041, - "▁Native": 19042, - "CCE": 19043, - "▁fifty": 19044, - "▁erw": 19045, - "rh": 19046, - "issent": 19047, - "}{(": 19048, - "▁lanç": 19049, - "▁Xcode": 19050, - "город": 19051, - "cir": 19052, - "▁película": 19053, - "▁Oscar": 19054, - "▁shore": 19055, - "▁supplied": 19056, - "examples": 19057, - "Mess": 19058, - "VICE": 19059, - "▁exclude": 19060, - "▁hen": 19061, - "▁губер": 19062, - "▁Fragment": 19063, - "▁Bitte": 19064, - "▁Besides": 19065, - "▁hes": 19066, - "▁ihrem": 19067, - "▁Serge": 19068, - "▁artific": 19069, - "=\"${": 19070, - "лово": 19071, - "uteur": 19072, - "taire": 19073, - "пас": 19074, - "▁easiest": 19075, - "▁famiglia": 19076, - "Normal": 19077, - "▁dalle": 19078, - "▁nations": 19079, - "rp": 19080, - "thead": 19081, - "▁області": 19082, - "▁Democratic": 19083, - "▁челове": 19084, - "мож": 19085, - "▁гер": 19086, - "▁smallest": 19087, - "▁Publishing": 19088, - "▁Ts": 19089, - "▁laughed": 19090, - "lle": 19091, - "▁Amt": 19092, - "▁IIS": 19093, - "FORM": 19094, - "Mag": 19095, - "дон": 19096, - "▁storia": 19097, - "▁organized": 19098, - "ční": 19099, - "▁ox": 19100, - "lingen": 19101, - "▁luego": 19102, - "cció": 19103, - "▁rely": 19104, - "▁tussen": 19105, - "erten": 19106, - "▁honour": 19107, - "▁Claude": 19108, - "▁Korea": 19109, - "▁Metropol": 19110, - "Super": 19111, - "rien": 19112, - "érature": 19113, - "attro": 19114, - "▁біль": 19115, - "▁Herbert": 19116, - "▁auteurs": 19117, - "▁darauf": 19118, - "▁mental": 19119, - "▁rang": 19120, - "▁són": 19121, - "▁Soph": 19122, - ")\",": 19123, - "Descriptor": 19124, - "prepare": 19125, - "▁Landkreis": 19126, - "HC": 19127, - "cross": 19128, - "лиза": 19129, - "▁Login": 19130, - "onen": 19131, - "Feature": 19132, - "▁museum": 19133, - "vek": 19134, - "▁Nelson": 19135, - "▁rejo": 19136, - "▁команди": 19137, - "▁summar": 19138, - "▁следу": 19139, - "ämp": 19140, - "▁Gas": 19141, - "вом": 19142, - "VALUE": 19143, - "inge": 19144, - "period": 19145, - "lassen": 19146, - "ával": 19147, - "▁altogether": 19148, - "umph": 19149, - "istro": 19150, - "ąż": 19151, - "▁Keep": 19152, - "▁Marco": 19153, - "▁étant": 19154, - "▁Dre": 19155, - "geometry": 19156, - "▁Kas": 19157, - "messages": 19158, - "Cook": 19159, - "▁Side": 19160, - "▁коми": 19161, - "стри": 19162, - "▁excess": 19163, - "▁Biografia": 19164, - "XXXX": 19165, - "▁Nie": 19166, - "vendor": 19167, - "xsd": 19168, - "Mill": 19169, - "processing": 19170, - "▁Missouri": 19171, - "▁permett": 19172, - "▁apar": 19173, - "▁crowd": 19174, - "fert": 19175, - "▁Dou": 19176, - "rí": 19177, - "▁CC": 19178, - "▁payment": 19179, - "▁Hollywood": 19180, - "▁Virtual": 19181, - "▁spoken": 19182, - "▁tram": 19183, - "▁Community": 19184, - "▁administrative": 19185, - "▁воло": 19186, - "gior": 19187, - "visor": 19188, - "▁Украи": 19189, - "stage": 19190, - "▁Format": 19191, - "▁convenient": 19192, - "На": 19193, - "▁median": 19194, - "▁вра": 19195, - "▁Према": 19196, - "enig": 19197, - "▁Opera": 19198, - "rés": 19199, - "▁fmt": 19200, - "▁efficiency": 19201, - "male": 19202, - "Master": 19203, - "Series": 19204, - "▁syd": 19205, - "generic": 19206, - "interval": 19207, - "▁efect": 19208, - "▁inwoners": 19209, - "лимпи": 19210, - "irement": 19211, - "Err": 19212, - "öh": 19213, - "▁lying": 19214, - "▁Settings": 19215, - "!=": 19216, - "ematic": 19217, - "argv": 19218, - "▁Basic": 19219, - "▁consideration": 19220, - "▁habe": 19221, - "-%": 19222, - "▁mountains": 19223, - "▁peak": 19224, - "▁fallen": 19225, - "eded": 19226, - "logic": 19227, - "▁matched": 19228, - "▁typing": 19229, - ")},": 19230, - "▁fancy": 19231, - "▁elegant": 19232, - "ال": 19233, - "▁участ": 19234, - "▁Sarah": 19235, - "▁Verd": 19236, - "▁tego": 19237, - "rules": 19238, - "▁mounted": 19239, - "▁ім": 19240, - "еру": 19241, - "stoff": 19242, - "fahren": 19243, - "distance": 19244, - "▁License": 19245, - "▁LEFT": 19246, - "▁wp": 19247, - "/{": 19248, - "▁amazon": 19249, - ">&": 19250, - "▁első": 19251, - "quarters": 19252, - "▁shock": 19253, - "nick": 19254, - "▁Archite": 19255, - "▁Square": 19256, - "▁rates": 19257, - "iore": 19258, - "▁Nat": 19259, - "▁Charlot": 19260, - "reichen": 19261, - "▁variation": 19262, - "osis": 19263, - "life": 19264, - "slide": 19265, - "abi": 19266, - "uki": 19267, - "mysq": 19268, - "▁primitive": 19269, - "▁universitaire": 19270, - "LENG": 19271, - "ależ": 19272, - "ebook": 19273, - "syn": 19274, - "▁Gegen": 19275, - "▁Kü": 19276, - "▁але": 19277, - "▁Lub": 19278, - "concurrent": 19279, - "izzato": 19280, - "▁stub": 19281, - "▁ie": 19282, - "▁'./": 19283, - "cod": 19284, - "▁internacional": 19285, - "▁Glas": 19286, - "▁mare": 19287, - "▁Neb": 19288, - "▁GB": 19289, - "kwargs": 19290, - "▁aument": 19291, - "WID": 19292, - "▁род": 19293, - "punkt": 19294, - "▁Grad": 19295, - "SN": 19296, - "AMP": 19297, - "▁Born": 19298, - "▁Guerre": 19299, - "готов": 19300, - "▁medio": 19301, - "Med": 19302, - "supp": 19303, - "actual": 19304, - "dropdown": 19305, - "▁oktober": 19306, - "▁ř": 19307, - "▁circular": 19308, - "▁skin": 19309, - "▁emphas": 19310, - "▁голов": 19311, - "▁pue": 19312, - "▁informations": 19313, - "▁Wolfgang": 19314, - "▁useless": 19315, - "ит": 19316, - "▁Joan": 19317, - "▁бор": 19318, - "▁Glad": 19319, - "▁Know": 19320, - "ként": 19321, - "speed": 19322, - "▁Kevin": 19323, - "unft": 19324, - "▁arqu": 19325, - "▁Casa": 19326, - "(...": 19327, - "▁rapidly": 19328, - "▁proble": 19329, - "▁Википеди": 19330, - "žen": 19331, - "▁Neben": 19332, - "▁Meter": 19333, - "Children": 19334, - "cem": 19335, - "igos": 19336, - "aju": 19337, - "▁Retrie": 19338, - "▁Hell": 19339, - "▁gig": 19340, - "▁controvers": 19341, - "▁zoom": 19342, - "▁cens": 19343, - "▁alcuni": 19344, - "▁Header": 19345, - "Meta": 19346, - "Required": 19347, - "▁институ": 19348, - "▁skup": 19349, - "▁ingles": 19350, - "égl": 19351, - "bij": 19352, - "▁tér": 19353, - "▁compag": 19354, - "▁committed": 19355, - "▁processed": 19356, - "Lower": 19357, - "▁Foreign": 19358, - "▁seq": 19359, - "sheets": 19360, - "▁Fem": 19361, - "hoz": 19362, - "inks": 19363, - "▁kall": 19364, - "variant": 19365, - "▁libro": 19366, - "▁clicks": 19367, - "▁gobierno": 19368, - "iegel": 19369, - "мого": 19370, - "geme": 19371, - "▁tower": 19372, - "▁parish": 19373, - "▁TCP": 19374, - "▁ls": 19375, - "▁nginx": 19376, - "NaN": 19377, - "▁Dir": 19378, - "▁Begriffe": 19379, - "arie": 19380, - "ímp": 19381, - "icios": 19382, - "▁sharing": 19383, - "▁cinéma": 19384, - "bec": 19385, - "RED": 19386, - "▁Kra": 19387, - "abol": 19388, - "▁flux": 19389, - "▁expensive": 19390, - "▁суще": 19391, - "▁`_": 19392, - "ocz": 19393, - "лист": 19394, - "▁acquaint": 19395, - "▁wise": 19396, - "▁pouvoir": 19397, - "▁devant": 19398, - "▁momentum": 19399, - "immer": 19400, - "▁Coupe": 19401, - "indexOf": 19402, - "▁doesnt": 19403, - "▁зав": 19404, - "▁license": 19405, - "▁â": 19406, - "CSS": 19407, - "▁rice": 19408, - "Team": 19409, - "▁ano": 19410, - "lit": 19411, - "▁merged": 19412, - "▁Cell": 19413, - "лл": 19414, - "boy": 19415, - "asts": 19416, - "▁sell": 19417, - "▁große": 19418, - "▁virtuel": 19419, - "Cancel": 19420, - "▁sj": 19421, - "gment": 19422, - ".<": 19423, - "чай": 19424, - "ië": 19425, - "akh": 19426, - "izers": 19427, - "prit": 19428, - "▁Tib": 19429, - "▁elaborate": 19430, - "▁fé": 19431, - "▁меди": 19432, - "LENGTH": 19433, - "▁primarily": 19434, - "▁scores": 19435, - "▁carrying": 19436, - "▁lake": 19437, - "compose": 19438, - "▁Township": 19439, - "unge": 19440, - "▁alberga": 19441, - "anych": 19442, - "quelle": 19443, - "▁Ark": 19444, - "▁pris": 19445, - "▁voll": 19446, - "шли": 19447, - "Validation": 19448, - "▁ceux": 19449, - "▁populate": 19450, - "\"\r": 19451, - "▁femmes": 19452, - "ANG": 19453, - "▁Despite": 19454, - "вые": 19455, - "iske": 19456, - "zug": 19457, - "нача": 19458, - "▁hatten": 19459, - "INSERT": 19460, - "Employee": 19461, - "▁moments": 19462, - "▁última": 19463, - "▁holder": 19464, - "blank": 19465, - "Collections": 19466, - "athers": 19467, - "▁grade": 19468, - "▁affairs": 19469, - ".$$": 19470, - "▁delta": 19471, - "▁Jugend": 19472, - "▁español": 19473, - "▁OUT": 19474, - "▁mathematical": 19475, - "▁mongo": 19476, - "▁Фе": 19477, - "uling": 19478, - "▁revolution": 19479, - "▁coin": 19480, - "▁subclass": 19481, - "\"=>": 19482, - "äche": 19483, - "▁pyg": 19484, - "щая": 19485, - "illery": 19486, - "▁comenz": 19487, - "depth": 19488, - "▁cél": 19489, - "▁resize": 19490, - "▁Same": 19491, - "▁strik": 19492, - "▁tir": 19493, - "▁scarc": 19494, - "▁Member": 19495, - "subscribe": 19496, - "óż": 19497, - "útbol": 19498, - "except": 19499, - "▁driving": 19500, - "kie": 19501, - "zony": 19502, - "èmes": 19503, - "David": 19504, - "issant": 19505, - "▁ты": 19506, - "▁élect": 19507, - "▁rename": 19508, - "▁Running": 19509, - "▁interfaces": 19510, - "////////////////": 19511, - "▁Walker": 19512, - "▁société": 19513, - "▁asks": 19514, - "brid": 19515, - "▁jewe": 19516, - "▁seines": 19517, - "▁agents": 19518, - "▁MY": 19519, - "▁Lawrence": 19520, - "dess": 19521, - "iesen": 19522, - "▁людях": 19523, - "прави": 19524, - "▁ancest": 19525, - "▁welche": 19526, - "raum": 19527, - "▁orb": 19528, - "scal": 19529, - "▁Lear": 19530, - "▁wear": 19531, - "▁slave": 19532, - "▁renamed": 19533, - "čen": 19534, - "maste": 19535, - "angles": 19536, - "▁América": 19537, - "▁ti": 19538, - "▁demsel": 19539, - "▁beneath": 19540, - "binary": 19541, - "▁edición": 19542, - "▁kilomet": 19543, - "uits": 19544, - "▁cuatro": 19545, - "▁entrance": 19546, - "ondissement": 19547, - "▁bag": 19548, - "▁Armen": 19549, - "ijo": 19550, - "▁Lors": 19551, - "▁demselben": 19552, - "êm": 19553, - "▁discrete": 19554, - "▁prominent": 19555, - "▁Jay": 19556, - "decor": 19557, - "DL": 19558, - "▁dí": 19559, - "Struct": 19560, - "▁Production": 19561, - "they": 19562, - "arius": 19563, - "schnitt": 19564, - "▁Cou": 19565, - "▁lex": 19566, - "youtube": 19567, - "▁работа": 19568, - "station": 19569, - "sep": 19570, - "▁mirror": 19571, - "▁hits": 19572, - "▁Beck": 19573, - "atically": 19574, - "▁Laz": 19575, - "▁winner": 19576, - "DEX": 19577, - "▁INT": 19578, - "}^{-": 19579, - "▁wegen": 19580, - "mad": 19581, - "Angle": 19582, - "zing": 19583, - "▁Bayern": 19584, - "sal": 19585, - "äger": 19586, - "▁busy": 19587, - "▁stör": 19588, - "▁folk": 19589, - "▁prix": 19590, - "▁allocated": 19591, - "▁pt": 19592, - "affen": 19593, - "cluster": 19594, - "▁complement": 19595, - "árs": 19596, - "▁Amerika": 19597, - "рій": 19598, - "▁valley": 19599, - "▁rooms": 19600, - "▁moi": 19601, - ".\",": 19602, - ";;;;": 19603, - "▁lowest": 19604, - "nog": 19605, - "▁landet": 19606, - "▁programme": 19607, - "chio": 19608, - "▁Während": 19609, - "ández": 19610, - "▁долж": 19611, - "▁ouv": 19612, - "omány": 19613, - "▁Википедии": 19614, - "▁só": 19615, - "▁elektr": 19616, - "Desc": 19617, - "▁Beaut": 19618, - "нар": 19619, - "▁може": 19620, - "Pierre": 19621, - "esota": 19622, - "▁operated": 19623, - "▁forte": 19624, - "рис": 19625, - "▁opposition": 19626, - "alia": 19627, - "▁Syl": 19628, - "getName": 19629, - "вели": 19630, - "fik": 19631, - "▁comprom": 19632, - "▁TextView": 19633, - "Spring": 19634, - "metadata": 19635, - "engu": 19636, - "/,": 19637, - "▁carri": 19638, - "istol": 19639, - "▁diagonal": 19640, - "lista": 19641, - "izen": 19642, - "▁rende": 19643, - "gcc": 19644, - "beck": 19645, - "lius": 19646, - "iral": 19647, - "Resolver": 19648, - "▁percentage": 19649, - "▁attra": 19650, - "strings": 19651, - "wiąz": 19652, - "ods": 19653, - "волю": 19654, - "ęż": 19655, - "▁newspaper": 19656, - "imiter": 19657, - "ABC": 19658, - "▁Manchester": 19659, - "[{": 19660, - "Agent": 19661, - "▁Wor": 19662, - "▁Kath": 19663, - "▁пові": 19664, - "▁entonces": 19665, - "▁niveau": 19666, - "atted": 19667, - "learn": 19668, - "atiques": 19669, - "▁уби": 19670, - "▁quindi": 19671, - "binding": 19672, - "▁imported": 19673, - "▁Horn": 19674, - "emberg": 19675, - "complex": 19676, - "▁neural": 19677, - "information": 19678, - "▁recognition": 19679, - "ingt": 19680, - "▁inhabitants": 19681, - "vue": 19682, - "▁Bevölker": 19683, - "▁curves": 19684, - "▁leb": 19685, - "дій": 19686, - "▁sow": 19687, - "▁sentiment": 19688, - "PH": 19689, - "rache": 19690, - "▁-(": 19691, - "▁estable": 19692, - "▁Ferdinand": 19693, - "▁écrit": 19694, - "▁primeiro": 19695, - "▁tex": 19696, - "▁intermediate": 19697, - "verage": 19698, - "ibus": 19699, - "▁serves": 19700, - "ivas": 19701, - "▁bru": 19702, - "▁lum": 19703, - "attice": 19704, - "чный": 19705, - "▁Dres": 19706, - "▁videos": 19707, - "duration": 19708, - "▁abit": 19709, - "▁egg": 19710, - "ographical": 19711, - "alph": 19712, - "STATE": 19713, - "▁пара": 19714, - "reading": 19715, - "▁vehicle": 19716, - "▁fortune": 19717, - "ultats": 19718, - "▁Storia": 19719, - "midt": 19720, - "łącz": 19721, - "▁Memorial": 19722, - "▁vas": 19723, - "▁зан": 19724, - "▁utility": 19725, - "▁obsc": 19726, - "▁relacion": 19727, - "▁runat": 19728, - "Release": 19729, - "take": 19730, - "▁Oliver": 19731, - "▁Sid": 19732, - "ulos": 19733, - "▁Garc": 19734, - "▁розта": 19735, - "▁Sak": 19736, - "Py": 19737, - "führt": 19738, - "▁trabal": 19739, - "*{": 19740, - "▁zes": 19741, - "▁szere": 19742, - "▁varios": 19743, - "▁otra": 19744, - "▁eval": 19745, - "▁situé": 19746, - "▁wounded": 19747, - "▁Vincent": 19748, - "▁викори": 19749, - "▁encode": 19750, - "Modal": 19751, - "▁forb": 19752, - "▁dynamics": 19753, - "▁depos": 19754, - "arde": 19755, - "▁streets": 19756, - "▁Komm": 19757, - "=$(": 19758, - "▁повер": 19759, - "▁dois": 19760, - "▁vitt": 19761, - "▁automatisch": 19762, - "▁reload": 19763, - "▁Verwalt": 19764, - "bero": 19765, - "▁hub": 19766, - "▁mos": 19767, - "▁tutto": 19768, - "▁Frederick": 19769, - "łow": 19770, - "antages": 19771, - "aque": 19772, - "paper": 19773, - "▁einige": 19774, - "`),": 19775, - "dj": 19776, - "▁Ple": 19777, - "▁%,": 19778, - "▁Bitmap": 19779, - "▁friendly": 19780, - "▁truly": 19781, - "▁stroke": 19782, - "roph": 19783, - "▁engl": 19784, - "▁coff": 19785, - "▁dust": 19786, - "▁Jahres": 19787, - "ppi": 19788, - "▁wys": 19789, - "factor": 19790, - "schluss": 19791, - "▁деревня": 19792, - "▁Past": 19793, - "▁дома": 19794, - "COM": 19795, - "▁pueden": 19796, - "▁gift": 19797, - "▁Gla": 19798, - "▁triggered": 19799, - "ély": 19800, - "ülés": 19801, - "▁Oliv": 19802, - "▁verso": 19803, - "▁lle": 19804, - "▁Gli": 19805, - "▁Ltd": 19806, - "oa": 19807, - "▁territorio": 19808, - "ordre": 19809, - "▁deck": 19810, - "dra": 19811, - "aszt": 19812, - "▁concerning": 19813, - "▁Additionally": 19814, - "▁které": 19815, - "▁grund": 19816, - "▁Gest": 19817, - "▁misunder": 19818, - "pret": 19819, - "────": 19820, - "▁reputation": 19821, - "zia": 19822, - "▁успе": 19823, - "▁escaped": 19824, - "▁Prag": 19825, - "perform": 19826, - "▁austral": 19827, - "▁Vater": 19828, - "час": 19829, - "▁races": 19830, - "▁Byte": 19831, - "Mask": 19832, - "▁Territ": 19833, - "стю": 19834, - "▁Voci": 19835, - "▁Fichier": 19836, - "▁Населення": 19837, - "▁Unterscheidung": 19838, - "teenth": 19839, - "▁pilot": 19840, - "▁ji": 19841, - "▁двух": 19842, - "▁orientation": 19843, - "indre": 19844, - "▁Dort": 19845, - "ças": 19846, - "пли": 19847, - "▁reaction": 19848, - "▁consisting": 19849, - "▁ferro": 19850, - "тисти": 19851, - "yard": 19852, - "▁сві": 19853, - "▁interpretation": 19854, - "ią": 19855, - "rah": 19856, - "▁fand": 19857, - "Public": 19858, - "▁universe": 19859, - "▁retir": 19860, - "▁conscious": 19861, - "arqu": 19862, - "▁waste": 19863, - "▁Bib": 19864, - "yclerView": 19865, - "▁listening": 19866, - "gleich": 19867, - "niejs": 19868, - "▁correlation": 19869, - "▁receiver": 19870, - "▁уда": 19871, - "▁courage": 19872, - "uchs": 19873, - "fass": 19874, - "▁chunk": 19875, - "▁Anfang": 19876, - "▁großen": 19877, - "continue": 19878, - "▁Warszawa": 19879, - "hé": 19880, - "iy": 19881, - "ivement": 19882, - "▁α": 19883, - "▁exposed": 19884, - "▁zahl": 19885, - "▁sacr": 19886, - "▁Looks": 19887, - "▁eager": 19888, - "enten": 19889, - "Cursor": 19890, - "/_": 19891, - "ixa": 19892, - "рела": 19893, - "знача": 19894, - "▁фамилией": 19895, - "▁argent": 19896, - "▁Anders": 19897, - "œuvre": 19898, - "▁Isa": 19899, - "мента": 19900, - "▁advers": 19901, - "riction": 19902, - "GP": 19903, - "▁після": 19904, - "▁preserve": 19905, - "▁Garden": 19906, - "Rate": 19907, - "après": 19908, - "▁readable": 19909, - "indu": 19910, - "▁skill": 19911, - "▁helping": 19912, - "ographique": 19913, - "cling": 19914, - "ologist": 19915, - "▁Filter": 19916, - "▁finger": 19917, - "▁Vall": 19918, - "▁Polish": 19919, - "lg": 19920, - "▁Familien": 19921, - "▁waters": 19922, - "▁pseud": 19923, - "aza": 19924, - "_)": 19925, - "ARY": 19926, - "▁среди": 19927, - "▁Must": 19928, - "▁Bod": 19929, - "anon": 19930, - "▁lado": 19931, - "▁tight": 19932, - "imen": 19933, - "appen": 19934, - "frames": 19935, - "ingers": 19936, - "▁COVID": 19937, - "▁зі": 19938, - "▁све": 19939, - "▁ць": 19940, - "▁Left": 19941, - "]];": 19942, - "чь": 19943, - "фика": 19944, - "▁сло": 19945, - "▁пі": 19946, - "▁existe": 19947, - "▁Atlantic": 19948, - "▁maintained": 19949, - "▁irre": 19950, - "▁année": 19951, - "▁commented": 19952, - "веро": 19953, - "berta": 19954, - "▁Lad": 19955, - "▁Upon": 19956, - "▁pause": 19957, - "mill": 19958, - "opter": 19959, - "UK": 19960, - "рес": 19961, - "нциклопеди": 19962, - "▁alongside": 19963, - "▁robot": 19964, - "▁fert": 19965, - "▁moy": 19966, - "▁ade": 19967, - "Mapper": 19968, - ")->": 19969, - "igua": 19970, - "étique": 19971, - "тка": 19972, - "alias": 19973, - "▁ори": 19974, - "▁Magn": 19975, - "▁gehörte": 19976, - "imb": 19977, - ")}{\\": 19978, - "▁Wikipédia": 19979, - "▁urs": 19980, - "▁ende": 19981, - "leb": 19982, - "▁GC": 19983, - "Hol": 19984, - "ancing": 19985, - "Union": 19986, - "▁tenía": 19987, - "TT": 19988, - "▁estate": 19989, - "há": 19990, - "▁полі": 19991, - "ultan": 19992, - "▁Hockey": 19993, - "ulse": 19994, - "▁choices": 19995, - "scher": 19996, - "▁[],": 19997, - "▁potentially": 19998, - "▁Übers": 19999, - "▁admit": 20000, - "Comment": 20001, - "стя": 20002, - "▁Vien": 20003, - "▁ці": 20004, - "▁permut": 20005, - "cgi": 20006, - "▁crít": 20007, - "Console": 20008, - "ctic": 20009, - "▁okres": 20010, - "awk": 20011, - "football": 20012, - "ouest": 20013, - "CTYPE": 20014, - "ologique": 20015, - "▁constit": 20016, - "▁interests": 20017, - "▁Progress": 20018, - "▁Menu": 20019, - "▁také": 20020, - "▁Asian": 20021, - "▁защи": 20022, - "▁younger": 20023, - "▁wished": 20024, - "▁Sort": 20025, - "▁audience": 20026, - "amba": 20027, - "▁gehört": 20028, - "▁Kansas": 20029, - "yaume": 20030, - "▁Professional": 20031, - "âce": 20032, - "▁fatto": 20033, - "tod": 20034, - "▁datasets": 20035, - "▁fare": 20036, - "▁waves": 20037, - "~/": 20038, - "▁measurement": 20039, - "▁wol": 20040, - "indust": 20041, - "▁struggling": 20042, - "▁pulled": 20043, - "▁caratter": 20044, - "▁Externe": 20045, - "▁действи": 20046, - "cnt": 20047, - "liches": 20048, - "▁Possible": 20049, - "▁faced": 20050, - "▁hypothesis": 20051, - "▁kilom": 20052, - "▁när": 20053, - "boolean": 20054, - "PY": 20055, - "ampa": 20056, - "▁kiss": 20057, - "▁astero": 20058, - "▁negli": 20059, - "aments": 20060, - "▁Stu": 20061, - "ató": 20062, - "▁Constitution": 20063, - "▁interpol": 20064, - "▁Unable": 20065, - "▁pis": 20066, - "▁parc": 20067, - "\"])": 20068, - "pler": 20069, - "▁autory": 20070, - "▁algunos": 20071, - "ywna": 20072, - "}))": 20073, - "▁falls": 20074, - "▁équip": 20075, - "▁emit": 20076, - "▁profil": 20077, - "gets": 20078, - "фо": 20079, - "▁Military": 20080, - "▁nombreux": 20081, - "oct": 20082, - "Replace": 20083, - "▁seasons": 20084, - "▁château": 20085, - "▁typeof": 20086, - "polit": 20087, - "▁rand": 20088, - "▁quar": 20089, - "▁erstmals": 20090, - "сини": 20091, - "▁payload": 20092, - "По": 20093, - "кін": 20094, - "repo": 20095, - "▁Pav": 20096, - "Score": 20097, - "erves": 20098, - "▁sollte": 20099, - "▁між": 20100, - "ébec": 20101, - "▁clip": 20102, - "▁Nice": 20103, - "▁neben": 20104, - "▁assass": 20105, - "itories": 20106, - "▁unity": 20107, - "▁ен": 20108, - "▁Institut": 20109, - "▁internationale": 20110, - "▁наук": 20111, - "▁comand": 20112, - "▁kleine": 20113, - "▁adjacent": 20114, - "▁delivered": 20115, - "▁ше": 20116, - "зем": 20117, - "▁cot": 20118, - "visual": 20119, - "вает": 20120, - "▁Census": 20121, - "\\_": 20122, - "▁territory": 20123, - "чил": 20124, - "чные": 20125, - "flutter": 20126, - "DidLoad": 20127, - "Documents": 20128, - "▁dob": 20129, - "Bre": 20130, - "animate": 20131, - "▁biz": 20132, - "▁bata": 20133, - "▁SU": 20134, - "eso": 20135, - "▁priority": 20136, - "ván": 20137, - "iras": 20138, - "▁charged": 20139, - "▁Micro": 20140, - "atoire": 20141, - "чер": 20142, - "abad": 20143, - "uru": 20144, - "▁vš": 20145, - "dire": 20146, - "▁Twitter": 20147, - "▁мето": 20148, - ")..": 20149, - "▁Цент": 20150, - "▁entwick": 20151, - "▁Mind": 20152, - "▁функ": 20153, - "Future": 20154, - "lst": 20155, - "łoż": 20156, - "fli": 20157, - "tensor": 20158, - "▁topology": 20159, - "▁arte": 20160, - "ERT": 20161, - "▁variance": 20162, - "Images": 20163, - "▁(@": 20164, - "ArrayList": 20165, - "OC": 20166, - "▁Демо": 20167, - "aucoup": 20168, - "▁denotes": 20169, - "imon": 20170, - "њи": 20171, - "▁Przyp": 20172, - "▁Zag": 20173, - "▁дире": 20174, - "▁Similarly": 20175, - "бро": 20176, - "▁militaire": 20177, - "▁тому": 20178, - "▁Johnny": 20179, - "▁Мексику": 20180, - "ћа": 20181, - "Supp": 20182, - "▁junior": 20183, - "oltre": 20184, - "▁Моск": 20185, - "▁admitted": 20186, - "▁religios": 20187, - "зяй": 20188, - "его": 20189, - "▁tears": 20190, - "ingo": 20191, - "odu": 20192, - "iveness": 20193, - "▁logo": 20194, - "▁último": 20195, - "▁aliment": 20196, - "▁UITableView": 20197, - ")!": 20198, - "▁nj": 20199, - "lette": 20200, - "▁resident": 20201, - "▁termine": 20202, - "▁уже": 20203, - "▁Сте": 20204, - "office": 20205, - "▁carte": 20206, - "▁livre": 20207, - "▁Москов": 20208, - "▁elections": 20209, - "зиден": 20210, - "Trigger": 20211, - "▁Benjamin": 20212, - "addClass": 20213, - "ског": 20214, - "▁Observable": 20215, - "Cla": 20216, - "gemein": 20217, - "▁consent": 20218, - "ври": 20219, - "▁unfold": 20220, - "▁governor": 20221, - "нал": 20222, - "▁toda": 20223, - "Remote": 20224, - "arias": 20225, - "▁instal": 20226, - "fixed": 20227, - "▁decay": 20228, - "▁дерев": 20229, - "xyz": 20230, - "▁DATE": 20231, - "imar": 20232, - "ntil": 20233, - "▁startup": 20234, - "alion": 20235, - "▁kolej": 20236, - "cios": 20237, - "▁ranges": 20238, - "▁stupid": 20239, - "▁implementations": 20240, - "▁rm": 20241, - "ének": 20242, - "▁gcc": 20243, - "▁scène": 20244, - "Navigation": 20245, - "▁ ": 20246, - "▁кан": 20247, - "▁towns": 20248, - "Username": 20249, - "▁фе": 20250, - "▁leaders": 20251, - "oit": 20252, - "wär": 20253, - "▁dummy": 20254, - "▁assistant": 20255, - "{$\\": 20256, - "бір": 20257, - "▁roy": 20258, - "▁Layout": 20259, - "▁Jung": 20260, - "Lines": 20261, - "▁Holland": 20262, - "пор": 20263, - "▁Гри": 20264, - "▁Bened": 20265, - "▁Под": 20266, - "xls": 20267, - "▁Gol": 20268, - "▁Aleks": 20269, - "▁ejemplo": 20270, - "▁sezon": 20271, - "arding": 20272, - "footnote": 20273, - "▁Congrès": 20274, - "refer": 20275, - "ската": 20276, - "Iterator": 20277, - "▁ourselves": 20278, - "▁Mic": 20279, - "▁código": 20280, - "▁площа": 20281, - "▁\\$": 20282, - "▁Charlie": 20283, - "Nodes": 20284, - "▁puzz": 20285, - "▁Identifier": 20286, - "▁flutter": 20287, - "▁prü": 20288, - "▁ort": 20289, - "▁Cort": 20290, - "asticsearch": 20291, - "▁Свя": 20292, - "▁Bull": 20293, - "udem": 20294, - "▁apparent": 20295, - ":--": 20296, - "▁Хар": 20297, - "▁Lap": 20298, - "▁comport": 20299, - "matically": 20300, - "▁curios": 20301, - "▁может": 20302, - "▁Bh": 20303, - "apping": 20304, - "▁basketball": 20305, - "zetek": 20306, - "▁runt": 20307, - "▁Milan": 20308, - "fection": 20309, - "ría": 20310, - "▁Kin": 20311, - "▁slower": 20312, - "both": 20313, - "▁Instituto": 20314, - "▁Historical": 20315, - "▁również": 20316, - "matches": 20317, - "yci": 20318, - "▁espèce": 20319, - "▁Schweizer": 20320, - "NT": 20321, - "SF": 20322, - "acia": 20323, - "forge": 20324, - "Points": 20325, - "numbers": 20326, - "▁falling": 20327, - "▁inheritance": 20328, - "▁Erst": 20329, - "▁customers": 20330, - "▁actu": 20331, - "▁migration": 20332, - "\\'": 20333, - "Plan": 20334, - "Mr": 20335, - "othy": 20336, - "▁upgrad": 20337, - "бира": 20338, - "▁Offic": 20339, - "▁Wait": 20340, - "▁toler": 20341, - "ardon": 20342, - "▁slide": 20343, - ")_": 20344, - "▁став": 20345, - "▁nuclear": 20346, - "▁Bil": 20347, - "owner": 20348, - "▁Harris": 20349, - "Information": 20350, - "▁pó": 20351, - "▁включа": 20352, - "▁nuovo": 20353, - "▁Cav": 20354, - "▁Descri": 20355, - "▁ак": 20356, - "ództ": 20357, - "▁reactjs": 20358, - "▁Adams": 20359, - "▁Alternatively": 20360, - "струк": 20361, - ")`,": 20362, - "substring": 20363, - "▁massive": 20364, - "▁heavily": 20365, - "▁сезо": 20366, - "▁Ana": 20367, - "▁vale": 20368, - "Pad": 20369, - "▁Either": 20370, - "▁rs": 20371, - "anche": 20372, - "▁uploaded": 20373, - "▁(/": 20374, - "▁спор": 20375, - "▁reduction": 20376, - "▁Tokyo": 20377, - "gren": 20378, - "▁migli": 20379, - "▁iterator": 20380, - "stav": 20381, - "▁supporting": 20382, - "▁österreich": 20383, - "▁NSLog": 20384, - "istiques": 20385, - "rimin": 20386, - "MODE": 20387, - "}}}\\": 20388, - "▁explos": 20389, - "оте": 20390, - "▁(„": 20391, - "Sal": 20392, - "▁simplest": 20393, - "▁già": 20394, - "▁тан": 20395, - "▁cyl": 20396, - "bir": 20397, - "▁measurements": 20398, - "Created": 20399, - "erek": 20400, - "lookup": 20401, - "wirtschaft": 20402, - "▁Воло": 20403, - "timer": 20404, - "derr": 20405, - "▁стала": 20406, - "▁scenes": 20407, - "▁persu": 20408, - "liest": 20409, - "▁schedule": 20410, - "tal": 20411, - "лено": 20412, - "▁painting": 20413, - "▁improvement": 20414, - "software": 20415, - "▁governo": 20416, - "▁Hir": 20417, - "Execution": 20418, - "▁Okay": 20419, - "Prop": 20420, - "loster": 20421, - "ніципалі": 20422, - "▁peuvent": 20423, - "olu": 20424, - "▁Фа": 20425, - "rollo": 20426, - "▁коло": 20427, - "▁carrière": 20428, - "▁toggle": 20429, - "▁($\\": 20430, - "▁aggregate": 20431, - "▁Бі": 20432, - "textarea": 20433, - "Ok": 20434, - "itto": 20435, - "▁stim": 20436, - "▁recursion": 20437, - "▁Federation": 20438, - ")_{": 20439, - "ategor": 20440, - "▁distribu": 20441, - "Cloud": 20442, - "▁madre": 20443, - "▁iv": 20444, - "▁Lieutenant": 20445, - "▁substant": 20446, - "▁leaf": 20447, - "▁Kontrola": 20448, - "VA": 20449, - "▁tomb": 20450, - "эн": 20451, - "atoes": 20452, - "▁godine": 20453, - "▁#>": 20454, - "Cert": 20455, - "▁empresa": 20456, - "Props": 20457, - "▁planned": 20458, - "▁randomly": 20459, - "jähr": 20460, - "elem": 20461, - "▁Operation": 20462, - "*`": 20463, - "protocol": 20464, - "()));": 20465, - "wel": 20466, - "▁praw": 20467, - "▁сим": 20468, - "▁wob": 20469, - "▁hace": 20470, - "▁nearest": 20471, - "disable": 20472, - "▁Commun": 20473, - "▁revel": 20474, - "Free": 20475, - "▁brackets": 20476, - "IOException": 20477, - "▁alto": 20478, - "▁marry": 20479, - "▁auc": 20480, - "),\\": 20481, - "▁typo": 20482, - "edad": 20483, - "ará": 20484, - "icator": 20485, - "tatywna": 20486, - "▁buff": 20487, - "orders": 20488, - "▁asynchronous": 20489, - "▁econ": 20490, - "▁feu": 20491, - "▁Iron": 20492, - "▁rising": 20493, - "Radius": 20494, - "clk": 20495, - "▁zweiten": 20496, - "`'": 20497, - "▁uniqu": 20498, - "▁FM": 20499, - "▁Bran": 20500, - "▁flu": 20501, - "▁sensitive": 20502, - "urre": 20503, - "▁Iter": 20504, - "▁Sein": 20505, - "▁diferentes": 20506, - "▁него": 20507, - "chia": 20508, - "▁Anleitung": 20509, - "aturday": 20510, - "▁shorter": 20511, - "▁translated": 20512, - "▁Rés": 20513, - "▁rode": 20514, - "drag": 20515, - "▁lange": 20516, - "Bi": 20517, - "üb": 20518, - "leur": 20519, - "▁ordering": 20520, - "alous": 20521, - "▁Кор": 20522, - "archar": 20523, - "destroy": 20524, - "ervation": 20525, - "]],": 20526, - "AccessorImpl": 20527, - "▁autorytatywna": 20528, - "Sequence": 20529, - "▁proyect": 20530, - "▁bran": 20531, - "▁(+": 20532, - "▁Kab": 20533, - "▁zem": 20534, - "▁Calcul": 20535, - "▁seul": 20536, - "▁Niger": 20537, - "▁chiam": 20538, - "throw": 20539, - "▁Planet": 20540, - "bildung": 20541, - "▁zones": 20542, - "transition": 20543, - "лений": 20544, - "▁mapped": 20545, - "onaut": 20546, - "Pair": 20547, - "ilian": 20548, - "▁Morgan": 20549, - "▁unto": 20550, - "jou": 20551, - "▁hid": 20552, - "▁Meta": 20553, - "▁elles": 20554, - "Lou": 20555, - "rama": 20556, - "geordnet": 20557, - "▁scarcely": 20558, - "▁mint": 20559, - "Focus": 20560, - "▁Alter": 20561, - "▁dio": 20562, - "▁ampl": 20563, - "ièrement": 20564, - "▁исследова": 20565, - "LED": 20566, - "algorithm": 20567, - "▁сайті": 20568, - "▁\"\")": 20569, - "History": 20570, - "pk": 20571, - "▁Whit": 20572, - "▁систем": 20573, - "▁Kirchen": 20574, - "rà": 20575, - "APP": 20576, - "▁<%": 20577, - "antine": 20578, - "▁Disk": 20579, - "conv": 20580, - "welt": 20581, - "▁Fut": 20582, - "▁Nom": 20583, - "ordo": 20584, - "ellij": 20585, - "▁receives": 20586, - "cow": 20587, - "ytu": 20588, - "▁obras": 20589, - "▁purchase": 20590, - "▁earned": 20591, - "▁accessed": 20592, - "axi": 20593, - "▁Mans": 20594, - "ivan": 20595, - "▁tuvo": 20596, - "▁Trace": 20597, - "rimonio": 20598, - "▁desenvol": 20599, - "érique": 20600, - "▁resulted": 20601, - "▁computing": 20602, - "▁inspired": 20603, - "▁Prize": 20604, - "*\"": 20605, - "Comput": 20606, - "▁extensive": 20607, - "èg": 20608, - "▁Portály": 20609, - "▁castle": 20610, - "▁*.": 20611, - "▁photos": 20612, - "▁voet": 20613, - "ONG": 20614, - "▁Alle": 20615, - "▁threaten": 20616, - "stüt": 20617, - "▁albums": 20618, - "▁dense": 20619, - "flat": 20620, - "continu": 20621, - "Subject": 20622, - "▁readonly": 20623, - "Opt": 20624, - "писко": 20625, - "▁Aber": 20626, - "▁Position": 20627, - "▁Today": 20628, - "▁mini": 20629, - "▁Bef": 20630, - "listen": 20631, - "ственного": 20632, - "SUB": 20633, - "ossa": 20634, - "▁Pope": 20635, - "▁Jimmy": 20636, - "▁Дру": 20637, - "ungsseite": 20638, - "▁tren": 20639, - "optim": 20640, - "itsch": 20641, - "▁samt": 20642, - "▁испол": 20643, - "&=": 20644, - "▁Przypisy": 20645, - "▁продол": 20646, - "Cr": 20647, - "ermann": 20648, - "▁матери": 20649, - "▁Hugo": 20650, - "▁Deze": 20651, - "TRUE": 20652, - "▁defeat": 20653, - "▁watched": 20654, - "▁Gent": 20655, - "AUT": 20656, - "orous": 20657, - "▁опреде": 20658, - "orientation": 20659, - "▁distinguished": 20660, - "▁mesmo": 20661, - "▁sli": 20662, - "мена": 20663, - "mittel": 20664, - "gericht": 20665, - "eton": 20666, - "->{": 20667, - "▁wont": 20668, - "▁weg": 20669, - "▁classific": 20670, - "ilus": 20671, - "▁MD": 20672, - "tasks": 20673, - "▁chim": 20674, - "await": 20675, - "▁gang": 20676, - "▁wię": 20677, - "through": 20678, - "▁Russell": 20679, - "▁guessing": 20680, - "▁акт": 20681, - "блі": 20682, - "categories": 20683, - "сут": 20684, - "▁Fen": 20685, - "▁муж": 20686, - "▁newer": 20687, - "▁Async": 20688, - "▁terme": 20689, - ">/": 20690, - "пара": 20691, - "▁Trust": 20692, - "▁Opt": 20693, - "▁dah": 20694, - "▁wonderful": 20695, - "adratkil": 20696, - "▁Гра": 20697, - "mapping": 20698, - "▁discovery": 20699, - "▁BE": 20700, - "Enable": 20701, - "▁Friend": 20702, - "сня": 20703, - "▁controlled": 20704, - "чної": 20705, - "▁contributions": 20706, - "jší": 20707, - "▁Lev": 20708, - "▁francés": 20709, - "▁mic": 20710, - "zik": 20711, - "▁alem": 20712, - "cancel": 20713, - "!'": 20714, - "▁grat": 20715, - "▁Begriffsklär": 20716, - "Camera": 20717, - "ificación": 20718, - "ród": 20719, - "▁Arnold": 20720, - "▁bezeichneter": 20721, - "▁fought": 20722, - "▁deput": 20723, - "▁Drop": 20724, - "tax": 20725, - "dg": 20726, - "▁Hop": 20727, - "GN": 20728, - "▁Kirch": 20729, - "▁Бар": 20730, - "Invoke": 20731, - "▁erhalten": 20732, - "▁veel": 20733, - "▁wordpress": 20734, - "▁INNER": 20735, - "transaction": 20736, - "▁déjà": 20737, - "Fact": 20738, - "▁надмор": 20739, - "▁angularjs": 20740, - "▁át": 20741, - "▁alap": 20742, - "▁Price": 20743, - "▁effet": 20744, - "▁sphere": 20745, - "ClassLoader": 20746, - "▁rugby": 20747, - "▁kingdom": 20748, - "▁Mut": 20749, - "▁кино": 20750, - "▁reward": 20751, - "cit": 20752, - "▁presente": 20753, - "Sto": 20754, - "Character": 20755, - "logs": 20756, - "▁centrale": 20757, - "▁mouv": 20758, - "▁okay": 20759, - "▁aplic": 20760, - "More": 20761, - "ények": 20762, - "▁Köln": 20763, - "nett": 20764, - "▁истории": 20765, - "▁describing": 20766, - "▁soldier": 20767, - "▁Need": 20768, - "Light": 20769, - "▁\"\\<": 20770, - "▁hav": 20771, - "ermo": 20772, - "▁inferior": 20773, - "lea": 20774, - "▁gg": 20775, - "▁конце": 20776, - "fragment": 20777, - "sb": 20778, - "Country": 20779, - "▁vě": 20780, - "▁Beng": 20781, - "▁Это": 20782, - "▁водо": 20783, - "мар": 20784, - "STRING": 20785, - "▁új": 20786, - "multiple": 20787, - "statement": 20788, - "▁involves": 20789, - "▁tecn": 20790, - "Student": 20791, - "gré": 20792, - "▁lean": 20793, - "▁bringing": 20794, - "▁Medical": 20795, - "▁програм": 20796, - "▁Vog": 20797, - "▁жов": 20798, - "▁Spirit": 20799, - "nth": 20800, - "▁standards": 20801, - "▁Profile": 20802, - "▁ez": 20803, - "▁территории": 20804, - "▁stem": 20805, - "uil": 20806, - "▁Og": 20807, - "Btn": 20808, - "nal": 20809, - "▁nearby": 20810, - "▁producing": 20811, - "criv": 20812, - "▁assumptions": 20813, - "▁Spark": 20814, - "▁Lot": 20815, - "itudes": 20816, - "afka": 20817, - "five": 20818, - "atio": 20819, - "▁distinguish": 20820, - "rock": 20821, - "église": 20822, - "▁rappres": 20823, - ">\\<": 20824, - "лій": 20825, - "▁мини": 20826, - "▁intitulé": 20827, - "}}(\\": 20828, - "▁Rout": 20829, - "▁Border": 20830, - "▁overrid": 20831, - "HOST": 20832, - "ritten": 20833, - "say": 20834, - "▁Чи": 20835, - "ichtung": 20836, - "▁straightforward": 20837, - "obb": 20838, - "▁Terra": 20839, - "▁[:": 20840, - "Ben": 20841, - "▁composite": 20842, - ")+\\": 20843, - "▁crown": 20844, - "direction": 20845, - "▁несколько": 20846, - "▁avail": 20847, - "▁purchased": 20848, - "hook": 20849, - "eties": 20850, - "▁fase": 20851, - "▁Rum": 20852, - "▁genom": 20853, - "▁dét": 20854, - "ową": 20855, - "mpeg": 20856, - "▁Ін": 20857, - "desktop": 20858, - "▁injection": 20859, - "agle": 20860, - "▁Edd": 20861, - "_{(": 20862, - "▁Hem": 20863, - "utos": 20864, - "proj": 20865, - "▁superficie": 20866, - "Plot": 20867, - "▁Docker": 20868, - "ätz": 20869, - "kreich": 20870, - "▁unclear": 20871, - "▁Unity": 20872, - "▁streams": 20873, - "вид": 20874, - "▁simplified": 20875, - "Fill": 20876, - "▁sant": 20877, - "▁Kommun": 20878, - "▁duc": 20879, - "▁две": 20880, - "▁obs": 20881, - "žit": 20882, - "▁Janeiro": 20883, - "бя": 20884, - "▁presso": 20885, - "▁Ministry": 20886, - "▁burst": 20887, - "▁reaching": 20888, - "liter": 20889, - "▁responses": 20890, - "▁Eug": 20891, - "▁sod": 20892, - "▁Cord": 20893, - "▁Perm": 20894, - "parts": 20895, - "цима": 20896, - "variables": 20897, - "▁forgotten": 20898, - "Fern": 20899, - "ostęp": 20900, - "vl": 20901, - "▁См": 20902, - "kim": 20903, - "ając": 20904, - "наль": 20905, - "гле": 20906, - "helper": 20907, - "dup": 20908, - "euw": 20909, - "fra": 20910, - "ellite": 20911, - "anya": 20912, - "▁reign": 20913, - "gesamt": 20914, - "седа": 20915, - "▁Ryan": 20916, - "▁formatted": 20917, - "▁Borg": 20918, - "walk": 20919, - "▁ал": 20920, - "agnostics": 20921, - "▁Cape": 20922, - "▁Franco": 20923, - "▁fug": 20924, - ":)": 20925, - "юз": 20926, - "Fetch": 20927, - "▁roughly": 20928, - "▁Mis": 20929, - "uetooth": 20930, - "▁Venezuela": 20931, - "▁astronom": 20932, - "\")`": 20933, - "ombres": 20934, - "▁которой": 20935, - "óp": 20936, - "owed": 20937, - "HR": 20938, - "▁Camer": 20939, - "кие": 20940, - "parison": 20941, - "▁Bij": 20942, - "templates": 20943, - "environment": 20944, - "ização": 20945, - "▁ér": 20946, - "▁plenty": 20947, - "▁TypeError": 20948, - "▁forty": 20949, - "коном": 20950, - "▁Sed": 20951, - "▁thats": 20952, - "▁gravity": 20953, - "▁spiritual": 20954, - "▁duplicates": 20955, - "▁encryption": 20956, - "▁reven": 20957, - "getInstance": 20958, - "ällor": 20959, - "disk": 20960, - "▁thro": 20961, - "▁Nak": 20962, - "▁poł": 20963, - "▁heraus": 20964, - "invalid": 20965, - "sBy": 20966, - "Boot": 20967, - "▁bucket": 20968, - "▁Parse": 20969, - "hex": 20970, - "Conne": 20971, - "▁Computer": 20972, - "zyk": 20973, - "▁induced": 20974, - "▁Bruno": 20975, - "▁addressed": 20976, - "mania": 20977, - "▁inclus": 20978, - "ounced": 20979, - "scriptsize": 20980, - "▁Epis": 20981, - "▁vocal": 20982, - "▁Jonathan": 20983, - "ум": 20984, - "staden": 20985, - "▁Children": 20986, - "пей": 20987, - "Italia": 20988, - "reibung": 20989, - "▁nost": 20990, - "▁ещё": 20991, - "▁Werke": 20992, - "▁actress": 20993, - "▁Minnesota": 20994, - "rike": 20995, - "▁tek": 20996, - "▁primeira": 20997, - "▁frat": 20998, - "▁Configuration": 20999, - "▁bid": 21000, - "trigger": 21001, - "Contents": 21002, - "▁constantly": 21003, - "!!!": 21004, - "▁dread": 21005, - "▁hundreds": 21006, - "istische": 21007, - "▁cardinal": 21008, - "TABLE": 21009, - "▁estos": 21010, - "assoc": 21011, - "gray": 21012, - "▁Schloss": 21013, - "▁sche": 21014, - "cong": 21015, - "▁koji": 21016, - "ètes": 21017, - "▁Era": 21018, - "omi": 21019, - "▁SR": 21020, - "▁wrapped": 21021, - "▁trunc": 21022, - "▁ah": 21023, - "egos": 21024, - "oki": 21025, - "mouth": 21026, - "logging": 21027, - "▁fasc": 21028, - "▁Sample": 21029, - "▁conte": 21030, - "▁villa": 21031, - "comments": 21032, - "▁batal": 21033, - "▁García": 21034, - "▁Norte": 21035, - "▁wechsel": 21036, - "▁Museo": 21037, - "▁enfants": 21038, - "▁whisper": 21039, - "nake": 21040, - "▁jednak": 21041, - "lês": 21042, - "enders": 21043, - "▁äl": 21044, - "▁VB": 21045, - "▁cookies": 21046, - "zeti": 21047, - "atum": 21048, - "▁dedu": 21049, - "▁arranged": 21050, - "laz": 21051, - "▁cuenta": 21052, - "yml": 21053, - "▁flav": 21054, - "MR": 21055, - "emet": 21056, - "біль": 21057, - "cmp": 21058, - "ituto": 21059, - "zett": 21060, - "▁envi": 21061, - "▁kot": 21062, - "$:": 21063, - "upper": 21064, - "▁Alberto": 21065, - "kb": 21066, - "Anal": 21067, - "ört": 21068, - "▁[-": 21069, - "▁führte": 21070, - "iah": 21071, - "▁Tun": 21072, - "▁искус": 21073, - "uwe": 21074, - "ispecies": 21075, - "Pub": 21076, - "Sync": 21077, - "▁Colombia": 21078, - "akers": 21079, - "▁Imperial": 21080, - "oving": 21081, - "▁intelligence": 21082, - "▁equipment": 21083, - "ein": 21084, - "dagger": 21085, - "▁Edge": 21086, - "▁Республи": 21087, - "adratkilometer": 21088, - "▁Anto": 21089, - "▁charges": 21090, - "▁Ocean": 21091, - "▁simplify": 21092, - "▁miesz": 21093, - "running": 21094, - "▁Lac": 21095, - "genommen": 21096, - "▁representative": 21097, - "=.": 21098, - "▁Pred": 21099, - "▁spite": 21100, - "ciale": 21101, - "▁nave": 21102, - "▁extens": 21103, - "▁neutral": 21104, - "▁которая": 21105, - ".::": 21347, - "шёл": 21348, - "▁principales": 21349, - "▁цар": 21350, - "▁tied": 21351, - "▁alta": 21352, - "▁Cit": 21353, - "lined": 21354, - "major": 21355, - "▁punk": 21356, - "▁cinco": 21357, - "ický": 21358, - "▁raggi": 21359, - "typen": 21360, - "тельство": 21361, - "▁conference": 21362, - "▁сіль": 21363, - "▁heut": 21364, - "iš": 21365, - "ета": 21366, - "velope": 21367, - "hbox": 21368, - "nown": 21369, - "▁zar": 21370, - "ktiv": 21371, - "ieß": 21372, - "▁стре": 21373, - "▁EventArgs": 21374, - "▁Ira": 21375, - "▁VBA": 21376, - "▁Santo": 21377, - "▁Fach": 21378, - "▁FF": 21379, - "▁Raymond": 21380, - "мец": 21381, - "implementation": 21382, - "▁brothers": 21383, - "▁côté": 21384, - "▁controllers": 21385, - "▁Cle": 21386, - "▁cable": 21387, - "▁confer": 21388, - "▁{-": 21389, - "▁czł": 21390, - "▁Filip": 21391, - "atorio": 21392, - "▁wicht": 21393, - "▁beaucoup": 21394, - "▁Lit": 21395, - "▁sessions": 21396, - "▁Success": 21397, - "▁routing": 21398, - "niu": 21399, - "▁Vice": 21400, - "▁krit": 21401, - "updated": 21402, - "▁Invalid": 21403, - "▁Mannschaft": 21404, - "▁aos": 21405, - "▁tudi": 21406, - "▁després": 21407, - "qua": 21408, - "Contains": 21409, - "Company": 21410, - "▁persona": 21411, - "adapter": 21412, - "сни": 21413, - "▁voj": 21414, - "▁escri": 21415, - "agt": 21416, - "▁ство": 21417, - "▁distrito": 21418, - "apan": 21419, - "▁aspects": 21420, - "▁zal": 21421, - ")^{\\": 21422, - "▁système": 21423, - "▁ана": 21424, - "iums": 21425, - "▁premiers": 21426, - "▁поэ": 21427, - "▁mère": 21428, - "▁Gun": 21429, - "aping": 21430, - "▁Rain": 21431, - "▁igual": 21432, - "▁processor": 21433, - "')`": 21434, - "bling": 21435, - "▁mism": 21436, - "bráz": 21437, - "▁closest": 21438, - "▁Reading": 21439, - "▁попу": 21440, - "cono": 21441, - "▁kult": 21442, - "▁!!": 21443, - "▁Expression": 21444, - "▁induction": 21445, - "ahren": 21446, - "▁cp": 21447, - "▁violence": 21448, - "ientí": 21449, - "cente": 21450, - "▁Dob": 21451, - "jack": 21452, - "song": 21453, - "bucket": 21454, - "▁deport": 21455, - "кими": 21456, - "lm": 21457, - "▁innoc": 21458, - "Changes": 21459, - "▁prohib": 21460, - "angol": 21461, - "iseconds": 21462, - "▁пор": 21463, - "▁hip": 21464, - "▁pů": 21465, - "endorf": 21466, - "▁scheduled": 21467, - "▁Flug": 21468, - "acyj": 21469, - "▁Films": 21470, - "athedral": 21471, - "Power": 21472, - "ardin": 21473, - "kap": 21474, - "icken": 21475, - "resize": 21476, - "eus": 21477, - "rr": 21478, - "лян": 21479, - "▁Hav": 21480, - "▁ora": 21481, - "FROM": 21482, - "лося": 21483, - "▁terug": 21484, - "▁Width": 21485, - "▁accepts": 21486, - "бен": 21487, - "▁mich": 21488, - "▁Czech": 21489, - "▁Bedeut": 21490, - "▁вид": 21491, - "ôme": 21492, - "▁Loop": 21493, - "spect": 21494, - "ük": 21495, - "eston": 21496, - "▁slot": 21497, - "▁została": 21498, - "▁Charlotte": 21499, - "▁составляет": 21500, - "▁Promise": 21501, - "▁epo": 21502, - "▁diction": 21503, - "▁Franklin": 21504, - "▁Riv": 21505, - "руг": 21506, - "cida": 21507, - "▁Explorer": 21508, - "cookie": 21509, - "▁formerly": 21510, - "▁municipality": 21511, - "▁Stefan": 21512, - "lists": 21513, - "COMP": 21514, - "Len": 21515, - "▁Staat": 21516, - "▁NBA": 21517, - "dens": 21518, - "▁oscill": 21519, - "!.": 21520, - "▁PO": 21521, - "ône": 21522, - "eses": 21523, - "▁националь": 21524, - "voor": 21525, - "▁копи": 21526, - "▁пози": 21527, - "ulu": 21528, - "Constraint": 21529, - "▁своей": 21530, - "▁algebraic": 21531, - "чня": 21532, - "Dict": 21533, - "▁appearing": 21534, - "▁prav": 21535, - "▁Universal": 21536, - "Browser": 21537, - "▁Singap": 21538, - "ennessee": 21539, - "]_": 21540, - "▁Sof": 21541, - "▁Cad": 21542, - "ounce": 21543, - "▁costs": 21544, - "]{\\": 21545, - "../../": 21546, - "ській": 21547, - "ühl": 21548, - "iety": 21549, - "пр": 21550, - "▁interpreted": 21551, - "ajn": 21552, - "colog": 21553, - "YS": 21554, - "mans": 21555, - "▁metrics": 21556, - "▁registr": 21557, - "istance": 21558, - "▁Поль": 21559, - "▁anonymous": 21560, - "▁institutions": 21561, - "▁zdob": 21562, - "prüng": 21563, - "▁арти": 21564, - "▁estat": 21565, - "acci": 21566, - "▁academic": 21567, - "▁chiesa": 21568, - "▁Gian": 21569, - "contrib": 21570, - "umed": 21571, - "▁Gir": 21572, - "▁baseball": 21573, - "numeric": 21574, - "Generator": 21575, - "GM": 21576, - "▁tiny": 21577, - "▁distinction": 21578, - "гер": 21579, - "▁rust": 21580, - "▁FIFA": 21581, - "▁Properties": 21582, - "^-": 21583, - "▁экс": 21584, - "▁Stanis": 21585, - "▁Ajax": 21586, - "escape": 21587, - "▁consp": 21588, - "▁Chen": 21589, - "▁Naval": 21590, - "Bit": 21591, - "▁bât": 21592, - "скими": 21593, - "drive": 21594, - "▁Round": 21595, - "photo": 21596, - "▁Level": 21597, - "▁geg": 21598, - "Tom": 21599, - "▁Mobile": 21600, - "▁Trop": 21601, - "Direction": 21602, - "isan": 21603, - ")^{-": 21604, - "▁Setting": 21605, - "▁Probably": 21606, - "лья": 21607, - "▁assets": 21608, - "▁atte": 21609, - "▁bulk": 21610, - "ést": 21611, - "▁wing": 21612, - "nius": 21613, - "▁wins": 21614, - "▁lud": 21615, - "ushing": 21616, - "▁deven": 21617, - "ограф": 21618, - "burger": 21619, - "▁embar": 21620, - "FilterChain": 21621, - "▁tum": 21622, - "▁öss": 21623, - "▁nommé": 21624, - "▁pir": 21625, - "▁luc": 21626, - "dbo": 21627, - "agues": 21628, - "▁alcan": 21629, - "ouwen": 21630, - "▁Stanley": 21631, - "циали": 21632, - "▁grown": 21633, - "▁preserved": 21634, - "▁solar": 21635, - "▁Население": 21636, - "▁performances": 21637, - "▁Cow": 21638, - "▁engineering": 21639, - "▁scaling": 21640, - "atomic": 21641, - "endance": 21642, - "▁ace": 21643, - "ängen": 21644, - "Anim": 21645, - "phase": 21646, - "zburg": 21647, - "Old": 21648, - "▁servant": 21649, - "▁gemeins": 21650, - "▁Observ": 21651, - "translate": 21652, - "▁covering": 21653, - "▁están": 21654, - "▁problema": 21655, - "▁установ": 21656, - "▁llev": 21657, - "▁czerw": 21658, - "éal": 21659, - "mez": 21660, - "REE": 21661, - "ERR": 21662, - "тури": 21663, - "segu": 21664, - "▁profit": 21665, - "▁multiplication": 21666, - "kommen": 21667, - "▁faut": 21668, - "▁candidates": 21669, - "▁Uri": 21670, - "▁Laura": 21671, - "▁sap": 21672, - "▁висини": 21673, - "▁Between": 21674, - "fade": 21675, - "▁reserved": 21676, - "▁involving": 21677, - "▁Mare": 21678, - "▁Container": 21679, - "▁назна": 21680, - "▁DEBUG": 21681, - "▁hurt": 21682, - "▁Polski": 21683, - "▁lux": 21684, - "CB": 21685, - "wach": 21686, - "▁период": 21687, - "▁Catherine": 21688, - "▁ganz": 21689, - "uchte": 21690, - "▁consumer": 21691, - "▁crossed": 21692, - "ordered": 21693, - "away": 21694, - "techn": 21695, - "▁subscri": 21696, - "▁shortcut": 21697, - "▁производ": 21698, - "▁simultaneously": 21699, - "▁rating": 21700, - "▁Kings": 21701, - "▁relationships": 21702, - "▁Sex": 21703, - "▁Tool": 21704, - "agh": 21705, - "acters": 21706, - "logger": 21707, - "homme": 21708, - "engers": 21709, - "▁Ri": 21710, - "earance": 21711, - "▁appearances": 21712, - "Real": 21713, - "▁passe": 21714, - "iclopedia": 21715, - "чко": 21716, - "terre": 21717, - "▁Ontario": 21718, - "▁переда": 21719, - "footer": 21720, - "archivi": 21721, - "ifiz": 21722, - "▁Protest": 21723, - "▁LIN": 21724, - "unnable": 21725, - "▁centuries": 21726, - "▁Bayer": 21727, - "цію": 21728, - "овин": 21729, - "▁Andrea": 21730, - "selection": 21731, - "▁calm": 21732, - "▁modification": 21733, - "▁shortly": 21734, - "inaire": 21735, - "▁fusion": 21736, - "▁feelings": 21737, - "PK": 21738, - "▁Roberto": 21739, - "гне": 21740, - "Shared": 21741, - "▁mehrere": 21742, - "▁Niem": 21743, - "omp": 21744, - "Env": 21745, - "▁Article": 21746, - "▁Pok": 21747, - "▁VARCHAR": 21748, - "▁dil": 21749, - "▁afford": 21750, - "▁confront": 21751, - "owanie": 21752, - "▁ministre": 21753, - "adesh": 21754, - "▁Poly": 21755, - "▁Распо": 21756, - "▁Gruppe": 21757, - "▁Helen": 21758, - "▁cc": 21759, - "▁portrait": 21760, - "bew": 21761, - "▁beta": 21762, - "▁Wir": 21763, - "▁Audio": 21764, - "▁(\\<": 21765, - "riority": 21766, - "▁nit": 21767, - "▁представи": 21768, - "▁Vie": 21769, - "▁wür": 21770, - "▁Hold": 21771, - "▁Sad": 21772, - "▁Tochter": 21773, - "▁oltre": 21774, - "▁Activ": 21775, - "▁Jason": 21776, - "▁wieku": 21777, - "▁regards": 21778, - "▁taste": 21779, - "agnostic": 21780, - "лася": 21781, - "▁Self": 21782, - "▁apr": 21783, - "▁Deep": 21784, - "scop": 21785, - "Activ": 21786, - "▁typedef": 21787, - "ContentView": 21788, - "compiler": 21789, - "▁Roth": 21790, - "xc": 21791, - "зик": 21792, - "▁largo": 21793, - "▁Rena": 21794, - "heiten": 21795, - "▁platforms": 21796, - "ulla": 21797, - "▁glance": 21798, - "▁mascul": 21799, - "▁mex": 21800, - "▁Jorge": 21801, - "▁funcion": 21802, - "choose": 21803, - "▁reviews": 21804, - "▁Alban": 21805, - "▁Glo": 21806, - "▁Species": 21807, - "▁Fame": 21808, - "▁Roll": 21809, - "▁Puerto": 21810, - "▁\\)": 21811, - "ymnas": 21812, - "environ": 21813, - "▁iphone": 21814, - "▁Wrestling": 21815, - "ały": 21816, - "▁Indiana": 21817, - "Radio": 21818, - "VS": 21819, - "▁independence": 21820, - "тай": 21821, - "▁decode": 21822, - "White": 21823, - "▁journ": 21824, - "ículo": 21825, - "▁Barb": 21826, - "▁Evangel": 21827, - "▁Andy": 21828, - "▁Welcome": 21829, - "▁Device": 21830, - "gef": 21831, - "▁remembered": 21832, - "▁variations": 21833, - "▁Adolf": 21834, - "itaine": 21835, - "▁надморској": 21836, - "▁steam": 21837, - "▁concerns": 21838, - "▁`|": 21839, - "▁био": 21840, - "тельства": 21841, - "▁quattro": 21842, - "extend": 21843, - "▁trabajo": 21844, - "enberg": 21845, - "▁scenarios": 21846, - "ânt": 21847, - "▁kommt": 21848, - "▁domestic": 21849, - "▁Basketball": 21850, - "▁Cooper": 21851, - "sock": 21852, - "держа": 21853, - "={\\": 21854, - "▁inici": 21855, - "▁Phill": 21856, - "▁генерал": 21857, - "archiviato": 21858, - "ън": 21859, - "Rob": 21860, - "▁tong": 21861, - "▁characteristics": 21862, - "▁amaz": 21863, - "▁Mode": 21864, - "▁inaugur": 21865, - "wehr": 21866, - "rant": 21867, - "ionali": 21868, - "▁Mother": 21869, - "Ma": 21870, - "équ": 21871, - "▁Kelly": 21872, - "cile": 21873, - "▁besteht": 21874, - "▁estimates": 21875, - "ruguay": 21876, - "▁Ans": 21877, - "Mad": 21878, - "▁нав": 21879, - "▁données": 21880, - "▁tropical": 21881, - "▁Several": 21882, - "elter": 21883, - "▁Pho": 21884, - "kem": 21885, - "▁Customer": 21886, - "▁складі": 21887, - "▁courses": 21888, - "Platform": 21889, - "navbar": 21890, - "learning": 21891, - "▁Swedish": 21892, - "▁zast": 21893, - "▁Lig": 21894, - "management": 21895, - "▁lod": 21896, - "uffle": 21897, - "Texture": 21898, - "arga": 21899, - "átum": 21900, - "▁DDR": 21901, - "нії": 21902, - "▁Société": 21903, - "▁domains": 21904, - "▁permitted": 21905, - "▁externe": 21906, - "▁quelque": 21907, - "vt": 21908, - "yman": 21909, - "▁Ward": 21910, - "▁agli": 21911, - "▁andra": 21912, - "Snapshot": 21913, - "▁må": 21914, - "▁yeah": 21915, - "дена": 21916, - "ępu": 21917, - "askell": 21918, - "▁République": 21919, - "inject": 21920, - "▁';": 21921, - "änn": 21922, - "▁zelf": 21923, - "▁Entwicklung": 21924, - "ária": 21925, - "onomy": 21926, - "▁svil": 21927, - "iese": 21928, - "▁conser": 21929, - "▁nim": 21930, - "▁rész": 21931, - "▁Итали": 21932, - "▁partici": 21933, - "▁Lion": 21934, - "sr": 21935, - "always": 21936, - "▁Владимир": 21937, - "ческие": 21938, - "[,": 21939, - "▁Definition": 21940, - "nant": 21941, - "oem": 21942, - "Ids": 21943, - "▁вне": 21944, - "▁[...]": 21945, - "▁направ": 21946, - "▁GO": 21947, - "▁års": 21948, - "▁után": 21949, - "▁outros": 21950, - "▁región": 21951, - "▁Mong": 21952, - "▁filme": 21953, - "▁triple": 21954, - "▁spons": 21955, - "Develop": 21956, - "▁outcome": 21957, - "▁Bible": 21958, - "▁имени": 21959, - "Canvas": 21960, - "пута": 21961, - "curr": 21962, - "ások": 21963, - "){\\": 21964, - "ningar": 21965, - "`;": 21966, - "▁Flash": 21967, - ":#": 21968, - "must": 21969, - "cpu": 21970, - "▁formats": 21971, - "Har": 21972, - "▁episodio": 21973, - "▁Rosa": 21974, - "▁dès": 21975, - "emit": 21976, - "riteria": 21977, - "Annotation": 21978, - "Flag": 21979, - "gmail": 21980, - "▁Normal": 21981, - "ollary": 21982, - "▁foss": 21983, - "▁concurrent": 21984, - "▁crashes": 21985, - "▁виде": 21986, - "▁Minor": 21987, - "▁Sit": 21988, - "▁SN": 21989, - "▁scar": 21990, - "▁femin": 21991, - "▁specification": 21992, - "soap": 21993, - "▁operate": 21994, - "▁principalmente": 21995, - "▁aust": 21996, - "ibile": 21997, - "itime": 21998, - "лежа": 21999, - "iframe": 22000, - "▁concepts": 22001, - "▁tack": 22002, - "▁viss": 22003, - "▁carbon": 22004, - "tery": 22005, - "▁naming": 22006, - "▁Orts": 22007, - "idente": 22008, - "▁Capit": 22009, - "▁expr": 22010, - "▁насељу": 22011, - "▁Selected": 22012, - "▁hinter": 22013, - "▁iframe": 22014, - "▁zb": 22015, - "indexPath": 22016, - "coll": 22017, - "▁wrześ": 22018, - "▁acht": 22019, - "▁gradually": 22020, - "▁чу": 22021, - "зей": 22022, - "haft": 22023, - "▁tran": 22024, - "▁laquelle": 22025, - "ytics": 22026, - "IDE": 22027, - "▁pygame": 22028, - "▁Package": 22029, - "▁className": 22030, - "Bal": 22031, - "perl": 22032, - "тина": 22033, - "Occ": 22034, - "▁infrastr": 22035, - "▁Champions": 22036, - "▁classic": 22037, - "▁Raw": 22038, - "▁partially": 22039, - "▁Ted": 22040, - "▁stolet": 22041, - "rained": 22042, - "WHERE": 22043, - "▁vall": 22044, - "▁Julia": 22045, - "zat": 22046, - "▁surrounded": 22047, - "SEE": 22048, - "▁walking": 22049, - "Bad": 22050, - "FOR": 22051, - "contre": 22052, - "▁Palest": 22053, - "ático": 22054, - "▁engineer": 22055, - "▁partners": 22056, - "▁Jews": 22057, - "ilers": 22058, - "▁cerem": 22059, - "▁interactions": 22060, - "acu": 22061, - "sty": 22062, - "▁Princess": 22063, - "sharp": 22064, - "▁Singles": 22065, - "▁їх": 22066, - "chez": 22067, - "Receiver": 22068, - "▁patients": 22069, - "stringify": 22070, - "▁competed": 22071, - "bey": 22072, - "$;": 22073, - "▁Bd": 22074, - "hadoop": 22075, - "▁División": 22076, - "öld": 22077, - "▁restricted": 22078, - "▁commander": 22079, - "▁Highway": 22080, - "▁Česk": 22081, - "▁myth": 22082, - "чан": 22083, - "raham": 22084, - "▁enqu": 22085, - "▁pog": 22086, - "▁comuna": 22087, - "▁println": 22088, - "▁круп": 22089, - "▁depois": 22090, - "▁seats": 22091, - "▁neighb": 22092, - "циона": 22093, - "agine": 22094, - "▁clothes": 22095, - "▁Prior": 22096, - "Brain": 22097, - "FFFF": 22098, - "':'": 22099, - "features": 22100, - "▁filesystem": 22101, - "▁singles": 22102, - "▁Melbourne": 22103, - "▁destruction": 22104, - "▁Lyon": 22105, - "▁Insel": 22106, - "Nav": 22107, - "▁Replace": 22108, - "▁lé": 22109, - "Who": 22110, - "▁Estad": 22111, - "▁dimensional": 22112, - "▁öff": 22113, - "▁grands": 22114, - "джа": 22115, - "plane": 22116, - "ності": 22117, - "▁Origin": 22118, - "WI": 22119, - "änner": 22120, - "▁Cry": 22121, - "ITION": 22122, - "▁född": 22123, - "▁cultura": 22124, - "▁Rank": 22125, - "▁vuel": 22126, - "▁zag": 22127, - "▁Maxim": 22128, - "ону": 22129, - "()))": 22130, - "Raw": 22131, - "kirche": 22132, - "▁además": 22133, - "▁tie": 22134, - "▁Style": 22135, - "сков": 22136, - "istant": 22137, - "olph": 22138, - "▁Zür": 22139, - "▁Info": 22140, - "DOM": 22141, - "usc": 22142, - "nahm": 22143, - "▁Федера": 22144, - "▁Fot": 22145, - "▁specifying": 22146, - "▁titolo": 22147, - "▁Boys": 22148, - "iech": 22149, - "Place": 22150, - "▁Hoff": 22151, - "▁cached": 22152, - "валь": 22153, - "isher": 22154, - "rolling": 22155, - "opens": 22156, - "▁hr": 22157, - "------": 22158, - "▁maggior": 22159, - "▁transactions": 22160, - "▁criminal": 22161, - "▁retre": 22162, - "▁Campbell": 22163, - ")):": 22164, - "▁ned": 22165, - "Pager": 22166, - "▁Hero": 22167, - "(__": 22168, - "▁uncle": 22169, - "▁reaches": 22170, - "arto": 22171, - "▁hello": 22172, - "Preferences": 22173, - "▁затем": 22174, - "Named": 22175, - "▁readers": 22176, - "хі": 22177, - "kern": 22178, - "▁упо": 22179, - "кин": 22180, - "▁lav": 22181, - "▁nob": 22182, - "▁secre": 22183, - "▁ListView": 22184, - "вания": 22185, - "▁Mayor": 22186, - "borough": 22187, - "▁filosof": 22188, - "нення": 22189, - "фри": 22190, - "▁patr": 22191, - "FM": 22192, - "▁acid": 22193, - "▁Salvador": 22194, - "▁abb": 22195, - "▁Graham": 22196, - "policy": 22197, - "negative": 22198, - "ńskiego": 22199, - "▁Heimat": 22200, - "▁dazu": 22201, - "▁mely": 22202, - "▁ride": 22203, - "▁duties": 22204, - "overy": 22205, - "▁Proposition": 22206, - "▁Paolo": 22207, - "/'": 22208, - "▁Mau": 22209, - "imenti": 22210, - "Saint": 22211, - "father": 22212, - "▁equilib": 22213, - "phony": 22214, - "▁clas": 22215, - "▁отли": 22216, - "▁Buffered": 22217, - "rek": 22218, - "▁mitt": 22219, - "▁Hur": 22220, - "▁Harvard": 22221, - "▁demonstrate": 22222, - "uario": 22223, - "▁dolor": 22224, - "▁rejected": 22225, - "▁Müller": 22226, - "▁nac": 22227, - "▁Belle": 22228, - "▁gathered": 22229, - "nr": 22230, - "frika": 22231, - "öll": 22232, - "▁chemical": 22233, - "nig": 22234, - "▁calc": 22235, - "▁DEFAULT": 22236, - "▁philosophy": 22237, - "▁Laravel": 22238, - "▁alignment": 22239, - "EV": 22240, - "eor": 22241, - "▁dzie": 22242, - "▁mest": 22243, - "▁Io": 22244, - "CRE": 22245, - "зви": 22246, - "▁Medic": 22247, - "▁nä": 22248, - "▁zab": 22249, - "▁Slov": 22250, - "utlich": 22251, - "▁amplit": 22252, - "▁Frankreich": 22253, - "▁кіль": 22254, - "IND": 22255, - "execution": 22256, - "▁Karriere": 22257, - "dostęp": 22258, - "▁réal": 22259, - "engo": 22260, - "▁severe": 22261, - "зма": 22262, - "▁турни": 22263, - "▁Carter": 22264, - "▁Robinson": 22265, - "getElementsBy": 22266, - "▁prototype": 22267, - "▁japon": 22268, - "führung": 22269, - "▁consegu": 22270, - "▁studi": 22271, - "▁lire": 22272, - "▁schließ": 22273, - "▁Buff": 22274, - "▁redund": 22275, - "▁ern": 22276, - "▁myster": 22277, - "▁proprio": 22278, - "ateful": 22279, - "▁Parent": 22280, - "▁ladies": 22281, - "rack": 22282, - "тика": 22283, - "enburg": 22284, - "▁качестве": 22285, - "▁EF": 22286, - "▁stam": 22287, - "▁nueva": 22288, - "▁filtered": 22289, - "reten": 22290, - "▁Ian": 22291, - "▁Matthew": 22292, - "kih": 22293, - "▁ő": 22294, - "▁компози": 22295, - "▁forever": 22296, - "oires": 22297, - ":\\\\": 22298, - "▁études": 22299, - "▁soup": 22300, - "▁pleased": 22301, - ")}(": 22302, - "▁Stop": 22303, - "Setter": 22304, - "▁Help": 22305, - "▁bars": 22306, - "▁ERR": 22307, - "▁(?": 22308, - "▁poetry": 22309, - "▁Util": 22310, - "AK": 22311, - "▁fick": 22312, - "▁IM": 22313, - "▁proud": 22314, - "носи": 22315, - "▁muerte": 22316, - "▁Palmarès": 22317, - "▁Nas": 22318, - "щих": 22319, - "▁quer": 22320, - "▁apenas": 22321, - "]['": 22322, - "▁Konst": 22323, - "пон": 22324, - "▁Schiff": 22325, - "▁mp": 22326, - "▁благо": 22327, - "fram": 22328, - "▁household": 22329, - "▁tract": 22330, - "encoding": 22331, - "▁undert": 22332, - "▁Aug": 22333, - "ован": 22334, - "▁Arten": 22335, - "▁invoked": 22336, - "▁dynast": 22337, - "▁fleet": 22338, - "чество": 22339, - "▁Murray": 22340, - "▁gut": 22341, - "elihood": 22342, - "▁SSH": 22343, - "ответ": 22344, - "▁personally": 22345, - "прия": 22346, - "▁financi": 22347, - "▁Thompson": 22348, - "alu": 22349, - "identity": 22350, - "▁Grab": 22351, - "addle": 22352, - "Ét": 22353, - "▁Tob": 22354, - "▁verlor": 22355, - "▁Sainte": 22356, - "▁dop": 22357, - "▁вере": 22358, - "___": 22359, - "▁promotion": 22360, - "▁-=": 22361, - "▁отде": 22362, - "▁ambigu": 22363, - "ORDER": 22364, - "▁Communic": 22365, - "▁imply": 22366, - "oned": 22367, - "cluding": 22368, - "▁collision": 22369, - "▁fragments": 22370, - "scription": 22371, - "▁'{": 22372, - "лях": 22373, - "▁hans": 22374, - "ус": 22375, - "wire": 22376, - "namespace": 22377, - "▁sword": 22378, - "refresh": 22379, - "▁kwam": 22380, - "zs": 22381, - "commons": 22382, - "▁cosa": 22383, - "▁regime": 22384, - "grep": 22385, - "▁dioc": 22386, - "▁Contact": 22387, - "▁estas": 22388, - "▁Stewart": 22389, - "▁viele": 22390, - "това": 22391, - "▁Ran": 22392, - "annes": 22393, - "iday": 22394, - "▁snapshot": 22395, - "orrow": 22396, - "▁zač": 22397, - "▁участие": 22398, - "▁promised": 22399, - "Assembly": 22400, - "▁championship": 22401, - "▁Define": 22402, - "▁eren": 22403, - "▁ново": 22404, - "▁thinks": 22405, - "Age": 22406, - "▁gev": 22407, - "varchar": 22408, - "ività": 22409, - "compos": 22410, - "▁Mutter": 22411, - "CONT": 22412, - "armée": 22413, - "agnet": 22414, - "▁Brow": 22415, - ".—": 22416, - "▁Television": 22417, - "▁Для": 22418, - "▁vm": 22419, - "▁ordin": 22420, - "▁Михай": 22421, - "▁aproxim": 22422, - "')->": 22423, - "▁zoo": 22424, - "ippi": 22425, - "▁sino": 22426, - "▁Québec": 22427, - "rages": 22428, - "äck": 22429, - "eing": 22430, - "arlo": 22431, - "pios": 22432, - "▁Chan": 22433, - "▁elli": 22434, - "▁incons": 22435, - "gestellt": 22436, - "ppers": 22437, - "Jean": 22438, - "anstalt": 22439, - "▁Dance": 22440, - "▁toen": 22441, - "▁decis": 22442, - "▁Резу": 22443, - "▁officially": 22444, - "ätze": 22445, - "▁доро": 22446, - "▁enumer": 22447, - "▁troisième": 22448, - "typ": 22449, - "offs": 22450, - "боль": 22451, - "odn": 22452, - "▁Zar": 22453, - "▁друго": 22454, - "quia": 22455, - "▁Nicolas": 22456, - "пису": 22457, - "▁mob": 22458, - "paces": 22459, - "нього": 22460, - "Alg": 22461, - "éroï": 22462, - "Errors": 22463, - "▁гре": 22464, - "▁женщи": 22465, - "inch": 22466, - "▁Korean": 22467, - "▁Apost": 22468, - "▁Liver": 22469, - "▁elementary": 22470, - "▁DI": 22471, - "виси": 22472, - "▁soil": 22473, - "▁DLL": 22474, - "▁risp": 22475, - "▁Shakespe": 22476, - "▁Gaussian": 22477, - "▁Kurt": 22478, - "Vertex": 22479, - "ebol": 22480, - "organisation": 22481, - "ären": 22482, - "▁YES": 22483, - "CUR": 22484, - "▁началь": 22485, - "▁постро": 22486, - "▁Luigi": 22487, - "▁caching": 22488, - "preventDefault": 22489, - "amd": 22490, - "▁Vit": 22491, - "subst": 22492, - "▁строи": 22493, - "▁Campion": 22494, - "chr": 22495, - "фере": 22496, - "▁Список": 22497, - "NF": 22498, - "▁cím": 22499, - "▁hé": 22500, - "rebbe": 22501, - "ocy": 22502, - "below": 22503, - "▁bylo": 22504, - "▁Уи": 22505, - "▁\\({\\": 22506, - "▁`:": 22507, - "giore": 22508, - "San": 22509, - "▁Gate": 22510, - "▁вс": 22511, - "▁olimp": 22512, - "▁Matrix": 22513, - "▁hearing": 22514, - "rii": 22515, - "tfrac": 22516, - "▁allemand": 22517, - "▁Vue": 22518, - "лн": 22519, - "▁compiling": 22520, - "▁Ens": 22521, - "▁investigation": 22522, - "▁Ax": 22523, - "▁chars": 22524, - "▁targets": 22525, - "▁loud": 22526, - "usement": 22527, - "▁Nether": 22528, - "commerce": 22529, - "IGHT": 22530, - "ocoa": 22531, - "ifecycle": 22532, - "▁Leo": 22533, - "priv": 22534, - "▁goods": 22535, - "adamente": 22536, - "Austral": 22537, - "▁reboot": 22538, - "Gest": 22539, - "▁representations": 22540, - "ceu": 22541, - "▁doctrine": 22542, - "cers": 22543, - "▁Krak": 22544, - "▁advoc": 22545, - "▁squadra": 22546, - "▁arbeitete": 22547, - "üst": 22548, - "▁pill": 22549, - "Answer": 22550, - "▁квіт": 22551, - "▁Wa": 22552, - "umann": 22553, - "▁Dynam": 22554, - "Famil": 22555, - "▁tennis": 22556, - "▁Engineering": 22557, - "▁circles": 22558, - "▁Maryland": 22559, - "▁besta": 22560, - "▁bases": 22561, - "▁znajdu": 22562, - "ктора": 22563, - "▁arrest": 22564, - "лер": 22565, - "▁Gia": 22566, - "▁remarkable": 22567, - "▁могу": 22568, - "▁Supreme": 22569, - "▁`%": 22570, - "dor": 22571, - "▁aujourd": 22572, - "▁wis": 22573, - "WIDTH": 22574, - "▁misma": 22575, - "▁fluid": 22576, - "▁petite": 22577, - "▁Tow": 22578, - "Registry": 22579, - "emed": 22580, - "▁Wisconsin": 22581, - "▁Racing": 22582, - "▁registration": 22583, - "/%": 22584, - "third": 22585, - "▁monuments": 22586, - "чей": 22587, - "▁jet": 22588, - "▁Urban": 22589, - "álva": 22590, - "▁milieu": 22591, - "▁possess": 22592, - "▁germ": 22593, - "dependencies": 22594, - "▁enemies": 22595, - "▁samen": 22596, - "▁Werner": 22597, - "▁hizo": 22598, - "▁td": 22599, - "▁yesterday": 22600, - "▁Ад": 22601, - "▁hasn": 22602, - "cellation": 22603, - "ování": 22604, - "lika": 22605, - "Week": 22606, - "▁Ing": 22607, - "▁Email": 22608, - "▁mètres": 22609, - "▁OCLC": 22610, - "▁amongst": 22611, - "▁splend": 22612, - "fur": 22613, - "antics": 22614, - "▁XXX": 22615, - "▁группы": 22616, - "lach": 22617, - "▁cousin": 22618, - "▁invariant": 22619, - "ђу": 22620, - "▁Beispiel": 22621, - "▁harder": 22622, - "▁bell": 22623, - "▁orch": 22624, - "tb": 22625, - "Footnote": 22626, - "regon": 22627, - "Martin": 22628, - "▁incon": 22629, - "▁attacked": 22630, - "_{-": 22631, - "▁Tras": 22632, - "party": 22633, - "iteit": 22634, - "▁saint": 22635, - "rások": 22636, - "▁containers": 22637, - "Mo": 22638, - "▁Sn": 22639, - "quantity": 22640, - "▁ras": 22641, - "▁Canal": 22642, - "ccion": 22643, - "uvo": 22644, - "▁idx": 22645, - "typename": 22646, - "▁Rugby": 22647, - "▁Seems": 22648, - "▁transmit": 22649, - "▁Präsident": 22650, - "зне": 22651, - "▁Baker": 22652, - "inth": 22653, - "▁több": 22654, - "verein": 22655, - "▁especie": 22656, - ",(": 22657, - "▁téc": 22658, - "▁WITH": 22659, - "▁unos": 22660, - "▁politics": 22661, - "createElement": 22662, - "▁stats": 22663, - "▁Tennessee": 22664, - "▁Bedeutung": 22665, - "▁Screen": 22666, - "▁Straße": 22667, - "anze": 22668, - "▁partly": 22669, - "manuel": 22670, - "olation": 22671, - "horizontal": 22672, - "érieure": 22673, - "ampio": 22674, - "▁струк": 22675, - "Weight": 22676, - "Land": 22677, - "poly": 22678, - "▁Dak": 22679, - "▁Assume": 22680, - "\".$": 22681, - "▁casi": 22682, - "▁gross": 22683, - "▁entertain": 22684, - "▁década": 22685, - "'.$": 22686, - "encer": 22687, - "▁guaranteed": 22688, - "]$.": 22689, - "лися": 22690, - "▁acceptable": 22691, - "raise": 22692, - "irus": 22693, - "weit": 22694, - "▁Ана": 22695, - "▁hills": 22696, - "ipage": 22697, - "BIT": 22698, - "▁nucle": 22699, - "▁utilis": 22700, - "CAA": 22701, - "ènes": 22702, - "▁Schweiz": 22703, - "▁AA": 22704, - "ninger": 22705, - "▁bands": 22706, - "▁tender": 22707, - "som": 22708, - "Warning": 22709, - "▁Bischof": 22710, - "▁Arc": 22711, - "▁Woman": 22712, - "▁transmission": 22713, - "чни": 22714, - "istre": 22715, - "BY": 22716, - "▁SI": 22717, - "▁Пар": 22718, - "▁}).": 22719, - "▁presenta": 22720, - "▁René": 22721, - "▁happiness": 22722, - "▁Punk": 22723, - "cols": 22724, - "▁Desde": 22725, - "рёх": 22726, - "▁мона": 22727, - "▁scratch": 22728, - "▁tcp": 22729, - "êtes": 22730, - "itated": 22731, - "▁diferen": 22732, - "geh": 22733, - "nahmen": 22734, - "Пе": 22735, - "cki": 22736, - "▁Teatro": 22737, - "▁Remember": 22738, - "▁fright": 22739, - "▁Yam": 22740, - "western": 22741, - "leted": 22742, - "▁встре": 22743, - "▁település": 22744, - "зин": 22745, - "▁Quant": 22746, - "▁supre": 22747, - "ája": 22748, - "дія": 22749, - "▁carrera": 22750, - "kret": 22751, - "para": 22752, - "▁SUM": 22753, - "▁pit": 22754, - "źdz": 22755, - "éo": 22756, - "рення": 22757, - "▁Chor": 22758, - "▁voix": 22759, - "▁executive": 22760, - "▁allerdings": 22761, - "Maybe": 22762, - "▁день": 22763, - "▁flying": 22764, - "▁parliament": 22765, - "ждан": 22766, - "▁fram": 22767, - "▁жовт": 22768, - "▁ugly": 22769, - "▁буду": 22770, - "igny": 22771, - "\\|_{": 22772, - "▁bitter": 22773, - "sce": 22774, - "▁pole": 22775, - "Verlag": 22776, - "▁totalité": 22777, - "▁foundation": 22778, - "jt": 22779, - "▁slice": 22780, - "ifique": 22781, - "▁integrate": 22782, - "strij": 22783, - "▁asympt": 22784, - "▁ему": 22785, - "▁perturb": 22786, - "▁Flow": 22787, - "jboss": 22788, - "RIG": 22789, - "▁Aless": 22790, - "XXX": 22791, - "▁summ": 22792, - "sqlite": 22793, - "▁cheer": 22794, - "prob": 22795, - "▁GPU": 22796, - "ził": 22797, - "(*)": 22798, - "▁induct": 22799, - "RAY": 22800, - "blatt": 22801, - "questa": 22802, - "oru": 22803, - "▁Inside": 22804, - "▁McG": 22805, - "▁Nep": 22806, - "мп": 22807, - "▁inve": 22808, - "▁Animal": 22809, - "▁sob": 22810, - "ított": 22811, - "loyment": 22812, - "▁bund": 22813, - "Station": 22814, - "▁BEGIN": 22815, - "▁partiellement": 22816, - "igg": 22817, - "estore": 22818, - "▁coinc": 22819, - "▁Sommer": 22820, - "▁md": 22821, - "▁locked": 22822, - "mathchar": 22823, - "arma": 22824, - "pent": 22825, - "arium": 22826, - "▁ears": 22827, - "▁Songs": 22828, - "▁similarly": 22829, - "▁literally": 22830, - "▁inches": 22831, - "▁affection": 22832, - "lp": 22833, - "▁concluded": 22834, - "▁муніципалі": 22835, - "▁памя": 22836, - "estaur": 22837, - "▁Josh": 22838, - "▁Fritz": 22839, - "DBC": 22840, - "дён": 22841, - "posa": 22842, - "▁golden": 22843, - "▁pc": 22844, - "▁comte": 22845, - "▁Ziel": 22846, - "▁présente": 22847, - "marks": 22848, - "igneur": 22849, - "▁Drive": 22850, - "▁neglect": 22851, - "▁rozp": 22852, - "▁Five": 22853, - "spaces": 22854, - "▁Medi": 22855, - "▁existed": 22856, - "▁była": 22857, - "джи": 22858, - "▁frente": 22859, - "тник": 22860, - "odd": 22861, - "▁answering": 22862, - "bian": 22863, - "▁Eugen": 22864, - "▁Publications": 22865, - "▁Dia": 22866, - "lá": 22867, - "▁'_": 22868, - "▁recuper": 22869, - "ому": 22870, - "▁Append": 22871, - "obar": 22872, - "▁employees": 22873, - "▁compens": 22874, - "emetery": 22875, - "▁элект": 22876, - "MON": 22877, - "olin": 22878, - "▁historic": 22879, - "his": 22880, - "ąd": 22881, - "nm": 22882, - "▁Goth": 22883, - "▁stress": 22884, - "▁partecip": 22885, - "▁Aw": 22886, - "▁sar": 22887, - "▁hu": 22888, - "▁matplotlib": 22889, - "▁Myst": 22890, - "();`": 22891, - "schein": 22892, - "Longrightarrow": 22893, - "▁ря": 22894, - "▁Isra": 22895, - "[^": 22896, - "nou": 22897, - "▁synd": 22898, - "working": 22899, - "▁Nation": 22900, - "▁Pent": 22901, - "▁klass": 22902, - "▁applicable": 22903, - "▁Diam": 22904, - "▁brasile": 22905, - "▁pac": 22906, - "▁Height": 22907, - "Put": 22908, - "▁intro": 22909, - "▁unusual": 22910, - "nas": 22911, - "▁Gebäude": 22912, - "▁beam": 22913, - "▁Rect": 22914, - "▁Primera": 22915, - "▁haut": 22916, - "▁trait": 22917, - "prüft": 22918, - "inación": 22919, - "▁configurations": 22920, - "▁gilt": 22921, - "▁territoire": 22922, - "hez": 22923, - "▁alte": 22924, - "relative": 22925, - "Excel": 22926, - "▁Wright": 22927, - "GV": 22928, - "поли": 22929, - "Quant": 22930, - "▁gauge": 22931, - "▁multiply": 22932, - "ASS": 22933, - "ственно": 22934, - "ану": 22935, - "▁jeden": 22936, - "▁literary": 22937, - "▁Dro": 22938, - "▁advise": 22939, - "itzen": 22940, - "▁disag": 22941, - "website": 22942, - "▁дія": 22943, - "▁observer": 22944, - "▁január": 22945, - "vě": 22946, - "kup": 22947, - "▁Ses": 22948, - "▁wojew": 22949, - "▁stages": 22950, - "▁времени": 22951, - "łuż": 22952, - "нос": 22953, - "Download": 22954, - "ipo": 22955, - "▁graf": 22956, - "▁робо": 22957, - "▁Nikol": 22958, - "▁fic": 22959, - "▁joining": 22960, - "▁diversos": 22961, - "▁LIKE": 22962, - "▁Fitz": 22963, - "▁dimin": 22964, - "▁distrib": 22965, - "Sam": 22966, - "koz": 22967, - "▁alphabet": 22968, - "oser": 22969, - "OUR": 22970, - "uka": 22971, - "кая": 22972, - "▁steel": 22973, - "▁`--": 22974, - "▁tener": 22975, - "marker": 22976, - "▁Heaven": 22977, - "newcommand": 22978, - "▁prisoners": 22979, - "▁Knight": 22980, - "▁presents": 22981, - "▁questi": 22982, - "▁trains": 22983, - "opera": 22984, - "▁Linear": 22985, - "▁ME": 22986, - "▁Buc": 22987, - "Leg": 22988, - "▁agua": 22989, - "▁Griff": 22990, - "olg": 22991, - "dst": 22992, - ".\r": 22993, - "▁persones": 22994, - "Mal": 22995, - "бере": 22996, - "folge": 22997, - "▁acab": 22998, - "ctu": 22999, - "ptic": 23000, - "▁Navigation": 23001, - "Russ": 23002, - "галь": 23003, - "▁Ful": 23004, - "▁має": 23005, - "чная": 23006, - "wner": 23007, - "contra": 23008, - "▁joueur": 23009, - "▁Jess": 23010, - "▁renew": 23011, - "▁lap": 23012, - "▁casting": 23013, - "gal": 23014, - "▁tématu": 23015, - "▁называ": 23016, - "зах": 23017, - "чне": 23018, - ")-\\": 23019, - "▁часто": 23020, - "}$-": 23021, - "▁licz": 23022, - "▁emot": 23023, - "harm": 23024, - "▁occasionally": 23025, - "▁horror": 23026, - "east": 23027, - "▁printer": 23028, - "aran": 23029, - "▁Mississ": 23030, - "follow": 23031, - "▁Barry": 23032, - "▁investigate": 23033, - "gow": 23034, - "▁Americans": 23035, - "Since": 23036, - "▁відо": 23037, - "▁reun": 23038, - "osci": 23039, - "▁Chapter": 23040, - "▁bay": 23041, - "роме": 23042, - "ethe": 23043, - "édie": 23044, - "comot": 23045, - "▁miejscowo": 23046, - "▁studierte": 23047, - "ouvert": 23048, - "▁кур": 23049, - "▁DESC": 23050, - "▁touched": 23051, - "▁Jerry": 23052, - "uese": 23053, - "лище": 23054, - "authentication": 23055, - "▁colle": 23056, - "heart": 23057, - "▁regiment": 23058, - "cribed": 23059, - "▁Боль": 23060, - "▁проис": 23061, - "ceae": 23062, - "▁masses": 23063, - "▁scrolling": 23064, - "usto": 23065, - "SW": 23066, - "ovat": 23067, - "▁grâce": 23068, - "▁Архив": 23069, - "▁Север": 23070, - "avait": 23071, - "▁Marshall": 23072, - "▁HashMap": 23073, - "acon": 23074, - "ücken": 23075, - "[])": 23076, - "▁evangel": 23077, - "etzung": 23078, - "ttemberg": 23079, - "sters": 23080, - "TM": 23081, - "▁литера": 23082, - "quot": 23083, - "Pred": 23084, - "▁werk": 23085, - "▁haber": 23086, - "lava": 23087, - "vous": 23088, - "▁Late": 23089, - "cycle": 23090, - "тирова": 23091, - "▁проду": 23092, - "▁populations": 23093, - "▁Yan": 23094, - "Prefix": 23095, - "actéristiques": 23096, - "+'": 23097, - "()`](": 23098, - "▁Ль": 23099, - "филь": 23100, - "▁жизни": 23101, - "ftp": 23102, - "▁всех": 23103, - "▁gdzie": 23104, - "▁videa": 23105, - "oauth": 23106, - "▁pid": 23107, - "ům": 23108, - "▁pesso": 23109, - "▁tracking": 23110, - "izin": 23111, - "▁Morris": 23112, - "щий": 23113, - "▁Provinz": 23114, - "▁Mitte": 23115, - "▁artificial": 23116, - "brázky": 23117, - "▁дости": 23118, - "▁restored": 23119, - "▁communicate": 23120, - "agit": 23121, - "Recogn": 23122, - "▁lon": 23123, - "▁заня": 23124, - "▁Argument": 23125, - "flush": 23126, - "мана": 23127, - "seconds": 23128, - "UC": 23129, - "▁Ruth": 23130, - "▁tub": 23131, - "▁Bret": 23132, - "▁Pere": 23133, - "▁responsibility": 23134, - "ńczy": 23135, - "▁environments": 23136, - "kee": 23137, - "▁groot": 23138, - "▁painted": 23139, - "▁Éditions": 23140, - "cpy": 23141, - "árt": 23142, - "lichkeit": 23143, - "arda": 23144, - "Batch": 23145, - "▁Leopold": 23146, - "reason": 23147, - "noreferrer": 23148, - "sens": 23149, - "▁rocks": 23150, - "▁Hitler": 23151, - "лат": 23152, - "▁quoted": 23153, - "▁колле": 23154, - "▁уров": 23155, - "bag": 23156, - ".\")": 23157, - "▁ML": 23158, - "▁komt": 23159, - "▁[_": 23160, - "▁spectral": 23161, - "edo": 23162, - "▁insieme": 23163, - "▁suffering": 23164, - "slider": 23165, - "▁Kennedy": 23166, - "olate": 23167, - "▁Patri": 23168, - "зии": 23169, - "OH": 23170, - "▁теа": 23171, - "▁права": 23172, - "мах": 23173, - "rewrite": 23174, - "▁Einsatz": 23175, - "external": 23176, - "holds": 23177, - "▁Places": 23178, - "atype": 23179, - "▁vulner": 23180, - "▁abandoned": 23181, - "Origin": 23182, - "▁maximal": 23183, - "AAAA": 23184, - "▁Baseball": 23185, - "▁Close": 23186, - "▁painter": 23187, - "▁assigning": 23188, - "NB": 23189, - "blast": 23190, - "▁Künstler": 23191, - ")](": 23192, - "fach": 23193, - "▁Constantin": 23194, - "okes": 23195, - "▁nobody": 23196, - "▁subtract": 23197, - "▁fosse": 23198, - "▁certific": 23199, - "▁muse": 23200, - "/),": 23201, - "▁Profil": 23202, - "▁proxim": 23203, - "▁Jerusalem": 23204, - "▁simplicity": 23205, - "▁wsz": 23206, - "NUMBER": 23207, - "uttavia": 23208, - "UITableView": 23209, - "ichter": 23210, - "жан": 23211, - "▁Lav": 23212, - "itchen": 23213, - "▁Чем": 23214, - "Tu": 23215, - "▁geom": 23216, - "▁zvuky": 23217, - "▁Survey": 23218, - "ANCE": 23219, - "▁encrypted": 23220, - "prof": 23221, - "▁dare": 23222, - "▁Loren": 23223, - "тв": 23224, - "▁Алек": 23225, - "▁computers": 23226, - "▁expectation": 23227, - "▁substantial": 23228, - "▁Дми": 23229, - "▁`{": 23230, - "▁дра": 23231, - "ubble": 23232, - "▁performs": 23233, - "▁Krieg": 23234, - "▁incoming": 23235, - "▁Classification": 23236, - "WebView": 23237, - "▁episodes": 23238, - "apper": 23239, - "äufig": 23240, - "▁giov": 23241, - "▁Depart": 23242, - "бора": 23243, - "edly": 23244, - "ospod": 23245, - "▁ptr": 23246, - "▁dátum": 23247, - "▁estimation": 23248, - "icole": 23249, - "▁----": 23250, - "▁princes": 23251, - "HEAD": 23252, - "▁diffusion": 23253, - "▁drie": 23254, - "▁Ada": 23255, - "нице": 23256, - "nginx": 23257, - "shal": 23258, - "▁februari": 23259, - "▁Tat": 23260, - "looking": 23261, - "kund": 23262, - "▁Dean": 23263, - "mongodb": 23264, - "вших": 23265, - "▁Aur": 23266, - "▁Flora": 23267, - "▁Studios": 23268, - "ције": 23269, - "eil": 23270, - "Install": 23271, - "▁franch": 23272, - "▁HMS": 23273, - "▁practices": 23274, - "lej": 23275, - "dale": 23276, - "▁poste": 23277, - "▁Hels": 23278, - "▁reliable": 23279, - "ździer": 23280, - "▁verse": 23281, - "ermeister": 23282, - "▁quit": 23283, - "ético": 23284, - "ilis": 23285, - "edor": 23286, - "▁Cultural": 23287, - "дже": 23288, - "▁liked": 23289, - "▁mongodb": 23290, - "▁Broadway": 23291, - "▁IR": 23292, - "eszt": 23293, - "hov": 23294, - "▁míst": 23295, - "reiche": 23296, - "▁kB": 23297, - "стом": 23298, - "▁SQLite": 23299, - "▁torneo": 23300, - "\\.": 23301, - "Ord": 23302, - "▁Administration": 23303, - "▁зда": 23304, - "▁Hinter": 23305, - "▁Via": 23306, - "Decimal": 23307, - "orious": 23308, - "▁nécessaire": 23309, - "wx": 23310, - "▁tej": 23311, - "▁tema": 23312, - "Obrázky": 23313, - "рите": 23314, - "▁builds": 23315, - "▁laten": 23316, - "▁гг": 23317, - "Visibility": 23318, - "läu": 23319, - "▁sechs": 23320, - "▁луч": 23321, - "cera": 23322, - "Could": 23323, - "▁traject": 23324, - "}}^{": 23325, - "▁Japon": 23326, - "another": 23327, - "IK": 23328, - "▁belonging": 23329, - "▁facilities": 23330, - "▁Daily": 23331, - "▁dece": 23332, - "intro": 23333, - "▁случа": 23334, - "Namespace": 23335, - "▁Bak": 23336, - "locale": 23337, - "UG": 23338, - "=${": 23339, - "▁compañ": 23340, - "jąc": 23341, - "▁arithmetic": 23342, - "forum": 23343, - "▁porta": 23344, - "onk": 23345, - "▁gender": 23346, - "▁expects": 23347, - "бка": 23348, - "▁nak": 23349, - "▁Grace": 23350, - "▁stro": 23351, - "ividual": 23352, - "▁COM": 23353, - "▁Farm": 23354, - "▁canton": 23355, - "тому": 23356, - "javax": 23357, - "сей": 23358, - "▁briefly": 23359, - "Face": 23360, - "rotate": 23361, - "constant": 23362, - "▁gallery": 23363, - "astro": 23364, - "allery": 23365, - "▁DJ": 23366, - "charge": 23367, - "ходить": 23368, - "Cent": 23369, - "\\\",": 23370, - "▁donna": 23371, - "arca": 23372, - "lade": 23373, - "zin": 23374, - "▁Ned": 23375, - "▁hosting": 23376, - "idor": 23377, - "itative": 23378, - "igs": 23379, - "▁пря": 23380, - "▁ticket": 23381, - "▁studying": 23382, - "▁designer": 23383, - "lapsed": 23384, - "▁laat": 23385, - "▁dix": 23386, - "▁integrated": 23387, - "▁informed": 23388, - "▁behave": 23389, - "▁labour": 23390, - "estellt": 23391, - "calendar": 23392, - "▁killing": 23393, - "▁twitter": 23394, - "iae": 23395, - "▁historique": 23396, - "DEFAULT": 23397, - "iała": 23398, - "▁theoretical": 23399, - "▁unders": 23400, - "ляет": 23401, - "atan": 23402, - "▁surname": 23403, - "▁intercept": 23404, - "гласно": 23405, - "▁општини": 23406, - "▁tired": 23407, - "▁Beth": 23408, - "▁административ": 23409, - "Li": 23410, - "▁Тур": 23411, - "▁Scanner": 23412, - "▁Stern": 23413, - "▁вместе": 23414, - "▁reporting": 23415, - "▁sull": 23416, - "цией": 23417, - "berts": 23418, - "ogonal": 23419, - "ők": 23420, - "▁ipsum": 23421, - "▁seulement": 23422, - "▁Seiten": 23423, - "wordpress": 23424, - "▁featuring": 23425, - "istischen": 23426, - "jub": 23427, - "▁étr": 23428, - "▁tea": 23429, - "▁adapted": 23430, - "▁scales": 23431, - "▁nan": 23432, - "getValue": 23433, - "▁Blues": 23434, - "acles": 23435, - "▁stati": 23436, - "▁entitled": 23437, - "▁Ralph": 23438, - "gravity": 23439, - "▁entrepr": 23440, - "któber": 23441, - "limat": 23442, - "lis": 23443, - "Demo": 23444, - "relation": 23445, - "▁nep": 23446, - "prowad": 23447, - "itis": 23448, - "▁pup": 23449, - "nehmer": 23450, - "▁disappoint": 23451, - "▁etwas": 23452, - "annon": 23453, - "▁approved": 23454, - "▁clever": 23455, - "Loading": 23456, - "▁verz": 23457, - "resse": 23458, - "▁inspir": 23459, - "▁sampling": 23460, - "▁Bek": 23461, - "})$.": 23462, - "▁грома": 23463, - "▁specie": 23464, - "▁repub": 23465, - "▁loader": 23466, - "▁erf": 23467, - "▁shoulder": 23468, - "rais": 23469, - "▁мате": 23470, - "▁Month": 23471, - "Scene": 23472, - "▁blocking": 23473, - "▁ocean": 23474, - "geben": 23475, - "▁Kilometer": 23476, - "▁bedeut": 23477, - "▁Mix": 23478, - "fmt": 23479, - "▁Norweg": 23480, - "▁IDs": 23481, - "parallel": 23482, - "▁anticip": 23483, - "▁revis": 23484, - "хан": 23485, - "▁свет": 23486, - "CASE": 23487, - "▁führt": 23488, - "▁atomic": 23489, - "▁darkness": 23490, - "▁Fußballspieler": 23491, - "▁Жи": 23492, - "quisition": 23493, - "▁Sieg": 23494, - "Circ": 23495, - "▁cientí": 23496, - "nelle": 23497, - "SHA": 23498, - "▁urb": 23499, - "▁ksi": 23500, - "leqslant": 23501, - "▁фрон": 23502, - "▁defect": 23503, - "▁rá": 23504, - "▁stronger": 23505, - "▁pł": 23506, - "▁communities": 23507, - "нина": 23508, - "enas": 23509, - "iennent": 23510, - "▁safely": 23511, - "▁тя": 23512, - "▁benchmark": 23513, - "▁Braun": 23514, - "methods": 23515, - "argument": 23516, - "vos": 23517, - "obox": 23518, - "рови": 23519, - "▁recherche": 23520, - "mn": 23521, - "▁brings": 23522, - "machine": 23523, - "CESS": 23524, - "hosts": 23525, - "▁NY": 23526, - "Autow": 23527, - "▁современ": 23528, - "▁Gary": 23529, - "▁sensor": 23530, - "▁documented": 23531, - "▁prendre": 23532, - "▁peer": 23533, - "enix": 23534, - "hai": 23535, - "arbe": 23536, - "цент": 23537, - "_(": 23538, - "▁URI": 23539, - "ева": 23540, - "▁Regie": 23541, - "▁Monument": 23542, - "▁onderwerp": 23543, - "Bag": 23544, - "tit": 23545, - "▁stir": 23546, - "▁nerv": 23547, - "сторія": 23548, - "▁sov": 23549, - "▁writers": 23550, - "▁sorts": 23551, - "absolute": 23552, - "▁difficulties": 23553, - "▁parlament": 23554, - "▁IEnumerable": 23555, - "▁dissol": 23556, - "▁CHECK": 23557, - "arina": 23558, - "inburgh": 23559, - "DM": 23560, - "▁eind": 23561, - "▁budget": 23562, - "▁certains": 23563, - "▁första": 23564, - "anja": 23565, - "▁годов": 23566, - "▁тек": 23567, - "▁Duch": 23568, - "gui": 23569, - "▁Teams": 23570, - "▁многи": 23571, - "Marie": 23572, - "Integr": 23573, - "ThreadPool": 23574, - "rust": 23575, - "ík": 23576, - "%\"": 23577, - "enf": 23578, - "spl": 23579, - "▁begun": 23580, - "lou": 23581, - "▁RewriteRule": 23582, - "tuple": 23583, - "aneous": 23584, - "▁marine": 23585, - "attan": 23586, - "ikal": 23587, - "▁graduated": 23588, - "illé": 23589, - "▁прове": 23590, - "▁Роз": 23591, - "',\r": 23592, - "▁Pfarr": 23593, - "▁nivel": 23594, - "▁працю": 23595, - "music": 23596, - "▁setTimeout": 23597, - "ERS": 23598, - "▁Erik": 23599, - "pit": 23600, - "▁Хро": 23601, - "▁pił": 23602, - "▁peri": 23603, - "док": 23604, - "uszt": 23605, - "▁Bear": 23606, - "ClassName": 23607, - "▁Parlament": 23608, - "▁aix": 23609, - "▁invited": 23610, - "▁PATH": 23611, - "xter": 23612, - "▁Race": 23613, - "▁hecho": 23614, - "▁Tower": 23615, - "▁utf": 23616, - "actly": 23617, - "▁буде": 23618, - "▁angles": 23619, - "няя": 23620, - "ouvelles": 23621, - "▁climate": 23622, - "▁singing": 23623, - "▁navigate": 23624, - ">';": 23625, - "adows": 23626, - "▁leta": 23627, - "▁Sitz": 23628, - "▁partitions": 23629, - "▁dock": 23630, - "▁ży": 23631, - "▁allocate": 23632, - "▁benefits": 23633, - "▁nieder": 23634, - "xpath": 23635, - "meck": 23636, - "älle": 23637, - "▁coupling": 23638, - "жил": 23639, - "ForKey": 23640, - "argent": 23641, - "clou": 23642, - "▁instruments": 23643, - "▁enthus": 23644, - "▁még": 23645, - "▁Пав": 23646, - "▁Rach": 23647, - "-----": 23648, - "▁APIs": 23649, - "▁Vier": 23650, - "Cmd": 23651, - "itore": 23652, - "▁Cuba": 23653, - "▁dátummal": 23654, - "▁embedding": 23655, - "stdio": 23656, - "▁Gilbert": 23657, - "▁geprüft": 23658, - "▁stating": 23659, - "▁triggers": 23660, - "+=": 23661, - "▁spécial": 23662, - "▁deliber": 23663, - "мин": 23664, - "Produ": 23665, - "▁Stati": 23666, - "▁zus": 23667, - "ktionen": 23668, - "Dispatcher": 23669, - "idal": 23670, - "▁LP": 23671, - "optera": 23672, - "▁estar": 23673, - "▁значи": 23674, - "смо": 23675, - "ouses": 23676, - "engono": 23677, - "▁WPF": 23678, - "publish": 23679, - "▁teor": 23680, - "elif": 23681, - "▁erg": 23682, - "▁separation": 23683, - "Pan": 23684, - "▁Orchestra": 23685, - "Peter": 23686, - "bounds": 23687, - "▁Shakespeare": 23688, - "▁cantante": 23689, - "▁demi": 23690, - "▁Popular": 23691, - "фр": 23692, - "arring": 23693, - "цин": 23694, - "▁Ис": 23695, - "von": 23696, - "▁substitution": 23697, - "▁línea": 23698, - "\\}$.": 23699, - "como": 23700, - "▁важ": 23701, - "wagen": 23702, - "▁rarely": 23703, - "▁periods": 23704, - "glob": 23705, - "▁Frid": 23706, - "▁Terr": 23707, - "▁Release": 23708, - "Brainz": 23709, - "▁граф": 23710, - "DIS": 23711, - "compatible": 23712, - "▁poč": 23713, - "LIN": 23714, - "▁Källor": 23715, - "▁Arizona": 23716, - "ppy": 23717, - "Seq": 23718, - "▁Ain": 23719, - "▁Tourn": 23720, - "brow": 23721, - "▁Kör": 23722, - "▁ash": 23723, - "ogeneous": 23724, - "▁dialect": 23725, - "▁насеља": 23726, - "mysqli": 23727, - "цов": 23728, - "▁flor": 23729, - "▁фло": 23730, - "IAB": 23731, - "▁Within": 23732, - "^(": 23733, - "▁bois": 23734, - "▁tank": 23735, - "▁affili": 23736, - "▁hijo": 23737, - "▁Kate": 23738, - "▁Verl": 23739, - "▁Miami": 23740, - "▁typescript": 23741, - "њу": 23742, - "▁Vern": 23743, - "▁висо": 23744, - "iemann": 23745, - "▁coverage": 23746, - "brie": 23747, - "▁Starting": 23748, - "numpy": 23749, - "▁Jenkins": 23750, - "▁két": 23751, - "▁grup": 23752, - "▁Scient": 23753, - "▁interrupt": 23754, - "▁blob": 23755, - "ugel": 23756, - "▁Orth": 23757, - "abama": 23758, - "▁Bapt": 23759, - "ownik": 23760, - "▁быть": 23761, - "▁Julius": 23762, - "▁През": 23763, - "▁substitute": 23764, - "supported": 23765, - "chy": 23766, - "egyzetek": 23767, - "▁Performance": 23768, - "lessly": 23769, - "Constructor": 23770, - "▁extending": 23771, - "▁Muslim": 23772, - "Overflow": 23773, - "▁Jenn": 23774, - "▁produz": 23775, - "мії": 23776, - "▁países": 23777, - "▁eux": 23778, - "▁fate": 23779, - "ologe": 23780, - "ук": 23781, - "▁wobei": 23782, - "▁Sachsen": 23783, - "▁сайт": 23784, - "Models": 23785, - "▁Fast": 23786, - "besondere": 23787, - "▁FR": 23788, - "▁acon": 23789, - "▁Denkmal": 23790, - "▁anch": 23791, - "▁público": 23792, - "▁Tas": 23793, - "▁cand": 23794, - "▁paździer": 23795, - "▁Мон": 23796, - "▁versus": 23797, - "rut": 23798, - "GT": 23799, - "▁inserting": 23800, - "▁canad": 23801, - "єм": 23802, - "▁Metro": 23803, - "▁Herzog": 23804, - "Ignore": 23805, - "▁decrease": 23806, - "▁пун": 23807, - "▁Fischer": 23808, - "▁Mall": 23809, - "▁nörd": 23810, - "iostream": 23811, - "▁Luxemb": 23812, - "payload": 23813, - "▁Zeitung": 23814, - "▁modifying": 23815, - "▁Cher": 23816, - "▁Luci": 23817, - "nx": 23818, - "▁loose": 23819, - "▁topics": 23820, - "▁varied": 23821, - "▁pg": 23822, - "ajes": 23823, - "umm": 23824, - "Views": 23825, - "▁Beau": 23826, - "MAP": 23827, - "ipeline": 23828, - "▁Interest": 23829, - "arith": 23830, - "▁según": 23831, - "▁Gemeins": 23832, - "▁Attribute": 23833, - "community": 23834, - "▁центр": 23835, - "▁kilometer": 23836, - "▁économ": 23837, - "laration": 23838, - "▁къ": 23839, - "▁carriage": 23840, - "▁Lane": 23841, - "▁необ": 23842, - "kur": 23843, - "▁AF": 23844, - "INTER": 23845, - "))$": 23846, - "▁beide": 23847, - "destination": 23848, - "▁fonts": 23849, - "appendChild": 23850, - "▁MAR": 23851, - "▁gay": 23852, - "mil": 23853, - "lesh": 23854, - "èt": 23855, - "▁Wang": 23856, - "▁Years": 23857, - "▁Symbol": 23858, - "Live": 23859, - "quency": 23860, - "▁Users": 23861, - "▁Unicode": 23862, - "▁Sau": 23863, - "▁tons": 23864, - "▁Ні": 23865, - "▁краї": 23866, - "AXI": 23867, - "▁Pick": 23868, - "AI": 23869, - "▁hath": 23870, - "▁ainda": 23871, - "▁papa": 23872, - "▁Censo": 23873, - "▁Bald": 23874, - "▁Насеље": 23875, - "▁simulations": 23876, - "▁jaren": 23877, - "▁inherited": 23878, - "▁той": 23879, - "▁feels": 23880, - "ression": 23881, - "▁október": 23882, - "bid": 23883, - "ási": 23884, - "▁muss": 23885, - "ventory": 23886, - "▁meist": 23887, - "▁bore": 23888, - "▁slider": 23889, - "дели": 23890, - "\\;": 23891, - "▁extracted": 23892, - "кур": 23893, - "Edge": 23894, - "▁perf": 23895, - "▁Brigade": 23896, - "▁град": 23897, - "ienie": 23898, - "▁Norden": 23899, - "▁cancer": 23900, - "\"/": 23901, - "Cur": 23902, - "▁Сере": 23903, - "▁liquid": 23904, - "structure": 23905, - "▁choosing": 23906, - "▁Perl": 23907, - "Side": 23908, - "üs": 23909, - "ритор": 23910, - "▁kost": 23911, - "▁packets": 23912, - "▁которого": 23913, - "▁Comun": 23914, - "▁fingers": 23915, - "ográfica": 23916, - ">:": 23917, - "▁championnat": 23918, - "▁blieb": 23919, - "▁Situ": 23920, - "▁suic": 23921, - "andis": 23922, - "Fre": 23923, - "▁Conc": 23924, - "▁republic": 23925, - "▁armed": 23926, - "▁hell": 23927, - "▁hög": 23928, - "ragma": 23929, - "▁ense": 23930, - "▁acres": 23931, - "▁Від": 23932, - "▁Reform": 23933, - "MainActivity": 23934, - "keeper": 23935, - "erb": 23936, - "▁monaster": 23937, - "subsubsection": 23938, - "▁Див": 23939, - "▁creature": 23940, - "▁indicating": 23941, - "▁urls": 23942, - "▁kein": 23943, - "образ": 23944, - "pick": 23945, - "▁Admir": 23946, - "▁oldest": 23947, - "▁muz": 23948, - "▁contradiction": 23949, - "▁probabil": 23950, - "illiant": 23951, - "▁pav": 23952, - "▁papel": 23953, - "ubs": 23954, - "▁жена": 23955, - "AML": 23956, - "▁recip": 23957, - "▁COL": 23958, - "added": 23959, - "▁clue": 23960, - "▁Ukraine": 23961, - "▁jelent": 23962, - "чень": 23963, - "▁mathematics": 23964, - "Accept": 23965, - "▁сот": 23966, - "▁север": 23967, - "▁isolated": 23968, - "▁поя": 23969, - "wür": 23970, - "Router": 23971, - "CAT": 23972, - "rgb": 23973, - "▁Lov": 23974, - "mutable": 23975, - "▁Wes": 23976, - "▁Italien": 23977, - "Drag": 23978, - "enium": 23979, - "atting": 23980, - "tcp": 23981, - "▁erfolgte": 23982, - "▁Beit": 23983, - "гато": 23984, - "▁Systems": 23985, - "▁reserve": 23986, - "eree": 23987, - "▁Пари": 23988, - "▁зали": 23989, - "▁rent": 23990, - "▁sunt": 23991, - "▁Girls": 23992, - "▁Ernest": 23993, - "▁fits": 23994, - "▁oppon": 23995, - "▁живело": 23996, - "▁avaient": 23997, - "▁Florence": 23998, - "▁числе": 23999, - "▁engines": 24000, - "Dynamic": 24001, - "▁stycznia": 24002, - "▁bias": 24003, - "▁Exchange": 24004, - "дий": 24005, - "▁historiques": 24006, - "▁Hä": 24007, - "hod": 24008, - "▁wł": 24009, - "schap": 24010, - "▁lac": 24011, - "▁Foi": 24012, - "▁dwell": 24013, - "▁Unternehmen": 24014, - "URN": 24015, - "▁kilometres": 24016, - "▁Однако": 24017, - "кли": 24018, - "▁Sri": 24019, - "Groups": 24020, - "mind": 24021, - "oslov": 24022, - "fern": 24023, - "egu": 24024, - "abeled": 24025, - "Fiddle": 24026, - "▁Century": 24027, - "/-": 24028, - "▁Jegyzetek": 24029, - "Hen": 24030, - "ensemble": 24031, - "▁Gut": 24032, - "_{{\\": 24033, - "▁ranking": 24034, - "+$": 24035, - "ала": 24036, - "▁#{": 24037, - "imientos": 24038, - "achim": 24039, - "rides": 24040, - "▁Klaus": 24041, - "▁intend": 24042, - "▁Kentucky": 24043, - "cipe": 24044, - "▁Dienst": 24045, - "▁situated": 24046, - "▁póź": 24047, - "▁scrit": 24048, - "clip": 24049, - "нет": 24050, - "tables": 24051, - "▁Nied": 24052, - "▁McK": 24053, - "▁powst": 24054, - "▁kunnen": 24055, - "▁Evans": 24056, - "жды": 24057, - "вать": 24058, - "uchar": 24059, - "▁residents": 24060, - "iak": 24061, - "▁Resol": 24062, - "▁veces": 24063, - "▁satisfying": 24064, - "INF": 24065, - "▁син": 24066, - "▁crossing": 24067, - "iben": 24068, - "▁широ": 24069, - "pto": 24070, - "ILL": 24071, - "▁роль": 24072, - "▁aktiv": 24073, - "▁обращения": 24074, - "Wikispecies": 24075, - "▁Höhe": 24076, - "cro": 24077, - "════": 24078, - "altra": 24079, - "▁FILE": 24080, - "▁ups": 24081, - "▁allocation": 24082, - "Michael": 24083, - "▁acknowled": 24084, - "Linux": 24085, - "▁metros": 24086, - "tte": 24087, - "afen": 24088, - "▁xcode": 24089, - "▁тради": 24090, - "species": 24091, - "▁injury": 24092, - "▁самы": 24093, - "▁lattice": 24094, - "Material": 24095, - "andenburg": 24096, - "▁huvudstaden": 24097, - "story": 24098, - "▁varying": 24099, - "▁követ": 24100, - "▁Российской": 24101, - "irse": 24102, - "▁drum": 24103, - "Pressed": 24104, - "Lar": 24105, - "▁Agu": 24106, - "▁weil": 24107, - "▁commence": 24108, - "▁Según": 24109, - "Gesture": 24110, - "Shape": 24111, - "▁Vors": 24112, - "▁succès": 24113, - "▁corrected": 24114, - "Kar": 24115, - "▁cruel": 24116, - "▁politico": 24117, - "▁Schriftsteller": 24118, - "▁risult": 24119, - "etu": 24120, - "archiv": 24121, - "▁género": 24122, - "▁Lü": 24123, - "▁triumph": 24124, - "ORS": 24125, - "Lu": 24126, - "▁personnel": 24127, - "▁Hills": 24128, - "asset": 24129, - "domin": 24130, - "Receive": 24131, - "▁Oak": 24132, - "▁Kno": 24133, - "▁Theory": 24134, - "irie": 24135, - "owan": 24136, - "▁estava": 24137, - "▁executes": 24138, - "йт": 24139, - "ópez": 24140, - "поло": 24141, - "ética": 24142, - "▁название": 24143, - "▁converges": 24144, - "▁notre": 24145, - "▁populated": 24146, - "▁movements": 24147, - "▁statistical": 24148, - "▁Zweiten": 24149, - "quin": 24150, - "▁importantes": 24151, - "▁klein": 24152, - "▁Segunda": 24153, - "schließend": 24154, - "Failure": 24155, - "nar": 24156, - "dag": 24157, - "▁ruolo": 24158, - "▁fiction": 24159, - "▁использу": 24160, - "▁crisis": 24161, - "▁Getting": 24162, - ",%": 24163, - "▁армии": 24164, - "▁campus": 24165, - "▁footer": 24166, - "▁días": 24167, - "бан": 24168, - "▁liberty": 24169, - "▁gh": 24170, - "▁chamber": 24171, - "▁districts": 24172, - "▁excited": 24173, - "▁canción": 24174, - "tero": 24175, - "▁Working": 24176, - "▁części": 24177, - "льный": 24178, - "▁forum": 24179, - "▁Ehe": 24180, - "▁ката": 24181, - "itations": 24182, - "Tools": 24183, - "achiv": 24184, - "▁cres": 24185, - "asto": 24186, - "▁rever": 24187, - "▁nazionale": 24188, - "▁doors": 24189, - "▁Nancy": 24190, - "▁islands": 24191, - "Imp": 24192, - "▁Chair": 24193, - "▁vorm": 24194, - "sein": 24195, - "▁доку": 24196, - "erset": 24197, - "▁tätig": 24198, - "▁Krit": 24199, - "▁пя": 24200, - "▁conservation": 24201, - "▁Partido": 24202, - "minipage": 24203, - "Validator": 24204, - "▁recovery": 24205, - "▁NASA": 24206, - "▁breast": 24207, - "ilty": 24208, - "analy": 24209, - "elines": 24210, - "▁Saturday": 24211, - "emark": 24212, - "cej": 24213, - "Zero": 24214, - "▁Turner": 24215, - "secure": 24216, - "Exists": 24217, - "▁Rick": 24218, - "evalu": 24219, - "ctrl": 24220, - "▁compression": 24221, - "▁CURL": 24222, - "textcolor": 24223, - ")\\,": 24224, - "longrightarrow": 24225, - "▁Fernseh": 24226, - "icha": 24227, - "▁loi": 24228, - "▁Оте": 24229, - "▁cave": 24230, - "▁dozen": 24231, - "▁explaining": 24232, - "▁innov": 24233, - "▁Nicholas": 24234, - "▁diameter": 24235, - "▁Marian": 24236, - "▁fires": 24237, - "▁artifact": 24238, - "▁Parker": 24239, - "▁Bund": 24240, - "▁verte": 24241, - "▁talent": 24242, - "▁Lucas": 24243, - "reverse": 24244, - "▁folgenden": 24245, - "▁Sah": 24246, - "jections": 24247, - "▁invece": 24248, - "▁costitu": 24249, - "▁ssl": 24250, - "}}^": 24251, - "▁violent": 24252, - "▁spos": 24253, - "Rout": 24254, - "jdk": 24255, - "▁заме": 24256, - "▁furent": 24257, - "andal": 24258, - "Hom": 24259, - "▁Senior": 24260, - "▁pounds": 24261, - "▁Discogs": 24262, - "▁зе": 24263, - "'}[": 24264, - "▁Napoleon": 24265, - "ordinates": 24266, - "àn": 24267, - "▁kurz": 24268, - "▁vere": 24269, - "▁reuse": 24270, - "▁Ген": 24271, - "▁Syst": 24272, - "▁disappeared": 24273, - "▁Watch": 24274, - "bibliothek": 24275, - "▁корпу": 24276, - "▁Cs": 24277, - "▁}`": 24278, - "▁rör": 24279, - "▁дела": 24280, - "VB": 24281, - "▁calculus": 24282, - "рода": 24283, - "▁judgment": 24284, - "atile": 24285, - "▁longue": 24286, - "▁Hus": 24287, - "Jac": 24288, - "}})": 24289, - "RIPT": 24290, - "IABot": 24291, - "▁após": 24292, - "▁aston": 24293, - "Webachiv": 24294, - "▁URLs": 24295, - "▁coat": 24296, - "▁эконо": 24297, - "▁lear": 24298, - "extensions": 24299, - "▁Classic": 24300, - "TI": 24301, - "▁Tage": 24302, - "▁lá": 24303, - "▁semb": 24304, - "▁développement": 24305, - "ISTS": 24306, - "▁solves": 24307, - ",\\,": 24308, - "▁чемпі": 24309, - "ordinary": 24310, - "▁Bav": 24311, - "▁muchos": 24312, - "Self": 24313, - "▁Май": 24314, - "▁Diet": 24315, - "▁necessity": 24316, - "від": 24317, - "▁mano": 24318, - "▁Ср": 24319, - "▁carre": 24320, - "▁Camera": 24321, - "▁Narod": 24322, - "▁Phone": 24323, - "▁polym": 24324, - "imore": 24325, - "isEmpty": 24326, - "▁Houston": 24327, - "▁Rece": 24328, - "▁presentation": 24329, - "ниципа": 24330, - "▁Db": 24331, - "▁confident": 24332, - "▁}{": 24333, - "▁bullet": 24334, - "▁{},": 24335, - "ANGE": 24336, - "▁Notre": 24337, - "chin": 24338, - "▁Dragon": 24339, - "erca": 24340, - "iali": 24341, - "▁asset": 24342, - "▁muito": 24343, - "▁deeply": 24344, - "▁restriction": 24345, - "▁commerce": 24346, - "▁Bomb": 24347, - "caught": 24348, - "qq": 24349, - "▁Arag": 24350, - "▁немец": 24351, - "▁Analysis": 24352, - "▁článku": 24353, - "▁baby": 24354, - "▁echter": 24355, - "▁одного": 24356, - "жена": 24357, - "▁whitespace": 24358, - "çu": 24359, - "LIST": 24360, - "frique": 24361, - "▁varias": 24362, - "▁Wit": 24363, - "▁Licencia": 24364, - "Exit": 24365, - "▁sierp": 24366, - "▁assemb": 24367, - "▁splitting": 24368, - "▁palace": 24369, - "▁blocked": 24370, - "▁boundaries": 24371, - "▁iterations": 24372, - "▁Rotten": 24373, - "▁Verkehr": 24374, - "▁weer": 24375, - "Tests": 24376, - "ifting": 24377, - "▁regul": 24378, - "▁persist": 24379, - "▁Solution": 24380, - "pb": 24381, - "▁collapse": 24382, - "▁arrested": 24383, - "▁predicate": 24384, - "▁Zone": 24385, - "▁ingen": 24386, - "zález": 24387, - "▁banks": 24388, - "plant": 24389, - "▁Nella": 24390, - "▁бан": 24391, - "▁Snow": 24392, - "▁Kreuz": 24393, - "ício": 24394, - "▁enters": 24395, - "▁expose": 24396, - "či": 24397, - "шие": 24398, - "Qual": 24399, - "▁landscape": 24400, - "▁подацима": 24401, - "mai": 24402, - "stag": 24403, - "ований": 24404, - "DEF": 24405, - "[]{": 24406, - "▁dernière": 24407, - "icut": 24408, - "▁Xml": 24409, - "▁subgroup": 24410, - "▁Polsce": 24411, - "▁Warning": 24412, - "▁vehicles": 24413, - "iot": 24414, - "▁dll": 24415, - "ront": 24416, - "▁Louise": 24417, - "▁ara": 24418, - "▁Scala": 24419, - "▁canonical": 24420, - "▁placing": 24421, - "ERY": 24422, - "▁Jag": 24423, - "▁virus": 24424, - "emu": 24425, - "▁});\r": 24426, - "▁мм": 24427, - "▁Trying": 24428, - "▁Lexikon": 24429, - "abord": 24430, - "▁expedition": 24431, - "▁demanded": 24432, - "Zyg": 24433, - "lein": 24434, - "▁verwendet": 24435, - "рина": 24436, - "wol": 24437, - "▁pivot": 24438, - "▁однако": 24439, - "▁propriet": 24440, - "▁awards": 24441, - "tout": 24442, - "▁assim": 24443, - "▁Storm": 24444, - "Limit": 24445, - "elin": 24446, - "wealth": 24447, - "uez": 24448, - "▁rappresent": 24449, - "▁resta": 24450, - "▁gegründet": 24451, - "▁journalist": 24452, - "isie": 24453, - "▁facility": 24454, - "illed": 24455, - "ulk": 24456, - "▁PK": 24457, - "Anchor": 24458, - "▁_)": 24459, - "VF": 24460, - "LAB": 24461, - "▁nå": 24462, - "odos": 24463, - "▁billion": 24464, - "virti": 24465, - "▁Jeux": 24466, - "юза": 24467, - "tomcat": 24468, - "▁charts": 24469, - "▁Bundle": 24470, - "▁lst": 24471, - "▁exer": 24472, - "▁females": 24473, - "▁obliged": 24474, - "▁aby": 24475, - "rolled": 24476, - "dri": 24477, - "▁Sche": 24478, - "▁vessels": 24479, - "IMARY": 24480, - "▁reasoning": 24481, - "▁проте": 24482, - "FILES": 24483, - "verk": 24484, - "osos": 24485, - "▁комму": 24486, - "дії": 24487, - "▁dd": 24488, - "▁соответ": 24489, - "▁IOException": 24490, - "ských": 24491, - "▁CLI": 24492, - "▁ње": 24493, - "CM": 24494, - "TD": 24495, - "▁possibilities": 24496, - "▁Compos": 24497, - "half": 24498, - "▁webpage": 24499, - "▁swing": 24500, - "▁zas": 24501, - "▁cycl": 24502, - "leid": 24503, - "istica": 24504, - "▁Insert": 24505, - "▁Sweden": 24506, - "▁wanting": 24507, - "▁ال": 24508, - "▁eeuw": 24509, - "▁Administr": 24510, - "▁Warren": 24511, - "▁bs": 24512, - "▁pam": 24513, - "anus": 24514, - "Dra": 24515, - "expl": 24516, - "▁Kant": 24517, - "▁Austin": 24518, - "▁csak": 24519, - "▁theatre": 24520, - "▁compatibility": 24521, - "матиче": 24522, - "setState": 24523, - "бю": 24524, - "}{|": 24525, - "▁Dy": 24526, - "▁Zwischen": 24527, - "Alt": 24528, - "CLARE": 24529, - "steps": 24530, - "▁Lage": 24531, - "▁Mitt": 24532, - "▁Dublin": 24533, - "▁работы": 24534, - "deep": 24535, - "▁flows": 24536, - "▁Palace": 24537, - "unix": 24538, - "refs": 24539, - "umar": 24540, - "aset": 24541, - "cov": 24542, - "▁ping": 24543, - "▁Safari": 24544, - "flug": 24545, - "creens": 24546, - "{#": 24547, - "▁реа": 24548, - "adors": 24549, - "▁amor": 24550, - "uce": 24551, - "demic": 24552, - "▁Netherlands": 24553, - "▁clusters": 24554, - "▁enfor": 24555, - "marine": 24556, - "▁bugs": 24557, - "izzata": 24558, - "▁scra": 24559, - "Les": 24560, - "quick": 24561, - "▁turno": 24562, - "_*": 24563, - "ера": 24564, - "Generated": 24565, - ">[": 24566, - "▁estre": 24567, - "orde": 24568, - "▁verg": 24569, - "роз": 24570, - "▁pau": 24571, - "includes": 24572, - "assa": 24573, - "aders": 24574, - "▁Герма": 24575, - "▁estaven": 24576, - "▁earliest": 24577, - "▁resultado": 24578, - "mun": 24579, - "▁plots": 24580, - "din": 24581, - "sorted": 24582, - "▁preference": 24583, - "rió": 24584, - "туре": 24585, - "▁Ligue": 24586, - "▁завер": 24587, - "phr": 24588, - "▁pocket": 24589, - "▁parl": 24590, - "▁lak": 24591, - "▁powie": 24592, - "▁altres": 24593, - "$};": 24594, - "plain": 24595, - "▁Cred": 24596, - "itza": 24597, - "perp": 24598, - "Green": 24599, - "▁devoted": 24600, - "production": 24601, - "worker": 24602, - "elsen": 24603, - "▁vern": 24604, - "▁március": 24605, - "▁Confeder": 24606, - "▁Liverpool": 24607, - "▁музи": 24608, - "▁emails": 24609, - "▁distances": 24610, - "▁segments": 24611, - "▁anth": 24612, - "▁wrest": 24613, - "▁hoog": 24614, - "▁cinema": 24615, - "rror": 24616, - "▁geboren": 24617, - "▁éc": 24618, - "Marker": 24619, - "▁Compet": 24620, - "▁листо": 24621, - "allowed": 24622, - "volume": 24623, - "Espagne": 24624, - "Ze": 24625, - "▁fixes": 24626, - "▁rond": 24627, - "▁arrangement": 24628, - "/~": 24629, - ".](": 24630, - "▁Források": 24631, - "▁weiteren": 24632, - "excel": 24633, - "▁змі": 24634, - "▁moderne": 24635, - "English": 24636, - "▁Transfermarkt": 24637, - "▁bearing": 24638, - "▁cleared": 24639, - "▁сам": 24640, - "▁divs": 24641, - "ći": 24642, - "▁этой": 24643, - "▁Геор": 24644, - "scene": 24645, - "▁ages": 24646, - "GEN": 24647, - "rän": 24648, - "▁Toul": 24649, - "▁Abs": 24650, - "ját": 24651, - "▁mediante": 24652, - "▁empres": 24653, - "▁Employee": 24654, - "▁polynomials": 24655, - "▁optimize": 24656, - "▁выступа": 24657, - "fare": 24658, - "вей": 24659, - "xf": 24660, - "quez": 24661, - "▁botan": 24662, - "▁defend": 24663, - "▁Quart": 24664, - "Mont": 24665, - "vb": 24666, - "tick": 24667, - "WD": 24668, - "mine": 24669, - "▁modific": 24670, - "notification": 24671, - "▁denn": 24672, - "▁algo": 24673, - "▁Spo": 24674, - "▁mistrzost": 24675, - "/:": 24676, - "▁apresent": 24677, - "▁прод": 24678, - "Volume": 24679, - "ską": 24680, - "protected": 24681, - "▁Turkish": 24682, - "azy": 24683, - "▁pouv": 24684, - "▁período": 24685, - "skog": 24686, - "▁entropy": 24687, - "zed": 24688, - "тори": 24689, - "▁lij": 24690, - "boards": 24691, - "▁стату": 24692, - "Bool": 24693, - "▁polity": 24694, - "@\",": 24695, - "▁рік": 24696, - "née": 24697, - "▁Zug": 24698, - "▁Uniti": 24699, - "émet": 24700, - "atience": 24701, - "dimen": 24702, - "▁Steven": 24703, - "Ha": 24704, - "ACTION": 24705, - "▁wand": 24706, - "▁Navar": 24707, - "▁січня": 24708, - "Watch": 24709, - "▁Stuart": 24710, - "▁zde": 24711, - "▁контро": 24712, - "dataset": 24713, - "yó": 24714, - "▁Bush": 24715, - "▁себя": 24716, - "▁worthy": 24717, - "▁Ble": 24718, - "▁propor": 24719, - "▁Village": 24720, - "▁ry": 24721, - "▁voit": 24722, - "▁копия": 24723, - "▁zp": 24724, - "▁cura": 24725, - "▁Html": 24726, - "▁Dieser": 24727, - "▁Days": 24728, - "onnes": 24729, - "▁antigu": 24730, - "▁Staaten": 24731, - "▁faint": 24732, - "ongs": 24733, - "▁öst": 24734, - "Redirect": 24735, - "ель": 24736, - "atorial": 24737, - "▁bother": 24738, - "EditText": 24739, - "▁Giul": 24740, - "▁заво": 24741, - "▁pueblo": 24742, - "▁Mississippi": 24743, - "jak": 24744, - "▁wings": 24745, - "onc": 24746, - "ível": 24747, - "iencia": 24748, - "entlicht": 24749, - "▁BTW": 24750, - "ornal": 24751, - "▁Коро": 24752, - "▁одним": 24753, - "▁salv": 24754, - "▁finden": 24755, - "geo": 24756, - "▁авиа": 24757, - "attung": 24758, - "viv": 24759, - "▁Luther": 24760, - "▁общи": 24761, - "▁Rolle": 24762, - "▁Abraham": 24763, - "▁centered": 24764, - "▁slash": 24765, - "isat": 24766, - "emann": 24767, - "Os": 24768, - "парта": 24769, - "▁Pablo": 24770, - "▁collaboration": 24771, - "paths": 24772, - "édition": 24773, - "▁viewed": 24774, - "▁consisted": 24775, - "▁recovered": 24776, - "▁Mexican": 24777, - "▁Fix": 24778, - "▁spell": 24779, - "Special": 24780, - "▁Ст": 24781, - "esseur": 24782, - "▁Украины": 24783, - "former": 24784, - "▁św": 24785, - "▁zeros": 24786, - "▁Straßen": 24787, - "▁organisation": 24788, - "üssen": 24789, - "▁Sierra": 24790, - "▁Season": 24791, - "▁volont": 24792, - "BeanFactory": 24793, - "▁помощ": 24794, - "▁pressing": 24795, - "▁equivalence": 24796, - "▁catt": 24797, - "icity": 24798, - "▁accomplished": 24799, - "▁yo": 24800, - "▁sic": 24801, - "▁imports": 24802, - "▁accommod": 24803, - "▁Porto": 24804, - "▁яка": 24805, - "▁loan": 24806, - "тики": 24807, - "▁checkout": 24808, - "▁assess": 24809, - "▁Population": 24810, - "urent": 24811, - "clojure": 24812, - "▁Santos": 24813, - "▁információ": 24814, - "POS": 24815, - "▁gare": 24816, - "▁kick": 24817, - "▁radical": 24818, - "▁Peace": 24819, - "▁streaming": 24820, - "camp": 24821, - "ząt": 24822, - "говор": 24823, - "▁Regierung": 24824, - "▁proceeded": 24825, - "fm": 24826, - "лены": 24827, - "▁earnest": 24828, - "▁Parad": 24829, - "requests": 24830, - "▁Raum": 24831, - "šč": 24832, - "▁policies": 24833, - "▁Tig": 24834, - "▁sitt": 24835, - "▁Energy": 24836, - "▁purely": 24837, - "▁Haut": 24838, - "▁Speed": 24839, - "bio": 24840, - "▁orange": 24841, - "▁biggest": 24842, - "▁britannique": 24843, - "▁Notable": 24844, - "vu": 24845, - "лении": 24846, - "бин": 24847, - "▁Nash": 24848, - "щение": 24849, - "▁ciel": 24850, - "adémie": 24851, - "▁грудня": 24852, - "▁joue": 24853, - "▁voted": 24854, - "rico": 24855, - "▁гор": 24856, - "▁команду": 24857, - "itivity": 24858, - "▁ще": 24859, - "▁definite": 24860, - "uropa": 24861, - "!\");": 24862, - "Defaults": 24863, - "▁некоторы": 24864, - "édération": 24865, - "▁silly": 24866, - "▁talked": 24867, - "reu": 24868, - "▁Lomb": 24869, - "▁statue": 24870, - "кта": 24871, - "юр": 24872, - "umably": 24873, - "▁городе": 24874, - "▁Runtime": 24875, - "▁diagn": 24876, - "▁retro": 24877, - "▁Sverige": 24878, - "▁inicial": 24879, - "ienza": 24880, - "▁figlio": 24881, - "▁zog": 24882, - "▁rey": 24883, - "▁Rund": 24884, - "тный": 24885, - "▁ceased": 24886, - "erno": 24887, - "▁esa": 24888, - "▁trouv": 24889, - "▁Gemeinden": 24890, - "▁comercial": 24891, - "skap": 24892, - "enario": 24893, - "▁juris": 24894, - "TB": 24895, - "нала": 24896, - "▁vij": 24897, - "VO": 24898, - "▁clin": 24899, - "jör": 24900, - "сан": 24901, - "owała": 24902, - "ribución": 24903, - "▁ursprüng": 24904, - "▁condem": 24905, - "▁Stage": 24906, - "▁mixing": 24907, - "▁різ": 24908, - "▁fans": 24909, - "ház": 24910, - "social": 24911, - "zan": 24912, - "▁свой": 24913, - "Cookie": 24914, - "▁Roland": 24915, - "azionale": 24916, - "▁Sloven": 24917, - "▁Fiche": 24918, - "▁Sé": 24919, - "hä": 24920, - "▁officials": 24921, - "▁înt": 24922, - "Interceptor": 24923, - "Tables": 24924, - "▁davon": 24925, - "initialize": 24926, - "]=\"": 24927, - "▁Body": 24928, - "▁Upper": 24929, - "▁Collect": 24930, - "▁Zürich": 24931, - "Horizontal": 24932, - "Typ": 24933, - "▁político": 24934, - "▁RewriteCond": 24935, - "▁hoped": 24936, - "▁anxious": 24937, - "Liter": 24938, - "jahr": 24939, - "▁assemble": 24940, - "▁crypt": 24941, - "lahoma": 24942, - "ASH": 24943, - "▁Бри": 24944, - "▁Cic": 24945, - "twitter": 24946, - "hyper": 24947, - "▁Tell": 24948, - "ільки": 24949, - "вобо": 24950, - "▁bazie": 24951, - "▁contemporary": 24952, - "▁Parameter": 24953, - "stwa": 24954, - "▁bekend": 24955, - "cock": 24956, - "previous": 24957, - "enska": 24958, - "▁caller": 24959, - "]])": 24960, - "▁Raz": 24961, - "▁Selon": 24962, - "▁proposal": 24963, - "▁bý": 24964, - "▁Sied": 24965, - "▁Arbeits": 24966, - "▁pride": 24967, - "▁slope": 24968, - "idé": 24969, - "gradient": 24970, - "▁Джерела": 24971, - "▁SH": 24972, - "▁разрабо": 24973, - "iversity": 24974, - "сподар": 24975, - "\\{\\": 24976, - "▁стали": 24977, - "▁Einzel": 24978, - "▁rgba": 24979, - "▁Anim": 24980, - "▁alles": 24981, - "бар": 24982, - "erte": 24983, - "▁réalisé": 24984, - "Institut": 24985, - "▁markup": 24986, - "▁vars": 24987, - "▁gam": 24988, - "▁Василь": 24989, - "izza": 24990, - "▁Cob": 24991, - "▁Metal": 24992, - "▁leak": 24993, - "▁Lanc": 24994, - "Switch": 24995, - "Delay": 24996, - "atuur": 24997, - "▁четы": 24998, - "▁англий": 24999, - "▁legacy": 25000, - "▁desarroll": 25001, - "▁topological": 25002, - "▁jeweils": 25003, - "▁Nederlandse": 25004, - "▁atmosphere": 25005, - "urban": 25006, - "▁slov": 25007, - "▁lawyer": 25008, - "pecially": 25009, - "▁alternate": 25010, - "▁paramet": 25011, - "▁establishment": 25012, - "▁woods": 25013, - "PD": 25014, - "▁наи": 25015, - "▁mang": 25016, - "▁wechselte": 25017, - "ську": 25018, - ".=": 25019, - "▁fifteen": 25020, - "SUM": 25021, - "▁Fro": 25022, - "▁LED": 25023, - "owano": 25024, - "ствие": 25025, - "▁Données": 25026, - "tol": 25027, - "żyn": 25028, - "cref": 25029, - "ствии": 25030, - "horn": 25031, - "▁сооб": 25032, - "▁оборо": 25033, - "▁Complete": 25034, - "“)": 25035, - "▁kindly": 25036, - "▁Chamber": 25037, - "ség": 25038, - "WH": 25039, - "▁ambient": 25040, - "кро": 25041, - "▁cheval": 25042, - "▁написа": 25043, - "flu": 25044, - "▁Offiz": 25045, - "mate": 25046, - "natural": 25047, - "separ": 25048, - "empre": 25049, - "ViewHolder": 25050, - "fw": 25051, - "▁letech": 25052, - "▁trailing": 25053, - "atri": 25054, - "▁Gó": 25055, - "▁Bonn": 25056, - "▁unlikely": 25057, - "RAM": 25058, - "enst": 25059, - "Stats": 25060, - "▁политиче": 25061, - ")--(": 25062, - "▁trom": 25063, - "!...": 25064, - "▁Meanwhile": 25065, - "стана": 25066, - "▁Reino": 25067, - "▁Arist": 25068, - "$}}%": 25069, - "▁solem": 25070, - "closure": 25071, - "ignation": 25072, - "łod": 25073, - "▁divor": 25074, - "▁международ": 25075, - "=\"": 25230, - "Orientation": 25231, - "cid": 25232, - "Cart": 25233, - "▁murm": 25234, - "▁assez": 25235, - "▁linking": 25236, - "building": 25237, - "▁reconna": 25238, - "▁shook": 25239, - "managed": 25240, - "landa": 25241, - "▁León": 25242, - "▁création": 25243, - "дой": 25244, - "ocity": 25245, - "▁wij": 25246, - "▁wieś": 25247, - "xtart": 25248, - "▁Move": 25249, - "lungen": 25250, - "ствует": 25251, - "orney": 25252, - "optional": 25253, - "macro": 25254, - "Condition": 25255, - "▁squares": 25256, - "▁mistaken": 25257, - "ánt": 25258, - "▁Ris": 25259, - "▁sentences": 25260, - "erea": 25261, - "▁mij": 25262, - "Und": 25263, - "▁nombr": 25264, - "zA": 25265, - "▁Independent": 25266, - "▁preview": 25267, - "imas": 25268, - "▁males": 25269, - "inental": 25270, - "Thank": 25271, - "▁popol": 25272, - "▁pover": 25273, - "▁grasp": 25274, - "▁imped": 25275, - "▁campionato": 25276, - "▁Wei": 25277, - "▁titled": 25278, - "▁Además": 25279, - "▁Password": 25280, - "▁Pam": 25281, - "UILD": 25282, - "▁липня": 25283, - "werb": 25284, - "................": 25285, - "▁Río": 25286, - "▁teeth": 25287, - "bp": 25288, - "▁SW": 25289, - "ulaire": 25290, - "▁seized": 25291, - "▁Stef": 25292, - "úl": 25293, - "▁viz": 25294, - "iony": 25295, - "▁junt": 25296, - "▁která": 25297, - "▁września": 25298, - "<>": 25299, - "▁surg": 25300, - "▁tutte": 25301, - "▁Hob": 25302, - "повід": 25303, - "▁wohl": 25304, - "▁trag": 25305, - "▁Crown": 25306, - "▁trova": 25307, - "стову": 25308, - "▁Vienna": 25309, - "esehen": 25310, - "▁metropol": 25311, - "▁reflected": 25312, - "тета": 25313, - "▁traduc": 25314, - "▁Bast": 25315, - "▁erschien": 25316, - "woord": 25317, - "()\"": 25318, - "talet": 25319, - "▁roads": 25320, - "ведения": 25321, - "ührung": 25322, - "▁cogn": 25323, - "▁Valle": 25324, - "▁landing": 25325, - "▁Regex": 25326, - "▁Iowa": 25327, - "dział": 25328, - "▁erreichte": 25329, - "aum": 25330, - "▁founder": 25331, - "apolis": 25332, - "Compiler": 25333, - "▁kop": 25334, - "▁marc": 25335, - "▁територ": 25336, - "))`": 25337, - "▁lei": 25338, - "geon": 25339, - "▁weapons": 25340, - "▁horn": 25341, - "▁elif": 25342, - "▁Capital": 25343, - "će": 25344, - "▁forall": 25345, - "▁эта": 25346, - "preview": 25347, - "▁DNA": 25348, - "▁sid": 25349, - "orch": 25350, - "▁Ras": 25351, - "▁arab": 25352, - "Best": 25353, - "▁счита": 25354, - "▁López": 25355, - "ança": 25356, - "▁funkc": 25357, - "▁tienen": 25358, - ";&": 25359, - "museum": 25360, - "▁Err": 25361, - "▁resort": 25362, - "Nov": 25363, - "▁kal": 25364, - "MW": 25365, - "шь": 25366, - "anchor": 25367, - "▁роман": 25368, - "leading": 25369, - "▁manten": 25370, - "▁Silva": 25371, - "dade": 25372, - "▁designated": 25373, - "▁revista": 25374, - "Oct": 25375, - "percent": 25376, - "▁уні": 25377, - "identifier": 25378, - "mass": 25379, - "@@": 25380, - "ulsion": 25381, - "germeister": 25382, - "▁predicted": 25383, - "▁сви": 25384, - "жной": 25385, - "▁Ergeb": 25386, - "▁cust": 25387, - "▁removes": 25388, - "charg": 25389, - "пример": 25390, - "▁forming": 25391, - "asma": 25392, - "stdout": 25393, - "Fun": 25394, - "yme": 25395, - "tered": 25396, - "ursive": 25397, - "ighed": 25398, - "▁след": 25399, - "verband": 25400, - "▁LOG": 25401, - "rams": 25402, - "éon": 25403, - "endra": 25404, - "▁Bereich": 25405, - "▁temporal": 25406, - "▁langue": 25407, - "▁Inn": 25408, - "▁moreover": 25409, - "▁tutorials": 25410, - "Middle": 25411, - "▁советский": 25412, - "▁maintenance": 25413, - "asures": 25414, - "▁válto": 25415, - "BASE": 25416, - "▁disappear": 25417, - "ския": 25418, - "▁conocido": 25419, - "▁Нау": 25420, - "▁Libert": 25421, - "▁Harold": 25422, - "▁lifetime": 25423, - "▁Tür": 25424, - "▁zawod": 25425, - "omic": 25426, - "▁Retrieved": 25427, - "architecture": 25428, - "čka": 25429, - "iformes": 25430, - "development": 25431, - "ordnung": 25432, - "Inf": 25433, - "leben": 25434, - "▁Stars": 25435, - "signal": 25436, - "▁grammar": 25437, - "▁corso": 25438, - "▁Wagner": 25439, - "▁geht": 25440, - "▁royale": 25441, - "warn": 25442, - "umbled": 25443, - "▁instit": 25444, - "▁Ши": 25445, - "hh": 25446, - "▁refuge": 25447, - "▁favorite": 25448, - "ierto": 25449, - "▁condado": 25450, - "▁Ther": 25451, - "▁человека": 25452, - "▁Food": 25453, - "▁seizo": 25454, - "▁Initialize": 25455, - "▁connu": 25456, - "▁overlap": 25457, - "▁Emil": 25458, - "▁Martí": 25459, - "▁жовтня": 25460, - "erva": 25461, - "▁boats": 25462, - "ações": 25463, - "▁derrot": 25464, - "▁malloc": 25465, - "▁conject": 25466, - "jk": 25467, - "▁sare": 25468, - "лемен": 25469, - "▁sums": 25470, - "Authorization": 25471, - "▁Kun": 25472, - "]$,": 25473, - "gemeinde": 25474, - "odot": 25475, - "defin": 25476, - "▁emission": 25477, - "▁Крас": 25478, - "▁appart": 25479, - "▁stopping": 25480, - "▁Сред": 25481, - "▁conjug": 25482, - "▁insight": 25483, - "▁Broadcast": 25484, - "▁PMID": 25485, - "▁advantages": 25486, - "enes": 25487, - "▁residence": 25488, - "ljen": 25489, - "isseur": 25490, - "▁pubblicato": 25491, - "▁GitHub": 25492, - "▁Peru": 25493, - "▁galaxies": 25494, - "▁annotations": 25495, - "gas": 25496, - "▁répond": 25497, - "Js": 25498, - "▁independently": 25499, - "NP": 25500, - "▁inqu": 25501, - "▁grounds": 25502, - "Components": 25503, - "▁anten": 25504, - "▁вз": 25505, - "▁hos": 25506, - "▁sint": 25507, - "▁hiding": 25508, - "▁województ": 25509, - "Messages": 25510, - "▁показа": 25511, - "===": 25512, - "▁Abstract": 25513, - "▁läng": 25514, - "▁Formula": 25515, - "dawn": 25516, - "▁designs": 25517, - "Img": 25518, - "▁Portuguese": 25519, - "▁incluy": 25520, - "avigator": 25521, - "▁Brothers": 25522, - "▁continent": 25523, - "▁evidently": 25524, - "race": 25525, - "цького": 25526, - "▁reck": 25527, - "▁серпня": 25528, - "▁Grey": 25529, - "▁appeal": 25530, - "▁unlike": 25531, - "▁powershell": 25532, - "▁racc": 25533, - "fers": 25534, - "▁burning": 25535, - "fasst": 25536, - "installed": 25537, - "▁Give": 25538, - "▁colonial": 25539, - "▁€": 25540, - "▁Rö": 25541, - "▁christ": 25542, - "nehm": 25543, - "там": 25544, - "▁corpo": 25545, - "▁convirti": 25546, - "yter": 25547, - "Sym": 25548, - "▁Greece": 25549, - "▁moth": 25550, - "▁Johan": 25551, - "▁monarch": 25552, - "▁Download": 25553, - "▁craft": 25554, - "už": 25555, - "▁Luke": 25556, - "▁suffix": 25557, - "\\/": 25558, - "Have": 25559, - "▁карь": 25560, - "▁comfortable": 25561, - "▁tips": 25562, - "▁Після": 25563, - "▁броја": 25564, - "▁информа": 25565, - "MQ": 25566, - "бран": 25567, - "▁tx": 25568, - "▁slaves": 25569, - "▁firewall": 25570, - "▁Forces": 25571, - "atif": 25572, - "▁Quellen": 25573, - "▁théâtre": 25574, - "льных": 25575, - "▁расположен": 25576, - "▁Details": 25577, - "ką": 25578, - "▁longitud": 25579, - "INST": 25580, - "▁naval": 25581, - "Fernseh": 25582, - "essel": 25583, - "Grad": 25584, - "▁belang": 25585, - "▁aggi": 25586, - "ZygoteInit": 25587, - "łów": 25588, - "▁Sug": 25589, - "sil": 25590, - "▁exterior": 25591, - "щі": 25592, - "ORD": 25593, - "enser": 25594, - "▁rapide": 25595, - "▁темпера": 25596, - "incie": 25597, - "Si": 25598, - "avam": 25599, - "arded": 25600, - "▁Added": 25601, - "Endpoint": 25602, - "hardt": 25603, - "стран": 25604, - "▁estilo": 25605, - "▁Haz": 25606, - "▁musste": 25607, - "uo": 25608, - "iii": 25609, - "▁ří": 25610, - "anzen": 25611, - "жений": 25612, - "aha": 25613, - "ARNING": 25614, - "▁renov": 25615, - "▁divine": 25616, - "▁convinced": 25617, - "▁humans": 25618, - "▁departure": 25619, - "▁Mediter": 25620, - "qa": 25621, - "▁possessed": 25622, - "▁церкви": 25623, - "giv": 25624, - "▁свої": 25625, - "▁Ortste": 25626, - "Rich": 25627, - "puis": 25628, - "increment": 25629, - "▁Hannover": 25630, - "▁ucz": 25631, - "Done": 25632, - "▁alguns": 25633, - "FIX": 25634, - "▁Heritage": 25635, - "removeClass": 25636, - "фер": 25637, - "▁abc": 25638, - "Dr": 25639, - "▁семей": 25640, - "{:": 25641, - "▁seule": 25642, - "zeichnungen": 25643, - "addy": 25644, - "▁París": 25645, - "üsseld": 25646, - "▁reception": 25647, - "folio": 25648, - "tiny": 25649, - "▁recensement": 25650, - "▁Nur": 25651, - "▁kier": 25652, - "▁gmina": 25653, - "staat": 25654, - "ándose": 25655, - "ческая": 25656, - "▁speaker": 25657, - "▁exponential": 25658, - "▁Dieu": 25659, - "▁приз": 25660, - "▁Rafael": 25661, - "▁ggplot": 25662, - "▁Template": 25663, - "oure": 25664, - "▁Inner": 25665, - "ogne": 25666, - "igare": 25667, - "▁Arte": 25668, - "▁Cov": 25669, - "▁aufgrund": 25670, - "▁Бы": 25671, - "▁ceremony": 25672, - "▁Spart": 25673, - "jective": 25674, - "yi": 25675, - "▁inizi": 25676, - "▁latin": 25677, - "▁Nevertheless": 25678, - "▁Done": 25679, - "тря": 25680, - "▁Arr": 25681, - "season": 25682, - "▁складу": 25683, - "▁podczas": 25684, - "▁Beautiful": 25685, - "▁Weltkrieg": 25686, - "▁зо": 25687, - "▁overcome": 25688, - "▁Praha": 25689, - "▁району": 25690, - "▁subscription": 25691, - "igent": 25692, - "▁пока": 25693, - "latex": 25694, - "▁beach": 25695, - "▁роках": 25696, - "geg": 25697, - "▁probl": 25698, - "arguments": 25699, - "▁organizations": 25700, - "▁Nan": 25701, - "▁stones": 25702, - "▁Hunter": 25703, - "▁regularly": 25704, - "шого": 25705, - "▁flexible": 25706, - "opts": 25707, - "ář": 25708, - "witz": 25709, - "▁')": 25710, - "PASS": 25711, - "▁kraj": 25712, - "▁fake": 25713, - "heits": 25714, - "osph": 25715, - "parseInt": 25716, - "FALSE": 25717, - "▁profess": 25718, - "people": 25719, - "▁precip": 25720, - "dirname": 25721, - "▁perpet": 25722, - "▁Updated": 25723, - "rayed": 25724, - "▁provoc": 25725, - "▁травня": 25726, - "▁categorie": 25727, - "▁тео": 25728, - "сну": 25729, - "otr": 25730, - "▁Верхов": 25731, - "▁compét": 25732, - "Cost": 25733, - "▁wider": 25734, - "▁Obviously": 25735, - "писан": 25736, - "▁настоя": 25737, - "▁seeking": 25738, - "()),": 25739, - "▁équipe": 25740, - "▁commits": 25741, - "▁Svens": 25742, - "ябре": 25743, - "atern": 25744, - "▁heter": 25745, - "▁Bootstrap": 25746, - "éné": 25747, - "▁derivatives": 25748, - "▁Detroit": 25749, - "▁provincial": 25750, - "onomie": 25751, - "EB": 25752, - "▁cuer": 25753, - "▁относи": 25754, - "▁ней": 25755, - ")».": 25756, - "▁Ciudad": 25757, - "IAL": 25758, - "zyst": 25759, - ")\")": 25760, - "▁Alc": 25761, - "blogs": 25762, - "▁parmi": 25763, - "▁Albums": 25764, - "▁Boliv": 25765, - "▁clés": 25766, - "Products": 25767, - "uerdo": 25768, - "▁gelang": 25769, - "znik": 25770, - "hagen": 25771, - "anonymous": 25772, - "▁svg": 25773, - "▁Conseil": 25774, - "▁Ari": 25775, - "coli": 25776, - "▁czy": 25777, - "▁CV": 25778, - "▁ford": 25779, - "▁Außer": 25780, - "▁CI": 25781, - "▁tempt": 25782, - "▁Organisation": 25783, - "áš": 25784, - "▁cycles": 25785, - "▁geslacht": 25786, - "▁людей": 25787, - "ými": 25788, - "▁Spieler": 25789, - "efe": 25790, - "▁Marvel": 25791, - "▁portal": 25792, - "▁Серг": 25793, - "▁grado": 25794, - "▁handlers": 25795, - "▁Interface": 25796, - "AME": 25797, - "▁seriously": 25798, - "▁Binding": 25799, - "▁Rang": 25800, - "▁nada": 25801, - "oce": 25802, - "▁integra": 25803, - "ocracy": 25804, - "▁альбо": 25805, - "▁stability": 25806, - "Uns": 25807, - "▁veter": 25808, - "------+": 25809, - "▁serait": 25810, - "▁omitted": 25811, - "▁uncertainty": 25812, - "onian": 25813, - "▁resto": 25814, - "▁желез": 25815, - "▁одной": 25816, - "▁Bevölkerung": 25817, - "▁Kraft": 25818, - "стр": 25819, - "▁Moscow": 25820, - "lane": 25821, - "arab": 25822, - "▁spole": 25823, - "▁своего": 25824, - "?:": 25825, - "START": 25826, - "▁интер": 25827, - "▁sympt": 25828, - "▁Lorenzo": 25829, - "▁ejec": 25830, - "▁prosper": 25831, - "DAT": 25832, - "лимпий": 25833, - "▁shapes": 25834, - "valueOf": 25835, - "▁associate": 25836, - "▁Medien": 25837, - "ENV": 25838, - "▁сре": 25839, - "▁државе": 25840, - "▁theories": 25841, - "heb": 25842, - "▁Wayne": 25843, - "▁StringBuilder": 25844, - "iwers": 25845, - "▁Maps": 25846, - "Phys": 25847, - "\\}\\": 25848, - "▁Parte": 25849, - "▁Hudson": 25850, - "лон": 25851, - "Lng": 25852, - "▁ры": 25853, - "стей": 25854, - "lau": 25855, - "ancer": 25856, - "▁Coppa": 25857, - "▁війсь": 25858, - "▁ucc": 25859, - "▁Pattern": 25860, - "▁garbage": 25861, - "▁González": 25862, - "▁Encyclop": 25863, - "etten": 25864, - "External": 25865, - "REF": 25866, - ">;": 25867, - "lijke": 25868, - "▁intersect": 25869, - "▁Unless": 25870, - "▁deeper": 25871, - "▁жі": 25872, - "dent": 25873, - "lef": 25874, - "▁chanson": 25875, - "▁diffus": 25876, - "▁primi": 25877, - "▁Wieder": 25878, - "▁aws": 25879, - "owana": 25880, - "▁sociale": 25881, - "ikk": 25882, - "льной": 25883, - "▁divisions": 25884, - "лосо": 25885, - "▁Claud": 25886, - "▁Ya": 25887, - "▁voce": 25888, - "▁Branch": 25889, - "▁fitted": 25890, - "orr": 25891, - "ôtel": 25892, - "stroke": 25893, - "listener": 25894, - "iman": 25895, - "восто": 25896, - "▁Shah": 25897, - "Introduction": 25898, - "▁newline": 25899, - "▁tile": 25900, - "']))": 25901, - "▁travaux": 25902, - "CONFIG": 25903, - "▁quadratic": 25904, - "onneur": 25905, - "▁Giorg": 25906, - "▁identific": 25907, - "éricaine": 25908, - "▁UIView": 25909, - "▁Liberal": 25910, - "▁Koch": 25911, - "▁Berliner": 25912, - "▁notifications": 25913, - "▁Susan": 25914, - "▁cadre": 25915, - "▁Kloster": 25916, - "▁examine": 25917, - "▁един": 25918, - "▁UNION": 25919, - "▁alten": 25920, - "▁finit": 25921, - "▁pedig": 25922, - "cyk": 25923, - "▁mouvement": 25924, - "IOS": 25925, - "▁британ": 25926, - "▁bout": 25927, - "▁автор": 25928, - "ництво": 25929, - "ето": 25930, - "lera": 25931, - "cls": 25932, - "▁Ley": 25933, - "amy": 25934, - "agens": 25935, - "ashed": 25936, - "▁okrę": 25937, - "гро": 25938, - "ellett": 25939, - "▁Fellow": 25940, - "▁manifold": 25941, - "$),": 25942, - "lder": 25943, - "▁voz": 25944, - "▁begg": 25945, - "▁baron": 25946, - "▁fid": 25947, - "▁firing": 25948, - "ilda": 25949, - "dek": 25950, - "AU": 25951, - "itare": 25952, - "▁Ara": 25953, - "▁Exit": 25954, - "▁cinemat": 25955, - "▁intros": 25956, - "▁contacts": 25957, - "пени": 25958, - "▁möglich": 25959, - "▁Singapore": 25960, - "ström": 25961, - "▁Hern": 25962, - "▁sixth": 25963, - "▁publications": 25964, - "vie": 25965, - "▁Hat": 25966, - "▁accepting": 25967, - "ác": 25968, - "stwo": 25969, - "▁quietly": 25970, - "Photo": 25971, - "▁basket": 25972, - "▁eigenvalues": 25973, - "▁médec": 25974, - "▁Olimp": 25975, - "▁церков": 25976, - "alin": 25977, - "consum": 25978, - "▁lassen": 25979, - "▁анти": 25980, - "▁Seq": 25981, - "\";\r": 25982, - "rare": 25983, - "▁$|\\": 25984, - "▁nick": 25985, - "dflare": 25986, - "Vec": 25987, - "bindung": 25988, - "▁bg": 25989, - "changes": 25990, - "Days": 25991, - "▁Mouse": 25992, - "▁waited": 25993, - "▁Tomatoes": 25994, - "▁fas": 25995, - "verte": 25996, - "▁succession": 25997, - "сор": 25998, - "▁sols": 25999, - "▁Render": 26000, - "▁leadership": 26001, - "▁significance": 26002, - "▁gauche": 26003, - "cano": 26004, - "▁Pie": 26005, - "ensoort": 26006, - "▁cambio": 26007, - "▁уз": 26008, - "▁endeav": 26009, - "Completed": 26010, - "▁Архивная": 26011, - "jd": 26012, - "órico": 26013, - "▁churches": 26014, - "▁animate": 26015, - "SG": 26016, - "compute": 26017, - "▁uniformly": 26018, - "INIT": 26019, - "lles": 26020, - "HttpRequest": 26021, - "Ко": 26022, - "Diff": 26023, - "▁sah": 26024, - "airo": 26025, - "maybe": 26026, - "UTE": 26027, - "▁Dow": 26028, - "human": 26029, - "▁aurait": 26030, - "dark": 26031, - "▁repair": 26032, - "▁ner": 26033, - "▁Dabei": 26034, - "▁Botan": 26035, - "Original": 26036, - "ază": 26037, - "▁NAT": 26038, - "imper": 26039, - "▁Youth": 26040, - "thes": 26041, - "▁округа": 26042, - "▁Flo": 26043, - "▁breakfast": 26044, - "urls": 26045, - "▁übernahm": 26046, - "ários": 26047, - "▁Orange": 26048, - "▁Affairs": 26049, - "ske": 26050, - "▁notify": 26051, - "imoine": 26052, - "▁Arena": 26053, - "▁liberal": 26054, - "▁obec": 26055, - "ifa": 26056, - "guez": 26057, - "iono": 26058, - "ператор": 26059, - "▁retained": 26060, - "failed": 26061, - "bine": 26062, - "тных": 26063, - "▁CGRect": 26064, - "camera": 26065, - "idenote": 26066, - "KB": 26067, - "▁lights": 26068, - "▁Pictures": 26069, - "▁Squadron": 26070, - "▁Volk": 26071, - "▁burg": 26072, - ",]": 26073, - "Gi": 26074, - "êque": 26075, - "makeText": 26076, - "▁everybody": 26077, - "▁Hyper": 26078, - "▁Deux": 26079, - "▁glory": 26080, - "presentation": 26081, - "onica": 26082, - "▁frère": 26083, - "aget": 26084, - "▁hints": 26085, - "▁tunnel": 26086, - "▁Ej": 26087, - "ális": 26088, - "▁Viv": 26089, - "ственных": 26090, - "▁caps": 26091, - "PART": 26092, - "oci": 26093, - "▁prices": 26094, - "currency": 26095, - "▁achter": 26096, - "romagnet": 26097, - "gender": 26098, - "▁suis": 26099, - "versions": 26100, - "▁Training": 26101, - "inside": 26102, - "ege": 26103, - "▁totale": 26104, - "▁Daar": 26105, - "▁grudnia": 26106, - "▁Ier": 26107, - "▁occasions": 26108, - "▁kde": 26109, - "▁tensorflow": 26110, - "▁ór": 26111, - "Methods": 26112, - "▁looping": 26113, - "▁directeur": 26114, - "kę": 26115, - "▁isomorphism": 26116, - "▁João": 26117, - "▁aligned": 26118, - "онов": 26119, - "urger": 26120, - "▁nova": 26121, - "morrow": 26122, - "altern": 26123, - "HD": 26124, - "▁marqu": 26125, - "ativas": 26126, - "ggreg": 26127, - "▁ancien": 26128, - "nit": 26129, - "▁secured": 26130, - "mier": 26131, - "▁Ole": 26132, - "▁инте": 26133, - "▁minus": 26134, - "▁clearer": 26135, - "▁nello": 26136, - "▁információk": 26137, - "▁propre": 26138, - "{.": 26139, - "ilog": 26140, - "▁Quick": 26141, - "▁accus": 26142, - "employee": 26143, - "▁зу": 26144, - "цький": 26145, - "фіцій": 26146, - "▁публи": 26147, - "▁bent": 26148, - "▁позво": 26149, - "▁Пор": 26150, - "ází": 26151, - "ánico": 26152, - "emptyset": 26153, - "▁surtout": 26154, - "reno": 26155, - "unya": 26156, - "▁уез": 26157, - "▁Millionen": 26158, - "▁listopada": 26159, - "▁Maine": 26160, - "▁grupos": 26161, - "▁Storage": 26162, - "▁apple": 26163, - "▁Lö": 26164, - "oused": 26165, - "дро": 26166, - "sci": 26167, - "▁hibernate": 26168, - "dog": 26169, - "▁восто": 26170, - "▁intensity": 26171, - "legend": 26172, - "▁Wille": 26173, - "▁szerint": 26174, - "gesellschaft": 26175, - "▁Living": 26176, - "allo": 26177, - "▁Split": 26178, - "dru": 26179, - "need": 26180, - "▁Джон": 26181, - "▁Swiss": 26182, - "▁spraw": 26183, - "▁beho": 26184, - "▁fotograf": 26185, - "▁rencontre": 26186, - "▁kis": 26187, - "▁signing": 26188, - "akult": 26189, - "▁indexing": 26190, - "apor": 26191, - "▁conception": 26192, - "aggreg": 26193, - "▁Савез": 26194, - "▁affair": 26195, - "ění": 26196, - "August": 26197, - "▁секре": 26198, - "▁mieszkań": 26199, - "UIImage": 26200, - "▁bishop": 26201, - "▁servants": 26202, - "▁trail": 26203, - "digit": 26204, - "▁joins": 26205, - "▁Near": 26206, - "öffentlich": 26207, - ">{": 26208, - "▁skład": 26209, - "geführt": 26210, - "▁Holz": 26211, - "▁Militär": 26212, - "achi": 26213, - "Upper": 26214, - "pine": 26215, - "utzt": 26216, - "▁nuova": 26217, - "ibration": 26218, - "▁Bien": 26219, - "▁первый": 26220, - "▁Creating": 26221, - "Once": 26222, - "▁einmal": 26223, - "▁geometric": 26224, - "stvo": 26225, - "▁kW": 26226, - "▁decomposition": 26227, - "▁comedy": 26228, - "▁activation": 26229, - "▁angry": 26230, - "illeurs": 26231, - "▁instantly": 26232, - "▁suggesting": 26233, - "▁Clay": 26234, - "cot": 26235, - "▁Gén": 26236, - "($(": 26237, - "unwrap": 26238, - "▁lifted": 26239, - "▁Kit": 26240, - "▁linea": 26241, - "ок": 26242, - "hart": 26243, - "->_": 26244, - "▁nuit": 26245, - "▁Issue": 26246, - "лии": 26247, - "▁röm": 26248, - "Tasks": 26249, - "▁Sr": 26250, - "▁seis": 26251, - "asia": 26252, - "}}$.": 26253, - ":{": 26254, - "controls": 26255, - "▁Stim": 26256, - "▁Recht": 26257, - "ociación": 26258, - "▁Natal": 26259, - "▁Philippines": 26260, - "ulen": 26261, - "Fixed": 26262, - "▁switched": 26263, - "Zip": 26264, - "ospel": 26265, - "▁начале": 26266, - "▁Blan": 26267, - "urst": 26268, - "▁autour": 26269, - "Ca": 26270, - "▁latitude": 26271, - "▁Frei": 26272, - "▁Musée": 26273, - "▁Kurz": 26274, - "▁região": 26275, - "swap": 26276, - "▁hate": 26277, - "▁modifications": 26278, - "▁Ком": 26279, - "▁Antoine": 26280, - "uga": 26281, - "RECT": 26282, - "éter": 26283, - "GROUP": 26284, - "▁sacrific": 26285, - "▁Whe": 26286, - "▁Stevens": 26287, - "ologische": 26288, - "Summary": 26289, - "obs": 26290, - "hnen": 26291, - "<%=": 26292, - "dienst": 26293, - "remark": 26294, - "▁veröffentlicht": 26295, - "ел": 26296, - "▁Mock": 26297, - "▁Льв": 26298, - "▁três": 26299, - "gb": 26300, - "▁celebrated": 26301, - "▁Eb": 26302, - "▁costa": 26303, - "▁Geographic": 26304, - "▁attachment": 26305, - "mannschaft": 26306, - "▁dependence": 26307, - "��": 26308, - "▁attitude": 26309, - "etal": 26310, - "vic": 26311, - "baut": 26312, - "▁дов": 26313, - "▁interven": 26314, - "▁Gü": 26315, - "ónica": 26316, - "▁Pon": 26317, - "▁disponible": 26318, - "▁Feb": 26319, - "▁worship": 26320, - "▁Specifically": 26321, - "Hy": 26322, - "iju": 26323, - "▁cb": 26324, - "▁spac": 26325, - "leveland": 26326, - "▁localidad": 26327, - "▁preceding": 26328, - "▁Hessen": 26329, - "xp": 26330, - "▁Wein": 26331, - "▁Româ": 26332, - "▁giorno": 26333, - "▁квітня": 26334, - "llaços": 26335, - "▁Academia": 26336, - "▁kül": 26337, - "▁Års": 26338, - "▁нај": 26339, - "uclide": 26340, - "Internet": 26341, - "orton": 26342, - "▁corn": 26343, - "ями": 26344, - "▁\"*": 26345, - "▁Felix": 26346, - "apat": 26347, - "▁свои": 26348, - "MIT": 26349, - "made": 26350, - "▁locomot": 26351, - "хода": 26352, - "FP": 26353, - "▁pm": 26354, - ".*;": 26355, - "▁Hamm": 26356, - "`}": 26357, - "LayoutInflater": 26358, - "==\"": 26359, - "▁Eur": 26360, - "▁dogs": 26361, - "жении": 26362, - "▁azon": 26363, - "▁emulator": 26364, - "▁ricon": 26365, - "beeld": 26366, - "▁ну": 26367, - "▁approximate": 26368, - "LM": 26369, - "▁Bond": 26370, - "▁enh": 26371, - "ędz": 26372, - "▁solit": 26373, - "RelativeLayout": 26374, - "eteor": 26375, - "amentos": 26376, - "▁indirect": 26377, - "iből": 26378, - "▁gros": 26379, - "▁Originals": 26380, - "commands": 26381, - "Export": 26382, - "▁Avec": 26383, - "▁solemn": 26384, - "▁correction": 26385, - "▁проводи": 26386, - "▁Mosk": 26387, - "▁подо": 26388, - "▁gebied": 26389, - "▁następ": 26390, - "▁Driver": 26391, - "▁Ook": 26392, - "▁Vec": 26393, - "▁lungo": 26394, - "ficos": 26395, - "▁svol": 26396, - "▁kid": 26397, - "nja": 26398, - "▁Hr": 26399, - "▁поддер": 26400, - "▁visibility": 26401, - "▁Méd": 26402, - "▁cpu": 26403, - "discussion": 26404, - "Asset": 26405, - "▁defense": 26406, - "▁Anyone": 26407, - "▁Justin": 26408, - "iszt": 26409, - "▁Collins": 26410, - "▁Valent": 26411, - "▁Pale": 26412, - "▁fuel": 26413, - "▁nose": 26414, - "ríguez": 26415, - "▁Schles": 26416, - "▁Malays": 26417, - "▁commut": 26418, - "dro": 26419, - "uing": 26420, - "▁Rico": 26421, - "▁Emma": 26422, - "orp": 26423, - "▁Kirk": 26424, - "▁Quando": 26425, - "▁Neue": 26426, - "▁demande": 26427, - "▁Cover": 26428, - "▁rescue": 26429, - "▁gewählt": 26430, - "▁Calendar": 26431, - "▁Madonna": 26432, - "WP": 26433, - "oshi": 26434, - "▁Maven": 26435, - "▁belle": 26436, - "▁wx": 26437, - "▁sugar": 26438, - "▁Betrieb": 26439, - "▁equilibrium": 26440, - "EAR": 26441, - "▁texts": 26442, - "слов": 26443, - "▁czerwca": 26444, - "▁Düsseld": 26445, - "▁ELSE": 26446, - "▁amery": 26447, - "▁ani": 26448, - "▁obey": 26449, - "▁Nell": 26450, - "▁inne": 26451, - "▁тро": 26452, - "FD": 26453, - "cco": 26454, - "▁Zob": 26455, - "alette": 26456, - "▁május": 26457, - "ected": 26458, - "▁Turkey": 26459, - "▁Whether": 26460, - "qi": 26461, - "▁што": 26462, - "▁headquarters": 26463, - "endi": 26464, - "arus": 26465, - "opus": 26466, - "▁золо": 26467, - "▁destru": 26468, - "▁Lok": 26469, - "▁satisfaction": 26470, - "()\r": 26471, - "▁Тер": 26472, - "Jose": 26473, - "▁conquer": 26474, - "▁Effect": 26475, - "LayoutParams": 26476, - "iez": 26477, - "▁externs": 26478, - "▁gegenüber": 26479, - "▁ESP": 26480, - "olta": 26481, - "processor": 26482, - "▁Kult": 26483, - "▁Atlanta": 26484, - "▁tier": 26485, - "Operator": 26486, - "▁диа": 26487, - "▁пись": 26488, - "▁groß": 26489, - "▁hearts": 26490, - "▁millimeter": 26491, - "although": 26492, - "alles": 26493, - "▁Magic": 26494, - "training": 26495, - "oline": 26496, - "▁органі": 26497, - ">\\<^": 26498, - "ціаль": 26499, - "exports": 26500, - "Workbook": 26501, - "▁вересня": 26502, - "▁teles": 26503, - "▁economy": 26504, - "▁trap": 26505, - "▁refuse": 26506, - "▁stranger": 26507, - "▁instinct": 26508, - "пода": 26509, - "olan": 26510, - "▁ning": 26511, - "inflate": 26512, - "itatea": 26513, - "acks": 26514, - "▁Joy": 26515, - "FLAG": 26516, - "ailand": 26517, - "▁sorti": 26518, - "▁впер": 26519, - "▁pén": 26520, - "Nothing": 26521, - "▁száz": 26522, - "▁Áng": 26523, - "▁AUT": 26524, - "Actions": 26525, - "Every": 26526, - "▁червня": 26527, - "▁автомо": 26528, - "▁routine": 26529, - "▁estruct": 26530, - "▁Gang": 26531, - "▁holes": 26532, - "thesis": 26533, - "▁concl": 26534, - "▁pé": 26535, - "riers": 26536, - "ровой": 26537, - "adic": 26538, - "Speed": 26539, - "▁commanded": 26540, - "▁Nazionale": 26541, - "Managed": 26542, - "▁DECLARE": 26543, - "▁sedan": 26544, - "Strings": 26545, - "▁sacred": 26546, - "tersuch": 26547, - "▁abitanti": 26548, - "brit": 26549, - "▁NCAA": 26550, - "▁СП": 26551, - "▁aged": 26552, - "▁Chiesa": 26553, - "▁revision": 26554, - "opro": 26555, - "▁overwrite": 26556, - "embros": 26557, - "▁sortie": 26558, - "▁otten": 26559, - "xiv": 26560, - "▁deli": 26561, - "▁Asp": 26562, - "▁balls": 26563, - "kaf": 26564, - "▁brave": 26565, - "▁всего": 26566, - "egn": 26567, - "jpeg": 26568, - "▁Osten": 26569, - "Constants": 26570, - "▁Infantry": 26571, - "▁Nev": 26572, - "▁яких": 26573, - "▁муниципа": 26574, - "cija": 26575, - "▁poem": 26576, - "▁negro": 26577, - "хар": 26578, - "▁Ask": 26579, - "▁avo": 26580, - "▁Meyer": 26581, - "▁Westen": 26582, - "▁oko": 26583, - "agin": 26584, - "▁Süden": 26585, - "entries": 26586, - "▁Republik": 26587, - "CollectionView": 26588, - "-------": 26589, - "▁firefox": 26590, - "▁alcune": 26591, - "▁фото": 26592, - "▁отрима": 26593, - "~~~~~~~~": 26594, - "▁Раз": 26595, - "▁Complex": 26596, - "▁pia": 26597, - "▁publicada": 26598, - "wei": 26599, - "cedure": 26600, - "occupation": 26601, - "▁medicine": 26602, - "▁drove": 26603, - "Problem": 26604, - "▁beginner": 26605, - "▁thoroughly": 26606, - "uria": 26607, - "avant": 26608, - "ucha": 26609, - "▁lever": 26610, - "▁teatro": 26611, - "AVA": 26612, - "squ": 26613, - "trat": 26614, - "ivatal": 26615, - "▁dirty": 26616, - "▁seconde": 26617, - "▁gravit": 26618, - "▁proposition": 26619, - "hbar": 26620, - "omini": 26621, - "▁”": 26622, - "▁Camil": 26623, - "▁queen": 26624, - "modifier": 26625, - "Jan": 26626, - "▁lyr": 26627, - "ComboBox": 26628, - "ionic": 26629, - "▁holy": 26630, - "▁Sebastian": 26631, - "|_{": 26632, - "▁{@": 26633, - "▁можно": 26634, - "▁Creative": 26635, - "▁interess": 26636, - "▁CT": 26637, - "ições": 26638, - "▁chant": 26639, - "▁współ": 26640, - "▁Мексика": 26641, - "▁ranked": 26642, - "▁października": 26643, - "▁brut": 26644, - "▁farther": 26645, - "▁Verb": 26646, - "▁Seven": 26647, - "lbl": 26648, - "▁mentions": 26649, - "▁Fight": 26650, - "ifen": 26651, - "▁bog": 26652, - "▁regres": 26653, - "▁scoring": 26654, - "icane": 26655, - "▁Elli": 26656, - "▁pierw": 26657, - "measure": 26658, - "ńskiej": 26659, - "#{": 26660, - "▁деся": 26661, - "▁varmaste": 26662, - "▁Unix": 26663, - "IZ": 26664, - "itié": 26665, - "Primary": 26666, - "▁Springer": 26667, - "üng": 26668, - "▁anv": 26669, - "▁versione": 26670, - "▁shoulders": 26671, - "▁брига": 26672, - "▁jav": 26673, - "ltal": 26674, - "▁kallaste": 26675, - "▁Mitchell": 26676, - "▁wireless": 26677, - "▁Ál": 26678, - "respons": 26679, - "could": 26680, - "▁relax": 26681, - "Lond": 26682, - "ńcz": 26683, - "ствовал": 26684, - "▁polski": 26685, - "enç": 26686, - "zar": 26687, - "▁dtype": 26688, - "owned": 26689, - "unknown": 26690, - "▁mutable": 26691, - "▁siempre": 26692, - "▁Montreal": 26693, - "▁locate": 26694, - "▁traces": 26695, - "▁insgesamt": 26696, - "▁Nil": 26697, - "▁прода": 26698, - "▁Warner": 26699, - "▁Nau": 26700, - "triangle": 26701, - "▁concentration": 26702, - "▁gentlemen": 26703, - "ächt": 26704, - "filters": 26705, - "incipal": 26706, - "VALID": 26707, - "▁депута": 26708, - "adó": 26709, - "▁konst": 26710, - "gså": 26711, - "agas": 26712, - "▁meilleur": 26713, - "▁данным": 26714, - "єдна": 26715, - "encoded": 26716, - "<'": 26717, - "▁sheets": 26718, - "cuador": 26719, - "▁використову": 26720, - "▁Deput": 26721, - "▁manière": 26722, - "ąg": 26723, - "csol": 26724, - ")$-": 26725, - "UIView": 26726, - "▁millones": 26727, - "▁Ehren": 26728, - "Sil": 26729, - "▁atac": 26730, - "▁Cold": 26731, - "\"\\": 26732, - "▁approached": 26733, - "▁Årsmed": 26734, - "WM": 26735, - "▁Deport": 26736, - "mis": 26737, - "andbox": 26738, - "observ": 26739, - "setting": 26740, - "ható": 26741, - "▁strat": 26742, - "▁spre": 26743, - "▁personne": 26744, - "▁dirige": 26745, - "pull": 26746, - "dating": 26747, - "▁Fact": 26748, - "▁manipulate": 26749, - "▁MAC": 26750, - "▁dej": 26751, - "ultimo": 26752, - "FX": 26753, - "Life": 26754, - "▁crack": 26755, - "▁mí": 26756, - "▁пове": 26757, - "▁wore": 26758, - "université": 26759, - "▁formulas": 26760, - "▁Elisabeth": 26761, - "plots": 26762, - "mile": 26763, - "▁menor": 26764, - "тил": 26765, - "keyword": 26766, - "▁Baltimore": 26767, - "hrer": 26768, - "▁Clement": 26769, - "vim": 26770, - "rass": 26771, - "Take": 26772, - "▁című": 26773, - "▁Convention": 26774, - "atge": 26775, - "seed": 26776, - "▁Dí": 26777, - "▁Spider": 26778, - "ahoo": 26779, - "▁имеет": 26780, - "ührt": 26781, - "▁пописа": 26782, - "▁Cot": 26783, - "▁nobles": 26784, - "RESS": 26785, - "▁chemin": 26786, - "▁główn": 26787, - "GG": 26788, - "▁Germania": 26789, - "▁Alexandre": 26790, - "hens": 26791, - "swift": 26792, - "oop": 26793, - "Subview": 26794, - "▁requiring": 26795, - "ędzy": 26796, - "▁fict": 26797, - "▁Констан": 26798, - "▁déput": 26799, - "▁surprising": 26800, - "▁deix": 26801, - "▁unterschied": 26802, - "inson": 26803, - "▁Character": 26804, - "▁gestion": 26805, - "chus": 26806, - "comes": 26807, - "▁neur": 26808, - "▁yeux": 26809, - "ollar": 26810, - "▁parad": 26811, - "▁maggiore": 26812, - "TRAN": 26813, - "▁votre": 26814, - "▁descent": 26815, - "▁Icon": 26816, - "▁Judge": 26817, - "▁occupation": 26818, - "eping": 26819, - "▁tongue": 26820, - "▁Enllaços": 26821, - "ruf": 26822, - "▁protein": 26823, - "▁visitors": 26824, - "axy": 26825, - "esten": 26826, - "blica": 26827, - "hw": 26828, - "▁spirits": 26829, - "▁reduces": 26830, - "▁мен": 26831, - "▁Lamb": 26832, - "▁Mine": 26833, - "▁verified": 26834, - "▁Baby": 26835, - "▁prize": 26836, - "вър": 26837, - "▁ratings": 26838, - "▁fore": 26839, - "asha": 26840, - "urrence": 26841, - "▁intér": 26842, - "▁Olímp": 26843, - "cra": 26844, - "▁computational": 26845, - "irche": 26846, - ".: ": 26847, - "▁illustrated": 26848, - "▁Share": 26849, - "▁households": 26850, - "▁convolution": 26851, - "oemd": 26852, - "▁zdoby": 26853, - "ccc": 26854, - "▁quantities": 26855, - "Che": 26856, - "Should": 26857, - "▁genius": 26858, - "adj": 26859, - "хва": 26860, - "Петер": 26861, - "EMA": 26862, - "▁Rights": 26863, - "▁Eli": 26864, - "VAR": 26865, - "шло": 26866, - "▁збір": 26867, - "iftung": 26868, - "▁contributed": 26869, - "zef": 26870, - "▁CHAR": 26871, - "▁Sib": 26872, - "▁Mant": 26873, - "▁связи": 26874, - "▁javafx": 26875, - "▁cependant": 26876, - "▁intu": 26877, - "▁твор": 26878, - "▁Ó": 26879, - "guer": 26880, - "rado": 26881, - "▁Revol": 26882, - "▁fémin": 26883, - "▁Orleans": 26884, - "▁poj": 26885, - "▁prez": 26886, - "Tex": 26887, - "ouwd": 26888, - "?(": 26889, - "▁LIM": 26890, - "istique": 26891, - "esar": 26892, - "▁heures": 26893, - "icki": 26894, - "▁dbo": 26895, - "skih": 26896, - "confirm": 26897, - "▁világ": 26898, - "▁ciutat": 26899, - "▁DR": 26900, - "▁Hawai": 26901, - "ched": 26902, - "▁spher": 26903, - "▁Artikel": 26904, - "▁Multiple": 26905, - "ciu": 26906, - "▁мы": 26907, - "▁lipca": 26908, - "](/": 26909, - "Strategy": 26910, - "▁Alabama": 26911, - "SDK": 26912, - "UTC": 26913, - "__.": 26914, - "Arguments": 26915, - "▁setContentView": 26916, - "île": 26917, - "ByVal": 26918, - "▁JVM": 26919, - "ющего": 26920, - "▁Leonard": 26921, - "▁justify": 26922, - "цем": 26923, - "▁nab": 26924, - "CCESS": 26925, - "▁hopes": 26926, - ")&": 26927, - "sero": 26928, - "▁зай": 26929, - "слід": 26930, - "▁Rég": 26931, - "▁Sang": 26932, - "▁fung": 26933, - "baar": 26934, - "▁coffee": 26935, - "assembly": 26936, - "▁Він": 26937, - "эй": 26938, - "▁comprend": 26939, - "filled": 26940, - "рд": 26941, - "odia": 26942, - "▁gens": 26943, - "fluss": 26944, - "Drawable": 26945, - "▁surve": 26946, - "Setup": 26947, - "▁należ": 26948, - "▁conjunto": 26949, - "▁Его": 26950, - "▁oldal": 26951, - "▁verbose": 26952, - "▁Electric": 26953, - "▁Harrison": 26954, - "engen": 26955, - "paragraph": 26956, - "▁nouvelles": 26957, - "▁време": 26958, - "▁memor": 26959, - "▁mayoría": 26960, - "сад": 26961, - "▁bataille": 26962, - "▁thermal": 26963, - "▁Хронологи": 26964, - "▁Better": 26965, - "bye": 26966, - "▁театра": 26967, - "roe": 26968, - "▁segle": 26969, - "rott": 26970, - "▁opinions": 26971, - ")})": 26972, - "ühle": 26973, - "▁Gün": 26974, - "▁Щ": 26975, - "ból": 26976, - "▁Larry": 26977, - "▁solic": 26978, - "▁zwar": 26979, - "▁Caroline": 26980, - "▁Reichs": 26981, - "Extensions": 26982, - "migr": 26983, - ":@": 26984, - "▁enumerate": 26985, - "▁eigenen": 26986, - "▁explore": 26987, - "ému": 26988, - "▁gat": 26989, - "▁imperial": 26990, - "▁Usually": 26991, - "▁tud": 26992, - "▁укра": 26993, - "him": 26994, - "▁corners": 26995, - "▁SER": 26996, - "▁interpreter": 26997, - "▁Ice": 26998, - "▁amounts": 26999, - "▁Pala": 27000, - "▁tinha": 27001, - "vole": 27002, - "▁gle": 27003, - "ucci": 27004, - "▁siehe": 27005, - "Jack": 27006, - "▁woll": 27007, - "▁elder": 27008, - "▁кораб": 27009, - "▁engag": 27010, - "▁Laurent": 27011, - "▁achiev": 27012, - "istik": 27013, - "arct": 27014, - "тного": 27015, - "▁gir": 27016, - "▁Singh": 27017, - "mathop": 27018, - "USA": 27019, - "▁Projekt": 27020, - "▁debe": 27021, - "richtung": 27022, - "▁Tsch": 27023, - "uminate": 27024, - "▁szó": 27025, - "lyph": 27026, - "зидент": 27027, - "▁limitations": 27028, - "ющей": 27029, - "▁bila": 27030, - "Push": 27031, - "▁offering": 27032, - "iennes": 27033, - "Fri": 27034, - "▁postgresql": 27035, - "▁Tommy": 27036, - "▁particolare": 27037, - "▁století": 27038, - "▁arrib": 27039, - "▁Eva": 27040, - "school": 27041, - "▁vendor": 27042, - "▁Dallas": 27043, - "▁prolong": 27044, - "CREATE": 27045, - "▁suivante": 27046, - "STATUS": 27047, - "là": 27048, - "kv": 27049, - "▁häufig": 27050, - "▁Agricult": 27051, - "▁huit": 27052, - "▁inoltre": 27053, - "▁Lloyd": 27054, - "▁француз": 27055, - "▁выпол": 27056, - "▁faithful": 27057, - "▁Вар": 27058, - "▁verl": 27059, - "▁juego": 27060, - "▁Резултати": 27061, - ",...,": 27062, - "▁implicitly": 27063, - "irks": 27064, - "Calcul": 27065, - "▁meses": 27066, - "omed": 27067, - "▁pak": 27068, - "herit": 27069, - "▁optical": 27070, - "▁Історія": 27071, - "veis": 27072, - "▁capitale": 27073, - "placeholder": 27074, - "intrag": 27075, - "▁Atlas": 27076, - ")];": 27077, - "icons": 27078, - "▁Bent": 27079, - "▁Widget": 27080, - "▁volunt": 27081, - "avo": 27082, - "égr": 27083, - "lige": 27084, - "▁NAME": 27085, - "▁abstra": 27086, - "▁fís": 27087, - "▁Browser": 27088, - "▁bush": 27089, - "hall": 27090, - "▁clouds": 27091, - "▁SUB": 27092, - "▁tandis": 27093, - "▁Commonwealth": 27094, - "тая": 27095, - "▁exhaust": 27096, - "________________": 27097, - "▁Statistics": 27098, - "▁Religion": 27099, - "▁Muham": 27100, - "uals": 27101, - "goto": 27102, - "Digital": 27103, - "Family": 27104, - "▁Bun": 27105, - "letin": 27106, - "Management": 27107, - "▁capabilities": 27108, - "annten": 27109, - "▁себе": 27110, - "▁stays": 27111, - "kter": 27112, - "▁dost": 27113, - "▁Тре": 27114, - "лович": 27115, - "▁dying": 27116, - "sections": 27117, - "ános": 27118, - "▁apparten": 27119, - "▁zoals": 27120, - "▁dressed": 27121, - "▁compress": 27122, - "ńska": 27123, - "▁sierpnia": 27124, - "▁титу": 27125, - "dictionary": 27126, - "▁rabb": 27127, - "▁vérit": 27128, - "Во": 27129, - "▁singleton": 27130, - "▁vital": 27131, - "Refresh": 27132, - "мель": 27133, - "▁Zh": 27134, - "▁Afghan": 27135, - "inkel": 27136, - "aaaa": 27137, - "▁participants": 27138, - "arin": 27139, - "▁Mold": 27140, - "▁primeros": 27141, - "▁ран": 27142, - "▁Амери": 27143, - "▁restaurant": 27144, - "ével": 27145, - "▁SL": 27146, - "▁Rey": 27147, - "chas": 27148, - "▁electrons": 27149, - "▁Pitts": 27150, - "▁Jules": 27151, - "май": 27152, - "enant": 27153, - "-}": 27154, - "лад": 27155, - "▁Москва": 27156, - "gom": 27157, - "▁Fernández": 27158, - "fund": 27159, - "interno": 27160, - "▁Mari": 27161, - "▁rius": 27162, - "▁Prozent": 27163, - "стрі": 27164, - "▁внут": 27165, - "anterie": 27166, - "▁прис": 27167, - "▁обы": 27168, - "▁Marina": 27169, - "▁occurrence": 27170, - "rikt": 27171, - "▁физи": 27172, - "▁schwer": 27173, - "▁Гре": 27174, - "Reset": 27175, - "▁mucho": 27176, - "andr": 27177, - "▁Wies": 27178, - "▁Keith": 27179, - "▁Julian": 27180, - "▁cole": 27181, - "ciendo": 27182, - "▁Contempor": 27183, - "etry": 27184, - "elian": 27185, - "гии": 27186, - "▁голо": 27187, - "▁dél": 27188, - "▁decent": 27189, - "РСР": 27190, - "▁szeptember": 27191, - "мест": 27192, - "castle": 27193, - "▁держав": 27194, - "}\")": 27195, - "▁ASCII": 27196, - "▁Glen": 27197, - "itzerland": 27198, - "Toggle": 27199, - "▁tradicional": 27200, - "▁Plat": 27201, - "vee": 27202, - "abgerufen": 27203, - "(|": 27204, - "CLI": 27205, - "}}$,": 27206, - "▁Bowl": 27207, - "▁Male": 27208, - "▁Bres": 27209, - "▁пси": 27210, - "▁Challenge": 27211, - "zó": 27212, - "▁projekt": 27213, - "▁negoti": 27214, - "above": 27215, - "▁перио": 27216, - "▁longest": 27217, - "authentic": 27218, - "▁tradu": 27219, - "▁mujeres": 27220, - "▁Andre": 27221, - "▁hadn": 27222, - "▁Schule": 27223, - "odel": 27224, - "bled": 27225, - "▁Trade": 27226, - "▁mobil": 27227, - "▁algunas": 27228, - "▁Lak": 27229, - "▁Connecticut": 27230, - "▁alco": 27231, - "▁Selbst": 27232, - "ił": 27233, - "▁alb": 27234, - "ouverneur": 27235, - "▁sr": 27236, - "▁vba": 27237, - "loped": 27238, - "▁Partei": 27239, - "uate": 27240, - "▁Authentication": 27241, - "bei": 27242, - "}}.": 27243, - "▁konnten": 27244, - "▁допо": 27245, - "▁hyd": 27246, - "Office": 27247, - "données": 27248, - "▁Cleveland": 27249, - "rita": 27250, - "íos": 27251, - "▁выше": 27252, - "▁Roberts": 27253, - "▁élections": 27254, - "▁'')": 27255, - "▁publishing": 27256, - "▁bapt": 27257, - "<>();": 27258, - "missing": 27259, - "ровано": 27260, - "▁housing": 27261, - "▁inference": 27262, - "▁Renaissance": 27263, - "▁règ": 27264, - "▁Steph": 27265, - "CES": 27266, - "ERE": 27267, - "кет": 27268, - "OU": 27269, - "▁grouping": 27270, - "verkehr": 27271, - "jih": 27272, - "agli": 27273, - "▁milk": 27274, - "lait": 27275, - "Stage": 27276, - "▁byly": 27277, - "▁wooden": 27278, - "keley": 27279, - "etra": 27280, - "▁Peg": 27281, - "▁donné": 27282, - "adal": 27283, - "sequently": 27284, - "▁insbesondere": 27285, - "ELD": 27286, - "▁Mam": 27287, - "▁volte": 27288, - "▁prospect": 27289, - "нове": 27290, - "▁denoted": 27291, - "▁overlay": 27292, - "Permission": 27293, - "een": 27294, - "▁EM": 27295, - "▁uz": 27296, - "Mc": 27297, - "olit": 27298, - "▁servi": 27299, - "▁Heidel": 27300, - "▁Wiener": 27301, - "▁illegal": 27302, - "▁predictions": 27303, - "▁goog": 27304, - "hon": 27305, - "▁Cinema": 27306, - "▁револю": 27307, - "▁Rule": 27308, - "wod": 27309, - "▁radiation": 27310, - "oł": 27311, - "ової": 27312, - "▁Perform": 27313, - "▁prisoner": 27314, - "▁amet": 27315, - "▁figura": 27316, - "▁Commander": 27317, - "▁официаль": 27318, - "▁trov": 27319, - "▁acted": 27320, - "▁workflow": 27321, - "▁Республики": 27322, - "▁guidance": 27323, - "▁мене": 27324, - "National": 27325, - "▁Kel": 27326, - "webpack": 27327, - "простра": 27328, - "▁llamado": 27329, - "alog": 27330, - "terra": 27331, - "ixen": 27332, - "legraph": 27333, - "äischen": 27334, - "▁teachers": 27335, - "uden": 27336, - "▁også": 27337, - "possible": 27338, - "▁Soul": 27339, - "▁Geography": 27340, - "▁зада": 27341, - "hit": 27342, - "▁anger": 27343, - "▁remporte": 27344, - "Pod": 27345, - "чке": 27346, - "▁aria": 27347, - "▁Astronom": 27348, - "chapter": 27349, - "▁fork": 27350, - "▁Cuando": 27351, - "mense": 27352, - "▁Christians": 27353, - "gc": 27354, - "▁#(": 27355, - "Organ": 27356, - "▁steady": 27357, - "pse": 27358, - "жить": 27359, - "ignes": 27360, - "aterra": 27361, - "movie": 27362, - "posta": 27363, - "raste": 27364, - "▁Ressource": 27365, - "▁País": 27366, - "▁();": 27367, - "▁penalty": 27368, - "тт": 27369, - "▁trasfer": 27370, - "century": 27371, - "▁cleaner": 27372, - "selenium": 27373, - "ortheast": 27374, - "xic": 27375, - "лії": 27376, - "▁inglese": 27377, - "▁Tang": 27378, - "▁gods": 27379, - "frent": 27380, - "ciente": 27381, - "starts": 27382, - "▁musica": 27383, - "ymnasium": 27384, - "----+": 27385, - "▁terrest": 27386, - "▁retrieved": 27387, - "iare": 27388, - "unning": 27389, - "▁Marcus": 27390, - "▁promote": 27391, - "warning": 27392, - "тый": 27393, - "})$,": 27394, - "Transport": 27395, - "▁reson": 27396, - "▁Clo": 27397, - "▁erm": 27398, - "▁eliminate": 27399, - "heimer": 27400, - "▁saves": 27401, - "▁prayer": 27402, - "Classes": 27403, - "Express": 27404, - "▁Akademie": 27405, - "Else": 27406, - "Turn": 27407, - "▁ikke": 27408, - "▁rei": 27409, - "▁dirett": 27410, - "▁Rost": 27411, - "▁Papa": 27412, - "▁jsf": 27413, - "лением": 27414, - "▁Tul": 27415, - "▁Zak": 27416, - "▁niemieck": 27417, - "Tw": 27418, - "amour": 27419, - "nested": 27420, - "ppets": 27421, - "шп": 27422, - "dit": 27423, - "зен": 27424, - "zyma": 27425, - "hrte": 27426, - "Constraints": 27427, - "▁ownership": 27428, - "Arm": 27429, - "▁consumption": 27430, - "▁fet": 27431, - "ivari": 27432, - "chrom": 27433, - "setAttribute": 27434, - "▁compose": 27435, - "▁backing": 27436, - "▁Paz": 27437, - "▁scri": 27438, - "▁Mechan": 27439, - "▁Norway": 27440, - "▁Jup": 27441, - "▁mér": 27442, - "▁administrator": 27443, - "▁cabe": 27444, - "ivalent": 27445, - "▁throne": 27446, - "▁dues": 27447, - "▁humor": 27448, - "▁Adri": 27449, - "▁abort": 27450, - "ñas": 27451, - "▁Київ": 27452, - "jící": 27453, - "▁zweite": 27454, - "▁doub": 27455, - "ershell": 27456, - "шой": 27457, - "▁Fam": 27458, - "åk": 27459, - "▁tweede": 27460, - "▁Rib": 27461, - "▁før": 27462, - "pción": 27463, - "inned": 27464, - "rvm": 27465, - "▁Appar": 27466, - "▁Dj": 27467, - "▁Shang": 27468, - "Distance": 27469, - "▁dawn": 27470, - "▁Matth": 27471, - "▁errichtet": 27472, - "phantom": 27473, - "▁releases": 27474, - "Recognizer": 27475, - "▁Kop": 27476, - "▁Pul": 27477, - "ué": 27478, - "nats": 27479, - "relax": 27480, - "▁fled": 27481, - "▁experiences": 27482, - "щее": 27483, - "меня": 27484, - "▁персона": 27485, - "▁Identity": 27486, - "rets": 27487, - "kunft": 27488, - "larg": 27489, - "ListItem": 27490, - "vd": 27491, - "runner": 27492, - "lant": 27493, - "ipart": 27494, - "bay": 27495, - "iei": 27496, - "▁lengths": 27497, - "▁cattle": 27498, - "jets": 27499, - "▁sehen": 27500, - "Jul": 27501, - "fatt": 27502, - "▁surrender": 27503, - "▁Trump": 27504, - "дного": 27505, - "▁Fourier": 27506, - "ieben": 27507, - "_\"": 27508, - "▁früher": 27509, - "▁garant": 27510, - "uclidean": 27511, - "ägt": 27512, - "▁півден": 27513, - "Pages": 27514, - "▁rivers": 27515, - "▁donner": 27516, - "svn": 27517, - "▁ł": 27518, - "ově": 27519, - "▁Leist": 27520, - "arial": 27521, - "ových": 27522, - "▁filling": 27523, - "▁musicale": 27524, - "maxim": 27525, - "▁dashed": 27526, - "▁Нов": 27527, - "Drawer": 27528, - "▁Medicine": 27529, - "▁dokument": 27530, - "owel": 27531, - "vić": 27532, - "hely": 27533, - "▁elet": 27534, - "Seconds": 27535, - "▁Gonz": 27536, - "rou": 27537, - "▁finales": 27538, - "rn": 27539, - "fø": 27540, - "▁indexed": 27541, - "className": 27542, - "▁ober": 27543, - "▁duas": 27544, - "▁optimized": 27545, - "▁kdy": 27546, - "versary": 27547, - "energy": 27548, - "▁центра": 27549, - "▁currency": 27550, - "zyż": 27551, - "Like": 27552, - "▁Ги": 27553, - "sono": 27554, - "▁palab": 27555, - "▁pushing": 27556, - "ublik": 27557, - "▁Hass": 27558, - "}\\,\\": 27559, - "unker": 27560, - "▁Factory": 27561, - "▁Resources": 27562, - "datei": 27563, - "▁Tools": 27564, - "▁stehen": 27565, - "sime": 27566, - "▁Ху": 27567, - "▁hoch": 27568, - "▁Rodríguez": 27569, - "zeitig": 27570, - "▁Terry": 27571, - "▁обу": 27572, - "Usage": 27573, - "urchase": 27574, - "lö": 27575, - "▁Introduction": 27576, - "▁participation": 27577, - "ος": 27578, - "ogli": 27579, - "apy": 27580, - "▁hopefully": 27581, - "ponder": 27582, - "▁Yang": 27583, - "▁promises": 27584, - "▁верну": 27585, - "▁остров": 27586, - "^{+": 27587, - "▁mostra": 27588, - "▁CURLOPT": 27589, - "HH": 27590, - "▁stdout": 27591, - "▁brilliant": 27592, - "▁manuscript": 27593, - "▁decir": 27594, - "▁Bolog": 27595, - "▁места": 27596, - "▁invisible": 27597, - "▁Chal": 27598, - "▁analyze": 27599, - "prilis": 27600, - "attend": 27601, - "Mvc": 27602, - "than": 27603, - "cko": 27604, - "▁Quebec": 27605, - "▁planta": 27606, - "▁télévis": 27607, - "▁uninstall": 27608, - "ències": 27609, - "▁gminie": 27610, - "▁Pref": 27611, - "▁lequel": 27612, - "Invocation": 27613, - "▁Í": 27614, - "▁transformed": 27615, - "MAN": 27616, - "gebaut": 27617, - "▁сохра": 27618, - "▁второй": 27619, - "▁Lith": 27620, - "wendung": 27621, - "▁Politik": 27622, - "▁Senator": 27623, - "▁LL": 27624, - "ждение": 27625, - "ште": 27626, - "▁Cés": 27627, - "▁bande": 27628, - "▁historian": 27629, - "▁passwords": 27630, - "malloc": 27631, - "▁semif": 27632, - "▁rå": 27633, - "unicí": 27634, - "Available": 27635, - "Optional": 27636, - "▁Twe": 27637, - "▁kró": 27638, - "▁subsets": 27639, - "▁DAT": 27640, - "▁doubles": 27641, - "никами": 27642, - "▁зв": 27643, - "gegeben": 27644, - "▁Попис": 27645, - "▁július": 27646, - "▁meteor": 27647, - "Mount": 27648, - "ivent": 27649, - "▁Nathan": 27650, - "▁Schutz": 27651, - "egov": 27652, - "▁död": 27653, - "▁meat": 27654, - "▁пункт": 27655, - "▁minds": 27656, - "elivery": 27657, - "▁TLS": 27658, - "рем": 27659, - "ckså": 27660, - "▁stayed": 27661, - "▁Bin": 27662, - "▁Pia": 27663, - "▁имен": 27664, - "▁Bobby": 27665, - "▁produit": 27666, - "empio": 27667, - "▁reducing": 27668, - "▁Yu": 27669, - "▁Geschäft": 27670, - "▁perché": 27671, - "▁cors": 27672, - "▁icons": 27673, - "AppData": 27674, - "▁Hog": 27675, - "▁рів": 27676, - "▁Sans": 27677, - "▁siège": 27678, - "stellen": 27679, - "Brush": 27680, - "OFF": 27681, - "▁visitor": 27682, - "▁bath": 27683, - "▁fee": 27684, - "atisf": 27685, - "▁curv": 27686, - "▁folgender": 27687, - "▁conscience": 27688, - "▁Seattle": 27689, - "▁medieval": 27690, - "distribution": 27691, - "▁DM": 27692, - "▁мя": 27693, - "▁RUN": 27694, - "akov": 27695, - "ceil": 27696, - "▁letting": 27697, - "▁dov": 27698, - "▁оби": 27699, - "kiej": 27700, - "▁direkt": 27701, - "▁tm": 27702, - "colors": 27703, - "▁altro": 27704, - "▁tijdens": 27705, - "]{'": 27706, - "▁Bom": 27707, - "▁kunst": 27708, - "▁shelter": 27709, - "▁rav": 27710, - "predict": 27711, - "▁comenzó": 27712, - "▁świat": 27713, - "▁Durant": 27714, - "▁schemes": 27715, - "▁mesh": 27716, - "▁indicator": 27717, - "▁Emer": 27718, - "▁guilty": 27719, - "нец": 27720, - "▁consequences": 27721, - "cludes": 27722, - "▁Lower": 27723, - "▁поме": 27724, - "▁pace": 27725, - "даго": 27726, - "▁ambos": 27727, - "lb": 27728, - "▁educated": 27729, - "urale": 27730, - "anh": 27731, - "esség": 27732, - "▁associations": 27733, - "town": 27734, - "▁trif": 27735, - "samples": 27736, - "bos": 27737, - "▁Spect": 27738, - "▁Це": 27739, - "altung": 27740, - "▁Lob": 27741, - "▁curiosity": 27742, - "▁Weiter": 27743, - "estone": 27744, - "▁demol": 27745, - "▁apolog": 27746, - "▁Dynamic": 27747, - "Inner": 27748, - "esper": 27749, - "ecz": 27750, - "uellement": 27751, - "▁Hamiltonian": 27752, - "Atlas": 27753, - "▁argue": 27754, - "Foreign": 27755, - "collapse": 27756, - "▁términ": 27757, - "▁electronic": 27758, - "▁NR": 27759, - "▁corr": 27760, - "temps": 27761, - "IndexPath": 27762, - "яз": 27763, - "▁talál": 27764, - "today": 27765, - "wave": 27766, - "▁sib": 27767, - "▁спи": 27768, - "▁convey": 27769, - "▁Géographie": 27770, - "▁Нью": 27771, - "▁Hibernate": 27772, - "▁tin": 27773, - "dic": 27774, - "ppings": 27775, - "sweise": 27776, - "▁rolling": 27777, - "▁selects": 27778, - ")\\)": 27779, - "▁poeta": 27780, - "▁степени": 27781, - "▁Abr": 27782, - "▁höch": 27783, - "▁stern": 27784, - "▁fjär": 27785, - "▁installer": 27786, - "decl": 27787, - "▁miser": 27788, - "groupby": 27789, - "substr": 27790, - "▁phenomen": 27791, - "▁Wing": 27792, - "▁fills": 27793, - "▁único": 27794, - "Running": 27795, - "Come": 27796, - "irable": 27797, - "simeq": 27798, - "▁remp": 27799, - "kele": 27800, - "liers": 27801, - "▁kwietnia": 27802, - "▁interrupted": 27803, - "▁Jet": 27804, - "=\\{": 27805, - "ído": 27806, - "▁Taiwan": 27807, - "▁возра": 27808, - "▁alternatives": 27809, - "▁Tir": 27810, - "▁Reserve": 27811, - "▁Кур": 27812, - "▁Nobel": 27813, - "▁работал": 27814, - "▁axes": 27815, - "▁Cependant": 27816, - "ká": 27817, - "▁erneut": 27818, - "▁Demo": 27819, - "communic": 27820, - "constructor": 27821, - "▁Monday": 27822, - "Nil": 27823, - "HashMap": 27824, - "payment": 27825, - "▁fixing": 27826, - "▁ADD": 27827, - "review": 27828, - "▁possibil": 27829, - "▁grote": 27830, - "▁grouped": 27831, - "▁Lima": 27832, - "▁Augen": 27833, - "▁också": 27834, - "onas": 27835, - "▁debate": 27836, - "▁Ingl": 27837, - "Da": 27838, - "SOUR": 27839, - "ettbe": 27840, - "▁Battalion": 27841, - "▁Float": 27842, - "▁cone": 27843, - "readsheet": 27844, - "court": 27845, - "ligen": 27846, - "▁Beginn": 27847, - "▁LIMIT": 27848, - "▁enjoyed": 27849, - "▁Jakob": 27850, - "▁telt": 27851, - "backend": 27852, - "▁Gemeinsame": 27853, - "lint": 27854, - "alling": 27855, - "▁bör": 27856, - "grand": 27857, - "▁diverses": 27858, - "▁związ": 27859, - "▁Kompon": 27860, - "▁innerhalb": 27861, - "▁desarrollo": 27862, - "▁Masters": 27863, - "ioso": 27864, - "]`.": 27865, - "▁francesa": 27866, - "Aff": 27867, - "inek": 27868, - "▁dessin": 27869, - "`.`": 27870, - "▁ranks": 27871, - "берг": 27872, - "▁skal": 27873, - "▁Sultan": 27874, - "АН": 27875, - "▁способ": 27876, - "▁contradict": 27877, - "▁recom": 27878, - "▁Oklahoma": 27879, - "▁Vladimir": 27880, - "▁meters": 27881, - "transport": 27882, - "▁consulté": 27883, - "▁ATP": 27884, - "ebb": 27885, - "▁volunte": 27886, - "▁outline": 27887, - "LIC": 27888, - "▁euro": 27889, - "CharField": 27890, - "medium": 27891, - "▁Belgique": 27892, - "Proc": 27893, - "routes": 27894, - "▁contribu": 27895, - "!}": 27896, - "ším": 27897, - "▁Less": 27898, - "▁Kost": 27899, - "▁eredetiből": 27900, - "reven": 27901, - "verify": 27902, - "▁Salt": 27903, - "▁shooting": 27904, - "▁dispose": 27905, - "ují": 27906, - "▁tierra": 27907, - "▁poison": 27908, - "sak": 27909, - "perimental": 27910, - "▁Né": 27911, - "▁Kid": 27912, - "agyar": 27913, - "▁archiválva": 27914, - "bereich": 27915, - "íz": 27916, - "▁Ritter": 27917, - "▁Хронологија": 27918, - "zeum": 27919, - "дах": 27920, - "▁gründ": 27921, - "▁programmer": 27922, - "▁conseil": 27923, - "▁encrypt": 27924, - "integration": 27925, - "Culture": 27926, - "▁Circle": 27927, - "Observable": 27928, - "▁genomsnitt": 27929, - "▁Selection": 27930, - "▁irregular": 27931, - "Autres": 27932, - "Percent": 27933, - "fault": 27934, - "▁virtue": 27935, - "ąpi": 27936, - "▁sess": 27937, - "▁Также": 27938, - "Timestamp": 27939, - "▁littérature": 27940, - "▁moż": 27941, - "▁borrow": 27942, - "▁conced": 27943, - "чник": 27944, - "▁Lund": 27945, - "IONS": 27946, - "ynie": 27947, - "▁Shin": 27948, - "▁osob": 27949, - "bě": 27950, - "▁intuit": 27951, - "▁нап": 27952, - "▁proph": 27953, - "▁pitt": 27954, - "▁IBM": 27955, - "▁Till": 27956, - "▁hina": 27957, - "ittest": 27958, - "generator": 27959, - "▁Nin": 27960, - "▁Kot": 27961, - "▁passer": 27962, - "▁disposition": 27963, - "uning": 27964, - "▁fame": 27965, - "▁tenia": 27966, - "ancement": 27967, - "▁Suisse": 27968, - "`-": 27969, - "▁hombres": 27970, - "▁infinity": 27971, - "▁оконча": 27972, - "▁cosm": 27973, - "▁Dennis": 27974, - "baz": 27975, - "haupt": 27976, - "▁mighty": 27977, - "▁prede": 27978, - "usable": 27979, - "▁wszyst": 27980, - "▁lb": 27981, - "ABASE": 27982, - "jna": 27983, - "нев": 27984, - "▁ases": 27985, - "▁finalmente": 27986, - "йм": 27987, - "pection": 27988, - "▁Studien": 27989, - "▁Norwegian": 27990, - "cego": 27991, - "INDEX": 27992, - "orten": 27993, - "▁friendship": 27994, - "metro": 27995, - "thick": 27996, - "▁Zel": 27997, - "LOW": 27998, - "▁thereby": 27999, - "unted": 28000, - "▁surfaces": 28001, - "ющим": 28002, - "%).": 28003, - "▁Wonder": 28004, - "▁redundant": 28005, - "▁Gros": 28006, - "▁websites": 28007, - "▁vio": 28008, - "▁ocas": 28009, - "vés": 28010, - "▁Gam": 28011, - "dw": 28012, - "Indicator": 28013, - "▁Kob": 28014, - "▁jack": 28015, - "Hint": 28016, - "▁Apol": 28017, - "▁другие": 28018, - "▁NUM": 28019, - "▁ofic": 28020, - "ystycz": 28021, - "▁wereld": 28022, - "мости": 28023, - "LEFT": 28024, - "▁Types": 28025, - "seen": 28026, - "uncia": 28027, - "▁narod": 28028, - "▁этот": 28029, - "Sidenote": 28030, - "ueil": 28031, - "▁отме": 28032, - "▁courts": 28033, - "fir": 28034, - "urz": 28035, - "ченко": 28036, - "Credentials": 28037, - "▁imagination": 28038, - "itats": 28039, - "buff": 28040, - "flash": 28041, - "▁badly": 28042, - "▁worn": 28043, - "▁округу": 28044, - "catalog": 28045, - "lime": 28046, - "▁Gill": 28047, - "▁Sent": 28048, - "iella": 28049, - "▁Craig": 28050, - "▁Sele": 28051, - "▁Independ": 28052, - "▁provincie": 28053, - "ossen": 28054, - "▁запад": 28055, - "▁infant": 28056, - "▁prevents": 28057, - "▁provinces": 28058, - "afé": 28059, - "beg": 28060, - "▁colours": 28061, - "BF": 28062, - "ën": 28063, - "▁Между": 28064, - "în": 28065, - "Observer": 28066, - "forsch": 28067, - "ígen": 28068, - "umption": 28069, - "▁Illustr": 28070, - "рист": 28071, - "▁полови": 28072, - "▁`&": 28073, - "▁ore": 28074, - "▁supplies": 28075, - "▁parenthes": 28076, - "Foundation": 28077, - "▁vou": 28078, - "▁Tout": 28079, - "Donald": 28080, - "▁RET": 28081, - "weig": 28082, - "▁producción": 28083, - "mix": 28084, - "▁utwor": 28085, - "▁föl": 28086, - "▁então": 28087, - "▁Sister": 28088, - "Tags": 28089, - "▁Савезне": 28090, - "▁privileges": 28091, - "▁nazw": 28092, - "▁Rav": 28093, - "▁repro": 28094, - "▁Mason": 28095, - "▁Platform": 28096, - "▁пробле": 28097, - "▁Pérez": 28098, - "▁blanc": 28099, - "Behavior": 28100, - "фици": 28101, - "eken": 28102, - "▁meets": 28103, - "(.*": 28104, - "▁få": 28105, - "epen": 28106, - "maker": 28107, - "▁loyal": 28108, - "members": 28109, - "meisterschaft": 28110, - "goal": 28111, - "шлен": 28112, - "▁северо": 28113, - "iende": 28114, - "дні": 28115, - "Proof": 28116, - "▁explic": 28117, - "▁electro": 28118, - "iels": 28119, - "reload": 28120, - "▁eleven": 28121, - "▁partidos": 28122, - "îne": 28123, - "▁Regin": 28124, - "▁éx": 28125, - "▁Bulg": 28126, - "▁networking": 28127, - "▁separator": 28128, - "UserName": 28129, - "▁edificio": 28130, - "▁Mie": 28131, - "▁idle": 28132, - "yed": 28133, - "▁passengers": 28134, - "+)": 28135, - "meno": 28136, - "eggi": 28137, - "▁nicely": 28138, - "endencia": 28139, - "чий": 28140, - "étés": 28141, - "ightarrow": 28142, - "▁orthogonal": 28143, - "▁Half": 28144, - "▁fewer": 28145, - "▁propi": 28146, - "▁primit": 28147, - "icale": 28148, - "▁flower": 28149, - "merk": 28150, - "▁Отече": 28151, - "▁persistent": 28152, - "▁Ville": 28153, - "Men": 28154, - "gaben": 28155, - "▁Isaac": 28156, - "ativity": 28157, - "▁północ": 28158, - "▁rok": 28159, - "cards": 28160, - "дения": 28161, - "▁юго": 28162, - "▁extraordinary": 28163, - "▁kyr": 28164, - "(\",": 28165, - "))]": 28166, - "▁unix": 28167, - "кол": 28168, - "▁sink": 28169, - "apsed": 28170, - "▁kommen": 28171, - "▁forcing": 28172, - "About": 28173, - "▁Halle": 28174, - "▁Majesty": 28175, - "▁Switch": 28176, - "▁abroad": 28177, - "▁acceleration": 28178, - "urbed": 28179, - "▁остан": 28180, - "Ready": 28181, - "▁півні": 28182, - "Bra": 28183, - "▁цього": 28184, - "▁plut": 28185, - "▁Train": 28186, - "▁április": 28187, - "▁puesto": 28188, - "▁toss": 28189, - "▁irrelevant": 28190, - "▁dip": 28191, - "segment": 28192, - "opacity": 28193, - "▁lorsque": 28194, - "▁verschill": 28195, - "ена": 28196, - "▁Doc": 28197, - "%%%%%%%%": 28198, - "▁borders": 28199, - "gebras": 28200, - "▁ries": 28201, - "▁Olympedia": 28202, - "▁Generation": 28203, - "metros": 28204, - "▁horizon": 28205, - "▁adaptation": 28206, - "▁Zahl": 28207, - "▁nahe": 28208, - "▁Bug": 28209, - "Picture": 28210, - "љи": 28211, - "RGB": 28212, - "Owner": 28213, - "adin": 28214, - "▁Catalunya": 28215, - "ných": 28216, - "▁cualquier": 28217, - "▁Institution": 28218, - "insen": 28219, - "▁Brasile": 28220, - "▁fitting": 28221, - "Deleg": 28222, - "ictwo": 28223, - "▁Exper": 28224, - "ochastic": 28225, - "▁dus": 28226, - "▁пора": 28227, - "▁substring": 28228, - "ссии": 28229, - "oin": 28230, - "▁школа": 28231, - "▁cx": 28232, - "▁%)": 28233, - "▁Buddh": 28234, - "▁pending": 28235, - "▁Entry": 28236, - "▁Berl": 28237, - "▁cler": 28238, - "▁Soc": 28239, - "▁rounded": 28240, - "▁mv": 28241, - "ített": 28242, - "▁Diplom": 28243, - "▁französischen": 28244, - "▁Gan": 28245, - "▁Investig": 28246, - "▁indexPath": 28247, - "▁molti": 28248, - "persistence": 28249, - "▁XIXe": 28250, - "▁Electron": 28251, - "bü": 28252, - "gele": 28253, - "▁Maler": 28254, - "▁proyecto": 28255, - "▁Bath": 28256, - "ellers": 28257, - "▁GP": 28258, - "oning": 28259, - "cloudflare": 28260, - "▁při": 28261, - "▁ded": 28262, - "▁Odkazy": 28263, - "▁Msg": 28264, - "▁Being": 28265, - "▁Depuis": 28266, - "▁Primary": 28267, - "▁Appro": 28268, - "▁formally": 28269, - "ступил": 28270, - "▁fuera": 28271, - "▁Root": 28272, - "▁autonom": 28273, - "▁secretary": 28274, - "▁osób": 28275, - "▁cuales": 28276, - "▁Depending": 28277, - "▁asi": 28278, - "vera": 28279, - "▁russe": 28280, - "▁proves": 28281, - "▁presiden": 28282, - "RU": 28283, - "▁Watson": 28284, - "▁webpack": 28285, - "elligence": 28286, - "кам": 28287, - "▁Officer": 28288, - "▁delivery": 28289, - "ждён": 28290, - "▁импе": 28291, - "▁wil": 28292, - "▁vesc": 28293, - "usztus": 28294, - "▁Geoff": 28295, - "()}": 28296, - "▁Fore": 28297, - "▁wenig": 28298, - "▁Airl": 28299, - "▁Efter": 28300, - "▁Break": 28301, - "▁Städ": 28302, - "ismiss": 28303, - "íp": 28304, - "▁avoided": 28305, - "▁assertion": 28306, - "DN": 28307, - "▁teat": 28308, - "ína": 28309, - "▁mechanical": 28310, - "isu": 28311, - "@{": 28312, - "▁nou": 28313, - "Italie": 28314, - "sourceforge": 28315, - "▁svo": 28316, - "▁király": 28317, - "▁References": 28318, - "six": 28319, - "▁Archives": 28320, - "▁finishing": 28321, - "acje": 28322, - "état": 28323, - "iffs": 28324, - "▁stead": 28325, - "▁feas": 28326, - "aware": 28327, - "lande": 28328, - "Inject": 28329, - "▁Agent": 28330, - "▁Normdatei": 28331, - "▁amen": 28332, - "▁Architecture": 28333, - "aze": 28334, - "ște": 28335, - "▁usar": 28336, - "▁cores": 28337, - "лін": 28338, - "▁Castro": 28339, - "▁væ": 28340, - ">\",": 28341, - "omena": 28342, - "▁gesam": 28343, - "▁Martín": 28344, - "egung": 28345, - "▁společ": 28346, - "▁amplitude": 28347, - "▁importing": 28348, - "▁listview": 28349, - "THE": 28350, - "ziale": 28351, - "cedes": 28352, - "▁particulier": 28353, - "▁Расподела": 28354, - "▁край": 28355, - "▁divent": 28356, - "▁ké": 28357, - "quit": 28358, - "тором": 28359, - "CheckBox": 28360, - "▁Zobacz": 28361, - "phe": 28362, - "pta": 28363, - "▁sjö": 28364, - "▁розташ": 28365, - "▁tedesco": 28366, - "▁stal": 28367, - "▁Beruf": 28368, - "овая": 28369, - "▁svě": 28370, - "▁flush": 28371, - "▁відбу": 28372, - "▁radial": 28373, - "▁différentes": 28374, - "анта": 28375, - "▁Perry": 28376, - "Coll": 28377, - "liqu": 28378, - "▁Optional": 28379, - "▁Санкт": 28380, - "▁LINQ": 28381, - "▁Franc": 28382, - "cije": 28383, - "▁Guillaume": 28384, - "know": 28385, - "▁Units": 28386, - "olk": 28387, - "▁Système": 28388, - "▁Sales": 28389, - "▁ehemaligen": 28390, - "мирова": 28391, - "xhtml": 28392, - "setopt": 28393, - "▁mellan": 28394, - "▁zie": 28395, - "▁giant": 28396, - "Board": 28397, - "▁Caval": 28398, - "▁defence": 28399, - "----------": 28400, - "pshire": 28401, - "mart": 28402, - "▁Dioc": 28403, - "iskt": 28404, - "▁inse": 28405, - "▁épisode": 28406, - "чик": 28407, - "bars": 28408, - "Sito": 28409, - "▁integrity": 28410, - "auff": 28411, - "▁vär": 28412, - "Azure": 28413, - "▁starb": 28414, - "▁контра": 28415, - "▁Мексичка": 28416, - "▁запа": 28417, - "▁Mountains": 28418, - "}}=": 28419, - "▁pulling": 28420, - "▁satellite": 28421, - "▁atoms": 28422, - "▁profesor": 28423, - "▁repeatedly": 28424, - "▁invasion": 28425, - "programming": 28426, - "├──": 28427, - "▁Lip": 28428, - "вшие": 28429, - "▁keen": 28430, - "▁critics": 28431, - "▁Nicola": 28432, - "▁Cand": 28433, - "▁distint": 28434, - "▁heading": 28435, - "pragma": 28436, - "{|": 28437, - "ymen": 28438, - "▁terrain": 28439, - "iedenis": 28440, - "▁besonders": 28441, - "▁nominated": 28442, - "BOOL": 28443, - "▁Kay": 28444, - "cian": 28445, - "stelle": 28446, - "▁dispute": 28447, - "▁щ": 28448, - "DataSet": 28449, - "nothing": 28450, - "Autom": 28451, - "hören": 28452, - "▁shed": 28453, - "▁paused": 28454, - "san": 28455, - "▁nunca": 28456, - "!(\"": 28457, - "▁położ": 28458, - "Secret": 28459, - "▁Domain": 28460, - "▁возмож": 28461, - "XV": 28462, - "lv": 28463, - "ikh": 28464, - "▁Sony": 28465, - "mq": 28466, - "otrop": 28467, - "▁Logger": 28468, - "▁threat": 28469, - "asted": 28470, - "зько": 28471, - "▁freely": 28472, - "▁improvements": 28473, - "istema": 28474, - "▁illustrate": 28475, - "▁tact": 28476, - "▁figur": 28477, - "ués": 28478, - "riminal": 28479, - "odon": 28480, - "intendo": 28481, - "▁influenced": 28482, - "FFER": 28483, - "▁Ghost": 28484, - "▁совер": 28485, - "nad": 28486, - "ioned": 28487, - "▁Events": 28488, - "▁wrapping": 28489, - "---------+": 28490, - "fif": 28491, - "▁(**": 28492, - "={{": 28493, - "маль": 28494, - "▁losses": 28495, - "▁Galerie": 28496, - "tel": 28497, - "▁лютого": 28498, - "▁Kru": 28499, - "▁Polen": 28500, - "нім": 28501, - "near": 28502, - "▁shame": 28503, - "▁moyenne": 28504, - "▁CP": 28505, - "preis": 28506, - "▁passenger": 28507, - "lek": 28508, - "ionales": 28509, - "kafka": 28510, - "▁participe": 28511, - "▁membership": 28512, - "[_": 28513, - "lando": 28514, - "stelling": 28515, - "Sem": 28516, - "gon": 28517, - "▁Correct": 28518, - "▁valle": 28519, - "▁readily": 28520, - "▁Dokument": 28521, - "honneur": 28522, - "▁testim": 28523, - "ulative": 28524, - "doFilter": 28525, - "▁dominant": 28526, - "ammer": 28527, - "▁која": 28528, - "▁Monsieur": 28529, - "zeg": 28530, - "▁війни": 28531, - "▁Fo": 28532, - "▁Amy": 28533, - "▁¡": 28534, - "▁február": 28535, - "▁downloading": 28536, - "▁leng": 28537, - "\\}$,": 28538, - "▁neat": 28539, - "▁Cache": 28540, - "ICATION": 28541, - "▁deve": 28542, - "▁sorrow": 28543, - "slow": 28544, - "▁hinaus": 28545, - "▁reconoc": 28546, - "▁Linked": 28547, - "▁Shaw": 28548, - "market": 28549, - "▁Dic": 28550, - "▁Ski": 28551, - "▁delimiter": 28552, - "▁MainActivity": 28553, - "▁Musical": 28554, - "▁Reyn": 28555, - "ScrollView": 28556, - "▁conventional": 28557, - "ença": 28558, - "▁refactor": 28559, - "'-": 28560, - "▁Hed": 28561, - "sprech": 28562, - "▁athlet": 28563, - "▁especies": 28564, - "▁Schön": 28565, - "▁kleinen": 28566, - "шко": 28567, - "▁Йо": 28568, - "▁Happy": 28569, - "multirow": 28570, - "▁augusti": 28571, - "▁Gand": 28572, - "▁appointment": 28573, - "▁Mediabestanden": 28574, - "Three": 28575, - "▁Kenneth": 28576, - "NEW": 28577, - "▁Notification": 28578, - "▁Marx": 28579, - "▁insc": 28580, - "Mor": 28581, - "вый": 28582, - "väst": 28583, - "vidia": 28584, - "▁demonstrated": 28585, - "fonts": 28586, - "▁kamen": 28587, - "▁Ster": 28588, - "▁mieszkańców": 28589, - "▁Koh": 28590, - "~$\\": 28591, - "»).": 28592, - "rene": 28593, - "insic": 28594, - "ická": 28595, - "xygen": 28596, - "▁mn": 28597, - "▁sched": 28598, - "ASC": 28599, - "Ig": 28600, - "▁Constant": 28601, - "▁opportun": 28602, - "▁MyClass": 28603, - "sef": 28604, - "oped": 28605, - "▁injured": 28606, - "VIS": 28607, - "▁Pero": 28608, - "▁Until": 28609, - "▁flesh": 28610, - "orphism": 28611, - "▁Portal": 28612, - "▁gminy": 28613, - "▁власти": 28614, - "▁Nä": 28615, - "ктиче": 28616, - "▁hrab": 28617, - "▁Cub": 28618, - "avoir": 28619, - "▁Lars": 28620, - "▁Бело": 28621, - "▁seizoen": 28622, - "▁Genomsnitt": 28623, - "▁Lil": 28624, - "▁Pool": 28625, - "▁Dios": 28626, - "TX": 28627, - "aes": 28628, - "autore": 28629, - "Alpha": 28630, - "states": 28631, - "Lab": 28632, - "nederbörd": 28633, - "erton": 28634, - "▁brid": 28635, - "▁richt": 28636, - "▁Ela": 28637, - "▁сла": 28638, - "▁weapon": 28639, - "▁combatt": 28640, - "agar": 28641, - "▁regnig": 28642, - "▁utilisé": 28643, - "▁servir": 28644, - "▁brick": 28645, - "▁gateway": 28646, - "▁torraste": 28647, - "▁procedures": 28648, - "▁årsnederbörd": 28649, - "▁Genomsnittlig": 28650, - "чёт": 28651, - "▁områ": 28652, - "▁regnigaste": 28653, - "▁честь": 28654, - "▁amid": 28655, - "▁grateful": 28656, - "▁DIS": 28657, - "DAY": 28658, - "▁ору": 28659, - "▁rivière": 28660, - "heure": 28661, - "▁Richmond": 28662, - "▁Compar": 28663, - "▁Нор": 28664, - "DOC": 28665, - "esia": 28666, - "calc": 28667, - "▁IU": 28668, - "▁vorg": 28669, - "▁habían": 28670, - "çoit": 28671, - "▁arist": 28672, - "▁кли": 28673, - "▁Sue": 28674, - "▁Touch": 28675, - "▁Writing": 28676, - "ifiable": 28677, - "▁wc": 28678, - "▁withdraw": 28679, - "зар": 28680, - "▁presently": 28681, - "▁FK": 28682, - "▁prakt": 28683, - "▁colored": 28684, - "usb": 28685, - "▁Perú": 28686, - "▁plata": 28687, - "▁wishes": 28688, - "▁кам": 28689, - "azar": 28690, - "ável": 28691, - "▁lamp": 28692, - "bishop": 28693, - "▁inclusion": 28694, - "jq": 28695, - "arth": 28696, - "▁Flag": 28697, - "▁нор": 28698, - "ædia": 28699, - "UNCTION": 28700, - "▁Bahnhof": 28701, - "▁approaching": 28702, - "▁Gött": 28703, - "▁cube": 28704, - "▁argued": 28705, - "▁Things": 28706, - "Gui": 28707, - "дови": 28708, - "▁recre": 28709, - "▁réseau": 28710, - "▁significa": 28711, - "Git": 28712, - "gebracht": 28713, - "▁liga": 28714, - "▁assured": 28715, - "alus": 28716, - "рит": 28717, - "▁энциклопеди": 28718, - "▁%).": 28719, - "▁Première": 28720, - "▁declarations": 28721, - "▁tricky": 28722, - "▁profiles": 28723, - "▁Fon": 28724, - "▁Jas": 28725, - "âr": 28726, - "babel": 28727, - "▁Friday": 28728, - "▁június": 28729, - "▁cols": 28730, - "▁EXISTS": 28731, - "▁Italiana": 28732, - "▁authorization": 28733, - "▁sulle": 28734, - "▁Emb": 28735, - "▁Variable": 28736, - "trees": 28737, - "▁Fly": 28738, - "riors": 28739, - "▁damals": 28740, - "▁findet": 28741, - "▁Sept": 28742, - "▁mundial": 28743, - "▁removal": 28744, - "▁longitude": 28745, - "clic": 28746, - "▁fade": 28747, - "▁gradle": 28748, - "▁zák": 28749, - "▁timing": 28750, - "trightarrow": 28751, - "atia": 28752, - "-.": 28753, - "uche": 28754, - "▁serialize": 28755, - "▁Hmm": 28756, - "▁Representatives": 28757, - "bah": 28758, - "rend": 28759, - "assador": 28760, - "▁shield": 28761, - "ucion": 28762, - "▁américaine": 28763, - "zę": 28764, - "villa": 28765, - "▁hombre": 28766, - "áss": 28767, - "▁SF": 28768, - "▁repeating": 28769, - "▁criter": 28770, - "▁Struct": 28771, - "???": 28772, - "▁cheap": 28773, - "▁rings": 28774, - "abhäng": 28775, - "▁corte": 28776, - "▁administ": 28777, - "ixon": 28778, - "gypt": 28779, - "▁puntos": 28780, - "▁mezi": 28781, - "▁pochod": 28782, - "isko": 28783, - "nię": 28784, - "▁осу": 28785, - "▁ár": 28786, - "тельной": 28787, - "▁Metropolitan": 28788, - "jin": 28789, - "zess": 28790, - "▁віці": 28791, - "▁conflicts": 28792, - "ijst": 28793, - "▁Market": 28794, - "стров": 28795, - "▁\",\"": 28796, - "▁Scroll": 28797, - "gun": 28798, - "тара": 28799, - "▁amateur": 28800, - "▁róż": 28801, - "poss": 28802, - "▁generalized": 28803, - "▁Harm": 28804, - "cita": 28805, - "▁Switzerland": 28806, - "icola": 28807, - "▁muit": 28808, - "located": 28809, - "▁có": 28810, - "▁arose": 28811, - "▁communauté": 28812, - "})^": 28813, - "visibility": 28814, - "ída": 28815, - "▁FB": 28816, - "▁Freund": 28817, - "gat": 28818, - "\":{\"": 28819, - "intellij": 28820, - "ifie": 28821, - "hmen": 28822, - "▁édition": 28823, - "▁које": 28824, - "▁інших": 28825, - "oming": 28826, - "▁arquitect": 28827, - "▁Presidente": 28828, - "▁Під": 28829, - "▁cabin": 28830, - "Theorem": 28831, - "▁Gay": 28832, - "ifice": 28833, - "▁hect": 28834, - "lą": 28835, - "irmingham": 28836, - "▁semantic": 28837, - "▁Louisiana": 28838, - "▁sacrifice": 28839, - "▁Christoph": 28840, - "▁Executive": 28841, - "_+": 28842, - "ják": 28843, - "▁seria": 28844, - "▁Overflow": 28845, - "▁Lucy": 28846, - "▁melhor": 28847, - "▁voices": 28848, - "cza": 28849, - "▁капи": 28850, - "▁университета": 28851, - "INCT": 28852, - "▁coloc": 28853, - "▁prue": 28854, - "▁geomet": 28855, - "▁diretto": 28856, - "reso": 28857, - "▁Akt": 28858, - "▁unh": 28859, - "▁сери": 28860, - "▁Alert": 28861, - "Wel": 28862, - "audi": 28863, - "äler": 28864, - "▁guests": 28865, - "▁иде": 28866, - "Studio": 28867, - "▁кате": 28868, - "▁exponent": 28869, - "rze": 28870, - "pmod": 28871, - "rolle": 28872, - "▁Limited": 28873, - "Allemagne": 28874, - "▁pity": 28875, - "▁lä": 28876, - "▁runner": 28877, - "kende": 28878, - "EQ": 28879, - "▁MM": 28880, - "szág": 28881, - "поді": 28882, - "▁regret": 28883, - "▁publié": 28884, - "▁departamento": 28885, - "▁accused": 28886, - "hp": 28887, - "▁Pfl": 28888, - "▁Sint": 28889, - "▁ekonom": 28890, - "ractor": 28891, - "▁Пів": 28892, - "▁awful": 28893, - "ować": 28894, - "]->": 28895, - "▁Fine": 28896, - "Са": 28897, - "tis": 28898, - "éta": 28899, - "▁Роди": 28900, - "▁Düsseldorf": 28901, - "LOB": 28902, - "osas": 28903, - "werke": 28904, - "▁lance": 28905, - "▁листопада": 28906, - "▁incomplete": 28907, - "▁Picture": 28908, - "('\\": 28909, - "esters": 28910, - "▁belonged": 28911, - "▁Sank": 28912, - "ammed": 28913, - "▁repositories": 28914, - "▁addr": 28915, - "Collect": 28916, - "Hot": 28917, - "▁tyl": 28918, - "▁instanceof": 28919, - "▁bonus": 28920, - "ový": 28921, - "▁моря": 28922, - "▁interactive": 28923, - "▁Mys": 28924, - "▁Edmund": 28925, - "fileName": 28926, - "emor": 28927, - "▁Три": 28928, - "▁Rosen": 28929, - "▁Prima": 28930, - "▁voting": 28931, - "▁XP": 28932, - "▁Zero": 28933, - "▁Led": 28934, - "amsung": 28935, - "▁enables": 28936, - "▁redirects": 28937, - "AST": 28938, - "Paint": 28939, - "acker": 28940, - "lecht": 28941, - "▁chairman": 28942, - "▁Aven": 28943, - "▁Sach": 28944, - "(\"<": 28945, - "кер": 28946, - "▁mistakes": 28947, - "▁Weit": 28948, - "▁prowad": 28949, - "▁didnt": 28950, - "énario": 28951, - "unless": 28952, - "▁backwards": 28953, - "boa": 28954, - "duino": 28955, - "```": 28956, - "stor": 28957, - "Completion": 28958, - "puesta": 28959, - "▁dinast": 28960, - "últ": 28961, - "▁SY": 28962, - "ifolia": 28963, - "œuvres": 28964, - "▁racing": 28965, - "▁cabinet": 28966, - "▁cutting": 28967, - "▁thumb": 28968, - "▁Кара": 28969, - "highlight": 28970, - "куп": 28971, - "▁sd": 28972, - "▁національ": 28973, - "▁campagne": 28974, - "▁registers": 28975, - "▁educational": 28976, - "▁pesar": 28977, - "üge": 28978, - "▁oro": 28979, - "burgo": 28980, - "▁Athletics": 28981, - "▁MTV": 28982, - "getMessage": 28983, - "▁Hyp": 28984, - "▁victim": 28985, - "))\\": 28986, - "▁drums": 28987, - "hostname": 28988, - "tał": 28989, - "making": 28990, - "▁powiat": 28991, - "őd": 28992, - "threads": 28993, - "▁absolv": 28994, - "▁люди": 28995, - "▁stepped": 28996, - "exist": 28997, - "▁NK": 28998, - "▁ves": 28999, - "istiche": 29000, - "%'": 29001, - "ativos": 29002, - "▁такой": 29003, - "▁MongoDB": 29004, - "▁Ung": 29005, - "▁Рус": 29006, - "▁elim": 29007, - "▁Fif": 29008, - "icación": 29009, - "▁Tennis": 29010, - "▁Jefferson": 29011, - "ján": 29012, - "fog": 29013, - "anha": 29014, - "zor": 29015, - "▁університе": 29016, - "ahu": 29017, - "iada": 29018, - "Sdk": 29019, - "Setting": 29020, - "▁Kill": 29021, - "▁Wend": 29022, - "▁bald": 29023, - "▁Kub": 29024, - "▁visto": 29025, - "▁jeunes": 29026, - "collections": 29027, - "ací": 29028, - "вропей": 29029, - "▁arise": 29030, - "оні": 29031, - "MAIN": 29032, - "доступ": 29033, - "▁berg": 29034, - "▁criticism": 29035, - "▁Torre": 29036, - "▁descript": 29037, - "ières": 29038, - "▁estudio": 29039, - "▁ili": 29040, - "▁militare": 29041, - "▁Clara": 29042, - "▁Ellen": 29043, - "limited": 29044, - "лм": 29045, - "▁Españ": 29046, - "▁infinitely": 29047, - "America": 29048, - "ouc": 29049, - "glass": 29050, - "▁rud": 29051, - "▁zat": 29052, - "▁rin": 29053, - "▁Bibliografía": 29054, - "▁merchant": 29055, - "tensorflow": 29056, - "▁dér": 29057, - "▁ActiveRecord": 29058, - "IES": 29059, - "▁linker": 29060, - "▁estudios": 29061, - "cdnjs": 29062, - "▁Государ": 29063, - "ánchez": 29064, - "appe": 29065, - "club": 29066, - "▁další": 29067, - "▁Algorithm": 29068, - "dfs": 29069, - "▁Bac": 29070, - "▁кафе": 29071, - "▁&=\\": 29072, - "▁ат": 29073, - "▁Глав": 29074, - "▁Mou": 29075, - "Machine": 29076, - "(...)": 29077, - "▁compart": 29078, - "▁augusztus": 29079, - "avan": 29080, - "▁rolled": 29081, - "▁еди": 29082, - "Scan": 29083, - "▁регі": 29084, - "▁świata": 29085, - "▁mines": 29086, - "},{": 29087, - "▁Tier": 29088, - "Cannot": 29089, - "мін": 29090, - "▁NEW": 29091, - "▁Вол": 29092, - "▁Manh": 29093, - "▁Gregory": 29094, - "▁principe": 29095, - "ISO": 29096, - "prog": 29097, - "▁Fail": 29098, - "▁aa": 29099, - "▁fecha": 29100, - "▁WCF": 29101, - "▁magistr": 29102, - "▁Zach": 29103, - "▁unicode": 29104, - "▁converter": 29105, - "▁dispers": 29106, - "ksam": 29107, - "▁Uncle": 29108, - "PropertyChanged": 29109, - "▁lider": 29110, - "▁opts": 29111, - "▁там": 29112, - "locked": 29113, - "zak": 29114, - "▁counted": 29115, - "▁persone": 29116, - "▁hurried": 29117, - "ätter": 29118, - "▁outras": 29119, - "▁genu": 29120, - "BD": 29121, - "veg": 29122, - "due": 29123, - "▁Pract": 29124, - "▁posible": 29125, - "▁contribute": 29126, - "UMN": 29127, - "▁Bürger": 29128, - "▁wars": 29129, - "▁exhibition": 29130, - "hill": 29131, - "▁astr": 29132, - "▁музе": 29133, - "▁CASE": 29134, - "manifest": 29135, - "yellow": 29136, - "Fn": 29137, - "▁RC": 29138, - "▁sott": 29139, - "▁sujet": 29140, - "▁Socket": 29141, - "▁Chine": 29142, - "▁frameworks": 29143, - "Hold": 29144, - "êts": 29145, - "▁філь": 29146, - "Loaded": 29147, - "ophe": 29148, - "texte": 29149, - "▁expres": 29150, - "▁consume": 29151, - "▁Richtung": 29152, - "ografi": 29153, - "▁magnific": 29154, - "àt": 29155, - "▁indul": 29156, - "ryty": 29157, - "▁offici": 29158, - "▁assault": 29159, - "rund": 29160, - "▁variants": 29161, - "▁сельсов": 29162, - "▁excitement": 29163, - "Times": 29164, - "kotlin": 29165, - "▁gering": 29166, - "▁Engel": 29167, - "▁Timer": 29168, - "²).": 29169, - "▁Ng": 29170, - "ässt": 29171, - "schau": 29172, - "SError": 29173, - "▁Edwards": 29174, - "▁Terminal": 29175, - "lict": 29176, - "Under": 29177, - "▁spawn": 29178, - "ürgen": 29179, - "▁Außerdem": 29180, - "▁kitchen": 29181, - "fahrt": 29182, - "▁Colors": 29183, - "▁система": 29184, - "▁terminated": 29185, - "▁LaTeX": 29186, - "igkeiten": 29187, - "▁mesure": 29188, - "▁Amts": 29189, - "▁empir": 29190, - "▁striking": 29191, - "▁exclusive": 29192, - "тех": 29193, - "▁rez": 29194, - "▁quan": 29195, - "▁Glasgow": 29196, - "▁lecture": 29197, - "▁Testament": 29198, - "▁funds": 29199, - "▁stessa": 29200, - "▁tribes": 29201, - "▁parfois": 29202, - "▁treball": 29203, - "nitz": 29204, - "bove": 29205, - "▁заслу": 29206, - "▁absent": 29207, - "▁Lauf": 29208, - "Smith": 29209, - "▁Николай": 29210, - "▁européenne": 29211, - "lr": 29212, - "▁programma": 29213, - "▁midst": 29214, - "▁daughters": 29215, - "Syn": 29216, - "oben": 29217, - "ână": 29218, - "idan": 29219, - "▁ther": 29220, - "odore": 29221, - "sdl": 29222, - "▁Quint": 29223, - "▁casos": 29224, - "▁Zam": 29225, - "▁страны": 29226, - "▁sprite": 29227, - "кал": 29228, - "▁nasc": 29229, - "▁сотруд": 29230, - "▁trava": 29231, - "▁хозяй": 29232, - "▁Uruguay": 29233, - "▁sparse": 29234, - "▁поле": 29235, - "▁mystery": 29236, - "▁Mang": 29237, - "registr": 29238, - "▁CGFloat": 29239, - "▁submission": 29240, - "вана": 29241, - "▁\":": 29242, - "▁Traceback": 29243, - "▁Pit": 29244, - "▁Ehr": 29245, - "▁сра": 29246, - "▁Graphics": 29247, - "Updated": 29248, - "▁svensk": 29249, - "▁spacing": 29250, - "tritt": 29251, - "▁Guinea": 29252, - "▁França": 29253, - "Associ": 29254, - "▁Tová": 29255, - "stab": 29256, - "▁Learning": 29257, - "▁Bright": 29258, - "śc": 29259, - "▁idő": 29260, - "}}_{\\": 29261, - "▁droite": 29262, - "▁raising": 29263, - "getting": 29264, - "ythm": 29265, - "onyme": 29266, - "żs": 29267, - "▁blah": 29268, - "TagName": 29269, - "Vertical": 29270, - "▁aper": 29271, - "postgresql": 29272, - "▁Handle": 29273, - "zew": 29274, - "▁skulle": 29275, - "▁opere": 29276, - "layers": 29277, - "▁possono": 29278, - "▁relate": 29279, - "ąc": 29280, - "▁Mih": 29281, - "âge": 29282, - "▁Świ": 29283, - "isses": 29284, - "▁servlet": 29285, - "Los": 29286, - "▁Advanced": 29287, - "atica": 29288, - "▁ced": 29289, - "▁elementos": 29290, - "рона": 29291, - "iks": 29292, - "arf": 29293, - "ariat": 29294, - "Mobile": 29295, - "agua": 29296, - "▁timp": 29297, - "▁Comité": 29298, - "▁combining": 29299, - "wohl": 29300, - "▁Study": 29301, - "coordinate": 29302, - "▁recommendation": 29303, - "▁transformations": 29304, - "until": 29305, - "bounded": 29306, - "▁изу": 29307, - "hanced": 29308, - "▁вопро": 29309, - "▁Prés": 29310, - "▁coord": 29311, - "xty": 29312, - "▁$,": 29313, - "▁champions": 29314, - "Den": 29315, - "Mil": 29316, - "(',": 29317, - "▁Preis": 29318, - "▁eigh": 29319, - "▁markers": 29320, - "▁gewesen": 29321, - "ätten": 29322, - "▁pione": 29323, - "mv": 29324, - "▁ју": 29325, - "zeichnis": 29326, - "hoff": 29327, - "News": 29328, - "▁Stanisław": 29329, - "▁Brandenburg": 29330, - "▁Feuer": 29331, - "=&": 29332, - "жет": 29333, - "▁Neil": 29334, - "▁wirk": 29335, - "▁società": 29336, - "▁spare": 29337, - "▁civile": 29338, - "sprach": 29339, - "▁disse": 29340, - "▁gates": 29341, - "▁anom": 29342, - "▁Федерации": 29343, - "▁tib": 29344, - "▁fútbol": 29345, - "▁Wikiped": 29346, - "iate": 29347, - "Front": 29348, - "▁craw": 29349, - "▁Rak": 29350, - "▁зву": 29351, - "street": 29352, - "▁Agency": 29353, - "вало": 29354, - "▁Рас": 29355, - "▁mkdir": 29356, - "ację": 29357, - "▁shares": 29358, - "Story": 29359, - "▁remarks": 29360, - "▁keywords": 29361, - "Bob": 29362, - "▁toe": 29363, - "▁Vitt": 29364, - "▁rhs": 29365, - "ROP": 29366, - "oris": 29367, - "/@": 29368, - "сии": 29369, - "▁traverse": 29370, - "▁referencing": 29371, - "präsident": 29372, - "rong": 29373, - "'):": 29374, - "aties": 29375, - "AW": 29376, - "Outlet": 29377, - "▁évol": 29378, - "ikes": 29379, - "▁environmental": 29380, - "icum": 29381, - "▁Lied": 29382, - "▁warn": 29383, - "▁Butler": 29384, - "▁%),": 29385, - "▁Zeitschrift": 29386, - "▁Montr": 29387, - "важа": 29388, - "▁Mercur": 29389, - "jekte": 29390, - "meter": 29391, - "ducation": 29392, - "▁attributed": 29393, - "*$": 29394, - "▁unf": 29395, - "▁Vertrag": 29396, - "zien": 29397, - "▁Роб": 29398, - "lices": 29399, - "pply": 29400, - "ansen": 29401, - "▁zeit": 29402, - "▁immense": 29403, - "▁lutego": 29404, - "▁Bulgar": 29405, - "▁miembros": 29406, - "▁Националь": 29407, - "▁Allow": 29408, - "▁anglès": 29409, - "дви": 29410, - "▁Toy": 29411, - "туа": 29412, - "▁yard": 29413, - "(%": 29414, - "isser": 29415, - "▁golf": 29416, - "▁Ukrain": 29417, - "▁hosp": 29418, - "Include": 29419, - "▁Lisa": 29420, - "▁csal": 29421, - "▁Mira": 29422, - "recogn": 29423, - "▁Ке": 29424, - "▁hitting": 29425, - "кономі": 29426, - "▁Tournament": 29427, - "LOAD": 29428, - "▁Guardian": 29429, - "▁daher": 29430, - "▁timezone": 29431, - "▁tomcat": 29432, - "▁successor": 29433, - "▁Void": 29434, - "▁começ": 29435, - "▁converts": 29436, - "ächs": 29437, - "osex": 29438, - "xelles": 29439, - "aser": 29440, - "▁És": 29441, - "▁mou": 29442, - "▁ung": 29443, - "▁origen": 29444, - "▁Crow": 29445, - "▁Erd": 29446, - "▁sieben": 29447, - "lua": 29448, - "▁BB": 29449, - "RENT": 29450, - "▁piłkar": 29451, - "▁marque": 29452, - "▁Labour": 29453, - "viders": 29454, - "▁exempl": 29455, - "Sound": 29456, - "▁Wass": 29457, - "arrison": 29458, - "▁течение": 29459, - "▁Oficina": 29460, - "▁Daw": 29461, - "▁Kauf": 29462, - "ént": 29463, - "éső": 29464, - "▁=\"": 29465, - "▁kat": 29466, - "diction": 29467, - "▁Voll": 29468, - "▁highway": 29469, - "James": 29470, - "zeuge": 29471, - "▁modelo": 29472, - "Throw": 29473, - "▁Forum": 29474, - "(\"@": 29475, - "▁enfer": 29476, - "▁специаль": 29477, - "Numbers": 29478, - "▁Binary": 29479, - "▁Martínez": 29480, - "▁Stato": 29481, - "▁festiv": 29482, - "▁katol": 29483, - "▁Аб": 29484, - "▁limitation": 29485, - "▁STR": 29486, - "▁Официаль": 29487, - "ipes": 29488, - "▁Isn": 29489, - "▁ruled": 29490, - "▁cí": 29491, - "geber": 29492, - "▁lavoro": 29493, - "▁parentheses": 29494, - "оз": 29495, - "▁équipes": 29496, - "▁efficiently": 29497, - "▁Period": 29498, - "▁Regarding": 29499, - "leaf": 29500, - "▁similarity": 29501, - "▁gesture": 29502, - "datab": 29503, - "▁terminate": 29504, - "▁semantics": 29505, - "▁Alo": 29506, - "▁cig": 29507, - "▁OpenGL": 29508, - "▁heutigen": 29509, - "xaml": 29510, - "▁frequencies": 29511, - ")}.": 29512, - "▁threatened": 29513, - "тик": 29514, - "▁calcio": 29515, - "▁Riemann": 29516, - "slug": 29517, - "▁Finale": 29518, - "LR": 29519, - "▁Derby": 29520, - "▁още": 29521, - "▁deviation": 29522, - "ächen": 29523, - "▁Cris": 29524, - "ново": 29525, - "▁столі": 29526, - "▁relev": 29527, - "▁splendid": 29528, - "▁учё": 29529, - "erving": 29530, - "gable": 29531, - "▁générale": 29532, - "pom": 29533, - "▁Cheers": 29534, - "▁imprison": 29535, - "▁indent": 29536, - "▁analyz": 29537, - "▁revert": 29538, - "érer": 29539, - "▁phases": 29540, - "FirstName": 29541, - "▁mig": 29542, - "▁disturb": 29543, - "▁mixture": 29544, - "▁){": 29545, - "inture": 29546, - "▁Tried": 29547, - "▁sooner": 29548, - "▁pels": 29549, - "▁établ": 29550, - "etro": 29551, - "itie": 29552, - "▁quartier": 29553, - "▁гово": 29554, - "▁város": 29555, - "ufe": 29556, - "heten": 29557, - "хом": 29558, - "▁soap": 29559, - "utors": 29560, - "▁duch": 29561, - "syntax": 29562, - "▁tribe": 29563, - "▁chante": 29564, - "Tri": 29565, - "▁Mate": 29566, - "quality": 29567, - "uola": 29568, - "=\".": 29569, - "chk": 29570, - "▁всі": 29571, - "▁przeci": 29572, - "▁Meteor": 29573, - "▁scattered": 29574, - "Plus": 29575, - "trad": 29576, - "▁stackoverflow": 29577, - "▁retra": 29578, - "▁éditions": 29579, - "▁sain": 29580, - "cribe": 29581, - "ignon": 29582, - "ucker": 29583, - "▁мало": 29584, - "▁tenir": 29585, - "▁exports": 29586, - "▁auxili": 29587, - "▁]]": 29588, - "▁CBS": 29589, - "uniform": 29590, - "▁periodic": 29591, - "agrant": 29592, - "▁emple": 29593, - "Wil": 29594, - "▁fres": 29595, - "▁strutt": 29596, - "▁світ": 29597, - "▁betre": 29598, - "▁объек": 29599, - "тися": 29600, - "▁bisher": 29601, - "baum": 29602, - "ishi": 29603, - "▁Gazette": 29604, - "backgroundColor": 29605, - "jl": 29606, - "▁fiel": 29607, - "▁према": 29608, - "▁protagonista": 29609, - "▁Muhammad": 29610, - "▁simulate": 29611, - "▁Hook": 29612, - "fest": 29613, - "▁своих": 29614, - "Sender": 29615, - "▁listened": 29616, - "жі": 29617, - "jest": 29618, - "kord": 29619, - "Choice": 29620, - "▁hoofd": 29621, - "reducible": 29622, - "hpp": 29623, - "▁Wu": 29624, - "ši": 29625, - "▁Marse": 29626, - "▁soir": 29627, - "westen": 29628, - "emos": 29629, - "▁Duc": 29630, - "▁amerik": 29631, - "|}{": 29632, - "▁Gul": 29633, - "▁Sprache": 29634, - "▁mismatch": 29635, - "Scal": 29636, - "Pixel": 29637, - "EF": 29638, - "▁Sep": 29639, - "▁powiecie": 29640, - "urk": 29641, - "▁Napoli": 29642, - "▁neighbourhood": 29643, - "стоян": 29644, - "▁searches": 29645, - "yrus": 29646, - "пет": 29647, - "Help": 29648, - "pont": 29649, - "▁Orient": 29650, - "▁Alfonso": 29651, - "▁monitoring": 29652, - "iao": 29653, - "édé": 29654, - "▁César": 29655, - "шее": 29656, - "Shift": 29657, - "suit": 29658, - "coded": 29659, - "ното": 29660, - "▁Parti": 29661, - "▁lasci": 29662, - "▁awesome": 29663, - "usta": 29664, - "▁Сове": 29665, - "▁Fland": 29666, - "oom": 29667, - "▁devi": 29668, - "engelsk": 29669, - "endum": 29670, - "▁Pascal": 29671, - "▁Bind": 29672, - "▁siguientes": 29673, - "JB": 29674, - "▁Petersburg": 29675, - "▁incorrectly": 29676, - "▁Bash": 29677, - "▁pelos": 29678, - "▁zespo": 29679, - "NSURL": 29680, - "▁přek": 29681, - "▁Crime": 29682, - "nach": 29683, - "▁thrust": 29684, - "▁Cultura": 29685, - "WF": 29686, - "▁Solo": 29687, - "▁invas": 29688, - "▁individually": 29689, - "ibm": 29690, - "▁etapa": 29691, - "▁handed": 29692, - "▁wherever": 29693, - "▁interpolation": 29694, - "▁musée": 29695, - "▁CNN": 29696, - "idia": 29697, - "ństw": 29698, - "▁przew": 29699, - "ughing": 29700, - "▁actors": 29701, - "▁Oriental": 29702, - "▁convenience": 29703, - "▁miasta": 29704, - "brains": 29705, - "▁меся": 29706, - "▁infatti": 29707, - "▁AllMovie": 29708, - "▁critique": 29709, - "▁successo": 29710, - "ancouver": 29711, - "▁fá": 29712, - "ългар": 29713, - "▁wisdom": 29714, - "▁Phoenix": 29715, - "hole": 29716, - "▁información": 29717, - "▁Airlines": 29718, - ".«": 29719, - "mort": 29720, - "userId": 29721, - "▁*/\r": 29722, - "▁Congo": 29723, - "▁\"`": 29724, - "corr": 29725, - "▁problemas": 29726, - "▁bib": 29727, - "▁później": 29728, - "▁fileName": 29729, - "zott": 29730, - "macht": 29731, - "▁Ulrich": 29732, - "Cy": 29733, - "endpoint": 29734, - "▁sheep": 29735, - "▁ibn": 29736, - "Feed": 29737, - "▁sympathy": 29738, - "▁Ib": 29739, - "▁territorial": 29740, - "rating": 29741, - "дами": 29742, - "▁dst": 29743, - "ую": 29744, - "aho": 29745, - "▁sug": 29746, - "emia": 29747, - "▁ted": 29748, - "▁Api": 29749, - "▁Rica": 29750, - "▁MR": 29751, - "ńskim": 29752, - "▁Voor": 29753, - "▁devil": 29754, - "▁Фо": 29755, - "▁När": 29756, - "▁...)": 29757, - "▁vois": 29758, - "▁abbre": 29759, - "▁Männer": 29760, - "ximo": 29761, - "▁intellectual": 29762, - "▁tales": 29763, - "similar": 29764, - "neum": 29765, - "▁Orig": 29766, - "▁postal": 29767, - "▁hvor": 29768, - "▁identification": 29769, - "▁Од": 29770, - "uesto": 29771, - "▁../": 29772, - "▁bir": 29773, - "▁Лон": 29774, - "▁esempio": 29775, - "▁Eing": 29776, - "Expand": 29777, - "▁PRIMARY": 29778, - "▁Jin": 29779, - "▁však": 29780, - "ourses": 29781, - "▁Betty": 29782, - "▁WM": 29783, - "▁flask": 29784, - "hlen": 29785, - "▁Adel": 29786, - "laravel": 29787, - "▁дет": 29788, - "ською": 29789, - "▁Mundo": 29790, - "iczn": 29791, - "ifié": 29792, - "▁Мор": 29793, - "▁древ": 29794, - "DateFormat": 29795, - "ським": 29796, - "▁dated": 29797, - "коли": 29798, - "▁результате": 29799, - "\\).": 29800, - "▁delayed": 29801, - "sound": 29802, - "▁Мак": 29803, - "▁\"...": 29804, - "▁binnen": 29805, - "▁факуль": 29806, - "▁polygon": 29807, - "▁eggs": 29808, - "AtIndexPath": 29809, - "менталь": 29810, - "▁incred": 29811, - "chunk": 29812, - "webdriver": 29813, - "▁свобо": 29814, - "▁między": 29815, - "Received": 29816, - "▁Monde": 29817, - "▁JQuery": 29818, - "Butt": 29819, - "▁PDO": 29820, - "▁forec": 29821, - "▁discipline": 29822, - "chev": 29823, - "нат": 29824, - "▁redis": 29825, - "▁hunting": 29826, - "▁alk": 29827, - "▁proofs": 29828, - "PRI": 29829, - "▁chip": 29830, - "ésie": 29831, - "▁HO": 29832, - "▁rug": 29833, - "zos": 29834, - "▁sorte": 29835, - "▁zeigt": 29836, - "▁Physics": 29837, - "legte": 29838, - "▁proportional": 29839, - "▁toolbar": 29840, - "vement": 29841, - "notin": 29842, - "▁první": 29843, - "blah": 29844, - "▁présence": 29845, - "▁lloc": 29846, - "▁líder": 29847, - "▁Accept": 29848, - "▁Always": 29849, - "▁\"{": 29850, - "▁diversi": 29851, - "ikor": 29852, - "Period": 29853, - "жён": 29854, - "▁Alliance": 29855, - "▁relay": 29856, - "Bro": 29857, - "jön": 29858, - "▁Baud": 29859, - "▁Bian": 29860, - "')[": 29861, - "чив": 29862, - "▁Poss": 29863, - "▁Mitglieder": 29864, - "▁nev": 29865, - "Daniel": 29866, - "▁tends": 29867, - "▁compagnie": 29868, - "▁livres": 29869, - "lub": 29870, - "▁": 29871, - "e": 29872, - "t": 29873, - "a": 29874, - "i": 29875, - "n": 29876, - "o": 29877, - "r": 29878, - "s": 29879, - "l": 29880, - "d": 29881, - "h": 29882, - "c": 29883, - "u": 29884, - "m": 29885, - "p": 29886, - "g": 29887, - "f": 29888, - ".": 29889, - "b": 29890, - "y": 29891, - ",": 29892, - "w": 29893, - "v": 29894, - "k": 29895, - "1": 29896, - ")": 29897, - "(": 29898, - "-": 29899, - "0": 29900, - ":": 29901, - "I": 29902, - "S": 29903, - "о": 29904, - "\\": 29905, - "2": 29906, - "C": 29907, - "\"": 29908, - "A": 29909, - "а": 29910, - "T": 29911, - "{": 29912, - "}": 29913, - "/": 29914, - "'": 29915, - "x": 29916, - "и": 29917, - "_": 29918, - "е": 29919, - "z": 29920, - "н": 29921, - "=": 29922, - "E": 29923, - "M": 29924, - "P": 29925, - "j": 29926, - "р": 29927, - "D": 29928, - "9": 29929, - "*": 29930, - "L": 29931, - "т": 29932, - "B": 29933, - "R": 29934, - "с": 29935, - ";": 29936, - "#": 29937, - "$": 29938, - "q": 29939, - "N": 29940, - "3": 29941, - "в": 29942, - "F": 29943, - "л": 29944, - "5": 29945, - "4": 29946, - "8": 29947, - "é": 29948, - "O": 29949, - "H": 29950, - "к": 29951, - "`": 29952, - "6": 29953, - "G": 29954, - "7": 29955, - "W": 29956, - "д": 29957, - ">": 29958, - "м": 29959, - "у": 29960, - "[": 29961, - "]": 29962, - "V": 29963, - "п": 29964, - "U": 29965, - "<": 29966, - "J": 29967, - "K": 29968, - "г": 29969, - "я": 29970, - "і": 29971, - "з": 29972, - "?": 29973, - "+": 29974, - "б": 29975, - "á": 29976, - "й": 29977, - "ь": 29978, - "Y": 29979, - "ó": 29980, - "ч": 29981, - "ы": 29982, - "í": 29983, - "Q": 29984, - "^": 29985, - "ä": 29986, - "&": 29987, - "х": 29988, - "|": 29989, - "X": 29990, - "!": 29991, - "@": 29992, - "ü": 29993, - "–": 29994, - "%": 29995, - "ц": 29996, - "ö": 29997, - "ж": 29998, - "Z": 29999, - "è": 30000, - "à": 30001, - "ш": 30002, - "—": 30003, - "\r": 30004, - "ю": 30005, - "ł": 30006, - "»": 30007, - "С": 30008, - "«": 30009, - "’": 30010, - "ф": 30011, - "В": 30012, - "П": 30013, - "К": 30014, - "“": 30015, - "ј": 30016, - "М": 30017, - "А": 30018, - "ç": 30019, - "å": 30020, - "щ": 30021, - "~": 30022, - "ę": 30023, - "”": 30024, - "ą": 30025, - "č": 30026, - "Р": 30027, - "ї": 30028, - "Н": 30029, - "ú": 30030, - "Б": 30031, - "Д": 30032, - "ã": 30033, - "ß": 30034, - "ă": 30035, - "ě": 30036, - "ê": 30037, - "О": 30038, - "š": 30039, - "Г": 30040, - "Т": 30041, - "ż": 30042, - "ё": 30043, - "ž": 30044, - "ś": 30045, - "ñ": 30046, - "ř": 30047, - "ő": 30048, - "„": 30049, - "Л": 30050, - "э": 30051, - "ý": 30052, - "У": 30053, - "И": 30054, - "ъ": 30055, - "є": 30056, - "â": 30057, - "î": 30058, - "ò": 30059, - "З": 30060, - "Ф": 30061, - "É": 30062, - "ć": 30063, - "·": 30064, - "ș": 30065, - "ń": 30066, - "ț": 30067, - "Х": 30068, - "ô": 30069, - "Е": 30070, - "ù": 30071, - "ů": 30072, - "°": 30073, - "Ш": 30074, - "љ": 30075, - "Ч": 30076, - "ø": 30077, - "æ": 30078, - "њ": 30079, - " ": 30080, - " ": 30081, - "Э": 30082, - "ë": 30083, - "õ": 30084, - "ï": 30085, - "‘": 30086, - "†": 30087, - "²": 30088, - "ű": 30089, - "І": 30090, - "─": 30091, - "Ц": 30092, - "ћ": 30093, - "Ö": 30094, - "û": 30095, - "Я": 30096, - "ì": 30097, - "…": 30098, - "ō": 30099, - "Ж": 30100, - "Ю": 30101, - "Á": 30102, - "́": 30103, - "Ü": 30104, - "º": 30105, - "œ": 30106, - "ā": 30107, - "Č": 30108, - "ź": 30109, - "α": 30110, - "│": 30111, - "ا": 30112, - "À": 30113, - "═": 30114, - "Š": 30115, - "ђ": 30116, - "№": 30117, - " ": 30118, - "•": 30119, - "−": 30120, - "→": 30121, - "×": 30122, - "ο": 30123, - "₂": 30124, - "Ä": 30125, - "Î": 30126, - "Ś": 30127, - "đ": 30128, - "Å": 30129, - "ı": 30130, - "‎": 30131, - "ū": 30132, - "ν": 30133, - "Й": 30134, - "ª": 30135, - "ι": 30136, - "τ": 30137, - "ل": 30138, - "′": 30139, - "�": 30140, - "È": 30141, - "λ": 30142, - "": 30143, - "Ž": 30144, - "ς": 30145, - "ň": 30146, - "ρ": 30147, - "₁": 30148, - "Є": 30149, - "ī": 30150, - "ε": 30151, - "§": 30152, - "Ł": 30153, - "Ј": 30154, - "£": 30155, - "ر": 30156, - "Ż": 30157, - "¿": 30158, - "م": 30159, - "″": 30160, - "Ú": 30161, - "ن": 30162, - "ي": 30163, - "σ": 30164, - "´": 30165, - "​": 30166, - "μ": 30167, - "³": 30168, - "ş": 30169, - "π": 30170, - "و": 30171, - "د": 30172, - "κ": 30173, - "₃": 30174, - "Í": 30175, - "ˈ": 30176, - "ب": 30177, - "Ó": 30178, - "Ã": 30179, - "¡": 30180, - "€": 30181, - "ť": 30182, - "η": 30183, - "ə": 30184, - "ー": 30185, - "Щ": 30186, - "β": 30187, - "├": 30188, - "ð": 30189, - "ґ": 30190, - "­": 30191, - "υ": 30192, - "¹": 30193, - "₄": 30194, - "ت": 30195, - "י": 30196, - "γ": 30197, - "س": 30198, - "の": 30199, - "ğ": 30200, - "δ": 30201, - "ی": 30202, - "ン": 30203, - "ه": 30204, - "ו": 30205, - "ω": 30206, - "ί": 30207, - "█": 30208, - "θ": 30209, - "的": 30210, - "©": 30211, - "Â": 30212, - "↑": 30213, - ",": 30214, - "ː": 30215, - "ά": 30216, - "―": 30217, - "ع": 30218, - "Ç": 30219, - "₀": 30220, - "±": 30221, - "Ø": 30222, - "ď": 30223, - "Ř": 30224, - "Œ": 30225, - "½": 30226, - "└": 30227, - "ό": 30228, - "‚": 30229, - "ē": 30230, - "₅": 30231, - "Æ": 30232, - "Ș": 30233, - "ɛ": 30234, - "ה": 30235, - "ר": 30236, - "φ": 30237, - "₆": 30238, - "ė": 30239, - "ح": 30240, - "ف": 30241, - "ة": 30242, - "İ": 30243, - " ": 30244, - "←": 30245, - "║": 30246, - "ɔ": 30247, - "≤": 30248, - "ל": 30249, - "Đ": 30250, - "ա": 30251, - "Ō": 30252, - "א": 30253, - "്": 30254, - "ス": 30255, - "ش": 30256, - "大": 30257, - "ル": 30258, - "џ": 30259, - "イ": 30260, - "⟩": 30261, - " ": 30262, - "µ": 30263, - "∈": 30264, - "ق": 30265, - "⟨": 30266, - "。": 30267, - "Ґ": 30268, - "ा": 30269, - "ج": 30270, - "ʿ": 30271, - "ა": 30272, - "έ": 30273, - "χ": 30274, - "中": 30275, - "ב": 30276, - "ი": 30277, - "₈": 30278, - "ト": 30279, - "ή": 30280, - "ラ": 30281, - "Џ": 30282, - "ك": 30283, - "₇": 30284, - "מ": 30285, - "ת": 30286, - "一": 30287, - "Π": 30288, - "า": 30289, - "・": 30290, - "Σ": 30291, - "Α": 30292, - "Δ": 30293, - "ש": 30294, - "ز": 30295, - "्": 30296, - "ร": 30297, - "い": 30298, - "ʻ": 30299, - "Њ": 30300, - "₉": 30301, - "ʼ": 30302, - "リ": 30303, - "‐": 30304, - "ク": 30305, - "∞": 30306, - "⁄": 30307, - "ύ": 30308, - "Ş": 30309, - "ア": 30310, - "Ε": 30311, - "ɪ": 30312, - "人": 30313, - "Κ": 30314, - "∀": 30315, - "र": 30316, - "ッ": 30317, - "►": 30318, - "子": 30319, - "¬": 30320, - "خ": 30321, - "◄": 30322, - "َ": 30323, - "ע": 30324, - "日": 30325, - "し": 30326, - "ḥ": 30327, - "נ": 30328, - "山": 30329, - "、": 30330, - "Ї": 30331, - "る": 30332, - "文": 30333, - "Ñ": 30334, - "ド": 30335, - "ד": 30336, - "ն": 30337, - "Ђ": 30338, - "Γ": 30339, - "þ": 30340, - "’": 30341, - "®": 30342, - "ک": 30343, - "“": 30344, - "⚭": 30345, - "本": 30346, - "ℕ": 30347, - "น": 30348, - "ѝ": 30349, - "̶": 30350, - "อ": 30351, - "ў": 30352, - "に": 30353, - "数": 30354, - "ე": 30355, - "国": 30356, - "Ω": 30357, - " ": 30358, - "ǎ": 30359, - "ص": 30360, - "”": 30361, - "Μ": 30362, - " ": 30363, - "と": 30364, - "⁠": 30365, - "た": 30366, - "ط": 30367, - "ր": 30368, - "タ": 30369, - "ÿ": 30370, - "な": 30371, - "أ": 30372, - "シ": 30373, - "新": 30374, - "﹕": 30375, - "ʃ": 30376, - "ľ": 30377, - "ロ": 30378, - "⁴": 30379, - "்": 30380, - "⇒": 30381, - "ţ": 30382, - ":": 30383, - "Ț": 30384, - "ക": 30385, - "≥": 30386, - "ി": 30387, - "マ": 30388, - "ん": 30389, - "ṣ": 30390, - "ジ": 30391, - "是": 30392, - "이": 30393, - "⋅": 30394, - "田": 30395, - "を": 30396, - "道": 30397, - "ง": 30398, - "¨": 30399, - "ـ": 30400, - "เ": 30401, - "村": 30402, - "Ê": 30403, - "ם": 30404, - "›": 30405, - "用": 30406, - "ώ": 30407, - "天": 30408, - ")": 30409, - "་": 30410, - "镇": 30411, - "か": 30412, - "不": 30413, - "Τ": 30414, - "学": 30415, - "ư": 30416, - "有": 30417, - "ո": 30418, - "(": 30419, - "レ": 30420, - "گ": 30421, - "‏": 30422, - "フ": 30423, - "न": 30424, - "ก": 30425, - "ɑ": 30426, - "す": 30427, - "ח": 30428, - "上": 30429, - "‌": 30430, - "∧": 30431, - "ṭ": 30432, - "ק": 30433, - "ξ": 30434, - "¤": 30435, - "ि": 30436, - "会": 30437, - "ന": 30438, - "カ": 30439, - "ų": 30440, - "ま": 30441, - "ു": 30442, - "͡": 30443, - "क": 30444, - "া": 30445, - "小": 30446, - "ן": 30447, - "行": 30448, - "は": 30449, - "ʁ": 30450, - "Ő": 30451, - "Þ": 30452, - "り": 30453, - "キ": 30454, - "Λ": 30455, - "რ": 30456, - "三": 30457, - "が": 30458, - "コ": 30459, - "ζ": 30460, - "市": 30461, - "王": 30462, - "ℝ": 30463, - "Ź": 30464, - "う": 30465, - "て": 30466, - "区": 30467, - "ാ": 30468, - "‚": 30469, - "年": 30470, - "פ": 30471, - "ի": 30472, - "ſ": 30473, - "‹": 30474, - "त": 30475, - "ŏ": 30476, - "‑": 30477, - "̃": 30478, - "Ć": 30479, - "ى": 30480, - "「": 30481, - "」": 30482, - "ს": 30483, - "Ā": 30484, - "म": 30485, - "生": 30486, - "≠": 30487, - "Љ": 30488, - "स": 30489, - "↔": 30490, - "Ο": 30491, - "ว": 30492, - "ლ": 30493, - "成": 30494, - "定": 30495, - "ล": 30496, - "¶": 30497, - "כ": 30498, - "で": 30499, - "ּ": 30500, - "ม": 30501, - "个": 30502, - "和": 30503, - "ס": 30504, - "在": 30505, - "Β": 30506, - "ิ": 30507, - "Ι": 30508, - "⁵": 30509, - "ั": 30510, - "ɡ": 30511, - "━": 30512, - "ら": 30513, - "オ": 30514, - "¼": 30515, - "ե": 30516, - "バ": 30517, - "ָ": 30518, - "ŋ": 30519, - "ŭ": 30520, - "グ": 30521, - "⁶": 30522, - "Ь": 30523, - "⁰": 30524, - "方": 30525, - "บ": 30526, - "—": 30527, - "高": 30528, - "ệ": 30529, - "Ν": 30530, - "ѣ": 30531, - "ィ": 30532, - "地": 30533, - "月": 30534, - "Ô": 30535, - "™": 30536, - "ウ": 30537, - "き": 30538, - "公": 30539, - "ạ": 30540, - "ო": 30541, - "ɾ": 30542, - "่": 30543, - "出": 30544, - "法": 30545, - "Θ": 30546, - "ส": 30547, - "名": 30548, - "ย": 30549, - "ത": 30550, - "Φ": 30551, - "↓": 30552, - "れ": 30553, - "ג": 30554, - "Ё": 30555, - "ơ": 30556, - "下": 30557, - "ә": 30558, - "ψ": 30559, - "┼": 30560, - "ャ": 30561, - "√": 30562, - "¥": 30563, - "社": 30564, - "ṇ": 30565, - "さ": 30566, - "ِ": 30567, - "く": 30568, - "े": 30569, - "Ы": 30570, - "ἐ": 30571, - "テ": 30572, - "为": 30573, - "乡": 30574, - "川": 30575, - "ナ": 30576, - "之": 30577, - "字": 30578, - "ム": 30579, - "ी": 30580, - "海": 30581, - "ブ": 30582, - "≈": 30583, - "!": 30584, - "پ": 30585, - "¯": 30586, - "ἀ": 30587, - "ƒ": 30588, - "こ": 30589, - "ְ": 30590, - "東": 30591, - "明": 30592, - "ὶ": 30593, - "时": 30594, - "ท": 30595, - "ɨ": 30596, - "デ": 30597, - "️": 30598, - "ʊ": 30599, - "エ": 30600, - "南": 30601, - "西": 30602, - "ल": 30603, - "メ": 30604, - "プ": 30605, - "平": 30606, - "式": 30607, - "ῖ": 30608, - "қ": 30609, - "व": 30610, - "غ": 30611, - "Ò": 30612, - "家": 30613, - "ʒ": 30614, - "サ": 30615, - "≡": 30616, - "ダ": 30617, - "ต": 30618, - "∃": 30619, - "₹": 30620, - "प": 30621, - "第": 30622, - "ര": 30623, - "ض": 30624, - "▄": 30625, - "城": 30626, - "ミ": 30627, - "ɐ": 30628, - "¦": 30629, - "美": 30630, - "件": 30631, - "ნ": 30632, - "Ð": 30633, - "ַ": 30634, - "ニ": 30635, - "部": 30636, - "ņ": 30637, - "ǐ": 30638, - "ט": 30639, - "य": 30640, - "あ": 30641, - "¾": 30642, - "ả": 30643, - "ち": 30644, - "ュ": 30645, - "÷": 30646, - "女": 30647, - "神": 30648, - "♦": 30649, - "¢": 30650, - "以": 30651, - "้": 30652, - "র": 30653, - "太": 30654, - "্": 30655, - "チ": 30656, - "յ": 30657, - "前": 30658, - "金": 30659, - "ւ": 30660, - "野": 30661, - "北": 30662, - "ห": 30663, - "‰": 30664, - "っ": 30665, - "加": 30666, - "原": 30667, - "ʲ": 30668, - "置": 30669, - "安": 30670, - "ガ": 30671, - "我": 30672, - "Ḥ": 30673, - "യ": 30674, - "京": 30675, - "▀": 30676, - "მ": 30677, - "ვ": 30678, - "ʾ": 30679, - "∨": 30680, - "ִ": 30681, - "可": 30682, - "取": 30683, - "县": 30684, - "二": 30685, - "▒": 30686, - "理": 30687, - "自": 30688, - "信": 30689, - "代": 30690, - "ี": 30691, - "צ": 30692, - "်": 30693, - "द": 30694, - "⁸": 30695, - "̯": 30696, - "お": 30697, - "要": 30698, - "ῦ": 30699, - "க": 30700, - "ễ": 30701, - "ु": 30702, - "ƒ": 30703, - "ʰ": 30704, - "化": 30705, - "✓": 30706, - "പ": 30707, - "의": 30708, - "다": 30709, - "木": 30710, - "ُ": 30711, - "̀": 30712, - "ˌ": 30713, - "ह": 30714, - "パ": 30715, - "水": 30716, - "ế": 30717, - "ด": 30718, - "ズ": 30719, - "⁹": 30720, - "島": 30721, - "‍": 30722, - "も": 30723, - "正": 30724, - "■": 30725, - "آ": 30726, - "พ": 30727, - "内": 30728, - "Ì": 30729, - "ǔ": 30730, - "┬": 30731, - "作": 30732, - "合": 30733, - "ὸ": 30734, - "み": 30735, - "▼": 30736, - "ῶ": 30737, - "⊙": 30738, - "~": 30739, - "ị": 30740, - "ْ": 30741, - "回": 30742, - "了": 30743, - "所": 30744, - "事": 30745, - "表": 30746, - "ำ": 30747, - "分": 30748, - "⁷": 30749, - "ү": 30750, - "€": 30751, - "入": 30752, - "全": 30753, - "إ": 30754, - "里": 30755, - "Χ": 30756, - "ं": 30757, - "ハ": 30758, - "ค": 30759, - "⁻": 30760, - "モ": 30761, - "郎": 30762, - "据": 30763, - "●": 30764, - "州": 30765, - "∩": 30766, - "者": 30767, - "通": 30768, - "都": 30769, - "ℤ": 30770, - "♭": 30771, - "╌": 30772, - "つ": 30773, - "ḍ": 30774, - "江": 30775, - "ז": 30776, - "Ý": 30777, - "ө": 30778, - "์": 30779, - "到": 30780, - "ி": 30781, - "ʂ": 30782, - "对": 30783, - "스": 30784, - "使": 30785, - "ি": 30786, - "よ": 30787, - "Ἀ": 30788, - "Ï": 30789, - "∘": 30790, - "사": 30791, - "ন": 30792, - "世": 30793, - "ɕ": 30794, - "կ": 30795, - "უ": 30796, - "ട": 30797, - "ბ": 30798, - "ो": 30799, - "വ": 30800, - "果": 30801, - "十": 30802, - "ุ": 30803, - "藤": 30804, - "来": 30805, - "面": 30806, - "け": 30807, - "ĕ": 30808, - "ビ": 30809, - "这": 30810, - "지": 30811, - "ം": 30812, - "街": 30813, - "石": 30814, - "能": 30815, - "空": 30816, - "տ": 30817, - "ئ": 30818, - "武": 30819, - "ʹ": 30820, - "ϕ": 30821, - "后": 30822, - "ะ": 30823, - "元": 30824, - "ʔ": 30825, - "리": 30826, - "기": 30827, - "河": 30828, - "町": 30829, - "花": 30830, - "ὐ": 30831, - "类": 30832, - "░": 30833, - "物": 30834, - "Η": 30835, - "¸": 30836, - "ு": 30837, - "თ": 30838, - "ث": 30839, - "െ": 30840, - "╠": 30841, - "⊆": 30842, - "》": 30843, - "ツ": 30844, - "版": 30845, - "动": 30846, - "如": 30847, - "真": 30848, - "ɲ": 30849, - "号": 30850, - "ذ": 30851, - "정": 30852, - "林": 30853, - "書": 30854, - "民": 30855, - "口": 30856, - "ّ": 30857, - "示": 30858, - "മ": 30859, - "아": 30860, - "图": 30861, - "∪": 30862, - "戦": 30863, - "李": 30864, - "ല": 30865, - "《": 30866, - "光": 30867, - "白": 30868, - "心": 30869, - "த": 30870, - "ज": 30871, - "设": 30872, - "ί": 30873, - "路": 30874, - "ग": 30875, - "∥": 30876, - "한": 30877, - "最": 30878, - "Ћ": 30879, - "手": 30880, - "ս": 30881, - "?": 30882, - "型": 30883, - "ầ": 30884, - "セ": 30885, - "建": 30886, - "ェ": 30887, - "主": 30888, - "시": 30889, - "대": 30890, - "ῆ": 30891, - "‡": 30892, - "集": 30893, - "დ": 30894, - "目": 30895, - "Ρ": 30896, - "ァ": 30897, - "度": 30898, - "長": 30899, - "星": 30900, - "ノ": 30901, - "ộ": 30902, - "가": 30903, - "五": 30904, - "چ": 30905, - "로": 30906, - "ョ": 30907, - "重": 30908, - "于": 30909, - "发": 30910, - "史": 30911, - "ظ": 30912, - "ช": 30913, - "え": 30914, - "國": 30915, - "ĭ": 30916, - "ப": 30917, - "인": 30918, - "你": 30919, - "駅": 30920, - "‒": 30921, - "♥": 30922, - "多": 30923, - "ħ": 30924, - "Қ": 30925, - "ồ": 30926, - "士": 30927, - "四": 30928, - "┴": 30929, - "ம": 30930, - "司": 30931, - "ে": 30932, - "ὰ": 30933, - "∂": 30934, - "╬": 30935, - "次": 30936, - "Ľ": 30937, - "⟶": 30938, - "立": 30939, - "点": 30940, - "音": 30941, - "⠀": 30942, - "器": 30943, - "하": 30944, - "井": 30945, - "存": 30946, - "ֹ": 30947, - "当": 30948, - "Ë": 30949, - "★": 30950, - "寺": 30951, - "性": 30952, - "也": 30953, - "め": 30954, - "だ": 30955, - "位": 30956, - "ങ": 30957, - "ہ": 30958, - "值": 30959, - "古": 30960, - "გ": 30961, - "ব": 30962, - "院": 30963, - "േ": 30964, - "▶": 30965, - "ர": 30966, - "界": 30967, - "語": 30968, - "സ": 30969, - "수": 30970, - "ǒ": 30971, - "愛": 30972, - "✔": 30973, - "時": 30974, - "ọ": 30975, - "റ": 30976, - "մ": 30977, - "ケ": 30978, - "东": 30979, - "同": 30980, - "주": 30981, - "保": 30982, - "Õ": 30983, - "ố": 30984, - "ἰ": 30985, - "青": 30986, - "ゴ": 30987, - "体": 30988, - "清": 30989, - "相": 30990, - "จ": 30991, - "ء": 30992, - "情": 30993, - "𝕜": 30994, - "ক": 30995, - "ḫ": 30996, - "ờ": 30997, - "将": 30998, - "族": 30999, - "동": 31000, - "Υ": 31001, - "┌": 31002, - "ボ": 31003, - "宮": 31004, - "』": 31005, - "ম": 31006, - "『": 31007, - "ļ": 31008, - "श": 31009, - "ป": 31010, - "Ա": 31011, - "ब": 31012, - "자": 31013, - "政": 31014, - "ா": 31015, - "间": 31016, - "fi": 31017, - "松": 31018, - "ṃ": 31019, - "始": 31020, - "息": 31021, - "少": 31022, - "教": 31023, - "获": 31024, - "列": 31025, - "开": 31026, - "ტ": 31027, - "ワ": 31028, - "კ": 31029, - "科": 31030, - "春": 31031, - "治": 31032, - "吉": 31033, - "ས": 31034, - "ศ": 31035, - "ɒ": 31036, - "台": 31037, - "ネ": 31038, - "း": 31039, - "ĩ": 31040, - "工": 31041, - "ά": 31042, - "知": 31043, - "八": 31044, - "場": 31045, - "画": 31046, - "百": 31047, - "☆": 31048, - "記": 31049, - "得": 31050, - "ソ": 31051, - "氏": 31052, - "ာ": 31053, - "에": 31054, - "ল": 31055, - "ṛ": 31056, - "关": 31057, - "ġ": 31058, - "έ": 31059, - "∑": 31060, - "ベ": 31061, - "标": 31062, - "니": 31063, - "ὴ": 31064, - "ֵ": 31065, - "外": 31066, - "♠": 31067, - "わ": 31068, - "間": 31069, - "ภ": 31070, - "校": 31071, - "制": 31072, - "แ": 31073, - "力": 31074, - "門": 31075, - "好": 31076, - "ғ": 31077, - "Ù": 31078, - "ℓ": 31079, - "ֶ": 31080, - "는": 31081, - "┐": 31082, - "∗": 31083, - "指": 31084, - "色": 31085, - "返": 31086, - "馬": 31087, - "请": 31088, - "≫": 31089, - "風": 31090, - "ό": 31091, - "接": 31092, - "서": 31093, - "↳": 31094, - "せ": 31095, - "志": 31096, - "̲": 31097, - "魔": 31098, - "ң": 31099, - "更": 31100, - "程": 31101, - "김": 31102, - "郡": 31103, - "ོ": 31104, - "ũ": 31105, - "ച": 31106, - "利": 31107, - "県": 31108, - "周": 31109, - "そ": 31110, - "や": 31111, - "谷": 31112, - "香": 31113, - "♯": 31114, - "じ": 31115, - "،": 31116, - "期": 31117, - "∅": 31118, - "┘": 31119, - "初": 31120, - "福": 31121, - "片": 31122, - "ザ": 31123, - "動": 31124, - "参": 31125, - "성": 31126, - "Ə": 31127, - "╦": 31128, - "어": 31129, - "ხ": 31130, - "義": 31131, - "च": 31132, - "象": 31133, - "功": 31134, - "♂": 31135, - "도": 31136, - "고": 31137, - "过": 31138, - "վ": 31139, - "皇": 31140, - "特": 31141, - "ậ": 31142, - "长": 31143, - "英": 31144, - "ấ": 31145, - "ണ": 31146, - "Ъ": 31147, - "স": 31148, - "其": 31149, - "ত": 31150, - "流": 31151, - "除": 31152, - "일": 31153, - "ু": 31154, - "្": 31155, - "永": 31156, - "直": 31157, - "상": 31158, - "千": 31159, - "ắ": 31160, - "館": 31161, - "Ť": 31162, - "朝": 31163, - "ட": 31164, - "ɣ": 31165, - "单": 31166, - "ʀ": 31167, - "格": 31168, - "德": 31169, - "전": 31170, - "☺": 31171, - "ピ": 31172, - "歌": 31173, - "进": 31174, - "限": 31175, - "夫": 31176, - "트": 31177, - "⊢": 31178, - "園": 31179, - "量": 31180, - "土": 31181, - "放": 31182, - "码": 31183, - "等": 31184, - "系": 31185, - "∼": 31186, - "華": 31187, - "↵": 31188, - "소": 31189, - "常": 31190, - "否": 31191, - "見": 31192, - "源": 31193, - "ׁ": 31194, - "实": 31195, - "博": 31196, - "라": 31197, - "원": 31198, - "보": 31199, - "⊕": 31200, - "解": 31201, - "〜": 31202, - "男": 31203, - "দ": 31204, - "ポ": 31205, - "ろ": 31206, - "나": 31207, - "ག": 31208, - "無": 31209, - "Û": 31210, - "̥": 31211, - "ұ": 31212, - "查": 31213, - "̣": 31214, - "╗": 31215, - "╩": 31216, - "条": 31217, - "য": 31218, - "ὁ": 31219, - "後": 31220, - "他": 31221, - "网": 31222, - "ல": 31223, - "≃": 31224, - "화": 31225, - "ە": 31226, - "阿": 31227, - "ေ": 31228, - "户": 31229, - "∫": 31230, - "구": 31231, - "ར": 31232, - "မ": 31233, - "▸": 31234, - "լ": 31235, - "○": 31236, - "命": 31237, - "就": 31238, - "龍": 31239, - "君": 31240, - "夏": 31241, - "": 31242, - "言": 31243, - "先": 31244, - "➜": 31245, - "შ": 31246, - "ძ": 31247, - "ਾ": 31248, - "வ": 31249, - "ど": 31250, - "ヒ": 31251, - "ไ": 31252, - "ன": 31253, - "ば": 31254, - "ギ": 31255, - "գ": 31256, - "ἄ": 31257, - "ヤ": 31258, - "典": 31259, - "府": 31260, - "̄": 31261, - "신": 31262, - "组": 31263, - "改": 31264, - "ὲ": 31265, - "华": 31266, - "与": 31267, - "调": 31268, - "╝": 31269, - "ヴ": 31270, - "ქ": 31271, - "由": 31272, - "修": 31273, - "學": 31274, - "♣": 31275, - "消": 31276, - "符": 31277, - "ʌ": 31278, - "부": 31279, - "ớ": 31280, - "‾": 31281, - "▲": 31282, - "录": 31283, - "ള": 31284, - "연": 31285, - "을": 31286, - "ひ": 31287, - "영": 31288, - "┤": 31289, - "已": 31290, - "陽": 31291, - "င": 31292, - "국": 31293, - "容": 31294, - "未": 31295, - "宗": 31296, - "ᴇ": 31297, - "び": 31298, - "장": 31299, - "龙": 31300, - "්": 31301, - "提": 31302, - "ĝ": 31303, - "六": 31304, - "形": 31305, - "제": 31306, - "Հ": 31307, - "伊": 31308, - "ϵ": 31309, - "ข": 31310, - "Ű": 31311, - "ゃ": 31312, - "火": 31313, - "Ṣ": 31314, - "佐": 31315, - "⊥": 31316, - "̪": 31317, - "ứ": 31318, - "□": 31319, - "结": 31320, - "九": 31321, - "雄": 31322, - "թ": 31323, - "ា": 31324, - "而": 31325, - "བ": 31326, - "우": 31327, - "张": 31328, - "ट": 31329, - "ष": 31330, - "向": 31331, - "ῥ": 31332, - "选": 31333, - "공": 31334, - "ゲ": 31335, - "ʐ": 31336, - "仁": 31337, - "堂": 31338, - "ך": 31339, - "ု": 31340, - "ἔ": 31341, - "അ": 31342, - "ề": 31343, - "ད": 31344, - "선": 31345, - "오": 31346, - "久": 31347, - "œ": 31348, - "义": 31349, - "अ": 31350, - "╔": 31351, - "无": 31352, - "
": 31353, - "은": 31354, - "ʷ": 31355, - "那": 31356, - "線": 31357, - "务": 31358, - "基": 31359, - "属": 31360, - "配": 31361, - "미": 31362, - "軍": 31363, - "โ": 31364, - "津": 31365, - "完": 31366, - "研": 31367, - "注": 31368, - "失": 31369, - "应": 31370, - "က": 31371, - "╚": 31372, - "友": 31373, - "章": 31374, - "Ψ": 31375, - "求": 31376, - "ण": 31377, - "경": 31378, - "‬": 31379, - "भ": 31380, - "们": 31381, - "模": 31382, - "需": 31383, - "ச": 31384, - "電": 31385, - "প": 31386, - "դ": 31387, - "へ": 31388, - "此": 31389, - "夜": 31390, - "或": 31391, - "橋": 31392, - "根": 31393, - "Ī": 31394, - "玉": 31395, - "ู": 31396, - "ṅ": 31397, - "交": 31398, - "品": 31399, - "良": 31400, - "ང": 31401, - "ォ": 31402, - "则": 31403, - "開": 31404, - "Ζ": 31405, - "문": 31406, - "被": 31407, - "조": 31408, - "株": 31409, - "记": 31410, - "會": 31411, - "经": 31412, - "ू": 31413, - "ょ": 31414, - "转": 31415, - "崎": 31416, - "마": 31417, - "⌘": 31418, - "比": 31419, - "造": 31420, - "ܐ": 31421, - "ื": 31422, - "没": 31423, - "现": 31424, - "七": 31425, - "Ά": 31426, - "商": 31427, - "ை": 31428, - "机": 31429, - "阳": 31430, - "ĉ": 31431, - "角": 31432, - "站": 31433, - "բ": 31434, - "해": 31435, - "及": 31436, - "ध": 31437, - "術": 31438, - "认": 31439, - "‘": 31440, - "创": 31441, - "編": 31442, - "ղ": 31443, - "ḩ": 31444, - "伝": 31445, - "岡": 31446, - "ड": 31447, - "ホ": 31448, - "港": 31449, - "任": 31450, - "登": 31451, - "ི": 31452, - "็": 31453, - "布": 31454, - "究": 31455, - "帝": 31456, - "여": 31457, - "산": 31458, - "န": 31459, - "◦": 31460, - "密": 31461, - "变": 31462, - "序": 31463, - "♀": 31464, - "∣": 31465, - "计": 31466, - "曲": 31467, - "Ă": 31468, - "ύ": 31469, - "ʋ": 31470, - "传": 31471, - "】": 31472, - "包": 31473, - "意": 31474, - "去": 31475, - "沙": 31476, - "⸮": 31477, - "【": 31478, - "写": 31479, - "超": 31480, - "ய": 31481, - "今": 31482, - "┈": 31483, - "森": 31484, - "ි": 31485, - "⊗": 31486, - "비": 31487, - "հ": 31488, - "Ḩ": 31489, - "ǫ": 31490, - "黄": 31491, - "∙": 31492, - "드": 31493, - "🌍": 31494, - "景": 31495, - "湖": 31496, - "ք": 31497, - "ိ": 31498, - "ⁿ": 31499, - "̂": 31500, - "ペ": 31501, - "何": 31502, - "宇": 31503, - "張": 31504, - "语": 31505, - "老": 31506, - "例": 31507, - "Ṭ": 31508, - "鉄": 31509, - "克": 31510, - "☉": 31511, - "™": 31512, - "ɹ": 31513, - "ἱ": 31514, - "ⴰ": 31515, - "然": 31516, - "를": 31517, - "ǧ": 31518, - "報": 31519, - "服": 31520, - "Ď": 31521, - "想": 31522, - "‖": 31523, - "ユ": 31524, - "実": 31525, - "载": 31526, - "요": 31527, - "ℚ": 31528, - "波": 31529, - "马": 31530, - "状": 31531, - "线": 31532, - "유": 31533, - "洋": 31534, - "万": 31535, - "진": 31536, - "জ": 31537, - "添": 31538, - "球": 31539, - "機": 31540, - "支": 31541, - "显": 31542, - "拉": 31543, - "ὑ": 31544, - "送": 31545, - "隊": 31546, - "ธ": 31547, - "处": 31548, - "師": 31549, - "⊂": 31550, - "像": 31551, - "়": 31552, - "黒": 31553, - "ց": 31554, - "": 31555, - "ủ": 31556, - "只": 31557, - "起": 31558, - "段": 31559, - "တ": 31560, - "區": 31561, - "選": 31562, - "천": 31563, - "業": 31564, - "算": 31565, - "广": 31566, - "រ": 31567, - "视": 31568, - "秋": 31569, - "因": 31570, - "년": 31571, - "ے": 31572, - "输": 31573, - "̱": 31574, - "Մ": 31575, - "∆": 31576, - "康": 31577, - "세": 31578, - "思": 31579, - "死": 31580, - "聖": 31581, - "민": 31582, - "-": 31583, - "头": 31584, - "ർ": 31585, - "∉": 31586, - "車": 31587, - "┃": 31588, - "▇": 31589, - "按": 31590, - "⍵": 31591, - "夢": 31592, - "汉": 31593, - "从": 31594, - "ী": 31595, - "题": 31596, - "ˆ": 31597, - "ἡ": 31598, - "展": 31599, - "省": 31600, - "ུ": 31601, - "葉": 31602, - "호": 31603, - "ਰ": 31604, - "素": 31605, - "関": 31606, - "그": 31607, - ";": 31608, - "න": 31609, - "页": 31610, - "共": 31611, - "宿": 31612, - "态": 31613, - "ན": 31614, - "技": 31615, - "乐": 31616, - "控": 31617, - "移": 31618, - "影": 31619, - "ụ": 31620, - "ゆ": 31621, - "ご": 31622, - "್": 31623, - "管": 31624, - "ൾ": 31625, - "╣": 31626, - "戸": 31627, - "⇔": 31628, - "函": 31629, - "ẓ": 31630, - "尾": 31631, - "场": 31632, - "介": 31633, - "": 31634, - "育": 31635, - "ර": 31636, - "泉": 31637, - "ൽ": 31638, - "说": 31639, - "换": 31640, - "必": 31641, - "紀": 31642, - "མ": 31643, - "ེ": 31644, - "ợ": 31645, - "ൻ": 31646, - "宝": 31647, - "気": 31648, - "门": 31649, - "令": 31650, - "左": 31651, - "漢": 31652, - "若": 31653, - "屋": 31654, - "局": 31655, - "打": 31656, - "発": 31657, - "问": 31658, - "恋": 31659, - "兵": 31660, - "別": 31661, - "ા": 31662, - "Ս": 31663, - "߬": 31664, - "গ": 31665, - "并": 31666, - "ख": 31667, - "ή": 31668, - "节": 31669, - "ʑ": 31670, - "ץ": 31671, - "Ḫ": 31672, - "ℂ": 31673, - "引": 31674, - "统": 31675, - "智": 31676, - "̩": 31677, - "ै": 31678, - "电": 31679, - "현": 31680, - "✅": 31681, - "赤": 31682, - "断": 31683, - "ね": 31684, - "称": 31685, - "শ": 31686, - "身": 31687, - "首": 31688, - "付": 31689, - "⅓": 31690, - "ਸ": 31691, - "連": 31692, - "ზ": 31693, - "官": 31694, - "持": 31695, - "奈": 31696, - "御": 31697, - "親": 31698, - "군": 31699, - "库": 31700, - "秀": 31701, - "址": 31702, - "守": 31703, - "活": 31704, - "ལ": 31705, - "ふ": 31706, - "藏": 31707, - "ស": 31708, - "竹": 31709, - "草": 31710, - "結": 31711, - "ා": 31712, - "昌": 31713, - "樹": 31714, - "ள": 31715, - "무": 31716, - "হ": 31717, - "ゼ": 31718, - "̈": 31719, - "շ": 31720, - "勝": 31721, - "足": 31722, - "ရ": 31723, - "위": 31724, - "į": 31725, - "Ἰ": 31726, - "航": 31727, - "陳": 31728, - "业": 31729, - "富": 31730, - "雪": 31731, - "आ": 31732, - "再": 31733, - "안": 31734, - "默": 31735, - "박": 31736, - "용": 31737, - "✿": 31738, - "楽": 31739, - "沢": 31740, - "羅": 31741, - "Ė": 31742, - "ʎ": 31743, - "忠": 31744, - "错": 31745, - "단": 31746, - "면": 31747, - "ķ": 31748, - "桥": 31749, - "雲": 31750, - "该": 31751, - "ṯ": 31752, - "岩": 31753, - "남": 31754, - "ỹ": 31755, - "专": 31756, - "切": 31757, - "店": 31758, - "朱": 31759, - "ף": 31760, - "ず": 31761, - "幸": 31762, - "母": 31763, - "ɫ": 31764, - "々": 31765, - "∷": 31766, - "串": 31767, - "击": 31768, - "Ἐ": 31769, - "設": 31770, - "⊤": 31771, - "ₗ": 31772, - "經": 31773, - "강": 31774, - "ပ": 31775, - "।": 31776, - "ѐ": 31777, - "ᾶ": 31778, - "➖": 31779, - "座": 31780, - "씨": 31781, - "ぶ": 31782, - "Ţ": 31783, - "云": 31784, - "告": 31785, - "変": 31786, - "试": 31787, - "隆": 31788, - "개": 31789, - "պ": 31790, - "判": 31791, - "劉": 31792, - "˜": 31793, - "ˠ": 31794, - "编": 31795, - "ณ": 31796, - "ữ": 31797, - "达": 31798, - "Ě": 31799, - "ܝ": 31800, - "ြ": 31801, - "ḷ": 31802, - "右": 31803, - "들": 31804, - "ŝ": 31805, - "ӏ": 31806, - "్": 31807, - "എ": 31808, - "ற": 31809, - "复": 31810, - "看": 31811, - "話": 31812, - "坂": 31813, - "尔": 31814, - "衛": 31815, - "զ": 31816, - "차": 31817, - "丸": 31818, - "样": 31819, - "鬼": 31820, - "़": 31821, - "학": 31822, - "喜": 31823, - "斯": 31824, - "銀": 31825, - "만": 31826, - "Ξ": 31827, - "ც": 31828, - "群": 31829, - "近": 31830, - "塔": 31831, - "ϊ": 31832, - "ந": 31833, - "む": 31834, - "确": 31835, - "索": 31836, - "∇": 31837, - "非": 31838, - "望": 31839, - "❯": 31840, - "希": 31841, - "ỳ": 31842, - "甲": 31843, - "越": 31844, - "鳥": 31845, - "麻": 31846, - "雅": 31847, - "拳": 31848, - "ក": 31849, - "溪": 31850, - "测": 31851, - "话": 31852, - "池": 31853, - "菜": 31854, - "食": 31855, - "터": 31856, - "ਿ": 31857, - "渡": 31858, - "速": 31859, - "ھ": 31860, - "ರ": 31861, - "陈": 31862, - "健": 31863, - "ো": 31864, - "ක": 31865, - "ὺ": 31866, - "军": 31867, - "庄": 31868, - "红": 31869, - "Ħ": 31870, - "論": 31871, - "Ÿ": 31872, - "Έ": 31873, - "ự": 31874, - "孝": 31875, - "頭": 31876, - "飛": 31877, - "˚": 31878, - "▓": 31879, - "ً": 31880, - "‭": 31881, - "么": 31882, - "達": 31883, - "ѫ": 31884, - "巴": 31885, - "洞": 31886, - "貴": 31887, - "项": 31888, - "ദ": 31889, - "ɵ": 31890, - "̍": 31891, - "ҡ": 31892, - "种": 31893, - "运": 31894, - "식": 31895, - "ྱ": 31896, - "ḳ": 31897, - "彦": 31898, - "⥤": 31899, - "书": 31900, - "构": 31901, - "米": 31902, - "连": 31903, - "操": 31904, - "装": 31905, - "과": 31906, - "ぐ": 31907, - "反": 31908, - "̌": 31909, - "仮": 31910, - "员": 31911, - "昭": 31912, - "ശ": 31913, - "兴": 31914, - "客": 31915, - "删": 31916, - "ම": 31917, - "ව": 31918, - "პ": 31919, - "ċ": 31920, - "ഷ": 31921, - "သ": 31922, - "ᵉ": 31923, - "居": 31924, - "타": 31925, - "𝓝": 31926, - "थ": 31927, - "現": 31928, - "ˇ": 31929, - "종": 31930, - "助": 31931, - "唐": 31932, - "瀬": 31933, - "ន": 31934, - "微": 31935, - "1": 31936, - "Ġ": 31937, - "ほ": 31938, - "舞": 31939, - "내": 31940, - "중": 31941, - "Ē": 31942, - "导": 31943, - "效": 31944, - "방": 31945, - "ḏ": 31946, - "深": 31947, - "梅": 31948, - "料": 31949, - "월": 31950, - "每": 31951, - "洲": 31952, - "회": 31953, - "茶": 31954, - "败": 31955, - "ഞ": 31956, - "ể": 31957, - "ヨ": 31958, - "些": 31959, - "双": 31960, - "嘉": 31961, - "모": 31962, - "바": 31963, - "ษ": 31964, - "進": 31965, - "음": 31966, - "ญ": 31967, - "丁": 31968, - "故": 31969, - "計": 31970, - "遠": 31971, - "교": 31972, - "재": 31973, - "候": 31974, - "房": 31975, - "명": 31976, - "两": 31977, - "ფ": 31978, - "才": 31979, - "합": 31980, - "止": 31981, - "番": 31982, - "ɯ": 31983, - "奇": 31984, - "怪": 31985, - "联": 31986, - "역": 31987, - "泰": 31988, - "백": 31989, - "ὀ": 31990, - "げ": 31991, - "べ": 31992, - "边": 31993, - "还": 31994, - "黃": 31995, - "왕": 31996, - "收": 31997, - "弘": 31998, - "给": 31999, - "▁": 32007, - "▁": 32008, - "▁": 32009, - "▁": 32010, - "▁": 32011, - "▁": 32012, - "▁": 32013, - "▁": 32014, - "": 32015 - }, - "merges": [ - [ - "▁", - "t" - ], - [ - "e", - "r" - ], - [ - "i", - "n" - ], - [ - "▁", - "a" - ], - [ - "e", - "n" - ], - [ - "o", - "n" - ], - [ - "▁t", - "h" - ], - [ - "▁", - "th" - ], - [ - "e", - "s" - ], - [ - "▁", - "s" - ], - [ - "▁", - "d" - ], - [ - "a", - "t" - ], - [ - "o", - "r" - ], - [ - "a", - "n" - ], - [ - "▁", - "c" - ], - [ - "i", - "s" - ], - [ - "r", - "e" - ], - [ - "i", - "t" - ], - [ - "▁t", - "he" - ], - [ - "▁th", - "e" - ], - [ - "▁", - "the" - ], - [ - "a", - "r" - ], - [ - "l", - "e" - ], - [ - "▁", - "w" - ], - [ - "▁", - "p" - ], - [ - "o", - "u" - ], - [ - "a", - "l" - ], - [ - "▁", - "f" - ], - [ - "▁", - "m" - ], - [ - "e", - "d" - ], - [ - "▁", - "o" - ], - [ - "▁", - "b" - ], - [ - "o", - "m" - ], - [ - "io", - "n" - ], - [ - "i", - "on" - ], - [ - "in", - "g" - ], - [ - "i", - "ng" - ], - [ - "i", - "c" - ], - [ - "a", - "s" - ], - [ - "e", - "l" - ], - [ - "en", - "t" - ], - [ - "e", - "nt" - ], - [ - "▁i", - "n" - ], - [ - "▁", - "in" - ], - [ - "▁", - "h" - ], - [ - "n", - "d" - ], - [ - "e", - "t" - ], - [ - "▁", - "l" - ], - [ - "▁", - "n" - ], - [ - "s", - "t" - ], - [ - "▁t", - "o" - ], - [ - "▁", - "to" - ], - [ - "c", - "h" - ], - [ - "▁", - "I" - ], - [ - "r", - "o" - ], - [ - "i", - "l" - ], - [ - "▁o", - "f" - ], - [ - "▁", - "of" - ], - [ - "d", - "e" - ], - [ - "c", - "t" - ], - [ - "▁", - "(" - ], - [ - "a", - "m" - ], - [ - "▁", - "C" - ], - [ - "▁d", - "e" - ], - [ - "▁", - "de" - ], - [ - "▁", - "S" - ], - [ - "▁", - "u" - ], - [ - "▁", - "A" - ], - [ - "▁", - "\\" - ], - [ - "▁", - "e" - ], - [ - "▁a", - "nd" - ], - [ - "▁an", - "d" - ], - [ - "▁", - "and" - ], - [ - "▁", - "T" - ], - [ - "o", - "l" - ], - [ - "▁", - "v" - ], - [ - "i", - "m" - ], - [ - "o", - "t" - ], - [ - "a", - "d" - ], - [ - "u", - "t" - ], - [ - "▁", - "g" - ], - [ - "e", - "m" - ], - [ - "u", - "r" - ], - [ - "i", - "d" - ], - [ - "▁", - "*" - ], - [ - "i", - "g" - ], - [ - "r", - "a" - ], - [ - "▁r", - "e" - ], - [ - "▁", - "re" - ], - [ - "▁i", - "s" - ], - [ - "▁", - "is" - ], - [ - "q", - "u" - ], - [ - "o", - "w" - ], - [ - "▁", - "M" - ], - [ - "es", - "t" - ], - [ - "e", - "st" - ], - [ - "▁", - "y" - ], - [ - "s", - "e" - ], - [ - "v", - "e" - ], - [ - "c", - "e" - ], - [ - "i", - "e" - ], - [ - "u", - "n" - ], - [ - "▁", - "P" - ], - [ - "▁", - "B" - ], - [ - "a", - "g" - ], - [ - "u", - "l" - ], - [ - "▁", - "=" - ], - [ - "h", - "e" - ], - [ - "en", - "d" - ], - [ - "e", - "nd" - ], - [ - "od", - "e" - ], - [ - "o", - "de" - ], - [ - "te", - "r" - ], - [ - "t", - "er" - ], - [ - "me", - "nt" - ], - [ - "men", - "t" - ], - [ - "m", - "ent" - ], - [ - "o", - "s" - ], - [ - "▁", - "D" - ], - [ - "i", - "f" - ], - [ - "at", - "ion" - ], - [ - "ati", - "on" - ], - [ - "atio", - "n" - ], - [ - "a", - "tion" - ], - [ - "▁f", - "or" - ], - [ - "▁fo", - "r" - ], - [ - "▁", - "for" - ], - [ - "▁", - "r" - ], - [ - "▁", - "L" - ], - [ - "▁y", - "ou" - ], - [ - "▁yo", - "u" - ], - [ - "▁", - "you" - ], - [ - "▁b", - "e" - ], - [ - "▁", - "be" - ], - [ - "l", - "y" - ], - [ - "ve", - "r" - ], - [ - "v", - "er" - ], - [ - "a", - "b" - ], - [ - "t", - "e" - ], - [ - "▁i", - "t" - ], - [ - "▁", - "it" - ], - [ - "▁o", - "n" - ], - [ - "▁", - "on" - ], - [ - "r", - "i" - ], - [ - "u", - "s" - ], - [ - "▁", - "\"" - ], - [ - "▁w", - "h" - ], - [ - "▁", - "wh" - ], - [ - "▁c", - "on" - ], - [ - "▁co", - "n" - ], - [ - "▁", - "con" - ], - [ - "▁", - "H" - ], - [ - "▁s", - "t" - ], - [ - "▁", - "st" - ], - [ - "i", - "r" - ], - [ - "▁", - "E" - ], - [ - "▁", - "F" - ], - [ - "c", - "k" - ], - [ - "▁a", - "n" - ], - [ - "▁", - "an" - ], - [ - "t", - "h" - ], - [ - "e", - "g" - ], - [ - "a", - "y" - ], - [ - "it", - "h" - ], - [ - "i", - "th" - ], - [ - "▁", - "R" - ], - [ - "is", - "t" - ], - [ - "i", - "st" - ], - [ - "an", - "d" - ], - [ - "a", - "nd" - ], - [ - "▁t", - "hat" - ], - [ - "▁th", - "at" - ], - [ - "▁", - "that" - ], - [ - "▁a", - "l" - ], - [ - "▁", - "al" - ], - [ - "▁", - "$" - ], - [ - "▁", - "#" - ], - [ - "o", - "d" - ], - [ - "u", - "m" - ], - [ - "▁", - "W" - ], - [ - "h", - "t" - ], - [ - "co", - "de" - ], - [ - "cod", - "e" - ], - [ - "c", - "ode" - ], - [ - "▁", - "G" - ], - [ - "at", - "e" - ], - [ - "a", - "te" - ], - [ - "es", - "s" - ], - [ - "e", - "ss" - ], - [ - "▁", - "N" - ], - [ - "er", - "e" - ], - [ - "e", - "re" - ], - [ - "p", - "p" - ], - [ - "▁a", - "s" - ], - [ - "▁", - "as" - ], - [ - "▁s", - "e" - ], - [ - "▁", - "se" - ], - [ - "▁p", - "ro" - ], - [ - "▁pr", - "o" - ], - [ - "▁", - "pro" - ], - [ - "▁w", - "ith" - ], - [ - "▁wit", - "h" - ], - [ - "▁", - "with" - ], - [ - "p", - "e" - ], - [ - "▁", - "k" - ], - [ - "er", - "s" - ], - [ - "e", - "rs" - ], - [ - "p", - "t" - ], - [ - ")", - ";" - ], - [ - "l", - "o" - ], - [ - "▁c", - "om" - ], - [ - "▁co", - "m" - ], - [ - "▁", - "com" - ], - [ - "am", - "e" - ], - [ - "a", - "me" - ], - [ - "▁", - "`" - ], - [ - "▁C", - "om" - ], - [ - "▁Co", - "m" - ], - [ - "▁", - "Com" - ], - [ - "i", - "a" - ], - [ - "an", - "t" - ], - [ - "a", - "nt" - ], - [ - "▁l", - "a" - ], - [ - "▁", - "la" - ], - [ - "▁", - "{" - ], - [ - "▁e", - "n" - ], - [ - "▁", - "en" - ], - [ - "ct", - "ion" - ], - [ - "c", - "tion" - ], - [ - "▁e", - "x" - ], - [ - "▁", - "ex" - ], - [ - "l", - "d" - ], - [ - "u", - "b" - ], - [ - "▁", - "j" - ], - [ - "l", - "a" - ], - [ - "u", - "e" - ], - [ - "▁", - "J" - ], - [ - "ic", - "h" - ], - [ - "i", - "ch" - ], - [ - "▁d", - "o" - ], - [ - "▁", - "do" - ], - [ - "▁", - "O" - ], - [ - "▁q", - "u" - ], - [ - "▁", - "qu" - ], - [ - "i", - "v" - ], - [ - "or", - "t" - ], - [ - "o", - "rt" - ], - [ - "ar", - "t" - ], - [ - "a", - "rt" - ], - [ - "▁u", - "n" - ], - [ - "▁", - "un" - ], - [ - "▁#", - "#" - ], - [ - "▁", - "##" - ], - [ - "▁t", - "his" - ], - [ - "▁th", - "is" - ], - [ - "▁", - "this" - ], - [ - "k", - "e" - ], - [ - "▁h", - "a" - ], - [ - "▁", - "ha" - ], - [ - "▁", - "-" - ], - [ - "ou", - "t" - ], - [ - "o", - "ut" - ], - [ - "▁T", - "he" - ], - [ - "▁Th", - "e" - ], - [ - "▁", - "The" - ], - [ - "▁n", - "ot" - ], - [ - "▁no", - "t" - ], - [ - "▁", - "not" - ], - [ - "▁n", - "e" - ], - [ - "▁", - "ne" - ], - [ - "il", - "l" - ], - [ - "i", - "ll" - ], - [ - "▁l", - "e" - ], - [ - "▁", - "le" - ], - [ - "c", - "i" - ], - [ - "ro", - "m" - ], - [ - "r", - "om" - ], - [ - "in", - "e" - ], - [ - "i", - "ne" - ], - [ - "/", - "/" - ], - [ - "o", - "p" - ], - [ - "eg", - "in" - ], - [ - "e", - "gin" - ], - [ - "▁Com", - "ment" - ], - [ - "▁Comm", - "ent" - ], - [ - "▁", - "Comment" - ], - [ - "be", - "gin" - ], - [ - "beg", - "in" - ], - [ - "b", - "egin" - ], - [ - "с", - "т" - ], - [ - "as", - "s" - ], - [ - "a", - "ss" - ], - [ - "i", - "z" - ], - [ - ")", - "." - ], - [ - "o", - "g" - ], - [ - "▁", - "п" - ], - [ - "▁o", - "r" - ], - [ - "▁", - "or" - ], - [ - "▁w", - "as" - ], - [ - "▁wa", - "s" - ], - [ - "▁", - "was" - ], - [ - "▁a", - "t" - ], - [ - "▁", - "at" - ], - [ - "ou", - "r" - ], - [ - "o", - "ur" - ], - [ - "▁", - "i" - ], - [ - "ai", - "n" - ], - [ - "a", - "in" - ], - [ - "▁", - "K" - ], - [ - "н", - "а" - ], - [ - "▁", - "V" - ], - [ - "g", - "e" - ], - [ - "▁s", - "u" - ], - [ - "▁", - "su" - ], - [ - "a", - "p" - ], - [ - "ag", - "e" - ], - [ - "a", - "ge" - ], - [ - "ou", - "ld" - ], - [ - "oul", - "d" - ], - [ - "o", - "uld" - ], - [ - "n", - "e" - ], - [ - "a", - "v" - ], - [ - "x", - "t" - ], - [ - "or", - "e" - ], - [ - "o", - "re" - ], - [ - "il", - "e" - ], - [ - "i", - "le" - ], - [ - "-", - "-" - ], - [ - "▁", - "в" - ], - [ - "▁b", - "y" - ], - [ - "▁", - "by" - ], - [ - "l", - "i" - ], - [ - "at", - "h" - ], - [ - "a", - "th" - ], - [ - "р", - "а" - ], - [ - "be", - "r" - ], - [ - "b", - "er" - ], - [ - "ac", - "h" - ], - [ - "a", - "ch" - ], - [ - "al", - "l" - ], - [ - "a", - "ll" - ], - [ - "▁T", - "h" - ], - [ - "▁", - "Th" - ], - [ - "ul", - "t" - ], - [ - "u", - "lt" - ], - [ - "▁", - "}" - ], - [ - "▁", - "U" - ], - [ - "▁u", - "s" - ], - [ - "▁", - "us" - ], - [ - "▁", - "z" - ], - [ - "us", - "t" - ], - [ - "u", - "st" - ], - [ - "▁h", - "ave" - ], - [ - "▁ha", - "ve" - ], - [ - "▁hav", - "e" - ], - [ - "▁", - "have" - ], - [ - "li", - "c" - ], - [ - "l", - "ic" - ], - [ - "н", - "и" - ], - [ - "▁c", - "an" - ], - [ - "▁ca", - "n" - ], - [ - "▁", - "can" - ], - [ - "t", - "r" - ], - [ - "co", - "m" - ], - [ - "c", - "om" - ], - [ - ")", - "," - ], - [ - "▁I", - "n" - ], - [ - "▁", - "In" - ], - [ - "in", - "d" - ], - [ - "i", - "nd" - ], - [ - "el", - "l" - ], - [ - "e", - "ll" - ], - [ - "▁f", - "rom" - ], - [ - "▁fr", - "om" - ], - [ - "▁fro", - "m" - ], - [ - "▁", - "from" - ], - [ - "о", - "в" - ], - [ - "t", - "o" - ], - [ - "▁", - "[" - ], - [ - "ab", - "le" - ], - [ - "abl", - "e" - ], - [ - "a", - "ble" - ], - [ - "os", - "t" - ], - [ - "o", - "st" - ], - [ - "▁c", - "h" - ], - [ - "▁", - "ch" - ], - [ - "ec", - "t" - ], - [ - "e", - "ct" - ], - [ - "ig", - "ht" - ], - [ - "igh", - "t" - ], - [ - "in", - "t" - ], - [ - "i", - "nt" - ], - [ - "▁", - "'" - ], - [ - "▁a", - "re" - ], - [ - "▁ar", - "e" - ], - [ - "▁", - "are" - ], - [ - "▁i", - "m" - ], - [ - "▁", - "im" - ], - [ - "▁s", - "h" - ], - [ - "▁", - "sh" - ], - [ - "▁", - "<" - ], - [ - "▁A", - "n" - ], - [ - "▁", - "An" - ], - [ - "▁", - "с" - ], - [ - "at", - "a" - ], - [ - "a", - "ta" - ], - [ - "ir", - "e" - ], - [ - "i", - "re" - ], - [ - "▁t", - "r" - ], - [ - "▁", - "tr" - ], - [ - "co", - "n" - ], - [ - "c", - "on" - ], - [ - "or", - "d" - ], - [ - "o", - "rd" - ], - [ - "it", - "y" - ], - [ - "i", - "ty" - ], - [ - "ar", - "d" - ], - [ - "a", - "rd" - ], - [ - "▁h", - "e" - ], - [ - "▁", - "he" - ], - [ - "▁b", - "ut" - ], - [ - "▁bu", - "t" - ], - [ - "▁", - "but" - ], - [ - "o", - "c" - ], - [ - "=", - "\"" - ], - [ - "▁p", - "r" - ], - [ - "▁", - "pr" - ], - [ - "ur", - "e" - ], - [ - "u", - "re" - ], - [ - "pe", - "r" - ], - [ - "p", - "er" - ], - [ - "ac", - "k" - ], - [ - "a", - "ck" - ], - [ - "or", - "k" - ], - [ - "on", - "g" - ], - [ - "o", - "ng" - ], - [ - "an", - "s" - ], - [ - "a", - "ns" - ], - [ - "к", - "о" - ], - [ - "pl", - "e" - ], - [ - "p", - "le" - ], - [ - "▁d", - "es" - ], - [ - "▁de", - "s" - ], - [ - "▁", - "des" - ], - [ - "o", - "k" - ], - [ - "or", - "m" - ], - [ - "o", - "rm" - ], - [ - "we", - "r" - ], - [ - "w", - "er" - ], - [ - "a", - "k" - ], - [ - "p", - "r" - ], - [ - "as", - "e" - ], - [ - "a", - "se" - ], - [ - "▁e", - "l" - ], - [ - "▁", - "el" - ], - [ - "p", - "h" - ], - [ - "a", - "c" - ], - [ - "▁u", - "nd" - ], - [ - "▁un", - "d" - ], - [ - "▁", - "und" - ], - [ - "▁a", - "r" - ], - [ - "▁", - "ar" - ], - [ - "▁i", - "f" - ], - [ - "▁", - "if" - ], - [ - "u", - "d" - ], - [ - "p", - "s" - ], - [ - "it", - "e" - ], - [ - "i", - "te" - ], - [ - "bl", - "e" - ], - [ - "b", - "le" - ], - [ - "н", - "о" - ], - [ - "fe", - "r" - ], - [ - "f", - "er" - ], - [ - "p", - "l" - ], - [ - "iv", - "e" - ], - [ - "i", - "ve" - ], - [ - "an", - "g" - ], - [ - "a", - "ng" - ], - [ - "en", - "s" - ], - [ - "e", - "ns" - ], - [ - "р", - "о" - ], - [ - "▁s", - "o" - ], - [ - "▁", - "so" - ], - [ - "s", - "o" - ], - [ - "as", - "t" - ], - [ - "a", - "st" - ], - [ - "(", - ")" - ], - [ - "sw", - "er" - ], - [ - "s", - "wer" - ], - [ - "r", - "u" - ], - [ - "ie", - "s" - ], - [ - "i", - "es" - ], - [ - "▁", - ":" - ], - [ - "a", - "u" - ], - [ - "o", - "v" - ], - [ - "р", - "е" - ], - [ - "г", - "о" - ], - [ - "▁d", - "er" - ], - [ - "▁de", - "r" - ], - [ - "▁", - "der" - ], - [ - "▁m", - "y" - ], - [ - "▁", - "my" - ], - [ - "▁w", - "e" - ], - [ - "▁", - "we" - ], - [ - "▁m", - "e" - ], - [ - "▁", - "me" - ], - [ - "n", - "t" - ], - [ - "▁a", - "d" - ], - [ - "▁", - "ad" - ], - [ - "ur", - "n" - ], - [ - "u", - "rn" - ], - [ - "▁y", - "our" - ], - [ - "▁you", - "r" - ], - [ - "▁yo", - "ur" - ], - [ - "▁", - "your" - ], - [ - ":/", - "/" - ], - [ - ":", - "//" - ], - [ - "ar", - "e" - ], - [ - "a", - "re" - ], - [ - "▁a", - "ll" - ], - [ - "▁al", - "l" - ], - [ - "▁", - "all" - ], - [ - "f", - "f" - ], - [ - "i", - "o" - ], - [ - "es", - "tion" - ], - [ - "est", - "ion" - ], - [ - "esti", - "on" - ], - [ - "im", - "e" - ], - [ - "i", - "me" - ], - [ - "▁e", - "r" - ], - [ - "▁", - "er" - ], - [ - "la", - "ss" - ], - [ - "las", - "s" - ], - [ - "l", - "ass" - ], - [ - "▁", - "и" - ], - [ - "▁wh", - "ich" - ], - [ - "▁", - "which" - ], - [ - "om", - "e" - ], - [ - "o", - "me" - ], - [ - "on", - "t" - ], - [ - "o", - "nt" - ], - [ - "▁p", - "ar" - ], - [ - "▁pa", - "r" - ], - [ - "▁", - "par" - ], - [ - "▁m", - "a" - ], - [ - "▁", - "ma" - ], - [ - "▁", - "Y" - ], - [ - "\"", - "," - ], - [ - "▁", - "о" - ], - [ - "f", - "t" - ], - [ - "ia", - "l" - ], - [ - "i", - "al" - ], - [ - "c", - "c" - ], - [ - "ou", - "nd" - ], - [ - "oun", - "d" - ], - [ - "o", - "und" - ], - [ - "▁l", - "i" - ], - [ - "▁", - "li" - ], - [ - "▁re", - "s" - ], - [ - "▁r", - "es" - ], - [ - "▁", - "res" - ], - [ - "et", - "h" - ], - [ - "e", - "th" - ], - [ - "je", - "ct" - ], - [ - "j", - "ect" - ], - [ - "▁a", - "pp" - ], - [ - "▁ap", - "p" - ], - [ - "▁", - "app" - ], - [ - "▁S", - "t" - ], - [ - "▁", - "St" - ], - [ - "ic", - "e" - ], - [ - "i", - "ce" - ], - [ - "▁a", - "m" - ], - [ - "▁", - "am" - ], - [ - "ac", - "t" - ], - [ - "a", - "ct" - ], - [ - "▁d", - "el" - ], - [ - "▁de", - "l" - ], - [ - "▁", - "del" - ], - [ - "g", - "r" - ], - [ - "at", - "ed" - ], - [ - "ate", - "d" - ], - [ - "a", - "ted" - ], - [ - "ie", - "r" - ], - [ - "i", - "er" - ], - [ - "▁a", - "b" - ], - [ - "▁", - "ab" - ], - [ - "▁e", - "t" - ], - [ - "▁", - "et" - ], - [ - "al", - "ly" - ], - [ - "all", - "y" - ], - [ - ".", - "." - ], - [ - "po", - "rt" - ], - [ - "por", - "t" - ], - [ - "p", - "ort" - ], - [ - "i", - "k" - ], - [ - "▁p", - "er" - ], - [ - "▁pe", - "r" - ], - [ - "▁", - "per" - ], - [ - "▁c", - "ont" - ], - [ - "▁con", - "t" - ], - [ - "▁co", - "nt" - ], - [ - "▁", - "cont" - ], - [ - "р", - "и" - ], - [ - "к", - "а" - ], - [ - "se", - "r" - ], - [ - "s", - "er" - ], - [ - "л", - "и" - ], - [ - "l", - "l" - ], - [ - "ie", - "w" - ], - [ - "i", - "ew" - ], - [ - "ig", - "n" - ], - [ - "i", - "gn" - ], - [ - "_", - "{" - ], - [ - "pu", - "t" - ], - [ - "p", - "ut" - ], - [ - "on", - "e" - ], - [ - "o", - "ne" - ], - [ - "un", - "ction" - ], - [ - "unc", - "tion" - ], - [ - "unct", - "ion" - ], - [ - "▁d", - "i" - ], - [ - "▁", - "di" - ], - [ - "ar", - "y" - ], - [ - "a", - "ry" - ], - [ - "it", - "ion" - ], - [ - "iti", - "on" - ], - [ - "i", - "tion" - ], - [ - "m", - "a" - ], - [ - "е", - "н" - ], - [ - "ge", - "t" - ], - [ - "g", - "et" - ], - [ - "▁l", - "o" - ], - [ - "▁", - "lo" - ], - [ - "▁v", - "al" - ], - [ - "▁va", - "l" - ], - [ - "▁", - "val" - ], - [ - "▁", - "Q" - ], - [ - "ra", - "n" - ], - [ - "r", - "an" - ], - [ - "▁", - "д" - ], - [ - "en", - "ce" - ], - [ - "enc", - "e" - ], - [ - "▁w", - "ork" - ], - [ - "▁wor", - "k" - ], - [ - "▁", - "work" - ], - [ - "▁н", - "а" - ], - [ - "▁", - "на" - ], - [ - "i", - "p" - ], - [ - "it", - "em" - ], - [ - "ite", - "m" - ], - [ - "i", - "tem" - ], - [ - "yp", - "e" - ], - [ - "y", - "pe" - ], - [ - "▁", - "&" - ], - [ - "▁h", - "is" - ], - [ - "▁hi", - "s" - ], - [ - "▁", - "his" - ], - [ - "▁u", - "se" - ], - [ - "▁us", - "e" - ], - [ - "▁", - "use" - ], - [ - "de", - "r" - ], - [ - "d", - "er" - ], - [ - "▁An", - "swer" - ], - [ - "▁Ans", - "wer" - ], - [ - "▁", - "Answer" - ], - [ - "▁w", - "ill" - ], - [ - "▁wil", - "l" - ], - [ - "▁", - "will" - ], - [ - "iz", - "e" - ], - [ - "i", - "ze" - ], - [ - "т", - "а" - ], - [ - "lo", - "w" - ], - [ - "l", - "ow" - ], - [ - "▁C", - "h" - ], - [ - "▁", - "Ch" - ], - [ - "▁g", - "et" - ], - [ - "▁ge", - "t" - ], - [ - "▁", - "get" - ], - [ - "id", - "e" - ], - [ - "i", - "de" - ], - [ - "ou", - "s" - ], - [ - "o", - "us" - ], - [ - "in", - "k" - ], - [ - "pt", - "ion" - ], - [ - "p", - "tion" - ], - [ - "л", - "а" - ], - [ - "tu", - "rn" - ], - [ - "t", - "urn" - ], - [ - "un", - "g" - ], - [ - "u", - "ng" - ], - [ - "e", - "c" - ], - [ - "u", - "g" - ], - [ - "fo", - "rm" - ], - [ - "for", - "m" - ], - [ - "f", - "orm" - ], - [ - "re", - "s" - ], - [ - "r", - "es" - ], - [ - "ht", - "t" - ], - [ - "h", - "tt" - ], - [ - "ou", - "g" - ], - [ - "o", - "ug" - ], - [ - "л", - "ь" - ], - [ - "▁n", - "o" - ], - [ - "▁", - "no" - ], - [ - "c", - "l" - ], - [ - "▁r", - "o" - ], - [ - "▁", - "ro" - ], - [ - "▁o", - "ne" - ], - [ - "▁on", - "e" - ], - [ - "▁", - "one" - ], - [ - "t", - "t" - ], - [ - "cr", - "i" - ], - [ - "c", - "ri" - ], - [ - "d", - "u" - ], - [ - "▁u", - "p" - ], - [ - "▁", - "up" - ], - [ - "т", - "о" - ], - [ - "(", - "\"" - ], - [ - "▁o", - "b" - ], - [ - "▁", - "ob" - ], - [ - "w", - "e" - ], - [ - "or", - "y" - ], - [ - "o", - "ry" - ], - [ - "▁e", - "st" - ], - [ - "▁es", - "t" - ], - [ - "▁", - "est" - ], - [ - "er", - "y" - ], - [ - "e", - "ry" - ], - [ - "ie", - "l" - ], - [ - "i", - "el" - ], - [ - "st", - "r" - ], - [ - "s", - "tr" - ], - [ - "o", - "b" - ], - [ - "▁qu", - "e" - ], - [ - "▁q", - "ue" - ], - [ - "▁", - "que" - ], - [ - "ia", - "n" - ], - [ - "i", - "an" - ], - [ - "▁o", - "ut" - ], - [ - "▁ou", - "t" - ], - [ - "▁", - "out" - ], - [ - "▁p", - "l" - ], - [ - "▁", - "pl" - ], - [ - "▁n", - "ew" - ], - [ - "▁ne", - "w" - ], - [ - "▁", - "new" - ], - [ - "к", - "и" - ], - [ - "▁", - "+" - ], - [ - "r", - "y" - ], - [ - "ot", - "h" - ], - [ - "o", - "th" - ], - [ - "th", - "er" - ], - [ - "the", - "r" - ], - [ - "t", - "her" - ], - [ - "▁v", - "ar" - ], - [ - "▁va", - "r" - ], - [ - "▁", - "var" - ], - [ - "▁w", - "ould" - ], - [ - "▁wo", - "uld" - ], - [ - "▁s", - "er" - ], - [ - "▁se", - "r" - ], - [ - "▁", - "ser" - ], - [ - "ter", - "n" - ], - [ - "te", - "rn" - ], - [ - "t", - "ern" - ], - [ - "te", - "xt" - ], - [ - "tex", - "t" - ], - [ - "t", - "ext" - ], - [ - "▁t", - "here" - ], - [ - "▁th", - "ere" - ], - [ - "▁the", - "re" - ], - [ - "▁ther", - "e" - ], - [ - "▁", - "there" - ], - [ - "is", - "h" - ], - [ - "i", - "sh" - ], - [ - "ro", - "r" - ], - [ - "r", - "or" - ], - [ - "т", - "е" - ], - [ - "▁s", - "et" - ], - [ - "▁se", - "t" - ], - [ - "▁", - "set" - ], - [ - "▁", - "@" - ], - [ - "▁п", - "о" - ], - [ - "▁", - "по" - ], - [ - "▁t", - "e" - ], - [ - "▁", - "te" - ], - [ - "e", - "x" - ], - [ - "▁re", - "turn" - ], - [ - "▁ret", - "urn" - ], - [ - "▁", - "return" - ], - [ - "ai", - "l" - ], - [ - "a", - "il" - ], - [ - "▁a", - "ny" - ], - [ - "▁an", - "y" - ], - [ - "▁", - "any" - ], - [ - "▁I", - "t" - ], - [ - "▁", - "It" - ], - [ - "▁f", - "unction" - ], - [ - "▁fun", - "ction" - ], - [ - "▁func", - "tion" - ], - [ - "▁", - "function" - ], - [ - "{", - "\\" - ], - [ - "'", - "," - ], - [ - "é", - "s" - ], - [ - "al", - "e" - ], - [ - "a", - "le" - ], - [ - "а", - "н" - ], - [ - "▁w", - "hen" - ], - [ - "▁wh", - "en" - ], - [ - "▁whe", - "n" - ], - [ - "▁", - "when" - ], - [ - "i", - "b" - ], - [ - "▁g", - "o" - ], - [ - "▁", - "go" - ], - [ - "an", - "ce" - ], - [ - "anc", - "e" - ], - [ - "▁h", - "ad" - ], - [ - "▁ha", - "d" - ], - [ - "▁", - "had" - ], - [ - "▁Q", - "u" - ], - [ - "▁", - "Qu" - ], - [ - "▁c", - "omp" - ], - [ - "▁com", - "p" - ], - [ - "▁co", - "mp" - ], - [ - "▁", - "comp" - ], - [ - "л", - "е" - ], - [ - "▁", - "з" - ], - [ - "ma", - "th" - ], - [ - "mat", - "h" - ], - [ - "m", - "ath" - ], - [ - "▁h", - "as" - ], - [ - "▁ha", - "s" - ], - [ - "▁", - "has" - ], - [ - "▁", - "м" - ], - [ - "▁p", - "re" - ], - [ - "▁pr", - "e" - ], - [ - "▁", - "pre" - ], - [ - "en", - "er" - ], - [ - "ene", - "r" - ], - [ - "e", - "ner" - ], - [ - "▁p", - "art" - ], - [ - "▁par", - "t" - ], - [ - "▁pa", - "rt" - ], - [ - "▁", - "part" - ], - [ - "el", - "f" - ], - [ - "▁d", - "ie" - ], - [ - "▁di", - "e" - ], - [ - "▁", - "die" - ], - [ - "▁l", - "ike" - ], - [ - "▁li", - "ke" - ], - [ - "▁lik", - "e" - ], - [ - "▁", - "like" - ], - [ - "ra", - "y" - ], - [ - "r", - "ay" - ], - [ - "ir", - "st" - ], - [ - "irs", - "t" - ], - [ - "▁d", - "is" - ], - [ - "▁di", - "s" - ], - [ - "▁", - "dis" - ], - [ - "▁m", - "an" - ], - [ - "▁ma", - "n" - ], - [ - "▁", - "man" - ], - [ - "ri", - "t" - ], - [ - "r", - "it" - ], - [ - "▁t", - "hen" - ], - [ - "▁th", - "en" - ], - [ - "▁the", - "n" - ], - [ - "▁", - "then" - ], - [ - "▁c", - "lass" - ], - [ - "▁cl", - "ass" - ], - [ - "▁cla", - "ss" - ], - [ - "▁clas", - "s" - ], - [ - "▁", - "class" - ], - [ - "pr", - "o" - ], - [ - "p", - "ro" - ], - [ - "▁p", - "o" - ], - [ - "▁", - "po" - ], - [ - "▁u", - "sing" - ], - [ - "▁us", - "ing" - ], - [ - "▁", - "using" - ], - [ - "e", - "b" - ], - [ - "▁c", - "ode" - ], - [ - "▁co", - "de" - ], - [ - "▁cod", - "e" - ], - [ - "▁", - "code" - ], - [ - "ow", - "n" - ], - [ - "o", - "wn" - ], - [ - "▁s", - "ome" - ], - [ - "▁so", - "me" - ], - [ - "▁som", - "e" - ], - [ - "▁", - "some" - ], - [ - "ce", - "s" - ], - [ - "c", - "es" - ], - [ - "▁$", - "\\" - ], - [ - "▁", - "$\\" - ], - [ - "е", - "р" - ], - [ - "le", - "ct" - ], - [ - "l", - "ect" - ], - [ - "▁a", - "u" - ], - [ - "▁", - "au" - ], - [ - "is", - "ch" - ], - [ - "isc", - "h" - ], - [ - "i", - "sch" - ], - [ - "▁c", - "ol" - ], - [ - "▁co", - "l" - ], - [ - "▁", - "col" - ], - [ - "▁", - "–" - ], - [ - "u", - "p" - ], - [ - "on", - "s" - ], - [ - "o", - "ns" - ], - [ - "▁a", - "dd" - ], - [ - "▁ad", - "d" - ], - [ - "▁", - "add" - ], - [ - "il", - "d" - ], - [ - "i", - "ld" - ], - [ - "is", - "s" - ], - [ - "i", - "ss" - ], - [ - "va", - "l" - ], - [ - "v", - "al" - ], - [ - "ou", - "nt" - ], - [ - "oun", - "t" - ], - [ - "o", - "unt" - ], - [ - "le", - "s" - ], - [ - "l", - "es" - ], - [ - "ve", - "nt" - ], - [ - "ven", - "t" - ], - [ - "v", - "ent" - ], - [ - "▁", - "Z" - ], - [ - "I", - "n" - ], - [ - "ro", - "w" - ], - [ - "r", - "ow" - ], - [ - "ea", - "r" - ], - [ - "e", - "ar" - ], - [ - "at", - "ions" - ], - [ - "ation", - "s" - ], - [ - "ati", - "ons" - ], - [ - "atio", - "ns" - ], - [ - "a", - "h" - ], - [ - "qu", - "e" - ], - [ - "q", - "ue" - ], - [ - "ub", - "lic" - ], - [ - "u", - "blic" - ], - [ - "an", - "k" - ], - [ - "▁s", - "p" - ], - [ - "▁", - "sp" - ], - [ - "▁W", - "h" - ], - [ - "▁", - "Wh" - ], - [ - "--", - "--" - ], - [ - "---", - "-" - ], - [ - "-", - "---" - ], - [ - "s", - "k" - ], - [ - "e", - "w" - ], - [ - "ag", - "s" - ], - [ - "a", - "gs" - ], - [ - "т", - "и" - ], - [ - "an", - "n" - ], - [ - "a", - "nn" - ], - [ - "▁", - "—" - ], - [ - "er", - "t" - ], - [ - "e", - "rt" - ], - [ - "ac", - "e" - ], - [ - "a", - "ce" - ], - [ - "sc", - "h" - ], - [ - "s", - "ch" - ], - [ - "▁n", - "eed" - ], - [ - "▁ne", - "ed" - ], - [ - "▁", - "need" - ], - [ - "▁", - "à" - ], - [ - "ie", - "n" - ], - [ - "i", - "en" - ], - [ - "ou", - "gh" - ], - [ - "oug", - "h" - ], - [ - "o", - "ugh" - ], - [ - "н", - "е" - ], - [ - "▁d", - "ef" - ], - [ - "▁de", - "f" - ], - [ - "▁", - "def" - ], - [ - "i", - "j" - ], - [ - "er", - "n" - ], - [ - "e", - "rn" - ], - [ - "▁w", - "hat" - ], - [ - "▁wh", - "at" - ], - [ - "▁", - "what" - ], - [ - "▁A", - "r" - ], - [ - "▁", - "Ar" - ], - [ - "w", - "o" - ], - [ - "m", - "l" - ], - [ - "<", - "/" - ], - [ - "▁R", - "e" - ], - [ - "▁", - "Re" - ], - [ - "▁e", - "s" - ], - [ - "▁", - "es" - ], - [ - "▁in", - "st" - ], - [ - "▁ins", - "t" - ], - [ - "▁", - "inst" - ], - [ - "b", - "o" - ], - [ - "a", - "z" - ], - [ - "▁#", - "##" - ], - [ - "▁##", - "#" - ], - [ - "▁", - "б" - ], - [ - "er", - "m" - ], - [ - "e", - "rm" - ], - [ - "▁A", - "l" - ], - [ - "▁", - "Al" - ], - [ - "le", - "d" - ], - [ - "l", - "ed" - ], - [ - "д", - "а" - ], - [ - "te", - "n" - ], - [ - "t", - "en" - ], - [ - "se", - "t" - ], - [ - "s", - "et" - ], - [ - "л", - "о" - ], - [ - "▁c", - "omm" - ], - [ - "▁com", - "m" - ], - [ - "▁co", - "mm" - ], - [ - "▁", - "comm" - ], - [ - "s", - "h" - ], - [ - "в", - "а" - ], - [ - "▁", - "/" - ], - [ - "▁d", - "ata" - ], - [ - "▁da", - "ta" - ], - [ - "▁dat", - "a" - ], - [ - "▁", - "data" - ], - [ - "▁/", - "/" - ], - [ - "▁", - "//" - ], - [ - "]", - "(" - ], - [ - "▁s", - "tr" - ], - [ - "▁st", - "r" - ], - [ - "▁", - "str" - ], - [ - "os", - "e" - ], - [ - "o", - "se" - ], - [ - "▁U", - "n" - ], - [ - "▁", - "Un" - ], - [ - "ve", - "n" - ], - [ - "v", - "en" - ], - [ - "S", - "t" - ], - [ - "..", - "." - ], - [ - ".", - ".." - ], - [ - "▁", - "С" - ], - [ - "ys", - "t" - ], - [ - "y", - "st" - ], - [ - "▁", - "«" - ], - [ - "ic", - "k" - ], - [ - "i", - "ck" - ], - [ - "i", - "x" - ], - [ - "pa", - "r" - ], - [ - "p", - "ar" - ], - [ - "▁", - "у" - ], - [ - "▁w", - "ant" - ], - [ - "▁wa", - "nt" - ], - [ - "n", - "g" - ], - [ - "ot", - "e" - ], - [ - "o", - "te" - ], - [ - "▁g", - "r" - ], - [ - "▁", - "gr" - ], - [ - "▁d", - "u" - ], - [ - "▁", - "du" - ], - [ - "▁", - "." - ], - [ - "un", - "d" - ], - [ - "u", - "nd" - ], - [ - "▁on", - "ly" - ], - [ - "▁", - "only" - ], - [ - "▁s", - "a" - ], - [ - "▁", - "sa" - ], - [ - "el", - "y" - ], - [ - "e", - "ly" - ], - [ - "ve", - "rs" - ], - [ - "ver", - "s" - ], - [ - "v", - "ers" - ], - [ - "▁e", - "nt" - ], - [ - "▁en", - "t" - ], - [ - "▁", - "ent" - ], - [ - ")", - ")" - ], - [ - "(", - "'" - ], - [ - "▁m", - "od" - ], - [ - "▁mo", - "d" - ], - [ - "▁", - "mod" - ], - [ - "av", - "a" - ], - [ - "a", - "va" - ], - [ - "to", - "n" - ], - [ - "t", - "on" - ], - [ - "▁sh", - "ould" - ], - [ - "▁sho", - "uld" - ], - [ - "▁", - "should" - ], - [ - "em", - "ent" - ], - [ - "eme", - "nt" - ], - [ - "emen", - "t" - ], - [ - "e", - "ment" - ], - [ - "▁f", - "orm" - ], - [ - "▁for", - "m" - ], - [ - "▁fo", - "rm" - ], - [ - "▁", - "form" - ], - [ - "▁al", - "so" - ], - [ - "▁als", - "o" - ], - [ - "▁", - "also" - ], - [ - "▁s", - "c" - ], - [ - "▁", - "sc" - ], - [ - "in", - "gs" - ], - [ - "ing", - "s" - ], - [ - "▁Y", - "ou" - ], - [ - "▁", - "You" - ], - [ - "ó", - "n" - ], - [ - "▁k", - "n" - ], - [ - "▁", - "kn" - ], - [ - "()", - ";" - ], - [ - "(", - ");" - ], - [ - "▁", - "|" - ], - [ - "▁w", - "ere" - ], - [ - "▁we", - "re" - ], - [ - "▁wer", - "e" - ], - [ - "s", - "s" - ], - [ - "▁Qu", - "estion" - ], - [ - "▁", - "Question" - ], - [ - "is", - "e" - ], - [ - "i", - "se" - ], - [ - "▁th", - "ey" - ], - [ - "▁the", - "y" - ], - [ - "▁", - "they" - ], - [ - "▁D", - "e" - ], - [ - "▁", - "De" - ], - [ - "on", - "d" - ], - [ - "o", - "nd" - ], - [ - "▁s", - "ol" - ], - [ - "▁so", - "l" - ], - [ - "▁", - "sol" - ], - [ - "▁f", - "ol" - ], - [ - "▁fo", - "l" - ], - [ - "▁", - "fol" - ], - [ - "▁m", - "ore" - ], - [ - "▁mo", - "re" - ], - [ - "▁mor", - "e" - ], - [ - "▁", - "more" - ], - [ - "▁h", - "er" - ], - [ - "▁he", - "r" - ], - [ - "▁", - "her" - ], - [ - "▁", - "_" - ], - [ - "▁", - "é" - ], - [ - "at", - "ch" - ], - [ - "ft", - "er" - ], - [ - "fte", - "r" - ], - [ - "f", - "ter" - ], - [ - "▁c", - "re" - ], - [ - "▁cr", - "e" - ], - [ - "▁", - "cre" - ], - [ - "lo", - "ck" - ], - [ - "loc", - "k" - ], - [ - "l", - "ock" - ], - [ - "tr", - "ing" - ], - [ - "tri", - "ng" - ], - [ - "t", - "ring" - ], - [ - "▁T", - "his" - ], - [ - "▁Th", - "is" - ], - [ - "▁", - "This" - ], - [ - "z", - "e" - ], - [ - "ad", - "o" - ], - [ - "a", - "do" - ], - [ - "ul", - "l" - ], - [ - "u", - "ll" - ], - [ - "ge", - "r" - ], - [ - "g", - "er" - ], - [ - "b", - "e" - ], - [ - "▁o", - "ther" - ], - [ - "▁ot", - "her" - ], - [ - "▁", - "other" - ], - [ - "▁T", - "ags" - ], - [ - "▁Tag", - "s" - ], - [ - "▁Ta", - "gs" - ], - [ - "▁", - "Tags" - ], - [ - "ut", - "ion" - ], - [ - "uti", - "on" - ], - [ - "u", - "tion" - ], - [ - "ic", - "t" - ], - [ - "i", - "ct" - ], - [ - "▁h", - "ow" - ], - [ - "▁ho", - "w" - ], - [ - "▁", - "how" - ], - [ - "▁", - "x" - ], - [ - "▁S", - "e" - ], - [ - "▁", - "Se" - ], - [ - "▁c", - "he" - ], - [ - "▁ch", - "e" - ], - [ - "▁", - "che" - ], - [ - "cri", - "pt" - ], - [ - "cr", - "ipt" - ], - [ - "▁j", - "ust" - ], - [ - "▁ju", - "st" - ], - [ - "▁", - "just" - ], - [ - "▁p", - "os" - ], - [ - "▁po", - "s" - ], - [ - "▁", - "pos" - ], - [ - "an", - "ge" - ], - [ - "ang", - "e" - ], - [ - "if", - "ic" - ], - [ - "ifi", - "c" - ], - [ - "i", - "fic" - ], - [ - "re", - "e" - ], - [ - "r", - "ee" - ], - [ - "}", - "}" - ], - [ - "▁t", - "ime" - ], - [ - "▁tim", - "e" - ], - [ - "▁ti", - "me" - ], - [ - "▁", - "time" - ], - [ - "ap", - "p" - ], - [ - "a", - "pp" - ], - [ - "н", - "ы" - ], - [ - "▁f", - "ile" - ], - [ - "▁fil", - "e" - ], - [ - "▁fi", - "le" - ], - [ - "▁", - "file" - ], - [ - "ar", - "k" - ], - [ - "ic", - "al" - ], - [ - "ica", - "l" - ], - [ - "i", - "cal" - ], - [ - "▁f", - "irst" - ], - [ - "▁fir", - "st" - ], - [ - "▁", - "first" - ], - [ - "▁in", - "t" - ], - [ - "▁i", - "nt" - ], - [ - "▁", - "int" - ], - [ - "▁", - "В" - ], - [ - "▁H", - "e" - ], - [ - "▁", - "He" - ], - [ - "t", - "a" - ], - [ - "um", - "ent" - ], - [ - "ume", - "nt" - ], - [ - "umen", - "t" - ], - [ - "u", - "ment" - ], - [ - "or", - "s" - ], - [ - "o", - "rs" - ], - [ - "le", - "ment" - ], - [ - "lem", - "ent" - ], - [ - "l", - "ement" - ], - [ - "ra", - "c" - ], - [ - "r", - "ac" - ], - [ - "▁a", - "g" - ], - [ - "▁", - "ag" - ], - [ - "▁do", - "es" - ], - [ - "▁", - "does" - ], - [ - "y", - "n" - ], - [ - "re", - "ad" - ], - [ - "rea", - "d" - ], - [ - "r", - "ead" - ], - [ - "ua", - "l" - ], - [ - "u", - "al" - ], - [ - "▁L", - "e" - ], - [ - "▁", - "Le" - ], - [ - "y", - "s" - ], - [ - "▁e", - "m" - ], - [ - "▁", - "em" - ], - [ - "▁n", - "um" - ], - [ - "▁nu", - "m" - ], - [ - "▁", - "num" - ], - [ - "ve", - "l" - ], - [ - "v", - "el" - ], - [ - "д", - "и" - ], - [ - "ov", - "er" - ], - [ - "ove", - "r" - ], - [ - "o", - "ver" - ], - [ - "▁d", - "if" - ], - [ - "▁di", - "f" - ], - [ - "et", - "hod" - ], - [ - "eth", - "od" - ], - [ - "▁I", - "f" - ], - [ - "▁", - "If" - ], - [ - "▁s", - "pe" - ], - [ - "▁sp", - "e" - ], - [ - "▁", - "spe" - ], - [ - "y", - "m" - ], - [ - "▁t", - "hem" - ], - [ - "▁th", - "em" - ], - [ - "▁the", - "m" - ], - [ - "▁in", - "to" - ], - [ - "▁int", - "o" - ], - [ - "▁", - "into" - ], - [ - "▁l", - "es" - ], - [ - "▁le", - "s" - ], - [ - "▁", - "les" - ], - [ - "▁it", - "s" - ], - [ - "▁i", - "ts" - ], - [ - "▁", - "its" - ], - [ - "es", - "e" - ], - [ - "e", - "se" - ], - [ - "ie", - "ld" - ], - [ - "iel", - "d" - ], - [ - "i", - "eld" - ], - [ - "▁p", - "ublic" - ], - [ - "▁pub", - "lic" - ], - [ - "▁pu", - "blic" - ], - [ - "▁publi", - "c" - ], - [ - "▁", - "public" - ], - [ - "▁", - "П" - ], - [ - "▁d", - "en" - ], - [ - "▁de", - "n" - ], - [ - "▁", - "den" - ], - [ - "yst", - "em" - ], - [ - "ys", - "tem" - ], - [ - "o", - "f" - ], - [ - "▁o", - "ver" - ], - [ - "▁ov", - "er" - ], - [ - "▁", - "over" - ], - [ - "-", - ">" - ], - [ - "▁f", - "il" - ], - [ - "▁fi", - "l" - ], - [ - "▁", - "fil" - ], - [ - "na", - "me" - ], - [ - "nam", - "e" - ], - [ - "n", - "ame" - ], - [ - "in", - "al" - ], - [ - "ina", - "l" - ], - [ - "i", - "nal" - ], - [ - "▁i", - "l" - ], - [ - "▁", - "il" - ], - [ - "am", - "ple" - ], - [ - "amp", - "le" - ], - [ - "▁w", - "ay" - ], - [ - "▁wa", - "y" - ], - [ - "▁", - "way" - ], - [ - "ic", - "a" - ], - [ - "i", - "ca" - ], - [ - "в", - "о" - ], - [ - "ce", - "ss" - ], - [ - "ces", - "s" - ], - [ - "c", - "ess" - ], - [ - "it", - "t" - ], - [ - "i", - "tt" - ], - [ - "uc", - "h" - ], - [ - "u", - "ch" - ], - [ - "▁w", - "here" - ], - [ - "▁wh", - "ere" - ], - [ - "▁whe", - "re" - ], - [ - "▁", - "where" - ], - [ - "м", - "и" - ], - [ - "or", - "g" - ], - [ - "o", - "rg" - ], - [ - "htt", - "ps" - ], - [ - "http", - "s" - ], - [ - "▁v", - "o" - ], - [ - "▁", - "vo" - ], - [ - "ie", - "nt" - ], - [ - "ien", - "t" - ], - [ - "i", - "ent" - ], - [ - "ov", - "e" - ], - [ - "o", - "ve" - ], - [ - "▁val", - "ue" - ], - [ - "▁valu", - "e" - ], - [ - "▁", - "value" - ], - [ - "en", - "g" - ], - [ - "e", - "ng" - ], - [ - "▁L", - "a" - ], - [ - "▁", - "La" - ], - [ - "^", - "{" - ], - [ - "re", - "f" - ], - [ - "r", - "ef" - ], - [ - "ie", - "d" - ], - [ - "i", - "ed" - ], - [ - "E", - "R" - ], - [ - "▁s", - "tat" - ], - [ - "▁st", - "at" - ], - [ - "▁sta", - "t" - ], - [ - "▁", - "stat" - ], - [ - "fi", - "g" - ], - [ - "f", - "ig" - ], - [ - "m", - "e" - ], - [ - "▁v", - "on" - ], - [ - "▁vo", - "n" - ], - [ - "▁", - "von" - ], - [ - "▁in", - "ter" - ], - [ - "▁int", - "er" - ], - [ - "▁inte", - "r" - ], - [ - "▁", - "inter" - ], - [ - "ro", - "id" - ], - [ - "r", - "oid" - ], - [ - "at", - "er" - ], - [ - "ate", - "r" - ], - [ - "a", - "ter" - ], - [ - "▁the", - "ir" - ], - [ - "▁b", - "et" - ], - [ - "▁be", - "t" - ], - [ - "▁", - "bet" - ], - [ - "▁e", - "in" - ], - [ - "▁", - "ein" - ], - [ - "}", - "\\" - ], - [ - "\"", - ">" - ], - [ - "▁s", - "ub" - ], - [ - "▁su", - "b" - ], - [ - "▁", - "sub" - ], - [ - "▁o", - "p" - ], - [ - "▁", - "op" - ], - [ - "▁d", - "on" - ], - [ - "▁do", - "n" - ], - [ - "▁", - "don" - ], - [ - "t", - "y" - ], - [ - "▁t", - "ry" - ], - [ - "▁tr", - "y" - ], - [ - "▁", - "try" - ], - [ - "▁P", - "ro" - ], - [ - "▁Pr", - "o" - ], - [ - "▁", - "Pro" - ], - [ - "▁t", - "ra" - ], - [ - "▁tr", - "a" - ], - [ - "▁", - "tra" - ], - [ - "▁s", - "ame" - ], - [ - "▁sa", - "me" - ], - [ - "▁sam", - "e" - ], - [ - "▁", - "same" - ], - [ - "e", - "p" - ], - [ - "▁t", - "wo" - ], - [ - "▁tw", - "o" - ], - [ - "▁", - "two" - ], - [ - "▁n", - "ame" - ], - [ - "▁na", - "me" - ], - [ - "▁nam", - "e" - ], - [ - "▁", - "name" - ], - [ - "ol", - "d" - ], - [ - "o", - "ld" - ], - [ - "le", - "t" - ], - [ - "l", - "et" - ], - [ - "▁s", - "im" - ], - [ - "▁si", - "m" - ], - [ - "▁", - "sim" - ], - [ - "s", - "p" - ], - [ - "▁a", - "v" - ], - [ - "▁", - "av" - ], - [ - "br", - "e" - ], - [ - "b", - "re" - ], - [ - "ble", - "m" - ], - [ - "bl", - "em" - ], - [ - "b", - "lem" - ], - [ - "e", - "y" - ], - [ - "▁c", - "ould" - ], - [ - "▁co", - "uld" - ], - [ - "▁cou", - "ld" - ], - [ - "▁", - "could" - ], - [ - "▁c", - "or" - ], - [ - "▁co", - "r" - ], - [ - "▁", - "cor" - ], - [ - "▁a", - "cc" - ], - [ - "▁ac", - "c" - ], - [ - "▁", - "acc" - ], - [ - "ay", - "s" - ], - [ - "a", - "ys" - ], - [ - "cr", - "e" - ], - [ - "c", - "re" - ], - [ - "ur", - "r" - ], - [ - "u", - "rr" - ], - [ - "s", - "i" - ], - [ - "▁con", - "st" - ], - [ - "▁cons", - "t" - ], - [ - "▁", - "const" - ], - [ - "ue", - "s" - ], - [ - "u", - "es" - ], - [ - "}", - "$" - ], - [ - "V", - "iew" - ], - [ - "▁a", - "ct" - ], - [ - "▁ac", - "t" - ], - [ - "▁", - "act" - ], - [ - "▁b", - "o" - ], - [ - "▁", - "bo" - ], - [ - "▁к", - "о" - ], - [ - "▁", - "ко" - ], - [ - "▁s", - "om" - ], - [ - "▁so", - "m" - ], - [ - "▁", - "som" - ], - [ - "▁ab", - "out" - ], - [ - "▁", - "about" - ], - [ - "la", - "nd" - ], - [ - "lan", - "d" - ], - [ - "l", - "and" - ], - [ - "me", - "r" - ], - [ - "m", - "er" - ], - [ - "▁l", - "ist" - ], - [ - "▁li", - "st" - ], - [ - "▁", - "list" - ], - [ - "ca", - "l" - ], - [ - "c", - "al" - ], - [ - "▁im", - "port" - ], - [ - "▁imp", - "ort" - ], - [ - "▁", - "import" - ], - [ - "co", - "l" - ], - [ - "c", - "ol" - ], - [ - "▁n", - "a" - ], - [ - "▁", - "na" - ], - [ - "n", - "a" - ], - [ - ":", - ":" - ], - [ - "▁w", - "ho" - ], - [ - "▁wh", - "o" - ], - [ - "▁", - "who" - ], - [ - "▁e", - "rror" - ], - [ - "▁er", - "ror" - ], - [ - "▁err", - "or" - ], - [ - "▁", - "error" - ], - [ - "▁", - "X" - ], - [ - "at", - "or" - ], - [ - "ato", - "r" - ], - [ - "a", - "tor" - ], - [ - "ex", - "t" - ], - [ - "e", - "xt" - ], - [ - "▁b", - "een" - ], - [ - "▁be", - "en" - ], - [ - "é", - "r" - ], - [ - "▁r", - "un" - ], - [ - "▁ru", - "n" - ], - [ - "▁", - "run" - ], - [ - "po", - "s" - ], - [ - "p", - "os" - ], - [ - "▁c", - "l" - ], - [ - "▁", - "cl" - ], - [ - "*", - "*" - ], - [ - "▁", - "К" - ], - [ - "ul", - "ar" - ], - [ - "ula", - "r" - ], - [ - "u", - "lar" - ], - [ - "au", - "se" - ], - [ - "aus", - "e" - ], - [ - "a", - "use" - ], - [ - "▁re", - "g" - ], - [ - "▁r", - "eg" - ], - [ - "▁", - "reg" - ], - [ - "▁k", - "now" - ], - [ - "▁kn", - "ow" - ], - [ - "▁", - "know" - ], - [ - "▁s", - "ee" - ], - [ - "▁se", - "e" - ], - [ - "▁", - "see" - ], - [ - "▁h", - "im" - ], - [ - "▁hi", - "m" - ], - [ - "▁", - "him" - ], - [ - "ni", - "ng" - ], - [ - "n", - "ing" - ], - [ - "▁з", - "а" - ], - [ - "▁", - "за" - ], - [ - "at", - "es" - ], - [ - "ate", - "s" - ], - [ - "a", - "tes" - ], - [ - "fo", - "re" - ], - [ - "for", - "e" - ], - [ - "f", - "ore" - ], - [ - "ion", - "s" - ], - [ - "io", - "ns" - ], - [ - "i", - "ons" - ], - [ - "▁h", - "el" - ], - [ - "▁he", - "l" - ], - [ - "▁", - "hel" - ], - [ - "ut", - "e" - ], - [ - "u", - "te" - ], - [ - "▁re", - "m" - ], - [ - "▁r", - "em" - ], - [ - "▁", - "rem" - ], - [ - "▁г", - "о" - ], - [ - "▁", - "го" - ], - [ - "▁M", - "ar" - ], - [ - "▁Ma", - "r" - ], - [ - "▁", - "Mar" - ], - [ - "р", - "у" - ], - [ - "vi", - "ce" - ], - [ - "vic", - "e" - ], - [ - "v", - "ice" - ], - [ - "ir", - "ect" - ], - [ - "ire", - "ct" - ], - [ - "i", - "rect" - ], - [ - "ne", - "r" - ], - [ - "n", - "er" - ], - [ - "▁u", - "nder" - ], - [ - "▁un", - "der" - ], - [ - "▁und", - "er" - ], - [ - "▁", - "under" - ], - [ - "ri", - "b" - ], - [ - "r", - "ib" - ], - [ - "h", - "r" - ], - [ - "ч", - "е" - ], - [ - "▁A", - "s" - ], - [ - "▁", - "As" - ], - [ - "▁e", - "nd" - ], - [ - "▁en", - "d" - ], - [ - "▁", - "end" - ], - [ - "em", - "ber" - ], - [ - "emb", - "er" - ], - [ - "▁", - "а" - ], - [ - "▁a", - "tt" - ], - [ - "▁at", - "t" - ], - [ - "▁", - "att" - ], - [ - "in", - "a" - ], - [ - "i", - "na" - ], - [ - "so", - "n" - ], - [ - "s", - "on" - ], - [ - "▁f", - "ollow" - ], - [ - "▁fol", - "low" - ], - [ - "▁", - "follow" - ], - [ - "▁S", - "ch" - ], - [ - "▁Sc", - "h" - ], - [ - "▁", - "Sch" - ], - [ - "pe", - "ct" - ], - [ - "pec", - "t" - ], - [ - "p", - "ect" - ], - [ - "▁re", - "l" - ], - [ - "▁r", - "el" - ], - [ - "▁", - "rel" - ], - [ - "▁S", - "o" - ], - [ - "▁", - "So" - ], - [ - "▁l", - "ook" - ], - [ - "▁lo", - "ok" - ], - [ - "▁", - "look" - ], - [ - "ab", - "el" - ], - [ - "abe", - "l" - ], - [ - "a", - "bel" - ], - [ - "▁pro", - "blem" - ], - [ - "▁prob", - "lem" - ], - [ - "▁proble", - "m" - ], - [ - "▁probl", - "em" - ], - [ - "▁", - "problem" - ], - [ - "▁v", - "an" - ], - [ - "▁va", - "n" - ], - [ - "▁", - "van" - ], - [ - "st", - "rong" - ], - [ - "str", - "ong" - ], - [ - "c", - "o" - ], - [ - "po", - "n" - ], - [ - "p", - "on" - ], - [ - "c", - "a" - ], - [ - "ad", - "a" - ], - [ - "a", - "da" - ], - [ - "\"", - ":" - ], - [ - "con", - "d" - ], - [ - "co", - "nd" - ], - [ - "c", - "ond" - ], - [ - "am", - "b" - ], - [ - "a", - "mb" - ], - [ - "}", - "," - ], - [ - "qu", - "est" - ], - [ - "que", - "st" - ], - [ - "ques", - "t" - ], - [ - "q", - "uest" - ], - [ - "▁a", - "ut" - ], - [ - "▁au", - "t" - ], - [ - "▁", - "aut" - ], - [ - "▁res", - "ult" - ], - [ - "▁", - "result" - ], - [ - "▁m", - "ay" - ], - [ - "▁ma", - "y" - ], - [ - "▁", - "may" - ], - [ - "R", - "e" - ], - [ - "ht", - "tp" - ], - [ - "htt", - "p" - ], - [ - "h", - "ttp" - ], - [ - ")", - ":" - ], - [ - "▁A", - "nd" - ], - [ - "▁An", - "d" - ], - [ - "▁", - "And" - ], - [ - "re", - "d" - ], - [ - "r", - "ed" - ], - [ - "▁H", - "ow" - ], - [ - "▁Ho", - "w" - ], - [ - "▁", - "How" - ], - [ - "p", - "o" - ], - [ - "ск", - "о" - ], - [ - "с", - "ко" - ], - [ - "at", - "t" - ], - [ - "a", - "tt" - ], - [ - "ou", - "p" - ], - [ - "o", - "up" - ], - [ - "ce", - "d" - ], - [ - "c", - "ed" - ], - [ - "▁t", - "ype" - ], - [ - "▁typ", - "e" - ], - [ - "▁ty", - "pe" - ], - [ - "▁", - "type" - ], - [ - "▁t", - "han" - ], - [ - "▁th", - "an" - ], - [ - "▁", - "than" - ], - [ - "▁c", - "ons" - ], - [ - "▁con", - "s" - ], - [ - "▁co", - "ns" - ], - [ - "▁", - "cons" - ], - [ - "u", - "f" - ], - [ - "ц", - "и" - ], - [ - "▁qu", - "estion" - ], - [ - "▁quest", - "ion" - ], - [ - "▁questi", - "on" - ], - [ - "▁", - "question" - ], - [ - "ra", - "ph" - ], - [ - "rap", - "h" - ], - [ - "r", - "aph" - ], - [ - "ig", - "h" - ], - [ - "i", - "gh" - ], - [ - "▁", - "М" - ], - [ - "▁h", - "tt" - ], - [ - "▁", - "htt" - ], - [ - "in", - "s" - ], - [ - "i", - "ns" - ], - [ - "de", - "n" - ], - [ - "d", - "en" - ], - [ - "▁d", - "a" - ], - [ - "▁", - "da" - ], - [ - "▁v", - "er" - ], - [ - "▁ve", - "r" - ], - [ - "▁", - "ver" - ], - [ - "o", - "h" - ], - [ - "▁=", - ">" - ], - [ - "▁", - "=>" - ], - [ - "ri", - "v" - ], - [ - "r", - "iv" - ], - [ - "ud", - "e" - ], - [ - "u", - "de" - ], - [ - "▁F", - "or" - ], - [ - "▁Fo", - "r" - ], - [ - "▁", - "For" - ], - [ - "▁r", - "a" - ], - [ - "▁", - "ra" - ], - [ - "fr", - "ac" - ], - [ - "fra", - "c" - ], - [ - "f", - "rac" - ], - [ - "м", - "а" - ], - [ - "▁a", - "fter" - ], - [ - "▁af", - "ter" - ], - [ - "▁", - "after" - ], - [ - "}", - "{" - ], - [ - "▁m", - "ethod" - ], - [ - "▁met", - "hod" - ], - [ - "▁", - "method" - ], - [ - "\"", - ")" - ], - [ - "am", - "p" - ], - [ - "a", - "mp" - ], - [ - "as", - "h" - ], - [ - "a", - "sh" - ], - [ - "▁re", - "c" - ], - [ - "▁r", - "ec" - ], - [ - "▁", - "rec" - ], - [ - "▁d", - "iffer" - ], - [ - "▁dif", - "fer" - ], - [ - "▁diff", - "er" - ], - [ - "O", - "N" - ], - [ - "a", - "x" - ], - [ - "am", - "ent" - ], - [ - "ame", - "nt" - ], - [ - "amen", - "t" - ], - [ - "a", - "ment" - ], - [ - "our", - "ce" - ], - [ - "Co", - "n" - ], - [ - "C", - "on" - ], - [ - "it", - "s" - ], - [ - "i", - "ts" - ], - [ - "Na", - "me" - ], - [ - "N", - "ame" - ], - [ - "ma", - "n" - ], - [ - "m", - "an" - ], - [ - "▁b", - "ec" - ], - [ - "▁be", - "c" - ], - [ - "▁", - "bec" - ], - [ - "ch", - "e" - ], - [ - "c", - "he" - ], - [ - "▁E", - "n" - ], - [ - "▁", - "En" - ], - [ - "a", - "j" - ], - [ - "▁g", - "ener" - ], - [ - "▁ge", - "ner" - ], - [ - "▁gen", - "er" - ], - [ - "▁gene", - "r" - ], - [ - "▁", - "gener" - ], - [ - "I", - "N" - ], - [ - "▁i", - "d" - ], - [ - "▁", - "id" - ], - [ - "ag", - "es" - ], - [ - "age", - "s" - ], - [ - "a", - "ges" - ], - [ - "▁l", - "oc" - ], - [ - "▁lo", - "c" - ], - [ - "▁", - "loc" - ], - [ - "f", - "o" - ], - [ - "b", - "r" - ], - [ - "▁s", - "he" - ], - [ - "▁sh", - "e" - ], - [ - "▁", - "she" - ], - [ - "Pr", - "o" - ], - [ - "P", - "ro" - ], - [ - "▁u", - "na" - ], - [ - "▁un", - "a" - ], - [ - "▁", - "una" - ], - [ - "▁", - "к" - ], - [ - "et", - "a" - ], - [ - "e", - "ta" - ], - [ - "lo", - "g" - ], - [ - "l", - "og" - ], - [ - "ol", - "og" - ], - [ - "olo", - "g" - ], - [ - "o", - "log" - ], - [ - "▁s", - "ur" - ], - [ - "▁su", - "r" - ], - [ - "▁", - "sur" - ], - [ - "ar", - "g" - ], - [ - "a", - "rg" - ], - [ - "▁-", - "-" - ], - [ - "▁", - "--" - ], - [ - "k", - "t" - ], - [ - "(", - "\\" - ], - [ - "mi", - "n" - ], - [ - "m", - "in" - ], - [ - "▁l", - "ine" - ], - [ - "▁li", - "ne" - ], - [ - "▁lin", - "e" - ], - [ - "▁", - "line" - ], - [ - "▁v", - "ari" - ], - [ - "▁var", - "i" - ], - [ - "▁va", - "ri" - ], - [ - "▁", - "vari" - ], - [ - "с", - "я" - ], - [ - "ic", - "s" - ], - [ - "i", - "cs" - ], - [ - "н", - "я" - ], - [ - "ve", - "ry" - ], - [ - "ver", - "y" - ], - [ - "v", - "ery" - ], - [ - "ad", - "d" - ], - [ - "a", - "dd" - ], - [ - "▁o", - "bject" - ], - [ - "▁ob", - "ject" - ], - [ - "▁obj", - "ect" - ], - [ - "▁", - "object" - ], - [ - "I", - "d" - ], - [ - "▁B", - "ut" - ], - [ - "▁Bu", - "t" - ], - [ - "▁", - "But" - ], - [ - "▁c", - "ase" - ], - [ - "▁cas", - "e" - ], - [ - "▁ca", - "se" - ], - [ - "▁", - "case" - ], - [ - "▁m", - "ake" - ], - [ - "▁ma", - "ke" - ], - [ - "▁mak", - "e" - ], - [ - "▁", - "make" - ], - [ - "▁c", - "al" - ], - [ - "▁ca", - "l" - ], - [ - "▁", - "cal" - ], - [ - "▁p", - "ass" - ], - [ - "▁pas", - "s" - ], - [ - "▁pa", - "ss" - ], - [ - "▁", - "pass" - ], - [ - "с", - "ь" - ], - [ - "ess", - "ion" - ], - [ - "ne", - "t" - ], - [ - "n", - "et" - ], - [ - ".", - "\"" - ], - [ - "▁", - "г" - ], - [ - "ä", - "r" - ], - [ - "д", - "е" - ], - [ - "n", - "o" - ], - [ - "at", - "ing" - ], - [ - "ati", - "ng" - ], - [ - "atin", - "g" - ], - [ - "a", - "ting" - ], - [ - "at", - "o" - ], - [ - "a", - "to" - ], - [ - "li", - "ne" - ], - [ - "lin", - "e" - ], - [ - "l", - "ine" - ], - [ - "в", - "и" - ], - [ - "▁E", - "x" - ], - [ - "▁", - "Ex" - ], - [ - "▁a", - "ss" - ], - [ - "▁as", - "s" - ], - [ - "▁", - "ass" - ], - [ - "▁v", - "ers" - ], - [ - "▁ver", - "s" - ], - [ - "▁ve", - "rs" - ], - [ - "▁", - "vers" - ], - [ - "л", - "я" - ], - [ - "▁e", - "d" - ], - [ - "▁", - "ed" - ], - [ - "um", - "n" - ], - [ - "u", - "mn" - ], - [ - "ot", - "her" - ], - [ - "oth", - "er" - ], - [ - "othe", - "r" - ], - [ - "o", - "ther" - ], - [ - "ст", - "а" - ], - [ - "с", - "та" - ], - [ - "at", - "ive" - ], - [ - "ativ", - "e" - ], - [ - "ati", - "ve" - ], - [ - "St", - "ring" - ], - [ - "Str", - "ing" - ], - [ - "S", - "tring" - ], - [ - "▁l", - "os" - ], - [ - "▁lo", - "s" - ], - [ - "▁", - "los" - ], - [ - "w", - "n" - ], - [ - "▁an", - "swer" - ], - [ - "▁ans", - "wer" - ], - [ - "▁", - "answer" - ], - [ - "▁l", - "et" - ], - [ - "▁le", - "t" - ], - [ - "▁", - "let" - ], - [ - "▁p", - "e" - ], - [ - "▁", - "pe" - ], - [ - "en", - "ts" - ], - [ - "ent", - "s" - ], - [ - "▁f", - "e" - ], - [ - "▁", - "fe" - ], - [ - "in", - "ce" - ], - [ - "inc", - "e" - ], - [ - "n", - "i" - ], - [ - "id", - "er" - ], - [ - "ide", - "r" - ], - [ - "i", - "der" - ], - [ - "ow", - "s" - ], - [ - "o", - "ws" - ], - [ - "▁t", - "est" - ], - [ - "▁te", - "st" - ], - [ - "▁", - "test" - ], - [ - "▁h", - "ere" - ], - [ - "▁he", - "re" - ], - [ - "▁her", - "e" - ], - [ - "▁", - "here" - ], - [ - "ro", - "ll" - ], - [ - "rol", - "l" - ], - [ - "r", - "oll" - ], - [ - "▁c", - "all" - ], - [ - "▁cal", - "l" - ], - [ - "▁ca", - "ll" - ], - [ - "▁", - "call" - ], - [ - "ru", - "ct" - ], - [ - "r", - "uct" - ], - [ - "▁p", - "ol" - ], - [ - "▁po", - "l" - ], - [ - "▁", - "pol" - ], - [ - "ai", - "t" - ], - [ - "a", - "it" - ], - [ - "▁b", - "ack" - ], - [ - "▁ba", - "ck" - ], - [ - "▁", - "back" - ], - [ - "h", - "o" - ], - [ - "E", - "x" - ], - [ - "re", - "ss" - ], - [ - "res", - "s" - ], - [ - "r", - "ess" - ], - [ - "S", - "T" - ], - [ - "ri", - "ed" - ], - [ - "rie", - "d" - ], - [ - "r", - "ied" - ], - [ - "da", - "te" - ], - [ - "dat", - "e" - ], - [ - "d", - "ate" - ], - [ - "е", - "т" - ], - [ - "▁d", - "id" - ], - [ - "▁di", - "d" - ], - [ - "▁", - "did" - ], - [ - "ti", - "ng" - ], - [ - "t", - "ing" - ], - [ - "▁E", - "l" - ], - [ - "▁", - "El" - ], - [ - "▁d", - "em" - ], - [ - "▁de", - "m" - ], - [ - "▁", - "dem" - ], - [ - ")", - "$" - ], - [ - "ов", - "а" - ], - [ - "о", - "ва" - ], - [ - "ur", - "rent" - ], - [ - "urr", - "ent" - ], - [ - "urre", - "nt" - ], - [ - "la", - "ce" - ], - [ - "lac", - "e" - ], - [ - "l", - "ace" - ], - [ - "rig", - "ht" - ], - [ - "r", - "ight" - ], - [ - "re", - "n" - ], - [ - "r", - "en" - ], - [ - "п", - "о" - ], - [ - "▁e", - "ach" - ], - [ - "▁", - "each" - ], - [ - "c", - "y" - ], - [ - "bl", - "ock" - ], - [ - "blo", - "ck" - ], - [ - "b", - "lock" - ], - [ - "da", - "ta" - ], - [ - "dat", - "a" - ], - [ - "d", - "ata" - ], - [ - "▁", - "%" - ], - [ - "▁a", - "c" - ], - [ - "▁", - "ac" - ], - [ - "▁=", - "=" - ], - [ - "▁", - "==" - ], - [ - "ü", - "r" - ], - [ - "▁p", - "or" - ], - [ - "▁po", - "r" - ], - [ - "▁", - "por" - ], - [ - "as", - "k" - ], - [ - "a", - "sk" - ], - [ - "ar", - "ch" - ], - [ - "arc", - "h" - ], - [ - "am", - "es" - ], - [ - "ame", - "s" - ], - [ - "a", - "mes" - ], - [ - "▁C", - "on" - ], - [ - "▁Co", - "n" - ], - [ - "▁", - "Con" - ], - [ - "ч", - "а" - ], - [ - "▁o", - "ff" - ], - [ - "▁of", - "f" - ], - [ - "▁", - "off" - ], - [ - "▁f", - "ind" - ], - [ - "▁fin", - "d" - ], - [ - "▁fi", - "nd" - ], - [ - "▁", - "find" - ], - [ - "con", - "t" - ], - [ - "co", - "nt" - ], - [ - "c", - "ont" - ], - [ - "▁n", - "ow" - ], - [ - "▁no", - "w" - ], - [ - "▁", - "now" - ], - [ - "wor", - "k" - ], - [ - "w", - "ork" - ], - [ - "at", - "ional" - ], - [ - "ation", - "al" - ], - [ - "ati", - "onal" - ], - [ - "atio", - "nal" - ], - [ - "d", - "d" - ], - [ - "ci", - "ón" - ], - [ - "ció", - "n" - ], - [ - "c", - "ión" - ], - [ - "▁", - "А" - ], - [ - "au", - "lt" - ], - [ - "a", - "ult" - ], - [ - "Li", - "st" - ], - [ - "L", - "ist" - ], - [ - "▁e", - "xt" - ], - [ - "▁ex", - "t" - ], - [ - "▁", - "ext" - ], - [ - "ur", - "s" - ], - [ - "u", - "rs" - ], - [ - "ak", - "e" - ], - [ - "a", - "ke" - ], - [ - "ul", - "e" - ], - [ - "u", - "le" - ], - [ - "▁p", - "oint" - ], - [ - "▁po", - "int" - ], - [ - "▁poi", - "nt" - ], - [ - "▁", - "point" - ], - [ - "A", - "T" - ], - [ - "au", - "t" - ], - [ - "a", - "ut" - ], - [ - "▁tr", - "ans" - ], - [ - "▁tra", - "ns" - ], - [ - "▁tran", - "s" - ], - [ - "▁", - "trans" - ], - [ - "▁c", - "o" - ], - [ - "▁", - "co" - ], - [ - "▁re", - "ad" - ], - [ - "▁r", - "ead" - ], - [ - "▁", - "read" - ], - [ - "▁u", - "sed" - ], - [ - "▁us", - "ed" - ], - [ - "▁use", - "d" - ], - [ - "▁", - "used" - ], - [ - "ск", - "и" - ], - [ - "с", - "ки" - ], - [ - "ar", - "i" - ], - [ - "a", - "ri" - ], - [ - "L", - "E" - ], - [ - "et", - "er" - ], - [ - "ete", - "r" - ], - [ - "e", - "ter" - ], - [ - "ou", - "n" - ], - [ - "o", - "un" - ], - [ - "ev", - "er" - ], - [ - "e", - "ver" - ], - [ - "sel", - "f" - ], - [ - "s", - "elf" - ], - [ - "in", - "ed" - ], - [ - "ine", - "d" - ], - [ - "i", - "ned" - ], - [ - "id", - "th" - ], - [ - "u", - "x" - ], - [ - "j", - "s" - ], - [ - "▁s", - "uch" - ], - [ - "▁su", - "ch" - ], - [ - "▁suc", - "h" - ], - [ - "▁", - "such" - ], - [ - "▁I", - "s" - ], - [ - "▁", - "Is" - ], - [ - "é", - "e" - ], - [ - "fu", - "l" - ], - [ - "f", - "ul" - ], - [ - "▁d", - "ist" - ], - [ - "▁di", - "st" - ], - [ - "▁dis", - "t" - ], - [ - "▁", - "dist" - ], - [ - "▁b", - "u" - ], - [ - "▁", - "bu" - ], - [ - "item", - "ize" - ], - [ - "Con", - "t" - ], - [ - "Co", - "nt" - ], - [ - "C", - "ont" - ], - [ - "j", - "e" - ], - [ - "с", - "и" - ], - [ - "▁p", - "rov" - ], - [ - "▁pro", - "v" - ], - [ - "▁pr", - "ov" - ], - [ - "▁", - "prov" - ], - [ - "b", - "b" - ], - [ - "wa", - "rd" - ], - [ - "war", - "d" - ], - [ - "w", - "ard" - ], - [ - "es", - "ent" - ], - [ - "ese", - "nt" - ], - [ - "esen", - "t" - ], - [ - "e", - "sent" - ], - [ - "er", - "son" - ], - [ - "ers", - "on" - ], - [ - "an", - "ks" - ], - [ - "ank", - "s" - ], - [ - "w", - "h" - ], - [ - "no", - "t" - ], - [ - "n", - "ot" - ], - [ - "▁W", - "e" - ], - [ - "▁", - "We" - ], - [ - "k", - "a" - ], - [ - "ro", - "p" - ], - [ - "r", - "op" - ], - [ - "at", - "ur" - ], - [ - "atu", - "r" - ], - [ - "al", - "s" - ], - [ - "a", - "ls" - ], - [ - "▁b", - "el" - ], - [ - "▁be", - "l" - ], - [ - "▁", - "bel" - ], - [ - "ö", - "r" - ], - [ - "f", - "r" - ], - [ - "▁ex", - "ample" - ], - [ - "▁exam", - "ple" - ], - [ - "▁", - "example" - ], - [ - "▁in", - "cl" - ], - [ - "▁inc", - "l" - ], - [ - "am", - "il" - ], - [ - "ami", - "l" - ], - [ - "a", - "mil" - ], - [ - "▁р", - "а" - ], - [ - "▁", - "ра" - ], - [ - "▁", - "“" - ], - [ - "▁s", - "tring" - ], - [ - "▁st", - "ring" - ], - [ - "▁str", - "ing" - ], - [ - "▁stri", - "ng" - ], - [ - "▁", - "string" - ], - [ - "▁th", - "ink" - ], - [ - "▁thin", - "k" - ], - [ - "T", - "h" - ], - [ - "▁t", - "em" - ], - [ - "▁te", - "m" - ], - [ - "▁", - "tem" - ], - [ - "av", - "e" - ], - [ - "a", - "ve" - ], - [ - "▁F", - "ran" - ], - [ - "▁Fr", - "an" - ], - [ - "▁Fra", - "n" - ], - [ - "▁", - "Fran" - ], - [ - "▁n", - "umber" - ], - [ - "▁num", - "ber" - ], - [ - "▁", - "number" - ], - [ - "▁s", - "i" - ], - [ - "▁", - "si" - ], - [ - "im", - "es" - ], - [ - "ime", - "s" - ], - [ - "i", - "mes" - ], - [ - "te", - "m" - ], - [ - "t", - "em" - ], - [ - "m", - "y" - ], - [ - "le", - "r" - ], - [ - "l", - "er" - ], - [ - "lo", - "ad" - ], - [ - "=", - "=" - ], - [ - "▁h", - "and" - ], - [ - "▁ha", - "nd" - ], - [ - "▁han", - "d" - ], - [ - "▁", - "hand" - ], - [ - "z", - "a" - ], - [ - "▁b", - "ecause" - ], - [ - "▁bec", - "ause" - ], - [ - "▁", - "because" - ], - [ - "▁s", - "ch" - ], - [ - "▁sc", - "h" - ], - [ - "▁", - "sch" - ], - [ - "v", - "o" - ], - [ - "th", - "is" - ], - [ - "t", - "his" - ], - [ - "I", - "D" - ], - [ - "ã", - "o" - ], - [ - "▁st", - "art" - ], - [ - "▁star", - "t" - ], - [ - "▁sta", - "rt" - ], - [ - "▁", - "start" - ], - [ - "▁w", - "ar" - ], - [ - "▁wa", - "r" - ], - [ - "▁", - "war" - ], - [ - "▁he", - "lp" - ], - [ - "▁hel", - "p" - ], - [ - "▁", - "help" - ], - [ - "t", - "s" - ], - [ - "▁c", - "har" - ], - [ - "▁ch", - "ar" - ], - [ - "▁cha", - "r" - ], - [ - "▁", - "char" - ], - [ - "▁p", - "h" - ], - [ - "▁", - "ph" - ], - [ - "▁m", - "in" - ], - [ - "▁mi", - "n" - ], - [ - "▁", - "min" - ], - [ - "ti", - "l" - ], - [ - "t", - "il" - ], - [ - "ri", - "te" - ], - [ - "rit", - "e" - ], - [ - "r", - "ite" - ], - [ - "--", - "------" - ], - [ - "----", - "----" - ], - [ - "---", - "-----" - ], - [ - "------", - "--" - ], - [ - "-----", - "---" - ], - [ - "-------", - "-" - ], - [ - "-", - "-------" - ], - [ - "el", - "s" - ], - [ - "e", - "ls" - ], - [ - "▁m", - "it" - ], - [ - "▁mi", - "t" - ], - [ - "▁", - "mit" - ], - [ - "ed", - "ia" - ], - [ - "edi", - "a" - ], - [ - "e", - "dia" - ], - [ - "к", - "у" - ], - [ - "▁S", - "h" - ], - [ - "▁", - "Sh" - ], - [ - "an", - "y" - ], - [ - "a", - "ny" - ], - [ - "]", - ";" - ], - [ - "▁", - "Б" - ], - [ - "iqu", - "e" - ], - [ - "i", - "que" - ], - [ - "d", - "a" - ], - [ - "e", - "f" - ], - [ - "de", - "x" - ], - [ - "d", - "ex" - ], - [ - "▁p", - "rodu" - ], - [ - "▁pro", - "du" - ], - [ - "▁pr", - "odu" - ], - [ - "▁prod", - "u" - ], - [ - "▁", - "produ" - ], - [ - "▁", - "Н" - ], - [ - "gr", - "am" - ], - [ - "gra", - "m" - ], - [ - "g", - "ram" - ], - [ - "▁O", - "r" - ], - [ - "▁", - "Or" - ], - [ - "▁g", - "re" - ], - [ - "▁gr", - "e" - ], - [ - "▁", - "gre" - ], - [ - "qu", - "ote" - ], - [ - "quot", - "e" - ], - [ - "le", - "g" - ], - [ - "l", - "eg" - ], - [ - "or", - "n" - ], - [ - "o", - "rn" - ], - [ - "▁in", - "d" - ], - [ - "▁i", - "nd" - ], - [ - "▁", - "ind" - ], - [ - "▁p", - "ost" - ], - [ - "▁po", - "st" - ], - [ - "▁pos", - "t" - ], - [ - "▁", - "post" - ], - [ - "▁d", - "ep" - ], - [ - "▁de", - "p" - ], - [ - "▁", - "dep" - ], - [ - "]", - "," - ], - [ - "v", - "i" - ], - [ - "▁u", - "ser" - ], - [ - "▁us", - "er" - ], - [ - "▁use", - "r" - ], - [ - "▁", - "user" - ], - [ - "▁", - ">" - ], - [ - "li", - "ck" - ], - [ - "lic", - "k" - ], - [ - "l", - "ick" - ], - [ - "▁v", - "ery" - ], - [ - "▁ver", - "y" - ], - [ - "▁ve", - "ry" - ], - [ - "▁", - "very" - ], - [ - "et", - "hing" - ], - [ - "eth", - "ing" - ], - [ - "e", - "thing" - ], - [ - "▁ar", - "ray" - ], - [ - "▁arr", - "ay" - ], - [ - "▁", - "array" - ], - [ - "▁g", - "u" - ], - [ - "▁", - "gu" - ], - [ - "▁d", - "ur" - ], - [ - "▁du", - "r" - ], - [ - "`", - "." - ], - [ - "т", - "ь" - ], - [ - "li", - "cation" - ], - [ - "lic", - "ation" - ], - [ - "lica", - "tion" - ], - [ - "ст", - "и" - ], - [ - "с", - "ти" - ], - [ - "e", - "k" - ], - [ - "ic", - "o" - ], - [ - "i", - "co" - ], - [ - "▁d", - "at" - ], - [ - "▁da", - "t" - ], - [ - "▁", - "dat" - ], - [ - "о", - "р" - ], - [ - "ht", - "ml" - ], - [ - "htm", - "l" - ], - [ - "h", - "tml" - ], - [ - "ion", - "e" - ], - [ - "io", - "ne" - ], - [ - "i", - "one" - ], - [ - "▁d", - "ifferent" - ], - [ - "▁differ", - "ent" - ], - [ - "▁c", - "heck" - ], - [ - "▁che", - "ck" - ], - [ - "▁", - "check" - ], - [ - "▁f", - "r" - ], - [ - "▁", - "fr" - ], - [ - "▁E", - "r" - ], - [ - "▁", - "Er" - ], - [ - "▁t", - "ext" - ], - [ - "▁te", - "xt" - ], - [ - "▁tex", - "t" - ], - [ - "▁", - "text" - ], - [ - "н", - "і" - ], - [ - "ic", - "ht" - ], - [ - "ich", - "t" - ], - [ - "i", - "cht" - ], - [ - "st", - "ack" - ], - [ - "sta", - "ck" - ], - [ - "E", - "N" - ], - [ - "ra", - "g" - ], - [ - "r", - "ag" - ], - [ - "▁e", - "very" - ], - [ - "▁ev", - "ery" - ], - [ - "▁ever", - "y" - ], - [ - "▁", - "every" - ], - [ - "A", - "r" - ], - [ - "▁be", - "fore" - ], - [ - "▁bef", - "ore" - ], - [ - "▁", - "before" - ], - [ - "al", - "se" - ], - [ - "als", - "e" - ], - [ - "▁f", - "in" - ], - [ - "▁fi", - "n" - ], - [ - "▁", - "fin" - ], - [ - "▁d", - "é" - ], - [ - "▁th", - "ese" - ], - [ - "▁the", - "se" - ], - [ - "▁d", - "et" - ], - [ - "▁de", - "t" - ], - [ - "▁", - "det" - ], - [ - "V", - "al" - ], - [ - "ce", - "ption" - ], - [ - "cept", - "ion" - ], - [ - "cep", - "tion" - ], - [ - "▁and", - "roid" - ], - [ - "▁", - "android" - ], - [ - "block", - "quote" - ], - [ - "▁j", - "e" - ], - [ - "▁", - "je" - ], - [ - "fil", - "e" - ], - [ - "fi", - "le" - ], - [ - "f", - "ile" - ], - [ - "at", - "s" - ], - [ - "a", - "ts" - ], - [ - "▁д", - "о" - ], - [ - "▁", - "до" - ], - [ - "ess", - "age" - ], - [ - "essa", - "ge" - ], - [ - "▁ag", - "ain" - ], - [ - "a", - "w" - ], - [ - "C", - "h" - ], - [ - "we", - "en" - ], - [ - "w", - "een" - ], - [ - "▁", - "Д" - ], - [ - "fo", - "r" - ], - [ - "f", - "or" - ], - [ - "ci", - "al" - ], - [ - "cia", - "l" - ], - [ - "c", - "ial" - ], - [ - "pl", - "ay" - ], - [ - "pla", - "y" - ], - [ - "p", - "lay" - ], - [ - "pr", - "e" - ], - [ - "p", - "re" - ], - [ - "id", - "a" - ], - [ - "i", - "da" - ], - [ - "▁P", - "ar" - ], - [ - "▁Pa", - "r" - ], - [ - "▁", - "Par" - ], - [ - "n", - "y" - ], - [ - "ra", - "ct" - ], - [ - "rac", - "t" - ], - [ - "r", - "act" - ], - [ - "▁s", - "upp" - ], - [ - "▁su", - "pp" - ], - [ - "▁sup", - "p" - ], - [ - "▁", - "supp" - ], - [ - "as", - "ed" - ], - [ - "ase", - "d" - ], - [ - "a", - "sed" - ], - [ - "le", - "ction" - ], - [ - "lect", - "ion" - ], - [ - "l", - "ection" - ], - [ - "▁d", - "ans" - ], - [ - "▁da", - "ns" - ], - [ - "▁dan", - "s" - ], - [ - "ai", - "r" - ], - [ - "a", - "ir" - ], - [ - "ro", - "l" - ], - [ - "r", - "ol" - ], - [ - "▁t", - "hr" - ], - [ - "▁th", - "r" - ], - [ - "Dat", - "a" - ], - [ - "Da", - "ta" - ], - [ - "D", - "ata" - ], - [ - "li", - "ch" - ], - [ - "lic", - "h" - ], - [ - "l", - "ich" - ], - [ - "▁п", - "ро" - ], - [ - "▁пр", - "о" - ], - [ - "▁", - "про" - ], - [ - "▁l", - "ong" - ], - [ - "▁lo", - "ng" - ], - [ - "▁lon", - "g" - ], - [ - "▁", - "long" - ], - [ - "▁se", - "cond" - ], - [ - "▁sec", - "ond" - ], - [ - "▁", - "second" - ], - [ - "ual", - "ly" - ], - [ - "u", - "ally" - ], - [ - "in", - "es" - ], - [ - "ine", - "s" - ], - [ - "i", - "nes" - ], - [ - "▁f", - "ound" - ], - [ - "▁fo", - "und" - ], - [ - "▁fou", - "nd" - ], - [ - "▁", - "found" - ], - [ - "eng", - "th" - ], - [ - "y", - "p" - ], - [ - "ea", - "d" - ], - [ - "e", - "ad" - ], - [ - "▁l", - "og" - ], - [ - "▁lo", - "g" - ], - [ - "▁", - "log" - ], - [ - "u", - "i" - ], - [ - "ne", - "w" - ], - [ - "n", - "ew" - ], - [ - "▁", - "Р" - ], - [ - "g", - "o" - ], - [ - "au", - "s" - ], - [ - "a", - "us" - ], - [ - "od", - "y" - ], - [ - "o", - "dy" - ], - [ - "▁s", - "on" - ], - [ - "▁so", - "n" - ], - [ - "▁", - "son" - ], - [ - "м", - "е" - ], - [ - "er", - "o" - ], - [ - "e", - "ro" - ], - [ - "ve", - "d" - ], - [ - "v", - "ed" - ], - [ - "su", - "b" - ], - [ - "s", - "ub" - ], - [ - "▁r", - "ight" - ], - [ - "▁rig", - "ht" - ], - [ - "▁", - "right" - ], - [ - "vi", - "ew" - ], - [ - "vie", - "w" - ], - [ - "v", - "iew" - ], - [ - "▁follow", - "ing" - ], - [ - "'", - ")" - ], - [ - "\")", - ";" - ], - [ - "\"", - ");" - ], - [ - "▁sa", - "id" - ], - [ - "ж", - "е" - ], - [ - "ч", - "и" - ], - [ - "т", - "у" - ], - [ - "ot", - "t" - ], - [ - "o", - "tt" - ], - [ - "с", - "е" - ], - [ - "ar", - "s" - ], - [ - "a", - "rs" - ], - [ - "$", - "." - ], - [ - "g", - "g" - ], - [ - "▁b", - "r" - ], - [ - "▁", - "br" - ], - [ - "oo", - "l" - ], - [ - "o", - "ol" - ], - [ - "yl", - "e" - ], - [ - "y", - "le" - ], - [ - "us", - "e" - ], - [ - "u", - "se" - ], - [ - "▁s", - "how" - ], - [ - "▁sh", - "ow" - ], - [ - "▁sho", - "w" - ], - [ - "▁", - "show" - ], - [ - "le", - "ase" - ], - [ - "lea", - "se" - ], - [ - "ci", - "a" - ], - [ - "c", - "ia" - ], - [ - "▁d", - "irect" - ], - [ - "▁di", - "rect" - ], - [ - "▁dire", - "ct" - ], - [ - "▁dir", - "ect" - ], - [ - "▁", - "direct" - ], - [ - "do", - "c" - ], - [ - "d", - "oc" - ], - [ - "а", - "р" - ], - [ - "m", - "s" - ], - [ - "▁g", - "iv" - ], - [ - "▁gi", - "v" - ], - [ - "▁", - "giv" - ], - [ - "▁e", - "xp" - ], - [ - "▁ex", - "p" - ], - [ - "▁", - "exp" - ], - [ - "q", - "l" - ], - [ - "д", - "у" - ], - [ - "в", - "е" - ], - [ - "▁B", - "e" - ], - [ - "▁", - "Be" - ], - [ - "Co", - "m" - ], - [ - "C", - "om" - ], - [ - "it", - "er" - ], - [ - "ite", - "r" - ], - [ - "i", - "ter" - ], - [ - "R", - "E" - ], - [ - "m", - "p" - ], - [ - "me", - "n" - ], - [ - "m", - "en" - ], - [ - "▁R", - "o" - ], - [ - "▁", - "Ro" - ], - [ - "M", - "A" - ], - [ - "▁C", - "ol" - ], - [ - "▁Co", - "l" - ], - [ - "▁", - "Col" - ], - [ - "is", - "ter" - ], - [ - "ist", - "er" - ], - [ - "iste", - "r" - ], - [ - "i", - "ster" - ], - [ - "▁w", - "ell" - ], - [ - "▁we", - "ll" - ], - [ - "▁wel", - "l" - ], - [ - "▁", - "well" - ], - [ - "▁<", - "/" - ], - [ - "▁", - "" - ], - [ - "▁", - "->" - ], - [ - "en", - "e" - ], - [ - "e", - "ne" - ], - [ - "▁m", - "on" - ], - [ - "▁mo", - "n" - ], - [ - "▁", - "mon" - ], - [ - "▁d", - "ec" - ], - [ - "▁de", - "c" - ], - [ - "▁", - "dec" - ], - [ - "▁st", - "ill" - ], - [ - "▁о", - "б" - ], - [ - "▁", - "об" - ], - [ - "▁T", - "r" - ], - [ - "▁", - "Tr" - ], - [ - "▁", - "ф" - ], - [ - "if", - "e" - ], - [ - "i", - "fe" - ], - [ - "is", - "m" - ], - [ - "i", - "sm" - ], - [ - "b", - "y" - ], - [ - "ra", - "w" - ], - [ - "r", - "aw" - ], - [ - "io", - "r" - ], - [ - "i", - "or" - ], - [ - "▁m", - "ed" - ], - [ - "▁me", - "d" - ], - [ - "▁", - "med" - ], - [ - "or", - "ld" - ], - [ - "▁com", - "ple" - ], - [ - "▁comp", - "le" - ], - [ - "▁compl", - "e" - ], - [ - "▁", - "comple" - ], - [ - "w", - "w" - ], - [ - "▁a", - "rt" - ], - [ - "▁ar", - "t" - ], - [ - "▁", - "art" - ], - [ - "ro", - "n" - ], - [ - "r", - "on" - ], - [ - "▁", - "Г" - ], - [ - "▁M", - "y" - ], - [ - "▁", - "My" - ], - [ - "▁a", - "ls" - ], - [ - "▁al", - "s" - ], - [ - "▁", - "als" - ], - [ - "re", - "ct" - ], - [ - "rec", - "t" - ], - [ - "r", - "ect" - ], - [ - "▁a", - "uf" - ], - [ - "▁au", - "f" - ], - [ - "▁", - "auf" - ], - [ - "▁d", - "own" - ], - [ - "▁do", - "wn" - ], - [ - "▁dow", - "n" - ], - [ - "▁", - "down" - ], - [ - "at", - "her" - ], - [ - "ath", - "er" - ], - [ - "a", - "ther" - ], - [ - "Co", - "l" - ], - [ - "C", - "ol" - ], - [ - "Te", - "xt" - ], - [ - "Tex", - "t" - ], - [ - "T", - "ext" - ], - [ - "ba", - "ck" - ], - [ - "b", - "ack" - ], - [ - "$", - "," - ], - [ - "▁y", - "ear" - ], - [ - "▁ye", - "ar" - ], - [ - "▁", - "year" - ], - [ - "м", - "о" - ], - [ - "p", - "i" - ], - [ - "▁G", - "r" - ], - [ - "▁", - "Gr" - ], - [ - "re", - "am" - ], - [ - "rea", - "m" - ], - [ - "▁re", - "p" - ], - [ - "▁r", - "ep" - ], - [ - "▁", - "rep" - ], - [ - "b", - "f" - ], - [ - "ww", - "w" - ], - [ - "w", - "ww" - ], - [ - "▁w", - "ur" - ], - [ - "▁o", - "rg" - ], - [ - "▁or", - "g" - ], - [ - "▁", - "org" - ], - [ - "in", - "ter" - ], - [ - "int", - "er" - ], - [ - "inte", - "r" - ], - [ - "▁D", - "ie" - ], - [ - "▁Di", - "e" - ], - [ - "▁", - "Die" - ], - [ - "▁b", - "eing" - ], - [ - "▁be", - "ing" - ], - [ - "▁bei", - "ng" - ], - [ - "\"", - "." - ], - [ - "la", - "bel" - ], - [ - "lab", - "el" - ], - [ - "l", - "abel" - ], - [ - "▁c", - "ent" - ], - [ - "▁ce", - "nt" - ], - [ - "▁", - "cent" - ], - [ - "ja", - "va" - ], - [ - "jav", - "a" - ], - [ - "j", - "ava" - ], - [ - "ba", - "r" - ], - [ - "b", - "ar" - ], - [ - "an", - "te" - ], - [ - "ant", - "e" - ], - [ - "an", - "a" - ], - [ - "a", - "na" - ], - [ - "_", - "_" - ], - [ - "▁sol", - "ution" - ], - [ - "▁", - "О" - ], - [ - "▁f", - "l" - ], - [ - "▁", - "fl" - ], - [ - "▁c", - "reate" - ], - [ - "▁cre", - "ate" - ], - [ - "▁", - "create" - ], - [ - "ic", - "i" - ], - [ - "i", - "ci" - ], - [ - "st", - "e" - ], - [ - "s", - "te" - ], - [ - "yth", - "on" - ], - [ - "yt", - "hon" - ], - [ - "un", - "t" - ], - [ - "u", - "nt" - ], - [ - "as", - "on" - ], - [ - "aso", - "n" - ], - [ - "a", - "son" - ], - [ - "fer", - "ence" - ], - [ - "fe", - "rence" - ], - [ - "S", - "E" - ], - [ - "▁n", - "on" - ], - [ - "▁no", - "n" - ], - [ - "▁", - "non" - ], - [ - "an", - "e" - ], - [ - "a", - "ne" - ], - [ - "▁in", - "s" - ], - [ - "▁i", - "ns" - ], - [ - "▁", - "ins" - ], - [ - "ad", - "er" - ], - [ - "ade", - "r" - ], - [ - "a", - "der" - ], - [ - "_{", - "\\" - ], - [ - "_", - "{\\" - ], - [ - "Re", - "s" - ], - [ - "R", - "es" - ], - [ - "▁m", - "ain" - ], - [ - "▁ma", - "in" - ], - [ - "▁mai", - "n" - ], - [ - "▁", - "main" - ], - [ - "п", - "и" - ], - [ - "▁T", - "here" - ], - [ - "▁The", - "re" - ], - [ - "▁Th", - "ere" - ], - [ - "▁Ther", - "e" - ], - [ - "▁", - "There" - ], - [ - "▁p", - "our" - ], - [ - "▁po", - "ur" - ], - [ - "▁pou", - "r" - ], - [ - "R", - "O" - ], - [ - "`", - "," - ], - [ - "li", - "sh" - ], - [ - "lis", - "h" - ], - [ - "l", - "ish" - ], - [ - "b", - "ject" - ], - [ - "cc", - "ess" - ], - [ - "c", - "cess" - ], - [ - "▁o", - "rig" - ], - [ - "▁or", - "ig" - ], - [ - "▁", - "orig" - ], - [ - "is", - "chen" - ], - [ - "isch", - "en" - ], - [ - "ische", - "n" - ], - [ - "isc", - "hen" - ], - [ - "i", - "schen" - ], - [ - "ow", - "er" - ], - [ - "owe", - "r" - ], - [ - "o", - "wer" - ], - [ - "▁h", - "et" - ], - [ - "▁he", - "t" - ], - [ - "▁", - "het" - ], - [ - "u", - "c" - ], - [ - "▁el", - "se" - ], - [ - "▁els", - "e" - ], - [ - "▁", - "else" - ], - [ - "»", - "." - ], - [ - "▁о", - "т" - ], - [ - "▁", - "от" - ], - [ - "eq", - "u" - ], - [ - "e", - "qu" - ], - [ - "si", - "ble" - ], - [ - "s", - "ible" - ], - [ - "te", - "st" - ], - [ - "tes", - "t" - ], - [ - "t", - "est" - ], - [ - "st", - "and" - ], - [ - "sta", - "nd" - ], - [ - "stan", - "d" - ], - [ - "é", - "n" - ], - [ - "et", - "s" - ], - [ - "e", - "ts" - ], - [ - "G", - "E" - ], - [ - "id", - "ent" - ], - [ - "ide", - "nt" - ], - [ - "iden", - "t" - ], - [ - "i", - "dent" - ], - [ - "▁", - "е" - ], - [ - "▁п", - "ри" - ], - [ - "▁пр", - "и" - ], - [ - "▁", - "при" - ], - [ - ".", - "," - ], - [ - "▁d", - "as" - ], - [ - "▁da", - "s" - ], - [ - "▁", - "das" - ], - [ - "oc", - "k" - ], - [ - "o", - "ck" - ], - [ - ",", - "\"" - ], - [ - "▁v", - "ol" - ], - [ - "▁vo", - "l" - ], - [ - "▁", - "vol" - ], - [ - "▁f", - "o" - ], - [ - "▁", - "fo" - ], - [ - "▁p", - "ara" - ], - [ - "▁par", - "a" - ], - [ - "▁pa", - "ra" - ], - [ - "▁", - "para" - ], - [ - "▁", - "Т" - ], - [ - "▁C", - "ar" - ], - [ - "▁Ca", - "r" - ], - [ - "▁", - "Car" - ], - [ - "ra", - "l" - ], - [ - "r", - "al" - ], - [ - "▁S", - "p" - ], - [ - "▁", - "Sp" - ], - [ - "va", - "r" - ], - [ - "v", - "ar" - ], - [ - "▁p", - "lay" - ], - [ - "▁pl", - "ay" - ], - [ - "▁pla", - "y" - ], - [ - "▁", - "play" - ], - [ - "ou", - "se" - ], - [ - "ous", - "e" - ], - [ - "o", - "use" - ], - [ - "▁т", - "а" - ], - [ - "▁", - "та" - ], - [ - "ic", - "ally" - ], - [ - "ical", - "ly" - ], - [ - "▁con", - "tain" - ], - [ - "▁cont", - "ain" - ], - [ - "pon", - "se" - ], - [ - "▁S", - "tring" - ], - [ - "▁St", - "ring" - ], - [ - "▁Str", - "ing" - ], - [ - "▁", - "String" - ], - [ - "á", - "n" - ], - [ - "▁b", - "oth" - ], - [ - "▁bo", - "th" - ], - [ - "▁bot", - "h" - ], - [ - "▁", - "both" - ], - [ - "ke", - "n" - ], - [ - "k", - "en" - ], - [ - "A", - "R" - ], - [ - "ер", - "е" - ], - [ - "е", - "ре" - ], - [ - "▁I", - "l" - ], - [ - "▁", - "Il" - ], - [ - "▁is", - "s" - ], - [ - "▁i", - "ss" - ], - [ - "▁", - "iss" - ], - [ - "▁o", - "pen" - ], - [ - "▁op", - "en" - ], - [ - "▁", - "open" - ], - [ - "▁", - ")" - ], - [ - "▁W", - "hat" - ], - [ - "▁Wh", - "at" - ], - [ - "▁", - "What" - ], - [ - "f", - "e" - ], - [ - "riv", - "ate" - ], - [ - "re", - "g" - ], - [ - "r", - "eg" - ], - [ - "▁with", - "out" - ], - [ - "▁", - "without" - ], - [ - "▁z", - "u" - ], - [ - "▁", - "zu" - ], - [ - "vi", - "s" - ], - [ - "v", - "is" - ], - [ - "fl", - "ow" - ], - [ - "f", - "low" - ], - [ - "▁h", - "ttp" - ], - [ - "▁htt", - "p" - ], - [ - "▁", - "http" - ], - [ - "ab", - "ase" - ], - [ - "aba", - "se" - ], - [ - "a", - "base" - ], - [ - "▁w", - "ord" - ], - [ - "▁wor", - "d" - ], - [ - "▁wo", - "rd" - ], - [ - "▁", - "word" - ], - [ - "▁ch", - "ange" - ], - [ - "▁chang", - "e" - ], - [ - "▁", - "change" - ], - [ - "▁work", - "s" - ], - [ - "▁wor", - "ks" - ], - [ - "▁", - "works" - ], - [ - "▁g", - "e" - ], - [ - "▁", - "ge" - ], - [ - "▁", - "!" - ], - [ - "▁e", - "en" - ], - [ - "▁", - "een" - ], - [ - "it", - "le" - ], - [ - "▁e", - "vent" - ], - [ - "▁even", - "t" - ], - [ - "▁ev", - "ent" - ], - [ - "▁", - "event" - ], - [ - "wo", - "rd" - ], - [ - "wor", - "d" - ], - [ - "w", - "ord" - ], - [ - "an", - "do" - ], - [ - "and", - "o" - ], - [ - "S", - "B" - ], - [ - "re", - "m" - ], - [ - "r", - "em" - ], - [ - "▁f", - "ield" - ], - [ - "▁fi", - "eld" - ], - [ - "▁fiel", - "d" - ], - [ - "▁", - "field" - ], - [ - "vi", - "ng" - ], - [ - "vin", - "g" - ], - [ - "v", - "ing" - ], - [ - "Se", - "r" - ], - [ - "S", - "er" - ], - [ - "▁o", - "ur" - ], - [ - "▁ou", - "r" - ], - [ - "▁", - "our" - ], - [ - "▁qu", - "i" - ], - [ - "▁q", - "ui" - ], - [ - "▁", - "qui" - ], - [ - "▁o", - "per" - ], - [ - "▁op", - "er" - ], - [ - "▁", - "oper" - ], - [ - "▁is", - "t" - ], - [ - "▁i", - "st" - ], - [ - "▁", - "ist" - ], - [ - "de", - "f" - ], - [ - "d", - "ef" - ], - [ - "▁m", - "ade" - ], - [ - "▁ma", - "de" - ], - [ - "▁mad", - "e" - ], - [ - "▁", - "made" - ], - [ - "ни", - "е" - ], - [ - "p", - "x" - ], - [ - "▁m", - "en" - ], - [ - "▁me", - "n" - ], - [ - "▁", - "men" - ], - [ - "r", - "m" - ], - [ - "ai", - "s" - ], - [ - "a", - "is" - ], - [ - "ce", - "nt" - ], - [ - "cen", - "t" - ], - [ - "c", - "ent" - ], - [ - "li", - "st" - ], - [ - "lis", - "t" - ], - [ - "l", - "ist" - ], - [ - "T", - "o" - ], - [ - "▁T", - "o" - ], - [ - "▁", - "To" - ], - [ - "j", - "a" - ], - [ - "ve", - "rt" - ], - [ - "ver", - "t" - ], - [ - "v", - "ert" - ], - [ - "▁m", - "ar" - ], - [ - "▁ma", - "r" - ], - [ - "▁", - "mar" - ], - [ - "val", - "ue" - ], - [ - "valu", - "e" - ], - [ - "▁", - "„" - ], - [ - "\"", - ";" - ], - [ - "▁a", - "us" - ], - [ - "▁au", - "s" - ], - [ - "▁", - "aus" - ], - [ - "▁B", - "r" - ], - [ - "▁", - "Br" - ], - [ - "ol", - "e" - ], - [ - "o", - "le" - ], - [ - "▁m", - "ult" - ], - [ - "▁mu", - "lt" - ], - [ - "▁mul", - "t" - ], - [ - "▁", - "mult" - ], - [ - "oug", - "ht" - ], - [ - "ough", - "t" - ], - [ - "▁m", - "at" - ], - [ - "▁ma", - "t" - ], - [ - "▁", - "mat" - ], - [ - "▁v", - "iew" - ], - [ - "▁vi", - "ew" - ], - [ - "▁vie", - "w" - ], - [ - "▁", - "view" - ], - [ - "fi", - "l" - ], - [ - "f", - "il" - ], - [ - "▁с", - "о" - ], - [ - "▁", - "со" - ], - [ - "г", - "а" - ], - [ - "▁v", - "oid" - ], - [ - "▁vo", - "id" - ], - [ - "▁", - "void" - ], - [ - "▁g", - "ood" - ], - [ - "▁go", - "od" - ], - [ - "▁", - "good" - ], - [ - "б", - "о" - ], - [ - "C", - "T" - ], - [ - "▁m", - "any" - ], - [ - "▁ma", - "ny" - ], - [ - "▁man", - "y" - ], - [ - "▁", - "many" - ], - [ - "be", - "n" - ], - [ - "b", - "en" - ], - [ - "▁в", - "о" - ], - [ - "▁", - "во" - ], - [ - "▁к", - "а" - ], - [ - "▁", - "ка" - ], - [ - "▁s", - "ystem" - ], - [ - "▁sys", - "tem" - ], - [ - "▁syst", - "em" - ], - [ - "▁", - "system" - ], - [ - "in", - "o" - ], - [ - "i", - "no" - ], - [ - "▁an", - "other" - ], - [ - "▁ano", - "ther" - ], - [ - "▁", - "another" - ], - [ - "▁re", - "st" - ], - [ - "▁r", - "est" - ], - [ - "▁res", - "t" - ], - [ - "▁", - "rest" - ], - [ - "us", - "er" - ], - [ - "use", - "r" - ], - [ - "u", - "ser" - ], - [ - "il", - "ity" - ], - [ - "ili", - "ty" - ], - [ - "a", - "i" - ], - [ - "▁m", - "ight" - ], - [ - "▁mig", - "ht" - ], - [ - "us", - "tom" - ], - [ - "ust", - "om" - ], - [ - "usto", - "m" - ], - [ - "▁or", - "der" - ], - [ - "▁ord", - "er" - ], - [ - "▁", - "order" - ], - [ - "▁V", - "er" - ], - [ - "▁Ve", - "r" - ], - [ - "▁", - "Ver" - ], - [ - "S", - "S" - ], - [ - "}", - ")" - ], - [ - "▁e", - "ff" - ], - [ - "▁", - "eff" - ], - [ - "д", - "о" - ], - [ - "et", - "t" - ], - [ - "e", - "tt" - ], - [ - "▁s", - "ign" - ], - [ - "▁si", - "gn" - ], - [ - "▁sig", - "n" - ], - [ - "▁", - "sign" - ], - [ - "м", - "у" - ], - [ - "I", - "T" - ], - [ - "st", - "ring" - ], - [ - "str", - "ing" - ], - [ - "s", - "tring" - ], - [ - "el", - "le" - ], - [ - "ell", - "e" - ], - [ - "e", - "lle" - ], - [ - "▁s", - "ing" - ], - [ - "▁si", - "ng" - ], - [ - "▁sin", - "g" - ], - [ - "▁", - "sing" - ], - [ - "cu", - "l" - ], - [ - "c", - "ul" - ], - [ - "▁tr", - "ying" - ], - [ - "▁try", - "ing" - ], - [ - "▁b", - "eg" - ], - [ - "▁be", - "g" - ], - [ - "▁", - "beg" - ], - [ - "▁p", - "age" - ], - [ - "▁pa", - "ge" - ], - [ - "▁pag", - "e" - ], - [ - "▁", - "page" - ], - [ - "х", - "о" - ], - [ - "▁C", - "an" - ], - [ - "▁Ca", - "n" - ], - [ - "▁", - "Can" - ], - [ - "▁S", - "er" - ], - [ - "▁Se", - "r" - ], - [ - "▁", - "Ser" - ], - [ - "+", - "+" - ], - [ - "▁m", - "ust" - ], - [ - "▁mus", - "t" - ], - [ - "▁mu", - "st" - ], - [ - "▁", - "must" - ], - [ - "▁val", - "ues" - ], - [ - "▁value", - "s" - ], - [ - "▁valu", - "es" - ], - [ - "▁", - "values" - ], - [ - "▁k", - "ey" - ], - [ - "▁ke", - "y" - ], - [ - "▁", - "key" - ], - [ - "ib", - "le" - ], - [ - "i", - "ble" - ], - [ - "]", - "." - ], - [ - "ir", - "d" - ], - [ - "i", - "rd" - ], - [ - "▁pro", - "gram" - ], - [ - "▁pr", - "ogram" - ], - [ - "▁", - "program" - ], - [ - "roll", - "er" - ], - [ - "rol", - "ler" - ], - [ - "rolle", - "r" - ], - [ - "▁c", - "onne" - ], - [ - "▁con", - "ne" - ], - [ - "▁conn", - "e" - ], - [ - "▁", - "conne" - ], - [ - "▁s", - "ay" - ], - [ - "▁sa", - "y" - ], - [ - "▁", - "say" - ], - [ - "▁p", - "aram" - ], - [ - "▁par", - "am" - ], - [ - "▁para", - "m" - ], - [ - "▁pa", - "ram" - ], - [ - "▁", - "param" - ], - [ - "ach", - "e" - ], - [ - "ac", - "he" - ], - [ - "a", - "che" - ], - [ - "ve", - "lop" - ], - [ - "vel", - "op" - ], - [ - "▁s", - "elect" - ], - [ - "▁se", - "lect" - ], - [ - "▁sel", - "ect" - ], - [ - "▁sele", - "ct" - ], - [ - "▁", - "select" - ], - [ - "▁f", - "amil" - ], - [ - "▁fa", - "mil" - ], - [ - "▁fam", - "il" - ], - [ - "▁", - "famil" - ], - [ - "▁l", - "ast" - ], - [ - "▁la", - "st" - ], - [ - "▁las", - "t" - ], - [ - "▁", - "last" - ], - [ - "▁Th", - "anks" - ], - [ - "▁Thank", - "s" - ], - [ - "▁", - "Thanks" - ], - [ - "▁p", - "op" - ], - [ - "▁po", - "p" - ], - [ - "▁", - "pop" - ], - [ - "}", - "." - ], - [ - "e", - "q" - ], - [ - "▁does", - "n" - ], - [ - "[", - "'" - ], - [ - "▁t", - "erm" - ], - [ - "▁te", - "rm" - ], - [ - "▁ter", - "m" - ], - [ - "▁", - "term" - ], - [ - "▁r", - "é" - ], - [ - "▁", - "ré" - ], - [ - "▁d", - "ocument" - ], - [ - "▁doc", - "ument" - ], - [ - "▁", - "document" - ], - [ - "п", - "а" - ], - [ - "л", - "у" - ], - [ - "at", - "eg" - ], - [ - "ate", - "g" - ], - [ - ".", - ")" - ], - [ - "li", - "ng" - ], - [ - "lin", - "g" - ], - [ - "l", - "ing" - ], - [ - "ion", - "al" - ], - [ - "io", - "nal" - ], - [ - "iona", - "l" - ], - [ - "i", - "onal" - ], - [ - "ab", - "les" - ], - [ - "able", - "s" - ], - [ - "abl", - "es" - ], - [ - "a", - "bles" - ], - [ - "▁t", - "ak" - ], - [ - "▁ta", - "k" - ], - [ - "ut", - "ton" - ], - [ - "utt", - "on" - ], - [ - "utto", - "n" - ], - [ - "▁a", - "rg" - ], - [ - "▁ar", - "g" - ], - [ - "▁", - "arg" - ], - [ - "ty", - "pe" - ], - [ - "typ", - "e" - ], - [ - "t", - "ype" - ], - [ - "▁s", - "ure" - ], - [ - "▁su", - "re" - ], - [ - "▁sur", - "e" - ], - [ - "▁re", - "al" - ], - [ - "▁", - "real" - ], - [ - "▁w", - "eb" - ], - [ - "▁we", - "b" - ], - [ - "▁", - "web" - ], - [ - "▁c", - "urrent" - ], - [ - "▁cur", - "rent" - ], - [ - "▁curr", - "ent" - ], - [ - "▁", - "current" - ], - [ - "▁P", - "l" - ], - [ - "▁", - "Pl" - ], - [ - "ch", - "o" - ], - [ - "c", - "ho" - ], - [ - "ment", - "s" - ], - [ - "men", - "ts" - ], - [ - "m", - "ents" - ], - [ - "▁J", - "oh" - ], - [ - "▁Jo", - "h" - ], - [ - "ot", - "s" - ], - [ - "o", - "ts" - ], - [ - "▁ex", - "ist" - ], - [ - "▁", - "exist" - ], - [ - "н", - "у" - ], - [ - "▁f", - "ür" - ], - [ - "▁", - "für" - ], - [ - "▁и", - "з" - ], - [ - "▁", - "из" - ], - [ - "d", - "o" - ], - [ - "но", - "го" - ], - [ - "ног", - "о" - ], - [ - "н", - "ого" - ], - [ - "▁l", - "as" - ], - [ - "▁la", - "s" - ], - [ - "▁", - "las" - ], - [ - "▁n", - "ull" - ], - [ - "▁nu", - "ll" - ], - [ - "▁", - "null" - ], - [ - "▁in", - "form" - ], - [ - "▁inf", - "orm" - ], - [ - "▁info", - "rm" - ], - [ - "▁", - "Л" - ], - [ - "▁v", - "ersion" - ], - [ - "▁vers", - "ion" - ], - [ - "▁", - "version" - ], - [ - "▁c", - "hang" - ], - [ - "▁ch", - "ang" - ], - [ - "▁cha", - "ng" - ], - [ - "ag", - "er" - ], - [ - "age", - "r" - ], - [ - "a", - "ger" - ], - [ - "▁C", - "omm" - ], - [ - "▁Com", - "m" - ], - [ - "▁Co", - "mm" - ], - [ - "▁", - "Comm" - ], - [ - "л", - "і" - ], - [ - "us", - "h" - ], - [ - "u", - "sh" - ], - [ - "▁G", - "e" - ], - [ - "▁", - "Ge" - ], - [ - "▁h", - "igh" - ], - [ - "▁hi", - "gh" - ], - [ - "▁", - "high" - ], - [ - "▁in", - "put" - ], - [ - "▁", - "input" - ], - [ - "og", - "le" - ], - [ - "o", - "gle" - ], - [ - "ro", - "s" - ], - [ - "r", - "os" - ], - [ - "bo", - "x" - ], - [ - "b", - "ox" - ], - [ - "ge", - "n" - ], - [ - "g", - "en" - ], - [ - "▁s", - "te" - ], - [ - "▁st", - "e" - ], - [ - "▁", - "ste" - ], - [ - "▁l", - "ocal" - ], - [ - "▁lo", - "cal" - ], - [ - "▁loc", - "al" - ], - [ - "▁", - "local" - ], - [ - "I", - "m" - ], - [ - "▁pro", - "cess" - ], - [ - "▁proc", - "ess" - ], - [ - "▁proces", - "s" - ], - [ - "▁", - "process" - ], - [ - "ter", - "nal" - ], - [ - "tern", - "al" - ], - [ - "t", - "ernal" - ], - [ - "iz", - "ed" - ], - [ - "ize", - "d" - ], - [ - "i", - "zed" - ], - [ - "г", - "и" - ], - [ - "é", - "t" - ], - [ - "▁I", - "nd" - ], - [ - "▁In", - "d" - ], - [ - "▁", - "Ind" - ], - [ - "▁o", - "ch" - ], - [ - "▁oc", - "h" - ], - [ - "▁", - "och" - ], - [ - "l", - "t" - ], - [ - "▁col", - "umn" - ], - [ - "▁", - "column" - ], - [ - "▁t", - "ried" - ], - [ - "▁tr", - "ied" - ], - [ - "▁tri", - "ed" - ], - [ - "▁comm", - "and" - ], - [ - "▁comma", - "nd" - ], - [ - "▁", - "command" - ], - [ - "▁b", - "est" - ], - [ - "▁be", - "st" - ], - [ - "▁bes", - "t" - ], - [ - "▁", - "best" - ], - [ - "as", - "ter" - ], - [ - "ast", - "er" - ], - [ - "aste", - "r" - ], - [ - "a", - "ster" - ], - [ - "з", - "а" - ], - [ - "▁p", - "rim" - ], - [ - "▁pr", - "im" - ], - [ - "▁pri", - "m" - ], - [ - "▁", - "prim" - ], - [ - "▁m", - "odel" - ], - [ - "▁mod", - "el" - ], - [ - "▁mo", - "del" - ], - [ - "▁mode", - "l" - ], - [ - "▁", - "model" - ], - [ - "▁", - "і" - ], - [ - "▁th", - "ose" - ], - [ - "it", - "ies" - ], - [ - "iti", - "es" - ], - [ - "itie", - "s" - ], - [ - "i", - "ties" - ], - [ - "è", - "re" - ], - [ - "▁р", - "е" - ], - [ - "▁", - "ре" - ], - [ - "ј", - "е" - ], - [ - "ш", - "и" - ], - [ - "qu", - "es" - ], - [ - "que", - "s" - ], - [ - "q", - "ues" - ], - [ - "▁A", - "m" - ], - [ - "▁", - "Am" - ], - [ - "▁o", - "wn" - ], - [ - "▁ow", - "n" - ], - [ - "▁", - "own" - ], - [ - "li", - "n" - ], - [ - "l", - "in" - ], - [ - "з", - "и" - ], - [ - "Val", - "ue" - ], - [ - "th", - "ing" - ], - [ - "t", - "hing" - ], - [ - "▁", - "," - ], - [ - "▁T", - "e" - ], - [ - "▁", - "Te" - ], - [ - "▁st", - "ud" - ], - [ - "▁", - "stud" - ], - [ - "▁u", - "m" - ], - [ - "▁", - "um" - ], - [ - "▁ser", - "ver" - ], - [ - "▁serv", - "er" - ], - [ - "▁serve", - "r" - ], - [ - "▁", - "server" - ], - [ - "il", - "le" - ], - [ - "ill", - "e" - ], - [ - "i", - "lle" - ], - [ - "▁p", - "ut" - ], - [ - "▁pu", - "t" - ], - [ - "▁", - "put" - ], - [ - "at", - "iv" - ], - [ - "ati", - "v" - ], - [ - "g", - "y" - ], - [ - "ов", - "и" - ], - [ - "о", - "ви" - ], - [ - "ra", - "f" - ], - [ - "r", - "af" - ], - [ - "ов", - "о" - ], - [ - "о", - "во" - ], - [ - "▁wur", - "de" - ], - [ - "▁W", - "hen" - ], - [ - "▁Wh", - "en" - ], - [ - "▁Whe", - "n" - ], - [ - "▁", - "When" - ], - [ - "▁d", - "iv" - ], - [ - "▁di", - "v" - ], - [ - "▁", - "div" - ], - [ - "an", - "ts" - ], - [ - "ant", - "s" - ], - [ - "▁t", - "er" - ], - [ - "▁te", - "r" - ], - [ - "▁", - "ter" - ], - [ - "▁part", - "ic" - ], - [ - "▁parti", - "c" - ], - [ - "▁", - "т" - ], - [ - "▁D", - "o" - ], - [ - "▁", - "Do" - ], - [ - "▁N", - "o" - ], - [ - "▁", - "No" - ], - [ - "se", - "rt" - ], - [ - "ser", - "t" - ], - [ - "s", - "ert" - ], - [ - "id", - "o" - ], - [ - "i", - "do" - ], - [ - "math", - "cal" - ], - [ - "ad", - "e" - ], - [ - "a", - "de" - ], - [ - "▁I", - "I" - ], - [ - "▁", - "II" - ], - [ - "le", - "ar" - ], - [ - "lea", - "r" - ], - [ - "l", - "ear" - ], - [ - "og", - "raph" - ], - [ - "o", - "graph" - ], - [ - "en", - "se" - ], - [ - "ens", - "e" - ], - [ - "▁r", - "ow" - ], - [ - "▁ro", - "w" - ], - [ - "▁", - "row" - ], - [ - "nu", - "m" - ], - [ - "n", - "um" - ], - [ - "▁pos", - "sible" - ], - [ - "▁poss", - "ible" - ], - [ - "▁possib", - "le" - ], - [ - "▁", - "possible" - ], - [ - "▁s", - "ince" - ], - [ - "▁sin", - "ce" - ], - [ - "▁", - "since" - ], - [ - "▁B", - "o" - ], - [ - "▁", - "Bo" - ], - [ - "ct", - "ions" - ], - [ - "ction", - "s" - ], - [ - "▁I", - "m" - ], - [ - "▁", - "Im" - ], - [ - "O", - "R" - ], - [ - "ц", - "і" - ], - [ - "▁i", - "de" - ], - [ - "▁id", - "e" - ], - [ - "▁", - "ide" - ], - [ - "ma", - "p" - ], - [ - "m", - "ap" - ], - [ - "▁cor", - "rect" - ], - [ - "▁corre", - "ct" - ], - [ - "▁corr", - "ect" - ], - [ - "▁", - "correct" - ], - [ - "ve", - "s" - ], - [ - "v", - "es" - ], - [ - "ph", - "p" - ], - [ - "p", - "hp" - ], - [ - "▁out", - "put" - ], - [ - "▁", - "output" - ], - [ - "▁P", - "h" - ], - [ - "▁", - "Ph" - ], - [ - "A", - "L" - ], - [ - "ar", - "ed" - ], - [ - "are", - "d" - ], - [ - "a", - "red" - ], - [ - "\\", - "\\" - ], - [ - "▁im", - "age" - ], - [ - "▁imag", - "e" - ], - [ - "▁", - "image" - ], - [ - "es", - "ch" - ], - [ - "esc", - "h" - ], - [ - "e", - "sch" - ], - [ - "ж", - "и" - ], - [ - "▁con", - "f" - ], - [ - "▁", - "conf" - ], - [ - "po", - "r" - ], - [ - "p", - "or" - ], - [ - "qu", - "ery" - ], - [ - "que", - "ry" - ], - [ - "quer", - "y" - ], - [ - "ur", - "es" - ], - [ - "ure", - "s" - ], - [ - "u", - "res" - ], - [ - "iu", - "m" - ], - [ - "i", - "um" - ], - [ - "en", - "ds" - ], - [ - "end", - "s" - ], - [ - "▁A", - "b" - ], - [ - "▁", - "Ab" - ], - [ - "SB", - "N" - ], - [ - "і", - "д" - ], - [ - "et", - "her" - ], - [ - "eth", - "er" - ], - [ - "ethe", - "r" - ], - [ - "e", - "ther" - ], - [ - "pt", - "ions" - ], - [ - "ption", - "s" - ], - [ - "it", - "u" - ], - [ - "i", - "tu" - ], - [ - "li", - "b" - ], - [ - "l", - "ib" - ], - [ - "n", - "s" - ], - [ - "k", - "i" - ], - [ - "▁work", - "ing" - ], - [ - "▁wor", - "king" - ], - [ - "▁", - "working" - ], - [ - "▁c", - "omo" - ], - [ - "▁com", - "o" - ], - [ - "▁co", - "mo" - ], - [ - "▁", - "como" - ], - [ - "▁T", - "hen" - ], - [ - "▁The", - "n" - ], - [ - "▁Th", - "en" - ], - [ - "▁", - "Then" - ], - [ - "M", - "L" - ], - [ - "ke", - "y" - ], - [ - "k", - "ey" - ], - [ - "cl", - "ass" - ], - [ - "cla", - "ss" - ], - [ - "c", - "lass" - ], - [ - "op", - "le" - ], - [ - "o", - "ple" - ], - [ - "itt", - "le" - ], - [ - "▁m", - "atch" - ], - [ - "▁mat", - "ch" - ], - [ - "▁", - "match" - ], - [ - "way", - "s" - ], - [ - "wa", - "ys" - ], - [ - "w", - "ays" - ], - [ - "math", - "bb" - ], - [ - "▁re", - "quire" - ], - [ - "▁requ", - "ire" - ], - [ - "▁", - "require" - ], - [ - "al", - "t" - ], - [ - "a", - "lt" - ], - [ - "▁v", - "is" - ], - [ - "▁vi", - "s" - ], - [ - "▁", - "vis" - ], - [ - "▁b", - "l" - ], - [ - "▁", - "bl" - ], - [ - "▁c", - "alled" - ], - [ - "▁cal", - "led" - ], - [ - "▁call", - "ed" - ], - [ - "▁", - "called" - ], - [ - "It", - "em" - ], - [ - "I", - "tem" - ], - [ - "ur", - "a" - ], - [ - "u", - "ra" - ], - [ - "ve", - "c" - ], - [ - "v", - "ec" - ], - [ - "em", - "e" - ], - [ - "e", - "me" - ], - [ - "▁d", - "ella" - ], - [ - "▁de", - "lla" - ], - [ - "▁del", - "la" - ], - [ - "▁dell", - "a" - ], - [ - "em", - "bre" - ], - [ - "emb", - "re" - ], - [ - "ur", - "g" - ], - [ - "u", - "rg" - ], - [ - "S", - "e" - ], - [ - "▁re", - "quest" - ], - [ - "▁requ", - "est" - ], - [ - "▁req", - "uest" - ], - [ - "▁", - "request" - ], - [ - "is", - "che" - ], - [ - "isch", - "e" - ], - [ - "isc", - "he" - ], - [ - "i", - "sche" - ], - [ - "▁p", - "ort" - ], - [ - "▁po", - "rt" - ], - [ - "▁por", - "t" - ], - [ - "▁", - "port" - ], - [ - "▁inst", - "ead" - ], - [ - "=", - "\\" - ], - [ - "▁", - "У" - ], - [ - "ho", - "r" - ], - [ - "h", - "or" - ], - [ - "en", - "te" - ], - [ - "ent", - "e" - ], - [ - "um", - "e" - ], - [ - "u", - "me" - ], - [ - "er", - "d" - ], - [ - "e", - "rd" - ], - [ - "с", - "а" - ], - [ - "▁w", - "hy" - ], - [ - "▁wh", - "y" - ], - [ - "▁", - "why" - ], - [ - "ri", - "st" - ], - [ - "ris", - "t" - ], - [ - "r", - "ist" - ], - [ - "▁p", - "erson" - ], - [ - "▁per", - "son" - ], - [ - "▁pers", - "on" - ], - [ - "▁", - "person" - ], - [ - "▁.", - ".." - ], - [ - "▁..", - "." - ], - [ - "▁", - "..." - ], - [ - "▁p", - "rivate" - ], - [ - "▁priv", - "ate" - ], - [ - "▁", - "private" - ], - [ - "▁t", - "ot" - ], - [ - "▁to", - "t" - ], - [ - "▁", - "tot" - ], - [ - "ph", - "a" - ], - [ - "p", - "ha" - ], - [ - "if", - "t" - ], - [ - "i", - "ft" - ], - [ - "it", - "a" - ], - [ - "i", - "ta" - ], - [ - "lo", - "c" - ], - [ - "l", - "oc" - ], - [ - "▁o", - "ld" - ], - [ - "▁ol", - "d" - ], - [ - "▁", - "old" - ], - [ - "о", - "н" - ], - [ - "▁n", - "el" - ], - [ - "▁ne", - "l" - ], - [ - "▁", - "nel" - ], - [ - "'", - "]" - ], - [ - "t", - "i" - ], - [ - "ie", - "t" - ], - [ - "i", - "et" - ], - [ - "ci", - "te" - ], - [ - "cit", - "e" - ], - [ - "c", - "ite" - ], - [ - "ple", - "ment" - ], - [ - "pl", - "ement" - ], - [ - "p", - "lement" - ], - [ - "▁a", - "bove" - ], - [ - "▁ab", - "ove" - ], - [ - "▁", - "above" - ], - [ - "k", - "s" - ], - [ - "re", - "ady" - ], - [ - "read", - "y" - ], - [ - "rea", - "dy" - ], - [ - "▁c", - "ome" - ], - [ - "▁com", - "e" - ], - [ - "▁co", - "me" - ], - [ - "▁", - "come" - ], - [ - "se", - "ction" - ], - [ - "sec", - "tion" - ], - [ - "sect", - "ion" - ], - [ - "s", - "ection" - ], - [ - "▁P", - "ol" - ], - [ - "▁Po", - "l" - ], - [ - "▁", - "Pol" - ], - [ - "▁w", - "rit" - ], - [ - "▁wr", - "it" - ], - [ - "▁", - "writ" - ], - [ - "▁htt", - "ps" - ], - [ - "▁http", - "s" - ], - [ - "▁", - "https" - ], - [ - "▁$", - "$" - ], - [ - "▁", - "$$" - ], - [ - "▁", - "»" - ], - [ - "▁bu", - "ild" - ], - [ - "▁", - "build" - ], - [ - "it", - "o" - ], - [ - "i", - "to" - ], - [ - "▁cons", - "ider" - ], - [ - "▁consid", - "er" - ], - [ - "af", - "t" - ], - [ - "a", - "ft" - ], - [ - "Ap", - "p" - ], - [ - "A", - "pp" - ], - [ - ",", - "\\" - ], - [ - "ind", - "ows" - ], - [ - "indow", - "s" - ], - [ - "indo", - "ws" - ], - [ - "com", - "m" - ], - [ - "co", - "mm" - ], - [ - "c", - "omm" - ], - [ - "▁", - ";" - ], - [ - "gr", - "ound" - ], - [ - "gro", - "und" - ], - [ - "g", - "round" - ], - [ - "▁p", - "lace" - ], - [ - "▁pl", - "ace" - ], - [ - "▁pla", - "ce" - ], - [ - "▁", - "place" - ], - [ - "B", - "y" - ], - [ - "▁pro", - "ject" - ], - [ - "▁", - "project" - ], - [ - "Ob", - "ject" - ], - [ - "Obj", - "ect" - ], - [ - "O", - "bject" - ], - [ - "▁re", - "pr" - ], - [ - "▁rep", - "r" - ], - [ - "en", - "ces" - ], - [ - "ence", - "s" - ], - [ - "enc", - "es" - ], - [ - "ind", - "ow" - ], - [ - "indo", - "w" - ], - [ - "z", - "t" - ], - [ - "▁f", - "iles" - ], - [ - "▁file", - "s" - ], - [ - "▁fil", - "es" - ], - [ - "▁fi", - "les" - ], - [ - "▁", - "files" - ], - [ - "c", - "z" - ], - [ - "iv", - "ity" - ], - [ - "ivi", - "ty" - ], - [ - "i", - "vity" - ], - [ - "▁in", - "it" - ], - [ - "▁i", - "nit" - ], - [ - "▁", - "init" - ], - [ - "▁p", - "rob" - ], - [ - "▁pro", - "b" - ], - [ - "▁pr", - "ob" - ], - [ - "▁", - "prob" - ], - [ - "▁s", - "k" - ], - [ - "▁", - "sk" - ], - [ - "or", - "th" - ], - [ - "ort", - "h" - ], - [ - "im", - "ent" - ], - [ - "ime", - "nt" - ], - [ - "imen", - "t" - ], - [ - "i", - "ment" - ], - [ - "ou", - "ble" - ], - [ - "at", - "al" - ], - [ - "ata", - "l" - ], - [ - "a", - "tal" - ], - [ - "ir", - "c" - ], - [ - "i", - "rc" - ], - [ - "▁", - "è" - ], - [ - "▁b", - "re" - ], - [ - "▁br", - "e" - ], - [ - "▁", - "bre" - ], - [ - "is", - "ta" - ], - [ - "ist", - "a" - ], - [ - "i", - "sta" - ], - [ - "in", - "put" - ], - [ - "▁", - "И" - ], - [ - "но", - "й" - ], - [ - "su", - "m" - ], - [ - "s", - "um" - ], - [ - "pa", - "th" - ], - [ - "pat", - "h" - ], - [ - "p", - "ath" - ], - [ - "▁c", - "our" - ], - [ - "▁co", - "ur" - ], - [ - "▁cou", - "r" - ], - [ - "▁t", - "oo" - ], - [ - "▁to", - "o" - ], - [ - "▁A", - "d" - ], - [ - "▁", - "Ad" - ], - [ - "▁G", - "u" - ], - [ - "▁", - "Gu" - ], - [ - "▁f", - "alse" - ], - [ - "▁fal", - "se" - ], - [ - "▁", - "false" - ], - [ - "▁f", - "un" - ], - [ - "▁fu", - "n" - ], - [ - "▁", - "fun" - ], - [ - "▁с", - "т" - ], - [ - "▁", - "ст" - ], - [ - "oo", - "d" - ], - [ - "o", - "od" - ], - [ - "è", - "s" - ], - [ - "▁e", - "nc" - ], - [ - "▁en", - "c" - ], - [ - "▁", - "enc" - ], - [ - "bo", - "l" - ], - [ - "b", - "ol" - ], - [ - "r", - "l" - ], - [ - "ar", - "get" - ], - [ - "arg", - "et" - ], - [ - "or", - "der" - ], - [ - "ord", - "er" - ], - [ - "orde", - "r" - ], - [ - "▁me", - "an" - ], - [ - "▁", - "mean" - ], - [ - "п", - "е" - ], - [ - "ig", - "en" - ], - [ - "ige", - "n" - ], - [ - "i", - "gen" - ], - [ - "▁п", - "ре" - ], - [ - "▁пр", - "е" - ], - [ - "▁", - "пре" - ], - [ - "wid", - "th" - ], - [ - "w", - "idth" - ], - [ - ";", - "\r" - ], - [ - "it", - "or" - ], - [ - "ito", - "r" - ], - [ - "i", - "tor" - ], - [ - "▁st", - "ate" - ], - [ - "▁stat", - "e" - ], - [ - "▁sta", - "te" - ], - [ - "▁", - "state" - ], - [ - "▁gre", - "at" - ], - [ - "en", - "n" - ], - [ - "e", - "nn" - ], - [ - "bi", - "n" - ], - [ - "b", - "in" - ], - [ - "E", - "r" - ], - [ - "Mo", - "d" - ], - [ - "M", - "od" - ], - [ - "o", - "z" - ], - [ - "▁w", - "on" - ], - [ - "▁wo", - "n" - ], - [ - "▁", - "won" - ], - [ - "▁f", - "act" - ], - [ - "▁fa", - "ct" - ], - [ - "▁fac", - "t" - ], - [ - "▁", - "fact" - ], - [ - "▁j", - "ava" - ], - [ - "▁ja", - "va" - ], - [ - "▁jav", - "a" - ], - [ - "▁", - "java" - ], - [ - "▁Un", - "ivers" - ], - [ - "▁", - "Univers" - ], - [ - "▁c", - "ap" - ], - [ - "▁ca", - "p" - ], - [ - "▁", - "cap" - ], - [ - "is", - "tor" - ], - [ - "ist", - "or" - ], - [ - "isto", - "r" - ], - [ - "i", - "stor" - ], - [ - "}", - "(" - ], - [ - "k", - "u" - ], - [ - "it", - "her" - ], - [ - "ith", - "er" - ], - [ - "i", - "ther" - ], - [ - "al", - "es" - ], - [ - "ale", - "s" - ], - [ - "a", - "les" - ], - [ - "▁o", - "u" - ], - [ - "▁", - "ou" - ], - [ - "ro", - "ss" - ], - [ - "ros", - "s" - ], - [ - "r", - "oss" - ], - [ - "▁t", - "ake" - ], - [ - "▁tak", - "e" - ], - [ - "▁ta", - "ke" - ], - [ - "▁", - "take" - ], - [ - "ri", - "x" - ], - [ - "r", - "ix" - ], - [ - "lo", - "b" - ], - [ - "l", - "ob" - ], - [ - "▁e", - "ine" - ], - [ - "▁ein", - "e" - ], - [ - "as", - "es" - ], - [ - "ase", - "s" - ], - [ - "▁a", - "ccess" - ], - [ - "▁acc", - "ess" - ], - [ - "▁ac", - "cess" - ], - [ - "▁", - "access" - ], - [ - "it", - "é" - ], - [ - "i", - "té" - ], - [ - "is", - "tr" - ], - [ - "ist", - "r" - ], - [ - "i", - "str" - ], - [ - "iz", - "ation" - ], - [ - "iza", - "tion" - ], - [ - "▁app", - "ro" - ], - [ - "▁ap", - "pro" - ], - [ - "▁", - "appro" - ], - [ - "ba", - "ll" - ], - [ - "bal", - "l" - ], - [ - "b", - "all" - ], - [ - "▁m", - "ak" - ], - [ - "▁ma", - "k" - ], - [ - "}", - "^" - ], - [ - "▁C", - "ons" - ], - [ - "▁Con", - "s" - ], - [ - "▁Co", - "ns" - ], - [ - "▁", - "Cons" - ], - [ - "pr", - "ess" - ], - [ - "pre", - "ss" - ], - [ - "pres", - "s" - ], - [ - "p", - "ress" - ], - [ - "se", - "rv" - ], - [ - "ser", - "v" - ], - [ - "s", - "erv" - ], - [ - "()", - "." - ], - [ - "(", - ")." - ], - [ - "a", - "f" - ], - [ - "▁re", - "f" - ], - [ - "▁r", - "ef" - ], - [ - "▁", - "ref" - ], - [ - ")", - "\\" - ], - [ - "▁cont", - "in" - ], - [ - "s", - "u" - ], - [ - "iv", - "er" - ], - [ - "ive", - "r" - ], - [ - "i", - "ver" - ], - [ - "▁c", - "ond" - ], - [ - "▁con", - "d" - ], - [ - "▁co", - "nd" - ], - [ - "▁", - "cond" - ], - [ - "▁ex", - "pect" - ], - [ - "▁exp", - "ect" - ], - [ - "▁", - "expect" - ], - [ - "▁char", - "act" - ], - [ - "▁cha", - "ract" - ], - [ - "ber", - "t" - ], - [ - "be", - "rt" - ], - [ - "b", - "ert" - ], - [ - "el", - "t" - ], - [ - "e", - "lt" - ], - [ - "ter", - "s" - ], - [ - "te", - "rs" - ], - [ - "t", - "ers" - ], - [ - "scri", - "pt" - ], - [ - "scr", - "ipt" - ], - [ - "s", - "cript" - ], - [ - "▁E", - "d" - ], - [ - "▁", - "Ed" - ], - [ - "ap", - "t" - ], - [ - "a", - "pt" - ], - [ - "')", - ";" - ], - [ - "'", - ");" - ], - [ - "pr", - "int" - ], - [ - "▁s", - "ize" - ], - [ - "▁si", - "ze" - ], - [ - "▁", - "size" - ], - [ - "▁s", - "ich" - ], - [ - "▁si", - "ch" - ], - [ - "▁sic", - "h" - ], - [ - "fa", - "ce" - ], - [ - "fac", - "e" - ], - [ - "f", - "ace" - ], - [ - "en", - "den" - ], - [ - "end", - "en" - ], - [ - "ende", - "n" - ], - [ - "▁A", - "mer" - ], - [ - "▁Am", - "er" - ], - [ - "▁", - "Amer" - ], - [ - "if", - "ied" - ], - [ - "ifi", - "ed" - ], - [ - "ifie", - "d" - ], - [ - "ó", - "w" - ], - [ - "▁S", - "u" - ], - [ - "▁", - "Su" - ], - [ - "te", - "s" - ], - [ - "t", - "es" - ], - [ - "me", - "d" - ], - [ - "m", - "ed" - ], - [ - "▁R", - "eg" - ], - [ - "▁Re", - "g" - ], - [ - "▁", - "Reg" - ], - [ - "so", - "le" - ], - [ - "sol", - "e" - ], - [ - "s", - "ole" - ], - [ - "▁in", - "clud" - ], - [ - "▁incl", - "ud" - ], - [ - "▁inclu", - "d" - ], - [ - "▁", - "includ" - ], - [ - "in", - "i" - ], - [ - "i", - "ni" - ], - [ - "in", - "ci" - ], - [ - "inc", - "i" - ], - [ - "▁p", - "la" - ], - [ - "▁pl", - "a" - ], - [ - "▁", - "pla" - ], - [ - "▁l", - "eft" - ], - [ - "▁le", - "ft" - ], - [ - "▁", - "left" - ], - [ - "d", - "f" - ], - [ - "Pa", - "r" - ], - [ - "P", - "ar" - ], - [ - "▁A", - "ll" - ], - [ - "▁Al", - "l" - ], - [ - "▁", - "All" - ], - [ - "▁o", - "cc" - ], - [ - "▁oc", - "c" - ], - [ - "▁", - "occ" - ], - [ - "▁A", - "t" - ], - [ - "▁", - "At" - ], - [ - "▁c", - "r" - ], - [ - "▁", - "cr" - ], - [ - "Q", - "u" - ], - [ - "▁g", - "iven" - ], - [ - "▁giv", - "en" - ], - [ - "▁give", - "n" - ], - [ - "▁gi", - "ven" - ], - [ - "▁S", - "ystem" - ], - [ - "▁Syst", - "em" - ], - [ - "▁", - "System" - ], - [ - "ic", - "an" - ], - [ - "ica", - "n" - ], - [ - "i", - "can" - ], - [ - "▁f", - "inal" - ], - [ - "▁fin", - "al" - ], - [ - "▁fi", - "nal" - ], - [ - "▁", - "final" - ], - [ - "it", - "ions" - ], - [ - "ition", - "s" - ], - [ - "iti", - "ons" - ], - [ - "▁б", - "ы" - ], - [ - "▁", - "бы" - ], - [ - "▁per", - "form" - ], - [ - "▁perf", - "orm" - ], - [ - "▁", - "perform" - ], - [ - "A", - "N" - ], - [ - "▁M", - "e" - ], - [ - "▁", - "Me" - ], - [ - "ur", - "o" - ], - [ - "u", - "ro" - ], - [ - "▁T", - "hat" - ], - [ - "▁Th", - "at" - ], - [ - "▁", - "That" - ], - [ - "г", - "ра" - ], - [ - "▁П", - "о" - ], - [ - "▁", - "По" - ], - [ - "▁в", - "и" - ], - [ - "▁", - "ви" - ], - [ - "ab", - "ly" - ], - [ - "abl", - "y" - ], - [ - "▁pr", - "esent" - ], - [ - "▁pre", - "sent" - ], - [ - "▁pres", - "ent" - ], - [ - "▁", - "present" - ], - [ - "du", - "ct" - ], - [ - "d", - "uct" - ], - [ - "ri", - "c" - ], - [ - "r", - "ic" - ], - [ - "▁E", - "ng" - ], - [ - "▁En", - "g" - ], - [ - "▁", - "Eng" - ], - [ - "tr", - "y" - ], - [ - "t", - "ry" - ], - [ - "▁l", - "ar" - ], - [ - "▁la", - "r" - ], - [ - "▁", - "lar" - ], - [ - "b", - "l" - ], - [ - "id", - "d" - ], - [ - "i", - "dd" - ], - [ - "▁ä", - "r" - ], - [ - "▁", - "är" - ], - [ - "or", - "a" - ], - [ - "o", - "ra" - ], - [ - "L", - "L" - ], - [ - "os", - "s" - ], - [ - "o", - "ss" - ], - [ - "▁I", - "SBN" - ], - [ - "▁", - "ISBN" - ], - [ - "▁th", - "ree" - ], - [ - "▁thr", - "ee" - ], - [ - "▁thre", - "e" - ], - [ - "▁", - "three" - ], - [ - "j", - "o" - ], - [ - "n", - "í" - ], - [ - "r", - "c" - ], - [ - "▁f", - "ar" - ], - [ - "▁fa", - "r" - ], - [ - "▁", - "far" - ], - [ - "▁N", - "ot" - ], - [ - "▁No", - "t" - ], - [ - "▁", - "Not" - ], - [ - "▁l", - "ittle" - ], - [ - "▁litt", - "le" - ], - [ - "di", - "s" - ], - [ - "d", - "is" - ], - [ - "at", - "i" - ], - [ - "a", - "ti" - ], - [ - "fun", - "ction" - ], - [ - "func", - "tion" - ], - [ - "f", - "unction" - ], - [ - "▁a", - "ble" - ], - [ - "▁ab", - "le" - ], - [ - "▁", - "able" - ], - [ - "le", - "ss" - ], - [ - "les", - "s" - ], - [ - "l", - "ess" - ], - [ - "с", - "о" - ], - [ - "▁p", - "ath" - ], - [ - "▁pat", - "h" - ], - [ - "▁pa", - "th" - ], - [ - "▁", - "path" - ], - [ - "▁p", - "res" - ], - [ - "▁pr", - "es" - ], - [ - "▁pre", - "s" - ], - [ - "▁", - "pres" - ], - [ - "lo", - "se" - ], - [ - "los", - "e" - ], - [ - "l", - "ose" - ], - [ - "P", - "I" - ], - [ - "▁iss", - "ue" - ], - [ - "▁issu", - "e" - ], - [ - "▁", - "issue" - ], - [ - "ack", - "age" - ], - [ - "ti", - "me" - ], - [ - "tim", - "e" - ], - [ - "t", - "ime" - ], - [ - "ig", - "e" - ], - [ - "i", - "ge" - ], - [ - "am", - "s" - ], - [ - "a", - "ms" - ], - [ - "▁C", - "l" - ], - [ - "▁", - "Cl" - ], - [ - "ail", - "s" - ], - [ - "ai", - "ls" - ], - [ - "a", - "ils" - ], - [ - "al", - "k" - ], - [ - "i", - "i" - ], - [ - "ш", - "е" - ], - [ - "pe", - "n" - ], - [ - "p", - "en" - ], - [ - "Q", - "L" - ], - [ - "▁e", - "as" - ], - [ - "R", - "L" - ], - [ - "ce", - "l" - ], - [ - "c", - "el" - ], - [ - "▁s", - "l" - ], - [ - "▁", - "sl" - ], - [ - "▁a", - "sk" - ], - [ - "▁as", - "k" - ], - [ - "▁", - "ask" - ], - [ - "▁n", - "om" - ], - [ - "▁no", - "m" - ], - [ - "▁", - "nom" - ], - [ - "▁t", - "op" - ], - [ - "▁to", - "p" - ], - [ - "▁", - "top" - ], - [ - "id", - "es" - ], - [ - "ide", - "s" - ], - [ - "i", - "des" - ], - [ - "in", - "dex" - ], - [ - "ind", - "ex" - ], - [ - "inde", - "x" - ], - [ - "é", - "m" - ], - [ - "▁h", - "app" - ], - [ - "▁ha", - "pp" - ], - [ - "o", - "x" - ], - [ - "c", - "d" - ], - [ - "▁b", - "etter" - ], - [ - "▁bet", - "ter" - ], - [ - "▁lo", - "ad" - ], - [ - "▁", - "load" - ], - [ - "ad", - "os" - ], - [ - "ado", - "s" - ], - [ - "ze", - "n" - ], - [ - "z", - "en" - ], - [ - "▁c", - "e" - ], - [ - "▁", - "ce" - ], - [ - "▁f", - "a" - ], - [ - "▁", - "fa" - ], - [ - "▁J", - "ohn" - ], - [ - "▁Joh", - "n" - ], - [ - "▁Jo", - "hn" - ], - [ - "▁", - "John" - ], - [ - "IM", - "A" - ], - [ - "I", - "MA" - ], - [ - "▁B", - "ar" - ], - [ - "▁Ba", - "r" - ], - [ - "▁", - "Bar" - ], - [ - "over", - "flow" - ], - [ - "▁д", - "е" - ], - [ - "▁", - "де" - ], - [ - "ne", - "ss" - ], - [ - "nes", - "s" - ], - [ - "n", - "ess" - ], - [ - "ce", - "r" - ], - [ - "c", - "er" - ], - [ - "▁H", - "ere" - ], - [ - "▁He", - "re" - ], - [ - "▁Her", - "e" - ], - [ - "▁", - "Here" - ], - [ - "re", - "t" - ], - [ - "r", - "et" - ], - [ - "▁s", - "z" - ], - [ - "▁", - "sz" - ], - [ - "amb", - "da" - ], - [ - "op", - "y" - ], - [ - "o", - "py" - ], - [ - "ur", - "l" - ], - [ - "u", - "rl" - ], - [ - "p", - "y" - ], - [ - "r", - "t" - ], - [ - "▁under", - "stand" - ], - [ - "a", - "ł" - ], - [ - "he", - "r" - ], - [ - "h", - "er" - ], - [ - "#", - "#" - ], - [ - "▁ch", - "ild" - ], - [ - "▁chi", - "ld" - ], - [ - "▁", - "child" - ], - [ - "▁ex", - "ec" - ], - [ - "▁", - "exec" - ], - [ - "▁app", - "lication" - ], - [ - "▁applic", - "ation" - ], - [ - "▁", - "application" - ], - [ - "▁st", - "ruct" - ], - [ - "▁str", - "uct" - ], - [ - "▁stru", - "ct" - ], - [ - "▁", - "struct" - ], - [ - "▁", - "я" - ], - [ - "Fil", - "e" - ], - [ - "Fi", - "le" - ], - [ - "F", - "ile" - ], - [ - "▁c", - "ert" - ], - [ - "▁ce", - "rt" - ], - [ - "▁cer", - "t" - ], - [ - "▁", - "cert" - ], - [ - "is", - "on" - ], - [ - "iso", - "n" - ], - [ - "i", - "son" - ], - [ - "▁vari", - "able" - ], - [ - "▁", - "variable" - ], - [ - "D", - "E" - ], - [ - "r", - "s" - ], - [ - "▁re", - "ally" - ], - [ - "▁real", - "ly" - ], - [ - "Po", - "rt" - ], - [ - "P", - "ort" - ], - [ - "b", - "a" - ], - [ - "▁B", - "er" - ], - [ - "▁Be", - "r" - ], - [ - "▁", - "Ber" - ], - [ - "▁in", - "te" - ], - [ - "▁int", - "e" - ], - [ - "▁", - "inte" - ], - [ - "▁st", - "atic" - ], - [ - "▁stat", - "ic" - ], - [ - "▁stati", - "c" - ], - [ - "▁", - "static" - ], - [ - "▁con", - "fig" - ], - [ - "▁conf", - "ig" - ], - [ - "▁", - "config" - ], - [ - "▁S", - "he" - ], - [ - "▁Sh", - "e" - ], - [ - "▁", - "She" - ], - [ - "est", - "ions" - ], - [ - "estion", - "s" - ], - [ - "esti", - "ons" - ], - [ - "▁p", - "lus" - ], - [ - "▁pl", - "us" - ], - [ - "▁", - "plus" - ], - [ - "▁h", - "ab" - ], - [ - "▁ha", - "b" - ], - [ - "▁", - "hab" - ], - [ - "op", - "e" - ], - [ - "o", - "pe" - ], - [ - "▁m", - "us" - ], - [ - "▁mu", - "s" - ], - [ - "▁", - "mus" - ], - [ - "▁c", - "ount" - ], - [ - "▁co", - "unt" - ], - [ - "▁coun", - "t" - ], - [ - "▁cou", - "nt" - ], - [ - "▁", - "count" - ], - [ - "M", - "E" - ], - [ - "▁su", - "pport" - ], - [ - "▁supp", - "ort" - ], - [ - "▁sup", - "port" - ], - [ - "▁", - "support" - ], - [ - "▁pe", - "ople" - ], - [ - "▁", - "people" - ], - [ - "▁b", - "eh" - ], - [ - "▁be", - "h" - ], - [ - "▁al", - "ready" - ], - [ - "T", - "r" - ], - [ - "▁d", - "one" - ], - [ - "▁do", - "ne" - ], - [ - "▁don", - "e" - ], - [ - "▁", - "done" - ], - [ - "de", - "m" - ], - [ - "d", - "em" - ], - [ - "si", - "ze" - ], - [ - "s", - "ize" - ], - [ - "al", - "pha" - ], - [ - "alph", - "a" - ], - [ - "▁d", - "isc" - ], - [ - "▁di", - "sc" - ], - [ - "▁dis", - "c" - ], - [ - "]", - ")" - ], - [ - "▁M", - "an" - ], - [ - "▁Ma", - "n" - ], - [ - "▁", - "Man" - ], - [ - "▁m", - "il" - ], - [ - "▁mi", - "l" - ], - [ - "▁", - "mil" - ], - [ - "▁st", - "and" - ], - [ - "▁sta", - "nd" - ], - [ - "▁stan", - "d" - ], - [ - "▁", - "stand" - ], - [ - "▁gr", - "oup" - ], - [ - "▁gro", - "up" - ], - [ - "▁", - "group" - ], - [ - "▁sm", - "all" - ], - [ - "▁", - "small" - ], - [ - "▁m", - "ag" - ], - [ - "▁ma", - "g" - ], - [ - "▁", - "mag" - ], - [ - "ст", - "ь" - ], - [ - "с", - "ть" - ], - [ - "▁de", - "fault" - ], - [ - "▁def", - "ault" - ], - [ - "▁", - "default" - ], - [ - "▁sing", - "le" - ], - [ - "▁sin", - "gle" - ], - [ - "▁", - "single" - ], - [ - "lin", - "k" - ], - [ - "l", - "ink" - ], - [ - "cl", - "ude" - ], - [ - "clud", - "e" - ], - [ - "▁e", - "ar" - ], - [ - "▁", - "ear" - ], - [ - "il", - "ar" - ], - [ - "ila", - "r" - ], - [ - "i", - "lar" - ], - [ - "**", - "**" - ], - [ - "***", - "*" - ], - [ - "*", - "***" - ], - [ - "▁f", - "ix" - ], - [ - "▁fi", - "x" - ], - [ - "▁", - "fix" - ], - [ - "le", - "y" - ], - [ - "l", - "ey" - ], - [ - "▁p", - "as" - ], - [ - "▁pa", - "s" - ], - [ - "▁", - "pas" - ], - [ - "ни", - "й" - ], - [ - "iss", - "ion" - ], - [ - "▁im", - "plement" - ], - [ - "▁imp", - "lement" - ], - [ - "▁impl", - "ement" - ], - [ - "it", - "ch" - ], - [ - "▁го", - "да" - ], - [ - "▁год", - "а" - ], - [ - "▁al", - "ways" - ], - [ - "▁", - "always" - ], - [ - "▁J", - "ah" - ], - [ - "▁Ja", - "h" - ], - [ - "pr", - "ing" - ], - [ - "p", - "ring" - ], - [ - "ç", - "ão" - ], - [ - "pl", - "ate" - ], - [ - "pla", - "te" - ], - [ - "p", - "late" - ], - [ - "▁de", - "scri" - ], - [ - "▁des", - "cri" - ], - [ - "▁desc", - "ri" - ], - [ - "▁h", - "ead" - ], - [ - "▁he", - "ad" - ], - [ - "▁", - "head" - ], - [ - "in", - "it" - ], - [ - "ini", - "t" - ], - [ - "i", - "nit" - ], - [ - "og", - "raf" - ], - [ - "▁qu", - "ery" - ], - [ - "▁que", - "ry" - ], - [ - "▁quer", - "y" - ], - [ - "▁", - "query" - ], - [ - "iv", - "ed" - ], - [ - "ive", - "d" - ], - [ - "i", - "ved" - ], - [ - "▁in", - "g" - ], - [ - "▁i", - "ng" - ], - [ - "▁", - "ing" - ], - [ - "pt", - "y" - ], - [ - "p", - "ty" - ], - [ - "h", - "a" - ], - [ - "▁m", - "ov" - ], - [ - "▁mo", - "v" - ], - [ - "▁", - "mov" - ], - [ - "▁", - "э" - ], - [ - "et", - "te" - ], - [ - "ett", - "e" - ], - [ - "e", - "tte" - ], - [ - "il", - "y" - ], - [ - "i", - "ly" - ], - [ - "▁g", - "ot" - ], - [ - "▁go", - "t" - ], - [ - "▁", - "got" - ], - [ - "il", - "ed" - ], - [ - "ile", - "d" - ], - [ - "i", - "led" - ], - [ - "ic", - "ro" - ], - [ - "i", - "cro" - ], - [ - "▁w", - "r" - ], - [ - "▁", - "wr" - ], - [ - "р", - "я" - ], - [ - "▁n", - "ever" - ], - [ - "▁ne", - "ver" - ], - [ - "▁nev", - "er" - ], - [ - "or", - "es" - ], - [ - "ore", - "s" - ], - [ - "o", - "res" - ], - [ - "▁b", - "as" - ], - [ - "▁ba", - "s" - ], - [ - "▁", - "bas" - ], - [ - "io", - "s" - ], - [ - "i", - "os" - ], - [ - "la", - "ck" - ], - [ - "lac", - "k" - ], - [ - "l", - "ack" - ], - [ - "ain", - "t" - ], - [ - "ai", - "nt" - ], - [ - "a", - "int" - ], - [ - "vi", - "ous" - ], - [ - "v", - "ious" - ], - [ - "▁g", - "ive" - ], - [ - "▁giv", - "e" - ], - [ - "▁gi", - "ve" - ], - [ - "id", - "ad" - ], - [ - "ida", - "d" - ], - [ - "E", - "n" - ], - [ - "ны", - "й" - ], - [ - "н", - "ый" - ], - [ - "ta", - "ble" - ], - [ - "tab", - "le" - ], - [ - "t", - "able" - ], - [ - "▁Н", - "а" - ], - [ - "▁", - "На" - ], - [ - "▁p", - "at" - ], - [ - "▁pa", - "t" - ], - [ - "▁", - "pat" - ], - [ - "то", - "р" - ], - [ - "т", - "ор" - ], - [ - "an", - "gu" - ], - [ - "ang", - "u" - ], - [ - "lo", - "y" - ], - [ - "l", - "oy" - ], - [ - "▁s", - "eg" - ], - [ - "▁se", - "g" - ], - [ - "▁", - "seg" - ], - [ - "ar", - "ray" - ], - [ - "arr", - "ay" - ], - [ - "▁F", - "l" - ], - [ - "▁", - "Fl" - ], - [ - "▁in", - "dex" - ], - [ - "▁ind", - "ex" - ], - [ - "▁inde", - "x" - ], - [ - "▁", - "index" - ], - [ - "▁s", - "w" - ], - [ - "▁", - "sw" - ], - [ - "IMA", - "GE" - ], - [ - "IM", - "AGE" - ], - [ - "▁k", - "m" - ], - [ - "▁", - "km" - ], - [ - "б", - "и" - ], - [ - "Cl", - "ass" - ], - [ - "Cla", - "ss" - ], - [ - "C", - "lass" - ], - [ - "en", - "a" - ], - [ - "e", - "na" - ], - [ - "ме", - "н" - ], - [ - "м", - "ен" - ], - [ - "com", - "p" - ], - [ - "co", - "mp" - ], - [ - "c", - "omp" - ], - [ - "at", - "us" - ], - [ - "atu", - "s" - ], - [ - "ra", - "p" - ], - [ - "r", - "ap" - ], - [ - "▁L", - "ist" - ], - [ - "▁Li", - "st" - ], - [ - "▁Lis", - "t" - ], - [ - "▁", - "List" - ], - [ - "Er", - "ror" - ], - [ - "Err", - "or" - ], - [ - "E", - "rror" - ], - [ - "▁t", - "yp" - ], - [ - "▁ty", - "p" - ], - [ - "▁", - "typ" - ], - [ - "▁м", - "а" - ], - [ - "▁", - "ма" - ], - [ - "c", - "s" - ], - [ - "'", - ":" - ], - [ - "j", - "i" - ], - [ - "▁How", - "ever" - ], - [ - "▁", - "However" - ], - [ - "▁т", - "е" - ], - [ - "▁", - "те" - ], - [ - "▁be", - "low" - ], - [ - "▁bel", - "ow" - ], - [ - "▁", - "below" - ], - [ - "▁A", - "pp" - ], - [ - "▁Ap", - "p" - ], - [ - "▁", - "App" - ], - [ - "щ", - "е" - ], - [ - "}", - "_" - ], - [ - "bu", - "m" - ], - [ - "b", - "um" - ], - [ - "vi", - "r" - ], - [ - "v", - "ir" - ], - [ - "ée", - "s" - ], - [ - "é", - "es" - ], - [ - "▁re", - "cord" - ], - [ - "▁rec", - "ord" - ], - [ - "▁", - "record" - ], - [ - "ta", - "in" - ], - [ - "t", - "ain" - ], - [ - "le", - "m" - ], - [ - "l", - "em" - ], - [ - "it", - "al" - ], - [ - "ita", - "l" - ], - [ - "i", - "tal" - ], - [ - "▁i", - "mp" - ], - [ - "▁im", - "p" - ], - [ - "▁", - "imp" - ], - [ - "eg", - "o" - ], - [ - "e", - "go" - ], - [ - "▁o", - "d" - ], - [ - "▁", - "od" - ], - [ - "▁re", - "ce" - ], - [ - "▁rec", - "e" - ], - [ - "▁", - "rece" - ], - [ - "mi", - "t" - ], - [ - "m", - "it" - ], - [ - "ff", - "ic" - ], - [ - "f", - "fic" - ], - [ - "stack", - "overflow" - ], - [ - "ie", - "ve" - ], - [ - "iev", - "e" - ], - [ - "▁", - "З" - ], - [ - "▁n", - "ov" - ], - [ - "▁no", - "v" - ], - [ - "▁", - "nov" - ], - [ - "ц", - "е" - ], - [ - "▁In", - "tern" - ], - [ - "▁Int", - "ern" - ], - [ - "▁Inter", - "n" - ], - [ - "▁", - "Intern" - ], - [ - "b", - "u" - ], - [ - "▁s", - "ugg" - ], - [ - "▁su", - "gg" - ], - [ - "▁sug", - "g" - ], - [ - "▁l", - "oop" - ], - [ - "▁lo", - "op" - ], - [ - "▁", - "loop" - ], - [ - "ri", - "de" - ], - [ - "rid", - "e" - ], - [ - "r", - "ide" - ], - [ - "▁$", - "(" - ], - [ - "▁", - "$(" - ], - [ - "▁s", - "uper" - ], - [ - "▁su", - "per" - ], - [ - "▁sup", - "er" - ], - [ - "▁", - "super" - ], - [ - "ri", - "d" - ], - [ - "r", - "id" - ], - [ - "ны", - "х" - ], - [ - "н", - "ых" - ], - [ - "▁P", - "er" - ], - [ - "▁Pe", - "r" - ], - [ - "▁", - "Per" - ], - [ - "▁d", - "om" - ], - [ - "▁do", - "m" - ], - [ - "▁", - "dom" - ], - [ - "=", - "'" - ], - [ - "ut", - "sch" - ], - [ - "uts", - "ch" - ], - [ - "le", - "n" - ], - [ - "l", - "en" - ], - [ - "▁w", - "rite" - ], - [ - "▁writ", - "e" - ], - [ - "▁wr", - "ite" - ], - [ - "▁", - "write" - ], - [ - "▁in", - "v" - ], - [ - "▁", - "inv" - ], - [ - "ou", - "th" - ], - [ - "out", - "h" - ], - [ - "o", - "uth" - ], - [ - "▁H", - "er" - ], - [ - "▁He", - "r" - ], - [ - "▁", - "Her" - ], - [ - "▁y", - "ears" - ], - [ - "▁year", - "s" - ], - [ - "▁ye", - "ars" - ], - [ - "▁or", - "iginal" - ], - [ - "▁orig", - "inal" - ], - [ - "▁origin", - "al" - ], - [ - "▁", - "original" - ], - [ - "eg", - "a" - ], - [ - "e", - "ga" - ], - [ - "▁S", - "te" - ], - [ - "▁St", - "e" - ], - [ - "▁", - "Ste" - ], - [ - "▁se", - "ems" - ], - [ - "▁see", - "ms" - ], - [ - "▁seem", - "s" - ], - [ - "é", - "g" - ], - [ - "▁n", - "ext" - ], - [ - "▁ne", - "xt" - ], - [ - "▁", - "next" - ], - [ - "ed", - "er" - ], - [ - "ede", - "r" - ], - [ - "e", - "der" - ], - [ - "▁N", - "e" - ], - [ - "▁", - "Ne" - ], - [ - "av", - "as" - ], - [ - "ava", - "s" - ], - [ - "a", - "vas" - ], - [ - "ific", - "ation" - ], - [ - "ifi", - "cation" - ], - [ - "ifica", - "tion" - ], - [ - "Ex", - "ception" - ], - [ - "▁D", - "er" - ], - [ - "▁De", - "r" - ], - [ - "▁", - "Der" - ], - [ - "▁v", - "e" - ], - [ - "▁", - "ve" - ], - [ - "at", - "ic" - ], - [ - "ati", - "c" - ], - [ - "ha", - "t" - ], - [ - "h", - "at" - ], - [ - "br", - "ary" - ], - [ - "bra", - "ry" - ], - [ - "re", - "turn" - ], - [ - "ret", - "urn" - ], - [ - "ur", - "ch" - ], - [ - "is", - "ion" - ], - [ - "isi", - "on" - ], - [ - "m", - "i" - ], - [ - "oi", - "nt" - ], - [ - "oin", - "t" - ], - [ - "o", - "int" - ], - [ - "▁d", - "ay" - ], - [ - "▁da", - "y" - ], - [ - "▁", - "day" - ], - [ - "ic", - "tion" - ], - [ - "ict", - "ion" - ], - [ - "i", - "ction" - ], - [ - "á", - "l" - ], - [ - "▁é", - "s" - ], - [ - "▁", - "és" - ], - [ - "▁th", - "ough" - ], - [ - "▁thou", - "gh" - ], - [ - "▁", - "though" - ], - [ - "ac", - "tion" - ], - [ - "act", - "ion" - ], - [ - "a", - "ction" - ], - [ - "í", - "t" - ], - [ - "un", - "gen" - ], - [ - "ung", - "en" - ], - [ - "unge", - "n" - ], - [ - "ou", - "rs" - ], - [ - "our", - "s" - ], - [ - "o", - "urs" - ], - [ - "▁s", - "cript" - ], - [ - "▁scr", - "ipt" - ], - [ - "▁scri", - "pt" - ], - [ - "▁", - "script" - ], - [ - "▁in", - "formation" - ], - [ - "▁inform", - "ation" - ], - [ - "▁", - "information" - ], - [ - "▁mult", - "i" - ], - [ - "▁mul", - "ti" - ], - [ - "▁", - "multi" - ], - [ - "▁\\", - "\\" - ], - [ - "▁", - "\\\\" - ], - [ - "st", - "er" - ], - [ - "ste", - "r" - ], - [ - "s", - "ter" - ], - [ - "к", - "е" - ], - [ - "A", - "C" - ], - [ - "ci", - "es" - ], - [ - "cie", - "s" - ], - [ - "c", - "ies" - ], - [ - "▁dis", - "play" - ], - [ - "▁disp", - "lay" - ], - [ - "▁", - "display" - ], - [ - "om", - "an" - ], - [ - "oma", - "n" - ], - [ - "o", - "man" - ], - [ - "Tim", - "e" - ], - [ - "T", - "ime" - ], - [ - "iu", - "s" - ], - [ - "i", - "us" - ], - [ - "))", - ";" - ], - [ - ")", - ");" - ], - [ - "tr", - "e" - ], - [ - "t", - "re" - ], - [ - "▁l", - "im" - ], - [ - "▁li", - "m" - ], - [ - "▁", - "lim" - ], - [ - "at", - "ely" - ], - [ - "ate", - "ly" - ], - [ - "atel", - "y" - ], - [ - "é", - "d" - ], - [ - "is", - "te" - ], - [ - "ist", - "e" - ], - [ - "i", - "ste" - ], - [ - "▁с", - "а" - ], - [ - "▁", - "са" - ], - [ - "pos", - "t" - ], - [ - "po", - "st" - ], - [ - "p", - "ost" - ], - [ - "ue", - "l" - ], - [ - "u", - "el" - ], - [ - "im", - "g" - ], - [ - "▁", - "ч" - ], - [ - "ск", - "а" - ], - [ - "с", - "ка" - ], - [ - "el", - "d" - ], - [ - "e", - "ld" - ], - [ - "pp", - "er" - ], - [ - "ppe", - "r" - ], - [ - "p", - "per" - ], - [ - "ul", - "a" - ], - [ - "u", - "la" - ], - [ - "▁gener", - "al" - ], - [ - "▁gen", - "eral" - ], - [ - "▁gene", - "ral" - ], - [ - "▁", - "general" - ], - [ - "A", - "l" - ], - [ - "For", - "m" - ], - [ - "F", - "orm" - ], - [ - "▁u", - "pon" - ], - [ - "▁up", - "on" - ], - [ - "z", - "o" - ], - [ - "am", - "ente" - ], - [ - "ament", - "e" - ], - [ - "amen", - "te" - ], - [ - "a", - "mente" - ], - [ - "▁p", - "rom" - ], - [ - "▁pro", - "m" - ], - [ - "▁pr", - "om" - ], - [ - "▁", - "prom" - ], - [ - "▁", - "ü" - ], - [ - "le", - "x" - ], - [ - "l", - "ex" - ], - [ - "▁t", - "urn" - ], - [ - "▁tu", - "rn" - ], - [ - "▁tur", - "n" - ], - [ - "▁", - "turn" - ], - [ - "▁м", - "е" - ], - [ - "▁", - "ме" - ], - [ - "en", - "tion" - ], - [ - "ent", - "ion" - ], - [ - "enti", - "on" - ], - [ - "ле", - "н" - ], - [ - "л", - "ен" - ], - [ - "▁a", - "f" - ], - [ - "▁", - "af" - ], - [ - "ic", - "le" - ], - [ - "i", - "cle" - ], - [ - "ст", - "в" - ], - [ - "с", - "тв" - ], - [ - "▁F", - "il" - ], - [ - "▁", - "Fil" - ], - [ - "▁", - "Ф" - ], - [ - "ava", - "script" - ], - [ - "avas", - "cript" - ], - [ - "Ma", - "n" - ], - [ - "M", - "an" - ], - [ - "ar", - "a" - ], - [ - "a", - "ra" - ], - [ - "wa", - "re" - ], - [ - "war", - "e" - ], - [ - "w", - "are" - ], - [ - "al", - "ign" - ], - [ - "ali", - "gn" - ], - [ - "an", - "gle" - ], - [ - "ang", - "le" - ], - [ - "▁S", - "c" - ], - [ - "▁", - "Sc" - ], - [ - "un", - "ic" - ], - [ - "uni", - "c" - ], - [ - "u", - "nic" - ], - [ - "▁f", - "ran" - ], - [ - "▁fr", - "an" - ], - [ - "▁fra", - "n" - ], - [ - "▁", - "fran" - ], - [ - "U", - "n" - ], - [ - "z", - "i" - ], - [ - "me", - "t" - ], - [ - "m", - "et" - ], - [ - "Ad", - "d" - ], - [ - "A", - "dd" - ], - [ - "▁p", - "ub" - ], - [ - "▁pu", - "b" - ], - [ - "▁", - "pub" - ], - [ - "ко", - "в" - ], - [ - "к", - "ов" - ], - [ - "▁g", - "en" - ], - [ - "▁ge", - "n" - ], - [ - "▁", - "gen" - ], - [ - "▁p", - "od" - ], - [ - "▁po", - "d" - ], - [ - "▁", - "pod" - ], - [ - "▁s", - "um" - ], - [ - "▁su", - "m" - ], - [ - "▁", - "sum" - ], - [ - "▁h", - "aving" - ], - [ - "▁ha", - "ving" - ], - [ - "▁hav", - "ing" - ], - [ - "▁a", - "vec" - ], - [ - "▁av", - "ec" - ], - [ - "▁ave", - "c" - ], - [ - "s", - "l" - ], - [ - "▁f", - "ig" - ], - [ - "▁fi", - "g" - ], - [ - "▁", - "fig" - ], - [ - "▁R", - "es" - ], - [ - "▁Re", - "s" - ], - [ - "▁", - "Res" - ], - [ - "Dat", - "e" - ], - [ - "Da", - "te" - ], - [ - "D", - "ate" - ], - [ - "ul", - "es" - ], - [ - "ule", - "s" - ], - [ - "u", - "les" - ], - [ - "wi", - "th" - ], - [ - "w", - "ith" - ], - [ - "ски", - "й" - ], - [ - "с", - "кий" - ], - [ - "g", - "u" - ], - [ - "E", - "T" - ], - [ - "▁b", - "ro" - ], - [ - "▁br", - "o" - ], - [ - "▁", - "bro" - ], - [ - "ri", - "e" - ], - [ - "r", - "ie" - ], - [ - "ap", - "s" - ], - [ - "a", - "ps" - ], - [ - "en", - "ding" - ], - [ - "end", - "ing" - ], - [ - "endi", - "ng" - ], - [ - "ma", - "il" - ], - [ - "mai", - "l" - ], - [ - "m", - "ail" - ], - [ - "oo", - "k" - ], - [ - "o", - "ok" - ], - [ - "▁su", - "ccess" - ], - [ - "▁succ", - "ess" - ], - [ - "▁suc", - "cess" - ], - [ - "▁", - "success" - ], - [ - "ber", - "g" - ], - [ - "be", - "rg" - ], - [ - "b", - "erg" - ], - [ - "▁d", - "eb" - ], - [ - "▁de", - "b" - ], - [ - "▁", - "deb" - ], - [ - "el", - "ta" - ], - [ - "elt", - "a" - ], - [ - "()", - "`" - ], - [ - "(", - ")`" - ], - [ - "ent", - "ial" - ], - [ - "enti", - "al" - ], - [ - "fr", - "ame" - ], - [ - "fra", - "me" - ], - [ - "fram", - "e" - ], - [ - "f", - "rame" - ], - [ - "Ke", - "y" - ], - [ - "K", - "ey" - ], - [ - "in", - "n" - ], - [ - "i", - "nn" - ], - [ - "▁sim", - "ple" - ], - [ - "▁simp", - "le" - ], - [ - "▁simpl", - "e" - ], - [ - "▁", - "simple" - ], - [ - "iv", - "al" - ], - [ - "iva", - "l" - ], - [ - "i", - "val" - ], - [ - "▁c", - "are" - ], - [ - "▁car", - "e" - ], - [ - "▁ca", - "re" - ], - [ - "▁", - "care" - ], - [ - "▁W", - "eb" - ], - [ - "▁We", - "b" - ], - [ - "▁", - "Web" - ], - [ - "\")", - "." - ], - [ - "\"", - ")." - ], - [ - "><", - "/" - ], - [ - ">", - "" - ], - [ - "▁", - "/>" - ], - [ - "k", - "o" - ], - [ - "▁ex", - "per" - ], - [ - "▁exp", - "er" - ], - [ - "▁se", - "par" - ], - [ - "▁sep", - "ar" - ], - [ - "▁", - "separ" - ], - [ - "y", - "l" - ], - [ - "ou", - "rn" - ], - [ - "our", - "n" - ], - [ - "o", - "urn" - ], - [ - "▁d", - "ev" - ], - [ - "▁de", - "v" - ], - [ - "▁", - "dev" - ], - [ - "▁a", - "uch" - ], - [ - "▁au", - "ch" - ], - [ - "▁auc", - "h" - ], - [ - "▁", - "auch" - ], - [ - "▁b", - "lock" - ], - [ - "▁bl", - "ock" - ], - [ - "▁blo", - "ck" - ], - [ - "▁", - "block" - ], - [ - "bo", - "ok" - ], - [ - "b", - "ook" - ], - [ - "▁m", - "ap" - ], - [ - "▁ma", - "p" - ], - [ - "▁", - "map" - ], - [ - "il", - "la" - ], - [ - "ill", - "a" - ], - [ - "i", - "lla" - ], - [ - "▁com", - "put" - ], - [ - "▁comp", - "ut" - ], - [ - "▁", - "comput" - ], - [ - "▁s", - "pace" - ], - [ - "▁sp", - "ace" - ], - [ - "▁spac", - "e" - ], - [ - "▁", - "space" - ], - [ - "res", - "ult" - ], - [ - ")", - "}" - ], - [ - "▁e", - "cho" - ], - [ - "▁ec", - "ho" - ], - [ - "▁", - "echo" - ], - [ - "con", - "fig" - ], - [ - "conf", - "ig" - ], - [ - "h", - "i" - ], - [ - "▁lar", - "ge" - ], - [ - "▁larg", - "e" - ], - [ - "▁", - "large" - ], - [ - "▁w", - "idth" - ], - [ - "▁wid", - "th" - ], - [ - "▁", - "width" - ], - [ - "▁G", - "o" - ], - [ - "▁", - "Go" - ], - [ - "ma", - "t" - ], - [ - "m", - "at" - ], - [ - "▁d", - "iff" - ], - [ - "▁di", - "ff" - ], - [ - "▁dif", - "f" - ], - [ - "▁", - "diff" - ], - [ - "▁k", - "ind" - ], - [ - "▁ki", - "nd" - ], - [ - "▁kin", - "d" - ], - [ - "▁", - "kind" - ], - [ - "an", - "ces" - ], - [ - "ance", - "s" - ], - [ - "anc", - "es" - ], - [ - "yn", - "am" - ], - [ - "yna", - "m" - ], - [ - "y", - "nam" - ], - [ - "▁col", - "or" - ], - [ - "▁co", - "lor" - ], - [ - "▁", - "color" - ], - [ - "In", - "t" - ], - [ - "I", - "nt" - ], - [ - "so", - "l" - ], - [ - "s", - "ol" - ], - [ - "▁p", - "i" - ], - [ - "▁", - "pi" - ], - [ - "▁char", - "acter" - ], - [ - "▁charact", - "er" - ], - [ - "▁", - "character" - ], - [ - "om", - "ent" - ], - [ - "ome", - "nt" - ], - [ - "omen", - "t" - ], - [ - "o", - "ment" - ], - [ - "▁res", - "ponse" - ], - [ - "▁respons", - "e" - ], - [ - "▁", - "response" - ], - [ - "ig", - "ma" - ], - [ - "ward", - "s" - ], - [ - "war", - "ds" - ], - [ - "w", - "ards" - ], - [ - "ar", - "row" - ], - [ - "arr", - "ow" - ], - [ - "с", - "у" - ], - [ - "ti", - "es" - ], - [ - "t", - "ies" - ], - [ - "▁ü", - "ber" - ], - [ - "▁", - "über" - ], - [ - "Im", - "age" - ], - [ - "y", - "d" - ], - [ - "▁п", - "ере" - ], - [ - "▁пер", - "е" - ], - [ - "▁пе", - "ре" - ], - [ - "▁", - "пере" - ], - [ - "▁n", - "ode" - ], - [ - "▁no", - "de" - ], - [ - "▁nod", - "e" - ], - [ - "▁", - "node" - ], - [ - "▁it", - "em" - ], - [ - "▁i", - "tem" - ], - [ - "▁", - "item" - ], - [ - "ach", - "ine" - ], - [ - "achi", - "ne" - ], - [ - "im", - "a" - ], - [ - "i", - "ma" - ], - [ - "▁v", - "a" - ], - [ - "▁", - "va" - ], - [ - "▁appro", - "ach" - ], - [ - "▁w", - "er" - ], - [ - "▁we", - "r" - ], - [ - "▁", - "wer" - ], - [ - "▁ч", - "е" - ], - [ - "▁", - "че" - ], - [ - "O", - "n" - ], - [ - "ol", - "low" - ], - [ - "oll", - "ow" - ], - [ - "он", - "а" - ], - [ - "о", - "на" - ], - [ - "ct", - "ed" - ], - [ - "c", - "ted" - ], - [ - "ur", - "ed" - ], - [ - "ure", - "d" - ], - [ - "u", - "red" - ], - [ - "Cont", - "roller" - ], - [ - "Control", - "ler" - ], - [ - "li", - "ed" - ], - [ - "lie", - "d" - ], - [ - "l", - "ied" - ], - [ - "▁j", - "o" - ], - [ - "▁", - "jo" - ], - [ - "▁d", - "al" - ], - [ - "▁da", - "l" - ], - [ - "▁", - "dal" - ], - [ - "un", - "k" - ], - [ - "▁", - "î" - ], - [ - "st", - "art" - ], - [ - "sta", - "rt" - ], - [ - "star", - "t" - ], - [ - "ol", - "a" - ], - [ - "o", - "la" - ], - [ - "▁com", - "pon" - ], - [ - "▁comp", - "on" - ], - [ - "I", - "C" - ], - [ - "bi", - "t" - ], - [ - "b", - "it" - ], - [ - "▁b", - "ase" - ], - [ - "▁bas", - "e" - ], - [ - "▁ba", - "se" - ], - [ - "▁", - "base" - ], - [ - "п", - "у" - ], - [ - "▁id", - "ea" - ], - [ - "▁ide", - "a" - ], - [ - "▁", - "idea" - ], - [ - "▁d", - "ire" - ], - [ - "▁di", - "re" - ], - [ - "▁dir", - "e" - ], - [ - "▁", - "dire" - ], - [ - "▁r", - "ad" - ], - [ - "▁ra", - "d" - ], - [ - "▁", - "rad" - ], - [ - "gr", - "oup" - ], - [ - "gro", - "up" - ], - [ - "▁W", - "ith" - ], - [ - "▁Wi", - "th" - ], - [ - "▁Wit", - "h" - ], - [ - "▁", - "With" - ], - [ - "ser", - "ver" - ], - [ - "serv", - "er" - ], - [ - "serve", - "r" - ], - [ - "si", - "de" - ], - [ - "s", - "ide" - ], - [ - "si", - "ng" - ], - [ - "sin", - "g" - ], - [ - "s", - "ing" - ], - [ - "▁d", - "ies" - ], - [ - "▁di", - "es" - ], - [ - "▁die", - "s" - ], - [ - "▁n", - "ear" - ], - [ - "▁ne", - "ar" - ], - [ - "▁", - "near" - ], - [ - "▁v", - "oor" - ], - [ - "▁vo", - "or" - ], - [ - "▁", - "voor" - ], - [ - "▁arg", - "ument" - ], - [ - "▁", - "argument" - ], - [ - "▁}", - "," - ], - [ - "▁", - "}," - ], - [ - "▁l", - "and" - ], - [ - "▁la", - "nd" - ], - [ - "▁lan", - "d" - ], - [ - "▁", - "land" - ], - [ - "▁n", - "ames" - ], - [ - "▁name", - "s" - ], - [ - "▁na", - "mes" - ], - [ - "▁nam", - "es" - ], - [ - "▁", - "names" - ], - [ - "▁o", - "ption" - ], - [ - "▁op", - "tion" - ], - [ - "▁opt", - "ion" - ], - [ - "▁", - "option" - ], - [ - "ith", - "ub" - ], - [ - "pp", - "ed" - ], - [ - "ppe", - "d" - ], - [ - "p", - "ped" - ], - [ - "au", - "g" - ], - [ - "a", - "ug" - ], - [ - "▁l", - "inks" - ], - [ - "▁link", - "s" - ], - [ - "▁lin", - "ks" - ], - [ - "▁", - "links" - ], - [ - "▁f", - "ull" - ], - [ - "▁fu", - "ll" - ], - [ - "▁ful", - "l" - ], - [ - "▁", - "full" - ], - [ - "▁s", - "itu" - ], - [ - "▁si", - "tu" - ], - [ - "▁sit", - "u" - ], - [ - "▁con", - "sole" - ], - [ - "▁cons", - "ole" - ], - [ - "▁", - "console" - ], - [ - "▁e", - "tc" - ], - [ - "▁et", - "c" - ], - [ - "▁", - "etc" - ], - [ - "au", - "x" - ], - [ - "a", - "ux" - ], - [ - "▁C", - "or" - ], - [ - "▁Co", - "r" - ], - [ - "▁", - "Cor" - ], - [ - "icro", - "soft" - ], - [ - "▁c", - "ame" - ], - [ - "▁cam", - "e" - ], - [ - "▁ca", - "me" - ], - [ - "lo", - "cal" - ], - [ - "loc", - "al" - ], - [ - "l", - "ocal" - ], - [ - "▁k", - "nown" - ], - [ - "▁kn", - "own" - ], - [ - "▁know", - "n" - ], - [ - "▁", - "known" - ], - [ - "▁multi", - "ple" - ], - [ - "▁multip", - "le" - ], - [ - "▁", - "multiple" - ], - [ - "angu", - "age" - ], - [ - "▁t", - "otal" - ], - [ - "▁to", - "tal" - ], - [ - "▁tot", - "al" - ], - [ - "▁", - "total" - ], - [ - "ol", - "ogy" - ], - [ - "olog", - "y" - ], - [ - "olo", - "gy" - ], - [ - "ä", - "t" - ], - [ - "▁", - "Х" - ], - [ - "▁f", - "re" - ], - [ - "▁fr", - "e" - ], - [ - "▁", - "fre" - ], - [ - "▁t", - "en" - ], - [ - "▁te", - "n" - ], - [ - "▁", - "ten" - ], - [ - "ide", - "o" - ], - [ - "▁b", - "es" - ], - [ - "▁be", - "s" - ], - [ - "▁", - "bes" - ], - [ - "tr", - "ue" - ], - [ - "Qu", - "ery" - ], - [ - "Que", - "ry" - ], - [ - "om", - "m" - ], - [ - "o", - "mm" - ], - [ - "▁A", - "rt" - ], - [ - "▁Ar", - "t" - ], - [ - "▁", - "Art" - ], - [ - "▁ke", - "ep" - ], - [ - "▁", - "keep" - ], - [ - "▁Un", - "iversity" - ], - [ - "▁Univers", - "ity" - ], - [ - "re", - "ate" - ], - [ - "rea", - "te" - ], - [ - "pp", - "ort" - ], - [ - "ppo", - "rt" - ], - [ - "p", - "port" - ], - [ - "▁p", - "ython" - ], - [ - "▁", - "python" - ], - [ - "tr", - "a" - ], - [ - "t", - "ra" - ], - [ - "ect", - "or" - ], - [ - "ec", - "tor" - ], - [ - "e", - "ctor" - ], - [ - "р", - "і" - ], - [ - "op", - "h" - ], - [ - "o", - "ph" - ], - [ - "▁c", - "onc" - ], - [ - "▁con", - "c" - ], - [ - "▁co", - "nc" - ], - [ - "▁f", - "our" - ], - [ - "▁fo", - "ur" - ], - [ - "▁fou", - "r" - ], - [ - "▁", - "four" - ], - [ - "vi", - "ron" - ], - [ - "vir", - "on" - ], - [ - "▁v", - "ia" - ], - [ - "▁vi", - "a" - ], - [ - "▁", - "via" - ], - [ - "?", - "\"" - ], - [ - "im", - "age" - ], - [ - "ima", - "ge" - ], - [ - "ol", - "l" - ], - [ - "o", - "ll" - ], - [ - "ны", - "е" - ], - [ - "н", - "ые" - ], - [ - "▁con", - "text" - ], - [ - "▁cont", - "ext" - ], - [ - "▁conte", - "xt" - ], - [ - "▁", - "context" - ], - [ - "▁s", - "em" - ], - [ - "▁se", - "m" - ], - [ - "▁", - "sem" - ], - [ - ".", - "_" - ], - [ - "▁e", - "ng" - ], - [ - "▁en", - "g" - ], - [ - "▁", - "eng" - ], - [ - "ma", - "r" - ], - [ - "m", - "ar" - ], - [ - "A", - "D" - ], - [ - "▁m", - "or" - ], - [ - "▁mo", - "r" - ], - [ - "▁", - "mor" - ], - [ - "▁C", - "al" - ], - [ - "▁Ca", - "l" - ], - [ - "▁", - "Cal" - ], - [ - "▁c", - "ell" - ], - [ - "▁ce", - "ll" - ], - [ - "▁cel", - "l" - ], - [ - "▁", - "cell" - ], - [ - "im", - "al" - ], - [ - "ima", - "l" - ], - [ - "i", - "mal" - ], - [ - "AT", - "E" - ], - [ - "A", - "TE" - ], - [ - "▁in", - "f" - ], - [ - "▁", - "inf" - ], - [ - "ö", - "n" - ], - [ - "uf", - "fer" - ], - [ - "uff", - "er" - ], - [ - "s", - "q" - ], - [ - "..", - ".." - ], - [ - "...", - "." - ], - [ - ".", - "..." - ], - [ - "▁z", - "ur" - ], - [ - "▁zu", - "r" - ], - [ - "W", - "ith" - ], - [ - "ра", - "н" - ], - [ - "р", - "ан" - ], - [ - "ch", - "n" - ], - [ - "c", - "hn" - ], - [ - "▁d", - "oor" - ], - [ - "▁do", - "or" - ], - [ - "▁", - "door" - ], - [ - "cont", - "ent" - ], - [ - "▁m", - "iss" - ], - [ - "▁mi", - "ss" - ], - [ - "▁mis", - "s" - ], - [ - "▁", - "miss" - ], - [ - "▁s", - "imp" - ], - [ - "▁sim", - "p" - ], - [ - "▁si", - "mp" - ], - [ - "▁", - "simp" - ], - [ - "á", - "r" - ], - [ - "ir", - "a" - ], - [ - "i", - "ra" - ], - [ - "▁h", - "at" - ], - [ - "▁ha", - "t" - ], - [ - "▁", - "hat" - ], - [ - "Te", - "st" - ], - [ - "T", - "est" - ], - [ - "▁c", - "ertain" - ], - [ - "▁cert", - "ain" - ], - [ - "▁cer", - "tain" - ], - [ - "▁", - "certain" - ], - [ - "N", - "S" - ], - [ - "▁c", - "ho" - ], - [ - "▁ch", - "o" - ], - [ - "▁", - "cho" - ], - [ - "▁ad", - "v" - ], - [ - "▁", - "adv" - ], - [ - "wh", - "ere" - ], - [ - "w", - "here" - ], - [ - "▁lo", - "oking" - ], - [ - "▁look", - "ing" - ], - [ - "▁", - "looking" - ], - [ - "▁t", - "imes" - ], - [ - "▁time", - "s" - ], - [ - "▁tim", - "es" - ], - [ - "▁ti", - "mes" - ], - [ - "▁", - "times" - ], - [ - "ни", - "х" - ], - [ - "н", - "их" - ], - [ - "ut", - "o" - ], - [ - "u", - "to" - ], - [ - "▁", - "É" - ], - [ - "ca", - "n" - ], - [ - "c", - "an" - ], - [ - "ho", - "st" - ], - [ - "hos", - "t" - ], - [ - "h", - "ost" - ], - [ - "▁(", - "*" - ], - [ - "▁", - "(*" - ], - [ - "lo", - "at" - ], - [ - "▁n", - "icht" - ], - [ - "▁ni", - "cht" - ], - [ - "▁nic", - "ht" - ], - [ - "▁nich", - "t" - ], - [ - "Fi", - "eld" - ], - [ - "F", - "ield" - ], - [ - "bu", - "rg" - ], - [ - "bur", - "g" - ], - [ - "b", - "urg" - ], - [ - "con", - "st" - ], - [ - "cons", - "t" - ], - [ - "ad", - "es" - ], - [ - "ade", - "s" - ], - [ - "a", - "des" - ], - [ - "▁M", - "us" - ], - [ - "▁Mu", - "s" - ], - [ - "▁", - "Mus" - ], - [ - "▁n", - "othing" - ], - [ - "▁not", - "hing" - ], - [ - "▁no", - "thing" - ], - [ - "▁", - "nothing" - ], - [ - "▁in", - "cre" - ], - [ - "▁inc", - "re" - ], - [ - "▁M", - "in" - ], - [ - "▁Mi", - "n" - ], - [ - "▁", - "Min" - ], - [ - "▁p", - "ower" - ], - [ - "▁po", - "wer" - ], - [ - "▁pow", - "er" - ], - [ - "▁", - "power" - ], - [ - "▁Amer", - "ican" - ], - [ - "▁America", - "n" - ], - [ - "▁", - "American" - ], - [ - "l", - "n" - ], - [ - "val", - "id" - ], - [ - "un", - "gs" - ], - [ - "ung", - "s" - ], - [ - "▁N", - "ational" - ], - [ - "▁Nat", - "ional" - ], - [ - "▁Nation", - "al" - ], - [ - "▁", - "National" - ], - [ - "▁S", - "an" - ], - [ - "▁Sa", - "n" - ], - [ - "▁", - "San" - ], - [ - "▁Y", - "ork" - ], - [ - "Re", - "quest" - ], - [ - "ch", - "ar" - ], - [ - "cha", - "r" - ], - [ - "c", - "har" - ], - [ - "▁Z", - "e" - ], - [ - "▁", - "Ze" - ], - [ - "but", - "ton" - ], - [ - "b", - "utton" - ], - [ - "▁a", - "lg" - ], - [ - "▁al", - "g" - ], - [ - "▁", - "alg" - ], - [ - "SO", - "N" - ], - [ - "S", - "ON" - ], - [ - "▁a", - "p" - ], - [ - "▁", - "ap" - ], - [ - "uf", - "f" - ], - [ - "u", - "ff" - ], - [ - "ab", - "ility" - ], - [ - "abil", - "ity" - ], - [ - "е", - "м" - ], - [ - "▁any", - "thing" - ], - [ - "el", - "a" - ], - [ - "e", - "la" - ], - [ - "()", - ")" - ], - [ - "(", - "))" - ], - [ - "б", - "а" - ], - [ - "amp", - "ion" - ], - [ - "ampio", - "n" - ], - [ - "▁p", - "ot" - ], - [ - "▁po", - "t" - ], - [ - "▁", - "pot" - ], - [ - "▁f", - "ut" - ], - [ - "▁fu", - "t" - ], - [ - "ail", - "able" - ], - [ - "▁p", - "rop" - ], - [ - "▁pro", - "p" - ], - [ - "▁pr", - "op" - ], - [ - "▁", - "prop" - ], - [ - "\"", - "]" - ], - [ - "▁l", - "ess" - ], - [ - "▁le", - "ss" - ], - [ - "▁les", - "s" - ], - [ - "▁", - "less" - ], - [ - "la", - "g" - ], - [ - "l", - "ag" - ], - [ - "▁A", - "ugust" - ], - [ - "▁Aug", - "ust" - ], - [ - "▁", - "August" - ], - [ - "I", - "t" - ], - [ - "▁p", - "lease" - ], - [ - "▁ple", - "ase" - ], - [ - "▁st", - "yle" - ], - [ - "▁sty", - "le" - ], - [ - "▁", - "style" - ], - [ - "▁Al", - "so" - ], - [ - "▁Als", - "o" - ], - [ - "▁", - "Also" - ], - [ - "b", - "t" - ], - [ - "▁pro", - "bably" - ], - [ - "▁prob", - "ably" - ], - [ - "▁O", - "ne" - ], - [ - "▁On", - "e" - ], - [ - "▁", - "One" - ], - [ - "▁p", - "oss" - ], - [ - "▁po", - "ss" - ], - [ - "▁pos", - "s" - ], - [ - "▁", - "poss" - ], - [ - "U", - "I" - ], - [ - "ui", - "t" - ], - [ - "u", - "it" - ], - [ - "▁W", - "est" - ], - [ - "▁We", - "st" - ], - [ - "▁Wes", - "t" - ], - [ - "▁", - "West" - ], - [ - "h", - "n" - ], - [ - "+", - "\\" - ], - [ - "But", - "ton" - ], - [ - "Butt", - "on" - ], - [ - "B", - "utton" - ], - [ - "js", - "on" - ], - [ - "j", - "son" - ], - [ - "er", - "r" - ], - [ - "e", - "rr" - ], - [ - "ra", - "me" - ], - [ - "ram", - "e" - ], - [ - "r", - "ame" - ], - [ - "do", - "m" - ], - [ - "d", - "om" - ], - [ - "il", - "on" - ], - [ - "ilo", - "n" - ], - [ - "i", - "lon" - ], - [ - "al", - "f" - ], - [ - "▁c", - "lient" - ], - [ - "▁cl", - "ient" - ], - [ - "▁cli", - "ent" - ], - [ - "▁", - "client" - ], - [ - "▁cont", - "inu" - ], - [ - "▁contin", - "u" - ], - [ - "▁", - "continu" - ], - [ - "x", - "ml" - ], - [ - "pe", - "c" - ], - [ - "p", - "ec" - ], - [ - "ad", - "or" - ], - [ - "ado", - "r" - ], - [ - "a", - "dor" - ], - [ - "l", - "s" - ], - [ - "▁how", - "ever" - ], - [ - "▁A", - "ny" - ], - [ - "▁An", - "y" - ], - [ - "▁", - "Any" - ], - [ - "än", - "d" - ], - [ - "ä", - "nd" - ], - [ - "math", - "rm" - ], - [ - "▁u", - "rl" - ], - [ - "▁ur", - "l" - ], - [ - "▁", - "url" - ], - [ - "▁b", - "ook" - ], - [ - "▁bo", - "ok" - ], - [ - "▁", - "book" - ], - [ - "▁g", - "l" - ], - [ - "▁", - "gl" - ], - [ - "iv", - "es" - ], - [ - "ive", - "s" - ], - [ - "i", - "ves" - ], - [ - "g", - "i" - ], - [ - "▁t", - "ro" - ], - [ - "▁tr", - "o" - ], - [ - "▁U", - "S" - ], - [ - "▁", - "US" - ], - [ - "po", - "int" - ], - [ - "p", - "oint" - ], - [ - "op", - "en" - ], - [ - "ope", - "n" - ], - [ - "o", - "pen" - ], - [ - "▁c", - "ur" - ], - [ - "▁cu", - "r" - ], - [ - "▁", - "cur" - ], - [ - "▁e", - "ra" - ], - [ - "▁er", - "a" - ], - [ - "▁", - "era" - ], - [ - "▁part", - "icular" - ], - [ - "▁partic", - "ular" - ], - [ - "▁particul", - "ar" - ], - [ - "▁parti", - "cular" - ], - [ - "▁H", - "T" - ], - [ - "▁", - "HT" - ], - [ - "oo", - "t" - ], - [ - "o", - "ot" - ], - [ - "el", - "lo" - ], - [ - "ell", - "o" - ], - [ - "lo", - "bal" - ], - [ - "lob", - "al" - ], - [ - "▁a", - "ction" - ], - [ - "▁act", - "ion" - ], - [ - "▁ac", - "tion" - ], - [ - "▁", - "action" - ], - [ - "▁I", - "nt" - ], - [ - "▁In", - "t" - ], - [ - "▁", - "Int" - ], - [ - "▁in", - "clude" - ], - [ - "▁incl", - "ude" - ], - [ - "▁includ", - "e" - ], - [ - "▁inclu", - "de" - ], - [ - "▁", - "include" - ], - [ - "▁el", - "ements" - ], - [ - "▁element", - "s" - ], - [ - "▁ele", - "ments" - ], - [ - "▁elem", - "ents" - ], - [ - "▁", - "elements" - ], - [ - "на", - "я" - ], - [ - "ar", - "ds" - ], - [ - "ard", - "s" - ], - [ - "▁B", - "l" - ], - [ - "▁", - "Bl" - ], - [ - "▁h", - "um" - ], - [ - "▁hu", - "m" - ], - [ - "▁", - "hum" - ], - [ - "fr", - "om" - ], - [ - "f", - "rom" - ], - [ - "ch", - "ange" - ], - [ - "chan", - "ge" - ], - [ - "▁function", - "s" - ], - [ - "▁fun", - "ctions" - ], - [ - "▁", - "functions" - ], - [ - "he", - "n" - ], - [ - "h", - "en" - ], - [ - "Ser", - "vice" - ], - [ - "Serv", - "ice" - ], - [ - "▁he", - "ight" - ], - [ - "▁", - "height" - ], - [ - "▁L", - "and" - ], - [ - "▁La", - "nd" - ], - [ - "▁Lan", - "d" - ], - [ - "▁", - "Land" - ], - [ - "ia", - "s" - ], - [ - "i", - "as" - ], - [ - "g", - "s" - ], - [ - "ió", - "n" - ], - [ - "i", - "ón" - ], - [ - "ло", - "в" - ], - [ - "л", - "ов" - ], - [ - "no", - "de" - ], - [ - "n", - "ode" - ], - [ - ".", - "”" - ], - [ - "ha", - "nd" - ], - [ - "han", - "d" - ], - [ - "h", - "and" - ], - [ - "▁б", - "у" - ], - [ - "▁", - "бу" - ], - [ - "▁a", - "mb" - ], - [ - "▁am", - "b" - ], - [ - "▁", - "amb" - ], - [ - "▁L", - "u" - ], - [ - "▁", - "Lu" - ], - [ - "▁th", - "row" - ], - [ - "▁thr", - "ow" - ], - [ - "▁thro", - "w" - ], - [ - "▁", - "throw" - ], - [ - "▁m", - "ot" - ], - [ - "▁mo", - "t" - ], - [ - "▁", - "mot" - ], - [ - "▁A", - "ct" - ], - [ - "▁Ac", - "t" - ], - [ - "▁", - "Act" - ], - [ - "▁w", - "orld" - ], - [ - "▁wor", - "ld" - ], - [ - "▁", - "world" - ], - [ - "_", - "\\" - ], - [ - "ba", - "se" - ], - [ - "bas", - "e" - ], - [ - "b", - "ase" - ], - [ - "▁C", - "o" - ], - [ - "▁", - "Co" - ], - [ - "▁ar", - "ch" - ], - [ - "▁arc", - "h" - ], - [ - "▁", - "arch" - ], - [ - "▁##", - "##" - ], - [ - "▁###", - "#" - ], - [ - "▁", - "####" - ], - [ - "ge", - "d" - ], - [ - "g", - "ed" - ], - [ - "pr", - "il" - ], - [ - "p", - "ril" - ], - [ - "ol", - "der" - ], - [ - "old", - "er" - ], - [ - "o", - "lder" - ], - [ - "Mod", - "el" - ], - [ - "Mode", - "l" - ], - [ - "Mo", - "del" - ], - [ - "M", - "odel" - ], - [ - "▁sever", - "al" - ], - [ - "li", - "e" - ], - [ - "l", - "ie" - ], - [ - "che", - "ck" - ], - [ - "c", - "heck" - ], - [ - "]", - "{" - ], - [ - "con", - "s" - ], - [ - "co", - "ns" - ], - [ - "c", - "ons" - ], - [ - "▁T", - "ra" - ], - [ - "▁Tr", - "a" - ], - [ - "▁", - "Tra" - ], - [ - "he", - "ck" - ], - [ - "▁l", - "east" - ], - [ - "▁le", - "ast" - ], - [ - "do", - "wn" - ], - [ - "d", - "own" - ], - [ - "eb", - "ru" - ], - [ - "e", - "bru" - ], - [ - "De", - "f" - ], - [ - "D", - "ef" - ], - [ - "par", - "am" - ], - [ - "pa", - "ram" - ], - [ - "para", - "m" - ], - [ - "p", - "aram" - ], - [ - "is", - "cher" - ], - [ - "isch", - "er" - ], - [ - "ische", - "r" - ], - [ - "isc", - "her" - ], - [ - "i", - "scher" - ], - [ - "▁c", - "as" - ], - [ - "▁ca", - "s" - ], - [ - "▁", - "cas" - ], - [ - "C", - "H" - ], - [ - "▁add", - "ress" - ], - [ - "▁addr", - "ess" - ], - [ - "▁", - "address" - ], - [ - "▁ра", - "з" - ], - [ - "▁", - "раз" - ], - [ - "uf", - "en" - ], - [ - "ufe", - "n" - ], - [ - "u", - "fen" - ], - [ - "ur", - "ope" - ], - [ - "uro", - "pe" - ], - [ - "urop", - "e" - ], - [ - "е", - "й" - ], - [ - "▁b", - "ound" - ], - [ - "▁bo", - "und" - ], - [ - "▁bou", - "nd" - ], - [ - "▁", - "bound" - ], - [ - "C", - "O" - ], - [ - "▁A", - "ng" - ], - [ - "▁An", - "g" - ], - [ - "▁", - "Ang" - ], - [ - "▁M", - "a" - ], - [ - "▁", - "Ma" - ], - [ - "In", - "dex" - ], - [ - "Ind", - "ex" - ], - [ - "co", - "re" - ], - [ - "cor", - "e" - ], - [ - "c", - "ore" - ], - [ - "ou", - "ch" - ], - [ - "ouc", - "h" - ], - [ - "o", - "uch" - ], - [ - "at", - "abase" - ], - [ - "ata", - "base" - ], - [ - "rib", - "ution" - ], - [ - "ribu", - "tion" - ], - [ - "doc", - "ument" - ], - [ - "d", - "ocument" - ], - [ - "L", - "e" - ], - [ - "}_", - "{" - ], - [ - "}", - "_{" - ], - [ - "ve", - "rn" - ], - [ - "ver", - "n" - ], - [ - "v", - "ern" - ], - [ - "▁stat", - "ement" - ], - [ - "▁state", - "ment" - ], - [ - "▁", - "statement" - ], - [ - "▁B", - "rit" - ], - [ - "▁Br", - "it" - ], - [ - "on", - "o" - ], - [ - "o", - "no" - ], - [ - "ps", - "ilon" - ], - [ - "psi", - "lon" - ], - [ - "▁le", - "vel" - ], - [ - "▁lev", - "el" - ], - [ - "▁", - "level" - ], - [ - "▁pro", - "duct" - ], - [ - "▁produ", - "ct" - ], - [ - "▁prod", - "uct" - ], - [ - "▁", - "product" - ], - [ - "I", - "S" - ], - [ - "▁c", - "ourse" - ], - [ - "▁cour", - "se" - ], - [ - "▁cours", - "e" - ], - [ - "▁", - "course" - ], - [ - "▁M", - "r" - ], - [ - "▁", - "Mr" - ], - [ - ">", - "\r" - ], - [ - "▁back", - "ground" - ], - [ - "▁", - "background" - ], - [ - "▁re", - "t" - ], - [ - "▁r", - "et" - ], - [ - "▁", - "ret" - ], - [ - "er", - "ing" - ], - [ - "eri", - "ng" - ], - [ - "e", - "ring" - ], - [ - "mo", - "st" - ], - [ - "mos", - "t" - ], - [ - "m", - "ost" - ], - [ - "сь", - "ко" - ], - [ - "ськ", - "о" - ], - [ - "▁th", - "read" - ], - [ - "▁thr", - "ead" - ], - [ - "▁thre", - "ad" - ], - [ - "▁", - "thread" - ], - [ - "it", - "ional" - ], - [ - "ition", - "al" - ], - [ - "iti", - "onal" - ], - [ - "it", - "es" - ], - [ - "ite", - "s" - ], - [ - "i", - "tes" - ], - [ - "P", - "l" - ], - [ - "▁d", - "os" - ], - [ - "▁do", - "s" - ], - [ - "g", - "a" - ], - [ - "da", - "y" - ], - [ - "d", - "ay" - ], - [ - "▁G", - "ener" - ], - [ - "▁Ge", - "ner" - ], - [ - "▁Gen", - "er" - ], - [ - "▁Gene", - "r" - ], - [ - "▁", - "Gener" - ], - [ - "▁t", - "w" - ], - [ - "▁", - "tw" - ], - [ - "A", - "d" - ], - [ - "\">", - "<" - ], - [ - "\"", - "><" - ], - [ - "▁(", - "$" - ], - [ - "▁", - "($" - ], - [ - "▁m", - "oment" - ], - [ - "▁mo", - "ment" - ], - [ - "▁mom", - "ent" - ], - [ - "tit", - "le" - ], - [ - "t", - "itle" - ], - [ - "cre", - "ate" - ], - [ - "c", - "reate" - ], - [ - "vers", - "ion" - ], - [ - "v", - "ersion" - ], - [ - "Man", - "ager" - ], - [ - "▁f", - "ur" - ], - [ - "▁fu", - "r" - ], - [ - "▁", - "fur" - ], - [ - "pp", - "ing" - ], - [ - "ppi", - "ng" - ], - [ - "p", - "ping" - ], - [ - "ij", - "n" - ], - [ - "о", - "с" - ], - [ - "▁r", - "ather" - ], - [ - "▁ra", - "ther" - ], - [ - "▁rat", - "her" - ], - [ - "pt", - "ember" - ], - [ - "O", - "S" - ], - [ - "▁s", - "ite" - ], - [ - "▁si", - "te" - ], - [ - "▁sit", - "e" - ], - [ - "▁", - "site" - ], - [ - "▁c", - "aus" - ], - [ - "▁ca", - "us" - ], - [ - "an", - "i" - ], - [ - "a", - "ni" - ], - [ - "▁h", - "ome" - ], - [ - "▁hom", - "e" - ], - [ - "▁ho", - "me" - ], - [ - "▁", - "home" - ], - [ - "м", - "і" - ], - [ - "▁sh", - "ort" - ], - [ - "▁sho", - "rt" - ], - [ - "▁", - "short" - ], - [ - "p", - "a" - ], - [ - "▁l", - "ead" - ], - [ - "▁le", - "ad" - ], - [ - "is", - "hed" - ], - [ - "ish", - "ed" - ], - [ - "ci", - "ng" - ], - [ - "cin", - "g" - ], - [ - "c", - "ing" - ], - [ - "or", - "ding" - ], - [ - "ord", - "ing" - ], - [ - "ordin", - "g" - ], - [ - "▁p", - "rote" - ], - [ - "▁pro", - "te" - ], - [ - "▁pr", - "ote" - ], - [ - "▁prot", - "e" - ], - [ - "▁", - "prote" - ], - [ - "с", - "ле" - ], - [ - "LE", - "CT" - ], - [ - "L", - "ECT" - ], - [ - "▁di", - "dn" - ], - [ - "▁did", - "n" - ], - [ - "pos", - "ition" - ], - [ - "p", - "osition" - ], - [ - "\",", - "\"" - ], - [ - "\"", - ",\"" - ], - [ - "()", - "," - ], - [ - "(", - ")," - ], - [ - "tr", - "ans" - ], - [ - "tra", - "ns" - ], - [ - "▁l", - "ot" - ], - [ - "▁lo", - "t" - ], - [ - "▁", - "lot" - ], - [ - "▁о", - "д" - ], - [ - "▁", - "од" - ], - [ - "A", - "S" - ], - [ - "▁s", - "at" - ], - [ - "▁sa", - "t" - ], - [ - "▁po", - "ints" - ], - [ - "▁point", - "s" - ], - [ - "▁", - "points" - ], - [ - "g", - "ithub" - ], - [ - "st", - "yle" - ], - [ - "sty", - "le" - ], - [ - "▁го", - "ду" - ], - [ - "▁год", - "у" - ], - [ - "▁D", - "is" - ], - [ - "▁Di", - "s" - ], - [ - "▁", - "Dis" - ], - [ - "pon", - "ent" - ], - [ - "om", - "et" - ], - [ - "ome", - "t" - ], - [ - "o", - "met" - ], - [ - "ze", - "r" - ], - [ - "z", - "er" - ], - [ - "UL", - "L" - ], - [ - "U", - "LL" - ], - [ - "▁p", - "a" - ], - [ - "▁", - "pa" - ], - [ - "A", - "P" - ], - [ - "ac", - "es" - ], - [ - "ace", - "s" - ], - [ - "a", - "ces" - ], - [ - "▁Un", - "ited" - ], - [ - "▁Unit", - "ed" - ], - [ - "am", - "a" - ], - [ - "a", - "ma" - ], - [ - "et", - "y" - ], - [ - "e", - "ty" - ], - [ - "Col", - "or" - ], - [ - "Co", - "lor" - ], - [ - "▁en", - "ough" - ], - [ - "U", - "S" - ], - [ - "▁l", - "ength" - ], - [ - "▁leng", - "th" - ], - [ - "▁", - "length" - ], - [ - "()", - ");" - ], - [ - "())", - ";" - ], - [ - "(", - "));" - ], - [ - "^{", - "\\" - ], - [ - "^", - "{\\" - ], - [ - "ft", - "y" - ], - [ - "f", - "ty" - ], - [ - "Bo", - "x" - ], - [ - "B", - "ox" - ], - [ - "ap", - "ter" - ], - [ - "apt", - "er" - ], - [ - "▁comp", - "let" - ], - [ - "▁comple", - "t" - ], - [ - "▁compl", - "et" - ], - [ - "ни", - "к" - ], - [ - "ma", - "x" - ], - [ - "m", - "ax" - ], - [ - "ob", - "ject" - ], - [ - "obj", - "ect" - ], - [ - "o", - "bject" - ], - [ - "(", - "{" - ], - [ - "img", - "ur" - ], - [ - "it", - "ive" - ], - [ - "iti", - "ve" - ], - [ - "un", - "ch" - ], - [ - "unc", - "h" - ], - [ - "▁S", - "ub" - ], - [ - "▁Su", - "b" - ], - [ - "▁", - "Sub" - ], - [ - "en", - "de" - ], - [ - "end", - "e" - ], - [ - "e", - "nde" - ], - [ - "г", - "у" - ], - [ - "ateg", - "ory" - ], - [ - "ategor", - "y" - ], - [ - "т", - "ы" - ], - [ - "ia", - "no" - ], - [ - "ian", - "o" - ], - [ - "i", - "ano" - ], - [ - "▁u", - "pd" - ], - [ - "▁up", - "d" - ], - [ - "▁A", - "ust" - ], - [ - "▁Aus", - "t" - ], - [ - "▁Au", - "st" - ], - [ - "}{", - "\\" - ], - [ - "}", - "{\\" - ], - [ - "to", - "p" - ], - [ - "t", - "op" - ], - [ - "la", - "s" - ], - [ - "l", - "as" - ], - [ - "pi", - "s" - ], - [ - "p", - "is" - ], - [ - "in", - "ess" - ], - [ - "ine", - "ss" - ], - [ - "ines", - "s" - ], - [ - "i", - "ness" - ], - [ - "▁{", - "\r" - ], - [ - "▁", - "{\r" - ], - [ - "▁", - "Е" - ], - [ - "G", - "r" - ], - [ - "▁A", - "S" - ], - [ - "▁", - "AS" - ], - [ - "▁в", - "е" - ], - [ - "▁", - "ве" - ], - [ - "th", - "ers" - ], - [ - "ther", - "s" - ], - [ - "the", - "rs" - ], - [ - "▁d", - "efined" - ], - [ - "▁def", - "ined" - ], - [ - "▁define", - "d" - ], - [ - "▁defin", - "ed" - ], - [ - "▁", - "defined" - ], - [ - "az", - "ione" - ], - [ - "azi", - "one" - ], - [ - "a", - "zione" - ], - [ - "▁o", - "ffic" - ], - [ - "▁of", - "fic" - ], - [ - "▁off", - "ic" - ], - [ - "▁au", - "tom" - ], - [ - "▁aut", - "om" - ], - [ - "▁auto", - "m" - ], - [ - "▁", - "autom" - ], - [ - "ü", - "n" - ], - [ - "▁b", - "row" - ], - [ - "▁br", - "ow" - ], - [ - "▁bro", - "w" - ], - [ - "▁", - "brow" - ], - [ - "▁s", - "erv" - ], - [ - "▁se", - "rv" - ], - [ - "▁ser", - "v" - ], - [ - "▁", - "serv" - ], - [ - "▁re", - "move" - ], - [ - "▁rem", - "ove" - ], - [ - "▁remov", - "e" - ], - [ - "▁", - "remove" - ], - [ - "ir", - "o" - ], - [ - "i", - "ro" - ], - [ - "▁B", - "ibli" - ], - [ - "▁Bib", - "li" - ], - [ - "E", - "D" - ], - [ - "▁w", - "hole" - ], - [ - "▁wh", - "ole" - ], - [ - "▁who", - "le" - ], - [ - "▁", - "ш" - ], - [ - "▁J", - "ava" - ], - [ - "▁Ja", - "va" - ], - [ - "▁", - "Java" - ], - [ - "▁z", - "um" - ], - [ - "▁zu", - "m" - ], - [ - "u", - "a" - ], - [ - "p", - "m" - ], - [ - "de", - "v" - ], - [ - "d", - "ev" - ], - [ - "к", - "ра" - ], - [ - "ol", - "ds" - ], - [ - "old", - "s" - ], - [ - "▁W", - "ar" - ], - [ - "▁Wa", - "r" - ], - [ - "ä", - "n" - ], - [ - "pa", - "ss" - ], - [ - "pas", - "s" - ], - [ - "p", - "ass" - ], - [ - "u", - "z" - ], - [ - "[", - "\"" - ], - [ - "▁t", - "ri" - ], - [ - "▁tr", - "i" - ], - [ - "▁", - "tri" - ], - [ - "is", - "ed" - ], - [ - "ise", - "d" - ], - [ - "i", - "sed" - ], - [ - "х", - "а" - ], - [ - "▁mem", - "ory" - ], - [ - "▁memor", - "y" - ], - [ - "▁", - "memory" - ], - [ - "▁P", - "ort" - ], - [ - "▁Po", - "rt" - ], - [ - "▁Por", - "t" - ], - [ - "▁", - "Port" - ], - [ - "op", - "er" - ], - [ - "ope", - "r" - ], - [ - "o", - "per" - ], - [ - "U", - "p" - ], - [ - "▁Th", - "ank" - ], - [ - "▁", - "Thank" - ], - [ - "▁M", - "ich" - ], - [ - "▁Mi", - "ch" - ], - [ - "▁Mic", - "h" - ], - [ - "▁", - "Mich" - ], - [ - "yc", - "h" - ], - [ - "y", - "ch" - ], - [ - "bo", - "ard" - ], - [ - "boa", - "rd" - ], - [ - "б", - "у" - ], - [ - "In", - "st" - ], - [ - "▁b", - "egin" - ], - [ - "▁be", - "gin" - ], - [ - "▁beg", - "in" - ], - [ - "▁", - "begin" - ], - [ - "in", - "ation" - ], - [ - "ina", - "tion" - ], - [ - "▁M", - "od" - ], - [ - "▁Mo", - "d" - ], - [ - "▁", - "Mod" - ], - [ - "_", - "," - ], - [ - "▁D", - "en" - ], - [ - "▁De", - "n" - ], - [ - "▁", - "Den" - ], - [ - "op", - "tion" - ], - [ - "opt", - "ion" - ], - [ - "o", - "ption" - ], - [ - "▁con", - "struct" - ], - [ - "▁const", - "ruct" - ], - [ - "▁constru", - "ct" - ], - [ - "▁", - "construct" - ], - [ - "▁J", - "ust" - ], - [ - "▁Ju", - "st" - ], - [ - "▁", - "Just" - ], - [ - "Ma", - "p" - ], - [ - "M", - "ap" - ], - [ - "ru", - "n" - ], - [ - "r", - "un" - ], - [ - "▁re", - "spect" - ], - [ - "▁res", - "pect" - ], - [ - "▁resp", - "ect" - ], - [ - "ha", - "m" - ], - [ - "h", - "am" - ], - [ - "ма", - "н" - ], - [ - "м", - "ан" - ], - [ - "im", - "edia" - ], - [ - "ime", - "dia" - ], - [ - "i", - "media" - ], - [ - "▁a", - "pply" - ], - [ - "▁app", - "ly" - ], - [ - "▁ap", - "ply" - ], - [ - "▁", - "apply" - ], - [ - "cri", - "ption" - ], - [ - "cript", - "ion" - ], - [ - "ma", - "in" - ], - [ - "mai", - "n" - ], - [ - "m", - "ain" - ], - [ - "▁К", - "а" - ], - [ - "▁", - "Ка" - ], - [ - "oi", - "d" - ], - [ - "o", - "id" - ], - [ - "Co", - "de" - ], - [ - "C", - "ode" - ], - [ - "}", - ";" - ], - [ - "In", - "fo" - ], - [ - "Inf", - "o" - ], - [ - "▁for", - "mat" - ], - [ - "▁form", - "at" - ], - [ - "▁forma", - "t" - ], - [ - "▁", - "format" - ], - [ - "Lo", - "g" - ], - [ - "L", - "og" - ], - [ - "▁с", - "у" - ], - [ - "▁", - "су" - ], - [ - "▁l", - "at" - ], - [ - "▁la", - "t" - ], - [ - "▁", - "lat" - ], - [ - "ut", - "or" - ], - [ - "uto", - "r" - ], - [ - "u", - "tor" - ], - [ - "▁re", - "ference" - ], - [ - "▁refer", - "ence" - ], - [ - "▁", - "reference" - ], - [ - "▁cal", - "cul" - ], - [ - "▁calc", - "ul" - ], - [ - "▁", - "calcul" - ], - [ - "on", - "n" - ], - [ - "o", - "nn" - ], - [ - "L", - "o" - ], - [ - "in", - "fty" - ], - [ - "inf", - "ty" - ], - [ - "▁a", - "long" - ], - [ - "▁al", - "ong" - ], - [ - "▁", - "č" - ], - [ - "▁t", - "ask" - ], - [ - "▁ta", - "sk" - ], - [ - "▁", - "task" - ], - [ - "▁e", - "v" - ], - [ - "▁", - "ev" - ], - [ - "th", - "eta" - ], - [ - "the", - "ta" - ], - [ - "ra", - "s" - ], - [ - "r", - "as" - ], - [ - "jo", - "r" - ], - [ - "j", - "or" - ], - [ - "▁б", - "о" - ], - [ - "▁", - "бо" - ], - [ - "▁princi", - "p" - ], - [ - "▁prin", - "cip" - ], - [ - "M", - "y" - ], - [ - "▁e", - "iner" - ], - [ - "▁ein", - "er" - ], - [ - "▁eine", - "r" - ], - [ - "▁E", - "s" - ], - [ - "▁", - "Es" - ], - [ - "om", - "b" - ], - [ - "o", - "mb" - ], - [ - "qu", - "ad" - ], - [ - "qua", - "d" - ], - [ - "^{", - "-" - ], - [ - "^", - "{-" - ], - [ - "um", - "p" - ], - [ - "u", - "mp" - ], - [ - "▁t", - "ill" - ], - [ - "▁til", - "l" - ], - [ - "▁ti", - "ll" - ], - [ - "д", - "і" - ], - [ - "▁lo", - "oks" - ], - [ - "▁look", - "s" - ], - [ - "▁o", - "k" - ], - [ - "▁", - "ok" - ], - [ - "ц", - "а" - ], - [ - "n", - "u" - ], - [ - "Fi", - "l" - ], - [ - "F", - "il" - ], - [ - "▁s", - "ont" - ], - [ - "▁so", - "nt" - ], - [ - "▁son", - "t" - ], - [ - "▁M", - "ed" - ], - [ - "▁Me", - "d" - ], - [ - "▁", - "Med" - ], - [ - "ag", - "ue" - ], - [ - "agu", - "e" - ], - [ - "a", - "gue" - ], - [ - "▁c", - "ost" - ], - [ - "▁co", - "st" - ], - [ - "▁cos", - "t" - ], - [ - "▁", - "cost" - ], - [ - "▁S", - "im" - ], - [ - "▁Si", - "m" - ], - [ - "▁", - "Sim" - ], - [ - "▁com", - "ment" - ], - [ - "▁comm", - "ent" - ], - [ - "▁comme", - "nt" - ], - [ - "▁", - "comment" - ], - [ - "▁(", - "\\" - ], - [ - "▁", - "(\\" - ], - [ - "eg", - "en" - ], - [ - "ege", - "n" - ], - [ - "e", - "gen" - ], - [ - "▁para", - "meter" - ], - [ - "▁param", - "eter" - ], - [ - "▁paramet", - "er" - ], - [ - "▁", - "parameter" - ], - [ - "▁F", - "rance" - ], - [ - "▁Fran", - "ce" - ], - [ - "▁Fr", - "ance" - ], - [ - "▁Franc", - "e" - ], - [ - "▁", - "France" - ], - [ - "re", - "p" - ], - [ - "r", - "ep" - ], - [ - "▁T", - "H" - ], - [ - "▁", - "TH" - ], - [ - "▁y", - "et" - ], - [ - "▁ye", - "t" - ], - [ - "▁a", - "way" - ], - [ - "▁aw", - "ay" - ], - [ - "▁", - "away" - ], - [ - "▁c", - "irc" - ], - [ - "▁ci", - "rc" - ], - [ - "▁cir", - "c" - ], - [ - "▁", - "circ" - ], - [ - "▁A", - "PI" - ], - [ - "▁AP", - "I" - ], - [ - "▁", - "API" - ], - [ - "em", - "p" - ], - [ - "e", - "mp" - ], - [ - "в", - "і" - ], - [ - "L", - "ayout" - ], - [ - "▁l", - "ines" - ], - [ - "▁li", - "nes" - ], - [ - "▁line", - "s" - ], - [ - "▁lin", - "es" - ], - [ - "▁", - "lines" - ], - [ - "▁P", - "art" - ], - [ - "▁Par", - "t" - ], - [ - "▁Pa", - "rt" - ], - [ - "▁", - "Part" - ], - [ - "em", - "pt" - ], - [ - "emp", - "t" - ], - [ - "▁B", - "i" - ], - [ - "▁", - "Bi" - ], - [ - "▁m", - "ind" - ], - [ - "▁min", - "d" - ], - [ - "▁mi", - "nd" - ], - [ - "▁", - "mind" - ], - [ - "k", - "y" - ], - [ - "gi", - "ng" - ], - [ - "gin", - "g" - ], - [ - "g", - "ing" - ], - [ - "▁re", - "port" - ], - [ - "▁rep", - "ort" - ], - [ - "▁repo", - "rt" - ], - [ - "▁", - "report" - ], - [ - "▁A", - "dd" - ], - [ - "▁Ad", - "d" - ], - [ - "▁", - "Add" - ], - [ - "ро", - "д" - ], - [ - "р", - "од" - ], - [ - "▁r", - "ange" - ], - [ - "▁ran", - "ge" - ], - [ - "▁rang", - "e" - ], - [ - "▁", - "range" - ], - [ - "ci", - "as" - ], - [ - "cia", - "s" - ], - [ - "c", - "ias" - ], - [ - "li", - "p" - ], - [ - "l", - "ip" - ], - [ - "▁K", - "ar" - ], - [ - "▁Ka", - "r" - ], - [ - "▁", - "Kar" - ], - [ - "▁Comm", - "ons" - ], - [ - "▁Common", - "s" - ], - [ - "ger", - "ufen" - ], - [ - "af", - "f" - ], - [ - "a", - "ff" - ], - [ - "se", - "c" - ], - [ - "s", - "ec" - ], - [ - "▁h", - "tml" - ], - [ - "▁", - "html" - ], - [ - "li", - "g" - ], - [ - "l", - "ig" - ], - [ - "▁w", - "indow" - ], - [ - "▁wind", - "ow" - ], - [ - "▁", - "window" - ], - [ - "in", - "ition" - ], - [ - "ini", - "tion" - ], - [ - "init", - "ion" - ], - [ - "ci", - "s" - ], - [ - "c", - "is" - ], - [ - "▁u", - "t" - ], - [ - "▁", - "ut" - ], - [ - "el", - "n" - ], - [ - "e", - "ln" - ], - [ - "▁a", - "ux" - ], - [ - "▁au", - "x" - ], - [ - "▁", - "aux" - ], - [ - "▁n", - "eg" - ], - [ - "▁ne", - "g" - ], - [ - "▁", - "neg" - ], - [ - "Ha", - "nd" - ], - [ - "H", - "and" - ], - [ - "▁)", - ";" - ], - [ - "▁", - ");" - ], - [ - "▁a", - "nal" - ], - [ - "▁an", - "al" - ], - [ - "▁", - "anal" - ], - [ - "▁f", - "ri" - ], - [ - "▁fr", - "i" - ], - [ - "▁", - "fri" - ], - [ - "▁с", - "и" - ], - [ - "▁", - "си" - ], - [ - "et", - "ch" - ], - [ - "etc", - "h" - ], - [ - "m", - "d" - ], - [ - "pa", - "ge" - ], - [ - "pag", - "e" - ], - [ - "p", - "age" - ], - [ - "▁l", - "ibrary" - ], - [ - "▁li", - "brary" - ], - [ - "▁", - "library" - ], - [ - "▁:", - "=" - ], - [ - "▁", - ":=" - ], - [ - "RO", - "M" - ], - [ - "R", - "OM" - ], - [ - "Y", - "ou" - ], - [ - "sp", - "ace" - ], - [ - "s", - "pace" - ], - [ - "▁d", - "urch" - ], - [ - "▁dur", - "ch" - ], - [ - "▁h", - "ost" - ], - [ - "▁ho", - "st" - ], - [ - "▁hos", - "t" - ], - [ - "▁", - "host" - ], - [ - "av", - "en" - ], - [ - "ave", - "n" - ], - [ - "a", - "ven" - ], - [ - "▁F", - "ile" - ], - [ - "▁Fil", - "e" - ], - [ - "▁", - "File" - ], - [ - "al", - "le" - ], - [ - "all", - "e" - ], - [ - "a", - "lle" - ], - [ - "ти", - "в" - ], - [ - "▁p", - "ap" - ], - [ - "▁pa", - "p" - ], - [ - "ст", - "во" - ], - [ - "ств", - "о" - ], - [ - "с", - "тво" - ], - [ - "mar", - "k" - ], - [ - "m", - "ark" - ], - [ - "▁m", - "ais" - ], - [ - "▁ma", - "is" - ], - [ - "▁mai", - "s" - ], - [ - "er", - "man" - ], - [ - "erm", - "an" - ], - [ - "Si", - "ze" - ], - [ - "S", - "ize" - ], - [ - "е", - "к" - ], - [ - "▁М", - "а" - ], - [ - "▁", - "Ма" - ], - [ - "▁is", - "n" - ], - [ - "▁i", - "sn" - ], - [ - "▁c", - "opy" - ], - [ - "▁co", - "py" - ], - [ - "▁cop", - "y" - ], - [ - "▁", - "copy" - ], - [ - "st", - "en" - ], - [ - "ste", - "n" - ], - [ - "s", - "ten" - ], - [ - "ri", - "ver" - ], - [ - "riv", - "er" - ], - [ - "rive", - "r" - ], - [ - "r", - "iver" - ], - [ - "▁w", - "ent" - ], - [ - "▁we", - "nt" - ], - [ - "▁wen", - "t" - ], - [ - "▁j", - "avascript" - ], - [ - "▁java", - "script" - ], - [ - "▁", - "javascript" - ], - [ - "▁s", - "am" - ], - [ - "▁sa", - "m" - ], - [ - "▁", - "sam" - ], - [ - "▁f", - "rame" - ], - [ - "▁fr", - "ame" - ], - [ - "▁fra", - "me" - ], - [ - "▁fram", - "e" - ], - [ - "▁", - "frame" - ], - [ - "▁v", - "i" - ], - [ - "▁", - "vi" - ], - [ - "▁pre", - "vious" - ], - [ - "▁prev", - "ious" - ], - [ - "▁", - "previous" - ], - [ - "ro", - "du" - ], - [ - "rod", - "u" - ], - [ - "r", - "odu" - ], - [ - "▁method", - "s" - ], - [ - "▁", - "methods" - ], - [ - "▁ne", - "cess" - ], - [ - "▁neces", - "s" - ], - [ - "▁", - "necess" - ], - [ - "N", - "A" - ], - [ - "ck", - "et" - ], - [ - "cke", - "t" - ], - [ - "c", - "ket" - ], - [ - "▁o", - "pt" - ], - [ - "▁op", - "t" - ], - [ - "▁", - "opt" - ], - [ - "Lo", - "c" - ], - [ - "L", - "oc" - ], - [ - "ho", - "w" - ], - [ - "h", - "ow" - ], - [ - "▁î", - "n" - ], - [ - "▁", - "în" - ], - [ - "sh", - "ip" - ], - [ - "s", - "hip" - ], - [ - "▁it", - "self" - ], - [ - "▁its", - "elf" - ], - [ - "▁P", - "lease" - ], - [ - "▁Ple", - "ase" - ], - [ - "▁", - "Please" - ], - [ - "ie", - "ne" - ], - [ - "ien", - "e" - ], - [ - "i", - "ene" - ], - [ - "ве", - "р" - ], - [ - "в", - "ер" - ], - [ - "▁<", - "<" - ], - [ - "▁", - "<<" - ], - [ - "▁m", - "ill" - ], - [ - "▁mil", - "l" - ], - [ - "▁mi", - "ll" - ], - [ - "▁", - "mill" - ], - [ - "▁t", - "rad" - ], - [ - "▁tr", - "ad" - ], - [ - "▁tra", - "d" - ], - [ - "▁", - "trad" - ], - [ - "pa", - "ce" - ], - [ - "p", - "ace" - ], - [ - "▁H", - "ar" - ], - [ - "▁Ha", - "r" - ], - [ - "▁", - "Har" - ], - [ - "it", - "en" - ], - [ - "ite", - "n" - ], - [ - "i", - "ten" - ], - [ - "wi", - "se" - ], - [ - "w", - "ise" - ], - [ - "writ", - "e" - ], - [ - "wr", - "ite" - ], - [ - "w", - "rite" - ], - [ - "ци", - "и" - ], - [ - "р", - "ы" - ], - [ - "Lin", - "e" - ], - [ - "Li", - "ne" - ], - [ - "L", - "ine" - ], - [ - "ol", - "o" - ], - [ - "o", - "lo" - ], - [ - "▁ac", - "cept" - ], - [ - "▁", - "accept" - ], - [ - "he", - "ight" - ], - [ - "▁e", - "lect" - ], - [ - "▁el", - "ect" - ], - [ - "▁ele", - "ct" - ], - [ - "▁", - "elect" - ], - [ - "el", - "la" - ], - [ - "ell", - "a" - ], - [ - "e", - "lla" - ], - [ - "▁p", - "å" - ], - [ - "Se", - "lect" - ], - [ - "S", - "elect" - ], - [ - "▁", - "ли" - ], - [ - "▁\\", - "<" - ], - [ - "▁", - "\\<" - ], - [ - "(", - "(" - ], - [ - "▁I", - "D" - ], - [ - "▁", - "ID" - ], - [ - "op", - "s" - ], - [ - "o", - "ps" - ], - [ - "ва", - "н" - ], - [ - "в", - "ан" - ], - [ - "i", - "ó" - ], - [ - "T", - "P" - ], - [ - "»", - "," - ], - [ - "ne", - "ction" - ], - [ - "nect", - "ion" - ], - [ - "n", - "ection" - ], - [ - "par", - "ent" - ], - [ - "pa", - "rent" - ], - [ - "▁M", - "ag" - ], - [ - "▁Ma", - "g" - ], - [ - "▁", - "Mag" - ], - [ - "Tab", - "le" - ], - [ - "T", - "able" - ], - [ - "O", - "ver" - ], - [ - "▁n", - "etwork" - ], - [ - "▁net", - "work" - ], - [ - "▁", - "network" - ], - [ - "с", - "по" - ], - [ - "▁as", - "sign" - ], - [ - "▁ass", - "ign" - ], - [ - "▁", - "assign" - ], - [ - "ig", - "ger" - ], - [ - "igg", - "er" - ], - [ - "ir", - "m" - ], - [ - "i", - "rm" - ], - [ - ")", - "`" - ], - [ - "ot", - "tom" - ], - [ - "ott", - "om" - ], - [ - "otto", - "m" - ], - [ - "be", - "ta" - ], - [ - "bet", - "a" - ], - [ - "b", - "eta" - ], - [ - "▁d", - "ell" - ], - [ - "▁de", - "ll" - ], - [ - "▁del", - "l" - ], - [ - "▁b", - "ody" - ], - [ - "▁bo", - "dy" - ], - [ - "▁bod", - "y" - ], - [ - "▁", - "body" - ], - [ - "▁д", - "а" - ], - [ - "▁", - "да" - ], - [ - "▁Y", - "our" - ], - [ - "▁You", - "r" - ], - [ - "▁", - "Your" - ], - [ - "▁f", - "ue" - ], - [ - "▁fu", - "e" - ], - [ - "▁p", - "ackage" - ], - [ - "▁pack", - "age" - ], - [ - "▁", - "package" - ], - [ - "▁l", - "ight" - ], - [ - "▁lig", - "ht" - ], - [ - "▁", - "light" - ], - [ - "▁*", - "*" - ], - [ - "▁", - "**" - ], - [ - "M", - "P" - ], - [ - "▁c", - "ou" - ], - [ - "▁co", - "u" - ], - [ - "▁", - "cou" - ], - [ - "ye", - "s" - ], - [ - "y", - "es" - ], - [ - ":", - "\\" - ], - [ - "▁", - "Ч" - ], - [ - "▁m", - "ention" - ], - [ - "▁men", - "tion" - ], - [ - "▁ment", - "ion" - ], - [ - "en", - "sch" - ], - [ - "ens", - "ch" - ], - [ - "▁d", - "eg" - ], - [ - "▁de", - "g" - ], - [ - "▁", - "deg" - ], - [ - "▁con", - "vert" - ], - [ - "▁conver", - "t" - ], - [ - "▁conv", - "ert" - ], - [ - "▁", - "convert" - ], - [ - "▁D", - "av" - ], - [ - "▁Da", - "v" - ], - [ - "ad", - "t" - ], - [ - "a", - "dt" - ], - [ - "Res", - "ult" - ], - [ - "th", - "ough" - ], - [ - "▁b", - "us" - ], - [ - "▁bu", - "s" - ], - [ - "▁", - "bus" - ], - [ - "x", - "y" - ], - [ - "▁s", - "een" - ], - [ - "▁se", - "en" - ], - [ - "▁see", - "n" - ], - [ - "▁", - "seen" - ], - [ - "Al", - "l" - ], - [ - "A", - "ll" - ], - [ - "pu", - "blic" - ], - [ - "pub", - "lic" - ], - [ - "p", - "ublic" - ], - [ - "iv", - "ely" - ], - [ - "ive", - "ly" - ], - [ - "ivel", - "y" - ], - [ - "▁R", - "ec" - ], - [ - "▁Re", - "c" - ], - [ - "▁", - "Rec" - ], - [ - "▁H", - "is" - ], - [ - "▁Hi", - "s" - ], - [ - "si", - "m" - ], - [ - "s", - "im" - ], - [ - "▁f", - "ör" - ], - [ - "▁fö", - "r" - ], - [ - "▁", - "för" - ], - [ - "▁h", - "istor" - ], - [ - "▁his", - "tor" - ], - [ - "▁hi", - "stor" - ], - [ - "▁hist", - "or" - ], - [ - "▁", - "histor" - ], - [ - "▁s", - "ett" - ], - [ - "▁se", - "tt" - ], - [ - "▁set", - "t" - ], - [ - "▁", - "sett" - ], - [ - "ra", - "t" - ], - [ - "r", - "at" - ], - [ - "ab", - "led" - ], - [ - "able", - "d" - ], - [ - "abl", - "ed" - ], - [ - "a", - "bled" - ], - [ - "▁»", - "," - ], - [ - "▁", - "»," - ], - [ - "go", - "ogle" - ], - [ - "We", - "b" - ], - [ - "W", - "eb" - ], - [ - "é", - "l" - ], - [ - "▁t", - "itle" - ], - [ - "▁tit", - "le" - ], - [ - "▁", - "title" - ], - [ - "▁J", - "anu" - ], - [ - "▁Jan", - "u" - ], - [ - "▁Ja", - "nu" - ], - [ - "ј", - "а" - ], - [ - "▁t", - "ook" - ], - [ - "▁to", - "ok" - ], - [ - "▁too", - "k" - ], - [ - "id", - "en" - ], - [ - "ide", - "n" - ], - [ - "i", - "den" - ], - [ - "s", - "z" - ], - [ - "▁G", - "et" - ], - [ - "▁Ge", - "t" - ], - [ - "▁", - "Get" - ], - [ - "▁object", - "s" - ], - [ - "▁", - "objects" - ], - [ - "▁com", - "mon" - ], - [ - "▁comm", - "on" - ], - [ - "▁", - "common" - ], - [ - "▁ch", - "anges" - ], - [ - "▁change", - "s" - ], - [ - "▁chang", - "es" - ], - [ - "▁", - "changes" - ], - [ - "▁L", - "ond" - ], - [ - "▁Lo", - "nd" - ], - [ - "▁", - "Lond" - ], - [ - "▁ex", - "tern" - ], - [ - "▁ext", - "ern" - ], - [ - "▁j", - "u" - ], - [ - "▁", - "ju" - ], - [ - "I", - "s" - ], - [ - "▁av", - "ailable" - ], - [ - "▁avail", - "able" - ], - [ - "▁", - "available" - ], - [ - "tr", - "i" - ], - [ - "t", - "ri" - ], - [ - "▁m", - "ás" - ], - [ - "▁má", - "s" - ], - [ - "os", - "a" - ], - [ - "o", - "sa" - ], - [ - "B", - "e" - ], - [ - "▁D", - "ata" - ], - [ - "▁Da", - "ta" - ], - [ - "▁Dat", - "a" - ], - [ - "▁", - "Data" - ], - [ - "ur", - "al" - ], - [ - "ura", - "l" - ], - [ - "u", - "ral" - ], - [ - "▁h", - "om" - ], - [ - "▁ho", - "m" - ], - [ - "▁", - "hom" - ], - [ - "▁acc", - "ount" - ], - [ - "▁ac", - "count" - ], - [ - "▁", - "account" - ], - [ - "o", - "o" - ], - [ - "▁p", - "erm" - ], - [ - "▁per", - "m" - ], - [ - "▁pe", - "rm" - ], - [ - "▁", - "perm" - ], - [ - "res", - "pond" - ], - [ - "resp", - "ond" - ], - [ - "y", - "t" - ], - [ - "▁s", - "end" - ], - [ - "▁se", - "nd" - ], - [ - "▁sen", - "d" - ], - [ - "▁", - "send" - ], - [ - "▁return", - "s" - ], - [ - "▁", - "returns" - ], - [ - "iv", - "id" - ], - [ - "ivi", - "d" - ], - [ - "i", - "vid" - ], - [ - "▁ex", - "pla" - ], - [ - "▁exp", - "la" - ], - [ - "▁expl", - "a" - ], - [ - "í", - "n" - ], - [ - "▁n", - "or" - ], - [ - "▁no", - "r" - ], - [ - "▁", - "nor" - ], - [ - "I", - "f" - ], - [ - "▁F", - "rom" - ], - [ - "▁Fr", - "om" - ], - [ - "▁Fro", - "m" - ], - [ - "▁", - "From" - ], - [ - "▁t", - "arget" - ], - [ - "▁tar", - "get" - ], - [ - "▁", - "target" - ], - [ - "fe", - "ct" - ], - [ - "f", - "ect" - ], - [ - "ен", - "т" - ], - [ - "▁u", - "it" - ], - [ - "▁ui", - "t" - ], - [ - "▁", - "uit" - ], - [ - "▁J", - "o" - ], - [ - "▁", - "Jo" - ], - [ - "▁vari", - "ables" - ], - [ - "▁variable", - "s" - ], - [ - "▁", - "variables" - ], - [ - "▁s", - "eries" - ], - [ - "▁se", - "ries" - ], - [ - "▁ser", - "ies" - ], - [ - "▁serie", - "s" - ], - [ - "▁", - "series" - ], - [ - "▁f", - "unc" - ], - [ - "▁fun", - "c" - ], - [ - "▁fu", - "nc" - ], - [ - "▁", - "func" - ], - [ - "▁him", - "self" - ], - [ - "▁ч", - "а" - ], - [ - "▁", - "ча" - ], - [ - "an", - "ti" - ], - [ - "ant", - "i" - ], - [ - "▁a", - "ch" - ], - [ - "▁ac", - "h" - ], - [ - "▁", - "ach" - ], - [ - "ia", - "log" - ], - [ - "ial", - "og" - ], - [ - "i", - "alog" - ], - [ - "▁s", - "td" - ], - [ - "▁st", - "d" - ], - [ - "▁", - "std" - ], - [ - "a", - "e" - ], - [ - "▁f", - "oot" - ], - [ - "▁fo", - "ot" - ], - [ - "▁foo", - "t" - ], - [ - "▁", - "foot" - ], - [ - "▁un", - "ter" - ], - [ - "▁", - "unter" - ], - [ - "gr", - "ess" - ], - [ - "gres", - "s" - ], - [ - "gre", - "ss" - ], - [ - "g", - "ress" - ], - [ - "No", - "t" - ], - [ - "N", - "ot" - ], - [ - "ra", - "d" - ], - [ - "r", - "ad" - ], - [ - "f", - "ér" - ], - [ - "▁u", - "til" - ], - [ - "▁ut", - "il" - ], - [ - "▁", - "util" - ], - [ - "or", - "em" - ], - [ - "ore", - "m" - ], - [ - "o", - "rem" - ], - [ - "▁s", - "ou" - ], - [ - "▁so", - "u" - ], - [ - "op", - "t" - ], - [ - "o", - "pt" - ], - [ - "▁o", - "g" - ], - [ - "▁", - "og" - ], - [ - "▁u", - "ma" - ], - [ - "▁um", - "a" - ], - [ - "▁", - "uma" - ], - [ - "it", - "ar" - ], - [ - "ita", - "r" - ], - [ - "i", - "tar" - ], - [ - "▁O", - "k" - ], - [ - "▁", - "Ok" - ], - [ - "ü", - "ck" - ], - [ - "sq", - "rt" - ], - [ - "▁a", - "nt" - ], - [ - "▁an", - "t" - ], - [ - "▁", - "ant" - ], - [ - "▁wer", - "den" - ], - [ - "▁werd", - "en" - ], - [ - "å", - "r" - ], - [ - "})", - ";" - ], - [ - "}", - ");" - ], - [ - "▁P", - "aris" - ], - [ - "▁Par", - "is" - ], - [ - "▁Pa", - "ris" - ], - [ - "▁ex", - "ception" - ], - [ - "▁except", - "ion" - ], - [ - "▁", - "exception" - ], - [ - "▁de", - "term" - ], - [ - "▁det", - "erm" - ], - [ - "▁V", - "ol" - ], - [ - "▁Vo", - "l" - ], - [ - "▁", - "Vol" - ], - [ - "▁S", - "am" - ], - [ - "▁Sa", - "m" - ], - [ - "▁", - "Sam" - ], - [ - "▁e", - "ss" - ], - [ - "▁es", - "s" - ], - [ - "▁", - "ess" - ], - [ - "li", - "es" - ], - [ - "lie", - "s" - ], - [ - "l", - "ies" - ], - [ - "ion", - "i" - ], - [ - "io", - "ni" - ], - [ - "i", - "oni" - ], - [ - "od", - "ing" - ], - [ - "odi", - "ng" - ], - [ - "o", - "ding" - ], - [ - "id", - "get" - ], - [ - "idge", - "t" - ], - [ - "▁p", - "ri" - ], - [ - "▁pr", - "i" - ], - [ - "▁wh", - "ether" - ], - [ - "▁whe", - "ther" - ], - [ - "▁п", - "од" - ], - [ - "▁по", - "д" - ], - [ - "▁num", - "bers" - ], - [ - "▁number", - "s" - ], - [ - "▁", - "numbers" - ], - [ - "▁", - "~" - ], - [ - "ev", - "ent" - ], - [ - "even", - "t" - ], - [ - "e", - "vent" - ], - [ - "▁sh", - "ows" - ], - [ - "▁show", - "s" - ], - [ - "▁sho", - "ws" - ], - [ - "at", - "ures" - ], - [ - "atur", - "es" - ], - [ - "ature", - "s" - ], - [ - "atu", - "res" - ], - [ - "▁h", - "ouse" - ], - [ - "▁ho", - "use" - ], - [ - "▁hous", - "e" - ], - [ - "▁", - "house" - ], - [ - "▁f", - "ace" - ], - [ - "▁fa", - "ce" - ], - [ - "▁fac", - "e" - ], - [ - "▁", - "face" - ], - [ - "▁s", - "ię" - ], - [ - "▁si", - "ę" - ], - [ - "viron", - "ment" - ], - [ - "va", - "n" - ], - [ - "v", - "an" - ], - [ - "▁in", - "cluding" - ], - [ - "▁includ", - "ing" - ], - [ - "▁inclu", - "ding" - ], - [ - "▁", - "including" - ], - [ - "▁<", - "-" - ], - [ - "▁", - "<-" - ], - [ - "ti", - "mes" - ], - [ - "time", - "s" - ], - [ - "tim", - "es" - ], - [ - "t", - "imes" - ], - [ - "no", - "w" - ], - [ - "n", - "ow" - ], - [ - "▁p", - "ur" - ], - [ - "▁pu", - "r" - ], - [ - "▁", - "pur" - ], - [ - "if", - "ier" - ], - [ - "ifi", - "er" - ], - [ - "ifie", - "r" - ], - [ - "▁e", - "mp" - ], - [ - "▁em", - "p" - ], - [ - "▁", - "emp" - ], - [ - "▁c", - "la" - ], - [ - "▁cl", - "a" - ], - [ - "▁", - "cla" - ], - [ - "mo", - "n" - ], - [ - "m", - "on" - ], - [ - "▁D", - "as" - ], - [ - "▁Da", - "s" - ], - [ - "ad", - "y" - ], - [ - "a", - "dy" - ], - [ - "▁в", - "ід" - ], - [ - "▁ві", - "д" - ], - [ - "▁", - "від" - ], - [ - "▁", - "ц" - ], - [ - "ab", - "or" - ], - [ - "a", - "bor" - ], - [ - "OS", - "T" - ], - [ - "O", - "ST" - ], - [ - "▁b", - "and" - ], - [ - "▁ban", - "d" - ], - [ - "▁ba", - "nd" - ], - [ - "▁", - "band" - ], - [ - "▁", - "ú" - ], - [ - "▁ex", - "actly" - ], - [ - "▁exact", - "ly" - ], - [ - "ie", - "rt" - ], - [ - "ier", - "t" - ], - [ - "i", - "ert" - ], - [ - "av", - "ig" - ], - [ - "avi", - "g" - ], - [ - "▁re", - "du" - ], - [ - "▁r", - "edu" - ], - [ - "▁red", - "u" - ], - [ - "▁", - "redu" - ], - [ - "▁S", - "E" - ], - [ - "▁", - "SE" - ], - [ - "lish", - "ed" - ], - [ - "lis", - "hed" - ], - [ - "l", - "ished" - ], - [ - "B", - "u" - ], - [ - "Mess", - "age" - ], - [ - "M", - "essage" - ], - [ - "ce", - "ll" - ], - [ - "cel", - "l" - ], - [ - "c", - "ell" - ], - [ - "ful", - "ly" - ], - [ - "full", - "y" - ], - [ - "▁s", - "v" - ], - [ - "▁", - "sv" - ], - [ - "▁m", - "akes" - ], - [ - "▁ma", - "kes" - ], - [ - "▁make", - "s" - ], - [ - "▁mak", - "es" - ], - [ - "po", - "l" - ], - [ - "p", - "ol" - ], - [ - "▁re", - "quired" - ], - [ - "▁require", - "d" - ], - [ - "▁requ", - "ired" - ], - [ - "▁", - "required" - ], - [ - "fer", - "rer" - ], - [ - "▁p", - "ers" - ], - [ - "▁per", - "s" - ], - [ - "▁pe", - "rs" - ], - [ - "▁", - "pers" - ], - [ - "▁m", - "i" - ], - [ - "▁", - "mi" - ], - [ - "F", - "I" - ], - [ - "▁Pa", - "ul" - ], - [ - "▁", - "Paul" - ], - [ - "▁U", - "I" - ], - [ - "▁", - "UI" - ], - [ - "▁B", - "el" - ], - [ - "▁Be", - "l" - ], - [ - "▁", - "Bel" - ], - [ - "in", - "c" - ], - [ - "i", - "nc" - ], - [ - "▁cont", - "ains" - ], - [ - "▁contain", - "s" - ], - [ - "▁", - "contains" - ], - [ - "O", - "ut" - ], - [ - "as", - "ure" - ], - [ - "p", - "u" - ], - [ - "ot", - "o" - ], - [ - "o", - "to" - ], - [ - "▁g", - "ame" - ], - [ - "▁ga", - "me" - ], - [ - "▁gam", - "e" - ], - [ - "▁", - "game" - ], - [ - "z", - "n" - ], - [ - "▁W", - "hy" - ], - [ - "▁Wh", - "y" - ], - [ - "▁", - "Why" - ], - [ - "or", - "ith" - ], - [ - "ori", - "th" - ], - [ - "bi", - "g" - ], - [ - "b", - "ig" - ], - [ - "ки", - "й" - ], - [ - "sig", - "ma" - ], - [ - "s", - "igma" - ], - [ - "▁qu", - "ite" - ], - [ - "▁qui", - "te" - ], - [ - "▁quit", - "e" - ], - [ - "▁j", - "ed" - ], - [ - "▁je", - "d" - ], - [ - "▁", - "jed" - ], - [ - "re", - "c" - ], - [ - "r", - "ec" - ], - [ - "▁S", - "QL" - ], - [ - "▁", - "SQL" - ], - [ - "б", - "е" - ], - [ - "▁M", - "art" - ], - [ - "▁Mar", - "t" - ], - [ - "▁Ma", - "rt" - ], - [ - "▁", - "Mart" - ], - [ - "y", - "a" - ], - [ - "▁sch", - "ool" - ], - [ - "▁", - "school" - ], - [ - "▁sim", - "ply" - ], - [ - "▁simp", - "ly" - ], - [ - "▁simpl", - "y" - ], - [ - "▁v", - "or" - ], - [ - "▁vo", - "r" - ], - [ - "▁", - "vor" - ], - [ - "▁d", - "ouble" - ], - [ - "▁dou", - "ble" - ], - [ - "▁doub", - "le" - ], - [ - "▁", - "double" - ], - [ - "ра", - "в" - ], - [ - "▁S", - "tr" - ], - [ - "▁St", - "r" - ], - [ - "▁", - "Str" - ], - [ - "ie", - "m" - ], - [ - "i", - "em" - ], - [ - "▁al", - "bum" - ], - [ - "▁alb", - "um" - ], - [ - "▁", - "album" - ], - [ - "▁re", - "sol" - ], - [ - "▁res", - "ol" - ], - [ - "▁", - "resol" - ], - [ - "▁d", - "ei" - ], - [ - "▁de", - "i" - ], - [ - "▁W", - "ik" - ], - [ - "▁Wi", - "k" - ], - [ - "▁", - "Wik" - ], - [ - "▁a", - "w" - ], - [ - "▁", - "aw" - ], - [ - "um", - "b" - ], - [ - "u", - "mb" - ], - [ - "ol", - "s" - ], - [ - "o", - "ls" - ], - [ - "▁*", - "/" - ], - [ - "▁", - "*/" - ], - [ - "▁z", - "e" - ], - [ - "▁", - "ze" - ], - [ - "▁a", - "nim" - ], - [ - "▁an", - "im" - ], - [ - "▁ani", - "m" - ], - [ - "▁", - "anim" - ], - [ - "/", - ">" - ], - [ - "ri", - "s" - ], - [ - "r", - "is" - ], - [ - "re", - "sh" - ], - [ - "res", - "h" - ], - [ - "r", - "esh" - ], - [ - "N", - "o" - ], - [ - "ique", - "s" - ], - [ - "iqu", - "es" - ], - [ - "i", - "ques" - ], - [ - "cur", - "rent" - ], - [ - "curr", - "ent" - ], - [ - "c", - "urrent" - ], - [ - "▁per", - "iod" - ], - [ - "▁peri", - "od" - ], - [ - "▁", - "period" - ], - [ - "▁A", - "pril" - ], - [ - "▁Ap", - "ril" - ], - [ - "▁st", - "ore" - ], - [ - "▁stor", - "e" - ], - [ - "▁sto", - "re" - ], - [ - "▁", - "store" - ], - [ - "',", - "'" - ], - [ - "'", - ",'" - ], - [ - "▁S", - "et" - ], - [ - "▁Se", - "t" - ], - [ - "▁", - "Set" - ], - [ - "=", - "{" - ], - [ - "ach", - "ed" - ], - [ - "ac", - "hed" - ], - [ - "ache", - "d" - ], - [ - "a", - "ched" - ], - [ - "▁M", - "al" - ], - [ - "▁Ma", - "l" - ], - [ - "▁", - "Mal" - ], - [ - "▁P", - "al" - ], - [ - "▁Pa", - "l" - ], - [ - "▁", - "Pal" - ], - [ - "an", - "tes" - ], - [ - "ant", - "es" - ], - [ - "ante", - "s" - ], - [ - "ate", - "rial" - ], - [ - "ater", - "ial" - ], - [ - "▁work", - "ed" - ], - [ - "▁wor", - "ked" - ], - [ - "le", - "q" - ], - [ - "l", - "eq" - ], - [ - "ore", - "ferrer" - ], - [ - "▁h", - "appen" - ], - [ - "▁ha", - "ppen" - ], - [ - "▁happ", - "en" - ], - [ - "▁b", - "ox" - ], - [ - "▁bo", - "x" - ], - [ - "▁", - "box" - ], - [ - "ne", - "y" - ], - [ - "n", - "ey" - ], - [ - "▁c", - "lose" - ], - [ - "▁cl", - "ose" - ], - [ - "▁clos", - "e" - ], - [ - "▁clo", - "se" - ], - [ - "▁", - "close" - ], - [ - "▁g", - "ran" - ], - [ - "▁gr", - "an" - ], - [ - "▁gra", - "n" - ], - [ - "▁l", - "ie" - ], - [ - "▁li", - "e" - ], - [ - "▁", - "lie" - ], - [ - "▁i", - "r" - ], - [ - "▁", - "ir" - ], - [ - "▁ex", - "pected" - ], - [ - "▁exp", - "ected" - ], - [ - "▁expect", - "ed" - ], - [ - "▁", - "expected" - ], - [ - "▁д", - "ля" - ], - [ - "cl", - "ick" - ], - [ - "cli", - "ck" - ], - [ - "clic", - "k" - ], - [ - "c", - "lick" - ], - [ - "ș", - "i" - ], - [ - "▁p", - "arte" - ], - [ - "▁par", - "te" - ], - [ - "▁part", - "e" - ], - [ - "og", - "n" - ], - [ - "o", - "gn" - ], - [ - "▁F", - "orm" - ], - [ - "▁For", - "m" - ], - [ - "▁Fo", - "rm" - ], - [ - "▁", - "Form" - ], - [ - "▁m", - "emb" - ], - [ - "▁me", - "mb" - ], - [ - "▁mem", - "b" - ], - [ - "▁p", - "lan" - ], - [ - "▁pl", - "an" - ], - [ - "▁pla", - "n" - ], - [ - "▁", - "plan" - ], - [ - "▁te", - "am" - ], - [ - "▁tea", - "m" - ], - [ - "▁", - "team" - ], - [ - "]", - "[" - ], - [ - "▁c", - "ommun" - ], - [ - "▁com", - "mun" - ], - [ - "▁comm", - "un" - ], - [ - "or", - "ry" - ], - [ - "orr", - "y" - ], - [ - "en", - "cy" - ], - [ - "enc", - "y" - ], - [ - "g", - "l" - ], - [ - "in", - "ary" - ], - [ - "ina", - "ry" - ], - [ - "inar", - "y" - ], - [ - "cd", - "ot" - ], - [ - "c", - "dot" - ], - [ - "^", - "\\" - ], - [ - "▁F", - "irst" - ], - [ - "▁Fir", - "st" - ], - [ - "▁", - "First" - ], - [ - "an", - "der" - ], - [ - "and", - "er" - ], - [ - "ande", - "r" - ], - [ - "a", - "nder" - ], - [ - "▁D", - "ec" - ], - [ - "▁De", - "c" - ], - [ - "▁", - "Dec" - ], - [ - "re", - "quest" - ], - [ - "req", - "uest" - ], - [ - "ст", - "ва" - ], - [ - "ств", - "а" - ], - [ - "с", - "тва" - ], - [ - "▁str", - "ucture" - ], - [ - "▁struct", - "ure" - ], - [ - "▁", - "structure" - ], - [ - "▁|", - "|" - ], - [ - "▁", - "||" - ], - [ - "▁C", - "omp" - ], - [ - "▁Com", - "p" - ], - [ - "▁Co", - "mp" - ], - [ - "▁", - "Comp" - ], - [ - "act", - "ory" - ], - [ - "actor", - "y" - ], - [ - "▁M", - "il" - ], - [ - "▁Mi", - "l" - ], - [ - "▁", - "Mil" - ], - [ - "▁S", - "ome" - ], - [ - "▁So", - "me" - ], - [ - "▁Som", - "e" - ], - [ - "▁", - "Some" - ], - [ - "St", - "ream" - ], - [ - "▁as", - "sum" - ], - [ - "▁ass", - "um" - ], - [ - "ue", - "n" - ], - [ - "u", - "en" - ], - [ - "▁w", - "ords" - ], - [ - "▁word", - "s" - ], - [ - "▁wor", - "ds" - ], - [ - "▁", - "words" - ], - [ - "▁Se", - "ptember" - ], - [ - "▁Sept", - "ember" - ], - [ - "▁К", - "о" - ], - [ - "▁", - "Ко" - ], - [ - "▁d", - "ays" - ], - [ - "▁da", - "ys" - ], - [ - "▁day", - "s" - ], - [ - "▁", - "days" - ], - [ - "or", - "ies" - ], - [ - "ori", - "es" - ], - [ - "orie", - "s" - ], - [ - "o", - "ries" - ], - [ - "ста", - "в" - ], - [ - "s", - "m" - ], - [ - "vi", - "n" - ], - [ - "v", - "in" - ], - [ - "part", - "ial" - ], - [ - "▁par", - "ent" - ], - [ - "▁pa", - "rent" - ], - [ - "▁pare", - "nt" - ], - [ - "▁", - "parent" - ], - [ - "o", - "j" - ], - [ - "ни", - "и" - ], - [ - "!", - "\"" - ], - [ - "ug", - "in" - ], - [ - "u", - "gin" - ], - [ - "▁W", - "indows" - ], - [ - "▁Wind", - "ows" - ], - [ - "▁Window", - "s" - ], - [ - "▁", - "Windows" - ], - [ - "E", - "d" - ], - [ - ":", - "}" - ], - [ - "▁", - "q" - ], - [ - "▁b", - "en" - ], - [ - "▁be", - "n" - ], - [ - "▁", - "ben" - ], - [ - "ia", - "na" - ], - [ - "ian", - "a" - ], - [ - "i", - "ana" - ], - [ - "▁l", - "abel" - ], - [ - "▁la", - "bel" - ], - [ - "▁lab", - "el" - ], - [ - "▁", - "label" - ], - [ - "st", - "ate" - ], - [ - "sta", - "te" - ], - [ - "stat", - "e" - ], - [ - "ut", - "ed" - ], - [ - "ute", - "d" - ], - [ - "u", - "ted" - ], - [ - "▁(", - ")" - ], - [ - "▁", - "()" - ], - [ - "▁с", - "во" - ], - [ - "▁e", - "dit" - ], - [ - "▁ed", - "it" - ], - [ - "▁", - "edit" - ], - [ - "ur", - "ing" - ], - [ - "uri", - "ng" - ], - [ - "u", - "ring" - ], - [ - "▁N", - "S" - ], - [ - "▁", - "NS" - ], - [ - "▁J", - "ahr" - ], - [ - "▁Jah", - "r" - ], - [ - "▁Ja", - "hr" - ], - [ - "▁prov", - "ide" - ], - [ - "H", - "e" - ], - [ - "▁Y", - "es" - ], - [ - "▁Ye", - "s" - ], - [ - "▁", - "Yes" - ], - [ - "an", - "el" - ], - [ - "ane", - "l" - ], - [ - "a", - "nel" - ], - [ - "en", - "ame" - ], - [ - "ena", - "me" - ], - [ - "e", - "name" - ], - [ - "▁D", - "on" - ], - [ - "▁Do", - "n" - ], - [ - "▁", - "Don" - ], - [ - "is", - "k" - ], - [ - "i", - "sk" - ], - [ - "gr", - "a" - ], - [ - "g", - "ra" - ], - [ - "el", - "ij" - ], - [ - "eli", - "j" - ], - [ - "e", - "lij" - ], - [ - "▁r", - "oot" - ], - [ - "▁ro", - "ot" - ], - [ - "▁", - "root" - ], - [ - "*", - "/" - ], - [ - "▁F", - "re" - ], - [ - "▁Fr", - "e" - ], - [ - "▁", - "Fre" - ], - [ - "▁M", - "or" - ], - [ - "▁Mo", - "r" - ], - [ - "▁", - "Mor" - ], - [ - "us", - "ed" - ], - [ - "use", - "d" - ], - [ - "u", - "sed" - ], - [ - "ran", - "ge" - ], - [ - "r", - "ange" - ], - [ - "▁t", - "amb" - ], - [ - "▁ta", - "mb" - ], - [ - "▁tam", - "b" - ], - [ - "▁mod", - "ule" - ], - [ - "▁", - "module" - ], - [ - "▁d", - "irectory" - ], - [ - "▁direct", - "ory" - ], - [ - "▁director", - "y" - ], - [ - "▁", - "directory" - ], - [ - "ound", - "s" - ], - [ - "oun", - "ds" - ], - [ - "Act", - "ivity" - ], - [ - "Activ", - "ity" - ], - [ - "▁m", - "u" - ], - [ - "▁", - "mu" - ], - [ - "in", - "fo" - ], - [ - "inf", - "o" - ], - [ - "▁f", - "ree" - ], - [ - "▁fr", - "ee" - ], - [ - "▁fre", - "e" - ], - [ - "▁", - "free" - ], - [ - "or", - "ge" - ], - [ - "org", - "e" - ], - [ - "ta", - "b" - ], - [ - "t", - "ab" - ], - [ - ")", - "=" - ], - [ - "la", - "ng" - ], - [ - "lan", - "g" - ], - [ - "l", - "ang" - ], - [ - "▁о", - "с" - ], - [ - "▁", - "ос" - ], - [ - "▁F", - "ROM" - ], - [ - "▁FR", - "OM" - ], - [ - "▁", - "FROM" - ], - [ - "▁en", - "ter" - ], - [ - "▁ent", - "er" - ], - [ - "▁", - "enter" - ], - [ - "▁bec", - "ame" - ], - [ - "id", - "ae" - ], - [ - "ida", - "e" - ], - [ - "х", - "и" - ], - [ - "▁St", - "ates" - ], - [ - "▁State", - "s" - ], - [ - "▁Stat", - "es" - ], - [ - "▁Sta", - "tes" - ], - [ - "ver", - "se" - ], - [ - "vers", - "e" - ], - [ - "▁ex", - "pl" - ], - [ - "▁exp", - "l" - ], - [ - "▁", - "expl" - ], - [ - "yn", - "t" - ], - [ - "y", - "nt" - ], - [ - "U", - "N" - ], - [ - "e", - "e" - ], - [ - "en", - "dent" - ], - [ - "end", - "ent" - ], - [ - "enden", - "t" - ], - [ - "ende", - "nt" - ], - [ - "▁m", - "aking" - ], - [ - "▁ma", - "king" - ], - [ - "▁mak", - "ing" - ], - [ - "▁", - "making" - ], - [ - "▁\"", - "$" - ], - [ - "un", - "i" - ], - [ - "u", - "ni" - ], - [ - "qu", - "ence" - ], - [ - "▁l", - "ui" - ], - [ - "▁lu", - "i" - ], - [ - "H", - "T" - ], - [ - "▁us", - "es" - ], - [ - "▁use", - "s" - ], - [ - "▁", - "uses" - ], - [ - "zi", - "e" - ], - [ - "z", - "ie" - ], - [ - "ni", - "a" - ], - [ - "n", - "ia" - ], - [ - "Cont", - "ent" - ], - [ - "▁C", - "ount" - ], - [ - "▁Co", - "unt" - ], - [ - "▁Coun", - "t" - ], - [ - "▁Cou", - "nt" - ], - [ - "▁", - "Count" - ], - [ - "▁stand", - "ard" - ], - [ - "▁", - "standard" - ], - [ - "EN", - "T" - ], - [ - "E", - "NT" - ], - [ - "▁ко", - "н" - ], - [ - "▁к", - "он" - ], - [ - "▁", - "кон" - ], - [ - "fo", - "rt" - ], - [ - "for", - "t" - ], - [ - "f", - "ort" - ], - [ - "ad", - "as" - ], - [ - "ada", - "s" - ], - [ - "a", - "das" - ], - [ - "з", - "у" - ], - [ - "S", - "ystem" - ], - [ - "▁S", - "w" - ], - [ - "▁", - "Sw" - ], - [ - "▁e", - "ver" - ], - [ - "▁ev", - "er" - ], - [ - "▁", - "ever" - ], - [ - "L", - "O" - ], - [ - "▁cor", - "respond" - ], - [ - "▁P", - "o" - ], - [ - "▁", - "Po" - ], - [ - "ar", - "gin" - ], - [ - "arg", - "in" - ], - [ - "к", - "т" - ], - [ - "і", - "й" - ], - [ - "▁re", - "main" - ], - [ - "▁rem", - "ain" - ], - [ - "ci", - "o" - ], - [ - "c", - "io" - ], - [ - "▁act", - "ual" - ], - [ - "▁actu", - "al" - ], - [ - "▁", - "actual" - ], - [ - "ст", - "у" - ], - [ - "с", - "ту" - ], - [ - "▁s", - "ind" - ], - [ - "▁si", - "nd" - ], - [ - "▁sin", - "d" - ], - [ - "▁P", - "e" - ], - [ - "▁", - "Pe" - ], - [ - "▁ch", - "anged" - ], - [ - "▁change", - "d" - ], - [ - "▁chang", - "ed" - ], - [ - "▁", - "changed" - ], - [ - "▁N", - "ote" - ], - [ - "▁No", - "te" - ], - [ - "▁Not", - "e" - ], - [ - "▁", - "Note" - ], - [ - "sk", - "ie" - ], - [ - "ski", - "e" - ], - [ - "s", - "kie" - ], - [ - "▁famil", - "y" - ], - [ - "▁fam", - "ily" - ], - [ - "▁", - "family" - ], - [ - "it", - "à" - ], - [ - "co", - "s" - ], - [ - "c", - "os" - ], - [ - "tx", - "t" - ], - [ - "t", - "xt" - ], - [ - "ke", - "r" - ], - [ - "k", - "er" - ], - [ - "ce", - "ed" - ], - [ - "c", - "eed" - ], - [ - "▁a", - "rr" - ], - [ - "▁ar", - "r" - ], - [ - "▁", - "arr" - ], - [ - "▁c", - "am" - ], - [ - "▁ca", - "m" - ], - [ - "▁", - "cam" - ], - [ - "iz", - "er" - ], - [ - "ize", - "r" - ], - [ - "i", - "zer" - ], - [ - "▁D", - "an" - ], - [ - "▁Da", - "n" - ], - [ - "▁", - "Dan" - ], - [ - "he", - "l" - ], - [ - "h", - "el" - ], - [ - "ic", - "ult" - ], - [ - "icul", - "t" - ], - [ - "H", - "P" - ], - [ - "il", - "er" - ], - [ - "ile", - "r" - ], - [ - "i", - "ler" - ], - [ - "▁S", - "al" - ], - [ - "▁Sa", - "l" - ], - [ - "▁", - "Sal" - ], - [ - "▁con", - "nection" - ], - [ - "▁conne", - "ction" - ], - [ - "▁connect", - "ion" - ], - [ - "▁conn", - "ection" - ], - [ - "▁", - "connection" - ], - [ - "us", - "ion" - ], - [ - "k", - "n" - ], - [ - "R", - "I" - ], - [ - "▁v", - "om" - ], - [ - "▁vo", - "m" - ], - [ - "List", - "ener" - ], - [ - "▁", - "ö" - ], - [ - "▁d", - "im" - ], - [ - "▁di", - "m" - ], - [ - "▁", - "dim" - ], - [ - "▁p", - "ress" - ], - [ - "▁pr", - "ess" - ], - [ - "▁pre", - "ss" - ], - [ - "▁pres", - "s" - ], - [ - "▁", - "press" - ], - [ - "▁e", - "sc" - ], - [ - "▁es", - "c" - ], - [ - "▁", - "esc" - ], - [ - "▁T", - "ry" - ], - [ - "▁Tr", - "y" - ], - [ - "▁", - "Try" - ], - [ - "at", - "alog" - ], - [ - "ata", - "log" - ], - [ - "atal", - "og" - ], - [ - "▁th", - "anks" - ], - [ - "▁than", - "ks" - ], - [ - "▁thank", - "s" - ], - [ - "D", - "O" - ], - [ - "▁w", - "ritten" - ], - [ - "▁writ", - "ten" - ], - [ - "▁wr", - "itten" - ], - [ - "▁", - "written" - ], - [ - "di", - "r" - ], - [ - "d", - "ir" - ], - [ - "re", - "w" - ], - [ - "r", - "ew" - ], - [ - "▁f", - "ire" - ], - [ - "▁fi", - "re" - ], - [ - "▁fir", - "e" - ], - [ - "▁", - "fire" - ], - [ - "▁N", - "ach" - ], - [ - "▁Na", - "ch" - ], - [ - "▁", - "á" - ], - [ - "en", - "c" - ], - [ - "e", - "nc" - ], - [ - "▁or", - "igin" - ], - [ - "▁orig", - "in" - ], - [ - "▁", - "origin" - ], - [ - "▁Nov", - "ember" - ], - [ - "▁}", - ";" - ], - [ - "▁", - "};" - ], - [ - "Co", - "unt" - ], - [ - "C", - "ount" - ], - [ - "▁З", - "а" - ], - [ - "▁", - "За" - ], - [ - "▁g", - "raph" - ], - [ - "▁gr", - "aph" - ], - [ - "▁gra", - "ph" - ], - [ - "▁", - "graph" - ], - [ - "▁m", - "is" - ], - [ - "▁mi", - "s" - ], - [ - "▁", - "mis" - ], - [ - "▁Ex", - "ternal" - ], - [ - "▁Ext", - "ernal" - ], - [ - "▁Extern", - "al" - ], - [ - "▁Externa", - "l" - ], - [ - "▁", - "External" - ], - [ - "▁o", - "ptions" - ], - [ - "▁option", - "s" - ], - [ - "▁opt", - "ions" - ], - [ - "▁", - "options" - ], - [ - "▁U", - "RL" - ], - [ - "▁", - "URL" - ], - [ - "▁p", - "hp" - ], - [ - "▁ph", - "p" - ], - [ - "▁", - "php" - ], - [ - "▁in", - "tegr" - ], - [ - "▁int", - "egr" - ], - [ - "▁inte", - "gr" - ], - [ - "▁", - "integr" - ], - [ - "Con", - "fig" - ], - [ - "Conf", - "ig" - ], - [ - "▁T", - "ext" - ], - [ - "▁Te", - "xt" - ], - [ - "▁Tex", - "t" - ], - [ - "▁", - "Text" - ], - [ - "in", - "ner" - ], - [ - "inn", - "er" - ], - [ - "▁c", - "rit" - ], - [ - "▁cr", - "it" - ], - [ - "▁cri", - "t" - ], - [ - "▁", - "crit" - ], - [ - ",", - "”" - ], - [ - "▁t", - "og" - ], - [ - "▁to", - "g" - ], - [ - "$", - "$" - ], - [ - "no", - "f" - ], - [ - "n", - "of" - ], - [ - "▁s", - "es" - ], - [ - "▁se", - "s" - ], - [ - "üh", - "r" - ], - [ - "ü", - "hr" - ], - [ - "▁S", - "ince" - ], - [ - "▁Sin", - "ce" - ], - [ - "▁", - "Since" - ], - [ - "De", - "s" - ], - [ - "D", - "es" - ], - [ - "ub", - "e" - ], - [ - "u", - "be" - ], - [ - "▁s", - "ection" - ], - [ - "▁se", - "ction" - ], - [ - "▁sec", - "tion" - ], - [ - "▁sect", - "ion" - ], - [ - "▁", - "section" - ], - [ - "▁g", - "i" - ], - [ - "▁", - "gi" - ], - [ - "fo", - "rd" - ], - [ - "for", - "d" - ], - [ - "f", - "ord" - ], - [ - "▁A", - "ss" - ], - [ - "▁As", - "s" - ], - [ - "▁", - "Ass" - ], - [ - "ain", - "er" - ], - [ - "ai", - "ner" - ], - [ - "aine", - "r" - ], - [ - "a", - "iner" - ], - [ - "tt", - "p" - ], - [ - "t", - "tp" - ], - [ - "▁be", - "hav" - ], - [ - "▁beh", - "av" - ], - [ - "port", - "s" - ], - [ - "por", - "ts" - ], - [ - "dr", - "aw" - ], - [ - "dra", - "w" - ], - [ - "d", - "raw" - ], - [ - "Th", - "is" - ], - [ - "T", - "his" - ], - [ - "ran", - "ch" - ], - [ - "r", - "anch" - ], - [ - "in", - "ding" - ], - [ - "ind", - "ing" - ], - [ - "indi", - "ng" - ], - [ - "▁e", - "stab" - ], - [ - "▁est", - "ab" - ], - [ - "▁es", - "tab" - ], - [ - "▁esta", - "b" - ], - [ - "▁ob", - "tain" - ], - [ - "▁obt", - "ain" - ], - [ - "ri", - "ch" - ], - [ - "ric", - "h" - ], - [ - "r", - "ich" - ], - [ - "li", - "cit" - ], - [ - "lic", - "it" - ], - [ - "е", - "в" - ], - [ - "▁qu", - "al" - ], - [ - "▁q", - "ual" - ], - [ - "▁", - "qual" - ], - [ - "▁z", - "a" - ], - [ - "▁", - "za" - ], - [ - "▁h", - "ar" - ], - [ - "▁ha", - "r" - ], - [ - "▁", - "har" - ], - [ - "▁f", - "ac" - ], - [ - "▁fa", - "c" - ], - [ - "▁", - "fac" - ], - [ - "aa", - "r" - ], - [ - "a", - "ar" - ], - [ - "je", - "t" - ], - [ - "j", - "et" - ], - [ - "ic", - "les" - ], - [ - "icle", - "s" - ], - [ - "i", - "cles" - ], - [ - "▁A", - "us" - ], - [ - "▁Au", - "s" - ], - [ - "▁", - "Aus" - ], - [ - "▁h", - "or" - ], - [ - "▁ho", - "r" - ], - [ - "▁", - "hor" - ], - [ - "▁re", - "mov" - ], - [ - "▁rem", - "ov" - ], - [ - "▁w", - "ie" - ], - [ - "▁", - "wie" - ], - [ - "Cl", - "ient" - ], - [ - "C", - "lient" - ], - [ - "▁n", - "atur" - ], - [ - "▁nat", - "ur" - ], - [ - "hi", - "p" - ], - [ - "h", - "ip" - ], - [ - "Su", - "b" - ], - [ - "S", - "ub" - ], - [ - "▁r", - "andom" - ], - [ - "▁ran", - "dom" - ], - [ - "▁rand", - "om" - ], - [ - "▁", - "random" - ], - [ - "D", - "F" - ], - [ - "▁a", - "rea" - ], - [ - "▁are", - "a" - ], - [ - "▁ar", - "ea" - ], - [ - "▁", - "area" - ], - [ - "ta", - "g" - ], - [ - "t", - "ag" - ], - [ - "P", - "r" - ], - [ - "▁I", - "tal" - ], - [ - "▁It", - "al" - ], - [ - "▁", - "Ital" - ], - [ - "▁r", - "oku" - ], - [ - "▁ro", - "ku" - ], - [ - "▁rok", - "u" - ], - [ - "no", - "follow" - ], - [ - "nof", - "ollow" - ], - [ - "*", - "}" - ], - [ - "▁o", - "thers" - ], - [ - "▁other", - "s" - ], - [ - "▁l", - "imit" - ], - [ - "▁li", - "mit" - ], - [ - "▁lim", - "it" - ], - [ - "▁", - "limit" - ], - [ - "▁s", - "il" - ], - [ - "▁si", - "l" - ], - [ - "▁", - "sil" - ], - [ - "▁s", - "av" - ], - [ - "▁sa", - "v" - ], - [ - "▁o", - "ften" - ], - [ - "▁of", - "ten" - ], - [ - "▁oft", - "en" - ], - [ - "▁re", - "nder" - ], - [ - "▁r", - "ender" - ], - [ - "▁ren", - "der" - ], - [ - "▁rend", - "er" - ], - [ - "▁rende", - "r" - ], - [ - "▁", - "render" - ], - [ - "D", - "B" - ], - [ - "▁M", - "c" - ], - [ - "▁", - "Mc" - ], - [ - "▁z", - "ijn" - ], - [ - "▁zij", - "n" - ], - [ - "же", - "н" - ], - [ - "ж", - "ен" - ], - [ - "▁t", - "ag" - ], - [ - "▁ta", - "g" - ], - [ - "▁", - "tag" - ], - [ - "min", - "g" - ], - [ - "mi", - "ng" - ], - [ - "m", - "ing" - ], - [ - "li", - "chen" - ], - [ - "lic", - "hen" - ], - [ - "lich", - "en" - ], - [ - "liche", - "n" - ], - [ - "l", - "ichen" - ], - [ - "pa", - "ck" - ], - [ - "p", - "ack" - ], - [ - "▁A", - "g" - ], - [ - "▁", - "Ag" - ], - [ - "▁s", - "ense" - ], - [ - "▁sens", - "e" - ], - [ - "▁sen", - "se" - ], - [ - "p", - "g" - ], - [ - "Met", - "hod" - ], - [ - "M", - "ethod" - ], - [ - "ag", - "ed" - ], - [ - "age", - "d" - ], - [ - "a", - "ged" - ], - [ - "á", - "g" - ], - [ - "ł", - "a" - ], - [ - "▁inter", - "est" - ], - [ - "▁inte", - "rest" - ], - [ - "▁as", - "soci" - ], - [ - "▁ass", - "oci" - ], - [ - "▁", - "associ" - ], - [ - "vol", - "ution" - ], - [ - "▁em", - "pty" - ], - [ - "▁emp", - "ty" - ], - [ - "▁", - "empty" - ], - [ - "ic", - "he" - ], - [ - "ich", - "e" - ], - [ - "i", - "che" - ], - [ - "▁g", - "ro" - ], - [ - "▁gr", - "o" - ], - [ - "▁", - "gro" - ], - [ - "▁t", - "ypes" - ], - [ - "▁type", - "s" - ], - [ - "▁typ", - "es" - ], - [ - "▁ty", - "pes" - ], - [ - "▁", - "types" - ], - [ - "▁S", - "ie" - ], - [ - "▁Si", - "e" - ], - [ - "In", - "ter" - ], - [ - "Int", - "er" - ], - [ - "▁n", - "oreferrer" - ], - [ - "▁", - "noreferrer" - ], - [ - "▁g", - "ives" - ], - [ - "▁giv", - "es" - ], - [ - "▁give", - "s" - ], - [ - "▁gi", - "ves" - ], - [ - "ha", - "l" - ], - [ - "h", - "al" - ], - [ - "▁s", - "ave" - ], - [ - "▁sa", - "ve" - ], - [ - "▁sav", - "e" - ], - [ - "▁", - "save" - ], - [ - "▁f", - "ont" - ], - [ - "▁fo", - "nt" - ], - [ - "▁fon", - "t" - ], - [ - "▁", - "font" - ], - [ - "ru", - "ction" - ], - [ - "ruct", - "ion" - ], - [ - "S", - "cript" - ], - [ - "▁a", - "lla" - ], - [ - "▁al", - "la" - ], - [ - "▁all", - "a" - ], - [ - "▁", - "alla" - ], - [ - "▁s", - "ays" - ], - [ - "▁sa", - "ys" - ], - [ - "▁say", - "s" - ], - [ - "▁f", - "u" - ], - [ - "▁", - "fu" - ], - [ - "ap", - "e" - ], - [ - "a", - "pe" - ], - [ - "▁l", - "anguage" - ], - [ - "▁", - "language" - ], - [ - "ig", - "er" - ], - [ - "ige", - "r" - ], - [ - "i", - "ger" - ], - [ - "▁K", - "ing" - ], - [ - "▁Ki", - "ng" - ], - [ - "▁Kin", - "g" - ], - [ - "bo", - "r" - ], - [ - "b", - "or" - ], - [ - "u", - "v" - ], - [ - "▁s", - "hall" - ], - [ - "▁sh", - "all" - ], - [ - "▁E", - "urope" - ], - [ - "▁Europ", - "e" - ], - [ - "▁Euro", - "pe" - ], - [ - "▁Eur", - "ope" - ], - [ - "▁", - "Europe" - ], - [ - "▁ein", - "em" - ], - [ - "▁eine", - "m" - ], - [ - "▁w", - "ater" - ], - [ - "▁wa", - "ter" - ], - [ - "▁wat", - "er" - ], - [ - "▁", - "water" - ], - [ - "▁g", - "overn" - ], - [ - "▁go", - "vern" - ], - [ - "▁gover", - "n" - ], - [ - "an", - "z" - ], - [ - "at", - "ors" - ], - [ - "ator", - "s" - ], - [ - "ato", - "rs" - ], - [ - "▁mon", - "th" - ], - [ - "▁mo", - "nth" - ], - [ - "▁mont", - "h" - ], - [ - "▁", - "month" - ], - [ - "y", - "e" - ], - [ - "▁import", - "ant" - ], - [ - "▁", - "important" - ], - [ - "at", - "z" - ], - [ - "a", - "tz" - ], - [ - "fir", - "st" - ], - [ - "f", - "irst" - ], - [ - "▁Tr", - "ans" - ], - [ - "▁Tra", - "ns" - ], - [ - "▁", - "Trans" - ], - [ - "▁M", - "ad" - ], - [ - "▁Ma", - "d" - ], - [ - "▁", - "Mad" - ], - [ - "▁b", - "ra" - ], - [ - "▁br", - "a" - ], - [ - "▁", - "bra" - ], - [ - "ik", - "a" - ], - [ - "i", - "ka" - ], - [ - "▁S", - "aint" - ], - [ - "▁Sa", - "int" - ], - [ - "▁Sain", - "t" - ], - [ - "▁", - "Saint" - ], - [ - "or", - "ia" - ], - [ - "ori", - "a" - ], - [ - "o", - "ria" - ], - [ - "kr", - "e" - ], - [ - "k", - "re" - ], - [ - "em", - "ents" - ], - [ - "ement", - "s" - ], - [ - "emen", - "ts" - ], - [ - "e", - "ments" - ], - [ - "▁B", - "en" - ], - [ - "▁Be", - "n" - ], - [ - "▁", - "Ben" - ], - [ - "la", - "v" - ], - [ - "l", - "av" - ], - [ - "▁ad", - "min" - ], - [ - "▁adm", - "in" - ], - [ - "▁", - "admin" - ], - [ - "▁H", - "en" - ], - [ - "▁He", - "n" - ], - [ - "▁", - "Hen" - ], - [ - "ri", - "l" - ], - [ - "r", - "il" - ], - [ - "▁S", - "m" - ], - [ - "▁", - "Sm" - ], - [ - "ca", - "t" - ], - [ - "c", - "at" - ], - [ - "▁Re", - "fer" - ], - [ - "▁Ref", - "er" - ], - [ - "▁", - "Ш" - ], - [ - "▁p", - "ract" - ], - [ - "▁pr", - "act" - ], - [ - "▁pra", - "ct" - ], - [ - "▁prac", - "t" - ], - [ - "▁P", - "at" - ], - [ - "▁Pa", - "t" - ], - [ - "▁", - "Pat" - ], - [ - "▁G", - "re" - ], - [ - "▁Gr", - "e" - ], - [ - "▁", - "Gre" - ], - [ - "▁you", - "ng" - ], - [ - "▁yo", - "ung" - ], - [ - "▁In", - "ter" - ], - [ - "▁Int", - "er" - ], - [ - "▁", - "Inter" - ], - [ - "om", - "a" - ], - [ - "o", - "ma" - ], - [ - "te", - "ger" - ], - [ - "ib", - "ility" - ], - [ - "ibil", - "ity" - ], - [ - "▁param", - "eters" - ], - [ - "▁parameter", - "s" - ], - [ - "▁paramet", - "ers" - ], - [ - "▁", - "parameters" - ], - [ - "▁every", - "thing" - ], - [ - "da", - "t" - ], - [ - "d", - "at" - ], - [ - "ur", - "op" - ], - [ - "uro", - "p" - ], - [ - "u", - "rop" - ], - [ - "ole", - "an" - ], - [ - "o", - "lean" - ], - [ - "▁return", - "ed" - ], - [ - "▁C", - "lass" - ], - [ - "▁Cl", - "ass" - ], - [ - "▁Cla", - "ss" - ], - [ - "▁", - "Class" - ], - [ - "ac", - "y" - ], - [ - "a", - "cy" - ], - [ - "##", - "##" - ], - [ - "▁p", - "ř" - ], - [ - "▁f", - "older" - ], - [ - "▁fol", - "der" - ], - [ - "▁fo", - "lder" - ], - [ - "▁", - "folder" - ], - [ - "▁k", - "on" - ], - [ - "▁ko", - "n" - ], - [ - "▁", - "kon" - ], - [ - "▁gu", - "ess" - ], - [ - "g", - "t" - ], - [ - "je", - "n" - ], - [ - "j", - "en" - ], - [ - "an", - "nel" - ], - [ - "ann", - "el" - ], - [ - "anne", - "l" - ], - [ - "ic", - "on" - ], - [ - "ico", - "n" - ], - [ - "i", - "con" - ], - [ - "▁c", - "omb" - ], - [ - "▁com", - "b" - ], - [ - "▁co", - "mb" - ], - [ - "▁", - "comb" - ], - [ - "ri", - "ct" - ], - [ - "ric", - "t" - ], - [ - "r", - "ict" - ], - [ - "▁h", - "ij" - ], - [ - "▁hi", - "j" - ], - [ - "▁aut", - "hor" - ], - [ - "▁auth", - "or" - ], - [ - "▁", - "author" - ], - [ - "se", - "e" - ], - [ - "s", - "ee" - ], - [ - "he", - "re" - ], - [ - "her", - "e" - ], - [ - "h", - "ere" - ], - [ - "st", - "ra" - ], - [ - "str", - "a" - ], - [ - "s", - "tra" - ], - [ - "▁ent", - "ire" - ], - [ - "▁direct", - "ly" - ], - [ - "ra", - "ft" - ], - [ - "raf", - "t" - ], - [ - "r", - "aft" - ], - [ - "he", - "et" - ], - [ - "es", - "ter" - ], - [ - "est", - "er" - ], - [ - "este", - "r" - ], - [ - "e", - "ster" - ], - [ - "▁м", - "и" - ], - [ - "▁", - "ми" - ], - [ - "▁m", - "ass" - ], - [ - "▁ma", - "ss" - ], - [ - "▁mas", - "s" - ], - [ - "▁", - "mass" - ], - [ - "un", - "tu" - ], - [ - "unt", - "u" - ], - [ - "▁u", - "sers" - ], - [ - "▁us", - "ers" - ], - [ - "▁use", - "rs" - ], - [ - "▁user", - "s" - ], - [ - "▁", - "users" - ], - [ - "ch", - "i" - ], - [ - "c", - "hi" - ], - [ - "P", - "E" - ], - [ - "▁com", - "ponent" - ], - [ - "▁compon", - "ent" - ], - [ - "▁", - "component" - ], - [ - "Cl", - "ick" - ], - [ - "C", - "lick" - ], - [ - "At", - "t" - ], - [ - "A", - "tt" - ], - [ - "▁s", - "obre" - ], - [ - "▁so", - "bre" - ], - [ - "▁sob", - "re" - ], - [ - "an", - "ds" - ], - [ - "and", - "s" - ], - [ - "▁H", - "ol" - ], - [ - "▁Ho", - "l" - ], - [ - "▁", - "Hol" - ], - [ - "▁S", - "ant" - ], - [ - "▁San", - "t" - ], - [ - "▁Sa", - "nt" - ], - [ - "or", - "i" - ], - [ - "o", - "ri" - ], - [ - "▁s", - "ua" - ], - [ - "▁su", - "a" - ], - [ - "st", - "d" - ], - [ - "s", - "td" - ], - [ - "ent", - "ic" - ], - [ - "enti", - "c" - ], - [ - "C", - "C" - ], - [ - "▁fil", - "ter" - ], - [ - "▁", - "filter" - ], - [ - "S", - "QL" - ], - [ - "▁G", - "od" - ], - [ - "▁Go", - "d" - ], - [ - "A", - "t" - ], - [ - "▁м", - "у" - ], - [ - "▁", - "му" - ], - [ - "▁per", - "formance" - ], - [ - "▁perform", - "ance" - ], - [ - "del", - "ta" - ], - [ - "d", - "elta" - ], - [ - "an", - "de" - ], - [ - "and", - "e" - ], - [ - "a", - "nde" - ], - [ - "am", - "er" - ], - [ - "ame", - "r" - ], - [ - "a", - "mer" - ], - [ - "д", - "ы" - ], - [ - "▁c", - "ult" - ], - [ - "▁cu", - "lt" - ], - [ - "▁cul", - "t" - ], - [ - "▁N", - "or" - ], - [ - "▁No", - "r" - ], - [ - "bu", - "t" - ], - [ - "b", - "ut" - ], - [ - "▁l", - "ik" - ], - [ - "▁li", - "k" - ], - [ - "▁", - "lik" - ], - [ - "****", - "****" - ], - [ - "ст", - "вен" - ], - [ - "ств", - "ен" - ], - [ - "стве", - "н" - ], - [ - "▁com", - "me" - ], - [ - "▁comm", - "e" - ], - [ - "▁d", - "r" - ], - [ - "▁", - "dr" - ], - [ - "im", - "er" - ], - [ - "ime", - "r" - ], - [ - "i", - "mer" - ], - [ - "or", - "din" - ], - [ - "ord", - "in" - ], - [ - "▁cond", - "ition" - ], - [ - "▁", - "condition" - ], - [ - "es", - "te" - ], - [ - "est", - "e" - ], - [ - "e", - "ste" - ], - [ - "(", - "[" - ], - [ - "F", - "F" - ], - [ - "ть", - "ся" - ], - [ - "im", - "o" - ], - [ - "i", - "mo" - ], - [ - "ra", - "b" - ], - [ - "r", - "ab" - ], - [ - "і", - "ль" - ], - [ - "▁h", - "alf" - ], - [ - "▁hal", - "f" - ], - [ - "▁", - "half" - ], - [ - "ea", - "ch" - ], - [ - "e", - "ach" - ], - [ - "Di", - "s" - ], - [ - "D", - "is" - ], - [ - "▁r", - "ows" - ], - [ - "▁ro", - "ws" - ], - [ - "▁row", - "s" - ], - [ - "▁", - "rows" - ], - [ - "▁h", - "on" - ], - [ - "▁ho", - "n" - ], - [ - "▁", - "hon" - ], - [ - "▁t", - "ogether" - ], - [ - "▁tog", - "ether" - ], - [ - "▁", - "și" - ], - [ - "me", - "di" - ], - [ - "med", - "i" - ], - [ - "m", - "edi" - ], - [ - "ag", - "n" - ], - [ - "a", - "gn" - ], - [ - "al", - "led" - ], - [ - "all", - "ed" - ], - [ - "alle", - "d" - ], - [ - "▁v", - "ill" - ], - [ - "▁vi", - "ll" - ], - [ - "▁vil", - "l" - ], - [ - "IN", - "G" - ], - [ - "I", - "NG" - ], - [ - "id", - "den" - ], - [ - "idd", - "en" - ], - [ - "▁d", - "raw" - ], - [ - "▁dr", - "aw" - ], - [ - "▁dra", - "w" - ], - [ - "▁", - "draw" - ], - [ - "yn", - "tax" - ], - [ - "ynt", - "ax" - ], - [ - "▁att", - "empt" - ], - [ - "UR", - "L" - ], - [ - "U", - "RL" - ], - [ - "pos", - "e" - ], - [ - "po", - "se" - ], - [ - "p", - "ose" - ], - [ - "▁in", - "dic" - ], - [ - "▁ind", - "ic" - ], - [ - "ни", - "ка" - ], - [ - "ник", - "а" - ], - [ - "▁Eng", - "lish" - ], - [ - "▁", - "English" - ], - [ - "▁d", - "éc" - ], - [ - "▁dé", - "c" - ], - [ - "▁ne", - "eds" - ], - [ - "▁need", - "s" - ], - [ - "▁n", - "ormal" - ], - [ - "▁nor", - "mal" - ], - [ - "▁norm", - "al" - ], - [ - "▁", - "normal" - ], - [ - "ur", - "t" - ], - [ - "u", - "rt" - ], - [ - "▁н", - "о" - ], - [ - "▁", - "но" - ], - [ - "}}", - "\\" - ], - [ - "}", - "}\\" - ], - [ - "la", - "st" - ], - [ - "las", - "t" - ], - [ - "l", - "ast" - ], - [ - "▁F", - "in" - ], - [ - "▁", - "Fin" - ], - [ - "▁F", - "ebru" - ], - [ - "▁Fe", - "bru" - ], - [ - "▁Feb", - "ru" - ], - [ - "il", - "a" - ], - [ - "i", - "la" - ], - [ - "▁c", - "ountry" - ], - [ - "▁count", - "ry" - ], - [ - "▁coun", - "try" - ], - [ - "▁", - "country" - ], - [ - "▁field", - "s" - ], - [ - "▁fiel", - "ds" - ], - [ - "▁", - "fields" - ], - [ - "▁m", - "ax" - ], - [ - "▁ma", - "x" - ], - [ - "▁", - "max" - ], - [ - "lé", - "s" - ], - [ - "l", - "és" - ], - [ - "ow", - "ie" - ], - [ - "owi", - "e" - ], - [ - "o", - "wie" - ], - [ - "▁de", - "ux" - ], - [ - "▁bu", - "ilt" - ], - [ - "▁", - "built" - ], - [ - "▁M", - "ain" - ], - [ - "▁Ma", - "in" - ], - [ - "▁Mai", - "n" - ], - [ - "▁", - "Main" - ], - [ - "▁c", - "amp" - ], - [ - "▁cam", - "p" - ], - [ - "▁ca", - "mp" - ], - [ - "▁", - "camp" - ], - [ - "iv", - "o" - ], - [ - "i", - "vo" - ], - [ - "iv", - "a" - ], - [ - "i", - "va" - ], - [ - "ic", - "y" - ], - [ - "i", - "cy" - ], - [ - "zi", - "one" - ], - [ - "z", - "ione" - ], - [ - "No", - "de" - ], - [ - "N", - "ode" - ], - [ - "▁:", - ")" - ], - [ - "▁", - ":)" - ], - [ - "▁am", - "ong" - ], - [ - "▁O", - "b" - ], - [ - "▁", - "Ob" - ], - [ - "▁c", - "ases" - ], - [ - "▁case", - "s" - ], - [ - "▁cas", - "es" - ], - [ - "▁", - "cases" - ], - [ - "ha", - "ps" - ], - [ - "h", - "aps" - ], - [ - "se", - "rs" - ], - [ - "ser", - "s" - ], - [ - "s", - "ers" - ], - [ - "ar", - "ter" - ], - [ - "art", - "er" - ], - [ - "arte", - "r" - ], - [ - "śc", - "i" - ], - [ - "ś", - "ci" - ], - [ - "▁it", - "er" - ], - [ - "▁i", - "ter" - ], - [ - "▁", - "iter" - ], - [ - "▁n", - "amed" - ], - [ - "▁name", - "d" - ], - [ - "▁na", - "med" - ], - [ - "▁nam", - "ed" - ], - [ - "▁", - "named" - ], - [ - "ex", - "ec" - ], - [ - "exe", - "c" - ], - [ - "▁se", - "ason" - ], - [ - "▁sea", - "son" - ], - [ - "▁", - "season" - ], - [ - "to", - "t" - ], - [ - "t", - "ot" - ], - [ - "=", - ">" - ], - [ - "gr", - "aph" - ], - [ - "gra", - "ph" - ], - [ - "g", - "raph" - ], - [ - "▁n", - "il" - ], - [ - "▁ni", - "l" - ], - [ - "▁", - "nil" - ], - [ - "ac", - "ional" - ], - [ - "acion", - "al" - ], - [ - "aci", - "onal" - ], - [ - "▁N", - "ULL" - ], - [ - "▁", - "NULL" - ], - [ - "▁spe", - "cial" - ], - [ - "▁spec", - "ial" - ], - [ - "▁", - "special" - ], - [ - "ст", - "е" - ], - [ - "с", - "те" - ], - [ - "cs", - "s" - ], - [ - "c", - "ss" - ], - [ - "▁\\", - "(" - ], - [ - "v", - "s" - ], - [ - "ae", - "l" - ], - [ - "a", - "el" - ], - [ - "▁c", - "ity" - ], - [ - "▁ci", - "ty" - ], - [ - "▁cit", - "y" - ], - [ - "▁", - "city" - ], - [ - "ov", - "a" - ], - [ - "o", - "va" - ], - [ - "▁art", - "icle" - ], - [ - "▁", - "article" - ], - [ - "▁S", - "outh" - ], - [ - "▁So", - "uth" - ], - [ - "▁Sou", - "th" - ], - [ - "Act", - "ion" - ], - [ - "Ac", - "tion" - ], - [ - "A", - "ction" - ], - [ - "ç", - "a" - ], - [ - "sp", - "ring" - ], - [ - "spr", - "ing" - ], - [ - "s", - "pring" - ], - [ - "it", - "ude" - ], - [ - "itu", - "de" - ], - [ - "itud", - "e" - ], - [ - "▁com", - "plex" - ], - [ - "▁comp", - "lex" - ], - [ - "▁comple", - "x" - ], - [ - "▁compl", - "ex" - ], - [ - "▁", - "complex" - ], - [ - "▁ч", - "то" - ], - [ - "bu", - "ild" - ], - [ - "g", - "amma" - ], - [ - "▁E", - "nt" - ], - [ - "▁En", - "t" - ], - [ - "▁", - "Ent" - ], - [ - "ie", - "rs" - ], - [ - "ier", - "s" - ], - [ - "i", - "ers" - ], - [ - "'", - "." - ], - [ - "ca", - "r" - ], - [ - "c", - "ar" - ], - [ - "ap", - "ache" - ], - [ - "apa", - "che" - ], - [ - "in", - "gen" - ], - [ - "ing", - "en" - ], - [ - "inge", - "n" - ], - [ - "In", - "put" - ], - [ - ":", - " " - ], - [ - "▁d", - "ynam" - ], - [ - "▁dy", - "nam" - ], - [ - "al", - "ls" - ], - [ - "all", - "s" - ], - [ - "sh", - "ow" - ], - [ - "s", - "how" - ], - [ - "|", - "\\" - ], - [ - "▁w", - "ird" - ], - [ - "▁wir", - "d" - ], - [ - "B", - "ar" - ], - [ - "al", - "th" - ], - [ - "alt", - "h" - ], - [ - "mod", - "el" - ], - [ - "mo", - "del" - ], - [ - "mode", - "l" - ], - [ - "m", - "odel" - ], - [ - "Tr", - "ans" - ], - [ - "Tra", - "ns" - ], - [ - "Ro", - "w" - ], - [ - "R", - "ow" - ], - [ - "ab", - "e" - ], - [ - "a", - "be" - ], - [ - "▁l", - "ib" - ], - [ - "▁li", - "b" - ], - [ - "▁", - "lib" - ], - [ - "nu", - "ll" - ], - [ - "n", - "ull" - ], - [ - "ra", - "gment" - ], - [ - "rag", - "ment" - ], - [ - "▁St", - "ate" - ], - [ - "▁Stat", - "e" - ], - [ - "▁Sta", - "te" - ], - [ - "▁", - "State" - ], - [ - "▁l", - "aw" - ], - [ - "▁la", - "w" - ], - [ - "▁", - "law" - ], - [ - "Fr", - "ame" - ], - [ - "F", - "rame" - ], - [ - "▁L", - "o" - ], - [ - "▁", - "Lo" - ], - [ - "ge", - "b" - ], - [ - "g", - "eb" - ], - [ - "}$", - "." - ], - [ - "}", - "$." - ], - [ - "▁ne", - "eded" - ], - [ - "▁need", - "ed" - ], - [ - "▁con", - "tr" - ], - [ - "▁cont", - "r" - ], - [ - "▁", - "contr" - ], - [ - "ar", - "ies" - ], - [ - "ari", - "es" - ], - [ - "arie", - "s" - ], - [ - "a", - "ries" - ], - [ - "▁s", - "creen" - ], - [ - "▁sc", - "reen" - ], - [ - "▁scr", - "een" - ], - [ - "▁", - "screen" - ], - [ - "y", - "r" - ], - [ - "m", - "m" - ], - [ - "▁sh", - "own" - ], - [ - "▁show", - "n" - ], - [ - "▁sho", - "wn" - ], - [ - "▁b", - "ad" - ], - [ - "▁ba", - "d" - ], - [ - "▁", - "bad" - ], - [ - "▁c", - "ast" - ], - [ - "▁cas", - "t" - ], - [ - "▁ca", - "st" - ], - [ - "▁", - "cast" - ], - [ - "▁T", - "est" - ], - [ - "▁Te", - "st" - ], - [ - "▁", - "Test" - ], - [ - "▁A", - "uf" - ], - [ - "▁Au", - "f" - ], - [ - "▁qu", - "ant" - ], - [ - "▁quan", - "t" - ], - [ - "▁", - "quant" - ], - [ - "ig", - "a" - ], - [ - "i", - "ga" - ], - [ - "▁re", - "n" - ], - [ - "▁r", - "en" - ], - [ - "▁", - "ren" - ], - [ - "▁M", - "ac" - ], - [ - "▁Ma", - "c" - ], - [ - "▁", - "Mac" - ], - [ - "▁trans", - "form" - ], - [ - "▁", - "transform" - ], - [ - "▁d", - "ifference" - ], - [ - "▁dif", - "ference" - ], - [ - "▁differ", - "ence" - ], - [ - "▁t", - "it" - ], - [ - "▁ti", - "t" - ], - [ - "▁", - "tit" - ], - [ - "T", - "E" - ], - [ - "▁st", - "ep" - ], - [ - "▁ste", - "p" - ], - [ - "▁", - "step" - ], - [ - "▁c", - "apt" - ], - [ - "▁cap", - "t" - ], - [ - "▁ca", - "pt" - ], - [ - "▁", - "capt" - ], - [ - "▁col", - "lection" - ], - [ - "▁coll", - "ection" - ], - [ - "▁collect", - "ion" - ], - [ - "▁colle", - "ction" - ], - [ - "▁", - "collection" - ], - [ - "iction", - "ary" - ], - [ - "▁T", - "om" - ], - [ - "▁To", - "m" - ], - [ - "▁", - "Tom" - ], - [ - "ri", - "er" - ], - [ - "rie", - "r" - ], - [ - "r", - "ier" - ], - [ - "▁m", - "ove" - ], - [ - "▁mov", - "e" - ], - [ - "▁mo", - "ve" - ], - [ - "▁", - "move" - ], - [ - "co", - "pe" - ], - [ - "cop", - "e" - ], - [ - "c", - "ope" - ], - [ - "or", - "ds" - ], - [ - "ord", - "s" - ], - [ - "▁fur", - "ther" - ], - [ - "▁column", - "s" - ], - [ - "▁", - "columns" - ], - [ - "▁L", - "in" - ], - [ - "▁Li", - "n" - ], - [ - "▁", - "Lin" - ], - [ - "▁f", - "ixed" - ], - [ - "▁fix", - "ed" - ], - [ - "▁", - "fixed" - ], - [ - "▁child", - "ren" - ], - [ - "▁", - "children" - ], - [ - "M", - "S" - ], - [ - "m", - "o" - ], - [ - "un", - "a" - ], - [ - "u", - "na" - ], - [ - "▁ind", - "ivid" - ], - [ - "tt", - "y" - ], - [ - "t", - "ty" - ], - [ - "as", - "te" - ], - [ - "ast", - "e" - ], - [ - "a", - "ste" - ], - [ - "sr", - "c" - ], - [ - "s", - "rc" - ], - [ - "mat", - "ch" - ], - [ - "m", - "atch" - ], - [ - "w", - "i" - ], - [ - "▁", - "х" - ], - [ - "▁д", - "и" - ], - [ - "▁", - "ди" - ], - [ - "▁o", - "rd" - ], - [ - "▁or", - "d" - ], - [ - "▁", - "ord" - ], - [ - "iv", - "ing" - ], - [ - "ivi", - "ng" - ], - [ - "i", - "ving" - ], - [ - "▁B", - "ro" - ], - [ - "▁Br", - "o" - ], - [ - "▁", - "Bro" - ], - [ - "▁al", - "most" - ], - [ - "▁P", - "res" - ], - [ - "▁Pr", - "es" - ], - [ - "▁Pre", - "s" - ], - [ - "▁", - "Pres" - ], - [ - "re", - "ci" - ], - [ - "rec", - "i" - ], - [ - "ar", - "ing" - ], - [ - "ari", - "ng" - ], - [ - "arin", - "g" - ], - [ - "a", - "ring" - ], - [ - "▁/", - "//" - ], - [ - "▁//", - "/" - ], - [ - "▁", - "///" - ], - [ - "ет", - "ся" - ], - [ - "е", - "тся" - ], - [ - "▁s", - "ig" - ], - [ - "▁si", - "g" - ], - [ - "▁", - "sig" - ], - [ - "lig", - "ht" - ], - [ - "l", - "ight" - ], - [ - "▁R", - "ed" - ], - [ - "▁Re", - "d" - ], - [ - "▁", - "Red" - ], - [ - "▁sugg", - "est" - ], - [ - "▁sug", - "gest" - ], - [ - "ol", - "f" - ], - [ - "▁é", - "té" - ], - [ - "▁ét", - "é" - ], - [ - "▁", - "été" - ], - [ - "is", - "ation" - ], - [ - "isa", - "tion" - ], - [ - "isat", - "ion" - ], - [ - "з", - "на" - ], - [ - "Ne", - "w" - ], - [ - "N", - "ew" - ], - [ - "ст", - "ан" - ], - [ - "ста", - "н" - ], - [ - "с", - "тан" - ], - [ - "L", - "A" - ], - [ - "un", - "icip" - ], - [ - "unic", - "ip" - ], - [ - "uni", - "cip" - ], - [ - "▁fig", - "ure" - ], - [ - "▁figur", - "e" - ], - [ - "▁", - "figure" - ], - [ - "m", - "t" - ], - [ - "ia", - "le" - ], - [ - "ial", - "e" - ], - [ - "i", - "ale" - ], - [ - "▁c", - "atch" - ], - [ - "▁cat", - "ch" - ], - [ - "▁", - "catch" - ], - [ - "de", - "fault" - ], - [ - "def", - "ault" - ], - [ - "▁t", - "ele" - ], - [ - "▁te", - "le" - ], - [ - "▁tel", - "e" - ], - [ - "▁", - "tele" - ], - [ - "▁m", - "atter" - ], - [ - "▁mat", - "ter" - ], - [ - "ca", - "st" - ], - [ - "cas", - "t" - ], - [ - "c", - "ast" - ], - [ - "▁R", - "ich" - ], - [ - "▁Ric", - "h" - ], - [ - "▁Ri", - "ch" - ], - [ - "▁", - "Rich" - ], - [ - "▁hand", - "le" - ], - [ - "▁", - "handle" - ], - [ - "val", - "u" - ], - [ - "va", - "lu" - ], - [ - "v", - "alu" - ], - [ - "$", - "-" - ], - [ - "о", - "б" - ], - [ - "▁j", - "son" - ], - [ - "▁js", - "on" - ], - [ - "▁", - "json" - ], - [ - "Cre", - "ate" - ], - [ - "C", - "reate" - ], - [ - "▁ex", - "am" - ], - [ - "ал", - "ь" - ], - [ - "а", - "ль" - ], - [ - "ю", - "т" - ], - [ - "or", - "ed" - ], - [ - "ore", - "d" - ], - [ - "o", - "red" - ], - [ - "id", - "os" - ], - [ - "ido", - "s" - ], - [ - "ap", - "pend" - ], - [ - "app", - "end" - ], - [ - "appen", - "d" - ], - [ - "appe", - "nd" - ], - [ - "▁Ar", - "ray" - ], - [ - "▁Arr", - "ay" - ], - [ - "▁", - "Array" - ], - [ - "к", - "с" - ], - [ - "}", - "[" - ], - [ - "ri", - "ve" - ], - [ - "riv", - "e" - ], - [ - "r", - "ive" - ], - [ - "▁c", - "lub" - ], - [ - "▁cl", - "ub" - ], - [ - "▁", - "club" - ], - [ - "ma", - "nn" - ], - [ - "man", - "n" - ], - [ - "m", - "ann" - ], - [ - "▁e", - "ste" - ], - [ - "▁est", - "e" - ], - [ - "▁es", - "te" - ], - [ - "▁", - "este" - ], - [ - "es", - "ta" - ], - [ - "est", - "a" - ], - [ - "e", - "sta" - ], - [ - "▁G", - "i" - ], - [ - "▁", - "Gi" - ], - [ - "▁J", - "ap" - ], - [ - "▁Ja", - "p" - ], - [ - "▁N", - "ame" - ], - [ - "▁Na", - "me" - ], - [ - "▁Nam", - "e" - ], - [ - "▁", - "Name" - ], - [ - "Col", - "umn" - ], - [ - "ou", - "ps" - ], - [ - "oup", - "s" - ], - [ - "o", - "ups" - ], - [ - "is", - "mo" - ], - [ - "ism", - "o" - ], - [ - "▁C", - "ity" - ], - [ - "▁Ci", - "ty" - ], - [ - "▁Cit", - "y" - ], - [ - "▁", - "City" - ], - [ - "▁class", - "es" - ], - [ - "▁classe", - "s" - ], - [ - "▁", - "classes" - ], - [ - "▁in", - "fl" - ], - [ - "▁inf", - "l" - ], - [ - "▁", - "infl" - ], - [ - "h", - "l" - ], - [ - "ро", - "м" - ], - [ - "р", - "ом" - ], - [ - "▁ad", - "ding" - ], - [ - "▁add", - "ing" - ], - [ - "▁", - "adding" - ], - [ - "▁f", - "ail" - ], - [ - "▁fa", - "il" - ], - [ - "▁", - "fail" - ], - [ - "x", - "x" - ], - [ - "õ", - "es" - ], - [ - "S", - "c" - ], - [ - "ut", - "il" - ], - [ - "uti", - "l" - ], - [ - "u", - "til" - ], - [ - "▁l", - "ocation" - ], - [ - "▁lo", - "cation" - ], - [ - "▁loc", - "ation" - ], - [ - "▁", - "location" - ], - [ - "le", - "ge" - ], - [ - "leg", - "e" - ], - [ - "l", - "ege" - ], - [ - "ag", - "o" - ], - [ - "a", - "go" - ], - [ - "▁pro", - "perties" - ], - [ - "▁proper", - "ties" - ], - [ - "▁", - "properties" - ], - [ - "ab", - "il" - ], - [ - "abi", - "l" - ], - [ - "a", - "bil" - ], - [ - "va", - "s" - ], - [ - "v", - "as" - ], - [ - "}$", - "," - ], - [ - "}", - "$," - ], - [ - "it", - "ted" - ], - [ - "itt", - "ed" - ], - [ - "itte", - "d" - ], - [ - "ó", - "d" - ], - [ - "▁D", - "em" - ], - [ - "▁De", - "m" - ], - [ - "▁as", - "ked" - ], - [ - "▁ask", - "ed" - ], - [ - "▁t", - "ab" - ], - [ - "▁ta", - "b" - ], - [ - "▁", - "tab" - ], - [ - "S", - "ource" - ], - [ - "▁error", - "s" - ], - [ - "▁err", - "ors" - ], - [ - "▁", - "errors" - ], - [ - "ograph", - "ie" - ], - [ - "▁ж", - "и" - ], - [ - "▁", - "жи" - ], - [ - "▁m", - "al" - ], - [ - "▁ma", - "l" - ], - [ - "▁", - "mal" - ], - [ - "st", - "ract" - ], - [ - "str", - "act" - ], - [ - "stra", - "ct" - ], - [ - "▁d", - "ro" - ], - [ - "▁dr", - "o" - ], - [ - "▁", - "dro" - ], - [ - "ra", - "k" - ], - [ - "r", - "ak" - ], - [ - "▁n", - "ote" - ], - [ - "▁not", - "e" - ], - [ - "▁no", - "te" - ], - [ - "▁", - "note" - ], - [ - "▁set", - "ting" - ], - [ - "▁sett", - "ing" - ], - [ - "▁", - "setting" - ], - [ - "▁f", - "em" - ], - [ - "▁fe", - "m" - ], - [ - "▁s", - "aw" - ], - [ - "▁sa", - "w" - ], - [ - "ia", - "r" - ], - [ - "i", - "ar" - ], - [ - "HE", - "R" - ], - [ - "H", - "ER" - ], - [ - "е", - "с" - ], - [ - "▁p", - "red" - ], - [ - "▁pr", - "ed" - ], - [ - "▁pre", - "d" - ], - [ - "▁", - "pred" - ], - [ - "▁O", - "ut" - ], - [ - "▁", - "Out" - ], - [ - "▁it", - "ems" - ], - [ - "▁item", - "s" - ], - [ - "▁", - "items" - ], - [ - "ла", - "н" - ], - [ - "л", - "ан" - ], - [ - "▁w", - "erd" - ], - [ - "▁we", - "rd" - ], - [ - "▁wer", - "d" - ], - [ - "ers", - "ion" - ], - [ - "li", - "a" - ], - [ - "l", - "ia" - ], - [ - "▁s", - "in" - ], - [ - "▁si", - "n" - ], - [ - "▁", - "sin" - ], - [ - "ich", - "te" - ], - [ - "icht", - "e" - ], - [ - "i", - "chte" - ], - [ - "▁fe", - "el" - ], - [ - "▁fee", - "l" - ], - [ - "▁п", - "ра" - ], - [ - "▁пр", - "а" - ], - [ - "▁", - "пра" - ], - [ - "▁o", - "der" - ], - [ - "▁od", - "er" - ], - [ - "▁", - "oder" - ], - [ - "U", - "E" - ], - [ - "oc", - "ument" - ], - [ - "▁m", - "ode" - ], - [ - "▁mod", - "e" - ], - [ - "▁mo", - "de" - ], - [ - "▁", - "mode" - ], - [ - "▁N", - "a" - ], - [ - "▁", - "Na" - ], - [ - "де", - "н" - ], - [ - "д", - "ен" - ], - [ - "me", - "s" - ], - [ - "m", - "es" - ], - [ - "frame", - "work" - ], - [ - "▁a", - "uto" - ], - [ - "▁au", - "to" - ], - [ - "▁aut", - "o" - ], - [ - "▁", - "auto" - ], - [ - "ны", - "м" - ], - [ - "н", - "ым" - ], - [ - "ub", - "y" - ], - [ - "u", - "by" - ], - [ - "▁tem", - "plate" - ], - [ - "▁temp", - "late" - ], - [ - "▁", - "template" - ], - [ - "▁m", - "ess" - ], - [ - "▁me", - "ss" - ], - [ - "▁mes", - "s" - ], - [ - "▁", - "mess" - ], - [ - "ie", - "der" - ], - [ - "ied", - "er" - ], - [ - "i", - "eder" - ], - [ - "▁rel", - "ated" - ], - [ - "▁rela", - "ted" - ], - [ - "▁relate", - "d" - ], - [ - "▁", - "related" - ], - [ - "ok", - "en" - ], - [ - "oke", - "n" - ], - [ - "o", - "ken" - ], - [ - "▁follow", - "s" - ], - [ - "se", - "arch" - ], - [ - "s", - "earch" - ], - [ - "am", - "i" - ], - [ - "a", - "mi" - ], - [ - "▁w", - "ait" - ], - [ - "▁wa", - "it" - ], - [ - "▁", - "wait" - ], - [ - "ig", - "r" - ], - [ - "i", - "gr" - ], - [ - "▁l", - "ow" - ], - [ - "▁lo", - "w" - ], - [ - "▁", - "low" - ], - [ - "ски", - "х" - ], - [ - "ск", - "их" - ], - [ - "с", - "ких" - ], - [ - "ска", - "я" - ], - [ - "с", - "кая" - ], - [ - "▁M", - "ark" - ], - [ - "▁Mar", - "k" - ], - [ - "▁", - "Mark" - ], - [ - "▁i", - "ll" - ], - [ - "▁il", - "l" - ], - [ - "▁", - "ill" - ], - [ - "am", - "ento" - ], - [ - "ament", - "o" - ], - [ - "amen", - "to" - ], - [ - "\\", - "<" - ], - [ - "▁d", - "f" - ], - [ - "▁", - "df" - ], - [ - "os", - "ition" - ], - [ - "osi", - "tion" - ], - [ - "▁В", - "и" - ], - [ - "is", - "f" - ], - [ - "i", - "sf" - ], - [ - "▁De", - "utsch" - ], - [ - "ah", - "l" - ], - [ - "a", - "hl" - ], - [ - "wa", - "r" - ], - [ - "w", - "ar" - ], - [ - "it", - "ect" - ], - [ - "ite", - "ct" - ], - [ - "▁s", - "al" - ], - [ - "▁sa", - "l" - ], - [ - "▁", - "sal" - ], - [ - "el", - "en" - ], - [ - "ele", - "n" - ], - [ - "e", - "len" - ], - [ - "By", - "Id" - ], - [ - "▁g", - "ru" - ], - [ - "▁gr", - "u" - ], - [ - "▁", - "gru" - ], - [ - "s", - "v" - ], - [ - "▁pass", - "ed" - ], - [ - "▁pas", - "sed" - ], - [ - "▁passe", - "d" - ], - [ - "▁a", - "ñ" - ], - [ - "▁", - "añ" - ], - [ - "Sc", - "h" - ], - [ - "S", - "ch" - ], - [ - "▁sol", - "ve" - ], - [ - "we", - "ise" - ], - [ - "weis", - "e" - ], - [ - "wei", - "se" - ], - [ - "at", - "os" - ], - [ - "ato", - "s" - ], - [ - "▁m", - "eg" - ], - [ - "▁me", - "g" - ], - [ - "▁m", - "ember" - ], - [ - "▁mem", - "ber" - ], - [ - "▁memb", - "er" - ], - [ - "▁", - "member" - ], - [ - "er", - "name" - ], - [ - "ern", - "ame" - ], - [ - "erna", - "me" - ], - [ - "▁con", - "nect" - ], - [ - "▁conne", - "ct" - ], - [ - "▁conn", - "ect" - ], - [ - "▁", - "connect" - ], - [ - "ip", - "s" - ], - [ - "i", - "ps" - ], - [ - "▁r", - "ound" - ], - [ - "▁ro", - "und" - ], - [ - "▁rou", - "nd" - ], - [ - "▁", - "round" - ], - [ - "▁", - "]" - ], - [ - "ne", - "s" - ], - [ - "n", - "es" - ], - [ - "▁d", - "ir" - ], - [ - "▁di", - "r" - ], - [ - "▁", - "dir" - ], - [ - "▁Lond", - "on" - ], - [ - "d", - "y" - ], - [ - "F", - "A" - ], - [ - "▁rece", - "ived" - ], - [ - "▁receive", - "d" - ], - [ - "re", - "et" - ], - [ - "ree", - "t" - ], - [ - "▁L", - "og" - ], - [ - "▁Lo", - "g" - ], - [ - "▁", - "Log" - ], - [ - "▁Sch", - "ool" - ], - [ - "an", - "go" - ], - [ - "ang", - "o" - ], - [ - "▁The", - "se" - ], - [ - "▁Th", - "ese" - ], - [ - "▁M", - "ont" - ], - [ - "▁Mon", - "t" - ], - [ - "▁Mo", - "nt" - ], - [ - "▁", - "Mont" - ], - [ - "▁e", - "ner" - ], - [ - "▁en", - "er" - ], - [ - "▁", - "ener" - ], - [ - "la", - "d" - ], - [ - "l", - "ad" - ], - [ - "▁def", - "ine" - ], - [ - "▁defin", - "e" - ], - [ - "▁", - "define" - ], - [ - "si", - "gn" - ], - [ - "sig", - "n" - ], - [ - "s", - "ign" - ], - [ - "▁c", - "le" - ], - [ - "▁cl", - "e" - ], - [ - "▁", - "cle" - ], - [ - "fig", - "ure" - ], - [ - "▁V", - "iew" - ], - [ - "▁Vi", - "ew" - ], - [ - "▁Vie", - "w" - ], - [ - "▁", - "View" - ], - [ - "text", - "bf" - ], - [ - "$", - "\\" - ], - [ - "з", - "ы" - ], - [ - "num", - "ber" - ], - [ - "n", - "umber" - ], - [ - "▁d", - "in" - ], - [ - "▁di", - "n" - ], - [ - "▁", - "din" - ], - [ - "el", - "ler" - ], - [ - "ell", - "er" - ], - [ - "elle", - "r" - ], - [ - "orith", - "m" - ], - [ - "ori", - "thm" - ], - [ - "fal", - "se" - ], - [ - "f", - "alse" - ], - [ - "fo", - "l" - ], - [ - "f", - "ol" - ], - [ - "ffic", - "ient" - ], - [ - "▁HT", - "ML" - ], - [ - "▁", - "HTML" - ], - [ - "li", - "che" - ], - [ - "lic", - "he" - ], - [ - "lich", - "e" - ], - [ - "l", - "iche" - ], - [ - "▁M", - "o" - ], - [ - "▁", - "Mo" - ], - [ - "▁int", - "rodu" - ], - [ - "▁intr", - "odu" - ], - [ - "▁intro", - "du" - ], - [ - "ex", - "p" - ], - [ - "e", - "xp" - ], - [ - "▁st", - "rong" - ], - [ - "▁str", - "ong" - ], - [ - "▁stro", - "ng" - ], - [ - "▁", - "strong" - ], - [ - "▁t", - "hus" - ], - [ - "▁th", - "us" - ], - [ - "/", - ")" - ], - [ - "▁e", - "le" - ], - [ - "▁el", - "e" - ], - [ - "▁", - "ele" - ], - [ - "▁та", - "к" - ], - [ - "▁", - "так" - ], - [ - "▁п", - "а" - ], - [ - "▁", - "па" - ], - [ - "▁d", - "ont" - ], - [ - "▁do", - "nt" - ], - [ - "▁don", - "t" - ], - [ - "▁c", - "ause" - ], - [ - "▁caus", - "e" - ], - [ - "▁ca", - "use" - ], - [ - "Num", - "ber" - ], - [ - "N", - "umber" - ], - [ - "▁im", - "ages" - ], - [ - "▁image", - "s" - ], - [ - "▁imag", - "es" - ], - [ - "▁", - "images" - ], - [ - "▁s", - "ample" - ], - [ - "▁sam", - "ple" - ], - [ - "▁", - "sample" - ], - [ - "▁s", - "ci" - ], - [ - "▁sc", - "i" - ], - [ - "▁", - "sci" - ], - [ - "li", - "ke" - ], - [ - "lik", - "e" - ], - [ - "l", - "ike" - ], - [ - "▁L", - "ou" - ], - [ - "▁Lo", - "u" - ], - [ - "▁", - "Lou" - ], - [ - "di", - "v" - ], - [ - "d", - "iv" - ], - [ - "an", - "c" - ], - [ - "a", - "nc" - ], - [ - "▁f", - "ront" - ], - [ - "▁fr", - "ont" - ], - [ - "▁fro", - "nt" - ], - [ - "▁", - "front" - ], - [ - "ne", - "n" - ], - [ - "n", - "en" - ], - [ - "▁miss", - "ing" - ], - [ - "▁mis", - "sing" - ], - [ - "▁", - "missing" - ], - [ - "ar", - "ia" - ], - [ - "ari", - "a" - ], - [ - "a", - "ria" - ], - [ - "pr", - "es" - ], - [ - "pre", - "s" - ], - [ - "p", - "res" - ], - [ - "▁п", - "ред" - ], - [ - "▁пре", - "д" - ], - [ - "D", - "I" - ], - [ - "fil", - "ter" - ], - [ - "▁M", - "it" - ], - [ - "▁Mi", - "t" - ], - [ - "U", - "R" - ], - [ - "▁o", - "pp" - ], - [ - "▁op", - "p" - ], - [ - "▁", - "opp" - ], - [ - "▁s", - "ql" - ], - [ - "▁sq", - "l" - ], - [ - "▁", - "sql" - ], - [ - "▁ро", - "ку" - ], - [ - "er", - "en" - ], - [ - "ere", - "n" - ], - [ - "e", - "ren" - ], - [ - "em", - "at" - ], - [ - "ema", - "t" - ], - [ - "e", - "mat" - ], - [ - "í", - "s" - ], - [ - "▁Je", - "an" - ], - [ - "▁", - "Jean" - ], - [ - "é", - "c" - ], - [ - "▁c", - "i" - ], - [ - "▁", - "ci" - ], - [ - "en", - "ne" - ], - [ - "enn", - "e" - ], - [ - "at", - "form" - ], - [ - "▁t", - "aken" - ], - [ - "▁tak", - "en" - ], - [ - "▁take", - "n" - ], - [ - "▁ta", - "ken" - ], - [ - "▁O", - "f" - ], - [ - "▁", - "Of" - ], - [ - "▁на", - "се" - ], - [ - "▁e", - "rr" - ], - [ - "▁er", - "r" - ], - [ - "▁", - "err" - ], - [ - "O", - "P" - ], - [ - "Fr", - "om" - ], - [ - "F", - "rom" - ], - [ - "De", - "fault" - ], - [ - "Def", - "ault" - ], - [ - "▁Gener", - "al" - ], - [ - "▁Gen", - "eral" - ], - [ - "▁Gene", - "ral" - ], - [ - "▁", - "General" - ], - [ - "wik", - "i" - ], - [ - "wi", - "ki" - ], - [ - "w", - "iki" - ], - [ - "▁g", - "rand" - ], - [ - "▁gr", - "and" - ], - [ - "▁gra", - "nd" - ], - [ - "▁gran", - "d" - ], - [ - "▁", - "grand" - ], - [ - "▁e", - "inen" - ], - [ - "▁ein", - "en" - ], - [ - "▁eine", - "n" - ], - [ - "Re", - "g" - ], - [ - "R", - "eg" - ], - [ - "Hand", - "ler" - ], - [ - "Handle", - "r" - ], - [ - "con", - "om" - ], - [ - "co", - "nom" - ], - [ - "cono", - "m" - ], - [ - "c", - "onom" - ], - [ - "an", - "ger" - ], - [ - "ang", - "er" - ], - [ - "ange", - "r" - ], - [ - "▁бы", - "л" - ], - [ - "▁L", - "os" - ], - [ - "▁Lo", - "s" - ], - [ - "▁", - "Los" - ], - [ - "▁ex", - "pression" - ], - [ - "▁exp", - "ression" - ], - [ - "▁express", - "ion" - ], - [ - "▁expr", - "ession" - ], - [ - "▁", - "expression" - ], - [ - "ш", - "а" - ], - [ - "ya", - "l" - ], - [ - "y", - "al" - ], - [ - "▁$", - "('" - ], - [ - "▁$(", - "'" - ], - [ - "▁sw", - "itch" - ], - [ - "▁", - "switch" - ], - [ - "▁v", - "ector" - ], - [ - "▁ve", - "ctor" - ], - [ - "▁vec", - "tor" - ], - [ - "▁", - "vector" - ], - [ - "▁T", - "hom" - ], - [ - "▁Th", - "om" - ], - [ - "▁v", - "irt" - ], - [ - "▁vi", - "rt" - ], - [ - "▁vir", - "t" - ], - [ - "▁", - "virt" - ], - [ - "le", - "ased" - ], - [ - "lease", - "d" - ], - [ - "lea", - "sed" - ], - [ - "▁c", - "over" - ], - [ - "▁co", - "ver" - ], - [ - "▁cov", - "er" - ], - [ - "▁", - "cover" - ], - [ - "▁re", - "sp" - ], - [ - "▁r", - "esp" - ], - [ - "▁res", - "p" - ], - [ - "▁", - "resp" - ], - [ - "ak", - "o" - ], - [ - "a", - "ko" - ], - [ - "ren", - "ch" - ], - [ - "ot", - "a" - ], - [ - "o", - "ta" - ], - [ - "C", - "ell" - ], - [ - "an", - "ged" - ], - [ - "ang", - "ed" - ], - [ - "ange", - "d" - ], - [ - "▁+", - "=" - ], - [ - "▁", - "+=" - ], - [ - "la", - "c" - ], - [ - "l", - "ac" - ], - [ - "sk", - "a" - ], - [ - "s", - "ka" - ], - [ - "ne", - "xt" - ], - [ - "nex", - "t" - ], - [ - "n", - "ext" - ], - [ - "▁Intern", - "ational" - ], - [ - "▁W", - "il" - ], - [ - "▁Wi", - "l" - ], - [ - "▁", - "Wil" - ], - [ - "▁o", - "nt" - ], - [ - "▁on", - "t" - ], - [ - "▁", - "ont" - ], - [ - "ib", - "r" - ], - [ - "i", - "br" - ], - [ - "us", - "tr" - ], - [ - "ust", - "r" - ], - [ - "u", - "str" - ], - [ - "▁b", - "lack" - ], - [ - "▁bl", - "ack" - ], - [ - "▁bla", - "ck" - ], - [ - "▁", - "black" - ], - [ - "▁select", - "ed" - ], - [ - "▁sel", - "ected" - ], - [ - "▁sele", - "cted" - ], - [ - "▁", - "selected" - ], - [ - "ch", - "er" - ], - [ - "che", - "r" - ], - [ - "c", - "her" - ], - [ - "▁l", - "iter" - ], - [ - "▁li", - "ter" - ], - [ - "▁lit", - "er" - ], - [ - "▁", - "liter" - ], - [ - "ro", - "ot" - ], - [ - "r", - "oot" - ], - [ - "л", - "ся" - ], - [ - "▁L", - "ife" - ], - [ - "▁Li", - "fe" - ], - [ - "▁", - "Life" - ], - [ - "▁in", - "sert" - ], - [ - "▁ins", - "ert" - ], - [ - "▁inser", - "t" - ], - [ - "▁inse", - "rt" - ], - [ - "▁", - "insert" - ], - [ - "▁mat", - "rix" - ], - [ - "▁", - "matrix" - ], - [ - "is", - "es" - ], - [ - "ise", - "s" - ], - [ - ")", - "]" - ], - [ - "▁p", - "el" - ], - [ - "▁pe", - "l" - ], - [ - "▁", - "pel" - ], - [ - "Over", - "ride" - ], - [ - "ry", - "pt" - ], - [ - "▁for", - "mer" - ], - [ - "▁form", - "er" - ], - [ - "▁forme", - "r" - ], - [ - "▁", - "former" - ], - [ - "▁Fil", - "m" - ], - [ - "▁N", - "orth" - ], - [ - "▁Nor", - "th" - ], - [ - "cl", - "ient" - ], - [ - "cli", - "ent" - ], - [ - "c", - "lient" - ], - [ - "▁n", - "ight" - ], - [ - "▁", - "night" - ], - [ - "хо", - "ди" - ], - [ - "ход", - "и" - ], - [ - "▁A", - "ustral" - ], - [ - "▁Aust", - "ral" - ], - [ - "▁", - "Austral" - ], - [ - "▁R", - "et" - ], - [ - "▁Re", - "t" - ], - [ - "▁", - "Ret" - ], - [ - "rh", - "o" - ], - [ - "r", - "ho" - ], - [ - "▁п", - "ер" - ], - [ - "▁пе", - "р" - ], - [ - "▁", - "пер" - ], - [ - "ip", - "edia" - ], - [ - "ipe", - "dia" - ], - [ - "▁ex", - "press" - ], - [ - "▁exp", - "ress" - ], - [ - "▁expr", - "ess" - ], - [ - "▁expres", - "s" - ], - [ - "▁", - "express" - ], - [ - "▁th", - "ird" - ], - [ - "▁", - "third" - ], - [ - "▁ma", - "jor" - ], - [ - "▁maj", - "or" - ], - [ - "▁", - "major" - ], - [ - "▁g", - "rad" - ], - [ - "▁gr", - "ad" - ], - [ - "▁gra", - "d" - ], - [ - "▁", - "grad" - ], - [ - "ow", - "e" - ], - [ - "o", - "we" - ], - [ - "▁bel", - "ieve" - ], - [ - "our", - "nal" - ], - [ - "ourn", - "al" - ], - [ - "▁st", - "atus" - ], - [ - "▁stat", - "us" - ], - [ - "▁", - "status" - ], - [ - "un", - "c" - ], - [ - "u", - "nc" - ], - [ - "▁d", - "ou" - ], - [ - "▁do", - "u" - ], - [ - "▁J", - "SON" - ], - [ - "▁JS", - "ON" - ], - [ - "▁", - "JSON" - ], - [ - "ui", - "s" - ], - [ - "u", - "is" - ], - [ - "▁pop", - "ulation" - ], - [ - "▁popula", - "tion" - ], - [ - "▁popul", - "ation" - ], - [ - "en", - "z" - ], - [ - "▁Will", - "iam" - ], - [ - "s", - "f" - ], - [ - "▁O", - "bject" - ], - [ - "▁Ob", - "ject" - ], - [ - "▁", - "Object" - ], - [ - "▁c", - "in" - ], - [ - "▁ci", - "n" - ], - [ - "▁", - "cin" - ], - [ - "▁D", - "i" - ], - [ - "▁", - "Di" - ], - [ - "cur", - "ity" - ], - [ - "c", - "urity" - ], - [ - "▁O", - "pen" - ], - [ - "▁Op", - "en" - ], - [ - "▁", - "Open" - ], - [ - "▁", - "ле" - ], - [ - "la", - "r" - ], - [ - "l", - "ar" - ], - [ - "ad", - "ding" - ], - [ - "add", - "ing" - ], - [ - "▁k", - "om" - ], - [ - "▁ko", - "m" - ], - [ - "▁", - "kom" - ], - [ - "}(", - "\\" - ], - [ - "}", - "(\\" - ], - [ - "▁k", - "il" - ], - [ - "▁ki", - "l" - ], - [ - "▁", - "kil" - ], - [ - "um", - "er" - ], - [ - "ume", - "r" - ], - [ - "u", - "mer" - ], - [ - "\"/", - ">" - ], - [ - "\"", - "/>" - ], - [ - "▁fe", - "ature" - ], - [ - "▁", - "feature" - ], - [ - "▁A", - "re" - ], - [ - "▁Ar", - "e" - ], - [ - "▁", - "Are" - ], - [ - "ck", - "s" - ], - [ - "c", - "ks" - ], - [ - "▁Intern", - "et" - ], - [ - "▁Inter", - "net" - ], - [ - "▁", - "Internet" - ], - [ - "▁i", - "h" - ], - [ - "▁", - "ih" - ], - [ - "▁start", - "ed" - ], - [ - "▁star", - "ted" - ], - [ - "▁ear", - "ly" - ], - [ - "▁be", - "gan" - ], - [ - "▁beg", - "an" - ], - [ - "T", - "H" - ], - [ - "p", - "ython" - ], - [ - "as", - "p" - ], - [ - "a", - "sp" - ], - [ - "▁F", - "r" - ], - [ - "▁", - "Fr" - ], - [ - "▁c", - "los" - ], - [ - "▁cl", - "os" - ], - [ - "▁clo", - "s" - ], - [ - "▁", - "clos" - ], - [ - "ist", - "ic" - ], - [ - "isti", - "c" - ], - [ - "▁mus", - "ic" - ], - [ - "▁", - "music" - ], - [ - "▁d", - "ig" - ], - [ - "▁di", - "g" - ], - [ - "▁", - "dig" - ], - [ - "▁it", - "al" - ], - [ - "▁i", - "tal" - ], - [ - "▁", - "ital" - ], - [ - "▁D", - "avid" - ], - [ - "▁Dav", - "id" - ], - [ - "▁Da", - "vid" - ], - [ - "▁", - "David" - ], - [ - "▁web", - "site" - ], - [ - "▁", - "website" - ], - [ - "▁cont", - "roller" - ], - [ - "▁control", - "ler" - ], - [ - "▁", - "controller" - ], - [ - "▁M", - "er" - ], - [ - "▁Me", - "r" - ], - [ - "▁", - "Mer" - ], - [ - "con", - "text" - ], - [ - "cont", - "ext" - ], - [ - "pro", - "duct" - ], - [ - "produ", - "ct" - ], - [ - "prod", - "uct" - ], - [ - "os", - "p" - ], - [ - "o", - "sp" - ], - [ - "▁j", - "un" - ], - [ - "▁ju", - "n" - ], - [ - "ro", - "wn" - ], - [ - "row", - "n" - ], - [ - "r", - "own" - ], - [ - "▁A", - "z" - ], - [ - "▁", - "Az" - ], - [ - "\":", - "\"" - ], - [ - "\"", - ":\"" - ], - [ - "▁a", - "an" - ], - [ - "▁aa", - "n" - ], - [ - "▁D", - "ate" - ], - [ - "▁Da", - "te" - ], - [ - "▁Dat", - "e" - ], - [ - "▁", - "Date" - ], - [ - "mu", - "lt" - ], - [ - "mul", - "t" - ], - [ - "m", - "ult" - ], - [ - "▁b", - "rowser" - ], - [ - "▁brow", - "ser" - ], - [ - "▁", - "browser" - ], - [ - "ре", - "д" - ], - [ - "wh", - "ich" - ], - [ - "R", - "A" - ], - [ - "qu", - "are" - ], - [ - "qua", - "re" - ], - [ - "▁R", - "uss" - ], - [ - "▁Ru", - "ss" - ], - [ - "▁Rus", - "s" - ], - [ - "▁", - "Russ" - ], - [ - "▁s", - "oon" - ], - [ - "▁so", - "on" - ], - [ - "▁P", - "re" - ], - [ - "▁Pr", - "e" - ], - [ - "▁", - "Pre" - ], - [ - "ta", - "u" - ], - [ - "t", - "au" - ], - [ - "▁we", - "ek" - ], - [ - "▁", - "week" - ], - [ - "▁б", - "а" - ], - [ - "▁", - "ба" - ], - [ - "▁o", - "ct" - ], - [ - "▁oc", - "t" - ], - [ - "▁", - "oct" - ], - [ - "▁t", - "own" - ], - [ - "▁to", - "wn" - ], - [ - "▁", - "town" - ], - [ - "ro", - "y" - ], - [ - "r", - "oy" - ], - [ - "▁e", - "ls" - ], - [ - "▁el", - "s" - ], - [ - "▁", - "els" - ], - [ - "bl", - "ic" - ], - [ - "b", - "lic" - ], - [ - "und", - "le" - ], - [ - "▁H", - "istor" - ], - [ - "▁His", - "tor" - ], - [ - "▁Hi", - "stor" - ], - [ - "▁Hist", - "or" - ], - [ - "▁f", - "oi" - ], - [ - "▁fo", - "i" - ], - [ - "▁mod", - "els" - ], - [ - "▁model", - "s" - ], - [ - "▁mode", - "ls" - ], - [ - "▁", - "models" - ], - [ - "з", - "о" - ], - [ - "on", - "ym" - ], - [ - "ony", - "m" - ], - [ - "o", - "nym" - ], - [ - "Par", - "am" - ], - [ - "Pa", - "ram" - ], - [ - "P", - "aram" - ], - [ - "▁M", - "et" - ], - [ - "▁Me", - "t" - ], - [ - "▁", - "Met" - ], - [ - "ge", - "ner" - ], - [ - "gen", - "er" - ], - [ - "g", - "ener" - ], - [ - "j", - "ą" - ], - [ - "▁e", - "spe" - ], - [ - "▁es", - "pe" - ], - [ - "▁esp", - "e" - ], - [ - "C", - "E" - ], - [ - "▁de", - "vice" - ], - [ - "▁dev", - "ice" - ], - [ - "▁devi", - "ce" - ], - [ - "▁", - "device" - ], - [ - "el", - "low" - ], - [ - "ell", - "ow" - ], - [ - "ello", - "w" - ], - [ - "▁de", - "bug" - ], - [ - "▁deb", - "ug" - ], - [ - "▁", - "debug" - ], - [ - "ér", - "ie" - ], - [ - "éri", - "e" - ], - [ - "é", - "rie" - ], - [ - "us", - "ing" - ], - [ - "u", - "sing" - ], - [ - "ан", - "г" - ], - [ - "а", - "нг" - ], - [ - "▁*", - ")" - ], - [ - "▁", - "*)" - ], - [ - "ud", - "i" - ], - [ - "u", - "di" - ], - [ - "▁M", - "iss" - ], - [ - "▁Mi", - "ss" - ], - [ - "▁Mis", - "s" - ], - [ - "▁", - "Miss" - ], - [ - "ко", - "м" - ], - [ - "к", - "ом" - ], - [ - "pos", - "ed" - ], - [ - "po", - "sed" - ], - [ - "pose", - "d" - ], - [ - "p", - "osed" - ], - [ - "▁z", - "we" - ], - [ - "▁zw", - "e" - ], - [ - "і", - "н" - ], - [ - "▁Ro", - "bert" - ], - [ - "▁Rob", - "ert" - ], - [ - "▁O", - "ct" - ], - [ - "▁", - "Oct" - ], - [ - "lo", - "p" - ], - [ - "l", - "op" - ], - [ - "ja", - "r" - ], - [ - "j", - "ar" - ], - [ - "▁a", - "ver" - ], - [ - "▁av", - "er" - ], - [ - "▁ave", - "r" - ], - [ - "▁", - "aver" - ], - [ - "▁ha", - "bit" - ], - [ - "▁hab", - "it" - ], - [ - "▁:", - ":" - ], - [ - "▁", - "::" - ], - [ - "än", - "g" - ], - [ - "ä", - "ng" - ], - [ - "St", - "art" - ], - [ - "Star", - "t" - ], - [ - "▁p", - "ow" - ], - [ - "▁po", - "w" - ], - [ - "▁", - "pow" - ], - [ - "▁s", - "rc" - ], - [ - "▁sr", - "c" - ], - [ - "▁", - "src" - ], - [ - "▁pat", - "tern" - ], - [ - "▁", - "pattern" - ], - [ - "▁", - "Э" - ], - [ - "▁b", - "i" - ], - [ - "▁", - "bi" - ], - [ - "ot", - "es" - ], - [ - "ote", - "s" - ], - [ - "o", - "tes" - ], - [ - "▁_", - "_" - ], - [ - "▁", - "__" - ], - [ - "▁s", - "ens" - ], - [ - "▁se", - "ns" - ], - [ - "▁sen", - "s" - ], - [ - "▁", - "sens" - ], - [ - "▁a", - "void" - ], - [ - "▁av", - "oid" - ], - [ - "▁avo", - "id" - ], - [ - "ex", - "ample" - ], - [ - "ut", - "t" - ], - [ - "u", - "tt" - ], - [ - "La", - "bel" - ], - [ - "Lab", - "el" - ], - [ - "L", - "abel" - ], - [ - "te", - "x" - ], - [ - "t", - "ex" - ], - [ - "bo", - "ot" - ], - [ - "b", - "oot" - ], - [ - "es", - "to" - ], - [ - "est", - "o" - ], - [ - "e", - "sto" - ], - [ - "▁M", - "arch" - ], - [ - "▁Mar", - "ch" - ], - [ - "▁Marc", - "h" - ], - [ - "▁e", - "asy" - ], - [ - "▁eas", - "y" - ], - [ - "ict", - "ure" - ], - [ - "Gr", - "oup" - ], - [ - "▁f", - "ather" - ], - [ - "▁fa", - "ther" - ], - [ - "▁fat", - "her" - ], - [ - "▁", - "father" - ], - [ - "▁up", - "dated" - ], - [ - "▁update", - "d" - ], - [ - "▁upd", - "ated" - ], - [ - "▁", - "updated" - ], - [ - "▁V", - "o" - ], - [ - "▁I", - "II" - ], - [ - "▁II", - "I" - ], - [ - "▁", - "III" - ], - [ - "om", - "ega" - ], - [ - "ome", - "ga" - ], - [ - "▁a", - "lle" - ], - [ - "▁al", - "le" - ], - [ - "▁all", - "e" - ], - [ - "▁", - "alle" - ], - [ - "Re", - "c" - ], - [ - "R", - "ec" - ], - [ - "y", - "g" - ], - [ - "з", - "е" - ], - [ - "▁D", - "im" - ], - [ - "▁Di", - "m" - ], - [ - "▁", - "Dim" - ], - [ - "ne", - "ct" - ], - [ - "n", - "ect" - ], - [ - "▁T", - "or" - ], - [ - "▁To", - "r" - ], - [ - "▁de", - "utsch" - ], - [ - "▁", - "deutsch" - ], - [ - "▁wh", - "ite" - ], - [ - "▁", - "white" - ], - [ - "▁n", - "ational" - ], - [ - "▁nation", - "al" - ], - [ - "▁nat", - "ional" - ], - [ - "pp", - "e" - ], - [ - "p", - "pe" - ], - [ - "▁a", - "ir" - ], - [ - "▁ai", - "r" - ], - [ - "▁", - "air" - ], - [ - "▁pass", - "word" - ], - [ - "▁", - "password" - ], - [ - "de", - "t" - ], - [ - "d", - "et" - ], - [ - "▁b", - "ig" - ], - [ - "▁bi", - "g" - ], - [ - "▁", - "big" - ], - [ - "▁U", - "se" - ], - [ - "▁Us", - "e" - ], - [ - "▁", - "Use" - ], - [ - "cal", - "l" - ], - [ - "ca", - "ll" - ], - [ - "c", - "all" - ], - [ - "▁ex", - "tra" - ], - [ - "▁ext", - "ra" - ], - [ - "▁extr", - "a" - ], - [ - "▁", - "extra" - ], - [ - "W", - "e" - ], - [ - "an", - "ia" - ], - [ - "ani", - "a" - ], - [ - "a", - "nia" - ], - [ - "▁h", - "old" - ], - [ - "▁ho", - "ld" - ], - [ - "▁hol", - "d" - ], - [ - "▁", - "hold" - ], - [ - "Cont", - "rol" - ], - [ - "▁C", - "O" - ], - [ - "▁", - "CO" - ], - [ - "▁м", - "і" - ], - [ - "▁", - "мі" - ], - [ - "it", - "i" - ], - [ - "i", - "ti" - ], - [ - "▁K", - "e" - ], - [ - "▁", - "Ke" - ], - [ - "en", - "u" - ], - [ - "e", - "nu" - ], - [ - "▁P", - "ark" - ], - [ - "▁Par", - "k" - ], - [ - "то", - "м" - ], - [ - "т", - "ом" - ], - [ - "▁a", - "uth" - ], - [ - "▁au", - "th" - ], - [ - "▁aut", - "h" - ], - [ - "▁", - "auth" - ], - [ - "▁c", - "enter" - ], - [ - "▁cent", - "er" - ], - [ - "▁", - "center" - ], - [ - "P", - "h" - ], - [ - "то", - "в" - ], - [ - "т", - "ов" - ], - [ - "id", - "ing" - ], - [ - "idi", - "ng" - ], - [ - "i", - "ding" - ], - [ - "▁a", - "cross" - ], - [ - "▁ac", - "ross" - ], - [ - "▁s", - "ong" - ], - [ - "▁so", - "ng" - ], - [ - "▁son", - "g" - ], - [ - "▁", - "song" - ], - [ - "▁ph", - "ys" - ], - [ - "▁", - "phys" - ], - [ - "▁n", - "umer" - ], - [ - "▁num", - "er" - ], - [ - "▁nu", - "mer" - ], - [ - "▁", - "numer" - ], - [ - "щ", - "а" - ], - [ - "▁A", - "lex" - ], - [ - "▁Al", - "ex" - ], - [ - "▁Ale", - "x" - ], - [ - "▁", - "Alex" - ], - [ - "▁problem", - "s" - ], - [ - "▁proble", - "ms" - ], - [ - "▁probl", - "ems" - ], - [ - "▁E", - "rror" - ], - [ - "▁Er", - "ror" - ], - [ - "▁Err", - "or" - ], - [ - "▁", - "Error" - ], - [ - "form", - "at" - ], - [ - "for", - "mat" - ], - [ - "▁A", - "cc" - ], - [ - "▁Ac", - "c" - ], - [ - "▁", - "Acc" - ], - [ - "▁s", - "ix" - ], - [ - "▁si", - "x" - ], - [ - "▁", - "six" - ], - [ - "▁d", - "b" - ], - [ - "▁", - "db" - ], - [ - "▁C", - "ast" - ], - [ - "▁Cas", - "t" - ], - [ - "▁Ca", - "st" - ], - [ - "▁", - "Cast" - ], - [ - "om", - "s" - ], - [ - "o", - "ms" - ], - [ - "pro", - "ject" - ], - [ - "proj", - "ect" - ], - [ - "▁v", - "ert" - ], - [ - "▁ver", - "t" - ], - [ - "▁ve", - "rt" - ], - [ - "▁", - "vert" - ], - [ - "cre", - "t" - ], - [ - "cr", - "et" - ], - [ - "c", - "ret" - ], - [ - "▁he", - "ader" - ], - [ - "▁head", - "er" - ], - [ - "▁", - "header" - ], - [ - "▁st", - "ream" - ], - [ - "▁stre", - "am" - ], - [ - "▁", - "stream" - ], - [ - "id", - "s" - ], - [ - "i", - "ds" - ], - [ - "▁t", - "or" - ], - [ - "▁to", - "r" - ], - [ - "▁", - "tor" - ], - [ - "▁se", - "pt" - ], - [ - "▁sep", - "t" - ], - [ - "▁est", - "im" - ], - [ - "▁es", - "tim" - ], - [ - "▁de", - "cl" - ], - [ - "▁dec", - "l" - ], - [ - "▁", - "decl" - ], - [ - "▁g", - "ave" - ], - [ - "▁ga", - "ve" - ], - [ - "▁p", - "layer" - ], - [ - "▁pl", - "ayer" - ], - [ - "▁play", - "er" - ], - [ - "▁pla", - "yer" - ], - [ - "▁", - "player" - ], - [ - "ys", - "is" - ], - [ - "▁д", - "ру" - ], - [ - "▁др", - "у" - ], - [ - "am", - "m" - ], - [ - "a", - "mm" - ], - [ - "щ", - "о" - ], - [ - "▁(", - "\"" - ], - [ - "▁", - "(\"" - ], - [ - "▁a", - "x" - ], - [ - "▁", - "ax" - ], - [ - "Pro", - "perty" - ], - [ - "us", - "r" - ], - [ - "u", - "sr" - ], - [ - "▁some", - "one" - ], - [ - "▁im", - "pro" - ], - [ - "▁imp", - "ro" - ], - [ - "▁impr", - "o" - ], - [ - "ad", - "en" - ], - [ - "ade", - "n" - ], - [ - "a", - "den" - ], - [ - "ro", - "te" - ], - [ - "rot", - "e" - ], - [ - "r", - "ote" - ], - [ - "▁М", - "и" - ], - [ - "i", - "h" - ], - [ - "++", - ")" - ], - [ - "+", - "+)" - ], - [ - "▁v", - "ideo" - ], - [ - "▁vide", - "o" - ], - [ - "▁", - "video" - ], - [ - "▁ex", - "ists" - ], - [ - "▁exist", - "s" - ], - [ - "▁", - "exists" - ], - [ - "к", - "ла" - ], - [ - "▁comp", - "lete" - ], - [ - "▁comple", - "te" - ], - [ - "▁complet", - "e" - ], - [ - "▁compl", - "ete" - ], - [ - "▁", - "complete" - ], - [ - "▁s", - "ession" - ], - [ - "▁sess", - "ion" - ], - [ - "▁", - "session" - ], - [ - "▁const", - "ant" - ], - [ - "▁", - "constant" - ], - [ - "ic", - "os" - ], - [ - "ico", - "s" - ], - [ - "i", - "cos" - ], - [ - "▁p", - "ack" - ], - [ - "▁pa", - "ck" - ], - [ - "▁pac", - "k" - ], - [ - "▁", - "pack" - ], - [ - "ro", - "me" - ], - [ - "rom", - "e" - ], - [ - "r", - "ome" - ], - [ - "eg", - "r" - ], - [ - "e", - "gr" - ], - [ - "App", - "lication" - ], - [ - "▁y", - "es" - ], - [ - "▁ye", - "s" - ], - [ - "▁", - "yes" - ], - [ - "▁e", - "lle" - ], - [ - "▁el", - "le" - ], - [ - "▁ell", - "e" - ], - [ - "▁", - "elle" - ], - [ - "▁e", - "mail" - ], - [ - "▁em", - "ail" - ], - [ - "▁", - "email" - ], - [ - "or", - "f" - ], - [ - "o", - "rf" - ], - [ - "ca", - "se" - ], - [ - "cas", - "e" - ], - [ - "c", - "ase" - ], - [ - "▁po", - "inter" - ], - [ - "▁point", - "er" - ], - [ - "▁", - "pointer" - ], - [ - "▁reg", - "ard" - ], - [ - "se", - "n" - ], - [ - "s", - "en" - ], - [ - "st", - "atus" - ], - [ - "stat", - "us" - ], - [ - "▁m", - "es" - ], - [ - "▁me", - "s" - ], - [ - "▁", - "mes" - ], - [ - "▁d", - "elle" - ], - [ - "▁de", - "lle" - ], - [ - "▁del", - "le" - ], - [ - "▁dell", - "e" - ], - [ - "ing", - "ton" - ], - [ - "ingt", - "on" - ], - [ - "▁B", - "as" - ], - [ - "▁Ba", - "s" - ], - [ - "▁", - "Bas" - ], - [ - ")", - "^" - ], - [ - "de", - "velop" - ], - [ - "▁for", - "ce" - ], - [ - "▁", - "force" - ], - [ - "▁char", - "acters" - ], - [ - "▁charact", - "ers" - ], - [ - "▁character", - "s" - ], - [ - "▁c", - "ross" - ], - [ - "▁cr", - "oss" - ], - [ - "▁cro", - "ss" - ], - [ - "▁", - "cross" - ], - [ - "▁de", - "ath" - ], - [ - "▁t", - "akes" - ], - [ - "▁tak", - "es" - ], - [ - "▁take", - "s" - ], - [ - "▁ta", - "kes" - ], - [ - "ér", - "i" - ], - [ - "é", - "ri" - ], - [ - "ig", - "ne" - ], - [ - "ign", - "e" - ], - [ - "че", - "н" - ], - [ - "ч", - "ен" - ], - [ - "U", - "P" - ], - [ - ".", - ":" - ], - [ - "Th", - "read" - ], - [ - "j", - "u" - ], - [ - "in", - "y" - ], - [ - "i", - "ny" - ], - [ - "▁det", - "ails" - ], - [ - "▁detail", - "s" - ], - [ - "▁", - "details" - ], - [ - "▁x", - "ml" - ], - [ - "▁", - "xml" - ], - [ - "ta", - "it" - ], - [ - "t", - "ait" - ], - [ - "out", - "put" - ], - [ - "mess", - "age" - ], - [ - "m", - "essage" - ], - [ - "'", - "'" - ], - [ - "▁Brit", - "ish" - ], - [ - "vi", - "lle" - ], - [ - "vil", - "le" - ], - [ - "v", - "ille" - ], - [ - "▁D", - "iv" - ], - [ - "▁Di", - "v" - ], - [ - "▁", - "Div" - ], - [ - "▁U", - "ser" - ], - [ - "▁Use", - "r" - ], - [ - "▁Us", - "er" - ], - [ - "▁", - "User" - ], - [ - "c", - "m" - ], - [ - "ч", - "но" - ], - [ - "col", - "umn" - ], - [ - "eq", - "ref" - ], - [ - "ó", - "r" - ], - [ - "on", - "om" - ], - [ - "ono", - "m" - ], - [ - "o", - "nom" - ], - [ - "▁P", - "ost" - ], - [ - "▁Po", - "st" - ], - [ - "▁Pos", - "t" - ], - [ - "▁", - "Post" - ], - [ - "el", - "len" - ], - [ - "ell", - "en" - ], - [ - "elle", - "n" - ], - [ - "A", - "b" - ], - [ - "ul", - "té" - ], - [ - "ult", - "é" - ], - [ - "▁per", - "fect" - ], - [ - "▁perf", - "ect" - ], - [ - "()", - "{" - ], - [ - "(", - "){" - ], - [ - "vis", - "ion" - ], - [ - "v", - "ision" - ], - [ - "act", - "ive" - ], - [ - "activ", - "e" - ], - [ - "li", - "er" - ], - [ - "lie", - "r" - ], - [ - "l", - "ier" - ], - [ - "ri", - "j" - ], - [ - "r", - "ij" - ], - [ - "s", - "d" - ], - [ - "▁k", - "ö" - ], - [ - "▁", - "kö" - ], - [ - "▁n", - "ie" - ], - [ - "▁ni", - "e" - ], - [ - "▁", - "nie" - ], - [ - "▁re", - "lig" - ], - [ - "▁rel", - "ig" - ], - [ - "▁reli", - "g" - ], - [ - "▁o", - "t" - ], - [ - "▁", - "ot" - ], - [ - "▁m", - "achine" - ], - [ - "▁mach", - "ine" - ], - [ - "▁", - "machine" - ], - [ - "▁h", - "eld" - ], - [ - "▁he", - "ld" - ], - [ - "▁hel", - "d" - ], - [ - ")$", - "." - ], - [ - ")", - "$." - ], - [ - "====", - "====" - ], - [ - "ck", - "er" - ], - [ - "cke", - "r" - ], - [ - "c", - "ker" - ], - [ - "в", - "ы" - ], - [ - "bo", - "rn" - ], - [ - "bor", - "n" - ], - [ - "b", - "orn" - ], - [ - "▁p", - "ast" - ], - [ - "▁pas", - "t" - ], - [ - "▁pa", - "st" - ], - [ - "ри", - "я" - ], - [ - "▁D", - "r" - ], - [ - "▁", - "Dr" - ], - [ - "▁reg", - "ular" - ], - [ - "▁regul", - "ar" - ], - [ - "▁", - "regular" - ], - [ - "▁prov", - "ided" - ], - [ - "▁provide", - "d" - ], - [ - "TE", - "R" - ], - [ - "T", - "ER" - ], - [ - "▁un", - "ivers" - ], - [ - "▁", - "univers" - ], - [ - "▁g", - "ets" - ], - [ - "▁get", - "s" - ], - [ - "▁ge", - "ts" - ], - [ - "▁", - "gets" - ], - [ - "▁n", - "u" - ], - [ - "▁", - "nu" - ], - [ - "▁/", - "*" - ], - [ - "▁", - "/*" - ], - [ - "ob", - "er" - ], - [ - "obe", - "r" - ], - [ - "o", - "ber" - ], - [ - "fi", - "n" - ], - [ - "f", - "in" - ], - [ - "▁n", - "ella" - ], - [ - "▁ne", - "lla" - ], - [ - "▁nel", - "la" - ], - [ - "▁nell", - "a" - ], - [ - "▁be", - "come" - ], - [ - "▁bec", - "ome" - ], - [ - "▁becom", - "e" - ], - [ - "▁`", - "`" - ], - [ - "▁", - "``" - ], - [ - "▁h", - "istory" - ], - [ - "▁histor", - "y" - ], - [ - "▁hi", - "story" - ], - [ - "▁hist", - "ory" - ], - [ - "▁", - "history" - ], - [ - "▁S", - "ol" - ], - [ - "▁So", - "l" - ], - [ - "▁", - "Sol" - ], - [ - "▁R", - "ad" - ], - [ - "▁Ra", - "d" - ], - [ - "▁", - "Rad" - ], - [ - "▁term", - "s" - ], - [ - "▁ter", - "ms" - ], - [ - "▁even", - "ts" - ], - [ - "▁event", - "s" - ], - [ - "▁ev", - "ents" - ], - [ - "▁", - "events" - ], - [ - "ly", - "mp" - ], - [ - "))", - ")" - ], - [ - ")", - "))" - ], - [ - "ро", - "ва" - ], - [ - "ров", - "а" - ], - [ - "р", - "ова" - ], - [ - "▁ab", - "sol" - ], - [ - "▁abs", - "ol" - ], - [ - "▁so", - "ft" - ], - [ - "▁", - "soft" - ], - [ - "lin", - "ks" - ], - [ - "link", - "s" - ], - [ - "l", - "inks" - ], - [ - "▁h", - "ope" - ], - [ - "▁ho", - "pe" - ], - [ - "▁hop", - "e" - ], - [ - "▁su", - "bject" - ], - [ - "▁sub", - "ject" - ], - [ - "▁", - "subject" - ], - [ - "\")", - "," - ], - [ - "\"", - ")," - ], - [ - "▁cre", - "ating" - ], - [ - "▁}", - "\r" - ], - [ - "▁", - "}\r" - ], - [ - "▁S", - "k" - ], - [ - "▁", - "Sk" - ], - [ - "▁f", - "low" - ], - [ - "▁fl", - "ow" - ], - [ - "▁flo", - "w" - ], - [ - "▁", - "flow" - ], - [ - "▁Р", - "а" - ], - [ - "▁as", - "sert" - ], - [ - "▁ass", - "ert" - ], - [ - "▁asse", - "rt" - ], - [ - "▁", - "assert" - ], - [ - "ze", - "t" - ], - [ - "z", - "et" - ], - [ - "▁F", - "rank" - ], - [ - "▁Fran", - "k" - ], - [ - "▁Fr", - "ank" - ], - [ - "s", - "a" - ], - [ - "▁dist", - "ribution" - ], - [ - "▁distribu", - "tion" - ], - [ - "▁distrib", - "ution" - ], - [ - "▁", - "distribution" - ], - [ - "c", - "u" - ], - [ - "ba", - "nd" - ], - [ - "ban", - "d" - ], - [ - "b", - "and" - ], - [ - "iz", - "z" - ], - [ - "i", - "zz" - ], - [ - "▁j", - "ob" - ], - [ - "▁jo", - "b" - ], - [ - "▁", - "job" - ], - [ - "in", - "er" - ], - [ - "ine", - "r" - ], - [ - "i", - "ner" - ], - [ - "st", - "ruct" - ], - [ - "str", - "uct" - ], - [ - "stru", - "ct" - ], - [ - "á", - "k" - ], - [ - "T", - "O" - ], - [ - "au", - "f" - ], - [ - "a", - "uf" - ], - [ - "▁ext", - "ends" - ], - [ - "▁extend", - "s" - ], - [ - "▁G", - "ra" - ], - [ - "▁Gr", - "a" - ], - [ - "dis", - "play" - ], - [ - "▁sign", - "ific" - ], - [ - "on", - "ey" - ], - [ - "one", - "y" - ], - [ - "o", - "ney" - ], - [ - "s", - "ource" - ], - [ - "m", - "icrosoft" - ], - [ - "in", - "der" - ], - [ - "ind", - "er" - ], - [ - "inde", - "r" - ], - [ - "i", - "nder" - ], - [ - "▁qu", - "ick" - ], - [ - "▁qui", - "ck" - ], - [ - "▁", - "quick" - ], - [ - "▁w", - "onder" - ], - [ - "▁won", - "der" - ], - [ - "▁wo", - "nder" - ], - [ - "Inst", - "ance" - ], - [ - "el", - "les" - ], - [ - "ell", - "es" - ], - [ - "elle", - "s" - ], - [ - "e", - "lles" - ], - [ - "è", - "me" - ], - [ - "▁comp", - "any" - ], - [ - "▁compan", - "y" - ], - [ - "▁", - "company" - ], - [ - "u", - "ß" - ], - [ - ".", - "}" - ], - [ - "▁separ", - "ate" - ], - [ - "U", - "M" - ], - [ - "HER", - "E" - ], - [ - "HE", - "RE" - ], - [ - "H", - "ERE" - ], - [ - "▁writ", - "ing" - ], - [ - "▁wr", - "iting" - ], - [ - "▁", - "writing" - ], - [ - "it", - "ution" - ], - [ - "itu", - "tion" - ], - [ - "itut", - "ion" - ], - [ - "▁G", - "esch" - ], - [ - "▁Ge", - "sch" - ], - [ - "▁Ges", - "ch" - ], - [ - "м", - "я" - ], - [ - "▁J", - "ames" - ], - [ - "▁Ja", - "mes" - ], - [ - "▁Jam", - "es" - ], - [ - "▁", - "James" - ], - [ - "▁D", - "E" - ], - [ - "▁", - "DE" - ], - [ - "▁S", - "pe" - ], - [ - "▁Sp", - "e" - ], - [ - "▁", - "Spe" - ], - [ - "pro", - "cess" - ], - [ - "proc", - "ess" - ], - [ - "St", - "r" - ], - [ - "S", - "tr" - ], - [ - "▁s", - "ym" - ], - [ - "▁sy", - "m" - ], - [ - "▁", - "sym" - ], - [ - "▁a", - "o" - ], - [ - "▁", - "ao" - ], - [ - "▁w", - "y" - ], - [ - "▁", - "wy" - ], - [ - "▁any", - "one" - ], - [ - "▁U", - "p" - ], - [ - "▁", - "Up" - ], - [ - "use", - "um" - ], - [ - "ar", - "on" - ], - [ - "aro", - "n" - ], - [ - "a", - "ron" - ], - [ - "▁def", - "inition" - ], - [ - "▁defin", - "ition" - ], - [ - "▁definit", - "ion" - ], - [ - "▁", - "definition" - ], - [ - "▁`", - "$" - ], - [ - "▁f", - "av" - ], - [ - "▁fa", - "v" - ], - [ - "rib", - "utes" - ], - [ - "ribute", - "s" - ], - [ - "ribu", - "tes" - ], - [ - "▁R", - "é" - ], - [ - "ograf", - "ia" - ], - [ - "ografi", - "a" - ], - [ - "el", - "ement" - ], - [ - "ele", - "ment" - ], - [ - "elem", - "ent" - ], - [ - "e", - "lement" - ], - [ - "ca", - "p" - ], - [ - "c", - "ap" - ], - [ - "pa", - "t" - ], - [ - "p", - "at" - ], - [ - "▁B", - "ra" - ], - [ - "▁Br", - "a" - ], - [ - "▁", - "Bra" - ], - [ - ")", - "(" - ], - [ - "▁acc", - "ording" - ], - [ - "▁accord", - "ing" - ], - [ - "г", - "е" - ], - [ - "▁p", - "ie" - ], - [ - "▁pi", - "e" - ], - [ - "▁", - "pie" - ], - [ - "el", - "i" - ], - [ - "e", - "li" - ], - [ - "}", - "\"" - ], - [ - "▁act", - "iv" - ], - [ - "▁", - "activ" - ], - [ - "▁s", - "top" - ], - [ - "▁st", - "op" - ], - [ - "▁sto", - "p" - ], - [ - "▁", - "stop" - ], - [ - "pat", - "ch" - ], - [ - "p", - "atch" - ], - [ - "т", - "і" - ], - [ - "▁J", - "ose" - ], - [ - "▁Jo", - "se" - ], - [ - "▁Jos", - "e" - ], - [ - "▁", - "Jose" - ], - [ - "En", - "d" - ], - [ - "E", - "nd" - ], - [ - "▁p", - "rze" - ], - [ - "▁pr", - "ze" - ], - [ - "▁prz", - "e" - ], - [ - "▁a", - "ge" - ], - [ - "▁ag", - "e" - ], - [ - "▁", - "age" - ], - [ - "it", - "ory" - ], - [ - "ito", - "ry" - ], - [ - "itor", - "y" - ], - [ - "▁P", - "HP" - ], - [ - "▁", - "PHP" - ], - [ - "ag", - "ement" - ], - [ - "age", - "ment" - ], - [ - "agem", - "ent" - ], - [ - "▁`", - "." - ], - [ - "▁", - "`." - ], - [ - "▁pre", - "tty" - ], - [ - "▁pret", - "ty" - ], - [ - "▁re", - "comm" - ], - [ - "▁rec", - "omm" - ], - [ - "▁recom", - "m" - ], - [ - "▁s", - "ud" - ], - [ - "▁su", - "d" - ], - [ - "▁re", - "qu" - ], - [ - "▁r", - "equ" - ], - [ - "▁req", - "u" - ], - [ - "▁об", - "ла" - ], - [ - "at", - "ives" - ], - [ - "ative", - "s" - ], - [ - "ativ", - "es" - ], - [ - "ati", - "ves" - ], - [ - "▁H", - "igh" - ], - [ - "▁Hi", - "gh" - ], - [ - "▁", - "High" - ], - [ - "á", - "z" - ], - [ - "ou", - "l" - ], - [ - "o", - "ul" - ], - [ - "re", - "st" - ], - [ - "res", - "t" - ], - [ - "r", - "est" - ], - [ - "▁T", - "er" - ], - [ - "▁Te", - "r" - ], - [ - "un", - "der" - ], - [ - "und", - "er" - ], - [ - "unde", - "r" - ], - [ - "u", - "nder" - ], - [ - "th", - "ern" - ], - [ - "ther", - "n" - ], - [ - "the", - "rn" - ], - [ - "cent", - "er" - ], - [ - "cen", - "ter" - ], - [ - "cente", - "r" - ], - [ - "c", - "enter" - ], - [ - "▁u", - "r" - ], - [ - "▁", - "ur" - ], - [ - "la", - "t" - ], - [ - "l", - "at" - ], - [ - "▁inter", - "face" - ], - [ - "▁", - "interface" - ], - [ - "▁и", - "н" - ], - [ - "▁", - "ин" - ], - [ - "▁wh", - "ose" - ], - [ - "▁who", - "se" - ], - [ - "ic", - "as" - ], - [ - "ica", - "s" - ], - [ - "i", - "cas" - ], - [ - "am", - "en" - ], - [ - "ame", - "n" - ], - [ - "a", - "men" - ], - [ - "Fil", - "ter" - ], - [ - "▁st", - "ation" - ], - [ - "▁stat", - "ion" - ], - [ - "▁sta", - "tion" - ], - [ - "▁stati", - "on" - ], - [ - "▁", - "station" - ], - [ - "Pa", - "ge" - ], - [ - "P", - "age" - ], - [ - "▁a", - "rm" - ], - [ - "▁ar", - "m" - ], - [ - "▁", - "arm" - ], - [ - "▁e", - "yes" - ], - [ - "▁eye", - "s" - ], - [ - "▁ра", - "й" - ], - [ - "▁s", - "eu" - ], - [ - "▁se", - "u" - ], - [ - "ol", - "i" - ], - [ - "o", - "li" - ], - [ - "wi", - "n" - ], - [ - "w", - "in" - ], - [ - "li", - "k" - ], - [ - "l", - "ik" - ], - [ - "ge", - "x" - ], - [ - "g", - "ex" - ], - [ - "ch", - "an" - ], - [ - "cha", - "n" - ], - [ - "c", - "han" - ], - [ - "id", - "ence" - ], - [ - "iden", - "ce" - ], - [ - "ar", - "gs" - ], - [ - "arg", - "s" - ], - [ - "ak", - "ing" - ], - [ - "aki", - "ng" - ], - [ - "a", - "king" - ], - [ - "▁Go", - "ogle" - ], - [ - "▁", - "Google" - ], - [ - "▁St", - "ud" - ], - [ - "▁Stu", - "d" - ], - [ - "▁h", - "o" - ], - [ - "▁", - "ho" - ], - [ - "то", - "ры" - ], - [ - "тор", - "ы" - ], - [ - "S", - "u" - ], - [ - "▁autom", - "at" - ], - [ - "▁auto", - "mat" - ], - [ - "êm", - "e" - ], - [ - "ê", - "me" - ], - [ - "▁c", - "y" - ], - [ - "▁", - "cy" - ], - [ - "lo", - "r" - ], - [ - "l", - "or" - ], - [ - "▁st", - "ack" - ], - [ - "▁sta", - "ck" - ], - [ - "▁", - "stack" - ], - [ - "▁SE", - "LECT" - ], - [ - "▁", - "SELECT" - ], - [ - "A", - "F" - ], - [ - "▁>", - ">" - ], - [ - "▁", - ">>" - ], - [ - "▁com", - "pet" - ], - [ - "▁comp", - "et" - ], - [ - "▁p", - "air" - ], - [ - "▁pa", - "ir" - ], - [ - "▁", - "pair" - ], - [ - "▁ing", - "lés" - ], - [ - "Res", - "ponse" - ], - [ - "▁F", - "ig" - ], - [ - "▁", - "Fig" - ], - [ - "gr", - "ad" - ], - [ - "gra", - "d" - ], - [ - "g", - "rad" - ], - [ - "▁document", - "ation" - ], - [ - "▁", - "documentation" - ], - [ - "▁c", - "ant" - ], - [ - "▁can", - "t" - ], - [ - "▁ca", - "nt" - ], - [ - "▁app", - "reci" - ], - [ - "å", - "n" - ], - [ - "▁le", - "arn" - ], - [ - "▁lear", - "n" - ], - [ - "▁", - "learn" - ], - [ - "▁in", - "dep" - ], - [ - "▁ind", - "ep" - ], - [ - "▁inde", - "p" - ], - [ - "▁p", - "al" - ], - [ - "▁pa", - "l" - ], - [ - "▁", - "pal" - ], - [ - "pack", - "age" - ], - [ - "p", - "ackage" - ], - [ - "ar", - "es" - ], - [ - "are", - "s" - ], - [ - "a", - "res" - ], - [ - "▁Ber", - "lin" - ], - [ - "▁Berl", - "in" - ], - [ - "б", - "ли" - ], - [ - "re", - "ich" - ], - [ - "rei", - "ch" - ], - [ - "ё", - "н" - ], - [ - "▁s", - "atisf" - ], - [ - "▁sat", - "isf" - ], - [ - "▁reg", - "ion" - ], - [ - "▁", - "region" - ], - [ - "▁fri", - "end" - ], - [ - "▁", - "friend" - ], - [ - "▁Ge", - "orge" - ], - [ - "▁Georg", - "e" - ], - [ - "▁В", - "о" - ], - [ - "▁", - "Во" - ], - [ - "▁\"", - "\"" - ], - [ - "▁", - "\"\"" - ], - [ - "▁des", - "de" - ], - [ - "Fact", - "ory" - ], - [ - "F", - "actory" - ], - [ - "▁Count", - "y" - ], - [ - "▁Coun", - "ty" - ], - [ - "ou", - "v" - ], - [ - "o", - "uv" - ], - [ - "▁", - "‘" - ], - [ - "▁inst", - "alled" - ], - [ - "▁install", - "ed" - ], - [ - "▁instal", - "led" - ], - [ - "▁", - "installed" - ], - [ - "▁w", - "anted" - ], - [ - "▁want", - "ed" - ], - [ - "▁P", - "ython" - ], - [ - "▁", - "Python" - ], - [ - "▁inter", - "pre" - ], - [ - "▁in", - "cluded" - ], - [ - "▁includ", - "ed" - ], - [ - "▁include", - "d" - ], - [ - "▁inclu", - "ded" - ], - [ - "▁(", - "(" - ], - [ - "▁", - "((" - ], - [ - "▁al", - "tern" - ], - [ - "▁alt", - "ern" - ], - [ - "▁alter", - "n" - ], - [ - "▁alte", - "rn" - ], - [ - "▁", - "altern" - ], - [ - "is", - "to" - ], - [ - "ist", - "o" - ], - [ - "i", - "sto" - ], - [ - "g", - "n" - ], - [ - "▁b", - "order" - ], - [ - "▁bor", - "der" - ], - [ - "▁bord", - "er" - ], - [ - "▁", - "border" - ], - [ - "pd", - "f" - ], - [ - "p", - "df" - ], - [ - "▁d", - "up" - ], - [ - "▁du", - "p" - ], - [ - "▁", - "dup" - ], - [ - "▁down", - "load" - ], - [ - "▁", - "download" - ], - [ - "ju", - "st" - ], - [ - "jus", - "t" - ], - [ - "j", - "ust" - ], - [ - "▁m", - "embers" - ], - [ - "▁mem", - "bers" - ], - [ - "▁memb", - "ers" - ], - [ - "▁member", - "s" - ], - [ - "▁", - "members" - ], - [ - "ch", - "ild" - ], - [ - "chi", - "ld" - ], - [ - "▁p", - "ay" - ], - [ - "▁pa", - "y" - ], - [ - "▁", - "pay" - ], - [ - "▁c", - "er" - ], - [ - "▁ce", - "r" - ], - [ - "▁", - "cer" - ], - [ - "▁lo", - "oked" - ], - [ - "▁look", - "ed" - ], - [ - "▁correct", - "ly" - ], - [ - "au", - "th" - ], - [ - "aut", - "h" - ], - [ - "a", - "uth" - ], - [ - "▁с", - "тан" - ], - [ - "▁ст", - "ан" - ], - [ - "▁ста", - "н" - ], - [ - "▁", - "стан" - ], - [ - "▁e", - "sp" - ], - [ - "▁es", - "p" - ], - [ - "▁", - "esp" - ], - [ - "▁d", - "esc" - ], - [ - "▁de", - "sc" - ], - [ - "▁des", - "c" - ], - [ - "▁", - "desc" - ], - [ - "eb", - "en" - ], - [ - "e", - "ben" - ], - [ - "▁qu", - "estions" - ], - [ - "▁question", - "s" - ], - [ - "▁quest", - "ions" - ], - [ - "▁questi", - "ons" - ], - [ - "▁", - "questions" - ], - [ - "ma", - "l" - ], - [ - "m", - "al" - ], - [ - "▁ab", - "gerufen" - ], - [ - "▁", - "abgerufen" - ], - [ - "▁B", - "and" - ], - [ - "▁Ba", - "nd" - ], - [ - "▁Ban", - "d" - ], - [ - "▁[", - "]" - ], - [ - "▁", - "[]" - ], - [ - "Bas", - "e" - ], - [ - "B", - "ase" - ], - [ - "▁r", - "is" - ], - [ - "▁ri", - "s" - ], - [ - "▁", - "ris" - ], - [ - "▁f", - "ort" - ], - [ - "▁for", - "t" - ], - [ - "▁fo", - "rt" - ], - [ - "▁", - "fort" - ], - [ - "▁I", - "d" - ], - [ - "▁", - "Id" - ], - [ - "▁var", - "ious" - ], - [ - "▁vari", - "ous" - ], - [ - "▁Le", - "ague" - ], - [ - "▁H", - "and" - ], - [ - "▁Ha", - "nd" - ], - [ - "▁Han", - "d" - ], - [ - "▁", - "Hand" - ], - [ - "▁T", - "ype" - ], - [ - "▁Ty", - "pe" - ], - [ - "▁Typ", - "e" - ], - [ - "▁", - "Type" - ], - [ - "ir", - "l" - ], - [ - "i", - "rl" - ], - [ - "▁F", - "e" - ], - [ - "▁", - "Fe" - ], - [ - "i", - "én" - ], - [ - "it", - "ter" - ], - [ - "itt", - "er" - ], - [ - "itte", - "r" - ], - [ - "▁f", - "ast" - ], - [ - "▁fa", - "st" - ], - [ - "▁fas", - "t" - ], - [ - "▁", - "fast" - ], - [ - "st", - "a" - ], - [ - "s", - "ta" - ], - [ - "▁ex", - "cept" - ], - [ - "▁", - "except" - ], - [ - "ic", - "z" - ], - [ - "i", - "cz" - ], - [ - "▁F", - "rench" - ], - [ - "▁en", - "vironment" - ], - [ - "▁environ", - "ment" - ], - [ - "▁", - "environment" - ], - [ - "▁con", - "se" - ], - [ - "▁cons", - "e" - ], - [ - "у", - "р" - ], - [ - "о", - "го" - ], - [ - "▁necess", - "ary" - ], - [ - "tar", - "get" - ], - [ - "t", - "arget" - ], - [ - "▁re", - "ading" - ], - [ - "▁read", - "ing" - ], - [ - "▁", - "reading" - ], - [ - "ho", - "me" - ], - [ - "hom", - "e" - ], - [ - "h", - "ome" - ], - [ - "ze", - "ich" - ], - [ - "▁e", - "qual" - ], - [ - "▁equ", - "al" - ], - [ - "▁eq", - "ual" - ], - [ - "▁", - "equal" - ], - [ - "▁pi", - "ù" - ], - [ - "▁p", - "rem" - ], - [ - "▁pr", - "em" - ], - [ - "▁pre", - "m" - ], - [ - "▁diff", - "icult" - ], - [ - "▁u", - "nit" - ], - [ - "▁un", - "it" - ], - [ - "▁", - "unit" - ], - [ - "▁re", - "place" - ], - [ - "▁rep", - "lace" - ], - [ - "▁repla", - "ce" - ], - [ - "▁", - "replace" - ], - [ - "▁he", - "art" - ], - [ - "▁hear", - "t" - ], - [ - "▁", - "heart" - ], - [ - "▁t", - "alk" - ], - [ - "▁tal", - "k" - ], - [ - "A", - "M" - ], - [ - "▁R", - "E" - ], - [ - "▁", - "RE" - ], - [ - "▁P", - "erson" - ], - [ - "▁Per", - "son" - ], - [ - "▁Pers", - "on" - ], - [ - "▁", - "Person" - ], - [ - "end", - "ency" - ], - [ - "enden", - "cy" - ], - [ - "▁i", - "mm" - ], - [ - "▁im", - "m" - ], - [ - "▁", - "imm" - ], - [ - "▁h", - "uman" - ], - [ - "▁hum", - "an" - ], - [ - "▁hu", - "man" - ], - [ - "▁", - "human" - ], - [ - "d", - "n" - ], - [ - "▁K", - "ir" - ], - [ - "▁Ki", - "r" - ], - [ - "▁A", - "ut" - ], - [ - "▁Au", - "t" - ], - [ - "▁", - "Aut" - ], - [ - "kn", - "own" - ], - [ - "know", - "n" - ], - [ - "k", - "nown" - ], - [ - "▁fr", - "equ" - ], - [ - "▁fre", - "qu" - ], - [ - "sys", - "tem" - ], - [ - "s", - "ystem" - ], - [ - "ла", - "в" - ], - [ - "▁S", - "z" - ], - [ - "▁G", - "al" - ], - [ - "▁Ga", - "l" - ], - [ - "но", - "е" - ], - [ - "sel", - "ves" - ], - [ - "right", - "arrow" - ], - [ - "r", - "ightarrow" - ], - [ - "▁С", - "а" - ], - [ - "▁", - "Са" - ], - [ - "=\"", - "@" - ], - [ - "▁build", - "ing" - ], - [ - "▁", - "building" - ], - [ - "im", - "port" - ], - [ - "imp", - "ort" - ], - [ - "▁f", - "am" - ], - [ - "▁fa", - "m" - ], - [ - "▁de", - "lete" - ], - [ - "▁del", - "ete" - ], - [ - "▁delet", - "e" - ], - [ - "▁", - "delete" - ], - [ - "air", - "e" - ], - [ - "ai", - "re" - ], - [ - "a", - "ire" - ], - [ - "ma", - "ry" - ], - [ - "mar", - "y" - ], - [ - "m", - "ary" - ], - [ - "▁f", - "und" - ], - [ - "▁fun", - "d" - ], - [ - "▁fu", - "nd" - ], - [ - "▁", - "fund" - ], - [ - "▁part", - "icip" - ], - [ - "▁partic", - "ip" - ], - [ - "▁parti", - "cip" - ], - [ - "▁partici", - "p" - ], - [ - "▁s", - "yn" - ], - [ - "▁sy", - "n" - ], - [ - "▁", - "syn" - ], - [ - "si", - "n" - ], - [ - "s", - "in" - ], - [ - "▁l", - "ower" - ], - [ - "▁lo", - "wer" - ], - [ - "▁low", - "er" - ], - [ - "▁", - "lower" - ], - [ - "▁z", - "ero" - ], - [ - "▁ze", - "ro" - ], - [ - "▁", - "zero" - ], - [ - "▁s", - "ec" - ], - [ - "▁se", - "c" - ], - [ - "▁", - "sec" - ], - [ - "▁f", - "ra" - ], - [ - "▁fr", - "a" - ], - [ - "▁", - "fra" - ], - [ - "Po", - "int" - ], - [ - "P", - "oint" - ], - [ - "▁fa", - "iled" - ], - [ - "▁fail", - "ed" - ], - [ - "▁", - "failed" - ], - [ - "ien", - "to" - ], - [ - "ient", - "o" - ], - [ - "i", - "ento" - ], - [ - "cu", - "p" - ], - [ - "c", - "up" - ], - [ - "▁s", - "low" - ], - [ - "▁sl", - "ow" - ], - [ - "▁slo", - "w" - ], - [ - "▁", - "slow" - ], - [ - "▁n", - "ation" - ], - [ - "▁na", - "tion" - ], - [ - "▁nat", - "ion" - ], - [ - "äh", - "r" - ], - [ - "ä", - "hr" - ], - [ - "▁in", - "fo" - ], - [ - "▁inf", - "o" - ], - [ - "▁", - "info" - ], - [ - "▁P", - "ublic" - ], - [ - "▁Pub", - "lic" - ], - [ - "▁Pu", - "blic" - ], - [ - "▁", - "Public" - ], - [ - "▁de", - "cla" - ], - [ - "▁dec", - "la" - ], - [ - "▁decl", - "a" - ], - [ - "▁Т", - "а" - ], - [ - "▁s", - "old" - ], - [ - "▁so", - "ld" - ], - [ - "▁sol", - "d" - ], - [ - "▁R", - "em" - ], - [ - "▁Re", - "m" - ], - [ - "▁", - "Rem" - ], - [ - "▁Ph", - "il" - ], - [ - "ст", - "ра" - ], - [ - "стр", - "а" - ], - [ - "с", - "тра" - ], - [ - "▁me", - "hr" - ], - [ - "▁W", - "ork" - ], - [ - "▁Wor", - "k" - ], - [ - "▁", - "Work" - ], - [ - "▁N", - "ord" - ], - [ - "▁No", - "rd" - ], - [ - "▁Nor", - "d" - ], - [ - "▁f", - "ait" - ], - [ - "▁fa", - "it" - ], - [ - "▁g", - "ew" - ], - [ - "▁ge", - "w" - ], - [ - "▁", - "gew" - ], - [ - "print", - "ln" - ], - [ - "ob", - "ile" - ], - [ - "obil", - "e" - ], - [ - "obi", - "le" - ], - [ - "▁K", - "on" - ], - [ - "▁Ko", - "n" - ], - [ - "▁ass", - "ume" - ], - [ - "▁assum", - "e" - ], - [ - "land", - "s" - ], - [ - "lan", - "ds" - ], - [ - "l", - "ands" - ], - [ - "▁a", - "mount" - ], - [ - "▁am", - "ount" - ], - [ - "▁", - "amount" - ], - [ - "▁P", - "ress" - ], - [ - "▁Pr", - "ess" - ], - [ - "▁Pres", - "s" - ], - [ - "▁Pre", - "ss" - ], - [ - "▁", - "Press" - ], - [ - "ý", - "ch" - ], - [ - "▁ma", - "xim" - ], - [ - "▁max", - "im" - ], - [ - "▁", - "maxim" - ], - [ - "▁Ch", - "ampion" - ], - [ - "▁Champ", - "ion" - ], - [ - "li", - "brary" - ], - [ - "l", - "ibrary" - ], - [ - "a", - "ñ" - ], - [ - "▁W", - "al" - ], - [ - "▁Wa", - "l" - ], - [ - "Com", - "m" - ], - [ - "Co", - "mm" - ], - [ - "C", - "omm" - ], - [ - "]", - "]" - ], - [ - "▁z", - "w" - ], - [ - "▁", - "zw" - ], - [ - "▁so", - "cial" - ], - [ - "▁soci", - "al" - ], - [ - "▁soc", - "ial" - ], - [ - "▁", - "social" - ], - [ - "L", - "I" - ], - [ - "▁Un", - "ter" - ], - [ - "vo", - "r" - ], - [ - "v", - "or" - ], - [ - "Del", - "ta" - ], - [ - "D", - "elta" - ], - [ - "em", - "ail" - ], - [ - "ema", - "il" - ], - [ - "e", - "mail" - ], - [ - "ra", - "int" - ], - [ - "rain", - "t" - ], - [ - "rai", - "nt" - ], - [ - "r", - "aint" - ], - [ - "on", - "i" - ], - [ - "o", - "ni" - ], - [ - "▁a", - "lt" - ], - [ - "▁al", - "t" - ], - [ - "▁", - "alt" - ], - [ - "▁n", - "é" - ], - [ - "▁", - "né" - ], - [ - "ци", - "я" - ], - [ - "ograph", - "y" - ], - [ - "▁mention", - "ed" - ], - [ - "▁ment", - "ioned" - ], - [ - "▁<", - "=" - ], - [ - "▁", - "<=" - ], - [ - "▁c", - "ette" - ], - [ - "▁ce", - "tte" - ], - [ - "▁cet", - "te" - ], - [ - "▁current", - "ly" - ], - [ - "▁curr", - "ently" - ], - [ - "va", - "re" - ], - [ - "var", - "e" - ], - [ - "v", - "are" - ], - [ - "iz", - "ing" - ], - [ - "izi", - "ng" - ], - [ - "izin", - "g" - ], - [ - "i", - "zing" - ], - [ - "▁D", - "ef" - ], - [ - "▁De", - "f" - ], - [ - "▁", - "Def" - ], - [ - "ic", - "ol" - ], - [ - "ico", - "l" - ], - [ - "i", - "col" - ], - [ - "ün", - "d" - ], - [ - "ü", - "nd" - ], - [ - "▁config", - "uration" - ], - [ - "▁configur", - "ation" - ], - [ - "▁", - "configuration" - ], - [ - "est", - "ig" - ], - [ - "esti", - "g" - ], - [ - "II", - "I" - ], - [ - "I", - "II" - ], - [ - "la", - "m" - ], - [ - "l", - "am" - ], - [ - "i", - "ère" - ], - [ - "▁E", - "ar" - ], - [ - "▁t", - "u" - ], - [ - "▁", - "tu" - ], - [ - "En", - "t" - ], - [ - "E", - "nt" - ], - [ - "▁U", - "sing" - ], - [ - "▁Us", - "ing" - ], - [ - "▁", - "Using" - ], - [ - "▁ко", - "м" - ], - [ - "▁к", - "ом" - ], - [ - "▁", - "ком" - ], - [ - "ci", - "e" - ], - [ - "c", - "ie" - ], - [ - "▁pro", - "of" - ], - [ - "▁", - "proof" - ], - [ - "▁in", - "vol" - ], - [ - "▁inv", - "ol" - ], - [ - "▁H", - "istory" - ], - [ - "▁Histor", - "y" - ], - [ - "▁Hi", - "story" - ], - [ - "▁Hist", - "ory" - ], - [ - "▁", - "History" - ], - [ - ">", - "<" - ], - [ - "▁A", - "ND" - ], - [ - "▁AN", - "D" - ], - [ - "▁", - "AND" - ], - [ - "av", - "y" - ], - [ - "a", - "vy" - ], - [ - "▁rel", - "ations" - ], - [ - "▁relation", - "s" - ], - [ - "$", - "{" - ], - [ - "▁com", - "es" - ], - [ - "▁co", - "mes" - ], - [ - "▁come", - "s" - ], - [ - "▁", - "comes" - ], - [ - "▁d", - "irection" - ], - [ - "▁direct", - "ion" - ], - [ - "▁dire", - "ction" - ], - [ - "▁dir", - "ection" - ], - [ - "▁", - "direction" - ], - [ - "▁J", - "une" - ], - [ - "▁Ju", - "ne" - ], - [ - "▁Jun", - "e" - ], - [ - "▁W", - "ay" - ], - [ - "▁Wa", - "y" - ], - [ - "Com", - "ponent" - ], - [ - "ec", - "h" - ], - [ - "e", - "ch" - ], - [ - "▁P", - "eter" - ], - [ - "▁Pe", - "ter" - ], - [ - "▁Pet", - "er" - ], - [ - "▁", - "Peter" - ], - [ - "s", - "g" - ], - [ - "▁s", - "tra" - ], - [ - "▁st", - "ra" - ], - [ - "▁str", - "a" - ], - [ - "▁", - "stra" - ], - [ - "uc", - "t" - ], - [ - "u", - "ct" - ], - [ - "▁im", - "plementation" - ], - [ - "▁implement", - "ation" - ], - [ - "▁", - "implementation" - ], - [ - "att", - "le" - ], - [ - "▁c", - "z" - ], - [ - "▁", - "cz" - ], - [ - "pl", - "ot" - ], - [ - "p", - "lot" - ], - [ - "▁play", - "ed" - ], - [ - "▁pla", - "yed" - ], - [ - "\">", - "<", - "/" - ], - [ - "\"", - ">", - "(" - ], - [ - "▁g", - "round" - ], - [ - "▁gr", - "ound" - ], - [ - "▁gro", - "und" - ], - [ - "▁", - "ground" - ], - [ - "un", - "n" - ], - [ - "u", - "nn" - ], - [ - "ro", - "d" - ], - [ - "r", - "od" - ], - [ - "sp", - "e" - ], - [ - "s", - "pe" - ], - [ - "urs", - "or" - ], - [ - "▁le", - "ave" - ], - [ - "er", - "k" - ], - [ - "▁t", - "al" - ], - [ - "▁ta", - "l" - ], - [ - "▁", - "tal" - ], - [ - "▁b", - "ottom" - ], - [ - "▁bot", - "tom" - ], - [ - "▁bott", - "om" - ], - [ - "▁", - "bottom" - ], - [ - "I", - "O" - ], - [ - "▁pop", - "ular" - ], - [ - "▁popula", - "r" - ], - [ - "▁popul", - "ar" - ], - [ - "ig", - "o" - ], - [ - "i", - "go" - ], - [ - "▁T", - "ime" - ], - [ - "▁Tim", - "e" - ], - [ - "▁Ti", - "me" - ], - [ - "▁", - "Time" - ], - [ - "val", - "ues" - ], - [ - "value", - "s" - ], - [ - "valu", - "es" - ], - [ - "▁L", - "oc" - ], - [ - "▁Lo", - "c" - ], - [ - "▁", - "Loc" - ], - [ - "▁C", - "lub" - ], - [ - "▁Cl", - "ub" - ], - [ - "▁an", - "che" - ], - [ - "▁anc", - "he" - ], - [ - "▁anch", - "e" - ], - [ - "▁", - "anche" - ], - [ - "ia", - "ł" - ], - [ - "i", - "ał" - ], - [ - "і", - "ї" - ], - [ - "Om", - "ega" - ], - [ - "▁loc", - "ated" - ], - [ - "▁locate", - "d" - ], - [ - "▁", - "located" - ], - [ - "U", - "rl" - ], - [ - "▁E", - "sp" - ], - [ - "▁Es", - "p" - ], - [ - "▁", - "Esp" - ], - [ - "л", - "ы" - ], - [ - "ц", - "ь" - ], - [ - "ul", - "ate" - ], - [ - "ula", - "te" - ], - [ - "u", - "late" - ], - [ - "▁j", - "oin" - ], - [ - "▁jo", - "in" - ], - [ - "▁", - "join" - ], - [ - "av", - "es" - ], - [ - "ave", - "s" - ], - [ - "a", - "ves" - ], - [ - "ve", - "t" - ], - [ - "v", - "et" - ], - [ - "li", - "o" - ], - [ - "l", - "io" - ], - [ - "re", - "move" - ], - [ - "rem", - "ove" - ], - [ - "▁t", - "oken" - ], - [ - "▁to", - "ken" - ], - [ - "▁", - "token" - ], - [ - "▁op", - "tim" - ], - [ - "▁opt", - "im" - ], - [ - "▁", - "optim" - ], - [ - "▁c", - "laim" - ], - [ - "▁cla", - "im" - ], - [ - "olog", - "ical" - ], - [ - "▁c", - "ss" - ], - [ - "▁cs", - "s" - ], - [ - "▁", - "css" - ], - [ - "▁al", - "though" - ], - [ - "▁", - "although" - ], - [ - "▁p", - "riv" - ], - [ - "▁pr", - "iv" - ], - [ - "▁pri", - "v" - ], - [ - "▁", - "priv" - ], - [ - "▁B", - "a" - ], - [ - "ü", - "l" - ], - [ - "entic", - "ation" - ], - [ - "enti", - "cation" - ], - [ - "▁v", - "en" - ], - [ - "▁ve", - "n" - ], - [ - "▁", - "ven" - ], - [ - "Ser", - "ver" - ], - [ - "Serv", - "er" - ], - [ - "▁C", - "ong" - ], - [ - "▁Con", - "g" - ], - [ - "▁Co", - "ng" - ], - [ - "NE", - "T" - ], - [ - "N", - "ET" - ], - [ - "CO", - "N" - ], - [ - "C", - "ON" - ], - [ - "d", - "t" - ], - [ - "per", - "ties" - ], - [ - "pert", - "ies" - ], - [ - "▁e", - "pis" - ], - [ - "▁ep", - "is" - ], - [ - "wik", - "ipedia" - ], - [ - "▁eng", - "ine" - ], - [ - "▁", - "engine" - ], - [ - "▁f", - "er" - ], - [ - "▁fe", - "r" - ], - [ - "▁", - "fer" - ], - [ - "get", - "Element" - ], - [ - "▁C", - "la" - ], - [ - "▁Cl", - "a" - ], - [ - "▁", - "Cla" - ], - [ - "ř", - "í" - ], - [ - "▁r", - "om" - ], - [ - "▁ro", - "m" - ], - [ - "▁", - "rom" - ], - [ - "var", - "epsilon" - ], - [ - "vare", - "psilon" - ], - [ - "▁pr", - "ime" - ], - [ - "▁prim", - "e" - ], - [ - "▁pri", - "me" - ], - [ - "▁", - "prime" - ], - [ - "is", - "try" - ], - [ - "ist", - "ry" - ], - [ - "istr", - "y" - ], - [ - "pe", - "cted" - ], - [ - "pect", - "ed" - ], - [ - "pec", - "ted" - ], - [ - "p", - "ected" - ], - [ - "or", - "age" - ], - [ - "ora", - "ge" - ], - [ - "o", - "rage" - ], - [ - "▁t", - "ouch" - ], - [ - "▁to", - "uch" - ], - [ - "▁tou", - "ch" - ], - [ - "▁", - "touch" - ], - [ - "▁[", - "'" - ], - [ - "▁", - "['" - ], - [ - "▁d", - "an" - ], - [ - "▁da", - "n" - ], - [ - "▁", - "dan" - ], - [ - "E", - "m" - ], - [ - "ac", - "iones" - ], - [ - "acion", - "es" - ], - [ - "aci", - "ones" - ], - [ - "a", - "ciones" - ], - [ - "Ca", - "n" - ], - [ - "C", - "an" - ], - [ - "▁w", - "hom" - ], - [ - "▁wh", - "om" - ], - [ - "▁who", - "m" - ], - [ - "▁be", - "havior" - ], - [ - "▁behav", - "ior" - ], - [ - "▁str", - "ings" - ], - [ - "▁string", - "s" - ], - [ - "▁", - "strings" - ], - [ - "▁E", - "urop" - ], - [ - "▁Euro", - "p" - ], - [ - "▁Eu", - "rop" - ], - [ - "▁Eur", - "op" - ], - [ - "▁R", - "om" - ], - [ - "▁Ro", - "m" - ], - [ - "ci", - "rc" - ], - [ - "cir", - "c" - ], - [ - "c", - "irc" - ], - [ - "▁p", - "un" - ], - [ - "▁pu", - "n" - ], - [ - "▁reg", - "ister" - ], - [ - "▁", - "register" - ], - [ - "b", - "untu" - ], - [ - "ra", - "in" - ], - [ - "rai", - "n" - ], - [ - "r", - "ain" - ], - [ - "O", - "b" - ], - [ - "T", - "A" - ], - [ - "▁s", - "ometimes" - ], - [ - "▁some", - "times" - ], - [ - "▁somet", - "imes" - ], - [ - "▁m", - "ent" - ], - [ - "▁me", - "nt" - ], - [ - "▁men", - "t" - ], - [ - "▁", - "ment" - ], - [ - "▁in", - "teger" - ], - [ - "▁inte", - "ger" - ], - [ - "▁", - "integer" - ], - [ - "▁J", - "ac" - ], - [ - "▁Ja", - "c" - ], - [ - "▁", - "Jac" - ], - [ - "le", - "gate" - ], - [ - "leg", - "ate" - ], - [ - "ot", - "hing" - ], - [ - "oth", - "ing" - ], - [ - "o", - "thing" - ], - [ - "▁s", - "ound" - ], - [ - "▁so", - "und" - ], - [ - "▁sou", - "nd" - ], - [ - "▁", - "sound" - ], - [ - "la", - "ces" - ], - [ - "lace", - "s" - ], - [ - "lac", - "es" - ], - [ - "l", - "aces" - ], - [ - "▁Б", - "а" - ], - [ - "r", - "b" - ], - [ - "d", - "i" - ], - [ - "ле", - "ния" - ], - [ - "▁them", - "selves" - ], - [ - "▁B", - "lack" - ], - [ - "▁Bl", - "ack" - ], - [ - "▁Bla", - "ck" - ], - [ - "▁", - "Black" - ], - [ - "▁s", - "ettings" - ], - [ - "▁sett", - "ings" - ], - [ - "▁setting", - "s" - ], - [ - "▁", - "settings" - ], - [ - "▁n", - "orm" - ], - [ - "▁no", - "rm" - ], - [ - "▁nor", - "m" - ], - [ - "▁", - "norm" - ], - [ - "▁r", - "uns" - ], - [ - "▁run", - "s" - ], - [ - "▁ru", - "ns" - ], - [ - "▁N", - "OT" - ], - [ - "▁NO", - "T" - ], - [ - "▁", - "NOT" - ], - [ - "K", - "E" - ], - [ - "▁per", - "haps" - ], - [ - "▁", - "Я" - ], - [ - "▁m", - "ol" - ], - [ - "▁mo", - "l" - ], - [ - "▁a", - "ns" - ], - [ - "▁an", - "s" - ], - [ - "▁", - "ans" - ], - [ - "at", - "re" - ], - [ - "atr", - "e" - ], - [ - "a", - "tre" - ], - [ - "▁D", - "ies" - ], - [ - "▁Die", - "s" - ], - [ - "▁Di", - "es" - ], - [ - "To", - "ken" - ], - [ - "T", - "oken" - ], - [ - "an", - "ie" - ], - [ - "ani", - "e" - ], - [ - "a", - "nie" - ], - [ - "▁all", - "owed" - ], - [ - "▁allow", - "ed" - ], - [ - "▁allo", - "wed" - ], - [ - "▁", - "allowed" - ], - [ - "R", - "ange" - ], - [ - "▁G", - "ro" - ], - [ - "▁Gr", - "o" - ], - [ - "vi", - "a" - ], - [ - "v", - "ia" - ], - [ - "ut", - "orial" - ], - [ - "uto", - "rial" - ], - [ - "utor", - "ial" - ], - [ - "ens", - "or" - ], - [ - "enso", - "r" - ], - [ - "est", - "ival" - ], - [ - "esti", - "val" - ], - [ - ");", - "\r" - ], - [ - ")", - ";\r" - ], - [ - "кра", - "ї" - ], - [ - "▁turn", - "ed" - ], - [ - "▁tur", - "ned" - ], - [ - "sc", - "ope" - ], - [ - "scop", - "e" - ], - [ - "s", - "cope" - ], - [ - "▁b", - "ien" - ], - [ - "▁bi", - "en" - ], - [ - "=", - "$" - ], - [ - "▁ext", - "ension" - ], - [ - "▁extens", - "ion" - ], - [ - "▁", - "extension" - ], - [ - "at", - "ore" - ], - [ - "ator", - "e" - ], - [ - "ato", - "re" - ], - [ - "▁Р", - "о" - ], - [ - "▁spec", - "ify" - ], - [ - "ed", - "u" - ], - [ - "e", - "du" - ], - [ - "Dat", - "os" - ], - [ - "D", - "atos" - ], - [ - "▁st", - "ored" - ], - [ - "▁stor", - "ed" - ], - [ - "▁store", - "d" - ], - [ - "▁sto", - "red" - ], - [ - "▁p", - "arse" - ], - [ - "▁par", - "se" - ], - [ - "▁", - "parse" - ], - [ - "▁an", - "swers" - ], - [ - "▁answer", - "s" - ], - [ - "▁ans", - "wers" - ], - [ - "il", - "ls" - ], - [ - "ill", - "s" - ], - [ - "▁he", - "ard" - ], - [ - "▁hear", - "d" - ], - [ - "l", - "u" - ], - [ - "▁T", - "HE" - ], - [ - "▁TH", - "E" - ], - [ - "▁", - "THE" - ], - [ - "▁g", - "én" - ], - [ - "▁gé", - "n" - ], - [ - "▁f", - "ul" - ], - [ - "▁fu", - "l" - ], - [ - "▁", - "ful" - ], - [ - "e", - "z" - ], - [ - "▁P", - "rem" - ], - [ - "▁Pr", - "em" - ], - [ - "▁Pre", - "m" - ], - [ - "th", - "en" - ], - [ - "the", - "n" - ], - [ - "t", - "hen" - ], - [ - "d", - "p" - ], - [ - "сь", - "кого" - ], - [ - "сько", - "го" - ], - [ - "ськ", - "ого" - ], - [ - "▁S", - "i" - ], - [ - "▁", - "Si" - ], - [ - "ç", - "o" - ], - [ - "Ed", - "it" - ], - [ - "E", - "dit" - ], - [ - "кі", - "в" - ], - [ - "к", - "ів" - ], - [ - "▁Л", - "и" - ], - [ - "▁S", - "ing" - ], - [ - "▁Si", - "ng" - ], - [ - "▁Sin", - "g" - ], - [ - "▁", - "Sing" - ], - [ - "▁c", - "ateg" - ], - [ - "▁cat", - "eg" - ], - [ - "Eq", - "u" - ], - [ - "E", - "qu" - ], - [ - "▁g", - "uer" - ], - [ - "▁gu", - "er" - ], - [ - "▁", - "guer" - ], - [ - "W", - "idth" - ], - [ - "▁Christ", - "ian" - ], - [ - "st", - "at" - ], - [ - "sta", - "t" - ], - [ - "s", - "tat" - ], - [ - "W", - "rite" - ], - [ - "▁w", - "oman" - ], - [ - "▁wo", - "man" - ], - [ - "wo", - "od" - ], - [ - "w", - "ood" - ], - [ - "V", - "is" - ], - [ - "ра", - "з" - ], - [ - "▁$", - "$\\" - ], - [ - "▁$$", - "\\" - ], - [ - "ode", - "r" - ], - [ - "od", - "er" - ], - [ - "o", - "der" - ], - [ - "▁b", - "ool" - ], - [ - "▁bo", - "ol" - ], - [ - "▁", - "bool" - ], - [ - "▁intern", - "ational" - ], - [ - "но", - "сть" - ], - [ - "ност", - "ь" - ], - [ - "нос", - "ть" - ], - [ - "▁Rich", - "ard" - ], - [ - "▁Ric", - "hard" - ], - [ - "▁add", - "ition" - ], - [ - "▁Mus", - "ic" - ], - [ - "▁", - "Music" - ], - [ - "▁a", - "ber" - ], - [ - "▁ab", - "er" - ], - [ - "t", - "ó" - ], - [ - "▁h", - "ier" - ], - [ - "▁hi", - "er" - ], - [ - "ug", - "h" - ], - [ - "u", - "gh" - ], - [ - "▁p", - "ob" - ], - [ - "▁po", - "b" - ], - [ - "▁t", - "ables" - ], - [ - "▁table", - "s" - ], - [ - "▁tab", - "les" - ], - [ - "▁ta", - "bles" - ], - [ - "▁", - "tables" - ], - [ - "D", - "o" - ], - [ - "▁high", - "er" - ], - [ - "ps", - "i" - ], - [ - "p", - "si" - ], - [ - "r", - "á" - ], - [ - "▁act", - "ive" - ], - [ - "▁activ", - "e" - ], - [ - "▁", - "active" - ], - [ - "▁T", - "able" - ], - [ - "▁Ta", - "ble" - ], - [ - "▁Tab", - "le" - ], - [ - "▁", - "Table" - ], - [ - "њ", - "е" - ], - [ - "▁de", - "scription" - ], - [ - "▁des", - "cription" - ], - [ - "▁descri", - "ption" - ], - [ - "▁descript", - "ion" - ], - [ - "▁", - "description" - ], - [ - "▁se", - "emed" - ], - [ - "▁see", - "med" - ], - [ - "▁seem", - "ed" - ], - [ - "ís", - "t" - ], - [ - "í", - "st" - ], - [ - "▁my", - "self" - ], - [ - "▁m", - "enu" - ], - [ - "▁me", - "nu" - ], - [ - "▁men", - "u" - ], - [ - "▁", - "menu" - ], - [ - "de", - "l" - ], - [ - "d", - "el" - ], - [ - "▁", - "ž" - ], - [ - "el", - "e" - ], - [ - "e", - "le" - ], - [ - "A", - "ut" - ], - [ - "▁г", - "ру" - ], - [ - "mu", - "t" - ], - [ - "m", - "ut" - ], - [ - "oo", - "n" - ], - [ - "o", - "on" - ], - [ - "as", - "c" - ], - [ - "a", - "sc" - ], - [ - "bu", - "g" - ], - [ - "b", - "ug" - ], - [ - "▁m", - "oved" - ], - [ - "▁mov", - "ed" - ], - [ - "▁mo", - "ved" - ], - [ - "▁move", - "d" - ], - [ - "C", - "L" - ], - [ - "▁data", - "s" - ], - [ - "▁dat", - "as" - ], - [ - "▁", - "datas" - ], - [ - "S", - "O" - ], - [ - "о", - "ло" - ], - [ - "▁Ge", - "org" - ], - [ - "▁re", - "ach" - ], - [ - "▁r", - "each" - ], - [ - ":", - "\"" - ], - [ - "▁e", - "valu" - ], - [ - "▁ev", - "alu" - ], - [ - "▁eval", - "u" - ], - [ - "▁", - "evalu" - ], - [ - "▁H", - "el" - ], - [ - "▁He", - "l" - ], - [ - "▁", - "Hel" - ], - [ - "▁R", - "iver" - ], - [ - "▁Riv", - "er" - ], - [ - "▁Ri", - "ver" - ], - [ - "▁А", - "р" - ], - [ - "▁", - "Ар" - ], - [ - "//", - "//" - ], - [ - "///", - "/" - ], - [ - "/", - "///" - ], - [ - "▁s", - "ets" - ], - [ - "▁se", - "ts" - ], - [ - "▁set", - "s" - ], - [ - "▁", - "sets" - ], - [ - "▁O", - "lymp" - ], - [ - "Ad", - "apter" - ], - [ - ".", - "'" - ], - [ - "ov", - "ern" - ], - [ - "over", - "n" - ], - [ - "ove", - "rn" - ], - [ - "o", - "vern" - ], - [ - "▁L", - "ord" - ], - [ - "▁Lo", - "rd" - ], - [ - "▁Lor", - "d" - ], - [ - "!", - "--" - ], - [ - "jp", - "g" - ], - [ - "j", - "pg" - ], - [ - "im", - "ento" - ], - [ - "iment", - "o" - ], - [ - "imen", - "to" - ], - [ - "▁Pro", - "f" - ], - [ - "▁Pr", - "of" - ], - [ - "▁ach", - "ieve" - ], - [ - "▁achiev", - "e" - ], - [ - "}", - ":" - ], - [ - "▁in", - "cor" - ], - [ - "▁inc", - "or" - ], - [ - "▁o", - "nder" - ], - [ - "▁on", - "der" - ], - [ - "▁onde", - "r" - ], - [ - "▁", - "onder" - ], - [ - "en", - "gl" - ], - [ - "eng", - "l" - ], - [ - "AB", - "LE" - ], - [ - "▁M", - "ary" - ], - [ - "▁Mar", - "y" - ], - [ - "▁Ma", - "ry" - ], - [ - "▁w", - "aren" - ], - [ - "▁war", - "en" - ], - [ - "▁wa", - "ren" - ], - [ - "la", - "ge" - ], - [ - "lag", - "e" - ], - [ - "l", - "age" - ], - [ - "De", - "c" - ], - [ - "D", - "ec" - ], - [ - "анг", - "л" - ], - [ - "en", - "cias" - ], - [ - "enc", - "ias" - ], - [ - "encia", - "s" - ], - [ - "enci", - "as" - ], - [ - "ле", - "й" - ], - [ - "л", - "ей" - ], - [ - "▁M", - "achine" - ], - [ - "▁Mach", - "ine" - ], - [ - "▁", - "Machine" - ], - [ - "▁А", - "н" - ], - [ - "ud", - "a" - ], - [ - "u", - "da" - ], - [ - "▁", - "ś" - ], - [ - "▁X", - "X" - ], - [ - "▁", - "XX" - ], - [ - "on", - "ly" - ], - [ - "ле", - "ние" - ], - [ - "▁tamb", - "ién" - ], - [ - "ne", - "j" - ], - [ - "n", - "ej" - ], - [ - "▁rel", - "ative" - ], - [ - "▁relativ", - "e" - ], - [ - "▁", - "relative" - ], - [ - "▁h", - "ours" - ], - [ - "▁ho", - "urs" - ], - [ - "▁hour", - "s" - ], - [ - "▁ind", - "eed" - ], - [ - "▁inde", - "ed" - ], - [ - "un", - "do" - ], - [ - "und", - "o" - ], - [ - "in", - "gu" - ], - [ - "ing", - "u" - ], - [ - "ar", - "ea" - ], - [ - "are", - "a" - ], - [ - "a", - "rea" - ], - [ - "▁C", - "reate" - ], - [ - "▁Cre", - "ate" - ], - [ - "▁", - "Create" - ], - [ - "be", - "it" - ], - [ - "bei", - "t" - ], - [ - "▁rem", - "oved" - ], - [ - "▁remove", - "d" - ], - [ - "▁remov", - "ed" - ], - [ - "ma", - "ster" - ], - [ - "mas", - "ter" - ], - [ - "maste", - "r" - ], - [ - "m", - "aster" - ], - [ - "ha", - "us" - ], - [ - "h", - "aus" - ], - [ - "▁B", - "ern" - ], - [ - "▁Be", - "rn" - ], - [ - "▁Ber", - "n" - ], - [ - "▁sp", - "eed" - ], - [ - "▁spe", - "ed" - ], - [ - "▁", - "speed" - ], - [ - "▁B", - "ay" - ], - [ - "▁Ba", - "y" - ], - [ - "▁A", - "tt" - ], - [ - "▁At", - "t" - ], - [ - "▁", - "Att" - ], - [ - "▁N", - "one" - ], - [ - "▁No", - "ne" - ], - [ - "▁Non", - "e" - ], - [ - "▁", - "None" - ], - [ - "app", - "lication" - ], - [ - "ü", - "d" - ], - [ - "▁f", - "it" - ], - [ - "▁fi", - "t" - ], - [ - "▁", - "fit" - ], - [ - "▁M", - "aria" - ], - [ - "▁Mar", - "ia" - ], - [ - "▁Ma", - "ria" - ], - [ - "▁Mari", - "a" - ], - [ - "▁n", - "ord" - ], - [ - "▁no", - "rd" - ], - [ - "▁nor", - "d" - ], - [ - "▁s", - "plit" - ], - [ - "▁sp", - "lit" - ], - [ - "▁spl", - "it" - ], - [ - "▁", - "split" - ], - [ - "▁st", - "ru" - ], - [ - "▁str", - "u" - ], - [ - "▁", - "stru" - ], - [ - "▁o", - "fficial" - ], - [ - "▁off", - "icial" - ], - [ - "▁offic", - "ial" - ], - [ - "▁offici", - "al" - ], - [ - "▁exec", - "ute" - ], - [ - "▁execut", - "e" - ], - [ - "▁", - "execute" - ], - [ - "ou", - "ve" - ], - [ - "ouv", - "e" - ], - [ - "o", - "uve" - ], - [ - "{", - "{" - ], - [ - "▁A", - "p" - ], - [ - "▁", - "Ap" - ], - [ - "▁к", - "у" - ], - [ - "▁", - "ку" - ], - [ - "I", - "L" - ], - [ - "▁", - "^" - ], - [ - "di", - "m" - ], - [ - "d", - "im" - ], - [ - "▁set", - "up" - ], - [ - "▁", - "setup" - ], - [ - "с", - "к" - ], - [ - "▁sh", - "are" - ], - [ - "▁", - "share" - ], - [ - "▁min", - "utes" - ], - [ - "▁minute", - "s" - ], - [ - "gl", - "e" - ], - [ - "g", - "le" - ], - [ - "oc", - "o" - ], - [ - "o", - "co" - ], - [ - "st", - "ell" - ], - [ - "ste", - "ll" - ], - [ - "▁C", - "oun" - ], - [ - "▁Co", - "un" - ], - [ - "▁Cou", - "n" - ], - [ - "▁tem", - "per" - ], - [ - "▁temp", - "er" - ], - [ - "▁", - "temper" - ], - [ - "ke", - "it" - ], - [ - "сь", - "кий" - ], - [ - "a", - "o" - ], - [ - "▁L", - "ong" - ], - [ - "▁Lo", - "ng" - ], - [ - "▁", - "Long" - ], - [ - "(", - "&" - ], - [ - "ка", - "н" - ], - [ - "к", - "ан" - ], - [ - "▁d", - "ens" - ], - [ - "▁de", - "ns" - ], - [ - "▁den", - "s" - ], - [ - "▁", - "dens" - ], - [ - "Bu", - "t" - ], - [ - "B", - "ut" - ], - [ - "X", - "X" - ], - [ - "DA", - "TE" - ], - [ - "DAT", - "E" - ], - [ - "D", - "ATE" - ], - [ - "ga", - "n" - ], - [ - "g", - "an" - ], - [ - ".)", - "." - ], - [ - ".", - ")." - ], - [ - "▁en", - "try" - ], - [ - "▁ent", - "ry" - ], - [ - "▁entr", - "y" - ], - [ - "▁", - "entry" - ], - [ - "inst", - "all" - ], - [ - "▁з", - "на" - ], - [ - "▁", - "зна" - ], - [ - "▁S", - "om" - ], - [ - "▁So", - "m" - ], - [ - "Comm", - "and" - ], - [ - "ße", - "n" - ], - [ - "ß", - "en" - ], - [ - "▁start", - "ing" - ], - [ - "▁star", - "ting" - ], - [ - "▁s", - "to" - ], - [ - "▁st", - "o" - ], - [ - "▁", - "sto" - ], - [ - "I", - "G" - ], - [ - "▁min", - "im" - ], - [ - "▁mi", - "nim" - ], - [ - "▁mini", - "m" - ], - [ - "▁exp", - "licit" - ], - [ - "▁explic", - "it" - ], - [ - "▁by", - "tes" - ], - [ - "▁byte", - "s" - ], - [ - "▁", - "bytes" - ], - [ - "▁par", - "ty" - ], - [ - "▁part", - "y" - ], - [ - "▁", - "party" - ], - [ - "to", - "ber" - ], - [ - "t", - "ober" - ], - [ - "▁G", - "rand" - ], - [ - "▁Gr", - "and" - ], - [ - "▁Gra", - "nd" - ], - [ - "▁Gran", - "d" - ], - [ - "▁V", - "or" - ], - [ - "▁Vo", - "r" - ], - [ - "▁", - "Vor" - ], - [ - "▁l", - "eur" - ], - [ - "▁le", - "ur" - ], - [ - "▁", - "leur" - ], - [ - "Doc", - "ument" - ], - [ - "D", - "ocument" - ], - [ - "er", - "c" - ], - [ - "e", - "rc" - ], - [ - "ens", - "ive" - ], - [ - "C", - "P" - ], - [ - "en", - "v" - ], - [ - "▁arg", - "uments" - ], - [ - "▁argument", - "s" - ], - [ - "▁", - "arguments" - ], - [ - "▁G", - "ran" - ], - [ - "▁Gr", - "an" - ], - [ - "▁Gra", - "n" - ], - [ - "ar", - "ily" - ], - [ - "ari", - "ly" - ], - [ - "▁l", - "in" - ], - [ - "▁li", - "n" - ], - [ - "▁", - "lin" - ], - [ - "t", - "n" - ], - [ - "(", - "-" - ], - [ - "ge", - "q" - ], - [ - "g", - "eq" - ], - [ - "▁F", - "amil" - ], - [ - "▁Fa", - "mil" - ], - [ - "▁Fam", - "il" - ], - [ - "▁", - "Famil" - ], - [ - "▁Б", - "о" - ], - [ - "▁t", - "our" - ], - [ - "▁to", - "ur" - ], - [ - "▁tou", - "r" - ], - [ - "▁n", - "av" - ], - [ - "▁na", - "v" - ], - [ - "▁", - "nav" - ], - [ - "▁proper", - "ly" - ], - [ - "▁M", - "rs" - ], - [ - "▁Mr", - "s" - ], - [ - "▁M", - "el" - ], - [ - "▁Me", - "l" - ], - [ - "▁sc", - "ale" - ], - [ - "▁scal", - "e" - ], - [ - "▁", - "scale" - ], - [ - "ast", - "ic" - ], - [ - "d", - "s" - ], - [ - "▁S", - "ir" - ], - [ - "▁Si", - "r" - ], - [ - "▁Ch", - "urch" - ], - [ - "}^", - "{\\" - ], - [ - "}^{", - "\\" - ], - [ - "}", - "^{\\" - ], - [ - "yo", - "u" - ], - [ - "y", - "ou" - ], - [ - "/", - "." - ], - [ - "S", - "o" - ], - [ - "▁br", - "ought" - ], - [ - "▁r", - "ole" - ], - [ - "▁ro", - "le" - ], - [ - "▁rol", - "e" - ], - [ - "▁", - "role" - ], - [ - "▁S", - "ur" - ], - [ - "▁Su", - "r" - ], - [ - "▁", - "Sur" - ], - [ - "▁f", - "ond" - ], - [ - "▁fo", - "nd" - ], - [ - "▁fon", - "d" - ], - [ - "▁g", - "es" - ], - [ - "▁ge", - "s" - ], - [ - "▁", - "ges" - ], - [ - "ż", - "e" - ], - [ - "et", - "en" - ], - [ - "ete", - "n" - ], - [ - "e", - "ten" - ], - [ - "▁é", - "tait" - ], - [ - "▁ét", - "ait" - ], - [ - "▁", - "était" - ], - [ - "SE", - "R" - ], - [ - "S", - "ER" - ], - [ - "▁ко", - "торы" - ], - [ - "▁кото", - "ры" - ], - [ - "▁equ", - "ation" - ], - [ - "▁", - "equation" - ], - [ - "as", - "px" - ], - [ - "asp", - "x" - ], - [ - "▁A", - "fr" - ], - [ - "▁Af", - "r" - ], - [ - "▁d", - "it" - ], - [ - "▁di", - "t" - ], - [ - "▁", - "dit" - ], - [ - "em", - "pty" - ], - [ - "emp", - "ty" - ], - [ - "empt", - "y" - ], - [ - "al", - "ement" - ], - [ - "ale", - "ment" - ], - [ - "alem", - "ent" - ], - [ - "a", - "lement" - ], - [ - "wr", - "ap" - ], - [ - "w", - "rap" - ], - [ - "▁B", - "et" - ], - [ - "▁Be", - "t" - ], - [ - "▁col", - "lect" - ], - [ - "▁coll", - "ect" - ], - [ - "▁colle", - "ct" - ], - [ - "▁", - "collect" - ], - [ - "▁g", - "it" - ], - [ - "▁gi", - "t" - ], - [ - "▁", - "git" - ], - [ - "▁v", - "ie" - ], - [ - "▁vi", - "e" - ], - [ - "▁", - "vie" - ], - [ - "▁.", - "." - ], - [ - "▁", - ".." - ], - [ - "ро", - "й" - ], - [ - "▁<", - "?" - ], - [ - "▁", - "" - ], - [ - "▁В", - "а" - ], - [ - "no", - "st" - ], - [ - "nos", - "t" - ], - [ - "n", - "ost" - ], - [ - "▁n", - "em" - ], - [ - "▁ne", - "m" - ], - [ - "▁", - "nem" - ], - [ - "▁p", - "en" - ], - [ - "▁pe", - "n" - ], - [ - "▁", - "pen" - ], - [ - "Op", - "en" - ], - [ - "O", - "pen" - ], - [ - "▁ch", - "urch" - ], - [ - "ко", - "н" - ], - [ - "к", - "он" - ], - [ - "▁a", - "verage" - ], - [ - "▁aver", - "age" - ], - [ - "▁ave", - "rage" - ], - [ - "▁com", - "ments" - ], - [ - "▁comm", - "ents" - ], - [ - "▁comment", - "s" - ], - [ - "▁", - "comments" - ], - [ - "▁correspond", - "ing" - ], - [ - "lev", - "ant" - ], - [ - "▁b", - "ed" - ], - [ - "▁be", - "d" - ], - [ - "▁", - "bed" - ], - [ - "▁mean", - "ing" - ], - [ - "V", - "ersion" - ], - [ - "Lin", - "k" - ], - [ - "L", - "ink" - ], - [ - "be", - "l" - ], - [ - "b", - "el" - ], - [ - "▁ext", - "ract" - ], - [ - "▁extra", - "ct" - ], - [ - "▁extr", - "act" - ], - [ - "▁", - "extract" - ], - [ - "ś", - "ć" - ], - [ - "▁I", - "V" - ], - [ - "▁", - "IV" - ], - [ - "▁I", - "r" - ], - [ - "▁comp", - "uter" - ], - [ - "▁comput", - "er" - ], - [ - "▁compute", - "r" - ], - [ - "▁a", - "ffect" - ], - [ - "▁af", - "fect" - ], - [ - "▁aff", - "ect" - ], - [ - "▁С", - "та" - ], - [ - "▁Ст", - "а" - ], - [ - "A", - "X" - ], - [ - "so", - "rt" - ], - [ - "s", - "ort" - ], - [ - "▁s", - "pecies" - ], - [ - "▁spe", - "cies" - ], - [ - "▁spec", - "ies" - ], - [ - "▁specie", - "s" - ], - [ - "▁", - "species" - ], - [ - "▁O", - "per" - ], - [ - "▁Op", - "er" - ], - [ - "▁", - "Oper" - ], - [ - "▁h", - "ash" - ], - [ - "▁ha", - "sh" - ], - [ - "▁has", - "h" - ], - [ - "▁", - "hash" - ], - [ - "ch", - "es" - ], - [ - "che", - "s" - ], - [ - "c", - "hes" - ], - [ - "▁Einz", - "eln" - ], - [ - "▁Einzel", - "n" - ], - [ - "▁ke", - "ys" - ], - [ - "▁key", - "s" - ], - [ - "▁", - "keys" - ], - [ - "▁mar", - "zo" - ], - [ - "▁inter", - "pret" - ], - [ - "▁interpre", - "t" - ], - [ - "ho", - "od" - ], - [ - "h", - "ood" - ], - [ - "▁co", - "ordin" - ], - [ - "▁coord", - "in" - ], - [ - "ö", - "s" - ], - [ - "ra", - "ge" - ], - [ - "rag", - "e" - ], - [ - "r", - "age" - ], - [ - "et", - "z" - ], - [ - "e", - "tz" - ], - [ - "iz", - "a" - ], - [ - "i", - "za" - ], - [ - "де", - "р" - ], - [ - "д", - "ер" - ], - [ - "ü", - "t" - ], - [ - "^", - "*" - ], - [ - "▁mod", - "ify" - ], - [ - "▁term", - "in" - ], - [ - "▁ter", - "min" - ], - [ - "▁", - "termin" - ], - [ - "▁c", - "red" - ], - [ - "▁cre", - "d" - ], - [ - "▁cr", - "ed" - ], - [ - "▁", - "cred" - ], - [ - "zo", - "n" - ], - [ - "z", - "on" - ], - [ - "ну", - "ю" - ], - [ - "н", - "ую" - ], - [ - "▁m", - "ie" - ], - [ - "▁mi", - "e" - ], - [ - "▁'", - "'" - ], - [ - "▁", - "''" - ], - [ - "▁M", - "os" - ], - [ - "▁Mo", - "s" - ], - [ - "▁conne", - "cted" - ], - [ - "▁connect", - "ed" - ], - [ - "▁conn", - "ected" - ], - [ - "▁", - "connected" - ], - [ - "N", - "O" - ], - [ - "▁comp", - "ile" - ], - [ - "▁", - "compile" - ], - [ - "▁\"", - "\\" - ], - [ - "▁", - "\"\\" - ], - [ - "▁c", - "at" - ], - [ - "▁ca", - "t" - ], - [ - "▁", - "cat" - ], - [ - "f", - "iddle" - ], - [ - "ut", - "a" - ], - [ - "u", - "ta" - ], - [ - "Acc", - "ess" - ], - [ - "Ac", - "cess" - ], - [ - "A", - "ccess" - ], - [ - "▁S", - "to" - ], - [ - "▁St", - "o" - ], - [ - "▁", - "Sto" - ], - [ - "▁B", - "ur" - ], - [ - "▁Bu", - "r" - ], - [ - "▁n", - "orth" - ], - [ - "▁nor", - "th" - ], - [ - "G", - "amma" - ], - [ - "▁al", - "loc" - ], - [ - "▁all", - "oc" - ], - [ - "▁allo", - "c" - ], - [ - "▁", - "alloc" - ], - [ - "In", - "it" - ], - [ - "I", - "nit" - ], - [ - "▁L", - "ink" - ], - [ - "▁Lin", - "k" - ], - [ - "▁", - "Link" - ], - [ - "ial", - "ize" - ], - [ - "iali", - "ze" - ], - [ - "Im", - "pl" - ], - [ - "Imp", - "l" - ], - [ - "ou", - "pe" - ], - [ - "oup", - "e" - ], - [ - "rop", - "ri" - ], - [ - "▁G", - "old" - ], - [ - "▁Go", - "ld" - ], - [ - "▁Gol", - "d" - ], - [ - "▁s", - "olo" - ], - [ - "▁so", - "lo" - ], - [ - "▁sol", - "o" - ], - [ - "▁D", - "ist" - ], - [ - "▁Dis", - "t" - ], - [ - "▁Di", - "st" - ], - [ - "▁", - "Dist" - ], - [ - ",", - "-" - ], - [ - "na", - "v" - ], - [ - "n", - "av" - ], - [ - "▁al", - "ert" - ], - [ - "▁ale", - "rt" - ], - [ - "▁", - "alert" - ], - [ - "es", - "is" - ], - [ - "esi", - "s" - ], - [ - "▁O", - "s" - ], - [ - "▁", - "Os" - ], - [ - "//", - "/" - ], - [ - "/", - "//" - ], - [ - "▁f", - "eb" - ], - [ - "▁fe", - "b" - ], - [ - "▁-", - "->" - ], - [ - "▁--", - ">" - ], - [ - "▁", - "-->" - ], - [ - "fo", - "ot" - ], - [ - "foo", - "t" - ], - [ - "f", - "oot" - ], - [ - "▁F", - "ried" - ], - [ - "▁Fr", - "ied" - ], - [ - "▁Fri", - "ed" - ], - [ - "▁Einzeln", - "ach" - ], - [ - "▁Einzel", - "nach" - ], - [ - "▁re", - "v" - ], - [ - "▁r", - "ev" - ], - [ - "▁", - "rev" - ], - [ - "ze", - "it" - ], - [ - "▁S", - "tat" - ], - [ - "▁St", - "at" - ], - [ - "▁Sta", - "t" - ], - [ - "▁", - "Stat" - ], - [ - "▁S", - "eg" - ], - [ - "▁Se", - "g" - ], - [ - "▁", - "Seg" - ], - [ - "▁b", - "lo" - ], - [ - "▁bl", - "o" - ], - [ - "▁", - "blo" - ], - [ - "wi", - "ck" - ], - [ - "w", - "ick" - ], - [ - "E", - "L" - ], - [ - "ca", - "ption" - ], - [ - "cap", - "tion" - ], - [ - "capt", - "ion" - ], - [ - "he", - "ader" - ], - [ - "head", - "er" - ], - [ - "▁pres", - "ident" - ], - [ - "▁presiden", - "t" - ], - [ - "▁mult", - "ip" - ], - [ - "▁multi", - "p" - ], - [ - "▁mul", - "tip" - ], - [ - "▁", - "multip" - ], - [ - "▁Einzelnach", - "weise" - ], - [ - "▁se", - "ine" - ], - [ - "▁sein", - "e" - ], - [ - "▁sei", - "ne" - ], - [ - "?", - "”" - ], - [ - "Func", - "tion" - ], - [ - "Fun", - "ction" - ], - [ - "F", - "unction" - ], - [ - "▁St", - "and" - ], - [ - "▁Sta", - "nd" - ], - [ - "▁Stan", - "d" - ], - [ - "▁", - "Stand" - ], - [ - "▁F", - "unction" - ], - [ - "▁Fun", - "ction" - ], - [ - "▁", - "Function" - ], - [ - "▁?", - ">" - ], - [ - "▁", - "?>" - ], - [ - "▁B", - "ill" - ], - [ - "▁Bi", - "ll" - ], - [ - "▁Bil", - "l" - ], - [ - "▁s", - "pect" - ], - [ - "▁sp", - "ect" - ], - [ - "▁spe", - "ct" - ], - [ - "▁spec", - "t" - ], - [ - "▁", - "spect" - ], - [ - "▁re", - "direct" - ], - [ - "▁red", - "irect" - ], - [ - "▁", - "redirect" - ], - [ - "ru", - "pt" - ], - [ - "rup", - "t" - ], - [ - "r", - "upt" - ], - [ - "▁w", - "alk" - ], - [ - "▁wal", - "k" - ], - [ - "▁", - "walk" - ], - [ - "в", - "ши" - ], - [ - "spring", - "framework" - ], - [ - "pl", - "ace" - ], - [ - "pla", - "ce" - ], - [ - "p", - "lace" - ], - [ - "é", - "ho" - ], - [ - "Ent", - "ity" - ], - [ - "▁Ser", - "vice" - ], - [ - "▁Serv", - "ice" - ], - [ - "▁", - "Service" - ], - [ - "in", - "te" - ], - [ - "int", - "e" - ], - [ - "▁tr", - "aining" - ], - [ - "▁tra", - "ining" - ], - [ - "▁train", - "ing" - ], - [ - "▁", - "training" - ], - [ - "▁(", - "`" - ], - [ - "▁", - "(`" - ], - [ - "фо", - "р" - ], - [ - "ф", - "ор" - ], - [ - "▁к", - "ра" - ], - [ - "▁", - "кра" - ], - [ - "au", - "r" - ], - [ - "a", - "ur" - ], - [ - "▁f", - "etch" - ], - [ - "▁fet", - "ch" - ], - [ - "▁", - "fetch" - ], - [ - "▁", - "†" - ], - [ - "▁m", - "ême" - ], - [ - "▁", - "même" - ], - [ - "▁(", - "'" - ], - [ - "▁", - "('" - ], - [ - "at", - "ively" - ], - [ - "ative", - "ly" - ], - [ - "ativ", - "ely" - ], - [ - "▁exec", - "ut" - ], - [ - "ä", - "ch" - ], - [ - "▁Catalog", - "ue" - ], - [ - "ba", - "sed" - ], - [ - "base", - "d" - ], - [ - "bas", - "ed" - ], - [ - "b", - "ased" - ], - [ - "Att", - "ribute" - ], - [ - "▁s", - "pring" - ], - [ - "▁sp", - "ring" - ], - [ - "▁spr", - "ing" - ], - [ - "▁", - "spring" - ], - [ - "ph", - "one" - ], - [ - "phon", - "e" - ], - [ - "т", - "ра" - ], - [ - "▁п", - "и" - ], - [ - "▁", - "пи" - ], - [ - "те", - "ра" - ], - [ - "тер", - "а" - ], - [ - "т", - "ера" - ], - [ - "▁`", - "\\" - ], - [ - "▁O", - "d" - ], - [ - "On", - "e" - ], - [ - "O", - "ne" - ], - [ - "se", - "nd" - ], - [ - "sen", - "d" - ], - [ - "s", - "end" - ], - [ - "bo", - "n" - ], - [ - "b", - "on" - ], - [ - "▁", - "°" - ], - [ - "M", - "O" - ], - [ - "▁as", - "king" - ], - [ - "▁ask", - "ing" - ], - [ - "▁o", - "ù" - ], - [ - "▁ing", - "år" - ], - [ - "▁test", - "ing" - ], - [ - "▁", - "testing" - ], - [ - "▁ф", - "а" - ], - [ - "▁", - "фа" - ], - [ - "▁B", - "ook" - ], - [ - "▁Bo", - "ok" - ], - [ - "▁", - "Book" - ], - [ - "im", - "m" - ], - [ - "i", - "mm" - ], - [ - "▁pro", - "gress" - ], - [ - "▁", - "progress" - ], - [ - "br", - "o" - ], - [ - "b", - "ro" - ], - [ - "F", - "irst" - ], - [ - "▁p", - "hot" - ], - [ - "▁ph", - "ot" - ], - [ - "▁O", - "N" - ], - [ - "▁", - "ON" - ], - [ - "Tem", - "plate" - ], - [ - "Temp", - "late" - ], - [ - "develop", - "er" - ], - [ - "an", - "not" - ], - [ - "ann", - "ot" - ], - [ - "anno", - "t" - ], - [ - "▁>", - "=" - ], - [ - "▁", - ">=" - ], - [ - "miss", - "ion" - ], - [ - "m", - "ission" - ], - [ - "▁k", - "tó" - ], - [ - "▁", - "któ" - ], - [ - "p", - "c" - ], - [ - "ba", - "ch" - ], - [ - "b", - "ach" - ], - [ - "ze", - "nt" - ], - [ - "zen", - "t" - ], - [ - "z", - "ent" - ], - [ - "ue", - "d" - ], - [ - "u", - "ed" - ], - [ - "▁o", - "nes" - ], - [ - "▁on", - "es" - ], - [ - "▁one", - "s" - ], - [ - "▁", - "ones" - ], - [ - "ј", - "и" - ], - [ - "▁r", - "out" - ], - [ - "▁ro", - "ut" - ], - [ - "▁rou", - "t" - ], - [ - "▁", - "rout" - ], - [ - "▁К", - "и" - ], - [ - "Pos", - "t" - ], - [ - "Po", - "st" - ], - [ - "P", - "ost" - ], - [ - "ці", - "ї" - ], - [ - "ц", - "ії" - ], - [ - "▁V", - "ir" - ], - [ - "▁Vi", - "r" - ], - [ - "ne", - "k" - ], - [ - "n", - "ek" - ], - [ - "ag", - "ing" - ], - [ - "agi", - "ng" - ], - [ - "agin", - "g" - ], - [ - "a", - "ging" - ], - [ - "▁о", - "к" - ], - [ - "▁", - "ок" - ], - [ - "iz", - "ont" - ], - [ - "izo", - "nt" - ], - [ - "izon", - "t" - ], - [ - "▁ag", - "osto" - ], - [ - "▁ago", - "sto" - ], - [ - "▁cho", - "ose" - ], - [ - "▁", - "choose" - ], - [ - "▁", - "\r" - ], - [ - "▁system", - "s" - ], - [ - "▁syst", - "ems" - ], - [ - "lo", - "ss" - ], - [ - "los", - "s" - ], - [ - "l", - "oss" - ], - [ - "ien", - "te" - ], - [ - "ient", - "e" - ], - [ - "i", - "ente" - ], - [ - "▁C", - "re" - ], - [ - "▁Cr", - "e" - ], - [ - "▁", - "Cre" - ], - [ - "▁con", - "tra" - ], - [ - "▁cont", - "ra" - ], - [ - "▁contr", - "a" - ], - [ - "▁", - "contra" - ], - [ - "um", - "s" - ], - [ - "u", - "ms" - ], - [ - "▁begin", - "ning" - ], - [ - "em", - "y" - ], - [ - "e", - "my" - ], - [ - "ist", - "ics" - ], - [ - "istic", - "s" - ], - [ - "isti", - "cs" - ], - [ - "▁s", - "erved" - ], - [ - "▁ser", - "ved" - ], - [ - "▁serv", - "ed" - ], - [ - "▁serve", - "d" - ], - [ - "Do", - "wn" - ], - [ - "D", - "own" - ], - [ - "option", - "s" - ], - [ - "opt", - "ions" - ], - [ - "o", - "ptions" - ], - [ - "▁G", - "overn" - ], - [ - "▁Go", - "vern" - ], - [ - "▁B", - "Y" - ], - [ - "▁", - "BY" - ], - [ - "▁j", - "est" - ], - [ - "▁je", - "st" - ], - [ - "▁", - "jest" - ], - [ - "t", - "é" - ], - [ - "▁cont", - "inue" - ], - [ - "▁contin", - "ue" - ], - [ - "▁continu", - "e" - ], - [ - "▁", - "continue" - ], - [ - "pe", - "rs" - ], - [ - "per", - "s" - ], - [ - "p", - "ers" - ], - [ - "▁eas", - "ier" - ], - [ - "▁c", - "os" - ], - [ - "▁co", - "s" - ], - [ - "▁", - "cos" - ], - [ - "es", - "so" - ], - [ - "ess", - "o" - ], - [ - ">", - ">" - ], - [ - "Ne", - "t" - ], - [ - "N", - "et" - ], - [ - "▁B", - "or" - ], - [ - "▁Bo", - "r" - ], - [ - "▁C", - "r" - ], - [ - "▁", - "Cr" - ], - [ - "▁trans", - "fer" - ], - [ - "▁C", - "SS" - ], - [ - "▁CS", - "S" - ], - [ - "▁", - "CSS" - ], - [ - "▁fin", - "ns" - ], - [ - "▁х", - "о" - ], - [ - "▁", - "хо" - ], - [ - "us", - "ername" - ], - [ - "user", - "name" - ], - [ - "▁con", - "stru" - ], - [ - "▁const", - "ru" - ], - [ - "▁p", - "ain" - ], - [ - "▁pa", - "in" - ], - [ - "▁T", - "em" - ], - [ - "▁Te", - "m" - ], - [ - "▁", - "Tem" - ], - [ - "▁spec", - "ified" - ], - [ - "▁b", - "rit" - ], - [ - "▁br", - "it" - ], - [ - "▁", - "brit" - ], - [ - "ски", - "е" - ], - [ - "с", - "кие" - ], - [ - "ir", - "k" - ], - [ - "ra", - "pper" - ], - [ - "rap", - "per" - ], - [ - "r", - "apper" - ], - [ - "▁c", - "ounter" - ], - [ - "▁co", - "unter" - ], - [ - "▁count", - "er" - ], - [ - "▁coun", - "ter" - ], - [ - "▁", - "counter" - ], - [ - "▁[", - "\"" - ], - [ - "▁", - "[\"" - ], - [ - "ode", - "d" - ], - [ - "od", - "ed" - ], - [ - "o", - "ded" - ], - [ - "да", - "н" - ], - [ - "д", - "ан" - ], - [ - "pro", - "perty" - ], - [ - "ha", - "rd" - ], - [ - "har", - "d" - ], - [ - "h", - "ard" - ], - [ - "ist", - "rict" - ], - [ - "istr", - "ict" - ], - [ - ")", - "/" - ], - [ - "▁P", - "our" - ], - [ - "▁Po", - "ur" - ], - [ - "▁W", - "here" - ], - [ - "▁Wh", - "ere" - ], - [ - "▁Whe", - "re" - ], - [ - "▁", - "Where" - ], - [ - "▁=", - "==" - ], - [ - "▁==", - "=" - ], - [ - "▁", - "===" - ], - [ - "▁s", - "owie" - ], - [ - "▁so", - "wie" - ], - [ - "▁sow", - "ie" - ], - [ - "▁П", - "ро" - ], - [ - "▁d", - "ess" - ], - [ - "▁de", - "ss" - ], - [ - "▁des", - "s" - ], - [ - "▁", - "dess" - ], - [ - "▁t", - "ras" - ], - [ - "▁tr", - "as" - ], - [ - "▁tra", - "s" - ], - [ - "▁", - "tras" - ], - [ - "▁у", - "ча" - ], - [ - "▁O", - "ver" - ], - [ - "▁", - "Over" - ], - [ - "no", - "te" - ], - [ - "not", - "e" - ], - [ - "n", - "ote" - ], - [ - "▁Amer", - "ica" - ], - [ - "▁", - "America" - ], - [ - "c", - "p" - ], - [ - "▁gr", - "ande" - ], - [ - "▁gra", - "nde" - ], - [ - "▁gran", - "de" - ], - [ - "▁grand", - "e" - ], - [ - "M", - "e" - ], - [ - ")", - "-" - ], - [ - "Mod", - "e" - ], - [ - "Mo", - "de" - ], - [ - "M", - "ode" - ], - [ - "▁pass", - "ing" - ], - [ - "▁pas", - "sing" - ], - [ - "▁g", - "iving" - ], - [ - "▁giv", - "ing" - ], - [ - "▁gi", - "ving" - ], - [ - "C", - "l" - ], - [ - "}", - "/" - ], - [ - "Me", - "nu" - ], - [ - "Men", - "u" - ], - [ - "M", - "enu" - ], - [ - "!", - "!" - ], - [ - "ang", - "ular" - ], - [ - "angu", - "lar" - ], - [ - "▁la", - "unch" - ], - [ - "▁", - "launch" - ], - [ - "var", - "phi" - ], - [ - "▁Joh", - "ann" - ], - [ - "▁Johan", - "n" - ], - [ - "▁for", - "each" - ], - [ - "▁fore", - "ach" - ], - [ - "▁", - "foreach" - ], - [ - "r", - "ó" - ], - [ - "se", - "qu" - ], - [ - "seq", - "u" - ], - [ - "s", - "equ" - ], - [ - "if", - "i" - ], - [ - "i", - "fi" - ], - [ - "A", - "m" - ], - [ - "ar", - "p" - ], - [ - "a", - "rp" - ], - [ - "▁b", - "uffer" - ], - [ - "▁buf", - "fer" - ], - [ - "▁buff", - "er" - ], - [ - "▁", - "buffer" - ], - [ - "▁n", - "i" - ], - [ - "▁", - "ni" - ], - [ - "▁m", - "ix" - ], - [ - "▁mi", - "x" - ], - [ - "▁", - "mix" - ], - [ - "▁M", - "useum" - ], - [ - "▁Muse", - "um" - ], - [ - "▁me", - "ant" - ], - [ - "▁mean", - "t" - ], - [ - "as", - "i" - ], - [ - "a", - "si" - ], - [ - "▁k", - "an" - ], - [ - "▁ka", - "n" - ], - [ - "▁", - "kan" - ], - [ - "пра", - "в" - ], - [ - "п", - "рав" - ], - [ - "Com", - "p" - ], - [ - "Co", - "mp" - ], - [ - "C", - "omp" - ], - [ - "is", - "toire" - ], - [ - "ist", - "oire" - ], - [ - "isto", - "ire" - ], - [ - "if", - "ul" - ], - [ - "i", - "ful" - ], - [ - "je", - "r" - ], - [ - "j", - "er" - ], - [ - "iss", - "ions" - ], - [ - "ission", - "s" - ], - [ - "Re", - "source" - ], - [ - "Res", - "ource" - ], - [ - "▁в", - "оз" - ], - [ - "▁во", - "з" - ], - [ - "▁S", - "T" - ], - [ - "▁", - "ST" - ], - [ - "▁sol", - "utions" - ], - [ - "▁solution", - "s" - ], - [ - "▁be", - "long" - ], - [ - "▁bel", - "ong" - ], - [ - "▁As", - "soci" - ], - [ - "▁Ass", - "oci" - ], - [ - "▁", - "Associ" - ], - [ - "c", - "f" - ], - [ - "▁M", - "är" - ], - [ - "▁g", - "rid" - ], - [ - "▁gr", - "id" - ], - [ - "▁", - "grid" - ], - [ - "M", - "ult" - ], - [ - "▁require", - "s" - ], - [ - "▁requ", - "ires" - ], - [ - "k", - "k" - ], - [ - "▁t", - "each" - ], - [ - "▁te", - "ach" - ], - [ - "▁tea", - "ch" - ], - [ - "eme", - "inde" - ], - [ - "emein", - "de" - ], - [ - "▁s", - "quare" - ], - [ - "▁squ", - "are" - ], - [ - "▁", - "square" - ], - [ - "▁ко", - "ман" - ], - [ - "▁ком", - "ан" - ], - [ - "▁E", - "vent" - ], - [ - "▁Ev", - "ent" - ], - [ - "▁Even", - "t" - ], - [ - "▁", - "Event" - ], - [ - "▁r", - "ules" - ], - [ - "▁rule", - "s" - ], - [ - "▁ru", - "les" - ], - [ - "▁", - "rules" - ], - [ - "▁b", - "ur" - ], - [ - "▁bu", - "r" - ], - [ - "▁", - "bur" - ], - [ - "▁e", - "ing" - ], - [ - "▁ein", - "g" - ], - [ - "▁", - "eing" - ], - [ - "▁M", - "ai" - ], - [ - "▁Ma", - "i" - ], - [ - "▁n", - "am" - ], - [ - "▁na", - "m" - ], - [ - "▁", - "nam" - ], - [ - "▁s", - "lä" - ], - [ - "▁sl", - "ä" - ], - [ - "hö", - "r" - ], - [ - "h", - "ör" - ], - [ - "▁t", - "ip" - ], - [ - "▁ti", - "p" - ], - [ - "▁", - "tip" - ], - [ - "▁Liter", - "atur" - ], - [ - "▁s", - "cope" - ], - [ - "▁sc", - "ope" - ], - [ - "▁scop", - "e" - ], - [ - "▁", - "scope" - ], - [ - "over", - "line" - ], - [ - "▁ex", - "it" - ], - [ - "▁", - "exit" - ], - [ - ")", - "?" - ], - [ - "be", - "t" - ], - [ - "b", - "et" - ], - [ - "▁v", - "ict" - ], - [ - "▁vi", - "ct" - ], - [ - "▁vic", - "t" - ], - [ - "Of", - "f" - ], - [ - "O", - "ff" - ], - [ - "▁appro", - "xim" - ], - [ - "▁G", - "eb" - ], - [ - "▁Ge", - "b" - ], - [ - "kt", - "op" - ], - [ - "k", - "top" - ], - [ - "he", - "it" - ], - [ - "▁", - "Ю" - ], - [ - "tem", - "plate" - ], - [ - "temp", - "late" - ], - [ - "ро", - "н" - ], - [ - "р", - "он" - ], - [ - "▁u", - "no" - ], - [ - "▁un", - "o" - ], - [ - "▁", - "uno" - ], - [ - "Ser", - "v" - ], - [ - "Se", - "rv" - ], - [ - "S", - "erv" - ], - [ - "▁frame", - "work" - ], - [ - "▁", - "framework" - ], - [ - "oper", - "ator" - ], - [ - "opera", - "tor" - ], - [ - "▁gener", - "ally" - ], - [ - "▁general", - "ly" - ], - [ - "▁h", - "undred" - ], - [ - "▁d", - "ivers" - ], - [ - "▁di", - "vers" - ], - [ - "▁div", - "ers" - ], - [ - "▁diver", - "s" - ], - [ - "ov", - "i" - ], - [ - "o", - "vi" - ], - [ - "▁r", - "és" - ], - [ - "▁ré", - "s" - ], - [ - "▁", - "rés" - ], - [ - "ab", - "s" - ], - [ - "a", - "bs" - ], - [ - "▁g", - "al" - ], - [ - "▁ga", - "l" - ], - [ - "▁", - "gal" - ], - [ - "ça", - "is" - ], - [ - "ç", - "ais" - ], - [ - "▁fe", - "et" - ], - [ - "▁fee", - "t" - ], - [ - "▁v", - "irtual" - ], - [ - "▁virt", - "ual" - ], - [ - "▁", - "virtual" - ], - [ - "cz", - "y" - ], - [ - "c", - "zy" - ], - [ - "ск", - "у" - ], - [ - "с", - "ку" - ], - [ - ".", - "/" - ], - [ - "h", - "u" - ], - [ - "an", - "cy" - ], - [ - "anc", - "y" - ], - [ - "▁recomm", - "end" - ], - [ - "▁п", - "ід" - ], - [ - "▁пі", - "д" - ], - [ - "▁m", - "oney" - ], - [ - "▁mon", - "ey" - ], - [ - "▁mo", - "ney" - ], - [ - "▁vers", - "ions" - ], - [ - "▁version", - "s" - ], - [ - "▁", - "versions" - ], - [ - "▁hel", - "ps" - ], - [ - "▁help", - "s" - ], - [ - "▁H", - "or" - ], - [ - "▁Ho", - "r" - ], - [ - "▁", - "Hor" - ], - [ - "Item", - "s" - ], - [ - "It", - "ems" - ], - [ - "lo", - "ok" - ], - [ - "l", - "ook" - ], - [ - "con", - "nect" - ], - [ - "conne", - "ct" - ], - [ - "conn", - "ect" - ], - [ - "an", - "ges" - ], - [ - "ang", - "es" - ], - [ - "ange", - "s" - ], - [ - "View", - "Controller" - ], - [ - "el", - "ijk" - ], - [ - "elij", - "k" - ], - [ - "eli", - "jk" - ], - [ - "e", - "lijk" - ], - [ - "▁occ", - "up" - ], - [ - "▁oc", - "cup" - ], - [ - "▁", - "occup" - ], - [ - "▁ed", - "itor" - ], - [ - "▁edit", - "or" - ], - [ - "▁", - "editor" - ], - [ - "au", - "to" - ], - [ - "aut", - "o" - ], - [ - "a", - "uto" - ], - [ - "ö", - "g" - ], - [ - "▁second", - "s" - ], - [ - "▁sec", - "onds" - ], - [ - "▁", - "seconds" - ], - [ - "▁ob", - "vious" - ], - [ - "v", - "m" - ], - [ - "ak", - "es" - ], - [ - "ake", - "s" - ], - [ - "a", - "kes" - ], - [ - "▁g", - "egen" - ], - [ - "▁ge", - "gen" - ], - [ - "▁geg", - "en" - ], - [ - "▁t", - "il" - ], - [ - "▁ti", - "l" - ], - [ - "▁", - "til" - ], - [ - "ject", - "ion" - ], - [ - "je", - "ction" - ], - [ - "j", - "ection" - ], - [ - "ле", - "ння" - ], - [ - "лен", - "ня" - ], - [ - "▁oper", - "ations" - ], - [ - "▁operation", - "s" - ], - [ - "▁E", - "ast" - ], - [ - "og", - "y" - ], - [ - "o", - "gy" - ], - [ - "▁P", - "olit" - ], - [ - "▁Pol", - "it" - ], - [ - "▁Po", - "lit" - ], - [ - "ut", - "en" - ], - [ - "ute", - "n" - ], - [ - "u", - "ten" - ], - [ - "▁Jose", - "ph" - ], - [ - "\"", - "`" - ], - [ - "▁Comp", - "any" - ], - [ - "▁", - "Company" - ], - [ - "▁call", - "back" - ], - [ - "▁", - "callback" - ], - [ - "▁s", - "en" - ], - [ - "▁se", - "n" - ], - [ - "▁", - "sen" - ], - [ - "cc", - "ión" - ], - [ - "cció", - "n" - ], - [ - "c", - "ción" - ], - [ - "▁associ", - "ated" - ], - [ - "▁associate", - "d" - ], - [ - "▁cont", - "aining" - ], - [ - "▁contain", - "ing" - ], - [ - "▁pract", - "ice" - ], - [ - "elij", - "ke" - ], - [ - "elijk", - "e" - ], - [ - "e", - "lijke" - ], - [ - "ok", - "e" - ], - [ - "o", - "ke" - ], - [ - "ér", - "a" - ], - [ - "é", - "ra" - ], - [ - "un", - "s" - ], - [ - "u", - "ns" - ], - [ - "an", - "ta" - ], - [ - "ant", - "a" - ], - [ - "ve", - "y" - ], - [ - "v", - "ey" - ], - [ - "z", - "u" - ], - [ - "▁B", - "es" - ], - [ - "▁Be", - "s" - ], - [ - "▁F", - "lor" - ], - [ - "▁Fl", - "or" - ], - [ - "▁Flo", - "r" - ], - [ - "me", - "m" - ], - [ - "m", - "em" - ], - [ - "yc", - "z" - ], - [ - "y", - "cz" - ], - [ - "▁arch", - "itect" - ], - [ - "▁an", - "ni" - ], - [ - "▁ann", - "i" - ], - [ - "▁", - "anni" - ], - [ - "▁cont", - "act" - ], - [ - "▁", - "contact" - ], - [ - "Y", - "PE" - ], - [ - "▁C", - "as" - ], - [ - "▁Ca", - "s" - ], - [ - "▁по", - "лу" - ], - [ - "▁пол", - "у" - ], - [ - "ov", - "o" - ], - [ - "o", - "vo" - ], - [ - "▁b", - "ring" - ], - [ - "▁br", - "ing" - ], - [ - "▁con", - "cept" - ], - [ - "▁conce", - "pt" - ], - [ - "▁j", - "s" - ], - [ - "▁", - "js" - ], - [ - "▁Refer", - "encias" - ], - [ - "em", - "ble" - ], - [ - "emb", - "le" - ], - [ - "embl", - "e" - ], - [ - "▁", - "н" - ], - [ - "▁supp", - "orted" - ], - [ - "▁support", - "ed" - ], - [ - "▁", - "supported" - ], - [ - "Bi", - "g" - ], - [ - "B", - "ig" - ], - [ - "▁H", - "ans" - ], - [ - "▁Ha", - "ns" - ], - [ - "▁Han", - "s" - ], - [ - "er", - "v" - ], - [ - "e", - "rv" - ], - [ - "▁M", - "aj" - ], - [ - "▁Ma", - "j" - ], - [ - "▁ar", - "riv" - ], - [ - "▁arr", - "iv" - ], - [ - "▁H", - "ave" - ], - [ - "▁Ha", - "ve" - ], - [ - "▁Hav", - "e" - ], - [ - "▁", - "Have" - ], - [ - "▁prob", - "ability" - ], - [ - "▁probabil", - "ity" - ], - [ - "▁P", - "op" - ], - [ - "▁Po", - "p" - ], - [ - "▁", - "Pop" - ], - [ - "▁P", - "ass" - ], - [ - "▁Pa", - "ss" - ], - [ - "▁Pas", - "s" - ], - [ - "▁", - "Pass" - ], - [ - "to", - "ken" - ], - [ - "tok", - "en" - ], - [ - "t", - "oken" - ], - [ - "Pro", - "vider" - ], - [ - "▁R", - "a" - ], - [ - "Re", - "ader" - ], - [ - "Read", - "er" - ], - [ - "oot", - "h" - ], - [ - "oo", - "th" - ], - [ - "o", - "oth" - ], - [ - "la", - "p" - ], - [ - "l", - "ap" - ], - [ - "▁ass", - "ist" - ], - [ - "ad", - "ow" - ], - [ - "ado", - "w" - ], - [ - "▁t", - "ests" - ], - [ - "▁test", - "s" - ], - [ - "▁", - "tests" - ], - [ - "сс", - "и" - ], - [ - "с", - "си" - ], - [ - "▁k", - "ing" - ], - [ - "▁ki", - "ng" - ], - [ - "▁kin", - "g" - ], - [ - "▁", - "king" - ], - [ - "lang", - "le" - ], - [ - "lan", - "gle" - ], - [ - "l", - "angle" - ], - [ - "▁S", - "um" - ], - [ - "▁Su", - "m" - ], - [ - "▁", - "Sum" - ], - [ - "O", - "IN" - ], - [ - "▁se", - "curity" - ], - [ - "▁sec", - "urity" - ], - [ - "▁", - "security" - ], - [ - "ni", - "s" - ], - [ - "n", - "is" - ], - [ - "..", - "/" - ], - [ - ".", - "./" - ], - [ - "▁bas", - "ic" - ], - [ - "▁", - "basic" - ], - [ - "un", - "ity" - ], - [ - "uni", - "ty" - ], - [ - "unit", - "y" - ], - [ - "`", - ":" - ], - [ - "▁ко", - "то" - ], - [ - "ko", - "w" - ], - [ - "k", - "ow" - ], - [ - "▁Bibli", - "othèque" - ], - [ - "as", - "ion" - ], - [ - "asi", - "on" - ], - [ - "al", - "o" - ], - [ - "a", - "lo" - ], - [ - "if", - "est" - ], - [ - "ife", - "st" - ], - [ - "i", - "fest" - ], - [ - "▁nov", - "embre" - ], - [ - "▁p", - "eu" - ], - [ - "▁pe", - "u" - ], - [ - "▁", - "Ж" - ], - [ - "en", - "schaft" - ], - [ - "ensch", - "aft" - ], - [ - "cl", - "us" - ], - [ - "c", - "lus" - ], - [ - "ј", - "у" - ], - [ - "He", - "ight" - ], - [ - "ú", - "n" - ], - [ - "▁t", - "ur" - ], - [ - "▁tu", - "r" - ], - [ - "▁ide", - "as" - ], - [ - "▁idea", - "s" - ], - [ - "▁c", - "es" - ], - [ - "▁ce", - "s" - ], - [ - "▁", - "ces" - ], - [ - "fr", - "ak" - ], - [ - "fra", - "k" - ], - [ - "f", - "rak" - ], - [ - "▁pre", - "mier" - ], - [ - "▁prem", - "ier" - ], - [ - "▁premi", - "er" - ], - [ - "it", - "ation" - ], - [ - "ita", - "tion" - ], - [ - "itat", - "ion" - ], - [ - "▁s", - "é" - ], - [ - "HT", - "ML" - ], - [ - "▁Ro", - "yal" - ], - [ - "▁Roy", - "al" - ], - [ - "сь", - "кої" - ], - [ - "сько", - "ї" - ], - [ - "▁by", - "te" - ], - [ - "▁", - "byte" - ], - [ - "P", - "S" - ], - [ - "▁s", - "egu" - ], - [ - "▁se", - "gu" - ], - [ - "▁seg", - "u" - ], - [ - "▁", - "segu" - ], - [ - "in", - "en" - ], - [ - "ine", - "n" - ], - [ - "i", - "nen" - ], - [ - "▁Gre", - "at" - ], - [ - "▁К", - "у" - ], - [ - "▁ex", - "ternal" - ], - [ - "▁ext", - "ernal" - ], - [ - "▁extern", - "al" - ], - [ - "▁", - "external" - ], - [ - "T", - "itle" - ], - [ - "To", - "p" - ], - [ - "T", - "op" - ], - [ - "Pro", - "cess" - ], - [ - "Proc", - "ess" - ], - [ - "it", - "ät" - ], - [ - "itä", - "t" - ], - [ - "▁`", - "/" - ], - [ - "▁se", - "cret" - ], - [ - "▁sec", - "ret" - ], - [ - "▁secre", - "t" - ], - [ - "▁", - "secret" - ], - [ - "pos", - "itory" - ], - [ - "▁pot", - "ential" - ], - [ - "▁B", - "ud" - ], - [ - "▁Bu", - "d" - ], - [ - "name", - "s" - ], - [ - "na", - "mes" - ], - [ - "nam", - "es" - ], - [ - "n", - "ames" - ], - [ - "as", - "ons" - ], - [ - "ason", - "s" - ], - [ - "aso", - "ns" - ], - [ - "stack", - "exchange" - ], - [ - "back", - "ground" - ], - [ - "пе", - "р" - ], - [ - "п", - "ер" - ], - [ - "со", - "в" - ], - [ - "с", - "ов" - ], - [ - "aft", - "er" - ], - [ - "af", - "ter" - ], - [ - "a", - "fter" - ], - [ - "▁p", - "ero" - ], - [ - "▁per", - "o" - ], - [ - "▁pe", - "ro" - ], - [ - "▁so", - "ftware" - ], - [ - "▁soft", - "ware" - ], - [ - "▁", - "software" - ], - [ - "▁s", - "ed" - ], - [ - "▁se", - "d" - ], - [ - "▁", - "sed" - ], - [ - "▁array", - "s" - ], - [ - "▁arr", - "ays" - ], - [ - "tm", - "p" - ], - [ - "t", - "mp" - ], - [ - "▁a", - "sp" - ], - [ - "▁as", - "p" - ], - [ - "▁", - "asp" - ], - [ - "sc", - "ale" - ], - [ - "scal", - "e" - ], - [ - "▁L", - "at" - ], - [ - "▁La", - "t" - ], - [ - "▁", - "Lat" - ], - [ - "an", - "al" - ], - [ - "ana", - "l" - ], - [ - "a", - "nal" - ], - [ - "▁g", - "em" - ], - [ - "▁ge", - "m" - ], - [ - "▁", - "gem" - ], - [ - "P", - "U" - ], - [ - "▁Al", - "tri" - ], - [ - "▁Alt", - "ri" - ], - [ - "Th", - "at" - ], - [ - "T", - "hat" - ], - [ - "▁Н", - "и" - ], - [ - "if", - "act" - ], - [ - "ifa", - "ct" - ], - [ - "i", - "fact" - ], - [ - "Add", - "ress" - ], - [ - "▁s", - "outh" - ], - [ - "▁so", - "uth" - ], - [ - "▁sou", - "th" - ], - [ - "▁sout", - "h" - ], - [ - "▁form", - "ula" - ], - [ - "▁Col", - "leg" - ], - [ - "▁Coll", - "eg" - ], - [ - "▁і", - "н" - ], - [ - "▁", - "ін" - ], - [ - "kt", - "ion" - ], - [ - "k", - "tion" - ], - [ - "▁s", - "ac" - ], - [ - "▁sa", - "c" - ], - [ - "S", - "H" - ], - [ - "aj", - "o" - ], - [ - "a", - "jo" - ], - [ - "et", - "c" - ], - [ - "e", - "tc" - ], - [ - "v", - "c" - ], - [ - "`", - "](" - ], - [ - "▁D", - "ur" - ], - [ - "▁Du", - "r" - ], - [ - "▁М", - "е" - ], - [ - "▁Sm", - "ith" - ], - [ - "▁", - "Smith" - ], - [ - "it", - "ems" - ], - [ - "ite", - "ms" - ], - [ - "item", - "s" - ], - [ - "C", - "K" - ], - [ - "el", - "o" - ], - [ - "e", - "lo" - ], - [ - "▁pl", - "ugin" - ], - [ - "▁plug", - "in" - ], - [ - "▁", - "plugin" - ], - [ - "▁s", - "erie" - ], - [ - "▁se", - "rie" - ], - [ - "▁ser", - "ie" - ], - [ - "▁", - "serie" - ], - [ - "ien", - "ne" - ], - [ - "ienn", - "e" - ], - [ - "i", - "enne" - ], - [ - "▁и", - "ли" - ], - [ - "Ma", - "r" - ], - [ - "M", - "ar" - ], - [ - "▁Im", - "age" - ], - [ - "▁", - "Image" - ], - [ - "go", - "t" - ], - [ - "g", - "ot" - ], - [ - "an", - "das" - ], - [ - "and", - "as" - ], - [ - "anda", - "s" - ], - [ - "▁mat", - "ches" - ], - [ - "▁match", - "es" - ], - [ - "▁", - "matches" - ], - [ - "▁w", - "orth" - ], - [ - "▁wor", - "th" - ], - [ - "▁", - "worth" - ], - [ - "▁D", - "eb" - ], - [ - "▁De", - "b" - ], - [ - "▁", - "Deb" - ], - [ - "▁c", - "ache" - ], - [ - "▁ca", - "che" - ], - [ - "▁", - "cache" - ], - [ - "▁f", - "elt" - ], - [ - "▁fe", - "lt" - ], - [ - "▁fel", - "t" - ], - [ - "er", - "sch" - ], - [ - "ers", - "ch" - ], - [ - "iz", - "es" - ], - [ - "ize", - "s" - ], - [ - "i", - "zes" - ], - [ - "Op", - "er" - ], - [ - "O", - "per" - ], - [ - "▁Jah", - "re" - ], - [ - "▁Jahr", - "e" - ], - [ - "▁Ja", - "hre" - ], - [ - "▁comm", - "une" - ], - [ - "▁commun", - "e" - ], - [ - "th", - "read" - ], - [ - "▁n", - "y" - ], - [ - "▁", - "ny" - ], - [ - "de", - "c" - ], - [ - "d", - "ec" - ], - [ - "ou", - "w" - ], - [ - "o", - "uw" - ], - [ - "▁sur", - "face" - ], - [ - "▁P", - "or" - ], - [ - "▁Po", - "r" - ], - [ - "▁St", - "reet" - ], - [ - "▁Stre", - "et" - ], - [ - "пр", - "и" - ], - [ - "п", - "ри" - ], - [ - "▁c", - "andid" - ], - [ - "▁can", - "did" - ], - [ - "▁cand", - "id" - ], - [ - "▁Re", - "turn" - ], - [ - "▁Ret", - "urn" - ], - [ - "▁", - "Return" - ], - [ - "▁K", - "om" - ], - [ - "▁Ko", - "m" - ], - [ - "gr", - "u" - ], - [ - "g", - "ru" - ], - [ - "▁т", - "и" - ], - [ - "▁", - "ти" - ], - [ - "[", - "\\" - ], - [ - "▁dep", - "ends" - ], - [ - "▁depend", - "s" - ], - [ - "▁in", - "flu" - ], - [ - "▁inf", - "lu" - ], - [ - "▁infl", - "u" - ], - [ - "▁to", - "wards" - ], - [ - "▁toward", - "s" - ], - [ - "ain", - "ed" - ], - [ - "ai", - "ned" - ], - [ - "aine", - "d" - ], - [ - "a", - "ined" - ], - [ - "▁r", - "ank" - ], - [ - "▁ran", - "k" - ], - [ - "▁", - "rank" - ], - [ - "▁Janu", - "ar" - ], - [ - "▁com", - "ponents" - ], - [ - "▁compon", - "ents" - ], - [ - "▁component", - "s" - ], - [ - "▁", - "components" - ], - [ - "ge", - "st" - ], - [ - "ges", - "t" - ], - [ - "g", - "est" - ], - [ - "getElement", - "ById" - ], - [ - "▁check", - "ed" - ], - [ - "▁", - "checked" - ], - [ - "air", - "s" - ], - [ - "ai", - "rs" - ], - [ - "a", - "irs" - ], - [ - "jo", - "in" - ], - [ - "j", - "oin" - ], - [ - "▁d", - "ead" - ], - [ - "▁de", - "ad" - ], - [ - "▁h", - "it" - ], - [ - "▁hi", - "t" - ], - [ - "▁", - "hit" - ], - [ - "én", - "y" - ], - [ - "é", - "ny" - ], - [ - "▁equ", - "ivalent" - ], - [ - "▁equival", - "ent" - ], - [ - "▁П", - "ре" - ], - [ - "▁app", - "ropri" - ], - [ - "Pa", - "ss" - ], - [ - "P", - "ass" - ], - [ - "▁pr", - "imer" - ], - [ - "▁prim", - "er" - ], - [ - "▁pri", - "mer" - ], - [ - "▁prime", - "r" - ], - [ - "engl", - "isch" - ], - [ - "▁app", - "ar" - ], - [ - "▁ap", - "par" - ], - [ - "▁D", - "uring" - ], - [ - "▁Du", - "ring" - ], - [ - "▁Dur", - "ing" - ], - [ - "▁know", - "ledge" - ], - [ - "▁tr", - "igger" - ], - [ - "▁trig", - "ger" - ], - [ - "▁", - "trigger" - ], - [ - "▁c", - "ore" - ], - [ - "▁cor", - "e" - ], - [ - "▁co", - "re" - ], - [ - "▁", - "core" - ], - [ - "▁O", - "l" - ], - [ - "▁P", - "rodu" - ], - [ - "▁Pro", - "du" - ], - [ - "▁Pr", - "odu" - ], - [ - "▁", - "Produ" - ], - [ - "▁F", - "ern" - ], - [ - "▁Fe", - "rn" - ], - [ - "▁Fer", - "n" - ], - [ - "▁", - "Fern" - ], - [ - "▁на", - "ча" - ], - [ - "▁", - "нача" - ], - [ - "T", - "e" - ], - [ - "▁M", - "ot" - ], - [ - "▁Mo", - "t" - ], - [ - "er", - "ve" - ], - [ - "erv", - "e" - ], - [ - "тв", - "о" - ], - [ - "т", - "во" - ], - [ - "▁m", - "id" - ], - [ - "▁mi", - "d" - ], - [ - "▁", - "mid" - ], - [ - "▁fin", - "ally" - ], - [ - "▁final", - "ly" - ], - [ - "air", - "es" - ], - [ - "ai", - "res" - ], - [ - "aire", - "s" - ], - [ - "a", - "ires" - ], - [ - "▁es", - "pecially" - ], - [ - "▁espe", - "cially" - ], - [ - "▁especial", - "ly" - ], - [ - "▁t", - "ut" - ], - [ - "▁tu", - "t" - ], - [ - "▁rece", - "ive" - ], - [ - "ad", - "re" - ], - [ - "adr", - "e" - ], - [ - "▁ne", - "igh" - ], - [ - "▁nei", - "gh" - ], - [ - "kt", - "et" - ], - [ - "kte", - "t" - ], - [ - "il", - "de" - ], - [ - "ild", - "e" - ], - [ - "▁rad", - "io" - ], - [ - "▁radi", - "o" - ], - [ - "▁", - "radio" - ], - [ - "▁d", - "river" - ], - [ - "▁dr", - "iver" - ], - [ - "▁drive", - "r" - ], - [ - "▁dri", - "ver" - ], - [ - "▁driv", - "er" - ], - [ - "▁", - "driver" - ], - [ - "ли", - "сь" - ], - [ - "end", - "encies" - ], - [ - "enden", - "cies" - ], - [ - "▁I", - "E" - ], - [ - "▁", - "IE" - ], - [ - "▁s", - "aved" - ], - [ - "▁sa", - "ved" - ], - [ - "▁sav", - "ed" - ], - [ - "▁save", - "d" - ], - [ - "▁", - "saved" - ], - [ - "ff", - "ect" - ], - [ - "ffe", - "ct" - ], - [ - "f", - "fect" - ], - [ - "▁Way", - "back" - ], - [ - "ia", - "t" - ], - [ - "i", - "at" - ], - [ - "▁p", - "adding" - ], - [ - "▁pad", - "ding" - ], - [ - "▁", - "padding" - ], - [ - "wind", - "ow" - ], - [ - "w", - "indow" - ], - [ - "ти", - "че" - ], - [ - "▁m", - "ur" - ], - [ - "▁mu", - "r" - ], - [ - "ac", - "tor" - ], - [ - "act", - "or" - ], - [ - "a", - "ctor" - ], - [ - "▁H", - "an" - ], - [ - "▁Ha", - "n" - ], - [ - "он", - "аль" - ], - [ - "она", - "ль" - ], - [ - "о", - "наль" - ], - [ - "▁g", - "ar" - ], - [ - "▁ga", - "r" - ], - [ - "▁", - "gar" - ], - [ - "▁famil", - "jen" - ], - [ - "ó", - "s" - ], - [ - "▁n", - "ationale" - ], - [ - "▁national", - "e" - ], - [ - "▁nation", - "ale" - ], - [ - "▁nat", - "ionale" - ], - [ - "▁p", - "ré" - ], - [ - "▁pr", - "é" - ], - [ - "de", - "d" - ], - [ - "d", - "ed" - ], - [ - "on", - "al" - ], - [ - "ona", - "l" - ], - [ - "o", - "nal" - ], - [ - "▁Pres", - "ident" - ], - [ - "▁\\", - "," - ], - [ - "▁", - "\\," - ], - [ - "▁place", - "d" - ], - [ - "▁pla", - "ced" - ], - [ - "er", - "ni" - ], - [ - "ern", - "i" - ], - [ - "▁sign", - "al" - ], - [ - "▁sig", - "nal" - ], - [ - "▁", - "signal" - ], - [ - "na", - "b" - ], - [ - "n", - "ab" - ], - [ - "h", - "m" - ], - [ - "Mo", - "n" - ], - [ - "M", - "on" - ], - [ - "▁v", - "s" - ], - [ - "▁", - "vs" - ], - [ - "S", - "C" - ], - [ - "▁proget", - "ti" - ], - [ - "▁", - "Ü" - ], - [ - "▁for", - "ms" - ], - [ - "▁form", - "s" - ], - [ - "▁", - "forms" - ], - [ - "▁message", - "s" - ], - [ - "▁mess", - "ages" - ], - [ - "▁", - "messages" - ], - [ - "in", - "f" - ], - [ - "us", - "ers" - ], - [ - "use", - "rs" - ], - [ - "user", - "s" - ], - [ - "u", - "sers" - ], - [ - "GE", - "T" - ], - [ - "G", - "ET" - ], - [ - "▁d", - "els" - ], - [ - "▁de", - "ls" - ], - [ - "▁del", - "s" - ], - [ - "Col", - "lection" - ], - [ - "Coll", - "ection" - ], - [ - "Collect", - "ion" - ], - [ - "▁G", - "ood" - ], - [ - "▁Go", - "od" - ], - [ - "▁", - "Good" - ], - [ - "▁May", - "be" - ], - [ - "▁", - "Maybe" - ], - [ - "▁com", - "pr" - ], - [ - "▁comp", - "r" - ], - [ - "▁lar", - "ger" - ], - [ - "▁large", - "r" - ], - [ - "▁larg", - "er" - ], - [ - "gr", - "es" - ], - [ - "gre", - "s" - ], - [ - "g", - "res" - ], - [ - "ap", - "er" - ], - [ - "ape", - "r" - ], - [ - "a", - "per" - ], - [ - "▁П", - "ри" - ], - [ - "un", - "des" - ], - [ - "und", - "es" - ], - [ - "unde", - "s" - ], - [ - "▁s", - "ea" - ], - [ - "▁se", - "a" - ], - [ - "▁S", - "pring" - ], - [ - "▁Sp", - "ring" - ], - [ - "▁Spr", - "ing" - ], - [ - "▁", - "Spring" - ], - [ - "ul", - "o" - ], - [ - "u", - "lo" - ], - [ - "▁me", - "chan" - ], - [ - "▁s", - "ans" - ], - [ - "▁sa", - "ns" - ], - [ - "▁san", - "s" - ], - [ - "G", - "B" - ], - [ - "Val", - "id" - ], - [ - "▁comm", - "unic" - ], - [ - "▁commun", - "ic" - ], - [ - "▁", - "communic" - ], - [ - "▁p", - "ra" - ], - [ - "▁pr", - "a" - ], - [ - "vi", - "er" - ], - [ - "vie", - "r" - ], - [ - "v", - "ier" - ], - [ - "▁С", - "е" - ], - [ - "▁a", - "in" - ], - [ - "▁ai", - "n" - ], - [ - "▁", - "ain" - ], - [ - "ту", - "ра" - ], - [ - "тур", - "а" - ], - [ - "ko", - "m" - ], - [ - "k", - "om" - ], - [ - "sk", - "iego" - ], - [ - "ski", - "ego" - ], - [ - "skie", - "go" - ], - [ - "ко", - "во" - ], - [ - "ков", - "о" - ], - [ - "к", - "ово" - ], - [ - "ad", - "ata" - ], - [ - "ada", - "ta" - ], - [ - "a", - "data" - ], - [ - "▁Р", - "е" - ], - [ - "▁bo", - "olean" - ], - [ - "▁", - "boolean" - ], - [ - "se", - "ts" - ], - [ - "set", - "s" - ], - [ - "s", - "ets" - ], - [ - "▁eff", - "ort" - ], - [ - ".", - "[" - ], - [ - "▁z", - "ostał" - ], - [ - "P", - "A" - ], - [ - "▁V", - "ict" - ], - [ - "▁Vi", - "ct" - ], - [ - "▁Vic", - "t" - ], - [ - "S", - "D" - ], - [ - "ow", - "ał" - ], - [ - "owa", - "ł" - ], - [ - "▁e", - "mb" - ], - [ - "▁em", - "b" - ], - [ - "▁", - "emb" - ], - [ - "▁pr", - "ima" - ], - [ - "▁prim", - "a" - ], - [ - "▁pri", - "ma" - ], - [ - "▁h", - "our" - ], - [ - "▁ho", - "ur" - ], - [ - "▁", - "hour" - ], - [ - "sub", - "section" - ], - [ - "▁F", - "ort" - ], - [ - "▁For", - "t" - ], - [ - "▁Fo", - "rt" - ], - [ - "math", - "frak" - ], - [ - "ig", - "in" - ], - [ - "igi", - "n" - ], - [ - "i", - "gin" - ], - [ - "G", - "L" - ], - [ - ")", - "+" - ], - [ - "f", - "i" - ], - [ - "▁an", - "ci" - ], - [ - "▁anc", - "i" - ], - [ - "▁", - "anci" - ], - [ - "▁p", - "an" - ], - [ - "▁pa", - "n" - ], - [ - "▁", - "pan" - ], - [ - "\\", - ")" - ], - [ - "▁l", - "ug" - ], - [ - "▁lu", - "g" - ], - [ - "▁dep", - "loy" - ], - [ - "▁", - "deploy" - ], - [ - "do", - "main" - ], - [ - "dom", - "ain" - ], - [ - "▁s", - "light" - ], - [ - "▁sl", - "ight" - ], - [ - "JS", - "ON" - ], - [ - "J", - "SON" - ], - [ - "▁mor", - "ning" - ], - [ - "▁h", - "i" - ], - [ - "▁", - "hi" - ], - [ - "▁comp", - "are" - ], - [ - "▁compar", - "e" - ], - [ - "▁", - "compare" - ], - [ - "ij", - "e" - ], - [ - "i", - "je" - ], - [ - "▁bl", - "ue" - ], - [ - "▁", - "blue" - ], - [ - "▁A", - "c" - ], - [ - "▁", - "Ac" - ], - [ - "▁m", - "iddle" - ], - [ - "▁", - "middle" - ], - [ - "an", - "den" - ], - [ - "and", - "en" - ], - [ - "ande", - "n" - ], - [ - "▁sh", - "ared" - ], - [ - "▁share", - "d" - ], - [ - "▁", - "shared" - ], - [ - "▁C", - "amp" - ], - [ - "▁Cam", - "p" - ], - [ - "▁Ca", - "mp" - ], - [ - "▁", - "Á" - ], - [ - "ound", - "ed" - ], - [ - "oun", - "ded" - ], - [ - "u", - "w" - ], - [ - "ier", - "ung" - ], - [ - "St", - "ack" - ], - [ - "▁e", - "ines" - ], - [ - "▁ein", - "es" - ], - [ - "▁eine", - "s" - ], - [ - "▁D", - "a" - ], - [ - "▁", - "Da" - ], - [ - "li", - "j" - ], - [ - "l", - "ij" - ], - [ - "en", - "ti" - ], - [ - "ent", - "i" - ], - [ - "▁", - "й" - ], - [ - "U", - "til" - ], - [ - "▁exper", - "ience" - ], - [ - "▁experien", - "ce" - ], - [ - "▁a", - "wait" - ], - [ - "▁aw", - "ait" - ], - [ - "▁", - "await" - ], - [ - "ul", - "s" - ], - [ - "u", - "ls" - ], - [ - "▁request", - "s" - ], - [ - "▁requ", - "ests" - ], - [ - "▁", - "requests" - ], - [ - "▁im", - "pos" - ], - [ - "▁imp", - "os" - ], - [ - "▁const", - "raint" - ], - [ - "▁", - "constraint" - ], - [ - "Ch", - "ange" - ], - [ - "em", - "ph" - ], - [ - "emp", - "h" - ], - [ - "бе", - "р" - ], - [ - "б", - "ер" - ], - [ - "▁An", - "other" - ], - [ - "C", - "ustom" - ], - [ - "▁signific", - "ant" - ], - [ - "▁significa", - "nt" - ], - [ - "c", - "r" - ], - [ - "▁mill", - "ion" - ], - [ - "re", - "ek" - ], - [ - "ree", - "k" - ], - [ - "▁d", - "alla" - ], - [ - "▁da", - "lla" - ], - [ - "▁dal", - "la" - ], - [ - "▁dall", - "a" - ], - [ - "▁G", - "erm" - ], - [ - "▁Ge", - "rm" - ], - [ - "▁Ger", - "m" - ], - [ - "ot", - "al" - ], - [ - "ota", - "l" - ], - [ - "o", - "tal" - ], - [ - "at", - "eur" - ], - [ - "ate", - "ur" - ], - [ - "bt", - "n" - ], - [ - "b", - "tn" - ], - [ - "▁th", - "inking" - ], - [ - "▁think", - "ing" - ], - [ - "▁thin", - "king" - ], - [ - "▁inter", - "val" - ], - [ - "▁", - "interval" - ], - [ - "on", - "ne" - ], - [ - "onn", - "e" - ], - [ - "▁l", - "iv" - ], - [ - "▁li", - "v" - ], - [ - "▁", - "liv" - ], - [ - "()", - ":" - ], - [ - "(", - "):" - ], - [ - "▁В", - "е" - ], - [ - "o", - "e" - ], - [ - "▁E", - "v" - ], - [ - "me", - "ta" - ], - [ - "met", - "a" - ], - [ - "m", - "eta" - ], - [ - "▁b", - "road" - ], - [ - "▁bro", - "ad" - ], - [ - "Re", - "m" - ], - [ - "R", - "em" - ], - [ - "ap", - "ply" - ], - [ - "app", - "ly" - ], - [ - "a", - "pply" - ], - [ - "▁cou", - "ple" - ], - [ - "▁coup", - "le" - ], - [ - "▁te", - "chni" - ], - [ - "▁techn", - "i" - ], - [ - "id", - "ades" - ], - [ - "ida", - "des" - ], - [ - "idad", - "es" - ], - [ - "idade", - "s" - ], - [ - "▁go", - "al" - ], - [ - "▁", - "goal" - ], - [ - "▁C", - "D" - ], - [ - "▁", - "CD" - ], - [ - "ha", - "b" - ], - [ - "h", - "ab" - ], - [ - "▁ex", - "plan" - ], - [ - "▁exp", - "lan" - ], - [ - "▁expla", - "n" - ], - [ - "▁expl", - "an" - ], - [ - "an", - "ner" - ], - [ - "ann", - "er" - ], - [ - "anne", - "r" - ], - [ - "▁B", - "ecause" - ], - [ - "bl", - "og" - ], - [ - "blo", - "g" - ], - [ - "b", - "log" - ], - [ - "include", - "graphics" - ], - [ - "▁vo", - "ice" - ], - [ - "▁", - "voice" - ], - [ - "▁M", - "ap" - ], - [ - "▁Ma", - "p" - ], - [ - "▁", - "Map" - ], - [ - "vent", - "ion" - ], - [ - "ven", - "tion" - ], - [ - "v", - "ention" - ], - [ - "S", - "ession" - ], - [ - "▁L", - "iens" - ], - [ - "▁Li", - "ens" - ], - [ - "▁Lie", - "ns" - ], - [ - "▁s", - "or" - ], - [ - "▁so", - "r" - ], - [ - "c", - "ategory" - ], - [ - "ash", - "ington" - ], - [ - "▁Mär", - "z" - ], - [ - "po", - "p" - ], - [ - "p", - "op" - ], - [ - "il", - "let" - ], - [ - "ill", - "et" - ], - [ - "ille", - "t" - ], - [ - "▁z", - "wei" - ], - [ - "▁zwe", - "i" - ], - [ - "▁zw", - "ei" - ], - [ - "▁L", - "ie" - ], - [ - "▁Li", - "e" - ], - [ - "N", - "ull" - ], - [ - "add", - "ress" - ], - [ - "addr", - "ess" - ], - [ - "▁f", - "actor" - ], - [ - "▁fact", - "or" - ], - [ - "▁fa", - "ctor" - ], - [ - "▁fac", - "tor" - ], - [ - "▁", - "factor" - ], - [ - "▁l", - "igne" - ], - [ - "▁lig", - "ne" - ], - [ - "▁HT", - "TP" - ], - [ - "▁", - "HTTP" - ], - [ - "▁s", - "uf" - ], - [ - "▁su", - "f" - ], - [ - "▁person", - "al" - ], - [ - "▁pers", - "onal" - ], - [ - "▁persona", - "l" - ], - [ - "ci", - "p" - ], - [ - "c", - "ip" - ], - [ - "▁D", - "ar" - ], - [ - "▁Da", - "r" - ], - [ - "▁a", - "dm" - ], - [ - "▁ad", - "m" - ], - [ - "ко", - "й" - ], - [ - "▁E", - "xt" - ], - [ - "▁Ex", - "t" - ], - [ - "▁", - "Ext" - ], - [ - "▁g", - "od" - ], - [ - "▁go", - "d" - ], - [ - "▁", - "god" - ], - [ - "a", - "a" - ], - [ - "R", - "ight" - ], - [ - "ét", - "é" - ], - [ - "é", - "té" - ], - [ - "▁d", - "ynamic" - ], - [ - "▁dynam", - "ic" - ], - [ - "▁", - "dynamic" - ], - [ - "▁main", - "tain" - ], - [ - "to", - "r" - ], - [ - "t", - "or" - ], - [ - "####", - "####" - ], - [ - "▁F", - "ra" - ], - [ - "▁Fr", - "a" - ], - [ - "▁cho", - "ice" - ], - [ - "▁", - "choice" - ], - [ - "▁с", - "то" - ], - [ - "▁ст", - "о" - ], - [ - "▁", - "сто" - ], - [ - "С", - "Р" - ], - [ - "▁F", - "eder" - ], - [ - "▁Fe", - "der" - ], - [ - "▁Fed", - "er" - ], - [ - "st", - "on" - ], - [ - "sto", - "n" - ], - [ - "s", - "ton" - ], - [ - "▁f", - "lag" - ], - [ - "▁fl", - "ag" - ], - [ - "▁fla", - "g" - ], - [ - "▁", - "flag" - ], - [ - "ki", - "t" - ], - [ - "k", - "it" - ], - [ - "Mod", - "ule" - ], - [ - "▁с", - "по" - ], - [ - "▁сп", - "о" - ], - [ - "▁", - "спо" - ], - [ - "▁S", - "tra" - ], - [ - "▁St", - "ra" - ], - [ - "▁Str", - "a" - ], - [ - "ic", - "ks" - ], - [ - "ick", - "s" - ], - [ - "i", - "cks" - ], - [ - "▁h", - "aven" - ], - [ - "▁ha", - "ven" - ], - [ - "▁have", - "n" - ], - [ - "▁hav", - "en" - ], - [ - "▁M", - "ass" - ], - [ - "▁Ma", - "ss" - ], - [ - "▁Mas", - "s" - ], - [ - "▁E", - "mp" - ], - [ - "▁Em", - "p" - ], - [ - "▁", - "Emp" - ], - [ - "▁P", - "i" - ], - [ - "▁", - "Pi" - ], - [ - "▁P", - "en" - ], - [ - "▁Pe", - "n" - ], - [ - "Re", - "ct" - ], - [ - "Rec", - "t" - ], - [ - "R", - "ect" - ], - [ - "▁K", - "r" - ], - [ - "it", - "at" - ], - [ - "ita", - "t" - ], - [ - "i", - "tat" - ], - [ - "el", - "er" - ], - [ - "ele", - "r" - ], - [ - "e", - "ler" - ], - [ - "я", - "бря" - ], - [ - "it", - "et" - ], - [ - "ite", - "t" - ], - [ - "▁St", - "art" - ], - [ - "▁Sta", - "rt" - ], - [ - "▁Star", - "t" - ], - [ - "▁", - "Start" - ], - [ - "▁produ", - "ced" - ], - [ - "▁produce", - "d" - ], - [ - "▁по", - "л" - ], - [ - "▁", - "пол" - ], - [ - "(", - "_" - ], - [ - "▁de", - "let" - ], - [ - "▁del", - "et" - ], - [ - "▁h", - "ot" - ], - [ - "▁ho", - "t" - ], - [ - "▁", - "hot" - ], - [ - "▁Gesch", - "ichte" - ], - [ - "~", - "~" - ], - [ - "▁month", - "s" - ], - [ - "▁mont", - "hs" - ], - [ - "▁t", - "od" - ], - [ - "▁to", - "d" - ], - [ - "▁", - "tod" - ], - [ - "▁н", - "и" - ], - [ - "▁", - "ни" - ], - [ - "ú", - "s" - ], - [ - "te", - "mp" - ], - [ - "tem", - "p" - ], - [ - "t", - "emp" - ], - [ - "▁D", - "ez" - ], - [ - "▁De", - "z" - ], - [ - "ype", - "s" - ], - [ - "yp", - "es" - ], - [ - "y", - "pes" - ], - [ - "▁c", - "ui" - ], - [ - "▁cu", - "i" - ], - [ - "om", - "mun" - ], - [ - "omm", - "un" - ], - [ - "act", - "ions" - ], - [ - "action", - "s" - ], - [ - "a", - "ctions" - ], - [ - "▁e", - "igen" - ], - [ - "▁eig", - "en" - ], - [ - "▁immedi", - "ately" - ], - [ - "▁immediate", - "ly" - ], - [ - "P", - "L" - ], - [ - "▁Г", - "о" - ], - [ - "▁B", - "al" - ], - [ - "▁Ba", - "l" - ], - [ - "▁", - "Bal" - ], - [ - "љ", - "е" - ], - [ - "ul", - "ui" - ], - [ - "ulu", - "i" - ], - [ - "▁on", - "line" - ], - [ - "▁", - "online" - ], - [ - "▁a", - "ños" - ], - [ - "▁añ", - "os" - ], - [ - "▁año", - "s" - ], - [ - "▁name", - "space" - ], - [ - "▁names", - "pace" - ], - [ - "▁", - "namespace" - ], - [ - "▁m", - "ond" - ], - [ - "▁mon", - "d" - ], - [ - "▁mo", - "nd" - ], - [ - "▁", - "mond" - ], - [ - "▁B", - "ase" - ], - [ - "▁Bas", - "e" - ], - [ - "▁Ba", - "se" - ], - [ - "▁", - "Base" - ], - [ - "▁Can", - "ada" - ], - [ - "▁Canad", - "a" - ], - [ - "et", - "zt" - ], - [ - "etz", - "t" - ], - [ - "}", - "-" - ], - [ - "▁de", - "fin" - ], - [ - "▁def", - "in" - ], - [ - "▁", - "defin" - ], - [ - "▁dou", - "bt" - ], - [ - "▁doub", - "t" - ], - [ - "▁inv", - "estig" - ], - [ - "▁invest", - "ig" - ], - [ - "view", - "s" - ], - [ - "vie", - "ws" - ], - [ - "▁L", - "ine" - ], - [ - "▁Li", - "ne" - ], - [ - "▁Lin", - "e" - ], - [ - "▁", - "Line" - ], - [ - "▁st", - "age" - ], - [ - "▁sta", - "ge" - ], - [ - "▁stag", - "e" - ], - [ - "▁", - "stage" - ], - [ - "ett", - "ings" - ], - [ - "ub", - "re" - ], - [ - "u", - "bre" - ], - [ - "f", - "loat" - ], - [ - "▁P", - "lay" - ], - [ - "▁Pl", - "ay" - ], - [ - "▁Pla", - "y" - ], - [ - "▁", - "Play" - ], - [ - "▁L", - "as" - ], - [ - "▁La", - "s" - ], - [ - "pt", - "r" - ], - [ - "p", - "tr" - ], - [ - "▁be", - "comes" - ], - [ - "▁become", - "s" - ], - [ - "▁becom", - "es" - ], - [ - "est", - "amp" - ], - [ - "esta", - "mp" - ], - [ - "▁in", - "dependent" - ], - [ - "▁indep", - "endent" - ], - [ - "▁independ", - "ent" - ], - [ - "▁anal", - "ysis" - ], - [ - "▁", - "analysis" - ], - [ - "▁L", - "ook" - ], - [ - "▁Lo", - "ok" - ], - [ - "▁", - "Look" - ], - [ - "la", - "in" - ], - [ - "l", - "ain" - ], - [ - "▁ра", - "с" - ], - [ - "Re", - "ference" - ], - [ - "▁s", - "orry" - ], - [ - "▁sor", - "ry" - ], - [ - "▁supp", - "osed" - ], - [ - "▁suppose", - "d" - ], - [ - "▁sup", - "posed" - ], - [ - "û", - "t" - ], - [ - "▁deg", - "ree" - ], - [ - "ut", - "z" - ], - [ - "u", - "tz" - ], - [ - "M", - "M" - ], - [ - "▁des", - "ired" - ], - [ - "▁desire", - "d" - ], - [ - "ł", - "y" - ], - [ - "▁l", - "en" - ], - [ - "▁le", - "n" - ], - [ - "▁", - "len" - ], - [ - "▁al", - "one" - ], - [ - "▁", - "alone" - ], - [ - "sign", - "ed" - ], - [ - "sig", - "ned" - ], - [ - "s", - "igned" - ], - [ - "▁S", - "ta" - ], - [ - "▁St", - "a" - ], - [ - "Per", - "son" - ], - [ - "Pers", - "on" - ], - [ - "P", - "erson" - ], - [ - "▁app", - "lied" - ], - [ - "▁B", - "ack" - ], - [ - "▁Ba", - "ck" - ], - [ - "▁Bac", - "k" - ], - [ - "▁", - "Back" - ], - [ - "▁m", - "ars" - ], - [ - "▁ma", - "rs" - ], - [ - "▁mar", - "s" - ], - [ - "Par", - "t" - ], - [ - "Pa", - "rt" - ], - [ - "P", - "art" - ], - [ - "▁D", - "id" - ], - [ - "▁Di", - "d" - ], - [ - "▁", - "Did" - ], - [ - "▁extern", - "es" - ], - [ - "▁externe", - "s" - ], - [ - "▁n", - "p" - ], - [ - "▁", - "np" - ], - [ - "on", - "go" - ], - [ - "ong", - "o" - ], - [ - "▁e", - "sta" - ], - [ - "▁est", - "a" - ], - [ - "▁es", - "ta" - ], - [ - "▁", - "esta" - ], - [ - "Bl", - "ock" - ], - [ - "B", - "lock" - ], - [ - "▁p", - "ou" - ], - [ - "▁po", - "u" - ], - [ - "ad", - "ores" - ], - [ - "ado", - "res" - ], - [ - "ador", - "es" - ], - [ - "▁St", - "udio" - ], - [ - "▁Stud", - "io" - ], - [ - "▁", - "Studio" - ], - [ - ".", - "$" - ], - [ - "▁re", - "ached" - ], - [ - "▁reach", - "ed" - ], - [ - "bo", - "t" - ], - [ - "b", - "ot" - ], - [ - "▁J", - "uni" - ], - [ - "▁Ju", - "ni" - ], - [ - "▁Jun", - "i" - ], - [ - "to", - "ns" - ], - [ - "ton", - "s" - ], - [ - "t", - "ons" - ], - [ - "it", - "el" - ], - [ - "ite", - "l" - ], - [ - "i", - "tel" - ], - [ - "▁G", - "ar" - ], - [ - "▁Ga", - "r" - ], - [ - "▁art", - "icles" - ], - [ - "▁article", - "s" - ], - [ - "▁", - "articles" - ], - [ - "▁D", - "istrict" - ], - [ - "▁Dist", - "rict" - ], - [ - "▁tr", - "ouble" - ], - [ - "▁trou", - "ble" - ], - [ - "li", - "de" - ], - [ - "l", - "ide" - ], - [ - "▁F", - "ound" - ], - [ - "▁Fou", - "nd" - ], - [ - "▁Fo", - "und" - ], - [ - "▁", - "Found" - ], - [ - "á", - "d" - ], - [ - "▁e", - "quip" - ], - [ - "▁equ", - "ip" - ], - [ - "▁in", - "ternal" - ], - [ - "▁int", - "ernal" - ], - [ - "▁inter", - "nal" - ], - [ - "▁intern", - "al" - ], - [ - "▁", - "internal" - ], - [ - "']", - "," - ], - [ - "'", - "]," - ], - [ - "▁a", - "sync" - ], - [ - "▁as", - "ync" - ], - [ - "▁", - "async" - ], - [ - "U", - "B" - ], - [ - "ge", - "l" - ], - [ - "g", - "el" - ], - [ - "▁a", - "i" - ], - [ - "▁", - "ai" - ], - [ - "ens", - "ure" - ], - [ - "▁app", - "eared" - ], - [ - "▁appear", - "ed" - ], - [ - "▁appe", - "ared" - ], - [ - "▁$", - "_" - ], - [ - "▁", - "$_" - ], - [ - "▁max", - "imum" - ], - [ - "▁maxim", - "um" - ], - [ - "▁С", - "и" - ], - [ - "р", - "ь" - ], - [ - "▁ann", - "oun" - ], - [ - "▁anno", - "un" - ], - [ - "ла", - "сь" - ], - [ - "▁c", - "m" - ], - [ - "▁", - "cm" - ], - [ - "га", - "н" - ], - [ - "г", - "ан" - ], - [ - "au", - "pt" - ], - [ - "a", - "upt" - ], - [ - "▁l", - "atter" - ], - [ - "▁lat", - "ter" - ], - [ - "▁pl", - "atform" - ], - [ - "▁plat", - "form" - ], - [ - "▁", - "platform" - ], - [ - "▁d", - "ra" - ], - [ - "▁dr", - "a" - ], - [ - "▁", - "dra" - ], - [ - "▁cap", - "ital" - ], - [ - "▁capit", - "al" - ], - [ - "▁sol", - "ved" - ], - [ - "▁solve", - "d" - ], - [ - "ri", - "z" - ], - [ - "r", - "iz" - ], - [ - "ed", - "ic" - ], - [ - "edi", - "c" - ], - [ - "e", - "dic" - ], - [ - "▁M", - "ur" - ], - [ - "▁Mu", - "r" - ], - [ - "▁T", - "op" - ], - [ - "▁To", - "p" - ], - [ - "▁", - "Top" - ], - [ - "т", - "ся" - ], - [ - "Pa", - "nel" - ], - [ - "Pane", - "l" - ], - [ - "Pan", - "el" - ], - [ - "P", - "anel" - ], - [ - "ru", - "le" - ], - [ - "r", - "ule" - ], - [ - "et", - "ic" - ], - [ - "eti", - "c" - ], - [ - "▁R", - "en" - ], - [ - "▁Re", - "n" - ], - [ - "▁Wik", - "imedia" - ], - [ - "▁", - "Wikimedia" - ], - [ - "▁T", - "O" - ], - [ - "▁", - "TO" - ], - [ - "se", - "cond" - ], - [ - "sec", - "ond" - ], - [ - "is", - "l" - ], - [ - "i", - "sl" - ], - [ - "▁h", - "y" - ], - [ - "▁", - "hy" - ], - [ - "▁n", - "iet" - ], - [ - "▁nie", - "t" - ], - [ - "▁ni", - "et" - ], - [ - "▁lo", - "aded" - ], - [ - "▁load", - "ed" - ], - [ - "▁", - "loaded" - ], - [ - "di", - "g" - ], - [ - "d", - "ig" - ], - [ - "▁ma", - "yo" - ], - [ - "▁may", - "o" - ], - [ - "[", - ":" - ], - [ - "Ac", - "c" - ], - [ - "A", - "cc" - ], - [ - "▁b", - "ek" - ], - [ - "▁be", - "k" - ], - [ - "▁", - "bek" - ], - [ - "ни", - "ю" - ], - [ - "lo", - "gin" - ], - [ - "log", - "in" - ], - [ - "t", - "x" - ], - [ - "▁F", - "ur" - ], - [ - "▁Fu", - "r" - ], - [ - "▁S", - "anta" - ], - [ - "▁San", - "ta" - ], - [ - "▁Sant", - "a" - ], - [ - "az", - "z" - ], - [ - "a", - "zz" - ], - [ - "▁con", - "duct" - ], - [ - "▁cond", - "uct" - ], - [ - "▁condu", - "ct" - ], - [ - "▁In", - "dia" - ], - [ - "▁Ind", - "ia" - ], - [ - "Or", - "der" - ], - [ - "Ord", - "er" - ], - [ - "ir", - "th" - ], - [ - "irt", - "h" - ], - [ - "t", - "w" - ], - [ - "}", - "+" - ], - [ - "▁w", - "ieder" - ], - [ - "▁wie", - "der" - ], - [ - "▁E", - "du" - ], - [ - "▁Ed", - "u" - ], - [ - "A", - "V" - ], - [ - "▁`", - "``" - ], - [ - "▁``", - "`" - ], - [ - "▁", - "```" - ], - [ - "▁man", - "ually" - ], - [ - "▁manual", - "ly" - ], - [ - "▁R", - "ead" - ], - [ - "▁Re", - "ad" - ], - [ - "▁", - "Read" - ], - [ - "fortun", - "ately" - ], - [ - "▁R", - "un" - ], - [ - "▁Ru", - "n" - ], - [ - "▁", - "Run" - ], - [ - "▁A", - "ward" - ], - [ - "▁Aw", - "ard" - ], - [ - "▁F", - "oot" - ], - [ - "▁Foo", - "t" - ], - [ - "▁Fo", - "ot" - ], - [ - "▁", - "Foot" - ], - [ - "*", - ")" - ], - [ - "par", - "ams" - ], - [ - "param", - "s" - ], - [ - "pa", - "rams" - ], - [ - "para", - "ms" - ], - [ - "п", - "і" - ], - [ - "▁n", - "ative" - ], - [ - "▁nat", - "ive" - ], - [ - "▁", - "native" - ], - [ - "ri", - "ft" - ], - [ - "rif", - "t" - ], - [ - "r", - "ift" - ], - [ - "▁", - "ä" - ], - [ - "AT", - "H" - ], - [ - "A", - "TH" - ], - [ - "▁your", - "self" - ], - [ - "▁yours", - "elf" - ], - [ - "▁p", - "rior" - ], - [ - "▁pr", - "ior" - ], - [ - "▁pri", - "or" - ], - [ - "▁c", - "it" - ], - [ - "▁ci", - "t" - ], - [ - "▁", - "cit" - ], - [ - "ä", - "h" - ], - [ - "▁tre", - "at" - ], - [ - "▁me", - "as" - ], - [ - "rib", - "uted" - ], - [ - "ribute", - "d" - ], - [ - "ribu", - "ted" - ], - [ - "▁c", - "lar" - ], - [ - "▁cl", - "ar" - ], - [ - "▁cla", - "r" - ], - [ - "▁", - "clar" - ], - [ - "ca", - "rd" - ], - [ - "car", - "d" - ], - [ - "c", - "ard" - ], - [ - "RO", - "R" - ], - [ - "R", - "OR" - ], - [ - "il", - "les" - ], - [ - "ill", - "es" - ], - [ - "ille", - "s" - ], - [ - "i", - "lles" - ], - [ - "▁l", - "ayer" - ], - [ - "▁la", - "yer" - ], - [ - "▁lay", - "er" - ], - [ - "▁", - "layer" - ], - [ - "au", - "er" - ], - [ - "a", - "uer" - ], - [ - "▁r", - "at" - ], - [ - "▁ra", - "t" - ], - [ - "▁", - "rat" - ], - [ - "bern", - "ate" - ], - [ - "▁st", - "ato" - ], - [ - "▁stat", - "o" - ], - [ - "▁sta", - "to" - ], - [ - "▁Ch", - "ina" - ], - [ - "▁Chi", - "na" - ], - [ - "▁$", - "('#" - ], - [ - "▁$('", - "#" - ], - [ - "▁n", - "aar" - ], - [ - "▁na", - "ar" - ], - [ - "zi", - "p" - ], - [ - "z", - "ip" - ], - [ - "▁$", - "{\\" - ], - [ - "▁${", - "\\" - ], - [ - "▁appreci", - "ated" - ], - [ - "▁appreciate", - "d" - ], - [ - "▁и", - "ме" - ], - [ - "▁им", - "е" - ], - [ - "ż", - "y" - ], - [ - "▁prze", - "z" - ], - [ - "▁prz", - "ez" - ], - [ - "▁Ind", - "ian" - ], - [ - "▁India", - "n" - ], - [ - "▁T", - "od" - ], - [ - "▁To", - "d" - ], - [ - "▁S", - "ource" - ], - [ - "▁", - "Source" - ], - [ - "▁дру", - "ги" - ], - [ - "in", - "ternal" - ], - [ - "int", - "ernal" - ], - [ - "inter", - "nal" - ], - [ - "intern", - "al" - ], - [ - "ion", - "ale" - ], - [ - "ional", - "e" - ], - [ - "iona", - "le" - ], - [ - "Pro", - "duct" - ], - [ - "Produ", - "ct" - ], - [ - "▁M", - "en" - ], - [ - "▁Me", - "n" - ], - [ - "▁", - "Men" - ], - [ - "▁u", - "pper" - ], - [ - "▁up", - "per" - ], - [ - "▁upp", - "er" - ], - [ - "▁", - "upper" - ], - [ - "▁E", - "very" - ], - [ - "▁Ev", - "ery" - ], - [ - "▁Ever", - "y" - ], - [ - "▁", - "Every" - ], - [ - "},", - "\\" - ], - [ - "}", - ",\\" - ], - [ - "▁print", - "f" - ], - [ - "▁prin", - "tf" - ], - [ - "▁", - "printf" - ], - [ - "▁contin", - "ued" - ], - [ - "▁continu", - "ed" - ], - [ - "▁continue", - "d" - ], - [ - "▁n", - "odes" - ], - [ - "▁no", - "des" - ], - [ - "▁node", - "s" - ], - [ - "▁nod", - "es" - ], - [ - "▁", - "nodes" - ], - [ - "л", - "ки" - ], - [ - "▁n", - "ice" - ], - [ - "▁ni", - "ce" - ], - [ - "▁nic", - "e" - ], - [ - "▁", - "nice" - ], - [ - "mod", - "ules" - ], - [ - "module", - "s" - ], - [ - "ei", - "gn" - ], - [ - "e", - "ign" - ], - [ - "▁M", - "ex" - ], - [ - "▁Me", - "x" - ], - [ - "▁Acc", - "ording" - ], - [ - "▁un", - "defined" - ], - [ - "▁und", - "efined" - ], - [ - "▁", - "undefined" - ], - [ - "▁b", - "inary" - ], - [ - "▁bin", - "ary" - ], - [ - "▁", - "binary" - ], - [ - "cu", - "t" - ], - [ - "c", - "ut" - ], - [ - "Cur", - "rent" - ], - [ - "C", - "urrent" - ], - [ - "ed", - "y" - ], - [ - "e", - "dy" - ], - [ - "}}", - "{" - ], - [ - "}", - "}{" - ], - [ - "ble", - "s" - ], - [ - "bl", - "es" - ], - [ - "b", - "les" - ], - [ - "▁во", - "й" - ], - [ - "▁", - "вой" - ], - [ - "sc", - "ri" - ], - [ - "scr", - "i" - ], - [ - "s", - "cri" - ], - [ - "eq", - "n" - ], - [ - "Ch", - "anged" - ], - [ - "Change", - "d" - ], - [ - "▁kö", - "z" - ], - [ - "▁rem", - "ote" - ], - [ - "▁", - "remote" - ], - [ - "в", - "ля" - ], - [ - "▁qu", - "el" - ], - [ - "▁que", - "l" - ], - [ - "▁q", - "uel" - ], - [ - "▁", - "quel" - ], - [ - "▁al", - "ign" - ], - [ - "▁ali", - "gn" - ], - [ - "▁", - "align" - ], - [ - "▁п", - "ар" - ], - [ - "▁па", - "р" - ], - [ - "▁", - "пар" - ], - [ - "S", - "V" - ], - [ - "ye", - "r" - ], - [ - "y", - "er" - ], - [ - "▁Cal", - "iforn" - ], - [ - "▁p", - "laces" - ], - [ - "▁pl", - "aces" - ], - [ - "▁place", - "s" - ], - [ - "▁pla", - "ces" - ], - [ - "▁prim", - "ary" - ], - [ - "▁pri", - "mary" - ], - [ - "▁prima", - "ry" - ], - [ - "▁", - "primary" - ], - [ - "▁con", - "v" - ], - [ - "▁", - "conv" - ], - [ - "▁J", - "uli" - ], - [ - "▁Jul", - "i" - ], - [ - "▁Ju", - "li" - ], - [ - "▁vis", - "ual" - ], - [ - "▁", - "visual" - ], - [ - "▁S", - "elect" - ], - [ - "▁Se", - "lect" - ], - [ - "▁Sel", - "ect" - ], - [ - "▁Sele", - "ct" - ], - [ - "▁", - "Select" - ], - [ - "at", - "ory" - ], - [ - "ator", - "y" - ], - [ - "ato", - "ry" - ], - [ - "=", - "(" - ], - [ - "is", - "er" - ], - [ - "ise", - "r" - ], - [ - "i", - "ser" - ], - [ - "▁int", - "ent" - ], - [ - "▁inte", - "nt" - ], - [ - "▁inten", - "t" - ], - [ - "▁", - "intent" - ], - [ - "su", - "r" - ], - [ - "s", - "ur" - ], - [ - "cont", - "ainer" - ], - [ - "ic", - "ed" - ], - [ - "ice", - "d" - ], - [ - "i", - "ced" - ], - [ - "▁bo", - "ard" - ], - [ - "▁", - "board" - ], - [ - "as", - "tr" - ], - [ - "ast", - "r" - ], - [ - "a", - "str" - ], - [ - "om", - "ial" - ], - [ - "omi", - "al" - ], - [ - "ве", - "т" - ], - [ - "в", - "ет" - ], - [ - "з", - "ва" - ], - [ - "▁c", - "ru" - ], - [ - "▁cr", - "u" - ], - [ - "▁Ok", - "tober" - ], - [ - "sa", - "ve" - ], - [ - "s", - "ave" - ], - [ - "▁gre", - "ater" - ], - [ - "▁great", - "er" - ], - [ - "▁in", - "n" - ], - [ - "▁i", - "nn" - ], - [ - "▁", - "inn" - ], - [ - "▁p", - "icture" - ], - [ - "▁", - "picture" - ], - [ - "▁Т", - "о" - ], - [ - "▁obtain", - "ed" - ], - [ - "▁obt", - "ained" - ], - [ - "Wik", - "imedia" - ], - [ - "ú", - "blic" - ], - [ - "▁l", - "ors" - ], - [ - "▁lo", - "rs" - ], - [ - "▁m", - "ont" - ], - [ - "▁mon", - "t" - ], - [ - "▁mo", - "nt" - ], - [ - "▁", - "mont" - ], - [ - "ob", - "re" - ], - [ - "o", - "bre" - ], - [ - "▁c", - "ivil" - ], - [ - "▁ci", - "vil" - ], - [ - "▁civ", - "il" - ], - [ - "▁const", - "ruction" - ], - [ - "▁construct", - "ion" - ], - [ - "▁constru", - "ction" - ], - [ - "▁W", - "elt" - ], - [ - "▁We", - "lt" - ], - [ - "▁Wel", - "t" - ], - [ - "▁U", - "nder" - ], - [ - "▁Un", - "der" - ], - [ - "▁Und", - "er" - ], - [ - "▁", - "Under" - ], - [ - "und", - "ert" - ], - [ - "under", - "t" - ], - [ - "unde", - "rt" - ], - [ - "▁ed", - "ge" - ], - [ - "▁", - "edge" - ], - [ - "▁L", - "iste" - ], - [ - "▁List", - "e" - ], - [ - "▁Li", - "ste" - ], - [ - "▁Lis", - "te" - ], - [ - "cs", - "v" - ], - [ - "c", - "sv" - ], - [ - "▁ex", - "periment" - ], - [ - "▁exper", - "iment" - ], - [ - "local", - "host" - ], - [ - "▁E", - "dit" - ], - [ - "▁Ed", - "it" - ], - [ - "▁", - "Edit" - ], - [ - "gr", - "eg" - ], - [ - "gre", - "g" - ], - [ - "g", - "reg" - ], - [ - "ov", - "á" - ], - [ - "o", - "vá" - ], - [ - "љ", - "а" - ], - [ - "ms", - "g" - ], - [ - "m", - "sg" - ], - [ - "▁G", - "reen" - ], - [ - "▁Gr", - "een" - ], - [ - "▁Gre", - "en" - ], - [ - "▁Gree", - "n" - ], - [ - "▁", - "Green" - ], - [ - "Di", - "alog" - ], - [ - "D", - "ialog" - ], - [ - "Id", - "ent" - ], - [ - "I", - "dent" - ], - [ - "▁J", - "S" - ], - [ - "▁", - "JS" - ], - [ - "^{", - "(" - ], - [ - "^", - "{(" - ], - [ - "▁slä", - "ktet" - ], - [ - "__", - "__" - ], - [ - "___", - "_" - ], - [ - "_", - "___" - ], - [ - "Pro", - "ject" - ], - [ - "▁bes", - "kre" - ], - [ - "▁b", - "er" - ], - [ - "▁be", - "r" - ], - [ - "▁", - "ber" - ], - [ - "▁would", - "n" - ], - [ - "▁re", - "act" - ], - [ - "▁", - "react" - ], - [ - "He", - "l" - ], - [ - "H", - "el" - ], - [ - "z", - "w" - ], - [ - "▁W", - "ashington" - ], - [ - "or", - "ie" - ], - [ - "ori", - "e" - ], - [ - "o", - "rie" - ], - [ - "ta", - "sk" - ], - [ - "t", - "ask" - ], - [ - "▁c", - "ategory" - ], - [ - "▁categ", - "ory" - ], - [ - "▁categor", - "y" - ], - [ - "▁", - "category" - ], - [ - "▁art", - "ist" - ], - [ - "an", - "no" - ], - [ - "ann", - "o" - ], - [ - "▁o", - "ok" - ], - [ - "▁", - "ook" - ], - [ - "am", - "men" - ], - [ - "amm", - "en" - ], - [ - "▁Min", - "ister" - ], - [ - "▁de", - "clar" - ], - [ - "▁dec", - "lar" - ], - [ - "▁decl", - "ar" - ], - [ - "▁decla", - "r" - ], - [ - "▁K", - "ey" - ], - [ - "▁Ke", - "y" - ], - [ - "▁", - "Key" - ], - [ - ",", - "." - ], - [ - "▁m", - "ach" - ], - [ - "▁ma", - "ch" - ], - [ - "▁mac", - "h" - ], - [ - "▁w", - "w" - ], - [ - "▁", - "ww" - ], - [ - "is", - "en" - ], - [ - "ise", - "n" - ], - [ - "i", - "sen" - ], - [ - "Fr", - "an" - ], - [ - "F", - "ran" - ], - [ - "▁Ро", - "сси" - ], - [ - "▁Рос", - "си" - ], - [ - "бо", - "р" - ], - [ - "б", - "ор" - ], - [ - "т", - "ри" - ], - [ - "▁r", - "ock" - ], - [ - "▁ro", - "ck" - ], - [ - "▁", - "rock" - ], - [ - "qu", - "is" - ], - [ - "qui", - "s" - ], - [ - "q", - "uis" - ], - [ - "mo", - "s" - ], - [ - "m", - "os" - ], - [ - "пе", - "ра" - ], - [ - "пер", - "а" - ], - [ - "п", - "ера" - ], - [ - "▁est", - "erni" - ], - [ - "▁g", - "old" - ], - [ - "▁go", - "ld" - ], - [ - "▁gol", - "d" - ], - [ - "Window", - "s" - ], - [ - "W", - "indows" - ], - [ - "%", - "%" - ], - [ - "▁part", - "ial" - ], - [ - "▁parti", - "al" - ], - [ - "▁", - "partial" - ], - [ - "▁we", - "ight" - ], - [ - "▁", - "weight" - ], - [ - "▁s", - "pr" - ], - [ - "▁sp", - "r" - ], - [ - "▁", - "spr" - ], - [ - "})", - "." - ], - [ - "}", - ")." - ], - [ - "▁fran", - "çais" - ], - [ - "fu", - "n" - ], - [ - "f", - "un" - ], - [ - "▁th", - "ous" - ], - [ - "▁thou", - "s" - ], - [ - "ho", - "lder" - ], - [ - "hol", - "der" - ], - [ - "hold", - "er" - ], - [ - "h", - "older" - ], - [ - "▁g", - "one" - ], - [ - "▁go", - "ne" - ], - [ - "▁", - "Č" - ], - [ - "▁re", - "nd" - ], - [ - "▁r", - "end" - ], - [ - "▁ren", - "d" - ], - [ - "▁", - "rend" - ], - [ - "D", - "A" - ], - [ - "▁answer", - "ed" - ], - [ - "▁F", - "alse" - ], - [ - "▁Fal", - "se" - ], - [ - "▁", - "False" - ], - [ - "B", - "uffer" - ], - [ - "▁d", - "augh" - ], - [ - "▁da", - "ugh" - ], - [ - ".-", - "-" - ], - [ - ".", - "--" - ], - [ - "▁S", - "how" - ], - [ - "▁Sh", - "ow" - ], - [ - "▁Sho", - "w" - ], - [ - "▁", - "Show" - ], - [ - "▁re", - "ct" - ], - [ - "▁r", - "ect" - ], - [ - "▁rec", - "t" - ], - [ - "▁", - "rect" - ], - [ - "▁K", - "re" - ], - [ - "▁Kr", - "e" - ], - [ - "d", - "r" - ], - [ - "os", - "oph" - ], - [ - "oso", - "ph" - ], - [ - "▁y", - "ield" - ], - [ - "ur", - "ity" - ], - [ - "uri", - "ty" - ], - [ - "to", - "String" - ], - [ - "av", - "al" - ], - [ - "ava", - "l" - ], - [ - "a", - "val" - ], - [ - "Po", - "l" - ], - [ - "P", - "ol" - ], - [ - "▁l", - "ock" - ], - [ - "▁lo", - "ck" - ], - [ - "▁loc", - "k" - ], - [ - "▁", - "lock" - ], - [ - "im", - "ation" - ], - [ - "ima", - "tion" - ], - [ - "imat", - "ion" - ], - [ - "ant", - "ic" - ], - [ - "anti", - "c" - ], - [ - "Lo", - "cal" - ], - [ - "Loc", - "al" - ], - [ - "L", - "ocal" - ], - [ - "▁beskre", - "vs" - ], - [ - "it", - "és" - ], - [ - "ité", - "s" - ], - [ - "gr", - "id" - ], - [ - "g", - "rid" - ], - [ - "у", - "т" - ], - [ - "▁_", - "{" - ], - [ - "▁", - "_{" - ], - [ - "с", - "і" - ], - [ - "FI", - "LE" - ], - [ - "▁к", - "м" - ], - [ - "▁spe", - "ak" - ], - [ - "sum", - "mary" - ], - [ - "pr", - "op" - ], - [ - "pro", - "p" - ], - [ - "p", - "rop" - ], - [ - "java", - "script" - ], - [ - "j", - "avascript" - ], - [ - "z", - "k" - ], - [ - "izont", - "al" - ], - [ - "izon", - "tal" - ], - [ - "▁tr", - "ois" - ], - [ - "▁tro", - "is" - ], - [ - "▁R", - "od" - ], - [ - "▁Ro", - "d" - ], - [ - "pr", - "ise" - ], - [ - "ро", - "во" - ], - [ - "ров", - "о" - ], - [ - "р", - "ово" - ], - [ - "▁o", - "dd" - ], - [ - "▁od", - "d" - ], - [ - "▁", - "odd" - ], - [ - "▁g", - "est" - ], - [ - "▁ge", - "st" - ], - [ - "▁ges", - "t" - ], - [ - "▁", - "gest" - ], - [ - "▁produ", - "ce" - ], - [ - "▁prod", - "uce" - ], - [ - "▁w", - "aar" - ], - [ - "▁wa", - "ar" - ], - [ - "▁A", - "v" - ], - [ - "▁", - "Av" - ], - [ - "ri", - "bu" - ], - [ - "rib", - "u" - ], - [ - "ва", - "ння" - ], - [ - "ван", - "ня" - ], - [ - "▁fin", - "ished" - ], - [ - "▁finish", - "ed" - ], - [ - "▁ad", - "apt" - ], - [ - "▁S", - "ar" - ], - [ - "▁Sa", - "r" - ], - [ - "text", - "it" - ], - [ - "tex", - "tit" - ], - [ - "▁C", - "e" - ], - [ - "▁F", - "a" - ], - [ - "▁", - "Fa" - ], - [ - "os", - "en" - ], - [ - "ose", - "n" - ], - [ - "o", - "sen" - ], - [ - "▁de", - "riv" - ], - [ - "▁der", - "iv" - ], - [ - "▁s", - "hip" - ], - [ - "▁sh", - "ip" - ], - [ - "▁", - "ship" - ], - [ - "▁o", - "pin" - ], - [ - "▁op", - "in" - ], - [ - "▁E", - "ven" - ], - [ - "▁Ev", - "en" - ], - [ - "ge", - "sch" - ], - [ - "ges", - "ch" - ], - [ - "g", - "esch" - ], - [ - "▁supp", - "ose" - ], - [ - "▁sup", - "pose" - ], - [ - "▁F", - "er" - ], - [ - "▁Fe", - "r" - ], - [ - "ско", - "е" - ], - [ - "▁w", - "orden" - ], - [ - "▁word", - "en" - ], - [ - "▁wor", - "den" - ], - [ - "se", - "y" - ], - [ - "s", - "ey" - ], - [ - "hl", - "ine" - ], - [ - "h", - "line" - ], - [ - "▁Un", - "ion" - ], - [ - "▁", - "Union" - ], - [ - "▁/", - "**" - ], - [ - "▁/*", - "*" - ], - [ - "▁", - "/**" - ], - [ - "▁v", - "ez" - ], - [ - "▁ve", - "z" - ], - [ - "▁", - "vez" - ], - [ - "▁Colleg", - "amenti" - ], - [ - "▁Soci", - "ety" - ], - [ - "▁Soc", - "iety" - ], - [ - "▁e", - "conom" - ], - [ - "▁econ", - "om" - ], - [ - "▁ec", - "onom" - ], - [ - "š", - "í" - ], - [ - "o", - "i" - ], - [ - "▁or", - "ient" - ], - [ - "▁", - "orient" - ], - [ - "▁T", - "eil" - ], - [ - "▁Te", - "il" - ], - [ - "re", - "nt" - ], - [ - "ren", - "t" - ], - [ - "r", - "ent" - ], - [ - "ле", - "кс" - ], - [ - "лек", - "с" - ], - [ - "▁s", - "olid" - ], - [ - "▁sol", - "id" - ], - [ - "▁c", - "art" - ], - [ - "▁car", - "t" - ], - [ - "▁ca", - "rt" - ], - [ - "▁", - "cart" - ], - [ - "********", - "********" - ], - [ - "▁c", - "ab" - ], - [ - "▁ca", - "b" - ], - [ - "▁M", - "essage" - ], - [ - "▁Mess", - "age" - ], - [ - "▁", - "Message" - ], - [ - "do", - "ts" - ], - [ - "dot", - "s" - ], - [ - "d", - "ots" - ], - [ - "▁é", - "g" - ], - [ - "▁", - "ég" - ], - [ - "▁t", - "we" - ], - [ - "▁tw", - "e" - ], - [ - "ag", - "a" - ], - [ - "a", - "ga" - ], - [ - "▁n", - "az" - ], - [ - "▁na", - "z" - ], - [ - "▁M", - "icrosoft" - ], - [ - "▁Micro", - "soft" - ], - [ - "▁", - "Microsoft" - ], - [ - "▁under", - "arter" - ], - [ - "pp", - "en" - ], - [ - "ppe", - "n" - ], - [ - "p", - "pen" - ], - [ - "▁re", - "cent" - ], - [ - "▁rec", - "ent" - ], - [ - "▁rece", - "nt" - ], - [ - "▁n", - "et" - ], - [ - "▁ne", - "t" - ], - [ - "▁", - "net" - ], - [ - "▁res", - "ources" - ], - [ - "▁resource", - "s" - ], - [ - "▁", - "resources" - ], - [ - "St", - "e" - ], - [ - "S", - "te" - ], - [ - ".", - "\\" - ], - [ - "▁S", - "O" - ], - [ - "▁", - "SO" - ], - [ - "ло", - "м" - ], - [ - "л", - "ом" - ], - [ - "▁c", - "ele" - ], - [ - "▁ce", - "le" - ], - [ - "▁cel", - "e" - ], - [ - "▁l", - "ic" - ], - [ - "▁li", - "c" - ], - [ - "▁", - "lic" - ], - [ - "▁ben", - "ef" - ], - [ - "▁bene", - "f" - ], - [ - "ld", - "ots" - ], - [ - "l", - "dots" - ], - [ - "▁se", - "rial" - ], - [ - "▁ser", - "ial" - ], - [ - "▁seria", - "l" - ], - [ - "▁", - "serial" - ], - [ - "In", - "teger" - ], - [ - "cl", - "es" - ], - [ - "cle", - "s" - ], - [ - "c", - "les" - ], - [ - "▁m", - "iles" - ], - [ - "▁mil", - "es" - ], - [ - "▁mi", - "les" - ], - [ - "▁mile", - "s" - ], - [ - "▁A", - "le" - ], - [ - "▁Al", - "e" - ], - [ - "▁en", - "tered" - ], - [ - "▁ent", - "ered" - ], - [ - "▁enter", - "ed" - ], - [ - "▁T", - "wo" - ], - [ - "▁Tw", - "o" - ], - [ - "▁", - "Two" - ], - [ - "wi", - "e" - ], - [ - "w", - "ie" - ], - [ - "▁in", - "cludes" - ], - [ - "▁incl", - "udes" - ], - [ - "▁includ", - "es" - ], - [ - "▁include", - "s" - ], - [ - "▁inclu", - "des" - ], - [ - "▁", - "includes" - ], - [ - "▁E", - "ach" - ], - [ - "▁", - "Each" - ], - [ - "el", - "ling" - ], - [ - "ell", - "ing" - ], - [ - "elli", - "ng" - ], - [ - "qu", - "er" - ], - [ - "que", - "r" - ], - [ - "q", - "uer" - ], - [ - "▁D", - "om" - ], - [ - "▁Do", - "m" - ], - [ - "▁", - "Dom" - ], - [ - "p", - "f" - ], - [ - "W", - "S" - ], - [ - "▁stra", - "ight" - ], - [ - "▁S", - "tan" - ], - [ - "▁St", - "an" - ], - [ - "▁Sta", - "n" - ], - [ - "▁n", - "os" - ], - [ - "▁no", - "s" - ], - [ - "▁", - "nos" - ], - [ - "í", - "cul" - ], - [ - "at", - "ro" - ], - [ - "atr", - "o" - ], - [ - "▁C", - "enter" - ], - [ - "▁Cent", - "er" - ], - [ - "▁", - "Center" - ], - [ - "F", - "T" - ], - [ - "▁In", - "ga" - ], - [ - "▁Ing", - "a" - ], - [ - "il", - "o" - ], - [ - "i", - "lo" - ], - [ - "▁w", - "ww" - ], - [ - "▁ww", - "w" - ], - [ - "▁", - "www" - ], - [ - "js", - "fiddle" - ], - [ - "ni", - "c" - ], - [ - "n", - "ic" - ], - [ - "▁Europe", - "an" - ], - [ - "▁com", - "mer" - ], - [ - "▁comm", - "er" - ], - [ - "▁comme", - "r" - ], - [ - "▁g", - "irl" - ], - [ - "▁gi", - "rl" - ], - [ - "▁gir", - "l" - ], - [ - "to", - "tal" - ], - [ - "tot", - "al" - ], - [ - "t", - "otal" - ], - [ - "▁S", - "tar" - ], - [ - "▁St", - "ar" - ], - [ - "▁Sta", - "r" - ], - [ - "▁", - "Star" - ], - [ - "▁sugg", - "ested" - ], - [ - "▁suggest", - "ed" - ], - [ - "pa", - "l" - ], - [ - "p", - "al" - ], - [ - "▁zw", - "ischen" - ], - [ - "пи", - "са" - ], - [ - "пис", - "а" - ], - [ - "I", - "M" - ], - [ - "▁hand", - "ler" - ], - [ - "▁handle", - "r" - ], - [ - "▁", - "handler" - ], - [ - "▁Pro", - "gram" - ], - [ - "▁Pr", - "ogram" - ], - [ - "▁", - "Program" - ], - [ - "xs", - "l" - ], - [ - "x", - "sl" - ], - [ - "ál", - "y" - ], - [ - "á", - "ly" - ], - [ - "B", - "U" - ], - [ - ",-", - "-" - ], - [ - ",", - "--" - ], - [ - "▁v", - "id" - ], - [ - "▁vi", - "d" - ], - [ - "▁", - "vid" - ], - [ - "▁estab", - "lished" - ], - [ - "▁establish", - "ed" - ], - [ - "▁S", - "piel" - ], - [ - "▁Sp", - "iel" - ], - [ - "om", - "etry" - ], - [ - "ome", - "try" - ], - [ - "omet", - "ry" - ], - [ - "un", - "es" - ], - [ - "une", - "s" - ], - [ - "u", - "nes" - ], - [ - "▁s", - "it" - ], - [ - "▁si", - "t" - ], - [ - "▁in", - "her" - ], - [ - "▁p", - "uis" - ], - [ - "▁pu", - "is" - ], - [ - "▁", - "puis" - ], - [ - "▁", - "être" - ], - [ - "▁M", - "ost" - ], - [ - "▁Mo", - "st" - ], - [ - "▁Mos", - "t" - ], - [ - "He", - "ader" - ], - [ - "Head", - "er" - ], - [ - "in", - "sert" - ], - [ - "ins", - "ert" - ], - [ - "▁s", - "ist" - ], - [ - "▁si", - "st" - ], - [ - "▁f", - "avor" - ], - [ - "▁fa", - "vor" - ], - [ - "▁fav", - "or" - ], - [ - "de", - "st" - ], - [ - "des", - "t" - ], - [ - "d", - "est" - ], - [ - "▁ent", - "ity" - ], - [ - "▁", - "entity" - ], - [ - "Ca", - "l" - ], - [ - "C", - "al" - ], - [ - "▁There", - "fore" - ], - [ - "D", - "D" - ], - [ - ";", - ";" - ], - [ - "▁Dez", - "ember" - ], - [ - "▁R", - "h" - ], - [ - "im", - "ents" - ], - [ - "iment", - "s" - ], - [ - "imen", - "ts" - ], - [ - "i", - "ments" - ], - [ - "▁return", - "ing" - ], - [ - "st", - "o" - ], - [ - "s", - "to" - ], - [ - "▁Val", - "ue" - ], - [ - "▁", - "Value" - ], - [ - "▁l", - "iber" - ], - [ - "▁li", - "ber" - ], - [ - "▁lib", - "er" - ], - [ - "▁Res", - "ult" - ], - [ - "▁", - "Result" - ], - [ - "▁b", - "ind" - ], - [ - "▁bi", - "nd" - ], - [ - "▁bin", - "d" - ], - [ - "▁", - "bind" - ], - [ - "vo", - "ir" - ], - [ - "v", - "oir" - ], - [ - "▁T", - "im" - ], - [ - "▁Ti", - "m" - ], - [ - "▁", - "Tim" - ], - [ - "▁M", - "ovie" - ], - [ - "▁Mo", - "vie" - ], - [ - "▁Mov", - "ie" - ], - [ - "▁", - "Movie" - ], - [ - "we", - "g" - ], - [ - "w", - "eg" - ], - [ - "ke", - "t" - ], - [ - "k", - "et" - ], - [ - "▁и", - "сто" - ], - [ - "▁ис", - "то" - ], - [ - "▁fri", - "ends" - ], - [ - "▁friend", - "s" - ], - [ - "▁f", - "n" - ], - [ - "▁", - "fn" - ], - [ - "▁é", - "l" - ], - [ - "▁", - "él" - ], - [ - "▁&", - "=" - ], - [ - "▁", - "&=" - ], - [ - "ar", - "den" - ], - [ - "ard", - "en" - ], - [ - "arde", - "n" - ], - [ - "ff", - "icial" - ], - [ - "ffic", - "ial" - ], - [ - "▁comm", - "unity" - ], - [ - "▁commun", - "ity" - ], - [ - "▁", - "community" - ], - [ - "▁a", - "pi" - ], - [ - "▁ap", - "i" - ], - [ - "▁", - "api" - ], - [ - "Ar", - "gs" - ], - [ - "Arg", - "s" - ], - [ - "ie", - "ren" - ], - [ - "ier", - "en" - ], - [ - "iere", - "n" - ], - [ - "i", - "eren" - ], - [ - "▁d", - "ann" - ], - [ - "▁da", - "nn" - ], - [ - "▁dan", - "n" - ], - [ - "om", - "orph" - ], - [ - "ad", - "r" - ], - [ - "a", - "dr" - ], - [ - "lo", - "op" - ], - [ - "l", - "oop" - ], - [ - "um", - "an" - ], - [ - "uma", - "n" - ], - [ - "u", - "man" - ], - [ - "▁v", - "ous" - ], - [ - "▁vo", - "us" - ], - [ - "▁vou", - "s" - ], - [ - "▁", - "vous" - ], - [ - "bs", - "t" - ], - [ - "b", - "st" - ], - [ - "sub", - "mit" - ], - [ - "\\", - "|" - ], - [ - "ти", - "н" - ], - [ - "т", - "ин" - ], - [ - "Cont", - "ainer" - ], - [ - "as", - "ket" - ], - [ - "ask", - "et" - ], - [ - "?", - ")" - ], - [ - "Se", - "c" - ], - [ - "S", - "ec" - ], - [ - "▁d", - "rive" - ], - [ - "▁dr", - "ive" - ], - [ - "▁dri", - "ve" - ], - [ - "▁driv", - "e" - ], - [ - "▁", - "drive" - ], - [ - "As", - "s" - ], - [ - "A", - "ss" - ], - [ - "▁s", - "we" - ], - [ - "▁sw", - "e" - ], - [ - "▁a", - "mer" - ], - [ - "▁am", - "er" - ], - [ - "▁", - "amer" - ], - [ - "▁m", - "ine" - ], - [ - "▁min", - "e" - ], - [ - "▁mi", - "ne" - ], - [ - "▁", - "mine" - ], - [ - "▁H", - "am" - ], - [ - "▁Ha", - "m" - ], - [ - "▁av", - "ait" - ], - [ - "▁", - "avait" - ], - [ - "▁H", - "on" - ], - [ - "▁Ho", - "n" - ], - [ - "▁a", - "près" - ], - [ - "▁ap", - "rès" - ], - [ - "▁apr", - "ès" - ], - [ - "▁", - "après" - ], - [ - "▁M", - "ann" - ], - [ - "▁Man", - "n" - ], - [ - "▁Ma", - "nn" - ], - [ - "сь", - "ка" - ], - [ - "ськ", - "а" - ], - [ - "▁incre", - "ase" - ], - [ - "▁t", - "y" - ], - [ - "▁", - "ty" - ], - [ - "sk", - "y" - ], - [ - "s", - "ky" - ], - [ - "▁acc", - "ur" - ], - [ - "▁ac", - "cur" - ], - [ - "art", - "icle" - ], - [ - "we", - "ight" - ], - [ - "weig", - "ht" - ], - [ - "▁s", - "ex" - ], - [ - "▁se", - "x" - ], - [ - "▁", - "sex" - ], - [ - "▁list", - "ade" - ], - [ - "▁lista", - "de" - ], - [ - "/*", - "*" - ], - [ - "/", - "**" - ], - [ - "▁est", - "á" - ], - [ - "}}", - "$" - ], - [ - "}", - "}$" - ], - [ - "ar", - "go" - ], - [ - "arg", - "o" - ], - [ - "def", - "ine" - ], - [ - "defin", - "e" - ], - [ - "▁со", - "став" - ], - [ - "▁соста", - "в" - ], - [ - "s", - "ession" - ], - [ - "ad", - "s" - ], - [ - "a", - "ds" - ], - [ - "ст", - "ви" - ], - [ - "ств", - "и" - ], - [ - "▁L", - "aw" - ], - [ - "▁La", - "w" - ], - [ - "▁d", - "ialog" - ], - [ - "▁di", - "alog" - ], - [ - "▁dia", - "log" - ], - [ - "▁", - "dialog" - ], - [ - "▁dup", - "licate" - ], - [ - "▁é", - "p" - ], - [ - "▁", - "ép" - ], - [ - "▁v", - "oc" - ], - [ - "▁vo", - "c" - ], - [ - "fr", - "i" - ], - [ - "f", - "ri" - ], - [ - "▁g", - "reen" - ], - [ - "▁gr", - "een" - ], - [ - "▁gre", - "en" - ], - [ - "▁", - "green" - ], - [ - "▁h", - "idden" - ], - [ - "▁hid", - "den" - ], - [ - "▁", - "hidden" - ], - [ - "▁Is", - "land" - ], - [ - "▁di", - "ag" - ], - [ - "▁dia", - "g" - ], - [ - "ow", - "ej" - ], - [ - "owe", - "j" - ], - [ - "my", - "sql" - ], - [ - "mys", - "ql" - ], - [ - "mysq", - "l" - ], - [ - "te", - "il" - ], - [ - "tei", - "l" - ], - [ - "t", - "eil" - ], - [ - "r", - "ä" - ], - [ - "ik", - "an" - ], - [ - "ika", - "n" - ], - [ - "i", - "kan" - ], - [ - "▁Jos", - "é" - ], - [ - "al", - "ed" - ], - [ - "ale", - "d" - ], - [ - "a", - "led" - ], - [ - "Run", - "time" - ], - [ - "R", - "untime" - ], - [ - "▁t", - "rain" - ], - [ - "▁tr", - "ain" - ], - [ - "▁tra", - "in" - ], - [ - "▁", - "train" - ], - [ - "▁Di", - "vision" - ], - [ - "▁Div", - "ision" - ], - [ - "ни", - "ц" - ], - [ - "▁S", - "pan" - ], - [ - "▁Sp", - "an" - ], - [ - "▁", - "Span" - ], - [ - "ни", - "ма" - ], - [ - "ним", - "а" - ], - [ - ")=", - "\\" - ], - [ - ")", - "=\\" - ], - [ - "та", - "н" - ], - [ - "т", - "ан" - ], - [ - "▁st", - "ay" - ], - [ - "▁sta", - "y" - ], - [ - "▁f", - "oo" - ], - [ - "▁fo", - "o" - ], - [ - "▁", - "foo" - ], - [ - "▁acc", - "om" - ], - [ - "▁ac", - "com" - ], - [ - "▁h", - "ers" - ], - [ - "▁he", - "rs" - ], - [ - "▁her", - "s" - ], - [ - "▁на", - "у" - ], - [ - "▁M", - "ün" - ], - [ - "ide", - "os" - ], - [ - "ideo", - "s" - ], - [ - "st", - "atic" - ], - [ - "stat", - "ic" - ], - [ - "▁re", - "ady" - ], - [ - "▁read", - "y" - ], - [ - "▁", - "ready" - ], - [ - "]", - "`" - ], - [ - "▁vis", - "ible" - ], - [ - "▁vi", - "sible" - ], - [ - "▁", - "visible" - ], - [ - "▁H", - "ope" - ], - [ - "▁Ho", - "pe" - ], - [ - "▁Hop", - "e" - ], - [ - "ul", - "ated" - ], - [ - "ula", - "ted" - ], - [ - "ulate", - "d" - ], - [ - "▁C", - "ult" - ], - [ - "▁Cu", - "lt" - ], - [ - "ст", - "ро" - ], - [ - "стр", - "о" - ], - [ - "с", - "тро" - ], - [ - "C", - "o" - ], - [ - "▁sm", - "aller" - ], - [ - "▁small", - "er" - ], - [ - "at", - "ura" - ], - [ - "atur", - "a" - ], - [ - "atu", - "ra" - ], - [ - "▁perfect", - "ly" - ], - [ - "re", - "q" - ], - [ - "r", - "eq" - ], - [ - "▁pro", - "posed" - ], - [ - "▁prop", - "osed" - ], - [ - "▁propos", - "ed" - ], - [ - "▁propose", - "d" - ], - [ - "▁deg", - "li" - ], - [ - "Se", - "arch" - ], - [ - "S", - "earch" - ], - [ - "▁i", - "ch" - ], - [ - "▁ic", - "h" - ], - [ - "▁", - "ich" - ], - [ - "Ma", - "x" - ], - [ - "M", - "ax" - ], - [ - "▁vol", - "ume" - ], - [ - "▁", - "volume" - ], - [ - "exec", - "ute" - ], - [ - "gr", - "e" - ], - [ - "g", - "re" - ], - [ - "▁s", - "port" - ], - [ - "▁sp", - "ort" - ], - [ - "▁spo", - "rt" - ], - [ - "ud", - "ad" - ], - [ - "uda", - "d" - ], - [ - "P", - "T" - ], - [ - "▁Rec", - "ords" - ], - [ - "▁Record", - "s" - ], - [ - "▁c", - "ook" - ], - [ - "▁co", - "ok" - ], - [ - "▁", - "cook" - ], - [ - "▁exp", - "and" - ], - [ - "▁", - "expand" - ], - [ - "б", - "і" - ], - [ - "▁al", - "tri" - ], - [ - "▁alt", - "ri" - ], - [ - "pp", - "et" - ], - [ - "ppe", - "t" - ], - [ - "p", - "pet" - ], - [ - "ar", - "se" - ], - [ - "ars", - "e" - ], - [ - "▁w", - "et" - ], - [ - "▁we", - "t" - ], - [ - "▁B", - "ob" - ], - [ - "▁Bo", - "b" - ], - [ - "▁", - "Bob" - ], - [ - "▁F", - "C" - ], - [ - "▁", - "FC" - ], - [ - "▁Associ", - "ation" - ], - [ - "uj", - "e" - ], - [ - "u", - "je" - ], - [ - "▁f", - "el" - ], - [ - "▁fe", - "l" - ], - [ - "▁", - "fel" - ], - [ - "▁с", - "лу" - ], - [ - "▁", - "слу" - ], - [ - "▁B", - "ig" - ], - [ - "▁Bi", - "g" - ], - [ - "▁", - "Big" - ], - [ - "/", - "\\" - ], - [ - "G", - "e" - ], - [ - "wh", - "ile" - ], - [ - "{", - "(" - ], - [ - "▁su", - "fficient" - ], - [ - "Pos", - "ition" - ], - [ - "P", - "osition" - ], - [ - "▁under", - "standing" - ], - [ - "▁understand", - "ing" - ], - [ - "▁n", - "ue" - ], - [ - "▁nu", - "e" - ], - [ - "▁r", - "az" - ], - [ - "▁ra", - "z" - ], - [ - "▁", - "raz" - ], - [ - "▁y", - "e" - ], - [ - "▁", - "ye" - ], - [ - "he", - "m" - ], - [ - "h", - "em" - ], - [ - "N", - "um" - ], - [ - "▁Pro", - "ject" - ], - [ - "▁", - "Project" - ], - [ - "▁I", - "ts" - ], - [ - "▁It", - "s" - ], - [ - "▁h", - "asta" - ], - [ - "▁ha", - "sta" - ], - [ - "▁has", - "ta" - ], - [ - "▁hast", - "a" - ], - [ - "en", - "so" - ], - [ - "ens", - "o" - ], - [ - "▁w", - "ire" - ], - [ - "▁wir", - "e" - ], - [ - "▁", - "wire" - ], - [ - "Re", - "t" - ], - [ - "R", - "et" - ], - [ - "u", - "j" - ], - [ - "pro", - "of" - ], - [ - "▁re", - "levant" - ], - [ - "▁relev", - "ant" - ], - [ - "▁part", - "ir" - ], - [ - "▁parti", - "r" - ], - [ - "▁a", - "go" - ], - [ - "▁ag", - "o" - ], - [ - "▁", - "ago" - ], - [ - "if", - "icate" - ], - [ - "ific", - "ate" - ], - [ - "ifica", - "te" - ], - [ - "▁d", - "omin" - ], - [ - "▁do", - "min" - ], - [ - "▁dom", - "in" - ], - [ - "▁", - "domin" - ], - [ - "▁b", - "oy" - ], - [ - "▁bo", - "y" - ], - [ - "▁", - "boy" - ], - [ - "▁p", - "lant" - ], - [ - "▁pl", - "ant" - ], - [ - "▁pla", - "nt" - ], - [ - "▁plan", - "t" - ], - [ - "▁", - "plant" - ], - [ - "▁enc", - "oding" - ], - [ - "▁", - "encoding" - ], - [ - "▁th", - "rows" - ], - [ - "▁thr", - "ows" - ], - [ - "▁throw", - "s" - ], - [ - "▁thro", - "ws" - ], - [ - "▁R", - "ock" - ], - [ - "▁Ro", - "ck" - ], - [ - "▁Roc", - "k" - ], - [ - "zo", - "ne" - ], - [ - "zon", - "e" - ], - [ - "z", - "one" - ], - [ - "ga", - "ng" - ], - [ - "gan", - "g" - ], - [ - "g", - "ang" - ], - [ - "wid", - "get" - ], - [ - "w", - "idget" - ], - [ - "▁interest", - "ing" - ], - [ - "DE", - "R" - ], - [ - "D", - "ER" - ], - [ - "▁d", - "emon" - ], - [ - "▁de", - "mon" - ], - [ - "▁dem", - "on" - ], - [ - "▁demo", - "n" - ], - [ - "▁off", - "ice" - ], - [ - "▁offic", - "e" - ], - [ - "▁", - "office" - ], - [ - "am", - "t" - ], - [ - "a", - "mt" - ], - [ - "ät", - "er" - ], - [ - "ä", - "ter" - ], - [ - "▁Wh", - "ite" - ], - [ - "▁Whit", - "e" - ], - [ - "▁", - "White" - ], - [ - "▁v", - "ersch" - ], - [ - "▁ver", - "sch" - ], - [ - "▁vers", - "ch" - ], - [ - "▁die", - "ser" - ], - [ - "▁dies", - "er" - ], - [ - "▁diese", - "r" - ], - [ - "▁M", - "ount" - ], - [ - "▁Mo", - "unt" - ], - [ - "▁Mou", - "nt" - ], - [ - "▁", - "Mount" - ], - [ - "▁stud", - "ents" - ], - [ - "▁student", - "s" - ], - [ - "▁P", - "ub" - ], - [ - "▁Pu", - "b" - ], - [ - "▁", - "Pub" - ], - [ - "▁Д", - "е" - ], - [ - "ij", - "a" - ], - [ - "i", - "ja" - ], - [ - "▁C", - "y" - ], - [ - "▁", - "Cy" - ], - [ - "▁Californ", - "ia" - ], - [ - "▁ab", - "ril" - ], - [ - "äl", - "l" - ], - [ - "ä", - "ll" - ], - [ - "▁ч", - "ем" - ], - [ - "▁че", - "м" - ], - [ - "T", - "V" - ], - [ - "▁m", - "és" - ], - [ - "▁mé", - "s" - ], - [ - "▁decl", - "ared" - ], - [ - "▁decla", - "red" - ], - [ - "▁declar", - "ed" - ], - [ - "▁declare", - "d" - ], - [ - "▁", - "ю" - ], - [ - "ő", - "l" - ], - [ - "ap", - "pa" - ], - [ - "app", - "a" - ], - [ - "a", - "ppa" - ], - [ - "▁Б", - "е" - ], - [ - "ec", - "ho" - ], - [ - "ech", - "o" - ], - [ - "e", - "cho" - ], - [ - "num", - "er" - ], - [ - "nu", - "mer" - ], - [ - "n", - "umer" - ], - [ - "▁po", - "sted" - ], - [ - "▁pos", - "ted" - ], - [ - "▁post", - "ed" - ], - [ - "▁poste", - "d" - ], - [ - "▁в", - "ер" - ], - [ - "▁ве", - "р" - ], - [ - "▁", - "вер" - ], - [ - "▁годи", - "не" - ], - [ - "▁we", - "ak" - ], - [ - "▁", - "weak" - ], - [ - "▁Re", - "public" - ], - [ - "▁Rep", - "ublic" - ], - [ - "▁Repub", - "lic" - ], - [ - "▁ch", - "ampion" - ], - [ - "▁champ", - "ion" - ], - [ - "ensure", - "math" - ], - [ - "you", - "r" - ], - [ - "yo", - "ur" - ], - [ - "y", - "our" - ], - [ - "▁O", - "ber" - ], - [ - "▁Ob", - "er" - ], - [ - "▁Cent", - "ral" - ], - [ - "is", - "a" - ], - [ - "i", - "sa" - ], - [ - "ан", - "д" - ], - [ - "а", - "нд" - ], - [ - "y", - "y" - ], - [ - "▁full", - "y" - ], - [ - "▁ful", - "ly" - ], - [ - "▁", - "fully" - ], - [ - "▁S", - "D" - ], - [ - "▁", - "SD" - ], - [ - "▁Lin", - "ux" - ], - [ - "▁", - "Linux" - ], - [ - "▁Sc", - "ott" - ], - [ - "▁Scot", - "t" - ], - [ - "part", - "ment" - ], - [ - "ko", - "n" - ], - [ - "k", - "on" - ], - [ - "▁cont", - "ract" - ], - [ - "▁contr", - "act" - ], - [ - "▁contra", - "ct" - ], - [ - "▁O", - "F" - ], - [ - "▁", - "OF" - ], - [ - "▁a", - "le" - ], - [ - "▁al", - "e" - ], - [ - "▁", - "ale" - ], - [ - "▁A", - "nn" - ], - [ - "▁An", - "n" - ], - [ - "▁на", - "д" - ], - [ - "▁", - "над" - ], - [ - "la", - "h" - ], - [ - "l", - "ah" - ], - [ - "▁N", - "ext" - ], - [ - "▁Ne", - "xt" - ], - [ - "▁", - "Next" - ], - [ - "or", - "en" - ], - [ - "ore", - "n" - ], - [ - "o", - "ren" - ], - [ - "▁d", - "isk" - ], - [ - "▁di", - "sk" - ], - [ - "▁dis", - "k" - ], - [ - "▁", - "disk" - ], - [ - "▁e", - "g" - ], - [ - "▁", - "eg" - ], - [ - "at", - "u" - ], - [ - "a", - "tu" - ], - [ - "ло", - "ги" - ], - [ - "лог", - "и" - ], - [ - "▁g", - "ames" - ], - [ - "▁game", - "s" - ], - [ - "▁ga", - "mes" - ], - [ - "▁gam", - "es" - ], - [ - "Le", - "ft" - ], - [ - "L", - "eft" - ], - [ - "▁l", - "u" - ], - [ - "▁", - "lu" - ], - [ - "▁fin", - "ite" - ], - [ - "▁finit", - "e" - ], - [ - "▁", - "finite" - ], - [ - "▁к", - "и" - ], - [ - "▁", - "ки" - ], - [ - "▁cr", - "ash" - ], - [ - "▁cra", - "sh" - ], - [ - "ph", - "er" - ], - [ - "phe", - "r" - ], - [ - "p", - "her" - ], - [ - "ex", - "e" - ], - [ - "e", - "xe" - ], - [ - "AT", - "ION" - ], - [ - "▁br", - "other" - ], - [ - "▁bro", - "ther" - ], - [ - "En", - "g" - ], - [ - "E", - "ng" - ], - [ - "ta", - "t" - ], - [ - "t", - "at" - ], - [ - "▁In", - "teger" - ], - [ - "▁", - "Integer" - ], - [ - "но", - "му" - ], - [ - "ном", - "у" - ], - [ - "н", - "ому" - ], - [ - "▁col", - "on" - ], - [ - "▁co", - "lon" - ], - [ - "▁", - "colon" - ], - [ - "i", - "qu" - ], - [ - "))", - "." - ], - [ - ")", - ")." - ], - [ - "iv", - "i" - ], - [ - "i", - "vi" - ], - [ - "▁M", - "ethod" - ], - [ - "▁Met", - "hod" - ], - [ - "▁", - "Method" - ], - [ - "ar", - "ten" - ], - [ - "art", - "en" - ], - [ - "arte", - "n" - ], - [ - "Un", - "i" - ], - [ - "U", - "ni" - ], - [ - "ve", - "ctor" - ], - [ - "vec", - "tor" - ], - [ - "v", - "ector" - ], - [ - "▁w", - "ood" - ], - [ - "▁wo", - "od" - ], - [ - "▁", - "wood" - ], - [ - "р", - "т" - ], - [ - "▁Л", - "е" - ], - [ - "▁siè", - "cle" - ], - [ - "▁g", - "ent" - ], - [ - "▁ge", - "nt" - ], - [ - "▁gen", - "t" - ], - [ - "▁", - "gent" - ], - [ - "}", - "\r" - ], - [ - "▁cont", - "ents" - ], - [ - "▁content", - "s" - ], - [ - "▁conten", - "ts" - ], - [ - "▁", - "contents" - ], - [ - "▁com", - "pan" - ], - [ - "▁comp", - "an" - ], - [ - "G", - "o" - ], - [ - "▁j", - "ou" - ], - [ - "▁jo", - "u" - ], - [ - "▁", - "jou" - ], - [ - "ue", - "nt" - ], - [ - "uen", - "t" - ], - [ - "u", - "ent" - ], - [ - "As", - "ync" - ], - [ - "A", - "sync" - ], - [ - "print", - "f" - ], - [ - "▁M", - "odel" - ], - [ - "▁Mod", - "el" - ], - [ - "▁Mo", - "del" - ], - [ - "▁Mode", - "l" - ], - [ - "▁", - "Model" - ], - [ - "▁ke", - "pt" - ], - [ - "AS", - "E" - ], - [ - "A", - "SE" - ], - [ - "▁prov", - "ides" - ], - [ - "▁provide", - "s" - ], - [ - "▁Ab", - "gerufen" - ], - [ - "▁G", - "all" - ], - [ - "▁Gal", - "l" - ], - [ - "▁Ga", - "ll" - ], - [ - "▁Al", - "f" - ], - [ - "S", - "A" - ], - [ - "▁M", - "em" - ], - [ - "▁Me", - "m" - ], - [ - "▁", - "Mem" - ], - [ - "▁k", - "ter" - ], - [ - "▁", - "kter" - ], - [ - "▁B", - "ru" - ], - [ - "▁Br", - "u" - ], - [ - "And", - "roid" - ], - [ - "(", - ":" - ], - [ - "▁У", - "краї" - ], - [ - "▁Укра", - "ї" - ], - [ - "N", - "e" - ], - [ - "M", - "in" - ], - [ - "at", - "r" - ], - [ - "a", - "tr" - ], - [ - "▁H", - "al" - ], - [ - "▁Ha", - "l" - ], - [ - "de", - "lete" - ], - [ - "del", - "ete" - ], - [ - "od", - "o" - ], - [ - "o", - "do" - ], - [ - "▁n", - "ão" - ], - [ - "èn", - "e" - ], - [ - "è", - "ne" - ], - [ - "▁calcul", - "ate" - ], - [ - "▁calc", - "ulate" - ], - [ - "Js", - "on" - ], - [ - "J", - "son" - ], - [ - "ke", - "ys" - ], - [ - "key", - "s" - ], - [ - "не", - "й" - ], - [ - "н", - "ей" - ], - [ - "▁h", - "ence" - ], - [ - "▁hen", - "ce" - ], - [ - "▁o", - "w" - ], - [ - "▁", - "ow" - ], - [ - "▁L", - "ib" - ], - [ - "▁Li", - "b" - ], - [ - "▁", - "Lib" - ], - [ - "en", - "o" - ], - [ - "e", - "no" - ], - [ - "▁L", - "ove" - ], - [ - "▁Lo", - "ve" - ], - [ - "▁Lov", - "e" - ], - [ - "os", - "i" - ], - [ - "o", - "si" - ], - [ - "wi", - "de" - ], - [ - "wid", - "e" - ], - [ - "w", - "ide" - ], - [ - "▁s", - "core" - ], - [ - "▁sc", - "ore" - ], - [ - "▁", - "score" - ], - [ - "ful", - "l" - ], - [ - "fu", - "ll" - ], - [ - "f", - "ull" - ], - [ - "во", - "д" - ], - [ - "в", - "од" - ], - [ - "▁determ", - "ine" - ], - [ - "▁determin", - "e" - ], - [ - "▁s", - "paces" - ], - [ - "▁sp", - "aces" - ], - [ - "▁space", - "s" - ], - [ - "▁spac", - "es" - ], - [ - "▁", - "spaces" - ], - [ - "ло", - "ва" - ], - [ - "лов", - "а" - ], - [ - "л", - "ова" - ], - [ - "▁pe", - "ut" - ], - [ - "▁peu", - "t" - ], - [ - "ér", - "al" - ], - [ - "éra", - "l" - ], - [ - "é", - "ral" - ], - [ - "ó", - "ł" - ], - [ - "▁app", - "oint" - ], - [ - "▁ap", - "point" - ], - [ - "▁T", - "w" - ], - [ - "▁", - "Tw" - ], - [ - "<", - "?" - ], - [ - "▁Or", - "der" - ], - [ - "▁Ord", - "er" - ], - [ - "▁", - "Order" - ], - [ - "▁h", - "op" - ], - [ - "▁ho", - "p" - ], - [ - "ran", - "dom" - ], - [ - "rand", - "om" - ], - [ - "r", - "andom" - ], - [ - "ca", - "che" - ], - [ - "c", - "ache" - ], - [ - "▁dest", - "roy" - ], - [ - "▁", - "destroy" - ], - [ - "▁r", - "ace" - ], - [ - "▁ra", - "ce" - ], - [ - "▁rac", - "e" - ], - [ - "▁", - "race" - ], - [ - "T", - "ag" - ], - [ - "▁r", - "id" - ], - [ - "▁ri", - "d" - ], - [ - "▁", - "rid" - ], - [ - "▁neg", - "ative" - ], - [ - "▁", - "negative" - ], - [ - "Ca", - "r" - ], - [ - "C", - "ar" - ], - [ - "ens", - "ional" - ], - [ - "ension", - "al" - ], - [ - "d", - "k" - ], - [ - "▁c", - "ro" - ], - [ - "▁cr", - "o" - ], - [ - "▁", - "cro" - ], - [ - "▁TH", - "EN" - ], - [ - "▁THE", - "N" - ], - [ - "▁$", - "." - ], - [ - "▁", - "$." - ], - [ - "en", - "sk" - ], - [ - "ens", - "k" - ], - [ - "N", - "E" - ], - [ - "H", - "O" - ], - [ - "▁k", - "le" - ], - [ - "▁kl", - "e" - ], - [ - "osp", - "ital" - ], - [ - "kt", - "e" - ], - [ - "k", - "te" - ], - [ - "fér", - "ences" - ], - [ - "férence", - "s" - ], - [ - "ud", - "es" - ], - [ - "ude", - "s" - ], - [ - "u", - "des" - ], - [ - "I", - "R" - ], - [ - "ot", - "ion" - ], - [ - "oti", - "on" - ], - [ - "o", - "tion" - ], - [ - "▁Re", - "al" - ], - [ - "▁", - "Real" - ], - [ - "▁Febru", - "ar" - ], - [ - "и", - "н" - ], - [ - "▁O", - "ld" - ], - [ - "▁Ol", - "d" - ], - [ - "▁", - "Old" - ], - [ - "ко", - "го" - ], - [ - "к", - "ого" - ], - [ - "le", - "ich" - ], - [ - "lei", - "ch" - ], - [ - "▁", - "р" - ], - [ - "ía", - "n" - ], - [ - "í", - "an" - ], - [ - "▁г", - "а" - ], - [ - "▁", - "га" - ], - [ - "ci", - "de" - ], - [ - "cid", - "e" - ], - [ - "c", - "ide" - ], - [ - "la", - "b" - ], - [ - "l", - "ab" - ], - [ - "▁p", - "ull" - ], - [ - "▁pu", - "ll" - ], - [ - "▁pul", - "l" - ], - [ - "▁", - "pull" - ], - [ - "▁'", - "/" - ], - [ - "Lo", - "ng" - ], - [ - "L", - "ong" - ], - [ - ",", - "$" - ], - [ - "▁appropri", - "ate" - ], - [ - "▁бы", - "ла" - ], - [ - "▁был", - "а" - ], - [ - "f", - "ühr" - ], - [ - "▁M", - "edia" - ], - [ - "▁Me", - "dia" - ], - [ - "▁Med", - "ia" - ], - [ - "▁Medi", - "a" - ], - [ - "▁", - "Media" - ], - [ - "▁m", - "anner" - ], - [ - "▁man", - "ner" - ], - [ - "▁Г", - "е" - ], - [ - "de", - "scription" - ], - [ - "des", - "cription" - ], - [ - "Be", - "an" - ], - [ - "▁L", - "ar" - ], - [ - "▁La", - "r" - ], - [ - "▁", - "Lar" - ], - [ - "']", - ";" - ], - [ - "'", - "];" - ], - [ - "▁re", - "lation" - ], - [ - "▁rel", - "ation" - ], - [ - "▁rela", - "tion" - ], - [ - "▁", - "relation" - ], - [ - "▁S", - "orry" - ], - [ - "▁Sor", - "ry" - ], - [ - "ha", - "r" - ], - [ - "h", - "ar" - ], - [ - "cp", - "p" - ], - [ - "c", - "pp" - ], - [ - "▁K", - "o" - ], - [ - "▁exec", - "ution" - ], - [ - "▁execut", - "ion" - ], - [ - "▁", - "execution" - ], - [ - "in", - "os" - ], - [ - "ino", - "s" - ], - [ - "i", - "nos" - ], - [ - "▁b", - "ul" - ], - [ - "▁bu", - "l" - ], - [ - "▁", - "bul" - ], - [ - "gr", - "ade" - ], - [ - "gra", - "de" - ], - [ - "grad", - "e" - ], - [ - "g", - "rade" - ], - [ - "▁M", - "u" - ], - [ - "▁p", - "il" - ], - [ - "▁pi", - "l" - ], - [ - "wr", - "it" - ], - [ - "w", - "rit" - ], - [ - "ific", - "ations" - ], - [ - "ification", - "s" - ], - [ - "in", - "ese" - ], - [ - "ine", - "se" - ], - [ - "ines", - "e" - ], - [ - "▁Ph", - "ili" - ], - [ - "▁Phil", - "i" - ], - [ - "d", - "x" - ], - [ - "▁le", - "ading" - ], - [ - "▁lead", - "ing" - ], - [ - "▁", - "leading" - ], - [ - "▁J", - "ournal" - ], - [ - "ov", - "ed" - ], - [ - "ove", - "d" - ], - [ - "o", - "ved" - ], - [ - "▁cont", - "ro" - ], - [ - "▁contr", - "o" - ], - [ - "но", - "ва" - ], - [ - "нов", - "а" - ], - [ - "н", - "ова" - ], - [ - "Y", - "es" - ], - [ - "▁ch", - "annel" - ], - [ - "▁", - "channel" - ], - [ - "))", - "," - ], - [ - ")", - ")," - ], - [ - "is", - "ten" - ], - [ - "ist", - "en" - ], - [ - "iste", - "n" - ], - [ - "i", - "sten" - ], - [ - "ak", - "a" - ], - [ - "a", - "ka" - ], - [ - "To", - "String" - ], - [ - "ma", - "s" - ], - [ - "m", - "as" - ], - [ - "▁e", - "tt" - ], - [ - "▁et", - "t" - ], - [ - "▁", - "ett" - ], - [ - "▁for", - "ces" - ], - [ - "▁force", - "s" - ], - [ - "ul", - "ations" - ], - [ - "ulation", - "s" - ], - [ - "▁C", - "all" - ], - [ - "▁Cal", - "l" - ], - [ - "▁Ca", - "ll" - ], - [ - "▁", - "Call" - ], - [ - "▁explan", - "ation" - ], - [ - "or", - "ing" - ], - [ - "ori", - "ng" - ], - [ - "o", - "ring" - ], - [ - "AT", - "A" - ], - [ - "A", - "TA" - ], - [ - "ch", - "ter" - ], - [ - "cht", - "er" - ], - [ - "chte", - "r" - ], - [ - "wh", - "en" - ], - [ - "w", - "hen" - ], - [ - "V", - "C" - ], - [ - "▁Jah", - "rh" - ], - [ - "▁Jahr", - "h" - ], - [ - "Ca", - "se" - ], - [ - "C", - "ase" - ], - [ - "▁comm", - "ands" - ], - [ - "▁command", - "s" - ], - [ - "▁", - "commands" - ], - [ - "▁r", - "ich" - ], - [ - "▁ric", - "h" - ], - [ - "▁ri", - "ch" - ], - [ - "▁", - "rich" - ], - [ - "bu", - "s" - ], - [ - "b", - "us" - ], - [ - "F", - "e" - ], - [ - "mb", - "ox" - ], - [ - "m", - "box" - ], - [ - "▁re", - "con" - ], - [ - "▁rec", - "on" - ], - [ - "ñ", - "o" - ], - [ - "▁s", - "hape" - ], - [ - "▁sh", - "ape" - ], - [ - "▁", - "shape" - ], - [ - "ow", - "y" - ], - [ - "o", - "wy" - ], - [ - "en", - "try" - ], - [ - "ent", - "ry" - ], - [ - "entr", - "y" - ], - [ - "it", - "able" - ], - [ - "ita", - "ble" - ], - [ - "i", - "table" - ], - [ - "▁e", - "lection" - ], - [ - "▁el", - "ection" - ], - [ - "▁elect", - "ion" - ], - [ - "▁ele", - "ction" - ], - [ - "є", - "ться" - ], - [ - "▁p", - "rep" - ], - [ - "▁pr", - "ep" - ], - [ - "▁pre", - "p" - ], - [ - "▁", - "prep" - ], - [ - "v", - "á" - ], - [ - "▁in", - "fin" - ], - [ - "▁inf", - "in" - ], - [ - "lo", - "t" - ], - [ - "l", - "ot" - ], - [ - "▁bo", - "oks" - ], - [ - "▁book", - "s" - ], - [ - "▁", - "books" - ], - [ - "▁U", - "SA" - ], - [ - "▁US", - "A" - ], - [ - "▁", - "USA" - ], - [ - "ли", - "н" - ], - [ - "л", - "ин" - ], - [ - "▁p", - "om" - ], - [ - "▁po", - "m" - ], - [ - "▁", - "pom" - ], - [ - "▁n", - "as" - ], - [ - "▁na", - "s" - ], - [ - "▁", - "nas" - ], - [ - "▁t", - "ags" - ], - [ - "▁tag", - "s" - ], - [ - "▁ta", - "gs" - ], - [ - "▁", - "tags" - ], - [ - "▁exec", - "uted" - ], - [ - "▁execute", - "d" - ], - [ - "▁execut", - "ed" - ], - [ - "ail", - "le" - ], - [ - "ai", - "lle" - ], - [ - "a", - "ille" - ], - [ - "lu", - "ng" - ], - [ - "l", - "ung" - ], - [ - "▁Java", - "Script" - ], - [ - "▁", - "JavaScript" - ], - [ - "▁b", - "all" - ], - [ - "▁bal", - "l" - ], - [ - "▁ba", - "ll" - ], - [ - "▁", - "ball" - ], - [ - "▁ain", - "si" - ], - [ - "▁P", - "ri" - ], - [ - "▁Pr", - "i" - ], - [ - "{", - "$" - ], - [ - "▁U", - "N" - ], - [ - "▁", - "UN" - ], - [ - "▁R", - "am" - ], - [ - "▁Ra", - "m" - ], - [ - "▁h", - "ear" - ], - [ - "▁he", - "ar" - ], - [ - "▁U", - "buntu" - ], - [ - ">(", - ");" - ], - [ - ">()", - ";" - ], - [ - ">", - "();" - ], - [ - "▁p", - "ure" - ], - [ - "▁pu", - "re" - ], - [ - "▁pur", - "e" - ], - [ - "▁em", - "bed" - ], - [ - "▁emb", - "ed" - ], - [ - "▁", - "embed" - ], - [ - "a", - "ção" - ], - [ - "cont", - "roller" - ], - [ - "control", - "ler" - ], - [ - "▁mar", - "ried" - ], - [ - "▁F", - "ol" - ], - [ - "▁Fo", - "l" - ], - [ - "fa", - "mil" - ], - [ - "f", - "amil" - ], - [ - "▁p", - "rec" - ], - [ - "▁pr", - "ec" - ], - [ - "▁pre", - "c" - ], - [ - "▁", - "prec" - ], - [ - "▁rec", - "urs" - ], - [ - "pa", - "d" - ], - [ - "p", - "ad" - ], - [ - "istr", - "ation" - ], - [ - "istra", - "tion" - ], - [ - "▁respect", - "ively" - ], - [ - "▁respective", - "ly" - ], - [ - "[", - "$" - ], - [ - "au", - "tor" - ], - [ - "aut", - "or" - ], - [ - "auto", - "r" - ], - [ - "a", - "utor" - ], - [ - "▁g", - "rav" - ], - [ - "▁gr", - "av" - ], - [ - "▁gra", - "v" - ], - [ - "ie", - "ra" - ], - [ - "ier", - "a" - ], - [ - "i", - "era" - ], - [ - "az", - "ioni" - ], - [ - "azi", - "oni" - ], - [ - "a", - "zioni" - ], - [ - "▁B", - "ul" - ], - [ - "▁Bu", - "l" - ], - [ - "▁Austral", - "ia" - ], - [ - "mon", - "d" - ], - [ - "mo", - "nd" - ], - [ - "m", - "ond" - ], - [ - "▁T", - "ro" - ], - [ - "▁Tr", - "o" - ], - [ - "▁E", - "le" - ], - [ - "▁El", - "e" - ], - [ - "pack", - "ages" - ], - [ - "package", - "s" - ], - [ - "ms", - "dn" - ], - [ - "▁A", - "ls" - ], - [ - "▁Al", - "s" - ], - [ - "▁pr", - "zy" - ], - [ - "▁prz", - "y" - ], - [ - "AR", - "T" - ], - [ - "A", - "RT" - ], - [ - "▁char", - "ge" - ], - [ - "▁charg", - "e" - ], - [ - "▁", - "charge" - ], - [ - "▁app", - "lications" - ], - [ - "▁application", - "s" - ], - [ - "▁applic", - "ations" - ], - [ - "Un", - "it" - ], - [ - "Uni", - "t" - ], - [ - "U", - "nit" - ], - [ - "ar", - "en" - ], - [ - "are", - "n" - ], - [ - "a", - "ren" - ], - [ - "▁sud", - "den" - ], - [ - "om", - "eter" - ], - [ - "ome", - "ter" - ], - [ - "omet", - "er" - ], - [ - "o", - "meter" - ], - [ - "▁d", - "ot" - ], - [ - "▁do", - "t" - ], - [ - "▁", - "dot" - ], - [ - "ac", - "ji" - ], - [ - "a", - "cji" - ], - [ - "кт", - "ор" - ], - [ - "кто", - "р" - ], - [ - "к", - "тор" - ], - [ - "im", - "in" - ], - [ - "imi", - "n" - ], - [ - "i", - "min" - ], - [ - "en", - "ing" - ], - [ - "eni", - "ng" - ], - [ - "e", - "ning" - ], - [ - "▁d", - "onde" - ], - [ - "▁do", - "nde" - ], - [ - "▁don", - "de" - ], - [ - "▁H", - "o" - ], - [ - "tr", - "ee" - ], - [ - "tre", - "e" - ], - [ - "t", - "ree" - ], - [ - "m", - "b" - ], - [ - "▁d", - "rag" - ], - [ - "▁dr", - "ag" - ], - [ - "▁dra", - "g" - ], - [ - "▁", - "drag" - ], - [ - "aj", - "e" - ], - [ - "a", - "je" - ], - [ - "▁in", - "valid" - ], - [ - "▁", - "invalid" - ], - [ - "▁fin", - "ish" - ], - [ - "la", - "im" - ], - [ - "▁f", - "eed" - ], - [ - "▁fe", - "ed" - ], - [ - "▁fee", - "d" - ], - [ - "▁", - "feed" - ], - [ - "▁N", - "ap" - ], - [ - "▁Na", - "p" - ], - [ - "ro", - "om" - ], - [ - "r", - "oom" - ], - [ - "im", - "ages" - ], - [ - "ima", - "ges" - ], - [ - "image", - "s" - ], - [ - "▁са", - "й" - ], - [ - "▁su", - "cc" - ], - [ - "▁suc", - "c" - ], - [ - "if", - "fer" - ], - [ - "iff", - "er" - ], - [ - "iffe", - "r" - ], - [ - "▁a", - "ño" - ], - [ - "▁añ", - "o" - ], - [ - "▁c", - "ual" - ], - [ - "▁cu", - "al" - ], - [ - "ме", - "ри" - ], - [ - "мер", - "и" - ], - [ - "D", - "R" - ], - [ - "▁B", - "ilder" - ], - [ - "▁Bi", - "lder" - ], - [ - "▁Bild", - "er" - ], - [ - "▁Bil", - "der" - ], - [ - "б", - "ра" - ], - [ - "ra", - "it" - ], - [ - "rai", - "t" - ], - [ - "r", - "ait" - ], - [ - "pa", - "n" - ], - [ - "p", - "an" - ], - [ - "ен", - "ь" - ], - [ - "е", - "нь" - ], - [ - "▁dist", - "inct" - ], - [ - "▁K", - "n" - ], - [ - "ön", - "ig" - ], - [ - "ö", - "nig" - ], - [ - "an", - "ced" - ], - [ - "ance", - "d" - ], - [ - "anc", - "ed" - ], - [ - "▁lo", - "ading" - ], - [ - "▁load", - "ing" - ], - [ - "▁", - "loading" - ], - [ - "▁Te", - "chn" - ], - [ - "▁S", - "el" - ], - [ - "▁Se", - "l" - ], - [ - "mu", - "s" - ], - [ - "m", - "us" - ], - [ - "▁r", - "ail" - ], - [ - "▁ra", - "il" - ], - [ - "▁st", - "udent" - ], - [ - "▁stud", - "ent" - ], - [ - "▁", - "student" - ], - [ - "▁not", - "ice" - ], - [ - "▁s", - "la" - ], - [ - "▁sl", - "a" - ], - [ - "▁Д", - "а" - ], - [ - "▁gu", - "ard" - ], - [ - "▁", - "guard" - ], - [ - "▁D", - "ay" - ], - [ - "▁Da", - "y" - ], - [ - "▁", - "Day" - ], - [ - "ва", - "ли" - ], - [ - "вал", - "и" - ], - [ - "в", - "али" - ], - [ - "Op", - "tion" - ], - [ - "Opt", - "ion" - ], - [ - "O", - "ption" - ], - [ - "ais", - "on" - ], - [ - "ai", - "son" - ], - [ - "a", - "ison" - ], - [ - "ip", - "p" - ], - [ - "i", - "pp" - ], - [ - "▁J", - "un" - ], - [ - "▁Ju", - "n" - ], - [ - "▁f", - "ell" - ], - [ - "▁fe", - "ll" - ], - [ - "▁fel", - "l" - ], - [ - "▁ab", - "solute" - ], - [ - "▁absol", - "ute" - ], - [ - "▁", - "absolute" - ], - [ - "ов", - "е" - ], - [ - "о", - "ве" - ], - [ - "de", - "bug" - ], - [ - "deb", - "ug" - ], - [ - "▁S", - "ud" - ], - [ - "▁Su", - "d" - ], - [ - "п", - "ы" - ], - [ - "ug", - "ins" - ], - [ - "ugin", - "s" - ], - [ - "▁view", - "s" - ], - [ - "▁vie", - "ws" - ], - [ - "▁", - "views" - ], - [ - "la", - "y" - ], - [ - "l", - "ay" - ], - [ - "▁s", - "urr" - ], - [ - "▁su", - "rr" - ], - [ - "▁sur", - "r" - ], - [ - "▁st", - "ood" - ], - [ - "▁sto", - "od" - ], - [ - "▁", - "stood" - ], - [ - "▁в", - "і" - ], - [ - "▁", - "ві" - ], - [ - "select", - "ed" - ], - [ - "sel", - "ected" - ], - [ - "г", - "і" - ], - [ - "▁att", - "ributes" - ], - [ - "▁attribute", - "s" - ], - [ - "▁", - "attributes" - ], - [ - "fin", - "al" - ], - [ - "fi", - "nal" - ], - [ - "f", - "inal" - ], - [ - "en", - "da" - ], - [ - "end", - "a" - ], - [ - "▁B", - "on" - ], - [ - "▁Bo", - "n" - ], - [ - "ne", - "rs" - ], - [ - "ner", - "s" - ], - [ - "n", - "ers" - ], - [ - "▁W", - "er" - ], - [ - "▁We", - "r" - ], - [ - "bu", - "r" - ], - [ - "b", - "ur" - ], - [ - "it", - "tel" - ], - [ - "itt", - "el" - ], - [ - "itte", - "l" - ], - [ - "▁m", - "oving" - ], - [ - "▁mov", - "ing" - ], - [ - "▁mo", - "ving" - ], - [ - "▁P", - "lan" - ], - [ - "▁Pl", - "an" - ], - [ - "▁Pla", - "n" - ], - [ - "▁", - "Plan" - ], - [ - "is", - "ches" - ], - [ - "isch", - "es" - ], - [ - "ische", - "s" - ], - [ - "isc", - "hes" - ], - [ - "J", - "ava" - ], - [ - "▁b", - "asis" - ], - [ - "▁bas", - "is" - ], - [ - "▁B", - "us" - ], - [ - "▁Bu", - "s" - ], - [ - "▁", - "Bus" - ], - [ - "▁A", - "u" - ], - [ - "▁I", - "ll" - ], - [ - "▁Il", - "l" - ], - [ - "▁", - "Ill" - ], - [ - "▁вре", - "мя" - ], - [ - "▁ц", - "ент" - ], - [ - "▁", - "цент" - ], - [ - "hand", - "le" - ], - [ - "сту", - "п" - ], - [ - "▁F", - "ar" - ], - [ - "▁Fa", - "r" - ], - [ - "▁o", - "raz" - ], - [ - "▁or", - "az" - ], - [ - "▁ora", - "z" - ], - [ - "oc", - "r" - ], - [ - "o", - "cr" - ], - [ - "▁se", - "it" - ], - [ - "▁sei", - "t" - ], - [ - "on", - "der" - ], - [ - "ond", - "er" - ], - [ - "onde", - "r" - ], - [ - "o", - "nder" - ], - [ - "до", - "м" - ], - [ - "д", - "ом" - ], - [ - ":", - "/" - ], - [ - "ch", - "or" - ], - [ - "cho", - "r" - ], - [ - "c", - "hor" - ], - [ - "▁T", - "own" - ], - [ - "▁To", - "wn" - ], - [ - "▁Tow", - "n" - ], - [ - "▁def", - "init" - ], - [ - "▁defin", - "it" - ], - [ - "re", - "act" - ], - [ - "rea", - "ct" - ], - [ - "▁pie", - "ce" - ], - [ - "▁Kar", - "l" - ], - [ - "▁Ka", - "rl" - ], - [ - "C", - "I" - ], - [ - "▁App", - "lication" - ], - [ - "▁", - "Application" - ], - [ - "un", - "ter" - ], - [ - "unt", - "er" - ], - [ - "unte", - "r" - ], - [ - "▁for", - "med" - ], - [ - "▁form", - "ed" - ], - [ - "▁forme", - "d" - ], - [ - "▁", - "formed" - ], - [ - "▁п", - "у" - ], - [ - "▁", - "пу" - ], - [ - "B", - "o" - ], - [ - "▁Dan", - "iel" - ], - [ - "▁", - "Daniel" - ], - [ - "▁п", - "ла" - ], - [ - "▁", - "пла" - ], - [ - "Bo", - "dy" - ], - [ - "B", - "ody" - ], - [ - "})", - "$" - ], - [ - "}", - ")$" - ], - [ - "▁бы", - "ли" - ], - [ - "▁был", - "и" - ], - [ - "▁e", - "arth" - ], - [ - "▁ear", - "th" - ], - [ - "г", - "ла" - ], - [ - "Th", - "ere" - ], - [ - "The", - "re" - ], - [ - "T", - "here" - ], - [ - "▁с", - "тра" - ], - [ - "▁ст", - "ра" - ], - [ - "▁", - "стра" - ], - [ - "▁v", - "ille" - ], - [ - "▁vi", - "lle" - ], - [ - "▁vill", - "e" - ], - [ - "▁vil", - "le" - ], - [ - "▁", - "ville" - ], - [ - "▁c", - "entre" - ], - [ - "▁cent", - "re" - ], - [ - ")", - "\r" - ], - [ - "▁help", - "ful" - ], - [ - "▁+", - "+" - ], - [ - "▁", - "++" - ], - [ - "▁C", - "G" - ], - [ - "▁", - "CG" - ], - [ - "iz", - "ione" - ], - [ - "izi", - "one" - ], - [ - "izio", - "ne" - ], - [ - "i", - "zione" - ], - [ - "▁G", - "ame" - ], - [ - "▁Ga", - "me" - ], - [ - "▁Gam", - "e" - ], - [ - "▁", - "Game" - ], - [ - "▁Wh", - "ich" - ], - [ - "▁p", - "ip" - ], - [ - "▁pi", - "p" - ], - [ - "▁", - "pip" - ], - [ - "▁Port", - "ug" - ], - [ - "D", - "S" - ], - [ - "▁de", - "scribe" - ], - [ - "▁des", - "cribe" - ], - [ - "▁descri", - "be" - ], - [ - "▁check", - "ing" - ], - [ - "▁man", - "ager" - ], - [ - "▁manage", - "r" - ], - [ - "▁", - "manager" - ], - [ - "B", - "O" - ], - [ - "▁B", - "undes" - ], - [ - "▁Bund", - "es" - ], - [ - "▁Bun", - "des" - ], - [ - "bu", - "ch" - ], - [ - "b", - "uch" - ], - [ - "▁dec", - "ided" - ], - [ - "▁decide", - "d" - ], - [ - "▁decid", - "ed" - ], - [ - "▁Jahrh", - "undert" - ], - [ - "▁f", - "if" - ], - [ - "▁fi", - "f" - ], - [ - "▁", - "fif" - ], - [ - "e", - "fficient" - ], - [ - "an", - "ci" - ], - [ - "anc", - "i" - ], - [ - "br", - "aries" - ], - [ - "bra", - "ries" - ], - [ - "▁f", - "ails" - ], - [ - "▁fa", - "ils" - ], - [ - "▁fail", - "s" - ], - [ - "▁k", - "ernel" - ], - [ - "▁ker", - "nel" - ], - [ - "▁", - "kernel" - ], - [ - "▁G", - "l" - ], - [ - "▁N", - "acional" - ], - [ - "▁pro", - "ceed" - ], - [ - "▁proc", - "eed" - ], - [ - "▁f", - "uer" - ], - [ - "▁fue", - "r" - ], - [ - "▁fu", - "er" - ], - [ - "▁l", - "iving" - ], - [ - "▁li", - "ving" - ], - [ - "▁liv", - "ing" - ], - [ - "▁success", - "fully" - ], - [ - "▁successful", - "ly" - ], - [ - "▁f", - "aster" - ], - [ - "▁fa", - "ster" - ], - [ - "▁fast", - "er" - ], - [ - "▁fas", - "ter" - ], - [ - "▁con", - "tre" - ], - [ - "▁cont", - "re" - ], - [ - "▁contr", - "e" - ], - [ - "▁", - "contre" - ], - [ - "▁pr", - "ison" - ], - [ - "▁pri", - "son" - ], - [ - "▁pris", - "on" - ], - [ - "OR", - "T" - ], - [ - "O", - "RT" - ], - [ - "he", - "lp" - ], - [ - "hel", - "p" - ], - [ - "▁a", - "utor" - ], - [ - "▁au", - "tor" - ], - [ - "▁aut", - "or" - ], - [ - "▁auto", - "r" - ], - [ - "▁", - "autor" - ], - [ - "ła", - "w" - ], - [ - "ł", - "aw" - ], - [ - "aj", - "ą" - ], - [ - "a", - "ją" - ], - [ - "▁A", - "rm" - ], - [ - "▁Ar", - "m" - ], - [ - "▁", - "Arm" - ], - [ - "▁pro", - "vin" - ], - [ - "▁prov", - "in" - ], - [ - "▁na", - "am" - ], - [ - "/", - "#" - ], - [ - "se", - "d" - ], - [ - "s", - "ed" - ], - [ - "▁g", - "esch" - ], - [ - "▁ge", - "sch" - ], - [ - "▁ges", - "ch" - ], - [ - "▁", - "gesch" - ], - [ - "▁м", - "ар" - ], - [ - "▁ма", - "р" - ], - [ - "▁", - "мар" - ], - [ - "es", - "k" - ], - [ - "e", - "sk" - ], - [ - "ter", - "m" - ], - [ - "te", - "rm" - ], - [ - "t", - "erm" - ], - [ - "▁T", - "ex" - ], - [ - "▁Te", - "x" - ], - [ - "▁", - "Tex" - ], - [ - "ir", - "ing" - ], - [ - "iri", - "ng" - ], - [ - "i", - "ring" - ], - [ - "▁t", - "ools" - ], - [ - "▁to", - "ols" - ], - [ - "▁too", - "ls" - ], - [ - "▁tool", - "s" - ], - [ - "▁", - "tools" - ], - [ - "PD", - "F" - ], - [ - "P", - "DF" - ], - [ - "▁u", - "lt" - ], - [ - "▁ul", - "t" - ], - [ - "▁", - "ult" - ], - [ - "iss", - "enschaft" - ], - [ - "issen", - "schaft" - ], - [ - "▁could", - "n" - ], - [ - "di", - "ng" - ], - [ - "din", - "g" - ], - [ - "d", - "ing" - ], - [ - "De", - "p" - ], - [ - "D", - "ep" - ], - [ - "{", - "-" - ], - [ - "▁pre", - "dict" - ], - [ - "▁pred", - "ict" - ], - [ - "▁", - "predict" - ], - [ - "ant", - "age" - ], - [ - "anta", - "ge" - ], - [ - "▁L", - "ike" - ], - [ - "▁Li", - "ke" - ], - [ - "▁", - "Like" - ], - [ - "▁Б", - "и" - ], - [ - "to", - "ols" - ], - [ - "tool", - "s" - ], - [ - "t", - "ools" - ], - [ - "es", - "tra" - ], - [ - "est", - "ra" - ], - [ - "estr", - "a" - ], - [ - "e", - "stra" - ], - [ - "▁k", - "i" - ], - [ - "▁", - "ki" - ], - [ - "▁J", - "im" - ], - [ - "▁Ji", - "m" - ], - [ - "st", - "ar" - ], - [ - "sta", - "r" - ], - [ - "s", - "tar" - ], - [ - "▁re", - "mark" - ], - [ - "▁r", - "emark" - ], - [ - "▁rem", - "ark" - ], - [ - "▁", - "remark" - ], - [ - "ó", - "g" - ], - [ - "na", - "bla" - ], - [ - "nab", - "la" - ], - [ - "▁Al", - "though" - ], - [ - "mod", - "e" - ], - [ - "mo", - "de" - ], - [ - "m", - "ode" - ], - [ - "H", - "ost" - ], - [ - "▁st", - "range" - ], - [ - "▁str", - "ange" - ], - [ - "▁stran", - "ge" - ], - [ - "No", - "ne" - ], - [ - "Non", - "e" - ], - [ - "N", - "one" - ], - [ - "bl", - "ack" - ], - [ - "bla", - "ck" - ], - [ - "b", - "lack" - ], - [ - "▁F", - "estival" - ], - [ - "▁Fest", - "ival" - ], - [ - "▁I", - "S" - ], - [ - "▁", - "IS" - ], - [ - "an", - "za" - ], - [ - "anz", - "a" - ], - [ - "▁(", - "-" - ], - [ - "▁", - "(-" - ], - [ - "ic", - "ket" - ], - [ - "ick", - "et" - ], - [ - "i", - "cket" - ], - [ - "ко", - "ла" - ], - [ - "кол", - "а" - ], - [ - "▁J", - "es" - ], - [ - "▁Je", - "s" - ], - [ - "▁f", - "lex" - ], - [ - "▁fl", - "ex" - ], - [ - "▁fle", - "x" - ], - [ - "▁", - "flex" - ], - [ - "▁", - "À" - ], - [ - "▁N", - "etwork" - ], - [ - "▁Net", - "work" - ], - [ - "▁", - "Network" - ], - [ - "▁E", - "X" - ], - [ - "▁", - "EX" - ], - [ - "▁e", - "nero" - ], - [ - "▁en", - "ero" - ], - [ - "▁ener", - "o" - ], - [ - "!", - "”" - ], - [ - "▁O", - "rt" - ], - [ - "▁Or", - "t" - ], - [ - "▁al", - "ors" - ], - [ - "▁Or", - "iginal" - ], - [ - "▁Origin", - "al" - ], - [ - "▁Orig", - "inal" - ], - [ - "▁", - "Original" - ], - [ - "▁z", - "o" - ], - [ - "▁", - "zo" - ], - [ - "ны", - "ми" - ], - [ - "ным", - "и" - ], - [ - "▁s", - "pl" - ], - [ - "▁sp", - "l" - ], - [ - "▁", - "spl" - ], - [ - "Dra", - "w" - ], - [ - "Dr", - "aw" - ], - [ - "D", - "raw" - ], - [ - "yo", - "nd" - ], - [ - "y", - "ond" - ], - [ - "─", - "─" - ], - [ - "▁O", - "t" - ], - [ - "▁d", - "ram" - ], - [ - "▁dr", - "am" - ], - [ - "▁dra", - "m" - ], - [ - "▁di", - "vision" - ], - [ - "▁div", - "ision" - ], - [ - "▁divis", - "ion" - ], - [ - "▁e", - "fficient" - ], - [ - "▁effic", - "ient" - ], - [ - "▁", - "efficient" - ], - [ - "▁Г", - "а" - ], - [ - "▁v", - "ier" - ], - [ - "▁vi", - "er" - ], - [ - "▁vie", - "r" - ], - [ - "▁", - "vier" - ], - [ - "na", - "k" - ], - [ - "n", - "ak" - ], - [ - "L", - "S" - ], - [ - "▁sp", - "irit" - ], - [ - "▁spir", - "it" - ], - [ - "zeich", - "net" - ], - [ - "▁d", - "ici" - ], - [ - "▁di", - "ci" - ], - [ - "▁dic", - "i" - ], - [ - "cl", - "ear" - ], - [ - "cle", - "ar" - ], - [ - "c", - "lear" - ], - [ - "co", - "py" - ], - [ - "cop", - "y" - ], - [ - "c", - "opy" - ], - [ - "ya", - "r" - ], - [ - "y", - "ar" - ], - [ - "▁ро", - "ці" - ], - [ - "us", - "qu" - ], - [ - "u", - "squ" - ], - [ - "▁n", - "ous" - ], - [ - "▁no", - "us" - ], - [ - "▁nou", - "s" - ], - [ - "▁b", - "lev" - ], - [ - "▁bl", - "ev" - ], - [ - "▁ble", - "v" - ], - [ - "ж", - "де" - ], - [ - "Ar", - "g" - ], - [ - "A", - "rg" - ], - [ - "▁per", - "formed" - ], - [ - "▁perform", - "ed" - ], - [ - "▁M", - "ake" - ], - [ - "▁Ma", - "ke" - ], - [ - "▁Mak", - "e" - ], - [ - "▁", - "Make" - ], - [ - "▁Car", - "ol" - ], - [ - "▁Ca", - "rol" - ], - [ - "et", - "to" - ], - [ - "ett", - "o" - ], - [ - "e", - "tto" - ], - [ - "▁S", - "and" - ], - [ - "▁San", - "d" - ], - [ - "▁Sa", - "nd" - ], - [ - "▁D", - "isc" - ], - [ - "▁Dis", - "c" - ], - [ - "▁Di", - "sc" - ], - [ - "En", - "c" - ], - [ - "E", - "nc" - ], - [ - "re", - "ro" - ], - [ - "rer", - "o" - ], - [ - "r", - "ero" - ], - [ - "ha", - "sh" - ], - [ - "has", - "h" - ], - [ - "h", - "ash" - ], - [ - "▁f", - "ocus" - ], - [ - "▁fo", - "cus" - ], - [ - "▁foc", - "us" - ], - [ - "▁", - "focus" - ], - [ - "▁att", - "ention" - ], - [ - "▁a", - "gre" - ], - [ - "▁ag", - "re" - ], - [ - "▁agr", - "e" - ], - [ - "▁di", - "vis" - ], - [ - "▁div", - "is" - ], - [ - "▁бы", - "ло" - ], - [ - "▁был", - "о" - ], - [ - "▁e", - "j" - ], - [ - "▁", - "ej" - ], - [ - "▁m", - "arch" - ], - [ - "▁mar", - "ch" - ], - [ - "▁marc", - "h" - ], - [ - "▁ph", - "ase" - ], - [ - "▁", - "phase" - ], - [ - "ía", - "s" - ], - [ - "í", - "as" - ], - [ - "▁ph", - "il" - ], - [ - "▁P", - "ap" - ], - [ - "▁Pa", - "p" - ], - [ - "▁r", - "iver" - ], - [ - "▁riv", - "er" - ], - [ - "▁ri", - "ver" - ], - [ - "▁", - "river" - ], - [ - "▁c", - "aused" - ], - [ - "▁caus", - "ed" - ], - [ - "▁cause", - "d" - ], - [ - "▁ca", - "used" - ], - [ - "pl", - "ugin" - ], - [ - "▁Te", - "am" - ], - [ - "▁", - "Team" - ], - [ - "ul", - "er" - ], - [ - "ule", - "r" - ], - [ - "u", - "ler" - ], - [ - "▁$", - "(\"#" - ], - [ - "▁$(\"", - "#" - ], - [ - "ie", - "j" - ], - [ - "i", - "ej" - ], - [ - "I", - "SBN" - ], - [ - "na", - "m" - ], - [ - "n", - "am" - ], - [ - "▁f", - "ight" - ], - [ - "▁fig", - "ht" - ], - [ - "vi", - "d" - ], - [ - "v", - "id" - ], - [ - "▁L", - "ud" - ], - [ - "▁Lu", - "d" - ], - [ - "Select", - "ed" - ], - [ - ":@", - "\"" - ], - [ - ":", - "@\"" - ], - [ - "▁P", - "od" - ], - [ - "▁Po", - "d" - ], - [ - "▁", - "Pod" - ], - [ - "▁ann", - "ées" - ], - [ - "▁année", - "s" - ], - [ - "ar", - "ios" - ], - [ - "ari", - "os" - ], - [ - "ario", - "s" - ], - [ - "a", - "rios" - ], - [ - "▁deutsch", - "er" - ], - [ - "▁deutsche", - "r" - ], - [ - "▁N", - "A" - ], - [ - "▁", - "NA" - ], - [ - "▁и", - "ю" - ], - [ - "▁d", - "ictionary" - ], - [ - "▁diction", - "ary" - ], - [ - "▁", - "dictionary" - ], - [ - "▁Л", - "а" - ], - [ - "▁T", - "ri" - ], - [ - "▁Tr", - "i" - ], - [ - "▁", - "Tri" - ], - [ - "è", - "n" - ], - [ - "▁polit", - "ical" - ], - [ - "rid", - "ge" - ], - [ - "r", - "idge" - ], - [ - "at", - "ten" - ], - [ - "att", - "en" - ], - [ - "atte", - "n" - ], - [ - "▁circ", - "le" - ], - [ - "▁cir", - "cle" - ], - [ - "▁", - "circle" - ], - [ - "▁trans", - "port" - ], - [ - "▁", - "transport" - ], - [ - "em", - "as" - ], - [ - "ema", - "s" - ], - [ - "e", - "mas" - ], - [ - "F", - "C" - ], - [ - "▁replace", - "d" - ], - [ - "▁repla", - "ced" - ], - [ - "▁A", - "ud" - ], - [ - "▁Au", - "d" - ], - [ - "is", - "ka" - ], - [ - "isk", - "a" - ], - [ - "i", - "ska" - ], - [ - "Config", - "uration" - ], - [ - "▁so", - "ort" - ], - [ - "▁Н", - "е" - ], - [ - "▁s", - "equ" - ], - [ - "▁se", - "qu" - ], - [ - "▁seq", - "u" - ], - [ - "▁", - "sequ" - ], - [ - "PR", - "O" - ], - [ - "P", - "RO" - ], - [ - "▁b", - "ud" - ], - [ - "▁bu", - "d" - ], - [ - "▁", - "bud" - ], - [ - "▁{", - "{" - ], - [ - "▁", - "{{" - ], - [ - "lie", - "ß" - ], - [ - "l", - "ieß" - ], - [ - "▁M", - "as" - ], - [ - "▁Ma", - "s" - ], - [ - "de", - "rs" - ], - [ - "der", - "s" - ], - [ - "d", - "ers" - ], - [ - "us", - "ammen" - ], - [ - "es", - "a" - ], - [ - "e", - "sa" - ], - [ - "▁L", - "y" - ], - [ - "в", - "ро" - ], - [ - "ma", - "c" - ], - [ - "m", - "ac" - ], - [ - "▁и", - "спо" - ], - [ - "▁ис", - "по" - ], - [ - "▁s", - "uc" - ], - [ - "▁su", - "c" - ], - [ - "u", - "y" - ], - [ - "▁ill", - "ustr" - ], - [ - "▁prim", - "era" - ], - [ - "▁prime", - "ra" - ], - [ - "▁primer", - "a" - ], - [ - "il", - "ation" - ], - [ - "ila", - "tion" - ], - [ - "i", - "lation" - ], - [ - "▁st", - "orage" - ], - [ - "▁stor", - "age" - ], - [ - "▁sto", - "rage" - ], - [ - "▁", - "storage" - ], - [ - "▁par", - "ams" - ], - [ - "▁para", - "ms" - ], - [ - "▁param", - "s" - ], - [ - "▁pa", - "rams" - ], - [ - "▁", - "params" - ], - [ - "ka", - "z" - ], - [ - "k", - "az" - ], - [ - "▁term", - "inal" - ], - [ - "▁termin", - "al" - ], - [ - "ра", - "ль" - ], - [ - "рал", - "ь" - ], - [ - "р", - "аль" - ], - [ - "▁h", - "olds" - ], - [ - "▁hold", - "s" - ], - [ - "▁hol", - "ds" - ], - [ - "▁", - "holds" - ], - [ - "ло", - "сь" - ], - [ - "▁n", - "ad" - ], - [ - "▁na", - "d" - ], - [ - "▁", - "nad" - ], - [ - "”", - "." - ], - [ - "▁oct", - "ubre" - ], - [ - "bu", - "l" - ], - [ - "b", - "ul" - ], - [ - "▁h", - "us" - ], - [ - "▁hu", - "s" - ], - [ - "▁", - "hus" - ], - [ - "UL", - "T" - ], - [ - "U", - "LT" - ], - [ - "▁ég", - "alement" - ], - [ - "▁M", - "ill" - ], - [ - "▁Mil", - "l" - ], - [ - "▁Mi", - "ll" - ], - [ - "▁", - "Mill" - ], - [ - "ła", - "d" - ], - [ - "ł", - "ad" - ], - [ - "▁cont", - "iene" - ], - [ - "\"", - "?" - ], - [ - "▁>", - ">>" - ], - [ - "▁>>", - ">" - ], - [ - "Qu", - "e" - ], - [ - "Q", - "ue" - ], - [ - " ", - " " - ], - [ - "▁p", - "lain" - ], - [ - "▁pl", - "ain" - ], - [ - "▁pla", - "in" - ], - [ - "▁", - "plain" - ], - [ - "at", - "iva" - ], - [ - "ativ", - "a" - ], - [ - "ati", - "va" - ], - [ - "oc", - "ker" - ], - [ - "ock", - "er" - ], - [ - "o", - "cker" - ], - [ - "Name", - "s" - ], - [ - "Na", - "mes" - ], - [ - "N", - "ames" - ], - [ - "▁J", - "ud" - ], - [ - "▁Ju", - "d" - ], - [ - "▁ag", - "ree" - ], - [ - "▁agre", - "e" - ], - [ - "▁agr", - "ee" - ], - [ - "▁G", - "emeinde" - ], - [ - "▁Geme", - "inde" - ], - [ - "la", - "re" - ], - [ - "lar", - "e" - ], - [ - "l", - "are" - ], - [ - "ка", - "за" - ], - [ - "каз", - "а" - ], - [ - "▁st", - "arts" - ], - [ - "▁start", - "s" - ], - [ - "▁star", - "ts" - ], - [ - "▁", - "starts" - ], - [ - "▁p", - "rice" - ], - [ - "▁pr", - "ice" - ], - [ - "▁pri", - "ce" - ], - [ - "▁", - "price" - ], - [ - "T", - "arget" - ], - [ - "cu", - "s" - ], - [ - "c", - "us" - ], - [ - "▁Inst", - "ead" - ], - [ - ".", - ";" - ], - [ - "▁altern", - "ative" - ], - [ - "▁alter", - "native" - ], - [ - "▁в", - "ла" - ], - [ - "I", - "E" - ], - [ - "▁organ", - "iz" - ], - [ - "in", - "u" - ], - [ - "i", - "nu" - ], - [ - "▁comp", - "leted" - ], - [ - "▁comple", - "ted" - ], - [ - "▁complet", - "ed" - ], - [ - "▁complete", - "d" - ], - [ - "▁car", - "ry" - ], - [ - "at", - "om" - ], - [ - "ato", - "m" - ], - [ - "a", - "tom" - ], - [ - "▁dep", - "ending" - ], - [ - "▁depend", - "ing" - ], - [ - "▁O", - "ur" - ], - [ - "▁in", - "sp" - ], - [ - "▁ins", - "p" - ], - [ - "▁&", - "\\" - ], - [ - "▁", - "&\\" - ], - [ - "ail", - "y" - ], - [ - "ai", - "ly" - ], - [ - "a", - "ily" - ], - [ - "ir", - "ection" - ], - [ - "ire", - "ction" - ], - [ - "irect", - "ion" - ], - [ - "ф", - "а" - ], - [ - "▁d", - "efe" - ], - [ - "▁de", - "fe" - ], - [ - "▁def", - "e" - ], - [ - "TA", - "C" - ], - [ - "T", - "AC" - ], - [ - "▁de", - "signed" - ], - [ - "▁des", - "igned" - ], - [ - "▁design", - "ed" - ], - [ - "▁v", - "oir" - ], - [ - "▁vo", - "ir" - ], - [ - "▁", - "voir" - ], - [ - "bre", - "ak" - ], - [ - "▁part", - "ie" - ], - [ - "▁parti", - "e" - ], - [ - "▁J", - "ahren" - ], - [ - "▁Jah", - "ren" - ], - [ - "▁Jahr", - "en" - ], - [ - "▁Jahre", - "n" - ], - [ - "▁Ja", - "hren" - ], - [ - "▁st", - "udio" - ], - [ - "▁stud", - "io" - ], - [ - "▁studi", - "o" - ], - [ - "▁", - "studio" - ], - [ - "▁j", - "our" - ], - [ - "▁jo", - "ur" - ], - [ - "▁jou", - "r" - ], - [ - "▁N", - "otes" - ], - [ - "▁No", - "tes" - ], - [ - "▁Not", - "es" - ], - [ - "▁Note", - "s" - ], - [ - "fi", - "re" - ], - [ - "fir", - "e" - ], - [ - "f", - "ire" - ], - [ - "ho", - "use" - ], - [ - "hou", - "se" - ], - [ - "h", - "ouse" - ], - [ - "su", - "ccess" - ], - [ - "▁J", - "uan" - ], - [ - "▁Ju", - "an" - ], - [ - "J", - "S" - ], - [ - "▁C", - "ustom" - ], - [ - "▁", - "Custom" - ], - [ - "▁b", - "esch" - ], - [ - "▁be", - "sch" - ], - [ - "▁bes", - "ch" - ], - [ - "▁st", - "ated" - ], - [ - "▁stat", - "ed" - ], - [ - "▁state", - "d" - ], - [ - "▁sta", - "ted" - ], - [ - "boot", - "strap" - ], - [ - "öt", - "t" - ], - [ - "ö", - "tt" - ], - [ - "oz", - "zá" - ], - [ - "▁C", - "ON" - ], - [ - "▁CO", - "N" - ], - [ - "▁", - "CON" - ], - [ - "ha", - "v" - ], - [ - "h", - "av" - ], - [ - "▁s", - "leep" - ], - [ - "▁sle", - "ep" - ], - [ - "▁", - "sleep" - ], - [ - "ed", - "a" - ], - [ - "e", - "da" - ], - [ - "ho", - "t" - ], - [ - "h", - "ot" - ], - [ - "án", - "d" - ], - [ - "á", - "nd" - ], - [ - "▁S", - "y" - ], - [ - "▁tem", - "ps" - ], - [ - "▁temp", - "s" - ], - [ - "▁", - "temps" - ], - [ - "am", - "ar" - ], - [ - "ama", - "r" - ], - [ - "a", - "mar" - ], - [ - "▁s", - "cal" - ], - [ - "▁sc", - "al" - ], - [ - "▁", - "scal" - ], - [ - "▁a", - "st" - ], - [ - "▁as", - "t" - ], - [ - "▁", - "ast" - ], - [ - "▁op", - "ening" - ], - [ - "▁open", - "ing" - ], - [ - "cli", - "pse" - ], - [ - "clip", - "se" - ], - [ - "c", - "lipse" - ], - [ - "▁program", - "ming" - ], - [ - "▁", - "programming" - ], - [ - "▁let", - "ters" - ], - [ - "▁letter", - "s" - ], - [ - "▁lett", - "ers" - ], - [ - "▁pro", - "file" - ], - [ - "▁prof", - "ile" - ], - [ - "▁profil", - "e" - ], - [ - "▁", - "profile" - ], - [ - "na", - "h" - ], - [ - "n", - "ah" - ], - [ - "▁be", - "yond" - ], - [ - "▁Fur", - "ther" - ], - [ - "face", - "s" - ], - [ - "fa", - "ces" - ], - [ - "fac", - "es" - ], - [ - "f", - "aces" - ], - [ - "▁c", - "hart" - ], - [ - "▁ch", - "art" - ], - [ - "▁char", - "t" - ], - [ - "▁cha", - "rt" - ], - [ - "▁", - "chart" - ], - [ - "зд", - "а" - ], - [ - "з", - "да" - ], - [ - "ai", - "gn" - ], - [ - "a", - "ign" - ], - [ - "ні", - "й" - ], - [ - "н", - "ій" - ], - [ - "▁R", - "ol" - ], - [ - "▁Ro", - "l" - ], - [ - "ова", - "но" - ], - [ - "ован", - "о" - ], - [ - "ter", - "ior" - ], - [ - "te", - "rior" - ], - [ - "we", - "d" - ], - [ - "w", - "ed" - ], - [ - "▁her", - "self" - ], - [ - "▁hers", - "elf" - ], - [ - "▁n", - "g" - ], - [ - "▁", - "ng" - ], - [ - "angu", - "ages" - ], - [ - "anguage", - "s" - ], - [ - "}=", - "\\" - ], - [ - "}", - "=\\" - ], - [ - "ynam", - "ic" - ], - [ - "yna", - "mic" - ], - [ - "▁j", - "ug" - ], - [ - "▁ju", - "g" - ], - [ - "▁Ex", - "ample" - ], - [ - "▁", - "Example" - ], - [ - "▁(", - "†" - ], - [ - "▁play", - "ing" - ], - [ - "▁pla", - "ying" - ], - [ - "▁us", - "age" - ], - [ - "▁", - "usage" - ], - [ - "▁man", - "aged" - ], - [ - "▁manage", - "d" - ], - [ - "▁", - "managed" - ], - [ - "▁N", - "atur" - ], - [ - "▁Nat", - "ur" - ], - [ - "те", - "ри" - ], - [ - "тер", - "и" - ], - [ - "▁E", - "t" - ], - [ - "er", - "ia" - ], - [ - "eri", - "a" - ], - [ - "e", - "ria" - ], - [ - "▁daugh", - "ter" - ], - [ - "ни", - "ем" - ], - [ - "ние", - "м" - ], - [ - "F", - "ragment" - ], - [ - "▁h", - "ol" - ], - [ - "▁ho", - "l" - ], - [ - "▁", - "hol" - ], - [ - "F", - "l" - ], - [ - "огра", - "фи" - ], - [ - "ограф", - "и" - ], - [ - "о", - "графи" - ], - [ - "▁i", - "hn" - ], - [ - "▁ih", - "n" - ], - [ - "ü", - "h" - ], - [ - "inst", - "ance" - ], - [ - "▁com", - "un" - ], - [ - "▁co", - "mun" - ], - [ - "▁tr", - "uth" - ], - [ - "▁са", - "мо" - ], - [ - "▁сам", - "о" - ], - [ - "▁implement", - "ed" - ], - [ - "▁any", - "way" - ], - [ - "▁C", - "ro" - ], - [ - "▁Cr", - "o" - ], - [ - "ф", - "е" - ], - [ - "G", - "C" - ], - [ - "ub", - "untu" - ], - [ - "u", - "buntu" - ], - [ - "ty", - "pes" - ], - [ - "type", - "s" - ], - [ - "typ", - "es" - ], - [ - "t", - "ypes" - ], - [ - "ê", - "s" - ], - [ - ".~", - "\\" - ], - [ - ".", - "~\\" - ], - [ - "fo", - "ld" - ], - [ - "fol", - "d" - ], - [ - "f", - "old" - ], - [ - "▁jo", - "ined" - ], - [ - "▁join", - "ed" - ], - [ - "?", - "?" - ], - [ - "▁m", - "é" - ], - [ - "▁", - "mé" - ], - [ - "▁w", - "ild" - ], - [ - "▁wil", - "d" - ], - [ - "к", - "лю" - ], - [ - "row", - "ser" - ], - [ - "rows", - "er" - ], - [ - "▁H", - "ome" - ], - [ - "▁Ho", - "me" - ], - [ - "▁Hom", - "e" - ], - [ - "▁", - "Home" - ], - [ - "sk", - "iej" - ], - [ - "ski", - "ej" - ], - [ - "skie", - "j" - ], - [ - "s", - "kiej" - ], - [ - "▁J", - "OIN" - ], - [ - "▁ju", - "in" - ], - [ - "ho", - "f" - ], - [ - "h", - "of" - ], - [ - "▁data", - "set" - ], - [ - "▁dat", - "aset" - ], - [ - "▁datas", - "et" - ], - [ - "▁", - "dataset" - ], - [ - "ж", - "ду" - ], - [ - "')", - ")" - ], - [ - "'", - "))" - ], - [ - "▁mie", - "js" - ], - [ - "AP", - "I" - ], - [ - "A", - "PI" - ], - [ - "▁ed", - "ited" - ], - [ - "▁edit", - "ed" - ], - [ - "ool", - "s" - ], - [ - "oo", - "ls" - ], - [ - "o", - "ols" - ], - [ - "▁se", - "eing" - ], - [ - "▁see", - "ing" - ], - [ - "ij", - "d" - ], - [ - "i", - "jd" - ], - [ - "▁pro", - "cedure" - ], - [ - "▁proced", - "ure" - ], - [ - "▁B", - "ras" - ], - [ - "▁Br", - "as" - ], - [ - "▁Bra", - "s" - ], - [ - "▁s", - "igned" - ], - [ - "▁sign", - "ed" - ], - [ - "▁sig", - "ned" - ], - [ - "▁", - "signed" - ], - [ - "▁extern", - "os" - ], - [ - "▁dis", - "app" - ], - [ - "▁D", - "irect" - ], - [ - "▁Di", - "rect" - ], - [ - "▁Dire", - "ct" - ], - [ - "▁Dir", - "ect" - ], - [ - "▁", - "Direct" - ], - [ - "cy", - "c" - ], - [ - "c", - "yc" - ], - [ - "▁cons", - "ult" - ], - [ - "ör", - "d" - ], - [ - "ö", - "rd" - ], - [ - "W", - "idget" - ], - [ - "ci", - "ous" - ], - [ - "cio", - "us" - ], - [ - "c", - "ious" - ], - [ - "se", - "ct" - ], - [ - "sec", - "t" - ], - [ - "s", - "ect" - ], - [ - "▁Д", - "и" - ], - [ - "▁w", - "ind" - ], - [ - "▁win", - "d" - ], - [ - "▁", - "wind" - ], - [ - "▁Archiv", - "ado" - ], - [ - "am", - "l" - ], - [ - "a", - "ml" - ], - [ - "с", - "с" - ], - [ - "W", - "h" - ], - [ - "kb", - "d" - ], - [ - "k", - "bd" - ], - [ - "▁Ar", - "my" - ], - [ - "▁Arm", - "y" - ], - [ - "▁s", - "uffer" - ], - [ - "▁suf", - "fer" - ], - [ - "▁suff", - "er" - ], - [ - "art", - "ifact" - ], - [ - "▁resol", - "ve" - ], - [ - "▁", - "resolve" - ], - [ - "▁S", - "port" - ], - [ - "▁Sp", - "ort" - ], - [ - "▁Spo", - "rt" - ], - [ - "▁ц", - "е" - ], - [ - "▁", - "це" - ], - [ - "id", - "as" - ], - [ - "ida", - "s" - ], - [ - "i", - "das" - ], - [ - "▁t", - "ax" - ], - [ - "▁ta", - "x" - ], - [ - "▁", - "tax" - ], - [ - "id", - "i" - ], - [ - "i", - "di" - ], - [ - "▁a", - "ctions" - ], - [ - "▁act", - "ions" - ], - [ - "▁action", - "s" - ], - [ - "▁", - "actions" - ], - [ - "пр", - "а" - ], - [ - "п", - "ра" - ], - [ - "pu", - "és" - ], - [ - "p", - "ués" - ], - [ - "▁n", - "aj" - ], - [ - "▁na", - "j" - ], - [ - "F", - "alse" - ], - [ - "▁ch", - "ance" - ], - [ - "▁та", - "ко" - ], - [ - "▁так", - "о" - ], - [ - "ä", - "d" - ], - [ - "▁d", - "ol" - ], - [ - "▁do", - "l" - ], - [ - "▁en", - "v" - ], - [ - "▁", - "env" - ], - [ - "▁bas", - "ically" - ], - [ - "▁basic", - "ally" - ], - [ - "▁Coun", - "cil" - ], - [ - "zt", - "e" - ], - [ - "z", - "te" - ], - [ - "▁display", - "ed" - ], - [ - "ni", - "l" - ], - [ - "n", - "il" - ], - [ - "comp", - "lete" - ], - [ - "comple", - "te" - ], - [ - "▁L", - "em" - ], - [ - "▁Le", - "m" - ], - [ - "ian", - "ce" - ], - [ - "i", - "ance" - ], - [ - "▁ос", - "нов" - ], - [ - "▁de", - "pend" - ], - [ - "▁dep", - "end" - ], - [ - "pl", - "om" - ], - [ - "ens", - "us" - ], - [ - "ut", - "s" - ], - [ - "u", - "ts" - ], - [ - "▁H", - "ot" - ], - [ - "▁Ho", - "t" - ], - [ - "▁", - "Hot" - ], - [ - "bit", - "r" - ], - [ - "bi", - "tr" - ], - [ - "▁valid", - "ation" - ], - [ - "▁", - "validation" - ], - [ - "ab", - "b" - ], - [ - "a", - "bb" - ], - [ - "▁т", - "ре" - ], - [ - "▁", - "тре" - ], - [ - "k", - "m" - ], - [ - "z", - "d" - ], - [ - "ö", - "ff" - ], - [ - "W", - "E" - ], - [ - "▁inter", - "ested" - ], - [ - "▁interest", - "ed" - ], - [ - "▁{", - "\"" - ], - [ - "▁", - "{\"" - ], - [ - "ar", - "o" - ], - [ - "a", - "ro" - ], - [ - "▁cor", - "rel" - ], - [ - "▁corre", - "l" - ], - [ - "▁corr", - "el" - ], - [ - "▁d", - "edic" - ], - [ - "▁de", - "dic" - ], - [ - "▁ded", - "ic" - ], - [ - "▁l", - "ists" - ], - [ - "▁list", - "s" - ], - [ - "▁", - "lists" - ], - [ - "▁Bibli", - "ografia" - ], - [ - "▁ear", - "lier" - ], - [ - "pr", - "ogram" - ], - [ - "pro", - "gram" - ], - [ - "prog", - "ram" - ], - [ - "▁prem", - "ière" - ], - [ - "▁premi", - "ère" - ], - [ - "fr", - "ont" - ], - [ - "f", - "ront" - ], - [ - "T", - "ab" - ], - [ - "ст", - "ву" - ], - [ - "ств", - "у" - ], - [ - "dr", - "op" - ], - [ - "dro", - "p" - ], - [ - "d", - "rop" - ], - [ - "▁f", - "ear" - ], - [ - "▁fe", - "ar" - ], - [ - "▁En", - "laces" - ], - [ - "▁C", - "apt" - ], - [ - "▁Cap", - "t" - ], - [ - "▁Ca", - "pt" - ], - [ - "▁", - "Capt" - ], - [ - "▁real", - "iz" - ], - [ - "▁h", - "al" - ], - [ - "▁ha", - "l" - ], - [ - "▁", - "hal" - ], - [ - "▁inst", - "ances" - ], - [ - "▁instance", - "s" - ], - [ - "▁su", - "sp" - ], - [ - "▁sus", - "p" - ], - [ - "il", - "ling" - ], - [ - "ill", - "ing" - ], - [ - "illi", - "ng" - ], - [ - "%", - ";" - ], - [ - "{", - "}" - ], - [ - "|", - "|" - ], - [ - "▁part", - "ition" - ], - [ - "▁parti", - "tion" - ], - [ - "▁", - "partition" - ], - [ - "▁Bu", - "ild" - ], - [ - "▁", - "Build" - ], - [ - "▁w", - "o" - ], - [ - "▁", - "wo" - ], - [ - "▁П", - "ер" - ], - [ - "▁Пе", - "р" - ], - [ - "▁direct", - "or" - ], - [ - "▁dire", - "ctor" - ], - [ - "▁dir", - "ector" - ], - [ - "▁S", - "in" - ], - [ - "▁Si", - "n" - ], - [ - "ти", - "я" - ], - [ - "rs", - "g" - ], - [ - "r", - "sg" - ], - [ - "ou", - "ver" - ], - [ - "ouv", - "er" - ], - [ - "ouve", - "r" - ], - [ - "▁near", - "ly" - ], - [ - "od", - "a" - ], - [ - "o", - "da" - ], - [ - "кти", - "в" - ], - [ - "к", - "тив" - ], - [ - "▁s", - "ir" - ], - [ - "▁si", - "r" - ], - [ - "IM", - "E" - ], - [ - "I", - "ME" - ], - [ - "▁jan", - "vier" - ], - [ - "▁W", - "in" - ], - [ - "▁Wi", - "n" - ], - [ - "▁", - "Win" - ], - [ - "Bu", - "ild" - ], - [ - "ie", - "urs" - ], - [ - "ieu", - "rs" - ], - [ - "ieur", - "s" - ], - [ - "i", - "eurs" - ], - [ - "IN", - "E" - ], - [ - "I", - "NE" - ], - [ - "d", - "ouble" - ], - [ - "La", - "st" - ], - [ - "L", - "ast" - ], - [ - "▁pol", - "icy" - ], - [ - "▁polic", - "y" - ], - [ - "▁", - "policy" - ], - [ - "st", - "ore" - ], - [ - "sto", - "re" - ], - [ - "stor", - "e" - ], - [ - "▁obser", - "ved" - ], - [ - "▁observ", - "ed" - ], - [ - "▁observe", - "d" - ], - [ - "▁obs", - "erved" - ], - [ - "▁famil", - "ie" - ], - [ - "ni", - "ca" - ], - [ - "nic", - "a" - ], - [ - "n", - "ica" - ], - [ - "re", - "y" - ], - [ - "r", - "ey" - ], - [ - "з", - "ь" - ], - [ - "▁Y", - "ear" - ], - [ - "▁Ye", - "ar" - ], - [ - "▁", - "Year" - ], - [ - "▁develop", - "ed" - ], - [ - "▁deve", - "loped" - ], - [ - "▁Inst", - "itute" - ], - [ - "▁Instit", - "ute" - ], - [ - "▁Institut", - "e" - ], - [ - "▁re", - "ply" - ], - [ - "▁rep", - "ly" - ], - [ - "Com", - "ple" - ], - [ - "Comp", - "le" - ], - [ - "ic", - "ian" - ], - [ - "ici", - "an" - ], - [ - "icia", - "n" - ], - [ - "i", - "cian" - ], - [ - "▁G", - "uer" - ], - [ - "▁Gu", - "er" - ], - [ - "▁d", - "all" - ], - [ - "▁da", - "ll" - ], - [ - "▁dal", - "l" - ], - [ - "▁d", - "esp" - ], - [ - "▁de", - "sp" - ], - [ - "▁des", - "p" - ], - [ - "▁Foot", - "ball" - ], - [ - "Em", - "pty" - ], - [ - "Emp", - "ty" - ], - [ - "ck", - "en" - ], - [ - "cke", - "n" - ], - [ - "c", - "ken" - ], - [ - "un", - "da" - ], - [ - "und", - "a" - ], - [ - "▁U", - "r" - ], - [ - "▁i", - "g" - ], - [ - "▁", - "ig" - ], - [ - "▁A", - "tl" - ], - [ - "▁At", - "l" - ], - [ - "aut", - "hor" - ], - [ - "auth", - "or" - ], - [ - "▁B", - "ol" - ], - [ - "▁Bo", - "l" - ], - [ - "zi", - "g" - ], - [ - "z", - "ig" - ], - [ - "na", - "t" - ], - [ - "n", - "at" - ], - [ - "š", - "t" - ], - [ - "se", - "curity" - ], - [ - "sec", - "urity" - ], - [ - "on", - "ic" - ], - [ - "oni", - "c" - ], - [ - "o", - "nic" - ], - [ - "▁p", - "es" - ], - [ - "▁pe", - "s" - ], - [ - "▁", - "pes" - ], - [ - "it", - "an" - ], - [ - "ita", - "n" - ], - [ - "i", - "tan" - ], - [ - "▁Ex", - "tern" - ], - [ - "▁Ext", - "ern" - ], - [ - "ja", - "n" - ], - [ - "j", - "an" - ], - [ - "VA", - "L" - ], - [ - "V", - "AL" - ], - [ - "▁и", - "м" - ], - [ - "▁", - "им" - ], - [ - "bo", - "ld" - ], - [ - "bol", - "d" - ], - [ - "b", - "old" - ], - [ - "▁в", - "а" - ], - [ - "▁", - "ва" - ], - [ - "▁М", - "о" - ], - [ - "▁dis", - "put" - ], - [ - "▁disp", - "ut" - ], - [ - "▁t", - "rick" - ], - [ - "▁tr", - "ick" - ], - [ - "▁tri", - "ck" - ], - [ - "▁p", - "ed" - ], - [ - "▁pe", - "d" - ], - [ - "▁", - "ped" - ], - [ - ")^", - "{" - ], - [ - ")", - "^{" - ], - [ - "in", - "to" - ], - [ - "int", - "o" - ], - [ - "Si", - "m" - ], - [ - "S", - "im" - ], - [ - "▁par", - "allel" - ], - [ - "▁", - "parallel" - ], - [ - "fo", - "x" - ], - [ - "f", - "ox" - ], - [ - "norm", - "al" - ], - [ - "nor", - "mal" - ], - [ - "n", - "ormal" - ], - [ - "in", - "ent" - ], - [ - "ine", - "nt" - ], - [ - "inen", - "t" - ], - [ - "пе", - "ди" - ], - [ - "п", - "еди" - ], - [ - "ho", - "ld" - ], - [ - "hol", - "d" - ], - [ - "h", - "old" - ], - [ - "O", - "K" - ], - [ - "▁c", - "hem" - ], - [ - "▁ch", - "em" - ], - [ - "▁che", - "m" - ], - [ - "▁", - "chem" - ], - [ - "▁tw", - "ice" - ], - [ - "▁us", - "ername" - ], - [ - "▁user", - "name" - ], - [ - "▁", - "username" - ], - [ - "i", - "č" - ], - [ - "▁re", - "presentation" - ], - [ - "▁represent", - "ation" - ], - [ - "▁repres", - "entation" - ], - [ - "▁j", - "ournal" - ], - [ - "▁jour", - "nal" - ], - [ - "▁journ", - "al" - ], - [ - "▁:", - "-" - ], - [ - "▁", - ":-" - ], - [ - "▁b", - "att" - ], - [ - "▁ba", - "tt" - ], - [ - "▁bat", - "t" - ], - [ - "\\", - "%" - ], - [ - "▁certain", - "ly" - ], - [ - "▁Ex", - "ception" - ], - [ - "▁", - "Exception" - ], - [ - "ep", - "s" - ], - [ - "e", - "ps" - ], - [ - "sh", - "ot" - ], - [ - "s", - "hot" - ], - [ - "at", - "egy" - ], - [ - "ate", - "gy" - ], - [ - "ateg", - "y" - ], - [ - "Sh", - "ow" - ], - [ - "S", - "how" - ], - [ - "▁Car", - "l" - ], - [ - "▁Ca", - "rl" - ], - [ - "ri", - "g" - ], - [ - "r", - "ig" - ], - [ - "▁rep", - "orted" - ], - [ - "▁report", - "ed" - ], - [ - "bot", - "tom" - ], - [ - "b", - "ottom" - ], - [ - "T", - "F" - ], - [ - "▁Francis", - "co" - ], - [ - "na", - "p" - ], - [ - "n", - "ap" - ], - [ - "▁Champion", - "ship" - ], - [ - "▁Champions", - "hip" - ], - [ - "▁c", - "ourt" - ], - [ - "▁co", - "urt" - ], - [ - "▁cour", - "t" - ], - [ - "▁cou", - "rt" - ], - [ - "▁", - "court" - ], - [ - "▁s", - "ources" - ], - [ - "▁source", - "s" - ], - [ - "io", - "ur" - ], - [ - "i", - "our" - ], - [ - "▁con", - "serv" - ], - [ - "▁cons", - "erv" - ], - [ - "▁conse", - "rv" - ], - [ - "▁conser", - "v" - ], - [ - "di", - "ct" - ], - [ - "dic", - "t" - ], - [ - "d", - "ict" - ], - [ - "▁Р", - "у" - ], - [ - "I", - "B" - ], - [ - "▁V", - "e" - ], - [ - "▁", - "№" - ], - [ - "▁E", - "R" - ], - [ - "▁", - "ER" - ], - [ - "\")", - ");" - ], - [ - "\"))", - ";" - ], - [ - "\"", - "));" - ], - [ - "▁P", - "oint" - ], - [ - "▁Po", - "int" - ], - [ - "▁", - "Point" - ], - [ - "az", - "ine" - ], - [ - "azi", - "ne" - ], - [ - "▁inter", - "net" - ], - [ - "▁intern", - "et" - ], - [ - "д", - "на" - ], - [ - "▁car", - "ried" - ], - [ - "▁carri", - "ed" - ], - [ - "▁F", - "ield" - ], - [ - "▁", - "Field" - ], - [ - "ax", - "is" - ], - [ - "axi", - "s" - ], - [ - "a", - "xis" - ], - [ - "▁S", - "un" - ], - [ - "▁Su", - "n" - ], - [ - "▁a", - "ve" - ], - [ - "▁av", - "e" - ], - [ - "▁", - "ave" - ], - [ - "пи", - "с" - ], - [ - "п", - "ис" - ], - [ - "я", - "н" - ], - [ - "as", - "y" - ], - [ - "▁ju", - "lio" - ], - [ - "▁jul", - "io" - ], - [ - "▁juli", - "o" - ], - [ - "▁de", - "puis" - ], - [ - "▁dep", - "uis" - ], - [ - "▁sugg", - "estion" - ], - [ - "▁suggest", - "ion" - ], - [ - "[", - "[" - ], - [ - "▁Arch", - "ive" - ], - [ - "▁Archiv", - "e" - ], - [ - "ę", - "p" - ], - [ - "▁P", - "ra" - ], - [ - "▁Pr", - "a" - ], - [ - "re", - "h" - ], - [ - "r", - "eh" - ], - [ - "▁demon", - "str" - ], - [ - "ф", - "і" - ], - [ - "cm", - "d" - ], - [ - "c", - "md" - ], - [ - "▁was", - "n" - ], - [ - "▁wa", - "sn" - ], - [ - "▁ph", - "one" - ], - [ - "▁", - "phone" - ], - [ - "up", - "load" - ], - [ - "ay", - "a" - ], - [ - "a", - "ya" - ], - [ - "то", - "ра" - ], - [ - "тор", - "а" - ], - [ - "li", - "nes" - ], - [ - "line", - "s" - ], - [ - "lin", - "es" - ], - [ - "l", - "ines" - ], - [ - "▁in", - "du" - ], - [ - "▁ind", - "u" - ], - [ - "▁", - "indu" - ], - [ - "▁v", - "ot" - ], - [ - "▁vo", - "t" - ], - [ - "▁es", - "pa" - ], - [ - "▁esp", - "a" - ], - [ - "▁b", - "in" - ], - [ - "▁bi", - "n" - ], - [ - "▁", - "bin" - ], - [ - "▁по", - "сле" - ], - [ - "▁пос", - "ле" - ], - [ - "pl", - "an" - ], - [ - "pla", - "n" - ], - [ - "p", - "lan" - ], - [ - "▁ju", - "nio" - ], - [ - "▁jun", - "io" - ], - [ - "▁juni", - "o" - ], - [ - "or", - "ial" - ], - [ - "oria", - "l" - ], - [ - "ori", - "al" - ], - [ - "o", - "rial" - ], - [ - "fr", - "ee" - ], - [ - "fre", - "e" - ], - [ - "f", - "ree" - ], - [ - "ster", - "reich" - ], - [ - "▁д", - "у" - ], - [ - "▁", - "ду" - ], - [ - "▁link", - "ed" - ], - [ - "▁lin", - "ked" - ], - [ - "▁en", - "able" - ], - [ - "▁", - "enable" - ], - [ - "P", - "C" - ], - [ - "▁dens", - "ity" - ], - [ - "▁E", - "gy" - ], - [ - "▁Eg", - "y" - ], - [ - "y", - "o" - ], - [ - "end", - "re" - ], - [ - "▁с", - "ъ" - ], - [ - "▁ital", - "iano" - ], - [ - "▁A", - "R" - ], - [ - "▁", - "AR" - ], - [ - "▁P", - "ers" - ], - [ - "▁Per", - "s" - ], - [ - "▁Pe", - "rs" - ], - [ - "▁", - "Pers" - ], - [ - "fér", - "és" - ], - [ - "▁с", - "кла" - ], - [ - "V", - "ar" - ], - [ - "▁On", - "ce" - ], - [ - "▁", - "Once" - ], - [ - "Re", - "d" - ], - [ - "R", - "ed" - ], - [ - "buf", - "fer" - ], - [ - "buff", - "er" - ], - [ - "b", - "uffer" - ], - [ - "▁En", - "ter" - ], - [ - "▁Ent", - "er" - ], - [ - "▁", - "Enter" - ], - [ - "▁", - "Š" - ], - [ - "im", - "iento" - ], - [ - "imi", - "ento" - ], - [ - "St", - "ore" - ], - [ - "Sto", - "re" - ], - [ - "▁he", - "alth" - ], - [ - "va", - "t" - ], - [ - "v", - "at" - ], - [ - "IS", - "T" - ], - [ - "I", - "ST" - ], - [ - "O", - "h" - ], - [ - "▁k", - "w" - ], - [ - "▁", - "kw" - ], - [ - "▁r", - "iv" - ], - [ - "▁ri", - "v" - ], - [ - "▁", - "riv" - ], - [ - "▁some", - "where" - ], - [ - "ograf", - "ie" - ], - [ - "ografi", - "e" - ], - [ - "priv", - "ate" - ], - [ - "p", - "rivate" - ], - [ - "кт", - "и" - ], - [ - "к", - "ти" - ], - [ - "▁de", - "lay" - ], - [ - "▁del", - "ay" - ], - [ - "▁", - "delay" - ], - [ - "▁H", - "ttp" - ], - [ - "▁", - "Http" - ], - [ - "jo", - "b" - ], - [ - "j", - "ob" - ], - [ - "ra", - "el" - ], - [ - "r", - "ael" - ], - [ - "em", - "por" - ], - [ - "emp", - "or" - ], - [ - "▁dici", - "embre" - ], - [ - "▁dic", - "iembre" - ], - [ - "êt", - "e" - ], - [ - "ê", - "te" - ], - [ - "ц", - "у" - ], - [ - "▁com", - "mit" - ], - [ - "▁comm", - "it" - ], - [ - "▁", - "commit" - ], - [ - "os", - "o" - ], - [ - "o", - "so" - ], - [ - "Val", - "ues" - ], - [ - "Value", - "s" - ], - [ - "▁he", - "aders" - ], - [ - "▁head", - "ers" - ], - [ - "▁header", - "s" - ], - [ - "▁", - "headers" - ], - [ - "trans", - "form" - ], - [ - "▁process", - "ing" - ], - [ - "▁proces", - "sing" - ], - [ - "▁", - "processing" - ], - [ - "r", - "å" - ], - [ - "▁A", - "h" - ], - [ - "▁", - "Ah" - ], - [ - "▁N", - "ode" - ], - [ - "▁No", - "de" - ], - [ - "▁", - "Node" - ], - [ - "--", - "----------" - ], - [ - "----", - "--------" - ], - [ - "--------", - "----" - ], - [ - "------", - "------" - ], - [ - "-----", - "-------" - ], - [ - "-------", - "-----" - ], - [ - "----------", - "--" - ], - [ - "▁f", - "aire" - ], - [ - "▁fa", - "ire" - ], - [ - "▁fair", - "e" - ], - [ - "▁h", - "un" - ], - [ - "▁hu", - "n" - ], - [ - "Pl", - "ayer" - ], - [ - "Play", - "er" - ], - [ - "P", - "layer" - ], - [ - "▁re", - "view" - ], - [ - "▁rev", - "iew" - ], - [ - "▁", - "review" - ], - [ - "г", - "да" - ], - [ - "▁lim", - "ited" - ], - [ - "▁limit", - "ed" - ], - [ - "▁", - "limited" - ], - [ - "▁Pro", - "perty" - ], - [ - "▁", - "Property" - ], - [ - "▁s", - "erve" - ], - [ - "▁ser", - "ve" - ], - [ - "▁serv", - "e" - ], - [ - "▁", - "serve" - ], - [ - "ri", - "age" - ], - [ - "ria", - "ge" - ], - [ - "▁M", - "aster" - ], - [ - "▁Ma", - "ster" - ], - [ - "▁Mas", - "ter" - ], - [ - "▁", - "Master" - ], - [ - "▁k", - "ann" - ], - [ - "▁kan", - "n" - ], - [ - "▁ka", - "nn" - ], - [ - "cre", - "te" - ], - [ - "cret", - "e" - ], - [ - "cr", - "ete" - ], - [ - "ph", - "ere" - ], - [ - "pher", - "e" - ], - [ - "phe", - "re" - ], - [ - "p", - "here" - ], - [ - "ё", - "р" - ], - [ - "▁ch", - "ief" - ], - [ - "▁chi", - "ef" - ], - [ - "▁sc", - "ene" - ], - [ - "▁scen", - "e" - ], - [ - "▁", - "scene" - ], - [ - "ki", - "n" - ], - [ - "k", - "in" - ], - [ - "▁un", - "iform" - ], - [ - "▁", - "uniform" - ], - [ - "▁feb", - "rero" - ], - [ - "\"", - "}" - ], - [ - "il", - "lo" - ], - [ - "ill", - "o" - ], - [ - "IT", - "E" - ], - [ - "I", - "TE" - ], - [ - "ou", - "vel" - ], - [ - "ouv", - "el" - ], - [ - "ouve", - "l" - ], - [ - "use", - "package" - ], - [ - "en", - "th" - ], - [ - "ent", - "h" - ], - [ - "e", - "nth" - ], - [ - "▁quick", - "ly" - ], - [ - "L", - "ambda" - ], - [ - "xe", - "s" - ], - [ - "x", - "es" - ], - [ - "▁c", - "ells" - ], - [ - "▁cell", - "s" - ], - [ - "▁cel", - "ls" - ], - [ - "ro", - "g" - ], - [ - "r", - "og" - ], - [ - "am", - "in" - ], - [ - "ami", - "n" - ], - [ - "a", - "min" - ], - [ - "▁М", - "ар" - ], - [ - "▁Ма", - "р" - ], - [ - "▁may", - "or" - ], - [ - "▁mayo", - "r" - ], - [ - "pl", - "ayer" - ], - [ - "play", - "er" - ], - [ - "pla", - "yer" - ], - [ - "p", - "layer" - ], - [ - "++", - ";" - ], - [ - "▁На", - "се" - ], - [ - "▁sa", - "fe" - ], - [ - "▁saf", - "e" - ], - [ - "▁", - "safe" - ], - [ - "▁ve", - "loc" - ], - [ - "▁vel", - "oc" - ], - [ - "▁о", - "бра" - ], - [ - "▁об", - "ра" - ], - [ - "▁", - "обра" - ], - [ - "Data", - "base" - ], - [ - "Dat", - "abase" - ], - [ - "D", - "atabase" - ], - [ - "ne", - "h" - ], - [ - "n", - "eh" - ], - [ - "Ver", - "t" - ], - [ - "V", - "ert" - ], - [ - "▁f", - "le" - ], - [ - "▁fl", - "e" - ], - [ - "▁ф", - "ор" - ], - [ - "▁фо", - "р" - ], - [ - "▁", - "фор" - ], - [ - "▁f", - "oreign" - ], - [ - "▁for", - "eign" - ], - [ - "▁fore", - "ign" - ], - [ - "Ab", - "stract" - ], - [ - "▁m", - "agn" - ], - [ - "▁ma", - "gn" - ], - [ - "▁mag", - "n" - ], - [ - "▁mod", - "ified" - ], - [ - "▁milit", - "ary" - ], - [ - "▁militar", - "y" - ], - [ - "▁m", - "onde" - ], - [ - "▁mon", - "de" - ], - [ - "▁mo", - "nde" - ], - [ - "▁mond", - "e" - ], - [ - "▁A", - "ction" - ], - [ - "▁Act", - "ion" - ], - [ - "▁Ac", - "tion" - ], - [ - "▁", - "Action" - ], - [ - "▁b", - "ank" - ], - [ - "▁ban", - "k" - ], - [ - "▁", - "bank" - ], - [ - "Ser", - "ial" - ], - [ - "Se", - "rial" - ], - [ - "▁contin", - "uous" - ], - [ - "▁continu", - "ous" - ], - [ - "▁g", - "el" - ], - [ - "▁ge", - "l" - ], - [ - "▁", - "gel" - ], - [ - "▁phys", - "ical" - ], - [ - "▁introdu", - "ced" - ], - [ - "▁introduce", - "d" - ], - [ - "ut", - "ure" - ], - [ - "ri", - "ck" - ], - [ - "ric", - "k" - ], - [ - "r", - "ick" - ], - [ - "▁present", - "ed" - ], - [ - "▁pres", - "ented" - ], - [ - "▁presente", - "d" - ], - [ - "▁P", - "rov" - ], - [ - "▁Pro", - "v" - ], - [ - "▁Pr", - "ov" - ], - [ - "▁B", - "oth" - ], - [ - "▁Bo", - "th" - ], - [ - "▁Bot", - "h" - ], - [ - "Po", - "s" - ], - [ - "P", - "os" - ], - [ - "su", - "per" - ], - [ - "sup", - "er" - ], - [ - "s", - "uper" - ], - [ - "&", - "#" - ], - [ - "▁f", - "inding" - ], - [ - "▁find", - "ing" - ], - [ - "▁fin", - "ding" - ], - [ - "ne", - "l" - ], - [ - "n", - "el" - ], - [ - "un", - "de" - ], - [ - "und", - "e" - ], - [ - "u", - "nde" - ], - [ - "▁fr", - "ån" - ], - [ - "sk", - "im" - ], - [ - "ski", - "m" - ], - [ - "s", - "kim" - ], - [ - "▁H", - "ill" - ], - [ - "▁Hi", - "ll" - ], - [ - "▁Hil", - "l" - ], - [ - "f", - "n" - ], - [ - "▁Can", - "ad" - ], - [ - "▁Ca", - "nad" - ], - [ - "▁int", - "ended" - ], - [ - "▁inten", - "ded" - ], - [ - "▁intend", - "ed" - ], - [ - "ozzá", - "férés" - ], - [ - "▁ju", - "illet" - ], - [ - "▁W", - "ars" - ], - [ - "▁War", - "s" - ], - [ - "▁Wa", - "rs" - ], - [ - "▁success", - "ful" - ], - [ - "▁ch", - "arg" - ], - [ - "▁char", - "g" - ], - [ - "▁cha", - "rg" - ], - [ - "▁", - "charg" - ], - [ - "ie", - "le" - ], - [ - "iel", - "e" - ], - [ - "i", - "ele" - ], - [ - "om", - "ething" - ], - [ - "ome", - "thing" - ], - [ - "omet", - "hing" - ], - [ - "ok", - "u" - ], - [ - "o", - "ku" - ], - [ - "f", - "etch" - ], - [ - "▁}", - "}" - ], - [ - "▁", - "}}" - ], - [ - "ban", - "k" - ], - [ - "b", - "ank" - ], - [ - "operator", - "name" - ], - [ - "▁Col", - "or" - ], - [ - "▁Co", - "lor" - ], - [ - "▁", - "Color" - ], - [ - "▁C", - "ard" - ], - [ - "▁Car", - "d" - ], - [ - "▁Ca", - "rd" - ], - [ - "▁", - "Card" - ], - [ - "t", - "u" - ], - [ - "▁\"", - "," - ], - [ - "▁", - "\"," - ], - [ - "wi", - "d" - ], - [ - "w", - "id" - ], - [ - "▁g", - "ep" - ], - [ - "▁ge", - "p" - ], - [ - "X", - "ML" - ], - [ - "========", - "========" - ], - [ - "▁Vir", - "gin" - ], - [ - "ähr", - "end" - ], - [ - "äh", - "rend" - ], - [ - "lic", - "ated" - ], - [ - "licate", - "d" - ], - [ - "lica", - "ted" - ], - [ - "Di", - "r" - ], - [ - "D", - "ir" - ], - [ - "ze", - "ro" - ], - [ - "zer", - "o" - ], - [ - "z", - "ero" - ], - [ - "▁K", - "al" - ], - [ - "▁Ka", - "l" - ], - [ - "▁Par", - "ty" - ], - [ - "▁Part", - "y" - ], - [ - "▁", - "å" - ], - [ - "pr", - "ice" - ], - [ - "p", - "rice" - ], - [ - "do", - "n" - ], - [ - "d", - "on" - ], - [ - "▁w", - "arning" - ], - [ - "▁war", - "ning" - ], - [ - "▁warn", - "ing" - ], - [ - "▁", - "warning" - ], - [ - "▁B", - "ad" - ], - [ - "▁Ba", - "d" - ], - [ - "▁", - "Bad" - ], - [ - "▁S", - "upp" - ], - [ - "▁Su", - "pp" - ], - [ - "▁Sup", - "p" - ], - [ - "▁", - "Supp" - ], - [ - "▁L", - "iga" - ], - [ - "▁Li", - "ga" - ], - [ - "▁Lig", - "a" - ], - [ - "▁P", - "ierre" - ], - [ - "▁Pier", - "re" - ], - [ - "▁", - "Pierre" - ], - [ - "Re", - "cord" - ], - [ - "Rec", - "ord" - ], - [ - "ul", - "ator" - ], - [ - "ula", - "tor" - ], - [ - "▁R", - "ome" - ], - [ - "▁Ro", - "me" - ], - [ - "▁Rom", - "e" - ], - [ - "▁the", - "orem" - ], - [ - "▁", - "theorem" - ], - [ - "▁entire", - "ly" - ], - [ - "ски", - "м" - ], - [ - "ск", - "им" - ], - [ - "с", - "ким" - ], - [ - "he", - "t" - ], - [ - "h", - "et" - ], - [ - "▁d", - "opo" - ], - [ - "▁do", - "po" - ], - [ - "▁dop", - "o" - ], - [ - "Ne", - "xt" - ], - [ - "N", - "ext" - ], - [ - "ml", - "ung" - ], - [ - "m", - "lung" - ], - [ - "wi", - "g" - ], - [ - "w", - "ig" - ], - [ - "▁A", - "th" - ], - [ - "▁At", - "h" - ], - [ - "▁S", - "ou" - ], - [ - "▁So", - "u" - ], - [ - "li", - "cher" - ], - [ - "lic", - "her" - ], - [ - "lich", - "er" - ], - [ - "liche", - "r" - ], - [ - "l", - "icher" - ], - [ - "▁s", - "udo" - ], - [ - "▁su", - "do" - ], - [ - "▁sud", - "o" - ], - [ - "▁", - "sudo" - ], - [ - "es", - "ts" - ], - [ - "est", - "s" - ], - [ - "хі", - "в" - ], - [ - "х", - "ів" - ], - [ - "▁sept", - "iembre" - ], - [ - "▁m", - "icro" - ], - [ - "▁mi", - "cro" - ], - [ - "▁mic", - "ro" - ], - [ - "▁t", - "rop" - ], - [ - "▁tr", - "op" - ], - [ - "▁tro", - "p" - ], - [ - "fi", - "t" - ], - [ - "f", - "it" - ], - [ - "Co", - "re" - ], - [ - "Cor", - "e" - ], - [ - "C", - "ore" - ], - [ - "▁Rad", - "io" - ], - [ - "▁", - "Radio" - ], - [ - "▁Or", - "gan" - ], - [ - "▁", - "Organ" - ], - [ - "▁P", - "ower" - ], - [ - "▁Po", - "wer" - ], - [ - "▁Pow", - "er" - ], - [ - "▁", - "Power" - ], - [ - "C", - "F" - ], - [ - "▁L", - "ast" - ], - [ - "▁La", - "st" - ], - [ - "▁Las", - "t" - ], - [ - "▁", - "Last" - ], - [ - "▁op", - "pos" - ], - [ - "▁opp", - "os" - ], - [ - "▁off", - "set" - ], - [ - "▁", - "offset" - ], - [ - "▁re", - "gia" - ], - [ - "▁reg", - "ia" - ], - [ - "▁min", - "imum" - ], - [ - "▁minim", - "um" - ], - [ - "▁hel", - "ped" - ], - [ - "▁help", - "ed" - ], - [ - "an", - "don" - ], - [ - "and", - "on" - ], - [ - "ando", - "n" - ], - [ - "if", - "ying" - ], - [ - "ify", - "ing" - ], - [ - "ru", - "it" - ], - [ - "r", - "uit" - ], - [ - "ensch", - "app" - ], - [ - "▁b", - "ere" - ], - [ - "▁be", - "re" - ], - [ - "▁ber", - "e" - ], - [ - "▁", - "bere" - ], - [ - "V", - "M" - ], - [ - "▁A", - "wards" - ], - [ - "▁Award", - "s" - ], - [ - "▁Aw", - "ards" - ], - [ - "▁a", - "gr" - ], - [ - "▁ag", - "r" - ], - [ - "▁", - "agr" - ], - [ - "yn", - "omial" - ], - [ - "en", - "ced" - ], - [ - "ence", - "d" - ], - [ - "enc", - "ed" - ], - [ - "▁dev", - "ices" - ], - [ - "▁device", - "s" - ], - [ - "▁devi", - "ces" - ], - [ - "▁b", - "ot" - ], - [ - "▁bo", - "t" - ], - [ - "▁", - "bot" - ], - [ - "▁f", - "irm" - ], - [ - "▁fi", - "rm" - ], - [ - "▁fir", - "m" - ], - [ - "▁w", - "riter" - ], - [ - "▁writ", - "er" - ], - [ - "▁wr", - "iter" - ], - [ - "▁write", - "r" - ], - [ - "▁", - "writer" - ], - [ - "▁r", - "ing" - ], - [ - "▁ri", - "ng" - ], - [ - "▁rin", - "g" - ], - [ - "▁", - "ring" - ], - [ - ".", - "-" - ], - [ - "is", - "tes" - ], - [ - "ist", - "es" - ], - [ - "iste", - "s" - ], - [ - "l", - "ä" - ], - [ - "▁m", - "el" - ], - [ - "▁me", - "l" - ], - [ - "▁", - "mel" - ], - [ - "ent", - "ation" - ], - [ - "enta", - "tion" - ], - [ - "▁Sch", - "w" - ], - [ - "▁Sc", - "hw" - ], - [ - "▁n", - "ome" - ], - [ - "▁no", - "me" - ], - [ - "▁nom", - "e" - ], - [ - "▁", - "nome" - ], - [ - "▁po", - "bla" - ], - [ - "▁pob", - "la" - ], - [ - "▁w", - "oj" - ], - [ - "▁wo", - "j" - ], - [ - "▁u", - "l" - ], - [ - "▁", - "ul" - ], - [ - "en", - "to" - ], - [ - "ent", - "o" - ], - [ - "ы", - "х" - ], - [ - "▁res", - "ist" - ], - [ - "▁rem", - "ains" - ], - [ - "▁remain", - "s" - ], - [ - "▁C", - "a" - ], - [ - "▁", - "Ca" - ], - [ - "añ", - "a" - ], - [ - "a", - "ña" - ], - [ - "▁C", - "ourt" - ], - [ - "▁Co", - "urt" - ], - [ - "▁Cour", - "t" - ], - [ - "▁Cou", - "rt" - ], - [ - "ut", - "able" - ], - [ - "uta", - "ble" - ], - [ - "u", - "table" - ], - [ - "ential", - "ly" - ], - [ - "enti", - "ally" - ], - [ - "▁t", - "rat" - ], - [ - "▁tr", - "at" - ], - [ - "▁tra", - "t" - ], - [ - "▁", - "trat" - ], - [ - "▁Vis", - "ual" - ], - [ - "▁", - "Visual" - ], - [ - "▁rest", - "rict" - ], - [ - "▁pre", - "viously" - ], - [ - "▁previous", - "ly" - ], - [ - "▁prev", - "iously" - ], - [ - "ca", - "tion" - ], - [ - "cat", - "ion" - ], - [ - "c", - "ation" - ], - [ - "▁о", - "со" - ], - [ - "▁ос", - "о" - ], - [ - "▁My", - "SQL" - ], - [ - "f", - "ör" - ], - [ - "cal", - "a" - ], - [ - "ca", - "la" - ], - [ - "c", - "ala" - ], - [ - "▁c", - "ulture" - ], - [ - "▁cult", - "ure" - ], - [ - "li", - "ve" - ], - [ - "liv", - "e" - ], - [ - "l", - "ive" - ], - [ - "▁accept", - "ed" - ], - [ - "Di", - "d" - ], - [ - "D", - "id" - ], - [ - "▁h", - "ous" - ], - [ - "▁ho", - "us" - ], - [ - "▁se", - "lection" - ], - [ - "▁select", - "ion" - ], - [ - "▁sel", - "ection" - ], - [ - "▁sele", - "ction" - ], - [ - "▁", - "selection" - ], - [ - "▁de", - "cre" - ], - [ - "▁dec", - "re" - ], - [ - "mar", - "gin" - ], - [ - "m", - "argin" - ], - [ - "ur", - "b" - ], - [ - "u", - "rb" - ], - [ - "▁I", - "nc" - ], - [ - "▁In", - "c" - ], - [ - "▁M", - "any" - ], - [ - "▁Man", - "y" - ], - [ - "▁Ma", - "ny" - ], - [ - "▁", - "Many" - ], - [ - "ib", - "t" - ], - [ - "i", - "bt" - ], - [ - "▁succ", - "eed" - ], - [ - "▁suc", - "ceed" - ], - [ - "Bind", - "ing" - ], - [ - "B", - "inding" - ], - [ - "c", - "í" - ], - [ - "▁R", - "og" - ], - [ - "▁Ro", - "g" - ], - [ - "▁should", - "n" - ], - [ - "cl", - "oud" - ], - [ - "clo", - "ud" - ], - [ - "clou", - "d" - ], - [ - "▁d", - "z" - ], - [ - "▁", - "dz" - ], - [ - "ва", - "в" - ], - [ - "▁p", - "ix" - ], - [ - "▁pi", - "x" - ], - [ - "sm", - "all" - ], - [ - "▁project", - "s" - ], - [ - "▁", - "projects" - ], - [ - "▁O", - "K" - ], - [ - "▁", - "OK" - ], - [ - "▁la", - "test" - ], - [ - "▁lat", - "est" - ], - [ - "▁late", - "st" - ], - [ - "▁", - "latest" - ], - [ - "▁re", - "ferences" - ], - [ - "▁refer", - "ences" - ], - [ - "▁reference", - "s" - ], - [ - "Pro", - "gram" - ], - [ - "Pr", - "ogram" - ], - [ - "▁er", - "st" - ], - [ - "▁ers", - "t" - ], - [ - "▁", - "erst" - ], - [ - "▁я", - "к" - ], - [ - "▁k", - "am" - ], - [ - "▁ka", - "m" - ], - [ - "▁C", - "amb" - ], - [ - "▁Cam", - "b" - ], - [ - "▁Ca", - "mb" - ], - [ - "el", - "lt" - ], - [ - "ell", - "t" - ], - [ - "ö", - "d" - ], - [ - "no", - "ne" - ], - [ - "non", - "e" - ], - [ - "n", - "one" - ], - [ - "▁j", - "usqu" - ], - [ - "▁ju", - "squ" - ], - [ - "ki", - "ng" - ], - [ - "kin", - "g" - ], - [ - "k", - "ing" - ], - [ - "▁P", - "ed" - ], - [ - "▁Pe", - "d" - ], - [ - "as", - "sert" - ], - [ - "ass", - "ert" - ], - [ - "asse", - "rt" - ], - [ - "asser", - "t" - ], - [ - "C", - "S" - ], - [ - "ri", - "to" - ], - [ - "rit", - "o" - ], - [ - "r", - "ito" - ], - [ - "es", - "sa" - ], - [ - "ess", - "a" - ], - [ - "ль", - "ко" - ], - [ - "▁V", - "on" - ], - [ - "▁Vo", - "n" - ], - [ - "▁Ed", - "ward" - ], - [ - "▁im", - "possible" - ], - [ - "▁impos", - "sible" - ], - [ - "n", - "p" - ], - [ - "word", - "s" - ], - [ - "wor", - "ds" - ], - [ - "w", - "ords" - ], - [ - "ie", - "lt" - ], - [ - "iel", - "t" - ], - [ - "i", - "elt" - ], - [ - "▁P", - "age" - ], - [ - "▁Pa", - "ge" - ], - [ - "▁", - "Page" - ], - [ - "le", - "rs" - ], - [ - "ler", - "s" - ], - [ - "l", - "ers" - ], - [ - "▁p", - "ier" - ], - [ - "▁pi", - "er" - ], - [ - "▁pie", - "r" - ], - [ - "▁обла", - "сти" - ], - [ - "itt", - "ee" - ], - [ - "itte", - "e" - ], - [ - "▁(", - "[" - ], - [ - "▁", - "([" - ], - [ - "▁t", - "rust" - ], - [ - "▁tr", - "ust" - ], - [ - "N", - "G" - ], - [ - "re", - "du" - ], - [ - "red", - "u" - ], - [ - "r", - "edu" - ], - [ - "<", - "<" - ], - [ - "ri", - "al" - ], - [ - "ria", - "l" - ], - [ - "r", - "ial" - ], - [ - "▁product", - "s" - ], - [ - "▁", - "products" - ], - [ - "▁E", - "rn" - ], - [ - "▁Er", - "n" - ], - [ - "ri", - "ère" - ], - [ - "r", - "ière" - ], - [ - "го", - "в" - ], - [ - "г", - "ов" - ], - [ - "▁Re", - "ich" - ], - [ - "▁Ro", - "ad" - ], - [ - "▁n", - "ested" - ], - [ - "▁ne", - "sted" - ], - [ - "▁nest", - "ed" - ], - [ - "▁", - "nested" - ], - [ - "Dis", - "play" - ], - [ - "▁str", - "ength" - ], - [ - "ograf", - "ía" - ], - [ - "▁ann", - "ounced" - ], - [ - "▁announ", - "ced" - ], - [ - "▁S", - "cience" - ], - [ - "▁Sc", - "ience" - ], - [ - "▁Sci", - "ence" - ], - [ - "▁рай", - "о" - ], - [ - "Param", - "eter" - ], - [ - "▁T", - "ask" - ], - [ - "▁Ta", - "sk" - ], - [ - "▁Tas", - "k" - ], - [ - "▁", - "Task" - ], - [ - "um", - "ents" - ], - [ - "ument", - "s" - ], - [ - "umen", - "ts" - ], - [ - "u", - "ments" - ], - [ - "▁ad", - "opt" - ], - [ - "▁On", - "ly" - ], - [ - "▁", - "Only" - ], - [ - "ют", - "ь" - ], - [ - "ю", - "ть" - ], - [ - "▁c", - "li" - ], - [ - "▁cl", - "i" - ], - [ - "▁", - "cli" - ], - [ - "▁l", - "em" - ], - [ - "▁le", - "m" - ], - [ - "▁", - "lem" - ], - [ - "st", - "ood" - ], - [ - "sto", - "od" - ], - [ - "▁F", - "I" - ], - [ - "▁", - "FI" - ], - [ - "ên", - "cias" - ], - [ - "ência", - "s" - ], - [ - "pon", - "ents" - ], - [ - "ponent", - "s" - ], - [ - "]", - "$" - ], - [ - "com", - "ment" - ], - [ - "comm", - "ent" - ], - [ - "▁y", - "a" - ], - [ - "▁", - "ya" - ], - [ - "sh", - "ould" - ], - [ - "ik", - "e" - ], - [ - "i", - "ke" - ], - [ - "ti", - "m" - ], - [ - "t", - "im" - ], - [ - "el", - "lig" - ], - [ - "ell", - "ig" - ], - [ - "elli", - "g" - ], - [ - "▁s", - "ending" - ], - [ - "▁send", - "ing" - ], - [ - "▁sen", - "ding" - ], - [ - "▁a", - "jax" - ], - [ - "▁aj", - "ax" - ], - [ - "▁", - "ajax" - ], - [ - "▁nov", - "iembre" - ], - [ - "um", - "es" - ], - [ - "ume", - "s" - ], - [ - "u", - "mes" - ], - [ - "▁we", - "iter" - ], - [ - "▁weit", - "er" - ], - [ - "▁D", - "ans" - ], - [ - "▁Dan", - "s" - ], - [ - "▁Da", - "ns" - ], - [ - "op", - "p" - ], - [ - "o", - "pp" - ], - [ - "▁sept", - "embre" - ], - [ - "▁sep", - "tembre" - ], - [ - "ot", - "imes" - ], - [ - "oti", - "mes" - ], - [ - "o", - "times" - ], - [ - "z", - "ő" - ], - [ - "▁e", - "p" - ], - [ - "▁", - "ep" - ], - [ - "ve", - "re" - ], - [ - "ver", - "e" - ], - [ - "v", - "ere" - ], - [ - "▁o", - "h" - ], - [ - "▁", - "oh" - ], - [ - ":", - "=" - ], - [ - "▁S", - "ong" - ], - [ - "▁So", - "ng" - ], - [ - "▁Son", - "g" - ], - [ - "”", - "," - ], - [ - "▁v", - "iv" - ], - [ - "▁vi", - "v" - ], - [ - "▁", - "viv" - ], - [ - "▁qu", - "eries" - ], - [ - "▁que", - "ries" - ], - [ - "▁quer", - "ies" - ], - [ - "▁v", - "á" - ], - [ - "▁", - "vá" - ], - [ - "▁déc", - "embre" - ], - [ - "▁un", - "able" - ], - [ - "▁una", - "ble" - ], - [ - "▁e", - "rh" - ], - [ - "▁er", - "h" - ], - [ - "▁`", - "-" - ], - [ - "▁", - "`-" - ], - [ - "▁L", - "ee" - ], - [ - "▁Le", - "e" - ], - [ - "▁er", - "sten" - ], - [ - "▁erst", - "en" - ], - [ - "▁erste", - "n" - ], - [ - "▁ers", - "ten" - ], - [ - "ô", - "t" - ], - [ - "ст", - "ве" - ], - [ - "ств", - "е" - ], - [ - "T", - "S" - ], - [ - "▁f", - "ragment" - ], - [ - "▁fra", - "gment" - ], - [ - "▁frag", - "ment" - ], - [ - "▁", - "fragment" - ], - [ - "▁w", - "ide" - ], - [ - "▁wid", - "e" - ], - [ - "▁", - "wide" - ], - [ - "▁s", - "uff" - ], - [ - "▁su", - "ff" - ], - [ - "▁suf", - "f" - ], - [ - "▁d", - "ut" - ], - [ - "▁du", - "t" - ], - [ - "▁V", - "ere" - ], - [ - "▁Ver", - "e" - ], - [ - "▁Ve", - "re" - ], - [ - "і", - "с" - ], - [ - "ad", - "ing" - ], - [ - "adi", - "ng" - ], - [ - "adin", - "g" - ], - [ - "a", - "ding" - ], - [ - "ie", - "go" - ], - [ - "ieg", - "o" - ], - [ - "i", - "ego" - ], - [ - "ic", - "ago" - ], - [ - "ica", - "go" - ], - [ - "▁Ar", - "gent" - ], - [ - "▁Arg", - "ent" - ], - [ - "or", - "er" - ], - [ - "ore", - "r" - ], - [ - "o", - "rer" - ], - [ - "en", - "nes" - ], - [ - "enn", - "es" - ], - [ - "enne", - "s" - ], - [ - "▁L", - "eb" - ], - [ - "▁Le", - "b" - ], - [ - "lin", - "ux" - ], - [ - "ac", - "ing" - ], - [ - "aci", - "ng" - ], - [ - "a", - "cing" - ], - [ - "▁br", - "oken" - ], - [ - "▁bro", - "ken" - ], - [ - "▁broke", - "n" - ], - [ - "t", - "p" - ], - [ - "í", - "o" - ], - [ - "ab", - "eth" - ], - [ - "abe", - "th" - ], - [ - "abet", - "h" - ], - [ - "ist", - "as" - ], - [ - "ista", - "s" - ], - [ - "ge", - "w" - ], - [ - "g", - "ew" - ], - [ - "i", - "ème" - ], - [ - "ca", - "s" - ], - [ - "c", - "as" - ], - [ - "▁pre", - "ced" - ], - [ - "▁prec", - "ed" - ], - [ - "▁D", - "al" - ], - [ - "▁Da", - "l" - ], - [ - "▁comp", - "ared" - ], - [ - "▁compar", - "ed" - ], - [ - "▁compare", - "d" - ], - [ - "equ", - "iv" - ], - [ - "il", - "ly" - ], - [ - "ill", - "y" - ], - [ - "te", - "en" - ], - [ - "t", - "een" - ], - [ - "▁Con", - "sole" - ], - [ - "▁Cons", - "ole" - ], - [ - "▁", - "Console" - ], - [ - "▁st", - "rict" - ], - [ - "▁str", - "ict" - ], - [ - "▁stri", - "ct" - ], - [ - "it", - "aire" - ], - [ - "ita", - "ire" - ], - [ - "i", - "taire" - ], - [ - "▁E", - "D" - ], - [ - "▁", - "ED" - ], - [ - "ential", - "s" - ], - [ - "enti", - "als" - ], - [ - "▁p", - "erman" - ], - [ - "▁per", - "man" - ], - [ - "▁perm", - "an" - ], - [ - "▁t", - "ous" - ], - [ - "▁to", - "us" - ], - [ - "▁tou", - "s" - ], - [ - "▁g", - "eme" - ], - [ - "▁ge", - "me" - ], - [ - "▁gem", - "e" - ], - [ - "▁", - "geme" - ], - [ - "▁ext", - "rem" - ], - [ - "▁extr", - "em" - ], - [ - "▁ок", - "ру" - ], - [ - "k", - "g" - ], - [ - "▁he", - "avy" - ], - [ - "▁heav", - "y" - ], - [ - "▁av", - "ril" - ], - [ - "▁an", - "ti" - ], - [ - "▁ant", - "i" - ], - [ - "▁", - "anti" - ], - [ - "▁oct", - "obre" - ], - [ - "ut", - "f" - ], - [ - "u", - "tf" - ], - [ - "he", - "lm" - ], - [ - "hel", - "m" - ], - [ - "h", - "elm" - ], - [ - "am", - "ples" - ], - [ - "ample", - "s" - ], - [ - "amp", - "les" - ], - [ - "▁(", - "_" - ], - [ - "▁", - "(_" - ], - [ - "ak", - "en" - ], - [ - "ake", - "n" - ], - [ - "a", - "ken" - ], - [ - "▁d", - "ear" - ], - [ - "▁de", - "ar" - ], - [ - "▁opin", - "ion" - ], - [ - "▁f", - "ish" - ], - [ - "▁fi", - "sh" - ], - [ - "▁fis", - "h" - ], - [ - "▁", - "fish" - ], - [ - "▁Alex", - "ander" - ], - [ - "▁Alexand", - "er" - ], - [ - "i", - "w" - ], - [ - "и", - "м" - ], - [ - "ca", - "dem" - ], - [ - "cade", - "m" - ], - [ - "c", - "adem" - ], - [ - "▁ref", - "lect" - ], - [ - "▁", - "reflect" - ], - [ - "▁д", - "р" - ], - [ - "▁t", - "rib" - ], - [ - "▁tr", - "ib" - ], - [ - "▁tri", - "b" - ], - [ - "com", - "mon" - ], - [ - "comm", - "on" - ], - [ - "▁clear", - "ly" - ], - [ - "▁s", - "af" - ], - [ - "▁sa", - "f" - ], - [ - "=\"@", - "+" - ], - [ - "▁М", - "ос" - ], - [ - "▁Мо", - "с" - ], - [ - "си", - "те" - ], - [ - "eqn", - "array" - ], - [ - "nu", - "ng" - ], - [ - "n", - "ung" - ], - [ - "▁relations", - "hip" - ], - [ - "▁relation", - "ship" - ], - [ - "▁S", - "em" - ], - [ - "▁Se", - "m" - ], - [ - "▁", - "Sem" - ], - [ - "▁k", - "illed" - ], - [ - "▁kil", - "led" - ], - [ - "▁kill", - "ed" - ], - [ - "te", - "d" - ], - [ - "t", - "ed" - ], - [ - "un", - "o" - ], - [ - "u", - "no" - ], - [ - "▁", - "лі" - ], - [ - "▁w", - "id" - ], - [ - "▁", - "wid" - ], - [ - "an", - "ning" - ], - [ - "ann", - "ing" - ], - [ - "anni", - "ng" - ], - [ - "▁p", - "anel" - ], - [ - "▁pa", - "nel" - ], - [ - "▁pan", - "el" - ], - [ - "▁", - "panel" - ], - [ - "▁L", - "eben" - ], - [ - "▁Le", - "ben" - ], - [ - "▁Leb", - "en" - ], - [ - "▁r", - "uby" - ], - [ - "▁ru", - "by" - ], - [ - "▁rub", - "y" - ], - [ - "▁", - "ruby" - ], - [ - "ans", - "ion" - ], - [ - "▁a", - "ren" - ], - [ - "▁are", - "n" - ], - [ - "▁ar", - "en" - ], - [ - "▁", - "aren" - ], - [ - "tab", - "ular" - ], - [ - "al", - "et" - ], - [ - "ale", - "t" - ], - [ - "a", - "let" - ], - [ - "}$", - "$" - ], - [ - "}", - "$$" - ], - [ - "▁L", - "ake" - ], - [ - "▁La", - "ke" - ], - [ - "▁Lak", - "e" - ], - [ - "▁su", - "ite" - ], - [ - "▁suit", - "e" - ], - [ - "▁", - "suite" - ], - [ - "▁min", - "or" - ], - [ - "▁mi", - "nor" - ], - [ - "H", - "ozzáférés" - ], - [ - "▁xml", - "ns" - ], - [ - "▁", - "xmlns" - ], - [ - "DI", - "R" - ], - [ - "D", - "IR" - ], - [ - "dr", - "iver" - ], - [ - "drive", - "r" - ], - [ - "dri", - "ver" - ], - [ - "d", - "river" - ], - [ - "in", - "ts" - ], - [ - "int", - "s" - ], - [ - "▁v", - "ic" - ], - [ - "▁vi", - "c" - ], - [ - "▁", - "vic" - ], - [ - "AN", - "D" - ], - [ - "A", - "ND" - ], - [ - "pr", - "im" - ], - [ - "p", - "rim" - ], - [ - "сы", - "лки" - ], - [ - "▁O", - "x" - ], - [ - "T", - "C" - ], - [ - "riv", - "ial" - ], - [ - "at", - "ie" - ], - [ - "ati", - "e" - ], - [ - "▁e", - "ight" - ], - [ - "▁eig", - "ht" - ], - [ - "▁eigh", - "t" - ], - [ - "▁conf", - "lic" - ], - [ - "▁confl", - "ic" - ], - [ - "an", - "gel" - ], - [ - "ang", - "el" - ], - [ - "ange", - "l" - ], - [ - "▁B", - "egr" - ], - [ - "▁Be", - "gr" - ], - [ - "▁Beg", - "r" - ], - [ - "▁explicit", - "ly" - ], - [ - "ют", - "ся" - ], - [ - "ю", - "тся" - ], - [ - "▁D", - "ev" - ], - [ - "▁De", - "v" - ], - [ - "▁", - "Dev" - ], - [ - "re", - "nder" - ], - [ - "ren", - "der" - ], - [ - "rend", - "er" - ], - [ - "r", - "ender" - ], - [ - "▁re", - "produ" - ], - [ - "▁rep", - "rodu" - ], - [ - "▁repr", - "odu" - ], - [ - "▁repro", - "du" - ], - [ - "▁c", - "ré" - ], - [ - "▁cr", - "é" - ], - [ - "G", - "u" - ], - [ - "M", - "B" - ], - [ - "▁k", - "ön" - ], - [ - "▁kö", - "n" - ], - [ - "▁rem", - "ained" - ], - [ - "▁remain", - "ed" - ], - [ - "▁k", - "l" - ], - [ - "▁", - "kl" - ], - [ - "хо", - "в" - ], - [ - "х", - "ов" - ], - [ - "▁b", - "yl" - ], - [ - "▁by", - "l" - ], - [ - "Ph", - "i" - ], - [ - "P", - "hi" - ], - [ - "▁de", - "tail" - ], - [ - "▁det", - "ail" - ], - [ - "▁", - "detail" - ], - [ - "ja", - "v" - ], - [ - "j", - "av" - ], - [ - "▁m", - "ouse" - ], - [ - "▁mo", - "use" - ], - [ - "▁mou", - "se" - ], - [ - "▁", - "mouse" - ], - [ - "B", - "as" - ], - [ - "i", - "ę" - ], - [ - "as", - "ser" - ], - [ - "ass", - "er" - ], - [ - "asse", - "r" - ], - [ - "h", - "s" - ], - [ - "▁sh", - "ift" - ], - [ - "▁", - "shift" - ], - [ - "▁ú", - "lt" - ], - [ - "▁", - "últ" - ], - [ - "ra", - "nd" - ], - [ - "ran", - "d" - ], - [ - "r", - "and" - ], - [ - "▁b", - "tn" - ], - [ - "▁", - "btn" - ], - [ - "ra", - "z" - ], - [ - "r", - "az" - ], - [ - "▁p", - "ul" - ], - [ - "▁pu", - "l" - ], - [ - "▁stat", - "ements" - ], - [ - "▁state", - "ments" - ], - [ - "▁statement", - "s" - ], - [ - "file", - "name" - ], - [ - "fil", - "ename" - ], - [ - "▁prom", - "pt" - ], - [ - "él", - "é" - ], - [ - "é", - "lé" - ], - [ - "ik", - "z" - ], - [ - "▁S", - "us" - ], - [ - "▁Su", - "s" - ], - [ - "▁de", - "but" - ], - [ - "▁deb", - "ut" - ], - [ - "St", - "at" - ], - [ - "S", - "tat" - ], - [ - "form", - "s" - ], - [ - "for", - "ms" - ], - [ - "▁H", - "ein" - ], - [ - "▁He", - "in" - ], - [ - "st", - "adt" - ], - [ - "sta", - "dt" - ], - [ - "stad", - "t" - ], - [ - "en", - "nis" - ], - [ - "enn", - "is" - ], - [ - "по", - "л" - ], - [ - "ar", - "ante" - ], - [ - "aran", - "te" - ], - [ - "ці", - "й" - ], - [ - "ц", - "ій" - ], - [ - "▁que", - "ue" - ], - [ - "▁", - "queue" - ], - [ - "▁re", - "ci" - ], - [ - "▁rec", - "i" - ], - [ - "▁", - "reci" - ], - [ - "▁s", - "ta" - ], - [ - "▁st", - "a" - ], - [ - "▁", - "sta" - ], - [ - "yn", - "chron" - ], - [ - "cent", - "ering" - ], - [ - "center", - "ing" - ], - [ - "cente", - "ring" - ], - [ - "So", - "me" - ], - [ - "S", - "ome" - ], - [ - "Gr", - "aph" - ], - [ - "G", - "raph" - ], - [ - "▁t", - "ested" - ], - [ - "▁te", - "sted" - ], - [ - "▁test", - "ed" - ], - [ - "▁K", - "unst" - ], - [ - "▁Kun", - "st" - ], - [ - "о", - "м" - ], - [ - "▁N", - "othing" - ], - [ - "▁No", - "thing" - ], - [ - "▁Not", - "hing" - ], - [ - "▁", - "Nothing" - ], - [ - "ie", - "u" - ], - [ - "i", - "eu" - ], - [ - "“", - "." - ], - [ - "B", - "undle" - ], - [ - "▁of", - "icial" - ], - [ - "▁ofic", - "ial" - ], - [ - "al", - "low" - ], - [ - "all", - "ow" - ], - [ - "allo", - "w" - ], - [ - "▁Re", - "act" - ], - [ - "▁L", - "ibrary" - ], - [ - "▁Li", - "brary" - ], - [ - "▁", - "Library" - ], - [ - "bl", - "ue" - ], - [ - "▁ver", - "w" - ], - [ - "▁ve", - "rw" - ], - [ - "▁p", - "are" - ], - [ - "▁par", - "e" - ], - [ - "▁pa", - "re" - ], - [ - "▁Fried", - "rich" - ], - [ - "▁a", - "ware" - ], - [ - "▁aw", - "are" - ], - [ - "▁", - "aware" - ], - [ - "Ex", - "p" - ], - [ - "E", - "xp" - ], - [ - "▁effect", - "s" - ], - [ - "▁го", - "ро" - ], - [ - "▁гор", - "о" - ], - [ - "lop", - "edia" - ], - [ - "loped", - "ia" - ], - [ - "▁V", - "en" - ], - [ - "▁Ve", - "n" - ], - [ - "ra", - "le" - ], - [ - "ral", - "e" - ], - [ - "r", - "ale" - ], - [ - "▁F", - "inal" - ], - [ - "▁Fin", - "al" - ], - [ - "▁", - "Final" - ], - [ - "▁pro", - "pos" - ], - [ - "▁prop", - "os" - ], - [ - "la", - "cement" - ], - [ - "lace", - "ment" - ], - [ - "lac", - "ement" - ], - [ - "kt", - "en" - ], - [ - "kte", - "n" - ], - [ - "k", - "ten" - ], - [ - "▁no", - "vel" - ], - [ - "▁nov", - "el" - ], - [ - "or", - "ter" - ], - [ - "ort", - "er" - ], - [ - "orte", - "r" - ], - [ - "▁German", - "y" - ], - [ - "▁Ger", - "many" - ], - [ - "▁Germ", - "any" - ], - [ - "▁d", - "jango" - ], - [ - "▁", - "django" - ], - [ - "▁trans", - "ition" - ], - [ - "▁", - "transition" - ], - [ - "▁happ", - "ened" - ], - [ - "▁happen", - "ed" - ], - [ - "▁beaut", - "iful" - ], - [ - "▁ne", - "ither" - ], - [ - "▁nei", - "ther" - ], - [ - "▁li", - "braries" - ], - [ - "▁h", - "ide" - ], - [ - "▁hi", - "de" - ], - [ - "▁hid", - "e" - ], - [ - "▁", - "hide" - ], - [ - "al", - "g" - ], - [ - "a", - "lg" - ], - [ - "▁a", - "spect" - ], - [ - "▁as", - "pect" - ], - [ - "▁asp", - "ect" - ], - [ - "▁for", - "get" - ], - [ - "▁forg", - "et" - ], - [ - "cade", - "my" - ], - [ - "cadem", - "y" - ], - [ - "on", - "te" - ], - [ - "ont", - "e" - ], - [ - "re", - "fix" - ], - [ - "ref", - "ix" - ], - [ - "▁cl", - "oud" - ], - [ - "▁clo", - "ud" - ], - [ - "▁", - "cloud" - ], - [ - "ne", - "d" - ], - [ - "n", - "ed" - ], - [ - "cd", - "ots" - ], - [ - "cdot", - "s" - ], - [ - "c", - "dots" - ], - [ - "reg", - "ister" - ], - [ - "ny", - "m" - ], - [ - "n", - "ym" - ], - [ - ".)", - ":" - ], - [ - ".", - "):" - ], - [ - "▁J", - "ew" - ], - [ - "▁Je", - "w" - ], - [ - "▁t", - "rès" - ], - [ - "▁tr", - "ès" - ], - [ - "ни", - "че" - ], - [ - "▁D", - "or" - ], - [ - "▁Do", - "r" - ], - [ - "▁p", - "roc" - ], - [ - "▁pro", - "c" - ], - [ - "▁pr", - "oc" - ], - [ - "▁", - "proc" - ], - [ - "▁g", - "an" - ], - [ - "▁ga", - "n" - ], - [ - "▁", - "gan" - ], - [ - "▁", - "є" - ], - [ - "▁S", - "av" - ], - [ - "▁Sa", - "v" - ], - [ - "v", - "í" - ], - [ - "Setting", - "s" - ], - [ - "S", - "ettings" - ], - [ - "▁V", - "ari" - ], - [ - "▁Var", - "i" - ], - [ - "▁Va", - "ri" - ], - [ - "▁", - "Vari" - ], - [ - "▁c", - "ours" - ], - [ - "▁co", - "urs" - ], - [ - "▁cour", - "s" - ], - [ - "▁cou", - "rs" - ], - [ - "R", - "o" - ], - [ - "▁con", - "j" - ], - [ - "▁re", - "asons" - ], - [ - "▁reason", - "s" - ], - [ - "▁re", - "ader" - ], - [ - "▁read", - "er" - ], - [ - "▁", - "reader" - ], - [ - "лекс", - "анд" - ], - [ - "ic", - "ate" - ], - [ - "ica", - "te" - ], - [ - "})", - "," - ], - [ - "}", - ")," - ], - [ - "▁task", - "s" - ], - [ - "▁", - "tasks" - ], - [ - "▁R", - "ay" - ], - [ - "▁Ra", - "y" - ], - [ - "▁r", - "ic" - ], - [ - "▁ri", - "c" - ], - [ - "▁", - "ric" - ], - [ - "K", - "e" - ], - [ - "on", - "ie" - ], - [ - "oni", - "e" - ], - [ - "o", - "nie" - ], - [ - "r", - "f" - ], - [ - ")", - "[" - ], - [ - "▁sub", - "sequ" - ], - [ - "▁subs", - "equ" - ], - [ - "▁T", - "urn" - ], - [ - "▁Tur", - "n" - ], - [ - "▁Tu", - "rn" - ], - [ - "▁", - "Turn" - ], - [ - "▁VI", - "AF" - ], - [ - "math", - "sf" - ], - [ - "H", - "E" - ], - [ - "▁dec", - "lare" - ], - [ - "▁decl", - "are" - ], - [ - "▁decla", - "re" - ], - [ - "▁declar", - "e" - ], - [ - "▁pro", - "tocol" - ], - [ - "▁proto", - "col" - ], - [ - "▁", - "protocol" - ], - [ - "▁P", - "C" - ], - [ - "▁", - "PC" - ], - [ - "ци", - "он" - ], - [ - "View", - "ById" - ], - [ - "▁an", - "imation" - ], - [ - "▁anim", - "ation" - ], - [ - "▁", - "animation" - ], - [ - "▁conf", - "used" - ], - [ - "ви", - "ч" - ], - [ - "▁en", - "abled" - ], - [ - "▁enable", - "d" - ], - [ - "▁", - "enabled" - ], - [ - "ow", - "o" - ], - [ - "o", - "wo" - ], - [ - "ás", - "t" - ], - [ - "á", - "st" - ], - [ - "ö", - "t" - ], - [ - "▁m", - "and" - ], - [ - "▁ma", - "nd" - ], - [ - "▁man", - "d" - ], - [ - "▁R", - "ail" - ], - [ - "▁Ra", - "il" - ], - [ - "field", - "s" - ], - [ - "▁K", - "ap" - ], - [ - "▁Ka", - "p" - ], - [ - "▁al", - "gebra" - ], - [ - "▁", - "algebra" - ], - [ - "▁С", - "у" - ], - [ - "fér", - "ence" - ], - [ - "▁C", - "urrent" - ], - [ - "▁Cur", - "rent" - ], - [ - "▁", - "Current" - ], - [ - "с", - "но" - ], - [ - "▁L", - "im" - ], - [ - "▁Li", - "m" - ], - [ - "Par", - "ams" - ], - [ - "Param", - "s" - ], - [ - "Pa", - "rams" - ], - [ - "▁Ant", - "onio" - ], - [ - "▁Anton", - "io" - ], - [ - "▁Anto", - "nio" - ], - [ - "▁t", - "v" - ], - [ - "▁", - "tv" - ], - [ - "la", - "te" - ], - [ - "lat", - "e" - ], - [ - "l", - "ate" - ], - [ - "if", - "er" - ], - [ - "ife", - "r" - ], - [ - "i", - "fer" - ], - [ - "En", - "try" - ], - [ - "Ent", - "ry" - ], - [ - "▁S", - "erv" - ], - [ - "▁Se", - "rv" - ], - [ - "▁Ser", - "v" - ], - [ - "▁", - "Serv" - ], - [ - "▁mus", - "ical" - ], - [ - "▁music", - "al" - ], - [ - "▁musica", - "l" - ], - [ - "▁t", - "race" - ], - [ - "▁tr", - "ace" - ], - [ - "▁tra", - "ce" - ], - [ - "▁trac", - "e" - ], - [ - "▁", - "trace" - ], - [ - "▁s", - "cient" - ], - [ - "▁sc", - "ient" - ], - [ - "▁sci", - "ent" - ], - [ - "fi", - "c" - ], - [ - "f", - "ic" - ], - [ - "▁for", - "got" - ], - [ - "▁forg", - "ot" - ], - [ - "v", - "ideo" - ], - [ - "▁o", - "lder" - ], - [ - "▁old", - "er" - ], - [ - "▁ol", - "der" - ], - [ - "▁", - "older" - ], - [ - "Tr", - "ee" - ], - [ - "T", - "ree" - ], - [ - "▁u", - "ns" - ], - [ - "▁un", - "s" - ], - [ - "▁", - "uns" - ], - [ - "ни", - "ки" - ], - [ - "ник", - "и" - ], - [ - "▁E", - "uropa" - ], - [ - "▁Europ", - "a" - ], - [ - "▁Euro", - "pa" - ], - [ - "▁Z", - "we" - ], - [ - "▁Zw", - "e" - ], - [ - "▁б", - "е" - ], - [ - "▁", - "бе" - ], - [ - "▁v", - "ec" - ], - [ - "▁ve", - "c" - ], - [ - "▁", - "vec" - ], - [ - "ж", - "у" - ], - [ - "Mat", - "ch" - ], - [ - "M", - "atch" - ], - [ - "sp", - "an" - ], - [ - "s", - "pan" - ], - [ - "▁bl", - "ank" - ], - [ - "▁blan", - "k" - ], - [ - "▁", - "blank" - ], - [ - "▁sp", - "äter" - ], - [ - "▁T", - "y" - ], - [ - "▁", - "Ty" - ], - [ - "▁d", - "ict" - ], - [ - "▁di", - "ct" - ], - [ - "▁dic", - "t" - ], - [ - "▁", - "dict" - ], - [ - "ñ", - "a" - ], - [ - "▁conf", - "irm" - ], - [ - "▁confir", - "m" - ], - [ - "▁", - "confirm" - ], - [ - "▁v", - "ý" - ], - [ - "за", - "н" - ], - [ - "з", - "ан" - ], - [ - "Re", - "l" - ], - [ - "R", - "el" - ], - [ - "fil", - "m" - ], - [ - "fi", - "lm" - ], - [ - "▁R", - "ot" - ], - [ - "▁Ro", - "t" - ], - [ - "▁", - "Rot" - ], - [ - "▁H", - "y" - ], - [ - "▁", - "Hy" - ], - [ - "ка", - "х" - ], - [ - "▁dem", - "and" - ], - [ - "▁min", - "ist" - ], - [ - "▁mini", - "st" - ], - [ - "▁Mad", - "rid" - ], - [ - "▁us", - "ual" - ], - [ - "sp", - "iel" - ], - [ - "s", - "piel" - ], - [ - "er", - "os" - ], - [ - "ero", - "s" - ], - [ - "e", - "ros" - ], - [ - "▁t", - "utorial" - ], - [ - "▁tut", - "orial" - ], - [ - "▁", - "tutorial" - ], - [ - "▁С", - "сылки" - ], - [ - "s", - "ys" - ], - [ - "ци", - "аль" - ], - [ - "▁sp", - "read" - ], - [ - "▁spr", - "ead" - ], - [ - "▁spre", - "ad" - ], - [ - "▁con", - "vers" - ], - [ - "▁conver", - "s" - ], - [ - "▁conv", - "ers" - ], - [ - "▁r", - "oll" - ], - [ - "▁ro", - "ll" - ], - [ - "▁rol", - "l" - ], - [ - "▁", - "roll" - ], - [ - "artifact", - "Id" - ], - [ - "▁N", - "umber" - ], - [ - "▁Num", - "ber" - ], - [ - "▁", - "Number" - ], - [ - "▁sym", - "met" - ], - [ - "▁M", - "ult" - ], - [ - "▁Mu", - "lt" - ], - [ - "▁Mul", - "t" - ], - [ - "▁", - "Mult" - ], - [ - "ex", - "pected" - ], - [ - "exp", - "ected" - ], - [ - "expect", - "ed" - ], - [ - "▁a", - "xis" - ], - [ - "▁ax", - "is" - ], - [ - "▁", - "axis" - ], - [ - "▁match", - "ing" - ], - [ - "▁f", - "ood" - ], - [ - "▁fo", - "od" - ], - [ - "▁foo", - "d" - ], - [ - "group", - "Id" - ], - [ - "Map", - "p" - ], - [ - "Ma", - "pp" - ], - [ - "M", - "app" - ], - [ - "▁с", - "вя" - ], - [ - "▁v", - "end" - ], - [ - "▁ve", - "nd" - ], - [ - "▁ven", - "d" - ], - [ - "F", - "ound" - ], - [ - "ot", - "to" - ], - [ - "ott", - "o" - ], - [ - "o", - "tto" - ], - [ - "Ca", - "t" - ], - [ - "C", - "at" - ], - [ - "cri", - "t" - ], - [ - "cr", - "it" - ], - [ - "c", - "rit" - ], - [ - "ist", - "ent" - ], - [ - "iste", - "nt" - ], - [ - "isten", - "t" - ], - [ - "▁d", - "rei" - ], - [ - "▁dr", - "ei" - ], - [ - "▁dre", - "i" - ], - [ - "▁en", - "ded" - ], - [ - "▁end", - "ed" - ], - [ - "▁ende", - "d" - ], - [ - "▁", - "ended" - ], - [ - "▁T", - "ele" - ], - [ - "▁Te", - "le" - ], - [ - "▁Tel", - "e" - ], - [ - "com", - "ponent" - ], - [ - "▁invol", - "ved" - ], - [ - "▁involve", - "d" - ], - [ - "▁Est", - "ados" - ], - [ - "▁Estado", - "s" - ], - [ - "▁Estad", - "os" - ], - [ - "▁d", - "anger" - ], - [ - "▁dan", - "ger" - ], - [ - "▁ch", - "ain" - ], - [ - "▁cha", - "in" - ], - [ - "▁", - "chain" - ], - [ - "▁P", - "rom" - ], - [ - "▁Pro", - "m" - ], - [ - "▁Pr", - "om" - ], - [ - "▁", - "Prom" - ], - [ - "ho", - "m" - ], - [ - "h", - "om" - ], - [ - "▁pol", - "ít" - ], - [ - "co", - "p" - ], - [ - "c", - "op" - ], - [ - "▁n", - "ap" - ], - [ - "▁na", - "p" - ], - [ - "▁", - "nap" - ], - [ - "ri", - "f" - ], - [ - "r", - "if" - ], - [ - "ple", - "ments" - ], - [ - "pl", - "ements" - ], - [ - "plement", - "s" - ], - [ - "▁v", - "ent" - ], - [ - "▁ve", - "nt" - ], - [ - "▁ven", - "t" - ], - [ - "▁", - "vent" - ], - [ - "an", - "na" - ], - [ - "ann", - "a" - ], - [ - "an", - "ted" - ], - [ - "ant", - "ed" - ], - [ - "ante", - "d" - ], - [ - "date", - "d" - ], - [ - "da", - "ted" - ], - [ - "dat", - "ed" - ], - [ - "d", - "ated" - ], - [ - "an", - "th" - ], - [ - "ant", - "h" - ], - [ - "a", - "nth" - ], - [ - "▁thread", - "s" - ], - [ - "▁thre", - "ads" - ], - [ - "▁", - "threads" - ], - [ - "зо", - "ва" - ], - [ - "зов", - "а" - ], - [ - "з", - "ова" - ], - [ - "▁ста", - "нов" - ], - [ - "▁стан", - "ов" - ], - [ - "▁", - "станов" - ], - [ - "▁e", - "erst" - ], - [ - "▁eer", - "st" - ], - [ - "bu", - "f" - ], - [ - "b", - "uf" - ], - [ - "he", - "id" - ], - [ - "▁R", - "u" - ], - [ - "▁P", - "rim" - ], - [ - "▁Pr", - "im" - ], - [ - "▁Pri", - "m" - ], - [ - "▁", - "Prim" - ], - [ - "▁m", - "igr" - ], - [ - "▁mi", - "gr" - ], - [ - "▁mig", - "r" - ], - [ - "▁", - "migr" - ], - [ - "▁Un", - "idos" - ], - [ - "▁ar", - "bitr" - ], - [ - "▁r", - "oman" - ], - [ - "▁ro", - "man" - ], - [ - "▁rom", - "an" - ], - [ - "ount", - "ry" - ], - [ - "oun", - "try" - ], - [ - "ult", - "ur" - ], - [ - "▁K", - "önig" - ], - [ - "▁Kö", - "nig" - ], - [ - "▁an", - "not" - ], - [ - "▁ann", - "ot" - ], - [ - "▁anno", - "t" - ], - [ - "▁", - "annot" - ], - [ - "ach", - "ing" - ], - [ - "ac", - "hing" - ], - [ - "achi", - "ng" - ], - [ - "▁H", - "aupt" - ], - [ - "▁Ha", - "upt" - ], - [ - "um", - "in" - ], - [ - "umi", - "n" - ], - [ - "u", - "min" - ], - [ - "▁h", - "em" - ], - [ - "▁he", - "m" - ], - [ - "▁", - "hem" - ], - [ - "ck", - "ets" - ], - [ - "cket", - "s" - ], - [ - "cke", - "ts" - ], - [ - "ba", - "u" - ], - [ - "b", - "au" - ], - [ - "ect", - "ion" - ], - [ - "ec", - "tion" - ], - [ - "e", - "ction" - ], - [ - "ef", - "t" - ], - [ - "e", - "ft" - ], - [ - "▁package", - "s" - ], - [ - "▁pack", - "ages" - ], - [ - "▁", - "packages" - ], - [ - "▁K", - "ur" - ], - [ - "▁Ku", - "r" - ], - [ - "th", - "ur" - ], - [ - "▁p", - "ays" - ], - [ - "▁pa", - "ys" - ], - [ - "▁pay", - "s" - ], - [ - "li", - "ament" - ], - [ - "lia", - "ment" - ], - [ - "▁Б", - "у" - ], - [ - "▁c", - "ada" - ], - [ - "▁ca", - "da" - ], - [ - "▁cad", - "a" - ], - [ - "po", - "ints" - ], - [ - "point", - "s" - ], - [ - "oc", - "ket" - ], - [ - "ock", - "et" - ], - [ - "o", - "cket" - ], - [ - "▁v", - "erb" - ], - [ - "▁ver", - "b" - ], - [ - "▁ve", - "rb" - ], - [ - "▁", - "verb" - ], - [ - "ле", - "е" - ], - [ - "▁sub", - "mit" - ], - [ - "▁subm", - "it" - ], - [ - "▁", - "submit" - ], - [ - "▁s", - "an" - ], - [ - "▁sa", - "n" - ], - [ - "▁", - "san" - ], - [ - "ru", - "by" - ], - [ - "r", - "uby" - ], - [ - "▁e", - "ast" - ], - [ - "▁eas", - "t" - ], - [ - "▁", - "east" - ], - [ - "ko", - "v" - ], - [ - "k", - "ov" - ], - [ - "▁Ver", - "lag" - ], - [ - "▁Verl", - "ag" - ], - [ - "▁", - "Verlag" - ], - [ - "▁s", - "pot" - ], - [ - "▁sp", - "ot" - ], - [ - "▁spo", - "t" - ], - [ - "▁", - "spot" - ], - [ - "pp", - "o" - ], - [ - "p", - "po" - ], - [ - "E", - "ach" - ], - [ - "je", - "kt" - ], - [ - "▁Bi", - "ographie" - ], - [ - "▁ne", - "ws" - ], - [ - "▁new", - "s" - ], - [ - "▁", - "news" - ], - [ - "▁pa", - "ís" - ], - [ - "uf", - "act" - ], - [ - "u", - "fact" - ], - [ - "▁d", - "ia" - ], - [ - "▁di", - "a" - ], - [ - "▁", - "dia" - ], - [ - "ко", - "ва" - ], - [ - "ков", - "а" - ], - [ - "к", - "ова" - ], - [ - "▁accom", - "pl" - ], - [ - "▁accomp", - "l" - ], - [ - "▁É", - "t" - ], - [ - "▁", - "Ét" - ], - [ - "il", - "ities" - ], - [ - "ili", - "ties" - ], - [ - "▁i", - "hm" - ], - [ - "▁ih", - "m" - ], - [ - "in", - "voke" - ], - [ - "inv", - "oke" - ], - [ - "▁app", - "end" - ], - [ - "▁ap", - "pend" - ], - [ - "▁appe", - "nd" - ], - [ - "▁", - "append" - ], - [ - ".)", - "," - ], - [ - ".", - ")," - ], - [ - "▁l", - "ab" - ], - [ - "▁la", - "b" - ], - [ - "▁", - "lab" - ], - [ - "an", - "ging" - ], - [ - "ang", - "ing" - ], - [ - "is", - "tan" - ], - [ - "ist", - "an" - ], - [ - "ista", - "n" - ], - [ - "i", - "stan" - ], - [ - "re", - "sol" - ], - [ - "res", - "ol" - ], - [ - "reso", - "l" - ], - [ - "▁S", - "ection" - ], - [ - "▁Se", - "ction" - ], - [ - "▁Sec", - "tion" - ], - [ - "▁", - "Section" - ], - [ - "Par", - "ent" - ], - [ - "Pa", - "rent" - ], - [ - "mo", - "z" - ], - [ - "m", - "oz" - ], - [ - "Ma", - "t" - ], - [ - "M", - "at" - ], - [ - "st", - "yles" - ], - [ - "style", - "s" - ], - [ - "sty", - "les" - ], - [ - "un", - "den" - ], - [ - "und", - "en" - ], - [ - "unde", - "n" - ], - [ - "“", - "," - ], - [ - "irt", - "schaft" - ], - [ - "ки", - "м" - ], - [ - "к", - "им" - ], - [ - "▁Fin", - "ally" - ], - [ - "▁Final", - "ly" - ], - [ - "ph", - "en" - ], - [ - "phe", - "n" - ], - [ - "p", - "hen" - ], - [ - "▁P", - "ac" - ], - [ - "▁Pa", - "c" - ], - [ - "▁Array", - "List" - ], - [ - "▁", - "ArrayList" - ], - [ - "▁re", - "cover" - ], - [ - "▁rec", - "over" - ], - [ - "▁e", - "ducation" - ], - [ - "▁educ", - "ation" - ], - [ - "mod", - "els" - ], - [ - "model", - "s" - ], - [ - "mode", - "ls" - ], - [ - "pe", - "d" - ], - [ - "p", - "ed" - ], - [ - "▁h", - "appy" - ], - [ - "▁ha", - "ppy" - ], - [ - "▁happ", - "y" - ], - [ - "ч", - "у" - ], - [ - "▁guer", - "ra" - ], - [ - "me", - "dia" - ], - [ - "med", - "ia" - ], - [ - "medi", - "a" - ], - [ - "m", - "edia" - ], - [ - "O", - "F" - ], - [ - "▁ens", - "ure" - ], - [ - "▁", - "ensure" - ], - [ - "Mar", - "k" - ], - [ - "M", - "ark" - ], - [ - "data", - "base" - ], - [ - "dat", - "abase" - ], - [ - "datab", - "ase" - ], - [ - "d", - "atabase" - ], - [ - "og", - "gle" - ], - [ - "▁pub", - "lish" - ], - [ - "▁publi", - "sh" - ], - [ - "▁", - "publish" - ], - [ - "O", - "W" - ], - [ - "▁B", - "au" - ], - [ - "▁Ba", - "u" - ], - [ - "?", - "." - ], - [ - "▁ча", - "сти" - ], - [ - "▁час", - "ти" - ], - [ - "▁част", - "и" - ], - [ - "▁re", - "pository" - ], - [ - "▁repos", - "itory" - ], - [ - "▁", - "repository" - ], - [ - "▁M", - "att" - ], - [ - "▁Ma", - "tt" - ], - [ - "▁Mat", - "t" - ], - [ - "hi", - "gh" - ], - [ - "h", - "igh" - ], - [ - "ov", - "en" - ], - [ - "ove", - "n" - ], - [ - "o", - "ven" - ], - [ - "▁g", - "er" - ], - [ - "▁ge", - "r" - ], - [ - "▁", - "ger" - ], - [ - "▁un", - "known" - ], - [ - "▁", - "unknown" - ], - [ - "Am", - "er" - ], - [ - "A", - "mer" - ], - [ - "▁B", - "rown" - ], - [ - "▁Br", - "own" - ], - [ - "▁Bro", - "wn" - ], - [ - "▁Brow", - "n" - ], - [ - "AL", - "L" - ], - [ - "A", - "LL" - ], - [ - "▁result", - "ing" - ], - [ - "▁b", - "or" - ], - [ - "▁bo", - "r" - ], - [ - "▁", - "bor" - ], - [ - "▁po", - "et" - ], - [ - "ни", - "ми" - ], - [ - "ним", - "и" - ], - [ - "Em", - "ail" - ], - [ - "E", - "mail" - ], - [ - "F", - "ont" - ], - [ - "▁h", - "ist" - ], - [ - "▁his", - "t" - ], - [ - "▁hi", - "st" - ], - [ - "▁to", - "day" - ], - [ - "▁tod", - "ay" - ], - [ - "▁toda", - "y" - ], - [ - "▁", - "today" - ], - [ - "▁B", - "erg" - ], - [ - "▁Be", - "rg" - ], - [ - "▁Ber", - "g" - ], - [ - "▁but", - "tons" - ], - [ - "▁button", - "s" - ], - [ - "та", - "л" - ], - [ - "т", - "ал" - ], - [ - "▁s", - "ni" - ], - [ - "▁sn", - "i" - ], - [ - "▁че", - "лов" - ], - [ - "Cr", - "e" - ], - [ - "C", - "re" - ], - [ - "▁un", - "ion" - ], - [ - "▁", - "union" - ], - [ - "▁z", - "ich" - ], - [ - "ish", - "op" - ], - [ - "i", - "shop" - ], - [ - "▁qu", - "ando" - ], - [ - "▁quand", - "o" - ], - [ - "▁quan", - "do" - ], - [ - "P", - "o" - ], - [ - "CT", - "ION" - ], - [ - "▁C", - "ost" - ], - [ - "▁Co", - "st" - ], - [ - "▁Cos", - "t" - ], - [ - "▁", - "Cost" - ], - [ - "су", - "дар" - ], - [ - "er", - "ved" - ], - [ - "erv", - "ed" - ], - [ - "erve", - "d" - ], - [ - "Not", - "e" - ], - [ - "No", - "te" - ], - [ - "N", - "ote" - ], - [ - "Equ", - "al" - ], - [ - "Eq", - "ual" - ], - [ - "E", - "qual" - ], - [ - "ли", - "я" - ], - [ - "бу", - "р" - ], - [ - "б", - "ур" - ], - [ - "▁ab", - "stract" - ], - [ - "▁abstra", - "ct" - ], - [ - "▁", - "abstract" - ], - [ - "st", - "op" - ], - [ - "sto", - "p" - ], - [ - "s", - "top" - ], - [ - "▁ad", - "vice" - ], - [ - "▁adv", - "ice" - ], - [ - "▁i", - "con" - ], - [ - "▁ic", - "on" - ], - [ - "▁", - "icon" - ], - [ - "▁tr", - "avel" - ], - [ - "▁tra", - "vel" - ], - [ - "▁trav", - "el" - ], - [ - "B", - "S" - ], - [ - "ve", - "ns" - ], - [ - "ven", - "s" - ], - [ - "v", - "ens" - ], - [ - "▁b", - "atch" - ], - [ - "▁bat", - "ch" - ], - [ - "▁", - "batch" - ], - [ - "li", - "que" - ], - [ - "liqu", - "e" - ], - [ - "l", - "ique" - ], - [ - "she", - "et" - ], - [ - "s", - "heet" - ], - [ - "▁i", - "hre" - ], - [ - "▁ih", - "re" - ], - [ - "▁ihr", - "e" - ], - [ - "em", - "on" - ], - [ - "emo", - "n" - ], - [ - "e", - "mon" - ], - [ - "ber", - "to" - ], - [ - "bert", - "o" - ], - [ - "▁as", - "signed" - ], - [ - "▁ass", - "igned" - ], - [ - "▁assign", - "ed" - ], - [ - "ь", - "ю" - ], - [ - "Ph", - "one" - ], - [ - "▁a", - "ward" - ], - [ - "▁aw", - "ard" - ], - [ - "▁function", - "ality" - ], - [ - "▁functional", - "ity" - ], - [ - "al", - "la" - ], - [ - "all", - "a" - ], - [ - "a", - "lla" - ], - [ - "▁D", - "am" - ], - [ - "▁Da", - "m" - ], - [ - "▁ci", - "udad" - ], - [ - "▁cl", - "uster" - ], - [ - "▁clust", - "er" - ], - [ - "▁", - "cluster" - ], - [ - "De", - "scription" - ], - [ - "Des", - "cription" - ], - [ - "▁s", - "heet" - ], - [ - "▁she", - "et" - ], - [ - "▁", - "sheet" - ], - [ - "▁Austral", - "ian" - ], - [ - "▁Australia", - "n" - ], - [ - "▁»", - "." - ], - [ - "▁", - "»." - ], - [ - "▁\"", - "<" - ], - [ - "▁wonder", - "ing" - ], - [ - "ain", - "e" - ], - [ - "ai", - "ne" - ], - [ - "a", - "ine" - ], - [ - "▁represent", - "ed" - ], - [ - "▁repres", - "ented" - ], - [ - "ka", - "ppa" - ], - [ - "kap", - "pa" - ], - [ - "k", - "appa" - ], - [ - "n", - "b" - ], - [ - "▁s", - "y" - ], - [ - "▁K", - "ö" - ], - [ - "=\"", - "#" - ], - [ - "▁s", - "even" - ], - [ - "▁se", - "ven" - ], - [ - "Direct", - "ory" - ], - [ - "D", - "irectory" - ], - [ - "▁s", - "ister" - ], - [ - "▁si", - "ster" - ], - [ - "▁sist", - "er" - ], - [ - "pl", - "ates" - ], - [ - "plate", - "s" - ], - [ - "pla", - "tes" - ], - [ - "▁l", - "uck" - ], - [ - "▁lu", - "ck" - ], - [ - "▁luc", - "k" - ], - [ - "▁rem", - "aining" - ], - [ - "▁remain", - "ing" - ], - [ - "▁V", - "ill" - ], - [ - "▁Vi", - "ll" - ], - [ - "▁Vil", - "l" - ], - [ - "wer", - "k" - ], - [ - "w", - "erk" - ], - [ - "an", - "ni" - ], - [ - "ann", - "i" - ], - [ - "et", - "ti" - ], - [ - "ett", - "i" - ], - [ - "fun", - "c" - ], - [ - "fu", - "nc" - ], - [ - "f", - "unc" - ], - [ - "▁b", - "an" - ], - [ - "▁ba", - "n" - ], - [ - "▁", - "ban" - ], - [ - "im", - "s" - ], - [ - "i", - "ms" - ], - [ - "mi", - "ss" - ], - [ - "mis", - "s" - ], - [ - "m", - "iss" - ], - [ - "ag", - "raph" - ], - [ - "agr", - "aph" - ], - [ - "a", - "graph" - ], - [ - "ек", - "си" - ], - [ - "е", - "кси" - ], - [ - "▁R", - "ef" - ], - [ - "▁Re", - "f" - ], - [ - "▁", - "Ref" - ], - [ - "ni", - "tt" - ], - [ - "nit", - "t" - ], - [ - "n", - "itt" - ], - [ - "▁G", - "ab" - ], - [ - "▁Ga", - "b" - ], - [ - "▁and", - "ere" - ], - [ - "▁jed", - "och" - ], - [ - "result", - "s" - ], - [ - "!", - "\\" - ], - [ - "▁l", - "isted" - ], - [ - "▁li", - "sted" - ], - [ - "▁list", - "ed" - ], - [ - "▁liste", - "d" - ], - [ - "▁l", - "oro" - ], - [ - "▁lo", - "ro" - ], - [ - "▁kn", - "ows" - ], - [ - "▁know", - "s" - ], - [ - "ж", - "но" - ], - [ - "R", - "ad" - ], - [ - "▁s", - "ocket" - ], - [ - "▁so", - "cket" - ], - [ - "▁soc", - "ket" - ], - [ - "▁", - "socket" - ], - [ - "mult", - "i" - ], - [ - "mul", - "ti" - ], - [ - "▁р", - "і" - ], - [ - "▁", - "рі" - ], - [ - "ra", - "ils" - ], - [ - "rai", - "ls" - ], - [ - "r", - "ails" - ], - [ - "▁t", - "ar" - ], - [ - "▁ta", - "r" - ], - [ - "▁", - "tar" - ], - [ - "▁gent", - "le" - ], - [ - "se", - "tt" - ], - [ - "set", - "t" - ], - [ - "s", - "ett" - ], - [ - "serv", - "ices" - ], - [ - "service", - "s" - ], - [ - "bo", - "und" - ], - [ - "b", - "ound" - ], - [ - "ig", - "keit" - ], - [ - "aj", - "a" - ], - [ - "a", - "ja" - ], - [ - "▁c", - "md" - ], - [ - "▁cm", - "d" - ], - [ - "▁", - "cmd" - ], - [ - "ag", - "ger" - ], - [ - "agg", - "er" - ], - [ - "▁b", - "a" - ], - [ - "▁", - "ba" - ], - [ - "▁Be", - "lg" - ], - [ - "▁Bel", - "g" - ], - [ - "▁K", - "le" - ], - [ - "▁Kl", - "e" - ], - [ - "▁word", - "t" - ], - [ - "▁wor", - "dt" - ], - [ - "▁f", - "ost" - ], - [ - "▁fo", - "st" - ], - [ - "▁fos", - "t" - ], - [ - "▁dim", - "ension" - ], - [ - "An", - "g" - ], - [ - "A", - "ng" - ], - [ - "um", - "ing" - ], - [ - "umin", - "g" - ], - [ - "umi", - "ng" - ], - [ - "u", - "ming" - ], - [ - "Ob", - "j" - ], - [ - "не", - "н" - ], - [ - "н", - "ен" - ], - [ - "▁M", - "arie" - ], - [ - "▁Mar", - "ie" - ], - [ - "▁Ma", - "rie" - ], - [ - "▁Mari", - "e" - ], - [ - "▁", - "Marie" - ], - [ - "ex", - "ists" - ], - [ - "exist", - "s" - ], - [ - "т", - "ро" - ], - [ - "▁бо", - "ль" - ], - [ - "▁", - "боль" - ], - [ - "em", - "ente" - ], - [ - "ement", - "e" - ], - [ - "emen", - "te" - ], - [ - "e", - "mente" - ], - [ - "▁J", - "on" - ], - [ - "▁Jo", - "n" - ], - [ - "SE", - "RT" - ], - [ - "SER", - "T" - ], - [ - "S", - "ERT" - ], - [ - "▁high", - "est" - ], - [ - "ak", - "i" - ], - [ - "a", - "ki" - ], - [ - "▁t", - "res" - ], - [ - "▁tr", - "es" - ], - [ - "▁tre", - "s" - ], - [ - "▁", - "tres" - ], - [ - "▁circ", - "um" - ], - [ - "▁D", - "own" - ], - [ - "▁Do", - "wn" - ], - [ - "▁Dow", - "n" - ], - [ - "▁", - "Down" - ], - [ - "om", - "men" - ], - [ - "omm", - "en" - ], - [ - "ur", - "er" - ], - [ - "ure", - "r" - ], - [ - "u", - "rer" - ], - [ - "▁caus", - "es" - ], - [ - "▁cause", - "s" - ], - [ - "▁ca", - "uses" - ], - [ - "ven", - "ue" - ], - [ - "iss", - "ance" - ], - [ - "▁influ", - "ence" - ], - [ - "▁influen", - "ce" - ], - [ - "▁f", - "at" - ], - [ - "▁fa", - "t" - ], - [ - "ре", - "ди" - ], - [ - "ред", - "и" - ], - [ - "р", - "еди" - ], - [ - "}\\", - "\\" - ], - [ - "}", - "\\\\" - ], - [ - "▁en", - "tr" - ], - [ - "▁ent", - "r" - ], - [ - "▁", - "entr" - ], - [ - "▁S", - "ign" - ], - [ - "▁Si", - "gn" - ], - [ - "▁Sig", - "n" - ], - [ - "▁", - "Sign" - ], - [ - "▁к", - "ла" - ], - [ - "▁", - "кла" - ], - [ - "▁b", - "inding" - ], - [ - "▁bind", - "ing" - ], - [ - "▁bin", - "ding" - ], - [ - "▁", - "binding" - ], - [ - "es", - "sen" - ], - [ - "ess", - "en" - ], - [ - "esse", - "n" - ], - [ - "▁Ф", - "ран" - ], - [ - "▁L", - "ocal" - ], - [ - "▁Lo", - "cal" - ], - [ - "▁Loc", - "al" - ], - [ - "▁", - "Local" - ], - [ - "▁я", - "вля" - ], - [ - "ap", - "pro" - ], - [ - "app", - "ro" - ], - [ - "▁dep", - "endencies" - ], - [ - "▁depend", - "encies" - ], - [ - "▁", - "dependencies" - ], - [ - "▁talk", - "ing" - ], - [ - "▁tal", - "king" - ], - [ - "▁zur", - "ück" - ], - [ - "con", - "nection" - ], - [ - "connect", - "ion" - ], - [ - "conne", - "ction" - ], - [ - "conn", - "ection" - ], - [ - "Act", - "ive" - ], - [ - "Activ", - "e" - ], - [ - "bb", - "e" - ], - [ - "b", - "be" - ], - [ - "ir", - "ls" - ], - [ - "irl", - "s" - ], - [ - "▁In", - "f" - ], - [ - "▁", - "Inf" - ], - [ - "w", - "d" - ], - [ - "▁и", - "с" - ], - [ - "▁", - "ис" - ], - [ - "ro", - "ad" - ], - [ - "▁con", - "ven" - ], - [ - "▁conv", - "en" - ], - [ - "ě", - "t" - ], - [ - "ве", - "з" - ], - [ - "в", - "ез" - ], - [ - "▁ent", - "ries" - ], - [ - "▁entr", - "ies" - ], - [ - "▁", - "entries" - ], - [ - "es", - "c" - ], - [ - "e", - "sc" - ], - [ - "▁b", - "its" - ], - [ - "▁bit", - "s" - ], - [ - "▁bi", - "ts" - ], - [ - "▁", - "bits" - ], - [ - "as", - "so" - ], - [ - "ass", - "o" - ], - [ - "W", - "R" - ], - [ - "sh", - "ips" - ], - [ - "ship", - "s" - ], - [ - "s", - "hips" - ], - [ - "▁d", - "és" - ], - [ - "▁dé", - "s" - ], - [ - "es", - "p" - ], - [ - "e", - "sp" - ], - [ - "Ma", - "ke" - ], - [ - "M", - "ake" - ], - [ - "▁famil", - "iar" - ], - [ - "▁familia", - "r" - ], - [ - "Ar", - "t" - ], - [ - "A", - "rt" - ], - [ - "▁ar", - "my" - ], - [ - "▁arm", - "y" - ], - [ - "ct", - "r" - ], - [ - "c", - "tr" - ], - [ - "ér", - "ic" - ], - [ - "éri", - "c" - ], - [ - "é", - "ric" - ], - [ - "que", - "ue" - ], - [ - "▁\\", - "{" - ], - [ - "▁", - "\\{" - ], - [ - "ue", - "la" - ], - [ - "uel", - "a" - ], - [ - "u", - "ela" - ], - [ - "am", - "iento" - ], - [ - "ami", - "ento" - ], - [ - "ши", - "х" - ], - [ - "ш", - "их" - ], - [ - "▁\"", - "\"\"" - ], - [ - "▁\"\"", - "\"" - ], - [ - "con", - "tr" - ], - [ - "cont", - "r" - ], - [ - "лл", - "е" - ], - [ - "л", - "ле" - ], - [ - "F", - "S" - ], - [ - "▁mar", - "ket" - ], - [ - "▁mark", - "et" - ], - [ - "▁", - "market" - ], - [ - "ån", - "g" - ], - [ - "å", - "ng" - ], - [ - "cite", - "p" - ], - [ - "cit", - "ep" - ], - [ - "Il", - "l" - ], - [ - "I", - "ll" - ], - [ - "ran", - "k" - ], - [ - "r", - "ank" - ], - [ - "▁s", - "ender" - ], - [ - "▁se", - "nder" - ], - [ - "▁send", - "er" - ], - [ - "▁sen", - "der" - ], - [ - "▁", - "sender" - ], - [ - "▁be", - "im" - ], - [ - "▁bei", - "m" - ], - [ - "ра", - "к" - ], - [ - "▁com", - "pat" - ], - [ - "▁comp", - "at" - ], - [ - "▁", - "compat" - ], - [ - "▁occ", - "urs" - ], - [ - "▁occur", - "s" - ], - [ - "▁d", - "iese" - ], - [ - "▁di", - "ese" - ], - [ - "▁die", - "se" - ], - [ - "▁dies", - "e" - ], - [ - "сти", - "ту" - ], - [ - "aw", - "a" - ], - [ - "a", - "wa" - ], - [ - "▁i", - "OS" - ], - [ - "▁Ch", - "inese" - ], - [ - "▁Chine", - "se" - ], - [ - "▁T", - "R" - ], - [ - "▁", - "TR" - ], - [ - "▁K", - "en" - ], - [ - "▁Ke", - "n" - ], - [ - "▁U", - "ne" - ], - [ - "▁Un", - "e" - ], - [ - "▁cre", - "ates" - ], - [ - "▁create", - "s" - ], - [ - "▁sh", - "owed" - ], - [ - "▁show", - "ed" - ], - [ - "▁sho", - "wed" - ], - [ - "▁é", - "v" - ], - [ - "▁", - "év" - ], - [ - "olog", - "ia" - ], - [ - "olo", - "gia" - ], - [ - "▁pro", - "test" - ], - [ - "▁prote", - "st" - ], - [ - "▁prot", - "est" - ], - [ - "▁P", - "f" - ], - [ - "▁s", - "quad" - ], - [ - "▁squ", - "ad" - ], - [ - "++", - "," - ], - [ - "á", - "v" - ], - [ - "▁ess", - "ere" - ], - [ - "з", - "я" - ], - [ - "ko", - "l" - ], - [ - "k", - "ol" - ], - [ - "▁slight", - "ly" - ], - [ - "ad", - "dr" - ], - [ - "add", - "r" - ], - [ - "â", - "n" - ], - [ - "▁red", - "uce" - ], - [ - "▁redu", - "ce" - ], - [ - "▁", - "reduce" - ], - [ - "▁\\", - "(\\" - ], - [ - "▁\\(", - "\\" - ], - [ - "▁D", - "ep" - ], - [ - "▁De", - "p" - ], - [ - "▁", - "Dep" - ], - [ - "▁gener", - "ic" - ], - [ - "▁gene", - "ric" - ], - [ - "▁", - "generic" - ], - [ - "Lo", - "ader" - ], - [ - "Load", - "er" - ], - [ - "ț", - "i" - ], - [ - "▁п", - "ос" - ], - [ - "▁по", - "с" - ], - [ - "▁occ", - "asion" - ], - [ - "▁occas", - "ion" - ], - [ - "▁L", - "ady" - ], - [ - "▁La", - "dy" - ], - [ - "▁Lad", - "y" - ], - [ - "ent", - "ity" - ], - [ - "enti", - "ty" - ], - [ - "▁av", - "ant" - ], - [ - "▁", - "avant" - ], - [ - "▁P", - "as" - ], - [ - "▁Pa", - "s" - ], - [ - "ag", - "gio" - ], - [ - "aggi", - "o" - ], - [ - "agg", - "io" - ], - [ - "\\", - "{" - ], - [ - "па", - "д" - ], - [ - "athol", - "ic" - ], - [ - "Pass", - "word" - ], - [ - "▁res", - "pond" - ], - [ - "▁resp", - "ond" - ], - [ - "▁", - "respond" - ], - [ - "▁N", - "on" - ], - [ - "▁No", - "n" - ], - [ - "▁", - "Non" - ], - [ - "A", - "G" - ], - [ - "ne", - "g" - ], - [ - "n", - "eg" - ], - [ - "▁у", - "с" - ], - [ - "▁", - "ус" - ], - [ - "bl", - "ob" - ], - [ - "blo", - "b" - ], - [ - "b", - "lob" - ], - [ - "ck", - "e" - ], - [ - "c", - "ke" - ], - [ - "▁Cons", - "ider" - ], - [ - "▁C", - "are" - ], - [ - "▁Car", - "e" - ], - [ - "▁Ca", - "re" - ], - [ - "ik", - "i" - ], - [ - "i", - "ki" - ], - [ - "▁Ch", - "icago" - ], - [ - "in", - "den" - ], - [ - "ind", - "en" - ], - [ - "inde", - "n" - ], - [ - "▁C", - "op" - ], - [ - "▁Co", - "p" - ], - [ - "]", - "+" - ], - [ - "ö", - "m" - ], - [ - "év", - "rier" - ], - [ - "к", - "ло" - ], - [ - "al", - "en" - ], - [ - "ale", - "n" - ], - [ - "a", - "len" - ], - [ - "▁m", - "aj" - ], - [ - "▁ma", - "j" - ], - [ - "ra", - "cy" - ], - [ - "rac", - "y" - ], - [ - "r", - "acy" - ], - [ - "or", - "te" - ], - [ - "ort", - "e" - ], - [ - "ien", - "ts" - ], - [ - "ient", - "s" - ], - [ - "i", - "ents" - ], - [ - "el", - "ls" - ], - [ - "ell", - "s" - ], - [ - "act", - "ivity" - ], - [ - "activ", - "ity" - ], - [ - "▁r", - "untime" - ], - [ - "▁run", - "time" - ], - [ - "▁runt", - "ime" - ], - [ - "▁", - "runtime" - ], - [ - "NU", - "LL" - ], - [ - "N", - "ULL" - ], - [ - "▁poss", - "ibly" - ], - [ - "▁possib", - "ly" - ], - [ - "▁s", - "tri" - ], - [ - "▁st", - "ri" - ], - [ - "▁str", - "i" - ], - [ - "iz", - "i" - ], - [ - "i", - "zi" - ], - [ - "▁m", - "ir" - ], - [ - "▁mi", - "r" - ], - [ - "▁", - "mir" - ], - [ - "▁V", - "ersion" - ], - [ - "▁Vers", - "ion" - ], - [ - "▁", - "Version" - ], - [ - "pr", - "ime" - ], - [ - "prim", - "e" - ], - [ - "▁tw", - "enty" - ], - [ - "▁M", - "ah" - ], - [ - "▁Ma", - "h" - ], - [ - "▁s", - "ounds" - ], - [ - "▁sound", - "s" - ], - [ - "ше", - "н" - ], - [ - "ш", - "ен" - ], - [ - "cl", - "usion" - ], - [ - "clus", - "ion" - ], - [ - "ac", - "z" - ], - [ - "a", - "cz" - ], - [ - "▁determ", - "ined" - ], - [ - "▁determine", - "d" - ], - [ - "▁determin", - "ed" - ], - [ - "▁R", - "ep" - ], - [ - "▁Re", - "p" - ], - [ - "▁", - "Rep" - ], - [ - "▁Land", - "es" - ], - [ - "▁Lan", - "des" - ], - [ - "▁w", - "all" - ], - [ - "▁wa", - "ll" - ], - [ - "▁wal", - "l" - ], - [ - "▁", - "wall" - ], - [ - "ig", - "i" - ], - [ - "i", - "gi" - ], - [ - "▁re", - "set" - ], - [ - "▁res", - "et" - ], - [ - "▁", - "reset" - ], - [ - "ш", - "о" - ], - [ - "ya", - "n" - ], - [ - "y", - "an" - ], - [ - "Me", - "t" - ], - [ - "M", - "et" - ], - [ - "e", - "i" - ], - [ - "▁app", - "earance" - ], - [ - "▁appear", - "ance" - ], - [ - "▁f", - "ois" - ], - [ - "▁fo", - "is" - ], - [ - "▁foi", - "s" - ], - [ - "▁", - "fois" - ], - [ - "▁n", - "ell" - ], - [ - "▁ne", - "ll" - ], - [ - "▁nel", - "l" - ], - [ - "▁", - "nell" - ], - [ - "es", - "i" - ], - [ - "e", - "si" - ], - [ - "ё", - "т" - ], - [ - "lo", - "or" - ], - [ - "l", - "oor" - ], - [ - "▁U", - "l" - ], - [ - "▁resol", - "ution" - ], - [ - "▁f", - "ot" - ], - [ - "▁fo", - "t" - ], - [ - "▁through", - "out" - ], - [ - "▁r", - "i" - ], - [ - "▁", - "ri" - ], - [ - "Le", - "vel" - ], - [ - "po", - "ol" - ], - [ - "p", - "ool" - ], - [ - "▁id", - "entity" - ], - [ - "▁ident", - "ity" - ], - [ - "▁", - "identity" - ], - [ - "▁j", - "anu" - ], - [ - "▁jan", - "u" - ], - [ - "▁ja", - "nu" - ], - [ - "▁im", - "per" - ], - [ - "▁imp", - "er" - ], - [ - "▁", - "imper" - ], - [ - "▁ö", - "ver" - ], - [ - "}", - "`" - ], - [ - "▁in", - "fer" - ], - [ - "▁inf", - "er" - ], - [ - "▁d", - "ates" - ], - [ - "▁da", - "tes" - ], - [ - "▁dat", - "es" - ], - [ - "▁date", - "s" - ], - [ - "▁", - "dates" - ], - [ - "▁Stand", - "ard" - ], - [ - "▁", - "Standard" - ], - [ - "for", - "ce" - ], - [ - "oc", - "key" - ], - [ - "ock", - "ey" - ], - [ - "ter", - "a" - ], - [ - "te", - "ra" - ], - [ - "t", - "era" - ], - [ - "▁dist", - "ingu" - ], - [ - "▁pres", - "ence" - ], - [ - "li", - "ca" - ], - [ - "lic", - "a" - ], - [ - "l", - "ica" - ], - [ - "▁le", - "aving" - ], - [ - "it", - "ung" - ], - [ - "itu", - "ng" - ], - [ - "é", - "b" - ], - [ - "▁estab", - "lish" - ], - [ - "▁m", - "aar" - ], - [ - "▁ma", - "ar" - ], - [ - "ad", - "i" - ], - [ - "a", - "di" - ], - [ - "▁New", - "s" - ], - [ - "▁Ne", - "ws" - ], - [ - "▁", - "News" - ], - [ - "az", - "on" - ], - [ - "a", - "zon" - ], - [ - "fo", - "lg" - ], - [ - "fol", - "g" - ], - [ - "f", - "olg" - ], - [ - "▁H", - "ence" - ], - [ - "▁Hen", - "ce" - ], - [ - "▁Y", - "e" - ], - [ - "▁f", - "ab" - ], - [ - "▁fa", - "b" - ], - [ - "▁", - "fab" - ], - [ - "▁f", - "ühr" - ], - [ - "▁", - "führ" - ], - [ - "it", - "map" - ], - [ - "▁V", - "ers" - ], - [ - "▁Ver", - "s" - ], - [ - "▁Ve", - "rs" - ], - [ - "ro", - "v" - ], - [ - "r", - "ov" - ], - [ - "Si", - "gn" - ], - [ - "S", - "ign" - ], - [ - "de", - "vice" - ], - [ - "dev", - "ice" - ], - [ - "S", - "igma" - ], - [ - "▁wet", - "enschapp" - ], - [ - "▁P", - "s" - ], - [ - "PA", - "TH" - ], - [ - "P", - "ATH" - ], - [ - "▁t", - "orn" - ], - [ - "▁to", - "rn" - ], - [ - "▁tor", - "n" - ], - [ - "ve", - "st" - ], - [ - "ves", - "t" - ], - [ - "v", - "est" - ], - [ - "ст", - "ов" - ], - [ - "сто", - "в" - ], - [ - "с", - "тов" - ], - [ - "ac", - "count" - ], - [ - "acc", - "ount" - ], - [ - "acco", - "unt" - ], - [ - "▁lar", - "gest" - ], - [ - "▁large", - "st" - ], - [ - "▁larg", - "est" - ], - [ - "▁per", - "cent" - ], - [ - "▁perce", - "nt" - ], - [ - "▁", - "percent" - ], - [ - "▁W", - "omen" - ], - [ - "▁Wo", - "men" - ], - [ - "▁im", - "g" - ], - [ - "▁", - "img" - ], - [ - "to", - "ol" - ], - [ - "t", - "ool" - ], - [ - "▁r", - "oce" - ], - [ - "▁ro", - "ce" - ], - [ - "▁a", - "y" - ], - [ - "▁", - "ay" - ], - [ - "in", - "et" - ], - [ - "ine", - "t" - ], - [ - "i", - "net" - ], - [ - "▁ao", - "ût" - ], - [ - "▁pol", - "ynomial" - ], - [ - "▁integr", - "al" - ], - [ - "▁integra", - "l" - ], - [ - "▁a", - "reas" - ], - [ - "▁are", - "as" - ], - [ - "▁area", - "s" - ], - [ - "}", - "'" - ], - [ - "▁h", - "yp" - ], - [ - "▁hy", - "p" - ], - [ - "loy", - "ee" - ], - [ - "та", - "ль" - ], - [ - "тал", - "ь" - ], - [ - "т", - "аль" - ], - [ - "▁pro", - "xy" - ], - [ - "▁", - "proxy" - ], - [ - "▁W", - "y" - ], - [ - "▁М", - "екси" - ], - [ - "▁Ме", - "кси" - ], - [ - "▁es", - "cape" - ], - [ - "▁esc", - "ape" - ], - [ - "▁", - "escape" - ], - [ - "ol", - "ar" - ], - [ - "ola", - "r" - ], - [ - "o", - "lar" - ], - [ - "▁mis", - "take" - ], - [ - "▁mist", - "ake" - ], - [ - ")}", - "{" - ], - [ - ")", - "}{" - ], - [ - "▁P", - "ot" - ], - [ - "▁Po", - "t" - ], - [ - "▁process", - "es" - ], - [ - "▁proc", - "esses" - ], - [ - "\">", - "\r" - ], - [ - "\"", - ">\r" - ], - [ - "hal", - "ten" - ], - [ - "halt", - "en" - ], - [ - "zz", - "a" - ], - [ - "z", - "za" - ], - [ - "am", - "o" - ], - [ - "a", - "mo" - ], - [ - "к", - "ре" - ], - [ - "▁W", - "ood" - ], - [ - "▁Wo", - "od" - ], - [ - "ø", - "r" - ], - [ - "▁с", - "ер" - ], - [ - "▁се", - "р" - ], - [ - "▁", - "сер" - ], - [ - "oc", - "ia" - ], - [ - "oci", - "a" - ], - [ - "o", - "cia" - ], - [ - "tw", - "o" - ], - [ - "t", - "wo" - ], - [ - "pro", - "file" - ], - [ - "prof", - "ile" - ], - [ - "▁A", - "st" - ], - [ - "▁As", - "t" - ], - [ - "em", - "bro" - ], - [ - "emb", - "ro" - ], - [ - "▁ar", - "ms" - ], - [ - "▁arm", - "s" - ], - [ - "in", - "as" - ], - [ - "ina", - "s" - ], - [ - "i", - "nas" - ], - [ - "in", - "nen" - ], - [ - "inn", - "en" - ], - [ - "▁m", - "sg" - ], - [ - "▁ms", - "g" - ], - [ - "▁", - "msg" - ], - [ - "IN", - "T" - ], - [ - "I", - "NT" - ], - [ - "▁b", - "atter" - ], - [ - "▁batt", - "er" - ], - [ - "▁bat", - "ter" - ], - [ - "ign", - "ment" - ], - [ - "▁v", - "y" - ], - [ - "▁", - "vy" - ], - [ - "H", - "rsg" - ], - [ - "▁G", - "rund" - ], - [ - "▁Gr", - "und" - ], - [ - "▁Gru", - "nd" - ], - [ - "ro", - "c" - ], - [ - "r", - "oc" - ], - [ - "se", - "g" - ], - [ - "s", - "eg" - ], - [ - "▁de", - "cor" - ], - [ - "▁dec", - "or" - ], - [ - "▁", - "decor" - ], - [ - "▁event", - "ually" - ], - [ - ">", - "," - ], - [ - "▁p", - "ag" - ], - [ - "▁pa", - "g" - ], - [ - "▁", - "pag" - ], - [ - "an", - "ten" - ], - [ - "ant", - "en" - ], - [ - "ante", - "n" - ], - [ - "a", - "nten" - ], - [ - "▁str", - "ugg" - ], - [ - "▁stru", - "gg" - ], - [ - "}^", - "\\" - ], - [ - "}", - "^\\" - ], - [ - "date", - "n" - ], - [ - "da", - "ten" - ], - [ - "dat", - "en" - ], - [ - "d", - "aten" - ], - [ - "▁re", - "la" - ], - [ - "▁r", - "ela" - ], - [ - "▁rel", - "a" - ], - [ - "по", - "в" - ], - [ - "п", - "ов" - ], - [ - "▁ко", - "ро" - ], - [ - "▁кор", - "о" - ], - [ - "▁B", - "os" - ], - [ - "▁Bo", - "s" - ], - [ - "▁l", - "abor" - ], - [ - "▁la", - "bor" - ], - [ - "▁lab", - "or" - ], - [ - "▁Se", - "cret" - ], - [ - "▁Sec", - "ret" - ], - [ - "▁", - "Secret" - ], - [ - "ug", - "en" - ], - [ - "uge", - "n" - ], - [ - "u", - "gen" - ], - [ - "▁j", - "ap" - ], - [ - "▁ja", - "p" - ], - [ - "▁hus", - "band" - ], - [ - "▁Al", - "bum" - ], - [ - "▁Alb", - "um" - ], - [ - "▁et", - "wa" - ], - [ - "▁про", - "из" - ], - [ - "ri", - "cht" - ], - [ - "ric", - "ht" - ], - [ - "rich", - "t" - ], - [ - "r", - "icht" - ], - [ - "ra", - "ch" - ], - [ - "rac", - "h" - ], - [ - "r", - "ach" - ], - [ - "ba", - "t" - ], - [ - "b", - "at" - ], - [ - "▁pre", - "par" - ], - [ - "▁prep", - "ar" - ], - [ - "▁St", - "ock" - ], - [ - "▁Sto", - "ck" - ], - [ - "▁l", - "ack" - ], - [ - "▁la", - "ck" - ], - [ - "▁lac", - "k" - ], - [ - "▁", - "lack" - ], - [ - "хі", - "д" - ], - [ - "х", - "ід" - ], - [ - "▁h", - "ogy" - ], - [ - "▁ho", - "gy" - ], - [ - "▁Ch", - "rome" - ], - [ - "▁Chr", - "ome" - ], - [ - "▁Ad", - "min" - ], - [ - "▁", - "Admin" - ], - [ - "▁com", - "parison" - ], - [ - "▁compar", - "ison" - ], - [ - "▁incre", - "asing" - ], - [ - "н", - "г" - ], - [ - "im", - "i" - ], - [ - "i", - "mi" - ], - [ - "D", - "b" - ], - [ - "▁g", - "ef" - ], - [ - "▁ge", - "f" - ], - [ - "▁", - "gef" - ], - [ - "uch", - "t" - ], - [ - "uc", - "ht" - ], - [ - "u", - "cht" - ], - [ - "és", - "e" - ], - [ - "é", - "se" - ], - [ - "gen", - "ce" - ], - [ - "g", - "ence" - ], - [ - "▁C", - "ore" - ], - [ - "▁Cor", - "e" - ], - [ - "▁Co", - "re" - ], - [ - "▁", - "Core" - ], - [ - "▁in", - "correct" - ], - [ - "▁incor", - "rect" - ], - [ - "▁ass", - "uming" - ], - [ - "▁assum", - "ing" - ], - [ - "our", - "se" - ], - [ - "ours", - "e" - ], - [ - "ie", - "ron" - ], - [ - "ier", - "on" - ], - [ - "iero", - "n" - ], - [ - "▁The", - "orem" - ], - [ - "▁", - "Theorem" - ], - [ - "▁c", - "asa" - ], - [ - "▁cas", - "a" - ], - [ - "▁ca", - "sa" - ], - [ - "je", - "s" - ], - [ - "j", - "es" - ], - [ - "▁д", - "ере" - ], - [ - "▁де", - "ре" - ], - [ - "▁`", - "\"" - ], - [ - "L", - "D" - ], - [ - "ä", - "ß" - ], - [ - "De", - "b" - ], - [ - "D", - "eb" - ], - [ - "▁su", - "iv" - ], - [ - "▁B", - "ank" - ], - [ - "▁Ban", - "k" - ], - [ - "li", - "bs" - ], - [ - "lib", - "s" - ], - [ - "▁Le", - "on" - ], - [ - "▁Leo", - "n" - ], - [ - "▁qu", - "art" - ], - [ - "▁quar", - "t" - ], - [ - "▁prof", - "essional" - ], - [ - "▁profession", - "al" - ], - [ - "▁profess", - "ional" - ], - [ - "▁t", - "iene" - ], - [ - "▁ti", - "ene" - ], - [ - "▁tie", - "ne" - ], - [ - "▁acc", - "omp" - ], - [ - "▁ac", - "comp" - ], - [ - "▁accom", - "p" - ], - [ - "ст", - "ер" - ], - [ - "сте", - "р" - ], - [ - "с", - "тер" - ], - [ - "▁U", - "K" - ], - [ - "▁", - "UK" - ], - [ - "N", - "N" - ], - [ - "▁l", - "í" - ], - [ - "ц", - "я" - ], - [ - "ke", - "l" - ], - [ - "k", - "el" - ], - [ - "▁", - "•" - ], - [ - "▁d", - "ise" - ], - [ - "▁di", - "se" - ], - [ - "▁dis", - "e" - ], - [ - "on", - "to" - ], - [ - "ont", - "o" - ], - [ - "▁m", - "á" - ], - [ - "if", - "s" - ], - [ - "i", - "fs" - ], - [ - "bi", - "ld" - ], - [ - "bil", - "d" - ], - [ - "b", - "ild" - ], - [ - "▁comp", - "ute" - ], - [ - "▁comput", - "e" - ], - [ - "▁", - "compute" - ], - [ - "▁é", - "d" - ], - [ - "▁", - "éd" - ], - [ - "j", - "ę" - ], - [ - "▁M", - "é" - ], - [ - "▁l", - "anguages" - ], - [ - "▁language", - "s" - ], - [ - "▁T", - "imes" - ], - [ - "▁Time", - "s" - ], - [ - "▁Tim", - "es" - ], - [ - "▁Ti", - "mes" - ], - [ - "▁", - "Times" - ], - [ - "ce", - "n" - ], - [ - "c", - "en" - ], - [ - "▁ав", - "то" - ], - [ - "ý", - "m" - ], - [ - "en", - "ez" - ], - [ - "ene", - "z" - ], - [ - "e", - "nez" - ], - [ - "▁u", - "pp" - ], - [ - "▁up", - "p" - ], - [ - "▁", - "upp" - ], - [ - "▁m", - "éd" - ], - [ - "▁mé", - "d" - ], - [ - "▁cu", - "ando" - ], - [ - "о", - "д" - ], - [ - "Int", - "ent" - ], - [ - "ee", - "rd" - ], - [ - "e", - "erd" - ], - [ - "▁T", - "al" - ], - [ - "▁Ta", - "l" - ], - [ - "off", - "set" - ], - [ - "offs", - "et" - ], - [ - "▁h", - "aben" - ], - [ - "▁ha", - "ben" - ], - [ - "▁hab", - "en" - ], - [ - "▁habe", - "n" - ], - [ - "re", - "me" - ], - [ - "rem", - "e" - ], - [ - "r", - "eme" - ], - [ - "▁St", - "ack" - ], - [ - "▁Sta", - "ck" - ], - [ - "▁", - "Stack" - ], - [ - "▁d", - "ri" - ], - [ - "▁dr", - "i" - ], - [ - "▁", - "dri" - ], - [ - "▁sein", - "em" - ], - [ - "▁seine", - "m" - ], - [ - "▁sei", - "nem" - ], - [ - "▁f", - "évrier" - ], - [ - "▁comb", - "ination" - ], - [ - "▁combin", - "ation" - ], - [ - "▁s", - "oll" - ], - [ - "▁so", - "ll" - ], - [ - "▁sol", - "l" - ], - [ - "▁mov", - "ement" - ], - [ - "▁mo", - "vement" - ], - [ - "▁move", - "ment" - ], - [ - "Sp", - "ec" - ], - [ - "Spe", - "c" - ], - [ - "S", - "pec" - ], - [ - "к", - "ры" - ], - [ - "ret", - "ch" - ], - [ - "r", - "etch" - ], - [ - "Off", - "set" - ], - [ - "Ro", - "ot" - ], - [ - "R", - "oot" - ], - [ - "А", - "р" - ], - [ - "wa", - "rt" - ], - [ - "war", - "t" - ], - [ - "w", - "art" - ], - [ - "▁F", - "ollow" - ], - [ - "▁Fol", - "low" - ], - [ - "▁So", - "cial" - ], - [ - "▁Soci", - "al" - ], - [ - "▁Soc", - "ial" - ], - [ - "ни", - "ков" - ], - [ - "ник", - "ов" - ], - [ - "▁", - "→" - ], - [ - "Do", - "n" - ], - [ - "D", - "on" - ], - [ - "▁h", - "arm" - ], - [ - "▁ha", - "rm" - ], - [ - "▁har", - "m" - ], - [ - "▁", - "harm" - ], - [ - "ag", - "r" - ], - [ - "a", - "gr" - ], - [ - "ne", - "go" - ], - [ - "neg", - "o" - ], - [ - "n", - "ego" - ], - [ - "re", - "source" - ], - [ - "res", - "ource" - ], - [ - "▁L", - "uc" - ], - [ - "▁Lu", - "c" - ], - [ - "▁se", - "inen" - ], - [ - "▁sein", - "en" - ], - [ - "▁seine", - "n" - ], - [ - "▁sei", - "nen" - ], - [ - "▁De", - "partment" - ], - [ - "▁Depart", - "ment" - ], - [ - "▁Up", - "date" - ], - [ - "▁", - "Update" - ], - [ - "▁Tex", - "as" - ], - [ - "▁re", - "ve" - ], - [ - "▁rev", - "e" - ], - [ - "▁P", - "os" - ], - [ - "▁Po", - "s" - ], - [ - "▁", - "Pos" - ], - [ - "▁s", - "hot" - ], - [ - "▁sh", - "ot" - ], - [ - "▁sho", - "t" - ], - [ - "▁", - "shot" - ], - [ - "ot", - "he" - ], - [ - "oth", - "e" - ], - [ - "o", - "the" - ], - [ - "▁repe", - "ated" - ], - [ - "▁repeat", - "ed" - ], - [ - "▁rec", - "ently" - ], - [ - "▁recent", - "ly" - ], - [ - "áb", - "an" - ], - [ - "á", - "ban" - ], - [ - "ak", - "s" - ], - [ - "a", - "ks" - ], - [ - "па", - "н" - ], - [ - "п", - "ан" - ], - [ - "▁c", - "ha" - ], - [ - "▁ch", - "a" - ], - [ - "▁", - "cha" - ], - [ - "oh", - "l" - ], - [ - "o", - "hl" - ], - [ - "▁t", - "end" - ], - [ - "▁te", - "nd" - ], - [ - "▁ten", - "d" - ], - [ - "▁д", - "во" - ], - [ - "ch", - "ts" - ], - [ - "cht", - "s" - ], - [ - "ça", - "ise" - ], - [ - "çais", - "e" - ], - [ - "pl", - "ing" - ], - [ - "p", - "ling" - ], - [ - "al", - "bum" - ], - [ - "e", - "j" - ], - [ - "▁`", - "[" - ], - [ - "ma", - "ps" - ], - [ - "map", - "s" - ], - [ - "m", - "aps" - ], - [ - "▁un", - "its" - ], - [ - "▁unit", - "s" - ], - [ - "▁<", - "!--" - ], - [ - "▁" - ], - [ - "St", - "and" - ], - [ - "▁techn", - "ique" - ], - [ - "▁techni", - "que" - ], - [ - "▁E", - "ss" - ], - [ - "▁Es", - "s" - ], - [ - "▁Ox", - "ford" - ], - [ - "▁", - "ла" - ], - [ - "t", - "ikz" - ], - [ - "ли", - "й" - ], - [ - "Log", - "in" - ], - [ - "Lo", - "gin" - ], - [ - "▁min", - "ister" - ], - [ - "▁minist", - "er" - ], - [ - "▁mini", - "ster" - ], - [ - "▁", - "minister" - ], - [ - "▁c", - "url" - ], - [ - "▁cu", - "rl" - ], - [ - "▁cur", - "l" - ], - [ - "▁", - "curl" - ], - [ - "ka", - "n" - ], - [ - "k", - "an" - ], - [ - "▁m", - "aps" - ], - [ - "▁ma", - "ps" - ], - [ - "▁map", - "s" - ], - [ - "▁", - "maps" - ], - [ - "in", - "da" - ], - [ - "ind", - "a" - ], - [ - "ri", - "eb" - ], - [ - "rie", - "b" - ], - [ - "r", - "ieb" - ], - [ - "▁E", - "ND" - ], - [ - "▁EN", - "D" - ], - [ - "▁", - "END" - ], - [ - "if", - "ies" - ], - [ - "ifi", - "es" - ], - [ - "ifie", - "s" - ], - [ - "con", - "sole" - ], - [ - "cons", - "ole" - ], - [ - "bu", - "ry" - ], - [ - "bur", - "y" - ], - [ - "b", - "ury" - ], - [ - "▁L", - "E" - ], - [ - "▁", - "LE" - ], - [ - "▁indep", - "end" - ], - [ - "▁inde", - "pend" - ], - [ - "▁t", - "a" - ], - [ - "▁", - "ta" - ], - [ - "▁", - "Ś" - ], - [ - "on", - "el" - ], - [ - "one", - "l" - ], - [ - "o", - "nel" - ], - [ - "és", - "z" - ], - [ - "é", - "sz" - ], - [ - "▁I", - "st" - ], - [ - "▁Is", - "t" - ], - [ - "ut", - "ive" - ], - [ - "uti", - "ve" - ], - [ - "ё", - "л" - ], - [ - "▁Reg", - "ion" - ], - [ - "▁", - "Region" - ], - [ - "▁(", - "=" - ], - [ - "▁comp", - "act" - ], - [ - "ço", - "is" - ], - [ - "ç", - "ois" - ], - [ - "▁label", - "s" - ], - [ - "▁lab", - "els" - ], - [ - "▁", - "labels" - ], - [ - "autor", - "ité" - ], - [ - "▁s", - "tan" - ], - [ - "▁st", - "an" - ], - [ - "▁sta", - "n" - ], - [ - "▁", - "stan" - ], - [ - "▁fran", - "çaise" - ], - [ - "▁français", - "e" - ], - [ - "▁rem", - "oving" - ], - [ - "▁remov", - "ing" - ], - [ - "y", - "c" - ], - [ - "}", - "|" - ], - [ - "▁Ex", - "ec" - ], - [ - "▁", - "Exec" - ], - [ - "($", - "_" - ], - [ - "(", - "$_" - ], - [ - "ma", - "g" - ], - [ - "m", - "ag" - ], - [ - "be", - "fore" - ], - [ - "▁stop", - "ped" - ], - [ - "▁sto", - "pped" - ], - [ - "ми", - "и" - ], - [ - "▁ref", - "resh" - ], - [ - "▁", - "refresh" - ], - [ - "un", - "kt" - ], - [ - "unk", - "t" - ], - [ - "ic", - "io" - ], - [ - "ici", - "o" - ], - [ - "i", - "cio" - ], - [ - "X", - "ml" - ], - [ - "▁T", - "ab" - ], - [ - "▁Ta", - "b" - ], - [ - "▁", - "Tab" - ], - [ - "▁f", - "ounded" - ], - [ - "▁found", - "ed" - ], - [ - "▁f", - "al" - ], - [ - "▁fa", - "l" - ], - [ - "▁", - "fal" - ], - [ - "f", - "x" - ], - [ - "▁Histor", - "ia" - ], - [ - "▁Hist", - "oria" - ], - [ - "▁Ear", - "ly" - ], - [ - "▁Earl", - "y" - ], - [ - "Do", - "m" - ], - [ - "D", - "om" - ], - [ - "▁de", - "cide" - ], - [ - "▁dec", - "ide" - ], - [ - "▁decid", - "e" - ], - [ - "▁under", - "stood" - ], - [ - "▁j", - "ur" - ], - [ - "▁ju", - "r" - ], - [ - "▁N", - "r" - ], - [ - "▁cap", - "ac" - ], - [ - "wa", - "s" - ], - [ - "w", - "as" - ], - [ - "▁en", - "emy" - ], - [ - "▁enem", - "y" - ], - [ - "▁program", - "s" - ], - [ - "▁m", - "ask" - ], - [ - "▁ma", - "sk" - ], - [ - "▁mas", - "k" - ], - [ - "▁", - "mask" - ], - [ - "ск", - "е" - ], - [ - "с", - "ке" - ], - [ - "▁gr", - "oupe" - ], - [ - "▁group", - "e" - ], - [ - "ca", - "m" - ], - [ - "c", - "am" - ], - [ - "▁w", - "idget" - ], - [ - "▁wid", - "get" - ], - [ - "▁", - "widget" - ], - [ - "RE", - "ATE" - ], - [ - "▁se", - "va" - ], - [ - "▁Bar", - "cel" - ], - [ - "▁p", - "erd" - ], - [ - "▁per", - "d" - ], - [ - "▁pe", - "rd" - ], - [ - "▁М", - "у" - ], - [ - "ran", - "ce" - ], - [ - "r", - "ance" - ], - [ - "TY", - "PE" - ], - [ - "T", - "YPE" - ], - [ - "▁{", - "'" - ], - [ - "▁", - "{'" - ], - [ - "▁b", - "ill" - ], - [ - "▁bi", - "ll" - ], - [ - "▁bil", - "l" - ], - [ - "▁\"", - "_" - ], - [ - "'", - "`" - ], - [ - "ba", - "hn" - ], - [ - "bah", - "n" - ], - [ - "b", - "ahn" - ], - [ - "▁cont", - "ained" - ], - [ - "▁contain", - "ed" - ], - [ - "Cl", - "ose" - ], - [ - "C", - "lose" - ], - [ - "ru", - "g" - ], - [ - "r", - "ug" - ], - [ - "eg", - "y" - ], - [ - "e", - "gy" - ], - [ - "▁s", - "ight" - ], - [ - "▁sig", - "ht" - ], - [ - "▁Pro", - "vin" - ], - [ - "▁Prov", - "in" - ], - [ - "н", - "ю" - ], - [ - "ar", - "z" - ], - [ - "a", - "rz" - ], - [ - "ще", - "н" - ], - [ - "щ", - "ен" - ], - [ - "▁J", - "oe" - ], - [ - "▁Jo", - "e" - ], - [ - "▁de", - "leted" - ], - [ - "▁delete", - "d" - ], - [ - "▁delet", - "ed" - ], - [ - "▁A", - "uto" - ], - [ - "▁Aut", - "o" - ], - [ - "▁Au", - "to" - ], - [ - "▁", - "Auto" - ], - [ - "▁m", - "eter" - ], - [ - "▁me", - "ter" - ], - [ - "▁met", - "er" - ], - [ - "▁", - "meter" - ], - [ - "C", - "G" - ], - [ - "ъ", - "л" - ], - [ - "▁p", - "ent" - ], - [ - "▁pe", - "nt" - ], - [ - "▁pen", - "t" - ], - [ - "▁", - "pent" - ], - [ - "▁be", - "zeichnet" - ], - [ - "Su", - "m" - ], - [ - "S", - "um" - ], - [ - "db", - "c" - ], - [ - "d", - "bc" - ], - [ - "▁Pl", - "atz" - ], - [ - "▁Pla", - "tz" - ], - [ - "▁Plat", - "z" - ], - [ - "ect", - "ors" - ], - [ - "ector", - "s" - ], - [ - "e", - "ctors" - ], - [ - "▁L", - "ittle" - ], - [ - "QU", - "E" - ], - [ - "Q", - "UE" - ], - [ - "ці", - "я" - ], - [ - "ц", - "ія" - ], - [ - "те", - "ля" - ], - [ - "тел", - "я" - ], - [ - "nig", - "ht" - ], - [ - "n", - "ight" - ], - [ - "▁l", - "l" - ], - [ - "▁", - "ll" - ], - [ - "▁most", - "ly" - ], - [ - "UI", - "D" - ], - [ - "U", - "ID" - ], - [ - "▁b", - "ez" - ], - [ - "▁be", - "z" - ], - [ - "▁", - "bez" - ], - [ - "do", - "b" - ], - [ - "d", - "ob" - ], - [ - "кс", - "и" - ], - [ - "к", - "си" - ], - [ - "ter", - "ne" - ], - [ - "tern", - "e" - ], - [ - "t", - "erne" - ], - [ - "▁cor", - "ner" - ], - [ - "▁corn", - "er" - ], - [ - "at", - "y" - ], - [ - "a", - "ty" - ], - [ - "▁impro", - "ve" - ], - [ - "▁improv", - "e" - ], - [ - "▁impr", - "ove" - ], - [ - "▁in", - "tr" - ], - [ - "▁int", - "r" - ], - [ - "▁`", - "@" - ], - [ - "ar", - "od" - ], - [ - "aro", - "d" - ], - [ - "a", - "rod" - ], - [ - "▁install", - "ation" - ], - [ - "▁instal", - "lation" - ], - [ - "▁Refer", - "ências" - ], - [ - "ig", - "an" - ], - [ - "iga", - "n" - ], - [ - "i", - "gan" - ], - [ - "▁crit", - "ic" - ], - [ - "ad", - "el" - ], - [ - "ade", - "l" - ], - [ - "a", - "del" - ], - [ - "▁се", - "ло" - ], - [ - ",", - "\r" - ], - [ - "at", - "ori" - ], - [ - "ator", - "i" - ], - [ - "ato", - "ri" - ], - [ - "▁F", - "ri" - ], - [ - "▁Fr", - "i" - ], - [ - "▁", - "Fri" - ], - [ - "▁ré", - "férences" - ], - [ - "▁Int", - "ent" - ], - [ - "▁", - "Intent" - ], - [ - "▁t", - "ant" - ], - [ - "▁tan", - "t" - ], - [ - "▁ta", - "nt" - ], - [ - "un", - "ci" - ], - [ - "unc", - "i" - ], - [ - "▁level", - "s" - ], - [ - "▁lev", - "els" - ], - [ - "er", - "es" - ], - [ - "ere", - "s" - ], - [ - "e", - "res" - ], - [ - "▁e", - "mer" - ], - [ - "▁em", - "er" - ], - [ - "▁", - "emer" - ], - [ - "sa", - "fe" - ], - [ - "t", - "k" - ], - [ - "▁c", - "ham" - ], - [ - "▁ch", - "am" - ], - [ - "▁cha", - "m" - ], - [ - "▁great", - "ly" - ], - [ - "▁we", - "it" - ], - [ - "▁", - "weit" - ], - [ - "▁co", - "ach" - ], - [ - "▁to", - "ward" - ], - [ - "Hom", - "e" - ], - [ - "H", - "ome" - ], - [ - "▁Bo", - "olean" - ], - [ - "▁", - "Boolean" - ], - [ - "те", - "л" - ], - [ - "т", - "ел" - ], - [ - "▁m", - "ock" - ], - [ - "▁mo", - "ck" - ], - [ - "▁", - "mock" - ], - [ - "▁appreci", - "ate" - ], - [ - "▁C", - "ross" - ], - [ - "▁Cr", - "oss" - ], - [ - "▁Cro", - "ss" - ], - [ - "▁T", - "ake" - ], - [ - "▁Ta", - "ke" - ], - [ - "▁Tak", - "e" - ], - [ - "▁", - "Take" - ], - [ - "D", - "P" - ], - [ - "▁s", - "ides" - ], - [ - "▁si", - "des" - ], - [ - "▁side", - "s" - ], - [ - "▁sid", - "es" - ], - [ - "▁Norm", - "daten" - ], - [ - "де", - "й" - ], - [ - "д", - "ей" - ], - [ - "st", - "al" - ], - [ - "sta", - "l" - ], - [ - "s", - "tal" - ], - [ - "▁c", - "out" - ], - [ - "▁co", - "ut" - ], - [ - "▁cou", - "t" - ], - [ - "▁", - "cout" - ], - [ - "b", - "n" - ], - [ - "▁V", - "ert" - ], - [ - "▁Ver", - "t" - ], - [ - "▁Ve", - "rt" - ], - [ - "▁", - "Vert" - ], - [ - "▁b", - "ird" - ], - [ - "▁bi", - "rd" - ], - [ - "▁bir", - "d" - ], - [ - "▁", - "bird" - ], - [ - "▁dynam", - "ically" - ], - [ - "▁dynamic", - "ally" - ], - [ - "▁D", - "ol" - ], - [ - "▁Do", - "l" - ], - [ - "▁B", - "urg" - ], - [ - "▁Bu", - "rg" - ], - [ - "▁Bur", - "g" - ], - [ - "▁d", - "og" - ], - [ - "▁do", - "g" - ], - [ - "▁", - "dog" - ], - [ - "ät", - "t" - ], - [ - "ä", - "tt" - ], - [ - "▁n", - "uc" - ], - [ - "▁nu", - "c" - ], - [ - "E", - "C" - ], - [ - "By", - "tes" - ], - [ - "Byte", - "s" - ], - [ - "▁a", - "k" - ], - [ - "▁", - "ak" - ], - [ - "re", - "land" - ], - [ - "rel", - "and" - ], - [ - "r", - "eland" - ], - [ - "▁gu", - "itar" - ], - [ - "▁reg", - "arding" - ], - [ - "▁regard", - "ing" - ], - [ - "▁F", - "uß" - ], - [ - "▁Fu", - "ß" - ], - [ - "▁до", - "л" - ], - [ - "▁", - "дол" - ], - [ - "au", - "ss" - ], - [ - "aus", - "s" - ], - [ - "a", - "uss" - ], - [ - "▁j", - "ej" - ], - [ - "▁je", - "j" - ], - [ - "ac", - "o" - ], - [ - "a", - "co" - ], - [ - "▁up", - "dates" - ], - [ - "▁update", - "s" - ], - [ - "▁upd", - "ates" - ], - [ - "ру", - "к" - ], - [ - "р", - "ук" - ], - [ - "('", - "/" - ], - [ - "▁c", - "old" - ], - [ - "▁col", - "d" - ], - [ - "▁co", - "ld" - ], - [ - "▁G", - "iven" - ], - [ - "▁Gi", - "ven" - ], - [ - "▁Give", - "n" - ], - [ - "hi", - "n" - ], - [ - "h", - "in" - ], - [ - "▁fe", - "eling" - ], - [ - "▁feel", - "ing" - ], - [ - "▁fee", - "ling" - ], - [ - "ig", - "li" - ], - [ - "fa", - "h" - ], - [ - "f", - "ah" - ], - [ - "ст", - "ре" - ], - [ - "стр", - "е" - ], - [ - "с", - "тре" - ], - [ - "bo", - "ol" - ], - [ - "b", - "ool" - ], - [ - "init", - "ial" - ], - [ - "▁станов", - "ника" - ], - [ - "▁An", - "na" - ], - [ - "▁Ann", - "a" - ], - [ - "▁h", - "ors" - ], - [ - "▁hor", - "s" - ], - [ - "▁ho", - "rs" - ], - [ - "▁d", - "oll" - ], - [ - "▁do", - "ll" - ], - [ - "▁dol", - "l" - ], - [ - "▁con", - "sum" - ], - [ - "▁cons", - "um" - ], - [ - "▁", - "consum" - ], - [ - "ub", - "er" - ], - [ - "ube", - "r" - ], - [ - "u", - "ber" - ], - [ - "stand", - "ing" - ], - [ - "stan", - "ding" - ], - [ - "act", - "iv" - ], - [ - "з", - "і" - ], - [ - "check", - "ed" - ], - [ - "▁perm", - "issions" - ], - [ - "▁permission", - "s" - ], - [ - "▁M", - "onte" - ], - [ - "▁Mon", - "te" - ], - [ - "▁Mont", - "e" - ], - [ - "Write", - "Line" - ], - [ - "pl", - "us" - ], - [ - "p", - "lus" - ], - [ - "▁E", - "qu" - ], - [ - "▁Eq", - "u" - ], - [ - "▁", - "Equ" - ], - [ - "▁и", - "х" - ], - [ - "▁", - "их" - ], - [ - "ч", - "ки" - ], - [ - "un", - "que" - ], - [ - "▁L", - "O" - ], - [ - "▁", - "LO" - ], - [ - "e", - "a" - ], - [ - "sam", - "ple" - ], - [ - "s", - "ample" - ], - [ - "ie", - "sz" - ], - [ - "ies", - "z" - ], - [ - "i", - "esz" - ], - [ - "or", - "al" - ], - [ - "ora", - "l" - ], - [ - "o", - "ral" - ], - [ - "▁И", - "н" - ], - [ - "os", - "ton" - ], - [ - "ost", - "on" - ], - [ - "osto", - "n" - ], - [ - "o", - "ston" - ], - [ - "▁S", - "imon" - ], - [ - "▁Sim", - "on" - ], - [ - "▁Si", - "mon" - ], - [ - "fa", - "st" - ], - [ - "fas", - "t" - ], - [ - "f", - "ast" - ], - [ - "m", - "k" - ], - [ - "as", - "sen" - ], - [ - "ass", - "en" - ], - [ - "asse", - "n" - ], - [ - "▁arch", - "itecture" - ], - [ - "▁architect", - "ure" - ], - [ - "▁", - "architecture" - ], - [ - "ens", - "es" - ], - [ - "ense", - "s" - ], - [ - "▁", - "Å" - ], - [ - "▁to", - "pic" - ], - [ - "▁top", - "ic" - ], - [ - "▁", - "topic" - ], - [ - "▁dis", - "able" - ], - [ - "▁", - "disable" - ], - [ - "▁C", - "ru" - ], - [ - "▁Cr", - "u" - ], - [ - "▁Cont", - "rol" - ], - [ - "▁", - "Control" - ], - [ - "▁cre", - "ation" - ], - [ - "▁hy", - "per" - ], - [ - "▁hyp", - "er" - ], - [ - "▁", - "hyper" - ], - [ - "it", - "ud" - ], - [ - "itu", - "d" - ], - [ - "же", - "ния" - ], - [ - "ar", - "am" - ], - [ - "ara", - "m" - ], - [ - "a", - "ram" - ], - [ - "▁г", - "де" - ], - [ - "ien", - "st" - ], - [ - "iens", - "t" - ], - [ - "i", - "enst" - ], - [ - "ed", - "ule" - ], - [ - "edu", - "le" - ], - [ - "▁B", - "ot" - ], - [ - "▁Bo", - "t" - ], - [ - "▁О", - "с" - ], - [ - "▁The", - "ir" - ], - [ - "an", - "ne" - ], - [ - "ann", - "e" - ], - [ - "M", - "icrosoft" - ], - [ - "▁P", - "M" - ], - [ - "▁", - "PM" - ], - [ - "yd", - "ro" - ], - [ - "y", - "dro" - ], - [ - "ent", - "lich" - ], - [ - "▁E", - "ine" - ], - [ - "▁Ein", - "e" - ], - [ - "CH", - "AR" - ], - [ - ":", - "'" - ], - [ - "We", - "ll" - ], - [ - "Wel", - "l" - ], - [ - "W", - "ell" - ], - [ - "le", - "ton" - ], - [ - "let", - "on" - ], - [ - "l", - "eton" - ], - [ - "▁support", - "s" - ], - [ - "▁sup", - "ports" - ], - [ - "']", - ")" - ], - [ - "'", - "])" - ], - [ - "man", - "ual" - ], - [ - "▁v", - "ice" - ], - [ - "▁vi", - "ce" - ], - [ - "▁vic", - "e" - ], - [ - "▁", - "vice" - ], - [ - "as", - "a" - ], - [ - "a", - "sa" - ], - [ - "cl", - "os" - ], - [ - "clo", - "s" - ], - [ - "c", - "los" - ], - [ - "vi", - "sed" - ], - [ - "vis", - "ed" - ], - [ - "v", - "ised" - ], - [ - "▁p", - "ok" - ], - [ - "▁po", - "k" - ], - [ - "tr", - "ack" - ], - [ - "tra", - "ck" - ], - [ - "t", - "rack" - ], - [ - "но", - "ст" - ], - [ - "нос", - "т" - ], - [ - "...", - "....." - ], - [ - "....", - "...." - ], - [ - ".....", - "..." - ], - [ - "▁'", - "\\" - ], - [ - "▁", - "'\\" - ], - [ - "²", - "." - ], - [ - "▁or", - "ders" - ], - [ - "▁order", - "s" - ], - [ - "▁ord", - "ers" - ], - [ - "▁", - "orders" - ], - [ - "et", - "ta" - ], - [ - "ett", - "a" - ], - [ - "e", - "tta" - ], - [ - "▁con", - "version" - ], - [ - "▁conv", - "ersion" - ], - [ - "▁convers", - "ion" - ], - [ - "▁t", - "rade" - ], - [ - "▁tr", - "ade" - ], - [ - "▁tra", - "de" - ], - [ - "▁trad", - "e" - ], - [ - "cl", - "i" - ], - [ - "c", - "li" - ], - [ - "▁И", - "сто" - ], - [ - "▁Ис", - "то" - ], - [ - "▁a", - "kt" - ], - [ - "▁ak", - "t" - ], - [ - "▁", - "akt" - ], - [ - "▁sub", - "set" - ], - [ - "▁subs", - "et" - ], - [ - "▁", - "subset" - ], - [ - "▁a", - "ug" - ], - [ - "▁au", - "g" - ], - [ - "▁", - "aug" - ], - [ - "▁le", - "aves" - ], - [ - "▁leave", - "s" - ], - [ - "Mat", - "h" - ], - [ - "Ma", - "th" - ], - [ - "M", - "ath" - ], - [ - "an", - "ned" - ], - [ - "ann", - "ed" - ], - [ - "anne", - "d" - ], - [ - "ka", - "l" - ], - [ - "k", - "al" - ], - [ - "▁Ве", - "ли" - ], - [ - "▁n", - "og" - ], - [ - "▁no", - "g" - ], - [ - "▁", - "nog" - ], - [ - "▁e", - "th" - ], - [ - "▁et", - "h" - ], - [ - "▁", - "eth" - ], - [ - "▁h", - "air" - ], - [ - "▁ha", - "ir" - ], - [ - "ar", - "ound" - ], - [ - "aro", - "und" - ], - [ - "a", - "round" - ], - [ - "▁java", - "x" - ], - [ - "▁jav", - "ax" - ], - [ - "▁", - "javax" - ], - [ - "во", - "й" - ], - [ - "▁C", - "entre" - ], - [ - "▁Cent", - "re" - ], - [ - "ö", - "ß" - ], - [ - "ut", - "i" - ], - [ - "u", - "ti" - ], - [ - "▁n", - "avigation" - ], - [ - "▁navig", - "ation" - ], - [ - "▁", - "navigation" - ], - [ - "▁P", - "S" - ], - [ - "▁", - "PS" - ], - [ - "▁w", - "a" - ], - [ - "▁", - "wa" - ], - [ - "▁Ро", - "ссии" - ], - [ - "▁Рос", - "сии" - ], - [ - "▁Росси", - "и" - ], - [ - "us", - "a" - ], - [ - "u", - "sa" - ], - [ - "ze", - "ta" - ], - [ - "zet", - "a" - ], - [ - "z", - "eta" - ], - [ - "▁P", - "DF" - ], - [ - "▁", - "PDF" - ], - [ - "▁m", - "ismo" - ], - [ - "▁mis", - "mo" - ], - [ - "▁mism", - "o" - ], - [ - "pro", - "perties" - ], - [ - "me", - "ister" - ], - [ - "ль", - "та" - ], - [ - "for", - "ward" - ], - [ - "▁O", - "st" - ], - [ - "▁Os", - "t" - ], - [ - "ki", - "ns" - ], - [ - "kin", - "s" - ], - [ - "k", - "ins" - ], - [ - "▁s", - "ido" - ], - [ - "▁si", - "do" - ], - [ - "▁sid", - "o" - ], - [ - "зо", - "в" - ], - [ - "з", - "ов" - ], - [ - "ta", - "gs" - ], - [ - "tag", - "s" - ], - [ - "t", - "ags" - ], - [ - "▁a", - "ctor" - ], - [ - "▁act", - "or" - ], - [ - "▁ac", - "tor" - ], - [ - "▁", - "actor" - ], - [ - "▁f", - "ly" - ], - [ - "▁fl", - "y" - ], - [ - "▁", - "fly" - ], - [ - "C", - "R" - ], - [ - "ag", - "ini" - ], - [ - "agi", - "ni" - ], - [ - "agin", - "i" - ], - [ - "▁l", - "ett" - ], - [ - "▁le", - "tt" - ], - [ - "▁let", - "t" - ], - [ - "▁", - "lett" - ], - [ - "en", - "i" - ], - [ - "e", - "ni" - ], - [ - "te", - "ch" - ], - [ - "t", - "ech" - ], - [ - "▁E", - "nc" - ], - [ - "▁En", - "c" - ], - [ - "▁", - "Enc" - ], - [ - "or", - "acle" - ], - [ - "ora", - "cle" - ], - [ - "o", - "racle" - ], - [ - "amil", - "ton" - ], - [ - "ze", - "j" - ], - [ - "z", - "ej" - ], - [ - "fe", - "n" - ], - [ - "f", - "en" - ], - [ - "ume", - "rate" - ], - [ - "umer", - "ate" - ], - [ - "▁qu", - "esto" - ], - [ - "▁que", - "sto" - ], - [ - "▁q", - "uesto" - ], - [ - "▁quest", - "o" - ], - [ - "da", - "rt" - ], - [ - "dar", - "t" - ], - [ - "d", - "art" - ], - [ - "▁K", - "ore" - ], - [ - "▁Ko", - "re" - ], - [ - "▁Kor", - "e" - ], - [ - "ap", - "is" - ], - [ - "api", - "s" - ], - [ - "a", - "pis" - ], - [ - "ep", - "er" - ], - [ - "e", - "per" - ], - [ - "Sc", - "reen" - ], - [ - "S", - "creen" - ], - [ - "wa", - "ll" - ], - [ - "wal", - "l" - ], - [ - "w", - "all" - ], - [ - "▁is", - "land" - ], - [ - "sh", - "e" - ], - [ - "s", - "he" - ], - [ - "▁l", - "igger" - ], - [ - "▁lig", - "ger" - ], - [ - "в", - "ся" - ], - [ - "fa", - "ng" - ], - [ - "fan", - "g" - ], - [ - "f", - "ang" - ], - [ - "▁t", - "ard" - ], - [ - "▁tar", - "d" - ], - [ - "▁ta", - "rd" - ], - [ - "▁pla", - "ats" - ], - [ - "▁п", - "ло" - ], - [ - "▁", - "пло" - ], - [ - "▁Off", - "ice" - ], - [ - "▁Offic", - "e" - ], - [ - "▁", - "Office" - ], - [ - "▁S", - "ET" - ], - [ - "▁SE", - "T" - ], - [ - "▁", - "SET" - ], - [ - "▁circ", - "uit" - ], - [ - "je", - "d" - ], - [ - "j", - "ed" - ], - [ - "Sa", - "ve" - ], - [ - "S", - "ave" - ], - [ - "ль", - "но" - ], - [ - "So", - "cket" - ], - [ - "S", - "ocket" - ], - [ - "▁In", - "dex" - ], - [ - "▁Ind", - "ex" - ], - [ - "▁", - "Index" - ], - [ - "AC", - "K" - ], - [ - "A", - "CK" - ], - [ - "id", - "ers" - ], - [ - "ide", - "rs" - ], - [ - "ider", - "s" - ], - [ - "i", - "ders" - ], - [ - "er", - "er" - ], - [ - "ere", - "r" - ], - [ - "e", - "rer" - ], - [ - "▁С", - "ША" - ], - [ - "▁l", - "ady" - ], - [ - "▁la", - "dy" - ], - [ - "▁lad", - "y" - ], - [ - "▁sch", - "eme" - ], - [ - "▁sche", - "me" - ], - [ - "ie", - "lle" - ], - [ - "iel", - "le" - ], - [ - "i", - "elle" - ], - [ - "▁ex", - "erc" - ], - [ - "▁exer", - "c" - ], - [ - ")}", - "\\" - ], - [ - ")", - "}\\" - ], - [ - "Date", - "Time" - ], - [ - "at", - "han" - ], - [ - "ath", - "an" - ], - [ - "a", - "than" - ], - [ - "▁Prof", - "essor" - ], - [ - "▁mo", - "ins" - ], - [ - "▁moi", - "ns" - ], - [ - "▁Ex", - "cel" - ], - [ - "▁", - "Excel" - ], - [ - "▁H", - "ay" - ], - [ - "▁Ha", - "y" - ], - [ - "▁Mus", - "ik" - ], - [ - "▁", - "ї" - ], - [ - "ę", - "d" - ], - [ - "▁\"", - "." - ], - [ - "▁", - "\"." - ], - [ - "▁бу", - "в" - ], - [ - "▁inst", - "rument" - ], - [ - "▁instru", - "ment" - ], - [ - "па", - "р" - ], - [ - "п", - "ар" - ], - [ - "▁б", - "ере" - ], - [ - "▁бе", - "ре" - ], - [ - "▁", - "бере" - ], - [ - "▁polit", - "ique" - ], - [ - "▁trad", - "ition" - ], - [ - "▁V", - "M" - ], - [ - "▁", - "VM" - ], - [ - "▁Ar", - "ts" - ], - [ - "▁Art", - "s" - ], - [ - "▁C", - "i" - ], - [ - "Us", - "e" - ], - [ - "U", - "se" - ], - [ - "▁a", - "ggreg" - ], - [ - "▁ag", - "greg" - ], - [ - "▁", - "aggreg" - ], - [ - "▁we", - "eks" - ], - [ - "▁week", - "s" - ], - [ - "▁o", - "pport" - ], - [ - "▁op", - "port" - ], - [ - "▁opp", - "ort" - ], - [ - "it", - "ing" - ], - [ - "iti", - "ng" - ], - [ - "i", - "ting" - ], - [ - "▁vert", - "ical" - ], - [ - "▁", - "vertical" - ], - [ - "▁N", - "az" - ], - [ - "▁Na", - "z" - ], - [ - "..", - ".)" - ], - [ - "...", - ")" - ], - [ - "iz", - "o" - ], - [ - "i", - "zo" - ], - [ - "▁c", - "ycle" - ], - [ - "▁cy", - "cle" - ], - [ - "▁cycl", - "e" - ], - [ - "▁", - "cycle" - ], - [ - "▁tem", - "po" - ], - [ - "▁temp", - "o" - ], - [ - "т", - "ре" - ], - [ - "▁hand", - "ling" - ], - [ - "ist", - "ence" - ], - [ - "isten", - "ce" - ], - [ - "▁p", - "aste" - ], - [ - "▁pas", - "te" - ], - [ - "▁pa", - "ste" - ], - [ - "▁past", - "e" - ], - [ - "▁", - "paste" - ], - [ - "▁en", - "jo" - ], - [ - "RO", - "UP" - ], - [ - "▁o", - "uter" - ], - [ - "▁out", - "er" - ], - [ - "▁ou", - "ter" - ], - [ - "▁", - "outer" - ], - [ - "▁su", - "pply" - ], - [ - "▁supp", - "ly" - ], - [ - "▁sup", - "ply" - ], - [ - "em", - "an" - ], - [ - "ema", - "n" - ], - [ - "e", - "man" - ], - [ - "▁acc", - "ident" - ], - [ - "▁\\", - "]" - ], - [ - "▁", - "\\]" - ], - [ - "▁те", - "х" - ], - [ - "▁", - "тех" - ], - [ - "Po", - "ol" - ], - [ - "P", - "ool" - ], - [ - "ot", - "ing" - ], - [ - "oti", - "ng" - ], - [ - "o", - "ting" - ], - [ - "onym", - "ous" - ], - [ - "▁Gi", - "ov" - ], - [ - "▁u", - "d" - ], - [ - "▁", - "ud" - ], - [ - "▁.", - "/" - ], - [ - "▁", - "./" - ], - [ - "ER", - "ROR" - ], - [ - "ERR", - "OR" - ], - [ - "con", - "struct" - ], - [ - "const", - "ruct" - ], - [ - "text", - "width" - ], - [ - "qu", - "ipe" - ], - [ - "qui", - "pe" - ], - [ - "quip", - "e" - ], - [ - "case", - "s" - ], - [ - "cas", - "es" - ], - [ - "c", - "ases" - ], - [ - "▁а", - "д" - ], - [ - "▁R", - "ow" - ], - [ - "▁Ro", - "w" - ], - [ - "▁", - "Row" - ], - [ - "Hol", - "der" - ], - [ - "Hold", - "er" - ], - [ - "H", - "older" - ], - [ - "wa", - "n" - ], - [ - "w", - "an" - ], - [ - "ar", - "na" - ], - [ - "arn", - "a" - ], - [ - "Me", - "m" - ], - [ - "M", - "em" - ], - [ - "▁Canad", - "ian" - ], - [ - "▁Com", - "mission" - ], - [ - "▁Comm", - "ission" - ], - [ - "su", - "n" - ], - [ - "s", - "un" - ], - [ - "▁app", - "s" - ], - [ - "▁ap", - "ps" - ], - [ - "▁", - "apps" - ], - [ - "▁B", - "lo" - ], - [ - "▁Bl", - "o" - ], - [ - "▁i", - "hrer" - ], - [ - "▁ih", - "rer" - ], - [ - "▁ihr", - "er" - ], - [ - "▁ihre", - "r" - ], - [ - "▁famil", - "le" - ], - [ - "▁fam", - "ille" - ], - [ - "▁m", - "ě" - ], - [ - "▁p", - "y" - ], - [ - "▁", - "py" - ], - [ - "и", - "с" - ], - [ - "▁т", - "ого" - ], - [ - "▁то", - "го" - ], - [ - "▁", - "того" - ], - [ - "▁Ag", - "ain" - ], - [ - "▁ign", - "ore" - ], - [ - "▁ignor", - "e" - ], - [ - "▁", - "ignore" - ], - [ - "▁tele", - "vision" - ], - [ - "▁televis", - "ion" - ], - [ - "Pa", - "t" - ], - [ - "P", - "at" - ], - [ - "hi", - "de" - ], - [ - "h", - "ide" - ], - [ - "▁R", - "ev" - ], - [ - "▁Re", - "v" - ], - [ - "▁b", - "ear" - ], - [ - "▁be", - "ar" - ], - [ - "ph", - "y" - ], - [ - "p", - "hy" - ], - [ - "▁no", - "ise" - ], - [ - "▁w", - "ra" - ], - [ - "▁wr", - "a" - ], - [ - "at", - "ionale" - ], - [ - "ation", - "ale" - ], - [ - "ational", - "e" - ], - [ - "▁coll", - "abor" - ], - [ - "bor", - "der" - ], - [ - "b", - "order" - ], - [ - "▁el", - "ected" - ], - [ - "▁elect", - "ed" - ], - [ - "▁ele", - "cted" - ], - [ - "▁sur", - "pr" - ], - [ - "▁a", - "voir" - ], - [ - "▁av", - "oir" - ], - [ - "▁avo", - "ir" - ], - [ - "▁", - "avoir" - ], - [ - "▁ass", - "embly" - ], - [ - "▁assemb", - "ly" - ], - [ - "▁", - "assembly" - ], - [ - "▁об", - "ще" - ], - [ - "▁arbitr", - "ary" - ], - [ - "▁br", - "ief" - ], - [ - "▁-", - "--" - ], - [ - "▁--", - "-" - ], - [ - "▁", - "---" - ], - [ - "▁M", - "aur" - ], - [ - "▁Ma", - "ur" - ], - [ - "▁Mau", - "r" - ], - [ - "gr", - "ession" - ], - [ - "gress", - "ion" - ], - [ - "g", - "ression" - ], - [ - "ic", - "ia" - ], - [ - "ici", - "a" - ], - [ - "i", - "cia" - ], - [ - "▁lie", - "gt" - ], - [ - "▁Fig", - "ure" - ], - [ - "▁on", - "to" - ], - [ - "▁ont", - "o" - ], - [ - "▁", - "onto" - ], - [ - "Re", - "pository" - ], - [ - "Repos", - "itory" - ], - [ - "▁dé", - "f" - ], - [ - "▁f", - "orth" - ], - [ - "▁for", - "th" - ], - [ - "▁fort", - "h" - ], - [ - "▁cl", - "icked" - ], - [ - "▁click", - "ed" - ], - [ - "se", - "ite" - ], - [ - "▁n", - "otes" - ], - [ - "▁not", - "es" - ], - [ - "▁no", - "tes" - ], - [ - "▁note", - "s" - ], - [ - "▁", - "notes" - ], - [ - "nat", - "ive" - ], - [ - "n", - "ative" - ], - [ - "▁ED", - "IT" - ], - [ - "▁", - "EDIT" - ], - [ - "ы", - "е" - ], - [ - "M", - "T" - ], - [ - "am", - "ental" - ], - [ - "ament", - "al" - ], - [ - "amen", - "tal" - ], - [ - "▁r", - "ose" - ], - [ - "▁ro", - "se" - ], - [ - "▁ros", - "e" - ], - [ - "▁", - "rose" - ], - [ - "▁pu", - "ede" - ], - [ - "▁pue", - "de" - ], - [ - "De", - "legate" - ], - [ - "Deleg", - "ate" - ], - [ - "ub", - "a" - ], - [ - "u", - "ba" - ], - [ - "ne", - "o" - ], - [ - "xi", - "s" - ], - [ - "x", - "is" - ], - [ - "▁Ar", - "thur" - ], - [ - "UR", - "E" - ], - [ - "U", - "RE" - ], - [ - "am", - "ing" - ], - [ - "ami", - "ng" - ], - [ - "amin", - "g" - ], - [ - "a", - "ming" - ], - [ - "De", - "vice" - ], - [ - "Dev", - "ice" - ], - [ - "▁d", - "iam" - ], - [ - "▁di", - "am" - ], - [ - "▁dia", - "m" - ], - [ - "st", - "änd" - ], - [ - "▁p", - "ron" - ], - [ - "▁pro", - "n" - ], - [ - "▁pr", - "on" - ], - [ - "oi", - "s" - ], - [ - "o", - "is" - ], - [ - "com", - "ing" - ], - [ - "co", - "ming" - ], - [ - "c", - "oming" - ], - [ - "Param", - "eters" - ], - [ - "Parameter", - "s" - ], - [ - "uv", - "ud" - ], - [ - "▁ab", - "ility" - ], - [ - "▁", - "ability" - ], - [ - "▁m", - "ét" - ], - [ - "▁mé", - "t" - ], - [ - "▁Un", - "fortunately" - ], - [ - "f", - "d" - ], - [ - "D", - "ictionary" - ], - [ - "so", - "cket" - ], - [ - "sock", - "et" - ], - [ - "s", - "ocket" - ], - [ - "▁con", - "oc" - ], - [ - "▁co", - "noc" - ], - [ - "cont", - "ains" - ], - [ - "es", - "sed" - ], - [ - "ess", - "ed" - ], - [ - "esse", - "d" - ], - [ - "▁gel", - "dig" - ], - [ - "▁geld", - "ig" - ], - [ - "ни", - "ца" - ], - [ - "ниц", - "а" - ], - [ - "▁point", - "ed" - ], - [ - "es", - "ti" - ], - [ - "est", - "i" - ], - [ - "no", - "m" - ], - [ - "n", - "om" - ], - [ - "ографи", - "я" - ], - [ - "▁represent", - "s" - ], - [ - "▁repres", - "ents" - ], - [ - "▁man", - "ip" - ], - [ - "wor", - "ld" - ], - [ - "w", - "orld" - ], - [ - "▁resol", - "ved" - ], - [ - "▁resolve", - "d" - ], - [ - "te", - "gr" - ], - [ - "t", - "egr" - ], - [ - "▁d", - "ort" - ], - [ - "▁do", - "rt" - ], - [ - "▁dor", - "t" - ], - [ - "as", - "tern" - ], - [ - "ast", - "ern" - ], - [ - "aster", - "n" - ], - [ - "aste", - "rn" - ], - [ - "▁camp", - "aign" - ], - [ - "▁pr", - "imo" - ], - [ - "▁prim", - "o" - ], - [ - "▁pri", - "mo" - ], - [ - "▁;", - ";" - ], - [ - "▁", - ";;" - ], - [ - "▁sni", - "ppet" - ], - [ - "▁N", - "ik" - ], - [ - "▁Ni", - "k" - ], - [ - "To", - "tal" - ], - [ - "T", - "otal" - ], - [ - "iss", - "ement" - ], - [ - "isse", - "ment" - ], - [ - "AC", - "E" - ], - [ - "A", - "CE" - ], - [ - "▁ver", - "ify" - ], - [ - "▁", - "verify" - ], - [ - "if", - "fe" - ], - [ - "iff", - "e" - ], - [ - "i", - "ffe" - ], - [ - "la", - "gen" - ], - [ - "lag", - "en" - ], - [ - "lage", - "n" - ], - [ - "l", - "agen" - ], - [ - "ie", - "ur" - ], - [ - "ieu", - "r" - ], - [ - "i", - "eur" - ], - [ - "▁convert", - "ed" - ], - [ - "▁conver", - "ted" - ], - [ - "▁Mil", - "it" - ], - [ - "▁Mi", - "lit" - ], - [ - "▁A", - "lg" - ], - [ - "▁Al", - "g" - ], - [ - "▁", - "Alg" - ], - [ - "▁R", - "on" - ], - [ - "▁Ro", - "n" - ], - [ - "▁k", - "onn" - ], - [ - "▁kon", - "n" - ], - [ - "▁ko", - "nn" - ], - [ - "ap", - "ple" - ], - [ - "app", - "le" - ], - [ - "▁dis", - "pos" - ], - [ - "▁disp", - "os" - ], - [ - "stell", - "ung" - ], - [ - "▁re", - "tain" - ], - [ - "▁ret", - "ain" - ], - [ - "▁m", - "entre" - ], - [ - "▁men", - "tre" - ], - [ - "▁ment", - "re" - ], - [ - "▁ne", - "ut" - ], - [ - "▁neu", - "t" - ], - [ - "▁", - "neut" - ], - [ - "▁N", - "ight" - ], - [ - "ch", - "é" - ], - [ - "c", - "hé" - ], - [ - "at", - "ti" - ], - [ - "att", - "i" - ], - [ - "▁o", - "bra" - ], - [ - "▁ob", - "ra" - ], - [ - "▁super", - "ior" - ], - [ - "▁Con", - "gress" - ], - [ - "▁Cong", - "ress" - ], - [ - "ё", - "м" - ], - [ - "▁c", - "odes" - ], - [ - "▁code", - "s" - ], - [ - "▁co", - "des" - ], - [ - "▁cod", - "es" - ], - [ - "▁", - "codes" - ], - [ - "▁A", - "ma" - ], - [ - "▁Am", - "a" - ], - [ - "▁E", - "arth" - ], - [ - "▁Ear", - "th" - ], - [ - "▁oppos", - "ite" - ], - [ - "▁p", - "ool" - ], - [ - "▁po", - "ol" - ], - [ - "▁", - "pool" - ], - [ - "▁D", - "un" - ], - [ - "▁Du", - "n" - ], - [ - "же", - "ние" - ], - [ - "▁\"", - "${" - ], - [ - "▁\"$", - "{" - ], - [ - "in", - "v" - ], - [ - "▁у", - "ни" - ], - [ - "▁And", - "rew" - ], - [ - "▁Andre", - "w" - ], - [ - "те", - "лей" - ], - [ - "тел", - "ей" - ], - [ - "▁by", - "ł" - ], - [ - "Un", - "ivers" - ], - [ - "Uni", - "vers" - ], - [ - "▁Ang", - "ular" - ], - [ - "an", - "im" - ], - [ - "ani", - "m" - ], - [ - "a", - "nim" - ], - [ - "до", - "ва" - ], - [ - "дов", - "а" - ], - [ - "д", - "ова" - ], - [ - "BU", - "G" - ], - [ - "B", - "UG" - ], - [ - "ut", - "ely" - ], - [ - "ute", - "ly" - ], - [ - "▁draw", - "ing" - ], - [ - "▁dra", - "wing" - ], - [ - "▁g", - "ain" - ], - [ - "▁ga", - "in" - ], - [ - "▁four", - "th" - ], - [ - "▁Pro", - "blem" - ], - [ - "▁", - "Problem" - ], - [ - "▁sudden", - "ly" - ], - [ - "▁", - "Ä" - ], - [ - "on", - "na" - ], - [ - "onn", - "a" - ], - [ - "▁K", - "ont" - ], - [ - "▁Kon", - "t" - ], - [ - "▁Ko", - "nt" - ], - [ - "▁Bilder", - "n" - ], - [ - "▁Bild", - "ern" - ], - [ - "▁Bil", - "dern" - ], - [ - "▁konn", - "te" - ], - [ - "ž", - "e" - ], - [ - "Tr", - "ace" - ], - [ - "Tra", - "ce" - ], - [ - "T", - "race" - ], - [ - "▁sec", - "ure" - ], - [ - "▁", - "secure" - ], - [ - "▁któ", - "ry" - ], - [ - "▁e", - "q" - ], - [ - "▁", - "eq" - ], - [ - "▁f", - "ormal" - ], - [ - "▁for", - "mal" - ], - [ - "▁form", - "al" - ], - [ - "▁forma", - "l" - ], - [ - "amer", - "ikan" - ], - [ - "▁A", - "nal" - ], - [ - "▁An", - "al" - ], - [ - "▁Ana", - "l" - ], - [ - "▁", - "Anal" - ], - [ - "▁R", - "ewrite" - ], - [ - "▁Re", - "write" - ], - [ - "▁D", - "ouble" - ], - [ - "▁Dou", - "ble" - ], - [ - "▁", - "Double" - ], - [ - "cre", - "ated" - ], - [ - "create", - "d" - ], - [ - "N", - "U" - ], - [ - "MD", - "b" - ], - [ - "M", - "Db" - ], - [ - "ap", - "es" - ], - [ - "ape", - "s" - ], - [ - "a", - "pes" - ], - [ - "Un", - "is" - ], - [ - "Uni", - "s" - ], - [ - "U", - "nis" - ], - [ - "▁e", - "special" - ], - [ - "▁espe", - "cial" - ], - [ - "▁espec", - "ial" - ], - [ - "})", - "\\" - ], - [ - "}", - ")\\" - ], - [ - "ed", - "om" - ], - [ - "edo", - "m" - ], - [ - "e", - "dom" - ], - [ - "▁c", - "ategor" - ], - [ - "▁categ", - "or" - ], - [ - "Re", - "turn" - ], - [ - "Ret", - "urn" - ], - [ - "▁H", - "amb" - ], - [ - "▁Ha", - "mb" - ], - [ - "▁Ham", - "b" - ], - [ - "▁R", - "io" - ], - [ - "▁Ri", - "o" - ], - [ - "▁M", - "ir" - ], - [ - "▁Mi", - "r" - ], - [ - "▁G", - "eme" - ], - [ - "▁Ge", - "me" - ], - [ - "▁Gem", - "e" - ], - [ - "ab", - "ilities" - ], - [ - "abil", - "ities" - ], - [ - "tr", - "z" - ], - [ - "t", - "rz" - ], - [ - "us", - "et" - ], - [ - "use", - "t" - ], - [ - "u", - "set" - ], - [ - "ier", - "ra" - ], - [ - "net", - "work" - ], - [ - "n", - "etwork" - ], - [ - "▁do", - "ctor" - ], - [ - "▁doc", - "tor" - ], - [ - "eur", - "s" - ], - [ - "eu", - "rs" - ], - [ - "e", - "urs" - ], - [ - "▁l", - "isten" - ], - [ - "▁li", - "sten" - ], - [ - "▁list", - "en" - ], - [ - "▁liste", - "n" - ], - [ - "▁", - "listen" - ], - [ - "д", - "ж" - ], - [ - "▁H", - "ö" - ], - [ - "▁cons", - "ists" - ], - [ - "▁consist", - "s" - ], - [ - "as", - "m" - ], - [ - "a", - "sm" - ], - [ - "Ch", - "r" - ], - [ - "C", - "hr" - ], - [ - "al", - "and" - ], - [ - "ala", - "nd" - ], - [ - "a", - "land" - ], - [ - "▁испо", - "ль" - ], - [ - "▁ис", - "поль" - ], - [ - "▁испол", - "ь" - ], - [ - "▁lug", - "ar" - ], - [ - "▁lu", - "gar" - ], - [ - "▁def", - "initely" - ], - [ - "▁definit", - "ely" - ], - [ - "▁definite", - "ly" - ], - [ - "mo", - "ve" - ], - [ - "mov", - "e" - ], - [ - "m", - "ove" - ], - [ - "úblic", - "a" - ], - [ - "ú", - "blica" - ], - [ - "▁l", - "än" - ], - [ - "▁lä", - "n" - ], - [ - "is", - "mus" - ], - [ - "ism", - "us" - ], - [ - "▁др", - "жа" - ], - [ - "▁d", - "t" - ], - [ - "▁", - "dt" - ], - [ - "▁Per", - "haps" - ], - [ - "▁Bra", - "sil" - ], - [ - "▁Bras", - "il" - ], - [ - "Jo", - "hn" - ], - [ - "J", - "ohn" - ], - [ - "▁prom", - "ise" - ], - [ - "ł", - "u" - ], - [ - "re", - "ens" - ], - [ - "ree", - "ns" - ], - [ - "reen", - "s" - ], - [ - "▁ps", - "ych" - ], - [ - "▁W", - "ho" - ], - [ - "▁Wh", - "o" - ], - [ - "▁", - "Who" - ], - [ - "ря", - "д" - ], - [ - "▁IN", - "TO" - ], - [ - "▁INT", - "O" - ], - [ - "▁Pe", - "ople" - ], - [ - "▁Will", - "iams" - ], - [ - "▁William", - "s" - ], - [ - "▁M", - "arg" - ], - [ - "▁Mar", - "g" - ], - [ - "▁Ma", - "rg" - ], - [ - "▁д", - "ан" - ], - [ - "▁да", - "н" - ], - [ - "▁", - "дан" - ], - [ - "re", - "cord" - ], - [ - "rec", - "ord" - ], - [ - "▁E", - "uro" - ], - [ - "▁Eu", - "ro" - ], - [ - "▁Eur", - "o" - ], - [ - "▁Virgin", - "ia" - ], - [ - "▁R", - "est" - ], - [ - "▁Re", - "st" - ], - [ - "▁Res", - "t" - ], - [ - "▁", - "Rest" - ], - [ - "▁C", - "orn" - ], - [ - "▁Cor", - "n" - ], - [ - "▁Co", - "rn" - ], - [ - "}}", - "," - ], - [ - "}", - "}," - ], - [ - "▁G", - "rid" - ], - [ - "▁Gr", - "id" - ], - [ - "▁", - "Grid" - ], - [ - "▁in", - "ject" - ], - [ - "▁inj", - "ect" - ], - [ - "▁", - "inject" - ], - [ - "на", - "н" - ], - [ - "н", - "ан" - ], - [ - "▁c", - "row" - ], - [ - "▁cr", - "ow" - ], - [ - "▁cro", - "w" - ], - [ - "▁Ph", - "ys" - ], - [ - "▁", - "Phys" - ], - [ - "▁D", - "O" - ], - [ - "▁", - "DO" - ], - [ - "▁\"", - "-" - ], - [ - "▁incre", - "ased" - ], - [ - "▁increase", - "d" - ], - [ - "ach", - "er" - ], - [ - "ac", - "her" - ], - [ - "ache", - "r" - ], - [ - "a", - "cher" - ], - [ - "pe", - "at" - ], - [ - "Li", - "n" - ], - [ - "L", - "in" - ], - [ - "▁D", - "ub" - ], - [ - "▁Du", - "b" - ], - [ - "ri", - "ces" - ], - [ - "ric", - "es" - ], - [ - "rice", - "s" - ], - [ - "r", - "ices" - ], - [ - "ag", - "nost" - ], - [ - "agn", - "ost" - ], - [ - "d", - "l" - ], - [ - "▁cur", - "ve" - ], - [ - "▁curv", - "e" - ], - [ - "ü", - "g" - ], - [ - "ri", - "ce" - ], - [ - "ric", - "e" - ], - [ - "r", - "ice" - ], - [ - "l", - "anguage" - ], - [ - "Click", - "Listener" - ], - [ - "▁municip", - "al" - ], - [ - "▁O", - "ri" - ], - [ - "▁Or", - "i" - ], - [ - "▁", - "Ori" - ], - [ - "▁B", - "ild" - ], - [ - "▁Bi", - "ld" - ], - [ - "▁Bil", - "d" - ], - [ - "▁C", - "ab" - ], - [ - "▁Ca", - "b" - ], - [ - "▁V", - "ar" - ], - [ - "▁Va", - "r" - ], - [ - "▁", - "Var" - ], - [ - "▁n", - "oted" - ], - [ - "▁not", - "ed" - ], - [ - "▁no", - "ted" - ], - [ - "▁note", - "d" - ], - [ - "▁", - "Î" - ], - [ - "▁s", - "ubs" - ], - [ - "▁su", - "bs" - ], - [ - "▁sub", - "s" - ], - [ - "ia", - "tion" - ], - [ - "iat", - "ion" - ], - [ - "i", - "ation" - ], - [ - "W", - "OR" - ], - [ - "in", - "gly" - ], - [ - "ing", - "ly" - ], - [ - "▁R", - "us" - ], - [ - "▁Ru", - "s" - ], - [ - "ie", - "ns" - ], - [ - "ien", - "s" - ], - [ - "i", - "ens" - ], - [ - "IN", - "FO" - ], - [ - "INF", - "O" - ], - [ - "к", - "ва" - ], - [ - "at", - "ivo" - ], - [ - "ativ", - "o" - ], - [ - "ati", - "vo" - ], - [ - "ge", - "nde" - ], - [ - "gen", - "de" - ], - [ - "g", - "ende" - ], - [ - "▁Fran", - "z" - ], - [ - "▁Fr", - "anz" - ], - [ - "▁is", - "ol" - ], - [ - "▁i", - "sol" - ], - [ - "ed", - "es" - ], - [ - "ede", - "s" - ], - [ - "e", - "des" - ], - [ - "ni", - "er" - ], - [ - "nie", - "r" - ], - [ - "n", - "ier" - ], - [ - "▁N", - "O" - ], - [ - "▁", - "NO" - ], - [ - "▁H", - "as" - ], - [ - "▁Ha", - "s" - ], - [ - "▁", - "Has" - ], - [ - "be", - "ans" - ], - [ - "bean", - "s" - ], - [ - "▁p", - "andas" - ], - [ - "▁pan", - "das" - ], - [ - "▁", - "pandas" - ], - [ - "(\"", - "%" - ], - [ - "ві", - "т" - ], - [ - "ут", - "бо" - ], - [ - "▁g", - "ather" - ], - [ - "▁ga", - "ther" - ], - [ - "▁gat", - "her" - ], - [ - "▁le", - "gal" - ], - [ - "▁leg", - "al" - ], - [ - "▁", - "legal" - ], - [ - "in", - "clud" - ], - [ - "▁circum", - "st" - ], - [ - "cript", - "or" - ], - [ - "ri", - "ble" - ], - [ - "rib", - "le" - ], - [ - "r", - "ible" - ], - [ - "▁S", - "üd" - ], - [ - "▁Sü", - "d" - ], - [ - "▁a", - "pro" - ], - [ - "▁ap", - "ro" - ], - [ - "▁apr", - "o" - ], - [ - "Ap", - "i" - ], - [ - "A", - "pi" - ], - [ - "▁на", - "й" - ], - [ - "▁Afr", - "ican" - ], - [ - "▁Africa", - "n" - ], - [ - "ow", - "ski" - ], - [ - "ows", - "ki" - ], - [ - "▁John", - "son" - ], - [ - "ie", - "k" - ], - [ - "i", - "ek" - ], - [ - "▁v", - "ote" - ], - [ - "▁vo", - "te" - ], - [ - "▁vot", - "e" - ], - [ - "▁", - "vote" - ], - [ - "▁K", - "an" - ], - [ - "▁Ka", - "n" - ], - [ - "▁b", - "ibli" - ], - [ - "▁bib", - "li" - ], - [ - "▁", - "bibli" - ], - [ - "▁h", - "aar" - ], - [ - "▁ha", - "ar" - ], - [ - "▁v", - "r" - ], - [ - "▁", - "vr" - ], - [ - "])", - "," - ], - [ - "]", - ")," - ], - [ - "subset", - "eq" - ], - [ - "Par", - "ser" - ], - [ - "Parse", - "r" - ], - [ - "ia", - "ni" - ], - [ - "ian", - "i" - ], - [ - "i", - "ani" - ], - [ - "is", - "é" - ], - [ - "id", - "ea" - ], - [ - "ide", - "a" - ], - [ - "On", - "ly" - ], - [ - "▁á", - "l" - ], - [ - "▁", - "ál" - ], - [ - "▁C", - "atal" - ], - [ - "▁Ca", - "tal" - ], - [ - "▁Cat", - "al" - ], - [ - "▁C", - "ase" - ], - [ - "▁Cas", - "e" - ], - [ - "▁Ca", - "se" - ], - [ - "▁", - "Case" - ], - [ - "se", - "h" - ], - [ - "s", - "eh" - ], - [ - "▁en", - "counter" - ], - [ - "▁enc", - "ounter" - ], - [ - "▁re", - "form" - ], - [ - "▁ref", - "orm" - ], - [ - "ми", - "ни" - ], - [ - "мин", - "и" - ], - [ - "▁S", - "tre" - ], - [ - "▁St", - "re" - ], - [ - "▁Str", - "e" - ], - [ - "ex", - "ception" - ], - [ - "except", - "ion" - ], - [ - "▁T", - "ar" - ], - [ - "▁Ta", - "r" - ], - [ - "та", - "р" - ], - [ - "т", - "ар" - ], - [ - "tr", - "l" - ], - [ - "t", - "rl" - ], - [ - "▁А", - "лександ" - ], - [ - "ле", - "кт" - ], - [ - "лек", - "т" - ], - [ - "equ", - "al" - ], - [ - "eq", - "ual" - ], - [ - "e", - "qual" - ], - [ - "O", - "p" - ], - [ - "▁l", - "if" - ], - [ - "▁li", - "f" - ], - [ - "▁й", - "ого" - ], - [ - "▁volt", - "age" - ], - [ - "▁volta", - "ge" - ], - [ - "sh", - "ire" - ], - [ - "s", - "hire" - ], - [ - "▁Gro", - "ß" - ], - [ - "в", - "ня" - ], - [ - "ning", - "s" - ], - [ - "n", - "ings" - ], - [ - "н", - "ци" - ], - [ - "▁l", - "ag" - ], - [ - "▁la", - "g" - ], - [ - "▁", - "lag" - ], - [ - "▁and", - "eren" - ], - [ - "▁andere", - "n" - ], - [ - "▁v", - "ac" - ], - [ - "▁va", - "c" - ], - [ - "▁ma", - "cro" - ], - [ - "▁mac", - "ro" - ], - [ - "▁", - "macro" - ], - [ - "=", - "[" - ], - [ - "Th", - "en" - ], - [ - "The", - "n" - ], - [ - "T", - "hen" - ], - [ - "▁control", - "s" - ], - [ - "▁contr", - "ols" - ], - [ - "▁contro", - "ls" - ], - [ - "▁", - "controls" - ], - [ - "se", - "q" - ], - [ - "s", - "eq" - ], - [ - "olog", - "ies" - ], - [ - "ologie", - "s" - ], - [ - "▁select", - "or" - ], - [ - "▁sel", - "ector" - ], - [ - "▁sele", - "ctor" - ], - [ - "▁", - "selector" - ], - [ - "▁Украї", - "ни" - ], - [ - "хів", - "овано" - ], - [ - "ы", - "й" - ], - [ - "allen", - "ge" - ], - [ - "alleng", - "e" - ], - [ - "▁I", - "MDb" - ], - [ - "▁IM", - "Db" - ], - [ - "um", - "my" - ], - [ - "umm", - "y" - ], - [ - "ye", - "n" - ], - [ - "y", - "en" - ], - [ - "▁b", - "este" - ], - [ - "▁be", - "ste" - ], - [ - "▁best", - "e" - ], - [ - "▁bes", - "te" - ], - [ - "▁B", - "ox" - ], - [ - "▁Bo", - "x" - ], - [ - "▁", - "Box" - ], - [ - "▁ch", - "air" - ], - [ - "▁cha", - "ir" - ], - [ - "▁S", - "ab" - ], - [ - "▁Sa", - "b" - ], - [ - "er", - "de" - ], - [ - "erd", - "e" - ], - [ - "▁n", - "ast" - ], - [ - "▁na", - "st" - ], - [ - "▁nas", - "t" - ], - [ - "iv", - "amente" - ], - [ - "iva", - "mente" - ], - [ - "▁об", - "ъ" - ], - [ - "▁require", - "ments" - ], - [ - "▁requirement", - "s" - ], - [ - "▁me", - "eting" - ], - [ - "▁meet", - "ing" - ], - [ - "▁fin", - "an" - ], - [ - "▁fi", - "nan" - ], - [ - "▁A", - "dam" - ], - [ - "▁Ad", - "am" - ], - [ - "▁Ada", - "m" - ], - [ - "▁tele", - "vis" - ], - [ - "▁b", - "right" - ], - [ - "▁br", - "ight" - ], - [ - "▁brig", - "ht" - ], - [ - "▁G", - "it" - ], - [ - "▁Gi", - "t" - ], - [ - "▁", - "Git" - ], - [ - "E", - "G" - ], - [ - "▁G", - "il" - ], - [ - "▁Gi", - "l" - ], - [ - "r", - "ès" - ], - [ - "▁C", - "ond" - ], - [ - "▁Con", - "d" - ], - [ - "▁Co", - "nd" - ], - [ - "▁", - "Cond" - ], - [ - "▁f", - "t" - ], - [ - "▁", - "ft" - ], - [ - "▁бу", - "ло" - ], - [ - "-", - "+" - ], - [ - "EN", - "D" - ], - [ - "E", - "ND" - ], - [ - "er", - "ne" - ], - [ - "ern", - "e" - ], - [ - "▁Com", - "put" - ], - [ - "▁Comp", - "ut" - ], - [ - "▁", - "Comput" - ], - [ - "▁i", - "ls" - ], - [ - "▁il", - "s" - ], - [ - "▁", - "ils" - ], - [ - "▁g", - "all" - ], - [ - "▁gal", - "l" - ], - [ - "▁ga", - "ll" - ], - [ - "▁c", - "sv" - ], - [ - "▁cs", - "v" - ], - [ - "▁", - "csv" - ], - [ - "łu", - "g" - ], - [ - "ł", - "ug" - ], - [ - "▁sum", - "mer" - ], - [ - "▁summ", - "er" - ], - [ - "ga", - "me" - ], - [ - "g", - "ame" - ], - [ - "▁pos", - "ts" - ], - [ - "▁post", - "s" - ], - [ - "▁", - "posts" - ], - [ - "Ар", - "хівовано" - ], - [ - "▁z", - "ij" - ], - [ - "▁de", - "termin" - ], - [ - "▁determ", - "in" - ], - [ - "▁ab", - "andon" - ], - [ - "co", - "unter" - ], - [ - "count", - "er" - ], - [ - "c", - "ounter" - ], - [ - "▁require", - "ment" - ], - [ - "▁requ", - "irement" - ], - [ - "▁T", - "it" - ], - [ - "▁Ti", - "t" - ], - [ - "irt", - "ual" - ], - [ - "▁V", - "ideos" - ], - [ - "▁Video", - "s" - ], - [ - "▁qu", - "iet" - ], - [ - "▁qui", - "et" - ], - [ - "▁T", - "erm" - ], - [ - "▁Te", - "rm" - ], - [ - "▁Ter", - "m" - ], - [ - "▁", - "Term" - ], - [ - "▁time", - "out" - ], - [ - "▁", - "timeout" - ], - [ - "Pr", - "int" - ], - [ - "▁in", - "vent" - ], - [ - "▁inv", - "ent" - ], - [ - "▁inve", - "nt" - ], - [ - "la", - "is" - ], - [ - "l", - "ais" - ], - [ - "▁mon", - "itor" - ], - [ - "ha", - "lb" - ], - [ - "hal", - "b" - ], - [ - "▁W", - "ild" - ], - [ - "▁Wil", - "d" - ], - [ - "▁Wi", - "ld" - ], - [ - "▁le", - "ader" - ], - [ - "▁lead", - "er" - ], - [ - "▁с", - "ель" - ], - [ - "▁се", - "ль" - ], - [ - "▁util", - "iz" - ], - [ - "▁par", - "ents" - ], - [ - "▁parent", - "s" - ], - [ - "▁for", - "ced" - ], - [ - "▁force", - "d" - ], - [ - "▁pro", - "ved" - ], - [ - "▁pr", - "oved" - ], - [ - "▁prov", - "ed" - ], - [ - "▁prove", - "d" - ], - [ - "▁effect", - "ive" - ], - [ - "▁l", - "lam" - ], - [ - "▁ll", - "am" - ], - [ - "▁С", - "по" - ], - [ - "or", - "b" - ], - [ - "o", - "rb" - ], - [ - "gg", - "i" - ], - [ - "g", - "gi" - ], - [ - "▁ass", - "umption" - ], - [ - "▁assum", - "ption" - ], - [ - "▁su", - "bm" - ], - [ - "▁sub", - "m" - ], - [ - "▁в", - "ій" - ], - [ - "▁ві", - "й" - ], - [ - "il", - "ia" - ], - [ - "ili", - "a" - ], - [ - "i", - "lia" - ], - [ - "▁re", - "verse" - ], - [ - "▁revers", - "e" - ], - [ - "▁rever", - "se" - ], - [ - "▁", - "reverse" - ], - [ - "'", - "\"" - ], - [ - "▁qu", - "otes" - ], - [ - "▁quot", - "es" - ], - [ - "▁quote", - "s" - ], - [ - "▁s", - "ites" - ], - [ - "▁si", - "tes" - ], - [ - "▁site", - "s" - ], - [ - "▁sit", - "es" - ], - [ - "▁", - "sites" - ], - [ - "ig", - "ung" - ], - [ - "igu", - "ng" - ], - [ - "▁A", - "rg" - ], - [ - "▁Ar", - "g" - ], - [ - "▁", - "Arg" - ], - [ - "D", - "ouble" - ], - [ - "▁s", - "creens" - ], - [ - "▁sc", - "reens" - ], - [ - "▁screen", - "s" - ], - [ - "▁cl", - "ause" - ], - [ - "▁cla", - "use" - ], - [ - "▁b", - "undle" - ], - [ - "▁bund", - "le" - ], - [ - "▁", - "bundle" - ], - [ - "▁phil", - "osoph" - ], - [ - "▁N", - "um" - ], - [ - "▁Nu", - "m" - ], - [ - "▁", - "Num" - ], - [ - "▁g", - "leich" - ], - [ - "▁gle", - "ich" - ], - [ - "▁", - "gleich" - ], - [ - "ul", - "y" - ], - [ - "u", - "ly" - ], - [ - "dir", - "ect" - ], - [ - "di", - "rect" - ], - [ - "dire", - "ct" - ], - [ - "d", - "irect" - ], - [ - "asket", - "ball" - ], - [ - "ow", - "any" - ], - [ - "owa", - "ny" - ], - [ - "owan", - "y" - ], - [ - "\\}", - "$" - ], - [ - "\\", - "}$" - ], - [ - "▁rad", - "ius" - ], - [ - "▁radi", - "us" - ], - [ - "▁", - "radius" - ], - [ - "▁S", - "earch" - ], - [ - "▁Se", - "arch" - ], - [ - "▁", - "Search" - ], - [ - "Pro", - "perties" - ], - [ - "▁e", - "lev" - ], - [ - "▁el", - "ev" - ], - [ - "▁ele", - "v" - ], - [ - "▁p", - "rod" - ], - [ - "▁pro", - "d" - ], - [ - "▁pr", - "od" - ], - [ - "▁", - "prod" - ], - [ - "▁\"", - "%" - ], - [ - "is", - "ión" - ], - [ - "isi", - "ón" - ], - [ - "De", - "bug" - ], - [ - "Deb", - "ug" - ], - [ - "Se", - "cond" - ], - [ - "Sec", - "ond" - ], - [ - "(", - "!" - ], - [ - "▁C", - "atholic" - ], - [ - "ро", - "ван" - ], - [ - "ров", - "ан" - ], - [ - "рова", - "н" - ], - [ - "р", - "ован" - ], - [ - "le", - "z" - ], - [ - "l", - "ez" - ], - [ - "P", - "a" - ], - [ - "ps", - "on" - ], - [ - "p", - "son" - ], - [ - "▁er", - "ste" - ], - [ - "▁erst", - "e" - ], - [ - "▁ers", - "te" - ], - [ - "▁F", - "u" - ], - [ - "▁l", - "it" - ], - [ - "▁li", - "t" - ], - [ - "▁", - "lit" - ], - [ - "▁S", - "aison" - ], - [ - "▁Sa", - "ison" - ], - [ - "▁H", - "ash" - ], - [ - "▁Ha", - "sh" - ], - [ - "▁Has", - "h" - ], - [ - "▁", - "Hash" - ], - [ - "▁ex", - "em" - ], - [ - "▁пред", - "став" - ], - [ - ")", - "*" - ], - [ - "▁e", - "u" - ], - [ - "▁", - "eu" - ], - [ - "▁", - "│" - ], - [ - "▁g", - "ab" - ], - [ - "▁ga", - "b" - ], - [ - "eta", - "iled" - ], - [ - "Co", - "py" - ], - [ - "C", - "opy" - ], - [ - "▁д", - "ва" - ], - [ - "ev", - "en" - ], - [ - "e", - "ven" - ], - [ - "K", - "ind" - ], - [ - "▁Jack", - "son" - ], - [ - "а", - "л" - ], - [ - "▁con", - "sec" - ], - [ - "▁cons", - "ec" - ], - [ - "▁conse", - "c" - ], - [ - "US", - "ER" - ], - [ - "USE", - "R" - ], - [ - "U", - "SER" - ], - [ - "▁T", - "ok" - ], - [ - "▁To", - "k" - ], - [ - "(", - "." - ], - [ - "▁$", - "|" - ], - [ - "▁T", - "amb" - ], - [ - "▁Ta", - "mb" - ], - [ - "▁Tam", - "b" - ], - [ - "▁Lem", - "ma" - ], - [ - "ha", - "ng" - ], - [ - "han", - "g" - ], - [ - "h", - "ang" - ], - [ - "▁cont", - "ribution" - ], - [ - "▁contrib", - "ution" - ], - [ - "▁contribu", - "tion" - ], - [ - "roll", - "ers" - ], - [ - "rol", - "lers" - ], - [ - "roller", - "s" - ], - [ - "rolle", - "rs" - ], - [ - "▁stud", - "ies" - ], - [ - "▁studi", - "es" - ], - [ - "▁p", - "oi" - ], - [ - "▁po", - "i" - ], - [ - "ge", - "ms" - ], - [ - "gem", - "s" - ], - [ - "g", - "ems" - ], - [ - "▁U", - "P" - ], - [ - "▁", - "UP" - ], - [ - "▁W", - "ol" - ], - [ - "▁Wo", - "l" - ], - [ - ">", - "\"" - ], - [ - "▁f", - "loor" - ], - [ - "▁fl", - "oor" - ], - [ - "▁flo", - "or" - ], - [ - "▁", - "floor" - ], - [ - "▁init", - "ialize" - ], - [ - "▁initial", - "ize" - ], - [ - "▁", - "initialize" - ], - [ - "▁L", - "ew" - ], - [ - "▁Le", - "w" - ], - [ - "ze", - "k" - ], - [ - "z", - "ek" - ], - [ - "ar", - "te" - ], - [ - "art", - "e" - ], - [ - "▁pos", - "itions" - ], - [ - "▁position", - "s" - ], - [ - "▁posit", - "ions" - ], - [ - "▁por", - "tion" - ], - [ - "▁port", - "ion" - ], - [ - "co", - "ver" - ], - [ - "cov", - "er" - ], - [ - "c", - "over" - ], - [ - "w", - "p" - ], - [ - "ов", - "ого" - ], - [ - "ово", - "го" - ], - [ - "о", - "вого" - ], - [ - "▁p", - "iano" - ], - [ - "▁pi", - "ano" - ], - [ - "▁pian", - "o" - ], - [ - "▁pia", - "no" - ], - [ - "▁m", - "etal" - ], - [ - "▁me", - "tal" - ], - [ - "▁met", - "al" - ], - [ - "▁meta", - "l" - ], - [ - "▁s", - "amples" - ], - [ - "▁sam", - "ples" - ], - [ - "▁sample", - "s" - ], - [ - "▁", - "samples" - ], - [ - "▁С", - "ан" - ], - [ - "▁Са", - "н" - ], - [ - "vari", - "able" - ], - [ - "▁ста", - "ть" - ], - [ - "▁inte", - "gers" - ], - [ - "▁integer", - "s" - ], - [ - "Wh", - "ere" - ], - [ - "W", - "here" - ], - [ - "famil", - "y" - ], - [ - "▁n", - "un" - ], - [ - "▁nu", - "n" - ], - [ - "▁in", - "crement" - ], - [ - "▁incre", - "ment" - ], - [ - "▁", - "increment" - ], - [ - "ix", - "ed" - ], - [ - "▁he", - "eft" - ], - [ - "ft", - "e" - ], - [ - "f", - "te" - ], - [ - "▁v", - "il" - ], - [ - "▁vi", - "l" - ], - [ - "▁", - "vil" - ], - [ - "▁ot", - "ros" - ], - [ - "▁otro", - "s" - ], - [ - "Mult", - "imedia" - ], - [ - "Multi", - "media" - ], - [ - "▁Hen", - "ri" - ], - [ - "ad", - "ed" - ], - [ - "ade", - "d" - ], - [ - "a", - "ded" - ], - [ - "ге", - "н" - ], - [ - "г", - "ен" - ], - [ - "▁cap", - "it" - ], - [ - "▁ca", - "pit" - ], - [ - "▁други", - "х" - ], - [ - "is", - "p" - ], - [ - "i", - "sp" - ], - [ - "IT", - "Y" - ], - [ - "I", - "TY" - ], - [ - "▁constraint", - "s" - ], - [ - "▁K", - "irche" - ], - [ - "▁Kir", - "che" - ], - [ - "▁Kirch", - "e" - ], - [ - "fo", - "und" - ], - [ - "f", - "ound" - ], - [ - "ши", - "й" - ], - [ - "▁p", - "ic" - ], - [ - "▁pi", - "c" - ], - [ - "▁", - "pic" - ], - [ - "▁t", - "ou" - ], - [ - "▁to", - "u" - ], - [ - "cre", - "d" - ], - [ - "cr", - "ed" - ], - [ - "c", - "red" - ], - [ - "ро", - "б" - ], - [ - "р", - "об" - ], - [ - "▁M", - "ess" - ], - [ - "▁Me", - "ss" - ], - [ - "▁Mes", - "s" - ], - [ - "▁", - "Mess" - ], - [ - "Jo", - "b" - ], - [ - "J", - "ob" - ], - [ - "▁M", - "ais" - ], - [ - "▁Ma", - "is" - ], - [ - "▁Mai", - "s" - ], - [ - "▁st", - "yles" - ], - [ - "▁style", - "s" - ], - [ - "▁sty", - "les" - ], - [ - "▁", - "styles" - ], - [ - "fa", - "ll" - ], - [ - "fal", - "l" - ], - [ - "f", - "all" - ], - [ - "▁U", - "k" - ], - [ - "▁st", - "reet" - ], - [ - "▁stre", - "et" - ], - [ - "▁", - "street" - ], - [ - "oc", - "cer" - ], - [ - "occ", - "er" - ], - [ - "es", - "en" - ], - [ - "ese", - "n" - ], - [ - "e", - "sen" - ], - [ - "▁col", - "ors" - ], - [ - "▁color", - "s" - ], - [ - "▁", - "colors" - ], - [ - "ce", - "an" - ], - [ - "ю", - "ще" - ], - [ - "con", - "ne" - ], - [ - "conn", - "e" - ], - [ - "c", - "onne" - ], - [ - "▁r", - "atio" - ], - [ - "▁rat", - "io" - ], - [ - "an", - "ton" - ], - [ - "ant", - "on" - ], - [ - "anto", - "n" - ], - [ - "▁F", - "el" - ], - [ - "▁Fe", - "l" - ], - [ - "▁custom", - "er" - ], - [ - "▁cust", - "omer" - ], - [ - "▁", - "customer" - ], - [ - "▁P", - "rix" - ], - [ - "▁Pr", - "ix" - ], - [ - "▁Pri", - "x" - ], - [ - "rá", - "s" - ], - [ - "r", - "ás" - ], - [ - "pr", - "ed" - ], - [ - "pre", - "d" - ], - [ - "p", - "red" - ], - [ - "▁elect", - "ron" - ], - [ - "▁electro", - "n" - ], - [ - "s", - "ym" - ], - [ - "▁ве", - "ли" - ], - [ - "▁", - "вели" - ], - [ - "▁over", - "flow" - ], - [ - "▁", - "overflow" - ], - [ - "▁$", - "[" - ], - [ - "▁P", - "OST" - ], - [ - "▁PO", - "ST" - ], - [ - "▁", - "POST" - ], - [ - "▁C", - "in" - ], - [ - "▁Ci", - "n" - ], - [ - "sc", - "heid" - ], - [ - "sche", - "id" - ], - [ - "(\"", - "/" - ], - [ - "(", - "\"/" - ], - [ - "▁search", - "ing" - ], - [ - "▁pur", - "poses" - ], - [ - "▁purpose", - "s" - ], - [ - "▁arr", - "ived" - ], - [ - "▁arriv", - "ed" - ], - [ - "▁arrive", - "d" - ], - [ - "▁p", - "unt" - ], - [ - "▁pu", - "nt" - ], - [ - "▁pun", - "t" - ], - [ - "▁l", - "ad" - ], - [ - "▁la", - "d" - ], - [ - "▁", - "lad" - ], - [ - "P", - "ython" - ], - [ - "▁le", - "ads" - ], - [ - "▁lead", - "s" - ], - [ - "▁s", - "and" - ], - [ - "▁sa", - "nd" - ], - [ - "▁san", - "d" - ], - [ - "па", - "да" - ], - [ - "пад", - "а" - ], - [ - "▁comm", - "unes" - ], - [ - "▁commun", - "es" - ], - [ - "▁commune", - "s" - ], - [ - "▁CH", - "AP" - ], - [ - "▁c", - "aso" - ], - [ - "▁cas", - "o" - ], - [ - "▁ca", - "so" - ], - [ - "r", - "z" - ], - [ - "▁d", - "w" - ], - [ - "▁", - "dw" - ], - [ - "ac", - "a" - ], - [ - "a", - "ca" - ], - [ - "▁Col", - "umb" - ], - [ - "child", - "ren" - ], - [ - "ê", - "t" - ], - [ - "sch", - "emas" - ], - [ - "sche", - "mas" - ], - [ - "schema", - "s" - ], - [ - "▁instru", - "ctions" - ], - [ - "▁instruction", - "s" - ], - [ - "▁instruct", - "ions" - ], - [ - "▁-", - "\\" - ], - [ - "▁", - "-\\" - ], - [ - "▁Is", - "rael" - ], - [ - "▁Isra", - "el" - ], - [ - "no", - "ści" - ], - [ - "▁об", - "раз" - ], - [ - "▁обра", - "з" - ], - [ - "▁", - "образ" - ], - [ - "▁со", - "вет" - ], - [ - "▁сов", - "ет" - ], - [ - "▁imm", - "agini" - ], - [ - "▁F", - "red" - ], - [ - "▁Fre", - "d" - ], - [ - "▁Fr", - "ed" - ], - [ - "▁G", - "lobal" - ], - [ - "▁Glo", - "bal" - ], - [ - "▁", - "Global" - ], - [ - "▁th", - "ick" - ], - [ - "▁", - "thick" - ], - [ - "▁fue", - "ron" - ], - [ - "▁fuer", - "on" - ], - [ - "▁th", - "rown" - ], - [ - "▁thr", - "own" - ], - [ - "▁throw", - "n" - ], - [ - "▁thro", - "wn" - ], - [ - "▁c", - "lock" - ], - [ - "▁cl", - "ock" - ], - [ - "▁clo", - "ck" - ], - [ - "▁", - "clock" - ], - [ - "en", - "able" - ], - [ - "ena", - "ble" - ], - [ - "''", - "'" - ], - [ - "'", - "''" - ], - [ - "▁S", - "und" - ], - [ - "▁Su", - "nd" - ], - [ - "▁Sun", - "d" - ], - [ - "▁cont", - "empor" - ], - [ - "an", - "swer" - ], - [ - "ans", - "wer" - ], - [ - "▁man", - "ufact" - ], - [ - "▁i", - "o" - ], - [ - "▁", - "io" - ], - [ - "q", - "quad" - ], - [ - "OU", - "T" - ], - [ - "O", - "UT" - ], - [ - "▁L", - "ab" - ], - [ - "▁La", - "b" - ], - [ - "▁", - "Lab" - ], - [ - "▁Z", - "w" - ], - [ - "le", - "gal" - ], - [ - "leg", - "al" - ], - [ - "▁V", - "el" - ], - [ - "▁Ve", - "l" - ], - [ - "▁ra", - "ise" - ], - [ - "▁", - "raise" - ], - [ - "▁de", - "liver" - ], - [ - "▁del", - "iver" - ], - [ - "▁deli", - "ver" - ], - [ - "▁V", - "oir" - ], - [ - "▁Vo", - "ir" - ], - [ - "▁ass", - "umed" - ], - [ - "▁assum", - "ed" - ], - [ - "▁assume", - "d" - ], - [ - "Le", - "t" - ], - [ - "L", - "et" - ], - [ - "ier", - "ten" - ], - [ - "iert", - "en" - ], - [ - "ierte", - "n" - ], - [ - "i", - "erten" - ], - [ - "▁K", - "ong" - ], - [ - "▁Kon", - "g" - ], - [ - "▁Ko", - "ng" - ], - [ - "▁E", - "xp" - ], - [ - "▁Ex", - "p" - ], - [ - "▁", - "Exp" - ], - [ - "▁J", - "ug" - ], - [ - "▁Ju", - "g" - ], - [ - "▁dec", - "laration" - ], - [ - "▁declar", - "ation" - ], - [ - "▁F", - "ish" - ], - [ - "m", - "é" - ], - [ - "▁spe", - "ech" - ], - [ - "▁t", - "ent" - ], - [ - "▁te", - "nt" - ], - [ - "▁ten", - "t" - ], - [ - "▁R", - "oute" - ], - [ - "▁Ro", - "ute" - ], - [ - "▁Rou", - "te" - ], - [ - "▁Rout", - "e" - ], - [ - "▁", - "Route" - ], - [ - "__", - "(" - ], - [ - "_", - "_(" - ], - [ - "▁ré", - "alis" - ], - [ - "▁réal", - "is" - ], - [ - "▁De", - "sign" - ], - [ - "▁Des", - "ign" - ], - [ - "set", - "Text" - ], - [ - "▁St", - "ation" - ], - [ - "▁Stat", - "ion" - ], - [ - "▁Sta", - "tion" - ], - [ - "▁Stati", - "on" - ], - [ - "▁", - "Station" - ], - [ - "ar", - "chy" - ], - [ - "arch", - "y" - ], - [ - "arc", - "hy" - ], - [ - "▁ка", - "то" - ], - [ - "▁d", - "ent" - ], - [ - "▁de", - "nt" - ], - [ - "▁den", - "t" - ], - [ - "▁", - "dent" - ], - [ - "▁K", - "l" - ], - [ - "i", - "ß" - ], - [ - "▁r", - "isk" - ], - [ - "▁ris", - "k" - ], - [ - "▁ri", - "sk" - ], - [ - "▁B", - "road" - ], - [ - "▁Bro", - "ad" - ], - [ - "▁v", - "ectors" - ], - [ - "▁ve", - "ctors" - ], - [ - "▁vector", - "s" - ], - [ - "▁S", - "pec" - ], - [ - "▁Sp", - "ec" - ], - [ - "▁Spe", - "c" - ], - [ - "▁", - "Spec" - ], - [ - "▁ro", - "utes" - ], - [ - "▁route", - "s" - ], - [ - "▁rout", - "es" - ], - [ - "▁rou", - "tes" - ], - [ - "▁", - "routes" - ], - [ - "ym", - "n" - ], - [ - "y", - "mn" - ], - [ - "▁G", - "reg" - ], - [ - "▁Gr", - "eg" - ], - [ - "▁Gre", - "g" - ], - [ - "▁полу", - "чи" - ], - [ - "gi", - "e" - ], - [ - "g", - "ie" - ], - [ - "OR", - "M" - ], - [ - "ве", - "де" - ], - [ - "вед", - "е" - ], - [ - "в", - "еде" - ], - [ - "wa", - "lt" - ], - [ - "wal", - "t" - ], - [ - "w", - "alt" - ], - [ - "▁e", - "fter" - ], - [ - "P", - "tr" - ], - [ - "▁su", - "bt" - ], - [ - "▁sub", - "t" - ], - [ - "▁b", - "irth" - ], - [ - "▁bir", - "th" - ], - [ - "▁dr", - "awn" - ], - [ - "▁draw", - "n" - ], - [ - "▁dra", - "wn" - ], - [ - "me", - "ss" - ], - [ - "mes", - "s" - ], - [ - "m", - "ess" - ], - [ - "мери", - "кан" - ], - [ - "V", - "E" - ], - [ - "▁P", - "ut" - ], - [ - "▁Pu", - "t" - ], - [ - "▁", - "Put" - ], - [ - "▁a", - "sc" - ], - [ - "▁as", - "c" - ], - [ - "▁", - "asc" - ], - [ - "▁f", - "eder" - ], - [ - "▁fe", - "der" - ], - [ - "▁fed", - "er" - ], - [ - "с", - "ли" - ], - [ - "▁P", - "rin" - ], - [ - "▁Pr", - "in" - ], - [ - "▁Pri", - "n" - ], - [ - "▁s", - "tick" - ], - [ - "▁st", - "ick" - ], - [ - "re", - "set" - ], - [ - "res", - "et" - ], - [ - "y", - "k" - ], - [ - "st", - "udio" - ], - [ - "stud", - "io" - ], - [ - "▁St", - "ill" - ], - [ - "Con", - "st" - ], - [ - "Cons", - "t" - ], - [ - "ac", - "ió" - ], - [ - "aci", - "ó" - ], - [ - "a", - "ció" - ], - [ - "▁Portug", - "al" - ], - [ - "▁script", - "s" - ], - [ - "▁scri", - "pts" - ], - [ - "▁", - "scripts" - ], - [ - "und", - "ial" - ], - [ - "▁l", - "ives" - ], - [ - "▁li", - "ves" - ], - [ - "▁live", - "s" - ], - [ - "▁liv", - "es" - ], - [ - "▁s", - "zer" - ], - [ - "▁sz", - "er" - ], - [ - "▁sze", - "r" - ], - [ - "▁est", - "ado" - ], - [ - "▁esta", - "do" - ], - [ - "▁estad", - "o" - ], - [ - "fo", - "lder" - ], - [ - "fol", - "der" - ], - [ - "fold", - "er" - ], - [ - "f", - "older" - ], - [ - "▁communic", - "ation" - ], - [ - "Ro", - "ute" - ], - [ - "Rout", - "e" - ], - [ - "R", - "oute" - ], - [ - "▁sw", - "ift" - ], - [ - "▁", - "swift" - ], - [ - "те", - "н" - ], - [ - "т", - "ен" - ], - [ - "▁k", - "ill" - ], - [ - "▁kil", - "l" - ], - [ - "▁ki", - "ll" - ], - [ - "▁", - "kill" - ], - [ - "▁P", - "R" - ], - [ - "▁", - "PR" - ], - [ - "jo", - "int" - ], - [ - "join", - "t" - ], - [ - "j", - "oint" - ], - [ - "▁ob", - "jective" - ], - [ - "▁object", - "ive" - ], - [ - "▁comp", - "licated" - ], - [ - "▁Ü", - "ber" - ], - [ - "es", - "h" - ], - [ - "e", - "sh" - ], - [ - "p", - "icture" - ], - [ - "ra", - "ine" - ], - [ - "rain", - "e" - ], - [ - "rai", - "ne" - ], - [ - "r", - "aine" - ], - [ - "com", - "put" - ], - [ - "comp", - "ut" - ], - [ - "▁pro", - "port" - ], - [ - "▁pr", - "oport" - ], - [ - "▁prop", - "ort" - ], - [ - "▁propor", - "t" - ], - [ - "og", - "s" - ], - [ - "o", - "gs" - ], - [ - "ül", - "t" - ], - [ - "ü", - "lt" - ], - [ - "▁quant", - "um" - ], - [ - "к", - "ри" - ], - [ - "▁s", - "op" - ], - [ - "▁so", - "p" - ], - [ - "▁lo", - "ops" - ], - [ - "▁loop", - "s" - ], - [ - "▁Re", - "ference" - ], - [ - "▁Refer", - "ence" - ], - [ - "▁", - "Reference" - ], - [ - "▁n", - "ei" - ], - [ - "▁ne", - "i" - ], - [ - "IC", - "E" - ], - [ - "I", - "CE" - ], - [ - "▁v", - "erm" - ], - [ - "▁ver", - "m" - ], - [ - "▁ve", - "rm" - ], - [ - "▁a", - "dj" - ], - [ - "▁ad", - "j" - ], - [ - "▁", - "adj" - ], - [ - "▁per", - "ò" - ], - [ - "▁t", - "rou" - ], - [ - "▁tr", - "ou" - ], - [ - "▁tro", - "u" - ], - [ - "is", - "ions" - ], - [ - "ision", - "s" - ], - [ - "isi", - "ons" - ], - [ - "▁App", - "le" - ], - [ - "▁Ap", - "ple" - ], - [ - "serv", - "able" - ], - [ - "▁B", - "oston" - ], - [ - "▁Bo", - "ston" - ], - [ - "▁Bos", - "ton" - ], - [ - "or", - "et" - ], - [ - "ore", - "t" - ], - [ - "o", - "ret" - ], - [ - "ok", - "s" - ], - [ - "o", - "ks" - ], - [ - "▁k", - "g" - ], - [ - "▁", - "kg" - ], - [ - "def", - "ined" - ], - [ - "define", - "d" - ], - [ - "defin", - "ed" - ], - [ - "d", - "efined" - ], - [ - "pl", - "atform" - ], - [ - "cl", - "er" - ], - [ - "cle", - "r" - ], - [ - "c", - "ler" - ], - [ - "ograph", - "ic" - ], - [ - "ri", - "tt" - ], - [ - "rit", - "t" - ], - [ - "r", - "itt" - ], - [ - "▁d", - "ic" - ], - [ - "▁di", - "c" - ], - [ - "▁", - "dic" - ], - [ - "▁M", - "ond" - ], - [ - "▁Mon", - "d" - ], - [ - "▁Mo", - "nd" - ], - [ - "▁I", - "reland" - ], - [ - "▁Ir", - "eland" - ], - [ - "▁U", - "na" - ], - [ - "▁Un", - "a" - ], - [ - "▁commer", - "cial" - ], - [ - "▁P", - "u" - ], - [ - "D", - "i" - ], - [ - "▁е", - "ё" - ], - [ - "▁pre", - "cis" - ], - [ - "▁prec", - "is" - ], - [ - "на", - "род" - ], - [ - "нар", - "од" - ], - [ - "▁qu", - "atre" - ], - [ - "ust", - "ral" - ], - [ - "ustr", - "al" - ], - [ - "▁d", - "ag" - ], - [ - "▁da", - "g" - ], - [ - "▁", - "dag" - ], - [ - "ig", - "ue" - ], - [ - "igu", - "e" - ], - [ - "i", - "gue" - ], - [ - "▁b", - "urn" - ], - [ - "▁bu", - "rn" - ], - [ - "▁bur", - "n" - ], - [ - "▁", - "burn" - ], - [ - "▁offic", - "er" - ], - [ - "▁office", - "r" - ], - [ - "▁А", - "в" - ], - [ - "▁high", - "light" - ], - [ - "▁", - "highlight" - ], - [ - "▁Supp", - "ose" - ], - [ - "▁Sup", - "pose" - ], - [ - "od", - "i" - ], - [ - "o", - "di" - ], - [ - "serv", - "let" - ], - [ - "▁En", - "cyc" - ], - [ - "▁Enc", - "yc" - ], - [ - "▁R", - "ange" - ], - [ - "▁Ran", - "ge" - ], - [ - "▁Rang", - "e" - ], - [ - "▁", - "Range" - ], - [ - "ти", - "й" - ], - [ - "P", - "lease" - ], - [ - "▁ро", - "ків" - ], - [ - "qu", - "ant" - ], - [ - "qua", - "nt" - ], - [ - "▁f", - "lat" - ], - [ - "▁fl", - "at" - ], - [ - "▁fla", - "t" - ], - [ - "▁", - "flat" - ], - [ - "▁Ré", - "férence" - ], - [ - "сле", - "дова" - ], - [ - "след", - "ова" - ], - [ - "ro", - "le" - ], - [ - "rol", - "e" - ], - [ - "r", - "ole" - ], - [ - "▁d", - "iesen" - ], - [ - "▁di", - "esen" - ], - [ - "▁die", - "sen" - ], - [ - "▁dies", - "en" - ], - [ - "▁diese", - "n" - ], - [ - "}}", - "(" - ], - [ - "}", - "}(" - ], - [ - "▁Ind", - "ust" - ], - [ - "▁nú", - "mer" - ], - [ - "▁\"", - ";" - ], - [ - "▁", - "\";" - ], - [ - "lu", - "s" - ], - [ - "l", - "us" - ], - [ - "ô", - "le" - ], - [ - "▁z", - "m" - ], - [ - "▁", - "zm" - ], - [ - "de", - "g" - ], - [ - "d", - "eg" - ], - [ - "▁r", - "ough" - ], - [ - "▁ro", - "ugh" - ], - [ - "▁rou", - "gh" - ], - [ - "▁", - "rough" - ], - [ - "In", - "v" - ], - [ - "▁h", - "ur" - ], - [ - "▁hu", - "r" - ], - [ - "▁R", - "ess" - ], - [ - "▁Re", - "ss" - ], - [ - "▁Res", - "s" - ], - [ - "ch", - "s" - ], - [ - "c", - "hs" - ], - [ - "▁turn", - "s" - ], - [ - "▁tur", - "ns" - ], - [ - "ne", - "ro" - ], - [ - "ner", - "o" - ], - [ - "n", - "ero" - ], - [ - "function", - "s" - ], - [ - "fun", - "ctions" - ], - [ - "ал", - "и" - ], - [ - "а", - "ли" - ], - [ - "▁hab", - "itants" - ], - [ - "▁habit", - "ants" - ], - [ - "а", - "т" - ], - [ - "iss", - "ues" - ], - [ - "issue", - "s" - ], - [ - "▁h", - "uge" - ], - [ - "▁hu", - "ge" - ], - [ - "Util", - "s" - ], - [ - "▁S", - "at" - ], - [ - "▁Sa", - "t" - ], - [ - "▁го", - "судар" - ], - [ - "▁co", - "ast" - ], - [ - "sh", - "ape" - ], - [ - "sha", - "pe" - ], - [ - "s", - "hape" - ], - [ - "L", - "C" - ], - [ - "▁log", - "ging" - ], - [ - "▁", - "logging" - ], - [ - "en", - "dor" - ], - [ - "end", - "or" - ], - [ - "endo", - "r" - ], - [ - "▁l", - "ies" - ], - [ - "▁li", - "es" - ], - [ - "▁lie", - "s" - ], - [ - "▁", - "lies" - ], - [ - "▁d", - "ifer" - ], - [ - "▁di", - "fer" - ], - [ - "▁dif", - "er" - ], - [ - "▁crit", - "ical" - ], - [ - "▁critic", - "al" - ], - [ - "X", - "T" - ], - [ - "ми", - "на" - ], - [ - "мин", - "а" - ], - [ - "an", - "sk" - ], - [ - "ans", - "k" - ], - [ - "Result", - "s" - ], - [ - "k", - "c" - ], - [ - "ivers", - "e" - ], - [ - "iver", - "se" - ], - [ - "i", - "verse" - ], - [ - "EX", - "T" - ], - [ - "E", - "XT" - ], - [ - "AL", - "SE" - ], - [ - "▁v", - "ál" - ], - [ - "▁vá", - "l" - ], - [ - "P", - "i" - ], - [ - "comp", - "ile" - ], - [ - "hel", - "lo" - ], - [ - "hell", - "o" - ], - [ - "h", - "ello" - ], - [ - "▁чем", - "пи" - ], - [ - "▁It", - "alia" - ], - [ - "▁Ital", - "ia" - ], - [ - "▁", - "Italia" - ], - [ - "ко", - "ло" - ], - [ - "кол", - "о" - ], - [ - "к", - "оло" - ], - [ - "▁ed", - "ition" - ], - [ - "▁edit", - "ion" - ], - [ - "gr", - "und" - ], - [ - "gru", - "nd" - ], - [ - "g", - "rund" - ], - [ - "▁data", - "frame" - ], - [ - "▁Follow", - "ing" - ], - [ - "re", - "ib" - ], - [ - "rei", - "b" - ], - [ - "▁J", - "eff" - ], - [ - "▁Je", - "ff" - ], - [ - "▁citt", - "à" - ], - [ - "IT", - "able" - ], - [ - "I", - "Table" - ], - [ - "▁$", - "(\\" - ], - [ - "▁$(", - "\\" - ], - [ - "▁redu", - "ced" - ], - [ - "▁reduce", - "d" - ], - [ - "ob", - "il" - ], - [ - "obi", - "l" - ], - [ - "o", - "bil" - ], - [ - "▁any", - "where" - ], - [ - "'", - "(" - ], - [ - "▁p", - "hr" - ], - [ - "▁ph", - "r" - ], - [ - "▁", - "phr" - ], - [ - "▁K", - "h" - ], - [ - "▁F", - "rame" - ], - [ - "▁Fr", - "ame" - ], - [ - "▁Fra", - "me" - ], - [ - "▁", - "Frame" - ], - [ - "▁man", - "ual" - ], - [ - "▁", - "manual" - ], - [ - "▁c", - "ra" - ], - [ - "▁cr", - "a" - ], - [ - "▁", - "cra" - ], - [ - "▁V", - "S" - ], - [ - "▁", - "VS" - ], - [ - "%", - "=" - ], - [ - "Instance", - "State" - ], - [ - "▁б", - "ра" - ], - [ - "▁", - "бра" - ], - [ - "▁D", - "rag" - ], - [ - "▁Dr", - "ag" - ], - [ - "▁Dra", - "g" - ], - [ - "▁", - "Drag" - ], - [ - "▁H", - "err" - ], - [ - "▁He", - "rr" - ], - [ - "▁Her", - "r" - ], - [ - "▁г", - "у" - ], - [ - "▁", - "гу" - ], - [ - "▁m", - "ús" - ], - [ - "To", - "ol" - ], - [ - "T", - "ool" - ], - [ - "▁P", - "rivate" - ], - [ - "▁Priv", - "ate" - ], - [ - "▁", - "Private" - ], - [ - "▁s", - "ynchron" - ], - [ - "▁syn", - "chron" - ], - [ - "ir", - "ation" - ], - [ - "ira", - "tion" - ], - [ - "irat", - "ion" - ], - [ - "▁о", - "бо" - ], - [ - "▁об", - "о" - ], - [ - "▁typ", - "ically" - ], - [ - "▁typical", - "ly" - ], - [ - "▁imp", - "licit" - ], - [ - "or", - "ient" - ], - [ - "ori", - "ent" - ], - [ - "orie", - "nt" - ], - [ - "▁t", - "imer" - ], - [ - "▁time", - "r" - ], - [ - "▁tim", - "er" - ], - [ - "▁ti", - "mer" - ], - [ - "▁", - "timer" - ], - [ - "▁kön", - "nen" - ], - [ - "ie", - "st" - ], - [ - "ies", - "t" - ], - [ - "i", - "est" - ], - [ - "ra", - "id" - ], - [ - "rai", - "d" - ], - [ - "▁expression", - "s" - ], - [ - "▁express", - "ions" - ], - [ - "▁expr", - "essions" - ], - [ - "▁a", - "im" - ], - [ - "▁ai", - "m" - ], - [ - "▁s", - "tre" - ], - [ - "▁st", - "re" - ], - [ - "▁str", - "e" - ], - [ - "▁", - "stre" - ], - [ - "▁w", - "rap" - ], - [ - "▁wr", - "ap" - ], - [ - "▁wra", - "p" - ], - [ - "▁", - "wrap" - ], - [ - "▁B", - "art" - ], - [ - "▁Bar", - "t" - ], - [ - "▁Ba", - "rt" - ], - [ - "▁b", - "ron" - ], - [ - "▁br", - "on" - ], - [ - "▁bro", - "n" - ], - [ - "▁key", - "board" - ], - [ - "po", - "w" - ], - [ - "p", - "ow" - ], - [ - "▁gru", - "po" - ], - [ - "▁grup", - "o" - ], - [ - "▁ре", - "зу" - ], - [ - "▁prof", - "essor" - ], - [ - "▁profess", - "or" - ], - [ - "▁H", - "ead" - ], - [ - "▁He", - "ad" - ], - [ - "▁", - "Head" - ], - [ - "но", - "ю" - ], - [ - "min", - "us" - ], - [ - "m", - "inus" - ], - [ - "▁Mich", - "el" - ], - [ - "▁Mic", - "hel" - ], - [ - "NO", - "T" - ], - [ - "N", - "OT" - ], - [ - "mo", - "r" - ], - [ - "m", - "or" - ], - [ - "]", - "}" - ], - [ - "wide", - "hat" - ], - [ - "ar", - "is" - ], - [ - "ari", - "s" - ], - [ - "a", - "ris" - ], - [ - "тера", - "тура" - ], - [ - "de", - "fn" - ], - [ - "def", - "n" - ], - [ - "is", - "trz" - ], - [ - "ist", - "rz" - ], - [ - "istr", - "z" - ], - [ - "▁t", - "anto" - ], - [ - "▁tan", - "to" - ], - [ - "▁tant", - "o" - ], - [ - "▁P", - "ow" - ], - [ - "▁Po", - "w" - ], - [ - "▁ind", - "icate" - ], - [ - "▁indic", - "ate" - ], - [ - "▁W", - "inter" - ], - [ - "▁Win", - "ter" - ], - [ - "res", - "hold" - ], - [ - "resh", - "old" - ], - [ - "рі", - "в" - ], - [ - "р", - "ів" - ], - [ - "▁`", - "(" - ], - [ - "▁o", - "wner" - ], - [ - "▁own", - "er" - ], - [ - "▁ow", - "ner" - ], - [ - "▁", - "owner" - ], - [ - "▁d", - "isp" - ], - [ - "▁di", - "sp" - ], - [ - "▁dis", - "p" - ], - [ - "▁к", - "ри" - ], - [ - "▁", - "кри" - ], - [ - "ме", - "т" - ], - [ - "м", - "ет" - ], - [ - "мен", - "т" - ], - [ - "м", - "ент" - ], - [ - "re", - "port" - ], - [ - "rep", - "ort" - ], - [ - "repo", - "rt" - ], - [ - "re", - "quire" - ], - [ - "▁v", - "oy" - ], - [ - "▁vo", - "y" - ], - [ - "▁", - "voy" - ], - [ - "▁A", - "P" - ], - [ - "▁", - "AP" - ], - [ - "▁Esp", - "aña" - ], - [ - "▁Españ", - "a" - ], - [ - "▁S", - "ão" - ], - [ - "j", - "är" - ], - [ - "No", - "n" - ], - [ - "N", - "on" - ], - [ - "Li", - "brary" - ], - [ - "L", - "ibrary" - ], - [ - "ich", - "ten" - ], - [ - "icht", - "en" - ], - [ - "ichte", - "n" - ], - [ - "i", - "chten" - ], - [ - "▁struct", - "ures" - ], - [ - "▁structure", - "s" - ], - [ - "▁m", - "uy" - ], - [ - "▁mu", - "y" - ], - [ - "ár", - "io" - ], - [ - "á", - "rio" - ], - [ - "▁cert", - "ificate" - ], - [ - "▁certific", - "ate" - ], - [ - "чно", - "го" - ], - [ - "ч", - "ного" - ], - [ - "▁prov", - "ince" - ], - [ - "▁provin", - "ce" - ], - [ - "pa", - "ges" - ], - [ - "page", - "s" - ], - [ - "pag", - "es" - ], - [ - "p", - "ages" - ], - [ - "da", - "l" - ], - [ - "d", - "al" - ], - [ - "▁Fre", - "der" - ], - [ - "▁Fr", - "eder" - ], - [ - "▁Fred", - "er" - ], - [ - "ь", - "е" - ], - [ - "Exec", - "ute" - ], - [ - "▁an", - "cient" - ], - [ - "▁anci", - "ent" - ], - [ - "▁anc", - "ient" - ], - [ - "▁ancien", - "t" - ], - [ - "▁fil", - "ms" - ], - [ - "▁film", - "s" - ], - [ - "▁Al", - "fred" - ], - [ - "▁Alf", - "red" - ], - [ - "Aut", - "o" - ], - [ - "A", - "uto" - ], - [ - "▁a", - "tom" - ], - [ - "▁at", - "om" - ], - [ - "▁", - "atom" - ], - [ - "▁e", - "ll" - ], - [ - "▁el", - "l" - ], - [ - "▁", - "ell" - ], - [ - "▁H", - "arr" - ], - [ - "▁Har", - "r" - ], - [ - "▁Ha", - "rr" - ], - [ - "й", - "н" - ], - [ - "▁\"", - "#" - ], - [ - "▁n", - "acional" - ], - [ - "▁nac", - "ional" - ], - [ - "▁neigh", - "bor" - ], - [ - "▁neighb", - "or" - ], - [ - "сту", - "па" - ], - [ - "ступ", - "а" - ], - [ - "▁w", - "it" - ], - [ - "Po", - "p" - ], - [ - "P", - "op" - ], - [ - "▁G", - "reek" - ], - [ - "▁Gre", - "ek" - ], - [ - "▁Gree", - "k" - ], - [ - "▁re", - "peat" - ], - [ - "▁repe", - "at" - ], - [ - "▁", - "repeat" - ], - [ - "ba", - "d" - ], - [ - "b", - "ad" - ], - [ - "▁S", - "C" - ], - [ - "▁", - "SC" - ], - [ - "▁Date", - "Time" - ], - [ - "▁", - "DateTime" - ], - [ - "ш", - "ти" - ], - [ - "▁W", - "H" - ], - [ - "▁", - "WH" - ], - [ - "▁пра", - "ви" - ], - [ - "▁прав", - "и" - ], - [ - "▁", - "прави" - ], - [ - "▁Т", - "и" - ], - [ - "▁s", - "aison" - ], - [ - "▁sa", - "ison" - ], - [ - "▁H", - "art" - ], - [ - "▁Har", - "t" - ], - [ - "▁Ha", - "rt" - ], - [ - "direct", - "ory" - ], - [ - "d", - "irectory" - ], - [ - "ua", - "n" - ], - [ - "u", - "an" - ], - [ - "no", - "rm" - ], - [ - "nor", - "m" - ], - [ - "n", - "orm" - ], - [ - "▁Phil", - "ipp" - ], - [ - "▁Phili", - "pp" - ], - [ - "▁Philip", - "p" - ], - [ - "▁su", - "spect" - ], - [ - "▁sus", - "pect" - ], - [ - "▁susp", - "ect" - ], - [ - "▁an", - "no" - ], - [ - "▁ann", - "o" - ], - [ - "▁", - "anno" - ], - [ - "b", - "c" - ], - [ - "с", - "ла" - ], - [ - "$", - "(" - ], - [ - "▁be", - "find" - ], - [ - "▁bef", - "ind" - ], - [ - "oc", - "s" - ], - [ - "o", - "cs" - ], - [ - "la", - "test" - ], - [ - "lat", - "est" - ], - [ - "late", - "st" - ], - [ - ";\"", - ">" - ], - [ - ";", - "\">" - ], - [ - "▁after", - "wards" - ], - [ - "PU", - "T" - ], - [ - "P", - "UT" - ], - [ - "▁j", - "a" - ], - [ - "▁", - "ja" - ], - [ - "▁H", - "il" - ], - [ - "▁Hi", - "l" - ], - [ - "y", - "z" - ], - [ - "▁B", - "our" - ], - [ - "▁Bo", - "ur" - ], - [ - "▁Bou", - "r" - ], - [ - "▁la", - "id" - ], - [ - "▁Д", - "же" - ], - [ - "▁Дж", - "е" - ], - [ - "pi", - "e" - ], - [ - "p", - "ie" - ], - [ - "w", - "atch" - ], - [ - "▁E", - "q" - ], - [ - "▁", - "Eq" - ], - [ - "cont", - "act" - ], - [ - "ib", - "er" - ], - [ - "ibe", - "r" - ], - [ - "i", - "ber" - ], - [ - "check", - "box" - ], - [ - "▁esp", - "añ" - ], - [ - "▁espa", - "ñ" - ], - [ - "an", - "se" - ], - [ - "ans", - "e" - ], - [ - "▁ш", - "ко" - ], - [ - "▁", - "шко" - ], - [ - "ef", - "f" - ], - [ - "e", - "ff" - ], - [ - "xx", - "x" - ], - [ - "x", - "xx" - ], - [ - "▁G", - "ET" - ], - [ - "▁", - "GET" - ], - [ - "▁l", - "ov" - ], - [ - "▁lo", - "v" - ], - [ - "▁", - "lov" - ], - [ - "it", - "ute" - ], - [ - "itu", - "te" - ], - [ - "itut", - "e" - ], - [ - "ze", - "ch" - ], - [ - "zec", - "h" - ], - [ - "z", - "ech" - ], - [ - "ter", - "e" - ], - [ - "te", - "re" - ], - [ - "t", - "ere" - ], - [ - "▁p", - "urs" - ], - [ - "▁pu", - "rs" - ], - [ - "▁pur", - "s" - ], - [ - "ke", - "ns" - ], - [ - "ken", - "s" - ], - [ - "k", - "ens" - ], - [ - "ian", - "te" - ], - [ - "i", - "ante" - ], - [ - "▁F", - "ree" - ], - [ - "▁Fre", - "e" - ], - [ - "▁Fr", - "ee" - ], - [ - "▁", - "Free" - ], - [ - "▁ор", - "гани" - ], - [ - "▁орган", - "и" - ], - [ - "kre", - "is" - ], - [ - "▁{", - ":" - ], - [ - "▁", - "{:" - ], - [ - "sh", - "ared" - ], - [ - "share", - "d" - ], - [ - "sha", - "red" - ], - [ - "▁G", - "raph" - ], - [ - "▁Gr", - "aph" - ], - [ - "▁Gra", - "ph" - ], - [ - "▁", - "Graph" - ], - [ - "▁conne", - "ctions" - ], - [ - "▁connection", - "s" - ], - [ - "▁connect", - "ions" - ], - [ - "▁D", - "OM" - ], - [ - "▁DO", - "M" - ], - [ - "▁", - "DOM" - ], - [ - "▁C", - "art" - ], - [ - "▁Car", - "t" - ], - [ - "▁Ca", - "rt" - ], - [ - "▁", - "Cart" - ], - [ - "ss", - "on" - ], - [ - "s", - "son" - ], - [ - "▁H", - "amilton" - ], - [ - "те", - "ли" - ], - [ - "тел", - "и" - ], - [ - "▁r", - "estaur" - ], - [ - "▁rest", - "aur" - ], - [ - "▁resta", - "ur" - ], - [ - "Re", - "sol" - ], - [ - "Res", - "ol" - ], - [ - "Dr", - "iver" - ], - [ - "D", - "river" - ], - [ - "▁en", - "f" - ], - [ - "▁", - "enf" - ], - [ - "ED", - "IT" - ], - [ - "▁p", - "rev" - ], - [ - "▁pr", - "ev" - ], - [ - "▁pre", - "v" - ], - [ - "▁", - "prev" - ], - [ - "▁i", - "k" - ], - [ - "▁", - "ik" - ], - [ - "▁s", - "ă" - ], - [ - "j", - "ö" - ], - [ - "▁С", - "ССР" - ], - [ - "▁col", - "our" - ], - [ - "ch", - "ten" - ], - [ - "cht", - "en" - ], - [ - "chte", - "n" - ], - [ - "▁e", - "stad" - ], - [ - "▁est", - "ad" - ], - [ - "▁esta", - "d" - ], - [ - "in", - "ois" - ], - [ - "ino", - "is" - ], - [ - "▁con", - "fir" - ], - [ - "▁conf", - "ir" - ], - [ - "▁v", - "é" - ], - [ - "▁", - "vé" - ], - [ - "▁C", - "es" - ], - [ - "▁Ce", - "s" - ], - [ - "▁N", - "ever" - ], - [ - "▁Ne", - "ver" - ], - [ - "▁Nev", - "er" - ], - [ - "om", - "er" - ], - [ - "ome", - "r" - ], - [ - "o", - "mer" - ], - [ - "ж", - "да" - ], - [ - "с", - "лу" - ], - [ - "че", - "ния" - ], - [ - "dl", - "l" - ], - [ - "d", - "ll" - ], - [ - "▁y", - "outh" - ], - [ - "▁you", - "th" - ], - [ - "▁yo", - "uth" - ], - [ - "em", - "en" - ], - [ - "eme", - "n" - ], - [ - "e", - "men" - ], - [ - "▁stud", - "ied" - ], - [ - "▁studi", - "ed" - ], - [ - "▁K", - "il" - ], - [ - "▁Ki", - "l" - ], - [ - "ci", - "on" - ], - [ - "cio", - "n" - ], - [ - "c", - "ion" - ], - [ - "▁n", - "avig" - ], - [ - "▁nav", - "ig" - ], - [ - "re", - "quired" - ], - [ - "require", - "d" - ], - [ - "orith", - "ms" - ], - [ - "orithm", - "s" - ], - [ - "il", - "or" - ], - [ - "ilo", - "r" - ], - [ - "i", - "lor" - ], - [ - "▁Deutsch", - "en" - ], - [ - "▁Deutsche", - "n" - ], - [ - "▁person", - "s" - ], - [ - "▁pers", - "ons" - ], - [ - "▁Barcel", - "ona" - ], - [ - "▁form", - "ation" - ], - [ - "▁format", - "ion" - ], - [ - "▁forma", - "tion" - ], - [ - "▁", - "formation" - ], - [ - "ab", - "ei" - ], - [ - "abe", - "i" - ], - [ - "a", - "bei" - ], - [ - "▁про", - "тив" - ], - [ - "▁проти", - "в" - ], - [ - "Eng", - "ine" - ], - [ - "ON", - "E" - ], - [ - "O", - "NE" - ], - [ - "og", - "rá" - ], - [ - "Ca", - "p" - ], - [ - "C", - "ap" - ], - [ - "ri", - "r" - ], - [ - "r", - "ir" - ], - [ - "▁g", - "ate" - ], - [ - "▁ga", - "te" - ], - [ - "▁gat", - "e" - ], - [ - "▁", - "gate" - ], - [ - "or", - "ation" - ], - [ - "ora", - "tion" - ], - [ - "ma", - "ven" - ], - [ - "m", - "aven" - ], - [ - "▁comb", - "ined" - ], - [ - "▁combin", - "ed" - ], - [ - "▁combine", - "d" - ], - [ - "▁at", - "tr" - ], - [ - "▁att", - "r" - ], - [ - "▁", - "attr" - ], - [ - "▁h", - "ook" - ], - [ - "▁ho", - "ok" - ], - [ - "▁", - "hook" - ], - [ - "▁которы", - "й" - ], - [ - "▁ser", - "vers" - ], - [ - "▁server", - "s" - ], - [ - "▁serv", - "ers" - ], - [ - "▁serve", - "rs" - ], - [ - "uct", - "ure" - ], - [ - "же", - "ння" - ], - [ - "жен", - "ня" - ], - [ - "t", - "v" - ], - [ - "▁re", - "q" - ], - [ - "▁r", - "eq" - ], - [ - "▁", - "req" - ], - [ - "ja", - "l" - ], - [ - "j", - "al" - ], - [ - "▁loc", - "ally" - ], - [ - "▁local", - "ly" - ], - [ - "}}", - "{\\" - ], - [ - "}}{", - "\\" - ], - [ - "}", - "}{\\" - ], - [ - "B", - "r" - ], - [ - "▁H", - "ier" - ], - [ - "▁Hi", - "er" - ], - [ - "мо", - "р" - ], - [ - "м", - "ор" - ], - [ - "▁a", - "part" - ], - [ - "▁ap", - "art" - ], - [ - "▁apar", - "t" - ], - [ - "\"]", - "," - ], - [ - "\"", - "]," - ], - [ - "▁%>", - "%" - ], - [ - "▁z", - "usammen" - ], - [ - "▁zus", - "ammen" - ], - [ - "▁ident", - "ify" - ], - [ - "▁Al", - "tern" - ], - [ - "▁Alt", - "ern" - ], - [ - "▁Alter", - "n" - ], - [ - "▁б", - "ро" - ], - [ - "▁", - "бро" - ], - [ - "▁ц", - "и" - ], - [ - "▁", - "ци" - ], - [ - "g", - "h" - ], - [ - "▁T", - "en" - ], - [ - "▁Te", - "n" - ], - [ - "R", - "S" - ], - [ - "фор", - "ма" - ], - [ - "▁n", - "elle" - ], - [ - "▁ne", - "lle" - ], - [ - "▁nel", - "le" - ], - [ - "▁nell", - "e" - ], - [ - "▁", - "nelle" - ], - [ - "▁H", - "in" - ], - [ - "▁Hi", - "n" - ], - [ - "ound", - "ing" - ], - [ - "oun", - "ding" - ], - [ - "▁re", - "prés" - ], - [ - "▁rep", - "rés" - ], - [ - "▁repr", - "és" - ], - [ - "ap", - "h" - ], - [ - "a", - "ph" - ], - [ - "▁[", - "\\" - ], - [ - "▁", - "[\\" - ], - [ - "▁S", - "ports" - ], - [ - "▁Sport", - "s" - ], - [ - "ра", - "л" - ], - [ - "р", - "ал" - ], - [ - "▁t", - "hre" - ], - [ - "▁th", - "re" - ], - [ - "▁thr", - "e" - ], - [ - "▁p", - "rin" - ], - [ - "▁pr", - "in" - ], - [ - "▁pri", - "n" - ], - [ - "▁El", - "iz" - ], - [ - "▁Eli", - "z" - ], - [ - "▁F", - "our" - ], - [ - "▁Fou", - "r" - ], - [ - "▁Fo", - "ur" - ], - [ - "▁soci", - "ety" - ], - [ - "▁soc", - "iety" - ], - [ - "Trans", - "action" - ], - [ - "▁v", - "eg" - ], - [ - "▁ve", - "g" - ], - [ - "▁", - "veg" - ], - [ - "▁sch", - "ools" - ], - [ - "▁school", - "s" - ], - [ - "▁over", - "all" - ], - [ - "▁t", - "ail" - ], - [ - "▁ta", - "il" - ], - [ - "▁", - "tail" - ], - [ - "üb", - "er" - ], - [ - "ü", - "ber" - ], - [ - "▁S", - "ov" - ], - [ - "▁So", - "v" - ], - [ - "▁С", - "ер" - ], - [ - "▁Се", - "р" - ], - [ - "▁r", - "app" - ], - [ - "▁ra", - "pp" - ], - [ - "▁rap", - "p" - ], - [ - "▁tra", - "ffic" - ], - [ - "qu", - "estion" - ], - [ - "quest", - "ion" - ], - [ - "ques", - "tion" - ], - [ - "▁en", - "viron" - ], - [ - "▁envi", - "ron" - ], - [ - "▁", - "environ" - ], - [ - "ate", - "ien" - ], - [ - "ic", - "us" - ], - [ - "i", - "cus" - ], - [ - "▁n", - "arrow" - ], - [ - "▁narr", - "ow" - ], - [ - "▁nar", - "row" - ], - [ - "▁p", - "ray" - ], - [ - "▁pr", - "ay" - ], - [ - "▁pra", - "y" - ], - [ - "▁B", - "ou" - ], - [ - "▁Bo", - "u" - ], - [ - "▁C", - "lient" - ], - [ - "▁Cl", - "ient" - ], - [ - "▁", - "Client" - ], - [ - "ab", - "l" - ], - [ - "a", - "bl" - ], - [ - "▁Aud", - "iod" - ], - [ - "▁Audio", - "d" - ], - [ - "▁n", - "pm" - ], - [ - "▁np", - "m" - ], - [ - "▁", - "npm" - ], - [ - "▁Col", - "umn" - ], - [ - "▁", - "Column" - ], - [ - "▁G", - "ames" - ], - [ - "▁Game", - "s" - ], - [ - "▁Ga", - "mes" - ], - [ - "▁Gam", - "es" - ], - [ - "av", - "er" - ], - [ - "ave", - "r" - ], - [ - "a", - "ver" - ], - [ - "ony", - "mes" - ], - [ - "onym", - "es" - ], - [ - "onyme", - "s" - ], - [ - "▁По", - "сле" - ], - [ - "n", - "ą" - ], - [ - "▁N", - "u" - ], - [ - "▁D", - "ick" - ], - [ - "▁Di", - "ck" - ], - [ - "▁Dic", - "k" - ], - [ - "▁t", - "ensor" - ], - [ - "▁tens", - "or" - ], - [ - "▁", - "tensor" - ], - [ - "▁@", - "\"" - ], - [ - "▁", - "@\"" - ], - [ - "v", - "é" - ], - [ - "I", - "con" - ], - [ - "▁по", - "да" - ], - [ - "▁под", - "а" - ], - [ - "▁", - "пода" - ], - [ - "▁G", - "on" - ], - [ - "▁Go", - "n" - ], - [ - "/)", - "." - ], - [ - "/", - ")." - ], - [ - "is", - "tra" - ], - [ - "ist", - "ra" - ], - [ - "istr", - "a" - ], - [ - "i", - "stra" - ], - [ - "▁Audiod", - "ateien" - ], - [ - "De", - "lete" - ], - [ - "Del", - "ete" - ], - [ - "}}", - "}" - ], - [ - "}", - "}}" - ], - [ - "▁j", - "ump" - ], - [ - "▁ju", - "mp" - ], - [ - "▁О", - "б" - ], - [ - "▁princi", - "ple" - ], - [ - "▁princip", - "le" - ], - [ - "▁Ét", - "ats" - ], - [ - "ok", - "ed" - ], - [ - "oke", - "d" - ], - [ - "o", - "ked" - ], - [ - "▁В", - "ла" - ], - [ - "Inter", - "val" - ], - [ - "▁s", - "au" - ], - [ - "▁sa", - "u" - ], - [ - "en", - "code" - ], - [ - "enc", - "ode" - ], - [ - "▁p", - "on" - ], - [ - "▁po", - "n" - ], - [ - "▁", - "pon" - ], - [ - "cat", - "ch" - ], - [ - "c", - "atch" - ], - [ - "▁t", - "iem" - ], - [ - "▁ti", - "em" - ], - [ - "▁tie", - "m" - ], - [ - "▁G", - "ust" - ], - [ - "▁Gu", - "st" - ], - [ - "M", - "C" - ], - [ - "lim", - "its" - ], - [ - "limit", - "s" - ], - [ - "▁ke", - "eping" - ], - [ - "▁keep", - "ing" - ], - [ - "▁s", - "ongs" - ], - [ - "▁son", - "gs" - ], - [ - "▁song", - "s" - ], - [ - "▁ав", - "гу" - ], - [ - "▁рай", - "он" - ], - [ - "▁райо", - "н" - ], - [ - "▁not", - "ification" - ], - [ - "▁", - "notification" - ], - [ - "▁off", - "ered" - ], - [ - "▁offer", - "ed" - ], - [ - "Co", - "r" - ], - [ - "C", - "or" - ], - [ - "▁sh", - "ut" - ], - [ - "error", - "s" - ], - [ - "err", - "ors" - ], - [ - "▁E", - "N" - ], - [ - "▁", - "EN" - ], - [ - "▁lat", - "ach" - ], - [ - "▁sel", - "bst" - ], - [ - "▁check", - "box" - ], - [ - "▁", - "checkbox" - ], - [ - "▁c", - "ool" - ], - [ - "▁co", - "ol" - ], - [ - "▁f", - "actory" - ], - [ - "▁fact", - "ory" - ], - [ - "▁factor", - "y" - ], - [ - "▁", - "factory" - ], - [ - "▁pa", - "id" - ], - [ - "dim", - "ensional" - ], - [ - "ni", - "ej" - ], - [ - "nie", - "j" - ], - [ - "n", - "iej" - ], - [ - "pt", - "on" - ], - [ - "pto", - "n" - ], - [ - "p", - "ton" - ], - [ - "▁p", - "in" - ], - [ - "▁pi", - "n" - ], - [ - "▁", - "pin" - ], - [ - "ak", - "ed" - ], - [ - "ake", - "d" - ], - [ - "a", - "ked" - ], - [ - "▁re", - "li" - ], - [ - "▁r", - "eli" - ], - [ - "▁rel", - "i" - ], - [ - "▁T", - "aylor" - ], - [ - "▁S", - "omething" - ], - [ - "▁Some", - "thing" - ], - [ - "▁Som", - "ething" - ], - [ - "▁", - "Something" - ], - [ - "im", - "um" - ], - [ - "▁V", - "in" - ], - [ - "▁Vi", - "n" - ], - [ - "▁iter", - "ation" - ], - [ - "Fin", - "d" - ], - [ - "Fi", - "nd" - ], - [ - "F", - "ind" - ], - [ - "ко", - "ви" - ], - [ - "ков", - "и" - ], - [ - "к", - "ови" - ], - [ - "▁bo", - "ys" - ], - [ - "▁boy", - "s" - ], - [ - "▁Sim", - "ple" - ], - [ - "▁", - "Simple" - ], - [ - "▁C", - "rist" - ], - [ - "▁Cr", - "ist" - ], - [ - "▁Cris", - "t" - ], - [ - "▁W", - "as" - ], - [ - "▁Wa", - "s" - ], - [ - "ân", - "d" - ], - [ - "â", - "nd" - ], - [ - "▁V", - "a" - ], - [ - "▁т", - "ра" - ], - [ - "▁", - "тра" - ], - [ - "▁dest", - "ination" - ], - [ - "▁destin", - "ation" - ], - [ - "▁", - "destination" - ], - [ - "li", - "mp" - ], - [ - "lim", - "p" - ], - [ - "l", - "imp" - ], - [ - "▁K", - "at" - ], - [ - "▁Ka", - "t" - ], - [ - "wor", - "th" - ], - [ - "wort", - "h" - ], - [ - "w", - "orth" - ], - [ - "▁K", - "or" - ], - [ - "▁Ko", - "r" - ], - [ - "i", - "ção" - ], - [ - "=", - "`" - ], - [ - "▁fair", - "ly" - ], - [ - "fall", - "s" - ], - [ - "fal", - "ls" - ], - [ - "f", - "alls" - ], - [ - "▁re", - "ject" - ], - [ - "▁d", - "ream" - ], - [ - "▁dre", - "am" - ], - [ - "be", - "ll" - ], - [ - "bel", - "l" - ], - [ - "b", - "ell" - ], - [ - "▁t", - "oute" - ], - [ - "▁to", - "ute" - ], - [ - "▁tout", - "e" - ], - [ - "▁tou", - "te" - ], - [ - "▁$", - "\\{" - ], - [ - "▁$\\", - "{" - ], - [ - "▁st", - "one" - ], - [ - "▁sto", - "ne" - ], - [ - "▁", - "stone" - ], - [ - "▁prote", - "ct" - ], - [ - "▁prot", - "ect" - ], - [ - "▁ex", - "cell" - ], - [ - "▁exc", - "ell" - ], - [ - "▁excel", - "l" - ], - [ - "▁Me", - "xico" - ], - [ - "▁Mex", - "ico" - ], - [ - "▁d", - "ash" - ], - [ - "▁da", - "sh" - ], - [ - "▁das", - "h" - ], - [ - "▁", - "dash" - ], - [ - "▁f", - "ault" - ], - [ - "▁fa", - "ult" - ], - [ - "▁", - "fault" - ], - [ - "p", - "matrix" - ], - [ - "al", - "ler" - ], - [ - "all", - "er" - ], - [ - "alle", - "r" - ], - [ - "▁guer", - "re" - ], - [ - "or", - "igin" - ], - [ - "ori", - "gin" - ], - [ - "orig", - "in" - ], - [ - "hi", - "bernate" - ], - [ - "í", - "lia" - ], - [ - "▁Reg", - "ister" - ], - [ - "▁", - "Register" - ], - [ - "un", - "to" - ], - [ - "unt", - "o" - ], - [ - "▁B", - "at" - ], - [ - "▁Ba", - "t" - ], - [ - "▁b", - "ow" - ], - [ - "▁bo", - "w" - ], - [ - "▁", - "bow" - ], - [ - "сь", - "ких" - ], - [ - "ськ", - "их" - ], - [ - "et", - "à" - ], - [ - "▁L", - "uis" - ], - [ - "▁Lu", - "is" - ], - [ - "▁f", - "ou" - ], - [ - "▁fo", - "u" - ], - [ - "▁Cam", - "bridge" - ], - [ - "▁Camb", - "ridge" - ], - [ - "▁o", - "tt" - ], - [ - "▁ot", - "t" - ], - [ - "▁", - "ott" - ], - [ - "su", - "p" - ], - [ - "s", - "up" - ], - [ - "re", - "as" - ], - [ - "rea", - "s" - ], - [ - "▁point", - "ers" - ], - [ - "▁pointer", - "s" - ], - [ - "▁Bo", - "ard" - ], - [ - "▁", - "Board" - ], - [ - "▁р", - "и" - ], - [ - "▁", - "ри" - ], - [ - "▁d", - "riv" - ], - [ - "▁dr", - "iv" - ], - [ - "▁dri", - "v" - ], - [ - "ни", - "н" - ], - [ - "н", - "ин" - ], - [ - "▁C", - "irc" - ], - [ - "▁Ci", - "rc" - ], - [ - "▁Cir", - "c" - ], - [ - "▁", - "Circ" - ], - [ - "▁t", - "hou" - ], - [ - "▁th", - "ou" - ], - [ - "Di", - "v" - ], - [ - "D", - "iv" - ], - [ - "sp", - "ark" - ], - [ - "s", - "park" - ], - [ - "la", - "ment" - ], - [ - "lam", - "ent" - ], - [ - "l", - "ament" - ], - [ - "▁V", - "AL" - ], - [ - "▁", - "VAL" - ], - [ - "Se", - "nd" - ], - [ - "S", - "end" - ], - [ - "▁Ir", - "ish" - ], - [ - "o", - "y" - ], - [ - "▁T", - "u" - ], - [ - "▁", - "Tu" - ], - [ - "▁t", - "rivial" - ], - [ - "Form", - "s" - ], - [ - "For", - "ms" - ], - [ - "▁as", - "í" - ], - [ - "▁Im", - "per" - ], - [ - "▁Imp", - "er" - ], - [ - "▁sign", - "ature" - ], - [ - "un", - "os" - ], - [ - "uno", - "s" - ], - [ - "u", - "nos" - ], - [ - "▁N", - "eg" - ], - [ - "▁Ne", - "g" - ], - [ - "▁can", - "cel" - ], - [ - "▁", - "cancel" - ], - [ - "▁Hein", - "rich" - ], - [ - "ee", - "d" - ], - [ - "e", - "ed" - ], - [ - "Ill", - "ustration" - ], - [ - "▁s", - "ulla" - ], - [ - "▁su", - "lla" - ], - [ - "▁sul", - "la" - ], - [ - "▁sull", - "a" - ], - [ - "▁qu", - "arter" - ], - [ - "▁quart", - "er" - ], - [ - "▁quar", - "ter" - ], - [ - "as", - "z" - ], - [ - "a", - "sz" - ], - [ - "▁b", - "log" - ], - [ - "▁bl", - "og" - ], - [ - "▁blo", - "g" - ], - [ - "▁", - "blog" - ], - [ - "fi", - "ca" - ], - [ - "fic", - "a" - ], - [ - "f", - "ica" - ], - [ - "wo", - "n" - ], - [ - "w", - "on" - ], - [ - "qu", - "et" - ], - [ - "que", - "t" - ], - [ - "q", - "uet" - ], - [ - "])", - ")" - ], - [ - "]", - "))" - ], - [ - "▁gener", - "ation" - ], - [ - "▁c", - "aught" - ], - [ - "▁", - "caught" - ], - [ - "▁l", - "ands" - ], - [ - "▁land", - "s" - ], - [ - "▁lan", - "ds" - ], - [ - "▁", - "lands" - ], - [ - "▁King", - "dom" - ], - [ - "schaft", - "en" - ], - [ - "ro", - "ns" - ], - [ - "ron", - "s" - ], - [ - "r", - "ons" - ], - [ - "ann", - "els" - ], - [ - "annel", - "s" - ], - [ - "anne", - "ls" - ], - [ - "▁Spe", - "cial" - ], - [ - "▁Spec", - "ial" - ], - [ - "▁", - "Special" - ], - [ - "t", - "utorial" - ], - [ - "ti", - "p" - ], - [ - "t", - "ip" - ], - [ - "▁\"", - "\"," - ], - [ - "▁\"\"", - "," - ], - [ - "▁Az", - "ure" - ], - [ - "▁", - "Azure" - ], - [ - "▁b", - "ounded" - ], - [ - "▁bound", - "ed" - ], - [ - "▁", - "bounded" - ], - [ - "S", - "m" - ], - [ - "ta", - "r" - ], - [ - "t", - "ar" - ], - [ - "ве", - "н" - ], - [ - "в", - "ен" - ], - [ - "▁з", - "ем" - ], - [ - "▁зе", - "м" - ], - [ - "▁", - "зем" - ], - [ - "▁not", - "ation" - ], - [ - "▁", - "notation" - ], - [ - "▁ap", - "ache" - ], - [ - "▁", - "apache" - ], - [ - "▁g", - "az" - ], - [ - "▁ga", - "z" - ], - [ - "ier", - "no" - ], - [ - "i", - "erno" - ], - [ - "an", - "gen" - ], - [ - "ang", - "en" - ], - [ - "ange", - "n" - ], - [ - "pect", - "ive" - ], - [ - "▁elect", - "ric" - ], - [ - "▁s", - "emi" - ], - [ - "▁se", - "mi" - ], - [ - "▁sem", - "i" - ], - [ - "MA", - "X" - ], - [ - "M", - "AX" - ], - [ - "ed", - "erb" - ], - [ - "eder", - "b" - ], - [ - "ede", - "rb" - ], - [ - "object", - "s" - ], - [ - "▁dif", - "ferences" - ], - [ - "▁differ", - "ences" - ], - [ - "▁difference", - "s" - ], - [ - "is", - "ted" - ], - [ - "ist", - "ed" - ], - [ - "iste", - "d" - ], - [ - "i", - "sted" - ], - [ - "hr", - "ef" - ], - [ - "hre", - "f" - ], - [ - "h", - "ref" - ], - [ - "ic", - "ip" - ], - [ - "ici", - "p" - ], - [ - "i", - "cip" - ], - [ - "▁num", - "py" - ], - [ - "▁", - "numpy" - ], - [ - "▁ф", - "утбо" - ], - [ - "lo", - "ader" - ], - [ - "load", - "er" - ], - [ - "▁d", - "ich" - ], - [ - "▁di", - "ch" - ], - [ - "▁dic", - "h" - ], - [ - "љ", - "у" - ], - [ - "▁D", - "é" - ], - [ - "H", - "z" - ], - [ - "▁P", - "aram" - ], - [ - "▁Par", - "am" - ], - [ - "▁Pa", - "ram" - ], - [ - "▁Para", - "m" - ], - [ - "▁", - "Param" - ], - [ - "document", - "ation" - ], - [ - "ir", - "craft" - ], - [ - "irc", - "raft" - ], - [ - "E", - "M" - ], - [ - "▁inst", - "itution" - ], - [ - "▁instit", - "ution" - ], - [ - "com", - "pat" - ], - [ - "comp", - "at" - ], - [ - "▁а", - "ль" - ], - [ - "▁ал", - "ь" - ], - [ - "▁", - "аль" - ], - [ - "сла", - "в" - ], - [ - "с", - "лав" - ], - [ - "▁N", - "et" - ], - [ - "▁Ne", - "t" - ], - [ - "▁", - "Net" - ], - [ - "ци", - "ональ" - ], - [ - "цион", - "аль" - ], - [ - "циона", - "ль" - ], - [ - "▁broad", - "cast" - ], - [ - "date", - "time" - ], - [ - "dat", - "etime" - ], - [ - "as", - "ync" - ], - [ - "asy", - "nc" - ], - [ - "a", - "sync" - ], - [ - "vr", - "e" - ], - [ - "v", - "re" - ], - [ - "me", - "an" - ], - [ - "▁C", - "hem" - ], - [ - "▁Ch", - "em" - ], - [ - "▁Che", - "m" - ], - [ - "▁est", - "imate" - ], - [ - "▁estim", - "ate" - ], - [ - "ic", - "ana" - ], - [ - "ica", - "na" - ], - [ - "ican", - "a" - ], - [ - "▁g", - "rep" - ], - [ - "▁gr", - "ep" - ], - [ - "▁gre", - "p" - ], - [ - "▁", - "grep" - ], - [ - "te", - "k" - ], - [ - "t", - "ek" - ], - [ - "ä", - "m" - ], - [ - "or", - "ig" - ], - [ - "ori", - "g" - ], - [ - "o", - "rig" - ], - [ - "▁Vict", - "or" - ], - [ - "▁Vi", - "ctor" - ], - [ - "▁Vic", - "tor" - ], - [ - "ut", - "enant" - ], - [ - "ute", - "nant" - ], - [ - "uten", - "ant" - ], - [ - "an", - "ga" - ], - [ - "ang", - "a" - ], - [ - "pi", - "n" - ], - [ - "p", - "in" - ], - [ - "▁ver", - "tex" - ], - [ - "▁vert", - "ex" - ], - [ - "▁verte", - "x" - ], - [ - "▁CHAP", - "TER" - ], - [ - "ci", - "ty" - ], - [ - "cit", - "y" - ], - [ - "c", - "ity" - ], - [ - "ug", - "by" - ], - [ - "gr", - "een" - ], - [ - "gre", - "en" - ], - [ - "g", - "reen" - ], - [ - "▁K", - "er" - ], - [ - "▁Ke", - "r" - ], - [ - "▁dif", - "fér" - ], - [ - "▁diff", - "ér" - ], - [ - "▁necess", - "arily" - ], - [ - "D", - "C" - ], - [ - "Line", - "ar" - ], - [ - "Lin", - "ear" - ], - [ - "Li", - "near" - ], - [ - "al", - "em" - ], - [ - "ale", - "m" - ], - [ - "a", - "lem" - ], - [ - "▁L", - "ater" - ], - [ - "▁La", - "ter" - ], - [ - "▁Lat", - "er" - ], - [ - "▁Late", - "r" - ], - [ - "▁m", - "eta" - ], - [ - "▁me", - "ta" - ], - [ - "▁met", - "a" - ], - [ - "▁", - "meta" - ], - [ - "je", - "m" - ], - [ - "j", - "em" - ], - [ - "ra", - "gen" - ], - [ - "rag", - "en" - ], - [ - "rage", - "n" - ], - [ - "r", - "agen" - ], - [ - "Ma", - "y" - ], - [ - "M", - "ay" - ], - [ - "▁Mitg", - "lied" - ], - [ - "▁s", - "orted" - ], - [ - "▁sort", - "ed" - ], - [ - "▁sor", - "ted" - ], - [ - "▁sorte", - "d" - ], - [ - "▁", - "sorted" - ], - [ - "us", - "sen" - ], - [ - "uss", - "en" - ], - [ - "▁sp", - "oke" - ], - [ - "▁spo", - "ke" - ], - [ - "▁dis", - "abled" - ], - [ - "▁disable", - "d" - ], - [ - "▁", - "disabled" - ], - [ - "▁accompl", - "ish" - ], - [ - "▁accomp", - "lish" - ], - [ - "▁Russ", - "ia" - ], - [ - "th", - "ere" - ], - [ - "ther", - "e" - ], - [ - "the", - "re" - ], - [ - "t", - "here" - ], - [ - "ee", - "s" - ], - [ - "e", - "es" - ], - [ - "▁h", - "all" - ], - [ - "▁ha", - "ll" - ], - [ - "▁hal", - "l" - ], - [ - "▁", - "hall" - ], - [ - "▁met", - "ric" - ], - [ - "▁", - "metric" - ], - [ - "att", - "ribute" - ], - [ - "то", - "го" - ], - [ - "т", - "ого" - ], - [ - "ab", - "out" - ], - [ - "▁L", - "am" - ], - [ - "▁La", - "m" - ], - [ - "ch", - "annel" - ], - [ - "chan", - "nel" - ], - [ - "▁e", - "pisode" - ], - [ - "▁epis", - "ode" - ], - [ - "▁$", - "('." - ], - [ - "▁$(", - "'." - ], - [ - "▁$('", - "." - ], - [ - "▁", - "ought" - ], - [ - "▁E", - "ste" - ], - [ - "▁Est", - "e" - ], - [ - "▁Es", - "te" - ], - [ - "Object", - "s" - ], - [ - "▁valid", - "ate" - ], - [ - "▁", - "validate" - ], - [ - "▁r", - "im" - ], - [ - "▁ri", - "m" - ], - [ - "▁", - "rim" - ], - [ - "▁numer", - "ous" - ], - [ - "▁numero", - "us" - ], - [ - "▁J", - "avascript" - ], - [ - "▁Java", - "script" - ], - [ - "▁G", - "L" - ], - [ - "▁", - "GL" - ], - [ - "▁It", - "aly" - ], - [ - "▁Ital", - "y" - ], - [ - "ederb", - "örd" - ], - [ - "on", - "ato" - ], - [ - "ona", - "to" - ], - [ - "bo", - "oks" - ], - [ - "book", - "s" - ], - [ - "st", - "one" - ], - [ - "ston", - "e" - ], - [ - "sto", - "ne" - ], - [ - "х", - "у" - ], - [ - "▁j", - "el" - ], - [ - "▁je", - "l" - ], - [ - "▁", - "jel" - ], - [ - "ir", - "i" - ], - [ - "i", - "ri" - ], - [ - "▁A", - "SP" - ], - [ - "▁AS", - "P" - ], - [ - "G", - "A" - ], - [ - "▁st", - "ata" - ], - [ - "▁stat", - "a" - ], - [ - "▁sta", - "ta" - ], - [ - "▁b", - "az" - ], - [ - "▁ba", - "z" - ], - [ - "▁", - "baz" - ], - [ - "Da", - "y" - ], - [ - "D", - "ay" - ], - [ - "th", - "m" - ], - [ - "t", - "hm" - ], - [ - "d", - "h" - ], - [ - "▁F", - "iles" - ], - [ - "▁Fil", - "es" - ], - [ - "▁File", - "s" - ], - [ - "▁", - "Files" - ], - [ - "Android", - "Runtime" - ], - [ - "▁che", - "cks" - ], - [ - "▁check", - "s" - ], - [ - "k", - "r" - ], - [ - "▁v", - "enne" - ], - [ - "▁ven", - "ne" - ], - [ - "S", - "L" - ], - [ - "av", - "ia" - ], - [ - "avi", - "a" - ], - [ - "a", - "via" - ], - [ - "ka", - "zy" - ], - [ - "kaz", - "y" - ], - [ - "k", - "azy" - ], - [ - "▁Th", - "ree" - ], - [ - "▁", - "Three" - ], - [ - "Ad", - "min" - ], - [ - "▁col", - "lege" - ], - [ - "▁coll", - "ege" - ], - [ - "▁colleg", - "e" - ], - [ - "▁colle", - "ge" - ], - [ - "G", - "lobal" - ], - [ - "ti", - "on" - ], - [ - "t", - "ion" - ], - [ - "▁cur", - "ious" - ], - [ - "sh", - "ort" - ], - [ - "▁b", - "ass" - ], - [ - "▁bas", - "s" - ], - [ - "▁ba", - "ss" - ], - [ - "де", - "ла" - ], - [ - "▁де", - "я" - ], - [ - "Sch", - "ema" - ], - [ - "'", - "\\" - ], - [ - "di", - "ff" - ], - [ - "d", - "iff" - ], - [ - "▁C", - "A" - ], - [ - "▁", - "CA" - ], - [ - "▁Cor", - "por" - ], - [ - "▁oper", - "ators" - ], - [ - "▁operator", - "s" - ], - [ - "om", - "rå" - ], - [ - "▁ed", - "ges" - ], - [ - "▁edge", - "s" - ], - [ - ");", - "`" - ], - [ - ")", - ";`" - ], - [ - "in", - "ds" - ], - [ - "ind", - "s" - ], - [ - "▁g", - "ing" - ], - [ - "▁gi", - "ng" - ], - [ - "▁", - "ging" - ], - [ - "&", - "&" - ], - [ - "}-", - "\\" - ], - [ - "}", - "-\\" - ], - [ - "ra", - "no" - ], - [ - "ran", - "o" - ], - [ - "r", - "ano" - ], - [ - "▁s", - "ão" - ], - [ - "▁ad", - "ds" - ], - [ - "▁add", - "s" - ], - [ - "el", - "or" - ], - [ - "elo", - "r" - ], - [ - "e", - "lor" - ], - [ - "▁un", - "signed" - ], - [ - "▁uns", - "igned" - ], - [ - "▁", - "unsigned" - ], - [ - "▁п", - "р" - ], - [ - "▁", - "пр" - ], - [ - "▁Con", - "fig" - ], - [ - "▁Conf", - "ig" - ], - [ - "▁", - "Config" - ], - [ - "▁E", - "sc" - ], - [ - "▁Es", - "c" - ], - [ - "▁ch", - "ose" - ], - [ - "▁cho", - "se" - ], - [ - "▁pie", - "ces" - ], - [ - "▁piece", - "s" - ], - [ - "▁reg", - "ions" - ], - [ - "▁region", - "s" - ], - [ - "Es", - "t" - ], - [ - "E", - "st" - ], - [ - "▁B", - "attle" - ], - [ - "▁Batt", - "le" - ], - [ - "▁f", - "oc" - ], - [ - "▁fo", - "c" - ], - [ - "▁L", - "ight" - ], - [ - "▁Lig", - "ht" - ], - [ - "▁", - "Light" - ], - [ - "pad", - "ding" - ], - [ - "p", - "adding" - ], - [ - "ab", - "en" - ], - [ - "abe", - "n" - ], - [ - "a", - "ben" - ], - [ - "▁e", - "urop" - ], - [ - "▁eu", - "rop" - ], - [ - "▁euro", - "p" - ], - [ - "il", - "lon" - ], - [ - "ill", - "on" - ], - [ - "illo", - "n" - ], - [ - "▁е", - "сть" - ], - [ - "▁b", - "ord" - ], - [ - "▁bo", - "rd" - ], - [ - "▁bor", - "d" - ], - [ - "▁о", - "тно" - ], - [ - "▁от", - "но" - ], - [ - "▁H", - "ong" - ], - [ - "▁Hon", - "g" - ], - [ - "▁Ho", - "ng" - ], - [ - "▁v", - "ul" - ], - [ - "▁vu", - "l" - ], - [ - "pl", - "ugins" - ], - [ - "plugin", - "s" - ], - [ - "▁'", - "<" - ], - [ - "▁k", - "ur" - ], - [ - "▁", - "kur" - ], - [ - "reg", - "ion" - ], - [ - "▁Re", - "pub" - ], - [ - "▁Rep", - "ub" - ], - [ - "ic", - "her" - ], - [ - "ich", - "er" - ], - [ - "iche", - "r" - ], - [ - "i", - "cher" - ], - [ - "}_", - "\\" - ], - [ - "}", - "_\\" - ], - [ - "▁me", - "dal" - ], - [ - "▁med", - "al" - ], - [ - "▁More", - "over" - ], - [ - "B", - "I" - ], - [ - "A", - "v" - ], - [ - "ut", - "er" - ], - [ - "ute", - "r" - ], - [ - "u", - "ter" - ], - [ - "▁s", - "can" - ], - [ - "▁sc", - "an" - ], - [ - "▁", - "scan" - ], - [ - "▁M", - "unicip" - ], - [ - "▁Mun", - "icip" - ], - [ - "▁contr", - "ast" - ], - [ - "▁contra", - "st" - ], - [ - "▁I", - "g" - ], - [ - "▁", - "Ig" - ], - [ - "▁го", - "род" - ], - [ - "▁горо", - "д" - ], - [ - "▁гор", - "од" - ], - [ - "▁", - "город" - ], - [ - "rel", - "ated" - ], - [ - "al", - "ing" - ], - [ - "ali", - "ng" - ], - [ - "alin", - "g" - ], - [ - "a", - "ling" - ], - [ - "▁м", - "ат" - ], - [ - "▁ма", - "т" - ], - [ - "▁", - "мат" - ], - [ - "ün", - "st" - ], - [ - "▁Ch", - "ris" - ], - [ - "▁Chr", - "is" - ], - [ - "w", - "y" - ], - [ - "▁Act", - "ually" - ], - [ - "▁Univers", - "idad" - ], - [ - "Event", - "Listener" - ], - [ - "▁tempor", - "ada" - ], - [ - "▁ass", - "ignment" - ], - [ - "▁assign", - "ment" - ], - [ - "▁M", - "ike" - ], - [ - "▁Mi", - "ke" - ], - [ - "▁Mik", - "e" - ], - [ - "▁w", - "ährend" - ], - [ - "▁ś", - "wi" - ], - [ - "▁św", - "i" - ], - [ - "▁с", - "ред" - ], - [ - "▁сре", - "д" - ], - [ - "ка", - "де" - ], - [ - "▁calcul", - "ated" - ], - [ - "▁calculate", - "d" - ], - [ - "▁calc", - "ulated" - ], - [ - "▁el", - "ler" - ], - [ - "▁elle", - "r" - ], - [ - "▁ell", - "er" - ], - [ - "▁", - "eller" - ], - [ - "▁A", - "sh" - ], - [ - "▁As", - "h" - ], - [ - "ri", - "el" - ], - [ - "rie", - "l" - ], - [ - "r", - "iel" - ], - [ - "▁hard", - "ware" - ], - [ - "▁int", - "ens" - ], - [ - "▁inte", - "ns" - ], - [ - "▁inten", - "s" - ], - [ - "('", - "." - ], - [ - "(", - "'." - ], - [ - "il", - "li" - ], - [ - "ill", - "i" - ], - [ - "ag", - "on" - ], - [ - "ago", - "n" - ], - [ - "a", - "gon" - ], - [ - "▁G", - "y" - ], - [ - "▁he", - "ute" - ], - [ - "▁heut", - "e" - ], - [ - "▁s", - "le" - ], - [ - "▁sl", - "e" - ], - [ - "▁liter", - "ature" - ], - [ - "se", - "m" - ], - [ - "s", - "em" - ], - [ - "man", - "ager" - ], - [ - "mana", - "ger" - ], - [ - "▁Gr", - "ande" - ], - [ - "▁Gra", - "nde" - ], - [ - "▁Grand", - "e" - ], - [ - "▁Gran", - "de" - ], - [ - "▁m", - "ixed" - ], - [ - "▁mix", - "ed" - ], - [ - "▁В", - "ер" - ], - [ - "▁Ве", - "р" - ], - [ - "í", - "cí" - ], - [ - "▁s", - "oit" - ], - [ - "▁so", - "it" - ], - [ - "▁wel", - "come" - ], - [ - "че", - "ние" - ], - [ - "▁Univers", - "ität" - ], - [ - "▁bu", - "ilder" - ], - [ - "▁build", - "er" - ], - [ - "▁", - "builder" - ], - [ - "sim", - "ple" - ], - [ - "simp", - "le" - ], - [ - "ic", - "ode" - ], - [ - "ico", - "de" - ], - [ - "i", - "code" - ], - [ - "ř", - "e" - ], - [ - "in", - "dent" - ], - [ - "ind", - "ent" - ], - [ - "inden", - "t" - ], - [ - "inde", - "nt" - ], - [ - "op", - "o" - ], - [ - "o", - "po" - ], - [ - "▁ad", - "vanced" - ], - [ - "▁adv", - "anced" - ], - [ - "▁advance", - "d" - ], - [ - "tem", - "per" - ], - [ - "temp", - "er" - ], - [ - "ed", - "ge" - ], - [ - "▁dat", - "etime" - ], - [ - "▁date", - "time" - ], - [ - "▁", - "datetime" - ], - [ - "▁d", - "onc" - ], - [ - "▁do", - "nc" - ], - [ - "▁don", - "c" - ], - [ - "ла", - "ння" - ], - [ - "лан", - "ня" - ], - [ - "▁v", - "erd" - ], - [ - "▁ver", - "d" - ], - [ - "▁ve", - "rd" - ], - [ - "д", - "но" - ], - [ - "it", - "os" - ], - [ - "ito", - "s" - ], - [ - "▁he", - "at" - ], - [ - "vi", - "sible" - ], - [ - "vis", - "ible" - ], - [ - "me", - "l" - ], - [ - "m", - "el" - ], - [ - "▁Giov", - "anni" - ], - [ - "▁var", - "iety" - ], - [ - "▁vari", - "ety" - ], - [ - "▁r", - "outer" - ], - [ - "▁ro", - "uter" - ], - [ - "▁route", - "r" - ], - [ - "▁rout", - "er" - ], - [ - "▁rou", - "ter" - ], - [ - "▁", - "router" - ], - [ - "Vec", - "tor" - ], - [ - "V", - "ector" - ], - [ - "▁W", - "alk" - ], - [ - "▁Wal", - "k" - ], - [ - "▁ob", - "viously" - ], - [ - "▁obvious", - "ly" - ], - [ - "he", - "in" - ], - [ - "h", - "ein" - ], - [ - "Fi", - "n" - ], - [ - "F", - "in" - ], - [ - "ITable", - "View" - ], - [ - "Y", - "ear" - ], - [ - "▁E", - "conom" - ], - [ - "▁vel", - "ocity" - ], - [ - "▁veloc", - "ity" - ], - [ - "▁C", - "ivil" - ], - [ - "▁Ci", - "vil" - ], - [ - "▁", - "ј" - ], - [ - "al", - "ert" - ], - [ - "ale", - "rt" - ], - [ - "aler", - "t" - ], - [ - "Ident", - "ifier" - ], - [ - "èn", - "cia" - ], - [ - "▁normal", - "ly" - ], - [ - "▁norm", - "ally" - ], - [ - "▁E", - "gypt" - ], - [ - "▁Egy", - "pt" - ], - [ - "▁c", - "tx" - ], - [ - "▁", - "ctx" - ], - [ - "▁Ver", - "ein" - ], - [ - "▁Vere", - "in" - ], - [ - "▁H", - "u" - ], - [ - "ult", - "ure" - ], - [ - "ultur", - "e" - ], - [ - "ни", - "те" - ], - [ - "l", - "é" - ], - [ - "▁W", - "ien" - ], - [ - "▁Wi", - "en" - ], - [ - "▁Wie", - "n" - ], - [ - "▁P", - "rz" - ], - [ - "▁Pr", - "z" - ], - [ - "By", - "te" - ], - [ - "▁n", - "ah" - ], - [ - "▁na", - "h" - ], - [ - "▁", - "nah" - ], - [ - "is", - "ms" - ], - [ - "ism", - "s" - ], - [ - "▁Pub", - "lish" - ], - [ - "▁He", - "rz" - ], - [ - "▁Her", - "z" - ], - [ - "ic", - "ul" - ], - [ - "i", - "cul" - ], - [ - "pis", - "ode" - ], - [ - "ч", - "і" - ], - [ - "▁die", - "sem" - ], - [ - "▁dies", - "em" - ], - [ - "▁diese", - "m" - ], - [ - "k", - "ö" - ], - [ - "Vis", - "ible" - ], - [ - "▁r", - "ig" - ], - [ - "▁ri", - "g" - ], - [ - "▁", - "rig" - ], - [ - "`)", - "." - ], - [ - "`", - ")." - ], - [ - "Par", - "se" - ], - [ - "P", - "arse" - ], - [ - "▁Jac", - "ques" - ], - [ - "N", - "I" - ], - [ - "▁g", - "lass" - ], - [ - "▁gl", - "ass" - ], - [ - "▁gla", - "ss" - ], - [ - "▁", - "glass" - ], - [ - "--", - "-+" - ], - [ - "---", - "+" - ], - [ - "-", - "--+" - ], - [ - "▁initial", - "ly" - ], - [ - "▁initi", - "ally" - ], - [ - "▁k", - "r" - ], - [ - "▁", - "kr" - ], - [ - "CC", - "N" - ], - [ - "C", - "CN" - ], - [ - "pl", - "ays" - ], - [ - "play", - "s" - ], - [ - "pla", - "ys" - ], - [ - "▁s", - "igu" - ], - [ - "▁si", - "gu" - ], - [ - "▁sig", - "u" - ], - [ - "F", - "older" - ], - [ - "st", - "orage" - ], - [ - "sto", - "rage" - ], - [ - "stor", - "age" - ], - [ - "▁\\", - "|" - ], - [ - "▁", - "\\|" - ], - [ - "iv", - "os" - ], - [ - "ivo", - "s" - ], - [ - "i", - "vos" - ], - [ - "ск", - "ую" - ], - [ - "ску", - "ю" - ], - [ - "▁M", - "oh" - ], - [ - "▁Mo", - "h" - ], - [ - "▁Comm", - "ittee" - ], - [ - "▁K", - "im" - ], - [ - "▁Ki", - "m" - ], - [ - "e", - "u" - ], - [ - "те", - "м" - ], - [ - "т", - "ем" - ], - [ - "▁orig", - "inale" - ], - [ - "▁original", - "e" - ], - [ - "▁origin", - "ale" - ], - [ - "ir", - "s" - ], - [ - "i", - "rs" - ], - [ - "▁R", - "eb" - ], - [ - "▁Re", - "b" - ], - [ - "it", - "ut" - ], - [ - "itu", - "t" - ], - [ - "n", - "l" - ], - [ - "▁P", - "ier" - ], - [ - "▁Pi", - "er" - ], - [ - "▁Pie", - "r" - ], - [ - "▁]", - ";" - ], - [ - "▁", - "];" - ], - [ - "▁F", - "al" - ], - [ - "▁Fa", - "l" - ], - [ - "▁\"", - "\";" - ], - [ - "▁\"\"", - ";" - ], - [ - "mv", - "c" - ], - [ - "m", - "vc" - ], - [ - "▁fe", - "male" - ], - [ - "▁fem", - "ale" - ], - [ - "▁b", - "ridge" - ], - [ - "▁br", - "idge" - ], - [ - "▁brid", - "ge" - ], - [ - "▁", - "bridge" - ], - [ - "▁t", - "ít" - ], - [ - "kt", - "r" - ], - [ - "k", - "tr" - ], - [ - ">", - ")" - ], - [ - "▁se", - "at" - ], - [ - "▁sea", - "t" - ], - [ - "▁v", - "ess" - ], - [ - "▁ve", - "ss" - ], - [ - "▁ves", - "s" - ], - [ - "▁U", - "SB" - ], - [ - "▁US", - "B" - ], - [ - "▁Art", - "icles" - ], - [ - "▁Article", - "s" - ], - [ - "▁De", - "scription" - ], - [ - "▁Des", - "cription" - ], - [ - "▁Descri", - "ption" - ], - [ - "▁", - "Description" - ], - [ - "▁o", - "c" - ], - [ - "▁", - "oc" - ], - [ - "▁h", - "ouses" - ], - [ - "▁house", - "s" - ], - [ - "▁ho", - "uses" - ], - [ - "▁hous", - "es" - ], - [ - "▁П", - "ет" - ], - [ - "▁Пе", - "т" - ], - [ - "lo", - "n" - ], - [ - "l", - "on" - ], - [ - "Not", - "ification" - ], - [ - "▁press", - "ure" - ], - [ - "▁ку", - "ль" - ], - [ - "▁", - "куль" - ], - [ - "ig", - "ned" - ], - [ - "ign", - "ed" - ], - [ - "igne", - "d" - ], - [ - "▁relig", - "ious" - ], - [ - "fa", - "n" - ], - [ - "f", - "an" - ], - [ - "ig", - "lia" - ], - [ - "igli", - "a" - ], - [ - "▁class", - "ification" - ], - [ - "▁classific", - "ation" - ], - [ - "og", - "ether" - ], - [ - "oge", - "ther" - ], - [ - "▁S", - "DK" - ], - [ - "▁SD", - "K" - ], - [ - "▁", - "SDK" - ], - [ - "▁H", - "uman" - ], - [ - "▁Hu", - "man" - ], - [ - "▁Hum", - "an" - ], - [ - "▁com", - "mission" - ], - [ - "▁comm", - "ission" - ], - [ - "▁О", - "р" - ], - [ - "▁an", - "tes" - ], - [ - "▁ant", - "es" - ], - [ - "▁ante", - "s" - ], - [ - "▁", - "antes" - ], - [ - "D", - "T" - ], - [ - "èt", - "e" - ], - [ - "è", - "te" - ], - [ - "pr", - "és" - ], - [ - "p", - "rés" - ], - [ - "/", - "\"" - ], - [ - "▁(", - "«" - ], - [ - "▁h", - "ö" - ], - [ - "▁", - "hö" - ], - [ - "▁ча", - "с" - ], - [ - "▁", - "час" - ], - [ - "▁j", - "ak" - ], - [ - "▁ja", - "k" - ], - [ - "▁", - "jak" - ], - [ - "ie", - "nen" - ], - [ - "ien", - "en" - ], - [ - "iene", - "n" - ], - [ - "i", - "enen" - ], - [ - "ug", - "g" - ], - [ - "u", - "gg" - ], - [ - "W", - "A" - ], - [ - "▁place", - "holder" - ], - [ - "▁", - "placeholder" - ], - [ - "Wil", - "l" - ], - [ - "W", - "ill" - ], - [ - ",", - "," - ], - [ - "▁K", - "am" - ], - [ - "▁Ka", - "m" - ], - [ - "▁w", - "en" - ], - [ - "▁we", - "n" - ], - [ - "▁", - "wen" - ], - [ - "▁Sch", - "ul" - ], - [ - "ți", - "e" - ], - [ - "ț", - "ie" - ], - [ - "▁a", - "ud" - ], - [ - "▁au", - "d" - ], - [ - "▁", - "aud" - ], - [ - "▁s", - "ue" - ], - [ - "▁su", - "e" - ], - [ - "▁re", - "ferred" - ], - [ - "▁refer", - "red" - ], - [ - "ва", - "т" - ], - [ - "в", - "ат" - ], - [ - "▁P", - "ara" - ], - [ - "▁Par", - "a" - ], - [ - "▁Pa", - "ra" - ], - [ - "▁b", - "la" - ], - [ - "▁bl", - "a" - ], - [ - "▁", - "bla" - ], - [ - "UE", - "S" - ], - [ - "U", - "ES" - ], - [ - "▁stat", - "ist" - ], - [ - "▁stati", - "st" - ], - [ - "▁т", - "у" - ], - [ - "▁", - "ту" - ], - [ - "▁Wars", - "za" - ], - [ - "gu", - "e" - ], - [ - "g", - "ue" - ], - [ - "▁I", - "de" - ], - [ - "▁Id", - "e" - ], - [ - "math", - "scr" - ], - [ - "▁l", - "ieu" - ], - [ - "▁li", - "eu" - ], - [ - "▁lie", - "u" - ], - [ - "▁b", - "od" - ], - [ - "▁bo", - "d" - ], - [ - "▁r", - "us" - ], - [ - "▁ru", - "s" - ], - [ - "▁", - "rus" - ], - [ - "▁bo", - "at" - ], - [ - "xs", - "pace" - ], - [ - "x", - "space" - ], - [ - "▁mod", - "al" - ], - [ - "▁mo", - "dal" - ], - [ - "▁", - "modal" - ], - [ - "ле", - "к" - ], - [ - "л", - "ек" - ], - [ - "to", - "pic" - ], - [ - "top", - "ic" - ], - [ - "ma", - "ny" - ], - [ - "man", - "y" - ], - [ - "m", - "any" - ], - [ - "sk", - "ý" - ], - [ - "▁organ", - "ization" - ], - [ - "▁organiz", - "ation" - ], - [ - "▁г", - "ене" - ], - [ - "▁ге", - "не" - ], - [ - "▁Wil", - "son" - ], - [ - "▁com", - "fort" - ], - [ - "ib", - "il" - ], - [ - "i", - "bil" - ], - [ - ":", - "-" - ], - [ - "▁an", - "imal" - ], - [ - "▁anim", - "al" - ], - [ - "▁ani", - "mal" - ], - [ - "Re", - "port" - ], - [ - "Rep", - "ort" - ], - [ - "ка", - "ми" - ], - [ - "кам", - "и" - ], - [ - "jo", - "n" - ], - [ - "j", - "on" - ], - [ - "▁k", - "er" - ], - [ - "▁ke", - "r" - ], - [ - "▁", - "ker" - ], - [ - "▁к", - "ни" - ], - [ - "moz", - "illa" - ], - [ - "Pr", - "ice" - ], - [ - "P", - "rice" - ], - [ - "ant", - "in" - ], - [ - "anti", - "n" - ], - [ - "em", - "ento" - ], - [ - "ement", - "o" - ], - [ - "emen", - "to" - ], - [ - "ma", - "y" - ], - [ - "m", - "ay" - ], - [ - "▁l", - "ung" - ], - [ - "▁lu", - "ng" - ], - [ - "▁lun", - "g" - ], - [ - "▁", - "lung" - ], - [ - "▁b", - "low" - ], - [ - "▁bl", - "ow" - ], - [ - "▁blo", - "w" - ], - [ - "ede", - "ut" - ], - [ - "▁type", - "d" - ], - [ - "▁typ", - "ed" - ], - [ - "▁ty", - "ped" - ], - [ - "▁dec", - "ember" - ], - [ - "▁.", - "..." - ], - [ - "▁...", - "." - ], - [ - "▁..", - ".." - ], - [ - "▁", - "...." - ], - [ - "li", - "ance" - ], - [ - "l", - "iance" - ], - [ - "▁v", - "iel" - ], - [ - "▁vi", - "el" - ], - [ - "▁vie", - "l" - ], - [ - "▁Ф", - "и" - ], - [ - "pr", - "esa" - ], - [ - "pre", - "sa" - ], - [ - "pres", - "a" - ], - [ - "▁ос", - "іб" - ], - [ - "▁N", - "am" - ], - [ - "▁Na", - "m" - ], - [ - "▁G", - "ren" - ], - [ - "▁Gr", - "en" - ], - [ - "▁Gre", - "n" - ], - [ - "си", - "лання" - ], - [ - "VI", - "D" - ], - [ - "V", - "ID" - ], - [ - "st", - "re" - ], - [ - "str", - "e" - ], - [ - "s", - "tre" - ], - [ - "we", - "is" - ], - [ - "wei", - "s" - ], - [ - "▁prote", - "ction" - ], - [ - "▁protect", - "ion" - ], - [ - "▁prot", - "ection" - ], - [ - "ta", - "ient" - ], - [ - "t", - "aient" - ], - [ - "▁offic", - "ers" - ], - [ - "▁office", - "rs" - ], - [ - "▁officer", - "s" - ], - [ - "т", - "но" - ], - [ - "▁B", - "rig" - ], - [ - "▁Br", - "ig" - ], - [ - "▁int", - "ellig" - ], - [ - "▁intel", - "lig" - ], - [ - "я", - "х" - ], - [ - "IT", - "H" - ], - [ - "I", - "TH" - ], - [ - "▁separ", - "ated" - ], - [ - "▁separate", - "d" - ], - [ - "▁L", - "CCN" - ], - [ - "ní", - "m" - ], - [ - "n", - "ím" - ], - [ - "cl", - "ock" - ], - [ - "clo", - "ck" - ], - [ - "c", - "lock" - ], - [ - "▁ap", - "are" - ], - [ - "▁apar", - "e" - ], - [ - "яв", - "и" - ], - [ - "я", - "ви" - ], - [ - "▁Eliz", - "abeth" - ], - [ - "▁W", - "ater" - ], - [ - "▁Wat", - "er" - ], - [ - "▁Wa", - "ter" - ], - [ - "geb", - "iet" - ], - [ - "▁con", - "vent" - ], - [ - "▁conv", - "ent" - ], - [ - "▁conven", - "t" - ], - [ - "fu", - "rt" - ], - [ - "fur", - "t" - ], - [ - "f", - "urt" - ], - [ - "▁be", - "iden" - ], - [ - "▁bei", - "den" - ], - [ - "▁beide", - "n" - ], - [ - "ba", - "sh" - ], - [ - "bas", - "h" - ], - [ - "b", - "ash" - ], - [ - "▁че", - "рез" - ], - [ - "▁чер", - "ез" - ], - [ - "▁u", - "b" - ], - [ - "▁", - "ub" - ], - [ - "▁Stat", - "ist" - ], - [ - "▁Stati", - "st" - ], - [ - "▁lim", - "its" - ], - [ - "▁limit", - "s" - ], - [ - "▁", - "limits" - ], - [ - "V", - "ol" - ], - [ - "ct", - "x" - ], - [ - "c", - "tx" - ], - [ - "▁но", - "в" - ], - [ - "▁н", - "ов" - ], - [ - "▁", - "нов" - ], - [ - "gu", - "ide" - ], - [ - "gui", - "de" - ], - [ - "mi", - "c" - ], - [ - "m", - "ic" - ], - [ - "ie", - "sa" - ], - [ - "ies", - "a" - ], - [ - "i", - "esa" - ], - [ - "▁h", - "uvud" - ], - [ - "R", - "T" - ], - [ - "Fi", - "g" - ], - [ - "F", - "ig" - ], - [ - "▁l", - "ect" - ], - [ - "▁le", - "ct" - ], - [ - "▁", - "lect" - ], - [ - "con", - "n" - ], - [ - "co", - "nn" - ], - [ - "c", - "onn" - ], - [ - "im", - "it" - ], - [ - "imi", - "t" - ], - [ - "i", - "mit" - ], - [ - "га", - "р" - ], - [ - "г", - "ар" - ], - [ - "▁b", - "ajo" - ], - [ - "▁ba", - "jo" - ], - [ - "scri", - "be" - ], - [ - "scr", - "ibe" - ], - [ - "s", - "cribe" - ], - [ - "re", - "gex" - ], - [ - "reg", - "ex" - ], - [ - "▁C", - "ass" - ], - [ - "▁Cas", - "s" - ], - [ - "▁Ca", - "ss" - ], - [ - "▁pro", - "pag" - ], - [ - "▁prop", - "ag" - ], - [ - "'", - "$" - ], - [ - "▁prof", - "es" - ], - [ - "un", - "ique" - ], - [ - "uni", - "que" - ], - [ - "▁S", - "ql" - ], - [ - "▁", - "Sql" - ], - [ - "un", - "ion" - ], - [ - "uni", - "on" - ], - [ - "ri", - "os" - ], - [ - "rio", - "s" - ], - [ - "r", - "ios" - ], - [ - "pi", - "p" - ], - [ - "p", - "ip" - ], - [ - "--", - "+" - ], - [ - "-", - "-+" - ], - [ - "ka", - "dem" - ], - [ - "k", - "adem" - ], - [ - "column", - "s" - ], - [ - "▁v", - "ary" - ], - [ - "▁var", - "y" - ], - [ - "▁va", - "ry" - ], - [ - "▁bere", - "its" - ], - [ - "▁d", - "oi" - ], - [ - "▁do", - "i" - ], - [ - "▁Com", - "mon" - ], - [ - "▁Comm", - "on" - ], - [ - "▁", - "Common" - ], - [ - "▁Ro", - "bin" - ], - [ - "▁Rob", - "in" - ], - [ - "▁", - "×" - ], - [ - "▁s", - "ei" - ], - [ - "▁se", - "i" - ], - [ - "▁s", - "yst" - ], - [ - "▁sy", - "st" - ], - [ - "▁sys", - "t" - ], - [ - "▁v", - "ä" - ], - [ - "▁", - "vä" - ], - [ - "▁De", - "fault" - ], - [ - "▁Def", - "ault" - ], - [ - "▁", - "Default" - ], - [ - "▁t", - "ym" - ], - [ - "▁ty", - "m" - ], - [ - "pe", - "l" - ], - [ - "p", - "el" - ], - [ - "▁bel", - "ieved" - ], - [ - "▁believe", - "d" - ], - [ - "▁pro", - "vider" - ], - [ - "▁prov", - "ider" - ], - [ - "▁provide", - "r" - ], - [ - "▁", - "provider" - ], - [ - "▁min", - "imal" - ], - [ - "▁minim", - "al" - ], - [ - "▁mini", - "mal" - ], - [ - "та", - "ли" - ], - [ - "тал", - "и" - ], - [ - "т", - "али" - ], - [ - "ain", - "es" - ], - [ - "ai", - "nes" - ], - [ - "aine", - "s" - ], - [ - "a", - "ines" - ], - [ - "K", - "it" - ], - [ - "iz", - "io" - ], - [ - "izi", - "o" - ], - [ - "is", - "sen" - ], - [ - "iss", - "en" - ], - [ - "isse", - "n" - ], - [ - "pr", - "essed" - ], - [ - "press", - "ed" - ], - [ - "pres", - "sed" - ], - [ - "▁s", - "tag" - ], - [ - "▁st", - "ag" - ], - [ - "▁sta", - "g" - ], - [ - "▁", - "stag" - ], - [ - "▁u", - "int" - ], - [ - "▁ui", - "nt" - ], - [ - "▁", - "uint" - ], - [ - "ko", - "r" - ], - [ - "k", - "or" - ], - [ - "▁ра", - "спо" - ], - [ - "▁рас", - "по" - ], - [ - "▁in", - "herit" - ], - [ - "▁inher", - "it" - ], - [ - "▁comp", - "iled" - ], - [ - "▁compile", - "d" - ], - [ - "▁f", - "ebru" - ], - [ - "▁fe", - "bru" - ], - [ - "▁feb", - "ru" - ], - [ - "▁t", - "mp" - ], - [ - "▁tm", - "p" - ], - [ - "▁", - "tmp" - ], - [ - "work", - "s" - ], - [ - "wor", - "ks" - ], - [ - "ч", - "на" - ], - [ - "draw", - "able" - ], - [ - "▁N", - "av" - ], - [ - "▁Na", - "v" - ], - [ - "▁", - "Nav" - ], - [ - "▁though", - "ts" - ], - [ - "▁thought", - "s" - ], - [ - "ro", - "ute" - ], - [ - "rout", - "e" - ], - [ - "rou", - "te" - ], - [ - "r", - "oute" - ], - [ - "▁con", - "cert" - ], - [ - "▁conc", - "ert" - ], - [ - "▁conce", - "rt" - ], - [ - "▁option", - "al" - ], - [ - "▁opt", - "ional" - ], - [ - "▁", - "optional" - ], - [ - "▁b", - "ras" - ], - [ - "▁br", - "as" - ], - [ - "▁bra", - "s" - ], - [ - "▁", - "bras" - ], - [ - "▁prov", - "iding" - ], - [ - "со", - "м" - ], - [ - "с", - "ом" - ], - [ - "id", - "x" - ], - [ - "i", - "dx" - ], - [ - "emp", - "lo" - ], - [ - "empl", - "o" - ], - [ - "▁ко", - "ли" - ], - [ - "▁", - "коли" - ], - [ - "▁B", - "ere" - ], - [ - "▁Be", - "re" - ], - [ - "▁Ber", - "e" - ], - [ - "▁E", - "ls" - ], - [ - "▁El", - "s" - ], - [ - "ре", - "мен" - ], - [ - "рем", - "ен" - ], - [ - "▁де", - "ка" - ], - [ - "co", - "ut" - ], - [ - "cou", - "t" - ], - [ - "c", - "out" - ], - [ - "la", - "yer" - ], - [ - "lay", - "er" - ], - [ - "l", - "ayer" - ], - [ - "▁g", - "lob" - ], - [ - "▁gl", - "ob" - ], - [ - "▁glo", - "b" - ], - [ - "▁", - "glob" - ], - [ - "fore", - "ach" - ], - [ - "for", - "each" - ], - [ - "▁E", - "ducation" - ], - [ - "▁Edu", - "cation" - ], - [ - "P", - "O" - ], - [ - "▁im", - "prov" - ], - [ - "▁imp", - "rov" - ], - [ - "▁impro", - "v" - ], - [ - "▁impr", - "ov" - ], - [ - "▁cl", - "ients" - ], - [ - "▁client", - "s" - ], - [ - "▁cli", - "ents" - ], - [ - "gr", - "oups" - ], - [ - "group", - "s" - ], - [ - "gro", - "ups" - ], - [ - "▁k", - "ont" - ], - [ - "▁kon", - "t" - ], - [ - "▁ko", - "nt" - ], - [ - "De", - "l" - ], - [ - "D", - "el" - ], - [ - "re", - "tt" - ], - [ - "ret", - "t" - ], - [ - "r", - "ett" - ], - [ - "▁s", - "up" - ], - [ - "▁su", - "p" - ], - [ - "▁", - "sup" - ], - [ - "▁m", - "og" - ], - [ - "▁mo", - "g" - ], - [ - "ta", - "n" - ], - [ - "t", - "an" - ], - [ - "▁com", - "pl" - ], - [ - "▁comp", - "l" - ], - [ - "ir", - "ty" - ], - [ - "irt", - "y" - ], - [ - "▁nouve", - "au" - ], - [ - "os", - "z" - ], - [ - "o", - "sz" - ], - [ - "▁N", - "avy" - ], - [ - "▁Na", - "vy" - ], - [ - "▁Nav", - "y" - ], - [ - "ber", - "e" - ], - [ - "be", - "re" - ], - [ - "b", - "ere" - ], - [ - "ma", - "sk" - ], - [ - "mas", - "k" - ], - [ - "m", - "ask" - ], - [ - "ov", - "é" - ], - [ - "o", - "vé" - ], - [ - "zi", - "l" - ], - [ - "z", - "il" - ], - [ - "PE", - "R" - ], - [ - "P", - "ER" - ], - [ - "▁pobla", - "ción" - ], - [ - "▁població", - "n" - ], - [ - "▁d", - "etailed" - ], - [ - "▁detail", - "ed" - ], - [ - "ле", - "т" - ], - [ - "л", - "ет" - ], - [ - "▁famil", - "ies" - ], - [ - "▁familie", - "s" - ], - [ - "ab", - "et" - ], - [ - "abe", - "t" - ], - [ - "a", - "bet" - ], - [ - "е", - "вич" - ], - [ - "änd", - "er" - ], - [ - "än", - "der" - ], - [ - "ände", - "r" - ], - [ - "ä", - "nder" - ], - [ - "▁å", - "r" - ], - [ - "▁", - "år" - ], - [ - "▁p", - "endant" - ], - [ - "▁b", - "il" - ], - [ - "▁bi", - "l" - ], - [ - "▁", - "bil" - ], - [ - "▁h", - "int" - ], - [ - "▁hi", - "nt" - ], - [ - "▁hin", - "t" - ], - [ - "ode", - "n" - ], - [ - "od", - "en" - ], - [ - "o", - "den" - ], - [ - "▁exp", - "ansion" - ], - [ - "▁p", - "ont" - ], - [ - "▁po", - "nt" - ], - [ - "▁pon", - "t" - ], - [ - "▁", - "pont" - ], - [ - "as", - "ant" - ], - [ - "asa", - "nt" - ], - [ - "▁K", - "ind" - ], - [ - "▁Ki", - "nd" - ], - [ - "▁Kin", - "d" - ], - [ - "▁", - "Kind" - ], - [ - "ij", - "i" - ], - [ - "i", - "ji" - ], - [ - "▁A", - "uth" - ], - [ - "▁Aut", - "h" - ], - [ - "▁Au", - "th" - ], - [ - "▁", - "Auth" - ], - [ - "laim", - "ed" - ], - [ - "ref", - "lect" - ], - [ - "]", - "=" - ], - [ - "by", - "tes" - ], - [ - "byte", - "s" - ], - [ - "ho", - "ver" - ], - [ - "hov", - "er" - ], - [ - "h", - "over" - ], - [ - "▁ц", - "ер" - ], - [ - "▁це", - "р" - ], - [ - "▁", - "цер" - ], - [ - "grad", - "le" - ], - [ - "Ar", - "ch" - ], - [ - "ap", - "est" - ], - [ - "ape", - "st" - ], - [ - "apes", - "t" - ], - [ - "ás", - "a" - ], - [ - "á", - "sa" - ], - [ - "Car", - "d" - ], - [ - "Ca", - "rd" - ], - [ - "C", - "ard" - ], - [ - "▁tempor", - "ary" - ], - [ - "▁départ", - "ement" - ], - [ - "class", - "es" - ], - [ - "жи", - "ва" - ], - [ - "▁х", - "удо" - ], - [ - "▁m", - "ole" - ], - [ - "▁mo", - "le" - ], - [ - "▁mol", - "e" - ], - [ - "R", - "Y" - ], - [ - "L", - "P" - ], - [ - "▁p", - "ec" - ], - [ - "▁pe", - "c" - ], - [ - "▁", - "pec" - ], - [ - "rodu", - "ction" - ], - [ - "▁Gu", - "ard" - ], - [ - "▁Par", - "liament" - ], - [ - "▁inst", - "anti" - ], - [ - "▁instant", - "i" - ], - [ - "▁not", - "amment" - ], - [ - "▁D", - "oug" - ], - [ - "▁Do", - "ug" - ], - [ - "▁Dou", - "g" - ], - [ - "▁Mar", - "sh" - ], - [ - "▁Mars", - "h" - ], - [ - ".", - "~" - ], - [ - "▁\\", - "\"" - ], - [ - "▁", - "\\\"" - ], - [ - "▁t", - "hé" - ], - [ - "▁th", - "é" - ], - [ - "▁li", - "bre" - ], - [ - "▁lib", - "re" - ], - [ - "do", - "es" - ], - [ - "▁dé", - "but" - ], - [ - "▁U", - "nit" - ], - [ - "▁Un", - "it" - ], - [ - "▁", - "Unit" - ], - [ - "▁с", - "ту" - ], - [ - "▁ст", - "у" - ], - [ - "▁", - "сту" - ], - [ - "▁le", - "ague" - ], - [ - "▁qu", - "ale" - ], - [ - "▁q", - "uale" - ], - [ - "▁qual", - "e" - ], - [ - "▁состав", - "ля" - ], - [ - "▁соста", - "вля" - ], - [ - "Se", - "curity" - ], - [ - "Sec", - "urity" - ], - [ - "▁appar", - "ently" - ], - [ - "▁apparent", - "ly" - ], - [ - "▁tro", - "ops" - ], - [ - "ic", - "ano" - ], - [ - "ica", - "no" - ], - [ - "ican", - "o" - ], - [ - "i", - "cano" - ], - [ - "▁M", - "B" - ], - [ - "▁", - "MB" - ], - [ - "en", - "ze" - ], - [ - "enz", - "e" - ], - [ - "lo", - "ading" - ], - [ - "load", - "ing" - ], - [ - "▁dist", - "ributed" - ], - [ - "▁distribu", - "ted" - ], - [ - "▁distrib", - "uted" - ], - [ - "write", - "r" - ], - [ - "writ", - "er" - ], - [ - "wr", - "iter" - ], - [ - "w", - "riter" - ], - [ - "res", - "ources" - ], - [ - "resource", - "s" - ], - [ - "h", - "ö" - ], - [ - "ut", - "ils" - ], - [ - "util", - "s" - ], - [ - "uti", - "ls" - ], - [ - "▁prep", - "ared" - ], - [ - "▁prepar", - "ed" - ], - [ - "▁prepare", - "d" - ], - [ - "ci", - "er" - ], - [ - "cie", - "r" - ], - [ - "c", - "ier" - ], - [ - "op", - "ol" - ], - [ - "opo", - "l" - ], - [ - "o", - "pol" - ], - [ - "▁län", - "kar" - ], - [ - "he", - "s" - ], - [ - "h", - "es" - ], - [ - "н", - "ва" - ], - [ - "▁op", - "ens" - ], - [ - "▁open", - "s" - ], - [ - "▁", - "opens" - ], - [ - "ag", - "og" - ], - [ - "ago", - "g" - ], - [ - "inter", - "face" - ], - [ - "▁F", - "und" - ], - [ - "▁Fu", - "nd" - ], - [ - "▁Fun", - "d" - ], - [ - "▁pent", - "ru" - ], - [ - "ní", - "ch" - ], - [ - "n", - "ích" - ], - [ - "▁config", - "ured" - ], - [ - "▁configure", - "d" - ], - [ - "▁configur", - "ed" - ], - [ - "▁Web", - "site" - ], - [ - "▁list", - "ener" - ], - [ - "▁listen", - "er" - ], - [ - "▁liste", - "ner" - ], - [ - "▁", - "listener" - ], - [ - "iv", - "el" - ], - [ - "ive", - "l" - ], - [ - "i", - "vel" - ], - [ - "n", - "ę" - ], - [ - "min", - "a" - ], - [ - "mi", - "na" - ], - [ - "m", - "ina" - ], - [ - "▁in", - "vest" - ], - [ - "▁inv", - "est" - ], - [ - "▁inve", - "st" - ], - [ - "▁м", - "іс" - ], - [ - "▁мі", - "с" - ], - [ - "▁d", - "av" - ], - [ - "▁da", - "v" - ], - [ - "▁p", - "atch" - ], - [ - "▁pat", - "ch" - ], - [ - "▁", - "patch" - ], - [ - "pi", - "eler" - ], - [ - "piel", - "er" - ], - [ - "pie", - "ler" - ], - [ - "▁Ext", - "erna" - ], - [ - "▁Extern", - "a" - ], - [ - "t", - "f" - ], - [ - "▁e", - "red" - ], - [ - "▁er", - "ed" - ], - [ - "▁ere", - "d" - ], - [ - "▁", - "ered" - ], - [ - "▁Ass", - "embly" - ], - [ - "▁", - "Assembly" - ], - [ - "▁s", - "out" - ], - [ - "▁so", - "ut" - ], - [ - "▁sou", - "t" - ], - [ - "▁v", - "erk" - ], - [ - "▁ver", - "k" - ], - [ - "▁", - "verk" - ], - [ - "me", - "rs" - ], - [ - "mer", - "s" - ], - [ - "m", - "ers" - ], - [ - "t", - "oggle" - ], - [ - "▁up", - "dating" - ], - [ - "▁upd", - "ating" - ], - [ - "▁K", - "ent" - ], - [ - "▁Ke", - "nt" - ], - [ - "▁Ken", - "t" - ], - [ - "ec", - "a" - ], - [ - "e", - "ca" - ], - [ - "FA", - "ULT" - ], - [ - "▁tit", - "re" - ], - [ - "▁ti", - "tre" - ], - [ - "▁K", - "enn" - ], - [ - "▁Ke", - "nn" - ], - [ - "▁Ken", - "n" - ], - [ - "▁Ми", - "ха" - ], - [ - "ст", - "ор" - ], - [ - "сто", - "р" - ], - [ - "с", - "тор" - ], - [ - "▁p", - "ode" - ], - [ - "▁po", - "de" - ], - [ - "▁pod", - "e" - ], - [ - "▁S", - "eb" - ], - [ - "▁Se", - "b" - ], - [ - "це", - "в" - ], - [ - "ц", - "ев" - ], - [ - "E", - "Y" - ], - [ - "▁sil", - "ver" - ], - [ - "▁cap", - "acity" - ], - [ - "▁capac", - "ity" - ], - [ - "▁comple", - "tion" - ], - [ - "▁complet", - "ion" - ], - [ - "▁Pe", - "dro" - ], - [ - "▁Ped", - "ro" - ], - [ - "fe", - "l" - ], - [ - "f", - "el" - ], - [ - "va", - "no" - ], - [ - "van", - "o" - ], - [ - "v", - "ano" - ], - [ - "ze", - "ug" - ], - [ - "▁in", - "terior" - ], - [ - "▁inter", - "ior" - ], - [ - "▁inte", - "rior" - ], - [ - "▁Res", - "ponse" - ], - [ - "▁", - "Response" - ], - [ - "éd", - "ia" - ], - [ - "é", - "dia" - ], - [ - "▁World", - "Cat" - ], - [ - "▁c", - "ă" - ], - [ - "qu", - "el" - ], - [ - "que", - "l" - ], - [ - "q", - "uel" - ], - [ - "So", - "l" - ], - [ - "S", - "ol" - ], - [ - "іс", - "ля" - ], - [ - "▁D", - "omin" - ], - [ - "▁Do", - "min" - ], - [ - "▁Dom", - "in" - ], - [ - "▁c", - "um" - ], - [ - "▁cu", - "m" - ], - [ - "ce", - "p" - ], - [ - "c", - "ep" - ], - [ - "▁M", - "use" - ], - [ - "▁Mus", - "e" - ], - [ - "▁Mu", - "se" - ], - [ - "▁M", - "aría" - ], - [ - "▁Mar", - "ía" - ], - [ - "▁Ma", - "ría" - ], - [ - "▁function", - "al" - ], - [ - "▁ad", - "apter" - ], - [ - "▁adapt", - "er" - ], - [ - "▁", - "adapter" - ], - [ - "config", - "uration" - ], - [ - "▁t", - "ipo" - ], - [ - "▁tip", - "o" - ], - [ - "▁ti", - "po" - ], - [ - "▁B", - "ry" - ], - [ - "▁Br", - "y" - ], - [ - "v", - "y" - ], - [ - "U", - "L" - ], - [ - "▁tra", - "vers" - ], - [ - "▁trav", - "ers" - ], - [ - "!", - "(" - ], - [ - "▁absol", - "utely" - ], - [ - "▁absolute", - "ly" - ], - [ - "л", - "та" - ], - [ - "тт", - "я" - ], - [ - "т", - "тя" - ], - [ - "▁I", - "T" - ], - [ - "▁", - "IT" - ], - [ - "▁во", - "ен" - ], - [ - "yc", - "le" - ], - [ - "y", - "cle" - ], - [ - "be", - "st" - ], - [ - "bes", - "t" - ], - [ - "b", - "est" - ], - [ - "▁construct", - "ed" - ], - [ - "▁constru", - "cted" - ], - [ - "▁фи", - "ль" - ], - [ - "▁", - "филь" - ], - [ - "ci", - "do" - ], - [ - "cid", - "o" - ], - [ - "c", - "ido" - ], - [ - "ex", - "it" - ], - [ - "ga", - "rt" - ], - [ - "gar", - "t" - ], - [ - "g", - "art" - ], - [ - "▁provin", - "cia" - ], - [ - "ve", - "z" - ], - [ - "v", - "ez" - ], - [ - "ci", - "pl" - ], - [ - "cip", - "l" - ], - [ - "▁Face", - "book" - ], - [ - "▁Fac", - "ebook" - ], - [ - "▁y", - "ellow" - ], - [ - "▁", - "yellow" - ], - [ - "▁Sum", - "mer" - ], - [ - "▁point", - "ing" - ], - [ - "▁poss", - "ibility" - ], - [ - "▁possib", - "ility" - ], - [ - "▁possibil", - "ity" - ], - [ - "▁leg", - "isl" - ], - [ - "▁мо", - "ж" - ], - [ - "▁", - "мож" - ], - [ - "de", - "rn" - ], - [ - "der", - "n" - ], - [ - "d", - "ern" - ], - [ - "ко", - "но" - ], - [ - "кон", - "о" - ], - [ - "▁mechan", - "ism" - ], - [ - "▁Bern", - "ard" - ], - [ - "ex", - "pr" - ], - [ - "exp", - "r" - ], - [ - "ло", - "ви" - ], - [ - "лов", - "и" - ], - [ - "л", - "ови" - ], - [ - "▁dig", - "its" - ], - [ - "▁digit", - "s" - ], - [ - "▁de", - "legate" - ], - [ - "▁deleg", - "ate" - ], - [ - "▁", - "delegate" - ], - [ - "og", - "ram" - ], - [ - "o", - "gram" - ], - [ - "▁D", - "ictionary" - ], - [ - "▁", - "Dictionary" - ], - [ - "is", - "y" - ], - [ - "▁s", - "po" - ], - [ - "▁sp", - "o" - ], - [ - "/", - "$" - ], - [ - "clude", - "d" - ], - [ - "clud", - "ed" - ], - [ - "▁M", - "VC" - ], - [ - "▁t", - "ém" - ], - [ - "▁té", - "m" - ], - [ - "▁print", - "ed" - ], - [ - "▁prin", - "ted" - ], - [ - "▁G", - "ott" - ], - [ - "▁Go", - "tt" - ], - [ - "▁Got", - "t" - ], - [ - "▁O", - "m" - ], - [ - "▁", - "Om" - ], - [ - "ans", - "as" - ], - [ - "▁D", - "urch" - ], - [ - "▁Dur", - "ch" - ], - [ - "▁I", - "dent" - ], - [ - "▁Id", - "ent" - ], - [ - "▁Ide", - "nt" - ], - [ - "▁", - "Ident" - ], - [ - "Q", - "U" - ], - [ - "ht", - "m" - ], - [ - "h", - "tm" - ], - [ - "▁S", - "ul" - ], - [ - "▁Su", - "l" - ], - [ - "']", - "." - ], - [ - "'", - "]." - ], - [ - "▁du", - "ty" - ], - [ - "▁dut", - "y" - ], - [ - "▁Aut", - "hor" - ], - [ - "▁Auth", - "or" - ], - [ - "▁", - "Author" - ], - [ - "▁n", - "ě" - ], - [ - "▁", - "ně" - ], - [ - "ow", - "ego" - ], - [ - "owe", - "go" - ], - [ - "pu", - "s" - ], - [ - "p", - "us" - ], - [ - "em", - "bl" - ], - [ - "emb", - "l" - ], - [ - "Exec", - "utor" - ], - [ - "B", - "L" - ], - [ - "▁M", - "ens" - ], - [ - "▁Me", - "ns" - ], - [ - "▁Men", - "s" - ], - [ - "dis", - "patch" - ], - [ - "▁M", - "id" - ], - [ - "▁Mi", - "d" - ], - [ - "ap", - "ps" - ], - [ - "app", - "s" - ], - [ - "Trans", - "form" - ], - [ - "▁D", - "at" - ], - [ - "▁Da", - "t" - ], - [ - "▁", - "Dat" - ], - [ - "▁im", - "pl" - ], - [ - "▁imp", - "l" - ], - [ - "▁", - "impl" - ], - [ - "ou", - "x" - ], - [ - "o", - "ux" - ], - [ - "ho", - "lm" - ], - [ - "hol", - "m" - ], - [ - "▁I", - "ns" - ], - [ - "▁In", - "s" - ], - [ - "▁Emp", - "ire" - ], - [ - "ру", - "п" - ], - [ - "▁Ap", - "ache" - ], - [ - "SI", - "ON" - ], - [ - "S", - "ION" - ], - [ - "▁pass", - "age" - ], - [ - "########", - "########" - ], - [ - "▁ex", - "pressed" - ], - [ - "▁express", - "ed" - ], - [ - "▁expr", - "essed" - ], - [ - "▁expres", - "sed" - ], - [ - "на", - "д" - ], - [ - "▁o", - "l" - ], - [ - "▁", - "ol" - ], - [ - "▁h", - "avia" - ], - [ - "▁ha", - "via" - ], - [ - "▁hav", - "ia" - ], - [ - "▁бо", - "лее" - ], - [ - "▁enjo", - "y" - ], - [ - "form", - "ance" - ], - [ - "▁dim", - "ensions" - ], - [ - "▁dimension", - "s" - ], - [ - "▁ч", - "ер" - ], - [ - "▁че", - "р" - ], - [ - "▁", - "чер" - ], - [ - "Se", - "e" - ], - [ - "S", - "ee" - ], - [ - "▁m", - "outh" - ], - [ - "▁mo", - "uth" - ], - [ - "▁mou", - "th" - ], - [ - "▁", - "mouth" - ], - [ - "▁g", - "au" - ], - [ - "▁ga", - "u" - ], - [ - "ien", - "cy" - ], - [ - "i", - "ency" - ], - [ - "▁Carol", - "ina" - ], - [ - "Dis", - "t" - ], - [ - "Di", - "st" - ], - [ - "D", - "ist" - ], - [ - "rad", - "io" - ], - [ - "li", - "mit" - ], - [ - "lim", - "it" - ], - [ - "l", - "imit" - ], - [ - "/", - "?" - ], - [ - "▁B", - "all" - ], - [ - "▁Ba", - "ll" - ], - [ - "▁Bal", - "l" - ], - [ - "ні", - "сть" - ], - [ - "Mem", - "ber" - ], - [ - "M", - "ember" - ], - [ - "wa", - "ter" - ], - [ - "w", - "ater" - ], - [ - "▁mur", - "der" - ], - [ - "▁stand", - "ing" - ], - [ - "▁stan", - "ding" - ], - [ - "▁", - "standing" - ], - [ - "▁V", - "II" - ], - [ - "▁VI", - "I" - ], - [ - "Cent", - "er" - ], - [ - "C", - "enter" - ], - [ - "pp", - "a" - ], - [ - "p", - "pa" - ], - [ - "ur", - "eau" - ], - [ - "ure", - "au" - ], - [ - "▁Le", - "ip" - ], - [ - "▁ob", - "jet" - ], - [ - "▁obj", - "et" - ], - [ - "▁Act", - "ivity" - ], - [ - "▁Activ", - "ity" - ], - [ - "▁", - "Activity" - ], - [ - "em", - "bers" - ], - [ - "ember", - "s" - ], - [ - "emb", - "ers" - ], - [ - "v", - "r" - ], - [ - "▁con", - "du" - ], - [ - "▁cond", - "u" - ], - [ - "Cell", - "s" - ], - [ - "C", - "ells" - ], - [ - "in", - "us" - ], - [ - "inu", - "s" - ], - [ - "▁'", - "," - ], - [ - "▁", - "'," - ], - [ - "▁af", - "raid" - ], - [ - "▁х", - "а" - ], - [ - "▁", - "ха" - ], - [ - "▁V", - "ic" - ], - [ - "▁Vi", - "c" - ], - [ - "test", - "ing" - ], - [ - "tes", - "ting" - ], - [ - "Tu", - "be" - ], - [ - "T", - "ube" - ], - [ - "▁v", - "ast" - ], - [ - "▁va", - "st" - ], - [ - "▁vas", - "t" - ], - [ - "P", - "M" - ], - [ - "ni", - "h" - ], - [ - "n", - "ih" - ], - [ - "SS", - "N" - ], - [ - "S", - "SN" - ], - [ - "▁Ch", - "ile" - ], - [ - "▁Chi", - "le" - ], - [ - "yl", - "van" - ], - [ - "▁B", - "ow" - ], - [ - "▁Bo", - "w" - ], - [ - "▁relig", - "ion" - ], - [ - "op", - "her" - ], - [ - "oph", - "er" - ], - [ - "ophe", - "r" - ], - [ - "o", - "pher" - ], - [ - "▁C", - "oll" - ], - [ - "▁Col", - "l" - ], - [ - "▁Co", - "ll" - ], - [ - "▁", - "Coll" - ], - [ - "▁dig", - "ital" - ], - [ - "▁digit", - "al" - ], - [ - "zi", - "oni" - ], - [ - "z", - "ioni" - ], - [ - "Se", - "ction" - ], - [ - "Sec", - "tion" - ], - [ - "S", - "ection" - ], - [ - "▁резу", - "льта" - ], - [ - "Foo", - "t" - ], - [ - "F", - "oot" - ], - [ - "con", - "vert" - ], - [ - "conv", - "ert" - ], - [ - "▁rece", - "iving" - ], - [ - "Cont", - "act" - ], - [ - "▁h", - "ero" - ], - [ - "▁he", - "ro" - ], - [ - "▁her", - "o" - ], - [ - "sa", - "m" - ], - [ - "s", - "am" - ], - [ - "▁pos", - "terior" - ], - [ - "▁poster", - "ior" - ], - [ - "▁poste", - "rior" - ], - [ - "ow", - "i" - ], - [ - "o", - "wi" - ], - [ - "An", - "t" - ], - [ - "A", - "nt" - ], - [ - "▁fl", - "ags" - ], - [ - "▁flag", - "s" - ], - [ - "▁fla", - "gs" - ], - [ - "▁", - "flags" - ], - [ - "▁Ze", - "aland" - ], - [ - "▁b", - "ounds" - ], - [ - "▁bound", - "s" - ], - [ - "▁", - "bounds" - ], - [ - "▁where", - "as" - ], - [ - "▁whe", - "reas" - ], - [ - "in", - "fl" - ], - [ - "inf", - "l" - ], - [ - "Pl", - "ay" - ], - [ - "P", - "lay" - ], - [ - "▁d", - "emo" - ], - [ - "▁de", - "mo" - ], - [ - "▁dem", - "o" - ], - [ - "▁", - "demo" - ], - [ - "▁g", - "ibt" - ], - [ - "▁gi", - "bt" - ], - [ - "▁h", - "ospital" - ], - [ - "▁hosp", - "ital" - ], - [ - "▁v", - "olta" - ], - [ - "▁vol", - "ta" - ], - [ - "▁volt", - "a" - ], - [ - "л", - "ё" - ], - [ - "▁f", - "ashion" - ], - [ - "▁ex", - "ceed" - ], - [ - "▁exc", - "eed" - ], - [ - "el", - "enium" - ], - [ - "elen", - "ium" - ], - [ - "It", - "er" - ], - [ - "I", - "ter" - ], - [ - "kr", - "ie" - ], - [ - "k", - "rie" - ], - [ - "▁integr", - "ation" - ], - [ - "▁integra", - "tion" - ], - [ - "▁", - "integration" - ], - [ - "▁Other", - "wise" - ], - [ - "ad", - "u" - ], - [ - "a", - "du" - ], - [ - "Sh", - "e" - ], - [ - "S", - "he" - ], - [ - "on", - "de" - ], - [ - "ond", - "e" - ], - [ - "o", - "nde" - ], - [ - "ui", - "nt" - ], - [ - "u", - "int" - ], - [ - "rad", - "ius" - ], - [ - "▁r", - "am" - ], - [ - "▁ra", - "m" - ], - [ - "▁", - "ram" - ], - [ - "▁ál", - "bum" - ], - [ - "▁т", - "ур" - ], - [ - "▁ту", - "р" - ], - [ - "▁", - "тур" - ], - [ - "▁d", - "y" - ], - [ - "▁", - "dy" - ], - [ - "▁O", - "tt" - ], - [ - "▁Ot", - "t" - ], - [ - "▁пер", - "и" - ], - [ - "▁пе", - "ри" - ], - [ - "re", - "v" - ], - [ - "r", - "ev" - ], - [ - "ri", - "or" - ], - [ - "rio", - "r" - ], - [ - "r", - "ior" - ], - [ - "í", - "d" - ], - [ - "ir", - "at" - ], - [ - "ira", - "t" - ], - [ - "i", - "rat" - ], - [ - "▁в", - "клю" - ], - [ - "▁import", - "ante" - ], - [ - "▁important", - "e" - ], - [ - "▁Du", - "ke" - ], - [ - "▁caus", - "a" - ], - [ - "▁ca", - "usa" - ], - [ - "▁Math", - "emat" - ], - [ - "▁di", - "plom" - ], - [ - "▁N", - "icol" - ], - [ - "▁Nic", - "ol" - ], - [ - "▁Ni", - "col" - ], - [ - "▁ex", - "clus" - ], - [ - "▁exc", - "lus" - ], - [ - "▁debug", - "ging" - ], - [ - "▁G", - "h" - ], - [ - "or", - "iginal" - ], - [ - "origin", - "al" - ], - [ - "orig", - "inal" - ], - [ - "ly", - "n" - ], - [ - "l", - "yn" - ], - [ - "▁P", - "la" - ], - [ - "▁Pl", - "a" - ], - [ - "su", - "ite" - ], - [ - "suit", - "e" - ], - [ - "ch", - "at" - ], - [ - "cha", - "t" - ], - [ - "c", - "hat" - ], - [ - "▁e", - "stud" - ], - [ - "▁est", - "ud" - ], - [ - "ue", - "lle" - ], - [ - "uel", - "le" - ], - [ - "u", - "elle" - ], - [ - "▁p", - "ert" - ], - [ - "▁per", - "t" - ], - [ - "▁pe", - "rt" - ], - [ - "▁", - "pert" - ], - [ - "▁import", - "ance" - ], - [ - "▁appro", - "aches" - ], - [ - "▁approach", - "es" - ], - [ - "▁d", - "la" - ], - [ - "▁про", - "ф" - ], - [ - "Pr", - "es" - ], - [ - "Pre", - "s" - ], - [ - "P", - "res" - ], - [ - "<", - "\\" - ], - [ - "pre", - "fix" - ], - [ - "p", - "refix" - ], - [ - "SS", - "ION" - ], - [ - "S", - "SION" - ], - [ - "ро", - "ди" - ], - [ - "род", - "и" - ], - [ - "count", - "ry" - ], - [ - "c", - "ountry" - ], - [ - "it", - "zer" - ], - [ - "itz", - "er" - ], - [ - "▁ко", - "р" - ], - [ - "▁к", - "ор" - ], - [ - "▁", - "кор" - ], - [ - "▁sing", - "ular" - ], - [ - "go", - "v" - ], - [ - "g", - "ov" - ], - [ - "ри", - "н" - ], - [ - "р", - "ин" - ], - [ - "▁F", - "A" - ], - [ - "▁", - "FA" - ], - [ - "▁mat", - "rices" - ], - [ - "ol", - "are" - ], - [ - "ola", - "re" - ], - [ - "olar", - "e" - ], - [ - "o", - "lare" - ], - [ - "ni", - "ka" - ], - [ - "nik", - "a" - ], - [ - "n", - "ika" - ], - [ - "po", - "wer" - ], - [ - "pow", - "er" - ], - [ - "p", - "ower" - ], - [ - "ll", - "a" - ], - [ - "l", - "la" - ], - [ - "▁des", - "ire" - ], - [ - "▁famil", - "ia" - ], - [ - "▁fam", - "ilia" - ], - [ - "до", - "р" - ], - [ - "д", - "ор" - ], - [ - "▁f", - "an" - ], - [ - "▁fa", - "n" - ], - [ - "▁", - "fan" - ], - [ - "gener", - "ated" - ], - [ - "generate", - "d" - ], - [ - "▁C", - "os" - ], - [ - "▁Co", - "s" - ], - [ - "▁ż", - "e" - ], - [ - "▁", - "że" - ], - [ - "▁D", - "iese" - ], - [ - "▁Die", - "se" - ], - [ - "▁Di", - "ese" - ], - [ - "▁Dies", - "e" - ], - [ - "mo", - "v" - ], - [ - "m", - "ov" - ], - [ - "▁de", - "note" - ], - [ - "▁den", - "ote" - ], - [ - "\")", - "]" - ], - [ - "\"", - ")]" - ], - [ - "ou", - "vern" - ], - [ - "ouv", - "ern" - ], - [ - "ouve", - "rn" - ], - [ - "ouver", - "n" - ], - [ - "am", - "an" - ], - [ - "ama", - "n" - ], - [ - "a", - "man" - ], - [ - "▁in", - "ser" - ], - [ - "▁ins", - "er" - ], - [ - "▁inse", - "r" - ], - [ - "ij", - "k" - ], - [ - "i", - "jk" - ], - [ - "ot", - "ta" - ], - [ - "ott", - "a" - ], - [ - "o", - "tta" - ], - [ - "er", - "al" - ], - [ - "era", - "l" - ], - [ - "e", - "ral" - ], - [ - "де", - "ль" - ], - [ - "д", - "ель" - ], - [ - "()", - "->" - ], - [ - "(", - ")->" - ], - [ - "▁p", - "oder" - ], - [ - "▁po", - "der" - ], - [ - "▁pod", - "er" - ], - [ - "▁pode", - "r" - ], - [ - "ig", - "es" - ], - [ - "ige", - "s" - ], - [ - "i", - "ges" - ], - [ - "▁On", - "line" - ], - [ - "▁we", - "ird" - ], - [ - "ia", - "c" - ], - [ - "i", - "ac" - ], - [ - "▁quel", - "ques" - ], - [ - "▁quelque", - "s" - ], - [ - "ère", - "nt" - ], - [ - "è", - "rent" - ], - [ - "▁t", - "el" - ], - [ - "▁te", - "l" - ], - [ - "▁", - "tel" - ], - [ - "▁L", - "atin" - ], - [ - "▁Lat", - "in" - ], - [ - "ver", - "ter" - ], - [ - "vert", - "er" - ], - [ - "verte", - "r" - ], - [ - "ля", - "р" - ], - [ - "ро", - "и" - ], - [ - "▁p", - "df" - ], - [ - "▁pd", - "f" - ], - [ - "▁", - "pdf" - ], - [ - "▁key", - "word" - ], - [ - "▁", - "keyword" - ], - [ - "Hand", - "le" - ], - [ - "A", - "fter" - ], - [ - "re", - "ce" - ], - [ - "rec", - "e" - ], - [ - "▁ident", - "ical" - ], - [ - "style", - "sheet" - ], - [ - "styles", - "heet" - ], - [ - "▁стан", - "ови" - ], - [ - "▁станов", - "и" - ], - [ - "▁k", - "a" - ], - [ - "▁", - "ka" - ], - [ - "ce", - "ment" - ], - [ - "cem", - "ent" - ], - [ - "c", - "ement" - ], - [ - "те", - "т" - ], - [ - "т", - "ет" - ], - [ - "▁c", - "hat" - ], - [ - "▁ch", - "at" - ], - [ - "▁cha", - "t" - ], - [ - "▁", - "chat" - ], - [ - "▁M", - "un" - ], - [ - "▁Mu", - "n" - ], - [ - "ał", - "a" - ], - [ - "a", - "ła" - ], - [ - "AN", - "T" - ], - [ - "A", - "NT" - ], - [ - "ol", - "óg" - ], - [ - "▁f", - "ant" - ], - [ - "▁fa", - "nt" - ], - [ - "▁fan", - "t" - ], - [ - "▁for", - "est" - ], - [ - "▁fo", - "rest" - ], - [ - "▁fore", - "st" - ], - [ - "▁ви", - "ко" - ], - [ - "cu", - "ss" - ], - [ - "cus", - "s" - ], - [ - "c", - "uss" - ], - [ - "▁se", - "hr" - ], - [ - "pa", - "g" - ], - [ - "p", - "ag" - ], - [ - "ot", - "ic" - ], - [ - "oti", - "c" - ], - [ - "▁á", - "ll" - ], - [ - "▁ál", - "l" - ], - [ - "▁", - "áll" - ], - [ - "ма", - "ти" - ], - [ - "мат", - "и" - ], - [ - "▁\"", - "'" - ], - [ - "+", - "\"" - ], - [ - "An", - "imation" - ], - [ - "Anim", - "ation" - ], - [ - "ходи", - "т" - ], - [ - "ход", - "ит" - ], - [ - "az", - "u" - ], - [ - "a", - "zu" - ], - [ - "▁pl", - "ays" - ], - [ - "▁play", - "s" - ], - [ - "▁pla", - "ys" - ], - [ - "▁", - "plays" - ], - [ - "iz", - "ioni" - ], - [ - "izi", - "oni" - ], - [ - "izio", - "ni" - ], - [ - "i", - "zioni" - ], - [ - "ми", - "че" - ], - [ - "▁b", - "omb" - ], - [ - "▁bo", - "mb" - ], - [ - "▁bom", - "b" - ], - [ - "▁mer", - "ely" - ], - [ - "▁mere", - "ly" - ], - [ - "▁hold", - "ing" - ], - [ - "▁hol", - "ding" - ], - [ - "▁w", - "enn" - ], - [ - "▁we", - "nn" - ], - [ - "▁wen", - "n" - ], - [ - "▁m", - "edic" - ], - [ - "▁me", - "dic" - ], - [ - "▁med", - "ic" - ], - [ - "▁medi", - "c" - ], - [ - "▁spe", - "aking" - ], - [ - "▁speak", - "ing" - ], - [ - "ong", - "odb" - ], - [ - "ongo", - "db" - ], - [ - "▁Cam", - "pe" - ], - [ - "▁Camp", - "e" - ], - [ - "in", - "ity" - ], - [ - "ini", - "ty" - ], - [ - "init", - "y" - ], - [ - "▁я", - "нва" - ], - [ - "()", - "`." - ], - [ - "()`", - "." - ], - [ - "(", - ")`." - ], - [ - "lu", - "ss" - ], - [ - "lus", - "s" - ], - [ - "l", - "uss" - ], - [ - "▁H", - "istoire" - ], - [ - "▁His", - "toire" - ], - [ - "▁Hist", - "oire" - ], - [ - "▁oper", - "ating" - ], - [ - "▁opera", - "ting" - ], - [ - "Ch", - "annel" - ], - [ - "▁accur", - "acy" - ], - [ - "▁b", - "os" - ], - [ - "▁bo", - "s" - ], - [ - "▁", - "bos" - ], - [ - "▁ev", - "ident" - ], - [ - "ци", - "ю" - ], - [ - "event", - "s" - ], - [ - "ev", - "ents" - ], - [ - "even", - "ts" - ], - [ - "text", - "rm" - ], - [ - "or", - "eign" - ], - [ - "ore", - "ign" - ], - [ - "▁i", - "i" - ], - [ - "▁", - "ii" - ], - [ - "hr", - "en" - ], - [ - "hre", - "n" - ], - [ - "h", - "ren" - ], - [ - "lo", - "wer" - ], - [ - "low", - "er" - ], - [ - "l", - "ower" - ], - [ - "▁т", - "ом" - ], - [ - "▁то", - "м" - ], - [ - "▁", - "том" - ], - [ - "▁Ab", - "out" - ], - [ - "▁", - "About" - ], - [ - "▁a", - "j" - ], - [ - "▁", - "aj" - ], - [ - "er", - "i" - ], - [ - "e", - "ri" - ], - [ - "сту", - "пи" - ], - [ - "ступ", - "и" - ], - [ - "▁di", - "git" - ], - [ - "▁dig", - "it" - ], - [ - "▁", - "digit" - ], - [ - "▁Sp", - "ain" - ], - [ - "▁D", - "aten" - ], - [ - "▁Date", - "n" - ], - [ - "▁Da", - "ten" - ], - [ - "▁Dat", - "en" - ], - [ - "▁for", - "me" - ], - [ - "▁form", - "e" - ], - [ - "▁ш", - "та" - ], - [ - "▁", - "шта" - ], - [ - "▁B", - "ach" - ], - [ - "▁Ba", - "ch" - ], - [ - "▁Bac", - "h" - ], - [ - "no", - "number" - ], - [ - "non", - "umber" - ], - [ - "▁recomm", - "ended" - ], - [ - "▁recommend", - "ed" - ], - [ - "▁re", - "ads" - ], - [ - "▁read", - "s" - ], - [ - "his", - "toire" - ], - [ - "h", - "istoire" - ], - [ - "▁s", - "ang" - ], - [ - "▁sa", - "ng" - ], - [ - "▁san", - "g" - ], - [ - "▁?", - "?" - ], - [ - "▁", - "??" - ], - [ - "▁с", - "тал" - ], - [ - "▁ст", - "ал" - ], - [ - "▁ста", - "л" - ], - [ - "sc", - "ore" - ], - [ - "s", - "core" - ], - [ - "fa", - "s" - ], - [ - "f", - "as" - ], - [ - "▁c", - "ub" - ], - [ - "▁cu", - "b" - ], - [ - "▁g", - "rew" - ], - [ - "▁gr", - "ew" - ], - [ - "▁gre", - "w" - ], - [ - "▁cent", - "ro" - ], - [ - "▁bek", - "annt" - ], - [ - "Event", - "s" - ], - [ - "BE", - "R" - ], - [ - "B", - "ER" - ], - [ - "he", - "w" - ], - [ - "h", - "ew" - ], - [ - "сс", - "а" - ], - [ - "с", - "са" - ], - [ - "▁major", - "ity" - ], - [ - "ît", - "re" - ], - [ - "î", - "tre" - ], - [ - "en", - "ci" - ], - [ - "enc", - "i" - ], - [ - "▁Qu", - "ery" - ], - [ - "▁Que", - "ry" - ], - [ - "▁", - "Query" - ], - [ - "▁któ", - "re" - ], - [ - "i", - "ć" - ], - [ - "▁complex", - "ity" - ], - [ - "▁Fran", - "çois" - ], - [ - "const", - "raint" - ], - [ - "ур", - "на" - ], - [ - "═", - "═" - ], - [ - "▁iter", - "ate" - ], - [ - "le", - "tt" - ], - [ - "let", - "t" - ], - [ - "l", - "ett" - ], - [ - "pe", - "ror" - ], - [ - "per", - "or" - ], - [ - "▁Neder", - "land" - ], - [ - "sh", - "are" - ], - [ - "sha", - "re" - ], - [ - "▁incl", - "u" - ], - [ - "▁inc", - "lu" - ], - [ - "än", - "ger" - ], - [ - "äng", - "er" - ], - [ - "änge", - "r" - ], - [ - "▁N", - "ic" - ], - [ - "▁Ni", - "c" - ], - [ - "ч", - "о" - ], - [ - "F", - "ull" - ], - [ - "▁ra", - "pport" - ], - [ - "▁rapp", - "ort" - ], - [ - "▁rap", - "port" - ], - [ - "ec", - "lipse" - ], - [ - "e", - "clipse" - ], - [ - "▁indust", - "ry" - ], - [ - "he", - "aders" - ], - [ - "head", - "ers" - ], - [ - "header", - "s" - ], - [ - "▁Р", - "и" - ], - [ - "ch", - "sel" - ], - [ - "chs", - "el" - ], - [ - "▁po", - "lic" - ], - [ - "▁pol", - "ic" - ], - [ - "sch", - "ied" - ], - [ - "%", - "," - ], - [ - "O", - "D" - ], - [ - "▁J", - "ak" - ], - [ - "▁Ja", - "k" - ], - [ - "({", - "\\" - ], - [ - "(", - "{\\" - ], - [ - "al", - "igned" - ], - [ - "align", - "ed" - ], - [ - "▁frequ", - "ently" - ], - [ - "▁frequent", - "ly" - ], - [ - "▁su", - "oi" - ], - [ - "▁suo", - "i" - ], - [ - "▁ess", - "entially" - ], - [ - "▁essential", - "ly" - ], - [ - "▁R", - "ic" - ], - [ - "▁Ri", - "c" - ], - [ - "▁re", - "ports" - ], - [ - "▁report", - "s" - ], - [ - "▁dec", - "imal" - ], - [ - "ra", - "r" - ], - [ - "r", - "ar" - ], - [ - "▁F", - "oo" - ], - [ - "▁Fo", - "o" - ], - [ - "▁", - "Foo" - ], - [ - "▁K", - "a" - ], - [ - "▁D", - "C" - ], - [ - "▁", - "DC" - ], - [ - "▁sim", - "pler" - ], - [ - "▁simple", - "r" - ], - [ - "▁simp", - "ler" - ], - [ - "▁simpl", - "er" - ], - [ - "Pa", - "ne" - ], - [ - "Pan", - "e" - ], - [ - "P", - "ane" - ], - [ - "?", - "}" - ], - [ - "So", - "rt" - ], - [ - "S", - "ort" - ], - [ - "▁pos", - "it" - ], - [ - "cd", - "n" - ], - [ - "c", - "dn" - ], - [ - "kt", - "ur" - ], - [ - "▁aw", - "k" - ], - [ - "▁", - "awk" - ], - [ - "зе", - "р" - ], - [ - "з", - "ер" - ], - [ - "P", - "F" - ], - [ - "u", - "ur" - ], - [ - "▁R", - "oss" - ], - [ - "▁Ro", - "ss" - ], - [ - "▁Ros", - "s" - ], - [ - "▁m", - "ant" - ], - [ - "▁ma", - "nt" - ], - [ - "▁man", - "t" - ], - [ - "N", - "a" - ], - [ - "Con", - "s" - ], - [ - "Co", - "ns" - ], - [ - "C", - "ons" - ], - [ - "))", - "))" - ], - [ - ")))", - ")" - ], - [ - ")", - ")))" - ], - [ - "▁techn", - "iques" - ], - [ - "▁techni", - "ques" - ], - [ - "▁technique", - "s" - ], - [ - "im", - "pl" - ], - [ - "imp", - "l" - ], - [ - "▁dro", - "pped" - ], - [ - "▁drop", - "ped" - ], - [ - "▁L", - "ista" - ], - [ - "▁List", - "a" - ], - [ - "▁Li", - "sta" - ], - [ - "▁Lis", - "ta" - ], - [ - "▁Bas", - "ically" - ], - [ - "▁Basic", - "ally" - ], - [ - "en", - "tal" - ], - [ - "ent", - "al" - ], - [ - "enta", - "l" - ], - [ - "▁cel", - "ui" - ], - [ - "▁str", - "ategy" - ], - [ - "▁strateg", - "y" - ], - [ - "▁strat", - "egy" - ], - [ - "▁W", - "ales" - ], - [ - "▁Wal", - "es" - ], - [ - "▁Wa", - "les" - ], - [ - "na", - "n" - ], - [ - "n", - "an" - ], - [ - "▁g", - "min" - ], - [ - "▁gr", - "öß" - ], - [ - "▁eer", - "ste" - ], - [ - "▁eerst", - "e" - ], - [ - "T", - "im" - ], - [ - "nt", - "en" - ], - [ - "n", - "ten" - ], - [ - "re", - "sp" - ], - [ - "res", - "p" - ], - [ - "r", - "esp" - ], - [ - "▁s", - "table" - ], - [ - "▁st", - "able" - ], - [ - "▁sta", - "ble" - ], - [ - "▁", - "stable" - ], - [ - "no", - "v" - ], - [ - "n", - "ov" - ], - [ - "ro", - "b" - ], - [ - "r", - "ob" - ], - [ - "но", - "ј" - ], - [ - "▁mar", - "riage" - ], - [ - "get", - "String" - ], - [ - "Aut", - "hor" - ], - [ - "Auth", - "or" - ], - [ - "▁G", - "raf" - ], - [ - "▁Gr", - "af" - ], - [ - "▁Gra", - "f" - ], - [ - "▁di", - "agram" - ], - [ - "▁diag", - "ram" - ], - [ - "▁dia", - "gram" - ], - [ - "gi", - "a" - ], - [ - "g", - "ia" - ], - [ - "Net", - "work" - ], - [ - "N", - "etwork" - ], - [ - "▁com", - "posed" - ], - [ - "▁comp", - "osed" - ], - [ - "▁compos", - "ed" - ], - [ - "▁compose", - "d" - ], - [ - "▁miss", - "ed" - ], - [ - "▁mis", - "sed" - ], - [ - "▁M", - "eg" - ], - [ - "▁Me", - "g" - ], - [ - "▁пра", - "во" - ], - [ - "▁прав", - "о" - ], - [ - "▁hom", - "onymes" - ], - [ - "▁Bo", - "oks" - ], - [ - "▁Book", - "s" - ], - [ - "▁en", - "cou" - ], - [ - "▁enc", - "ou" - ], - [ - "port", - "e" - ], - [ - "por", - "te" - ], - [ - "p", - "orte" - ], - [ - "▁rot", - "ation" - ], - [ - "▁f", - "ir" - ], - [ - "▁fi", - "r" - ], - [ - "▁", - "fir" - ], - [ - "те", - "льно" - ], - [ - "тель", - "но" - ], - [ - "▁g", - "un" - ], - [ - "▁gu", - "n" - ], - [ - "▁", - "gun" - ], - [ - "▁A", - "ff" - ], - [ - "▁Af", - "f" - ], - [ - "▁", - "Aff" - ], - [ - "но", - "к" - ], - [ - "н", - "ок" - ], - [ - "▁Fuß", - "ball" - ], - [ - "▁St", - "ory" - ], - [ - "▁Sto", - "ry" - ], - [ - "▁", - "Story" - ], - [ - "▁Ch", - "ap" - ], - [ - "▁Cha", - "p" - ], - [ - "▁)", - "." - ], - [ - "▁", - ")." - ], - [ - "▁Se", - "it" - ], - [ - "мо", - "н" - ], - [ - "м", - "он" - ], - [ - "▁t", - "élé" - ], - [ - "▁té", - "lé" - ], - [ - "▁cop", - "ied" - ], - [ - "▁cons", - "istent" - ], - [ - "▁consist", - "ent" - ], - [ - "▁dr", - "ink" - ], - [ - "▁C", - "ham" - ], - [ - "▁Ch", - "am" - ], - [ - "▁Cha", - "m" - ], - [ - "▁mat", - "ters" - ], - [ - "▁matter", - "s" - ], - [ - "▁render", - "ed" - ], - [ - "▁rend", - "ered" - ], - [ - "▁rende", - "red" - ], - [ - "▁hyp", - "oth" - ], - [ - "œ", - "uv" - ], - [ - "▁me", - "er" - ], - [ - "▁par", - "sing" - ], - [ - "▁P", - "RO" - ], - [ - "▁PR", - "O" - ], - [ - "▁", - "PRO" - ], - [ - "se", - "ries" - ], - [ - "ser", - "ies" - ], - [ - "serie", - "s" - ], - [ - "s", - "eries" - ], - [ - "▁z", - "á" - ], - [ - "▁", - "zá" - ], - [ - "stra", - "ße" - ], - [ - "▁B", - "oot" - ], - [ - "▁Bo", - "ot" - ], - [ - "▁", - "Boot" - ], - [ - "▁re", - "po" - ], - [ - "▁rep", - "o" - ], - [ - "▁", - "repo" - ], - [ - "wo", - "r" - ], - [ - "w", - "or" - ], - [ - "▁St", - "ream" - ], - [ - "▁Stre", - "am" - ], - [ - "▁", - "Stream" - ], - [ - "▁A", - "N" - ], - [ - "▁", - "AN" - ], - [ - "▁п", - "ів" - ], - [ - "▁пі", - "в" - ], - [ - "▁S", - "M" - ], - [ - "▁", - "SM" - ], - [ - "▁A", - "rn" - ], - [ - "▁Ar", - "n" - ], - [ - "▁", - "Ž" - ], - [ - "▁[", - "];" - ], - [ - "▁[]", - ";" - ], - [ - "Res", - "ources" - ], - [ - "Resource", - "s" - ], - [ - "▁el", - "abor" - ], - [ - "▁ela", - "bor" - ], - [ - "▁E", - "th" - ], - [ - "▁Et", - "h" - ], - [ - "▁l", - "iste" - ], - [ - "▁li", - "ste" - ], - [ - "▁list", - "e" - ], - [ - "▁rel", - "atively" - ], - [ - "▁relative", - "ly" - ], - [ - "▁relativ", - "ely" - ], - [ - "ch", - "ant" - ], - [ - "chan", - "t" - ], - [ - "cha", - "nt" - ], - [ - "=\"", - "\"" - ], - [ - "=", - "\"\"" - ], - [ - "▁l", - "ift" - ], - [ - "▁li", - "ft" - ], - [ - "▁lif", - "t" - ], - [ - "C", - "N" - ], - [ - "Service", - "s" - ], - [ - "Serv", - "ices" - ], - [ - "ME", - "NT" - ], - [ - "M", - "ENT" - ], - [ - "▁и", - "гра" - ], - [ - "▁иг", - "ра" - ], - [ - "▁", - "игра" - ], - [ - "б", - "ре" - ], - [ - "▁J", - "ord" - ], - [ - "▁Jo", - "rd" - ], - [ - "▁t", - "ec" - ], - [ - "▁te", - "c" - ], - [ - "ш", - "ка" - ], - [ - "▁S", - "up" - ], - [ - "▁Su", - "p" - ], - [ - "▁infl", - "uen" - ], - [ - "▁influ", - "en" - ], - [ - "on", - "ds" - ], - [ - "ond", - "s" - ], - [ - "hand", - "ler" - ], - [ - "handle", - "r" - ], - [ - "▁b", - "anda" - ], - [ - "▁band", - "a" - ], - [ - "▁ban", - "da" - ], - [ - "▁vert", - "ices" - ], - [ - "▁z", - "ap" - ], - [ - "▁za", - "p" - ], - [ - "▁c", - "ord" - ], - [ - "▁cor", - "d" - ], - [ - "▁co", - "rd" - ], - [ - "▁", - "cord" - ], - [ - "al", - "ter" - ], - [ - "alt", - "er" - ], - [ - "ze", - "nia" - ], - [ - "zen", - "ia" - ], - [ - "z", - "enia" - ], - [ - "ât", - "eau" - ], - [ - "âte", - "au" - ], - [ - "▁know", - "ing" - ], - [ - "▁Argent", - "ina" - ], - [ - "Ar", - "ea" - ], - [ - "Are", - "a" - ], - [ - "A", - "rea" - ], - [ - "ан", - "е" - ], - [ - "а", - "не" - ], - [ - "f", - "c" - ], - [ - "=\"", - "/" - ], - [ - "=", - "\"/" - ], - [ - "▁M", - "ik" - ], - [ - "▁Mi", - "k" - ], - [ - "at", - "ă" - ], - [ - "ie", - "ux" - ], - [ - "ieu", - "x" - ], - [ - "▁deutsch", - "en" - ], - [ - "▁deutsche", - "n" - ], - [ - "▁trad", - "itional" - ], - [ - "▁tradition", - "al" - ], - [ - "de", - "code" - ], - [ - "dec", - "ode" - ], - [ - "ve", - "x" - ], - [ - "v", - "ex" - ], - [ - "▁size", - "of" - ], - [ - "▁", - "sizeof" - ], - [ - "▁F", - "un" - ], - [ - "▁Fu", - "n" - ], - [ - "▁", - "Fun" - ], - [ - "▁par", - "ser" - ], - [ - "▁parse", - "r" - ], - [ - "▁", - "parser" - ], - [ - "▁Flor", - "ida" - ], - [ - "▁build", - "ings" - ], - [ - "▁building", - "s" - ], - [ - "▁Man", - "uel" - ], - [ - "ri", - "le" - ], - [ - "ril", - "e" - ], - [ - "r", - "ile" - ], - [ - "▁log", - "ged" - ], - [ - "▁strong", - "ly" - ], - [ - "▁re", - "vol" - ], - [ - "▁rev", - "ol" - ], - [ - "не", - "е" - ], - [ - "xi", - "co" - ], - [ - "xic", - "o" - ], - [ - "x", - "ico" - ], - [ - "▁F", - "air" - ], - [ - "▁Fa", - "ir" - ], - [ - "ca", - "rt" - ], - [ - "car", - "t" - ], - [ - "c", - "art" - ], - [ - "▁W", - "ort" - ], - [ - "▁Wo", - "rt" - ], - [ - "▁Wor", - "t" - ], - [ - "▁Jes", - "us" - ], - [ - "em", - "es" - ], - [ - "eme", - "s" - ], - [ - "e", - "mes" - ], - [ - "sch", - "rift" - ], - [ - "Input", - "Stream" - ], - [ - "wa", - "d" - ], - [ - "w", - "ad" - ], - [ - "▁gran", - "des" - ], - [ - "▁grand", - "es" - ], - [ - "▁grande", - "s" - ], - [ - "▁númer", - "o" - ], - [ - "▁O", - "tto" - ], - [ - "▁Ot", - "to" - ], - [ - "▁Ott", - "o" - ], - [ - "ien", - "tes" - ], - [ - "ient", - "es" - ], - [ - "iente", - "s" - ], - [ - "i", - "entes" - ], - [ - "▁fam", - "ous" - ], - [ - "ol", - "ogne" - ], - [ - "olog", - "ne" - ], - [ - "J", - "e" - ], - [ - "ни", - "ш" - ], - [ - "▁Guer", - "ra" - ], - [ - "bar", - "a" - ], - [ - "ba", - "ra" - ], - [ - "b", - "ara" - ], - [ - "▁c", - "ad" - ], - [ - "▁ca", - "d" - ], - [ - "el", - "ve" - ], - [ - "br", - "ace" - ], - [ - "bra", - "ce" - ], - [ - "b", - "race" - ], - [ - "▁J", - "r" - ], - [ - "st", - "able" - ], - [ - "sta", - "ble" - ], - [ - "stab", - "le" - ], - [ - "s", - "table" - ], - [ - "EC", - "T" - ], - [ - "E", - "CT" - ], - [ - "lem", - "ma" - ], - [ - "med", - "iate" - ], - [ - "medi", - "ate" - ], - [ - "media", - "te" - ], - [ - "▁v", - "in" - ], - [ - "▁vi", - "n" - ], - [ - "▁", - "vin" - ], - [ - "▁mon", - "ument" - ], - [ - "▁c", - "v" - ], - [ - "▁", - "cv" - ], - [ - "▁w", - "inter" - ], - [ - "▁win", - "ter" - ], - [ - "▁trans", - "formation" - ], - [ - "▁transform", - "ation" - ], - [ - "▁N", - "ick" - ], - [ - "▁Nic", - "k" - ], - [ - "▁Ni", - "ck" - ], - [ - "str", - "onom" - ], - [ - "▁f", - "rag" - ], - [ - "▁fr", - "ag" - ], - [ - "▁fra", - "g" - ], - [ - "▁in", - "tel" - ], - [ - "▁int", - "el" - ], - [ - "▁inte", - "l" - ], - [ - "ra", - "ction" - ], - [ - "rac", - "tion" - ], - [ - "ract", - "ion" - ], - [ - "r", - "action" - ], - [ - "▁consider", - "ing" - ], - [ - "▁consid", - "ering" - ], - [ - "▁F", - "le" - ], - [ - "▁Fl", - "e" - ], - [ - "▁", - "ло" - ], - [ - "▁A", - "près" - ], - [ - "▁Ap", - "rès" - ], - [ - "▁A", - "M" - ], - [ - "▁", - "AM" - ], - [ - "▁H", - "um" - ], - [ - "▁Hu", - "m" - ], - [ - "▁m", - "undo" - ], - [ - "NE", - "R" - ], - [ - "N", - "ER" - ], - [ - "▁Be", - "low" - ], - [ - "▁Bel", - "ow" - ], - [ - "▁го", - "рода" - ], - [ - "▁горо", - "да" - ], - [ - "▁город", - "а" - ], - [ - "ar", - "ters" - ], - [ - "art", - "ers" - ], - [ - "arter", - "s" - ], - [ - "arte", - "rs" - ], - [ - "--", - "\"" - ], - [ - "▁П", - "е" - ], - [ - "▁", - "Пе" - ], - [ - "î", - "t" - ], - [ - "▁t", - "xt" - ], - [ - "▁tx", - "t" - ], - [ - "▁", - "txt" - ], - [ - "an", - "gers" - ], - [ - "ang", - "ers" - ], - [ - "ange", - "rs" - ], - [ - "anger", - "s" - ], - [ - "▁t", - "hy" - ], - [ - "▁th", - "y" - ], - [ - "▁", - "thy" - ], - [ - "CL", - "A" - ], - [ - "C", - "LA" - ], - [ - "ib", - "les" - ], - [ - "ible", - "s" - ], - [ - "i", - "bles" - ], - [ - "▁request", - "ed" - ], - [ - "▁requ", - "ested" - ], - [ - "▁Alex", - "and" - ], - [ - "▁fact", - "ors" - ], - [ - "▁fa", - "ctors" - ], - [ - "▁factor", - "s" - ], - [ - "▁produ", - "ces" - ], - [ - "▁produce", - "s" - ], - [ - "ning", - "en" - ], - [ - "n", - "ingen" - ], - [ - "▁со", - "стоя" - ], - [ - "▁optim", - "ization" - ], - [ - "ch", - "od" - ], - [ - "cho", - "d" - ], - [ - "c", - "hod" - ], - [ - ">", - "`" - ], - [ - "▁Wik", - "ip" - ], - [ - "nost", - "i" - ], - [ - "nos", - "ti" - ], - [ - "n", - "osti" - ], - [ - "▁compet", - "ition" - ], - [ - "▁H", - "ann" - ], - [ - "▁Ha", - "nn" - ], - [ - "▁Han", - "n" - ], - [ - "▁z", - "ona" - ], - [ - "▁zo", - "na" - ], - [ - "d", - "c" - ], - [ - "de", - "sign" - ], - [ - "des", - "ign" - ], - [ - "▁Z", - "u" - ], - [ - "▁e", - "spec" - ], - [ - "▁es", - "pec" - ], - [ - "▁espe", - "c" - ], - [ - "▁esp", - "ec" - ], - [ - "equ", - "ality" - ], - [ - "equal", - "ity" - ], - [ - "e", - "quality" - ], - [ - "▁A", - "bb" - ], - [ - "▁Ab", - "b" - ], - [ - "▁develop", - "er" - ], - [ - "▁", - "developer" - ], - [ - "▁\"", - "^" - ], - [ - "▁Sh", - "ort" - ], - [ - "▁Sho", - "rt" - ], - [ - "▁", - "Short" - ], - [ - "▁pl", - "ans" - ], - [ - "▁pla", - "ns" - ], - [ - "▁plan", - "s" - ], - [ - "▁v", - "it" - ], - [ - "▁vi", - "t" - ], - [ - "iz", - "able" - ], - [ - "iza", - "ble" - ], - [ - "burg", - "h" - ], - [ - "bur", - "gh" - ], - [ - "ag", - "em" - ], - [ - "age", - "m" - ], - [ - "a", - "gem" - ], - [ - "▁Pr", - "int" - ], - [ - "▁Pri", - "nt" - ], - [ - "▁Prin", - "t" - ], - [ - "▁", - "Print" - ], - [ - "í", - "v" - ], - [ - "▁su", - "itable" - ], - [ - "▁suit", - "able" - ], - [ - "pi", - "cker" - ], - [ - "pic", - "ker" - ], - [ - "pick", - "er" - ], - [ - "p", - "icker" - ], - [ - "Pro", - "file" - ], - [ - "an", - "dy" - ], - [ - "and", - "y" - ], - [ - "▁qu", - "ot" - ], - [ - "▁", - "quot" - ], - [ - "▁Dur", - "ante" - ], - [ - "▁Durant", - "e" - ], - [ - "▁Fran", - "cia" - ], - [ - "▁Fr", - "ancia" - ], - [ - "▁Franc", - "ia" - ], - [ - "▁t", - "art" - ], - [ - "▁tar", - "t" - ], - [ - "▁ta", - "rt" - ], - [ - "▁V", - "enez" - ], - [ - "▁Ve", - "nez" - ], - [ - "▁Ven", - "ez" - ], - [ - "▁dis", - "patch" - ], - [ - "▁disp", - "atch" - ], - [ - "▁", - "dispatch" - ], - [ - "▁observ", - "ations" - ], - [ - "▁observation", - "s" - ], - [ - "▁", - "ż" - ], - [ - "In", - "valid" - ], - [ - "▁occ", - "urr" - ], - [ - "▁occur", - "r" - ], - [ - "▁oc", - "curr" - ], - [ - "т", - "ки" - ], - [ - "Mem", - "ento" - ], - [ - "M", - "emento" - ], - [ - "▁S", - "yd" - ], - [ - "▁Sy", - "d" - ], - [ - "▁tiem", - "po" - ], - [ - "▁st", - "aff" - ], - [ - "▁sta", - "ff" - ], - [ - "▁se", - "ctions" - ], - [ - "▁section", - "s" - ], - [ - "▁sect", - "ions" - ], - [ - "▁", - "sections" - ], - [ - "▁s", - "sh" - ], - [ - "▁ss", - "h" - ], - [ - "▁", - "ssh" - ], - [ - "▁N", - "GC" - ], - [ - "ë", - "l" - ], - [ - "▁er", - "re" - ], - [ - "▁err", - "e" - ], - [ - "▁div", - "ided" - ], - [ - "▁divide", - "d" - ], - [ - "▁divid", - "ed" - ], - [ - "▁With", - "out" - ], - [ - "▁du", - "rant" - ], - [ - "▁dur", - "ant" - ], - [ - "▁j", - "aar" - ], - [ - "▁ja", - "ar" - ], - [ - "▁", - "−" - ], - [ - "▁sold", - "iers" - ], - [ - "▁soldier", - "s" - ], - [ - "ун", - "к" - ], - [ - "la", - "pse" - ], - [ - "lap", - "se" - ], - [ - "laps", - "e" - ], - [ - "▁Val", - "ley" - ], - [ - "▁Vall", - "ey" - ], - [ - "▁Valle", - "y" - ], - [ - "▁(", - ":" - ], - [ - "▁", - "(:" - ], - [ - "re", - "ra" - ], - [ - "rer", - "a" - ], - [ - "r", - "era" - ], - [ - "▁d", - "ével" - ], - [ - "▁dé", - "vel" - ], - [ - "▁p", - "éri" - ], - [ - "▁pé", - "ri" - ], - [ - "▁calcul", - "ation" - ], - [ - "▁calc", - "ulation" - ], - [ - "▁ke", - "ine" - ], - [ - "▁kein", - "e" - ], - [ - "er", - "tain" - ], - [ - "ert", - "ain" - ], - [ - "erta", - "in" - ], - [ - "▁те", - "ле" - ], - [ - "ру", - "д" - ], - [ - "▁c", - "ul" - ], - [ - "▁cu", - "l" - ], - [ - "▁", - "cul" - ], - [ - "▁cl", - "oth" - ], - [ - "▁clo", - "th" - ], - [ - ";", - "}" - ], - [ - "▁pr", - "zed" - ], - [ - "▁prze", - "d" - ], - [ - "▁prz", - "ed" - ], - [ - "Mon", - "th" - ], - [ - "Mo", - "nth" - ], - [ - "Mont", - "h" - ], - [ - "Pi", - "cker" - ], - [ - "P", - "icker" - ], - [ - "▁S", - "V" - ], - [ - "▁", - "SV" - ], - [ - "ar", - "ian" - ], - [ - "ari", - "an" - ], - [ - "aria", - "n" - ], - [ - "a", - "rian" - ], - [ - "▁Re", - "view" - ], - [ - "▁Rev", - "iew" - ], - [ - "▁h", - "ang" - ], - [ - "▁ha", - "ng" - ], - [ - "▁han", - "g" - ], - [ - "▁", - "hang" - ], - [ - "▁о", - "кт" - ], - [ - "▁ок", - "т" - ], - [ - "▁F", - "ront" - ], - [ - "▁Fr", - "ont" - ], - [ - "▁Fro", - "nt" - ], - [ - "▁", - "Front" - ], - [ - "ot", - "lin" - ], - [ - "▁trans", - "lation" - ], - [ - "▁transl", - "ation" - ], - [ - "▁m", - "odo" - ], - [ - "▁mod", - "o" - ], - [ - "▁mo", - "do" - ], - [ - "▁stat", - "istics" - ], - [ - "▁statist", - "ics" - ], - [ - "▁N", - "ue" - ], - [ - "▁Nu", - "e" - ], - [ - "▁Ни", - "кола" - ], - [ - "NU", - "M" - ], - [ - "N", - "UM" - ], - [ - "▁s", - "hips" - ], - [ - "▁sh", - "ips" - ], - [ - "▁ship", - "s" - ], - [ - "▁", - "ships" - ], - [ - "▁Re", - "port" - ], - [ - "▁Rep", - "ort" - ], - [ - "▁", - "Report" - ], - [ - "{", - "[" - ], - [ - "E", - "ffect" - ], - [ - "ie", - "ri" - ], - [ - "ier", - "i" - ], - [ - "i", - "eri" - ], - [ - "▁par", - "ties" - ], - [ - "▁part", - "ies" - ], - [ - "▁partie", - "s" - ], - [ - "▁parti", - "es" - ], - [ - "pl", - "a" - ], - [ - "p", - "la" - ], - [ - "r", - "w" - ], - [ - "▁Work", - "s" - ], - [ - "▁Wor", - "ks" - ], - [ - "▁i", - "ron" - ], - [ - "▁ir", - "on" - ], - [ - "▁att", - "ract" - ], - [ - "▁attr", - "act" - ], - [ - "▁attra", - "ct" - ], - [ - "▁c", - "ort" - ], - [ - "▁cor", - "t" - ], - [ - "▁co", - "rt" - ], - [ - "n", - "á" - ], - [ - "▁Ste", - "ve" - ], - [ - "▁b", - "ene" - ], - [ - "▁be", - "ne" - ], - [ - "▁ben", - "e" - ], - [ - "то", - "н" - ], - [ - "т", - "он" - ], - [ - "ícul", - "a" - ], - [ - "Tw", - "o" - ], - [ - "T", - "wo" - ], - [ - "▁г", - "лав" - ], - [ - "▁гла", - "в" - ], - [ - "▁V", - "ideo" - ], - [ - "▁", - "Video" - ], - [ - "▁power", - "ful" - ], - [ - "au", - "ch" - ], - [ - "auc", - "h" - ], - [ - "a", - "uch" - ], - [ - "ma", - "nde" - ], - [ - "man", - "de" - ], - [ - "m", - "ande" - ], - [ - "äch", - "st" - ], - [ - "ächs", - "t" - ], - [ - "La", - "t" - ], - [ - "L", - "at" - ], - [ - "▁z", - "na" - ], - [ - "▁zn", - "a" - ], - [ - "▁", - "zna" - ], - [ - "▁fig", - "ures" - ], - [ - "▁figure", - "s" - ], - [ - "▁figur", - "es" - ], - [ - "▁a", - "lias" - ], - [ - "▁al", - "ias" - ], - [ - "▁ali", - "as" - ], - [ - "▁", - "alias" - ], - [ - "ne", - "x" - ], - [ - "n", - "ex" - ], - [ - "▁c", - "ategories" - ], - [ - "▁categ", - "ories" - ], - [ - "▁categor", - "ies" - ], - [ - "▁categorie", - "s" - ], - [ - "▁", - "categories" - ], - [ - "cal", - "led" - ], - [ - "call", - "ed" - ], - [ - "c", - "alled" - ], - [ - "▁Sim", - "ilar" - ], - [ - "▁g", - "irls" - ], - [ - "▁girl", - "s" - ], - [ - "▁gir", - "ls" - ], - [ - "pe", - "z" - ], - [ - "p", - "ez" - ], - [ - "▁j", - "oint" - ], - [ - "▁jo", - "int" - ], - [ - "▁join", - "t" - ], - [ - "▁", - "joint" - ], - [ - "ро", - "го" - ], - [ - "р", - "ого" - ], - [ - "ik", - "en" - ], - [ - "ike", - "n" - ], - [ - "i", - "ken" - ], - [ - "чи", - "на" - ], - [ - "чин", - "а" - ], - [ - "an", - "cia" - ], - [ - "anc", - "ia" - ], - [ - "anci", - "a" - ], - [ - "▁t", - "ijd" - ], - [ - "▁ti", - "jd" - ], - [ - "▁R", - "ose" - ], - [ - "▁Ro", - "se" - ], - [ - "▁Ros", - "e" - ], - [ - "▁alg", - "orithms" - ], - [ - "▁algorithm", - "s" - ], - [ - "▁print", - "ing" - ], - [ - "▁prin", - "ting" - ], - [ - "ne", - "a" - ], - [ - "n", - "ea" - ], - [ - "▁exec", - "uting" - ], - [ - "▁execut", - "ing" - ], - [ - "▁l", - "ambda" - ], - [ - "▁", - "lambda" - ], - [ - "▁reg", - "ional" - ], - [ - "▁region", - "al" - ], - [ - "▁Co", - "pa" - ], - [ - "▁Cop", - "a" - ], - [ - "F", - "oo" - ], - [ - "ph", - "ys" - ], - [ - "phy", - "s" - ], - [ - "z", - "m" - ], - [ - "▁L", - "aur" - ], - [ - "▁La", - "ur" - ], - [ - "▁Lau", - "r" - ], - [ - "▁candid", - "ate" - ], - [ - "▁J", - "a" - ], - [ - "zy", - "m" - ], - [ - "z", - "ym" - ], - [ - "Ex", - "ample" - ], - [ - "▁s", - "piel" - ], - [ - "▁sp", - "iel" - ], - [ - "▁", - "spiel" - ], - [ - "▁д", - "ей" - ], - [ - "▁де", - "й" - ], - [ - "▁", - "дей" - ], - [ - "ne", - "hmen" - ], - [ - "neh", - "men" - ], - [ - "nehm", - "en" - ], - [ - "ke", - "iten" - ], - [ - "keit", - "en" - ], - [ - "▁с", - "ент" - ], - [ - "int", - "ent" - ], - [ - "inte", - "nt" - ], - [ - ".", - "(" - ], - [ - "▁пер", - "вы" - ], - [ - "pr", - "om" - ], - [ - "pro", - "m" - ], - [ - "p", - "rom" - ], - [ - "▁n", - "at" - ], - [ - "▁na", - "t" - ], - [ - "▁", - "nat" - ], - [ - "▁im", - "agine" - ], - [ - "▁imag", - "ine" - ], - [ - "call", - "back" - ], - [ - "com", - "ponents" - ], - [ - "component", - "s" - ], - [ - "with", - "out" - ], - [ - "▁a", - "quest" - ], - [ - "▁aqu", - "est" - ], - [ - "Su", - "pport" - ], - [ - "Supp", - "ort" - ], - [ - "▁respons", - "ible" - ], - [ - "▁j", - "ego" - ], - [ - "▁je", - "go" - ], - [ - "l", - "j" - ], - [ - "wi", - "ll" - ], - [ - "w", - "ill" - ], - [ - "le", - "an" - ], - [ - "lea", - "n" - ], - [ - "el", - "and" - ], - [ - "ela", - "nd" - ], - [ - "e", - "land" - ], - [ - "olog", - "ía" - ], - [ - "m", - "c" - ], - [ - "Pro", - "xy" - ], - [ - "▁o", - "cup" - ], - [ - "▁oc", - "up" - ], - [ - "▁на", - "ходи" - ], - [ - "▁r", - "ub" - ], - [ - "▁ru", - "b" - ], - [ - "ні", - "в" - ], - [ - "н", - "ів" - ], - [ - "▁F", - "all" - ], - [ - "▁Fa", - "ll" - ], - [ - "▁Fal", - "l" - ], - [ - "am", - "os" - ], - [ - "amo", - "s" - ], - [ - "a", - "mos" - ], - [ - "▁E", - "p" - ], - [ - "en", - "tre" - ], - [ - "ent", - "re" - ], - [ - "entr", - "e" - ], - [ - "fa", - "il" - ], - [ - "f", - "ail" - ], - [ - "W", - "orld" - ], - [ - "▁Ed", - "itor" - ], - [ - "▁Edit", - "or" - ], - [ - "▁", - "Editor" - ], - [ - "▁ex", - "pos" - ], - [ - "▁exp", - "os" - ], - [ - "▁f", - "inds" - ], - [ - "▁find", - "s" - ], - [ - "▁fin", - "ds" - ], - [ - "▁C", - "ulture" - ], - [ - "▁Cult", - "ure" - ], - [ - "▁", - "Culture" - ], - [ - "LE", - "ASE" - ], - [ - "▁m", - "ovie" - ], - [ - "▁mov", - "ie" - ], - [ - "▁mo", - "vie" - ], - [ - "▁", - "movie" - ], - [ - "<", - "=" - ], - [ - "omet", - "ric" - ], - [ - "o", - "metric" - ], - [ - "el", - "ing" - ], - [ - "eli", - "ng" - ], - [ - "elin", - "g" - ], - [ - "e", - "ling" - ], - [ - "numer", - "able" - ], - [ - "ou", - "rd" - ], - [ - "our", - "d" - ], - [ - "o", - "urd" - ], - [ - "▁S", - "ea" - ], - [ - "▁Se", - "a" - ], - [ - "▁b", - "ild" - ], - [ - "▁bi", - "ld" - ], - [ - "▁bil", - "d" - ], - [ - "▁", - "bild" - ], - [ - "▁о", - "ста" - ], - [ - "▁ос", - "та" - ], - [ - "▁ост", - "а" - ], - [ - "bl", - "o" - ], - [ - "b", - "lo" - ], - [ - "▁l", - "ose" - ], - [ - "▁lo", - "se" - ], - [ - "▁los", - "e" - ], - [ - "▁", - "lose" - ], - [ - "at", - "eurs" - ], - [ - "ate", - "urs" - ], - [ - "ateur", - "s" - ], - [ - "ou", - "red" - ], - [ - "our", - "ed" - ], - [ - "oure", - "d" - ], - [ - "o", - "ured" - ], - [ - "▁B", - "att" - ], - [ - "▁Ba", - "tt" - ], - [ - "▁Bat", - "t" - ], - [ - "()", - ";\r" - ], - [ - "();", - "\r" - ], - [ - "(", - ");\r" - ], - [ - "▁p", - "oz" - ], - [ - "▁po", - "z" - ], - [ - "pos", - "ts" - ], - [ - "post", - "s" - ], - [ - "pe", - "nd" - ], - [ - "pen", - "d" - ], - [ - "p", - "end" - ], - [ - "cer", - "tain" - ], - [ - "cert", - "ain" - ], - [ - "c", - "ertain" - ], - [ - "ни", - "ком" - ], - [ - "ник", - "ом" - ], - [ - "J", - "ust" - ], - [ - "web", - "kit" - ], - [ - "dem", - "ás" - ], - [ - "~~", - "~~" - ], - [ - "▁indic", - "ates" - ], - [ - "▁indicate", - "s" - ], - [ - "▁p", - "ark" - ], - [ - "▁par", - "k" - ], - [ - "▁", - "park" - ], - [ - "ri", - "que" - ], - [ - "r", - "ique" - ], - [ - "vo", - "d" - ], - [ - "v", - "od" - ], - [ - "▁Ch", - "amp" - ], - [ - "▁Cham", - "p" - ], - [ - "▁Cha", - "mp" - ], - [ - "ft", - "ware" - ], - [ - "OP", - "T" - ], - [ - "O", - "PT" - ], - [ - "dj", - "ango" - ], - [ - "d", - "jango" - ], - [ - "re", - "lease" - ], - [ - "▁", - "È" - ], - [ - "S", - "R" - ], - [ - "▁polit", - "ician" - ], - [ - "▁r", - "oi" - ], - [ - "▁ro", - "i" - ], - [ - "at", - "uren" - ], - [ - "atur", - "en" - ], - [ - "ature", - "n" - ], - [ - "atu", - "ren" - ], - [ - "▁Deutsch", - "e" - ], - [ - "ta", - "gon" - ], - [ - "tag", - "on" - ], - [ - "t", - "agon" - ], - [ - "▁M", - "ov" - ], - [ - "▁Mo", - "v" - ], - [ - "ob", - "ierno" - ], - [ - "obi", - "erno" - ], - [ - "▁da", - "ß" - ], - [ - "ut", - "her" - ], - [ - "uth", - "er" - ], - [ - "u", - "ther" - ], - [ - "in", - "di" - ], - [ - "ind", - "i" - ], - [ - "▁Wik", - "ipedia" - ], - [ - "▁Wikip", - "edia" - ], - [ - "▁Wikiped", - "ia" - ], - [ - "▁a", - "nos" - ], - [ - "▁an", - "os" - ], - [ - "▁ano", - "s" - ], - [ - "▁", - "anos" - ], - [ - "▁ob", - "serve" - ], - [ - "▁obser", - "ve" - ], - [ - "▁observ", - "e" - ], - [ - "▁obs", - "erve" - ], - [ - "el", - "ly" - ], - [ - "ell", - "y" - ], - [ - "▁rail", - "way" - ], - [ - "at", - "on" - ], - [ - "ato", - "n" - ], - [ - "a", - "ton" - ], - [ - "▁e", - "num" - ], - [ - "▁en", - "um" - ], - [ - "▁", - "enum" - ], - [ - "hu", - "s" - ], - [ - "h", - "us" - ], - [ - "▁in", - "hab" - ], - [ - "P", - "si" - ], - [ - "oir", - "e" - ], - [ - "oi", - "re" - ], - [ - "o", - "ire" - ], - [ - "▁Х", - "о" - ], - [ - "▁S", - "pace" - ], - [ - "▁Sp", - "ace" - ], - [ - "▁", - "Space" - ], - [ - "▁Ар", - "хи" - ], - [ - "▁an", - "terior" - ], - [ - "▁ante", - "rior" - ], - [ - "▁", - "Ł" - ], - [ - "is", - "ons" - ], - [ - "ison", - "s" - ], - [ - "iso", - "ns" - ], - [ - "I", - "l" - ], - [ - "▁am", - "éric" - ], - [ - "la", - "ps" - ], - [ - "lap", - "s" - ], - [ - "l", - "aps" - ], - [ - "▁B", - "BC" - ], - [ - "▁BB", - "C" - ], - [ - "QUE", - "ST" - ], - [ - "Con", - "stra" - ], - [ - "Const", - "ra" - ], - [ - "Cons", - "tra" - ], - [ - "mon", - "t" - ], - [ - "mo", - "nt" - ], - [ - "m", - "ont" - ], - [ - "ä", - "ft" - ], - [ - "▁ä", - "ven" - ], - [ - "ub", - "ern" - ], - [ - "ube", - "rn" - ], - [ - "uber", - "n" - ], - [ - "u", - "bern" - ], - [ - "<", - "!--" - ], - [ - "▁c", - "oding" - ], - [ - "▁co", - "ding" - ], - [ - "▁cod", - "ing" - ], - [ - "the", - "ory" - ], - [ - "at", - "hed" - ], - [ - "ath", - "ed" - ], - [ - "▁Ar", - "be" - ], - [ - "▁ш", - "и" - ], - [ - "▁", - "ши" - ], - [ - "for", - "Each" - ], - [ - "om", - "orphism" - ], - [ - "omorph", - "ism" - ], - [ - "det", - "ails" - ], - [ - "detail", - "s" - ], - [ - "ach", - "sen" - ], - [ - "in", - "tegr" - ], - [ - "int", - "egr" - ], - [ - "inte", - "gr" - ], - [ - "V", - "or" - ], - [ - "Un", - "known" - ], - [ - "ace", - "ae" - ], - [ - "a", - "ceae" - ], - [ - "in", - "ue" - ], - [ - "inu", - "e" - ], - [ - "es", - "ome" - ], - [ - "eso", - "me" - ], - [ - "e", - "some" - ], - [ - "▁F", - "ir" - ], - [ - "ch", - "ain" - ], - [ - "cha", - "in" - ], - [ - "▁extrem", - "ely" - ], - [ - "▁extreme", - "ly" - ], - [ - "mult", - "icol" - ], - [ - "multi", - "col" - ], - [ - "▁Sw", - "ift" - ], - [ - "▁address", - "es" - ], - [ - "▁addr", - "esses" - ], - [ - "hs", - "pace" - ], - [ - "h", - "space" - ], - [ - "▁Ro", - "ger" - ], - [ - "▁Rog", - "er" - ], - [ - "▁d", - "essen" - ], - [ - "▁des", - "sen" - ], - [ - "▁dess", - "en" - ], - [ - "▁con", - "sequ" - ], - [ - "▁cons", - "equ" - ], - [ - "▁conse", - "qu" - ], - [ - "ual", - "mente" - ], - [ - "▁Pre", - "mier" - ], - [ - "▁Prem", - "ier" - ], - [ - "▁Re", - "cord" - ], - [ - "▁Rec", - "ord" - ], - [ - "▁", - "Record" - ], - [ - "▁B", - "ron" - ], - [ - "▁Br", - "on" - ], - [ - "▁Bro", - "n" - ], - [ - "ki", - "r" - ], - [ - "k", - "ir" - ], - [ - "se", - "x" - ], - [ - "s", - "ex" - ], - [ - "in", - "tern" - ], - [ - "int", - "ern" - ], - [ - "inter", - "n" - ], - [ - "inte", - "rn" - ], - [ - "▁benef", - "it" - ], - [ - "▁bene", - "fit" - ], - [ - "um", - "en" - ], - [ - "ume", - "n" - ], - [ - "u", - "men" - ], - [ - "▁be", - "coming" - ], - [ - "▁bec", - "oming" - ], - [ - "▁becom", - "ing" - ], - [ - "▁l", - "ig" - ], - [ - "▁li", - "g" - ], - [ - "▁", - "lig" - ], - [ - "▁pop", - "ula" - ], - [ - "▁popul", - "a" - ], - [ - "os", - "c" - ], - [ - "o", - "sc" - ], - [ - "▁c", - "iv" - ], - [ - "▁ci", - "v" - ], - [ - "▁great", - "est" - ], - [ - "▁pro", - "ces" - ], - [ - "▁proc", - "es" - ], - [ - "]", - "*" - ], - [ - "▁ме", - "сто" - ], - [ - "▁мест", - "о" - ], - [ - "▁'", - "$" - ], - [ - "▁", - "'$" - ], - [ - "he", - "ll" - ], - [ - "hel", - "l" - ], - [ - "h", - "ell" - ], - [ - "(\"", - "\\" - ], - [ - "(", - "\"\\" - ], - [ - "▁n", - "ine" - ], - [ - "▁ni", - "ne" - ], - [ - "▁nin", - "e" - ], - [ - "▁F", - "ac" - ], - [ - "▁Fa", - "c" - ], - [ - "ul", - "pt" - ], - [ - "ulp", - "t" - ], - [ - "jo", - "urs" - ], - [ - "jou", - "rs" - ], - [ - "j", - "ours" - ], - [ - "▁C", - "opy" - ], - [ - "▁Co", - "py" - ], - [ - "▁Cop", - "y" - ], - [ - "▁", - "Copy" - ], - [ - "▁activ", - "ities" - ], - [ - "▁Dem", - "ocr" - ], - [ - "▁Demo", - "cr" - ], - [ - "E", - "s" - ], - [ - "Su", - "ccess" - ], - [ - "▁E", - "sta" - ], - [ - "▁Est", - "a" - ], - [ - "▁Es", - "ta" - ], - [ - "it", - "ul" - ], - [ - "itu", - "l" - ], - [ - "is", - "ti" - ], - [ - "ist", - "i" - ], - [ - "▁B", - "ed" - ], - [ - "▁Be", - "d" - ], - [ - "ja", - "s" - ], - [ - "j", - "as" - ], - [ - "▁т", - "ем" - ], - [ - "▁те", - "м" - ], - [ - "▁", - "тем" - ], - [ - "▁H", - "ung" - ], - [ - "▁Hu", - "ng" - ], - [ - "▁Hun", - "g" - ], - [ - "G", - "ame" - ], - [ - "▁he", - "av" - ], - [ - "onn", - "ées" - ], - [ - "▁branch", - "es" - ], - [ - "▁bran", - "ches" - ], - [ - "bo", - "rg" - ], - [ - "bor", - "g" - ], - [ - "b", - "org" - ], - [ - "▁v", - "l" - ], - [ - "▁", - "vl" - ], - [ - "▁slow", - "ly" - ], - [ - "F", - "a" - ], - [ - "Go", - "ogle" - ], - [ - "em", - "i" - ], - [ - "e", - "mi" - ], - [ - "▁circumst", - "ances" - ], - [ - "▁'", - "%" - ], - [ - "▁U", - "nd" - ], - [ - "▁Un", - "d" - ], - [ - "▁", - "Und" - ], - [ - "▁Vict", - "oria" - ], - [ - "▁Victor", - "ia" - ], - [ - "▁T", - "yp" - ], - [ - "▁Ty", - "p" - ], - [ - "▁", - "Typ" - ], - [ - "rupt", - "ed" - ], - [ - "rup", - "ted" - ], - [ - "▁rel", - "ativ" - ], - [ - "▁s", - "lo" - ], - [ - "▁sl", - "o" - ], - [ - "▁p", - "adre" - ], - [ - "▁pad", - "re" - ], - [ - "▁d", - "aily" - ], - [ - "▁da", - "ily" - ], - [ - "▁dai", - "ly" - ], - [ - "▁or", - "th" - ], - [ - "▁ort", - "h" - ], - [ - "▁", - "orth" - ], - [ - "чни", - "й" - ], - [ - "ч", - "ний" - ], - [ - "▁fran", - "zös" - ], - [ - "▁t", - "eil" - ], - [ - "▁te", - "il" - ], - [ - "▁", - "teil" - ], - [ - "▁Se", - "curity" - ], - [ - "▁Sec", - "urity" - ], - [ - "▁", - "Security" - ], - [ - "or", - "don" - ], - [ - "ord", - "on" - ], - [ - "ordo", - "n" - ], - [ - "▁s", - "weet" - ], - [ - "▁swe", - "et" - ], - [ - "SI", - "ZE" - ], - [ - "▁C", - "el" - ], - [ - "▁Ce", - "l" - ], - [ - "èt", - "res" - ], - [ - "è", - "tres" - ], - [ - "om", - "mes" - ], - [ - "omm", - "es" - ], - [ - "▁с", - "і" - ], - [ - "▁", - "сі" - ], - [ - "▁effort", - "s" - ], - [ - "ą", - "z" - ], - [ - "▁oh", - "ne" - ], - [ - "▁South", - "ern" - ], - [ - "▁Sou", - "thern" - ], - [ - "▁approxim", - "ately" - ], - [ - "▁approximate", - "ly" - ], - [ - "це", - "н" - ], - [ - "ц", - "ен" - ], - [ - "('", - "#" - ], - [ - "▁s", - "aving" - ], - [ - "▁sa", - "ving" - ], - [ - "▁sav", - "ing" - ], - [ - "nb", - "sp" - ], - [ - "▁trans", - "late" - ], - [ - "▁transl", - "ate" - ], - [ - "▁", - "translate" - ], - [ - "▁Î", - "n" - ], - [ - "mem", - "ber" - ], - [ - "m", - "ember" - ], - [ - "▁l", - "aws" - ], - [ - "▁la", - "ws" - ], - [ - "▁law", - "s" - ], - [ - "▁ж", - "ен" - ], - [ - "▁же", - "н" - ], - [ - "▁", - "жен" - ], - [ - "▁си", - "сте" - ], - [ - "t", - "c" - ], - [ - ">", - "\\" - ], - [ - "el", - "te" - ], - [ - "elt", - "e" - ], - [ - "▁e", - "hem" - ], - [ - "▁con", - "trad" - ], - [ - "▁cont", - "rad" - ], - [ - "▁contr", - "ad" - ], - [ - "▁contra", - "d" - ], - [ - "▁ру", - "с" - ], - [ - "▁р", - "ус" - ], - [ - "▁", - "рус" - ], - [ - "ь", - "я" - ], - [ - "▁M", - "iddle" - ], - [ - "▁", - "Middle" - ], - [ - "qu", - "ip" - ], - [ - "qui", - "p" - ], - [ - "▁c", - "hez" - ], - [ - "▁ch", - "ez" - ], - [ - "▁che", - "z" - ], - [ - "▁", - "chez" - ], - [ - "Field", - "s" - ], - [ - "▁per", - "mit" - ], - [ - "▁perm", - "it" - ], - [ - "ik", - "el" - ], - [ - "ike", - "l" - ], - [ - "i", - "kel" - ], - [ - "▁w", - "ir" - ], - [ - "▁t", - "rial" - ], - [ - "▁tr", - "ial" - ], - [ - "▁tri", - "al" - ], - [ - "▁ver", - "schied" - ], - [ - "▁versch", - "ied" - ], - [ - "▁ф", - "ев" - ], - [ - "▁фе", - "в" - ], - [ - "▁m", - "ale" - ], - [ - "▁ma", - "le" - ], - [ - "▁mal", - "e" - ], - [ - "▁", - "male" - ], - [ - "▁я", - "зы" - ], - [ - "▁ny", - "el" - ], - [ - "ak", - "ter" - ], - [ - "akt", - "er" - ], - [ - "akte", - "r" - ], - [ - "a", - "kter" - ], - [ - "▁den", - "omin" - ], - [ - "cept", - "or" - ], - [ - "cep", - "tor" - ], - [ - "▁W", - "at" - ], - [ - "▁Wa", - "t" - ], - [ - "▁f", - "ino" - ], - [ - "▁fin", - "o" - ], - [ - "▁fi", - "no" - ], - [ - "▁XV", - "III" - ], - [ - "▁XVI", - "II" - ], - [ - "▁XVII", - "I" - ], - [ - "ry", - "ption" - ], - [ - "rypt", - "ion" - ], - [ - "de", - "sc" - ], - [ - "des", - "c" - ], - [ - "d", - "esc" - ], - [ - "ap", - "a" - ], - [ - "a", - "pa" - ], - [ - "ле", - "на" - ], - [ - "лен", - "а" - ], - [ - "л", - "ена" - ], - [ - "▁k", - "ol" - ], - [ - "▁ko", - "l" - ], - [ - "▁", - "kol" - ], - [ - "▁", - "Є" - ], - [ - "▁dep", - "endent" - ], - [ - "▁depend", - "ent" - ], - [ - "▁", - "dependent" - ], - [ - "▁C", - "ra" - ], - [ - "▁Cr", - "a" - ], - [ - "▁st", - "orm" - ], - [ - "▁stor", - "m" - ], - [ - "▁sto", - "rm" - ], - [ - "▁Г", - "ер" - ], - [ - "▁Ге", - "р" - ], - [ - "▁p", - "ipe" - ], - [ - "▁pi", - "pe" - ], - [ - "▁pip", - "e" - ], - [ - "▁", - "pipe" - ], - [ - "▁att", - "ended" - ], - [ - "▁attend", - "ed" - ], - [ - "▁v", - "ita" - ], - [ - "▁vi", - "ta" - ], - [ - "▁vit", - "a" - ], - [ - "uz", - "ione" - ], - [ - "u", - "zione" - ], - [ - "cz", - "as" - ], - [ - "cza", - "s" - ], - [ - "c", - "zas" - ], - [ - "on", - "da" - ], - [ - "ond", - "a" - ], - [ - "▁b", - "old" - ], - [ - "▁bo", - "ld" - ], - [ - "▁bol", - "d" - ], - [ - "▁", - "bold" - ], - [ - "Column", - "s" - ], - [ - "ic", - "ió" - ], - [ - "ici", - "ó" - ], - [ - "i", - "ció" - ], - [ - "▁c", - "zę" - ], - [ - "▁cz", - "ę" - ], - [ - "▁из", - "вест" - ], - [ - "▁Cl", - "oud" - ], - [ - "▁Clo", - "ud" - ], - [ - "▁", - "Cloud" - ], - [ - "▁w", - "arm" - ], - [ - "▁war", - "m" - ], - [ - "▁wa", - "rm" - ], - [ - "▁с", - "ы" - ], - [ - "▁", - "сы" - ], - [ - "▁с", - "те" - ], - [ - "▁ст", - "е" - ], - [ - "▁", - "сте" - ], - [ - "▁produ", - "cer" - ], - [ - "▁produce", - "r" - ], - [ - "▁Lud", - "wig" - ], - [ - "▁Nor", - "thern" - ], - [ - "▁North", - "ern" - ], - [ - "ł", - "ą" - ], - [ - "NS", - "String" - ], - [ - "▁H", - "ad" - ], - [ - "▁Ha", - "d" - ], - [ - "▁И", - "ван" - ], - [ - "▁E", - "g" - ], - [ - "▁I", - "mp" - ], - [ - "▁Im", - "p" - ], - [ - "▁", - "Imp" - ], - [ - "ш", - "і" - ], - [ - "▁A", - "uch" - ], - [ - "▁Au", - "ch" - ], - [ - "то", - "к" - ], - [ - "т", - "ок" - ], - [ - "▁H", - "it" - ], - [ - "▁Hi", - "t" - ], - [ - "▁qu", - "ien" - ], - [ - "▁qui", - "en" - ], - [ - "▁de", - "partment" - ], - [ - "▁depart", - "ment" - ], - [ - "▁erh", - "ielt" - ], - [ - "▁u", - "i" - ], - [ - "▁", - "ui" - ], - [ - "▁S", - "pr" - ], - [ - "▁Sp", - "r" - ], - [ - "се", - "р" - ], - [ - "с", - "ер" - ], - [ - "ou", - "rt" - ], - [ - "our", - "t" - ], - [ - "o", - "urt" - ], - [ - "▁Ste", - "phen" - ], - [ - "▁Step", - "hen" - ], - [ - "▁Steph", - "en" - ], - [ - "te", - "am" - ], - [ - "▁z", - "ip" - ], - [ - "▁", - "zip" - ], - [ - "▁B", - "ang" - ], - [ - "▁Ba", - "ng" - ], - [ - "▁Ban", - "g" - ], - [ - "▁grow", - "th" - ], - [ - "▁j", - "am" - ], - [ - "▁ja", - "m" - ], - [ - "▁K", - "ais" - ], - [ - "▁Ka", - "is" - ], - [ - "b", - "matrix" - ], - [ - "▁As", - "ia" - ], - [ - "▁rég", - "ion" - ], - [ - "=", - "/" - ], - [ - "▁Pac", - "ific" - ], - [ - "▁author", - "ity" - ], - [ - "▁#", - "[" - ], - [ - "та", - "ми" - ], - [ - "там", - "и" - ], - [ - "▁every", - "one" - ], - [ - "▁att", - "end" - ], - [ - "▁atte", - "nd" - ], - [ - "▁", - "attend" - ], - [ - "▁tim", - "estamp" - ], - [ - "▁", - "timestamp" - ], - [ - "▁t", - "ries" - ], - [ - "▁tr", - "ies" - ], - [ - "▁tri", - "es" - ], - [ - "▁f", - "f" - ], - [ - "▁", - "ff" - ], - [ - "ше", - "й" - ], - [ - "ш", - "ей" - ], - [ - "▁develop", - "ing" - ], - [ - "ol", - "t" - ], - [ - "o", - "lt" - ], - [ - "up", - "s" - ], - [ - "u", - "ps" - ], - [ - "▁moment", - "o" - ], - [ - "▁mom", - "ento" - ], - [ - "▁S", - "ain" - ], - [ - "▁Sa", - "in" - ], - [ - "Te", - "rm" - ], - [ - "T", - "erm" - ], - [ - "▁c", - "elle" - ], - [ - "▁ce", - "lle" - ], - [ - "▁cell", - "e" - ], - [ - "▁cel", - "le" - ], - [ - "G", - "R" - ], - [ - "Mo", - "use" - ], - [ - "M", - "ouse" - ], - [ - "▁челов", - "ек" - ], - [ - "▁челове", - "к" - ], - [ - "▁Col", - "lection" - ], - [ - "▁Coll", - "ection" - ], - [ - "▁Collect", - "ion" - ], - [ - "▁", - "Collection" - ], - [ - "ât", - "re" - ], - [ - "â", - "tre" - ], - [ - "▁W", - "rite" - ], - [ - "▁Writ", - "e" - ], - [ - "▁", - "Write" - ], - [ - "▁P", - "om" - ], - [ - "▁Po", - "m" - ], - [ - "[", - "-" - ], - [ - "Ca", - "m" - ], - [ - "C", - "am" - ], - [ - "▁loc", - "ations" - ], - [ - "▁location", - "s" - ], - [ - "▁J", - "son" - ], - [ - "▁", - "Json" - ], - [ - "el", - "led" - ], - [ - "ell", - "ed" - ], - [ - "elle", - "d" - ], - [ - "select", - "or" - ], - [ - "sel", - "ector" - ], - [ - "re", - "peat" - ], - [ - "ct", - "ors" - ], - [ - "ctor", - "s" - ], - [ - "ot", - "te" - ], - [ - "ott", - "e" - ], - [ - "o", - "tte" - ], - [ - "ви", - "зи" - ], - [ - "änd", - "e" - ], - [ - "än", - "de" - ], - [ - "ä", - "nde" - ], - [ - "▁ach", - "ieved" - ], - [ - "▁achieve", - "d" - ], - [ - "▁achiev", - "ed" - ], - [ - "▁main", - "ly" - ], - [ - "____", - "____" - ], - [ - "!", - ")" - ], - [ - "▁явля", - "ется" - ], - [ - "▁c", - "ities" - ], - [ - "▁ci", - "ties" - ], - [ - "▁cit", - "ies" - ], - [ - "sing", - "le" - ], - [ - "sin", - "gle" - ], - [ - "г", - "ре" - ], - [ - "▁P", - "ak" - ], - [ - "▁Pa", - "k" - ], - [ - "▁allow", - "ing" - ], - [ - "▁allo", - "wing" - ], - [ - "fer", - "red" - ], - [ - "▁а", - "пре" - ], - [ - "хо", - "дя" - ], - [ - "ход", - "я" - ], - [ - "▁brow", - "sers" - ], - [ - "▁browser", - "s" - ], - [ - "▁es", - "crit" - ], - [ - "▁esc", - "rit" - ], - [ - "▁escri", - "t" - ], - [ - "▁mount", - "ain" - ], - [ - "▁network", - "s" - ], - [ - "▁net", - "works" - ], - [ - "ki", - "nd" - ], - [ - "kin", - "d" - ], - [ - "k", - "ind" - ], - [ - "li", - "ver" - ], - [ - "live", - "r" - ], - [ - "liv", - "er" - ], - [ - "l", - "iver" - ], - [ - "▁cl", - "osing" - ], - [ - "▁clos", - "ing" - ], - [ - "▁clo", - "sing" - ], - [ - "▁sk", - "ip" - ], - [ - "▁ski", - "p" - ], - [ - "▁", - "skip" - ], - [ - "ú", - "t" - ], - [ - "▁d", - "uration" - ], - [ - "▁dur", - "ation" - ], - [ - "▁", - "duration" - ], - [ - "ét", - "ait" - ], - [ - "éta", - "it" - ], - [ - "é", - "tait" - ], - [ - "▁s", - "cr" - ], - [ - "▁sc", - "r" - ], - [ - "▁", - "scr" - ], - [ - "B", - "B" - ], - [ - "ór", - "ia" - ], - [ - "ó", - "ria" - ], - [ - "▁K", - "ultur" - ], - [ - "▁Kult", - "ur" - ], - [ - "▁output", - "s" - ], - [ - "multi", - "column" - ], - [ - "multicol", - "umn" - ], - [ - "▁bel", - "ongs" - ], - [ - "▁belong", - "s" - ], - [ - "fe", - "ature" - ], - [ - "uc", - "ky" - ], - [ - "uck", - "y" - ], - [ - "▁j", - "uli" - ], - [ - "▁ju", - "li" - ], - [ - "▁jul", - "i" - ], - [ - "▁рай", - "она" - ], - [ - "▁райо", - "на" - ], - [ - "▁район", - "а" - ], - [ - "з", - "во" - ], - [ - "fact", - "ory" - ], - [ - "factor", - "y" - ], - [ - "f", - "actory" - ], - [ - "Fun", - "c" - ], - [ - "F", - "unc" - ], - [ - "▁ut", - "ter" - ], - [ - "▁", - "utter" - ], - [ - "▁TO", - "DO" - ], - [ - "▁o", - "bt" - ], - [ - "▁ob", - "t" - ], - [ - "ateg", - "ories" - ], - [ - "ategor", - "ies" - ], - [ - "▁com", - "bine" - ], - [ - "▁comb", - "ine" - ], - [ - "▁combin", - "e" - ], - [ - "▁W", - "all" - ], - [ - "▁Wal", - "l" - ], - [ - "▁Wa", - "ll" - ], - [ - "▁under", - "lying" - ], - [ - "ar", - "ono" - ], - [ - "aron", - "o" - ], - [ - "aro", - "no" - ], - [ - "▁P", - "rote" - ], - [ - "▁Pro", - "te" - ], - [ - "▁Pr", - "ote" - ], - [ - "c", - "ów" - ], - [ - "st", - "an" - ], - [ - "sta", - "n" - ], - [ - "s", - "tan" - ], - [ - "▁G", - "ew" - ], - [ - "▁Ge", - "w" - ], - [ - "▁opt", - "imal" - ], - [ - "▁optim", - "al" - ], - [ - "▁Archiv", - "link" - ], - [ - "▁S", - "cript" - ], - [ - "▁", - "Script" - ], - [ - "▁destroy", - "ed" - ], - [ - "х", - "е" - ], - [ - "▁Fire", - "fox" - ], - [ - "▁s", - "ole" - ], - [ - "▁so", - "le" - ], - [ - "▁sol", - "e" - ], - [ - "▁", - "sole" - ], - [ - "La", - "yer" - ], - [ - "L", - "ayer" - ], - [ - "т", - "ку" - ], - [ - "▁st", - "ores" - ], - [ - "▁stor", - "es" - ], - [ - "▁store", - "s" - ], - [ - "▁sto", - "res" - ], - [ - "▁dis", - "plays" - ], - [ - "▁display", - "s" - ], - [ - "is", - "hing" - ], - [ - "ish", - "ing" - ], - [ - "ishi", - "ng" - ], - [ - "▁о", - "ст" - ], - [ - "▁ос", - "т" - ], - [ - "▁inst", - "ant" - ], - [ - "▁el", - "ő" - ], - [ - "▁habit", - "antes" - ], - [ - "▁Ein", - "wo" - ], - [ - "▁a", - "li" - ], - [ - "▁al", - "i" - ], - [ - "▁", - "ali" - ], - [ - "▁ER", - "ROR" - ], - [ - "▁ERR", - "OR" - ], - [ - "▁", - "ERROR" - ], - [ - "▁a", - "head" - ], - [ - "▁ah", - "ead" - ], - [ - "▁go", - "als" - ], - [ - "▁goal", - "s" - ], - [ - "▁m", - "ár" - ], - [ - "▁má", - "r" - ], - [ - "▁s", - "ą" - ], - [ - "▁m", - "art" - ], - [ - "▁ma", - "rt" - ], - [ - "▁mar", - "t" - ], - [ - "▁", - "mart" - ], - [ - "мини", - "стра" - ], - [ - "F", - "r" - ], - [ - "▁V", - "illa" - ], - [ - "▁Vill", - "a" - ], - [ - "▁Vi", - "lla" - ], - [ - "▁Vil", - "la" - ], - [ - "▁M", - "arc" - ], - [ - "▁Mar", - "c" - ], - [ - "▁Ma", - "rc" - ], - [ - "ro", - "py" - ], - [ - "rop", - "y" - ], - [ - "r", - "opy" - ], - [ - "ag", - "ram" - ], - [ - "agr", - "am" - ], - [ - "a", - "gram" - ], - [ - "ha", - "pe" - ], - [ - "h", - "ape" - ], - [ - "ме", - "й" - ], - [ - "м", - "ей" - ], - [ - "▁A", - "L" - ], - [ - "▁", - "AL" - ], - [ - "▁conne", - "xes" - ], - [ - "▁En", - "tre" - ], - [ - "▁Ent", - "re" - ], - [ - "St", - "ep" - ], - [ - "Ste", - "p" - ], - [ - "лі", - "в" - ], - [ - "л", - "ів" - ], - [ - "▁De", - "ath" - ], - [ - "▁r", - "ise" - ], - [ - "▁ris", - "e" - ], - [ - "▁ri", - "se" - ], - [ - "▁f", - "os" - ], - [ - "▁fo", - "s" - ], - [ - "▁l", - "ev" - ], - [ - "▁le", - "v" - ], - [ - "▁", - "lev" - ], - [ - "ga", - "be" - ], - [ - "g", - "abe" - ], - [ - "▁b", - "roke" - ], - [ - "▁br", - "oke" - ], - [ - "▁bro", - "ke" - ], - [ - "product", - "s" - ], - [ - "▁m", - "edi" - ], - [ - "▁me", - "di" - ], - [ - "▁med", - "i" - ], - [ - "▁", - "medi" - ], - [ - "▁dis", - "pon" - ], - [ - "▁disp", - "on" - ], - [ - "Pack", - "age" - ], - [ - "P", - "ackage" - ], - [ - "Image", - "View" - ], - [ - "▁N", - "ag" - ], - [ - "▁Na", - "g" - ], - [ - "uj", - "ą" - ], - [ - "u", - "ją" - ], - [ - "W", - "ord" - ], - [ - "▁k", - "ole" - ], - [ - "▁ko", - "le" - ], - [ - "▁kol", - "e" - ], - [ - "ße", - "r" - ], - [ - "ß", - "er" - ], - [ - ")`", - "." - ], - [ - ")", - "`." - ], - [ - "▁r", - "ol" - ], - [ - "▁ro", - "l" - ], - [ - "▁", - "rol" - ], - [ - "▁", - "í" - ], - [ - "те", - "й" - ], - [ - "т", - "ей" - ], - [ - "Pro", - "gress" - ], - [ - "be", - "an" - ], - [ - "▁s", - "empre" - ], - [ - "▁sem", - "pre" - ], - [ - "State", - "ment" - ], - [ - "Stat", - "ement" - ], - [ - "UP", - "DATE" - ], - [ - "▁mond", - "iale" - ], - [ - "▁w", - "rapper" - ], - [ - "▁wr", - "apper" - ], - [ - "▁wra", - "pper" - ], - [ - "▁wrap", - "per" - ], - [ - "▁", - "wrapper" - ], - [ - "▁C", - "hart" - ], - [ - "▁Ch", - "art" - ], - [ - "▁Char", - "t" - ], - [ - "▁Cha", - "rt" - ], - [ - "▁", - "Chart" - ], - [ - "▁on", - "Click" - ], - [ - "че", - "ння" - ], - [ - "чен", - "ня" - ], - [ - "LO", - "G" - ], - [ - "some", - "thing" - ], - [ - "som", - "ething" - ], - [ - "s", - "omething" - ], - [ - "▁IN", - "SERT" - ], - [ - "▁", - "INSERT" - ], - [ - "ще", - "ния" - ], - [ - "ue", - "t" - ], - [ - "u", - "et" - ], - [ - "wer", - "p" - ], - [ - "we", - "rp" - ], - [ - "ro", - "und" - ], - [ - "rou", - "nd" - ], - [ - "r", - "ound" - ], - [ - "ic", - "hen" - ], - [ - "ich", - "en" - ], - [ - "iche", - "n" - ], - [ - "i", - "chen" - ], - [ - "▁X", - "VI" - ], - [ - "▁XV", - "I" - ], - [ - "з", - "ни" - ], - [ - "▁ave", - "va" - ], - [ - "▁St", - "ore" - ], - [ - "▁Sto", - "re" - ], - [ - "▁", - "Store" - ], - [ - "▁x", - "s" - ], - [ - "▁", - "xs" - ], - [ - "ra", - "cht" - ], - [ - "rac", - "ht" - ], - [ - "rach", - "t" - ], - [ - "r", - "acht" - ], - [ - "sc", - "ar" - ], - [ - "s", - "car" - ], - [ - "▁op", - "era" - ], - [ - "▁oper", - "a" - ], - [ - "▁", - "opera" - ], - [ - "▁deg", - "rees" - ], - [ - "▁degree", - "s" - ], - [ - "▁cit", - "iz" - ], - [ - "äs", - "ident" - ], - [ - "▁class", - "ical" - ], - [ - "▁classic", - "al" - ], - [ - "▁Jer", - "sey" - ], - [ - "▁er", - "sch" - ], - [ - "▁ers", - "ch" - ], - [ - "▁", - "ersch" - ], - [ - "▁treat", - "ment" - ], - [ - "▁насе", - "ље" - ], - [ - "н", - "ня" - ], - [ - "▁bo", - "ost" - ], - [ - "▁", - "boost" - ], - [ - "am", - "ount" - ], - [ - "amo", - "unt" - ], - [ - "a", - "mount" - ], - [ - "▁со", - "зда" - ], - [ - "ér", - "ieur" - ], - [ - "érie", - "ur" - ], - [ - "éri", - "eur" - ], - [ - "▁t", - "elling" - ], - [ - "▁tell", - "ing" - ], - [ - "▁tel", - "ling" - ], - [ - "Ha", - "s" - ], - [ - "H", - "as" - ], - [ - "▁in", - "iti" - ], - [ - "▁init", - "i" - ], - [ - "▁П", - "и" - ], - [ - "ev", - "al" - ], - [ - "e", - "val" - ], - [ - "▁M", - "atch" - ], - [ - "▁Mat", - "ch" - ], - [ - "▁", - "Match" - ], - [ - "▁cor", - "re" - ], - [ - "▁corr", - "e" - ], - [ - "Point", - "er" - ], - [ - "Po", - "inter" - ], - [ - "▁pass", - "es" - ], - [ - "▁passe", - "s" - ], - [ - "comp", - "any" - ], - [ - "▁а", - "н" - ], - [ - "▁", - "ан" - ], - [ - "ach", - "es" - ], - [ - "ac", - "hes" - ], - [ - "ache", - "s" - ], - [ - "a", - "ches" - ], - [ - "▁sig", - "lo" - ], - [ - "не", - "м" - ], - [ - "н", - "ем" - ], - [ - "▁ex", - "change" - ], - [ - "▁", - "exchange" - ], - [ - "ci", - "to" - ], - [ - "cit", - "o" - ], - [ - "c", - "ito" - ], - [ - "▁B", - "ab" - ], - [ - "▁Ba", - "b" - ], - [ - "Do", - "c" - ], - [ - "D", - "oc" - ], - [ - "ze", - "ś" - ], - [ - "▁на", - "род" - ], - [ - "▁", - "народ" - ], - [ - "▁conf", - "lict" - ], - [ - "▁conflic", - "t" - ], - [ - "▁confl", - "ict" - ], - [ - "▁nov", - "ember" - ], - [ - "ea", - "u" - ], - [ - "e", - "au" - ], - [ - "ö", - "v" - ], - [ - "▁H", - "ub" - ], - [ - "▁Hu", - "b" - ], - [ - "▁", - "Hub" - ], - [ - "▁p", - "oco" - ], - [ - "▁po", - "co" - ], - [ - "▁poc", - "o" - ], - [ - "en", - "sa" - ], - [ - "ens", - "a" - ], - [ - "sch", - "ließ" - ], - [ - "lass", - "e" - ], - [ - "las", - "se" - ], - [ - "l", - "asse" - ], - [ - "data", - "s" - ], - [ - "dat", - "as" - ], - [ - "▁с", - "ти" - ], - [ - "▁ст", - "и" - ], - [ - "▁", - "сти" - ], - [ - "un", - "ivers" - ], - [ - "uni", - "vers" - ], - [ - "ek", - "s" - ], - [ - "e", - "ks" - ], - [ - "▁C", - "ho" - ], - [ - "▁Ch", - "o" - ], - [ - "▁", - "Cho" - ], - [ - "▁c", - "ô" - ], - [ - "▁(", - "." - ], - [ - "▁", - "(." - ], - [ - "ew", - "nę" - ], - [ - "▁Ch", - "ief" - ], - [ - "▁Chi", - "ef" - ], - [ - "▁ch", - "ef" - ], - [ - "▁che", - "f" - ], - [ - "▁у", - "прав" - ], - [ - "ul", - "i" - ], - [ - "u", - "li" - ], - [ - "▁'", - "''" - ], - [ - "▁''", - "'" - ], - [ - "▁", - "'''" - ], - [ - "nap", - "shot" - ], - [ - "▁re", - "lac" - ], - [ - "▁rel", - "ac" - ], - [ - "▁rela", - "c" - ], - [ - "ég", - "e" - ], - [ - "é", - "ge" - ], - [ - "w", - "t" - ], - [ - "we", - "nd" - ], - [ - "wen", - "d" - ], - [ - "w", - "end" - ], - [ - "os", - "ing" - ], - [ - "osi", - "ng" - ], - [ - "o", - "sing" - ], - [ - "▁ha", - "cer" - ], - [ - "▁hace", - "r" - ], - [ - "▁ф", - "ран" - ], - [ - "au", - "tres" - ], - [ - "aut", - "res" - ], - [ - "autre", - "s" - ], - [ - "▁f", - "ils" - ], - [ - "▁fil", - "s" - ], - [ - "▁fi", - "ls" - ], - [ - "er", - "ed" - ], - [ - "ere", - "d" - ], - [ - "e", - "red" - ], - [ - "▁По", - "силання" - ], - [ - "▁th", - "erm" - ], - [ - "▁the", - "rm" - ], - [ - "▁ther", - "m" - ], - [ - "ер", - "жа" - ], - [ - "su", - "ch" - ], - [ - "s", - "uch" - ], - [ - "▁i", - "hren" - ], - [ - "▁ih", - "ren" - ], - [ - "▁ihr", - "en" - ], - [ - "▁ihre", - "n" - ], - [ - "▁en", - "contr" - ], - [ - "▁l", - "ots" - ], - [ - "▁lo", - "ts" - ], - [ - "▁lot", - "s" - ], - [ - "lo", - "go" - ], - [ - "log", - "o" - ], - [ - "l", - "ogo" - ], - [ - "▁W", - "i" - ], - [ - "/", - "(" - ], - [ - "ш", - "ње" - ], - [ - "DA", - "TA" - ], - [ - "DAT", - "A" - ], - [ - "D", - "ATA" - ], - [ - "▁P", - "layer" - ], - [ - "▁Pl", - "ayer" - ], - [ - "▁Play", - "er" - ], - [ - "▁Pla", - "yer" - ], - [ - "▁", - "Player" - ], - [ - "▁Leip", - "zig" - ], - [ - "▁rel", - "atives" - ], - [ - "▁relative", - "s" - ], - [ - "▁relativ", - "es" - ], - [ - "ре", - "в" - ], - [ - "р", - "ев" - ], - [ - "▁new", - "sp" - ], - [ - "▁news", - "p" - ], - [ - "?", - "," - ], - [ - "▁St", - "utt" - ], - [ - "▁Stu", - "tt" - ], - [ - "▁d", - "ual" - ], - [ - "▁du", - "al" - ], - [ - "▁compan", - "ies" - ], - [ - "▁z", - "am" - ], - [ - "▁za", - "m" - ], - [ - "put", - "ation" - ], - [ - "▁in", - "equality" - ], - [ - "▁t", - "rem" - ], - [ - "▁tr", - "em" - ], - [ - "▁tre", - "m" - ], - [ - "hi", - "ps" - ], - [ - "hip", - "s" - ], - [ - "h", - "ips" - ], - [ - "an", - "ch" - ], - [ - "anc", - "h" - ], - [ - "▁", - "Ż" - ], - [ - "бур", - "г" - ], - [ - "▁cop", - "ies" - ], - [ - "da", - "sh" - ], - [ - "das", - "h" - ], - [ - "d", - "ash" - ], - [ - "во", - "р" - ], - [ - "в", - "ор" - ], - [ - "spiel", - "er" - ], - [ - "s", - "pieler" - ], - [ - "▁Re", - "volution" - ], - [ - "▁Revol", - "ution" - ], - [ - "es", - "ty" - ], - [ - "est", - "y" - ], - [ - "e", - "sty" - ], - [ - "▁j", - "unto" - ], - [ - "▁jun", - "to" - ], - [ - "▁junt", - "o" - ], - [ - "▁Ind", - "eed" - ], - [ - "ok", - "al" - ], - [ - "oka", - "l" - ], - [ - "o", - "kal" - ], - [ - "ctr", - "ine" - ], - [ - "▁F", - "ord" - ], - [ - "▁For", - "d" - ], - [ - "▁Fo", - "rd" - ], - [ - "▁C", - "REATE" - ], - [ - "▁", - "CREATE" - ], - [ - "▁w", - "alls" - ], - [ - "▁wall", - "s" - ], - [ - "▁wal", - "ls" - ], - [ - "▁a", - "ute" - ], - [ - "▁au", - "te" - ], - [ - "▁aut", - "e" - ], - [ - "S", - "U" - ], - [ - "wh", - "y" - ], - [ - "w", - "hy" - ], - [ - "plement", - "ation" - ], - [ - "ro", - "ut" - ], - [ - "rou", - "t" - ], - [ - "r", - "out" - ], - [ - "Mat", - "rix" - ], - [ - "▁s", - "ad" - ], - [ - "▁sa", - "d" - ], - [ - "ан", - "а" - ], - [ - "а", - "на" - ], - [ - "▁P", - "ic" - ], - [ - "▁Pi", - "c" - ], - [ - ".", - "“" - ], - [ - "▁A", - "C" - ], - [ - "▁", - "AC" - ], - [ - "▁F", - "est" - ], - [ - "▁Fe", - "st" - ], - [ - "▁des", - "ktop" - ], - [ - "▁", - "desktop" - ], - [ - "▁P", - "ay" - ], - [ - "▁Pa", - "y" - ], - [ - "▁", - "Pay" - ], - [ - "ome", - "times" - ], - [ - "omet", - "imes" - ], - [ - "▁T", - "ak" - ], - [ - "▁Ta", - "k" - ], - [ - "ра", - "б" - ], - [ - "▁S", - "ever" - ], - [ - "▁Se", - "ver" - ], - [ - "▁nor", - "thern" - ], - [ - "▁north", - "ern" - ], - [ - "an", - "ter" - ], - [ - "ant", - "er" - ], - [ - "ante", - "r" - ], - [ - "▁Mod", - "ern" - ], - [ - "▁Mo", - "dern" - ], - [ - "▁Mode", - "rn" - ], - [ - "wa", - "l" - ], - [ - "w", - "al" - ], - [ - "{", - "\r" - ], - [ - "on", - "line" - ], - [ - "ö", - "k" - ], - [ - "▁brit", - "ann" - ], - [ - "$", - "_" - ], - [ - "▁j", - "ar" - ], - [ - "▁ja", - "r" - ], - [ - "▁", - "jar" - ], - [ - "T", - "L" - ], - [ - "xx", - "xx" - ], - [ - "xxx", - "x" - ], - [ - "x", - "xxx" - ], - [ - "mer", - "ge" - ], - [ - "▁N", - "amen" - ], - [ - "▁Name", - "n" - ], - [ - "▁Na", - "men" - ], - [ - "▁Nam", - "en" - ], - [ - "▁K", - "EY" - ], - [ - "▁", - "KEY" - ], - [ - "▁re", - "fers" - ], - [ - "▁ref", - "ers" - ], - [ - "▁refer", - "s" - ], - [ - "▁h", - "in" - ], - [ - "▁hi", - "n" - ], - [ - "▁", - "hin" - ], - [ - "▁Vol", - "ks" - ], - [ - "▁Volk", - "s" - ], - [ - "st", - "eller" - ], - [ - "stell", - "er" - ], - [ - "stelle", - "r" - ], - [ - "vi", - "ation" - ], - [ - "via", - "tion" - ], - [ - "v", - "iation" - ], - [ - "on", - "io" - ], - [ - "oni", - "o" - ], - [ - "o", - "nio" - ], - [ - "ight", - "er" - ], - [ - "igh", - "ter" - ], - [ - "Com", - "pat" - ], - [ - "Comp", - "at" - ], - [ - "▁C", - "E" - ], - [ - "▁", - "CE" - ], - [ - "▁p", - "ró" - ], - [ - "▁pr", - "ó" - ], - [ - "▁encuent", - "ra" - ], - [ - "the", - "orem" - ], - [ - "▁pub", - "li" - ], - [ - "▁Develop", - "ment" - ], - [ - "н", - "д" - ], - [ - "▁r", - "os" - ], - [ - "▁ro", - "s" - ], - [ - "▁", - "ros" - ], - [ - "▁s", - "hr" - ], - [ - "▁sh", - "r" - ], - [ - "se", - "au" - ], - [ - "s", - "eau" - ], - [ - "▁gener", - "ating" - ], - [ - "▁gene", - "rating" - ], - [ - "▁difficult", - "y" - ], - [ - "▁Ex", - "press" - ], - [ - "▁Exp", - "ress" - ], - [ - "▁", - "Express" - ], - [ - "Al", - "ignment" - ], - [ - "de", - "utsch" - ], - [ - "▁Вла", - "ди" - ], - [ - "▁sugg", - "ests" - ], - [ - "▁suggest", - "s" - ], - [ - "▁Famil", - "y" - ], - [ - "▁Fam", - "ily" - ], - [ - "▁", - "Family" - ], - [ - "bb", - "i" - ], - [ - "b", - "bi" - ], - [ - "])", - "." - ], - [ - "]", - ")." - ], - [ - "st", - "aw" - ], - [ - "sta", - "w" - ], - [ - "▁pres", - "idente" - ], - [ - "▁president", - "e" - ], - [ - "▁presiden", - "te" - ], - [ - "▁st", - "esso" - ], - [ - "in", - "x" - ], - [ - "i", - "nx" - ], - [ - "set", - "up" - ], - [ - "▁con", - "form" - ], - [ - "▁conf", - "orm" - ], - [ - "▁f", - "ro" - ], - [ - "▁fr", - "o" - ], - [ - "=\\", - "\"" - ], - [ - "=", - "\\\"" - ], - [ - "▁d", - "å" - ], - [ - "ic", - "iones" - ], - [ - "ici", - "ones" - ], - [ - "icio", - "nes" - ], - [ - "icion", - "es" - ], - [ - "i", - "ciones" - ], - [ - "▁e", - "volution" - ], - [ - "▁evol", - "ution" - ], - [ - "pr", - "ote" - ], - [ - "pro", - "te" - ], - [ - "p", - "rote" - ], - [ - "▁pr", - "ints" - ], - [ - "▁print", - "s" - ], - [ - "▁prin", - "ts" - ], - [ - "▁P", - "ont" - ], - [ - "▁Po", - "nt" - ], - [ - "▁Pon", - "t" - ], - [ - "▁conf", - "usion" - ], - [ - "▁", - "Й" - ], - [ - "▁d", - "ello" - ], - [ - "▁del", - "lo" - ], - [ - "▁dell", - "o" - ], - [ - "▁man", - "if" - ], - [ - "Def", - "inition" - ], - [ - "ár", - "a" - ], - [ - "á", - "ra" - ], - [ - "ma", - "ls" - ], - [ - "mal", - "s" - ], - [ - "m", - "als" - ], - [ - "▁s", - "ale" - ], - [ - "▁sa", - "le" - ], - [ - "▁sal", - "e" - ], - [ - "▁drop", - "down" - ], - [ - "▁", - "dropdown" - ], - [ - "Ch", - "ain" - ], - [ - "Amer", - "ican" - ], - [ - "America", - "n" - ], - [ - "▁m", - "k" - ], - [ - "▁", - "mk" - ], - [ - "▁B", - "ez" - ], - [ - "▁Be", - "z" - ], - [ - "▁F", - "ue" - ], - [ - "▁Fu", - "e" - ], - [ - "▁N", - "E" - ], - [ - "▁", - "NE" - ], - [ - "гра", - "фи" - ], - [ - "граф", - "и" - ], - [ - "doc", - "ker" - ], - [ - "do", - "cker" - ], - [ - "d", - "ocker" - ], - [ - "▁^", - "{" - ], - [ - "▁", - "^{" - ], - [ - "As", - "sert" - ], - [ - "Ass", - "ert" - ], - [ - "▁hor", - "izontal" - ], - [ - "▁horizon", - "tal" - ], - [ - "▁", - "horizontal" - ], - [ - "(@", - "\"" - ], - [ - "(", - "@\"" - ], - [ - "▁д", - "ву" - ], - [ - "pro", - "xy" - ], - [ - "U", - "ri" - ], - [ - "gen", - "cy" - ], - [ - "g", - "ency" - ], - [ - "▁\"", - "[" - ], - [ - "▁Q", - "t" - ], - [ - "▁", - "Qt" - ], - [ - "▁N", - "ames" - ], - [ - "▁Name", - "s" - ], - [ - "▁Na", - "mes" - ], - [ - "▁Nam", - "es" - ], - [ - "▁", - "Names" - ], - [ - "▁evalu", - "ate" - ], - [ - "▁eval", - "uate" - ], - [ - "!", - "/" - ], - [ - "▁ein", - "ges" - ], - [ - "▁eing", - "es" - ], - [ - "▁syn", - "th" - ], - [ - "▁sy", - "nth" - ], - [ - "▁You", - "Tube" - ], - [ - "▁turn", - "ing" - ], - [ - "▁tur", - "ning" - ], - [ - "▁E", - "ric" - ], - [ - "▁Er", - "ic" - ], - [ - "▁б", - "ли" - ], - [ - "▁", - "бли" - ], - [ - "▁k", - "lub" - ], - [ - "▁kl", - "ub" - ], - [ - "pl", - "orer" - ], - [ - "▁s", - "ports" - ], - [ - "▁sport", - "s" - ], - [ - "▁s", - "ia" - ], - [ - "▁si", - "a" - ], - [ - "о", - "ш" - ], - [ - "▁d", - "ai" - ], - [ - "▁da", - "i" - ], - [ - "▁e", - "urope" - ], - [ - "▁europ", - "e" - ], - [ - "▁euro", - "pe" - ], - [ - "ic", - "ians" - ], - [ - "ici", - "ans" - ], - [ - "ician", - "s" - ], - [ - "icia", - "ns" - ], - [ - "ings", - "områ" - ], - [ - "▁d", - "re" - ], - [ - "▁dr", - "e" - ], - [ - "▁work", - "around" - ], - [ - "▁s", - "uit" - ], - [ - "▁su", - "it" - ], - [ - "▁", - "suit" - ], - [ - "amb", - "igu" - ], - [ - "▁quant", - "ity" - ], - [ - "▁", - "quantity" - ], - [ - "▁seg", - "undo" - ], - [ - "Sym", - "bol" - ], - [ - "S", - "ymbol" - ], - [ - "▁m", - "oral" - ], - [ - "▁mo", - "ral" - ], - [ - "▁mor", - "al" - ], - [ - "Ch", - "art" - ], - [ - "Char", - "t" - ], - [ - "C", - "hart" - ], - [ - "▁da", - "mit" - ], - [ - "▁dam", - "it" - ], - [ - "▁attempt", - "s" - ], - [ - "▁d", - "onn" - ], - [ - "▁do", - "nn" - ], - [ - "▁don", - "n" - ], - [ - "jo", - "s" - ], - [ - "j", - "os" - ], - [ - "▁e", - "re" - ], - [ - "▁er", - "e" - ], - [ - "▁", - "ere" - ], - [ - "▁hom", - "me" - ], - [ - "▁", - "homme" - ], - [ - "si", - "mp" - ], - [ - "sim", - "p" - ], - [ - "s", - "imp" - ], - [ - "rypt", - "ed" - ], - [ - "▁act", - "s" - ], - [ - "▁ac", - "ts" - ], - [ - "inner", - "HTML" - ], - [ - "▁tourn", - "ament" - ], - [ - "▁s", - "ky" - ], - [ - "▁sk", - "y" - ], - [ - "▁", - "sky" - ], - [ - "Time", - "r" - ], - [ - "Tim", - "er" - ], - [ - "T", - "imer" - ], - [ - "▁mill", - "ions" - ], - [ - "▁million", - "s" - ], - [ - "^", - "+" - ], - [ - "ag", - "ent" - ], - [ - "age", - "nt" - ], - [ - "agen", - "t" - ], - [ - "a", - "gent" - ], - [ - "')", - ");" - ], - [ - "'))", - ";" - ], - [ - "'", - "));" - ], - [ - "▁o", - "st" - ], - [ - "▁os", - "t" - ], - [ - "▁", - "ost" - ], - [ - "▁g", - "la" - ], - [ - "▁gl", - "a" - ], - [ - "▁по", - "мо" - ], - [ - "▁f", - "ün" - ], - [ - "ст", - "вом" - ], - [ - "ств", - "ом" - ], - [ - "ство", - "м" - ], - [ - "ewnę", - "trz" - ], - [ - "▁Mé", - "xico" - ], - [ - "▁l", - "ub" - ], - [ - "▁lu", - "b" - ], - [ - "▁", - "lub" - ], - [ - "▁É", - "d" - ], - [ - "if", - "ik" - ], - [ - "ifi", - "k" - ], - [ - "i", - "fik" - ], - [ - "че", - "ский" - ], - [ - "▁im", - "mer" - ], - [ - "▁imm", - "er" - ], - [ - "▁", - "immer" - ], - [ - "en", - "sen" - ], - [ - "ens", - "en" - ], - [ - "ense", - "n" - ], - [ - "an", - "ny" - ], - [ - "ann", - "y" - ], - [ - "in", - "line" - ], - [ - "▁g", - "over" - ], - [ - "▁go", - "ver" - ], - [ - "au", - "c" - ], - [ - "a", - "uc" - ], - [ - "▁re", - "pre" - ], - [ - "▁rep", - "re" - ], - [ - "▁repr", - "e" - ], - [ - "▁histor", - "ia" - ], - [ - "▁hist", - "oria" - ], - [ - "A", - "g" - ], - [ - "▁p", - "lt" - ], - [ - "▁pl", - "t" - ], - [ - "▁Pr", - "inci" - ], - [ - "▁Prin", - "ci" - ], - [ - "im", - "eter" - ], - [ - "ime", - "ter" - ], - [ - "imet", - "er" - ], - [ - "i", - "meter" - ], - [ - "ő", - "s" - ], - [ - "š", - "e" - ], - [ - "▁U", - "E" - ], - [ - "▁", - "UE" - ], - [ - "Equ", - "als" - ], - [ - "Equal", - "s" - ], - [ - "Eq", - "uals" - ], - [ - "Dis", - "patch" - ], - [ - "le", - "gen" - ], - [ - "leg", - "en" - ], - [ - "lege", - "n" - ], - [ - "l", - "egen" - ], - [ - "ла", - "зи" - ], - [ - "чно", - "й" - ], - [ - "ч", - "ной" - ], - [ - "▁st", - "ell" - ], - [ - "▁ste", - "ll" - ], - [ - "▁", - "stell" - ], - [ - "ń", - "st" - ], - [ - "▁c", - "ri" - ], - [ - "▁cr", - "i" - ], - [ - "▁", - "cri" - ], - [ - "▁In", - "dep" - ], - [ - "▁Ind", - "ep" - ], - [ - "è", - "de" - ], - [ - "}\\", - ")" - ], - [ - "}", - "\\)" - ], - [ - "▁w", - "yst" - ], - [ - "▁wy", - "st" - ], - [ - "▁wys", - "t" - ], - [ - "▁fig", - "ured" - ], - [ - "▁figure", - "d" - ], - [ - "▁figur", - "ed" - ], - [ - "AT", - "CH" - ], - [ - "éb", - "en" - ], - [ - "é", - "ben" - ], - [ - "la", - "cht" - ], - [ - "lac", - "ht" - ], - [ - "lach", - "t" - ], - [ - "l", - "acht" - ], - [ - "▁succeed", - "ed" - ], - [ - "gr", - "y" - ], - [ - "g", - "ry" - ], - [ - "▁p", - "ret" - ], - [ - "▁pr", - "et" - ], - [ - "▁pre", - "t" - ], - [ - "▁", - "pret" - ], - [ - "▁S", - "af" - ], - [ - "▁Sa", - "f" - ], - [ - "▁\"", - ");" - ], - [ - "▁\")", - ";" - ], - [ - "▁", - "\");" - ], - [ - "e", - "h" - ], - [ - "▁offic", - "iel" - ], - [ - "▁offici", - "el" - ], - [ - "краї", - "н" - ], - [ - "wi", - "nd" - ], - [ - "win", - "d" - ], - [ - "w", - "ind" - ], - [ - "▁sc", - "atter" - ], - [ - "▁F", - "ox" - ], - [ - "▁Fo", - "x" - ], - [ - "ic", - "ious" - ], - [ - "ici", - "ous" - ], - [ - "icio", - "us" - ], - [ - "i", - "cious" - ], - [ - "Man", - "y" - ], - [ - "Ma", - "ny" - ], - [ - "M", - "any" - ], - [ - "up", - "er" - ], - [ - "u", - "per" - ], - [ - "▁Con", - "vert" - ], - [ - "▁", - "Convert" - ], - [ - "st", - "erd" - ], - [ - "ste", - "rd" - ], - [ - "ster", - "d" - ], - [ - "▁St", - "ein" - ], - [ - "▁Ste", - "in" - ], - [ - "▁О", - "т" - ], - [ - "}^", - "{(" - ], - [ - "}^{", - "(" - ], - [ - "}", - "^{(" - ], - [ - "bet", - "ween" - ], - [ - "hi", - "re" - ], - [ - "h", - "ire" - ], - [ - "▁on", - "Create" - ], - [ - "▁", - "onCreate" - ], - [ - ";", - "" - ], - [ - "-", - "->" - ], - [ - "▁p", - "ří" - ], - [ - "▁př", - "í" - ], - [ - "pan", - "das" - ], - [ - "p", - "andas" - ], - [ - "▁P", - "lus" - ], - [ - "▁Pl", - "us" - ], - [ - "▁", - "Plus" - ], - [ - "yl", - "l" - ], - [ - "y", - "ll" - ], - [ - "▁t", - "error" - ], - [ - "▁te", - "rror" - ], - [ - "▁ter", - "ror" - ], - [ - "▁c", - "rim" - ], - [ - "▁cr", - "im" - ], - [ - "▁cri", - "m" - ], - [ - "▁z", - "ak" - ], - [ - "▁za", - "k" - ], - [ - "▁", - "zak" - ], - [ - "iss", - "ue" - ], - [ - "pa", - "nel" - ], - [ - "pan", - "el" - ], - [ - "p", - "anel" - ], - [ - "sv", - "g" - ], - [ - "▁re", - "b" - ], - [ - "▁r", - "eb" - ], - [ - "▁", - "reb" - ], - [ - "Custom", - "er" - ], - [ - "sw", - "itch" - ], - [ - "об", - "ра" - ], - [ - "о", - "бра" - ], - [ - "▁Champion", - "ships" - ], - [ - "▁Championship", - "s" - ], - [ - "▁Champions", - "hips" - ], - [ - "cl", - "o" - ], - [ - "c", - "lo" - ], - [ - "at", - "te" - ], - [ - "att", - "e" - ], - [ - "a", - "tte" - ], - [ - "▁any", - "more" - ], - [ - "▁excell", - "ent" - ], - [ - "▁opport", - "unity" - ], - [ - "▁opportun", - "ity" - ], - [ - "▁B", - "ahn" - ], - [ - "▁Ba", - "hn" - ], - [ - "▁Bah", - "n" - ], - [ - "чи", - "н" - ], - [ - "ч", - "ин" - ], - [ - "et", - "ing" - ], - [ - "eti", - "ng" - ], - [ - "e", - "ting" - ], - [ - "▁inc", - "ident" - ], - [ - "to", - "m" - ], - [ - "t", - "om" - ], - [ - "Per", - "s" - ], - [ - "Pe", - "rs" - ], - [ - "P", - "ers" - ], - [ - "bb", - "en" - ], - [ - "bbe", - "n" - ], - [ - "b", - "ben" - ], - [ - "ствен", - "ной" - ], - [ - "ственно", - "й" - ], - [ - "и", - "х" - ], - [ - "ro", - "uter" - ], - [ - "route", - "r" - ], - [ - "rout", - "er" - ], - [ - "rou", - "ter" - ], - [ - "r", - "outer" - ], - [ - "▁new", - "ly" - ], - [ - "▁sil", - "ence" - ], - [ - "▁G", - "NU" - ], - [ - "▁R", - "ails" - ], - [ - "▁Ra", - "ils" - ], - [ - "▁Rail", - "s" - ], - [ - "▁A", - "mb" - ], - [ - "▁Am", - "b" - ], - [ - "▁Q", - "ual" - ], - [ - "▁Qu", - "al" - ], - [ - "▁", - "Qual" - ], - [ - "▁Sch", - "aus" - ], - [ - "▁Sc", - "haus" - ], - [ - "▁S", - "ohn" - ], - [ - "▁So", - "hn" - ], - [ - "▁A", - "LL" - ], - [ - "▁AL", - "L" - ], - [ - "▁", - "ALL" - ], - [ - "▁ro", - "yal" - ], - [ - "▁roy", - "al" - ], - [ - "▁", - "£" - ], - [ - "wi", - "ę" - ], - [ - "w", - "ię" - ], - [ - "▁ent", - "fer" - ], - [ - "▁Re", - "move" - ], - [ - "▁Rem", - "ove" - ], - [ - "▁", - "Remove" - ], - [ - "▁hard", - "ly" - ], - [ - "Us", - "ing" - ], - [ - "U", - "sing" - ], - [ - "ло", - "г" - ], - [ - "▁I", - "ch" - ], - [ - "▁d", - "erni" - ], - [ - "▁der", - "ni" - ], - [ - "▁Con", - "nection" - ], - [ - "▁Connect", - "ion" - ], - [ - "▁", - "Connection" - ], - [ - "fi", - "sh" - ], - [ - "f", - "ish" - ], - [ - "▁In", - "form" - ], - [ - "▁Inf", - "orm" - ], - [ - "▁Info", - "rm" - ], - [ - "▁E", - "ner" - ], - [ - "▁En", - "er" - ], - [ - "ro", - "it" - ], - [ - "r", - "oit" - ], - [ - "B", - "bb" - ], - [ - "View", - "Model" - ], - [ - "V", - "ideo" - ], - [ - "il", - "ey" - ], - [ - "ile", - "y" - ], - [ - "i", - "ley" - ], - [ - "▁м", - "ного" - ], - [ - "▁мно", - "го" - ], - [ - "▁G", - "em" - ], - [ - "▁Ge", - "m" - ], - [ - "▁comp", - "reh" - ], - [ - "▁compr", - "eh" - ], - [ - "en", - "umerate" - ], - [ - "ul", - "as" - ], - [ - "ula", - "s" - ], - [ - "u", - "las" - ], - [ - "▁B", - "ah" - ], - [ - "▁Ba", - "h" - ], - [ - "▁Y", - "et" - ], - [ - "▁Ye", - "t" - ], - [ - "B", - "R" - ], - [ - "х", - "ра" - ], - [ - "▁count", - "y" - ], - [ - "▁coun", - "ty" - ], - [ - "▁H", - "ist" - ], - [ - "▁His", - "t" - ], - [ - "▁Hi", - "st" - ], - [ - "▁Г", - "у" - ], - [ - "▁", - "Ј" - ], - [ - "▁m", - "ari" - ], - [ - "▁ma", - "ri" - ], - [ - "▁mar", - "i" - ], - [ - "▁C", - "lar" - ], - [ - "▁Cl", - "ar" - ], - [ - "▁Cla", - "r" - ], - [ - "Bit", - "map" - ], - [ - "B", - "itmap" - ], - [ - "▁C", - "z" - ], - [ - "▁m", - "ån" - ], - [ - "▁må", - "n" - ], - [ - "▁m", - "ere" - ], - [ - "▁me", - "re" - ], - [ - "▁mer", - "e" - ], - [ - "▁mus", - "ique" - ], - [ - "al", - "so" - ], - [ - "als", - "o" - ], - [ - "date", - "s" - ], - [ - "da", - "tes" - ], - [ - "dat", - "es" - ], - [ - "d", - "ates" - ], - [ - "▁D", - "VD" - ], - [ - "▁g", - "ol" - ], - [ - "▁go", - "l" - ], - [ - "fo", - "ny" - ], - [ - "fon", - "y" - ], - [ - "f", - "ony" - ], - [ - "▁Cast", - "le" - ], - [ - "▁фа", - "ми" - ], - [ - "▁arr", - "ang" - ], - [ - "▁Bus", - "iness" - ], - [ - "▁K", - "az" - ], - [ - "▁Ka", - "z" - ], - [ - "▁o", - "sc" - ], - [ - "▁os", - "c" - ], - [ - "▁", - "osc" - ], - [ - "▁se", - "colo" - ], - [ - "▁sec", - "olo" - ], - [ - "▁aff", - "ected" - ], - [ - "▁affect", - "ed" - ], - [ - "▁He", - "alth" - ], - [ - "re", - "b" - ], - [ - "r", - "eb" - ], - [ - "ed", - "itor" - ], - [ - "edit", - "or" - ], - [ - "edi", - "tor" - ], - [ - "▁own", - "ed" - ], - [ - "▁ow", - "ned" - ], - [ - "▁", - "owned" - ], - [ - "t", - "l" - ], - [ - "▁v", - "í" - ], - [ - "▁", - "ví" - ], - [ - "чни", - "х" - ], - [ - "ч", - "них" - ], - [ - "к", - "ви" - ], - [ - "▁dev", - "ient" - ], - [ - "▁devi", - "ent" - ], - [ - "M", - "utable" - ], - [ - "▁t", - "egen" - ], - [ - "▁te", - "gen" - ], - [ - "Reg", - "ister" - ], - [ - "є", - "ю" - ], - [ - "▁car", - "acter" - ], - [ - "лл", - "и" - ], - [ - "л", - "ли" - ], - [ - "▁n", - "ouvelle" - ], - [ - "▁nouve", - "lle" - ], - [ - "ok", - "o" - ], - [ - "o", - "ko" - ], - [ - "icht", - "et" - ], - [ - "ichte", - "t" - ], - [ - "▁e", - "vol" - ], - [ - "▁ev", - "ol" - ], - [ - "▁H", - "ab" - ], - [ - "▁Ha", - "b" - ], - [ - "▁mil", - "itar" - ], - [ - "▁milit", - "ar" - ], - [ - "▁p", - "uts" - ], - [ - "▁put", - "s" - ], - [ - "▁pu", - "ts" - ], - [ - "end", - "if" - ], - [ - "endi", - "f" - ], - [ - "▁Dav", - "is" - ], - [ - "▁Da", - "vis" - ], - [ - "▁Scot", - "land" - ], - [ - "reg", - "ular" - ], - [ - "▁Con", - "text" - ], - [ - "▁Cont", - "ext" - ], - [ - "▁", - "Context" - ], - [ - "is", - "piel" - ], - [ - "isp", - "iel" - ], - [ - "i", - "spiel" - ], - [ - "▁G", - "allery" - ], - [ - "▁Gall", - "ery" - ], - [ - "\",", - "\r" - ], - [ - "\"", - ",\r" - ], - [ - "▁a", - "rc" - ], - [ - "▁ar", - "c" - ], - [ - "▁", - "arc" - ], - [ - "▁IN", - "FO" - ], - [ - "▁", - "INFO" - ], - [ - "▁c", - "od" - ], - [ - "▁co", - "d" - ], - [ - "▁", - "cod" - ], - [ - "ді", - "в" - ], - [ - "д", - "ів" - ], - [ - "▁v", - "archar" - ], - [ - "▁var", - "char" - ], - [ - "▁", - "varchar" - ], - [ - "▁tou", - "jours" - ], - [ - "at", - "ial" - ], - [ - "ati", - "al" - ], - [ - "atia", - "l" - ], - [ - "▁h", - "anno" - ], - [ - "▁han", - "no" - ], - [ - "▁проф", - "ес" - ], - [ - "▁launch", - "ed" - ], - [ - "▁насе", - "лення" - ], - [ - "▁t", - "on" - ], - [ - "▁to", - "n" - ], - [ - "▁", - "ton" - ], - [ - "au", - "sed" - ], - [ - "ause", - "d" - ], - [ - "aus", - "ed" - ], - [ - "a", - "used" - ], - [ - "▁і", - "з" - ], - [ - "▁t", - "ö" - ], - [ - "▁P", - "ur" - ], - [ - "▁Pu", - "r" - ], - [ - "▁o", - "lymp" - ], - [ - "AR", - "N" - ], - [ - "ó", - "m" - ], - [ - "▁a", - "ugust" - ], - [ - "▁aug", - "ust" - ], - [ - "▁f", - "urn" - ], - [ - "▁fur", - "n" - ], - [ - "▁fu", - "rn" - ], - [ - "▁Col", - "omb" - ], - [ - "▁Sta", - "ats" - ], - [ - "▁Staat", - "s" - ], - [ - "ho", - "ra" - ], - [ - "hor", - "a" - ], - [ - "h", - "ora" - ], - [ - "▁м", - "ор" - ], - [ - "▁мо", - "р" - ], - [ - "▁", - "мор" - ], - [ - "can", - "vas" - ], - [ - "▁gr", - "ave" - ], - [ - "▁gra", - "ve" - ], - [ - "▁grav", - "e" - ], - [ - "▁com", - "position" - ], - [ - "▁comp", - "osition" - ], - [ - "▁compos", - "ition" - ], - [ - "ac", - "ja" - ], - [ - "▁которы", - "е" - ], - [ - "▁ч", - "о" - ], - [ - "▁", - "чо" - ], - [ - "Gener", - "al" - ], - [ - "Gen", - "eral" - ], - [ - "ан", - "і" - ], - [ - "а", - "ні" - ], - [ - "▁Joh", - "annes" - ], - [ - "▁Johann", - "es" - ], - [ - "▁Johan", - "nes" - ], - [ - "ка", - "р" - ], - [ - "к", - "ар" - ], - [ - "▁ча", - "ст" - ], - [ - "▁час", - "т" - ], - [ - "▁Ва", - "си" - ], - [ - "ss", - "h" - ], - [ - "s", - "sh" - ], - [ - "▁repla", - "cing" - ], - [ - "▁<", - ">" - ], - [ - "▁", - "<>" - ], - [ - "ці", - "в" - ], - [ - "ц", - "ів" - ], - [ - "la", - "us" - ], - [ - "lau", - "s" - ], - [ - "l", - "aus" - ], - [ - "en", - "y" - ], - [ - "e", - "ny" - ], - [ - "äh", - "l" - ], - [ - "ä", - "hl" - ], - [ - "▁m", - "arg" - ], - [ - "▁ma", - "rg" - ], - [ - "▁mar", - "g" - ], - [ - "ci", - "ence" - ], - [ - "c", - "ience" - ], - [ - "▁inst", - "ruction" - ], - [ - "▁instru", - "ction" - ], - [ - "▁instruct", - "ion" - ], - [ - "▁ко", - "ји" - ], - [ - "Ed", - "itor" - ], - [ - "Edit", - "or" - ], - [ - "▁fund", - "amental" - ], - [ - "mu", - "nd" - ], - [ - "mun", - "d" - ], - [ - "m", - "und" - ], - [ - "▁exception", - "s" - ], - [ - "▁except", - "ions" - ], - [ - "▁p", - "late" - ], - [ - "▁pl", - "ate" - ], - [ - "▁pla", - "te" - ], - [ - "▁plat", - "e" - ], - [ - "▁", - "plate" - ], - [ - "▁L", - "is" - ], - [ - "▁Li", - "s" - ], - [ - "▁d", - "eren" - ], - [ - "▁de", - "ren" - ], - [ - "▁der", - "en" - ], - [ - "▁dere", - "n" - ], - [ - "pr", - "ep" - ], - [ - "pre", - "p" - ], - [ - "p", - "rep" - ], - [ - "▁janu", - "ari" - ], - [ - "Sc", - "ope" - ], - [ - "S", - "cope" - ], - [ - "yn", - "ast" - ], - [ - "yna", - "st" - ], - [ - "r", - "v" - ], - [ - "or", - "sz" - ], - [ - "ors", - "z" - ], - [ - "▁T", - "ony" - ], - [ - "▁To", - "ny" - ], - [ - "▁Ton", - "y" - ], - [ - "▁д", - "і" - ], - [ - "▁", - "ді" - ], - [ - "▁о", - "дна" - ], - [ - "▁од", - "на" - ], - [ - "▁s", - "ab" - ], - [ - "▁sa", - "b" - ], - [ - "ot", - "i" - ], - [ - "o", - "ti" - ], - [ - "je", - "l" - ], - [ - "j", - "el" - ], - [ - "▁gener", - "ator" - ], - [ - "▁", - "generator" - ], - [ - "▁'", - "." - ], - [ - "▁", - "'." - ], - [ - "▁sh", - "arp" - ], - [ - "▁", - "sharp" - ], - [ - "▁то", - "лько" - ], - [ - "▁account", - "s" - ], - [ - "▁ž", - "e" - ], - [ - "▁", - "že" - ], - [ - "▁for", - "am" - ], - [ - "▁fo", - "ram" - ], - [ - "▁g", - "ouvern" - ], - [ - "TI", - "ME" - ], - [ - "T", - "IME" - ], - [ - "▁Sov", - "iet" - ], - [ - "▁G", - "é" - ], - [ - "▁ex", - "ped" - ], - [ - "▁exp", - "ed" - ], - [ - "▁ord", - "inary" - ], - [ - "▁ordin", - "ary" - ], - [ - "▁", - "ordinary" - ], - [ - "▁Con", - "serv" - ], - [ - "▁Cons", - "erv" - ], - [ - "▁Conse", - "rv" - ], - [ - "▁com", - "pla" - ], - [ - "▁comp", - "la" - ], - [ - "▁compl", - "a" - ], - [ - "te", - "i" - ], - [ - "t", - "ei" - ], - [ - "▁cap", - "tain" - ], - [ - "▁capt", - "ain" - ], - [ - "▁Sam", - "uel" - ], - [ - "▁D", - "ark" - ], - [ - "▁Dar", - "k" - ], - [ - "▁в", - "ін" - ], - [ - "▁ві", - "н" - ], - [ - "▁de", - "light" - ], - [ - "▁del", - "ight" - ], - [ - "re", - "cht" - ], - [ - "rec", - "ht" - ], - [ - "di", - "a" - ], - [ - "d", - "ia" - ], - [ - "ess", - "es" - ], - [ - "esse", - "s" - ], - [ - "ul", - "p" - ], - [ - "u", - "lp" - ], - [ - "ш", - "ки" - ], - [ - "be", - "z" - ], - [ - "b", - "ez" - ], - [ - "▁det", - "ection" - ], - [ - "▁detect", - "ion" - ], - [ - "▁cook", - "ie" - ], - [ - "▁", - "cookie" - ], - [ - "an", - "try" - ], - [ - "ant", - "ry" - ], - [ - "Mult", - "i" - ], - [ - "ob", - "a" - ], - [ - "o", - "ba" - ], - [ - "▁j", - "oy" - ], - [ - "▁jo", - "y" - ], - [ - "▁safe", - "ty" - ], - [ - "▁saf", - "ety" - ], - [ - "|", - "^" - ], - [ - "po", - "d" - ], - [ - "p", - "od" - ], - [ - "ad", - "ém" - ], - [ - "▁Ch", - "ron" - ], - [ - "▁Chr", - "on" - ], - [ - "▁D", - "jango" - ], - [ - "▁Dj", - "ango" - ], - [ - "▁ehem", - "al" - ], - [ - "k", - "h" - ], - [ - "è", - "le" - ], - [ - "▁p", - "oc" - ], - [ - "▁po", - "c" - ], - [ - "B", - "ottom" - ], - [ - "la", - "unch" - ], - [ - "ne", - "m" - ], - [ - "n", - "em" - ], - [ - "▁G", - "ROUP" - ], - [ - "▁", - "GROUP" - ], - [ - "ní", - "ho" - ], - [ - "▁G", - "ib" - ], - [ - "▁Gi", - "b" - ], - [ - "sd", - "k" - ], - [ - "s", - "dk" - ], - [ - "B", - "E" - ], - [ - "▁G", - "ene" - ], - [ - "▁Ge", - "ne" - ], - [ - "▁Gen", - "e" - ], - [ - "▁St", - "aff" - ], - [ - "▁Sta", - "ff" - ], - [ - "▁subsequ", - "ent" - ], - [ - "ic", - "ion" - ], - [ - "ici", - "on" - ], - [ - "icio", - "n" - ], - [ - "i", - "cion" - ], - [ - "▁vict", - "ory" - ], - [ - "▁c", - "anon" - ], - [ - "▁can", - "on" - ], - [ - "▁ca", - "non" - ], - [ - "iz", - "ar" - ], - [ - "iza", - "r" - ], - [ - "i", - "zar" - ], - [ - "iz", - "ia" - ], - [ - "izi", - "a" - ], - [ - "i", - "zia" - ], - [ - "▁m", - "ate" - ], - [ - "▁ma", - "te" - ], - [ - "▁mat", - "e" - ], - [ - "▁", - "mate" - ], - [ - "▁lay", - "ers" - ], - [ - "▁layer", - "s" - ], - [ - "▁", - "layers" - ], - [ - "su", - "do" - ], - [ - "s", - "udo" - ], - [ - "sch", - "ule" - ], - [ - "per", - "iment" - ], - [ - "ül", - "et" - ], - [ - "ü", - "let" - ], - [ - "AR", - "CHAR" - ], - [ - "▁тер", - "рито" - ], - [ - "▁me", - "asures" - ], - [ - "▁measure", - "s" - ], - [ - "▁meas", - "ures" - ], - [ - "▁z", - "ou" - ], - [ - "▁zo", - "u" - ], - [ - "ops", - "is" - ], - [ - "на", - "ми" - ], - [ - "tb", - "ody" - ], - [ - "t", - "body" - ], - [ - "▁e", - "se" - ], - [ - "▁es", - "e" - ], - [ - "▁", - "ese" - ], - [ - "ster", - "dam" - ], - [ - "sterd", - "am" - ], - [ - "▁ph", - "oto" - ], - [ - "▁phot", - "o" - ], - [ - "▁", - "photo" - ], - [ - "ynchron", - "ous" - ], - [ - "set", - "minus" - ], - [ - "▁lo", - "ads" - ], - [ - "▁load", - "s" - ], - [ - "▁", - "loads" - ], - [ - "▁ple", - "asure" - ], - [ - "▁me", - "ille" - ], - [ - "}\\", - "," - ], - [ - "}", - "\\," - ], - [ - "qu", - "al" - ], - [ - "qua", - "l" - ], - [ - "q", - "ual" - ], - [ - "▁fav", - "our" - ], - [ - "▁r", - "od" - ], - [ - "▁ro", - "d" - ], - [ - "▁", - "rod" - ], - [ - "De", - "r" - ], - [ - "D", - "er" - ], - [ - "ра", - "бо" - ], - [ - "раб", - "о" - ], - [ - "▁pr", - "essed" - ], - [ - "▁pres", - "sed" - ], - [ - "▁press", - "ed" - ], - [ - "▁", - "pressed" - ], - [ - "r", - "ę" - ], - [ - "ie", - "ving" - ], - [ - "iev", - "ing" - ], - [ - "mate", - "rial" - ], - [ - "m", - "aterial" - ], - [ - "vi", - "rt" - ], - [ - "vir", - "t" - ], - [ - "v", - "irt" - ], - [ - "▁cap", - "able" - ], - [ - "с", - "ло" - ], - [ - "us", - "hed" - ], - [ - "ush", - "ed" - ], - [ - "▁по", - "бе" - ], - [ - "uset", - "ts" - ], - [ - "un", - "signed" - ], - [ - "uns", - "igned" - ], - [ - "k", - "ów" - ], - [ - "▁o", - "v" - ], - [ - "▁", - "ov" - ], - [ - "eg", - "eben" - ], - [ - "ege", - "ben" - ], - [ - "e", - "geben" - ], - [ - "▁app", - "lying" - ], - [ - "▁apply", - "ing" - ], - [ - "▁gal", - "ax" - ], - [ - "▁ga", - "lax" - ], - [ - "▁O", - "racle" - ], - [ - "▁Or", - "acle" - ], - [ - "▁Stutt", - "gart" - ], - [ - "In", - "fl" - ], - [ - "Inf", - "l" - ], - [ - "ach", - "usetts" - ], - [ - "▁de", - "el" - ], - [ - "li", - "re" - ], - [ - "l", - "ire" - ], - [ - "▁stat", - "unit" - ], - [ - "▁Polit", - "iker" - ], - [ - "▁Politik", - "er" - ], - [ - "▁beaut", - "y" - ], - [ - ")", - ">" - ], - [ - "▁Columb", - "ia" - ], - [ - "▁zewnętrz", - "ne" - ], - [ - "▁про", - "гра" - ], - [ - "▁пр", - "огра" - ], - [ - "▁d", - "x" - ], - [ - "▁", - "dx" - ], - [ - "ck", - "now" - ], - [ - "c", - "know" - ], - [ - "▁d", - "ub" - ], - [ - "▁du", - "b" - ], - [ - "un", - "ächst" - ], - [ - "find", - "ViewById" - ], - [ - "▁M", - "and" - ], - [ - "▁Man", - "d" - ], - [ - "▁Ma", - "nd" - ], - [ - "ál", - "l" - ], - [ - "á", - "ll" - ], - [ - "na", - "ire" - ], - [ - "n", - "aire" - ], - [ - "▁dest", - "in" - ], - [ - "is", - "ting" - ], - [ - "ist", - "ing" - ], - [ - "isti", - "ng" - ], - [ - "ag", - "gi" - ], - [ - "agg", - "i" - ], - [ - "a", - "ggi" - ], - [ - "ch", - "art" - ], - [ - "char", - "t" - ], - [ - "cha", - "rt" - ], - [ - "c", - "hart" - ], - [ - "▁just", - "ice" - ], - [ - "Sim", - "ple" - ], - [ - "▁un", - "fortunately" - ], - [ - "і", - "р" - ], - [ - "▁qu", - "esta" - ], - [ - "▁que", - "sta" - ], - [ - "▁quest", - "a" - ], - [ - "▁", - "questa" - ], - [ - "▁Govern", - "or" - ], - [ - "я", - "в" - ], - [ - "▁mús", - "ica" - ], - [ - "▁equ", - "ipo" - ], - [ - "▁equip", - "o" - ], - [ - "▁D", - "est" - ], - [ - "▁De", - "st" - ], - [ - "▁Des", - "t" - ], - [ - "▁", - "Dest" - ], - [ - "el", - "ect" - ], - [ - "ele", - "ct" - ], - [ - "e", - "lect" - ], - [ - "Stack", - "Trace" - ], - [ - "зо", - "м" - ], - [ - "з", - "ом" - ], - [ - "pr", - "oc" - ], - [ - "pro", - "c" - ], - [ - "p", - "roc" - ], - [ - "ent", - "in" - ], - [ - "enti", - "n" - ], - [ - "ad", - "ora" - ], - [ - "ado", - "ra" - ], - [ - "ador", - "a" - ], - [ - "▁Л", - "ю" - ], - [ - "▁register", - "ed" - ], - [ - "H", - "L" - ], - [ - "face", - "book" - ], - [ - "fac", - "ebook" - ], - [ - "▁st", - "oring" - ], - [ - "▁stor", - "ing" - ], - [ - "▁sto", - "ring" - ], - [ - "▁Current", - "ly" - ], - [ - "▁qu", - "adr" - ], - [ - "▁quad", - "r" - ], - [ - "Stand", - "ard" - ], - [ - "tr", - "im" - ], - [ - "tri", - "m" - ], - [ - "t", - "rim" - ], - [ - "ear", - "s" - ], - [ - "ea", - "rs" - ], - [ - "e", - "ars" - ], - [ - "se", - "nder" - ], - [ - "sen", - "der" - ], - [ - "send", - "er" - ], - [ - "s", - "ender" - ], - [ - "▁V", - "as" - ], - [ - "▁Va", - "s" - ], - [ - "▁ed", - "ific" - ], - [ - "▁B", - "ür" - ], - [ - "▁Bü", - "r" - ], - [ - "▁C", - "ountry" - ], - [ - "▁Count", - "ry" - ], - [ - "▁Coun", - "try" - ], - [ - "▁", - "Country" - ], - [ - "th", - "a" - ], - [ - "t", - "ha" - ], - [ - ";", - "\"" - ], - [ - "no", - "r" - ], - [ - "n", - "or" - ], - [ - "▁Do", - "ctor" - ], - [ - "▁Doc", - "tor" - ], - [ - "ru", - "ment" - ], - [ - "rum", - "ent" - ], - [ - "r", - "ument" - ], - [ - "Ge", - "n" - ], - [ - "G", - "en" - ], - [ - "▁B", - "uen" - ], - [ - "▁Bu", - "en" - ], - [ - "ra", - "de" - ], - [ - "rad", - "e" - ], - [ - "r", - "ade" - ], - [ - "▁k", - "un" - ], - [ - "n", - "avigation" - ], - [ - "Pa", - "y" - ], - [ - "P", - "ay" - ], - [ - "▁capt", - "ured" - ], - [ - "▁capture", - "d" - ], - [ - "▁st", - "ruck" - ], - [ - "▁str", - "uck" - ], - [ - "▁stru", - "ck" - ], - [ - "ven", - "ir" - ], - [ - "ém", - "ent" - ], - [ - "é", - "ment" - ], - [ - "▁T", - "ree" - ], - [ - "▁Tr", - "ee" - ], - [ - "▁Tre", - "e" - ], - [ - "▁", - "Tree" - ], - [ - "▁x", - "x" - ], - [ - "▁", - "xx" - ], - [ - "▁n", - "arr" - ], - [ - "▁na", - "rr" - ], - [ - "▁nar", - "r" - ], - [ - "ль", - "ного" - ], - [ - "льно", - "го" - ], - [ - "▁inst", - "alling" - ], - [ - "▁install", - "ing" - ], - [ - "▁instal", - "ling" - ], - [ - "▁associ", - "ation" - ], - [ - "▁insert", - "ed" - ], - [ - "▁inser", - "ted" - ], - [ - "er", - "ner" - ], - [ - "ern", - "er" - ], - [ - "erne", - "r" - ], - [ - "valid", - "ate" - ], - [ - "▁l", - "ut" - ], - [ - "▁lu", - "t" - ], - [ - "▁g", - "lo" - ], - [ - "▁gl", - "o" - ], - [ - "▁techn", - "ology" - ], - [ - "▁P", - "lace" - ], - [ - "▁Pl", - "ace" - ], - [ - "▁Pla", - "ce" - ], - [ - "▁", - "Place" - ], - [ - "$", - "?" - ], - [ - "▁z", - "v" - ], - [ - "с", - "лі" - ], - [ - "E", - "P" - ], - [ - "▁at", - "mos" - ], - [ - "ug", - "o" - ], - [ - "u", - "go" - ], - [ - "ér", - "t" - ], - [ - "é", - "rt" - ], - [ - "▁W", - "erk" - ], - [ - "▁Wer", - "k" - ], - [ - "▁%", - "}" - ], - [ - "te", - "le" - ], - [ - "tel", - "e" - ], - [ - "t", - "ele" - ], - [ - "Sp", - "an" - ], - [ - "S", - "pan" - ], - [ - "▁R", - "aj" - ], - [ - "▁Ra", - "j" - ], - [ - "▁Person", - "en" - ], - [ - "▁Pers", - "onen" - ], - [ - "▁C", - "ant" - ], - [ - "▁Can", - "t" - ], - [ - "▁Ca", - "nt" - ], - [ - "▁com", - "bat" - ], - [ - "▁comb", - "at" - ], - [ - "▁observ", - "ation" - ], - [ - "▁obs", - "ervation" - ], - [ - "param", - "eter" - ], - [ - "para", - "meter" - ], - [ - "▁agre", - "ed" - ], - [ - "▁agree", - "d" - ], - [ - "▁agr", - "eed" - ], - [ - "pu", - "r" - ], - [ - "p", - "ur" - ], - [ - "▁sh", - "adow" - ], - [ - "▁", - "shadow" - ], - [ - "▁g", - "ł" - ], - [ - "Key", - "s" - ], - [ - "Ke", - "ys" - ], - [ - "Cre", - "d" - ], - [ - "Cr", - "ed" - ], - [ - "C", - "red" - ], - [ - "ou", - "ri" - ], - [ - "our", - "i" - ], - [ - "o", - "uri" - ], - [ - "▁p", - "ale" - ], - [ - "▁pa", - "le" - ], - [ - "▁pal", - "e" - ], - [ - "ic", - "ké" - ], - [ - "ick", - "é" - ], - [ - "▁We", - "ek" - ], - [ - "▁", - "Week" - ], - [ - "▁Pr", - "ime" - ], - [ - "▁Pri", - "me" - ], - [ - "▁Prim", - "e" - ], - [ - ">", - "." - ], - [ - "Init", - "ial" - ], - [ - "▁о", - "дин" - ], - [ - "▁од", - "ин" - ], - [ - "▁'", - "'," - ], - [ - "▁''", - "," - ], - [ - "▁у", - "чи" - ], - [ - "▁In", - "v" - ], - [ - "▁", - "Inv" - ], - [ - "col", - "a" - ], - [ - "co", - "la" - ], - [ - "c", - "ola" - ], - [ - "ci", - "ble" - ], - [ - "c", - "ible" - ], - [ - "▁The", - "atre" - ], - [ - "▁b", - "em" - ], - [ - "▁be", - "m" - ], - [ - "▁satisf", - "y" - ], - [ - "x", - "l" - ], - [ - "▁ра", - "зви" - ], - [ - "▁раз", - "ви" - ], - [ - "▁p", - "ixel" - ], - [ - "▁pix", - "el" - ], - [ - "lá", - "n" - ], - [ - "l", - "án" - ], - [ - "▁tw", - "ee" - ], - [ - "▁twe", - "e" - ], - [ - "ço", - "n" - ], - [ - "ç", - "on" - ], - [ - "не", - "ния" - ], - [ - "▁A", - "T" - ], - [ - "▁", - "AT" - ], - [ - "èg", - "e" - ], - [ - "è", - "ge" - ], - [ - "▁M", - "ort" - ], - [ - "▁Mor", - "t" - ], - [ - "▁Mo", - "rt" - ], - [ - "▁my", - "sq" - ], - [ - "▁", - "mysq" - ], - [ - "ft", - "en" - ], - [ - "fte", - "n" - ], - [ - "f", - "ten" - ], - [ - "▁п", - "ес" - ], - [ - "▁пе", - "с" - ], - [ - "ém", - "a" - ], - [ - "é", - "ma" - ], - [ - "▁Service", - "s" - ], - [ - "▁Serv", - "ices" - ], - [ - "▁", - "Services" - ], - [ - "custom", - "er" - ], - [ - "▁A", - "WS" - ], - [ - "ъ", - "т" - ], - [ - "▁A", - "ch" - ], - [ - "▁Ac", - "h" - ], - [ - "%", - "." - ], - [ - "▁clar", - "ify" - ], - [ - "▁уни", - "версите" - ], - [ - "xt", - "ure" - ], - [ - "um", - "i" - ], - [ - "u", - "mi" - ], - [ - "▁s", - "å" - ], - [ - "▁P", - "el" - ], - [ - "▁Pe", - "l" - ], - [ - "se", - "rial" - ], - [ - "ser", - "ial" - ], - [ - "UR", - "I" - ], - [ - "U", - "RI" - ], - [ - "▁r", - "g" - ], - [ - "▁", - "rg" - ], - [ - "▁со", - "ста" - ], - [ - "ch", - "estra" - ], - [ - "che", - "stra" - ], - [ - "ches", - "tra" - ], - [ - "].", - "[" - ], - [ - "]", - ".[" - ], - [ - "we", - "n" - ], - [ - "w", - "en" - ], - [ - "▁Lond", - "res" - ], - [ - "▁an", - "ys" - ], - [ - "▁any", - "s" - ], - [ - "Data", - "Source" - ], - [ - "▁рай", - "оне" - ], - [ - "▁райо", - "не" - ], - [ - "▁район", - "е" - ], - [ - "▁re", - "in" - ], - [ - "▁r", - "ein" - ], - [ - "▁rei", - "n" - ], - [ - "▁met", - "adata" - ], - [ - "▁meta", - "data" - ], - [ - "▁", - "metadata" - ], - [ - "um", - "ble" - ], - [ - "umb", - "le" - ], - [ - "ar", - "beit" - ], - [ - "arbe", - "it" - ], - [ - "hn", - "er" - ], - [ - "h", - "ner" - ], - [ - "ci", - "ent" - ], - [ - "cie", - "nt" - ], - [ - "c", - "ient" - ], - [ - "▁n", - "orte" - ], - [ - "▁nor", - "te" - ], - [ - "▁о", - "на" - ], - [ - "▁он", - "а" - ], - [ - "▁", - "она" - ], - [ - "▁sc", - "ored" - ], - [ - "▁score", - "d" - ], - [ - "▁r", - "ay" - ], - [ - "▁ra", - "y" - ], - [ - "▁", - "ray" - ], - [ - "▁фев", - "ра" - ], - [ - "▁фе", - "вра" - ], - [ - "▁pro", - "tagon" - ], - [ - "▁prot", - "agon" - ], - [ - "▁S", - "ac" - ], - [ - "▁Sa", - "c" - ], - [ - "▁comm", - "only" - ], - [ - "▁common", - "ly" - ], - [ - "Linear", - "Layout" - ], - [ - "▁app", - "lic" - ], - [ - "▁ма", - "я" - ], - [ - "З", - "а" - ], - [ - "▁access", - "ible" - ], - [ - "ie", - "wer" - ], - [ - "iew", - "er" - ], - [ - "fl", - "ag" - ], - [ - "f", - "lag" - ], - [ - "▁R", - "ück" - ], - [ - "ä", - "u" - ], - [ - "▁e", - "rano" - ], - [ - "▁er", - "ano" - ], - [ - "▁era", - "no" - ], - [ - "▁eran", - "o" - ], - [ - "▁auth", - "entic" - ], - [ - "▁", - "authentic" - ], - [ - "▁R", - "y" - ], - [ - "▁не", - "ско" - ], - [ - "▁emb", - "argo" - ], - [ - "▁embar", - "go" - ], - [ - "▁d", - "ry" - ], - [ - "▁dr", - "y" - ], - [ - "▁reason", - "able" - ], - [ - "▁Mod", - "ule" - ], - [ - "▁", - "Module" - ], - [ - "▁acc", - "eler" - ], - [ - "▁inter", - "view" - ], - [ - "▁C", - "reek" - ], - [ - "▁Cre", - "ek" - ], - [ - "▁al", - "pha" - ], - [ - "▁", - "alpha" - ], - [ - "se", - "rie" - ], - [ - "ser", - "ie" - ], - [ - "s", - "erie" - ], - [ - "Th", - "ey" - ], - [ - "The", - "y" - ], - [ - "ю", - "чи" - ], - [ - "▁H", - "of" - ], - [ - "▁Ho", - "f" - ], - [ - "▁C", - "R" - ], - [ - "▁", - "CR" - ], - [ - "mod", - "al" - ], - [ - "mo", - "dal" - ], - [ - "▁sequence", - "s" - ], - [ - "▁sequ", - "ences" - ], - [ - "cl", - "osed" - ], - [ - "close", - "d" - ], - [ - "clos", - "ed" - ], - [ - "clo", - "sed" - ], - [ - ")}", - "$" - ], - [ - ")", - "}$" - ], - [ - "▁Ч", - "ер" - ], - [ - "▁Че", - "р" - ], - [ - "▁OR", - "DER" - ], - [ - "▁", - "ORDER" - ], - [ - "Right", - "arrow" - ], - [ - "R", - "ightarrow" - ], - [ - "haus", - "en" - ], - [ - "}}", - "_" - ], - [ - "}", - "}_" - ], - [ - "▁tamb", - "é" - ], - [ - "▁magn", - "etic" - ], - [ - "▁magnet", - "ic" - ], - [ - "▁Mc", - "C" - ], - [ - "▁win", - "ning" - ], - [ - "under", - "line" - ], - [ - "▁Bill", - "board" - ], - [ - "na", - "io" - ], - [ - "▁l", - "iqu" - ], - [ - "▁li", - "qu" - ], - [ - "▁", - "liqu" - ], - [ - "display", - "style" - ], - [ - "time", - "out" - ], - [ - "▁consider", - "able" - ], - [ - "▁e", - "ben" - ], - [ - "▁eb", - "en" - ], - [ - "▁", - "eben" - ], - [ - "iffer", - "ent" - ], - [ - "iffe", - "rent" - ], - [ - "an", - "u" - ], - [ - "a", - "nu" - ], - [ - "▁С", - "ов" - ], - [ - "▁Со", - "в" - ], - [ - "[", - "(" - ], - [ - "▁:", - "-)" - ], - [ - "▁:-", - ")" - ], - [ - "le", - "itung" - ], - [ - "form", - "ed" - ], - [ - "for", - "med" - ], - [ - "▁Man", - "ager" - ], - [ - "▁", - "Manager" - ], - [ - "▁on", - "click" - ], - [ - "T", - "Y" - ], - [ - "та", - "х" - ], - [ - "C", - "V" - ], - [ - "run", - "time" - ], - [ - "r", - "untime" - ], - [ - "po", - "que" - ], - [ - "▁Л", - "о" - ], - [ - "Tem", - "p" - ], - [ - "Te", - "mp" - ], - [ - "T", - "emp" - ], - [ - "lo", - "aded" - ], - [ - "load", - "ed" - ], - [ - "▁!", - "==" - ], - [ - "▁!=", - "=" - ], - [ - "▁s", - "inger" - ], - [ - "▁sing", - "er" - ], - [ - "▁sin", - "ger" - ], - [ - "fa", - "r" - ], - [ - "f", - "ar" - ], - [ - "▁Com", - "ple" - ], - [ - "▁Comp", - "le" - ], - [ - "▁", - "Comple" - ], - [ - "▁Ö", - "sterreich" - ], - [ - "Pol", - "icy" - ], - [ - "▁work", - "er" - ], - [ - "▁wor", - "ker" - ], - [ - "▁", - "worker" - ], - [ - "W", - "rapper" - ], - [ - "ob", - "i" - ], - [ - "o", - "bi" - ], - [ - "▁discuss", - "ed" - ], - [ - "▁b", - "uy" - ], - [ - "▁bu", - "y" - ], - [ - "▁янва", - "ря" - ], - [ - "▁D", - "in" - ], - [ - "▁Di", - "n" - ], - [ - "▁g", - "ed" - ], - [ - "▁ge", - "d" - ], - [ - "▁", - "ged" - ], - [ - "ско", - "ј" - ], - [ - "E", - "urope" - ], - [ - "▁t", - "all" - ], - [ - "▁tal", - "l" - ], - [ - "▁ta", - "ll" - ], - [ - "ho", - "s" - ], - [ - "h", - "os" - ], - [ - "ла", - "го" - ], - [ - "▁B", - "lock" - ], - [ - "▁Bl", - "ock" - ], - [ - "▁Blo", - "ck" - ], - [ - "▁", - "Block" - ], - [ - "▁ident", - "ified" - ], - [ - "List", - "View" - ], - [ - "▁attempt", - "ing" - ], - [ - "▁typ", - "ical" - ], - [ - "ps", - "um" - ], - [ - "p", - "sum" - ], - [ - "os", - "ter" - ], - [ - "ost", - "er" - ], - [ - "o", - "ster" - ], - [ - "▁ж", - "урна" - ], - [ - "P", - "e" - ], - [ - "mer", - "ce" - ], - [ - "▁un", - "expected" - ], - [ - "hu", - "i" - ], - [ - "h", - "ui" - ], - [ - "let", - "ter" - ], - [ - "lett", - "er" - ], - [ - "lette", - "r" - ], - [ - "l", - "etter" - ], - [ - "▁nue", - "vo" - ], - [ - "▁а", - "бо" - ], - [ - "▁VAL", - "UES" - ], - [ - "▁I", - "z" - ], - [ - "Fl", - "ags" - ], - [ - "Flag", - "s" - ], - [ - "▁TR", - "UE" - ], - [ - "▁", - "TRUE" - ], - [ - "iz", - "ación" - ], - [ - "iza", - "ción" - ], - [ - "▁gro", - "wing" - ], - [ - "▁grow", - "ing" - ], - [ - "es", - "tre" - ], - [ - "est", - "re" - ], - [ - "estr", - "e" - ], - [ - "e", - "stre" - ], - [ - "▁p", - "oly" - ], - [ - "▁po", - "ly" - ], - [ - "▁pol", - "y" - ], - [ - "▁", - "poly" - ], - [ - "▁St", - "one" - ], - [ - "▁Sto", - "ne" - ], - [ - "▁V", - "III" - ], - [ - "▁VI", - "II" - ], - [ - "▁VII", - "I" - ], - [ - "▁local", - "host" - ], - [ - "▁", - "localhost" - ], - [ - "äh", - "lt" - ], - [ - "ähl", - "t" - ], - [ - "▁embed", - "ded" - ], - [ - "jd", - "bc" - ], - [ - "j", - "dbc" - ], - [ - "▁con", - "vention" - ], - [ - "▁conv", - "ention" - ], - [ - "▁conven", - "tion" - ], - [ - "▁convent", - "ion" - ], - [ - "▁s", - "cala" - ], - [ - "▁sc", - "ala" - ], - [ - "▁scal", - "a" - ], - [ - "▁", - "scala" - ], - [ - "со", - "к" - ], - [ - "с", - "ок" - ], - [ - "▁an", - "alog" - ], - [ - "▁anal", - "og" - ], - [ - "▁\"", - "+" - ], - [ - "▁", - "\"+" - ], - [ - "ц", - "ю" - ], - [ - "oc", - "c" - ], - [ - "o", - "cc" - ], - [ - "▁l", - "itt" - ], - [ - "▁li", - "tt" - ], - [ - "▁lit", - "t" - ], - [ - "P", - "N" - ], - [ - "▁а", - "ктив" - ], - [ - "▁ак", - "тив" - ], - [ - "att", - "ributes" - ], - [ - "attribute", - "s" - ], - [ - "▁F", - "erd" - ], - [ - "▁Fe", - "rd" - ], - [ - "▁Fer", - "d" - ], - [ - "▁az", - "ure" - ], - [ - "▁", - "azure" - ], - [ - "ș", - "ti" - ], - [ - "ño", - "s" - ], - [ - "ñ", - "os" - ], - [ - "pi", - "ng" - ], - [ - "pin", - "g" - ], - [ - "p", - "ing" - ], - [ - "▁te", - "acher" - ], - [ - "▁teach", - "er" - ], - [ - "▁tea", - "cher" - ], - [ - "}", - "&" - ], - [ - "ip", - "e" - ], - [ - "i", - "pe" - ], - [ - "▁N", - "ob" - ], - [ - "▁No", - "b" - ], - [ - "▁и", - "ма" - ], - [ - "▁им", - "а" - ], - [ - "Bi", - "nd" - ], - [ - "B", - "ind" - ], - [ - "▁mag", - "ic" - ], - [ - "▁Trans", - "port" - ], - [ - "▁", - "Transport" - ], - [ - "ix", - "el" - ], - [ - "▁comp", - "uted" - ], - [ - "▁comput", - "ed" - ], - [ - "▁compute", - "d" - ], - [ - "ag", - "na" - ], - [ - "agn", - "a" - ], - [ - "er", - "st" - ], - [ - "ers", - "t" - ], - [ - "H", - "A" - ], - [ - "W", - "ait" - ], - [ - "▁author", - "s" - ], - [ - "▁auth", - "ors" - ], - [ - "▁;", - ")" - ], - [ - "cl", - "am" - ], - [ - "cla", - "m" - ], - [ - "c", - "lam" - ], - [ - "▁Pen", - "nsylvan" - ], - [ - "▁d", - "rug" - ], - [ - "▁dr", - "ug" - ], - [ - "▁dru", - "g" - ], - [ - "▁v", - "ain" - ], - [ - "▁va", - "in" - ], - [ - "▁employ", - "ed" - ], - [ - "▁individ", - "uals" - ], - [ - "▁individual", - "s" - ], - [ - "▁an", - "ge" - ], - [ - "▁ang", - "e" - ], - [ - "▁", - "ange" - ], - [ - "ut", - "at" - ], - [ - "uta", - "t" - ], - [ - "u", - "tat" - ], - [ - "▁$", - "-" - ], - [ - "▁", - "$-" - ], - [ - "cor", - "rect" - ], - [ - "corr", - "ect" - ], - [ - "▁exper", - "iments" - ], - [ - "▁experiment", - "s" - ], - [ - "Arg", - "ument" - ], - [ - "▁I", - "B" - ], - [ - "▁", - "IB" - ], - [ - "▁p", - "ère" - ], - [ - "▁B", - "rian" - ], - [ - "▁Br", - "ian" - ], - [ - "ber", - "ger" - ], - [ - "berg", - "er" - ], - [ - "Ma", - "c" - ], - [ - "M", - "ac" - ], - [ - "ia", - "st" - ], - [ - "ias", - "t" - ], - [ - "i", - "ast" - ], - [ - "Per", - "m" - ], - [ - "Pe", - "rm" - ], - [ - "P", - "erm" - ], - [ - "Ca", - "st" - ], - [ - "C", - "ast" - ], - [ - "▁{", - "};" - ], - [ - "▁{}", - ";" - ], - [ - "▁St", - "udent" - ], - [ - "▁Stud", - "ent" - ], - [ - "▁Stu", - "dent" - ], - [ - "▁", - "Student" - ], - [ - "▁st", - "att" - ], - [ - "▁stat", - "t" - ], - [ - "▁sta", - "tt" - ], - [ - "al", - "gebra" - ], - [ - "▁equ", - "als" - ], - [ - "▁equal", - "s" - ], - [ - "▁eq", - "uals" - ], - [ - "▁", - "equals" - ], - [ - "▁pro", - "jet" - ], - [ - "▁prés", - "ident" - ], - [ - "Activity", - "Thread" - ], - [ - "▁ein", - "z" - ], - [ - "en", - "ia" - ], - [ - "eni", - "a" - ], - [ - "e", - "nia" - ], - [ - "re", - "z" - ], - [ - "r", - "ez" - ], - [ - "ess", - "ional" - ], - [ - "ession", - "al" - ], - [ - "▁авгу", - "ста" - ], - [ - "over", - "ride" - ], - [ - "ne", - "ws" - ], - [ - "new", - "s" - ], - [ - "▁pla", - "net" - ], - [ - "▁plan", - "et" - ], - [ - "▁plane", - "t" - ], - [ - "n", - "n" - ], - [ - "▁W", - "is" - ], - [ - "▁Wi", - "s" - ], - [ - "тв", - "ер" - ], - [ - "т", - "вер" - ], - [ - "▁Val", - "id" - ], - [ - "▁", - "Valid" - ], - [ - "▁G", - "ef" - ], - [ - "▁Ge", - "f" - ], - [ - "гра", - "д" - ], - [ - "▁e", - "ig" - ], - [ - "an", - "tom" - ], - [ - "ant", - "om" - ], - [ - "anto", - "m" - ], - [ - "▁Me", - "ister" - ], - [ - "fl", - "ags" - ], - [ - "flag", - "s" - ], - [ - "ffic", - "iale" - ], - [ - "fficial", - "e" - ], - [ - "ша", - "я" - ], - [ - "-", - "," - ], - [ - "at", - "ionen" - ], - [ - "ation", - "en" - ], - [ - "ati", - "onen" - ], - [ - "atio", - "nen" - ], - [ - "mo", - "use" - ], - [ - "m", - "ouse" - ], - [ - "stand", - "ard" - ], - [ - "Sing", - "le" - ], - [ - "▁b", - "ol" - ], - [ - "▁bo", - "l" - ], - [ - "▁", - "bol" - ], - [ - "is", - "is" - ], - [ - "isi", - "s" - ], - [ - "▁f", - "ruit" - ], - [ - "▁fr", - "uit" - ], - [ - "c", - "ourse" - ], - [ - "it", - "ants" - ], - [ - "itan", - "ts" - ], - [ - "▁é", - "taient" - ], - [ - "▁ét", - "aient" - ], - [ - "Text", - "Field" - ], - [ - "▁ф", - "он" - ], - [ - "▁фо", - "н" - ], - [ - "▁a", - "ircraft" - ], - [ - "▁air", - "craft" - ], - [ - "▁I", - "SSN" - ], - [ - "▁IS", - "SN" - ], - [ - "▁west", - "ern" - ], - [ - "▁", - "western" - ], - [ - "▁represent", - "ing" - ], - [ - "Es", - "p" - ], - [ - "E", - "sp" - ], - [ - "▁El", - "se" - ], - [ - "▁Els", - "e" - ], - [ - "▁", - "Else" - ], - [ - "▁s", - "izes" - ], - [ - "▁si", - "zes" - ], - [ - "▁size", - "s" - ], - [ - "▁satisf", - "ied" - ], - [ - "ot", - "os" - ], - [ - "oto", - "s" - ], - [ - "U", - "D" - ], - [ - "Fin", - "al" - ], - [ - "Fi", - "nal" - ], - [ - "F", - "inal" - ], - [ - "ó", - "j" - ], - [ - "è", - "ve" - ], - [ - "▁R", - "oy" - ], - [ - "▁Ro", - "y" - ], - [ - "ff", - "en" - ], - [ - "ffe", - "n" - ], - [ - "f", - "fen" - ], - [ - "▁s", - "alt" - ], - [ - "▁sa", - "lt" - ], - [ - "▁sal", - "t" - ], - [ - "▁L", - "abel" - ], - [ - "▁La", - "bel" - ], - [ - "▁Lab", - "el" - ], - [ - "▁", - "Label" - ], - [ - "S", - "k" - ], - [ - "▁к", - "ре" - ], - [ - "▁", - "кре" - ], - [ - "▁Ли", - "тература" - ], - [ - "▁с", - "м" - ], - [ - "Att", - "ributes" - ], - [ - "Attribute", - "s" - ], - [ - "ay", - "e" - ], - [ - "a", - "ye" - ], - [ - "сь", - "к" - ], - [ - "▁вы", - "со" - ], - [ - "-", - ")" - ], - [ - "os", - "es" - ], - [ - "ose", - "s" - ], - [ - "cal", - "cul" - ], - [ - "calc", - "ul" - ], - [ - "▁C", - "annot" - ], - [ - "▁Can", - "not" - ], - [ - "▁", - "Cannot" - ], - [ - "Gener", - "ic" - ], - [ - "em", - "o" - ], - [ - "e", - "mo" - ], - [ - "▁A", - "utor" - ], - [ - "▁Aut", - "or" - ], - [ - "▁Au", - "tor" - ], - [ - "▁Auto", - "r" - ], - [ - "лё", - "н" - ], - [ - "л", - "ён" - ], - [ - "ла", - "га" - ], - [ - "vo", - "te" - ], - [ - "v", - "ote" - ], - [ - "lic", - "ates" - ], - [ - "licate", - "s" - ], - [ - "lica", - "tes" - ], - [ - "ru", - "s" - ], - [ - "r", - "us" - ], - [ - "él", - "i" - ], - [ - "é", - "li" - ], - [ - "op", - "f" - ], - [ - "o", - "pf" - ], - [ - "at", - "ique" - ], - [ - "ati", - "que" - ], - [ - "sc", - "ala" - ], - [ - "scal", - "a" - ], - [ - "s", - "cala" - ], - [ - "▁Oh", - "io" - ], - [ - "▁Brit", - "ann" - ], - [ - "▁b", - "ef" - ], - [ - "▁be", - "f" - ], - [ - "▁Е", - "вро" - ], - [ - "▁Ев", - "ро" - ], - [ - "▁Care", - "er" - ], - [ - "is", - "ée" - ], - [ - "isé", - "e" - ], - [ - "ó", - "t" - ], - [ - "bo", - "se" - ], - [ - "bos", - "e" - ], - [ - "b", - "ose" - ], - [ - "▁Б", - "ер" - ], - [ - "▁Бе", - "р" - ], - [ - "▁Cont", - "roller" - ], - [ - "▁Control", - "ler" - ], - [ - "▁", - "Controller" - ], - [ - "po", - "le" - ], - [ - "pol", - "e" - ], - [ - "p", - "ole" - ], - [ - "▁al", - "len" - ], - [ - "▁all", - "en" - ], - [ - "▁alle", - "n" - ], - [ - "▁", - "allen" - ], - [ - "▁h", - "ack" - ], - [ - "▁ha", - "ck" - ], - [ - "▁ext", - "ent" - ], - [ - "▁cal", - "ci" - ], - [ - "▁calc", - "i" - ], - [ - "Me", - "r" - ], - [ - "M", - "er" - ], - [ - "▁sum", - "mary" - ], - [ - "▁summar", - "y" - ], - [ - "▁summ", - "ary" - ], - [ - "▁", - "summary" - ], - [ - "Mar", - "t" - ], - [ - "Ma", - "rt" - ], - [ - "M", - "art" - ], - [ - "▁histor", - "ical" - ], - [ - "▁historic", - "al" - ], - [ - "im", - "at" - ], - [ - "ima", - "t" - ], - [ - "i", - "mat" - ], - [ - "bu", - "d" - ], - [ - "b", - "ud" - ], - [ - "▁F", - "OR" - ], - [ - "▁FO", - "R" - ], - [ - "▁", - "FOR" - ], - [ - "ex", - "port" - ], - [ - "exp", - "ort" - ], - [ - "ed", - "i" - ], - [ - "e", - "di" - ], - [ - "Map", - "ping" - ], - [ - "Mapp", - "ing" - ], - [ - "Ma", - "pping" - ], - [ - "M", - "apping" - ], - [ - "▁A", - "y" - ], - [ - "▁R", - "uby" - ], - [ - "▁Ru", - "by" - ], - [ - "▁Rub", - "y" - ], - [ - "▁definition", - "s" - ], - [ - "▁defin", - "itions" - ], - [ - "▁definit", - "ions" - ], - [ - "▁{", - "$" - ], - [ - "▁", - "{$" - ], - [ - "▁y", - "ours" - ], - [ - "▁you", - "rs" - ], - [ - "▁your", - "s" - ], - [ - "▁yo", - "urs" - ], - [ - "ri", - "as" - ], - [ - "ria", - "s" - ], - [ - "r", - "ias" - ], - [ - "To", - "uch" - ], - [ - "T", - "ouch" - ], - [ - "▁G", - "az" - ], - [ - "▁Ga", - "z" - ], - [ - "▁Aut", - "om" - ], - [ - "▁Au", - "tom" - ], - [ - "▁Auto", - "m" - ], - [ - "▁", - "Autom" - ], - [ - "▁и", - "стори" - ], - [ - "▁исто", - "ри" - ], - [ - "▁ис", - "тори" - ], - [ - "▁d", - "elen" - ], - [ - "▁de", - "len" - ], - [ - "▁del", - "en" - ], - [ - "▁K", - "inder" - ], - [ - "▁Kind", - "er" - ], - [ - "▁Ki", - "nder" - ], - [ - "▁Kin", - "der" - ], - [ - "}}", - "%" - ], - [ - "}", - "}%" - ], - [ - "▁perform", - "ing" - ], - [ - "F", - "R" - ], - [ - "▁S", - "ig" - ], - [ - "▁Si", - "g" - ], - [ - "▁B", - "rad" - ], - [ - "▁Br", - "ad" - ], - [ - "▁Bra", - "d" - ], - [ - "br", - "as" - ], - [ - "bra", - "s" - ], - [ - "b", - "ras" - ], - [ - "▁J", - "ar" - ], - [ - "▁Ja", - "r" - ], - [ - "pk", - "g" - ], - [ - "p", - "kg" - ], - [ - "w", - "r" - ], - [ - "▁P", - "ays" - ], - [ - "▁Pa", - "ys" - ], - [ - "▁Pay", - "s" - ], - [ - "N", - "C" - ], - [ - "▁op", - "posed" - ], - [ - "▁opp", - "osed" - ], - [ - "▁oppos", - "ed" - ], - [ - "Tr", - "y" - ], - [ - "T", - "ry" - ], - [ - "▁ве", - "зе" - ], - [ - "▁B", - "og" - ], - [ - "▁Bo", - "g" - ], - [ - "▁writ", - "es" - ], - [ - "▁wr", - "ites" - ], - [ - "▁write", - "s" - ], - [ - "▁st", - "ories" - ], - [ - "▁stor", - "ies" - ], - [ - "▁sto", - "ries" - ], - [ - "▁m", - "ater" - ], - [ - "▁ma", - "ter" - ], - [ - "▁mat", - "er" - ], - [ - "▁mate", - "r" - ], - [ - "▁stag", - "ione" - ], - [ - "▁s", - "ty" - ], - [ - "▁st", - "y" - ], - [ - "▁", - "sty" - ], - [ - "▁compat", - "ible" - ], - [ - "▁", - "compatible" - ], - [ - "he", - "ast" - ], - [ - "h", - "east" - ], - [ - "▁G", - "uy" - ], - [ - "▁Gu", - "y" - ], - [ - "egr", - "ünd" - ], - [ - "▁ident", - "ifier" - ], - [ - "▁", - "identifier" - ], - [ - "▁he", - "ads" - ], - [ - "▁head", - "s" - ], - [ - "по", - "зи" - ], - [ - "▁st", - "up" - ], - [ - "▁t", - "f" - ], - [ - "▁", - "tf" - ], - [ - "▁ј", - "ош" - ], - [ - "▁H", - "ugh" - ], - [ - "▁Hu", - "gh" - ], - [ - "▁c", - "ards" - ], - [ - "▁car", - "ds" - ], - [ - "▁card", - "s" - ], - [ - "▁", - "cards" - ], - [ - "ov", - "y" - ], - [ - "o", - "vy" - ], - [ - "▁To", - "ast" - ], - [ - "al", - "las" - ], - [ - "all", - "as" - ], - [ - "alla", - "s" - ], - [ - "▁p", - "úblic" - ], - [ - "▁ass", - "umes" - ], - [ - "▁assum", - "es" - ], - [ - "▁assume", - "s" - ], - [ - "▁чемпи", - "она" - ], - [ - "yc", - "ler" - ], - [ - "ycle", - "r" - ], - [ - "y", - "cler" - ], - [ - "▁Juni", - "or" - ], - [ - "▁Jun", - "ior" - ], - [ - "▁F", - "ich" - ], - [ - "▁estim", - "ated" - ], - [ - "▁estimate", - "d" - ], - [ - "ze", - "rw" - ], - [ - "zer", - "w" - ], - [ - "di", - "alog" - ], - [ - "dia", - "log" - ], - [ - "d", - "ialog" - ], - [ - "ши", - "н" - ], - [ - "ш", - "ин" - ], - [ - "sh", - "ell" - ], - [ - "she", - "ll" - ], - [ - "s", - "hell" - ], - [ - "▁н", - "их" - ], - [ - "▁ни", - "х" - ], - [ - "▁", - "них" - ], - [ - "▁p", - "itch" - ], - [ - "▁pit", - "ch" - ], - [ - "до", - "л" - ], - [ - "out", - "ube" - ], - [ - "▁S", - "anti" - ], - [ - "▁San", - "ti" - ], - [ - "▁Sant", - "i" - ], - [ - "On", - "ClickListener" - ], - [ - "▁M", - "agyar" - ], - [ - "▁Mag", - "yar" - ], - [ - "▁v", - "ue" - ], - [ - "▁vu", - "e" - ], - [ - "▁", - "vue" - ], - [ - "i", - "ão" - ], - [ - "▁`", - "#" - ], - [ - "col", - "lect" - ], - [ - "coll", - "ect" - ], - [ - "▁R", - "ou" - ], - [ - "▁Ro", - "u" - ], - [ - "anal", - "ysis" - ], - [ - "istrz", - "ost" - ], - [ - "▁Dig", - "ital" - ], - [ - "▁", - "Digital" - ], - [ - "▁c", - "rist" - ], - [ - "▁cr", - "ist" - ], - [ - "▁cri", - "st" - ], - [ - "ri", - "ere" - ], - [ - "rie", - "re" - ], - [ - "rier", - "e" - ], - [ - "r", - "iere" - ], - [ - "▁cam", - "po" - ], - [ - "▁camp", - "o" - ], - [ - "U", - "s" - ], - [ - "▁circ", - "a" - ], - [ - "▁cir", - "ca" - ], - [ - "▁Com", - "ponent" - ], - [ - "▁", - "Component" - ], - [ - "▁NS", - "String" - ], - [ - "▁", - "NSString" - ], - [ - "p", - "d" - ], - [ - "▁pr", - "ince" - ], - [ - "▁prin", - "ce" - ], - [ - "▁in", - "voke" - ], - [ - "▁inv", - "oke" - ], - [ - "▁", - "invoke" - ], - [ - "▁Mar", - "ine" - ], - [ - "▁Mari", - "ne" - ], - [ - "Al", - "low" - ], - [ - "All", - "ow" - ], - [ - "est", - "ic" - ], - [ - "esti", - "c" - ], - [ - "ри", - "сти" - ], - [ - "рис", - "ти" - ], - [ - "рист", - "и" - ], - [ - "bo", - "ne" - ], - [ - "bon", - "e" - ], - [ - "b", - "one" - ], - [ - "ту", - "ры" - ], - [ - "тур", - "ы" - ], - [ - "▁pass", - "ion" - ], - [ - "ác", - "ió" - ], - [ - "á", - "ció" - ], - [ - "▁o", - "rn" - ], - [ - "▁or", - "n" - ], - [ - "▁", - "orn" - ], - [ - "ве", - "д" - ], - [ - "▁in", - "vari" - ], - [ - "▁inv", - "ari" - ], - [ - "▁н", - "і" - ], - [ - "▁", - "ні" - ], - [ - "Re", - "move" - ], - [ - "Rem", - "ove" - ], - [ - "en", - "cies" - ], - [ - "enc", - "ies" - ], - [ - "enci", - "es" - ], - [ - "il", - "ib" - ], - [ - "ili", - "b" - ], - [ - "i", - "lib" - ], - [ - "▁Direct", - "or" - ], - [ - "▁Dire", - "ctor" - ], - [ - "▁Dir", - "ector" - ], - [ - "\"", - "\"" - ], - [ - "▁Con", - "se" - ], - [ - "▁Cons", - "e" - ], - [ - "google", - "apis" - ], - [ - "ó", - "k" - ], - [ - "▁У", - "кра" - ], - [ - "▁H", - "aving" - ], - [ - "▁Ha", - "ving" - ], - [ - "▁Hav", - "ing" - ], - [ - "Do", - "main" - ], - [ - "Dom", - "ain" - ], - [ - "ie", - "rz" - ], - [ - "ier", - "z" - ], - [ - "но", - "логи" - ], - [ - "н", - "ологи" - ], - [ - "Ch", - "o" - ], - [ - "C", - "ho" - ], - [ - "un", - "defined" - ], - [ - "und", - "efined" - ], - [ - "al", - "loc" - ], - [ - "all", - "oc" - ], - [ - "allo", - "c" - ], - [ - "▁p", - "ied" - ], - [ - "▁pi", - "ed" - ], - [ - "▁pie", - "d" - ], - [ - "▁f", - "raction" - ], - [ - "▁fr", - "action" - ], - [ - "▁fra", - "ction" - ], - [ - "bi", - "a" - ], - [ - "b", - "ia" - ], - [ - "▁п", - "оло" - ], - [ - "▁по", - "ло" - ], - [ - "▁пол", - "о" - ], - [ - "▁", - "поло" - ], - [ - "ug", - "no" - ], - [ - "min", - "ister" - ], - [ - "▁princip", - "ale" - ], - [ - "▁principal", - "e" - ], - [ - "▁ref", - "used" - ], - [ - "▁refuse", - "d" - ], - [ - "brow", - "ser" - ], - [ - "b", - "rowser" - ], - [ - "*", - "," - ], - [ - "▁H", - "ospital" - ], - [ - "▁univers", - "al" - ], - [ - "▁Ern", - "st" - ], - [ - "wh", - "o" - ], - [ - "w", - "ho" - ], - [ - "▁G", - "ard" - ], - [ - "▁Gar", - "d" - ], - [ - "▁Ga", - "rd" - ], - [ - "'", - "_" - ], - [ - "con", - "de" - ], - [ - "co", - "nde" - ], - [ - "cond", - "e" - ], - [ - "c", - "onde" - ], - [ - "▁[", - "{" - ], - [ - "▁", - "[{" - ], - [ - "so", - "b" - ], - [ - "s", - "ob" - ], - [ - "▁C", - "rit" - ], - [ - "▁Cr", - "it" - ], - [ - "▁дека", - "бря" - ], - [ - "▁p", - "unto" - ], - [ - "▁pun", - "to" - ], - [ - "▁punt", - "o" - ], - [ - "▁einges", - "etzt" - ], - [ - "▁t", - "ör" - ], - [ - "▁tö", - "r" - ], - [ - "▁N", - "i" - ], - [ - "▁w", - "orry" - ], - [ - "▁wor", - "ry" - ], - [ - "▁leg", - "end" - ], - [ - "▁", - "legend" - ], - [ - "▁бу", - "ли" - ], - [ - "▁k", - "omm" - ], - [ - "▁kom", - "m" - ], - [ - "▁ko", - "mm" - ], - [ - "ri", - "jk" - ], - [ - "rij", - "k" - ], - [ - "r", - "ijk" - ], - [ - "ef", - "fect" - ], - [ - "eff", - "ect" - ], - [ - "e", - "ffect" - ], - [ - "Or", - "i" - ], - [ - "O", - "ri" - ], - [ - "RE", - "S" - ], - [ - "R", - "ES" - ], - [ - "▁P", - "eters" - ], - [ - "▁Pe", - "ters" - ], - [ - "▁Peter", - "s" - ], - [ - "▁Pet", - "ers" - ], - [ - "▁B", - "aron" - ], - [ - "▁Bar", - "on" - ], - [ - "▁Ba", - "ron" - ], - [ - "▁G", - "ot" - ], - [ - "▁Go", - "t" - ], - [ - "▁hon", - "est" - ], - [ - "▁ho", - "nest" - ], - [ - "är", - "e" - ], - [ - "ä", - "re" - ], - [ - "ás", - "z" - ], - [ - "á", - "sz" - ], - [ - "▁no", - "ble" - ], - [ - "▁nob", - "le" - ], - [ - "▁con", - "clusion" - ], - [ - "▁conclus", - "ion" - ], - [ - "▁concl", - "usion" - ], - [ - "▁form", - "atting" - ], - [ - "▁format", - "ting" - ], - [ - "▁formatt", - "ing" - ], - [ - "▁o", - "tto" - ], - [ - "▁ot", - "to" - ], - [ - "▁ott", - "o" - ], - [ - "▁", - "otto" - ], - [ - "▁de", - "leg" - ], - [ - "▁del", - "eg" - ], - [ - "м", - "б" - ], - [ - "pt", - "op" - ], - [ - "pto", - "p" - ], - [ - "p", - "top" - ], - [ - "▁s", - "ends" - ], - [ - "▁send", - "s" - ], - [ - "▁sen", - "ds" - ], - [ - "ur", - "name" - ], - [ - "urn", - "ame" - ], - [ - "▁f", - "estival" - ], - [ - "▁fest", - "ival" - ], - [ - "▁festiv", - "al" - ], - [ - ",", - "‎" - ], - [ - "ру", - "с" - ], - [ - "р", - "ус" - ], - [ - "▁d", - "och" - ], - [ - "▁do", - "ch" - ], - [ - "▁doc", - "h" - ], - [ - "sub", - "ject" - ], - [ - "su", - "bject" - ], - [ - "▁care", - "ful" - ], - [ - "qu", - "ent" - ], - [ - "que", - "nt" - ], - [ - "q", - "uent" - ], - [ - "▁Lo", - "ad" - ], - [ - "▁", - "Load" - ], - [ - "temper", - "aturen" - ], - [ - "▁r", - "ue" - ], - [ - "▁ru", - "e" - ], - [ - "Mem", - "ory" - ], - [ - "ț", - "a" - ], - [ - "ion", - "a" - ], - [ - "io", - "na" - ], - [ - "i", - "ona" - ], - [ - "▁dent", - "ro" - ], - [ - "▁beg", - "ann" - ], - [ - "▁began", - "n" - ], - [ - "▁A", - "qu" - ], - [ - "▁scient", - "ific" - ], - [ - "ka", - "ń" - ], - [ - "ло", - "к" - ], - [ - "л", - "ок" - ], - [ - "el", - "de" - ], - [ - "eld", - "e" - ], - [ - "▁Th", - "ose" - ], - [ - "qu", - "ier" - ], - [ - "qui", - "er" - ], - [ - "act", - "ér" - ], - [ - "▁Auf", - "lage" - ], - [ - ")", - "'" - ], - [ - "▁grad", - "ient" - ], - [ - "▁", - "gradient" - ], - [ - "in", - "teger" - ], - [ - "inte", - "ger" - ], - [ - "▁Im", - "port" - ], - [ - "▁Imp", - "ort" - ], - [ - "▁", - "Import" - ], - [ - "S", - "K" - ], - [ - "▁St", - "atus" - ], - [ - "▁Stat", - "us" - ], - [ - "▁", - "Status" - ], - [ - "▁exp", - "lo" - ], - [ - "▁expl", - "o" - ], - [ - "A", - "E" - ], - [ - "Sh", - "ell" - ], - [ - "She", - "ll" - ], - [ - "S", - "hell" - ], - [ - "▁Pa", - "ulo" - ], - [ - "▁Paul", - "o" - ], - [ - ".", - "»" - ], - [ - "}", - "", - "'" - ], - [ - "hav", - "ior" - ], - [ - "le", - "i" - ], - [ - "l", - "ei" - ], - [ - "ul", - "f" - ], - [ - "▁ge", - "ometry" - ], - [ - "▁geom", - "etry" - ], - [ - "▁geomet", - "ry" - ], - [ - "▁", - "geometry" - ], - [ - "pr", - "ev" - ], - [ - "pre", - "v" - ], - [ - "p", - "rev" - ], - [ - "em", - "pl" - ], - [ - "emp", - "l" - ], - [ - "▁L", - "é" - ], - [ - "an", - "son" - ], - [ - "ans", - "on" - ], - [ - "▁A", - "lice" - ], - [ - "▁Al", - "ice" - ], - [ - "▁Ali", - "ce" - ], - [ - "pro", - "totype" - ], - [ - "proto", - "type" - ], - [ - "RE", - "AD" - ], - [ - "ic", - "ular" - ], - [ - "icul", - "ar" - ], - [ - "i", - "cular" - ], - [ - "▁б", - "і" - ], - [ - "▁", - "бі" - ], - [ - "▁deutsch", - "e" - ], - [ - "▁Re", - "present" - ], - [ - "si", - "tes" - ], - [ - "site", - "s" - ], - [ - "s", - "ites" - ], - [ - "▁Me", - "an" - ], - [ - "▁d", - "iss" - ], - [ - "▁di", - "ss" - ], - [ - "▁dis", - "s" - ], - [ - "▁Z", - "ur" - ], - [ - "▁Zu", - "r" - ], - [ - "▁п", - "рез" - ], - [ - "▁пре", - "з" - ], - [ - "▁пр", - "ез" - ], - [ - "PA", - "R" - ], - [ - "P", - "AR" - ], - [ - "▁'", - "#" - ], - [ - "▁D", - "ra" - ], - [ - "▁Dr", - "a" - ], - [ - "▁", - "Dra" - ], - [ - "со", - "н" - ], - [ - "с", - "он" - ], - [ - "▁ste", - "ht" - ], - [ - "mar", - "kt" - ], - [ - "mark", - "t" - ], - [ - "▁e", - "ase" - ], - [ - "▁eas", - "e" - ], - [ - "Draw", - "ing" - ], - [ - "Dra", - "wing" - ], - [ - "=", - "%" - ], - [ - "St", - "op" - ], - [ - "Sto", - "p" - ], - [ - "S", - "top" - ], - [ - "▁s", - "erving" - ], - [ - "▁ser", - "ving" - ], - [ - "▁serv", - "ing" - ], - [ - "▁servi", - "ng" - ], - [ - "▁tak", - "że" - ], - [ - "▁D", - "NS" - ], - [ - "▁liter", - "al" - ], - [ - "▁lit", - "eral" - ], - [ - "Di", - "e" - ], - [ - "D", - "ie" - ], - [ - "▁в", - "ос" - ], - [ - "▁во", - "с" - ], - [ - "▁sen", - "ior" - ], - [ - "ac", - "ion" - ], - [ - "aci", - "on" - ], - [ - "a", - "cion" - ], - [ - "▁u", - "buntu" - ], - [ - "▁ub", - "untu" - ], - [ - "▁", - "ubuntu" - ], - [ - "▁Frank", - "furt" - ], - [ - "▁Sun", - "day" - ], - [ - "▁Sund", - "ay" - ], - [ - "á", - "b" - ], - [ - "▁jour", - "ney" - ], - [ - "▁journ", - "ey" - ], - [ - "is", - "sa" - ], - [ - "iss", - "a" - ], - [ - "ber", - "ry" - ], - [ - "▁s", - "ep" - ], - [ - "▁se", - "p" - ], - [ - "▁", - "sep" - ], - [ - "▁i", - "on" - ], - [ - "▁io", - "n" - ], - [ - "▁", - "ion" - ], - [ - "wer", - "t" - ], - [ - "we", - "rt" - ], - [ - "w", - "ert" - ], - [ - "or", - "szág" - ], - [ - "orsz", - "ág" - ], - [ - "ser", - "ve" - ], - [ - "serv", - "e" - ], - [ - "s", - "erve" - ], - [ - "▁Mil", - "ano" - ], - [ - "▁Milan", - "o" - ], - [ - "▁ве", - "ка" - ], - [ - "ра", - "х" - ], - [ - "▁ию", - "ля" - ], - [ - "▁man", - "era" - ], - [ - "▁st", - "ations" - ], - [ - "▁stat", - "ions" - ], - [ - "▁station", - "s" - ], - [ - "▁stati", - "ons" - ], - [ - "▁adopt", - "ed" - ], - [ - "▁any", - "body" - ], - [ - "VER", - "SION" - ], - [ - "F", - "E" - ], - [ - "do", - "rf" - ], - [ - "dor", - "f" - ], - [ - "d", - "orf" - ], - [ - "..", - ".," - ], - [ - "...", - "," - ], - [ - "▁обра", - "зова" - ], - [ - "▁образ", - "ова" - ], - [ - "Log", - "ger" - ], - [ - "фи", - "циаль" - ], - [ - "фици", - "аль" - ], - [ - "WR", - "ITE" - ], - [ - "▁h", - "am" - ], - [ - "▁ha", - "m" - ], - [ - "▁", - "ham" - ], - [ - "▁F", - "uture" - ], - [ - "▁Fut", - "ure" - ], - [ - "▁", - "Future" - ], - [ - "ot", - "en" - ], - [ - "ote", - "n" - ], - [ - "o", - "ten" - ], - [ - "▁A", - "G" - ], - [ - "▁", - "AG" - ], - [ - "▁t", - "rained" - ], - [ - "▁tr", - "ained" - ], - [ - "▁tra", - "ined" - ], - [ - "▁train", - "ed" - ], - [ - "▁N", - "ich" - ], - [ - "▁Nic", - "h" - ], - [ - "▁Ni", - "ch" - ], - [ - "▁un", - "iversity" - ], - [ - "▁univers", - "ity" - ], - [ - "▁Olymp", - "ics" - ], - [ - "▁Olympic", - "s" - ], - [ - "▁d", - "oit" - ], - [ - "▁do", - "it" - ], - [ - "▁doi", - "t" - ], - [ - "▁cult", - "ural" - ], - [ - "▁cultura", - "l" - ], - [ - "Con", - "f" - ], - [ - "▁Con", - "ference" - ], - [ - "or", - "no" - ], - [ - "orn", - "o" - ], - [ - "▁M", - "P" - ], - [ - "▁", - "MP" - ], - [ - "▁b", - "ou" - ], - [ - "▁bo", - "u" - ], - [ - "ci", - "n" - ], - [ - "c", - "in" - ], - [ - "Hi", - "gh" - ], - [ - "H", - "igh" - ], - [ - "ann", - "te" - ], - [ - "annt", - "e" - ], - [ - "▁display", - "ing" - ], - [ - "▁ch", - "apter" - ], - [ - "▁chap", - "ter" - ], - [ - "▁", - "chapter" - ], - [ - "▁Fra", - "uen" - ], - [ - "▁Frau", - "en" - ], - [ - "▁real", - "ized" - ], - [ - "▁realiz", - "ed" - ], - [ - "▁realize", - "d" - ], - [ - "▁attempt", - "ed" - ], - [ - "▁pre", - "ferred" - ], - [ - "▁prefer", - "red" - ], - [ - "Da", - "t" - ], - [ - "D", - "at" - ], - [ - "▁tr", - "ouve" - ], - [ - "▁tro", - "uve" - ], - [ - "▁trou", - "ve" - ], - [ - "▁trouv", - "e" - ], - [ - "▁int", - "ention" - ], - [ - "▁intent", - "ion" - ], - [ - "▁inten", - "tion" - ], - [ - "▁Not", - "ice" - ], - [ - "tim", - "estamp" - ], - [ - "*", - "(" - ], - [ - "▁Ш", - "а" - ], - [ - "an", - "as" - ], - [ - "ana", - "s" - ], - [ - "a", - "nas" - ], - [ - "cl", - "a" - ], - [ - "c", - "la" - ], - [ - "is", - "z" - ], - [ - "i", - "sz" - ], - [ - "tb", - "l" - ], - [ - "t", - "bl" - ], - [ - "Ar", - "r" - ], - [ - "A", - "rr" - ], - [ - "▁in", - "verse" - ], - [ - "▁ter", - "rible" - ], - [ - "▁occup", - "ied" - ], - [ - "J", - "AX" - ], - [ - "<", - "-" - ], - [ - "▁Phil", - "osoph" - ], - [ - "▁Cor", - "ps" - ], - [ - "bu", - "ilder" - ], - [ - "build", - "er" - ], - [ - "▁beg", - "ins" - ], - [ - "▁begin", - "s" - ], - [ - "▁c", - "ensus" - ], - [ - "▁cens", - "us" - ], - [ - ".", - "’" - ], - [ - "▁pro", - "ven" - ], - [ - "▁pr", - "oven" - ], - [ - "▁prov", - "en" - ], - [ - "▁prove", - "n" - ], - [ - "met", - "ric" - ], - [ - "▁incre", - "ases" - ], - [ - "▁increase", - "s" - ], - [ - "wi", - "ch" - ], - [ - "w", - "ich" - ], - [ - "▁A", - "BC" - ], - [ - "▁AB", - "C" - ], - [ - "▁", - "ABC" - ], - [ - "project", - "s" - ], - [ - "▁T", - "hor" - ], - [ - "▁Th", - "or" - ], - [ - "▁conf", - "idence" - ], - [ - "▁u", - "fficiale" - ], - [ - "el", - "m" - ], - [ - "e", - "lm" - ], - [ - "▁g", - "arden" - ], - [ - "▁gar", - "den" - ], - [ - "▁gard", - "en" - ], - [ - "▁rob", - "ust" - ], - [ - "▁cos", - "ì" - ], - [ - "ie", - "dz" - ], - [ - "ied", - "z" - ], - [ - "▁Is", - "lam" - ], - [ - "▁Add", - "ress" - ], - [ - "▁", - "Address" - ], - [ - "▁div", - "ide" - ], - [ - "▁divid", - "e" - ], - [ - "▁E", - "u" - ], - [ - "ca", - "tal" - ], - [ - "cat", - "al" - ], - [ - "c", - "atal" - ], - [ - "de", - "tail" - ], - [ - "det", - "ail" - ], - [ - "ep", - "endant" - ], - [ - "f", - "g" - ], - [ - "▁b", - "ew" - ], - [ - "▁be", - "w" - ], - [ - "▁", - "bew" - ], - [ - "▁f", - "is" - ], - [ - "▁fi", - "s" - ], - [ - "▁B", - "O" - ], - [ - "▁", - "BO" - ], - [ - "▁w", - "sp" - ], - [ - "▁ws", - "p" - ], - [ - "▁p", - "ipeline" - ], - [ - "▁pip", - "eline" - ], - [ - "▁pipe", - "line" - ], - [ - "h", - "d" - ], - [ - "▁S", - "ession" - ], - [ - "▁", - "Session" - ], - [ - "lä", - "nd" - ], - [ - "l", - "änd" - ], - [ - "iv", - "eau" - ], - [ - "ive", - "au" - ], - [ - "es", - "tr" - ], - [ - "est", - "r" - ], - [ - "e", - "str" - ], - [ - "▁p", - "article" - ], - [ - "▁part", - "icle" - ], - [ - "▁partic", - "le" - ], - [ - "▁parti", - "cle" - ], - [ - "▁lar", - "avel" - ], - [ - "▁", - "laravel" - ], - [ - "pi", - "c" - ], - [ - "p", - "ic" - ], - [ - "▁n", - "au" - ], - [ - "▁na", - "u" - ], - [ - "▁f", - "ins" - ], - [ - "▁fin", - "s" - ], - [ - "▁fi", - "ns" - ], - [ - "▁V", - "il" - ], - [ - "▁Vi", - "l" - ], - [ - "▁f", - "us" - ], - [ - "▁fu", - "s" - ], - [ - "▁qu", - "asi" - ], - [ - "oper", - "ation" - ], - [ - "opera", - "tion" - ], - [ - "▁al", - "ler" - ], - [ - "▁all", - "er" - ], - [ - "▁alle", - "r" - ], - [ - "▁", - "aller" - ], - [ - "▁an", - "aly" - ], - [ - "▁anal", - "y" - ], - [ - "▁", - "analy" - ], - [ - "▁О", - "н" - ], - [ - "▁M", - "es" - ], - [ - "▁Me", - "s" - ], - [ - "▁о", - "пера" - ], - [ - "▁оп", - "ера" - ], - [ - "▁hand", - "led" - ], - [ - "▁handle", - "d" - ], - [ - "▁de", - "prec" - ], - [ - "▁dep", - "rec" - ], - [ - "tt", - "o" - ], - [ - "t", - "to" - ], - [ - "▁E", - "k" - ], - [ - "▁st", - "ran" - ], - [ - "▁str", - "an" - ], - [ - "▁stra", - "n" - ], - [ - "▁ang", - "lais" - ], - [ - "ju", - "re" - ], - [ - "j", - "ure" - ], - [ - "▁Sil", - "ver" - ], - [ - "▁close", - "ly" - ], - [ - "▁clos", - "ely" - ], - [ - "en", - "kins" - ], - [ - "enk", - "ins" - ], - [ - "an", - "os" - ], - [ - "ano", - "s" - ], - [ - "a", - "nos" - ], - [ - "st", - "ed" - ], - [ - "ste", - "d" - ], - [ - "s", - "ted" - ], - [ - "▁сент", - "ября" - ], - [ - "br", - "and" - ], - [ - "bra", - "nd" - ], - [ - "b", - "rand" - ], - [ - "нь", - "о" - ], - [ - "▁prés", - "ent" - ], - [ - "▁pré", - "sent" - ], - [ - "ro", - "k" - ], - [ - "r", - "ok" - ], - [ - "mo", - "unt" - ], - [ - "m", - "ount" - ], - [ - "▁Anth", - "ony" - ], - [ - "▁Further", - "more" - ], - [ - "in", - "ha" - ], - [ - "▁ар", - "хи" - ], - [ - "▁раз", - "ли" - ], - [ - "▁окт", - "ября" - ], - [ - "▁p", - "int" - ], - [ - "▁pi", - "nt" - ], - [ - "▁pin", - "t" - ], - [ - "n", - "ý" - ], - [ - "pt", - "s" - ], - [ - "p", - "ts" - ], - [ - "▁ital", - "ien" - ], - [ - "▁ре", - "ги" - ], - [ - "ле", - "з" - ], - [ - "л", - "ез" - ], - [ - "ди", - "на" - ], - [ - "дин", - "а" - ], - [ - "ather", - "ine" - ], - [ - "In", - "ternal" - ], - [ - "Int", - "ernal" - ], - [ - "Inter", - "nal" - ], - [ - "Intern", - "al" - ], - [ - "Qu", - "estion" - ], - [ - "▁sett", - "lement" - ], - [ - "▁В", - "се" - ], - [ - "▁fol", - "ders" - ], - [ - "▁folder", - "s" - ], - [ - "д", - "ри" - ], - [ - "▁val", - "or" - ], - [ - "▁va", - "lor" - ], - [ - "▁M", - "iller" - ], - [ - "▁Mil", - "ler" - ], - [ - "▁Mill", - "er" - ], - [ - "▁As", - "sert" - ], - [ - "▁Ass", - "ert" - ], - [ - "▁", - "Assert" - ], - [ - "▁pat", - "ient" - ], - [ - "▁N", - "ieder" - ], - [ - "▁Ni", - "eder" - ], - [ - "▁Nie", - "der" - ], - [ - "▁Nied", - "er" - ], - [ - "▁E", - "P" - ], - [ - "▁", - "EP" - ], - [ - "▁A", - "gr" - ], - [ - "▁Ag", - "r" - ], - [ - "▁o", - "nde" - ], - [ - "▁on", - "de" - ], - [ - "▁", - "onde" - ], - [ - "▁s", - "cop" - ], - [ - "▁sc", - "op" - ], - [ - "▁", - "scop" - ], - [ - "se", - "quence" - ], - [ - "sequ", - "ence" - ], - [ - "▁P", - "L" - ], - [ - "▁", - "PL" - ], - [ - "▁se", - "ek" - ], - [ - "▁see", - "k" - ], - [ - "java", - "se" - ], - [ - "jav", - "ase" - ], - [ - "▁V", - "ector" - ], - [ - "▁Ve", - "ctor" - ], - [ - "▁Vec", - "tor" - ], - [ - "▁", - "Vector" - ], - [ - "▁n", - "á" - ], - [ - "▁", - "ná" - ], - [ - "▁categor", - "ía" - ], - [ - "cl", - "one" - ], - [ - "clo", - "ne" - ], - [ - "N", - "R" - ], - [ - "av", - "ailable" - ], - [ - "▁B", - "esch" - ], - [ - "▁Be", - "sch" - ], - [ - "▁Bes", - "ch" - ], - [ - "▁e", - "clipse" - ], - [ - "▁ec", - "lipse" - ], - [ - "▁", - "eclipse" - ], - [ - "wick", - "lung" - ], - [ - "dep", - "loy" - ], - [ - "en", - "ie" - ], - [ - "eni", - "e" - ], - [ - "e", - "nie" - ], - [ - "▁\"", - ")" - ], - [ - "▁", - "\")" - ], - [ - "äs", - "t" - ], - [ - "ä", - "st" - ], - [ - "▁s", - "ync" - ], - [ - "▁syn", - "c" - ], - [ - "▁sy", - "nc" - ], - [ - "▁", - "sync" - ], - [ - "CO", - "DE" - ], - [ - "▁Ч", - "е" - ], - [ - "▁flo", - "ating" - ], - [ - "▁float", - "ing" - ], - [ - "/", - "`" - ], - [ - "▁ret", - "ired" - ], - [ - "▁retir", - "ed" - ], - [ - "de", - "b" - ], - [ - "d", - "eb" - ], - [ - "▁part", - "icul" - ], - [ - "▁partic", - "ul" - ], - [ - "▁parti", - "cul" - ], - [ - "▁coll", - "ected" - ], - [ - "▁collect", - "ed" - ], - [ - "▁colle", - "cted" - ], - [ - "▁down", - "loaded" - ], - [ - "▁download", - "ed" - ], - [ - "ni", - "ce" - ], - [ - "nic", - "e" - ], - [ - "n", - "ice" - ], - [ - "▁B", - "uffer" - ], - [ - "▁Buff", - "er" - ], - [ - "▁", - "Buffer" - ], - [ - "▁Acc", - "ount" - ], - [ - "▁Ac", - "count" - ], - [ - "▁", - "Account" - ], - [ - "▁m", - "aggio" - ], - [ - "▁mag", - "gio" - ], - [ - "▁ре", - "да" - ], - [ - "▁ред", - "а" - ], - [ - "▁s", - "ales" - ], - [ - "▁sa", - "les" - ], - [ - "▁sal", - "es" - ], - [ - "▁sale", - "s" - ], - [ - "▁statunit", - "ense" - ], - [ - "▁K", - "i" - ], - [ - "▁F", - "err" - ], - [ - "▁Fe", - "rr" - ], - [ - "▁Fer", - "r" - ], - [ - "Lo", - "ck" - ], - [ - "Loc", - "k" - ], - [ - "L", - "ock" - ], - [ - "▁Is", - "abel" - ], - [ - "▁Isa", - "bel" - ], - [ - "cl", - "ar" - ], - [ - "cla", - "r" - ], - [ - "c", - "lar" - ], - [ - "▁p", - "ov" - ], - [ - "▁po", - "v" - ], - [ - "at", - "ra" - ], - [ - "atr", - "a" - ], - [ - "a", - "tra" - ], - [ - "▁Fr", - "au" - ], - [ - "▁Fra", - "u" - ], - [ - "▁sort", - "ing" - ], - [ - "▁sor", - "ting" - ], - [ - "▁sorti", - "ng" - ], - [ - "▁phr", - "ase" - ], - [ - "▁апре", - "ля" - ], - [ - "▁дея", - "тель" - ], - [ - "▁And", - "ré" - ], - [ - "def", - "inition" - ], - [ - "defin", - "ition" - ], - [ - "writ", - "ing" - ], - [ - "wr", - "iting" - ], - [ - "ér", - "é" - ], - [ - "é", - "ré" - ], - [ - "щ", - "у" - ], - [ - "▁O", - "rd" - ], - [ - "▁Or", - "d" - ], - [ - "▁", - "Ord" - ], - [ - "▁r", - "um" - ], - [ - "▁ru", - "m" - ], - [ - "▁", - "rum" - ], - [ - "▁T", - "urk" - ], - [ - "▁Tur", - "k" - ], - [ - "▁I", - "van" - ], - [ - "th", - "eless" - ], - [ - "the", - "less" - ], - [ - "▁г", - "и" - ], - [ - "▁", - "ги" - ], - [ - "▁s", - "ake" - ], - [ - "▁sa", - "ke" - ], - [ - "▁B", - "ased" - ], - [ - "▁Bas", - "ed" - ], - [ - "▁Ba", - "sed" - ], - [ - "▁Base", - "d" - ], - [ - "de", - "ck" - ], - [ - "dec", - "k" - ], - [ - "or", - "us" - ], - [ - "oru", - "s" - ], - [ - "o", - "rus" - ], - [ - "▁tut", - "ti" - ], - [ - "▁b", - "lan" - ], - [ - "▁bl", - "an" - ], - [ - "▁bla", - "n" - ], - [ - "▁П", - "у" - ], - [ - "De", - "tail" - ], - [ - "Det", - "ail" - ], - [ - "▁Н", - "о" - ], - [ - "▁S", - "ky" - ], - [ - "▁Sk", - "y" - ], - [ - "▁p", - "rès" - ], - [ - "▁pr", - "ès" - ], - [ - "▁", - "près" - ], - [ - "мо", - "й" - ], - [ - "col", - "n" - ], - [ - "co", - "ln" - ], - [ - "че", - "ской" - ], - [ - "et", - "i" - ], - [ - "e", - "ti" - ], - [ - "▁ar", - "row" - ], - [ - "▁arr", - "ow" - ], - [ - "▁", - "arrow" - ], - [ - "▁C", - "ha" - ], - [ - "▁Ch", - "a" - ], - [ - "ch", - "mark" - ], - [ - "œ", - "ur" - ], - [ - "fa", - "b" - ], - [ - "f", - "ab" - ], - [ - "ку", - "ль" - ], - [ - "Grid", - "View" - ], - [ - "▁Back", - "ground" - ], - [ - "▁", - "Background" - ], - [ - "s", - "n" - ], - [ - "▁segu", - "ito" - ], - [ - "▁n", - "ic" - ], - [ - "▁ni", - "c" - ], - [ - "▁", - "nic" - ], - [ - "co", - "u" - ], - [ - "c", - "ou" - ], - [ - "ті", - "в" - ], - [ - "т", - "ів" - ], - [ - "▁b", - "zw" - ], - [ - "add", - "EventListener" - ], - [ - "syn", - "c" - ], - [ - "s", - "ync" - ], - [ - "az", - "zo" - ], - [ - "azz", - "o" - ], - [ - "ab", - "stract" - ], - [ - "as", - "sets" - ], - [ - "ass", - "ets" - ], - [ - "asse", - "ts" - ], - [ - "asset", - "s" - ], - [ - "▁D", - "ru" - ], - [ - "▁Dr", - "u" - ], - [ - "з", - "д" - ], - [ - "ord", - "net" - ], - [ - "▁b", - "igger" - ], - [ - "▁big", - "ger" - ], - [ - "▁initial", - "ized" - ], - [ - "▁initialize", - "d" - ], - [ - "ка", - "з" - ], - [ - "og", - "ene" - ], - [ - "ogen", - "e" - ], - [ - "oge", - "ne" - ], - [ - "vi", - "ously" - ], - [ - "vious", - "ly" - ], - [ - "v", - "iously" - ], - [ - "▁g", - "uid" - ], - [ - "▁gu", - "id" - ], - [ - "scheid", - "ung" - ], - [ - "▁Z", - "ent" - ], - [ - "▁Ze", - "nt" - ], - [ - "▁fr", - "ames" - ], - [ - "▁frame", - "s" - ], - [ - "▁fra", - "mes" - ], - [ - "▁fram", - "es" - ], - [ - "▁", - "frames" - ], - [ - "ri", - "eben" - ], - [ - "rie", - "ben" - ], - [ - "rieb", - "en" - ], - [ - "r", - "ieben" - ], - [ - "▁iss", - "ued" - ], - [ - "▁issue", - "d" - ], - [ - "▁issu", - "ed" - ], - [ - "▁d", - "ow" - ], - [ - "▁do", - "w" - ], - [ - "▁descri", - "bes" - ], - [ - "▁describe", - "s" - ], - [ - "il", - "st" - ], - [ - "ils", - "t" - ], - [ - "i", - "lst" - ], - [ - "▁c", - "riteria" - ], - [ - "▁crit", - "eria" - ], - [ - "▁criter", - "ia" - ], - [ - "▁gentle", - "man" - ], - [ - "Bas", - "ic" - ], - [ - "ne", - "z" - ], - [ - "n", - "ez" - ], - [ - "De", - "v" - ], - [ - "D", - "ev" - ], - [ - "Mo", - "ve" - ], - [ - "M", - "ove" - ], - [ - "▁est", - "aba" - ], - [ - "▁estab", - "a" - ], - [ - "▁esta", - "ba" - ], - [ - "▁set", - "tembre" - ], - [ - "▁sett", - "embre" - ], - [ - "circ", - "le" - ], - [ - "cir", - "cle" - ], - [ - "▁f", - "ais" - ], - [ - "▁fa", - "is" - ], - [ - "▁m", - "yst" - ], - [ - "▁my", - "st" - ], - [ - "▁arch", - "iv" - ], - [ - "▁", - "archiv" - ], - [ - "d", - "ynamic" - ], - [ - "j", - "à" - ], - [ - "it", - "as" - ], - [ - "ita", - "s" - ], - [ - "▁я", - "кий" - ], - [ - "▁d", - "or" - ], - [ - "▁do", - "r" - ], - [ - "▁", - "dor" - ], - [ - "▁Am", - "azon" - ], - [ - "▁Ama", - "zon" - ], - [ - "▁ne", - "ces" - ], - [ - "▁Mar", - "cel" - ], - [ - "▁Marc", - "el" - ], - [ - "▁e", - "lla" - ], - [ - "▁el", - "la" - ], - [ - "▁ell", - "a" - ], - [ - "▁", - "ella" - ], - [ - "ро", - "к" - ], - [ - "р", - "ок" - ], - [ - "▁Pennsylvan", - "ia" - ], - [ - "cul", - "ar" - ], - [ - "cu", - "lar" - ], - [ - "c", - "ular" - ], - [ - "Pa", - "ck" - ], - [ - "P", - "ack" - ], - [ - "it", - "age" - ], - [ - "ita", - "ge" - ], - [ - "▁B", - "urn" - ], - [ - "▁Bu", - "rn" - ], - [ - "▁Bur", - "n" - ], - [ - "▁R", - "O" - ], - [ - "▁", - "RO" - ], - [ - "▁о", - "ни" - ], - [ - "▁он", - "и" - ], - [ - "▁", - "они" - ], - [ - "~", - "$" - ], - [ - "Te", - "X" - ], - [ - "as", - "sign" - ], - [ - "ass", - "ign" - ], - [ - "▁be", - "at" - ], - [ - "id", - "ense" - ], - [ - "iden", - "se" - ], - [ - "ac", - "ent" - ], - [ - "ace", - "nt" - ], - [ - "a", - "cent" - ], - [ - "Al", - "ert" - ], - [ - "▁str", - "ateg" - ], - [ - "▁strat", - "eg" - ], - [ - "▁mån", - "aden" - ], - [ - "LO", - "C" - ], - [ - "L", - "OC" - ], - [ - "▁c", - "atalog" - ], - [ - "▁cat", - "alog" - ], - [ - "▁catal", - "og" - ], - [ - "▁", - "catalog" - ], - [ - "print", - "StackTrace" - ], - [ - "()", - ")." - ], - [ - "())", - "." - ], - [ - "(", - "))." - ], - [ - "us", - "ted" - ], - [ - "ust", - "ed" - ], - [ - "u", - "sted" - ], - [ - "▁Frame", - "work" - ], - [ - "▁", - "Framework" - ], - [ - "EC", - "K" - ], - [ - "E", - "CK" - ], - [ - "▁a", - "té" - ], - [ - "▁at", - "é" - ], - [ - "Frame", - "work" - ], - [ - "▁att", - "acks" - ], - [ - "▁attack", - "s" - ], - [ - "▁B", - "ert" - ], - [ - "▁Be", - "rt" - ], - [ - "▁Ber", - "t" - ], - [ - "▁т", - "ран" - ], - [ - "▁тра", - "н" - ], - [ - ":", - "%" - ], - [ - "ar", - "si" - ], - [ - "ars", - "i" - ], - [ - "not", - "ation" - ], - [ - "▁log", - "ical" - ], - [ - "▁logic", - "al" - ], - [ - "we", - "et" - ], - [ - "▁vis", - "ited" - ], - [ - "▁visit", - "ed" - ], - [ - "br", - "u" - ], - [ - "b", - "ru" - ], - [ - "▁sur", - "prise" - ], - [ - "▁surpr", - "ise" - ], - [ - "^", - "^" - ], - [ - "in", - "ale" - ], - [ - "inal", - "e" - ], - [ - "ina", - "le" - ], - [ - "rem", - "ote" - ], - [ - "'}", - "," - ], - [ - "'", - "}," - ], - [ - "Syn", - "tax" - ], - [ - "S", - "yntax" - ], - [ - "ia", - "ne" - ], - [ - "ian", - "e" - ], - [ - "i", - "ane" - ], - [ - "on", - "nen" - ], - [ - "onn", - "en" - ], - [ - "onne", - "n" - ], - [ - "▁bre", - "aking" - ], - [ - "▁break", - "ing" - ], - [ - "par", - "ser" - ], - [ - "parse", - "r" - ], - [ - "ap", - "k" - ], - [ - "a", - "pk" - ], - [ - "▁Mig", - "uel" - ], - [ - "▁", - "§" - ], - [ - "▁act", - "ing" - ], - [ - "▁ac", - "ting" - ], - [ - "▁g", - "ebru" - ], - [ - "▁ge", - "bru" - ], - [ - "▁geb", - "ru" - ], - [ - "At", - "Index" - ], - [ - "ють", - "ся" - ], - [ - "ю", - "ться" - ], - [ - "▁of", - "fers" - ], - [ - "▁off", - "ers" - ], - [ - "▁offer", - "s" - ], - [ - "▁p", - "rac" - ], - [ - "▁pr", - "ac" - ], - [ - "▁pra", - "c" - ], - [ - "▁g", - "rant" - ], - [ - "▁gr", - "ant" - ], - [ - "▁gra", - "nt" - ], - [ - "▁gran", - "t" - ], - [ - "tern", - "oon" - ], - [ - "▁ac", - "quired" - ], - [ - "▁acqu", - "ired" - ], - [ - "▁N", - "y" - ], - [ - "▁com", - "ma" - ], - [ - "▁comm", - "a" - ], - [ - "ní", - "k" - ], - [ - "n", - "ík" - ], - [ - "▁St", - "ep" - ], - [ - "▁Ste", - "p" - ], - [ - "▁", - "Step" - ], - [ - "in", - "ners" - ], - [ - "inn", - "ers" - ], - [ - "inner", - "s" - ], - [ - "▁S", - "A" - ], - [ - "▁", - "SA" - ], - [ - "▁w", - "at" - ], - [ - "▁wa", - "t" - ], - [ - "da", - "ys" - ], - [ - "day", - "s" - ], - [ - "d", - "ays" - ], - [ - "▁rect", - "angle" - ], - [ - "da", - "r" - ], - [ - "d", - "ar" - ], - [ - "▁t", - "rac" - ], - [ - "▁tr", - "ac" - ], - [ - "▁tra", - "c" - ], - [ - "▁Ind", - "ones" - ], - [ - "▁feed", - "back" - ], - [ - "▁bre", - "aks" - ], - [ - "▁break", - "s" - ], - [ - "part", - "ition" - ], - [ - "ic", - "ans" - ], - [ - "ica", - "ns" - ], - [ - "ican", - "s" - ], - [ - "▁Not", - "ices" - ], - [ - "▁Notice", - "s" - ], - [ - "▁impro", - "ved" - ], - [ - "▁improve", - "d" - ], - [ - "▁improv", - "ed" - ], - [ - "▁impr", - "oved" - ], - [ - "ph", - "an" - ], - [ - "pha", - "n" - ], - [ - "p", - "han" - ], - [ - "▁differ", - "ential" - ], - [ - "▁different", - "ial" - ], - [ - "▁differenti", - "al" - ], - [ - "script", - "s" - ], - [ - "scri", - "pts" - ], - [ - "▁X", - "III" - ], - [ - "▁XII", - "I" - ], - [ - "▁XI", - "II" - ], - [ - "▁L", - "abor" - ], - [ - "▁La", - "bor" - ], - [ - "▁Lab", - "or" - ], - [ - "▁prec", - "ision" - ], - [ - "▁precis", - "ion" - ], - [ - "▁s", - "eed" - ], - [ - "▁se", - "ed" - ], - [ - "▁see", - "d" - ], - [ - "▁", - "seed" - ], - [ - "bund", - "le" - ], - [ - "b", - "undle" - ], - [ - "id", - "ents" - ], - [ - "ident", - "s" - ], - [ - "iden", - "ts" - ], - [ - "hr", - "e" - ], - [ - "h", - "re" - ], - [ - "▁Doug", - "las" - ], - [ - "ul", - "d" - ], - [ - "u", - "ld" - ], - [ - "▁second", - "ary" - ], - [ - "▁seconda", - "ry" - ], - [ - "▁b", - "rig" - ], - [ - "▁br", - "ig" - ], - [ - "▁confirm", - "ed" - ], - [ - "▁confir", - "med" - ], - [ - "▁cla", - "ims" - ], - [ - "▁claim", - "s" - ], - [ - "Ro", - "le" - ], - [ - "R", - "ole" - ], - [ - "▁Jew", - "ish" - ], - [ - "▁p", - "řed" - ], - [ - "▁př", - "ed" - ], - [ - "▁ho", - "tel" - ], - [ - "▁hot", - "el" - ], - [ - "▁comp", - "te" - ], - [ - "▁compt", - "e" - ], - [ - "▁rec", - "ursive" - ], - [ - "▁recurs", - "ive" - ], - [ - "](#", - ")" - ], - [ - "▁rot", - "ate" - ], - [ - "▁", - "rotate" - ], - [ - "▁ch", - "rome" - ], - [ - "▁chr", - "ome" - ], - [ - "▁chrom", - "e" - ], - [ - "▁", - "chrome" - ], - [ - "in", - "ea" - ], - [ - "ine", - "a" - ], - [ - "i", - "nea" - ], - [ - "%;", - "\r" - ], - [ - "%", - ";\r" - ], - [ - "▁En", - "vironment" - ], - [ - "▁", - "Environment" - ], - [ - "pl", - "atz" - ], - [ - "pla", - "tz" - ], - [ - "▁Sing", - "le" - ], - [ - "▁Sin", - "gle" - ], - [ - "▁", - "Single" - ], - [ - "▁s", - "event" - ], - [ - "▁se", - "vent" - ], - [ - "▁seven", - "t" - ], - [ - "▁pos", - "ting" - ], - [ - "▁post", - "ing" - ], - [ - "▁de", - "aling" - ], - [ - "▁deal", - "ing" - ], - [ - "param", - "eters" - ], - [ - "parameter", - "s" - ], - [ - "гра", - "ф" - ], - [ - "Auth", - "entication" - ], - [ - "to", - "uch" - ], - [ - "t", - "ouch" - ], - [ - "A", - "z" - ], - [ - "▁g", - "ray" - ], - [ - "▁gr", - "ay" - ], - [ - "▁gra", - "y" - ], - [ - "▁", - "gray" - ], - [ - "en", - "cing" - ], - [ - "enc", - "ing" - ], - [ - "enci", - "ng" - ], - [ - "bold", - "math" - ], - [ - "▁сай", - "те" - ], - [ - "▁сайт", - "е" - ], - [ - "▁Z", - "a" - ], - [ - "an", - "je" - ], - [ - "▁p", - "olar" - ], - [ - "▁po", - "lar" - ], - [ - "▁pol", - "ar" - ], - [ - "▁у", - "ли" - ], - [ - "ki", - "l" - ], - [ - "k", - "il" - ], - [ - "▁h", - "over" - ], - [ - "▁ho", - "ver" - ], - [ - "▁", - "hover" - ], - [ - "▁RE", - "ST" - ], - [ - "▁C", - "ome" - ], - [ - "▁Com", - "e" - ], - [ - "▁Co", - "me" - ], - [ - "▁", - "Come" - ], - [ - "j", - "b" - ], - [ - "▁Georg", - "ia" - ], - [ - "▁Est", - "ado" - ], - [ - "▁Esta", - "do" - ], - [ - "▁Estad", - "o" - ], - [ - "Output", - "Stream" - ], - [ - "ћ", - "и" - ], - [ - "▁d", - "ump" - ], - [ - "▁du", - "mp" - ], - [ - "▁", - "dump" - ], - [ - "▁A", - "ge" - ], - [ - "▁Ag", - "e" - ], - [ - "▁", - "Age" - ], - [ - "▁s", - "wo" - ], - [ - "▁sw", - "o" - ], - [ - "m", - "obile" - ], - [ - "oc", - "cup" - ], - [ - "occ", - "up" - ], - [ - "ше", - "го" - ], - [ - "ш", - "его" - ], - [ - "▁const", - "itution" - ], - [ - "▁constitu", - "tion" - ], - [ - "▁constit", - "ution" - ], - [ - "go", - "od" - ], - [ - "g", - "ood" - ], - [ - "ak", - "u" - ], - [ - "a", - "ku" - ], - [ - "▁а", - "нг" - ], - [ - "▁ан", - "г" - ], - [ - "▁", - "анг" - ], - [ - "ie", - "ck" - ], - [ - "iec", - "k" - ], - [ - "▁Ps", - "ych" - ], - [ - "▁ro", - "ots" - ], - [ - "▁root", - "s" - ], - [ - "▁v", - "est" - ], - [ - "▁ve", - "st" - ], - [ - "▁ves", - "t" - ], - [ - "▁", - "vest" - ], - [ - "▁го", - "дах" - ], - [ - "▁года", - "х" - ], - [ - "▁Rep", - "ública" - ], - [ - "▁p", - "ian" - ], - [ - "▁pi", - "an" - ], - [ - "▁pia", - "n" - ], - [ - "igr", - "ation" - ], - [ - "▁pr", - "éc" - ], - [ - "▁pré", - "c" - ], - [ - "▁gener", - "ates" - ], - [ - "▁generate", - "s" - ], - [ - "L", - "Y" - ], - [ - "(", - "`" - ], - [ - "▁=", - "~" - ], - [ - "ше", - "ния" - ], - [ - "▁R", - "ah" - ], - [ - "▁Ra", - "h" - ], - [ - "▁connect", - "ing" - ], - [ - "ž", - "í" - ], - [ - "▁f", - "ő" - ], - [ - "▁a", - "ppel" - ], - [ - "▁app", - "el" - ], - [ - "▁ap", - "pel" - ], - [ - "▁appe", - "l" - ], - [ - "▁Rail", - "way" - ], - [ - "г", - "ли" - ], - [ - "▁dével", - "opp" - ], - [ - "▁a", - "po" - ], - [ - "▁ap", - "o" - ], - [ - "fr", - "an" - ], - [ - "fra", - "n" - ], - [ - "f", - "ran" - ], - [ - "▁im", - "mediate" - ], - [ - "▁immedi", - "ate" - ], - [ - "во", - "го" - ], - [ - "в", - "ого" - ], - [ - "Run", - "ner" - ], - [ - "ä", - "g" - ], - [ - "Some", - "thing" - ], - [ - "S", - "omething" - ], - [ - "▁gén", - "éra" - ], - [ - "Event", - "Args" - ], - [ - "in", - "ction" - ], - [ - "inc", - "tion" - ], - [ - "inct", - "ion" - ], - [ - "gl", - "y" - ], - [ - "g", - "ly" - ], - [ - "▁D", - "ue" - ], - [ - "▁Du", - "e" - ], - [ - "▁p", - "rost" - ], - [ - "▁pro", - "st" - ], - [ - "▁pr", - "ost" - ], - [ - "▁pros", - "t" - ], - [ - "▁refer", - "ring" - ], - [ - "▁j", - "og" - ], - [ - "▁jo", - "g" - ], - [ - "▁exec", - "utable" - ], - [ - "▁execut", - "able" - ], - [ - "▁D", - "ream" - ], - [ - "▁Dre", - "am" - ], - [ - "ac", - "s" - ], - [ - "a", - "cs" - ], - [ - "▁C", - "ole" - ], - [ - "▁Col", - "e" - ], - [ - "▁Co", - "le" - ], - [ - "am", - "pf" - ], - [ - "amp", - "f" - ], - [ - "▁B", - "is" - ], - [ - "▁Bi", - "s" - ], - [ - "▁ию", - "ня" - ], - [ - "li", - "eder" - ], - [ - "lied", - "er" - ], - [ - "lie", - "der" - ], - [ - "l", - "ieder" - ], - [ - "те", - "к" - ], - [ - "т", - "ек" - ], - [ - "▁v", - "b" - ], - [ - "▁", - "vb" - ], - [ - "▁m", - "om" - ], - [ - "▁mo", - "m" - ], - [ - "▁:", - "(" - ], - [ - "▁", - ":(" - ], - [ - "▁der", - "nier" - ], - [ - "▁derni", - "er" - ], - [ - "'", - "=>" - ], - [ - "▁э", - "того" - ], - [ - "▁это", - "го" - ], - [ - "▁ne", - "ue" - ], - [ - "▁neu", - "e" - ], - [ - "▁Ч", - "а" - ], - [ - "▁weiter", - "e" - ], - [ - "▁weit", - "ere" - ], - [ - "▁al", - "leg" - ], - [ - "▁all", - "eg" - ], - [ - "▁alle", - "g" - ], - [ - "▁re", - "ality" - ], - [ - "▁real", - "ity" - ], - [ - "▁jud", - "ge" - ], - [ - "▁B", - "alt" - ], - [ - "▁Ba", - "lt" - ], - [ - "▁Bal", - "t" - ], - [ - "▁t", - "hin" - ], - [ - "▁th", - "in" - ], - [ - "▁G", - "ed" - ], - [ - "▁Ge", - "d" - ], - [ - "ie", - "val" - ], - [ - "iev", - "al" - ], - [ - "i", - "eval" - ], - [ - "m", - "x" - ], - [ - "ці", - "ональ" - ], - [ - "▁вы", - "пу" - ], - [ - "▁I", - "X" - ], - [ - "▁", - "IX" - ], - [ - "▁bl", - "ind" - ], - [ - "▁Mo", - "tor" - ], - [ - "▁Mot", - "or" - ], - [ - "▁ш", - "а" - ], - [ - "▁", - "ша" - ], - [ - "▁approxim", - "ation" - ], - [ - "da", - "m" - ], - [ - "d", - "am" - ], - [ - "▁f", - "og" - ], - [ - "▁fo", - "g" - ], - [ - "▁", - "fog" - ], - [ - "ко", - "р" - ], - [ - "к", - "ор" - ], - [ - "▁W", - "rit" - ], - [ - "▁l", - "ing" - ], - [ - "▁li", - "ng" - ], - [ - "▁lin", - "g" - ], - [ - "▁", - "ling" - ], - [ - "▁пи", - "са" - ], - [ - "▁", - "писа" - ], - [ - "▁M", - "ars" - ], - [ - "▁Mar", - "s" - ], - [ - "▁Ma", - "rs" - ], - [ - "ot", - "ti" - ], - [ - "ott", - "i" - ], - [ - "En", - "um" - ], - [ - "E", - "num" - ], - [ - "▁T", - "rib" - ], - [ - "▁Tr", - "ib" - ], - [ - "▁Tri", - "b" - ], - [ - "▁m", - "erc" - ], - [ - "▁me", - "rc" - ], - [ - "▁mer", - "c" - ], - [ - "zu", - "ng" - ], - [ - "z", - "ung" - ], - [ - "van", - "ced" - ], - [ - "v", - "anced" - ], - [ - "cf", - "g" - ], - [ - "c", - "fg" - ], - [ - "на", - "х" - ], - [ - "sch", - "en" - ], - [ - "sc", - "hen" - ], - [ - "sche", - "n" - ], - [ - "s", - "chen" - ], - [ - "\"]", - "." - ], - [ - "\"", - "]." - ], - [ - "be", - "k" - ], - [ - "b", - "ek" - ], - [ - "▁s", - "ter" - ], - [ - "▁st", - "er" - ], - [ - "▁ste", - "r" - ], - [ - "▁", - "ster" - ], - [ - "j", - "p" - ], - [ - "▁R", - "ap" - ], - [ - "▁Ra", - "p" - ], - [ - "▁rec", - "ording" - ], - [ - "▁record", - "ing" - ], - [ - "▁pe", - "int" - ], - [ - "▁l", - "ets" - ], - [ - "▁le", - "ts" - ], - [ - "▁let", - "s" - ], - [ - "▁", - "lets" - ], - [ - "än", - "ge" - ], - [ - "äng", - "e" - ], - [ - ">\"", - ";" - ], - [ - ">", - "\";" - ], - [ - "▁міс", - "це" - ], - [ - "▁c", - "aval" - ], - [ - "▁ca", - "val" - ], - [ - "▁cav", - "al" - ], - [ - "▁C", - "SV" - ], - [ - "▁CS", - "V" - ], - [ - "▁ent", - "stand" - ], - [ - "▁hel", - "per" - ], - [ - "▁help", - "er" - ], - [ - "▁", - "helper" - ], - [ - "en", - "det" - ], - [ - "end", - "et" - ], - [ - "ende", - "t" - ], - [ - "▁G", - "ram" - ], - [ - "▁Gr", - "am" - ], - [ - "▁Gra", - "m" - ], - [ - "▁D", - "iego" - ], - [ - "▁Die", - "go" - ], - [ - "▁Di", - "ego" - ], - [ - "▁B", - "ishop" - ], - [ - "▁Bi", - "shop" - ], - [ - "TA", - "G" - ], - [ - "T", - "AG" - ], - [ - "▁e", - "cc" - ], - [ - "▁ec", - "c" - ], - [ - "▁E", - "en" - ], - [ - "▁A", - "V" - ], - [ - "▁", - "AV" - ], - [ - "C", - "ity" - ], - [ - "▁Gu", - "ide" - ], - [ - "hi", - "nd" - ], - [ - "hin", - "d" - ], - [ - "h", - "ind" - ], - [ - "ri", - "cal" - ], - [ - "ric", - "al" - ], - [ - "rica", - "l" - ], - [ - "r", - "ical" - ], - [ - "▁Ос", - "нов" - ], - [ - "Bu", - "s" - ], - [ - "B", - "us" - ], - [ - "▁z", - "unächst" - ], - [ - "▁t", - "ick" - ], - [ - "▁ti", - "ck" - ], - [ - "▁", - "tick" - ], - [ - "▁Col", - "onel" - ], - [ - "Th", - "anks" - ], - [ - "Thank", - "s" - ], - [ - "▁f", - "erm" - ], - [ - "▁fe", - "rm" - ], - [ - "▁fer", - "m" - ], - [ - "▁gr", - "anted" - ], - [ - "▁gran", - "ted" - ], - [ - "▁grant", - "ed" - ], - [ - "▁th", - "reshold" - ], - [ - "omorph", - "ic" - ], - [ - "▁H", - "un" - ], - [ - "▁Hu", - "n" - ], - [ - "en", - "is" - ], - [ - "eni", - "s" - ], - [ - "e", - "nis" - ], - [ - "▁п", - "рав" - ], - [ - "▁пра", - "в" - ], - [ - "▁", - "прав" - ], - [ - "▁я", - "кі" - ], - [ - "▁як", - "і" - ], - [ - "P", - "G" - ], - [ - "▁w", - "s" - ], - [ - "▁", - "ws" - ], - [ - "▁techn", - "ical" - ], - [ - "▁techni", - "cal" - ], - [ - "est", - "ro" - ], - [ - "estr", - "o" - ], - [ - "kl", - "är" - ], - [ - "k", - "lär" - ], - [ - "va", - "rs" - ], - [ - "var", - "s" - ], - [ - "v", - "ars" - ], - [ - "oc", - "rat" - ], - [ - "ocr", - "at" - ], - [ - "▁оп", - "шти" - ], - [ - "on", - "so" - ], - [ - "ons", - "o" - ], - [ - "ib", - "a" - ], - [ - "i", - "ba" - ], - [ - "▁S", - "ave" - ], - [ - "▁Sa", - "ve" - ], - [ - "▁Sav", - "e" - ], - [ - "▁", - "Save" - ], - [ - "▁program", - "a" - ], - [ - "▁в", - "ъ" - ], - [ - "▁inv", - "ån" - ], - [ - ">(", - ")" - ], - [ - ">", - "()" - ], - [ - "▁me", - "jor" - ], - [ - "▁с", - "лова" - ], - [ - "▁сло", - "ва" - ], - [ - "▁rep", - "lacement" - ], - [ - "▁replace", - "ment" - ], - [ - "▁repla", - "cement" - ], - [ - "▁im", - "pr" - ], - [ - "▁imp", - "r" - ], - [ - "▁Frances", - "co" - ], - [ - "▁Ho", - "tel" - ], - [ - "▁Hot", - "el" - ], - [ - "▁UP", - "DATE" - ], - [ - "▁", - "UPDATE" - ], - [ - "▁му", - "зы" - ], - [ - "ug", - "s" - ], - [ - "u", - "gs" - ], - [ - "va", - "rd" - ], - [ - "var", - "d" - ], - [ - "v", - "ard" - ], - [ - "▁f", - "az" - ], - [ - "▁fa", - "z" - ], - [ - "in", - "ton" - ], - [ - "int", - "on" - ], - [ - "into", - "n" - ], - [ - "▁ar", - "ts" - ], - [ - "▁art", - "s" - ], - [ - "▁", - "arts" - ], - [ - "▁K", - "y" - ], - [ - "▁I", - "ls" - ], - [ - "▁Il", - "s" - ], - [ - "▁s", - "era" - ], - [ - "▁se", - "ra" - ], - [ - "▁ser", - "a" - ], - [ - "▁Vol", - "ume" - ], - [ - "▁", - "Volume" - ], - [ - "▁gi", - "ugno" - ], - [ - "▁a", - "sym" - ], - [ - "▁as", - "ym" - ], - [ - "▁P", - "ir" - ], - [ - "▁Pi", - "r" - ], - [ - "▁N", - "AS" - ], - [ - "▁NA", - "S" - ], - [ - "▁T", - "am" - ], - [ - "▁Ta", - "m" - ], - [ - "ě", - "l" - ], - [ - "Se", - "qu" - ], - [ - "Seq", - "u" - ], - [ - "S", - "equ" - ], - [ - "km", - "al" - ], - [ - "k", - "mal" - ], - [ - "▁E", - "ins" - ], - [ - "▁Ein", - "s" - ], - [ - "▁ком", - "па" - ], - [ - "▁комп", - "а" - ], - [ - "ob", - "e" - ], - [ - "o", - "be" - ], - [ - "oo", - "r" - ], - [ - "o", - "or" - ], - [ - "▁he", - "ap" - ], - [ - "ct", - "l" - ], - [ - "c", - "tl" - ], - [ - "▁separ", - "ately" - ], - [ - "▁separate", - "ly" - ], - [ - "re", - "ader" - ], - [ - "read", - "er" - ], - [ - "rea", - "der" - ], - [ - "▁signific", - "antly" - ], - [ - "▁significant", - "ly" - ], - [ - "▁L", - "ag" - ], - [ - "▁La", - "g" - ], - [ - "no", - "tes" - ], - [ - "not", - "es" - ], - [ - "note", - "s" - ], - [ - "n", - "otes" - ], - [ - "▁s", - "ele" - ], - [ - "▁se", - "le" - ], - [ - "▁sel", - "e" - ], - [ - "▁dedic", - "ated" - ], - [ - "▁H", - "ost" - ], - [ - "▁Ho", - "st" - ], - [ - "▁", - "Host" - ], - [ - "cho", - "ice" - ], - [ - "wi", - "ng" - ], - [ - "win", - "g" - ], - [ - "w", - "ing" - ], - [ - "▁T", - "itel" - ], - [ - "▁Tit", - "el" - ], - [ - "▁Ti", - "tel" - ], - [ - "▁befind", - "et" - ], - [ - "lar", - "ge" - ], - [ - "larg", - "e" - ], - [ - "▁con", - "ten" - ], - [ - "▁cont", - "en" - ], - [ - "▁co", - "nten" - ], - [ - "▁conte", - "n" - ], - [ - "Java", - "Script" - ], - [ - "▁de", - "ser" - ], - [ - "▁des", - "er" - ], - [ - "▁G", - "ordon" - ], - [ - "▁Gor", - "don" - ], - [ - "с", - "пе" - ], - [ - "▁p", - "atri" - ], - [ - "▁pat", - "ri" - ], - [ - "▁pa", - "tri" - ], - [ - "▁patr", - "i" - ], - [ - "▁R", - "andom" - ], - [ - "▁Rand", - "om" - ], - [ - "▁Ran", - "dom" - ], - [ - "▁", - "Random" - ], - [ - "▁Return", - "s" - ], - [ - "ы", - "м" - ], - [ - "ро", - "ма" - ], - [ - "ром", - "а" - ], - [ - "▁Stud", - "ies" - ], - [ - "S", - "l" - ], - [ - "▁fr", - "ü" - ], - [ - "TE", - "XT" - ], - [ - "T", - "EXT" - ], - [ - "in", - "ate" - ], - [ - "ina", - "te" - ], - [ - "▁T", - "ol" - ], - [ - "▁To", - "l" - ], - [ - "▁every", - "where" - ], - [ - "ar", - "ta" - ], - [ - "art", - "a" - ], - [ - "▁or", - "bit" - ], - [ - "▁orb", - "it" - ], - [ - "▁A", - "ires" - ], - [ - "▁Air", - "es" - ], - [ - "▁I", - "ss" - ], - [ - "▁Is", - "s" - ], - [ - "▁te", - "ż" - ], - [ - "▁d", - "iverse" - ], - [ - "▁di", - "verse" - ], - [ - "▁divers", - "e" - ], - [ - "▁diver", - "se" - ], - [ - "▁n", - "umeric" - ], - [ - "▁numer", - "ic" - ], - [ - "▁", - "numeric" - ], - [ - "ma", - "z" - ], - [ - "m", - "az" - ], - [ - "▁m", - "ise" - ], - [ - "▁mi", - "se" - ], - [ - "▁mis", - "e" - ], - [ - "▁batt", - "ery" - ], - [ - "▁batter", - "y" - ], - [ - "▁bat", - "tery" - ], - [ - "▁A", - "kadem" - ], - [ - "▁Ak", - "adem" - ], - [ - "не", - "ние" - ], - [ - "▁simult", - "ane" - ], - [ - "▁D", - "ead" - ], - [ - "▁De", - "ad" - ], - [ - "▁cl", - "ust" - ], - [ - "▁ot", - "ro" - ], - [ - "▁c", - "erca" - ], - [ - "▁cer", - "ca" - ], - [ - "()", - "`," - ], - [ - "()`", - "," - ], - [ - "(", - ")`," - ], - [ - "ro", - "z" - ], - [ - "r", - "oz" - ], - [ - "ă", - "t" - ], - [ - "▁M", - "O" - ], - [ - "▁", - "MO" - ], - [ - "ri", - "ften" - ], - [ - "rift", - "en" - ], - [ - "rif", - "ten" - ], - [ - "import", - "ant" - ], - [ - "▁je", - "ho" - ], - [ - "▁find", - "ViewById" - ], - [ - "▁", - "findViewById" - ], - [ - "▁con", - "sequence" - ], - [ - "▁conse", - "quence" - ], - [ - "▁consequ", - "ence" - ], - [ - "▁measure", - "d" - ], - [ - "▁meas", - "ured" - ], - [ - "is", - "hes" - ], - [ - "ish", - "es" - ], - [ - "▁s", - "ze" - ], - [ - "▁sz", - "e" - ], - [ - "ien", - "do" - ], - [ - "i", - "endo" - ], - [ - "▁W", - "ahl" - ], - [ - "▁Wa", - "hl" - ], - [ - "st", - "rip" - ], - [ - "str", - "ip" - ], - [ - "AR", - "D" - ], - [ - "▁op", - "acity" - ], - [ - "▁", - "opacity" - ], - [ - "WOR", - "D" - ], - [ - "W", - "ORD" - ], - [ - "▁В", - "і" - ], - [ - "▁L", - "ocation" - ], - [ - "▁Lo", - "cation" - ], - [ - "▁Loc", - "ation" - ], - [ - "▁", - "Location" - ], - [ - "ra", - "i" - ], - [ - "r", - "ai" - ], - [ - "пе", - "н" - ], - [ - "п", - "ен" - ], - [ - "▁r", - "if" - ], - [ - "▁ri", - "f" - ], - [ - "▁", - "rif" - ], - [ - "auss", - "ian" - ], - [ - "File", - "Name" - ], - [ - "▁dis", - "co" - ], - [ - "▁disc", - "o" - ], - [ - "il", - "en" - ], - [ - "ile", - "n" - ], - [ - "i", - "len" - ], - [ - "▁v", - "agy" - ], - [ - "▁va", - "gy" - ], - [ - "li", - "city" - ], - [ - "lic", - "ity" - ], - [ - "licit", - "y" - ], - [ - "l", - "icity" - ], - [ - "B", - "order" - ], - [ - "▁T", - "rack" - ], - [ - "▁Tr", - "ack" - ], - [ - "▁Tra", - "ck" - ], - [ - "▁", - "Track" - ], - [ - "бо", - "м" - ], - [ - "б", - "ом" - ], - [ - "fa", - "ct" - ], - [ - "fac", - "t" - ], - [ - "f", - "act" - ], - [ - "ok", - "a" - ], - [ - "o", - "ka" - ], - [ - "▁g", - "ior" - ], - [ - "▁gi", - "or" - ], - [ - "▁", - "gior" - ], - [ - "▁XV", - "II" - ], - [ - "▁XVI", - "I" - ], - [ - "▁d", - "är" - ], - [ - "Si", - "te" - ], - [ - "S", - "ite" - ], - [ - "ał", - "o" - ], - [ - "a", - "ło" - ], - [ - "sk", - "á" - ], - [ - "s", - "ká" - ], - [ - "▁pix", - "els" - ], - [ - "▁pixel", - "s" - ], - [ - "vi", - "ty" - ], - [ - "v", - "ity" - ], - [ - "j", - "Query" - ], - [ - "▁sc", - "ulpt" - ], - [ - "▁c", - "argo" - ], - [ - "▁car", - "go" - ], - [ - "▁direct", - "ive" - ], - [ - "▁w", - "al" - ], - [ - "▁wa", - "l" - ], - [ - "▁", - "wal" - ], - [ - "▁c", - "onna" - ], - [ - "▁con", - "na" - ], - [ - "▁conn", - "a" - ], - [ - "▁Th", - "rough" - ], - [ - "▁э", - "том" - ], - [ - "▁это", - "м" - ], - [ - "St", - "atic" - ], - [ - "Stat", - "ic" - ], - [ - "oms", - "nitt" - ], - [ - "▁r", - "und" - ], - [ - "▁run", - "d" - ], - [ - "▁ru", - "nd" - ], - [ - "▁", - "rund" - ], - [ - "▁c", - "laimed" - ], - [ - "▁claim", - "ed" - ], - [ - "з", - "ня" - ], - [ - "sh", - "a" - ], - [ - "s", - "ha" - ], - [ - "▁r", - "ag" - ], - [ - "▁ra", - "g" - ], - [ - "▁", - "rag" - ], - [ - "cre", - "ment" - ], - [ - "cr", - "ement" - ], - [ - "▁fün", - "f" - ], - [ - "▁r", - "ival" - ], - [ - "▁riv", - "al" - ], - [ - "▁ri", - "val" - ], - [ - "▁", - "rival" - ], - [ - "ri", - "n" - ], - [ - "r", - "in" - ], - [ - "sl", - "ash" - ], - [ - "▁th", - "irty" - ], - [ - "s", - "leep" - ], - [ - "оло", - "ги" - ], - [ - "о", - "логи" - ], - [ - "S", - "M" - ], - [ - "ga", - "te" - ], - [ - "gat", - "e" - ], - [ - "g", - "ate" - ], - [ - "iz", - "ations" - ], - [ - "ization", - "s" - ], - [ - "vi", - "k" - ], - [ - "v", - "ik" - ], - [ - "▁b", - "less" - ], - [ - "▁bl", - "ess" - ], - [ - "▁ble", - "ss" - ], - [ - "▁Ill", - "inois" - ], - [ - "▁T", - "E" - ], - [ - "▁", - "TE" - ], - [ - "ut", - "ing" - ], - [ - "uti", - "ng" - ], - [ - "u", - "ting" - ], - [ - "▁sol", - "ving" - ], - [ - "GE", - "R" - ], - [ - "G", - "ER" - ], - [ - "▁X", - "IV" - ], - [ - "▁XI", - "V" - ], - [ - "▁Ind", - "ians" - ], - [ - "▁India", - "ns" - ], - [ - "▁Indian", - "s" - ], - [ - "ex", - "press" - ], - [ - "exp", - "ress" - ], - [ - "expr", - "ess" - ], - [ - "▁H", - "eil" - ], - [ - "▁He", - "il" - ], - [ - "▁mu", - "jer" - ], - [ - "▁invån", - "are" - ], - [ - "']", - ");" - ], - [ - "'])", - ";" - ], - [ - "'", - "]);" - ], - [ - "▁a", - "ur" - ], - [ - "▁au", - "r" - ], - [ - "▁", - "aur" - ], - [ - "bo", - "ost" - ], - [ - "G", - "O" - ], - [ - "▁n", - "in" - ], - [ - "▁ni", - "n" - ], - [ - "to", - "k" - ], - [ - "t", - "ok" - ], - [ - "go", - "d" - ], - [ - "g", - "od" - ], - [ - "ot", - "er" - ], - [ - "ote", - "r" - ], - [ - "o", - "ter" - ], - [ - ")$", - "$" - ], - [ - ")", - "$$" - ], - [ - "▁desc", - "end" - ], - [ - "р", - "ю" - ], - [ - "▁L", - "anguage" - ], - [ - "▁", - "Language" - ], - [ - "▁d", - "iver" - ], - [ - "▁di", - "ver" - ], - [ - "▁div", - "er" - ], - [ - "▁Ass", - "uming" - ], - [ - "▁fre", - "quent" - ], - [ - "▁frequ", - "ent" - ], - [ - "ч", - "ні" - ], - [ - "▁Bi", - "ography" - ], - [ - ",", - "[" - ], - [ - "ur", - "m" - ], - [ - "u", - "rm" - ], - [ - "▁walk", - "ed" - ], - [ - "▁wal", - "ked" - ], - [ - "▁feder", - "al" - ], - [ - "▁fed", - "eral" - ], - [ - "▁Mich", - "igan" - ], - [ - "▁fact", - "s" - ], - [ - "▁fac", - "ts" - ], - [ - "▁In", - "tegr" - ], - [ - "▁Int", - "egr" - ], - [ - "▁", - "Integr" - ], - [ - "LE", - "S" - ], - [ - "L", - "ES" - ], - [ - "▁A", - "lan" - ], - [ - "▁Al", - "an" - ], - [ - "▁c", - "oup" - ], - [ - "▁co", - "up" - ], - [ - "▁cou", - "p" - ], - [ - "Be", - "r" - ], - [ - "B", - "er" - ], - [ - "▁p", - "articles" - ], - [ - "▁part", - "icles" - ], - [ - "▁partic", - "les" - ], - [ - "▁particle", - "s" - ], - [ - "▁parti", - "cles" - ], - [ - "ћ", - "е" - ], - [ - "Infl", - "ater" - ], - [ - "+", - "(" - ], - [ - "Bo", - "und" - ], - [ - "B", - "ound" - ], - [ - "▁S", - "ü" - ], - [ - "A", - "udio" - ], - [ - "cite", - "t" - ], - [ - "cit", - "et" - ], - [ - "c", - "itet" - ], - [ - "ye", - "ct" - ], - [ - "y", - "ect" - ], - [ - "▁n", - "r" - ], - [ - "▁", - "nr" - ], - [ - "x", - "e" - ], - [ - "▁B", - "run" - ], - [ - "▁Br", - "un" - ], - [ - "▁Bru", - "n" - ], - [ - "▁_", - "," - ], - [ - "▁", - "_," - ], - [ - "av", - "or" - ], - [ - "avo", - "r" - ], - [ - "a", - "vor" - ], - [ - "▁dis", - "cipl" - ], - [ - "al", - "m" - ], - [ - "a", - "lm" - ], - [ - "▁но", - "ября" - ], - [ - "▁S", - "SL" - ], - [ - "▁SS", - "L" - ], - [ - "▁", - "SSL" - ], - [ - "▁Ka", - "iser" - ], - [ - "▁Kais", - "er" - ], - [ - "▁re", - "cher" - ], - [ - "▁rec", - "her" - ], - [ - "yg", - "on" - ], - [ - "y", - "gon" - ], - [ - "▁regard", - "less" - ], - [ - "▁config", - "ur" - ], - [ - "▁un", - "necess" - ], - [ - "▁Cl", - "ark" - ], - [ - "▁Clar", - "k" - ], - [ - "PH", - "P" - ], - [ - "P", - "HP" - ], - [ - "▁F", - "ALSE" - ], - [ - "▁", - "FALSE" - ], - [ - "▁p", - "ad" - ], - [ - "▁pa", - "d" - ], - [ - "▁", - "pad" - ], - [ - "$", - "}" - ], - [ - "▁v", - "alu" - ], - [ - "▁val", - "u" - ], - [ - "▁va", - "lu" - ], - [ - "▁", - "valu" - ], - [ - "▁dise", - "ase" - ], - [ - "▁ma", - "ior" - ], - [ - "▁mai", - "or" - ], - [ - "▁h", - "ommes" - ], - [ - "▁hom", - "mes" - ], - [ - "▁homme", - "s" - ], - [ - "▁Ed", - "ition" - ], - [ - "▁Edit", - "ion" - ], - [ - "sl", - "ant" - ], - [ - "s", - "lant" - ], - [ - "▁en", - "ding" - ], - [ - "▁end", - "ing" - ], - [ - "▁", - "ending" - ], - [ - "▁sett", - "led" - ], - [ - "ur", - "us" - ], - [ - "uru", - "s" - ], - [ - "u", - "rus" - ], - [ - "he", - "d" - ], - [ - "h", - "ed" - ], - [ - "Pat", - "tern" - ], - [ - "▁го", - "дина" - ], - [ - "▁годи", - "на" - ], - [ - "▁Phil", - "adel" - ], - [ - "tikz", - "picture" - ], - [ - "▁co", - "al" - ], - [ - "▁s", - "ede" - ], - [ - "▁se", - "de" - ], - [ - "▁sed", - "e" - ], - [ - "▁satisf", - "ies" - ], - [ - "▁t", - "rim" - ], - [ - "▁tr", - "im" - ], - [ - "▁tri", - "m" - ], - [ - "▁", - "trim" - ], - [ - "▁b", - "at" - ], - [ - "▁ba", - "t" - ], - [ - "▁", - "bat" - ], - [ - "▁améric", - "ain" - ], - [ - "▁lug", - "lio" - ], - [ - "▁по", - "ча" - ], - [ - "▁поч", - "а" - ], - [ - "ff", - "ff" - ], - [ - "fff", - "f" - ], - [ - "f", - "fff" - ], - [ - "▁T", - "arget" - ], - [ - "▁Tar", - "get" - ], - [ - "▁", - "Target" - ], - [ - "gener", - "ate" - ], - [ - "▁Z", - "ie" - ], - [ - "ți", - "a" - ], - [ - "ț", - "ia" - ], - [ - "▁g", - "ard" - ], - [ - "▁gar", - "d" - ], - [ - "▁ga", - "rd" - ], - [ - "▁work", - "ers" - ], - [ - "▁worker", - "s" - ], - [ - "▁J", - "ob" - ], - [ - "▁Jo", - "b" - ], - [ - "▁", - "Job" - ], - [ - "▁ur", - "ban" - ], - [ - "▁urb", - "an" - ], - [ - "▁", - "urban" - ], - [ - "ah", - "len" - ], - [ - "ahl", - "en" - ], - [ - "a", - "hlen" - ], - [ - "▁Build", - "ing" - ], - [ - "▁n", - "eu" - ], - [ - "▁ne", - "u" - ], - [ - "▁ch", - "ron" - ], - [ - "▁chr", - "on" - ], - [ - "▁", - "chron" - ], - [ - "▁Ear", - "l" - ], - [ - "gr", - "o" - ], - [ - "g", - "ro" - ], - [ - "US", - "E" - ], - [ - "U", - "SE" - ], - [ - "▁X", - "II" - ], - [ - "▁XI", - "I" - ], - [ - "▁we", - "alth" - ], - [ - "▁", - "wealth" - ], - [ - "in", - "ae" - ], - [ - "ina", - "e" - ], - [ - "▁Б", - "ра" - ], - [ - "▁li", - "bert" - ], - [ - "▁lib", - "ert" - ], - [ - "▁liber", - "t" - ], - [ - "ir", - "os" - ], - [ - "iro", - "s" - ], - [ - "i", - "ros" - ], - [ - ":", - "$" - ], - [ - "le", - "e" - ], - [ - "l", - "ee" - ], - [ - "ie", - "ves" - ], - [ - "ieve", - "s" - ], - [ - "iev", - "es" - ], - [ - "▁Just", - "ice" - ], - [ - "▁o", - "il" - ], - [ - "▁Ath", - "let" - ], - [ - "▁c", - "lo" - ], - [ - "▁cl", - "o" - ], - [ - "▁", - "clo" - ], - [ - "Sc", - "ale" - ], - [ - "Scal", - "e" - ], - [ - "▁l", - "ips" - ], - [ - "▁li", - "ps" - ], - [ - "▁lip", - "s" - ], - [ - "▁a", - "pril" - ], - [ - "▁ap", - "ril" - ], - [ - "▁apr", - "il" - ], - [ - "▁im", - "pression" - ], - [ - "▁imp", - "ression" - ], - [ - "▁impr", - "ession" - ], - [ - "▁impress", - "ion" - ], - [ - "▁per", - "ce" - ], - [ - "▁уча", - "сти" - ], - [ - "▁участ", - "и" - ], - [ - "vi", - "l" - ], - [ - "v", - "il" - ], - [ - "éc", - "h" - ], - [ - "é", - "ch" - ], - [ - "▁e", - "quality" - ], - [ - "▁equ", - "ality" - ], - [ - "▁equal", - "ity" - ], - [ - "▁", - "equality" - ], - [ - "▁м", - "ет" - ], - [ - "▁ме", - "т" - ], - [ - "▁", - "мет" - ], - [ - "▁an", - "notation" - ], - [ - "▁annot", - "ation" - ], - [ - "▁", - "annotation" - ], - [ - "er", - "nal" - ], - [ - "ern", - "al" - ], - [ - "erna", - "l" - ], - [ - "▁M", - "ach" - ], - [ - "▁Ma", - "ch" - ], - [ - "▁Mac", - "h" - ], - [ - "▁int", - "itul" - ], - [ - "pro", - "blem" - ], - [ - "prob", - "lem" - ], - [ - "ющи", - "х" - ], - [ - "ю", - "щих" - ], - [ - "op", - "lus" - ], - [ - "o", - "plus" - ], - [ - "▁thous", - "ands" - ], - [ - "▁thousand", - "s" - ], - [ - "▁calcul", - "ations" - ], - [ - "▁calculation", - "s" - ], - [ - "▁calc", - "ulations" - ], - [ - "um", - "ps" - ], - [ - "ump", - "s" - ], - [ - "▁tri", - "angle" - ], - [ - "▁", - "triangle" - ], - [ - "ph", - "al" - ], - [ - "pha", - "l" - ], - [ - "p", - "hal" - ], - [ - "▁D", - "orf" - ], - [ - "▁Do", - "rf" - ], - [ - "▁Dor", - "f" - ], - [ - "▁doll", - "ars" - ], - [ - "▁d", - "enen" - ], - [ - "▁de", - "nen" - ], - [ - "▁den", - "en" - ], - [ - "l", - "ès" - ], - [ - "ol", - "id" - ], - [ - "oli", - "d" - ], - [ - "▁Result", - "s" - ], - [ - "▁", - "Results" - ], - [ - "▁Stad", - "ium" - ], - [ - "▁D", - "esp" - ], - [ - "▁De", - "sp" - ], - [ - "▁Des", - "p" - ], - [ - "▁E", - "isen" - ], - [ - "im", - "ir" - ], - [ - "imi", - "r" - ], - [ - "i", - "mir" - ], - [ - "▁s", - "otto" - ], - [ - "▁so", - "tto" - ], - [ - "▁sott", - "o" - ], - [ - "▁č", - "i" - ], - [ - "▁", - "či" - ], - [ - "at", - "able" - ], - [ - "ata", - "ble" - ], - [ - "a", - "table" - ], - [ - "or", - "um" - ], - [ - "oru", - "m" - ], - [ - "o", - "rum" - ], - [ - "▁conver", - "gence" - ], - [ - "▁je", - "une" - ], - [ - "▁jeu", - "ne" - ], - [ - "ok", - "ing" - ], - [ - "oki", - "ng" - ], - [ - "o", - "king" - ], - [ - "▁жи", - "во" - ], - [ - "ain", - "ing" - ], - [ - "ai", - "ning" - ], - [ - "a", - "ining" - ], - [ - "po", - "inter" - ], - [ - "point", - "er" - ], - [ - "cul", - "o" - ], - [ - "cu", - "lo" - ], - [ - "c", - "ulo" - ], - [ - "▁js", - "ou" - ], - [ - "▁g", - "rab" - ], - [ - "▁gr", - "ab" - ], - [ - "▁gra", - "b" - ], - [ - "ak", - "te" - ], - [ - "akt", - "e" - ], - [ - "a", - "kte" - ], - [ - "▁ho", - "ping" - ], - [ - "▁hop", - "ing" - ], - [ - "▁M", - "ak" - ], - [ - "▁Ma", - "k" - ], - [ - "▁s", - "ag" - ], - [ - "▁sa", - "g" - ], - [ - "origin", - "e" - ], - [ - "orig", - "ine" - ], - [ - "▁по", - "след" - ], - [ - "▁после", - "д" - ], - [ - "▁V", - "eg" - ], - [ - "▁Ve", - "g" - ], - [ - "▁the", - "oret" - ], - [ - "▁T", - "ru" - ], - [ - "▁Tr", - "u" - ], - [ - "ne", - "ment" - ], - [ - "nem", - "ent" - ], - [ - "n", - "ement" - ], - [ - "▁f", - "aces" - ], - [ - "▁fa", - "ces" - ], - [ - "▁face", - "s" - ], - [ - "▁fac", - "es" - ], - [ - "▁", - "faces" - ], - [ - "H", - "or" - ], - [ - "Jo", - "in" - ], - [ - "J", - "oin" - ], - [ - "ar", - "el" - ], - [ - "are", - "l" - ], - [ - "a", - "rel" - ], - [ - "▁о", - "коло" - ], - [ - "▁ок", - "оло" - ], - [ - "How", - "ever" - ], - [ - "▁c", - "atal" - ], - [ - "▁ca", - "tal" - ], - [ - "▁cat", - "al" - ], - [ - "▁", - "catal" - ], - [ - "bo", - "urg" - ], - [ - "bour", - "g" - ], - [ - "b", - "ourg" - ], - [ - "▁mysql", - "i" - ], - [ - "▁mysq", - "li" - ], - [ - "▁", - "mysqli" - ], - [ - "ac", - "ions" - ], - [ - "acion", - "s" - ], - [ - "aci", - "ons" - ], - [ - "▁Init", - "ial" - ], - [ - "▁", - "Initial" - ], - [ - "▁r", - "ain" - ], - [ - "▁ra", - "in" - ], - [ - "▁", - "rain" - ], - [ - "it", - "ure" - ], - [ - "itu", - "re" - ], - [ - "▁Sci", - "ences" - ], - [ - "▁Science", - "s" - ], - [ - "▁Kre", - "is" - ], - [ - "._", - "_" - ], - [ - ".", - "__" - ], - [ - "▁cin", - "q" - ], - [ - "▁A", - "uß" - ], - [ - "▁Au", - "ß" - ], - [ - "ith", - "met" - ], - [ - "it", - "ors" - ], - [ - "ito", - "rs" - ], - [ - "itor", - "s" - ], - [ - "am", - "azon" - ], - [ - "ama", - "zon" - ], - [ - "▁g", - "ap" - ], - [ - "▁ga", - "p" - ], - [ - "▁ign", - "ored" - ], - [ - "▁ignore", - "d" - ], - [ - "▁ignor", - "ed" - ], - [ - "ad", - "v" - ], - [ - "ко", - "ї" - ], - [ - "▁ча", - "сть" - ], - [ - "▁час", - "ть" - ], - [ - "▁част", - "ь" - ], - [ - "▁cor", - "por" - ], - [ - "▁corpo", - "r" - ], - [ - "це", - "р" - ], - [ - "ц", - "ер" - ], - [ - "▁cr", - "ime" - ], - [ - "▁cri", - "me" - ], - [ - "▁crim", - "e" - ], - [ - "uo", - "us" - ], - [ - "u", - "ous" - ], - [ - "▁на", - "лази" - ], - [ - "Data", - "Frame" - ], - [ - "во", - "ди" - ], - [ - "вод", - "и" - ], - [ - "Ig", - "n" - ], - [ - "I", - "gn" - ], - [ - "▁Lin", - "coln" - ], - [ - "▁me", - "nos" - ], - [ - "▁men", - "os" - ], - [ - "▁Lu", - "ft" - ], - [ - "▁L", - "ind" - ], - [ - "▁Li", - "nd" - ], - [ - "▁Lin", - "d" - ], - [ - "▁C", - "ook" - ], - [ - "▁Co", - "ok" - ], - [ - "▁", - "Cook" - ], - [ - "▁material", - "s" - ], - [ - "ap", - "ped" - ], - [ - "app", - "ed" - ], - [ - "appe", - "d" - ], - [ - "a", - "pped" - ], - [ - "ign", - "ore" - ], - [ - "▁от", - "кры" - ], - [ - "fr", - "ied" - ], - [ - "fri", - "ed" - ], - [ - "f", - "ried" - ], - [ - "▁gouvern", - "ement" - ], - [ - "▁f", - "ired" - ], - [ - "▁fire", - "d" - ], - [ - "▁fi", - "red" - ], - [ - "▁fir", - "ed" - ], - [ - "▁screen", - "shot" - ], - [ - "▁screens", - "hot" - ], - [ - "се", - "н" - ], - [ - "с", - "ен" - ], - [ - "▁[", - "(" - ], - [ - "▁", - "[(" - ], - [ - "▁органи", - "за" - ], - [ - "Graph", - "ics" - ], - [ - "▁про", - "ти" - ], - [ - "▁p", - "hen" - ], - [ - "▁ph", - "en" - ], - [ - "▁", - "phen" - ], - [ - "cr", - "aft" - ], - [ - "cra", - "ft" - ], - [ - "c", - "raft" - ], - [ - "▁b", - "rain" - ], - [ - "▁br", - "ain" - ], - [ - "▁bra", - "in" - ], - [ - "▁C", - "omo" - ], - [ - "▁Com", - "o" - ], - [ - "▁Co", - "mo" - ], - [ - "▁Every", - "thing" - ], - [ - "an", - "es" - ], - [ - "ane", - "s" - ], - [ - "a", - "nes" - ], - [ - "IG", - "N" - ], - [ - "I", - "GN" - ], - [ - "▁n", - "ederbörd" - ], - [ - "▁", - "nederbörd" - ], - [ - "▁For", - "est" - ], - [ - "▁Fore", - "st" - ], - [ - "▁Fo", - "rest" - ], - [ - "za", - "hl" - ], - [ - "z", - "ahl" - ], - [ - "▁Am", - "ong" - ], - [ - "Q", - "t" - ], - [ - "▁to", - "gg" - ], - [ - "▁tog", - "g" - ], - [ - "▁vari", - "ant" - ], - [ - "▁", - "variant" - ], - [ - "▁h", - "ill" - ], - [ - "▁hi", - "ll" - ], - [ - "▁", - "hill" - ], - [ - "пи", - "си" - ], - [ - "пис", - "и" - ], - [ - "col", - "on" - ], - [ - "co", - "lon" - ], - [ - "colo", - "n" - ], - [ - "▁dic", - "embre" - ], - [ - "го", - "р" - ], - [ - "г", - "ор" - ], - [ - "▁W", - "ind" - ], - [ - "▁Win", - "d" - ], - [ - "▁Wi", - "nd" - ], - [ - "ünst", - "ler" - ], - [ - "▁=", - "\\" - ], - [ - "▁", - "=\\" - ], - [ - "sa", - "ved" - ], - [ - "save", - "d" - ], - [ - "s", - "aved" - ], - [ - "▁n", - "ej" - ], - [ - "▁ne", - "j" - ], - [ - "▁", - "nej" - ], - [ - "un", - "te" - ], - [ - "unt", - "e" - ], - [ - "ut", - "to" - ], - [ - "utt", - "o" - ], - [ - "u", - "tto" - ], - [ - "▁rec", - "ens" - ], - [ - "▁rece", - "ns" - ], - [ - "▁s", - "ick" - ], - [ - "▁si", - "ck" - ], - [ - "▁sic", - "k" - ], - [ - "▁d", - "esen" - ], - [ - "▁de", - "sen" - ], - [ - "▁des", - "en" - ], - [ - "US", - "T" - ], - [ - "U", - "ST" - ], - [ - "▁wor", - "st" - ], - [ - "▁An", - "gel" - ], - [ - "▁Ang", - "el" - ], - [ - "od", - "ox" - ], - [ - "odo", - "x" - ], - [ - "▁Prov", - "ince" - ], - [ - "▁Provin", - "ce" - ], - [ - "▁M", - "az" - ], - [ - "▁Ma", - "z" - ], - [ - "▁agre", - "ement" - ], - [ - "▁agree", - "ment" - ], - [ - "▁B", - "ass" - ], - [ - "▁Bas", - "s" - ], - [ - "▁Ba", - "ss" - ], - [ - "▁seg", - "unda" - ], - [ - "on", - "ces" - ], - [ - "once", - "s" - ], - [ - "onc", - "es" - ], - [ - "▁Lin", - "ki" - ], - [ - "▁Link", - "i" - ], - [ - "▁C", - "L" - ], - [ - "▁", - "CL" - ], - [ - "▁j", - "á" - ], - [ - "it", - "ement" - ], - [ - "ite", - "ment" - ], - [ - "item", - "ent" - ], - [ - "▁á", - "rea" - ], - [ - "▁ár", - "ea" - ], - [ - "▁scal", - "ar" - ], - [ - "▁scala", - "r" - ], - [ - "▁Р", - "ес" - ], - [ - "▁Ре", - "с" - ], - [ - "aw", - "t" - ], - [ - "a", - "wt" - ], - [ - "si", - "eme" - ], - [ - "▁j", - "uni" - ], - [ - "▁ju", - "ni" - ], - [ - "▁jun", - "i" - ], - [ - "▁худо", - "ж" - ], - [ - "ik", - "us" - ], - [ - "iku", - "s" - ], - [ - "▁l", - "id" - ], - [ - "▁li", - "d" - ], - [ - "pp", - "el" - ], - [ - "ppe", - "l" - ], - [ - "p", - "pel" - ], - [ - "av", - "i" - ], - [ - "a", - "vi" - ], - [ - "▁bal", - "ance" - ], - [ - "ip", - "ping" - ], - [ - "ipp", - "ing" - ], - [ - "ippi", - "ng" - ], - [ - "i", - "pping" - ], - [ - "cuss", - "ion" - ], - [ - "че", - "ских" - ], - [ - "(\"", - "." - ], - [ - "(", - "\"." - ], - [ - "Al", - "so" - ], - [ - "▁w", - "his" - ], - [ - "▁wh", - "is" - ], - [ - "HO", - "ME" - ], - [ - "▁b", - "rown" - ], - [ - "▁br", - "own" - ], - [ - "▁bro", - "wn" - ], - [ - "▁brow", - "n" - ], - [ - "▁d", - "ía" - ], - [ - "▁dí", - "a" - ], - [ - "▁pu", - "ò" - ], - [ - "plot", - "lib" - ], - [ - "▁Jahrhundert", - "s" - ], - [ - "D", - "K" - ], - [ - "▁an", - "chor" - ], - [ - "▁anc", - "hor" - ], - [ - "▁anch", - "or" - ], - [ - "▁", - "anchor" - ], - [ - "..", - ".]" - ], - [ - "...", - "]" - ], - [ - "▁Aust", - "ria" - ], - [ - "▁m", - "arca" - ], - [ - "▁mar", - "ca" - ], - [ - "▁marc", - "a" - ], - [ - "▁g", - "ez" - ], - [ - "▁ge", - "z" - ], - [ - "ious", - "ly" - ], - [ - "i", - "ously" - ], - [ - "▁l", - "azy" - ], - [ - "▁la", - "zy" - ], - [ - "x", - "a" - ], - [ - "▁Ch", - "annel" - ], - [ - "▁Chan", - "nel" - ], - [ - "▁", - "Channel" - ], - [ - "▁ne", - "uen" - ], - [ - "▁neue", - "n" - ], - [ - "▁neu", - "en" - ], - [ - "da", - "s" - ], - [ - "d", - "as" - ], - [ - "▁search", - "ed" - ], - [ - "▁sta", - "at" - ], - [ - "▁", - "staat" - ], - [ - "▁Та", - "к" - ], - [ - "▁Jo", - "sef" - ], - [ - "▁Jose", - "f" - ], - [ - "▁Jos", - "ef" - ], - [ - "▁S", - "her" - ], - [ - "▁Sh", - "er" - ], - [ - "▁She", - "r" - ], - [ - "po", - "is" - ], - [ - "p", - "ois" - ], - [ - "▁e", - "nem" - ], - [ - "▁en", - "em" - ], - [ - "▁access", - "ing" - ], - [ - "▁не", - "ко" - ], - [ - "▁fur", - "ono" - ], - [ - "▁pse", - "udo" - ], - [ - "▁pseud", - "o" - ], - [ - "?", - ">" - ], - [ - "▁estado", - "un" - ], - [ - "▁estad", - "oun" - ], - [ - "▁Ви", - "ди" - ], - [ - "▁mot", - "iv" - ], - [ - "▁re", - "call" - ], - [ - "▁rec", - "all" - ], - [ - "is", - "son" - ], - [ - "iss", - "on" - ], - [ - "i", - "sson" - ], - [ - "ó", - "b" - ], - [ - ")-", - "-" - ], - [ - ")", - "--" - ], - [ - "▁E", - "rz" - ], - [ - "▁Er", - "z" - ], - [ - "▁са", - "вез" - ], - [ - "Dir", - "ect" - ], - [ - "Di", - "rect" - ], - [ - "D", - "irect" - ], - [ - "со", - "б" - ], - [ - "с", - "об" - ], - [ - "▁s", - "ho" - ], - [ - "▁sh", - "o" - ], - [ - "v", - "ölker" - ], - [ - "A", - "p" - ], - [ - "ge", - "ns" - ], - [ - "gen", - "s" - ], - [ - "g", - "ens" - ], - [ - "ниш", - "тво" - ], - [ - "▁Am", - "sterdam" - ], - [ - "us", - "k" - ], - [ - "u", - "sk" - ], - [ - "п", - "ло" - ], - [ - "▁sim", - "ulation" - ], - [ - "▁B", - "C" - ], - [ - "▁", - "BC" - ], - [ - "▁W", - "oj" - ], - [ - "▁Wo", - "j" - ], - [ - "au", - "tom" - ], - [ - "aut", - "om" - ], - [ - "auto", - "m" - ], - [ - "Al", - "ex" - ], - [ - "A", - "lex" - ], - [ - "▁econom", - "ic" - ], - [ - "▁econ", - "omic" - ], - [ - "го", - "м" - ], - [ - "г", - "ом" - ], - [ - "ik", - "ai" - ], - [ - "ika", - "i" - ], - [ - "▁a", - "ltre" - ], - [ - "▁al", - "tre" - ], - [ - "▁alt", - "re" - ], - [ - "▁'", - "-" - ], - [ - "▁", - "'-" - ], - [ - "▁W", - "eg" - ], - [ - "▁We", - "g" - ], - [ - "Not", - "Found" - ], - [ - "й", - "ской" - ], - [ - "▁convert", - "ing" - ], - [ - "▁conver", - "ting" - ], - [ - "ph", - "abet" - ], - [ - "pha", - "bet" - ], - [ - "at", - "rice" - ], - [ - "atr", - "ice" - ], - [ - "atri", - "ce" - ], - [ - "bour", - "ne" - ], - [ - "al", - "om" - ], - [ - "alo", - "m" - ], - [ - "▁comp", - "aring" - ], - [ - "▁compar", - "ing" - ], - [ - "▁Z", - "o" - ], - [ - "▁f", - "la" - ], - [ - "▁fl", - "a" - ], - [ - "ва", - "я" - ], - [ - "▁en", - "tra" - ], - [ - "▁ent", - "ra" - ], - [ - "▁entr", - "a" - ], - [ - "▁char", - "set" - ], - [ - "▁chars", - "et" - ], - [ - "develop", - "ers" - ], - [ - "developer", - "s" - ], - [ - "íst", - "ica" - ], - [ - "}", - ">" - ], - [ - "▁J", - "azz" - ], - [ - "▁Ja", - "zz" - ], - [ - "▁How", - "ard" - ], - [ - "▁Ho", - "ward" - ], - [ - "ш", - "та" - ], - [ - "▁cl", - "one" - ], - [ - "▁clo", - "ne" - ], - [ - "▁", - "clone" - ], - [ - "do", - "or" - ], - [ - "d", - "oor" - ], - [ - "▁P", - "in" - ], - [ - "▁Pi", - "n" - ], - [ - "**", - "*" - ], - [ - "*", - "**" - ], - [ - "▁sil", - "ent" - ], - [ - "ec", - "ycle" - ], - [ - "e", - "cycle" - ], - [ - "is", - "ce" - ], - [ - "isc", - "e" - ], - [ - "i", - "sce" - ], - [ - "▁m", - "ud" - ], - [ - "▁mu", - "d" - ], - [ - "▁Dis", - "play" - ], - [ - "▁", - "Display" - ], - [ - "▁l", - "ip" - ], - [ - "▁li", - "p" - ], - [ - "▁", - "lip" - ], - [ - "▁исполь", - "зова" - ], - [ - "▁character", - "istic" - ], - [ - "▁s", - "b" - ], - [ - "▁", - "sb" - ], - [ - "fire", - "base" - ], - [ - "▁B", - "ew" - ], - [ - "▁Be", - "w" - ], - [ - "Cal", - "endar" - ], - [ - "▁u", - "so" - ], - [ - "▁us", - "o" - ], - [ - "▁", - "uso" - ], - [ - "ès", - "e" - ], - [ - "è", - "se" - ], - [ - "▁R", - "at" - ], - [ - "▁Ra", - "t" - ], - [ - "▁es", - "per" - ], - [ - "▁espe", - "r" - ], - [ - "▁esp", - "er" - ], - [ - "▁", - "esper" - ], - [ - "▁throw", - "ing" - ], - [ - "▁thro", - "wing" - ], - [ - "▁ro", - "dz" - ], - [ - "▁rod", - "z" - ], - [ - "▁y", - "ards" - ], - [ - "▁yard", - "s" - ], - [ - "▁g", - "rass" - ], - [ - "▁gr", - "ass" - ], - [ - "▁gra", - "ss" - ], - [ - "▁mar", - "ker" - ], - [ - "▁mark", - "er" - ], - [ - "▁", - "marker" - ], - [ - "▁K", - "os" - ], - [ - "▁Ko", - "s" - ], - [ - "Th", - "eta" - ], - [ - "The", - "ta" - ], - [ - "▁organ", - "is" - ], - [ - "ker", - "nel" - ], - [ - "kern", - "el" - ], - [ - "k", - "ernel" - ], - [ - "▁person", - "as" - ], - [ - "▁pers", - "onas" - ], - [ - "▁persona", - "s" - ], - [ - "ke", - "ep" - ], - [ - "kee", - "p" - ], - [ - "▁exc", - "laimed" - ], - [ - "os", - "lav" - ], - [ - "▁Ent", - "ertain" - ], - [ - "▁Enter", - "tain" - ], - [ - "не", - "р" - ], - [ - "н", - "ер" - ], - [ - "▁in", - "won" - ], - [ - "▁R", - "and" - ], - [ - "▁Ra", - "nd" - ], - [ - "▁Ran", - "d" - ], - [ - "red", - "uce" - ], - [ - "redu", - "ce" - ], - [ - "fa", - "c" - ], - [ - "f", - "ac" - ], - [ - "ex", - "pression" - ], - [ - "exp", - "ression" - ], - [ - "expr", - "ession" - ], - [ - "express", - "ion" - ], - [ - "y", - "j" - ], - [ - "▁differ", - "enti" - ], - [ - "▁different", - "i" - ], - [ - "ag", - "lia" - ], - [ - "agli", - "a" - ], - [ - "▁tem", - "plates" - ], - [ - "▁template", - "s" - ], - [ - "▁", - "templates" - ], - [ - "▁m", - "ű" - ], - [ - "▁p", - "rv" - ], - [ - "▁pr", - "v" - ], - [ - "▁m", - "ois" - ], - [ - "▁mo", - "is" - ], - [ - "▁moi", - "s" - ], - [ - "▁gew", - "ann" - ], - [ - "▁бу", - "ла" - ], - [ - "bib", - "li" - ], - [ - "b", - "ibli" - ], - [ - "de", - "mo" - ], - [ - "dem", - "o" - ], - [ - "d", - "emo" - ], - [ - "▁And", - "erson" - ], - [ - "▁Anders", - "on" - ], - [ - "▁ре", - "д" - ], - [ - "▁", - "ред" - ], - [ - "▁por", - "que" - ], - [ - "▁P", - "ologne" - ], - [ - "▁Pol", - "ogne" - ], - [ - "▁t", - "rip" - ], - [ - "▁tr", - "ip" - ], - [ - "▁tri", - "p" - ], - [ - "▁exem", - "ple" - ], - [ - "▁exempl", - "e" - ], - [ - "▁Intern", - "acional" - ], - [ - "▁ка", - "о" - ], - [ - "In", - "sert" - ], - [ - "gen", - "eral" - ], - [ - "gener", - "al" - ], - [ - "SE", - "SSION" - ], - [ - "ber", - "ga" - ], - [ - "berg", - "a" - ], - [ - "hä", - "lt" - ], - [ - "h", - "ält" - ], - [ - "un", - "as" - ], - [ - "una", - "s" - ], - [ - "u", - "nas" - ], - [ - "ми", - "ра" - ], - [ - "мир", - "а" - ], - [ - "▁yield", - "s" - ], - [ - "map", - "sto" - ], - [ - "maps", - "to" - ], - [ - "sp", - "ot" - ], - [ - "s", - "pot" - ], - [ - "▁+", - "\\" - ], - [ - "▁", - "+\\" - ], - [ - "лл", - "а" - ], - [ - "л", - "ла" - ], - [ - "▁precis", - "ely" - ], - [ - "▁precise", - "ly" - ], - [ - "▁ч", - "лен" - ], - [ - "sh", - "adow" - ], - [ - "Ar", - "e" - ], - [ - "A", - "re" - ], - [ - "un", - "al" - ], - [ - "una", - "l" - ], - [ - "u", - "nal" - ], - [ - "▁dis", - "par" - ], - [ - "▁disp", - "ar" - ], - [ - "▁tít", - "ulo" - ], - [ - "ne", - "st" - ], - [ - "nes", - "t" - ], - [ - "n", - "est" - ], - [ - "▁L", - "ow" - ], - [ - "▁Lo", - "w" - ], - [ - "▁p", - "rot" - ], - [ - "▁pro", - "t" - ], - [ - "▁pr", - "ot" - ], - [ - "▁C", - "osta" - ], - [ - "▁Co", - "sta" - ], - [ - "▁Cost", - "a" - ], - [ - "▁Cos", - "ta" - ], - [ - "name", - "d" - ], - [ - "na", - "med" - ], - [ - "nam", - "ed" - ], - [ - "n", - "amed" - ], - [ - "▁g", - "ained" - ], - [ - "▁ga", - "ined" - ], - [ - "▁gain", - "ed" - ], - [ - "les", - "ia" - ], - [ - "l", - "esia" - ], - [ - "▁admin", - "istration" - ], - [ - "▁administr", - "ation" - ], - [ - "Im", - "port" - ], - [ - "Imp", - "ort" - ], - [ - "br", - "anch" - ], - [ - "b", - "ranch" - ], - [ - "▁sym", - "path" - ], - [ - "vo", - "j" - ], - [ - "v", - "oj" - ], - [ - "▁E", - "C" - ], - [ - "▁", - "EC" - ], - [ - "▁municip", - "io" - ], - [ - "▁anim", - "ated" - ], - [ - "▁animate", - "d" - ], - [ - "▁direct", - "ories" - ], - [ - "▁director", - "ies" - ], - [ - "▁ro", - "of" - ], - [ - "zą", - "d" - ], - [ - "z", - "ąd" - ], - [ - "im", - "et" - ], - [ - "ime", - "t" - ], - [ - "i", - "met" - ], - [ - "pr", - "oto" - ], - [ - "pro", - "to" - ], - [ - "bl", - "a" - ], - [ - "b", - "la" - ], - [ - ":", - "]" - ], - [ - "ha", - "ve" - ], - [ - "hav", - "e" - ], - [ - "h", - "ave" - ], - [ - "at", - "em" - ], - [ - "ate", - "m" - ], - [ - "a", - "tem" - ], - [ - "▁n", - "s" - ], - [ - "▁", - "ns" - ], - [ - "▁s", - "ector" - ], - [ - "▁se", - "ctor" - ], - [ - "▁sec", - "tor" - ], - [ - "▁sect", - "or" - ], - [ - "th", - "ree" - ], - [ - "ow", - "ane" - ], - [ - "owa", - "ne" - ], - [ - "owan", - "e" - ], - [ - "wer", - "s" - ], - [ - "we", - "rs" - ], - [ - "w", - "ers" - ], - [ - "ов", - "их" - ], - [ - "ови", - "х" - ], - [ - "ren", - "ce" - ], - [ - "r", - "ence" - ], - [ - "▁ex", - "tr" - ], - [ - "▁ext", - "r" - ], - [ - "ig", - "ten" - ], - [ - "igt", - "en" - ], - [ - "igte", - "n" - ], - [ - "▁occ", - "ident" - ], - [ - "ț", - "ă" - ], - [ - "▁e", - "at" - ], - [ - "▁h", - "ydro" - ], - [ - "▁hy", - "dro" - ], - [ - "▁hyd", - "ro" - ], - [ - "ubern", - "etes" - ], - [ - "[", - "@" - ], - [ - "▁M", - "oon" - ], - [ - "▁Mo", - "on" - ], - [ - "▁S", - "ho" - ], - [ - "▁Sh", - "o" - ], - [ - "▁else", - "where" - ], - [ - "ül", - "ler" - ], - [ - "üll", - "er" - ], - [ - "Up", - "load" - ], - [ - "ла", - "нд" - ], - [ - "лан", - "д" - ], - [ - "л", - "анд" - ], - [ - "▁F", - "ör" - ], - [ - "w", - "issenschaft" - ], - [ - "K", - "S" - ], - [ - "▁phys", - "ics" - ], - [ - "▁", - "physics" - ], - [ - "t", - "z" - ], - [ - "▁се", - "ред" - ], - [ - "▁Ar", - "beit" - ], - [ - "▁Arbe", - "it" - ], - [ - "▁ме", - "ст" - ], - [ - "▁", - "мест" - ], - [ - "▁Geb", - "iet" - ], - [ - "▁in", - "sect" - ], - [ - "▁ins", - "ect" - ], - [ - "▁inse", - "ct" - ], - [ - "A", - "h" - ], - [ - "iz", - "ado" - ], - [ - "iza", - "do" - ], - [ - "▁tem", - "ple" - ], - [ - "▁temp", - "le" - ], - [ - "▁ann", - "ual" - ], - [ - "st", - "ad" - ], - [ - "sta", - "d" - ], - [ - "▁hab", - "itat" - ], - [ - "▁habit", - "at" - ], - [ - "▁A", - "B" - ], - [ - "▁", - "AB" - ], - [ - "wo", - "rt" - ], - [ - "wor", - "t" - ], - [ - "w", - "ort" - ], - [ - "▁re", - "pos" - ], - [ - "▁rep", - "os" - ], - [ - "▁repo", - "s" - ], - [ - "▁N", - "eu" - ], - [ - "▁Ne", - "u" - ], - [ - "▁$", - "(\"." - ], - [ - "▁$(", - "\"." - ], - [ - "▁$(\"", - "." - ], - [ - "Vor", - "lage" - ], - [ - "▁repre", - "zent" - ], - [ - "est", - "anden" - ], - [ - "In", - "tern" - ], - [ - "Int", - "ern" - ], - [ - "Inter", - "n" - ], - [ - ".", - "`" - ], - [ - "▁fa", - "iling" - ], - [ - "▁fail", - "ing" - ], - [ - "▁M", - "aterial" - ], - [ - "▁Mate", - "rial" - ], - [ - "▁", - "Material" - ], - [ - "▁effect", - "ively" - ], - [ - "▁effective", - "ly" - ], - [ - "те", - "лем" - ], - [ - "тел", - "ем" - ], - [ - "▁г", - "ла" - ], - [ - "▁", - "гла" - ], - [ - "▁na", - "hm" - ], - [ - "▁nah", - "m" - ], - [ - "▁", - "nahm" - ], - [ - "▁differ", - "ently" - ], - [ - "▁different", - "ly" - ], - [ - "ext", - "ension" - ], - [ - "▁V", - "erm" - ], - [ - "▁Ver", - "m" - ], - [ - "▁Ve", - "rm" - ], - [ - "en", - "abled" - ], - [ - "ena", - "bled" - ], - [ - "enable", - "d" - ], - [ - "con", - "figure" - ], - [ - "config", - "ure" - ], - [ - "ni", - "o" - ], - [ - "n", - "io" - ], - [ - "ci", - "ones" - ], - [ - "cio", - "nes" - ], - [ - "cion", - "es" - ], - [ - "c", - "iones" - ], - [ - "▁B", - "each" - ], - [ - "▁Be", - "ach" - ], - [ - "со", - "на" - ], - [ - "сон", - "а" - ], - [ - "с", - "она" - ], - [ - "▁copy", - "ing" - ], - [ - "▁cop", - "ying" - ], - [ - "▁у", - "країн" - ], - [ - "▁при", - "зна" - ], - [ - "▁приз", - "на" - ], - [ - "z", - "h" - ], - [ - "Des", - "ktop" - ], - [ - "▁s", - "ost" - ], - [ - "▁so", - "st" - ], - [ - "▁sub", - "sequently" - ], - [ - "▁subsequ", - "ently" - ], - [ - "▁subsequent", - "ly" - ], - [ - "▁Le", - "hr" - ], - [ - "▁", - "ó" - ], - [ - "lä", - "r" - ], - [ - "l", - "är" - ], - [ - "od", - "or" - ], - [ - "odo", - "r" - ], - [ - "o", - "dor" - ], - [ - "ph", - "on" - ], - [ - "p", - "hon" - ], - [ - "n", - "c" - ], - [ - "iter", - "ator" - ], - [ - "▁э", - "ти" - ], - [ - "▁europ", - "é" - ], - [ - "▁Tor", - "onto" - ], - [ - "ód", - "igo" - ], - [ - "▁p", - "osto" - ], - [ - "▁po", - "sto" - ], - [ - "▁pos", - "to" - ], - [ - "▁post", - "o" - ], - [ - "ff", - "e" - ], - [ - "f", - "fe" - ], - [ - "▁c", - "rew" - ], - [ - "▁cre", - "w" - ], - [ - "▁cr", - "ew" - ], - [ - "▁Sch", - "war" - ], - [ - "▁Schw", - "ar" - ], - [ - "S", - "a" - ], - [ - "squ", - "are" - ], - [ - "s", - "quare" - ], - [ - "▁be", - "side" - ], - [ - "▁bes", - "ide" - ], - [ - "▁М", - "і" - ], - [ - "▁a", - "th" - ], - [ - "▁at", - "h" - ], - [ - "▁", - "ath" - ], - [ - "▁ad", - "vent" - ], - [ - "▁adv", - "ent" - ], - [ - "c", - "ji" - ], - [ - "writ", - "ten" - ], - [ - "wr", - "itten" - ], - [ - "w", - "ritten" - ], - [ - "▁r", - "uss" - ], - [ - "▁ru", - "ss" - ], - [ - "▁rus", - "s" - ], - [ - "ro", - "st" - ], - [ - "ros", - "t" - ], - [ - "r", - "ost" - ], - [ - "H", - "I" - ], - [ - "▁d", - "ice" - ], - [ - "▁di", - "ce" - ], - [ - "▁dic", - "e" - ], - [ - "cc", - "a" - ], - [ - "c", - "ca" - ], - [ - "▁d", - "ép" - ], - [ - "▁dé", - "p" - ], - [ - "pl", - "y" - ], - [ - "p", - "ly" - ], - [ - "big", - "g" - ], - [ - "bi", - "gg" - ], - [ - "b", - "igg" - ], - [ - "zi", - "ał" - ], - [ - "zia", - "ł" - ], - [ - "z", - "iał" - ], - [ - "üt", - "t" - ], - [ - "ü", - "tt" - ], - [ - "▁о", - "дно" - ], - [ - "▁од", - "но" - ], - [ - "J", - "ECT" - ], - [ - "сь", - "кому" - ], - [ - "сько", - "му" - ], - [ - "ськ", - "ому" - ], - [ - "no", - "s" - ], - [ - "n", - "os" - ], - [ - "mo", - "ck" - ], - [ - "m", - "ock" - ], - [ - "La", - "unch" - ], - [ - "sa", - "me" - ], - [ - "sam", - "e" - ], - [ - "s", - "ame" - ], - [ - "▁j", - "obs" - ], - [ - "▁jo", - "bs" - ], - [ - "▁job", - "s" - ], - [ - "▁wide", - "ly" - ], - [ - "▁wid", - "ely" - ], - [ - "▁def", - "ines" - ], - [ - "▁define", - "s" - ], - [ - "▁defin", - "es" - ], - [ - "▁P", - "se" - ], - [ - "▁Ps", - "e" - ], - [ - "▁neigh", - "bour" - ], - [ - "▁neighb", - "our" - ], - [ - "ющи", - "е" - ], - [ - "▁cl", - "oser" - ], - [ - "▁close", - "r" - ], - [ - "▁clos", - "er" - ], - [ - "▁clo", - "ser" - ], - [ - "▁рас", - "поло" - ], - [ - "▁распо", - "ло" - ], - [ - "▁cl", - "ubs" - ], - [ - "▁club", - "s" - ], - [ - "fl", - "y" - ], - [ - "f", - "ly" - ], - [ - "ши", - "м" - ], - [ - "ш", - "им" - ], - [ - "▁suffer", - "ed" - ], - [ - "▁suff", - "ered" - ], - [ - "▁n", - "ar" - ], - [ - "▁na", - "r" - ], - [ - "▁", - "nar" - ], - [ - "▁l", - "avor" - ], - [ - "▁la", - "vor" - ], - [ - "▁lav", - "or" - ], - [ - "Ext", - "ension" - ], - [ - "ition", - "ally" - ], - [ - "itional", - "ly" - ], - [ - "▁g", - "race" - ], - [ - "▁gr", - "ace" - ], - [ - "▁gra", - "ce" - ], - [ - "▁Campe", - "onato" - ], - [ - "▁Christ", - "mas" - ], - [ - "m", - "iddle" - ], - [ - "oth", - "ek" - ], - [ - "othe", - "k" - ], - [ - "el", - "ements" - ], - [ - "element", - "s" - ], - [ - "ele", - "ments" - ], - [ - "elem", - "ents" - ], - [ - "▁son", - "dern" - ], - [ - "▁t", - "arde" - ], - [ - "▁tar", - "de" - ], - [ - "▁tard", - "e" - ], - [ - "▁perman", - "ent" - ], - [ - "▁con", - "clude" - ], - [ - "▁concl", - "ude" - ], - [ - "Se", - "g" - ], - [ - "S", - "eg" - ], - [ - "▁а", - "каде" - ], - [ - "}\"", - "," - ], - [ - "}", - "\"," - ], - [ - "▁февра", - "ля" - ], - [ - "ře", - "d" - ], - [ - "ř", - "ed" - ], - [ - "▁I", - "L" - ], - [ - "▁", - "IL" - ], - [ - "ju", - "d" - ], - [ - "j", - "ud" - ], - [ - "▁U", - "SS" - ], - [ - "▁US", - "S" - ], - [ - "▁N", - "ature" - ], - [ - "▁Natur", - "e" - ], - [ - "▁Nat", - "ure" - ], - [ - "if", - "ference" - ], - [ - "iffer", - "ence" - ], - [ - "iffe", - "rence" - ], - [ - "Serial", - "izer" - ], - [ - "▁tw", - "elve" - ], - [ - "ti", - "d" - ], - [ - "t", - "id" - ], - [ - "ми", - "я" - ], - [ - "че", - "ского" - ], - [ - "▁cal", - "endar" - ], - [ - "▁", - "calendar" - ], - [ - "con", - "cat" - ], - [ - "▁inter", - "section" - ], - [ - "▁intersect", - "ion" - ], - [ - "▁P", - "A" - ], - [ - "▁", - "PA" - ], - [ - "az", - "ure" - ], - [ - "azu", - "re" - ], - [ - "▁situ", - "ée" - ], - [ - "▁situé", - "e" - ], - [ - "▁k", - "inds" - ], - [ - "▁kind", - "s" - ], - [ - "▁kin", - "ds" - ], - [ - "▁aus", - "ge" - ], - [ - "▁r", - "ural" - ], - [ - "▁ru", - "ral" - ], - [ - "Th", - "eme" - ], - [ - "The", - "me" - ], - [ - "▁t", - "ale" - ], - [ - "▁tal", - "e" - ], - [ - "▁ta", - "le" - ], - [ - "no", - "indent" - ], - [ - "go", - "ing" - ], - [ - "r", - "x" - ], - [ - "ag", - "i" - ], - [ - "a", - "gi" - ], - [ - "wrap", - "per" - ], - [ - "wr", - "apper" - ], - [ - "w", - "rapper" - ], - [ - "▁Co", - "ast" - ], - [ - "mb", - "H" - ], - [ - "▁пере", - "д" - ], - [ - "▁пе", - "ред" - ], - [ - "sp", - "re" - ], - [ - "spr", - "e" - ], - [ - "s", - "pre" - ], - [ - "▁}", - "\\" - ], - [ - "▁", - "}\\" - ], - [ - "▁L", - "I" - ], - [ - "▁", - "LI" - ], - [ - "zn", - "am" - ], - [ - "zna", - "m" - ], - [ - "z", - "nam" - ], - [ - "it", - "led" - ], - [ - "itle", - "d" - ], - [ - "Sam", - "ple" - ], - [ - "S", - "ample" - ], - [ - "ul", - "iar" - ], - [ - "uli", - "ar" - ], - [ - "*", - "\\" - ], - [ - "▁res", - "istance" - ], - [ - "▁resist", - "ance" - ], - [ - "st", - "ock" - ], - [ - "sto", - "ck" - ], - [ - "ke", - "d" - ], - [ - "k", - "ed" - ], - [ - "▁H", - "E" - ], - [ - "▁", - "HE" - ], - [ - "▁pos", - "session" - ], - [ - "▁poss", - "ession" - ], - [ - "▁possess", - "ion" - ], - [ - "▁R", - "ing" - ], - [ - "▁Ri", - "ng" - ], - [ - "▁m", - "agyar" - ], - [ - "▁mag", - "yar" - ], - [ - "ou", - "ts" - ], - [ - "out", - "s" - ], - [ - "o", - "uts" - ], - [ - "▁Secret", - "ary" - ], - [ - "nd", - "e" - ], - [ - "n", - "de" - ], - [ - "▁W", - "ald" - ], - [ - "▁Wal", - "d" - ], - [ - "▁Wa", - "ld" - ], - [ - "-", - "(" - ], - [ - "▁I", - "SO" - ], - [ - "▁IS", - "O" - ], - [ - "▁", - "ISO" - ], - [ - "▁af", - "ternoon" - ], - [ - "ion", - "en" - ], - [ - "io", - "nen" - ], - [ - "ione", - "n" - ], - [ - "i", - "onen" - ], - [ - "▁st", - "ops" - ], - [ - "▁stop", - "s" - ], - [ - "▁sto", - "ps" - ], - [ - "▁const", - "ants" - ], - [ - "▁constant", - "s" - ], - [ - "gu", - "ard" - ], - [ - "bo", - "w" - ], - [ - "b", - "ow" - ], - [ - "▁e", - "rs" - ], - [ - "▁er", - "s" - ], - [ - "▁", - "ers" - ], - [ - "▁Fire", - "base" - ], - [ - "▁C", - "lear" - ], - [ - "▁Cl", - "ear" - ], - [ - "▁Cle", - "ar" - ], - [ - "▁", - "Clear" - ], - [ - "▁H", - "oly" - ], - [ - "▁Hol", - "y" - ], - [ - "▁Ho", - "ly" - ], - [ - "W", - "in" - ], - [ - "▁title", - "s" - ], - [ - "▁tit", - "les" - ], - [ - "▁т", - "рав" - ], - [ - "▁тра", - "в" - ], - [ - "▁cont", - "rib" - ], - [ - "▁contr", - "ib" - ], - [ - "▁", - "contrib" - ], - [ - "hä", - "ng" - ], - [ - "h", - "äng" - ], - [ - "▁phot", - "ograph" - ], - [ - "▁photo", - "graph" - ], - [ - "▁Dist", - "ribution" - ], - [ - "if", - "ts" - ], - [ - "ift", - "s" - ], - [ - "▁a", - "unque" - ], - [ - "com", - "b" - ], - [ - "co", - "mb" - ], - [ - "c", - "omb" - ], - [ - "AD", - "D" - ], - [ - "A", - "DD" - ], - [ - "▁public", - "ation" - ], - [ - "▁pub", - "lication" - ], - [ - "▁publi", - "cation" - ], - [ - "▁слу", - "ж" - ], - [ - "▁к", - "ня" - ], - [ - "▁ay", - "ant" - ], - [ - "▁re", - "store" - ], - [ - "▁r", - "estore" - ], - [ - "▁rest", - "ore" - ], - [ - "▁resto", - "re" - ], - [ - "▁bel", - "ief" - ], - [ - "▁v", - "ég" - ], - [ - "▁vé", - "g" - ], - [ - "▁ext", - "ensions" - ], - [ - "▁extension", - "s" - ], - [ - "▁extens", - "ions" - ], - [ - "▁", - "extensions" - ], - [ - "▁de", - "com" - ], - [ - "▁dec", - "om" - ], - [ - "вши", - "й" - ], - [ - "в", - "ший" - ], - [ - "W", - "T" - ], - [ - "▁par", - "ti" - ], - [ - "▁part", - "i" - ], - [ - "▁gi", - "oc" - ], - [ - "▁ми", - "ра" - ], - [ - "▁", - "мира" - ], - [ - "▁is", - "su" - ], - [ - "▁iss", - "u" - ], - [ - "pi", - "pe" - ], - [ - "pip", - "e" - ], - [ - "p", - "ipe" - ], - [ - "▁pro", - "ps" - ], - [ - "▁pr", - "ops" - ], - [ - "▁prop", - "s" - ], - [ - "▁", - "props" - ], - [ - "▁w", - "illing" - ], - [ - "▁will", - "ing" - ], - [ - "▁wil", - "ling" - ], - [ - "▁n", - "est" - ], - [ - "▁ne", - "st" - ], - [ - "▁", - "nest" - ], - [ - "as", - "o" - ], - [ - "a", - "so" - ], - [ - "po", - "t" - ], - [ - "p", - "ot" - ], - [ - "▁hand", - "les" - ], - [ - "▁handle", - "s" - ], - [ - "▁ф", - "о" - ], - [ - "▁", - "фо" - ], - [ - "▁m", - "oder" - ], - [ - "▁mod", - "er" - ], - [ - "▁mo", - "der" - ], - [ - "▁mode", - "r" - ], - [ - "▁eben", - "falls" - ], - [ - "▁fight", - "ing" - ], - [ - "um", - "bn" - ], - [ - "umb", - "n" - ], - [ - "▁trans", - "parent" - ], - [ - "▁K", - "rist" - ], - [ - "▁Kr", - "ist" - ], - [ - "▁home", - "s" - ], - [ - "▁hom", - "es" - ], - [ - "▁ho", - "mes" - ], - [ - "▁voy", - "age" - ], - [ - "Fa", - "iled" - ], - [ - "Fail", - "ed" - ], - [ - "▁B", - "ird" - ], - [ - "▁Bi", - "rd" - ], - [ - "▁Bir", - "d" - ], - [ - "▁He", - "art" - ], - [ - "Count", - "er" - ], - [ - "Co", - "unter" - ], - [ - "C", - "ounter" - ], - [ - "▁Scott", - "ish" - ], - [ - "át", - "ica" - ], - [ - "▁ar", - "beit" - ], - [ - "▁", - "arbeit" - ], - [ - "^{", - "-\\" - ], - [ - "^{-", - "\\" - ], - [ - "▁S", - "or" - ], - [ - "▁So", - "r" - ], - [ - "▁eng", - "aged" - ], - [ - "▁engag", - "ed" - ], - [ - "▁a", - "side" - ], - [ - "▁as", - "ide" - ], - [ - "▁asi", - "de" - ], - [ - "▁F", - "ou" - ], - [ - "▁Fo", - "u" - ], - [ - "▁w", - "iel" - ], - [ - "▁wie", - "l" - ], - [ - "▁re", - "const" - ], - [ - "▁recon", - "st" - ], - [ - "ou", - "sin" - ], - [ - "ous", - "in" - ], - [ - "▁host", - "ed" - ], - [ - "▁ho", - "sted" - ], - [ - "▁hos", - "ted" - ], - [ - "▁c", - "lasse" - ], - [ - "▁class", - "e" - ], - [ - "▁cl", - "asse" - ], - [ - "▁clas", - "se" - ], - [ - "▁con", - "test" - ], - [ - "▁cont", - "est" - ], - [ - "▁conte", - "st" - ], - [ - "..", - ".\"" - ], - [ - "...", - "\"" - ], - [ - "мо", - "м" - ], - [ - "м", - "ом" - ], - [ - "▁be", - "an" - ], - [ - "▁", - "bean" - ], - [ - "ge", - "m" - ], - [ - "g", - "em" - ], - [ - "▁consult", - "ato" - ], - [ - "▁b", - "io" - ], - [ - "▁bi", - "o" - ], - [ - "▁", - "bio" - ], - [ - "▁subject", - "s" - ], - [ - "bo", - "Box" - ], - [ - "▁Sch", - "rift" - ], - [ - "▁d", - "inner" - ], - [ - "▁din", - "ner" - ], - [ - "ă", - "r" - ], - [ - "▁r", - "ówn" - ], - [ - "▁%", - "%" - ], - [ - "▁", - "%%" - ], - [ - "ba", - "ge" - ], - [ - "bag", - "e" - ], - [ - "b", - "age" - ], - [ - "▁ver", - "öff" - ], - [ - "▁det", - "ected" - ], - [ - "▁detect", - "ed" - ], - [ - "ie", - "nn" - ], - [ - "ien", - "n" - ], - [ - "i", - "enn" - ], - [ - "ro", - "se" - ], - [ - "ros", - "e" - ], - [ - "r", - "ose" - ], - [ - "▁T", - "on" - ], - [ - "▁To", - "n" - ], - [ - "Comp", - "lete" - ], - [ - "Comple", - "te" - ], - [ - "▁pro", - "to" - ], - [ - "▁pr", - "oto" - ], - [ - "▁prot", - "o" - ], - [ - "▁", - "proto" - ], - [ - "ich", - "ts" - ], - [ - "icht", - "s" - ], - [ - "i", - "chts" - ], - [ - "ST", - "AT" - ], - [ - "Check", - "ed" - ], - [ - "▁in", - "ten" - ], - [ - "▁i", - "nten" - ], - [ - "▁int", - "en" - ], - [ - "▁inte", - "n" - ], - [ - "▁s", - "mile" - ], - [ - "▁sm", - "ile" - ], - [ - "▁st", - "rip" - ], - [ - "▁str", - "ip" - ], - [ - "▁stri", - "p" - ], - [ - "▁", - "strip" - ], - [ - "ne", - "ut" - ], - [ - "')", - ";\r" - ], - [ - "');", - "\r" - ], - [ - "'", - ");\r" - ], - [ - "fo", - "ur" - ], - [ - "f", - "our" - ], - [ - "▁to", - "das" - ], - [ - "▁tod", - "as" - ], - [ - "▁toda", - "s" - ], - [ - "Control", - "s" - ], - [ - "▁thor", - "ough" - ], - [ - "ru", - "p" - ], - [ - "r", - "up" - ], - [ - "▁држа", - "ви" - ], - [ - "it", - "ă" - ], - [ - "Pro", - "tocol" - ], - [ - "К", - "а" - ], - [ - "▁expand", - "ed" - ], - [ - "ex", - "tra" - ], - [ - "ext", - "ra" - ], - [ - "op", - "ort" - ], - [ - "opo", - "rt" - ], - [ - "o", - "port" - ], - [ - "▁Ста", - "нов" - ], - [ - "le", - "ases" - ], - [ - "lease", - "s" - ], - [ - "▁n", - "otion" - ], - [ - "▁not", - "ion" - ], - [ - "▁no", - "tion" - ], - [ - "▁g", - "uest" - ], - [ - "▁gu", - "est" - ], - [ - "▁Is", - "lands" - ], - [ - "▁Island", - "s" - ], - [ - "ic", - "ked" - ], - [ - "ick", - "ed" - ], - [ - "▁D", - "ave" - ], - [ - "▁Dav", - "e" - ], - [ - "▁Da", - "ve" - ], - [ - "▁ref", - "lection" - ], - [ - "▁reflect", - "ion" - ], - [ - "li", - "v" - ], - [ - "l", - "iv" - ], - [ - "ál", - "ní" - ], - [ - "▁reve", - "aled" - ], - [ - "▁s", - "og" - ], - [ - "▁so", - "g" - ], - [ - "▁T", - "ax" - ], - [ - "▁Ta", - "x" - ], - [ - "▁period", - "o" - ], - [ - "▁peri", - "odo" - ], - [ - "▁Welt", - "krie" - ], - [ - "catal", - "ina" - ], - [ - "qu", - "é" - ], - [ - "q", - "ué" - ], - [ - "▁F", - "ather" - ], - [ - "▁Fa", - "ther" - ], - [ - "▁B", - "ir" - ], - [ - "▁Bi", - "r" - ], - [ - "ex", - "pect" - ], - [ - "exp", - "ect" - ], - [ - "▁re", - "gression" - ], - [ - "▁reg", - "ression" - ], - [ - "in", - "é" - ], - [ - "i", - "né" - ], - [ - "▁d", - "abei" - ], - [ - "▁da", - "bei" - ], - [ - "pe", - "rm" - ], - [ - "per", - "m" - ], - [ - "p", - "erm" - ], - [ - "ме", - "не" - ], - [ - "мен", - "е" - ], - [ - "м", - "ене" - ], - [ - "▁A", - "bd" - ], - [ - "▁Ab", - "d" - ], - [ - "▁C", - "F" - ], - [ - "▁", - "CF" - ], - [ - "ar", - "ks" - ], - [ - "ark", - "s" - ], - [ - "resol", - "ve" - ], - [ - "wed", - "ge" - ], - [ - "w", - "edge" - ], - [ - "▁initial", - "ization" - ], - [ - "▁Vé", - "ase" - ], - [ - "▁при", - "ня" - ], - [ - "st", - "mt" - ], - [ - "▁in", - "come" - ], - [ - "▁inc", - "ome" - ], - [ - "M", - "Y" - ], - [ - "▁od", - "kazy" - ], - [ - "▁Sie", - "he" - ], - [ - "▁bod", - "ies" - ], - [ - "▁s", - "oc" - ], - [ - "▁so", - "c" - ], - [ - "R", - "andom" - ], - [ - "▁s", - "enza" - ], - [ - "▁sen", - "za" - ], - [ - "ab", - "lo" - ], - [ - "abl", - "o" - ], - [ - "a", - "blo" - ], - [ - "▁reg", - "arded" - ], - [ - "▁regard", - "ed" - ], - [ - "on", - "Create" - ], - [ - "▁Mag", - "azine" - ], - [ - "▁R", - "af" - ], - [ - "▁Ra", - "f" - ], - [ - "▁Buen", - "os" - ], - [ - "и", - "л" - ], - [ - "))", - ");" - ], - [ - ")))", - ";" - ], - [ - ")", - "));" - ], - [ - "ca", - "pt" - ], - [ - "cap", - "t" - ], - [ - "c", - "apt" - ], - [ - "re", - "direct" - ], - [ - "red", - "irect" - ], - [ - "▁pe", - "tit" - ], - [ - "▁pet", - "it" - ], - [ - "▁f", - "arm" - ], - [ - "▁far", - "m" - ], - [ - "▁fa", - "rm" - ], - [ - "▁r", - "ôle" - ], - [ - "▁стать", - "и" - ], - [ - "  ", - "  " - ], - [ - "sub", - "figure" - ], - [ - "èce", - "s" - ], - [ - "è", - "ces" - ], - [ - "zi", - "el" - ], - [ - "zie", - "l" - ], - [ - "z", - "iel" - ], - [ - "▁о", - "кон" - ], - [ - "▁ок", - "он" - ], - [ - "E", - "E" - ], - [ - "me", - "e" - ], - [ - "m", - "ee" - ], - [ - "▁p", - "erten" - ], - [ - "▁per", - "ten" - ], - [ - "▁pert", - "en" - ], - [ - "▁représ", - "ent" - ], - [ - "▁L", - "A" - ], - [ - "▁", - "LA" - ], - [ - "?", - "'" - ], - [ - "▁т", - "ру" - ], - [ - "▁r", - "ational" - ], - [ - "▁rat", - "ional" - ], - [ - "▁ratio", - "nal" - ], - [ - "os", - "of" - ], - [ - "oso", - "f" - ], - [ - "▁k", - "ne" - ], - [ - "▁kn", - "e" - ], - [ - "▁art", - "ists" - ], - [ - "▁artist", - "s" - ], - [ - "Fl", - "ow" - ], - [ - "F", - "low" - ], - [ - "▁А", - "ль" - ], - [ - "▁Ал", - "ь" - ], - [ - "iz", - "ard" - ], - [ - "iza", - "rd" - ], - [ - "izar", - "d" - ], - [ - "▁num", - "ero" - ], - [ - "▁numer", - "o" - ], - [ - "act", - "ic" - ], - [ - "a", - "ctic" - ], - [ - "▁de", - "struct" - ], - [ - "▁dest", - "ruct" - ], - [ - "▁destru", - "ct" - ], - [ - "▁П", - "ра" - ], - [ - "ons", - "ieur" - ], - [ - "q", - "t" - ], - [ - "ab", - "estanden" - ], - [ - "no", - "ść" - ], - [ - "Con", - "nect" - ], - [ - "Conne", - "ct" - ], - [ - "▁o", - "racle" - ], - [ - "▁or", - "acle" - ], - [ - "▁ora", - "cle" - ], - [ - "▁", - "oracle" - ], - [ - "▁Stock", - "holm" - ], - [ - "size", - "of" - ], - [ - "▁gem", - "äß" - ], - [ - "AC", - "T" - ], - [ - "A", - "CT" - ], - [ - "▁ex", - "pert" - ], - [ - "▁exp", - "ert" - ], - [ - "▁exper", - "t" - ], - [ - "ut", - "ions" - ], - [ - "ution", - "s" - ], - [ - "uti", - "ons" - ], - [ - "▁h", - "acia" - ], - [ - "▁ha", - "cia" - ], - [ - "▁log", - "ger" - ], - [ - "▁", - "logger" - ], - [ - "▁f", - "ool" - ], - [ - "▁fo", - "ol" - ], - [ - "▁foo", - "l" - ], - [ - "ry", - "pto" - ], - [ - "rypt", - "o" - ], - [ - "æ", - "r" - ], - [ - "▁c", - "idade" - ], - [ - "▁ci", - "dade" - ], - [ - "▁состав", - "е" - ], - [ - "▁соста", - "ве" - ], - [ - "ok", - "er" - ], - [ - "oke", - "r" - ], - [ - "o", - "ker" - ], - [ - "▁Trans", - "fer" - ], - [ - "▁den", - "ied" - ], - [ - "Tr", - "ack" - ], - [ - "Tra", - "ck" - ], - [ - "T", - "rack" - ], - [ - "▁r", - "adi" - ], - [ - "▁ra", - "di" - ], - [ - "▁rad", - "i" - ], - [ - "ze", - "c" - ], - [ - "z", - "ec" - ], - [ - "▁Histor", - "ic" - ], - [ - "▁Einwo", - "hner" - ], - [ - "ко", - "ю" - ], - [ - "▁х", - "ра" - ], - [ - "▁", - "хра" - ], - [ - "▁C", - "ategory" - ], - [ - "▁", - "Category" - ], - [ - "▁Dis", - "ney" - ], - [ - "▁sw", - "ap" - ], - [ - "▁", - "swap" - ], - [ - "Be", - "gin" - ], - [ - "B", - "egin" - ], - [ - "▁m", - "ientras" - ], - [ - "▁d", - "ance" - ], - [ - "▁dan", - "ce" - ], - [ - "▁t", - "ête" - ], - [ - "▁d", - "roit" - ], - [ - "▁dr", - "oit" - ], - [ - "▁dro", - "it" - ], - [ - "er", - "ta" - ], - [ - "ert", - "a" - ], - [ - "▁bird", - "s" - ], - [ - "▁bir", - "ds" - ], - [ - "▁con", - "vin" - ], - [ - "▁conv", - "in" - ], - [ - "par", - "ator" - ], - [ - "para", - "tor" - ], - [ - "д", - "ра" - ], - [ - "▁E", - "S" - ], - [ - "▁", - "ES" - ], - [ - "▁Ress", - "ources" - ], - [ - "▁Ressource", - "s" - ], - [ - "EG", - "IN" - ], - [ - "ück", - "e" - ], - [ - "ü", - "cke" - ], - [ - "▁Cr", - "uz" - ], - [ - "▁Cru", - "z" - ], - [ - "ab", - "ling" - ], - [ - "abl", - "ing" - ], - [ - "a", - "bling" - ], - [ - "▁\"", - "@" - ], - [ - "▁me", - "tres" - ], - [ - "▁met", - "res" - ], - [ - "▁B", - "eg" - ], - [ - "▁Be", - "g" - ], - [ - "▁Gr", - "ünd" - ], - [ - "▁B", - "oh" - ], - [ - "▁Bo", - "h" - ], - [ - "▁m", - "ile" - ], - [ - "▁mil", - "e" - ], - [ - "▁mi", - "le" - ], - [ - "▁", - "mile" - ], - [ - "▁Techn", - "ology" - ], - [ - "\"", - "+" - ], - [ - "ac", - "co" - ], - [ - "acc", - "o" - ], - [ - "a", - "cco" - ], - [ - "▁s", - "s" - ], - [ - "▁", - "ss" - ], - [ - "▁F", - "ed" - ], - [ - "▁Fe", - "d" - ], - [ - "▁H", - "end" - ], - [ - "▁He", - "nd" - ], - [ - "▁Hen", - "d" - ], - [ - "us", - "ch" - ], - [ - "usc", - "h" - ], - [ - "u", - "sch" - ], - [ - "it", - "ä" - ], - [ - "fol", - "k" - ], - [ - "f", - "olk" - ], - [ - "▁abs", - "or" - ], - [ - "an", - "tal" - ], - [ - "ant", - "al" - ], - [ - "anta", - "l" - ], - [ - "od", - "ge" - ], - [ - "▁WH", - "EN" - ], - [ - "▁Extern", - "í" - ], - [ - "▁Reg", - "iment" - ], - [ - "▁evalu", - "ation" - ], - [ - "▁T", - "ai" - ], - [ - "▁Ta", - "i" - ], - [ - "▁voc", - "als" - ], - [ - "▁vocal", - "s" - ], - [ - "▁ex", - "perimental" - ], - [ - "▁experiment", - "al" - ], - [ - "em", - "bed" - ], - [ - "emb", - "ed" - ], - [ - "▁M", - "inn" - ], - [ - "▁Min", - "n" - ], - [ - "▁Mi", - "nn" - ], - [ - "▁в", - "ме" - ], - [ - "pr", - "ec" - ], - [ - "pre", - "c" - ], - [ - "p", - "rec" - ], - [ - "ever", - "y" - ], - [ - "ev", - "ery" - ], - [ - "e", - "very" - ], - [ - "▁ho", - "of" - ], - [ - "▁Fern", - "ando" - ], - [ - "▁Bibli", - "ographie" - ], - [ - "▁n", - "ag" - ], - [ - "▁na", - "g" - ], - [ - "amerikan", - "ischer" - ], - [ - "▁m", - "arks" - ], - [ - "▁mar", - "ks" - ], - [ - "▁mark", - "s" - ], - [ - "▁", - "marks" - ], - [ - "▁U", - "TC" - ], - [ - "▁", - "UTC" - ], - [ - "▁un", - "certain" - ], - [ - "ди", - "я" - ], - [ - "ol", - "ia" - ], - [ - "oli", - "a" - ], - [ - "o", - "lia" - ], - [ - "▁c", - "up" - ], - [ - "▁cu", - "p" - ], - [ - "▁", - "cup" - ], - [ - "▁f", - "ille" - ], - [ - "▁fil", - "le" - ], - [ - "▁fill", - "e" - ], - [ - "▁fi", - "lle" - ], - [ - "▁d", - "ok" - ], - [ - "▁do", - "k" - ], - [ - "use", - "ppe" - ], - [ - "est", - "erd" - ], - [ - "ester", - "d" - ], - [ - "este", - "rd" - ], - [ - "e", - "sterd" - ], - [ - "▁B", - "rand" - ], - [ - "▁Br", - "and" - ], - [ - "▁Bra", - "nd" - ], - [ - "▁Bran", - "d" - ], - [ - "▁Th", - "ird" - ], - [ - "P", - "P" - ], - [ - "no", - "des" - ], - [ - "node", - "s" - ], - [ - "n", - "odes" - ], - [ - "▁P", - "ad" - ], - [ - "▁Pa", - "d" - ], - [ - "▁", - "Pad" - ], - [ - "▁l", - "oved" - ], - [ - "▁lo", - "ved" - ], - [ - "▁love", - "d" - ], - [ - "▁lov", - "ed" - ], - [ - "sw", - "ing" - ], - [ - "s", - "wing" - ], - [ - "▁surpr", - "ised" - ], - [ - "▁surprise", - "d" - ], - [ - "ar", - "di" - ], - [ - "ard", - "i" - ], - [ - "▁G", - "R" - ], - [ - "▁", - "GR" - ], - [ - "]", - "\"" - ], - [ - "▁equ", - "ally" - ], - [ - "▁equal", - "ly" - ], - [ - "▁eq", - "ually" - ], - [ - "ih", - "e" - ], - [ - "i", - "he" - ], - [ - "ca", - "re" - ], - [ - "car", - "e" - ], - [ - "c", - "are" - ], - [ - "пи", - "сок" - ], - [ - "пис", - "ок" - ], - [ - "li", - "jk" - ], - [ - "lij", - "k" - ], - [ - "l", - "ijk" - ], - [ - "ri", - "nn" - ], - [ - "rin", - "n" - ], - [ - "r", - "inn" - ], - [ - "▁\\", - "[\\" - ], - [ - "▁\\[", - "\\" - ], - [ - "▁s", - "ons" - ], - [ - "▁so", - "ns" - ], - [ - "▁son", - "s" - ], - [ - "▁t", - "ät" - ], - [ - "ic", - "amente" - ], - [ - "ica", - "mente" - ], - [ - "▁l", - "isting" - ], - [ - "▁list", - "ing" - ], - [ - "iel", - "lement" - ], - [ - "ielle", - "ment" - ], - [ - "▁nyel", - "ven" - ], - [ - "▁d", - "s" - ], - [ - "▁", - "ds" - ], - [ - "▁agr", - "icult" - ], - [ - "▁H", - "ermann" - ], - [ - "▁Her", - "mann" - ], - [ - "▁Herm", - "ann" - ], - [ - "▁bes", - "ides" - ], - [ - "▁beside", - "s" - ], - [ - "pro", - "gress" - ], - [ - "prog", - "ress" - ], - [ - "▁pec", - "uliar" - ], - [ - "fo", - "cus" - ], - [ - "f", - "ocus" - ], - [ - "c", - "n" - ], - [ - "-", - "$" - ], - [ - "ствен", - "ный" - ], - [ - "ou", - "rg" - ], - [ - "our", - "g" - ], - [ - "o", - "urg" - ], - [ - "▁w", - "yn" - ], - [ - "▁wy", - "n" - ], - [ - "▁conduct", - "ed" - ], - [ - "▁condu", - "cted" - ], - [ - "▁Станов", - "ништво" - ], - [ - "connect", - "ed" - ], - [ - "conne", - "cted" - ], - [ - "conn", - "ected" - ], - [ - "▁b", - "ott" - ], - [ - "▁bo", - "tt" - ], - [ - "▁bot", - "t" - ], - [ - "▁с", - "мер" - ], - [ - "▁см", - "ер" - ], - [ - "▁P", - "oz" - ], - [ - "▁Po", - "z" - ], - [ - "un", - "ct" - ], - [ - "unc", - "t" - ], - [ - "con", - "da" - ], - [ - "cond", - "a" - ], - [ - "c", - "onda" - ], - [ - "▁савез", - "ној" - ], - [ - "▁ha", - "vet" - ], - [ - "▁have", - "t" - ], - [ - "▁hav", - "et" - ], - [ - "li", - "gt" - ], - [ - "lig", - "t" - ], - [ - "l", - "igt" - ], - [ - "or", - "ted" - ], - [ - "ort", - "ed" - ], - [ - "orte", - "d" - ], - [ - "▁ent", - "ering" - ], - [ - "▁enter", - "ing" - ], - [ - "mult", - "ip" - ], - [ - "multi", - "p" - ], - [ - "mul", - "tip" - ], - [ - "▁Tem", - "ple" - ], - [ - "▁Temp", - "le" - ], - [ - "▁P", - "lant" - ], - [ - "▁Pl", - "ant" - ], - [ - "▁Plan", - "t" - ], - [ - "▁Pla", - "nt" - ], - [ - "type", - "of" - ], - [ - "▁V", - "lad" - ], - [ - "▁qu", - "ed" - ], - [ - "▁que", - "d" - ], - [ - "▁q", - "ued" - ], - [ - "▁re", - "ste" - ], - [ - "▁r", - "este" - ], - [ - "▁res", - "te" - ], - [ - "▁rest", - "e" - ], - [ - "▁ма", - "й" - ], - [ - "▁", - "май" - ], - [ - "▁V", - "ery" - ], - [ - "▁Ver", - "y" - ], - [ - "▁Ve", - "ry" - ], - [ - "ambigu", - "ation" - ], - [ - "▁ch", - "alleng" - ], - [ - "▁res", - "pective" - ], - [ - "▁respect", - "ive" - ], - [ - "▁т", - "ор" - ], - [ - "▁то", - "р" - ], - [ - "▁", - "тор" - ], - [ - "C", - "trl" - ], - [ - "▁abs", - "ence" - ], - [ - "ar", - "u" - ], - [ - "a", - "ru" - ], - [ - "во", - "е" - ], - [ - "▁för", - "st" - ], - [ - "▁s", - "q" - ], - [ - "▁", - "sq" - ], - [ - "▁Em", - "peror" - ], - [ - "▁I", - "gn" - ], - [ - "▁Ig", - "n" - ], - [ - "▁", - "Ign" - ], - [ - "▁т", - "ова" - ], - [ - "▁то", - "ва" - ], - [ - "▁", - "това" - ], - [ - ":", - "`" - ], - [ - "ad", - "oop" - ], - [ - "ado", - "op" - ], - [ - "▁Mad", - "ame" - ], - [ - "▁gru", - "ppo" - ], - [ - "▁grup", - "po" - ], - [ - "st", - "ud" - ], - [ - "▁extern", - "as" - ], - [ - "▁Александ", - "р" - ], - [ - "▁d", - "ign" - ], - [ - "▁di", - "gn" - ], - [ - "▁dig", - "n" - ], - [ - "▁жи", - "ве" - ], - [ - "Am", - "ount" - ], - [ - "A", - "mount" - ], - [ - "▁correl", - "ate" - ], - [ - "▁corre", - "late" - ], - [ - "▁F", - "ant" - ], - [ - "▁Fa", - "nt" - ], - [ - "▁r", - "ails" - ], - [ - "▁ra", - "ils" - ], - [ - "▁rail", - "s" - ], - [ - "▁", - "rails" - ], - [ - "f", - "p" - ], - [ - "министра", - "тив" - ], - [ - "▁b", - "ought" - ], - [ - "▁fil", - "ters" - ], - [ - "▁filter", - "s" - ], - [ - "▁", - "filters" - ], - [ - "▁anc", - "ora" - ], - [ - "▁part", - "ner" - ], - [ - "▁qu", - "and" - ], - [ - "▁quan", - "d" - ], - [ - "sym", - "bol" - ], - [ - "s", - "ymbol" - ], - [ - "ul", - "ating" - ], - [ - "ula", - "ting" - ], - [ - "▁z", - "d" - ], - [ - "▁", - "zd" - ], - [ - "aw", - "n" - ], - [ - "a", - "wn" - ], - [ - "▁G", - "rant" - ], - [ - "▁Gr", - "ant" - ], - [ - "▁Gra", - "nt" - ], - [ - "▁Gran", - "t" - ], - [ - "bec", - "ause" - ], - [ - "b", - "ecause" - ], - [ - "ra", - "ble" - ], - [ - "rab", - "le" - ], - [ - "r", - "able" - ], - [ - "\\", - "}" - ], - [ - "íst", - "icas" - ], - [ - "ística", - "s" - ], - [ - "▁у", - "че" - ], - [ - "▁péri", - "ode" - ], - [ - "▁s", - "ke" - ], - [ - "▁sk", - "e" - ], - [ - "▁", - "ske" - ], - [ - "▁Any", - "way" - ], - [ - "▁index", - "es" - ], - [ - "▁inde", - "xes" - ], - [ - "▁direct", - "ions" - ], - [ - "▁dire", - "ctions" - ], - [ - "▁direction", - "s" - ], - [ - "▁R", - "AM" - ], - [ - "▁RA", - "M" - ], - [ - "▁", - "RAM" - ], - [ - "ch", - "rome" - ], - [ - "chr", - "ome" - ], - [ - "chrom", - "e" - ], - [ - "▁a", - "post" - ], - [ - "▁ap", - "ost" - ], - [ - "▁apo", - "st" - ], - [ - "▁war", - "nings" - ], - [ - "▁warning", - "s" - ], - [ - "▁warn", - "ings" - ], - [ - "▁Air", - "port" - ], - [ - "V", - "I" - ], - [ - "ab", - "ile" - ], - [ - "abil", - "e" - ], - [ - "abi", - "le" - ], - [ - "▁l", - "ord" - ], - [ - "▁lo", - "rd" - ], - [ - "pro", - "vider" - ], - [ - "prov", - "ider" - ], - [ - "▁J", - "i" - ], - [ - "ost", - "ream" - ], - [ - "o", - "stream" - ], - [ - "▁geme", - "ente" - ], - [ - "table", - "View" - ], - [ - "Ex", - "tra" - ], - [ - "Ext", - "ra" - ], - [ - "c", - "ursor" - ], - [ - "eg", - "round" - ], - [ - "egr", - "ound" - ], - [ - "e", - "ground" - ], - [ - "▁M", - "oz" - ], - [ - "▁Mo", - "z" - ], - [ - "▁r", - "ib" - ], - [ - "▁ri", - "b" - ], - [ - "▁", - "rib" - ], - [ - "▁m", - "orph" - ], - [ - "▁mor", - "ph" - ], - [ - "lo", - "ads" - ], - [ - "load", - "s" - ], - [ - "el", - "sk" - ], - [ - "els", - "k" - ], - [ - "▁M", - "AX" - ], - [ - "▁MA", - "X" - ], - [ - "▁", - "MAX" - ], - [ - "▁Santi", - "ago" - ], - [ - "▁H", - "im" - ], - [ - "▁Hi", - "m" - ], - [ - "code", - "s" - ], - [ - "co", - "des" - ], - [ - "cod", - "es" - ], - [ - "c", - "odes" - ], - [ - "▁l", - "anz" - ], - [ - "▁lan", - "z" - ], - [ - "▁count", - "s" - ], - [ - "▁coun", - "ts" - ], - [ - "rinn", - "ingsområ" - ], - [ - "щ", - "ё" - ], - [ - "▁sp", - "é" - ], - [ - "▁pier", - "ws" - ], - [ - "▁pierw", - "s" - ], - [ - "▁S", - "ver" - ], - [ - "▁Sv", - "er" - ], - [ - "▁a", - "cknow" - ], - [ - "▁ac", - "know" - ], - [ - "Bo", - "olean" - ], - [ - "▁фами", - "ли" - ], - [ - "▁Sen", - "ate" - ], - [ - "шо", - "в" - ], - [ - "ш", - "ов" - ], - [ - "ag", - "ers" - ], - [ - "age", - "rs" - ], - [ - "ager", - "s" - ], - [ - "a", - "gers" - ], - [ - "▁Nue", - "va" - ], - [ - "bi", - "l" - ], - [ - "b", - "il" - ], - [ - "ki", - "em" - ], - [ - "kie", - "m" - ], - [ - "k", - "iem" - ], - [ - "▁M", - "ey" - ], - [ - "▁Me", - "y" - ], - [ - "wi", - "j" - ], - [ - "w", - "ij" - ], - [ - "▁G", - "mbH" - ], - [ - "valid", - "ation" - ], - [ - "▁en", - "suite" - ], - [ - "in", - "king" - ], - [ - "ink", - "ing" - ], - [ - "▁c", - "ampion" - ], - [ - "▁camp", - "ion" - ], - [ - "▁finan", - "cial" - ], - [ - "▁financi", - "al" - ], - [ - "iz", - "on" - ], - [ - "izo", - "n" - ], - [ - "i", - "zon" - ], - [ - "He", - "aders" - ], - [ - "Head", - "ers" - ], - [ - "Header", - "s" - ], - [ - "▁deprec", - "ated" - ], - [ - "▁fon", - "ction" - ], - [ - "RE", - "G" - ], - [ - "R", - "EG" - ], - [ - "▁vol", - "umes" - ], - [ - "▁volume", - "s" - ], - [ - "▁C", - "hi" - ], - [ - "▁Ch", - "i" - ], - [ - "▁encounter", - "ed" - ], - [ - "la", - "k" - ], - [ - "l", - "ak" - ], - [ - "ра", - "я" - ], - [ - "▁contin", - "ues" - ], - [ - "▁continu", - "es" - ], - [ - "▁continue", - "s" - ], - [ - "▁~", - "[" - ], - [ - "uer", - "te" - ], - [ - "u", - "erte" - ], - [ - "▁\\", - ";" - ], - [ - "▁", - "\\;" - ], - [ - "▁D", - "ok" - ], - [ - "▁Do", - "k" - ], - [ - "▁we", - "ights" - ], - [ - "▁weight", - "s" - ], - [ - "▁r", - "h" - ], - [ - "▁", - "rh" - ], - [ - "▁Na", - "pole" - ], - [ - "▁Nap", - "ole" - ], - [ - "▁natur", - "ally" - ], - [ - "▁natural", - "ly" - ], - [ - "sk", - "u" - ], - [ - "s", - "ku" - ], - [ - "pa", - "s" - ], - [ - "p", - "as" - ], - [ - "▁g", - "egründ" - ], - [ - "et", - "r" - ], - [ - "e", - "tr" - ], - [ - "▁K", - "u" - ], - [ - "ic", - "ted" - ], - [ - "ict", - "ed" - ], - [ - "i", - "cted" - ], - [ - "▁fab", - "ric" - ], - [ - "▁A", - "SC" - ], - [ - "▁AS", - "C" - ], - [ - "▁", - "ASC" - ], - [ - "▁Entertain", - "ment" - ], - [ - "▁en", - "erg" - ], - [ - "▁ener", - "g" - ], - [ - "кла", - "д" - ], - [ - "к", - "лад" - ], - [ - "om", - "on" - ], - [ - "omo", - "n" - ], - [ - "o", - "mon" - ], - [ - "th", - "eme" - ], - [ - "the", - "me" - ], - [ - "▁ха", - "рак" - ], - [ - "▁d", - "raft" - ], - [ - "▁dr", - "aft" - ], - [ - "▁dra", - "ft" - ], - [ - "▁ch", - "annels" - ], - [ - "▁channel", - "s" - ], - [ - "▁de", - "sert" - ], - [ - "▁des", - "ert" - ], - [ - "▁deser", - "t" - ], - [ - "▁tra", - "vés" - ], - [ - "▁trav", - "és" - ], - [ - "▁L", - "ock" - ], - [ - "▁Lo", - "ck" - ], - [ - "▁Loc", - "k" - ], - [ - "▁", - "Lock" - ], - [ - "▁s", - "iendo" - ], - [ - "▁si", - "endo" - ], - [ - "фе", - "к" - ], - [ - "ф", - "ек" - ], - [ - "m", - "ême" - ], - [ - "▁pa", - "cket" - ], - [ - "▁pack", - "et" - ], - [ - "▁pac", - "ket" - ], - [ - "▁Mount", - "ain" - ], - [ - "▁F", - "ahr" - ], - [ - "▁Fa", - "hr" - ], - [ - "bra", - "io" - ], - [ - "пе", - "ре" - ], - [ - "пер", - "е" - ], - [ - "п", - "ере" - ], - [ - "▁gen", - "annt" - ], - [ - "▁dep", - "loyment" - ], - [ - "▁deploy", - "ment" - ], - [ - "Pa", - "l" - ], - [ - "P", - "al" - ], - [ - "но", - "г" - ], - [ - "ст", - "ру" - ], - [ - "стр", - "у" - ], - [ - "Pr", - "im" - ], - [ - "P", - "rim" - ], - [ - "f", - "ür" - ], - [ - "▁danger", - "ous" - ], - [ - "▁sz", - "ám" - ], - [ - "re", - "ck" - ], - [ - "rec", - "k" - ], - [ - "▁pop", - "up" - ], - [ - "ic", - "ky" - ], - [ - "ick", - "y" - ], - [ - "in", - "ar" - ], - [ - "ina", - "r" - ], - [ - "i", - "nar" - ], - [ - "co", - "wo" - ], - [ - "cow", - "o" - ], - [ - "c", - "owo" - ], - [ - "нци", - "кло" - ], - [ - "ít", - "ás" - ], - [ - "▁pl", - "ugins" - ], - [ - "▁plugin", - "s" - ], - [ - "▁plug", - "ins" - ], - [ - "▁", - "plugins" - ], - [ - "▁dr", - "iven" - ], - [ - "▁drive", - "n" - ], - [ - "▁dri", - "ven" - ], - [ - "▁driv", - "en" - ], - [ - "ле", - "в" - ], - [ - "л", - "ев" - ], - [ - "▁\"", - "(" - ], - [ - "tt", - "a" - ], - [ - "t", - "ta" - ], - [ - "▁", - "Ú" - ], - [ - "▁e", - "b" - ], - [ - "▁", - "eb" - ], - [ - "▁'", - "';" - ], - [ - "▁''", - ";" - ], - [ - "▁kn", - "ock" - ], - [ - "▁ос", - "нова" - ], - [ - "▁основ", - "а" - ], - [ - "▁m", - "aison" - ], - [ - "▁ma", - "ison" - ], - [ - "▁mais", - "on" - ], - [ - "▁mai", - "son" - ], - [ - "г", - "ля" - ], - [ - "▁Hon", - "or" - ], - [ - "▁Ho", - "nor" - ], - [ - "ta", - "il" - ], - [ - "t", - "ail" - ], - [ - "ri", - "tz" - ], - [ - "rit", - "z" - ], - [ - "r", - "itz" - ], - [ - "▁gu", - "ys" - ], - [ - "▁combin", - "ations" - ], - [ - "▁combination", - "s" - ], - [ - "ond", - "ere" - ], - [ - "onder", - "e" - ], - [ - "onde", - "re" - ], - [ - "▁A", - "ld" - ], - [ - "▁Al", - "d" - ], - [ - "▁f", - "iddle" - ], - [ - "▁", - "fiddle" - ], - [ - "да", - "в" - ], - [ - "ur", - "d" - ], - [ - "u", - "rd" - ], - [ - "▁pro", - "jection" - ], - [ - "▁project", - "ion" - ], - [ - "▁Tamb", - "ién" - ], - [ - "ve", - "rb" - ], - [ - "ver", - "b" - ], - [ - "v", - "erb" - ], - [ - "▁ter", - "re" - ], - [ - "▁", - "terre" - ], - [ - "ru", - "gu" - ], - [ - "rug", - "u" - ], - [ - "▁se", - "ptember" - ], - [ - "▁sept", - "ember" - ], - [ - "▁<", - "!" - ], - [ - "co", - "st" - ], - [ - "cos", - "t" - ], - [ - "c", - "ost" - ], - [ - "▁n", - "ut" - ], - [ - "▁nu", - "t" - ], - [ - "▁", - "nut" - ], - [ - "{", - "%" - ], - [ - "▁ub", - "ic" - ], - [ - "am", - "arin" - ], - [ - "ama", - "rin" - ], - [ - "amar", - "in" - ], - [ - "ти", - "и" - ], - [ - "▁pat", - "ron" - ], - [ - "▁patr", - "on" - ], - [ - "▁am", - "ely" - ], - [ - "▁e", - "sto" - ], - [ - "▁est", - "o" - ], - [ - "▁es", - "to" - ], - [ - "▁", - "esto" - ], - [ - "▁li", - "stop" - ], - [ - "▁list", - "op" - ], - [ - "fa", - "l" - ], - [ - "f", - "al" - ], - [ - "▁P", - "rop" - ], - [ - "▁Pro", - "p" - ], - [ - "▁Pr", - "op" - ], - [ - "▁", - "Prop" - ], - [ - "▁O", - "nt" - ], - [ - "▁On", - "t" - ], - [ - "▁M", - "ade" - ], - [ - "▁Ma", - "de" - ], - [ - "▁Mad", - "e" - ], - [ - "TE", - "ST" - ], - [ - "▁N", - "em" - ], - [ - "▁Ne", - "m" - ], - [ - "▁N", - "ations" - ], - [ - "▁Nat", - "ions" - ], - [ - "▁Nation", - "s" - ], - [ - "▁в", - "у" - ], - [ - "▁", - "ву" - ], - [ - "in", - "cluding" - ], - [ - "includ", - "ing" - ], - [ - "▁spect", - "rum" - ], - [ - "▁L", - "an" - ], - [ - "▁La", - "n" - ], - [ - "▁E", - "ver" - ], - [ - "▁Ev", - "er" - ], - [ - "Pa", - "ul" - ], - [ - "t", - "m" - ], - [ - "App", - "end" - ], - [ - "Ap", - "pend" - ], - [ - "Rel", - "ative" - ], - [ - "dis", - "abled" - ], - [ - "disable", - "d" - ], - [ - "return", - "s" - ], - [ - "▁flow", - "ers" - ], - [ - "▁flo", - "wers" - ], - [ - "▁flower", - "s" - ], - [ - "ik", - "u" - ], - [ - "i", - "ku" - ], - [ - "▁|", - "\\" - ], - [ - "▁", - "|\\" - ], - [ - "▁Jord", - "an" - ], - [ - "▁Sm", - "all" - ], - [ - "▁c", - "ic" - ], - [ - "▁ci", - "c" - ], - [ - "▁sex", - "ual" - ], - [ - "au", - "tre" - ], - [ - "aut", - "re" - ], - [ - "ва", - "л" - ], - [ - "в", - "ал" - ], - [ - "▁r", - "ip" - ], - [ - "▁ri", - "p" - ], - [ - "▁", - "rip" - ], - [ - "ou", - "st" - ], - [ - "ous", - "t" - ], - [ - "o", - "ust" - ], - [ - "▁Philadel", - "phia" - ], - [ - "▁u", - "k" - ], - [ - "▁", - "uk" - ], - [ - "▁M", - "ongo" - ], - [ - "▁Mon", - "go" - ], - [ - "▁Mong", - "o" - ], - [ - "xml", - "ns" - ], - [ - "▁sh", - "op" - ], - [ - "▁sho", - "p" - ], - [ - "▁", - "shop" - ], - [ - "▁debug", - "ger" - ], - [ - "▁z", - "aj" - ], - [ - "▁za", - "j" - ], - [ - "▁B", - "illy" - ], - [ - "▁Bill", - "y" - ], - [ - "▁Bil", - "ly" - ], - [ - "▁n", - "iem" - ], - [ - "▁nie", - "m" - ], - [ - "▁ni", - "em" - ], - [ - "ol", - "is" - ], - [ - "oli", - "s" - ], - [ - "o", - "lis" - ], - [ - "▁ро", - "ссий" - ], - [ - "ag", - "ner" - ], - [ - "agn", - "er" - ], - [ - "agne", - "r" - ], - [ - "▁m", - "aven" - ], - [ - "▁ma", - "ven" - ], - [ - "▁", - "maven" - ], - [ - "▁Gu", - "stav" - ], - [ - "▁Gust", - "av" - ], - [ - "A", - "us" - ], - [ - "comp", - "are" - ], - [ - "▁j", - "eu" - ], - [ - "▁je", - "u" - ], - [ - "ud", - "er" - ], - [ - "ude", - "r" - ], - [ - "u", - "der" - ], - [ - "ish", - "ment" - ], - [ - "▁ди", - "визи" - ], - [ - "▁Fin", - "land" - ], - [ - "ну", - "т" - ], - [ - "н", - "ут" - ], - [ - "z", - "és" - ], - [ - "▁Liga", - "ções" - ], - [ - "▁Lig", - "ações" - ], - [ - "▁qu", - "ello" - ], - [ - "▁quel", - "lo" - ], - [ - "an", - "notation" - ], - [ - "annot", - "ation" - ], - [ - "▁th", - "rew" - ], - [ - "▁thr", - "ew" - ], - [ - "▁thre", - "w" - ], - [ - "▁Pro", - "of" - ], - [ - "▁", - "Proof" - ], - [ - "▁A", - "rea" - ], - [ - "▁Ar", - "ea" - ], - [ - "▁Are", - "a" - ], - [ - "▁", - "Area" - ], - [ - "as", - "hi" - ], - [ - "ash", - "i" - ], - [ - "▁F", - "O" - ], - [ - "▁", - "FO" - ], - [ - "ja", - "min" - ], - [ - "j", - "amin" - ], - [ - "ден", - "т" - ], - [ - "д", - "ент" - ], - [ - "▁un", - "us" - ], - [ - "fri", - "end" - ], - [ - ".\"", - ");" - ], - [ - ".\")", - ";" - ], - [ - ".", - "\");" - ], - [ - "▁tra", - "kten" - ], - [ - "document", - "class" - ], - [ - "an", - "ka" - ], - [ - "ank", - "a" - ], - [ - "▁ar", - "rive" - ], - [ - "▁arr", - "ive" - ], - [ - "▁arriv", - "e" - ], - [ - "▁d", - "onne" - ], - [ - "▁don", - "ne" - ], - [ - "▁donn", - "e" - ], - [ - "ol", - "y" - ], - [ - "o", - "ly" - ], - [ - "▁R", - "ein" - ], - [ - "▁Re", - "in" - ], - [ - "▁face", - "book" - ], - [ - "▁fac", - "ebook" - ], - [ - "▁", - "facebook" - ], - [ - "ic", - "ina" - ], - [ - "ici", - "na" - ], - [ - "sl", - "ice" - ], - [ - "s", - "lice" - ], - [ - "▁n", - "agy" - ], - [ - "▁na", - "gy" - ], - [ - "▁nag", - "y" - ], - [ - "▁he", - "bben" - ], - [ - "▁I", - "C" - ], - [ - "▁", - "IC" - ], - [ - "▁B", - "ag" - ], - [ - "▁Ba", - "g" - ], - [ - "▁", - "Bag" - ], - [ - "▁circ", - "ul" - ], - [ - "▁cir", - "cul" - ], - [ - "ác", - "t" - ], - [ - "á", - "ct" - ], - [ - "mit", - "t" - ], - [ - "mi", - "tt" - ], - [ - "m", - "itt" - ], - [ - "▁g", - "rey" - ], - [ - "▁gr", - "ey" - ], - [ - "▁gre", - "y" - ], - [ - "▁c", - "av" - ], - [ - "▁ca", - "v" - ], - [ - "▁осо", - "би" - ], - [ - "▁sym", - "metric" - ], - [ - "▁symmet", - "ric" - ], - [ - "▁S", - "ic" - ], - [ - "▁Si", - "c" - ], - [ - "▁med", - "ium" - ], - [ - "▁medi", - "um" - ], - [ - "▁", - "medium" - ], - [ - "▁U", - "TF" - ], - [ - "▁", - "UTF" - ], - [ - "▁D", - "opo" - ], - [ - "▁Do", - "po" - ], - [ - "í", - "ch" - ], - [ - "bar", - "e" - ], - [ - "ba", - "re" - ], - [ - "b", - "are" - ], - [ - "dz", - "ie" - ], - [ - "d", - "zie" - ], - [ - "▁he", - "aven" - ], - [ - "▁heav", - "en" - ], - [ - "▁cam", - "pe" - ], - [ - "▁camp", - "e" - ], - [ - "ester", - "day" - ], - [ - "esterd", - "ay" - ], - [ - "▁W", - "issenschaft" - ], - [ - "по", - "ль" - ], - [ - "пол", - "ь" - ], - [ - "di", - "d" - ], - [ - "d", - "id" - ], - [ - "al", - "er" - ], - [ - "ale", - "r" - ], - [ - "a", - "ler" - ], - [ - "▁citiz", - "ens" - ], - [ - "▁Marg", - "aret" - ], - [ - "▁s", - "ought" - ], - [ - "ch", - "arts" - ], - [ - "char", - "ts" - ], - [ - "chart", - "s" - ], - [ - "CL", - "C" - ], - [ - "C", - "LC" - ], - [ - "ol", - "ly" - ], - [ - "oll", - "y" - ], - [ - "ys", - "z" - ], - [ - "y", - "sz" - ], - [ - "wa", - "ld" - ], - [ - "wal", - "d" - ], - [ - "w", - "ald" - ], - [ - "▁f", - "en" - ], - [ - "▁fe", - "n" - ], - [ - "▁", - "fen" - ], - [ - "▁S", - "ix" - ], - [ - "▁Si", - "x" - ], - [ - "▁U", - "rs" - ], - [ - "▁Ur", - "s" - ], - [ - "▁ор", - "ган" - ], - [ - "▁T", - "rad" - ], - [ - "▁Tr", - "ad" - ], - [ - "▁Tra", - "d" - ], - [ - "cu", - "e" - ], - [ - "c", - "ue" - ], - [ - "sch", - "utz" - ], - [ - "▁prec", - "ise" - ], - [ - "▁precis", - "e" - ], - [ - "▁W", - "indow" - ], - [ - "▁Wind", - "ow" - ], - [ - "▁", - "Window" - ], - [ - "ти", - "е" - ], - [ - "ло", - "ві" - ], - [ - "лов", - "і" - ], - [ - "it", - "ori" - ], - [ - "ito", - "ri" - ], - [ - "itor", - "i" - ], - [ - "dis", - "ambiguation" - ], - [ - "▁х", - "и" - ], - [ - "▁", - "хи" - ], - [ - "▁N", - "atural" - ], - [ - "▁Natur", - "al" - ], - [ - "▁Nat", - "ural" - ], - [ - "da", - "n" - ], - [ - "d", - "an" - ], - [ - "▁con", - "crete" - ], - [ - "ци", - "ја" - ], - [ - "▁s", - "pel" - ], - [ - "▁sp", - "el" - ], - [ - "▁spe", - "l" - ], - [ - "▁Fa", - "iled" - ], - [ - "▁Fail", - "ed" - ], - [ - "▁", - "Failed" - ], - [ - "ści", - "e" - ], - [ - "śc", - "ie" - ], - [ - "ś", - "cie" - ], - [ - "▁b", - "uf" - ], - [ - "▁bu", - "f" - ], - [ - "▁", - "buf" - ], - [ - "uc", - "a" - ], - [ - "u", - "ca" - ], - [ - "ic", - "ional" - ], - [ - "ici", - "onal" - ], - [ - "icio", - "nal" - ], - [ - "icion", - "al" - ], - [ - "▁ott", - "obre" - ], - [ - "▁otto", - "bre" - ], - [ - "▁ф", - "і" - ], - [ - "▁", - "фі" - ], - [ - "▁submit", - "ted" - ], - [ - "▁subm", - "itted" - ], - [ - "la", - "ve" - ], - [ - "lav", - "e" - ], - [ - "l", - "ave" - ], - [ - "▁P", - "lot" - ], - [ - "▁Pl", - "ot" - ], - [ - "▁", - "Plot" - ], - [ - "▁col", - "leg" - ], - [ - "▁coll", - "eg" - ], - [ - "▁colle", - "g" - ], - [ - "ad", - "em" - ], - [ - "ade", - "m" - ], - [ - "a", - "dem" - ], - [ - "▁ch", - "aque" - ], - [ - "▁cha", - "que" - ], - [ - "▁neighbor", - "hood" - ], - [ - "▁calci", - "atore" - ], - [ - "Lo", - "op" - ], - [ - "L", - "oop" - ], - [ - "▁G", - "ast" - ], - [ - "▁Ga", - "st" - ], - [ - "▁Gas", - "t" - ], - [ - "▁ко", - "гда" - ], - [ - "▁indust", - "rial" - ], - [ - "▁industri", - "al" - ], - [ - "▁f", - "atal" - ], - [ - "▁fa", - "tal" - ], - [ - "▁fat", - "al" - ], - [ - "▁C", - "ert" - ], - [ - "▁Ce", - "rt" - ], - [ - "▁Cer", - "t" - ], - [ - "▁", - "Cert" - ], - [ - "la", - "tion" - ], - [ - "lat", - "ion" - ], - [ - "l", - "ation" - ], - [ - "▁О", - "дна" - ], - [ - "▁Од", - "на" - ], - [ - "▁jam", - "ais" - ], - [ - "▁acc", - "um" - ], - [ - "Id", - "entity" - ], - [ - "Ident", - "ity" - ], - [ - "▁Me", - "dal" - ], - [ - "▁Med", - "al" - ], - [ - "Met", - "adata" - ], - [ - "Meta", - "data" - ], - [ - "▁лю", - "дя" - ], - [ - "br", - "idge" - ], - [ - "brid", - "ge" - ], - [ - "b", - "ridge" - ], - [ - "Go", - "od" - ], - [ - "G", - "ood" - ], - [ - "▁что", - "бы" - ], - [ - "▁comp", - "oser" - ], - [ - "▁compos", - "er" - ], - [ - "▁compose", - "r" - ], - [ - "▁b", - "read" - ], - [ - "▁br", - "ead" - ], - [ - "▁bre", - "ad" - ], - [ - "▁clos", - "ure" - ], - [ - "▁", - "closure" - ], - [ - "▁large", - "ly" - ], - [ - "▁larg", - "ely" - ], - [ - "F", - "B" - ], - [ - "▁обла", - "сть" - ], - [ - "▁autom", - "atic" - ], - [ - "▁automat", - "ic" - ], - [ - "ar", - "ía" - ], - [ - "a", - "ría" - ], - [ - "▁sufficient", - "ly" - ], - [ - "▁ital", - "iana" - ], - [ - "▁ка", - "че" - ], - [ - "▁J", - "ó" - ], - [ - "hi", - "story" - ], - [ - "histor", - "y" - ], - [ - "h", - "istory" - ], - [ - "▁H", - "D" - ], - [ - "▁", - "HD" - ], - [ - "▁sigu", - "iente" - ], - [ - "ne", - "ll" - ], - [ - "nel", - "l" - ], - [ - "n", - "ell" - ], - [ - "▁G", - "ree" - ], - [ - "▁Gr", - "ee" - ], - [ - "▁Gre", - "e" - ], - [ - "▁T", - "i" - ], - [ - "▁trans", - "ferred" - ], - [ - "▁transfer", - "red" - ], - [ - "équ", - "ipe" - ], - [ - "é", - "quipe" - ], - [ - "▁Phili", - "ppe" - ], - [ - "▁Philipp", - "e" - ], - [ - "▁Philip", - "pe" - ], - [ - "▁encou", - "rag" - ], - [ - "▁V", - "ietnam" - ], - [ - "▁graph", - "s" - ], - [ - "▁symmet", - "ry" - ], - [ - "fr", - "ed" - ], - [ - "fre", - "d" - ], - [ - "f", - "red" - ], - [ - "we", - "ek" - ], - [ - "▁bron", - "ze" - ], - [ - "ry", - "s" - ], - [ - "r", - "ys" - ], - [ - "▁name", - "ly" - ], - [ - "▁nam", - "ely" - ], - [ - "on", - "ders" - ], - [ - "ond", - "ers" - ], - [ - "onder", - "s" - ], - [ - "onde", - "rs" - ], - [ - "lem", - "agne" - ], - [ - "X", - "Y" - ], - [ - "Con", - "vert" - ], - [ - "}]", - "(" - ], - [ - "}", - "](" - ], - [ - "Reg", - "ion" - ], - [ - "pe", - "cies" - ], - [ - "pec", - "ies" - ], - [ - "▁te", - "xture" - ], - [ - "▁text", - "ure" - ], - [ - "▁c", - "hr" - ], - [ - "▁ch", - "r" - ], - [ - "▁", - "chr" - ], - [ - "не", - "го" - ], - [ - "н", - "его" - ], - [ - "▁some", - "body" - ], - [ - "a", - "qu" - ], - [ - "er", - "as" - ], - [ - "era", - "s" - ], - [ - "e", - "ras" - ], - [ - "▁Н", - "ово" - ], - [ - "▁Но", - "во" - ], - [ - "▁Нов", - "о" - ], - [ - "▁d", - "ez" - ], - [ - "▁de", - "z" - ], - [ - "an", - "iu" - ], - [ - "ani", - "u" - ], - [ - "a", - "niu" - ], - [ - "ok", - "rat" - ], - [ - "▁co", - "vers" - ], - [ - "▁cover", - "s" - ], - [ - "▁cov", - "ers" - ], - [ - "▁sign", - "als" - ], - [ - "▁signal", - "s" - ], - [ - "ђ", - "е" - ], - [ - "▁H", - "eb" - ], - [ - "▁He", - "b" - ], - [ - "▁An", - "ti" - ], - [ - "▁Ant", - "i" - ], - [ - "IV", - "E" - ], - [ - "I", - "VE" - ], - [ - "▁re", - "ss" - ], - [ - "▁r", - "ess" - ], - [ - "▁res", - "s" - ], - [ - "▁", - "ress" - ], - [ - "LE", - "TE" - ], - [ - "yn", - "a" - ], - [ - "y", - "na" - ], - [ - "п", - "ла" - ], - [ - "жде", - "ния" - ], - [ - "ж", - "дения" - ], - [ - "▁ch", - "amp" - ], - [ - "▁cha", - "mp" - ], - [ - "▁cham", - "p" - ], - [ - "▁vill", - "ages" - ], - [ - "▁village", - "s" - ], - [ - "▁villa", - "ges" - ], - [ - "Z", - "one" - ], - [ - "▁i", - "Phone" - ], - [ - "▁sou", - "vent" - ], - [ - "сь", - "кі" - ], - [ - "ськ", - "і" - ], - [ - "▁feb", - "braio" - ], - [ - "ér", - "cito" - ], - [ - "▁X", - "I" - ], - [ - "ok", - "at" - ], - [ - "oka", - "t" - ], - [ - "▁mem", - "bres" - ], - [ - "▁memb", - "res" - ], - [ - "▁membre", - "s" - ], - [ - "ju", - "nit" - ], - [ - "j", - "unit" - ], - [ - "▁D", - "raw" - ], - [ - "▁Dr", - "aw" - ], - [ - "▁Dra", - "w" - ], - [ - "▁", - "Draw" - ], - [ - "▁п", - "рово" - ], - [ - "▁про", - "во" - ], - [ - "▁пров", - "о" - ], - [ - "▁пр", - "ово" - ], - [ - "aud", - "io" - ], - [ - "audi", - "o" - ], - [ - "a", - "udio" - ], - [ - "en", - "dl" - ], - [ - "end", - "l" - ], - [ - "▁N", - "ad" - ], - [ - "▁Na", - "d" - ], - [ - "▁magn", - "itude" - ], - [ - "Su", - "r" - ], - [ - "S", - "ur" - ], - [ - "ic", - "ing" - ], - [ - "ici", - "ng" - ], - [ - "i", - "cing" - ], - [ - "▁un", - "w" - ], - [ - "▁о", - "три" - ], - [ - "▁от", - "ри" - ], - [ - "▁B", - "ey" - ], - [ - "▁Be", - "y" - ], - [ - "▁V", - "ik" - ], - [ - "▁Vi", - "k" - ], - [ - "▁polít", - "ica" - ], - [ - "port", - "er" - ], - [ - "por", - "ter" - ], - [ - "porte", - "r" - ], - [ - "p", - "orter" - ], - [ - "▁Bar", - "bara" - ], - [ - "▁Barb", - "ara" - ], - [ - "ál", - "t" - ], - [ - "á", - "lt" - ], - [ - "bi", - "b" - ], - [ - "b", - "ib" - ], - [ - "▁accom", - "pan" - ], - [ - "▁accomp", - "an" - ], - [ - "V", - "P" - ], - [ - "▁en", - "coded" - ], - [ - "▁enc", - "oded" - ], - [ - "▁encode", - "d" - ], - [ - "▁", - "encoded" - ], - [ - "▁S", - "ometimes" - ], - [ - "▁Some", - "times" - ], - [ - "bi", - "rd" - ], - [ - "bir", - "d" - ], - [ - "b", - "ird" - ], - [ - "▁U", - "lt" - ], - [ - "▁Ul", - "t" - ], - [ - "▁t", - "un" - ], - [ - "▁tu", - "n" - ], - [ - "get", - "Text" - ], - [ - "▁ar", - "rival" - ], - [ - "▁arr", - "ival" - ], - [ - "▁arriv", - "al" - ], - [ - "script", - "style" - ], - [ - "{", - "`" - ], - [ - "▁pers", - "pective" - ], - [ - "LI", - "NE" - ], - [ - "LIN", - "E" - ], - [ - "L", - "INE" - ], - [ - "Form", - "atter" - ], - [ - "Format", - "ter" - ], - [ - "▁b", - "om" - ], - [ - "▁bo", - "m" - ], - [ - "в", - "ра" - ], - [ - "DE", - "BUG" - ], - [ - "Bound", - "s" - ], - [ - "B", - "ounds" - ], - [ - "▁T", - "itle" - ], - [ - "▁Tit", - "le" - ], - [ - "▁", - "Title" - ], - [ - "l", - "ó" - ], - [ - "Da", - "n" - ], - [ - "D", - "an" - ], - [ - "▁g", - "ene" - ], - [ - "▁ge", - "ne" - ], - [ - "▁gen", - "e" - ], - [ - "▁B", - "it" - ], - [ - "▁Bi", - "t" - ], - [ - "▁", - "Bit" - ], - [ - "▁reprodu", - "ce" - ], - [ - "▁graph", - "ics" - ], - [ - "▁", - "graphics" - ], - [ - "▁с", - "ем" - ], - [ - "▁се", - "м" - ], - [ - "р", - "ё" - ], - [ - "▁ре", - "ки" - ], - [ - "us", - "alem" - ], - [ - "usa", - "lem" - ], - [ - "ро", - "ж" - ], - [ - "▁D", - "ES" - ], - [ - "▁DE", - "S" - ], - [ - "▁So", - "ftware" - ], - [ - "ur", - "ance" - ], - [ - "u", - "rance" - ], - [ - "ithmet", - "ic" - ], - [ - "en", - "ess" - ], - [ - "ene", - "ss" - ], - [ - "enes", - "s" - ], - [ - "e", - "ness" - ], - [ - "ic", - "hi" - ], - [ - "ich", - "i" - ], - [ - "i", - "chi" - ], - [ - "Con", - "verter" - ], - [ - "Convert", - "er" - ], - [ - "▁g", - "ithub" - ], - [ - "▁", - "github" - ], - [ - "erd", - "ings" - ], - [ - "gl", - "ise" - ], - [ - "ác", - "h" - ], - [ - "á", - "ch" - ], - [ - "▁bu", - "ried" - ], - [ - "▁bur", - "ied" - ], - [ - "▁v", - "ision" - ], - [ - "▁vis", - "ion" - ], - [ - "▁", - "vision" - ], - [ - "M", - "iss" - ], - [ - "▁s", - "ees" - ], - [ - "▁se", - "es" - ], - [ - "▁see", - "s" - ], - [ - "▁person", - "nes" - ], - [ - "▁pers", - "onnes" - ], - [ - "▁personn", - "es" - ], - [ - "▁personne", - "s" - ], - [ - "▁In", - "tel" - ], - [ - "▁Int", - "el" - ], - [ - "el", - "ia" - ], - [ - "eli", - "a" - ], - [ - "e", - "lia" - ], - [ - "▁č", - "lán" - ], - [ - "▁c", - "hi" - ], - [ - "▁ch", - "i" - ], - [ - "▁", - "chi" - ], - [ - "▁k", - "las" - ], - [ - "▁kl", - "as" - ], - [ - "au", - "té" - ], - [ - "aut", - "é" - ], - [ - "▁st", - "ark" - ], - [ - "▁star", - "k" - ], - [ - "cz", - "e" - ], - [ - "c", - "ze" - ], - [ - "▁dr", - "ivers" - ], - [ - "▁driver", - "s" - ], - [ - "▁drive", - "rs" - ], - [ - "▁dri", - "vers" - ], - [ - "▁driv", - "ers" - ], - [ - "v", - "n" - ], - [ - "!", - "," - ], - [ - "▁го", - "ды" - ], - [ - "▁год", - "ы" - ], - [ - "H", - "i" - ], - [ - "▁expla", - "ins" - ], - [ - "▁expl", - "ains" - ], - [ - "▁explain", - "s" - ], - [ - "art", - "icles" - ], - [ - "article", - "s" - ], - [ - "▁z", - "ug" - ], - [ - "▁zu", - "g" - ], - [ - "▁", - "zug" - ], - [ - "Pro", - "m" - ], - [ - "Pr", - "om" - ], - [ - "P", - "rom" - ], - [ - ">", - "=" - ], - [ - "▁Be", - "at" - ], - [ - "▁S", - "ax" - ], - [ - "▁Sa", - "x" - ], - [ - "vert", - "ical" - ], - [ - "кт", - "о" - ], - [ - "к", - "то" - ], - [ - "▁pl", - "ants" - ], - [ - "▁plan", - "ts" - ], - [ - "▁plant", - "s" - ], - [ - "▁Ré", - "férences" - ], - [ - "▁Référence", - "s" - ], - [ - "▁og", - "ni" - ], - [ - "▁c", - "urs" - ], - [ - "▁cu", - "rs" - ], - [ - "▁cur", - "s" - ], - [ - "▁S", - "K" - ], - [ - "▁", - "SK" - ], - [ - "он", - "и" - ], - [ - "о", - "ни" - ], - [ - "▁des", - "tac" - ], - [ - "▁dest", - "ac" - ], - [ - "\")", - ";\r" - ], - [ - "\");", - "\r" - ], - [ - "\"", - ");\r" - ], - [ - "▁S", - "ure" - ], - [ - "▁Su", - "re" - ], - [ - "▁Sur", - "e" - ], - [ - "▁part", - "ido" - ], - [ - "▁parti", - "do" - ], - [ - "▁Fol", - "ge" - ], - [ - "▁Mo", - "ore" - ], - [ - "▁w", - "z" - ], - [ - "ск", - "ус" - ], - [ - "ску", - "с" - ], - [ - "lt", - "re" - ], - [ - "l", - "tre" - ], - [ - "on", - "do" - ], - [ - "ond", - "o" - ], - [ - "▁p", - "ose" - ], - [ - "▁po", - "se" - ], - [ - "▁pos", - "e" - ], - [ - "▁", - "pose" - ], - [ - "im", - "os" - ], - [ - "imo", - "s" - ], - [ - "i", - "mos" - ], - [ - "бо", - "й" - ], - [ - "ци", - "па" - ], - [ - "ju", - "s" - ], - [ - "j", - "us" - ], - [ - "..", - "..." - ], - [ - "...", - ".." - ], - [ - "....", - "." - ], - [ - ".", - "...." - ], - [ - "▁ép", - "oca" - ], - [ - "▁qu", - "anto" - ], - [ - "▁quant", - "o" - ], - [ - "▁quan", - "to" - ], - [ - "▁Su", - "pport" - ], - [ - "▁Supp", - "ort" - ], - [ - "▁Sup", - "port" - ], - [ - "▁", - "Support" - ], - [ - "gesch", - "ichte" - ], - [ - "SER", - "VER" - ], - [ - "▁George", - "s" - ], - [ - "▁Georg", - "es" - ], - [ - "en", - "um" - ], - [ - "enu", - "m" - ], - [ - "e", - "num" - ], - [ - "▁h", - "erm" - ], - [ - "▁he", - "rm" - ], - [ - "▁her", - "m" - ], - [ - "▁ne", - "bo" - ], - [ - "▁C", - "hr" - ], - [ - "▁Ch", - "r" - ], - [ - "▁", - "Chr" - ], - [ - "char", - "acter" - ], - [ - "▁*", - "**" - ], - [ - "▁**", - "*" - ], - [ - "▁", - "***" - ], - [ - "▁For", - "sch" - ], - [ - "ia", - "mi" - ], - [ - "iam", - "i" - ], - [ - "i", - "ami" - ], - [ - "▁", - "¿" - ], - [ - "cy", - "ch" - ], - [ - "cyc", - "h" - ], - [ - "c", - "ych" - ], - [ - "▁fif", - "th" - ], - [ - "se", - "nt" - ], - [ - "sen", - "t" - ], - [ - "s", - "ent" - ], - [ - "▁and", - "erem" - ], - [ - "▁andere", - "m" - ], - [ - "▁proport", - "ion" - ], - [ - "▁propor", - "tion" - ], - [ - "▁p", - "rest" - ], - [ - "▁pr", - "est" - ], - [ - "▁pre", - "st" - ], - [ - "▁pres", - "t" - ], - [ - "▁G", - "irl" - ], - [ - "▁Gi", - "rl" - ], - [ - "▁Gir", - "l" - ], - [ - "▁d", - "rama" - ], - [ - "▁dr", - "ama" - ], - [ - "▁dra", - "ma" - ], - [ - "▁dram", - "a" - ], - [ - "wa", - "nd" - ], - [ - "wan", - "d" - ], - [ - "w", - "and" - ], - [ - "▁M", - "ail" - ], - [ - "▁Ma", - "il" - ], - [ - "▁Mai", - "l" - ], - [ - "▁", - "Mail" - ], - [ - "▁L", - "ux" - ], - [ - "▁Lu", - "x" - ], - [ - "▁kter", - "ý" - ], - [ - "▁Ges", - "ellschaft" - ], - [ - "▁Hin", - "weis" - ], - [ - "nis", - "se" - ], - [ - "n", - "isse" - ], - [ - "▁m", - "ondo" - ], - [ - "▁mon", - "do" - ], - [ - "▁mond", - "o" - ], - [ - "E", - "q" - ], - [ - "▁per", - "í" - ], - [ - "▁pe", - "rí" - ], - [ - "▁e", - "astern" - ], - [ - "▁eas", - "tern" - ], - [ - "▁east", - "ern" - ], - [ - "▁UE", - "FA" - ], - [ - "ual", - "e" - ], - [ - "ua", - "le" - ], - [ - "u", - "ale" - ], - [ - "▁con", - "vex" - ], - [ - "▁conv", - "ex" - ], - [ - "▁по", - "ль" - ], - [ - "▁пол", - "ь" - ], - [ - "▁", - "поль" - ], - [ - "▁H", - "ey" - ], - [ - "▁He", - "y" - ], - [ - "ze", - "nie" - ], - [ - "zen", - "ie" - ], - [ - "z", - "enie" - ], - [ - "init", - "ely" - ], - [ - "▁Z", - "usammen" - ], - [ - "SS", - "L" - ], - [ - "S", - "SL" - ], - [ - "oc", - "al" - ], - [ - "oca", - "l" - ], - [ - "o", - "cal" - ], - [ - "▁c", - "anal" - ], - [ - "▁can", - "al" - ], - [ - "▁ca", - "nal" - ], - [ - "vo", - "y" - ], - [ - "v", - "oy" - ], - [ - "▁К", - "ри" - ], - [ - "▁köz", - "ött" - ], - [ - "▁c", - "ars" - ], - [ - "▁car", - "s" - ], - [ - "▁ca", - "rs" - ], - [ - "▁vers", - "ión" - ], - [ - "En", - "vironment" - ], - [ - "He", - "r" - ], - [ - "H", - "er" - ], - [ - "▁se", - "ñ" - ], - [ - "▁sp", - "atial" - ], - [ - "ym", - "i" - ], - [ - "y", - "mi" - ], - [ - "Fi", - "re" - ], - [ - "F", - "ire" - ], - [ - "▁ve", - "get" - ], - [ - "▁veg", - "et" - ], - [ - "▁W", - "ie" - ], - [ - "▁Wi", - "e" - ], - [ - "▁zn", - "aj" - ], - [ - "▁zna", - "j" - ], - [ - "▁dam", - "age" - ], - [ - "▁en", - "dl" - ], - [ - "▁end", - "l" - ], - [ - "▁", - "endl" - ], - [ - "gi", - "f" - ], - [ - "g", - "if" - ], - [ - "▁qu", - "ali" - ], - [ - "▁qual", - "i" - ], - [ - "▁которы", - "х" - ], - [ - "el", - "lan" - ], - [ - "ell", - "an" - ], - [ - "ella", - "n" - ], - [ - "▁m", - "ens" - ], - [ - "▁me", - "ns" - ], - [ - "▁men", - "s" - ], - [ - "▁pl", - "ug" - ], - [ - "▁a", - "bund" - ], - [ - "▁ab", - "und" - ], - [ - "FI", - "G" - ], - [ - "F", - "IG" - ], - [ - "▁s", - "f" - ], - [ - "▁", - "sf" - ], - [ - "▁con", - "fl" - ], - [ - "▁conf", - "l" - ], - [ - "▁насе", - "ления" - ], - [ - "▁princi", - "ples" - ], - [ - "▁princip", - "les" - ], - [ - "▁principle", - "s" - ], - [ - "▁Gab", - "riel" - ], - [ - "ib", - "e" - ], - [ - "i", - "be" - ], - [ - "▁{", - "%" - ], - [ - "▁", - "{%" - ], - [ - "▁pobla", - "ció" - ], - [ - "ні", - "ципа" - ], - [ - "▁ext", - "reme" - ], - [ - "▁extrem", - "e" - ], - [ - "▁extr", - "eme" - ], - [ - "▁as", - "se" - ], - [ - "▁ass", - "e" - ], - [ - "▁", - "asse" - ], - [ - "▁v", - "u" - ], - [ - "▁", - "vu" - ], - [ - "Mo", - "ck" - ], - [ - "M", - "ock" - ], - [ - "▁spiel", - "te" - ], - [ - "▁A", - "er" - ], - [ - "▁d", - "atos" - ], - [ - "▁dat", - "os" - ], - [ - "en", - "des" - ], - [ - "end", - "es" - ], - [ - "ende", - "s" - ], - [ - "▁G", - "el" - ], - [ - "▁Ge", - "l" - ], - [ - "▁G", - "or" - ], - [ - "▁Go", - "r" - ], - [ - "Ch", - "rist" - ], - [ - "Chr", - "ist" - ], - [ - "ch", - "os" - ], - [ - "cho", - "s" - ], - [ - "c", - "hos" - ], - [ - "Process", - "or" - ], - [ - "Proc", - "essor" - ], - [ - "▁in", - "struct" - ], - [ - "▁inst", - "ruct" - ], - [ - "▁instru", - "ct" - ], - [ - "▁p", - "icked" - ], - [ - "▁pick", - "ed" - ], - [ - "▁pic", - "ked" - ], - [ - "nah", - "me" - ], - [ - "nahm", - "e" - ], - [ - "fa", - "hr" - ], - [ - "fah", - "r" - ], - [ - "f", - "ahr" - ], - [ - "▁indic", - "ated" - ], - [ - "▁indicate", - "d" - ], - [ - "▁%", - "." - ], - [ - "▁", - "%." - ], - [ - "▁t", - "s" - ], - [ - "▁", - "ts" - ], - [ - "▁not", - "able" - ], - [ - "▁no", - "table" - ], - [ - "▁qual", - "ified" - ], - [ - "▁А", - "л" - ], - [ - "Bl", - "ack" - ], - [ - "B", - "lack" - ], - [ - "▁coun", - "cil" - ], - [ - "▁over", - "head" - ], - [ - "ac", - "i" - ], - [ - "a", - "ci" - ], - [ - "an", - "née" - ], - [ - "ann", - "ée" - ], - [ - "▁init", - "With" - ], - [ - "bi", - "ó" - ], - [ - "b", - "ió" - ], - [ - "▁int", - "roduction" - ], - [ - "▁introdu", - "ction" - ], - [ - "▁compan", - "ion" - ], - [ - "▁ex", - "pon" - ], - [ - "▁exp", - "on" - ], - [ - "▁k", - "ör" - ], - [ - "▁kö", - "r" - ], - [ - "ob", - "y" - ], - [ - "o", - "by" - ], - [ - "bu", - "rn" - ], - [ - "bur", - "n" - ], - [ - "b", - "urn" - ], - [ - "gn", - "u" - ], - [ - "g", - "nu" - ], - [ - "virt", - "ual" - ], - [ - "v", - "irtual" - ], - [ - "▁intel", - "lect" - ], - [ - "▁д", - "ержа" - ], - [ - "▁", - "держа" - ], - [ - "'", - "+" - ], - [ - "б", - "ле" - ], - [ - "▁strict", - "ly" - ], - [ - "▁recogn", - "ize" - ], - [ - "ho", - "ur" - ], - [ - "hou", - "r" - ], - [ - "h", - "our" - ], - [ - "▁W", - "rest" - ], - [ - "en", - "nen" - ], - [ - "enn", - "en" - ], - [ - "enne", - "n" - ], - [ - "$)", - "." - ], - [ - "$", - ")." - ], - [ - "ff", - "f" - ], - [ - "f", - "ff" - ], - [ - "▁Cent", - "ro" - ], - [ - "▁P", - "itt" - ], - [ - "▁Pi", - "tt" - ], - [ - "▁Pit", - "t" - ], - [ - "▁d", - "ział" - ], - [ - "▁dz", - "iał" - ], - [ - "▁", - "dział" - ], - [ - "▁c", - "ela" - ], - [ - "▁ce", - "la" - ], - [ - "▁cel", - "a" - ], - [ - "▁frances", - "e" - ], - [ - "▁franc", - "ese" - ], - [ - "ра", - "ми" - ], - [ - "spe", - "cial" - ], - [ - "spec", - "ial" - ], - [ - "▁D", - "up" - ], - [ - "▁Du", - "p" - ], - [ - "to", - "ire" - ], - [ - "t", - "oire" - ], - [ - "ка", - "ль" - ], - [ - "кал", - "ь" - ], - [ - "к", - "аль" - ], - [ - "CO", - "UNT" - ], - [ - "▁Br", - "ook" - ], - [ - "▁Bro", - "ok" - ], - [ - "▁ру", - "ково" - ], - [ - "pub", - "lique" - ], - [ - "▁se", - "conda" - ], - [ - "▁second", - "a" - ], - [ - "▁sec", - "onda" - ], - [ - "▁com", - "pt" - ], - [ - "▁comp", - "t" - ], - [ - "▁b", - "land" - ], - [ - "▁bl", - "and" - ], - [ - "▁bla", - "nd" - ], - [ - "▁blan", - "d" - ], - [ - "Be", - "fore" - ], - [ - "▁P", - "ack" - ], - [ - "▁Pa", - "ck" - ], - [ - "▁Pac", - "k" - ], - [ - "▁", - "Pack" - ], - [ - "al", - "ty" - ], - [ - "alt", - "y" - ], - [ - "öd", - "er" - ], - [ - "ö", - "der" - ], - [ - "▁interval", - "s" - ], - [ - "▁Daten", - "bank" - ], - [ - "Mo", - "vie" - ], - [ - "M", - "ovie" - ], - [ - "▁trans", - "m" - ], - [ - "▁tran", - "sm" - ], - [ - "▁t", - "ap" - ], - [ - "▁ta", - "p" - ], - [ - "▁по", - "ч" - ], - [ - "fo", - "n" - ], - [ - "f", - "on" - ], - [ - "ia", - "i" - ], - [ - "i", - "ai" - ], - [ - "▁f", - "ib" - ], - [ - "▁fi", - "b" - ], - [ - "▁w", - "yd" - ], - [ - "▁wy", - "d" - ], - [ - "▁h", - "ung" - ], - [ - "▁hun", - "g" - ], - [ - "▁hu", - "ng" - ], - [ - "▁", - "hung" - ], - [ - "▁a", - "live" - ], - [ - "▁al", - "ive" - ], - [ - "▁ali", - "ve" - ], - [ - "Cl", - "ear" - ], - [ - "C", - "lear" - ], - [ - "▁p", - "ushed" - ], - [ - "▁push", - "ed" - ], - [ - "▁tu", - "ple" - ], - [ - "▁", - "tuple" - ], - [ - "ach", - "en" - ], - [ - "ac", - "hen" - ], - [ - "ache", - "n" - ], - [ - "a", - "chen" - ], - [ - "го", - "во" - ], - [ - "гов", - "о" - ], - [ - "г", - "ово" - ], - [ - "▁re", - "vers" - ], - [ - "▁rev", - "ers" - ], - [ - "▁reve", - "rs" - ], - [ - "▁rever", - "s" - ], - [ - "▁au", - "gment" - ], - [ - "▁aug", - "ment" - ], - [ - "▁ch", - "allenge" - ], - [ - "▁challeng", - "e" - ], - [ - "lo", - "st" - ], - [ - "los", - "t" - ], - [ - "l", - "ost" - ], - [ - "▁deux", - "ième" - ], - [ - "struct", - "or" - ], - [ - "stru", - "ctor" - ], - [ - "▁mehr", - "erer" - ], - [ - "▁mehrere", - "r" - ], - [ - "at", - "ural" - ], - [ - "atur", - "al" - ], - [ - "atura", - "l" - ], - [ - "atu", - "ral" - ], - [ - "Sp", - "lit" - ], - [ - "S", - "plit" - ], - [ - "ст", - "ем" - ], - [ - "сте", - "м" - ], - [ - "с", - "тем" - ], - [ - "ш", - "ла" - ], - [ - ")\\", - "\\" - ], - [ - ")", - "\\\\" - ], - [ - "▁D", - "og" - ], - [ - "▁Do", - "g" - ], - [ - "▁develop", - "ers" - ], - [ - "▁developer", - "s" - ], - [ - "▁", - "developers" - ], - [ - "▁n", - "od" - ], - [ - "▁no", - "d" - ], - [ - "▁сто", - "ро" - ], - [ - "▁Na", - "N" - ], - [ - "▁", - "NaN" - ], - [ - "▁pr", - "iest" - ], - [ - "▁pri", - "est" - ], - [ - "▁ex", - "ha" - ], - [ - "UN", - "D" - ], - [ - "U", - "ND" - ], - [ - "pa", - "ir" - ], - [ - "p", - "air" - ], - [ - "al", - "one" - ], - [ - "alo", - "ne" - ], - [ - "▁m", - "oon" - ], - [ - "▁mo", - "on" - ], - [ - "▁#", - "!/" - ], - [ - "▁g", - "uns" - ], - [ - "▁gu", - "ns" - ], - [ - "▁gun", - "s" - ], - [ - "ro", - "la" - ], - [ - "rol", - "a" - ], - [ - "r", - "ola" - ], - [ - "чи", - "та" - ], - [ - "▁Encyc", - "lopedia" - ], - [ - "▁Encyclop", - "edia" - ], - [ - "at", - "is" - ], - [ - "ati", - "s" - ], - [ - "a", - "tis" - ], - [ - "▁'", - "\"" - ], - [ - "▁", - "'\"" - ], - [ - "zy", - "ch" - ], - [ - "z", - "ych" - ], - [ - "▁super", - "fic" - ], - [ - "▁э", - "к" - ], - [ - "еде", - "ра" - ], - [ - "fe", - "ed" - ], - [ - "f", - "eed" - ], - [ - "LA", - "Y" - ], - [ - "F", - "i" - ], - [ - "un", - "ks" - ], - [ - "unk", - "s" - ], - [ - "ise", - "cond" - ], - [ - "i", - "second" - ], - [ - "▁'", - "@" - ], - [ - "▁Ad", - "ding" - ], - [ - "▁Add", - "ing" - ], - [ - "ро", - "е" - ], - [ - "▁t", - "ang" - ], - [ - "▁tan", - "g" - ], - [ - "▁ta", - "ng" - ], - [ - "ц", - "о" - ], - [ - "hu", - "ng" - ], - [ - "h", - "ung" - ], - [ - "bi", - "s" - ], - [ - "b", - "is" - ], - [ - "sk", - "ého" - ], - [ - "ské", - "ho" - ], - [ - "▁ad", - "vert" - ], - [ - "▁adv", - "ert" - ], - [ - "▁за", - "нима" - ], - [ - "uz", - "z" - ], - [ - "u", - "zz" - ], - [ - "ág", - "ina" - ], - [ - "▁T", - "el" - ], - [ - "▁Te", - "l" - ], - [ - "si", - "g" - ], - [ - "s", - "ig" - ], - [ - "▁E", - "z" - ], - [ - "▁guarante", - "e" - ], - [ - "▁te", - "aching" - ], - [ - "▁teach", - "ing" - ], - [ - "ot", - "y" - ], - [ - "o", - "ty" - ], - [ - "ter", - "min" - ], - [ - "term", - "in" - ], - [ - "▁distribution", - "s" - ], - [ - "▁distrib", - "utions" - ], - [ - "FL", - "A" - ], - [ - "F", - "LA" - ], - [ - "▁Gi", - "useppe" - ], - [ - "query", - "Selector" - ], - [ - "▁/", - "\\" - ], - [ - "▁", - "/\\" - ], - [ - "▁S", - "quad" - ], - [ - "g", - "z" - ], - [ - "de", - "lay" - ], - [ - "del", - "ay" - ], - [ - "▁surr", - "ounding" - ], - [ - "▁m", - "anus" - ], - [ - "▁man", - "us" - ], - [ - "▁H", - "ou" - ], - [ - "▁Ho", - "u" - ], - [ - "²", - "," - ], - [ - "▁cult", - "iv" - ], - [ - "▁trouble", - "s" - ], - [ - "▁trou", - "bles" - ], - [ - "▁r", - "aison" - ], - [ - "▁ra", - "ison" - ], - [ - "exp", - "and" - ], - [ - "▁c", - "ov" - ], - [ - "▁co", - "v" - ], - [ - "▁", - "cov" - ], - [ - "nung", - "en" - ], - [ - "n", - "ungen" - ], - [ - "))", - "{" - ], - [ - ")", - "){" - ], - [ - "▁g", - "een" - ], - [ - "▁ge", - "en" - ], - [ - "▁au", - "ßer" - ], - [ - "▁Л", - "і" - ], - [ - "ř", - "i" - ], - [ - "▁situ", - "ations" - ], - [ - "▁situation", - "s" - ], - [ - "▁tele", - "p" - ], - [ - "▁tel", - "ep" - ], - [ - "▁J", - "ed" - ], - [ - "▁Je", - "d" - ], - [ - "▁trav", - "ail" - ], - [ - "▁trava", - "il" - ], - [ - "li", - "as" - ], - [ - "lia", - "s" - ], - [ - "l", - "ias" - ], - [ - "bul", - "let" - ], - [ - "▁select", - "ing" - ], - [ - "av", - "ier" - ], - [ - "avi", - "er" - ], - [ - "a", - "vier" - ], - [ - "▁ess", - "ential" - ], - [ - "(", - "/" - ], - [ - "yy", - "yy" - ], - [ - "št", - "ě" - ], - [ - "ul", - "ty" - ], - [ - "ult", - "y" - ], - [ - "▁k", - "ra" - ], - [ - "▁kr", - "a" - ], - [ - "▁t", - "abs" - ], - [ - "▁tab", - "s" - ], - [ - "▁ta", - "bs" - ], - [ - "▁", - "tabs" - ], - [ - "▁experience", - "d" - ], - [ - "▁experien", - "ced" - ], - [ - "az", - "i" - ], - [ - "a", - "zi" - ], - [ - "▁D", - "irectory" - ], - [ - "▁Direct", - "ory" - ], - [ - "▁Director", - "y" - ], - [ - "▁", - "Directory" - ], - [ - "▁c", - "ron" - ], - [ - "▁cr", - "on" - ], - [ - "▁cro", - "n" - ], - [ - "▁s", - "pend" - ], - [ - "▁sp", - "end" - ], - [ - "▁spe", - "nd" - ], - [ - "▁R", - "A" - ], - [ - "▁", - "RA" - ], - [ - "▁s", - "elenium" - ], - [ - "▁sel", - "enium" - ], - [ - "▁", - "selenium" - ], - [ - "▁T", - "hé" - ], - [ - "▁Th", - "é" - ], - [ - "Element", - "s" - ], - [ - "El", - "ements" - ], - [ - "ci", - "i" - ], - [ - "c", - "ii" - ], - [ - "▁p", - "lat" - ], - [ - "▁pl", - "at" - ], - [ - "▁pla", - "t" - ], - [ - "▁arch", - "ive" - ], - [ - "▁archiv", - "e" - ], - [ - "▁", - "archive" - ], - [ - "▁ass", - "istance" - ], - [ - "▁assist", - "ance" - ], - [ - "▁ne", - "ck" - ], - [ - "▁A", - "venue" - ], - [ - "▁Aven", - "ue" - ], - [ - "▁w", - "heel" - ], - [ - "▁whe", - "el" - ], - [ - "▁h", - "ade" - ], - [ - "▁ha", - "de" - ], - [ - "▁had", - "e" - ], - [ - "Com", - "mon" - ], - [ - "Comm", - "on" - ], - [ - "▁D", - "ialog" - ], - [ - "▁Di", - "alog" - ], - [ - "▁Dia", - "log" - ], - [ - "▁", - "Dialog" - ], - [ - "▁f", - "org" - ], - [ - "▁for", - "g" - ], - [ - "▁fo", - "rg" - ], - [ - "▁sur", - "ely" - ], - [ - "▁sure", - "ly" - ], - [ - "▁h", - "ockey" - ], - [ - "kt", - "ó" - ], - [ - "k", - "tó" - ], - [ - "▁t", - "k" - ], - [ - "▁", - "tk" - ], - [ - "▁Br", - "uce" - ], - [ - "▁Bru", - "ce" - ], - [ - "▁e", - "norm" - ], - [ - "▁en", - "orm" - ], - [ - ",", - "’" - ], - [ - "▁Christ", - "opher" - ], - [ - "▁Christoph", - "er" - ], - [ - "je", - "v" - ], - [ - "j", - "ev" - ], - [ - "▁qu", - "ad" - ], - [ - "▁", - "quad" - ], - [ - "▁A", - "JAX" - ], - [ - "▁rel", - "ief" - ], - [ - "▁reli", - "ef" - ], - [ - "▁m", - "odes" - ], - [ - "▁mod", - "es" - ], - [ - "▁mo", - "des" - ], - [ - "▁mode", - "s" - ], - [ - "sk", - "lär" - ], - [ - "s", - "klär" - ], - [ - "▁V", - "id" - ], - [ - "▁Vi", - "d" - ], - [ - "▁Se", - "rial" - ], - [ - "▁Ser", - "ial" - ], - [ - "▁", - "Serial" - ], - [ - "▁to", - "kens" - ], - [ - "▁token", - "s" - ], - [ - "▁Pol", - "and" - ], - [ - "▁Po", - "land" - ], - [ - "\\", - "]" - ], - [ - "▁v", - "ide" - ], - [ - "▁vi", - "de" - ], - [ - "▁vid", - "e" - ], - [ - "ro", - "oms" - ], - [ - "room", - "s" - ], - [ - "om", - "as" - ], - [ - "oma", - "s" - ], - [ - "o", - "mas" - ], - [ - "▁B", - "ureau" - ], - [ - "▁Bur", - "eau" - ], - [ - "c", - "x" - ], - [ - "ность", - "ю" - ], - [ - "ност", - "ью" - ], - [ - "▁sign", - "s" - ], - [ - "▁sig", - "ns" - ], - [ - "ше", - "ние" - ], - [ - "los", - "sen" - ], - [ - "loss", - "en" - ], - [ - "l", - "ossen" - ], - [ - "▁Que", - "ens" - ], - [ - "▁Queen", - "s" - ], - [ - "▁m", - "embre" - ], - [ - "▁mem", - "bre" - ], - [ - "▁memb", - "re" - ], - [ - "▁m", - "ez" - ], - [ - "▁me", - "z" - ], - [ - "▁", - "mez" - ], - [ - "▁B", - "ool" - ], - [ - "▁Bo", - "ol" - ], - [ - "▁", - "Bool" - ], - [ - "▁N", - "aj" - ], - [ - "▁Na", - "j" - ], - [ - "▁Mem", - "ory" - ], - [ - "▁", - "Memory" - ], - [ - "▁K", - "han" - ], - [ - "▁Kh", - "an" - ], - [ - "▁l", - "à" - ], - [ - "▁", - "là" - ], - [ - "▁H", - "ud" - ], - [ - "▁Hu", - "d" - ], - [ - "▁d", - "ismiss" - ], - [ - "▁dis", - "miss" - ], - [ - "ight", - "h" - ], - [ - "igh", - "th" - ], - [ - "▁f", - "s" - ], - [ - "▁", - "fs" - ], - [ - "pr", - "event" - ], - [ - "pre", - "vent" - ], - [ - "prev", - "ent" - ], - [ - "▁ме", - "да" - ], - [ - "▁Pol", - "ice" - ], - [ - "▁Po", - "lice" - ], - [ - "▁с", - "ко" - ], - [ - "▁", - "ско" - ], - [ - "fin", - "ite" - ], - [ - "▁a", - "mi" - ], - [ - "▁am", - "i" - ], - [ - "▁", - "ami" - ], - [ - "▁M", - "uch" - ], - [ - "▁Mu", - "ch" - ], - [ - "ow", - "ania" - ], - [ - "owa", - "nia" - ], - [ - "owan", - "ia" - ], - [ - "OR", - "Y" - ], - [ - "O", - "RY" - ], - [ - "io", - "rs" - ], - [ - "ior", - "s" - ], - [ - "i", - "ors" - ], - [ - "▁Prem", - "io" - ], - [ - "▁text", - "box" - ], - [ - "d", - "m" - ], - [ - "▁a", - "fin" - ], - [ - "▁af", - "in" - ], - [ - "▁Don", - "ald" - ], - [ - "▁", - "Donald" - ], - [ - "▁P", - "riv" - ], - [ - "▁Pr", - "iv" - ], - [ - "▁Pri", - "v" - ], - [ - "▁de", - "cid" - ], - [ - "▁dec", - "id" - ], - [ - "▁Maur", - "ice" - ], - [ - "▁Mau", - "rice" - ], - [ - "ag", - "an" - ], - [ - "aga", - "n" - ], - [ - "a", - "gan" - ], - [ - "▁Britann", - "ica" - ], - [ - "▁o", - "ft" - ], - [ - "▁of", - "t" - ], - [ - "▁consec", - "utive" - ], - [ - "\"?", - ">" - ], - [ - "\"", - "?>" - ], - [ - "ови", - "й" - ], - [ - "st", - "udent" - ], - [ - "stud", - "ent" - ], - [ - "▁pe", - "que" - ], - [ - "▁di", - "eses" - ], - [ - "▁dies", - "es" - ], - [ - "▁diese", - "s" - ], - [ - "▁ret", - "our" - ], - [ - "ét", - "r" - ], - [ - "é", - "tr" - ], - [ - "▁с", - "ез" - ], - [ - "▁се", - "з" - ], - [ - "▁k", - "re" - ], - [ - "▁kr", - "e" - ], - [ - "▁", - "kre" - ], - [ - "▁v", - "otes" - ], - [ - "▁vo", - "tes" - ], - [ - "▁vot", - "es" - ], - [ - "▁vote", - "s" - ], - [ - "ru", - "ption" - ], - [ - "rupt", - "ion" - ], - [ - "rup", - "tion" - ], - [ - "iz", - "ada" - ], - [ - "iza", - "da" - ], - [ - "▁W", - "iel" - ], - [ - "▁Wi", - "el" - ], - [ - "▁Wie", - "l" - ], - [ - "▁G", - "ray" - ], - [ - "▁Gr", - "ay" - ], - [ - "▁Gra", - "y" - ], - [ - "▁Le", - "op" - ], - [ - "▁Leo", - "p" - ], - [ - "teil", - "ung" - ], - [ - "tei", - "lung" - ], - [ - "([", - "'" - ], - [ - "(", - "['" - ], - [ - "▁wh", - "ites" - ], - [ - "▁white", - "s" - ], - [ - "fr", - "ica" - ], - [ - "fri", - "ca" - ], - [ - "f", - "rica" - ], - [ - "an", - "imation" - ], - [ - "anim", - "ation" - ], - [ - "cur", - "l" - ], - [ - "cu", - "rl" - ], - [ - "c", - "url" - ], - [ - "ling", - "s" - ], - [ - "lin", - "gs" - ], - [ - "l", - "ings" - ], - [ - "=\"", - "$" - ], - [ - "lo", - "yd" - ], - [ - "loy", - "d" - ], - [ - "text", - "sc" - ], - [ - "ор", - "у" - ], - [ - "о", - "ру" - ], - [ - "▁се", - "ла" - ], - [ - "es", - "ian" - ], - [ - "esi", - "an" - ], - [ - "esia", - "n" - ], - [ - "▁M", - "ission" - ], - [ - "▁Miss", - "ion" - ], - [ - "▁не", - "за" - ], - [ - "▁ult", - "imately" - ], - [ - "бо", - "в" - ], - [ - "б", - "ов" - ], - [ - "ol", - "en" - ], - [ - "ole", - "n" - ], - [ - "o", - "len" - ], - [ - "ско", - "му" - ], - [ - "ском", - "у" - ], - [ - "ск", - "ому" - ], - [ - "с", - "кому" - ], - [ - "ne", - "te" - ], - [ - "net", - "e" - ], - [ - "n", - "ete" - ], - [ - "▁D", - "it" - ], - [ - "▁Di", - "t" - ], - [ - "▁co", - "stru" - ], - [ - "▁cost", - "ru" - ], - [ - "dep", - "endent" - ], - [ - "▁Re", - "source" - ], - [ - "▁Res", - "ource" - ], - [ - "▁", - "Resource" - ], - [ - "▁host", - "s" - ], - [ - "▁hos", - "ts" - ], - [ - "▁", - "hosts" - ], - [ - "▁re", - "ar" - ], - [ - "▁r", - "ear" - ], - [ - "D", - "uration" - ], - [ - "ни", - "ків" - ], - [ - "ник", - "ів" - ], - [ - "М", - "а" - ], - [ - "▁pl", - "anning" - ], - [ - "▁plan", - "ning" - ], - [ - "▁pre", - "diction" - ], - [ - "▁pred", - "iction" - ], - [ - "▁predict", - "ion" - ], - [ - "▁L", - "yn" - ], - [ - "▁Ly", - "n" - ], - [ - "▁k", - "ir" - ], - [ - "▁ki", - "r" - ], - [ - "▁", - "kir" - ], - [ - "▁Leg", - "isl" - ], - [ - "ма", - "т" - ], - [ - "м", - "ат" - ], - [ - "▁S", - "occer" - ], - [ - "▁Soc", - "cer" - ], - [ - "▁sur", - "vey" - ], - [ - "▁surv", - "ey" - ], - [ - "▁surve", - "y" - ], - [ - "▁estadoun", - "idense" - ], - [ - "or", - "gen" - ], - [ - "org", - "en" - ], - [ - "orge", - "n" - ], - [ - "jo", - "urd" - ], - [ - "jou", - "rd" - ], - [ - "j", - "ourd" - ], - [ - "▁ap", - "rile" - ], - [ - "▁april", - "e" - ], - [ - "▁apr", - "ile" - ], - [ - "▁i", - "ds" - ], - [ - "▁id", - "s" - ], - [ - "▁", - "ids" - ], - [ - "сь", - "ке" - ], - [ - "ськ", - "е" - ], - [ - "▁emp", - "loyee" - ], - [ - "▁employ", - "ee" - ], - [ - "▁", - "employee" - ], - [ - "▁Schaus", - "pieler" - ], - [ - "р", - "ъ" - ], - [ - "▁mult", - "imedia" - ], - [ - "▁multi", - "media" - ], - [ - "▁сво", - "ю" - ], - [ - "▁w", - "ine" - ], - [ - "▁win", - "e" - ], - [ - "▁E", - "U" - ], - [ - "ic", - "ă" - ], - [ - "▁R", - "hein" - ], - [ - "▁Rh", - "ein" - ], - [ - "▁Pal", - "mar" - ], - [ - "ot", - "eca" - ], - [ - "ote", - "ca" - ], - [ - "▁prep", - "are" - ], - [ - "▁prepar", - "e" - ], - [ - "▁", - "prepare" - ], - [ - "▁T", - "ot" - ], - [ - "▁To", - "t" - ], - [ - "▁N", - "ull" - ], - [ - "▁Nu", - "ll" - ], - [ - "▁", - "Null" - ], - [ - "▁k", - "in" - ], - [ - "▁ki", - "n" - ], - [ - "▁", - "kin" - ], - [ - "in", - "als" - ], - [ - "inal", - "s" - ], - [ - "ina", - "ls" - ], - [ - "▁New", - "ton" - ], - [ - "▁t", - "bl" - ], - [ - "▁", - "tbl" - ], - [ - "▁S", - "old" - ], - [ - "▁So", - "ld" - ], - [ - "▁Sol", - "d" - ], - [ - "▁ver", - "f" - ], - [ - "▁ve", - "rf" - ], - [ - "at", - "uring" - ], - [ - "atur", - "ing" - ], - [ - "atu", - "ring" - ], - [ - "▁la", - "ptop" - ], - [ - "▁lap", - "top" - ], - [ - "▁Со", - "вет" - ], - [ - "▁Сов", - "ет" - ], - [ - "▁Сове", - "т" - ], - [ - "se", - "cret" - ], - [ - "sec", - "ret" - ], - [ - "▁Olymp", - "ic" - ], - [ - "▁football", - "er" - ], - [ - "▁Rud", - "olf" - ], - [ - "▁con", - "he" - ], - [ - "zy", - "sk" - ], - [ - "▁evalu", - "ated" - ], - [ - "▁evaluate", - "d" - ], - [ - "»", - ")" - ], - [ - "sh", - "op" - ], - [ - "re", - "pository" - ], - [ - "▁z", - "ach" - ], - [ - "▁za", - "ch" - ], - [ - "▁l", - "osing" - ], - [ - "▁lo", - "sing" - ], - [ - "▁los", - "ing" - ], - [ - "et", - "ter" - ], - [ - "ett", - "er" - ], - [ - "ette", - "r" - ], - [ - "▁W", - "irtschaft" - ], - [ - "та", - "к" - ], - [ - "▁unnecess", - "ary" - ], - [ - "▁P", - "hot" - ], - [ - "▁Ph", - "ot" - ], - [ - "▁Pho", - "t" - ], - [ - "an", - "ska" - ], - [ - "ans", - "ka" - ], - [ - "ansk", - "a" - ], - [ - "▁N", - "ative" - ], - [ - "▁Nat", - "ive" - ], - [ - "▁", - "Native" - ], - [ - "CC", - "E" - ], - [ - "C", - "CE" - ], - [ - "▁fi", - "fty" - ], - [ - "▁fif", - "ty" - ], - [ - "▁e", - "rw" - ], - [ - "▁er", - "w" - ], - [ - "r", - "h" - ], - [ - "is", - "sent" - ], - [ - "iss", - "ent" - ], - [ - "isse", - "nt" - ], - [ - "issen", - "t" - ], - [ - "}{", - "(" - ], - [ - "}", - "{(" - ], - [ - "▁lan", - "ç" - ], - [ - "▁X", - "code" - ], - [ - "го", - "род" - ], - [ - "гор", - "од" - ], - [ - "ci", - "r" - ], - [ - "c", - "ir" - ], - [ - "▁pel", - "ícula" - ], - [ - "▁O", - "scar" - ], - [ - "▁Os", - "car" - ], - [ - "▁sh", - "ore" - ], - [ - "▁sho", - "re" - ], - [ - "▁supp", - "lied" - ], - [ - "ex", - "amples" - ], - [ - "example", - "s" - ], - [ - "Me", - "ss" - ], - [ - "M", - "ess" - ], - [ - "VI", - "CE" - ], - [ - "V", - "ICE" - ], - [ - "▁ex", - "clude" - ], - [ - "▁h", - "en" - ], - [ - "▁he", - "n" - ], - [ - "▁", - "hen" - ], - [ - "▁гу", - "бер" - ], - [ - "▁F", - "ragment" - ], - [ - "▁Fra", - "gment" - ], - [ - "▁", - "Fragment" - ], - [ - "▁B", - "itte" - ], - [ - "▁Bi", - "tte" - ], - [ - "▁Bit", - "te" - ], - [ - "▁Bes", - "ides" - ], - [ - "▁h", - "es" - ], - [ - "▁he", - "s" - ], - [ - "▁", - "hes" - ], - [ - "▁ih", - "rem" - ], - [ - "▁ihr", - "em" - ], - [ - "▁ihre", - "m" - ], - [ - "▁Ser", - "ge" - ], - [ - "▁art", - "ific" - ], - [ - "=\"", - "${" - ], - [ - "=\"$", - "{" - ], - [ - "ло", - "во" - ], - [ - "лов", - "о" - ], - [ - "л", - "ово" - ], - [ - "ut", - "eur" - ], - [ - "ute", - "ur" - ], - [ - "ta", - "ire" - ], - [ - "t", - "aire" - ], - [ - "па", - "с" - ], - [ - "▁eas", - "iest" - ], - [ - "▁fam", - "iglia" - ], - [ - "N", - "ormal" - ], - [ - "▁d", - "alle" - ], - [ - "▁da", - "lle" - ], - [ - "▁dal", - "le" - ], - [ - "▁dall", - "e" - ], - [ - "▁n", - "ations" - ], - [ - "▁nation", - "s" - ], - [ - "▁nat", - "ions" - ], - [ - "r", - "p" - ], - [ - "th", - "ead" - ], - [ - "the", - "ad" - ], - [ - "t", - "head" - ], - [ - "▁обла", - "сті" - ], - [ - "▁Democr", - "atic" - ], - [ - "▁челов", - "е" - ], - [ - "мо", - "ж" - ], - [ - "▁г", - "ер" - ], - [ - "▁ге", - "р" - ], - [ - "▁", - "гер" - ], - [ - "▁small", - "est" - ], - [ - "▁Publish", - "ing" - ], - [ - "▁T", - "s" - ], - [ - "▁laugh", - "ed" - ], - [ - "ll", - "e" - ], - [ - "l", - "le" - ], - [ - "▁A", - "mt" - ], - [ - "▁Am", - "t" - ], - [ - "▁I", - "IS" - ], - [ - "▁II", - "S" - ], - [ - "FOR", - "M" - ], - [ - "F", - "ORM" - ], - [ - "Ma", - "g" - ], - [ - "M", - "ag" - ], - [ - "до", - "н" - ], - [ - "д", - "он" - ], - [ - "▁st", - "oria" - ], - [ - "▁stor", - "ia" - ], - [ - "▁sto", - "ria" - ], - [ - "▁organ", - "ized" - ], - [ - "▁organiz", - "ed" - ], - [ - "č", - "ní" - ], - [ - "▁o", - "x" - ], - [ - "▁", - "ox" - ], - [ - "ling", - "en" - ], - [ - "lin", - "gen" - ], - [ - "l", - "ingen" - ], - [ - "▁lu", - "ego" - ], - [ - "cc", - "ió" - ], - [ - "c", - "ció" - ], - [ - "▁re", - "ly" - ], - [ - "▁r", - "ely" - ], - [ - "▁rel", - "y" - ], - [ - "▁t", - "ussen" - ], - [ - "er", - "ten" - ], - [ - "ert", - "en" - ], - [ - "erte", - "n" - ], - [ - "▁hon", - "our" - ], - [ - "▁Cla", - "ude" - ], - [ - "▁Claud", - "e" - ], - [ - "▁Ko", - "rea" - ], - [ - "▁Kore", - "a" - ], - [ - "▁Kor", - "ea" - ], - [ - "▁Met", - "ropol" - ], - [ - "▁Metro", - "pol" - ], - [ - "Su", - "per" - ], - [ - "S", - "uper" - ], - [ - "ri", - "en" - ], - [ - "rie", - "n" - ], - [ - "r", - "ien" - ], - [ - "ér", - "ature" - ], - [ - "att", - "ro" - ], - [ - "attr", - "o" - ], - [ - "▁б", - "іль" - ], - [ - "▁бі", - "ль" - ], - [ - "▁", - "біль" - ], - [ - "▁Her", - "bert" - ], - [ - "▁aut", - "eurs" - ], - [ - "▁aute", - "urs" - ], - [ - "▁dar", - "auf" - ], - [ - "▁m", - "ental" - ], - [ - "▁men", - "tal" - ], - [ - "▁ment", - "al" - ], - [ - "▁r", - "ang" - ], - [ - "▁ra", - "ng" - ], - [ - "▁ran", - "g" - ], - [ - "▁s", - "ón" - ], - [ - "▁só", - "n" - ], - [ - "▁S", - "oph" - ], - [ - "▁So", - "ph" - ], - [ - ")\"", - "," - ], - [ - ")", - "\"," - ], - [ - "Des", - "criptor" - ], - [ - "prep", - "are" - ], - [ - "▁Land", - "kreis" - ], - [ - "H", - "C" - ], - [ - "cr", - "oss" - ], - [ - "cro", - "ss" - ], - [ - "c", - "ross" - ], - [ - "ли", - "за" - ], - [ - "▁Lo", - "gin" - ], - [ - "▁Log", - "in" - ], - [ - "▁", - "Login" - ], - [ - "on", - "en" - ], - [ - "one", - "n" - ], - [ - "o", - "nen" - ], - [ - "Fe", - "ature" - ], - [ - "▁m", - "useum" - ], - [ - "▁muse", - "um" - ], - [ - "▁", - "museum" - ], - [ - "ve", - "k" - ], - [ - "v", - "ek" - ], - [ - "▁Nel", - "son" - ], - [ - "▁re", - "jo" - ], - [ - "▁коман", - "ди" - ], - [ - "▁sum", - "mar" - ], - [ - "▁summ", - "ar" - ], - [ - "▁сле", - "ду" - ], - [ - "▁след", - "у" - ], - [ - "äm", - "p" - ], - [ - "ä", - "mp" - ], - [ - "▁G", - "as" - ], - [ - "▁Ga", - "s" - ], - [ - "во", - "м" - ], - [ - "в", - "ом" - ], - [ - "VAL", - "UE" - ], - [ - "in", - "ge" - ], - [ - "ing", - "e" - ], - [ - "per", - "iod" - ], - [ - "lass", - "en" - ], - [ - "las", - "sen" - ], - [ - "lasse", - "n" - ], - [ - "l", - "assen" - ], - [ - "áv", - "al" - ], - [ - "á", - "val" - ], - [ - "▁alt", - "ogether" - ], - [ - "um", - "ph" - ], - [ - "ump", - "h" - ], - [ - "ist", - "ro" - ], - [ - "istr", - "o" - ], - [ - "ą", - "ż" - ], - [ - "▁Ke", - "ep" - ], - [ - "▁Mar", - "co" - ], - [ - "▁Marc", - "o" - ], - [ - "▁ét", - "ant" - ], - [ - "▁D", - "re" - ], - [ - "▁Dr", - "e" - ], - [ - "ge", - "ometry" - ], - [ - "▁K", - "as" - ], - [ - "▁Ka", - "s" - ], - [ - "message", - "s" - ], - [ - "mess", - "ages" - ], - [ - "Co", - "ok" - ], - [ - "C", - "ook" - ], - [ - "▁S", - "ide" - ], - [ - "▁Si", - "de" - ], - [ - "▁Sid", - "e" - ], - [ - "▁", - "Side" - ], - [ - "▁ко", - "ми" - ], - [ - "▁ком", - "и" - ], - [ - "ст", - "ри" - ], - [ - "стр", - "и" - ], - [ - "с", - "три" - ], - [ - "▁ex", - "cess" - ], - [ - "▁exc", - "ess" - ], - [ - "▁Bi", - "ografia" - ], - [ - "XX", - "XX" - ], - [ - "XXX", - "X" - ], - [ - "X", - "XXX" - ], - [ - "▁N", - "ie" - ], - [ - "▁Ni", - "e" - ], - [ - "ven", - "dor" - ], - [ - "v", - "endor" - ], - [ - "xs", - "d" - ], - [ - "x", - "sd" - ], - [ - "Mil", - "l" - ], - [ - "M", - "ill" - ], - [ - "process", - "ing" - ], - [ - "▁Miss", - "ouri" - ], - [ - "▁perm", - "ett" - ], - [ - "▁permet", - "t" - ], - [ - "▁a", - "par" - ], - [ - "▁ap", - "ar" - ], - [ - "▁cro", - "wd" - ], - [ - "▁crow", - "d" - ], - [ - "fer", - "t" - ], - [ - "fe", - "rt" - ], - [ - "f", - "ert" - ], - [ - "▁D", - "ou" - ], - [ - "▁Do", - "u" - ], - [ - "r", - "í" - ], - [ - "▁C", - "C" - ], - [ - "▁", - "CC" - ], - [ - "▁pay", - "ment" - ], - [ - "▁", - "payment" - ], - [ - "▁Hol", - "lywood" - ], - [ - "▁V", - "irtual" - ], - [ - "▁", - "Virtual" - ], - [ - "▁sp", - "oken" - ], - [ - "▁spoke", - "n" - ], - [ - "▁spo", - "ken" - ], - [ - "▁t", - "ram" - ], - [ - "▁tr", - "am" - ], - [ - "▁tra", - "m" - ], - [ - "▁Comm", - "unity" - ], - [ - "▁Commun", - "ity" - ], - [ - "▁administr", - "ative" - ], - [ - "▁в", - "оло" - ], - [ - "▁во", - "ло" - ], - [ - "gi", - "or" - ], - [ - "gio", - "r" - ], - [ - "g", - "ior" - ], - [ - "vis", - "or" - ], - [ - "▁Укра", - "и" - ], - [ - "st", - "age" - ], - [ - "sta", - "ge" - ], - [ - "stag", - "e" - ], - [ - "▁For", - "mat" - ], - [ - "▁Form", - "at" - ], - [ - "▁", - "Format" - ], - [ - "▁conven", - "ient" - ], - [ - "Н", - "а" - ], - [ - "▁med", - "ian" - ], - [ - "▁media", - "n" - ], - [ - "▁medi", - "an" - ], - [ - "▁в", - "ра" - ], - [ - "▁", - "вра" - ], - [ - "▁Пре", - "ма" - ], - [ - "en", - "ig" - ], - [ - "eni", - "g" - ], - [ - "e", - "nig" - ], - [ - "▁Op", - "era" - ], - [ - "▁Oper", - "a" - ], - [ - "ré", - "s" - ], - [ - "r", - "és" - ], - [ - "▁f", - "mt" - ], - [ - "▁", - "fmt" - ], - [ - "▁effic", - "iency" - ], - [ - "ma", - "le" - ], - [ - "mal", - "e" - ], - [ - "m", - "ale" - ], - [ - "Ma", - "ster" - ], - [ - "M", - "aster" - ], - [ - "Ser", - "ies" - ], - [ - "Se", - "ries" - ], - [ - "S", - "eries" - ], - [ - "▁s", - "yd" - ], - [ - "▁sy", - "d" - ], - [ - "gener", - "ic" - ], - [ - "inter", - "val" - ], - [ - "▁e", - "fect" - ], - [ - "▁inwon", - "ers" - ], - [ - "лим", - "пи" - ], - [ - "ir", - "ement" - ], - [ - "ire", - "ment" - ], - [ - "Er", - "r" - ], - [ - "E", - "rr" - ], - [ - "ö", - "h" - ], - [ - "▁l", - "ying" - ], - [ - "▁ly", - "ing" - ], - [ - "▁", - "lying" - ], - [ - "▁S", - "ettings" - ], - [ - "▁Setting", - "s" - ], - [ - "▁", - "Settings" - ], - [ - "!", - "=" - ], - [ - "em", - "atic" - ], - [ - "emat", - "ic" - ], - [ - "arg", - "v" - ], - [ - "▁Bas", - "ic" - ], - [ - "▁", - "Basic" - ], - [ - "▁consider", - "ation" - ], - [ - "▁h", - "abe" - ], - [ - "▁ha", - "be" - ], - [ - "▁hab", - "e" - ], - [ - "-", - "%" - ], - [ - "▁mount", - "ains" - ], - [ - "▁mountain", - "s" - ], - [ - "▁pe", - "ak" - ], - [ - "▁f", - "allen" - ], - [ - "▁fall", - "en" - ], - [ - "▁fal", - "len" - ], - [ - "ed", - "ed" - ], - [ - "ede", - "d" - ], - [ - "e", - "ded" - ], - [ - "log", - "ic" - ], - [ - "▁mat", - "ched" - ], - [ - "▁match", - "ed" - ], - [ - "▁typ", - "ing" - ], - [ - "▁ty", - "ping" - ], - [ - ")}", - "," - ], - [ - ")", - "}," - ], - [ - "▁f", - "ancy" - ], - [ - "▁fan", - "cy" - ], - [ - "▁eleg", - "ant" - ], - [ - "ا", - "ل" - ], - [ - "▁уча", - "ст" - ], - [ - "▁Sa", - "rah" - ], - [ - "▁Sar", - "ah" - ], - [ - "▁V", - "erd" - ], - [ - "▁Ver", - "d" - ], - [ - "▁Ve", - "rd" - ], - [ - "▁t", - "ego" - ], - [ - "▁te", - "go" - ], - [ - "ru", - "les" - ], - [ - "rule", - "s" - ], - [ - "r", - "ules" - ], - [ - "▁mo", - "unted" - ], - [ - "▁mount", - "ed" - ], - [ - "▁і", - "м" - ], - [ - "ер", - "у" - ], - [ - "е", - "ру" - ], - [ - "st", - "off" - ], - [ - "sto", - "ff" - ], - [ - "fa", - "hren" - ], - [ - "fah", - "ren" - ], - [ - "fahr", - "en" - ], - [ - "f", - "ahren" - ], - [ - "dist", - "ance" - ], - [ - "d", - "istance" - ], - [ - "▁Lic", - "ense" - ], - [ - "▁LE", - "FT" - ], - [ - "▁", - "LEFT" - ], - [ - "▁w", - "p" - ], - [ - "▁", - "wp" - ], - [ - "/", - "{" - ], - [ - "▁am", - "azon" - ], - [ - "▁amaz", - "on" - ], - [ - "▁", - "amazon" - ], - [ - ">", - "&" - ], - [ - "▁els", - "ő" - ], - [ - "qu", - "arters" - ], - [ - "▁sh", - "ock" - ], - [ - "▁sho", - "ck" - ], - [ - "ni", - "ck" - ], - [ - "nic", - "k" - ], - [ - "n", - "ick" - ], - [ - "▁Arch", - "ite" - ], - [ - "▁S", - "quare" - ], - [ - "▁r", - "ates" - ], - [ - "▁ra", - "tes" - ], - [ - "▁rate", - "s" - ], - [ - "▁rat", - "es" - ], - [ - "io", - "re" - ], - [ - "ior", - "e" - ], - [ - "i", - "ore" - ], - [ - "▁N", - "at" - ], - [ - "▁Na", - "t" - ], - [ - "▁Char", - "lot" - ], - [ - "re", - "ichen" - ], - [ - "reich", - "en" - ], - [ - "rei", - "chen" - ], - [ - "reiche", - "n" - ], - [ - "▁var", - "iation" - ], - [ - "▁vari", - "ation" - ], - [ - "os", - "is" - ], - [ - "osi", - "s" - ], - [ - "li", - "fe" - ], - [ - "l", - "ife" - ], - [ - "sl", - "ide" - ], - [ - "s", - "lide" - ], - [ - "ab", - "i" - ], - [ - "a", - "bi" - ], - [ - "uk", - "i" - ], - [ - "u", - "ki" - ], - [ - "my", - "sq" - ], - [ - "mys", - "q" - ], - [ - "▁prim", - "itive" - ], - [ - "▁primit", - "ive" - ], - [ - "▁univers", - "itaire" - ], - [ - "LE", - "NG" - ], - [ - "ale", - "ż" - ], - [ - "eb", - "ook" - ], - [ - "e", - "book" - ], - [ - "s", - "yn" - ], - [ - "▁G", - "egen" - ], - [ - "▁Ge", - "gen" - ], - [ - "▁Geg", - "en" - ], - [ - "▁K", - "ü" - ], - [ - "▁а", - "ле" - ], - [ - "▁ал", - "е" - ], - [ - "▁L", - "ub" - ], - [ - "▁Lu", - "b" - ], - [ - "con", - "current" - ], - [ - "izz", - "ato" - ], - [ - "izza", - "to" - ], - [ - "▁st", - "ub" - ], - [ - "▁i", - "e" - ], - [ - "▁", - "ie" - ], - [ - "▁'", - "./" - ], - [ - "▁'.", - "/" - ], - [ - "co", - "d" - ], - [ - "c", - "od" - ], - [ - "▁intern", - "acional" - ], - [ - "▁G", - "las" - ], - [ - "▁Gl", - "as" - ], - [ - "▁Gla", - "s" - ], - [ - "▁m", - "are" - ], - [ - "▁ma", - "re" - ], - [ - "▁mar", - "e" - ], - [ - "▁N", - "eb" - ], - [ - "▁Ne", - "b" - ], - [ - "▁G", - "B" - ], - [ - "▁", - "GB" - ], - [ - "kw", - "args" - ], - [ - "▁a", - "ument" - ], - [ - "▁au", - "ment" - ], - [ - "WI", - "D" - ], - [ - "W", - "ID" - ], - [ - "▁ро", - "д" - ], - [ - "▁р", - "од" - ], - [ - "▁", - "род" - ], - [ - "p", - "unkt" - ], - [ - "▁G", - "rad" - ], - [ - "▁Gr", - "ad" - ], - [ - "▁Gra", - "d" - ], - [ - "▁", - "Grad" - ], - [ - "S", - "N" - ], - [ - "AM", - "P" - ], - [ - "A", - "MP" - ], - [ - "▁B", - "orn" - ], - [ - "▁Bo", - "rn" - ], - [ - "▁Bor", - "n" - ], - [ - "▁Guer", - "re" - ], - [ - "го", - "тов" - ], - [ - "▁med", - "io" - ], - [ - "▁medi", - "o" - ], - [ - "Me", - "d" - ], - [ - "M", - "ed" - ], - [ - "su", - "pp" - ], - [ - "sup", - "p" - ], - [ - "s", - "upp" - ], - [ - "act", - "ual" - ], - [ - "drop", - "down" - ], - [ - "▁ok", - "tober" - ], - [ - "▁", - "ř" - ], - [ - "▁circ", - "ular" - ], - [ - "▁cir", - "cular" - ], - [ - "▁circul", - "ar" - ], - [ - "▁s", - "kin" - ], - [ - "▁sk", - "in" - ], - [ - "▁ski", - "n" - ], - [ - "▁em", - "phas" - ], - [ - "▁emp", - "has" - ], - [ - "▁го", - "лов" - ], - [ - "▁голо", - "в" - ], - [ - "▁p", - "ue" - ], - [ - "▁pu", - "e" - ], - [ - "▁inform", - "ations" - ], - [ - "▁information", - "s" - ], - [ - "▁Wolf", - "gang" - ], - [ - "▁us", - "eless" - ], - [ - "▁use", - "less" - ], - [ - "и", - "т" - ], - [ - "▁Jo", - "an" - ], - [ - "▁б", - "ор" - ], - [ - "▁бо", - "р" - ], - [ - "▁", - "бор" - ], - [ - "▁G", - "lad" - ], - [ - "▁Gl", - "ad" - ], - [ - "▁Gla", - "d" - ], - [ - "▁K", - "now" - ], - [ - "▁Kn", - "ow" - ], - [ - "▁Kno", - "w" - ], - [ - "ké", - "nt" - ], - [ - "k", - "ént" - ], - [ - "sp", - "eed" - ], - [ - "spe", - "ed" - ], - [ - "▁Ke", - "vin" - ], - [ - "un", - "ft" - ], - [ - "▁ar", - "qu" - ], - [ - "▁", - "arqu" - ], - [ - "▁C", - "asa" - ], - [ - "▁Cas", - "a" - ], - [ - "▁Ca", - "sa" - ], - [ - "(.", - ".." - ], - [ - "(", - "..." - ], - [ - "▁rapid", - "ly" - ], - [ - "▁pro", - "ble" - ], - [ - "▁prob", - "le" - ], - [ - "▁probl", - "e" - ], - [ - "▁Ви", - "кипеди" - ], - [ - "že", - "n" - ], - [ - "ž", - "en" - ], - [ - "▁N", - "eben" - ], - [ - "▁Ne", - "ben" - ], - [ - "▁Neb", - "en" - ], - [ - "▁M", - "eter" - ], - [ - "▁Me", - "ter" - ], - [ - "▁Met", - "er" - ], - [ - "Child", - "ren" - ], - [ - "ce", - "m" - ], - [ - "c", - "em" - ], - [ - "ig", - "os" - ], - [ - "igo", - "s" - ], - [ - "aj", - "u" - ], - [ - "a", - "ju" - ], - [ - "▁Ret", - "rie" - ], - [ - "▁H", - "ell" - ], - [ - "▁He", - "ll" - ], - [ - "▁Hel", - "l" - ], - [ - "▁g", - "ig" - ], - [ - "▁gi", - "g" - ], - [ - "▁contro", - "vers" - ], - [ - "▁z", - "oom" - ], - [ - "▁zo", - "om" - ], - [ - "▁zoo", - "m" - ], - [ - "▁c", - "ens" - ], - [ - "▁ce", - "ns" - ], - [ - "▁alc", - "uni" - ], - [ - "▁He", - "ader" - ], - [ - "▁Head", - "er" - ], - [ - "▁", - "Header" - ], - [ - "Me", - "ta" - ], - [ - "Met", - "a" - ], - [ - "M", - "eta" - ], - [ - "Re", - "quired" - ], - [ - "▁ин", - "ститу" - ], - [ - "▁s", - "kup" - ], - [ - "▁sk", - "up" - ], - [ - "▁ing", - "les" - ], - [ - "ég", - "l" - ], - [ - "é", - "gl" - ], - [ - "bi", - "j" - ], - [ - "b", - "ij" - ], - [ - "▁t", - "ér" - ], - [ - "▁té", - "r" - ], - [ - "▁com", - "pag" - ], - [ - "▁comp", - "ag" - ], - [ - "▁comm", - "itted" - ], - [ - "▁commit", - "ted" - ], - [ - "▁process", - "ed" - ], - [ - "▁proc", - "essed" - ], - [ - "▁proces", - "sed" - ], - [ - "Lo", - "wer" - ], - [ - "L", - "ower" - ], - [ - "▁F", - "oreign" - ], - [ - "▁For", - "eign" - ], - [ - "▁Fore", - "ign" - ], - [ - "▁", - "Foreign" - ], - [ - "▁s", - "eq" - ], - [ - "▁se", - "q" - ], - [ - "▁", - "seq" - ], - [ - "sheet", - "s" - ], - [ - "she", - "ets" - ], - [ - "▁F", - "em" - ], - [ - "▁Fe", - "m" - ], - [ - "ho", - "z" - ], - [ - "h", - "oz" - ], - [ - "in", - "ks" - ], - [ - "ink", - "s" - ], - [ - "▁k", - "all" - ], - [ - "▁ka", - "ll" - ], - [ - "▁kal", - "l" - ], - [ - "vari", - "ant" - ], - [ - "▁li", - "bro" - ], - [ - "▁lib", - "ro" - ], - [ - "▁cl", - "icks" - ], - [ - "▁click", - "s" - ], - [ - "▁cli", - "cks" - ], - [ - "▁g", - "obierno" - ], - [ - "ie", - "gel" - ], - [ - "ieg", - "el" - ], - [ - "мо", - "го" - ], - [ - "м", - "ого" - ], - [ - "ge", - "me" - ], - [ - "gem", - "e" - ], - [ - "g", - "eme" - ], - [ - "▁t", - "ower" - ], - [ - "▁to", - "wer" - ], - [ - "▁par", - "ish" - ], - [ - "▁T", - "CP" - ], - [ - "▁l", - "s" - ], - [ - "▁", - "ls" - ], - [ - "▁n", - "ginx" - ], - [ - "▁ng", - "inx" - ], - [ - "▁", - "nginx" - ], - [ - "Na", - "N" - ], - [ - "▁D", - "ir" - ], - [ - "▁Di", - "r" - ], - [ - "▁", - "Dir" - ], - [ - "▁Begr", - "iffe" - ], - [ - "▁Begriff", - "e" - ], - [ - "ar", - "ie" - ], - [ - "ari", - "e" - ], - [ - "a", - "rie" - ], - [ - "ím", - "p" - ], - [ - "í", - "mp" - ], - [ - "ic", - "ios" - ], - [ - "ici", - "os" - ], - [ - "icio", - "s" - ], - [ - "i", - "cios" - ], - [ - "▁sh", - "aring" - ], - [ - "▁cin", - "éma" - ], - [ - "be", - "c" - ], - [ - "b", - "ec" - ], - [ - "RE", - "D" - ], - [ - "R", - "ED" - ], - [ - "▁K", - "ra" - ], - [ - "▁Kr", - "a" - ], - [ - "ab", - "ol" - ], - [ - "a", - "bol" - ], - [ - "▁fl", - "ux" - ], - [ - "▁flu", - "x" - ], - [ - "▁exp", - "ensive" - ], - [ - "▁су", - "ще" - ], - [ - "▁`", - "_" - ], - [ - "oc", - "z" - ], - [ - "o", - "cz" - ], - [ - "ли", - "ст" - ], - [ - "▁acqu", - "aint" - ], - [ - "▁w", - "ise" - ], - [ - "▁wis", - "e" - ], - [ - "▁", - "wise" - ], - [ - "▁pou", - "voir" - ], - [ - "▁pouv", - "oir" - ], - [ - "▁dev", - "ant" - ], - [ - "▁moment", - "um" - ], - [ - "im", - "mer" - ], - [ - "imm", - "er" - ], - [ - "▁C", - "oupe" - ], - [ - "▁Cou", - "pe" - ], - [ - "index", - "Of" - ], - [ - "▁does", - "nt" - ], - [ - "▁doesn", - "t" - ], - [ - "▁за", - "в" - ], - [ - "▁lic", - "ense" - ], - [ - "▁", - "â" - ], - [ - "CS", - "S" - ], - [ - "C", - "SS" - ], - [ - "▁r", - "ice" - ], - [ - "▁ric", - "e" - ], - [ - "▁ri", - "ce" - ], - [ - "▁", - "rice" - ], - [ - "Te", - "am" - ], - [ - "▁a", - "no" - ], - [ - "▁an", - "o" - ], - [ - "▁", - "ano" - ], - [ - "li", - "t" - ], - [ - "l", - "it" - ], - [ - "▁mer", - "ged" - ], - [ - "▁merge", - "d" - ], - [ - "▁C", - "ell" - ], - [ - "▁Ce", - "ll" - ], - [ - "▁Cel", - "l" - ], - [ - "▁", - "Cell" - ], - [ - "л", - "л" - ], - [ - "bo", - "y" - ], - [ - "b", - "oy" - ], - [ - "as", - "ts" - ], - [ - "ast", - "s" - ], - [ - "▁s", - "ell" - ], - [ - "▁se", - "ll" - ], - [ - "▁sel", - "l" - ], - [ - "▁gro", - "ße" - ], - [ - "▁groß", - "e" - ], - [ - "▁virt", - "uel" - ], - [ - "▁virtue", - "l" - ], - [ - "Can", - "cel" - ], - [ - "▁s", - "j" - ], - [ - "g", - "ment" - ], - [ - ".", - "<" - ], - [ - "ча", - "й" - ], - [ - "i", - "ë" - ], - [ - "ak", - "h" - ], - [ - "a", - "kh" - ], - [ - "iz", - "ers" - ], - [ - "ize", - "rs" - ], - [ - "izer", - "s" - ], - [ - "pr", - "it" - ], - [ - "p", - "rit" - ], - [ - "▁T", - "ib" - ], - [ - "▁Ti", - "b" - ], - [ - "▁elabor", - "ate" - ], - [ - "▁f", - "é" - ], - [ - "▁м", - "еди" - ], - [ - "▁ме", - "ди" - ], - [ - "LENG", - "TH" - ], - [ - "▁prim", - "arily" - ], - [ - "▁sc", - "ores" - ], - [ - "▁score", - "s" - ], - [ - "▁carry", - "ing" - ], - [ - "▁l", - "ake" - ], - [ - "▁la", - "ke" - ], - [ - "▁lak", - "e" - ], - [ - "com", - "pose" - ], - [ - "comp", - "ose" - ], - [ - "compos", - "e" - ], - [ - "▁Town", - "ship" - ], - [ - "un", - "ge" - ], - [ - "ung", - "e" - ], - [ - "▁al", - "berga" - ], - [ - "an", - "ych" - ], - [ - "any", - "ch" - ], - [ - "a", - "nych" - ], - [ - "qu", - "elle" - ], - [ - "que", - "lle" - ], - [ - "quel", - "le" - ], - [ - "q", - "uelle" - ], - [ - "▁Ar", - "k" - ], - [ - "▁p", - "ris" - ], - [ - "▁pr", - "is" - ], - [ - "▁pri", - "s" - ], - [ - "▁v", - "oll" - ], - [ - "▁vo", - "ll" - ], - [ - "▁vol", - "l" - ], - [ - "ш", - "ли" - ], - [ - "Valid", - "ation" - ], - [ - "▁ce", - "ux" - ], - [ - "▁pop", - "ulate" - ], - [ - "▁popula", - "te" - ], - [ - "▁popul", - "ate" - ], - [ - "\"", - "\r" - ], - [ - "▁fem", - "mes" - ], - [ - "▁femme", - "s" - ], - [ - "AN", - "G" - ], - [ - "A", - "NG" - ], - [ - "▁Desp", - "ite" - ], - [ - "вы", - "е" - ], - [ - "в", - "ые" - ], - [ - "is", - "ke" - ], - [ - "isk", - "e" - ], - [ - "i", - "ske" - ], - [ - "zu", - "g" - ], - [ - "z", - "ug" - ], - [ - "на", - "ча" - ], - [ - "▁h", - "atten" - ], - [ - "▁hat", - "ten" - ], - [ - "▁hatte", - "n" - ], - [ - "IN", - "SERT" - ], - [ - "Emp", - "loyee" - ], - [ - "▁mo", - "ments" - ], - [ - "▁moment", - "s" - ], - [ - "▁mom", - "ents" - ], - [ - "▁últ", - "ima" - ], - [ - "▁h", - "older" - ], - [ - "▁hold", - "er" - ], - [ - "▁ho", - "lder" - ], - [ - "▁hol", - "der" - ], - [ - "▁", - "holder" - ], - [ - "bl", - "ank" - ], - [ - "Col", - "lections" - ], - [ - "Collection", - "s" - ], - [ - "Collect", - "ions" - ], - [ - "ath", - "ers" - ], - [ - "ather", - "s" - ], - [ - "a", - "thers" - ], - [ - "▁g", - "rade" - ], - [ - "▁gr", - "ade" - ], - [ - "▁gra", - "de" - ], - [ - "▁grad", - "e" - ], - [ - "▁", - "grade" - ], - [ - "▁aff", - "airs" - ], - [ - "▁affair", - "s" - ], - [ - ".$", - "$" - ], - [ - ".", - "$$" - ], - [ - "▁d", - "elta" - ], - [ - "▁del", - "ta" - ], - [ - "▁", - "delta" - ], - [ - "▁Jug", - "end" - ], - [ - "▁españ", - "ol" - ], - [ - "▁O", - "UT" - ], - [ - "▁", - "OUT" - ], - [ - "▁mathemat", - "ical" - ], - [ - "▁m", - "ongo" - ], - [ - "▁mon", - "go" - ], - [ - "▁Ф", - "е" - ], - [ - "ul", - "ing" - ], - [ - "uli", - "ng" - ], - [ - "u", - "ling" - ], - [ - "▁re", - "volution" - ], - [ - "▁revol", - "ution" - ], - [ - "▁c", - "oin" - ], - [ - "▁co", - "in" - ], - [ - "▁sub", - "class" - ], - [ - "\"", - "=>" - ], - [ - "äch", - "e" - ], - [ - "ä", - "che" - ], - [ - "▁p", - "yg" - ], - [ - "▁py", - "g" - ], - [ - "ща", - "я" - ], - [ - "ill", - "ery" - ], - [ - "ille", - "ry" - ], - [ - "iller", - "y" - ], - [ - "▁com", - "enz" - ], - [ - "dep", - "th" - ], - [ - "▁c", - "él" - ], - [ - "▁re", - "size" - ], - [ - "▁res", - "ize" - ], - [ - "▁", - "resize" - ], - [ - "▁S", - "ame" - ], - [ - "▁Sam", - "e" - ], - [ - "▁Sa", - "me" - ], - [ - "▁st", - "rik" - ], - [ - "▁str", - "ik" - ], - [ - "▁stri", - "k" - ], - [ - "▁t", - "ir" - ], - [ - "▁ti", - "r" - ], - [ - "▁sc", - "arc" - ], - [ - "▁scar", - "c" - ], - [ - "▁M", - "ember" - ], - [ - "▁Mem", - "ber" - ], - [ - "▁", - "Member" - ], - [ - "sub", - "scribe" - ], - [ - "ó", - "ż" - ], - [ - "út", - "bol" - ], - [ - "ex", - "cept" - ], - [ - "▁dr", - "iving" - ], - [ - "▁dri", - "ving" - ], - [ - "▁driv", - "ing" - ], - [ - "ki", - "e" - ], - [ - "k", - "ie" - ], - [ - "zo", - "ny" - ], - [ - "zon", - "y" - ], - [ - "z", - "ony" - ], - [ - "ème", - "s" - ], - [ - "è", - "mes" - ], - [ - "Da", - "vid" - ], - [ - "D", - "avid" - ], - [ - "iss", - "ant" - ], - [ - "issa", - "nt" - ], - [ - "▁т", - "ы" - ], - [ - "▁", - "ты" - ], - [ - "▁é", - "lect" - ], - [ - "▁él", - "ect" - ], - [ - "▁re", - "name" - ], - [ - "▁r", - "ename" - ], - [ - "▁ren", - "ame" - ], - [ - "▁R", - "unning" - ], - [ - "▁Run", - "ning" - ], - [ - "▁", - "Running" - ], - [ - "▁inter", - "faces" - ], - [ - "▁interface", - "s" - ], - [ - "////////", - "////////" - ], - [ - "▁Wal", - "ker" - ], - [ - "▁Walk", - "er" - ], - [ - "▁soci", - "été" - ], - [ - "▁as", - "ks" - ], - [ - "▁ask", - "s" - ], - [ - "br", - "id" - ], - [ - "b", - "rid" - ], - [ - "▁je", - "we" - ], - [ - "▁se", - "ines" - ], - [ - "▁sein", - "es" - ], - [ - "▁seine", - "s" - ], - [ - "▁sei", - "nes" - ], - [ - "▁ag", - "ents" - ], - [ - "▁agent", - "s" - ], - [ - "▁M", - "Y" - ], - [ - "▁", - "MY" - ], - [ - "▁Law", - "rence" - ], - [ - "de", - "ss" - ], - [ - "des", - "s" - ], - [ - "d", - "ess" - ], - [ - "ie", - "sen" - ], - [ - "ies", - "en" - ], - [ - "iese", - "n" - ], - [ - "i", - "esen" - ], - [ - "▁людя", - "х" - ], - [ - "прав", - "и" - ], - [ - "пра", - "ви" - ], - [ - "▁anc", - "est" - ], - [ - "▁wel", - "che" - ], - [ - "ra", - "um" - ], - [ - "r", - "aum" - ], - [ - "▁o", - "rb" - ], - [ - "▁or", - "b" - ], - [ - "▁", - "orb" - ], - [ - "sc", - "al" - ], - [ - "s", - "cal" - ], - [ - "▁L", - "ear" - ], - [ - "▁Le", - "ar" - ], - [ - "▁w", - "ear" - ], - [ - "▁we", - "ar" - ], - [ - "▁s", - "lave" - ], - [ - "▁sl", - "ave" - ], - [ - "▁sla", - "ve" - ], - [ - "▁re", - "named" - ], - [ - "▁ren", - "amed" - ], - [ - "▁rename", - "d" - ], - [ - "če", - "n" - ], - [ - "č", - "en" - ], - [ - "ma", - "ste" - ], - [ - "mas", - "te" - ], - [ - "m", - "aste" - ], - [ - "ang", - "les" - ], - [ - "angle", - "s" - ], - [ - "▁Am", - "érica" - ], - [ - "▁t", - "i" - ], - [ - "▁", - "ti" - ], - [ - "▁dem", - "sel" - ], - [ - "▁bene", - "ath" - ], - [ - "bin", - "ary" - ], - [ - "b", - "inary" - ], - [ - "▁ed", - "ición" - ], - [ - "▁kil", - "omet" - ], - [ - "▁kilom", - "et" - ], - [ - "ui", - "ts" - ], - [ - "uit", - "s" - ], - [ - "u", - "its" - ], - [ - "▁cu", - "atro" - ], - [ - "▁ent", - "rance" - ], - [ - "▁entr", - "ance" - ], - [ - "ond", - "issement" - ], - [ - "▁b", - "ag" - ], - [ - "▁ba", - "g" - ], - [ - "▁", - "bag" - ], - [ - "▁Ar", - "men" - ], - [ - "▁Arm", - "en" - ], - [ - "ij", - "o" - ], - [ - "i", - "jo" - ], - [ - "▁L", - "ors" - ], - [ - "▁Lo", - "rs" - ], - [ - "▁Lor", - "s" - ], - [ - "▁demsel", - "ben" - ], - [ - "ê", - "m" - ], - [ - "▁dis", - "crete" - ], - [ - "▁prom", - "inent" - ], - [ - "▁J", - "ay" - ], - [ - "▁Ja", - "y" - ], - [ - "de", - "cor" - ], - [ - "dec", - "or" - ], - [ - "D", - "L" - ], - [ - "▁d", - "í" - ], - [ - "St", - "ruct" - ], - [ - "Str", - "uct" - ], - [ - "▁P", - "roduction" - ], - [ - "▁Produ", - "ction" - ], - [ - "▁Product", - "ion" - ], - [ - "th", - "ey" - ], - [ - "the", - "y" - ], - [ - "ar", - "ius" - ], - [ - "ari", - "us" - ], - [ - "sch", - "nitt" - ], - [ - "▁C", - "ou" - ], - [ - "▁Co", - "u" - ], - [ - "▁l", - "ex" - ], - [ - "▁le", - "x" - ], - [ - "▁", - "lex" - ], - [ - "y", - "outube" - ], - [ - "▁рабо", - "та" - ], - [ - "st", - "ation" - ], - [ - "sta", - "tion" - ], - [ - "stat", - "ion" - ], - [ - "se", - "p" - ], - [ - "s", - "ep" - ], - [ - "▁mi", - "rror" - ], - [ - "▁mir", - "ror" - ], - [ - "▁h", - "its" - ], - [ - "▁hit", - "s" - ], - [ - "▁hi", - "ts" - ], - [ - "▁Be", - "ck" - ], - [ - "at", - "ically" - ], - [ - "atic", - "ally" - ], - [ - "▁L", - "az" - ], - [ - "▁La", - "z" - ], - [ - "▁w", - "inner" - ], - [ - "▁win", - "ner" - ], - [ - "DE", - "X" - ], - [ - "D", - "EX" - ], - [ - "▁I", - "NT" - ], - [ - "▁IN", - "T" - ], - [ - "▁", - "INT" - ], - [ - "}^", - "{-" - ], - [ - "}^{", - "-" - ], - [ - "}", - "^{-" - ], - [ - "▁w", - "egen" - ], - [ - "▁we", - "gen" - ], - [ - "▁weg", - "en" - ], - [ - "ma", - "d" - ], - [ - "m", - "ad" - ], - [ - "An", - "gle" - ], - [ - "Ang", - "le" - ], - [ - "zi", - "ng" - ], - [ - "zin", - "g" - ], - [ - "z", - "ing" - ], - [ - "▁Bay", - "ern" - ], - [ - "▁Bayer", - "n" - ], - [ - "sa", - "l" - ], - [ - "s", - "al" - ], - [ - "äg", - "er" - ], - [ - "ä", - "ger" - ], - [ - "▁bus", - "y" - ], - [ - "▁st", - "ör" - ], - [ - "▁f", - "olk" - ], - [ - "▁fol", - "k" - ], - [ - "▁", - "folk" - ], - [ - "▁p", - "rix" - ], - [ - "▁pr", - "ix" - ], - [ - "▁pri", - "x" - ], - [ - "▁al", - "located" - ], - [ - "▁alloc", - "ated" - ], - [ - "▁allocate", - "d" - ], - [ - "▁p", - "t" - ], - [ - "▁", - "pt" - ], - [ - "af", - "fen" - ], - [ - "aff", - "en" - ], - [ - "a", - "ffen" - ], - [ - "cl", - "uster" - ], - [ - "clus", - "ter" - ], - [ - "▁com", - "plement" - ], - [ - "▁comp", - "lement" - ], - [ - "▁comple", - "ment" - ], - [ - "▁compl", - "ement" - ], - [ - "ár", - "s" - ], - [ - "á", - "rs" - ], - [ - "▁Amer", - "ika" - ], - [ - "рі", - "й" - ], - [ - "р", - "ій" - ], - [ - "▁val", - "ley" - ], - [ - "▁vall", - "ey" - ], - [ - "▁valle", - "y" - ], - [ - "▁ro", - "oms" - ], - [ - "▁room", - "s" - ], - [ - "▁", - "rooms" - ], - [ - "▁m", - "oi" - ], - [ - "▁mo", - "i" - ], - [ - ".\"", - "," - ], - [ - ".", - "\"," - ], - [ - ";;", - ";;" - ], - [ - "▁lo", - "west" - ], - [ - "▁low", - "est" - ], - [ - "no", - "g" - ], - [ - "n", - "og" - ], - [ - "▁land", - "et" - ], - [ - "▁lan", - "det" - ], - [ - "▁program", - "me" - ], - [ - "ch", - "io" - ], - [ - "chi", - "o" - ], - [ - "▁W", - "ährend" - ], - [ - "ánd", - "ez" - ], - [ - "▁дол", - "ж" - ], - [ - "▁o", - "uv" - ], - [ - "▁ou", - "v" - ], - [ - "▁", - "ouv" - ], - [ - "om", - "ány" - ], - [ - "▁Википеди", - "и" - ], - [ - "▁s", - "ó" - ], - [ - "▁ele", - "ktr" - ], - [ - "De", - "sc" - ], - [ - "Des", - "c" - ], - [ - "D", - "esc" - ], - [ - "▁Be", - "aut" - ], - [ - "▁Beau", - "t" - ], - [ - "на", - "р" - ], - [ - "н", - "ар" - ], - [ - "▁мо", - "же" - ], - [ - "▁мож", - "е" - ], - [ - "P", - "ierre" - ], - [ - "es", - "ota" - ], - [ - "eso", - "ta" - ], - [ - "▁oper", - "ated" - ], - [ - "▁opera", - "ted" - ], - [ - "▁operate", - "d" - ], - [ - "▁f", - "orte" - ], - [ - "▁for", - "te" - ], - [ - "▁fort", - "e" - ], - [ - "ри", - "с" - ], - [ - "р", - "ис" - ], - [ - "▁op", - "position" - ], - [ - "▁opp", - "osition" - ], - [ - "▁oppos", - "ition" - ], - [ - "al", - "ia" - ], - [ - "ali", - "a" - ], - [ - "a", - "lia" - ], - [ - "▁S", - "yl" - ], - [ - "▁Sy", - "l" - ], - [ - "get", - "Name" - ], - [ - "ве", - "ли" - ], - [ - "fi", - "k" - ], - [ - "f", - "ik" - ], - [ - "▁com", - "prom" - ], - [ - "▁comp", - "rom" - ], - [ - "▁compr", - "om" - ], - [ - "▁Text", - "View" - ], - [ - "▁", - "TextView" - ], - [ - "Sp", - "ring" - ], - [ - "S", - "pring" - ], - [ - "met", - "adata" - ], - [ - "meta", - "data" - ], - [ - "en", - "gu" - ], - [ - "eng", - "u" - ], - [ - "/", - "," - ], - [ - "▁car", - "ri" - ], - [ - "is", - "tol" - ], - [ - "ist", - "ol" - ], - [ - "isto", - "l" - ], - [ - "▁diag", - "onal" - ], - [ - "li", - "sta" - ], - [ - "list", - "a" - ], - [ - "lis", - "ta" - ], - [ - "l", - "ista" - ], - [ - "iz", - "en" - ], - [ - "ize", - "n" - ], - [ - "i", - "zen" - ], - [ - "▁re", - "nde" - ], - [ - "▁r", - "ende" - ], - [ - "▁ren", - "de" - ], - [ - "▁rend", - "e" - ], - [ - "gc", - "c" - ], - [ - "g", - "cc" - ], - [ - "be", - "ck" - ], - [ - "bec", - "k" - ], - [ - "li", - "us" - ], - [ - "l", - "ius" - ], - [ - "ir", - "al" - ], - [ - "ira", - "l" - ], - [ - "i", - "ral" - ], - [ - "Resol", - "ver" - ], - [ - "▁percent", - "age" - ], - [ - "▁at", - "tra" - ], - [ - "▁att", - "ra" - ], - [ - "▁attr", - "a" - ], - [ - "str", - "ings" - ], - [ - "string", - "s" - ], - [ - "wi", - "ąz" - ], - [ - "od", - "s" - ], - [ - "o", - "ds" - ], - [ - "во", - "лю" - ], - [ - "ę", - "ż" - ], - [ - "▁news", - "paper" - ], - [ - "▁newsp", - "aper" - ], - [ - "im", - "iter" - ], - [ - "imi", - "ter" - ], - [ - "imit", - "er" - ], - [ - "AB", - "C" - ], - [ - "A", - "BC" - ], - [ - "▁Man", - "chester" - ], - [ - "[", - "{" - ], - [ - "Ag", - "ent" - ], - [ - "Age", - "nt" - ], - [ - "A", - "gent" - ], - [ - "▁W", - "or" - ], - [ - "▁Wo", - "r" - ], - [ - "▁K", - "ath" - ], - [ - "▁Kat", - "h" - ], - [ - "▁Ka", - "th" - ], - [ - "▁по", - "ві" - ], - [ - "▁пов", - "і" - ], - [ - "▁ent", - "onces" - ], - [ - "▁n", - "iveau" - ], - [ - "at", - "ted" - ], - [ - "att", - "ed" - ], - [ - "atte", - "d" - ], - [ - "le", - "arn" - ], - [ - "lear", - "n" - ], - [ - "lea", - "rn" - ], - [ - "at", - "iques" - ], - [ - "ati", - "ques" - ], - [ - "atique", - "s" - ], - [ - "▁у", - "би" - ], - [ - "▁qu", - "indi" - ], - [ - "bin", - "ding" - ], - [ - "bind", - "ing" - ], - [ - "b", - "inding" - ], - [ - "▁import", - "ed" - ], - [ - "▁imp", - "orted" - ], - [ - "▁H", - "orn" - ], - [ - "▁Hor", - "n" - ], - [ - "▁Ho", - "rn" - ], - [ - "em", - "berg" - ], - [ - "ember", - "g" - ], - [ - "emb", - "erg" - ], - [ - "com", - "plex" - ], - [ - "comp", - "lex" - ], - [ - "comple", - "x" - ], - [ - "▁ne", - "ural" - ], - [ - "▁neu", - "ral" - ], - [ - "▁neur", - "al" - ], - [ - "in", - "formation" - ], - [ - "▁recogn", - "ition" - ], - [ - "in", - "gt" - ], - [ - "ing", - "t" - ], - [ - "▁inhab", - "itants" - ], - [ - "vu", - "e" - ], - [ - "v", - "ue" - ], - [ - "▁Be", - "völker" - ], - [ - "▁cur", - "ves" - ], - [ - "▁curve", - "s" - ], - [ - "▁curv", - "es" - ], - [ - "▁l", - "eb" - ], - [ - "▁le", - "b" - ], - [ - "▁", - "leb" - ], - [ - "ді", - "й" - ], - [ - "д", - "ій" - ], - [ - "▁s", - "ow" - ], - [ - "▁so", - "w" - ], - [ - "▁sent", - "iment" - ], - [ - "P", - "H" - ], - [ - "ra", - "che" - ], - [ - "rac", - "he" - ], - [ - "rach", - "e" - ], - [ - "r", - "ache" - ], - [ - "▁-", - "(" - ], - [ - "▁", - "-(" - ], - [ - "▁e", - "stable" - ], - [ - "▁est", - "able" - ], - [ - "▁es", - "table" - ], - [ - "▁estab", - "le" - ], - [ - "▁esta", - "ble" - ], - [ - "▁Ferd", - "inand" - ], - [ - "▁é", - "crit" - ], - [ - "▁éc", - "rit" - ], - [ - "▁prime", - "iro" - ], - [ - "▁t", - "ex" - ], - [ - "▁te", - "x" - ], - [ - "▁", - "tex" - ], - [ - "▁inter", - "mediate" - ], - [ - "ve", - "rage" - ], - [ - "ver", - "age" - ], - [ - "vera", - "ge" - ], - [ - "ib", - "us" - ], - [ - "i", - "bus" - ], - [ - "▁s", - "erves" - ], - [ - "▁ser", - "ves" - ], - [ - "▁serv", - "es" - ], - [ - "▁serve", - "s" - ], - [ - "iv", - "as" - ], - [ - "iva", - "s" - ], - [ - "i", - "vas" - ], - [ - "▁b", - "ru" - ], - [ - "▁br", - "u" - ], - [ - "▁", - "bru" - ], - [ - "▁l", - "um" - ], - [ - "▁lu", - "m" - ], - [ - "att", - "ice" - ], - [ - "atti", - "ce" - ], - [ - "ч", - "ный" - ], - [ - "▁D", - "res" - ], - [ - "▁Dr", - "es" - ], - [ - "▁Dre", - "s" - ], - [ - "▁v", - "ideos" - ], - [ - "▁video", - "s" - ], - [ - "▁vide", - "os" - ], - [ - "d", - "uration" - ], - [ - "▁a", - "bit" - ], - [ - "▁ab", - "it" - ], - [ - "▁e", - "gg" - ], - [ - "▁eg", - "g" - ], - [ - "ograph", - "ical" - ], - [ - "ographic", - "al" - ], - [ - "al", - "ph" - ], - [ - "ST", - "ATE" - ], - [ - "STAT", - "E" - ], - [ - "▁па", - "ра" - ], - [ - "▁пар", - "а" - ], - [ - "▁", - "пара" - ], - [ - "re", - "ading" - ], - [ - "read", - "ing" - ], - [ - "rea", - "ding" - ], - [ - "▁veh", - "icle" - ], - [ - "▁fort", - "une" - ], - [ - "ult", - "ats" - ], - [ - "▁St", - "oria" - ], - [ - "▁Sto", - "ria" - ], - [ - "mi", - "dt" - ], - [ - "mid", - "t" - ], - [ - "łą", - "cz" - ], - [ - "▁Mem", - "orial" - ], - [ - "▁v", - "as" - ], - [ - "▁va", - "s" - ], - [ - "▁", - "vas" - ], - [ - "▁з", - "ан" - ], - [ - "▁за", - "н" - ], - [ - "▁", - "зан" - ], - [ - "▁ut", - "ility" - ], - [ - "▁util", - "ity" - ], - [ - "▁ob", - "sc" - ], - [ - "▁obs", - "c" - ], - [ - "▁rel", - "acion" - ], - [ - "▁rela", - "cion" - ], - [ - "▁relac", - "ion" - ], - [ - "▁run", - "at" - ], - [ - "▁ru", - "nat" - ], - [ - "Re", - "lease" - ], - [ - "ta", - "ke" - ], - [ - "t", - "ake" - ], - [ - "▁O", - "liver" - ], - [ - "▁Ol", - "iver" - ], - [ - "▁Oliv", - "er" - ], - [ - "▁S", - "id" - ], - [ - "▁Si", - "d" - ], - [ - "ul", - "os" - ], - [ - "ulo", - "s" - ], - [ - "u", - "los" - ], - [ - "▁G", - "arc" - ], - [ - "▁Gar", - "c" - ], - [ - "▁Ga", - "rc" - ], - [ - "▁роз", - "та" - ], - [ - "▁S", - "ak" - ], - [ - "▁Sa", - "k" - ], - [ - "P", - "y" - ], - [ - "führ", - "t" - ], - [ - "f", - "ührt" - ], - [ - "▁tra", - "bal" - ], - [ - "▁trab", - "al" - ], - [ - "*", - "{" - ], - [ - "▁z", - "es" - ], - [ - "▁ze", - "s" - ], - [ - "▁", - "zes" - ], - [ - "▁sz", - "ere" - ], - [ - "▁szer", - "e" - ], - [ - "▁sze", - "re" - ], - [ - "▁v", - "arios" - ], - [ - "▁var", - "ios" - ], - [ - "▁vari", - "os" - ], - [ - "▁va", - "rios" - ], - [ - "▁o", - "tra" - ], - [ - "▁ot", - "ra" - ], - [ - "▁e", - "val" - ], - [ - "▁ev", - "al" - ], - [ - "▁", - "eval" - ], - [ - "▁situ", - "é" - ], - [ - "▁sit", - "ué" - ], - [ - "▁w", - "ounded" - ], - [ - "▁Vin", - "cent" - ], - [ - "▁вико", - "ри" - ], - [ - "▁en", - "code" - ], - [ - "▁enc", - "ode" - ], - [ - "▁", - "encode" - ], - [ - "Mod", - "al" - ], - [ - "Mo", - "dal" - ], - [ - "▁f", - "orb" - ], - [ - "▁for", - "b" - ], - [ - "▁fo", - "rb" - ], - [ - "▁dynam", - "ics" - ], - [ - "▁dynamic", - "s" - ], - [ - "▁de", - "pos" - ], - [ - "▁dep", - "os" - ], - [ - "ar", - "de" - ], - [ - "ard", - "e" - ], - [ - "▁street", - "s" - ], - [ - "▁stre", - "ets" - ], - [ - "▁K", - "omm" - ], - [ - "▁Kom", - "m" - ], - [ - "▁Ko", - "mm" - ], - [ - "=$", - "(" - ], - [ - "=", - "$(" - ], - [ - "▁по", - "вер" - ], - [ - "▁пов", - "ер" - ], - [ - "▁пове", - "р" - ], - [ - "▁d", - "ois" - ], - [ - "▁do", - "is" - ], - [ - "▁doi", - "s" - ], - [ - "▁v", - "itt" - ], - [ - "▁vi", - "tt" - ], - [ - "▁vit", - "t" - ], - [ - "▁automat", - "isch" - ], - [ - "▁re", - "load" - ], - [ - "▁", - "reload" - ], - [ - "▁Ver", - "walt" - ], - [ - "ber", - "o" - ], - [ - "be", - "ro" - ], - [ - "b", - "ero" - ], - [ - "▁h", - "ub" - ], - [ - "▁hu", - "b" - ], - [ - "▁m", - "os" - ], - [ - "▁mo", - "s" - ], - [ - "▁", - "mos" - ], - [ - "▁t", - "utto" - ], - [ - "▁tu", - "tto" - ], - [ - "▁tut", - "to" - ], - [ - "▁Freder", - "ick" - ], - [ - "ło", - "w" - ], - [ - "ł", - "ow" - ], - [ - "ant", - "ages" - ], - [ - "anta", - "ges" - ], - [ - "antage", - "s" - ], - [ - "aqu", - "e" - ], - [ - "a", - "que" - ], - [ - "pa", - "per" - ], - [ - "p", - "aper" - ], - [ - "▁ein", - "ige" - ], - [ - "`)", - "," - ], - [ - "`", - ")," - ], - [ - "d", - "j" - ], - [ - "▁P", - "le" - ], - [ - "▁Pl", - "e" - ], - [ - "▁%", - "," - ], - [ - "▁", - "%," - ], - [ - "▁B", - "itmap" - ], - [ - "▁Bit", - "map" - ], - [ - "▁", - "Bitmap" - ], - [ - "▁friend", - "ly" - ], - [ - "▁tr", - "uly" - ], - [ - "▁st", - "roke" - ], - [ - "▁str", - "oke" - ], - [ - "▁stro", - "ke" - ], - [ - "▁", - "stroke" - ], - [ - "ro", - "ph" - ], - [ - "rop", - "h" - ], - [ - "r", - "oph" - ], - [ - "▁en", - "gl" - ], - [ - "▁eng", - "l" - ], - [ - "▁", - "engl" - ], - [ - "▁c", - "off" - ], - [ - "▁co", - "ff" - ], - [ - "▁d", - "ust" - ], - [ - "▁du", - "st" - ], - [ - "▁dus", - "t" - ], - [ - "▁Jah", - "res" - ], - [ - "▁Jahr", - "es" - ], - [ - "▁Jahre", - "s" - ], - [ - "pp", - "i" - ], - [ - "p", - "pi" - ], - [ - "▁w", - "ys" - ], - [ - "▁wy", - "s" - ], - [ - "fa", - "ctor" - ], - [ - "fact", - "or" - ], - [ - "fac", - "tor" - ], - [ - "f", - "actor" - ], - [ - "sch", - "luss" - ], - [ - "▁дере", - "вня" - ], - [ - "▁дерев", - "ня" - ], - [ - "▁P", - "ast" - ], - [ - "▁Pa", - "st" - ], - [ - "▁Pas", - "t" - ], - [ - "▁до", - "ма" - ], - [ - "CO", - "M" - ], - [ - "C", - "OM" - ], - [ - "▁pu", - "eden" - ], - [ - "▁puede", - "n" - ], - [ - "▁pue", - "den" - ], - [ - "▁g", - "ift" - ], - [ - "▁gi", - "ft" - ], - [ - "▁G", - "la" - ], - [ - "▁Gl", - "a" - ], - [ - "▁trigger", - "ed" - ], - [ - "él", - "y" - ], - [ - "é", - "ly" - ], - [ - "ül", - "és" - ], - [ - "ü", - "lés" - ], - [ - "▁O", - "liv" - ], - [ - "▁Ol", - "iv" - ], - [ - "▁ver", - "so" - ], - [ - "▁vers", - "o" - ], - [ - "▁", - "verso" - ], - [ - "▁l", - "le" - ], - [ - "▁ll", - "e" - ], - [ - "▁", - "lle" - ], - [ - "▁G", - "li" - ], - [ - "▁Gl", - "i" - ], - [ - "▁L", - "td" - ], - [ - "o", - "a" - ], - [ - "▁territ", - "orio" - ], - [ - "ord", - "re" - ], - [ - "▁de", - "ck" - ], - [ - "▁dec", - "k" - ], - [ - "▁", - "deck" - ], - [ - "dr", - "a" - ], - [ - "d", - "ra" - ], - [ - "as", - "zt" - ], - [ - "asz", - "t" - ], - [ - "▁concern", - "ing" - ], - [ - "▁Add", - "itionally" - ], - [ - "▁kter", - "é" - ], - [ - "▁g", - "rund" - ], - [ - "▁gr", - "und" - ], - [ - "▁gru", - "nd" - ], - [ - "▁", - "grund" - ], - [ - "▁G", - "est" - ], - [ - "▁Ge", - "st" - ], - [ - "▁Ges", - "t" - ], - [ - "▁", - "Gest" - ], - [ - "▁mis", - "under" - ], - [ - "pr", - "et" - ], - [ - "pre", - "t" - ], - [ - "p", - "ret" - ], - [ - "──", - "──" - ], - [ - "▁re", - "putation" - ], - [ - "zi", - "a" - ], - [ - "z", - "ia" - ], - [ - "▁у", - "спе" - ], - [ - "▁ус", - "пе" - ], - [ - "▁esc", - "aped" - ], - [ - "▁escape", - "d" - ], - [ - "▁P", - "rag" - ], - [ - "▁Pr", - "ag" - ], - [ - "▁Pra", - "g" - ], - [ - "per", - "form" - ], - [ - "▁a", - "ustral" - ], - [ - "▁aust", - "ral" - ], - [ - "▁V", - "ater" - ], - [ - "▁Va", - "ter" - ], - [ - "ча", - "с" - ], - [ - "▁r", - "aces" - ], - [ - "▁ra", - "ces" - ], - [ - "▁race", - "s" - ], - [ - "▁rac", - "es" - ], - [ - "▁By", - "te" - ], - [ - "▁", - "Byte" - ], - [ - "Ma", - "sk" - ], - [ - "M", - "ask" - ], - [ - "▁Ter", - "rit" - ], - [ - "▁Terr", - "it" - ], - [ - "ст", - "ю" - ], - [ - "▁V", - "oci" - ], - [ - "▁Vo", - "ci" - ], - [ - "▁Fich", - "ier" - ], - [ - "▁Насе", - "лення" - ], - [ - "▁Unter", - "scheidung" - ], - [ - "te", - "enth" - ], - [ - "teen", - "th" - ], - [ - "▁pi", - "lot" - ], - [ - "▁pil", - "ot" - ], - [ - "▁j", - "i" - ], - [ - "▁", - "ji" - ], - [ - "▁дву", - "х" - ], - [ - "▁orient", - "ation" - ], - [ - "▁", - "orientation" - ], - [ - "ind", - "re" - ], - [ - "▁D", - "ort" - ], - [ - "▁Do", - "rt" - ], - [ - "▁Dor", - "t" - ], - [ - "ça", - "s" - ], - [ - "ç", - "as" - ], - [ - "п", - "ли" - ], - [ - "▁re", - "action" - ], - [ - "▁react", - "ion" - ], - [ - "▁cons", - "isting" - ], - [ - "▁consist", - "ing" - ], - [ - "▁fer", - "ro" - ], - [ - "ти", - "сти" - ], - [ - "ya", - "rd" - ], - [ - "yar", - "d" - ], - [ - "y", - "ard" - ], - [ - "▁с", - "ві" - ], - [ - "▁interpret", - "ation" - ], - [ - "i", - "ą" - ], - [ - "ra", - "h" - ], - [ - "r", - "ah" - ], - [ - "▁f", - "and" - ], - [ - "▁fa", - "nd" - ], - [ - "▁fan", - "d" - ], - [ - "Pub", - "lic" - ], - [ - "P", - "ublic" - ], - [ - "▁un", - "iverse" - ], - [ - "▁univers", - "e" - ], - [ - "▁ret", - "ir" - ], - [ - "▁cons", - "cious" - ], - [ - "ar", - "qu" - ], - [ - "▁w", - "aste" - ], - [ - "▁was", - "te" - ], - [ - "▁wa", - "ste" - ], - [ - "▁B", - "ib" - ], - [ - "▁Bi", - "b" - ], - [ - "ycler", - "View" - ], - [ - "▁list", - "ening" - ], - [ - "▁listen", - "ing" - ], - [ - "▁liste", - "ning" - ], - [ - "gle", - "ich" - ], - [ - "g", - "leich" - ], - [ - "nie", - "js" - ], - [ - "niej", - "s" - ], - [ - "▁cor", - "relation" - ], - [ - "▁correl", - "ation" - ], - [ - "▁corre", - "lation" - ], - [ - "▁rece", - "iver" - ], - [ - "▁receive", - "r" - ], - [ - "▁у", - "да" - ], - [ - "▁cour", - "age" - ], - [ - "▁cou", - "rage" - ], - [ - "uch", - "s" - ], - [ - "uc", - "hs" - ], - [ - "u", - "chs" - ], - [ - "fa", - "ss" - ], - [ - "fas", - "s" - ], - [ - "f", - "ass" - ], - [ - "▁ch", - "unk" - ], - [ - "▁", - "chunk" - ], - [ - "▁An", - "fang" - ], - [ - "▁gro", - "ßen" - ], - [ - "▁große", - "n" - ], - [ - "▁groß", - "en" - ], - [ - "cont", - "inue" - ], - [ - "continu", - "e" - ], - [ - "▁Warsza", - "wa" - ], - [ - "h", - "é" - ], - [ - "i", - "y" - ], - [ - "iv", - "ement" - ], - [ - "ive", - "ment" - ], - [ - "i", - "vement" - ], - [ - "▁", - "α" - ], - [ - "▁ex", - "posed" - ], - [ - "▁exp", - "osed" - ], - [ - "▁expos", - "ed" - ], - [ - "▁expose", - "d" - ], - [ - "▁z", - "ahl" - ], - [ - "▁za", - "hl" - ], - [ - "▁", - "zahl" - ], - [ - "▁sa", - "cr" - ], - [ - "▁sac", - "r" - ], - [ - "▁Lo", - "oks" - ], - [ - "▁Look", - "s" - ], - [ - "▁e", - "ager" - ], - [ - "en", - "ten" - ], - [ - "ent", - "en" - ], - [ - "ente", - "n" - ], - [ - "e", - "nten" - ], - [ - "C", - "ursor" - ], - [ - "/", - "_" - ], - [ - "ix", - "a" - ], - [ - "i", - "xa" - ], - [ - "ре", - "ла" - ], - [ - "зна", - "ча" - ], - [ - "з", - "нача" - ], - [ - "▁фамили", - "ей" - ], - [ - "▁ar", - "gent" - ], - [ - "▁arg", - "ent" - ], - [ - "▁", - "argent" - ], - [ - "▁An", - "ders" - ], - [ - "▁And", - "ers" - ], - [ - "œuv", - "re" - ], - [ - "▁I", - "sa" - ], - [ - "▁Is", - "a" - ], - [ - "мен", - "та" - ], - [ - "мент", - "а" - ], - [ - "▁ad", - "vers" - ], - [ - "▁adv", - "ers" - ], - [ - "ri", - "ction" - ], - [ - "ric", - "tion" - ], - [ - "rict", - "ion" - ], - [ - "r", - "iction" - ], - [ - "G", - "P" - ], - [ - "▁п", - "ісля" - ], - [ - "▁pre", - "serve" - ], - [ - "▁pres", - "erve" - ], - [ - "▁G", - "arden" - ], - [ - "▁Gar", - "den" - ], - [ - "▁Gard", - "en" - ], - [ - "R", - "ate" - ], - [ - "ap", - "rès" - ], - [ - "a", - "près" - ], - [ - "▁read", - "able" - ], - [ - "in", - "du" - ], - [ - "ind", - "u" - ], - [ - "▁s", - "kill" - ], - [ - "▁sk", - "ill" - ], - [ - "▁ski", - "ll" - ], - [ - "▁hel", - "ping" - ], - [ - "▁help", - "ing" - ], - [ - "ograph", - "ique" - ], - [ - "cl", - "ing" - ], - [ - "cli", - "ng" - ], - [ - "c", - "ling" - ], - [ - "olog", - "ist" - ], - [ - "▁Fil", - "ter" - ], - [ - "▁", - "Filter" - ], - [ - "▁f", - "inger" - ], - [ - "▁fin", - "ger" - ], - [ - "▁V", - "all" - ], - [ - "▁Val", - "l" - ], - [ - "▁Va", - "ll" - ], - [ - "▁Pol", - "ish" - ], - [ - "▁Po", - "lish" - ], - [ - "l", - "g" - ], - [ - "▁Famil", - "ien" - ], - [ - "▁Familie", - "n" - ], - [ - "▁w", - "aters" - ], - [ - "▁water", - "s" - ], - [ - "▁wa", - "ters" - ], - [ - "▁wat", - "ers" - ], - [ - "▁pse", - "ud" - ], - [ - "az", - "a" - ], - [ - "a", - "za" - ], - [ - "_", - ")" - ], - [ - "AR", - "Y" - ], - [ - "A", - "RY" - ], - [ - "▁с", - "реди" - ], - [ - "▁сред", - "и" - ], - [ - "▁сре", - "ди" - ], - [ - "▁M", - "ust" - ], - [ - "▁Mus", - "t" - ], - [ - "▁Mu", - "st" - ], - [ - "▁B", - "od" - ], - [ - "▁Bo", - "d" - ], - [ - "an", - "on" - ], - [ - "ano", - "n" - ], - [ - "a", - "non" - ], - [ - "▁l", - "ado" - ], - [ - "▁la", - "do" - ], - [ - "▁lad", - "o" - ], - [ - "▁t", - "ight" - ], - [ - "im", - "en" - ], - [ - "ime", - "n" - ], - [ - "i", - "men" - ], - [ - "ap", - "pen" - ], - [ - "app", - "en" - ], - [ - "appe", - "n" - ], - [ - "a", - "ppen" - ], - [ - "fr", - "ames" - ], - [ - "frame", - "s" - ], - [ - "fra", - "mes" - ], - [ - "fram", - "es" - ], - [ - "in", - "gers" - ], - [ - "ing", - "ers" - ], - [ - "inger", - "s" - ], - [ - "inge", - "rs" - ], - [ - "▁CO", - "VID" - ], - [ - "▁з", - "і" - ], - [ - "▁", - "зі" - ], - [ - "▁с", - "ве" - ], - [ - "▁ц", - "ь" - ], - [ - "▁", - "ць" - ], - [ - "▁L", - "eft" - ], - [ - "▁Le", - "ft" - ], - [ - "▁", - "Left" - ], - [ - "]]", - ";" - ], - [ - "]", - "];" - ], - [ - "ч", - "ь" - ], - [ - "фи", - "ка" - ], - [ - "▁с", - "ло" - ], - [ - "▁", - "сло" - ], - [ - "▁п", - "і" - ], - [ - "▁", - "пі" - ], - [ - "▁ex", - "iste" - ], - [ - "▁exist", - "e" - ], - [ - "▁Atl", - "antic" - ], - [ - "▁maintain", - "ed" - ], - [ - "▁ir", - "re" - ], - [ - "▁an", - "née" - ], - [ - "▁ann", - "ée" - ], - [ - "▁", - "année" - ], - [ - "▁comm", - "ented" - ], - [ - "▁comment", - "ed" - ], - [ - "ве", - "ро" - ], - [ - "вер", - "о" - ], - [ - "ber", - "ta" - ], - [ - "bert", - "a" - ], - [ - "b", - "erta" - ], - [ - "▁L", - "ad" - ], - [ - "▁La", - "d" - ], - [ - "▁U", - "pon" - ], - [ - "▁Up", - "on" - ], - [ - "▁p", - "ause" - ], - [ - "▁pa", - "use" - ], - [ - "▁pau", - "se" - ], - [ - "mi", - "ll" - ], - [ - "mil", - "l" - ], - [ - "m", - "ill" - ], - [ - "op", - "ter" - ], - [ - "opt", - "er" - ], - [ - "U", - "K" - ], - [ - "ре", - "с" - ], - [ - "р", - "ес" - ], - [ - "нцикло", - "педи" - ], - [ - "▁along", - "side" - ], - [ - "▁ro", - "bot" - ], - [ - "▁rob", - "ot" - ], - [ - "▁f", - "ert" - ], - [ - "▁fe", - "rt" - ], - [ - "▁fer", - "t" - ], - [ - "▁", - "fert" - ], - [ - "▁m", - "oy" - ], - [ - "▁mo", - "y" - ], - [ - "▁a", - "de" - ], - [ - "▁ad", - "e" - ], - [ - "▁", - "ade" - ], - [ - "Map", - "per" - ], - [ - "Mapp", - "er" - ], - [ - "Ma", - "pper" - ], - [ - "M", - "apper" - ], - [ - ")-", - ">" - ], - [ - ")", - "->" - ], - [ - "ig", - "ua" - ], - [ - "igu", - "a" - ], - [ - "ét", - "ique" - ], - [ - "т", - "ка" - ], - [ - "al", - "ias" - ], - [ - "ali", - "as" - ], - [ - "alia", - "s" - ], - [ - "a", - "lias" - ], - [ - "▁о", - "ри" - ], - [ - "▁ор", - "и" - ], - [ - "▁M", - "agn" - ], - [ - "▁Ma", - "gn" - ], - [ - "▁Mag", - "n" - ], - [ - "▁gehör", - "te" - ], - [ - "▁gehört", - "e" - ], - [ - "im", - "b" - ], - [ - "i", - "mb" - ], - [ - ")}", - "{\\" - ], - [ - ")}{", - "\\" - ], - [ - ")", - "}{\\" - ], - [ - "▁Wikip", - "édia" - ], - [ - "▁u", - "rs" - ], - [ - "▁ur", - "s" - ], - [ - "▁", - "urs" - ], - [ - "▁e", - "nde" - ], - [ - "▁en", - "de" - ], - [ - "▁end", - "e" - ], - [ - "▁", - "ende" - ], - [ - "le", - "b" - ], - [ - "l", - "eb" - ], - [ - "▁G", - "C" - ], - [ - "▁", - "GC" - ], - [ - "H", - "ol" - ], - [ - "an", - "cing" - ], - [ - "anc", - "ing" - ], - [ - "anci", - "ng" - ], - [ - "Un", - "ion" - ], - [ - "Uni", - "on" - ], - [ - "▁ten", - "ía" - ], - [ - "T", - "T" - ], - [ - "▁e", - "state" - ], - [ - "▁est", - "ate" - ], - [ - "▁esta", - "te" - ], - [ - "▁estat", - "e" - ], - [ - "h", - "á" - ], - [ - "▁по", - "лі" - ], - [ - "▁пол", - "і" - ], - [ - "ul", - "tan" - ], - [ - "ult", - "an" - ], - [ - "▁H", - "ockey" - ], - [ - "ul", - "se" - ], - [ - "uls", - "e" - ], - [ - "▁cho", - "ices" - ], - [ - "▁choice", - "s" - ], - [ - "sch", - "er" - ], - [ - "sc", - "her" - ], - [ - "sche", - "r" - ], - [ - "s", - "cher" - ], - [ - "▁[", - "]," - ], - [ - "▁[]", - "," - ], - [ - "▁pot", - "entially" - ], - [ - "▁potential", - "ly" - ], - [ - "▁Ü", - "bers" - ], - [ - "▁Über", - "s" - ], - [ - "▁ad", - "mit" - ], - [ - "▁adm", - "it" - ], - [ - "Com", - "ment" - ], - [ - "Comm", - "ent" - ], - [ - "ст", - "я" - ], - [ - "с", - "тя" - ], - [ - "▁V", - "ien" - ], - [ - "▁Vi", - "en" - ], - [ - "▁Vie", - "n" - ], - [ - "▁ц", - "і" - ], - [ - "▁", - "ці" - ], - [ - "▁per", - "mut" - ], - [ - "▁perm", - "ut" - ], - [ - "c", - "gi" - ], - [ - "▁cr", - "ít" - ], - [ - "Con", - "sole" - ], - [ - "Cons", - "ole" - ], - [ - "ct", - "ic" - ], - [ - "▁ok", - "res" - ], - [ - "aw", - "k" - ], - [ - "foot", - "ball" - ], - [ - "ou", - "est" - ], - [ - "o", - "uest" - ], - [ - "CT", - "YPE" - ], - [ - "C", - "TYPE" - ], - [ - "olog", - "ique" - ], - [ - "▁const", - "it" - ], - [ - "▁cons", - "tit" - ], - [ - "▁inter", - "ests" - ], - [ - "▁interest", - "s" - ], - [ - "▁Pro", - "gress" - ], - [ - "▁", - "Progress" - ], - [ - "▁M", - "enu" - ], - [ - "▁Me", - "nu" - ], - [ - "▁Men", - "u" - ], - [ - "▁", - "Menu" - ], - [ - "▁tak", - "é" - ], - [ - "▁ta", - "ké" - ], - [ - "▁As", - "ian" - ], - [ - "▁Asia", - "n" - ], - [ - "▁за", - "щи" - ], - [ - "▁young", - "er" - ], - [ - "▁w", - "ished" - ], - [ - "▁wish", - "ed" - ], - [ - "▁wis", - "hed" - ], - [ - "▁S", - "ort" - ], - [ - "▁So", - "rt" - ], - [ - "▁Sor", - "t" - ], - [ - "▁", - "Sort" - ], - [ - "▁aud", - "ience" - ], - [ - "▁audi", - "ence" - ], - [ - "am", - "ba" - ], - [ - "amb", - "a" - ], - [ - "▁gehör", - "t" - ], - [ - "▁K", - "ansas" - ], - [ - "ya", - "ume" - ], - [ - "▁Prof", - "essional" - ], - [ - "â", - "ce" - ], - [ - "▁f", - "atto" - ], - [ - "▁fa", - "tto" - ], - [ - "▁fat", - "to" - ], - [ - "to", - "d" - ], - [ - "t", - "od" - ], - [ - "▁data", - "sets" - ], - [ - "▁datas", - "ets" - ], - [ - "▁dataset", - "s" - ], - [ - "▁f", - "are" - ], - [ - "▁far", - "e" - ], - [ - "▁fa", - "re" - ], - [ - "▁", - "fare" - ], - [ - "▁w", - "aves" - ], - [ - "▁wave", - "s" - ], - [ - "▁wa", - "ves" - ], - [ - "~", - "/" - ], - [ - "▁measure", - "ment" - ], - [ - "▁w", - "ol" - ], - [ - "▁wo", - "l" - ], - [ - "▁", - "wol" - ], - [ - "ind", - "ust" - ], - [ - "indu", - "st" - ], - [ - "▁strugg", - "ling" - ], - [ - "▁pull", - "ed" - ], - [ - "▁pul", - "led" - ], - [ - "▁car", - "atter" - ], - [ - "▁Ex", - "terne" - ], - [ - "▁Ext", - "erne" - ], - [ - "▁Extern", - "e" - ], - [ - "▁дей", - "стви" - ], - [ - "cn", - "t" - ], - [ - "c", - "nt" - ], - [ - "li", - "ches" - ], - [ - "lic", - "hes" - ], - [ - "lich", - "es" - ], - [ - "liche", - "s" - ], - [ - "▁Pos", - "sible" - ], - [ - "▁Poss", - "ible" - ], - [ - "▁fa", - "ced" - ], - [ - "▁face", - "d" - ], - [ - "▁fac", - "ed" - ], - [ - "▁hypoth", - "esis" - ], - [ - "▁kil", - "om" - ], - [ - "▁n", - "är" - ], - [ - "▁nä", - "r" - ], - [ - "bo", - "olean" - ], - [ - "P", - "Y" - ], - [ - "am", - "pa" - ], - [ - "amp", - "a" - ], - [ - "▁k", - "iss" - ], - [ - "▁ki", - "ss" - ], - [ - "▁kis", - "s" - ], - [ - "▁as", - "tero" - ], - [ - "▁ast", - "ero" - ], - [ - "▁neg", - "li" - ], - [ - "am", - "ents" - ], - [ - "ament", - "s" - ], - [ - "amen", - "ts" - ], - [ - "a", - "ments" - ], - [ - "▁S", - "tu" - ], - [ - "▁St", - "u" - ], - [ - "at", - "ó" - ], - [ - "a", - "tó" - ], - [ - "▁Const", - "itution" - ], - [ - "▁inter", - "pol" - ], - [ - "▁Un", - "able" - ], - [ - "▁Una", - "ble" - ], - [ - "▁p", - "is" - ], - [ - "▁pi", - "s" - ], - [ - "▁", - "pis" - ], - [ - "▁p", - "arc" - ], - [ - "▁par", - "c" - ], - [ - "▁pa", - "rc" - ], - [ - "\"]", - ")" - ], - [ - "\"", - "])" - ], - [ - "ple", - "r" - ], - [ - "pl", - "er" - ], - [ - "p", - "ler" - ], - [ - "▁aut", - "ory" - ], - [ - "▁auto", - "ry" - ], - [ - "▁autor", - "y" - ], - [ - "▁alg", - "unos" - ], - [ - "yw", - "na" - ], - [ - "})", - ")" - ], - [ - "}", - "))" - ], - [ - "▁f", - "alls" - ], - [ - "▁fall", - "s" - ], - [ - "▁fal", - "ls" - ], - [ - "▁", - "falls" - ], - [ - "▁é", - "quip" - ], - [ - "▁e", - "mit" - ], - [ - "▁em", - "it" - ], - [ - "▁", - "emit" - ], - [ - "▁pro", - "fil" - ], - [ - "▁prof", - "il" - ], - [ - "ge", - "ts" - ], - [ - "get", - "s" - ], - [ - "g", - "ets" - ], - [ - "ф", - "о" - ], - [ - "▁Milit", - "ary" - ], - [ - "▁nombre", - "ux" - ], - [ - "oc", - "t" - ], - [ - "o", - "ct" - ], - [ - "Re", - "place" - ], - [ - "Rep", - "lace" - ], - [ - "▁se", - "asons" - ], - [ - "▁season", - "s" - ], - [ - "▁ch", - "âteau" - ], - [ - "▁type", - "of" - ], - [ - "▁", - "typeof" - ], - [ - "po", - "lit" - ], - [ - "pol", - "it" - ], - [ - "p", - "olit" - ], - [ - "▁r", - "and" - ], - [ - "▁ra", - "nd" - ], - [ - "▁ran", - "d" - ], - [ - "▁", - "rand" - ], - [ - "▁qu", - "ar" - ], - [ - "▁erst", - "mals" - ], - [ - "си", - "ни" - ], - [ - "▁pay", - "load" - ], - [ - "▁", - "payload" - ], - [ - "П", - "о" - ], - [ - "кі", - "н" - ], - [ - "к", - "ін" - ], - [ - "re", - "po" - ], - [ - "rep", - "o" - ], - [ - "▁P", - "av" - ], - [ - "▁Pa", - "v" - ], - [ - "Sc", - "ore" - ], - [ - "S", - "core" - ], - [ - "er", - "ves" - ], - [ - "erv", - "es" - ], - [ - "erve", - "s" - ], - [ - "▁soll", - "te" - ], - [ - "▁мі", - "ж" - ], - [ - "éb", - "ec" - ], - [ - "é", - "bec" - ], - [ - "▁c", - "lip" - ], - [ - "▁cl", - "ip" - ], - [ - "▁cli", - "p" - ], - [ - "▁", - "clip" - ], - [ - "▁N", - "ice" - ], - [ - "▁Nic", - "e" - ], - [ - "▁Ni", - "ce" - ], - [ - "▁n", - "eben" - ], - [ - "▁ne", - "ben" - ], - [ - "▁ass", - "ass" - ], - [ - "it", - "ories" - ], - [ - "ito", - "ries" - ], - [ - "itor", - "ies" - ], - [ - "itori", - "es" - ], - [ - "▁un", - "ity" - ], - [ - "▁unit", - "y" - ], - [ - "▁", - "unity" - ], - [ - "▁е", - "н" - ], - [ - "▁", - "ен" - ], - [ - "▁Inst", - "itut" - ], - [ - "▁Instit", - "ut" - ], - [ - "▁", - "Institut" - ], - [ - "▁intern", - "ationale" - ], - [ - "▁international", - "e" - ], - [ - "▁на", - "ук" - ], - [ - "▁нау", - "к" - ], - [ - "▁com", - "and" - ], - [ - "▁kle", - "ine" - ], - [ - "▁klein", - "e" - ], - [ - "▁adj", - "acent" - ], - [ - "▁deliver", - "ed" - ], - [ - "▁ш", - "е" - ], - [ - "▁", - "ше" - ], - [ - "зе", - "м" - ], - [ - "з", - "ем" - ], - [ - "▁c", - "ot" - ], - [ - "▁co", - "t" - ], - [ - "▁", - "cot" - ], - [ - "vis", - "ual" - ], - [ - "ва", - "ет" - ], - [ - "▁C", - "ensus" - ], - [ - "\\", - "_" - ], - [ - "▁territ", - "ory" - ], - [ - "чи", - "л" - ], - [ - "ч", - "ил" - ], - [ - "ч", - "ные" - ], - [ - "fl", - "utter" - ], - [ - "Did", - "Load" - ], - [ - "Document", - "s" - ], - [ - "Doc", - "uments" - ], - [ - "▁d", - "ob" - ], - [ - "▁do", - "b" - ], - [ - "▁", - "dob" - ], - [ - "Br", - "e" - ], - [ - "B", - "re" - ], - [ - "an", - "imate" - ], - [ - "ani", - "mate" - ], - [ - "anim", - "ate" - ], - [ - "▁b", - "iz" - ], - [ - "▁bi", - "z" - ], - [ - "▁b", - "ata" - ], - [ - "▁ba", - "ta" - ], - [ - "▁bat", - "a" - ], - [ - "▁S", - "U" - ], - [ - "▁", - "SU" - ], - [ - "es", - "o" - ], - [ - "e", - "so" - ], - [ - "▁p", - "riority" - ], - [ - "▁prior", - "ity" - ], - [ - "vá", - "n" - ], - [ - "v", - "án" - ], - [ - "ir", - "as" - ], - [ - "ira", - "s" - ], - [ - "i", - "ras" - ], - [ - "▁char", - "ged" - ], - [ - "▁charge", - "d" - ], - [ - "▁charg", - "ed" - ], - [ - "▁M", - "icro" - ], - [ - "▁Mi", - "cro" - ], - [ - "▁Mic", - "ro" - ], - [ - "at", - "oire" - ], - [ - "ato", - "ire" - ], - [ - "a", - "toire" - ], - [ - "че", - "р" - ], - [ - "ч", - "ер" - ], - [ - "ab", - "ad" - ], - [ - "aba", - "d" - ], - [ - "a", - "bad" - ], - [ - "ur", - "u" - ], - [ - "u", - "ru" - ], - [ - "▁v", - "š" - ], - [ - "dir", - "e" - ], - [ - "di", - "re" - ], - [ - "d", - "ire" - ], - [ - "▁Tw", - "itter" - ], - [ - "▁м", - "ето" - ], - [ - "▁ме", - "то" - ], - [ - "▁мет", - "о" - ], - [ - ").", - "." - ], - [ - ")", - ".." - ], - [ - "▁Ц", - "ент" - ], - [ - "▁ent", - "wick" - ], - [ - "▁M", - "ind" - ], - [ - "▁Min", - "d" - ], - [ - "▁Mi", - "nd" - ], - [ - "▁ф", - "унк" - ], - [ - "F", - "uture" - ], - [ - "ls", - "t" - ], - [ - "l", - "st" - ], - [ - "ło", - "ż" - ], - [ - "fl", - "i" - ], - [ - "f", - "li" - ], - [ - "t", - "ensor" - ], - [ - "▁top", - "ology" - ], - [ - "▁ar", - "te" - ], - [ - "▁art", - "e" - ], - [ - "▁", - "arte" - ], - [ - "ER", - "T" - ], - [ - "E", - "RT" - ], - [ - "▁var", - "iance" - ], - [ - "▁vari", - "ance" - ], - [ - "Im", - "ages" - ], - [ - "Image", - "s" - ], - [ - "▁(", - "@" - ], - [ - "▁", - "(@" - ], - [ - "Array", - "List" - ], - [ - "O", - "C" - ], - [ - "▁Де", - "мо" - ], - [ - "auc", - "oup" - ], - [ - "▁de", - "notes" - ], - [ - "▁den", - "otes" - ], - [ - "▁denote", - "s" - ], - [ - "im", - "on" - ], - [ - "imo", - "n" - ], - [ - "i", - "mon" - ], - [ - "њ", - "и" - ], - [ - "▁Prz", - "yp" - ], - [ - "▁Z", - "ag" - ], - [ - "▁Za", - "g" - ], - [ - "▁ди", - "ре" - ], - [ - "▁Similar", - "ly" - ], - [ - "б", - "ро" - ], - [ - "▁mil", - "itaire" - ], - [ - "▁milit", - "aire" - ], - [ - "▁т", - "ому" - ], - [ - "▁то", - "му" - ], - [ - "▁том", - "у" - ], - [ - "▁", - "тому" - ], - [ - "▁John", - "ny" - ], - [ - "▁Мекси", - "ку" - ], - [ - "ћ", - "а" - ], - [ - "Su", - "pp" - ], - [ - "S", - "upp" - ], - [ - "▁jun", - "ior" - ], - [ - "▁junio", - "r" - ], - [ - "▁juni", - "or" - ], - [ - "ol", - "tre" - ], - [ - "olt", - "re" - ], - [ - "o", - "ltre" - ], - [ - "▁Мо", - "ск" - ], - [ - "▁Мос", - "к" - ], - [ - "▁adm", - "itted" - ], - [ - "▁admit", - "ted" - ], - [ - "▁relig", - "ios" - ], - [ - "зя", - "й" - ], - [ - "е", - "го" - ], - [ - "▁t", - "ears" - ], - [ - "▁te", - "ars" - ], - [ - "▁tea", - "rs" - ], - [ - "in", - "go" - ], - [ - "ing", - "o" - ], - [ - "od", - "u" - ], - [ - "o", - "du" - ], - [ - "iv", - "eness" - ], - [ - "ive", - "ness" - ], - [ - "iven", - "ess" - ], - [ - "▁l", - "ogo" - ], - [ - "▁lo", - "go" - ], - [ - "▁log", - "o" - ], - [ - "▁", - "logo" - ], - [ - "▁últ", - "imo" - ], - [ - "▁al", - "iment" - ], - [ - "▁ali", - "ment" - ], - [ - "▁U", - "ITableView" - ], - [ - "▁", - "UITableView" - ], - [ - ")", - "!" - ], - [ - "▁n", - "j" - ], - [ - "le", - "tte" - ], - [ - "let", - "te" - ], - [ - "lett", - "e" - ], - [ - "l", - "ette" - ], - [ - "▁res", - "ident" - ], - [ - "▁resid", - "ent" - ], - [ - "▁term", - "ine" - ], - [ - "▁ter", - "mine" - ], - [ - "▁termin", - "e" - ], - [ - "▁у", - "же" - ], - [ - "▁С", - "те" - ], - [ - "▁Ст", - "е" - ], - [ - "off", - "ice" - ], - [ - "▁c", - "arte" - ], - [ - "▁car", - "te" - ], - [ - "▁cart", - "e" - ], - [ - "▁li", - "vre" - ], - [ - "▁liv", - "re" - ], - [ - "▁Мо", - "сков" - ], - [ - "▁Мос", - "ков" - ], - [ - "▁Моск", - "ов" - ], - [ - "▁e", - "lections" - ], - [ - "▁elect", - "ions" - ], - [ - "▁ele", - "ctions" - ], - [ - "▁election", - "s" - ], - [ - "зи", - "ден" - ], - [ - "Tr", - "igger" - ], - [ - "▁Ben", - "jamin" - ], - [ - "add", - "Class" - ], - [ - "ско", - "г" - ], - [ - "▁Ob", - "servable" - ], - [ - "▁Observ", - "able" - ], - [ - "▁", - "Observable" - ], - [ - "Cl", - "a" - ], - [ - "C", - "la" - ], - [ - "gem", - "ein" - ], - [ - "geme", - "in" - ], - [ - "g", - "emein" - ], - [ - "▁con", - "sent" - ], - [ - "▁cons", - "ent" - ], - [ - "▁conse", - "nt" - ], - [ - "в", - "ри" - ], - [ - "▁un", - "fold" - ], - [ - "▁unf", - "old" - ], - [ - "▁govern", - "or" - ], - [ - "▁gover", - "nor" - ], - [ - "▁governo", - "r" - ], - [ - "на", - "л" - ], - [ - "н", - "ал" - ], - [ - "▁t", - "oda" - ], - [ - "▁to", - "da" - ], - [ - "▁tod", - "a" - ], - [ - "Rem", - "ote" - ], - [ - "ar", - "ias" - ], - [ - "ari", - "as" - ], - [ - "aria", - "s" - ], - [ - "a", - "rias" - ], - [ - "▁in", - "stal" - ], - [ - "▁inst", - "al" - ], - [ - "▁ins", - "tal" - ], - [ - "fix", - "ed" - ], - [ - "f", - "ixed" - ], - [ - "▁dec", - "ay" - ], - [ - "▁де", - "рев" - ], - [ - "▁дере", - "в" - ], - [ - "xy", - "z" - ], - [ - "x", - "yz" - ], - [ - "▁D", - "ATE" - ], - [ - "▁DA", - "TE" - ], - [ - "▁DAT", - "E" - ], - [ - "▁", - "DATE" - ], - [ - "im", - "ar" - ], - [ - "ima", - "r" - ], - [ - "i", - "mar" - ], - [ - "nt", - "il" - ], - [ - "n", - "til" - ], - [ - "▁start", - "up" - ], - [ - "al", - "ion" - ], - [ - "ali", - "on" - ], - [ - "▁ko", - "lej" - ], - [ - "▁kol", - "ej" - ], - [ - "▁kole", - "j" - ], - [ - "ci", - "os" - ], - [ - "cio", - "s" - ], - [ - "c", - "ios" - ], - [ - "▁r", - "anges" - ], - [ - "▁range", - "s" - ], - [ - "▁ran", - "ges" - ], - [ - "▁rang", - "es" - ], - [ - "▁stup", - "id" - ], - [ - "▁implement", - "ations" - ], - [ - "▁implementation", - "s" - ], - [ - "▁r", - "m" - ], - [ - "▁", - "rm" - ], - [ - "én", - "ek" - ], - [ - "é", - "nek" - ], - [ - "▁g", - "cc" - ], - [ - "▁", - "gcc" - ], - [ - "▁sc", - "ène" - ], - [ - "N", - "avigation" - ], - [ - "▁", - " " - ], - [ - "▁к", - "ан" - ], - [ - "▁ка", - "н" - ], - [ - "▁", - "кан" - ], - [ - "▁town", - "s" - ], - [ - "User", - "name" - ], - [ - "Us", - "ername" - ], - [ - "▁ф", - "е" - ], - [ - "▁", - "фе" - ], - [ - "▁le", - "aders" - ], - [ - "▁lead", - "ers" - ], - [ - "▁leader", - "s" - ], - [ - "oi", - "t" - ], - [ - "o", - "it" - ], - [ - "w", - "är" - ], - [ - "▁d", - "ummy" - ], - [ - "▁ass", - "istant" - ], - [ - "▁assist", - "ant" - ], - [ - "{$", - "\\" - ], - [ - "{", - "$\\" - ], - [ - "бі", - "р" - ], - [ - "б", - "ір" - ], - [ - "▁r", - "oy" - ], - [ - "▁ro", - "y" - ], - [ - "▁", - "roy" - ], - [ - "▁L", - "ayout" - ], - [ - "▁", - "Layout" - ], - [ - "▁J", - "ung" - ], - [ - "▁Ju", - "ng" - ], - [ - "▁Jun", - "g" - ], - [ - "Line", - "s" - ], - [ - "Lin", - "es" - ], - [ - "Li", - "nes" - ], - [ - "L", - "ines" - ], - [ - "▁Hol", - "land" - ], - [ - "по", - "р" - ], - [ - "п", - "ор" - ], - [ - "▁Г", - "ри" - ], - [ - "▁B", - "ened" - ], - [ - "▁Be", - "ned" - ], - [ - "▁Ben", - "ed" - ], - [ - "▁П", - "од" - ], - [ - "▁По", - "д" - ], - [ - "xl", - "s" - ], - [ - "x", - "ls" - ], - [ - "▁G", - "ol" - ], - [ - "▁Go", - "l" - ], - [ - "▁Al", - "eks" - ], - [ - "▁Ale", - "ks" - ], - [ - "▁ej", - "emplo" - ], - [ - "▁se", - "zon" - ], - [ - "ar", - "ding" - ], - [ - "ard", - "ing" - ], - [ - "ardi", - "ng" - ], - [ - "ardin", - "g" - ], - [ - "foot", - "note" - ], - [ - "▁Cong", - "rès" - ], - [ - "re", - "fer" - ], - [ - "ref", - "er" - ], - [ - "ска", - "та" - ], - [ - "с", - "ката" - ], - [ - "Iter", - "ator" - ], - [ - "▁our", - "selves" - ], - [ - "▁M", - "ic" - ], - [ - "▁Mi", - "c" - ], - [ - "▁c", - "ódigo" - ], - [ - "▁пло", - "ща" - ], - [ - "▁\\", - "$" - ], - [ - "▁Char", - "lie" - ], - [ - "No", - "des" - ], - [ - "Node", - "s" - ], - [ - "N", - "odes" - ], - [ - "▁p", - "uzz" - ], - [ - "▁pu", - "zz" - ], - [ - "▁Ident", - "ifier" - ], - [ - "▁", - "Identifier" - ], - [ - "▁fl", - "utter" - ], - [ - "▁", - "flutter" - ], - [ - "▁pr", - "ü" - ], - [ - "▁", - "prü" - ], - [ - "▁o", - "rt" - ], - [ - "▁or", - "t" - ], - [ - "▁", - "ort" - ], - [ - "▁C", - "ort" - ], - [ - "▁Cor", - "t" - ], - [ - "▁Co", - "rt" - ], - [ - "astic", - "search" - ], - [ - "▁С", - "вя" - ], - [ - "▁B", - "ull" - ], - [ - "▁Bu", - "ll" - ], - [ - "▁Bul", - "l" - ], - [ - "ud", - "em" - ], - [ - "ude", - "m" - ], - [ - "u", - "dem" - ], - [ - "▁ap", - "parent" - ], - [ - "▁appar", - "ent" - ], - [ - ":-", - "-" - ], - [ - ":", - "--" - ], - [ - "▁Х", - "ар" - ], - [ - "▁Ха", - "р" - ], - [ - "▁L", - "ap" - ], - [ - "▁La", - "p" - ], - [ - "▁com", - "port" - ], - [ - "▁comp", - "ort" - ], - [ - "mat", - "ically" - ], - [ - "m", - "atically" - ], - [ - "▁cu", - "rios" - ], - [ - "▁cur", - "ios" - ], - [ - "▁мо", - "жет" - ], - [ - "▁мож", - "ет" - ], - [ - "▁може", - "т" - ], - [ - "▁B", - "h" - ], - [ - "ap", - "ping" - ], - [ - "app", - "ing" - ], - [ - "a", - "pping" - ], - [ - "▁b", - "asketball" - ], - [ - "▁basket", - "ball" - ], - [ - "ze", - "tek" - ], - [ - "zet", - "ek" - ], - [ - "▁r", - "unt" - ], - [ - "▁run", - "t" - ], - [ - "▁ru", - "nt" - ], - [ - "▁Mil", - "an" - ], - [ - "▁Mi", - "lan" - ], - [ - "fe", - "ction" - ], - [ - "fect", - "ion" - ], - [ - "f", - "ection" - ], - [ - "rí", - "a" - ], - [ - "r", - "ía" - ], - [ - "▁K", - "in" - ], - [ - "▁Ki", - "n" - ], - [ - "▁s", - "lower" - ], - [ - "▁sl", - "ower" - ], - [ - "▁slow", - "er" - ], - [ - "▁slo", - "wer" - ], - [ - "bo", - "th" - ], - [ - "bot", - "h" - ], - [ - "b", - "oth" - ], - [ - "▁Inst", - "ituto" - ], - [ - "▁Instit", - "uto" - ], - [ - "▁Institut", - "o" - ], - [ - "▁Histor", - "ical" - ], - [ - "▁Historic", - "al" - ], - [ - "▁równ", - "ież" - ], - [ - "mat", - "ches" - ], - [ - "match", - "es" - ], - [ - "yc", - "i" - ], - [ - "y", - "ci" - ], - [ - "▁esp", - "èce" - ], - [ - "▁Schwe", - "izer" - ], - [ - "▁Schweiz", - "er" - ], - [ - "N", - "T" - ], - [ - "S", - "F" - ], - [ - "ac", - "ia" - ], - [ - "aci", - "a" - ], - [ - "a", - "cia" - ], - [ - "for", - "ge" - ], - [ - "f", - "orge" - ], - [ - "Point", - "s" - ], - [ - "Po", - "ints" - ], - [ - "num", - "bers" - ], - [ - "number", - "s" - ], - [ - "▁f", - "alling" - ], - [ - "▁fall", - "ing" - ], - [ - "▁fal", - "ling" - ], - [ - "▁inherit", - "ance" - ], - [ - "▁Er", - "st" - ], - [ - "▁custom", - "ers" - ], - [ - "▁customer", - "s" - ], - [ - "▁a", - "ctu" - ], - [ - "▁act", - "u" - ], - [ - "▁ac", - "tu" - ], - [ - "▁m", - "igration" - ], - [ - "▁migr", - "ation" - ], - [ - "\\", - "'" - ], - [ - "Pl", - "an" - ], - [ - "P", - "lan" - ], - [ - "M", - "r" - ], - [ - "ot", - "hy" - ], - [ - "oth", - "y" - ], - [ - "o", - "thy" - ], - [ - "▁up", - "grad" - ], - [ - "би", - "ра" - ], - [ - "▁O", - "ffic" - ], - [ - "▁Of", - "fic" - ], - [ - "▁Off", - "ic" - ], - [ - "▁W", - "ait" - ], - [ - "▁Wa", - "it" - ], - [ - "▁", - "Wait" - ], - [ - "▁to", - "ler" - ], - [ - "ar", - "don" - ], - [ - "ard", - "on" - ], - [ - "ardo", - "n" - ], - [ - "▁s", - "lide" - ], - [ - "▁sl", - "ide" - ], - [ - "▁sli", - "de" - ], - [ - "▁", - "slide" - ], - [ - ")", - "_" - ], - [ - "▁ста", - "в" - ], - [ - "▁", - "став" - ], - [ - "▁nu", - "clear" - ], - [ - "▁nuc", - "lear" - ], - [ - "▁nucle", - "ar" - ], - [ - "▁B", - "il" - ], - [ - "▁Bi", - "l" - ], - [ - "ow", - "ner" - ], - [ - "own", - "er" - ], - [ - "o", - "wner" - ], - [ - "▁Har", - "ris" - ], - [ - "▁Harr", - "is" - ], - [ - "In", - "formation" - ], - [ - "▁p", - "ó" - ], - [ - "▁вклю", - "ча" - ], - [ - "▁nu", - "ovo" - ], - [ - "▁C", - "av" - ], - [ - "▁Ca", - "v" - ], - [ - "▁De", - "scri" - ], - [ - "▁Des", - "cri" - ], - [ - "▁а", - "к" - ], - [ - "ód", - "zt" - ], - [ - "▁react", - "js" - ], - [ - "▁Ad", - "ams" - ], - [ - "▁Adam", - "s" - ], - [ - "▁Ada", - "ms" - ], - [ - "▁Altern", - "atively" - ], - [ - "ст", - "рук" - ], - [ - "стру", - "к" - ], - [ - "стр", - "ук" - ], - [ - ")`", - "," - ], - [ - ")", - "`," - ], - [ - "sub", - "string" - ], - [ - "subst", - "ring" - ], - [ - "substr", - "ing" - ], - [ - "▁mass", - "ive" - ], - [ - "▁heav", - "ily" - ], - [ - "▁се", - "зо" - ], - [ - "▁сез", - "о" - ], - [ - "▁A", - "na" - ], - [ - "▁An", - "a" - ], - [ - "▁v", - "ale" - ], - [ - "▁val", - "e" - ], - [ - "▁va", - "le" - ], - [ - "Pa", - "d" - ], - [ - "P", - "ad" - ], - [ - "▁E", - "ither" - ], - [ - "▁r", - "s" - ], - [ - "▁", - "rs" - ], - [ - "an", - "che" - ], - [ - "anc", - "he" - ], - [ - "anch", - "e" - ], - [ - "▁up", - "loaded" - ], - [ - "▁upload", - "ed" - ], - [ - "▁(", - "/" - ], - [ - "▁", - "(/" - ], - [ - "▁с", - "пор" - ], - [ - "▁спо", - "р" - ], - [ - "▁сп", - "ор" - ], - [ - "▁redu", - "ction" - ], - [ - "▁Tok", - "yo" - ], - [ - "gr", - "en" - ], - [ - "gre", - "n" - ], - [ - "g", - "ren" - ], - [ - "▁m", - "igli" - ], - [ - "▁mig", - "li" - ], - [ - "▁iter", - "ator" - ], - [ - "▁", - "iterator" - ], - [ - "st", - "av" - ], - [ - "sta", - "v" - ], - [ - "▁support", - "ing" - ], - [ - "▁ö", - "sterreich" - ], - [ - "▁NS", - "Log" - ], - [ - "ist", - "iques" - ], - [ - "isti", - "ques" - ], - [ - "istique", - "s" - ], - [ - "ri", - "min" - ], - [ - "rim", - "in" - ], - [ - "r", - "imin" - ], - [ - "MO", - "DE" - ], - [ - "}}", - "}\\" - ], - [ - "}}}", - "\\" - ], - [ - "}", - "}}\\" - ], - [ - "▁exp", - "los" - ], - [ - "▁expl", - "os" - ], - [ - "▁explo", - "s" - ], - [ - "от", - "е" - ], - [ - "о", - "те" - ], - [ - "▁(", - "„" - ], - [ - "Sa", - "l" - ], - [ - "S", - "al" - ], - [ - "▁simple", - "st" - ], - [ - "▁simpl", - "est" - ], - [ - "▁gi", - "à" - ], - [ - "▁та", - "н" - ], - [ - "▁т", - "ан" - ], - [ - "▁", - "тан" - ], - [ - "▁c", - "yl" - ], - [ - "▁cy", - "l" - ], - [ - "bi", - "r" - ], - [ - "b", - "ir" - ], - [ - "▁measure", - "ments" - ], - [ - "▁measurement", - "s" - ], - [ - "Create", - "d" - ], - [ - "Cre", - "ated" - ], - [ - "er", - "ek" - ], - [ - "ere", - "k" - ], - [ - "e", - "rek" - ], - [ - "look", - "up" - ], - [ - "w", - "irtschaft" - ], - [ - "▁В", - "оло" - ], - [ - "▁Во", - "ло" - ], - [ - "▁Вол", - "о" - ], - [ - "ti", - "mer" - ], - [ - "time", - "r" - ], - [ - "tim", - "er" - ], - [ - "t", - "imer" - ], - [ - "de", - "rr" - ], - [ - "der", - "r" - ], - [ - "d", - "err" - ], - [ - "▁ст", - "ала" - ], - [ - "▁ста", - "ла" - ], - [ - "▁стал", - "а" - ], - [ - "▁sc", - "enes" - ], - [ - "▁scen", - "es" - ], - [ - "▁scene", - "s" - ], - [ - "▁per", - "su" - ], - [ - "▁pers", - "u" - ], - [ - "li", - "est" - ], - [ - "lie", - "st" - ], - [ - "lies", - "t" - ], - [ - "l", - "iest" - ], - [ - "▁sch", - "edule" - ], - [ - "▁sched", - "ule" - ], - [ - "ta", - "l" - ], - [ - "t", - "al" - ], - [ - "ле", - "но" - ], - [ - "лен", - "о" - ], - [ - "▁pain", - "ting" - ], - [ - "▁paint", - "ing" - ], - [ - "▁impro", - "vement" - ], - [ - "▁improve", - "ment" - ], - [ - "▁improv", - "ement" - ], - [ - "so", - "ftware" - ], - [ - "soft", - "ware" - ], - [ - "▁govern", - "o" - ], - [ - "▁gover", - "no" - ], - [ - "▁H", - "ir" - ], - [ - "▁Hi", - "r" - ], - [ - "Exec", - "ution" - ], - [ - "▁Ok", - "ay" - ], - [ - "Pro", - "p" - ], - [ - "Pr", - "op" - ], - [ - "P", - "rop" - ], - [ - "lo", - "ster" - ], - [ - "los", - "ter" - ], - [ - "lost", - "er" - ], - [ - "l", - "oster" - ], - [ - "ніципа", - "лі" - ], - [ - "▁peu", - "vent" - ], - [ - "ol", - "u" - ], - [ - "o", - "lu" - ], - [ - "▁Ф", - "а" - ], - [ - "roll", - "o" - ], - [ - "rol", - "lo" - ], - [ - "▁ко", - "ло" - ], - [ - "▁к", - "оло" - ], - [ - "▁", - "коло" - ], - [ - "▁car", - "rière" - ], - [ - "▁carri", - "ère" - ], - [ - "▁t", - "oggle" - ], - [ - "▁tog", - "gle" - ], - [ - "▁togg", - "le" - ], - [ - "▁", - "toggle" - ], - [ - "▁(", - "$\\" - ], - [ - "▁($", - "\\" - ], - [ - "▁aggreg", - "ate" - ], - [ - "▁Б", - "і" - ], - [ - "text", - "area" - ], - [ - "O", - "k" - ], - [ - "it", - "to" - ], - [ - "itt", - "o" - ], - [ - "i", - "tto" - ], - [ - "▁s", - "tim" - ], - [ - "▁st", - "im" - ], - [ - "▁recurs", - "ion" - ], - [ - "▁Feder", - "ation" - ], - [ - ")_", - "{" - ], - [ - ")", - "_{" - ], - [ - "ate", - "gor" - ], - [ - "ateg", - "or" - ], - [ - "▁dist", - "ribu" - ], - [ - "▁distrib", - "u" - ], - [ - "Cl", - "oud" - ], - [ - "▁m", - "adre" - ], - [ - "▁mad", - "re" - ], - [ - "▁i", - "v" - ], - [ - "▁", - "iv" - ], - [ - "▁Lie", - "utenant" - ], - [ - "▁subst", - "ant" - ], - [ - "▁le", - "af" - ], - [ - "▁", - "leaf" - ], - [ - "▁Kont", - "rola" - ], - [ - "V", - "A" - ], - [ - "▁t", - "omb" - ], - [ - "▁to", - "mb" - ], - [ - "▁tom", - "b" - ], - [ - "э", - "н" - ], - [ - "ato", - "es" - ], - [ - "▁god", - "ine" - ], - [ - "▁#", - ">" - ], - [ - "C", - "ert" - ], - [ - "▁em", - "presa" - ], - [ - "▁empres", - "a" - ], - [ - "Pro", - "ps" - ], - [ - "Pr", - "ops" - ], - [ - "Prop", - "s" - ], - [ - "▁pl", - "anned" - ], - [ - "▁plan", - "ned" - ], - [ - "▁random", - "ly" - ], - [ - "j", - "ähr" - ], - [ - "el", - "em" - ], - [ - "ele", - "m" - ], - [ - "e", - "lem" - ], - [ - "▁Oper", - "ation" - ], - [ - "▁Opera", - "tion" - ], - [ - "▁", - "Operation" - ], - [ - "*", - "`" - ], - [ - "pro", - "tocol" - ], - [ - "proto", - "col" - ], - [ - "()", - "));" - ], - [ - "())", - ");" - ], - [ - "()))", - ";" - ], - [ - "(", - ")));" - ], - [ - "we", - "l" - ], - [ - "w", - "el" - ], - [ - "▁p", - "raw" - ], - [ - "▁pr", - "aw" - ], - [ - "▁pra", - "w" - ], - [ - "▁с", - "им" - ], - [ - "▁си", - "м" - ], - [ - "▁w", - "ob" - ], - [ - "▁wo", - "b" - ], - [ - "▁h", - "ace" - ], - [ - "▁ha", - "ce" - ], - [ - "▁near", - "est" - ], - [ - "dis", - "able" - ], - [ - "▁C", - "ommun" - ], - [ - "▁Com", - "mun" - ], - [ - "▁Comm", - "un" - ], - [ - "▁re", - "vel" - ], - [ - "▁rev", - "el" - ], - [ - "▁reve", - "l" - ], - [ - "Fr", - "ee" - ], - [ - "Fre", - "e" - ], - [ - "F", - "ree" - ], - [ - "▁bra", - "ckets" - ], - [ - "IO", - "Exception" - ], - [ - "▁al", - "to" - ], - [ - "▁alt", - "o" - ], - [ - "▁mar", - "ry" - ], - [ - "▁a", - "uc" - ], - [ - "▁au", - "c" - ], - [ - "▁", - "auc" - ], - [ - "),", - "\\" - ], - [ - ")", - ",\\" - ], - [ - "▁typ", - "o" - ], - [ - "▁ty", - "po" - ], - [ - "ed", - "ad" - ], - [ - "eda", - "d" - ], - [ - "ar", - "á" - ], - [ - "a", - "rá" - ], - [ - "ic", - "ator" - ], - [ - "ica", - "tor" - ], - [ - "tat", - "ywna" - ], - [ - "▁b", - "uff" - ], - [ - "▁bu", - "ff" - ], - [ - "▁buf", - "f" - ], - [ - "▁", - "buff" - ], - [ - "or", - "ders" - ], - [ - "ord", - "ers" - ], - [ - "order", - "s" - ], - [ - "orde", - "rs" - ], - [ - "▁as", - "ynchronous" - ], - [ - "▁e", - "con" - ], - [ - "▁ec", - "on" - ], - [ - "▁f", - "eu" - ], - [ - "▁fe", - "u" - ], - [ - "▁I", - "ron" - ], - [ - "▁Ir", - "on" - ], - [ - "▁r", - "ising" - ], - [ - "▁ris", - "ing" - ], - [ - "▁ri", - "sing" - ], - [ - "Rad", - "ius" - ], - [ - "cl", - "k" - ], - [ - "▁zwe", - "iten" - ], - [ - "▁zwei", - "ten" - ], - [ - "▁zweite", - "n" - ], - [ - "`", - "'" - ], - [ - "▁un", - "iqu" - ], - [ - "▁F", - "M" - ], - [ - "▁", - "FM" - ], - [ - "▁B", - "ran" - ], - [ - "▁Br", - "an" - ], - [ - "▁Bra", - "n" - ], - [ - "▁f", - "lu" - ], - [ - "▁fl", - "u" - ], - [ - "▁", - "flu" - ], - [ - "▁sens", - "itive" - ], - [ - "ur", - "re" - ], - [ - "urr", - "e" - ], - [ - "▁I", - "ter" - ], - [ - "▁It", - "er" - ], - [ - "▁", - "Iter" - ], - [ - "▁S", - "ein" - ], - [ - "▁Se", - "in" - ], - [ - "▁difer", - "entes" - ], - [ - "▁diferen", - "tes" - ], - [ - "▁не", - "го" - ], - [ - "▁н", - "его" - ], - [ - "▁", - "него" - ], - [ - "ch", - "ia" - ], - [ - "chi", - "a" - ], - [ - "▁An", - "leitung" - ], - [ - "atur", - "day" - ], - [ - "▁sh", - "orter" - ], - [ - "▁short", - "er" - ], - [ - "▁transl", - "ated" - ], - [ - "▁translate", - "d" - ], - [ - "▁R", - "és" - ], - [ - "▁Ré", - "s" - ], - [ - "▁r", - "ode" - ], - [ - "▁ro", - "de" - ], - [ - "▁rod", - "e" - ], - [ - "dr", - "ag" - ], - [ - "dra", - "g" - ], - [ - "d", - "rag" - ], - [ - "▁l", - "ange" - ], - [ - "▁lang", - "e" - ], - [ - "▁lan", - "ge" - ], - [ - "B", - "i" - ], - [ - "ü", - "b" - ], - [ - "le", - "ur" - ], - [ - "l", - "eur" - ], - [ - "▁order", - "ing" - ], - [ - "▁ord", - "ering" - ], - [ - "al", - "ous" - ], - [ - "alo", - "us" - ], - [ - "▁К", - "ор" - ], - [ - "▁Ко", - "р" - ], - [ - "ar", - "char" - ], - [ - "arch", - "ar" - ], - [ - "arc", - "har" - ], - [ - "dest", - "roy" - ], - [ - "erv", - "ation" - ], - [ - "erva", - "tion" - ], - [ - "]]", - "," - ], - [ - "]", - "]," - ], - [ - "Accessor", - "Impl" - ], - [ - "▁autory", - "tatywna" - ], - [ - "Se", - "quence" - ], - [ - "Sequ", - "ence" - ], - [ - "▁pro", - "yect" - ], - [ - "▁b", - "ran" - ], - [ - "▁br", - "an" - ], - [ - "▁bra", - "n" - ], - [ - "▁(", - "+" - ], - [ - "▁K", - "ab" - ], - [ - "▁Ka", - "b" - ], - [ - "▁z", - "em" - ], - [ - "▁ze", - "m" - ], - [ - "▁", - "zem" - ], - [ - "▁Cal", - "cul" - ], - [ - "▁", - "Calcul" - ], - [ - "▁se", - "ul" - ], - [ - "▁seu", - "l" - ], - [ - "▁N", - "iger" - ], - [ - "▁Ni", - "ger" - ], - [ - "▁ch", - "iam" - ], - [ - "▁chi", - "am" - ], - [ - "th", - "row" - ], - [ - "▁Plan", - "et" - ], - [ - "▁Pla", - "net" - ], - [ - "bild", - "ung" - ], - [ - "▁z", - "ones" - ], - [ - "▁zo", - "nes" - ], - [ - "▁zone", - "s" - ], - [ - "trans", - "ition" - ], - [ - "ле", - "ний" - ], - [ - "▁m", - "apped" - ], - [ - "▁ma", - "pped" - ], - [ - "▁map", - "ped" - ], - [ - "on", - "aut" - ], - [ - "ona", - "ut" - ], - [ - "Pa", - "ir" - ], - [ - "P", - "air" - ], - [ - "il", - "ian" - ], - [ - "ili", - "an" - ], - [ - "ilia", - "n" - ], - [ - "▁M", - "organ" - ], - [ - "▁Mor", - "gan" - ], - [ - "▁un", - "to" - ], - [ - "▁", - "unto" - ], - [ - "jo", - "u" - ], - [ - "j", - "ou" - ], - [ - "▁h", - "id" - ], - [ - "▁hi", - "d" - ], - [ - "▁M", - "eta" - ], - [ - "▁Me", - "ta" - ], - [ - "▁Met", - "a" - ], - [ - "▁", - "Meta" - ], - [ - "▁e", - "lles" - ], - [ - "▁el", - "les" - ], - [ - "▁elle", - "s" - ], - [ - "▁ell", - "es" - ], - [ - "▁", - "elles" - ], - [ - "Lo", - "u" - ], - [ - "L", - "ou" - ], - [ - "ra", - "ma" - ], - [ - "ram", - "a" - ], - [ - "r", - "ama" - ], - [ - "ge", - "ordnet" - ], - [ - "▁scarc", - "ely" - ], - [ - "▁m", - "int" - ], - [ - "▁min", - "t" - ], - [ - "▁mi", - "nt" - ], - [ - "F", - "ocus" - ], - [ - "▁Al", - "ter" - ], - [ - "▁Alt", - "er" - ], - [ - "▁d", - "io" - ], - [ - "▁di", - "o" - ], - [ - "▁am", - "pl" - ], - [ - "▁amp", - "l" - ], - [ - "ière", - "ment" - ], - [ - "▁ис", - "следова" - ], - [ - "LE", - "D" - ], - [ - "L", - "ED" - ], - [ - "alg", - "orithm" - ], - [ - "▁сай", - "ті" - ], - [ - "▁сайт", - "і" - ], - [ - "▁\"", - "\")" - ], - [ - "▁\"\"", - ")" - ], - [ - "Hi", - "story" - ], - [ - "H", - "istory" - ], - [ - "p", - "k" - ], - [ - "▁W", - "hit" - ], - [ - "▁Wh", - "it" - ], - [ - "▁си", - "стем" - ], - [ - "▁систе", - "м" - ], - [ - "▁Kir", - "chen" - ], - [ - "▁Kirche", - "n" - ], - [ - "▁Kirch", - "en" - ], - [ - "r", - "à" - ], - [ - "AP", - "P" - ], - [ - "A", - "PP" - ], - [ - "▁<", - "%" - ], - [ - "ant", - "ine" - ], - [ - "anti", - "ne" - ], - [ - "antin", - "e" - ], - [ - "▁D", - "isk" - ], - [ - "▁Dis", - "k" - ], - [ - "▁Di", - "sk" - ], - [ - "con", - "v" - ], - [ - "we", - "lt" - ], - [ - "wel", - "t" - ], - [ - "w", - "elt" - ], - [ - "▁F", - "ut" - ], - [ - "▁Fu", - "t" - ], - [ - "▁N", - "om" - ], - [ - "▁No", - "m" - ], - [ - "or", - "do" - ], - [ - "ord", - "o" - ], - [ - "el", - "lij" - ], - [ - "ell", - "ij" - ], - [ - "elli", - "j" - ], - [ - "▁rece", - "ives" - ], - [ - "▁receive", - "s" - ], - [ - "co", - "w" - ], - [ - "c", - "ow" - ], - [ - "yt", - "u" - ], - [ - "y", - "tu" - ], - [ - "▁o", - "bras" - ], - [ - "▁ob", - "ras" - ], - [ - "▁obra", - "s" - ], - [ - "▁p", - "urchase" - ], - [ - "▁purch", - "ase" - ], - [ - "▁ear", - "ned" - ], - [ - "▁acc", - "essed" - ], - [ - "▁access", - "ed" - ], - [ - "ax", - "i" - ], - [ - "a", - "xi" - ], - [ - "▁M", - "ans" - ], - [ - "▁Man", - "s" - ], - [ - "▁Ma", - "ns" - ], - [ - "iv", - "an" - ], - [ - "iva", - "n" - ], - [ - "i", - "van" - ], - [ - "▁t", - "uvo" - ], - [ - "▁tu", - "vo" - ], - [ - "▁T", - "race" - ], - [ - "▁Tr", - "ace" - ], - [ - "▁Tra", - "ce" - ], - [ - "▁", - "Trace" - ], - [ - "rim", - "onio" - ], - [ - "▁desen", - "vol" - ], - [ - "ér", - "ique" - ], - [ - "éri", - "que" - ], - [ - "é", - "rique" - ], - [ - "▁result", - "ed" - ], - [ - "▁comp", - "uting" - ], - [ - "▁comput", - "ing" - ], - [ - "▁insp", - "ired" - ], - [ - "▁inspir", - "ed" - ], - [ - "▁Pr", - "ize" - ], - [ - "▁Pri", - "ze" - ], - [ - "*", - "\"" - ], - [ - "Com", - "put" - ], - [ - "Comp", - "ut" - ], - [ - "▁ext", - "ensive" - ], - [ - "▁extens", - "ive" - ], - [ - "è", - "g" - ], - [ - "▁Port", - "ály" - ], - [ - "▁cast", - "le" - ], - [ - "▁", - "castle" - ], - [ - "▁*", - "." - ], - [ - "▁", - "*." - ], - [ - "▁ph", - "otos" - ], - [ - "▁phot", - "os" - ], - [ - "▁photo", - "s" - ], - [ - "▁vo", - "et" - ], - [ - "ON", - "G" - ], - [ - "O", - "NG" - ], - [ - "▁A", - "lle" - ], - [ - "▁Al", - "le" - ], - [ - "▁All", - "e" - ], - [ - "▁thre", - "aten" - ], - [ - "▁threat", - "en" - ], - [ - "st", - "üt" - ], - [ - "▁album", - "s" - ], - [ - "▁alb", - "ums" - ], - [ - "▁d", - "ense" - ], - [ - "▁den", - "se" - ], - [ - "▁dens", - "e" - ], - [ - "fl", - "at" - ], - [ - "f", - "lat" - ], - [ - "cont", - "inu" - ], - [ - "Sub", - "ject" - ], - [ - "Su", - "bject" - ], - [ - "▁read", - "only" - ], - [ - "Op", - "t" - ], - [ - "O", - "pt" - ], - [ - "пи", - "ско" - ], - [ - "пис", - "ко" - ], - [ - "▁A", - "ber" - ], - [ - "▁Ab", - "er" - ], - [ - "▁P", - "osition" - ], - [ - "▁Pos", - "ition" - ], - [ - "▁", - "Position" - ], - [ - "▁To", - "day" - ], - [ - "▁Tod", - "ay" - ], - [ - "▁m", - "ini" - ], - [ - "▁min", - "i" - ], - [ - "▁mi", - "ni" - ], - [ - "▁B", - "ef" - ], - [ - "▁Be", - "f" - ], - [ - "li", - "sten" - ], - [ - "list", - "en" - ], - [ - "lis", - "ten" - ], - [ - "l", - "isten" - ], - [ - "ствен", - "ного" - ], - [ - "ственно", - "го" - ], - [ - "SU", - "B" - ], - [ - "S", - "UB" - ], - [ - "os", - "sa" - ], - [ - "oss", - "a" - ], - [ - "▁P", - "ope" - ], - [ - "▁Po", - "pe" - ], - [ - "▁Pop", - "e" - ], - [ - "▁Jim", - "my" - ], - [ - "▁Д", - "ру" - ], - [ - "ungs", - "seite" - ], - [ - "▁t", - "ren" - ], - [ - "▁tr", - "en" - ], - [ - "▁tre", - "n" - ], - [ - "op", - "tim" - ], - [ - "opt", - "im" - ], - [ - "it", - "sch" - ], - [ - "its", - "ch" - ], - [ - "▁s", - "amt" - ], - [ - "▁sa", - "mt" - ], - [ - "▁sam", - "t" - ], - [ - "▁испо", - "л" - ], - [ - "▁ис", - "пол" - ], - [ - "&", - "=" - ], - [ - "▁Przyp", - "isy" - ], - [ - "▁про", - "дол" - ], - [ - "C", - "r" - ], - [ - "er", - "mann" - ], - [ - "erm", - "ann" - ], - [ - "erman", - "n" - ], - [ - "▁ма", - "тери" - ], - [ - "▁мате", - "ри" - ], - [ - "▁H", - "ugo" - ], - [ - "▁Hu", - "go" - ], - [ - "▁De", - "ze" - ], - [ - "▁Dez", - "e" - ], - [ - "TR", - "UE" - ], - [ - "▁defe", - "at" - ], - [ - "▁watch", - "ed" - ], - [ - "▁wat", - "ched" - ], - [ - "▁G", - "ent" - ], - [ - "▁Ge", - "nt" - ], - [ - "▁Gen", - "t" - ], - [ - "AU", - "T" - ], - [ - "A", - "UT" - ], - [ - "or", - "ous" - ], - [ - "oro", - "us" - ], - [ - "▁о", - "преде" - ], - [ - "ori", - "entation" - ], - [ - "orient", - "ation" - ], - [ - "▁distingu", - "ished" - ], - [ - "▁distinguish", - "ed" - ], - [ - "▁mes", - "mo" - ], - [ - "▁s", - "li" - ], - [ - "▁sl", - "i" - ], - [ - "ме", - "на" - ], - [ - "мен", - "а" - ], - [ - "м", - "ена" - ], - [ - "mit", - "tel" - ], - [ - "mitt", - "el" - ], - [ - "m", - "ittel" - ], - [ - "ge", - "richt" - ], - [ - "ger", - "icht" - ], - [ - "et", - "on" - ], - [ - "eto", - "n" - ], - [ - "e", - "ton" - ], - [ - "->", - "{" - ], - [ - "-", - ">{" - ], - [ - "▁w", - "ont" - ], - [ - "▁won", - "t" - ], - [ - "▁wo", - "nt" - ], - [ - "▁w", - "eg" - ], - [ - "▁we", - "g" - ], - [ - "▁", - "weg" - ], - [ - "▁class", - "ific" - ], - [ - "il", - "us" - ], - [ - "i", - "lus" - ], - [ - "▁M", - "D" - ], - [ - "▁", - "MD" - ], - [ - "task", - "s" - ], - [ - "▁c", - "him" - ], - [ - "▁ch", - "im" - ], - [ - "▁chi", - "m" - ], - [ - "aw", - "ait" - ], - [ - "awa", - "it" - ], - [ - "a", - "wait" - ], - [ - "▁g", - "ang" - ], - [ - "▁gan", - "g" - ], - [ - "▁ga", - "ng" - ], - [ - "▁", - "gang" - ], - [ - "▁w", - "ię" - ], - [ - "▁", - "wię" - ], - [ - "th", - "rough" - ], - [ - "▁Russ", - "ell" - ], - [ - "▁guess", - "ing" - ], - [ - "▁а", - "кт" - ], - [ - "▁ак", - "т" - ], - [ - "б", - "лі" - ], - [ - "c", - "ategories" - ], - [ - "су", - "т" - ], - [ - "с", - "ут" - ], - [ - "▁F", - "en" - ], - [ - "▁Fe", - "n" - ], - [ - "▁му", - "ж" - ], - [ - "▁ne", - "wer" - ], - [ - "▁new", - "er" - ], - [ - "▁A", - "sync" - ], - [ - "▁As", - "ync" - ], - [ - "▁", - "Async" - ], - [ - "▁t", - "erme" - ], - [ - "▁term", - "e" - ], - [ - "▁ter", - "me" - ], - [ - ">", - "/" - ], - [ - "па", - "ра" - ], - [ - "пар", - "а" - ], - [ - "▁T", - "rust" - ], - [ - "▁Tr", - "ust" - ], - [ - "▁Tru", - "st" - ], - [ - "▁O", - "pt" - ], - [ - "▁Op", - "t" - ], - [ - "▁", - "Opt" - ], - [ - "▁d", - "ah" - ], - [ - "▁da", - "h" - ], - [ - "▁wonder", - "ful" - ], - [ - "adrat", - "kil" - ], - [ - "▁Г", - "ра" - ], - [ - "ma", - "pping" - ], - [ - "map", - "ping" - ], - [ - "m", - "apping" - ], - [ - "▁disc", - "overy" - ], - [ - "▁discover", - "y" - ], - [ - "▁disco", - "very" - ], - [ - "▁B", - "E" - ], - [ - "▁", - "BE" - ], - [ - "En", - "able" - ], - [ - "▁Fri", - "end" - ], - [ - "с", - "ня" - ], - [ - "▁cont", - "rolled" - ], - [ - "▁control", - "led" - ], - [ - "чно", - "ї" - ], - [ - "ч", - "ної" - ], - [ - "▁contribution", - "s" - ], - [ - "▁contrib", - "utions" - ], - [ - "j", - "ší" - ], - [ - "▁L", - "ev" - ], - [ - "▁Le", - "v" - ], - [ - "▁franc", - "és" - ], - [ - "▁m", - "ic" - ], - [ - "▁mi", - "c" - ], - [ - "▁", - "mic" - ], - [ - "zi", - "k" - ], - [ - "z", - "ik" - ], - [ - "▁a", - "lem" - ], - [ - "▁al", - "em" - ], - [ - "▁ale", - "m" - ], - [ - "▁", - "alem" - ], - [ - "can", - "cel" - ], - [ - "!", - "'" - ], - [ - "▁g", - "rat" - ], - [ - "▁gr", - "at" - ], - [ - "▁gra", - "t" - ], - [ - "▁Begriff", - "sklär" - ], - [ - "Cam", - "era" - ], - [ - "if", - "icación" - ], - [ - "ific", - "ación" - ], - [ - "ifica", - "ción" - ], - [ - "ró", - "d" - ], - [ - "r", - "ód" - ], - [ - "▁Arn", - "old" - ], - [ - "▁bezeichnet", - "er" - ], - [ - "▁f", - "ought" - ], - [ - "▁de", - "put" - ], - [ - "▁dep", - "ut" - ], - [ - "▁D", - "rop" - ], - [ - "▁Dr", - "op" - ], - [ - "▁Dro", - "p" - ], - [ - "▁", - "Drop" - ], - [ - "ta", - "x" - ], - [ - "t", - "ax" - ], - [ - "d", - "g" - ], - [ - "▁H", - "op" - ], - [ - "▁Ho", - "p" - ], - [ - "G", - "N" - ], - [ - "▁Kir", - "ch" - ], - [ - "▁Б", - "ар" - ], - [ - "▁Ба", - "р" - ], - [ - "In", - "voke" - ], - [ - "Inv", - "oke" - ], - [ - "▁er", - "halten" - ], - [ - "▁ve", - "el" - ], - [ - "▁word", - "press" - ], - [ - "▁", - "wordpress" - ], - [ - "▁IN", - "NER" - ], - [ - "trans", - "action" - ], - [ - "▁dé", - "jà" - ], - [ - "Fa", - "ct" - ], - [ - "F", - "act" - ], - [ - "▁над", - "мор" - ], - [ - "▁angular", - "js" - ], - [ - "▁á", - "t" - ], - [ - "▁", - "át" - ], - [ - "▁a", - "lap" - ], - [ - "▁al", - "ap" - ], - [ - "▁P", - "rice" - ], - [ - "▁Pr", - "ice" - ], - [ - "▁Pri", - "ce" - ], - [ - "▁", - "Price" - ], - [ - "▁eff", - "et" - ], - [ - "▁s", - "phere" - ], - [ - "▁sp", - "here" - ], - [ - "▁spher", - "e" - ], - [ - "Class", - "Loader" - ], - [ - "▁r", - "ugby" - ], - [ - "▁rug", - "by" - ], - [ - "▁king", - "dom" - ], - [ - "▁M", - "ut" - ], - [ - "▁Mu", - "t" - ], - [ - "▁ки", - "но" - ], - [ - "▁re", - "ward" - ], - [ - "ci", - "t" - ], - [ - "c", - "it" - ], - [ - "▁present", - "e" - ], - [ - "▁pres", - "ente" - ], - [ - "St", - "o" - ], - [ - "S", - "to" - ], - [ - "Char", - "acter" - ], - [ - "lo", - "gs" - ], - [ - "log", - "s" - ], - [ - "l", - "ogs" - ], - [ - "▁cent", - "rale" - ], - [ - "▁central", - "e" - ], - [ - "▁m", - "ouv" - ], - [ - "▁mo", - "uv" - ], - [ - "▁mou", - "v" - ], - [ - "▁ok", - "ay" - ], - [ - "▁ap", - "lic" - ], - [ - "Mo", - "re" - ], - [ - "Mor", - "e" - ], - [ - "M", - "ore" - ], - [ - "ény", - "ek" - ], - [ - "▁Kö", - "ln" - ], - [ - "ne", - "tt" - ], - [ - "net", - "t" - ], - [ - "n", - "ett" - ], - [ - "▁исто", - "рии" - ], - [ - "▁истори", - "и" - ], - [ - "▁descri", - "bing" - ], - [ - "▁sold", - "ier" - ], - [ - "▁N", - "eed" - ], - [ - "▁Ne", - "ed" - ], - [ - "L", - "ight" - ], - [ - "▁\"", - "\\<" - ], - [ - "▁\"\\", - "<" - ], - [ - "▁h", - "av" - ], - [ - "▁ha", - "v" - ], - [ - "▁", - "hav" - ], - [ - "er", - "mo" - ], - [ - "erm", - "o" - ], - [ - "▁infer", - "ior" - ], - [ - "le", - "a" - ], - [ - "l", - "ea" - ], - [ - "▁g", - "g" - ], - [ - "▁", - "gg" - ], - [ - "▁кон", - "це" - ], - [ - "fra", - "gment" - ], - [ - "f", - "ragment" - ], - [ - "s", - "b" - ], - [ - "Count", - "ry" - ], - [ - "C", - "ountry" - ], - [ - "▁v", - "ě" - ], - [ - "▁", - "vě" - ], - [ - "▁B", - "eng" - ], - [ - "▁Be", - "ng" - ], - [ - "▁Ben", - "g" - ], - [ - "▁Э", - "то" - ], - [ - "▁во", - "до" - ], - [ - "ма", - "р" - ], - [ - "м", - "ар" - ], - [ - "STR", - "ING" - ], - [ - "▁ú", - "j" - ], - [ - "multi", - "ple" - ], - [ - "multip", - "le" - ], - [ - "state", - "ment" - ], - [ - "stat", - "ement" - ], - [ - "▁invol", - "ves" - ], - [ - "▁involve", - "s" - ], - [ - "▁te", - "cn" - ], - [ - "▁tec", - "n" - ], - [ - "St", - "udent" - ], - [ - "gr", - "é" - ], - [ - "g", - "ré" - ], - [ - "▁le", - "an" - ], - [ - "▁", - "lean" - ], - [ - "▁bring", - "ing" - ], - [ - "▁Med", - "ical" - ], - [ - "▁Medic", - "al" - ], - [ - "▁Medi", - "cal" - ], - [ - "▁програ", - "м" - ], - [ - "▁V", - "og" - ], - [ - "▁Vo", - "g" - ], - [ - "▁ж", - "ов" - ], - [ - "▁Sp", - "irit" - ], - [ - "nt", - "h" - ], - [ - "n", - "th" - ], - [ - "▁stand", - "ards" - ], - [ - "▁standard", - "s" - ], - [ - "▁Pro", - "file" - ], - [ - "▁Prof", - "ile" - ], - [ - "▁Profil", - "e" - ], - [ - "▁", - "Profile" - ], - [ - "▁e", - "z" - ], - [ - "▁", - "ez" - ], - [ - "▁террито", - "рии" - ], - [ - "▁s", - "tem" - ], - [ - "▁st", - "em" - ], - [ - "▁ste", - "m" - ], - [ - "ui", - "l" - ], - [ - "u", - "il" - ], - [ - "▁O", - "g" - ], - [ - "B", - "tn" - ], - [ - "na", - "l" - ], - [ - "n", - "al" - ], - [ - "▁near", - "by" - ], - [ - "▁produ", - "cing" - ], - [ - "cri", - "v" - ], - [ - "cr", - "iv" - ], - [ - "c", - "riv" - ], - [ - "▁assum", - "ptions" - ], - [ - "▁assumption", - "s" - ], - [ - "▁S", - "park" - ], - [ - "▁Sp", - "ark" - ], - [ - "▁L", - "ot" - ], - [ - "▁Lo", - "t" - ], - [ - "it", - "udes" - ], - [ - "itu", - "des" - ], - [ - "itude", - "s" - ], - [ - "itud", - "es" - ], - [ - "af", - "ka" - ], - [ - "fi", - "ve" - ], - [ - "f", - "ive" - ], - [ - "at", - "io" - ], - [ - "ati", - "o" - ], - [ - "▁distingu", - "ish" - ], - [ - "ro", - "ck" - ], - [ - "roc", - "k" - ], - [ - "r", - "ock" - ], - [ - "égl", - "ise" - ], - [ - "é", - "glise" - ], - [ - "▁rapp", - "res" - ], - [ - "▁rap", - "pres" - ], - [ - ">\\", - "<" - ], - [ - ">", - "\\<" - ], - [ - "лі", - "й" - ], - [ - "л", - "ій" - ], - [ - "▁ми", - "ни" - ], - [ - "▁", - "мини" - ], - [ - "▁intitul", - "é" - ], - [ - "}}", - "(\\" - ], - [ - "}}(", - "\\" - ], - [ - "}", - "}(\\" - ], - [ - "▁R", - "out" - ], - [ - "▁Ro", - "ut" - ], - [ - "▁Rou", - "t" - ], - [ - "▁", - "Rout" - ], - [ - "▁B", - "order" - ], - [ - "▁Bor", - "der" - ], - [ - "▁", - "Border" - ], - [ - "▁over", - "rid" - ], - [ - "HO", - "ST" - ], - [ - "H", - "OST" - ], - [ - "rit", - "ten" - ], - [ - "ritt", - "en" - ], - [ - "r", - "itten" - ], - [ - "sa", - "y" - ], - [ - "s", - "ay" - ], - [ - "▁Ч", - "и" - ], - [ - "icht", - "ung" - ], - [ - "▁straight", - "forward" - ], - [ - "ob", - "b" - ], - [ - "o", - "bb" - ], - [ - "▁Ter", - "ra" - ], - [ - "▁Terr", - "a" - ], - [ - "▁[", - ":" - ], - [ - "▁", - "[:" - ], - [ - "Be", - "n" - ], - [ - "B", - "en" - ], - [ - "▁compos", - "ite" - ], - [ - ")+", - "\\" - ], - [ - ")", - "+\\" - ], - [ - "▁c", - "rown" - ], - [ - "▁cr", - "own" - ], - [ - "▁cro", - "wn" - ], - [ - "▁crow", - "n" - ], - [ - "dir", - "ection" - ], - [ - "direct", - "ion" - ], - [ - "dire", - "ction" - ], - [ - "d", - "irection" - ], - [ - "▁неско", - "лько" - ], - [ - "▁av", - "ail" - ], - [ - "▁purch", - "ased" - ], - [ - "▁purchase", - "d" - ], - [ - "ho", - "ok" - ], - [ - "h", - "ook" - ], - [ - "et", - "ies" - ], - [ - "eti", - "es" - ], - [ - "e", - "ties" - ], - [ - "▁f", - "ase" - ], - [ - "▁fa", - "se" - ], - [ - "▁fas", - "e" - ], - [ - "▁R", - "um" - ], - [ - "▁Ru", - "m" - ], - [ - "▁ge", - "nom" - ], - [ - "▁gen", - "om" - ], - [ - "▁d", - "ét" - ], - [ - "▁dé", - "t" - ], - [ - "ow", - "ą" - ], - [ - "mp", - "eg" - ], - [ - "▁І", - "н" - ], - [ - "des", - "ktop" - ], - [ - "▁in", - "jection" - ], - [ - "▁inj", - "ection" - ], - [ - "▁inject", - "ion" - ], - [ - "ag", - "le" - ], - [ - "a", - "gle" - ], - [ - "▁E", - "dd" - ], - [ - "▁Ed", - "d" - ], - [ - "_{", - "(" - ], - [ - "_", - "{(" - ], - [ - "▁H", - "em" - ], - [ - "▁He", - "m" - ], - [ - "ut", - "os" - ], - [ - "uto", - "s" - ], - [ - "pr", - "oj" - ], - [ - "pro", - "j" - ], - [ - "▁superfic", - "ie" - ], - [ - "Pl", - "ot" - ], - [ - "P", - "lot" - ], - [ - "▁D", - "ocker" - ], - [ - "▁Do", - "cker" - ], - [ - "▁Doc", - "ker" - ], - [ - "ät", - "z" - ], - [ - "ä", - "tz" - ], - [ - "kre", - "ich" - ], - [ - "k", - "reich" - ], - [ - "▁un", - "clear" - ], - [ - "▁uncle", - "ar" - ], - [ - "▁Un", - "ity" - ], - [ - "▁Unit", - "y" - ], - [ - "▁stream", - "s" - ], - [ - "▁stre", - "ams" - ], - [ - "ви", - "д" - ], - [ - "▁simpl", - "ified" - ], - [ - "Fil", - "l" - ], - [ - "Fi", - "ll" - ], - [ - "F", - "ill" - ], - [ - "▁s", - "ant" - ], - [ - "▁sa", - "nt" - ], - [ - "▁san", - "t" - ], - [ - "▁K", - "ommun" - ], - [ - "▁Kom", - "mun" - ], - [ - "▁Komm", - "un" - ], - [ - "▁d", - "uc" - ], - [ - "▁du", - "c" - ], - [ - "▁д", - "ве" - ], - [ - "▁o", - "bs" - ], - [ - "▁ob", - "s" - ], - [ - "▁", - "obs" - ], - [ - "ž", - "it" - ], - [ - "▁Jane", - "iro" - ], - [ - "б", - "я" - ], - [ - "▁pr", - "esso" - ], - [ - "▁pres", - "so" - ], - [ - "▁press", - "o" - ], - [ - "▁Min", - "istry" - ], - [ - "▁b", - "urst" - ], - [ - "▁bur", - "st" - ], - [ - "▁re", - "aching" - ], - [ - "▁reach", - "ing" - ], - [ - "li", - "ter" - ], - [ - "lit", - "er" - ], - [ - "l", - "iter" - ], - [ - "▁response", - "s" - ], - [ - "▁respons", - "es" - ], - [ - "▁E", - "ug" - ], - [ - "▁Eu", - "g" - ], - [ - "▁s", - "od" - ], - [ - "▁so", - "d" - ], - [ - "▁C", - "ord" - ], - [ - "▁Cor", - "d" - ], - [ - "▁Co", - "rd" - ], - [ - "▁P", - "erm" - ], - [ - "▁Per", - "m" - ], - [ - "▁Pe", - "rm" - ], - [ - "▁", - "Perm" - ], - [ - "par", - "ts" - ], - [ - "part", - "s" - ], - [ - "p", - "arts" - ], - [ - "ци", - "ма" - ], - [ - "vari", - "ables" - ], - [ - "variable", - "s" - ], - [ - "▁forgot", - "ten" - ], - [ - "Fe", - "rn" - ], - [ - "F", - "ern" - ], - [ - "ost", - "ęp" - ], - [ - "v", - "l" - ], - [ - "▁С", - "м" - ], - [ - "ki", - "m" - ], - [ - "k", - "im" - ], - [ - "aj", - "ąc" - ], - [ - "ają", - "c" - ], - [ - "a", - "jąc" - ], - [ - "на", - "ль" - ], - [ - "нал", - "ь" - ], - [ - "н", - "аль" - ], - [ - "г", - "ле" - ], - [ - "hel", - "per" - ], - [ - "help", - "er" - ], - [ - "du", - "p" - ], - [ - "d", - "up" - ], - [ - "eu", - "w" - ], - [ - "e", - "uw" - ], - [ - "fr", - "a" - ], - [ - "f", - "ra" - ], - [ - "ell", - "ite" - ], - [ - "elli", - "te" - ], - [ - "an", - "ya" - ], - [ - "any", - "a" - ], - [ - "▁re", - "ign" - ], - [ - "▁r", - "eign" - ], - [ - "▁rei", - "gn" - ], - [ - "ges", - "amt" - ], - [ - "се", - "да" - ], - [ - "▁R", - "yan" - ], - [ - "▁Ry", - "an" - ], - [ - "▁form", - "atted" - ], - [ - "▁format", - "ted" - ], - [ - "▁formatt", - "ed" - ], - [ - "▁B", - "org" - ], - [ - "▁Bo", - "rg" - ], - [ - "▁Bor", - "g" - ], - [ - "wal", - "k" - ], - [ - "w", - "alk" - ], - [ - "▁а", - "л" - ], - [ - "▁", - "ал" - ], - [ - "agnost", - "ics" - ], - [ - "agnostic", - "s" - ], - [ - "▁C", - "ape" - ], - [ - "▁Cap", - "e" - ], - [ - "▁Ca", - "pe" - ], - [ - "▁Fran", - "co" - ], - [ - "▁Franc", - "o" - ], - [ - "▁f", - "ug" - ], - [ - "▁fu", - "g" - ], - [ - ":", - ")" - ], - [ - "ю", - "з" - ], - [ - "F", - "etch" - ], - [ - "▁rough", - "ly" - ], - [ - "▁M", - "is" - ], - [ - "▁Mi", - "s" - ], - [ - "uet", - "ooth" - ], - [ - "▁Venez", - "uela" - ], - [ - "▁a", - "stronom" - ], - [ - "▁astr", - "onom" - ], - [ - "\")", - "`" - ], - [ - "\"", - ")`" - ], - [ - "om", - "bres" - ], - [ - "omb", - "res" - ], - [ - "▁кото", - "рой" - ], - [ - "ó", - "p" - ], - [ - "ow", - "ed" - ], - [ - "owe", - "d" - ], - [ - "o", - "wed" - ], - [ - "H", - "R" - ], - [ - "▁C", - "amer" - ], - [ - "▁Cam", - "er" - ], - [ - "▁Ca", - "mer" - ], - [ - "ки", - "е" - ], - [ - "par", - "ison" - ], - [ - "▁B", - "ij" - ], - [ - "▁Bi", - "j" - ], - [ - "tem", - "plates" - ], - [ - "template", - "s" - ], - [ - "en", - "vironment" - ], - [ - "environ", - "ment" - ], - [ - "iz", - "ação" - ], - [ - "iza", - "ção" - ], - [ - "▁é", - "r" - ], - [ - "▁", - "ér" - ], - [ - "▁pl", - "enty" - ], - [ - "▁Type", - "Error" - ], - [ - "▁for", - "ty" - ], - [ - "▁fort", - "y" - ], - [ - "ко", - "ном" - ], - [ - "кон", - "ом" - ], - [ - "коно", - "м" - ], - [ - "▁S", - "ed" - ], - [ - "▁Se", - "d" - ], - [ - "▁th", - "ats" - ], - [ - "▁that", - "s" - ], - [ - "▁gra", - "vity" - ], - [ - "▁grav", - "ity" - ], - [ - "▁gravit", - "y" - ], - [ - "▁", - "gravity" - ], - [ - "▁spirit", - "ual" - ], - [ - "▁dup", - "licates" - ], - [ - "▁duplicate", - "s" - ], - [ - "▁enc", - "ryption" - ], - [ - "▁encrypt", - "ion" - ], - [ - "▁re", - "ven" - ], - [ - "▁r", - "even" - ], - [ - "▁rev", - "en" - ], - [ - "▁reve", - "n" - ], - [ - "▁", - "reven" - ], - [ - "get", - "Instance" - ], - [ - "äl", - "lor" - ], - [ - "äll", - "or" - ], - [ - "dis", - "k" - ], - [ - "di", - "sk" - ], - [ - "d", - "isk" - ], - [ - "▁th", - "ro" - ], - [ - "▁thr", - "o" - ], - [ - "▁N", - "ak" - ], - [ - "▁Na", - "k" - ], - [ - "▁p", - "oł" - ], - [ - "▁po", - "ł" - ], - [ - "▁her", - "aus" - ], - [ - "in", - "valid" - ], - [ - "s", - "By" - ], - [ - "Bo", - "ot" - ], - [ - "B", - "oot" - ], - [ - "▁bu", - "cket" - ], - [ - "▁", - "bucket" - ], - [ - "▁P", - "arse" - ], - [ - "▁Par", - "se" - ], - [ - "▁", - "Parse" - ], - [ - "he", - "x" - ], - [ - "h", - "ex" - ], - [ - "Con", - "ne" - ], - [ - "C", - "onne" - ], - [ - "▁Comp", - "uter" - ], - [ - "▁Comput", - "er" - ], - [ - "zy", - "k" - ], - [ - "z", - "yk" - ], - [ - "▁indu", - "ced" - ], - [ - "▁Br", - "uno" - ], - [ - "▁Bru", - "no" - ], - [ - "▁Brun", - "o" - ], - [ - "▁address", - "ed" - ], - [ - "▁addr", - "essed" - ], - [ - "ma", - "nia" - ], - [ - "man", - "ia" - ], - [ - "m", - "ania" - ], - [ - "▁in", - "clus" - ], - [ - "▁incl", - "us" - ], - [ - "▁inc", - "lus" - ], - [ - "▁inclu", - "s" - ], - [ - "oun", - "ced" - ], - [ - "ounce", - "d" - ], - [ - "script", - "size" - ], - [ - "scripts", - "ize" - ], - [ - "▁E", - "pis" - ], - [ - "▁Ep", - "is" - ], - [ - "▁v", - "ocal" - ], - [ - "▁vo", - "cal" - ], - [ - "▁voc", - "al" - ], - [ - "▁Jon", - "athan" - ], - [ - "у", - "м" - ], - [ - "st", - "aden" - ], - [ - "sta", - "den" - ], - [ - "stad", - "en" - ], - [ - "▁Child", - "ren" - ], - [ - "▁", - "Children" - ], - [ - "пе", - "й" - ], - [ - "п", - "ей" - ], - [ - "It", - "alia" - ], - [ - "Ital", - "ia" - ], - [ - "reib", - "ung" - ], - [ - "▁n", - "ost" - ], - [ - "▁no", - "st" - ], - [ - "▁nos", - "t" - ], - [ - "▁", - "nost" - ], - [ - "▁е", - "щё" - ], - [ - "▁Wer", - "ke" - ], - [ - "▁Werk", - "e" - ], - [ - "▁act", - "ress" - ], - [ - "▁Minn", - "esota" - ], - [ - "ri", - "ke" - ], - [ - "rik", - "e" - ], - [ - "r", - "ike" - ], - [ - "▁t", - "ek" - ], - [ - "▁te", - "k" - ], - [ - "▁", - "tek" - ], - [ - "▁prime", - "ira" - ], - [ - "▁f", - "rat" - ], - [ - "▁fr", - "at" - ], - [ - "▁fra", - "t" - ], - [ - "▁Config", - "uration" - ], - [ - "▁", - "Configuration" - ], - [ - "▁b", - "id" - ], - [ - "▁bi", - "d" - ], - [ - "▁", - "bid" - ], - [ - "tr", - "igger" - ], - [ - "Cont", - "ents" - ], - [ - "Content", - "s" - ], - [ - "▁const", - "antly" - ], - [ - "▁constant", - "ly" - ], - [ - "!!", - "!" - ], - [ - "!", - "!!" - ], - [ - "▁d", - "read" - ], - [ - "▁dr", - "ead" - ], - [ - "▁dre", - "ad" - ], - [ - "▁hundred", - "s" - ], - [ - "ist", - "ische" - ], - [ - "isti", - "sche" - ], - [ - "▁card", - "inal" - ], - [ - "T", - "ABLE" - ], - [ - "▁est", - "os" - ], - [ - "▁esto", - "s" - ], - [ - "ass", - "oc" - ], - [ - "asso", - "c" - ], - [ - "gr", - "ay" - ], - [ - "gra", - "y" - ], - [ - "g", - "ray" - ], - [ - "▁Sch", - "loss" - ], - [ - "▁Schl", - "oss" - ], - [ - "▁s", - "che" - ], - [ - "▁sc", - "he" - ], - [ - "▁sch", - "e" - ], - [ - "▁", - "sche" - ], - [ - "con", - "g" - ], - [ - "co", - "ng" - ], - [ - "c", - "ong" - ], - [ - "▁ko", - "ji" - ], - [ - "ète", - "s" - ], - [ - "èt", - "es" - ], - [ - "è", - "tes" - ], - [ - "▁E", - "ra" - ], - [ - "▁Er", - "a" - ], - [ - "om", - "i" - ], - [ - "o", - "mi" - ], - [ - "▁S", - "R" - ], - [ - "▁", - "SR" - ], - [ - "▁wr", - "apped" - ], - [ - "▁wra", - "pped" - ], - [ - "▁wrap", - "ped" - ], - [ - "▁tr", - "unc" - ], - [ - "▁a", - "h" - ], - [ - "▁", - "ah" - ], - [ - "eg", - "os" - ], - [ - "ego", - "s" - ], - [ - "ok", - "i" - ], - [ - "o", - "ki" - ], - [ - "mo", - "uth" - ], - [ - "m", - "outh" - ], - [ - "log", - "ging" - ], - [ - "▁f", - "asc" - ], - [ - "▁fa", - "sc" - ], - [ - "▁fas", - "c" - ], - [ - "▁S", - "ample" - ], - [ - "▁Sam", - "ple" - ], - [ - "▁", - "Sample" - ], - [ - "▁c", - "onte" - ], - [ - "▁con", - "te" - ], - [ - "▁cont", - "e" - ], - [ - "▁v", - "illa" - ], - [ - "▁vi", - "lla" - ], - [ - "▁vill", - "a" - ], - [ - "▁vil", - "la" - ], - [ - "▁", - "villa" - ], - [ - "com", - "ments" - ], - [ - "comm", - "ents" - ], - [ - "comment", - "s" - ], - [ - "▁b", - "atal" - ], - [ - "▁ba", - "tal" - ], - [ - "▁bat", - "al" - ], - [ - "▁bata", - "l" - ], - [ - "▁Garc", - "ía" - ], - [ - "▁N", - "orte" - ], - [ - "▁Nor", - "te" - ], - [ - "▁we", - "chsel" - ], - [ - "▁Muse", - "o" - ], - [ - "▁enf", - "ants" - ], - [ - "▁whis", - "per" - ], - [ - "na", - "ke" - ], - [ - "nak", - "e" - ], - [ - "n", - "ake" - ], - [ - "▁jed", - "nak" - ], - [ - "l", - "ês" - ], - [ - "en", - "ders" - ], - [ - "end", - "ers" - ], - [ - "ender", - "s" - ], - [ - "ende", - "rs" - ], - [ - "▁ä", - "l" - ], - [ - "▁", - "äl" - ], - [ - "▁V", - "B" - ], - [ - "▁", - "VB" - ], - [ - "▁cook", - "ies" - ], - [ - "▁cookie", - "s" - ], - [ - "ze", - "ti" - ], - [ - "zet", - "i" - ], - [ - "z", - "eti" - ], - [ - "at", - "um" - ], - [ - "atu", - "m" - ], - [ - "▁d", - "edu" - ], - [ - "▁de", - "du" - ], - [ - "▁ded", - "u" - ], - [ - "▁arr", - "anged" - ], - [ - "▁arrang", - "ed" - ], - [ - "la", - "z" - ], - [ - "l", - "az" - ], - [ - "▁cu", - "enta" - ], - [ - "ym", - "l" - ], - [ - "y", - "ml" - ], - [ - "▁f", - "lav" - ], - [ - "▁fl", - "av" - ], - [ - "▁fla", - "v" - ], - [ - "M", - "R" - ], - [ - "em", - "et" - ], - [ - "eme", - "t" - ], - [ - "e", - "met" - ], - [ - "бі", - "ль" - ], - [ - "б", - "іль" - ], - [ - "cm", - "p" - ], - [ - "c", - "mp" - ], - [ - "it", - "uto" - ], - [ - "itu", - "to" - ], - [ - "itut", - "o" - ], - [ - "ze", - "tt" - ], - [ - "zet", - "t" - ], - [ - "z", - "ett" - ], - [ - "▁en", - "vi" - ], - [ - "▁env", - "i" - ], - [ - "▁k", - "ot" - ], - [ - "▁ko", - "t" - ], - [ - "$", - ":" - ], - [ - "up", - "per" - ], - [ - "upp", - "er" - ], - [ - "u", - "pper" - ], - [ - "▁Al", - "berto" - ], - [ - "▁Albert", - "o" - ], - [ - "k", - "b" - ], - [ - "An", - "al" - ], - [ - "A", - "nal" - ], - [ - "ör", - "t" - ], - [ - "ö", - "rt" - ], - [ - "▁[", - "-" - ], - [ - "▁", - "[-" - ], - [ - "▁führ", - "te" - ], - [ - "▁führt", - "e" - ], - [ - "ia", - "h" - ], - [ - "i", - "ah" - ], - [ - "▁T", - "un" - ], - [ - "▁Tu", - "n" - ], - [ - "▁и", - "скус" - ], - [ - "uw", - "e" - ], - [ - "u", - "we" - ], - [ - "is", - "pecies" - ], - [ - "i", - "species" - ], - [ - "P", - "ub" - ], - [ - "Syn", - "c" - ], - [ - "S", - "ync" - ], - [ - "▁Colomb", - "ia" - ], - [ - "ak", - "ers" - ], - [ - "ake", - "rs" - ], - [ - "aker", - "s" - ], - [ - "▁Imper", - "ial" - ], - [ - "ov", - "ing" - ], - [ - "ovi", - "ng" - ], - [ - "o", - "ving" - ], - [ - "▁int", - "elligence" - ], - [ - "▁intellig", - "ence" - ], - [ - "▁equip", - "ment" - ], - [ - "ei", - "n" - ], - [ - "e", - "in" - ], - [ - "dag", - "ger" - ], - [ - "d", - "agger" - ], - [ - "▁Ed", - "ge" - ], - [ - "▁", - "Edge" - ], - [ - "▁Рес", - "публи" - ], - [ - "adratkil", - "ometer" - ], - [ - "▁An", - "to" - ], - [ - "▁Ant", - "o" - ], - [ - "▁char", - "ges" - ], - [ - "▁charge", - "s" - ], - [ - "▁charg", - "es" - ], - [ - "▁O", - "cean" - ], - [ - "▁simpl", - "ify" - ], - [ - "▁m", - "iesz" - ], - [ - "▁mi", - "esz" - ], - [ - "▁mie", - "sz" - ], - [ - "run", - "ning" - ], - [ - "r", - "unning" - ], - [ - "▁L", - "ac" - ], - [ - "▁La", - "c" - ], - [ - "gen", - "ommen" - ], - [ - "▁represent", - "ative" - ], - [ - "=", - "." - ], - [ - "▁P", - "red" - ], - [ - "▁Pr", - "ed" - ], - [ - "▁Pre", - "d" - ], - [ - "▁", - "Pred" - ], - [ - "▁sp", - "ite" - ], - [ - "ci", - "ale" - ], - [ - "cial", - "e" - ], - [ - "cia", - "le" - ], - [ - "c", - "iale" - ], - [ - "▁n", - "ave" - ], - [ - "▁na", - "ve" - ], - [ - "▁nav", - "e" - ], - [ - "▁ext", - "ens" - ], - [ - "▁neut", - "ral" - ], - [ - "▁кото", - "рая" - ], - [ - ".<", - "/" - ], - [ - ".", - ":", - ":" - ], - [ - ">", - "::" - ], - [ - "ш", - "ёл" - ], - [ - "▁princip", - "ales" - ], - [ - "▁principal", - "es" - ], - [ - "▁principale", - "s" - ], - [ - "▁ц", - "ар" - ], - [ - "▁t", - "ied" - ], - [ - "▁ti", - "ed" - ], - [ - "▁tie", - "d" - ], - [ - "▁al", - "ta" - ], - [ - "▁alt", - "a" - ], - [ - "▁C", - "it" - ], - [ - "▁Ci", - "t" - ], - [ - "li", - "ned" - ], - [ - "line", - "d" - ], - [ - "lin", - "ed" - ], - [ - "l", - "ined" - ], - [ - "ma", - "jor" - ], - [ - "▁p", - "unk" - ], - [ - "▁pun", - "k" - ], - [ - "▁cin", - "co" - ], - [ - "ick", - "ý" - ], - [ - "▁r", - "aggi" - ], - [ - "▁ra", - "ggi" - ], - [ - "▁rag", - "gi" - ], - [ - "ty", - "pen" - ], - [ - "type", - "n" - ], - [ - "typ", - "en" - ], - [ - "тель", - "ство" - ], - [ - "▁con", - "ference" - ], - [ - "▁confer", - "ence" - ], - [ - "▁с", - "іль" - ], - [ - "▁сі", - "ль" - ], - [ - "▁he", - "ut" - ], - [ - "i", - "š" - ], - [ - "ет", - "а" - ], - [ - "е", - "та" - ], - [ - "vel", - "ope" - ], - [ - "velop", - "e" - ], - [ - "h", - "box" - ], - [ - "no", - "wn" - ], - [ - "now", - "n" - ], - [ - "n", - "own" - ], - [ - "▁z", - "ar" - ], - [ - "▁za", - "r" - ], - [ - "▁", - "zar" - ], - [ - "kt", - "iv" - ], - [ - "ie", - "ß" - ], - [ - "▁с", - "тре" - ], - [ - "▁ст", - "ре" - ], - [ - "▁", - "стре" - ], - [ - "▁Event", - "Args" - ], - [ - "▁", - "EventArgs" - ], - [ - "▁I", - "ra" - ], - [ - "▁Ir", - "a" - ], - [ - "▁V", - "BA" - ], - [ - "▁VB", - "A" - ], - [ - "▁S", - "anto" - ], - [ - "▁San", - "to" - ], - [ - "▁Sant", - "o" - ], - [ - "▁F", - "ach" - ], - [ - "▁Fa", - "ch" - ], - [ - "▁Fac", - "h" - ], - [ - "▁F", - "F" - ], - [ - "▁", - "FF" - ], - [ - "▁Ray", - "mond" - ], - [ - "ме", - "ц" - ], - [ - "im", - "plementation" - ], - [ - "▁bro", - "thers" - ], - [ - "▁brother", - "s" - ], - [ - "▁cô", - "té" - ], - [ - "▁cont", - "rollers" - ], - [ - "▁control", - "lers" - ], - [ - "▁controller", - "s" - ], - [ - "▁C", - "le" - ], - [ - "▁Cl", - "e" - ], - [ - "▁c", - "able" - ], - [ - "▁ca", - "ble" - ], - [ - "▁cab", - "le" - ], - [ - "▁con", - "fer" - ], - [ - "▁conf", - "er" - ], - [ - "▁{", - "-" - ], - [ - "▁", - "{-" - ], - [ - "▁cz", - "ł" - ], - [ - "▁Fil", - "ip" - ], - [ - "at", - "orio" - ], - [ - "ator", - "io" - ], - [ - "ato", - "rio" - ], - [ - "atori", - "o" - ], - [ - "▁w", - "icht" - ], - [ - "▁be", - "aucoup" - ], - [ - "▁L", - "it" - ], - [ - "▁Li", - "t" - ], - [ - "▁s", - "essions" - ], - [ - "▁session", - "s" - ], - [ - "▁sess", - "ions" - ], - [ - "▁Su", - "ccess" - ], - [ - "▁", - "Success" - ], - [ - "▁ro", - "uting" - ], - [ - "▁rout", - "ing" - ], - [ - "▁rou", - "ting" - ], - [ - "ni", - "u" - ], - [ - "n", - "iu" - ], - [ - "▁V", - "ice" - ], - [ - "▁Vi", - "ce" - ], - [ - "▁Vic", - "e" - ], - [ - "▁k", - "rit" - ], - [ - "▁kr", - "it" - ], - [ - "up", - "dated" - ], - [ - "update", - "d" - ], - [ - "▁In", - "valid" - ], - [ - "▁", - "Invalid" - ], - [ - "▁Mann", - "schaft" - ], - [ - "▁a", - "os" - ], - [ - "▁ao", - "s" - ], - [ - "▁t", - "udi" - ], - [ - "▁tu", - "di" - ], - [ - "▁tud", - "i" - ], - [ - "▁des", - "prés" - ], - [ - "▁desp", - "rés" - ], - [ - "qu", - "a" - ], - [ - "q", - "ua" - ], - [ - "Cont", - "ains" - ], - [ - "Comp", - "any" - ], - [ - "▁person", - "a" - ], - [ - "▁pers", - "ona" - ], - [ - "ad", - "apter" - ], - [ - "с", - "ни" - ], - [ - "▁v", - "oj" - ], - [ - "▁vo", - "j" - ], - [ - "▁", - "voj" - ], - [ - "▁e", - "scri" - ], - [ - "▁es", - "cri" - ], - [ - "▁esc", - "ri" - ], - [ - "ag", - "t" - ], - [ - "a", - "gt" - ], - [ - "▁с", - "тво" - ], - [ - "▁ст", - "во" - ], - [ - "▁", - "ство" - ], - [ - "▁dist", - "rito" - ], - [ - "ap", - "an" - ], - [ - "apa", - "n" - ], - [ - "a", - "pan" - ], - [ - "▁aspect", - "s" - ], - [ - "▁z", - "al" - ], - [ - "▁za", - "l" - ], - [ - ")^", - "{\\" - ], - [ - ")^{", - "\\" - ], - [ - ")", - "^{\\" - ], - [ - "▁syst", - "ème" - ], - [ - "▁а", - "на" - ], - [ - "▁ан", - "а" - ], - [ - "▁", - "ана" - ], - [ - "ium", - "s" - ], - [ - "iu", - "ms" - ], - [ - "i", - "ums" - ], - [ - "▁prem", - "iers" - ], - [ - "▁premi", - "ers" - ], - [ - "▁premier", - "s" - ], - [ - "▁по", - "э" - ], - [ - "▁m", - "ère" - ], - [ - "▁G", - "un" - ], - [ - "▁Gu", - "n" - ], - [ - "ap", - "ing" - ], - [ - "api", - "ng" - ], - [ - "a", - "ping" - ], - [ - "▁R", - "ain" - ], - [ - "▁Ra", - "in" - ], - [ - "▁ig", - "ual" - ], - [ - "▁process", - "or" - ], - [ - "▁proc", - "essor" - ], - [ - "▁", - "processor" - ], - [ - "')", - "`" - ], - [ - "'", - ")`" - ], - [ - "bl", - "ing" - ], - [ - "b", - "ling" - ], - [ - "▁m", - "ism" - ], - [ - "▁mi", - "sm" - ], - [ - "▁mis", - "m" - ], - [ - "br", - "áz" - ], - [ - "▁close", - "st" - ], - [ - "▁clos", - "est" - ], - [ - "▁Re", - "ading" - ], - [ - "▁Read", - "ing" - ], - [ - "▁по", - "пу" - ], - [ - "con", - "o" - ], - [ - "co", - "no" - ], - [ - "c", - "ono" - ], - [ - "▁k", - "ult" - ], - [ - "▁!", - "!" - ], - [ - "▁", - "!!" - ], - [ - "▁Ex", - "pression" - ], - [ - "▁Exp", - "ression" - ], - [ - "▁Express", - "ion" - ], - [ - "▁", - "Expression" - ], - [ - "▁indu", - "ction" - ], - [ - "▁induct", - "ion" - ], - [ - "ah", - "ren" - ], - [ - "ahr", - "en" - ], - [ - "a", - "hren" - ], - [ - "▁c", - "p" - ], - [ - "▁", - "cp" - ], - [ - "▁viol", - "ence" - ], - [ - "ient", - "í" - ], - [ - "cent", - "e" - ], - [ - "cen", - "te" - ], - [ - "c", - "ente" - ], - [ - "▁D", - "ob" - ], - [ - "▁Do", - "b" - ], - [ - "ja", - "ck" - ], - [ - "j", - "ack" - ], - [ - "so", - "ng" - ], - [ - "son", - "g" - ], - [ - "s", - "ong" - ], - [ - "bu", - "cket" - ], - [ - "▁de", - "port" - ], - [ - "▁dep", - "ort" - ], - [ - "ки", - "ми" - ], - [ - "ким", - "и" - ], - [ - "l", - "m" - ], - [ - "▁in", - "noc" - ], - [ - "▁inn", - "oc" - ], - [ - "Ch", - "anges" - ], - [ - "Change", - "s" - ], - [ - "▁pro", - "hib" - ], - [ - "ang", - "ol" - ], - [ - "ango", - "l" - ], - [ - "isecond", - "s" - ], - [ - "i", - "seconds" - ], - [ - "▁п", - "ор" - ], - [ - "▁по", - "р" - ], - [ - "▁", - "пор" - ], - [ - "▁h", - "ip" - ], - [ - "▁hi", - "p" - ], - [ - "▁", - "hip" - ], - [ - "▁p", - "ů" - ], - [ - "en", - "dorf" - ], - [ - "end", - "orf" - ], - [ - "endo", - "rf" - ], - [ - "endor", - "f" - ], - [ - "▁sch", - "eduled" - ], - [ - "▁schedule", - "d" - ], - [ - "▁Fl", - "ug" - ], - [ - "ac", - "yj" - ], - [ - "acy", - "j" - ], - [ - "▁Fil", - "ms" - ], - [ - "▁Film", - "s" - ], - [ - "athed", - "ral" - ], - [ - "Po", - "wer" - ], - [ - "P", - "ower" - ], - [ - "ar", - "din" - ], - [ - "ard", - "in" - ], - [ - "ardi", - "n" - ], - [ - "ka", - "p" - ], - [ - "k", - "ap" - ], - [ - "ic", - "ken" - ], - [ - "ick", - "en" - ], - [ - "i", - "cken" - ], - [ - "re", - "size" - ], - [ - "res", - "ize" - ], - [ - "eu", - "s" - ], - [ - "e", - "us" - ], - [ - "r", - "r" - ], - [ - "ля", - "н" - ], - [ - "л", - "ян" - ], - [ - "▁H", - "av" - ], - [ - "▁Ha", - "v" - ], - [ - "▁o", - "ra" - ], - [ - "▁or", - "a" - ], - [ - "▁", - "ora" - ], - [ - "FR", - "OM" - ], - [ - "F", - "ROM" - ], - [ - "ло", - "ся" - ], - [ - "▁te", - "rug" - ], - [ - "▁ter", - "ug" - ], - [ - "▁W", - "idth" - ], - [ - "▁", - "Width" - ], - [ - "▁accept", - "s" - ], - [ - "бе", - "н" - ], - [ - "б", - "ен" - ], - [ - "▁m", - "ich" - ], - [ - "▁mi", - "ch" - ], - [ - "▁mic", - "h" - ], - [ - "▁C", - "zech" - ], - [ - "▁Cz", - "ech" - ], - [ - "▁B", - "edeut" - ], - [ - "▁ви", - "д" - ], - [ - "▁", - "вид" - ], - [ - "ô", - "me" - ], - [ - "▁L", - "oop" - ], - [ - "▁Lo", - "op" - ], - [ - "▁", - "Loop" - ], - [ - "sp", - "ect" - ], - [ - "spe", - "ct" - ], - [ - "spec", - "t" - ], - [ - "s", - "pect" - ], - [ - "ü", - "k" - ], - [ - "es", - "ton" - ], - [ - "est", - "on" - ], - [ - "esto", - "n" - ], - [ - "e", - "ston" - ], - [ - "▁s", - "lot" - ], - [ - "▁sl", - "ot" - ], - [ - "▁slo", - "t" - ], - [ - "▁został", - "a" - ], - [ - "▁Charlot", - "te" - ], - [ - "▁состав", - "ляет" - ], - [ - "▁составля", - "ет" - ], - [ - "▁Prom", - "ise" - ], - [ - "▁e", - "po" - ], - [ - "▁ep", - "o" - ], - [ - "▁d", - "iction" - ], - [ - "▁di", - "ction" - ], - [ - "▁dict", - "ion" - ], - [ - "▁dic", - "tion" - ], - [ - "▁", - "diction" - ], - [ - "▁Frank", - "lin" - ], - [ - "▁R", - "iv" - ], - [ - "▁Ri", - "v" - ], - [ - "ру", - "г" - ], - [ - "ci", - "da" - ], - [ - "cid", - "a" - ], - [ - "c", - "ida" - ], - [ - "▁Ex", - "plorer" - ], - [ - "cook", - "ie" - ], - [ - "▁former", - "ly" - ], - [ - "▁municip", - "ality" - ], - [ - "▁municipal", - "ity" - ], - [ - "▁Ste", - "fan" - ], - [ - "▁Stef", - "an" - ], - [ - "list", - "s" - ], - [ - "lis", - "ts" - ], - [ - "l", - "ists" - ], - [ - "CO", - "MP" - ], - [ - "COM", - "P" - ], - [ - "Le", - "n" - ], - [ - "L", - "en" - ], - [ - "▁Sta", - "at" - ], - [ - "▁N", - "BA" - ], - [ - "de", - "ns" - ], - [ - "den", - "s" - ], - [ - "d", - "ens" - ], - [ - "▁osc", - "ill" - ], - [ - "!", - "." - ], - [ - "▁P", - "O" - ], - [ - "▁", - "PO" - ], - [ - "ô", - "ne" - ], - [ - "es", - "es" - ], - [ - "ese", - "s" - ], - [ - "▁на", - "циональ" - ], - [ - "vo", - "or" - ], - [ - "v", - "oor" - ], - [ - "▁ко", - "пи" - ], - [ - "▁по", - "зи" - ], - [ - "▁", - "пози" - ], - [ - "ul", - "u" - ], - [ - "u", - "lu" - ], - [ - "Const", - "raint" - ], - [ - "Constra", - "int" - ], - [ - "▁сво", - "ей" - ], - [ - "▁algebra", - "ic" - ], - [ - "ч", - "ня" - ], - [ - "Di", - "ct" - ], - [ - "D", - "ict" - ], - [ - "▁appear", - "ing" - ], - [ - "▁appe", - "aring" - ], - [ - "▁p", - "rav" - ], - [ - "▁pr", - "av" - ], - [ - "▁pra", - "v" - ], - [ - "▁Univers", - "al" - ], - [ - "B", - "rowser" - ], - [ - "▁Sing", - "ap" - ], - [ - "ennes", - "see" - ], - [ - "]", - "_" - ], - [ - "▁S", - "of" - ], - [ - "▁So", - "f" - ], - [ - "▁C", - "ad" - ], - [ - "▁Ca", - "d" - ], - [ - "oun", - "ce" - ], - [ - "▁cost", - "s" - ], - [ - "▁cos", - "ts" - ], - [ - "]{", - "\\" - ], - [ - "]", - "{\\" - ], - [ - "../", - "../" - ], - [ - "ськ", - "ій" - ], - [ - "ські", - "й" - ], - [ - "üh", - "l" - ], - [ - "ü", - "hl" - ], - [ - "ie", - "ty" - ], - [ - "iet", - "y" - ], - [ - "i", - "ety" - ], - [ - "п", - "р" - ], - [ - "▁interpre", - "ted" - ], - [ - "▁interpret", - "ed" - ], - [ - "aj", - "n" - ], - [ - "col", - "og" - ], - [ - "co", - "log" - ], - [ - "colo", - "g" - ], - [ - "c", - "olog" - ], - [ - "Y", - "S" - ], - [ - "ma", - "ns" - ], - [ - "man", - "s" - ], - [ - "m", - "ans" - ], - [ - "▁met", - "rics" - ], - [ - "▁metric", - "s" - ], - [ - "▁reg", - "istr" - ], - [ - "▁", - "registr" - ], - [ - "ist", - "ance" - ], - [ - "istan", - "ce" - ], - [ - "▁По", - "ль" - ], - [ - "▁an", - "onymous" - ], - [ - "▁", - "anonymous" - ], - [ - "▁institution", - "s" - ], - [ - "▁instit", - "utions" - ], - [ - "▁z", - "dob" - ], - [ - "▁zd", - "ob" - ], - [ - "pr", - "üng" - ], - [ - "prü", - "ng" - ], - [ - "▁ар", - "ти" - ], - [ - "▁e", - "stat" - ], - [ - "▁est", - "at" - ], - [ - "▁es", - "tat" - ], - [ - "▁esta", - "t" - ], - [ - "ac", - "ci" - ], - [ - "acc", - "i" - ], - [ - "▁academ", - "ic" - ], - [ - "▁ch", - "iesa" - ], - [ - "▁chi", - "esa" - ], - [ - "▁G", - "ian" - ], - [ - "▁Gi", - "an" - ], - [ - "▁Gia", - "n" - ], - [ - "cont", - "rib" - ], - [ - "contr", - "ib" - ], - [ - "um", - "ed" - ], - [ - "ume", - "d" - ], - [ - "u", - "med" - ], - [ - "▁G", - "ir" - ], - [ - "▁Gi", - "r" - ], - [ - "▁base", - "ball" - ], - [ - "numer", - "ic" - ], - [ - "n", - "umeric" - ], - [ - "Gener", - "ator" - ], - [ - "G", - "M" - ], - [ - "▁t", - "iny" - ], - [ - "▁ti", - "ny" - ], - [ - "▁tin", - "y" - ], - [ - "▁", - "tiny" - ], - [ - "▁dist", - "inction" - ], - [ - "▁distinct", - "ion" - ], - [ - "ге", - "р" - ], - [ - "г", - "ер" - ], - [ - "▁r", - "ust" - ], - [ - "▁ru", - "st" - ], - [ - "▁rus", - "t" - ], - [ - "▁", - "rust" - ], - [ - "▁FI", - "FA" - ], - [ - "▁Pro", - "perties" - ], - [ - "▁", - "Properties" - ], - [ - "^", - "-" - ], - [ - "▁э", - "кс" - ], - [ - "▁эк", - "с" - ], - [ - "▁Sta", - "nis" - ], - [ - "▁Stan", - "is" - ], - [ - "▁A", - "jax" - ], - [ - "es", - "cape" - ], - [ - "esc", - "ape" - ], - [ - "▁con", - "sp" - ], - [ - "▁cons", - "p" - ], - [ - "▁C", - "hen" - ], - [ - "▁Ch", - "en" - ], - [ - "▁Che", - "n" - ], - [ - "▁N", - "aval" - ], - [ - "▁Na", - "val" - ], - [ - "▁Nav", - "al" - ], - [ - "Bi", - "t" - ], - [ - "B", - "it" - ], - [ - "▁b", - "ât" - ], - [ - "ски", - "ми" - ], - [ - "ским", - "и" - ], - [ - "с", - "кими" - ], - [ - "dr", - "ive" - ], - [ - "dri", - "ve" - ], - [ - "d", - "rive" - ], - [ - "▁R", - "ound" - ], - [ - "▁Ro", - "und" - ], - [ - "▁Rou", - "nd" - ], - [ - "ph", - "oto" - ], - [ - "▁Le", - "vel" - ], - [ - "▁Lev", - "el" - ], - [ - "▁", - "Level" - ], - [ - "▁g", - "eg" - ], - [ - "▁ge", - "g" - ], - [ - "▁", - "geg" - ], - [ - "To", - "m" - ], - [ - "T", - "om" - ], - [ - "▁M", - "obile" - ], - [ - "▁", - "Mobile" - ], - [ - "▁T", - "rop" - ], - [ - "▁Tr", - "op" - ], - [ - "▁Tro", - "p" - ], - [ - "Dir", - "ection" - ], - [ - "Direct", - "ion" - ], - [ - "D", - "irection" - ], - [ - "is", - "an" - ], - [ - "isa", - "n" - ], - [ - "i", - "san" - ], - [ - ")^", - "{-" - ], - [ - ")^{", - "-" - ], - [ - ")", - "^{-" - ], - [ - "▁Set", - "ting" - ], - [ - "▁", - "Setting" - ], - [ - "▁Pro", - "bably" - ], - [ - "ль", - "я" - ], - [ - "л", - "ья" - ], - [ - "▁as", - "sets" - ], - [ - "▁ass", - "ets" - ], - [ - "▁asse", - "ts" - ], - [ - "▁asset", - "s" - ], - [ - "▁", - "assets" - ], - [ - "▁a", - "tte" - ], - [ - "▁at", - "te" - ], - [ - "▁att", - "e" - ], - [ - "▁", - "atte" - ], - [ - "▁b", - "ulk" - ], - [ - "▁bul", - "k" - ], - [ - "és", - "t" - ], - [ - "é", - "st" - ], - [ - "▁w", - "ing" - ], - [ - "▁win", - "g" - ], - [ - "▁", - "wing" - ], - [ - "ni", - "us" - ], - [ - "niu", - "s" - ], - [ - "n", - "ius" - ], - [ - "▁w", - "ins" - ], - [ - "▁win", - "s" - ], - [ - "▁l", - "ud" - ], - [ - "▁lu", - "d" - ], - [ - "us", - "hing" - ], - [ - "ush", - "ing" - ], - [ - "▁d", - "even" - ], - [ - "▁de", - "ven" - ], - [ - "▁dev", - "en" - ], - [ - "▁deve", - "n" - ], - [ - "огра", - "ф" - ], - [ - "о", - "граф" - ], - [ - "burg", - "er" - ], - [ - "bur", - "ger" - ], - [ - "b", - "urger" - ], - [ - "▁em", - "bar" - ], - [ - "▁emb", - "ar" - ], - [ - "Filter", - "Chain" - ], - [ - "▁t", - "um" - ], - [ - "▁tu", - "m" - ], - [ - "▁ö", - "ss" - ], - [ - "▁nom", - "mé" - ], - [ - "▁p", - "ir" - ], - [ - "▁pi", - "r" - ], - [ - "▁l", - "uc" - ], - [ - "▁lu", - "c" - ], - [ - "db", - "o" - ], - [ - "d", - "bo" - ], - [ - "ag", - "ues" - ], - [ - "ague", - "s" - ], - [ - "agu", - "es" - ], - [ - "▁al", - "can" - ], - [ - "▁alc", - "an" - ], - [ - "ou", - "wen" - ], - [ - "ouw", - "en" - ], - [ - "▁Stan", - "ley" - ], - [ - "ци", - "али" - ], - [ - "▁g", - "rown" - ], - [ - "▁gr", - "own" - ], - [ - "▁gro", - "wn" - ], - [ - "▁grow", - "n" - ], - [ - "▁pres", - "erved" - ], - [ - "▁preserve", - "d" - ], - [ - "▁s", - "olar" - ], - [ - "▁so", - "lar" - ], - [ - "▁sol", - "ar" - ], - [ - "▁Насе", - "ление" - ], - [ - "▁perform", - "ances" - ], - [ - "▁performance", - "s" - ], - [ - "▁C", - "ow" - ], - [ - "▁Co", - "w" - ], - [ - "▁engine", - "ering" - ], - [ - "▁engineer", - "ing" - ], - [ - "▁sc", - "aling" - ], - [ - "▁scal", - "ing" - ], - [ - "at", - "omic" - ], - [ - "ato", - "mic" - ], - [ - "atom", - "ic" - ], - [ - "end", - "ance" - ], - [ - "▁a", - "ce" - ], - [ - "▁ac", - "e" - ], - [ - "▁", - "ace" - ], - [ - "än", - "gen" - ], - [ - "äng", - "en" - ], - [ - "änge", - "n" - ], - [ - "An", - "im" - ], - [ - "A", - "nim" - ], - [ - "ph", - "ase" - ], - [ - "pha", - "se" - ], - [ - "phas", - "e" - ], - [ - "z", - "burg" - ], - [ - "O", - "ld" - ], - [ - "▁serv", - "ant" - ], - [ - "▁geme", - "ins" - ], - [ - "▁Ob", - "serv" - ], - [ - "trans", - "late" - ], - [ - "▁cover", - "ing" - ], - [ - "▁cov", - "ering" - ], - [ - "▁est", - "án" - ], - [ - "▁está", - "n" - ], - [ - "▁problem", - "a" - ], - [ - "▁proble", - "ma" - ], - [ - "▁probl", - "ema" - ], - [ - "▁у", - "станов" - ], - [ - "▁l", - "lev" - ], - [ - "▁ll", - "ev" - ], - [ - "▁lle", - "v" - ], - [ - "▁c", - "zerw" - ], - [ - "é", - "al" - ], - [ - "me", - "z" - ], - [ - "m", - "ez" - ], - [ - "RE", - "E" - ], - [ - "R", - "EE" - ], - [ - "ER", - "R" - ], - [ - "ту", - "ри" - ], - [ - "тур", - "и" - ], - [ - "se", - "gu" - ], - [ - "seg", - "u" - ], - [ - "s", - "egu" - ], - [ - "▁pro", - "fit" - ], - [ - "▁prof", - "it" - ], - [ - "▁multip", - "lication" - ], - [ - "kom", - "men" - ], - [ - "k", - "ommen" - ], - [ - "▁f", - "aut" - ], - [ - "▁fa", - "ut" - ], - [ - "▁candid", - "ates" - ], - [ - "▁candidate", - "s" - ], - [ - "▁U", - "ri" - ], - [ - "▁Ur", - "i" - ], - [ - "▁", - "Uri" - ], - [ - "▁La", - "ura" - ], - [ - "▁Laur", - "a" - ], - [ - "▁Lau", - "ra" - ], - [ - "▁s", - "ap" - ], - [ - "▁sa", - "p" - ], - [ - "▁ви", - "сини" - ], - [ - "▁Bet", - "ween" - ], - [ - "fa", - "de" - ], - [ - "f", - "ade" - ], - [ - "▁res", - "erved" - ], - [ - "▁reserve", - "d" - ], - [ - "▁invol", - "ving" - ], - [ - "▁M", - "are" - ], - [ - "▁Mar", - "e" - ], - [ - "▁Ma", - "re" - ], - [ - "▁Cont", - "ainer" - ], - [ - "▁", - "Container" - ], - [ - "▁на", - "зна" - ], - [ - "▁DE", - "BUG" - ], - [ - "▁", - "DEBUG" - ], - [ - "▁h", - "urt" - ], - [ - "▁hur", - "t" - ], - [ - "▁hu", - "rt" - ], - [ - "▁Pol", - "ski" - ], - [ - "▁l", - "ux" - ], - [ - "▁lu", - "x" - ], - [ - "C", - "B" - ], - [ - "wa", - "ch" - ], - [ - "w", - "ach" - ], - [ - "▁пери", - "од" - ], - [ - "▁перио", - "д" - ], - [ - "▁C", - "atherine" - ], - [ - "▁g", - "anz" - ], - [ - "▁gan", - "z" - ], - [ - "uch", - "te" - ], - [ - "ucht", - "e" - ], - [ - "u", - "chte" - ], - [ - "▁cons", - "umer" - ], - [ - "▁consum", - "er" - ], - [ - "▁consume", - "r" - ], - [ - "▁cross", - "ed" - ], - [ - "ord", - "ered" - ], - [ - "order", - "ed" - ], - [ - "orde", - "red" - ], - [ - "aw", - "ay" - ], - [ - "awa", - "y" - ], - [ - "a", - "way" - ], - [ - "te", - "chn" - ], - [ - "tech", - "n" - ], - [ - "▁sub", - "scri" - ], - [ - "▁subs", - "cri" - ], - [ - "▁short", - "cut" - ], - [ - "▁произ", - "вод" - ], - [ - "▁simultane", - "ously" - ], - [ - "▁r", - "ating" - ], - [ - "▁ra", - "ting" - ], - [ - "▁rat", - "ing" - ], - [ - "▁", - "rating" - ], - [ - "▁K", - "ings" - ], - [ - "▁King", - "s" - ], - [ - "▁Kin", - "gs" - ], - [ - "▁relations", - "hips" - ], - [ - "▁relation", - "ships" - ], - [ - "▁relationship", - "s" - ], - [ - "▁S", - "ex" - ], - [ - "▁Se", - "x" - ], - [ - "▁T", - "ool" - ], - [ - "▁To", - "ol" - ], - [ - "▁", - "Tool" - ], - [ - "ag", - "h" - ], - [ - "a", - "gh" - ], - [ - "ac", - "ters" - ], - [ - "act", - "ers" - ], - [ - "acter", - "s" - ], - [ - "log", - "ger" - ], - [ - "hom", - "me" - ], - [ - "en", - "gers" - ], - [ - "eng", - "ers" - ], - [ - "enger", - "s" - ], - [ - "▁R", - "i" - ], - [ - "ear", - "ance" - ], - [ - "ea", - "rance" - ], - [ - "▁appear", - "ances" - ], - [ - "▁appearance", - "s" - ], - [ - "Re", - "al" - ], - [ - "▁p", - "asse" - ], - [ - "▁pass", - "e" - ], - [ - "▁pas", - "se" - ], - [ - "ic", - "lopedia" - ], - [ - "ч", - "ко" - ], - [ - "ter", - "re" - ], - [ - "▁Ont", - "ario" - ], - [ - "▁пере", - "да" - ], - [ - "▁перед", - "а" - ], - [ - "fo", - "oter" - ], - [ - "foo", - "ter" - ], - [ - "foot", - "er" - ], - [ - "arch", - "ivi" - ], - [ - "archiv", - "i" - ], - [ - "if", - "iz" - ], - [ - "ifi", - "z" - ], - [ - "▁Pro", - "test" - ], - [ - "▁Prote", - "st" - ], - [ - "▁L", - "IN" - ], - [ - "▁LI", - "N" - ], - [ - "▁", - "LIN" - ], - [ - "unn", - "able" - ], - [ - "▁cent", - "uries" - ], - [ - "▁B", - "ayer" - ], - [ - "▁Ba", - "yer" - ], - [ - "▁Bay", - "er" - ], - [ - "ці", - "ю" - ], - [ - "ов", - "ин" - ], - [ - "ови", - "н" - ], - [ - "о", - "вин" - ], - [ - "▁And", - "rea" - ], - [ - "▁Andre", - "a" - ], - [ - "se", - "lection" - ], - [ - "select", - "ion" - ], - [ - "sel", - "ection" - ], - [ - "▁c", - "alm" - ], - [ - "▁cal", - "m" - ], - [ - "▁ca", - "lm" - ], - [ - "▁mod", - "ification" - ], - [ - "▁modific", - "ation" - ], - [ - "▁short", - "ly" - ], - [ - "in", - "aire" - ], - [ - "ina", - "ire" - ], - [ - "i", - "naire" - ], - [ - "▁f", - "usion" - ], - [ - "▁fus", - "ion" - ], - [ - "▁feel", - "ings" - ], - [ - "▁feeling", - "s" - ], - [ - "▁fee", - "lings" - ], - [ - "P", - "K" - ], - [ - "▁Ro", - "berto" - ], - [ - "▁Robert", - "o" - ], - [ - "г", - "не" - ], - [ - "Sh", - "ared" - ], - [ - "▁mehr", - "ere" - ], - [ - "▁N", - "iem" - ], - [ - "▁Ni", - "em" - ], - [ - "▁Nie", - "m" - ], - [ - "om", - "p" - ], - [ - "o", - "mp" - ], - [ - "En", - "v" - ], - [ - "▁Art", - "icle" - ], - [ - "▁P", - "ok" - ], - [ - "▁Po", - "k" - ], - [ - "▁V", - "ARCHAR" - ], - [ - "▁d", - "il" - ], - [ - "▁di", - "l" - ], - [ - "▁af", - "ford" - ], - [ - "▁aff", - "ord" - ], - [ - "▁con", - "front" - ], - [ - "▁conf", - "ront" - ], - [ - "ow", - "anie" - ], - [ - "owa", - "nie" - ], - [ - "owan", - "ie" - ], - [ - "▁min", - "istre" - ], - [ - "▁minist", - "re" - ], - [ - "▁mini", - "stre" - ], - [ - "ad", - "esh" - ], - [ - "ade", - "sh" - ], - [ - "ades", - "h" - ], - [ - "▁P", - "oly" - ], - [ - "▁Pol", - "y" - ], - [ - "▁Po", - "ly" - ], - [ - "▁Ра", - "спо" - ], - [ - "▁Рас", - "по" - ], - [ - "▁Gru", - "ppe" - ], - [ - "▁H", - "elen" - ], - [ - "▁He", - "len" - ], - [ - "▁Hel", - "en" - ], - [ - "▁c", - "c" - ], - [ - "▁", - "cc" - ], - [ - "▁port", - "rait" - ], - [ - "be", - "w" - ], - [ - "b", - "ew" - ], - [ - "▁b", - "eta" - ], - [ - "▁be", - "ta" - ], - [ - "▁bet", - "a" - ], - [ - "▁", - "beta" - ], - [ - "▁W", - "ir" - ], - [ - "▁Wi", - "r" - ], - [ - "▁A", - "udio" - ], - [ - "▁Aud", - "io" - ], - [ - "▁", - "Audio" - ], - [ - "▁(", - "\\<" - ], - [ - "▁(\\", - "<" - ], - [ - "rior", - "ity" - ], - [ - "▁n", - "it" - ], - [ - "▁ni", - "t" - ], - [ - "▁", - "nit" - ], - [ - "▁пред", - "стави" - ], - [ - "▁представ", - "и" - ], - [ - "▁V", - "ie" - ], - [ - "▁Vi", - "e" - ], - [ - "▁w", - "ür" - ], - [ - "▁", - "wür" - ], - [ - "▁H", - "old" - ], - [ - "▁Hol", - "d" - ], - [ - "▁Ho", - "ld" - ], - [ - "▁", - "Hold" - ], - [ - "▁S", - "ad" - ], - [ - "▁Sa", - "d" - ], - [ - "▁To", - "chter" - ], - [ - "▁o", - "ltre" - ], - [ - "▁ol", - "tre" - ], - [ - "▁", - "oltre" - ], - [ - "▁Act", - "iv" - ], - [ - "▁", - "Activ" - ], - [ - "▁J", - "ason" - ], - [ - "▁Ja", - "son" - ], - [ - "▁Jas", - "on" - ], - [ - "▁wie", - "ku" - ], - [ - "▁reg", - "ards" - ], - [ - "▁regard", - "s" - ], - [ - "▁t", - "aste" - ], - [ - "▁ta", - "ste" - ], - [ - "agnost", - "ic" - ], - [ - "ла", - "ся" - ], - [ - "▁S", - "elf" - ], - [ - "▁Sel", - "f" - ], - [ - "▁", - "Self" - ], - [ - "▁a", - "pr" - ], - [ - "▁ap", - "r" - ], - [ - "▁De", - "ep" - ], - [ - "sc", - "op" - ], - [ - "s", - "cop" - ], - [ - "Act", - "iv" - ], - [ - "▁type", - "def" - ], - [ - "▁typed", - "ef" - ], - [ - "Content", - "View" - ], - [ - "comp", - "iler" - ], - [ - "compile", - "r" - ], - [ - "▁R", - "oth" - ], - [ - "▁Ro", - "th" - ], - [ - "▁Rot", - "h" - ], - [ - "x", - "c" - ], - [ - "зи", - "к" - ], - [ - "▁l", - "argo" - ], - [ - "▁lar", - "go" - ], - [ - "▁larg", - "o" - ], - [ - "▁R", - "ena" - ], - [ - "▁Re", - "na" - ], - [ - "▁Ren", - "a" - ], - [ - "he", - "iten" - ], - [ - "heit", - "en" - ], - [ - "▁platform", - "s" - ], - [ - "▁plat", - "forms" - ], - [ - "ul", - "la" - ], - [ - "ull", - "a" - ], - [ - "u", - "lla" - ], - [ - "▁gl", - "ance" - ], - [ - "▁mas", - "cul" - ], - [ - "▁m", - "ex" - ], - [ - "▁me", - "x" - ], - [ - "▁J", - "orge" - ], - [ - "▁fun", - "cion" - ], - [ - "▁func", - "ion" - ], - [ - "cho", - "ose" - ], - [ - "▁re", - "views" - ], - [ - "▁review", - "s" - ], - [ - "▁Al", - "ban" - ], - [ - "▁Alb", - "an" - ], - [ - "▁G", - "lo" - ], - [ - "▁Gl", - "o" - ], - [ - "▁S", - "pecies" - ], - [ - "▁Spe", - "cies" - ], - [ - "▁Spec", - "ies" - ], - [ - "▁F", - "ame" - ], - [ - "▁Fa", - "me" - ], - [ - "▁Fam", - "e" - ], - [ - "▁R", - "oll" - ], - [ - "▁Ro", - "ll" - ], - [ - "▁Rol", - "l" - ], - [ - "▁P", - "uerto" - ], - [ - "▁\\", - ")" - ], - [ - "▁", - "\\)" - ], - [ - "ym", - "nas" - ], - [ - "ymn", - "as" - ], - [ - "en", - "viron" - ], - [ - "▁i", - "phone" - ], - [ - "▁Wrest", - "ling" - ], - [ - "ał", - "y" - ], - [ - "a", - "ły" - ], - [ - "▁Ind", - "iana" - ], - [ - "▁India", - "na" - ], - [ - "▁Indian", - "a" - ], - [ - "Rad", - "io" - ], - [ - "V", - "S" - ], - [ - "▁independ", - "ence" - ], - [ - "та", - "й" - ], - [ - "▁de", - "code" - ], - [ - "▁dec", - "ode" - ], - [ - "▁", - "decode" - ], - [ - "Wh", - "ite" - ], - [ - "▁j", - "ourn" - ], - [ - "▁jo", - "urn" - ], - [ - "▁jou", - "rn" - ], - [ - "▁jour", - "n" - ], - [ - "ícul", - "o" - ], - [ - "í", - "culo" - ], - [ - "▁Bar", - "b" - ], - [ - "▁Ba", - "rb" - ], - [ - "▁Ev", - "angel" - ], - [ - "▁An", - "dy" - ], - [ - "▁And", - "y" - ], - [ - "▁Wel", - "come" - ], - [ - "▁De", - "vice" - ], - [ - "▁Dev", - "ice" - ], - [ - "▁", - "Device" - ], - [ - "ge", - "f" - ], - [ - "g", - "ef" - ], - [ - "▁remember", - "ed" - ], - [ - "▁vari", - "ations" - ], - [ - "▁variation", - "s" - ], - [ - "▁Ad", - "olf" - ], - [ - "it", - "aine" - ], - [ - "ita", - "ine" - ], - [ - "▁надмор", - "ској" - ], - [ - "▁s", - "team" - ], - [ - "▁ste", - "am" - ], - [ - "▁concern", - "s" - ], - [ - "▁`", - "|" - ], - [ - "▁би", - "о" - ], - [ - "тель", - "ства" - ], - [ - "▁qu", - "attro" - ], - [ - "ext", - "end" - ], - [ - "▁trab", - "ajo" - ], - [ - "▁trabaj", - "o" - ], - [ - "en", - "berg" - ], - [ - "▁scen", - "arios" - ], - [ - "▁scenario", - "s" - ], - [ - "ân", - "t" - ], - [ - "â", - "nt" - ], - [ - "▁kom", - "mt" - ], - [ - "▁komm", - "t" - ], - [ - "▁dom", - "estic" - ], - [ - "▁B", - "asketball" - ], - [ - "▁Co", - "oper" - ], - [ - "so", - "ck" - ], - [ - "s", - "ock" - ], - [ - "дер", - "жа" - ], - [ - "д", - "ержа" - ], - [ - "={", - "\\" - ], - [ - "=", - "{\\" - ], - [ - "▁in", - "ici" - ], - [ - "▁P", - "hill" - ], - [ - "▁Ph", - "ill" - ], - [ - "▁Phil", - "l" - ], - [ - "▁гене", - "рал" - ], - [ - "archivi", - "ato" - ], - [ - "ъ", - "н" - ], - [ - "Ro", - "b" - ], - [ - "R", - "ob" - ], - [ - "▁t", - "ong" - ], - [ - "▁to", - "ng" - ], - [ - "▁ton", - "g" - ], - [ - "▁character", - "istics" - ], - [ - "▁characteristic", - "s" - ], - [ - "▁a", - "maz" - ], - [ - "▁am", - "az" - ], - [ - "▁M", - "ode" - ], - [ - "▁Mod", - "e" - ], - [ - "▁Mo", - "de" - ], - [ - "▁", - "Mode" - ], - [ - "▁inaug", - "ur" - ], - [ - "we", - "hr" - ], - [ - "ra", - "nt" - ], - [ - "ran", - "t" - ], - [ - "r", - "ant" - ], - [ - "ion", - "ali" - ], - [ - "ional", - "i" - ], - [ - "iona", - "li" - ], - [ - "▁M", - "other" - ], - [ - "▁Mo", - "ther" - ], - [ - "▁Mot", - "her" - ], - [ - "M", - "a" - ], - [ - "é", - "qu" - ], - [ - "▁K", - "elly" - ], - [ - "▁Kel", - "ly" - ], - [ - "ci", - "le" - ], - [ - "cil", - "e" - ], - [ - "c", - "ile" - ], - [ - "▁beste", - "ht" - ], - [ - "▁estim", - "ates" - ], - [ - "▁estimate", - "s" - ], - [ - "rugu", - "ay" - ], - [ - "▁A", - "ns" - ], - [ - "▁An", - "s" - ], - [ - "Ma", - "d" - ], - [ - "M", - "ad" - ], - [ - "▁на", - "в" - ], - [ - "▁d", - "onnées" - ], - [ - "▁donn", - "ées" - ], - [ - "▁donné", - "es" - ], - [ - "▁", - "données" - ], - [ - "▁trop", - "ical" - ], - [ - "▁Sever", - "al" - ], - [ - "el", - "ter" - ], - [ - "elt", - "er" - ], - [ - "elte", - "r" - ], - [ - "▁P", - "ho" - ], - [ - "▁Ph", - "o" - ], - [ - "ke", - "m" - ], - [ - "k", - "em" - ], - [ - "▁Custom", - "er" - ], - [ - "▁", - "Customer" - ], - [ - "▁скла", - "ді" - ], - [ - "▁c", - "ourses" - ], - [ - "▁course", - "s" - ], - [ - "▁cours", - "es" - ], - [ - "Pl", - "atform" - ], - [ - "nav", - "bar" - ], - [ - "le", - "arning" - ], - [ - "lear", - "ning" - ], - [ - "learn", - "ing" - ], - [ - "▁Sw", - "edish" - ], - [ - "▁z", - "ast" - ], - [ - "▁za", - "st" - ], - [ - "▁zas", - "t" - ], - [ - "▁L", - "ig" - ], - [ - "▁Li", - "g" - ], - [ - "man", - "agement" - ], - [ - "▁l", - "od" - ], - [ - "▁lo", - "d" - ], - [ - "uff", - "le" - ], - [ - "Text", - "ure" - ], - [ - "Te", - "xture" - ], - [ - "ar", - "ga" - ], - [ - "arg", - "a" - ], - [ - "át", - "um" - ], - [ - "▁D", - "DR" - ], - [ - "ні", - "ї" - ], - [ - "н", - "ії" - ], - [ - "▁Soci", - "été" - ], - [ - "▁dom", - "ains" - ], - [ - "▁domain", - "s" - ], - [ - "▁perm", - "itted" - ], - [ - "▁permit", - "ted" - ], - [ - "▁ex", - "terne" - ], - [ - "▁ext", - "erne" - ], - [ - "▁extern", - "e" - ], - [ - "▁quel", - "que" - ], - [ - "v", - "t" - ], - [ - "ym", - "an" - ], - [ - "y", - "man" - ], - [ - "▁W", - "ard" - ], - [ - "▁War", - "d" - ], - [ - "▁Wa", - "rd" - ], - [ - "▁ag", - "li" - ], - [ - "▁", - "agli" - ], - [ - "▁and", - "ra" - ], - [ - "▁an", - "dra" - ], - [ - "▁", - "andra" - ], - [ - "S", - "napshot" - ], - [ - "▁m", - "å" - ], - [ - "▁ye", - "ah" - ], - [ - "де", - "на" - ], - [ - "ден", - "а" - ], - [ - "д", - "ена" - ], - [ - "ęp", - "u" - ], - [ - "ę", - "pu" - ], - [ - "ask", - "ell" - ], - [ - "▁Ré", - "publique" - ], - [ - "in", - "ject" - ], - [ - "▁'", - ";" - ], - [ - "▁", - "';" - ], - [ - "än", - "n" - ], - [ - "ä", - "nn" - ], - [ - "▁z", - "elf" - ], - [ - "▁Ent", - "wicklung" - ], - [ - "ár", - "ia" - ], - [ - "á", - "ria" - ], - [ - "on", - "omy" - ], - [ - "ono", - "my" - ], - [ - "onom", - "y" - ], - [ - "▁s", - "vil" - ], - [ - "▁sv", - "il" - ], - [ - "ie", - "se" - ], - [ - "ies", - "e" - ], - [ - "i", - "ese" - ], - [ - "▁con", - "ser" - ], - [ - "▁cons", - "er" - ], - [ - "▁conse", - "r" - ], - [ - "▁n", - "im" - ], - [ - "▁ni", - "m" - ], - [ - "▁", - "nim" - ], - [ - "▁r", - "ész" - ], - [ - "▁ré", - "sz" - ], - [ - "▁rés", - "z" - ], - [ - "▁И", - "тали" - ], - [ - "▁part", - "ici" - ], - [ - "▁partic", - "i" - ], - [ - "▁parti", - "ci" - ], - [ - "▁L", - "ion" - ], - [ - "▁Li", - "on" - ], - [ - "s", - "r" - ], - [ - "al", - "ways" - ], - [ - "▁Влади", - "мир" - ], - [ - "че", - "ские" - ], - [ - "[", - "," - ], - [ - "▁Def", - "inition" - ], - [ - "▁", - "Definition" - ], - [ - "na", - "nt" - ], - [ - "nan", - "t" - ], - [ - "n", - "ant" - ], - [ - "oe", - "m" - ], - [ - "o", - "em" - ], - [ - "Id", - "s" - ], - [ - "I", - "ds" - ], - [ - "▁в", - "не" - ], - [ - "▁[", - "...]" - ], - [ - "▁на", - "прав" - ], - [ - "▁нап", - "рав" - ], - [ - "▁G", - "O" - ], - [ - "▁", - "GO" - ], - [ - "▁å", - "rs" - ], - [ - "▁år", - "s" - ], - [ - "▁ut", - "án" - ], - [ - "▁out", - "ros" - ], - [ - "▁reg", - "ión" - ], - [ - "▁M", - "ong" - ], - [ - "▁Mon", - "g" - ], - [ - "▁Mo", - "ng" - ], - [ - "▁fil", - "me" - ], - [ - "▁film", - "e" - ], - [ - "▁tri", - "ple" - ], - [ - "▁trip", - "le" - ], - [ - "▁sp", - "ons" - ], - [ - "▁spo", - "ns" - ], - [ - "De", - "velop" - ], - [ - "▁out", - "come" - ], - [ - "▁B", - "ible" - ], - [ - "▁Bi", - "ble" - ], - [ - "▁Bib", - "le" - ], - [ - "▁и", - "мени" - ], - [ - "▁име", - "ни" - ], - [ - "▁имен", - "и" - ], - [ - "Can", - "vas" - ], - [ - "пу", - "та" - ], - [ - "cur", - "r" - ], - [ - "cu", - "rr" - ], - [ - "c", - "urr" - ], - [ - "ás", - "ok" - ], - [ - "){", - "\\" - ], - [ - ")", - "{\\" - ], - [ - "ning", - "ar" - ], - [ - "`", - ";" - ], - [ - "▁Fl", - "ash" - ], - [ - ":", - "#" - ], - [ - "mu", - "st" - ], - [ - "mus", - "t" - ], - [ - "m", - "ust" - ], - [ - "cp", - "u" - ], - [ - "c", - "pu" - ], - [ - "▁form", - "ats" - ], - [ - "▁format", - "s" - ], - [ - "▁forma", - "ts" - ], - [ - "Ha", - "r" - ], - [ - "H", - "ar" - ], - [ - "▁epis", - "odio" - ], - [ - "▁R", - "osa" - ], - [ - "▁Ro", - "sa" - ], - [ - "▁Ros", - "a" - ], - [ - "▁d", - "ès" - ], - [ - "em", - "it" - ], - [ - "emi", - "t" - ], - [ - "e", - "mit" - ], - [ - "rit", - "eria" - ], - [ - "rite", - "ria" - ], - [ - "riter", - "ia" - ], - [ - "An", - "notation" - ], - [ - "Fl", - "ag" - ], - [ - "F", - "lag" - ], - [ - "g", - "mail" - ], - [ - "▁N", - "ormal" - ], - [ - "▁Nor", - "mal" - ], - [ - "▁Norm", - "al" - ], - [ - "▁", - "Normal" - ], - [ - "oll", - "ary" - ], - [ - "ollar", - "y" - ], - [ - "▁f", - "oss" - ], - [ - "▁fo", - "ss" - ], - [ - "▁fos", - "s" - ], - [ - "▁con", - "current" - ], - [ - "▁conc", - "urrent" - ], - [ - "▁", - "concurrent" - ], - [ - "▁crash", - "es" - ], - [ - "▁ви", - "де" - ], - [ - "▁вид", - "е" - ], - [ - "▁Min", - "or" - ], - [ - "▁Mi", - "nor" - ], - [ - "▁S", - "it" - ], - [ - "▁Si", - "t" - ], - [ - "▁S", - "N" - ], - [ - "▁", - "SN" - ], - [ - "▁s", - "car" - ], - [ - "▁sc", - "ar" - ], - [ - "▁", - "scar" - ], - [ - "▁fe", - "min" - ], - [ - "▁fem", - "in" - ], - [ - "▁spec", - "ification" - ], - [ - "▁specific", - "ation" - ], - [ - "so", - "ap" - ], - [ - "▁o", - "perate" - ], - [ - "▁oper", - "ate" - ], - [ - "▁opera", - "te" - ], - [ - "▁principal", - "mente" - ], - [ - "▁a", - "ust" - ], - [ - "▁au", - "st" - ], - [ - "▁aus", - "t" - ], - [ - "ib", - "ile" - ], - [ - "ibil", - "e" - ], - [ - "it", - "ime" - ], - [ - "iti", - "me" - ], - [ - "i", - "time" - ], - [ - "ле", - "жа" - ], - [ - "if", - "rame" - ], - [ - "i", - "frame" - ], - [ - "▁concept", - "s" - ], - [ - "▁conce", - "pts" - ], - [ - "▁t", - "ack" - ], - [ - "▁ta", - "ck" - ], - [ - "▁v", - "iss" - ], - [ - "▁vis", - "s" - ], - [ - "▁vi", - "ss" - ], - [ - "▁car", - "bon" - ], - [ - "ter", - "y" - ], - [ - "te", - "ry" - ], - [ - "t", - "ery" - ], - [ - "▁n", - "aming" - ], - [ - "▁na", - "ming" - ], - [ - "▁nam", - "ing" - ], - [ - "▁Or", - "ts" - ], - [ - "▁Ort", - "s" - ], - [ - "id", - "ente" - ], - [ - "ident", - "e" - ], - [ - "iden", - "te" - ], - [ - "▁Cap", - "it" - ], - [ - "▁Ca", - "pit" - ], - [ - "▁ex", - "pr" - ], - [ - "▁exp", - "r" - ], - [ - "▁", - "expr" - ], - [ - "▁насе", - "љу" - ], - [ - "▁Select", - "ed" - ], - [ - "▁Sel", - "ected" - ], - [ - "▁Sele", - "cted" - ], - [ - "▁", - "Selected" - ], - [ - "▁h", - "inter" - ], - [ - "▁hint", - "er" - ], - [ - "▁hin", - "ter" - ], - [ - "▁i", - "frame" - ], - [ - "▁if", - "rame" - ], - [ - "▁", - "iframe" - ], - [ - "▁z", - "b" - ], - [ - "index", - "Path" - ], - [ - "col", - "l" - ], - [ - "co", - "ll" - ], - [ - "c", - "oll" - ], - [ - "▁wr", - "ześ" - ], - [ - "▁a", - "cht" - ], - [ - "▁ac", - "ht" - ], - [ - "▁ach", - "t" - ], - [ - "▁", - "acht" - ], - [ - "▁grad", - "ually" - ], - [ - "▁gradu", - "ally" - ], - [ - "▁ч", - "у" - ], - [ - "▁", - "чу" - ], - [ - "зе", - "й" - ], - [ - "з", - "ей" - ], - [ - "ha", - "ft" - ], - [ - "h", - "aft" - ], - [ - "▁t", - "ran" - ], - [ - "▁tr", - "an" - ], - [ - "▁tra", - "n" - ], - [ - "▁la", - "quelle" - ], - [ - "yt", - "ics" - ], - [ - "ID", - "E" - ], - [ - "I", - "DE" - ], - [ - "▁py", - "game" - ], - [ - "▁pyg", - "ame" - ], - [ - "▁P", - "ackage" - ], - [ - "▁Pack", - "age" - ], - [ - "▁", - "Package" - ], - [ - "▁class", - "Name" - ], - [ - "▁", - "className" - ], - [ - "B", - "al" - ], - [ - "pe", - "rl" - ], - [ - "per", - "l" - ], - [ - "ти", - "на" - ], - [ - "тин", - "а" - ], - [ - "O", - "cc" - ], - [ - "▁in", - "frastr" - ], - [ - "▁Champion", - "s" - ], - [ - "▁Champ", - "ions" - ], - [ - "▁class", - "ic" - ], - [ - "▁R", - "aw" - ], - [ - "▁Ra", - "w" - ], - [ - "▁", - "Raw" - ], - [ - "▁partial", - "ly" - ], - [ - "▁parti", - "ally" - ], - [ - "▁T", - "ed" - ], - [ - "▁Te", - "d" - ], - [ - "▁sto", - "let" - ], - [ - "ra", - "ined" - ], - [ - "rain", - "ed" - ], - [ - "raine", - "d" - ], - [ - "rai", - "ned" - ], - [ - "r", - "ained" - ], - [ - "WH", - "ERE" - ], - [ - "W", - "HERE" - ], - [ - "▁v", - "all" - ], - [ - "▁val", - "l" - ], - [ - "▁va", - "ll" - ], - [ - "▁Jul", - "ia" - ], - [ - "▁Ju", - "lia" - ], - [ - "▁Juli", - "a" - ], - [ - "za", - "t" - ], - [ - "z", - "at" - ], - [ - "▁surr", - "ounded" - ], - [ - "SE", - "E" - ], - [ - "S", - "EE" - ], - [ - "▁walk", - "ing" - ], - [ - "▁wal", - "king" - ], - [ - "B", - "ad" - ], - [ - "FO", - "R" - ], - [ - "F", - "OR" - ], - [ - "con", - "tre" - ], - [ - "cont", - "re" - ], - [ - "contr", - "e" - ], - [ - "▁Pal", - "est" - ], - [ - "▁Pale", - "st" - ], - [ - "át", - "ico" - ], - [ - "▁engine", - "er" - ], - [ - "▁part", - "ners" - ], - [ - "▁partner", - "s" - ], - [ - "▁Je", - "ws" - ], - [ - "▁Jew", - "s" - ], - [ - "il", - "ers" - ], - [ - "ile", - "rs" - ], - [ - "iler", - "s" - ], - [ - "i", - "lers" - ], - [ - "▁c", - "erem" - ], - [ - "▁ce", - "rem" - ], - [ - "▁cer", - "em" - ], - [ - "▁inter", - "actions" - ], - [ - "▁interaction", - "s" - ], - [ - "▁interact", - "ions" - ], - [ - "ac", - "u" - ], - [ - "a", - "cu" - ], - [ - "st", - "y" - ], - [ - "s", - "ty" - ], - [ - "▁Prince", - "ss" - ], - [ - "▁Prin", - "cess" - ], - [ - "sh", - "arp" - ], - [ - "sha", - "rp" - ], - [ - "▁Sing", - "les" - ], - [ - "▁Single", - "s" - ], - [ - "▁ї", - "х" - ], - [ - "ch", - "ez" - ], - [ - "che", - "z" - ], - [ - "c", - "hez" - ], - [ - "Rece", - "iver" - ], - [ - "Receive", - "r" - ], - [ - "▁pat", - "ients" - ], - [ - "▁patient", - "s" - ], - [ - "string", - "ify" - ], - [ - "▁compet", - "ed" - ], - [ - "be", - "y" - ], - [ - "b", - "ey" - ], - [ - "$", - ";" - ], - [ - "▁B", - "d" - ], - [ - "had", - "oop" - ], - [ - "h", - "adoop" - ], - [ - "▁Div", - "isión" - ], - [ - "öl", - "d" - ], - [ - "ö", - "ld" - ], - [ - "▁restrict", - "ed" - ], - [ - "▁comm", - "ander" - ], - [ - "▁command", - "er" - ], - [ - "▁comma", - "nder" - ], - [ - "▁High", - "way" - ], - [ - "▁Č", - "esk" - ], - [ - "▁m", - "yth" - ], - [ - "▁my", - "th" - ], - [ - "ча", - "н" - ], - [ - "ч", - "ан" - ], - [ - "ra", - "ham" - ], - [ - "rah", - "am" - ], - [ - "▁en", - "qu" - ], - [ - "▁p", - "og" - ], - [ - "▁po", - "g" - ], - [ - "▁com", - "una" - ], - [ - "▁comun", - "a" - ], - [ - "▁print", - "ln" - ], - [ - "▁", - "println" - ], - [ - "▁к", - "руп" - ], - [ - "▁de", - "pois" - ], - [ - "▁dep", - "ois" - ], - [ - "▁se", - "ats" - ], - [ - "▁sea", - "ts" - ], - [ - "▁seat", - "s" - ], - [ - "▁neigh", - "b" - ], - [ - "ци", - "она" - ], - [ - "цион", - "а" - ], - [ - "ag", - "ine" - ], - [ - "agi", - "ne" - ], - [ - "agin", - "e" - ], - [ - "▁cloth", - "es" - ], - [ - "▁clo", - "thes" - ], - [ - "▁P", - "rior" - ], - [ - "▁Pr", - "ior" - ], - [ - "▁Pri", - "or" - ], - [ - "Br", - "ain" - ], - [ - "Bra", - "in" - ], - [ - "B", - "rain" - ], - [ - "FF", - "FF" - ], - [ - "':", - "'" - ], - [ - "'", - ":'" - ], - [ - "fe", - "atures" - ], - [ - "feature", - "s" - ], - [ - "▁file", - "system" - ], - [ - "▁files", - "ystem" - ], - [ - "▁sing", - "les" - ], - [ - "▁single", - "s" - ], - [ - "▁Mel", - "bourne" - ], - [ - "▁dest", - "ruction" - ], - [ - "▁destruct", - "ion" - ], - [ - "▁destru", - "ction" - ], - [ - "▁Ly", - "on" - ], - [ - "▁In", - "sel" - ], - [ - "▁Ins", - "el" - ], - [ - "Na", - "v" - ], - [ - "N", - "av" - ], - [ - "▁Re", - "place" - ], - [ - "▁Rep", - "lace" - ], - [ - "▁", - "Replace" - ], - [ - "▁l", - "é" - ], - [ - "▁", - "lé" - ], - [ - "Wh", - "o" - ], - [ - "W", - "ho" - ], - [ - "▁E", - "stad" - ], - [ - "▁Est", - "ad" - ], - [ - "▁Esta", - "d" - ], - [ - "▁dim", - "ensional" - ], - [ - "▁dimension", - "al" - ], - [ - "▁", - "dimensional" - ], - [ - "▁ö", - "ff" - ], - [ - "▁", - "öff" - ], - [ - "▁gr", - "ands" - ], - [ - "▁gran", - "ds" - ], - [ - "▁grand", - "s" - ], - [ - "дж", - "а" - ], - [ - "д", - "жа" - ], - [ - "pl", - "ane" - ], - [ - "plan", - "e" - ], - [ - "pla", - "ne" - ], - [ - "p", - "lane" - ], - [ - "но", - "сті" - ], - [ - "ност", - "і" - ], - [ - "нос", - "ті" - ], - [ - "▁Or", - "igin" - ], - [ - "▁Ori", - "gin" - ], - [ - "▁Orig", - "in" - ], - [ - "▁", - "Origin" - ], - [ - "W", - "I" - ], - [ - "än", - "ner" - ], - [ - "änn", - "er" - ], - [ - "▁C", - "ry" - ], - [ - "▁Cr", - "y" - ], - [ - "IT", - "ION" - ], - [ - "▁fö", - "dd" - ], - [ - "▁cult", - "ura" - ], - [ - "▁R", - "ank" - ], - [ - "▁Ran", - "k" - ], - [ - "▁v", - "uel" - ], - [ - "▁vue", - "l" - ], - [ - "▁vu", - "el" - ], - [ - "▁z", - "ag" - ], - [ - "▁za", - "g" - ], - [ - "▁Ma", - "xim" - ], - [ - "▁Max", - "im" - ], - [ - "он", - "у" - ], - [ - "о", - "ну" - ], - [ - "()", - "))" - ], - [ - "())", - ")" - ], - [ - "(", - ")))" - ], - [ - "R", - "aw" - ], - [ - "kir", - "che" - ], - [ - "k", - "irche" - ], - [ - "▁a", - "demás" - ], - [ - "▁t", - "ie" - ], - [ - "▁ti", - "e" - ], - [ - "▁St", - "yle" - ], - [ - "▁", - "Style" - ], - [ - "ско", - "в" - ], - [ - "ск", - "ов" - ], - [ - "с", - "ков" - ], - [ - "ist", - "ant" - ], - [ - "ista", - "nt" - ], - [ - "istan", - "t" - ], - [ - "ol", - "ph" - ], - [ - "▁Z", - "ür" - ], - [ - "▁In", - "fo" - ], - [ - "▁Inf", - "o" - ], - [ - "▁", - "Info" - ], - [ - "DO", - "M" - ], - [ - "D", - "OM" - ], - [ - "us", - "c" - ], - [ - "u", - "sc" - ], - [ - "na", - "hm" - ], - [ - "nah", - "m" - ], - [ - "▁Ф", - "едера" - ], - [ - "▁F", - "ot" - ], - [ - "▁Fo", - "t" - ], - [ - "▁spec", - "ifying" - ], - [ - "▁specify", - "ing" - ], - [ - "▁tit", - "olo" - ], - [ - "▁Bo", - "ys" - ], - [ - "▁Boy", - "s" - ], - [ - "ie", - "ch" - ], - [ - "iec", - "h" - ], - [ - "i", - "ech" - ], - [ - "Pl", - "ace" - ], - [ - "P", - "lace" - ], - [ - "▁H", - "off" - ], - [ - "▁Ho", - "ff" - ], - [ - "▁Hof", - "f" - ], - [ - "▁c", - "ached" - ], - [ - "▁ca", - "ched" - ], - [ - "▁cache", - "d" - ], - [ - "ва", - "ль" - ], - [ - "вал", - "ь" - ], - [ - "в", - "аль" - ], - [ - "is", - "her" - ], - [ - "ish", - "er" - ], - [ - "roll", - "ing" - ], - [ - "rol", - "ling" - ], - [ - "op", - "ens" - ], - [ - "ope", - "ns" - ], - [ - "open", - "s" - ], - [ - "▁h", - "r" - ], - [ - "▁", - "hr" - ], - [ - "--", - "----" - ], - [ - "----", - "--" - ], - [ - "---", - "---" - ], - [ - "-----", - "-" - ], - [ - "-", - "-----" - ], - [ - "▁mag", - "gior" - ], - [ - "▁maggio", - "r" - ], - [ - "▁trans", - "actions" - ], - [ - "▁transaction", - "s" - ], - [ - "▁c", - "riminal" - ], - [ - "▁crim", - "inal" - ], - [ - "▁re", - "tre" - ], - [ - "▁ret", - "re" - ], - [ - "▁retr", - "e" - ], - [ - "▁Camp", - "bell" - ], - [ - "))", - ":" - ], - [ - ")", - "):" - ], - [ - "▁n", - "ed" - ], - [ - "▁ne", - "d" - ], - [ - "▁", - "ned" - ], - [ - "Page", - "r" - ], - [ - "Pa", - "ger" - ], - [ - "P", - "ager" - ], - [ - "▁H", - "ero" - ], - [ - "▁He", - "ro" - ], - [ - "▁Her", - "o" - ], - [ - "(_", - "_" - ], - [ - "(", - "__" - ], - [ - "▁un", - "cle" - ], - [ - "▁re", - "aches" - ], - [ - "▁reach", - "es" - ], - [ - "ar", - "to" - ], - [ - "art", - "o" - ], - [ - "▁h", - "ello" - ], - [ - "▁hel", - "lo" - ], - [ - "▁hell", - "o" - ], - [ - "▁", - "hello" - ], - [ - "Pre", - "ferences" - ], - [ - "▁за", - "тем" - ], - [ - "Name", - "d" - ], - [ - "Na", - "med" - ], - [ - "N", - "amed" - ], - [ - "▁re", - "aders" - ], - [ - "▁read", - "ers" - ], - [ - "▁reader", - "s" - ], - [ - "х", - "і" - ], - [ - "ke", - "rn" - ], - [ - "ker", - "n" - ], - [ - "k", - "ern" - ], - [ - "▁у", - "по" - ], - [ - "ки", - "н" - ], - [ - "к", - "ин" - ], - [ - "▁l", - "av" - ], - [ - "▁la", - "v" - ], - [ - "▁", - "lav" - ], - [ - "▁n", - "ob" - ], - [ - "▁no", - "b" - ], - [ - "▁se", - "cre" - ], - [ - "▁sec", - "re" - ], - [ - "▁List", - "View" - ], - [ - "▁", - "ListView" - ], - [ - "ва", - "ния" - ], - [ - "▁May", - "or" - ], - [ - "bo", - "rough" - ], - [ - "bor", - "ough" - ], - [ - "▁fil", - "osof" - ], - [ - "не", - "ння" - ], - [ - "нен", - "ня" - ], - [ - "фр", - "и" - ], - [ - "ф", - "ри" - ], - [ - "▁p", - "atr" - ], - [ - "▁pat", - "r" - ], - [ - "▁pa", - "tr" - ], - [ - "F", - "M" - ], - [ - "▁a", - "cid" - ], - [ - "▁ac", - "id" - ], - [ - "▁Salv", - "ador" - ], - [ - "▁a", - "bb" - ], - [ - "▁ab", - "b" - ], - [ - "▁", - "abb" - ], - [ - "▁G", - "raham" - ], - [ - "▁Gra", - "ham" - ], - [ - "pol", - "icy" - ], - [ - "neg", - "ative" - ], - [ - "ński", - "ego" - ], - [ - "ń", - "skiego" - ], - [ - "▁He", - "imat" - ], - [ - "▁d", - "azu" - ], - [ - "▁da", - "zu" - ], - [ - "▁m", - "ely" - ], - [ - "▁me", - "ly" - ], - [ - "▁mel", - "y" - ], - [ - "▁r", - "ide" - ], - [ - "▁rid", - "e" - ], - [ - "▁ri", - "de" - ], - [ - "▁", - "ride" - ], - [ - "▁du", - "ties" - ], - [ - "▁dut", - "ies" - ], - [ - "ov", - "ery" - ], - [ - "over", - "y" - ], - [ - "ove", - "ry" - ], - [ - "o", - "very" - ], - [ - "▁Pro", - "position" - ], - [ - "▁Prop", - "osition" - ], - [ - "▁Pa", - "olo" - ], - [ - "/", - "'" - ], - [ - "▁M", - "au" - ], - [ - "▁Ma", - "u" - ], - [ - "im", - "enti" - ], - [ - "iment", - "i" - ], - [ - "imen", - "ti" - ], - [ - "Sa", - "int" - ], - [ - "S", - "aint" - ], - [ - "fa", - "ther" - ], - [ - "f", - "ather" - ], - [ - "▁equ", - "ilib" - ], - [ - "ph", - "ony" - ], - [ - "phon", - "y" - ], - [ - "▁c", - "las" - ], - [ - "▁cl", - "as" - ], - [ - "▁cla", - "s" - ], - [ - "▁от", - "ли" - ], - [ - "▁Buffer", - "ed" - ], - [ - "▁Buff", - "ered" - ], - [ - "re", - "k" - ], - [ - "r", - "ek" - ], - [ - "▁m", - "itt" - ], - [ - "▁mit", - "t" - ], - [ - "▁mi", - "tt" - ], - [ - "▁", - "mitt" - ], - [ - "▁H", - "ur" - ], - [ - "▁Hu", - "r" - ], - [ - "▁Har", - "vard" - ], - [ - "▁demonstr", - "ate" - ], - [ - "ua", - "rio" - ], - [ - "u", - "ario" - ], - [ - "▁do", - "lor" - ], - [ - "▁dol", - "or" - ], - [ - "▁reject", - "ed" - ], - [ - "▁M", - "üller" - ], - [ - "▁n", - "ac" - ], - [ - "▁na", - "c" - ], - [ - "▁B", - "elle" - ], - [ - "▁Be", - "lle" - ], - [ - "▁Bel", - "le" - ], - [ - "▁Bell", - "e" - ], - [ - "▁gather", - "ed" - ], - [ - "n", - "r" - ], - [ - "fr", - "ika" - ], - [ - "fri", - "ka" - ], - [ - "öl", - "l" - ], - [ - "ö", - "ll" - ], - [ - "▁chem", - "ical" - ], - [ - "ni", - "g" - ], - [ - "n", - "ig" - ], - [ - "▁cal", - "c" - ], - [ - "▁", - "calc" - ], - [ - "▁DE", - "FAULT" - ], - [ - "▁", - "DEFAULT" - ], - [ - "▁philosoph", - "y" - ], - [ - "▁Lar", - "avel" - ], - [ - "▁al", - "ignment" - ], - [ - "▁align", - "ment" - ], - [ - "E", - "V" - ], - [ - "e", - "or" - ], - [ - "▁d", - "zie" - ], - [ - "▁dz", - "ie" - ], - [ - "▁", - "dzie" - ], - [ - "▁m", - "est" - ], - [ - "▁me", - "st" - ], - [ - "▁mes", - "t" - ], - [ - "▁I", - "o" - ], - [ - "CR", - "E" - ], - [ - "C", - "RE" - ], - [ - "з", - "ви" - ], - [ - "▁M", - "edic" - ], - [ - "▁Me", - "dic" - ], - [ - "▁Med", - "ic" - ], - [ - "▁Medi", - "c" - ], - [ - "▁n", - "ä" - ], - [ - "▁z", - "ab" - ], - [ - "▁za", - "b" - ], - [ - "▁S", - "lov" - ], - [ - "▁Sl", - "ov" - ], - [ - "▁Slo", - "v" - ], - [ - "ut", - "lich" - ], - [ - "▁am", - "plit" - ], - [ - "▁ampl", - "it" - ], - [ - "▁amp", - "lit" - ], - [ - "▁Fran", - "kreich" - ], - [ - "▁Frank", - "reich" - ], - [ - "▁к", - "іль" - ], - [ - "▁кі", - "ль" - ], - [ - "IN", - "D" - ], - [ - "I", - "ND" - ], - [ - "exec", - "ution" - ], - [ - "▁Kar", - "riere" - ], - [ - "d", - "ostęp" - ], - [ - "▁r", - "éal" - ], - [ - "▁ré", - "al" - ], - [ - "en", - "go" - ], - [ - "eng", - "o" - ], - [ - "▁se", - "vere" - ], - [ - "▁sever", - "e" - ], - [ - "зм", - "а" - ], - [ - "з", - "ма" - ], - [ - "▁тур", - "ни" - ], - [ - "▁C", - "arter" - ], - [ - "▁Car", - "ter" - ], - [ - "▁Cart", - "er" - ], - [ - "▁Rob", - "inson" - ], - [ - "▁Robin", - "son" - ], - [ - "getElement", - "sBy" - ], - [ - "▁pro", - "totype" - ], - [ - "▁proto", - "type" - ], - [ - "▁", - "prototype" - ], - [ - "▁jap", - "on" - ], - [ - "▁ja", - "pon" - ], - [ - "führ", - "ung" - ], - [ - "f", - "ührung" - ], - [ - "▁con", - "segu" - ], - [ - "▁cons", - "egu" - ], - [ - "▁conse", - "gu" - ], - [ - "▁st", - "udi" - ], - [ - "▁stud", - "i" - ], - [ - "▁l", - "ire" - ], - [ - "▁li", - "re" - ], - [ - "▁", - "lire" - ], - [ - "▁sch", - "ließ" - ], - [ - "▁", - "schließ" - ], - [ - "▁B", - "uff" - ], - [ - "▁Bu", - "ff" - ], - [ - "▁red", - "und" - ], - [ - "▁redu", - "nd" - ], - [ - "▁e", - "rn" - ], - [ - "▁er", - "n" - ], - [ - "▁", - "ern" - ], - [ - "▁my", - "ster" - ], - [ - "▁myst", - "er" - ], - [ - "▁prop", - "rio" - ], - [ - "▁propri", - "o" - ], - [ - "ate", - "ful" - ], - [ - "▁Par", - "ent" - ], - [ - "▁Pa", - "rent" - ], - [ - "▁", - "Parent" - ], - [ - "▁lad", - "ies" - ], - [ - "ra", - "ck" - ], - [ - "rac", - "k" - ], - [ - "r", - "ack" - ], - [ - "ти", - "ка" - ], - [ - "тик", - "а" - ], - [ - "en", - "burg" - ], - [ - "▁каче", - "стве" - ], - [ - "▁E", - "F" - ], - [ - "▁", - "EF" - ], - [ - "▁st", - "am" - ], - [ - "▁sta", - "m" - ], - [ - "▁nue", - "va" - ], - [ - "▁fil", - "tered" - ], - [ - "▁filter", - "ed" - ], - [ - "re", - "ten" - ], - [ - "ret", - "en" - ], - [ - "r", - "eten" - ], - [ - "▁I", - "an" - ], - [ - "▁Matt", - "hew" - ], - [ - "▁Matth", - "ew" - ], - [ - "ki", - "h" - ], - [ - "k", - "ih" - ], - [ - "▁", - "ő" - ], - [ - "▁ком", - "пози" - ], - [ - "▁for", - "ever" - ], - [ - "▁fore", - "ver" - ], - [ - "oir", - "es" - ], - [ - "oi", - "res" - ], - [ - "oire", - "s" - ], - [ - "o", - "ires" - ], - [ - ":\\", - "\\" - ], - [ - ":", - "\\\\" - ], - [ - "▁ét", - "udes" - ], - [ - "▁s", - "oup" - ], - [ - "▁so", - "up" - ], - [ - "▁sou", - "p" - ], - [ - "▁p", - "leased" - ], - [ - "▁please", - "d" - ], - [ - "▁ple", - "ased" - ], - [ - ")}", - "(" - ], - [ - ")", - "}(" - ], - [ - "▁S", - "top" - ], - [ - "▁St", - "op" - ], - [ - "▁Sto", - "p" - ], - [ - "▁", - "Stop" - ], - [ - "Set", - "ter" - ], - [ - "S", - "etter" - ], - [ - "▁He", - "lp" - ], - [ - "▁Hel", - "p" - ], - [ - "▁", - "Help" - ], - [ - "▁b", - "ars" - ], - [ - "▁bar", - "s" - ], - [ - "▁ba", - "rs" - ], - [ - "▁", - "bars" - ], - [ - "▁ER", - "R" - ], - [ - "▁", - "ERR" - ], - [ - "▁(", - "?" - ], - [ - "▁", - "(?" - ], - [ - "▁po", - "etry" - ], - [ - "▁poet", - "ry" - ], - [ - "▁U", - "til" - ], - [ - "▁Ut", - "il" - ], - [ - "▁", - "Util" - ], - [ - "A", - "K" - ], - [ - "▁f", - "ick" - ], - [ - "▁fi", - "ck" - ], - [ - "▁fic", - "k" - ], - [ - "▁I", - "M" - ], - [ - "▁", - "IM" - ], - [ - "▁pro", - "ud" - ], - [ - "▁pr", - "oud" - ], - [ - "но", - "си" - ], - [ - "нос", - "и" - ], - [ - "▁m", - "uerte" - ], - [ - "▁mu", - "erte" - ], - [ - "▁Palmar", - "ès" - ], - [ - "▁N", - "as" - ], - [ - "▁Na", - "s" - ], - [ - "щи", - "х" - ], - [ - "щ", - "их" - ], - [ - "▁qu", - "er" - ], - [ - "▁que", - "r" - ], - [ - "▁q", - "uer" - ], - [ - "▁", - "quer" - ], - [ - "▁a", - "penas" - ], - [ - "▁ap", - "enas" - ], - [ - "][", - "'" - ], - [ - "]", - "['" - ], - [ - "▁Kon", - "st" - ], - [ - "по", - "н" - ], - [ - "п", - "он" - ], - [ - "▁Sch", - "iff" - ], - [ - "▁m", - "p" - ], - [ - "▁", - "mp" - ], - [ - "▁б", - "лаго" - ], - [ - "fr", - "am" - ], - [ - "fra", - "m" - ], - [ - "f", - "ram" - ], - [ - "▁house", - "hold" - ], - [ - "▁t", - "ract" - ], - [ - "▁tr", - "act" - ], - [ - "▁tra", - "ct" - ], - [ - "▁trac", - "t" - ], - [ - "enc", - "oding" - ], - [ - "▁und", - "ert" - ], - [ - "▁under", - "t" - ], - [ - "▁", - "undert" - ], - [ - "▁A", - "ug" - ], - [ - "▁Au", - "g" - ], - [ - "ов", - "ан" - ], - [ - "ова", - "н" - ], - [ - "о", - "ван" - ], - [ - "▁Ar", - "ten" - ], - [ - "▁Art", - "en" - ], - [ - "▁Arte", - "n" - ], - [ - "▁inv", - "oked" - ], - [ - "▁invoke", - "d" - ], - [ - "▁d", - "ynast" - ], - [ - "▁fle", - "et" - ], - [ - "че", - "ство" - ], - [ - "▁Mur", - "ray" - ], - [ - "▁g", - "ut" - ], - [ - "▁gu", - "t" - ], - [ - "eli", - "hood" - ], - [ - "▁S", - "SH" - ], - [ - "▁SS", - "H" - ], - [ - "от", - "вет" - ], - [ - "▁person", - "ally" - ], - [ - "▁personal", - "ly" - ], - [ - "при", - "я" - ], - [ - "п", - "рия" - ], - [ - "▁fin", - "anci" - ], - [ - "▁finan", - "ci" - ], - [ - "▁Thom", - "pson" - ], - [ - "al", - "u" - ], - [ - "a", - "lu" - ], - [ - "id", - "entity" - ], - [ - "ident", - "ity" - ], - [ - "▁G", - "rab" - ], - [ - "▁Gr", - "ab" - ], - [ - "▁Gra", - "b" - ], - [ - "add", - "le" - ], - [ - "É", - "t" - ], - [ - "▁T", - "ob" - ], - [ - "▁To", - "b" - ], - [ - "▁ver", - "lor" - ], - [ - "▁verl", - "or" - ], - [ - "▁Saint", - "e" - ], - [ - "▁Sa", - "inte" - ], - [ - "▁Sain", - "te" - ], - [ - "▁d", - "op" - ], - [ - "▁do", - "p" - ], - [ - "▁в", - "ере" - ], - [ - "▁ве", - "ре" - ], - [ - "▁вер", - "е" - ], - [ - "__", - "_" - ], - [ - "_", - "__" - ], - [ - "▁prom", - "otion" - ], - [ - "▁-", - "=" - ], - [ - "▁от", - "де" - ], - [ - "▁amb", - "igu" - ], - [ - "▁", - "ambigu" - ], - [ - "OR", - "DER" - ], - [ - "ORD", - "ER" - ], - [ - "▁Comm", - "unic" - ], - [ - "▁Commun", - "ic" - ], - [ - "▁im", - "ply" - ], - [ - "▁imp", - "ly" - ], - [ - "▁impl", - "y" - ], - [ - "on", - "ed" - ], - [ - "one", - "d" - ], - [ - "o", - "ned" - ], - [ - "clud", - "ing" - ], - [ - "▁coll", - "ision" - ], - [ - "▁fragment", - "s" - ], - [ - "▁frag", - "ments" - ], - [ - "script", - "ion" - ], - [ - "scri", - "ption" - ], - [ - "s", - "cription" - ], - [ - "▁'", - "{" - ], - [ - "ля", - "х" - ], - [ - "л", - "ях" - ], - [ - "▁h", - "ans" - ], - [ - "▁ha", - "ns" - ], - [ - "▁han", - "s" - ], - [ - "у", - "с" - ], - [ - "wi", - "re" - ], - [ - "w", - "ire" - ], - [ - "name", - "space" - ], - [ - "names", - "pace" - ], - [ - "▁s", - "word" - ], - [ - "▁sw", - "ord" - ], - [ - "▁swo", - "rd" - ], - [ - "ref", - "resh" - ], - [ - "▁kw", - "am" - ], - [ - "z", - "s" - ], - [ - "comm", - "ons" - ], - [ - "common", - "s" - ], - [ - "▁c", - "osa" - ], - [ - "▁co", - "sa" - ], - [ - "▁cos", - "a" - ], - [ - "▁reg", - "ime" - ], - [ - "gr", - "ep" - ], - [ - "gre", - "p" - ], - [ - "g", - "rep" - ], - [ - "▁di", - "oc" - ], - [ - "▁dio", - "c" - ], - [ - "▁Cont", - "act" - ], - [ - "▁", - "Contact" - ], - [ - "▁est", - "as" - ], - [ - "▁esta", - "s" - ], - [ - "▁Ste", - "wart" - ], - [ - "▁v", - "iele" - ], - [ - "▁vi", - "ele" - ], - [ - "▁vie", - "le" - ], - [ - "▁viel", - "e" - ], - [ - "то", - "ва" - ], - [ - "тов", - "а" - ], - [ - "т", - "ова" - ], - [ - "▁R", - "an" - ], - [ - "▁Ra", - "n" - ], - [ - "an", - "nes" - ], - [ - "ann", - "es" - ], - [ - "anne", - "s" - ], - [ - "id", - "ay" - ], - [ - "ida", - "y" - ], - [ - "i", - "day" - ], - [ - "▁s", - "napshot" - ], - [ - "▁snap", - "shot" - ], - [ - "or", - "row" - ], - [ - "orr", - "ow" - ], - [ - "▁za", - "č" - ], - [ - "▁участи", - "е" - ], - [ - "▁prom", - "ised" - ], - [ - "▁promise", - "d" - ], - [ - "Ass", - "embly" - ], - [ - "▁champion", - "ship" - ], - [ - "▁champions", - "hip" - ], - [ - "▁Def", - "ine" - ], - [ - "▁e", - "ren" - ], - [ - "▁er", - "en" - ], - [ - "▁ere", - "n" - ], - [ - "▁", - "eren" - ], - [ - "▁но", - "во" - ], - [ - "▁н", - "ово" - ], - [ - "▁нов", - "о" - ], - [ - "▁", - "ново" - ], - [ - "▁th", - "inks" - ], - [ - "▁think", - "s" - ], - [ - "▁thin", - "ks" - ], - [ - "Ag", - "e" - ], - [ - "A", - "ge" - ], - [ - "▁g", - "ev" - ], - [ - "▁ge", - "v" - ], - [ - "var", - "char" - ], - [ - "v", - "archar" - ], - [ - "iv", - "ità" - ], - [ - "com", - "pos" - ], - [ - "comp", - "os" - ], - [ - "▁M", - "utter" - ], - [ - "▁Mut", - "ter" - ], - [ - "CO", - "NT" - ], - [ - "CON", - "T" - ], - [ - "arm", - "ée" - ], - [ - "ag", - "net" - ], - [ - "agn", - "et" - ], - [ - "agne", - "t" - ], - [ - "▁B", - "row" - ], - [ - "▁Br", - "ow" - ], - [ - "▁Bro", - "w" - ], - [ - ".", - "—" - ], - [ - "▁Tele", - "vision" - ], - [ - "▁Д", - "ля" - ], - [ - "▁v", - "m" - ], - [ - "▁", - "vm" - ], - [ - "▁or", - "din" - ], - [ - "▁ord", - "in" - ], - [ - "▁", - "ordin" - ], - [ - "▁Миха", - "й" - ], - [ - "▁apro", - "xim" - ], - [ - "')", - "->" - ], - [ - "'", - ")->" - ], - [ - "▁z", - "oo" - ], - [ - "▁zo", - "o" - ], - [ - "ip", - "pi" - ], - [ - "ipp", - "i" - ], - [ - "i", - "ppi" - ], - [ - "▁s", - "ino" - ], - [ - "▁si", - "no" - ], - [ - "▁sin", - "o" - ], - [ - "▁Qu", - "ébec" - ], - [ - "ra", - "ges" - ], - [ - "rag", - "es" - ], - [ - "rage", - "s" - ], - [ - "r", - "ages" - ], - [ - "ä", - "ck" - ], - [ - "ei", - "ng" - ], - [ - "ein", - "g" - ], - [ - "e", - "ing" - ], - [ - "ar", - "lo" - ], - [ - "pi", - "os" - ], - [ - "pio", - "s" - ], - [ - "p", - "ios" - ], - [ - "▁C", - "han" - ], - [ - "▁Ch", - "an" - ], - [ - "▁Cha", - "n" - ], - [ - "▁el", - "li" - ], - [ - "▁ell", - "i" - ], - [ - "▁", - "elli" - ], - [ - "▁in", - "cons" - ], - [ - "▁inc", - "ons" - ], - [ - "▁incon", - "s" - ], - [ - "gest", - "ellt" - ], - [ - "g", - "estellt" - ], - [ - "pp", - "ers" - ], - [ - "pper", - "s" - ], - [ - "ppe", - "rs" - ], - [ - "p", - "pers" - ], - [ - "Je", - "an" - ], - [ - "anst", - "alt" - ], - [ - "▁D", - "ance" - ], - [ - "▁Dan", - "ce" - ], - [ - "▁to", - "en" - ], - [ - "▁toe", - "n" - ], - [ - "▁de", - "cis" - ], - [ - "▁dec", - "is" - ], - [ - "▁Ре", - "зу" - ], - [ - "▁official", - "ly" - ], - [ - "▁offici", - "ally" - ], - [ - "ät", - "ze" - ], - [ - "ätz", - "e" - ], - [ - "▁до", - "ро" - ], - [ - "▁e", - "numer" - ], - [ - "▁en", - "umer" - ], - [ - "▁enum", - "er" - ], - [ - "▁trois", - "ième" - ], - [ - "ty", - "p" - ], - [ - "t", - "yp" - ], - [ - "of", - "fs" - ], - [ - "off", - "s" - ], - [ - "бо", - "ль" - ], - [ - "od", - "n" - ], - [ - "o", - "dn" - ], - [ - "▁Z", - "ar" - ], - [ - "▁Za", - "r" - ], - [ - "▁дру", - "го" - ], - [ - "qu", - "ia" - ], - [ - "qui", - "a" - ], - [ - "▁Nicol", - "as" - ], - [ - "▁Nic", - "olas" - ], - [ - "▁Nicola", - "s" - ], - [ - "пи", - "су" - ], - [ - "пис", - "у" - ], - [ - "▁m", - "ob" - ], - [ - "▁mo", - "b" - ], - [ - "pa", - "ces" - ], - [ - "pace", - "s" - ], - [ - "p", - "aces" - ], - [ - "нь", - "ого" - ], - [ - "ньо", - "го" - ], - [ - "Al", - "g" - ], - [ - "A", - "lg" - ], - [ - "éro", - "ï" - ], - [ - "Error", - "s" - ], - [ - "Err", - "ors" - ], - [ - "▁г", - "ре" - ], - [ - "▁", - "гре" - ], - [ - "▁жен", - "щи" - ], - [ - "in", - "ch" - ], - [ - "inc", - "h" - ], - [ - "▁Kore", - "an" - ], - [ - "▁Korea", - "n" - ], - [ - "▁A", - "post" - ], - [ - "▁Ap", - "ost" - ], - [ - "▁L", - "iver" - ], - [ - "▁Li", - "ver" - ], - [ - "▁Live", - "r" - ], - [ - "▁Liv", - "er" - ], - [ - "▁element", - "ary" - ], - [ - "▁D", - "I" - ], - [ - "▁", - "DI" - ], - [ - "ви", - "си" - ], - [ - "▁so", - "il" - ], - [ - "▁D", - "LL" - ], - [ - "▁r", - "isp" - ], - [ - "▁ris", - "p" - ], - [ - "▁ri", - "sp" - ], - [ - "▁Sh", - "akespe" - ], - [ - "▁G", - "aussian" - ], - [ - "▁K", - "urt" - ], - [ - "▁Kur", - "t" - ], - [ - "▁Ku", - "rt" - ], - [ - "Ver", - "tex" - ], - [ - "Vert", - "ex" - ], - [ - "eb", - "ol" - ], - [ - "e", - "bol" - ], - [ - "organ", - "isation" - ], - [ - "är", - "en" - ], - [ - "äre", - "n" - ], - [ - "ä", - "ren" - ], - [ - "▁Y", - "ES" - ], - [ - "▁", - "YES" - ], - [ - "C", - "UR" - ], - [ - "▁нача", - "ль" - ], - [ - "▁по", - "стро" - ], - [ - "▁пос", - "тро" - ], - [ - "▁Lu", - "igi" - ], - [ - "▁c", - "aching" - ], - [ - "prevent", - "Default" - ], - [ - "am", - "d" - ], - [ - "a", - "md" - ], - [ - "▁V", - "it" - ], - [ - "▁Vi", - "t" - ], - [ - "sub", - "st" - ], - [ - "su", - "bst" - ], - [ - "▁ст", - "рои" - ], - [ - "▁C", - "ampion" - ], - [ - "▁Camp", - "ion" - ], - [ - "ch", - "r" - ], - [ - "c", - "hr" - ], - [ - "фе", - "ре" - ], - [ - "фер", - "е" - ], - [ - "ф", - "ере" - ], - [ - "▁С", - "писок" - ], - [ - "N", - "F" - ], - [ - "▁c", - "ím" - ], - [ - "▁cí", - "m" - ], - [ - "▁h", - "é" - ], - [ - "▁", - "hé" - ], - [ - "re", - "bbe" - ], - [ - "reb", - "be" - ], - [ - "oc", - "y" - ], - [ - "o", - "cy" - ], - [ - "be", - "low" - ], - [ - "bel", - "ow" - ], - [ - "▁by", - "lo" - ], - [ - "▁byl", - "o" - ], - [ - "▁У", - "и" - ], - [ - "▁\\", - "({\\" - ], - [ - "▁\\(", - "{\\" - ], - [ - "▁`", - ":" - ], - [ - "▁", - "`:" - ], - [ - "gi", - "ore" - ], - [ - "gio", - "re" - ], - [ - "gior", - "e" - ], - [ - "g", - "iore" - ], - [ - "Sa", - "n" - ], - [ - "S", - "an" - ], - [ - "▁G", - "ate" - ], - [ - "▁Ga", - "te" - ], - [ - "▁в", - "с" - ], - [ - "▁o", - "limp" - ], - [ - "▁ol", - "imp" - ], - [ - "▁Mat", - "rix" - ], - [ - "▁", - "Matrix" - ], - [ - "▁he", - "aring" - ], - [ - "▁hear", - "ing" - ], - [ - "ri", - "i" - ], - [ - "r", - "ii" - ], - [ - "tf", - "rac" - ], - [ - "t", - "frac" - ], - [ - "▁allem", - "and" - ], - [ - "▁V", - "ue" - ], - [ - "л", - "н" - ], - [ - "▁comp", - "iling" - ], - [ - "▁E", - "ns" - ], - [ - "▁En", - "s" - ], - [ - "▁investig", - "ation" - ], - [ - "▁A", - "x" - ], - [ - "▁ch", - "ars" - ], - [ - "▁char", - "s" - ], - [ - "▁cha", - "rs" - ], - [ - "▁target", - "s" - ], - [ - "▁tar", - "gets" - ], - [ - "▁l", - "oud" - ], - [ - "▁lo", - "ud" - ], - [ - "us", - "ement" - ], - [ - "use", - "ment" - ], - [ - "▁N", - "ether" - ], - [ - "▁Ne", - "ther" - ], - [ - "▁Net", - "her" - ], - [ - "com", - "merce" - ], - [ - "IG", - "HT" - ], - [ - "oc", - "oa" - ], - [ - "oco", - "a" - ], - [ - "if", - "ecycle" - ], - [ - "ife", - "cycle" - ], - [ - "▁Le", - "o" - ], - [ - "pr", - "iv" - ], - [ - "p", - "riv" - ], - [ - "▁go", - "ods" - ], - [ - "▁good", - "s" - ], - [ - "ad", - "amente" - ], - [ - "ada", - "mente" - ], - [ - "A", - "ustral" - ], - [ - "▁re", - "boot" - ], - [ - "▁reb", - "oot" - ], - [ - "Ge", - "st" - ], - [ - "G", - "est" - ], - [ - "▁represent", - "ations" - ], - [ - "▁representation", - "s" - ], - [ - "ce", - "u" - ], - [ - "c", - "eu" - ], - [ - "▁do", - "ctrine" - ], - [ - "ce", - "rs" - ], - [ - "cer", - "s" - ], - [ - "c", - "ers" - ], - [ - "▁K", - "rak" - ], - [ - "▁Kr", - "ak" - ], - [ - "▁Kra", - "k" - ], - [ - "▁adv", - "oc" - ], - [ - "▁squad", - "ra" - ], - [ - "▁arbeit", - "ete" - ], - [ - "üs", - "t" - ], - [ - "ü", - "st" - ], - [ - "▁p", - "ill" - ], - [ - "▁pi", - "ll" - ], - [ - "▁pil", - "l" - ], - [ - "An", - "swer" - ], - [ - "▁к", - "віт" - ], - [ - "▁W", - "a" - ], - [ - "um", - "ann" - ], - [ - "uman", - "n" - ], - [ - "uma", - "nn" - ], - [ - "u", - "mann" - ], - [ - "▁D", - "ynam" - ], - [ - "▁Dy", - "nam" - ], - [ - "Fa", - "mil" - ], - [ - "F", - "amil" - ], - [ - "▁t", - "ennis" - ], - [ - "▁ten", - "nis" - ], - [ - "▁Engine", - "ering" - ], - [ - "▁circ", - "les" - ], - [ - "▁cir", - "cles" - ], - [ - "▁circle", - "s" - ], - [ - "▁Mary", - "land" - ], - [ - "▁b", - "esta" - ], - [ - "▁be", - "sta" - ], - [ - "▁best", - "a" - ], - [ - "▁bes", - "ta" - ], - [ - "▁b", - "ases" - ], - [ - "▁bas", - "es" - ], - [ - "▁base", - "s" - ], - [ - "▁znaj", - "du" - ], - [ - "ктор", - "а" - ], - [ - "кто", - "ра" - ], - [ - "к", - "тора" - ], - [ - "▁ar", - "rest" - ], - [ - "▁arr", - "est" - ], - [ - "ле", - "р" - ], - [ - "л", - "ер" - ], - [ - "▁G", - "ia" - ], - [ - "▁Gi", - "a" - ], - [ - "▁remark", - "able" - ], - [ - "▁мо", - "гу" - ], - [ - "▁Sup", - "reme" - ], - [ - "▁`", - "%" - ], - [ - "do", - "r" - ], - [ - "d", - "or" - ], - [ - "▁au", - "jourd" - ], - [ - "▁w", - "is" - ], - [ - "WID", - "TH" - ], - [ - "▁mis", - "ma" - ], - [ - "▁mism", - "a" - ], - [ - "▁fl", - "uid" - ], - [ - "▁flu", - "id" - ], - [ - "▁pet", - "ite" - ], - [ - "▁petit", - "e" - ], - [ - "▁T", - "ow" - ], - [ - "▁To", - "w" - ], - [ - "Reg", - "istry" - ], - [ - "em", - "ed" - ], - [ - "eme", - "d" - ], - [ - "e", - "med" - ], - [ - "▁Wis", - "consin" - ], - [ - "▁R", - "acing" - ], - [ - "▁Ra", - "cing" - ], - [ - "▁reg", - "istration" - ], - [ - "▁registr", - "ation" - ], - [ - "/", - "%" - ], - [ - "th", - "ird" - ], - [ - "▁mon", - "uments" - ], - [ - "▁monument", - "s" - ], - [ - "че", - "й" - ], - [ - "ч", - "ей" - ], - [ - "▁j", - "et" - ], - [ - "▁je", - "t" - ], - [ - "▁", - "jet" - ], - [ - "▁Ur", - "ban" - ], - [ - "ál", - "va" - ], - [ - "▁mil", - "ieu" - ], - [ - "▁poss", - "ess" - ], - [ - "▁g", - "erm" - ], - [ - "▁ge", - "rm" - ], - [ - "▁ger", - "m" - ], - [ - "dep", - "endencies" - ], - [ - "▁enem", - "ies" - ], - [ - "▁s", - "amen" - ], - [ - "▁sa", - "men" - ], - [ - "▁same", - "n" - ], - [ - "▁sam", - "en" - ], - [ - "▁W", - "erner" - ], - [ - "▁Wer", - "ner" - ], - [ - "▁h", - "izo" - ], - [ - "▁hi", - "zo" - ], - [ - "▁t", - "d" - ], - [ - "▁", - "td" - ], - [ - "▁y", - "esterday" - ], - [ - "▁А", - "д" - ], - [ - "▁ha", - "sn" - ], - [ - "▁has", - "n" - ], - [ - "cel", - "lation" - ], - [ - "cell", - "ation" - ], - [ - "ov", - "ání" - ], - [ - "ová", - "ní" - ], - [ - "li", - "ka" - ], - [ - "lik", - "a" - ], - [ - "l", - "ika" - ], - [ - "We", - "ek" - ], - [ - "▁I", - "ng" - ], - [ - "▁In", - "g" - ], - [ - "▁E", - "mail" - ], - [ - "▁Em", - "ail" - ], - [ - "▁", - "Email" - ], - [ - "▁m", - "ètres" - ], - [ - "▁O", - "CLC" - ], - [ - "▁among", - "st" - ], - [ - "▁spl", - "end" - ], - [ - "fu", - "r" - ], - [ - "f", - "ur" - ], - [ - "ant", - "ics" - ], - [ - "anti", - "cs" - ], - [ - "antic", - "s" - ], - [ - "▁X", - "XX" - ], - [ - "▁XX", - "X" - ], - [ - "▁", - "XXX" - ], - [ - "▁груп", - "пы" - ], - [ - "la", - "ch" - ], - [ - "lac", - "h" - ], - [ - "l", - "ach" - ], - [ - "▁c", - "ousin" - ], - [ - "▁cou", - "sin" - ], - [ - "▁in", - "variant" - ], - [ - "▁invari", - "ant" - ], - [ - "ђ", - "у" - ], - [ - "▁Be", - "ispiel" - ], - [ - "▁Bei", - "spiel" - ], - [ - "▁hard", - "er" - ], - [ - "▁har", - "der" - ], - [ - "▁b", - "ell" - ], - [ - "▁be", - "ll" - ], - [ - "▁bel", - "l" - ], - [ - "▁", - "bell" - ], - [ - "▁or", - "ch" - ], - [ - "▁", - "orch" - ], - [ - "t", - "b" - ], - [ - "Foot", - "note" - ], - [ - "re", - "gon" - ], - [ - "reg", - "on" - ], - [ - "Mart", - "in" - ], - [ - "▁in", - "con" - ], - [ - "▁inc", - "on" - ], - [ - "▁attack", - "ed" - ], - [ - "_{", - "-" - ], - [ - "_", - "{-" - ], - [ - "▁T", - "ras" - ], - [ - "▁Tr", - "as" - ], - [ - "▁Tra", - "s" - ], - [ - "par", - "ty" - ], - [ - "part", - "y" - ], - [ - "ite", - "it" - ], - [ - "▁s", - "aint" - ], - [ - "▁sa", - "int" - ], - [ - "▁sain", - "t" - ], - [ - "rás", - "ok" - ], - [ - "r", - "ások" - ], - [ - "▁contain", - "ers" - ], - [ - "▁container", - "s" - ], - [ - "M", - "o" - ], - [ - "▁S", - "n" - ], - [ - "quant", - "ity" - ], - [ - "▁r", - "as" - ], - [ - "▁ra", - "s" - ], - [ - "▁", - "ras" - ], - [ - "▁C", - "anal" - ], - [ - "▁Can", - "al" - ], - [ - "▁Ca", - "nal" - ], - [ - "cc", - "ion" - ], - [ - "c", - "cion" - ], - [ - "uv", - "o" - ], - [ - "u", - "vo" - ], - [ - "▁i", - "dx" - ], - [ - "▁id", - "x" - ], - [ - "▁", - "idx" - ], - [ - "type", - "name" - ], - [ - "typen", - "ame" - ], - [ - "typ", - "ename" - ], - [ - "▁R", - "ugby" - ], - [ - "▁Se", - "ems" - ], - [ - "▁See", - "ms" - ], - [ - "▁trans", - "mit" - ], - [ - "▁transm", - "it" - ], - [ - "▁Pr", - "äsident" - ], - [ - "з", - "не" - ], - [ - "▁B", - "aker" - ], - [ - "▁Ba", - "ker" - ], - [ - "▁Bak", - "er" - ], - [ - "in", - "th" - ], - [ - "int", - "h" - ], - [ - "i", - "nth" - ], - [ - "▁tö", - "bb" - ], - [ - "ver", - "ein" - ], - [ - "vere", - "in" - ], - [ - "▁espe", - "cie" - ], - [ - "▁espec", - "ie" - ], - [ - ",", - "(" - ], - [ - "▁t", - "éc" - ], - [ - "▁té", - "c" - ], - [ - "▁W", - "ITH" - ], - [ - "▁u", - "nos" - ], - [ - "▁un", - "os" - ], - [ - "▁uno", - "s" - ], - [ - "▁", - "unos" - ], - [ - "▁polit", - "ics" - ], - [ - "create", - "Element" - ], - [ - "▁st", - "ats" - ], - [ - "▁stat", - "s" - ], - [ - "▁sta", - "ts" - ], - [ - "▁", - "stats" - ], - [ - "▁T", - "ennessee" - ], - [ - "▁Bedeut", - "ung" - ], - [ - "▁S", - "creen" - ], - [ - "▁Sc", - "reen" - ], - [ - "▁", - "Screen" - ], - [ - "▁Stra", - "ße" - ], - [ - "an", - "ze" - ], - [ - "anz", - "e" - ], - [ - "▁part", - "ly" - ], - [ - "man", - "uel" - ], - [ - "ol", - "ation" - ], - [ - "ola", - "tion" - ], - [ - "o", - "lation" - ], - [ - "hor", - "izontal" - ], - [ - "érie", - "ure" - ], - [ - "érieur", - "e" - ], - [ - "am", - "pio" - ], - [ - "amp", - "io" - ], - [ - "▁ст", - "рук" - ], - [ - "▁", - "струк" - ], - [ - "We", - "ight" - ], - [ - "La", - "nd" - ], - [ - "L", - "and" - ], - [ - "po", - "ly" - ], - [ - "pol", - "y" - ], - [ - "p", - "oly" - ], - [ - "▁D", - "ak" - ], - [ - "▁Da", - "k" - ], - [ - "▁Ass", - "ume" - ], - [ - "\".", - "$" - ], - [ - "\"", - ".$" - ], - [ - "▁c", - "asi" - ], - [ - "▁cas", - "i" - ], - [ - "▁ca", - "si" - ], - [ - "▁g", - "ross" - ], - [ - "▁gr", - "oss" - ], - [ - "▁gro", - "ss" - ], - [ - "▁gros", - "s" - ], - [ - "▁ent", - "ertain" - ], - [ - "▁enter", - "tain" - ], - [ - "▁déc", - "ada" - ], - [ - "'.", - "$" - ], - [ - "'", - ".$" - ], - [ - "en", - "cer" - ], - [ - "ence", - "r" - ], - [ - "enc", - "er" - ], - [ - "▁guarante", - "ed" - ], - [ - "▁guarantee", - "d" - ], - [ - "]$", - "." - ], - [ - "]", - "$." - ], - [ - "ли", - "ся" - ], - [ - "▁accept", - "able" - ], - [ - "ra", - "ise" - ], - [ - "rai", - "se" - ], - [ - "rais", - "e" - ], - [ - "ir", - "us" - ], - [ - "i", - "rus" - ], - [ - "we", - "it" - ], - [ - "wei", - "t" - ], - [ - "▁А", - "на" - ], - [ - "▁Ан", - "а" - ], - [ - "▁h", - "ills" - ], - [ - "▁hill", - "s" - ], - [ - "ip", - "age" - ], - [ - "i", - "page" - ], - [ - "BI", - "T" - ], - [ - "B", - "IT" - ], - [ - "▁nu", - "cle" - ], - [ - "▁nuc", - "le" - ], - [ - "▁ut", - "ilis" - ], - [ - "▁util", - "is" - ], - [ - "CA", - "A" - ], - [ - "C", - "AA" - ], - [ - "ène", - "s" - ], - [ - "èn", - "es" - ], - [ - "è", - "nes" - ], - [ - "▁Schwe", - "iz" - ], - [ - "▁A", - "A" - ], - [ - "▁", - "AA" - ], - [ - "ning", - "er" - ], - [ - "n", - "inger" - ], - [ - "▁b", - "ands" - ], - [ - "▁band", - "s" - ], - [ - "▁ban", - "ds" - ], - [ - "▁t", - "ender" - ], - [ - "▁te", - "nder" - ], - [ - "▁ten", - "der" - ], - [ - "▁tend", - "er" - ], - [ - "so", - "m" - ], - [ - "s", - "om" - ], - [ - "W", - "arning" - ], - [ - "▁B", - "ischof" - ], - [ - "▁A", - "rc" - ], - [ - "▁Ar", - "c" - ], - [ - "▁W", - "oman" - ], - [ - "▁Wo", - "man" - ], - [ - "▁trans", - "mission" - ], - [ - "▁transm", - "ission" - ], - [ - "ч", - "ни" - ], - [ - "is", - "tre" - ], - [ - "ist", - "re" - ], - [ - "istr", - "e" - ], - [ - "i", - "stre" - ], - [ - "B", - "Y" - ], - [ - "▁S", - "I" - ], - [ - "▁", - "SI" - ], - [ - "▁П", - "ар" - ], - [ - "▁Па", - "р" - ], - [ - "▁}", - ")." - ], - [ - "▁})", - "." - ], - [ - "▁", - "})." - ], - [ - "▁present", - "a" - ], - [ - "▁pres", - "enta" - ], - [ - "▁Re", - "né" - ], - [ - "▁Ren", - "é" - ], - [ - "▁happ", - "iness" - ], - [ - "▁P", - "unk" - ], - [ - "col", - "s" - ], - [ - "co", - "ls" - ], - [ - "c", - "ols" - ], - [ - "▁Des", - "de" - ], - [ - "рё", - "х" - ], - [ - "▁м", - "она" - ], - [ - "▁мо", - "на" - ], - [ - "▁scr", - "atch" - ], - [ - "▁t", - "cp" - ], - [ - "▁", - "tcp" - ], - [ - "ête", - "s" - ], - [ - "êt", - "es" - ], - [ - "ê", - "tes" - ], - [ - "it", - "ated" - ], - [ - "ita", - "ted" - ], - [ - "itat", - "ed" - ], - [ - "itate", - "d" - ], - [ - "▁dif", - "eren" - ], - [ - "▁difer", - "en" - ], - [ - "ge", - "h" - ], - [ - "g", - "eh" - ], - [ - "na", - "hmen" - ], - [ - "nah", - "men" - ], - [ - "nahme", - "n" - ], - [ - "nahm", - "en" - ], - [ - "П", - "е" - ], - [ - "ck", - "i" - ], - [ - "c", - "ki" - ], - [ - "▁Te", - "atro" - ], - [ - "▁Re", - "member" - ], - [ - "▁Rem", - "ember" - ], - [ - "▁f", - "right" - ], - [ - "▁fr", - "ight" - ], - [ - "▁Y", - "am" - ], - [ - "▁Ya", - "m" - ], - [ - "west", - "ern" - ], - [ - "le", - "ted" - ], - [ - "let", - "ed" - ], - [ - "lete", - "d" - ], - [ - "▁в", - "стре" - ], - [ - "▁вс", - "тре" - ], - [ - "▁telep", - "ülés" - ], - [ - "зи", - "н" - ], - [ - "з", - "ин" - ], - [ - "▁Qu", - "ant" - ], - [ - "▁", - "Quant" - ], - [ - "▁su", - "pre" - ], - [ - "▁sup", - "re" - ], - [ - "áj", - "a" - ], - [ - "á", - "ja" - ], - [ - "ді", - "я" - ], - [ - "д", - "ія" - ], - [ - "▁car", - "rera" - ], - [ - "▁carre", - "ra" - ], - [ - "kre", - "t" - ], - [ - "kr", - "et" - ], - [ - "k", - "ret" - ], - [ - "par", - "a" - ], - [ - "pa", - "ra" - ], - [ - "p", - "ara" - ], - [ - "▁S", - "UM" - ], - [ - "▁SU", - "M" - ], - [ - "▁", - "SUM" - ], - [ - "▁p", - "it" - ], - [ - "▁pi", - "t" - ], - [ - "▁", - "pit" - ], - [ - "ź", - "dz" - ], - [ - "é", - "o" - ], - [ - "ре", - "ння" - ], - [ - "рен", - "ня" - ], - [ - "▁C", - "hor" - ], - [ - "▁Ch", - "or" - ], - [ - "▁Cho", - "r" - ], - [ - "▁vo", - "ix" - ], - [ - "▁exec", - "utive" - ], - [ - "▁execut", - "ive" - ], - [ - "▁all", - "erdings" - ], - [ - "May", - "be" - ], - [ - "▁д", - "ень" - ], - [ - "▁де", - "нь" - ], - [ - "▁f", - "lying" - ], - [ - "▁fl", - "ying" - ], - [ - "▁fly", - "ing" - ], - [ - "▁par", - "liament" - ], - [ - "жда", - "н" - ], - [ - "ж", - "дан" - ], - [ - "▁f", - "ram" - ], - [ - "▁fr", - "am" - ], - [ - "▁fra", - "m" - ], - [ - "▁", - "fram" - ], - [ - "▁жов", - "т" - ], - [ - "▁u", - "gly" - ], - [ - "▁бу", - "ду" - ], - [ - "ig", - "ny" - ], - [ - "ign", - "y" - ], - [ - "\\|", - "_{" - ], - [ - "\\", - "|_{" - ], - [ - "▁b", - "itter" - ], - [ - "▁bit", - "ter" - ], - [ - "sc", - "e" - ], - [ - "s", - "ce" - ], - [ - "▁p", - "ole" - ], - [ - "▁po", - "le" - ], - [ - "▁pol", - "e" - ], - [ - "▁", - "pole" - ], - [ - "Ver", - "lag" - ], - [ - "▁total", - "ité" - ], - [ - "▁found", - "ation" - ], - [ - "j", - "t" - ], - [ - "▁s", - "lice" - ], - [ - "▁sl", - "ice" - ], - [ - "▁sli", - "ce" - ], - [ - "▁", - "slice" - ], - [ - "if", - "ique" - ], - [ - "ifi", - "que" - ], - [ - "▁integr", - "ate" - ], - [ - "▁integra", - "te" - ], - [ - "st", - "rij" - ], - [ - "str", - "ij" - ], - [ - "▁asym", - "pt" - ], - [ - "▁е", - "му" - ], - [ - "▁pert", - "urb" - ], - [ - "▁F", - "low" - ], - [ - "▁Fl", - "ow" - ], - [ - "▁Flo", - "w" - ], - [ - "▁", - "Flow" - ], - [ - "jb", - "oss" - ], - [ - "RI", - "G" - ], - [ - "R", - "IG" - ], - [ - "▁A", - "less" - ], - [ - "▁Al", - "ess" - ], - [ - "▁Ale", - "ss" - ], - [ - "XX", - "X" - ], - [ - "X", - "XX" - ], - [ - "▁s", - "umm" - ], - [ - "▁su", - "mm" - ], - [ - "▁sum", - "m" - ], - [ - "sql", - "ite" - ], - [ - "▁che", - "er" - ], - [ - "pr", - "ob" - ], - [ - "pro", - "b" - ], - [ - "p", - "rob" - ], - [ - "▁G", - "PU" - ], - [ - "▁GP", - "U" - ], - [ - "zi", - "ł" - ], - [ - "z", - "ił" - ], - [ - "(*", - ")" - ], - [ - "(", - "*)" - ], - [ - "▁in", - "duct" - ], - [ - "▁ind", - "uct" - ], - [ - "▁indu", - "ct" - ], - [ - "RA", - "Y" - ], - [ - "bl", - "att" - ], - [ - "bla", - "tt" - ], - [ - "qu", - "esta" - ], - [ - "que", - "sta" - ], - [ - "quest", - "a" - ], - [ - "ques", - "ta" - ], - [ - "or", - "u" - ], - [ - "o", - "ru" - ], - [ - "▁In", - "side" - ], - [ - "▁Ins", - "ide" - ], - [ - "▁Mc", - "G" - ], - [ - "▁N", - "ep" - ], - [ - "▁Ne", - "p" - ], - [ - "м", - "п" - ], - [ - "▁in", - "ve" - ], - [ - "▁inv", - "e" - ], - [ - "▁An", - "imal" - ], - [ - "▁Anim", - "al" - ], - [ - "▁s", - "ob" - ], - [ - "▁so", - "b" - ], - [ - "▁", - "sob" - ], - [ - "ít", - "ott" - ], - [ - "loy", - "ment" - ], - [ - "▁b", - "und" - ], - [ - "▁bu", - "nd" - ], - [ - "▁", - "bund" - ], - [ - "St", - "ation" - ], - [ - "Stat", - "ion" - ], - [ - "▁B", - "EGIN" - ], - [ - "▁part", - "iellement" - ], - [ - "ig", - "g" - ], - [ - "i", - "gg" - ], - [ - "est", - "ore" - ], - [ - "esto", - "re" - ], - [ - "e", - "store" - ], - [ - "▁co", - "inc" - ], - [ - "▁coin", - "c" - ], - [ - "▁Som", - "mer" - ], - [ - "▁m", - "d" - ], - [ - "▁", - "md" - ], - [ - "▁loc", - "ked" - ], - [ - "▁lock", - "ed" - ], - [ - "▁", - "locked" - ], - [ - "math", - "char" - ], - [ - "ar", - "ma" - ], - [ - "arm", - "a" - ], - [ - "pe", - "nt" - ], - [ - "pen", - "t" - ], - [ - "p", - "ent" - ], - [ - "ar", - "ium" - ], - [ - "ari", - "um" - ], - [ - "a", - "rium" - ], - [ - "▁e", - "ars" - ], - [ - "▁ear", - "s" - ], - [ - "▁", - "ears" - ], - [ - "▁S", - "ongs" - ], - [ - "▁Son", - "gs" - ], - [ - "▁Song", - "s" - ], - [ - "▁similar", - "ly" - ], - [ - "▁liter", - "ally" - ], - [ - "▁literal", - "ly" - ], - [ - "▁in", - "ches" - ], - [ - "▁inc", - "hes" - ], - [ - "▁af", - "fection" - ], - [ - "▁aff", - "ection" - ], - [ - "▁affect", - "ion" - ], - [ - "l", - "p" - ], - [ - "▁con", - "cluded" - ], - [ - "▁conclude", - "d" - ], - [ - "▁му", - "ніципалі" - ], - [ - "▁па", - "мя" - ], - [ - "est", - "aur" - ], - [ - "esta", - "ur" - ], - [ - "▁J", - "osh" - ], - [ - "▁Jo", - "sh" - ], - [ - "▁Jos", - "h" - ], - [ - "▁F", - "ritz" - ], - [ - "▁Fr", - "itz" - ], - [ - "▁Fri", - "tz" - ], - [ - "DB", - "C" - ], - [ - "D", - "BC" - ], - [ - "д", - "ён" - ], - [ - "pos", - "a" - ], - [ - "po", - "sa" - ], - [ - "p", - "osa" - ], - [ - "▁gold", - "en" - ], - [ - "▁gol", - "den" - ], - [ - "▁p", - "c" - ], - [ - "▁", - "pc" - ], - [ - "▁com", - "te" - ], - [ - "▁Z", - "iel" - ], - [ - "▁Zie", - "l" - ], - [ - "▁prés", - "ente" - ], - [ - "▁présent", - "e" - ], - [ - "mar", - "ks" - ], - [ - "mark", - "s" - ], - [ - "m", - "arks" - ], - [ - "ig", - "neur" - ], - [ - "ign", - "eur" - ], - [ - "igne", - "ur" - ], - [ - "▁D", - "rive" - ], - [ - "▁Dr", - "ive" - ], - [ - "▁neg", - "lect" - ], - [ - "▁roz", - "p" - ], - [ - "▁F", - "ive" - ], - [ - "sp", - "aces" - ], - [ - "space", - "s" - ], - [ - "s", - "paces" - ], - [ - "▁M", - "edi" - ], - [ - "▁Me", - "di" - ], - [ - "▁Med", - "i" - ], - [ - "▁ex", - "isted" - ], - [ - "▁exist", - "ed" - ], - [ - "▁existe", - "d" - ], - [ - "▁by", - "ła" - ], - [ - "▁był", - "a" - ], - [ - "дж", - "и" - ], - [ - "д", - "жи" - ], - [ - "▁fr", - "ente" - ], - [ - "т", - "ник" - ], - [ - "od", - "d" - ], - [ - "o", - "dd" - ], - [ - "▁answer", - "ing" - ], - [ - "bi", - "an" - ], - [ - "bia", - "n" - ], - [ - "b", - "ian" - ], - [ - "▁E", - "ugen" - ], - [ - "▁Eu", - "gen" - ], - [ - "▁Eug", - "en" - ], - [ - "▁Public", - "ations" - ], - [ - "▁Pub", - "lications" - ], - [ - "▁D", - "ia" - ], - [ - "▁Di", - "a" - ], - [ - "l", - "á" - ], - [ - "▁'", - "_" - ], - [ - "▁", - "'_" - ], - [ - "▁rec", - "uper" - ], - [ - "ом", - "у" - ], - [ - "о", - "му" - ], - [ - "▁App", - "end" - ], - [ - "▁Ap", - "pend" - ], - [ - "▁", - "Append" - ], - [ - "ob", - "ar" - ], - [ - "oba", - "r" - ], - [ - "o", - "bar" - ], - [ - "▁employ", - "ees" - ], - [ - "▁employee", - "s" - ], - [ - "▁comp", - "ens" - ], - [ - "eme", - "tery" - ], - [ - "emet", - "ery" - ], - [ - "▁э", - "лект" - ], - [ - "MO", - "N" - ], - [ - "M", - "ON" - ], - [ - "ol", - "in" - ], - [ - "oli", - "n" - ], - [ - "o", - "lin" - ], - [ - "▁histor", - "ic" - ], - [ - "hi", - "s" - ], - [ - "h", - "is" - ], - [ - "ą", - "d" - ], - [ - "n", - "m" - ], - [ - "▁G", - "oth" - ], - [ - "▁Go", - "th" - ], - [ - "▁Got", - "h" - ], - [ - "▁st", - "ress" - ], - [ - "▁str", - "ess" - ], - [ - "▁stre", - "ss" - ], - [ - "▁parte", - "cip" - ], - [ - "▁A", - "w" - ], - [ - "▁s", - "ar" - ], - [ - "▁sa", - "r" - ], - [ - "▁h", - "u" - ], - [ - "▁", - "hu" - ], - [ - "▁mat", - "plotlib" - ], - [ - "▁M", - "yst" - ], - [ - "▁My", - "st" - ], - [ - "▁Mys", - "t" - ], - [ - "()", - ";`" - ], - [ - "();", - "`" - ], - [ - "(", - ");`" - ], - [ - "sch", - "ein" - ], - [ - "sc", - "hein" - ], - [ - "sche", - "in" - ], - [ - "Long", - "rightarrow" - ], - [ - "▁р", - "я" - ], - [ - "▁", - "ря" - ], - [ - "▁Is", - "ra" - ], - [ - "[", - "^" - ], - [ - "no", - "u" - ], - [ - "n", - "ou" - ], - [ - "▁syn", - "d" - ], - [ - "▁sy", - "nd" - ], - [ - "work", - "ing" - ], - [ - "wor", - "king" - ], - [ - "▁N", - "ation" - ], - [ - "▁Na", - "tion" - ], - [ - "▁Nat", - "ion" - ], - [ - "▁P", - "ent" - ], - [ - "▁Pe", - "nt" - ], - [ - "▁Pen", - "t" - ], - [ - "▁k", - "lass" - ], - [ - "▁kl", - "ass" - ], - [ - "▁klas", - "s" - ], - [ - "▁applic", - "able" - ], - [ - "▁D", - "iam" - ], - [ - "▁Di", - "am" - ], - [ - "▁Dia", - "m" - ], - [ - "▁bras", - "ile" - ], - [ - "▁p", - "ac" - ], - [ - "▁pa", - "c" - ], - [ - "▁He", - "ight" - ], - [ - "▁", - "Height" - ], - [ - "P", - "ut" - ], - [ - "▁int", - "ro" - ], - [ - "▁intr", - "o" - ], - [ - "▁", - "intro" - ], - [ - "▁unus", - "ual" - ], - [ - "na", - "s" - ], - [ - "n", - "as" - ], - [ - "▁Geb", - "äude" - ], - [ - "▁be", - "am" - ], - [ - "▁R", - "ect" - ], - [ - "▁Re", - "ct" - ], - [ - "▁Rec", - "t" - ], - [ - "▁", - "Rect" - ], - [ - "▁Prim", - "era" - ], - [ - "▁Prime", - "ra" - ], - [ - "▁h", - "aut" - ], - [ - "▁ha", - "ut" - ], - [ - "▁t", - "rait" - ], - [ - "▁tr", - "ait" - ], - [ - "▁tra", - "it" - ], - [ - "prü", - "ft" - ], - [ - "in", - "ación" - ], - [ - "ina", - "ción" - ], - [ - "▁configuration", - "s" - ], - [ - "▁configur", - "ations" - ], - [ - "▁g", - "ilt" - ], - [ - "▁gi", - "lt" - ], - [ - "▁territ", - "oire" - ], - [ - "he", - "z" - ], - [ - "h", - "ez" - ], - [ - "▁al", - "te" - ], - [ - "▁alt", - "e" - ], - [ - "rel", - "ative" - ], - [ - "Ex", - "cel" - ], - [ - "▁W", - "right" - ], - [ - "G", - "V" - ], - [ - "по", - "ли" - ], - [ - "пол", - "и" - ], - [ - "Qu", - "ant" - ], - [ - "▁ga", - "uge" - ], - [ - "▁gau", - "ge" - ], - [ - "▁multi", - "ply" - ], - [ - "▁multip", - "ly" - ], - [ - "AS", - "S" - ], - [ - "A", - "SS" - ], - [ - "ствен", - "но" - ], - [ - "ан", - "у" - ], - [ - "а", - "ну" - ], - [ - "▁j", - "eden" - ], - [ - "▁je", - "den" - ], - [ - "▁jed", - "en" - ], - [ - "▁liter", - "ary" - ], - [ - "▁D", - "ro" - ], - [ - "▁Dr", - "o" - ], - [ - "▁adv", - "ise" - ], - [ - "▁advis", - "e" - ], - [ - "it", - "zen" - ], - [ - "itz", - "en" - ], - [ - "▁dis", - "ag" - ], - [ - "web", - "site" - ], - [ - "▁д", - "ія" - ], - [ - "▁ді", - "я" - ], - [ - "▁", - "дія" - ], - [ - "▁ob", - "server" - ], - [ - "▁obser", - "ver" - ], - [ - "▁observ", - "er" - ], - [ - "▁observe", - "r" - ], - [ - "▁janu", - "ár" - ], - [ - "v", - "ě" - ], - [ - "ku", - "p" - ], - [ - "k", - "up" - ], - [ - "▁S", - "es" - ], - [ - "▁Se", - "s" - ], - [ - "▁woj", - "ew" - ], - [ - "▁st", - "ages" - ], - [ - "▁stage", - "s" - ], - [ - "▁sta", - "ges" - ], - [ - "▁stag", - "es" - ], - [ - "▁вре", - "мени" - ], - [ - "▁време", - "ни" - ], - [ - "łu", - "ż" - ], - [ - "но", - "с" - ], - [ - "н", - "ос" - ], - [ - "Down", - "load" - ], - [ - "ip", - "o" - ], - [ - "i", - "po" - ], - [ - "▁g", - "raf" - ], - [ - "▁gr", - "af" - ], - [ - "▁gra", - "f" - ], - [ - "▁ро", - "бо" - ], - [ - "▁Nik", - "ol" - ], - [ - "▁Ni", - "kol" - ], - [ - "▁f", - "ic" - ], - [ - "▁fi", - "c" - ], - [ - "▁", - "fic" - ], - [ - "▁jo", - "ining" - ], - [ - "▁join", - "ing" - ], - [ - "▁divers", - "os" - ], - [ - "▁LI", - "KE" - ], - [ - "▁F", - "itz" - ], - [ - "▁d", - "imin" - ], - [ - "▁di", - "min" - ], - [ - "▁dim", - "in" - ], - [ - "▁dist", - "rib" - ], - [ - "Sa", - "m" - ], - [ - "S", - "am" - ], - [ - "ko", - "z" - ], - [ - "k", - "oz" - ], - [ - "▁al", - "phabet" - ], - [ - "▁alpha", - "bet" - ], - [ - "os", - "er" - ], - [ - "ose", - "r" - ], - [ - "o", - "ser" - ], - [ - "OU", - "R" - ], - [ - "O", - "UR" - ], - [ - "uk", - "a" - ], - [ - "u", - "ka" - ], - [ - "ка", - "я" - ], - [ - "▁ste", - "el" - ], - [ - "▁`", - "--" - ], - [ - "▁`-", - "-" - ], - [ - "▁t", - "ener" - ], - [ - "▁te", - "ner" - ], - [ - "▁ten", - "er" - ], - [ - "mar", - "ker" - ], - [ - "mark", - "er" - ], - [ - "▁He", - "aven" - ], - [ - "new", - "command" - ], - [ - "▁prison", - "ers" - ], - [ - "▁prisoner", - "s" - ], - [ - "▁K", - "night" - ], - [ - "▁Kn", - "ight" - ], - [ - "▁present", - "s" - ], - [ - "▁pres", - "ents" - ], - [ - "▁qu", - "esti" - ], - [ - "▁quest", - "i" - ], - [ - "▁tr", - "ains" - ], - [ - "▁tra", - "ins" - ], - [ - "▁train", - "s" - ], - [ - "op", - "era" - ], - [ - "ope", - "ra" - ], - [ - "oper", - "a" - ], - [ - "▁Li", - "near" - ], - [ - "▁Lin", - "ear" - ], - [ - "▁Line", - "ar" - ], - [ - "▁", - "Linear" - ], - [ - "▁M", - "E" - ], - [ - "▁", - "ME" - ], - [ - "▁B", - "uc" - ], - [ - "▁Bu", - "c" - ], - [ - "Le", - "g" - ], - [ - "L", - "eg" - ], - [ - "▁ag", - "ua" - ], - [ - "▁", - "agua" - ], - [ - "▁Gr", - "iff" - ], - [ - "ol", - "g" - ], - [ - "o", - "lg" - ], - [ - "ds", - "t" - ], - [ - "d", - "st" - ], - [ - ".", - "\r" - ], - [ - "▁person", - "es" - ], - [ - "▁pers", - "ones" - ], - [ - "▁persone", - "s" - ], - [ - "Ma", - "l" - ], - [ - "M", - "al" - ], - [ - "бе", - "ре" - ], - [ - "бер", - "е" - ], - [ - "б", - "ере" - ], - [ - "fol", - "ge" - ], - [ - "folg", - "e" - ], - [ - "▁ac", - "ab" - ], - [ - "ct", - "u" - ], - [ - "c", - "tu" - ], - [ - "pt", - "ic" - ], - [ - "▁N", - "avigation" - ], - [ - "▁", - "Navigation" - ], - [ - "R", - "uss" - ], - [ - "га", - "ль" - ], - [ - "г", - "аль" - ], - [ - "▁F", - "ul" - ], - [ - "▁Fu", - "l" - ], - [ - "▁ма", - "є" - ], - [ - "чна", - "я" - ], - [ - "ч", - "ная" - ], - [ - "wn", - "er" - ], - [ - "w", - "ner" - ], - [ - "con", - "tra" - ], - [ - "cont", - "ra" - ], - [ - "contr", - "a" - ], - [ - "▁jou", - "eur" - ], - [ - "▁joue", - "ur" - ], - [ - "▁J", - "ess" - ], - [ - "▁Je", - "ss" - ], - [ - "▁Jes", - "s" - ], - [ - "▁re", - "new" - ], - [ - "▁ren", - "ew" - ], - [ - "▁l", - "ap" - ], - [ - "▁la", - "p" - ], - [ - "▁", - "lap" - ], - [ - "▁cas", - "ting" - ], - [ - "▁cast", - "ing" - ], - [ - "ga", - "l" - ], - [ - "g", - "al" - ], - [ - "▁tém", - "atu" - ], - [ - "▁на", - "зыва" - ], - [ - "за", - "х" - ], - [ - "ч", - "не" - ], - [ - ")-", - "\\" - ], - [ - ")", - "-\\" - ], - [ - "▁ча", - "сто" - ], - [ - "▁час", - "то" - ], - [ - "▁част", - "о" - ], - [ - "}$", - "-" - ], - [ - "}", - "$-" - ], - [ - "▁l", - "icz" - ], - [ - "▁li", - "cz" - ], - [ - "▁lic", - "z" - ], - [ - "▁e", - "mot" - ], - [ - "▁em", - "ot" - ], - [ - "ha", - "rm" - ], - [ - "har", - "m" - ], - [ - "h", - "arm" - ], - [ - "▁occasion", - "ally" - ], - [ - "▁hor", - "ror" - ], - [ - "▁ho", - "rror" - ], - [ - "ea", - "st" - ], - [ - "e", - "ast" - ], - [ - "▁pr", - "inter" - ], - [ - "▁print", - "er" - ], - [ - "▁prin", - "ter" - ], - [ - "ar", - "an" - ], - [ - "ara", - "n" - ], - [ - "a", - "ran" - ], - [ - "▁Miss", - "iss" - ], - [ - "fol", - "low" - ], - [ - "f", - "ollow" - ], - [ - "▁Bar", - "ry" - ], - [ - "▁investig", - "ate" - ], - [ - "go", - "w" - ], - [ - "g", - "ow" - ], - [ - "▁Amer", - "icans" - ], - [ - "▁American", - "s" - ], - [ - "▁America", - "ns" - ], - [ - "S", - "ince" - ], - [ - "▁від", - "о" - ], - [ - "▁ві", - "до" - ], - [ - "▁re", - "un" - ], - [ - "os", - "ci" - ], - [ - "osc", - "i" - ], - [ - "o", - "sci" - ], - [ - "▁Ch", - "apter" - ], - [ - "▁Chap", - "ter" - ], - [ - "▁b", - "ay" - ], - [ - "▁ba", - "y" - ], - [ - "▁", - "bay" - ], - [ - "ро", - "ме" - ], - [ - "ром", - "е" - ], - [ - "et", - "he" - ], - [ - "eth", - "e" - ], - [ - "e", - "the" - ], - [ - "éd", - "ie" - ], - [ - "é", - "die" - ], - [ - "com", - "ot" - ], - [ - "co", - "mot" - ], - [ - "como", - "t" - ], - [ - "▁miejs", - "cowo" - ], - [ - "▁stud", - "ierte" - ], - [ - "▁studi", - "erte" - ], - [ - "ou", - "vert" - ], - [ - "ouv", - "ert" - ], - [ - "ouve", - "rt" - ], - [ - "ouver", - "t" - ], - [ - "▁к", - "ур" - ], - [ - "▁ку", - "р" - ], - [ - "▁", - "кур" - ], - [ - "▁DE", - "SC" - ], - [ - "▁DES", - "C" - ], - [ - "▁touch", - "ed" - ], - [ - "▁tou", - "ched" - ], - [ - "▁Jer", - "ry" - ], - [ - "ue", - "se" - ], - [ - "ues", - "e" - ], - [ - "u", - "ese" - ], - [ - "ли", - "ще" - ], - [ - "auth", - "entication" - ], - [ - "authentic", - "ation" - ], - [ - "▁col", - "le" - ], - [ - "▁co", - "lle" - ], - [ - "▁coll", - "e" - ], - [ - "he", - "art" - ], - [ - "▁reg", - "iment" - ], - [ - "▁regime", - "nt" - ], - [ - "cri", - "bed" - ], - [ - "cribe", - "d" - ], - [ - "▁Бо", - "ль" - ], - [ - "▁про", - "ис" - ], - [ - "ce", - "ae" - ], - [ - "▁mass", - "es" - ], - [ - "▁sc", - "rolling" - ], - [ - "▁scroll", - "ing" - ], - [ - "us", - "to" - ], - [ - "ust", - "o" - ], - [ - "u", - "sto" - ], - [ - "S", - "W" - ], - [ - "ov", - "at" - ], - [ - "ova", - "t" - ], - [ - "o", - "vat" - ], - [ - "▁gr", - "âce" - ], - [ - "▁Архи", - "в" - ], - [ - "▁Се", - "вер" - ], - [ - "av", - "ait" - ], - [ - "ava", - "it" - ], - [ - "▁Marsh", - "all" - ], - [ - "▁Mars", - "hall" - ], - [ - "▁Hash", - "Map" - ], - [ - "▁", - "HashMap" - ], - [ - "ac", - "on" - ], - [ - "aco", - "n" - ], - [ - "a", - "con" - ], - [ - "ück", - "en" - ], - [ - "ücke", - "n" - ], - [ - "ü", - "cken" - ], - [ - "[]", - ")" - ], - [ - "[", - "])" - ], - [ - "▁ev", - "angel" - ], - [ - "et", - "zung" - ], - [ - "etz", - "ung" - ], - [ - "tt", - "emberg" - ], - [ - "st", - "ers" - ], - [ - "ste", - "rs" - ], - [ - "ster", - "s" - ], - [ - "s", - "ters" - ], - [ - "T", - "M" - ], - [ - "▁ли", - "тера" - ], - [ - "qu", - "ot" - ], - [ - "Pr", - "ed" - ], - [ - "Pre", - "d" - ], - [ - "P", - "red" - ], - [ - "▁w", - "erk" - ], - [ - "▁wer", - "k" - ], - [ - "▁", - "werk" - ], - [ - "▁ha", - "ber" - ], - [ - "▁hab", - "er" - ], - [ - "▁habe", - "r" - ], - [ - "la", - "va" - ], - [ - "lav", - "a" - ], - [ - "l", - "ava" - ], - [ - "vo", - "us" - ], - [ - "v", - "ous" - ], - [ - "▁L", - "ate" - ], - [ - "▁La", - "te" - ], - [ - "▁Lat", - "e" - ], - [ - "cy", - "cle" - ], - [ - "cyc", - "le" - ], - [ - "c", - "ycle" - ], - [ - "ти", - "рова" - ], - [ - "▁про", - "ду" - ], - [ - "▁прод", - "у" - ], - [ - "▁pop", - "ulations" - ], - [ - "▁population", - "s" - ], - [ - "▁popul", - "ations" - ], - [ - "▁Y", - "an" - ], - [ - "▁Ya", - "n" - ], - [ - "Pre", - "fix" - ], - [ - "P", - "refix" - ], - [ - "actér", - "istiques" - ], - [ - "+", - "'" - ], - [ - "()", - "`](" - ], - [ - "()`", - "](" - ], - [ - "▁Л", - "ь" - ], - [ - "фи", - "ль" - ], - [ - "▁жи", - "зни" - ], - [ - "ft", - "p" - ], - [ - "f", - "tp" - ], - [ - "▁все", - "х" - ], - [ - "▁g", - "dzie" - ], - [ - "▁v", - "idea" - ], - [ - "▁vid", - "ea" - ], - [ - "▁vide", - "a" - ], - [ - "oa", - "uth" - ], - [ - "o", - "auth" - ], - [ - "▁p", - "id" - ], - [ - "▁pi", - "d" - ], - [ - "▁", - "pid" - ], - [ - "ů", - "m" - ], - [ - "▁p", - "esso" - ], - [ - "▁pes", - "so" - ], - [ - "▁track", - "ing" - ], - [ - "▁trac", - "king" - ], - [ - "iz", - "in" - ], - [ - "izi", - "n" - ], - [ - "i", - "zin" - ], - [ - "▁Mor", - "ris" - ], - [ - "щи", - "й" - ], - [ - "▁Provin", - "z" - ], - [ - "▁M", - "itte" - ], - [ - "▁Mit", - "te" - ], - [ - "▁Mi", - "tte" - ], - [ - "▁Mitt", - "e" - ], - [ - "▁artific", - "ial" - ], - [ - "bráz", - "ky" - ], - [ - "▁до", - "сти" - ], - [ - "▁rest", - "ored" - ], - [ - "▁restore", - "d" - ], - [ - "▁resto", - "red" - ], - [ - "▁commun", - "icate" - ], - [ - "▁communic", - "ate" - ], - [ - "ag", - "it" - ], - [ - "agi", - "t" - ], - [ - "a", - "git" - ], - [ - "Rec", - "ogn" - ], - [ - "▁l", - "on" - ], - [ - "▁lo", - "n" - ], - [ - "▁", - "lon" - ], - [ - "▁за", - "ня" - ], - [ - "▁зан", - "я" - ], - [ - "▁Arg", - "ument" - ], - [ - "▁", - "Argument" - ], - [ - "fl", - "ush" - ], - [ - "flu", - "sh" - ], - [ - "ма", - "на" - ], - [ - "ман", - "а" - ], - [ - "м", - "ана" - ], - [ - "sec", - "onds" - ], - [ - "second", - "s" - ], - [ - "U", - "C" - ], - [ - "▁R", - "uth" - ], - [ - "▁Ru", - "th" - ], - [ - "▁t", - "ub" - ], - [ - "▁tu", - "b" - ], - [ - "▁B", - "ret" - ], - [ - "▁Br", - "et" - ], - [ - "▁Bre", - "t" - ], - [ - "▁P", - "ere" - ], - [ - "▁Per", - "e" - ], - [ - "▁Pe", - "re" - ], - [ - "▁respons", - "ibility" - ], - [ - "ńcz", - "y" - ], - [ - "ń", - "czy" - ], - [ - "▁environment", - "s" - ], - [ - "▁environ", - "ments" - ], - [ - "ke", - "e" - ], - [ - "k", - "ee" - ], - [ - "▁g", - "root" - ], - [ - "▁gr", - "oot" - ], - [ - "▁gro", - "ot" - ], - [ - "▁pain", - "ted" - ], - [ - "▁paint", - "ed" - ], - [ - "▁Éd", - "itions" - ], - [ - "cp", - "y" - ], - [ - "c", - "py" - ], - [ - "ár", - "t" - ], - [ - "á", - "rt" - ], - [ - "lich", - "keit" - ], - [ - "ar", - "da" - ], - [ - "ard", - "a" - ], - [ - "B", - "atch" - ], - [ - "▁Leop", - "old" - ], - [ - "re", - "ason" - ], - [ - "rea", - "son" - ], - [ - "reas", - "on" - ], - [ - "n", - "oreferrer" - ], - [ - "se", - "ns" - ], - [ - "sen", - "s" - ], - [ - "s", - "ens" - ], - [ - "▁ro", - "cks" - ], - [ - "▁rock", - "s" - ], - [ - "▁Hit", - "ler" - ], - [ - "ла", - "т" - ], - [ - "л", - "ат" - ], - [ - "▁qu", - "oted" - ], - [ - "▁quot", - "ed" - ], - [ - "▁quote", - "d" - ], - [ - "▁ко", - "лле" - ], - [ - "▁у", - "ров" - ], - [ - "ba", - "g" - ], - [ - "b", - "ag" - ], - [ - ".\"", - ")" - ], - [ - ".", - "\")" - ], - [ - "▁M", - "L" - ], - [ - "▁", - "ML" - ], - [ - "▁kom", - "t" - ], - [ - "▁ko", - "mt" - ], - [ - "▁[", - "_" - ], - [ - "▁", - "[_" - ], - [ - "▁spect", - "ral" - ], - [ - "ed", - "o" - ], - [ - "e", - "do" - ], - [ - "▁in", - "sieme" - ], - [ - "▁suffer", - "ing" - ], - [ - "▁suff", - "ering" - ], - [ - "sl", - "ider" - ], - [ - "slide", - "r" - ], - [ - "▁Kenn", - "edy" - ], - [ - "ol", - "ate" - ], - [ - "ola", - "te" - ], - [ - "o", - "late" - ], - [ - "▁P", - "atri" - ], - [ - "▁Pa", - "tri" - ], - [ - "▁Pat", - "ri" - ], - [ - "зи", - "и" - ], - [ - "O", - "H" - ], - [ - "▁те", - "а" - ], - [ - "▁пра", - "ва" - ], - [ - "▁прав", - "а" - ], - [ - "ма", - "х" - ], - [ - "re", - "write" - ], - [ - "rew", - "rite" - ], - [ - "r", - "ewrite" - ], - [ - "▁Eins", - "atz" - ], - [ - "ex", - "ternal" - ], - [ - "ext", - "ernal" - ], - [ - "hol", - "ds" - ], - [ - "hold", - "s" - ], - [ - "h", - "olds" - ], - [ - "▁P", - "laces" - ], - [ - "▁Pl", - "aces" - ], - [ - "▁Pla", - "ces" - ], - [ - "▁Place", - "s" - ], - [ - "at", - "ype" - ], - [ - "aty", - "pe" - ], - [ - "a", - "type" - ], - [ - "▁vul", - "ner" - ], - [ - "▁abandon", - "ed" - ], - [ - "Or", - "igin" - ], - [ - "Ori", - "gin" - ], - [ - "▁max", - "imal" - ], - [ - "▁maxim", - "al" - ], - [ - "AA", - "AA" - ], - [ - "▁Base", - "ball" - ], - [ - "▁C", - "lose" - ], - [ - "▁Cl", - "ose" - ], - [ - "▁Clo", - "se" - ], - [ - "▁", - "Close" - ], - [ - "▁pa", - "inter" - ], - [ - "▁pain", - "ter" - ], - [ - "▁paint", - "er" - ], - [ - "▁assign", - "ing" - ], - [ - "N", - "B" - ], - [ - "bl", - "ast" - ], - [ - "bla", - "st" - ], - [ - "b", - "last" - ], - [ - "▁K", - "ünstler" - ], - [ - ")]", - "(" - ], - [ - ")", - "](" - ], - [ - "fa", - "ch" - ], - [ - "fac", - "h" - ], - [ - "f", - "ach" - ], - [ - "▁Const", - "antin" - ], - [ - "▁Constant", - "in" - ], - [ - "ok", - "es" - ], - [ - "oke", - "s" - ], - [ - "o", - "kes" - ], - [ - "▁no", - "body" - ], - [ - "▁nob", - "ody" - ], - [ - "▁subt", - "ract" - ], - [ - "▁fos", - "se" - ], - [ - "▁foss", - "e" - ], - [ - "▁cert", - "ific" - ], - [ - "▁m", - "use" - ], - [ - "▁mus", - "e" - ], - [ - "▁mu", - "se" - ], - [ - "/)", - "," - ], - [ - "/", - ")," - ], - [ - "▁Pro", - "fil" - ], - [ - "▁Prof", - "il" - ], - [ - "▁pro", - "xim" - ], - [ - "▁Jer", - "usalem" - ], - [ - "▁simp", - "licity" - ], - [ - "▁simpl", - "icity" - ], - [ - "▁w", - "sz" - ], - [ - "▁ws", - "z" - ], - [ - "NUM", - "BER" - ], - [ - "utt", - "avia" - ], - [ - "U", - "ITableView" - ], - [ - "ich", - "ter" - ], - [ - "icht", - "er" - ], - [ - "ichte", - "r" - ], - [ - "i", - "chter" - ], - [ - "жа", - "н" - ], - [ - "ж", - "ан" - ], - [ - "▁L", - "av" - ], - [ - "▁La", - "v" - ], - [ - "it", - "chen" - ], - [ - "itch", - "en" - ], - [ - "▁Ч", - "ем" - ], - [ - "▁Че", - "м" - ], - [ - "T", - "u" - ], - [ - "▁ge", - "om" - ], - [ - "▁zv", - "uky" - ], - [ - "▁Sur", - "vey" - ], - [ - "AN", - "CE" - ], - [ - "▁enc", - "rypted" - ], - [ - "▁encrypt", - "ed" - ], - [ - "pr", - "of" - ], - [ - "pro", - "f" - ], - [ - "▁d", - "are" - ], - [ - "▁da", - "re" - ], - [ - "▁dar", - "e" - ], - [ - "▁L", - "oren" - ], - [ - "▁Lo", - "ren" - ], - [ - "▁Lor", - "en" - ], - [ - "т", - "в" - ], - [ - "▁А", - "лек" - ], - [ - "▁Ал", - "ек" - ], - [ - "▁comput", - "ers" - ], - [ - "▁computer", - "s" - ], - [ - "▁compute", - "rs" - ], - [ - "▁expect", - "ation" - ], - [ - "▁substant", - "ial" - ], - [ - "▁Д", - "ми" - ], - [ - "▁`", - "{" - ], - [ - "▁д", - "ра" - ], - [ - "▁др", - "а" - ], - [ - "▁", - "дра" - ], - [ - "ub", - "ble" - ], - [ - "▁per", - "forms" - ], - [ - "▁perform", - "s" - ], - [ - "▁Kr", - "ieg" - ], - [ - "▁Krie", - "g" - ], - [ - "▁in", - "coming" - ], - [ - "▁inc", - "oming" - ], - [ - "▁Class", - "ification" - ], - [ - "Web", - "View" - ], - [ - "▁epis", - "odes" - ], - [ - "▁episode", - "s" - ], - [ - "ap", - "per" - ], - [ - "app", - "er" - ], - [ - "appe", - "r" - ], - [ - "a", - "pper" - ], - [ - "äu", - "fig" - ], - [ - "▁gi", - "ov" - ], - [ - "▁De", - "part" - ], - [ - "▁Dep", - "art" - ], - [ - "бо", - "ра" - ], - [ - "бор", - "а" - ], - [ - "ed", - "ly" - ], - [ - "os", - "pod" - ], - [ - "osp", - "od" - ], - [ - "▁p", - "tr" - ], - [ - "▁pt", - "r" - ], - [ - "▁", - "ptr" - ], - [ - "▁d", - "átum" - ], - [ - "▁est", - "imation" - ], - [ - "▁estim", - "ation" - ], - [ - "ic", - "ole" - ], - [ - "ico", - "le" - ], - [ - "icol", - "e" - ], - [ - "i", - "cole" - ], - [ - "▁-", - "---" - ], - [ - "▁--", - "--" - ], - [ - "▁---", - "-" - ], - [ - "▁", - "----" - ], - [ - "▁prin", - "ces" - ], - [ - "▁prince", - "s" - ], - [ - "HE", - "AD" - ], - [ - "▁diff", - "usion" - ], - [ - "▁diffus", - "ion" - ], - [ - "▁d", - "rie" - ], - [ - "▁dr", - "ie" - ], - [ - "▁dri", - "e" - ], - [ - "▁A", - "da" - ], - [ - "▁Ad", - "a" - ], - [ - "ни", - "це" - ], - [ - "ниц", - "е" - ], - [ - "ng", - "inx" - ], - [ - "n", - "ginx" - ], - [ - "sh", - "al" - ], - [ - "sha", - "l" - ], - [ - "s", - "hal" - ], - [ - "▁febru", - "ari" - ], - [ - "▁T", - "at" - ], - [ - "▁Ta", - "t" - ], - [ - "lo", - "oking" - ], - [ - "look", - "ing" - ], - [ - "ku", - "nd" - ], - [ - "k", - "und" - ], - [ - "▁De", - "an" - ], - [ - "m", - "ongodb" - ], - [ - "вши", - "х" - ], - [ - "в", - "ших" - ], - [ - "▁A", - "ur" - ], - [ - "▁Au", - "r" - ], - [ - "▁Fl", - "ora" - ], - [ - "▁Flor", - "a" - ], - [ - "▁Flo", - "ra" - ], - [ - "▁Stud", - "ios" - ], - [ - "▁Studio", - "s" - ], - [ - "ци", - "је" - ], - [ - "ei", - "l" - ], - [ - "e", - "il" - ], - [ - "Inst", - "all" - ], - [ - "▁f", - "ranch" - ], - [ - "▁fr", - "anch" - ], - [ - "▁fran", - "ch" - ], - [ - "▁franc", - "h" - ], - [ - "▁H", - "MS" - ], - [ - "▁pract", - "ices" - ], - [ - "▁practice", - "s" - ], - [ - "le", - "j" - ], - [ - "l", - "ej" - ], - [ - "da", - "le" - ], - [ - "dal", - "e" - ], - [ - "d", - "ale" - ], - [ - "▁po", - "ste" - ], - [ - "▁pos", - "te" - ], - [ - "▁post", - "e" - ], - [ - "▁H", - "els" - ], - [ - "▁He", - "ls" - ], - [ - "▁Hel", - "s" - ], - [ - "▁reli", - "able" - ], - [ - "źdz", - "ier" - ], - [ - "▁ver", - "se" - ], - [ - "▁vers", - "e" - ], - [ - "▁", - "verse" - ], - [ - "er", - "meister" - ], - [ - "erme", - "ister" - ], - [ - "▁qu", - "it" - ], - [ - "▁qui", - "t" - ], - [ - "▁q", - "uit" - ], - [ - "▁", - "quit" - ], - [ - "ét", - "ico" - ], - [ - "il", - "is" - ], - [ - "ili", - "s" - ], - [ - "i", - "lis" - ], - [ - "ed", - "or" - ], - [ - "edo", - "r" - ], - [ - "e", - "dor" - ], - [ - "▁Cult", - "ural" - ], - [ - "▁Cultura", - "l" - ], - [ - "дж", - "е" - ], - [ - "д", - "же" - ], - [ - "▁li", - "ked" - ], - [ - "▁like", - "d" - ], - [ - "▁lik", - "ed" - ], - [ - "▁m", - "ongodb" - ], - [ - "▁mongo", - "db" - ], - [ - "▁", - "mongodb" - ], - [ - "▁Broad", - "way" - ], - [ - "▁I", - "R" - ], - [ - "▁", - "IR" - ], - [ - "es", - "zt" - ], - [ - "esz", - "t" - ], - [ - "ho", - "v" - ], - [ - "h", - "ov" - ], - [ - "▁m", - "íst" - ], - [ - "▁mí", - "st" - ], - [ - "re", - "iche" - ], - [ - "reich", - "e" - ], - [ - "rei", - "che" - ], - [ - "▁k", - "B" - ], - [ - "ст", - "ом" - ], - [ - "сто", - "м" - ], - [ - "с", - "том" - ], - [ - "▁SQL", - "ite" - ], - [ - "▁tor", - "neo" - ], - [ - "\\", - "." - ], - [ - "Or", - "d" - ], - [ - "O", - "rd" - ], - [ - "▁Admin", - "istration" - ], - [ - "▁Administr", - "ation" - ], - [ - "▁з", - "да" - ], - [ - "▁", - "зда" - ], - [ - "▁H", - "inter" - ], - [ - "▁Hin", - "ter" - ], - [ - "▁V", - "ia" - ], - [ - "▁Vi", - "a" - ], - [ - "Dec", - "imal" - ], - [ - "or", - "ious" - ], - [ - "ori", - "ous" - ], - [ - "orio", - "us" - ], - [ - "▁nécess", - "aire" - ], - [ - "w", - "x" - ], - [ - "▁t", - "ej" - ], - [ - "▁te", - "j" - ], - [ - "▁t", - "ema" - ], - [ - "▁te", - "ma" - ], - [ - "▁tem", - "a" - ], - [ - "O", - "brázky" - ], - [ - "ри", - "те" - ], - [ - "рит", - "е" - ], - [ - "▁build", - "s" - ], - [ - "▁l", - "aten" - ], - [ - "▁la", - "ten" - ], - [ - "▁lat", - "en" - ], - [ - "▁late", - "n" - ], - [ - "▁г", - "г" - ], - [ - "Vis", - "ibility" - ], - [ - "lä", - "u" - ], - [ - "l", - "äu" - ], - [ - "▁se", - "chs" - ], - [ - "▁sec", - "hs" - ], - [ - "▁лу", - "ч" - ], - [ - "ce", - "ra" - ], - [ - "cer", - "a" - ], - [ - "c", - "era" - ], - [ - "Co", - "uld" - ], - [ - "C", - "ould" - ], - [ - "▁tra", - "ject" - ], - [ - "}}", - "^{" - ], - [ - "}}^", - "{" - ], - [ - "}", - "}^{" - ], - [ - "▁Jap", - "on" - ], - [ - "▁Ja", - "pon" - ], - [ - "an", - "other" - ], - [ - "ano", - "ther" - ], - [ - "I", - "K" - ], - [ - "▁belong", - "ing" - ], - [ - "▁fac", - "ilities" - ], - [ - "▁facil", - "ities" - ], - [ - "▁D", - "aily" - ], - [ - "▁Da", - "ily" - ], - [ - "▁de", - "ce" - ], - [ - "▁dec", - "e" - ], - [ - "int", - "ro" - ], - [ - "▁слу", - "ча" - ], - [ - "Name", - "space" - ], - [ - "Names", - "pace" - ], - [ - "▁B", - "ak" - ], - [ - "▁Ba", - "k" - ], - [ - "loc", - "ale" - ], - [ - "local", - "e" - ], - [ - "U", - "G" - ], - [ - "=$", - "{" - ], - [ - "=", - "${" - ], - [ - "▁comp", - "añ" - ], - [ - "ją", - "c" - ], - [ - "j", - "ąc" - ], - [ - "▁ar", - "ithmetic" - ], - [ - "fo", - "rum" - ], - [ - "for", - "um" - ], - [ - "f", - "orum" - ], - [ - "▁por", - "ta" - ], - [ - "▁port", - "a" - ], - [ - "on", - "k" - ], - [ - "▁g", - "ender" - ], - [ - "▁ge", - "nder" - ], - [ - "▁gen", - "der" - ], - [ - "▁", - "gender" - ], - [ - "▁expect", - "s" - ], - [ - "б", - "ка" - ], - [ - "▁n", - "ak" - ], - [ - "▁na", - "k" - ], - [ - "▁", - "nak" - ], - [ - "▁G", - "race" - ], - [ - "▁Gr", - "ace" - ], - [ - "▁Gra", - "ce" - ], - [ - "▁st", - "ro" - ], - [ - "▁str", - "o" - ], - [ - "ivid", - "ual" - ], - [ - "▁C", - "OM" - ], - [ - "▁CO", - "M" - ], - [ - "▁", - "COM" - ], - [ - "▁F", - "arm" - ], - [ - "▁Fa", - "rm" - ], - [ - "▁Far", - "m" - ], - [ - "▁c", - "anton" - ], - [ - "▁can", - "ton" - ], - [ - "▁cant", - "on" - ], - [ - "то", - "му" - ], - [ - "том", - "у" - ], - [ - "т", - "ому" - ], - [ - "java", - "x" - ], - [ - "jav", - "ax" - ], - [ - "се", - "й" - ], - [ - "с", - "ей" - ], - [ - "▁brief", - "ly" - ], - [ - "Fa", - "ce" - ], - [ - "F", - "ace" - ], - [ - "rot", - "ate" - ], - [ - "const", - "ant" - ], - [ - "▁g", - "allery" - ], - [ - "▁gall", - "ery" - ], - [ - "ast", - "ro" - ], - [ - "astr", - "o" - ], - [ - "all", - "ery" - ], - [ - "alle", - "ry" - ], - [ - "aller", - "y" - ], - [ - "▁D", - "J" - ], - [ - "char", - "ge" - ], - [ - "charg", - "e" - ], - [ - "ходи", - "ть" - ], - [ - "ходит", - "ь" - ], - [ - "C", - "ent" - ], - [ - "\\\"", - "," - ], - [ - "\\", - "\"," - ], - [ - "▁d", - "onna" - ], - [ - "▁don", - "na" - ], - [ - "▁donn", - "a" - ], - [ - "ar", - "ca" - ], - [ - "arc", - "a" - ], - [ - "la", - "de" - ], - [ - "lad", - "e" - ], - [ - "l", - "ade" - ], - [ - "zi", - "n" - ], - [ - "z", - "in" - ], - [ - "▁N", - "ed" - ], - [ - "▁Ne", - "d" - ], - [ - "▁host", - "ing" - ], - [ - "▁hos", - "ting" - ], - [ - "id", - "or" - ], - [ - "ido", - "r" - ], - [ - "i", - "dor" - ], - [ - "it", - "ative" - ], - [ - "itat", - "ive" - ], - [ - "ig", - "s" - ], - [ - "i", - "gs" - ], - [ - "▁п", - "ря" - ], - [ - "▁пр", - "я" - ], - [ - "▁t", - "icket" - ], - [ - "▁tick", - "et" - ], - [ - "▁ti", - "cket" - ], - [ - "▁stud", - "ying" - ], - [ - "▁study", - "ing" - ], - [ - "▁des", - "igner" - ], - [ - "▁design", - "er" - ], - [ - "lap", - "sed" - ], - [ - "lapse", - "d" - ], - [ - "laps", - "ed" - ], - [ - "l", - "apsed" - ], - [ - "▁la", - "at" - ], - [ - "▁d", - "ix" - ], - [ - "▁di", - "x" - ], - [ - "▁integr", - "ated" - ], - [ - "▁integrate", - "d" - ], - [ - "▁integra", - "ted" - ], - [ - "▁in", - "formed" - ], - [ - "▁inform", - "ed" - ], - [ - "▁be", - "have" - ], - [ - "▁beh", - "ave" - ], - [ - "▁behav", - "e" - ], - [ - "▁la", - "bour" - ], - [ - "▁lab", - "our" - ], - [ - "est", - "ellt" - ], - [ - "cal", - "endar" - ], - [ - "▁k", - "illing" - ], - [ - "▁kil", - "ling" - ], - [ - "▁kill", - "ing" - ], - [ - "▁tw", - "itter" - ], - [ - "▁", - "twitter" - ], - [ - "ia", - "e" - ], - [ - "i", - "ae" - ], - [ - "▁histor", - "ique" - ], - [ - "DE", - "FAULT" - ], - [ - "ia", - "ła" - ], - [ - "iał", - "a" - ], - [ - "i", - "ała" - ], - [ - "▁theoret", - "ical" - ], - [ - "▁un", - "ders" - ], - [ - "▁und", - "ers" - ], - [ - "▁under", - "s" - ], - [ - "ля", - "ет" - ], - [ - "at", - "an" - ], - [ - "ata", - "n" - ], - [ - "a", - "tan" - ], - [ - "▁s", - "urname" - ], - [ - "▁sur", - "name" - ], - [ - "▁inter", - "cept" - ], - [ - "гла", - "сно" - ], - [ - "▁општи", - "ни" - ], - [ - "▁t", - "ired" - ], - [ - "▁tir", - "ed" - ], - [ - "▁ti", - "red" - ], - [ - "▁B", - "eth" - ], - [ - "▁Be", - "th" - ], - [ - "▁Bet", - "h" - ], - [ - "▁ад", - "министратив" - ], - [ - "L", - "i" - ], - [ - "▁Т", - "ур" - ], - [ - "▁Ту", - "р" - ], - [ - "▁Sc", - "anner" - ], - [ - "▁S", - "tern" - ], - [ - "▁St", - "ern" - ], - [ - "▁Ste", - "rn" - ], - [ - "▁Ster", - "n" - ], - [ - "▁вме", - "сте" - ], - [ - "▁report", - "ing" - ], - [ - "▁s", - "ull" - ], - [ - "▁su", - "ll" - ], - [ - "▁sul", - "l" - ], - [ - "ци", - "ей" - ], - [ - "ber", - "ts" - ], - [ - "bert", - "s" - ], - [ - "og", - "onal" - ], - [ - "ogo", - "nal" - ], - [ - "ő", - "k" - ], - [ - "▁i", - "psum" - ], - [ - "▁ip", - "sum" - ], - [ - "▁seu", - "lement" - ], - [ - "▁seul", - "ement" - ], - [ - "▁seule", - "ment" - ], - [ - "▁Se", - "iten" - ], - [ - "▁Seit", - "en" - ], - [ - "▁Seite", - "n" - ], - [ - "word", - "press" - ], - [ - "▁fe", - "aturing" - ], - [ - "ist", - "ischen" - ], - [ - "isti", - "schen" - ], - [ - "istische", - "n" - ], - [ - "ju", - "b" - ], - [ - "j", - "ub" - ], - [ - "▁é", - "tr" - ], - [ - "▁ét", - "r" - ], - [ - "▁", - "étr" - ], - [ - "▁t", - "ea" - ], - [ - "▁te", - "a" - ], - [ - "▁adapt", - "ed" - ], - [ - "▁sc", - "ales" - ], - [ - "▁scale", - "s" - ], - [ - "▁scal", - "es" - ], - [ - "▁n", - "an" - ], - [ - "▁na", - "n" - ], - [ - "▁", - "nan" - ], - [ - "get", - "Value" - ], - [ - "▁Bl", - "ues" - ], - [ - "▁Blue", - "s" - ], - [ - "ac", - "les" - ], - [ - "acle", - "s" - ], - [ - "a", - "cles" - ], - [ - "▁st", - "ati" - ], - [ - "▁stat", - "i" - ], - [ - "▁sta", - "ti" - ], - [ - "▁ent", - "itled" - ], - [ - "▁R", - "alph" - ], - [ - "gra", - "vity" - ], - [ - "▁entre", - "pr" - ], - [ - "któ", - "ber" - ], - [ - "li", - "mat" - ], - [ - "lim", - "at" - ], - [ - "l", - "imat" - ], - [ - "li", - "s" - ], - [ - "l", - "is" - ], - [ - "De", - "mo" - ], - [ - "D", - "emo" - ], - [ - "re", - "lation" - ], - [ - "rel", - "ation" - ], - [ - "▁n", - "ep" - ], - [ - "▁ne", - "p" - ], - [ - "pro", - "wad" - ], - [ - "it", - "is" - ], - [ - "iti", - "s" - ], - [ - "i", - "tis" - ], - [ - "▁p", - "up" - ], - [ - "▁pu", - "p" - ], - [ - "neh", - "mer" - ], - [ - "nehm", - "er" - ], - [ - "▁disapp", - "oint" - ], - [ - "▁et", - "was" - ], - [ - "▁etwa", - "s" - ], - [ - "an", - "non" - ], - [ - "ann", - "on" - ], - [ - "anno", - "n" - ], - [ - "▁appro", - "ved" - ], - [ - "▁cl", - "ever" - ], - [ - "▁cle", - "ver" - ], - [ - "Lo", - "ading" - ], - [ - "Load", - "ing" - ], - [ - "▁ver", - "z" - ], - [ - "▁ve", - "rz" - ], - [ - "res", - "se" - ], - [ - "ress", - "e" - ], - [ - "r", - "esse" - ], - [ - "▁insp", - "ir" - ], - [ - "▁sam", - "pling" - ], - [ - "▁B", - "ek" - ], - [ - "▁Be", - "k" - ], - [ - "})", - "$." - ], - [ - "})$", - "." - ], - [ - "}", - ")$." - ], - [ - "▁г", - "рома" - ], - [ - "▁spe", - "cie" - ], - [ - "▁spec", - "ie" - ], - [ - "▁re", - "pub" - ], - [ - "▁rep", - "ub" - ], - [ - "▁lo", - "ader" - ], - [ - "▁load", - "er" - ], - [ - "▁", - "loader" - ], - [ - "▁e", - "rf" - ], - [ - "▁er", - "f" - ], - [ - "▁should", - "er" - ], - [ - "ra", - "is" - ], - [ - "rai", - "s" - ], - [ - "r", - "ais" - ], - [ - "▁ма", - "те" - ], - [ - "▁мат", - "е" - ], - [ - "▁Mon", - "th" - ], - [ - "▁Mont", - "h" - ], - [ - "▁Mo", - "nth" - ], - [ - "▁", - "Month" - ], - [ - "Sc", - "ene" - ], - [ - "▁block", - "ing" - ], - [ - "▁o", - "cean" - ], - [ - "ge", - "ben" - ], - [ - "geb", - "en" - ], - [ - "g", - "eben" - ], - [ - "▁Kil", - "ometer" - ], - [ - "▁b", - "edeut" - ], - [ - "▁M", - "ix" - ], - [ - "▁Mi", - "x" - ], - [ - "fm", - "t" - ], - [ - "f", - "mt" - ], - [ - "▁Nor", - "weg" - ], - [ - "▁ID", - "s" - ], - [ - "par", - "allel" - ], - [ - "▁ant", - "icip" - ], - [ - "▁anti", - "cip" - ], - [ - "▁re", - "vis" - ], - [ - "▁rev", - "is" - ], - [ - "ха", - "н" - ], - [ - "х", - "ан" - ], - [ - "▁с", - "вет" - ], - [ - "▁све", - "т" - ], - [ - "CA", - "SE" - ], - [ - "C", - "ASE" - ], - [ - "▁f", - "ührt" - ], - [ - "▁führ", - "t" - ], - [ - "▁", - "führt" - ], - [ - "▁at", - "omic" - ], - [ - "▁atom", - "ic" - ], - [ - "▁", - "atomic" - ], - [ - "▁dark", - "ness" - ], - [ - "▁Fußball", - "spieler" - ], - [ - "▁Ж", - "и" - ], - [ - "quis", - "ition" - ], - [ - "▁S", - "ieg" - ], - [ - "▁Sie", - "g" - ], - [ - "▁Si", - "eg" - ], - [ - "C", - "irc" - ], - [ - "▁c", - "ientí" - ], - [ - "ne", - "lle" - ], - [ - "nel", - "le" - ], - [ - "nell", - "e" - ], - [ - "n", - "elle" - ], - [ - "SH", - "A" - ], - [ - "S", - "HA" - ], - [ - "▁u", - "rb" - ], - [ - "▁ur", - "b" - ], - [ - "▁", - "urb" - ], - [ - "▁k", - "si" - ], - [ - "leq", - "slant" - ], - [ - "▁ф", - "рон" - ], - [ - "▁de", - "fect" - ], - [ - "▁def", - "ect" - ], - [ - "▁defe", - "ct" - ], - [ - "▁r", - "á" - ], - [ - "▁", - "rá" - ], - [ - "▁strong", - "er" - ], - [ - "▁p", - "ł" - ], - [ - "▁commun", - "ities" - ], - [ - "ни", - "на" - ], - [ - "нин", - "а" - ], - [ - "en", - "as" - ], - [ - "ena", - "s" - ], - [ - "e", - "nas" - ], - [ - "ienne", - "nt" - ], - [ - "ienn", - "ent" - ], - [ - "▁safe", - "ly" - ], - [ - "▁saf", - "ely" - ], - [ - "▁т", - "я" - ], - [ - "▁", - "тя" - ], - [ - "▁ben", - "chmark" - ], - [ - "▁Bra", - "un" - ], - [ - "method", - "s" - ], - [ - "arg", - "ument" - ], - [ - "vo", - "s" - ], - [ - "v", - "os" - ], - [ - "ob", - "ox" - ], - [ - "o", - "box" - ], - [ - "ро", - "ви" - ], - [ - "ров", - "и" - ], - [ - "р", - "ови" - ], - [ - "▁recher", - "che" - ], - [ - "m", - "n" - ], - [ - "▁br", - "ings" - ], - [ - "▁bring", - "s" - ], - [ - "m", - "achine" - ], - [ - "CE", - "SS" - ], - [ - "CES", - "S" - ], - [ - "host", - "s" - ], - [ - "hos", - "ts" - ], - [ - "▁N", - "Y" - ], - [ - "Aut", - "ow" - ], - [ - "Auto", - "w" - ], - [ - "▁сов", - "ремен" - ], - [ - "▁G", - "ary" - ], - [ - "▁Gar", - "y" - ], - [ - "▁Ga", - "ry" - ], - [ - "▁s", - "ensor" - ], - [ - "▁sens", - "or" - ], - [ - "▁document", - "ed" - ], - [ - "▁pr", - "endre" - ], - [ - "▁prend", - "re" - ], - [ - "▁pe", - "er" - ], - [ - "en", - "ix" - ], - [ - "eni", - "x" - ], - [ - "ha", - "i" - ], - [ - "h", - "ai" - ], - [ - "ar", - "be" - ], - [ - "цен", - "т" - ], - [ - "ц", - "ент" - ], - [ - "_", - "(" - ], - [ - "▁U", - "RI" - ], - [ - "▁", - "URI" - ], - [ - "ев", - "а" - ], - [ - "е", - "ва" - ], - [ - "▁Re", - "gie" - ], - [ - "▁Reg", - "ie" - ], - [ - "▁Mon", - "ument" - ], - [ - "▁onder", - "werp" - ], - [ - "B", - "ag" - ], - [ - "ti", - "t" - ], - [ - "t", - "it" - ], - [ - "▁st", - "ir" - ], - [ - "▁n", - "erv" - ], - [ - "▁ne", - "rv" - ], - [ - "▁ner", - "v" - ], - [ - "стор", - "ія" - ], - [ - "▁s", - "ov" - ], - [ - "▁so", - "v" - ], - [ - "▁writ", - "ers" - ], - [ - "▁write", - "rs" - ], - [ - "▁writer", - "s" - ], - [ - "▁sort", - "s" - ], - [ - "▁sor", - "ts" - ], - [ - "ab", - "solute" - ], - [ - "▁difficult", - "ies" - ], - [ - "▁par", - "lament" - ], - [ - "▁parl", - "ament" - ], - [ - "▁IE", - "numerable" - ], - [ - "▁dis", - "sol" - ], - [ - "▁diss", - "ol" - ], - [ - "▁CH", - "ECK" - ], - [ - "ar", - "ina" - ], - [ - "ari", - "na" - ], - [ - "arin", - "a" - ], - [ - "in", - "burgh" - ], - [ - "D", - "M" - ], - [ - "▁e", - "ind" - ], - [ - "▁ein", - "d" - ], - [ - "▁bud", - "get" - ], - [ - "▁cert", - "ains" - ], - [ - "▁certain", - "s" - ], - [ - "▁för", - "sta" - ], - [ - "▁först", - "a" - ], - [ - "an", - "ja" - ], - [ - "a", - "nja" - ], - [ - "▁го", - "дов" - ], - [ - "▁год", - "ов" - ], - [ - "▁т", - "ек" - ], - [ - "▁те", - "к" - ], - [ - "▁", - "тек" - ], - [ - "▁D", - "uch" - ], - [ - "▁Du", - "ch" - ], - [ - "▁Duc", - "h" - ], - [ - "gu", - "i" - ], - [ - "g", - "ui" - ], - [ - "▁Te", - "ams" - ], - [ - "▁Team", - "s" - ], - [ - "▁мно", - "ги" - ], - [ - "Mar", - "ie" - ], - [ - "Ma", - "rie" - ], - [ - "M", - "arie" - ], - [ - "In", - "tegr" - ], - [ - "Int", - "egr" - ], - [ - "Thread", - "Pool" - ], - [ - "ru", - "st" - ], - [ - "rus", - "t" - ], - [ - "r", - "ust" - ], - [ - "í", - "k" - ], - [ - "%", - "\"" - ], - [ - "en", - "f" - ], - [ - "sp", - "l" - ], - [ - "s", - "pl" - ], - [ - "▁be", - "gun" - ], - [ - "▁beg", - "un" - ], - [ - "lo", - "u" - ], - [ - "l", - "ou" - ], - [ - "▁Rewrite", - "Rule" - ], - [ - "tu", - "ple" - ], - [ - "ane", - "ous" - ], - [ - "▁mar", - "ine" - ], - [ - "▁mari", - "ne" - ], - [ - "▁", - "marine" - ], - [ - "at", - "tan" - ], - [ - "att", - "an" - ], - [ - "atta", - "n" - ], - [ - "ik", - "al" - ], - [ - "ika", - "l" - ], - [ - "i", - "kal" - ], - [ - "▁gradu", - "ated" - ], - [ - "il", - "lé" - ], - [ - "ill", - "é" - ], - [ - "▁про", - "ве" - ], - [ - "▁пров", - "е" - ], - [ - "▁пр", - "ове" - ], - [ - "▁Р", - "оз" - ], - [ - "▁Ро", - "з" - ], - [ - "',", - "\r" - ], - [ - "'", - ",\r" - ], - [ - "▁Pf", - "arr" - ], - [ - "▁n", - "ivel" - ], - [ - "▁ni", - "vel" - ], - [ - "▁пра", - "цю" - ], - [ - "mus", - "ic" - ], - [ - "▁set", - "Timeout" - ], - [ - "ER", - "S" - ], - [ - "E", - "RS" - ], - [ - "▁E", - "rik" - ], - [ - "▁Er", - "ik" - ], - [ - "pi", - "t" - ], - [ - "p", - "it" - ], - [ - "▁Х", - "ро" - ], - [ - "▁p", - "ił" - ], - [ - "▁pi", - "ł" - ], - [ - "▁p", - "eri" - ], - [ - "▁per", - "i" - ], - [ - "▁pe", - "ri" - ], - [ - "до", - "к" - ], - [ - "д", - "ок" - ], - [ - "us", - "zt" - ], - [ - "usz", - "t" - ], - [ - "▁B", - "ear" - ], - [ - "▁Be", - "ar" - ], - [ - "Class", - "Name" - ], - [ - "▁Par", - "lament" - ], - [ - "▁a", - "ix" - ], - [ - "▁ai", - "x" - ], - [ - "▁inv", - "ited" - ], - [ - "▁P", - "ATH" - ], - [ - "▁PA", - "TH" - ], - [ - "▁", - "PATH" - ], - [ - "xt", - "er" - ], - [ - "x", - "ter" - ], - [ - "▁R", - "ace" - ], - [ - "▁Ra", - "ce" - ], - [ - "▁h", - "echo" - ], - [ - "▁he", - "cho" - ], - [ - "▁T", - "ower" - ], - [ - "▁To", - "wer" - ], - [ - "▁Tow", - "er" - ], - [ - "▁u", - "tf" - ], - [ - "▁ut", - "f" - ], - [ - "▁", - "utf" - ], - [ - "act", - "ly" - ], - [ - "▁бу", - "де" - ], - [ - "▁ang", - "les" - ], - [ - "▁angle", - "s" - ], - [ - "▁", - "angles" - ], - [ - "ня", - "я" - ], - [ - "ouv", - "elles" - ], - [ - "ouve", - "lles" - ], - [ - "ouvel", - "les" - ], - [ - "ouvelle", - "s" - ], - [ - "▁cl", - "imate" - ], - [ - "▁cli", - "mate" - ], - [ - "▁clim", - "ate" - ], - [ - "▁sing", - "ing" - ], - [ - "▁sin", - "ging" - ], - [ - "▁navig", - "ate" - ], - [ - ">'", - ";" - ], - [ - ">", - "';" - ], - [ - "ad", - "ows" - ], - [ - "ado", - "ws" - ], - [ - "adow", - "s" - ], - [ - "▁l", - "eta" - ], - [ - "▁le", - "ta" - ], - [ - "▁let", - "a" - ], - [ - "▁S", - "itz" - ], - [ - "▁Si", - "tz" - ], - [ - "▁Sit", - "z" - ], - [ - "▁part", - "itions" - ], - [ - "▁partition", - "s" - ], - [ - "▁d", - "ock" - ], - [ - "▁do", - "ck" - ], - [ - "▁doc", - "k" - ], - [ - "▁ż", - "y" - ], - [ - "▁", - "ży" - ], - [ - "▁alloc", - "ate" - ], - [ - "▁benef", - "its" - ], - [ - "▁benefit", - "s" - ], - [ - "▁n", - "ieder" - ], - [ - "▁nie", - "der" - ], - [ - "▁ni", - "eder" - ], - [ - "xp", - "ath" - ], - [ - "x", - "path" - ], - [ - "me", - "ck" - ], - [ - "äl", - "le" - ], - [ - "äll", - "e" - ], - [ - "ä", - "lle" - ], - [ - "▁cou", - "pling" - ], - [ - "▁coup", - "ling" - ], - [ - "жи", - "л" - ], - [ - "ж", - "ил" - ], - [ - "For", - "Key" - ], - [ - "ar", - "gent" - ], - [ - "arg", - "ent" - ], - [ - "cl", - "ou" - ], - [ - "clo", - "u" - ], - [ - "c", - "lou" - ], - [ - "▁instru", - "ments" - ], - [ - "▁instrument", - "s" - ], - [ - "▁ent", - "hus" - ], - [ - "▁m", - "ég" - ], - [ - "▁mé", - "g" - ], - [ - "▁Па", - "в" - ], - [ - "▁R", - "ach" - ], - [ - "▁Ra", - "ch" - ], - [ - "--", - "---" - ], - [ - "----", - "-" - ], - [ - "---", - "--" - ], - [ - "-", - "----" - ], - [ - "▁API", - "s" - ], - [ - "▁AP", - "Is" - ], - [ - "▁V", - "ier" - ], - [ - "▁Vi", - "er" - ], - [ - "▁Vie", - "r" - ], - [ - "C", - "md" - ], - [ - "it", - "ore" - ], - [ - "ito", - "re" - ], - [ - "itor", - "e" - ], - [ - "▁C", - "uba" - ], - [ - "▁Cu", - "ba" - ], - [ - "▁Cub", - "a" - ], - [ - "▁dátum", - "mal" - ], - [ - "▁embed", - "ding" - ], - [ - "std", - "io" - ], - [ - "▁Gil", - "bert" - ], - [ - "▁ge", - "prüft" - ], - [ - "▁st", - "ating" - ], - [ - "▁stat", - "ing" - ], - [ - "▁sta", - "ting" - ], - [ - "▁stati", - "ng" - ], - [ - "▁trigger", - "s" - ], - [ - "▁trig", - "gers" - ], - [ - "+", - "=" - ], - [ - "▁spé", - "cial" - ], - [ - "▁del", - "iber" - ], - [ - "▁deli", - "ber" - ], - [ - "ми", - "н" - ], - [ - "м", - "ин" - ], - [ - "Pro", - "du" - ], - [ - "Pr", - "odu" - ], - [ - "P", - "rodu" - ], - [ - "▁St", - "ati" - ], - [ - "▁Stat", - "i" - ], - [ - "▁Sta", - "ti" - ], - [ - "▁z", - "us" - ], - [ - "▁zu", - "s" - ], - [ - "kt", - "ionen" - ], - [ - "ktion", - "en" - ], - [ - "Dispatch", - "er" - ], - [ - "id", - "al" - ], - [ - "ida", - "l" - ], - [ - "i", - "dal" - ], - [ - "▁L", - "P" - ], - [ - "▁", - "LP" - ], - [ - "op", - "tera" - ], - [ - "opt", - "era" - ], - [ - "opter", - "a" - ], - [ - "▁e", - "star" - ], - [ - "▁est", - "ar" - ], - [ - "▁es", - "tar" - ], - [ - "▁esta", - "r" - ], - [ - "▁зна", - "чи" - ], - [ - "с", - "мо" - ], - [ - "ous", - "es" - ], - [ - "ouse", - "s" - ], - [ - "o", - "uses" - ], - [ - "eng", - "ono" - ], - [ - "engo", - "no" - ], - [ - "▁W", - "PF" - ], - [ - "pub", - "lish" - ], - [ - "▁t", - "eor" - ], - [ - "▁te", - "or" - ], - [ - "el", - "if" - ], - [ - "eli", - "f" - ], - [ - "▁e", - "rg" - ], - [ - "▁er", - "g" - ], - [ - "▁", - "erg" - ], - [ - "▁separ", - "ation" - ], - [ - "Pa", - "n" - ], - [ - "P", - "an" - ], - [ - "▁Or", - "chestra" - ], - [ - "Pe", - "ter" - ], - [ - "P", - "eter" - ], - [ - "bound", - "s" - ], - [ - "b", - "ounds" - ], - [ - "▁Shakespe", - "are" - ], - [ - "▁cant", - "ante" - ], - [ - "▁d", - "emi" - ], - [ - "▁de", - "mi" - ], - [ - "▁dem", - "i" - ], - [ - "▁Pop", - "ular" - ], - [ - "ф", - "р" - ], - [ - "ar", - "ring" - ], - [ - "arr", - "ing" - ], - [ - "ци", - "н" - ], - [ - "ц", - "ин" - ], - [ - "▁И", - "с" - ], - [ - "vo", - "n" - ], - [ - "v", - "on" - ], - [ - "▁subst", - "itution" - ], - [ - "▁lí", - "nea" - ], - [ - "\\}$", - "." - ], - [ - "\\}", - "$." - ], - [ - "\\", - "}$." - ], - [ - "com", - "o" - ], - [ - "co", - "mo" - ], - [ - "c", - "omo" - ], - [ - "▁ва", - "ж" - ], - [ - "wa", - "gen" - ], - [ - "w", - "agen" - ], - [ - "▁rare", - "ly" - ], - [ - "▁period", - "s" - ], - [ - "▁peri", - "ods" - ], - [ - "gl", - "ob" - ], - [ - "g", - "lob" - ], - [ - "▁F", - "rid" - ], - [ - "▁Fr", - "id" - ], - [ - "▁Fri", - "d" - ], - [ - "▁T", - "err" - ], - [ - "▁Te", - "rr" - ], - [ - "▁Ter", - "r" - ], - [ - "▁Re", - "lease" - ], - [ - "▁", - "Release" - ], - [ - "Brain", - "z" - ], - [ - "▁гра", - "ф" - ], - [ - "▁", - "граф" - ], - [ - "DI", - "S" - ], - [ - "D", - "IS" - ], - [ - "compat", - "ible" - ], - [ - "▁po", - "č" - ], - [ - "LI", - "N" - ], - [ - "L", - "IN" - ], - [ - "▁K", - "ällor" - ], - [ - "▁A", - "rizona" - ], - [ - "pp", - "y" - ], - [ - "p", - "py" - ], - [ - "Se", - "q" - ], - [ - "S", - "eq" - ], - [ - "▁A", - "in" - ], - [ - "▁T", - "ourn" - ], - [ - "▁To", - "urn" - ], - [ - "▁Tour", - "n" - ], - [ - "br", - "ow" - ], - [ - "bro", - "w" - ], - [ - "b", - "row" - ], - [ - "▁K", - "ör" - ], - [ - "▁Kö", - "r" - ], - [ - "▁a", - "sh" - ], - [ - "▁as", - "h" - ], - [ - "▁", - "ash" - ], - [ - "ogene", - "ous" - ], - [ - "▁dia", - "lect" - ], - [ - "▁насе", - "ља" - ], - [ - "mysql", - "i" - ], - [ - "mysq", - "li" - ], - [ - "цо", - "в" - ], - [ - "ц", - "ов" - ], - [ - "▁f", - "lor" - ], - [ - "▁fl", - "or" - ], - [ - "▁flo", - "r" - ], - [ - "▁ф", - "ло" - ], - [ - "IA", - "B" - ], - [ - "I", - "AB" - ], - [ - "▁With", - "in" - ], - [ - "▁Wit", - "hin" - ], - [ - "^", - "(" - ], - [ - "▁b", - "ois" - ], - [ - "▁bo", - "is" - ], - [ - "▁t", - "ank" - ], - [ - "▁tan", - "k" - ], - [ - "▁aff", - "ili" - ], - [ - "▁h", - "ijo" - ], - [ - "▁hij", - "o" - ], - [ - "▁hi", - "jo" - ], - [ - "▁K", - "ate" - ], - [ - "▁Kat", - "e" - ], - [ - "▁Ka", - "te" - ], - [ - "▁Ver", - "l" - ], - [ - "▁Ve", - "rl" - ], - [ - "▁M", - "iami" - ], - [ - "▁Mi", - "ami" - ], - [ - "▁type", - "script" - ], - [ - "▁types", - "cript" - ], - [ - "њ", - "у" - ], - [ - "▁V", - "ern" - ], - [ - "▁Ver", - "n" - ], - [ - "▁Ve", - "rn" - ], - [ - "▁ви", - "со" - ], - [ - "ie", - "mann" - ], - [ - "iem", - "ann" - ], - [ - "i", - "emann" - ], - [ - "▁co", - "verage" - ], - [ - "▁cover", - "age" - ], - [ - "br", - "ie" - ], - [ - "b", - "rie" - ], - [ - "▁Start", - "ing" - ], - [ - "▁Star", - "ting" - ], - [ - "num", - "py" - ], - [ - "▁J", - "enkins" - ], - [ - "▁Jen", - "kins" - ], - [ - "▁k", - "ét" - ], - [ - "▁ké", - "t" - ], - [ - "▁g", - "rup" - ], - [ - "▁gr", - "up" - ], - [ - "▁gru", - "p" - ], - [ - "▁S", - "cient" - ], - [ - "▁Sc", - "ient" - ], - [ - "▁Sci", - "ent" - ], - [ - "▁inter", - "rupt" - ], - [ - "▁b", - "lob" - ], - [ - "▁bl", - "ob" - ], - [ - "▁blo", - "b" - ], - [ - "▁", - "blob" - ], - [ - "ug", - "el" - ], - [ - "uge", - "l" - ], - [ - "u", - "gel" - ], - [ - "▁Or", - "th" - ], - [ - "▁Ort", - "h" - ], - [ - "ab", - "ama" - ], - [ - "aba", - "ma" - ], - [ - "▁B", - "apt" - ], - [ - "▁Ba", - "pt" - ], - [ - "ow", - "nik" - ], - [ - "own", - "ik" - ], - [ - "▁бы", - "ть" - ], - [ - "▁Jul", - "ius" - ], - [ - "▁Ju", - "lius" - ], - [ - "▁Juli", - "us" - ], - [ - "▁П", - "рез" - ], - [ - "▁Пре", - "з" - ], - [ - "▁subst", - "itute" - ], - [ - "support", - "ed" - ], - [ - "supp", - "orted" - ], - [ - "ch", - "y" - ], - [ - "c", - "hy" - ], - [ - "egy", - "zetek" - ], - [ - "▁Per", - "formance" - ], - [ - "▁Perform", - "ance" - ], - [ - "less", - "ly" - ], - [ - "Con", - "structor" - ], - [ - "▁ext", - "ending" - ], - [ - "▁extend", - "ing" - ], - [ - "▁Mus", - "lim" - ], - [ - "Over", - "flow" - ], - [ - "▁J", - "enn" - ], - [ - "▁Je", - "nn" - ], - [ - "▁Jen", - "n" - ], - [ - "▁produ", - "z" - ], - [ - "▁prod", - "uz" - ], - [ - "мі", - "ї" - ], - [ - "м", - "ії" - ], - [ - "▁país", - "es" - ], - [ - "▁e", - "ux" - ], - [ - "▁eu", - "x" - ], - [ - "▁f", - "ate" - ], - [ - "▁fa", - "te" - ], - [ - "▁fat", - "e" - ], - [ - "ol", - "oge" - ], - [ - "olog", - "e" - ], - [ - "olo", - "ge" - ], - [ - "у", - "к" - ], - [ - "▁wo", - "bei" - ], - [ - "▁wob", - "ei" - ], - [ - "▁S", - "achsen" - ], - [ - "▁Sach", - "sen" - ], - [ - "▁са", - "йт" - ], - [ - "▁сай", - "т" - ], - [ - "Mod", - "els" - ], - [ - "Model", - "s" - ], - [ - "Mode", - "ls" - ], - [ - "▁F", - "ast" - ], - [ - "▁Fa", - "st" - ], - [ - "bes", - "ondere" - ], - [ - "▁F", - "R" - ], - [ - "▁", - "FR" - ], - [ - "▁a", - "con" - ], - [ - "▁ac", - "on" - ], - [ - "▁", - "acon" - ], - [ - "▁Den", - "kmal" - ], - [ - "▁an", - "ch" - ], - [ - "▁anc", - "h" - ], - [ - "▁", - "anch" - ], - [ - "▁públic", - "o" - ], - [ - "▁T", - "as" - ], - [ - "▁Ta", - "s" - ], - [ - "▁c", - "and" - ], - [ - "▁can", - "d" - ], - [ - "▁ca", - "nd" - ], - [ - "▁pa", - "ździer" - ], - [ - "▁М", - "он" - ], - [ - "▁Мо", - "н" - ], - [ - "▁vers", - "us" - ], - [ - "ru", - "t" - ], - [ - "r", - "ut" - ], - [ - "G", - "T" - ], - [ - "▁insert", - "ing" - ], - [ - "▁inser", - "ting" - ], - [ - "▁can", - "ad" - ], - [ - "▁ca", - "nad" - ], - [ - "є", - "м" - ], - [ - "▁M", - "etro" - ], - [ - "▁Met", - "ro" - ], - [ - "▁Herz", - "og" - ], - [ - "Ign", - "ore" - ], - [ - "▁decre", - "ase" - ], - [ - "▁п", - "ун" - ], - [ - "▁пу", - "н" - ], - [ - "▁F", - "ischer" - ], - [ - "▁M", - "all" - ], - [ - "▁Ma", - "ll" - ], - [ - "▁Mal", - "l" - ], - [ - "▁n", - "örd" - ], - [ - "io", - "stream" - ], - [ - "i", - "ostream" - ], - [ - "▁Lux", - "emb" - ], - [ - "pay", - "load" - ], - [ - "▁Ze", - "itung" - ], - [ - "▁Zeit", - "ung" - ], - [ - "▁mod", - "ifying" - ], - [ - "▁modify", - "ing" - ], - [ - "▁C", - "her" - ], - [ - "▁Ch", - "er" - ], - [ - "▁Che", - "r" - ], - [ - "▁Lu", - "ci" - ], - [ - "▁Luc", - "i" - ], - [ - "n", - "x" - ], - [ - "▁lo", - "ose" - ], - [ - "▁top", - "ics" - ], - [ - "▁topic", - "s" - ], - [ - "▁var", - "ied" - ], - [ - "▁vari", - "ed" - ], - [ - "▁va", - "ried" - ], - [ - "▁p", - "g" - ], - [ - "▁", - "pg" - ], - [ - "aj", - "es" - ], - [ - "aje", - "s" - ], - [ - "a", - "jes" - ], - [ - "um", - "m" - ], - [ - "u", - "mm" - ], - [ - "View", - "s" - ], - [ - "▁B", - "eau" - ], - [ - "▁Be", - "au" - ], - [ - "MA", - "P" - ], - [ - "M", - "AP" - ], - [ - "ip", - "eline" - ], - [ - "ipe", - "line" - ], - [ - "▁Inter", - "est" - ], - [ - "ar", - "ith" - ], - [ - "ari", - "th" - ], - [ - "▁seg", - "ún" - ], - [ - "▁Geme", - "ins" - ], - [ - "▁Att", - "ribute" - ], - [ - "▁", - "Attribute" - ], - [ - "comm", - "unity" - ], - [ - "▁цент", - "р" - ], - [ - "▁kil", - "ometer" - ], - [ - "▁kilomet", - "er" - ], - [ - "▁kilom", - "eter" - ], - [ - "▁é", - "conom" - ], - [ - "▁éc", - "onom" - ], - [ - "lar", - "ation" - ], - [ - "▁к", - "ъ" - ], - [ - "▁car", - "riage" - ], - [ - "▁carri", - "age" - ], - [ - "▁L", - "ane" - ], - [ - "▁La", - "ne" - ], - [ - "▁Lan", - "e" - ], - [ - "▁не", - "об" - ], - [ - "ku", - "r" - ], - [ - "k", - "ur" - ], - [ - "▁A", - "F" - ], - [ - "▁", - "AF" - ], - [ - "IN", - "TER" - ], - [ - "INT", - "ER" - ], - [ - "))", - "$" - ], - [ - ")", - ")$" - ], - [ - "▁be", - "ide" - ], - [ - "▁bei", - "de" - ], - [ - "dest", - "ination" - ], - [ - "▁font", - "s" - ], - [ - "▁fon", - "ts" - ], - [ - "▁", - "fonts" - ], - [ - "append", - "Child" - ], - [ - "▁M", - "AR" - ], - [ - "▁MA", - "R" - ], - [ - "▁g", - "ay" - ], - [ - "▁ga", - "y" - ], - [ - "mi", - "l" - ], - [ - "m", - "il" - ], - [ - "le", - "sh" - ], - [ - "les", - "h" - ], - [ - "l", - "esh" - ], - [ - "è", - "t" - ], - [ - "▁W", - "ang" - ], - [ - "▁Wa", - "ng" - ], - [ - "▁Y", - "ears" - ], - [ - "▁Year", - "s" - ], - [ - "▁Ye", - "ars" - ], - [ - "▁S", - "ymbol" - ], - [ - "▁Sym", - "bol" - ], - [ - "▁", - "Symbol" - ], - [ - "Li", - "ve" - ], - [ - "L", - "ive" - ], - [ - "qu", - "ency" - ], - [ - "▁U", - "sers" - ], - [ - "▁Use", - "rs" - ], - [ - "▁User", - "s" - ], - [ - "▁Us", - "ers" - ], - [ - "▁", - "Users" - ], - [ - "▁Un", - "icode" - ], - [ - "▁S", - "au" - ], - [ - "▁Sa", - "u" - ], - [ - "▁t", - "ons" - ], - [ - "▁to", - "ns" - ], - [ - "▁ton", - "s" - ], - [ - "▁", - "tons" - ], - [ - "▁Н", - "і" - ], - [ - "▁кра", - "ї" - ], - [ - "▁", - "краї" - ], - [ - "AX", - "I" - ], - [ - "▁P", - "ick" - ], - [ - "▁Pi", - "ck" - ], - [ - "▁Pic", - "k" - ], - [ - "A", - "I" - ], - [ - "▁h", - "ath" - ], - [ - "▁ha", - "th" - ], - [ - "▁hat", - "h" - ], - [ - "▁a", - "inda" - ], - [ - "▁ain", - "da" - ], - [ - "▁p", - "apa" - ], - [ - "▁pa", - "pa" - ], - [ - "▁pap", - "a" - ], - [ - "▁C", - "enso" - ], - [ - "▁B", - "ald" - ], - [ - "▁Ba", - "ld" - ], - [ - "▁Bal", - "d" - ], - [ - "▁Насе", - "ље" - ], - [ - "▁sim", - "ulations" - ], - [ - "▁simulation", - "s" - ], - [ - "▁j", - "aren" - ], - [ - "▁ja", - "ren" - ], - [ - "▁jar", - "en" - ], - [ - "▁inher", - "ited" - ], - [ - "▁inherit", - "ed" - ], - [ - "▁то", - "й" - ], - [ - "▁", - "той" - ], - [ - "▁fe", - "els" - ], - [ - "▁feel", - "s" - ], - [ - "▁fee", - "ls" - ], - [ - "ress", - "ion" - ], - [ - "r", - "ession" - ], - [ - "▁o", - "któber" - ], - [ - "bi", - "d" - ], - [ - "b", - "id" - ], - [ - "ás", - "i" - ], - [ - "á", - "si" - ], - [ - "▁m", - "uss" - ], - [ - "▁mus", - "s" - ], - [ - "▁mu", - "ss" - ], - [ - "vent", - "ory" - ], - [ - "▁me", - "ist" - ], - [ - "▁b", - "ore" - ], - [ - "▁bo", - "re" - ], - [ - "▁bor", - "e" - ], - [ - "▁sl", - "ider" - ], - [ - "▁slide", - "r" - ], - [ - "▁sli", - "der" - ], - [ - "▁", - "slider" - ], - [ - "де", - "ли" - ], - [ - "\\", - ";" - ], - [ - "▁extra", - "cted" - ], - [ - "▁extract", - "ed" - ], - [ - "ку", - "р" - ], - [ - "к", - "ур" - ], - [ - "Ed", - "ge" - ], - [ - "▁per", - "f" - ], - [ - "▁pe", - "rf" - ], - [ - "▁Brig", - "ade" - ], - [ - "▁гра", - "д" - ], - [ - "▁", - "град" - ], - [ - "ie", - "nie" - ], - [ - "ien", - "ie" - ], - [ - "i", - "enie" - ], - [ - "▁N", - "orden" - ], - [ - "▁Nor", - "den" - ], - [ - "▁Nord", - "en" - ], - [ - "▁c", - "ancer" - ], - [ - "▁can", - "cer" - ], - [ - "\"", - "/" - ], - [ - "C", - "ur" - ], - [ - "▁С", - "ере" - ], - [ - "▁Се", - "ре" - ], - [ - "▁Сер", - "е" - ], - [ - "▁liqu", - "id" - ], - [ - "str", - "ucture" - ], - [ - "struct", - "ure" - ], - [ - "▁cho", - "osing" - ], - [ - "▁Per", - "l" - ], - [ - "▁Pe", - "rl" - ], - [ - "Si", - "de" - ], - [ - "S", - "ide" - ], - [ - "ü", - "s" - ], - [ - "ри", - "тор" - ], - [ - "рито", - "р" - ], - [ - "рит", - "ор" - ], - [ - "▁k", - "ost" - ], - [ - "▁ko", - "st" - ], - [ - "▁pa", - "ckets" - ], - [ - "▁pack", - "ets" - ], - [ - "▁packet", - "s" - ], - [ - "▁кото", - "рого" - ], - [ - "▁Com", - "un" - ], - [ - "▁Co", - "mun" - ], - [ - "▁f", - "ingers" - ], - [ - "▁fin", - "gers" - ], - [ - "▁finger", - "s" - ], - [ - "ográ", - "fica" - ], - [ - ">", - ":" - ], - [ - "▁champion", - "nat" - ], - [ - "▁bl", - "ieb" - ], - [ - "▁S", - "itu" - ], - [ - "▁Si", - "tu" - ], - [ - "▁Sit", - "u" - ], - [ - "▁su", - "ic" - ], - [ - "an", - "dis" - ], - [ - "and", - "is" - ], - [ - "Fr", - "e" - ], - [ - "F", - "re" - ], - [ - "▁C", - "onc" - ], - [ - "▁Con", - "c" - ], - [ - "▁Co", - "nc" - ], - [ - "▁re", - "public" - ], - [ - "▁rep", - "ublic" - ], - [ - "▁repub", - "lic" - ], - [ - "▁ar", - "med" - ], - [ - "▁arm", - "ed" - ], - [ - "▁h", - "ell" - ], - [ - "▁he", - "ll" - ], - [ - "▁hel", - "l" - ], - [ - "▁", - "hell" - ], - [ - "▁h", - "ög" - ], - [ - "▁hö", - "g" - ], - [ - "rag", - "ma" - ], - [ - "▁en", - "se" - ], - [ - "▁ens", - "e" - ], - [ - "▁", - "ense" - ], - [ - "▁ac", - "res" - ], - [ - "▁В", - "ід" - ], - [ - "▁Ві", - "д" - ], - [ - "▁Re", - "form" - ], - [ - "▁Ref", - "orm" - ], - [ - "Main", - "Activity" - ], - [ - "ke", - "eper" - ], - [ - "keep", - "er" - ], - [ - "kee", - "per" - ], - [ - "er", - "b" - ], - [ - "e", - "rb" - ], - [ - "▁mon", - "aster" - ], - [ - "sub", - "subsection" - ], - [ - "▁Ди", - "в" - ], - [ - "▁cre", - "ature" - ], - [ - "▁indic", - "ating" - ], - [ - "▁url", - "s" - ], - [ - "▁ur", - "ls" - ], - [ - "▁", - "urls" - ], - [ - "▁k", - "ein" - ], - [ - "▁ke", - "in" - ], - [ - "об", - "раз" - ], - [ - "обра", - "з" - ], - [ - "pi", - "ck" - ], - [ - "pic", - "k" - ], - [ - "p", - "ick" - ], - [ - "▁Ad", - "mir" - ], - [ - "▁old", - "est" - ], - [ - "▁ol", - "dest" - ], - [ - "▁m", - "uz" - ], - [ - "▁mu", - "z" - ], - [ - "▁contra", - "diction" - ], - [ - "▁contrad", - "iction" - ], - [ - "▁contradict", - "ion" - ], - [ - "▁prob", - "abil" - ], - [ - "illi", - "ant" - ], - [ - "▁p", - "av" - ], - [ - "▁pa", - "v" - ], - [ - "▁pa", - "pel" - ], - [ - "▁pap", - "el" - ], - [ - "ub", - "s" - ], - [ - "u", - "bs" - ], - [ - "▁ж", - "ена" - ], - [ - "▁же", - "на" - ], - [ - "▁жен", - "а" - ], - [ - "▁", - "жена" - ], - [ - "AM", - "L" - ], - [ - "A", - "ML" - ], - [ - "▁re", - "cip" - ], - [ - "▁rec", - "ip" - ], - [ - "▁reci", - "p" - ], - [ - "▁C", - "OL" - ], - [ - "▁CO", - "L" - ], - [ - "▁", - "COL" - ], - [ - "ad", - "ded" - ], - [ - "add", - "ed" - ], - [ - "▁cl", - "ue" - ], - [ - "▁Uk", - "raine" - ], - [ - "▁Ukrain", - "e" - ], - [ - "▁jel", - "ent" - ], - [ - "че", - "нь" - ], - [ - "чен", - "ь" - ], - [ - "ч", - "ень" - ], - [ - "▁mathemat", - "ics" - ], - [ - "Ac", - "cept" - ], - [ - "▁с", - "от" - ], - [ - "▁со", - "т" - ], - [ - "▁се", - "вер" - ], - [ - "▁isol", - "ated" - ], - [ - "▁по", - "я" - ], - [ - "w", - "ür" - ], - [ - "Ro", - "uter" - ], - [ - "Route", - "r" - ], - [ - "Rout", - "er" - ], - [ - "R", - "outer" - ], - [ - "CA", - "T" - ], - [ - "C", - "AT" - ], - [ - "rg", - "b" - ], - [ - "r", - "gb" - ], - [ - "▁L", - "ov" - ], - [ - "▁Lo", - "v" - ], - [ - "mu", - "table" - ], - [ - "mut", - "able" - ], - [ - "m", - "utable" - ], - [ - "▁W", - "es" - ], - [ - "▁We", - "s" - ], - [ - "▁Ital", - "ien" - ], - [ - "Dra", - "g" - ], - [ - "Dr", - "ag" - ], - [ - "D", - "rag" - ], - [ - "en", - "ium" - ], - [ - "eni", - "um" - ], - [ - "at", - "ting" - ], - [ - "att", - "ing" - ], - [ - "atti", - "ng" - ], - [ - "tc", - "p" - ], - [ - "t", - "cp" - ], - [ - "▁erfolg", - "te" - ], - [ - "▁Be", - "it" - ], - [ - "▁Bei", - "t" - ], - [ - "га", - "то" - ], - [ - "▁System", - "s" - ], - [ - "▁Syst", - "ems" - ], - [ - "▁re", - "serve" - ], - [ - "▁res", - "erve" - ], - [ - "er", - "ee" - ], - [ - "ere", - "e" - ], - [ - "e", - "ree" - ], - [ - "▁Па", - "ри" - ], - [ - "▁Пар", - "и" - ], - [ - "▁з", - "али" - ], - [ - "▁за", - "ли" - ], - [ - "▁re", - "nt" - ], - [ - "▁r", - "ent" - ], - [ - "▁ren", - "t" - ], - [ - "▁", - "rent" - ], - [ - "▁s", - "unt" - ], - [ - "▁su", - "nt" - ], - [ - "▁sun", - "t" - ], - [ - "▁G", - "irls" - ], - [ - "▁Girl", - "s" - ], - [ - "▁Gir", - "ls" - ], - [ - "▁Er", - "nest" - ], - [ - "▁Ern", - "est" - ], - [ - "▁f", - "its" - ], - [ - "▁fi", - "ts" - ], - [ - "▁fit", - "s" - ], - [ - "▁op", - "pon" - ], - [ - "▁opp", - "on" - ], - [ - "▁живе", - "ло" - ], - [ - "▁av", - "aient" - ], - [ - "▁Flor", - "ence" - ], - [ - "▁Flo", - "rence" - ], - [ - "▁чи", - "сле" - ], - [ - "▁eng", - "ines" - ], - [ - "▁engine", - "s" - ], - [ - "D", - "ynamic" - ], - [ - "▁stycz", - "nia" - ], - [ - "▁b", - "ias" - ], - [ - "▁bi", - "as" - ], - [ - "▁Ex", - "change" - ], - [ - "ди", - "й" - ], - [ - "▁histor", - "iques" - ], - [ - "▁historique", - "s" - ], - [ - "▁H", - "ä" - ], - [ - "ho", - "d" - ], - [ - "h", - "od" - ], - [ - "▁w", - "ł" - ], - [ - "sch", - "ap" - ], - [ - "▁l", - "ac" - ], - [ - "▁la", - "c" - ], - [ - "▁", - "lac" - ], - [ - "▁F", - "oi" - ], - [ - "▁Fo", - "i" - ], - [ - "▁d", - "well" - ], - [ - "▁dw", - "ell" - ], - [ - "▁Unter", - "nehmen" - ], - [ - "UR", - "N" - ], - [ - "▁kilomet", - "res" - ], - [ - "▁Одна", - "ко" - ], - [ - "к", - "ли" - ], - [ - "▁S", - "ri" - ], - [ - "▁Sr", - "i" - ], - [ - "Gr", - "oups" - ], - [ - "Group", - "s" - ], - [ - "min", - "d" - ], - [ - "mi", - "nd" - ], - [ - "m", - "ind" - ], - [ - "os", - "lov" - ], - [ - "fer", - "n" - ], - [ - "fe", - "rn" - ], - [ - "f", - "ern" - ], - [ - "eg", - "u" - ], - [ - "e", - "gu" - ], - [ - "abel", - "ed" - ], - [ - "abe", - "led" - ], - [ - "F", - "iddle" - ], - [ - "▁Cent", - "ury" - ], - [ - "/", - "-" - ], - [ - "▁J", - "egyzetek" - ], - [ - "He", - "n" - ], - [ - "H", - "en" - ], - [ - "ens", - "emble" - ], - [ - "▁G", - "ut" - ], - [ - "▁Gu", - "t" - ], - [ - "_{", - "{\\" - ], - [ - "_", - "{{\\" - ], - [ - "▁ran", - "king" - ], - [ - "▁rank", - "ing" - ], - [ - "+", - "$" - ], - [ - "ал", - "а" - ], - [ - "а", - "ла" - ], - [ - "▁#", - "{" - ], - [ - "▁", - "#{" - ], - [ - "im", - "ientos" - ], - [ - "imiento", - "s" - ], - [ - "ach", - "im" - ], - [ - "ac", - "him" - ], - [ - "achi", - "m" - ], - [ - "ri", - "des" - ], - [ - "ride", - "s" - ], - [ - "rid", - "es" - ], - [ - "r", - "ides" - ], - [ - "▁K", - "laus" - ], - [ - "▁Kl", - "aus" - ], - [ - "▁int", - "end" - ], - [ - "▁inte", - "nd" - ], - [ - "▁inten", - "d" - ], - [ - "▁Kent", - "ucky" - ], - [ - "ci", - "pe" - ], - [ - "cip", - "e" - ], - [ - "c", - "ipe" - ], - [ - "▁D", - "ienst" - ], - [ - "▁Di", - "enst" - ], - [ - "▁situ", - "ated" - ], - [ - "▁pó", - "ź" - ], - [ - "▁s", - "crit" - ], - [ - "▁sc", - "rit" - ], - [ - "▁scr", - "it" - ], - [ - "▁scri", - "t" - ], - [ - "cl", - "ip" - ], - [ - "cli", - "p" - ], - [ - "c", - "lip" - ], - [ - "не", - "т" - ], - [ - "н", - "ет" - ], - [ - "ta", - "bles" - ], - [ - "table", - "s" - ], - [ - "tab", - "les" - ], - [ - "t", - "ables" - ], - [ - "▁N", - "ied" - ], - [ - "▁Ni", - "ed" - ], - [ - "▁Nie", - "d" - ], - [ - "▁Mc", - "K" - ], - [ - "▁pow", - "st" - ], - [ - "▁kun", - "nen" - ], - [ - "▁Ev", - "ans" - ], - [ - "▁Eva", - "ns" - ], - [ - "ж", - "ды" - ], - [ - "ва", - "ть" - ], - [ - "ват", - "ь" - ], - [ - "uch", - "ar" - ], - [ - "uc", - "har" - ], - [ - "ucha", - "r" - ], - [ - "u", - "char" - ], - [ - "▁res", - "idents" - ], - [ - "▁resid", - "ents" - ], - [ - "▁resident", - "s" - ], - [ - "ia", - "k" - ], - [ - "i", - "ak" - ], - [ - "▁Re", - "sol" - ], - [ - "▁Res", - "ol" - ], - [ - "▁", - "Resol" - ], - [ - "▁ve", - "ces" - ], - [ - "▁vec", - "es" - ], - [ - "▁satisf", - "ying" - ], - [ - "▁satisfy", - "ing" - ], - [ - "IN", - "F" - ], - [ - "I", - "NF" - ], - [ - "▁с", - "ин" - ], - [ - "▁си", - "н" - ], - [ - "▁cross", - "ing" - ], - [ - "ib", - "en" - ], - [ - "ibe", - "n" - ], - [ - "i", - "ben" - ], - [ - "▁ши", - "ро" - ], - [ - "pt", - "o" - ], - [ - "p", - "to" - ], - [ - "IL", - "L" - ], - [ - "I", - "LL" - ], - [ - "▁ро", - "ль" - ], - [ - "▁a", - "ktiv" - ], - [ - "▁akt", - "iv" - ], - [ - "▁обра", - "щения" - ], - [ - "Wik", - "ispecies" - ], - [ - "▁Hö", - "he" - ], - [ - "cr", - "o" - ], - [ - "c", - "ro" - ], - [ - "══", - "══" - ], - [ - "al", - "tra" - ], - [ - "alt", - "ra" - ], - [ - "▁FI", - "LE" - ], - [ - "▁", - "FILE" - ], - [ - "▁u", - "ps" - ], - [ - "▁up", - "s" - ], - [ - "▁", - "ups" - ], - [ - "▁al", - "location" - ], - [ - "▁all", - "ocation" - ], - [ - "▁alloc", - "ation" - ], - [ - "▁allo", - "cation" - ], - [ - "Mich", - "ael" - ], - [ - "▁acknow", - "led" - ], - [ - "Lin", - "ux" - ], - [ - "▁met", - "ros" - ], - [ - "▁", - "metros" - ], - [ - "tt", - "e" - ], - [ - "t", - "te" - ], - [ - "af", - "en" - ], - [ - "a", - "fen" - ], - [ - "▁x", - "code" - ], - [ - "▁тра", - "ди" - ], - [ - "spe", - "cies" - ], - [ - "spec", - "ies" - ], - [ - "s", - "pecies" - ], - [ - "▁inj", - "ury" - ], - [ - "▁са", - "мы" - ], - [ - "▁сам", - "ы" - ], - [ - "▁l", - "attice" - ], - [ - "M", - "aterial" - ], - [ - "and", - "enburg" - ], - [ - "anden", - "burg" - ], - [ - "▁huvud", - "staden" - ], - [ - "st", - "ory" - ], - [ - "sto", - "ry" - ], - [ - "stor", - "y" - ], - [ - "▁var", - "ying" - ], - [ - "▁vary", - "ing" - ], - [ - "▁kö", - "vet" - ], - [ - "▁Росси", - "йской" - ], - [ - "ir", - "se" - ], - [ - "irs", - "e" - ], - [ - "▁d", - "rum" - ], - [ - "▁dr", - "um" - ], - [ - "▁dru", - "m" - ], - [ - "Pr", - "essed" - ], - [ - "Press", - "ed" - ], - [ - "Pres", - "sed" - ], - [ - "La", - "r" - ], - [ - "L", - "ar" - ], - [ - "▁A", - "gu" - ], - [ - "▁Ag", - "u" - ], - [ - "▁w", - "eil" - ], - [ - "▁we", - "il" - ], - [ - "▁comm", - "ence" - ], - [ - "▁Seg", - "ún" - ], - [ - "Gest", - "ure" - ], - [ - "Sh", - "ape" - ], - [ - "S", - "hape" - ], - [ - "▁V", - "ors" - ], - [ - "▁Vo", - "rs" - ], - [ - "▁Vor", - "s" - ], - [ - "▁succ", - "ès" - ], - [ - "▁correct", - "ed" - ], - [ - "▁corre", - "cted" - ], - [ - "▁corr", - "ected" - ], - [ - "K", - "ar" - ], - [ - "▁cr", - "uel" - ], - [ - "▁cru", - "el" - ], - [ - "▁polit", - "ico" - ], - [ - "▁Schrift", - "steller" - ], - [ - "▁ris", - "ult" - ], - [ - "et", - "u" - ], - [ - "e", - "tu" - ], - [ - "arch", - "iv" - ], - [ - "▁gén", - "ero" - ], - [ - "▁gé", - "nero" - ], - [ - "▁L", - "ü" - ], - [ - "▁tri", - "umph" - ], - [ - "OR", - "S" - ], - [ - "O", - "RS" - ], - [ - "L", - "u" - ], - [ - "▁person", - "nel" - ], - [ - "▁personn", - "el" - ], - [ - "▁personne", - "l" - ], - [ - "▁H", - "ills" - ], - [ - "▁Hill", - "s" - ], - [ - "▁Hil", - "ls" - ], - [ - "as", - "set" - ], - [ - "ass", - "et" - ], - [ - "asse", - "t" - ], - [ - "do", - "min" - ], - [ - "dom", - "in" - ], - [ - "d", - "omin" - ], - [ - "Rece", - "ive" - ], - [ - "▁O", - "ak" - ], - [ - "▁K", - "no" - ], - [ - "▁Kn", - "o" - ], - [ - "▁The", - "ory" - ], - [ - "ir", - "ie" - ], - [ - "iri", - "e" - ], - [ - "i", - "rie" - ], - [ - "ow", - "an" - ], - [ - "owa", - "n" - ], - [ - "o", - "wan" - ], - [ - "▁est", - "ava" - ], - [ - "▁esta", - "va" - ], - [ - "▁exec", - "utes" - ], - [ - "▁execute", - "s" - ], - [ - "▁execut", - "es" - ], - [ - "й", - "т" - ], - [ - "óp", - "ez" - ], - [ - "ó", - "pez" - ], - [ - "по", - "ло" - ], - [ - "пол", - "о" - ], - [ - "п", - "оло" - ], - [ - "ét", - "ica" - ], - [ - "▁назва", - "ние" - ], - [ - "▁conver", - "ges" - ], - [ - "▁not", - "re" - ], - [ - "▁no", - "tre" - ], - [ - "▁pop", - "ulated" - ], - [ - "▁popula", - "ted" - ], - [ - "▁popul", - "ated" - ], - [ - "▁populate", - "d" - ], - [ - "▁mov", - "ements" - ], - [ - "▁move", - "ments" - ], - [ - "▁movement", - "s" - ], - [ - "▁statist", - "ical" - ], - [ - "▁Zwe", - "iten" - ], - [ - "qu", - "in" - ], - [ - "qui", - "n" - ], - [ - "▁import", - "antes" - ], - [ - "▁important", - "es" - ], - [ - "▁importante", - "s" - ], - [ - "▁k", - "lein" - ], - [ - "▁kle", - "in" - ], - [ - "▁kl", - "ein" - ], - [ - "▁Seg", - "unda" - ], - [ - "schließ", - "end" - ], - [ - "Fail", - "ure" - ], - [ - "na", - "r" - ], - [ - "n", - "ar" - ], - [ - "da", - "g" - ], - [ - "d", - "ag" - ], - [ - "▁ru", - "olo" - ], - [ - "▁f", - "iction" - ], - [ - "▁fi", - "ction" - ], - [ - "▁fic", - "tion" - ], - [ - "▁fict", - "ion" - ], - [ - "▁исполь", - "зу" - ], - [ - "▁cr", - "isis" - ], - [ - "▁Get", - "ting" - ], - [ - ",", - "%" - ], - [ - "▁ар", - "мии" - ], - [ - "▁cam", - "pus" - ], - [ - "▁camp", - "us" - ], - [ - "▁fo", - "oter" - ], - [ - "▁foot", - "er" - ], - [ - "▁foo", - "ter" - ], - [ - "▁", - "footer" - ], - [ - "▁d", - "ías" - ], - [ - "▁día", - "s" - ], - [ - "▁dí", - "as" - ], - [ - "ба", - "н" - ], - [ - "б", - "ан" - ], - [ - "▁liber", - "ty" - ], - [ - "▁libert", - "y" - ], - [ - "▁g", - "h" - ], - [ - "▁", - "gh" - ], - [ - "▁cham", - "ber" - ], - [ - "▁district", - "s" - ], - [ - "▁exc", - "ited" - ], - [ - "▁can", - "ción" - ], - [ - "ter", - "o" - ], - [ - "te", - "ro" - ], - [ - "t", - "ero" - ], - [ - "▁Work", - "ing" - ], - [ - "▁Wor", - "king" - ], - [ - "▁czę", - "ści" - ], - [ - "ль", - "ный" - ], - [ - "▁f", - "orum" - ], - [ - "▁for", - "um" - ], - [ - "▁fo", - "rum" - ], - [ - "▁", - "forum" - ], - [ - "▁E", - "he" - ], - [ - "▁ка", - "та" - ], - [ - "▁", - "ката" - ], - [ - "it", - "ations" - ], - [ - "itation", - "s" - ], - [ - "itat", - "ions" - ], - [ - "To", - "ols" - ], - [ - "Tool", - "s" - ], - [ - "T", - "ools" - ], - [ - "ach", - "iv" - ], - [ - "achi", - "v" - ], - [ - "▁c", - "res" - ], - [ - "▁cre", - "s" - ], - [ - "▁cr", - "es" - ], - [ - "as", - "to" - ], - [ - "ast", - "o" - ], - [ - "a", - "sto" - ], - [ - "▁re", - "ver" - ], - [ - "▁r", - "ever" - ], - [ - "▁rev", - "er" - ], - [ - "▁reve", - "r" - ], - [ - "▁n", - "azionale" - ], - [ - "▁naz", - "ionale" - ], - [ - "▁do", - "ors" - ], - [ - "▁door", - "s" - ], - [ - "▁N", - "ancy" - ], - [ - "▁Nan", - "cy" - ], - [ - "▁is", - "lands" - ], - [ - "▁island", - "s" - ], - [ - "Im", - "p" - ], - [ - "I", - "mp" - ], - [ - "▁Ch", - "air" - ], - [ - "▁Cha", - "ir" - ], - [ - "▁v", - "orm" - ], - [ - "▁vo", - "rm" - ], - [ - "▁vor", - "m" - ], - [ - "se", - "in" - ], - [ - "s", - "ein" - ], - [ - "▁до", - "ку" - ], - [ - "er", - "set" - ], - [ - "ers", - "et" - ], - [ - "▁tät", - "ig" - ], - [ - "▁K", - "rit" - ], - [ - "▁Kr", - "it" - ], - [ - "▁п", - "я" - ], - [ - "▁cons", - "ervation" - ], - [ - "▁conserv", - "ation" - ], - [ - "▁Part", - "ido" - ], - [ - "▁Parti", - "do" - ], - [ - "min", - "ipage" - ], - [ - "Valid", - "ator" - ], - [ - "▁rec", - "overy" - ], - [ - "▁recover", - "y" - ], - [ - "▁NA", - "SA" - ], - [ - "▁NAS", - "A" - ], - [ - "▁br", - "east" - ], - [ - "▁bre", - "ast" - ], - [ - "il", - "ty" - ], - [ - "ilt", - "y" - ], - [ - "an", - "aly" - ], - [ - "ana", - "ly" - ], - [ - "anal", - "y" - ], - [ - "el", - "ines" - ], - [ - "eli", - "nes" - ], - [ - "eline", - "s" - ], - [ - "elin", - "es" - ], - [ - "e", - "lines" - ], - [ - "▁S", - "aturday" - ], - [ - "em", - "ark" - ], - [ - "e", - "mark" - ], - [ - "ce", - "j" - ], - [ - "c", - "ej" - ], - [ - "Ze", - "ro" - ], - [ - "Z", - "ero" - ], - [ - "▁Tur", - "ner" - ], - [ - "▁Turn", - "er" - ], - [ - "sec", - "ure" - ], - [ - "Ex", - "ists" - ], - [ - "▁R", - "ick" - ], - [ - "▁Ric", - "k" - ], - [ - "▁Ri", - "ck" - ], - [ - "ev", - "alu" - ], - [ - "eval", - "u" - ], - [ - "e", - "valu" - ], - [ - "ct", - "rl" - ], - [ - "ctr", - "l" - ], - [ - "c", - "trl" - ], - [ - "▁com", - "pression" - ], - [ - "▁comp", - "ression" - ], - [ - "▁compr", - "ession" - ], - [ - "▁compress", - "ion" - ], - [ - "▁C", - "URL" - ], - [ - "text", - "color" - ], - [ - ")\\", - "," - ], - [ - ")", - "\\," - ], - [ - "long", - "rightarrow" - ], - [ - "▁Fern", - "seh" - ], - [ - "▁", - "Fernseh" - ], - [ - "ic", - "ha" - ], - [ - "ich", - "a" - ], - [ - "i", - "cha" - ], - [ - "▁l", - "oi" - ], - [ - "▁lo", - "i" - ], - [ - "▁О", - "те" - ], - [ - "▁От", - "е" - ], - [ - "▁c", - "ave" - ], - [ - "▁ca", - "ve" - ], - [ - "▁cav", - "e" - ], - [ - "▁do", - "zen" - ], - [ - "▁expla", - "ining" - ], - [ - "▁expl", - "aining" - ], - [ - "▁explain", - "ing" - ], - [ - "▁in", - "nov" - ], - [ - "▁inn", - "ov" - ], - [ - "▁Nich", - "olas" - ], - [ - "▁dia", - "meter" - ], - [ - "▁diam", - "eter" - ], - [ - "▁M", - "arian" - ], - [ - "▁Mar", - "ian" - ], - [ - "▁Ma", - "rian" - ], - [ - "▁Maria", - "n" - ], - [ - "▁Mari", - "an" - ], - [ - "▁f", - "ires" - ], - [ - "▁fire", - "s" - ], - [ - "▁fi", - "res" - ], - [ - "▁fir", - "es" - ], - [ - "▁art", - "ifact" - ], - [ - "▁", - "artifact" - ], - [ - "▁Par", - "ker" - ], - [ - "▁Park", - "er" - ], - [ - "▁B", - "und" - ], - [ - "▁Bu", - "nd" - ], - [ - "▁Bun", - "d" - ], - [ - "▁v", - "erte" - ], - [ - "▁ver", - "te" - ], - [ - "▁vert", - "e" - ], - [ - "▁", - "verte" - ], - [ - "▁tal", - "ent" - ], - [ - "▁tale", - "nt" - ], - [ - "▁Lu", - "cas" - ], - [ - "▁Luc", - "as" - ], - [ - "re", - "verse" - ], - [ - "▁folg", - "enden" - ], - [ - "▁S", - "ah" - ], - [ - "▁Sa", - "h" - ], - [ - "ject", - "ions" - ], - [ - "je", - "ctions" - ], - [ - "jection", - "s" - ], - [ - "▁inve", - "ce" - ], - [ - "▁cost", - "itu" - ], - [ - "▁s", - "sl" - ], - [ - "▁ss", - "l" - ], - [ - "▁", - "ssl" - ], - [ - "}}", - "^" - ], - [ - "}", - "}^" - ], - [ - "▁viol", - "ent" - ], - [ - "▁s", - "pos" - ], - [ - "▁sp", - "os" - ], - [ - "▁spo", - "s" - ], - [ - "Ro", - "ut" - ], - [ - "R", - "out" - ], - [ - "jd", - "k" - ], - [ - "j", - "dk" - ], - [ - "▁за", - "ме" - ], - [ - "▁f", - "urent" - ], - [ - "▁fur", - "ent" - ], - [ - "▁fu", - "rent" - ], - [ - "an", - "dal" - ], - [ - "and", - "al" - ], - [ - "anda", - "l" - ], - [ - "H", - "om" - ], - [ - "▁Sen", - "ior" - ], - [ - "▁p", - "ounds" - ], - [ - "▁Disc", - "ogs" - ], - [ - "▁з", - "е" - ], - [ - "▁", - "зе" - ], - [ - "'}", - "[" - ], - [ - "'", - "}[" - ], - [ - "▁Napole", - "on" - ], - [ - "ordin", - "ates" - ], - [ - "ordinate", - "s" - ], - [ - "à", - "n" - ], - [ - "▁k", - "urz" - ], - [ - "▁kur", - "z" - ], - [ - "▁v", - "ere" - ], - [ - "▁ver", - "e" - ], - [ - "▁ve", - "re" - ], - [ - "▁", - "vere" - ], - [ - "▁re", - "use" - ], - [ - "▁Г", - "ен" - ], - [ - "▁Ге", - "н" - ], - [ - "▁S", - "yst" - ], - [ - "▁Sy", - "st" - ], - [ - "▁disapp", - "eared" - ], - [ - "▁disappear", - "ed" - ], - [ - "▁W", - "atch" - ], - [ - "▁Wat", - "ch" - ], - [ - "▁", - "Watch" - ], - [ - "bibli", - "othek" - ], - [ - "▁кор", - "пу" - ], - [ - "▁C", - "s" - ], - [ - "▁}", - "`" - ], - [ - "▁", - "}`" - ], - [ - "▁r", - "ör" - ], - [ - "▁де", - "ла" - ], - [ - "▁", - "дела" - ], - [ - "V", - "B" - ], - [ - "▁calcul", - "us" - ], - [ - "▁calc", - "ulus" - ], - [ - "ро", - "да" - ], - [ - "род", - "а" - ], - [ - "▁jud", - "gment" - ], - [ - "at", - "ile" - ], - [ - "ati", - "le" - ], - [ - "▁long", - "ue" - ], - [ - "▁lon", - "gue" - ], - [ - "▁H", - "us" - ], - [ - "▁Hu", - "s" - ], - [ - "J", - "ac" - ], - [ - "}}", - ")" - ], - [ - "}", - "})" - ], - [ - "RI", - "PT" - ], - [ - "IAB", - "ot" - ], - [ - "▁ap", - "ós" - ], - [ - "▁a", - "ston" - ], - [ - "▁as", - "ton" - ], - [ - "▁ast", - "on" - ], - [ - "Web", - "achiv" - ], - [ - "▁URL", - "s" - ], - [ - "▁co", - "at" - ], - [ - "▁э", - "коно" - ], - [ - "▁l", - "ear" - ], - [ - "▁le", - "ar" - ], - [ - "▁", - "lear" - ], - [ - "ext", - "ensions" - ], - [ - "extension", - "s" - ], - [ - "▁Class", - "ic" - ], - [ - "T", - "I" - ], - [ - "▁T", - "age" - ], - [ - "▁Tag", - "e" - ], - [ - "▁Ta", - "ge" - ], - [ - "▁l", - "á" - ], - [ - "▁", - "lá" - ], - [ - "▁s", - "emb" - ], - [ - "▁se", - "mb" - ], - [ - "▁sem", - "b" - ], - [ - "▁développ", - "ement" - ], - [ - "IS", - "TS" - ], - [ - "IST", - "S" - ], - [ - "▁sol", - "ves" - ], - [ - "▁solve", - "s" - ], - [ - ",\\", - "," - ], - [ - ",", - "\\," - ], - [ - "▁чем", - "пі" - ], - [ - "ord", - "inary" - ], - [ - "ordin", - "ary" - ], - [ - "▁B", - "av" - ], - [ - "▁Ba", - "v" - ], - [ - "▁much", - "os" - ], - [ - "▁mu", - "chos" - ], - [ - "▁mucho", - "s" - ], - [ - "S", - "elf" - ], - [ - "▁Ма", - "й" - ], - [ - "▁D", - "iet" - ], - [ - "▁Die", - "t" - ], - [ - "▁Di", - "et" - ], - [ - "▁necess", - "ity" - ], - [ - "ві", - "д" - ], - [ - "в", - "ід" - ], - [ - "▁m", - "ano" - ], - [ - "▁ma", - "no" - ], - [ - "▁man", - "o" - ], - [ - "▁С", - "р" - ], - [ - "▁car", - "re" - ], - [ - "▁Cam", - "era" - ], - [ - "▁Camer", - "a" - ], - [ - "▁", - "Camera" - ], - [ - "▁N", - "arod" - ], - [ - "▁Na", - "rod" - ], - [ - "▁Nar", - "od" - ], - [ - "▁Ph", - "one" - ], - [ - "▁Pho", - "ne" - ], - [ - "▁", - "Phone" - ], - [ - "▁pol", - "ym" - ], - [ - "▁poly", - "m" - ], - [ - "im", - "ore" - ], - [ - "imo", - "re" - ], - [ - "i", - "more" - ], - [ - "is", - "Empty" - ], - [ - "▁Hou", - "ston" - ], - [ - "▁Re", - "ce" - ], - [ - "▁Rec", - "e" - ], - [ - "▁", - "Rece" - ], - [ - "▁present", - "ation" - ], - [ - "▁pres", - "entation" - ], - [ - "▁presenta", - "tion" - ], - [ - "▁", - "presentation" - ], - [ - "ни", - "ципа" - ], - [ - "ници", - "па" - ], - [ - "▁D", - "b" - ], - [ - "▁", - "Db" - ], - [ - "▁conf", - "ident" - ], - [ - "▁}", - "{" - ], - [ - "▁", - "}{" - ], - [ - "▁bul", - "let" - ], - [ - "▁", - "bullet" - ], - [ - "▁{", - "}," - ], - [ - "▁{}", - "," - ], - [ - "AN", - "GE" - ], - [ - "ANG", - "E" - ], - [ - "▁No", - "tre" - ], - [ - "▁Not", - "re" - ], - [ - "ch", - "in" - ], - [ - "chi", - "n" - ], - [ - "c", - "hin" - ], - [ - "▁Dr", - "agon" - ], - [ - "▁Drag", - "on" - ], - [ - "▁Dra", - "gon" - ], - [ - "er", - "ca" - ], - [ - "erc", - "a" - ], - [ - "ia", - "li" - ], - [ - "ial", - "i" - ], - [ - "i", - "ali" - ], - [ - "▁as", - "set" - ], - [ - "▁ass", - "et" - ], - [ - "▁asse", - "t" - ], - [ - "▁", - "asset" - ], - [ - "▁mu", - "ito" - ], - [ - "▁muit", - "o" - ], - [ - "▁deep", - "ly" - ], - [ - "▁rest", - "riction" - ], - [ - "▁restrict", - "ion" - ], - [ - "▁com", - "merce" - ], - [ - "▁commer", - "ce" - ], - [ - "▁", - "commerce" - ], - [ - "▁B", - "omb" - ], - [ - "▁Bo", - "mb" - ], - [ - "▁Bom", - "b" - ], - [ - "c", - "aught" - ], - [ - "q", - "q" - ], - [ - "▁A", - "rag" - ], - [ - "▁Ar", - "ag" - ], - [ - "▁Ara", - "g" - ], - [ - "▁не", - "мец" - ], - [ - "▁Anal", - "ysis" - ], - [ - "▁člán", - "ku" - ], - [ - "▁b", - "aby" - ], - [ - "▁ba", - "by" - ], - [ - "▁e", - "chter" - ], - [ - "▁о", - "дного" - ], - [ - "▁од", - "ного" - ], - [ - "▁одно", - "го" - ], - [ - "же", - "на" - ], - [ - "жен", - "а" - ], - [ - "ж", - "ена" - ], - [ - "▁white", - "space" - ], - [ - "▁whites", - "pace" - ], - [ - "ç", - "u" - ], - [ - "LI", - "ST" - ], - [ - "L", - "IST" - ], - [ - "fr", - "ique" - ], - [ - "fri", - "que" - ], - [ - "f", - "rique" - ], - [ - "▁v", - "arias" - ], - [ - "▁var", - "ias" - ], - [ - "▁vari", - "as" - ], - [ - "▁va", - "rias" - ], - [ - "▁W", - "it" - ], - [ - "▁Wi", - "t" - ], - [ - "▁Lic", - "encia" - ], - [ - "Ex", - "it" - ], - [ - "▁sie", - "rp" - ], - [ - "▁sier", - "p" - ], - [ - "▁ass", - "emb" - ], - [ - "▁asse", - "mb" - ], - [ - "▁split", - "ting" - ], - [ - "▁spl", - "itting" - ], - [ - "▁pa", - "lace" - ], - [ - "▁pal", - "ace" - ], - [ - "▁b", - "locked" - ], - [ - "▁block", - "ed" - ], - [ - "▁bound", - "aries" - ], - [ - "▁iter", - "ations" - ], - [ - "▁iteration", - "s" - ], - [ - "▁Rot", - "ten" - ], - [ - "▁Ver", - "kehr" - ], - [ - "▁we", - "er" - ], - [ - "Test", - "s" - ], - [ - "T", - "ests" - ], - [ - "if", - "ting" - ], - [ - "ift", - "ing" - ], - [ - "▁reg", - "ul" - ], - [ - "▁pers", - "ist" - ], - [ - "▁Sol", - "ution" - ], - [ - "p", - "b" - ], - [ - "▁col", - "lapse" - ], - [ - "▁", - "collapse" - ], - [ - "▁arr", - "ested" - ], - [ - "▁arrest", - "ed" - ], - [ - "▁pred", - "icate" - ], - [ - "▁Z", - "one" - ], - [ - "▁Zo", - "ne" - ], - [ - "▁", - "Zone" - ], - [ - "▁in", - "gen" - ], - [ - "▁ing", - "en" - ], - [ - "▁", - "ingen" - ], - [ - "zá", - "lez" - ], - [ - "▁b", - "anks" - ], - [ - "▁bank", - "s" - ], - [ - "▁ban", - "ks" - ], - [ - "pl", - "ant" - ], - [ - "plan", - "t" - ], - [ - "pla", - "nt" - ], - [ - "p", - "lant" - ], - [ - "▁N", - "ella" - ], - [ - "▁Ne", - "lla" - ], - [ - "▁Nel", - "la" - ], - [ - "▁Nell", - "a" - ], - [ - "▁б", - "ан" - ], - [ - "▁ба", - "н" - ], - [ - "▁", - "бан" - ], - [ - "▁S", - "now" - ], - [ - "▁Sn", - "ow" - ], - [ - "▁Kre", - "uz" - ], - [ - "í", - "cio" - ], - [ - "▁en", - "ters" - ], - [ - "▁ent", - "ers" - ], - [ - "▁enter", - "s" - ], - [ - "▁ex", - "pose" - ], - [ - "▁exp", - "ose" - ], - [ - "▁expos", - "e" - ], - [ - "č", - "i" - ], - [ - "ши", - "е" - ], - [ - "Qu", - "al" - ], - [ - "Q", - "ual" - ], - [ - "▁lands", - "cape" - ], - [ - "▁пода", - "цима" - ], - [ - "ma", - "i" - ], - [ - "m", - "ai" - ], - [ - "st", - "ag" - ], - [ - "sta", - "g" - ], - [ - "s", - "tag" - ], - [ - "ова", - "ний" - ], - [ - "DE", - "F" - ], - [ - "D", - "EF" - ], - [ - "[]", - "{" - ], - [ - "[", - "]{" - ], - [ - "▁derni", - "ère" - ], - [ - "ic", - "ut" - ], - [ - "i", - "cut" - ], - [ - "▁X", - "ml" - ], - [ - "▁", - "Xml" - ], - [ - "▁sub", - "group" - ], - [ - "▁Pol", - "sce" - ], - [ - "▁W", - "arning" - ], - [ - "▁War", - "ning" - ], - [ - "▁", - "Warning" - ], - [ - "▁veh", - "icles" - ], - [ - "▁vehicle", - "s" - ], - [ - "io", - "t" - ], - [ - "i", - "ot" - ], - [ - "▁d", - "ll" - ], - [ - "▁", - "dll" - ], - [ - "ro", - "nt" - ], - [ - "ron", - "t" - ], - [ - "r", - "ont" - ], - [ - "▁Lou", - "ise" - ], - [ - "▁Louis", - "e" - ], - [ - "▁a", - "ra" - ], - [ - "▁ar", - "a" - ], - [ - "▁", - "ara" - ], - [ - "▁S", - "cala" - ], - [ - "▁Sc", - "ala" - ], - [ - "▁canon", - "ical" - ], - [ - "▁pl", - "acing" - ], - [ - "▁pla", - "cing" - ], - [ - "ER", - "Y" - ], - [ - "E", - "RY" - ], - [ - "▁J", - "ag" - ], - [ - "▁Ja", - "g" - ], - [ - "▁v", - "irus" - ], - [ - "▁vi", - "rus" - ], - [ - "▁vir", - "us" - ], - [ - "em", - "u" - ], - [ - "e", - "mu" - ], - [ - "▁}", - ");\r" - ], - [ - "▁});", - "\r" - ], - [ - "▁})", - ";\r" - ], - [ - "▁м", - "м" - ], - [ - "▁Tr", - "ying" - ], - [ - "▁Try", - "ing" - ], - [ - "▁Lex", - "ikon" - ], - [ - "ab", - "ord" - ], - [ - "abor", - "d" - ], - [ - "▁exped", - "ition" - ], - [ - "▁demand", - "ed" - ], - [ - "▁demande", - "d" - ], - [ - "Z", - "yg" - ], - [ - "le", - "in" - ], - [ - "lei", - "n" - ], - [ - "l", - "ein" - ], - [ - "▁verw", - "endet" - ], - [ - "ри", - "на" - ], - [ - "рин", - "а" - ], - [ - "wo", - "l" - ], - [ - "w", - "ol" - ], - [ - "▁p", - "ivot" - ], - [ - "▁одна", - "ко" - ], - [ - "▁propri", - "et" - ], - [ - "▁a", - "wards" - ], - [ - "▁aw", - "ards" - ], - [ - "▁award", - "s" - ], - [ - "to", - "ut" - ], - [ - "t", - "out" - ], - [ - "▁as", - "sim" - ], - [ - "▁ass", - "im" - ], - [ - "▁St", - "orm" - ], - [ - "▁Sto", - "rm" - ], - [ - "Li", - "mit" - ], - [ - "L", - "imit" - ], - [ - "el", - "in" - ], - [ - "eli", - "n" - ], - [ - "e", - "lin" - ], - [ - "we", - "alth" - ], - [ - "ue", - "z" - ], - [ - "u", - "ez" - ], - [ - "▁rap", - "present" - ], - [ - "▁rappres", - "ent" - ], - [ - "▁re", - "sta" - ], - [ - "▁r", - "esta" - ], - [ - "▁res", - "ta" - ], - [ - "▁rest", - "a" - ], - [ - "▁gegründ", - "et" - ], - [ - "▁journal", - "ist" - ], - [ - "is", - "ie" - ], - [ - "isi", - "e" - ], - [ - "▁fac", - "ility" - ], - [ - "▁facil", - "ity" - ], - [ - "il", - "led" - ], - [ - "ill", - "ed" - ], - [ - "ille", - "d" - ], - [ - "ul", - "k" - ], - [ - "▁P", - "K" - ], - [ - "▁", - "PK" - ], - [ - "An", - "chor" - ], - [ - "▁_", - ")" - ], - [ - "▁", - "_)" - ], - [ - "V", - "F" - ], - [ - "LA", - "B" - ], - [ - "L", - "AB" - ], - [ - "▁n", - "å" - ], - [ - "od", - "os" - ], - [ - "odo", - "s" - ], - [ - "▁bill", - "ion" - ], - [ - "vir", - "ti" - ], - [ - "virt", - "i" - ], - [ - "▁Je", - "ux" - ], - [ - "юз", - "а" - ], - [ - "ю", - "за" - ], - [ - "tom", - "cat" - ], - [ - "▁ch", - "arts" - ], - [ - "▁char", - "ts" - ], - [ - "▁chart", - "s" - ], - [ - "▁", - "charts" - ], - [ - "▁B", - "undle" - ], - [ - "▁Bund", - "le" - ], - [ - "▁", - "Bundle" - ], - [ - "▁l", - "st" - ], - [ - "▁ls", - "t" - ], - [ - "▁", - "lst" - ], - [ - "▁ex", - "er" - ], - [ - "▁fem", - "ales" - ], - [ - "▁female", - "s" - ], - [ - "▁oblig", - "ed" - ], - [ - "▁a", - "by" - ], - [ - "▁ab", - "y" - ], - [ - "▁", - "aby" - ], - [ - "roll", - "ed" - ], - [ - "rol", - "led" - ], - [ - "rolle", - "d" - ], - [ - "dr", - "i" - ], - [ - "d", - "ri" - ], - [ - "▁S", - "che" - ], - [ - "▁Sch", - "e" - ], - [ - "▁Sc", - "he" - ], - [ - "▁vess", - "els" - ], - [ - "▁vessel", - "s" - ], - [ - "IMA", - "RY" - ], - [ - "IM", - "ARY" - ], - [ - "▁reason", - "ing" - ], - [ - "▁про", - "те" - ], - [ - "▁пр", - "оте" - ], - [ - "FI", - "LES" - ], - [ - "FILE", - "S" - ], - [ - "ver", - "k" - ], - [ - "v", - "erk" - ], - [ - "os", - "os" - ], - [ - "oso", - "s" - ], - [ - "▁ком", - "му" - ], - [ - "ді", - "ї" - ], - [ - "д", - "ії" - ], - [ - "▁d", - "d" - ], - [ - "▁", - "dd" - ], - [ - "▁со", - "ответ" - ], - [ - "▁IO", - "Exception" - ], - [ - "▁", - "IOException" - ], - [ - "sk", - "ých" - ], - [ - "ský", - "ch" - ], - [ - "▁C", - "LI" - ], - [ - "▁CL", - "I" - ], - [ - "▁", - "CLI" - ], - [ - "▁", - "ње" - ], - [ - "C", - "M" - ], - [ - "T", - "D" - ], - [ - "▁possib", - "ilities" - ], - [ - "▁possibil", - "ities" - ], - [ - "▁Com", - "pos" - ], - [ - "▁Comp", - "os" - ], - [ - "hal", - "f" - ], - [ - "h", - "alf" - ], - [ - "▁web", - "page" - ], - [ - "▁s", - "wing" - ], - [ - "▁sw", - "ing" - ], - [ - "▁", - "swing" - ], - [ - "▁z", - "as" - ], - [ - "▁za", - "s" - ], - [ - "▁", - "zas" - ], - [ - "▁cy", - "cl" - ], - [ - "le", - "id" - ], - [ - "lei", - "d" - ], - [ - "ist", - "ica" - ], - [ - "istic", - "a" - ], - [ - "isti", - "ca" - ], - [ - "▁In", - "sert" - ], - [ - "▁Ins", - "ert" - ], - [ - "▁", - "Insert" - ], - [ - "▁Sw", - "eden" - ], - [ - "▁want", - "ing" - ], - [ - "▁", - "ال" - ], - [ - "▁e", - "euw" - ], - [ - "▁Admin", - "istr" - ], - [ - "▁War", - "ren" - ], - [ - "▁b", - "s" - ], - [ - "▁", - "bs" - ], - [ - "▁p", - "am" - ], - [ - "▁pa", - "m" - ], - [ - "an", - "us" - ], - [ - "anu", - "s" - ], - [ - "Dr", - "a" - ], - [ - "D", - "ra" - ], - [ - "ex", - "pl" - ], - [ - "exp", - "l" - ], - [ - "▁K", - "ant" - ], - [ - "▁Kan", - "t" - ], - [ - "▁Ka", - "nt" - ], - [ - "▁Aust", - "in" - ], - [ - "▁c", - "sak" - ], - [ - "▁cs", - "ak" - ], - [ - "▁the", - "atre" - ], - [ - "▁compat", - "ibility" - ], - [ - "ма", - "тиче" - ], - [ - "мати", - "че" - ], - [ - "set", - "State" - ], - [ - "б", - "ю" - ], - [ - "}{", - "|" - ], - [ - "}", - "{|" - ], - [ - "▁D", - "y" - ], - [ - "▁Zw", - "ischen" - ], - [ - "Al", - "t" - ], - [ - "A", - "lt" - ], - [ - "CLA", - "RE" - ], - [ - "st", - "eps" - ], - [ - "ste", - "ps" - ], - [ - "step", - "s" - ], - [ - "▁L", - "age" - ], - [ - "▁La", - "ge" - ], - [ - "▁Lag", - "e" - ], - [ - "▁M", - "itt" - ], - [ - "▁Mit", - "t" - ], - [ - "▁Mi", - "tt" - ], - [ - "▁Dub", - "lin" - ], - [ - "▁рабо", - "ты" - ], - [ - "de", - "ep" - ], - [ - "▁fl", - "ows" - ], - [ - "▁flow", - "s" - ], - [ - "▁flo", - "ws" - ], - [ - "▁Pa", - "lace" - ], - [ - "▁Pal", - "ace" - ], - [ - "▁Pala", - "ce" - ], - [ - "un", - "ix" - ], - [ - "uni", - "x" - ], - [ - "re", - "fs" - ], - [ - "ref", - "s" - ], - [ - "um", - "ar" - ], - [ - "uma", - "r" - ], - [ - "u", - "mar" - ], - [ - "as", - "et" - ], - [ - "ase", - "t" - ], - [ - "a", - "set" - ], - [ - "co", - "v" - ], - [ - "c", - "ov" - ], - [ - "▁p", - "ing" - ], - [ - "▁pi", - "ng" - ], - [ - "▁pin", - "g" - ], - [ - "▁", - "ping" - ], - [ - "▁Saf", - "ari" - ], - [ - "fl", - "ug" - ], - [ - "flu", - "g" - ], - [ - "cre", - "ens" - ], - [ - "creen", - "s" - ], - [ - "c", - "reens" - ], - [ - "{", - "#" - ], - [ - "▁ре", - "а" - ], - [ - "ad", - "ors" - ], - [ - "ado", - "rs" - ], - [ - "ador", - "s" - ], - [ - "▁a", - "mor" - ], - [ - "▁am", - "or" - ], - [ - "uc", - "e" - ], - [ - "u", - "ce" - ], - [ - "de", - "mic" - ], - [ - "dem", - "ic" - ], - [ - "▁Nether", - "lands" - ], - [ - "▁cluster", - "s" - ], - [ - "▁clust", - "ers" - ], - [ - "▁en", - "for" - ], - [ - "▁enf", - "or" - ], - [ - "mar", - "ine" - ], - [ - "▁b", - "ugs" - ], - [ - "▁bu", - "gs" - ], - [ - "▁bug", - "s" - ], - [ - "izz", - "ata" - ], - [ - "izza", - "ta" - ], - [ - "▁s", - "cra" - ], - [ - "▁sc", - "ra" - ], - [ - "▁scr", - "a" - ], - [ - "Le", - "s" - ], - [ - "L", - "es" - ], - [ - "qu", - "ick" - ], - [ - "qui", - "ck" - ], - [ - "▁turn", - "o" - ], - [ - "▁tur", - "no" - ], - [ - "_", - "*" - ], - [ - "ер", - "а" - ], - [ - "е", - "ра" - ], - [ - "Gener", - "ated" - ], - [ - ">", - "[" - ], - [ - "▁e", - "stre" - ], - [ - "▁est", - "re" - ], - [ - "▁es", - "tre" - ], - [ - "▁", - "estre" - ], - [ - "or", - "de" - ], - [ - "ord", - "e" - ], - [ - "▁v", - "erg" - ], - [ - "▁ver", - "g" - ], - [ - "▁ve", - "rg" - ], - [ - "ро", - "з" - ], - [ - "р", - "оз" - ], - [ - "▁p", - "au" - ], - [ - "▁pa", - "u" - ], - [ - "in", - "cludes" - ], - [ - "include", - "s" - ], - [ - "includ", - "es" - ], - [ - "as", - "sa" - ], - [ - "ass", - "a" - ], - [ - "ad", - "ers" - ], - [ - "ader", - "s" - ], - [ - "ade", - "rs" - ], - [ - "a", - "ders" - ], - [ - "▁Гер", - "ма" - ], - [ - "▁est", - "aven" - ], - [ - "▁esta", - "ven" - ], - [ - "▁ear", - "liest" - ], - [ - "▁res", - "ultado" - ], - [ - "▁result", - "ado" - ], - [ - "mu", - "n" - ], - [ - "m", - "un" - ], - [ - "▁pl", - "ots" - ], - [ - "▁plot", - "s" - ], - [ - "▁", - "plots" - ], - [ - "di", - "n" - ], - [ - "d", - "in" - ], - [ - "sort", - "ed" - ], - [ - "s", - "orted" - ], - [ - "▁p", - "reference" - ], - [ - "▁pre", - "ference" - ], - [ - "▁prefer", - "ence" - ], - [ - "ri", - "ó" - ], - [ - "r", - "ió" - ], - [ - "ту", - "ре" - ], - [ - "тур", - "е" - ], - [ - "▁L", - "igue" - ], - [ - "▁Li", - "gue" - ], - [ - "▁Lig", - "ue" - ], - [ - "▁за", - "вер" - ], - [ - "▁зав", - "ер" - ], - [ - "ph", - "r" - ], - [ - "p", - "hr" - ], - [ - "▁p", - "ocket" - ], - [ - "▁po", - "cket" - ], - [ - "▁poc", - "ket" - ], - [ - "▁par", - "l" - ], - [ - "▁pa", - "rl" - ], - [ - "▁l", - "ak" - ], - [ - "▁la", - "k" - ], - [ - "▁", - "lak" - ], - [ - "▁p", - "owie" - ], - [ - "▁po", - "wie" - ], - [ - "▁pow", - "ie" - ], - [ - "▁al", - "tres" - ], - [ - "▁alt", - "res" - ], - [ - "▁altre", - "s" - ], - [ - "$}", - ";" - ], - [ - "$", - "};" - ], - [ - "pl", - "ain" - ], - [ - "pla", - "in" - ], - [ - "p", - "lain" - ], - [ - "▁C", - "red" - ], - [ - "▁Cre", - "d" - ], - [ - "▁Cr", - "ed" - ], - [ - "▁", - "Cred" - ], - [ - "it", - "za" - ], - [ - "itz", - "a" - ], - [ - "pe", - "rp" - ], - [ - "per", - "p" - ], - [ - "Gr", - "een" - ], - [ - "Gre", - "en" - ], - [ - "G", - "reen" - ], - [ - "▁dev", - "oted" - ], - [ - "product", - "ion" - ], - [ - "produ", - "ction" - ], - [ - "p", - "roduction" - ], - [ - "work", - "er" - ], - [ - "wor", - "ker" - ], - [ - "el", - "sen" - ], - [ - "els", - "en" - ], - [ - "else", - "n" - ], - [ - "▁v", - "ern" - ], - [ - "▁ver", - "n" - ], - [ - "▁ve", - "rn" - ], - [ - "▁", - "vern" - ], - [ - "▁már", - "cius" - ], - [ - "▁Conf", - "eder" - ], - [ - "▁Liver", - "pool" - ], - [ - "▁му", - "зи" - ], - [ - "▁em", - "ails" - ], - [ - "▁email", - "s" - ], - [ - "▁dist", - "ances" - ], - [ - "▁distance", - "s" - ], - [ - "▁seg", - "ments" - ], - [ - "▁segment", - "s" - ], - [ - "▁a", - "nth" - ], - [ - "▁an", - "th" - ], - [ - "▁ant", - "h" - ], - [ - "▁", - "anth" - ], - [ - "▁w", - "rest" - ], - [ - "▁wr", - "est" - ], - [ - "▁ho", - "og" - ], - [ - "▁cin", - "ema" - ], - [ - "rr", - "or" - ], - [ - "r", - "ror" - ], - [ - "▁geb", - "oren" - ], - [ - "▁é", - "c" - ], - [ - "▁", - "éc" - ], - [ - "Mar", - "ker" - ], - [ - "Mark", - "er" - ], - [ - "▁Com", - "pet" - ], - [ - "▁Comp", - "et" - ], - [ - "▁ли", - "сто" - ], - [ - "all", - "owed" - ], - [ - "allow", - "ed" - ], - [ - "allo", - "wed" - ], - [ - "vol", - "ume" - ], - [ - "Esp", - "agne" - ], - [ - "Z", - "e" - ], - [ - "▁fix", - "es" - ], - [ - "▁fi", - "xes" - ], - [ - "▁r", - "ond" - ], - [ - "▁ro", - "nd" - ], - [ - "▁arrang", - "ement" - ], - [ - "/", - "~" - ], - [ - ".]", - "(" - ], - [ - ".", - "](" - ], - [ - "▁For", - "rások" - ], - [ - "▁weiter", - "en" - ], - [ - "▁weit", - "eren" - ], - [ - "▁weitere", - "n" - ], - [ - "ex", - "cel" - ], - [ - "▁з", - "мі" - ], - [ - "▁mod", - "erne" - ], - [ - "▁modern", - "e" - ], - [ - "▁moder", - "ne" - ], - [ - "Eng", - "lish" - ], - [ - "▁Transfer", - "markt" - ], - [ - "▁be", - "aring" - ], - [ - "▁bear", - "ing" - ], - [ - "▁cl", - "eared" - ], - [ - "▁clear", - "ed" - ], - [ - "▁cle", - "ared" - ], - [ - "▁са", - "м" - ], - [ - "▁di", - "vs" - ], - [ - "▁div", - "s" - ], - [ - "ć", - "i" - ], - [ - "▁э", - "той" - ], - [ - "▁это", - "й" - ], - [ - "▁Ге", - "ор" - ], - [ - "sc", - "ene" - ], - [ - "sce", - "ne" - ], - [ - "▁a", - "ges" - ], - [ - "▁ag", - "es" - ], - [ - "▁age", - "s" - ], - [ - "▁", - "ages" - ], - [ - "GE", - "N" - ], - [ - "G", - "EN" - ], - [ - "rä", - "n" - ], - [ - "r", - "än" - ], - [ - "▁T", - "oul" - ], - [ - "▁To", - "ul" - ], - [ - "▁A", - "bs" - ], - [ - "▁Ab", - "s" - ], - [ - "j", - "át" - ], - [ - "▁med", - "iante" - ], - [ - "▁medi", - "ante" - ], - [ - "▁median", - "te" - ], - [ - "▁em", - "pres" - ], - [ - "▁emp", - "res" - ], - [ - "▁Emp", - "loyee" - ], - [ - "▁", - "Employee" - ], - [ - "▁polynomial", - "s" - ], - [ - "▁optim", - "ize" - ], - [ - "▁вы", - "ступа" - ], - [ - "fa", - "re" - ], - [ - "far", - "e" - ], - [ - "f", - "are" - ], - [ - "ве", - "й" - ], - [ - "в", - "ей" - ], - [ - "x", - "f" - ], - [ - "qu", - "ez" - ], - [ - "que", - "z" - ], - [ - "q", - "uez" - ], - [ - "▁bo", - "tan" - ], - [ - "▁bot", - "an" - ], - [ - "▁def", - "end" - ], - [ - "▁defe", - "nd" - ], - [ - "▁Qu", - "art" - ], - [ - "Mon", - "t" - ], - [ - "Mo", - "nt" - ], - [ - "M", - "ont" - ], - [ - "v", - "b" - ], - [ - "ti", - "ck" - ], - [ - "t", - "ick" - ], - [ - "W", - "D" - ], - [ - "min", - "e" - ], - [ - "mi", - "ne" - ], - [ - "m", - "ine" - ], - [ - "▁mod", - "ific" - ], - [ - "not", - "ification" - ], - [ - "▁d", - "enn" - ], - [ - "▁de", - "nn" - ], - [ - "▁den", - "n" - ], - [ - "▁al", - "go" - ], - [ - "▁alg", - "o" - ], - [ - "▁S", - "po" - ], - [ - "▁Sp", - "o" - ], - [ - "▁m", - "istrzost" - ], - [ - "/", - ":" - ], - [ - "▁a", - "present" - ], - [ - "▁apr", - "esent" - ], - [ - "▁п", - "род" - ], - [ - "▁про", - "д" - ], - [ - "▁пр", - "од" - ], - [ - "Vol", - "ume" - ], - [ - "sk", - "ą" - ], - [ - "s", - "ką" - ], - [ - "prote", - "cted" - ], - [ - "▁Turk", - "ish" - ], - [ - "az", - "y" - ], - [ - "a", - "zy" - ], - [ - "▁p", - "ouv" - ], - [ - "▁po", - "uv" - ], - [ - "▁pou", - "v" - ], - [ - "▁perí", - "odo" - ], - [ - "sk", - "og" - ], - [ - "sko", - "g" - ], - [ - "▁ent", - "ropy" - ], - [ - "▁entr", - "opy" - ], - [ - "ze", - "d" - ], - [ - "z", - "ed" - ], - [ - "то", - "ри" - ], - [ - "тор", - "и" - ], - [ - "▁l", - "ij" - ], - [ - "▁li", - "j" - ], - [ - "▁", - "lij" - ], - [ - "bo", - "ards" - ], - [ - "board", - "s" - ], - [ - "▁ста", - "ту" - ], - [ - "Bo", - "ol" - ], - [ - "B", - "ool" - ], - [ - "▁pol", - "ity" - ], - [ - "▁polit", - "y" - ], - [ - "@\"", - "," - ], - [ - "@", - "\"," - ], - [ - "▁рі", - "к" - ], - [ - "né", - "e" - ], - [ - "n", - "ée" - ], - [ - "▁Z", - "ug" - ], - [ - "▁Zu", - "g" - ], - [ - "▁Un", - "iti" - ], - [ - "▁Unit", - "i" - ], - [ - "ém", - "et" - ], - [ - "é", - "met" - ], - [ - "at", - "ience" - ], - [ - "ati", - "ence" - ], - [ - "di", - "men" - ], - [ - "dim", - "en" - ], - [ - "d", - "imen" - ], - [ - "▁St", - "even" - ], - [ - "▁Ste", - "ven" - ], - [ - "▁Steve", - "n" - ], - [ - "H", - "a" - ], - [ - "ACT", - "ION" - ], - [ - "A", - "CTION" - ], - [ - "▁w", - "and" - ], - [ - "▁wa", - "nd" - ], - [ - "▁", - "wand" - ], - [ - "▁Na", - "var" - ], - [ - "▁Nav", - "ar" - ], - [ - "▁сі", - "чня" - ], - [ - "W", - "atch" - ], - [ - "▁Stu", - "art" - ], - [ - "▁z", - "de" - ], - [ - "▁zd", - "e" - ], - [ - "▁кон", - "тро" - ], - [ - "data", - "set" - ], - [ - "dat", - "aset" - ], - [ - "datas", - "et" - ], - [ - "y", - "ó" - ], - [ - "▁B", - "ush" - ], - [ - "▁Bu", - "sh" - ], - [ - "▁Bus", - "h" - ], - [ - "▁се", - "бя" - ], - [ - "▁wor", - "thy" - ], - [ - "▁worth", - "y" - ], - [ - "▁B", - "le" - ], - [ - "▁Bl", - "e" - ], - [ - "▁pro", - "por" - ], - [ - "▁prop", - "or" - ], - [ - "▁Vill", - "age" - ], - [ - "▁Villa", - "ge" - ], - [ - "▁Vil", - "lage" - ], - [ - "▁r", - "y" - ], - [ - "▁", - "ry" - ], - [ - "▁v", - "oit" - ], - [ - "▁vo", - "it" - ], - [ - "▁копи", - "я" - ], - [ - "▁z", - "p" - ], - [ - "▁c", - "ura" - ], - [ - "▁cu", - "ra" - ], - [ - "▁cur", - "a" - ], - [ - "▁H", - "tml" - ], - [ - "▁", - "Html" - ], - [ - "▁Die", - "ser" - ], - [ - "▁Dies", - "er" - ], - [ - "▁Diese", - "r" - ], - [ - "▁D", - "ays" - ], - [ - "▁Da", - "ys" - ], - [ - "▁Day", - "s" - ], - [ - "▁", - "Days" - ], - [ - "on", - "nes" - ], - [ - "onn", - "es" - ], - [ - "onne", - "s" - ], - [ - "▁ant", - "igu" - ], - [ - "▁anti", - "gu" - ], - [ - "▁Sta", - "aten" - ], - [ - "▁Staat", - "en" - ], - [ - "▁f", - "aint" - ], - [ - "▁fa", - "int" - ], - [ - "on", - "gs" - ], - [ - "ong", - "s" - ], - [ - "▁ö", - "st" - ], - [ - "▁", - "öst" - ], - [ - "Re", - "direct" - ], - [ - "Red", - "irect" - ], - [ - "ел", - "ь" - ], - [ - "е", - "ль" - ], - [ - "at", - "orial" - ], - [ - "ator", - "ial" - ], - [ - "ato", - "rial" - ], - [ - "atori", - "al" - ], - [ - "▁b", - "other" - ], - [ - "▁bo", - "ther" - ], - [ - "▁both", - "er" - ], - [ - "▁bot", - "her" - ], - [ - "Edit", - "Text" - ], - [ - "▁Gi", - "ul" - ], - [ - "▁за", - "во" - ], - [ - "▁зав", - "о" - ], - [ - "▁pue", - "blo" - ], - [ - "▁Mississ", - "ippi" - ], - [ - "ja", - "k" - ], - [ - "j", - "ak" - ], - [ - "▁w", - "ings" - ], - [ - "▁win", - "gs" - ], - [ - "▁wing", - "s" - ], - [ - "on", - "c" - ], - [ - "o", - "nc" - ], - [ - "ív", - "el" - ], - [ - "í", - "vel" - ], - [ - "ien", - "cia" - ], - [ - "i", - "encia" - ], - [ - "ent", - "licht" - ], - [ - "entlich", - "t" - ], - [ - "▁B", - "TW" - ], - [ - "or", - "nal" - ], - [ - "orn", - "al" - ], - [ - "▁Ко", - "ро" - ], - [ - "▁Кор", - "о" - ], - [ - "▁од", - "ним" - ], - [ - "▁sa", - "lv" - ], - [ - "▁sal", - "v" - ], - [ - "▁f", - "inden" - ], - [ - "▁find", - "en" - ], - [ - "▁fin", - "den" - ], - [ - "ge", - "o" - ], - [ - "▁а", - "виа" - ], - [ - "att", - "ung" - ], - [ - "vi", - "v" - ], - [ - "v", - "iv" - ], - [ - "▁L", - "uther" - ], - [ - "▁Lu", - "ther" - ], - [ - "▁об", - "щи" - ], - [ - "▁Ro", - "lle" - ], - [ - "▁Rol", - "le" - ], - [ - "▁Roll", - "e" - ], - [ - "▁Ab", - "raham" - ], - [ - "▁cent", - "ered" - ], - [ - "▁center", - "ed" - ], - [ - "▁sl", - "ash" - ], - [ - "▁sla", - "sh" - ], - [ - "▁", - "slash" - ], - [ - "is", - "at" - ], - [ - "isa", - "t" - ], - [ - "em", - "ann" - ], - [ - "ema", - "nn" - ], - [ - "eman", - "n" - ], - [ - "e", - "mann" - ], - [ - "O", - "s" - ], - [ - "пар", - "та" - ], - [ - "▁P", - "ablo" - ], - [ - "▁Pa", - "blo" - ], - [ - "▁collabor", - "ation" - ], - [ - "path", - "s" - ], - [ - "pat", - "hs" - ], - [ - "éd", - "ition" - ], - [ - "▁view", - "ed" - ], - [ - "▁vie", - "wed" - ], - [ - "▁cons", - "isted" - ], - [ - "▁consist", - "ed" - ], - [ - "▁recover", - "ed" - ], - [ - "▁Mex", - "ican" - ], - [ - "▁F", - "ix" - ], - [ - "▁sp", - "ell" - ], - [ - "▁spe", - "ll" - ], - [ - "▁spel", - "l" - ], - [ - "Spec", - "ial" - ], - [ - "Spe", - "cial" - ], - [ - "▁С", - "т" - ], - [ - "ess", - "eur" - ], - [ - "esse", - "ur" - ], - [ - "▁Украи", - "ны" - ], - [ - "form", - "er" - ], - [ - "for", - "mer" - ], - [ - "▁ś", - "w" - ], - [ - "▁z", - "eros" - ], - [ - "▁ze", - "ros" - ], - [ - "▁zero", - "s" - ], - [ - "▁Stra", - "ßen" - ], - [ - "▁Straße", - "n" - ], - [ - "▁organ", - "isation" - ], - [ - "▁organis", - "ation" - ], - [ - "▁", - "organisation" - ], - [ - "üss", - "en" - ], - [ - "üs", - "sen" - ], - [ - "▁S", - "ierra" - ], - [ - "▁Se", - "ason" - ], - [ - "▁Sea", - "son" - ], - [ - "▁vol", - "ont" - ], - [ - "Bean", - "Factory" - ], - [ - "▁помо", - "щ" - ], - [ - "▁pres", - "sing" - ], - [ - "▁press", - "ing" - ], - [ - "▁equival", - "ence" - ], - [ - "▁c", - "att" - ], - [ - "▁ca", - "tt" - ], - [ - "▁cat", - "t" - ], - [ - "ic", - "ity" - ], - [ - "ici", - "ty" - ], - [ - "i", - "city" - ], - [ - "▁accompl", - "ished" - ], - [ - "▁accomp", - "lished" - ], - [ - "▁accomplish", - "ed" - ], - [ - "▁y", - "o" - ], - [ - "▁", - "yo" - ], - [ - "▁s", - "ic" - ], - [ - "▁si", - "c" - ], - [ - "▁im", - "ports" - ], - [ - "▁import", - "s" - ], - [ - "▁accom", - "mod" - ], - [ - "▁Port", - "o" - ], - [ - "▁Por", - "to" - ], - [ - "▁я", - "ка" - ], - [ - "▁як", - "а" - ], - [ - "▁lo", - "an" - ], - [ - "ти", - "ки" - ], - [ - "тик", - "и" - ], - [ - "▁check", - "out" - ], - [ - "▁ass", - "ess" - ], - [ - "▁asse", - "ss" - ], - [ - "▁Pop", - "ulation" - ], - [ - "ur", - "ent" - ], - [ - "ure", - "nt" - ], - [ - "uren", - "t" - ], - [ - "u", - "rent" - ], - [ - "clo", - "jure" - ], - [ - "▁Sant", - "os" - ], - [ - "▁Santo", - "s" - ], - [ - "▁inform", - "áció" - ], - [ - "PO", - "S" - ], - [ - "P", - "OS" - ], - [ - "▁g", - "are" - ], - [ - "▁gar", - "e" - ], - [ - "▁ga", - "re" - ], - [ - "▁k", - "ick" - ], - [ - "▁ki", - "ck" - ], - [ - "▁rad", - "ical" - ], - [ - "▁radi", - "cal" - ], - [ - "▁Pe", - "ace" - ], - [ - "▁stream", - "ing" - ], - [ - "▁stre", - "aming" - ], - [ - "ca", - "mp" - ], - [ - "cam", - "p" - ], - [ - "c", - "amp" - ], - [ - "zą", - "t" - ], - [ - "го", - "вор" - ], - [ - "гов", - "ор" - ], - [ - "гово", - "р" - ], - [ - "▁Reg", - "ierung" - ], - [ - "▁proceed", - "ed" - ], - [ - "f", - "m" - ], - [ - "ле", - "ны" - ], - [ - "лен", - "ы" - ], - [ - "▁ear", - "nest" - ], - [ - "▁Par", - "ad" - ], - [ - "▁Pa", - "rad" - ], - [ - "▁Para", - "d" - ], - [ - "request", - "s" - ], - [ - "▁R", - "aum" - ], - [ - "▁Ra", - "um" - ], - [ - "š", - "č" - ], - [ - "▁polic", - "ies" - ], - [ - "▁T", - "ig" - ], - [ - "▁Ti", - "g" - ], - [ - "▁s", - "itt" - ], - [ - "▁si", - "tt" - ], - [ - "▁sit", - "t" - ], - [ - "▁Ener", - "gy" - ], - [ - "▁pur", - "ely" - ], - [ - "▁pure", - "ly" - ], - [ - "▁H", - "aut" - ], - [ - "▁Ha", - "ut" - ], - [ - "▁Sp", - "eed" - ], - [ - "▁Spe", - "ed" - ], - [ - "▁", - "Speed" - ], - [ - "bi", - "o" - ], - [ - "b", - "io" - ], - [ - "▁o", - "range" - ], - [ - "▁or", - "ange" - ], - [ - "▁big", - "gest" - ], - [ - "▁britann", - "ique" - ], - [ - "▁No", - "table" - ], - [ - "▁Not", - "able" - ], - [ - "v", - "u" - ], - [ - "ле", - "нии" - ], - [ - "би", - "н" - ], - [ - "б", - "ин" - ], - [ - "▁N", - "ash" - ], - [ - "▁Na", - "sh" - ], - [ - "▁Nas", - "h" - ], - [ - "ще", - "ние" - ], - [ - "▁c", - "iel" - ], - [ - "▁ci", - "el" - ], - [ - "adém", - "ie" - ], - [ - "▁гру", - "дня" - ], - [ - "▁jo", - "ue" - ], - [ - "▁jou", - "e" - ], - [ - "▁v", - "oted" - ], - [ - "▁vo", - "ted" - ], - [ - "▁vot", - "ed" - ], - [ - "▁vote", - "d" - ], - [ - "ri", - "co" - ], - [ - "ric", - "o" - ], - [ - "r", - "ico" - ], - [ - "▁го", - "р" - ], - [ - "▁г", - "ор" - ], - [ - "▁", - "гор" - ], - [ - "▁коман", - "ду" - ], - [ - "it", - "ivity" - ], - [ - "iti", - "vity" - ], - [ - "▁щ", - "е" - ], - [ - "▁", - "ще" - ], - [ - "▁de", - "finite" - ], - [ - "▁defin", - "ite" - ], - [ - "▁definit", - "e" - ], - [ - "uro", - "pa" - ], - [ - "urop", - "a" - ], - [ - "!\"", - ");" - ], - [ - "!", - "\");" - ], - [ - "Default", - "s" - ], - [ - "▁неко", - "торы" - ], - [ - "éd", - "ération" - ], - [ - "▁s", - "illy" - ], - [ - "▁sil", - "ly" - ], - [ - "▁talk", - "ed" - ], - [ - "▁tal", - "ked" - ], - [ - "re", - "u" - ], - [ - "r", - "eu" - ], - [ - "▁L", - "omb" - ], - [ - "▁Lo", - "mb" - ], - [ - "▁stat", - "ue" - ], - [ - "кт", - "а" - ], - [ - "к", - "та" - ], - [ - "ю", - "р" - ], - [ - "um", - "ably" - ], - [ - "▁горо", - "де" - ], - [ - "▁город", - "е" - ], - [ - "▁R", - "untime" - ], - [ - "▁Run", - "time" - ], - [ - "▁", - "Runtime" - ], - [ - "▁di", - "agn" - ], - [ - "▁diag", - "n" - ], - [ - "▁dia", - "gn" - ], - [ - "▁r", - "etro" - ], - [ - "▁ret", - "ro" - ], - [ - "▁retr", - "o" - ], - [ - "▁Sver", - "ige" - ], - [ - "▁in", - "icial" - ], - [ - "▁inici", - "al" - ], - [ - "ien", - "za" - ], - [ - "i", - "enza" - ], - [ - "▁fig", - "lio" - ], - [ - "▁z", - "og" - ], - [ - "▁zo", - "g" - ], - [ - "▁re", - "y" - ], - [ - "▁r", - "ey" - ], - [ - "▁", - "rey" - ], - [ - "▁R", - "und" - ], - [ - "▁Run", - "d" - ], - [ - "▁Ru", - "nd" - ], - [ - "т", - "ный" - ], - [ - "▁ce", - "ased" - ], - [ - "er", - "no" - ], - [ - "ern", - "o" - ], - [ - "▁e", - "sa" - ], - [ - "▁es", - "a" - ], - [ - "▁", - "esa" - ], - [ - "▁tr", - "ouv" - ], - [ - "▁tro", - "uv" - ], - [ - "▁trou", - "v" - ], - [ - "▁Gemeinde", - "n" - ], - [ - "▁Geme", - "inden" - ], - [ - "▁comer", - "cial" - ], - [ - "sk", - "ap" - ], - [ - "ska", - "p" - ], - [ - "s", - "kap" - ], - [ - "en", - "ario" - ], - [ - "ena", - "rio" - ], - [ - "▁ju", - "ris" - ], - [ - "▁jur", - "is" - ], - [ - "T", - "B" - ], - [ - "на", - "ла" - ], - [ - "нал", - "а" - ], - [ - "н", - "ала" - ], - [ - "▁v", - "ij" - ], - [ - "▁vi", - "j" - ], - [ - "V", - "O" - ], - [ - "▁c", - "lin" - ], - [ - "▁cl", - "in" - ], - [ - "▁cli", - "n" - ], - [ - "jö", - "r" - ], - [ - "j", - "ör" - ], - [ - "са", - "н" - ], - [ - "с", - "ан" - ], - [ - "ow", - "ała" - ], - [ - "owa", - "ła" - ], - [ - "ował", - "a" - ], - [ - "rib", - "ución" - ], - [ - "ribu", - "ción" - ], - [ - "▁urs", - "prüng" - ], - [ - "▁con", - "dem" - ], - [ - "▁cond", - "em" - ], - [ - "▁St", - "age" - ], - [ - "▁Sta", - "ge" - ], - [ - "▁", - "Stage" - ], - [ - "▁mix", - "ing" - ], - [ - "▁рі", - "з" - ], - [ - "▁f", - "ans" - ], - [ - "▁fa", - "ns" - ], - [ - "▁fan", - "s" - ], - [ - "há", - "z" - ], - [ - "h", - "áz" - ], - [ - "so", - "cial" - ], - [ - "soci", - "al" - ], - [ - "za", - "n" - ], - [ - "z", - "an" - ], - [ - "▁с", - "вой" - ], - [ - "▁сво", - "й" - ], - [ - "Cook", - "ie" - ], - [ - "▁Ro", - "land" - ], - [ - "▁Rol", - "and" - ], - [ - "az", - "ionale" - ], - [ - "▁Sl", - "oven" - ], - [ - "▁Slo", - "ven" - ], - [ - "▁Slov", - "en" - ], - [ - "▁F", - "iche" - ], - [ - "▁Fich", - "e" - ], - [ - "▁S", - "é" - ], - [ - "h", - "ä" - ], - [ - "▁official", - "s" - ], - [ - "▁offici", - "als" - ], - [ - "▁î", - "nt" - ], - [ - "▁în", - "t" - ], - [ - "Inter", - "ceptor" - ], - [ - "Table", - "s" - ], - [ - "Tab", - "les" - ], - [ - "T", - "ables" - ], - [ - "▁da", - "von" - ], - [ - "▁dav", - "on" - ], - [ - "init", - "ialize" - ], - [ - "initial", - "ize" - ], - [ - "]=", - "\"" - ], - [ - "]", - "=\"" - ], - [ - "▁B", - "ody" - ], - [ - "▁Bo", - "dy" - ], - [ - "▁Bod", - "y" - ], - [ - "▁", - "Body" - ], - [ - "▁U", - "pper" - ], - [ - "▁Up", - "per" - ], - [ - "▁", - "Upper" - ], - [ - "▁Col", - "lect" - ], - [ - "▁Coll", - "ect" - ], - [ - "▁", - "Collect" - ], - [ - "▁Zür", - "ich" - ], - [ - "Hor", - "izontal" - ], - [ - "Ty", - "p" - ], - [ - "T", - "yp" - ], - [ - "▁polít", - "ico" - ], - [ - "▁Rewrite", - "Cond" - ], - [ - "▁h", - "oped" - ], - [ - "▁hope", - "d" - ], - [ - "▁ho", - "ped" - ], - [ - "▁hop", - "ed" - ], - [ - "▁anx", - "ious" - ], - [ - "Li", - "ter" - ], - [ - "L", - "iter" - ], - [ - "ja", - "hr" - ], - [ - "j", - "ahr" - ], - [ - "▁ass", - "emble" - ], - [ - "▁assemb", - "le" - ], - [ - "▁c", - "rypt" - ], - [ - "▁cry", - "pt" - ], - [ - "lah", - "oma" - ], - [ - "AS", - "H" - ], - [ - "A", - "SH" - ], - [ - "▁Б", - "ри" - ], - [ - "▁C", - "ic" - ], - [ - "▁Ci", - "c" - ], - [ - "tw", - "itter" - ], - [ - "hy", - "per" - ], - [ - "▁T", - "ell" - ], - [ - "▁Te", - "ll" - ], - [ - "▁Tel", - "l" - ], - [ - "іль", - "ки" - ], - [ - "во", - "бо" - ], - [ - "▁ba", - "zie" - ], - [ - "▁baz", - "ie" - ], - [ - "▁contempor", - "ary" - ], - [ - "▁Param", - "eter" - ], - [ - "▁Para", - "meter" - ], - [ - "▁", - "Parameter" - ], - [ - "st", - "wa" - ], - [ - "▁bek", - "end" - ], - [ - "co", - "ck" - ], - [ - "c", - "ock" - ], - [ - "pre", - "vious" - ], - [ - "prev", - "ious" - ], - [ - "en", - "ska" - ], - [ - "ens", - "ka" - ], - [ - "ensk", - "a" - ], - [ - "▁c", - "aller" - ], - [ - "▁cal", - "ler" - ], - [ - "▁call", - "er" - ], - [ - "]]", - ")" - ], - [ - "]", - "])" - ], - [ - "▁R", - "az" - ], - [ - "▁Ra", - "z" - ], - [ - "▁Se", - "lon" - ], - [ - "▁Sel", - "on" - ], - [ - "▁propos", - "al" - ], - [ - "▁b", - "ý" - ], - [ - "▁S", - "ied" - ], - [ - "▁Sie", - "d" - ], - [ - "▁Si", - "ed" - ], - [ - "▁Arbe", - "its" - ], - [ - "▁Arbeit", - "s" - ], - [ - "▁p", - "ride" - ], - [ - "▁pr", - "ide" - ], - [ - "▁pri", - "de" - ], - [ - "▁sl", - "ope" - ], - [ - "▁slo", - "pe" - ], - [ - "id", - "é" - ], - [ - "grad", - "ient" - ], - [ - "▁Дже", - "рела" - ], - [ - "▁S", - "H" - ], - [ - "▁", - "SH" - ], - [ - "▁раз", - "рабо" - ], - [ - "ivers", - "ity" - ], - [ - "спо", - "дар" - ], - [ - "\\{", - "\\" - ], - [ - "\\", - "{\\" - ], - [ - "▁с", - "тали" - ], - [ - "▁ст", - "али" - ], - [ - "▁ста", - "ли" - ], - [ - "▁стал", - "и" - ], - [ - "▁Ein", - "zel" - ], - [ - "▁Einz", - "el" - ], - [ - "▁rg", - "ba" - ], - [ - "▁A", - "nim" - ], - [ - "▁An", - "im" - ], - [ - "▁", - "Anim" - ], - [ - "▁a", - "lles" - ], - [ - "▁al", - "les" - ], - [ - "▁all", - "es" - ], - [ - "▁alle", - "s" - ], - [ - "▁", - "alles" - ], - [ - "ба", - "р" - ], - [ - "б", - "ар" - ], - [ - "er", - "te" - ], - [ - "ert", - "e" - ], - [ - "▁réalis", - "é" - ], - [ - "▁réal", - "isé" - ], - [ - "Inst", - "itut" - ], - [ - "▁mar", - "kup" - ], - [ - "▁mark", - "up" - ], - [ - "▁v", - "ars" - ], - [ - "▁var", - "s" - ], - [ - "▁va", - "rs" - ], - [ - "▁", - "vars" - ], - [ - "▁g", - "am" - ], - [ - "▁ga", - "m" - ], - [ - "▁Васи", - "ль" - ], - [ - "iz", - "za" - ], - [ - "izz", - "a" - ], - [ - "i", - "zza" - ], - [ - "▁C", - "ob" - ], - [ - "▁Co", - "b" - ], - [ - "▁M", - "etal" - ], - [ - "▁Me", - "tal" - ], - [ - "▁Met", - "al" - ], - [ - "▁Meta", - "l" - ], - [ - "▁le", - "ak" - ], - [ - "▁L", - "anc" - ], - [ - "▁La", - "nc" - ], - [ - "▁Lan", - "c" - ], - [ - "Sw", - "itch" - ], - [ - "De", - "lay" - ], - [ - "Del", - "ay" - ], - [ - "at", - "uur" - ], - [ - "atu", - "ur" - ], - [ - "▁че", - "ты" - ], - [ - "▁анг", - "лий" - ], - [ - "▁leg", - "acy" - ], - [ - "▁desar", - "roll" - ], - [ - "▁top", - "ological" - ], - [ - "▁jewe", - "ils" - ], - [ - "▁Nederland", - "se" - ], - [ - "▁atmos", - "phere" - ], - [ - "ur", - "ban" - ], - [ - "urb", - "an" - ], - [ - "▁s", - "lov" - ], - [ - "▁sl", - "ov" - ], - [ - "▁slo", - "v" - ], - [ - "▁law", - "yer" - ], - [ - "pe", - "cially" - ], - [ - "▁altern", - "ate" - ], - [ - "▁para", - "met" - ], - [ - "▁param", - "et" - ], - [ - "▁establish", - "ment" - ], - [ - "▁wood", - "s" - ], - [ - "▁wo", - "ods" - ], - [ - "P", - "D" - ], - [ - "▁на", - "и" - ], - [ - "▁m", - "ang" - ], - [ - "▁ma", - "ng" - ], - [ - "▁man", - "g" - ], - [ - "▁wechsel", - "te" - ], - [ - "сь", - "ку" - ], - [ - "ськ", - "у" - ], - [ - ".", - "=" - ], - [ - "▁fif", - "teen" - ], - [ - "SU", - "M" - ], - [ - "S", - "UM" - ], - [ - "▁F", - "ro" - ], - [ - "▁Fr", - "o" - ], - [ - "▁L", - "ED" - ], - [ - "▁LE", - "D" - ], - [ - "▁", - "LED" - ], - [ - "ow", - "ano" - ], - [ - "owa", - "no" - ], - [ - "owan", - "o" - ], - [ - "стви", - "е" - ], - [ - "▁D", - "onnées" - ], - [ - "to", - "l" - ], - [ - "t", - "ol" - ], - [ - "ży", - "n" - ], - [ - "ż", - "yn" - ], - [ - "cre", - "f" - ], - [ - "cr", - "ef" - ], - [ - "c", - "ref" - ], - [ - "стви", - "и" - ], - [ - "ho", - "rn" - ], - [ - "hor", - "n" - ], - [ - "h", - "orn" - ], - [ - "▁со", - "об" - ], - [ - "▁обо", - "ро" - ], - [ - "▁Comp", - "lete" - ], - [ - "▁Comple", - "te" - ], - [ - "▁", - "Complete" - ], - [ - "“", - ")" - ], - [ - "▁kind", - "ly" - ], - [ - "▁Cham", - "ber" - ], - [ - "s", - "ég" - ], - [ - "W", - "H" - ], - [ - "▁amb", - "ient" - ], - [ - "к", - "ро" - ], - [ - "▁ch", - "eval" - ], - [ - "▁che", - "val" - ], - [ - "▁на", - "писа" - ], - [ - "fl", - "u" - ], - [ - "f", - "lu" - ], - [ - "▁Off", - "iz" - ], - [ - "ma", - "te" - ], - [ - "mat", - "e" - ], - [ - "m", - "ate" - ], - [ - "nat", - "ural" - ], - [ - "n", - "atural" - ], - [ - "se", - "par" - ], - [ - "sep", - "ar" - ], - [ - "em", - "pre" - ], - [ - "emp", - "re" - ], - [ - "View", - "Holder" - ], - [ - "f", - "w" - ], - [ - "▁le", - "tech" - ], - [ - "▁let", - "ech" - ], - [ - "▁tra", - "iling" - ], - [ - "▁trail", - "ing" - ], - [ - "at", - "ri" - ], - [ - "atr", - "i" - ], - [ - "a", - "tri" - ], - [ - "▁G", - "ó" - ], - [ - "▁B", - "onn" - ], - [ - "▁Bo", - "nn" - ], - [ - "▁Bon", - "n" - ], - [ - "▁un", - "likely" - ], - [ - "▁unlike", - "ly" - ], - [ - "RA", - "M" - ], - [ - "R", - "AM" - ], - [ - "en", - "st" - ], - [ - "ens", - "t" - ], - [ - "St", - "ats" - ], - [ - "Stat", - "s" - ], - [ - "▁поли", - "тиче" - ], - [ - ")-", - "-(" - ], - [ - ")--", - "(" - ], - [ - "▁t", - "rom" - ], - [ - "▁tr", - "om" - ], - [ - "▁tro", - "m" - ], - [ - "!.", - ".." - ], - [ - "!", - "..." - ], - [ - "▁Mean", - "while" - ], - [ - "ст", - "ана" - ], - [ - "ста", - "на" - ], - [ - "стан", - "а" - ], - [ - "▁Re", - "ino" - ], - [ - "▁Rein", - "o" - ], - [ - "▁A", - "rist" - ], - [ - "▁Ar", - "ist" - ], - [ - "▁Ari", - "st" - ], - [ - "$}", - "}%" - ], - [ - "$", - "}}%" - ], - [ - "▁so", - "lem" - ], - [ - "▁sol", - "em" - ], - [ - "▁sole", - "m" - ], - [ - "clos", - "ure" - ], - [ - "ign", - "ation" - ], - [ - "ło", - "d" - ], - [ - "ł", - "od" - ], - [ - "▁di", - "vor" - ], - [ - "▁div", - "or" - ], - [ - "▁между", - "народ" - ], - [ - "=\"", - "" - ], - [ - "▁==", - ">" - ], - [ - "Ori", - "entation" - ], - [ - "ci", - "d" - ], - [ - "c", - "id" - ], - [ - "Car", - "t" - ], - [ - "Ca", - "rt" - ], - [ - "C", - "art" - ], - [ - "▁m", - "urm" - ], - [ - "▁mu", - "rm" - ], - [ - "▁mur", - "m" - ], - [ - "▁ass", - "ez" - ], - [ - "▁asse", - "z" - ], - [ - "▁l", - "inking" - ], - [ - "▁link", - "ing" - ], - [ - "▁lin", - "king" - ], - [ - "build", - "ing" - ], - [ - "▁rec", - "onna" - ], - [ - "▁recon", - "na" - ], - [ - "▁s", - "hook" - ], - [ - "▁sh", - "ook" - ], - [ - "▁sho", - "ok" - ], - [ - "man", - "aged" - ], - [ - "mana", - "ged" - ], - [ - "land", - "a" - ], - [ - "lan", - "da" - ], - [ - "l", - "anda" - ], - [ - "▁Le", - "ón" - ], - [ - "▁cré", - "ation" - ], - [ - "до", - "й" - ], - [ - "oc", - "ity" - ], - [ - "oci", - "ty" - ], - [ - "o", - "city" - ], - [ - "▁w", - "ij" - ], - [ - "▁", - "wij" - ], - [ - "▁wie", - "ś" - ], - [ - "xt", - "art" - ], - [ - "▁M", - "ove" - ], - [ - "▁Mo", - "ve" - ], - [ - "▁Mov", - "e" - ], - [ - "▁", - "Move" - ], - [ - "lung", - "en" - ], - [ - "l", - "ungen" - ], - [ - "ству", - "ет" - ], - [ - "or", - "ney" - ], - [ - "orn", - "ey" - ], - [ - "option", - "al" - ], - [ - "opt", - "ional" - ], - [ - "ma", - "cro" - ], - [ - "mac", - "ro" - ], - [ - "Cond", - "ition" - ], - [ - "▁square", - "s" - ], - [ - "▁squ", - "ares" - ], - [ - "▁mist", - "aken" - ], - [ - "▁mistake", - "n" - ], - [ - "án", - "t" - ], - [ - "á", - "nt" - ], - [ - "▁R", - "is" - ], - [ - "▁Ri", - "s" - ], - [ - "▁sent", - "ences" - ], - [ - "▁sentence", - "s" - ], - [ - "er", - "ea" - ], - [ - "ere", - "a" - ], - [ - "e", - "rea" - ], - [ - "▁m", - "ij" - ], - [ - "▁mi", - "j" - ], - [ - "Un", - "d" - ], - [ - "U", - "nd" - ], - [ - "▁nom", - "br" - ], - [ - "z", - "A" - ], - [ - "▁In", - "dependent" - ], - [ - "▁Indep", - "endent" - ], - [ - "▁Independ", - "ent" - ], - [ - "▁p", - "review" - ], - [ - "▁pre", - "view" - ], - [ - "▁prev", - "iew" - ], - [ - "▁", - "preview" - ], - [ - "im", - "as" - ], - [ - "ima", - "s" - ], - [ - "i", - "mas" - ], - [ - "▁m", - "ales" - ], - [ - "▁ma", - "les" - ], - [ - "▁mal", - "es" - ], - [ - "▁male", - "s" - ], - [ - "in", - "ental" - ], - [ - "inen", - "tal" - ], - [ - "inent", - "al" - ], - [ - "Th", - "ank" - ], - [ - "▁p", - "opol" - ], - [ - "▁po", - "pol" - ], - [ - "▁pop", - "ol" - ], - [ - "▁p", - "over" - ], - [ - "▁po", - "ver" - ], - [ - "▁pov", - "er" - ], - [ - "▁gr", - "asp" - ], - [ - "▁gra", - "sp" - ], - [ - "▁im", - "ped" - ], - [ - "▁imp", - "ed" - ], - [ - "▁campion", - "ato" - ], - [ - "▁W", - "ei" - ], - [ - "▁We", - "i" - ], - [ - "▁t", - "itled" - ], - [ - "▁title", - "d" - ], - [ - "▁tit", - "led" - ], - [ - "▁A", - "demás" - ], - [ - "▁Pass", - "word" - ], - [ - "▁", - "Password" - ], - [ - "▁P", - "am" - ], - [ - "▁Pa", - "m" - ], - [ - "UI", - "LD" - ], - [ - "▁ли", - "пня" - ], - [ - "wer", - "b" - ], - [ - "we", - "rb" - ], - [ - "w", - "erb" - ], - [ - "........", - "........" - ], - [ - "▁R", - "ío" - ], - [ - "▁te", - "eth" - ], - [ - "b", - "p" - ], - [ - "▁S", - "W" - ], - [ - "▁", - "SW" - ], - [ - "ul", - "aire" - ], - [ - "ula", - "ire" - ], - [ - "▁se", - "ized" - ], - [ - "▁sei", - "zed" - ], - [ - "▁St", - "ef" - ], - [ - "▁Ste", - "f" - ], - [ - "ú", - "l" - ], - [ - "▁v", - "iz" - ], - [ - "▁vi", - "z" - ], - [ - "ion", - "y" - ], - [ - "io", - "ny" - ], - [ - "i", - "ony" - ], - [ - "▁j", - "unt" - ], - [ - "▁ju", - "nt" - ], - [ - "▁jun", - "t" - ], - [ - "▁kter", - "á" - ], - [ - "▁wrześ", - "nia" - ], - [ - "<", - ">" - ], - [ - "▁s", - "urg" - ], - [ - "▁su", - "rg" - ], - [ - "▁sur", - "g" - ], - [ - "▁tu", - "tte" - ], - [ - "▁tut", - "te" - ], - [ - "▁H", - "ob" - ], - [ - "▁Ho", - "b" - ], - [ - "по", - "від" - ], - [ - "пов", - "ід" - ], - [ - "▁w", - "ohl" - ], - [ - "▁wo", - "hl" - ], - [ - "▁", - "wohl" - ], - [ - "▁t", - "rag" - ], - [ - "▁tr", - "ag" - ], - [ - "▁tra", - "g" - ], - [ - "▁C", - "rown" - ], - [ - "▁Cr", - "own" - ], - [ - "▁Cro", - "wn" - ], - [ - "▁Crow", - "n" - ], - [ - "▁tr", - "ova" - ], - [ - "▁tro", - "va" - ], - [ - "▁trov", - "a" - ], - [ - "сто", - "ву" - ], - [ - "стов", - "у" - ], - [ - "▁Vien", - "na" - ], - [ - "ese", - "hen" - ], - [ - "▁met", - "ropol" - ], - [ - "▁reflect", - "ed" - ], - [ - "те", - "та" - ], - [ - "тет", - "а" - ], - [ - "т", - "ета" - ], - [ - "▁trad", - "uc" - ], - [ - "▁tradu", - "c" - ], - [ - "▁B", - "ast" - ], - [ - "▁Bas", - "t" - ], - [ - "▁Ba", - "st" - ], - [ - "▁ersch", - "ien" - ], - [ - "wo", - "ord" - ], - [ - "()", - "\"" - ], - [ - "(", - ")\"" - ], - [ - "ta", - "let" - ], - [ - "tal", - "et" - ], - [ - "t", - "alet" - ], - [ - "▁ro", - "ads" - ], - [ - "▁road", - "s" - ], - [ - "ве", - "дения" - ], - [ - "веде", - "ния" - ], - [ - "ühr", - "ung" - ], - [ - "▁c", - "ogn" - ], - [ - "▁co", - "gn" - ], - [ - "▁V", - "alle" - ], - [ - "▁Val", - "le" - ], - [ - "▁Va", - "lle" - ], - [ - "▁Vall", - "e" - ], - [ - "▁land", - "ing" - ], - [ - "▁lan", - "ding" - ], - [ - "▁Re", - "gex" - ], - [ - "▁Reg", - "ex" - ], - [ - "▁I", - "owa" - ], - [ - "▁Io", - "wa" - ], - [ - "dz", - "iał" - ], - [ - "d", - "ział" - ], - [ - "▁erre", - "ichte" - ], - [ - "au", - "m" - ], - [ - "a", - "um" - ], - [ - "▁found", - "er" - ], - [ - "▁fo", - "under" - ], - [ - "▁fou", - "nder" - ], - [ - "ap", - "olis" - ], - [ - "Comp", - "iler" - ], - [ - "▁k", - "op" - ], - [ - "▁ko", - "p" - ], - [ - "▁", - "kop" - ], - [ - "▁m", - "arc" - ], - [ - "▁ma", - "rc" - ], - [ - "▁mar", - "c" - ], - [ - "▁те", - "ритор" - ], - [ - "))", - "`" - ], - [ - ")", - ")`" - ], - [ - "▁l", - "ei" - ], - [ - "▁le", - "i" - ], - [ - "▁", - "lei" - ], - [ - "ge", - "on" - ], - [ - "geo", - "n" - ], - [ - "▁weap", - "ons" - ], - [ - "▁weapon", - "s" - ], - [ - "▁h", - "orn" - ], - [ - "▁hor", - "n" - ], - [ - "▁ho", - "rn" - ], - [ - "▁", - "horn" - ], - [ - "▁el", - "if" - ], - [ - "▁", - "elif" - ], - [ - "▁Cap", - "ital" - ], - [ - "▁Capit", - "al" - ], - [ - "ć", - "e" - ], - [ - "▁for", - "all" - ], - [ - "▁", - "forall" - ], - [ - "▁э", - "та" - ], - [ - "pre", - "view" - ], - [ - "prev", - "iew" - ], - [ - "p", - "review" - ], - [ - "▁D", - "NA" - ], - [ - "▁s", - "id" - ], - [ - "▁si", - "d" - ], - [ - "or", - "ch" - ], - [ - "▁R", - "as" - ], - [ - "▁Ra", - "s" - ], - [ - "▁a", - "rab" - ], - [ - "▁ar", - "ab" - ], - [ - "▁ara", - "b" - ], - [ - "▁", - "arab" - ], - [ - "Be", - "st" - ], - [ - "B", - "est" - ], - [ - "▁с", - "чита" - ], - [ - "▁L", - "ópez" - ], - [ - "an", - "ça" - ], - [ - "▁fun", - "kc" - ], - [ - "▁t", - "ienen" - ], - [ - "▁tiene", - "n" - ], - [ - "▁ti", - "enen" - ], - [ - "▁tie", - "nen" - ], - [ - ";", - "&" - ], - [ - "m", - "useum" - ], - [ - "▁E", - "rr" - ], - [ - "▁Er", - "r" - ], - [ - "▁", - "Err" - ], - [ - "▁re", - "sort" - ], - [ - "▁res", - "ort" - ], - [ - "No", - "v" - ], - [ - "N", - "ov" - ], - [ - "▁k", - "al" - ], - [ - "▁ka", - "l" - ], - [ - "▁", - "kal" - ], - [ - "M", - "W" - ], - [ - "ш", - "ь" - ], - [ - "an", - "chor" - ], - [ - "anc", - "hor" - ], - [ - "anch", - "or" - ], - [ - "▁ро", - "ман" - ], - [ - "le", - "ading" - ], - [ - "lea", - "ding" - ], - [ - "▁m", - "anten" - ], - [ - "▁ma", - "nten" - ], - [ - "▁man", - "ten" - ], - [ - "▁mant", - "en" - ], - [ - "▁Sil", - "va" - ], - [ - "da", - "de" - ], - [ - "d", - "ade" - ], - [ - "▁design", - "ated" - ], - [ - "▁rev", - "ista" - ], - [ - "▁revis", - "ta" - ], - [ - "O", - "ct" - ], - [ - "per", - "cent" - ], - [ - "▁у", - "ні" - ], - [ - "ident", - "ifier" - ], - [ - "ma", - "ss" - ], - [ - "mas", - "s" - ], - [ - "m", - "ass" - ], - [ - "@", - "@" - ], - [ - "uls", - "ion" - ], - [ - "ger", - "meister" - ], - [ - "g", - "ermeister" - ], - [ - "▁pred", - "icted" - ], - [ - "▁predict", - "ed" - ], - [ - "▁с", - "ви" - ], - [ - "жно", - "й" - ], - [ - "ж", - "ной" - ], - [ - "▁Er", - "geb" - ], - [ - "▁c", - "ust" - ], - [ - "▁cu", - "st" - ], - [ - "▁remove", - "s" - ], - [ - "▁remov", - "es" - ], - [ - "ch", - "arg" - ], - [ - "char", - "g" - ], - [ - "cha", - "rg" - ], - [ - "при", - "мер" - ], - [ - "▁for", - "ming" - ], - [ - "▁form", - "ing" - ], - [ - "as", - "ma" - ], - [ - "asm", - "a" - ], - [ - "std", - "out" - ], - [ - "F", - "un" - ], - [ - "ym", - "e" - ], - [ - "y", - "me" - ], - [ - "ter", - "ed" - ], - [ - "te", - "red" - ], - [ - "tere", - "d" - ], - [ - "t", - "ered" - ], - [ - "urs", - "ive" - ], - [ - "ig", - "hed" - ], - [ - "igh", - "ed" - ], - [ - "▁сле", - "д" - ], - [ - "▁", - "след" - ], - [ - "ver", - "band" - ], - [ - "verb", - "and" - ], - [ - "▁LO", - "G" - ], - [ - "▁", - "LOG" - ], - [ - "ra", - "ms" - ], - [ - "ram", - "s" - ], - [ - "r", - "ams" - ], - [ - "éo", - "n" - ], - [ - "é", - "on" - ], - [ - "en", - "dra" - ], - [ - "end", - "ra" - ], - [ - "▁Be", - "reich" - ], - [ - "▁Bere", - "ich" - ], - [ - "▁tempor", - "al" - ], - [ - "▁temp", - "oral" - ], - [ - "▁tempo", - "ral" - ], - [ - "▁lang", - "ue" - ], - [ - "▁lan", - "gue" - ], - [ - "▁I", - "nn" - ], - [ - "▁In", - "n" - ], - [ - "▁more", - "over" - ], - [ - "▁tutorial", - "s" - ], - [ - "M", - "iddle" - ], - [ - "▁совет", - "ский" - ], - [ - "▁mainten", - "ance" - ], - [ - "as", - "ures" - ], - [ - "asure", - "s" - ], - [ - "▁vál", - "to" - ], - [ - "BA", - "SE" - ], - [ - "B", - "ASE" - ], - [ - "▁disapp", - "ear" - ], - [ - "ски", - "я" - ], - [ - "▁conoc", - "ido" - ], - [ - "▁На", - "у" - ], - [ - "▁Li", - "bert" - ], - [ - "▁Lib", - "ert" - ], - [ - "▁Liber", - "t" - ], - [ - "▁Har", - "old" - ], - [ - "▁life", - "time" - ], - [ - "▁lif", - "etime" - ], - [ - "▁T", - "ür" - ], - [ - "▁za", - "wod" - ], - [ - "▁zaw", - "od" - ], - [ - "om", - "ic" - ], - [ - "omi", - "c" - ], - [ - "o", - "mic" - ], - [ - "▁Retrie", - "ved" - ], - [ - "arch", - "itecture" - ], - [ - "č", - "ka" - ], - [ - "iform", - "es" - ], - [ - "develop", - "ment" - ], - [ - "ord", - "nung" - ], - [ - "In", - "f" - ], - [ - "le", - "ben" - ], - [ - "leb", - "en" - ], - [ - "l", - "eben" - ], - [ - "▁St", - "ars" - ], - [ - "▁Sta", - "rs" - ], - [ - "▁Star", - "s" - ], - [ - "sign", - "al" - ], - [ - "sig", - "nal" - ], - [ - "▁gram", - "mar" - ], - [ - "▁cor", - "so" - ], - [ - "▁cors", - "o" - ], - [ - "▁W", - "agner" - ], - [ - "▁ge", - "ht" - ], - [ - "▁royal", - "e" - ], - [ - "▁roy", - "ale" - ], - [ - "wa", - "rn" - ], - [ - "war", - "n" - ], - [ - "w", - "arn" - ], - [ - "um", - "bled" - ], - [ - "umb", - "led" - ], - [ - "umble", - "d" - ], - [ - "▁inst", - "it" - ], - [ - "▁ins", - "tit" - ], - [ - "▁Ш", - "и" - ], - [ - "h", - "h" - ], - [ - "▁ref", - "uge" - ], - [ - "▁favor", - "ite" - ], - [ - "ier", - "to" - ], - [ - "iert", - "o" - ], - [ - "▁cond", - "ado" - ], - [ - "▁T", - "her" - ], - [ - "▁The", - "r" - ], - [ - "▁Th", - "er" - ], - [ - "▁человек", - "а" - ], - [ - "▁челове", - "ка" - ], - [ - "▁F", - "ood" - ], - [ - "▁Foo", - "d" - ], - [ - "▁Fo", - "od" - ], - [ - "▁se", - "izo" - ], - [ - "▁sei", - "zo" - ], - [ - "▁Init", - "ialize" - ], - [ - "▁Initial", - "ize" - ], - [ - "▁con", - "nu" - ], - [ - "▁conn", - "u" - ], - [ - "▁over", - "lap" - ], - [ - "▁E", - "mil" - ], - [ - "▁Em", - "il" - ], - [ - "▁Mart", - "í" - ], - [ - "▁жовт", - "ня" - ], - [ - "er", - "va" - ], - [ - "erv", - "a" - ], - [ - "▁bo", - "ats" - ], - [ - "▁boat", - "s" - ], - [ - "a", - "ções" - ], - [ - "▁der", - "rot" - ], - [ - "▁m", - "alloc" - ], - [ - "▁mal", - "loc" - ], - [ - "▁", - "malloc" - ], - [ - "▁con", - "ject" - ], - [ - "▁conj", - "ect" - ], - [ - "j", - "k" - ], - [ - "▁s", - "are" - ], - [ - "▁sa", - "re" - ], - [ - "▁sar", - "e" - ], - [ - "ле", - "мен" - ], - [ - "лем", - "ен" - ], - [ - "▁s", - "ums" - ], - [ - "▁su", - "ms" - ], - [ - "▁sum", - "s" - ], - [ - "Author", - "ization" - ], - [ - "▁K", - "un" - ], - [ - "▁Ku", - "n" - ], - [ - "]$", - "," - ], - [ - "]", - "$," - ], - [ - "geme", - "inde" - ], - [ - "gemein", - "de" - ], - [ - "g", - "emeinde" - ], - [ - "od", - "ot" - ], - [ - "odo", - "t" - ], - [ - "o", - "dot" - ], - [ - "de", - "fin" - ], - [ - "def", - "in" - ], - [ - "▁e", - "mission" - ], - [ - "▁em", - "ission" - ], - [ - "▁Кра", - "с" - ], - [ - "▁app", - "art" - ], - [ - "▁ap", - "part" - ], - [ - "▁appar", - "t" - ], - [ - "▁stop", - "ping" - ], - [ - "▁sto", - "pping" - ], - [ - "▁С", - "ред" - ], - [ - "▁conj", - "ug" - ], - [ - "▁ins", - "ight" - ], - [ - "▁Broad", - "cast" - ], - [ - "▁PM", - "ID" - ], - [ - "▁adv", - "antages" - ], - [ - "▁advantage", - "s" - ], - [ - "en", - "es" - ], - [ - "ene", - "s" - ], - [ - "e", - "nes" - ], - [ - "▁res", - "idence" - ], - [ - "▁resid", - "ence" - ], - [ - "lj", - "en" - ], - [ - "l", - "jen" - ], - [ - "iss", - "eur" - ], - [ - "isse", - "ur" - ], - [ - "▁pubblic", - "ato" - ], - [ - "▁Git", - "Hub" - ], - [ - "▁Per", - "u" - ], - [ - "▁Pe", - "ru" - ], - [ - "▁galax", - "ies" - ], - [ - "▁annot", - "ations" - ], - [ - "▁annotation", - "s" - ], - [ - "ga", - "s" - ], - [ - "g", - "as" - ], - [ - "▁ré", - "pond" - ], - [ - "▁rép", - "ond" - ], - [ - "J", - "s" - ], - [ - "▁independent", - "ly" - ], - [ - "▁independ", - "ently" - ], - [ - "N", - "P" - ], - [ - "▁in", - "qu" - ], - [ - "▁gr", - "ounds" - ], - [ - "▁ground", - "s" - ], - [ - "Com", - "ponents" - ], - [ - "Component", - "s" - ], - [ - "▁a", - "nten" - ], - [ - "▁an", - "ten" - ], - [ - "▁ant", - "en" - ], - [ - "▁ante", - "n" - ], - [ - "▁", - "anten" - ], - [ - "▁в", - "з" - ], - [ - "▁h", - "os" - ], - [ - "▁ho", - "s" - ], - [ - "▁", - "hos" - ], - [ - "▁s", - "int" - ], - [ - "▁si", - "nt" - ], - [ - "▁sin", - "t" - ], - [ - "▁h", - "iding" - ], - [ - "▁hi", - "ding" - ], - [ - "▁hid", - "ing" - ], - [ - "▁wojew", - "ództ" - ], - [ - "Message", - "s" - ], - [ - "Mess", - "ages" - ], - [ - "▁по", - "каза" - ], - [ - "▁пока", - "за" - ], - [ - "==", - "=" - ], - [ - "=", - "==" - ], - [ - "▁Ab", - "stract" - ], - [ - "▁", - "Abstract" - ], - [ - "▁l", - "äng" - ], - [ - "▁län", - "g" - ], - [ - "▁lä", - "ng" - ], - [ - "▁Form", - "ula" - ], - [ - "da", - "wn" - ], - [ - "d", - "awn" - ], - [ - "▁design", - "s" - ], - [ - "Im", - "g" - ], - [ - "▁Portug", - "uese" - ], - [ - "▁incl", - "uy" - ], - [ - "▁inclu", - "y" - ], - [ - "avig", - "ator" - ], - [ - "▁Bro", - "thers" - ], - [ - "▁cont", - "inent" - ], - [ - "▁contin", - "ent" - ], - [ - "▁evident", - "ly" - ], - [ - "ra", - "ce" - ], - [ - "rac", - "e" - ], - [ - "r", - "ace" - ], - [ - "ць", - "кого" - ], - [ - "▁re", - "ck" - ], - [ - "▁rec", - "k" - ], - [ - "▁", - "reck" - ], - [ - "▁сер", - "пня" - ], - [ - "▁G", - "rey" - ], - [ - "▁Gr", - "ey" - ], - [ - "▁Gre", - "y" - ], - [ - "▁appe", - "al" - ], - [ - "▁un", - "like" - ], - [ - "▁power", - "shell" - ], - [ - "▁pow", - "ershell" - ], - [ - "▁powers", - "hell" - ], - [ - "▁r", - "acc" - ], - [ - "▁ra", - "cc" - ], - [ - "▁rac", - "c" - ], - [ - "fer", - "s" - ], - [ - "fe", - "rs" - ], - [ - "f", - "ers" - ], - [ - "▁bur", - "ning" - ], - [ - "▁burn", - "ing" - ], - [ - "fas", - "st" - ], - [ - "fass", - "t" - ], - [ - "inst", - "alled" - ], - [ - "install", - "ed" - ], - [ - "▁G", - "ive" - ], - [ - "▁Gi", - "ve" - ], - [ - "▁col", - "onial" - ], - [ - "▁colon", - "ial" - ], - [ - "▁", - "€" - ], - [ - "▁R", - "ö" - ], - [ - "▁ch", - "rist" - ], - [ - "▁chr", - "ist" - ], - [ - "ne", - "hm" - ], - [ - "neh", - "m" - ], - [ - "та", - "м" - ], - [ - "▁cor", - "po" - ], - [ - "▁con", - "virti" - ], - [ - "yt", - "er" - ], - [ - "y", - "ter" - ], - [ - "S", - "ym" - ], - [ - "▁Gree", - "ce" - ], - [ - "▁m", - "oth" - ], - [ - "▁mo", - "th" - ], - [ - "▁mot", - "h" - ], - [ - "▁Joh", - "an" - ], - [ - "▁Jo", - "han" - ], - [ - "▁mon", - "arch" - ], - [ - "▁Down", - "load" - ], - [ - "▁", - "Download" - ], - [ - "▁c", - "raft" - ], - [ - "▁cr", - "aft" - ], - [ - "▁cra", - "ft" - ], - [ - "▁", - "craft" - ], - [ - "u", - "ž" - ], - [ - "▁Lu", - "ke" - ], - [ - "▁suf", - "fix" - ], - [ - "▁suff", - "ix" - ], - [ - "\\", - "/" - ], - [ - "Ha", - "ve" - ], - [ - "H", - "ave" - ], - [ - "▁ка", - "рь" - ], - [ - "▁кар", - "ь" - ], - [ - "▁comfort", - "able" - ], - [ - "▁t", - "ips" - ], - [ - "▁tip", - "s" - ], - [ - "▁ti", - "ps" - ], - [ - "▁П", - "ісля" - ], - [ - "▁бро", - "ја" - ], - [ - "▁ин", - "форма" - ], - [ - "M", - "Q" - ], - [ - "бра", - "н" - ], - [ - "б", - "ран" - ], - [ - "▁t", - "x" - ], - [ - "▁", - "tx" - ], - [ - "▁sl", - "aves" - ], - [ - "▁sla", - "ves" - ], - [ - "▁slave", - "s" - ], - [ - "▁fire", - "wall" - ], - [ - "▁For", - "ces" - ], - [ - "▁Force", - "s" - ], - [ - "at", - "if" - ], - [ - "ati", - "f" - ], - [ - "▁Qu", - "ellen" - ], - [ - "▁thé", - "âtre" - ], - [ - "ль", - "ных" - ], - [ - "▁располо", - "жен" - ], - [ - "▁Det", - "ails" - ], - [ - "▁", - "Details" - ], - [ - "k", - "ą" - ], - [ - "▁long", - "itud" - ], - [ - "IN", - "ST" - ], - [ - "▁n", - "aval" - ], - [ - "▁na", - "val" - ], - [ - "▁nav", - "al" - ], - [ - "Fern", - "seh" - ], - [ - "es", - "sel" - ], - [ - "ess", - "el" - ], - [ - "esse", - "l" - ], - [ - "Gr", - "ad" - ], - [ - "G", - "rad" - ], - [ - "▁be", - "lang" - ], - [ - "▁bel", - "ang" - ], - [ - "▁a", - "ggi" - ], - [ - "▁ag", - "gi" - ], - [ - "▁", - "aggi" - ], - [ - "Zygote", - "Init" - ], - [ - "ł", - "ów" - ], - [ - "▁S", - "ug" - ], - [ - "▁Su", - "g" - ], - [ - "si", - "l" - ], - [ - "s", - "il" - ], - [ - "▁ex", - "terior" - ], - [ - "щ", - "і" - ], - [ - "OR", - "D" - ], - [ - "en", - "ser" - ], - [ - "ens", - "er" - ], - [ - "ense", - "r" - ], - [ - "▁rapid", - "e" - ], - [ - "▁rap", - "ide" - ], - [ - "▁тем", - "пера" - ], - [ - "in", - "cie" - ], - [ - "inci", - "e" - ], - [ - "inc", - "ie" - ], - [ - "S", - "i" - ], - [ - "av", - "am" - ], - [ - "ava", - "m" - ], - [ - "ar", - "ded" - ], - [ - "ard", - "ed" - ], - [ - "arde", - "d" - ], - [ - "▁Ad", - "ded" - ], - [ - "▁Add", - "ed" - ], - [ - "End", - "point" - ], - [ - "hard", - "t" - ], - [ - "har", - "dt" - ], - [ - "ст", - "ран" - ], - [ - "стра", - "н" - ], - [ - "стр", - "ан" - ], - [ - "▁est", - "ilo" - ], - [ - "▁H", - "az" - ], - [ - "▁Ha", - "z" - ], - [ - "▁mus", - "ste" - ], - [ - "▁muss", - "te" - ], - [ - "u", - "o" - ], - [ - "ii", - "i" - ], - [ - "i", - "ii" - ], - [ - "▁ř", - "í" - ], - [ - "▁", - "ří" - ], - [ - "an", - "zen" - ], - [ - "anz", - "en" - ], - [ - "anze", - "n" - ], - [ - "же", - "ний" - ], - [ - "ah", - "a" - ], - [ - "a", - "ha" - ], - [ - "ARN", - "ING" - ], - [ - "▁re", - "nov" - ], - [ - "▁ren", - "ov" - ], - [ - "▁div", - "ine" - ], - [ - "▁convin", - "ced" - ], - [ - "▁hum", - "ans" - ], - [ - "▁human", - "s" - ], - [ - "▁hu", - "mans" - ], - [ - "▁depart", - "ure" - ], - [ - "▁Med", - "iter" - ], - [ - "▁Medi", - "ter" - ], - [ - "q", - "a" - ], - [ - "▁poss", - "essed" - ], - [ - "▁possess", - "ed" - ], - [ - "▁цер", - "кви" - ], - [ - "gi", - "v" - ], - [ - "g", - "iv" - ], - [ - "▁сво", - "ї" - ], - [ - "▁Ort", - "ste" - ], - [ - "▁Orts", - "te" - ], - [ - "R", - "ich" - ], - [ - "pu", - "is" - ], - [ - "p", - "uis" - ], - [ - "in", - "crement" - ], - [ - "▁Hann", - "over" - ], - [ - "▁u", - "cz" - ], - [ - "Do", - "ne" - ], - [ - "Don", - "e" - ], - [ - "D", - "one" - ], - [ - "▁alg", - "uns" - ], - [ - "FI", - "X" - ], - [ - "F", - "IX" - ], - [ - "▁Her", - "itage" - ], - [ - "remove", - "Class" - ], - [ - "фе", - "р" - ], - [ - "ф", - "ер" - ], - [ - "▁a", - "bc" - ], - [ - "▁ab", - "c" - ], - [ - "▁", - "abc" - ], - [ - "D", - "r" - ], - [ - "▁се", - "мей" - ], - [ - "▁сем", - "ей" - ], - [ - "{", - ":" - ], - [ - "▁se", - "ule" - ], - [ - "▁seu", - "le" - ], - [ - "▁seul", - "e" - ], - [ - "zeich", - "nungen" - ], - [ - "zeichnung", - "en" - ], - [ - "ad", - "dy" - ], - [ - "add", - "y" - ], - [ - "▁Par", - "ís" - ], - [ - "üss", - "eld" - ], - [ - "▁re", - "ception" - ], - [ - "▁rece", - "ption" - ], - [ - "fo", - "lio" - ], - [ - "fol", - "io" - ], - [ - "ti", - "ny" - ], - [ - "t", - "iny" - ], - [ - "▁recens", - "ement" - ], - [ - "▁N", - "ur" - ], - [ - "▁Nu", - "r" - ], - [ - "▁k", - "ier" - ], - [ - "▁ki", - "er" - ], - [ - "▁g", - "mina" - ], - [ - "▁gmin", - "a" - ], - [ - "sta", - "at" - ], - [ - "ánd", - "ose" - ], - [ - "че", - "ская" - ], - [ - "▁spe", - "aker" - ], - [ - "▁speak", - "er" - ], - [ - "▁expon", - "ential" - ], - [ - "▁exponent", - "ial" - ], - [ - "▁D", - "ieu" - ], - [ - "▁Die", - "u" - ], - [ - "▁Di", - "eu" - ], - [ - "▁при", - "з" - ], - [ - "▁пр", - "из" - ], - [ - "▁Raf", - "ael" - ], - [ - "▁gg", - "plot" - ], - [ - "▁Tem", - "plate" - ], - [ - "▁Temp", - "late" - ], - [ - "▁", - "Template" - ], - [ - "ou", - "re" - ], - [ - "our", - "e" - ], - [ - "o", - "ure" - ], - [ - "▁In", - "ner" - ], - [ - "▁Inn", - "er" - ], - [ - "▁", - "Inner" - ], - [ - "og", - "ne" - ], - [ - "ogn", - "e" - ], - [ - "ig", - "are" - ], - [ - "iga", - "re" - ], - [ - "▁Ar", - "te" - ], - [ - "▁Art", - "e" - ], - [ - "▁C", - "ov" - ], - [ - "▁Co", - "v" - ], - [ - "▁auf", - "grund" - ], - [ - "▁Б", - "ы" - ], - [ - "▁cerem", - "ony" - ], - [ - "▁S", - "part" - ], - [ - "▁Sp", - "art" - ], - [ - "ject", - "ive" - ], - [ - "y", - "i" - ], - [ - "▁in", - "izi" - ], - [ - "▁l", - "atin" - ], - [ - "▁lat", - "in" - ], - [ - "▁Never", - "theless" - ], - [ - "▁D", - "one" - ], - [ - "▁Do", - "ne" - ], - [ - "▁Don", - "e" - ], - [ - "▁", - "Done" - ], - [ - "т", - "ря" - ], - [ - "▁A", - "rr" - ], - [ - "▁Ar", - "r" - ], - [ - "▁", - "Arr" - ], - [ - "se", - "ason" - ], - [ - "▁скла", - "ду" - ], - [ - "▁pod", - "czas" - ], - [ - "▁Beaut", - "iful" - ], - [ - "▁Weltkrie", - "g" - ], - [ - "▁з", - "о" - ], - [ - "▁", - "зо" - ], - [ - "▁over", - "come" - ], - [ - "▁Pr", - "aha" - ], - [ - "▁Pra", - "ha" - ], - [ - "▁рай", - "ону" - ], - [ - "▁райо", - "ну" - ], - [ - "▁район", - "у" - ], - [ - "▁sub", - "scription" - ], - [ - "▁subs", - "cription" - ], - [ - "▁subscri", - "ption" - ], - [ - "ig", - "ent" - ], - [ - "igen", - "t" - ], - [ - "ige", - "nt" - ], - [ - "i", - "gent" - ], - [ - "▁по", - "ка" - ], - [ - "la", - "tex" - ], - [ - "lat", - "ex" - ], - [ - "late", - "x" - ], - [ - "▁b", - "each" - ], - [ - "▁be", - "ach" - ], - [ - "▁ро", - "ках" - ], - [ - "ge", - "g" - ], - [ - "g", - "eg" - ], - [ - "▁pro", - "bl" - ], - [ - "▁prob", - "l" - ], - [ - "arg", - "uments" - ], - [ - "argument", - "s" - ], - [ - "▁organ", - "izations" - ], - [ - "▁organiz", - "ations" - ], - [ - "▁organization", - "s" - ], - [ - "▁N", - "an" - ], - [ - "▁Na", - "n" - ], - [ - "▁st", - "ones" - ], - [ - "▁sto", - "nes" - ], - [ - "▁stone", - "s" - ], - [ - "▁H", - "unter" - ], - [ - "▁Hun", - "ter" - ], - [ - "▁regular", - "ly" - ], - [ - "шо", - "го" - ], - [ - "ш", - "ого" - ], - [ - "▁flex", - "ible" - ], - [ - "op", - "ts" - ], - [ - "opt", - "s" - ], - [ - "o", - "pts" - ], - [ - "á", - "ř" - ], - [ - "wi", - "tz" - ], - [ - "w", - "itz" - ], - [ - "▁'", - ")" - ], - [ - "▁", - "')" - ], - [ - "PA", - "SS" - ], - [ - "P", - "ASS" - ], - [ - "▁k", - "raj" - ], - [ - "▁kr", - "aj" - ], - [ - "▁kra", - "j" - ], - [ - "▁f", - "ake" - ], - [ - "▁fa", - "ke" - ], - [ - "he", - "its" - ], - [ - "heit", - "s" - ], - [ - "os", - "ph" - ], - [ - "osp", - "h" - ], - [ - "parse", - "Int" - ], - [ - "F", - "ALSE" - ], - [ - "▁prof", - "ess" - ], - [ - "▁profes", - "s" - ], - [ - "pe", - "ople" - ], - [ - "▁pre", - "cip" - ], - [ - "▁prec", - "ip" - ], - [ - "dir", - "name" - ], - [ - "▁per", - "pet" - ], - [ - "▁Up", - "dated" - ], - [ - "▁Update", - "d" - ], - [ - "▁", - "Updated" - ], - [ - "ra", - "yed" - ], - [ - "ray", - "ed" - ], - [ - "▁prov", - "oc" - ], - [ - "▁тра", - "вня" - ], - [ - "▁трав", - "ня" - ], - [ - "▁categ", - "orie" - ], - [ - "▁categor", - "ie" - ], - [ - "▁те", - "о" - ], - [ - "с", - "ну" - ], - [ - "ot", - "r" - ], - [ - "o", - "tr" - ], - [ - "▁Вер", - "хов" - ], - [ - "▁comp", - "ét" - ], - [ - "Co", - "st" - ], - [ - "C", - "ost" - ], - [ - "▁w", - "ider" - ], - [ - "▁wide", - "r" - ], - [ - "▁wid", - "er" - ], - [ - "▁Ob", - "viously" - ], - [ - "пи", - "сан" - ], - [ - "писа", - "н" - ], - [ - "пис", - "ан" - ], - [ - "▁на", - "стоя" - ], - [ - "▁see", - "king" - ], - [ - "▁seek", - "ing" - ], - [ - "()", - ")," - ], - [ - "())", - "," - ], - [ - "(", - "))," - ], - [ - "▁é", - "quipe" - ], - [ - "▁équip", - "e" - ], - [ - "▁", - "équipe" - ], - [ - "▁comm", - "its" - ], - [ - "▁commit", - "s" - ], - [ - "▁S", - "vens" - ], - [ - "▁Sv", - "ens" - ], - [ - "я", - "бре" - ], - [ - "at", - "ern" - ], - [ - "ate", - "rn" - ], - [ - "ater", - "n" - ], - [ - "a", - "tern" - ], - [ - "▁h", - "eter" - ], - [ - "▁he", - "ter" - ], - [ - "▁het", - "er" - ], - [ - "▁Boot", - "strap" - ], - [ - "én", - "é" - ], - [ - "é", - "né" - ], - [ - "▁deriv", - "atives" - ], - [ - "▁derivative", - "s" - ], - [ - "▁Det", - "roit" - ], - [ - "▁provin", - "cial" - ], - [ - "▁provincia", - "l" - ], - [ - "onom", - "ie" - ], - [ - "E", - "B" - ], - [ - "▁c", - "uer" - ], - [ - "▁cu", - "er" - ], - [ - "▁от", - "носи" - ], - [ - "▁отно", - "си" - ], - [ - "▁не", - "й" - ], - [ - "▁н", - "ей" - ], - [ - "▁", - "ней" - ], - [ - ")", - "»." - ], - [ - "▁Ci", - "udad" - ], - [ - "IA", - "L" - ], - [ - "I", - "AL" - ], - [ - "zy", - "st" - ], - [ - "z", - "yst" - ], - [ - ")\"", - ")" - ], - [ - ")", - "\")" - ], - [ - "▁Al", - "c" - ], - [ - "bl", - "ogs" - ], - [ - "blog", - "s" - ], - [ - "blo", - "gs" - ], - [ - "b", - "logs" - ], - [ - "▁par", - "mi" - ], - [ - "▁Album", - "s" - ], - [ - "▁Alb", - "ums" - ], - [ - "▁Bo", - "liv" - ], - [ - "▁Bol", - "iv" - ], - [ - "▁c", - "lés" - ], - [ - "▁cl", - "és" - ], - [ - "Product", - "s" - ], - [ - "uer", - "do" - ], - [ - "▁ge", - "lang" - ], - [ - "▁gel", - "ang" - ], - [ - "zn", - "ik" - ], - [ - "z", - "nik" - ], - [ - "ha", - "gen" - ], - [ - "h", - "agen" - ], - [ - "an", - "onymous" - ], - [ - "▁sv", - "g" - ], - [ - "▁", - "svg" - ], - [ - "▁Cons", - "eil" - ], - [ - "▁Conse", - "il" - ], - [ - "▁A", - "ri" - ], - [ - "▁Ar", - "i" - ], - [ - "col", - "i" - ], - [ - "co", - "li" - ], - [ - "c", - "oli" - ], - [ - "▁c", - "zy" - ], - [ - "▁cz", - "y" - ], - [ - "▁", - "czy" - ], - [ - "▁C", - "V" - ], - [ - "▁", - "CV" - ], - [ - "▁f", - "ord" - ], - [ - "▁for", - "d" - ], - [ - "▁fo", - "rd" - ], - [ - "▁", - "ford" - ], - [ - "▁Au", - "ßer" - ], - [ - "▁Auß", - "er" - ], - [ - "▁C", - "I" - ], - [ - "▁", - "CI" - ], - [ - "▁t", - "empt" - ], - [ - "▁tem", - "pt" - ], - [ - "▁temp", - "t" - ], - [ - "▁Organ", - "isation" - ], - [ - "á", - "š" - ], - [ - "▁cy", - "cles" - ], - [ - "▁cycle", - "s" - ], - [ - "▁cycl", - "es" - ], - [ - "▁ges", - "lacht" - ], - [ - "▁лю", - "дей" - ], - [ - "ým", - "i" - ], - [ - "ý", - "mi" - ], - [ - "▁S", - "pieler" - ], - [ - "▁Spiel", - "er" - ], - [ - "ef", - "e" - ], - [ - "e", - "fe" - ], - [ - "▁Mar", - "vel" - ], - [ - "▁por", - "tal" - ], - [ - "▁port", - "al" - ], - [ - "▁porta", - "l" - ], - [ - "▁", - "portal" - ], - [ - "▁Сер", - "г" - ], - [ - "▁g", - "rado" - ], - [ - "▁gr", - "ado" - ], - [ - "▁gra", - "do" - ], - [ - "▁grad", - "o" - ], - [ - "▁hand", - "lers" - ], - [ - "▁handle", - "rs" - ], - [ - "▁handler", - "s" - ], - [ - "▁Inter", - "face" - ], - [ - "▁", - "Interface" - ], - [ - "AM", - "E" - ], - [ - "A", - "ME" - ], - [ - "▁ser", - "iously" - ], - [ - "▁serious", - "ly" - ], - [ - "▁B", - "inding" - ], - [ - "▁Bin", - "ding" - ], - [ - "▁Bind", - "ing" - ], - [ - "▁", - "Binding" - ], - [ - "▁R", - "ang" - ], - [ - "▁Ra", - "ng" - ], - [ - "▁Ran", - "g" - ], - [ - "▁n", - "ada" - ], - [ - "▁na", - "da" - ], - [ - "▁nad", - "a" - ], - [ - "oc", - "e" - ], - [ - "o", - "ce" - ], - [ - "▁inte", - "gra" - ], - [ - "▁integr", - "a" - ], - [ - "oc", - "racy" - ], - [ - "ocr", - "acy" - ], - [ - "▁аль", - "бо" - ], - [ - "▁st", - "ability" - ], - [ - "▁stabil", - "ity" - ], - [ - "Un", - "s" - ], - [ - "U", - "ns" - ], - [ - "▁v", - "eter" - ], - [ - "▁ve", - "ter" - ], - [ - "--", - "----+" - ], - [ - "----", - "--+" - ], - [ - "---", - "---+" - ], - [ - "------", - "+" - ], - [ - "-----", - "-+" - ], - [ - "▁se", - "rait" - ], - [ - "▁ser", - "ait" - ], - [ - "▁sera", - "it" - ], - [ - "▁om", - "itted" - ], - [ - "▁uncertain", - "ty" - ], - [ - "on", - "ian" - ], - [ - "oni", - "an" - ], - [ - "onia", - "n" - ], - [ - "▁re", - "sto" - ], - [ - "▁r", - "esto" - ], - [ - "▁res", - "to" - ], - [ - "▁rest", - "o" - ], - [ - "▁же", - "лез" - ], - [ - "▁од", - "ной" - ], - [ - "▁одно", - "й" - ], - [ - "▁Bevölker", - "ung" - ], - [ - "▁K", - "raft" - ], - [ - "▁Kr", - "aft" - ], - [ - "▁Kra", - "ft" - ], - [ - "ст", - "р" - ], - [ - "▁Mos", - "cow" - ], - [ - "la", - "ne" - ], - [ - "lan", - "e" - ], - [ - "l", - "ane" - ], - [ - "ar", - "ab" - ], - [ - "ara", - "b" - ], - [ - "a", - "rab" - ], - [ - "▁s", - "pole" - ], - [ - "▁sp", - "ole" - ], - [ - "▁spo", - "le" - ], - [ - "▁сво", - "его" - ], - [ - "?", - ":" - ], - [ - "ST", - "ART" - ], - [ - "▁ин", - "тер" - ], - [ - "▁инте", - "р" - ], - [ - "▁sym", - "pt" - ], - [ - "▁Loren", - "zo" - ], - [ - "▁ej", - "ec" - ], - [ - "▁pros", - "per" - ], - [ - "DA", - "T" - ], - [ - "D", - "AT" - ], - [ - "лимпи", - "й" - ], - [ - "▁sh", - "apes" - ], - [ - "▁shape", - "s" - ], - [ - "value", - "Of" - ], - [ - "▁associ", - "ate" - ], - [ - "▁Med", - "ien" - ], - [ - "▁Medi", - "en" - ], - [ - "EN", - "V" - ], - [ - "▁с", - "ре" - ], - [ - "▁држа", - "ве" - ], - [ - "▁the", - "ories" - ], - [ - "he", - "b" - ], - [ - "h", - "eb" - ], - [ - "▁Way", - "ne" - ], - [ - "▁String", - "Builder" - ], - [ - "iw", - "ers" - ], - [ - "i", - "wers" - ], - [ - "▁M", - "aps" - ], - [ - "▁Ma", - "ps" - ], - [ - "▁Map", - "s" - ], - [ - "Ph", - "ys" - ], - [ - "\\}", - "\\" - ], - [ - "\\", - "}\\" - ], - [ - "▁P", - "arte" - ], - [ - "▁Par", - "te" - ], - [ - "▁Part", - "e" - ], - [ - "▁Hud", - "son" - ], - [ - "ло", - "н" - ], - [ - "л", - "он" - ], - [ - "L", - "ng" - ], - [ - "▁р", - "ы" - ], - [ - "▁", - "ры" - ], - [ - "ст", - "ей" - ], - [ - "сте", - "й" - ], - [ - "с", - "тей" - ], - [ - "la", - "u" - ], - [ - "l", - "au" - ], - [ - "an", - "cer" - ], - [ - "ance", - "r" - ], - [ - "anc", - "er" - ], - [ - "▁Co", - "ppa" - ], - [ - "▁Cop", - "pa" - ], - [ - "▁вій", - "сь" - ], - [ - "▁u", - "cc" - ], - [ - "▁Pat", - "tern" - ], - [ - "▁", - "Pattern" - ], - [ - "▁gar", - "bage" - ], - [ - "▁Gon", - "zález" - ], - [ - "▁Encyc", - "lop" - ], - [ - "et", - "ten" - ], - [ - "ett", - "en" - ], - [ - "ette", - "n" - ], - [ - "Ex", - "ternal" - ], - [ - "Ext", - "ernal" - ], - [ - "RE", - "F" - ], - [ - "R", - "EF" - ], - [ - ">", - ";" - ], - [ - "lij", - "ke" - ], - [ - "lijk", - "e" - ], - [ - "▁inter", - "sect" - ], - [ - "▁Un", - "less" - ], - [ - "▁de", - "eper" - ], - [ - "▁deep", - "er" - ], - [ - "▁ж", - "і" - ], - [ - "▁", - "жі" - ], - [ - "de", - "nt" - ], - [ - "den", - "t" - ], - [ - "d", - "ent" - ], - [ - "le", - "f" - ], - [ - "l", - "ef" - ], - [ - "▁ch", - "anson" - ], - [ - "▁diff", - "us" - ], - [ - "▁pr", - "imi" - ], - [ - "▁prim", - "i" - ], - [ - "▁pri", - "mi" - ], - [ - "▁W", - "ieder" - ], - [ - "▁Wi", - "eder" - ], - [ - "▁Wie", - "der" - ], - [ - "▁a", - "ws" - ], - [ - "▁aw", - "s" - ], - [ - "▁", - "aws" - ], - [ - "ow", - "ana" - ], - [ - "owa", - "na" - ], - [ - "owan", - "a" - ], - [ - "▁so", - "ciale" - ], - [ - "▁social", - "e" - ], - [ - "▁soci", - "ale" - ], - [ - "▁soc", - "iale" - ], - [ - "ik", - "k" - ], - [ - "i", - "kk" - ], - [ - "ль", - "ной" - ], - [ - "льно", - "й" - ], - [ - "▁div", - "isions" - ], - [ - "▁division", - "s" - ], - [ - "▁divis", - "ions" - ], - [ - "ло", - "со" - ], - [ - "▁Cl", - "aud" - ], - [ - "▁Cla", - "ud" - ], - [ - "▁Y", - "a" - ], - [ - "▁v", - "oce" - ], - [ - "▁vo", - "ce" - ], - [ - "▁voc", - "e" - ], - [ - "▁B", - "ranch" - ], - [ - "▁Br", - "anch" - ], - [ - "▁Bran", - "ch" - ], - [ - "▁f", - "itted" - ], - [ - "▁fit", - "ted" - ], - [ - "or", - "r" - ], - [ - "o", - "rr" - ], - [ - "ôt", - "el" - ], - [ - "ô", - "tel" - ], - [ - "st", - "roke" - ], - [ - "str", - "oke" - ], - [ - "list", - "ener" - ], - [ - "listen", - "er" - ], - [ - "im", - "an" - ], - [ - "ima", - "n" - ], - [ - "i", - "man" - ], - [ - "во", - "сто" - ], - [ - "▁Sh", - "ah" - ], - [ - "Int", - "roduction" - ], - [ - "▁new", - "line" - ], - [ - "▁t", - "ile" - ], - [ - "▁til", - "e" - ], - [ - "▁ti", - "le" - ], - [ - "']", - "))" - ], - [ - "'])", - ")" - ], - [ - "'", - "]))" - ], - [ - "▁trav", - "aux" - ], - [ - "▁trava", - "ux" - ], - [ - "CON", - "FIG" - ], - [ - "▁quadr", - "atic" - ], - [ - "on", - "neur" - ], - [ - "onn", - "eur" - ], - [ - "onne", - "ur" - ], - [ - "▁Gi", - "org" - ], - [ - "▁ident", - "ific" - ], - [ - "éric", - "aine" - ], - [ - "érica", - "ine" - ], - [ - "▁UI", - "View" - ], - [ - "▁", - "UIView" - ], - [ - "▁Lib", - "eral" - ], - [ - "▁Liber", - "al" - ], - [ - "▁K", - "och" - ], - [ - "▁Ko", - "ch" - ], - [ - "▁Berlin", - "er" - ], - [ - "▁Berl", - "iner" - ], - [ - "▁not", - "ifications" - ], - [ - "▁notification", - "s" - ], - [ - "▁Su", - "san" - ], - [ - "▁Sus", - "an" - ], - [ - "▁c", - "adre" - ], - [ - "▁cad", - "re" - ], - [ - "▁K", - "loster" - ], - [ - "▁Kl", - "oster" - ], - [ - "▁exam", - "ine" - ], - [ - "▁е", - "дин" - ], - [ - "▁еди", - "н" - ], - [ - "▁UN", - "ION" - ], - [ - "▁al", - "ten" - ], - [ - "▁alt", - "en" - ], - [ - "▁alte", - "n" - ], - [ - "▁f", - "init" - ], - [ - "▁fin", - "it" - ], - [ - "▁fi", - "nit" - ], - [ - "▁pe", - "dig" - ], - [ - "▁ped", - "ig" - ], - [ - "cy", - "k" - ], - [ - "c", - "yk" - ], - [ - "▁mouv", - "ement" - ], - [ - "▁mou", - "vement" - ], - [ - "IO", - "S" - ], - [ - "I", - "OS" - ], - [ - "▁бри", - "тан" - ], - [ - "▁b", - "out" - ], - [ - "▁bo", - "ut" - ], - [ - "▁bou", - "t" - ], - [ - "▁ав", - "тор" - ], - [ - "▁авто", - "р" - ], - [ - "ниц", - "тво" - ], - [ - "ет", - "о" - ], - [ - "е", - "то" - ], - [ - "le", - "ra" - ], - [ - "ler", - "a" - ], - [ - "l", - "era" - ], - [ - "cl", - "s" - ], - [ - "c", - "ls" - ], - [ - "▁L", - "ey" - ], - [ - "▁Le", - "y" - ], - [ - "am", - "y" - ], - [ - "a", - "my" - ], - [ - "ag", - "ens" - ], - [ - "age", - "ns" - ], - [ - "agen", - "s" - ], - [ - "a", - "gens" - ], - [ - "as", - "hed" - ], - [ - "ash", - "ed" - ], - [ - "▁ok", - "rę" - ], - [ - "г", - "ро" - ], - [ - "el", - "lett" - ], - [ - "ell", - "ett" - ], - [ - "elle", - "tt" - ], - [ - "▁F", - "ellow" - ], - [ - "▁Fel", - "low" - ], - [ - "▁manif", - "old" - ], - [ - "$)", - "," - ], - [ - "$", - ")," - ], - [ - "ld", - "er" - ], - [ - "l", - "der" - ], - [ - "▁v", - "oz" - ], - [ - "▁vo", - "z" - ], - [ - "▁be", - "gg" - ], - [ - "▁beg", - "g" - ], - [ - "▁b", - "aron" - ], - [ - "▁bar", - "on" - ], - [ - "▁ba", - "ron" - ], - [ - "▁f", - "id" - ], - [ - "▁fi", - "d" - ], - [ - "▁f", - "iring" - ], - [ - "▁fi", - "ring" - ], - [ - "▁fir", - "ing" - ], - [ - "il", - "da" - ], - [ - "ild", - "a" - ], - [ - "de", - "k" - ], - [ - "d", - "ek" - ], - [ - "A", - "U" - ], - [ - "it", - "are" - ], - [ - "ita", - "re" - ], - [ - "itar", - "e" - ], - [ - "▁A", - "ra" - ], - [ - "▁Ar", - "a" - ], - [ - "▁Ex", - "it" - ], - [ - "▁", - "Exit" - ], - [ - "▁cin", - "emat" - ], - [ - "▁cinema", - "t" - ], - [ - "▁int", - "ros" - ], - [ - "▁intr", - "os" - ], - [ - "▁intro", - "s" - ], - [ - "▁contact", - "s" - ], - [ - "пе", - "ни" - ], - [ - "пен", - "и" - ], - [ - "▁m", - "öglich" - ], - [ - "▁Singap", - "ore" - ], - [ - "str", - "öm" - ], - [ - "▁H", - "ern" - ], - [ - "▁He", - "rn" - ], - [ - "▁Her", - "n" - ], - [ - "▁six", - "th" - ], - [ - "▁public", - "ations" - ], - [ - "▁pub", - "lications" - ], - [ - "▁publication", - "s" - ], - [ - "vi", - "e" - ], - [ - "v", - "ie" - ], - [ - "▁H", - "at" - ], - [ - "▁Ha", - "t" - ], - [ - "▁accept", - "ing" - ], - [ - "á", - "c" - ], - [ - "st", - "wo" - ], - [ - "s", - "two" - ], - [ - "▁quiet", - "ly" - ], - [ - "Ph", - "oto" - ], - [ - "▁b", - "asket" - ], - [ - "▁bas", - "ket" - ], - [ - "▁eigen", - "values" - ], - [ - "▁mé", - "dec" - ], - [ - "▁méd", - "ec" - ], - [ - "▁O", - "limp" - ], - [ - "▁Ol", - "imp" - ], - [ - "▁цер", - "ков" - ], - [ - "al", - "in" - ], - [ - "ali", - "n" - ], - [ - "a", - "lin" - ], - [ - "con", - "sum" - ], - [ - "cons", - "um" - ], - [ - "▁l", - "assen" - ], - [ - "▁las", - "sen" - ], - [ - "▁", - "lassen" - ], - [ - "▁ан", - "ти" - ], - [ - "▁S", - "eq" - ], - [ - "▁Se", - "q" - ], - [ - "▁", - "Seq" - ], - [ - "\";", - "\r" - ], - [ - "\"", - ";\r" - ], - [ - "ra", - "re" - ], - [ - "rar", - "e" - ], - [ - "r", - "are" - ], - [ - "▁$", - "|\\" - ], - [ - "▁$|", - "\\" - ], - [ - "▁n", - "ick" - ], - [ - "▁ni", - "ck" - ], - [ - "▁nic", - "k" - ], - [ - "▁", - "nick" - ], - [ - "df", - "lare" - ], - [ - "V", - "ec" - ], - [ - "bind", - "ung" - ], - [ - "▁b", - "g" - ], - [ - "▁", - "bg" - ], - [ - "ch", - "anges" - ], - [ - "change", - "s" - ], - [ - "chan", - "ges" - ], - [ - "Day", - "s" - ], - [ - "Da", - "ys" - ], - [ - "D", - "ays" - ], - [ - "▁M", - "ouse" - ], - [ - "▁Mo", - "use" - ], - [ - "▁Mou", - "se" - ], - [ - "▁", - "Mouse" - ], - [ - "▁wait", - "ed" - ], - [ - "▁wa", - "ited" - ], - [ - "▁Tom", - "atoes" - ], - [ - "▁f", - "as" - ], - [ - "▁fa", - "s" - ], - [ - "▁", - "fas" - ], - [ - "ver", - "te" - ], - [ - "vert", - "e" - ], - [ - "v", - "erte" - ], - [ - "▁success", - "ion" - ], - [ - "▁succ", - "ession" - ], - [ - "со", - "р" - ], - [ - "с", - "ор" - ], - [ - "▁s", - "ols" - ], - [ - "▁so", - "ls" - ], - [ - "▁sol", - "s" - ], - [ - "▁R", - "ender" - ], - [ - "▁Re", - "nder" - ], - [ - "▁Ren", - "der" - ], - [ - "▁", - "Render" - ], - [ - "▁lead", - "ership" - ], - [ - "▁leader", - "ship" - ], - [ - "▁leaders", - "hip" - ], - [ - "▁signific", - "ance" - ], - [ - "▁ga", - "uche" - ], - [ - "▁gau", - "che" - ], - [ - "ca", - "no" - ], - [ - "can", - "o" - ], - [ - "c", - "ano" - ], - [ - "▁P", - "ie" - ], - [ - "▁Pi", - "e" - ], - [ - "enso", - "ort" - ], - [ - "▁cam", - "bio" - ], - [ - "▁camb", - "io" - ], - [ - "▁у", - "з" - ], - [ - "▁ende", - "av" - ], - [ - "Comp", - "leted" - ], - [ - "Comple", - "ted" - ], - [ - "Complete", - "d" - ], - [ - "▁Архив", - "ная" - ], - [ - "j", - "d" - ], - [ - "ór", - "ico" - ], - [ - "ó", - "rico" - ], - [ - "▁church", - "es" - ], - [ - "▁an", - "imate" - ], - [ - "▁anim", - "ate" - ], - [ - "▁ani", - "mate" - ], - [ - "▁", - "animate" - ], - [ - "S", - "G" - ], - [ - "comp", - "ute" - ], - [ - "comput", - "e" - ], - [ - "▁uniform", - "ly" - ], - [ - "IN", - "IT" - ], - [ - "ll", - "es" - ], - [ - "lle", - "s" - ], - [ - "l", - "les" - ], - [ - "Http", - "Request" - ], - [ - "К", - "о" - ], - [ - "Di", - "ff" - ], - [ - "D", - "iff" - ], - [ - "▁s", - "ah" - ], - [ - "▁sa", - "h" - ], - [ - "air", - "o" - ], - [ - "ai", - "ro" - ], - [ - "a", - "iro" - ], - [ - "may", - "be" - ], - [ - "UT", - "E" - ], - [ - "U", - "TE" - ], - [ - "▁D", - "ow" - ], - [ - "▁Do", - "w" - ], - [ - "hu", - "man" - ], - [ - "hum", - "an" - ], - [ - "h", - "uman" - ], - [ - "▁au", - "rait" - ], - [ - "▁aur", - "ait" - ], - [ - "dar", - "k" - ], - [ - "d", - "ark" - ], - [ - "▁re", - "pair" - ], - [ - "▁rep", - "air" - ], - [ - "▁n", - "er" - ], - [ - "▁ne", - "r" - ], - [ - "▁", - "ner" - ], - [ - "▁D", - "abei" - ], - [ - "▁Da", - "bei" - ], - [ - "▁Bo", - "tan" - ], - [ - "▁Bot", - "an" - ], - [ - "Or", - "iginal" - ], - [ - "Origin", - "al" - ], - [ - "az", - "ă" - ], - [ - "▁N", - "AT" - ], - [ - "▁NA", - "T" - ], - [ - "im", - "per" - ], - [ - "imp", - "er" - ], - [ - "▁Y", - "outh" - ], - [ - "▁You", - "th" - ], - [ - "th", - "es" - ], - [ - "the", - "s" - ], - [ - "t", - "hes" - ], - [ - "▁окру", - "га" - ], - [ - "▁F", - "lo" - ], - [ - "▁Fl", - "o" - ], - [ - "▁break", - "fast" - ], - [ - "ur", - "ls" - ], - [ - "url", - "s" - ], - [ - "▁über", - "nahm" - ], - [ - "ár", - "ios" - ], - [ - "ário", - "s" - ], - [ - "á", - "rios" - ], - [ - "▁O", - "range" - ], - [ - "▁Or", - "ange" - ], - [ - "▁Aff", - "airs" - ], - [ - "sk", - "e" - ], - [ - "s", - "ke" - ], - [ - "▁not", - "ify" - ], - [ - "▁", - "notify" - ], - [ - "imo", - "ine" - ], - [ - "▁Ar", - "ena" - ], - [ - "▁Are", - "na" - ], - [ - "▁lib", - "eral" - ], - [ - "▁liber", - "al" - ], - [ - "▁o", - "bec" - ], - [ - "▁ob", - "ec" - ], - [ - "if", - "a" - ], - [ - "i", - "fa" - ], - [ - "gu", - "ez" - ], - [ - "gue", - "z" - ], - [ - "g", - "uez" - ], - [ - "ion", - "o" - ], - [ - "io", - "no" - ], - [ - "i", - "ono" - ], - [ - "пера", - "тор" - ], - [ - "▁ret", - "ained" - ], - [ - "▁retain", - "ed" - ], - [ - "fa", - "iled" - ], - [ - "fail", - "ed" - ], - [ - "bin", - "e" - ], - [ - "bi", - "ne" - ], - [ - "b", - "ine" - ], - [ - "т", - "ных" - ], - [ - "▁CG", - "Rect" - ], - [ - "cam", - "era" - ], - [ - "ide", - "note" - ], - [ - "iden", - "ote" - ], - [ - "K", - "B" - ], - [ - "▁l", - "ights" - ], - [ - "▁light", - "s" - ], - [ - "▁P", - "ictures" - ], - [ - "▁Picture", - "s" - ], - [ - "▁Squad", - "ron" - ], - [ - "▁V", - "olk" - ], - [ - "▁Vol", - "k" - ], - [ - "▁b", - "urg" - ], - [ - "▁bu", - "rg" - ], - [ - "▁bur", - "g" - ], - [ - "▁", - "burg" - ], - [ - ",", - "]" - ], - [ - "G", - "i" - ], - [ - "ê", - "que" - ], - [ - "make", - "Text" - ], - [ - "▁every", - "body" - ], - [ - "▁Hy", - "per" - ], - [ - "▁Hyp", - "er" - ], - [ - "▁De", - "ux" - ], - [ - "▁gl", - "ory" - ], - [ - "▁glo", - "ry" - ], - [ - "pres", - "entation" - ], - [ - "present", - "ation" - ], - [ - "on", - "ica" - ], - [ - "oni", - "ca" - ], - [ - "onic", - "a" - ], - [ - "o", - "nica" - ], - [ - "▁fr", - "ère" - ], - [ - "ag", - "et" - ], - [ - "age", - "t" - ], - [ - "a", - "get" - ], - [ - "▁h", - "ints" - ], - [ - "▁hint", - "s" - ], - [ - "▁hin", - "ts" - ], - [ - "▁t", - "unnel" - ], - [ - "▁tun", - "nel" - ], - [ - "▁E", - "j" - ], - [ - "ál", - "is" - ], - [ - "á", - "lis" - ], - [ - "▁V", - "iv" - ], - [ - "▁Vi", - "v" - ], - [ - "ствен", - "ных" - ], - [ - "▁c", - "aps" - ], - [ - "▁cap", - "s" - ], - [ - "▁ca", - "ps" - ], - [ - "PA", - "RT" - ], - [ - "PAR", - "T" - ], - [ - "P", - "ART" - ], - [ - "oc", - "i" - ], - [ - "o", - "ci" - ], - [ - "▁p", - "rices" - ], - [ - "▁pr", - "ices" - ], - [ - "▁pri", - "ces" - ], - [ - "▁price", - "s" - ], - [ - "curr", - "ency" - ], - [ - "c", - "urrency" - ], - [ - "▁a", - "chter" - ], - [ - "▁ach", - "ter" - ], - [ - "▁acht", - "er" - ], - [ - "rom", - "agnet" - ], - [ - "ge", - "nder" - ], - [ - "gen", - "der" - ], - [ - "gende", - "r" - ], - [ - "g", - "ender" - ], - [ - "▁s", - "uis" - ], - [ - "▁su", - "is" - ], - [ - "vers", - "ions" - ], - [ - "version", - "s" - ], - [ - "▁Tr", - "aining" - ], - [ - "▁Tra", - "ining" - ], - [ - "▁Train", - "ing" - ], - [ - "in", - "side" - ], - [ - "ins", - "ide" - ], - [ - "eg", - "e" - ], - [ - "e", - "ge" - ], - [ - "▁tot", - "ale" - ], - [ - "▁total", - "e" - ], - [ - "▁D", - "aar" - ], - [ - "▁Da", - "ar" - ], - [ - "▁grud", - "nia" - ], - [ - "▁I", - "er" - ], - [ - "▁occasion", - "s" - ], - [ - "▁occas", - "ions" - ], - [ - "▁k", - "de" - ], - [ - "▁tensor", - "flow" - ], - [ - "▁", - "tensorflow" - ], - [ - "▁ó", - "r" - ], - [ - "▁", - "ór" - ], - [ - "Method", - "s" - ], - [ - "▁loop", - "ing" - ], - [ - "▁direct", - "eur" - ], - [ - "k", - "ę" - ], - [ - "▁is", - "omorphism" - ], - [ - "▁Jo", - "ão" - ], - [ - "▁al", - "igned" - ], - [ - "▁align", - "ed" - ], - [ - "▁", - "aligned" - ], - [ - "он", - "ов" - ], - [ - "о", - "нов" - ], - [ - "ur", - "ger" - ], - [ - "urg", - "er" - ], - [ - "▁n", - "ova" - ], - [ - "▁no", - "va" - ], - [ - "▁nov", - "a" - ], - [ - "mor", - "row" - ], - [ - "m", - "orrow" - ], - [ - "al", - "tern" - ], - [ - "alt", - "ern" - ], - [ - "alter", - "n" - ], - [ - "H", - "D" - ], - [ - "▁m", - "arqu" - ], - [ - "▁mar", - "qu" - ], - [ - "at", - "ivas" - ], - [ - "ativ", - "as" - ], - [ - "ati", - "vas" - ], - [ - "ativa", - "s" - ], - [ - "gg", - "reg" - ], - [ - "g", - "greg" - ], - [ - "▁anci", - "en" - ], - [ - "▁anc", - "ien" - ], - [ - "ni", - "t" - ], - [ - "n", - "it" - ], - [ - "▁sec", - "ured" - ], - [ - "▁secure", - "d" - ], - [ - "mi", - "er" - ], - [ - "m", - "ier" - ], - [ - "▁O", - "le" - ], - [ - "▁Ol", - "e" - ], - [ - "▁ин", - "те" - ], - [ - "▁m", - "inus" - ], - [ - "▁min", - "us" - ], - [ - "▁", - "minus" - ], - [ - "▁clear", - "er" - ], - [ - "▁n", - "ello" - ], - [ - "▁nel", - "lo" - ], - [ - "▁nell", - "o" - ], - [ - "▁információ", - "k" - ], - [ - "▁pro", - "pre" - ], - [ - "▁prop", - "re" - ], - [ - "{", - "." - ], - [ - "il", - "og" - ], - [ - "ilo", - "g" - ], - [ - "i", - "log" - ], - [ - "▁Qu", - "ick" - ], - [ - "▁acc", - "us" - ], - [ - "▁ac", - "cus" - ], - [ - "emp", - "loyee" - ], - [ - "▁з", - "у" - ], - [ - "▁", - "зу" - ], - [ - "ць", - "кий" - ], - [ - "фі", - "цій" - ], - [ - "▁пу", - "бли" - ], - [ - "▁", - "публи" - ], - [ - "▁b", - "ent" - ], - [ - "▁be", - "nt" - ], - [ - "▁ben", - "t" - ], - [ - "▁по", - "зво" - ], - [ - "▁П", - "ор" - ], - [ - "▁По", - "р" - ], - [ - "áz", - "í" - ], - [ - "án", - "ico" - ], - [ - "á", - "nico" - ], - [ - "empty", - "set" - ], - [ - "▁sur", - "tout" - ], - [ - "re", - "no" - ], - [ - "ren", - "o" - ], - [ - "r", - "eno" - ], - [ - "un", - "ya" - ], - [ - "▁у", - "ез" - ], - [ - "▁Mill", - "ionen" - ], - [ - "▁listop", - "ada" - ], - [ - "▁M", - "aine" - ], - [ - "▁Ma", - "ine" - ], - [ - "▁Main", - "e" - ], - [ - "▁Mai", - "ne" - ], - [ - "▁gru", - "pos" - ], - [ - "▁grupo", - "s" - ], - [ - "▁grup", - "os" - ], - [ - "▁St", - "orage" - ], - [ - "▁Sto", - "rage" - ], - [ - "▁", - "Storage" - ], - [ - "▁app", - "le" - ], - [ - "▁ap", - "ple" - ], - [ - "▁", - "apple" - ], - [ - "▁L", - "ö" - ], - [ - "ou", - "sed" - ], - [ - "ous", - "ed" - ], - [ - "ouse", - "d" - ], - [ - "o", - "used" - ], - [ - "д", - "ро" - ], - [ - "sc", - "i" - ], - [ - "s", - "ci" - ], - [ - "▁hi", - "bernate" - ], - [ - "▁", - "hibernate" - ], - [ - "do", - "g" - ], - [ - "d", - "og" - ], - [ - "▁во", - "сто" - ], - [ - "▁вос", - "то" - ], - [ - "▁", - "восто" - ], - [ - "▁intens", - "ity" - ], - [ - "leg", - "end" - ], - [ - "lege", - "nd" - ], - [ - "legen", - "d" - ], - [ - "▁W", - "ille" - ], - [ - "▁Will", - "e" - ], - [ - "▁Wil", - "le" - ], - [ - "▁Wi", - "lle" - ], - [ - "▁szer", - "int" - ], - [ - "ges", - "ellschaft" - ], - [ - "▁L", - "iving" - ], - [ - "▁Li", - "ving" - ], - [ - "▁Liv", - "ing" - ], - [ - "al", - "lo" - ], - [ - "all", - "o" - ], - [ - "▁S", - "plit" - ], - [ - "▁Sp", - "lit" - ], - [ - "▁", - "Split" - ], - [ - "dr", - "u" - ], - [ - "d", - "ru" - ], - [ - "ne", - "ed" - ], - [ - "n", - "eed" - ], - [ - "▁Дж", - "он" - ], - [ - "▁Sw", - "iss" - ], - [ - "▁sp", - "raw" - ], - [ - "▁spr", - "aw" - ], - [ - "▁be", - "ho" - ], - [ - "▁beh", - "o" - ], - [ - "▁fot", - "ograf" - ], - [ - "▁ren", - "contre" - ], - [ - "▁k", - "is" - ], - [ - "▁ki", - "s" - ], - [ - "▁sign", - "ing" - ], - [ - "▁sig", - "ning" - ], - [ - "ak", - "ult" - ], - [ - "aku", - "lt" - ], - [ - "▁index", - "ing" - ], - [ - "ap", - "or" - ], - [ - "a", - "por" - ], - [ - "▁con", - "ception" - ], - [ - "▁concept", - "ion" - ], - [ - "▁conce", - "ption" - ], - [ - "ag", - "greg" - ], - [ - "agg", - "reg" - ], - [ - "a", - "ggreg" - ], - [ - "▁Са", - "вез" - ], - [ - "▁aff", - "air" - ], - [ - "ě", - "ní" - ], - [ - "A", - "ugust" - ], - [ - "▁се", - "кре" - ], - [ - "▁miesz", - "kań" - ], - [ - "UI", - "Image" - ], - [ - "▁b", - "ishop" - ], - [ - "▁bi", - "shop" - ], - [ - "▁", - "bishop" - ], - [ - "▁serv", - "ants" - ], - [ - "▁servant", - "s" - ], - [ - "▁tr", - "ail" - ], - [ - "▁tra", - "il" - ], - [ - "di", - "git" - ], - [ - "dig", - "it" - ], - [ - "▁jo", - "ins" - ], - [ - "▁join", - "s" - ], - [ - "▁N", - "ear" - ], - [ - "▁Ne", - "ar" - ], - [ - "öff", - "entlich" - ], - [ - ">", - "{" - ], - [ - "▁sk", - "ład" - ], - [ - "ge", - "führt" - ], - [ - "gef", - "ührt" - ], - [ - "▁Hol", - "z" - ], - [ - "▁Milit", - "är" - ], - [ - "ach", - "i" - ], - [ - "ac", - "hi" - ], - [ - "a", - "chi" - ], - [ - "Up", - "per" - ], - [ - "U", - "pper" - ], - [ - "pi", - "ne" - ], - [ - "pin", - "e" - ], - [ - "p", - "ine" - ], - [ - "ut", - "zt" - ], - [ - "utz", - "t" - ], - [ - "▁nu", - "ova" - ], - [ - "ibr", - "ation" - ], - [ - "▁B", - "ien" - ], - [ - "▁Bi", - "en" - ], - [ - "▁пер", - "вый" - ], - [ - "▁первы", - "й" - ], - [ - "▁Cre", - "ating" - ], - [ - "On", - "ce" - ], - [ - "▁ein", - "mal" - ], - [ - "▁ge", - "ometric" - ], - [ - "▁geomet", - "ric" - ], - [ - "st", - "vo" - ], - [ - "▁k", - "W" - ], - [ - "▁decom", - "position" - ], - [ - "▁com", - "edy" - ], - [ - "▁come", - "dy" - ], - [ - "▁activ", - "ation" - ], - [ - "▁an", - "gry" - ], - [ - "▁ang", - "ry" - ], - [ - "ill", - "eurs" - ], - [ - "ille", - "urs" - ], - [ - "▁inst", - "antly" - ], - [ - "▁instant", - "ly" - ], - [ - "▁suggest", - "ing" - ], - [ - "▁C", - "lay" - ], - [ - "▁Cl", - "ay" - ], - [ - "▁Cla", - "y" - ], - [ - "co", - "t" - ], - [ - "c", - "ot" - ], - [ - "▁G", - "én" - ], - [ - "▁Gé", - "n" - ], - [ - "($", - "(" - ], - [ - "(", - "$(" - ], - [ - "un", - "wrap" - ], - [ - "▁lif", - "ted" - ], - [ - "▁lift", - "ed" - ], - [ - "▁K", - "it" - ], - [ - "▁Ki", - "t" - ], - [ - "▁", - "Kit" - ], - [ - "▁l", - "inea" - ], - [ - "▁li", - "nea" - ], - [ - "▁line", - "a" - ], - [ - "▁lin", - "ea" - ], - [ - "о", - "к" - ], - [ - "ha", - "rt" - ], - [ - "har", - "t" - ], - [ - "h", - "art" - ], - [ - "->", - "_" - ], - [ - "▁n", - "uit" - ], - [ - "▁nu", - "it" - ], - [ - "▁Iss", - "ue" - ], - [ - "ли", - "и" - ], - [ - "▁r", - "öm" - ], - [ - "Task", - "s" - ], - [ - "▁S", - "r" - ], - [ - "▁se", - "is" - ], - [ - "▁sei", - "s" - ], - [ - "as", - "ia" - ], - [ - "asi", - "a" - ], - [ - "}}", - "$." - ], - [ - "}}$", - "." - ], - [ - "}", - "}$." - ], - [ - ":", - "{" - ], - [ - "control", - "s" - ], - [ - "contr", - "ols" - ], - [ - "▁S", - "tim" - ], - [ - "▁St", - "im" - ], - [ - "▁Re", - "cht" - ], - [ - "▁Rec", - "ht" - ], - [ - "ocia", - "ción" - ], - [ - "oci", - "ación" - ], - [ - "▁N", - "atal" - ], - [ - "▁Na", - "tal" - ], - [ - "▁Nat", - "al" - ], - [ - "▁Philipp", - "ines" - ], - [ - "ul", - "en" - ], - [ - "ule", - "n" - ], - [ - "u", - "len" - ], - [ - "F", - "ixed" - ], - [ - "▁switch", - "ed" - ], - [ - "Z", - "ip" - ], - [ - "os", - "pel" - ], - [ - "osp", - "el" - ], - [ - "▁нача", - "ле" - ], - [ - "▁B", - "lan" - ], - [ - "▁Bl", - "an" - ], - [ - "▁Bla", - "n" - ], - [ - "ur", - "st" - ], - [ - "urs", - "t" - ], - [ - "▁aut", - "our" - ], - [ - "▁auto", - "ur" - ], - [ - "C", - "a" - ], - [ - "▁lat", - "itude" - ], - [ - "▁F", - "rei" - ], - [ - "▁Fre", - "i" - ], - [ - "▁Fr", - "ei" - ], - [ - "▁Mus", - "ée" - ], - [ - "▁K", - "urz" - ], - [ - "▁Kur", - "z" - ], - [ - "▁Ku", - "rz" - ], - [ - "▁reg", - "ião" - ], - [ - "sw", - "ap" - ], - [ - "▁h", - "ate" - ], - [ - "▁ha", - "te" - ], - [ - "▁hat", - "e" - ], - [ - "▁mod", - "ifications" - ], - [ - "▁modification", - "s" - ], - [ - "▁modific", - "ations" - ], - [ - "▁К", - "ом" - ], - [ - "▁Ко", - "м" - ], - [ - "▁Anto", - "ine" - ], - [ - "ug", - "a" - ], - [ - "u", - "ga" - ], - [ - "RE", - "CT" - ], - [ - "R", - "ECT" - ], - [ - "ét", - "er" - ], - [ - "é", - "ter" - ], - [ - "G", - "ROUP" - ], - [ - "▁sacr", - "ific" - ], - [ - "▁W", - "he" - ], - [ - "▁Wh", - "e" - ], - [ - "▁Ste", - "vens" - ], - [ - "▁Steve", - "ns" - ], - [ - "▁Steven", - "s" - ], - [ - "olog", - "ische" - ], - [ - "Sum", - "mary" - ], - [ - "ob", - "s" - ], - [ - "o", - "bs" - ], - [ - "hn", - "en" - ], - [ - "h", - "nen" - ], - [ - "<", - "%=" - ], - [ - "di", - "enst" - ], - [ - "d", - "ienst" - ], - [ - "re", - "mark" - ], - [ - "rem", - "ark" - ], - [ - "r", - "emark" - ], - [ - "▁veröff", - "entlicht" - ], - [ - "е", - "л" - ], - [ - "▁M", - "ock" - ], - [ - "▁Mo", - "ck" - ], - [ - "▁", - "Mock" - ], - [ - "▁Ль", - "в" - ], - [ - "▁tr", - "ês" - ], - [ - "g", - "b" - ], - [ - "▁celebr", - "ated" - ], - [ - "▁E", - "b" - ], - [ - "▁c", - "osta" - ], - [ - "▁co", - "sta" - ], - [ - "▁cost", - "a" - ], - [ - "▁cos", - "ta" - ], - [ - "▁Ge", - "ographic" - ], - [ - "▁att", - "achment" - ], - [ - "▁attach", - "ment" - ], - [ - "mann", - "schaft" - ], - [ - "▁depend", - "ence" - ], - [ - "�", - "�" - ], - [ - "▁att", - "itude" - ], - [ - "et", - "al" - ], - [ - "eta", - "l" - ], - [ - "e", - "tal" - ], - [ - "vi", - "c" - ], - [ - "v", - "ic" - ], - [ - "ba", - "ut" - ], - [ - "bau", - "t" - ], - [ - "b", - "aut" - ], - [ - "▁д", - "ов" - ], - [ - "▁до", - "в" - ], - [ - "▁", - "дов" - ], - [ - "▁inter", - "ven" - ], - [ - "▁G", - "ü" - ], - [ - "ón", - "ica" - ], - [ - "ó", - "nica" - ], - [ - "▁P", - "on" - ], - [ - "▁Po", - "n" - ], - [ - "▁dispon", - "ible" - ], - [ - "▁F", - "eb" - ], - [ - "▁Fe", - "b" - ], - [ - "▁wor", - "ship" - ], - [ - "▁Specific", - "ally" - ], - [ - "H", - "y" - ], - [ - "ij", - "u" - ], - [ - "i", - "ju" - ], - [ - "▁c", - "b" - ], - [ - "▁", - "cb" - ], - [ - "▁sp", - "ac" - ], - [ - "lev", - "eland" - ], - [ - "level", - "and" - ], - [ - "▁local", - "idad" - ], - [ - "▁prec", - "eding" - ], - [ - "▁preced", - "ing" - ], - [ - "▁H", - "essen" - ], - [ - "x", - "p" - ], - [ - "▁W", - "ein" - ], - [ - "▁We", - "in" - ], - [ - "▁Wei", - "n" - ], - [ - "▁Rom", - "â" - ], - [ - "▁gi", - "orno" - ], - [ - "▁gior", - "no" - ], - [ - "▁квіт", - "ня" - ], - [ - "lla", - "ços" - ], - [ - "▁Academ", - "ia" - ], - [ - "▁k", - "ül" - ], - [ - "▁Å", - "rs" - ], - [ - "▁на", - "ј" - ], - [ - "uc", - "lide" - ], - [ - "Inter", - "net" - ], - [ - "Intern", - "et" - ], - [ - "or", - "ton" - ], - [ - "ort", - "on" - ], - [ - "▁c", - "orn" - ], - [ - "▁cor", - "n" - ], - [ - "▁co", - "rn" - ], - [ - "я", - "ми" - ], - [ - "▁\"", - "*" - ], - [ - "▁Fel", - "ix" - ], - [ - "ap", - "at" - ], - [ - "apa", - "t" - ], - [ - "a", - "pat" - ], - [ - "▁сво", - "и" - ], - [ - "MI", - "T" - ], - [ - "M", - "IT" - ], - [ - "ma", - "de" - ], - [ - "mad", - "e" - ], - [ - "m", - "ade" - ], - [ - "▁lo", - "comot" - ], - [ - "хо", - "да" - ], - [ - "ход", - "а" - ], - [ - "F", - "P" - ], - [ - "▁p", - "m" - ], - [ - "▁", - "pm" - ], - [ - ".*", - ";" - ], - [ - "▁H", - "amm" - ], - [ - "▁Ha", - "mm" - ], - [ - "▁Ham", - "m" - ], - [ - "`", - "}" - ], - [ - "Layout", - "Inflater" - ], - [ - "==", - "\"" - ], - [ - "=", - "=\"" - ], - [ - "▁E", - "ur" - ], - [ - "▁Eu", - "r" - ], - [ - "▁d", - "ogs" - ], - [ - "▁do", - "gs" - ], - [ - "▁dog", - "s" - ], - [ - "же", - "нии" - ], - [ - "▁a", - "zon" - ], - [ - "▁az", - "on" - ], - [ - "▁", - "azon" - ], - [ - "▁em", - "ulator" - ], - [ - "▁r", - "icon" - ], - [ - "▁ric", - "on" - ], - [ - "▁ri", - "con" - ], - [ - "be", - "eld" - ], - [ - "▁н", - "у" - ], - [ - "▁", - "ну" - ], - [ - "▁approxim", - "ate" - ], - [ - "L", - "M" - ], - [ - "▁B", - "ond" - ], - [ - "▁Bo", - "nd" - ], - [ - "▁Bon", - "d" - ], - [ - "▁en", - "h" - ], - [ - "ęd", - "z" - ], - [ - "ę", - "dz" - ], - [ - "▁s", - "olit" - ], - [ - "▁so", - "lit" - ], - [ - "▁sol", - "it" - ], - [ - "Relative", - "Layout" - ], - [ - "et", - "eor" - ], - [ - "ete", - "or" - ], - [ - "ament", - "os" - ], - [ - "amento", - "s" - ], - [ - "▁in", - "direct" - ], - [ - "▁ind", - "irect" - ], - [ - "ib", - "ől" - ], - [ - "▁g", - "ros" - ], - [ - "▁gr", - "os" - ], - [ - "▁gro", - "s" - ], - [ - "▁Original", - "s" - ], - [ - "▁Origin", - "als" - ], - [ - "▁Orig", - "inals" - ], - [ - "comm", - "ands" - ], - [ - "command", - "s" - ], - [ - "Ex", - "port" - ], - [ - "Exp", - "ort" - ], - [ - "▁A", - "vec" - ], - [ - "▁Av", - "ec" - ], - [ - "▁sole", - "mn" - ], - [ - "▁solem", - "n" - ], - [ - "▁correct", - "ion" - ], - [ - "▁corre", - "ction" - ], - [ - "▁corr", - "ection" - ], - [ - "▁про", - "води" - ], - [ - "▁прово", - "ди" - ], - [ - "▁Mo", - "sk" - ], - [ - "▁Mos", - "k" - ], - [ - "▁по", - "до" - ], - [ - "▁под", - "о" - ], - [ - "▁geb", - "ied" - ], - [ - "▁nast", - "ęp" - ], - [ - "▁D", - "river" - ], - [ - "▁Dr", - "iver" - ], - [ - "▁Drive", - "r" - ], - [ - "▁", - "Driver" - ], - [ - "▁O", - "ok" - ], - [ - "▁V", - "ec" - ], - [ - "▁Ve", - "c" - ], - [ - "▁", - "Vec" - ], - [ - "▁lung", - "o" - ], - [ - "▁lun", - "go" - ], - [ - "fi", - "cos" - ], - [ - "fic", - "os" - ], - [ - "fico", - "s" - ], - [ - "f", - "icos" - ], - [ - "▁s", - "vol" - ], - [ - "▁sv", - "ol" - ], - [ - "▁svo", - "l" - ], - [ - "▁k", - "id" - ], - [ - "▁ki", - "d" - ], - [ - "n", - "ja" - ], - [ - "▁H", - "r" - ], - [ - "▁под", - "дер" - ], - [ - "▁vis", - "ibility" - ], - [ - "▁", - "visibility" - ], - [ - "▁M", - "éd" - ], - [ - "▁Mé", - "d" - ], - [ - "▁c", - "pu" - ], - [ - "▁cp", - "u" - ], - [ - "▁", - "cpu" - ], - [ - "dis", - "cussion" - ], - [ - "As", - "set" - ], - [ - "Ass", - "et" - ], - [ - "▁def", - "ense" - ], - [ - "▁Any", - "one" - ], - [ - "▁Just", - "in" - ], - [ - "is", - "zt" - ], - [ - "isz", - "t" - ], - [ - "▁Coll", - "ins" - ], - [ - "▁Val", - "ent" - ], - [ - "▁P", - "ale" - ], - [ - "▁Pa", - "le" - ], - [ - "▁Pal", - "e" - ], - [ - "▁f", - "uel" - ], - [ - "▁fue", - "l" - ], - [ - "▁fu", - "el" - ], - [ - "▁n", - "ose" - ], - [ - "▁no", - "se" - ], - [ - "▁nos", - "e" - ], - [ - "rí", - "guez" - ], - [ - "▁Sch", - "les" - ], - [ - "▁Schl", - "es" - ], - [ - "▁Mal", - "ays" - ], - [ - "▁com", - "mut" - ], - [ - "▁comm", - "ut" - ], - [ - "dr", - "o" - ], - [ - "d", - "ro" - ], - [ - "ui", - "ng" - ], - [ - "u", - "ing" - ], - [ - "▁R", - "ico" - ], - [ - "▁Ric", - "o" - ], - [ - "▁Ri", - "co" - ], - [ - "▁Em", - "ma" - ], - [ - "or", - "p" - ], - [ - "o", - "rp" - ], - [ - "▁K", - "irk" - ], - [ - "▁Kir", - "k" - ], - [ - "▁Qu", - "ando" - ], - [ - "▁Ne", - "ue" - ], - [ - "▁Neu", - "e" - ], - [ - "▁de", - "mande" - ], - [ - "▁dem", - "ande" - ], - [ - "▁demand", - "e" - ], - [ - "▁C", - "over" - ], - [ - "▁Co", - "ver" - ], - [ - "▁Cov", - "er" - ], - [ - "▁res", - "cue" - ], - [ - "▁gew", - "ählt" - ], - [ - "▁Cal", - "endar" - ], - [ - "▁", - "Calendar" - ], - [ - "▁Mad", - "onna" - ], - [ - "W", - "P" - ], - [ - "os", - "hi" - ], - [ - "osh", - "i" - ], - [ - "▁M", - "aven" - ], - [ - "▁Ma", - "ven" - ], - [ - "▁b", - "elle" - ], - [ - "▁be", - "lle" - ], - [ - "▁bel", - "le" - ], - [ - "▁bell", - "e" - ], - [ - "▁w", - "x" - ], - [ - "▁", - "wx" - ], - [ - "▁su", - "gar" - ], - [ - "▁sug", - "ar" - ], - [ - "▁Bet", - "rieb" - ], - [ - "▁equilib", - "rium" - ], - [ - "E", - "AR" - ], - [ - "▁text", - "s" - ], - [ - "▁tex", - "ts" - ], - [ - "сло", - "в" - ], - [ - "с", - "лов" - ], - [ - "▁czerw", - "ca" - ], - [ - "▁D", - "üsseld" - ], - [ - "▁EL", - "SE" - ], - [ - "▁am", - "ery" - ], - [ - "▁amer", - "y" - ], - [ - "▁a", - "ni" - ], - [ - "▁an", - "i" - ], - [ - "▁", - "ani" - ], - [ - "▁o", - "bey" - ], - [ - "▁ob", - "ey" - ], - [ - "▁N", - "ell" - ], - [ - "▁Ne", - "ll" - ], - [ - "▁Nel", - "l" - ], - [ - "▁in", - "ne" - ], - [ - "▁inn", - "e" - ], - [ - "▁т", - "ро" - ], - [ - "▁", - "тро" - ], - [ - "F", - "D" - ], - [ - "cc", - "o" - ], - [ - "c", - "co" - ], - [ - "▁Z", - "ob" - ], - [ - "▁Zo", - "b" - ], - [ - "al", - "ette" - ], - [ - "ale", - "tte" - ], - [ - "alet", - "te" - ], - [ - "a", - "lette" - ], - [ - "▁má", - "jus" - ], - [ - "ect", - "ed" - ], - [ - "ec", - "ted" - ], - [ - "e", - "cted" - ], - [ - "▁Tur", - "key" - ], - [ - "▁Turk", - "ey" - ], - [ - "▁Wh", - "ether" - ], - [ - "▁Whe", - "ther" - ], - [ - "q", - "i" - ], - [ - "▁ш", - "то" - ], - [ - "▁head", - "quarters" - ], - [ - "en", - "di" - ], - [ - "end", - "i" - ], - [ - "ar", - "us" - ], - [ - "aru", - "s" - ], - [ - "a", - "rus" - ], - [ - "op", - "us" - ], - [ - "o", - "pus" - ], - [ - "▁з", - "оло" - ], - [ - "▁зо", - "ло" - ], - [ - "▁de", - "stru" - ], - [ - "▁dest", - "ru" - ], - [ - "▁L", - "ok" - ], - [ - "▁Lo", - "k" - ], - [ - "▁satisf", - "action" - ], - [ - "()", - "\r" - ], - [ - "(", - ")\r" - ], - [ - "▁Т", - "ер" - ], - [ - "▁Те", - "р" - ], - [ - "Jo", - "se" - ], - [ - "J", - "ose" - ], - [ - "▁con", - "quer" - ], - [ - "▁conqu", - "er" - ], - [ - "▁E", - "ffect" - ], - [ - "▁", - "Effect" - ], - [ - "Layout", - "Params" - ], - [ - "ie", - "z" - ], - [ - "i", - "ez" - ], - [ - "▁extern", - "s" - ], - [ - "▁gegen", - "über" - ], - [ - "▁E", - "SP" - ], - [ - "▁ES", - "P" - ], - [ - "ol", - "ta" - ], - [ - "olt", - "a" - ], - [ - "process", - "or" - ], - [ - "proc", - "essor" - ], - [ - "▁K", - "ult" - ], - [ - "▁Ku", - "lt" - ], - [ - "▁Atl", - "anta" - ], - [ - "▁t", - "ier" - ], - [ - "▁ti", - "er" - ], - [ - "▁tie", - "r" - ], - [ - "Oper", - "ator" - ], - [ - "▁ди", - "а" - ], - [ - "▁пи", - "сь" - ], - [ - "▁gro", - "ß" - ], - [ - "▁he", - "arts" - ], - [ - "▁heart", - "s" - ], - [ - "▁hear", - "ts" - ], - [ - "▁mill", - "imeter" - ], - [ - "al", - "though" - ], - [ - "alth", - "ough" - ], - [ - "al", - "les" - ], - [ - "all", - "es" - ], - [ - "alle", - "s" - ], - [ - "a", - "lles" - ], - [ - "▁Mag", - "ic" - ], - [ - "tr", - "aining" - ], - [ - "tra", - "ining" - ], - [ - "train", - "ing" - ], - [ - "ol", - "ine" - ], - [ - "oli", - "ne" - ], - [ - "olin", - "e" - ], - [ - "o", - "line" - ], - [ - "▁орган", - "і" - ], - [ - ">\\<", - "^" - ], - [ - ">", - "\\<^" - ], - [ - "ці", - "аль" - ], - [ - "ex", - "ports" - ], - [ - "export", - "s" - ], - [ - "Work", - "book" - ], - [ - "▁вере", - "сня" - ], - [ - "▁t", - "eles" - ], - [ - "▁te", - "les" - ], - [ - "▁tele", - "s" - ], - [ - "▁tel", - "es" - ], - [ - "▁econom", - "y" - ], - [ - "▁econ", - "omy" - ], - [ - "▁ec", - "onomy" - ], - [ - "▁t", - "rap" - ], - [ - "▁tr", - "ap" - ], - [ - "▁tra", - "p" - ], - [ - "▁ref", - "use" - ], - [ - "▁str", - "anger" - ], - [ - "▁strange", - "r" - ], - [ - "▁stran", - "ger" - ], - [ - "▁inst", - "inct" - ], - [ - "по", - "да" - ], - [ - "ol", - "an" - ], - [ - "ola", - "n" - ], - [ - "o", - "lan" - ], - [ - "▁n", - "ing" - ], - [ - "▁ni", - "ng" - ], - [ - "▁nin", - "g" - ], - [ - "▁", - "ning" - ], - [ - "inf", - "late" - ], - [ - "infl", - "ate" - ], - [ - "itat", - "ea" - ], - [ - "itate", - "a" - ], - [ - "ack", - "s" - ], - [ - "ac", - "ks" - ], - [ - "a", - "cks" - ], - [ - "▁J", - "oy" - ], - [ - "▁Jo", - "y" - ], - [ - "FL", - "AG" - ], - [ - "FLA", - "G" - ], - [ - "ail", - "and" - ], - [ - "ai", - "land" - ], - [ - "▁sort", - "i" - ], - [ - "▁sor", - "ti" - ], - [ - "▁в", - "пер" - ], - [ - "▁p", - "én" - ], - [ - "▁pé", - "n" - ], - [ - "Not", - "hing" - ], - [ - "No", - "thing" - ], - [ - "N", - "othing" - ], - [ - "▁sz", - "áz" - ], - [ - "▁Á", - "ng" - ], - [ - "▁A", - "UT" - ], - [ - "▁", - "AUT" - ], - [ - "Act", - "ions" - ], - [ - "Action", - "s" - ], - [ - "A", - "ctions" - ], - [ - "E", - "very" - ], - [ - "▁чер", - "вня" - ], - [ - "▁авто", - "мо" - ], - [ - "▁rout", - "ine" - ], - [ - "▁e", - "struct" - ], - [ - "▁est", - "ruct" - ], - [ - "▁G", - "ang" - ], - [ - "▁Ga", - "ng" - ], - [ - "▁Gan", - "g" - ], - [ - "▁h", - "oles" - ], - [ - "▁ho", - "les" - ], - [ - "▁hol", - "es" - ], - [ - "▁hole", - "s" - ], - [ - "th", - "esis" - ], - [ - "thes", - "is" - ], - [ - "▁con", - "cl" - ], - [ - "▁conc", - "l" - ], - [ - "▁p", - "é" - ], - [ - "ri", - "ers" - ], - [ - "rie", - "rs" - ], - [ - "rier", - "s" - ], - [ - "r", - "iers" - ], - [ - "ро", - "вой" - ], - [ - "рово", - "й" - ], - [ - "р", - "овой" - ], - [ - "ad", - "ic" - ], - [ - "adi", - "c" - ], - [ - "a", - "dic" - ], - [ - "Sp", - "eed" - ], - [ - "Spe", - "ed" - ], - [ - "▁command", - "ed" - ], - [ - "▁N", - "azionale" - ], - [ - "▁Naz", - "ionale" - ], - [ - "Man", - "aged" - ], - [ - "▁DE", - "CLARE" - ], - [ - "▁se", - "dan" - ], - [ - "▁sed", - "an" - ], - [ - "String", - "s" - ], - [ - "Str", - "ings" - ], - [ - "▁sa", - "cred" - ], - [ - "▁sac", - "red" - ], - [ - "▁sacr", - "ed" - ], - [ - "ter", - "such" - ], - [ - "ters", - "uch" - ], - [ - "▁abit", - "anti" - ], - [ - "br", - "it" - ], - [ - "b", - "rit" - ], - [ - "▁N", - "CAA" - ], - [ - "▁NC", - "AA" - ], - [ - "▁С", - "П" - ], - [ - "▁a", - "ged" - ], - [ - "▁ag", - "ed" - ], - [ - "▁age", - "d" - ], - [ - "▁", - "aged" - ], - [ - "▁Ch", - "iesa" - ], - [ - "▁Chi", - "esa" - ], - [ - "▁re", - "vision" - ], - [ - "▁rev", - "ision" - ], - [ - "▁revis", - "ion" - ], - [ - "op", - "ro" - ], - [ - "o", - "pro" - ], - [ - "▁over", - "write" - ], - [ - "emb", - "ros" - ], - [ - "embro", - "s" - ], - [ - "▁sort", - "ie" - ], - [ - "▁sorti", - "e" - ], - [ - "▁ot", - "ten" - ], - [ - "▁ott", - "en" - ], - [ - "xi", - "v" - ], - [ - "x", - "iv" - ], - [ - "▁d", - "eli" - ], - [ - "▁de", - "li" - ], - [ - "▁del", - "i" - ], - [ - "▁A", - "sp" - ], - [ - "▁As", - "p" - ], - [ - "▁b", - "alls" - ], - [ - "▁bal", - "ls" - ], - [ - "▁ball", - "s" - ], - [ - "ka", - "f" - ], - [ - "k", - "af" - ], - [ - "▁br", - "ave" - ], - [ - "▁bra", - "ve" - ], - [ - "▁все", - "го" - ], - [ - "▁вс", - "его" - ], - [ - "eg", - "n" - ], - [ - "e", - "gn" - ], - [ - "jp", - "eg" - ], - [ - "▁O", - "sten" - ], - [ - "▁Os", - "ten" - ], - [ - "▁Ost", - "en" - ], - [ - "Const", - "ants" - ], - [ - "▁Inf", - "antry" - ], - [ - "▁N", - "ev" - ], - [ - "▁Ne", - "v" - ], - [ - "▁я", - "ких" - ], - [ - "▁як", - "их" - ], - [ - "▁му", - "ниципа" - ], - [ - "ci", - "ja" - ], - [ - "c", - "ija" - ], - [ - "▁p", - "oem" - ], - [ - "▁po", - "em" - ], - [ - "▁ne", - "gro" - ], - [ - "▁neg", - "ro" - ], - [ - "ха", - "р" - ], - [ - "х", - "ар" - ], - [ - "▁A", - "sk" - ], - [ - "▁As", - "k" - ], - [ - "▁a", - "vo" - ], - [ - "▁av", - "o" - ], - [ - "▁", - "avo" - ], - [ - "▁Me", - "yer" - ], - [ - "▁Mey", - "er" - ], - [ - "▁W", - "esten" - ], - [ - "▁We", - "sten" - ], - [ - "▁West", - "en" - ], - [ - "▁Wes", - "ten" - ], - [ - "▁o", - "ko" - ], - [ - "▁ok", - "o" - ], - [ - "▁", - "oko" - ], - [ - "ag", - "in" - ], - [ - "agi", - "n" - ], - [ - "a", - "gin" - ], - [ - "▁Süd", - "en" - ], - [ - "▁Sü", - "den" - ], - [ - "ent", - "ries" - ], - [ - "entr", - "ies" - ], - [ - "▁Rep", - "ublik" - ], - [ - "▁Repub", - "lik" - ], - [ - "Collection", - "View" - ], - [ - "--", - "-----" - ], - [ - "----", - "---" - ], - [ - "---", - "----" - ], - [ - "------", - "-" - ], - [ - "-----", - "--" - ], - [ - "-", - "------" - ], - [ - "▁fire", - "fox" - ], - [ - "▁alc", - "une" - ], - [ - "▁фо", - "то" - ], - [ - "▁отри", - "ма" - ], - [ - "~~~~", - "~~~~" - ], - [ - "▁Ра", - "з" - ], - [ - "▁Com", - "plex" - ], - [ - "▁Comp", - "lex" - ], - [ - "▁Comple", - "x" - ], - [ - "▁p", - "ia" - ], - [ - "▁pi", - "a" - ], - [ - "▁public", - "ada" - ], - [ - "we", - "i" - ], - [ - "w", - "ei" - ], - [ - "ced", - "ure" - ], - [ - "occup", - "ation" - ], - [ - "▁medic", - "ine" - ], - [ - "▁dr", - "ove" - ], - [ - "▁dro", - "ve" - ], - [ - "Pro", - "blem" - ], - [ - "▁beg", - "inner" - ], - [ - "▁begin", - "ner" - ], - [ - "▁thorough", - "ly" - ], - [ - "ur", - "ia" - ], - [ - "uri", - "a" - ], - [ - "u", - "ria" - ], - [ - "av", - "ant" - ], - [ - "ava", - "nt" - ], - [ - "avan", - "t" - ], - [ - "uch", - "a" - ], - [ - "uc", - "ha" - ], - [ - "u", - "cha" - ], - [ - "▁l", - "ever" - ], - [ - "▁le", - "ver" - ], - [ - "▁lev", - "er" - ], - [ - "▁te", - "atro" - ], - [ - "▁teat", - "ro" - ], - [ - "AV", - "A" - ], - [ - "A", - "VA" - ], - [ - "sq", - "u" - ], - [ - "s", - "qu" - ], - [ - "tr", - "at" - ], - [ - "tra", - "t" - ], - [ - "t", - "rat" - ], - [ - "iv", - "atal" - ], - [ - "iva", - "tal" - ], - [ - "▁d", - "irty" - ], - [ - "▁dir", - "ty" - ], - [ - "▁se", - "conde" - ], - [ - "▁second", - "e" - ], - [ - "▁sec", - "onde" - ], - [ - "▁grav", - "it" - ], - [ - "▁pro", - "position" - ], - [ - "▁prop", - "osition" - ], - [ - "▁propos", - "ition" - ], - [ - "h", - "bar" - ], - [ - "om", - "ini" - ], - [ - "omin", - "i" - ], - [ - "omi", - "ni" - ], - [ - "▁", - "”" - ], - [ - "▁C", - "amil" - ], - [ - "▁Cam", - "il" - ], - [ - "▁Ca", - "mil" - ], - [ - "▁qu", - "een" - ], - [ - "▁que", - "en" - ], - [ - "mod", - "ifier" - ], - [ - "J", - "an" - ], - [ - "▁l", - "yr" - ], - [ - "▁ly", - "r" - ], - [ - "Com", - "boBox" - ], - [ - "ion", - "ic" - ], - [ - "io", - "nic" - ], - [ - "ioni", - "c" - ], - [ - "i", - "onic" - ], - [ - "▁h", - "oly" - ], - [ - "▁ho", - "ly" - ], - [ - "▁hol", - "y" - ], - [ - "▁Sebast", - "ian" - ], - [ - "|", - "_{" - ], - [ - "▁{", - "@" - ], - [ - "▁мо", - "жно" - ], - [ - "▁мож", - "но" - ], - [ - "▁Cre", - "ative" - ], - [ - "▁inter", - "ess" - ], - [ - "▁inte", - "ress" - ], - [ - "▁C", - "T" - ], - [ - "▁", - "CT" - ], - [ - "i", - "ções" - ], - [ - "▁ch", - "ant" - ], - [ - "▁cha", - "nt" - ], - [ - "▁", - "chant" - ], - [ - "▁wsp", - "ół" - ], - [ - "▁Мекси", - "ка" - ], - [ - "▁ran", - "ked" - ], - [ - "▁rank", - "ed" - ], - [ - "▁paździer", - "nika" - ], - [ - "▁b", - "rut" - ], - [ - "▁br", - "ut" - ], - [ - "▁bru", - "t" - ], - [ - "▁far", - "ther" - ], - [ - "▁V", - "erb" - ], - [ - "▁Ver", - "b" - ], - [ - "▁Ve", - "rb" - ], - [ - "▁S", - "even" - ], - [ - "▁Se", - "ven" - ], - [ - "lb", - "l" - ], - [ - "l", - "bl" - ], - [ - "▁mention", - "s" - ], - [ - "▁ment", - "ions" - ], - [ - "▁F", - "ight" - ], - [ - "▁Fig", - "ht" - ], - [ - "if", - "en" - ], - [ - "ife", - "n" - ], - [ - "i", - "fen" - ], - [ - "▁b", - "og" - ], - [ - "▁bo", - "g" - ], - [ - "▁re", - "gres" - ], - [ - "▁reg", - "res" - ], - [ - "▁sc", - "oring" - ], - [ - "ic", - "ane" - ], - [ - "ica", - "ne" - ], - [ - "ican", - "e" - ], - [ - "▁El", - "li" - ], - [ - "▁Ell", - "i" - ], - [ - "▁pie", - "rw" - ], - [ - "▁pier", - "w" - ], - [ - "me", - "asure" - ], - [ - "ński", - "ej" - ], - [ - "ń", - "skiej" - ], - [ - "#", - "{" - ], - [ - "▁де", - "ся" - ], - [ - "▁var", - "maste" - ], - [ - "▁Un", - "ix" - ], - [ - "I", - "Z" - ], - [ - "iti", - "é" - ], - [ - "Prim", - "ary" - ], - [ - "▁Spring", - "er" - ], - [ - "▁Spr", - "inger" - ], - [ - "ün", - "g" - ], - [ - "ü", - "ng" - ], - [ - "▁an", - "v" - ], - [ - "▁vers", - "ione" - ], - [ - "▁version", - "e" - ], - [ - "▁should", - "ers" - ], - [ - "▁shoulder", - "s" - ], - [ - "▁бри", - "га" - ], - [ - "▁j", - "av" - ], - [ - "▁ja", - "v" - ], - [ - "▁", - "jav" - ], - [ - "lt", - "al" - ], - [ - "l", - "tal" - ], - [ - "▁kall", - "aste" - ], - [ - "▁Mitch", - "ell" - ], - [ - "▁wire", - "less" - ], - [ - "▁wir", - "eless" - ], - [ - "▁Á", - "l" - ], - [ - "resp", - "ons" - ], - [ - "co", - "uld" - ], - [ - "cou", - "ld" - ], - [ - "c", - "ould" - ], - [ - "▁re", - "lax" - ], - [ - "▁rel", - "ax" - ], - [ - "▁rela", - "x" - ], - [ - "▁", - "relax" - ], - [ - "Lo", - "nd" - ], - [ - "L", - "ond" - ], - [ - "ń", - "cz" - ], - [ - "ство", - "вал" - ], - [ - "ствова", - "л" - ], - [ - "▁pol", - "ski" - ], - [ - "en", - "ç" - ], - [ - "za", - "r" - ], - [ - "z", - "ar" - ], - [ - "▁d", - "type" - ], - [ - "▁dt", - "ype" - ], - [ - "ow", - "ned" - ], - [ - "own", - "ed" - ], - [ - "un", - "known" - ], - [ - "unk", - "nown" - ], - [ - "▁m", - "utable" - ], - [ - "▁mu", - "table" - ], - [ - "▁mut", - "able" - ], - [ - "▁", - "mutable" - ], - [ - "▁si", - "empre" - ], - [ - "▁Mont", - "real" - ], - [ - "▁loc", - "ate" - ], - [ - "▁tr", - "aces" - ], - [ - "▁tra", - "ces" - ], - [ - "▁trace", - "s" - ], - [ - "▁trac", - "es" - ], - [ - "▁ins", - "gesamt" - ], - [ - "▁N", - "il" - ], - [ - "▁Ni", - "l" - ], - [ - "▁", - "Nil" - ], - [ - "▁п", - "рода" - ], - [ - "▁про", - "да" - ], - [ - "▁прод", - "а" - ], - [ - "▁War", - "ner" - ], - [ - "▁N", - "au" - ], - [ - "▁Na", - "u" - ], - [ - "tri", - "angle" - ], - [ - "▁concentr", - "ation" - ], - [ - "▁gentle", - "men" - ], - [ - "äch", - "t" - ], - [ - "ä", - "cht" - ], - [ - "fil", - "ters" - ], - [ - "filter", - "s" - ], - [ - "inci", - "pal" - ], - [ - "VAL", - "ID" - ], - [ - "▁де", - "пута" - ], - [ - "ad", - "ó" - ], - [ - "▁kon", - "st" - ], - [ - "gs", - "å" - ], - [ - "ag", - "as" - ], - [ - "aga", - "s" - ], - [ - "a", - "gas" - ], - [ - "▁meille", - "ur" - ], - [ - "▁дан", - "ным" - ], - [ - "є", - "дна" - ], - [ - "en", - "coded" - ], - [ - "enc", - "oded" - ], - [ - "encode", - "d" - ], - [ - "<", - "'" - ], - [ - "▁she", - "ets" - ], - [ - "▁sheet", - "s" - ], - [ - "▁", - "sheets" - ], - [ - "cu", - "ador" - ], - [ - "▁викори", - "стову" - ], - [ - "▁De", - "put" - ], - [ - "▁Dep", - "ut" - ], - [ - "▁man", - "ière" - ], - [ - "ą", - "g" - ], - [ - "cs", - "ol" - ], - [ - "c", - "sol" - ], - [ - ")$", - "-" - ], - [ - ")", - "$-" - ], - [ - "UI", - "View" - ], - [ - "▁mill", - "ones" - ], - [ - "▁E", - "hren" - ], - [ - "▁Ehr", - "en" - ], - [ - "Si", - "l" - ], - [ - "S", - "il" - ], - [ - "▁a", - "tac" - ], - [ - "▁at", - "ac" - ], - [ - "▁C", - "old" - ], - [ - "▁Col", - "d" - ], - [ - "▁Co", - "ld" - ], - [ - "\"", - "\\" - ], - [ - "▁appro", - "ached" - ], - [ - "▁approach", - "ed" - ], - [ - "▁Års", - "med" - ], - [ - "W", - "M" - ], - [ - "▁De", - "port" - ], - [ - "▁Dep", - "ort" - ], - [ - "mi", - "s" - ], - [ - "m", - "is" - ], - [ - "and", - "box" - ], - [ - "ob", - "serv" - ], - [ - "obs", - "erv" - ], - [ - "set", - "ting" - ], - [ - "sett", - "ing" - ], - [ - "ha", - "tó" - ], - [ - "hat", - "ó" - ], - [ - "h", - "ató" - ], - [ - "▁s", - "trat" - ], - [ - "▁st", - "rat" - ], - [ - "▁str", - "at" - ], - [ - "▁stra", - "t" - ], - [ - "▁s", - "pre" - ], - [ - "▁sp", - "re" - ], - [ - "▁spr", - "e" - ], - [ - "▁", - "spre" - ], - [ - "▁person", - "ne" - ], - [ - "▁pers", - "onne" - ], - [ - "▁personn", - "e" - ], - [ - "▁dir", - "ige" - ], - [ - "▁dirig", - "e" - ], - [ - "pu", - "ll" - ], - [ - "p", - "ull" - ], - [ - "da", - "ting" - ], - [ - "dat", - "ing" - ], - [ - "d", - "ating" - ], - [ - "▁F", - "act" - ], - [ - "▁Fa", - "ct" - ], - [ - "▁Fac", - "t" - ], - [ - "▁", - "Fact" - ], - [ - "▁manip", - "ulate" - ], - [ - "▁M", - "AC" - ], - [ - "▁MA", - "C" - ], - [ - "▁d", - "ej" - ], - [ - "▁de", - "j" - ], - [ - "ult", - "imo" - ], - [ - "F", - "X" - ], - [ - "Li", - "fe" - ], - [ - "L", - "ife" - ], - [ - "▁c", - "rack" - ], - [ - "▁cr", - "ack" - ], - [ - "▁cra", - "ck" - ], - [ - "▁m", - "í" - ], - [ - "▁п", - "ове" - ], - [ - "▁по", - "ве" - ], - [ - "▁пов", - "е" - ], - [ - "▁w", - "ore" - ], - [ - "▁wor", - "e" - ], - [ - "▁wo", - "re" - ], - [ - "univers", - "ité" - ], - [ - "▁form", - "ulas" - ], - [ - "▁formula", - "s" - ], - [ - "▁Elis", - "abeth" - ], - [ - "pl", - "ots" - ], - [ - "plot", - "s" - ], - [ - "mi", - "le" - ], - [ - "mil", - "e" - ], - [ - "m", - "ile" - ], - [ - "▁me", - "nor" - ], - [ - "▁men", - "or" - ], - [ - "ти", - "л" - ], - [ - "т", - "ил" - ], - [ - "key", - "word" - ], - [ - "▁Balt", - "imore" - ], - [ - "hr", - "er" - ], - [ - "hre", - "r" - ], - [ - "h", - "rer" - ], - [ - "▁C", - "lement" - ], - [ - "▁Cl", - "ement" - ], - [ - "▁Cle", - "ment" - ], - [ - "vi", - "m" - ], - [ - "v", - "im" - ], - [ - "ra", - "ss" - ], - [ - "ras", - "s" - ], - [ - "r", - "ass" - ], - [ - "T", - "ake" - ], - [ - "▁cím", - "ű" - ], - [ - "▁Con", - "vention" - ], - [ - "at", - "ge" - ], - [ - "se", - "ed" - ], - [ - "see", - "d" - ], - [ - "s", - "eed" - ], - [ - "▁D", - "í" - ], - [ - "▁Sp", - "ider" - ], - [ - "ah", - "oo" - ], - [ - "aho", - "o" - ], - [ - "▁име", - "ет" - ], - [ - "ühr", - "t" - ], - [ - "üh", - "rt" - ], - [ - "▁по", - "писа" - ], - [ - "▁C", - "ot" - ], - [ - "▁Co", - "t" - ], - [ - "▁no", - "bles" - ], - [ - "▁noble", - "s" - ], - [ - "▁nob", - "les" - ], - [ - "RE", - "SS" - ], - [ - "RES", - "S" - ], - [ - "▁che", - "min" - ], - [ - "▁chem", - "in" - ], - [ - "▁gł", - "ówn" - ], - [ - "G", - "G" - ], - [ - "▁German", - "ia" - ], - [ - "▁Ger", - "mania" - ], - [ - "▁Germ", - "ania" - ], - [ - "▁Alexand", - "re" - ], - [ - "he", - "ns" - ], - [ - "hen", - "s" - ], - [ - "h", - "ens" - ], - [ - "sw", - "ift" - ], - [ - "oo", - "p" - ], - [ - "o", - "op" - ], - [ - "Sub", - "view" - ], - [ - "▁requ", - "iring" - ], - [ - "ęd", - "zy" - ], - [ - "ędz", - "y" - ], - [ - "▁f", - "ict" - ], - [ - "▁fi", - "ct" - ], - [ - "▁fic", - "t" - ], - [ - "▁Кон", - "стан" - ], - [ - "▁dé", - "put" - ], - [ - "▁dép", - "ut" - ], - [ - "▁surpr", - "ising" - ], - [ - "▁de", - "ix" - ], - [ - "▁dei", - "x" - ], - [ - "▁unter", - "schied" - ], - [ - "in", - "son" - ], - [ - "ins", - "on" - ], - [ - "▁Char", - "acter" - ], - [ - "▁", - "Character" - ], - [ - "▁g", - "estion" - ], - [ - "▁ges", - "tion" - ], - [ - "▁gest", - "ion" - ], - [ - "ch", - "us" - ], - [ - "c", - "hus" - ], - [ - "com", - "es" - ], - [ - "co", - "mes" - ], - [ - "come", - "s" - ], - [ - "▁n", - "eur" - ], - [ - "▁ne", - "ur" - ], - [ - "▁neu", - "r" - ], - [ - "▁", - "neur" - ], - [ - "▁ye", - "ux" - ], - [ - "ol", - "lar" - ], - [ - "oll", - "ar" - ], - [ - "▁par", - "ad" - ], - [ - "▁para", - "d" - ], - [ - "▁pa", - "rad" - ], - [ - "▁mag", - "giore" - ], - [ - "▁maggio", - "re" - ], - [ - "▁maggior", - "e" - ], - [ - "TR", - "AN" - ], - [ - "▁vo", - "tre" - ], - [ - "▁vot", - "re" - ], - [ - "▁des", - "cent" - ], - [ - "▁desc", - "ent" - ], - [ - "▁I", - "con" - ], - [ - "▁", - "Icon" - ], - [ - "▁Jud", - "ge" - ], - [ - "▁occup", - "ation" - ], - [ - "▁", - "occupation" - ], - [ - "ep", - "ing" - ], - [ - "e", - "ping" - ], - [ - "▁ton", - "gue" - ], - [ - "▁tong", - "ue" - ], - [ - "▁En", - "llaços" - ], - [ - "ru", - "f" - ], - [ - "r", - "uf" - ], - [ - "▁prote", - "in" - ], - [ - "▁prot", - "ein" - ], - [ - "▁vis", - "itors" - ], - [ - "▁visit", - "ors" - ], - [ - "▁visitor", - "s" - ], - [ - "ax", - "y" - ], - [ - "a", - "xy" - ], - [ - "es", - "ten" - ], - [ - "est", - "en" - ], - [ - "este", - "n" - ], - [ - "e", - "sten" - ], - [ - "bl", - "ica" - ], - [ - "blic", - "a" - ], - [ - "b", - "lica" - ], - [ - "h", - "w" - ], - [ - "▁spir", - "its" - ], - [ - "▁spirit", - "s" - ], - [ - "▁redu", - "ces" - ], - [ - "▁reduce", - "s" - ], - [ - "▁м", - "ен" - ], - [ - "▁ме", - "н" - ], - [ - "▁", - "мен" - ], - [ - "▁L", - "amb" - ], - [ - "▁La", - "mb" - ], - [ - "▁Lam", - "b" - ], - [ - "▁M", - "ine" - ], - [ - "▁Min", - "e" - ], - [ - "▁Mi", - "ne" - ], - [ - "▁ver", - "ified" - ], - [ - "▁B", - "aby" - ], - [ - "▁Ba", - "by" - ], - [ - "▁Bab", - "y" - ], - [ - "▁pr", - "ize" - ], - [ - "▁pri", - "ze" - ], - [ - "в", - "ър" - ], - [ - "▁rat", - "ings" - ], - [ - "▁rating", - "s" - ], - [ - "▁f", - "ore" - ], - [ - "▁for", - "e" - ], - [ - "▁fo", - "re" - ], - [ - "▁", - "fore" - ], - [ - "as", - "ha" - ], - [ - "ash", - "a" - ], - [ - "a", - "sha" - ], - [ - "ur", - "rence" - ], - [ - "urr", - "ence" - ], - [ - "▁int", - "ér" - ], - [ - "▁Ol", - "ímp" - ], - [ - "cr", - "a" - ], - [ - "c", - "ra" - ], - [ - "▁comput", - "ational" - ], - [ - "▁computation", - "al" - ], - [ - "ir", - "che" - ], - [ - "irc", - "he" - ], - [ - ".:", - " " - ], - [ - "▁illustr", - "ated" - ], - [ - "▁illustrate", - "d" - ], - [ - "▁Sh", - "are" - ], - [ - "▁house", - "holds" - ], - [ - "▁household", - "s" - ], - [ - "▁con", - "volution" - ], - [ - "oe", - "md" - ], - [ - "oem", - "d" - ], - [ - "▁zd", - "oby" - ], - [ - "▁zdob", - "y" - ], - [ - "cc", - "c" - ], - [ - "c", - "cc" - ], - [ - "▁quant", - "ities" - ], - [ - "Ch", - "e" - ], - [ - "C", - "he" - ], - [ - "Sh", - "ould" - ], - [ - "▁ge", - "nius" - ], - [ - "▁gen", - "ius" - ], - [ - "ad", - "j" - ], - [ - "a", - "dj" - ], - [ - "х", - "ва" - ], - [ - "Пе", - "тер" - ], - [ - "EM", - "A" - ], - [ - "E", - "MA" - ], - [ - "▁R", - "ights" - ], - [ - "▁Right", - "s" - ], - [ - "▁E", - "li" - ], - [ - "▁El", - "i" - ], - [ - "VA", - "R" - ], - [ - "V", - "AR" - ], - [ - "ш", - "ло" - ], - [ - "▁з", - "бір" - ], - [ - "ift", - "ung" - ], - [ - "▁cont", - "ributed" - ], - [ - "▁contrib", - "uted" - ], - [ - "▁contribu", - "ted" - ], - [ - "▁contribute", - "d" - ], - [ - "ze", - "f" - ], - [ - "z", - "ef" - ], - [ - "▁CH", - "AR" - ], - [ - "▁", - "CHAR" - ], - [ - "▁S", - "ib" - ], - [ - "▁Si", - "b" - ], - [ - "▁M", - "ant" - ], - [ - "▁Man", - "t" - ], - [ - "▁Ma", - "nt" - ], - [ - "▁свя", - "зи" - ], - [ - "▁java", - "fx" - ], - [ - "▁c", - "ependant" - ], - [ - "▁in", - "tu" - ], - [ - "▁int", - "u" - ], - [ - "▁т", - "вор" - ], - [ - "▁", - "Ó" - ], - [ - "gu", - "er" - ], - [ - "gue", - "r" - ], - [ - "g", - "uer" - ], - [ - "ra", - "do" - ], - [ - "rad", - "o" - ], - [ - "r", - "ado" - ], - [ - "▁Re", - "vol" - ], - [ - "▁Rev", - "ol" - ], - [ - "▁fé", - "min" - ], - [ - "▁Or", - "leans" - ], - [ - "▁p", - "oj" - ], - [ - "▁po", - "j" - ], - [ - "▁p", - "rez" - ], - [ - "▁pr", - "ez" - ], - [ - "▁pre", - "z" - ], - [ - "Te", - "x" - ], - [ - "T", - "ex" - ], - [ - "ou", - "wd" - ], - [ - "ouw", - "d" - ], - [ - "?", - "(" - ], - [ - "▁L", - "IM" - ], - [ - "▁LI", - "M" - ], - [ - "ist", - "ique" - ], - [ - "isti", - "que" - ], - [ - "es", - "ar" - ], - [ - "esa", - "r" - ], - [ - "▁he", - "ures" - ], - [ - "ic", - "ki" - ], - [ - "ick", - "i" - ], - [ - "i", - "cki" - ], - [ - "▁d", - "bo" - ], - [ - "▁db", - "o" - ], - [ - "▁", - "dbo" - ], - [ - "sk", - "ih" - ], - [ - "ski", - "h" - ], - [ - "s", - "kih" - ], - [ - "conf", - "irm" - ], - [ - "▁vil", - "ág" - ], - [ - "▁ci", - "utat" - ], - [ - "▁D", - "R" - ], - [ - "▁", - "DR" - ], - [ - "▁Haw", - "ai" - ], - [ - "ch", - "ed" - ], - [ - "che", - "d" - ], - [ - "c", - "hed" - ], - [ - "▁s", - "pher" - ], - [ - "▁sp", - "her" - ], - [ - "▁Art", - "ikel" - ], - [ - "▁Multi", - "ple" - ], - [ - "ci", - "u" - ], - [ - "c", - "iu" - ], - [ - "▁м", - "ы" - ], - [ - "▁", - "мы" - ], - [ - "▁lip", - "ca" - ], - [ - "](", - "/" - ], - [ - "]", - "(/" - ], - [ - "Str", - "ategy" - ], - [ - "▁Al", - "abama" - ], - [ - "SD", - "K" - ], - [ - "S", - "DK" - ], - [ - "UT", - "C" - ], - [ - "U", - "TC" - ], - [ - "__", - "." - ], - [ - "_", - "_." - ], - [ - "Arg", - "uments" - ], - [ - "Argument", - "s" - ], - [ - "▁set", - "ContentView" - ], - [ - "î", - "le" - ], - [ - "By", - "Val" - ], - [ - "▁J", - "VM" - ], - [ - "юще", - "го" - ], - [ - "▁Leon", - "ard" - ], - [ - "▁just", - "ify" - ], - [ - "це", - "м" - ], - [ - "ц", - "ем" - ], - [ - "▁n", - "ab" - ], - [ - "▁na", - "b" - ], - [ - "▁", - "nab" - ], - [ - "CCE", - "SS" - ], - [ - "C", - "CESS" - ], - [ - "▁hope", - "s" - ], - [ - "▁ho", - "pes" - ], - [ - "▁hop", - "es" - ], - [ - ")", - "&" - ], - [ - "se", - "ro" - ], - [ - "ser", - "o" - ], - [ - "s", - "ero" - ], - [ - "▁за", - "й" - ], - [ - "слі", - "д" - ], - [ - "▁R", - "ég" - ], - [ - "▁Ré", - "g" - ], - [ - "▁S", - "ang" - ], - [ - "▁San", - "g" - ], - [ - "▁Sa", - "ng" - ], - [ - "▁f", - "ung" - ], - [ - "▁fun", - "g" - ], - [ - "▁fu", - "ng" - ], - [ - "ba", - "ar" - ], - [ - "b", - "aar" - ], - [ - "▁coff", - "ee" - ], - [ - "ass", - "embly" - ], - [ - "▁В", - "ін" - ], - [ - "▁Ві", - "н" - ], - [ - "э", - "й" - ], - [ - "▁comp", - "rend" - ], - [ - "▁compr", - "end" - ], - [ - "fil", - "led" - ], - [ - "fill", - "ed" - ], - [ - "f", - "illed" - ], - [ - "р", - "д" - ], - [ - "od", - "ia" - ], - [ - "odi", - "a" - ], - [ - "o", - "dia" - ], - [ - "▁g", - "ens" - ], - [ - "▁ge", - "ns" - ], - [ - "▁gen", - "s" - ], - [ - "▁", - "gens" - ], - [ - "fl", - "uss" - ], - [ - "flu", - "ss" - ], - [ - "f", - "luss" - ], - [ - "Draw", - "able" - ], - [ - "▁sur", - "ve" - ], - [ - "▁surv", - "e" - ], - [ - "Set", - "up" - ], - [ - "▁n", - "ależ" - ], - [ - "▁conj", - "unto" - ], - [ - "▁Е", - "го" - ], - [ - "▁old", - "al" - ], - [ - "▁ol", - "dal" - ], - [ - "▁ver", - "bose" - ], - [ - "▁verb", - "ose" - ], - [ - "▁Elect", - "ric" - ], - [ - "▁H", - "arrison" - ], - [ - "▁Harr", - "ison" - ], - [ - "▁Harris", - "on" - ], - [ - "en", - "gen" - ], - [ - "eng", - "en" - ], - [ - "par", - "agraph" - ], - [ - "para", - "graph" - ], - [ - "▁n", - "ouvelles" - ], - [ - "▁nouve", - "lles" - ], - [ - "▁nouvelle", - "s" - ], - [ - "▁вре", - "ме" - ], - [ - "▁m", - "emor" - ], - [ - "▁me", - "mor" - ], - [ - "▁mem", - "or" - ], - [ - "▁mayo", - "ría" - ], - [ - "▁mayor", - "ía" - ], - [ - "са", - "д" - ], - [ - "▁bat", - "aille" - ], - [ - "▁bata", - "ille" - ], - [ - "▁therm", - "al" - ], - [ - "▁ther", - "mal" - ], - [ - "▁Хро", - "нологи" - ], - [ - "▁B", - "etter" - ], - [ - "▁Bet", - "ter" - ], - [ - "by", - "e" - ], - [ - "b", - "ye" - ], - [ - "▁теа", - "тра" - ], - [ - "ro", - "e" - ], - [ - "r", - "oe" - ], - [ - "▁se", - "gle" - ], - [ - "▁seg", - "le" - ], - [ - "ro", - "tt" - ], - [ - "rot", - "t" - ], - [ - "r", - "ott" - ], - [ - "▁opin", - "ions" - ], - [ - "▁opinion", - "s" - ], - [ - ")}", - ")" - ], - [ - ")", - "})" - ], - [ - "üh", - "le" - ], - [ - "ühl", - "e" - ], - [ - "▁G", - "ün" - ], - [ - "▁Gü", - "n" - ], - [ - "▁", - "Щ" - ], - [ - "b", - "ól" - ], - [ - "▁Lar", - "ry" - ], - [ - "▁so", - "lic" - ], - [ - "▁sol", - "ic" - ], - [ - "▁z", - "war" - ], - [ - "▁zw", - "ar" - ], - [ - "▁Car", - "oline" - ], - [ - "▁Carol", - "ine" - ], - [ - "▁Reich", - "s" - ], - [ - "Ext", - "ensions" - ], - [ - "Extension", - "s" - ], - [ - "mi", - "gr" - ], - [ - "m", - "igr" - ], - [ - ":", - "@" - ], - [ - "▁en", - "umerate" - ], - [ - "▁enumer", - "ate" - ], - [ - "▁", - "enumerate" - ], - [ - "▁eigen", - "en" - ], - [ - "▁eig", - "enen" - ], - [ - "▁expl", - "ore" - ], - [ - "▁explo", - "re" - ], - [ - "ém", - "u" - ], - [ - "é", - "mu" - ], - [ - "▁g", - "at" - ], - [ - "▁ga", - "t" - ], - [ - "▁", - "gat" - ], - [ - "▁imper", - "ial" - ], - [ - "▁Us", - "ually" - ], - [ - "▁t", - "ud" - ], - [ - "▁tu", - "d" - ], - [ - "▁у", - "кра" - ], - [ - "hi", - "m" - ], - [ - "h", - "im" - ], - [ - "▁cor", - "ners" - ], - [ - "▁corner", - "s" - ], - [ - "▁corn", - "ers" - ], - [ - "▁S", - "ER" - ], - [ - "▁SE", - "R" - ], - [ - "▁", - "SER" - ], - [ - "▁interpre", - "ter" - ], - [ - "▁interpret", - "er" - ], - [ - "▁I", - "ce" - ], - [ - "▁amount", - "s" - ], - [ - "▁P", - "ala" - ], - [ - "▁Pa", - "la" - ], - [ - "▁Pal", - "a" - ], - [ - "▁t", - "inha" - ], - [ - "▁tin", - "ha" - ], - [ - "vo", - "le" - ], - [ - "vol", - "e" - ], - [ - "v", - "ole" - ], - [ - "▁g", - "le" - ], - [ - "▁gl", - "e" - ], - [ - "▁", - "gle" - ], - [ - "uc", - "ci" - ], - [ - "▁sie", - "he" - ], - [ - "Jac", - "k" - ], - [ - "J", - "ack" - ], - [ - "▁w", - "oll" - ], - [ - "▁wo", - "ll" - ], - [ - "▁wol", - "l" - ], - [ - "▁e", - "lder" - ], - [ - "▁el", - "der" - ], - [ - "▁ко", - "раб" - ], - [ - "▁eng", - "ag" - ], - [ - "▁La", - "urent" - ], - [ - "▁Laur", - "ent" - ], - [ - "▁Lau", - "rent" - ], - [ - "▁ach", - "iev" - ], - [ - "ist", - "ik" - ], - [ - "isti", - "k" - ], - [ - "ar", - "ct" - ], - [ - "arc", - "t" - ], - [ - "тно", - "го" - ], - [ - "т", - "ного" - ], - [ - "▁g", - "ir" - ], - [ - "▁gi", - "r" - ], - [ - "▁Sing", - "h" - ], - [ - "▁Sin", - "gh" - ], - [ - "math", - "op" - ], - [ - "US", - "A" - ], - [ - "U", - "SA" - ], - [ - "▁Pro", - "jekt" - ], - [ - "▁de", - "be" - ], - [ - "▁deb", - "e" - ], - [ - "richt", - "ung" - ], - [ - "r", - "ichtung" - ], - [ - "▁T", - "sch" - ], - [ - "▁Ts", - "ch" - ], - [ - "um", - "inate" - ], - [ - "umin", - "ate" - ], - [ - "▁s", - "zó" - ], - [ - "▁sz", - "ó" - ], - [ - "ly", - "ph" - ], - [ - "зи", - "дент" - ], - [ - "зиден", - "т" - ], - [ - "▁lim", - "itations" - ], - [ - "▁limit", - "ations" - ], - [ - "▁limitation", - "s" - ], - [ - "юще", - "й" - ], - [ - "▁b", - "ila" - ], - [ - "▁bi", - "la" - ], - [ - "▁bil", - "a" - ], - [ - "P", - "ush" - ], - [ - "▁off", - "ering" - ], - [ - "▁offer", - "ing" - ], - [ - "ien", - "nes" - ], - [ - "ienne", - "s" - ], - [ - "ienn", - "es" - ], - [ - "i", - "ennes" - ], - [ - "Fr", - "i" - ], - [ - "F", - "ri" - ], - [ - "▁post", - "gresql" - ], - [ - "▁", - "postgresql" - ], - [ - "▁Tom", - "my" - ], - [ - "▁partic", - "olare" - ], - [ - "▁stolet", - "í" - ], - [ - "▁ar", - "rib" - ], - [ - "▁arr", - "ib" - ], - [ - "▁E", - "va" - ], - [ - "▁Ev", - "a" - ], - [ - "sch", - "ool" - ], - [ - "▁v", - "endor" - ], - [ - "▁ven", - "dor" - ], - [ - "▁vend", - "or" - ], - [ - "▁", - "vendor" - ], - [ - "▁D", - "allas" - ], - [ - "▁Dal", - "las" - ], - [ - "▁pro", - "long" - ], - [ - "CRE", - "ATE" - ], - [ - "C", - "REATE" - ], - [ - "▁suiv", - "ante" - ], - [ - "STAT", - "US" - ], - [ - "l", - "à" - ], - [ - "k", - "v" - ], - [ - "▁h", - "äufig" - ], - [ - "▁Agr", - "icult" - ], - [ - "▁h", - "uit" - ], - [ - "▁hu", - "it" - ], - [ - "▁in", - "oltre" - ], - [ - "▁L", - "loyd" - ], - [ - "▁францу", - "з" - ], - [ - "▁вы", - "пол" - ], - [ - "▁faith", - "ful" - ], - [ - "▁В", - "ар" - ], - [ - "▁Ва", - "р" - ], - [ - "▁ver", - "l" - ], - [ - "▁ve", - "rl" - ], - [ - "▁ju", - "ego" - ], - [ - "▁Резу", - "лтати" - ], - [ - ",", - "...," - ], - [ - "▁implicit", - "ly" - ], - [ - "ir", - "ks" - ], - [ - "irk", - "s" - ], - [ - "Cal", - "cul" - ], - [ - "▁m", - "eses" - ], - [ - "▁mes", - "es" - ], - [ - "om", - "ed" - ], - [ - "ome", - "d" - ], - [ - "o", - "med" - ], - [ - "▁p", - "ak" - ], - [ - "▁pa", - "k" - ], - [ - "he", - "rit" - ], - [ - "her", - "it" - ], - [ - "▁opt", - "ical" - ], - [ - "▁І", - "сторія" - ], - [ - "ve", - "is" - ], - [ - "▁capital", - "e" - ], - [ - "▁capit", - "ale" - ], - [ - "place", - "holder" - ], - [ - "int", - "rag" - ], - [ - "▁At", - "las" - ], - [ - "▁Atl", - "as" - ], - [ - "▁", - "Atlas" - ], - [ - ")]", - ";" - ], - [ - ")", - "];" - ], - [ - "ic", - "ons" - ], - [ - "ico", - "ns" - ], - [ - "icon", - "s" - ], - [ - "i", - "cons" - ], - [ - "▁B", - "ent" - ], - [ - "▁Be", - "nt" - ], - [ - "▁Ben", - "t" - ], - [ - "▁W", - "idget" - ], - [ - "▁", - "Widget" - ], - [ - "▁vol", - "unt" - ], - [ - "av", - "o" - ], - [ - "a", - "vo" - ], - [ - "ég", - "r" - ], - [ - "é", - "gr" - ], - [ - "li", - "ge" - ], - [ - "lig", - "e" - ], - [ - "l", - "ige" - ], - [ - "▁N", - "AME" - ], - [ - "▁NA", - "ME" - ], - [ - "▁", - "NAME" - ], - [ - "▁ab", - "stra" - ], - [ - "▁abs", - "tra" - ], - [ - "▁f", - "ís" - ], - [ - "▁B", - "rowser" - ], - [ - "▁Brow", - "ser" - ], - [ - "▁", - "Browser" - ], - [ - "▁b", - "ush" - ], - [ - "▁bu", - "sh" - ], - [ - "▁bus", - "h" - ], - [ - "ha", - "ll" - ], - [ - "hal", - "l" - ], - [ - "h", - "all" - ], - [ - "▁cloud", - "s" - ], - [ - "▁S", - "UB" - ], - [ - "▁SU", - "B" - ], - [ - "▁", - "SUB" - ], - [ - "▁t", - "andis" - ], - [ - "▁tan", - "dis" - ], - [ - "▁Common", - "wealth" - ], - [ - "та", - "я" - ], - [ - "▁exha", - "ust" - ], - [ - "________", - "________" - ], - [ - "▁Stat", - "istics" - ], - [ - "▁Statist", - "ics" - ], - [ - "▁Relig", - "ion" - ], - [ - "▁Mu", - "ham" - ], - [ - "ual", - "s" - ], - [ - "ua", - "ls" - ], - [ - "u", - "als" - ], - [ - "go", - "to" - ], - [ - "got", - "o" - ], - [ - "g", - "oto" - ], - [ - "Dig", - "ital" - ], - [ - "Famil", - "y" - ], - [ - "▁B", - "un" - ], - [ - "▁Bu", - "n" - ], - [ - "let", - "in" - ], - [ - "Man", - "agement" - ], - [ - "▁cap", - "abilities" - ], - [ - "an", - "nten" - ], - [ - "ann", - "ten" - ], - [ - "annt", - "en" - ], - [ - "annte", - "n" - ], - [ - "▁се", - "бе" - ], - [ - "▁st", - "ays" - ], - [ - "▁stay", - "s" - ], - [ - "▁sta", - "ys" - ], - [ - "kt", - "er" - ], - [ - "kte", - "r" - ], - [ - "k", - "ter" - ], - [ - "▁d", - "ost" - ], - [ - "▁do", - "st" - ], - [ - "▁dos", - "t" - ], - [ - "▁Т", - "ре" - ], - [ - "ло", - "вич" - ], - [ - "лови", - "ч" - ], - [ - "л", - "ович" - ], - [ - "▁d", - "ying" - ], - [ - "▁dy", - "ing" - ], - [ - "se", - "ctions" - ], - [ - "section", - "s" - ], - [ - "sect", - "ions" - ], - [ - "án", - "os" - ], - [ - "á", - "nos" - ], - [ - "▁app", - "arten" - ], - [ - "▁appar", - "ten" - ], - [ - "▁appart", - "en" - ], - [ - "▁zo", - "als" - ], - [ - "▁dr", - "essed" - ], - [ - "▁dress", - "ed" - ], - [ - "▁com", - "press" - ], - [ - "▁comp", - "ress" - ], - [ - "▁compr", - "ess" - ], - [ - "ń", - "ska" - ], - [ - "▁sierp", - "nia" - ], - [ - "▁ти", - "ту" - ], - [ - "diction", - "ary" - ], - [ - "d", - "ictionary" - ], - [ - "▁r", - "abb" - ], - [ - "▁ra", - "bb" - ], - [ - "▁vé", - "rit" - ], - [ - "В", - "о" - ], - [ - "▁sing", - "leton" - ], - [ - "▁single", - "ton" - ], - [ - "▁v", - "ital" - ], - [ - "▁vi", - "tal" - ], - [ - "▁vit", - "al" - ], - [ - "▁vita", - "l" - ], - [ - "Ref", - "resh" - ], - [ - "ме", - "ль" - ], - [ - "м", - "ель" - ], - [ - "▁Z", - "h" - ], - [ - "▁Af", - "ghan" - ], - [ - "in", - "kel" - ], - [ - "ink", - "el" - ], - [ - "aa", - "aa" - ], - [ - "▁particip", - "ants" - ], - [ - "ar", - "in" - ], - [ - "ari", - "n" - ], - [ - "a", - "rin" - ], - [ - "▁M", - "old" - ], - [ - "▁Mo", - "ld" - ], - [ - "▁Mol", - "d" - ], - [ - "▁prim", - "eros" - ], - [ - "▁prime", - "ros" - ], - [ - "▁primer", - "os" - ], - [ - "▁ра", - "н" - ], - [ - "▁р", - "ан" - ], - [ - "▁", - "ран" - ], - [ - "▁А", - "мери" - ], - [ - "▁restaur", - "ant" - ], - [ - "év", - "el" - ], - [ - "é", - "vel" - ], - [ - "▁S", - "L" - ], - [ - "▁", - "SL" - ], - [ - "▁R", - "ey" - ], - [ - "▁Re", - "y" - ], - [ - "ch", - "as" - ], - [ - "cha", - "s" - ], - [ - "c", - "has" - ], - [ - "▁elect", - "rons" - ], - [ - "▁electron", - "s" - ], - [ - "▁electro", - "ns" - ], - [ - "▁Pitt", - "s" - ], - [ - "▁Pit", - "ts" - ], - [ - "▁J", - "ules" - ], - [ - "▁Jul", - "es" - ], - [ - "▁Ju", - "les" - ], - [ - "ма", - "й" - ], - [ - "en", - "ant" - ], - [ - "ena", - "nt" - ], - [ - "e", - "nant" - ], - [ - "-", - "}" - ], - [ - "ла", - "д" - ], - [ - "▁Мос", - "ква" - ], - [ - "▁Моск", - "ва" - ], - [ - "go", - "m" - ], - [ - "g", - "om" - ], - [ - "▁Fern", - "ández" - ], - [ - "fun", - "d" - ], - [ - "fu", - "nd" - ], - [ - "f", - "und" - ], - [ - "int", - "erno" - ], - [ - "inter", - "no" - ], - [ - "intern", - "o" - ], - [ - "▁M", - "ari" - ], - [ - "▁Mar", - "i" - ], - [ - "▁Ma", - "ri" - ], - [ - "▁r", - "ius" - ], - [ - "▁ri", - "us" - ], - [ - "▁Pro", - "zent" - ], - [ - "ст", - "рі" - ], - [ - "стр", - "і" - ], - [ - "▁в", - "нут" - ], - [ - "ant", - "erie" - ], - [ - "ante", - "rie" - ], - [ - "anter", - "ie" - ], - [ - "▁п", - "рис" - ], - [ - "▁при", - "с" - ], - [ - "▁пр", - "ис" - ], - [ - "▁о", - "бы" - ], - [ - "▁об", - "ы" - ], - [ - "▁M", - "arina" - ], - [ - "▁Mar", - "ina" - ], - [ - "▁Mari", - "na" - ], - [ - "▁occ", - "urrence" - ], - [ - "▁occur", - "rence" - ], - [ - "▁occurr", - "ence" - ], - [ - "ri", - "kt" - ], - [ - "rik", - "t" - ], - [ - "r", - "ikt" - ], - [ - "▁фи", - "зи" - ], - [ - "▁sch", - "wer" - ], - [ - "▁schw", - "er" - ], - [ - "▁Г", - "ре" - ], - [ - "Re", - "set" - ], - [ - "Res", - "et" - ], - [ - "▁much", - "o" - ], - [ - "▁mu", - "cho" - ], - [ - "an", - "dr" - ], - [ - "and", - "r" - ], - [ - "▁W", - "ies" - ], - [ - "▁Wi", - "es" - ], - [ - "▁Wie", - "s" - ], - [ - "▁Ke", - "ith" - ], - [ - "▁Jul", - "ian" - ], - [ - "▁Juli", - "an" - ], - [ - "▁Julia", - "n" - ], - [ - "▁c", - "ole" - ], - [ - "▁col", - "e" - ], - [ - "▁co", - "le" - ], - [ - "▁", - "cole" - ], - [ - "ci", - "endo" - ], - [ - "c", - "iendo" - ], - [ - "▁Cont", - "empor" - ], - [ - "et", - "ry" - ], - [ - "etr", - "y" - ], - [ - "e", - "try" - ], - [ - "el", - "ian" - ], - [ - "eli", - "an" - ], - [ - "elia", - "n" - ], - [ - "ги", - "и" - ], - [ - "▁го", - "ло" - ], - [ - "▁г", - "оло" - ], - [ - "▁d", - "él" - ], - [ - "▁dé", - "l" - ], - [ - "▁de", - "cent" - ], - [ - "▁dec", - "ent" - ], - [ - "▁dece", - "nt" - ], - [ - "Р", - "СР" - ], - [ - "▁sze", - "ptember" - ], - [ - "ме", - "ст" - ], - [ - "cast", - "le" - ], - [ - "▁держа", - "в" - ], - [ - "}\"", - ")" - ], - [ - "}", - "\")" - ], - [ - "▁ASC", - "II" - ], - [ - "▁G", - "len" - ], - [ - "▁Gl", - "en" - ], - [ - "itzer", - "land" - ], - [ - "T", - "oggle" - ], - [ - "▁trad", - "icional" - ], - [ - "▁P", - "lat" - ], - [ - "▁Pl", - "at" - ], - [ - "▁Pla", - "t" - ], - [ - "ve", - "e" - ], - [ - "v", - "ee" - ], - [ - "ab", - "gerufen" - ], - [ - "(", - "|" - ], - [ - "CL", - "I" - ], - [ - "C", - "LI" - ], - [ - "}}", - "$," - ], - [ - "}}$", - "," - ], - [ - "}", - "}$," - ], - [ - "▁Bow", - "l" - ], - [ - "▁M", - "ale" - ], - [ - "▁Ma", - "le" - ], - [ - "▁Mal", - "e" - ], - [ - "▁B", - "res" - ], - [ - "▁Br", - "es" - ], - [ - "▁Bre", - "s" - ], - [ - "▁п", - "си" - ], - [ - "▁Ch", - "allenge" - ], - [ - "z", - "ó" - ], - [ - "▁pro", - "jekt" - ], - [ - "▁neg", - "oti" - ], - [ - "ab", - "ove" - ], - [ - "a", - "bove" - ], - [ - "▁пери", - "о" - ], - [ - "▁long", - "est" - ], - [ - "▁lon", - "gest" - ], - [ - "auth", - "entic" - ], - [ - "▁tr", - "adu" - ], - [ - "▁tra", - "du" - ], - [ - "▁trad", - "u" - ], - [ - "▁mujer", - "es" - ], - [ - "▁And", - "re" - ], - [ - "▁ha", - "dn" - ], - [ - "▁had", - "n" - ], - [ - "▁Sch", - "ule" - ], - [ - "▁Schul", - "e" - ], - [ - "ode", - "l" - ], - [ - "od", - "el" - ], - [ - "o", - "del" - ], - [ - "ble", - "d" - ], - [ - "bl", - "ed" - ], - [ - "b", - "led" - ], - [ - "▁T", - "rade" - ], - [ - "▁Tr", - "ade" - ], - [ - "▁Tra", - "de" - ], - [ - "▁Trad", - "e" - ], - [ - "▁m", - "obil" - ], - [ - "▁mo", - "bil" - ], - [ - "▁mob", - "il" - ], - [ - "▁alg", - "unas" - ], - [ - "▁L", - "ak" - ], - [ - "▁La", - "k" - ], - [ - "▁Connect", - "icut" - ], - [ - "▁al", - "co" - ], - [ - "▁alc", - "o" - ], - [ - "▁Sel", - "bst" - ], - [ - "i", - "ł" - ], - [ - "▁a", - "lb" - ], - [ - "▁al", - "b" - ], - [ - "ouver", - "neur" - ], - [ - "ouvern", - "eur" - ], - [ - "▁s", - "r" - ], - [ - "▁", - "sr" - ], - [ - "▁v", - "ba" - ], - [ - "▁vb", - "a" - ], - [ - "lo", - "ped" - ], - [ - "lop", - "ed" - ], - [ - "l", - "oped" - ], - [ - "▁Par", - "tei" - ], - [ - "▁Part", - "ei" - ], - [ - "▁Parte", - "i" - ], - [ - "ua", - "te" - ], - [ - "u", - "ate" - ], - [ - "▁Auth", - "entication" - ], - [ - "▁", - "Authentication" - ], - [ - "be", - "i" - ], - [ - "b", - "ei" - ], - [ - "}}", - "." - ], - [ - "}", - "}." - ], - [ - "▁kon", - "nten" - ], - [ - "▁konn", - "ten" - ], - [ - "▁konnte", - "n" - ], - [ - "▁до", - "по" - ], - [ - "▁h", - "yd" - ], - [ - "▁hy", - "d" - ], - [ - "Off", - "ice" - ], - [ - "d", - "onnées" - ], - [ - "▁C", - "leveland" - ], - [ - "ri", - "ta" - ], - [ - "rit", - "a" - ], - [ - "r", - "ita" - ], - [ - "ío", - "s" - ], - [ - "í", - "os" - ], - [ - "▁вы", - "ше" - ], - [ - "▁Ro", - "berts" - ], - [ - "▁Robert", - "s" - ], - [ - "▁é", - "lections" - ], - [ - "▁élect", - "ions" - ], - [ - "▁'", - "')" - ], - [ - "▁''", - ")" - ], - [ - "▁publish", - "ing" - ], - [ - "▁b", - "apt" - ], - [ - "▁ba", - "pt" - ], - [ - "<>", - "();" - ], - [ - "<", - ">();" - ], - [ - "miss", - "ing" - ], - [ - "mis", - "sing" - ], - [ - "рова", - "но" - ], - [ - "рован", - "о" - ], - [ - "р", - "овано" - ], - [ - "▁ho", - "using" - ], - [ - "▁hous", - "ing" - ], - [ - "▁in", - "ference" - ], - [ - "▁infer", - "ence" - ], - [ - "▁Rena", - "issance" - ], - [ - "▁r", - "èg" - ], - [ - "▁Ste", - "ph" - ], - [ - "▁Step", - "h" - ], - [ - "CE", - "S" - ], - [ - "C", - "ES" - ], - [ - "ER", - "E" - ], - [ - "E", - "RE" - ], - [ - "ке", - "т" - ], - [ - "к", - "ет" - ], - [ - "O", - "U" - ], - [ - "▁group", - "ing" - ], - [ - "ver", - "kehr" - ], - [ - "ji", - "h" - ], - [ - "j", - "ih" - ], - [ - "ag", - "li" - ], - [ - "▁mil", - "k" - ], - [ - "la", - "it" - ], - [ - "l", - "ait" - ], - [ - "St", - "age" - ], - [ - "▁by", - "ly" - ], - [ - "▁byl", - "y" - ], - [ - "▁wood", - "en" - ], - [ - "▁wo", - "oden" - ], - [ - "ke", - "ley" - ], - [ - "kel", - "ey" - ], - [ - "kele", - "y" - ], - [ - "et", - "ra" - ], - [ - "etr", - "a" - ], - [ - "e", - "tra" - ], - [ - "▁P", - "eg" - ], - [ - "▁Pe", - "g" - ], - [ - "▁don", - "né" - ], - [ - "▁donn", - "é" - ], - [ - "ad", - "al" - ], - [ - "ada", - "l" - ], - [ - "a", - "dal" - ], - [ - "sequ", - "ently" - ], - [ - "▁ins", - "besondere" - ], - [ - "EL", - "D" - ], - [ - "E", - "LD" - ], - [ - "▁M", - "am" - ], - [ - "▁Ma", - "m" - ], - [ - "▁vol", - "te" - ], - [ - "▁volt", - "e" - ], - [ - "▁pro", - "spect" - ], - [ - "▁pros", - "pect" - ], - [ - "но", - "ве" - ], - [ - "нов", - "е" - ], - [ - "н", - "ове" - ], - [ - "▁den", - "oted" - ], - [ - "▁denote", - "d" - ], - [ - "▁over", - "lay" - ], - [ - "Per", - "mission" - ], - [ - "Perm", - "ission" - ], - [ - "ee", - "n" - ], - [ - "e", - "en" - ], - [ - "▁E", - "M" - ], - [ - "▁", - "EM" - ], - [ - "▁u", - "z" - ], - [ - "▁", - "uz" - ], - [ - "M", - "c" - ], - [ - "ol", - "it" - ], - [ - "oli", - "t" - ], - [ - "o", - "lit" - ], - [ - "▁ser", - "vi" - ], - [ - "▁serv", - "i" - ], - [ - "▁He", - "idel" - ], - [ - "▁Wien", - "er" - ], - [ - "▁Wi", - "ener" - ], - [ - "▁Wie", - "ner" - ], - [ - "▁il", - "legal" - ], - [ - "▁predict", - "ions" - ], - [ - "▁prediction", - "s" - ], - [ - "▁go", - "og" - ], - [ - "ho", - "n" - ], - [ - "h", - "on" - ], - [ - "▁Cin", - "ema" - ], - [ - "▁ре", - "волю" - ], - [ - "▁R", - "ule" - ], - [ - "▁Ru", - "le" - ], - [ - "▁", - "Rule" - ], - [ - "wo", - "d" - ], - [ - "w", - "od" - ], - [ - "▁rad", - "iation" - ], - [ - "▁radi", - "ation" - ], - [ - "o", - "ł" - ], - [ - "ово", - "ї" - ], - [ - "▁Per", - "form" - ], - [ - "▁prison", - "er" - ], - [ - "▁a", - "met" - ], - [ - "▁am", - "et" - ], - [ - "▁fig", - "ura" - ], - [ - "▁figur", - "a" - ], - [ - "▁Comm", - "ander" - ], - [ - "▁Command", - "er" - ], - [ - "▁о", - "фициаль" - ], - [ - "▁t", - "rov" - ], - [ - "▁tr", - "ov" - ], - [ - "▁tro", - "v" - ], - [ - "▁a", - "cted" - ], - [ - "▁act", - "ed" - ], - [ - "▁ac", - "ted" - ], - [ - "▁work", - "flow" - ], - [ - "▁Республи", - "ки" - ], - [ - "▁guid", - "ance" - ], - [ - "▁м", - "ене" - ], - [ - "▁ме", - "не" - ], - [ - "▁мен", - "е" - ], - [ - "▁", - "мене" - ], - [ - "N", - "ational" - ], - [ - "▁K", - "el" - ], - [ - "▁Ke", - "l" - ], - [ - "web", - "pack" - ], - [ - "про", - "стра" - ], - [ - "▁llam", - "ado" - ], - [ - "al", - "og" - ], - [ - "alo", - "g" - ], - [ - "a", - "log" - ], - [ - "ter", - "ra" - ], - [ - "ix", - "en" - ], - [ - "le", - "graph" - ], - [ - "leg", - "raph" - ], - [ - "ä", - "ischen" - ], - [ - "▁teach", - "ers" - ], - [ - "▁teacher", - "s" - ], - [ - "ud", - "en" - ], - [ - "ude", - "n" - ], - [ - "u", - "den" - ], - [ - "▁o", - "gså" - ], - [ - "pos", - "sible" - ], - [ - "poss", - "ible" - ], - [ - "▁S", - "oul" - ], - [ - "▁So", - "ul" - ], - [ - "▁Sou", - "l" - ], - [ - "▁Ge", - "ography" - ], - [ - "▁за", - "да" - ], - [ - "hi", - "t" - ], - [ - "h", - "it" - ], - [ - "▁an", - "ger" - ], - [ - "▁ang", - "er" - ], - [ - "▁ange", - "r" - ], - [ - "▁", - "anger" - ], - [ - "▁rem", - "porte" - ], - [ - "▁remp", - "orte" - ], - [ - "Po", - "d" - ], - [ - "P", - "od" - ], - [ - "ч", - "ке" - ], - [ - "▁a", - "ria" - ], - [ - "▁ar", - "ia" - ], - [ - "▁", - "aria" - ], - [ - "▁A", - "stronom" - ], - [ - "ch", - "apter" - ], - [ - "▁f", - "ork" - ], - [ - "▁for", - "k" - ], - [ - "▁Cu", - "ando" - ], - [ - "men", - "se" - ], - [ - "m", - "ense" - ], - [ - "▁Christ", - "ians" - ], - [ - "▁Christian", - "s" - ], - [ - "g", - "c" - ], - [ - "▁#", - "(" - ], - [ - "Or", - "gan" - ], - [ - "▁ste", - "ady" - ], - [ - "▁stead", - "y" - ], - [ - "ps", - "e" - ], - [ - "p", - "se" - ], - [ - "жи", - "ть" - ], - [ - "ig", - "nes" - ], - [ - "ign", - "es" - ], - [ - "igne", - "s" - ], - [ - "ater", - "ra" - ], - [ - "a", - "terra" - ], - [ - "mo", - "vie" - ], - [ - "mov", - "ie" - ], - [ - "m", - "ovie" - ], - [ - "pos", - "ta" - ], - [ - "po", - "sta" - ], - [ - "post", - "a" - ], - [ - "p", - "osta" - ], - [ - "ra", - "ste" - ], - [ - "ras", - "te" - ], - [ - "r", - "aste" - ], - [ - "▁Res", - "source" - ], - [ - "▁Ress", - "ource" - ], - [ - "▁Pa", - "ís" - ], - [ - "▁(", - ");" - ], - [ - "▁()", - ";" - ], - [ - "▁", - "();" - ], - [ - "▁pen", - "alty" - ], - [ - "т", - "т" - ], - [ - "▁tras", - "fer" - ], - [ - "cent", - "ury" - ], - [ - "▁clean", - "er" - ], - [ - "sel", - "enium" - ], - [ - "s", - "elenium" - ], - [ - "ort", - "heast" - ], - [ - "orth", - "east" - ], - [ - "xi", - "c" - ], - [ - "x", - "ic" - ], - [ - "лі", - "ї" - ], - [ - "л", - "ії" - ], - [ - "▁ingles", - "e" - ], - [ - "▁T", - "ang" - ], - [ - "▁Ta", - "ng" - ], - [ - "▁Tan", - "g" - ], - [ - "▁g", - "ods" - ], - [ - "▁go", - "ds" - ], - [ - "▁god", - "s" - ], - [ - "fr", - "ent" - ], - [ - "fre", - "nt" - ], - [ - "f", - "rent" - ], - [ - "ci", - "ente" - ], - [ - "cient", - "e" - ], - [ - "c", - "iente" - ], - [ - "st", - "arts" - ], - [ - "start", - "s" - ], - [ - "star", - "ts" - ], - [ - "▁mus", - "ica" - ], - [ - "▁music", - "a" - ], - [ - "ymnas", - "ium" - ], - [ - "--", - "--+" - ], - [ - "----", - "+" - ], - [ - "---", - "-+" - ], - [ - "-", - "---+" - ], - [ - "▁ter", - "rest" - ], - [ - "▁terre", - "st" - ], - [ - "▁retr", - "ieved" - ], - [ - "▁retrieve", - "d" - ], - [ - "ia", - "re" - ], - [ - "iar", - "e" - ], - [ - "i", - "are" - ], - [ - "un", - "ning" - ], - [ - "unn", - "ing" - ], - [ - "▁Mar", - "cus" - ], - [ - "▁Marc", - "us" - ], - [ - "▁prom", - "ote" - ], - [ - "war", - "ning" - ], - [ - "warn", - "ing" - ], - [ - "w", - "arning" - ], - [ - "ты", - "й" - ], - [ - "т", - "ый" - ], - [ - "})", - "$," - ], - [ - "})$", - "," - ], - [ - "}", - ")$," - ], - [ - "Trans", - "port" - ], - [ - "▁re", - "son" - ], - [ - "▁res", - "on" - ], - [ - "▁C", - "lo" - ], - [ - "▁Cl", - "o" - ], - [ - "▁e", - "rm" - ], - [ - "▁er", - "m" - ], - [ - "▁", - "erm" - ], - [ - "▁elimin", - "ate" - ], - [ - "▁elim", - "inate" - ], - [ - "he", - "imer" - ], - [ - "heim", - "er" - ], - [ - "▁s", - "aves" - ], - [ - "▁sa", - "ves" - ], - [ - "▁sav", - "es" - ], - [ - "▁save", - "s" - ], - [ - "▁pr", - "ayer" - ], - [ - "▁pra", - "yer" - ], - [ - "▁pray", - "er" - ], - [ - "Class", - "es" - ], - [ - "Ex", - "press" - ], - [ - "Exp", - "ress" - ], - [ - "Expr", - "ess" - ], - [ - "▁Akadem", - "ie" - ], - [ - "El", - "se" - ], - [ - "Tu", - "rn" - ], - [ - "T", - "urn" - ], - [ - "▁ik", - "ke" - ], - [ - "▁re", - "i" - ], - [ - "▁r", - "ei" - ], - [ - "▁", - "rei" - ], - [ - "▁di", - "rett" - ], - [ - "▁dire", - "tt" - ], - [ - "▁dir", - "ett" - ], - [ - "▁R", - "ost" - ], - [ - "▁Ro", - "st" - ], - [ - "▁Ros", - "t" - ], - [ - "▁P", - "apa" - ], - [ - "▁Pa", - "pa" - ], - [ - "▁Pap", - "a" - ], - [ - "▁j", - "sf" - ], - [ - "▁js", - "f" - ], - [ - "ле", - "нием" - ], - [ - "ление", - "м" - ], - [ - "▁T", - "ul" - ], - [ - "▁Tu", - "l" - ], - [ - "▁Z", - "ak" - ], - [ - "▁Za", - "k" - ], - [ - "▁niem", - "ieck" - ], - [ - "T", - "w" - ], - [ - "am", - "our" - ], - [ - "amo", - "ur" - ], - [ - "ne", - "sted" - ], - [ - "nes", - "ted" - ], - [ - "nest", - "ed" - ], - [ - "n", - "ested" - ], - [ - "pp", - "ets" - ], - [ - "ppe", - "ts" - ], - [ - "ppet", - "s" - ], - [ - "ш", - "п" - ], - [ - "di", - "t" - ], - [ - "d", - "it" - ], - [ - "зе", - "н" - ], - [ - "з", - "ен" - ], - [ - "zy", - "ma" - ], - [ - "zym", - "a" - ], - [ - "hr", - "te" - ], - [ - "Constra", - "ints" - ], - [ - "Constraint", - "s" - ], - [ - "▁own", - "ership" - ], - [ - "▁owner", - "ship" - ], - [ - "Ar", - "m" - ], - [ - "A", - "rm" - ], - [ - "▁cons", - "umption" - ], - [ - "▁consum", - "ption" - ], - [ - "▁f", - "et" - ], - [ - "▁fe", - "t" - ], - [ - "iv", - "ari" - ], - [ - "iva", - "ri" - ], - [ - "i", - "vari" - ], - [ - "ch", - "rom" - ], - [ - "chr", - "om" - ], - [ - "set", - "Attribute" - ], - [ - "▁com", - "pose" - ], - [ - "▁comp", - "ose" - ], - [ - "▁compos", - "e" - ], - [ - "▁", - "compose" - ], - [ - "▁back", - "ing" - ], - [ - "▁P", - "az" - ], - [ - "▁Pa", - "z" - ], - [ - "▁s", - "cri" - ], - [ - "▁sc", - "ri" - ], - [ - "▁scr", - "i" - ], - [ - "▁", - "scri" - ], - [ - "▁Me", - "chan" - ], - [ - "▁Nor", - "way" - ], - [ - "▁J", - "up" - ], - [ - "▁Ju", - "p" - ], - [ - "▁m", - "ér" - ], - [ - "▁mé", - "r" - ], - [ - "▁administr", - "ator" - ], - [ - "▁c", - "abe" - ], - [ - "▁ca", - "be" - ], - [ - "▁cab", - "e" - ], - [ - "ival", - "ent" - ], - [ - "▁thr", - "one" - ], - [ - "▁thro", - "ne" - ], - [ - "▁d", - "ues" - ], - [ - "▁du", - "es" - ], - [ - "▁due", - "s" - ], - [ - "▁hum", - "or" - ], - [ - "▁hu", - "mor" - ], - [ - "▁A", - "dri" - ], - [ - "▁Ad", - "ri" - ], - [ - "▁ab", - "ort" - ], - [ - "ña", - "s" - ], - [ - "ñ", - "as" - ], - [ - "▁Ки", - "їв" - ], - [ - "j", - "ící" - ], - [ - "▁zwe", - "ite" - ], - [ - "▁zwei", - "te" - ], - [ - "▁do", - "ub" - ], - [ - "▁dou", - "b" - ], - [ - "er", - "shell" - ], - [ - "ers", - "hell" - ], - [ - "шо", - "й" - ], - [ - "▁F", - "am" - ], - [ - "▁Fa", - "m" - ], - [ - "å", - "k" - ], - [ - "▁twe", - "ede" - ], - [ - "▁twee", - "de" - ], - [ - "▁R", - "ib" - ], - [ - "▁Ri", - "b" - ], - [ - "▁f", - "ør" - ], - [ - "pc", - "ión" - ], - [ - "p", - "ción" - ], - [ - "in", - "ned" - ], - [ - "inn", - "ed" - ], - [ - "rv", - "m" - ], - [ - "r", - "vm" - ], - [ - "▁App", - "ar" - ], - [ - "▁Ap", - "par" - ], - [ - "▁D", - "j" - ], - [ - "▁S", - "hang" - ], - [ - "▁Sh", - "ang" - ], - [ - "Dist", - "ance" - ], - [ - "D", - "istance" - ], - [ - "▁d", - "awn" - ], - [ - "▁da", - "wn" - ], - [ - "▁", - "dawn" - ], - [ - "▁Mat", - "th" - ], - [ - "▁Matt", - "h" - ], - [ - "▁err", - "ichtet" - ], - [ - "ph", - "antom" - ], - [ - "phan", - "tom" - ], - [ - "▁re", - "leases" - ], - [ - "▁release", - "s" - ], - [ - "Recogn", - "izer" - ], - [ - "▁K", - "op" - ], - [ - "▁Ko", - "p" - ], - [ - "▁P", - "ul" - ], - [ - "▁Pu", - "l" - ], - [ - "u", - "é" - ], - [ - "na", - "ts" - ], - [ - "nat", - "s" - ], - [ - "n", - "ats" - ], - [ - "re", - "lax" - ], - [ - "rel", - "ax" - ], - [ - "▁f", - "led" - ], - [ - "▁fl", - "ed" - ], - [ - "▁fle", - "d" - ], - [ - "▁experience", - "s" - ], - [ - "▁experien", - "ces" - ], - [ - "ще", - "е" - ], - [ - "ме", - "ня" - ], - [ - "мен", - "я" - ], - [ - "▁пер", - "сона" - ], - [ - "▁Id", - "entity" - ], - [ - "▁Ident", - "ity" - ], - [ - "▁", - "Identity" - ], - [ - "re", - "ts" - ], - [ - "ret", - "s" - ], - [ - "r", - "ets" - ], - [ - "k", - "unft" - ], - [ - "la", - "rg" - ], - [ - "lar", - "g" - ], - [ - "l", - "arg" - ], - [ - "List", - "Item" - ], - [ - "v", - "d" - ], - [ - "run", - "ner" - ], - [ - "la", - "nt" - ], - [ - "lan", - "t" - ], - [ - "l", - "ant" - ], - [ - "ip", - "art" - ], - [ - "i", - "part" - ], - [ - "ba", - "y" - ], - [ - "b", - "ay" - ], - [ - "ie", - "i" - ], - [ - "i", - "ei" - ], - [ - "▁length", - "s" - ], - [ - "▁c", - "attle" - ], - [ - "▁catt", - "le" - ], - [ - "je", - "ts" - ], - [ - "jet", - "s" - ], - [ - "j", - "ets" - ], - [ - "▁se", - "hen" - ], - [ - "J", - "ul" - ], - [ - "fa", - "tt" - ], - [ - "f", - "att" - ], - [ - "▁sur", - "render" - ], - [ - "▁surr", - "ender" - ], - [ - "▁Tr", - "ump" - ], - [ - "▁Tru", - "mp" - ], - [ - "дно", - "го" - ], - [ - "д", - "ного" - ], - [ - "▁Four", - "ier" - ], - [ - "▁Fou", - "rier" - ], - [ - "ie", - "ben" - ], - [ - "ieb", - "en" - ], - [ - "i", - "eben" - ], - [ - "_", - "\"" - ], - [ - "▁frü", - "her" - ], - [ - "▁gar", - "ant" - ], - [ - "▁ga", - "rant" - ], - [ - "uclide", - "an" - ], - [ - "äg", - "t" - ], - [ - "ä", - "gt" - ], - [ - "▁пів", - "ден" - ], - [ - "Page", - "s" - ], - [ - "Pa", - "ges" - ], - [ - "P", - "ages" - ], - [ - "▁r", - "ivers" - ], - [ - "▁river", - "s" - ], - [ - "▁riv", - "ers" - ], - [ - "▁ri", - "vers" - ], - [ - "▁don", - "ner" - ], - [ - "▁donn", - "er" - ], - [ - "▁donne", - "r" - ], - [ - "sv", - "n" - ], - [ - "s", - "vn" - ], - [ - "▁", - "ł" - ], - [ - "ov", - "ě" - ], - [ - "o", - "vě" - ], - [ - "▁Le", - "ist" - ], - [ - "ar", - "ial" - ], - [ - "ari", - "al" - ], - [ - "aria", - "l" - ], - [ - "a", - "rial" - ], - [ - "ov", - "ých" - ], - [ - "ový", - "ch" - ], - [ - "▁f", - "illing" - ], - [ - "▁fil", - "ling" - ], - [ - "▁fill", - "ing" - ], - [ - "▁mus", - "icale" - ], - [ - "▁music", - "ale" - ], - [ - "▁musical", - "e" - ], - [ - "▁musica", - "le" - ], - [ - "ma", - "xim" - ], - [ - "max", - "im" - ], - [ - "▁d", - "ashed" - ], - [ - "▁das", - "hed" - ], - [ - "▁dash", - "ed" - ], - [ - "▁Н", - "ов" - ], - [ - "▁Но", - "в" - ], - [ - "Draw", - "er" - ], - [ - "Dra", - "wer" - ], - [ - "▁Medic", - "ine" - ], - [ - "▁dok", - "ument" - ], - [ - "ow", - "el" - ], - [ - "owe", - "l" - ], - [ - "o", - "wel" - ], - [ - "vi", - "ć" - ], - [ - "v", - "ić" - ], - [ - "he", - "ly" - ], - [ - "hel", - "y" - ], - [ - "h", - "ely" - ], - [ - "▁e", - "let" - ], - [ - "▁el", - "et" - ], - [ - "▁ele", - "t" - ], - [ - "Sec", - "onds" - ], - [ - "Second", - "s" - ], - [ - "▁Gon", - "z" - ], - [ - "ro", - "u" - ], - [ - "r", - "ou" - ], - [ - "▁fin", - "ales" - ], - [ - "▁final", - "es" - ], - [ - "▁finale", - "s" - ], - [ - "r", - "n" - ], - [ - "f", - "ø" - ], - [ - "▁index", - "ed" - ], - [ - "class", - "Name" - ], - [ - "▁o", - "ber" - ], - [ - "▁ob", - "er" - ], - [ - "▁", - "ober" - ], - [ - "▁du", - "as" - ], - [ - "▁optim", - "ized" - ], - [ - "▁optimize", - "d" - ], - [ - "▁k", - "dy" - ], - [ - "vers", - "ary" - ], - [ - "ener", - "gy" - ], - [ - "▁цент", - "ра" - ], - [ - "▁центр", - "а" - ], - [ - "▁c", - "urrency" - ], - [ - "▁curr", - "ency" - ], - [ - "▁", - "currency" - ], - [ - "zy", - "ż" - ], - [ - "Li", - "ke" - ], - [ - "L", - "ike" - ], - [ - "▁Г", - "и" - ], - [ - "so", - "no" - ], - [ - "son", - "o" - ], - [ - "s", - "ono" - ], - [ - "▁pa", - "lab" - ], - [ - "▁pal", - "ab" - ], - [ - "▁p", - "ushing" - ], - [ - "▁push", - "ing" - ], - [ - "ub", - "lik" - ], - [ - "▁H", - "ass" - ], - [ - "▁Ha", - "ss" - ], - [ - "▁Has", - "s" - ], - [ - "}\\", - ",\\" - ], - [ - "}\\,", - "\\" - ], - [ - "}", - "\\,\\" - ], - [ - "un", - "ker" - ], - [ - "unk", - "er" - ], - [ - "▁F", - "actory" - ], - [ - "▁Fact", - "ory" - ], - [ - "▁", - "Factory" - ], - [ - "▁Res", - "ources" - ], - [ - "▁Resource", - "s" - ], - [ - "▁", - "Resources" - ], - [ - "date", - "i" - ], - [ - "da", - "tei" - ], - [ - "dat", - "ei" - ], - [ - "▁T", - "ools" - ], - [ - "▁To", - "ols" - ], - [ - "▁Tool", - "s" - ], - [ - "▁", - "Tools" - ], - [ - "▁ste", - "hen" - ], - [ - "si", - "me" - ], - [ - "sim", - "e" - ], - [ - "s", - "ime" - ], - [ - "▁Х", - "у" - ], - [ - "▁h", - "och" - ], - [ - "▁ho", - "ch" - ], - [ - "▁Rod", - "ríguez" - ], - [ - "zeit", - "ig" - ], - [ - "▁Ter", - "ry" - ], - [ - "▁Terr", - "y" - ], - [ - "▁о", - "бу" - ], - [ - "▁об", - "у" - ], - [ - "Us", - "age" - ], - [ - "urch", - "ase" - ], - [ - "l", - "ö" - ], - [ - "▁Int", - "roduction" - ], - [ - "▁", - "Introduction" - ], - [ - "▁particip", - "ation" - ], - [ - "ο", - "ς" - ], - [ - "og", - "li" - ], - [ - "ap", - "y" - ], - [ - "a", - "py" - ], - [ - "▁hope", - "fully" - ], - [ - "pon", - "der" - ], - [ - "po", - "nder" - ], - [ - "pond", - "er" - ], - [ - "p", - "onder" - ], - [ - "▁Y", - "ang" - ], - [ - "▁Yan", - "g" - ], - [ - "▁Ya", - "ng" - ], - [ - "▁prom", - "ises" - ], - [ - "▁promise", - "s" - ], - [ - "▁вер", - "ну" - ], - [ - "▁о", - "стров" - ], - [ - "▁ост", - "ров" - ], - [ - "^{", - "+" - ], - [ - "▁most", - "ra" - ], - [ - "▁mo", - "stra" - ], - [ - "▁mos", - "tra" - ], - [ - "▁CURL", - "OPT" - ], - [ - "H", - "H" - ], - [ - "▁std", - "out" - ], - [ - "▁", - "stdout" - ], - [ - "▁br", - "illiant" - ], - [ - "▁manus", - "cript" - ], - [ - "▁de", - "cir" - ], - [ - "▁dec", - "ir" - ], - [ - "▁B", - "olog" - ], - [ - "▁Bo", - "log" - ], - [ - "▁Bol", - "og" - ], - [ - "▁ме", - "ста" - ], - [ - "▁мест", - "а" - ], - [ - "▁in", - "visible" - ], - [ - "▁C", - "hal" - ], - [ - "▁Ch", - "al" - ], - [ - "▁Cha", - "l" - ], - [ - "▁analy", - "ze" - ], - [ - "▁analyz", - "e" - ], - [ - "pr", - "ilis" - ], - [ - "pril", - "is" - ], - [ - "att", - "end" - ], - [ - "atten", - "d" - ], - [ - "atte", - "nd" - ], - [ - "M", - "vc" - ], - [ - "th", - "an" - ], - [ - "tha", - "n" - ], - [ - "t", - "han" - ], - [ - "ck", - "o" - ], - [ - "c", - "ko" - ], - [ - "▁Que", - "bec" - ], - [ - "▁pl", - "anta" - ], - [ - "▁plan", - "ta" - ], - [ - "▁plant", - "a" - ], - [ - "▁télé", - "vis" - ], - [ - "▁un", - "install" - ], - [ - "èn", - "cies" - ], - [ - "▁gmin", - "ie" - ], - [ - "▁P", - "ref" - ], - [ - "▁Pr", - "ef" - ], - [ - "▁Pre", - "f" - ], - [ - "▁le", - "quel" - ], - [ - "Inv", - "ocation" - ], - [ - "▁", - "Í" - ], - [ - "▁trans", - "formed" - ], - [ - "▁transform", - "ed" - ], - [ - "MA", - "N" - ], - [ - "M", - "AN" - ], - [ - "ge", - "baut" - ], - [ - "geb", - "aut" - ], - [ - "▁со", - "хра" - ], - [ - "▁вто", - "рой" - ], - [ - "▁L", - "ith" - ], - [ - "▁Li", - "th" - ], - [ - "▁Lit", - "h" - ], - [ - "wend", - "ung" - ], - [ - "▁Polit", - "ik" - ], - [ - "▁Sen", - "ator" - ], - [ - "▁L", - "L" - ], - [ - "▁", - "LL" - ], - [ - "жде", - "ние" - ], - [ - "ш", - "те" - ], - [ - "▁C", - "és" - ], - [ - "▁b", - "ande" - ], - [ - "▁band", - "e" - ], - [ - "▁ban", - "de" - ], - [ - "▁ba", - "nde" - ], - [ - "▁histor", - "ian" - ], - [ - "▁historia", - "n" - ], - [ - "▁pass", - "words" - ], - [ - "▁password", - "s" - ], - [ - "mal", - "loc" - ], - [ - "m", - "alloc" - ], - [ - "▁sem", - "if" - ], - [ - "▁semi", - "f" - ], - [ - "▁r", - "å" - ], - [ - "▁", - "rå" - ], - [ - "unic", - "í" - ], - [ - "uni", - "cí" - ], - [ - "Av", - "ailable" - ], - [ - "Option", - "al" - ], - [ - "Opt", - "ional" - ], - [ - "▁T", - "we" - ], - [ - "▁Tw", - "e" - ], - [ - "▁k", - "ró" - ], - [ - "▁kr", - "ó" - ], - [ - "▁sub", - "sets" - ], - [ - "▁subset", - "s" - ], - [ - "▁subs", - "ets" - ], - [ - "▁D", - "AT" - ], - [ - "▁DA", - "T" - ], - [ - "▁", - "DAT" - ], - [ - "▁double", - "s" - ], - [ - "▁dou", - "bles" - ], - [ - "▁doub", - "les" - ], - [ - "ни", - "ками" - ], - [ - "ника", - "ми" - ], - [ - "▁з", - "в" - ], - [ - "ge", - "geben" - ], - [ - "geg", - "eben" - ], - [ - "g", - "egeben" - ], - [ - "▁По", - "пис" - ], - [ - "▁jú", - "lius" - ], - [ - "▁m", - "eteor" - ], - [ - "▁met", - "eor" - ], - [ - "Mo", - "unt" - ], - [ - "M", - "ount" - ], - [ - "iv", - "ent" - ], - [ - "ive", - "nt" - ], - [ - "iven", - "t" - ], - [ - "i", - "vent" - ], - [ - "▁N", - "athan" - ], - [ - "▁Na", - "than" - ], - [ - "▁Nat", - "han" - ], - [ - "▁Sch", - "utz" - ], - [ - "eg", - "ov" - ], - [ - "ego", - "v" - ], - [ - "e", - "gov" - ], - [ - "▁d", - "öd" - ], - [ - "▁me", - "at" - ], - [ - "▁пун", - "кт" - ], - [ - "▁m", - "inds" - ], - [ - "▁min", - "ds" - ], - [ - "▁mind", - "s" - ], - [ - "eli", - "very" - ], - [ - "▁T", - "LS" - ], - [ - "ре", - "м" - ], - [ - "р", - "ем" - ], - [ - "cks", - "å" - ], - [ - "▁stay", - "ed" - ], - [ - "▁sta", - "yed" - ], - [ - "▁B", - "in" - ], - [ - "▁Bi", - "n" - ], - [ - "▁P", - "ia" - ], - [ - "▁Pi", - "a" - ], - [ - "▁и", - "мен" - ], - [ - "▁име", - "н" - ], - [ - "▁им", - "ен" - ], - [ - "▁Bob", - "by" - ], - [ - "▁produ", - "it" - ], - [ - "▁prod", - "uit" - ], - [ - "em", - "pio" - ], - [ - "emp", - "io" - ], - [ - "▁redu", - "cing" - ], - [ - "▁Y", - "u" - ], - [ - "▁Gesch", - "äft" - ], - [ - "▁per", - "ché" - ], - [ - "▁c", - "ors" - ], - [ - "▁cor", - "s" - ], - [ - "▁co", - "rs" - ], - [ - "▁i", - "cons" - ], - [ - "▁icon", - "s" - ], - [ - "▁ic", - "ons" - ], - [ - "▁", - "icons" - ], - [ - "App", - "Data" - ], - [ - "▁H", - "og" - ], - [ - "▁Ho", - "g" - ], - [ - "▁р", - "ів" - ], - [ - "▁рі", - "в" - ], - [ - "▁", - "рів" - ], - [ - "▁S", - "ans" - ], - [ - "▁San", - "s" - ], - [ - "▁Sa", - "ns" - ], - [ - "▁si", - "ège" - ], - [ - "▁siè", - "ge" - ], - [ - "st", - "ellen" - ], - [ - "stell", - "en" - ], - [ - "stelle", - "n" - ], - [ - "Br", - "ush" - ], - [ - "OF", - "F" - ], - [ - "O", - "FF" - ], - [ - "▁vis", - "itor" - ], - [ - "▁visit", - "or" - ], - [ - "▁b", - "ath" - ], - [ - "▁ba", - "th" - ], - [ - "▁bat", - "h" - ], - [ - "▁f", - "ee" - ], - [ - "▁fe", - "e" - ], - [ - "at", - "isf" - ], - [ - "ati", - "sf" - ], - [ - "atis", - "f" - ], - [ - "▁cu", - "rv" - ], - [ - "▁cur", - "v" - ], - [ - "▁fol", - "gender" - ], - [ - "▁folg", - "ender" - ], - [ - "▁cons", - "cience" - ], - [ - "▁Se", - "attle" - ], - [ - "▁med", - "ieval" - ], - [ - "▁medi", - "eval" - ], - [ - "dist", - "ribution" - ], - [ - "▁D", - "M" - ], - [ - "▁", - "DM" - ], - [ - "▁м", - "я" - ], - [ - "▁", - "мя" - ], - [ - "▁R", - "UN" - ], - [ - "ak", - "ov" - ], - [ - "ako", - "v" - ], - [ - "a", - "kov" - ], - [ - "ce", - "il" - ], - [ - "c", - "eil" - ], - [ - "▁let", - "ting" - ], - [ - "▁lett", - "ing" - ], - [ - "▁d", - "ov" - ], - [ - "▁do", - "v" - ], - [ - "▁о", - "би" - ], - [ - "▁об", - "и" - ], - [ - "ki", - "ej" - ], - [ - "kie", - "j" - ], - [ - "k", - "iej" - ], - [ - "▁dire", - "kt" - ], - [ - "▁t", - "m" - ], - [ - "▁", - "tm" - ], - [ - "col", - "ors" - ], - [ - "color", - "s" - ], - [ - "colo", - "rs" - ], - [ - "▁alt", - "ro" - ], - [ - "▁tijd", - "ens" - ], - [ - "]{", - "'" - ], - [ - "]", - "{'" - ], - [ - "▁B", - "om" - ], - [ - "▁Bo", - "m" - ], - [ - "▁k", - "unst" - ], - [ - "▁kun", - "st" - ], - [ - "▁sh", - "elter" - ], - [ - "▁r", - "av" - ], - [ - "▁ra", - "v" - ], - [ - "▁", - "rav" - ], - [ - "pre", - "dict" - ], - [ - "pred", - "ict" - ], - [ - "▁comenz", - "ó" - ], - [ - "▁świ", - "at" - ], - [ - "▁św", - "iat" - ], - [ - "▁Du", - "rant" - ], - [ - "▁Dur", - "ant" - ], - [ - "▁sch", - "emes" - ], - [ - "▁scheme", - "s" - ], - [ - "▁sche", - "mes" - ], - [ - "▁m", - "esh" - ], - [ - "▁me", - "sh" - ], - [ - "▁mes", - "h" - ], - [ - "▁ind", - "icator" - ], - [ - "▁indic", - "ator" - ], - [ - "▁E", - "mer" - ], - [ - "▁Em", - "er" - ], - [ - "▁gu", - "ilty" - ], - [ - "не", - "ц" - ], - [ - "▁consequ", - "ences" - ], - [ - "▁consequence", - "s" - ], - [ - "cl", - "udes" - ], - [ - "clude", - "s" - ], - [ - "clud", - "es" - ], - [ - "▁L", - "ower" - ], - [ - "▁Lo", - "wer" - ], - [ - "▁Low", - "er" - ], - [ - "▁", - "Lower" - ], - [ - "▁по", - "ме" - ], - [ - "▁p", - "ace" - ], - [ - "▁pa", - "ce" - ], - [ - "▁pac", - "e" - ], - [ - "▁", - "pace" - ], - [ - "да", - "го" - ], - [ - "▁am", - "bos" - ], - [ - "▁amb", - "os" - ], - [ - "l", - "b" - ], - [ - "▁educ", - "ated" - ], - [ - "ur", - "ale" - ], - [ - "ura", - "le" - ], - [ - "ural", - "e" - ], - [ - "u", - "rale" - ], - [ - "an", - "h" - ], - [ - "es", - "ség" - ], - [ - "ess", - "ég" - ], - [ - "▁associ", - "ations" - ], - [ - "▁association", - "s" - ], - [ - "to", - "wn" - ], - [ - "t", - "own" - ], - [ - "▁t", - "rif" - ], - [ - "▁tr", - "if" - ], - [ - "▁tri", - "f" - ], - [ - "sample", - "s" - ], - [ - "sam", - "ples" - ], - [ - "s", - "amples" - ], - [ - "bo", - "s" - ], - [ - "b", - "os" - ], - [ - "▁S", - "pect" - ], - [ - "▁Sp", - "ect" - ], - [ - "▁Spe", - "ct" - ], - [ - "▁Spec", - "t" - ], - [ - "▁Ц", - "е" - ], - [ - "alt", - "ung" - ], - [ - "▁L", - "ob" - ], - [ - "▁Lo", - "b" - ], - [ - "▁curios", - "ity" - ], - [ - "▁We", - "iter" - ], - [ - "▁Wei", - "ter" - ], - [ - "▁Weit", - "er" - ], - [ - "est", - "one" - ], - [ - "esto", - "ne" - ], - [ - "eston", - "e" - ], - [ - "e", - "stone" - ], - [ - "▁dem", - "ol" - ], - [ - "▁demo", - "l" - ], - [ - "▁ap", - "olog" - ], - [ - "▁apo", - "log" - ], - [ - "▁D", - "ynamic" - ], - [ - "▁Dynam", - "ic" - ], - [ - "▁", - "Dynamic" - ], - [ - "In", - "ner" - ], - [ - "es", - "per" - ], - [ - "esp", - "er" - ], - [ - "ec", - "z" - ], - [ - "e", - "cz" - ], - [ - "uel", - "lement" - ], - [ - "uelle", - "ment" - ], - [ - "▁Hamilton", - "ian" - ], - [ - "At", - "las" - ], - [ - "▁ar", - "gue" - ], - [ - "▁arg", - "ue" - ], - [ - "For", - "eign" - ], - [ - "F", - "oreign" - ], - [ - "col", - "lapse" - ], - [ - "▁tér", - "min" - ], - [ - "▁electron", - "ic" - ], - [ - "▁electro", - "nic" - ], - [ - "▁N", - "R" - ], - [ - "▁", - "NR" - ], - [ - "▁c", - "orr" - ], - [ - "▁cor", - "r" - ], - [ - "▁co", - "rr" - ], - [ - "▁", - "corr" - ], - [ - "tem", - "ps" - ], - [ - "temp", - "s" - ], - [ - "Index", - "Path" - ], - [ - "я", - "з" - ], - [ - "▁tal", - "ál" - ], - [ - "to", - "day" - ], - [ - "tod", - "ay" - ], - [ - "wa", - "ve" - ], - [ - "w", - "ave" - ], - [ - "▁s", - "ib" - ], - [ - "▁si", - "b" - ], - [ - "▁с", - "пи" - ], - [ - "▁сп", - "и" - ], - [ - "▁con", - "vey" - ], - [ - "▁conv", - "ey" - ], - [ - "▁Gé", - "ographie" - ], - [ - "▁Н", - "ью" - ], - [ - "▁Hi", - "bernate" - ], - [ - "▁t", - "in" - ], - [ - "▁ti", - "n" - ], - [ - "di", - "c" - ], - [ - "d", - "ic" - ], - [ - "pp", - "ings" - ], - [ - "pping", - "s" - ], - [ - "s", - "weise" - ], - [ - "▁roll", - "ing" - ], - [ - "▁rol", - "ling" - ], - [ - "▁", - "rolling" - ], - [ - "▁select", - "s" - ], - [ - ")\\", - ")" - ], - [ - ")", - "\\)" - ], - [ - "▁po", - "eta" - ], - [ - "▁poet", - "a" - ], - [ - "▁сте", - "пени" - ], - [ - "▁A", - "br" - ], - [ - "▁Ab", - "r" - ], - [ - "▁hö", - "ch" - ], - [ - "▁s", - "tern" - ], - [ - "▁st", - "ern" - ], - [ - "▁ste", - "rn" - ], - [ - "▁ster", - "n" - ], - [ - "▁f", - "jär" - ], - [ - "▁inst", - "aller" - ], - [ - "▁install", - "er" - ], - [ - "▁instal", - "ler" - ], - [ - "de", - "cl" - ], - [ - "dec", - "l" - ], - [ - "▁m", - "iser" - ], - [ - "▁mi", - "ser" - ], - [ - "▁mis", - "er" - ], - [ - "▁mise", - "r" - ], - [ - "group", - "by" - ], - [ - "sub", - "str" - ], - [ - "subst", - "r" - ], - [ - "▁phen", - "omen" - ], - [ - "▁W", - "ing" - ], - [ - "▁Win", - "g" - ], - [ - "▁Wi", - "ng" - ], - [ - "▁f", - "ills" - ], - [ - "▁fil", - "ls" - ], - [ - "▁fill", - "s" - ], - [ - "▁ú", - "nico" - ], - [ - "Run", - "ning" - ], - [ - "R", - "unning" - ], - [ - "Com", - "e" - ], - [ - "Co", - "me" - ], - [ - "C", - "ome" - ], - [ - "ir", - "able" - ], - [ - "ira", - "ble" - ], - [ - "i", - "rable" - ], - [ - "sim", - "eq" - ], - [ - "sime", - "q" - ], - [ - "▁re", - "mp" - ], - [ - "▁r", - "emp" - ], - [ - "▁rem", - "p" - ], - [ - "ke", - "le" - ], - [ - "kel", - "e" - ], - [ - "k", - "ele" - ], - [ - "li", - "ers" - ], - [ - "lie", - "rs" - ], - [ - "lier", - "s" - ], - [ - "l", - "iers" - ], - [ - "▁kwiet", - "nia" - ], - [ - "▁inter", - "rupted" - ], - [ - "▁interrupt", - "ed" - ], - [ - "▁J", - "et" - ], - [ - "▁Je", - "t" - ], - [ - "=\\", - "{" - ], - [ - "=", - "\\{" - ], - [ - "íd", - "o" - ], - [ - "í", - "do" - ], - [ - "▁Tai", - "wan" - ], - [ - "▁воз", - "ра" - ], - [ - "▁altern", - "atives" - ], - [ - "▁alternative", - "s" - ], - [ - "▁T", - "ir" - ], - [ - "▁Ti", - "r" - ], - [ - "▁Re", - "serve" - ], - [ - "▁Res", - "erve" - ], - [ - "▁К", - "ур" - ], - [ - "▁Ку", - "р" - ], - [ - "▁No", - "bel" - ], - [ - "▁Nob", - "el" - ], - [ - "▁рабо", - "тал" - ], - [ - "▁работа", - "л" - ], - [ - "▁a", - "xes" - ], - [ - "▁ax", - "es" - ], - [ - "▁C", - "ependant" - ], - [ - "k", - "á" - ], - [ - "▁er", - "neut" - ], - [ - "▁D", - "emo" - ], - [ - "▁De", - "mo" - ], - [ - "▁Dem", - "o" - ], - [ - "▁", - "Demo" - ], - [ - "comm", - "unic" - ], - [ - "con", - "structor" - ], - [ - "construct", - "or" - ], - [ - "▁Mon", - "day" - ], - [ - "▁Mond", - "ay" - ], - [ - "N", - "il" - ], - [ - "Hash", - "Map" - ], - [ - "pay", - "ment" - ], - [ - "▁fix", - "ing" - ], - [ - "▁A", - "DD" - ], - [ - "▁AD", - "D" - ], - [ - "▁", - "ADD" - ], - [ - "re", - "view" - ], - [ - "rev", - "iew" - ], - [ - "▁poss", - "ibil" - ], - [ - "▁possib", - "il" - ], - [ - "▁g", - "rote" - ], - [ - "▁gr", - "ote" - ], - [ - "▁gro", - "te" - ], - [ - "▁group", - "ed" - ], - [ - "▁groupe", - "d" - ], - [ - "▁L", - "ima" - ], - [ - "▁Li", - "ma" - ], - [ - "▁Lim", - "a" - ], - [ - "▁A", - "ugen" - ], - [ - "▁Au", - "gen" - ], - [ - "▁Aug", - "en" - ], - [ - "▁o", - "ckså" - ], - [ - "on", - "as" - ], - [ - "ona", - "s" - ], - [ - "o", - "nas" - ], - [ - "▁deb", - "ate" - ], - [ - "▁In", - "gl" - ], - [ - "▁Ing", - "l" - ], - [ - "D", - "a" - ], - [ - "SO", - "UR" - ], - [ - "S", - "OUR" - ], - [ - "ett", - "be" - ], - [ - "▁Batt", - "alion" - ], - [ - "▁F", - "loat" - ], - [ - "▁Flo", - "at" - ], - [ - "▁", - "Float" - ], - [ - "▁c", - "one" - ], - [ - "▁con", - "e" - ], - [ - "▁co", - "ne" - ], - [ - "read", - "sheet" - ], - [ - "co", - "urt" - ], - [ - "cou", - "rt" - ], - [ - "c", - "ourt" - ], - [ - "li", - "gen" - ], - [ - "lig", - "en" - ], - [ - "lige", - "n" - ], - [ - "l", - "igen" - ], - [ - "▁Begin", - "n" - ], - [ - "▁Beg", - "inn" - ], - [ - "▁LI", - "MIT" - ], - [ - "▁LIM", - "IT" - ], - [ - "▁enjo", - "yed" - ], - [ - "▁enjoy", - "ed" - ], - [ - "▁Jak", - "ob" - ], - [ - "▁t", - "elt" - ], - [ - "▁te", - "lt" - ], - [ - "▁tel", - "t" - ], - [ - "back", - "end" - ], - [ - "▁Gemeins", - "ame" - ], - [ - "li", - "nt" - ], - [ - "lin", - "t" - ], - [ - "l", - "int" - ], - [ - "al", - "ling" - ], - [ - "all", - "ing" - ], - [ - "▁b", - "ör" - ], - [ - "gr", - "and" - ], - [ - "gra", - "nd" - ], - [ - "g", - "rand" - ], - [ - "▁divers", - "es" - ], - [ - "▁diverse", - "s" - ], - [ - "▁z", - "wiąz" - ], - [ - "▁Kom", - "pon" - ], - [ - "▁inner", - "halb" - ], - [ - "▁desar", - "rollo" - ], - [ - "▁desarroll", - "o" - ], - [ - "▁Ma", - "sters" - ], - [ - "▁Mas", - "ters" - ], - [ - "▁Master", - "s" - ], - [ - "io", - "so" - ], - [ - "ios", - "o" - ], - [ - "i", - "oso" - ], - [ - "]`", - "." - ], - [ - "]", - "`." - ], - [ - "▁frances", - "a" - ], - [ - "▁franc", - "esa" - ], - [ - "A", - "ff" - ], - [ - "in", - "ek" - ], - [ - "ine", - "k" - ], - [ - "i", - "nek" - ], - [ - "▁des", - "sin" - ], - [ - "▁dess", - "in" - ], - [ - "`.", - "`" - ], - [ - "`", - ".`" - ], - [ - "▁r", - "anks" - ], - [ - "▁ran", - "ks" - ], - [ - "▁rank", - "s" - ], - [ - "бер", - "г" - ], - [ - "▁s", - "kal" - ], - [ - "▁sk", - "al" - ], - [ - "▁S", - "ultan" - ], - [ - "▁Sul", - "tan" - ], - [ - "А", - "Н" - ], - [ - "▁спо", - "соб" - ], - [ - "▁contra", - "dict" - ], - [ - "▁contrad", - "ict" - ], - [ - "▁re", - "com" - ], - [ - "▁rec", - "om" - ], - [ - "▁Ok", - "lahoma" - ], - [ - "▁Vlad", - "imir" - ], - [ - "▁m", - "eters" - ], - [ - "▁me", - "ters" - ], - [ - "▁met", - "ers" - ], - [ - "▁meter", - "s" - ], - [ - "trans", - "port" - ], - [ - "▁cons", - "ulté" - ], - [ - "▁consult", - "é" - ], - [ - "▁", - "consulté" - ], - [ - "▁A", - "TP" - ], - [ - "▁AT", - "P" - ], - [ - "eb", - "b" - ], - [ - "e", - "bb" - ], - [ - "▁vol", - "unte" - ], - [ - "▁volunt", - "e" - ], - [ - "▁out", - "line" - ], - [ - "LI", - "C" - ], - [ - "L", - "IC" - ], - [ - "▁e", - "uro" - ], - [ - "▁eu", - "ro" - ], - [ - "Char", - "Field" - ], - [ - "med", - "ium" - ], - [ - "medi", - "um" - ], - [ - "▁Belg", - "ique" - ], - [ - "Pro", - "c" - ], - [ - "Pr", - "oc" - ], - [ - "P", - "roc" - ], - [ - "ro", - "utes" - ], - [ - "route", - "s" - ], - [ - "rout", - "es" - ], - [ - "rou", - "tes" - ], - [ - "▁cont", - "ribu" - ], - [ - "▁contrib", - "u" - ], - [ - "!", - "}" - ], - [ - "ší", - "m" - ], - [ - "š", - "ím" - ], - [ - "▁L", - "ess" - ], - [ - "▁Le", - "ss" - ], - [ - "▁Les", - "s" - ], - [ - "▁K", - "ost" - ], - [ - "▁Ko", - "st" - ], - [ - "▁Kos", - "t" - ], - [ - "▁eredet", - "iből" - ], - [ - "re", - "ven" - ], - [ - "rev", - "en" - ], - [ - "r", - "even" - ], - [ - "ver", - "ify" - ], - [ - "▁S", - "alt" - ], - [ - "▁Sal", - "t" - ], - [ - "▁Sa", - "lt" - ], - [ - "▁shoot", - "ing" - ], - [ - "▁sho", - "oting" - ], - [ - "▁dis", - "pose" - ], - [ - "▁dispos", - "e" - ], - [ - "▁disp", - "ose" - ], - [ - "uj", - "í" - ], - [ - "▁t", - "ierra" - ], - [ - "▁tier", - "ra" - ], - [ - "▁po", - "ison" - ], - [ - "▁poi", - "son" - ], - [ - "sa", - "k" - ], - [ - "s", - "ak" - ], - [ - "periment", - "al" - ], - [ - "▁N", - "é" - ], - [ - "▁K", - "id" - ], - [ - "▁Ki", - "d" - ], - [ - "ag", - "yar" - ], - [ - "agy", - "ar" - ], - [ - "▁archiv", - "álva" - ], - [ - "be", - "reich" - ], - [ - "bere", - "ich" - ], - [ - "í", - "z" - ], - [ - "▁R", - "itter" - ], - [ - "▁Хронологи", - "ја" - ], - [ - "ze", - "um" - ], - [ - "да", - "х" - ], - [ - "▁gr", - "ünd" - ], - [ - "▁program", - "mer" - ], - [ - "▁programme", - "r" - ], - [ - "▁cons", - "eil" - ], - [ - "▁conse", - "il" - ], - [ - "▁enc", - "rypt" - ], - [ - "integr", - "ation" - ], - [ - "C", - "ulture" - ], - [ - "▁Circ", - "le" - ], - [ - "▁Cir", - "cle" - ], - [ - "Ob", - "servable" - ], - [ - "▁gen", - "omsnitt" - ], - [ - "▁Se", - "lection" - ], - [ - "▁Select", - "ion" - ], - [ - "▁Sel", - "ection" - ], - [ - "▁Sele", - "ction" - ], - [ - "▁", - "Selection" - ], - [ - "▁ir", - "regular" - ], - [ - "Aut", - "res" - ], - [ - "Per", - "cent" - ], - [ - "fa", - "ult" - ], - [ - "f", - "ault" - ], - [ - "▁virt", - "ue" - ], - [ - "ą", - "pi" - ], - [ - "▁s", - "ess" - ], - [ - "▁se", - "ss" - ], - [ - "▁ses", - "s" - ], - [ - "▁Так", - "же" - ], - [ - "Tim", - "estamp" - ], - [ - "▁litt", - "érature" - ], - [ - "▁mo", - "ż" - ], - [ - "▁b", - "orrow" - ], - [ - "▁bor", - "row" - ], - [ - "▁con", - "ced" - ], - [ - "▁conc", - "ed" - ], - [ - "▁conce", - "d" - ], - [ - "чни", - "к" - ], - [ - "ч", - "ник" - ], - [ - "▁L", - "und" - ], - [ - "▁Lu", - "nd" - ], - [ - "ION", - "S" - ], - [ - "IO", - "NS" - ], - [ - "yn", - "ie" - ], - [ - "y", - "nie" - ], - [ - "▁S", - "hin" - ], - [ - "▁Sh", - "in" - ], - [ - "▁o", - "sob" - ], - [ - "▁os", - "ob" - ], - [ - "b", - "ě" - ], - [ - "▁int", - "uit" - ], - [ - "▁intu", - "it" - ], - [ - "▁на", - "п" - ], - [ - "▁p", - "roph" - ], - [ - "▁pro", - "ph" - ], - [ - "▁pr", - "oph" - ], - [ - "▁prop", - "h" - ], - [ - "▁p", - "itt" - ], - [ - "▁pi", - "tt" - ], - [ - "▁pit", - "t" - ], - [ - "▁IB", - "M" - ], - [ - "▁T", - "ill" - ], - [ - "▁Ti", - "ll" - ], - [ - "▁h", - "ina" - ], - [ - "▁hi", - "na" - ], - [ - "▁hin", - "a" - ], - [ - "it", - "test" - ], - [ - "itt", - "est" - ], - [ - "itte", - "st" - ], - [ - "gener", - "ator" - ], - [ - "▁N", - "in" - ], - [ - "▁Ni", - "n" - ], - [ - "▁K", - "ot" - ], - [ - "▁Ko", - "t" - ], - [ - "▁p", - "asser" - ], - [ - "▁pass", - "er" - ], - [ - "▁pas", - "ser" - ], - [ - "▁passe", - "r" - ], - [ - "▁dis", - "position" - ], - [ - "▁dispos", - "ition" - ], - [ - "▁disp", - "osition" - ], - [ - "un", - "ing" - ], - [ - "uni", - "ng" - ], - [ - "u", - "ning" - ], - [ - "▁f", - "ame" - ], - [ - "▁fa", - "me" - ], - [ - "▁fam", - "e" - ], - [ - "▁t", - "enia" - ], - [ - "▁te", - "nia" - ], - [ - "▁ten", - "ia" - ], - [ - "an", - "cement" - ], - [ - "ance", - "ment" - ], - [ - "anc", - "ement" - ], - [ - "▁Su", - "isse" - ], - [ - "`", - "-" - ], - [ - "▁h", - "ombres" - ], - [ - "▁hom", - "bres" - ], - [ - "▁hombre", - "s" - ], - [ - "▁inf", - "inity" - ], - [ - "▁infin", - "ity" - ], - [ - "▁окон", - "ча" - ], - [ - "▁co", - "sm" - ], - [ - "▁cos", - "m" - ], - [ - "▁D", - "ennis" - ], - [ - "▁Den", - "nis" - ], - [ - "ba", - "z" - ], - [ - "b", - "az" - ], - [ - "ha", - "upt" - ], - [ - "h", - "aupt" - ], - [ - "▁might", - "y" - ], - [ - "▁pr", - "ede" - ], - [ - "▁pre", - "de" - ], - [ - "▁pred", - "e" - ], - [ - "us", - "able" - ], - [ - "usa", - "ble" - ], - [ - "▁ws", - "zyst" - ], - [ - "▁wsz", - "yst" - ], - [ - "▁l", - "b" - ], - [ - "▁", - "lb" - ], - [ - "AB", - "ASE" - ], - [ - "A", - "BASE" - ], - [ - "j", - "na" - ], - [ - "не", - "в" - ], - [ - "н", - "ев" - ], - [ - "▁as", - "es" - ], - [ - "▁", - "ases" - ], - [ - "▁final", - "mente" - ], - [ - "й", - "м" - ], - [ - "pe", - "ction" - ], - [ - "pect", - "ion" - ], - [ - "pec", - "tion" - ], - [ - "p", - "ection" - ], - [ - "▁Stud", - "ien" - ], - [ - "▁Norweg", - "ian" - ], - [ - "ce", - "go" - ], - [ - "c", - "ego" - ], - [ - "IN", - "DEX" - ], - [ - "IND", - "EX" - ], - [ - "or", - "ten" - ], - [ - "ort", - "en" - ], - [ - "orte", - "n" - ], - [ - "▁friend", - "ship" - ], - [ - "▁friends", - "hip" - ], - [ - "met", - "ro" - ], - [ - "m", - "etro" - ], - [ - "th", - "ick" - ], - [ - "▁Z", - "el" - ], - [ - "▁Ze", - "l" - ], - [ - "LO", - "W" - ], - [ - "L", - "OW" - ], - [ - "▁there", - "by" - ], - [ - "un", - "ted" - ], - [ - "unt", - "ed" - ], - [ - "unte", - "d" - ], - [ - "▁sur", - "faces" - ], - [ - "▁surface", - "s" - ], - [ - "ющи", - "м" - ], - [ - "%)", - "." - ], - [ - "%", - ")." - ], - [ - "▁W", - "onder" - ], - [ - "▁Wo", - "nder" - ], - [ - "▁redund", - "ant" - ], - [ - "▁G", - "ros" - ], - [ - "▁Gr", - "os" - ], - [ - "▁Gro", - "s" - ], - [ - "▁web", - "sites" - ], - [ - "▁website", - "s" - ], - [ - "▁v", - "io" - ], - [ - "▁vi", - "o" - ], - [ - "▁o", - "cas" - ], - [ - "▁oc", - "as" - ], - [ - "vé", - "s" - ], - [ - "v", - "és" - ], - [ - "▁G", - "am" - ], - [ - "▁Ga", - "m" - ], - [ - "d", - "w" - ], - [ - "Ind", - "icator" - ], - [ - "▁K", - "ob" - ], - [ - "▁Ko", - "b" - ], - [ - "▁j", - "ack" - ], - [ - "▁ja", - "ck" - ], - [ - "▁", - "jack" - ], - [ - "Hi", - "nt" - ], - [ - "H", - "int" - ], - [ - "▁A", - "pol" - ], - [ - "▁Ap", - "ol" - ], - [ - "▁други", - "е" - ], - [ - "▁N", - "UM" - ], - [ - "▁", - "NUM" - ], - [ - "▁o", - "fic" - ], - [ - "▁of", - "ic" - ], - [ - "yst", - "ycz" - ], - [ - "▁were", - "ld" - ], - [ - "▁wer", - "eld" - ], - [ - "мо", - "сти" - ], - [ - "LE", - "FT" - ], - [ - "▁T", - "ypes" - ], - [ - "▁Type", - "s" - ], - [ - "▁Ty", - "pes" - ], - [ - "▁Typ", - "es" - ], - [ - "▁", - "Types" - ], - [ - "se", - "en" - ], - [ - "see", - "n" - ], - [ - "s", - "een" - ], - [ - "un", - "cia" - ], - [ - "unc", - "ia" - ], - [ - "unci", - "a" - ], - [ - "▁n", - "arod" - ], - [ - "▁na", - "rod" - ], - [ - "▁nar", - "od" - ], - [ - "▁это", - "т" - ], - [ - "Side", - "note" - ], - [ - "S", - "idenote" - ], - [ - "ue", - "il" - ], - [ - "u", - "eil" - ], - [ - "▁от", - "ме" - ], - [ - "▁cour", - "ts" - ], - [ - "▁court", - "s" - ], - [ - "fi", - "r" - ], - [ - "f", - "ir" - ], - [ - "ur", - "z" - ], - [ - "u", - "rz" - ], - [ - "чен", - "ко" - ], - [ - "Cred", - "entials" - ], - [ - "▁imag", - "ination" - ], - [ - "it", - "ats" - ], - [ - "ita", - "ts" - ], - [ - "itat", - "s" - ], - [ - "bu", - "ff" - ], - [ - "buf", - "f" - ], - [ - "b", - "uff" - ], - [ - "fl", - "ash" - ], - [ - "▁bad", - "ly" - ], - [ - "▁w", - "orn" - ], - [ - "▁wor", - "n" - ], - [ - "▁wo", - "rn" - ], - [ - "▁окру", - "гу" - ], - [ - "cat", - "alog" - ], - [ - "catal", - "og" - ], - [ - "c", - "atalog" - ], - [ - "li", - "me" - ], - [ - "lim", - "e" - ], - [ - "l", - "ime" - ], - [ - "▁G", - "ill" - ], - [ - "▁Gi", - "ll" - ], - [ - "▁Gil", - "l" - ], - [ - "▁S", - "ent" - ], - [ - "▁Se", - "nt" - ], - [ - "▁Sen", - "t" - ], - [ - "ie", - "lla" - ], - [ - "iel", - "la" - ], - [ - "i", - "ella" - ], - [ - "▁Cra", - "ig" - ], - [ - "▁S", - "ele" - ], - [ - "▁Se", - "le" - ], - [ - "▁Sel", - "e" - ], - [ - "▁Indep", - "end" - ], - [ - "▁prov", - "incie" - ], - [ - "▁provin", - "cie" - ], - [ - "os", - "sen" - ], - [ - "oss", - "en" - ], - [ - "▁за", - "пад" - ], - [ - "▁запа", - "д" - ], - [ - "▁inf", - "ant" - ], - [ - "▁pr", - "events" - ], - [ - "▁prevent", - "s" - ], - [ - "▁prev", - "ents" - ], - [ - "▁provin", - "ces" - ], - [ - "▁province", - "s" - ], - [ - "af", - "é" - ], - [ - "be", - "g" - ], - [ - "b", - "eg" - ], - [ - "▁col", - "ours" - ], - [ - "▁colour", - "s" - ], - [ - "B", - "F" - ], - [ - "ë", - "n" - ], - [ - "▁Ме", - "жду" - ], - [ - "î", - "n" - ], - [ - "Ob", - "server" - ], - [ - "for", - "sch" - ], - [ - "í", - "gen" - ], - [ - "um", - "ption" - ], - [ - "ump", - "tion" - ], - [ - "▁Ill", - "ustr" - ], - [ - "ри", - "ст" - ], - [ - "рис", - "т" - ], - [ - "▁по", - "лови" - ], - [ - "▁пол", - "ови" - ], - [ - "▁поло", - "ви" - ], - [ - "▁`", - "&" - ], - [ - "▁o", - "re" - ], - [ - "▁or", - "e" - ], - [ - "▁", - "ore" - ], - [ - "▁supp", - "lies" - ], - [ - "▁parent", - "hes" - ], - [ - "Found", - "ation" - ], - [ - "▁v", - "ou" - ], - [ - "▁vo", - "u" - ], - [ - "▁T", - "out" - ], - [ - "▁To", - "ut" - ], - [ - "Don", - "ald" - ], - [ - "▁R", - "ET" - ], - [ - "▁RE", - "T" - ], - [ - "we", - "ig" - ], - [ - "wei", - "g" - ], - [ - "▁produ", - "cción" - ], - [ - "mi", - "x" - ], - [ - "m", - "ix" - ], - [ - "▁ut", - "wor" - ], - [ - "▁f", - "öl" - ], - [ - "▁fö", - "l" - ], - [ - "▁ent", - "ão" - ], - [ - "▁S", - "ister" - ], - [ - "▁Si", - "ster" - ], - [ - "Tag", - "s" - ], - [ - "T", - "ags" - ], - [ - "▁Савез", - "не" - ], - [ - "▁privile", - "ges" - ], - [ - "▁na", - "zw" - ], - [ - "▁naz", - "w" - ], - [ - "▁R", - "av" - ], - [ - "▁Ra", - "v" - ], - [ - "▁re", - "pro" - ], - [ - "▁rep", - "ro" - ], - [ - "▁repr", - "o" - ], - [ - "▁M", - "ason" - ], - [ - "▁Ma", - "son" - ], - [ - "▁Mas", - "on" - ], - [ - "▁Pl", - "atform" - ], - [ - "▁Plat", - "form" - ], - [ - "▁", - "Platform" - ], - [ - "▁про", - "бле" - ], - [ - "▁P", - "érez" - ], - [ - "▁bl", - "anc" - ], - [ - "▁bla", - "nc" - ], - [ - "▁blan", - "c" - ], - [ - "Be", - "havior" - ], - [ - "фи", - "ци" - ], - [ - "ek", - "en" - ], - [ - "e", - "ken" - ], - [ - "▁me", - "ets" - ], - [ - "▁meet", - "s" - ], - [ - "(.", - "*" - ], - [ - "(", - ".*" - ], - [ - "▁f", - "å" - ], - [ - "ep", - "en" - ], - [ - "e", - "pen" - ], - [ - "ma", - "ker" - ], - [ - "make", - "r" - ], - [ - "m", - "aker" - ], - [ - "▁lo", - "yal" - ], - [ - "mem", - "bers" - ], - [ - "member", - "s" - ], - [ - "m", - "embers" - ], - [ - "meister", - "schaft" - ], - [ - "go", - "al" - ], - [ - "ш", - "лен" - ], - [ - "▁се", - "веро" - ], - [ - "▁север", - "о" - ], - [ - "ie", - "nde" - ], - [ - "ien", - "de" - ], - [ - "i", - "ende" - ], - [ - "д", - "ні" - ], - [ - "Pro", - "of" - ], - [ - "▁exp", - "lic" - ], - [ - "▁expl", - "ic" - ], - [ - "▁elect", - "ro" - ], - [ - "ie", - "ls" - ], - [ - "iel", - "s" - ], - [ - "i", - "els" - ], - [ - "re", - "load" - ], - [ - "▁el", - "even" - ], - [ - "▁ele", - "ven" - ], - [ - "▁elev", - "en" - ], - [ - "▁part", - "idos" - ], - [ - "▁partido", - "s" - ], - [ - "în", - "e" - ], - [ - "î", - "ne" - ], - [ - "▁R", - "egin" - ], - [ - "▁Re", - "gin" - ], - [ - "▁Reg", - "in" - ], - [ - "▁é", - "x" - ], - [ - "▁Bu", - "lg" - ], - [ - "▁Bul", - "g" - ], - [ - "▁network", - "ing" - ], - [ - "▁net", - "working" - ], - [ - "▁se", - "parator" - ], - [ - "▁separ", - "ator" - ], - [ - "User", - "Name" - ], - [ - "▁edific", - "io" - ], - [ - "▁M", - "ie" - ], - [ - "▁Mi", - "e" - ], - [ - "▁id", - "le" - ], - [ - "ye", - "d" - ], - [ - "y", - "ed" - ], - [ - "▁pass", - "engers" - ], - [ - "▁passenger", - "s" - ], - [ - "+", - ")" - ], - [ - "me", - "no" - ], - [ - "men", - "o" - ], - [ - "m", - "eno" - ], - [ - "eg", - "gi" - ], - [ - "e", - "ggi" - ], - [ - "▁nice", - "ly" - ], - [ - "▁nic", - "ely" - ], - [ - "end", - "encia" - ], - [ - "enden", - "cia" - ], - [ - "чи", - "й" - ], - [ - "ét", - "és" - ], - [ - "été", - "s" - ], - [ - "ight", - "arrow" - ], - [ - "▁orth", - "ogonal" - ], - [ - "▁H", - "alf" - ], - [ - "▁Hal", - "f" - ], - [ - "▁fe", - "wer" - ], - [ - "▁few", - "er" - ], - [ - "▁pro", - "pi" - ], - [ - "▁prop", - "i" - ], - [ - "▁pr", - "imit" - ], - [ - "▁prim", - "it" - ], - [ - "▁pri", - "mit" - ], - [ - "▁primi", - "t" - ], - [ - "ic", - "ale" - ], - [ - "ical", - "e" - ], - [ - "ica", - "le" - ], - [ - "▁f", - "lower" - ], - [ - "▁fl", - "ower" - ], - [ - "▁flow", - "er" - ], - [ - "▁flo", - "wer" - ], - [ - "mer", - "k" - ], - [ - "m", - "erk" - ], - [ - "▁Оте", - "че" - ], - [ - "▁pers", - "istent" - ], - [ - "▁persist", - "ent" - ], - [ - "▁V", - "ille" - ], - [ - "▁Vill", - "e" - ], - [ - "▁Vi", - "lle" - ], - [ - "▁Vil", - "le" - ], - [ - "Me", - "n" - ], - [ - "M", - "en" - ], - [ - "ga", - "ben" - ], - [ - "gabe", - "n" - ], - [ - "g", - "aben" - ], - [ - "▁Isa", - "ac" - ], - [ - "at", - "ivity" - ], - [ - "ativ", - "ity" - ], - [ - "ati", - "vity" - ], - [ - "▁pół", - "noc" - ], - [ - "▁r", - "ok" - ], - [ - "▁ro", - "k" - ], - [ - "▁", - "rok" - ], - [ - "car", - "ds" - ], - [ - "card", - "s" - ], - [ - "c", - "ards" - ], - [ - "де", - "ния" - ], - [ - "▁ю", - "го" - ], - [ - "▁extra", - "ordinary" - ], - [ - "▁k", - "yr" - ], - [ - "(\"", - "," - ], - [ - "(", - "\"," - ], - [ - "))", - "]" - ], - [ - ")", - ")]" - ], - [ - "▁un", - "ix" - ], - [ - "▁", - "unix" - ], - [ - "ко", - "л" - ], - [ - "▁s", - "ink" - ], - [ - "▁sin", - "k" - ], - [ - "ap", - "sed" - ], - [ - "aps", - "ed" - ], - [ - "▁k", - "ommen" - ], - [ - "▁kom", - "men" - ], - [ - "▁komm", - "en" - ], - [ - "▁", - "kommen" - ], - [ - "▁for", - "cing" - ], - [ - "Ab", - "out" - ], - [ - "▁H", - "alle" - ], - [ - "▁Ha", - "lle" - ], - [ - "▁Hall", - "e" - ], - [ - "▁Hal", - "le" - ], - [ - "▁Maj", - "esty" - ], - [ - "▁Sw", - "itch" - ], - [ - "▁", - "Switch" - ], - [ - "▁ab", - "road" - ], - [ - "▁acceler", - "ation" - ], - [ - "ur", - "bed" - ], - [ - "urb", - "ed" - ], - [ - "▁о", - "стан" - ], - [ - "▁ос", - "тан" - ], - [ - "▁оста", - "н" - ], - [ - "▁ост", - "ан" - ], - [ - "Re", - "ady" - ], - [ - "Read", - "y" - ], - [ - "▁пів", - "ні" - ], - [ - "Br", - "a" - ], - [ - "B", - "ra" - ], - [ - "▁ць", - "ого" - ], - [ - "▁pl", - "ut" - ], - [ - "▁T", - "rain" - ], - [ - "▁Tr", - "ain" - ], - [ - "▁Tra", - "in" - ], - [ - "▁á", - "prilis" - ], - [ - "▁p", - "uesto" - ], - [ - "▁pu", - "esto" - ], - [ - "▁pue", - "sto" - ], - [ - "▁t", - "oss" - ], - [ - "▁to", - "ss" - ], - [ - "▁irre", - "levant" - ], - [ - "▁d", - "ip" - ], - [ - "▁di", - "p" - ], - [ - "se", - "gment" - ], - [ - "seg", - "ment" - ], - [ - "op", - "acity" - ], - [ - "▁lors", - "que" - ], - [ - "▁versch", - "ill" - ], - [ - "ен", - "а" - ], - [ - "е", - "на" - ], - [ - "▁D", - "oc" - ], - [ - "▁Do", - "c" - ], - [ - "▁", - "Doc" - ], - [ - "%%%%", - "%%%%" - ], - [ - "▁b", - "orders" - ], - [ - "▁border", - "s" - ], - [ - "▁bor", - "ders" - ], - [ - "▁bord", - "ers" - ], - [ - "ge", - "bras" - ], - [ - "geb", - "ras" - ], - [ - "gebra", - "s" - ], - [ - "▁r", - "ies" - ], - [ - "▁ri", - "es" - ], - [ - "▁", - "ries" - ], - [ - "▁Olymp", - "edia" - ], - [ - "▁Gener", - "ation" - ], - [ - "met", - "ros" - ], - [ - "metro", - "s" - ], - [ - "▁hor", - "izon" - ], - [ - "▁adapt", - "ation" - ], - [ - "▁Z", - "ahl" - ], - [ - "▁Za", - "hl" - ], - [ - "▁na", - "he" - ], - [ - "▁nah", - "e" - ], - [ - "▁B", - "ug" - ], - [ - "▁Bu", - "g" - ], - [ - "P", - "icture" - ], - [ - "љ", - "и" - ], - [ - "R", - "GB" - ], - [ - "O", - "wner" - ], - [ - "ad", - "in" - ], - [ - "adi", - "n" - ], - [ - "a", - "din" - ], - [ - "▁Catal", - "unya" - ], - [ - "ný", - "ch" - ], - [ - "n", - "ých" - ], - [ - "▁cual", - "quier" - ], - [ - "▁Inst", - "itution" - ], - [ - "▁Instit", - "ution" - ], - [ - "▁Institut", - "ion" - ], - [ - "in", - "sen" - ], - [ - "ins", - "en" - ], - [ - "▁Bras", - "ile" - ], - [ - "▁Brasil", - "e" - ], - [ - "▁f", - "itting" - ], - [ - "▁fit", - "ting" - ], - [ - "De", - "leg" - ], - [ - "Del", - "eg" - ], - [ - "ic", - "two" - ], - [ - "ict", - "wo" - ], - [ - "▁Ex", - "per" - ], - [ - "▁Exp", - "er" - ], - [ - "och", - "astic" - ], - [ - "▁d", - "us" - ], - [ - "▁du", - "s" - ], - [ - "▁по", - "ра" - ], - [ - "▁пор", - "а" - ], - [ - "▁sub", - "string" - ], - [ - "▁subst", - "ring" - ], - [ - "▁subs", - "tring" - ], - [ - "▁substr", - "ing" - ], - [ - "▁", - "substring" - ], - [ - "сси", - "и" - ], - [ - "с", - "сии" - ], - [ - "oi", - "n" - ], - [ - "o", - "in" - ], - [ - "▁ш", - "кола" - ], - [ - "▁шко", - "ла" - ], - [ - "▁c", - "x" - ], - [ - "▁", - "cx" - ], - [ - "▁%", - ")" - ], - [ - "▁", - "%)" - ], - [ - "▁Bud", - "dh" - ], - [ - "▁p", - "ending" - ], - [ - "▁pen", - "ding" - ], - [ - "▁En", - "try" - ], - [ - "▁Ent", - "ry" - ], - [ - "▁", - "Entry" - ], - [ - "▁Be", - "rl" - ], - [ - "▁Ber", - "l" - ], - [ - "▁c", - "ler" - ], - [ - "▁cl", - "er" - ], - [ - "▁cle", - "r" - ], - [ - "▁", - "cler" - ], - [ - "▁S", - "oc" - ], - [ - "▁So", - "c" - ], - [ - "▁r", - "ounded" - ], - [ - "▁round", - "ed" - ], - [ - "▁m", - "v" - ], - [ - "▁", - "mv" - ], - [ - "ít", - "ett" - ], - [ - "▁Di", - "plom" - ], - [ - "▁französ", - "ischen" - ], - [ - "▁G", - "an" - ], - [ - "▁Ga", - "n" - ], - [ - "▁Inv", - "estig" - ], - [ - "▁index", - "Path" - ], - [ - "▁", - "indexPath" - ], - [ - "▁mol", - "ti" - ], - [ - "▁molt", - "i" - ], - [ - "pers", - "istence" - ], - [ - "▁XIX", - "e" - ], - [ - "▁Elect", - "ron" - ], - [ - "b", - "ü" - ], - [ - "ge", - "le" - ], - [ - "gel", - "e" - ], - [ - "g", - "ele" - ], - [ - "▁M", - "aler" - ], - [ - "▁Ma", - "ler" - ], - [ - "▁Mal", - "er" - ], - [ - "▁Male", - "r" - ], - [ - "▁proyect", - "o" - ], - [ - "▁B", - "ath" - ], - [ - "▁Ba", - "th" - ], - [ - "▁Bat", - "h" - ], - [ - "el", - "lers" - ], - [ - "ell", - "ers" - ], - [ - "elle", - "rs" - ], - [ - "eller", - "s" - ], - [ - "▁G", - "P" - ], - [ - "▁", - "GP" - ], - [ - "on", - "ing" - ], - [ - "oni", - "ng" - ], - [ - "o", - "ning" - ], - [ - "clou", - "dflare" - ], - [ - "▁p", - "ři" - ], - [ - "▁př", - "i" - ], - [ - "▁d", - "ed" - ], - [ - "▁de", - "d" - ], - [ - "▁", - "ded" - ], - [ - "▁Od", - "kazy" - ], - [ - "▁M", - "sg" - ], - [ - "▁", - "Msg" - ], - [ - "▁B", - "eing" - ], - [ - "▁Be", - "ing" - ], - [ - "▁Bei", - "ng" - ], - [ - "▁De", - "puis" - ], - [ - "▁Dep", - "uis" - ], - [ - "▁Pri", - "mary" - ], - [ - "▁Prim", - "ary" - ], - [ - "▁Prima", - "ry" - ], - [ - "▁", - "Primary" - ], - [ - "▁App", - "ro" - ], - [ - "▁Ap", - "pro" - ], - [ - "▁form", - "ally" - ], - [ - "▁formal", - "ly" - ], - [ - "ступ", - "ил" - ], - [ - "ступи", - "л" - ], - [ - "▁fue", - "ra" - ], - [ - "▁fu", - "era" - ], - [ - "▁fuer", - "a" - ], - [ - "▁R", - "oot" - ], - [ - "▁Ro", - "ot" - ], - [ - "▁", - "Root" - ], - [ - "▁aut", - "onom" - ], - [ - "▁auto", - "nom" - ], - [ - "▁secret", - "ary" - ], - [ - "▁os", - "ób" - ], - [ - "▁cu", - "ales" - ], - [ - "▁cual", - "es" - ], - [ - "▁Dep", - "ending" - ], - [ - "▁a", - "si" - ], - [ - "▁as", - "i" - ], - [ - "▁", - "asi" - ], - [ - "ve", - "ra" - ], - [ - "ver", - "a" - ], - [ - "v", - "era" - ], - [ - "▁rus", - "se" - ], - [ - "▁russ", - "e" - ], - [ - "▁pro", - "ves" - ], - [ - "▁prov", - "es" - ], - [ - "▁prove", - "s" - ], - [ - "▁pres", - "iden" - ], - [ - "R", - "U" - ], - [ - "▁Wat", - "son" - ], - [ - "▁web", - "pack" - ], - [ - "▁", - "webpack" - ], - [ - "elli", - "gence" - ], - [ - "ellig", - "ence" - ], - [ - "ка", - "м" - ], - [ - "▁Office", - "r" - ], - [ - "▁Offic", - "er" - ], - [ - "▁d", - "elivery" - ], - [ - "▁deliver", - "y" - ], - [ - "▁deli", - "very" - ], - [ - "ж", - "дён" - ], - [ - "▁им", - "пе" - ], - [ - "▁w", - "il" - ], - [ - "▁v", - "esc" - ], - [ - "▁ve", - "sc" - ], - [ - "▁ves", - "c" - ], - [ - "uszt", - "us" - ], - [ - "▁Ge", - "off" - ], - [ - "()", - "}" - ], - [ - "(", - ")}" - ], - [ - "▁F", - "ore" - ], - [ - "▁For", - "e" - ], - [ - "▁Fo", - "re" - ], - [ - "▁w", - "enig" - ], - [ - "▁we", - "nig" - ], - [ - "▁wen", - "ig" - ], - [ - "▁A", - "irl" - ], - [ - "▁Air", - "l" - ], - [ - "▁E", - "fter" - ], - [ - "▁Bre", - "ak" - ], - [ - "▁St", - "äd" - ], - [ - "is", - "miss" - ], - [ - "ism", - "iss" - ], - [ - "í", - "p" - ], - [ - "▁avoid", - "ed" - ], - [ - "▁avo", - "ided" - ], - [ - "▁assert", - "ion" - ], - [ - "D", - "N" - ], - [ - "▁te", - "at" - ], - [ - "▁tea", - "t" - ], - [ - "ín", - "a" - ], - [ - "í", - "na" - ], - [ - "▁mechan", - "ical" - ], - [ - "is", - "u" - ], - [ - "i", - "su" - ], - [ - "@", - "{" - ], - [ - "▁n", - "ou" - ], - [ - "▁no", - "u" - ], - [ - "▁", - "nou" - ], - [ - "Ital", - "ie" - ], - [ - "source", - "forge" - ], - [ - "▁s", - "vo" - ], - [ - "▁sv", - "o" - ], - [ - "▁kir", - "ály" - ], - [ - "▁Re", - "ferences" - ], - [ - "▁Refer", - "ences" - ], - [ - "▁Reference", - "s" - ], - [ - "si", - "x" - ], - [ - "s", - "ix" - ], - [ - "▁Arch", - "ives" - ], - [ - "▁Archiv", - "es" - ], - [ - "▁Archive", - "s" - ], - [ - "▁fin", - "ishing" - ], - [ - "▁finish", - "ing" - ], - [ - "ac", - "je" - ], - [ - "ét", - "at" - ], - [ - "éta", - "t" - ], - [ - "é", - "tat" - ], - [ - "if", - "fs" - ], - [ - "iff", - "s" - ], - [ - "▁st", - "ead" - ], - [ - "▁ste", - "ad" - ], - [ - "▁fe", - "as" - ], - [ - "aw", - "are" - ], - [ - "awa", - "re" - ], - [ - "a", - "ware" - ], - [ - "la", - "nde" - ], - [ - "land", - "e" - ], - [ - "lan", - "de" - ], - [ - "l", - "ande" - ], - [ - "In", - "ject" - ], - [ - "▁A", - "gent" - ], - [ - "▁Ag", - "ent" - ], - [ - "▁Age", - "nt" - ], - [ - "▁", - "Agent" - ], - [ - "▁Norm", - "datei" - ], - [ - "▁a", - "men" - ], - [ - "▁am", - "en" - ], - [ - "▁", - "amen" - ], - [ - "▁Arch", - "itecture" - ], - [ - "az", - "e" - ], - [ - "a", - "ze" - ], - [ - "ș", - "te" - ], - [ - "▁us", - "ar" - ], - [ - "▁c", - "ores" - ], - [ - "▁cor", - "es" - ], - [ - "▁co", - "res" - ], - [ - "▁core", - "s" - ], - [ - "лі", - "н" - ], - [ - "л", - "ін" - ], - [ - "▁C", - "astro" - ], - [ - "▁Cast", - "ro" - ], - [ - "▁v", - "æ" - ], - [ - ">\"", - "," - ], - [ - ">", - "\"," - ], - [ - "om", - "ena" - ], - [ - "ome", - "na" - ], - [ - "omen", - "a" - ], - [ - "▁ge", - "sam" - ], - [ - "▁ges", - "am" - ], - [ - "▁Mart", - "ín" - ], - [ - "▁Martí", - "n" - ], - [ - "eg", - "ung" - ], - [ - "egu", - "ng" - ], - [ - "▁spole", - "č" - ], - [ - "▁ampl", - "itude" - ], - [ - "▁amplit", - "ude" - ], - [ - "▁import", - "ing" - ], - [ - "▁list", - "view" - ], - [ - "TH", - "E" - ], - [ - "T", - "HE" - ], - [ - "zi", - "ale" - ], - [ - "zial", - "e" - ], - [ - "zia", - "le" - ], - [ - "z", - "iale" - ], - [ - "ce", - "des" - ], - [ - "ced", - "es" - ], - [ - "c", - "edes" - ], - [ - "▁particul", - "ier" - ], - [ - "▁Распо", - "дела" - ], - [ - "▁кра", - "й" - ], - [ - "▁d", - "ivent" - ], - [ - "▁di", - "vent" - ], - [ - "▁div", - "ent" - ], - [ - "▁k", - "é" - ], - [ - "▁", - "ké" - ], - [ - "qu", - "it" - ], - [ - "qui", - "t" - ], - [ - "q", - "uit" - ], - [ - "то", - "ром" - ], - [ - "тор", - "ом" - ], - [ - "Check", - "Box" - ], - [ - "▁Zob", - "acz" - ], - [ - "ph", - "e" - ], - [ - "p", - "he" - ], - [ - "pt", - "a" - ], - [ - "p", - "ta" - ], - [ - "▁s", - "jö" - ], - [ - "▁sj", - "ö" - ], - [ - "▁розта", - "ш" - ], - [ - "▁tedes", - "co" - ], - [ - "▁s", - "tal" - ], - [ - "▁st", - "al" - ], - [ - "▁sta", - "l" - ], - [ - "▁", - "stal" - ], - [ - "▁Be", - "ruf" - ], - [ - "▁Ber", - "uf" - ], - [ - "ова", - "я" - ], - [ - "о", - "вая" - ], - [ - "▁s", - "vě" - ], - [ - "▁sv", - "ě" - ], - [ - "▁fl", - "ush" - ], - [ - "▁flu", - "sh" - ], - [ - "▁", - "flush" - ], - [ - "▁від", - "бу" - ], - [ - "▁rad", - "ial" - ], - [ - "▁radi", - "al" - ], - [ - "▁différ", - "entes" - ], - [ - "ан", - "та" - ], - [ - "▁Per", - "ry" - ], - [ - "Col", - "l" - ], - [ - "Co", - "ll" - ], - [ - "C", - "oll" - ], - [ - "li", - "qu" - ], - [ - "l", - "iqu" - ], - [ - "▁Option", - "al" - ], - [ - "▁Opt", - "ional" - ], - [ - "▁", - "Optional" - ], - [ - "▁Сан", - "кт" - ], - [ - "▁LIN", - "Q" - ], - [ - "▁Fran", - "c" - ], - [ - "▁Fr", - "anc" - ], - [ - "▁Fra", - "nc" - ], - [ - "ci", - "je" - ], - [ - "c", - "ije" - ], - [ - "▁Gu", - "illaume" - ], - [ - "kn", - "ow" - ], - [ - "k", - "now" - ], - [ - "▁Un", - "its" - ], - [ - "▁Unit", - "s" - ], - [ - "ol", - "k" - ], - [ - "▁Syst", - "ème" - ], - [ - "▁S", - "ales" - ], - [ - "▁Sal", - "es" - ], - [ - "▁Sa", - "les" - ], - [ - "▁ehemal", - "igen" - ], - [ - "ми", - "рова" - ], - [ - "мир", - "ова" - ], - [ - "x", - "html" - ], - [ - "set", - "opt" - ], - [ - "▁m", - "ellan" - ], - [ - "▁mel", - "lan" - ], - [ - "▁z", - "ie" - ], - [ - "▁", - "zie" - ], - [ - "▁gi", - "ant" - ], - [ - "Bo", - "ard" - ], - [ - "▁C", - "aval" - ], - [ - "▁Ca", - "val" - ], - [ - "▁Cav", - "al" - ], - [ - "▁def", - "ence" - ], - [ - "--", - "--------" - ], - [ - "----", - "------" - ], - [ - "--------", - "--" - ], - [ - "---", - "-------" - ], - [ - "------", - "----" - ], - [ - "-----", - "-----" - ], - [ - "-------", - "---" - ], - [ - "ps", - "hire" - ], - [ - "p", - "shire" - ], - [ - "ma", - "rt" - ], - [ - "mar", - "t" - ], - [ - "m", - "art" - ], - [ - "▁Di", - "oc" - ], - [ - "is", - "kt" - ], - [ - "isk", - "t" - ], - [ - "▁in", - "se" - ], - [ - "▁ins", - "e" - ], - [ - "▁é", - "pisode" - ], - [ - "чи", - "к" - ], - [ - "bar", - "s" - ], - [ - "ba", - "rs" - ], - [ - "b", - "ars" - ], - [ - "Si", - "to" - ], - [ - "S", - "ito" - ], - [ - "▁integr", - "ity" - ], - [ - "au", - "ff" - ], - [ - "auf", - "f" - ], - [ - "a", - "uff" - ], - [ - "▁v", - "är" - ], - [ - "▁vä", - "r" - ], - [ - "Az", - "ure" - ], - [ - "▁star", - "b" - ], - [ - "▁sta", - "rb" - ], - [ - "▁кон", - "тра" - ], - [ - "▁Мекси", - "чка" - ], - [ - "▁за", - "па" - ], - [ - "▁Mount", - "ains" - ], - [ - "▁Mountain", - "s" - ], - [ - "}}", - "=" - ], - [ - "}", - "}=" - ], - [ - "▁pull", - "ing" - ], - [ - "▁pul", - "ling" - ], - [ - "▁sat", - "ellite" - ], - [ - "▁at", - "oms" - ], - [ - "▁atom", - "s" - ], - [ - "▁profes", - "or" - ], - [ - "▁repeated", - "ly" - ], - [ - "▁repeat", - "edly" - ], - [ - "▁inv", - "asion" - ], - [ - "▁invas", - "ion" - ], - [ - "program", - "ming" - ], - [ - "├", - "──" - ], - [ - "▁L", - "ip" - ], - [ - "▁Li", - "p" - ], - [ - "вши", - "е" - ], - [ - "в", - "шие" - ], - [ - "▁k", - "een" - ], - [ - "▁ke", - "en" - ], - [ - "▁crit", - "ics" - ], - [ - "▁critic", - "s" - ], - [ - "▁N", - "icola" - ], - [ - "▁Nicol", - "a" - ], - [ - "▁Nic", - "ola" - ], - [ - "▁Ni", - "cola" - ], - [ - "▁C", - "and" - ], - [ - "▁Can", - "d" - ], - [ - "▁Ca", - "nd" - ], - [ - "▁dist", - "int" - ], - [ - "▁he", - "ading" - ], - [ - "▁head", - "ing" - ], - [ - "p", - "ragma" - ], - [ - "{", - "|" - ], - [ - "ym", - "en" - ], - [ - "yme", - "n" - ], - [ - "y", - "men" - ], - [ - "▁ter", - "rain" - ], - [ - "▁terra", - "in" - ], - [ - "ied", - "enis" - ], - [ - "▁bes", - "onders" - ], - [ - "▁nomin", - "ated" - ], - [ - "BO", - "OL" - ], - [ - "▁K", - "ay" - ], - [ - "▁Ka", - "y" - ], - [ - "ci", - "an" - ], - [ - "cia", - "n" - ], - [ - "c", - "ian" - ], - [ - "st", - "elle" - ], - [ - "ste", - "lle" - ], - [ - "stell", - "e" - ], - [ - "▁disput", - "e" - ], - [ - "▁disp", - "ute" - ], - [ - "▁", - "щ" - ], - [ - "Data", - "Set" - ], - [ - "no", - "thing" - ], - [ - "not", - "hing" - ], - [ - "n", - "othing" - ], - [ - "Aut", - "om" - ], - [ - "Auto", - "m" - ], - [ - "hör", - "en" - ], - [ - "hö", - "ren" - ], - [ - "▁s", - "hed" - ], - [ - "▁sh", - "ed" - ], - [ - "▁she", - "d" - ], - [ - "▁p", - "aused" - ], - [ - "▁pa", - "used" - ], - [ - "▁pause", - "d" - ], - [ - "▁pau", - "sed" - ], - [ - "sa", - "n" - ], - [ - "s", - "an" - ], - [ - "▁nun", - "ca" - ], - [ - "!(", - "\"" - ], - [ - "!", - "(\"" - ], - [ - "▁po", - "łoż" - ], - [ - "Se", - "cret" - ], - [ - "Sec", - "ret" - ], - [ - "▁Do", - "main" - ], - [ - "▁Dom", - "ain" - ], - [ - "▁", - "Domain" - ], - [ - "▁воз", - "мож" - ], - [ - "X", - "V" - ], - [ - "l", - "v" - ], - [ - "ik", - "h" - ], - [ - "i", - "kh" - ], - [ - "▁S", - "ony" - ], - [ - "▁So", - "ny" - ], - [ - "▁Son", - "y" - ], - [ - "m", - "q" - ], - [ - "ot", - "rop" - ], - [ - "otr", - "op" - ], - [ - "▁Log", - "ger" - ], - [ - "▁", - "Logger" - ], - [ - "▁thre", - "at" - ], - [ - "as", - "ted" - ], - [ - "ast", - "ed" - ], - [ - "aste", - "d" - ], - [ - "a", - "sted" - ], - [ - "зь", - "ко" - ], - [ - "▁fre", - "ely" - ], - [ - "▁free", - "ly" - ], - [ - "▁improve", - "ments" - ], - [ - "▁improv", - "ements" - ], - [ - "▁improvement", - "s" - ], - [ - "ist", - "ema" - ], - [ - "iste", - "ma" - ], - [ - "▁illustr", - "ate" - ], - [ - "▁t", - "act" - ], - [ - "▁ta", - "ct" - ], - [ - "▁fig", - "ur" - ], - [ - "ué", - "s" - ], - [ - "u", - "és" - ], - [ - "rim", - "inal" - ], - [ - "rimin", - "al" - ], - [ - "od", - "on" - ], - [ - "odo", - "n" - ], - [ - "o", - "don" - ], - [ - "int", - "endo" - ], - [ - "▁influ", - "enced" - ], - [ - "▁influence", - "d" - ], - [ - "▁influen", - "ced" - ], - [ - "FF", - "ER" - ], - [ - "▁G", - "host" - ], - [ - "▁Gh", - "ost" - ], - [ - "▁со", - "вер" - ], - [ - "▁сов", - "ер" - ], - [ - "na", - "d" - ], - [ - "n", - "ad" - ], - [ - "ion", - "ed" - ], - [ - "io", - "ned" - ], - [ - "ione", - "d" - ], - [ - "i", - "oned" - ], - [ - "▁Event", - "s" - ], - [ - "▁Ev", - "ents" - ], - [ - "▁Even", - "ts" - ], - [ - "▁", - "Events" - ], - [ - "▁wr", - "apping" - ], - [ - "▁wra", - "pping" - ], - [ - "▁wrap", - "ping" - ], - [ - "--------", - "-+" - ], - [ - "---", - "------+" - ], - [ - "------", - "---+" - ], - [ - "-----", - "----+" - ], - [ - "-------", - "--+" - ], - [ - "fi", - "f" - ], - [ - "f", - "if" - ], - [ - "▁(", - "**" - ], - [ - "▁(*", - "*" - ], - [ - "={", - "{" - ], - [ - "=", - "{{" - ], - [ - "ма", - "ль" - ], - [ - "м", - "аль" - ], - [ - "▁loss", - "es" - ], - [ - "▁Gal", - "erie" - ], - [ - "te", - "l" - ], - [ - "t", - "el" - ], - [ - "▁лю", - "того" - ], - [ - "▁K", - "ru" - ], - [ - "▁Kr", - "u" - ], - [ - "▁P", - "olen" - ], - [ - "▁Pol", - "en" - ], - [ - "▁Po", - "len" - ], - [ - "ні", - "м" - ], - [ - "ne", - "ar" - ], - [ - "nea", - "r" - ], - [ - "n", - "ear" - ], - [ - "▁sh", - "ame" - ], - [ - "▁moy", - "enne" - ], - [ - "▁C", - "P" - ], - [ - "▁", - "CP" - ], - [ - "pre", - "is" - ], - [ - "▁pass", - "enger" - ], - [ - "le", - "k" - ], - [ - "l", - "ek" - ], - [ - "ion", - "ales" - ], - [ - "ional", - "es" - ], - [ - "ionale", - "s" - ], - [ - "iona", - "les" - ], - [ - "kaf", - "ka" - ], - [ - "k", - "afka" - ], - [ - "▁partic", - "ipe" - ], - [ - "▁particip", - "e" - ], - [ - "▁parti", - "cipe" - ], - [ - "▁partici", - "pe" - ], - [ - "▁memb", - "ership" - ], - [ - "▁member", - "ship" - ], - [ - "▁members", - "hip" - ], - [ - "[", - "_" - ], - [ - "land", - "o" - ], - [ - "lan", - "do" - ], - [ - "l", - "ando" - ], - [ - "st", - "elling" - ], - [ - "stell", - "ing" - ], - [ - "Se", - "m" - ], - [ - "S", - "em" - ], - [ - "go", - "n" - ], - [ - "g", - "on" - ], - [ - "▁Cor", - "rect" - ], - [ - "▁v", - "alle" - ], - [ - "▁val", - "le" - ], - [ - "▁va", - "lle" - ], - [ - "▁vall", - "e" - ], - [ - "▁read", - "ily" - ], - [ - "▁Dok", - "ument" - ], - [ - "hon", - "neur" - ], - [ - "h", - "onneur" - ], - [ - "▁test", - "im" - ], - [ - "ul", - "ative" - ], - [ - "do", - "Filter" - ], - [ - "▁domin", - "ant" - ], - [ - "am", - "mer" - ], - [ - "amm", - "er" - ], - [ - "▁ко", - "ја" - ], - [ - "▁M", - "onsieur" - ], - [ - "ze", - "g" - ], - [ - "z", - "eg" - ], - [ - "▁вій", - "ни" - ], - [ - "▁F", - "o" - ], - [ - "▁A", - "my" - ], - [ - "▁Am", - "y" - ], - [ - "▁", - "¡" - ], - [ - "▁febru", - "ár" - ], - [ - "▁down", - "loading" - ], - [ - "▁download", - "ing" - ], - [ - "▁l", - "eng" - ], - [ - "▁le", - "ng" - ], - [ - "▁len", - "g" - ], - [ - "\\}$", - "," - ], - [ - "\\}", - "$," - ], - [ - "\\", - "}$," - ], - [ - "▁ne", - "at" - ], - [ - "▁C", - "ache" - ], - [ - "▁Ca", - "che" - ], - [ - "▁", - "Cache" - ], - [ - "IC", - "ATION" - ], - [ - "▁de", - "ve" - ], - [ - "▁dev", - "e" - ], - [ - "▁s", - "orrow" - ], - [ - "▁sor", - "row" - ], - [ - "sl", - "ow" - ], - [ - "s", - "low" - ], - [ - "▁hin", - "aus" - ], - [ - "▁hina", - "us" - ], - [ - "▁recon", - "oc" - ], - [ - "▁Lin", - "ked" - ], - [ - "▁Link", - "ed" - ], - [ - "▁Sh", - "aw" - ], - [ - "mar", - "ket" - ], - [ - "mark", - "et" - ], - [ - "▁D", - "ic" - ], - [ - "▁Di", - "c" - ], - [ - "▁S", - "ki" - ], - [ - "▁Sk", - "i" - ], - [ - "▁del", - "imiter" - ], - [ - "▁Main", - "Activity" - ], - [ - "▁", - "MainActivity" - ], - [ - "▁Mus", - "ical" - ], - [ - "▁Music", - "al" - ], - [ - "▁Re", - "yn" - ], - [ - "▁Rey", - "n" - ], - [ - "Scroll", - "View" - ], - [ - "▁convent", - "ional" - ], - [ - "▁convention", - "al" - ], - [ - "en", - "ça" - ], - [ - "enç", - "a" - ], - [ - "▁re", - "factor" - ], - [ - "▁ref", - "actor" - ], - [ - "'", - "-" - ], - [ - "▁H", - "ed" - ], - [ - "▁He", - "d" - ], - [ - "spr", - "ech" - ], - [ - "spre", - "ch" - ], - [ - "▁ath", - "let" - ], - [ - "▁e", - "species" - ], - [ - "▁es", - "pecies" - ], - [ - "▁espe", - "cies" - ], - [ - "▁espec", - "ies" - ], - [ - "▁especie", - "s" - ], - [ - "▁Sch", - "ön" - ], - [ - "▁kle", - "inen" - ], - [ - "▁kleine", - "n" - ], - [ - "▁klein", - "en" - ], - [ - "ш", - "ко" - ], - [ - "▁Й", - "о" - ], - [ - "▁H", - "appy" - ], - [ - "▁Ha", - "ppy" - ], - [ - "multi", - "row" - ], - [ - "▁august", - "i" - ], - [ - "▁G", - "and" - ], - [ - "▁Ga", - "nd" - ], - [ - "▁Gan", - "d" - ], - [ - "▁appoint", - "ment" - ], - [ - "▁Medi", - "abestanden" - ], - [ - "Th", - "ree" - ], - [ - "▁Kenn", - "eth" - ], - [ - "NE", - "W" - ], - [ - "▁Not", - "ification" - ], - [ - "▁", - "Notification" - ], - [ - "▁Mar", - "x" - ], - [ - "▁Ma", - "rx" - ], - [ - "▁in", - "sc" - ], - [ - "▁ins", - "c" - ], - [ - "Mo", - "r" - ], - [ - "M", - "or" - ], - [ - "вы", - "й" - ], - [ - "в", - "ый" - ], - [ - "vä", - "st" - ], - [ - "v", - "äst" - ], - [ - "vi", - "dia" - ], - [ - "vid", - "ia" - ], - [ - "v", - "idia" - ], - [ - "▁demonstr", - "ated" - ], - [ - "▁demonstrate", - "d" - ], - [ - "font", - "s" - ], - [ - "fon", - "ts" - ], - [ - "▁k", - "amen" - ], - [ - "▁kam", - "en" - ], - [ - "▁ka", - "men" - ], - [ - "▁S", - "ter" - ], - [ - "▁St", - "er" - ], - [ - "▁Ste", - "r" - ], - [ - "▁mieszkań", - "ców" - ], - [ - "▁K", - "oh" - ], - [ - "▁Ko", - "h" - ], - [ - "~$", - "\\" - ], - [ - "~", - "$\\" - ], - [ - "»)", - "." - ], - [ - "»", - ")." - ], - [ - "re", - "ne" - ], - [ - "ren", - "e" - ], - [ - "r", - "ene" - ], - [ - "ins", - "ic" - ], - [ - "ic", - "ká" - ], - [ - "ick", - "á" - ], - [ - "xy", - "gen" - ], - [ - "▁m", - "n" - ], - [ - "▁", - "mn" - ], - [ - "▁s", - "ched" - ], - [ - "▁sc", - "hed" - ], - [ - "▁sch", - "ed" - ], - [ - "▁sche", - "d" - ], - [ - "AS", - "C" - ], - [ - "A", - "SC" - ], - [ - "I", - "g" - ], - [ - "▁Const", - "ant" - ], - [ - "▁opport", - "un" - ], - [ - "▁My", - "Class" - ], - [ - "se", - "f" - ], - [ - "s", - "ef" - ], - [ - "op", - "ed" - ], - [ - "ope", - "d" - ], - [ - "o", - "ped" - ], - [ - "▁inj", - "ured" - ], - [ - "VI", - "S" - ], - [ - "V", - "IS" - ], - [ - "▁P", - "ero" - ], - [ - "▁Per", - "o" - ], - [ - "▁Pe", - "ro" - ], - [ - "▁U", - "ntil" - ], - [ - "▁Un", - "til" - ], - [ - "▁f", - "lesh" - ], - [ - "▁fl", - "esh" - ], - [ - "▁fle", - "sh" - ], - [ - "orph", - "ism" - ], - [ - "▁Port", - "al" - ], - [ - "▁Por", - "tal" - ], - [ - "▁gmin", - "y" - ], - [ - "▁вла", - "сти" - ], - [ - "▁N", - "ä" - ], - [ - "кти", - "че" - ], - [ - "к", - "тиче" - ], - [ - "▁h", - "rab" - ], - [ - "▁hr", - "ab" - ], - [ - "▁C", - "ub" - ], - [ - "▁Cu", - "b" - ], - [ - "av", - "oir" - ], - [ - "avo", - "ir" - ], - [ - "a", - "voir" - ], - [ - "▁L", - "ars" - ], - [ - "▁La", - "rs" - ], - [ - "▁Lar", - "s" - ], - [ - "▁Бе", - "ло" - ], - [ - "▁seizo", - "en" - ], - [ - "▁Gen", - "omsnitt" - ], - [ - "▁L", - "il" - ], - [ - "▁Li", - "l" - ], - [ - "▁P", - "ool" - ], - [ - "▁Po", - "ol" - ], - [ - "▁", - "Pool" - ], - [ - "▁D", - "ios" - ], - [ - "▁Di", - "os" - ], - [ - "T", - "X" - ], - [ - "ae", - "s" - ], - [ - "a", - "es" - ], - [ - "aut", - "ore" - ], - [ - "auto", - "re" - ], - [ - "autor", - "e" - ], - [ - "Al", - "pha" - ], - [ - "st", - "ates" - ], - [ - "state", - "s" - ], - [ - "sta", - "tes" - ], - [ - "stat", - "es" - ], - [ - "La", - "b" - ], - [ - "L", - "ab" - ], - [ - "n", - "ederbörd" - ], - [ - "er", - "ton" - ], - [ - "ert", - "on" - ], - [ - "▁b", - "rid" - ], - [ - "▁br", - "id" - ], - [ - "▁", - "brid" - ], - [ - "▁r", - "icht" - ], - [ - "▁rich", - "t" - ], - [ - "▁ric", - "ht" - ], - [ - "▁ri", - "cht" - ], - [ - "▁", - "richt" - ], - [ - "▁E", - "la" - ], - [ - "▁El", - "a" - ], - [ - "▁с", - "ла" - ], - [ - "▁", - "сла" - ], - [ - "▁weap", - "on" - ], - [ - "▁comb", - "att" - ], - [ - "▁combat", - "t" - ], - [ - "ag", - "ar" - ], - [ - "aga", - "r" - ], - [ - "a", - "gar" - ], - [ - "▁reg", - "nig" - ], - [ - "▁util", - "isé" - ], - [ - "▁utilis", - "é" - ], - [ - "▁ser", - "vir" - ], - [ - "▁serv", - "ir" - ], - [ - "▁servi", - "r" - ], - [ - "▁b", - "rick" - ], - [ - "▁br", - "ick" - ], - [ - "▁gate", - "way" - ], - [ - "▁tor", - "raste" - ], - [ - "▁proced", - "ures" - ], - [ - "▁procedure", - "s" - ], - [ - "▁års", - "nederbörd" - ], - [ - "▁Genomsnitt", - "lig" - ], - [ - "чё", - "т" - ], - [ - "ч", - "ёт" - ], - [ - "▁om", - "rå" - ], - [ - "▁", - "områ" - ], - [ - "▁regnig", - "aste" - ], - [ - "▁че", - "сть" - ], - [ - "▁a", - "mid" - ], - [ - "▁am", - "id" - ], - [ - "▁ami", - "d" - ], - [ - "▁gr", - "ateful" - ], - [ - "▁D", - "IS" - ], - [ - "▁DI", - "S" - ], - [ - "▁", - "DIS" - ], - [ - "DA", - "Y" - ], - [ - "▁о", - "ру" - ], - [ - "▁ор", - "у" - ], - [ - "▁", - "ору" - ], - [ - "▁riv", - "ière" - ], - [ - "he", - "ure" - ], - [ - "▁Rich", - "mond" - ], - [ - "▁Com", - "par" - ], - [ - "▁Comp", - "ar" - ], - [ - "▁Н", - "ор" - ], - [ - "▁Но", - "р" - ], - [ - "DO", - "C" - ], - [ - "D", - "OC" - ], - [ - "es", - "ia" - ], - [ - "esi", - "a" - ], - [ - "cal", - "c" - ], - [ - "▁I", - "U" - ], - [ - "▁v", - "org" - ], - [ - "▁vo", - "rg" - ], - [ - "▁vor", - "g" - ], - [ - "▁hab", - "ían" - ], - [ - "▁había", - "n" - ], - [ - "ço", - "it" - ], - [ - "ç", - "oit" - ], - [ - "▁a", - "rist" - ], - [ - "▁ar", - "ist" - ], - [ - "▁к", - "ли" - ], - [ - "▁", - "кли" - ], - [ - "▁S", - "ue" - ], - [ - "▁Su", - "e" - ], - [ - "▁T", - "ouch" - ], - [ - "▁To", - "uch" - ], - [ - "▁", - "Touch" - ], - [ - "▁Writ", - "ing" - ], - [ - "ifi", - "able" - ], - [ - "▁w", - "c" - ], - [ - "▁with", - "draw" - ], - [ - "за", - "р" - ], - [ - "з", - "ар" - ], - [ - "▁present", - "ly" - ], - [ - "▁pres", - "ently" - ], - [ - "▁F", - "K" - ], - [ - "▁pr", - "akt" - ], - [ - "▁pra", - "kt" - ], - [ - "▁col", - "ored" - ], - [ - "▁color", - "ed" - ], - [ - "us", - "b" - ], - [ - "u", - "sb" - ], - [ - "▁Per", - "ú" - ], - [ - "▁pl", - "ata" - ], - [ - "▁pla", - "ta" - ], - [ - "▁plat", - "a" - ], - [ - "▁w", - "ishes" - ], - [ - "▁wish", - "es" - ], - [ - "▁wis", - "hes" - ], - [ - "▁ка", - "м" - ], - [ - "▁", - "кам" - ], - [ - "az", - "ar" - ], - [ - "aza", - "r" - ], - [ - "a", - "zar" - ], - [ - "áv", - "el" - ], - [ - "á", - "vel" - ], - [ - "▁l", - "amp" - ], - [ - "▁la", - "mp" - ], - [ - "bi", - "shop" - ], - [ - "b", - "ishop" - ], - [ - "▁in", - "clusion" - ], - [ - "▁incl", - "usion" - ], - [ - "▁inclus", - "ion" - ], - [ - "j", - "q" - ], - [ - "ar", - "th" - ], - [ - "art", - "h" - ], - [ - "▁F", - "lag" - ], - [ - "▁Fl", - "ag" - ], - [ - "▁", - "Flag" - ], - [ - "▁но", - "р" - ], - [ - "▁н", - "ор" - ], - [ - "æ", - "dia" - ], - [ - "UN", - "CTION" - ], - [ - "▁Bahn", - "hof" - ], - [ - "▁appro", - "aching" - ], - [ - "▁approach", - "ing" - ], - [ - "▁G", - "ött" - ], - [ - "▁Gö", - "tt" - ], - [ - "▁c", - "ube" - ], - [ - "▁cu", - "be" - ], - [ - "▁cub", - "e" - ], - [ - "▁arg", - "ued" - ], - [ - "▁argue", - "d" - ], - [ - "▁Th", - "ings" - ], - [ - "Gu", - "i" - ], - [ - "G", - "ui" - ], - [ - "до", - "ви" - ], - [ - "дов", - "и" - ], - [ - "д", - "ови" - ], - [ - "▁re", - "cre" - ], - [ - "▁rec", - "re" - ], - [ - "▁ré", - "seau" - ], - [ - "▁rés", - "eau" - ], - [ - "▁sign", - "ifica" - ], - [ - "▁signific", - "a" - ], - [ - "Gi", - "t" - ], - [ - "G", - "it" - ], - [ - "geb", - "racht" - ], - [ - "gebra", - "cht" - ], - [ - "▁l", - "iga" - ], - [ - "▁li", - "ga" - ], - [ - "▁lig", - "a" - ], - [ - "▁", - "liga" - ], - [ - "▁ass", - "ured" - ], - [ - "al", - "us" - ], - [ - "alu", - "s" - ], - [ - "a", - "lus" - ], - [ - "ри", - "т" - ], - [ - "р", - "ит" - ], - [ - "▁э", - "нциклопеди" - ], - [ - "▁%", - ")." - ], - [ - "▁%)", - "." - ], - [ - "▁", - "%)." - ], - [ - "▁Prem", - "ière" - ], - [ - "▁declar", - "ations" - ], - [ - "▁declaration", - "s" - ], - [ - "▁tr", - "icky" - ], - [ - "▁trick", - "y" - ], - [ - "▁pro", - "files" - ], - [ - "▁prof", - "iles" - ], - [ - "▁profile", - "s" - ], - [ - "▁profil", - "es" - ], - [ - "▁F", - "on" - ], - [ - "▁Fo", - "n" - ], - [ - "▁J", - "as" - ], - [ - "▁Ja", - "s" - ], - [ - "â", - "r" - ], - [ - "ba", - "bel" - ], - [ - "b", - "abel" - ], - [ - "▁Fr", - "iday" - ], - [ - "▁Fri", - "day" - ], - [ - "▁Frid", - "ay" - ], - [ - "▁jú", - "nius" - ], - [ - "▁c", - "ols" - ], - [ - "▁col", - "s" - ], - [ - "▁co", - "ls" - ], - [ - "▁", - "cols" - ], - [ - "▁EX", - "ISTS" - ], - [ - "▁Ital", - "iana" - ], - [ - "▁Italian", - "a" - ], - [ - "▁Italia", - "na" - ], - [ - "▁author", - "ization" - ], - [ - "▁s", - "ulle" - ], - [ - "▁su", - "lle" - ], - [ - "▁sul", - "le" - ], - [ - "▁sull", - "e" - ], - [ - "▁E", - "mb" - ], - [ - "▁Em", - "b" - ], - [ - "▁Vari", - "able" - ], - [ - "▁", - "Variable" - ], - [ - "tr", - "ees" - ], - [ - "tre", - "es" - ], - [ - "tree", - "s" - ], - [ - "t", - "rees" - ], - [ - "▁F", - "ly" - ], - [ - "▁Fl", - "y" - ], - [ - "ri", - "ors" - ], - [ - "rio", - "rs" - ], - [ - "rior", - "s" - ], - [ - "r", - "iors" - ], - [ - "▁da", - "mals" - ], - [ - "▁dam", - "als" - ], - [ - "▁find", - "et" - ], - [ - "▁fin", - "det" - ], - [ - "▁Se", - "pt" - ], - [ - "▁Sep", - "t" - ], - [ - "▁m", - "undial" - ], - [ - "▁rem", - "oval" - ], - [ - "▁remov", - "al" - ], - [ - "▁long", - "itude" - ], - [ - "▁longitud", - "e" - ], - [ - "cl", - "ic" - ], - [ - "cli", - "c" - ], - [ - "c", - "lic" - ], - [ - "▁f", - "ade" - ], - [ - "▁fa", - "de" - ], - [ - "▁", - "fade" - ], - [ - "▁grad", - "le" - ], - [ - "▁", - "gradle" - ], - [ - "▁z", - "ák" - ], - [ - "▁zá", - "k" - ], - [ - "▁tim", - "ing" - ], - [ - "▁ti", - "ming" - ], - [ - "tr", - "ightarrow" - ], - [ - "t", - "rightarrow" - ], - [ - "at", - "ia" - ], - [ - "ati", - "a" - ], - [ - "-", - "." - ], - [ - "uch", - "e" - ], - [ - "uc", - "he" - ], - [ - "u", - "che" - ], - [ - "▁ser", - "ialize" - ], - [ - "▁serial", - "ize" - ], - [ - "▁H", - "mm" - ], - [ - "▁Represent", - "atives" - ], - [ - "ba", - "h" - ], - [ - "b", - "ah" - ], - [ - "re", - "nd" - ], - [ - "ren", - "d" - ], - [ - "r", - "end" - ], - [ - "ass", - "ador" - ], - [ - "assa", - "dor" - ], - [ - "▁sh", - "ield" - ], - [ - "uc", - "ion" - ], - [ - "u", - "cion" - ], - [ - "▁am", - "éricaine" - ], - [ - "▁améric", - "aine" - ], - [ - "▁américain", - "e" - ], - [ - "z", - "ę" - ], - [ - "vi", - "lla" - ], - [ - "vil", - "la" - ], - [ - "v", - "illa" - ], - [ - "▁hom", - "bre" - ], - [ - "ás", - "s" - ], - [ - "á", - "ss" - ], - [ - "▁S", - "F" - ], - [ - "▁", - "SF" - ], - [ - "▁repe", - "ating" - ], - [ - "▁repeat", - "ing" - ], - [ - "▁c", - "riter" - ], - [ - "▁cr", - "iter" - ], - [ - "▁crit", - "er" - ], - [ - "▁cri", - "ter" - ], - [ - "▁St", - "ruct" - ], - [ - "▁Str", - "uct" - ], - [ - "▁", - "Struct" - ], - [ - "??", - "?" - ], - [ - "?", - "??" - ], - [ - "▁che", - "ap" - ], - [ - "▁r", - "ings" - ], - [ - "▁ring", - "s" - ], - [ - "▁rin", - "gs" - ], - [ - "ab", - "häng" - ], - [ - "▁c", - "orte" - ], - [ - "▁cor", - "te" - ], - [ - "▁cort", - "e" - ], - [ - "▁admin", - "ist" - ], - [ - "ix", - "on" - ], - [ - "gy", - "pt" - ], - [ - "▁punt", - "os" - ], - [ - "▁punto", - "s" - ], - [ - "▁me", - "zi" - ], - [ - "▁mez", - "i" - ], - [ - "▁po", - "chod" - ], - [ - "▁poc", - "hod" - ], - [ - "is", - "ko" - ], - [ - "isk", - "o" - ], - [ - "i", - "sko" - ], - [ - "ni", - "ę" - ], - [ - "n", - "ię" - ], - [ - "▁о", - "су" - ], - [ - "▁ос", - "у" - ], - [ - "▁á", - "r" - ], - [ - "▁", - "ár" - ], - [ - "те", - "льной" - ], - [ - "тель", - "ной" - ], - [ - "тельно", - "й" - ], - [ - "▁Metropol", - "itan" - ], - [ - "ji", - "n" - ], - [ - "j", - "in" - ], - [ - "ze", - "ss" - ], - [ - "zes", - "s" - ], - [ - "z", - "ess" - ], - [ - "▁ві", - "ці" - ], - [ - "▁conflic", - "ts" - ], - [ - "▁conflict", - "s" - ], - [ - "ij", - "st" - ], - [ - "▁Mar", - "ket" - ], - [ - "▁Mark", - "et" - ], - [ - "ст", - "ров" - ], - [ - "стро", - "в" - ], - [ - "стр", - "ов" - ], - [ - "▁\"", - ",\"" - ], - [ - "▁\",", - "\"" - ], - [ - "▁", - "\",\"" - ], - [ - "▁Sc", - "roll" - ], - [ - "▁", - "Scroll" - ], - [ - "gu", - "n" - ], - [ - "g", - "un" - ], - [ - "та", - "ра" - ], - [ - "тар", - "а" - ], - [ - "▁am", - "ateur" - ], - [ - "▁r", - "óż" - ], - [ - "pos", - "s" - ], - [ - "po", - "ss" - ], - [ - "p", - "oss" - ], - [ - "▁general", - "ized" - ], - [ - "▁H", - "arm" - ], - [ - "▁Har", - "m" - ], - [ - "▁Ha", - "rm" - ], - [ - "ci", - "ta" - ], - [ - "cit", - "a" - ], - [ - "c", - "ita" - ], - [ - "▁Sw", - "itzerland" - ], - [ - "ic", - "ola" - ], - [ - "ico", - "la" - ], - [ - "icol", - "a" - ], - [ - "i", - "cola" - ], - [ - "▁m", - "uit" - ], - [ - "▁mu", - "it" - ], - [ - "loc", - "ated" - ], - [ - "▁c", - "ó" - ], - [ - "▁a", - "rose" - ], - [ - "▁ar", - "ose" - ], - [ - "▁commun", - "auté" - ], - [ - "})", - "^" - ], - [ - "}", - ")^" - ], - [ - "vis", - "ibility" - ], - [ - "íd", - "a" - ], - [ - "í", - "da" - ], - [ - "▁F", - "B" - ], - [ - "▁", - "FB" - ], - [ - "▁Fre", - "und" - ], - [ - "ga", - "t" - ], - [ - "g", - "at" - ], - [ - "\":", - "{\"" - ], - [ - "int", - "ellij" - ], - [ - "if", - "ie" - ], - [ - "ifi", - "e" - ], - [ - "hm", - "en" - ], - [ - "h", - "men" - ], - [ - "▁éd", - "ition" - ], - [ - "▁", - "édition" - ], - [ - "▁ко", - "је" - ], - [ - "▁ін", - "ших" - ], - [ - "om", - "ing" - ], - [ - "omin", - "g" - ], - [ - "omi", - "ng" - ], - [ - "o", - "ming" - ], - [ - "▁arqu", - "itect" - ], - [ - "▁Pres", - "idente" - ], - [ - "▁President", - "e" - ], - [ - "▁П", - "ід" - ], - [ - "▁ca", - "bin" - ], - [ - "▁cab", - "in" - ], - [ - "The", - "orem" - ], - [ - "▁G", - "ay" - ], - [ - "▁Ga", - "y" - ], - [ - "if", - "ice" - ], - [ - "ific", - "e" - ], - [ - "ifi", - "ce" - ], - [ - "▁h", - "ect" - ], - [ - "▁he", - "ct" - ], - [ - "l", - "ą" - ], - [ - "irm", - "ingham" - ], - [ - "▁sem", - "antic" - ], - [ - "▁Louis", - "iana" - ], - [ - "▁sac", - "rifice" - ], - [ - "▁sacr", - "ifice" - ], - [ - "▁sacrific", - "e" - ], - [ - "▁Christ", - "oph" - ], - [ - "▁Exec", - "utive" - ], - [ - "_", - "+" - ], - [ - "j", - "ák" - ], - [ - "▁s", - "eria" - ], - [ - "▁se", - "ria" - ], - [ - "▁ser", - "ia" - ], - [ - "▁Over", - "flow" - ], - [ - "▁", - "Overflow" - ], - [ - "▁Lu", - "cy" - ], - [ - "▁Luc", - "y" - ], - [ - "▁mel", - "hor" - ], - [ - "▁vo", - "ices" - ], - [ - "▁voice", - "s" - ], - [ - "cz", - "a" - ], - [ - "c", - "za" - ], - [ - "▁ка", - "пи" - ], - [ - "▁университе", - "та" - ], - [ - "IN", - "CT" - ], - [ - "▁col", - "oc" - ], - [ - "▁co", - "loc" - ], - [ - "▁pr", - "ue" - ], - [ - "▁ge", - "omet" - ], - [ - "▁geom", - "et" - ], - [ - "▁di", - "retto" - ], - [ - "▁dire", - "tto" - ], - [ - "▁dir", - "etto" - ], - [ - "▁dirett", - "o" - ], - [ - "re", - "so" - ], - [ - "res", - "o" - ], - [ - "r", - "eso" - ], - [ - "▁A", - "kt" - ], - [ - "▁Ak", - "t" - ], - [ - "▁un", - "h" - ], - [ - "▁се", - "ри" - ], - [ - "▁сер", - "и" - ], - [ - "▁Al", - "ert" - ], - [ - "▁Ale", - "rt" - ], - [ - "▁", - "Alert" - ], - [ - "We", - "l" - ], - [ - "W", - "el" - ], - [ - "au", - "di" - ], - [ - "aud", - "i" - ], - [ - "a", - "udi" - ], - [ - "äl", - "er" - ], - [ - "ä", - "ler" - ], - [ - "▁gu", - "ests" - ], - [ - "▁guest", - "s" - ], - [ - "▁и", - "де" - ], - [ - "St", - "udio" - ], - [ - "▁ка", - "те" - ], - [ - "▁ex", - "ponent" - ], - [ - "▁expon", - "ent" - ], - [ - "rz", - "e" - ], - [ - "r", - "ze" - ], - [ - "pm", - "od" - ], - [ - "p", - "mod" - ], - [ - "ro", - "lle" - ], - [ - "roll", - "e" - ], - [ - "rol", - "le" - ], - [ - "▁Lim", - "ited" - ], - [ - "Al", - "lemagne" - ], - [ - "▁p", - "ity" - ], - [ - "▁pi", - "ty" - ], - [ - "▁pit", - "y" - ], - [ - "▁l", - "ä" - ], - [ - "▁", - "lä" - ], - [ - "▁run", - "ner" - ], - [ - "▁", - "runner" - ], - [ - "ke", - "nde" - ], - [ - "ken", - "de" - ], - [ - "k", - "ende" - ], - [ - "E", - "Q" - ], - [ - "▁M", - "M" - ], - [ - "▁", - "MM" - ], - [ - "sz", - "ág" - ], - [ - "по", - "ді" - ], - [ - "▁reg", - "ret" - ], - [ - "▁publi", - "é" - ], - [ - "▁depart", - "amento" - ], - [ - "▁acc", - "used" - ], - [ - "▁accus", - "ed" - ], - [ - "h", - "p" - ], - [ - "▁P", - "fl" - ], - [ - "▁Pf", - "l" - ], - [ - "▁S", - "int" - ], - [ - "▁Si", - "nt" - ], - [ - "▁Sin", - "t" - ], - [ - "▁ek", - "onom" - ], - [ - "ra", - "ctor" - ], - [ - "rac", - "tor" - ], - [ - "ract", - "or" - ], - [ - "r", - "actor" - ], - [ - "▁П", - "ів" - ], - [ - "▁aw", - "ful" - ], - [ - "owa", - "ć" - ], - [ - "]", - "->" - ], - [ - "▁F", - "ine" - ], - [ - "▁Fin", - "e" - ], - [ - "С", - "а" - ], - [ - "ti", - "s" - ], - [ - "t", - "is" - ], - [ - "ét", - "a" - ], - [ - "é", - "ta" - ], - [ - "▁Ро", - "ди" - ], - [ - "▁Düsseld", - "orf" - ], - [ - "LO", - "B" - ], - [ - "L", - "OB" - ], - [ - "os", - "as" - ], - [ - "osa", - "s" - ], - [ - "wer", - "ke" - ], - [ - "werk", - "e" - ], - [ - "▁l", - "ance" - ], - [ - "▁lan", - "ce" - ], - [ - "▁листо", - "пада" - ], - [ - "▁in", - "complete" - ], - [ - "▁P", - "icture" - ], - [ - "▁", - "Picture" - ], - [ - "('", - "\\" - ], - [ - "(", - "'\\" - ], - [ - "es", - "ters" - ], - [ - "est", - "ers" - ], - [ - "ester", - "s" - ], - [ - "este", - "rs" - ], - [ - "e", - "sters" - ], - [ - "▁belong", - "ed" - ], - [ - "▁S", - "ank" - ], - [ - "▁San", - "k" - ], - [ - "am", - "med" - ], - [ - "amm", - "ed" - ], - [ - "▁repos", - "itories" - ], - [ - "▁ad", - "dr" - ], - [ - "▁add", - "r" - ], - [ - "▁", - "addr" - ], - [ - "Col", - "lect" - ], - [ - "Coll", - "ect" - ], - [ - "H", - "ot" - ], - [ - "▁t", - "yl" - ], - [ - "▁ty", - "l" - ], - [ - "▁instance", - "of" - ], - [ - "▁bon", - "us" - ], - [ - "ov", - "ý" - ], - [ - "▁мо", - "ря" - ], - [ - "▁мор", - "я" - ], - [ - "▁inter", - "active" - ], - [ - "▁interact", - "ive" - ], - [ - "▁M", - "ys" - ], - [ - "▁My", - "s" - ], - [ - "▁Ed", - "mund" - ], - [ - "file", - "Name" - ], - [ - "em", - "or" - ], - [ - "emo", - "r" - ], - [ - "e", - "mor" - ], - [ - "▁Т", - "ри" - ], - [ - "▁R", - "osen" - ], - [ - "▁Ro", - "sen" - ], - [ - "▁Ros", - "en" - ], - [ - "▁Rose", - "n" - ], - [ - "▁Pr", - "ima" - ], - [ - "▁Pri", - "ma" - ], - [ - "▁Prim", - "a" - ], - [ - "▁v", - "oting" - ], - [ - "▁vo", - "ting" - ], - [ - "▁vot", - "ing" - ], - [ - "▁X", - "P" - ], - [ - "▁Z", - "ero" - ], - [ - "▁Ze", - "ro" - ], - [ - "▁", - "Zero" - ], - [ - "▁L", - "ed" - ], - [ - "▁Le", - "d" - ], - [ - "ams", - "ung" - ], - [ - "▁en", - "ables" - ], - [ - "▁enable", - "s" - ], - [ - "▁redirect", - "s" - ], - [ - "AS", - "T" - ], - [ - "A", - "ST" - ], - [ - "Pa", - "int" - ], - [ - "P", - "aint" - ], - [ - "ack", - "er" - ], - [ - "ac", - "ker" - ], - [ - "a", - "cker" - ], - [ - "le", - "cht" - ], - [ - "▁chair", - "man" - ], - [ - "▁A", - "ven" - ], - [ - "▁Av", - "en" - ], - [ - "▁S", - "ach" - ], - [ - "▁Sa", - "ch" - ], - [ - "▁Sac", - "h" - ], - [ - "(\"", - "<" - ], - [ - "ке", - "р" - ], - [ - "к", - "ер" - ], - [ - "▁mist", - "akes" - ], - [ - "▁mistake", - "s" - ], - [ - "▁We", - "it" - ], - [ - "▁Wei", - "t" - ], - [ - "▁pro", - "wad" - ], - [ - "▁", - "prowad" - ], - [ - "▁did", - "nt" - ], - [ - "▁didn", - "t" - ], - [ - "én", - "ario" - ], - [ - "un", - "less" - ], - [ - "▁back", - "wards" - ], - [ - "bo", - "a" - ], - [ - "b", - "oa" - ], - [ - "du", - "ino" - ], - [ - "``", - "`" - ], - [ - "`", - "``" - ], - [ - "st", - "or" - ], - [ - "sto", - "r" - ], - [ - "s", - "tor" - ], - [ - "Comple", - "tion" - ], - [ - "pu", - "esta" - ], - [ - "▁din", - "ast" - ], - [ - "úl", - "t" - ], - [ - "ú", - "lt" - ], - [ - "▁S", - "Y" - ], - [ - "▁", - "SY" - ], - [ - "if", - "olia" - ], - [ - "œuv", - "res" - ], - [ - "œuvre", - "s" - ], - [ - "▁r", - "acing" - ], - [ - "▁ra", - "cing" - ], - [ - "▁rac", - "ing" - ], - [ - "▁cab", - "inet" - ], - [ - "▁cabin", - "et" - ], - [ - "▁cut", - "ting" - ], - [ - "▁th", - "umb" - ], - [ - "▁Ка", - "ра" - ], - [ - "▁Кар", - "а" - ], - [ - "high", - "light" - ], - [ - "ку", - "п" - ], - [ - "▁s", - "d" - ], - [ - "▁", - "sd" - ], - [ - "▁на", - "ціональ" - ], - [ - "▁camp", - "agne" - ], - [ - "▁register", - "s" - ], - [ - "▁educ", - "ational" - ], - [ - "▁education", - "al" - ], - [ - "▁p", - "esar" - ], - [ - "▁pes", - "ar" - ], - [ - "üg", - "e" - ], - [ - "ü", - "ge" - ], - [ - "▁o", - "ro" - ], - [ - "▁or", - "o" - ], - [ - "▁", - "oro" - ], - [ - "burg", - "o" - ], - [ - "bur", - "go" - ], - [ - "▁Athlet", - "ics" - ], - [ - "▁M", - "TV" - ], - [ - "get", - "Message" - ], - [ - "▁H", - "yp" - ], - [ - "▁Hy", - "p" - ], - [ - "▁vict", - "im" - ], - [ - "▁vic", - "tim" - ], - [ - "))", - "\\" - ], - [ - ")", - ")\\" - ], - [ - "▁dr", - "ums" - ], - [ - "▁dru", - "ms" - ], - [ - "▁drum", - "s" - ], - [ - "host", - "name" - ], - [ - "ta", - "ł" - ], - [ - "t", - "ał" - ], - [ - "ma", - "king" - ], - [ - "m", - "aking" - ], - [ - "▁pow", - "iat" - ], - [ - "ő", - "d" - ], - [ - "thread", - "s" - ], - [ - "▁absol", - "v" - ], - [ - "▁лю", - "ди" - ], - [ - "▁ste", - "pped" - ], - [ - "▁step", - "ped" - ], - [ - "ex", - "ist" - ], - [ - "▁N", - "K" - ], - [ - "▁v", - "es" - ], - [ - "▁ve", - "s" - ], - [ - "▁", - "ves" - ], - [ - "ist", - "iche" - ], - [ - "istic", - "he" - ], - [ - "isti", - "che" - ], - [ - "%", - "'" - ], - [ - "at", - "ivos" - ], - [ - "ativ", - "os" - ], - [ - "ati", - "vos" - ], - [ - "ativo", - "s" - ], - [ - "▁та", - "кой" - ], - [ - "▁тако", - "й" - ], - [ - "▁Mongo", - "DB" - ], - [ - "▁U", - "ng" - ], - [ - "▁Un", - "g" - ], - [ - "▁Р", - "ус" - ], - [ - "▁Ру", - "с" - ], - [ - "▁e", - "lim" - ], - [ - "▁el", - "im" - ], - [ - "▁F", - "if" - ], - [ - "ic", - "ación" - ], - [ - "ica", - "ción" - ], - [ - "▁T", - "ennis" - ], - [ - "▁Ten", - "nis" - ], - [ - "▁Jeff", - "erson" - ], - [ - "j", - "án" - ], - [ - "fo", - "g" - ], - [ - "f", - "og" - ], - [ - "an", - "ha" - ], - [ - "anh", - "a" - ], - [ - "zo", - "r" - ], - [ - "z", - "or" - ], - [ - "▁уні", - "версите" - ], - [ - "ah", - "u" - ], - [ - "a", - "hu" - ], - [ - "ia", - "da" - ], - [ - "i", - "ada" - ], - [ - "S", - "dk" - ], - [ - "Set", - "ting" - ], - [ - "▁K", - "ill" - ], - [ - "▁Kil", - "l" - ], - [ - "▁Ki", - "ll" - ], - [ - "▁W", - "end" - ], - [ - "▁We", - "nd" - ], - [ - "▁b", - "ald" - ], - [ - "▁bal", - "d" - ], - [ - "▁ba", - "ld" - ], - [ - "▁K", - "ub" - ], - [ - "▁Ku", - "b" - ], - [ - "▁v", - "isto" - ], - [ - "▁vis", - "to" - ], - [ - "▁vi", - "sto" - ], - [ - "▁je", - "unes" - ], - [ - "▁jeune", - "s" - ], - [ - "▁jeu", - "nes" - ], - [ - "col", - "lections" - ], - [ - "collection", - "s" - ], - [ - "collect", - "ions" - ], - [ - "ac", - "í" - ], - [ - "a", - "cí" - ], - [ - "вро", - "пей" - ], - [ - "▁ar", - "ise" - ], - [ - "он", - "і" - ], - [ - "о", - "ні" - ], - [ - "MA", - "IN" - ], - [ - "до", - "ступ" - ], - [ - "▁b", - "erg" - ], - [ - "▁be", - "rg" - ], - [ - "▁ber", - "g" - ], - [ - "▁", - "berg" - ], - [ - "▁critic", - "ism" - ], - [ - "▁Tor", - "re" - ], - [ - "▁de", - "script" - ], - [ - "▁des", - "cript" - ], - [ - "▁descri", - "pt" - ], - [ - "ière", - "s" - ], - [ - "i", - "ères" - ], - [ - "▁e", - "studio" - ], - [ - "▁est", - "udio" - ], - [ - "▁estud", - "io" - ], - [ - "▁i", - "li" - ], - [ - "▁il", - "i" - ], - [ - "▁", - "ili" - ], - [ - "▁mil", - "itare" - ], - [ - "▁milit", - "are" - ], - [ - "▁militar", - "e" - ], - [ - "▁Cl", - "ara" - ], - [ - "▁Cla", - "ra" - ], - [ - "▁Clar", - "a" - ], - [ - "▁El", - "len" - ], - [ - "▁Elle", - "n" - ], - [ - "▁Ell", - "en" - ], - [ - "lim", - "ited" - ], - [ - "limit", - "ed" - ], - [ - "л", - "м" - ], - [ - "▁Esp", - "añ" - ], - [ - "▁inf", - "initely" - ], - [ - "▁infinite", - "ly" - ], - [ - "Amer", - "ica" - ], - [ - "ou", - "c" - ], - [ - "o", - "uc" - ], - [ - "gl", - "ass" - ], - [ - "g", - "lass" - ], - [ - "▁r", - "ud" - ], - [ - "▁ru", - "d" - ], - [ - "▁z", - "at" - ], - [ - "▁za", - "t" - ], - [ - "▁", - "zat" - ], - [ - "▁r", - "in" - ], - [ - "▁ri", - "n" - ], - [ - "▁", - "rin" - ], - [ - "▁Bibli", - "ografía" - ], - [ - "▁mer", - "chant" - ], - [ - "tensor", - "flow" - ], - [ - "▁d", - "ér" - ], - [ - "▁dé", - "r" - ], - [ - "▁Active", - "Record" - ], - [ - "IE", - "S" - ], - [ - "I", - "ES" - ], - [ - "▁link", - "er" - ], - [ - "▁lin", - "ker" - ], - [ - "▁estud", - "ios" - ], - [ - "▁estudio", - "s" - ], - [ - "cdn", - "js" - ], - [ - "▁Го", - "судар" - ], - [ - "án", - "chez" - ], - [ - "ap", - "pe" - ], - [ - "app", - "e" - ], - [ - "a", - "ppe" - ], - [ - "cl", - "ub" - ], - [ - "c", - "lub" - ], - [ - "▁dal", - "ší" - ], - [ - "▁Alg", - "orithm" - ], - [ - "df", - "s" - ], - [ - "d", - "fs" - ], - [ - "▁B", - "ac" - ], - [ - "▁Ba", - "c" - ], - [ - "▁ка", - "фе" - ], - [ - "▁&", - "=\\" - ], - [ - "▁&=", - "\\" - ], - [ - "▁а", - "т" - ], - [ - "▁", - "ат" - ], - [ - "▁Г", - "лав" - ], - [ - "▁M", - "ou" - ], - [ - "▁Mo", - "u" - ], - [ - "M", - "achine" - ], - [ - "(...", - ")" - ], - [ - "(", - "...)" - ], - [ - "▁com", - "part" - ], - [ - "▁comp", - "art" - ], - [ - "▁compar", - "t" - ], - [ - "▁aug", - "usztus" - ], - [ - "av", - "an" - ], - [ - "ava", - "n" - ], - [ - "a", - "van" - ], - [ - "▁roll", - "ed" - ], - [ - "▁rol", - "led" - ], - [ - "▁", - "rolled" - ], - [ - "▁е", - "ди" - ], - [ - "▁", - "еди" - ], - [ - "Sc", - "an" - ], - [ - "S", - "can" - ], - [ - "▁ре", - "гі" - ], - [ - "▁świ", - "ata" - ], - [ - "▁świat", - "a" - ], - [ - "▁m", - "ines" - ], - [ - "▁min", - "es" - ], - [ - "▁mi", - "nes" - ], - [ - "▁mine", - "s" - ], - [ - "},", - "{" - ], - [ - "▁T", - "ier" - ], - [ - "▁Ti", - "er" - ], - [ - "Can", - "not" - ], - [ - "C", - "annot" - ], - [ - "мі", - "н" - ], - [ - "м", - "ін" - ], - [ - "▁NE", - "W" - ], - [ - "▁", - "NEW" - ], - [ - "▁Во", - "л" - ], - [ - "▁M", - "anh" - ], - [ - "▁Man", - "h" - ], - [ - "▁Greg", - "ory" - ], - [ - "▁princi", - "pe" - ], - [ - "▁princip", - "e" - ], - [ - "▁prin", - "cipe" - ], - [ - "IS", - "O" - ], - [ - "I", - "SO" - ], - [ - "pr", - "og" - ], - [ - "pro", - "g" - ], - [ - "p", - "rog" - ], - [ - "▁F", - "ail" - ], - [ - "▁Fa", - "il" - ], - [ - "▁", - "Fail" - ], - [ - "▁a", - "a" - ], - [ - "▁", - "aa" - ], - [ - "▁fe", - "cha" - ], - [ - "▁W", - "CF" - ], - [ - "▁mag", - "istr" - ], - [ - "▁Z", - "ach" - ], - [ - "▁Za", - "ch" - ], - [ - "▁un", - "icode" - ], - [ - "▁con", - "verter" - ], - [ - "▁convert", - "er" - ], - [ - "▁conver", - "ter" - ], - [ - "▁dis", - "pers" - ], - [ - "▁disp", - "ers" - ], - [ - "ks", - "am" - ], - [ - "k", - "sam" - ], - [ - "▁Un", - "cle" - ], - [ - "Property", - "Changed" - ], - [ - "▁l", - "ider" - ], - [ - "▁li", - "der" - ], - [ - "▁lid", - "er" - ], - [ - "▁o", - "pts" - ], - [ - "▁op", - "ts" - ], - [ - "▁opt", - "s" - ], - [ - "▁", - "opts" - ], - [ - "▁та", - "м" - ], - [ - "▁", - "там" - ], - [ - "lock", - "ed" - ], - [ - "loc", - "ked" - ], - [ - "za", - "k" - ], - [ - "z", - "ak" - ], - [ - "▁co", - "unted" - ], - [ - "▁count", - "ed" - ], - [ - "▁coun", - "ted" - ], - [ - "▁person", - "e" - ], - [ - "▁pers", - "one" - ], - [ - "▁hur", - "ried" - ], - [ - "ät", - "ter" - ], - [ - "ätt", - "er" - ], - [ - "ätte", - "r" - ], - [ - "▁out", - "ras" - ], - [ - "▁ou", - "tras" - ], - [ - "▁g", - "enu" - ], - [ - "▁ge", - "nu" - ], - [ - "▁gen", - "u" - ], - [ - "B", - "D" - ], - [ - "ve", - "g" - ], - [ - "v", - "eg" - ], - [ - "du", - "e" - ], - [ - "d", - "ue" - ], - [ - "▁P", - "ract" - ], - [ - "▁Pr", - "act" - ], - [ - "▁Pra", - "ct" - ], - [ - "▁po", - "sible" - ], - [ - "▁pos", - "ible" - ], - [ - "▁cont", - "ribute" - ], - [ - "▁contrib", - "ute" - ], - [ - "▁contribu", - "te" - ], - [ - "UM", - "N" - ], - [ - "▁Bür", - "ger" - ], - [ - "▁w", - "ars" - ], - [ - "▁war", - "s" - ], - [ - "▁wa", - "rs" - ], - [ - "▁exhib", - "ition" - ], - [ - "hi", - "ll" - ], - [ - "h", - "ill" - ], - [ - "▁a", - "str" - ], - [ - "▁as", - "tr" - ], - [ - "▁ast", - "r" - ], - [ - "▁", - "astr" - ], - [ - "▁му", - "зе" - ], - [ - "▁C", - "ASE" - ], - [ - "▁CA", - "SE" - ], - [ - "▁", - "CASE" - ], - [ - "man", - "ifest" - ], - [ - "y", - "ellow" - ], - [ - "F", - "n" - ], - [ - "▁R", - "C" - ], - [ - "▁", - "RC" - ], - [ - "▁s", - "ott" - ], - [ - "▁so", - "tt" - ], - [ - "▁su", - "jet" - ], - [ - "▁S", - "ocket" - ], - [ - "▁So", - "cket" - ], - [ - "▁Soc", - "ket" - ], - [ - "▁", - "Socket" - ], - [ - "▁Ch", - "ine" - ], - [ - "▁Chi", - "ne" - ], - [ - "▁frame", - "works" - ], - [ - "▁framework", - "s" - ], - [ - "Hol", - "d" - ], - [ - "H", - "old" - ], - [ - "êt", - "s" - ], - [ - "ê", - "ts" - ], - [ - "▁ф", - "іль" - ], - [ - "▁фі", - "ль" - ], - [ - "Lo", - "aded" - ], - [ - "Load", - "ed" - ], - [ - "op", - "he" - ], - [ - "oph", - "e" - ], - [ - "o", - "phe" - ], - [ - "text", - "e" - ], - [ - "tex", - "te" - ], - [ - "▁ex", - "pres" - ], - [ - "▁exp", - "res" - ], - [ - "▁expr", - "es" - ], - [ - "▁cons", - "ume" - ], - [ - "▁consum", - "e" - ], - [ - "▁R", - "ichtung" - ], - [ - "ograf", - "i" - ], - [ - "▁magn", - "ific" - ], - [ - "à", - "t" - ], - [ - "▁ind", - "ul" - ], - [ - "▁indu", - "l" - ], - [ - "ry", - "ty" - ], - [ - "▁off", - "ici" - ], - [ - "▁offic", - "i" - ], - [ - "▁ass", - "ault" - ], - [ - "ru", - "nd" - ], - [ - "run", - "d" - ], - [ - "r", - "und" - ], - [ - "▁vari", - "ants" - ], - [ - "▁variant", - "s" - ], - [ - "▁сель", - "сов" - ], - [ - "▁exc", - "itement" - ], - [ - "Time", - "s" - ], - [ - "Tim", - "es" - ], - [ - "T", - "imes" - ], - [ - "k", - "otlin" - ], - [ - "▁g", - "ering" - ], - [ - "▁ge", - "ring" - ], - [ - "▁ger", - "ing" - ], - [ - "▁En", - "gel" - ], - [ - "▁Eng", - "el" - ], - [ - "▁T", - "imer" - ], - [ - "▁Time", - "r" - ], - [ - "▁Tim", - "er" - ], - [ - "▁Ti", - "mer" - ], - [ - "▁", - "Timer" - ], - [ - "²", - ")." - ], - [ - "▁N", - "g" - ], - [ - "äs", - "st" - ], - [ - "sch", - "au" - ], - [ - "SE", - "rror" - ], - [ - "S", - "Error" - ], - [ - "▁Ed", - "wards" - ], - [ - "▁Edward", - "s" - ], - [ - "▁Term", - "inal" - ], - [ - "li", - "ct" - ], - [ - "lic", - "t" - ], - [ - "l", - "ict" - ], - [ - "Un", - "der" - ], - [ - "Und", - "er" - ], - [ - "U", - "nder" - ], - [ - "▁sp", - "awn" - ], - [ - "ür", - "gen" - ], - [ - "▁Außer", - "dem" - ], - [ - "▁k", - "itchen" - ], - [ - "fah", - "rt" - ], - [ - "fahr", - "t" - ], - [ - "▁Col", - "ors" - ], - [ - "▁Color", - "s" - ], - [ - "▁систе", - "ма" - ], - [ - "▁систем", - "а" - ], - [ - "▁termin", - "ated" - ], - [ - "▁terminate", - "d" - ], - [ - "▁La", - "TeX" - ], - [ - "ig", - "keiten" - ], - [ - "igkeit", - "en" - ], - [ - "▁mes", - "ure" - ], - [ - "▁Am", - "ts" - ], - [ - "▁Amt", - "s" - ], - [ - "▁emp", - "ir" - ], - [ - "▁stri", - "king" - ], - [ - "▁strik", - "ing" - ], - [ - "▁exclus", - "ive" - ], - [ - "те", - "х" - ], - [ - "▁re", - "z" - ], - [ - "▁r", - "ez" - ], - [ - "▁", - "rez" - ], - [ - "▁qu", - "an" - ], - [ - "▁q", - "uan" - ], - [ - "▁Glas", - "gow" - ], - [ - "▁lect", - "ure" - ], - [ - "▁Test", - "ament" - ], - [ - "▁fun", - "ds" - ], - [ - "▁fund", - "s" - ], - [ - "▁st", - "essa" - ], - [ - "▁tri", - "bes" - ], - [ - "▁trib", - "es" - ], - [ - "▁tribe", - "s" - ], - [ - "▁par", - "fois" - ], - [ - "▁tre", - "ball" - ], - [ - "ni", - "tz" - ], - [ - "nit", - "z" - ], - [ - "n", - "itz" - ], - [ - "bo", - "ve" - ], - [ - "b", - "ove" - ], - [ - "▁за", - "слу" - ], - [ - "▁ab", - "sent" - ], - [ - "▁abs", - "ent" - ], - [ - "▁L", - "auf" - ], - [ - "▁La", - "uf" - ], - [ - "▁Lau", - "f" - ], - [ - "Sm", - "ith" - ], - [ - "▁Никола", - "й" - ], - [ - "▁europé", - "enne" - ], - [ - "l", - "r" - ], - [ - "▁program", - "ma" - ], - [ - "▁mi", - "dst" - ], - [ - "▁mid", - "st" - ], - [ - "▁daugh", - "ters" - ], - [ - "▁daughter", - "s" - ], - [ - "S", - "yn" - ], - [ - "ob", - "en" - ], - [ - "obe", - "n" - ], - [ - "o", - "ben" - ], - [ - "ân", - "ă" - ], - [ - "id", - "an" - ], - [ - "ida", - "n" - ], - [ - "i", - "dan" - ], - [ - "▁t", - "her" - ], - [ - "▁th", - "er" - ], - [ - "▁the", - "r" - ], - [ - "▁", - "ther" - ], - [ - "od", - "ore" - ], - [ - "odo", - "re" - ], - [ - "odor", - "e" - ], - [ - "sd", - "l" - ], - [ - "s", - "dl" - ], - [ - "▁Q", - "uint" - ], - [ - "▁Qu", - "int" - ], - [ - "▁cas", - "os" - ], - [ - "▁caso", - "s" - ], - [ - "▁Z", - "am" - ], - [ - "▁Za", - "m" - ], - [ - "▁стра", - "ны" - ], - [ - "▁sp", - "rite" - ], - [ - "▁spr", - "ite" - ], - [ - "ка", - "л" - ], - [ - "к", - "ал" - ], - [ - "▁n", - "asc" - ], - [ - "▁na", - "sc" - ], - [ - "▁nas", - "c" - ], - [ - "▁сот", - "руд" - ], - [ - "▁tr", - "ava" - ], - [ - "▁tra", - "va" - ], - [ - "▁trav", - "a" - ], - [ - "▁хо", - "зяй" - ], - [ - "▁U", - "ruguay" - ], - [ - "▁s", - "parse" - ], - [ - "▁sp", - "arse" - ], - [ - "▁по", - "ле" - ], - [ - "▁пол", - "е" - ], - [ - "▁myst", - "ery" - ], - [ - "▁myster", - "y" - ], - [ - "▁M", - "ang" - ], - [ - "▁Man", - "g" - ], - [ - "▁Ma", - "ng" - ], - [ - "reg", - "istr" - ], - [ - "▁CG", - "Float" - ], - [ - "▁sub", - "mission" - ], - [ - "▁subm", - "ission" - ], - [ - "ва", - "на" - ], - [ - "ван", - "а" - ], - [ - "в", - "ана" - ], - [ - "▁\"", - ":" - ], - [ - "▁", - "\":" - ], - [ - "▁Trace", - "back" - ], - [ - "▁P", - "it" - ], - [ - "▁Pi", - "t" - ], - [ - "▁E", - "hr" - ], - [ - "▁с", - "ра" - ], - [ - "▁Graph", - "ics" - ], - [ - "▁", - "Graphics" - ], - [ - "Up", - "dated" - ], - [ - "Update", - "d" - ], - [ - "▁sv", - "ensk" - ], - [ - "▁sp", - "acing" - ], - [ - "▁spac", - "ing" - ], - [ - "tr", - "itt" - ], - [ - "tri", - "tt" - ], - [ - "t", - "ritt" - ], - [ - "▁Gu", - "inea" - ], - [ - "▁Fran", - "ça" - ], - [ - "▁Fr", - "ança" - ], - [ - "As", - "soci" - ], - [ - "Ass", - "oci" - ], - [ - "▁T", - "ová" - ], - [ - "▁To", - "vá" - ], - [ - "st", - "ab" - ], - [ - "sta", - "b" - ], - [ - "s", - "tab" - ], - [ - "▁Le", - "arning" - ], - [ - "▁Lear", - "ning" - ], - [ - "▁B", - "right" - ], - [ - "▁Br", - "ight" - ], - [ - "▁Brig", - "ht" - ], - [ - "ś", - "c" - ], - [ - "▁id", - "ő" - ], - [ - "}}", - "_{\\" - ], - [ - "}}_{", - "\\" - ], - [ - "}}_", - "{\\" - ], - [ - "}", - "}_{\\" - ], - [ - "▁dro", - "ite" - ], - [ - "▁droit", - "e" - ], - [ - "▁ra", - "ising" - ], - [ - "get", - "ting" - ], - [ - "yth", - "m" - ], - [ - "yt", - "hm" - ], - [ - "y", - "thm" - ], - [ - "on", - "yme" - ], - [ - "ony", - "me" - ], - [ - "onym", - "e" - ], - [ - "ż", - "s" - ], - [ - "▁b", - "lah" - ], - [ - "▁bl", - "ah" - ], - [ - "▁bla", - "h" - ], - [ - "▁", - "blah" - ], - [ - "Tag", - "Name" - ], - [ - "Vert", - "ical" - ], - [ - "▁a", - "per" - ], - [ - "▁ap", - "er" - ], - [ - "▁", - "aper" - ], - [ - "post", - "gresql" - ], - [ - "▁Hand", - "le" - ], - [ - "▁", - "Handle" - ], - [ - "ze", - "w" - ], - [ - "z", - "ew" - ], - [ - "▁sk", - "ulle" - ], - [ - "▁op", - "ere" - ], - [ - "▁oper", - "e" - ], - [ - "lay", - "ers" - ], - [ - "layer", - "s" - ], - [ - "▁pos", - "sono" - ], - [ - "▁poss", - "ono" - ], - [ - "▁re", - "late" - ], - [ - "▁rel", - "ate" - ], - [ - "▁rela", - "te" - ], - [ - "ą", - "c" - ], - [ - "▁M", - "ih" - ], - [ - "▁Mi", - "h" - ], - [ - "â", - "ge" - ], - [ - "▁Ś", - "wi" - ], - [ - "iss", - "es" - ], - [ - "isse", - "s" - ], - [ - "▁serv", - "let" - ], - [ - "▁", - "servlet" - ], - [ - "Lo", - "s" - ], - [ - "L", - "os" - ], - [ - "▁Ad", - "vanced" - ], - [ - "▁Adv", - "anced" - ], - [ - "at", - "ica" - ], - [ - "ati", - "ca" - ], - [ - "atic", - "a" - ], - [ - "▁c", - "ed" - ], - [ - "▁ce", - "d" - ], - [ - "▁", - "ced" - ], - [ - "▁element", - "os" - ], - [ - "ро", - "на" - ], - [ - "рон", - "а" - ], - [ - "р", - "она" - ], - [ - "ik", - "s" - ], - [ - "i", - "ks" - ], - [ - "ar", - "f" - ], - [ - "a", - "rf" - ], - [ - "ar", - "iat" - ], - [ - "ari", - "at" - ], - [ - "aria", - "t" - ], - [ - "M", - "obile" - ], - [ - "ag", - "ua" - ], - [ - "agu", - "a" - ], - [ - "▁t", - "imp" - ], - [ - "▁tim", - "p" - ], - [ - "▁ti", - "mp" - ], - [ - "▁Com", - "ité" - ], - [ - "▁comb", - "ining" - ], - [ - "▁combin", - "ing" - ], - [ - "wo", - "hl" - ], - [ - "w", - "ohl" - ], - [ - "▁Stud", - "y" - ], - [ - "▁Stu", - "dy" - ], - [ - "co", - "ordinate" - ], - [ - "▁recommend", - "ation" - ], - [ - "▁transform", - "ations" - ], - [ - "▁transformation", - "s" - ], - [ - "un", - "til" - ], - [ - "unt", - "il" - ], - [ - "u", - "ntil" - ], - [ - "bound", - "ed" - ], - [ - "b", - "ounded" - ], - [ - "▁и", - "зу" - ], - [ - "▁из", - "у" - ], - [ - "han", - "ced" - ], - [ - "h", - "anced" - ], - [ - "▁во", - "про" - ], - [ - "▁P", - "rés" - ], - [ - "▁Pr", - "és" - ], - [ - "▁co", - "ord" - ], - [ - "xt", - "y" - ], - [ - "x", - "ty" - ], - [ - "▁$", - "," - ], - [ - "▁", - "$," - ], - [ - "▁champion", - "s" - ], - [ - "▁champ", - "ions" - ], - [ - "De", - "n" - ], - [ - "D", - "en" - ], - [ - "M", - "il" - ], - [ - "('", - "," - ], - [ - "(", - "'," - ], - [ - "▁Pre", - "is" - ], - [ - "▁e", - "igh" - ], - [ - "▁eig", - "h" - ], - [ - "▁mark", - "ers" - ], - [ - "▁marker", - "s" - ], - [ - "▁gew", - "esen" - ], - [ - "ät", - "ten" - ], - [ - "ätt", - "en" - ], - [ - "ätte", - "n" - ], - [ - "▁p", - "ione" - ], - [ - "▁pi", - "one" - ], - [ - "m", - "v" - ], - [ - "▁ј", - "у" - ], - [ - "▁", - "ју" - ], - [ - "zeich", - "nis" - ], - [ - "ho", - "ff" - ], - [ - "hof", - "f" - ], - [ - "h", - "off" - ], - [ - "New", - "s" - ], - [ - "Ne", - "ws" - ], - [ - "▁Stanis", - "ław" - ], - [ - "▁Br", - "andenburg" - ], - [ - "▁Brand", - "enburg" - ], - [ - "▁Fe", - "uer" - ], - [ - "=", - "&" - ], - [ - "же", - "т" - ], - [ - "ж", - "ет" - ], - [ - "▁N", - "eil" - ], - [ - "▁Ne", - "il" - ], - [ - "▁w", - "irk" - ], - [ - "▁wir", - "k" - ], - [ - "▁soci", - "età" - ], - [ - "▁sp", - "are" - ], - [ - "▁civil", - "e" - ], - [ - "▁civ", - "ile" - ], - [ - "sp", - "rach" - ], - [ - "spr", - "ach" - ], - [ - "▁d", - "isse" - ], - [ - "▁dis", - "se" - ], - [ - "▁diss", - "e" - ], - [ - "▁g", - "ates" - ], - [ - "▁ga", - "tes" - ], - [ - "▁gate", - "s" - ], - [ - "▁gat", - "es" - ], - [ - "▁a", - "nom" - ], - [ - "▁an", - "om" - ], - [ - "▁ano", - "m" - ], - [ - "▁Федера", - "ции" - ], - [ - "▁t", - "ib" - ], - [ - "▁ti", - "b" - ], - [ - "▁f", - "útbol" - ], - [ - "▁Wikip", - "ed" - ], - [ - "ia", - "te" - ], - [ - "iat", - "e" - ], - [ - "i", - "ate" - ], - [ - "Fr", - "ont" - ], - [ - "F", - "ront" - ], - [ - "▁c", - "raw" - ], - [ - "▁cr", - "aw" - ], - [ - "▁cra", - "w" - ], - [ - "▁R", - "ak" - ], - [ - "▁Ra", - "k" - ], - [ - "▁з", - "ву" - ], - [ - "▁зв", - "у" - ], - [ - "st", - "reet" - ], - [ - "stre", - "et" - ], - [ - "▁A", - "gency" - ], - [ - "▁Ag", - "ency" - ], - [ - "ва", - "ло" - ], - [ - "вал", - "о" - ], - [ - "▁Ра", - "с" - ], - [ - "▁mk", - "dir" - ], - [ - "ac", - "ję" - ], - [ - "▁sh", - "ares" - ], - [ - "▁share", - "s" - ], - [ - "St", - "ory" - ], - [ - "Sto", - "ry" - ], - [ - "▁re", - "marks" - ], - [ - "▁rem", - "arks" - ], - [ - "▁remark", - "s" - ], - [ - "▁key", - "words" - ], - [ - "▁keyword", - "s" - ], - [ - "Bo", - "b" - ], - [ - "B", - "ob" - ], - [ - "▁t", - "oe" - ], - [ - "▁to", - "e" - ], - [ - "▁V", - "itt" - ], - [ - "▁Vi", - "tt" - ], - [ - "▁Vit", - "t" - ], - [ - "▁r", - "hs" - ], - [ - "▁rh", - "s" - ], - [ - "RO", - "P" - ], - [ - "R", - "OP" - ], - [ - "or", - "is" - ], - [ - "ori", - "s" - ], - [ - "o", - "ris" - ], - [ - "/", - "@" - ], - [ - "си", - "и" - ], - [ - "▁tra", - "verse" - ], - [ - "▁travers", - "e" - ], - [ - "▁refer", - "encing" - ], - [ - "pr", - "äsident" - ], - [ - "ro", - "ng" - ], - [ - "ron", - "g" - ], - [ - "r", - "ong" - ], - [ - "')", - ":" - ], - [ - "'", - "):" - ], - [ - "at", - "ies" - ], - [ - "ati", - "es" - ], - [ - "atie", - "s" - ], - [ - "a", - "ties" - ], - [ - "A", - "W" - ], - [ - "Out", - "let" - ], - [ - "▁é", - "vol" - ], - [ - "▁év", - "ol" - ], - [ - "ik", - "es" - ], - [ - "ike", - "s" - ], - [ - "i", - "kes" - ], - [ - "▁environment", - "al" - ], - [ - "ic", - "um" - ], - [ - "▁L", - "ied" - ], - [ - "▁Li", - "ed" - ], - [ - "▁Lie", - "d" - ], - [ - "▁w", - "arn" - ], - [ - "▁war", - "n" - ], - [ - "▁wa", - "rn" - ], - [ - "▁", - "warn" - ], - [ - "▁But", - "ler" - ], - [ - "▁%", - ")," - ], - [ - "▁%)", - "," - ], - [ - "▁Zeit", - "schrift" - ], - [ - "▁Mon", - "tr" - ], - [ - "▁Mont", - "r" - ], - [ - "ва", - "жа" - ], - [ - "▁Mer", - "cur" - ], - [ - "je", - "kte" - ], - [ - "jekt", - "e" - ], - [ - "me", - "ter" - ], - [ - "met", - "er" - ], - [ - "m", - "eter" - ], - [ - "du", - "cation" - ], - [ - "▁att", - "ributed" - ], - [ - "▁attribute", - "d" - ], - [ - "*", - "$" - ], - [ - "▁un", - "f" - ], - [ - "▁Vert", - "rag" - ], - [ - "zi", - "en" - ], - [ - "zie", - "n" - ], - [ - "z", - "ien" - ], - [ - "▁Р", - "об" - ], - [ - "▁Ро", - "б" - ], - [ - "li", - "ces" - ], - [ - "lic", - "es" - ], - [ - "lice", - "s" - ], - [ - "l", - "ices" - ], - [ - "pp", - "ly" - ], - [ - "p", - "ply" - ], - [ - "an", - "sen" - ], - [ - "ans", - "en" - ], - [ - "anse", - "n" - ], - [ - "▁ze", - "it" - ], - [ - "▁", - "zeit" - ], - [ - "▁im", - "mense" - ], - [ - "▁imm", - "ense" - ], - [ - "▁lut", - "ego" - ], - [ - "▁Bul", - "gar" - ], - [ - "▁Bulg", - "ar" - ], - [ - "▁mi", - "embros" - ], - [ - "▁На", - "циональ" - ], - [ - "▁Al", - "low" - ], - [ - "▁All", - "ow" - ], - [ - "▁", - "Allow" - ], - [ - "▁ang", - "lès" - ], - [ - "д", - "ви" - ], - [ - "▁T", - "oy" - ], - [ - "▁To", - "y" - ], - [ - "ту", - "а" - ], - [ - "▁y", - "ard" - ], - [ - "▁ya", - "rd" - ], - [ - "▁", - "yard" - ], - [ - "(", - "%" - ], - [ - "is", - "ser" - ], - [ - "iss", - "er" - ], - [ - "isse", - "r" - ], - [ - "▁g", - "olf" - ], - [ - "▁gol", - "f" - ], - [ - "▁Uk", - "rain" - ], - [ - "▁h", - "osp" - ], - [ - "▁ho", - "sp" - ], - [ - "▁hos", - "p" - ], - [ - "In", - "clude" - ], - [ - "▁L", - "isa" - ], - [ - "▁Li", - "sa" - ], - [ - "▁Lis", - "a" - ], - [ - "▁c", - "sal" - ], - [ - "▁cs", - "al" - ], - [ - "▁M", - "ira" - ], - [ - "▁Mi", - "ra" - ], - [ - "▁Mir", - "a" - ], - [ - "rec", - "ogn" - ], - [ - "▁К", - "е" - ], - [ - "▁h", - "itting" - ], - [ - "▁hit", - "ting" - ], - [ - "коно", - "мі" - ], - [ - "коном", - "і" - ], - [ - "▁Tourn", - "ament" - ], - [ - "LO", - "AD" - ], - [ - "▁Guard", - "ian" - ], - [ - "▁da", - "her" - ], - [ - "▁dah", - "er" - ], - [ - "▁time", - "zone" - ], - [ - "▁tom", - "cat" - ], - [ - "▁", - "tomcat" - ], - [ - "▁success", - "or" - ], - [ - "▁succ", - "essor" - ], - [ - "▁successo", - "r" - ], - [ - "▁V", - "oid" - ], - [ - "▁Vo", - "id" - ], - [ - "▁come", - "ç" - ], - [ - "▁convert", - "s" - ], - [ - "▁conver", - "ts" - ], - [ - "äch", - "s" - ], - [ - "ä", - "chs" - ], - [ - "os", - "ex" - ], - [ - "ose", - "x" - ], - [ - "o", - "sex" - ], - [ - "xe", - "lles" - ], - [ - "x", - "elles" - ], - [ - "as", - "er" - ], - [ - "ase", - "r" - ], - [ - "a", - "ser" - ], - [ - "▁É", - "s" - ], - [ - "▁m", - "ou" - ], - [ - "▁mo", - "u" - ], - [ - "▁u", - "ng" - ], - [ - "▁un", - "g" - ], - [ - "▁", - "ung" - ], - [ - "▁or", - "igen" - ], - [ - "▁orig", - "en" - ], - [ - "▁C", - "row" - ], - [ - "▁Cr", - "ow" - ], - [ - "▁Cro", - "w" - ], - [ - "▁E", - "rd" - ], - [ - "▁Er", - "d" - ], - [ - "▁s", - "ieben" - ], - [ - "▁si", - "eben" - ], - [ - "▁sie", - "ben" - ], - [ - "lu", - "a" - ], - [ - "l", - "ua" - ], - [ - "▁B", - "B" - ], - [ - "▁", - "BB" - ], - [ - "RE", - "NT" - ], - [ - "R", - "ENT" - ], - [ - "▁pił", - "kar" - ], - [ - "▁mar", - "que" - ], - [ - "▁marqu", - "e" - ], - [ - "▁La", - "bour" - ], - [ - "▁Lab", - "our" - ], - [ - "vi", - "ders" - ], - [ - "vider", - "s" - ], - [ - "vid", - "ers" - ], - [ - "v", - "iders" - ], - [ - "▁ex", - "empl" - ], - [ - "▁exem", - "pl" - ], - [ - "So", - "und" - ], - [ - "S", - "ound" - ], - [ - "▁W", - "ass" - ], - [ - "▁Was", - "s" - ], - [ - "▁Wa", - "ss" - ], - [ - "arr", - "ison" - ], - [ - "▁те", - "чение" - ], - [ - "▁Of", - "icina" - ], - [ - "▁D", - "aw" - ], - [ - "▁Da", - "w" - ], - [ - "▁K", - "auf" - ], - [ - "▁Ka", - "uf" - ], - [ - "én", - "t" - ], - [ - "é", - "nt" - ], - [ - "és", - "ő" - ], - [ - "▁=", - "\"" - ], - [ - "▁", - "=\"" - ], - [ - "▁k", - "at" - ], - [ - "▁ka", - "t" - ], - [ - "di", - "ction" - ], - [ - "dict", - "ion" - ], - [ - "dic", - "tion" - ], - [ - "d", - "iction" - ], - [ - "▁V", - "oll" - ], - [ - "▁Vol", - "l" - ], - [ - "▁Vo", - "ll" - ], - [ - "▁high", - "way" - ], - [ - "J", - "ames" - ], - [ - "ze", - "uge" - ], - [ - "zeug", - "e" - ], - [ - "▁mod", - "elo" - ], - [ - "▁model", - "o" - ], - [ - "▁mode", - "lo" - ], - [ - "Th", - "row" - ], - [ - "▁F", - "orum" - ], - [ - "▁For", - "um" - ], - [ - "▁Fo", - "rum" - ], - [ - "(\"", - "@" - ], - [ - "▁en", - "fer" - ], - [ - "▁enf", - "er" - ], - [ - "▁спе", - "циаль" - ], - [ - "Number", - "s" - ], - [ - "Num", - "bers" - ], - [ - "▁B", - "inary" - ], - [ - "▁Bin", - "ary" - ], - [ - "▁", - "Binary" - ], - [ - "▁Martí", - "nez" - ], - [ - "▁Martín", - "ez" - ], - [ - "▁St", - "ato" - ], - [ - "▁Stat", - "o" - ], - [ - "▁Sta", - "to" - ], - [ - "▁fest", - "iv" - ], - [ - "▁k", - "atol" - ], - [ - "▁ka", - "tol" - ], - [ - "▁kat", - "ol" - ], - [ - "▁А", - "б" - ], - [ - "▁lim", - "itation" - ], - [ - "▁limit", - "ation" - ], - [ - "▁S", - "TR" - ], - [ - "▁ST", - "R" - ], - [ - "▁", - "STR" - ], - [ - "▁О", - "фициаль" - ], - [ - "ip", - "es" - ], - [ - "ipe", - "s" - ], - [ - "i", - "pes" - ], - [ - "▁I", - "sn" - ], - [ - "▁Is", - "n" - ], - [ - "▁rule", - "d" - ], - [ - "▁ru", - "led" - ], - [ - "▁c", - "í" - ], - [ - "▁", - "cí" - ], - [ - "ge", - "ber" - ], - [ - "geb", - "er" - ], - [ - "▁lavor", - "o" - ], - [ - "▁lav", - "oro" - ], - [ - "▁parenthes", - "es" - ], - [ - "о", - "з" - ], - [ - "▁équip", - "es" - ], - [ - "▁équipe", - "s" - ], - [ - "▁efficient", - "ly" - ], - [ - "▁Per", - "iod" - ], - [ - "▁", - "Period" - ], - [ - "▁Reg", - "arding" - ], - [ - "le", - "af" - ], - [ - "lea", - "f" - ], - [ - "▁similar", - "ity" - ], - [ - "▁gest", - "ure" - ], - [ - "data", - "b" - ], - [ - "da", - "tab" - ], - [ - "dat", - "ab" - ], - [ - "▁term", - "inate" - ], - [ - "▁termin", - "ate" - ], - [ - "▁sem", - "antics" - ], - [ - "▁semantic", - "s" - ], - [ - "▁A", - "lo" - ], - [ - "▁Al", - "o" - ], - [ - "▁c", - "ig" - ], - [ - "▁ci", - "g" - ], - [ - "▁Open", - "GL" - ], - [ - "▁heut", - "igen" - ], - [ - "xa", - "ml" - ], - [ - "x", - "aml" - ], - [ - "▁frequ", - "encies" - ], - [ - ")}", - "." - ], - [ - ")", - "}." - ], - [ - "▁threaten", - "ed" - ], - [ - "▁threat", - "ened" - ], - [ - "ти", - "к" - ], - [ - "▁cal", - "cio" - ], - [ - "▁calci", - "o" - ], - [ - "▁calc", - "io" - ], - [ - "▁R", - "iemann" - ], - [ - "▁Ri", - "emann" - ], - [ - "sl", - "ug" - ], - [ - "▁F", - "inale" - ], - [ - "▁Fin", - "ale" - ], - [ - "▁Final", - "e" - ], - [ - "L", - "R" - ], - [ - "▁Der", - "by" - ], - [ - "▁о", - "ще" - ], - [ - "▁de", - "viation" - ], - [ - "▁dev", - "iation" - ], - [ - "▁devi", - "ation" - ], - [ - "äch", - "en" - ], - [ - "äche", - "n" - ], - [ - "ä", - "chen" - ], - [ - "▁C", - "ris" - ], - [ - "▁Cr", - "is" - ], - [ - "но", - "во" - ], - [ - "нов", - "о" - ], - [ - "н", - "ово" - ], - [ - "▁сто", - "лі" - ], - [ - "▁re", - "lev" - ], - [ - "▁rel", - "ev" - ], - [ - "▁splend", - "id" - ], - [ - "▁у", - "чё" - ], - [ - "er", - "ving" - ], - [ - "erv", - "ing" - ], - [ - "ga", - "ble" - ], - [ - "g", - "able" - ], - [ - "▁général", - "e" - ], - [ - "▁généra", - "le" - ], - [ - "po", - "m" - ], - [ - "p", - "om" - ], - [ - "▁Che", - "ers" - ], - [ - "▁impr", - "ison" - ], - [ - "▁in", - "dent" - ], - [ - "▁ind", - "ent" - ], - [ - "▁inde", - "nt" - ], - [ - "▁", - "indent" - ], - [ - "▁anal", - "yz" - ], - [ - "▁analy", - "z" - ], - [ - "▁re", - "vert" - ], - [ - "▁rev", - "ert" - ], - [ - "▁reve", - "rt" - ], - [ - "▁rever", - "t" - ], - [ - "ér", - "er" - ], - [ - "ére", - "r" - ], - [ - "é", - "rer" - ], - [ - "▁ph", - "ases" - ], - [ - "▁phase", - "s" - ], - [ - "First", - "Name" - ], - [ - "▁m", - "ig" - ], - [ - "▁mi", - "g" - ], - [ - "▁dist", - "urb" - ], - [ - "▁mi", - "xture" - ], - [ - "▁)", - "{" - ], - [ - "▁", - "){" - ], - [ - "int", - "ure" - ], - [ - "▁T", - "ried" - ], - [ - "▁Tr", - "ied" - ], - [ - "▁Tri", - "ed" - ], - [ - "▁soon", - "er" - ], - [ - "▁p", - "els" - ], - [ - "▁pe", - "ls" - ], - [ - "▁pel", - "s" - ], - [ - "▁ét", - "abl" - ], - [ - "et", - "ro" - ], - [ - "etr", - "o" - ], - [ - "it", - "ie" - ], - [ - "iti", - "e" - ], - [ - "▁quart", - "ier" - ], - [ - "▁го", - "во" - ], - [ - "▁г", - "ово" - ], - [ - "▁", - "гово" - ], - [ - "▁vá", - "ros" - ], - [ - "uf", - "e" - ], - [ - "u", - "fe" - ], - [ - "he", - "ten" - ], - [ - "het", - "en" - ], - [ - "h", - "eten" - ], - [ - "хо", - "м" - ], - [ - "х", - "ом" - ], - [ - "▁so", - "ap" - ], - [ - "▁", - "soap" - ], - [ - "ut", - "ors" - ], - [ - "uto", - "rs" - ], - [ - "utor", - "s" - ], - [ - "▁d", - "uch" - ], - [ - "▁du", - "ch" - ], - [ - "▁duc", - "h" - ], - [ - "syn", - "tax" - ], - [ - "s", - "yntax" - ], - [ - "▁tr", - "ibe" - ], - [ - "▁tri", - "be" - ], - [ - "▁trib", - "e" - ], - [ - "▁ch", - "ante" - ], - [ - "▁chant", - "e" - ], - [ - "Tr", - "i" - ], - [ - "T", - "ri" - ], - [ - "▁M", - "ate" - ], - [ - "▁Ma", - "te" - ], - [ - "▁Mat", - "e" - ], - [ - "qu", - "ality" - ], - [ - "qual", - "ity" - ], - [ - "uo", - "la" - ], - [ - "u", - "ola" - ], - [ - "=\"", - "." - ], - [ - "=", - "\"." - ], - [ - "ch", - "k" - ], - [ - "▁в", - "сі" - ], - [ - "▁вс", - "і" - ], - [ - "▁prze", - "ci" - ], - [ - "▁M", - "eteor" - ], - [ - "▁Met", - "eor" - ], - [ - "▁scatter", - "ed" - ], - [ - "Pl", - "us" - ], - [ - "P", - "lus" - ], - [ - "tr", - "ad" - ], - [ - "tra", - "d" - ], - [ - "t", - "rad" - ], - [ - "▁stack", - "overflow" - ], - [ - "▁", - "stackoverflow" - ], - [ - "▁re", - "tra" - ], - [ - "▁r", - "etra" - ], - [ - "▁ret", - "ra" - ], - [ - "▁retr", - "a" - ], - [ - "▁éd", - "itions" - ], - [ - "▁édition", - "s" - ], - [ - "▁s", - "ain" - ], - [ - "▁sa", - "in" - ], - [ - "cri", - "be" - ], - [ - "cr", - "ibe" - ], - [ - "ig", - "non" - ], - [ - "ign", - "on" - ], - [ - "uc", - "ker" - ], - [ - "uck", - "er" - ], - [ - "u", - "cker" - ], - [ - "▁ма", - "ло" - ], - [ - "▁ten", - "ir" - ], - [ - "▁ex", - "ports" - ], - [ - "▁export", - "s" - ], - [ - "▁", - "exports" - ], - [ - "▁aux", - "ili" - ], - [ - "▁]", - "]" - ], - [ - "▁", - "]]" - ], - [ - "▁C", - "BS" - ], - [ - "un", - "iform" - ], - [ - "uni", - "form" - ], - [ - "▁period", - "ic" - ], - [ - "ag", - "rant" - ], - [ - "agr", - "ant" - ], - [ - "▁em", - "ple" - ], - [ - "▁emp", - "le" - ], - [ - "W", - "il" - ], - [ - "▁f", - "res" - ], - [ - "▁fr", - "es" - ], - [ - "▁fre", - "s" - ], - [ - "▁str", - "utt" - ], - [ - "▁stru", - "tt" - ], - [ - "▁с", - "віт" - ], - [ - "▁сві", - "т" - ], - [ - "▁be", - "tre" - ], - [ - "▁bet", - "re" - ], - [ - "▁объ", - "ек" - ], - [ - "ти", - "ся" - ], - [ - "▁b", - "isher" - ], - [ - "▁bis", - "her" - ], - [ - "ba", - "um" - ], - [ - "bau", - "m" - ], - [ - "b", - "aum" - ], - [ - "is", - "hi" - ], - [ - "ish", - "i" - ], - [ - "▁Gaz", - "ette" - ], - [ - "background", - "Color" - ], - [ - "j", - "l" - ], - [ - "▁f", - "iel" - ], - [ - "▁fi", - "el" - ], - [ - "▁пре", - "ма" - ], - [ - "▁protagon", - "ista" - ], - [ - "▁Muham", - "mad" - ], - [ - "▁sim", - "ulate" - ], - [ - "▁H", - "ook" - ], - [ - "▁Ho", - "ok" - ], - [ - "fe", - "st" - ], - [ - "f", - "est" - ], - [ - "▁сво", - "их" - ], - [ - "▁свои", - "х" - ], - [ - "Se", - "nder" - ], - [ - "Send", - "er" - ], - [ - "S", - "ender" - ], - [ - "▁list", - "ened" - ], - [ - "▁listen", - "ed" - ], - [ - "▁liste", - "ned" - ], - [ - "ж", - "і" - ], - [ - "je", - "st" - ], - [ - "jes", - "t" - ], - [ - "j", - "est" - ], - [ - "ko", - "rd" - ], - [ - "kor", - "d" - ], - [ - "k", - "ord" - ], - [ - "Cho", - "ice" - ], - [ - "▁hoof", - "d" - ], - [ - "redu", - "cible" - ], - [ - "hp", - "p" - ], - [ - "h", - "pp" - ], - [ - "▁W", - "u" - ], - [ - "š", - "i" - ], - [ - "▁M", - "arse" - ], - [ - "▁Mar", - "se" - ], - [ - "▁Mars", - "e" - ], - [ - "▁s", - "oir" - ], - [ - "▁so", - "ir" - ], - [ - "we", - "sten" - ], - [ - "west", - "en" - ], - [ - "w", - "esten" - ], - [ - "em", - "os" - ], - [ - "emo", - "s" - ], - [ - "e", - "mos" - ], - [ - "▁D", - "uc" - ], - [ - "▁Du", - "c" - ], - [ - "▁amer", - "ik" - ], - [ - "|", - "}{" - ], - [ - "▁G", - "ul" - ], - [ - "▁Gu", - "l" - ], - [ - "▁Sp", - "rache" - ], - [ - "▁Spr", - "ache" - ], - [ - "▁mis", - "match" - ], - [ - "▁mism", - "atch" - ], - [ - "Sc", - "al" - ], - [ - "S", - "cal" - ], - [ - "P", - "ixel" - ], - [ - "E", - "F" - ], - [ - "▁S", - "ep" - ], - [ - "▁Se", - "p" - ], - [ - "▁powie", - "cie" - ], - [ - "ur", - "k" - ], - [ - "▁Nap", - "oli" - ], - [ - "▁neighbour", - "hood" - ], - [ - "сто", - "ян" - ], - [ - "стоя", - "н" - ], - [ - "▁search", - "es" - ], - [ - "yr", - "us" - ], - [ - "y", - "rus" - ], - [ - "пе", - "т" - ], - [ - "п", - "ет" - ], - [ - "He", - "lp" - ], - [ - "Hel", - "p" - ], - [ - "pon", - "t" - ], - [ - "po", - "nt" - ], - [ - "p", - "ont" - ], - [ - "▁Or", - "ient" - ], - [ - "▁Ori", - "ent" - ], - [ - "▁Alf", - "onso" - ], - [ - "▁monitor", - "ing" - ], - [ - "ia", - "o" - ], - [ - "i", - "ao" - ], - [ - "éd", - "é" - ], - [ - "▁Cés", - "ar" - ], - [ - "ше", - "е" - ], - [ - "Sh", - "ift" - ], - [ - "su", - "it" - ], - [ - "s", - "uit" - ], - [ - "code", - "d" - ], - [ - "co", - "ded" - ], - [ - "cod", - "ed" - ], - [ - "c", - "oded" - ], - [ - "но", - "то" - ], - [ - "▁Par", - "ti" - ], - [ - "▁Part", - "i" - ], - [ - "▁la", - "sci" - ], - [ - "▁las", - "ci" - ], - [ - "▁aw", - "esome" - ], - [ - "us", - "ta" - ], - [ - "ust", - "a" - ], - [ - "u", - "sta" - ], - [ - "▁С", - "ове" - ], - [ - "▁Со", - "ве" - ], - [ - "▁Сов", - "е" - ], - [ - "▁F", - "land" - ], - [ - "▁Fl", - "and" - ], - [ - "oo", - "m" - ], - [ - "o", - "om" - ], - [ - "▁de", - "vi" - ], - [ - "▁dev", - "i" - ], - [ - "eng", - "elsk" - ], - [ - "end", - "um" - ], - [ - "▁Pa", - "scal" - ], - [ - "▁Pas", - "cal" - ], - [ - "▁B", - "ind" - ], - [ - "▁Bi", - "nd" - ], - [ - "▁Bin", - "d" - ], - [ - "▁", - "Bind" - ], - [ - "▁sigu", - "ientes" - ], - [ - "▁siguiente", - "s" - ], - [ - "J", - "B" - ], - [ - "▁Peters", - "burg" - ], - [ - "▁incorrect", - "ly" - ], - [ - "▁B", - "ash" - ], - [ - "▁Bas", - "h" - ], - [ - "▁Ba", - "sh" - ], - [ - "▁pe", - "los" - ], - [ - "▁pel", - "os" - ], - [ - "▁pelo", - "s" - ], - [ - "▁zes", - "po" - ], - [ - "NS", - "URL" - ], - [ - "▁př", - "ek" - ], - [ - "▁Cr", - "ime" - ], - [ - "na", - "ch" - ], - [ - "n", - "ach" - ], - [ - "▁th", - "rust" - ], - [ - "▁thr", - "ust" - ], - [ - "▁Cult", - "ura" - ], - [ - "W", - "F" - ], - [ - "▁S", - "olo" - ], - [ - "▁So", - "lo" - ], - [ - "▁Sol", - "o" - ], - [ - "▁in", - "vas" - ], - [ - "▁inv", - "as" - ], - [ - "▁individ", - "ually" - ], - [ - "▁individual", - "ly" - ], - [ - "ib", - "m" - ], - [ - "i", - "bm" - ], - [ - "▁et", - "apa" - ], - [ - "▁hand", - "ed" - ], - [ - "▁han", - "ded" - ], - [ - "▁where", - "ver" - ], - [ - "▁interpol", - "ation" - ], - [ - "▁mus", - "ée" - ], - [ - "▁C", - "NN" - ], - [ - "id", - "ia" - ], - [ - "idi", - "a" - ], - [ - "i", - "dia" - ], - [ - "ńst", - "w" - ], - [ - "▁pr", - "zew" - ], - [ - "▁prze", - "w" - ], - [ - "▁prz", - "ew" - ], - [ - "ug", - "hing" - ], - [ - "ugh", - "ing" - ], - [ - "▁a", - "ctors" - ], - [ - "▁act", - "ors" - ], - [ - "▁actor", - "s" - ], - [ - "▁Ori", - "ental" - ], - [ - "▁Orient", - "al" - ], - [ - "▁conven", - "ience" - ], - [ - "▁mi", - "asta" - ], - [ - "br", - "ains" - ], - [ - "bra", - "ins" - ], - [ - "▁ме", - "ся" - ], - [ - "▁inf", - "atti" - ], - [ - "▁All", - "Movie" - ], - [ - "▁crit", - "ique" - ], - [ - "▁success", - "o" - ], - [ - "▁succ", - "esso" - ], - [ - "anc", - "ouver" - ], - [ - "▁f", - "á" - ], - [ - "ъл", - "гар" - ], - [ - "▁wis", - "dom" - ], - [ - "▁Pho", - "enix" - ], - [ - "ho", - "le" - ], - [ - "hol", - "e" - ], - [ - "h", - "ole" - ], - [ - "▁inform", - "ación" - ], - [ - "▁Air", - "lines" - ], - [ - "▁Airl", - "ines" - ], - [ - ".", - "«" - ], - [ - "mo", - "rt" - ], - [ - "mor", - "t" - ], - [ - "m", - "ort" - ], - [ - "user", - "Id" - ], - [ - "▁*/", - "\r" - ], - [ - "▁C", - "ongo" - ], - [ - "▁Con", - "go" - ], - [ - "▁Cong", - "o" - ], - [ - "▁\"", - "`" - ], - [ - "▁", - "\"`" - ], - [ - "co", - "rr" - ], - [ - "cor", - "r" - ], - [ - "c", - "orr" - ], - [ - "▁problem", - "as" - ], - [ - "▁proble", - "mas" - ], - [ - "▁problema", - "s" - ], - [ - "▁probl", - "emas" - ], - [ - "▁b", - "ib" - ], - [ - "▁bi", - "b" - ], - [ - "▁", - "bib" - ], - [ - "▁póź", - "niej" - ], - [ - "▁file", - "Name" - ], - [ - "▁", - "fileName" - ], - [ - "zo", - "tt" - ], - [ - "z", - "ott" - ], - [ - "ma", - "cht" - ], - [ - "mac", - "ht" - ], - [ - "m", - "acht" - ], - [ - "▁Ul", - "rich" - ], - [ - "C", - "y" - ], - [ - "end", - "point" - ], - [ - "▁she", - "ep" - ], - [ - "▁i", - "bn" - ], - [ - "Fe", - "ed" - ], - [ - "F", - "eed" - ], - [ - "▁sympath", - "y" - ], - [ - "▁I", - "b" - ], - [ - "▁territ", - "orial" - ], - [ - "ra", - "ting" - ], - [ - "rat", - "ing" - ], - [ - "r", - "ating" - ], - [ - "да", - "ми" - ], - [ - "▁d", - "st" - ], - [ - "▁ds", - "t" - ], - [ - "▁", - "dst" - ], - [ - "у", - "ю" - ], - [ - "ah", - "o" - ], - [ - "a", - "ho" - ], - [ - "▁s", - "ug" - ], - [ - "▁su", - "g" - ], - [ - "em", - "ia" - ], - [ - "emi", - "a" - ], - [ - "▁t", - "ed" - ], - [ - "▁te", - "d" - ], - [ - "▁", - "ted" - ], - [ - "▁A", - "pi" - ], - [ - "▁Ap", - "i" - ], - [ - "▁", - "Api" - ], - [ - "▁R", - "ica" - ], - [ - "▁Ric", - "a" - ], - [ - "▁Ri", - "ca" - ], - [ - "▁M", - "R" - ], - [ - "▁", - "MR" - ], - [ - "ński", - "m" - ], - [ - "ń", - "skim" - ], - [ - "▁V", - "oor" - ], - [ - "▁Vo", - "or" - ], - [ - "▁de", - "vil" - ], - [ - "▁dev", - "il" - ], - [ - "▁devi", - "l" - ], - [ - "▁Ф", - "о" - ], - [ - "▁N", - "är" - ], - [ - "▁Nä", - "r" - ], - [ - "▁...", - ")" - ], - [ - "▁..", - ".)" - ], - [ - "▁", - "...)" - ], - [ - "▁v", - "ois" - ], - [ - "▁vo", - "is" - ], - [ - "▁ab", - "bre" - ], - [ - "▁abb", - "re" - ], - [ - "▁M", - "änner" - ], - [ - "xim", - "o" - ], - [ - "xi", - "mo" - ], - [ - "x", - "imo" - ], - [ - "▁intellect", - "ual" - ], - [ - "▁t", - "ales" - ], - [ - "▁tal", - "es" - ], - [ - "▁ta", - "les" - ], - [ - "▁tale", - "s" - ], - [ - "sim", - "ilar" - ], - [ - "ne", - "um" - ], - [ - "▁O", - "rig" - ], - [ - "▁Or", - "ig" - ], - [ - "▁Ori", - "g" - ], - [ - "▁po", - "stal" - ], - [ - "▁pos", - "tal" - ], - [ - "▁post", - "al" - ], - [ - "▁h", - "vor" - ], - [ - "▁ident", - "ification" - ], - [ - "▁identific", - "ation" - ], - [ - "▁О", - "д" - ], - [ - "ue", - "sto" - ], - [ - "ues", - "to" - ], - [ - "uest", - "o" - ], - [ - "u", - "esto" - ], - [ - "▁.", - "./" - ], - [ - "▁..", - "/" - ], - [ - "▁", - "../" - ], - [ - "▁b", - "ir" - ], - [ - "▁bi", - "r" - ], - [ - "▁", - "bir" - ], - [ - "▁Л", - "он" - ], - [ - "▁Ло", - "н" - ], - [ - "▁es", - "empio" - ], - [ - "▁E", - "ing" - ], - [ - "▁Ein", - "g" - ], - [ - "Exp", - "and" - ], - [ - "▁PR", - "IMARY" - ], - [ - "▁J", - "in" - ], - [ - "▁Ji", - "n" - ], - [ - "▁vš", - "ak" - ], - [ - "ours", - "es" - ], - [ - "ourse", - "s" - ], - [ - "▁Be", - "tty" - ], - [ - "▁Bet", - "ty" - ], - [ - "▁W", - "M" - ], - [ - "▁", - "WM" - ], - [ - "▁fl", - "ask" - ], - [ - "▁fla", - "sk" - ], - [ - "hl", - "en" - ], - [ - "h", - "len" - ], - [ - "▁A", - "del" - ], - [ - "▁Ad", - "el" - ], - [ - "lar", - "avel" - ], - [ - "▁д", - "ет" - ], - [ - "▁де", - "т" - ], - [ - "сь", - "кою" - ], - [ - "сько", - "ю" - ], - [ - "▁M", - "undo" - ], - [ - "▁Mun", - "do" - ], - [ - "ic", - "zn" - ], - [ - "icz", - "n" - ], - [ - "ifi", - "é" - ], - [ - "▁М", - "ор" - ], - [ - "▁Мо", - "р" - ], - [ - "▁д", - "рев" - ], - [ - "▁др", - "ев" - ], - [ - "Date", - "Format" - ], - [ - "сь", - "ким" - ], - [ - "ськ", - "им" - ], - [ - "▁d", - "ated" - ], - [ - "▁da", - "ted" - ], - [ - "▁dat", - "ed" - ], - [ - "▁date", - "d" - ], - [ - "▁", - "dated" - ], - [ - "ко", - "ли" - ], - [ - "кол", - "и" - ], - [ - "▁результа", - "те" - ], - [ - "\\)", - "." - ], - [ - "\\", - ")." - ], - [ - "▁delay", - "ed" - ], - [ - "so", - "und" - ], - [ - "s", - "ound" - ], - [ - "▁Ма", - "к" - ], - [ - "▁\"", - "..." - ], - [ - "▁\".", - ".." - ], - [ - "▁b", - "innen" - ], - [ - "▁bin", - "nen" - ], - [ - "▁фа", - "куль" - ], - [ - "▁pol", - "ygon" - ], - [ - "▁poly", - "gon" - ], - [ - "▁eg", - "gs" - ], - [ - "▁egg", - "s" - ], - [ - "At", - "IndexPath" - ], - [ - "AtIndex", - "Path" - ], - [ - "мен", - "таль" - ], - [ - "мент", - "аль" - ], - [ - "мента", - "ль" - ], - [ - "▁in", - "cred" - ], - [ - "▁incre", - "d" - ], - [ - "▁inc", - "red" - ], - [ - "ch", - "unk" - ], - [ - "web", - "driver" - ], - [ - "▁с", - "вобо" - ], - [ - "▁сво", - "бо" - ], - [ - "▁mi", - "ędzy" - ], - [ - "Rece", - "ived" - ], - [ - "Receive", - "d" - ], - [ - "▁M", - "onde" - ], - [ - "▁Mon", - "de" - ], - [ - "▁Mo", - "nde" - ], - [ - "▁Mond", - "e" - ], - [ - "▁J", - "Query" - ], - [ - "Bu", - "tt" - ], - [ - "But", - "t" - ], - [ - "B", - "utt" - ], - [ - "▁P", - "DO" - ], - [ - "▁for", - "ec" - ], - [ - "▁fo", - "rec" - ], - [ - "▁fore", - "c" - ], - [ - "▁discipl", - "ine" - ], - [ - "ch", - "ev" - ], - [ - "che", - "v" - ], - [ - "на", - "т" - ], - [ - "н", - "ат" - ], - [ - "▁re", - "dis" - ], - [ - "▁red", - "is" - ], - [ - "▁hun", - "ting" - ], - [ - "▁al", - "k" - ], - [ - "▁", - "alk" - ], - [ - "▁proof", - "s" - ], - [ - "PR", - "I" - ], - [ - "P", - "RI" - ], - [ - "▁c", - "hip" - ], - [ - "▁ch", - "ip" - ], - [ - "▁chi", - "p" - ], - [ - "és", - "ie" - ], - [ - "▁H", - "O" - ], - [ - "▁", - "HO" - ], - [ - "▁r", - "ug" - ], - [ - "▁ru", - "g" - ], - [ - "▁", - "rug" - ], - [ - "zo", - "s" - ], - [ - "z", - "os" - ], - [ - "▁s", - "orte" - ], - [ - "▁sort", - "e" - ], - [ - "▁sor", - "te" - ], - [ - "▁ze", - "igt" - ], - [ - "▁Phys", - "ics" - ], - [ - "leg", - "te" - ], - [ - "legt", - "e" - ], - [ - "▁proport", - "ional" - ], - [ - "▁proportion", - "al" - ], - [ - "▁tool", - "bar" - ], - [ - "ve", - "ment" - ], - [ - "v", - "ement" - ], - [ - "not", - "in" - ], - [ - "▁prv", - "ní" - ], - [ - "bl", - "ah" - ], - [ - "bla", - "h" - ], - [ - "b", - "lah" - ], - [ - "▁prés", - "ence" - ], - [ - "▁l", - "loc" - ], - [ - "▁ll", - "oc" - ], - [ - "▁lí", - "der" - ], - [ - "▁Ac", - "cept" - ], - [ - "▁", - "Accept" - ], - [ - "▁Al", - "ways" - ], - [ - "▁\"", - "{" - ], - [ - "▁divers", - "i" - ], - [ - "▁diver", - "si" - ], - [ - "ik", - "or" - ], - [ - "iko", - "r" - ], - [ - "i", - "kor" - ], - [ - "Per", - "iod" - ], - [ - "ж", - "ён" - ], - [ - "▁Al", - "liance" - ], - [ - "▁All", - "iance" - ], - [ - "▁re", - "lay" - ], - [ - "▁rel", - "ay" - ], - [ - "▁rela", - "y" - ], - [ - "Br", - "o" - ], - [ - "B", - "ro" - ], - [ - "jö", - "n" - ], - [ - "j", - "ön" - ], - [ - "▁B", - "aud" - ], - [ - "▁Ba", - "ud" - ], - [ - "▁Bau", - "d" - ], - [ - "▁B", - "ian" - ], - [ - "▁Bi", - "an" - ], - [ - "')", - "[" - ], - [ - "'", - ")[" - ], - [ - "чи", - "в" - ], - [ - "▁P", - "oss" - ], - [ - "▁Po", - "ss" - ], - [ - "▁Pos", - "s" - ], - [ - "▁Mitg", - "lieder" - ], - [ - "▁Mitglied", - "er" - ], - [ - "▁n", - "ev" - ], - [ - "▁ne", - "v" - ], - [ - "Dan", - "iel" - ], - [ - "▁t", - "ends" - ], - [ - "▁ten", - "ds" - ], - [ - "▁tend", - "s" - ], - [ - "▁compag", - "nie" - ], - [ - "▁liv", - "res" - ], - [ - "▁livre", - "s" - ], - [ - "lu", - "b" - ], - [ - "l", - "ub" - ], - [ - "▁", - "▁" - ], - [ - "▁▁", - "▁▁" - ], - [ - "▁▁▁", - "▁" - ], - [ - "▁", - "▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁", - "▁" - ], - [ - "▁▁▁", - "▁▁" - ], - [ - "▁", - "▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁", - "▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁" - ], - [ - "▁", - "▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁", - "▁▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁", - "▁" - ], - [ - "▁▁▁", - "▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁", - "▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁", - "▁▁▁▁▁▁▁▁" - ], - [ - "▁▁▁▁▁▁▁▁▁▁▁", - "▁▁▁▁" - ], - [ - "▁", - "▁▁▁▁▁▁▁▁▁▁▁▁▁▁" - ], - [ - "▁<", - "SU" - ], - [ - "▁" - ], - [ - "▁" - ], - [ - "▁" - ], - [ - "▁" - ] - ] - } -} \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/test_script.py b/emissary-ml/llm-scripts/fine-tuning/llama3/test_script.py deleted file mode 100644 index 8e89a9f2d7373baff5fed18006618c9b520ec874..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/test_script.py +++ /dev/null @@ -1 +0,0 @@ -test_functions = {} \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/_virtualenv.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/_virtualenv.py deleted file mode 100644 index da98b827a2461bd42b9517239dacad80fb0b46e2..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/_virtualenv.py +++ /dev/null @@ -1,130 +0,0 @@ -"""Patches that are applied at runtime to the virtual environment""" -# -*- coding: utf-8 -*- - -import os -import sys - -VIRTUALENV_PATCH_FILE = os.path.join(__file__) - - -def patch_dist(dist): - """ - Distutils allows user to configure some arguments via a configuration file: - https://docs.python.org/3/install/index.html#distutils-configuration-files - - Some of this arguments though don't make sense in context of the virtual environment files, let's fix them up. - """ - # we cannot allow some install config as that would get packages installed outside of the virtual environment - old_parse_config_files = dist.Distribution.parse_config_files - - def parse_config_files(self, *args, **kwargs): - result = old_parse_config_files(self, *args, **kwargs) - install = self.get_option_dict("install") - - if "prefix" in install: # the prefix governs where to install the libraries - install["prefix"] = VIRTUALENV_PATCH_FILE, os.path.abspath(sys.prefix) - for base in ("purelib", "platlib", "headers", "scripts", "data"): - key = "install_{}".format(base) - if key in install: # do not allow global configs to hijack venv paths - install.pop(key, None) - return result - - dist.Distribution.parse_config_files = parse_config_files - - -# Import hook that patches some modules to ignore configuration values that break package installation in case -# of virtual environments. -_DISTUTILS_PATCH = "distutils.dist", "setuptools.dist" -if sys.version_info > (3, 4): - # https://docs.python.org/3/library/importlib.html#setting-up-an-importer - from functools import partial - from importlib.abc import MetaPathFinder - from importlib.util import find_spec - - class _Finder(MetaPathFinder): - """A meta path finder that allows patching the imported distutils modules""" - - fullname = None - - # lock[0] is threading.Lock(), but initialized lazily to avoid importing threading very early at startup, - # because there are gevent-based applications that need to be first to import threading by themselves. - # See https://github.com/pypa/virtualenv/issues/1895 for details. - lock = [] - - def find_spec(self, fullname, path, target=None): - if fullname in _DISTUTILS_PATCH and self.fullname is None: - # initialize lock[0] lazily - if len(self.lock) == 0: - import threading - - lock = threading.Lock() - # there is possibility that two threads T1 and T2 are simultaneously running into find_spec, - # observing .lock as empty, and further going into hereby initialization. However due to the GIL, - # list.append() operation is atomic and this way only one of the threads will "win" to put the lock - # - that every thread will use - into .lock[0]. - # https://docs.python.org/3/faq/library.html#what-kinds-of-global-value-mutation-are-thread-safe - self.lock.append(lock) - - with self.lock[0]: - self.fullname = fullname - try: - spec = find_spec(fullname, path) - if spec is not None: - # https://www.python.org/dev/peps/pep-0451/#how-loading-will-work - is_new_api = hasattr(spec.loader, "exec_module") - func_name = "exec_module" if is_new_api else "load_module" - old = getattr(spec.loader, func_name) - func = self.exec_module if is_new_api else self.load_module - if old is not func: - try: - setattr(spec.loader, func_name, partial(func, old)) - except AttributeError: - pass # C-Extension loaders are r/o such as zipimporter with for details and usage. -""" -# Dev Notes: -# - MSDN on where to store app data files: -# http://support.microsoft.com/default.aspx?scid=kb;en-us;310294#XSLTH3194121123120121120120 -# - Mac OS X: http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/index.html -# - XDG spec for Un*x: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html - -__version__ = "1.4.4" -__version_info__ = tuple(int(segment) for segment in __version__.split(".")) - - -import sys -import os - -PY3 = sys.version_info[0] == 3 - -if PY3: - unicode = str - -if sys.platform.startswith('java'): - import platform - os_name = platform.java_ver()[3][0] - if os_name.startswith('Windows'): # "Windows XP", "Windows 7", etc. - system = 'win32' - elif os_name.startswith('Mac'): # "Mac OS X", etc. - system = 'darwin' - else: # "Linux", "SunOS", "FreeBSD", etc. - # Setting this to "linux2" is not ideal, but only Windows or Mac - # are actually checked for and the rest of the module expects - # *sys.platform* style strings. - system = 'linux2' -else: - system = sys.platform - - - -def user_data_dir(appname=None, appauthor=None, version=None, roaming=False): - r"""Return full path to the user-specific data dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be ".". - Only applied when appname is present. - "roaming" (boolean, default False) can be set True to use the Windows - roaming appdata directory. That means that for users on a Windows - network setup for roaming profiles, this user data will be - sync'd on login. See - - for a discussion of issues. - - Typical user data directories are: - Mac OS X: ~/Library/Application Support/ - Unix: ~/.local/share/ # or in $XDG_DATA_HOME, if defined - Win XP (not roaming): C:\Documents and Settings\\Application Data\\ - Win XP (roaming): C:\Documents and Settings\\Local Settings\Application Data\\ - Win 7 (not roaming): C:\Users\\AppData\Local\\ - Win 7 (roaming): C:\Users\\AppData\Roaming\\ - - For Unix, we follow the XDG spec and support $XDG_DATA_HOME. - That means, by default "~/.local/share/". - """ - if system == "win32": - if appauthor is None: - appauthor = appname - const = roaming and "CSIDL_APPDATA" or "CSIDL_LOCAL_APPDATA" - path = os.path.normpath(_get_win_folder(const)) - if appname: - if appauthor is not False: - path = os.path.join(path, appauthor, appname) - else: - path = os.path.join(path, appname) - elif system == 'darwin': - path = os.path.expanduser('~/Library/Application Support/') - if appname: - path = os.path.join(path, appname) - else: - path = os.getenv('XDG_DATA_HOME', os.path.expanduser("~/.local/share")) - if appname: - path = os.path.join(path, appname) - if appname and version: - path = os.path.join(path, version) - return path - - -def site_data_dir(appname=None, appauthor=None, version=None, multipath=False): - r"""Return full path to the user-shared data dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be ".". - Only applied when appname is present. - "multipath" is an optional parameter only applicable to *nix - which indicates that the entire list of data dirs should be - returned. By default, the first item from XDG_DATA_DIRS is - returned, or '/usr/local/share/', - if XDG_DATA_DIRS is not set - - Typical site data directories are: - Mac OS X: /Library/Application Support/ - Unix: /usr/local/share/ or /usr/share/ - Win XP: C:\Documents and Settings\All Users\Application Data\\ - Vista: (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.) - Win 7: C:\ProgramData\\ # Hidden, but writeable on Win 7. - - For Unix, this is using the $XDG_DATA_DIRS[0] default. - - WARNING: Do not use this on Windows. See the Vista-Fail note above for why. - """ - if system == "win32": - if appauthor is None: - appauthor = appname - path = os.path.normpath(_get_win_folder("CSIDL_COMMON_APPDATA")) - if appname: - if appauthor is not False: - path = os.path.join(path, appauthor, appname) - else: - path = os.path.join(path, appname) - elif system == 'darwin': - path = os.path.expanduser('/Library/Application Support') - if appname: - path = os.path.join(path, appname) - else: - # XDG default for $XDG_DATA_DIRS - # only first, if multipath is False - path = os.getenv('XDG_DATA_DIRS', - os.pathsep.join(['/usr/local/share', '/usr/share'])) - pathlist = [os.path.expanduser(x.rstrip(os.sep)) for x in path.split(os.pathsep)] - if appname: - if version: - appname = os.path.join(appname, version) - pathlist = [os.sep.join([x, appname]) for x in pathlist] - - if multipath: - path = os.pathsep.join(pathlist) - else: - path = pathlist[0] - return path - - if appname and version: - path = os.path.join(path, version) - return path - - -def user_config_dir(appname=None, appauthor=None, version=None, roaming=False): - r"""Return full path to the user-specific config dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be ".". - Only applied when appname is present. - "roaming" (boolean, default False) can be set True to use the Windows - roaming appdata directory. That means that for users on a Windows - network setup for roaming profiles, this user data will be - sync'd on login. See - - for a discussion of issues. - - Typical user config directories are: - Mac OS X: same as user_data_dir - Unix: ~/.config/ # or in $XDG_CONFIG_HOME, if defined - Win *: same as user_data_dir - - For Unix, we follow the XDG spec and support $XDG_CONFIG_HOME. - That means, by default "~/.config/". - """ - if system in ["win32", "darwin"]: - path = user_data_dir(appname, appauthor, None, roaming) - else: - path = os.getenv('XDG_CONFIG_HOME', os.path.expanduser("~/.config")) - if appname: - path = os.path.join(path, appname) - if appname and version: - path = os.path.join(path, version) - return path - - -def site_config_dir(appname=None, appauthor=None, version=None, multipath=False): - r"""Return full path to the user-shared data dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be ".". - Only applied when appname is present. - "multipath" is an optional parameter only applicable to *nix - which indicates that the entire list of config dirs should be - returned. By default, the first item from XDG_CONFIG_DIRS is - returned, or '/etc/xdg/', if XDG_CONFIG_DIRS is not set - - Typical site config directories are: - Mac OS X: same as site_data_dir - Unix: /etc/xdg/ or $XDG_CONFIG_DIRS[i]/ for each value in - $XDG_CONFIG_DIRS - Win *: same as site_data_dir - Vista: (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.) - - For Unix, this is using the $XDG_CONFIG_DIRS[0] default, if multipath=False - - WARNING: Do not use this on Windows. See the Vista-Fail note above for why. - """ - if system in ["win32", "darwin"]: - path = site_data_dir(appname, appauthor) - if appname and version: - path = os.path.join(path, version) - else: - # XDG default for $XDG_CONFIG_DIRS - # only first, if multipath is False - path = os.getenv('XDG_CONFIG_DIRS', '/etc/xdg') - pathlist = [os.path.expanduser(x.rstrip(os.sep)) for x in path.split(os.pathsep)] - if appname: - if version: - appname = os.path.join(appname, version) - pathlist = [os.sep.join([x, appname]) for x in pathlist] - - if multipath: - path = os.pathsep.join(pathlist) - else: - path = pathlist[0] - return path - - -def user_cache_dir(appname=None, appauthor=None, version=None, opinion=True): - r"""Return full path to the user-specific cache dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be ".". - Only applied when appname is present. - "opinion" (boolean) can be False to disable the appending of - "Cache" to the base app data dir for Windows. See - discussion below. - - Typical user cache directories are: - Mac OS X: ~/Library/Caches/ - Unix: ~/.cache/ (XDG default) - Win XP: C:\Documents and Settings\\Local Settings\Application Data\\\Cache - Vista: C:\Users\\AppData\Local\\\Cache - - On Windows the only suggestion in the MSDN docs is that local settings go in - the `CSIDL_LOCAL_APPDATA` directory. This is identical to the non-roaming - app data dir (the default returned by `user_data_dir` above). Apps typically - put cache data somewhere *under* the given dir here. Some examples: - ...\Mozilla\Firefox\Profiles\\Cache - ...\Acme\SuperApp\Cache\1.0 - OPINION: This function appends "Cache" to the `CSIDL_LOCAL_APPDATA` value. - This can be disabled with the `opinion=False` option. - """ - if system == "win32": - if appauthor is None: - appauthor = appname - path = os.path.normpath(_get_win_folder("CSIDL_LOCAL_APPDATA")) - if appname: - if appauthor is not False: - path = os.path.join(path, appauthor, appname) - else: - path = os.path.join(path, appname) - if opinion: - path = os.path.join(path, "Cache") - elif system == 'darwin': - path = os.path.expanduser('~/Library/Caches') - if appname: - path = os.path.join(path, appname) - else: - path = os.getenv('XDG_CACHE_HOME', os.path.expanduser('~/.cache')) - if appname: - path = os.path.join(path, appname) - if appname and version: - path = os.path.join(path, version) - return path - - -def user_state_dir(appname=None, appauthor=None, version=None, roaming=False): - r"""Return full path to the user-specific state dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be ".". - Only applied when appname is present. - "roaming" (boolean, default False) can be set True to use the Windows - roaming appdata directory. That means that for users on a Windows - network setup for roaming profiles, this user data will be - sync'd on login. See - - for a discussion of issues. - - Typical user state directories are: - Mac OS X: same as user_data_dir - Unix: ~/.local/state/ # or in $XDG_STATE_HOME, if defined - Win *: same as user_data_dir - - For Unix, we follow this Debian proposal - to extend the XDG spec and support $XDG_STATE_HOME. - - That means, by default "~/.local/state/". - """ - if system in ["win32", "darwin"]: - path = user_data_dir(appname, appauthor, None, roaming) - else: - path = os.getenv('XDG_STATE_HOME', os.path.expanduser("~/.local/state")) - if appname: - path = os.path.join(path, appname) - if appname and version: - path = os.path.join(path, version) - return path - - -def user_log_dir(appname=None, appauthor=None, version=None, opinion=True): - r"""Return full path to the user-specific log dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be ".". - Only applied when appname is present. - "opinion" (boolean) can be False to disable the appending of - "Logs" to the base app data dir for Windows, and "log" to the - base cache dir for Unix. See discussion below. - - Typical user log directories are: - Mac OS X: ~/Library/Logs/ - Unix: ~/.cache//log # or under $XDG_CACHE_HOME if defined - Win XP: C:\Documents and Settings\\Local Settings\Application Data\\\Logs - Vista: C:\Users\\AppData\Local\\\Logs - - On Windows the only suggestion in the MSDN docs is that local settings - go in the `CSIDL_LOCAL_APPDATA` directory. (Note: I'm interested in - examples of what some windows apps use for a logs dir.) - - OPINION: This function appends "Logs" to the `CSIDL_LOCAL_APPDATA` - value for Windows and appends "log" to the user cache dir for Unix. - This can be disabled with the `opinion=False` option. - """ - if system == "darwin": - path = os.path.join( - os.path.expanduser('~/Library/Logs'), - appname) - elif system == "win32": - path = user_data_dir(appname, appauthor, version) - version = False - if opinion: - path = os.path.join(path, "Logs") - else: - path = user_cache_dir(appname, appauthor, version) - version = False - if opinion: - path = os.path.join(path, "log") - if appname and version: - path = os.path.join(path, version) - return path - - -class AppDirs(object): - """Convenience wrapper for getting application dirs.""" - def __init__(self, appname=None, appauthor=None, version=None, - roaming=False, multipath=False): - self.appname = appname - self.appauthor = appauthor - self.version = version - self.roaming = roaming - self.multipath = multipath - - @property - def user_data_dir(self): - return user_data_dir(self.appname, self.appauthor, - version=self.version, roaming=self.roaming) - - @property - def site_data_dir(self): - return site_data_dir(self.appname, self.appauthor, - version=self.version, multipath=self.multipath) - - @property - def user_config_dir(self): - return user_config_dir(self.appname, self.appauthor, - version=self.version, roaming=self.roaming) - - @property - def site_config_dir(self): - return site_config_dir(self.appname, self.appauthor, - version=self.version, multipath=self.multipath) - - @property - def user_cache_dir(self): - return user_cache_dir(self.appname, self.appauthor, - version=self.version) - - @property - def user_state_dir(self): - return user_state_dir(self.appname, self.appauthor, - version=self.version) - - @property - def user_log_dir(self): - return user_log_dir(self.appname, self.appauthor, - version=self.version) - - -#---- internal support stuff - -def _get_win_folder_from_registry(csidl_name): - """This is a fallback technique at best. I'm not sure if using the - registry for this guarantees us the correct answer for all CSIDL_* - names. - """ - if PY3: - import winreg as _winreg - else: - import _winreg - - shell_folder_name = { - "CSIDL_APPDATA": "AppData", - "CSIDL_COMMON_APPDATA": "Common AppData", - "CSIDL_LOCAL_APPDATA": "Local AppData", - }[csidl_name] - - key = _winreg.OpenKey( - _winreg.HKEY_CURRENT_USER, - r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" - ) - dir, type = _winreg.QueryValueEx(key, shell_folder_name) - return dir - - -def _get_win_folder_with_pywin32(csidl_name): - from win32com.shell import shellcon, shell - dir = shell.SHGetFolderPath(0, getattr(shellcon, csidl_name), 0, 0) - # Try to make this a unicode path because SHGetFolderPath does - # not return unicode strings when there is unicode data in the - # path. - try: - dir = unicode(dir) - - # Downgrade to short path name if have highbit chars. See - # . - has_high_char = False - for c in dir: - if ord(c) > 255: - has_high_char = True - break - if has_high_char: - try: - import win32api - dir = win32api.GetShortPathName(dir) - except ImportError: - pass - except UnicodeError: - pass - return dir - - -def _get_win_folder_with_ctypes(csidl_name): - import ctypes - - csidl_const = { - "CSIDL_APPDATA": 26, - "CSIDL_COMMON_APPDATA": 35, - "CSIDL_LOCAL_APPDATA": 28, - }[csidl_name] - - buf = ctypes.create_unicode_buffer(1024) - ctypes.windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) - - # Downgrade to short path name if have highbit chars. See - # . - has_high_char = False - for c in buf: - if ord(c) > 255: - has_high_char = True - break - if has_high_char: - buf2 = ctypes.create_unicode_buffer(1024) - if ctypes.windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): - buf = buf2 - - return buf.value - -def _get_win_folder_with_jna(csidl_name): - import array - from com.sun import jna - from com.sun.jna.platform import win32 - - buf_size = win32.WinDef.MAX_PATH * 2 - buf = array.zeros('c', buf_size) - shell = win32.Shell32.INSTANCE - shell.SHGetFolderPath(None, getattr(win32.ShlObj, csidl_name), None, win32.ShlObj.SHGFP_TYPE_CURRENT, buf) - dir = jna.Native.toString(buf.tostring()).rstrip("\0") - - # Downgrade to short path name if have highbit chars. See - # . - has_high_char = False - for c in dir: - if ord(c) > 255: - has_high_char = True - break - if has_high_char: - buf = array.zeros('c', buf_size) - kernel = win32.Kernel32.INSTANCE - if kernel.GetShortPathName(dir, buf, buf_size): - dir = jna.Native.toString(buf.tostring()).rstrip("\0") - - return dir - -if system == "win32": - try: - import win32com.shell - _get_win_folder = _get_win_folder_with_pywin32 - except ImportError: - try: - from ctypes import windll - _get_win_folder = _get_win_folder_with_ctypes - except ImportError: - try: - import com.sun.jna - _get_win_folder = _get_win_folder_with_jna - except ImportError: - _get_win_folder = _get_win_folder_from_registry - - -#---- self test code - -if __name__ == "__main__": - appname = "MyApp" - appauthor = "MyCompany" - - props = ("user_data_dir", - "user_config_dir", - "user_cache_dir", - "user_state_dir", - "user_log_dir", - "site_data_dir", - "site_config_dir") - - print("-- app dirs %s --" % __version__) - - print("-- app dirs (with optional 'version')") - dirs = AppDirs(appname, appauthor, version="1.0") - for prop in props: - print("%s: %s" % (prop, getattr(dirs, prop))) - - print("\n-- app dirs (without optional 'version')") - dirs = AppDirs(appname, appauthor) - for prop in props: - print("%s: %s" % (prop, getattr(dirs, prop))) - - print("\n-- app dirs (without optional 'appauthor')") - dirs = AppDirs(appname) - for prop in props: - print("%s: %s" % (prop, getattr(dirs, prop))) - - print("\n-- app dirs (with disabled 'appauthor')") - dirs = AppDirs(appname, appauthor=False) - for prop in props: - print("%s: %s" % (prop, getattr(dirs, prop))) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/decorator.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/decorator.py deleted file mode 100644 index 40a39f2f1b6d07036d98260318108fdaf173de44..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/decorator.py +++ /dev/null @@ -1,459 +0,0 @@ -# ######################### LICENSE ############################ # - -# Copyright (c) 2005-2025, Michele Simionato -# All rights reserved. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: - -# Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# Redistributions in bytecode form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. - -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -# DAMAGE. - -""" -Decorator module, see -https://github.com/micheles/decorator/blob/master/docs/documentation.md -for the documentation. -""" -import re -import sys -import inspect -import operator -import itertools -import functools -from contextlib import _GeneratorContextManager -from inspect import getfullargspec, iscoroutinefunction, isgeneratorfunction - -__version__ = '5.2.1' - -DEF = re.compile(r'\s*def\s*([_\w][_\w\d]*)\s*\(') -POS = inspect.Parameter.POSITIONAL_OR_KEYWORD -EMPTY = inspect.Parameter.empty - - -# this is not used anymore in the core, but kept for backward compatibility -class FunctionMaker(object): - """ - An object with the ability to create functions with a given signature. - It has attributes name, doc, module, signature, defaults, dict and - methods update and make. - """ - - # Atomic get-and-increment provided by the GIL - _compile_count = itertools.count() - - # make pylint happy - args = varargs = varkw = defaults = kwonlyargs = kwonlydefaults = () - - def __init__(self, func=None, name=None, signature=None, - defaults=None, doc=None, module=None, funcdict=None): - self.shortsignature = signature - if func: - # func can be a class or a callable, but not an instance method - self.name = func.__name__ - if self.name == '': # small hack for lambda functions - self.name = '_lambda_' - self.doc = func.__doc__ - self.module = func.__module__ - if inspect.isroutine(func) or isinstance(func, functools.partial): - argspec = getfullargspec(func) - self.annotations = getattr(func, '__annotations__', {}) - for a in ('args', 'varargs', 'varkw', 'defaults', 'kwonlyargs', - 'kwonlydefaults'): - setattr(self, a, getattr(argspec, a)) - for i, arg in enumerate(self.args): - setattr(self, 'arg%d' % i, arg) - allargs = list(self.args) - allshortargs = list(self.args) - if self.varargs: - allargs.append('*' + self.varargs) - allshortargs.append('*' + self.varargs) - elif self.kwonlyargs: - allargs.append('*') # single star syntax - for a in self.kwonlyargs: - allargs.append('%s=None' % a) - allshortargs.append('%s=%s' % (a, a)) - if self.varkw: - allargs.append('**' + self.varkw) - allshortargs.append('**' + self.varkw) - self.signature = ', '.join(allargs) - self.shortsignature = ', '.join(allshortargs) - self.dict = func.__dict__.copy() - # func=None happens when decorating a caller - if name: - self.name = name - if signature is not None: - self.signature = signature - if defaults: - self.defaults = defaults - if doc: - self.doc = doc - if module: - self.module = module - if funcdict: - self.dict = funcdict - # check existence required attributes - assert hasattr(self, 'name') - if not hasattr(self, 'signature'): - raise TypeError('You are decorating a non function: %s' % func) - - def update(self, func, **kw): - """ - Update the signature of func with the data in self - """ - func.__name__ = self.name - func.__doc__ = getattr(self, 'doc', None) - func.__dict__ = getattr(self, 'dict', {}) - func.__defaults__ = self.defaults - func.__kwdefaults__ = self.kwonlydefaults or None - func.__annotations__ = getattr(self, 'annotations', None) - try: - frame = sys._getframe(3) - except AttributeError: # for IronPython and similar implementations - callermodule = '?' - else: - callermodule = frame.f_globals.get('__name__', '?') - func.__module__ = getattr(self, 'module', callermodule) - func.__dict__.update(kw) - - def make(self, src_templ, evaldict=None, addsource=False, **attrs): - """ - Make a new function from a given template and update the signature - """ - src = src_templ % vars(self) # expand name and signature - evaldict = evaldict or {} - mo = DEF.search(src) - if mo is None: - raise SyntaxError('not a valid function template\n%s' % src) - name = mo.group(1) # extract the function name - names = set([name] + [arg.strip(' *') for arg in - self.shortsignature.split(',')]) - for n in names: - if n in ('_func_', '_call_'): - raise NameError('%s is overridden in\n%s' % (n, src)) - - if not src.endswith('\n'): # add a newline for old Pythons - src += '\n' - - # Ensure each generated function has a unique filename for profilers - # (such as cProfile) that depend on the tuple of (, - # , ) being unique. - filename = '' % next(self._compile_count) - try: - code = compile(src, filename, 'single') - exec(code, evaldict) - except Exception: - print('Error in generated code:', file=sys.stderr) - print(src, file=sys.stderr) - raise - func = evaldict[name] - if addsource: - attrs['__source__'] = src - self.update(func, **attrs) - return func - - @classmethod - def create(cls, obj, body, evaldict, defaults=None, - doc=None, module=None, addsource=True, **attrs): - """ - Create a function from the strings name, signature and body. - evaldict is the evaluation dictionary. If addsource is true an - attribute __source__ is added to the result. The attributes attrs - are added, if any. - """ - if isinstance(obj, str): # "name(signature)" - name, rest = obj.strip().split('(', 1) - signature = rest[:-1] # strip a right parens - func = None - else: # a function - name = None - signature = None - func = obj - self = cls(func, name, signature, defaults, doc, module) - ibody = '\n'.join(' ' + line for line in body.splitlines()) - caller = evaldict.get('_call_') # when called from `decorate` - if caller and iscoroutinefunction(caller): - body = ('async def %(name)s(%(signature)s):\n' + ibody).replace( - 'return', 'return await') - else: - body = 'def %(name)s(%(signature)s):\n' + ibody - return self.make(body, evaldict, addsource, **attrs) - - -def fix(args, kwargs, sig): - """ - Fix args and kwargs to be consistent with the signature - """ - ba = sig.bind(*args, **kwargs) - ba.apply_defaults() # needed for test_dan_schult - return ba.args, ba.kwargs - - -def decorate(func, caller, extras=(), kwsyntax=False): - """ - Decorates a function/generator/coroutine using a caller. - If kwsyntax is True calling the decorated functions with keyword - syntax will pass the named arguments inside the ``kw`` dictionary, - even if such argument are positional, similarly to what functools.wraps - does. By default kwsyntax is False and the the arguments are untouched. - """ - sig = inspect.signature(func) - if isinstance(func, functools.partial): - func = functools.update_wrapper(func, func.func) - if iscoroutinefunction(caller): - async def fun(*args, **kw): - if not kwsyntax: - args, kw = fix(args, kw, sig) - return await caller(func, *(extras + args), **kw) - elif isgeneratorfunction(caller): - def fun(*args, **kw): - if not kwsyntax: - args, kw = fix(args, kw, sig) - for res in caller(func, *(extras + args), **kw): - yield res - else: - def fun(*args, **kw): - if not kwsyntax: - args, kw = fix(args, kw, sig) - return caller(func, *(extras + args), **kw) - - fun.__name__ = func.__name__ - fun.__doc__ = func.__doc__ - fun.__wrapped__ = func - fun.__signature__ = sig - fun.__qualname__ = func.__qualname__ - # builtin functions like defaultdict.__setitem__ lack many attributes - try: - fun.__defaults__ = func.__defaults__ - except AttributeError: - pass - try: - fun.__kwdefaults__ = func.__kwdefaults__ - except AttributeError: - pass - try: - fun.__annotations__ = func.__annotations__ - except AttributeError: - pass - try: - fun.__module__ = func.__module__ - except AttributeError: - pass - try: - fun.__name__ = func.__name__ - except AttributeError: # happens with old versions of numpy.vectorize - func.__name__ == 'noname' - try: - fun.__dict__.update(func.__dict__) - except AttributeError: - pass - return fun - - -def decoratorx(caller): - """ - A version of "decorator" implemented via "exec" and not via the - Signature object. Use this if you are want to preserve the `.__code__` - object properties (https://github.com/micheles/decorator/issues/129). - """ - def dec(func): - return FunctionMaker.create( - func, - "return _call_(_func_, %(shortsignature)s)", - dict(_call_=caller, _func_=func), - __wrapped__=func, __qualname__=func.__qualname__) - return dec - - -def decorator(caller, _func=None, kwsyntax=False): - """ - decorator(caller) converts a caller function into a decorator - """ - if _func is not None: # return a decorated function - # this is obsolete behavior; you should use decorate instead - return decorate(_func, caller, (), kwsyntax) - # else return a decorator function - sig = inspect.signature(caller) - dec_params = [p for p in sig.parameters.values() if p.kind is POS] - - def dec(func=None, *args, **kw): - na = len(args) + 1 - extras = args + tuple(kw.get(p.name, p.default) - for p in dec_params[na:] - if p.default is not EMPTY) - if func is None: - return lambda func: decorate(func, caller, extras, kwsyntax) - else: - return decorate(func, caller, extras, kwsyntax) - dec.__signature__ = sig.replace(parameters=dec_params) - dec.__name__ = caller.__name__ - dec.__doc__ = caller.__doc__ - dec.__wrapped__ = caller - dec.__qualname__ = caller.__qualname__ - dec.__kwdefaults__ = getattr(caller, '__kwdefaults__', None) - dec.__dict__.update(caller.__dict__) - return dec - - -# ####################### contextmanager ####################### # - - -class ContextManager(_GeneratorContextManager): - def __init__(self, g, *a, **k): - _GeneratorContextManager.__init__(self, g, a, k) - - def __call__(self, func): - def caller(f, *a, **k): - with self.__class__(self.func, *self.args, **self.kwds): - return f(*a, **k) - return decorate(func, caller) - - -_contextmanager = decorator(ContextManager) - - -def contextmanager(func): - # Enable Pylint config: contextmanager-decorators=decorator.contextmanager - return _contextmanager(func) - - -# ############################ dispatch_on ############################ # - -def append(a, vancestors): - """ - Append ``a`` to the list of the virtual ancestors, unless it is already - included. - """ - add = True - for j, va in enumerate(vancestors): - if issubclass(va, a): - add = False - break - if issubclass(a, va): - vancestors[j] = a - add = False - if add: - vancestors.append(a) - - -# inspired from simplegeneric by P.J. Eby and functools.singledispatch -def dispatch_on(*dispatch_args): - """ - Factory of decorators turning a function into a generic function - dispatching on the given arguments. - """ - assert dispatch_args, 'No dispatch args passed' - dispatch_str = '(%s,)' % ', '.join(dispatch_args) - - def check(arguments, wrong=operator.ne, msg=''): - """Make sure one passes the expected number of arguments""" - if wrong(len(arguments), len(dispatch_args)): - raise TypeError('Expected %d arguments, got %d%s' % - (len(dispatch_args), len(arguments), msg)) - - def gen_func_dec(func): - """Decorator turning a function into a generic function""" - - # first check the dispatch arguments - argset = set(getfullargspec(func).args) - if not set(dispatch_args) <= argset: - raise NameError('Unknown dispatch arguments %s' % dispatch_str) - - typemap = {} - - def vancestors(*types): - """ - Get a list of sets of virtual ancestors for the given types - """ - check(types) - ras = [[] for _ in range(len(dispatch_args))] - for types_ in typemap: - for t, type_, ra in zip(types, types_, ras): - if issubclass(t, type_) and type_ not in t.mro(): - append(type_, ra) - return [set(ra) for ra in ras] - - def ancestors(*types): - """ - Get a list of virtual MROs, one for each type - """ - check(types) - lists = [] - for t, vas in zip(types, vancestors(*types)): - n_vas = len(vas) - if n_vas > 1: - raise RuntimeError( - 'Ambiguous dispatch for %s: %s' % (t, vas)) - elif n_vas == 1: - va, = vas - mro = type('t', (t, va), {}).mro()[1:] - else: - mro = t.mro() - lists.append(mro[:-1]) # discard t and object - return lists - - def register(*types): - """ - Decorator to register an implementation for the given types - """ - check(types) - - def dec(f): - check(getfullargspec(f).args, operator.lt, ' in ' + f.__name__) - typemap[types] = f - return f - return dec - - def dispatch_info(*types): - """ - An utility to introspect the dispatch algorithm - """ - check(types) - lst = [] - for ancs in itertools.product(*ancestors(*types)): - lst.append(tuple(a.__name__ for a in ancs)) - return lst - - def _dispatch(dispatch_args, *args, **kw): - types = tuple(type(arg) for arg in dispatch_args) - try: # fast path - f = typemap[types] - except KeyError: - pass - else: - return f(*args, **kw) - combinations = itertools.product(*ancestors(*types)) - next(combinations) # the first one has been already tried - for types_ in combinations: - f = typemap.get(types_) - if f is not None: - return f(*args, **kw) - - # else call the default implementation - return func(*args, **kw) - - return FunctionMaker.create( - func, 'return _f_(%s, %%(shortsignature)s)' % dispatch_str, - dict(_f_=_dispatch), register=register, default=func, - typemap=typemap, vancestors=vancestors, ancestors=ancestors, - dispatch_info=dispatch_info, __wrapped__=func) - - gen_func_dec.__name__ = 'dispatch_on' + dispatch_str - return gen_func_dec diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/distutils-precedence.pth b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/distutils-precedence.pth deleted file mode 100644 index 6de4198fcc39b317cc664bf389f2fc5646e167eb..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/distutils-precedence.pth +++ /dev/null @@ -1 +0,0 @@ -import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'stdlib') == 'local'; enabled and __import__('_distutils_hack').add_shim(); diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__init__.py deleted file mode 100644 index e9addde071f81758baf350c4ab6bde2556340131..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__init__.py +++ /dev/null @@ -1,105 +0,0 @@ -from .__version__ import __description__, __title__, __version__ -from ._api import * -from ._auth import * -from ._client import * -from ._config import * -from ._content import * -from ._exceptions import * -from ._models import * -from ._status_codes import * -from ._transports import * -from ._types import * -from ._urls import * - -try: - from ._main import main -except ImportError: # pragma: no cover - - def main() -> None: # type: ignore - import sys - - print( - "The httpx command line client could not run because the required " - "dependencies were not installed.\nMake sure you've installed " - "everything with: pip install 'httpx[cli]'" - ) - sys.exit(1) - - -__all__ = [ - "__description__", - "__title__", - "__version__", - "ASGITransport", - "AsyncBaseTransport", - "AsyncByteStream", - "AsyncClient", - "AsyncHTTPTransport", - "Auth", - "BaseTransport", - "BasicAuth", - "ByteStream", - "Client", - "CloseError", - "codes", - "ConnectError", - "ConnectTimeout", - "CookieConflict", - "Cookies", - "create_ssl_context", - "DecodingError", - "delete", - "DigestAuth", - "get", - "head", - "Headers", - "HTTPError", - "HTTPStatusError", - "HTTPTransport", - "InvalidURL", - "Limits", - "LocalProtocolError", - "main", - "MockTransport", - "NetRCAuth", - "NetworkError", - "options", - "patch", - "PoolTimeout", - "post", - "ProtocolError", - "Proxy", - "ProxyError", - "put", - "QueryParams", - "ReadError", - "ReadTimeout", - "RemoteProtocolError", - "request", - "Request", - "RequestError", - "RequestNotRead", - "Response", - "ResponseNotRead", - "stream", - "StreamClosed", - "StreamConsumed", - "StreamError", - "SyncByteStream", - "Timeout", - "TimeoutException", - "TooManyRedirects", - "TransportError", - "UnsupportedProtocol", - "URL", - "USE_CLIENT_DEFAULT", - "WriteError", - "WriteTimeout", - "WSGITransport", -] - - -__locals = locals() -for __name in __all__: - if not __name.startswith("__"): - setattr(__locals[__name], "__module__", "httpx") # noqa diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index e71bc0b75473913a1521bdf40ab3e04169fe2efc..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/__version__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/__version__.cpython-310.pyc deleted file mode 100644 index 89d5ccf396a4d558cd933557a2b5c915836fa211..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/__version__.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_api.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_api.cpython-310.pyc deleted file mode 100644 index 292c69f1d4ae7aa567bd29eea52ac720c436a0e8..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_api.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_auth.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_auth.cpython-310.pyc deleted file mode 100644 index 6c85e38e3e131abf94781f2169100c0f9fe41df8..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_auth.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_client.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_client.cpython-310.pyc deleted file mode 100644 index 49f4d7e5ebe263368fb566c8e4e4e9f878bdcd03..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_client.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_config.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_config.cpython-310.pyc deleted file mode 100644 index 844a7f21cacc335a4797c367365a82b5cda732f7..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_config.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_content.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_content.cpython-310.pyc deleted file mode 100644 index a5a3f114ff9ecfd8ae179ae554bb12ba2902b28a..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_content.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_decoders.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_decoders.cpython-310.pyc deleted file mode 100644 index 8149fb520d6ad2e4306a30590011ad6ab1674bd0..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_decoders.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_exceptions.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_exceptions.cpython-310.pyc deleted file mode 100644 index 6847cbd832fd8bf81a701528352a75a60f5b6ff1..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_exceptions.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_main.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_main.cpython-310.pyc deleted file mode 100644 index 66f459606d705a720a815b6986f5402684718582..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_main.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_models.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_models.cpython-310.pyc deleted file mode 100644 index ed8e2e65ddbcf3d811ed788798948ef72ba44d2c..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_models.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_multipart.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_multipart.cpython-310.pyc deleted file mode 100644 index b6109df03bd6e59c0e16a14a04ba48eb062c2507..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_multipart.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_status_codes.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_status_codes.cpython-310.pyc deleted file mode 100644 index fa10aa8a36a50490448d3fd2db574361c3266b1d..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_status_codes.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_types.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_types.cpython-310.pyc deleted file mode 100644 index 0ca76042f97ec880e569a2590ada42fb26b47494..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_types.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_urlparse.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_urlparse.cpython-310.pyc deleted file mode 100644 index 30da11d7fd8339669bd1f79ee3ebcf7b81705673..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_urlparse.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_urls.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_urls.cpython-310.pyc deleted file mode 100644 index e8db82176a61b4429510a5e5cff7404992aadfa6..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_urls.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_utils.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_utils.cpython-310.pyc deleted file mode 100644 index 086bd330139f763666619646e604d3fde11e72d9..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__pycache__/_utils.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__version__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__version__.py deleted file mode 100644 index 801bfacf671017cfbebf1ac26ec385daa02ed260..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/__version__.py +++ /dev/null @@ -1,3 +0,0 @@ -__title__ = "httpx" -__description__ = "A next generation HTTP client, for Python 3." -__version__ = "0.28.1" diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_api.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_api.py deleted file mode 100644 index c3cda1ecda8629edbdca2e3bc04bc51dba5e1430..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_api.py +++ /dev/null @@ -1,438 +0,0 @@ -from __future__ import annotations - -import typing -from contextlib import contextmanager - -from ._client import Client -from ._config import DEFAULT_TIMEOUT_CONFIG -from ._models import Response -from ._types import ( - AuthTypes, - CookieTypes, - HeaderTypes, - ProxyTypes, - QueryParamTypes, - RequestContent, - RequestData, - RequestFiles, - TimeoutTypes, -) -from ._urls import URL - -if typing.TYPE_CHECKING: - import ssl # pragma: no cover - - -__all__ = [ - "delete", - "get", - "head", - "options", - "patch", - "post", - "put", - "request", - "stream", -] - - -def request( - method: str, - url: URL | str, - *, - params: QueryParamTypes | None = None, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | None = None, - proxy: ProxyTypes | None = None, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - follow_redirects: bool = False, - verify: ssl.SSLContext | str | bool = True, - trust_env: bool = True, -) -> Response: - """ - Sends an HTTP request. - - **Parameters:** - - * **method** - HTTP method for the new `Request` object: `GET`, `OPTIONS`, - `HEAD`, `POST`, `PUT`, `PATCH`, or `DELETE`. - * **url** - URL for the new `Request` object. - * **params** - *(optional)* Query parameters to include in the URL, as a - string, dictionary, or sequence of two-tuples. - * **content** - *(optional)* Binary content to include in the body of the - request, as bytes or a byte iterator. - * **data** - *(optional)* Form data to include in the body of the request, - as a dictionary. - * **files** - *(optional)* A dictionary of upload files to include in the - body of the request. - * **json** - *(optional)* A JSON serializable object to include in the body - of the request. - * **headers** - *(optional)* Dictionary of HTTP headers to include in the - request. - * **cookies** - *(optional)* Dictionary of Cookie items to include in the - request. - * **auth** - *(optional)* An authentication class to use when sending the - request. - * **proxy** - *(optional)* A proxy URL where all the traffic should be routed. - * **timeout** - *(optional)* The timeout configuration to use when sending - the request. - * **follow_redirects** - *(optional)* Enables or disables HTTP redirects. - * **verify** - *(optional)* Either `True` to use an SSL context with the - default CA bundle, `False` to disable verification, or an instance of - `ssl.SSLContext` to use a custom context. - * **trust_env** - *(optional)* Enables or disables usage of environment - variables for configuration. - - **Returns:** `Response` - - Usage: - - ``` - >>> import httpx - >>> response = httpx.request('GET', 'https://httpbin.org/get') - >>> response - - ``` - """ - with Client( - cookies=cookies, - proxy=proxy, - verify=verify, - timeout=timeout, - trust_env=trust_env, - ) as client: - return client.request( - method=method, - url=url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - auth=auth, - follow_redirects=follow_redirects, - ) - - -@contextmanager -def stream( - method: str, - url: URL | str, - *, - params: QueryParamTypes | None = None, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | None = None, - proxy: ProxyTypes | None = None, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - follow_redirects: bool = False, - verify: ssl.SSLContext | str | bool = True, - trust_env: bool = True, -) -> typing.Iterator[Response]: - """ - Alternative to `httpx.request()` that streams the response body - instead of loading it into memory at once. - - **Parameters**: See `httpx.request`. - - See also: [Streaming Responses][0] - - [0]: /quickstart#streaming-responses - """ - with Client( - cookies=cookies, - proxy=proxy, - verify=verify, - timeout=timeout, - trust_env=trust_env, - ) as client: - with client.stream( - method=method, - url=url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - auth=auth, - follow_redirects=follow_redirects, - ) as response: - yield response - - -def get( - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | None = None, - proxy: ProxyTypes | None = None, - follow_redirects: bool = False, - verify: ssl.SSLContext | str | bool = True, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - trust_env: bool = True, -) -> Response: - """ - Sends a `GET` request. - - **Parameters**: See `httpx.request`. - - Note that the `data`, `files`, `json` and `content` parameters are not available - on this function, as `GET` requests should not include a request body. - """ - return request( - "GET", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - proxy=proxy, - follow_redirects=follow_redirects, - verify=verify, - timeout=timeout, - trust_env=trust_env, - ) - - -def options( - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | None = None, - proxy: ProxyTypes | None = None, - follow_redirects: bool = False, - verify: ssl.SSLContext | str | bool = True, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - trust_env: bool = True, -) -> Response: - """ - Sends an `OPTIONS` request. - - **Parameters**: See `httpx.request`. - - Note that the `data`, `files`, `json` and `content` parameters are not available - on this function, as `OPTIONS` requests should not include a request body. - """ - return request( - "OPTIONS", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - proxy=proxy, - follow_redirects=follow_redirects, - verify=verify, - timeout=timeout, - trust_env=trust_env, - ) - - -def head( - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | None = None, - proxy: ProxyTypes | None = None, - follow_redirects: bool = False, - verify: ssl.SSLContext | str | bool = True, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - trust_env: bool = True, -) -> Response: - """ - Sends a `HEAD` request. - - **Parameters**: See `httpx.request`. - - Note that the `data`, `files`, `json` and `content` parameters are not available - on this function, as `HEAD` requests should not include a request body. - """ - return request( - "HEAD", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - proxy=proxy, - follow_redirects=follow_redirects, - verify=verify, - timeout=timeout, - trust_env=trust_env, - ) - - -def post( - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | None = None, - proxy: ProxyTypes | None = None, - follow_redirects: bool = False, - verify: ssl.SSLContext | str | bool = True, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - trust_env: bool = True, -) -> Response: - """ - Sends a `POST` request. - - **Parameters**: See `httpx.request`. - """ - return request( - "POST", - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - proxy=proxy, - follow_redirects=follow_redirects, - verify=verify, - timeout=timeout, - trust_env=trust_env, - ) - - -def put( - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | None = None, - proxy: ProxyTypes | None = None, - follow_redirects: bool = False, - verify: ssl.SSLContext | str | bool = True, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - trust_env: bool = True, -) -> Response: - """ - Sends a `PUT` request. - - **Parameters**: See `httpx.request`. - """ - return request( - "PUT", - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - proxy=proxy, - follow_redirects=follow_redirects, - verify=verify, - timeout=timeout, - trust_env=trust_env, - ) - - -def patch( - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | None = None, - proxy: ProxyTypes | None = None, - follow_redirects: bool = False, - verify: ssl.SSLContext | str | bool = True, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - trust_env: bool = True, -) -> Response: - """ - Sends a `PATCH` request. - - **Parameters**: See `httpx.request`. - """ - return request( - "PATCH", - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - proxy=proxy, - follow_redirects=follow_redirects, - verify=verify, - timeout=timeout, - trust_env=trust_env, - ) - - -def delete( - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | None = None, - proxy: ProxyTypes | None = None, - follow_redirects: bool = False, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - verify: ssl.SSLContext | str | bool = True, - trust_env: bool = True, -) -> Response: - """ - Sends a `DELETE` request. - - **Parameters**: See `httpx.request`. - - Note that the `data`, `files`, `json` and `content` parameters are not available - on this function, as `DELETE` requests should not include a request body. - """ - return request( - "DELETE", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - proxy=proxy, - follow_redirects=follow_redirects, - verify=verify, - timeout=timeout, - trust_env=trust_env, - ) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_auth.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_auth.py deleted file mode 100644 index b03971ab4b311d60790dc22ca24d9966426ec0a4..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_auth.py +++ /dev/null @@ -1,348 +0,0 @@ -from __future__ import annotations - -import hashlib -import os -import re -import time -import typing -from base64 import b64encode -from urllib.request import parse_http_list - -from ._exceptions import ProtocolError -from ._models import Cookies, Request, Response -from ._utils import to_bytes, to_str, unquote - -if typing.TYPE_CHECKING: # pragma: no cover - from hashlib import _Hash - - -__all__ = ["Auth", "BasicAuth", "DigestAuth", "NetRCAuth"] - - -class Auth: - """ - Base class for all authentication schemes. - - To implement a custom authentication scheme, subclass `Auth` and override - the `.auth_flow()` method. - - If the authentication scheme does I/O such as disk access or network calls, or uses - synchronization primitives such as locks, you should override `.sync_auth_flow()` - and/or `.async_auth_flow()` instead of `.auth_flow()` to provide specialized - implementations that will be used by `Client` and `AsyncClient` respectively. - """ - - requires_request_body = False - requires_response_body = False - - def auth_flow(self, request: Request) -> typing.Generator[Request, Response, None]: - """ - Execute the authentication flow. - - To dispatch a request, `yield` it: - - ``` - yield request - ``` - - The client will `.send()` the response back into the flow generator. You can - access it like so: - - ``` - response = yield request - ``` - - A `return` (or reaching the end of the generator) will result in the - client returning the last response obtained from the server. - - You can dispatch as many requests as is necessary. - """ - yield request - - def sync_auth_flow( - self, request: Request - ) -> typing.Generator[Request, Response, None]: - """ - Execute the authentication flow synchronously. - - By default, this defers to `.auth_flow()`. You should override this method - when the authentication scheme does I/O and/or uses concurrency primitives. - """ - if self.requires_request_body: - request.read() - - flow = self.auth_flow(request) - request = next(flow) - - while True: - response = yield request - if self.requires_response_body: - response.read() - - try: - request = flow.send(response) - except StopIteration: - break - - async def async_auth_flow( - self, request: Request - ) -> typing.AsyncGenerator[Request, Response]: - """ - Execute the authentication flow asynchronously. - - By default, this defers to `.auth_flow()`. You should override this method - when the authentication scheme does I/O and/or uses concurrency primitives. - """ - if self.requires_request_body: - await request.aread() - - flow = self.auth_flow(request) - request = next(flow) - - while True: - response = yield request - if self.requires_response_body: - await response.aread() - - try: - request = flow.send(response) - except StopIteration: - break - - -class FunctionAuth(Auth): - """ - Allows the 'auth' argument to be passed as a simple callable function, - that takes the request, and returns a new, modified request. - """ - - def __init__(self, func: typing.Callable[[Request], Request]) -> None: - self._func = func - - def auth_flow(self, request: Request) -> typing.Generator[Request, Response, None]: - yield self._func(request) - - -class BasicAuth(Auth): - """ - Allows the 'auth' argument to be passed as a (username, password) pair, - and uses HTTP Basic authentication. - """ - - def __init__(self, username: str | bytes, password: str | bytes) -> None: - self._auth_header = self._build_auth_header(username, password) - - def auth_flow(self, request: Request) -> typing.Generator[Request, Response, None]: - request.headers["Authorization"] = self._auth_header - yield request - - def _build_auth_header(self, username: str | bytes, password: str | bytes) -> str: - userpass = b":".join((to_bytes(username), to_bytes(password))) - token = b64encode(userpass).decode() - return f"Basic {token}" - - -class NetRCAuth(Auth): - """ - Use a 'netrc' file to lookup basic auth credentials based on the url host. - """ - - def __init__(self, file: str | None = None) -> None: - # Lazily import 'netrc'. - # There's no need for us to load this module unless 'NetRCAuth' is being used. - import netrc - - self._netrc_info = netrc.netrc(file) - - def auth_flow(self, request: Request) -> typing.Generator[Request, Response, None]: - auth_info = self._netrc_info.authenticators(request.url.host) - if auth_info is None or not auth_info[2]: - # The netrc file did not have authentication credentials for this host. - yield request - else: - # Build a basic auth header with credentials from the netrc file. - request.headers["Authorization"] = self._build_auth_header( - username=auth_info[0], password=auth_info[2] - ) - yield request - - def _build_auth_header(self, username: str | bytes, password: str | bytes) -> str: - userpass = b":".join((to_bytes(username), to_bytes(password))) - token = b64encode(userpass).decode() - return f"Basic {token}" - - -class DigestAuth(Auth): - _ALGORITHM_TO_HASH_FUNCTION: dict[str, typing.Callable[[bytes], _Hash]] = { - "MD5": hashlib.md5, - "MD5-SESS": hashlib.md5, - "SHA": hashlib.sha1, - "SHA-SESS": hashlib.sha1, - "SHA-256": hashlib.sha256, - "SHA-256-SESS": hashlib.sha256, - "SHA-512": hashlib.sha512, - "SHA-512-SESS": hashlib.sha512, - } - - def __init__(self, username: str | bytes, password: str | bytes) -> None: - self._username = to_bytes(username) - self._password = to_bytes(password) - self._last_challenge: _DigestAuthChallenge | None = None - self._nonce_count = 1 - - def auth_flow(self, request: Request) -> typing.Generator[Request, Response, None]: - if self._last_challenge: - request.headers["Authorization"] = self._build_auth_header( - request, self._last_challenge - ) - - response = yield request - - if response.status_code != 401 or "www-authenticate" not in response.headers: - # If the response is not a 401 then we don't - # need to build an authenticated request. - return - - for auth_header in response.headers.get_list("www-authenticate"): - if auth_header.lower().startswith("digest "): - break - else: - # If the response does not include a 'WWW-Authenticate: Digest ...' - # header, then we don't need to build an authenticated request. - return - - self._last_challenge = self._parse_challenge(request, response, auth_header) - self._nonce_count = 1 - - request.headers["Authorization"] = self._build_auth_header( - request, self._last_challenge - ) - if response.cookies: - Cookies(response.cookies).set_cookie_header(request=request) - yield request - - def _parse_challenge( - self, request: Request, response: Response, auth_header: str - ) -> _DigestAuthChallenge: - """ - Returns a challenge from a Digest WWW-Authenticate header. - These take the form of: - `Digest realm="realm@host.com",qop="auth,auth-int",nonce="abc",opaque="xyz"` - """ - scheme, _, fields = auth_header.partition(" ") - - # This method should only ever have been called with a Digest auth header. - assert scheme.lower() == "digest" - - header_dict: dict[str, str] = {} - for field in parse_http_list(fields): - key, value = field.strip().split("=", 1) - header_dict[key] = unquote(value) - - try: - realm = header_dict["realm"].encode() - nonce = header_dict["nonce"].encode() - algorithm = header_dict.get("algorithm", "MD5") - opaque = header_dict["opaque"].encode() if "opaque" in header_dict else None - qop = header_dict["qop"].encode() if "qop" in header_dict else None - return _DigestAuthChallenge( - realm=realm, nonce=nonce, algorithm=algorithm, opaque=opaque, qop=qop - ) - except KeyError as exc: - message = "Malformed Digest WWW-Authenticate header" - raise ProtocolError(message, request=request) from exc - - def _build_auth_header( - self, request: Request, challenge: _DigestAuthChallenge - ) -> str: - hash_func = self._ALGORITHM_TO_HASH_FUNCTION[challenge.algorithm.upper()] - - def digest(data: bytes) -> bytes: - return hash_func(data).hexdigest().encode() - - A1 = b":".join((self._username, challenge.realm, self._password)) - - path = request.url.raw_path - A2 = b":".join((request.method.encode(), path)) - # TODO: implement auth-int - HA2 = digest(A2) - - nc_value = b"%08x" % self._nonce_count - cnonce = self._get_client_nonce(self._nonce_count, challenge.nonce) - self._nonce_count += 1 - - HA1 = digest(A1) - if challenge.algorithm.lower().endswith("-sess"): - HA1 = digest(b":".join((HA1, challenge.nonce, cnonce))) - - qop = self._resolve_qop(challenge.qop, request=request) - if qop is None: - # Following RFC 2069 - digest_data = [HA1, challenge.nonce, HA2] - else: - # Following RFC 2617/7616 - digest_data = [HA1, challenge.nonce, nc_value, cnonce, qop, HA2] - - format_args = { - "username": self._username, - "realm": challenge.realm, - "nonce": challenge.nonce, - "uri": path, - "response": digest(b":".join(digest_data)), - "algorithm": challenge.algorithm.encode(), - } - if challenge.opaque: - format_args["opaque"] = challenge.opaque - if qop: - format_args["qop"] = b"auth" - format_args["nc"] = nc_value - format_args["cnonce"] = cnonce - - return "Digest " + self._get_header_value(format_args) - - def _get_client_nonce(self, nonce_count: int, nonce: bytes) -> bytes: - s = str(nonce_count).encode() - s += nonce - s += time.ctime().encode() - s += os.urandom(8) - - return hashlib.sha1(s).hexdigest()[:16].encode() - - def _get_header_value(self, header_fields: dict[str, bytes]) -> str: - NON_QUOTED_FIELDS = ("algorithm", "qop", "nc") - QUOTED_TEMPLATE = '{}="{}"' - NON_QUOTED_TEMPLATE = "{}={}" - - header_value = "" - for i, (field, value) in enumerate(header_fields.items()): - if i > 0: - header_value += ", " - template = ( - QUOTED_TEMPLATE - if field not in NON_QUOTED_FIELDS - else NON_QUOTED_TEMPLATE - ) - header_value += template.format(field, to_str(value)) - - return header_value - - def _resolve_qop(self, qop: bytes | None, request: Request) -> bytes | None: - if qop is None: - return None - qops = re.split(b", ?", qop) - if b"auth" in qops: - return b"auth" - - if qops == [b"auth-int"]: - raise NotImplementedError("Digest auth-int support is not yet implemented") - - message = f'Unexpected qop value "{qop!r}" in digest auth' - raise ProtocolError(message, request=request) - - -class _DigestAuthChallenge(typing.NamedTuple): - realm: bytes - nonce: bytes - algorithm: str - opaque: bytes | None - qop: bytes | None diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_client.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_client.py deleted file mode 100644 index 2249231f8c3b912c731ff160344d3672e2f11738..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_client.py +++ /dev/null @@ -1,2019 +0,0 @@ -from __future__ import annotations - -import datetime -import enum -import logging -import time -import typing -import warnings -from contextlib import asynccontextmanager, contextmanager -from types import TracebackType - -from .__version__ import __version__ -from ._auth import Auth, BasicAuth, FunctionAuth -from ._config import ( - DEFAULT_LIMITS, - DEFAULT_MAX_REDIRECTS, - DEFAULT_TIMEOUT_CONFIG, - Limits, - Proxy, - Timeout, -) -from ._decoders import SUPPORTED_DECODERS -from ._exceptions import ( - InvalidURL, - RemoteProtocolError, - TooManyRedirects, - request_context, -) -from ._models import Cookies, Headers, Request, Response -from ._status_codes import codes -from ._transports.base import AsyncBaseTransport, BaseTransport -from ._transports.default import AsyncHTTPTransport, HTTPTransport -from ._types import ( - AsyncByteStream, - AuthTypes, - CertTypes, - CookieTypes, - HeaderTypes, - ProxyTypes, - QueryParamTypes, - RequestContent, - RequestData, - RequestExtensions, - RequestFiles, - SyncByteStream, - TimeoutTypes, -) -from ._urls import URL, QueryParams -from ._utils import URLPattern, get_environment_proxies - -if typing.TYPE_CHECKING: - import ssl # pragma: no cover - -__all__ = ["USE_CLIENT_DEFAULT", "AsyncClient", "Client"] - -# The type annotation for @classmethod and context managers here follows PEP 484 -# https://www.python.org/dev/peps/pep-0484/#annotating-instance-and-class-methods -T = typing.TypeVar("T", bound="Client") -U = typing.TypeVar("U", bound="AsyncClient") - - -def _is_https_redirect(url: URL, location: URL) -> bool: - """ - Return 'True' if 'location' is a HTTPS upgrade of 'url' - """ - if url.host != location.host: - return False - - return ( - url.scheme == "http" - and _port_or_default(url) == 80 - and location.scheme == "https" - and _port_or_default(location) == 443 - ) - - -def _port_or_default(url: URL) -> int | None: - if url.port is not None: - return url.port - return {"http": 80, "https": 443}.get(url.scheme) - - -def _same_origin(url: URL, other: URL) -> bool: - """ - Return 'True' if the given URLs share the same origin. - """ - return ( - url.scheme == other.scheme - and url.host == other.host - and _port_or_default(url) == _port_or_default(other) - ) - - -class UseClientDefault: - """ - For some parameters such as `auth=...` and `timeout=...` we need to be able - to indicate the default "unset" state, in a way that is distinctly different - to using `None`. - - The default "unset" state indicates that whatever default is set on the - client should be used. This is different to setting `None`, which - explicitly disables the parameter, possibly overriding a client default. - - For example we use `timeout=USE_CLIENT_DEFAULT` in the `request()` signature. - Omitting the `timeout` parameter will send a request using whatever default - timeout has been configured on the client. Including `timeout=None` will - ensure no timeout is used. - - Note that user code shouldn't need to use the `USE_CLIENT_DEFAULT` constant, - but it is used internally when a parameter is not included. - """ - - -USE_CLIENT_DEFAULT = UseClientDefault() - - -logger = logging.getLogger("httpx") - -USER_AGENT = f"python-httpx/{__version__}" -ACCEPT_ENCODING = ", ".join( - [key for key in SUPPORTED_DECODERS.keys() if key != "identity"] -) - - -class ClientState(enum.Enum): - # UNOPENED: - # The client has been instantiated, but has not been used to send a request, - # or been opened by entering the context of a `with` block. - UNOPENED = 1 - # OPENED: - # The client has either sent a request, or is within a `with` block. - OPENED = 2 - # CLOSED: - # The client has either exited the `with` block, or `close()` has - # been called explicitly. - CLOSED = 3 - - -class BoundSyncStream(SyncByteStream): - """ - A byte stream that is bound to a given response instance, and that - ensures the `response.elapsed` is set once the response is closed. - """ - - def __init__( - self, stream: SyncByteStream, response: Response, start: float - ) -> None: - self._stream = stream - self._response = response - self._start = start - - def __iter__(self) -> typing.Iterator[bytes]: - for chunk in self._stream: - yield chunk - - def close(self) -> None: - elapsed = time.perf_counter() - self._start - self._response.elapsed = datetime.timedelta(seconds=elapsed) - self._stream.close() - - -class BoundAsyncStream(AsyncByteStream): - """ - An async byte stream that is bound to a given response instance, and that - ensures the `response.elapsed` is set once the response is closed. - """ - - def __init__( - self, stream: AsyncByteStream, response: Response, start: float - ) -> None: - self._stream = stream - self._response = response - self._start = start - - async def __aiter__(self) -> typing.AsyncIterator[bytes]: - async for chunk in self._stream: - yield chunk - - async def aclose(self) -> None: - elapsed = time.perf_counter() - self._start - self._response.elapsed = datetime.timedelta(seconds=elapsed) - await self._stream.aclose() - - -EventHook = typing.Callable[..., typing.Any] - - -class BaseClient: - def __init__( - self, - *, - auth: AuthTypes | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - follow_redirects: bool = False, - max_redirects: int = DEFAULT_MAX_REDIRECTS, - event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None, - base_url: URL | str = "", - trust_env: bool = True, - default_encoding: str | typing.Callable[[bytes], str] = "utf-8", - ) -> None: - event_hooks = {} if event_hooks is None else event_hooks - - self._base_url = self._enforce_trailing_slash(URL(base_url)) - - self._auth = self._build_auth(auth) - self._params = QueryParams(params) - self.headers = Headers(headers) - self._cookies = Cookies(cookies) - self._timeout = Timeout(timeout) - self.follow_redirects = follow_redirects - self.max_redirects = max_redirects - self._event_hooks = { - "request": list(event_hooks.get("request", [])), - "response": list(event_hooks.get("response", [])), - } - self._trust_env = trust_env - self._default_encoding = default_encoding - self._state = ClientState.UNOPENED - - @property - def is_closed(self) -> bool: - """ - Check if the client being closed - """ - return self._state == ClientState.CLOSED - - @property - def trust_env(self) -> bool: - return self._trust_env - - def _enforce_trailing_slash(self, url: URL) -> URL: - if url.raw_path.endswith(b"/"): - return url - return url.copy_with(raw_path=url.raw_path + b"/") - - def _get_proxy_map( - self, proxy: ProxyTypes | None, allow_env_proxies: bool - ) -> dict[str, Proxy | None]: - if proxy is None: - if allow_env_proxies: - return { - key: None if url is None else Proxy(url=url) - for key, url in get_environment_proxies().items() - } - return {} - else: - proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy - return {"all://": proxy} - - @property - def timeout(self) -> Timeout: - return self._timeout - - @timeout.setter - def timeout(self, timeout: TimeoutTypes) -> None: - self._timeout = Timeout(timeout) - - @property - def event_hooks(self) -> dict[str, list[EventHook]]: - return self._event_hooks - - @event_hooks.setter - def event_hooks(self, event_hooks: dict[str, list[EventHook]]) -> None: - self._event_hooks = { - "request": list(event_hooks.get("request", [])), - "response": list(event_hooks.get("response", [])), - } - - @property - def auth(self) -> Auth | None: - """ - Authentication class used when none is passed at the request-level. - - See also [Authentication][0]. - - [0]: /quickstart/#authentication - """ - return self._auth - - @auth.setter - def auth(self, auth: AuthTypes) -> None: - self._auth = self._build_auth(auth) - - @property - def base_url(self) -> URL: - """ - Base URL to use when sending requests with relative URLs. - """ - return self._base_url - - @base_url.setter - def base_url(self, url: URL | str) -> None: - self._base_url = self._enforce_trailing_slash(URL(url)) - - @property - def headers(self) -> Headers: - """ - HTTP headers to include when sending requests. - """ - return self._headers - - @headers.setter - def headers(self, headers: HeaderTypes) -> None: - client_headers = Headers( - { - b"Accept": b"*/*", - b"Accept-Encoding": ACCEPT_ENCODING.encode("ascii"), - b"Connection": b"keep-alive", - b"User-Agent": USER_AGENT.encode("ascii"), - } - ) - client_headers.update(headers) - self._headers = client_headers - - @property - def cookies(self) -> Cookies: - """ - Cookie values to include when sending requests. - """ - return self._cookies - - @cookies.setter - def cookies(self, cookies: CookieTypes) -> None: - self._cookies = Cookies(cookies) - - @property - def params(self) -> QueryParams: - """ - Query parameters to include in the URL when sending requests. - """ - return self._params - - @params.setter - def params(self, params: QueryParamTypes) -> None: - self._params = QueryParams(params) - - def build_request( - self, - method: str, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Request: - """ - Build and return a request instance. - - * The `params`, `headers` and `cookies` arguments - are merged with any values set on the client. - * The `url` argument is merged with any `base_url` set on the client. - - See also: [Request instances][0] - - [0]: /advanced/clients/#request-instances - """ - url = self._merge_url(url) - headers = self._merge_headers(headers) - cookies = self._merge_cookies(cookies) - params = self._merge_queryparams(params) - extensions = {} if extensions is None else extensions - if "timeout" not in extensions: - timeout = ( - self.timeout - if isinstance(timeout, UseClientDefault) - else Timeout(timeout) - ) - extensions = dict(**extensions, timeout=timeout.as_dict()) - return Request( - method, - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - extensions=extensions, - ) - - def _merge_url(self, url: URL | str) -> URL: - """ - Merge a URL argument together with any 'base_url' on the client, - to create the URL used for the outgoing request. - """ - merge_url = URL(url) - if merge_url.is_relative_url: - # To merge URLs we always append to the base URL. To get this - # behaviour correct we always ensure the base URL ends in a '/' - # separator, and strip any leading '/' from the merge URL. - # - # So, eg... - # - # >>> client = Client(base_url="https://www.example.com/subpath") - # >>> client.base_url - # URL('https://www.example.com/subpath/') - # >>> client.build_request("GET", "/path").url - # URL('https://www.example.com/subpath/path') - merge_raw_path = self.base_url.raw_path + merge_url.raw_path.lstrip(b"/") - return self.base_url.copy_with(raw_path=merge_raw_path) - return merge_url - - def _merge_cookies(self, cookies: CookieTypes | None = None) -> CookieTypes | None: - """ - Merge a cookies argument together with any cookies on the client, - to create the cookies used for the outgoing request. - """ - if cookies or self.cookies: - merged_cookies = Cookies(self.cookies) - merged_cookies.update(cookies) - return merged_cookies - return cookies - - def _merge_headers(self, headers: HeaderTypes | None = None) -> HeaderTypes | None: - """ - Merge a headers argument together with any headers on the client, - to create the headers used for the outgoing request. - """ - merged_headers = Headers(self.headers) - merged_headers.update(headers) - return merged_headers - - def _merge_queryparams( - self, params: QueryParamTypes | None = None - ) -> QueryParamTypes | None: - """ - Merge a queryparams argument together with any queryparams on the client, - to create the queryparams used for the outgoing request. - """ - if params or self.params: - merged_queryparams = QueryParams(self.params) - return merged_queryparams.merge(params) - return params - - def _build_auth(self, auth: AuthTypes | None) -> Auth | None: - if auth is None: - return None - elif isinstance(auth, tuple): - return BasicAuth(username=auth[0], password=auth[1]) - elif isinstance(auth, Auth): - return auth - elif callable(auth): - return FunctionAuth(func=auth) - else: - raise TypeError(f'Invalid "auth" argument: {auth!r}') - - def _build_request_auth( - self, - request: Request, - auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT, - ) -> Auth: - auth = ( - self._auth if isinstance(auth, UseClientDefault) else self._build_auth(auth) - ) - - if auth is not None: - return auth - - username, password = request.url.username, request.url.password - if username or password: - return BasicAuth(username=username, password=password) - - return Auth() - - def _build_redirect_request(self, request: Request, response: Response) -> Request: - """ - Given a request and a redirect response, return a new request that - should be used to effect the redirect. - """ - method = self._redirect_method(request, response) - url = self._redirect_url(request, response) - headers = self._redirect_headers(request, url, method) - stream = self._redirect_stream(request, method) - cookies = Cookies(self.cookies) - return Request( - method=method, - url=url, - headers=headers, - cookies=cookies, - stream=stream, - extensions=request.extensions, - ) - - def _redirect_method(self, request: Request, response: Response) -> str: - """ - When being redirected we may want to change the method of the request - based on certain specs or browser behavior. - """ - method = request.method - - # https://tools.ietf.org/html/rfc7231#section-6.4.4 - if response.status_code == codes.SEE_OTHER and method != "HEAD": - method = "GET" - - # Do what the browsers do, despite standards... - # Turn 302s into GETs. - if response.status_code == codes.FOUND and method != "HEAD": - method = "GET" - - # If a POST is responded to with a 301, turn it into a GET. - # This bizarre behaviour is explained in 'requests' issue 1704. - if response.status_code == codes.MOVED_PERMANENTLY and method == "POST": - method = "GET" - - return method - - def _redirect_url(self, request: Request, response: Response) -> URL: - """ - Return the URL for the redirect to follow. - """ - location = response.headers["Location"] - - try: - url = URL(location) - except InvalidURL as exc: - raise RemoteProtocolError( - f"Invalid URL in location header: {exc}.", request=request - ) from None - - # Handle malformed 'Location' headers that are "absolute" form, have no host. - # See: https://github.com/encode/httpx/issues/771 - if url.scheme and not url.host: - url = url.copy_with(host=request.url.host) - - # Facilitate relative 'Location' headers, as allowed by RFC 7231. - # (e.g. '/path/to/resource' instead of 'http://domain.tld/path/to/resource') - if url.is_relative_url: - url = request.url.join(url) - - # Attach previous fragment if needed (RFC 7231 7.1.2) - if request.url.fragment and not url.fragment: - url = url.copy_with(fragment=request.url.fragment) - - return url - - def _redirect_headers(self, request: Request, url: URL, method: str) -> Headers: - """ - Return the headers that should be used for the redirect request. - """ - headers = Headers(request.headers) - - if not _same_origin(url, request.url): - if not _is_https_redirect(request.url, url): - # Strip Authorization headers when responses are redirected - # away from the origin. (Except for direct HTTP to HTTPS redirects.) - headers.pop("Authorization", None) - - # Update the Host header. - headers["Host"] = url.netloc.decode("ascii") - - if method != request.method and method == "GET": - # If we've switch to a 'GET' request, then strip any headers which - # are only relevant to the request body. - headers.pop("Content-Length", None) - headers.pop("Transfer-Encoding", None) - - # We should use the client cookie store to determine any cookie header, - # rather than whatever was on the original outgoing request. - headers.pop("Cookie", None) - - return headers - - def _redirect_stream( - self, request: Request, method: str - ) -> SyncByteStream | AsyncByteStream | None: - """ - Return the body that should be used for the redirect request. - """ - if method != request.method and method == "GET": - return None - - return request.stream - - def _set_timeout(self, request: Request) -> None: - if "timeout" not in request.extensions: - timeout = ( - self.timeout - if isinstance(self.timeout, UseClientDefault) - else Timeout(self.timeout) - ) - request.extensions = dict(**request.extensions, timeout=timeout.as_dict()) - - -class Client(BaseClient): - """ - An HTTP client, with connection pooling, HTTP/2, redirects, cookie persistence, etc. - - It can be shared between threads. - - Usage: - - ```python - >>> client = httpx.Client() - >>> response = client.get('https://example.org') - ``` - - **Parameters:** - - * **auth** - *(optional)* An authentication class to use when sending - requests. - * **params** - *(optional)* Query parameters to include in request URLs, as - a string, dictionary, or sequence of two-tuples. - * **headers** - *(optional)* Dictionary of HTTP headers to include when - sending requests. - * **cookies** - *(optional)* Dictionary of Cookie items to include when - sending requests. - * **verify** - *(optional)* Either `True` to use an SSL context with the - default CA bundle, `False` to disable verification, or an instance of - `ssl.SSLContext` to use a custom context. - * **http2** - *(optional)* A boolean indicating if HTTP/2 support should be - enabled. Defaults to `False`. - * **proxy** - *(optional)* A proxy URL where all the traffic should be routed. - * **timeout** - *(optional)* The timeout configuration to use when sending - requests. - * **limits** - *(optional)* The limits configuration to use. - * **max_redirects** - *(optional)* The maximum number of redirect responses - that should be followed. - * **base_url** - *(optional)* A URL to use as the base when building - request URLs. - * **transport** - *(optional)* A transport class to use for sending requests - over the network. - * **trust_env** - *(optional)* Enables or disables usage of environment - variables for configuration. - * **default_encoding** - *(optional)* The default encoding to use for decoding - response text, if no charset information is included in a response Content-Type - header. Set to a callable for automatic character set detection. Default: "utf-8". - """ - - def __init__( - self, - *, - auth: AuthTypes | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - verify: ssl.SSLContext | str | bool = True, - cert: CertTypes | None = None, - trust_env: bool = True, - http1: bool = True, - http2: bool = False, - proxy: ProxyTypes | None = None, - mounts: None | (typing.Mapping[str, BaseTransport | None]) = None, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - follow_redirects: bool = False, - limits: Limits = DEFAULT_LIMITS, - max_redirects: int = DEFAULT_MAX_REDIRECTS, - event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None, - base_url: URL | str = "", - transport: BaseTransport | None = None, - default_encoding: str | typing.Callable[[bytes], str] = "utf-8", - ) -> None: - super().__init__( - auth=auth, - params=params, - headers=headers, - cookies=cookies, - timeout=timeout, - follow_redirects=follow_redirects, - max_redirects=max_redirects, - event_hooks=event_hooks, - base_url=base_url, - trust_env=trust_env, - default_encoding=default_encoding, - ) - - if http2: - try: - import h2 # noqa - except ImportError: # pragma: no cover - raise ImportError( - "Using http2=True, but the 'h2' package is not installed. " - "Make sure to install httpx using `pip install httpx[http2]`." - ) from None - - allow_env_proxies = trust_env and transport is None - proxy_map = self._get_proxy_map(proxy, allow_env_proxies) - - self._transport = self._init_transport( - verify=verify, - cert=cert, - trust_env=trust_env, - http1=http1, - http2=http2, - limits=limits, - transport=transport, - ) - self._mounts: dict[URLPattern, BaseTransport | None] = { - URLPattern(key): None - if proxy is None - else self._init_proxy_transport( - proxy, - verify=verify, - cert=cert, - trust_env=trust_env, - http1=http1, - http2=http2, - limits=limits, - ) - for key, proxy in proxy_map.items() - } - if mounts is not None: - self._mounts.update( - {URLPattern(key): transport for key, transport in mounts.items()} - ) - - self._mounts = dict(sorted(self._mounts.items())) - - def _init_transport( - self, - verify: ssl.SSLContext | str | bool = True, - cert: CertTypes | None = None, - trust_env: bool = True, - http1: bool = True, - http2: bool = False, - limits: Limits = DEFAULT_LIMITS, - transport: BaseTransport | None = None, - ) -> BaseTransport: - if transport is not None: - return transport - - return HTTPTransport( - verify=verify, - cert=cert, - trust_env=trust_env, - http1=http1, - http2=http2, - limits=limits, - ) - - def _init_proxy_transport( - self, - proxy: Proxy, - verify: ssl.SSLContext | str | bool = True, - cert: CertTypes | None = None, - trust_env: bool = True, - http1: bool = True, - http2: bool = False, - limits: Limits = DEFAULT_LIMITS, - ) -> BaseTransport: - return HTTPTransport( - verify=verify, - cert=cert, - trust_env=trust_env, - http1=http1, - http2=http2, - limits=limits, - proxy=proxy, - ) - - def _transport_for_url(self, url: URL) -> BaseTransport: - """ - Returns the transport instance that should be used for a given URL. - This will either be the standard connection pool, or a proxy. - """ - for pattern, transport in self._mounts.items(): - if pattern.matches(url): - return self._transport if transport is None else transport - - return self._transport - - def request( - self, - method: str, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Build and send a request. - - Equivalent to: - - ```python - request = client.build_request(...) - response = client.send(request, ...) - ``` - - See `Client.build_request()`, `Client.send()` and - [Merging of configuration][0] for how the various parameters - are merged with client-level configuration. - - [0]: /advanced/clients/#merging-of-configuration - """ - if cookies is not None: - message = ( - "Setting per-request cookies=<...> is being deprecated, because " - "the expected behaviour on cookie persistence is ambiguous. Set " - "cookies directly on the client instance instead." - ) - warnings.warn(message, DeprecationWarning, stacklevel=2) - - request = self.build_request( - method=method, - url=url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - timeout=timeout, - extensions=extensions, - ) - return self.send(request, auth=auth, follow_redirects=follow_redirects) - - @contextmanager - def stream( - self, - method: str, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> typing.Iterator[Response]: - """ - Alternative to `httpx.request()` that streams the response body - instead of loading it into memory at once. - - **Parameters**: See `httpx.request`. - - See also: [Streaming Responses][0] - - [0]: /quickstart#streaming-responses - """ - request = self.build_request( - method=method, - url=url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - timeout=timeout, - extensions=extensions, - ) - response = self.send( - request=request, - auth=auth, - follow_redirects=follow_redirects, - stream=True, - ) - try: - yield response - finally: - response.close() - - def send( - self, - request: Request, - *, - stream: bool = False, - auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - ) -> Response: - """ - Send a request. - - The request is sent as-is, unmodified. - - Typically you'll want to build one with `Client.build_request()` - so that any client-level configuration is merged into the request, - but passing an explicit `httpx.Request()` is supported as well. - - See also: [Request instances][0] - - [0]: /advanced/clients/#request-instances - """ - if self._state == ClientState.CLOSED: - raise RuntimeError("Cannot send a request, as the client has been closed.") - - self._state = ClientState.OPENED - follow_redirects = ( - self.follow_redirects - if isinstance(follow_redirects, UseClientDefault) - else follow_redirects - ) - - self._set_timeout(request) - - auth = self._build_request_auth(request, auth) - - response = self._send_handling_auth( - request, - auth=auth, - follow_redirects=follow_redirects, - history=[], - ) - try: - if not stream: - response.read() - - return response - - except BaseException as exc: - response.close() - raise exc - - def _send_handling_auth( - self, - request: Request, - auth: Auth, - follow_redirects: bool, - history: list[Response], - ) -> Response: - auth_flow = auth.sync_auth_flow(request) - try: - request = next(auth_flow) - - while True: - response = self._send_handling_redirects( - request, - follow_redirects=follow_redirects, - history=history, - ) - try: - try: - next_request = auth_flow.send(response) - except StopIteration: - return response - - response.history = list(history) - response.read() - request = next_request - history.append(response) - - except BaseException as exc: - response.close() - raise exc - finally: - auth_flow.close() - - def _send_handling_redirects( - self, - request: Request, - follow_redirects: bool, - history: list[Response], - ) -> Response: - while True: - if len(history) > self.max_redirects: - raise TooManyRedirects( - "Exceeded maximum allowed redirects.", request=request - ) - - for hook in self._event_hooks["request"]: - hook(request) - - response = self._send_single_request(request) - try: - for hook in self._event_hooks["response"]: - hook(response) - response.history = list(history) - - if not response.has_redirect_location: - return response - - request = self._build_redirect_request(request, response) - history = history + [response] - - if follow_redirects: - response.read() - else: - response.next_request = request - return response - - except BaseException as exc: - response.close() - raise exc - - def _send_single_request(self, request: Request) -> Response: - """ - Sends a single request, without handling any redirections. - """ - transport = self._transport_for_url(request.url) - start = time.perf_counter() - - if not isinstance(request.stream, SyncByteStream): - raise RuntimeError( - "Attempted to send an async request with a sync Client instance." - ) - - with request_context(request=request): - response = transport.handle_request(request) - - assert isinstance(response.stream, SyncByteStream) - - response.request = request - response.stream = BoundSyncStream( - response.stream, response=response, start=start - ) - self.cookies.extract_cookies(response) - response.default_encoding = self._default_encoding - - logger.info( - 'HTTP Request: %s %s "%s %d %s"', - request.method, - request.url, - response.http_version, - response.status_code, - response.reason_phrase, - ) - - return response - - def get( - self, - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `GET` request. - - **Parameters**: See `httpx.request`. - """ - return self.request( - "GET", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - def options( - self, - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send an `OPTIONS` request. - - **Parameters**: See `httpx.request`. - """ - return self.request( - "OPTIONS", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - def head( - self, - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `HEAD` request. - - **Parameters**: See `httpx.request`. - """ - return self.request( - "HEAD", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - def post( - self, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `POST` request. - - **Parameters**: See `httpx.request`. - """ - return self.request( - "POST", - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - def put( - self, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `PUT` request. - - **Parameters**: See `httpx.request`. - """ - return self.request( - "PUT", - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - def patch( - self, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `PATCH` request. - - **Parameters**: See `httpx.request`. - """ - return self.request( - "PATCH", - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - def delete( - self, - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `DELETE` request. - - **Parameters**: See `httpx.request`. - """ - return self.request( - "DELETE", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - def close(self) -> None: - """ - Close transport and proxies. - """ - if self._state != ClientState.CLOSED: - self._state = ClientState.CLOSED - - self._transport.close() - for transport in self._mounts.values(): - if transport is not None: - transport.close() - - def __enter__(self: T) -> T: - if self._state != ClientState.UNOPENED: - msg = { - ClientState.OPENED: "Cannot open a client instance more than once.", - ClientState.CLOSED: ( - "Cannot reopen a client instance, once it has been closed." - ), - }[self._state] - raise RuntimeError(msg) - - self._state = ClientState.OPENED - - self._transport.__enter__() - for transport in self._mounts.values(): - if transport is not None: - transport.__enter__() - return self - - def __exit__( - self, - exc_type: type[BaseException] | None = None, - exc_value: BaseException | None = None, - traceback: TracebackType | None = None, - ) -> None: - self._state = ClientState.CLOSED - - self._transport.__exit__(exc_type, exc_value, traceback) - for transport in self._mounts.values(): - if transport is not None: - transport.__exit__(exc_type, exc_value, traceback) - - -class AsyncClient(BaseClient): - """ - An asynchronous HTTP client, with connection pooling, HTTP/2, redirects, - cookie persistence, etc. - - It can be shared between tasks. - - Usage: - - ```python - >>> async with httpx.AsyncClient() as client: - >>> response = await client.get('https://example.org') - ``` - - **Parameters:** - - * **auth** - *(optional)* An authentication class to use when sending - requests. - * **params** - *(optional)* Query parameters to include in request URLs, as - a string, dictionary, or sequence of two-tuples. - * **headers** - *(optional)* Dictionary of HTTP headers to include when - sending requests. - * **cookies** - *(optional)* Dictionary of Cookie items to include when - sending requests. - * **verify** - *(optional)* Either `True` to use an SSL context with the - default CA bundle, `False` to disable verification, or an instance of - `ssl.SSLContext` to use a custom context. - * **http2** - *(optional)* A boolean indicating if HTTP/2 support should be - enabled. Defaults to `False`. - * **proxy** - *(optional)* A proxy URL where all the traffic should be routed. - * **timeout** - *(optional)* The timeout configuration to use when sending - requests. - * **limits** - *(optional)* The limits configuration to use. - * **max_redirects** - *(optional)* The maximum number of redirect responses - that should be followed. - * **base_url** - *(optional)* A URL to use as the base when building - request URLs. - * **transport** - *(optional)* A transport class to use for sending requests - over the network. - * **trust_env** - *(optional)* Enables or disables usage of environment - variables for configuration. - * **default_encoding** - *(optional)* The default encoding to use for decoding - response text, if no charset information is included in a response Content-Type - header. Set to a callable for automatic character set detection. Default: "utf-8". - """ - - def __init__( - self, - *, - auth: AuthTypes | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - verify: ssl.SSLContext | str | bool = True, - cert: CertTypes | None = None, - http1: bool = True, - http2: bool = False, - proxy: ProxyTypes | None = None, - mounts: None | (typing.Mapping[str, AsyncBaseTransport | None]) = None, - timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG, - follow_redirects: bool = False, - limits: Limits = DEFAULT_LIMITS, - max_redirects: int = DEFAULT_MAX_REDIRECTS, - event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None, - base_url: URL | str = "", - transport: AsyncBaseTransport | None = None, - trust_env: bool = True, - default_encoding: str | typing.Callable[[bytes], str] = "utf-8", - ) -> None: - super().__init__( - auth=auth, - params=params, - headers=headers, - cookies=cookies, - timeout=timeout, - follow_redirects=follow_redirects, - max_redirects=max_redirects, - event_hooks=event_hooks, - base_url=base_url, - trust_env=trust_env, - default_encoding=default_encoding, - ) - - if http2: - try: - import h2 # noqa - except ImportError: # pragma: no cover - raise ImportError( - "Using http2=True, but the 'h2' package is not installed. " - "Make sure to install httpx using `pip install httpx[http2]`." - ) from None - - allow_env_proxies = trust_env and transport is None - proxy_map = self._get_proxy_map(proxy, allow_env_proxies) - - self._transport = self._init_transport( - verify=verify, - cert=cert, - trust_env=trust_env, - http1=http1, - http2=http2, - limits=limits, - transport=transport, - ) - - self._mounts: dict[URLPattern, AsyncBaseTransport | None] = { - URLPattern(key): None - if proxy is None - else self._init_proxy_transport( - proxy, - verify=verify, - cert=cert, - trust_env=trust_env, - http1=http1, - http2=http2, - limits=limits, - ) - for key, proxy in proxy_map.items() - } - if mounts is not None: - self._mounts.update( - {URLPattern(key): transport for key, transport in mounts.items()} - ) - self._mounts = dict(sorted(self._mounts.items())) - - def _init_transport( - self, - verify: ssl.SSLContext | str | bool = True, - cert: CertTypes | None = None, - trust_env: bool = True, - http1: bool = True, - http2: bool = False, - limits: Limits = DEFAULT_LIMITS, - transport: AsyncBaseTransport | None = None, - ) -> AsyncBaseTransport: - if transport is not None: - return transport - - return AsyncHTTPTransport( - verify=verify, - cert=cert, - trust_env=trust_env, - http1=http1, - http2=http2, - limits=limits, - ) - - def _init_proxy_transport( - self, - proxy: Proxy, - verify: ssl.SSLContext | str | bool = True, - cert: CertTypes | None = None, - trust_env: bool = True, - http1: bool = True, - http2: bool = False, - limits: Limits = DEFAULT_LIMITS, - ) -> AsyncBaseTransport: - return AsyncHTTPTransport( - verify=verify, - cert=cert, - trust_env=trust_env, - http1=http1, - http2=http2, - limits=limits, - proxy=proxy, - ) - - def _transport_for_url(self, url: URL) -> AsyncBaseTransport: - """ - Returns the transport instance that should be used for a given URL. - This will either be the standard connection pool, or a proxy. - """ - for pattern, transport in self._mounts.items(): - if pattern.matches(url): - return self._transport if transport is None else transport - - return self._transport - - async def request( - self, - method: str, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Build and send a request. - - Equivalent to: - - ```python - request = client.build_request(...) - response = await client.send(request, ...) - ``` - - See `AsyncClient.build_request()`, `AsyncClient.send()` - and [Merging of configuration][0] for how the various parameters - are merged with client-level configuration. - - [0]: /advanced/clients/#merging-of-configuration - """ - - if cookies is not None: # pragma: no cover - message = ( - "Setting per-request cookies=<...> is being deprecated, because " - "the expected behaviour on cookie persistence is ambiguous. Set " - "cookies directly on the client instance instead." - ) - warnings.warn(message, DeprecationWarning, stacklevel=2) - - request = self.build_request( - method=method, - url=url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - timeout=timeout, - extensions=extensions, - ) - return await self.send(request, auth=auth, follow_redirects=follow_redirects) - - @asynccontextmanager - async def stream( - self, - method: str, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> typing.AsyncIterator[Response]: - """ - Alternative to `httpx.request()` that streams the response body - instead of loading it into memory at once. - - **Parameters**: See `httpx.request`. - - See also: [Streaming Responses][0] - - [0]: /quickstart#streaming-responses - """ - request = self.build_request( - method=method, - url=url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - timeout=timeout, - extensions=extensions, - ) - response = await self.send( - request=request, - auth=auth, - follow_redirects=follow_redirects, - stream=True, - ) - try: - yield response - finally: - await response.aclose() - - async def send( - self, - request: Request, - *, - stream: bool = False, - auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - ) -> Response: - """ - Send a request. - - The request is sent as-is, unmodified. - - Typically you'll want to build one with `AsyncClient.build_request()` - so that any client-level configuration is merged into the request, - but passing an explicit `httpx.Request()` is supported as well. - - See also: [Request instances][0] - - [0]: /advanced/clients/#request-instances - """ - if self._state == ClientState.CLOSED: - raise RuntimeError("Cannot send a request, as the client has been closed.") - - self._state = ClientState.OPENED - follow_redirects = ( - self.follow_redirects - if isinstance(follow_redirects, UseClientDefault) - else follow_redirects - ) - - self._set_timeout(request) - - auth = self._build_request_auth(request, auth) - - response = await self._send_handling_auth( - request, - auth=auth, - follow_redirects=follow_redirects, - history=[], - ) - try: - if not stream: - await response.aread() - - return response - - except BaseException as exc: - await response.aclose() - raise exc - - async def _send_handling_auth( - self, - request: Request, - auth: Auth, - follow_redirects: bool, - history: list[Response], - ) -> Response: - auth_flow = auth.async_auth_flow(request) - try: - request = await auth_flow.__anext__() - - while True: - response = await self._send_handling_redirects( - request, - follow_redirects=follow_redirects, - history=history, - ) - try: - try: - next_request = await auth_flow.asend(response) - except StopAsyncIteration: - return response - - response.history = list(history) - await response.aread() - request = next_request - history.append(response) - - except BaseException as exc: - await response.aclose() - raise exc - finally: - await auth_flow.aclose() - - async def _send_handling_redirects( - self, - request: Request, - follow_redirects: bool, - history: list[Response], - ) -> Response: - while True: - if len(history) > self.max_redirects: - raise TooManyRedirects( - "Exceeded maximum allowed redirects.", request=request - ) - - for hook in self._event_hooks["request"]: - await hook(request) - - response = await self._send_single_request(request) - try: - for hook in self._event_hooks["response"]: - await hook(response) - - response.history = list(history) - - if not response.has_redirect_location: - return response - - request = self._build_redirect_request(request, response) - history = history + [response] - - if follow_redirects: - await response.aread() - else: - response.next_request = request - return response - - except BaseException as exc: - await response.aclose() - raise exc - - async def _send_single_request(self, request: Request) -> Response: - """ - Sends a single request, without handling any redirections. - """ - transport = self._transport_for_url(request.url) - start = time.perf_counter() - - if not isinstance(request.stream, AsyncByteStream): - raise RuntimeError( - "Attempted to send an sync request with an AsyncClient instance." - ) - - with request_context(request=request): - response = await transport.handle_async_request(request) - - assert isinstance(response.stream, AsyncByteStream) - response.request = request - response.stream = BoundAsyncStream( - response.stream, response=response, start=start - ) - self.cookies.extract_cookies(response) - response.default_encoding = self._default_encoding - - logger.info( - 'HTTP Request: %s %s "%s %d %s"', - request.method, - request.url, - response.http_version, - response.status_code, - response.reason_phrase, - ) - - return response - - async def get( - self, - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `GET` request. - - **Parameters**: See `httpx.request`. - """ - return await self.request( - "GET", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - async def options( - self, - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send an `OPTIONS` request. - - **Parameters**: See `httpx.request`. - """ - return await self.request( - "OPTIONS", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - async def head( - self, - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `HEAD` request. - - **Parameters**: See `httpx.request`. - """ - return await self.request( - "HEAD", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - async def post( - self, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `POST` request. - - **Parameters**: See `httpx.request`. - """ - return await self.request( - "POST", - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - async def put( - self, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `PUT` request. - - **Parameters**: See `httpx.request`. - """ - return await self.request( - "PUT", - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - async def patch( - self, - url: URL | str, - *, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `PATCH` request. - - **Parameters**: See `httpx.request`. - """ - return await self.request( - "PATCH", - url, - content=content, - data=data, - files=files, - json=json, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - async def delete( - self, - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT, - follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT, - timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT, - extensions: RequestExtensions | None = None, - ) -> Response: - """ - Send a `DELETE` request. - - **Parameters**: See `httpx.request`. - """ - return await self.request( - "DELETE", - url, - params=params, - headers=headers, - cookies=cookies, - auth=auth, - follow_redirects=follow_redirects, - timeout=timeout, - extensions=extensions, - ) - - async def aclose(self) -> None: - """ - Close transport and proxies. - """ - if self._state != ClientState.CLOSED: - self._state = ClientState.CLOSED - - await self._transport.aclose() - for proxy in self._mounts.values(): - if proxy is not None: - await proxy.aclose() - - async def __aenter__(self: U) -> U: - if self._state != ClientState.UNOPENED: - msg = { - ClientState.OPENED: "Cannot open a client instance more than once.", - ClientState.CLOSED: ( - "Cannot reopen a client instance, once it has been closed." - ), - }[self._state] - raise RuntimeError(msg) - - self._state = ClientState.OPENED - - await self._transport.__aenter__() - for proxy in self._mounts.values(): - if proxy is not None: - await proxy.__aenter__() - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None = None, - exc_value: BaseException | None = None, - traceback: TracebackType | None = None, - ) -> None: - self._state = ClientState.CLOSED - - await self._transport.__aexit__(exc_type, exc_value, traceback) - for proxy in self._mounts.values(): - if proxy is not None: - await proxy.__aexit__(exc_type, exc_value, traceback) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_config.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_config.py deleted file mode 100644 index 467a6c90ae269babe3af7963d9d7c78b9f012268..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_config.py +++ /dev/null @@ -1,248 +0,0 @@ -from __future__ import annotations - -import os -import typing - -from ._models import Headers -from ._types import CertTypes, HeaderTypes, TimeoutTypes -from ._urls import URL - -if typing.TYPE_CHECKING: - import ssl # pragma: no cover - -__all__ = ["Limits", "Proxy", "Timeout", "create_ssl_context"] - - -class UnsetType: - pass # pragma: no cover - - -UNSET = UnsetType() - - -def create_ssl_context( - verify: ssl.SSLContext | str | bool = True, - cert: CertTypes | None = None, - trust_env: bool = True, -) -> ssl.SSLContext: - import ssl - import warnings - - import certifi - - if verify is True: - if trust_env and os.environ.get("SSL_CERT_FILE"): # pragma: nocover - ctx = ssl.create_default_context(cafile=os.environ["SSL_CERT_FILE"]) - elif trust_env and os.environ.get("SSL_CERT_DIR"): # pragma: nocover - ctx = ssl.create_default_context(capath=os.environ["SSL_CERT_DIR"]) - else: - # Default case... - ctx = ssl.create_default_context(cafile=certifi.where()) - elif verify is False: - ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) - ctx.check_hostname = False - ctx.verify_mode = ssl.CERT_NONE - elif isinstance(verify, str): # pragma: nocover - message = ( - "`verify=` is deprecated. " - "Use `verify=ssl.create_default_context(cafile=...)` " - "or `verify=ssl.create_default_context(capath=...)` instead." - ) - warnings.warn(message, DeprecationWarning) - if os.path.isdir(verify): - return ssl.create_default_context(capath=verify) - return ssl.create_default_context(cafile=verify) - else: - ctx = verify - - if cert: # pragma: nocover - message = ( - "`cert=...` is deprecated. Use `verify=` instead," - "with `.load_cert_chain()` to configure the certificate chain." - ) - warnings.warn(message, DeprecationWarning) - if isinstance(cert, str): - ctx.load_cert_chain(cert) - else: - ctx.load_cert_chain(*cert) - - return ctx - - -class Timeout: - """ - Timeout configuration. - - **Usage**: - - Timeout(None) # No timeouts. - Timeout(5.0) # 5s timeout on all operations. - Timeout(None, connect=5.0) # 5s timeout on connect, no other timeouts. - Timeout(5.0, connect=10.0) # 10s timeout on connect. 5s timeout elsewhere. - Timeout(5.0, pool=None) # No timeout on acquiring connection from pool. - # 5s timeout elsewhere. - """ - - def __init__( - self, - timeout: TimeoutTypes | UnsetType = UNSET, - *, - connect: None | float | UnsetType = UNSET, - read: None | float | UnsetType = UNSET, - write: None | float | UnsetType = UNSET, - pool: None | float | UnsetType = UNSET, - ) -> None: - if isinstance(timeout, Timeout): - # Passed as a single explicit Timeout. - assert connect is UNSET - assert read is UNSET - assert write is UNSET - assert pool is UNSET - self.connect = timeout.connect # type: typing.Optional[float] - self.read = timeout.read # type: typing.Optional[float] - self.write = timeout.write # type: typing.Optional[float] - self.pool = timeout.pool # type: typing.Optional[float] - elif isinstance(timeout, tuple): - # Passed as a tuple. - self.connect = timeout[0] - self.read = timeout[1] - self.write = None if len(timeout) < 3 else timeout[2] - self.pool = None if len(timeout) < 4 else timeout[3] - elif not ( - isinstance(connect, UnsetType) - or isinstance(read, UnsetType) - or isinstance(write, UnsetType) - or isinstance(pool, UnsetType) - ): - self.connect = connect - self.read = read - self.write = write - self.pool = pool - else: - if isinstance(timeout, UnsetType): - raise ValueError( - "httpx.Timeout must either include a default, or set all " - "four parameters explicitly." - ) - self.connect = timeout if isinstance(connect, UnsetType) else connect - self.read = timeout if isinstance(read, UnsetType) else read - self.write = timeout if isinstance(write, UnsetType) else write - self.pool = timeout if isinstance(pool, UnsetType) else pool - - def as_dict(self) -> dict[str, float | None]: - return { - "connect": self.connect, - "read": self.read, - "write": self.write, - "pool": self.pool, - } - - def __eq__(self, other: typing.Any) -> bool: - return ( - isinstance(other, self.__class__) - and self.connect == other.connect - and self.read == other.read - and self.write == other.write - and self.pool == other.pool - ) - - def __repr__(self) -> str: - class_name = self.__class__.__name__ - if len({self.connect, self.read, self.write, self.pool}) == 1: - return f"{class_name}(timeout={self.connect})" - return ( - f"{class_name}(connect={self.connect}, " - f"read={self.read}, write={self.write}, pool={self.pool})" - ) - - -class Limits: - """ - Configuration for limits to various client behaviors. - - **Parameters:** - - * **max_connections** - The maximum number of concurrent connections that may be - established. - * **max_keepalive_connections** - Allow the connection pool to maintain - keep-alive connections below this point. Should be less than or equal - to `max_connections`. - * **keepalive_expiry** - Time limit on idle keep-alive connections in seconds. - """ - - def __init__( - self, - *, - max_connections: int | None = None, - max_keepalive_connections: int | None = None, - keepalive_expiry: float | None = 5.0, - ) -> None: - self.max_connections = max_connections - self.max_keepalive_connections = max_keepalive_connections - self.keepalive_expiry = keepalive_expiry - - def __eq__(self, other: typing.Any) -> bool: - return ( - isinstance(other, self.__class__) - and self.max_connections == other.max_connections - and self.max_keepalive_connections == other.max_keepalive_connections - and self.keepalive_expiry == other.keepalive_expiry - ) - - def __repr__(self) -> str: - class_name = self.__class__.__name__ - return ( - f"{class_name}(max_connections={self.max_connections}, " - f"max_keepalive_connections={self.max_keepalive_connections}, " - f"keepalive_expiry={self.keepalive_expiry})" - ) - - -class Proxy: - def __init__( - self, - url: URL | str, - *, - ssl_context: ssl.SSLContext | None = None, - auth: tuple[str, str] | None = None, - headers: HeaderTypes | None = None, - ) -> None: - url = URL(url) - headers = Headers(headers) - - if url.scheme not in ("http", "https", "socks5", "socks5h"): - raise ValueError(f"Unknown scheme for proxy URL {url!r}") - - if url.username or url.password: - # Remove any auth credentials from the URL. - auth = (url.username, url.password) - url = url.copy_with(username=None, password=None) - - self.url = url - self.auth = auth - self.headers = headers - self.ssl_context = ssl_context - - @property - def raw_auth(self) -> tuple[bytes, bytes] | None: - # The proxy authentication as raw bytes. - return ( - None - if self.auth is None - else (self.auth[0].encode("utf-8"), self.auth[1].encode("utf-8")) - ) - - def __repr__(self) -> str: - # The authentication is represented with the password component masked. - auth = (self.auth[0], "********") if self.auth else None - - # Build a nice concise representation. - url_str = f"{str(self.url)!r}" - auth_str = f", auth={auth!r}" if auth else "" - headers_str = f", headers={dict(self.headers)!r}" if self.headers else "" - return f"Proxy({url_str}{auth_str}{headers_str})" - - -DEFAULT_TIMEOUT_CONFIG = Timeout(timeout=5.0) -DEFAULT_LIMITS = Limits(max_connections=100, max_keepalive_connections=20) -DEFAULT_MAX_REDIRECTS = 20 diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_content.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_content.py deleted file mode 100644 index 6f479a0885f723b7395843d41164a87041820776..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_content.py +++ /dev/null @@ -1,240 +0,0 @@ -from __future__ import annotations - -import inspect -import warnings -from json import dumps as json_dumps -from typing import ( - Any, - AsyncIterable, - AsyncIterator, - Iterable, - Iterator, - Mapping, -) -from urllib.parse import urlencode - -from ._exceptions import StreamClosed, StreamConsumed -from ._multipart import MultipartStream -from ._types import ( - AsyncByteStream, - RequestContent, - RequestData, - RequestFiles, - ResponseContent, - SyncByteStream, -) -from ._utils import peek_filelike_length, primitive_value_to_str - -__all__ = ["ByteStream"] - - -class ByteStream(AsyncByteStream, SyncByteStream): - def __init__(self, stream: bytes) -> None: - self._stream = stream - - def __iter__(self) -> Iterator[bytes]: - yield self._stream - - async def __aiter__(self) -> AsyncIterator[bytes]: - yield self._stream - - -class IteratorByteStream(SyncByteStream): - CHUNK_SIZE = 65_536 - - def __init__(self, stream: Iterable[bytes]) -> None: - self._stream = stream - self._is_stream_consumed = False - self._is_generator = inspect.isgenerator(stream) - - def __iter__(self) -> Iterator[bytes]: - if self._is_stream_consumed and self._is_generator: - raise StreamConsumed() - - self._is_stream_consumed = True - if hasattr(self._stream, "read"): - # File-like interfaces should use 'read' directly. - chunk = self._stream.read(self.CHUNK_SIZE) - while chunk: - yield chunk - chunk = self._stream.read(self.CHUNK_SIZE) - else: - # Otherwise iterate. - for part in self._stream: - yield part - - -class AsyncIteratorByteStream(AsyncByteStream): - CHUNK_SIZE = 65_536 - - def __init__(self, stream: AsyncIterable[bytes]) -> None: - self._stream = stream - self._is_stream_consumed = False - self._is_generator = inspect.isasyncgen(stream) - - async def __aiter__(self) -> AsyncIterator[bytes]: - if self._is_stream_consumed and self._is_generator: - raise StreamConsumed() - - self._is_stream_consumed = True - if hasattr(self._stream, "aread"): - # File-like interfaces should use 'aread' directly. - chunk = await self._stream.aread(self.CHUNK_SIZE) - while chunk: - yield chunk - chunk = await self._stream.aread(self.CHUNK_SIZE) - else: - # Otherwise iterate. - async for part in self._stream: - yield part - - -class UnattachedStream(AsyncByteStream, SyncByteStream): - """ - If a request or response is serialized using pickle, then it is no longer - attached to a stream for I/O purposes. Any stream operations should result - in `httpx.StreamClosed`. - """ - - def __iter__(self) -> Iterator[bytes]: - raise StreamClosed() - - async def __aiter__(self) -> AsyncIterator[bytes]: - raise StreamClosed() - yield b"" # pragma: no cover - - -def encode_content( - content: str | bytes | Iterable[bytes] | AsyncIterable[bytes], -) -> tuple[dict[str, str], SyncByteStream | AsyncByteStream]: - if isinstance(content, (bytes, str)): - body = content.encode("utf-8") if isinstance(content, str) else content - content_length = len(body) - headers = {"Content-Length": str(content_length)} if body else {} - return headers, ByteStream(body) - - elif isinstance(content, Iterable) and not isinstance(content, dict): - # `not isinstance(content, dict)` is a bit oddly specific, but it - # catches a case that's easy for users to make in error, and would - # otherwise pass through here, like any other bytes-iterable, - # because `dict` happens to be iterable. See issue #2491. - content_length_or_none = peek_filelike_length(content) - - if content_length_or_none is None: - headers = {"Transfer-Encoding": "chunked"} - else: - headers = {"Content-Length": str(content_length_or_none)} - return headers, IteratorByteStream(content) # type: ignore - - elif isinstance(content, AsyncIterable): - headers = {"Transfer-Encoding": "chunked"} - return headers, AsyncIteratorByteStream(content) - - raise TypeError(f"Unexpected type for 'content', {type(content)!r}") - - -def encode_urlencoded_data( - data: RequestData, -) -> tuple[dict[str, str], ByteStream]: - plain_data = [] - for key, value in data.items(): - if isinstance(value, (list, tuple)): - plain_data.extend([(key, primitive_value_to_str(item)) for item in value]) - else: - plain_data.append((key, primitive_value_to_str(value))) - body = urlencode(plain_data, doseq=True).encode("utf-8") - content_length = str(len(body)) - content_type = "application/x-www-form-urlencoded" - headers = {"Content-Length": content_length, "Content-Type": content_type} - return headers, ByteStream(body) - - -def encode_multipart_data( - data: RequestData, files: RequestFiles, boundary: bytes | None -) -> tuple[dict[str, str], MultipartStream]: - multipart = MultipartStream(data=data, files=files, boundary=boundary) - headers = multipart.get_headers() - return headers, multipart - - -def encode_text(text: str) -> tuple[dict[str, str], ByteStream]: - body = text.encode("utf-8") - content_length = str(len(body)) - content_type = "text/plain; charset=utf-8" - headers = {"Content-Length": content_length, "Content-Type": content_type} - return headers, ByteStream(body) - - -def encode_html(html: str) -> tuple[dict[str, str], ByteStream]: - body = html.encode("utf-8") - content_length = str(len(body)) - content_type = "text/html; charset=utf-8" - headers = {"Content-Length": content_length, "Content-Type": content_type} - return headers, ByteStream(body) - - -def encode_json(json: Any) -> tuple[dict[str, str], ByteStream]: - body = json_dumps( - json, ensure_ascii=False, separators=(",", ":"), allow_nan=False - ).encode("utf-8") - content_length = str(len(body)) - content_type = "application/json" - headers = {"Content-Length": content_length, "Content-Type": content_type} - return headers, ByteStream(body) - - -def encode_request( - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: Any | None = None, - boundary: bytes | None = None, -) -> tuple[dict[str, str], SyncByteStream | AsyncByteStream]: - """ - Handles encoding the given `content`, `data`, `files`, and `json`, - returning a two-tuple of (, ). - """ - if data is not None and not isinstance(data, Mapping): - # We prefer to separate `content=` - # for raw request content, and `data=
` for url encoded or - # multipart form content. - # - # However for compat with requests, we *do* still support - # `data=` usages. We deal with that case here, treating it - # as if `content=<...>` had been supplied instead. - message = "Use 'content=<...>' to upload raw bytes/text content." - warnings.warn(message, DeprecationWarning, stacklevel=2) - return encode_content(data) - - if content is not None: - return encode_content(content) - elif files: - return encode_multipart_data(data or {}, files, boundary) - elif data: - return encode_urlencoded_data(data) - elif json is not None: - return encode_json(json) - - return {}, ByteStream(b"") - - -def encode_response( - content: ResponseContent | None = None, - text: str | None = None, - html: str | None = None, - json: Any | None = None, -) -> tuple[dict[str, str], SyncByteStream | AsyncByteStream]: - """ - Handles encoding the given `content`, returning a two-tuple of - (, ). - """ - if content is not None: - return encode_content(content) - elif text is not None: - return encode_text(text) - elif html is not None: - return encode_html(html) - elif json is not None: - return encode_json(json) - - return {}, ByteStream(b"") diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_decoders.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_decoders.py deleted file mode 100644 index 899dfada878e1181fca6d3c75a79526a076abb9e..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_decoders.py +++ /dev/null @@ -1,393 +0,0 @@ -""" -Handlers for Content-Encoding. - -See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding -""" - -from __future__ import annotations - -import codecs -import io -import typing -import zlib - -from ._exceptions import DecodingError - -# Brotli support is optional -try: - # The C bindings in `brotli` are recommended for CPython. - import brotli -except ImportError: # pragma: no cover - try: - # The CFFI bindings in `brotlicffi` are recommended for PyPy - # and other environments. - import brotlicffi as brotli - except ImportError: - brotli = None - - -# Zstandard support is optional -try: - import zstandard -except ImportError: # pragma: no cover - zstandard = None # type: ignore - - -class ContentDecoder: - def decode(self, data: bytes) -> bytes: - raise NotImplementedError() # pragma: no cover - - def flush(self) -> bytes: - raise NotImplementedError() # pragma: no cover - - -class IdentityDecoder(ContentDecoder): - """ - Handle unencoded data. - """ - - def decode(self, data: bytes) -> bytes: - return data - - def flush(self) -> bytes: - return b"" - - -class DeflateDecoder(ContentDecoder): - """ - Handle 'deflate' decoding. - - See: https://stackoverflow.com/questions/1838699 - """ - - def __init__(self) -> None: - self.first_attempt = True - self.decompressor = zlib.decompressobj() - - def decode(self, data: bytes) -> bytes: - was_first_attempt = self.first_attempt - self.first_attempt = False - try: - return self.decompressor.decompress(data) - except zlib.error as exc: - if was_first_attempt: - self.decompressor = zlib.decompressobj(-zlib.MAX_WBITS) - return self.decode(data) - raise DecodingError(str(exc)) from exc - - def flush(self) -> bytes: - try: - return self.decompressor.flush() - except zlib.error as exc: # pragma: no cover - raise DecodingError(str(exc)) from exc - - -class GZipDecoder(ContentDecoder): - """ - Handle 'gzip' decoding. - - See: https://stackoverflow.com/questions/1838699 - """ - - def __init__(self) -> None: - self.decompressor = zlib.decompressobj(zlib.MAX_WBITS | 16) - - def decode(self, data: bytes) -> bytes: - try: - return self.decompressor.decompress(data) - except zlib.error as exc: - raise DecodingError(str(exc)) from exc - - def flush(self) -> bytes: - try: - return self.decompressor.flush() - except zlib.error as exc: # pragma: no cover - raise DecodingError(str(exc)) from exc - - -class BrotliDecoder(ContentDecoder): - """ - Handle 'brotli' decoding. - - Requires `pip install brotlipy`. See: https://brotlipy.readthedocs.io/ - or `pip install brotli`. See https://github.com/google/brotli - Supports both 'brotlipy' and 'Brotli' packages since they share an import - name. The top branches are for 'brotlipy' and bottom branches for 'Brotli' - """ - - def __init__(self) -> None: - if brotli is None: # pragma: no cover - raise ImportError( - "Using 'BrotliDecoder', but neither of the 'brotlicffi' or 'brotli' " - "packages have been installed. " - "Make sure to install httpx using `pip install httpx[brotli]`." - ) from None - - self.decompressor = brotli.Decompressor() - self.seen_data = False - self._decompress: typing.Callable[[bytes], bytes] - if hasattr(self.decompressor, "decompress"): - # The 'brotlicffi' package. - self._decompress = self.decompressor.decompress # pragma: no cover - else: - # The 'brotli' package. - self._decompress = self.decompressor.process # pragma: no cover - - def decode(self, data: bytes) -> bytes: - if not data: - return b"" - self.seen_data = True - try: - return self._decompress(data) - except brotli.error as exc: - raise DecodingError(str(exc)) from exc - - def flush(self) -> bytes: - if not self.seen_data: - return b"" - try: - if hasattr(self.decompressor, "finish"): - # Only available in the 'brotlicffi' package. - - # As the decompressor decompresses eagerly, this - # will never actually emit any data. However, it will potentially throw - # errors if a truncated or damaged data stream has been used. - self.decompressor.finish() # pragma: no cover - return b"" - except brotli.error as exc: # pragma: no cover - raise DecodingError(str(exc)) from exc - - -class ZStandardDecoder(ContentDecoder): - """ - Handle 'zstd' RFC 8878 decoding. - - Requires `pip install zstandard`. - Can be installed as a dependency of httpx using `pip install httpx[zstd]`. - """ - - # inspired by the ZstdDecoder implementation in urllib3 - def __init__(self) -> None: - if zstandard is None: # pragma: no cover - raise ImportError( - "Using 'ZStandardDecoder', ..." - "Make sure to install httpx using `pip install httpx[zstd]`." - ) from None - - self.decompressor = zstandard.ZstdDecompressor().decompressobj() - self.seen_data = False - - def decode(self, data: bytes) -> bytes: - assert zstandard is not None - self.seen_data = True - output = io.BytesIO() - try: - output.write(self.decompressor.decompress(data)) - while self.decompressor.eof and self.decompressor.unused_data: - unused_data = self.decompressor.unused_data - self.decompressor = zstandard.ZstdDecompressor().decompressobj() - output.write(self.decompressor.decompress(unused_data)) - except zstandard.ZstdError as exc: - raise DecodingError(str(exc)) from exc - return output.getvalue() - - def flush(self) -> bytes: - if not self.seen_data: - return b"" - ret = self.decompressor.flush() # note: this is a no-op - if not self.decompressor.eof: - raise DecodingError("Zstandard data is incomplete") # pragma: no cover - return bytes(ret) - - -class MultiDecoder(ContentDecoder): - """ - Handle the case where multiple encodings have been applied. - """ - - def __init__(self, children: typing.Sequence[ContentDecoder]) -> None: - """ - 'children' should be a sequence of decoders in the order in which - each was applied. - """ - # Note that we reverse the order for decoding. - self.children = list(reversed(children)) - - def decode(self, data: bytes) -> bytes: - for child in self.children: - data = child.decode(data) - return data - - def flush(self) -> bytes: - data = b"" - for child in self.children: - data = child.decode(data) + child.flush() - return data - - -class ByteChunker: - """ - Handles returning byte content in fixed-size chunks. - """ - - def __init__(self, chunk_size: int | None = None) -> None: - self._buffer = io.BytesIO() - self._chunk_size = chunk_size - - def decode(self, content: bytes) -> list[bytes]: - if self._chunk_size is None: - return [content] if content else [] - - self._buffer.write(content) - if self._buffer.tell() >= self._chunk_size: - value = self._buffer.getvalue() - chunks = [ - value[i : i + self._chunk_size] - for i in range(0, len(value), self._chunk_size) - ] - if len(chunks[-1]) == self._chunk_size: - self._buffer.seek(0) - self._buffer.truncate() - return chunks - else: - self._buffer.seek(0) - self._buffer.write(chunks[-1]) - self._buffer.truncate() - return chunks[:-1] - else: - return [] - - def flush(self) -> list[bytes]: - value = self._buffer.getvalue() - self._buffer.seek(0) - self._buffer.truncate() - return [value] if value else [] - - -class TextChunker: - """ - Handles returning text content in fixed-size chunks. - """ - - def __init__(self, chunk_size: int | None = None) -> None: - self._buffer = io.StringIO() - self._chunk_size = chunk_size - - def decode(self, content: str) -> list[str]: - if self._chunk_size is None: - return [content] if content else [] - - self._buffer.write(content) - if self._buffer.tell() >= self._chunk_size: - value = self._buffer.getvalue() - chunks = [ - value[i : i + self._chunk_size] - for i in range(0, len(value), self._chunk_size) - ] - if len(chunks[-1]) == self._chunk_size: - self._buffer.seek(0) - self._buffer.truncate() - return chunks - else: - self._buffer.seek(0) - self._buffer.write(chunks[-1]) - self._buffer.truncate() - return chunks[:-1] - else: - return [] - - def flush(self) -> list[str]: - value = self._buffer.getvalue() - self._buffer.seek(0) - self._buffer.truncate() - return [value] if value else [] - - -class TextDecoder: - """ - Handles incrementally decoding bytes into text - """ - - def __init__(self, encoding: str = "utf-8") -> None: - self.decoder = codecs.getincrementaldecoder(encoding)(errors="replace") - - def decode(self, data: bytes) -> str: - return self.decoder.decode(data) - - def flush(self) -> str: - return self.decoder.decode(b"", True) - - -class LineDecoder: - """ - Handles incrementally reading lines from text. - - Has the same behaviour as the stdllib splitlines, - but handling the input iteratively. - """ - - def __init__(self) -> None: - self.buffer: list[str] = [] - self.trailing_cr: bool = False - - def decode(self, text: str) -> list[str]: - # See https://docs.python.org/3/library/stdtypes.html#str.splitlines - NEWLINE_CHARS = "\n\r\x0b\x0c\x1c\x1d\x1e\x85\u2028\u2029" - - # We always push a trailing `\r` into the next decode iteration. - if self.trailing_cr: - text = "\r" + text - self.trailing_cr = False - if text.endswith("\r"): - self.trailing_cr = True - text = text[:-1] - - if not text: - # NOTE: the edge case input of empty text doesn't occur in practice, - # because other httpx internals filter out this value - return [] # pragma: no cover - - trailing_newline = text[-1] in NEWLINE_CHARS - lines = text.splitlines() - - if len(lines) == 1 and not trailing_newline: - # No new lines, buffer the input and continue. - self.buffer.append(lines[0]) - return [] - - if self.buffer: - # Include any existing buffer in the first portion of the - # splitlines result. - lines = ["".join(self.buffer) + lines[0]] + lines[1:] - self.buffer = [] - - if not trailing_newline: - # If the last segment of splitlines is not newline terminated, - # then drop it from our output and start a new buffer. - self.buffer = [lines.pop()] - - return lines - - def flush(self) -> list[str]: - if not self.buffer and not self.trailing_cr: - return [] - - lines = ["".join(self.buffer)] - self.buffer = [] - self.trailing_cr = False - return lines - - -SUPPORTED_DECODERS = { - "identity": IdentityDecoder, - "gzip": GZipDecoder, - "deflate": DeflateDecoder, - "br": BrotliDecoder, - "zstd": ZStandardDecoder, -} - - -if brotli is None: - SUPPORTED_DECODERS.pop("br") # pragma: no cover -if zstandard is None: - SUPPORTED_DECODERS.pop("zstd") # pragma: no cover diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_exceptions.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_exceptions.py deleted file mode 100644 index 77f45a6d3986d15626fc8a5fd459d6a3e0fbe466..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_exceptions.py +++ /dev/null @@ -1,379 +0,0 @@ -""" -Our exception hierarchy: - -* HTTPError - x RequestError - + TransportError - - TimeoutException - · ConnectTimeout - · ReadTimeout - · WriteTimeout - · PoolTimeout - - NetworkError - · ConnectError - · ReadError - · WriteError - · CloseError - - ProtocolError - · LocalProtocolError - · RemoteProtocolError - - ProxyError - - UnsupportedProtocol - + DecodingError - + TooManyRedirects - x HTTPStatusError -* InvalidURL -* CookieConflict -* StreamError - x StreamConsumed - x StreamClosed - x ResponseNotRead - x RequestNotRead -""" - -from __future__ import annotations - -import contextlib -import typing - -if typing.TYPE_CHECKING: - from ._models import Request, Response # pragma: no cover - -__all__ = [ - "CloseError", - "ConnectError", - "ConnectTimeout", - "CookieConflict", - "DecodingError", - "HTTPError", - "HTTPStatusError", - "InvalidURL", - "LocalProtocolError", - "NetworkError", - "PoolTimeout", - "ProtocolError", - "ProxyError", - "ReadError", - "ReadTimeout", - "RemoteProtocolError", - "RequestError", - "RequestNotRead", - "ResponseNotRead", - "StreamClosed", - "StreamConsumed", - "StreamError", - "TimeoutException", - "TooManyRedirects", - "TransportError", - "UnsupportedProtocol", - "WriteError", - "WriteTimeout", -] - - -class HTTPError(Exception): - """ - Base class for `RequestError` and `HTTPStatusError`. - - Useful for `try...except` blocks when issuing a request, - and then calling `.raise_for_status()`. - - For example: - - ``` - try: - response = httpx.get("https://www.example.com") - response.raise_for_status() - except httpx.HTTPError as exc: - print(f"HTTP Exception for {exc.request.url} - {exc}") - ``` - """ - - def __init__(self, message: str) -> None: - super().__init__(message) - self._request: Request | None = None - - @property - def request(self) -> Request: - if self._request is None: - raise RuntimeError("The .request property has not been set.") - return self._request - - @request.setter - def request(self, request: Request) -> None: - self._request = request - - -class RequestError(HTTPError): - """ - Base class for all exceptions that may occur when issuing a `.request()`. - """ - - def __init__(self, message: str, *, request: Request | None = None) -> None: - super().__init__(message) - # At the point an exception is raised we won't typically have a request - # instance to associate it with. - # - # The 'request_context' context manager is used within the Client and - # Response methods in order to ensure that any raised exceptions - # have a `.request` property set on them. - self._request = request - - -class TransportError(RequestError): - """ - Base class for all exceptions that occur at the level of the Transport API. - """ - - -# Timeout exceptions... - - -class TimeoutException(TransportError): - """ - The base class for timeout errors. - - An operation has timed out. - """ - - -class ConnectTimeout(TimeoutException): - """ - Timed out while connecting to the host. - """ - - -class ReadTimeout(TimeoutException): - """ - Timed out while receiving data from the host. - """ - - -class WriteTimeout(TimeoutException): - """ - Timed out while sending data to the host. - """ - - -class PoolTimeout(TimeoutException): - """ - Timed out waiting to acquire a connection from the pool. - """ - - -# Core networking exceptions... - - -class NetworkError(TransportError): - """ - The base class for network-related errors. - - An error occurred while interacting with the network. - """ - - -class ReadError(NetworkError): - """ - Failed to receive data from the network. - """ - - -class WriteError(NetworkError): - """ - Failed to send data through the network. - """ - - -class ConnectError(NetworkError): - """ - Failed to establish a connection. - """ - - -class CloseError(NetworkError): - """ - Failed to close a connection. - """ - - -# Other transport exceptions... - - -class ProxyError(TransportError): - """ - An error occurred while establishing a proxy connection. - """ - - -class UnsupportedProtocol(TransportError): - """ - Attempted to make a request to an unsupported protocol. - - For example issuing a request to `ftp://www.example.com`. - """ - - -class ProtocolError(TransportError): - """ - The protocol was violated. - """ - - -class LocalProtocolError(ProtocolError): - """ - A protocol was violated by the client. - - For example if the user instantiated a `Request` instance explicitly, - failed to include the mandatory `Host:` header, and then issued it directly - using `client.send()`. - """ - - -class RemoteProtocolError(ProtocolError): - """ - The protocol was violated by the server. - - For example, returning malformed HTTP. - """ - - -# Other request exceptions... - - -class DecodingError(RequestError): - """ - Decoding of the response failed, due to a malformed encoding. - """ - - -class TooManyRedirects(RequestError): - """ - Too many redirects. - """ - - -# Client errors - - -class HTTPStatusError(HTTPError): - """ - The response had an error HTTP status of 4xx or 5xx. - - May be raised when calling `response.raise_for_status()` - """ - - def __init__(self, message: str, *, request: Request, response: Response) -> None: - super().__init__(message) - self.request = request - self.response = response - - -class InvalidURL(Exception): - """ - URL is improperly formed or cannot be parsed. - """ - - def __init__(self, message: str) -> None: - super().__init__(message) - - -class CookieConflict(Exception): - """ - Attempted to lookup a cookie by name, but multiple cookies existed. - - Can occur when calling `response.cookies.get(...)`. - """ - - def __init__(self, message: str) -> None: - super().__init__(message) - - -# Stream exceptions... - -# These may occur as the result of a programming error, by accessing -# the request/response stream in an invalid manner. - - -class StreamError(RuntimeError): - """ - The base class for stream exceptions. - - The developer made an error in accessing the request stream in - an invalid way. - """ - - def __init__(self, message: str) -> None: - super().__init__(message) - - -class StreamConsumed(StreamError): - """ - Attempted to read or stream content, but the content has already - been streamed. - """ - - def __init__(self) -> None: - message = ( - "Attempted to read or stream some content, but the content has " - "already been streamed. For requests, this could be due to passing " - "a generator as request content, and then receiving a redirect " - "response or a secondary request as part of an authentication flow." - "For responses, this could be due to attempting to stream the response " - "content more than once." - ) - super().__init__(message) - - -class StreamClosed(StreamError): - """ - Attempted to read or stream response content, but the request has been - closed. - """ - - def __init__(self) -> None: - message = ( - "Attempted to read or stream content, but the stream has " "been closed." - ) - super().__init__(message) - - -class ResponseNotRead(StreamError): - """ - Attempted to access streaming response content, without having called `read()`. - """ - - def __init__(self) -> None: - message = ( - "Attempted to access streaming response content," - " without having called `read()`." - ) - super().__init__(message) - - -class RequestNotRead(StreamError): - """ - Attempted to access streaming request content, without having called `read()`. - """ - - def __init__(self) -> None: - message = ( - "Attempted to access streaming request content," - " without having called `read()`." - ) - super().__init__(message) - - -@contextlib.contextmanager -def request_context( - request: Request | None = None, -) -> typing.Iterator[None]: - """ - A context manager that can be used to attach the given request context - to any `RequestError` exceptions that are raised within the block. - """ - try: - yield - except RequestError as exc: - if request is not None: - exc.request = request - raise exc diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_main.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_main.py deleted file mode 100644 index cffa4bb7db0f930f4db56653a061c4d7400ba4e6..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_main.py +++ /dev/null @@ -1,506 +0,0 @@ -from __future__ import annotations - -import functools -import json -import sys -import typing - -import click -import pygments.lexers -import pygments.util -import rich.console -import rich.markup -import rich.progress -import rich.syntax -import rich.table - -from ._client import Client -from ._exceptions import RequestError -from ._models import Response -from ._status_codes import codes - -if typing.TYPE_CHECKING: - import httpcore # pragma: no cover - - -def print_help() -> None: - console = rich.console.Console() - - console.print("[bold]HTTPX :butterfly:", justify="center") - console.print() - console.print("A next generation HTTP client.", justify="center") - console.print() - console.print( - "Usage: [bold]httpx[/bold] [cyan] [OPTIONS][/cyan] ", justify="left" - ) - console.print() - - table = rich.table.Table.grid(padding=1, pad_edge=True) - table.add_column("Parameter", no_wrap=True, justify="left", style="bold") - table.add_column("Description") - table.add_row( - "-m, --method [cyan]METHOD", - "Request method, such as GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD.\n" - "[Default: GET, or POST if a request body is included]", - ) - table.add_row( - "-p, --params [cyan] ...", - "Query parameters to include in the request URL.", - ) - table.add_row( - "-c, --content [cyan]TEXT", "Byte content to include in the request body." - ) - table.add_row( - "-d, --data [cyan] ...", "Form data to include in the request body." - ) - table.add_row( - "-f, --files [cyan] ...", - "Form files to include in the request body.", - ) - table.add_row("-j, --json [cyan]TEXT", "JSON data to include in the request body.") - table.add_row( - "-h, --headers [cyan] ...", - "Include additional HTTP headers in the request.", - ) - table.add_row( - "--cookies [cyan] ...", "Cookies to include in the request." - ) - table.add_row( - "--auth [cyan]", - "Username and password to include in the request. Specify '-' for the password" - " to use a password prompt. Note that using --verbose/-v will expose" - " the Authorization header, including the password encoding" - " in a trivially reversible format.", - ) - - table.add_row( - "--proxy [cyan]URL", - "Send the request via a proxy. Should be the URL giving the proxy address.", - ) - - table.add_row( - "--timeout [cyan]FLOAT", - "Timeout value to use for network operations, such as establishing the" - " connection, reading some data, etc... [Default: 5.0]", - ) - - table.add_row("--follow-redirects", "Automatically follow redirects.") - table.add_row("--no-verify", "Disable SSL verification.") - table.add_row( - "--http2", "Send the request using HTTP/2, if the remote server supports it." - ) - - table.add_row( - "--download [cyan]FILE", - "Save the response content as a file, rather than displaying it.", - ) - - table.add_row("-v, --verbose", "Verbose output. Show request as well as response.") - table.add_row("--help", "Show this message and exit.") - console.print(table) - - -def get_lexer_for_response(response: Response) -> str: - content_type = response.headers.get("Content-Type") - if content_type is not None: - mime_type, _, _ = content_type.partition(";") - try: - return typing.cast( - str, pygments.lexers.get_lexer_for_mimetype(mime_type.strip()).name - ) - except pygments.util.ClassNotFound: # pragma: no cover - pass - return "" # pragma: no cover - - -def format_request_headers(request: httpcore.Request, http2: bool = False) -> str: - version = "HTTP/2" if http2 else "HTTP/1.1" - headers = [ - (name.lower() if http2 else name, value) for name, value in request.headers - ] - method = request.method.decode("ascii") - target = request.url.target.decode("ascii") - lines = [f"{method} {target} {version}"] + [ - f"{name.decode('ascii')}: {value.decode('ascii')}" for name, value in headers - ] - return "\n".join(lines) - - -def format_response_headers( - http_version: bytes, - status: int, - reason_phrase: bytes | None, - headers: list[tuple[bytes, bytes]], -) -> str: - version = http_version.decode("ascii") - reason = ( - codes.get_reason_phrase(status) - if reason_phrase is None - else reason_phrase.decode("ascii") - ) - lines = [f"{version} {status} {reason}"] + [ - f"{name.decode('ascii')}: {value.decode('ascii')}" for name, value in headers - ] - return "\n".join(lines) - - -def print_request_headers(request: httpcore.Request, http2: bool = False) -> None: - console = rich.console.Console() - http_text = format_request_headers(request, http2=http2) - syntax = rich.syntax.Syntax(http_text, "http", theme="ansi_dark", word_wrap=True) - console.print(syntax) - syntax = rich.syntax.Syntax("", "http", theme="ansi_dark", word_wrap=True) - console.print(syntax) - - -def print_response_headers( - http_version: bytes, - status: int, - reason_phrase: bytes | None, - headers: list[tuple[bytes, bytes]], -) -> None: - console = rich.console.Console() - http_text = format_response_headers(http_version, status, reason_phrase, headers) - syntax = rich.syntax.Syntax(http_text, "http", theme="ansi_dark", word_wrap=True) - console.print(syntax) - syntax = rich.syntax.Syntax("", "http", theme="ansi_dark", word_wrap=True) - console.print(syntax) - - -def print_response(response: Response) -> None: - console = rich.console.Console() - lexer_name = get_lexer_for_response(response) - if lexer_name: - if lexer_name.lower() == "json": - try: - data = response.json() - text = json.dumps(data, indent=4) - except ValueError: # pragma: no cover - text = response.text - else: - text = response.text - - syntax = rich.syntax.Syntax(text, lexer_name, theme="ansi_dark", word_wrap=True) - console.print(syntax) - else: - console.print(f"<{len(response.content)} bytes of binary data>") - - -_PCTRTT = typing.Tuple[typing.Tuple[str, str], ...] -_PCTRTTT = typing.Tuple[_PCTRTT, ...] -_PeerCertRetDictType = typing.Dict[str, typing.Union[str, _PCTRTTT, _PCTRTT]] - - -def format_certificate(cert: _PeerCertRetDictType) -> str: # pragma: no cover - lines = [] - for key, value in cert.items(): - if isinstance(value, (list, tuple)): - lines.append(f"* {key}:") - for item in value: - if key in ("subject", "issuer"): - for sub_item in item: - lines.append(f"* {sub_item[0]}: {sub_item[1]!r}") - elif isinstance(item, tuple) and len(item) == 2: - lines.append(f"* {item[0]}: {item[1]!r}") - else: - lines.append(f"* {item!r}") - else: - lines.append(f"* {key}: {value!r}") - return "\n".join(lines) - - -def trace( - name: str, info: typing.Mapping[str, typing.Any], verbose: bool = False -) -> None: - console = rich.console.Console() - if name == "connection.connect_tcp.started" and verbose: - host = info["host"] - console.print(f"* Connecting to {host!r}") - elif name == "connection.connect_tcp.complete" and verbose: - stream = info["return_value"] - server_addr = stream.get_extra_info("server_addr") - console.print(f"* Connected to {server_addr[0]!r} on port {server_addr[1]}") - elif name == "connection.start_tls.complete" and verbose: # pragma: no cover - stream = info["return_value"] - ssl_object = stream.get_extra_info("ssl_object") - version = ssl_object.version() - cipher = ssl_object.cipher() - server_cert = ssl_object.getpeercert() - alpn = ssl_object.selected_alpn_protocol() - console.print(f"* SSL established using {version!r} / {cipher[0]!r}") - console.print(f"* Selected ALPN protocol: {alpn!r}") - if server_cert: - console.print("* Server certificate:") - console.print(format_certificate(server_cert)) - elif name == "http11.send_request_headers.started" and verbose: - request = info["request"] - print_request_headers(request, http2=False) - elif name == "http2.send_request_headers.started" and verbose: # pragma: no cover - request = info["request"] - print_request_headers(request, http2=True) - elif name == "http11.receive_response_headers.complete": - http_version, status, reason_phrase, headers = info["return_value"] - print_response_headers(http_version, status, reason_phrase, headers) - elif name == "http2.receive_response_headers.complete": # pragma: no cover - status, headers = info["return_value"] - http_version = b"HTTP/2" - reason_phrase = None - print_response_headers(http_version, status, reason_phrase, headers) - - -def download_response(response: Response, download: typing.BinaryIO) -> None: - console = rich.console.Console() - console.print() - content_length = response.headers.get("Content-Length") - with rich.progress.Progress( - "[progress.description]{task.description}", - "[progress.percentage]{task.percentage:>3.0f}%", - rich.progress.BarColumn(bar_width=None), - rich.progress.DownloadColumn(), - rich.progress.TransferSpeedColumn(), - ) as progress: - description = f"Downloading [bold]{rich.markup.escape(download.name)}" - download_task = progress.add_task( - description, - total=int(content_length or 0), - start=content_length is not None, - ) - for chunk in response.iter_bytes(): - download.write(chunk) - progress.update(download_task, completed=response.num_bytes_downloaded) - - -def validate_json( - ctx: click.Context, - param: click.Option | click.Parameter, - value: typing.Any, -) -> typing.Any: - if value is None: - return None - - try: - return json.loads(value) - except json.JSONDecodeError: # pragma: no cover - raise click.BadParameter("Not valid JSON") - - -def validate_auth( - ctx: click.Context, - param: click.Option | click.Parameter, - value: typing.Any, -) -> typing.Any: - if value == (None, None): - return None - - username, password = value - if password == "-": # pragma: no cover - password = click.prompt("Password", hide_input=True) - return (username, password) - - -def handle_help( - ctx: click.Context, - param: click.Option | click.Parameter, - value: typing.Any, -) -> None: - if not value or ctx.resilient_parsing: - return - - print_help() - ctx.exit() - - -@click.command(add_help_option=False) -@click.argument("url", type=str) -@click.option( - "--method", - "-m", - "method", - type=str, - help=( - "Request method, such as GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD. " - "[Default: GET, or POST if a request body is included]" - ), -) -@click.option( - "--params", - "-p", - "params", - type=(str, str), - multiple=True, - help="Query parameters to include in the request URL.", -) -@click.option( - "--content", - "-c", - "content", - type=str, - help="Byte content to include in the request body.", -) -@click.option( - "--data", - "-d", - "data", - type=(str, str), - multiple=True, - help="Form data to include in the request body.", -) -@click.option( - "--files", - "-f", - "files", - type=(str, click.File(mode="rb")), - multiple=True, - help="Form files to include in the request body.", -) -@click.option( - "--json", - "-j", - "json", - type=str, - callback=validate_json, - help="JSON data to include in the request body.", -) -@click.option( - "--headers", - "-h", - "headers", - type=(str, str), - multiple=True, - help="Include additional HTTP headers in the request.", -) -@click.option( - "--cookies", - "cookies", - type=(str, str), - multiple=True, - help="Cookies to include in the request.", -) -@click.option( - "--auth", - "auth", - type=(str, str), - default=(None, None), - callback=validate_auth, - help=( - "Username and password to include in the request. " - "Specify '-' for the password to use a password prompt. " - "Note that using --verbose/-v will expose the Authorization header, " - "including the password encoding in a trivially reversible format." - ), -) -@click.option( - "--proxy", - "proxy", - type=str, - default=None, - help="Send the request via a proxy. Should be the URL giving the proxy address.", -) -@click.option( - "--timeout", - "timeout", - type=float, - default=5.0, - help=( - "Timeout value to use for network operations, such as establishing the " - "connection, reading some data, etc... [Default: 5.0]" - ), -) -@click.option( - "--follow-redirects", - "follow_redirects", - is_flag=True, - default=False, - help="Automatically follow redirects.", -) -@click.option( - "--no-verify", - "verify", - is_flag=True, - default=True, - help="Disable SSL verification.", -) -@click.option( - "--http2", - "http2", - type=bool, - is_flag=True, - default=False, - help="Send the request using HTTP/2, if the remote server supports it.", -) -@click.option( - "--download", - type=click.File("wb"), - help="Save the response content as a file, rather than displaying it.", -) -@click.option( - "--verbose", - "-v", - type=bool, - is_flag=True, - default=False, - help="Verbose. Show request as well as response.", -) -@click.option( - "--help", - is_flag=True, - is_eager=True, - expose_value=False, - callback=handle_help, - help="Show this message and exit.", -) -def main( - url: str, - method: str, - params: list[tuple[str, str]], - content: str, - data: list[tuple[str, str]], - files: list[tuple[str, click.File]], - json: str, - headers: list[tuple[str, str]], - cookies: list[tuple[str, str]], - auth: tuple[str, str] | None, - proxy: str, - timeout: float, - follow_redirects: bool, - verify: bool, - http2: bool, - download: typing.BinaryIO | None, - verbose: bool, -) -> None: - """ - An HTTP command line client. - Sends a request and displays the response. - """ - if not method: - method = "POST" if content or data or files or json else "GET" - - try: - with Client(proxy=proxy, timeout=timeout, http2=http2, verify=verify) as client: - with client.stream( - method, - url, - params=list(params), - content=content, - data=dict(data), - files=files, # type: ignore - json=json, - headers=headers, - cookies=dict(cookies), - auth=auth, - follow_redirects=follow_redirects, - extensions={"trace": functools.partial(trace, verbose=verbose)}, - ) as response: - if download is not None: - download_response(response, download) - else: - response.read() - if response.content: - print_response(response) - - except RequestError as exc: - console = rich.console.Console() - console.print(f"[red]{type(exc).__name__}[/red]: {exc}") - sys.exit(1) - - sys.exit(0 if response.is_success else 1) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_models.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_models.py deleted file mode 100644 index 67d74bf86bfc80e22d9a4a3153572845accd9039..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_models.py +++ /dev/null @@ -1,1277 +0,0 @@ -from __future__ import annotations - -import codecs -import datetime -import email.message -import json as jsonlib -import re -import typing -import urllib.request -from collections.abc import Mapping -from http.cookiejar import Cookie, CookieJar - -from ._content import ByteStream, UnattachedStream, encode_request, encode_response -from ._decoders import ( - SUPPORTED_DECODERS, - ByteChunker, - ContentDecoder, - IdentityDecoder, - LineDecoder, - MultiDecoder, - TextChunker, - TextDecoder, -) -from ._exceptions import ( - CookieConflict, - HTTPStatusError, - RequestNotRead, - ResponseNotRead, - StreamClosed, - StreamConsumed, - request_context, -) -from ._multipart import get_multipart_boundary_from_content_type -from ._status_codes import codes -from ._types import ( - AsyncByteStream, - CookieTypes, - HeaderTypes, - QueryParamTypes, - RequestContent, - RequestData, - RequestExtensions, - RequestFiles, - ResponseContent, - ResponseExtensions, - SyncByteStream, -) -from ._urls import URL -from ._utils import to_bytes_or_str, to_str - -__all__ = ["Cookies", "Headers", "Request", "Response"] - -SENSITIVE_HEADERS = {"authorization", "proxy-authorization"} - - -def _is_known_encoding(encoding: str) -> bool: - """ - Return `True` if `encoding` is a known codec. - """ - try: - codecs.lookup(encoding) - except LookupError: - return False - return True - - -def _normalize_header_key(key: str | bytes, encoding: str | None = None) -> bytes: - """ - Coerce str/bytes into a strictly byte-wise HTTP header key. - """ - return key if isinstance(key, bytes) else key.encode(encoding or "ascii") - - -def _normalize_header_value(value: str | bytes, encoding: str | None = None) -> bytes: - """ - Coerce str/bytes into a strictly byte-wise HTTP header value. - """ - if isinstance(value, bytes): - return value - if not isinstance(value, str): - raise TypeError(f"Header value must be str or bytes, not {type(value)}") - return value.encode(encoding or "ascii") - - -def _parse_content_type_charset(content_type: str) -> str | None: - # We used to use `cgi.parse_header()` here, but `cgi` became a dead battery. - # See: https://peps.python.org/pep-0594/#cgi - msg = email.message.Message() - msg["content-type"] = content_type - return msg.get_content_charset(failobj=None) - - -def _parse_header_links(value: str) -> list[dict[str, str]]: - """ - Returns a list of parsed link headers, for more info see: - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link - The generic syntax of those is: - Link: < uri-reference >; param1=value1; param2="value2" - So for instance: - Link; '; type="image/jpeg",;' - would return - [ - {"url": "http:/.../front.jpeg", "type": "image/jpeg"}, - {"url": "http://.../back.jpeg"}, - ] - :param value: HTTP Link entity-header field - :return: list of parsed link headers - """ - links: list[dict[str, str]] = [] - replace_chars = " '\"" - value = value.strip(replace_chars) - if not value: - return links - for val in re.split(", *<", value): - try: - url, params = val.split(";", 1) - except ValueError: - url, params = val, "" - link = {"url": url.strip("<> '\"")} - for param in params.split(";"): - try: - key, value = param.split("=") - except ValueError: - break - link[key.strip(replace_chars)] = value.strip(replace_chars) - links.append(link) - return links - - -def _obfuscate_sensitive_headers( - items: typing.Iterable[tuple[typing.AnyStr, typing.AnyStr]], -) -> typing.Iterator[tuple[typing.AnyStr, typing.AnyStr]]: - for k, v in items: - if to_str(k.lower()) in SENSITIVE_HEADERS: - v = to_bytes_or_str("[secure]", match_type_of=v) - yield k, v - - -class Headers(typing.MutableMapping[str, str]): - """ - HTTP headers, as a case-insensitive multi-dict. - """ - - def __init__( - self, - headers: HeaderTypes | None = None, - encoding: str | None = None, - ) -> None: - self._list = [] # type: typing.List[typing.Tuple[bytes, bytes, bytes]] - - if isinstance(headers, Headers): - self._list = list(headers._list) - elif isinstance(headers, Mapping): - for k, v in headers.items(): - bytes_key = _normalize_header_key(k, encoding) - bytes_value = _normalize_header_value(v, encoding) - self._list.append((bytes_key, bytes_key.lower(), bytes_value)) - elif headers is not None: - for k, v in headers: - bytes_key = _normalize_header_key(k, encoding) - bytes_value = _normalize_header_value(v, encoding) - self._list.append((bytes_key, bytes_key.lower(), bytes_value)) - - self._encoding = encoding - - @property - def encoding(self) -> str: - """ - Header encoding is mandated as ascii, but we allow fallbacks to utf-8 - or iso-8859-1. - """ - if self._encoding is None: - for encoding in ["ascii", "utf-8"]: - for key, value in self.raw: - try: - key.decode(encoding) - value.decode(encoding) - except UnicodeDecodeError: - break - else: - # The else block runs if 'break' did not occur, meaning - # all values fitted the encoding. - self._encoding = encoding - break - else: - # The ISO-8859-1 encoding covers all 256 code points in a byte, - # so will never raise decode errors. - self._encoding = "iso-8859-1" - return self._encoding - - @encoding.setter - def encoding(self, value: str) -> None: - self._encoding = value - - @property - def raw(self) -> list[tuple[bytes, bytes]]: - """ - Returns a list of the raw header items, as byte pairs. - """ - return [(raw_key, value) for raw_key, _, value in self._list] - - def keys(self) -> typing.KeysView[str]: - return {key.decode(self.encoding): None for _, key, value in self._list}.keys() - - def values(self) -> typing.ValuesView[str]: - values_dict: dict[str, str] = {} - for _, key, value in self._list: - str_key = key.decode(self.encoding) - str_value = value.decode(self.encoding) - if str_key in values_dict: - values_dict[str_key] += f", {str_value}" - else: - values_dict[str_key] = str_value - return values_dict.values() - - def items(self) -> typing.ItemsView[str, str]: - """ - Return `(key, value)` items of headers. Concatenate headers - into a single comma separated value when a key occurs multiple times. - """ - values_dict: dict[str, str] = {} - for _, key, value in self._list: - str_key = key.decode(self.encoding) - str_value = value.decode(self.encoding) - if str_key in values_dict: - values_dict[str_key] += f", {str_value}" - else: - values_dict[str_key] = str_value - return values_dict.items() - - def multi_items(self) -> list[tuple[str, str]]: - """ - Return a list of `(key, value)` pairs of headers. Allow multiple - occurrences of the same key without concatenating into a single - comma separated value. - """ - return [ - (key.decode(self.encoding), value.decode(self.encoding)) - for _, key, value in self._list - ] - - def get(self, key: str, default: typing.Any = None) -> typing.Any: - """ - Return a header value. If multiple occurrences of the header occur - then concatenate them together with commas. - """ - try: - return self[key] - except KeyError: - return default - - def get_list(self, key: str, split_commas: bool = False) -> list[str]: - """ - Return a list of all header values for a given key. - If `split_commas=True` is passed, then any comma separated header - values are split into multiple return strings. - """ - get_header_key = key.lower().encode(self.encoding) - - values = [ - item_value.decode(self.encoding) - for _, item_key, item_value in self._list - if item_key.lower() == get_header_key - ] - - if not split_commas: - return values - - split_values = [] - for value in values: - split_values.extend([item.strip() for item in value.split(",")]) - return split_values - - def update(self, headers: HeaderTypes | None = None) -> None: # type: ignore - headers = Headers(headers) - for key in headers.keys(): - if key in self: - self.pop(key) - self._list.extend(headers._list) - - def copy(self) -> Headers: - return Headers(self, encoding=self.encoding) - - def __getitem__(self, key: str) -> str: - """ - Return a single header value. - - If there are multiple headers with the same key, then we concatenate - them with commas. See: https://tools.ietf.org/html/rfc7230#section-3.2.2 - """ - normalized_key = key.lower().encode(self.encoding) - - items = [ - header_value.decode(self.encoding) - for _, header_key, header_value in self._list - if header_key == normalized_key - ] - - if items: - return ", ".join(items) - - raise KeyError(key) - - def __setitem__(self, key: str, value: str) -> None: - """ - Set the header `key` to `value`, removing any duplicate entries. - Retains insertion order. - """ - set_key = key.encode(self._encoding or "utf-8") - set_value = value.encode(self._encoding or "utf-8") - lookup_key = set_key.lower() - - found_indexes = [ - idx - for idx, (_, item_key, _) in enumerate(self._list) - if item_key == lookup_key - ] - - for idx in reversed(found_indexes[1:]): - del self._list[idx] - - if found_indexes: - idx = found_indexes[0] - self._list[idx] = (set_key, lookup_key, set_value) - else: - self._list.append((set_key, lookup_key, set_value)) - - def __delitem__(self, key: str) -> None: - """ - Remove the header `key`. - """ - del_key = key.lower().encode(self.encoding) - - pop_indexes = [ - idx - for idx, (_, item_key, _) in enumerate(self._list) - if item_key.lower() == del_key - ] - - if not pop_indexes: - raise KeyError(key) - - for idx in reversed(pop_indexes): - del self._list[idx] - - def __contains__(self, key: typing.Any) -> bool: - header_key = key.lower().encode(self.encoding) - return header_key in [key for _, key, _ in self._list] - - def __iter__(self) -> typing.Iterator[typing.Any]: - return iter(self.keys()) - - def __len__(self) -> int: - return len(self._list) - - def __eq__(self, other: typing.Any) -> bool: - try: - other_headers = Headers(other) - except ValueError: - return False - - self_list = [(key, value) for _, key, value in self._list] - other_list = [(key, value) for _, key, value in other_headers._list] - return sorted(self_list) == sorted(other_list) - - def __repr__(self) -> str: - class_name = self.__class__.__name__ - - encoding_str = "" - if self.encoding != "ascii": - encoding_str = f", encoding={self.encoding!r}" - - as_list = list(_obfuscate_sensitive_headers(self.multi_items())) - as_dict = dict(as_list) - - no_duplicate_keys = len(as_dict) == len(as_list) - if no_duplicate_keys: - return f"{class_name}({as_dict!r}{encoding_str})" - return f"{class_name}({as_list!r}{encoding_str})" - - -class Request: - def __init__( - self, - method: str, - url: URL | str, - *, - params: QueryParamTypes | None = None, - headers: HeaderTypes | None = None, - cookies: CookieTypes | None = None, - content: RequestContent | None = None, - data: RequestData | None = None, - files: RequestFiles | None = None, - json: typing.Any | None = None, - stream: SyncByteStream | AsyncByteStream | None = None, - extensions: RequestExtensions | None = None, - ) -> None: - self.method = method.upper() - self.url = URL(url) if params is None else URL(url, params=params) - self.headers = Headers(headers) - self.extensions = {} if extensions is None else dict(extensions) - - if cookies: - Cookies(cookies).set_cookie_header(self) - - if stream is None: - content_type: str | None = self.headers.get("content-type") - headers, stream = encode_request( - content=content, - data=data, - files=files, - json=json, - boundary=get_multipart_boundary_from_content_type( - content_type=content_type.encode(self.headers.encoding) - if content_type - else None - ), - ) - self._prepare(headers) - self.stream = stream - # Load the request body, except for streaming content. - if isinstance(stream, ByteStream): - self.read() - else: - # There's an important distinction between `Request(content=...)`, - # and `Request(stream=...)`. - # - # Using `content=...` implies automatically populated `Host` and content - # headers, of either `Content-Length: ...` or `Transfer-Encoding: chunked`. - # - # Using `stream=...` will not automatically include *any* - # auto-populated headers. - # - # As an end-user you don't really need `stream=...`. It's only - # useful when: - # - # * Preserving the request stream when copying requests, eg for redirects. - # * Creating request instances on the *server-side* of the transport API. - self.stream = stream - - def _prepare(self, default_headers: dict[str, str]) -> None: - for key, value in default_headers.items(): - # Ignore Transfer-Encoding if the Content-Length has been set explicitly. - if key.lower() == "transfer-encoding" and "Content-Length" in self.headers: - continue - self.headers.setdefault(key, value) - - auto_headers: list[tuple[bytes, bytes]] = [] - - has_host = "Host" in self.headers - has_content_length = ( - "Content-Length" in self.headers or "Transfer-Encoding" in self.headers - ) - - if not has_host and self.url.host: - auto_headers.append((b"Host", self.url.netloc)) - if not has_content_length and self.method in ("POST", "PUT", "PATCH"): - auto_headers.append((b"Content-Length", b"0")) - - self.headers = Headers(auto_headers + self.headers.raw) - - @property - def content(self) -> bytes: - if not hasattr(self, "_content"): - raise RequestNotRead() - return self._content - - def read(self) -> bytes: - """ - Read and return the request content. - """ - if not hasattr(self, "_content"): - assert isinstance(self.stream, typing.Iterable) - self._content = b"".join(self.stream) - if not isinstance(self.stream, ByteStream): - # If a streaming request has been read entirely into memory, then - # we can replace the stream with a raw bytes implementation, - # to ensure that any non-replayable streams can still be used. - self.stream = ByteStream(self._content) - return self._content - - async def aread(self) -> bytes: - """ - Read and return the request content. - """ - if not hasattr(self, "_content"): - assert isinstance(self.stream, typing.AsyncIterable) - self._content = b"".join([part async for part in self.stream]) - if not isinstance(self.stream, ByteStream): - # If a streaming request has been read entirely into memory, then - # we can replace the stream with a raw bytes implementation, - # to ensure that any non-replayable streams can still be used. - self.stream = ByteStream(self._content) - return self._content - - def __repr__(self) -> str: - class_name = self.__class__.__name__ - url = str(self.url) - return f"<{class_name}({self.method!r}, {url!r})>" - - def __getstate__(self) -> dict[str, typing.Any]: - return { - name: value - for name, value in self.__dict__.items() - if name not in ["extensions", "stream"] - } - - def __setstate__(self, state: dict[str, typing.Any]) -> None: - for name, value in state.items(): - setattr(self, name, value) - self.extensions = {} - self.stream = UnattachedStream() - - -class Response: - def __init__( - self, - status_code: int, - *, - headers: HeaderTypes | None = None, - content: ResponseContent | None = None, - text: str | None = None, - html: str | None = None, - json: typing.Any = None, - stream: SyncByteStream | AsyncByteStream | None = None, - request: Request | None = None, - extensions: ResponseExtensions | None = None, - history: list[Response] | None = None, - default_encoding: str | typing.Callable[[bytes], str] = "utf-8", - ) -> None: - self.status_code = status_code - self.headers = Headers(headers) - - self._request: Request | None = request - - # When follow_redirects=False and a redirect is received, - # the client will set `response.next_request`. - self.next_request: Request | None = None - - self.extensions = {} if extensions is None else dict(extensions) - self.history = [] if history is None else list(history) - - self.is_closed = False - self.is_stream_consumed = False - - self.default_encoding = default_encoding - - if stream is None: - headers, stream = encode_response(content, text, html, json) - self._prepare(headers) - self.stream = stream - if isinstance(stream, ByteStream): - # Load the response body, except for streaming content. - self.read() - else: - # There's an important distinction between `Response(content=...)`, - # and `Response(stream=...)`. - # - # Using `content=...` implies automatically populated content headers, - # of either `Content-Length: ...` or `Transfer-Encoding: chunked`. - # - # Using `stream=...` will not automatically include any content headers. - # - # As an end-user you don't really need `stream=...`. It's only - # useful when creating response instances having received a stream - # from the transport API. - self.stream = stream - - self._num_bytes_downloaded = 0 - - def _prepare(self, default_headers: dict[str, str]) -> None: - for key, value in default_headers.items(): - # Ignore Transfer-Encoding if the Content-Length has been set explicitly. - if key.lower() == "transfer-encoding" and "content-length" in self.headers: - continue - self.headers.setdefault(key, value) - - @property - def elapsed(self) -> datetime.timedelta: - """ - Returns the time taken for the complete request/response - cycle to complete. - """ - if not hasattr(self, "_elapsed"): - raise RuntimeError( - "'.elapsed' may only be accessed after the response " - "has been read or closed." - ) - return self._elapsed - - @elapsed.setter - def elapsed(self, elapsed: datetime.timedelta) -> None: - self._elapsed = elapsed - - @property - def request(self) -> Request: - """ - Returns the request instance associated to the current response. - """ - if self._request is None: - raise RuntimeError( - "The request instance has not been set on this response." - ) - return self._request - - @request.setter - def request(self, value: Request) -> None: - self._request = value - - @property - def http_version(self) -> str: - try: - http_version: bytes = self.extensions["http_version"] - except KeyError: - return "HTTP/1.1" - else: - return http_version.decode("ascii", errors="ignore") - - @property - def reason_phrase(self) -> str: - try: - reason_phrase: bytes = self.extensions["reason_phrase"] - except KeyError: - return codes.get_reason_phrase(self.status_code) - else: - return reason_phrase.decode("ascii", errors="ignore") - - @property - def url(self) -> URL: - """ - Returns the URL for which the request was made. - """ - return self.request.url - - @property - def content(self) -> bytes: - if not hasattr(self, "_content"): - raise ResponseNotRead() - return self._content - - @property - def text(self) -> str: - if not hasattr(self, "_text"): - content = self.content - if not content: - self._text = "" - else: - decoder = TextDecoder(encoding=self.encoding or "utf-8") - self._text = "".join([decoder.decode(self.content), decoder.flush()]) - return self._text - - @property - def encoding(self) -> str | None: - """ - Return an encoding to use for decoding the byte content into text. - The priority for determining this is given by... - - * `.encoding = <>` has been set explicitly. - * The encoding as specified by the charset parameter in the Content-Type header. - * The encoding as determined by `default_encoding`, which may either be - a string like "utf-8" indicating the encoding to use, or may be a callable - which enables charset autodetection. - """ - if not hasattr(self, "_encoding"): - encoding = self.charset_encoding - if encoding is None or not _is_known_encoding(encoding): - if isinstance(self.default_encoding, str): - encoding = self.default_encoding - elif hasattr(self, "_content"): - encoding = self.default_encoding(self._content) - self._encoding = encoding or "utf-8" - return self._encoding - - @encoding.setter - def encoding(self, value: str) -> None: - """ - Set the encoding to use for decoding the byte content into text. - - If the `text` attribute has been accessed, attempting to set the - encoding will throw a ValueError. - """ - if hasattr(self, "_text"): - raise ValueError( - "Setting encoding after `text` has been accessed is not allowed." - ) - self._encoding = value - - @property - def charset_encoding(self) -> str | None: - """ - Return the encoding, as specified by the Content-Type header. - """ - content_type = self.headers.get("Content-Type") - if content_type is None: - return None - - return _parse_content_type_charset(content_type) - - def _get_content_decoder(self) -> ContentDecoder: - """ - Returns a decoder instance which can be used to decode the raw byte - content, depending on the Content-Encoding used in the response. - """ - if not hasattr(self, "_decoder"): - decoders: list[ContentDecoder] = [] - values = self.headers.get_list("content-encoding", split_commas=True) - for value in values: - value = value.strip().lower() - try: - decoder_cls = SUPPORTED_DECODERS[value] - decoders.append(decoder_cls()) - except KeyError: - continue - - if len(decoders) == 1: - self._decoder = decoders[0] - elif len(decoders) > 1: - self._decoder = MultiDecoder(children=decoders) - else: - self._decoder = IdentityDecoder() - - return self._decoder - - @property - def is_informational(self) -> bool: - """ - A property which is `True` for 1xx status codes, `False` otherwise. - """ - return codes.is_informational(self.status_code) - - @property - def is_success(self) -> bool: - """ - A property which is `True` for 2xx status codes, `False` otherwise. - """ - return codes.is_success(self.status_code) - - @property - def is_redirect(self) -> bool: - """ - A property which is `True` for 3xx status codes, `False` otherwise. - - Note that not all responses with a 3xx status code indicate a URL redirect. - - Use `response.has_redirect_location` to determine responses with a properly - formed URL redirection. - """ - return codes.is_redirect(self.status_code) - - @property - def is_client_error(self) -> bool: - """ - A property which is `True` for 4xx status codes, `False` otherwise. - """ - return codes.is_client_error(self.status_code) - - @property - def is_server_error(self) -> bool: - """ - A property which is `True` for 5xx status codes, `False` otherwise. - """ - return codes.is_server_error(self.status_code) - - @property - def is_error(self) -> bool: - """ - A property which is `True` for 4xx and 5xx status codes, `False` otherwise. - """ - return codes.is_error(self.status_code) - - @property - def has_redirect_location(self) -> bool: - """ - Returns True for 3xx responses with a properly formed URL redirection, - `False` otherwise. - """ - return ( - self.status_code - in ( - # 301 (Cacheable redirect. Method may change to GET.) - codes.MOVED_PERMANENTLY, - # 302 (Uncacheable redirect. Method may change to GET.) - codes.FOUND, - # 303 (Client should make a GET or HEAD request.) - codes.SEE_OTHER, - # 307 (Equiv. 302, but retain method) - codes.TEMPORARY_REDIRECT, - # 308 (Equiv. 301, but retain method) - codes.PERMANENT_REDIRECT, - ) - and "Location" in self.headers - ) - - def raise_for_status(self) -> Response: - """ - Raise the `HTTPStatusError` if one occurred. - """ - request = self._request - if request is None: - raise RuntimeError( - "Cannot call `raise_for_status` as the request " - "instance has not been set on this response." - ) - - if self.is_success: - return self - - if self.has_redirect_location: - message = ( - "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n" - "Redirect location: '{0.headers[location]}'\n" - "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}" - ) - else: - message = ( - "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n" - "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}" - ) - - status_class = self.status_code // 100 - error_types = { - 1: "Informational response", - 3: "Redirect response", - 4: "Client error", - 5: "Server error", - } - error_type = error_types.get(status_class, "Invalid status code") - message = message.format(self, error_type=error_type) - raise HTTPStatusError(message, request=request, response=self) - - def json(self, **kwargs: typing.Any) -> typing.Any: - return jsonlib.loads(self.content, **kwargs) - - @property - def cookies(self) -> Cookies: - if not hasattr(self, "_cookies"): - self._cookies = Cookies() - self._cookies.extract_cookies(self) - return self._cookies - - @property - def links(self) -> dict[str | None, dict[str, str]]: - """ - Returns the parsed header links of the response, if any - """ - header = self.headers.get("link") - if header is None: - return {} - - return { - (link.get("rel") or link.get("url")): link - for link in _parse_header_links(header) - } - - @property - def num_bytes_downloaded(self) -> int: - return self._num_bytes_downloaded - - def __repr__(self) -> str: - return f"" - - def __getstate__(self) -> dict[str, typing.Any]: - return { - name: value - for name, value in self.__dict__.items() - if name not in ["extensions", "stream", "is_closed", "_decoder"] - } - - def __setstate__(self, state: dict[str, typing.Any]) -> None: - for name, value in state.items(): - setattr(self, name, value) - self.is_closed = True - self.extensions = {} - self.stream = UnattachedStream() - - def read(self) -> bytes: - """ - Read and return the response content. - """ - if not hasattr(self, "_content"): - self._content = b"".join(self.iter_bytes()) - return self._content - - def iter_bytes(self, chunk_size: int | None = None) -> typing.Iterator[bytes]: - """ - A byte-iterator over the decoded response content. - This allows us to handle gzip, deflate, brotli, and zstd encoded responses. - """ - if hasattr(self, "_content"): - chunk_size = len(self._content) if chunk_size is None else chunk_size - for i in range(0, len(self._content), max(chunk_size, 1)): - yield self._content[i : i + chunk_size] - else: - decoder = self._get_content_decoder() - chunker = ByteChunker(chunk_size=chunk_size) - with request_context(request=self._request): - for raw_bytes in self.iter_raw(): - decoded = decoder.decode(raw_bytes) - for chunk in chunker.decode(decoded): - yield chunk - decoded = decoder.flush() - for chunk in chunker.decode(decoded): - yield chunk # pragma: no cover - for chunk in chunker.flush(): - yield chunk - - def iter_text(self, chunk_size: int | None = None) -> typing.Iterator[str]: - """ - A str-iterator over the decoded response content - that handles both gzip, deflate, etc but also detects the content's - string encoding. - """ - decoder = TextDecoder(encoding=self.encoding or "utf-8") - chunker = TextChunker(chunk_size=chunk_size) - with request_context(request=self._request): - for byte_content in self.iter_bytes(): - text_content = decoder.decode(byte_content) - for chunk in chunker.decode(text_content): - yield chunk - text_content = decoder.flush() - for chunk in chunker.decode(text_content): - yield chunk # pragma: no cover - for chunk in chunker.flush(): - yield chunk - - def iter_lines(self) -> typing.Iterator[str]: - decoder = LineDecoder() - with request_context(request=self._request): - for text in self.iter_text(): - for line in decoder.decode(text): - yield line - for line in decoder.flush(): - yield line - - def iter_raw(self, chunk_size: int | None = None) -> typing.Iterator[bytes]: - """ - A byte-iterator over the raw response content. - """ - if self.is_stream_consumed: - raise StreamConsumed() - if self.is_closed: - raise StreamClosed() - if not isinstance(self.stream, SyncByteStream): - raise RuntimeError("Attempted to call a sync iterator on an async stream.") - - self.is_stream_consumed = True - self._num_bytes_downloaded = 0 - chunker = ByteChunker(chunk_size=chunk_size) - - with request_context(request=self._request): - for raw_stream_bytes in self.stream: - self._num_bytes_downloaded += len(raw_stream_bytes) - for chunk in chunker.decode(raw_stream_bytes): - yield chunk - - for chunk in chunker.flush(): - yield chunk - - self.close() - - def close(self) -> None: - """ - Close the response and release the connection. - Automatically called if the response body is read to completion. - """ - if not isinstance(self.stream, SyncByteStream): - raise RuntimeError("Attempted to call an sync close on an async stream.") - - if not self.is_closed: - self.is_closed = True - with request_context(request=self._request): - self.stream.close() - - async def aread(self) -> bytes: - """ - Read and return the response content. - """ - if not hasattr(self, "_content"): - self._content = b"".join([part async for part in self.aiter_bytes()]) - return self._content - - async def aiter_bytes( - self, chunk_size: int | None = None - ) -> typing.AsyncIterator[bytes]: - """ - A byte-iterator over the decoded response content. - This allows us to handle gzip, deflate, brotli, and zstd encoded responses. - """ - if hasattr(self, "_content"): - chunk_size = len(self._content) if chunk_size is None else chunk_size - for i in range(0, len(self._content), max(chunk_size, 1)): - yield self._content[i : i + chunk_size] - else: - decoder = self._get_content_decoder() - chunker = ByteChunker(chunk_size=chunk_size) - with request_context(request=self._request): - async for raw_bytes in self.aiter_raw(): - decoded = decoder.decode(raw_bytes) - for chunk in chunker.decode(decoded): - yield chunk - decoded = decoder.flush() - for chunk in chunker.decode(decoded): - yield chunk # pragma: no cover - for chunk in chunker.flush(): - yield chunk - - async def aiter_text( - self, chunk_size: int | None = None - ) -> typing.AsyncIterator[str]: - """ - A str-iterator over the decoded response content - that handles both gzip, deflate, etc but also detects the content's - string encoding. - """ - decoder = TextDecoder(encoding=self.encoding or "utf-8") - chunker = TextChunker(chunk_size=chunk_size) - with request_context(request=self._request): - async for byte_content in self.aiter_bytes(): - text_content = decoder.decode(byte_content) - for chunk in chunker.decode(text_content): - yield chunk - text_content = decoder.flush() - for chunk in chunker.decode(text_content): - yield chunk # pragma: no cover - for chunk in chunker.flush(): - yield chunk - - async def aiter_lines(self) -> typing.AsyncIterator[str]: - decoder = LineDecoder() - with request_context(request=self._request): - async for text in self.aiter_text(): - for line in decoder.decode(text): - yield line - for line in decoder.flush(): - yield line - - async def aiter_raw( - self, chunk_size: int | None = None - ) -> typing.AsyncIterator[bytes]: - """ - A byte-iterator over the raw response content. - """ - if self.is_stream_consumed: - raise StreamConsumed() - if self.is_closed: - raise StreamClosed() - if not isinstance(self.stream, AsyncByteStream): - raise RuntimeError("Attempted to call an async iterator on an sync stream.") - - self.is_stream_consumed = True - self._num_bytes_downloaded = 0 - chunker = ByteChunker(chunk_size=chunk_size) - - with request_context(request=self._request): - async for raw_stream_bytes in self.stream: - self._num_bytes_downloaded += len(raw_stream_bytes) - for chunk in chunker.decode(raw_stream_bytes): - yield chunk - - for chunk in chunker.flush(): - yield chunk - - await self.aclose() - - async def aclose(self) -> None: - """ - Close the response and release the connection. - Automatically called if the response body is read to completion. - """ - if not isinstance(self.stream, AsyncByteStream): - raise RuntimeError("Attempted to call an async close on an sync stream.") - - if not self.is_closed: - self.is_closed = True - with request_context(request=self._request): - await self.stream.aclose() - - -class Cookies(typing.MutableMapping[str, str]): - """ - HTTP Cookies, as a mutable mapping. - """ - - def __init__(self, cookies: CookieTypes | None = None) -> None: - if cookies is None or isinstance(cookies, dict): - self.jar = CookieJar() - if isinstance(cookies, dict): - for key, value in cookies.items(): - self.set(key, value) - elif isinstance(cookies, list): - self.jar = CookieJar() - for key, value in cookies: - self.set(key, value) - elif isinstance(cookies, Cookies): - self.jar = CookieJar() - for cookie in cookies.jar: - self.jar.set_cookie(cookie) - else: - self.jar = cookies - - def extract_cookies(self, response: Response) -> None: - """ - Loads any cookies based on the response `Set-Cookie` headers. - """ - urllib_response = self._CookieCompatResponse(response) - urllib_request = self._CookieCompatRequest(response.request) - - self.jar.extract_cookies(urllib_response, urllib_request) # type: ignore - - def set_cookie_header(self, request: Request) -> None: - """ - Sets an appropriate 'Cookie:' HTTP header on the `Request`. - """ - urllib_request = self._CookieCompatRequest(request) - self.jar.add_cookie_header(urllib_request) - - def set(self, name: str, value: str, domain: str = "", path: str = "/") -> None: - """ - Set a cookie value by name. May optionally include domain and path. - """ - kwargs = { - "version": 0, - "name": name, - "value": value, - "port": None, - "port_specified": False, - "domain": domain, - "domain_specified": bool(domain), - "domain_initial_dot": domain.startswith("."), - "path": path, - "path_specified": bool(path), - "secure": False, - "expires": None, - "discard": True, - "comment": None, - "comment_url": None, - "rest": {"HttpOnly": None}, - "rfc2109": False, - } - cookie = Cookie(**kwargs) # type: ignore - self.jar.set_cookie(cookie) - - def get( # type: ignore - self, - name: str, - default: str | None = None, - domain: str | None = None, - path: str | None = None, - ) -> str | None: - """ - Get a cookie by name. May optionally include domain and path - in order to specify exactly which cookie to retrieve. - """ - value = None - for cookie in self.jar: - if cookie.name == name: - if domain is None or cookie.domain == domain: - if path is None or cookie.path == path: - if value is not None: - message = f"Multiple cookies exist with name={name}" - raise CookieConflict(message) - value = cookie.value - - if value is None: - return default - return value - - def delete( - self, - name: str, - domain: str | None = None, - path: str | None = None, - ) -> None: - """ - Delete a cookie by name. May optionally include domain and path - in order to specify exactly which cookie to delete. - """ - if domain is not None and path is not None: - return self.jar.clear(domain, path, name) - - remove = [ - cookie - for cookie in self.jar - if cookie.name == name - and (domain is None or cookie.domain == domain) - and (path is None or cookie.path == path) - ] - - for cookie in remove: - self.jar.clear(cookie.domain, cookie.path, cookie.name) - - def clear(self, domain: str | None = None, path: str | None = None) -> None: - """ - Delete all cookies. Optionally include a domain and path in - order to only delete a subset of all the cookies. - """ - args = [] - if domain is not None: - args.append(domain) - if path is not None: - assert domain is not None - args.append(path) - self.jar.clear(*args) - - def update(self, cookies: CookieTypes | None = None) -> None: # type: ignore - cookies = Cookies(cookies) - for cookie in cookies.jar: - self.jar.set_cookie(cookie) - - def __setitem__(self, name: str, value: str) -> None: - return self.set(name, value) - - def __getitem__(self, name: str) -> str: - value = self.get(name) - if value is None: - raise KeyError(name) - return value - - def __delitem__(self, name: str) -> None: - return self.delete(name) - - def __len__(self) -> int: - return len(self.jar) - - def __iter__(self) -> typing.Iterator[str]: - return (cookie.name for cookie in self.jar) - - def __bool__(self) -> bool: - for _ in self.jar: - return True - return False - - def __repr__(self) -> str: - cookies_repr = ", ".join( - [ - f"" - for cookie in self.jar - ] - ) - - return f"" - - class _CookieCompatRequest(urllib.request.Request): - """ - Wraps a `Request` instance up in a compatibility interface suitable - for use with `CookieJar` operations. - """ - - def __init__(self, request: Request) -> None: - super().__init__( - url=str(request.url), - headers=dict(request.headers), - method=request.method, - ) - self.request = request - - def add_unredirected_header(self, key: str, value: str) -> None: - super().add_unredirected_header(key, value) - self.request.headers[key] = value - - class _CookieCompatResponse: - """ - Wraps a `Request` instance up in a compatibility interface suitable - for use with `CookieJar` operations. - """ - - def __init__(self, response: Response) -> None: - self.response = response - - def info(self) -> email.message.Message: - info = email.message.Message() - for key, value in self.response.headers.multi_items(): - # Note that setting `info[key]` here is an "append" operation, - # not a "replace" operation. - # https://docs.python.org/3/library/email.compat32-message.html#email.message.Message.__setitem__ - info[key] = value - return info diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_multipart.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_multipart.py deleted file mode 100644 index b4761af9b2cf384de5189269927d781a700dbe46..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_multipart.py +++ /dev/null @@ -1,300 +0,0 @@ -from __future__ import annotations - -import io -import mimetypes -import os -import re -import typing -from pathlib import Path - -from ._types import ( - AsyncByteStream, - FileContent, - FileTypes, - RequestData, - RequestFiles, - SyncByteStream, -) -from ._utils import ( - peek_filelike_length, - primitive_value_to_str, - to_bytes, -) - -_HTML5_FORM_ENCODING_REPLACEMENTS = {'"': "%22", "\\": "\\\\"} -_HTML5_FORM_ENCODING_REPLACEMENTS.update( - {chr(c): "%{:02X}".format(c) for c in range(0x1F + 1) if c != 0x1B} -) -_HTML5_FORM_ENCODING_RE = re.compile( - r"|".join([re.escape(c) for c in _HTML5_FORM_ENCODING_REPLACEMENTS.keys()]) -) - - -def _format_form_param(name: str, value: str) -> bytes: - """ - Encode a name/value pair within a multipart form. - """ - - def replacer(match: typing.Match[str]) -> str: - return _HTML5_FORM_ENCODING_REPLACEMENTS[match.group(0)] - - value = _HTML5_FORM_ENCODING_RE.sub(replacer, value) - return f'{name}="{value}"'.encode() - - -def _guess_content_type(filename: str | None) -> str | None: - """ - Guesses the mimetype based on a filename. Defaults to `application/octet-stream`. - - Returns `None` if `filename` is `None` or empty. - """ - if filename: - return mimetypes.guess_type(filename)[0] or "application/octet-stream" - return None - - -def get_multipart_boundary_from_content_type( - content_type: bytes | None, -) -> bytes | None: - if not content_type or not content_type.startswith(b"multipart/form-data"): - return None - # parse boundary according to - # https://www.rfc-editor.org/rfc/rfc2046#section-5.1.1 - if b";" in content_type: - for section in content_type.split(b";"): - if section.strip().lower().startswith(b"boundary="): - return section.strip()[len(b"boundary=") :].strip(b'"') - return None - - -class DataField: - """ - A single form field item, within a multipart form field. - """ - - def __init__(self, name: str, value: str | bytes | int | float | None) -> None: - if not isinstance(name, str): - raise TypeError( - f"Invalid type for name. Expected str, got {type(name)}: {name!r}" - ) - if value is not None and not isinstance(value, (str, bytes, int, float)): - raise TypeError( - "Invalid type for value. Expected primitive type," - f" got {type(value)}: {value!r}" - ) - self.name = name - self.value: str | bytes = ( - value if isinstance(value, bytes) else primitive_value_to_str(value) - ) - - def render_headers(self) -> bytes: - if not hasattr(self, "_headers"): - name = _format_form_param("name", self.name) - self._headers = b"".join( - [b"Content-Disposition: form-data; ", name, b"\r\n\r\n"] - ) - - return self._headers - - def render_data(self) -> bytes: - if not hasattr(self, "_data"): - self._data = to_bytes(self.value) - - return self._data - - def get_length(self) -> int: - headers = self.render_headers() - data = self.render_data() - return len(headers) + len(data) - - def render(self) -> typing.Iterator[bytes]: - yield self.render_headers() - yield self.render_data() - - -class FileField: - """ - A single file field item, within a multipart form field. - """ - - CHUNK_SIZE = 64 * 1024 - - def __init__(self, name: str, value: FileTypes) -> None: - self.name = name - - fileobj: FileContent - - headers: dict[str, str] = {} - content_type: str | None = None - - # This large tuple based API largely mirror's requests' API - # It would be good to think of better APIs for this that we could - # include in httpx 2.0 since variable length tuples(especially of 4 elements) - # are quite unwieldly - if isinstance(value, tuple): - if len(value) == 2: - # neither the 3rd parameter (content_type) nor the 4th (headers) - # was included - filename, fileobj = value - elif len(value) == 3: - filename, fileobj, content_type = value - else: - # all 4 parameters included - filename, fileobj, content_type, headers = value # type: ignore - else: - filename = Path(str(getattr(value, "name", "upload"))).name - fileobj = value - - if content_type is None: - content_type = _guess_content_type(filename) - - has_content_type_header = any("content-type" in key.lower() for key in headers) - if content_type is not None and not has_content_type_header: - # note that unlike requests, we ignore the content_type provided in the 3rd - # tuple element if it is also included in the headers requests does - # the opposite (it overwrites the headerwith the 3rd tuple element) - headers["Content-Type"] = content_type - - if isinstance(fileobj, io.StringIO): - raise TypeError( - "Multipart file uploads require 'io.BytesIO', not 'io.StringIO'." - ) - if isinstance(fileobj, io.TextIOBase): - raise TypeError( - "Multipart file uploads must be opened in binary mode, not text mode." - ) - - self.filename = filename - self.file = fileobj - self.headers = headers - - def get_length(self) -> int | None: - headers = self.render_headers() - - if isinstance(self.file, (str, bytes)): - return len(headers) + len(to_bytes(self.file)) - - file_length = peek_filelike_length(self.file) - - # If we can't determine the filesize without reading it into memory, - # then return `None` here, to indicate an unknown file length. - if file_length is None: - return None - - return len(headers) + file_length - - def render_headers(self) -> bytes: - if not hasattr(self, "_headers"): - parts = [ - b"Content-Disposition: form-data; ", - _format_form_param("name", self.name), - ] - if self.filename: - filename = _format_form_param("filename", self.filename) - parts.extend([b"; ", filename]) - for header_name, header_value in self.headers.items(): - key, val = f"\r\n{header_name}: ".encode(), header_value.encode() - parts.extend([key, val]) - parts.append(b"\r\n\r\n") - self._headers = b"".join(parts) - - return self._headers - - def render_data(self) -> typing.Iterator[bytes]: - if isinstance(self.file, (str, bytes)): - yield to_bytes(self.file) - return - - if hasattr(self.file, "seek"): - try: - self.file.seek(0) - except io.UnsupportedOperation: - pass - - chunk = self.file.read(self.CHUNK_SIZE) - while chunk: - yield to_bytes(chunk) - chunk = self.file.read(self.CHUNK_SIZE) - - def render(self) -> typing.Iterator[bytes]: - yield self.render_headers() - yield from self.render_data() - - -class MultipartStream(SyncByteStream, AsyncByteStream): - """ - Request content as streaming multipart encoded form data. - """ - - def __init__( - self, - data: RequestData, - files: RequestFiles, - boundary: bytes | None = None, - ) -> None: - if boundary is None: - boundary = os.urandom(16).hex().encode("ascii") - - self.boundary = boundary - self.content_type = "multipart/form-data; boundary=%s" % boundary.decode( - "ascii" - ) - self.fields = list(self._iter_fields(data, files)) - - def _iter_fields( - self, data: RequestData, files: RequestFiles - ) -> typing.Iterator[FileField | DataField]: - for name, value in data.items(): - if isinstance(value, (tuple, list)): - for item in value: - yield DataField(name=name, value=item) - else: - yield DataField(name=name, value=value) - - file_items = files.items() if isinstance(files, typing.Mapping) else files - for name, value in file_items: - yield FileField(name=name, value=value) - - def iter_chunks(self) -> typing.Iterator[bytes]: - for field in self.fields: - yield b"--%s\r\n" % self.boundary - yield from field.render() - yield b"\r\n" - yield b"--%s--\r\n" % self.boundary - - def get_content_length(self) -> int | None: - """ - Return the length of the multipart encoded content, or `None` if - any of the files have a length that cannot be determined upfront. - """ - boundary_length = len(self.boundary) - length = 0 - - for field in self.fields: - field_length = field.get_length() - if field_length is None: - return None - - length += 2 + boundary_length + 2 # b"--{boundary}\r\n" - length += field_length - length += 2 # b"\r\n" - - length += 2 + boundary_length + 4 # b"--{boundary}--\r\n" - return length - - # Content stream interface. - - def get_headers(self) -> dict[str, str]: - content_length = self.get_content_length() - content_type = self.content_type - if content_length is None: - return {"Transfer-Encoding": "chunked", "Content-Type": content_type} - return {"Content-Length": str(content_length), "Content-Type": content_type} - - def __iter__(self) -> typing.Iterator[bytes]: - for chunk in self.iter_chunks(): - yield chunk - - async def __aiter__(self) -> typing.AsyncIterator[bytes]: - for chunk in self.iter_chunks(): - yield chunk diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_status_codes.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_status_codes.py deleted file mode 100644 index 133a6231a5b53fd2f073799ca1bd07c50abe40ae..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_status_codes.py +++ /dev/null @@ -1,162 +0,0 @@ -from __future__ import annotations - -from enum import IntEnum - -__all__ = ["codes"] - - -class codes(IntEnum): - """HTTP status codes and reason phrases - - Status codes from the following RFCs are all observed: - - * RFC 7231: Hypertext Transfer Protocol (HTTP/1.1), obsoletes 2616 - * RFC 6585: Additional HTTP Status Codes - * RFC 3229: Delta encoding in HTTP - * RFC 4918: HTTP Extensions for WebDAV, obsoletes 2518 - * RFC 5842: Binding Extensions to WebDAV - * RFC 7238: Permanent Redirect - * RFC 2295: Transparent Content Negotiation in HTTP - * RFC 2774: An HTTP Extension Framework - * RFC 7540: Hypertext Transfer Protocol Version 2 (HTTP/2) - * RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) - * RFC 7725: An HTTP Status Code to Report Legal Obstacles - * RFC 8297: An HTTP Status Code for Indicating Hints - * RFC 8470: Using Early Data in HTTP - """ - - def __new__(cls, value: int, phrase: str = "") -> codes: - obj = int.__new__(cls, value) - obj._value_ = value - - obj.phrase = phrase # type: ignore[attr-defined] - return obj - - def __str__(self) -> str: - return str(self.value) - - @classmethod - def get_reason_phrase(cls, value: int) -> str: - try: - return codes(value).phrase # type: ignore - except ValueError: - return "" - - @classmethod - def is_informational(cls, value: int) -> bool: - """ - Returns `True` for 1xx status codes, `False` otherwise. - """ - return 100 <= value <= 199 - - @classmethod - def is_success(cls, value: int) -> bool: - """ - Returns `True` for 2xx status codes, `False` otherwise. - """ - return 200 <= value <= 299 - - @classmethod - def is_redirect(cls, value: int) -> bool: - """ - Returns `True` for 3xx status codes, `False` otherwise. - """ - return 300 <= value <= 399 - - @classmethod - def is_client_error(cls, value: int) -> bool: - """ - Returns `True` for 4xx status codes, `False` otherwise. - """ - return 400 <= value <= 499 - - @classmethod - def is_server_error(cls, value: int) -> bool: - """ - Returns `True` for 5xx status codes, `False` otherwise. - """ - return 500 <= value <= 599 - - @classmethod - def is_error(cls, value: int) -> bool: - """ - Returns `True` for 4xx or 5xx status codes, `False` otherwise. - """ - return 400 <= value <= 599 - - # informational - CONTINUE = 100, "Continue" - SWITCHING_PROTOCOLS = 101, "Switching Protocols" - PROCESSING = 102, "Processing" - EARLY_HINTS = 103, "Early Hints" - - # success - OK = 200, "OK" - CREATED = 201, "Created" - ACCEPTED = 202, "Accepted" - NON_AUTHORITATIVE_INFORMATION = 203, "Non-Authoritative Information" - NO_CONTENT = 204, "No Content" - RESET_CONTENT = 205, "Reset Content" - PARTIAL_CONTENT = 206, "Partial Content" - MULTI_STATUS = 207, "Multi-Status" - ALREADY_REPORTED = 208, "Already Reported" - IM_USED = 226, "IM Used" - - # redirection - MULTIPLE_CHOICES = 300, "Multiple Choices" - MOVED_PERMANENTLY = 301, "Moved Permanently" - FOUND = 302, "Found" - SEE_OTHER = 303, "See Other" - NOT_MODIFIED = 304, "Not Modified" - USE_PROXY = 305, "Use Proxy" - TEMPORARY_REDIRECT = 307, "Temporary Redirect" - PERMANENT_REDIRECT = 308, "Permanent Redirect" - - # client error - BAD_REQUEST = 400, "Bad Request" - UNAUTHORIZED = 401, "Unauthorized" - PAYMENT_REQUIRED = 402, "Payment Required" - FORBIDDEN = 403, "Forbidden" - NOT_FOUND = 404, "Not Found" - METHOD_NOT_ALLOWED = 405, "Method Not Allowed" - NOT_ACCEPTABLE = 406, "Not Acceptable" - PROXY_AUTHENTICATION_REQUIRED = 407, "Proxy Authentication Required" - REQUEST_TIMEOUT = 408, "Request Timeout" - CONFLICT = 409, "Conflict" - GONE = 410, "Gone" - LENGTH_REQUIRED = 411, "Length Required" - PRECONDITION_FAILED = 412, "Precondition Failed" - REQUEST_ENTITY_TOO_LARGE = 413, "Request Entity Too Large" - REQUEST_URI_TOO_LONG = 414, "Request-URI Too Long" - UNSUPPORTED_MEDIA_TYPE = 415, "Unsupported Media Type" - REQUESTED_RANGE_NOT_SATISFIABLE = 416, "Requested Range Not Satisfiable" - EXPECTATION_FAILED = 417, "Expectation Failed" - IM_A_TEAPOT = 418, "I'm a teapot" - MISDIRECTED_REQUEST = 421, "Misdirected Request" - UNPROCESSABLE_ENTITY = 422, "Unprocessable Entity" - LOCKED = 423, "Locked" - FAILED_DEPENDENCY = 424, "Failed Dependency" - TOO_EARLY = 425, "Too Early" - UPGRADE_REQUIRED = 426, "Upgrade Required" - PRECONDITION_REQUIRED = 428, "Precondition Required" - TOO_MANY_REQUESTS = 429, "Too Many Requests" - REQUEST_HEADER_FIELDS_TOO_LARGE = 431, "Request Header Fields Too Large" - UNAVAILABLE_FOR_LEGAL_REASONS = 451, "Unavailable For Legal Reasons" - - # server errors - INTERNAL_SERVER_ERROR = 500, "Internal Server Error" - NOT_IMPLEMENTED = 501, "Not Implemented" - BAD_GATEWAY = 502, "Bad Gateway" - SERVICE_UNAVAILABLE = 503, "Service Unavailable" - GATEWAY_TIMEOUT = 504, "Gateway Timeout" - HTTP_VERSION_NOT_SUPPORTED = 505, "HTTP Version Not Supported" - VARIANT_ALSO_NEGOTIATES = 506, "Variant Also Negotiates" - INSUFFICIENT_STORAGE = 507, "Insufficient Storage" - LOOP_DETECTED = 508, "Loop Detected" - NOT_EXTENDED = 510, "Not Extended" - NETWORK_AUTHENTICATION_REQUIRED = 511, "Network Authentication Required" - - -# Include lower-case styles for `requests` compatibility. -for code in codes: - setattr(codes, code._name_.lower(), int(code)) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__init__.py deleted file mode 100644 index 7a321053b29bcd48698cf2bd74a1d19c8556aefb..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from .asgi import * -from .base import * -from .default import * -from .mock import * -from .wsgi import * - -__all__ = [ - "ASGITransport", - "AsyncBaseTransport", - "BaseTransport", - "AsyncHTTPTransport", - "HTTPTransport", - "MockTransport", - "WSGITransport", -] diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 183d47797532e17d99c4ffff3983e0cdd16673fa..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/asgi.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/asgi.cpython-310.pyc deleted file mode 100644 index e067c212d3e25a22ba81dc9a30b6979893546054..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/asgi.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/base.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/base.cpython-310.pyc deleted file mode 100644 index 8b4725217894916b5061c3923724b84e0c860939..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/base.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/default.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/default.cpython-310.pyc deleted file mode 100644 index cc66396c97dfda3ae425fc87e1df823b5564778b..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/default.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/mock.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/mock.cpython-310.pyc deleted file mode 100644 index 53d51b5b880eccc3af001786105a36e85ebc730c..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/mock.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/wsgi.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/wsgi.cpython-310.pyc deleted file mode 100644 index fc35dcc00c8a1869097b9a27a6bd7fc81e31606e..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/__pycache__/wsgi.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/asgi.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/asgi.py deleted file mode 100644 index 2bc4efae0e1b14620f75f712eb15ecf500d14eef..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/asgi.py +++ /dev/null @@ -1,187 +0,0 @@ -from __future__ import annotations - -import typing - -from .._models import Request, Response -from .._types import AsyncByteStream -from .base import AsyncBaseTransport - -if typing.TYPE_CHECKING: # pragma: no cover - import asyncio - - import trio - - Event = typing.Union[asyncio.Event, trio.Event] - - -_Message = typing.MutableMapping[str, typing.Any] -_Receive = typing.Callable[[], typing.Awaitable[_Message]] -_Send = typing.Callable[ - [typing.MutableMapping[str, typing.Any]], typing.Awaitable[None] -] -_ASGIApp = typing.Callable[ - [typing.MutableMapping[str, typing.Any], _Receive, _Send], typing.Awaitable[None] -] - -__all__ = ["ASGITransport"] - - -def is_running_trio() -> bool: - try: - # sniffio is a dependency of trio. - - # See https://github.com/python-trio/trio/issues/2802 - import sniffio - - if sniffio.current_async_library() == "trio": - return True - except ImportError: # pragma: nocover - pass - - return False - - -def create_event() -> Event: - if is_running_trio(): - import trio - - return trio.Event() - - import asyncio - - return asyncio.Event() - - -class ASGIResponseStream(AsyncByteStream): - def __init__(self, body: list[bytes]) -> None: - self._body = body - - async def __aiter__(self) -> typing.AsyncIterator[bytes]: - yield b"".join(self._body) - - -class ASGITransport(AsyncBaseTransport): - """ - A custom AsyncTransport that handles sending requests directly to an ASGI app. - - ```python - transport = httpx.ASGITransport( - app=app, - root_path="/submount", - client=("1.2.3.4", 123) - ) - client = httpx.AsyncClient(transport=transport) - ``` - - Arguments: - - * `app` - The ASGI application. - * `raise_app_exceptions` - Boolean indicating if exceptions in the application - should be raised. Default to `True`. Can be set to `False` for use cases - such as testing the content of a client 500 response. - * `root_path` - The root path on which the ASGI application should be mounted. - * `client` - A two-tuple indicating the client IP and port of incoming requests. - ``` - """ - - def __init__( - self, - app: _ASGIApp, - raise_app_exceptions: bool = True, - root_path: str = "", - client: tuple[str, int] = ("127.0.0.1", 123), - ) -> None: - self.app = app - self.raise_app_exceptions = raise_app_exceptions - self.root_path = root_path - self.client = client - - async def handle_async_request( - self, - request: Request, - ) -> Response: - assert isinstance(request.stream, AsyncByteStream) - - # ASGI scope. - scope = { - "type": "http", - "asgi": {"version": "3.0"}, - "http_version": "1.1", - "method": request.method, - "headers": [(k.lower(), v) for (k, v) in request.headers.raw], - "scheme": request.url.scheme, - "path": request.url.path, - "raw_path": request.url.raw_path.split(b"?")[0], - "query_string": request.url.query, - "server": (request.url.host, request.url.port), - "client": self.client, - "root_path": self.root_path, - } - - # Request. - request_body_chunks = request.stream.__aiter__() - request_complete = False - - # Response. - status_code = None - response_headers = None - body_parts = [] - response_started = False - response_complete = create_event() - - # ASGI callables. - - async def receive() -> dict[str, typing.Any]: - nonlocal request_complete - - if request_complete: - await response_complete.wait() - return {"type": "http.disconnect"} - - try: - body = await request_body_chunks.__anext__() - except StopAsyncIteration: - request_complete = True - return {"type": "http.request", "body": b"", "more_body": False} - return {"type": "http.request", "body": body, "more_body": True} - - async def send(message: typing.MutableMapping[str, typing.Any]) -> None: - nonlocal status_code, response_headers, response_started - - if message["type"] == "http.response.start": - assert not response_started - - status_code = message["status"] - response_headers = message.get("headers", []) - response_started = True - - elif message["type"] == "http.response.body": - assert not response_complete.is_set() - body = message.get("body", b"") - more_body = message.get("more_body", False) - - if body and request.method != "HEAD": - body_parts.append(body) - - if not more_body: - response_complete.set() - - try: - await self.app(scope, receive, send) - except Exception: # noqa: PIE-786 - if self.raise_app_exceptions: - raise - - response_complete.set() - if status_code is None: - status_code = 500 - if response_headers is None: - response_headers = {} - - assert response_complete.is_set() - assert status_code is not None - assert response_headers is not None - - stream = ASGIResponseStream(body_parts) - - return Response(status_code, headers=response_headers, stream=stream) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/base.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/base.py deleted file mode 100644 index 66fd99d702480b555c06694fe14715ea6df3dfc3..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/base.py +++ /dev/null @@ -1,86 +0,0 @@ -from __future__ import annotations - -import typing -from types import TracebackType - -from .._models import Request, Response - -T = typing.TypeVar("T", bound="BaseTransport") -A = typing.TypeVar("A", bound="AsyncBaseTransport") - -__all__ = ["AsyncBaseTransport", "BaseTransport"] - - -class BaseTransport: - def __enter__(self: T) -> T: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None = None, - exc_value: BaseException | None = None, - traceback: TracebackType | None = None, - ) -> None: - self.close() - - def handle_request(self, request: Request) -> Response: - """ - Send a single HTTP request and return a response. - - Developers shouldn't typically ever need to call into this API directly, - since the Client class provides all the higher level user-facing API - niceties. - - In order to properly release any network resources, the response - stream should *either* be consumed immediately, with a call to - `response.stream.read()`, or else the `handle_request` call should - be followed with a try/finally block to ensuring the stream is - always closed. - - Example usage: - - with httpx.HTTPTransport() as transport: - req = httpx.Request( - method=b"GET", - url=(b"https", b"www.example.com", 443, b"/"), - headers=[(b"Host", b"www.example.com")], - ) - resp = transport.handle_request(req) - body = resp.stream.read() - print(resp.status_code, resp.headers, body) - - - Takes a `Request` instance as the only argument. - - Returns a `Response` instance. - """ - raise NotImplementedError( - "The 'handle_request' method must be implemented." - ) # pragma: no cover - - def close(self) -> None: - pass - - -class AsyncBaseTransport: - async def __aenter__(self: A) -> A: - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None = None, - exc_value: BaseException | None = None, - traceback: TracebackType | None = None, - ) -> None: - await self.aclose() - - async def handle_async_request( - self, - request: Request, - ) -> Response: - raise NotImplementedError( - "The 'handle_async_request' method must be implemented." - ) # pragma: no cover - - async def aclose(self) -> None: - pass diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/default.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/default.py deleted file mode 100644 index d5aa05ff234fd3fbf4fee88c4a7d3e3c151a538f..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/default.py +++ /dev/null @@ -1,406 +0,0 @@ -""" -Custom transports, with nicely configured defaults. - -The following additional keyword arguments are currently supported by httpcore... - -* uds: str -* local_address: str -* retries: int - -Example usages... - -# Disable HTTP/2 on a single specific domain. -mounts = { - "all://": httpx.HTTPTransport(http2=True), - "all://*example.org": httpx.HTTPTransport() -} - -# Using advanced httpcore configuration, with connection retries. -transport = httpx.HTTPTransport(retries=1) -client = httpx.Client(transport=transport) - -# Using advanced httpcore configuration, with unix domain sockets. -transport = httpx.HTTPTransport(uds="socket.uds") -client = httpx.Client(transport=transport) -""" - -from __future__ import annotations - -import contextlib -import typing -from types import TracebackType - -if typing.TYPE_CHECKING: - import ssl # pragma: no cover - - import httpx # pragma: no cover - -from .._config import DEFAULT_LIMITS, Limits, Proxy, create_ssl_context -from .._exceptions import ( - ConnectError, - ConnectTimeout, - LocalProtocolError, - NetworkError, - PoolTimeout, - ProtocolError, - ProxyError, - ReadError, - ReadTimeout, - RemoteProtocolError, - TimeoutException, - UnsupportedProtocol, - WriteError, - WriteTimeout, -) -from .._models import Request, Response -from .._types import AsyncByteStream, CertTypes, ProxyTypes, SyncByteStream -from .._urls import URL -from .base import AsyncBaseTransport, BaseTransport - -T = typing.TypeVar("T", bound="HTTPTransport") -A = typing.TypeVar("A", bound="AsyncHTTPTransport") - -SOCKET_OPTION = typing.Union[ - typing.Tuple[int, int, int], - typing.Tuple[int, int, typing.Union[bytes, bytearray]], - typing.Tuple[int, int, None, int], -] - -__all__ = ["AsyncHTTPTransport", "HTTPTransport"] - -HTTPCORE_EXC_MAP: dict[type[Exception], type[httpx.HTTPError]] = {} - - -def _load_httpcore_exceptions() -> dict[type[Exception], type[httpx.HTTPError]]: - import httpcore - - return { - httpcore.TimeoutException: TimeoutException, - httpcore.ConnectTimeout: ConnectTimeout, - httpcore.ReadTimeout: ReadTimeout, - httpcore.WriteTimeout: WriteTimeout, - httpcore.PoolTimeout: PoolTimeout, - httpcore.NetworkError: NetworkError, - httpcore.ConnectError: ConnectError, - httpcore.ReadError: ReadError, - httpcore.WriteError: WriteError, - httpcore.ProxyError: ProxyError, - httpcore.UnsupportedProtocol: UnsupportedProtocol, - httpcore.ProtocolError: ProtocolError, - httpcore.LocalProtocolError: LocalProtocolError, - httpcore.RemoteProtocolError: RemoteProtocolError, - } - - -@contextlib.contextmanager -def map_httpcore_exceptions() -> typing.Iterator[None]: - global HTTPCORE_EXC_MAP - if len(HTTPCORE_EXC_MAP) == 0: - HTTPCORE_EXC_MAP = _load_httpcore_exceptions() - try: - yield - except Exception as exc: - mapped_exc = None - - for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): - if not isinstance(exc, from_exc): - continue - # We want to map to the most specific exception we can find. - # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to - # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. - if mapped_exc is None or issubclass(to_exc, mapped_exc): - mapped_exc = to_exc - - if mapped_exc is None: # pragma: no cover - raise - - message = str(exc) - raise mapped_exc(message) from exc - - -class ResponseStream(SyncByteStream): - def __init__(self, httpcore_stream: typing.Iterable[bytes]) -> None: - self._httpcore_stream = httpcore_stream - - def __iter__(self) -> typing.Iterator[bytes]: - with map_httpcore_exceptions(): - for part in self._httpcore_stream: - yield part - - def close(self) -> None: - if hasattr(self._httpcore_stream, "close"): - self._httpcore_stream.close() - - -class HTTPTransport(BaseTransport): - def __init__( - self, - verify: ssl.SSLContext | str | bool = True, - cert: CertTypes | None = None, - trust_env: bool = True, - http1: bool = True, - http2: bool = False, - limits: Limits = DEFAULT_LIMITS, - proxy: ProxyTypes | None = None, - uds: str | None = None, - local_address: str | None = None, - retries: int = 0, - socket_options: typing.Iterable[SOCKET_OPTION] | None = None, - ) -> None: - import httpcore - - proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy - ssl_context = create_ssl_context(verify=verify, cert=cert, trust_env=trust_env) - - if proxy is None: - self._pool = httpcore.ConnectionPool( - ssl_context=ssl_context, - max_connections=limits.max_connections, - max_keepalive_connections=limits.max_keepalive_connections, - keepalive_expiry=limits.keepalive_expiry, - http1=http1, - http2=http2, - uds=uds, - local_address=local_address, - retries=retries, - socket_options=socket_options, - ) - elif proxy.url.scheme in ("http", "https"): - self._pool = httpcore.HTTPProxy( - proxy_url=httpcore.URL( - scheme=proxy.url.raw_scheme, - host=proxy.url.raw_host, - port=proxy.url.port, - target=proxy.url.raw_path, - ), - proxy_auth=proxy.raw_auth, - proxy_headers=proxy.headers.raw, - ssl_context=ssl_context, - proxy_ssl_context=proxy.ssl_context, - max_connections=limits.max_connections, - max_keepalive_connections=limits.max_keepalive_connections, - keepalive_expiry=limits.keepalive_expiry, - http1=http1, - http2=http2, - socket_options=socket_options, - ) - elif proxy.url.scheme in ("socks5", "socks5h"): - try: - import socksio # noqa - except ImportError: # pragma: no cover - raise ImportError( - "Using SOCKS proxy, but the 'socksio' package is not installed. " - "Make sure to install httpx using `pip install httpx[socks]`." - ) from None - - self._pool = httpcore.SOCKSProxy( - proxy_url=httpcore.URL( - scheme=proxy.url.raw_scheme, - host=proxy.url.raw_host, - port=proxy.url.port, - target=proxy.url.raw_path, - ), - proxy_auth=proxy.raw_auth, - ssl_context=ssl_context, - max_connections=limits.max_connections, - max_keepalive_connections=limits.max_keepalive_connections, - keepalive_expiry=limits.keepalive_expiry, - http1=http1, - http2=http2, - ) - else: # pragma: no cover - raise ValueError( - "Proxy protocol must be either 'http', 'https', 'socks5', or 'socks5h'," - f" but got {proxy.url.scheme!r}." - ) - - def __enter__(self: T) -> T: # Use generics for subclass support. - self._pool.__enter__() - return self - - def __exit__( - self, - exc_type: type[BaseException] | None = None, - exc_value: BaseException | None = None, - traceback: TracebackType | None = None, - ) -> None: - with map_httpcore_exceptions(): - self._pool.__exit__(exc_type, exc_value, traceback) - - def handle_request( - self, - request: Request, - ) -> Response: - assert isinstance(request.stream, SyncByteStream) - import httpcore - - req = httpcore.Request( - method=request.method, - url=httpcore.URL( - scheme=request.url.raw_scheme, - host=request.url.raw_host, - port=request.url.port, - target=request.url.raw_path, - ), - headers=request.headers.raw, - content=request.stream, - extensions=request.extensions, - ) - with map_httpcore_exceptions(): - resp = self._pool.handle_request(req) - - assert isinstance(resp.stream, typing.Iterable) - - return Response( - status_code=resp.status, - headers=resp.headers, - stream=ResponseStream(resp.stream), - extensions=resp.extensions, - ) - - def close(self) -> None: - self._pool.close() - - -class AsyncResponseStream(AsyncByteStream): - def __init__(self, httpcore_stream: typing.AsyncIterable[bytes]) -> None: - self._httpcore_stream = httpcore_stream - - async def __aiter__(self) -> typing.AsyncIterator[bytes]: - with map_httpcore_exceptions(): - async for part in self._httpcore_stream: - yield part - - async def aclose(self) -> None: - if hasattr(self._httpcore_stream, "aclose"): - await self._httpcore_stream.aclose() - - -class AsyncHTTPTransport(AsyncBaseTransport): - def __init__( - self, - verify: ssl.SSLContext | str | bool = True, - cert: CertTypes | None = None, - trust_env: bool = True, - http1: bool = True, - http2: bool = False, - limits: Limits = DEFAULT_LIMITS, - proxy: ProxyTypes | None = None, - uds: str | None = None, - local_address: str | None = None, - retries: int = 0, - socket_options: typing.Iterable[SOCKET_OPTION] | None = None, - ) -> None: - import httpcore - - proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy - ssl_context = create_ssl_context(verify=verify, cert=cert, trust_env=trust_env) - - if proxy is None: - self._pool = httpcore.AsyncConnectionPool( - ssl_context=ssl_context, - max_connections=limits.max_connections, - max_keepalive_connections=limits.max_keepalive_connections, - keepalive_expiry=limits.keepalive_expiry, - http1=http1, - http2=http2, - uds=uds, - local_address=local_address, - retries=retries, - socket_options=socket_options, - ) - elif proxy.url.scheme in ("http", "https"): - self._pool = httpcore.AsyncHTTPProxy( - proxy_url=httpcore.URL( - scheme=proxy.url.raw_scheme, - host=proxy.url.raw_host, - port=proxy.url.port, - target=proxy.url.raw_path, - ), - proxy_auth=proxy.raw_auth, - proxy_headers=proxy.headers.raw, - proxy_ssl_context=proxy.ssl_context, - ssl_context=ssl_context, - max_connections=limits.max_connections, - max_keepalive_connections=limits.max_keepalive_connections, - keepalive_expiry=limits.keepalive_expiry, - http1=http1, - http2=http2, - socket_options=socket_options, - ) - elif proxy.url.scheme in ("socks5", "socks5h"): - try: - import socksio # noqa - except ImportError: # pragma: no cover - raise ImportError( - "Using SOCKS proxy, but the 'socksio' package is not installed. " - "Make sure to install httpx using `pip install httpx[socks]`." - ) from None - - self._pool = httpcore.AsyncSOCKSProxy( - proxy_url=httpcore.URL( - scheme=proxy.url.raw_scheme, - host=proxy.url.raw_host, - port=proxy.url.port, - target=proxy.url.raw_path, - ), - proxy_auth=proxy.raw_auth, - ssl_context=ssl_context, - max_connections=limits.max_connections, - max_keepalive_connections=limits.max_keepalive_connections, - keepalive_expiry=limits.keepalive_expiry, - http1=http1, - http2=http2, - ) - else: # pragma: no cover - raise ValueError( - "Proxy protocol must be either 'http', 'https', 'socks5', or 'socks5h'," - " but got {proxy.url.scheme!r}." - ) - - async def __aenter__(self: A) -> A: # Use generics for subclass support. - await self._pool.__aenter__() - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None = None, - exc_value: BaseException | None = None, - traceback: TracebackType | None = None, - ) -> None: - with map_httpcore_exceptions(): - await self._pool.__aexit__(exc_type, exc_value, traceback) - - async def handle_async_request( - self, - request: Request, - ) -> Response: - assert isinstance(request.stream, AsyncByteStream) - import httpcore - - req = httpcore.Request( - method=request.method, - url=httpcore.URL( - scheme=request.url.raw_scheme, - host=request.url.raw_host, - port=request.url.port, - target=request.url.raw_path, - ), - headers=request.headers.raw, - content=request.stream, - extensions=request.extensions, - ) - with map_httpcore_exceptions(): - resp = await self._pool.handle_async_request(req) - - assert isinstance(resp.stream, typing.AsyncIterable) - - return Response( - status_code=resp.status, - headers=resp.headers, - stream=AsyncResponseStream(resp.stream), - extensions=resp.extensions, - ) - - async def aclose(self) -> None: - await self._pool.aclose() diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/mock.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/mock.py deleted file mode 100644 index 8c418f59e06cae43abdbb626ec21cafc7e8c6277..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/mock.py +++ /dev/null @@ -1,43 +0,0 @@ -from __future__ import annotations - -import typing - -from .._models import Request, Response -from .base import AsyncBaseTransport, BaseTransport - -SyncHandler = typing.Callable[[Request], Response] -AsyncHandler = typing.Callable[[Request], typing.Coroutine[None, None, Response]] - - -__all__ = ["MockTransport"] - - -class MockTransport(AsyncBaseTransport, BaseTransport): - def __init__(self, handler: SyncHandler | AsyncHandler) -> None: - self.handler = handler - - def handle_request( - self, - request: Request, - ) -> Response: - request.read() - response = self.handler(request) - if not isinstance(response, Response): # pragma: no cover - raise TypeError("Cannot use an async handler in a sync Client") - return response - - async def handle_async_request( - self, - request: Request, - ) -> Response: - await request.aread() - response = self.handler(request) - - # Allow handler to *optionally* be an `async` function. - # If it is, then the `response` variable need to be awaited to actually - # return the result. - - if not isinstance(response, Response): - response = await response - - return response diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/wsgi.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/wsgi.py deleted file mode 100644 index 8592ffe017a87367cc7578184540096a9682908d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_transports/wsgi.py +++ /dev/null @@ -1,149 +0,0 @@ -from __future__ import annotations - -import io -import itertools -import sys -import typing - -from .._models import Request, Response -from .._types import SyncByteStream -from .base import BaseTransport - -if typing.TYPE_CHECKING: - from _typeshed import OptExcInfo # pragma: no cover - from _typeshed.wsgi import WSGIApplication # pragma: no cover - -_T = typing.TypeVar("_T") - - -__all__ = ["WSGITransport"] - - -def _skip_leading_empty_chunks(body: typing.Iterable[_T]) -> typing.Iterable[_T]: - body = iter(body) - for chunk in body: - if chunk: - return itertools.chain([chunk], body) - return [] - - -class WSGIByteStream(SyncByteStream): - def __init__(self, result: typing.Iterable[bytes]) -> None: - self._close = getattr(result, "close", None) - self._result = _skip_leading_empty_chunks(result) - - def __iter__(self) -> typing.Iterator[bytes]: - for part in self._result: - yield part - - def close(self) -> None: - if self._close is not None: - self._close() - - -class WSGITransport(BaseTransport): - """ - A custom transport that handles sending requests directly to an WSGI app. - The simplest way to use this functionality is to use the `app` argument. - - ``` - client = httpx.Client(app=app) - ``` - - Alternatively, you can setup the transport instance explicitly. - This allows you to include any additional configuration arguments specific - to the WSGITransport class: - - ``` - transport = httpx.WSGITransport( - app=app, - script_name="/submount", - remote_addr="1.2.3.4" - ) - client = httpx.Client(transport=transport) - ``` - - Arguments: - - * `app` - The WSGI application. - * `raise_app_exceptions` - Boolean indicating if exceptions in the application - should be raised. Default to `True`. Can be set to `False` for use cases - such as testing the content of a client 500 response. - * `script_name` - The root path on which the WSGI application should be mounted. - * `remote_addr` - A string indicating the client IP of incoming requests. - ``` - """ - - def __init__( - self, - app: WSGIApplication, - raise_app_exceptions: bool = True, - script_name: str = "", - remote_addr: str = "127.0.0.1", - wsgi_errors: typing.TextIO | None = None, - ) -> None: - self.app = app - self.raise_app_exceptions = raise_app_exceptions - self.script_name = script_name - self.remote_addr = remote_addr - self.wsgi_errors = wsgi_errors - - def handle_request(self, request: Request) -> Response: - request.read() - wsgi_input = io.BytesIO(request.content) - - port = request.url.port or {"http": 80, "https": 443}[request.url.scheme] - environ = { - "wsgi.version": (1, 0), - "wsgi.url_scheme": request.url.scheme, - "wsgi.input": wsgi_input, - "wsgi.errors": self.wsgi_errors or sys.stderr, - "wsgi.multithread": True, - "wsgi.multiprocess": False, - "wsgi.run_once": False, - "REQUEST_METHOD": request.method, - "SCRIPT_NAME": self.script_name, - "PATH_INFO": request.url.path, - "QUERY_STRING": request.url.query.decode("ascii"), - "SERVER_NAME": request.url.host, - "SERVER_PORT": str(port), - "SERVER_PROTOCOL": "HTTP/1.1", - "REMOTE_ADDR": self.remote_addr, - } - for header_key, header_value in request.headers.raw: - key = header_key.decode("ascii").upper().replace("-", "_") - if key not in ("CONTENT_TYPE", "CONTENT_LENGTH"): - key = "HTTP_" + key - environ[key] = header_value.decode("ascii") - - seen_status = None - seen_response_headers = None - seen_exc_info = None - - def start_response( - status: str, - response_headers: list[tuple[str, str]], - exc_info: OptExcInfo | None = None, - ) -> typing.Callable[[bytes], typing.Any]: - nonlocal seen_status, seen_response_headers, seen_exc_info - seen_status = status - seen_response_headers = response_headers - seen_exc_info = exc_info - return lambda _: None - - result = self.app(environ, start_response) - - stream = WSGIByteStream(result) - - assert seen_status is not None - assert seen_response_headers is not None - if seen_exc_info and seen_exc_info[0] and self.raise_app_exceptions: - raise seen_exc_info[1] - - status_code = int(seen_status.split()[0]) - headers = [ - (key.encode("ascii"), value.encode("ascii")) - for key, value in seen_response_headers - ] - - return Response(status_code, headers=headers, stream=stream) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_types.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_types.py deleted file mode 100644 index 704dfdffc8ba61eb913fa918072381e410b23c00..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_types.py +++ /dev/null @@ -1,114 +0,0 @@ -""" -Type definitions for type checking purposes. -""" - -from http.cookiejar import CookieJar -from typing import ( - IO, - TYPE_CHECKING, - Any, - AsyncIterable, - AsyncIterator, - Callable, - Dict, - Iterable, - Iterator, - List, - Mapping, - Optional, - Sequence, - Tuple, - Union, -) - -if TYPE_CHECKING: # pragma: no cover - from ._auth import Auth # noqa: F401 - from ._config import Proxy, Timeout # noqa: F401 - from ._models import Cookies, Headers, Request # noqa: F401 - from ._urls import URL, QueryParams # noqa: F401 - - -PrimitiveData = Optional[Union[str, int, float, bool]] - -URLTypes = Union["URL", str] - -QueryParamTypes = Union[ - "QueryParams", - Mapping[str, Union[PrimitiveData, Sequence[PrimitiveData]]], - List[Tuple[str, PrimitiveData]], - Tuple[Tuple[str, PrimitiveData], ...], - str, - bytes, -] - -HeaderTypes = Union[ - "Headers", - Mapping[str, str], - Mapping[bytes, bytes], - Sequence[Tuple[str, str]], - Sequence[Tuple[bytes, bytes]], -] - -CookieTypes = Union["Cookies", CookieJar, Dict[str, str], List[Tuple[str, str]]] - -TimeoutTypes = Union[ - Optional[float], - Tuple[Optional[float], Optional[float], Optional[float], Optional[float]], - "Timeout", -] -ProxyTypes = Union["URL", str, "Proxy"] -CertTypes = Union[str, Tuple[str, str], Tuple[str, str, str]] - -AuthTypes = Union[ - Tuple[Union[str, bytes], Union[str, bytes]], - Callable[["Request"], "Request"], - "Auth", -] - -RequestContent = Union[str, bytes, Iterable[bytes], AsyncIterable[bytes]] -ResponseContent = Union[str, bytes, Iterable[bytes], AsyncIterable[bytes]] -ResponseExtensions = Mapping[str, Any] - -RequestData = Mapping[str, Any] - -FileContent = Union[IO[bytes], bytes, str] -FileTypes = Union[ - # file (or bytes) - FileContent, - # (filename, file (or bytes)) - Tuple[Optional[str], FileContent], - # (filename, file (or bytes), content_type) - Tuple[Optional[str], FileContent, Optional[str]], - # (filename, file (or bytes), content_type, headers) - Tuple[Optional[str], FileContent, Optional[str], Mapping[str, str]], -] -RequestFiles = Union[Mapping[str, FileTypes], Sequence[Tuple[str, FileTypes]]] - -RequestExtensions = Mapping[str, Any] - -__all__ = ["AsyncByteStream", "SyncByteStream"] - - -class SyncByteStream: - def __iter__(self) -> Iterator[bytes]: - raise NotImplementedError( - "The '__iter__' method must be implemented." - ) # pragma: no cover - yield b"" # pragma: no cover - - def close(self) -> None: - """ - Subclasses can override this method to release any network resources - after a request/response cycle is complete. - """ - - -class AsyncByteStream: - async def __aiter__(self) -> AsyncIterator[bytes]: - raise NotImplementedError( - "The '__aiter__' method must be implemented." - ) # pragma: no cover - yield b"" # pragma: no cover - - async def aclose(self) -> None: - pass diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_urlparse.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_urlparse.py deleted file mode 100644 index bf190fd560ee4fc8a11af371a15fc5f1dc284d34..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_urlparse.py +++ /dev/null @@ -1,527 +0,0 @@ -""" -An implementation of `urlparse` that provides URL validation and normalization -as described by RFC3986. - -We rely on this implementation rather than the one in Python's stdlib, because: - -* It provides more complete URL validation. -* It properly differentiates between an empty querystring and an absent querystring, - to distinguish URLs with a trailing '?'. -* It handles scheme, hostname, port, and path normalization. -* It supports IDNA hostnames, normalizing them to their encoded form. -* The API supports passing individual components, as well as the complete URL string. - -Previously we relied on the excellent `rfc3986` package to handle URL parsing and -validation, but this module provides a simpler alternative, with less indirection -required. -""" - -from __future__ import annotations - -import ipaddress -import re -import typing - -import idna - -from ._exceptions import InvalidURL - -MAX_URL_LENGTH = 65536 - -# https://datatracker.ietf.org/doc/html/rfc3986.html#section-2.3 -UNRESERVED_CHARACTERS = ( - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~" -) -SUB_DELIMS = "!$&'()*+,;=" - -PERCENT_ENCODED_REGEX = re.compile("%[A-Fa-f0-9]{2}") - -# https://url.spec.whatwg.org/#percent-encoded-bytes - -# The fragment percent-encode set is the C0 control percent-encode set -# and U+0020 SPACE, U+0022 ("), U+003C (<), U+003E (>), and U+0060 (`). -FRAG_SAFE = "".join( - [chr(i) for i in range(0x20, 0x7F) if i not in (0x20, 0x22, 0x3C, 0x3E, 0x60)] -) - -# The query percent-encode set is the C0 control percent-encode set -# and U+0020 SPACE, U+0022 ("), U+0023 (#), U+003C (<), and U+003E (>). -QUERY_SAFE = "".join( - [chr(i) for i in range(0x20, 0x7F) if i not in (0x20, 0x22, 0x23, 0x3C, 0x3E)] -) - -# The path percent-encode set is the query percent-encode set -# and U+003F (?), U+0060 (`), U+007B ({), and U+007D (}). -PATH_SAFE = "".join( - [ - chr(i) - for i in range(0x20, 0x7F) - if i not in (0x20, 0x22, 0x23, 0x3C, 0x3E) + (0x3F, 0x60, 0x7B, 0x7D) - ] -) - -# The userinfo percent-encode set is the path percent-encode set -# and U+002F (/), U+003A (:), U+003B (;), U+003D (=), U+0040 (@), -# U+005B ([) to U+005E (^), inclusive, and U+007C (|). -USERNAME_SAFE = "".join( - [ - chr(i) - for i in range(0x20, 0x7F) - if i - not in (0x20, 0x22, 0x23, 0x3C, 0x3E) - + (0x3F, 0x60, 0x7B, 0x7D) - + (0x2F, 0x3A, 0x3B, 0x3D, 0x40, 0x5B, 0x5C, 0x5D, 0x5E, 0x7C) - ] -) -PASSWORD_SAFE = "".join( - [ - chr(i) - for i in range(0x20, 0x7F) - if i - not in (0x20, 0x22, 0x23, 0x3C, 0x3E) - + (0x3F, 0x60, 0x7B, 0x7D) - + (0x2F, 0x3A, 0x3B, 0x3D, 0x40, 0x5B, 0x5C, 0x5D, 0x5E, 0x7C) - ] -) -# Note... The terminology 'userinfo' percent-encode set in the WHATWG document -# is used for the username and password quoting. For the joint userinfo component -# we remove U+003A (:) from the safe set. -USERINFO_SAFE = "".join( - [ - chr(i) - for i in range(0x20, 0x7F) - if i - not in (0x20, 0x22, 0x23, 0x3C, 0x3E) - + (0x3F, 0x60, 0x7B, 0x7D) - + (0x2F, 0x3B, 0x3D, 0x40, 0x5B, 0x5C, 0x5D, 0x5E, 0x7C) - ] -) - - -# {scheme}: (optional) -# //{authority} (optional) -# {path} -# ?{query} (optional) -# #{fragment} (optional) -URL_REGEX = re.compile( - ( - r"(?:(?P{scheme}):)?" - r"(?://(?P{authority}))?" - r"(?P{path})" - r"(?:\?(?P{query}))?" - r"(?:#(?P{fragment}))?" - ).format( - scheme="([a-zA-Z][a-zA-Z0-9+.-]*)?", - authority="[^/?#]*", - path="[^?#]*", - query="[^#]*", - fragment=".*", - ) -) - -# {userinfo}@ (optional) -# {host} -# :{port} (optional) -AUTHORITY_REGEX = re.compile( - ( - r"(?:(?P{userinfo})@)?" r"(?P{host})" r":?(?P{port})?" - ).format( - userinfo=".*", # Any character sequence. - host="(\\[.*\\]|[^:@]*)", # Either any character sequence excluding ':' or '@', - # or an IPv6 address enclosed within square brackets. - port=".*", # Any character sequence. - ) -) - - -# If we call urlparse with an individual component, then we need to regex -# validate that component individually. -# Note that we're duplicating the same strings as above. Shock! Horror!! -COMPONENT_REGEX = { - "scheme": re.compile("([a-zA-Z][a-zA-Z0-9+.-]*)?"), - "authority": re.compile("[^/?#]*"), - "path": re.compile("[^?#]*"), - "query": re.compile("[^#]*"), - "fragment": re.compile(".*"), - "userinfo": re.compile("[^@]*"), - "host": re.compile("(\\[.*\\]|[^:]*)"), - "port": re.compile(".*"), -} - - -# We use these simple regexs as a first pass before handing off to -# the stdlib 'ipaddress' module for IP address validation. -IPv4_STYLE_HOSTNAME = re.compile(r"^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$") -IPv6_STYLE_HOSTNAME = re.compile(r"^\[.*\]$") - - -class ParseResult(typing.NamedTuple): - scheme: str - userinfo: str - host: str - port: int | None - path: str - query: str | None - fragment: str | None - - @property - def authority(self) -> str: - return "".join( - [ - f"{self.userinfo}@" if self.userinfo else "", - f"[{self.host}]" if ":" in self.host else self.host, - f":{self.port}" if self.port is not None else "", - ] - ) - - @property - def netloc(self) -> str: - return "".join( - [ - f"[{self.host}]" if ":" in self.host else self.host, - f":{self.port}" if self.port is not None else "", - ] - ) - - def copy_with(self, **kwargs: str | None) -> ParseResult: - if not kwargs: - return self - - defaults = { - "scheme": self.scheme, - "authority": self.authority, - "path": self.path, - "query": self.query, - "fragment": self.fragment, - } - defaults.update(kwargs) - return urlparse("", **defaults) - - def __str__(self) -> str: - authority = self.authority - return "".join( - [ - f"{self.scheme}:" if self.scheme else "", - f"//{authority}" if authority else "", - self.path, - f"?{self.query}" if self.query is not None else "", - f"#{self.fragment}" if self.fragment is not None else "", - ] - ) - - -def urlparse(url: str = "", **kwargs: str | None) -> ParseResult: - # Initial basic checks on allowable URLs. - # --------------------------------------- - - # Hard limit the maximum allowable URL length. - if len(url) > MAX_URL_LENGTH: - raise InvalidURL("URL too long") - - # If a URL includes any ASCII control characters including \t, \r, \n, - # then treat it as invalid. - if any(char.isascii() and not char.isprintable() for char in url): - char = next(char for char in url if char.isascii() and not char.isprintable()) - idx = url.find(char) - error = ( - f"Invalid non-printable ASCII character in URL, {char!r} at position {idx}." - ) - raise InvalidURL(error) - - # Some keyword arguments require special handling. - # ------------------------------------------------ - - # Coerce "port" to a string, if it is provided as an integer. - if "port" in kwargs: - port = kwargs["port"] - kwargs["port"] = str(port) if isinstance(port, int) else port - - # Replace "netloc" with "host and "port". - if "netloc" in kwargs: - netloc = kwargs.pop("netloc") or "" - kwargs["host"], _, kwargs["port"] = netloc.partition(":") - - # Replace "username" and/or "password" with "userinfo". - if "username" in kwargs or "password" in kwargs: - username = quote(kwargs.pop("username", "") or "", safe=USERNAME_SAFE) - password = quote(kwargs.pop("password", "") or "", safe=PASSWORD_SAFE) - kwargs["userinfo"] = f"{username}:{password}" if password else username - - # Replace "raw_path" with "path" and "query". - if "raw_path" in kwargs: - raw_path = kwargs.pop("raw_path") or "" - kwargs["path"], seperator, kwargs["query"] = raw_path.partition("?") - if not seperator: - kwargs["query"] = None - - # Ensure that IPv6 "host" addresses are always escaped with "[...]". - if "host" in kwargs: - host = kwargs.get("host") or "" - if ":" in host and not (host.startswith("[") and host.endswith("]")): - kwargs["host"] = f"[{host}]" - - # If any keyword arguments are provided, ensure they are valid. - # ------------------------------------------------------------- - - for key, value in kwargs.items(): - if value is not None: - if len(value) > MAX_URL_LENGTH: - raise InvalidURL(f"URL component '{key}' too long") - - # If a component includes any ASCII control characters including \t, \r, \n, - # then treat it as invalid. - if any(char.isascii() and not char.isprintable() for char in value): - char = next( - char for char in value if char.isascii() and not char.isprintable() - ) - idx = value.find(char) - error = ( - f"Invalid non-printable ASCII character in URL {key} component, " - f"{char!r} at position {idx}." - ) - raise InvalidURL(error) - - # Ensure that keyword arguments match as a valid regex. - if not COMPONENT_REGEX[key].fullmatch(value): - raise InvalidURL(f"Invalid URL component '{key}'") - - # The URL_REGEX will always match, but may have empty components. - url_match = URL_REGEX.match(url) - assert url_match is not None - url_dict = url_match.groupdict() - - # * 'scheme', 'authority', and 'path' may be empty strings. - # * 'query' may be 'None', indicating no trailing "?" portion. - # Any string including the empty string, indicates a trailing "?". - # * 'fragment' may be 'None', indicating no trailing "#" portion. - # Any string including the empty string, indicates a trailing "#". - scheme = kwargs.get("scheme", url_dict["scheme"]) or "" - authority = kwargs.get("authority", url_dict["authority"]) or "" - path = kwargs.get("path", url_dict["path"]) or "" - query = kwargs.get("query", url_dict["query"]) - frag = kwargs.get("fragment", url_dict["fragment"]) - - # The AUTHORITY_REGEX will always match, but may have empty components. - authority_match = AUTHORITY_REGEX.match(authority) - assert authority_match is not None - authority_dict = authority_match.groupdict() - - # * 'userinfo' and 'host' may be empty strings. - # * 'port' may be 'None'. - userinfo = kwargs.get("userinfo", authority_dict["userinfo"]) or "" - host = kwargs.get("host", authority_dict["host"]) or "" - port = kwargs.get("port", authority_dict["port"]) - - # Normalize and validate each component. - # We end up with a parsed representation of the URL, - # with components that are plain ASCII bytestrings. - parsed_scheme: str = scheme.lower() - parsed_userinfo: str = quote(userinfo, safe=USERINFO_SAFE) - parsed_host: str = encode_host(host) - parsed_port: int | None = normalize_port(port, scheme) - - has_scheme = parsed_scheme != "" - has_authority = ( - parsed_userinfo != "" or parsed_host != "" or parsed_port is not None - ) - validate_path(path, has_scheme=has_scheme, has_authority=has_authority) - if has_scheme or has_authority: - path = normalize_path(path) - - parsed_path: str = quote(path, safe=PATH_SAFE) - parsed_query: str | None = None if query is None else quote(query, safe=QUERY_SAFE) - parsed_frag: str | None = None if frag is None else quote(frag, safe=FRAG_SAFE) - - # The parsed ASCII bytestrings are our canonical form. - # All properties of the URL are derived from these. - return ParseResult( - parsed_scheme, - parsed_userinfo, - parsed_host, - parsed_port, - parsed_path, - parsed_query, - parsed_frag, - ) - - -def encode_host(host: str) -> str: - if not host: - return "" - - elif IPv4_STYLE_HOSTNAME.match(host): - # Validate IPv4 hostnames like #.#.#.# - # - # From https://datatracker.ietf.org/doc/html/rfc3986/#section-3.2.2 - # - # IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet - try: - ipaddress.IPv4Address(host) - except ipaddress.AddressValueError: - raise InvalidURL(f"Invalid IPv4 address: {host!r}") - return host - - elif IPv6_STYLE_HOSTNAME.match(host): - # Validate IPv6 hostnames like [...] - # - # From https://datatracker.ietf.org/doc/html/rfc3986/#section-3.2.2 - # - # "A host identified by an Internet Protocol literal address, version 6 - # [RFC3513] or later, is distinguished by enclosing the IP literal - # within square brackets ("[" and "]"). This is the only place where - # square bracket characters are allowed in the URI syntax." - try: - ipaddress.IPv6Address(host[1:-1]) - except ipaddress.AddressValueError: - raise InvalidURL(f"Invalid IPv6 address: {host!r}") - return host[1:-1] - - elif host.isascii(): - # Regular ASCII hostnames - # - # From https://datatracker.ietf.org/doc/html/rfc3986/#section-3.2.2 - # - # reg-name = *( unreserved / pct-encoded / sub-delims ) - WHATWG_SAFE = '"`{}%|\\' - return quote(host.lower(), safe=SUB_DELIMS + WHATWG_SAFE) - - # IDNA hostnames - try: - return idna.encode(host.lower()).decode("ascii") - except idna.IDNAError: - raise InvalidURL(f"Invalid IDNA hostname: {host!r}") - - -def normalize_port(port: str | int | None, scheme: str) -> int | None: - # From https://tools.ietf.org/html/rfc3986#section-3.2.3 - # - # "A scheme may define a default port. For example, the "http" scheme - # defines a default port of "80", corresponding to its reserved TCP - # port number. The type of port designated by the port number (e.g., - # TCP, UDP, SCTP) is defined by the URI scheme. URI producers and - # normalizers should omit the port component and its ":" delimiter if - # port is empty or if its value would be the same as that of the - # scheme's default." - if port is None or port == "": - return None - - try: - port_as_int = int(port) - except ValueError: - raise InvalidURL(f"Invalid port: {port!r}") - - # See https://url.spec.whatwg.org/#url-miscellaneous - default_port = {"ftp": 21, "http": 80, "https": 443, "ws": 80, "wss": 443}.get( - scheme - ) - if port_as_int == default_port: - return None - return port_as_int - - -def validate_path(path: str, has_scheme: bool, has_authority: bool) -> None: - """ - Path validation rules that depend on if the URL contains - a scheme or authority component. - - See https://datatracker.ietf.org/doc/html/rfc3986.html#section-3.3 - """ - if has_authority: - # If a URI contains an authority component, then the path component - # must either be empty or begin with a slash ("/") character." - if path and not path.startswith("/"): - raise InvalidURL("For absolute URLs, path must be empty or begin with '/'") - - if not has_scheme and not has_authority: - # If a URI does not contain an authority component, then the path cannot begin - # with two slash characters ("//"). - if path.startswith("//"): - raise InvalidURL("Relative URLs cannot have a path starting with '//'") - - # In addition, a URI reference (Section 4.1) may be a relative-path reference, - # in which case the first path segment cannot contain a colon (":") character. - if path.startswith(":"): - raise InvalidURL("Relative URLs cannot have a path starting with ':'") - - -def normalize_path(path: str) -> str: - """ - Drop "." and ".." segments from a URL path. - - For example: - - normalize_path("/path/./to/somewhere/..") == "/path/to" - """ - # Fast return when no '.' characters in the path. - if "." not in path: - return path - - components = path.split("/") - - # Fast return when no '.' or '..' components in the path. - if "." not in components and ".." not in components: - return path - - # https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4 - output: list[str] = [] - for component in components: - if component == ".": - pass - elif component == "..": - if output and output != [""]: - output.pop() - else: - output.append(component) - return "/".join(output) - - -def PERCENT(string: str) -> str: - return "".join([f"%{byte:02X}" for byte in string.encode("utf-8")]) - - -def percent_encoded(string: str, safe: str) -> str: - """ - Use percent-encoding to quote a string. - """ - NON_ESCAPED_CHARS = UNRESERVED_CHARACTERS + safe - - # Fast path for strings that don't need escaping. - if not string.rstrip(NON_ESCAPED_CHARS): - return string - - return "".join( - [char if char in NON_ESCAPED_CHARS else PERCENT(char) for char in string] - ) - - -def quote(string: str, safe: str) -> str: - """ - Use percent-encoding to quote a string, omitting existing '%xx' escape sequences. - - See: https://www.rfc-editor.org/rfc/rfc3986#section-2.1 - - * `string`: The string to be percent-escaped. - * `safe`: A string containing characters that may be treated as safe, and do not - need to be escaped. Unreserved characters are always treated as safe. - See: https://www.rfc-editor.org/rfc/rfc3986#section-2.3 - """ - parts = [] - current_position = 0 - for match in re.finditer(PERCENT_ENCODED_REGEX, string): - start_position, end_position = match.start(), match.end() - matched_text = match.group(0) - # Add any text up to the '%xx' escape sequence. - if start_position != current_position: - leading_text = string[current_position:start_position] - parts.append(percent_encoded(leading_text, safe=safe)) - - # Add the '%xx' escape sequence. - parts.append(matched_text) - current_position = end_position - - # Add any text after the final '%xx' escape sequence. - if current_position != len(string): - trailing_text = string[current_position:] - parts.append(percent_encoded(trailing_text, safe=safe)) - - return "".join(parts) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_urls.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_urls.py deleted file mode 100644 index 147a8fa333acaf31618d37ba2896e3a5bf5e4d02..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_urls.py +++ /dev/null @@ -1,641 +0,0 @@ -from __future__ import annotations - -import typing -from urllib.parse import parse_qs, unquote, urlencode - -import idna - -from ._types import QueryParamTypes -from ._urlparse import urlparse -from ._utils import primitive_value_to_str - -__all__ = ["URL", "QueryParams"] - - -class URL: - """ - url = httpx.URL("HTTPS://jo%40email.com:a%20secret@müller.de:1234/pa%20th?search=ab#anchorlink") - - assert url.scheme == "https" - assert url.username == "jo@email.com" - assert url.password == "a secret" - assert url.userinfo == b"jo%40email.com:a%20secret" - assert url.host == "müller.de" - assert url.raw_host == b"xn--mller-kva.de" - assert url.port == 1234 - assert url.netloc == b"xn--mller-kva.de:1234" - assert url.path == "/pa th" - assert url.query == b"?search=ab" - assert url.raw_path == b"/pa%20th?search=ab" - assert url.fragment == "anchorlink" - - The components of a URL are broken down like this: - - https://jo%40email.com:a%20secret@müller.de:1234/pa%20th?search=ab#anchorlink - [scheme] [ username ] [password] [ host ][port][ path ] [ query ] [fragment] - [ userinfo ] [ netloc ][ raw_path ] - - Note that: - - * `url.scheme` is normalized to always be lowercased. - - * `url.host` is normalized to always be lowercased. Internationalized domain - names are represented in unicode, without IDNA encoding applied. For instance: - - url = httpx.URL("http://中国.icom.museum") - assert url.host == "中国.icom.museum" - url = httpx.URL("http://xn--fiqs8s.icom.museum") - assert url.host == "中国.icom.museum" - - * `url.raw_host` is normalized to always be lowercased, and is IDNA encoded. - - url = httpx.URL("http://中国.icom.museum") - assert url.raw_host == b"xn--fiqs8s.icom.museum" - url = httpx.URL("http://xn--fiqs8s.icom.museum") - assert url.raw_host == b"xn--fiqs8s.icom.museum" - - * `url.port` is either None or an integer. URLs that include the default port for - "http", "https", "ws", "wss", and "ftp" schemes have their port - normalized to `None`. - - assert httpx.URL("http://example.com") == httpx.URL("http://example.com:80") - assert httpx.URL("http://example.com").port is None - assert httpx.URL("http://example.com:80").port is None - - * `url.userinfo` is raw bytes, without URL escaping. Usually you'll want to work - with `url.username` and `url.password` instead, which handle the URL escaping. - - * `url.raw_path` is raw bytes of both the path and query, without URL escaping. - This portion is used as the target when constructing HTTP requests. Usually you'll - want to work with `url.path` instead. - - * `url.query` is raw bytes, without URL escaping. A URL query string portion can - only be properly URL escaped when decoding the parameter names and values - themselves. - """ - - def __init__(self, url: URL | str = "", **kwargs: typing.Any) -> None: - if kwargs: - allowed = { - "scheme": str, - "username": str, - "password": str, - "userinfo": bytes, - "host": str, - "port": int, - "netloc": bytes, - "path": str, - "query": bytes, - "raw_path": bytes, - "fragment": str, - "params": object, - } - - # Perform type checking for all supported keyword arguments. - for key, value in kwargs.items(): - if key not in allowed: - message = f"{key!r} is an invalid keyword argument for URL()" - raise TypeError(message) - if value is not None and not isinstance(value, allowed[key]): - expected = allowed[key].__name__ - seen = type(value).__name__ - message = f"Argument {key!r} must be {expected} but got {seen}" - raise TypeError(message) - if isinstance(value, bytes): - kwargs[key] = value.decode("ascii") - - if "params" in kwargs: - # Replace any "params" keyword with the raw "query" instead. - # - # Ensure that empty params use `kwargs["query"] = None` rather - # than `kwargs["query"] = ""`, so that generated URLs do not - # include an empty trailing "?". - params = kwargs.pop("params") - kwargs["query"] = None if not params else str(QueryParams(params)) - - if isinstance(url, str): - self._uri_reference = urlparse(url, **kwargs) - elif isinstance(url, URL): - self._uri_reference = url._uri_reference.copy_with(**kwargs) - else: - raise TypeError( - "Invalid type for url. Expected str or httpx.URL," - f" got {type(url)}: {url!r}" - ) - - @property - def scheme(self) -> str: - """ - The URL scheme, such as "http", "https". - Always normalised to lowercase. - """ - return self._uri_reference.scheme - - @property - def raw_scheme(self) -> bytes: - """ - The raw bytes representation of the URL scheme, such as b"http", b"https". - Always normalised to lowercase. - """ - return self._uri_reference.scheme.encode("ascii") - - @property - def userinfo(self) -> bytes: - """ - The URL userinfo as a raw bytestring. - For example: b"jo%40email.com:a%20secret". - """ - return self._uri_reference.userinfo.encode("ascii") - - @property - def username(self) -> str: - """ - The URL username as a string, with URL decoding applied. - For example: "jo@email.com" - """ - userinfo = self._uri_reference.userinfo - return unquote(userinfo.partition(":")[0]) - - @property - def password(self) -> str: - """ - The URL password as a string, with URL decoding applied. - For example: "a secret" - """ - userinfo = self._uri_reference.userinfo - return unquote(userinfo.partition(":")[2]) - - @property - def host(self) -> str: - """ - The URL host as a string. - Always normalized to lowercase, with IDNA hosts decoded into unicode. - - Examples: - - url = httpx.URL("http://www.EXAMPLE.org") - assert url.host == "www.example.org" - - url = httpx.URL("http://中国.icom.museum") - assert url.host == "中国.icom.museum" - - url = httpx.URL("http://xn--fiqs8s.icom.museum") - assert url.host == "中国.icom.museum" - - url = httpx.URL("https://[::ffff:192.168.0.1]") - assert url.host == "::ffff:192.168.0.1" - """ - host: str = self._uri_reference.host - - if host.startswith("xn--"): - host = idna.decode(host) - - return host - - @property - def raw_host(self) -> bytes: - """ - The raw bytes representation of the URL host. - Always normalized to lowercase, and IDNA encoded. - - Examples: - - url = httpx.URL("http://www.EXAMPLE.org") - assert url.raw_host == b"www.example.org" - - url = httpx.URL("http://中国.icom.museum") - assert url.raw_host == b"xn--fiqs8s.icom.museum" - - url = httpx.URL("http://xn--fiqs8s.icom.museum") - assert url.raw_host == b"xn--fiqs8s.icom.museum" - - url = httpx.URL("https://[::ffff:192.168.0.1]") - assert url.raw_host == b"::ffff:192.168.0.1" - """ - return self._uri_reference.host.encode("ascii") - - @property - def port(self) -> int | None: - """ - The URL port as an integer. - - Note that the URL class performs port normalization as per the WHATWG spec. - Default ports for "http", "https", "ws", "wss", and "ftp" schemes are always - treated as `None`. - - For example: - - assert httpx.URL("http://www.example.com") == httpx.URL("http://www.example.com:80") - assert httpx.URL("http://www.example.com:80").port is None - """ - return self._uri_reference.port - - @property - def netloc(self) -> bytes: - """ - Either `` or `:` as bytes. - Always normalized to lowercase, and IDNA encoded. - - This property may be used for generating the value of a request - "Host" header. - """ - return self._uri_reference.netloc.encode("ascii") - - @property - def path(self) -> str: - """ - The URL path as a string. Excluding the query string, and URL decoded. - - For example: - - url = httpx.URL("https://example.com/pa%20th") - assert url.path == "/pa th" - """ - path = self._uri_reference.path or "/" - return unquote(path) - - @property - def query(self) -> bytes: - """ - The URL query string, as raw bytes, excluding the leading b"?". - - This is necessarily a bytewise interface, because we cannot - perform URL decoding of this representation until we've parsed - the keys and values into a QueryParams instance. - - For example: - - url = httpx.URL("https://example.com/?filter=some%20search%20terms") - assert url.query == b"filter=some%20search%20terms" - """ - query = self._uri_reference.query or "" - return query.encode("ascii") - - @property - def params(self) -> QueryParams: - """ - The URL query parameters, neatly parsed and packaged into an immutable - multidict representation. - """ - return QueryParams(self._uri_reference.query) - - @property - def raw_path(self) -> bytes: - """ - The complete URL path and query string as raw bytes. - Used as the target when constructing HTTP requests. - - For example: - - GET /users?search=some%20text HTTP/1.1 - Host: www.example.org - Connection: close - """ - path = self._uri_reference.path or "/" - if self._uri_reference.query is not None: - path += "?" + self._uri_reference.query - return path.encode("ascii") - - @property - def fragment(self) -> str: - """ - The URL fragments, as used in HTML anchors. - As a string, without the leading '#'. - """ - return unquote(self._uri_reference.fragment or "") - - @property - def is_absolute_url(self) -> bool: - """ - Return `True` for absolute URLs such as 'http://example.com/path', - and `False` for relative URLs such as '/path'. - """ - # We don't use `.is_absolute` from `rfc3986` because it treats - # URLs with a fragment portion as not absolute. - # What we actually care about is if the URL provides - # a scheme and hostname to which connections should be made. - return bool(self._uri_reference.scheme and self._uri_reference.host) - - @property - def is_relative_url(self) -> bool: - """ - Return `False` for absolute URLs such as 'http://example.com/path', - and `True` for relative URLs such as '/path'. - """ - return not self.is_absolute_url - - def copy_with(self, **kwargs: typing.Any) -> URL: - """ - Copy this URL, returning a new URL with some components altered. - Accepts the same set of parameters as the components that are made - available via properties on the `URL` class. - - For example: - - url = httpx.URL("https://www.example.com").copy_with( - username="jo@gmail.com", password="a secret" - ) - assert url == "https://jo%40email.com:a%20secret@www.example.com" - """ - return URL(self, **kwargs) - - def copy_set_param(self, key: str, value: typing.Any = None) -> URL: - return self.copy_with(params=self.params.set(key, value)) - - def copy_add_param(self, key: str, value: typing.Any = None) -> URL: - return self.copy_with(params=self.params.add(key, value)) - - def copy_remove_param(self, key: str) -> URL: - return self.copy_with(params=self.params.remove(key)) - - def copy_merge_params(self, params: QueryParamTypes) -> URL: - return self.copy_with(params=self.params.merge(params)) - - def join(self, url: URL | str) -> URL: - """ - Return an absolute URL, using this URL as the base. - - Eg. - - url = httpx.URL("https://www.example.com/test") - url = url.join("/new/path") - assert url == "https://www.example.com/new/path" - """ - from urllib.parse import urljoin - - return URL(urljoin(str(self), str(URL(url)))) - - def __hash__(self) -> int: - return hash(str(self)) - - def __eq__(self, other: typing.Any) -> bool: - return isinstance(other, (URL, str)) and str(self) == str(URL(other)) - - def __str__(self) -> str: - return str(self._uri_reference) - - def __repr__(self) -> str: - scheme, userinfo, host, port, path, query, fragment = self._uri_reference - - if ":" in userinfo: - # Mask any password component. - userinfo = f'{userinfo.split(":")[0]}:[secure]' - - authority = "".join( - [ - f"{userinfo}@" if userinfo else "", - f"[{host}]" if ":" in host else host, - f":{port}" if port is not None else "", - ] - ) - url = "".join( - [ - f"{self.scheme}:" if scheme else "", - f"//{authority}" if authority else "", - path, - f"?{query}" if query is not None else "", - f"#{fragment}" if fragment is not None else "", - ] - ) - - return f"{self.__class__.__name__}({url!r})" - - @property - def raw(self) -> tuple[bytes, bytes, int, bytes]: # pragma: nocover - import collections - import warnings - - warnings.warn("URL.raw is deprecated.") - RawURL = collections.namedtuple( - "RawURL", ["raw_scheme", "raw_host", "port", "raw_path"] - ) - return RawURL( - raw_scheme=self.raw_scheme, - raw_host=self.raw_host, - port=self.port, - raw_path=self.raw_path, - ) - - -class QueryParams(typing.Mapping[str, str]): - """ - URL query parameters, as a multi-dict. - """ - - def __init__(self, *args: QueryParamTypes | None, **kwargs: typing.Any) -> None: - assert len(args) < 2, "Too many arguments." - assert not (args and kwargs), "Cannot mix named and unnamed arguments." - - value = args[0] if args else kwargs - - if value is None or isinstance(value, (str, bytes)): - value = value.decode("ascii") if isinstance(value, bytes) else value - self._dict = parse_qs(value, keep_blank_values=True) - elif isinstance(value, QueryParams): - self._dict = {k: list(v) for k, v in value._dict.items()} - else: - dict_value: dict[typing.Any, list[typing.Any]] = {} - if isinstance(value, (list, tuple)): - # Convert list inputs like: - # [("a", "123"), ("a", "456"), ("b", "789")] - # To a dict representation, like: - # {"a": ["123", "456"], "b": ["789"]} - for item in value: - dict_value.setdefault(item[0], []).append(item[1]) - else: - # Convert dict inputs like: - # {"a": "123", "b": ["456", "789"]} - # To dict inputs where values are always lists, like: - # {"a": ["123"], "b": ["456", "789"]} - dict_value = { - k: list(v) if isinstance(v, (list, tuple)) else [v] - for k, v in value.items() - } - - # Ensure that keys and values are neatly coerced to strings. - # We coerce values `True` and `False` to JSON-like "true" and "false" - # representations, and coerce `None` values to the empty string. - self._dict = { - str(k): [primitive_value_to_str(item) for item in v] - for k, v in dict_value.items() - } - - def keys(self) -> typing.KeysView[str]: - """ - Return all the keys in the query params. - - Usage: - - q = httpx.QueryParams("a=123&a=456&b=789") - assert list(q.keys()) == ["a", "b"] - """ - return self._dict.keys() - - def values(self) -> typing.ValuesView[str]: - """ - Return all the values in the query params. If a key occurs more than once - only the first item for that key is returned. - - Usage: - - q = httpx.QueryParams("a=123&a=456&b=789") - assert list(q.values()) == ["123", "789"] - """ - return {k: v[0] for k, v in self._dict.items()}.values() - - def items(self) -> typing.ItemsView[str, str]: - """ - Return all items in the query params. If a key occurs more than once - only the first item for that key is returned. - - Usage: - - q = httpx.QueryParams("a=123&a=456&b=789") - assert list(q.items()) == [("a", "123"), ("b", "789")] - """ - return {k: v[0] for k, v in self._dict.items()}.items() - - def multi_items(self) -> list[tuple[str, str]]: - """ - Return all items in the query params. Allow duplicate keys to occur. - - Usage: - - q = httpx.QueryParams("a=123&a=456&b=789") - assert list(q.multi_items()) == [("a", "123"), ("a", "456"), ("b", "789")] - """ - multi_items: list[tuple[str, str]] = [] - for k, v in self._dict.items(): - multi_items.extend([(k, i) for i in v]) - return multi_items - - def get(self, key: typing.Any, default: typing.Any = None) -> typing.Any: - """ - Get a value from the query param for a given key. If the key occurs - more than once, then only the first value is returned. - - Usage: - - q = httpx.QueryParams("a=123&a=456&b=789") - assert q.get("a") == "123" - """ - if key in self._dict: - return self._dict[str(key)][0] - return default - - def get_list(self, key: str) -> list[str]: - """ - Get all values from the query param for a given key. - - Usage: - - q = httpx.QueryParams("a=123&a=456&b=789") - assert q.get_list("a") == ["123", "456"] - """ - return list(self._dict.get(str(key), [])) - - def set(self, key: str, value: typing.Any = None) -> QueryParams: - """ - Return a new QueryParams instance, setting the value of a key. - - Usage: - - q = httpx.QueryParams("a=123") - q = q.set("a", "456") - assert q == httpx.QueryParams("a=456") - """ - q = QueryParams() - q._dict = dict(self._dict) - q._dict[str(key)] = [primitive_value_to_str(value)] - return q - - def add(self, key: str, value: typing.Any = None) -> QueryParams: - """ - Return a new QueryParams instance, setting or appending the value of a key. - - Usage: - - q = httpx.QueryParams("a=123") - q = q.add("a", "456") - assert q == httpx.QueryParams("a=123&a=456") - """ - q = QueryParams() - q._dict = dict(self._dict) - q._dict[str(key)] = q.get_list(key) + [primitive_value_to_str(value)] - return q - - def remove(self, key: str) -> QueryParams: - """ - Return a new QueryParams instance, removing the value of a key. - - Usage: - - q = httpx.QueryParams("a=123") - q = q.remove("a") - assert q == httpx.QueryParams("") - """ - q = QueryParams() - q._dict = dict(self._dict) - q._dict.pop(str(key), None) - return q - - def merge(self, params: QueryParamTypes | None = None) -> QueryParams: - """ - Return a new QueryParams instance, updated with. - - Usage: - - q = httpx.QueryParams("a=123") - q = q.merge({"b": "456"}) - assert q == httpx.QueryParams("a=123&b=456") - - q = httpx.QueryParams("a=123") - q = q.merge({"a": "456", "b": "789"}) - assert q == httpx.QueryParams("a=456&b=789") - """ - q = QueryParams(params) - q._dict = {**self._dict, **q._dict} - return q - - def __getitem__(self, key: typing.Any) -> str: - return self._dict[key][0] - - def __contains__(self, key: typing.Any) -> bool: - return key in self._dict - - def __iter__(self) -> typing.Iterator[typing.Any]: - return iter(self.keys()) - - def __len__(self) -> int: - return len(self._dict) - - def __bool__(self) -> bool: - return bool(self._dict) - - def __hash__(self) -> int: - return hash(str(self)) - - def __eq__(self, other: typing.Any) -> bool: - if not isinstance(other, self.__class__): - return False - return sorted(self.multi_items()) == sorted(other.multi_items()) - - def __str__(self) -> str: - return urlencode(self.multi_items()) - - def __repr__(self) -> str: - class_name = self.__class__.__name__ - query_string = str(self) - return f"{class_name}({query_string!r})" - - def update(self, params: QueryParamTypes | None = None) -> None: - raise RuntimeError( - "QueryParams are immutable since 0.18.0. " - "Use `q = q.merge(...)` to create an updated copy." - ) - - def __setitem__(self, key: str, value: str) -> None: - raise RuntimeError( - "QueryParams are immutable since 0.18.0. " - "Use `q = q.set(key, value)` to create an updated copy." - ) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_utils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_utils.py deleted file mode 100644 index 7fe827da4d071b32ea6da44328629699d6fc88ce..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/_utils.py +++ /dev/null @@ -1,242 +0,0 @@ -from __future__ import annotations - -import ipaddress -import os -import re -import typing -from urllib.request import getproxies - -from ._types import PrimitiveData - -if typing.TYPE_CHECKING: # pragma: no cover - from ._urls import URL - - -def primitive_value_to_str(value: PrimitiveData) -> str: - """ - Coerce a primitive data type into a string value. - - Note that we prefer JSON-style 'true'/'false' for boolean values here. - """ - if value is True: - return "true" - elif value is False: - return "false" - elif value is None: - return "" - return str(value) - - -def get_environment_proxies() -> dict[str, str | None]: - """Gets proxy information from the environment""" - - # urllib.request.getproxies() falls back on System - # Registry and Config for proxies on Windows and macOS. - # We don't want to propagate non-HTTP proxies into - # our configuration such as 'TRAVIS_APT_PROXY'. - proxy_info = getproxies() - mounts: dict[str, str | None] = {} - - for scheme in ("http", "https", "all"): - if proxy_info.get(scheme): - hostname = proxy_info[scheme] - mounts[f"{scheme}://"] = ( - hostname if "://" in hostname else f"http://{hostname}" - ) - - no_proxy_hosts = [host.strip() for host in proxy_info.get("no", "").split(",")] - for hostname in no_proxy_hosts: - # See https://curl.haxx.se/libcurl/c/CURLOPT_NOPROXY.html for details - # on how names in `NO_PROXY` are handled. - if hostname == "*": - # If NO_PROXY=* is used or if "*" occurs as any one of the comma - # separated hostnames, then we should just bypass any information - # from HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, and always ignore - # proxies. - return {} - elif hostname: - # NO_PROXY=.google.com is marked as "all://*.google.com, - # which disables "www.google.com" but not "google.com" - # NO_PROXY=google.com is marked as "all://*google.com, - # which disables "www.google.com" and "google.com". - # (But not "wwwgoogle.com") - # NO_PROXY can include domains, IPv6, IPv4 addresses and "localhost" - # NO_PROXY=example.com,::1,localhost,192.168.0.0/16 - if "://" in hostname: - mounts[hostname] = None - elif is_ipv4_hostname(hostname): - mounts[f"all://{hostname}"] = None - elif is_ipv6_hostname(hostname): - mounts[f"all://[{hostname}]"] = None - elif hostname.lower() == "localhost": - mounts[f"all://{hostname}"] = None - else: - mounts[f"all://*{hostname}"] = None - - return mounts - - -def to_bytes(value: str | bytes, encoding: str = "utf-8") -> bytes: - return value.encode(encoding) if isinstance(value, str) else value - - -def to_str(value: str | bytes, encoding: str = "utf-8") -> str: - return value if isinstance(value, str) else value.decode(encoding) - - -def to_bytes_or_str(value: str, match_type_of: typing.AnyStr) -> typing.AnyStr: - return value if isinstance(match_type_of, str) else value.encode() - - -def unquote(value: str) -> str: - return value[1:-1] if value[0] == value[-1] == '"' else value - - -def peek_filelike_length(stream: typing.Any) -> int | None: - """ - Given a file-like stream object, return its length in number of bytes - without reading it into memory. - """ - try: - # Is it an actual file? - fd = stream.fileno() - # Yup, seems to be an actual file. - length = os.fstat(fd).st_size - except (AttributeError, OSError): - # No... Maybe it's something that supports random access, like `io.BytesIO`? - try: - # Assuming so, go to end of stream to figure out its length, - # then put it back in place. - offset = stream.tell() - length = stream.seek(0, os.SEEK_END) - stream.seek(offset) - except (AttributeError, OSError): - # Not even that? Sorry, we're doomed... - return None - - return length - - -class URLPattern: - """ - A utility class currently used for making lookups against proxy keys... - - # Wildcard matching... - >>> pattern = URLPattern("all://") - >>> pattern.matches(httpx.URL("http://example.com")) - True - - # Witch scheme matching... - >>> pattern = URLPattern("https://") - >>> pattern.matches(httpx.URL("https://example.com")) - True - >>> pattern.matches(httpx.URL("http://example.com")) - False - - # With domain matching... - >>> pattern = URLPattern("https://example.com") - >>> pattern.matches(httpx.URL("https://example.com")) - True - >>> pattern.matches(httpx.URL("http://example.com")) - False - >>> pattern.matches(httpx.URL("https://other.com")) - False - - # Wildcard scheme, with domain matching... - >>> pattern = URLPattern("all://example.com") - >>> pattern.matches(httpx.URL("https://example.com")) - True - >>> pattern.matches(httpx.URL("http://example.com")) - True - >>> pattern.matches(httpx.URL("https://other.com")) - False - - # With port matching... - >>> pattern = URLPattern("https://example.com:1234") - >>> pattern.matches(httpx.URL("https://example.com:1234")) - True - >>> pattern.matches(httpx.URL("https://example.com")) - False - """ - - def __init__(self, pattern: str) -> None: - from ._urls import URL - - if pattern and ":" not in pattern: - raise ValueError( - f"Proxy keys should use proper URL forms rather " - f"than plain scheme strings. " - f'Instead of "{pattern}", use "{pattern}://"' - ) - - url = URL(pattern) - self.pattern = pattern - self.scheme = "" if url.scheme == "all" else url.scheme - self.host = "" if url.host == "*" else url.host - self.port = url.port - if not url.host or url.host == "*": - self.host_regex: typing.Pattern[str] | None = None - elif url.host.startswith("*."): - # *.example.com should match "www.example.com", but not "example.com" - domain = re.escape(url.host[2:]) - self.host_regex = re.compile(f"^.+\\.{domain}$") - elif url.host.startswith("*"): - # *example.com should match "www.example.com" and "example.com" - domain = re.escape(url.host[1:]) - self.host_regex = re.compile(f"^(.+\\.)?{domain}$") - else: - # example.com should match "example.com" but not "www.example.com" - domain = re.escape(url.host) - self.host_regex = re.compile(f"^{domain}$") - - def matches(self, other: URL) -> bool: - if self.scheme and self.scheme != other.scheme: - return False - if ( - self.host - and self.host_regex is not None - and not self.host_regex.match(other.host) - ): - return False - if self.port is not None and self.port != other.port: - return False - return True - - @property - def priority(self) -> tuple[int, int, int]: - """ - The priority allows URLPattern instances to be sortable, so that - we can match from most specific to least specific. - """ - # URLs with a port should take priority over URLs without a port. - port_priority = 0 if self.port is not None else 1 - # Longer hostnames should match first. - host_priority = -len(self.host) - # Longer schemes should match first. - scheme_priority = -len(self.scheme) - return (port_priority, host_priority, scheme_priority) - - def __hash__(self) -> int: - return hash(self.pattern) - - def __lt__(self, other: URLPattern) -> bool: - return self.priority < other.priority - - def __eq__(self, other: typing.Any) -> bool: - return isinstance(other, URLPattern) and self.pattern == other.pattern - - -def is_ipv4_hostname(hostname: str) -> bool: - try: - ipaddress.IPv4Address(hostname.split("/")[0]) - except Exception: - return False - return True - - -def is_ipv6_hostname(hostname: str) -> bool: - try: - ipaddress.IPv6Address(hostname.split("/")[0]) - except Exception: - return False - return True diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/py.typed b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/httpx/py.typed deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/ipykernel_launcher.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/ipykernel_launcher.py deleted file mode 100644 index 0739d4b1ae506c88ca00fd5986071fc703cba446..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/ipykernel_launcher.py +++ /dev/null @@ -1,18 +0,0 @@ -"""Entry point for launching an IPython kernel. - -This is separate from the ipykernel package so we can avoid doing imports until -after removing the cwd from sys.path. -""" - -import sys -from pathlib import Path - -if __name__ == "__main__": - # Remove the CWD from sys.path while we load stuff. - # This is added back by InteractiveShellApp.init_path() - if sys.path[0] == "" or Path(sys.path[0]) == Path.cwd(): - del sys.path[0] - - from ipykernel import kernelapp as app - - app.launch_new_instance() diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/isympy.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/isympy.py deleted file mode 100644 index 50e9bc78d08904b8c177105ee90d984ea4b01d20..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/isympy.py +++ /dev/null @@ -1,342 +0,0 @@ -""" -Python shell for SymPy. - -This is just a normal Python shell (IPython shell if you have the -IPython package installed), that executes the following commands for -the user: - - >>> from __future__ import division - >>> from sympy import * - >>> x, y, z, t = symbols('x y z t') - >>> k, m, n = symbols('k m n', integer=True) - >>> f, g, h = symbols('f g h', cls=Function) - >>> init_printing() - -So starting 'isympy' is equivalent to starting Python (or IPython) and -executing the above commands by hand. It is intended for easy and quick -experimentation with SymPy. isympy is a good way to use SymPy as an -interactive calculator. If you have IPython and Matplotlib installed, then -interactive plotting is enabled by default. - -COMMAND LINE OPTIONS --------------------- - --c CONSOLE, --console=CONSOLE - - Use the specified shell (Python or IPython) shell as the console - backend instead of the default one (IPython if present, Python - otherwise), e.g.: - - $isympy -c python - - CONSOLE must be one of 'ipython' or 'python' - --p PRETTY, --pretty PRETTY - - Setup pretty-printing in SymPy. When pretty-printing is enabled, - expressions can be printed with Unicode or ASCII. The default is - to use pretty-printing (with Unicode if the terminal supports it). - When this option is 'no', expressions will not be pretty-printed - and ASCII will be used: - - $isympy -p no - - PRETTY must be one of 'unicode', 'ascii', or 'no' - --t TYPES, --types=TYPES - - Setup the ground types for the polys. By default, gmpy ground types - are used if gmpy2 or gmpy is installed, otherwise it falls back to python - ground types, which are a little bit slower. You can manually - choose python ground types even if gmpy is installed (e.g., for - testing purposes): - - $isympy -t python - - TYPES must be one of 'gmpy', 'gmpy1' or 'python' - - Note that the ground type gmpy1 is primarily intended for testing; it - forces the use of gmpy version 1 even if gmpy2 is available. - - This is the same as setting the environment variable - SYMPY_GROUND_TYPES to the given ground type (e.g., - SYMPY_GROUND_TYPES='gmpy') - - The ground types can be determined interactively from the variable - sympy.polys.domains.GROUND_TYPES. - --o ORDER, --order ORDER - - Setup the ordering of terms for printing. The default is lex, which - orders terms lexicographically (e.g., x**2 + x + 1). You can choose - other orderings, such as rev-lex, which will use reverse - lexicographic ordering (e.g., 1 + x + x**2): - - $isympy -o rev-lex - - ORDER must be one of 'lex', 'rev-lex', 'grlex', 'rev-grlex', - 'grevlex', 'rev-grevlex', 'old', or 'none'. - - Note that for very large expressions, ORDER='none' may speed up - printing considerably but the terms will have no canonical order. - --q, --quiet - - Print only Python's and SymPy's versions to stdout at startup. - --d, --doctest - - Use the same format that should be used for doctests. This is - equivalent to -c python -p no. - --C, --no-cache - - Disable the caching mechanism. Disabling the cache may slow certain - operations down considerably. This is useful for testing the cache, - or for benchmarking, as the cache can result in deceptive timings. - - This is equivalent to setting the environment variable - SYMPY_USE_CACHE to 'no'. - --a, --auto-symbols (requires at least IPython 0.11) - - Automatically create missing symbols. Normally, typing a name of a - Symbol that has not been instantiated first would raise NameError, - but with this option enabled, any undefined name will be - automatically created as a Symbol. - - Note that this is intended only for interactive, calculator style - usage. In a script that uses SymPy, Symbols should be instantiated - at the top, so that it's clear what they are. - - This will not override any names that are already defined, which - includes the single character letters represented by the mnemonic - QCOSINE (see the "Gotchas and Pitfalls" document in the - documentation). You can delete existing names by executing "del - name". If a name is defined, typing "'name' in dir()" will return True. - - The Symbols that are created using this have default assumptions. - If you want to place assumptions on symbols, you should create them - using symbols() or var(). - - Finally, this only works in the top level namespace. So, for - example, if you define a function in isympy with an undefined - Symbol, it will not work. - - See also the -i and -I options. - --i, --int-to-Integer (requires at least IPython 0.11) - - Automatically wrap int literals with Integer. This makes it so that - things like 1/2 will come out as Rational(1, 2), rather than 0.5. This - works by preprocessing the source and wrapping all int literals with - Integer. Note that this will not change the behavior of int literals - assigned to variables, and it also won't change the behavior of functions - that return int literals. - - If you want an int, you can wrap the literal in int(), e.g. int(3)/int(2) - gives 1.5 (with division imported from __future__). - --I, --interactive (requires at least IPython 0.11) - - This is equivalent to --auto-symbols --int-to-Integer. Future options - designed for ease of interactive use may be added to this. - --D, --debug - - Enable debugging output. This is the same as setting the - environment variable SYMPY_DEBUG to 'True'. The debug status is set - in the variable SYMPY_DEBUG within isympy. - --- IPython options - - Additionally you can pass command line options directly to the IPython - interpreter (the standard Python shell is not supported). However you - need to add the '--' separator between two types of options, e.g the - startup banner option and the colors option. You need to enter the - options as required by the version of IPython that you are using, too: - - in IPython 0.11, - - $isympy -q -- --colors=NoColor - - or older versions of IPython, - - $isympy -q -- -colors NoColor - -See also isympy --help. -""" - -import os -import sys - -# DO NOT IMPORT SYMPY HERE! Or the setting of the sympy environment variables -# by the command line will break. - -def main() -> None: - from argparse import ArgumentParser, RawDescriptionHelpFormatter - - VERSION = None - if '--version' in sys.argv: - # We cannot import sympy before this is run, because flags like -C and - # -t set environment variables that must be set before SymPy is - # imported. The only thing we need to import it for is to get the - # version, which only matters with the --version flag. - import sympy - VERSION = sympy.__version__ - - usage = 'isympy [options] -- [ipython options]' - parser = ArgumentParser( - usage=usage, - description=__doc__, - formatter_class=RawDescriptionHelpFormatter, - ) - - parser.add_argument('--version', action='version', version=VERSION) - - parser.add_argument( - '-c', '--console', - dest='console', - action='store', - default=None, - choices=['ipython', 'python'], - metavar='CONSOLE', - help='select type of interactive session: ipython | python; defaults ' - 'to ipython if IPython is installed, otherwise python') - - parser.add_argument( - '-p', '--pretty', - dest='pretty', - action='store', - default=None, - metavar='PRETTY', - choices=['unicode', 'ascii', 'no'], - help='setup pretty printing: unicode | ascii | no; defaults to ' - 'unicode printing if the terminal supports it, otherwise ascii') - - parser.add_argument( - '-t', '--types', - dest='types', - action='store', - default=None, - metavar='TYPES', - choices=['gmpy', 'gmpy1', 'python'], - help='setup ground types: gmpy | gmpy1 | python; defaults to gmpy if gmpy2 ' - 'or gmpy is installed, otherwise python') - - parser.add_argument( - '-o', '--order', - dest='order', - action='store', - default=None, - metavar='ORDER', - choices=['lex', 'grlex', 'grevlex', 'rev-lex', 'rev-grlex', 'rev-grevlex', 'old', 'none'], - help='setup ordering of terms: [rev-]lex | [rev-]grlex | [rev-]grevlex | old | none; defaults to lex') - - parser.add_argument( - '-q', '--quiet', - dest='quiet', - action='store_true', - default=False, - help='print only version information at startup') - - parser.add_argument( - '-d', '--doctest', - dest='doctest', - action='store_true', - default=False, - help='use the doctest format for output (you can just copy and paste it)') - - parser.add_argument( - '-C', '--no-cache', - dest='cache', - action='store_false', - default=True, - help='disable caching mechanism') - - parser.add_argument( - '-a', '--auto-symbols', - dest='auto_symbols', - action='store_true', - default=False, - help='automatically construct missing symbols') - - parser.add_argument( - '-i', '--int-to-Integer', - dest='auto_int_to_Integer', - action='store_true', - default=False, - help="automatically wrap int literals with Integer") - - parser.add_argument( - '-I', '--interactive', - dest='interactive', - action='store_true', - default=False, - help="equivalent to -a -i") - - parser.add_argument( - '-D', '--debug', - dest='debug', - action='store_true', - default=False, - help='enable debugging output') - - (options, ipy_args) = parser.parse_known_args() - if '--' in ipy_args: - ipy_args.remove('--') - - if not options.cache: - os.environ['SYMPY_USE_CACHE'] = 'no' - - if options.types: - os.environ['SYMPY_GROUND_TYPES'] = options.types - - if options.debug: - os.environ['SYMPY_DEBUG'] = str(options.debug) - - if options.doctest: - options.pretty = 'no' - options.console = 'python' - - session = options.console - - if session is not None: - ipython = session == 'ipython' - else: - try: - import IPython - ipython = True - except ImportError: - if not options.quiet: - from sympy.interactive.session import no_ipython - print(no_ipython) - ipython = False - - args = { - 'pretty_print': True, - 'use_unicode': None, - 'use_latex': None, - 'order': None, - 'argv': ipy_args, - } - - if options.pretty == 'unicode': - args['use_unicode'] = True - elif options.pretty == 'ascii': - args['use_unicode'] = False - elif options.pretty == 'no': - args['pretty_print'] = False - - if options.order is not None: - args['order'] = options.order - - args['quiet'] = options.quiet - args['auto_symbols'] = options.auto_symbols or options.interactive - args['auto_int_to_Integer'] = options.auto_int_to_Integer or options.interactive - - from sympy.interactive import init_session - init_session(ipython, **args) - -if __name__ == "__main__": - main() diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/jsonpointer.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/jsonpointer.py deleted file mode 100644 index 3e97adda448bc6d24ffda7b15cd827cfde6d0926..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/jsonpointer.py +++ /dev/null @@ -1,348 +0,0 @@ -# -*- coding: utf-8 -*- -# -# python-json-pointer - An implementation of the JSON Pointer syntax -# https://github.com/stefankoegl/python-json-pointer -# -# Copyright (c) 2011 Stefan Kögl -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# - -""" Identify specific nodes in a JSON document (RFC 6901) """ - -# Will be parsed by setup.py to determine package metadata -__author__ = 'Stefan Kögl ' -__version__ = '3.0.0' -__website__ = 'https://github.com/stefankoegl/python-json-pointer' -__license__ = 'Modified BSD License' - -import copy -import re -from collections.abc import Mapping, Sequence -from itertools import tee, chain - -_nothing = object() - - -def set_pointer(doc, pointer, value, inplace=True): - """Resolves a pointer against doc and sets the value of the target within doc. - - With inplace set to true, doc is modified as long as pointer is not the - root. - - >>> obj = {'foo': {'anArray': [ {'prop': 44}], 'another prop': {'baz': 'A string' }}} - - >>> set_pointer(obj, '/foo/anArray/0/prop', 55) == \ - {'foo': {'another prop': {'baz': 'A string'}, 'anArray': [{'prop': 55}]}} - True - - >>> set_pointer(obj, '/foo/yet another prop', 'added prop') == \ - {'foo': {'another prop': {'baz': 'A string'}, 'yet another prop': 'added prop', 'anArray': [{'prop': 55}]}} - True - - >>> obj = {'foo': {}} - >>> set_pointer(obj, '/foo/a%20b', 'x') == \ - {'foo': {'a%20b': 'x' }} - True - """ - - pointer = JsonPointer(pointer) - return pointer.set(doc, value, inplace) - - -def resolve_pointer(doc, pointer, default=_nothing): - """ Resolves pointer against doc and returns the referenced object - - >>> obj = {'foo': {'anArray': [ {'prop': 44}], 'another prop': {'baz': 'A string' }}, 'a%20b': 1, 'c d': 2} - - >>> resolve_pointer(obj, '') == obj - True - - >>> resolve_pointer(obj, '/foo') == obj['foo'] - True - - >>> resolve_pointer(obj, '/foo/another prop') == obj['foo']['another prop'] - True - - >>> resolve_pointer(obj, '/foo/another prop/baz') == obj['foo']['another prop']['baz'] - True - - >>> resolve_pointer(obj, '/foo/anArray/0') == obj['foo']['anArray'][0] - True - - >>> resolve_pointer(obj, '/some/path', None) == None - True - - >>> resolve_pointer(obj, '/a b', None) == None - True - - >>> resolve_pointer(obj, '/a%20b') == 1 - True - - >>> resolve_pointer(obj, '/c d') == 2 - True - - >>> resolve_pointer(obj, '/c%20d', None) == None - True - """ - - pointer = JsonPointer(pointer) - return pointer.resolve(doc, default) - - -def pairwise(iterable): - """ Transforms a list to a list of tuples of adjacent items - - s -> (s0,s1), (s1,s2), (s2, s3), ... - - >>> list(pairwise([])) - [] - - >>> list(pairwise([1])) - [] - - >>> list(pairwise([1, 2, 3, 4])) - [(1, 2), (2, 3), (3, 4)] - """ - a, b = tee(iterable) - for _ in b: - break - return zip(a, b) - - -class JsonPointerException(Exception): - pass - - -class EndOfList(object): - """Result of accessing element "-" of a list""" - - def __init__(self, list_): - self.list_ = list_ - - def __repr__(self): - return '{cls}({lst})'.format(cls=self.__class__.__name__, - lst=repr(self.list_)) - - -class JsonPointer(object): - """A JSON Pointer that can reference parts of a JSON document""" - - # Array indices must not contain: - # leading zeros, signs, spaces, decimals, etc - _RE_ARRAY_INDEX = re.compile('0|[1-9][0-9]*$') - _RE_INVALID_ESCAPE = re.compile('(~[^01]|~$)') - - def __init__(self, pointer): - - # validate escapes - invalid_escape = self._RE_INVALID_ESCAPE.search(pointer) - if invalid_escape: - raise JsonPointerException('Found invalid escape {}'.format( - invalid_escape.group())) - - parts = pointer.split('/') - if parts.pop(0) != '': - raise JsonPointerException('Location must start with /') - - parts = [unescape(part) for part in parts] - self.parts = parts - - def to_last(self, doc): - """Resolves ptr until the last step, returns (sub-doc, last-step)""" - - if not self.parts: - return doc, None - - for part in self.parts[:-1]: - doc = self.walk(doc, part) - - return doc, JsonPointer.get_part(doc, self.parts[-1]) - - def resolve(self, doc, default=_nothing): - """Resolves the pointer against doc and returns the referenced object""" - - for part in self.parts: - - try: - doc = self.walk(doc, part) - except JsonPointerException: - if default is _nothing: - raise - else: - return default - - return doc - - get = resolve - - def set(self, doc, value, inplace=True): - """Resolve the pointer against the doc and replace the target with value.""" - - if len(self.parts) == 0: - if inplace: - raise JsonPointerException('Cannot set root in place') - return value - - if not inplace: - doc = copy.deepcopy(doc) - - (parent, part) = self.to_last(doc) - - if isinstance(parent, Sequence) and part == '-': - parent.append(value) - else: - parent[part] = value - - return doc - - @classmethod - def get_part(cls, doc, part): - """Returns the next step in the correct type""" - - if isinstance(doc, Mapping): - return part - - elif isinstance(doc, Sequence): - - if part == '-': - return part - - if not JsonPointer._RE_ARRAY_INDEX.match(str(part)): - raise JsonPointerException("'%s' is not a valid sequence index" % part) - - return int(part) - - elif hasattr(doc, '__getitem__'): - # Allow indexing via ducktyping - # if the target has defined __getitem__ - return part - - else: - raise JsonPointerException("Document '%s' does not support indexing, " - "must be mapping/sequence or support __getitem__" % type(doc)) - - def get_parts(self): - """Returns the list of the parts. For example, JsonPointer('/a/b').get_parts() == ['a', 'b']""" - - return self.parts - - def walk(self, doc, part): - """ Walks one step in doc and returns the referenced part """ - - part = JsonPointer.get_part(doc, part) - - assert hasattr(doc, '__getitem__'), "invalid document type %s" % (type(doc),) - - if isinstance(doc, Sequence): - if part == '-': - return EndOfList(doc) - - try: - return doc[part] - - except IndexError: - raise JsonPointerException("index '%s' is out of bounds" % (part,)) - - # Else the object is a mapping or supports __getitem__(so assume custom indexing) - try: - return doc[part] - - except KeyError: - raise JsonPointerException("member '%s' not found in %s" % (part, doc)) - - def contains(self, ptr): - """ Returns True if self contains the given ptr """ - return self.parts[:len(ptr.parts)] == ptr.parts - - def __contains__(self, item): - """ Returns True if self contains the given ptr """ - return self.contains(item) - - def join(self, suffix): - """ Returns a new JsonPointer with the given suffix append to this ptr """ - if isinstance(suffix, JsonPointer): - suffix_parts = suffix.parts - elif isinstance(suffix, str): - suffix_parts = JsonPointer(suffix).parts - else: - suffix_parts = suffix - try: - return JsonPointer.from_parts(chain(self.parts, suffix_parts)) - except: # noqa E722 - raise JsonPointerException("Invalid suffix") - - def __truediv__(self, suffix): # Python 3 - return self.join(suffix) - - @property - def path(self): - """Returns the string representation of the pointer - - >>> ptr = JsonPointer('/~0/0/~1').path == '/~0/0/~1' - """ - parts = [escape(part) for part in self.parts] - return ''.join('/' + part for part in parts) - - def __eq__(self, other): - """Compares a pointer to another object - - Pointers can be compared by comparing their strings (or splitted - strings), because no two different parts can point to the same - structure in an object (eg no different number representations) - """ - - if not isinstance(other, JsonPointer): - return False - - return self.parts == other.parts - - def __hash__(self): - return hash(tuple(self.parts)) - - def __str__(self): - return self.path - - def __repr__(self): - return type(self).__name__ + "(" + repr(self.path) + ")" - - @classmethod - def from_parts(cls, parts): - """Constructs a JsonPointer from a list of (unescaped) paths - - >>> JsonPointer.from_parts(['a', '~', '/', 0]).path == '/a/~0/~1/0' - True - """ - parts = [escape(str(part)) for part in parts] - ptr = cls(''.join('/' + part for part in parts)) - return ptr - - -def escape(s): - return s.replace('~', '~0').replace('/', '~1') - - -def unescape(s): - return s.replace('~1', '/').replace('~0', '~') diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/jupyter.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/jupyter.py deleted file mode 100644 index 852ee3118bee3af01263765837785d0a454919ae..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/jupyter.py +++ /dev/null @@ -1,7 +0,0 @@ -"""Launch the root jupyter command""" -from __future__ import annotations - -if __name__ == "__main__": - from jupyter_core.command import main - - main() diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/nest_asyncio.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/nest_asyncio.py deleted file mode 100644 index 1cb5c253fa0658a0adea3516f6463904396cf573..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/nest_asyncio.py +++ /dev/null @@ -1,219 +0,0 @@ -"""Patch asyncio to allow nested event loops.""" - -import asyncio -import asyncio.events as events -import os -import sys -import threading -from contextlib import contextmanager, suppress -from heapq import heappop - - -def apply(loop=None): - """Patch asyncio to make its event loop reentrant.""" - _patch_asyncio() - _patch_policy() - _patch_tornado() - - loop = loop or asyncio.get_event_loop() - _patch_loop(loop) - - -def _patch_asyncio(): - """Patch asyncio module to use pure Python tasks and futures.""" - - def run(main, *, debug=False): - loop = asyncio.get_event_loop() - loop.set_debug(debug) - task = asyncio.ensure_future(main) - try: - return loop.run_until_complete(task) - finally: - if not task.done(): - task.cancel() - with suppress(asyncio.CancelledError): - loop.run_until_complete(task) - - def _get_event_loop(stacklevel=3): - loop = events._get_running_loop() - if loop is None: - loop = events.get_event_loop_policy().get_event_loop() - return loop - - # Use module level _current_tasks, all_tasks and patch run method. - if hasattr(asyncio, '_nest_patched'): - return - if sys.version_info >= (3, 6, 0): - asyncio.Task = asyncio.tasks._CTask = asyncio.tasks.Task = \ - asyncio.tasks._PyTask - asyncio.Future = asyncio.futures._CFuture = asyncio.futures.Future = \ - asyncio.futures._PyFuture - if sys.version_info < (3, 7, 0): - asyncio.tasks._current_tasks = asyncio.tasks.Task._current_tasks - asyncio.all_tasks = asyncio.tasks.Task.all_tasks - if sys.version_info >= (3, 9, 0): - events._get_event_loop = events.get_event_loop = \ - asyncio.get_event_loop = _get_event_loop - asyncio.run = run - asyncio._nest_patched = True - - -def _patch_policy(): - """Patch the policy to always return a patched loop.""" - - def get_event_loop(self): - if self._local._loop is None: - loop = self.new_event_loop() - _patch_loop(loop) - self.set_event_loop(loop) - return self._local._loop - - policy = events.get_event_loop_policy() - policy.__class__.get_event_loop = get_event_loop - - -def _patch_loop(loop): - """Patch loop to make it reentrant.""" - - def run_forever(self): - with manage_run(self), manage_asyncgens(self): - while True: - self._run_once() - if self._stopping: - break - self._stopping = False - - def run_until_complete(self, future): - with manage_run(self): - f = asyncio.ensure_future(future, loop=self) - if f is not future: - f._log_destroy_pending = False - while not f.done(): - self._run_once() - if self._stopping: - break - if not f.done(): - raise RuntimeError( - 'Event loop stopped before Future completed.') - return f.result() - - def _run_once(self): - """ - Simplified re-implementation of asyncio's _run_once that - runs handles as they become ready. - """ - ready = self._ready - scheduled = self._scheduled - while scheduled and scheduled[0]._cancelled: - heappop(scheduled) - - timeout = ( - 0 if ready or self._stopping - else min(max( - scheduled[0]._when - self.time(), 0), 86400) if scheduled - else None) - event_list = self._selector.select(timeout) - self._process_events(event_list) - - end_time = self.time() + self._clock_resolution - while scheduled and scheduled[0]._when < end_time: - handle = heappop(scheduled) - ready.append(handle) - - for _ in range(len(ready)): - if not ready: - break - handle = ready.popleft() - if not handle._cancelled: - # preempt the current task so that that checks in - # Task.__step do not raise - curr_task = curr_tasks.pop(self, None) - - try: - handle._run() - finally: - # restore the current task - if curr_task is not None: - curr_tasks[self] = curr_task - - handle = None - - @contextmanager - def manage_run(self): - """Set up the loop for running.""" - self._check_closed() - old_thread_id = self._thread_id - old_running_loop = events._get_running_loop() - try: - self._thread_id = threading.get_ident() - events._set_running_loop(self) - self._num_runs_pending += 1 - if self._is_proactorloop: - if self._self_reading_future is None: - self.call_soon(self._loop_self_reading) - yield - finally: - self._thread_id = old_thread_id - events._set_running_loop(old_running_loop) - self._num_runs_pending -= 1 - if self._is_proactorloop: - if (self._num_runs_pending == 0 - and self._self_reading_future is not None): - ov = self._self_reading_future._ov - self._self_reading_future.cancel() - if ov is not None: - self._proactor._unregister(ov) - self._self_reading_future = None - - @contextmanager - def manage_asyncgens(self): - if not hasattr(sys, 'get_asyncgen_hooks'): - # Python version is too old. - return - old_agen_hooks = sys.get_asyncgen_hooks() - try: - self._set_coroutine_origin_tracking(self._debug) - if self._asyncgens is not None: - sys.set_asyncgen_hooks( - firstiter=self._asyncgen_firstiter_hook, - finalizer=self._asyncgen_finalizer_hook) - yield - finally: - self._set_coroutine_origin_tracking(False) - if self._asyncgens is not None: - sys.set_asyncgen_hooks(*old_agen_hooks) - - def _check_running(self): - """Do not throw exception if loop is already running.""" - pass - - if hasattr(loop, '_nest_patched'): - return - if not isinstance(loop, asyncio.BaseEventLoop): - raise ValueError('Can\'t patch loop of type %s' % type(loop)) - cls = loop.__class__ - cls.run_forever = run_forever - cls.run_until_complete = run_until_complete - cls._run_once = _run_once - cls._check_running = _check_running - cls._check_runnung = _check_running # typo in Python 3.7 source - cls._num_runs_pending = 1 if loop.is_running() else 0 - cls._is_proactorloop = ( - os.name == 'nt' and issubclass(cls, asyncio.ProactorEventLoop)) - if sys.version_info < (3, 7, 0): - cls._set_coroutine_origin_tracking = cls._set_coroutine_wrapper - curr_tasks = asyncio.tasks._current_tasks \ - if sys.version_info >= (3, 7, 0) else asyncio.Task._current_tasks - cls._nest_patched = True - - -def _patch_tornado(): - """ - If tornado is imported before nest_asyncio, make tornado aware of - the pure-Python asyncio Future. - """ - if 'tornado' in sys.modules: - import tornado.concurrent as tc # type: ignore - tc.Future = asyncio.Future - if asyncio.Future not in tc.FUTURES: - tc.FUTURES += (asyncio.Future,) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/opentelemetry_exporter_otlp_proto_http-1.26.0.dist-info/INSTALLER b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/opentelemetry_exporter_otlp_proto_http-1.26.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e38a32041e49332e5e81c2d363dc418d68..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/opentelemetry_exporter_otlp_proto_http-1.26.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/opentelemetry_exporter_otlp_proto_http-1.26.0.dist-info/METADATA b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/opentelemetry_exporter_otlp_proto_http-1.26.0.dist-info/METADATA deleted file mode 100644 index e4146c050b5063dd4e9bb1c5addfeee9ff638545..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/opentelemetry_exporter_otlp_proto_http-1.26.0.dist-info/METADATA +++ /dev/null @@ -1,55 +0,0 @@ -Metadata-Version: 2.3 -Name: opentelemetry-exporter-otlp-proto-http -Version: 1.26.0 -Summary: OpenTelemetry Collector Protobuf over HTTP Exporter -Project-URL: Homepage, https://github.com/open-telemetry/opentelemetry-python/tree/main/exporter/opentelemetry-exporter-otlp-proto-http -Author-email: OpenTelemetry Authors -License: Apache-2.0 -License-File: LICENSE -Classifier: Development Status :: 5 - Production/Stable -Classifier: Framework :: OpenTelemetry -Classifier: Framework :: OpenTelemetry :: Exporters -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: Apache Software License -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Requires-Python: >=3.8 -Requires-Dist: deprecated>=1.2.6 -Requires-Dist: googleapis-common-protos~=1.52 -Requires-Dist: opentelemetry-api~=1.15 -Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.26.0 -Requires-Dist: opentelemetry-proto==1.26.0 -Requires-Dist: opentelemetry-sdk~=1.26.0 -Requires-Dist: requests~=2.7 -Description-Content-Type: text/x-rst - -OpenTelemetry Collector Protobuf over HTTP Exporter -=================================================== - -|pypi| - -.. |pypi| image:: https://badge.fury.io/py/opentelemetry-exporter-otlp-proto-http.svg - :target: https://pypi.org/project/opentelemetry-exporter-otlp-proto-http/ - -This library allows to export data to the OpenTelemetry Collector using the OpenTelemetry Protocol using Protobuf over HTTP. - -Installation ------------- - -:: - - pip install opentelemetry-exporter-otlp-proto-http - - -References ----------- - -* `OpenTelemetry Collector Exporter `_ -* `OpenTelemetry Collector `_ -* `OpenTelemetry `_ -* `OpenTelemetry Protocol Specification `_ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/opentelemetry_exporter_otlp_proto_http-1.26.0.dist-info/REQUESTED b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/opentelemetry_exporter_otlp_proto_http-1.26.0.dist-info/REQUESTED deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pandocfilters.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pandocfilters.py deleted file mode 100644 index 68569d9543f21da356e37631ab891f6355b25cef..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pandocfilters.py +++ /dev/null @@ -1,304 +0,0 @@ -# Author: John MacFarlane -# Copyright: (C) 2013 John MacFarlane -# License: BSD3 - -""" -Functions to aid writing python scripts that process the pandoc -AST serialized as JSON. -""" - -import codecs -import hashlib -import io -import json -import os -import sys -import atexit -import shutil -import tempfile - - -# some utility-functions: make it easier to create your own filters - - -def get_filename4code(module, content, ext=None): - """Generate filename based on content - - The function ensures that the (temporary) directory exists, so that the - file can be written. - - By default, the directory won't be cleaned up, - so a filter can use the directory as a cache and - decide not to regenerate if there's no change. - - In case the user preferres the files to be temporary files, - an environment variable `PANDOCFILTER_CLEANUP` can be set to - any non-empty value such as `1` to - make sure the directory is created in a temporary location and removed - after finishing the filter. In this case there's no caching and files - will be regenerated each time the filter is run. - - Example: - filename = get_filename4code("myfilter", code) - """ - if os.getenv('PANDOCFILTER_CLEANUP'): - imagedir = tempfile.mkdtemp(prefix=module) - atexit.register(lambda: shutil.rmtree(imagedir)) - else: - imagedir = module + "-images" - fn = hashlib.sha1(content.encode(sys.getfilesystemencoding())).hexdigest() - try: - os.makedirs(imagedir, exist_ok=True) - sys.stderr.write('Created directory ' + imagedir + '\n') - except OSError: - sys.stderr.write('Could not create directory "' + imagedir + '"\n') - if ext: - fn += "." + ext - return os.path.join(imagedir, fn) - -def get_value(kv, key, value = None): - """get value from the keyvalues (options)""" - res = [] - for k, v in kv: - if k == key: - value = v - else: - res.append([k, v]) - return value, res - -def get_caption(kv): - """get caption from the keyvalues (options) - - Example: - if key == 'CodeBlock': - [[ident, classes, keyvals], code] = value - caption, typef, keyvals = get_caption(keyvals) - ... - return Para([Image([ident, [], keyvals], caption, [filename, typef])]) - """ - caption = [] - typef = "" - value, res = get_value(kv, u"caption") - if value is not None: - caption = [Str(value)] - typef = "fig:" - - return caption, typef, res - - -def get_extension(format, default, **alternates): - """get the extension for the result, needs a default and some specialisations - - Example: - filetype = get_extension(format, "png", html="svg", latex="eps") - """ - try: - return alternates[format] - except KeyError: - return default - -# end of utilities - - -def walk(x, action, format, meta): - """Walk a tree, applying an action to every object. - Returns a modified tree. An action is a function of the form - `action(key, value, format, meta)`, where: - - * `key` is the type of the pandoc object (e.g. 'Str', 'Para') `value` is - * the contents of the object (e.g. a string for 'Str', a list of - inline elements for 'Para') - * `format` is the target output format (as supplied by the - `format` argument of `walk`) - * `meta` is the document's metadata - - The return of an action is either: - - * `None`: this means that the object should remain unchanged - * a pandoc object: this will replace the original object - * a list of pandoc objects: these will replace the original object; the - list is merged with the neighbors of the orignal objects (spliced into - the list the original object belongs to); returning an empty list deletes - the object - """ - if isinstance(x, list): - array = [] - for item in x: - if isinstance(item, dict) and 't' in item: - res = action(item['t'], - item['c'] if 'c' in item else None, format, meta) - if res is None: - array.append(walk(item, action, format, meta)) - elif isinstance(res, list): - for z in res: - array.append(walk(z, action, format, meta)) - else: - array.append(walk(res, action, format, meta)) - else: - array.append(walk(item, action, format, meta)) - return array - elif isinstance(x, dict): - return {k: walk(v, action, format, meta) for k, v in x.items()} - else: - return x - -def toJSONFilter(action): - """Like `toJSONFilters`, but takes a single action as argument. - """ - toJSONFilters([action]) - - -def toJSONFilters(actions): - """Generate a JSON-to-JSON filter from stdin to stdout - - The filter: - - * reads a JSON-formatted pandoc document from stdin - * transforms it by walking the tree and performing the actions - * returns a new JSON-formatted pandoc document to stdout - - The argument `actions` is a list of functions of the form - `action(key, value, format, meta)`, as described in more - detail under `walk`. - - This function calls `applyJSONFilters`, with the `format` - argument provided by the first command-line argument, - if present. (Pandoc sets this by default when calling - filters.) - """ - try: - input_stream = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8') - except AttributeError: - # Python 2 does not have sys.stdin.buffer. - # REF: https://stackoverflow.com/questions/2467928/python-unicodeencode - input_stream = codecs.getreader("utf-8")(sys.stdin) - - source = input_stream.read() - if len(sys.argv) > 1: - format = sys.argv[1] - else: - format = "" - - sys.stdout.write(applyJSONFilters(actions, source, format)) - -def applyJSONFilters(actions, source, format=""): - """Walk through JSON structure and apply filters - - This: - - * reads a JSON-formatted pandoc document from a source string - * transforms it by walking the tree and performing the actions - * returns a new JSON-formatted pandoc document as a string - - The `actions` argument is a list of functions (see `walk` - for a full description). - - The argument `source` is a string encoded JSON object. - - The argument `format` is a string describing the output format. - - Returns a the new JSON-formatted pandoc document. - """ - - doc = json.loads(source) - - if 'meta' in doc: - meta = doc['meta'] - elif doc[0]: # old API - meta = doc[0]['unMeta'] - else: - meta = {} - altered = doc - for action in actions: - altered = walk(altered, action, format, meta) - - return json.dumps(altered) - - -def stringify(x): - """Walks the tree x and returns concatenated string content, - leaving out all formatting. - """ - result = [] - - def go(key, val, format, meta): - if key in ['Str', 'MetaString']: - result.append(val) - elif key == 'Code': - result.append(val[1]) - elif key == 'Math': - result.append(val[1]) - elif key == 'LineBreak': - result.append(" ") - elif key == 'SoftBreak': - result.append(" ") - elif key == 'Space': - result.append(" ") - - walk(x, go, "", {}) - return ''.join(result) - - -def attributes(attrs): - """Returns an attribute list, constructed from the - dictionary attrs. - """ - attrs = attrs or {} - ident = attrs.get("id", "") - classes = attrs.get("classes", []) - keyvals = [[x, attrs[x]] for x in attrs if (x != "classes" and x != "id")] - return [ident, classes, keyvals] - - -def elt(eltType, numargs): - def fun(*args): - lenargs = len(args) - if lenargs != numargs: - raise ValueError(eltType + ' expects ' + str(numargs) + - ' arguments, but given ' + str(lenargs)) - if numargs == 0: - xs = [] - elif len(args) == 1: - xs = args[0] - else: - xs = list(args) - return {'t': eltType, 'c': xs} - return fun - -# Constructors for block elements - -Plain = elt('Plain', 1) -Para = elt('Para', 1) -CodeBlock = elt('CodeBlock', 2) -RawBlock = elt('RawBlock', 2) -BlockQuote = elt('BlockQuote', 1) -OrderedList = elt('OrderedList', 2) -BulletList = elt('BulletList', 1) -DefinitionList = elt('DefinitionList', 1) -Header = elt('Header', 3) -HorizontalRule = elt('HorizontalRule', 0) -Table = elt('Table', 5) -Div = elt('Div', 2) -Null = elt('Null', 0) - -# Constructors for inline elements - -Str = elt('Str', 1) -Emph = elt('Emph', 1) -Strong = elt('Strong', 1) -Strikeout = elt('Strikeout', 1) -Superscript = elt('Superscript', 1) -Subscript = elt('Subscript', 1) -SmallCaps = elt('SmallCaps', 1) -Quoted = elt('Quoted', 2) -Cite = elt('Cite', 2) -Code = elt('Code', 2) -Space = elt('Space', 0) -LineBreak = elt('LineBreak', 0) -Math = elt('Math', 2) -RawInline = elt('RawInline', 2) -Link = elt('Link', 3) -Image = elt('Image', 3) -Note = elt('Note', 1) -SoftBreak = elt('SoftBreak', 0) -Span = elt('Span', 2) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pip-22.0.2.virtualenv b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pip-22.0.2.virtualenv deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/protobuf-3.20.3-py3.10-nspkg.pth b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/protobuf-3.20.3-py3.10-nspkg.pth deleted file mode 100644 index baef7a0f418633ed421ab4c995e4a4a233d9c368..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/protobuf-3.20.3-py3.10-nspkg.pth +++ /dev/null @@ -1 +0,0 @@ -import sys, types, os;has_mfs = sys.version_info > (3, 5);p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('google',));importlib = has_mfs and __import__('importlib.util');has_mfs and __import__('importlib.machinery');m = has_mfs and sys.modules.setdefault('google', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('google', [os.path.dirname(p)])));m = m or sys.modules.setdefault('google', types.ModuleType('google'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/COPYRIGHT.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/COPYRIGHT.txt deleted file mode 100644 index 7b6d508a7b4ff945cc285d445d693592c00c240d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/COPYRIGHT.txt +++ /dev/null @@ -1,46 +0,0 @@ -COPYRIGHT (c) 2008 - 2023, pycountry - -Pycountry is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or any later version. - -This project is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -Contributors: -- Christian Theune (2008-2020, 2022) -- Nate Schimmoller (2022-2023) -- Zachary Ware (2016, 2023) -- Alan Orth (2023) -- Ashok Argent-Katwala (2020) -- Bastien Vallet (2020) -- Chris R Bunney 2020 -- Christian Zagrodnick (2012-2013) -- Christoph Zwerschke (2013) -- Jakub Wilk (2020) -- Janis Kirsteins (2019) -- Justin Ryan Wagner 2014 -- Kevin Deldycke (2014, 2016) -- Louis Sautier (2020) -- Lucas Wiman (2015) -- Mario Vilas (2014) -- Michael Howitz (2020) -- Michał Bielawski (2021, 2023) -- Michał Górny (2020) -- Mike Taves (2023) -- Pedro Ferreira (2013) -- Stuart Prescott (2021) -- Victor Mireyev (2016) -- simon klemenc (2016) - -Additional Acknowledgements and Licensing Information: -- Data in the /src/databases/ and /src/locales/ folders is sourced from the Debian iso-codes project, available at: https://salsa.debian.org/iso-codes-team/iso-codes. This data is used under the terms of the GNU Lesser General Public License Version 2.1 (February 1999). - -The Debian iso-codes project is a collection of code lists for different standards, maintained and made available under the GNU Lesser General Public License Version 2.1. We gratefully acknowledge the Debian iso-codes team and contributors for their work and for making this resource freely available. - -The full text of the GNU Lesser General Public License Version 2.1 can be found at: https://salsa.debian.org/iso-codes-team/iso-codes/-/blob/main/COPYING. - -For the full text of the GNU Lesser General Public License, -see https://github.com/pycountry/pycountry/blob/main/LICENSE.txt. diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/__init__.py deleted file mode 100644 index 33c3b1d52a787b76901c9a75a255f7ed718229c6..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/__init__.py +++ /dev/null @@ -1,303 +0,0 @@ -"""pycountry""" - -import os.path -import unicodedata -from importlib import metadata as _importlib_metadata -from typing import Dict, List, Optional, Type - -import pycountry.db - -# We prioritise importing the backported `importlib_resources` -# because the function we use (`importlib.resources.files`) is only -# available from Python 3.9, but the module itself exists since 3.7. -# We install `importlib_resources` on Python < 3.9. -# TODO: Remove usage of importlib_resources once support for Python 3.8 is dropped -try: - import importlib_resources # type: ignore -except ModuleNotFoundError: - from importlib import resources as importlib_resources # type: ignore - - -def resource_filename(package_or_requirement: str, resource_name: str) -> str: - return str( - importlib_resources.files(package_or_requirement) / resource_name - ) - - -def get_version(distribution_name: str) -> Optional[str]: - try: - return _importlib_metadata.version(distribution_name) - except _importlib_metadata.PackageNotFoundError: - return "n/a" - - -# Variable annotations -LOCALES_DIR: str = resource_filename("pycountry", "locales") -DATABASE_DIR: str = resource_filename("pycountry", "databases") -__version__: Optional[str] = get_version("pycountry") - - -def remove_accents(input_str: str) -> str: - output_str = input_str - if not input_str.isascii(): - # Borrowed from https://stackoverflow.com/a/517974/1509718 - nfkd_form = unicodedata.normalize("NFKD", input_str) - output_str = "".join( - [c for c in nfkd_form if not unicodedata.combining(c)] - ) - return output_str - - -class ExistingCountries(pycountry.db.Database): - """Provides access to an ISO 3166 database (Countries).""" - - data_class = pycountry.db.Country - root_key = "3166-1" - - def search_fuzzy(self, query: str) -> List[Type["ExistingCountries"]]: - query = remove_accents(query.strip().lower()) - - # A country-code to points mapping for later sorting countries - # based on the query's matching incidence. - results: dict[str, int] = {} - - def add_result(country: "pycountry.db.Country", points: int) -> None: - results.setdefault(country.alpha_2, 0) - results[country.alpha_2] += points - - # Prio 1: exact matches on country names - try: - add_result(self.lookup(query), 50) - except LookupError: - pass - - # Prio 2: exact matches on subdivision names - match_subdivions = pycountry.Subdivisions.match( - self=subdivisions, query=query - ) - for candidate in match_subdivions: - add_result(candidate.country, 49) - - # Prio 3: partial matches on country names - for candidate in self: - # Higher priority for a match on the common name - for v in [ - candidate._fields.get("name"), - candidate._fields.get("official_name"), - candidate._fields.get("comment"), - ]: - if v is not None: - v = remove_accents(v.lower()) - if query in v: - # This prefers countries with a match early in their name - # and also balances against countries with a number of - # partial matches and their name containing 'new' in the - # middle - add_result( - candidate, max([5, 30 - (2 * v.find(query))]) - ) - break - - # Prio 4: partial matches on subdivision names - partial_match_subdivisions = pycountry.Subdivisions.partial_match( - self=subdivisions, query=query - ) - for candidate in partial_match_subdivisions: - v = candidate._fields.get("name") - v = remove_accents(v.lower()) - if query in v: - add_result(candidate.country, max([1, 5 - v.find(query)])) - - if not results: - raise LookupError(query) - - sorted_results = [ - self.get(alpha_2=x[0]) - # sort by points first, by alpha2 code second, and to ensure stable - # results the negative value allows us to sort reversely on the - # points but ascending on the country code. - for x in sorted(results.items(), key=lambda x: (-x[1], x[0])) - ] - return sorted_results - - -class HistoricCountries(ExistingCountries): - """Provides access to an ISO 3166-3 database - (Countries that have been removed from the standard).""" - - data_class = pycountry.db.Country - root_key = "3166-3" - - -class Scripts(pycountry.db.Database): - """Provides access to an ISO 15924 database (Scripts).""" - - data_class = "Script" - root_key = "15924" - - -class Currencies(pycountry.db.Database): - """Provides access to an ISO 4217 database (Currencies).""" - - data_class = "Currency" - root_key = "4217" - - -class Languages(pycountry.db.Database): - """Provides access to an ISO 639-1/2T/3 database (Languages).""" - - no_index = ["status", "scope", "type", "inverted_name", "common_name"] - - data_class = "Language" - root_key = "639-3" - - -class LanguageFamilies(pycountry.db.Database): - """Provides access to an ISO 639-5 database - (Language Families and Groups).""" - - data_class = "LanguageFamily" - root_key = "639-5" - - -class SubdivisionHierarchy(pycountry.db.Data): - def __init__(self, **kw): - if "parent" in kw: - kw["parent_code"] = kw["parent"] - else: - kw["parent_code"] = None - super().__init__(**kw) - self.country_code = self.code.split("-")[0] - if self.parent_code is not None: - # Split the parent_code to check if the country_code is already present - parts = self.parent_code.split("-") - if parts[0] != self.country_code: - self.parent_code = f"{self.country_code}-{self.parent_code}" - - @property - def country(self): - return countries.get(alpha_2=self.country_code) - - @property - def parent(self): - if not self.parent_code: - return None - return subdivisions.get(code=self.parent_code) - - -class Subdivisions(pycountry.db.Database): - # Note: subdivisions can be hierarchical to other subdivisions. The - # parent_code attribute is related to other subdivisions, *not* - # the country! - - data_class = SubdivisionHierarchy - no_index = ["name", "parent_code", "parent", "type"] - root_key = "3166-2" - - def _load(self, *args, **kw): - super()._load(*args, **kw) - - # Add index for the country code. - self.indices["country_code"] = {} - for subdivision in self: - divs = self.indices["country_code"].setdefault( - subdivision.country_code.lower(), set() - ) - divs.add(subdivision) - - def get(self, **kw): - default = kw.setdefault("default", None) - subdivisions = super().get(**kw) - if subdivisions is default and "country_code" in kw: - # This handles the case where we know about a country but there - # are no subdivisions: we return an empty list in this case - # (sticking to the expected type here) instead of None. - if countries.get(alpha_2=kw["country_code"]) is not None: - return [] - return subdivisions - - def match(self, query): - query = remove_accents(query.strip().lower()) - matching_candidates = [] - for candidate in subdivisions: - for v in candidate._fields.values(): - if v is not None: - v = remove_accents(v.lower()) - # Some names include alternative versions which we want to - # match exactly. - for w in v.split(";"): - if w == query: - matching_candidates.append(candidate) - break - - return matching_candidates - - def partial_match(self, query): - query = remove_accents(query.strip().lower()) - matching_candidates = [] - for candidate in subdivisions: - v = candidate._fields.get("name") - v = remove_accents(v.lower()) - if query in v: - matching_candidates.append(candidate) - - return matching_candidates - - def search_fuzzy(self, query: str) -> List[Type["Subdivisions"]]: - query = remove_accents(query.strip().lower()) - - # A Subdivision's code to points mapping for later sorting subdivisions - # based on the query's matching incidence. - results: dict[str, int] = {} - - def add_result( - subdivision: "pycountry.db.Subdivision", points: int - ) -> None: - results.setdefault(subdivision.code, 0) - results[subdivision.code] += points - - # Prio 1: exact matches on subdivision names - match_subdivisions = self.match(query) - for candidate in match_subdivisions: - add_result(candidate, 50) - - # Prio 2: partial matches on subdivision names - partial_match_subdivisions = self.partial_match(query) - for candidate in partial_match_subdivisions: - v = candidate._fields.get("name") - v = remove_accents(v.lower()) - if query in v: - add_result(candidate, max([1, 5 - v.find(query)])) - - if not results: - raise LookupError(query) - - sorted_results = [ - self.get(code=x[0]) - # sort by points first, by alpha2 code second, and to ensure stable - # results the negative value allows us to sort reversely on the - # points but ascending on the country code. - for x in sorted(results.items(), key=lambda x: (-x[1], x[0])) - ] - return sorted_results - - -# Initialize instances with type hints -countries: ExistingCountries = ExistingCountries( - os.path.join(DATABASE_DIR, "iso3166-1.json") -) -subdivisions: Subdivisions = Subdivisions( - os.path.join(DATABASE_DIR, "iso3166-2.json") -) -historic_countries: HistoricCountries = HistoricCountries( - os.path.join(DATABASE_DIR, "iso3166-3.json") -) - -currencies: Currencies = Currencies(os.path.join(DATABASE_DIR, "iso4217.json")) - -languages: Languages = Languages(os.path.join(DATABASE_DIR, "iso639-3.json")) -language_families: LanguageFamilies = LanguageFamilies( - os.path.join(DATABASE_DIR, "iso639-5.json") -) - -scripts: Scripts = Scripts(os.path.join(DATABASE_DIR, "iso15924.json")) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index eb56f8606c3680add41ca498110c18a60723f486..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/__pycache__/db.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/__pycache__/db.cpython-310.pyc deleted file mode 100644 index 56b55a39b2589523184c66777521f939916cd7df..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/__pycache__/db.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso15924.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso15924.json deleted file mode 100644 index 32a31139ab6f5ea0aedb7e598d37ddc44a8ac37e..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso15924.json +++ /dev/null @@ -1,914 +0,0 @@ -{ - "15924": [ - { - "alpha_4": "Adlm", - "name": "Adlam", - "numeric": "166" - }, - { - "alpha_4": "Afak", - "name": "Afaka", - "numeric": "439" - }, - { - "alpha_4": "Aghb", - "name": "Caucasian Albanian", - "numeric": "239" - }, - { - "alpha_4": "Ahom", - "name": "Ahom, Tai Ahom", - "numeric": "338" - }, - { - "alpha_4": "Arab", - "name": "Arabic", - "numeric": "160" - }, - { - "alpha_4": "Aran", - "name": "Arabic (Nastaliq variant)", - "numeric": "161" - }, - { - "alpha_4": "Armi", - "name": "Imperial Aramaic", - "numeric": "124" - }, - { - "alpha_4": "Armn", - "name": "Armenian", - "numeric": "230" - }, - { - "alpha_4": "Avst", - "name": "Avestan", - "numeric": "134" - }, - { - "alpha_4": "Bali", - "name": "Balinese", - "numeric": "360" - }, - { - "alpha_4": "Bamu", - "name": "Bamum", - "numeric": "435" - }, - { - "alpha_4": "Bass", - "name": "Bassa Vah", - "numeric": "259" - }, - { - "alpha_4": "Batk", - "name": "Batak", - "numeric": "365" - }, - { - "alpha_4": "Beng", - "name": "Bengali", - "numeric": "325" - }, - { - "alpha_4": "Bhks", - "name": "Bhaiksuki", - "numeric": "334" - }, - { - "alpha_4": "Blis", - "name": "Blissymbols", - "numeric": "550" - }, - { - "alpha_4": "Bopo", - "name": "Bopomofo", - "numeric": "285" - }, - { - "alpha_4": "Brah", - "name": "Brahmi", - "numeric": "300" - }, - { - "alpha_4": "Brai", - "name": "Braille", - "numeric": "570" - }, - { - "alpha_4": "Bugi", - "name": "Buginese", - "numeric": "367" - }, - { - "alpha_4": "Buhd", - "name": "Buhid", - "numeric": "372" - }, - { - "alpha_4": "Cakm", - "name": "Chakma", - "numeric": "349" - }, - { - "alpha_4": "Cans", - "name": "Unified Canadian Aboriginal Syllabics", - "numeric": "440" - }, - { - "alpha_4": "Cari", - "name": "Carian", - "numeric": "201" - }, - { - "alpha_4": "Cham", - "name": "Cham", - "numeric": "358" - }, - { - "alpha_4": "Cher", - "name": "Cherokee", - "numeric": "445" - }, - { - "alpha_4": "Cirt", - "name": "Cirth", - "numeric": "291" - }, - { - "alpha_4": "Copt", - "name": "Coptic", - "numeric": "204" - }, - { - "alpha_4": "Cprt", - "name": "Cypriot", - "numeric": "403" - }, - { - "alpha_4": "Cyrl", - "name": "Cyrillic", - "numeric": "220" - }, - { - "alpha_4": "Cyrs", - "name": "Cyrillic (Old Church Slavonic variant)", - "numeric": "221" - }, - { - "alpha_4": "Deva", - "name": "Devanagari (Nagari)", - "numeric": "315" - }, - { - "alpha_4": "Dsrt", - "name": "Deseret (Mormon)", - "numeric": "250" - }, - { - "alpha_4": "Dupl", - "name": "Duployan shorthand, Duployan stenography", - "numeric": "755" - }, - { - "alpha_4": "Egyd", - "name": "Egyptian demotic", - "numeric": "070" - }, - { - "alpha_4": "Egyh", - "name": "Egyptian hieratic", - "numeric": "060" - }, - { - "alpha_4": "Egyp", - "name": "Egyptian hieroglyphs", - "numeric": "050" - }, - { - "alpha_4": "Elba", - "name": "Elbasan", - "numeric": "226" - }, - { - "alpha_4": "Ethi", - "name": "Ethiopic (Geʻez)", - "numeric": "430" - }, - { - "alpha_4": "Geok", - "name": "Khutsuri (Asomtavruli and Nuskhuri)", - "numeric": "241" - }, - { - "alpha_4": "Geor", - "name": "Georgian (Mkhedruli)", - "numeric": "240" - }, - { - "alpha_4": "Glag", - "name": "Glagolitic", - "numeric": "225" - }, - { - "alpha_4": "Goth", - "name": "Gothic", - "numeric": "206" - }, - { - "alpha_4": "Gran", - "name": "Grantha", - "numeric": "343" - }, - { - "alpha_4": "Grek", - "name": "Greek", - "numeric": "200" - }, - { - "alpha_4": "Gujr", - "name": "Gujarati", - "numeric": "320" - }, - { - "alpha_4": "Guru", - "name": "Gurmukhi", - "numeric": "310" - }, - { - "alpha_4": "Hanb", - "name": "Han with Bopomofo (alias for Han + Bopomofo)", - "numeric": "503" - }, - { - "alpha_4": "Hang", - "name": "Hangul (Hangŭl, Hangeul)", - "numeric": "286" - }, - { - "alpha_4": "Hani", - "name": "Han (Hanzi, Kanji, Hanja)", - "numeric": "500" - }, - { - "alpha_4": "Hano", - "name": "Hanunoo (Hanunóo)", - "numeric": "371" - }, - { - "alpha_4": "Hans", - "name": "Han (Simplified variant)", - "numeric": "501" - }, - { - "alpha_4": "Hant", - "name": "Han (Traditional variant)", - "numeric": "502" - }, - { - "alpha_4": "Hatr", - "name": "Hatran", - "numeric": "127" - }, - { - "alpha_4": "Hebr", - "name": "Hebrew", - "numeric": "125" - }, - { - "alpha_4": "Hira", - "name": "Hiragana", - "numeric": "410" - }, - { - "alpha_4": "Hluw", - "name": "Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)", - "numeric": "080" - }, - { - "alpha_4": "Hmng", - "name": "Pahawh Hmong", - "numeric": "450" - }, - { - "alpha_4": "Hrkt", - "name": "Japanese syllabaries (alias for Hiragana + Katakana)", - "numeric": "412" - }, - { - "alpha_4": "Hung", - "name": "Old Hungarian (Hungarian Runic)", - "numeric": "176" - }, - { - "alpha_4": "Inds", - "name": "Indus (Harappan)", - "numeric": "610" - }, - { - "alpha_4": "Ital", - "name": "Old Italic (Etruscan, Oscan, etc.)", - "numeric": "210" - }, - { - "alpha_4": "Jamo", - "name": "Jamo (alias for Jamo subset of Hangul)", - "numeric": "284" - }, - { - "alpha_4": "Java", - "name": "Javanese", - "numeric": "361" - }, - { - "alpha_4": "Jpan", - "name": "Japanese (alias for Han + Hiragana + Katakana)", - "numeric": "413" - }, - { - "alpha_4": "Jurc", - "name": "Jurchen", - "numeric": "510" - }, - { - "alpha_4": "Kali", - "name": "Kayah Li", - "numeric": "357" - }, - { - "alpha_4": "Kana", - "name": "Katakana", - "numeric": "411" - }, - { - "alpha_4": "Khar", - "name": "Kharoshthi", - "numeric": "305" - }, - { - "alpha_4": "Khmr", - "name": "Khmer", - "numeric": "355" - }, - { - "alpha_4": "Khoj", - "name": "Khojki", - "numeric": "322" - }, - { - "alpha_4": "Kitl", - "name": "Khitan large script", - "numeric": "505" - }, - { - "alpha_4": "Kits", - "name": "Khitan small script", - "numeric": "288" - }, - { - "alpha_4": "Knda", - "name": "Kannada", - "numeric": "345" - }, - { - "alpha_4": "Kore", - "name": "Korean (alias for Hangul + Han)", - "numeric": "287" - }, - { - "alpha_4": "Kpel", - "name": "Kpelle", - "numeric": "436" - }, - { - "alpha_4": "Kthi", - "name": "Kaithi", - "numeric": "317" - }, - { - "alpha_4": "Lana", - "name": "Tai Tham (Lanna)", - "numeric": "351" - }, - { - "alpha_4": "Laoo", - "name": "Lao", - "numeric": "356" - }, - { - "alpha_4": "Latf", - "name": "Latin (Fraktur variant)", - "numeric": "217" - }, - { - "alpha_4": "Latg", - "name": "Latin (Gaelic variant)", - "numeric": "216" - }, - { - "alpha_4": "Latn", - "name": "Latin", - "numeric": "215" - }, - { - "alpha_4": "Leke", - "name": "Leke", - "numeric": "364" - }, - { - "alpha_4": "Lepc", - "name": "Lepcha (Róng)", - "numeric": "335" - }, - { - "alpha_4": "Limb", - "name": "Limbu", - "numeric": "336" - }, - { - "alpha_4": "Lina", - "name": "Linear A", - "numeric": "400" - }, - { - "alpha_4": "Linb", - "name": "Linear B", - "numeric": "401" - }, - { - "alpha_4": "Lisu", - "name": "Lisu (Fraser)", - "numeric": "399" - }, - { - "alpha_4": "Loma", - "name": "Loma", - "numeric": "437" - }, - { - "alpha_4": "Lyci", - "name": "Lycian", - "numeric": "202" - }, - { - "alpha_4": "Lydi", - "name": "Lydian", - "numeric": "116" - }, - { - "alpha_4": "Mahj", - "name": "Mahajani", - "numeric": "314" - }, - { - "alpha_4": "Mand", - "name": "Mandaic, Mandaean", - "numeric": "140" - }, - { - "alpha_4": "Mani", - "name": "Manichaean", - "numeric": "139" - }, - { - "alpha_4": "Marc", - "name": "Marchen", - "numeric": "332" - }, - { - "alpha_4": "Maya", - "name": "Mayan hieroglyphs", - "numeric": "090" - }, - { - "alpha_4": "Mend", - "name": "Mende Kikakui", - "numeric": "438" - }, - { - "alpha_4": "Merc", - "name": "Meroitic Cursive", - "numeric": "101" - }, - { - "alpha_4": "Mero", - "name": "Meroitic Hieroglyphs", - "numeric": "100" - }, - { - "alpha_4": "Mlym", - "name": "Malayalam", - "numeric": "347" - }, - { - "alpha_4": "Modi", - "name": "Modi, Moḍī", - "numeric": "324" - }, - { - "alpha_4": "Mong", - "name": "Mongolian", - "numeric": "145" - }, - { - "alpha_4": "Moon", - "name": "Moon (Moon code, Moon script, Moon type)", - "numeric": "218" - }, - { - "alpha_4": "Mroo", - "name": "Mro, Mru", - "numeric": "199" - }, - { - "alpha_4": "Mtei", - "name": "Meitei Mayek (Meithei, Meetei)", - "numeric": "337" - }, - { - "alpha_4": "Mult", - "name": "Multani", - "numeric": "323" - }, - { - "alpha_4": "Mymr", - "name": "Myanmar (Burmese)", - "numeric": "350" - }, - { - "alpha_4": "Narb", - "name": "Old North Arabian (Ancient North Arabian)", - "numeric": "106" - }, - { - "alpha_4": "Nbat", - "name": "Nabataean", - "numeric": "159" - }, - { - "alpha_4": "Newa", - "name": "Newa, Newar, Newari, Nepāla lipi", - "numeric": "333" - }, - { - "alpha_4": "Nkgb", - "name": "Nakhi Geba ('Na-'Khi ²Ggŏ-¹baw, Naxi Geba)", - "numeric": "420" - }, - { - "alpha_4": "Nkoo", - "name": "N’Ko", - "numeric": "165" - }, - { - "alpha_4": "Nshu", - "name": "Nüshu", - "numeric": "499" - }, - { - "alpha_4": "Ogam", - "name": "Ogham", - "numeric": "212" - }, - { - "alpha_4": "Olck", - "name": "Ol Chiki (Ol Cemet’, Ol, Santali)", - "numeric": "261" - }, - { - "alpha_4": "Orkh", - "name": "Old Turkic, Orkhon Runic", - "numeric": "175" - }, - { - "alpha_4": "Orya", - "name": "Oriya", - "numeric": "327" - }, - { - "alpha_4": "Osge", - "name": "Osage", - "numeric": "219" - }, - { - "alpha_4": "Osma", - "name": "Osmanya", - "numeric": "260" - }, - { - "alpha_4": "Palm", - "name": "Palmyrene", - "numeric": "126" - }, - { - "alpha_4": "Pauc", - "name": "Pau Cin Hau", - "numeric": "263" - }, - { - "alpha_4": "Perm", - "name": "Old Permic", - "numeric": "227" - }, - { - "alpha_4": "Phag", - "name": "Phags-pa", - "numeric": "331" - }, - { - "alpha_4": "Phli", - "name": "Inscriptional Pahlavi", - "numeric": "131" - }, - { - "alpha_4": "Phlp", - "name": "Psalter Pahlavi", - "numeric": "132" - }, - { - "alpha_4": "Phlv", - "name": "Book Pahlavi", - "numeric": "133" - }, - { - "alpha_4": "Phnx", - "name": "Phoenician", - "numeric": "115" - }, - { - "alpha_4": "Piqd", - "name": "Klingon (KLI pIqaD)", - "numeric": "293" - }, - { - "alpha_4": "Plrd", - "name": "Miao (Pollard)", - "numeric": "282" - }, - { - "alpha_4": "Prti", - "name": "Inscriptional Parthian", - "numeric": "130" - }, - { - "alpha_4": "Qaaa", - "name": "Reserved for private use (start)", - "numeric": "900" - }, - { - "alpha_4": "Qabx", - "name": "Reserved for private use (end)", - "numeric": "949" - }, - { - "alpha_4": "Rjng", - "name": "Rejang (Redjang, Kaganga)", - "numeric": "363" - }, - { - "alpha_4": "Roro", - "name": "Rongorongo", - "numeric": "620" - }, - { - "alpha_4": "Runr", - "name": "Runic", - "numeric": "211" - }, - { - "alpha_4": "Samr", - "name": "Samaritan", - "numeric": "123" - }, - { - "alpha_4": "Sara", - "name": "Sarati", - "numeric": "292" - }, - { - "alpha_4": "Sarb", - "name": "Old South Arabian", - "numeric": "105" - }, - { - "alpha_4": "Saur", - "name": "Saurashtra", - "numeric": "344" - }, - { - "alpha_4": "Sgnw", - "name": "SignWriting", - "numeric": "095" - }, - { - "alpha_4": "Shaw", - "name": "Shavian (Shaw)", - "numeric": "281" - }, - { - "alpha_4": "Shrd", - "name": "Sharada, Śāradā", - "numeric": "319" - }, - { - "alpha_4": "Sidd", - "name": "Siddham, Siddhaṃ, Siddhamātṛkā", - "numeric": "302" - }, - { - "alpha_4": "Sind", - "name": "Khudawadi, Sindhi", - "numeric": "318" - }, - { - "alpha_4": "Sinh", - "name": "Sinhala", - "numeric": "348" - }, - { - "alpha_4": "Sora", - "name": "Sora Sompeng", - "numeric": "398" - }, - { - "alpha_4": "Sund", - "name": "Sundanese", - "numeric": "362" - }, - { - "alpha_4": "Sylo", - "name": "Syloti Nagri", - "numeric": "316" - }, - { - "alpha_4": "Syrc", - "name": "Syriac", - "numeric": "135" - }, - { - "alpha_4": "Syre", - "name": "Syriac (Estrangelo variant)", - "numeric": "138" - }, - { - "alpha_4": "Syrj", - "name": "Syriac (Western variant)", - "numeric": "137" - }, - { - "alpha_4": "Syrn", - "name": "Syriac (Eastern variant)", - "numeric": "136" - }, - { - "alpha_4": "Tagb", - "name": "Tagbanwa", - "numeric": "373" - }, - { - "alpha_4": "Takr", - "name": "Takri, Ṭākrī, Ṭāṅkrī", - "numeric": "321" - }, - { - "alpha_4": "Tale", - "name": "Tai Le", - "numeric": "353" - }, - { - "alpha_4": "Talu", - "name": "New Tai Lue", - "numeric": "354" - }, - { - "alpha_4": "Taml", - "name": "Tamil", - "numeric": "346" - }, - { - "alpha_4": "Tang", - "name": "Tangut", - "numeric": "520" - }, - { - "alpha_4": "Tavt", - "name": "Tai Viet", - "numeric": "359" - }, - { - "alpha_4": "Telu", - "name": "Telugu", - "numeric": "340" - }, - { - "alpha_4": "Teng", - "name": "Tengwar", - "numeric": "290" - }, - { - "alpha_4": "Tfng", - "name": "Tifinagh (Berber)", - "numeric": "120" - }, - { - "alpha_4": "Tglg", - "name": "Tagalog (Baybayin, Alibata)", - "numeric": "370" - }, - { - "alpha_4": "Thaa", - "name": "Thaana", - "numeric": "170" - }, - { - "alpha_4": "Thai", - "name": "Thai", - "numeric": "352" - }, - { - "alpha_4": "Tibt", - "name": "Tibetan", - "numeric": "330" - }, - { - "alpha_4": "Tirh", - "name": "Tirhuta", - "numeric": "326" - }, - { - "alpha_4": "Ugar", - "name": "Ugaritic", - "numeric": "040" - }, - { - "alpha_4": "Vaii", - "name": "Vai", - "numeric": "470" - }, - { - "alpha_4": "Visp", - "name": "Visible Speech", - "numeric": "280" - }, - { - "alpha_4": "Wara", - "name": "Warang Citi (Varang Kshiti)", - "numeric": "262" - }, - { - "alpha_4": "Wole", - "name": "Woleai", - "numeric": "480" - }, - { - "alpha_4": "Xpeo", - "name": "Old Persian", - "numeric": "030" - }, - { - "alpha_4": "Xsux", - "name": "Cuneiform, Sumero-Akkadian", - "numeric": "020" - }, - { - "alpha_4": "Yiii", - "name": "Yi", - "numeric": "460" - }, - { - "alpha_4": "Zinh", - "name": "Code for inherited script", - "numeric": "994" - }, - { - "alpha_4": "Zmth", - "name": "Mathematical notation", - "numeric": "995" - }, - { - "alpha_4": "Zsye", - "name": "Symbols (Emoji variant)", - "numeric": "993" - }, - { - "alpha_4": "Zsym", - "name": "Symbols", - "numeric": "996" - }, - { - "alpha_4": "Zxxx", - "name": "Code for unwritten documents", - "numeric": "997" - }, - { - "alpha_4": "Zyyy", - "name": "Code for undetermined script", - "numeric": "998" - }, - { - "alpha_4": "Zzzz", - "name": "Code for uncoded script", - "numeric": "999" - } - ] -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso3166-1.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso3166-1.json deleted file mode 100644 index ee48a43ecb73808e5acbdc839cbe17f7cc32664b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso3166-1.json +++ /dev/null @@ -1,1931 +0,0 @@ -{ - "3166-1": [ - { - "alpha_2": "AW", - "alpha_3": "ABW", - "flag": "🇦🇼", - "name": "Aruba", - "numeric": "533" - }, - { - "alpha_2": "AF", - "alpha_3": "AFG", - "flag": "🇦🇫", - "name": "Afghanistan", - "numeric": "004", - "official_name": "Islamic Republic of Afghanistan" - }, - { - "alpha_2": "AO", - "alpha_3": "AGO", - "flag": "🇦🇴", - "name": "Angola", - "numeric": "024", - "official_name": "Republic of Angola" - }, - { - "alpha_2": "AI", - "alpha_3": "AIA", - "flag": "🇦🇮", - "name": "Anguilla", - "numeric": "660" - }, - { - "alpha_2": "AX", - "alpha_3": "ALA", - "flag": "🇦🇽", - "name": "Åland Islands", - "numeric": "248" - }, - { - "alpha_2": "AL", - "alpha_3": "ALB", - "flag": "🇦🇱", - "name": "Albania", - "numeric": "008", - "official_name": "Republic of Albania" - }, - { - "alpha_2": "AD", - "alpha_3": "AND", - "flag": "🇦🇩", - "name": "Andorra", - "numeric": "020", - "official_name": "Principality of Andorra" - }, - { - "alpha_2": "AE", - "alpha_3": "ARE", - "flag": "🇦🇪", - "name": "United Arab Emirates", - "numeric": "784" - }, - { - "alpha_2": "AR", - "alpha_3": "ARG", - "flag": "🇦🇷", - "name": "Argentina", - "numeric": "032", - "official_name": "Argentine Republic" - }, - { - "alpha_2": "AM", - "alpha_3": "ARM", - "flag": "🇦🇲", - "name": "Armenia", - "numeric": "051", - "official_name": "Republic of Armenia" - }, - { - "alpha_2": "AS", - "alpha_3": "ASM", - "flag": "🇦🇸", - "name": "American Samoa", - "numeric": "016" - }, - { - "alpha_2": "AQ", - "alpha_3": "ATA", - "flag": "🇦🇶", - "name": "Antarctica", - "numeric": "010" - }, - { - "alpha_2": "TF", - "alpha_3": "ATF", - "flag": "🇹🇫", - "name": "French Southern Territories", - "numeric": "260" - }, - { - "alpha_2": "AG", - "alpha_3": "ATG", - "flag": "🇦🇬", - "name": "Antigua and Barbuda", - "numeric": "028" - }, - { - "alpha_2": "AU", - "alpha_3": "AUS", - "flag": "🇦🇺", - "name": "Australia", - "numeric": "036" - }, - { - "alpha_2": "AT", - "alpha_3": "AUT", - "flag": "🇦🇹", - "name": "Austria", - "numeric": "040", - "official_name": "Republic of Austria" - }, - { - "alpha_2": "AZ", - "alpha_3": "AZE", - "flag": "🇦🇿", - "name": "Azerbaijan", - "numeric": "031", - "official_name": "Republic of Azerbaijan" - }, - { - "alpha_2": "BI", - "alpha_3": "BDI", - "flag": "🇧🇮", - "name": "Burundi", - "numeric": "108", - "official_name": "Republic of Burundi" - }, - { - "alpha_2": "BE", - "alpha_3": "BEL", - "flag": "🇧🇪", - "name": "Belgium", - "numeric": "056", - "official_name": "Kingdom of Belgium" - }, - { - "alpha_2": "BJ", - "alpha_3": "BEN", - "flag": "🇧🇯", - "name": "Benin", - "numeric": "204", - "official_name": "Republic of Benin" - }, - { - "alpha_2": "BQ", - "alpha_3": "BES", - "flag": "🇧🇶", - "name": "Bonaire, Sint Eustatius and Saba", - "numeric": "535", - "official_name": "Bonaire, Sint Eustatius and Saba" - }, - { - "alpha_2": "BF", - "alpha_3": "BFA", - "flag": "🇧🇫", - "name": "Burkina Faso", - "numeric": "854" - }, - { - "alpha_2": "BD", - "alpha_3": "BGD", - "flag": "🇧🇩", - "name": "Bangladesh", - "numeric": "050", - "official_name": "People's Republic of Bangladesh" - }, - { - "alpha_2": "BG", - "alpha_3": "BGR", - "flag": "🇧🇬", - "name": "Bulgaria", - "numeric": "100", - "official_name": "Republic of Bulgaria" - }, - { - "alpha_2": "BH", - "alpha_3": "BHR", - "flag": "🇧🇭", - "name": "Bahrain", - "numeric": "048", - "official_name": "Kingdom of Bahrain" - }, - { - "alpha_2": "BS", - "alpha_3": "BHS", - "flag": "🇧🇸", - "name": "Bahamas", - "numeric": "044", - "official_name": "Commonwealth of the Bahamas" - }, - { - "alpha_2": "BA", - "alpha_3": "BIH", - "flag": "🇧🇦", - "name": "Bosnia and Herzegovina", - "numeric": "070", - "official_name": "Republic of Bosnia and Herzegovina" - }, - { - "alpha_2": "BL", - "alpha_3": "BLM", - "flag": "🇧🇱", - "name": "Saint Barthélemy", - "numeric": "652" - }, - { - "alpha_2": "BY", - "alpha_3": "BLR", - "flag": "🇧🇾", - "name": "Belarus", - "numeric": "112", - "official_name": "Republic of Belarus" - }, - { - "alpha_2": "BZ", - "alpha_3": "BLZ", - "flag": "🇧🇿", - "name": "Belize", - "numeric": "084" - }, - { - "alpha_2": "BM", - "alpha_3": "BMU", - "flag": "🇧🇲", - "name": "Bermuda", - "numeric": "060" - }, - { - "alpha_2": "BO", - "alpha_3": "BOL", - "common_name": "Bolivia", - "flag": "🇧🇴", - "name": "Bolivia, Plurinational State of", - "numeric": "068", - "official_name": "Plurinational State of Bolivia" - }, - { - "alpha_2": "BR", - "alpha_3": "BRA", - "flag": "🇧🇷", - "name": "Brazil", - "numeric": "076", - "official_name": "Federative Republic of Brazil" - }, - { - "alpha_2": "BB", - "alpha_3": "BRB", - "flag": "🇧🇧", - "name": "Barbados", - "numeric": "052" - }, - { - "alpha_2": "BN", - "alpha_3": "BRN", - "flag": "🇧🇳", - "name": "Brunei Darussalam", - "numeric": "096" - }, - { - "alpha_2": "BT", - "alpha_3": "BTN", - "flag": "🇧🇹", - "name": "Bhutan", - "numeric": "064", - "official_name": "Kingdom of Bhutan" - }, - { - "alpha_2": "BV", - "alpha_3": "BVT", - "flag": "🇧🇻", - "name": "Bouvet Island", - "numeric": "074" - }, - { - "alpha_2": "BW", - "alpha_3": "BWA", - "flag": "🇧🇼", - "name": "Botswana", - "numeric": "072", - "official_name": "Republic of Botswana" - }, - { - "alpha_2": "CF", - "alpha_3": "CAF", - "flag": "🇨🇫", - "name": "Central African Republic", - "numeric": "140" - }, - { - "alpha_2": "CA", - "alpha_3": "CAN", - "flag": "🇨🇦", - "name": "Canada", - "numeric": "124" - }, - { - "alpha_2": "CC", - "alpha_3": "CCK", - "flag": "🇨🇨", - "name": "Cocos (Keeling) Islands", - "numeric": "166" - }, - { - "alpha_2": "CH", - "alpha_3": "CHE", - "flag": "🇨🇭", - "name": "Switzerland", - "numeric": "756", - "official_name": "Swiss Confederation" - }, - { - "alpha_2": "CL", - "alpha_3": "CHL", - "flag": "🇨🇱", - "name": "Chile", - "numeric": "152", - "official_name": "Republic of Chile" - }, - { - "alpha_2": "CN", - "alpha_3": "CHN", - "flag": "🇨🇳", - "name": "China", - "numeric": "156", - "official_name": "People's Republic of China" - }, - { - "alpha_2": "CI", - "alpha_3": "CIV", - "flag": "🇨🇮", - "name": "Côte d'Ivoire", - "numeric": "384", - "official_name": "Republic of Côte d'Ivoire" - }, - { - "alpha_2": "CM", - "alpha_3": "CMR", - "flag": "🇨🇲", - "name": "Cameroon", - "numeric": "120", - "official_name": "Republic of Cameroon" - }, - { - "alpha_2": "CD", - "alpha_3": "COD", - "flag": "🇨🇩", - "name": "Congo, The Democratic Republic of the", - "numeric": "180" - }, - { - "alpha_2": "CG", - "alpha_3": "COG", - "flag": "🇨🇬", - "name": "Congo", - "numeric": "178", - "official_name": "Republic of the Congo" - }, - { - "alpha_2": "CK", - "alpha_3": "COK", - "flag": "🇨🇰", - "name": "Cook Islands", - "numeric": "184" - }, - { - "alpha_2": "CO", - "alpha_3": "COL", - "flag": "🇨🇴", - "name": "Colombia", - "numeric": "170", - "official_name": "Republic of Colombia" - }, - { - "alpha_2": "KM", - "alpha_3": "COM", - "flag": "🇰🇲", - "name": "Comoros", - "numeric": "174", - "official_name": "Union of the Comoros" - }, - { - "alpha_2": "CV", - "alpha_3": "CPV", - "flag": "🇨🇻", - "name": "Cabo Verde", - "numeric": "132", - "official_name": "Republic of Cabo Verde" - }, - { - "alpha_2": "CR", - "alpha_3": "CRI", - "flag": "🇨🇷", - "name": "Costa Rica", - "numeric": "188", - "official_name": "Republic of Costa Rica" - }, - { - "alpha_2": "CU", - "alpha_3": "CUB", - "flag": "🇨🇺", - "name": "Cuba", - "numeric": "192", - "official_name": "Republic of Cuba" - }, - { - "alpha_2": "CW", - "alpha_3": "CUW", - "flag": "🇨🇼", - "name": "Curaçao", - "numeric": "531", - "official_name": "Curaçao" - }, - { - "alpha_2": "CX", - "alpha_3": "CXR", - "flag": "🇨🇽", - "name": "Christmas Island", - "numeric": "162" - }, - { - "alpha_2": "KY", - "alpha_3": "CYM", - "flag": "🇰🇾", - "name": "Cayman Islands", - "numeric": "136" - }, - { - "alpha_2": "CY", - "alpha_3": "CYP", - "flag": "🇨🇾", - "name": "Cyprus", - "numeric": "196", - "official_name": "Republic of Cyprus" - }, - { - "alpha_2": "CZ", - "alpha_3": "CZE", - "flag": "🇨🇿", - "name": "Czechia", - "numeric": "203", - "official_name": "Czech Republic" - }, - { - "alpha_2": "DE", - "alpha_3": "DEU", - "flag": "🇩🇪", - "name": "Germany", - "numeric": "276", - "official_name": "Federal Republic of Germany" - }, - { - "alpha_2": "DJ", - "alpha_3": "DJI", - "flag": "🇩🇯", - "name": "Djibouti", - "numeric": "262", - "official_name": "Republic of Djibouti" - }, - { - "alpha_2": "DM", - "alpha_3": "DMA", - "flag": "🇩🇲", - "name": "Dominica", - "numeric": "212", - "official_name": "Commonwealth of Dominica" - }, - { - "alpha_2": "DK", - "alpha_3": "DNK", - "flag": "🇩🇰", - "name": "Denmark", - "numeric": "208", - "official_name": "Kingdom of Denmark" - }, - { - "alpha_2": "DO", - "alpha_3": "DOM", - "flag": "🇩🇴", - "name": "Dominican Republic", - "numeric": "214" - }, - { - "alpha_2": "DZ", - "alpha_3": "DZA", - "flag": "🇩🇿", - "name": "Algeria", - "numeric": "012", - "official_name": "People's Democratic Republic of Algeria" - }, - { - "alpha_2": "EC", - "alpha_3": "ECU", - "flag": "🇪🇨", - "name": "Ecuador", - "numeric": "218", - "official_name": "Republic of Ecuador" - }, - { - "alpha_2": "EG", - "alpha_3": "EGY", - "flag": "🇪🇬", - "name": "Egypt", - "numeric": "818", - "official_name": "Arab Republic of Egypt" - }, - { - "alpha_2": "ER", - "alpha_3": "ERI", - "flag": "🇪🇷", - "name": "Eritrea", - "numeric": "232", - "official_name": "the State of Eritrea" - }, - { - "alpha_2": "EH", - "alpha_3": "ESH", - "flag": "🇪🇭", - "name": "Western Sahara", - "numeric": "732" - }, - { - "alpha_2": "ES", - "alpha_3": "ESP", - "flag": "🇪🇸", - "name": "Spain", - "numeric": "724", - "official_name": "Kingdom of Spain" - }, - { - "alpha_2": "EE", - "alpha_3": "EST", - "flag": "🇪🇪", - "name": "Estonia", - "numeric": "233", - "official_name": "Republic of Estonia" - }, - { - "alpha_2": "ET", - "alpha_3": "ETH", - "flag": "🇪🇹", - "name": "Ethiopia", - "numeric": "231", - "official_name": "Federal Democratic Republic of Ethiopia" - }, - { - "alpha_2": "FI", - "alpha_3": "FIN", - "flag": "🇫🇮", - "name": "Finland", - "numeric": "246", - "official_name": "Republic of Finland" - }, - { - "alpha_2": "FJ", - "alpha_3": "FJI", - "flag": "🇫🇯", - "name": "Fiji", - "numeric": "242", - "official_name": "Republic of Fiji" - }, - { - "alpha_2": "FK", - "alpha_3": "FLK", - "flag": "🇫🇰", - "name": "Falkland Islands (Malvinas)", - "numeric": "238" - }, - { - "alpha_2": "FR", - "alpha_3": "FRA", - "flag": "🇫🇷", - "name": "France", - "numeric": "250", - "official_name": "French Republic" - }, - { - "alpha_2": "FO", - "alpha_3": "FRO", - "flag": "🇫🇴", - "name": "Faroe Islands", - "numeric": "234" - }, - { - "alpha_2": "FM", - "alpha_3": "FSM", - "flag": "🇫🇲", - "name": "Micronesia, Federated States of", - "numeric": "583", - "official_name": "Federated States of Micronesia" - }, - { - "alpha_2": "GA", - "alpha_3": "GAB", - "flag": "🇬🇦", - "name": "Gabon", - "numeric": "266", - "official_name": "Gabonese Republic" - }, - { - "alpha_2": "GB", - "alpha_3": "GBR", - "flag": "🇬🇧", - "name": "United Kingdom", - "numeric": "826", - "official_name": "United Kingdom of Great Britain and Northern Ireland" - }, - { - "alpha_2": "GE", - "alpha_3": "GEO", - "flag": "🇬🇪", - "name": "Georgia", - "numeric": "268" - }, - { - "alpha_2": "GG", - "alpha_3": "GGY", - "flag": "🇬🇬", - "name": "Guernsey", - "numeric": "831" - }, - { - "alpha_2": "GH", - "alpha_3": "GHA", - "flag": "🇬🇭", - "name": "Ghana", - "numeric": "288", - "official_name": "Republic of Ghana" - }, - { - "alpha_2": "GI", - "alpha_3": "GIB", - "flag": "🇬🇮", - "name": "Gibraltar", - "numeric": "292" - }, - { - "alpha_2": "GN", - "alpha_3": "GIN", - "flag": "🇬🇳", - "name": "Guinea", - "numeric": "324", - "official_name": "Republic of Guinea" - }, - { - "alpha_2": "GP", - "alpha_3": "GLP", - "flag": "🇬🇵", - "name": "Guadeloupe", - "numeric": "312" - }, - { - "alpha_2": "GM", - "alpha_3": "GMB", - "flag": "🇬🇲", - "name": "Gambia", - "numeric": "270", - "official_name": "Republic of the Gambia" - }, - { - "alpha_2": "GW", - "alpha_3": "GNB", - "flag": "🇬🇼", - "name": "Guinea-Bissau", - "numeric": "624", - "official_name": "Republic of Guinea-Bissau" - }, - { - "alpha_2": "GQ", - "alpha_3": "GNQ", - "flag": "🇬🇶", - "name": "Equatorial Guinea", - "numeric": "226", - "official_name": "Republic of Equatorial Guinea" - }, - { - "alpha_2": "GR", - "alpha_3": "GRC", - "flag": "🇬🇷", - "name": "Greece", - "numeric": "300", - "official_name": "Hellenic Republic" - }, - { - "alpha_2": "GD", - "alpha_3": "GRD", - "flag": "🇬🇩", - "name": "Grenada", - "numeric": "308" - }, - { - "alpha_2": "GL", - "alpha_3": "GRL", - "flag": "🇬🇱", - "name": "Greenland", - "numeric": "304" - }, - { - "alpha_2": "GT", - "alpha_3": "GTM", - "flag": "🇬🇹", - "name": "Guatemala", - "numeric": "320", - "official_name": "Republic of Guatemala" - }, - { - "alpha_2": "GF", - "alpha_3": "GUF", - "flag": "🇬🇫", - "name": "French Guiana", - "numeric": "254" - }, - { - "alpha_2": "GU", - "alpha_3": "GUM", - "flag": "🇬🇺", - "name": "Guam", - "numeric": "316" - }, - { - "alpha_2": "GY", - "alpha_3": "GUY", - "flag": "🇬🇾", - "name": "Guyana", - "numeric": "328", - "official_name": "Republic of Guyana" - }, - { - "alpha_2": "HK", - "alpha_3": "HKG", - "flag": "🇭🇰", - "name": "Hong Kong", - "numeric": "344", - "official_name": "Hong Kong Special Administrative Region of China" - }, - { - "alpha_2": "HM", - "alpha_3": "HMD", - "flag": "🇭🇲", - "name": "Heard Island and McDonald Islands", - "numeric": "334" - }, - { - "alpha_2": "HN", - "alpha_3": "HND", - "flag": "🇭🇳", - "name": "Honduras", - "numeric": "340", - "official_name": "Republic of Honduras" - }, - { - "alpha_2": "HR", - "alpha_3": "HRV", - "flag": "🇭🇷", - "name": "Croatia", - "numeric": "191", - "official_name": "Republic of Croatia" - }, - { - "alpha_2": "HT", - "alpha_3": "HTI", - "flag": "🇭🇹", - "name": "Haiti", - "numeric": "332", - "official_name": "Republic of Haiti" - }, - { - "alpha_2": "HU", - "alpha_3": "HUN", - "flag": "🇭🇺", - "name": "Hungary", - "numeric": "348", - "official_name": "Hungary" - }, - { - "alpha_2": "ID", - "alpha_3": "IDN", - "flag": "🇮🇩", - "name": "Indonesia", - "numeric": "360", - "official_name": "Republic of Indonesia" - }, - { - "alpha_2": "IM", - "alpha_3": "IMN", - "flag": "🇮🇲", - "name": "Isle of Man", - "numeric": "833" - }, - { - "alpha_2": "IN", - "alpha_3": "IND", - "flag": "🇮🇳", - "name": "India", - "numeric": "356", - "official_name": "Republic of India" - }, - { - "alpha_2": "IO", - "alpha_3": "IOT", - "flag": "🇮🇴", - "name": "British Indian Ocean Territory", - "numeric": "086" - }, - { - "alpha_2": "IE", - "alpha_3": "IRL", - "flag": "🇮🇪", - "name": "Ireland", - "numeric": "372" - }, - { - "alpha_2": "IR", - "alpha_3": "IRN", - "common_name": "Iran", - "flag": "🇮🇷", - "name": "Iran, Islamic Republic of", - "numeric": "364", - "official_name": "Islamic Republic of Iran" - }, - { - "alpha_2": "IQ", - "alpha_3": "IRQ", - "flag": "🇮🇶", - "name": "Iraq", - "numeric": "368", - "official_name": "Republic of Iraq" - }, - { - "alpha_2": "IS", - "alpha_3": "ISL", - "flag": "🇮🇸", - "name": "Iceland", - "numeric": "352", - "official_name": "Republic of Iceland" - }, - { - "alpha_2": "IL", - "alpha_3": "ISR", - "flag": "🇮🇱", - "name": "Israel", - "numeric": "376", - "official_name": "State of Israel" - }, - { - "alpha_2": "IT", - "alpha_3": "ITA", - "flag": "🇮🇹", - "name": "Italy", - "numeric": "380", - "official_name": "Italian Republic" - }, - { - "alpha_2": "JM", - "alpha_3": "JAM", - "flag": "🇯🇲", - "name": "Jamaica", - "numeric": "388" - }, - { - "alpha_2": "JE", - "alpha_3": "JEY", - "flag": "🇯🇪", - "name": "Jersey", - "numeric": "832" - }, - { - "alpha_2": "JO", - "alpha_3": "JOR", - "flag": "🇯🇴", - "name": "Jordan", - "numeric": "400", - "official_name": "Hashemite Kingdom of Jordan" - }, - { - "alpha_2": "JP", - "alpha_3": "JPN", - "flag": "🇯🇵", - "name": "Japan", - "numeric": "392" - }, - { - "alpha_2": "KZ", - "alpha_3": "KAZ", - "flag": "🇰🇿", - "name": "Kazakhstan", - "numeric": "398", - "official_name": "Republic of Kazakhstan" - }, - { - "alpha_2": "KE", - "alpha_3": "KEN", - "flag": "🇰🇪", - "name": "Kenya", - "numeric": "404", - "official_name": "Republic of Kenya" - }, - { - "alpha_2": "KG", - "alpha_3": "KGZ", - "flag": "🇰🇬", - "name": "Kyrgyzstan", - "numeric": "417", - "official_name": "Kyrgyz Republic" - }, - { - "alpha_2": "KH", - "alpha_3": "KHM", - "flag": "🇰🇭", - "name": "Cambodia", - "numeric": "116", - "official_name": "Kingdom of Cambodia" - }, - { - "alpha_2": "KI", - "alpha_3": "KIR", - "flag": "🇰🇮", - "name": "Kiribati", - "numeric": "296", - "official_name": "Republic of Kiribati" - }, - { - "alpha_2": "KN", - "alpha_3": "KNA", - "flag": "🇰🇳", - "name": "Saint Kitts and Nevis", - "numeric": "659" - }, - { - "alpha_2": "KR", - "alpha_3": "KOR", - "common_name": "South Korea", - "flag": "🇰🇷", - "name": "Korea, Republic of", - "numeric": "410" - }, - { - "alpha_2": "KW", - "alpha_3": "KWT", - "flag": "🇰🇼", - "name": "Kuwait", - "numeric": "414", - "official_name": "State of Kuwait" - }, - { - "alpha_2": "LA", - "alpha_3": "LAO", - "common_name": "Laos", - "flag": "🇱🇦", - "name": "Lao People's Democratic Republic", - "numeric": "418" - }, - { - "alpha_2": "LB", - "alpha_3": "LBN", - "flag": "🇱🇧", - "name": "Lebanon", - "numeric": "422", - "official_name": "Lebanese Republic" - }, - { - "alpha_2": "LR", - "alpha_3": "LBR", - "flag": "🇱🇷", - "name": "Liberia", - "numeric": "430", - "official_name": "Republic of Liberia" - }, - { - "alpha_2": "LY", - "alpha_3": "LBY", - "flag": "🇱🇾", - "name": "Libya", - "numeric": "434", - "official_name": "Libya" - }, - { - "alpha_2": "LC", - "alpha_3": "LCA", - "flag": "🇱🇨", - "name": "Saint Lucia", - "numeric": "662" - }, - { - "alpha_2": "LI", - "alpha_3": "LIE", - "flag": "🇱🇮", - "name": "Liechtenstein", - "numeric": "438", - "official_name": "Principality of Liechtenstein" - }, - { - "alpha_2": "LK", - "alpha_3": "LKA", - "flag": "🇱🇰", - "name": "Sri Lanka", - "numeric": "144", - "official_name": "Democratic Socialist Republic of Sri Lanka" - }, - { - "alpha_2": "LS", - "alpha_3": "LSO", - "flag": "🇱🇸", - "name": "Lesotho", - "numeric": "426", - "official_name": "Kingdom of Lesotho" - }, - { - "alpha_2": "LT", - "alpha_3": "LTU", - "flag": "🇱🇹", - "name": "Lithuania", - "numeric": "440", - "official_name": "Republic of Lithuania" - }, - { - "alpha_2": "LU", - "alpha_3": "LUX", - "flag": "🇱🇺", - "name": "Luxembourg", - "numeric": "442", - "official_name": "Grand Duchy of Luxembourg" - }, - { - "alpha_2": "LV", - "alpha_3": "LVA", - "flag": "🇱🇻", - "name": "Latvia", - "numeric": "428", - "official_name": "Republic of Latvia" - }, - { - "alpha_2": "MO", - "alpha_3": "MAC", - "flag": "🇲🇴", - "name": "Macao", - "numeric": "446", - "official_name": "Macao Special Administrative Region of China" - }, - { - "alpha_2": "MF", - "alpha_3": "MAF", - "flag": "🇲🇫", - "name": "Saint Martin (French part)", - "numeric": "663" - }, - { - "alpha_2": "MA", - "alpha_3": "MAR", - "flag": "🇲🇦", - "name": "Morocco", - "numeric": "504", - "official_name": "Kingdom of Morocco" - }, - { - "alpha_2": "MC", - "alpha_3": "MCO", - "flag": "🇲🇨", - "name": "Monaco", - "numeric": "492", - "official_name": "Principality of Monaco" - }, - { - "alpha_2": "MD", - "alpha_3": "MDA", - "common_name": "Moldova", - "flag": "🇲🇩", - "name": "Moldova, Republic of", - "numeric": "498", - "official_name": "Republic of Moldova" - }, - { - "alpha_2": "MG", - "alpha_3": "MDG", - "flag": "🇲🇬", - "name": "Madagascar", - "numeric": "450", - "official_name": "Republic of Madagascar" - }, - { - "alpha_2": "MV", - "alpha_3": "MDV", - "flag": "🇲🇻", - "name": "Maldives", - "numeric": "462", - "official_name": "Republic of Maldives" - }, - { - "alpha_2": "MX", - "alpha_3": "MEX", - "flag": "🇲🇽", - "name": "Mexico", - "numeric": "484", - "official_name": "United Mexican States" - }, - { - "alpha_2": "MH", - "alpha_3": "MHL", - "flag": "🇲🇭", - "name": "Marshall Islands", - "numeric": "584", - "official_name": "Republic of the Marshall Islands" - }, - { - "alpha_2": "MK", - "alpha_3": "MKD", - "flag": "🇲🇰", - "name": "North Macedonia", - "numeric": "807", - "official_name": "Republic of North Macedonia" - }, - { - "alpha_2": "ML", - "alpha_3": "MLI", - "flag": "🇲🇱", - "name": "Mali", - "numeric": "466", - "official_name": "Republic of Mali" - }, - { - "alpha_2": "MT", - "alpha_3": "MLT", - "flag": "🇲🇹", - "name": "Malta", - "numeric": "470", - "official_name": "Republic of Malta" - }, - { - "alpha_2": "MM", - "alpha_3": "MMR", - "flag": "🇲🇲", - "name": "Myanmar", - "numeric": "104", - "official_name": "Republic of Myanmar" - }, - { - "alpha_2": "ME", - "alpha_3": "MNE", - "flag": "🇲🇪", - "name": "Montenegro", - "numeric": "499", - "official_name": "Montenegro" - }, - { - "alpha_2": "MN", - "alpha_3": "MNG", - "flag": "🇲🇳", - "name": "Mongolia", - "numeric": "496" - }, - { - "alpha_2": "MP", - "alpha_3": "MNP", - "flag": "🇲🇵", - "name": "Northern Mariana Islands", - "numeric": "580", - "official_name": "Commonwealth of the Northern Mariana Islands" - }, - { - "alpha_2": "MZ", - "alpha_3": "MOZ", - "flag": "🇲🇿", - "name": "Mozambique", - "numeric": "508", - "official_name": "Republic of Mozambique" - }, - { - "alpha_2": "MR", - "alpha_3": "MRT", - "flag": "🇲🇷", - "name": "Mauritania", - "numeric": "478", - "official_name": "Islamic Republic of Mauritania" - }, - { - "alpha_2": "MS", - "alpha_3": "MSR", - "flag": "🇲🇸", - "name": "Montserrat", - "numeric": "500" - }, - { - "alpha_2": "MQ", - "alpha_3": "MTQ", - "flag": "🇲🇶", - "name": "Martinique", - "numeric": "474" - }, - { - "alpha_2": "MU", - "alpha_3": "MUS", - "flag": "🇲🇺", - "name": "Mauritius", - "numeric": "480", - "official_name": "Republic of Mauritius" - }, - { - "alpha_2": "MW", - "alpha_3": "MWI", - "flag": "🇲🇼", - "name": "Malawi", - "numeric": "454", - "official_name": "Republic of Malawi" - }, - { - "alpha_2": "MY", - "alpha_3": "MYS", - "flag": "🇲🇾", - "name": "Malaysia", - "numeric": "458" - }, - { - "alpha_2": "YT", - "alpha_3": "MYT", - "flag": "🇾🇹", - "name": "Mayotte", - "numeric": "175" - }, - { - "alpha_2": "NA", - "alpha_3": "NAM", - "flag": "🇳🇦", - "name": "Namibia", - "numeric": "516", - "official_name": "Republic of Namibia" - }, - { - "alpha_2": "NC", - "alpha_3": "NCL", - "flag": "🇳🇨", - "name": "New Caledonia", - "numeric": "540" - }, - { - "alpha_2": "NE", - "alpha_3": "NER", - "flag": "🇳🇪", - "name": "Niger", - "numeric": "562", - "official_name": "Republic of the Niger" - }, - { - "alpha_2": "NF", - "alpha_3": "NFK", - "flag": "🇳🇫", - "name": "Norfolk Island", - "numeric": "574" - }, - { - "alpha_2": "NG", - "alpha_3": "NGA", - "flag": "🇳🇬", - "name": "Nigeria", - "numeric": "566", - "official_name": "Federal Republic of Nigeria" - }, - { - "alpha_2": "NI", - "alpha_3": "NIC", - "flag": "🇳🇮", - "name": "Nicaragua", - "numeric": "558", - "official_name": "Republic of Nicaragua" - }, - { - "alpha_2": "NU", - "alpha_3": "NIU", - "flag": "🇳🇺", - "name": "Niue", - "numeric": "570", - "official_name": "Niue" - }, - { - "alpha_2": "NL", - "alpha_3": "NLD", - "flag": "🇳🇱", - "name": "Netherlands", - "numeric": "528", - "official_name": "Kingdom of the Netherlands" - }, - { - "alpha_2": "NO", - "alpha_3": "NOR", - "flag": "🇳🇴", - "name": "Norway", - "numeric": "578", - "official_name": "Kingdom of Norway" - }, - { - "alpha_2": "NP", - "alpha_3": "NPL", - "flag": "🇳🇵", - "name": "Nepal", - "numeric": "524", - "official_name": "Federal Democratic Republic of Nepal" - }, - { - "alpha_2": "NR", - "alpha_3": "NRU", - "flag": "🇳🇷", - "name": "Nauru", - "numeric": "520", - "official_name": "Republic of Nauru" - }, - { - "alpha_2": "NZ", - "alpha_3": "NZL", - "flag": "🇳🇿", - "name": "New Zealand", - "numeric": "554" - }, - { - "alpha_2": "OM", - "alpha_3": "OMN", - "flag": "🇴🇲", - "name": "Oman", - "numeric": "512", - "official_name": "Sultanate of Oman" - }, - { - "alpha_2": "PK", - "alpha_3": "PAK", - "flag": "🇵🇰", - "name": "Pakistan", - "numeric": "586", - "official_name": "Islamic Republic of Pakistan" - }, - { - "alpha_2": "PA", - "alpha_3": "PAN", - "flag": "🇵🇦", - "name": "Panama", - "numeric": "591", - "official_name": "Republic of Panama" - }, - { - "alpha_2": "PN", - "alpha_3": "PCN", - "flag": "🇵🇳", - "name": "Pitcairn", - "numeric": "612" - }, - { - "alpha_2": "PE", - "alpha_3": "PER", - "flag": "🇵🇪", - "name": "Peru", - "numeric": "604", - "official_name": "Republic of Peru" - }, - { - "alpha_2": "PH", - "alpha_3": "PHL", - "flag": "🇵🇭", - "name": "Philippines", - "numeric": "608", - "official_name": "Republic of the Philippines" - }, - { - "alpha_2": "PW", - "alpha_3": "PLW", - "flag": "🇵🇼", - "name": "Palau", - "numeric": "585", - "official_name": "Republic of Palau" - }, - { - "alpha_2": "PG", - "alpha_3": "PNG", - "flag": "🇵🇬", - "name": "Papua New Guinea", - "numeric": "598", - "official_name": "Independent State of Papua New Guinea" - }, - { - "alpha_2": "PL", - "alpha_3": "POL", - "flag": "🇵🇱", - "name": "Poland", - "numeric": "616", - "official_name": "Republic of Poland" - }, - { - "alpha_2": "PR", - "alpha_3": "PRI", - "flag": "🇵🇷", - "name": "Puerto Rico", - "numeric": "630" - }, - { - "alpha_2": "KP", - "alpha_3": "PRK", - "common_name": "North Korea", - "flag": "🇰🇵", - "name": "Korea, Democratic People's Republic of", - "numeric": "408", - "official_name": "Democratic People's Republic of Korea" - }, - { - "alpha_2": "PT", - "alpha_3": "PRT", - "flag": "🇵🇹", - "name": "Portugal", - "numeric": "620", - "official_name": "Portuguese Republic" - }, - { - "alpha_2": "PY", - "alpha_3": "PRY", - "flag": "🇵🇾", - "name": "Paraguay", - "numeric": "600", - "official_name": "Republic of Paraguay" - }, - { - "alpha_2": "PS", - "alpha_3": "PSE", - "flag": "🇵🇸", - "name": "Palestine, State of", - "numeric": "275", - "official_name": "the State of Palestine" - }, - { - "alpha_2": "PF", - "alpha_3": "PYF", - "flag": "🇵🇫", - "name": "French Polynesia", - "numeric": "258" - }, - { - "alpha_2": "QA", - "alpha_3": "QAT", - "flag": "🇶🇦", - "name": "Qatar", - "numeric": "634", - "official_name": "State of Qatar" - }, - { - "alpha_2": "RE", - "alpha_3": "REU", - "flag": "🇷🇪", - "name": "Réunion", - "numeric": "638" - }, - { - "alpha_2": "RO", - "alpha_3": "ROU", - "flag": "🇷🇴", - "name": "Romania", - "numeric": "642" - }, - { - "alpha_2": "RU", - "alpha_3": "RUS", - "flag": "🇷🇺", - "name": "Russian Federation", - "numeric": "643" - }, - { - "alpha_2": "RW", - "alpha_3": "RWA", - "flag": "🇷🇼", - "name": "Rwanda", - "numeric": "646", - "official_name": "Rwandese Republic" - }, - { - "alpha_2": "SA", - "alpha_3": "SAU", - "flag": "🇸🇦", - "name": "Saudi Arabia", - "numeric": "682", - "official_name": "Kingdom of Saudi Arabia" - }, - { - "alpha_2": "SD", - "alpha_3": "SDN", - "flag": "🇸🇩", - "name": "Sudan", - "numeric": "729", - "official_name": "Republic of the Sudan" - }, - { - "alpha_2": "SN", - "alpha_3": "SEN", - "flag": "🇸🇳", - "name": "Senegal", - "numeric": "686", - "official_name": "Republic of Senegal" - }, - { - "alpha_2": "SG", - "alpha_3": "SGP", - "flag": "🇸🇬", - "name": "Singapore", - "numeric": "702", - "official_name": "Republic of Singapore" - }, - { - "alpha_2": "GS", - "alpha_3": "SGS", - "flag": "🇬🇸", - "name": "South Georgia and the South Sandwich Islands", - "numeric": "239" - }, - { - "alpha_2": "SH", - "alpha_3": "SHN", - "flag": "🇸🇭", - "name": "Saint Helena, Ascension and Tristan da Cunha", - "numeric": "654" - }, - { - "alpha_2": "SJ", - "alpha_3": "SJM", - "flag": "🇸🇯", - "name": "Svalbard and Jan Mayen", - "numeric": "744" - }, - { - "alpha_2": "SB", - "alpha_3": "SLB", - "flag": "🇸🇧", - "name": "Solomon Islands", - "numeric": "090" - }, - { - "alpha_2": "SL", - "alpha_3": "SLE", - "flag": "🇸🇱", - "name": "Sierra Leone", - "numeric": "694", - "official_name": "Republic of Sierra Leone" - }, - { - "alpha_2": "SV", - "alpha_3": "SLV", - "flag": "🇸🇻", - "name": "El Salvador", - "numeric": "222", - "official_name": "Republic of El Salvador" - }, - { - "alpha_2": "SM", - "alpha_3": "SMR", - "flag": "🇸🇲", - "name": "San Marino", - "numeric": "674", - "official_name": "Republic of San Marino" - }, - { - "alpha_2": "SO", - "alpha_3": "SOM", - "flag": "🇸🇴", - "name": "Somalia", - "numeric": "706", - "official_name": "Federal Republic of Somalia" - }, - { - "alpha_2": "PM", - "alpha_3": "SPM", - "flag": "🇵🇲", - "name": "Saint Pierre and Miquelon", - "numeric": "666" - }, - { - "alpha_2": "RS", - "alpha_3": "SRB", - "flag": "🇷🇸", - "name": "Serbia", - "numeric": "688", - "official_name": "Republic of Serbia" - }, - { - "alpha_2": "SS", - "alpha_3": "SSD", - "flag": "🇸🇸", - "name": "South Sudan", - "numeric": "728", - "official_name": "Republic of South Sudan" - }, - { - "alpha_2": "ST", - "alpha_3": "STP", - "flag": "🇸🇹", - "name": "Sao Tome and Principe", - "numeric": "678", - "official_name": "Democratic Republic of Sao Tome and Principe" - }, - { - "alpha_2": "SR", - "alpha_3": "SUR", - "flag": "🇸🇷", - "name": "Suriname", - "numeric": "740", - "official_name": "Republic of Suriname" - }, - { - "alpha_2": "SK", - "alpha_3": "SVK", - "flag": "🇸🇰", - "name": "Slovakia", - "numeric": "703", - "official_name": "Slovak Republic" - }, - { - "alpha_2": "SI", - "alpha_3": "SVN", - "flag": "🇸🇮", - "name": "Slovenia", - "numeric": "705", - "official_name": "Republic of Slovenia" - }, - { - "alpha_2": "SE", - "alpha_3": "SWE", - "flag": "🇸🇪", - "name": "Sweden", - "numeric": "752", - "official_name": "Kingdom of Sweden" - }, - { - "alpha_2": "SZ", - "alpha_3": "SWZ", - "flag": "🇸🇿", - "name": "Eswatini", - "numeric": "748", - "official_name": "Kingdom of Eswatini" - }, - { - "alpha_2": "SX", - "alpha_3": "SXM", - "flag": "🇸🇽", - "name": "Sint Maarten (Dutch part)", - "numeric": "534", - "official_name": "Sint Maarten (Dutch part)" - }, - { - "alpha_2": "SC", - "alpha_3": "SYC", - "flag": "🇸🇨", - "name": "Seychelles", - "numeric": "690", - "official_name": "Republic of Seychelles" - }, - { - "alpha_2": "SY", - "alpha_3": "SYR", - "common_name": "Syria", - "flag": "🇸🇾", - "name": "Syrian Arab Republic", - "numeric": "760" - }, - { - "alpha_2": "TC", - "alpha_3": "TCA", - "flag": "🇹🇨", - "name": "Turks and Caicos Islands", - "numeric": "796" - }, - { - "alpha_2": "TD", - "alpha_3": "TCD", - "flag": "🇹🇩", - "name": "Chad", - "numeric": "148", - "official_name": "Republic of Chad" - }, - { - "alpha_2": "TG", - "alpha_3": "TGO", - "flag": "🇹🇬", - "name": "Togo", - "numeric": "768", - "official_name": "Togolese Republic" - }, - { - "alpha_2": "TH", - "alpha_3": "THA", - "flag": "🇹🇭", - "name": "Thailand", - "numeric": "764", - "official_name": "Kingdom of Thailand" - }, - { - "alpha_2": "TJ", - "alpha_3": "TJK", - "flag": "🇹🇯", - "name": "Tajikistan", - "numeric": "762", - "official_name": "Republic of Tajikistan" - }, - { - "alpha_2": "TK", - "alpha_3": "TKL", - "flag": "🇹🇰", - "name": "Tokelau", - "numeric": "772" - }, - { - "alpha_2": "TM", - "alpha_3": "TKM", - "flag": "🇹🇲", - "name": "Turkmenistan", - "numeric": "795" - }, - { - "alpha_2": "TL", - "alpha_3": "TLS", - "flag": "🇹🇱", - "name": "Timor-Leste", - "numeric": "626", - "official_name": "Democratic Republic of Timor-Leste" - }, - { - "alpha_2": "TO", - "alpha_3": "TON", - "flag": "🇹🇴", - "name": "Tonga", - "numeric": "776", - "official_name": "Kingdom of Tonga" - }, - { - "alpha_2": "TT", - "alpha_3": "TTO", - "flag": "🇹🇹", - "name": "Trinidad and Tobago", - "numeric": "780", - "official_name": "Republic of Trinidad and Tobago" - }, - { - "alpha_2": "TN", - "alpha_3": "TUN", - "flag": "🇹🇳", - "name": "Tunisia", - "numeric": "788", - "official_name": "Republic of Tunisia" - }, - { - "alpha_2": "TR", - "alpha_3": "TUR", - "flag": "🇹🇷", - "name": "Türkiye", - "numeric": "792", - "official_name": "Republic of Türkiye" - }, - { - "alpha_2": "TV", - "alpha_3": "TUV", - "flag": "🇹🇻", - "name": "Tuvalu", - "numeric": "798" - }, - { - "alpha_2": "TW", - "alpha_3": "TWN", - "common_name": "Taiwan", - "flag": "🇹🇼", - "name": "Taiwan, Province of China", - "numeric": "158", - "official_name": "Taiwan, Province of China" - }, - { - "alpha_2": "TZ", - "alpha_3": "TZA", - "common_name": "Tanzania", - "flag": "🇹🇿", - "name": "Tanzania, United Republic of", - "numeric": "834", - "official_name": "United Republic of Tanzania" - }, - { - "alpha_2": "UG", - "alpha_3": "UGA", - "flag": "🇺🇬", - "name": "Uganda", - "numeric": "800", - "official_name": "Republic of Uganda" - }, - { - "alpha_2": "UA", - "alpha_3": "UKR", - "flag": "🇺🇦", - "name": "Ukraine", - "numeric": "804" - }, - { - "alpha_2": "UM", - "alpha_3": "UMI", - "flag": "🇺🇲", - "name": "United States Minor Outlying Islands", - "numeric": "581" - }, - { - "alpha_2": "UY", - "alpha_3": "URY", - "flag": "🇺🇾", - "name": "Uruguay", - "numeric": "858", - "official_name": "Eastern Republic of Uruguay" - }, - { - "alpha_2": "US", - "alpha_3": "USA", - "flag": "🇺🇸", - "name": "United States", - "numeric": "840", - "official_name": "United States of America" - }, - { - "alpha_2": "UZ", - "alpha_3": "UZB", - "flag": "🇺🇿", - "name": "Uzbekistan", - "numeric": "860", - "official_name": "Republic of Uzbekistan" - }, - { - "alpha_2": "VA", - "alpha_3": "VAT", - "flag": "🇻🇦", - "name": "Holy See (Vatican City State)", - "numeric": "336" - }, - { - "alpha_2": "VC", - "alpha_3": "VCT", - "flag": "🇻🇨", - "name": "Saint Vincent and the Grenadines", - "numeric": "670" - }, - { - "alpha_2": "VE", - "alpha_3": "VEN", - "common_name": "Venezuela", - "flag": "🇻🇪", - "name": "Venezuela, Bolivarian Republic of", - "numeric": "862", - "official_name": "Bolivarian Republic of Venezuela" - }, - { - "alpha_2": "VG", - "alpha_3": "VGB", - "flag": "🇻🇬", - "name": "Virgin Islands, British", - "numeric": "092", - "official_name": "British Virgin Islands" - }, - { - "alpha_2": "VI", - "alpha_3": "VIR", - "flag": "🇻🇮", - "name": "Virgin Islands, U.S.", - "numeric": "850", - "official_name": "Virgin Islands of the United States" - }, - { - "alpha_2": "VN", - "alpha_3": "VNM", - "common_name": "Vietnam", - "flag": "🇻🇳", - "name": "Viet Nam", - "numeric": "704", - "official_name": "Socialist Republic of Viet Nam" - }, - { - "alpha_2": "VU", - "alpha_3": "VUT", - "flag": "🇻🇺", - "name": "Vanuatu", - "numeric": "548", - "official_name": "Republic of Vanuatu" - }, - { - "alpha_2": "WF", - "alpha_3": "WLF", - "flag": "🇼🇫", - "name": "Wallis and Futuna", - "numeric": "876" - }, - { - "alpha_2": "WS", - "alpha_3": "WSM", - "flag": "🇼🇸", - "name": "Samoa", - "numeric": "882", - "official_name": "Independent State of Samoa" - }, - { - "alpha_2": "YE", - "alpha_3": "YEM", - "flag": "🇾🇪", - "name": "Yemen", - "numeric": "887", - "official_name": "Republic of Yemen" - }, - { - "alpha_2": "ZA", - "alpha_3": "ZAF", - "flag": "🇿🇦", - "name": "South Africa", - "numeric": "710", - "official_name": "Republic of South Africa" - }, - { - "alpha_2": "ZM", - "alpha_3": "ZMB", - "flag": "🇿🇲", - "name": "Zambia", - "numeric": "894", - "official_name": "Republic of Zambia" - }, - { - "alpha_2": "ZW", - "alpha_3": "ZWE", - "flag": "🇿🇼", - "name": "Zimbabwe", - "numeric": "716", - "official_name": "Republic of Zimbabwe" - } - ] -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso3166-2.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso3166-2.json deleted file mode 100644 index e16038b9a0cccdd5a879767044c77cacb774296b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso3166-2.json +++ /dev/null @@ -1,26690 +0,0 @@ -{ - "3166-2": [ - { - "code": "AD-02", - "name": "Canillo", - "type": "Parish" - }, - { - "code": "AD-03", - "name": "Encamp", - "type": "Parish" - }, - { - "code": "AD-04", - "name": "La Massana", - "type": "Parish" - }, - { - "code": "AD-05", - "name": "Ordino", - "type": "Parish" - }, - { - "code": "AD-06", - "name": "Sant Julià de Lòria", - "type": "Parish" - }, - { - "code": "AD-07", - "name": "Andorra la Vella", - "type": "Parish" - }, - { - "code": "AD-08", - "name": "Escaldes-Engordany", - "type": "Parish" - }, - { - "code": "AE-AJ", - "name": "‘Ajmān", - "type": "Emirate" - }, - { - "code": "AE-AZ", - "name": "Abū Z̧aby", - "type": "Emirate" - }, - { - "code": "AE-DU", - "name": "Dubayy", - "type": "Emirate" - }, - { - "code": "AE-FU", - "name": "Al Fujayrah", - "type": "Emirate" - }, - { - "code": "AE-RK", - "name": "Ra’s al Khaymah", - "type": "Emirate" - }, - { - "code": "AE-SH", - "name": "Ash Shāriqah", - "type": "Emirate" - }, - { - "code": "AE-UQ", - "name": "Umm al Qaywayn", - "type": "Emirate" - }, - { - "code": "AF-BAL", - "name": "Balkh", - "type": "Province" - }, - { - "code": "AF-BAM", - "name": "Bāmyān", - "type": "Province" - }, - { - "code": "AF-BDG", - "name": "Bādghīs", - "type": "Province" - }, - { - "code": "AF-BDS", - "name": "Badakhshān", - "type": "Province" - }, - { - "code": "AF-BGL", - "name": "Baghlān", - "type": "Province" - }, - { - "code": "AF-DAY", - "name": "Dāykundī", - "type": "Province" - }, - { - "code": "AF-FRA", - "name": "Farāh", - "type": "Province" - }, - { - "code": "AF-FYB", - "name": "Fāryāb", - "type": "Province" - }, - { - "code": "AF-GHA", - "name": "Ghaznī", - "type": "Province" - }, - { - "code": "AF-GHO", - "name": "Ghōr", - "type": "Province" - }, - { - "code": "AF-HEL", - "name": "Helmand", - "type": "Province" - }, - { - "code": "AF-HER", - "name": "Herāt", - "type": "Province" - }, - { - "code": "AF-JOW", - "name": "Jowzjān", - "type": "Province" - }, - { - "code": "AF-KAB", - "name": "Kābul", - "type": "Province" - }, - { - "code": "AF-KAN", - "name": "Kandahār", - "type": "Province" - }, - { - "code": "AF-KAP", - "name": "Kāpīsā", - "type": "Province" - }, - { - "code": "AF-KDZ", - "name": "Kunduz", - "type": "Province" - }, - { - "code": "AF-KHO", - "name": "Khōst", - "type": "Province" - }, - { - "code": "AF-KNR", - "name": "Kunaṟ", - "type": "Province" - }, - { - "code": "AF-LAG", - "name": "Laghmān", - "type": "Province" - }, - { - "code": "AF-LOG", - "name": "Lōgar", - "type": "Province" - }, - { - "code": "AF-NAN", - "name": "Nangarhār", - "type": "Province" - }, - { - "code": "AF-NIM", - "name": "Nīmrōz", - "type": "Province" - }, - { - "code": "AF-NUR", - "name": "Nūristān", - "type": "Province" - }, - { - "code": "AF-PAN", - "name": "Panjshayr", - "type": "Province" - }, - { - "code": "AF-PAR", - "name": "Parwān", - "type": "Province" - }, - { - "code": "AF-PIA", - "name": "Paktiyā", - "type": "Province" - }, - { - "code": "AF-PKA", - "name": "Paktīkā", - "type": "Province" - }, - { - "code": "AF-SAM", - "name": "Samangān", - "type": "Province" - }, - { - "code": "AF-SAR", - "name": "Sar-e Pul", - "type": "Province" - }, - { - "code": "AF-TAK", - "name": "Takhār", - "type": "Province" - }, - { - "code": "AF-URU", - "name": "Uruzgān", - "type": "Province" - }, - { - "code": "AF-WAR", - "name": "Wardak", - "type": "Province" - }, - { - "code": "AF-ZAB", - "name": "Zābul", - "type": "Province" - }, - { - "code": "AG-03", - "name": "Saint George", - "type": "Parish" - }, - { - "code": "AG-04", - "name": "Saint John", - "type": "Parish" - }, - { - "code": "AG-05", - "name": "Saint Mary", - "type": "Parish" - }, - { - "code": "AG-06", - "name": "Saint Paul", - "type": "Parish" - }, - { - "code": "AG-07", - "name": "Saint Peter", - "type": "Parish" - }, - { - "code": "AG-08", - "name": "Saint Philip", - "type": "Parish" - }, - { - "code": "AG-10", - "name": "Barbuda", - "type": "Dependency" - }, - { - "code": "AG-11", - "name": "Redonda", - "type": "Dependency" - }, - { - "code": "AL-01", - "name": "Berat", - "type": "County" - }, - { - "code": "AL-02", - "name": "Durrës", - "type": "County" - }, - { - "code": "AL-03", - "name": "Elbasan", - "type": "County" - }, - { - "code": "AL-04", - "name": "Fier", - "type": "County" - }, - { - "code": "AL-05", - "name": "Gjirokastër", - "type": "County" - }, - { - "code": "AL-06", - "name": "Korçë", - "type": "County" - }, - { - "code": "AL-07", - "name": "Kukës", - "type": "County" - }, - { - "code": "AL-08", - "name": "Lezhë", - "type": "County" - }, - { - "code": "AL-09", - "name": "Dibër", - "type": "County" - }, - { - "code": "AL-10", - "name": "Shkodër", - "type": "County" - }, - { - "code": "AL-11", - "name": "Tiranë", - "type": "County" - }, - { - "code": "AL-12", - "name": "Vlorë", - "type": "County" - }, - { - "code": "AM-AG", - "name": "Aragac̣otn", - "type": "Region" - }, - { - "code": "AM-AR", - "name": "Ararat", - "type": "Region" - }, - { - "code": "AM-AV", - "name": "Armavir", - "type": "Region" - }, - { - "code": "AM-ER", - "name": "Erevan", - "type": "City" - }, - { - "code": "AM-GR", - "name": "Geġark'unik'", - "type": "Region" - }, - { - "code": "AM-KT", - "name": "Kotayk'", - "type": "Region" - }, - { - "code": "AM-LO", - "name": "Loṙi", - "type": "Region" - }, - { - "code": "AM-SH", - "name": "Širak", - "type": "Region" - }, - { - "code": "AM-SU", - "name": "Syunik'", - "type": "Region" - }, - { - "code": "AM-TV", - "name": "Tavuš", - "type": "Region" - }, - { - "code": "AM-VD", - "name": "Vayoć Jor", - "type": "Region" - }, - { - "code": "AO-BGO", - "name": "Bengo", - "type": "Province" - }, - { - "code": "AO-BGU", - "name": "Benguela", - "type": "Province" - }, - { - "code": "AO-BIE", - "name": "Bié", - "type": "Province" - }, - { - "code": "AO-CAB", - "name": "Cabinda", - "type": "Province" - }, - { - "code": "AO-CCU", - "name": "Cuando Cubango", - "type": "Province" - }, - { - "code": "AO-CNN", - "name": "Cunene", - "type": "Province" - }, - { - "code": "AO-CNO", - "name": "Cuanza-Norte", - "type": "Province" - }, - { - "code": "AO-CUS", - "name": "Cuanza-Sul", - "type": "Province" - }, - { - "code": "AO-HUA", - "name": "Huambo", - "type": "Province" - }, - { - "code": "AO-HUI", - "name": "Huíla", - "type": "Province" - }, - { - "code": "AO-LNO", - "name": "Lunda-Norte", - "type": "Province" - }, - { - "code": "AO-LSU", - "name": "Lunda-Sul", - "type": "Province" - }, - { - "code": "AO-LUA", - "name": "Luanda", - "type": "Province" - }, - { - "code": "AO-MAL", - "name": "Malange", - "type": "Province" - }, - { - "code": "AO-MOX", - "name": "Moxico", - "type": "Province" - }, - { - "code": "AO-NAM", - "name": "Namibe", - "type": "Province" - }, - { - "code": "AO-UIG", - "name": "Uíge", - "type": "Province" - }, - { - "code": "AO-ZAI", - "name": "Zaire", - "type": "Province" - }, - { - "code": "AR-A", - "name": "Salta", - "type": "Province" - }, - { - "code": "AR-B", - "name": "Buenos Aires", - "type": "Province" - }, - { - "code": "AR-C", - "name": "Ciudad Autónoma de Buenos Aires", - "type": "City" - }, - { - "code": "AR-D", - "name": "San Luis", - "type": "Province" - }, - { - "code": "AR-E", - "name": "Entre Ríos", - "type": "Province" - }, - { - "code": "AR-F", - "name": "La Rioja", - "type": "Province" - }, - { - "code": "AR-G", - "name": "Santiago del Estero", - "type": "Province" - }, - { - "code": "AR-H", - "name": "Chaco", - "type": "Province" - }, - { - "code": "AR-J", - "name": "San Juan", - "type": "Province" - }, - { - "code": "AR-K", - "name": "Catamarca", - "type": "Province" - }, - { - "code": "AR-L", - "name": "La Pampa", - "type": "Province" - }, - { - "code": "AR-M", - "name": "Mendoza", - "type": "Province" - }, - { - "code": "AR-N", - "name": "Misiones", - "type": "Province" - }, - { - "code": "AR-P", - "name": "Formosa", - "type": "Province" - }, - { - "code": "AR-Q", - "name": "Neuquén", - "type": "Province" - }, - { - "code": "AR-R", - "name": "Río Negro", - "type": "Province" - }, - { - "code": "AR-S", - "name": "Santa Fe", - "type": "Province" - }, - { - "code": "AR-T", - "name": "Tucumán", - "type": "Province" - }, - { - "code": "AR-U", - "name": "Chubut", - "type": "Province" - }, - { - "code": "AR-V", - "name": "Tierra del Fuego", - "type": "Province" - }, - { - "code": "AR-W", - "name": "Corrientes", - "type": "Province" - }, - { - "code": "AR-X", - "name": "Córdoba", - "type": "Province" - }, - { - "code": "AR-Y", - "name": "Jujuy", - "type": "Province" - }, - { - "code": "AR-Z", - "name": "Santa Cruz", - "type": "Province" - }, - { - "code": "AT-1", - "name": "Burgenland", - "type": "State" - }, - { - "code": "AT-2", - "name": "Kärnten", - "type": "State" - }, - { - "code": "AT-3", - "name": "Niederösterreich", - "type": "State" - }, - { - "code": "AT-4", - "name": "Oberösterreich", - "type": "State" - }, - { - "code": "AT-5", - "name": "Salzburg", - "type": "State" - }, - { - "code": "AT-6", - "name": "Steiermark", - "type": "State" - }, - { - "code": "AT-7", - "name": "Tirol", - "type": "State" - }, - { - "code": "AT-8", - "name": "Vorarlberg", - "type": "State" - }, - { - "code": "AT-9", - "name": "Wien", - "type": "State" - }, - { - "code": "AU-ACT", - "name": "Australian Capital Territory", - "type": "Territory" - }, - { - "code": "AU-NSW", - "name": "New South Wales", - "type": "State" - }, - { - "code": "AU-NT", - "name": "Northern Territory", - "type": "Territory" - }, - { - "code": "AU-QLD", - "name": "Queensland", - "type": "State" - }, - { - "code": "AU-SA", - "name": "South Australia", - "type": "State" - }, - { - "code": "AU-TAS", - "name": "Tasmania", - "type": "State" - }, - { - "code": "AU-VIC", - "name": "Victoria", - "type": "State" - }, - { - "code": "AU-WA", - "name": "Western Australia", - "type": "State" - }, - { - "code": "AZ-ABS", - "name": "Abşeron", - "type": "Rayon" - }, - { - "code": "AZ-AGA", - "name": "Ağstafa", - "type": "Rayon" - }, - { - "code": "AZ-AGC", - "name": "Ağcabədi", - "type": "Rayon" - }, - { - "code": "AZ-AGM", - "name": "Ağdam", - "type": "Rayon" - }, - { - "code": "AZ-AGS", - "name": "Ağdaş", - "type": "Rayon" - }, - { - "code": "AZ-AGU", - "name": "Ağsu", - "type": "Rayon" - }, - { - "code": "AZ-AST", - "name": "Astara", - "type": "Rayon" - }, - { - "code": "AZ-BA", - "name": "Bakı", - "type": "Municipality" - }, - { - "code": "AZ-BAB", - "name": "Babək", - "parent": "AZ-NX", - "type": "Rayon" - }, - { - "code": "AZ-BAL", - "name": "Balakən", - "type": "Rayon" - }, - { - "code": "AZ-BAR", - "name": "Bərdə", - "type": "Rayon" - }, - { - "code": "AZ-BEY", - "name": "Beyləqan", - "type": "Rayon" - }, - { - "code": "AZ-BIL", - "name": "Biləsuvar", - "type": "Rayon" - }, - { - "code": "AZ-CAB", - "name": "Cəbrayıl", - "type": "Rayon" - }, - { - "code": "AZ-CAL", - "name": "Cəlilabad", - "type": "Rayon" - }, - { - "code": "AZ-CUL", - "name": "Culfa", - "parent": "AZ-NX", - "type": "Rayon" - }, - { - "code": "AZ-DAS", - "name": "Daşkəsən", - "type": "Rayon" - }, - { - "code": "AZ-FUZ", - "name": "Füzuli", - "type": "Rayon" - }, - { - "code": "AZ-GA", - "name": "Gəncə", - "type": "Municipality" - }, - { - "code": "AZ-GAD", - "name": "Gədəbəy", - "type": "Rayon" - }, - { - "code": "AZ-GOR", - "name": "Goranboy", - "type": "Rayon" - }, - { - "code": "AZ-GOY", - "name": "Göyçay", - "type": "Rayon" - }, - { - "code": "AZ-GYG", - "name": "Göygöl", - "type": "Rayon" - }, - { - "code": "AZ-HAC", - "name": "Hacıqabul", - "type": "Rayon" - }, - { - "code": "AZ-IMI", - "name": "İmişli", - "type": "Rayon" - }, - { - "code": "AZ-ISM", - "name": "İsmayıllı", - "type": "Rayon" - }, - { - "code": "AZ-KAL", - "name": "Kəlbəcər", - "type": "Rayon" - }, - { - "code": "AZ-KAN", - "name": "Kǝngǝrli", - "parent": "AZ-NX", - "type": "Rayon" - }, - { - "code": "AZ-KUR", - "name": "Kürdəmir", - "type": "Rayon" - }, - { - "code": "AZ-LA", - "name": "Lənkəran", - "type": "Municipality" - }, - { - "code": "AZ-LAC", - "name": "Laçın", - "type": "Rayon" - }, - { - "code": "AZ-LAN", - "name": "Lənkəran", - "type": "Rayon" - }, - { - "code": "AZ-LER", - "name": "Lerik", - "type": "Rayon" - }, - { - "code": "AZ-MAS", - "name": "Masallı", - "type": "Rayon" - }, - { - "code": "AZ-MI", - "name": "Mingəçevir", - "type": "Municipality" - }, - { - "code": "AZ-NA", - "name": "Naftalan", - "type": "Municipality" - }, - { - "code": "AZ-NEF", - "name": "Neftçala", - "type": "Rayon" - }, - { - "code": "AZ-NV", - "name": "Naxçıvan", - "parent": "AZ-NX", - "type": "Municipality" - }, - { - "code": "AZ-NX", - "name": "Naxçıvan", - "type": "Autonomous republic" - }, - { - "code": "AZ-OGU", - "name": "Oğuz", - "type": "Rayon" - }, - { - "code": "AZ-ORD", - "name": "Ordubad", - "parent": "AZ-NX", - "type": "Rayon" - }, - { - "code": "AZ-QAB", - "name": "Qəbələ", - "type": "Rayon" - }, - { - "code": "AZ-QAX", - "name": "Qax", - "type": "Rayon" - }, - { - "code": "AZ-QAZ", - "name": "Qazax", - "type": "Rayon" - }, - { - "code": "AZ-QBA", - "name": "Quba", - "type": "Rayon" - }, - { - "code": "AZ-QBI", - "name": "Qubadlı", - "type": "Rayon" - }, - { - "code": "AZ-QOB", - "name": "Qobustan", - "type": "Rayon" - }, - { - "code": "AZ-QUS", - "name": "Qusar", - "type": "Rayon" - }, - { - "code": "AZ-SA", - "name": "Şəki", - "type": "Municipality" - }, - { - "code": "AZ-SAB", - "name": "Sabirabad", - "type": "Rayon" - }, - { - "code": "AZ-SAD", - "name": "Sədərək", - "parent": "AZ-NX", - "type": "Rayon" - }, - { - "code": "AZ-SAH", - "name": "Şahbuz", - "parent": "AZ-NX", - "type": "Rayon" - }, - { - "code": "AZ-SAK", - "name": "Şəki", - "type": "Rayon" - }, - { - "code": "AZ-SAL", - "name": "Salyan", - "type": "Rayon" - }, - { - "code": "AZ-SAR", - "name": "Şərur", - "parent": "AZ-NX", - "type": "Rayon" - }, - { - "code": "AZ-SAT", - "name": "Saatlı", - "type": "Rayon" - }, - { - "code": "AZ-SBN", - "name": "Şabran", - "type": "Rayon" - }, - { - "code": "AZ-SIY", - "name": "Siyəzən", - "type": "Rayon" - }, - { - "code": "AZ-SKR", - "name": "Şəmkir", - "type": "Rayon" - }, - { - "code": "AZ-SM", - "name": "Sumqayıt", - "type": "Municipality" - }, - { - "code": "AZ-SMI", - "name": "Şamaxı", - "type": "Rayon" - }, - { - "code": "AZ-SMX", - "name": "Samux", - "type": "Rayon" - }, - { - "code": "AZ-SR", - "name": "Şirvan", - "type": "Municipality" - }, - { - "code": "AZ-SUS", - "name": "Şuşa", - "type": "Rayon" - }, - { - "code": "AZ-TAR", - "name": "Tərtər", - "type": "Rayon" - }, - { - "code": "AZ-TOV", - "name": "Tovuz", - "type": "Rayon" - }, - { - "code": "AZ-UCA", - "name": "Ucar", - "type": "Rayon" - }, - { - "code": "AZ-XA", - "name": "Xankəndi", - "type": "Municipality" - }, - { - "code": "AZ-XAC", - "name": "Xaçmaz", - "type": "Rayon" - }, - { - "code": "AZ-XCI", - "name": "Xocalı", - "type": "Rayon" - }, - { - "code": "AZ-XIZ", - "name": "Xızı", - "type": "Rayon" - }, - { - "code": "AZ-XVD", - "name": "Xocavənd", - "type": "Rayon" - }, - { - "code": "AZ-YAR", - "name": "Yardımlı", - "type": "Rayon" - }, - { - "code": "AZ-YE", - "name": "Yevlax", - "type": "Municipality" - }, - { - "code": "AZ-YEV", - "name": "Yevlax", - "type": "Rayon" - }, - { - "code": "AZ-ZAN", - "name": "Zəngilan", - "type": "Rayon" - }, - { - "code": "AZ-ZAQ", - "name": "Zaqatala", - "type": "Rayon" - }, - { - "code": "AZ-ZAR", - "name": "Zərdab", - "type": "Rayon" - }, - { - "code": "BA-BIH", - "name": "Federacija Bosne i Hercegovine", - "type": "Entity" - }, - { - "code": "BA-BRC", - "name": "Brčko distrikt", - "type": "District with special status" - }, - { - "code": "BA-SRP", - "name": "Republika Srpska", - "type": "Entity" - }, - { - "code": "BB-01", - "name": "Christ Church", - "type": "Parish" - }, - { - "code": "BB-02", - "name": "Saint Andrew", - "type": "Parish" - }, - { - "code": "BB-03", - "name": "Saint George", - "type": "Parish" - }, - { - "code": "BB-04", - "name": "Saint James", - "type": "Parish" - }, - { - "code": "BB-05", - "name": "Saint John", - "type": "Parish" - }, - { - "code": "BB-06", - "name": "Saint Joseph", - "type": "Parish" - }, - { - "code": "BB-07", - "name": "Saint Lucy", - "type": "Parish" - }, - { - "code": "BB-08", - "name": "Saint Michael", - "type": "Parish" - }, - { - "code": "BB-09", - "name": "Saint Peter", - "type": "Parish" - }, - { - "code": "BB-10", - "name": "Saint Philip", - "type": "Parish" - }, - { - "code": "BB-11", - "name": "Saint Thomas", - "type": "Parish" - }, - { - "code": "BD-01", - "name": "Bandarban", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-02", - "name": "Barguna", - "parent": "BD-A", - "type": "District" - }, - { - "code": "BD-03", - "name": "Bogura", - "parent": "BD-E", - "type": "District" - }, - { - "code": "BD-04", - "name": "Brahmanbaria", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-05", - "name": "Bagerhat", - "parent": "BD-D", - "type": "District" - }, - { - "code": "BD-06", - "name": "Barishal", - "parent": "BD-A", - "type": "District" - }, - { - "code": "BD-07", - "name": "Bhola", - "parent": "BD-A", - "type": "District" - }, - { - "code": "BD-08", - "name": "Cumilla", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-09", - "name": "Chandpur", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-10", - "name": "Chattogram", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-11", - "name": "Cox's Bazar", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-12", - "name": "Chuadanga", - "parent": "BD-D", - "type": "District" - }, - { - "code": "BD-13", - "name": "Dhaka", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-14", - "name": "Dinajpur", - "parent": "BD-F", - "type": "District" - }, - { - "code": "BD-15", - "name": "Faridpur", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-16", - "name": "Feni", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-17", - "name": "Gopalganj", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-18", - "name": "Gazipur", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-19", - "name": "Gaibandha", - "parent": "BD-F", - "type": "District" - }, - { - "code": "BD-20", - "name": "Habiganj", - "parent": "BD-G", - "type": "District" - }, - { - "code": "BD-21", - "name": "Jamalpur", - "parent": "BD-H", - "type": "District" - }, - { - "code": "BD-22", - "name": "Jashore", - "parent": "BD-D", - "type": "District" - }, - { - "code": "BD-23", - "name": "Jhenaidah", - "parent": "BD-D", - "type": "District" - }, - { - "code": "BD-24", - "name": "Joypurhat", - "parent": "BD-E", - "type": "District" - }, - { - "code": "BD-25", - "name": "Jhalakathi", - "parent": "BD-A", - "type": "District" - }, - { - "code": "BD-26", - "name": "Kishoreganj", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-27", - "name": "Khulna", - "parent": "BD-D", - "type": "District" - }, - { - "code": "BD-28", - "name": "Kurigram", - "parent": "BD-F", - "type": "District" - }, - { - "code": "BD-29", - "name": "Khagrachhari", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-30", - "name": "Kushtia", - "parent": "BD-D", - "type": "District" - }, - { - "code": "BD-31", - "name": "Lakshmipur", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-32", - "name": "Lalmonirhat", - "parent": "BD-F", - "type": "District" - }, - { - "code": "BD-33", - "name": "Manikganj", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-34", - "name": "Mymensingh", - "parent": "BD-H", - "type": "District" - }, - { - "code": "BD-35", - "name": "Munshiganj", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-36", - "name": "Madaripur", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-37", - "name": "Magura", - "parent": "BD-D", - "type": "District" - }, - { - "code": "BD-38", - "name": "Moulvibazar", - "parent": "BD-G", - "type": "District" - }, - { - "code": "BD-39", - "name": "Meherpur", - "parent": "BD-D", - "type": "District" - }, - { - "code": "BD-40", - "name": "Narayanganj", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-41", - "name": "Netrakona", - "parent": "BD-H", - "type": "District" - }, - { - "code": "BD-42", - "name": "Narsingdi", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-43", - "name": "Narail", - "parent": "BD-D", - "type": "District" - }, - { - "code": "BD-44", - "name": "Natore", - "parent": "BD-E", - "type": "District" - }, - { - "code": "BD-45", - "name": "Chapai Nawabganj", - "parent": "BD-E", - "type": "District" - }, - { - "code": "BD-46", - "name": "Nilphamari", - "parent": "BD-F", - "type": "District" - }, - { - "code": "BD-47", - "name": "Noakhali", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-48", - "name": "Naogaon", - "parent": "BD-E", - "type": "District" - }, - { - "code": "BD-49", - "name": "Pabna", - "parent": "BD-E", - "type": "District" - }, - { - "code": "BD-50", - "name": "Pirojpur", - "parent": "BD-A", - "type": "District" - }, - { - "code": "BD-51", - "name": "Patuakhali", - "parent": "BD-A", - "type": "District" - }, - { - "code": "BD-52", - "name": "Panchagarh", - "parent": "BD-F", - "type": "District" - }, - { - "code": "BD-53", - "name": "Rajbari", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-54", - "name": "Rajshahi", - "parent": "BD-E", - "type": "District" - }, - { - "code": "BD-55", - "name": "Rangpur", - "parent": "BD-F", - "type": "District" - }, - { - "code": "BD-56", - "name": "Rangamati", - "parent": "BD-B", - "type": "District" - }, - { - "code": "BD-57", - "name": "Sherpur", - "parent": "BD-H", - "type": "District" - }, - { - "code": "BD-58", - "name": "Satkhira", - "parent": "BD-D", - "type": "District" - }, - { - "code": "BD-59", - "name": "Sirajganj", - "parent": "BD-E", - "type": "District" - }, - { - "code": "BD-60", - "name": "Sylhet", - "parent": "BD-G", - "type": "District" - }, - { - "code": "BD-61", - "name": "Sunamganj", - "parent": "BD-G", - "type": "District" - }, - { - "code": "BD-62", - "name": "Shariatpur", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-63", - "name": "Tangail", - "parent": "BD-C", - "type": "District" - }, - { - "code": "BD-64", - "name": "Thakurgaon", - "parent": "BD-F", - "type": "District" - }, - { - "code": "BD-A", - "name": "Barishal", - "type": "Division" - }, - { - "code": "BD-B", - "name": "Chattogram", - "type": "Division" - }, - { - "code": "BD-C", - "name": "Dhaka", - "type": "Division" - }, - { - "code": "BD-D", - "name": "Khulna", - "type": "Division" - }, - { - "code": "BD-E", - "name": "Rajshahi", - "type": "Division" - }, - { - "code": "BD-F", - "name": "Rangpur", - "type": "Division" - }, - { - "code": "BD-G", - "name": "Sylhet", - "type": "Division" - }, - { - "code": "BD-H", - "name": "Mymensingh", - "type": "Division" - }, - { - "code": "BE-BRU", - "name": "Bruxelles-Capitale, Région de", - "type": "Region" - }, - { - "code": "BE-VAN", - "name": "Antwerpen", - "parent": "BE-VLG", - "type": "Province" - }, - { - "code": "BE-VBR", - "name": "Vlaams-Brabant", - "parent": "BE-VLG", - "type": "Province" - }, - { - "code": "BE-VLG", - "name": "Vlaams Gewest", - "type": "Region" - }, - { - "code": "BE-VLI", - "name": "Limburg", - "parent": "BE-VLG", - "type": "Province" - }, - { - "code": "BE-VOV", - "name": "Oost-Vlaanderen", - "parent": "BE-VLG", - "type": "Province" - }, - { - "code": "BE-VWV", - "name": "West-Vlaanderen", - "parent": "BE-VLG", - "type": "Province" - }, - { - "code": "BE-WAL", - "name": "wallonne, Région", - "type": "Region" - }, - { - "code": "BE-WBR", - "name": "Brabant wallon", - "parent": "BE-WAL", - "type": "Province" - }, - { - "code": "BE-WHT", - "name": "Hainaut", - "parent": "BE-WAL", - "type": "Province" - }, - { - "code": "BE-WLG", - "name": "Liège", - "parent": "BE-WAL", - "type": "Province" - }, - { - "code": "BE-WLX", - "name": "Luxembourg", - "parent": "BE-WAL", - "type": "Province" - }, - { - "code": "BE-WNA", - "name": "Namur", - "parent": "BE-WAL", - "type": "Province" - }, - { - "code": "BF-01", - "name": "Boucle du Mouhoun", - "type": "Region" - }, - { - "code": "BF-02", - "name": "Cascades", - "type": "Region" - }, - { - "code": "BF-03", - "name": "Centre", - "type": "Region" - }, - { - "code": "BF-04", - "name": "Centre-Est", - "type": "Region" - }, - { - "code": "BF-05", - "name": "Centre-Nord", - "type": "Region" - }, - { - "code": "BF-06", - "name": "Centre-Ouest", - "type": "Region" - }, - { - "code": "BF-07", - "name": "Centre-Sud", - "type": "Region" - }, - { - "code": "BF-08", - "name": "Est", - "type": "Region" - }, - { - "code": "BF-09", - "name": "Hauts-Bassins", - "type": "Region" - }, - { - "code": "BF-10", - "name": "Nord", - "type": "Region" - }, - { - "code": "BF-11", - "name": "Plateau-Central", - "type": "Region" - }, - { - "code": "BF-12", - "name": "Sahel", - "type": "Region" - }, - { - "code": "BF-13", - "name": "Sud-Ouest", - "type": "Region" - }, - { - "code": "BF-BAL", - "name": "Balé", - "parent": "BF-01", - "type": "Province" - }, - { - "code": "BF-BAM", - "name": "Bam", - "parent": "BF-05", - "type": "Province" - }, - { - "code": "BF-BAN", - "name": "Banwa", - "parent": "BF-01", - "type": "Province" - }, - { - "code": "BF-BAZ", - "name": "Bazèga", - "parent": "BF-07", - "type": "Province" - }, - { - "code": "BF-BGR", - "name": "Bougouriba", - "parent": "BF-13", - "type": "Province" - }, - { - "code": "BF-BLG", - "name": "Boulgou", - "parent": "BF-04", - "type": "Province" - }, - { - "code": "BF-BLK", - "name": "Boulkiemdé", - "parent": "BF-06", - "type": "Province" - }, - { - "code": "BF-COM", - "name": "Comoé", - "parent": "BF-02", - "type": "Province" - }, - { - "code": "BF-GAN", - "name": "Ganzourgou", - "parent": "BF-11", - "type": "Province" - }, - { - "code": "BF-GNA", - "name": "Gnagna", - "parent": "BF-08", - "type": "Province" - }, - { - "code": "BF-GOU", - "name": "Gourma", - "parent": "BF-08", - "type": "Province" - }, - { - "code": "BF-HOU", - "name": "Houet", - "parent": "BF-09", - "type": "Province" - }, - { - "code": "BF-IOB", - "name": "Ioba", - "parent": "BF-13", - "type": "Province" - }, - { - "code": "BF-KAD", - "name": "Kadiogo", - "parent": "BF-03", - "type": "Province" - }, - { - "code": "BF-KEN", - "name": "Kénédougou", - "parent": "BF-09", - "type": "Province" - }, - { - "code": "BF-KMD", - "name": "Komondjari", - "parent": "BF-08", - "type": "Province" - }, - { - "code": "BF-KMP", - "name": "Kompienga", - "parent": "BF-08", - "type": "Province" - }, - { - "code": "BF-KOP", - "name": "Koulpélogo", - "parent": "BF-04", - "type": "Province" - }, - { - "code": "BF-KOS", - "name": "Kossi", - "parent": "BF-01", - "type": "Province" - }, - { - "code": "BF-KOT", - "name": "Kouritenga", - "parent": "BF-04", - "type": "Province" - }, - { - "code": "BF-KOW", - "name": "Kourwéogo", - "parent": "BF-11", - "type": "Province" - }, - { - "code": "BF-LER", - "name": "Léraba", - "parent": "BF-02", - "type": "Province" - }, - { - "code": "BF-LOR", - "name": "Loroum", - "parent": "BF-10", - "type": "Province" - }, - { - "code": "BF-MOU", - "name": "Mouhoun", - "parent": "BF-01", - "type": "Province" - }, - { - "code": "BF-NAM", - "name": "Namentenga", - "parent": "BF-05", - "type": "Province" - }, - { - "code": "BF-NAO", - "name": "Nahouri", - "parent": "BF-07", - "type": "Province" - }, - { - "code": "BF-NAY", - "name": "Nayala", - "parent": "BF-01", - "type": "Province" - }, - { - "code": "BF-NOU", - "name": "Noumbiel", - "parent": "BF-13", - "type": "Province" - }, - { - "code": "BF-OUB", - "name": "Oubritenga", - "parent": "BF-11", - "type": "Province" - }, - { - "code": "BF-OUD", - "name": "Oudalan", - "parent": "BF-12", - "type": "Province" - }, - { - "code": "BF-PAS", - "name": "Passoré", - "parent": "BF-10", - "type": "Province" - }, - { - "code": "BF-PON", - "name": "Poni", - "parent": "BF-13", - "type": "Province" - }, - { - "code": "BF-SEN", - "name": "Séno", - "parent": "BF-12", - "type": "Province" - }, - { - "code": "BF-SIS", - "name": "Sissili", - "parent": "BF-06", - "type": "Province" - }, - { - "code": "BF-SMT", - "name": "Sanmatenga", - "parent": "BF-05", - "type": "Province" - }, - { - "code": "BF-SNG", - "name": "Sanguié", - "parent": "BF-06", - "type": "Province" - }, - { - "code": "BF-SOM", - "name": "Soum", - "parent": "BF-12", - "type": "Province" - }, - { - "code": "BF-SOR", - "name": "Sourou", - "parent": "BF-01", - "type": "Province" - }, - { - "code": "BF-TAP", - "name": "Tapoa", - "parent": "BF-08", - "type": "Province" - }, - { - "code": "BF-TUI", - "name": "Tuy", - "parent": "BF-09", - "type": "Province" - }, - { - "code": "BF-YAG", - "name": "Yagha", - "parent": "BF-12", - "type": "Province" - }, - { - "code": "BF-YAT", - "name": "Yatenga", - "parent": "BF-10", - "type": "Province" - }, - { - "code": "BF-ZIR", - "name": "Ziro", - "parent": "BF-06", - "type": "Province" - }, - { - "code": "BF-ZON", - "name": "Zondoma", - "parent": "BF-10", - "type": "Province" - }, - { - "code": "BF-ZOU", - "name": "Zoundwéogo", - "parent": "BF-07", - "type": "Province" - }, - { - "code": "BG-01", - "name": "Blagoevgrad", - "type": "District" - }, - { - "code": "BG-02", - "name": "Burgas", - "type": "District" - }, - { - "code": "BG-03", - "name": "Varna", - "type": "District" - }, - { - "code": "BG-04", - "name": "Veliko Tarnovo", - "type": "District" - }, - { - "code": "BG-05", - "name": "Vidin", - "type": "District" - }, - { - "code": "BG-06", - "name": "Vratsa", - "type": "District" - }, - { - "code": "BG-07", - "name": "Gabrovo", - "type": "District" - }, - { - "code": "BG-08", - "name": "Dobrich", - "type": "District" - }, - { - "code": "BG-09", - "name": "Kardzhali", - "type": "District" - }, - { - "code": "BG-10", - "name": "Kyustendil", - "type": "District" - }, - { - "code": "BG-11", - "name": "Lovech", - "type": "District" - }, - { - "code": "BG-12", - "name": "Montana", - "type": "District" - }, - { - "code": "BG-13", - "name": "Pazardzhik", - "type": "District" - }, - { - "code": "BG-14", - "name": "Pernik", - "type": "District" - }, - { - "code": "BG-15", - "name": "Pleven", - "type": "District" - }, - { - "code": "BG-16", - "name": "Plovdiv", - "type": "District" - }, - { - "code": "BG-17", - "name": "Razgrad", - "type": "District" - }, - { - "code": "BG-18", - "name": "Ruse", - "type": "District" - }, - { - "code": "BG-19", - "name": "Silistra", - "type": "District" - }, - { - "code": "BG-20", - "name": "Sliven", - "type": "District" - }, - { - "code": "BG-21", - "name": "Smolyan", - "type": "District" - }, - { - "code": "BG-22", - "name": "Sofia (stolitsa)", - "type": "District" - }, - { - "code": "BG-23", - "name": "Sofia", - "type": "District" - }, - { - "code": "BG-24", - "name": "Stara Zagora", - "type": "District" - }, - { - "code": "BG-25", - "name": "Targovishte", - "type": "District" - }, - { - "code": "BG-26", - "name": "Haskovo", - "type": "District" - }, - { - "code": "BG-27", - "name": "Shumen", - "type": "District" - }, - { - "code": "BG-28", - "name": "Yambol", - "type": "District" - }, - { - "code": "BH-13", - "name": "Al ‘Āşimah", - "type": "Governorate" - }, - { - "code": "BH-14", - "name": "Al Janūbīyah", - "type": "Governorate" - }, - { - "code": "BH-15", - "name": "Al Muḩarraq", - "type": "Governorate" - }, - { - "code": "BH-17", - "name": "Ash Shamālīyah", - "type": "Governorate" - }, - { - "code": "BI-BB", - "name": "Bubanza", - "type": "Province" - }, - { - "code": "BI-BL", - "name": "Bujumbura Rural", - "type": "Province" - }, - { - "code": "BI-BM", - "name": "Bujumbura Mairie", - "type": "Province" - }, - { - "code": "BI-BR", - "name": "Bururi", - "type": "Province" - }, - { - "code": "BI-CA", - "name": "Cankuzo", - "type": "Province" - }, - { - "code": "BI-CI", - "name": "Cibitoke", - "type": "Province" - }, - { - "code": "BI-GI", - "name": "Gitega", - "type": "Province" - }, - { - "code": "BI-KI", - "name": "Kirundo", - "type": "Province" - }, - { - "code": "BI-KR", - "name": "Karuzi", - "type": "Province" - }, - { - "code": "BI-KY", - "name": "Kayanza", - "type": "Province" - }, - { - "code": "BI-MA", - "name": "Makamba", - "type": "Province" - }, - { - "code": "BI-MU", - "name": "Muramvya", - "type": "Province" - }, - { - "code": "BI-MW", - "name": "Mwaro", - "type": "Province" - }, - { - "code": "BI-MY", - "name": "Muyinga", - "type": "Province" - }, - { - "code": "BI-NG", - "name": "Ngozi", - "type": "Province" - }, - { - "code": "BI-RM", - "name": "Rumonge", - "type": "Province" - }, - { - "code": "BI-RT", - "name": "Rutana", - "type": "Province" - }, - { - "code": "BI-RY", - "name": "Ruyigi", - "type": "Province" - }, - { - "code": "BJ-AK", - "name": "Atacora", - "type": "Department" - }, - { - "code": "BJ-AL", - "name": "Alibori", - "type": "Department" - }, - { - "code": "BJ-AQ", - "name": "Atlantique", - "type": "Department" - }, - { - "code": "BJ-BO", - "name": "Borgou", - "type": "Department" - }, - { - "code": "BJ-CO", - "name": "Collines", - "type": "Department" - }, - { - "code": "BJ-DO", - "name": "Donga", - "type": "Department" - }, - { - "code": "BJ-KO", - "name": "Couffo", - "type": "Department" - }, - { - "code": "BJ-LI", - "name": "Littoral", - "type": "Department" - }, - { - "code": "BJ-MO", - "name": "Mono", - "type": "Department" - }, - { - "code": "BJ-OU", - "name": "Ouémé", - "type": "Department" - }, - { - "code": "BJ-PL", - "name": "Plateau", - "type": "Department" - }, - { - "code": "BJ-ZO", - "name": "Zou", - "type": "Department" - }, - { - "code": "BN-BE", - "name": "Belait", - "type": "District" - }, - { - "code": "BN-BM", - "name": "Brunei-Muara", - "type": "District" - }, - { - "code": "BN-TE", - "name": "Temburong", - "type": "District" - }, - { - "code": "BN-TU", - "name": "Tutong", - "type": "District" - }, - { - "code": "BO-B", - "name": "El Beni", - "type": "Department" - }, - { - "code": "BO-C", - "name": "Cochabamba", - "type": "Department" - }, - { - "code": "BO-H", - "name": "Chuquisaca", - "type": "Department" - }, - { - "code": "BO-L", - "name": "La Paz", - "type": "Department" - }, - { - "code": "BO-N", - "name": "Pando", - "type": "Department" - }, - { - "code": "BO-O", - "name": "Oruro", - "type": "Department" - }, - { - "code": "BO-P", - "name": "Potosí", - "type": "Department" - }, - { - "code": "BO-S", - "name": "Santa Cruz", - "type": "Department" - }, - { - "code": "BO-T", - "name": "Tarija", - "type": "Department" - }, - { - "code": "BQ-BO", - "name": "Bonaire", - "type": "Special municipality" - }, - { - "code": "BQ-SA", - "name": "Saba", - "type": "Special municipality" - }, - { - "code": "BQ-SE", - "name": "Sint Eustatius", - "type": "Special municipality" - }, - { - "code": "BR-AC", - "name": "Acre", - "type": "State" - }, - { - "code": "BR-AL", - "name": "Alagoas", - "type": "State" - }, - { - "code": "BR-AM", - "name": "Amazonas", - "type": "State" - }, - { - "code": "BR-AP", - "name": "Amapá", - "type": "State" - }, - { - "code": "BR-BA", - "name": "Bahia", - "type": "State" - }, - { - "code": "BR-CE", - "name": "Ceará", - "type": "State" - }, - { - "code": "BR-DF", - "name": "Distrito Federal", - "type": "Federal district" - }, - { - "code": "BR-ES", - "name": "Espírito Santo", - "type": "State" - }, - { - "code": "BR-GO", - "name": "Goiás", - "type": "State" - }, - { - "code": "BR-MA", - "name": "Maranhão", - "type": "State" - }, - { - "code": "BR-MG", - "name": "Minas Gerais", - "type": "State" - }, - { - "code": "BR-MS", - "name": "Mato Grosso do Sul", - "type": "State" - }, - { - "code": "BR-MT", - "name": "Mato Grosso", - "type": "State" - }, - { - "code": "BR-PA", - "name": "Pará", - "type": "State" - }, - { - "code": "BR-PB", - "name": "Paraíba", - "type": "State" - }, - { - "code": "BR-PE", - "name": "Pernambuco", - "type": "State" - }, - { - "code": "BR-PI", - "name": "Piauí", - "type": "State" - }, - { - "code": "BR-PR", - "name": "Paraná", - "type": "State" - }, - { - "code": "BR-RJ", - "name": "Rio de Janeiro", - "type": "State" - }, - { - "code": "BR-RN", - "name": "Rio Grande do Norte", - "type": "State" - }, - { - "code": "BR-RO", - "name": "Rondônia", - "type": "State" - }, - { - "code": "BR-RR", - "name": "Roraima", - "type": "State" - }, - { - "code": "BR-RS", - "name": "Rio Grande do Sul", - "type": "State" - }, - { - "code": "BR-SC", - "name": "Santa Catarina", - "type": "State" - }, - { - "code": "BR-SE", - "name": "Sergipe", - "type": "State" - }, - { - "code": "BR-SP", - "name": "São Paulo", - "type": "State" - }, - { - "code": "BR-TO", - "name": "Tocantins", - "type": "State" - }, - { - "code": "BS-AK", - "name": "Acklins", - "type": "District" - }, - { - "code": "BS-BI", - "name": "Bimini", - "type": "District" - }, - { - "code": "BS-BP", - "name": "Black Point", - "type": "District" - }, - { - "code": "BS-BY", - "name": "Berry Islands", - "type": "District" - }, - { - "code": "BS-CE", - "name": "Central Eleuthera", - "type": "District" - }, - { - "code": "BS-CI", - "name": "Cat Island", - "type": "District" - }, - { - "code": "BS-CK", - "name": "Crooked Island and Long Cay", - "type": "District" - }, - { - "code": "BS-CO", - "name": "Central Abaco", - "type": "District" - }, - { - "code": "BS-CS", - "name": "Central Andros", - "type": "District" - }, - { - "code": "BS-EG", - "name": "East Grand Bahama", - "type": "District" - }, - { - "code": "BS-EX", - "name": "Exuma", - "type": "District" - }, - { - "code": "BS-FP", - "name": "City of Freeport", - "type": "District" - }, - { - "code": "BS-GC", - "name": "Grand Cay", - "type": "District" - }, - { - "code": "BS-HI", - "name": "Harbour Island", - "type": "District" - }, - { - "code": "BS-HT", - "name": "Hope Town", - "type": "District" - }, - { - "code": "BS-IN", - "name": "Inagua", - "type": "District" - }, - { - "code": "BS-LI", - "name": "Long Island", - "type": "District" - }, - { - "code": "BS-MC", - "name": "Mangrove Cay", - "type": "District" - }, - { - "code": "BS-MG", - "name": "Mayaguana", - "type": "District" - }, - { - "code": "BS-MI", - "name": "Moore's Island", - "type": "District" - }, - { - "code": "BS-NE", - "name": "North Eleuthera", - "type": "District" - }, - { - "code": "BS-NO", - "name": "North Abaco", - "type": "District" - }, - { - "code": "BS-NP", - "name": "New Providence", - "type": "Island" - }, - { - "code": "BS-NS", - "name": "North Andros", - "type": "District" - }, - { - "code": "BS-RC", - "name": "Rum Cay", - "type": "District" - }, - { - "code": "BS-RI", - "name": "Ragged Island", - "type": "District" - }, - { - "code": "BS-SA", - "name": "South Andros", - "type": "District" - }, - { - "code": "BS-SE", - "name": "South Eleuthera", - "type": "District" - }, - { - "code": "BS-SO", - "name": "South Abaco", - "type": "District" - }, - { - "code": "BS-SS", - "name": "San Salvador", - "type": "District" - }, - { - "code": "BS-SW", - "name": "Spanish Wells", - "type": "District" - }, - { - "code": "BS-WG", - "name": "West Grand Bahama", - "type": "District" - }, - { - "code": "BT-11", - "name": "Paro", - "type": "District" - }, - { - "code": "BT-12", - "name": "Chhukha", - "type": "District" - }, - { - "code": "BT-13", - "name": "Haa", - "type": "District" - }, - { - "code": "BT-14", - "name": "Samtse", - "type": "District" - }, - { - "code": "BT-15", - "name": "Thimphu", - "type": "District" - }, - { - "code": "BT-21", - "name": "Tsirang", - "type": "District" - }, - { - "code": "BT-22", - "name": "Dagana", - "type": "District" - }, - { - "code": "BT-23", - "name": "Punakha", - "type": "District" - }, - { - "code": "BT-24", - "name": "Wangdue Phodrang", - "type": "District" - }, - { - "code": "BT-31", - "name": "Sarpang", - "type": "District" - }, - { - "code": "BT-32", - "name": "Trongsa", - "type": "District" - }, - { - "code": "BT-33", - "name": "Bumthang", - "type": "District" - }, - { - "code": "BT-34", - "name": "Zhemgang", - "type": "District" - }, - { - "code": "BT-41", - "name": "Trashigang", - "type": "District" - }, - { - "code": "BT-42", - "name": "Monggar", - "type": "District" - }, - { - "code": "BT-43", - "name": "Pema Gatshel", - "type": "District" - }, - { - "code": "BT-44", - "name": "Lhuentse", - "type": "District" - }, - { - "code": "BT-45", - "name": "Samdrup Jongkhar", - "type": "District" - }, - { - "code": "BT-GA", - "name": "Gasa", - "type": "District" - }, - { - "code": "BT-TY", - "name": "Trashi Yangtse", - "type": "District" - }, - { - "code": "BW-CE", - "name": "Central", - "type": "District" - }, - { - "code": "BW-CH", - "name": "Chobe", - "type": "District" - }, - { - "code": "BW-FR", - "name": "Francistown", - "type": "City" - }, - { - "code": "BW-GA", - "name": "Gaborone", - "type": "City" - }, - { - "code": "BW-GH", - "name": "Ghanzi", - "type": "District" - }, - { - "code": "BW-JW", - "name": "Jwaneng", - "type": "Town" - }, - { - "code": "BW-KG", - "name": "Kgalagadi", - "type": "District" - }, - { - "code": "BW-KL", - "name": "Kgatleng", - "type": "District" - }, - { - "code": "BW-KW", - "name": "Kweneng", - "type": "District" - }, - { - "code": "BW-LO", - "name": "Lobatse", - "type": "Town" - }, - { - "code": "BW-NE", - "name": "North East", - "type": "District" - }, - { - "code": "BW-NW", - "name": "North West", - "type": "District" - }, - { - "code": "BW-SE", - "name": "South East", - "type": "District" - }, - { - "code": "BW-SO", - "name": "Southern", - "type": "District" - }, - { - "code": "BW-SP", - "name": "Selibe Phikwe", - "type": "Town" - }, - { - "code": "BW-ST", - "name": "Sowa Town", - "type": "Town" - }, - { - "code": "BY-BR", - "name": "Bresckaja voblasć", - "type": "Oblast" - }, - { - "code": "BY-HM", - "name": "Gorod Minsk", - "type": "City" - }, - { - "code": "BY-HO", - "name": "Gomel'skaja oblast'", - "type": "Oblast" - }, - { - "code": "BY-HR", - "name": "Grodnenskaja oblast'", - "type": "Oblast" - }, - { - "code": "BY-MA", - "name": "Mahilioŭskaja voblasć", - "type": "Oblast" - }, - { - "code": "BY-MI", - "name": "Minskaja oblast'", - "type": "Oblast" - }, - { - "code": "BY-VI", - "name": "Viciebskaja voblasć", - "type": "Oblast" - }, - { - "code": "BZ-BZ", - "name": "Belize", - "type": "District" - }, - { - "code": "BZ-CY", - "name": "Cayo", - "type": "District" - }, - { - "code": "BZ-CZL", - "name": "Corozal", - "type": "District" - }, - { - "code": "BZ-OW", - "name": "Orange Walk", - "type": "District" - }, - { - "code": "BZ-SC", - "name": "Stann Creek", - "type": "District" - }, - { - "code": "BZ-TOL", - "name": "Toledo", - "type": "District" - }, - { - "code": "CA-AB", - "name": "Alberta", - "type": "Province" - }, - { - "code": "CA-BC", - "name": "British Columbia", - "type": "Province" - }, - { - "code": "CA-MB", - "name": "Manitoba", - "type": "Province" - }, - { - "code": "CA-NB", - "name": "New Brunswick", - "type": "Province" - }, - { - "code": "CA-NL", - "name": "Newfoundland and Labrador", - "type": "Province" - }, - { - "code": "CA-NS", - "name": "Nova Scotia", - "type": "Province" - }, - { - "code": "CA-NT", - "name": "Northwest Territories", - "type": "Territory" - }, - { - "code": "CA-NU", - "name": "Nunavut", - "type": "Territory" - }, - { - "code": "CA-ON", - "name": "Ontario", - "type": "Province" - }, - { - "code": "CA-PE", - "name": "Prince Edward Island", - "type": "Province" - }, - { - "code": "CA-QC", - "name": "Quebec", - "type": "Province" - }, - { - "code": "CA-SK", - "name": "Saskatchewan", - "type": "Province" - }, - { - "code": "CA-YT", - "name": "Yukon", - "type": "Territory" - }, - { - "code": "CD-BC", - "name": "Kongo Central", - "type": "Province" - }, - { - "code": "CD-BU", - "name": "Bas-Uélé", - "type": "Province" - }, - { - "code": "CD-EQ", - "name": "Équateur", - "type": "Province" - }, - { - "code": "CD-HK", - "name": "Haut-Katanga", - "type": "Province" - }, - { - "code": "CD-HL", - "name": "Haut-Lomami", - "type": "Province" - }, - { - "code": "CD-HU", - "name": "Haut-Uélé", - "type": "Province" - }, - { - "code": "CD-IT", - "name": "Ituri", - "type": "Province" - }, - { - "code": "CD-KC", - "name": "Kasaï Central", - "type": "Province" - }, - { - "code": "CD-KE", - "name": "Kasaï Oriental", - "type": "Province" - }, - { - "code": "CD-KG", - "name": "Kwango", - "type": "Province" - }, - { - "code": "CD-KL", - "name": "Kwilu", - "type": "Province" - }, - { - "code": "CD-KN", - "name": "Kinshasa", - "type": "City" - }, - { - "code": "CD-KS", - "name": "Kasaï", - "type": "Province" - }, - { - "code": "CD-LO", - "name": "Lomami", - "type": "Province" - }, - { - "code": "CD-LU", - "name": "Lualaba", - "type": "Province" - }, - { - "code": "CD-MA", - "name": "Maniema", - "type": "Province" - }, - { - "code": "CD-MN", - "name": "Mai-Ndombe", - "type": "Province" - }, - { - "code": "CD-MO", - "name": "Mongala", - "type": "Province" - }, - { - "code": "CD-NK", - "name": "Nord-Kivu", - "type": "Province" - }, - { - "code": "CD-NU", - "name": "Nord-Ubangi", - "type": "Province" - }, - { - "code": "CD-SA", - "name": "Sankuru", - "type": "Province" - }, - { - "code": "CD-SK", - "name": "Sud-Kivu", - "type": "Province" - }, - { - "code": "CD-SU", - "name": "Sud-Ubangi", - "type": "Province" - }, - { - "code": "CD-TA", - "name": "Tanganyika", - "type": "Province" - }, - { - "code": "CD-TO", - "name": "Tshopo", - "type": "Province" - }, - { - "code": "CD-TU", - "name": "Tshuapa", - "type": "Province" - }, - { - "code": "CF-AC", - "name": "Ouham", - "type": "Prefecture" - }, - { - "code": "CF-BB", - "name": "Bamingui-Bangoran", - "type": "Prefecture" - }, - { - "code": "CF-BGF", - "name": "Bangui", - "type": "Commune" - }, - { - "code": "CF-BK", - "name": "Basse-Kotto", - "type": "Prefecture" - }, - { - "code": "CF-HK", - "name": "Haute-Kotto", - "type": "Prefecture" - }, - { - "code": "CF-HM", - "name": "Haut-Mbomou", - "type": "Prefecture" - }, - { - "code": "CF-HS", - "name": "Haute-Sangha / Mambéré-Kadéï", - "type": "Prefecture" - }, - { - "code": "CF-KB", - "name": "Gribingui", - "type": "Economic prefecture" - }, - { - "code": "CF-KG", - "name": "Kémo-Gribingui", - "type": "Prefecture" - }, - { - "code": "CF-LB", - "name": "Lobaye", - "type": "Prefecture" - }, - { - "code": "CF-MB", - "name": "Mbomou", - "type": "Prefecture" - }, - { - "code": "CF-MP", - "name": "Ombella-Mpoko", - "type": "Prefecture" - }, - { - "code": "CF-NM", - "name": "Nana-Mambéré", - "type": "Prefecture" - }, - { - "code": "CF-OP", - "name": "Ouham-Pendé", - "type": "Prefecture" - }, - { - "code": "CF-SE", - "name": "Sangha", - "type": "Economic prefecture" - }, - { - "code": "CF-UK", - "name": "Ouaka", - "type": "Prefecture" - }, - { - "code": "CF-VK", - "name": "Vakaga", - "type": "Prefecture" - }, - { - "code": "CG-11", - "name": "Bouenza", - "type": "Department" - }, - { - "code": "CG-12", - "name": "Pool", - "type": "Department" - }, - { - "code": "CG-13", - "name": "Sangha", - "type": "Department" - }, - { - "code": "CG-14", - "name": "Plateaux", - "type": "Department" - }, - { - "code": "CG-15", - "name": "Cuvette-Ouest", - "type": "Department" - }, - { - "code": "CG-16", - "name": "Pointe-Noire", - "type": "Department" - }, - { - "code": "CG-2", - "name": "Lékoumou", - "type": "Department" - }, - { - "code": "CG-5", - "name": "Kouilou", - "type": "Department" - }, - { - "code": "CG-7", - "name": "Likouala", - "type": "Department" - }, - { - "code": "CG-8", - "name": "Cuvette", - "type": "Department" - }, - { - "code": "CG-9", - "name": "Niari", - "type": "Department" - }, - { - "code": "CG-BZV", - "name": "Brazzaville", - "type": "Department" - }, - { - "code": "CH-AG", - "name": "Aargau", - "type": "Canton" - }, - { - "code": "CH-AI", - "name": "Appenzell Innerrhoden", - "type": "Canton" - }, - { - "code": "CH-AR", - "name": "Appenzell Ausserrhoden", - "type": "Canton" - }, - { - "code": "CH-BE", - "name": "Berne", - "type": "Canton" - }, - { - "code": "CH-BL", - "name": "Basel-Landschaft", - "type": "Canton" - }, - { - "code": "CH-BS", - "name": "Basel-Stadt", - "type": "Canton" - }, - { - "code": "CH-FR", - "name": "Fribourg", - "type": "Canton" - }, - { - "code": "CH-GE", - "name": "Genève", - "type": "Canton" - }, - { - "code": "CH-GL", - "name": "Glarus", - "type": "Canton" - }, - { - "code": "CH-GR", - "name": "Graubünden", - "type": "Canton" - }, - { - "code": "CH-JU", - "name": "Jura", - "type": "Canton" - }, - { - "code": "CH-LU", - "name": "Luzern", - "type": "Canton" - }, - { - "code": "CH-NE", - "name": "Neuchâtel", - "type": "Canton" - }, - { - "code": "CH-NW", - "name": "Nidwalden", - "type": "Canton" - }, - { - "code": "CH-OW", - "name": "Obwalden", - "type": "Canton" - }, - { - "code": "CH-SG", - "name": "Sankt Gallen", - "type": "Canton" - }, - { - "code": "CH-SH", - "name": "Schaffhausen", - "type": "Canton" - }, - { - "code": "CH-SO", - "name": "Solothurn", - "type": "Canton" - }, - { - "code": "CH-SZ", - "name": "Schwyz", - "type": "Canton" - }, - { - "code": "CH-TG", - "name": "Thurgau", - "type": "Canton" - }, - { - "code": "CH-TI", - "name": "Ticino", - "type": "Canton" - }, - { - "code": "CH-UR", - "name": "Uri", - "type": "Canton" - }, - { - "code": "CH-VD", - "name": "Vaud", - "type": "Canton" - }, - { - "code": "CH-VS", - "name": "Valais", - "type": "Canton" - }, - { - "code": "CH-ZG", - "name": "Zug", - "type": "Canton" - }, - { - "code": "CH-ZH", - "name": "Zürich", - "type": "Canton" - }, - { - "code": "CI-AB", - "name": "Abidjan", - "type": "Autonomous district" - }, - { - "code": "CI-BS", - "name": "Bas-Sassandra", - "type": "District" - }, - { - "code": "CI-CM", - "name": "Comoé", - "type": "District" - }, - { - "code": "CI-DN", - "name": "Denguélé", - "type": "District" - }, - { - "code": "CI-GD", - "name": "Gôh-Djiboua", - "type": "District" - }, - { - "code": "CI-LC", - "name": "Lacs", - "type": "District" - }, - { - "code": "CI-LG", - "name": "Lagunes", - "type": "District" - }, - { - "code": "CI-MG", - "name": "Montagnes", - "type": "District" - }, - { - "code": "CI-SM", - "name": "Sassandra-Marahoué", - "type": "District" - }, - { - "code": "CI-SV", - "name": "Savanes", - "type": "District" - }, - { - "code": "CI-VB", - "name": "Vallée du Bandama", - "type": "District" - }, - { - "code": "CI-WR", - "name": "Woroba", - "type": "District" - }, - { - "code": "CI-YM", - "name": "Yamoussoukro", - "type": "Autonomous district" - }, - { - "code": "CI-ZZ", - "name": "Zanzan", - "type": "District" - }, - { - "code": "CL-AI", - "name": "Aisén del General Carlos Ibañez del Campo", - "type": "Region" - }, - { - "code": "CL-AN", - "name": "Antofagasta", - "type": "Region" - }, - { - "code": "CL-AP", - "name": "Arica y Parinacota", - "type": "Region" - }, - { - "code": "CL-AR", - "name": "La Araucanía", - "type": "Region" - }, - { - "code": "CL-AT", - "name": "Atacama", - "type": "Region" - }, - { - "code": "CL-BI", - "name": "Biobío", - "type": "Region" - }, - { - "code": "CL-CO", - "name": "Coquimbo", - "type": "Region" - }, - { - "code": "CL-LI", - "name": "Libertador General Bernardo O'Higgins", - "type": "Region" - }, - { - "code": "CL-LL", - "name": "Los Lagos", - "type": "Region" - }, - { - "code": "CL-LR", - "name": "Los Ríos", - "type": "Region" - }, - { - "code": "CL-MA", - "name": "Magallanes", - "type": "Region" - }, - { - "code": "CL-ML", - "name": "Maule", - "type": "Region" - }, - { - "code": "CL-NB", - "name": "Ñuble", - "type": "Region" - }, - { - "code": "CL-RM", - "name": "Región Metropolitana de Santiago", - "type": "Region" - }, - { - "code": "CL-TA", - "name": "Tarapacá", - "type": "Region" - }, - { - "code": "CL-VS", - "name": "Valparaíso", - "type": "Region" - }, - { - "code": "CM-AD", - "name": "Adamaoua", - "type": "Region" - }, - { - "code": "CM-CE", - "name": "Centre", - "type": "Region" - }, - { - "code": "CM-EN", - "name": "Far North", - "type": "Region" - }, - { - "code": "CM-ES", - "name": "East", - "type": "Region" - }, - { - "code": "CM-LT", - "name": "Littoral", - "type": "Region" - }, - { - "code": "CM-NO", - "name": "North", - "type": "Region" - }, - { - "code": "CM-NW", - "name": "North-West", - "type": "Region" - }, - { - "code": "CM-OU", - "name": "West", - "type": "Region" - }, - { - "code": "CM-SU", - "name": "South", - "type": "Region" - }, - { - "code": "CM-SW", - "name": "South-West", - "type": "Region" - }, - { - "code": "CN-AH", - "name": "Anhui Sheng", - "type": "Province" - }, - { - "code": "CN-BJ", - "name": "Beijing Shi", - "type": "Municipality" - }, - { - "code": "CN-CQ", - "name": "Chongqing Shi", - "type": "Municipality" - }, - { - "code": "CN-FJ", - "name": "Fujian Sheng", - "type": "Province" - }, - { - "code": "CN-GD", - "name": "Guangdong Sheng", - "type": "Province" - }, - { - "code": "CN-GS", - "name": "Gansu Sheng", - "type": "Province" - }, - { - "code": "CN-GX", - "name": "Guangxi Zhuangzu Zizhiqu", - "type": "Autonomous region" - }, - { - "code": "CN-GZ", - "name": "Guizhou Sheng", - "type": "Province" - }, - { - "code": "CN-HA", - "name": "Henan Sheng", - "type": "Province" - }, - { - "code": "CN-HB", - "name": "Hubei Sheng", - "type": "Province" - }, - { - "code": "CN-HE", - "name": "Hebei Sheng", - "type": "Province" - }, - { - "code": "CN-HI", - "name": "Hainan Sheng", - "type": "Province" - }, - { - "code": "CN-HK", - "name": "Hong Kong SAR", - "type": "Special administrative region" - }, - { - "code": "CN-HL", - "name": "Heilongjiang Sheng", - "type": "Province" - }, - { - "code": "CN-HN", - "name": "Hunan Sheng", - "type": "Province" - }, - { - "code": "CN-JL", - "name": "Jilin Sheng", - "type": "Province" - }, - { - "code": "CN-JS", - "name": "Jiangsu Sheng", - "type": "Province" - }, - { - "code": "CN-JX", - "name": "Jiangxi Sheng", - "type": "Province" - }, - { - "code": "CN-LN", - "name": "Liaoning Sheng", - "type": "Province" - }, - { - "code": "CN-MO", - "name": "Macao SAR", - "type": "Special administrative region" - }, - { - "code": "CN-NM", - "name": "Nei Mongol Zizhiqu", - "type": "Autonomous region" - }, - { - "code": "CN-NX", - "name": "Ningxia Huizu Zizhiqu", - "type": "Autonomous region" - }, - { - "code": "CN-QH", - "name": "Qinghai Sheng", - "type": "Province" - }, - { - "code": "CN-SC", - "name": "Sichuan Sheng", - "type": "Province" - }, - { - "code": "CN-SD", - "name": "Shandong Sheng", - "type": "Province" - }, - { - "code": "CN-SH", - "name": "Shanghai Shi", - "type": "Municipality" - }, - { - "code": "CN-SN", - "name": "Shaanxi Sheng", - "type": "Province" - }, - { - "code": "CN-SX", - "name": "Shanxi Sheng", - "type": "Province" - }, - { - "code": "CN-TJ", - "name": "Tianjin Shi", - "type": "Municipality" - }, - { - "code": "CN-TW", - "name": "Taiwan Sheng", - "type": "Province" - }, - { - "code": "CN-XJ", - "name": "Xinjiang Uygur Zizhiqu", - "type": "Autonomous region" - }, - { - "code": "CN-XZ", - "name": "Xizang Zizhiqu", - "type": "Autonomous region" - }, - { - "code": "CN-YN", - "name": "Yunnan Sheng", - "type": "Province" - }, - { - "code": "CN-ZJ", - "name": "Zhejiang Sheng", - "type": "Province" - }, - { - "code": "CO-AMA", - "name": "Amazonas", - "type": "Department" - }, - { - "code": "CO-ANT", - "name": "Antioquia", - "type": "Department" - }, - { - "code": "CO-ARA", - "name": "Arauca", - "type": "Department" - }, - { - "code": "CO-ATL", - "name": "Atlántico", - "type": "Department" - }, - { - "code": "CO-BOL", - "name": "Bolívar", - "type": "Department" - }, - { - "code": "CO-BOY", - "name": "Boyacá", - "type": "Department" - }, - { - "code": "CO-CAL", - "name": "Caldas", - "type": "Department" - }, - { - "code": "CO-CAQ", - "name": "Caquetá", - "type": "Department" - }, - { - "code": "CO-CAS", - "name": "Casanare", - "type": "Department" - }, - { - "code": "CO-CAU", - "name": "Cauca", - "type": "Department" - }, - { - "code": "CO-CES", - "name": "Cesar", - "type": "Department" - }, - { - "code": "CO-CHO", - "name": "Chocó", - "type": "Department" - }, - { - "code": "CO-COR", - "name": "Córdoba", - "type": "Department" - }, - { - "code": "CO-CUN", - "name": "Cundinamarca", - "type": "Department" - }, - { - "code": "CO-DC", - "name": "Distrito Capital de Bogotá", - "type": "Capital district" - }, - { - "code": "CO-GUA", - "name": "Guainía", - "type": "Department" - }, - { - "code": "CO-GUV", - "name": "Guaviare", - "type": "Department" - }, - { - "code": "CO-HUI", - "name": "Huila", - "type": "Department" - }, - { - "code": "CO-LAG", - "name": "La Guajira", - "type": "Department" - }, - { - "code": "CO-MAG", - "name": "Magdalena", - "type": "Department" - }, - { - "code": "CO-MET", - "name": "Meta", - "type": "Department" - }, - { - "code": "CO-NAR", - "name": "Nariño", - "type": "Department" - }, - { - "code": "CO-NSA", - "name": "Norte de Santander", - "type": "Department" - }, - { - "code": "CO-PUT", - "name": "Putumayo", - "type": "Department" - }, - { - "code": "CO-QUI", - "name": "Quindío", - "type": "Department" - }, - { - "code": "CO-RIS", - "name": "Risaralda", - "type": "Department" - }, - { - "code": "CO-SAN", - "name": "Santander", - "type": "Department" - }, - { - "code": "CO-SAP", - "name": "San Andrés, Providencia y Santa Catalina", - "type": "Department" - }, - { - "code": "CO-SUC", - "name": "Sucre", - "type": "Department" - }, - { - "code": "CO-TOL", - "name": "Tolima", - "type": "Department" - }, - { - "code": "CO-VAC", - "name": "Valle del Cauca", - "type": "Department" - }, - { - "code": "CO-VAU", - "name": "Vaupés", - "type": "Department" - }, - { - "code": "CO-VID", - "name": "Vichada", - "type": "Department" - }, - { - "code": "CR-A", - "name": "Alajuela", - "type": "Province" - }, - { - "code": "CR-C", - "name": "Cartago", - "type": "Province" - }, - { - "code": "CR-G", - "name": "Guanacaste", - "type": "Province" - }, - { - "code": "CR-H", - "name": "Heredia", - "type": "Province" - }, - { - "code": "CR-L", - "name": "Limón", - "type": "Province" - }, - { - "code": "CR-P", - "name": "Puntarenas", - "type": "Province" - }, - { - "code": "CR-SJ", - "name": "San José", - "type": "Province" - }, - { - "code": "CU-01", - "name": "Pinar del Río", - "type": "Province" - }, - { - "code": "CU-03", - "name": "La Habana", - "type": "Province" - }, - { - "code": "CU-04", - "name": "Matanzas", - "type": "Province" - }, - { - "code": "CU-05", - "name": "Villa Clara", - "type": "Province" - }, - { - "code": "CU-06", - "name": "Cienfuegos", - "type": "Province" - }, - { - "code": "CU-07", - "name": "Sancti Spíritus", - "type": "Province" - }, - { - "code": "CU-08", - "name": "Ciego de Ávila", - "type": "Province" - }, - { - "code": "CU-09", - "name": "Camagüey", - "type": "Province" - }, - { - "code": "CU-10", - "name": "Las Tunas", - "type": "Province" - }, - { - "code": "CU-11", - "name": "Holguín", - "type": "Province" - }, - { - "code": "CU-12", - "name": "Granma", - "type": "Province" - }, - { - "code": "CU-13", - "name": "Santiago de Cuba", - "type": "Province" - }, - { - "code": "CU-14", - "name": "Guantánamo", - "type": "Province" - }, - { - "code": "CU-15", - "name": "Artemisa", - "type": "Province" - }, - { - "code": "CU-16", - "name": "Mayabeque", - "type": "Province" - }, - { - "code": "CU-99", - "name": "Isla de la Juventud", - "type": "Special municipality" - }, - { - "code": "CV-B", - "name": "Ilhas de Barlavento", - "type": "Geographical region" - }, - { - "code": "CV-BR", - "name": "Brava", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-BV", - "name": "Boa Vista", - "parent": "CV-B", - "type": "Municipality" - }, - { - "code": "CV-CA", - "name": "Santa Catarina", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-CF", - "name": "Santa Catarina do Fogo", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-CR", - "name": "Santa Cruz", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-MA", - "name": "Maio", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-MO", - "name": "Mosteiros", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-PA", - "name": "Paul", - "parent": "CV-B", - "type": "Municipality" - }, - { - "code": "CV-PN", - "name": "Porto Novo", - "parent": "CV-B", - "type": "Municipality" - }, - { - "code": "CV-PR", - "name": "Praia", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-RB", - "name": "Ribeira Brava", - "parent": "CV-B", - "type": "Municipality" - }, - { - "code": "CV-RG", - "name": "Ribeira Grande", - "parent": "CV-B", - "type": "Municipality" - }, - { - "code": "CV-RS", - "name": "Ribeira Grande de Santiago", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-S", - "name": "Ilhas de Sotavento", - "type": "Geographical region" - }, - { - "code": "CV-SD", - "name": "São Domingos", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-SF", - "name": "São Filipe", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-SL", - "name": "Sal", - "parent": "CV-B", - "type": "Municipality" - }, - { - "code": "CV-SM", - "name": "São Miguel", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-SO", - "name": "São Lourenço dos Órgãos", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-SS", - "name": "São Salvador do Mundo", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-SV", - "name": "São Vicente", - "parent": "CV-B", - "type": "Municipality" - }, - { - "code": "CV-TA", - "name": "Tarrafal", - "parent": "CV-S", - "type": "Municipality" - }, - { - "code": "CV-TS", - "name": "Tarrafal de São Nicolau", - "parent": "CV-B", - "type": "Municipality" - }, - { - "code": "CY-01", - "name": "Lefkosia", - "type": "District" - }, - { - "code": "CY-02", - "name": "Lemesos", - "type": "District" - }, - { - "code": "CY-03", - "name": "Larnaka", - "type": "District" - }, - { - "code": "CY-04", - "name": "Ammochostos", - "type": "District" - }, - { - "code": "CY-05", - "name": "Baf", - "type": "District" - }, - { - "code": "CY-06", - "name": "Girne", - "type": "District" - }, - { - "code": "CZ-10", - "name": "Praha, Hlavní město", - "type": "Capital city" - }, - { - "code": "CZ-20", - "name": "Středočeský kraj", - "type": "Region" - }, - { - "code": "CZ-201", - "name": "Benešov", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-202", - "name": "Beroun", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-203", - "name": "Kladno", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-204", - "name": "Kolín", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-205", - "name": "Kutná Hora", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-206", - "name": "Mělník", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-207", - "name": "Mladá Boleslav", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-208", - "name": "Nymburk", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-209", - "name": "Praha-východ", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-20A", - "name": "Praha-západ", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-20B", - "name": "Příbram", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-20C", - "name": "Rakovník", - "parent": "CZ-20", - "type": "District" - }, - { - "code": "CZ-31", - "name": "Jihočeský kraj", - "type": "Region" - }, - { - "code": "CZ-311", - "name": "České Budějovice", - "parent": "CZ-31", - "type": "District" - }, - { - "code": "CZ-312", - "name": "Český Krumlov", - "parent": "CZ-31", - "type": "District" - }, - { - "code": "CZ-313", - "name": "Jindřichův Hradec", - "parent": "CZ-31", - "type": "District" - }, - { - "code": "CZ-314", - "name": "Písek", - "parent": "CZ-31", - "type": "District" - }, - { - "code": "CZ-315", - "name": "Prachatice", - "parent": "CZ-31", - "type": "District" - }, - { - "code": "CZ-316", - "name": "Strakonice", - "parent": "CZ-31", - "type": "District" - }, - { - "code": "CZ-317", - "name": "Tábor", - "parent": "CZ-31", - "type": "District" - }, - { - "code": "CZ-32", - "name": "Plzeňský kraj", - "type": "Region" - }, - { - "code": "CZ-321", - "name": "Domažlice", - "parent": "CZ-32", - "type": "District" - }, - { - "code": "CZ-322", - "name": "Klatovy", - "parent": "CZ-32", - "type": "District" - }, - { - "code": "CZ-323", - "name": "Plzeň-město", - "parent": "CZ-32", - "type": "District" - }, - { - "code": "CZ-324", - "name": "Plzeň-jih", - "parent": "CZ-32", - "type": "District" - }, - { - "code": "CZ-325", - "name": "Plzeň-sever", - "parent": "CZ-32", - "type": "District" - }, - { - "code": "CZ-326", - "name": "Rokycany", - "parent": "CZ-32", - "type": "District" - }, - { - "code": "CZ-327", - "name": "Tachov", - "parent": "CZ-32", - "type": "District" - }, - { - "code": "CZ-41", - "name": "Karlovarský kraj", - "type": "Region" - }, - { - "code": "CZ-411", - "name": "Cheb", - "parent": "CZ-41", - "type": "District" - }, - { - "code": "CZ-412", - "name": "Karlovy Vary", - "parent": "CZ-41", - "type": "District" - }, - { - "code": "CZ-413", - "name": "Sokolov", - "parent": "CZ-41", - "type": "District" - }, - { - "code": "CZ-42", - "name": "Ústecký kraj", - "type": "Region" - }, - { - "code": "CZ-421", - "name": "Děčín", - "parent": "CZ-42", - "type": "District" - }, - { - "code": "CZ-422", - "name": "Chomutov", - "parent": "CZ-42", - "type": "District" - }, - { - "code": "CZ-423", - "name": "Litoměřice", - "parent": "CZ-42", - "type": "District" - }, - { - "code": "CZ-424", - "name": "Louny", - "parent": "CZ-42", - "type": "District" - }, - { - "code": "CZ-425", - "name": "Most", - "parent": "CZ-42", - "type": "District" - }, - { - "code": "CZ-426", - "name": "Teplice", - "parent": "CZ-42", - "type": "District" - }, - { - "code": "CZ-427", - "name": "Ústí nad Labem", - "parent": "CZ-42", - "type": "District" - }, - { - "code": "CZ-51", - "name": "Liberecký kraj", - "type": "Region" - }, - { - "code": "CZ-511", - "name": "Česká Lípa", - "parent": "CZ-51", - "type": "District" - }, - { - "code": "CZ-512", - "name": "Jablonec nad Nisou", - "parent": "CZ-51", - "type": "District" - }, - { - "code": "CZ-513", - "name": "Liberec", - "parent": "CZ-51", - "type": "District" - }, - { - "code": "CZ-514", - "name": "Semily", - "parent": "CZ-51", - "type": "District" - }, - { - "code": "CZ-52", - "name": "Královéhradecký kraj", - "type": "Region" - }, - { - "code": "CZ-521", - "name": "Hradec Králové", - "parent": "CZ-52", - "type": "District" - }, - { - "code": "CZ-522", - "name": "Jičín", - "parent": "CZ-52", - "type": "District" - }, - { - "code": "CZ-523", - "name": "Náchod", - "parent": "CZ-52", - "type": "District" - }, - { - "code": "CZ-524", - "name": "Rychnov nad Kněžnou", - "parent": "CZ-52", - "type": "District" - }, - { - "code": "CZ-525", - "name": "Trutnov", - "parent": "CZ-52", - "type": "District" - }, - { - "code": "CZ-53", - "name": "Pardubický kraj", - "type": "Region" - }, - { - "code": "CZ-531", - "name": "Chrudim", - "parent": "CZ-53", - "type": "District" - }, - { - "code": "CZ-532", - "name": "Pardubice", - "parent": "CZ-53", - "type": "District" - }, - { - "code": "CZ-533", - "name": "Svitavy", - "parent": "CZ-53", - "type": "District" - }, - { - "code": "CZ-534", - "name": "Ústí nad Orlicí", - "parent": "CZ-53", - "type": "District" - }, - { - "code": "CZ-63", - "name": "Kraj Vysočina", - "type": "Region" - }, - { - "code": "CZ-631", - "name": "Havlíčkův Brod", - "parent": "CZ-63", - "type": "District" - }, - { - "code": "CZ-632", - "name": "Jihlava", - "parent": "CZ-63", - "type": "District" - }, - { - "code": "CZ-633", - "name": "Pelhřimov", - "parent": "CZ-63", - "type": "District" - }, - { - "code": "CZ-634", - "name": "Třebíč", - "parent": "CZ-63", - "type": "District" - }, - { - "code": "CZ-635", - "name": "Žďár nad Sázavou", - "parent": "CZ-63", - "type": "District" - }, - { - "code": "CZ-64", - "name": "Jihomoravský kraj", - "type": "Region" - }, - { - "code": "CZ-641", - "name": "Blansko", - "parent": "CZ-64", - "type": "District" - }, - { - "code": "CZ-642", - "name": "Brno-město", - "parent": "CZ-64", - "type": "District" - }, - { - "code": "CZ-643", - "name": "Brno-venkov", - "parent": "CZ-64", - "type": "District" - }, - { - "code": "CZ-644", - "name": "Břeclav", - "parent": "CZ-64", - "type": "District" - }, - { - "code": "CZ-645", - "name": "Hodonín", - "parent": "CZ-64", - "type": "District" - }, - { - "code": "CZ-646", - "name": "Vyškov", - "parent": "CZ-64", - "type": "District" - }, - { - "code": "CZ-647", - "name": "Znojmo", - "parent": "CZ-64", - "type": "District" - }, - { - "code": "CZ-71", - "name": "Olomoucký kraj", - "type": "Region" - }, - { - "code": "CZ-711", - "name": "Jeseník", - "parent": "CZ-71", - "type": "District" - }, - { - "code": "CZ-712", - "name": "Olomouc", - "parent": "CZ-71", - "type": "District" - }, - { - "code": "CZ-713", - "name": "Prostějov", - "parent": "CZ-71", - "type": "District" - }, - { - "code": "CZ-714", - "name": "Přerov", - "parent": "CZ-71", - "type": "District" - }, - { - "code": "CZ-715", - "name": "Šumperk", - "parent": "CZ-71", - "type": "District" - }, - { - "code": "CZ-72", - "name": "Zlínský kraj", - "type": "Region" - }, - { - "code": "CZ-721", - "name": "Kroměříž", - "parent": "CZ-72", - "type": "District" - }, - { - "code": "CZ-722", - "name": "Uherské Hradiště", - "parent": "CZ-72", - "type": "District" - }, - { - "code": "CZ-723", - "name": "Vsetín", - "parent": "CZ-72", - "type": "District" - }, - { - "code": "CZ-724", - "name": "Zlín", - "parent": "CZ-72", - "type": "District" - }, - { - "code": "CZ-80", - "name": "Moravskoslezský kraj", - "type": "Region" - }, - { - "code": "CZ-801", - "name": "Bruntál", - "parent": "CZ-80", - "type": "District" - }, - { - "code": "CZ-802", - "name": "Frýdek-Místek", - "parent": "CZ-80", - "type": "District" - }, - { - "code": "CZ-803", - "name": "Karviná", - "parent": "CZ-80", - "type": "District" - }, - { - "code": "CZ-804", - "name": "Nový Jičín", - "parent": "CZ-80", - "type": "District" - }, - { - "code": "CZ-805", - "name": "Opava", - "parent": "CZ-80", - "type": "District" - }, - { - "code": "CZ-806", - "name": "Ostrava-město", - "parent": "CZ-80", - "type": "District" - }, - { - "code": "DE-BB", - "name": "Brandenburg", - "type": "Land" - }, - { - "code": "DE-BE", - "name": "Berlin", - "type": "Land" - }, - { - "code": "DE-BW", - "name": "Baden-Württemberg", - "type": "Land" - }, - { - "code": "DE-BY", - "name": "Bayern", - "type": "Land" - }, - { - "code": "DE-HB", - "name": "Bremen", - "type": "Land" - }, - { - "code": "DE-HE", - "name": "Hessen", - "type": "Land" - }, - { - "code": "DE-HH", - "name": "Hamburg", - "type": "Land" - }, - { - "code": "DE-MV", - "name": "Mecklenburg-Vorpommern", - "type": "Land" - }, - { - "code": "DE-NI", - "name": "Niedersachsen", - "type": "Land" - }, - { - "code": "DE-NW", - "name": "Nordrhein-Westfalen", - "type": "Land" - }, - { - "code": "DE-RP", - "name": "Rheinland-Pfalz", - "type": "Land" - }, - { - "code": "DE-SH", - "name": "Schleswig-Holstein", - "type": "Land" - }, - { - "code": "DE-SL", - "name": "Saarland", - "type": "Land" - }, - { - "code": "DE-SN", - "name": "Sachsen", - "type": "Land" - }, - { - "code": "DE-ST", - "name": "Sachsen-Anhalt", - "type": "Land" - }, - { - "code": "DE-TH", - "name": "Thüringen", - "type": "Land" - }, - { - "code": "DJ-AR", - "name": "Arta", - "type": "Region" - }, - { - "code": "DJ-AS", - "name": "Ali Sabieh", - "type": "Region" - }, - { - "code": "DJ-DI", - "name": "Dikhil", - "type": "Region" - }, - { - "code": "DJ-DJ", - "name": "Djibouti", - "type": "City" - }, - { - "code": "DJ-OB", - "name": "Obock", - "type": "Region" - }, - { - "code": "DJ-TA", - "name": "Tadjourah", - "type": "Region" - }, - { - "code": "DK-81", - "name": "Nordjylland", - "type": "Region" - }, - { - "code": "DK-82", - "name": "Midtjylland", - "type": "Region" - }, - { - "code": "DK-83", - "name": "Syddanmark", - "type": "Region" - }, - { - "code": "DK-84", - "name": "Hovedstaden", - "type": "Region" - }, - { - "code": "DK-85", - "name": "Sjælland", - "type": "Region" - }, - { - "code": "DM-02", - "name": "Saint Andrew", - "type": "Parish" - }, - { - "code": "DM-03", - "name": "Saint David", - "type": "Parish" - }, - { - "code": "DM-04", - "name": "Saint George", - "type": "Parish" - }, - { - "code": "DM-05", - "name": "Saint John", - "type": "Parish" - }, - { - "code": "DM-06", - "name": "Saint Joseph", - "type": "Parish" - }, - { - "code": "DM-07", - "name": "Saint Luke", - "type": "Parish" - }, - { - "code": "DM-08", - "name": "Saint Mark", - "type": "Parish" - }, - { - "code": "DM-09", - "name": "Saint Patrick", - "type": "Parish" - }, - { - "code": "DM-10", - "name": "Saint Paul", - "type": "Parish" - }, - { - "code": "DM-11", - "name": "Saint Peter", - "type": "Parish" - }, - { - "code": "DO-01", - "name": "Distrito Nacional (Santo Domingo)", - "parent": "DO-40", - "type": "District" - }, - { - "code": "DO-02", - "name": "Azua", - "parent": "DO-41", - "type": "Province" - }, - { - "code": "DO-03", - "name": "Baoruco", - "parent": "DO-38", - "type": "Province" - }, - { - "code": "DO-04", - "name": "Barahona", - "parent": "DO-38", - "type": "Province" - }, - { - "code": "DO-05", - "name": "Dajabón", - "parent": "DO-34", - "type": "Province" - }, - { - "code": "DO-06", - "name": "Duarte", - "parent": "DO-33", - "type": "Province" - }, - { - "code": "DO-07", - "name": "Elías Piña", - "parent": "DO-37", - "type": "Province" - }, - { - "code": "DO-08", - "name": "El Seibo", - "parent": "DO-42", - "type": "Province" - }, - { - "code": "DO-09", - "name": "Espaillat", - "parent": "DO-35", - "type": "Province" - }, - { - "code": "DO-10", - "name": "Independencia", - "parent": "DO-38", - "type": "Province" - }, - { - "code": "DO-11", - "name": "La Altagracia", - "parent": "DO-42", - "type": "Province" - }, - { - "code": "DO-12", - "name": "La Romana", - "parent": "DO-42", - "type": "Province" - }, - { - "code": "DO-13", - "name": "La Vega", - "parent": "DO-36", - "type": "Province" - }, - { - "code": "DO-14", - "name": "María Trinidad Sánchez", - "parent": "DO-33", - "type": "Province" - }, - { - "code": "DO-15", - "name": "Monte Cristi", - "parent": "DO-34", - "type": "Province" - }, - { - "code": "DO-16", - "name": "Pedernales", - "parent": "DO-38", - "type": "Province" - }, - { - "code": "DO-17", - "name": "Peravia", - "parent": "DO-41", - "type": "Province" - }, - { - "code": "DO-18", - "name": "Puerto Plata", - "parent": "DO-35", - "type": "Province" - }, - { - "code": "DO-19", - "name": "Hermanas Mirabal", - "parent": "DO-33", - "type": "Province" - }, - { - "code": "DO-20", - "name": "Samaná", - "parent": "DO-33", - "type": "Province" - }, - { - "code": "DO-21", - "name": "San Cristóbal", - "parent": "DO-41", - "type": "Province" - }, - { - "code": "DO-22", - "name": "San Juan", - "parent": "DO-37", - "type": "Province" - }, - { - "code": "DO-23", - "name": "San Pedro de Macorís", - "parent": "DO-39", - "type": "Province" - }, - { - "code": "DO-24", - "name": "Sánchez Ramírez", - "parent": "DO-36", - "type": "Province" - }, - { - "code": "DO-25", - "name": "Santiago", - "parent": "DO-35", - "type": "Province" - }, - { - "code": "DO-26", - "name": "Santiago Rodríguez", - "parent": "DO-34", - "type": "Province" - }, - { - "code": "DO-27", - "name": "Valverde", - "parent": "DO-34", - "type": "Province" - }, - { - "code": "DO-28", - "name": "Monseñor Nouel", - "parent": "DO-36", - "type": "Province" - }, - { - "code": "DO-29", - "name": "Monte Plata", - "parent": "DO-39", - "type": "Province" - }, - { - "code": "DO-30", - "name": "Hato Mayor", - "parent": "DO-39", - "type": "Province" - }, - { - "code": "DO-31", - "name": "San José de Ocoa", - "parent": "DO-41", - "type": "Province" - }, - { - "code": "DO-32", - "name": "Santo Domingo", - "parent": "DO-40", - "type": "Province" - }, - { - "code": "DO-33", - "name": "Cibao Nordeste", - "type": "Region" - }, - { - "code": "DO-34", - "name": "Cibao Noroeste", - "type": "Region" - }, - { - "code": "DO-35", - "name": "Cibao Norte", - "type": "Region" - }, - { - "code": "DO-36", - "name": "Cibao Sur", - "type": "Region" - }, - { - "code": "DO-37", - "name": "El Valle", - "type": "Region" - }, - { - "code": "DO-38", - "name": "Enriquillo", - "type": "Region" - }, - { - "code": "DO-39", - "name": "Higuamo", - "type": "Region" - }, - { - "code": "DO-40", - "name": "Ozama", - "type": "Region" - }, - { - "code": "DO-41", - "name": "Valdesia", - "type": "Region" - }, - { - "code": "DO-42", - "name": "Yuma", - "type": "Region" - }, - { - "code": "DZ-01", - "name": "Adrar", - "type": "Province" - }, - { - "code": "DZ-02", - "name": "Chlef", - "type": "Province" - }, - { - "code": "DZ-03", - "name": "Laghouat", - "type": "Province" - }, - { - "code": "DZ-04", - "name": "Oum el Bouaghi", - "type": "Province" - }, - { - "code": "DZ-05", - "name": "Batna", - "type": "Province" - }, - { - "code": "DZ-06", - "name": "Béjaïa", - "type": "Province" - }, - { - "code": "DZ-07", - "name": "Biskra", - "type": "Province" - }, - { - "code": "DZ-08", - "name": "Béchar", - "type": "Province" - }, - { - "code": "DZ-09", - "name": "Blida", - "type": "Province" - }, - { - "code": "DZ-10", - "name": "Bouira", - "type": "Province" - }, - { - "code": "DZ-11", - "name": "Tamanrasset", - "type": "Province" - }, - { - "code": "DZ-12", - "name": "Tébessa", - "type": "Province" - }, - { - "code": "DZ-13", - "name": "Tlemcen", - "type": "Province" - }, - { - "code": "DZ-14", - "name": "Tiaret", - "type": "Province" - }, - { - "code": "DZ-15", - "name": "Tizi Ouzou", - "type": "Province" - }, - { - "code": "DZ-16", - "name": "Alger", - "type": "Province" - }, - { - "code": "DZ-17", - "name": "Djelfa", - "type": "Province" - }, - { - "code": "DZ-18", - "name": "Jijel", - "type": "Province" - }, - { - "code": "DZ-19", - "name": "Sétif", - "type": "Province" - }, - { - "code": "DZ-20", - "name": "Saïda", - "type": "Province" - }, - { - "code": "DZ-21", - "name": "Skikda", - "type": "Province" - }, - { - "code": "DZ-22", - "name": "Sidi Bel Abbès", - "type": "Province" - }, - { - "code": "DZ-23", - "name": "Annaba", - "type": "Province" - }, - { - "code": "DZ-24", - "name": "Guelma", - "type": "Province" - }, - { - "code": "DZ-25", - "name": "Constantine", - "type": "Province" - }, - { - "code": "DZ-26", - "name": "Médéa", - "type": "Province" - }, - { - "code": "DZ-27", - "name": "Mostaganem", - "type": "Province" - }, - { - "code": "DZ-28", - "name": "M'sila", - "type": "Province" - }, - { - "code": "DZ-29", - "name": "Mascara", - "type": "Province" - }, - { - "code": "DZ-30", - "name": "Ouargla", - "type": "Province" - }, - { - "code": "DZ-31", - "name": "Oran", - "type": "Province" - }, - { - "code": "DZ-32", - "name": "El Bayadh", - "type": "Province" - }, - { - "code": "DZ-33", - "name": "Illizi", - "type": "Province" - }, - { - "code": "DZ-34", - "name": "Bordj Bou Arréridj", - "type": "Province" - }, - { - "code": "DZ-35", - "name": "Boumerdès", - "type": "Province" - }, - { - "code": "DZ-36", - "name": "El Tarf", - "type": "Province" - }, - { - "code": "DZ-37", - "name": "Tindouf", - "type": "Province" - }, - { - "code": "DZ-38", - "name": "Tissemsilt", - "type": "Province" - }, - { - "code": "DZ-39", - "name": "El Oued", - "type": "Province" - }, - { - "code": "DZ-40", - "name": "Khenchela", - "type": "Province" - }, - { - "code": "DZ-41", - "name": "Souk Ahras", - "type": "Province" - }, - { - "code": "DZ-42", - "name": "Tipaza", - "type": "Province" - }, - { - "code": "DZ-43", - "name": "Mila", - "type": "Province" - }, - { - "code": "DZ-44", - "name": "Aïn Defla", - "type": "Province" - }, - { - "code": "DZ-45", - "name": "Naama", - "type": "Province" - }, - { - "code": "DZ-46", - "name": "Aïn Témouchent", - "type": "Province" - }, - { - "code": "DZ-47", - "name": "Ghardaïa", - "type": "Province" - }, - { - "code": "DZ-48", - "name": "Relizane", - "type": "Province" - }, - { - "code": "DZ-49", - "name": "Timimoun", - "type": "Province" - }, - { - "code": "DZ-50", - "name": "Bordj Badji Mokhtar", - "type": "Province" - }, - { - "code": "DZ-51", - "name": "Ouled Djellal", - "type": "Province" - }, - { - "code": "DZ-52", - "name": "Béni Abbès", - "type": "Province" - }, - { - "code": "DZ-53", - "name": "In Salah", - "type": "Province" - }, - { - "code": "DZ-54", - "name": "In Guezzam", - "type": "Province" - }, - { - "code": "DZ-55", - "name": "Touggourt", - "type": "Province" - }, - { - "code": "DZ-56", - "name": "Djanet", - "type": "Province" - }, - { - "code": "DZ-57", - "name": "El Meghaier", - "type": "Province" - }, - { - "code": "DZ-58", - "name": "El Meniaa", - "type": "Province" - }, - { - "code": "EC-A", - "name": "Azuay", - "type": "Province" - }, - { - "code": "EC-B", - "name": "Bolívar", - "type": "Province" - }, - { - "code": "EC-C", - "name": "Carchi", - "type": "Province" - }, - { - "code": "EC-D", - "name": "Orellana", - "type": "Province" - }, - { - "code": "EC-E", - "name": "Esmeraldas", - "type": "Province" - }, - { - "code": "EC-F", - "name": "Cañar", - "type": "Province" - }, - { - "code": "EC-G", - "name": "Guayas", - "type": "Province" - }, - { - "code": "EC-H", - "name": "Chimborazo", - "type": "Province" - }, - { - "code": "EC-I", - "name": "Imbabura", - "type": "Province" - }, - { - "code": "EC-L", - "name": "Loja", - "type": "Province" - }, - { - "code": "EC-M", - "name": "Manabí", - "type": "Province" - }, - { - "code": "EC-N", - "name": "Napo", - "type": "Province" - }, - { - "code": "EC-O", - "name": "El Oro", - "type": "Province" - }, - { - "code": "EC-P", - "name": "Pichincha", - "type": "Province" - }, - { - "code": "EC-R", - "name": "Los Ríos", - "type": "Province" - }, - { - "code": "EC-S", - "name": "Morona Santiago", - "type": "Province" - }, - { - "code": "EC-SD", - "name": "Santo Domingo de los Tsáchilas", - "type": "Province" - }, - { - "code": "EC-SE", - "name": "Santa Elena", - "type": "Province" - }, - { - "code": "EC-T", - "name": "Tungurahua", - "type": "Province" - }, - { - "code": "EC-U", - "name": "Sucumbíos", - "type": "Province" - }, - { - "code": "EC-W", - "name": "Galápagos", - "type": "Province" - }, - { - "code": "EC-X", - "name": "Cotopaxi", - "type": "Province" - }, - { - "code": "EC-Y", - "name": "Pastaza", - "type": "Province" - }, - { - "code": "EC-Z", - "name": "Zamora Chinchipe", - "type": "Province" - }, - { - "code": "EE-130", - "name": "Alutaguse", - "parent": "EE-45", - "type": "Rural municipality" - }, - { - "code": "EE-141", - "name": "Anija", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-142", - "name": "Antsla", - "parent": "EE-87", - "type": "Rural municipality" - }, - { - "code": "EE-171", - "name": "Elva", - "parent": "EE-79", - "type": "Rural municipality" - }, - { - "code": "EE-184", - "name": "Haapsalu", - "parent": "EE-56", - "type": "Urban municipality" - }, - { - "code": "EE-191", - "name": "Haljala", - "parent": "EE-60", - "type": "Rural municipality" - }, - { - "code": "EE-198", - "name": "Harku", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-205", - "name": "Hiiumaa", - "parent": "EE-39", - "type": "Rural municipality" - }, - { - "code": "EE-214", - "name": "Häädemeeste", - "parent": "EE-68", - "type": "Rural municipality" - }, - { - "code": "EE-245", - "name": "Jõelähtme", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-247", - "name": "Jõgeva", - "parent": "EE-50", - "type": "Rural municipality" - }, - { - "code": "EE-251", - "name": "Jõhvi", - "parent": "EE-45", - "type": "Rural municipality" - }, - { - "code": "EE-255", - "name": "Järva", - "parent": "EE-52", - "type": "Rural municipality" - }, - { - "code": "EE-272", - "name": "Kadrina", - "parent": "EE-60", - "type": "Rural municipality" - }, - { - "code": "EE-283", - "name": "Kambja", - "parent": "EE-79", - "type": "Rural municipality" - }, - { - "code": "EE-284", - "name": "Kanepi", - "parent": "EE-64", - "type": "Rural municipality" - }, - { - "code": "EE-291", - "name": "Kastre", - "parent": "EE-79", - "type": "Rural municipality" - }, - { - "code": "EE-293", - "name": "Kehtna", - "parent": "EE-71", - "type": "Rural municipality" - }, - { - "code": "EE-296", - "name": "Keila", - "parent": "EE-37", - "type": "Urban municipality" - }, - { - "code": "EE-303", - "name": "Kihnu", - "parent": "EE-68", - "type": "Rural municipality" - }, - { - "code": "EE-305", - "name": "Kiili", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-317", - "name": "Kohila", - "parent": "EE-71", - "type": "Rural municipality" - }, - { - "code": "EE-321", - "name": "Kohtla-Järve", - "parent": "EE-45", - "type": "Urban municipality" - }, - { - "code": "EE-338", - "name": "Kose", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-353", - "name": "Kuusalu", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-37", - "name": "Harjumaa", - "type": "County" - }, - { - "code": "EE-39", - "name": "Hiiumaa", - "type": "County" - }, - { - "code": "EE-424", - "name": "Loksa", - "parent": "EE-37", - "type": "Urban municipality" - }, - { - "code": "EE-430", - "name": "Lääneranna", - "parent": "EE-68", - "type": "Rural municipality" - }, - { - "code": "EE-431", - "name": "Lääne-Harju", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-432", - "name": "Luunja", - "parent": "EE-79", - "type": "Rural municipality" - }, - { - "code": "EE-441", - "name": "Lääne-Nigula", - "parent": "EE-56", - "type": "Rural municipality" - }, - { - "code": "EE-442", - "name": "Lüganuse", - "parent": "EE-45", - "type": "Rural municipality" - }, - { - "code": "EE-446", - "name": "Maardu", - "parent": "EE-37", - "type": "Urban municipality" - }, - { - "code": "EE-45", - "name": "Ida-Virumaa", - "type": "County" - }, - { - "code": "EE-478", - "name": "Muhu", - "parent": "EE-74", - "type": "Rural municipality" - }, - { - "code": "EE-480", - "name": "Mulgi", - "parent": "EE-84", - "type": "Rural municipality" - }, - { - "code": "EE-486", - "name": "Mustvee", - "parent": "EE-50", - "type": "Rural municipality" - }, - { - "code": "EE-50", - "name": "Jõgevamaa", - "type": "County" - }, - { - "code": "EE-503", - "name": "Märjamaa", - "parent": "EE-71", - "type": "Rural municipality" - }, - { - "code": "EE-511", - "name": "Narva", - "parent": "EE-45", - "type": "Urban municipality" - }, - { - "code": "EE-514", - "name": "Narva-Jõesuu", - "parent": "EE-45", - "type": "Urban municipality" - }, - { - "code": "EE-52", - "name": "Järvamaa", - "type": "County" - }, - { - "code": "EE-528", - "name": "Nõo", - "parent": "EE-79", - "type": "Rural municipality" - }, - { - "code": "EE-557", - "name": "Otepää", - "parent": "EE-81", - "type": "Rural municipality" - }, - { - "code": "EE-56", - "name": "Läänemaa", - "type": "County" - }, - { - "code": "EE-567", - "name": "Paide", - "parent": "EE-52", - "type": "Urban municipality" - }, - { - "code": "EE-586", - "name": "Peipsiääre", - "parent": "EE-79", - "type": "Rural municipality" - }, - { - "code": "EE-60", - "name": "Lääne-Virumaa", - "type": "County" - }, - { - "code": "EE-615", - "name": "Põhja-Sakala", - "parent": "EE-84", - "type": "Rural municipality" - }, - { - "code": "EE-618", - "name": "Põltsamaa", - "parent": "EE-50", - "type": "Rural municipality" - }, - { - "code": "EE-622", - "name": "Põlva", - "parent": "EE-64", - "type": "Rural municipality" - }, - { - "code": "EE-624", - "name": "Pärnu", - "parent": "EE-68", - "type": "Urban municipality" - }, - { - "code": "EE-638", - "name": "Põhja-Pärnumaa", - "parent": "EE-68", - "type": "Rural municipality" - }, - { - "code": "EE-64", - "name": "Põlvamaa", - "type": "County" - }, - { - "code": "EE-651", - "name": "Raasiku", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-653", - "name": "Rae", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-661", - "name": "Rakvere", - "parent": "EE-60", - "type": "Rural municipality" - }, - { - "code": "EE-663", - "name": "Rakvere", - "parent": "EE-60", - "type": "Urban municipality" - }, - { - "code": "EE-668", - "name": "Rapla", - "parent": "EE-71", - "type": "Rural municipality" - }, - { - "code": "EE-68", - "name": "Pärnumaa", - "type": "County" - }, - { - "code": "EE-689", - "name": "Ruhnu", - "parent": "EE-74", - "type": "Rural municipality" - }, - { - "code": "EE-698", - "name": "Rõuge", - "parent": "EE-87", - "type": "Rural municipality" - }, - { - "code": "EE-708", - "name": "Räpina", - "parent": "EE-64", - "type": "Rural municipality" - }, - { - "code": "EE-71", - "name": "Raplamaa", - "type": "County" - }, - { - "code": "EE-712", - "name": "Saarde", - "parent": "EE-68", - "type": "Rural municipality" - }, - { - "code": "EE-714", - "name": "Saaremaa", - "parent": "EE-74", - "type": "Rural municipality" - }, - { - "code": "EE-719", - "name": "Saku", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-726", - "name": "Saue", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-732", - "name": "Setomaa", - "parent": "EE-87", - "type": "Rural municipality" - }, - { - "code": "EE-735", - "name": "Sillamäe", - "parent": "EE-45", - "type": "Urban municipality" - }, - { - "code": "EE-74", - "name": "Saaremaa", - "type": "County" - }, - { - "code": "EE-784", - "name": "Tallinn", - "parent": "EE-37", - "type": "Urban municipality" - }, - { - "code": "EE-79", - "name": "Tartumaa", - "type": "County" - }, - { - "code": "EE-792", - "name": "Tapa", - "parent": "EE-60", - "type": "Rural municipality" - }, - { - "code": "EE-793", - "name": "Tartu", - "parent": "EE-79", - "type": "Urban municipality" - }, - { - "code": "EE-796", - "name": "Tartu", - "parent": "EE-79", - "type": "Rural municipality" - }, - { - "code": "EE-803", - "name": "Toila", - "parent": "EE-45", - "type": "Rural municipality" - }, - { - "code": "EE-809", - "name": "Tori", - "parent": "EE-68", - "type": "Rural municipality" - }, - { - "code": "EE-81", - "name": "Valgamaa", - "type": "County" - }, - { - "code": "EE-824", - "name": "Tõrva", - "parent": "EE-81", - "type": "Rural municipality" - }, - { - "code": "EE-834", - "name": "Türi", - "parent": "EE-52", - "type": "Rural municipality" - }, - { - "code": "EE-84", - "name": "Viljandimaa", - "type": "County" - }, - { - "code": "EE-855", - "name": "Valga", - "parent": "EE-81", - "type": "Rural municipality" - }, - { - "code": "EE-87", - "name": "Võrumaa", - "type": "County" - }, - { - "code": "EE-890", - "name": "Viimsi", - "parent": "EE-37", - "type": "Rural municipality" - }, - { - "code": "EE-897", - "name": "Viljandi", - "parent": "EE-84", - "type": "Urban municipality" - }, - { - "code": "EE-899", - "name": "Viljandi", - "parent": "EE-84", - "type": "Rural municipality" - }, - { - "code": "EE-901", - "name": "Vinni", - "parent": "EE-60", - "type": "Rural municipality" - }, - { - "code": "EE-903", - "name": "Viru-Nigula", - "parent": "EE-60", - "type": "Rural municipality" - }, - { - "code": "EE-907", - "name": "Vormsi", - "parent": "EE-56", - "type": "Rural municipality" - }, - { - "code": "EE-917", - "name": "Võru", - "parent": "EE-87", - "type": "Rural municipality" - }, - { - "code": "EE-919", - "name": "Võru", - "parent": "EE-87", - "type": "Urban municipality" - }, - { - "code": "EE-928", - "name": "Väike-Maarja", - "parent": "EE-60", - "type": "Rural municipality" - }, - { - "code": "EG-ALX", - "name": "Al Iskandarīyah", - "type": "Governorate" - }, - { - "code": "EG-ASN", - "name": "Aswān", - "type": "Governorate" - }, - { - "code": "EG-AST", - "name": "Asyūţ", - "type": "Governorate" - }, - { - "code": "EG-BA", - "name": "Al Baḩr al Aḩmar", - "type": "Governorate" - }, - { - "code": "EG-BH", - "name": "Al Buḩayrah", - "type": "Governorate" - }, - { - "code": "EG-BNS", - "name": "Banī Suwayf", - "type": "Governorate" - }, - { - "code": "EG-C", - "name": "Al Qāhirah", - "type": "Governorate" - }, - { - "code": "EG-DK", - "name": "Ad Daqahlīyah", - "type": "Governorate" - }, - { - "code": "EG-DT", - "name": "Dumyāţ", - "type": "Governorate" - }, - { - "code": "EG-FYM", - "name": "Al Fayyūm", - "type": "Governorate" - }, - { - "code": "EG-GH", - "name": "Al Gharbīyah", - "type": "Governorate" - }, - { - "code": "EG-GZ", - "name": "Al Jīzah", - "type": "Governorate" - }, - { - "code": "EG-IS", - "name": "Al Ismā'īlīyah", - "type": "Governorate" - }, - { - "code": "EG-JS", - "name": "Janūb Sīnā'", - "type": "Governorate" - }, - { - "code": "EG-KB", - "name": "Al Qalyūbīyah", - "type": "Governorate" - }, - { - "code": "EG-KFS", - "name": "Kafr ash Shaykh", - "type": "Governorate" - }, - { - "code": "EG-KN", - "name": "Qinā", - "type": "Governorate" - }, - { - "code": "EG-LX", - "name": "Al Uqşur", - "type": "Governorate" - }, - { - "code": "EG-MN", - "name": "Al Minyā", - "type": "Governorate" - }, - { - "code": "EG-MNF", - "name": "Al Minūfīyah", - "type": "Governorate" - }, - { - "code": "EG-MT", - "name": "Maţrūḩ", - "type": "Governorate" - }, - { - "code": "EG-PTS", - "name": "Būr Sa‘īd", - "type": "Governorate" - }, - { - "code": "EG-SHG", - "name": "Sūhāj", - "type": "Governorate" - }, - { - "code": "EG-SHR", - "name": "Ash Sharqīyah", - "type": "Governorate" - }, - { - "code": "EG-SIN", - "name": "Shamāl Sīnā'", - "type": "Governorate" - }, - { - "code": "EG-SUZ", - "name": "As Suways", - "type": "Governorate" - }, - { - "code": "EG-WAD", - "name": "Al Wādī al Jadīd", - "type": "Governorate" - }, - { - "code": "ER-AN", - "name": "Ansabā", - "type": "Region" - }, - { - "code": "ER-DK", - "name": "Debubawi K’eyyĭḥ Baḥri", - "type": "Region" - }, - { - "code": "ER-DU", - "name": "Al Janūbī", - "type": "Region" - }, - { - "code": "ER-GB", - "name": "Gash-Barka", - "type": "Region" - }, - { - "code": "ER-MA", - "name": "Al Awsaţ", - "type": "Region" - }, - { - "code": "ER-SK", - "name": "Semienawi K’eyyĭḥ Baḥri", - "type": "Region" - }, - { - "code": "ES-A", - "name": "Alacant*", - "parent": "ES-VC", - "type": "Province" - }, - { - "code": "ES-AB", - "name": "Albacete", - "parent": "ES-CM", - "type": "Province" - }, - { - "code": "ES-AL", - "name": "Almería", - "parent": "ES-AN", - "type": "Province" - }, - { - "code": "ES-AN", - "name": "Andalucía", - "type": "Autonomous community" - }, - { - "code": "ES-AR", - "name": "Aragón", - "type": "Autonomous community" - }, - { - "code": "ES-AS", - "name": "Asturias, Principado de", - "type": "Autonomous community" - }, - { - "code": "ES-AV", - "name": "Ávila", - "parent": "ES-CL", - "type": "Province" - }, - { - "code": "ES-B", - "name": "Barcelona [Barcelona]", - "parent": "ES-CT", - "type": "Province" - }, - { - "code": "ES-BA", - "name": "Badajoz", - "parent": "ES-EX", - "type": "Province" - }, - { - "code": "ES-BI", - "name": "Bizkaia", - "parent": "ES-PV", - "type": "Province" - }, - { - "code": "ES-BU", - "name": "Burgos", - "parent": "ES-CL", - "type": "Province" - }, - { - "code": "ES-C", - "name": "A Coruña [La Coruña]", - "parent": "ES-GA", - "type": "Province" - }, - { - "code": "ES-CA", - "name": "Cádiz", - "parent": "ES-AN", - "type": "Province" - }, - { - "code": "ES-CB", - "name": "Cantabria", - "type": "Autonomous community" - }, - { - "code": "ES-CC", - "name": "Cáceres", - "parent": "ES-EX", - "type": "Province" - }, - { - "code": "ES-CE", - "name": "Ceuta", - "type": "Autonomous city in north africa" - }, - { - "code": "ES-CL", - "name": "Castilla y León", - "type": "Autonomous community" - }, - { - "code": "ES-CM", - "name": "Castilla-La Mancha", - "type": "Autonomous community" - }, - { - "code": "ES-CN", - "name": "Canarias", - "type": "Autonomous community" - }, - { - "code": "ES-CO", - "name": "Córdoba", - "parent": "ES-AN", - "type": "Province" - }, - { - "code": "ES-CR", - "name": "Ciudad Real", - "parent": "ES-CM", - "type": "Province" - }, - { - "code": "ES-CS", - "name": "Castelló*", - "parent": "ES-VC", - "type": "Province" - }, - { - "code": "ES-CT", - "name": "Catalunya [Cataluña]", - "type": "Autonomous community" - }, - { - "code": "ES-CU", - "name": "Cuenca", - "parent": "ES-CM", - "type": "Province" - }, - { - "code": "ES-EX", - "name": "Extremadura", - "type": "Autonomous community" - }, - { - "code": "ES-GA", - "name": "Galicia [Galicia]", - "type": "Autonomous community" - }, - { - "code": "ES-GC", - "name": "Las Palmas", - "parent": "ES-CN", - "type": "Province" - }, - { - "code": "ES-GI", - "name": "Girona [Gerona]", - "parent": "ES-CT", - "type": "Province" - }, - { - "code": "ES-GR", - "name": "Granada", - "parent": "ES-AN", - "type": "Province" - }, - { - "code": "ES-GU", - "name": "Guadalajara", - "parent": "ES-CM", - "type": "Province" - }, - { - "code": "ES-H", - "name": "Huelva", - "parent": "ES-AN", - "type": "Province" - }, - { - "code": "ES-HU", - "name": "Huesca", - "parent": "ES-AR", - "type": "Province" - }, - { - "code": "ES-IB", - "name": "Illes Balears [Islas Baleares]", - "type": "Autonomous community" - }, - { - "code": "ES-J", - "name": "Jaén", - "parent": "ES-AN", - "type": "Province" - }, - { - "code": "ES-L", - "name": "Lleida [Lérida]", - "parent": "ES-CT", - "type": "Province" - }, - { - "code": "ES-LE", - "name": "León", - "parent": "ES-CL", - "type": "Province" - }, - { - "code": "ES-LO", - "name": "La Rioja", - "parent": "ES-RI", - "type": "Province" - }, - { - "code": "ES-LU", - "name": "Lugo [Lugo]", - "parent": "ES-GA", - "type": "Province" - }, - { - "code": "ES-M", - "name": "Madrid", - "parent": "ES-MD", - "type": "Province" - }, - { - "code": "ES-MA", - "name": "Málaga", - "parent": "ES-AN", - "type": "Province" - }, - { - "code": "ES-MC", - "name": "Murcia, Región de", - "type": "Autonomous community" - }, - { - "code": "ES-MD", - "name": "Madrid, Comunidad de", - "type": "Autonomous community" - }, - { - "code": "ES-ML", - "name": "Melilla", - "type": "Autonomous city in north africa" - }, - { - "code": "ES-MU", - "name": "Murcia", - "parent": "ES-MC", - "type": "Province" - }, - { - "code": "ES-NA", - "name": "Nafarroa*", - "parent": "ES-NC", - "type": "Province" - }, - { - "code": "ES-NC", - "name": "Nafarroako Foru Komunitatea*", - "type": "Autonomous community" - }, - { - "code": "ES-O", - "name": "Asturias", - "parent": "ES-AS", - "type": "Province" - }, - { - "code": "ES-OR", - "name": "Ourense [Orense]", - "parent": "ES-GA", - "type": "Province" - }, - { - "code": "ES-P", - "name": "Palencia", - "parent": "ES-CL", - "type": "Province" - }, - { - "code": "ES-PM", - "name": "Illes Balears [Islas Baleares]", - "parent": "ES-IB", - "type": "Province" - }, - { - "code": "ES-PO", - "name": "Pontevedra [Pontevedra]", - "parent": "ES-GA", - "type": "Province" - }, - { - "code": "ES-PV", - "name": "Euskal Herria", - "type": "Autonomous community" - }, - { - "code": "ES-RI", - "name": "La Rioja", - "type": "Autonomous community" - }, - { - "code": "ES-S", - "name": "Cantabria", - "parent": "ES-CB", - "type": "Province" - }, - { - "code": "ES-SA", - "name": "Salamanca", - "parent": "ES-CL", - "type": "Province" - }, - { - "code": "ES-SE", - "name": "Sevilla", - "parent": "ES-AN", - "type": "Province" - }, - { - "code": "ES-SG", - "name": "Segovia", - "parent": "ES-CL", - "type": "Province" - }, - { - "code": "ES-SO", - "name": "Soria", - "parent": "ES-CL", - "type": "Province" - }, - { - "code": "ES-SS", - "name": "Gipuzkoa", - "parent": "ES-PV", - "type": "Province" - }, - { - "code": "ES-T", - "name": "Tarragona [Tarragona]", - "parent": "ES-CT", - "type": "Province" - }, - { - "code": "ES-TE", - "name": "Teruel", - "parent": "ES-AR", - "type": "Province" - }, - { - "code": "ES-TF", - "name": "Santa Cruz de Tenerife", - "parent": "ES-CN", - "type": "Province" - }, - { - "code": "ES-TO", - "name": "Toledo", - "parent": "ES-CM", - "type": "Province" - }, - { - "code": "ES-V", - "name": "Valencia", - "parent": "ES-VC", - "type": "Province" - }, - { - "code": "ES-VA", - "name": "Valladolid", - "parent": "ES-CL", - "type": "Province" - }, - { - "code": "ES-VC", - "name": "Valenciana, Comunidad", - "type": "Autonomous community" - }, - { - "code": "ES-VI", - "name": "Araba*", - "parent": "ES-PV", - "type": "Province" - }, - { - "code": "ES-Z", - "name": "Zaragoza", - "parent": "ES-AR", - "type": "Province" - }, - { - "code": "ES-ZA", - "name": "Zamora", - "parent": "ES-CL", - "type": "Province" - }, - { - "code": "ET-AA", - "name": "Addis Ababa", - "type": "Administration" - }, - { - "code": "ET-AF", - "name": "Afar", - "type": "Regional state" - }, - { - "code": "ET-AM", - "name": "Amara", - "type": "Regional state" - }, - { - "code": "ET-BE", - "name": "Benshangul-Gumaz", - "type": "Regional state" - }, - { - "code": "ET-DD", - "name": "Dire Dawa", - "type": "Administration" - }, - { - "code": "ET-GA", - "name": "Gambela Peoples", - "type": "Regional state" - }, - { - "code": "ET-HA", - "name": "Harari People", - "type": "Regional state" - }, - { - "code": "ET-OR", - "name": "Oromia", - "type": "Regional state" - }, - { - "code": "ET-SI", - "name": "Sidama", - "type": "Regional state" - }, - { - "code": "ET-SN", - "name": "Southern Nations, Nationalities and Peoples", - "type": "Regional state" - }, - { - "code": "ET-SO", - "name": "Somali", - "type": "Regional state" - }, - { - "code": "ET-SW", - "name": "Southwest Ethiopia Peoples", - "type": "Regional state" - }, - { - "code": "ET-TI", - "name": "Tigrai", - "type": "Regional state" - }, - { - "code": "FI-01", - "name": "Landskapet Åland", - "type": "Region" - }, - { - "code": "FI-02", - "name": "Etelä-Karjala", - "type": "Region" - }, - { - "code": "FI-03", - "name": "Etelä-Pohjanmaa", - "type": "Region" - }, - { - "code": "FI-04", - "name": "Etelä-Savo", - "type": "Region" - }, - { - "code": "FI-05", - "name": "Kainuu", - "type": "Region" - }, - { - "code": "FI-06", - "name": "Kanta-Häme", - "type": "Region" - }, - { - "code": "FI-07", - "name": "Keski-Pohjanmaa", - "type": "Region" - }, - { - "code": "FI-08", - "name": "Keski-Suomi", - "type": "Region" - }, - { - "code": "FI-09", - "name": "Kymenlaakso", - "type": "Region" - }, - { - "code": "FI-10", - "name": "Lappi", - "type": "Region" - }, - { - "code": "FI-11", - "name": "Pirkanmaa", - "type": "Region" - }, - { - "code": "FI-12", - "name": "Pohjanmaa", - "type": "Region" - }, - { - "code": "FI-13", - "name": "Pohjois-Karjala", - "type": "Region" - }, - { - "code": "FI-14", - "name": "Pohjois-Pohjanmaa", - "type": "Region" - }, - { - "code": "FI-15", - "name": "Pohjois-Savo", - "type": "Region" - }, - { - "code": "FI-16", - "name": "Päijät-Häme", - "type": "Region" - }, - { - "code": "FI-17", - "name": "Satakunta", - "type": "Region" - }, - { - "code": "FI-18", - "name": "Uusimaa", - "type": "Region" - }, - { - "code": "FI-19", - "name": "Varsinais-Suomi", - "type": "Region" - }, - { - "code": "FJ-01", - "name": "Ba", - "parent": "FJ-W", - "type": "Province" - }, - { - "code": "FJ-02", - "name": "Bua", - "parent": "FJ-N", - "type": "Province" - }, - { - "code": "FJ-03", - "name": "Cakaudrove", - "parent": "FJ-N", - "type": "Province" - }, - { - "code": "FJ-04", - "name": "Kadavu", - "parent": "FJ-E", - "type": "Province" - }, - { - "code": "FJ-05", - "name": "Lau", - "parent": "FJ-E", - "type": "Province" - }, - { - "code": "FJ-06", - "name": "Lomaiviti", - "parent": "FJ-E", - "type": "Province" - }, - { - "code": "FJ-07", - "name": "Macuata", - "parent": "FJ-N", - "type": "Province" - }, - { - "code": "FJ-08", - "name": "Nadroga and Navosa", - "parent": "FJ-W", - "type": "Province" - }, - { - "code": "FJ-09", - "name": "Naitasiri", - "parent": "FJ-C", - "type": "Province" - }, - { - "code": "FJ-10", - "name": "Namosi", - "parent": "FJ-C", - "type": "Province" - }, - { - "code": "FJ-11", - "name": "Ra", - "parent": "FJ-W", - "type": "Province" - }, - { - "code": "FJ-12", - "name": "Rewa", - "parent": "FJ-C", - "type": "Province" - }, - { - "code": "FJ-13", - "name": "Serua", - "parent": "FJ-C", - "type": "Province" - }, - { - "code": "FJ-14", - "name": "Tailevu", - "parent": "FJ-C", - "type": "Province" - }, - { - "code": "FJ-C", - "name": "Central", - "type": "Division" - }, - { - "code": "FJ-E", - "name": "Eastern", - "type": "Division" - }, - { - "code": "FJ-N", - "name": "Northern", - "type": "Division" - }, - { - "code": "FJ-R", - "name": "Rotuma", - "type": "Dependency" - }, - { - "code": "FJ-W", - "name": "Western", - "type": "Division" - }, - { - "code": "FM-KSA", - "name": "Kosrae", - "type": "State" - }, - { - "code": "FM-PNI", - "name": "Pohnpei", - "type": "State" - }, - { - "code": "FM-TRK", - "name": "Chuuk", - "type": "State" - }, - { - "code": "FM-YAP", - "name": "Yap", - "type": "State" - }, - { - "code": "FR-01", - "name": "Ain", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-02", - "name": "Aisne", - "parent": "FR-HDF", - "type": "Metropolitan department" - }, - { - "code": "FR-03", - "name": "Allier", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-04", - "name": "Alpes-de-Haute-Provence", - "parent": "FR-PAC", - "type": "Metropolitan department" - }, - { - "code": "FR-05", - "name": "Hautes-Alpes", - "parent": "FR-PAC", - "type": "Metropolitan department" - }, - { - "code": "FR-06", - "name": "Alpes-Maritimes", - "parent": "FR-PAC", - "type": "Metropolitan department" - }, - { - "code": "FR-07", - "name": "Ardèche", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-08", - "name": "Ardennes", - "parent": "FR-GES", - "type": "Metropolitan department" - }, - { - "code": "FR-09", - "name": "Ariège", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-10", - "name": "Aube", - "parent": "FR-GES", - "type": "Metropolitan department" - }, - { - "code": "FR-11", - "name": "Aude", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-12", - "name": "Aveyron", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-13", - "name": "Bouches-du-Rhône", - "parent": "FR-PAC", - "type": "Metropolitan department" - }, - { - "code": "FR-14", - "name": "Calvados", - "parent": "FR-NOR", - "type": "Metropolitan department" - }, - { - "code": "FR-15", - "name": "Cantal", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-16", - "name": "Charente", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-17", - "name": "Charente-Maritime", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-18", - "name": "Cher", - "parent": "FR-CVL", - "type": "Metropolitan department" - }, - { - "code": "FR-19", - "name": "Corrèze", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-20R", - "name": "Corse", - "type": "Metropolitan collectivity with special status" - }, - { - "code": "FR-21", - "name": "Côte-d'Or", - "parent": "FR-BFC", - "type": "Metropolitan department" - }, - { - "code": "FR-22", - "name": "Côtes-d'Armor", - "parent": "FR-BRE", - "type": "Metropolitan department" - }, - { - "code": "FR-23", - "name": "Creuse", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-24", - "name": "Dordogne", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-25", - "name": "Doubs", - "parent": "FR-BFC", - "type": "Metropolitan department" - }, - { - "code": "FR-26", - "name": "Drôme", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-27", - "name": "Eure", - "parent": "FR-NOR", - "type": "Metropolitan department" - }, - { - "code": "FR-28", - "name": "Eure-et-Loir", - "parent": "FR-CVL", - "type": "Metropolitan department" - }, - { - "code": "FR-29", - "name": "Finistère", - "parent": "FR-BRE", - "type": "Metropolitan department" - }, - { - "code": "FR-2A", - "name": "Corse-du-Sud", - "parent": "FR-20R", - "type": "Metropolitan department" - }, - { - "code": "FR-2B", - "name": "Haute-Corse", - "parent": "FR-20R", - "type": "Metropolitan department" - }, - { - "code": "FR-30", - "name": "Gard", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-31", - "name": "Haute-Garonne", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-32", - "name": "Gers", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-33", - "name": "Gironde", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-34", - "name": "Hérault", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-35", - "name": "Ille-et-Vilaine", - "parent": "FR-BRE", - "type": "Metropolitan department" - }, - { - "code": "FR-36", - "name": "Indre", - "parent": "FR-CVL", - "type": "Metropolitan department" - }, - { - "code": "FR-37", - "name": "Indre-et-Loire", - "parent": "FR-CVL", - "type": "Metropolitan department" - }, - { - "code": "FR-38", - "name": "Isère", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-39", - "name": "Jura", - "parent": "FR-BFC", - "type": "Metropolitan department" - }, - { - "code": "FR-40", - "name": "Landes", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-41", - "name": "Loir-et-Cher", - "parent": "FR-CVL", - "type": "Metropolitan department" - }, - { - "code": "FR-42", - "name": "Loire", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-43", - "name": "Haute-Loire", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-44", - "name": "Loire-Atlantique", - "parent": "FR-PDL", - "type": "Metropolitan department" - }, - { - "code": "FR-45", - "name": "Loiret", - "parent": "FR-CVL", - "type": "Metropolitan department" - }, - { - "code": "FR-46", - "name": "Lot", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-47", - "name": "Lot-et-Garonne", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-48", - "name": "Lozère", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-49", - "name": "Maine-et-Loire", - "parent": "FR-PDL", - "type": "Metropolitan department" - }, - { - "code": "FR-50", - "name": "Manche", - "parent": "FR-NOR", - "type": "Metropolitan department" - }, - { - "code": "FR-51", - "name": "Marne", - "parent": "FR-GES", - "type": "Metropolitan department" - }, - { - "code": "FR-52", - "name": "Haute-Marne", - "parent": "FR-GES", - "type": "Metropolitan department" - }, - { - "code": "FR-53", - "name": "Mayenne", - "parent": "FR-PDL", - "type": "Metropolitan department" - }, - { - "code": "FR-54", - "name": "Meurthe-et-Moselle", - "parent": "FR-GES", - "type": "Metropolitan department" - }, - { - "code": "FR-55", - "name": "Meuse", - "parent": "FR-GES", - "type": "Metropolitan department" - }, - { - "code": "FR-56", - "name": "Morbihan", - "parent": "FR-BRE", - "type": "Metropolitan department" - }, - { - "code": "FR-57", - "name": "Moselle", - "parent": "FR-GES", - "type": "Metropolitan department" - }, - { - "code": "FR-58", - "name": "Nièvre", - "parent": "FR-BFC", - "type": "Metropolitan department" - }, - { - "code": "FR-59", - "name": "Nord", - "parent": "FR-HDF", - "type": "Metropolitan department" - }, - { - "code": "FR-60", - "name": "Oise", - "parent": "FR-HDF", - "type": "Metropolitan department" - }, - { - "code": "FR-61", - "name": "Orne", - "parent": "FR-NOR", - "type": "Metropolitan department" - }, - { - "code": "FR-62", - "name": "Pas-de-Calais", - "parent": "FR-HDF", - "type": "Metropolitan department" - }, - { - "code": "FR-63", - "name": "Puy-de-Dôme", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-64", - "name": "Pyrénées-Atlantiques", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-65", - "name": "Hautes-Pyrénées", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-66", - "name": "Pyrénées-Orientales", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-67", - "name": "Bas-Rhin", - "parent": "FR-6AE", - "type": "Metropolitan department" - }, - { - "code": "FR-68", - "name": "Haut-Rhin", - "parent": "FR-6AE", - "type": "Metropolitan department" - }, - { - "code": "FR-69", - "name": "Rhône", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-69M", - "name": "Métropole de Lyon", - "parent": "FR-ARA", - "type": "Metropolitan collectivity with special status" - }, - { - "code": "FR-6AE", - "name": "Alsace", - "parent": "FR-GES", - "type": "European collectivity" - }, - { - "code": "FR-70", - "name": "Haute-Saône", - "parent": "FR-BFC", - "type": "Metropolitan department" - }, - { - "code": "FR-71", - "name": "Saône-et-Loire", - "parent": "FR-BFC", - "type": "Metropolitan department" - }, - { - "code": "FR-72", - "name": "Sarthe", - "parent": "FR-PDL", - "type": "Metropolitan department" - }, - { - "code": "FR-73", - "name": "Savoie", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-74", - "name": "Haute-Savoie", - "parent": "FR-ARA", - "type": "Metropolitan department" - }, - { - "code": "FR-75C", - "name": "Paris", - "parent": "FR-IDF", - "type": "Metropolitan collectivity with special status" - }, - { - "code": "FR-76", - "name": "Seine-Maritime", - "parent": "FR-NOR", - "type": "Metropolitan department" - }, - { - "code": "FR-77", - "name": "Seine-et-Marne", - "parent": "FR-IDF", - "type": "Metropolitan department" - }, - { - "code": "FR-78", - "name": "Yvelines", - "parent": "FR-IDF", - "type": "Metropolitan department" - }, - { - "code": "FR-79", - "name": "Deux-Sèvres", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-80", - "name": "Somme", - "parent": "FR-HDF", - "type": "Metropolitan department" - }, - { - "code": "FR-81", - "name": "Tarn", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-82", - "name": "Tarn-et-Garonne", - "parent": "FR-OCC", - "type": "Metropolitan department" - }, - { - "code": "FR-83", - "name": "Var", - "parent": "FR-PAC", - "type": "Metropolitan department" - }, - { - "code": "FR-84", - "name": "Vaucluse", - "parent": "FR-PAC", - "type": "Metropolitan department" - }, - { - "code": "FR-85", - "name": "Vendée", - "parent": "FR-PDL", - "type": "Metropolitan department" - }, - { - "code": "FR-86", - "name": "Vienne", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-87", - "name": "Haute-Vienne", - "parent": "FR-NAQ", - "type": "Metropolitan department" - }, - { - "code": "FR-88", - "name": "Vosges", - "parent": "FR-GES", - "type": "Metropolitan department" - }, - { - "code": "FR-89", - "name": "Yonne", - "parent": "FR-BFC", - "type": "Metropolitan department" - }, - { - "code": "FR-90", - "name": "Territoire de Belfort", - "parent": "FR-BFC", - "type": "Metropolitan department" - }, - { - "code": "FR-91", - "name": "Essonne", - "parent": "FR-IDF", - "type": "Metropolitan department" - }, - { - "code": "FR-92", - "name": "Hauts-de-Seine", - "parent": "FR-IDF", - "type": "Metropolitan department" - }, - { - "code": "FR-93", - "name": "Seine-Saint-Denis", - "parent": "FR-IDF", - "type": "Metropolitan department" - }, - { - "code": "FR-94", - "name": "Val-de-Marne", - "parent": "FR-IDF", - "type": "Metropolitan department" - }, - { - "code": "FR-95", - "name": "Val-d'Oise", - "parent": "FR-IDF", - "type": "Metropolitan department" - }, - { - "code": "FR-971", - "name": "Guadeloupe", - "type": "Overseas departmental collectivity" - }, - { - "code": "FR-972", - "name": "Martinique", - "type": "Overseas unique territorial collectivity" - }, - { - "code": "FR-973", - "name": "Guyane (française)", - "type": "Overseas unique territorial collectivity" - }, - { - "code": "FR-974", - "name": "La Réunion", - "type": "Overseas departmental collectivity" - }, - { - "code": "FR-976", - "name": "Mayotte", - "type": "Overseas departmental collectivity" - }, - { - "code": "FR-ARA", - "name": "Auvergne-Rhône-Alpes", - "type": "Metropolitan region" - }, - { - "code": "FR-BFC", - "name": "Bourgogne-Franche-Comté", - "type": "Metropolitan region" - }, - { - "code": "FR-BL", - "name": "Saint-Barthélemy", - "type": "Overseas collectivity" - }, - { - "code": "FR-BRE", - "name": "Bretagne", - "type": "Metropolitan region" - }, - { - "code": "FR-CP", - "name": "Clipperton", - "type": "Dependency" - }, - { - "code": "FR-CVL", - "name": "Centre-Val de Loire", - "type": "Metropolitan region" - }, - { - "code": "FR-GES", - "name": "Grand-Est", - "type": "Metropolitan region" - }, - { - "code": "FR-HDF", - "name": "Hauts-de-France", - "type": "Metropolitan region" - }, - { - "code": "FR-IDF", - "name": "Île-de-France", - "type": "Metropolitan region" - }, - { - "code": "FR-MF", - "name": "Saint-Martin", - "type": "Overseas collectivity" - }, - { - "code": "FR-NAQ", - "name": "Nouvelle-Aquitaine", - "type": "Metropolitan region" - }, - { - "code": "FR-NC", - "name": "Nouvelle-Calédonie", - "type": "Overseas collectivity with special status" - }, - { - "code": "FR-NOR", - "name": "Normandie", - "type": "Metropolitan region" - }, - { - "code": "FR-OCC", - "name": "Occitanie", - "type": "Metropolitan region" - }, - { - "code": "FR-PAC", - "name": "Provence-Alpes-Côte-d’Azur", - "type": "Metropolitan region" - }, - { - "code": "FR-PDL", - "name": "Pays-de-la-Loire", - "type": "Metropolitan region" - }, - { - "code": "FR-PF", - "name": "Polynésie française", - "type": "Overseas collectivity" - }, - { - "code": "FR-PM", - "name": "Saint-Pierre-et-Miquelon", - "type": "Overseas collectivity" - }, - { - "code": "FR-TF", - "name": "Terres australes françaises", - "type": "Overseas territory" - }, - { - "code": "FR-WF", - "name": "Wallis-et-Futuna", - "type": "Overseas collectivity" - }, - { - "code": "GA-1", - "name": "Estuaire", - "type": "Province" - }, - { - "code": "GA-2", - "name": "Haut-Ogooué", - "type": "Province" - }, - { - "code": "GA-3", - "name": "Moyen-Ogooué", - "type": "Province" - }, - { - "code": "GA-4", - "name": "Ngounié", - "type": "Province" - }, - { - "code": "GA-5", - "name": "Nyanga", - "type": "Province" - }, - { - "code": "GA-6", - "name": "Ogooué-Ivindo", - "type": "Province" - }, - { - "code": "GA-7", - "name": "Ogooué-Lolo", - "type": "Province" - }, - { - "code": "GA-8", - "name": "Ogooué-Maritime", - "type": "Province" - }, - { - "code": "GA-9", - "name": "Woleu-Ntem", - "type": "Province" - }, - { - "code": "GB-ABC", - "name": "Armagh City, Banbridge and Craigavon", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-ABD", - "name": "Aberdeenshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-ABE", - "name": "Aberdeen City", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-AGB", - "name": "Argyll and Bute", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-AGY", - "name": "Isle of Anglesey [Sir Ynys Môn GB-YNM]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-AND", - "name": "Ards and North Down", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-ANN", - "name": "Antrim and Newtownabbey", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-ANS", - "name": "Angus", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-BAS", - "name": "Bath and North East Somerset", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-BBD", - "name": "Blackburn with Darwen", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-BCP", - "name": "Bournemouth, Christchurch and Poole", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-BDF", - "name": "Bedford", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-BDG", - "name": "Barking and Dagenham", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-BEN", - "name": "Brent", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-BEX", - "name": "Bexley", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-BFS", - "name": "Belfast City", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-BGE", - "name": "Bridgend [Pen-y-bont ar Ogwr GB-POG]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-BGW", - "name": "Blaenau Gwent", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-BIR", - "name": "Birmingham", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-BKM", - "name": "Buckinghamshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-BNE", - "name": "Barnet", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-BNH", - "name": "Brighton and Hove", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-BNS", - "name": "Barnsley", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-BOL", - "name": "Bolton", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-BPL", - "name": "Blackpool", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-BRC", - "name": "Bracknell Forest", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-BRD", - "name": "Bradford", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-BRY", - "name": "Bromley", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-BST", - "name": "Bristol, City of", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-BUR", - "name": "Bury", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-CAM", - "name": "Cambridgeshire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-CAY", - "name": "Caerphilly [Caerffili GB-CAF]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-CBF", - "name": "Central Bedfordshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-CCG", - "name": "Causeway Coast and Glens", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-CGN", - "name": "Ceredigion [Sir Ceredigion]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-CHE", - "name": "Cheshire East", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-CHW", - "name": "Cheshire West and Chester", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-CLD", - "name": "Calderdale", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-CLK", - "name": "Clackmannanshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-CMA", - "name": "Cumbria", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-CMD", - "name": "Camden", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-CMN", - "name": "Carmarthenshire [Sir Gaerfyrddin GB-GFY]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-CON", - "name": "Cornwall", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-COV", - "name": "Coventry", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-CRF", - "name": "Cardiff [Caerdydd GB-CRD]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-CRY", - "name": "Croydon", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-CWY", - "name": "Conwy", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-DAL", - "name": "Darlington", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-DBY", - "name": "Derbyshire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-DEN", - "name": "Denbighshire [Sir Ddinbych GB-DDB]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-DER", - "name": "Derby", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-DEV", - "name": "Devon", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-DGY", - "name": "Dumfries and Galloway", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-DNC", - "name": "Doncaster", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-DND", - "name": "Dundee City", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-DOR", - "name": "Dorset", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-DRS", - "name": "Derry and Strabane", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-DUD", - "name": "Dudley", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-DUR", - "name": "Durham, County", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-EAL", - "name": "Ealing", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-EAY", - "name": "East Ayrshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-EDH", - "name": "Edinburgh, City of", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-EDU", - "name": "East Dunbartonshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-ELN", - "name": "East Lothian", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-ELS", - "name": "Eilean Siar", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-ENF", - "name": "Enfield", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-ENG", - "name": "England", - "type": "Country" - }, - { - "code": "GB-ERW", - "name": "East Renfrewshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-ERY", - "name": "East Riding of Yorkshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-ESS", - "name": "Essex", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-ESX", - "name": "East Sussex", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-FAL", - "name": "Falkirk", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-FIF", - "name": "Fife", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-FLN", - "name": "Flintshire [Sir y Fflint GB-FFL]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-FMO", - "name": "Fermanagh and Omagh", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-GAT", - "name": "Gateshead", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-GLG", - "name": "Glasgow City", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-GLS", - "name": "Gloucestershire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-GRE", - "name": "Greenwich", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-GWN", - "name": "Gwynedd", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-HAL", - "name": "Halton", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-HAM", - "name": "Hampshire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-HAV", - "name": "Havering", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-HCK", - "name": "Hackney", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-HEF", - "name": "Herefordshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-HIL", - "name": "Hillingdon", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-HLD", - "name": "Highland", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-HMF", - "name": "Hammersmith and Fulham", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-HNS", - "name": "Hounslow", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-HPL", - "name": "Hartlepool", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-HRT", - "name": "Hertfordshire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-HRW", - "name": "Harrow", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-HRY", - "name": "Haringey", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-IOS", - "name": "Isles of Scilly", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-IOW", - "name": "Isle of Wight", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-ISL", - "name": "Islington", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-IVC", - "name": "Inverclyde", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-KEC", - "name": "Kensington and Chelsea", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-KEN", - "name": "Kent", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-KHL", - "name": "Kingston upon Hull", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-KIR", - "name": "Kirklees", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-KTT", - "name": "Kingston upon Thames", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-KWL", - "name": "Knowsley", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-LAN", - "name": "Lancashire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-LBC", - "name": "Lisburn and Castlereagh", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-LBH", - "name": "Lambeth", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-LCE", - "name": "Leicester", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-LDS", - "name": "Leeds", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-LEC", - "name": "Leicestershire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-LEW", - "name": "Lewisham", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-LIN", - "name": "Lincolnshire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-LIV", - "name": "Liverpool", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-LND", - "name": "London, City of", - "parent": "GB-ENG", - "type": "City corporation" - }, - { - "code": "GB-LUT", - "name": "Luton", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-MAN", - "name": "Manchester", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-MDB", - "name": "Middlesbrough", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-MDW", - "name": "Medway", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-MEA", - "name": "Mid and East Antrim", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-MIK", - "name": "Milton Keynes", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-MLN", - "name": "Midlothian", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-MON", - "name": "Monmouthshire [Sir Fynwy GB-FYN]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-MRT", - "name": "Merton", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-MRY", - "name": "Moray", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-MTY", - "name": "Merthyr Tydfil [Merthyr Tudful GB-MTU]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-MUL", - "name": "Mid-Ulster", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-NAY", - "name": "North Ayrshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-NBL", - "name": "Northumberland", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-NEL", - "name": "North East Lincolnshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-NET", - "name": "Newcastle upon Tyne", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-NFK", - "name": "Norfolk", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-NGM", - "name": "Nottingham", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-NIR", - "name": "Northern Ireland", - "type": "Province" - }, - { - "code": "GB-NLK", - "name": "North Lanarkshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-NLN", - "name": "North Lincolnshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-NMD", - "name": "Newry, Mourne and Down", - "parent": "GB-NIR", - "type": "District" - }, - { - "code": "GB-NNH", - "name": "North Northamptonshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-NSM", - "name": "North Somerset", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-NTL", - "name": "Neath Port Talbot [Castell-nedd Port Talbot GB-CTL]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-NTT", - "name": "Nottinghamshire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-NTY", - "name": "North Tyneside", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-NWM", - "name": "Newham", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-NWP", - "name": "Newport [Casnewydd GB-CNW]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-NYK", - "name": "North Yorkshire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-OLD", - "name": "Oldham", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-ORK", - "name": "Orkney Islands", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-OXF", - "name": "Oxfordshire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-PEM", - "name": "Pembrokeshire [Sir Benfro GB-BNF]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-PKN", - "name": "Perth and Kinross", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-PLY", - "name": "Plymouth", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-POR", - "name": "Portsmouth", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-POW", - "name": "Powys", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-PTE", - "name": "Peterborough", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-RCC", - "name": "Redcar and Cleveland", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-RCH", - "name": "Rochdale", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-RCT", - "name": "Rhondda Cynon Taff [Rhondda CynonTaf]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-RDB", - "name": "Redbridge", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-RDG", - "name": "Reading", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-RFW", - "name": "Renfrewshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-RIC", - "name": "Richmond upon Thames", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-ROT", - "name": "Rotherham", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-RUT", - "name": "Rutland", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-SAW", - "name": "Sandwell", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-SAY", - "name": "South Ayrshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-SCB", - "name": "Scottish Borders", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-SCT", - "name": "Scotland", - "type": "Country" - }, - { - "code": "GB-SFK", - "name": "Suffolk", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-SFT", - "name": "Sefton", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-SGC", - "name": "South Gloucestershire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-SHF", - "name": "Sheffield", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-SHN", - "name": "St. Helens", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-SHR", - "name": "Shropshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-SKP", - "name": "Stockport", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-SLF", - "name": "Salford", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-SLG", - "name": "Slough", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-SLK", - "name": "South Lanarkshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-SND", - "name": "Sunderland", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-SOL", - "name": "Solihull", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-SOM", - "name": "Somerset", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-SOS", - "name": "Southend-on-Sea", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-SRY", - "name": "Surrey", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-STE", - "name": "Stoke-on-Trent", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-STG", - "name": "Stirling", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-STH", - "name": "Southampton", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-STN", - "name": "Sutton", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-STS", - "name": "Staffordshire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-STT", - "name": "Stockton-on-Tees", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-STY", - "name": "South Tyneside", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-SWA", - "name": "Swansea [Abertawe GB-ATA]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-SWD", - "name": "Swindon", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-SWK", - "name": "Southwark", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-TAM", - "name": "Tameside", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-TFW", - "name": "Telford and Wrekin", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-THR", - "name": "Thurrock", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-TOB", - "name": "Torbay", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-TOF", - "name": "Torfaen [Tor-faen]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-TRF", - "name": "Trafford", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-TWH", - "name": "Tower Hamlets", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-VGL", - "name": "Vale of Glamorgan, The [Bro Morgannwg GB-BMG]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-WAR", - "name": "Warwickshire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-WBK", - "name": "West Berkshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-WDU", - "name": "West Dunbartonshire", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-WFT", - "name": "Waltham Forest", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-WGN", - "name": "Wigan", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-WIL", - "name": "Wiltshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-WKF", - "name": "Wakefield", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-WLL", - "name": "Walsall", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-WLN", - "name": "West Lothian", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GB-WLS", - "name": "Wales [Cymru GB-CYM]", - "type": "Country" - }, - { - "code": "GB-WLV", - "name": "Wolverhampton", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-WND", - "name": "Wandsworth", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-WNH", - "name": "West Northamptonshire", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-WNM", - "name": "Windsor and Maidenhead", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-WOK", - "name": "Wokingham", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-WOR", - "name": "Worcestershire", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-WRL", - "name": "Wirral", - "parent": "GB-ENG", - "type": "Metropolitan district" - }, - { - "code": "GB-WRT", - "name": "Warrington", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-WRX", - "name": "Wrexham [Wrecsam GB-WRC]", - "parent": "GB-WLS", - "type": "Unitary authority" - }, - { - "code": "GB-WSM", - "name": "Westminster", - "parent": "GB-ENG", - "type": "London borough" - }, - { - "code": "GB-WSX", - "name": "West Sussex", - "parent": "GB-ENG", - "type": "Two-tier county" - }, - { - "code": "GB-YOR", - "name": "York", - "parent": "GB-ENG", - "type": "Unitary authority" - }, - { - "code": "GB-ZET", - "name": "Shetland Islands", - "parent": "GB-SCT", - "type": "Council area" - }, - { - "code": "GD-01", - "name": "Saint Andrew", - "type": "Parish" - }, - { - "code": "GD-02", - "name": "Saint David", - "type": "Parish" - }, - { - "code": "GD-03", - "name": "Saint George", - "type": "Parish" - }, - { - "code": "GD-04", - "name": "Saint John", - "type": "Parish" - }, - { - "code": "GD-05", - "name": "Saint Mark", - "type": "Parish" - }, - { - "code": "GD-06", - "name": "Saint Patrick", - "type": "Parish" - }, - { - "code": "GD-10", - "name": "Southern Grenadine Islands", - "type": "Dependency" - }, - { - "code": "GE-AB", - "name": "Abkhazia", - "type": "Autonomous republic" - }, - { - "code": "GE-AJ", - "name": "Ajaria", - "type": "Autonomous republic" - }, - { - "code": "GE-GU", - "name": "Guria", - "type": "Region" - }, - { - "code": "GE-IM", - "name": "Imereti", - "type": "Region" - }, - { - "code": "GE-KA", - "name": "K'akheti", - "type": "Region" - }, - { - "code": "GE-KK", - "name": "Kvemo Kartli", - "type": "Region" - }, - { - "code": "GE-MM", - "name": "Mtskheta-Mtianeti", - "type": "Region" - }, - { - "code": "GE-RL", - "name": "Rach'a-Lechkhumi-Kvemo Svaneti", - "type": "Region" - }, - { - "code": "GE-SJ", - "name": "Samtskhe-Javakheti", - "type": "Region" - }, - { - "code": "GE-SK", - "name": "Shida Kartli", - "type": "Region" - }, - { - "code": "GE-SZ", - "name": "Samegrelo-Zemo Svaneti", - "type": "Region" - }, - { - "code": "GE-TB", - "name": "Tbilisi", - "type": "City" - }, - { - "code": "GH-AA", - "name": "Greater Accra", - "type": "Region" - }, - { - "code": "GH-AF", - "name": "Ahafo", - "type": "Region" - }, - { - "code": "GH-AH", - "name": "Ashanti", - "type": "Region" - }, - { - "code": "GH-BE", - "name": "Bono East", - "type": "Region" - }, - { - "code": "GH-BO", - "name": "Bono", - "type": "Region" - }, - { - "code": "GH-CP", - "name": "Central", - "type": "Region" - }, - { - "code": "GH-EP", - "name": "Eastern", - "type": "Region" - }, - { - "code": "GH-NE", - "name": "North East", - "type": "Region" - }, - { - "code": "GH-NP", - "name": "Northern", - "type": "Region" - }, - { - "code": "GH-OT", - "name": "Oti", - "type": "Region" - }, - { - "code": "GH-SV", - "name": "Savannah", - "type": "Region" - }, - { - "code": "GH-TV", - "name": "Volta", - "type": "Region" - }, - { - "code": "GH-UE", - "name": "Upper East", - "type": "Region" - }, - { - "code": "GH-UW", - "name": "Upper West", - "type": "Region" - }, - { - "code": "GH-WN", - "name": "Western North", - "type": "Region" - }, - { - "code": "GH-WP", - "name": "Western", - "type": "Region" - }, - { - "code": "GL-AV", - "name": "Avannaata Kommunia", - "type": "Municipality" - }, - { - "code": "GL-KU", - "name": "Kommune Kujalleq", - "type": "Municipality" - }, - { - "code": "GL-QE", - "name": "Qeqqata Kommunia", - "type": "Municipality" - }, - { - "code": "GL-QT", - "name": "Kommune Qeqertalik", - "type": "Municipality" - }, - { - "code": "GL-SM", - "name": "Kommuneqarfik Sermersooq", - "type": "Municipality" - }, - { - "code": "GM-B", - "name": "Banjul", - "type": "City" - }, - { - "code": "GM-L", - "name": "Lower River", - "type": "Division" - }, - { - "code": "GM-M", - "name": "Central River", - "type": "Division" - }, - { - "code": "GM-N", - "name": "North Bank", - "type": "Division" - }, - { - "code": "GM-U", - "name": "Upper River", - "type": "Division" - }, - { - "code": "GM-W", - "name": "Western", - "type": "Division" - }, - { - "code": "GN-B", - "name": "Boké", - "type": "Administrative region" - }, - { - "code": "GN-BE", - "name": "Beyla", - "parent": "GN-N", - "type": "Prefecture" - }, - { - "code": "GN-BF", - "name": "Boffa", - "parent": "GN-B", - "type": "Prefecture" - }, - { - "code": "GN-BK", - "name": "Boké", - "parent": "GN-B", - "type": "Prefecture" - }, - { - "code": "GN-C", - "name": "Conakry", - "type": "Governorate" - }, - { - "code": "GN-CO", - "name": "Coyah", - "parent": "GN-D", - "type": "Prefecture" - }, - { - "code": "GN-D", - "name": "Kindia", - "type": "Administrative region" - }, - { - "code": "GN-DB", - "name": "Dabola", - "parent": "GN-F", - "type": "Prefecture" - }, - { - "code": "GN-DI", - "name": "Dinguiraye", - "parent": "GN-F", - "type": "Prefecture" - }, - { - "code": "GN-DL", - "name": "Dalaba", - "parent": "GN-M", - "type": "Prefecture" - }, - { - "code": "GN-DU", - "name": "Dubréka", - "parent": "GN-D", - "type": "Prefecture" - }, - { - "code": "GN-F", - "name": "Faranah", - "type": "Administrative region" - }, - { - "code": "GN-FA", - "name": "Faranah", - "parent": "GN-F", - "type": "Prefecture" - }, - { - "code": "GN-FO", - "name": "Forécariah", - "parent": "GN-D", - "type": "Prefecture" - }, - { - "code": "GN-FR", - "name": "Fria", - "parent": "GN-B", - "type": "Prefecture" - }, - { - "code": "GN-GA", - "name": "Gaoual", - "parent": "GN-B", - "type": "Prefecture" - }, - { - "code": "GN-GU", - "name": "Guékédou", - "parent": "GN-N", - "type": "Prefecture" - }, - { - "code": "GN-K", - "name": "Kankan", - "type": "Administrative region" - }, - { - "code": "GN-KA", - "name": "Kankan", - "parent": "GN-K", - "type": "Prefecture" - }, - { - "code": "GN-KB", - "name": "Koubia", - "parent": "GN-L", - "type": "Prefecture" - }, - { - "code": "GN-KD", - "name": "Kindia", - "parent": "GN-D", - "type": "Prefecture" - }, - { - "code": "GN-KE", - "name": "Kérouané", - "parent": "GN-K", - "type": "Prefecture" - }, - { - "code": "GN-KN", - "name": "Koundara", - "parent": "GN-B", - "type": "Prefecture" - }, - { - "code": "GN-KO", - "name": "Kouroussa", - "parent": "GN-K", - "type": "Prefecture" - }, - { - "code": "GN-KS", - "name": "Kissidougou", - "parent": "GN-F", - "type": "Prefecture" - }, - { - "code": "GN-L", - "name": "Labé", - "type": "Administrative region" - }, - { - "code": "GN-LA", - "name": "Labé", - "parent": "GN-L", - "type": "Prefecture" - }, - { - "code": "GN-LE", - "name": "Lélouma", - "parent": "GN-L", - "type": "Prefecture" - }, - { - "code": "GN-LO", - "name": "Lola", - "parent": "GN-N", - "type": "Prefecture" - }, - { - "code": "GN-M", - "name": "Mamou", - "type": "Administrative region" - }, - { - "code": "GN-MC", - "name": "Macenta", - "parent": "GN-N", - "type": "Prefecture" - }, - { - "code": "GN-MD", - "name": "Mandiana", - "parent": "GN-K", - "type": "Prefecture" - }, - { - "code": "GN-ML", - "name": "Mali", - "parent": "GN-L", - "type": "Prefecture" - }, - { - "code": "GN-MM", - "name": "Mamou", - "parent": "GN-M", - "type": "Prefecture" - }, - { - "code": "GN-N", - "name": "Nzérékoré", - "type": "Administrative region" - }, - { - "code": "GN-NZ", - "name": "Nzérékoré", - "parent": "GN-N", - "type": "Prefecture" - }, - { - "code": "GN-PI", - "name": "Pita", - "parent": "GN-M", - "type": "Prefecture" - }, - { - "code": "GN-SI", - "name": "Siguiri", - "parent": "GN-K", - "type": "Prefecture" - }, - { - "code": "GN-TE", - "name": "Télimélé", - "parent": "GN-D", - "type": "Prefecture" - }, - { - "code": "GN-TO", - "name": "Tougué", - "parent": "GN-L", - "type": "Prefecture" - }, - { - "code": "GN-YO", - "name": "Yomou", - "parent": "GN-N", - "type": "Prefecture" - }, - { - "code": "GQ-AN", - "name": "Annobon", - "parent": "GQ-I", - "type": "Province" - }, - { - "code": "GQ-BN", - "name": "Bioko Nord", - "parent": "GQ-I", - "type": "Province" - }, - { - "code": "GQ-BS", - "name": "Bioko Sud", - "parent": "GQ-I", - "type": "Province" - }, - { - "code": "GQ-C", - "name": "Région Continentale", - "type": "Region" - }, - { - "code": "GQ-CS", - "name": "Centro Sud", - "parent": "GQ-C", - "type": "Province" - }, - { - "code": "GQ-DJ", - "name": "Djibloho", - "parent": "GQ-C", - "type": "Province" - }, - { - "code": "GQ-I", - "name": "Région Insulaire", - "type": "Region" - }, - { - "code": "GQ-KN", - "name": "Kié-Ntem", - "parent": "GQ-C", - "type": "Province" - }, - { - "code": "GQ-LI", - "name": "Littoral", - "parent": "GQ-C", - "type": "Province" - }, - { - "code": "GQ-WN", - "name": "Wele-Nzas", - "parent": "GQ-C", - "type": "Province" - }, - { - "code": "GR-69", - "name": "Ágion Óros", - "type": "Self-governed part" - }, - { - "code": "GR-A", - "name": "Anatolikí Makedonía kai Thráki", - "type": "Administrative region" - }, - { - "code": "GR-B", - "name": "Kentrikí Makedonía", - "type": "Administrative region" - }, - { - "code": "GR-C", - "name": "Dytikí Makedonía", - "type": "Administrative region" - }, - { - "code": "GR-D", - "name": "Ípeiros", - "type": "Administrative region" - }, - { - "code": "GR-E", - "name": "Thessalía", - "type": "Administrative region" - }, - { - "code": "GR-F", - "name": "Ionía Nísia", - "type": "Administrative region" - }, - { - "code": "GR-G", - "name": "Dytikí Elláda", - "type": "Administrative region" - }, - { - "code": "GR-H", - "name": "Stereá Elláda", - "type": "Administrative region" - }, - { - "code": "GR-I", - "name": "Attikí", - "type": "Administrative region" - }, - { - "code": "GR-J", - "name": "Pelopónnisos", - "type": "Administrative region" - }, - { - "code": "GR-K", - "name": "Vóreio Aigaío", - "type": "Administrative region" - }, - { - "code": "GR-L", - "name": "Nótio Aigaío", - "type": "Administrative region" - }, - { - "code": "GR-M", - "name": "Kríti", - "type": "Administrative region" - }, - { - "code": "GT-01", - "name": "Guatemala", - "type": "Department" - }, - { - "code": "GT-02", - "name": "El Progreso", - "type": "Department" - }, - { - "code": "GT-03", - "name": "Sacatepéquez", - "type": "Department" - }, - { - "code": "GT-04", - "name": "Chimaltenango", - "type": "Department" - }, - { - "code": "GT-05", - "name": "Escuintla", - "type": "Department" - }, - { - "code": "GT-06", - "name": "Santa Rosa", - "type": "Department" - }, - { - "code": "GT-07", - "name": "Sololá", - "type": "Department" - }, - { - "code": "GT-08", - "name": "Totonicapán", - "type": "Department" - }, - { - "code": "GT-09", - "name": "Quetzaltenango", - "type": "Department" - }, - { - "code": "GT-10", - "name": "Suchitepéquez", - "type": "Department" - }, - { - "code": "GT-11", - "name": "Retalhuleu", - "type": "Department" - }, - { - "code": "GT-12", - "name": "San Marcos", - "type": "Department" - }, - { - "code": "GT-13", - "name": "Huehuetenango", - "type": "Department" - }, - { - "code": "GT-14", - "name": "Quiché", - "type": "Department" - }, - { - "code": "GT-15", - "name": "Baja Verapaz", - "type": "Department" - }, - { - "code": "GT-16", - "name": "Alta Verapaz", - "type": "Department" - }, - { - "code": "GT-17", - "name": "Petén", - "type": "Department" - }, - { - "code": "GT-18", - "name": "Izabal", - "type": "Department" - }, - { - "code": "GT-19", - "name": "Zacapa", - "type": "Department" - }, - { - "code": "GT-20", - "name": "Chiquimula", - "type": "Department" - }, - { - "code": "GT-21", - "name": "Jalapa", - "type": "Department" - }, - { - "code": "GT-22", - "name": "Jutiapa", - "type": "Department" - }, - { - "code": "GW-BA", - "name": "Bafatá", - "parent": "GW-L", - "type": "Region" - }, - { - "code": "GW-BL", - "name": "Bolama / Bijagós", - "parent": "GW-S", - "type": "Region" - }, - { - "code": "GW-BM", - "name": "Biombo", - "parent": "GW-N", - "type": "Region" - }, - { - "code": "GW-BS", - "name": "Bissau", - "type": "Autonomous sector" - }, - { - "code": "GW-CA", - "name": "Cacheu", - "parent": "GW-N", - "type": "Region" - }, - { - "code": "GW-GA", - "name": "Gabú", - "parent": "GW-L", - "type": "Region" - }, - { - "code": "GW-L", - "name": "Leste", - "type": "Province" - }, - { - "code": "GW-N", - "name": "Norte", - "type": "Province" - }, - { - "code": "GW-OI", - "name": "Oio", - "parent": "GW-N", - "type": "Region" - }, - { - "code": "GW-QU", - "name": "Quinara", - "parent": "GW-S", - "type": "Region" - }, - { - "code": "GW-S", - "name": "Sul", - "type": "Province" - }, - { - "code": "GW-TO", - "name": "Tombali", - "parent": "GW-S", - "type": "Region" - }, - { - "code": "GY-BA", - "name": "Barima-Waini", - "type": "Region" - }, - { - "code": "GY-CU", - "name": "Cuyuni-Mazaruni", - "type": "Region" - }, - { - "code": "GY-DE", - "name": "Demerara-Mahaica", - "type": "Region" - }, - { - "code": "GY-EB", - "name": "East Berbice-Corentyne", - "type": "Region" - }, - { - "code": "GY-ES", - "name": "Essequibo Islands-West Demerara", - "type": "Region" - }, - { - "code": "GY-MA", - "name": "Mahaica-Berbice", - "type": "Region" - }, - { - "code": "GY-PM", - "name": "Pomeroon-Supenaam", - "type": "Region" - }, - { - "code": "GY-PT", - "name": "Potaro-Siparuni", - "type": "Region" - }, - { - "code": "GY-UD", - "name": "Upper Demerara-Berbice", - "type": "Region" - }, - { - "code": "GY-UT", - "name": "Upper Takutu-Upper Essequibo", - "type": "Region" - }, - { - "code": "HN-AT", - "name": "Atlántida", - "type": "Department" - }, - { - "code": "HN-CH", - "name": "Choluteca", - "type": "Department" - }, - { - "code": "HN-CL", - "name": "Colón", - "type": "Department" - }, - { - "code": "HN-CM", - "name": "Comayagua", - "type": "Department" - }, - { - "code": "HN-CP", - "name": "Copán", - "type": "Department" - }, - { - "code": "HN-CR", - "name": "Cortés", - "type": "Department" - }, - { - "code": "HN-EP", - "name": "El Paraíso", - "type": "Department" - }, - { - "code": "HN-FM", - "name": "Francisco Morazán", - "type": "Department" - }, - { - "code": "HN-GD", - "name": "Gracias a Dios", - "type": "Department" - }, - { - "code": "HN-IB", - "name": "Islas de la Bahía", - "type": "Department" - }, - { - "code": "HN-IN", - "name": "Intibucá", - "type": "Department" - }, - { - "code": "HN-LE", - "name": "Lempira", - "type": "Department" - }, - { - "code": "HN-LP", - "name": "La Paz", - "type": "Department" - }, - { - "code": "HN-OC", - "name": "Ocotepeque", - "type": "Department" - }, - { - "code": "HN-OL", - "name": "Olancho", - "type": "Department" - }, - { - "code": "HN-SB", - "name": "Santa Bárbara", - "type": "Department" - }, - { - "code": "HN-VA", - "name": "Valle", - "type": "Department" - }, - { - "code": "HN-YO", - "name": "Yoro", - "type": "Department" - }, - { - "code": "HR-01", - "name": "Zagrebačka županija", - "type": "County" - }, - { - "code": "HR-02", - "name": "Krapinsko-zagorska županija", - "type": "County" - }, - { - "code": "HR-03", - "name": "Sisačko-moslavačka županija", - "type": "County" - }, - { - "code": "HR-04", - "name": "Karlovačka županija", - "type": "County" - }, - { - "code": "HR-05", - "name": "Varaždinska županija", - "type": "County" - }, - { - "code": "HR-06", - "name": "Koprivničko-križevačka županija", - "type": "County" - }, - { - "code": "HR-07", - "name": "Bjelovarsko-bilogorska županija", - "type": "County" - }, - { - "code": "HR-08", - "name": "Primorsko-goranska županija", - "type": "County" - }, - { - "code": "HR-09", - "name": "Ličko-senjska županija", - "type": "County" - }, - { - "code": "HR-10", - "name": "Virovitičko-podravska županija", - "type": "County" - }, - { - "code": "HR-11", - "name": "Požeško-slavonska županija", - "type": "County" - }, - { - "code": "HR-12", - "name": "Brodsko-posavska županija", - "type": "County" - }, - { - "code": "HR-13", - "name": "Zadarska županija", - "type": "County" - }, - { - "code": "HR-14", - "name": "Osječko-baranjska županija", - "type": "County" - }, - { - "code": "HR-15", - "name": "Šibensko-kninska županija", - "type": "County" - }, - { - "code": "HR-16", - "name": "Vukovarsko-srijemska županija", - "type": "County" - }, - { - "code": "HR-17", - "name": "Splitsko-dalmatinska županija", - "type": "County" - }, - { - "code": "HR-18", - "name": "Istarska županija", - "type": "County" - }, - { - "code": "HR-19", - "name": "Dubrovačko-neretvanska županija", - "type": "County" - }, - { - "code": "HR-20", - "name": "Međimurska županija", - "type": "County" - }, - { - "code": "HR-21", - "name": "Grad Zagreb", - "type": "City" - }, - { - "code": "HT-AR", - "name": "Artibonite", - "type": "Department" - }, - { - "code": "HT-CE", - "name": "Centre", - "type": "Department" - }, - { - "code": "HT-GA", - "name": "Grande’Anse", - "type": "Department" - }, - { - "code": "HT-ND", - "name": "Nord", - "type": "Department" - }, - { - "code": "HT-NE", - "name": "Nord-Est", - "type": "Department" - }, - { - "code": "HT-NI", - "name": "Nippes", - "type": "Department" - }, - { - "code": "HT-NO", - "name": "Nord-Ouest", - "type": "Department" - }, - { - "code": "HT-OU", - "name": "Ouest", - "type": "Department" - }, - { - "code": "HT-SD", - "name": "Sud", - "type": "Department" - }, - { - "code": "HT-SE", - "name": "Sud-Est", - "type": "Department" - }, - { - "code": "HU-BA", - "name": "Baranya", - "type": "County" - }, - { - "code": "HU-BC", - "name": "Békéscsaba", - "type": "City with county rights" - }, - { - "code": "HU-BE", - "name": "Békés", - "type": "County" - }, - { - "code": "HU-BK", - "name": "Bács-Kiskun", - "type": "County" - }, - { - "code": "HU-BU", - "name": "Budapest", - "type": "Capital city" - }, - { - "code": "HU-BZ", - "name": "Borsod-Abaúj-Zemplén", - "type": "County" - }, - { - "code": "HU-CS", - "name": "Csongrád-Csanád", - "type": "County" - }, - { - "code": "HU-DE", - "name": "Debrecen", - "type": "City with county rights" - }, - { - "code": "HU-DU", - "name": "Dunaújváros", - "type": "City with county rights" - }, - { - "code": "HU-EG", - "name": "Eger", - "type": "City with county rights" - }, - { - "code": "HU-ER", - "name": "Érd", - "type": "City with county rights" - }, - { - "code": "HU-FE", - "name": "Fejér", - "type": "County" - }, - { - "code": "HU-GS", - "name": "Győr-Moson-Sopron", - "type": "County" - }, - { - "code": "HU-GY", - "name": "Győr", - "type": "City with county rights" - }, - { - "code": "HU-HB", - "name": "Hajdú-Bihar", - "type": "County" - }, - { - "code": "HU-HE", - "name": "Heves", - "type": "County" - }, - { - "code": "HU-HV", - "name": "Hódmezővásárhely", - "type": "City with county rights" - }, - { - "code": "HU-JN", - "name": "Jász-Nagykun-Szolnok", - "type": "County" - }, - { - "code": "HU-KE", - "name": "Komárom-Esztergom", - "type": "County" - }, - { - "code": "HU-KM", - "name": "Kecskemét", - "type": "City with county rights" - }, - { - "code": "HU-KV", - "name": "Kaposvár", - "type": "City with county rights" - }, - { - "code": "HU-MI", - "name": "Miskolc", - "type": "City with county rights" - }, - { - "code": "HU-NK", - "name": "Nagykanizsa", - "type": "City with county rights" - }, - { - "code": "HU-NO", - "name": "Nógrád", - "type": "County" - }, - { - "code": "HU-NY", - "name": "Nyíregyháza", - "type": "City with county rights" - }, - { - "code": "HU-PE", - "name": "Pest", - "type": "County" - }, - { - "code": "HU-PS", - "name": "Pécs", - "type": "City with county rights" - }, - { - "code": "HU-SD", - "name": "Szeged", - "type": "City with county rights" - }, - { - "code": "HU-SF", - "name": "Székesfehérvár", - "type": "City with county rights" - }, - { - "code": "HU-SH", - "name": "Szombathely", - "type": "City with county rights" - }, - { - "code": "HU-SK", - "name": "Szolnok", - "type": "City with county rights" - }, - { - "code": "HU-SN", - "name": "Sopron", - "type": "City with county rights" - }, - { - "code": "HU-SO", - "name": "Somogy", - "type": "County" - }, - { - "code": "HU-SS", - "name": "Szekszárd", - "type": "City with county rights" - }, - { - "code": "HU-ST", - "name": "Salgótarján", - "type": "City with county rights" - }, - { - "code": "HU-SZ", - "name": "Szabolcs-Szatmár-Bereg", - "type": "County" - }, - { - "code": "HU-TB", - "name": "Tatabánya", - "type": "City with county rights" - }, - { - "code": "HU-TO", - "name": "Tolna", - "type": "County" - }, - { - "code": "HU-VA", - "name": "Vas", - "type": "County" - }, - { - "code": "HU-VE", - "name": "Veszprém", - "type": "County" - }, - { - "code": "HU-VM", - "name": "Veszprém", - "type": "City with county rights" - }, - { - "code": "HU-ZA", - "name": "Zala", - "type": "County" - }, - { - "code": "HU-ZE", - "name": "Zalaegerszeg", - "type": "City with county rights" - }, - { - "code": "ID-AC", - "name": "Aceh", - "parent": "ID-SM", - "type": "Province" - }, - { - "code": "ID-BA", - "name": "Bali", - "parent": "ID-NU", - "type": "Province" - }, - { - "code": "ID-BB", - "name": "Kepulauan Bangka Belitung", - "parent": "ID-SM", - "type": "Province" - }, - { - "code": "ID-BE", - "name": "Bengkulu", - "parent": "ID-SM", - "type": "Province" - }, - { - "code": "ID-BT", - "name": "Banten", - "parent": "ID-JW", - "type": "Province" - }, - { - "code": "ID-GO", - "name": "Gorontalo", - "parent": "ID-SL", - "type": "Province" - }, - { - "code": "ID-JA", - "name": "Jambi", - "parent": "ID-SM", - "type": "Province" - }, - { - "code": "ID-JB", - "name": "Jawa Barat", - "parent": "ID-JW", - "type": "Province" - }, - { - "code": "ID-JI", - "name": "Jawa Timur", - "parent": "ID-JW", - "type": "Province" - }, - { - "code": "ID-JK", - "name": "Jakarta Raya", - "parent": "ID-JW", - "type": "Capital district" - }, - { - "code": "ID-JT", - "name": "Jawa Tengah", - "parent": "ID-JW", - "type": "Province" - }, - { - "code": "ID-JW", - "name": "Jawa", - "type": "Geographical unit" - }, - { - "code": "ID-KA", - "name": "Kalimantan", - "type": "Geographical unit" - }, - { - "code": "ID-KB", - "name": "Kalimantan Barat", - "parent": "ID-KA", - "type": "Province" - }, - { - "code": "ID-KI", - "name": "Kalimantan Timur", - "parent": "ID-KA", - "type": "Province" - }, - { - "code": "ID-KR", - "name": "Kepulauan Riau", - "parent": "ID-SM", - "type": "Province" - }, - { - "code": "ID-KS", - "name": "Kalimantan Selatan", - "parent": "ID-KA", - "type": "Province" - }, - { - "code": "ID-KT", - "name": "Kalimantan Tengah", - "parent": "ID-KA", - "type": "Province" - }, - { - "code": "ID-KU", - "name": "Kalimantan Utara", - "parent": "ID-KA", - "type": "Province" - }, - { - "code": "ID-LA", - "name": "Lampung", - "parent": "ID-SM", - "type": "Province" - }, - { - "code": "ID-MA", - "name": "Maluku", - "parent": "ID-ML", - "type": "Province" - }, - { - "code": "ID-ML", - "name": "Maluku", - "type": "Geographical unit" - }, - { - "code": "ID-MU", - "name": "Maluku Utara", - "parent": "ID-ML", - "type": "Province" - }, - { - "code": "ID-NB", - "name": "Nusa Tenggara Barat", - "parent": "ID-NU", - "type": "Province" - }, - { - "code": "ID-NT", - "name": "Nusa Tenggara Timur", - "parent": "ID-NU", - "type": "Province" - }, - { - "code": "ID-NU", - "name": "Nusa Tenggara", - "type": "Geographical unit" - }, - { - "code": "ID-PA", - "name": "Papua", - "parent": "ID-PP", - "type": "Province" - }, - { - "code": "ID-PB", - "name": "Papua Barat", - "parent": "ID-PP", - "type": "Province" - }, - { - "code": "ID-PD", - "name": "Papua Barat Daya", - "parent": "ID-PP", - "type": "Province" - }, - { - "code": "ID-PE", - "name": "Papua Pengunungan", - "parent": "ID-PP", - "type": "Province" - }, - { - "code": "ID-PP", - "name": "Papua", - "type": "Geographical unit" - }, - { - "code": "ID-PS", - "name": "Papua Selatan", - "parent": "ID-PP", - "type": "Province" - }, - { - "code": "ID-PT", - "name": "Papua Tengah", - "parent": "ID-PP", - "type": "Province" - }, - { - "code": "ID-RI", - "name": "Riau", - "parent": "ID-SM", - "type": "Province" - }, - { - "code": "ID-SA", - "name": "Sulawesi Utara", - "parent": "ID-SL", - "type": "Province" - }, - { - "code": "ID-SB", - "name": "Sumatera Barat", - "parent": "ID-SM", - "type": "Province" - }, - { - "code": "ID-SG", - "name": "Sulawesi Tenggara", - "parent": "ID-SL", - "type": "Province" - }, - { - "code": "ID-SL", - "name": "Sulawesi", - "type": "Geographical unit" - }, - { - "code": "ID-SM", - "name": "Sumatera", - "type": "Geographical unit" - }, - { - "code": "ID-SN", - "name": "Sulawesi Selatan", - "parent": "ID-SL", - "type": "Province" - }, - { - "code": "ID-SR", - "name": "Sulawesi Barat", - "parent": "ID-SL", - "type": "Province" - }, - { - "code": "ID-SS", - "name": "Sumatera Selatan", - "parent": "ID-SM", - "type": "Province" - }, - { - "code": "ID-ST", - "name": "Sulawesi Tengah", - "parent": "ID-SL", - "type": "Province" - }, - { - "code": "ID-SU", - "name": "Sumatera Utara", - "parent": "ID-SM", - "type": "Province" - }, - { - "code": "ID-YO", - "name": "Yogyakarta", - "parent": "ID-JW", - "type": "Special region" - }, - { - "code": "IE-C", - "name": "Connaught", - "type": "Province" - }, - { - "code": "IE-CE", - "name": "Clare", - "parent": "IE-M", - "type": "County" - }, - { - "code": "IE-CN", - "name": "Cavan", - "parent": "IE-U", - "type": "County" - }, - { - "code": "IE-CO", - "name": "Cork", - "parent": "IE-M", - "type": "County" - }, - { - "code": "IE-CW", - "name": "Carlow", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-D", - "name": "Dublin", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-DL", - "name": "Donegal", - "parent": "IE-U", - "type": "County" - }, - { - "code": "IE-G", - "name": "Galway", - "parent": "IE-C", - "type": "County" - }, - { - "code": "IE-KE", - "name": "Kildare", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-KK", - "name": "Kilkenny", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-KY", - "name": "Kerry", - "parent": "IE-M", - "type": "County" - }, - { - "code": "IE-L", - "name": "Leinster", - "type": "Province" - }, - { - "code": "IE-LD", - "name": "Longford", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-LH", - "name": "Louth", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-LK", - "name": "Limerick", - "parent": "IE-M", - "type": "County" - }, - { - "code": "IE-LM", - "name": "Leitrim", - "parent": "IE-C", - "type": "County" - }, - { - "code": "IE-LS", - "name": "Laois", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-M", - "name": "Munster", - "type": "Province" - }, - { - "code": "IE-MH", - "name": "Meath", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-MN", - "name": "Monaghan", - "parent": "IE-U", - "type": "County" - }, - { - "code": "IE-MO", - "name": "Mayo", - "parent": "IE-C", - "type": "County" - }, - { - "code": "IE-OY", - "name": "Offaly", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-RN", - "name": "Roscommon", - "parent": "IE-C", - "type": "County" - }, - { - "code": "IE-SO", - "name": "Sligo", - "parent": "IE-C", - "type": "County" - }, - { - "code": "IE-TA", - "name": "Tipperary", - "parent": "IE-M", - "type": "County" - }, - { - "code": "IE-U", - "name": "Ulster", - "type": "Province" - }, - { - "code": "IE-WD", - "name": "Waterford", - "parent": "IE-M", - "type": "County" - }, - { - "code": "IE-WH", - "name": "Westmeath", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-WW", - "name": "Wicklow", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IE-WX", - "name": "Wexford", - "parent": "IE-L", - "type": "County" - }, - { - "code": "IL-D", - "name": "Al Janūbī", - "type": "District" - }, - { - "code": "IL-HA", - "name": "H̱efa", - "type": "District" - }, - { - "code": "IL-JM", - "name": "Al Quds", - "type": "District" - }, - { - "code": "IL-M", - "name": "Al Awsaţ", - "type": "District" - }, - { - "code": "IL-TA", - "name": "Tall Abīb", - "type": "District" - }, - { - "code": "IL-Z", - "name": "Ash Shamālī", - "type": "District" - }, - { - "code": "IN-AN", - "name": "Andaman and Nicobar Islands", - "type": "Union territory" - }, - { - "code": "IN-AP", - "name": "Andhra Pradesh", - "type": "State" - }, - { - "code": "IN-AR", - "name": "Arunāchal Pradesh", - "type": "State" - }, - { - "code": "IN-AS", - "name": "Assam", - "type": "State" - }, - { - "code": "IN-BR", - "name": "Bihār", - "type": "State" - }, - { - "code": "IN-CG", - "name": "Chhattīsgarh", - "type": "State" - }, - { - "code": "IN-CH", - "name": "Chandīgarh", - "type": "Union territory" - }, - { - "code": "IN-DH", - "name": "Dādra and Nagar Haveli and Damān and Diu", - "type": "Union territory" - }, - { - "code": "IN-DL", - "name": "Delhi", - "type": "Union territory" - }, - { - "code": "IN-GA", - "name": "Goa", - "type": "State" - }, - { - "code": "IN-GJ", - "name": "Gujarāt", - "type": "State" - }, - { - "code": "IN-HP", - "name": "Himāchal Pradesh", - "type": "State" - }, - { - "code": "IN-HR", - "name": "Haryāna", - "type": "State" - }, - { - "code": "IN-JH", - "name": "Jhārkhand", - "type": "State" - }, - { - "code": "IN-JK", - "name": "Jammu and Kashmīr", - "type": "Union territory" - }, - { - "code": "IN-KA", - "name": "Karnātaka", - "type": "State" - }, - { - "code": "IN-KL", - "name": "Kerala", - "type": "State" - }, - { - "code": "IN-LA", - "name": "Ladākh", - "type": "Union territory" - }, - { - "code": "IN-LD", - "name": "Lakshadweep", - "type": "Union territory" - }, - { - "code": "IN-MH", - "name": "Mahārāshtra", - "type": "State" - }, - { - "code": "IN-ML", - "name": "Meghālaya", - "type": "State" - }, - { - "code": "IN-MN", - "name": "Manipur", - "type": "State" - }, - { - "code": "IN-MP", - "name": "Madhya Pradesh", - "type": "State" - }, - { - "code": "IN-MZ", - "name": "Mizoram", - "type": "State" - }, - { - "code": "IN-NL", - "name": "Nāgāland", - "type": "State" - }, - { - "code": "IN-OD", - "name": "Odisha", - "type": "State" - }, - { - "code": "IN-PB", - "name": "Punjab", - "type": "State" - }, - { - "code": "IN-PY", - "name": "Puducherry", - "type": "Union territory" - }, - { - "code": "IN-RJ", - "name": "Rājasthān", - "type": "State" - }, - { - "code": "IN-SK", - "name": "Sikkim", - "type": "State" - }, - { - "code": "IN-TN", - "name": "Tamil Nādu", - "type": "State" - }, - { - "code": "IN-TR", - "name": "Tripura", - "type": "State" - }, - { - "code": "IN-TS", - "name": "Telangāna", - "type": "State" - }, - { - "code": "IN-UK", - "name": "Uttarākhand", - "type": "State" - }, - { - "code": "IN-UP", - "name": "Uttar Pradesh", - "type": "State" - }, - { - "code": "IN-WB", - "name": "West Bengal", - "type": "State" - }, - { - "code": "IQ-AN", - "name": "Al Anbār", - "type": "Governorate" - }, - { - "code": "IQ-AR", - "name": "Arbīl", - "parent": "IQ-KR", - "type": "Governorate" - }, - { - "code": "IQ-BA", - "name": "Al Başrah", - "type": "Governorate" - }, - { - "code": "IQ-BB", - "name": "Bābil", - "type": "Governorate" - }, - { - "code": "IQ-BG", - "name": "Baghdād", - "type": "Governorate" - }, - { - "code": "IQ-DA", - "name": "Dahūk", - "parent": "IQ-KR", - "type": "Governorate" - }, - { - "code": "IQ-DI", - "name": "Diyālá", - "type": "Governorate" - }, - { - "code": "IQ-DQ", - "name": "Dhī Qār", - "type": "Governorate" - }, - { - "code": "IQ-KA", - "name": "Karbalā’", - "type": "Governorate" - }, - { - "code": "IQ-KI", - "name": "Kirkūk", - "type": "Governorate" - }, - { - "code": "IQ-KR", - "name": "Herêm-î Kurdistan", - "type": "Region" - }, - { - "code": "IQ-MA", - "name": "Maysān", - "type": "Governorate" - }, - { - "code": "IQ-MU", - "name": "Al Muthanná", - "type": "Governorate" - }, - { - "code": "IQ-NA", - "name": "An Najaf", - "type": "Governorate" - }, - { - "code": "IQ-NI", - "name": "Nīnawá", - "type": "Governorate" - }, - { - "code": "IQ-QA", - "name": "Al Qādisīyah", - "type": "Governorate" - }, - { - "code": "IQ-SD", - "name": "Şalāḩ ad Dīn", - "type": "Governorate" - }, - { - "code": "IQ-SU", - "name": "As Sulaymānīyah", - "parent": "IQ-KR", - "type": "Governorate" - }, - { - "code": "IQ-WA", - "name": "Wāsiţ", - "type": "Governorate" - }, - { - "code": "IR-00", - "name": "Markazī", - "type": "Province" - }, - { - "code": "IR-01", - "name": "Gīlān", - "type": "Province" - }, - { - "code": "IR-02", - "name": "Māzandarān", - "type": "Province" - }, - { - "code": "IR-03", - "name": "Āz̄ārbāyjān-e Shārqī", - "type": "Province" - }, - { - "code": "IR-04", - "name": "Āz̄ārbāyjān-e Ghārbī", - "type": "Province" - }, - { - "code": "IR-05", - "name": "Kermānshāh", - "type": "Province" - }, - { - "code": "IR-06", - "name": "Khūzestān", - "type": "Province" - }, - { - "code": "IR-07", - "name": "Fārs", - "type": "Province" - }, - { - "code": "IR-08", - "name": "Kermān", - "type": "Province" - }, - { - "code": "IR-09", - "name": "Khorāsān-e Raẕavī", - "type": "Province" - }, - { - "code": "IR-10", - "name": "Eşfahān", - "type": "Province" - }, - { - "code": "IR-11", - "name": "Sīstān va Balūchestān", - "type": "Province" - }, - { - "code": "IR-12", - "name": "Kordestān", - "type": "Province" - }, - { - "code": "IR-13", - "name": "Hamadān", - "type": "Province" - }, - { - "code": "IR-14", - "name": "Chahār Maḩāl va Bakhtīārī", - "type": "Province" - }, - { - "code": "IR-15", - "name": "Lorestān", - "type": "Province" - }, - { - "code": "IR-16", - "name": "Īlām", - "type": "Province" - }, - { - "code": "IR-17", - "name": "Kohgīlūyeh va Bowyer Aḩmad", - "type": "Province" - }, - { - "code": "IR-18", - "name": "Būshehr", - "type": "Province" - }, - { - "code": "IR-19", - "name": "Zanjān", - "type": "Province" - }, - { - "code": "IR-20", - "name": "Semnān", - "type": "Province" - }, - { - "code": "IR-21", - "name": "Yazd", - "type": "Province" - }, - { - "code": "IR-22", - "name": "Hormozgān", - "type": "Province" - }, - { - "code": "IR-23", - "name": "Tehrān", - "type": "Province" - }, - { - "code": "IR-24", - "name": "Ardabīl", - "type": "Province" - }, - { - "code": "IR-25", - "name": "Qom", - "type": "Province" - }, - { - "code": "IR-26", - "name": "Qazvīn", - "type": "Province" - }, - { - "code": "IR-27", - "name": "Golestān", - "type": "Province" - }, - { - "code": "IR-28", - "name": "Khorāsān-e Shomālī", - "type": "Province" - }, - { - "code": "IR-29", - "name": "Khorāsān-e Jonūbī", - "type": "Province" - }, - { - "code": "IR-30", - "name": "Alborz", - "type": "Province" - }, - { - "code": "IS-1", - "name": "Höfuðborgarsvæði", - "type": "Region" - }, - { - "code": "IS-2", - "name": "Suðurnes", - "type": "Region" - }, - { - "code": "IS-3", - "name": "Vesturland", - "type": "Region" - }, - { - "code": "IS-4", - "name": "Vestfirðir", - "type": "Region" - }, - { - "code": "IS-5", - "name": "Norðurland vestra", - "type": "Region" - }, - { - "code": "IS-6", - "name": "Norðurland eystra", - "type": "Region" - }, - { - "code": "IS-7", - "name": "Austurland", - "type": "Region" - }, - { - "code": "IS-8", - "name": "Suðurland", - "type": "Region" - }, - { - "code": "IS-AKN", - "name": "Akraneskaupstaður", - "parent": "IS-3", - "type": "Municipality" - }, - { - "code": "IS-AKU", - "name": "Akureyrarbær", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-ARN", - "name": "Árneshreppur", - "parent": "IS-4", - "type": "Municipality" - }, - { - "code": "IS-ASA", - "name": "Ásahreppur", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-BLA", - "name": "Bláskógabyggð", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-BOG", - "name": "Borgarbyggð", - "parent": "IS-3", - "type": "Municipality" - }, - { - "code": "IS-BOL", - "name": "Bolungarvíkurkaupstaður", - "parent": "IS-4", - "type": "Municipality" - }, - { - "code": "IS-DAB", - "name": "Dalabyggð", - "parent": "IS-3", - "type": "Municipality" - }, - { - "code": "IS-DAV", - "name": "Dalvíkurbyggð", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-EOM", - "name": "Eyja- og Miklaholtshreppur", - "parent": "IS-3", - "type": "Municipality" - }, - { - "code": "IS-EYF", - "name": "Eyjafjarðarsveit", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-FJD", - "name": "Fjarðabyggð", - "parent": "IS-7", - "type": "Municipality" - }, - { - "code": "IS-FJL", - "name": "Fjallabyggð", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-FLA", - "name": "Flóahreppur", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-FLR", - "name": "Fljótsdalshreppur", - "parent": "IS-7", - "type": "Municipality" - }, - { - "code": "IS-GAR", - "name": "Garðabær", - "parent": "IS-1", - "type": "Municipality" - }, - { - "code": "IS-GOG", - "name": "Grímsnes- og Grafningshreppur", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-GRN", - "name": "Grindavíkurbær", - "parent": "IS-2", - "type": "Municipality" - }, - { - "code": "IS-GRU", - "name": "Grundarfjarðarbær", - "parent": "IS-3", - "type": "Municipality" - }, - { - "code": "IS-GRY", - "name": "Grýtubakkahreppur", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-HAF", - "name": "Hafnarfjarðarkaupstaður", - "parent": "IS-1", - "type": "Municipality" - }, - { - "code": "IS-HRG", - "name": "Hörgársveit", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-HRU", - "name": "Hrunamannahreppur", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-HUG", - "name": "Húnabyggð", - "parent": "IS-5", - "type": "Municipality" - }, - { - "code": "IS-HUV", - "name": "Húnaþing vestra", - "parent": "IS-5", - "type": "Municipality" - }, - { - "code": "IS-HVA", - "name": "Hvalfjarðarsveit", - "parent": "IS-3", - "type": "Municipality" - }, - { - "code": "IS-HVE", - "name": "Hveragerðisbær", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-ISA", - "name": "Ísafjarðarbær", - "parent": "IS-4", - "type": "Municipality" - }, - { - "code": "IS-KAL", - "name": "Kaldrananeshreppur", - "parent": "IS-4", - "type": "Municipality" - }, - { - "code": "IS-KJO", - "name": "Kjósarhreppur", - "parent": "IS-1", - "type": "Municipality" - }, - { - "code": "IS-KOP", - "name": "Kópavogsbær", - "parent": "IS-1", - "type": "Municipality" - }, - { - "code": "IS-LAN", - "name": "Langanesbyggð", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-MOS", - "name": "Mosfellsbær", - "parent": "IS-1", - "type": "Municipality" - }, - { - "code": "IS-MUL", - "name": "Múlaþing", - "parent": "IS-7", - "type": "Municipality" - }, - { - "code": "IS-MYR", - "name": "Mýrdalshreppur", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-NOR", - "name": "Norðurþing", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-RGE", - "name": "Rangárþing eystra", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-RGY", - "name": "Rangárþing ytra", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-RHH", - "name": "Reykhólahreppur", - "parent": "IS-4", - "type": "Municipality" - }, - { - "code": "IS-RKN", - "name": "Reykjanesbær", - "parent": "IS-2", - "type": "Municipality" - }, - { - "code": "IS-RKV", - "name": "Reykjavíkurborg", - "parent": "IS-1", - "type": "Municipality" - }, - { - "code": "IS-SBT", - "name": "Svalbarðsstrandarhreppur", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-SDN", - "name": "Suðurnesjabær", - "parent": "IS-2", - "type": "Municipality" - }, - { - "code": "IS-SDV", - "name": "Súðavíkurhreppur", - "parent": "IS-4", - "type": "Municipality" - }, - { - "code": "IS-SEL", - "name": "Seltjarnarnesbær", - "parent": "IS-1", - "type": "Municipality" - }, - { - "code": "IS-SFA", - "name": "Sveitarfélagið Árborg", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-SHF", - "name": "Sveitarfélagið Hornafjörður", - "parent": "IS-7", - "type": "Municipality" - }, - { - "code": "IS-SKF", - "name": "Skaftárhreppur", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-SKG", - "name": "Skagabyggð", - "parent": "IS-5", - "type": "Municipality" - }, - { - "code": "IS-SKO", - "name": "Skorradalshreppur", - "parent": "IS-3", - "type": "Municipality" - }, - { - "code": "IS-SKR", - "name": "Skagafjörður", - "parent": "IS-5", - "type": "Municipality" - }, - { - "code": "IS-SNF", - "name": "Snæfellsbær", - "parent": "IS-3", - "type": "Municipality" - }, - { - "code": "IS-SOG", - "name": "Skeiða- og Gnúpverjahreppur", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-SOL", - "name": "Sveitarfélagið Ölfus", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-SSS", - "name": "Sveitarfélagið Skagaströnd", - "parent": "IS-5", - "type": "Municipality" - }, - { - "code": "IS-STR", - "name": "Strandabyggð", - "parent": "IS-4", - "type": "Municipality" - }, - { - "code": "IS-STY", - "name": "Stykkishólmsbær", - "parent": "IS-3", - "type": "Municipality" - }, - { - "code": "IS-SVG", - "name": "Sveitarfélagið Vogar", - "parent": "IS-2", - "type": "Municipality" - }, - { - "code": "IS-TAL", - "name": "Tálknafjarðarhreppur", - "parent": "IS-4", - "type": "Municipality" - }, - { - "code": "IS-THG", - "name": "Þingeyjarsveit", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-TJO", - "name": "Tjörneshreppur", - "parent": "IS-6", - "type": "Municipality" - }, - { - "code": "IS-VEM", - "name": "Vestmannaeyjabær", - "parent": "IS-8", - "type": "Municipality" - }, - { - "code": "IS-VER", - "name": "Vesturbyggð", - "parent": "IS-4", - "type": "Municipality" - }, - { - "code": "IS-VOP", - "name": "Vopnafjarðarhreppur", - "parent": "IS-7", - "type": "Municipality" - }, - { - "code": "IT-21", - "name": "Piemonte", - "type": "Region" - }, - { - "code": "IT-23", - "name": "Val d'Aoste", - "type": "Autonomous region" - }, - { - "code": "IT-25", - "name": "Lombardia", - "type": "Region" - }, - { - "code": "IT-32", - "name": "Trentino-Alto Adige", - "type": "Autonomous region" - }, - { - "code": "IT-34", - "name": "Veneto", - "type": "Region" - }, - { - "code": "IT-36", - "name": "Friuli Venezia Giulia", - "type": "Autonomous region" - }, - { - "code": "IT-42", - "name": "Liguria", - "type": "Region" - }, - { - "code": "IT-45", - "name": "Emilia-Romagna", - "type": "Region" - }, - { - "code": "IT-52", - "name": "Toscana", - "type": "Region" - }, - { - "code": "IT-55", - "name": "Umbria", - "type": "Region" - }, - { - "code": "IT-57", - "name": "Marche", - "type": "Region" - }, - { - "code": "IT-62", - "name": "Lazio", - "type": "Region" - }, - { - "code": "IT-65", - "name": "Abruzzo", - "type": "Region" - }, - { - "code": "IT-67", - "name": "Molise", - "type": "Region" - }, - { - "code": "IT-72", - "name": "Campania", - "type": "Region" - }, - { - "code": "IT-75", - "name": "Puglia", - "type": "Region" - }, - { - "code": "IT-77", - "name": "Basilicata", - "type": "Region" - }, - { - "code": "IT-78", - "name": "Calabria", - "type": "Region" - }, - { - "code": "IT-82", - "name": "Sicilia", - "type": "Autonomous region" - }, - { - "code": "IT-88", - "name": "Sardegna", - "type": "Autonomous region" - }, - { - "code": "IT-AG", - "name": "Agrigento", - "parent": "IT-82", - "type": "Free municipal consortium" - }, - { - "code": "IT-AL", - "name": "Alessandria", - "parent": "IT-21", - "type": "Province" - }, - { - "code": "IT-AN", - "name": "Ancona", - "parent": "IT-57", - "type": "Province" - }, - { - "code": "IT-AP", - "name": "Ascoli Piceno", - "parent": "IT-57", - "type": "Province" - }, - { - "code": "IT-AQ", - "name": "L'Aquila", - "parent": "IT-65", - "type": "Province" - }, - { - "code": "IT-AR", - "name": "Arezzo", - "parent": "IT-52", - "type": "Province" - }, - { - "code": "IT-AT", - "name": "Asti", - "parent": "IT-21", - "type": "Province" - }, - { - "code": "IT-AV", - "name": "Avellino", - "parent": "IT-72", - "type": "Province" - }, - { - "code": "IT-BA", - "name": "Bari", - "parent": "IT-75", - "type": "Metropolitan city" - }, - { - "code": "IT-BG", - "name": "Bergamo", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-BI", - "name": "Biella", - "parent": "IT-21", - "type": "Province" - }, - { - "code": "IT-BL", - "name": "Belluno", - "parent": "IT-34", - "type": "Province" - }, - { - "code": "IT-BN", - "name": "Benevento", - "parent": "IT-72", - "type": "Province" - }, - { - "code": "IT-BO", - "name": "Bologna", - "parent": "IT-45", - "type": "Metropolitan city" - }, - { - "code": "IT-BR", - "name": "Brindisi", - "parent": "IT-75", - "type": "Province" - }, - { - "code": "IT-BS", - "name": "Brescia", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-BT", - "name": "Barletta-Andria-Trani", - "parent": "IT-75", - "type": "Province" - }, - { - "code": "IT-BZ", - "name": "Bolzano", - "parent": "IT-32", - "type": "Autonomous province" - }, - { - "code": "IT-CA", - "name": "Cagliari", - "parent": "IT-88", - "type": "Metropolitan city" - }, - { - "code": "IT-CB", - "name": "Campobasso", - "parent": "IT-67", - "type": "Province" - }, - { - "code": "IT-CE", - "name": "Caserta", - "parent": "IT-72", - "type": "Province" - }, - { - "code": "IT-CH", - "name": "Chieti", - "parent": "IT-65", - "type": "Province" - }, - { - "code": "IT-CL", - "name": "Caltanissetta", - "parent": "IT-82", - "type": "Free municipal consortium" - }, - { - "code": "IT-CN", - "name": "Cuneo", - "parent": "IT-21", - "type": "Province" - }, - { - "code": "IT-CO", - "name": "Como", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-CR", - "name": "Cremona", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-CS", - "name": "Cosenza", - "parent": "IT-78", - "type": "Province" - }, - { - "code": "IT-CT", - "name": "Catania", - "parent": "IT-82", - "type": "Metropolitan city" - }, - { - "code": "IT-CZ", - "name": "Catanzaro", - "parent": "IT-78", - "type": "Province" - }, - { - "code": "IT-EN", - "name": "Enna", - "parent": "IT-82", - "type": "Free municipal consortium" - }, - { - "code": "IT-FC", - "name": "Forlì-Cesena", - "parent": "IT-45", - "type": "Province" - }, - { - "code": "IT-FE", - "name": "Ferrara", - "parent": "IT-45", - "type": "Province" - }, - { - "code": "IT-FG", - "name": "Foggia", - "parent": "IT-75", - "type": "Province" - }, - { - "code": "IT-FI", - "name": "Firenze", - "parent": "IT-52", - "type": "Metropolitan city" - }, - { - "code": "IT-FM", - "name": "Fermo", - "parent": "IT-57", - "type": "Province" - }, - { - "code": "IT-FR", - "name": "Frosinone", - "parent": "IT-62", - "type": "Province" - }, - { - "code": "IT-GE", - "name": "Genova", - "parent": "IT-42", - "type": "Metropolitan city" - }, - { - "code": "IT-GO", - "name": "Gorizia", - "parent": "IT-36", - "type": "Decentralized regional entity" - }, - { - "code": "IT-GR", - "name": "Grosseto", - "parent": "IT-52", - "type": "Province" - }, - { - "code": "IT-IM", - "name": "Imperia", - "parent": "IT-42", - "type": "Province" - }, - { - "code": "IT-IS", - "name": "Isernia", - "parent": "IT-67", - "type": "Province" - }, - { - "code": "IT-KR", - "name": "Crotone", - "parent": "IT-78", - "type": "Province" - }, - { - "code": "IT-LC", - "name": "Lecco", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-LE", - "name": "Lecce", - "parent": "IT-75", - "type": "Province" - }, - { - "code": "IT-LI", - "name": "Livorno", - "parent": "IT-52", - "type": "Province" - }, - { - "code": "IT-LO", - "name": "Lodi", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-LT", - "name": "Latina", - "parent": "IT-62", - "type": "Province" - }, - { - "code": "IT-LU", - "name": "Lucca", - "parent": "IT-52", - "type": "Province" - }, - { - "code": "IT-MB", - "name": "Monza e Brianza", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-MC", - "name": "Macerata", - "parent": "IT-57", - "type": "Province" - }, - { - "code": "IT-ME", - "name": "Messina", - "parent": "IT-82", - "type": "Metropolitan city" - }, - { - "code": "IT-MI", - "name": "Milano", - "parent": "IT-25", - "type": "Metropolitan city" - }, - { - "code": "IT-MN", - "name": "Mantova", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-MO", - "name": "Modena", - "parent": "IT-45", - "type": "Province" - }, - { - "code": "IT-MS", - "name": "Massa-Carrara", - "parent": "IT-52", - "type": "Province" - }, - { - "code": "IT-MT", - "name": "Matera", - "parent": "IT-77", - "type": "Province" - }, - { - "code": "IT-NA", - "name": "Napoli", - "parent": "IT-72", - "type": "Metropolitan city" - }, - { - "code": "IT-NO", - "name": "Novara", - "parent": "IT-21", - "type": "Province" - }, - { - "code": "IT-NU", - "name": "Nuoro", - "parent": "IT-88", - "type": "Province" - }, - { - "code": "IT-OR", - "name": "Oristano", - "parent": "IT-88", - "type": "Province" - }, - { - "code": "IT-PA", - "name": "Palermo", - "parent": "IT-82", - "type": "Metropolitan city" - }, - { - "code": "IT-PC", - "name": "Piacenza", - "parent": "IT-45", - "type": "Province" - }, - { - "code": "IT-PD", - "name": "Padova", - "parent": "IT-34", - "type": "Province" - }, - { - "code": "IT-PE", - "name": "Pescara", - "parent": "IT-65", - "type": "Province" - }, - { - "code": "IT-PG", - "name": "Perugia", - "parent": "IT-55", - "type": "Province" - }, - { - "code": "IT-PI", - "name": "Pisa", - "parent": "IT-52", - "type": "Province" - }, - { - "code": "IT-PN", - "name": "Pordenone", - "parent": "IT-36", - "type": "Decentralized regional entity" - }, - { - "code": "IT-PO", - "name": "Prato", - "parent": "IT-52", - "type": "Province" - }, - { - "code": "IT-PR", - "name": "Parma", - "parent": "IT-45", - "type": "Province" - }, - { - "code": "IT-PT", - "name": "Pistoia", - "parent": "IT-52", - "type": "Province" - }, - { - "code": "IT-PU", - "name": "Pesaro e Urbino", - "parent": "IT-57", - "type": "Province" - }, - { - "code": "IT-PV", - "name": "Pavia", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-PZ", - "name": "Potenza", - "parent": "IT-77", - "type": "Province" - }, - { - "code": "IT-RA", - "name": "Ravenna", - "parent": "IT-45", - "type": "Province" - }, - { - "code": "IT-RC", - "name": "Reggio Calabria", - "parent": "IT-78", - "type": "Metropolitan city" - }, - { - "code": "IT-RE", - "name": "Reggio Emilia", - "parent": "IT-45", - "type": "Province" - }, - { - "code": "IT-RG", - "name": "Ragusa", - "parent": "IT-82", - "type": "Free municipal consortium" - }, - { - "code": "IT-RI", - "name": "Rieti", - "parent": "IT-62", - "type": "Province" - }, - { - "code": "IT-RM", - "name": "Roma", - "parent": "IT-62", - "type": "Metropolitan city" - }, - { - "code": "IT-RN", - "name": "Rimini", - "parent": "IT-45", - "type": "Province" - }, - { - "code": "IT-RO", - "name": "Rovigo", - "parent": "IT-34", - "type": "Province" - }, - { - "code": "IT-SA", - "name": "Salerno", - "parent": "IT-72", - "type": "Province" - }, - { - "code": "IT-SI", - "name": "Siena", - "parent": "IT-52", - "type": "Province" - }, - { - "code": "IT-SO", - "name": "Sondrio", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-SP", - "name": "La Spezia", - "parent": "IT-42", - "type": "Province" - }, - { - "code": "IT-SR", - "name": "Siracusa", - "parent": "IT-82", - "type": "Free municipal consortium" - }, - { - "code": "IT-SS", - "name": "Sassari", - "parent": "IT-88", - "type": "Province" - }, - { - "code": "IT-SU", - "name": "Sud Sardegna", - "parent": "IT-88", - "type": "Province" - }, - { - "code": "IT-SV", - "name": "Savona", - "parent": "IT-42", - "type": "Province" - }, - { - "code": "IT-TA", - "name": "Taranto", - "parent": "IT-75", - "type": "Province" - }, - { - "code": "IT-TE", - "name": "Teramo", - "parent": "IT-65", - "type": "Province" - }, - { - "code": "IT-TN", - "name": "Trento", - "parent": "IT-32", - "type": "Autonomous province" - }, - { - "code": "IT-TO", - "name": "Torino", - "parent": "IT-21", - "type": "Metropolitan city" - }, - { - "code": "IT-TP", - "name": "Trapani", - "parent": "IT-82", - "type": "Free municipal consortium" - }, - { - "code": "IT-TR", - "name": "Terni", - "parent": "IT-55", - "type": "Province" - }, - { - "code": "IT-TS", - "name": "Trieste", - "parent": "IT-36", - "type": "Decentralized regional entity" - }, - { - "code": "IT-TV", - "name": "Treviso", - "parent": "IT-34", - "type": "Province" - }, - { - "code": "IT-UD", - "name": "Udine", - "parent": "IT-36", - "type": "Decentralized regional entity" - }, - { - "code": "IT-VA", - "name": "Varese", - "parent": "IT-25", - "type": "Province" - }, - { - "code": "IT-VB", - "name": "Verbano-Cusio-Ossola", - "parent": "IT-21", - "type": "Province" - }, - { - "code": "IT-VC", - "name": "Vercelli", - "parent": "IT-21", - "type": "Province" - }, - { - "code": "IT-VE", - "name": "Venezia", - "parent": "IT-34", - "type": "Metropolitan city" - }, - { - "code": "IT-VI", - "name": "Vicenza", - "parent": "IT-34", - "type": "Province" - }, - { - "code": "IT-VR", - "name": "Verona", - "parent": "IT-34", - "type": "Province" - }, - { - "code": "IT-VT", - "name": "Viterbo", - "parent": "IT-62", - "type": "Province" - }, - { - "code": "IT-VV", - "name": "Vibo Valentia", - "parent": "IT-78", - "type": "Province" - }, - { - "code": "JM-01", - "name": "Kingston", - "type": "Parish" - }, - { - "code": "JM-02", - "name": "Saint Andrew", - "type": "Parish" - }, - { - "code": "JM-03", - "name": "Saint Thomas", - "type": "Parish" - }, - { - "code": "JM-04", - "name": "Portland", - "type": "Parish" - }, - { - "code": "JM-05", - "name": "Saint Mary", - "type": "Parish" - }, - { - "code": "JM-06", - "name": "Saint Ann", - "type": "Parish" - }, - { - "code": "JM-07", - "name": "Trelawny", - "type": "Parish" - }, - { - "code": "JM-08", - "name": "Saint James", - "type": "Parish" - }, - { - "code": "JM-09", - "name": "Hanover", - "type": "Parish" - }, - { - "code": "JM-10", - "name": "Westmoreland", - "type": "Parish" - }, - { - "code": "JM-11", - "name": "Saint Elizabeth", - "type": "Parish" - }, - { - "code": "JM-12", - "name": "Manchester", - "type": "Parish" - }, - { - "code": "JM-13", - "name": "Clarendon", - "type": "Parish" - }, - { - "code": "JM-14", - "name": "Saint Catherine", - "type": "Parish" - }, - { - "code": "JO-AJ", - "name": "‘Ajlūn", - "type": "Governorate" - }, - { - "code": "JO-AM", - "name": "Al ‘A̅şimah", - "type": "Governorate" - }, - { - "code": "JO-AQ", - "name": "Al ‘Aqabah", - "type": "Governorate" - }, - { - "code": "JO-AT", - "name": "Aţ Ţafīlah", - "type": "Governorate" - }, - { - "code": "JO-AZ", - "name": "Az Zarqā’", - "type": "Governorate" - }, - { - "code": "JO-BA", - "name": "Al Balqā’", - "type": "Governorate" - }, - { - "code": "JO-IR", - "name": "Irbid", - "type": "Governorate" - }, - { - "code": "JO-JA", - "name": "Jarash", - "type": "Governorate" - }, - { - "code": "JO-KA", - "name": "Al Karak", - "type": "Governorate" - }, - { - "code": "JO-MA", - "name": "Al Mafraq", - "type": "Governorate" - }, - { - "code": "JO-MD", - "name": "Mādabā", - "type": "Governorate" - }, - { - "code": "JO-MN", - "name": "Ma‘ān", - "type": "Governorate" - }, - { - "code": "JP-01", - "name": "Hokkaido", - "type": "Prefecture" - }, - { - "code": "JP-02", - "name": "Aomori", - "type": "Prefecture" - }, - { - "code": "JP-03", - "name": "Iwate", - "type": "Prefecture" - }, - { - "code": "JP-04", - "name": "Miyagi", - "type": "Prefecture" - }, - { - "code": "JP-05", - "name": "Akita", - "type": "Prefecture" - }, - { - "code": "JP-06", - "name": "Yamagata", - "type": "Prefecture" - }, - { - "code": "JP-07", - "name": "Fukushima", - "type": "Prefecture" - }, - { - "code": "JP-08", - "name": "Ibaraki", - "type": "Prefecture" - }, - { - "code": "JP-09", - "name": "Tochigi", - "type": "Prefecture" - }, - { - "code": "JP-10", - "name": "Gunma", - "type": "Prefecture" - }, - { - "code": "JP-11", - "name": "Saitama", - "type": "Prefecture" - }, - { - "code": "JP-12", - "name": "Chiba", - "type": "Prefecture" - }, - { - "code": "JP-13", - "name": "Tokyo", - "type": "Prefecture" - }, - { - "code": "JP-14", - "name": "Kanagawa", - "type": "Prefecture" - }, - { - "code": "JP-15", - "name": "Niigata", - "type": "Prefecture" - }, - { - "code": "JP-16", - "name": "Toyama", - "type": "Prefecture" - }, - { - "code": "JP-17", - "name": "Ishikawa", - "type": "Prefecture" - }, - { - "code": "JP-18", - "name": "Fukui", - "type": "Prefecture" - }, - { - "code": "JP-19", - "name": "Yamanashi", - "type": "Prefecture" - }, - { - "code": "JP-20", - "name": "Nagano", - "type": "Prefecture" - }, - { - "code": "JP-21", - "name": "Gifu", - "type": "Prefecture" - }, - { - "code": "JP-22", - "name": "Shizuoka", - "type": "Prefecture" - }, - { - "code": "JP-23", - "name": "Aichi", - "type": "Prefecture" - }, - { - "code": "JP-24", - "name": "Mie", - "type": "Prefecture" - }, - { - "code": "JP-25", - "name": "Shiga", - "type": "Prefecture" - }, - { - "code": "JP-26", - "name": "Kyoto", - "type": "Prefecture" - }, - { - "code": "JP-27", - "name": "Osaka", - "type": "Prefecture" - }, - { - "code": "JP-28", - "name": "Hyogo", - "type": "Prefecture" - }, - { - "code": "JP-29", - "name": "Nara", - "type": "Prefecture" - }, - { - "code": "JP-30", - "name": "Wakayama", - "type": "Prefecture" - }, - { - "code": "JP-31", - "name": "Tottori", - "type": "Prefecture" - }, - { - "code": "JP-32", - "name": "Shimane", - "type": "Prefecture" - }, - { - "code": "JP-33", - "name": "Okayama", - "type": "Prefecture" - }, - { - "code": "JP-34", - "name": "Hiroshima", - "type": "Prefecture" - }, - { - "code": "JP-35", - "name": "Yamaguchi", - "type": "Prefecture" - }, - { - "code": "JP-36", - "name": "Tokushima", - "type": "Prefecture" - }, - { - "code": "JP-37", - "name": "Kagawa", - "type": "Prefecture" - }, - { - "code": "JP-38", - "name": "Ehime", - "type": "Prefecture" - }, - { - "code": "JP-39", - "name": "Kochi", - "type": "Prefecture" - }, - { - "code": "JP-40", - "name": "Fukuoka", - "type": "Prefecture" - }, - { - "code": "JP-41", - "name": "Saga", - "type": "Prefecture" - }, - { - "code": "JP-42", - "name": "Nagasaki", - "type": "Prefecture" - }, - { - "code": "JP-43", - "name": "Kumamoto", - "type": "Prefecture" - }, - { - "code": "JP-44", - "name": "Oita", - "type": "Prefecture" - }, - { - "code": "JP-45", - "name": "Miyazaki", - "type": "Prefecture" - }, - { - "code": "JP-46", - "name": "Kagoshima", - "type": "Prefecture" - }, - { - "code": "JP-47", - "name": "Okinawa", - "type": "Prefecture" - }, - { - "code": "KE-01", - "name": "Baringo", - "type": "County" - }, - { - "code": "KE-02", - "name": "Bomet", - "type": "County" - }, - { - "code": "KE-03", - "name": "Bungoma", - "type": "County" - }, - { - "code": "KE-04", - "name": "Busia", - "type": "County" - }, - { - "code": "KE-05", - "name": "Elgeyo/Marakwet", - "type": "County" - }, - { - "code": "KE-06", - "name": "Embu", - "type": "County" - }, - { - "code": "KE-07", - "name": "Garissa", - "type": "County" - }, - { - "code": "KE-08", - "name": "Homa Bay", - "type": "County" - }, - { - "code": "KE-09", - "name": "Isiolo", - "type": "County" - }, - { - "code": "KE-10", - "name": "Kajiado", - "type": "County" - }, - { - "code": "KE-11", - "name": "Kakamega", - "type": "County" - }, - { - "code": "KE-12", - "name": "Kericho", - "type": "County" - }, - { - "code": "KE-13", - "name": "Kiambu", - "type": "County" - }, - { - "code": "KE-14", - "name": "Kilifi", - "type": "County" - }, - { - "code": "KE-15", - "name": "Kirinyaga", - "type": "County" - }, - { - "code": "KE-16", - "name": "Kisii", - "type": "County" - }, - { - "code": "KE-17", - "name": "Kisumu", - "type": "County" - }, - { - "code": "KE-18", - "name": "Kitui", - "type": "County" - }, - { - "code": "KE-19", - "name": "Kwale", - "type": "County" - }, - { - "code": "KE-20", - "name": "Laikipia", - "type": "County" - }, - { - "code": "KE-21", - "name": "Lamu", - "type": "County" - }, - { - "code": "KE-22", - "name": "Machakos", - "type": "County" - }, - { - "code": "KE-23", - "name": "Makueni", - "type": "County" - }, - { - "code": "KE-24", - "name": "Mandera", - "type": "County" - }, - { - "code": "KE-25", - "name": "Marsabit", - "type": "County" - }, - { - "code": "KE-26", - "name": "Meru", - "type": "County" - }, - { - "code": "KE-27", - "name": "Migori", - "type": "County" - }, - { - "code": "KE-28", - "name": "Mombasa", - "type": "County" - }, - { - "code": "KE-29", - "name": "Murang'a", - "type": "County" - }, - { - "code": "KE-30", - "name": "Nairobi City", - "type": "County" - }, - { - "code": "KE-31", - "name": "Nakuru", - "type": "County" - }, - { - "code": "KE-32", - "name": "Nandi", - "type": "County" - }, - { - "code": "KE-33", - "name": "Narok", - "type": "County" - }, - { - "code": "KE-34", - "name": "Nyamira", - "type": "County" - }, - { - "code": "KE-35", - "name": "Nyandarua", - "type": "County" - }, - { - "code": "KE-36", - "name": "Nyeri", - "type": "County" - }, - { - "code": "KE-37", - "name": "Samburu", - "type": "County" - }, - { - "code": "KE-38", - "name": "Siaya", - "type": "County" - }, - { - "code": "KE-39", - "name": "Taita/Taveta", - "type": "County" - }, - { - "code": "KE-40", - "name": "Tana River", - "type": "County" - }, - { - "code": "KE-41", - "name": "Tharaka-Nithi", - "type": "County" - }, - { - "code": "KE-42", - "name": "Trans Nzoia", - "type": "County" - }, - { - "code": "KE-43", - "name": "Turkana", - "type": "County" - }, - { - "code": "KE-44", - "name": "Uasin Gishu", - "type": "County" - }, - { - "code": "KE-45", - "name": "Vihiga", - "type": "County" - }, - { - "code": "KE-46", - "name": "Wajir", - "type": "County" - }, - { - "code": "KE-47", - "name": "West Pokot", - "type": "County" - }, - { - "code": "KG-B", - "name": "Batken", - "type": "Region" - }, - { - "code": "KG-C", - "name": "Chuyskaya oblast'", - "type": "Region" - }, - { - "code": "KG-GB", - "name": "Bishkek Shaary", - "type": "City" - }, - { - "code": "KG-GO", - "name": "Gorod Osh", - "type": "City" - }, - { - "code": "KG-J", - "name": "Dzhalal-Abadskaya oblast'", - "type": "Region" - }, - { - "code": "KG-N", - "name": "Naryn", - "type": "Region" - }, - { - "code": "KG-O", - "name": "Osh", - "type": "Region" - }, - { - "code": "KG-T", - "name": "Talas", - "type": "Region" - }, - { - "code": "KG-Y", - "name": "Issyk-Kul'skaja oblast'", - "type": "Region" - }, - { - "code": "KH-1", - "name": "Banteay Mean Choăy", - "type": "Province" - }, - { - "code": "KH-10", - "name": "Kracheh", - "type": "Province" - }, - { - "code": "KH-11", - "name": "Mondol Kiri", - "type": "Province" - }, - { - "code": "KH-12", - "name": "Phnom Penh", - "type": "Autonomous municipality" - }, - { - "code": "KH-13", - "name": "Preah Vihear", - "type": "Province" - }, - { - "code": "KH-14", - "name": "Prey Veaeng", - "type": "Province" - }, - { - "code": "KH-15", - "name": "Pousaat", - "type": "Province" - }, - { - "code": "KH-16", - "name": "Rotanak Kiri", - "type": "Province" - }, - { - "code": "KH-17", - "name": "Siem Reab", - "type": "Province" - }, - { - "code": "KH-18", - "name": "Preah Sihanouk", - "type": "Province" - }, - { - "code": "KH-19", - "name": "Stoĕng Trêng", - "type": "Province" - }, - { - "code": "KH-2", - "name": "Baat Dambang", - "type": "Province" - }, - { - "code": "KH-20", - "name": "Svaay Rieng", - "type": "Province" - }, - { - "code": "KH-21", - "name": "Taakaev", - "type": "Province" - }, - { - "code": "KH-22", - "name": "Otdar Mean Chey", - "type": "Province" - }, - { - "code": "KH-23", - "name": "Kaeb", - "type": "Province" - }, - { - "code": "KH-24", - "name": "Pailin", - "type": "Province" - }, - { - "code": "KH-25", - "name": "Tbong Khmum", - "type": "Province" - }, - { - "code": "KH-3", - "name": "Kampong Chaam", - "type": "Province" - }, - { - "code": "KH-4", - "name": "Kampong Chhnang", - "type": "Province" - }, - { - "code": "KH-5", - "name": "Kampong Spueu", - "type": "Province" - }, - { - "code": "KH-6", - "name": "Kampong Thum", - "type": "Province" - }, - { - "code": "KH-7", - "name": "Kampot", - "type": "Province" - }, - { - "code": "KH-8", - "name": "Kandaal", - "type": "Province" - }, - { - "code": "KH-9", - "name": "Kaoh Kong", - "type": "Province" - }, - { - "code": "KI-G", - "name": "Gilbert Islands", - "type": "Group of islands (20 inhabited islands)" - }, - { - "code": "KI-L", - "name": "Line Islands", - "type": "Group of islands (20 inhabited islands)" - }, - { - "code": "KI-P", - "name": "Phoenix Islands", - "type": "Group of islands (20 inhabited islands)" - }, - { - "code": "KM-A", - "name": "Anjouan", - "type": "Island" - }, - { - "code": "KM-G", - "name": "Grande Comore", - "type": "Island" - }, - { - "code": "KM-M", - "name": "Mohéli", - "type": "Island" - }, - { - "code": "KN-01", - "name": "Christ Church Nichola Town", - "parent": "KN-K", - "type": "Parish" - }, - { - "code": "KN-02", - "name": "Saint Anne Sandy Point", - "parent": "KN-K", - "type": "Parish" - }, - { - "code": "KN-03", - "name": "Saint George Basseterre", - "parent": "KN-K", - "type": "Parish" - }, - { - "code": "KN-04", - "name": "Saint George Gingerland", - "parent": "KN-N", - "type": "Parish" - }, - { - "code": "KN-05", - "name": "Saint James Windward", - "parent": "KN-N", - "type": "Parish" - }, - { - "code": "KN-06", - "name": "Saint John Capisterre", - "parent": "KN-K", - "type": "Parish" - }, - { - "code": "KN-07", - "name": "Saint John Figtree", - "parent": "KN-N", - "type": "Parish" - }, - { - "code": "KN-08", - "name": "Saint Mary Cayon", - "parent": "KN-K", - "type": "Parish" - }, - { - "code": "KN-09", - "name": "Saint Paul Capisterre", - "parent": "KN-K", - "type": "Parish" - }, - { - "code": "KN-10", - "name": "Saint Paul Charlestown", - "parent": "KN-N", - "type": "Parish" - }, - { - "code": "KN-11", - "name": "Saint Peter Basseterre", - "parent": "KN-K", - "type": "Parish" - }, - { - "code": "KN-12", - "name": "Saint Thomas Lowland", - "parent": "KN-N", - "type": "Parish" - }, - { - "code": "KN-13", - "name": "Saint Thomas Middle Island", - "parent": "KN-K", - "type": "Parish" - }, - { - "code": "KN-15", - "name": "Trinity Palmetto Point", - "parent": "KN-K", - "type": "Parish" - }, - { - "code": "KN-K", - "name": "Saint Kitts", - "type": "State" - }, - { - "code": "KN-N", - "name": "Nevis", - "type": "State" - }, - { - "code": "KP-01", - "name": "P'yǒngyang", - "type": "Capital city" - }, - { - "code": "KP-02", - "name": "P'yǒngan-namdo", - "type": "Province" - }, - { - "code": "KP-03", - "name": "P'yǒngan-bukto", - "type": "Province" - }, - { - "code": "KP-04", - "name": "Chagang-do", - "type": "Province" - }, - { - "code": "KP-05", - "name": "Hwanghae-namdo", - "type": "Province" - }, - { - "code": "KP-06", - "name": "Hwanghae-bukto", - "type": "Province" - }, - { - "code": "KP-07", - "name": "Kangweonto", - "type": "Province" - }, - { - "code": "KP-08", - "name": "Hamgyǒng-namdo", - "type": "Province" - }, - { - "code": "KP-09", - "name": "Hamgyǒng-bukto", - "type": "Province" - }, - { - "code": "KP-10", - "name": "Ryanggang-do", - "type": "Province" - }, - { - "code": "KP-13", - "name": "Raseon", - "type": "Special city" - }, - { - "code": "KP-14", - "name": "Nampho", - "type": "Metropolitan city" - }, - { - "code": "KP-15", - "name": "Kaeseong", - "type": "Metropolitan city" - }, - { - "code": "KR-11", - "name": "Seoul-teukbyeolsi", - "type": "Special city" - }, - { - "code": "KR-26", - "name": "Busan-gwangyeoksi", - "type": "Metropolitan city" - }, - { - "code": "KR-27", - "name": "Daegu-gwangyeoksi", - "type": "Metropolitan city" - }, - { - "code": "KR-28", - "name": "Incheon-gwangyeoksi", - "type": "Metropolitan city" - }, - { - "code": "KR-29", - "name": "Gwangju-gwangyeoksi", - "type": "Metropolitan city" - }, - { - "code": "KR-30", - "name": "Daejeon-gwangyeoksi", - "type": "Metropolitan city" - }, - { - "code": "KR-31", - "name": "Ulsan-gwangyeoksi", - "type": "Metropolitan city" - }, - { - "code": "KR-41", - "name": "Gyeonggi-do", - "type": "Province" - }, - { - "code": "KR-42", - "name": "Gangwon-teukbyeoljachido", - "type": "Special self-governing province" - }, - { - "code": "KR-43", - "name": "Chungcheongbuk-do", - "type": "Province" - }, - { - "code": "KR-44", - "name": "Chungcheongnam-do", - "type": "Province" - }, - { - "code": "KR-45", - "name": "Jeollabuk-do", - "type": "Province" - }, - { - "code": "KR-46", - "name": "Jeollanam-do", - "type": "Province" - }, - { - "code": "KR-47", - "name": "Gyeongsangbuk-do", - "type": "Province" - }, - { - "code": "KR-48", - "name": "Gyeongsangnam-do", - "type": "Province" - }, - { - "code": "KR-49", - "name": "Jeju-teukbyeoljachido", - "type": "Special self-governing province" - }, - { - "code": "KR-50", - "name": "Sejong", - "type": "Special self-governing city" - }, - { - "code": "KW-AH", - "name": "Al Aḩmadī", - "type": "Governorate" - }, - { - "code": "KW-FA", - "name": "Al Farwānīyah", - "type": "Governorate" - }, - { - "code": "KW-HA", - "name": "Ḩawallī", - "type": "Governorate" - }, - { - "code": "KW-JA", - "name": "Al Jahrā’", - "type": "Governorate" - }, - { - "code": "KW-KU", - "name": "Al ‘Āşimah", - "type": "Governorate" - }, - { - "code": "KW-MU", - "name": "Mubārak al Kabīr", - "type": "Governorate" - }, - { - "code": "KZ-10", - "name": "Abajskaja oblast’", - "type": "Region" - }, - { - "code": "KZ-11", - "name": "Akmolinskaja oblast'", - "type": "Region" - }, - { - "code": "KZ-15", - "name": "Aktjubinskaja oblast'", - "type": "Region" - }, - { - "code": "KZ-19", - "name": "Almatinskaja oblast'", - "type": "Region" - }, - { - "code": "KZ-23", - "name": "Atyrauskaja oblast'", - "type": "Region" - }, - { - "code": "KZ-27", - "name": "Batys Qazaqstan oblysy", - "type": "Region" - }, - { - "code": "KZ-31", - "name": "Zhambyl oblysy", - "type": "Region" - }, - { - "code": "KZ-33", - "name": "Zhetisū oblysy", - "type": "Region" - }, - { - "code": "KZ-35", - "name": "Karagandinskaja oblast'", - "type": "Region" - }, - { - "code": "KZ-39", - "name": "Kostanajskaja oblast'", - "type": "Region" - }, - { - "code": "KZ-43", - "name": "Kyzylordinskaja oblast'", - "type": "Region" - }, - { - "code": "KZ-47", - "name": "Mangghystaū oblysy", - "type": "Region" - }, - { - "code": "KZ-55", - "name": "Pavlodar oblysy", - "type": "Region" - }, - { - "code": "KZ-59", - "name": "Severo-Kazahstanskaja oblast'", - "type": "Region" - }, - { - "code": "KZ-61", - "name": "Turkestankaya oblast'", - "type": "Region" - }, - { - "code": "KZ-62", - "name": "Ulytauskaja oblast’", - "type": "Region" - }, - { - "code": "KZ-63", - "name": "Shyghys Qazaqstan oblysy", - "type": "Region" - }, - { - "code": "KZ-71", - "name": "Astana", - "type": "City" - }, - { - "code": "KZ-75", - "name": "Almaty", - "type": "City" - }, - { - "code": "KZ-79", - "name": "Shymkent", - "type": "City" - }, - { - "code": "LA-AT", - "name": "Attapu", - "type": "Province" - }, - { - "code": "LA-BK", - "name": "Bokèo", - "type": "Province" - }, - { - "code": "LA-BL", - "name": "Bolikhamxai", - "type": "Province" - }, - { - "code": "LA-CH", - "name": "Champasak", - "type": "Province" - }, - { - "code": "LA-HO", - "name": "Houaphan", - "type": "Province" - }, - { - "code": "LA-KH", - "name": "Khammouan", - "type": "Province" - }, - { - "code": "LA-LM", - "name": "Louang Namtha", - "type": "Province" - }, - { - "code": "LA-LP", - "name": "Louangphabang", - "type": "Province" - }, - { - "code": "LA-OU", - "name": "Oudômxai", - "type": "Province" - }, - { - "code": "LA-PH", - "name": "Phôngsali", - "type": "Province" - }, - { - "code": "LA-SL", - "name": "Salavan", - "type": "Province" - }, - { - "code": "LA-SV", - "name": "Savannakhét", - "type": "Province" - }, - { - "code": "LA-VI", - "name": "Viangchan", - "type": "Province" - }, - { - "code": "LA-VT", - "name": "Viangchan", - "type": "Prefecture" - }, - { - "code": "LA-XA", - "name": "Xaignabouli", - "type": "Province" - }, - { - "code": "LA-XE", - "name": "Xékong", - "type": "Province" - }, - { - "code": "LA-XI", - "name": "Xiangkhouang", - "type": "Province" - }, - { - "code": "LA-XS", - "name": "Xaisômboun", - "type": "Province" - }, - { - "code": "LB-AK", - "name": "Aakkâr", - "type": "Governorate" - }, - { - "code": "LB-AS", - "name": "Ash Shimāl", - "type": "Governorate" - }, - { - "code": "LB-BA", - "name": "Bayrūt", - "type": "Governorate" - }, - { - "code": "LB-BH", - "name": "Baalbek-Hermel", - "type": "Governorate" - }, - { - "code": "LB-BI", - "name": "Al Biqā‘", - "type": "Governorate" - }, - { - "code": "LB-JA", - "name": "Al Janūb", - "type": "Governorate" - }, - { - "code": "LB-JL", - "name": "Jabal Lubnān", - "type": "Governorate" - }, - { - "code": "LB-NA", - "name": "An Nabaţīyah", - "type": "Governorate" - }, - { - "code": "LC-01", - "name": "Anse la Raye", - "type": "District" - }, - { - "code": "LC-02", - "name": "Castries", - "type": "District" - }, - { - "code": "LC-03", - "name": "Choiseul", - "type": "District" - }, - { - "code": "LC-05", - "name": "Dennery", - "type": "District" - }, - { - "code": "LC-06", - "name": "Gros Islet", - "type": "District" - }, - { - "code": "LC-07", - "name": "Laborie", - "type": "District" - }, - { - "code": "LC-08", - "name": "Micoud", - "type": "District" - }, - { - "code": "LC-10", - "name": "Soufrière", - "type": "District" - }, - { - "code": "LC-11", - "name": "Vieux Fort", - "type": "District" - }, - { - "code": "LC-12", - "name": "Canaries", - "type": "District" - }, - { - "code": "LI-01", - "name": "Balzers", - "type": "Commune" - }, - { - "code": "LI-02", - "name": "Eschen", - "type": "Commune" - }, - { - "code": "LI-03", - "name": "Gamprin", - "type": "Commune" - }, - { - "code": "LI-04", - "name": "Mauren", - "type": "Commune" - }, - { - "code": "LI-05", - "name": "Planken", - "type": "Commune" - }, - { - "code": "LI-06", - "name": "Ruggell", - "type": "Commune" - }, - { - "code": "LI-07", - "name": "Schaan", - "type": "Commune" - }, - { - "code": "LI-08", - "name": "Schellenberg", - "type": "Commune" - }, - { - "code": "LI-09", - "name": "Triesen", - "type": "Commune" - }, - { - "code": "LI-10", - "name": "Triesenberg", - "type": "Commune" - }, - { - "code": "LI-11", - "name": "Vaduz", - "type": "Commune" - }, - { - "code": "LK-1", - "name": "Western Province", - "type": "Province" - }, - { - "code": "LK-11", - "name": "Colombo", - "parent": "LK-1", - "type": "District" - }, - { - "code": "LK-12", - "name": "Gampaha", - "parent": "LK-1", - "type": "District" - }, - { - "code": "LK-13", - "name": "Kalutara", - "parent": "LK-1", - "type": "District" - }, - { - "code": "LK-2", - "name": "Central Province", - "type": "Province" - }, - { - "code": "LK-21", - "name": "Kandy", - "parent": "LK-2", - "type": "District" - }, - { - "code": "LK-22", - "name": "Matale", - "parent": "LK-2", - "type": "District" - }, - { - "code": "LK-23", - "name": "Nuwara Eliya", - "parent": "LK-2", - "type": "District" - }, - { - "code": "LK-3", - "name": "Southern Province", - "type": "Province" - }, - { - "code": "LK-31", - "name": "Galle", - "parent": "LK-3", - "type": "District" - }, - { - "code": "LK-32", - "name": "Matara", - "parent": "LK-3", - "type": "District" - }, - { - "code": "LK-33", - "name": "Hambantota", - "parent": "LK-3", - "type": "District" - }, - { - "code": "LK-4", - "name": "Northern Province", - "type": "Province" - }, - { - "code": "LK-41", - "name": "Jaffna", - "parent": "LK-4", - "type": "District" - }, - { - "code": "LK-42", - "name": "Kilinochchi", - "parent": "LK-4", - "type": "District" - }, - { - "code": "LK-43", - "name": "Mannar", - "parent": "LK-4", - "type": "District" - }, - { - "code": "LK-44", - "name": "Vavuniya", - "parent": "LK-4", - "type": "District" - }, - { - "code": "LK-45", - "name": "Mullaittivu", - "parent": "LK-4", - "type": "District" - }, - { - "code": "LK-5", - "name": "Eastern Province", - "type": "Province" - }, - { - "code": "LK-51", - "name": "Batticaloa", - "parent": "LK-5", - "type": "District" - }, - { - "code": "LK-52", - "name": "Ampara", - "parent": "LK-5", - "type": "District" - }, - { - "code": "LK-53", - "name": "Trincomalee", - "parent": "LK-5", - "type": "District" - }, - { - "code": "LK-6", - "name": "North Western Province", - "type": "Province" - }, - { - "code": "LK-61", - "name": "Kurunegala", - "parent": "LK-6", - "type": "District" - }, - { - "code": "LK-62", - "name": "Puttalam", - "parent": "LK-6", - "type": "District" - }, - { - "code": "LK-7", - "name": "North Central Province", - "type": "Province" - }, - { - "code": "LK-71", - "name": "Anuradhapura", - "parent": "LK-7", - "type": "District" - }, - { - "code": "LK-72", - "name": "Polonnaruwa", - "parent": "LK-7", - "type": "District" - }, - { - "code": "LK-8", - "name": "Uva Province", - "type": "Province" - }, - { - "code": "LK-81", - "name": "Badulla", - "parent": "LK-8", - "type": "District" - }, - { - "code": "LK-82", - "name": "Monaragala", - "parent": "LK-8", - "type": "District" - }, - { - "code": "LK-9", - "name": "Sabaragamuwa Province", - "type": "Province" - }, - { - "code": "LK-91", - "name": "Ratnapura", - "parent": "LK-9", - "type": "District" - }, - { - "code": "LK-92", - "name": "Kegalla", - "parent": "LK-9", - "type": "District" - }, - { - "code": "LR-BG", - "name": "Bong", - "type": "County" - }, - { - "code": "LR-BM", - "name": "Bomi", - "type": "County" - }, - { - "code": "LR-CM", - "name": "Grand Cape Mount", - "type": "County" - }, - { - "code": "LR-GB", - "name": "Grand Bassa", - "type": "County" - }, - { - "code": "LR-GG", - "name": "Grand Gedeh", - "type": "County" - }, - { - "code": "LR-GK", - "name": "Grand Kru", - "type": "County" - }, - { - "code": "LR-GP", - "name": "Gbarpolu", - "type": "County" - }, - { - "code": "LR-LO", - "name": "Lofa", - "type": "County" - }, - { - "code": "LR-MG", - "name": "Margibi", - "type": "County" - }, - { - "code": "LR-MO", - "name": "Montserrado", - "type": "County" - }, - { - "code": "LR-MY", - "name": "Maryland", - "type": "County" - }, - { - "code": "LR-NI", - "name": "Nimba", - "type": "County" - }, - { - "code": "LR-RG", - "name": "River Gee", - "type": "County" - }, - { - "code": "LR-RI", - "name": "River Cess", - "type": "County" - }, - { - "code": "LR-SI", - "name": "Sinoe", - "type": "County" - }, - { - "code": "LS-A", - "name": "Maseru", - "type": "District" - }, - { - "code": "LS-B", - "name": "Botha-Bothe", - "type": "District" - }, - { - "code": "LS-C", - "name": "Leribe", - "type": "District" - }, - { - "code": "LS-D", - "name": "Berea", - "type": "District" - }, - { - "code": "LS-E", - "name": "Mafeteng", - "type": "District" - }, - { - "code": "LS-F", - "name": "Mohale's Hoek", - "type": "District" - }, - { - "code": "LS-G", - "name": "Quthing", - "type": "District" - }, - { - "code": "LS-H", - "name": "Qacha's Nek", - "type": "District" - }, - { - "code": "LS-J", - "name": "Mokhotlong", - "type": "District" - }, - { - "code": "LS-K", - "name": "Thaba-Tseka", - "type": "District" - }, - { - "code": "LT-01", - "name": "Akmenė", - "parent": "LT-SA", - "type": "District municipality" - }, - { - "code": "LT-02", - "name": "Alytaus miestas", - "parent": "LT-AL", - "type": "City municipality" - }, - { - "code": "LT-03", - "name": "Alytus", - "parent": "LT-AL", - "type": "District municipality" - }, - { - "code": "LT-04", - "name": "Anykščiai", - "parent": "LT-UT", - "type": "District municipality" - }, - { - "code": "LT-05", - "name": "Birštonas", - "parent": "LT-KU", - "type": "Municipality" - }, - { - "code": "LT-06", - "name": "Biržai", - "parent": "LT-PN", - "type": "District municipality" - }, - { - "code": "LT-07", - "name": "Druskininkai", - "parent": "LT-AL", - "type": "Municipality" - }, - { - "code": "LT-08", - "name": "Elektrėnai", - "parent": "LT-VL", - "type": "Municipality" - }, - { - "code": "LT-09", - "name": "Ignalina", - "parent": "LT-UT", - "type": "District municipality" - }, - { - "code": "LT-10", - "name": "Jonava", - "parent": "LT-KU", - "type": "District municipality" - }, - { - "code": "LT-11", - "name": "Joniškis", - "parent": "LT-SA", - "type": "District municipality" - }, - { - "code": "LT-12", - "name": "Jurbarkas", - "parent": "LT-TA", - "type": "District municipality" - }, - { - "code": "LT-13", - "name": "Kaišiadorys", - "parent": "LT-KU", - "type": "District municipality" - }, - { - "code": "LT-14", - "name": "Kalvarija", - "parent": "LT-MR", - "type": "Municipality" - }, - { - "code": "LT-15", - "name": "Kauno miestas", - "parent": "LT-KU", - "type": "City municipality" - }, - { - "code": "LT-16", - "name": "Kaunas", - "parent": "LT-KU", - "type": "District municipality" - }, - { - "code": "LT-17", - "name": "Kazlų Rūdos", - "parent": "LT-MR", - "type": "Municipality" - }, - { - "code": "LT-18", - "name": "Kėdainiai", - "parent": "LT-KU", - "type": "District municipality" - }, - { - "code": "LT-19", - "name": "Kelmė", - "parent": "LT-SA", - "type": "District municipality" - }, - { - "code": "LT-20", - "name": "Klaipėdos miestas", - "parent": "LT-KL", - "type": "City municipality" - }, - { - "code": "LT-21", - "name": "Klaipėda", - "parent": "LT-KL", - "type": "District municipality" - }, - { - "code": "LT-22", - "name": "Kretinga", - "parent": "LT-KL", - "type": "District municipality" - }, - { - "code": "LT-23", - "name": "Kupiškis", - "parent": "LT-PN", - "type": "District municipality" - }, - { - "code": "LT-24", - "name": "Lazdijai", - "parent": "LT-AL", - "type": "District municipality" - }, - { - "code": "LT-25", - "name": "Marijampolė", - "parent": "LT-MR", - "type": "District municipality" - }, - { - "code": "LT-26", - "name": "Mažeikiai", - "parent": "LT-TE", - "type": "District municipality" - }, - { - "code": "LT-27", - "name": "Molėtai", - "parent": "LT-UT", - "type": "District municipality" - }, - { - "code": "LT-28", - "name": "Neringa", - "parent": "LT-KL", - "type": "Municipality" - }, - { - "code": "LT-29", - "name": "Pagėgiai", - "parent": "LT-TA", - "type": "Municipality" - }, - { - "code": "LT-30", - "name": "Pakruojis", - "parent": "LT-SA", - "type": "District municipality" - }, - { - "code": "LT-31", - "name": "Palangos miestas", - "parent": "LT-KL", - "type": "City municipality" - }, - { - "code": "LT-32", - "name": "Panevėžio miestas", - "parent": "LT-PN", - "type": "City municipality" - }, - { - "code": "LT-33", - "name": "Panevėžys", - "parent": "LT-PN", - "type": "District municipality" - }, - { - "code": "LT-34", - "name": "Pasvalys", - "parent": "LT-PN", - "type": "District municipality" - }, - { - "code": "LT-35", - "name": "Plungė", - "parent": "LT-TE", - "type": "District municipality" - }, - { - "code": "LT-36", - "name": "Prienai", - "parent": "LT-KU", - "type": "District municipality" - }, - { - "code": "LT-37", - "name": "Radviliškis", - "parent": "LT-SA", - "type": "District municipality" - }, - { - "code": "LT-38", - "name": "Raseiniai", - "parent": "LT-KU", - "type": "District municipality" - }, - { - "code": "LT-39", - "name": "Rietavas", - "parent": "LT-TE", - "type": "Municipality" - }, - { - "code": "LT-40", - "name": "Rokiškis", - "parent": "LT-PN", - "type": "District municipality" - }, - { - "code": "LT-41", - "name": "Šakiai", - "parent": "LT-MR", - "type": "District municipality" - }, - { - "code": "LT-42", - "name": "Šalčininkai", - "parent": "LT-VL", - "type": "District municipality" - }, - { - "code": "LT-43", - "name": "Šiaulių miestas", - "parent": "LT-SA", - "type": "City municipality" - }, - { - "code": "LT-44", - "name": "Šiauliai", - "parent": "LT-SA", - "type": "District municipality" - }, - { - "code": "LT-45", - "name": "Šilalė", - "parent": "LT-TA", - "type": "District municipality" - }, - { - "code": "LT-46", - "name": "Šilutė", - "parent": "LT-KL", - "type": "District municipality" - }, - { - "code": "LT-47", - "name": "Širvintos", - "parent": "LT-VL", - "type": "District municipality" - }, - { - "code": "LT-48", - "name": "Skuodas", - "parent": "LT-KL", - "type": "District municipality" - }, - { - "code": "LT-49", - "name": "Švenčionys", - "parent": "LT-VL", - "type": "District municipality" - }, - { - "code": "LT-50", - "name": "Tauragė", - "parent": "LT-TA", - "type": "District municipality" - }, - { - "code": "LT-51", - "name": "Telšiai", - "parent": "LT-TE", - "type": "District municipality" - }, - { - "code": "LT-52", - "name": "Trakai", - "parent": "LT-VL", - "type": "District municipality" - }, - { - "code": "LT-53", - "name": "Ukmergė", - "parent": "LT-VL", - "type": "District municipality" - }, - { - "code": "LT-54", - "name": "Utena", - "parent": "LT-UT", - "type": "District municipality" - }, - { - "code": "LT-55", - "name": "Varėna", - "parent": "LT-AL", - "type": "District municipality" - }, - { - "code": "LT-56", - "name": "Vilkaviškis", - "parent": "LT-MR", - "type": "District municipality" - }, - { - "code": "LT-57", - "name": "Vilniaus miestas", - "parent": "LT-VL", - "type": "City municipality" - }, - { - "code": "LT-58", - "name": "Vilnius", - "parent": "LT-VL", - "type": "District municipality" - }, - { - "code": "LT-59", - "name": "Visaginas", - "parent": "LT-UT", - "type": "Municipality" - }, - { - "code": "LT-60", - "name": "Zarasai", - "parent": "LT-UT", - "type": "District municipality" - }, - { - "code": "LT-AL", - "name": "Alytaus apskritis", - "type": "County" - }, - { - "code": "LT-KL", - "name": "Klaipėdos apskritis", - "type": "County" - }, - { - "code": "LT-KU", - "name": "Kauno apskritis", - "type": "County" - }, - { - "code": "LT-MR", - "name": "Marijampolės apskritis", - "type": "County" - }, - { - "code": "LT-PN", - "name": "Panevėžio apskritis", - "type": "County" - }, - { - "code": "LT-SA", - "name": "Šiaulių apskritis", - "type": "County" - }, - { - "code": "LT-TA", - "name": "Tauragės apskritis", - "type": "County" - }, - { - "code": "LT-TE", - "name": "Telšių apskritis", - "type": "County" - }, - { - "code": "LT-UT", - "name": "Utenos apskritis", - "type": "County" - }, - { - "code": "LT-VL", - "name": "Vilniaus apskritis", - "type": "County" - }, - { - "code": "LU-CA", - "name": "Capellen", - "type": "Canton" - }, - { - "code": "LU-CL", - "name": "Clervaux", - "type": "Canton" - }, - { - "code": "LU-DI", - "name": "Diekirch", - "type": "Canton" - }, - { - "code": "LU-EC", - "name": "Echternach", - "type": "Canton" - }, - { - "code": "LU-ES", - "name": "Esch-sur-Alzette", - "type": "Canton" - }, - { - "code": "LU-GR", - "name": "Grevenmacher", - "type": "Canton" - }, - { - "code": "LU-LU", - "name": "Luxembourg", - "type": "Canton" - }, - { - "code": "LU-ME", - "name": "Mersch", - "type": "Canton" - }, - { - "code": "LU-RD", - "name": "Redange", - "type": "Canton" - }, - { - "code": "LU-RM", - "name": "Remich", - "type": "Canton" - }, - { - "code": "LU-VD", - "name": "Vianden", - "type": "Canton" - }, - { - "code": "LU-WI", - "name": "Wiltz", - "type": "Canton" - }, - { - "code": "LV-002", - "name": "Aizkraukles novads", - "type": "Municipality" - }, - { - "code": "LV-007", - "name": "Alūksnes novads", - "type": "Municipality" - }, - { - "code": "LV-011", - "name": "Ādažu novads", - "type": "Municipality" - }, - { - "code": "LV-015", - "name": "Balvu novads", - "type": "Municipality" - }, - { - "code": "LV-016", - "name": "Bauskas novads", - "type": "Municipality" - }, - { - "code": "LV-022", - "name": "Cēsu novads", - "type": "Municipality" - }, - { - "code": "LV-026", - "name": "Dobeles novads", - "type": "Municipality" - }, - { - "code": "LV-033", - "name": "Gulbenes novads", - "type": "Municipality" - }, - { - "code": "LV-041", - "name": "Jelgavas novads", - "type": "Municipality" - }, - { - "code": "LV-042", - "name": "Jēkabpils novads", - "type": "Municipality" - }, - { - "code": "LV-047", - "name": "Krāslavas novads", - "type": "Municipality" - }, - { - "code": "LV-050", - "name": "Kuldīgas novads", - "type": "Municipality" - }, - { - "code": "LV-052", - "name": "Ķekavas novads", - "type": "Municipality" - }, - { - "code": "LV-054", - "name": "Limbažu novads", - "type": "Municipality" - }, - { - "code": "LV-056", - "name": "Līvānu novads", - "type": "Municipality" - }, - { - "code": "LV-058", - "name": "Ludzas novads", - "type": "Municipality" - }, - { - "code": "LV-059", - "name": "Madonas novads", - "type": "Municipality" - }, - { - "code": "LV-062", - "name": "Mārupes novads", - "type": "Municipality" - }, - { - "code": "LV-067", - "name": "Ogres novads", - "type": "Municipality" - }, - { - "code": "LV-068", - "name": "Olaines novads", - "type": "Municipality" - }, - { - "code": "LV-073", - "name": "Preiļu novads", - "type": "Municipality" - }, - { - "code": "LV-077", - "name": "Rēzeknes novads", - "type": "Municipality" - }, - { - "code": "LV-080", - "name": "Ropažu novads", - "type": "Municipality" - }, - { - "code": "LV-087", - "name": "Salaspils novads", - "type": "Municipality" - }, - { - "code": "LV-088", - "name": "Saldus novads", - "type": "Municipality" - }, - { - "code": "LV-089", - "name": "Saulkrastu novads", - "type": "Municipality" - }, - { - "code": "LV-091", - "name": "Siguldas novads", - "type": "Municipality" - }, - { - "code": "LV-094", - "name": "Smiltenes novads", - "type": "Municipality" - }, - { - "code": "LV-097", - "name": "Talsu novads", - "type": "Municipality" - }, - { - "code": "LV-099", - "name": "Tukuma novads", - "type": "Municipality" - }, - { - "code": "LV-101", - "name": "Valkas novads", - "type": "Municipality" - }, - { - "code": "LV-102", - "name": "Varakļānu novads", - "type": "Municipality" - }, - { - "code": "LV-106", - "name": "Ventspils novads", - "type": "Municipality" - }, - { - "code": "LV-111", - "name": "Augšdaugavas novads", - "type": "Municipality" - }, - { - "code": "LV-112", - "name": "Dienvidkurzemes Novads", - "type": "Municipality" - }, - { - "code": "LV-113", - "name": "Valmieras Novads", - "type": "Municipality" - }, - { - "code": "LV-DGV", - "name": "Daugavpils", - "type": "State city" - }, - { - "code": "LV-JEL", - "name": "Jelgava", - "type": "State city" - }, - { - "code": "LV-JUR", - "name": "Jūrmala", - "type": "State city" - }, - { - "code": "LV-LPX", - "name": "Liepāja", - "type": "State city" - }, - { - "code": "LV-REZ", - "name": "Rēzekne", - "type": "State city" - }, - { - "code": "LV-RIX", - "name": "Rīga", - "type": "State city" - }, - { - "code": "LV-VEN", - "name": "Ventspils", - "type": "State city" - }, - { - "code": "LY-BA", - "name": "Banghāzī", - "type": "Popularate" - }, - { - "code": "LY-BU", - "name": "Al Buţnān", - "type": "Popularate" - }, - { - "code": "LY-DR", - "name": "Darnah", - "type": "Popularate" - }, - { - "code": "LY-GT", - "name": "Ghāt", - "type": "Popularate" - }, - { - "code": "LY-JA", - "name": "Al Jabal al Akhḑar", - "type": "Popularate" - }, - { - "code": "LY-JG", - "name": "Al Jabal al Gharbī", - "type": "Popularate" - }, - { - "code": "LY-JI", - "name": "Al Jafārah", - "type": "Popularate" - }, - { - "code": "LY-JU", - "name": "Al Jufrah", - "type": "Popularate" - }, - { - "code": "LY-KF", - "name": "Al Kufrah", - "type": "Popularate" - }, - { - "code": "LY-MB", - "name": "Al Marqab", - "type": "Popularate" - }, - { - "code": "LY-MI", - "name": "Mişrātah", - "type": "Popularate" - }, - { - "code": "LY-MJ", - "name": "Al Marj", - "type": "Popularate" - }, - { - "code": "LY-MQ", - "name": "Murzuq", - "type": "Popularate" - }, - { - "code": "LY-NL", - "name": "Nālūt", - "type": "Popularate" - }, - { - "code": "LY-NQ", - "name": "An Nuqāţ al Khams", - "type": "Popularate" - }, - { - "code": "LY-SB", - "name": "Sabhā", - "type": "Popularate" - }, - { - "code": "LY-SR", - "name": "Surt", - "type": "Popularate" - }, - { - "code": "LY-TB", - "name": "Ţarābulus", - "type": "Popularate" - }, - { - "code": "LY-WA", - "name": "Al Wāḩāt", - "type": "Popularate" - }, - { - "code": "LY-WD", - "name": "Wādī al Ḩayāt", - "type": "Popularate" - }, - { - "code": "LY-WS", - "name": "Wādī ash Shāţi’", - "type": "Popularate" - }, - { - "code": "LY-ZA", - "name": "Az Zāwiyah", - "type": "Popularate" - }, - { - "code": "MA-01", - "name": "Tanger-Tétouan-Al Hoceïma", - "type": "Region" - }, - { - "code": "MA-02", - "name": "L'Oriental", - "type": "Region" - }, - { - "code": "MA-03", - "name": "Fès-Meknès", - "type": "Region" - }, - { - "code": "MA-04", - "name": "Rabat-Salé-Kénitra", - "type": "Region" - }, - { - "code": "MA-05", - "name": "Béni Mellal-Khénifra", - "type": "Region" - }, - { - "code": "MA-06", - "name": "Casablanca-Settat", - "type": "Region" - }, - { - "code": "MA-07", - "name": "Marrakech-Safi", - "type": "Region" - }, - { - "code": "MA-08", - "name": "Drâa-Tafilalet", - "type": "Region" - }, - { - "code": "MA-09", - "name": "Souss-Massa", - "type": "Region" - }, - { - "code": "MA-10", - "name": "Guelmim-Oued Noun (EH-partial)", - "type": "Region" - }, - { - "code": "MA-11", - "name": "Laâyoune-Sakia El Hamra (EH-partial)", - "type": "Region" - }, - { - "code": "MA-12", - "name": "Dakhla-Oued Ed-Dahab (EH)", - "type": "Region" - }, - { - "code": "MA-AGD", - "name": "Agadir-Ida-Ou-Tanane", - "parent": "MA-09", - "type": "Prefecture" - }, - { - "code": "MA-AOU", - "name": "Aousserd (EH)", - "parent": "MA-12", - "type": "Province" - }, - { - "code": "MA-ASZ", - "name": "Assa-Zag (EH-partial)", - "parent": "MA-10", - "type": "Province" - }, - { - "code": "MA-AZI", - "name": "Azilal", - "parent": "MA-05", - "type": "Province" - }, - { - "code": "MA-BEM", - "name": "Béni Mellal", - "parent": "MA-05", - "type": "Province" - }, - { - "code": "MA-BER", - "name": "Berkane", - "parent": "MA-02", - "type": "Province" - }, - { - "code": "MA-BES", - "name": "Benslimane", - "parent": "MA-06", - "type": "Province" - }, - { - "code": "MA-BOD", - "name": "Boujdour (EH)", - "parent": "MA-11", - "type": "Province" - }, - { - "code": "MA-BOM", - "name": "Boulemane", - "parent": "MA-03", - "type": "Province" - }, - { - "code": "MA-BRR", - "name": "Berrechid", - "parent": "MA-06", - "type": "Province" - }, - { - "code": "MA-CAS", - "name": "Casablanca", - "parent": "MA-06", - "type": "Prefecture" - }, - { - "code": "MA-CHE", - "name": "Chefchaouen", - "parent": "MA-01", - "type": "Province" - }, - { - "code": "MA-CHI", - "name": "Chichaoua", - "parent": "MA-07", - "type": "Province" - }, - { - "code": "MA-CHT", - "name": "Chtouka-Ait Baha", - "parent": "MA-06", - "type": "Province" - }, - { - "code": "MA-DRI", - "name": "Driouch", - "parent": "MA-02", - "type": "Province" - }, - { - "code": "MA-ERR", - "name": "Errachidia", - "parent": "MA-08", - "type": "Province" - }, - { - "code": "MA-ESI", - "name": "Essaouira", - "parent": "MA-07", - "type": "Province" - }, - { - "code": "MA-ESM", - "name": "Es-Semara (EH-partial)", - "parent": "MA-11", - "type": "Province" - }, - { - "code": "MA-FAH", - "name": "Fahs-Anjra", - "parent": "MA-01", - "type": "Province" - }, - { - "code": "MA-FES", - "name": "Fès", - "parent": "MA-03", - "type": "Prefecture" - }, - { - "code": "MA-FIG", - "name": "Figuig", - "parent": "MA-02", - "type": "Province" - }, - { - "code": "MA-FQH", - "name": "Fquih Ben Salah", - "parent": "MA-05", - "type": "Province" - }, - { - "code": "MA-GUE", - "name": "Guelmim", - "parent": "MA-10", - "type": "Province" - }, - { - "code": "MA-GUF", - "name": "Guercif", - "parent": "MA-02", - "type": "Province" - }, - { - "code": "MA-HAJ", - "name": "El Hajeb", - "parent": "MA-03", - "type": "Province" - }, - { - "code": "MA-HAO", - "name": "Al Haouz", - "parent": "MA-07", - "type": "Province" - }, - { - "code": "MA-HOC", - "name": "Al Hoceïma", - "parent": "MA-01", - "type": "Province" - }, - { - "code": "MA-IFR", - "name": "Ifrane", - "parent": "MA-03", - "type": "Province" - }, - { - "code": "MA-INE", - "name": "Inezgane-Ait Melloul", - "parent": "MA-09", - "type": "Prefecture" - }, - { - "code": "MA-JDI", - "name": "El Jadida", - "parent": "MA-06", - "type": "Province" - }, - { - "code": "MA-JRA", - "name": "Jerada", - "parent": "MA-02", - "type": "Province" - }, - { - "code": "MA-KEN", - "name": "Kénitra", - "parent": "MA-04", - "type": "Province" - }, - { - "code": "MA-KES", - "name": "El Kelâa des Sraghna", - "parent": "MA-07", - "type": "Province" - }, - { - "code": "MA-KHE", - "name": "Khémisset", - "parent": "MA-04", - "type": "Province" - }, - { - "code": "MA-KHN", - "name": "Khénifra", - "parent": "MA-05", - "type": "Province" - }, - { - "code": "MA-KHO", - "name": "Khouribga", - "parent": "MA-05", - "type": "Province" - }, - { - "code": "MA-LAA", - "name": "Laâyoune (EH)", - "parent": "MA-11", - "type": "Province" - }, - { - "code": "MA-LAR", - "name": "Larache", - "parent": "MA-01", - "type": "Province" - }, - { - "code": "MA-MAR", - "name": "Marrakech", - "parent": "MA-07", - "type": "Prefecture" - }, - { - "code": "MA-MDF", - "name": "M’diq-Fnideq", - "parent": "MA-01", - "type": "Prefecture" - }, - { - "code": "MA-MED", - "name": "Médiouna", - "parent": "MA-06", - "type": "Province" - }, - { - "code": "MA-MEK", - "name": "Meknès", - "parent": "MA-03", - "type": "Prefecture" - }, - { - "code": "MA-MID", - "name": "Midelt", - "parent": "MA-08", - "type": "Province" - }, - { - "code": "MA-MOH", - "name": "Mohammadia", - "parent": "MA-06", - "type": "Prefecture" - }, - { - "code": "MA-MOU", - "name": "Moulay Yacoub", - "parent": "MA-03", - "type": "Province" - }, - { - "code": "MA-NAD", - "name": "Nador", - "parent": "MA-02", - "type": "Province" - }, - { - "code": "MA-NOU", - "name": "Nouaceur", - "parent": "MA-04", - "type": "Province" - }, - { - "code": "MA-OUA", - "name": "Ouarzazate", - "parent": "MA-08", - "type": "Province" - }, - { - "code": "MA-OUD", - "name": "Oued Ed-Dahab (EH)", - "parent": "MA-12", - "type": "Province" - }, - { - "code": "MA-OUJ", - "name": "Oujda-Angad", - "parent": "MA-02", - "type": "Prefecture" - }, - { - "code": "MA-OUZ", - "name": "Ouezzane", - "parent": "MA-01", - "type": "Province" - }, - { - "code": "MA-RAB", - "name": "Rabat", - "parent": "MA-04", - "type": "Prefecture" - }, - { - "code": "MA-REH", - "name": "Rehamna", - "parent": "MA-07", - "type": "Province" - }, - { - "code": "MA-SAF", - "name": "Safi", - "parent": "MA-07", - "type": "Province" - }, - { - "code": "MA-SAL", - "name": "Salé", - "parent": "MA-04", - "type": "Prefecture" - }, - { - "code": "MA-SEF", - "name": "Sefrou", - "parent": "MA-03", - "type": "Province" - }, - { - "code": "MA-SET", - "name": "Settat", - "parent": "MA-06", - "type": "Province" - }, - { - "code": "MA-SIB", - "name": "Sidi Bennour", - "parent": "MA-06", - "type": "Province" - }, - { - "code": "MA-SIF", - "name": "Sidi Ifni", - "parent": "MA-10", - "type": "Province" - }, - { - "code": "MA-SIK", - "name": "Sidi Kacem", - "parent": "MA-04", - "type": "Province" - }, - { - "code": "MA-SIL", - "name": "Sidi Slimane", - "parent": "MA-04", - "type": "Province" - }, - { - "code": "MA-SKH", - "name": "Skhirate-Témara", - "parent": "MA-04", - "type": "Prefecture" - }, - { - "code": "MA-TAF", - "name": "Tarfaya (EH-partial)", - "parent": "MA-11", - "type": "Province" - }, - { - "code": "MA-TAI", - "name": "Taourirt", - "parent": "MA-02", - "type": "Province" - }, - { - "code": "MA-TAO", - "name": "Taounate", - "parent": "MA-03", - "type": "Province" - }, - { - "code": "MA-TAR", - "name": "Taroudannt", - "parent": "MA-09", - "type": "Province" - }, - { - "code": "MA-TAT", - "name": "Tata", - "parent": "MA-09", - "type": "Province" - }, - { - "code": "MA-TAZ", - "name": "Taza", - "parent": "MA-03", - "type": "Province" - }, - { - "code": "MA-TET", - "name": "Tétouan", - "parent": "MA-01", - "type": "Province" - }, - { - "code": "MA-TIN", - "name": "Tinghir", - "parent": "MA-08", - "type": "Province" - }, - { - "code": "MA-TIZ", - "name": "Tiznit", - "parent": "MA-09", - "type": "Province" - }, - { - "code": "MA-TNG", - "name": "Tanger-Assilah", - "parent": "MA-01", - "type": "Prefecture" - }, - { - "code": "MA-TNT", - "name": "Tan-Tan (EH-partial)", - "parent": "MA-10", - "type": "Province" - }, - { - "code": "MA-YUS", - "name": "Youssoufia", - "parent": "MA-07", - "type": "Province" - }, - { - "code": "MA-ZAG", - "name": "Zagora", - "parent": "MA-08", - "type": "Province" - }, - { - "code": "MC-CL", - "name": "La Colle", - "type": "Quarter" - }, - { - "code": "MC-CO", - "name": "La Condamine", - "type": "Quarter" - }, - { - "code": "MC-FO", - "name": "Fontvieille", - "type": "Quarter" - }, - { - "code": "MC-GA", - "name": "La Gare", - "type": "Quarter" - }, - { - "code": "MC-JE", - "name": "Jardin Exotique", - "type": "Quarter" - }, - { - "code": "MC-LA", - "name": "Larvotto", - "type": "Quarter" - }, - { - "code": "MC-MA", - "name": "Malbousquet", - "type": "Quarter" - }, - { - "code": "MC-MC", - "name": "Monte-Carlo", - "type": "Quarter" - }, - { - "code": "MC-MG", - "name": "Moneghetti", - "type": "Quarter" - }, - { - "code": "MC-MO", - "name": "Monaco-Ville", - "type": "Quarter" - }, - { - "code": "MC-MU", - "name": "Moulins", - "type": "Quarter" - }, - { - "code": "MC-PH", - "name": "Port-Hercule", - "type": "Quarter" - }, - { - "code": "MC-SD", - "name": "Sainte-Dévote", - "type": "Quarter" - }, - { - "code": "MC-SO", - "name": "La Source", - "type": "Quarter" - }, - { - "code": "MC-SP", - "name": "Spélugues", - "type": "Quarter" - }, - { - "code": "MC-SR", - "name": "Saint-Roman", - "type": "Quarter" - }, - { - "code": "MC-VR", - "name": "Vallon de la Rousse", - "type": "Quarter" - }, - { - "code": "MD-AN", - "name": "Anenii Noi", - "type": "District" - }, - { - "code": "MD-BA", - "name": "Bălți", - "type": "City" - }, - { - "code": "MD-BD", - "name": "Bender [Tighina]", - "type": "City" - }, - { - "code": "MD-BR", - "name": "Briceni", - "type": "District" - }, - { - "code": "MD-BS", - "name": "Basarabeasca", - "type": "District" - }, - { - "code": "MD-CA", - "name": "Cahul", - "type": "District" - }, - { - "code": "MD-CL", - "name": "Călărași", - "type": "District" - }, - { - "code": "MD-CM", - "name": "Cimișlia", - "type": "District" - }, - { - "code": "MD-CR", - "name": "Criuleni", - "type": "District" - }, - { - "code": "MD-CS", - "name": "Căușeni", - "type": "District" - }, - { - "code": "MD-CT", - "name": "Cantemir", - "type": "District" - }, - { - "code": "MD-CU", - "name": "Chișinău", - "type": "City" - }, - { - "code": "MD-DO", - "name": "Dondușeni", - "type": "District" - }, - { - "code": "MD-DR", - "name": "Drochia", - "type": "District" - }, - { - "code": "MD-DU", - "name": "Dubăsari", - "type": "District" - }, - { - "code": "MD-ED", - "name": "Edineț", - "type": "District" - }, - { - "code": "MD-FA", - "name": "Fălești", - "type": "District" - }, - { - "code": "MD-FL", - "name": "Florești", - "type": "District" - }, - { - "code": "MD-GA", - "name": "Găgăuzia, Unitatea teritorială autonomă (UTAG)", - "type": "Autonomous territorial unit" - }, - { - "code": "MD-GL", - "name": "Glodeni", - "type": "District" - }, - { - "code": "MD-HI", - "name": "Hîncești", - "type": "District" - }, - { - "code": "MD-IA", - "name": "Ialoveni", - "type": "District" - }, - { - "code": "MD-LE", - "name": "Leova", - "type": "District" - }, - { - "code": "MD-NI", - "name": "Nisporeni", - "type": "District" - }, - { - "code": "MD-OC", - "name": "Ocnița", - "type": "District" - }, - { - "code": "MD-OR", - "name": "Orhei", - "type": "District" - }, - { - "code": "MD-RE", - "name": "Rezina", - "type": "District" - }, - { - "code": "MD-RI", - "name": "Rîșcani", - "type": "District" - }, - { - "code": "MD-SD", - "name": "Șoldănești", - "type": "District" - }, - { - "code": "MD-SI", - "name": "Sîngerei", - "type": "District" - }, - { - "code": "MD-SN", - "name": "Stînga Nistrului, unitatea teritorială din", - "type": "Territorial unit" - }, - { - "code": "MD-SO", - "name": "Soroca", - "type": "District" - }, - { - "code": "MD-ST", - "name": "Strășeni", - "type": "District" - }, - { - "code": "MD-SV", - "name": "Ștefan Vodă", - "type": "District" - }, - { - "code": "MD-TA", - "name": "Taraclia", - "type": "District" - }, - { - "code": "MD-TE", - "name": "Telenești", - "type": "District" - }, - { - "code": "MD-UN", - "name": "Ungheni", - "type": "District" - }, - { - "code": "ME-01", - "name": "Andrijevica", - "type": "Municipality" - }, - { - "code": "ME-02", - "name": "Bar", - "type": "Municipality" - }, - { - "code": "ME-03", - "name": "Berane", - "type": "Municipality" - }, - { - "code": "ME-04", - "name": "Bijelo Polje", - "type": "Municipality" - }, - { - "code": "ME-05", - "name": "Budva", - "type": "Municipality" - }, - { - "code": "ME-06", - "name": "Cetinje", - "type": "Municipality" - }, - { - "code": "ME-07", - "name": "Danilovgrad", - "type": "Municipality" - }, - { - "code": "ME-08", - "name": "Herceg-Novi", - "type": "Municipality" - }, - { - "code": "ME-09", - "name": "Kolašin", - "type": "Municipality" - }, - { - "code": "ME-10", - "name": "Kotor", - "type": "Municipality" - }, - { - "code": "ME-11", - "name": "Mojkovac", - "type": "Municipality" - }, - { - "code": "ME-12", - "name": "Nikšić", - "type": "Municipality" - }, - { - "code": "ME-13", - "name": "Plav", - "type": "Municipality" - }, - { - "code": "ME-14", - "name": "Pljevlja", - "type": "Municipality" - }, - { - "code": "ME-15", - "name": "Plužine", - "type": "Municipality" - }, - { - "code": "ME-16", - "name": "Podgorica", - "type": "Municipality" - }, - { - "code": "ME-17", - "name": "Rožaje", - "type": "Municipality" - }, - { - "code": "ME-18", - "name": "Šavnik", - "type": "Municipality" - }, - { - "code": "ME-19", - "name": "Tivat", - "type": "Municipality" - }, - { - "code": "ME-20", - "name": "Ulcinj", - "type": "Municipality" - }, - { - "code": "ME-21", - "name": "Žabljak", - "type": "Municipality" - }, - { - "code": "ME-22", - "name": "Gusinje", - "type": "Municipality" - }, - { - "code": "ME-23", - "name": "Petnjica", - "type": "Municipality" - }, - { - "code": "ME-24", - "name": "Tuzi", - "type": "Municipality" - }, - { - "code": "ME-25", - "name": "Zeta", - "type": "Municipality" - }, - { - "code": "MG-A", - "name": "Toamasina", - "type": "Province" - }, - { - "code": "MG-D", - "name": "Antsiranana", - "type": "Province" - }, - { - "code": "MG-F", - "name": "Fianarantsoa", - "type": "Province" - }, - { - "code": "MG-M", - "name": "Mahajanga", - "type": "Province" - }, - { - "code": "MG-T", - "name": "Antananarivo", - "type": "Province" - }, - { - "code": "MG-U", - "name": "Toliara", - "type": "Province" - }, - { - "code": "MH-ALK", - "name": "Ailuk", - "parent": "MH-T", - "type": "Municipality" - }, - { - "code": "MH-ALL", - "name": "Ailinglaplap", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-ARN", - "name": "Arno", - "parent": "MH-T", - "type": "Municipality" - }, - { - "code": "MH-AUR", - "name": "Aur", - "parent": "MH-T", - "type": "Municipality" - }, - { - "code": "MH-EBO", - "name": "Ebon", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-ENI", - "name": "Enewetak & Ujelang", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-JAB", - "name": "Jabat", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-JAL", - "name": "Jaluit", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-KIL", - "name": "Bikini & Kili", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-KWA", - "name": "Kwajalein", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-L", - "name": "Ralik chain", - "type": "Chain (of islands)" - }, - { - "code": "MH-LAE", - "name": "Lae", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-LIB", - "name": "Lib", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-LIK", - "name": "Likiep", - "parent": "MH-T", - "type": "Municipality" - }, - { - "code": "MH-MAJ", - "name": "Majuro", - "parent": "MH-T", - "type": "Municipality" - }, - { - "code": "MH-MAL", - "name": "Maloelap", - "parent": "MH-T", - "type": "Municipality" - }, - { - "code": "MH-MEJ", - "name": "Mejit", - "parent": "MH-T", - "type": "Municipality" - }, - { - "code": "MH-MIL", - "name": "Mili", - "parent": "MH-T", - "type": "Municipality" - }, - { - "code": "MH-NMK", - "name": "Namdrik", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-NMU", - "name": "Namu", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-RON", - "name": "Rongelap", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-T", - "name": "Ratak chain", - "type": "Chain (of islands)" - }, - { - "code": "MH-UJA", - "name": "Ujae", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-UTI", - "name": "Utrik", - "parent": "MH-T", - "type": "Municipality" - }, - { - "code": "MH-WTH", - "name": "Wotho", - "parent": "MH-L", - "type": "Municipality" - }, - { - "code": "MH-WTJ", - "name": "Wotje", - "parent": "MH-T", - "type": "Municipality" - }, - { - "code": "MK-101", - "name": "Veles", - "type": "Municipality" - }, - { - "code": "MK-102", - "name": "Gradsko", - "type": "Municipality" - }, - { - "code": "MK-103", - "name": "Demir Kapija", - "type": "Municipality" - }, - { - "code": "MK-104", - "name": "Kavadarci", - "type": "Municipality" - }, - { - "code": "MK-105", - "name": "Lozovo", - "type": "Municipality" - }, - { - "code": "MK-106", - "name": "Negotino", - "type": "Municipality" - }, - { - "code": "MK-107", - "name": "Rosoman", - "type": "Municipality" - }, - { - "code": "MK-108", - "name": "Sveti Nikole", - "type": "Municipality" - }, - { - "code": "MK-109", - "name": "Čaška", - "type": "Municipality" - }, - { - "code": "MK-201", - "name": "Berovo", - "type": "Municipality" - }, - { - "code": "MK-202", - "name": "Vinica", - "type": "Municipality" - }, - { - "code": "MK-203", - "name": "Delčevo", - "type": "Municipality" - }, - { - "code": "MK-204", - "name": "Zrnovci", - "type": "Municipality" - }, - { - "code": "MK-205", - "name": "Karbinci", - "type": "Municipality" - }, - { - "code": "MK-206", - "name": "Kočani", - "type": "Municipality" - }, - { - "code": "MK-207", - "name": "Makedonska Kamenica", - "type": "Municipality" - }, - { - "code": "MK-208", - "name": "Pehčevo", - "type": "Municipality" - }, - { - "code": "MK-209", - "name": "Probištip", - "type": "Municipality" - }, - { - "code": "MK-210", - "name": "Češinovo-Obleševo", - "type": "Municipality" - }, - { - "code": "MK-211", - "name": "Štip", - "type": "Municipality" - }, - { - "code": "MK-301", - "name": "Vevčani", - "type": "Municipality" - }, - { - "code": "MK-303", - "name": "Debar", - "type": "Municipality" - }, - { - "code": "MK-304", - "name": "Debrca", - "type": "Municipality" - }, - { - "code": "MK-307", - "name": "Kičevo", - "type": "Municipality" - }, - { - "code": "MK-308", - "name": "Makedonski Brod", - "type": "Municipality" - }, - { - "code": "MK-310", - "name": "Ohrid", - "type": "Municipality" - }, - { - "code": "MK-311", - "name": "Plasnica", - "type": "Municipality" - }, - { - "code": "MK-312", - "name": "Struga", - "type": "Municipality" - }, - { - "code": "MK-313", - "name": "Centar Župa", - "type": "Municipality" - }, - { - "code": "MK-401", - "name": "Bogdanci", - "type": "Municipality" - }, - { - "code": "MK-402", - "name": "Bosilovo", - "type": "Municipality" - }, - { - "code": "MK-403", - "name": "Valandovo", - "type": "Municipality" - }, - { - "code": "MK-404", - "name": "Vasilevo", - "type": "Municipality" - }, - { - "code": "MK-405", - "name": "Gevgelija", - "type": "Municipality" - }, - { - "code": "MK-406", - "name": "Dojran", - "type": "Municipality" - }, - { - "code": "MK-407", - "name": "Konče", - "type": "Municipality" - }, - { - "code": "MK-408", - "name": "Novo Selo", - "type": "Municipality" - }, - { - "code": "MK-409", - "name": "Radoviš", - "type": "Municipality" - }, - { - "code": "MK-410", - "name": "Strumica", - "type": "Municipality" - }, - { - "code": "MK-501", - "name": "Bitola", - "type": "Municipality" - }, - { - "code": "MK-502", - "name": "Demir Hisar", - "type": "Municipality" - }, - { - "code": "MK-503", - "name": "Dolneni", - "type": "Municipality" - }, - { - "code": "MK-504", - "name": "Krivogaštani", - "type": "Municipality" - }, - { - "code": "MK-505", - "name": "Kruševo", - "type": "Municipality" - }, - { - "code": "MK-506", - "name": "Mogila", - "type": "Municipality" - }, - { - "code": "MK-507", - "name": "Novaci", - "type": "Municipality" - }, - { - "code": "MK-508", - "name": "Prilep", - "type": "Municipality" - }, - { - "code": "MK-509", - "name": "Resen", - "type": "Municipality" - }, - { - "code": "MK-601", - "name": "Bogovinje", - "type": "Municipality" - }, - { - "code": "MK-602", - "name": "Brvenica", - "type": "Municipality" - }, - { - "code": "MK-603", - "name": "Vrapčište", - "type": "Municipality" - }, - { - "code": "MK-604", - "name": "Gostivar", - "type": "Municipality" - }, - { - "code": "MK-605", - "name": "Želino", - "type": "Municipality" - }, - { - "code": "MK-606", - "name": "Jegunovce", - "type": "Municipality" - }, - { - "code": "MK-607", - "name": "Mavrovo i Rostuše", - "type": "Municipality" - }, - { - "code": "MK-608", - "name": "Tearce", - "type": "Municipality" - }, - { - "code": "MK-609", - "name": "Tetovo", - "type": "Municipality" - }, - { - "code": "MK-701", - "name": "Kratovo", - "type": "Municipality" - }, - { - "code": "MK-702", - "name": "Kriva Palanka", - "type": "Municipality" - }, - { - "code": "MK-703", - "name": "Kumanovo", - "type": "Municipality" - }, - { - "code": "MK-704", - "name": "Lipkovo", - "type": "Municipality" - }, - { - "code": "MK-705", - "name": "Rankovce", - "type": "Municipality" - }, - { - "code": "MK-706", - "name": "Staro Nagoričane", - "type": "Municipality" - }, - { - "code": "MK-801", - "name": "Aerodrom †", - "type": "Municipality" - }, - { - "code": "MK-802", - "name": "Aračinovo", - "type": "Municipality" - }, - { - "code": "MK-803", - "name": "Butel †", - "type": "Municipality" - }, - { - "code": "MK-804", - "name": "Gazi Baba †", - "type": "Municipality" - }, - { - "code": "MK-805", - "name": "Gjorče Petrov †", - "type": "Municipality" - }, - { - "code": "MK-806", - "name": "Zelenikovo", - "type": "Municipality" - }, - { - "code": "MK-807", - "name": "Ilinden", - "type": "Municipality" - }, - { - "code": "MK-808", - "name": "Karpoš †", - "type": "Municipality" - }, - { - "code": "MK-809", - "name": "Kisela Voda †", - "type": "Municipality" - }, - { - "code": "MK-810", - "name": "Petrovec", - "type": "Municipality" - }, - { - "code": "MK-811", - "name": "Saraj †", - "type": "Municipality" - }, - { - "code": "MK-812", - "name": "Sopište", - "type": "Municipality" - }, - { - "code": "MK-813", - "name": "Studeničani", - "type": "Municipality" - }, - { - "code": "MK-814", - "name": "Centar †", - "type": "Municipality" - }, - { - "code": "MK-815", - "name": "Čair †", - "type": "Municipality" - }, - { - "code": "MK-816", - "name": "Čučer-Sandevo", - "type": "Municipality" - }, - { - "code": "MK-817", - "name": "Šuto Orizari †", - "type": "Municipality" - }, - { - "code": "ML-1", - "name": "Kayes", - "type": "Region" - }, - { - "code": "ML-10", - "name": "Taoudénit", - "type": "Region" - }, - { - "code": "ML-2", - "name": "Koulikoro", - "type": "Region" - }, - { - "code": "ML-3", - "name": "Sikasso", - "type": "Region" - }, - { - "code": "ML-4", - "name": "Ségou", - "type": "Region" - }, - { - "code": "ML-5", - "name": "Mopti", - "type": "Region" - }, - { - "code": "ML-6", - "name": "Tombouctou", - "type": "Region" - }, - { - "code": "ML-7", - "name": "Gao", - "type": "Region" - }, - { - "code": "ML-8", - "name": "Kidal", - "type": "Region" - }, - { - "code": "ML-9", - "name": "Ménaka", - "type": "Region" - }, - { - "code": "ML-BKO", - "name": "Bamako", - "type": "District" - }, - { - "code": "MM-01", - "name": "Sagaing", - "type": "Region" - }, - { - "code": "MM-02", - "name": "Bago", - "type": "Region" - }, - { - "code": "MM-03", - "name": "Magway", - "type": "Region" - }, - { - "code": "MM-04", - "name": "Mandalay", - "type": "Region" - }, - { - "code": "MM-05", - "name": "Tanintharyi", - "type": "Region" - }, - { - "code": "MM-06", - "name": "Yangon", - "type": "Region" - }, - { - "code": "MM-07", - "name": "Ayeyarwady", - "type": "Region" - }, - { - "code": "MM-11", - "name": "Kachin", - "type": "State" - }, - { - "code": "MM-12", - "name": "Kayah", - "type": "State" - }, - { - "code": "MM-13", - "name": "Kayin", - "type": "State" - }, - { - "code": "MM-14", - "name": "Chin", - "type": "State" - }, - { - "code": "MM-15", - "name": "Mon", - "type": "State" - }, - { - "code": "MM-16", - "name": "Rakhine", - "type": "State" - }, - { - "code": "MM-17", - "name": "Shan", - "type": "State" - }, - { - "code": "MM-18", - "name": "Nay Pyi Taw", - "type": "Union territory" - }, - { - "code": "MN-035", - "name": "Orhon", - "type": "Province" - }, - { - "code": "MN-037", - "name": "Darhan uul", - "type": "Province" - }, - { - "code": "MN-039", - "name": "Hentiy", - "type": "Province" - }, - { - "code": "MN-041", - "name": "Hövsgöl", - "type": "Province" - }, - { - "code": "MN-043", - "name": "Hovd", - "type": "Province" - }, - { - "code": "MN-046", - "name": "Uvs", - "type": "Province" - }, - { - "code": "MN-047", - "name": "Töv", - "type": "Province" - }, - { - "code": "MN-049", - "name": "Selenge", - "type": "Province" - }, - { - "code": "MN-051", - "name": "Sühbaatar", - "type": "Province" - }, - { - "code": "MN-053", - "name": "Ömnögovĭ", - "type": "Province" - }, - { - "code": "MN-055", - "name": "Övörhangay", - "type": "Province" - }, - { - "code": "MN-057", - "name": "Dzavhan", - "type": "Province" - }, - { - "code": "MN-059", - "name": "Dundgovĭ", - "type": "Province" - }, - { - "code": "MN-061", - "name": "Dornod", - "type": "Province" - }, - { - "code": "MN-063", - "name": "Dornogovĭ", - "type": "Province" - }, - { - "code": "MN-064", - "name": "Govĭ-Sümber", - "type": "Province" - }, - { - "code": "MN-065", - "name": "Govĭ-Altay", - "type": "Province" - }, - { - "code": "MN-067", - "name": "Bulgan", - "type": "Province" - }, - { - "code": "MN-069", - "name": "Bayanhongor", - "type": "Province" - }, - { - "code": "MN-071", - "name": "Bayan-Ölgiy", - "type": "Province" - }, - { - "code": "MN-073", - "name": "Arhangay", - "type": "Province" - }, - { - "code": "MN-1", - "name": "Ulaanbaatar", - "type": "Capital city" - }, - { - "code": "MR-01", - "name": "Hodh ech Chargui", - "type": "Region" - }, - { - "code": "MR-02", - "name": "Hodh el Gharbi", - "type": "Region" - }, - { - "code": "MR-03", - "name": "Assaba", - "type": "Region" - }, - { - "code": "MR-04", - "name": "Gorgol", - "type": "Region" - }, - { - "code": "MR-05", - "name": "Brakna", - "type": "Region" - }, - { - "code": "MR-06", - "name": "Trarza", - "type": "Region" - }, - { - "code": "MR-07", - "name": "Adrar", - "type": "Region" - }, - { - "code": "MR-08", - "name": "Dakhlet Nouâdhibou", - "type": "Region" - }, - { - "code": "MR-09", - "name": "Tagant", - "type": "Region" - }, - { - "code": "MR-10", - "name": "Guidimaka", - "type": "Region" - }, - { - "code": "MR-11", - "name": "Tiris Zemmour", - "type": "Region" - }, - { - "code": "MR-12", - "name": "Inchiri", - "type": "Region" - }, - { - "code": "MR-13", - "name": "Nouakchott Ouest", - "type": "Region" - }, - { - "code": "MR-14", - "name": "Nouakchott Nord", - "type": "Region" - }, - { - "code": "MR-15", - "name": "Nouakchott Sud", - "type": "Region" - }, - { - "code": "MT-01", - "name": "Attard", - "type": "Local council" - }, - { - "code": "MT-02", - "name": "Balzan", - "type": "Local council" - }, - { - "code": "MT-03", - "name": "Birgu", - "type": "Local council" - }, - { - "code": "MT-04", - "name": "Birkirkara", - "type": "Local council" - }, - { - "code": "MT-05", - "name": "Birżebbuġa", - "type": "Local council" - }, - { - "code": "MT-06", - "name": "Bormla", - "type": "Local council" - }, - { - "code": "MT-07", - "name": "Dingli", - "type": "Local council" - }, - { - "code": "MT-08", - "name": "Fgura", - "type": "Local council" - }, - { - "code": "MT-09", - "name": "Floriana", - "type": "Local council" - }, - { - "code": "MT-10", - "name": "Fontana", - "type": "Local council" - }, - { - "code": "MT-11", - "name": "Gudja", - "type": "Local council" - }, - { - "code": "MT-12", - "name": "Gżira", - "type": "Local council" - }, - { - "code": "MT-13", - "name": "Għajnsielem", - "type": "Local council" - }, - { - "code": "MT-14", - "name": "Għarb", - "type": "Local council" - }, - { - "code": "MT-15", - "name": "Għargħur", - "type": "Local council" - }, - { - "code": "MT-16", - "name": "Għasri", - "type": "Local council" - }, - { - "code": "MT-17", - "name": "Għaxaq", - "type": "Local council" - }, - { - "code": "MT-18", - "name": "Ħamrun", - "type": "Local council" - }, - { - "code": "MT-19", - "name": "Iklin", - "type": "Local council" - }, - { - "code": "MT-20", - "name": "Isla", - "type": "Local council" - }, - { - "code": "MT-21", - "name": "Kalkara", - "type": "Local council" - }, - { - "code": "MT-22", - "name": "Kerċem", - "type": "Local council" - }, - { - "code": "MT-23", - "name": "Kirkop", - "type": "Local council" - }, - { - "code": "MT-24", - "name": "Lija", - "type": "Local council" - }, - { - "code": "MT-25", - "name": "Luqa", - "type": "Local council" - }, - { - "code": "MT-26", - "name": "Marsa", - "type": "Local council" - }, - { - "code": "MT-27", - "name": "Marsaskala", - "type": "Local council" - }, - { - "code": "MT-28", - "name": "Marsaxlokk", - "type": "Local council" - }, - { - "code": "MT-29", - "name": "Mdina", - "type": "Local council" - }, - { - "code": "MT-30", - "name": "Mellieħa", - "type": "Local council" - }, - { - "code": "MT-31", - "name": "Mġarr", - "type": "Local council" - }, - { - "code": "MT-32", - "name": "Mosta", - "type": "Local council" - }, - { - "code": "MT-33", - "name": "Mqabba", - "type": "Local council" - }, - { - "code": "MT-34", - "name": "Msida", - "type": "Local council" - }, - { - "code": "MT-35", - "name": "Mtarfa", - "type": "Local council" - }, - { - "code": "MT-36", - "name": "Munxar", - "type": "Local council" - }, - { - "code": "MT-37", - "name": "Nadur", - "type": "Local council" - }, - { - "code": "MT-38", - "name": "Naxxar", - "type": "Local council" - }, - { - "code": "MT-39", - "name": "Paola", - "type": "Local council" - }, - { - "code": "MT-40", - "name": "Pembroke", - "type": "Local council" - }, - { - "code": "MT-41", - "name": "Pietà", - "type": "Local council" - }, - { - "code": "MT-42", - "name": "Qala", - "type": "Local council" - }, - { - "code": "MT-43", - "name": "Qormi", - "type": "Local council" - }, - { - "code": "MT-44", - "name": "Qrendi", - "type": "Local council" - }, - { - "code": "MT-45", - "name": "Rabat Gozo", - "type": "Local council" - }, - { - "code": "MT-46", - "name": "Rabat Malta", - "type": "Local council" - }, - { - "code": "MT-47", - "name": "Safi", - "type": "Local council" - }, - { - "code": "MT-48", - "name": "Saint Julian's", - "type": "Local council" - }, - { - "code": "MT-49", - "name": "Saint John", - "type": "Local council" - }, - { - "code": "MT-50", - "name": "Saint Lawrence", - "type": "Local council" - }, - { - "code": "MT-51", - "name": "Saint Paul's Bay", - "type": "Local council" - }, - { - "code": "MT-52", - "name": "Sannat", - "type": "Local council" - }, - { - "code": "MT-53", - "name": "Saint Lucia's", - "type": "Local council" - }, - { - "code": "MT-54", - "name": "Santa Venera", - "type": "Local council" - }, - { - "code": "MT-55", - "name": "Siġġiewi", - "type": "Local council" - }, - { - "code": "MT-56", - "name": "Sliema", - "type": "Local council" - }, - { - "code": "MT-57", - "name": "Swieqi", - "type": "Local council" - }, - { - "code": "MT-58", - "name": "Ta' Xbiex", - "type": "Local council" - }, - { - "code": "MT-59", - "name": "Tarxien", - "type": "Local council" - }, - { - "code": "MT-60", - "name": "Valletta", - "type": "Local council" - }, - { - "code": "MT-61", - "name": "Xagħra", - "type": "Local council" - }, - { - "code": "MT-62", - "name": "Xewkija", - "type": "Local council" - }, - { - "code": "MT-63", - "name": "Xgħajra", - "type": "Local council" - }, - { - "code": "MT-64", - "name": "Żabbar", - "type": "Local council" - }, - { - "code": "MT-65", - "name": "Żebbuġ Gozo", - "type": "Local council" - }, - { - "code": "MT-66", - "name": "Żebbuġ Malta", - "type": "Local council" - }, - { - "code": "MT-67", - "name": "Żejtun", - "type": "Local council" - }, - { - "code": "MT-68", - "name": "Żurrieq", - "type": "Local council" - }, - { - "code": "MU-AG", - "name": "Agalega Islands", - "type": "Dependency" - }, - { - "code": "MU-BL", - "name": "Black River", - "type": "District" - }, - { - "code": "MU-CC", - "name": "Cargados Carajos Shoals", - "type": "Dependency" - }, - { - "code": "MU-FL", - "name": "Flacq", - "type": "District" - }, - { - "code": "MU-GP", - "name": "Grand Port", - "type": "District" - }, - { - "code": "MU-MO", - "name": "Moka", - "type": "District" - }, - { - "code": "MU-PA", - "name": "Pamplemousses", - "type": "District" - }, - { - "code": "MU-PL", - "name": "Port Louis", - "type": "District" - }, - { - "code": "MU-PW", - "name": "Plaines Wilhems", - "type": "District" - }, - { - "code": "MU-RO", - "name": "Rodrigues Island", - "type": "Dependency" - }, - { - "code": "MU-RR", - "name": "Rivière du Rempart", - "type": "District" - }, - { - "code": "MU-SA", - "name": "Savanne", - "type": "District" - }, - { - "code": "MV-00", - "name": "South Ari Atoll", - "type": "Administrative atoll" - }, - { - "code": "MV-01", - "name": "Addu City", - "type": "City" - }, - { - "code": "MV-02", - "name": "North Ari Atoll", - "type": "Administrative atoll" - }, - { - "code": "MV-03", - "name": "Faadhippolhu", - "type": "Administrative atoll" - }, - { - "code": "MV-04", - "name": "Felidhu Atoll", - "type": "Administrative atoll" - }, - { - "code": "MV-05", - "name": "Hahdhunmathi", - "type": "Administrative atoll" - }, - { - "code": "MV-07", - "name": "North Thiladhunmathi", - "type": "Administrative atoll" - }, - { - "code": "MV-08", - "name": "Kolhumadulu", - "type": "Administrative atoll" - }, - { - "code": "MV-12", - "name": "Mulaku Atoll", - "type": "Administrative atoll" - }, - { - "code": "MV-13", - "name": "North Maalhosmadulu", - "type": "Administrative atoll" - }, - { - "code": "MV-14", - "name": "North Nilandhe Atoll", - "type": "Administrative atoll" - }, - { - "code": "MV-17", - "name": "South Nilandhe Atoll", - "type": "Administrative atoll" - }, - { - "code": "MV-20", - "name": "South Maalhosmadulu", - "type": "Administrative atoll" - }, - { - "code": "MV-23", - "name": "South Thiladhunmathi", - "type": "Administrative atoll" - }, - { - "code": "MV-24", - "name": "North Miladhunmadulu", - "type": "Administrative atoll" - }, - { - "code": "MV-25", - "name": "South Miladhunmadulu", - "type": "Administrative atoll" - }, - { - "code": "MV-26", - "name": "Male Atoll", - "type": "Administrative atoll" - }, - { - "code": "MV-27", - "name": "North Huvadhu Atoll", - "type": "Administrative atoll" - }, - { - "code": "MV-28", - "name": "South Huvadhu Atoll", - "type": "Administrative atoll" - }, - { - "code": "MV-29", - "name": "Fuvammulah", - "type": "Administrative atoll" - }, - { - "code": "MV-MLE", - "name": "Male", - "type": "City" - }, - { - "code": "MW-BA", - "name": "Balaka", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-BL", - "name": "Blantyre", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-C", - "name": "Central Region", - "type": "Region" - }, - { - "code": "MW-CK", - "name": "Chikwawa", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-CR", - "name": "Chiradzulu", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-CT", - "name": "Chitipa", - "parent": "MW-N", - "type": "District" - }, - { - "code": "MW-DE", - "name": "Dedza", - "parent": "MW-C", - "type": "District" - }, - { - "code": "MW-DO", - "name": "Dowa", - "parent": "MW-C", - "type": "District" - }, - { - "code": "MW-KR", - "name": "Karonga", - "parent": "MW-N", - "type": "District" - }, - { - "code": "MW-KS", - "name": "Kasungu", - "parent": "MW-C", - "type": "District" - }, - { - "code": "MW-LI", - "name": "Lilongwe", - "parent": "MW-C", - "type": "District" - }, - { - "code": "MW-LK", - "name": "Likoma", - "parent": "MW-N", - "type": "District" - }, - { - "code": "MW-MC", - "name": "Mchinji", - "parent": "MW-C", - "type": "District" - }, - { - "code": "MW-MG", - "name": "Mangochi", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-MH", - "name": "Machinga", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-MU", - "name": "Mulanje", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-MW", - "name": "Mwanza", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-MZ", - "name": "Mzimba", - "parent": "MW-N", - "type": "District" - }, - { - "code": "MW-N", - "name": "Northern Region", - "type": "Region" - }, - { - "code": "MW-NB", - "name": "Nkhata Bay", - "parent": "MW-N", - "type": "District" - }, - { - "code": "MW-NE", - "name": "Neno", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-NI", - "name": "Ntchisi", - "parent": "MW-C", - "type": "District" - }, - { - "code": "MW-NK", - "name": "Nkhotakota", - "parent": "MW-C", - "type": "District" - }, - { - "code": "MW-NS", - "name": "Nsanje", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-NU", - "name": "Ntcheu", - "parent": "MW-C", - "type": "District" - }, - { - "code": "MW-PH", - "name": "Phalombe", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-RU", - "name": "Rumphi", - "parent": "MW-N", - "type": "District" - }, - { - "code": "MW-S", - "name": "Southern Region", - "type": "Region" - }, - { - "code": "MW-SA", - "name": "Salima", - "parent": "MW-C", - "type": "District" - }, - { - "code": "MW-TH", - "name": "Thyolo", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MW-ZO", - "name": "Zomba", - "parent": "MW-S", - "type": "District" - }, - { - "code": "MX-AGU", - "name": "Aguascalientes", - "type": "State" - }, - { - "code": "MX-BCN", - "name": "Baja California", - "type": "State" - }, - { - "code": "MX-BCS", - "name": "Baja California Sur", - "type": "State" - }, - { - "code": "MX-CAM", - "name": "Campeche", - "type": "State" - }, - { - "code": "MX-CHH", - "name": "Chihuahua", - "type": "State" - }, - { - "code": "MX-CHP", - "name": "Chiapas", - "type": "State" - }, - { - "code": "MX-CMX", - "name": "Ciudad de México", - "type": "Federal entity" - }, - { - "code": "MX-COA", - "name": "Coahuila de Zaragoza", - "type": "State" - }, - { - "code": "MX-COL", - "name": "Colima", - "type": "State" - }, - { - "code": "MX-DUR", - "name": "Durango", - "type": "State" - }, - { - "code": "MX-GRO", - "name": "Guerrero", - "type": "State" - }, - { - "code": "MX-GUA", - "name": "Guanajuato", - "type": "State" - }, - { - "code": "MX-HID", - "name": "Hidalgo", - "type": "State" - }, - { - "code": "MX-JAL", - "name": "Jalisco", - "type": "State" - }, - { - "code": "MX-MEX", - "name": "México", - "type": "State" - }, - { - "code": "MX-MIC", - "name": "Michoacán de Ocampo", - "type": "State" - }, - { - "code": "MX-MOR", - "name": "Morelos", - "type": "State" - }, - { - "code": "MX-NAY", - "name": "Nayarit", - "type": "State" - }, - { - "code": "MX-NLE", - "name": "Nuevo León", - "type": "State" - }, - { - "code": "MX-OAX", - "name": "Oaxaca", - "type": "State" - }, - { - "code": "MX-PUE", - "name": "Puebla", - "type": "State" - }, - { - "code": "MX-QUE", - "name": "Querétaro", - "type": "State" - }, - { - "code": "MX-ROO", - "name": "Quintana Roo", - "type": "State" - }, - { - "code": "MX-SIN", - "name": "Sinaloa", - "type": "State" - }, - { - "code": "MX-SLP", - "name": "San Luis Potosí", - "type": "State" - }, - { - "code": "MX-SON", - "name": "Sonora", - "type": "State" - }, - { - "code": "MX-TAB", - "name": "Tabasco", - "type": "State" - }, - { - "code": "MX-TAM", - "name": "Tamaulipas", - "type": "State" - }, - { - "code": "MX-TLA", - "name": "Tlaxcala", - "type": "State" - }, - { - "code": "MX-VER", - "name": "Veracruz de Ignacio de la Llave", - "type": "State" - }, - { - "code": "MX-YUC", - "name": "Yucatán", - "type": "State" - }, - { - "code": "MX-ZAC", - "name": "Zacatecas", - "type": "State" - }, - { - "code": "MY-01", - "name": "Johor", - "type": "State" - }, - { - "code": "MY-02", - "name": "Kedah", - "type": "State" - }, - { - "code": "MY-03", - "name": "Kelantan", - "type": "State" - }, - { - "code": "MY-04", - "name": "Melaka", - "type": "State" - }, - { - "code": "MY-05", - "name": "Negeri Sembilan", - "type": "State" - }, - { - "code": "MY-06", - "name": "Pahang", - "type": "State" - }, - { - "code": "MY-07", - "name": "Pulau Pinang", - "type": "State" - }, - { - "code": "MY-08", - "name": "Perak", - "type": "State" - }, - { - "code": "MY-09", - "name": "Perlis", - "type": "State" - }, - { - "code": "MY-10", - "name": "Selangor", - "type": "State" - }, - { - "code": "MY-11", - "name": "Terengganu", - "type": "State" - }, - { - "code": "MY-12", - "name": "Sabah", - "type": "State" - }, - { - "code": "MY-13", - "name": "Sarawak", - "type": "State" - }, - { - "code": "MY-14", - "name": "Wilayah Persekutuan Kuala Lumpur", - "type": "Federal territory" - }, - { - "code": "MY-15", - "name": "Wilayah Persekutuan Labuan", - "type": "Federal territory" - }, - { - "code": "MY-16", - "name": "Wilayah Persekutuan Putrajaya", - "type": "Federal territory" - }, - { - "code": "MZ-A", - "name": "Niassa", - "type": "Province" - }, - { - "code": "MZ-B", - "name": "Manica", - "type": "Province" - }, - { - "code": "MZ-G", - "name": "Gaza", - "type": "Province" - }, - { - "code": "MZ-I", - "name": "Inhambane", - "type": "Province" - }, - { - "code": "MZ-L", - "name": "Maputo", - "type": "Province" - }, - { - "code": "MZ-MPM", - "name": "Maputo", - "type": "City" - }, - { - "code": "MZ-N", - "name": "Nampula", - "type": "Province" - }, - { - "code": "MZ-P", - "name": "Cabo Delgado", - "type": "Province" - }, - { - "code": "MZ-Q", - "name": "Zambézia", - "type": "Province" - }, - { - "code": "MZ-S", - "name": "Sofala", - "type": "Province" - }, - { - "code": "MZ-T", - "name": "Tete", - "type": "Province" - }, - { - "code": "NA-CA", - "name": "Zambezi", - "type": "Region" - }, - { - "code": "NA-ER", - "name": "Erongo", - "type": "Region" - }, - { - "code": "NA-HA", - "name": "Hardap", - "type": "Region" - }, - { - "code": "NA-KA", - "name": "//Karas", - "type": "Region" - }, - { - "code": "NA-KE", - "name": "Kavango East", - "type": "Region" - }, - { - "code": "NA-KH", - "name": "Khomas", - "type": "Region" - }, - { - "code": "NA-KU", - "name": "Kunene", - "type": "Region" - }, - { - "code": "NA-KW", - "name": "Kavango West", - "type": "Region" - }, - { - "code": "NA-OD", - "name": "Otjozondjupa", - "type": "Region" - }, - { - "code": "NA-OH", - "name": "Omaheke", - "type": "Region" - }, - { - "code": "NA-ON", - "name": "Oshana", - "type": "Region" - }, - { - "code": "NA-OS", - "name": "Omusati", - "type": "Region" - }, - { - "code": "NA-OT", - "name": "Oshikoto", - "type": "Region" - }, - { - "code": "NA-OW", - "name": "Ohangwena", - "type": "Region" - }, - { - "code": "NE-1", - "name": "Agadez", - "type": "Region" - }, - { - "code": "NE-2", - "name": "Diffa", - "type": "Region" - }, - { - "code": "NE-3", - "name": "Dosso", - "type": "Region" - }, - { - "code": "NE-4", - "name": "Maradi", - "type": "Region" - }, - { - "code": "NE-5", - "name": "Tahoua", - "type": "Region" - }, - { - "code": "NE-6", - "name": "Tillabéri", - "type": "Region" - }, - { - "code": "NE-7", - "name": "Zinder", - "type": "Region" - }, - { - "code": "NE-8", - "name": "Niamey", - "type": "Urban community" - }, - { - "code": "NG-AB", - "name": "Abia", - "type": "State" - }, - { - "code": "NG-AD", - "name": "Adamawa", - "type": "State" - }, - { - "code": "NG-AK", - "name": "Akwa Ibom", - "type": "State" - }, - { - "code": "NG-AN", - "name": "Anambra", - "type": "State" - }, - { - "code": "NG-BA", - "name": "Bauchi", - "type": "State" - }, - { - "code": "NG-BE", - "name": "Benue", - "type": "State" - }, - { - "code": "NG-BO", - "name": "Borno", - "type": "State" - }, - { - "code": "NG-BY", - "name": "Bayelsa", - "type": "State" - }, - { - "code": "NG-CR", - "name": "Cross River", - "type": "State" - }, - { - "code": "NG-DE", - "name": "Delta", - "type": "State" - }, - { - "code": "NG-EB", - "name": "Ebonyi", - "type": "State" - }, - { - "code": "NG-ED", - "name": "Edo", - "type": "State" - }, - { - "code": "NG-EK", - "name": "Ekiti", - "type": "State" - }, - { - "code": "NG-EN", - "name": "Enugu", - "type": "State" - }, - { - "code": "NG-FC", - "name": "Abuja Federal Capital Territory", - "type": "Capital territory" - }, - { - "code": "NG-GO", - "name": "Gombe", - "type": "State" - }, - { - "code": "NG-IM", - "name": "Imo", - "type": "State" - }, - { - "code": "NG-JI", - "name": "Jigawa", - "type": "State" - }, - { - "code": "NG-KD", - "name": "Kaduna", - "type": "State" - }, - { - "code": "NG-KE", - "name": "Kebbi", - "type": "State" - }, - { - "code": "NG-KN", - "name": "Kano", - "type": "State" - }, - { - "code": "NG-KO", - "name": "Kogi", - "type": "State" - }, - { - "code": "NG-KT", - "name": "Katsina", - "type": "State" - }, - { - "code": "NG-KW", - "name": "Kwara", - "type": "State" - }, - { - "code": "NG-LA", - "name": "Lagos", - "type": "State" - }, - { - "code": "NG-NA", - "name": "Nasarawa", - "type": "State" - }, - { - "code": "NG-NI", - "name": "Niger", - "type": "State" - }, - { - "code": "NG-OG", - "name": "Ogun", - "type": "State" - }, - { - "code": "NG-ON", - "name": "Ondo", - "type": "State" - }, - { - "code": "NG-OS", - "name": "Osun", - "type": "State" - }, - { - "code": "NG-OY", - "name": "Oyo", - "type": "State" - }, - { - "code": "NG-PL", - "name": "Plateau", - "type": "State" - }, - { - "code": "NG-RI", - "name": "Rivers", - "type": "State" - }, - { - "code": "NG-SO", - "name": "Sokoto", - "type": "State" - }, - { - "code": "NG-TA", - "name": "Taraba", - "type": "State" - }, - { - "code": "NG-YO", - "name": "Yobe", - "type": "State" - }, - { - "code": "NG-ZA", - "name": "Zamfara", - "type": "State" - }, - { - "code": "NI-AN", - "name": "Costa Caribe Norte", - "type": "Autonomous region" - }, - { - "code": "NI-AS", - "name": "Costa Caribe Sur", - "type": "Autonomous region" - }, - { - "code": "NI-BO", - "name": "Boaco", - "type": "Department" - }, - { - "code": "NI-CA", - "name": "Carazo", - "type": "Department" - }, - { - "code": "NI-CI", - "name": "Chinandega", - "type": "Department" - }, - { - "code": "NI-CO", - "name": "Chontales", - "type": "Department" - }, - { - "code": "NI-ES", - "name": "Estelí", - "type": "Department" - }, - { - "code": "NI-GR", - "name": "Granada", - "type": "Department" - }, - { - "code": "NI-JI", - "name": "Jinotega", - "type": "Department" - }, - { - "code": "NI-LE", - "name": "León", - "type": "Department" - }, - { - "code": "NI-MD", - "name": "Madriz", - "type": "Department" - }, - { - "code": "NI-MN", - "name": "Managua", - "type": "Department" - }, - { - "code": "NI-MS", - "name": "Masaya", - "type": "Department" - }, - { - "code": "NI-MT", - "name": "Matagalpa", - "type": "Department" - }, - { - "code": "NI-NS", - "name": "Nueva Segovia", - "type": "Department" - }, - { - "code": "NI-RI", - "name": "Rivas", - "type": "Department" - }, - { - "code": "NI-SJ", - "name": "Río San Juan", - "type": "Department" - }, - { - "code": "NL-AW", - "name": "Aruba", - "type": "Country" - }, - { - "code": "NL-BQ1", - "name": "Bonaire", - "type": "Special municipality" - }, - { - "code": "NL-BQ2", - "name": "Saba", - "type": "Special municipality" - }, - { - "code": "NL-BQ3", - "name": "Sint Eustatius", - "type": "Special municipality" - }, - { - "code": "NL-CW", - "name": "Curaçao", - "type": "Country" - }, - { - "code": "NL-DR", - "name": "Drenthe", - "type": "Province" - }, - { - "code": "NL-FL", - "name": "Flevoland", - "type": "Province" - }, - { - "code": "NL-FR", - "name": "Fryslân", - "type": "Province" - }, - { - "code": "NL-GE", - "name": "Gelderland", - "type": "Province" - }, - { - "code": "NL-GR", - "name": "Groningen", - "type": "Province" - }, - { - "code": "NL-LI", - "name": "Limburg", - "type": "Province" - }, - { - "code": "NL-NB", - "name": "Noord-Brabant", - "type": "Province" - }, - { - "code": "NL-NH", - "name": "Noord-Holland", - "type": "Province" - }, - { - "code": "NL-OV", - "name": "Overijssel", - "type": "Province" - }, - { - "code": "NL-SX", - "name": "Sint Maarten", - "type": "Country" - }, - { - "code": "NL-UT", - "name": "Utrecht", - "type": "Province" - }, - { - "code": "NL-ZE", - "name": "Zeeland", - "type": "Province" - }, - { - "code": "NL-ZH", - "name": "Zuid-Holland", - "type": "Province" - }, - { - "code": "NO-03", - "name": "Oslo", - "type": "County" - }, - { - "code": "NO-11", - "name": "Rogaland", - "type": "County" - }, - { - "code": "NO-15", - "name": "Møre og Romsdal", - "type": "County" - }, - { - "code": "NO-18", - "name": "Nordland", - "type": "County" - }, - { - "code": "NO-21", - "name": "Svalbard (Arctic Region)", - "type": "Arctic region" - }, - { - "code": "NO-22", - "name": "Jan Mayen (Arctic Region)", - "type": "Arctic region" - }, - { - "code": "NO-30", - "name": "Viken", - "type": "County" - }, - { - "code": "NO-34", - "name": "Innlandet", - "type": "County" - }, - { - "code": "NO-38", - "name": "Vestfold og Telemark", - "type": "County" - }, - { - "code": "NO-42", - "name": "Agder", - "type": "County" - }, - { - "code": "NO-46", - "name": "Vestland", - "type": "County" - }, - { - "code": "NO-50", - "name": "Trööndelage", - "type": "County" - }, - { - "code": "NO-54", - "name": "Romssa ja Finnmárkku", - "type": "County" - }, - { - "code": "NP-P1", - "name": "Koshi", - "type": "Province" - }, - { - "code": "NP-P2", - "name": "Madhesh", - "type": "Province" - }, - { - "code": "NP-P3", - "name": "Bagmati", - "type": "Province" - }, - { - "code": "NP-P4", - "name": "Gandaki", - "type": "Province" - }, - { - "code": "NP-P5", - "name": "Lumbini", - "type": "Province" - }, - { - "code": "NP-P6", - "name": "Karnali", - "type": "Province" - }, - { - "code": "NP-P7", - "name": "Sudurpashchim", - "type": "Province" - }, - { - "code": "NR-01", - "name": "Aiwo", - "type": "District" - }, - { - "code": "NR-02", - "name": "Anabar", - "type": "District" - }, - { - "code": "NR-03", - "name": "Anetan", - "type": "District" - }, - { - "code": "NR-04", - "name": "Anibare", - "type": "District" - }, - { - "code": "NR-05", - "name": "Baitsi", - "type": "District" - }, - { - "code": "NR-06", - "name": "Boe", - "type": "District" - }, - { - "code": "NR-07", - "name": "Buada", - "type": "District" - }, - { - "code": "NR-08", - "name": "Denigomodu", - "type": "District" - }, - { - "code": "NR-09", - "name": "Ewa", - "type": "District" - }, - { - "code": "NR-10", - "name": "Ijuw", - "type": "District" - }, - { - "code": "NR-11", - "name": "Meneng", - "type": "District" - }, - { - "code": "NR-12", - "name": "Nibok", - "type": "District" - }, - { - "code": "NR-13", - "name": "Uaboe", - "type": "District" - }, - { - "code": "NR-14", - "name": "Yaren", - "type": "District" - }, - { - "code": "NZ-AUK", - "name": "Auckland", - "type": "Region" - }, - { - "code": "NZ-BOP", - "name": "Bay of Plenty", - "type": "Region" - }, - { - "code": "NZ-CAN", - "name": "Canterbury", - "type": "Region" - }, - { - "code": "NZ-CIT", - "name": "Chatham Islands Territory", - "type": "Special island authority" - }, - { - "code": "NZ-GIS", - "name": "Gisborne", - "type": "Region" - }, - { - "code": "NZ-HKB", - "name": "Hawke's Bay", - "type": "Region" - }, - { - "code": "NZ-MBH", - "name": "Marlborough", - "type": "Region" - }, - { - "code": "NZ-MWT", - "name": "Manawatū-Whanganui", - "type": "Region" - }, - { - "code": "NZ-NSN", - "name": "Nelson", - "type": "Region" - }, - { - "code": "NZ-NTL", - "name": "Northland", - "type": "Region" - }, - { - "code": "NZ-OTA", - "name": "Otago", - "type": "Region" - }, - { - "code": "NZ-STL", - "name": "Southland", - "type": "Region" - }, - { - "code": "NZ-TAS", - "name": "Tasman", - "type": "Region" - }, - { - "code": "NZ-TKI", - "name": "Taranaki", - "type": "Region" - }, - { - "code": "NZ-WGN", - "name": "Greater Wellington", - "type": "Region" - }, - { - "code": "NZ-WKO", - "name": "Waikato", - "type": "Region" - }, - { - "code": "NZ-WTC", - "name": "West Coast", - "type": "Region" - }, - { - "code": "OM-BJ", - "name": "Janūb al Bāţinah", - "type": "Governorate" - }, - { - "code": "OM-BS", - "name": "Shamāl al Bāţinah", - "type": "Governorate" - }, - { - "code": "OM-BU", - "name": "Al Buraymī", - "type": "Governorate" - }, - { - "code": "OM-DA", - "name": "Ad Dākhilīyah", - "type": "Governorate" - }, - { - "code": "OM-MA", - "name": "Masqaţ", - "type": "Governorate" - }, - { - "code": "OM-MU", - "name": "Musandam", - "type": "Governorate" - }, - { - "code": "OM-SJ", - "name": "Janūb ash Sharqīyah", - "type": "Governorate" - }, - { - "code": "OM-SS", - "name": "Shamāl ash Sharqīyah", - "type": "Governorate" - }, - { - "code": "OM-WU", - "name": "Al Wusţá", - "type": "Governorate" - }, - { - "code": "OM-ZA", - "name": "Az̧ Z̧āhirah", - "type": "Governorate" - }, - { - "code": "OM-ZU", - "name": "Z̧ufār", - "type": "Governorate" - }, - { - "code": "PA-1", - "name": "Bocas del Toro", - "type": "Province" - }, - { - "code": "PA-10", - "name": "Panamá Oeste", - "type": "Province" - }, - { - "code": "PA-2", - "name": "Coclé", - "type": "Province" - }, - { - "code": "PA-3", - "name": "Colón", - "type": "Province" - }, - { - "code": "PA-4", - "name": "Chiriquí", - "type": "Province" - }, - { - "code": "PA-5", - "name": "Darién", - "type": "Province" - }, - { - "code": "PA-6", - "name": "Herrera", - "type": "Province" - }, - { - "code": "PA-7", - "name": "Los Santos", - "type": "Province" - }, - { - "code": "PA-8", - "name": "Panamá", - "type": "Province" - }, - { - "code": "PA-9", - "name": "Veraguas", - "type": "Province" - }, - { - "code": "PA-EM", - "name": "Emberá", - "type": "Indigenous region" - }, - { - "code": "PA-KY", - "name": "Guna Yala", - "type": "Indigenous region" - }, - { - "code": "PA-NB", - "name": "Ngäbe-Buglé", - "type": "Indigenous region" - }, - { - "code": "PA-NT", - "name": "Naso Tjër Di", - "type": "Indigenous region" - }, - { - "code": "PE-AMA", - "name": "Amarumayu", - "type": "Region" - }, - { - "code": "PE-ANC", - "name": "Ancash", - "type": "Region" - }, - { - "code": "PE-APU", - "name": "Apurimaq", - "type": "Region" - }, - { - "code": "PE-ARE", - "name": "Arequipa", - "type": "Region" - }, - { - "code": "PE-AYA", - "name": "Ayacucho", - "type": "Region" - }, - { - "code": "PE-CAJ", - "name": "Cajamarca", - "type": "Region" - }, - { - "code": "PE-CAL", - "name": "El Callao", - "type": "Region" - }, - { - "code": "PE-CUS", - "name": "Cusco", - "type": "Region" - }, - { - "code": "PE-HUC", - "name": "Huánuco", - "type": "Region" - }, - { - "code": "PE-HUV", - "name": "Huancavelica", - "type": "Region" - }, - { - "code": "PE-ICA", - "name": "Ica", - "type": "Region" - }, - { - "code": "PE-JUN", - "name": "Hunin", - "type": "Region" - }, - { - "code": "PE-LAL", - "name": "La Libertad", - "type": "Region" - }, - { - "code": "PE-LAM", - "name": "Lambayeque", - "type": "Region" - }, - { - "code": "PE-LIM", - "name": "Lima", - "type": "Region" - }, - { - "code": "PE-LMA", - "name": "Lima hatun llaqta", - "type": "Municipality" - }, - { - "code": "PE-LOR", - "name": "Loreto", - "type": "Region" - }, - { - "code": "PE-MDD", - "name": "Madre de Dios", - "type": "Region" - }, - { - "code": "PE-MOQ", - "name": "Moquegua", - "type": "Region" - }, - { - "code": "PE-PAS", - "name": "Pasco", - "type": "Region" - }, - { - "code": "PE-PIU", - "name": "Piura", - "type": "Region" - }, - { - "code": "PE-PUN", - "name": "Puno", - "type": "Region" - }, - { - "code": "PE-SAM", - "name": "San Martin", - "type": "Region" - }, - { - "code": "PE-TAC", - "name": "Tacna", - "type": "Region" - }, - { - "code": "PE-TUM", - "name": "Tumbes", - "type": "Region" - }, - { - "code": "PE-UCA", - "name": "Ucayali", - "type": "Region" - }, - { - "code": "PG-CPK", - "name": "Chimbu", - "type": "Province" - }, - { - "code": "PG-CPM", - "name": "Central", - "type": "Province" - }, - { - "code": "PG-EBR", - "name": "East New Britain", - "type": "Province" - }, - { - "code": "PG-EHG", - "name": "Eastern Highlands", - "type": "Province" - }, - { - "code": "PG-EPW", - "name": "Enga", - "type": "Province" - }, - { - "code": "PG-ESW", - "name": "East Sepik", - "type": "Province" - }, - { - "code": "PG-GPK", - "name": "Gulf", - "type": "Province" - }, - { - "code": "PG-HLA", - "name": "Hela", - "type": "Province" - }, - { - "code": "PG-JWK", - "name": "Jiwaka", - "type": "Province" - }, - { - "code": "PG-MBA", - "name": "Milne Bay", - "type": "Province" - }, - { - "code": "PG-MPL", - "name": "Morobe", - "type": "Province" - }, - { - "code": "PG-MPM", - "name": "Madang", - "type": "Province" - }, - { - "code": "PG-MRL", - "name": "Manus", - "type": "Province" - }, - { - "code": "PG-NCD", - "name": "National Capital District (Port Moresby)", - "type": "District" - }, - { - "code": "PG-NIK", - "name": "New Ireland", - "type": "Province" - }, - { - "code": "PG-NPP", - "name": "Northern", - "type": "Province" - }, - { - "code": "PG-NSB", - "name": "Bougainville", - "type": "Autonomous region" - }, - { - "code": "PG-SAN", - "name": "West Sepik", - "type": "Province" - }, - { - "code": "PG-SHM", - "name": "Southern Highlands", - "type": "Province" - }, - { - "code": "PG-WBK", - "name": "West New Britain", - "type": "Province" - }, - { - "code": "PG-WHM", - "name": "Western Highlands", - "type": "Province" - }, - { - "code": "PG-WPD", - "name": "Western", - "type": "Province" - }, - { - "code": "PH-00", - "name": "National Capital Region", - "type": "Region" - }, - { - "code": "PH-01", - "name": "Ilocos (Region I)", - "type": "Region" - }, - { - "code": "PH-02", - "name": "Cagayan Valley (Region II)", - "type": "Region" - }, - { - "code": "PH-03", - "name": "Central Luzon (Region III)", - "type": "Region" - }, - { - "code": "PH-05", - "name": "Bicol (Region V)", - "type": "Region" - }, - { - "code": "PH-06", - "name": "Western Visayas (Region VI)", - "type": "Region" - }, - { - "code": "PH-07", - "name": "Central Visayas (Region VII)", - "type": "Region" - }, - { - "code": "PH-08", - "name": "Eastern Visayas (Region VIII)", - "type": "Region" - }, - { - "code": "PH-09", - "name": "Zamboanga Peninsula (Region IX)", - "type": "Region" - }, - { - "code": "PH-10", - "name": "Northern Mindanao (Region X)", - "type": "Region" - }, - { - "code": "PH-11", - "name": "Davao (Region XI)", - "type": "Region" - }, - { - "code": "PH-12", - "name": "Soccsksargen (Region XII)", - "type": "Region" - }, - { - "code": "PH-13", - "name": "Caraga (Region XIII)", - "type": "Region" - }, - { - "code": "PH-14", - "name": "Autonomous Region in Muslim Mindanao (ARMM)", - "type": "Region" - }, - { - "code": "PH-15", - "name": "Cordillera Administrative Region (CAR)", - "type": "Region" - }, - { - "code": "PH-40", - "name": "Calabarzon (Region IV-A)", - "type": "Region" - }, - { - "code": "PH-41", - "name": "Mimaropa (Region IV-B)", - "type": "Region" - }, - { - "code": "PH-ABR", - "name": "Abra", - "parent": "PH-15", - "type": "Province" - }, - { - "code": "PH-AGN", - "name": "Agusan del Norte", - "parent": "PH-13", - "type": "Province" - }, - { - "code": "PH-AGS", - "name": "Agusan del Sur", - "parent": "PH-13", - "type": "Province" - }, - { - "code": "PH-AKL", - "name": "Aklan", - "parent": "PH-06", - "type": "Province" - }, - { - "code": "PH-ALB", - "name": "Albay", - "parent": "PH-05", - "type": "Province" - }, - { - "code": "PH-ANT", - "name": "Antique", - "parent": "PH-06", - "type": "Province" - }, - { - "code": "PH-APA", - "name": "Apayao", - "parent": "PH-15", - "type": "Province" - }, - { - "code": "PH-AUR", - "name": "Aurora", - "parent": "PH-03", - "type": "Province" - }, - { - "code": "PH-BAN", - "name": "Bataan", - "parent": "PH-03", - "type": "Province" - }, - { - "code": "PH-BAS", - "name": "Basilan", - "parent": "PH-09", - "type": "Province" - }, - { - "code": "PH-BEN", - "name": "Benguet", - "parent": "PH-15", - "type": "Province" - }, - { - "code": "PH-BIL", - "name": "Biliran", - "parent": "PH-08", - "type": "Province" - }, - { - "code": "PH-BOH", - "name": "Bohol", - "parent": "PH-07", - "type": "Province" - }, - { - "code": "PH-BTG", - "name": "Batangas", - "parent": "PH-40", - "type": "Province" - }, - { - "code": "PH-BTN", - "name": "Batanes", - "parent": "PH-02", - "type": "Province" - }, - { - "code": "PH-BUK", - "name": "Bukidnon", - "parent": "PH-10", - "type": "Province" - }, - { - "code": "PH-BUL", - "name": "Bulacan", - "parent": "PH-03", - "type": "Province" - }, - { - "code": "PH-CAG", - "name": "Cagayan", - "parent": "PH-02", - "type": "Province" - }, - { - "code": "PH-CAM", - "name": "Camiguin", - "parent": "PH-10", - "type": "Province" - }, - { - "code": "PH-CAN", - "name": "Camarines Norte", - "parent": "PH-05", - "type": "Province" - }, - { - "code": "PH-CAP", - "name": "Capiz", - "parent": "PH-06", - "type": "Province" - }, - { - "code": "PH-CAS", - "name": "Camarines Sur", - "parent": "PH-05", - "type": "Province" - }, - { - "code": "PH-CAT", - "name": "Catanduanes", - "parent": "PH-05", - "type": "Province" - }, - { - "code": "PH-CAV", - "name": "Cavite", - "parent": "PH-40", - "type": "Province" - }, - { - "code": "PH-CEB", - "name": "Cebu", - "parent": "PH-07", - "type": "Province" - }, - { - "code": "PH-COM", - "name": "Davao de Oro", - "parent": "PH-11", - "type": "Province" - }, - { - "code": "PH-DAO", - "name": "Davao Oriental", - "parent": "PH-11", - "type": "Province" - }, - { - "code": "PH-DAS", - "name": "Davao del Sur", - "parent": "PH-11", - "type": "Province" - }, - { - "code": "PH-DAV", - "name": "Davao del Norte", - "parent": "PH-11", - "type": "Province" - }, - { - "code": "PH-DIN", - "name": "Dinagat Islands", - "parent": "PH-13", - "type": "Province" - }, - { - "code": "PH-DVO", - "name": "Davao Occidental", - "parent": "PH-11", - "type": "Province" - }, - { - "code": "PH-EAS", - "name": "Eastern Samar", - "parent": "PH-08", - "type": "Province" - }, - { - "code": "PH-GUI", - "name": "Guimaras", - "parent": "PH-06", - "type": "Province" - }, - { - "code": "PH-IFU", - "name": "Ifugao", - "parent": "PH-15", - "type": "Province" - }, - { - "code": "PH-ILI", - "name": "Iloilo", - "parent": "PH-06", - "type": "Province" - }, - { - "code": "PH-ILN", - "name": "Ilocos Norte", - "parent": "PH-01", - "type": "Province" - }, - { - "code": "PH-ILS", - "name": "Ilocos Sur", - "parent": "PH-01", - "type": "Province" - }, - { - "code": "PH-ISA", - "name": "Isabela", - "parent": "PH-02", - "type": "Province" - }, - { - "code": "PH-KAL", - "name": "Kalinga", - "parent": "PH-15", - "type": "Province" - }, - { - "code": "PH-LAG", - "name": "Laguna", - "parent": "PH-40", - "type": "Province" - }, - { - "code": "PH-LAN", - "name": "Lanao del Norte", - "parent": "PH-12", - "type": "Province" - }, - { - "code": "PH-LAS", - "name": "Lanao del Sur", - "parent": "PH-14", - "type": "Province" - }, - { - "code": "PH-LEY", - "name": "Leyte", - "parent": "PH-08", - "type": "Province" - }, - { - "code": "PH-LUN", - "name": "La Union", - "parent": "PH-01", - "type": "Province" - }, - { - "code": "PH-MAD", - "name": "Marinduque", - "parent": "PH-41", - "type": "Province" - }, - { - "code": "PH-MAS", - "name": "Masbate", - "parent": "PH-05", - "type": "Province" - }, - { - "code": "PH-MDC", - "name": "Mindoro Occidental", - "parent": "PH-41", - "type": "Province" - }, - { - "code": "PH-MDR", - "name": "Mindoro Oriental", - "parent": "PH-41", - "type": "Province" - }, - { - "code": "PH-MGN", - "name": "Maguindanao del Norte", - "parent": "PH-14", - "type": "Province" - }, - { - "code": "PH-MGS", - "name": "Maguindanao del Sur", - "parent": "PH-14", - "type": "Province" - }, - { - "code": "PH-MOU", - "name": "Mountain Province", - "parent": "PH-15", - "type": "Province" - }, - { - "code": "PH-MSC", - "name": "Misamis Occidental", - "parent": "PH-10", - "type": "Province" - }, - { - "code": "PH-MSR", - "name": "Misamis Oriental", - "parent": "PH-10", - "type": "Province" - }, - { - "code": "PH-NCO", - "name": "Cotabato", - "parent": "PH-12", - "type": "Province" - }, - { - "code": "PH-NEC", - "name": "Negros Occidental", - "parent": "PH-06", - "type": "Province" - }, - { - "code": "PH-NER", - "name": "Negros Oriental", - "parent": "PH-07", - "type": "Province" - }, - { - "code": "PH-NSA", - "name": "Northern Samar", - "parent": "PH-08", - "type": "Province" - }, - { - "code": "PH-NUE", - "name": "Nueva Ecija", - "parent": "PH-03", - "type": "Province" - }, - { - "code": "PH-NUV", - "name": "Nueva Vizcaya", - "parent": "PH-02", - "type": "Province" - }, - { - "code": "PH-PAM", - "name": "Pampanga", - "parent": "PH-03", - "type": "Province" - }, - { - "code": "PH-PAN", - "name": "Pangasinan", - "parent": "PH-01", - "type": "Province" - }, - { - "code": "PH-PLW", - "name": "Palawan", - "parent": "PH-41", - "type": "Province" - }, - { - "code": "PH-QUE", - "name": "Quezon", - "parent": "PH-40", - "type": "Province" - }, - { - "code": "PH-QUI", - "name": "Quirino", - "parent": "PH-02", - "type": "Province" - }, - { - "code": "PH-RIZ", - "name": "Rizal", - "parent": "PH-40", - "type": "Province" - }, - { - "code": "PH-ROM", - "name": "Romblon", - "parent": "PH-41", - "type": "Province" - }, - { - "code": "PH-SAR", - "name": "Sarangani", - "parent": "PH-11", - "type": "Province" - }, - { - "code": "PH-SCO", - "name": "South Cotabato", - "parent": "PH-11", - "type": "Province" - }, - { - "code": "PH-SIG", - "name": "Siquijor", - "parent": "PH-07", - "type": "Province" - }, - { - "code": "PH-SLE", - "name": "Southern Leyte", - "parent": "PH-08", - "type": "Province" - }, - { - "code": "PH-SLU", - "name": "Sulu", - "parent": "PH-14", - "type": "Province" - }, - { - "code": "PH-SOR", - "name": "Sorsogon", - "parent": "PH-05", - "type": "Province" - }, - { - "code": "PH-SUK", - "name": "Sultan Kudarat", - "parent": "PH-12", - "type": "Province" - }, - { - "code": "PH-SUN", - "name": "Surigao del Norte", - "parent": "PH-13", - "type": "Province" - }, - { - "code": "PH-SUR", - "name": "Surigao del Sur", - "parent": "PH-13", - "type": "Province" - }, - { - "code": "PH-TAR", - "name": "Tarlac", - "parent": "PH-03", - "type": "Province" - }, - { - "code": "PH-TAW", - "name": "Tawi-Tawi", - "parent": "PH-14", - "type": "Province" - }, - { - "code": "PH-WSA", - "name": "Samar", - "parent": "PH-08", - "type": "Province" - }, - { - "code": "PH-ZAN", - "name": "Zamboanga del Norte", - "parent": "PH-09", - "type": "Province" - }, - { - "code": "PH-ZAS", - "name": "Zamboanga del Sur", - "parent": "PH-09", - "type": "Province" - }, - { - "code": "PH-ZMB", - "name": "Zambales", - "parent": "PH-03", - "type": "Province" - }, - { - "code": "PH-ZSI", - "name": "Zamboanga Sibugay", - "parent": "PH-09", - "type": "Province" - }, - { - "code": "PK-BA", - "name": "Balochistan", - "type": "Province" - }, - { - "code": "PK-GB", - "name": "Gilgit-Baltistan", - "type": "Pakistan administered area" - }, - { - "code": "PK-IS", - "name": "Islamabad", - "type": "Federal capital territory" - }, - { - "code": "PK-JK", - "name": "Azad Jammu and Kashmir", - "type": "Pakistan administered area" - }, - { - "code": "PK-KP", - "name": "Khyber Pakhtunkhwa", - "type": "Province" - }, - { - "code": "PK-PB", - "name": "Punjab", - "type": "Province" - }, - { - "code": "PK-SD", - "name": "Sindh", - "type": "Province" - }, - { - "code": "PL-02", - "name": "Dolnośląskie", - "type": "Voivodship" - }, - { - "code": "PL-04", - "name": "Kujawsko-Pomorskie", - "type": "Voivodship" - }, - { - "code": "PL-06", - "name": "Lubelskie", - "type": "Voivodship" - }, - { - "code": "PL-08", - "name": "Lubuskie", - "type": "Voivodship" - }, - { - "code": "PL-10", - "name": "Łódzkie", - "type": "Voivodship" - }, - { - "code": "PL-12", - "name": "Małopolskie", - "type": "Voivodship" - }, - { - "code": "PL-14", - "name": "Mazowieckie", - "type": "Voivodship" - }, - { - "code": "PL-16", - "name": "Opolskie", - "type": "Voivodship" - }, - { - "code": "PL-18", - "name": "Podkarpackie", - "type": "Voivodship" - }, - { - "code": "PL-20", - "name": "Podlaskie", - "type": "Voivodship" - }, - { - "code": "PL-22", - "name": "Pomorskie", - "type": "Voivodship" - }, - { - "code": "PL-24", - "name": "Śląskie", - "type": "Voivodship" - }, - { - "code": "PL-26", - "name": "Świętokrzyskie", - "type": "Voivodship" - }, - { - "code": "PL-28", - "name": "Warmińsko-Mazurskie", - "type": "Voivodship" - }, - { - "code": "PL-30", - "name": "Wielkopolskie", - "type": "Voivodship" - }, - { - "code": "PL-32", - "name": "Zachodniopomorskie", - "type": "Voivodship" - }, - { - "code": "PS-BTH", - "name": "Bethlehem", - "type": "Governorate" - }, - { - "code": "PS-DEB", - "name": "Deir El Balah", - "type": "Governorate" - }, - { - "code": "PS-GZA", - "name": "Gaza", - "type": "Governorate" - }, - { - "code": "PS-HBN", - "name": "Hebron", - "type": "Governorate" - }, - { - "code": "PS-JEM", - "name": "Jerusalem", - "type": "Governorate" - }, - { - "code": "PS-JEN", - "name": "Jenin", - "type": "Governorate" - }, - { - "code": "PS-JRH", - "name": "Jericho and Al Aghwar", - "type": "Governorate" - }, - { - "code": "PS-KYS", - "name": "Khan Yunis", - "type": "Governorate" - }, - { - "code": "PS-NBS", - "name": "Nablus", - "type": "Governorate" - }, - { - "code": "PS-NGZ", - "name": "North Gaza", - "type": "Governorate" - }, - { - "code": "PS-QQA", - "name": "Qalqilya", - "type": "Governorate" - }, - { - "code": "PS-RBH", - "name": "Ramallah", - "type": "Governorate" - }, - { - "code": "PS-RFH", - "name": "Rafah", - "type": "Governorate" - }, - { - "code": "PS-SLT", - "name": "Salfit", - "type": "Governorate" - }, - { - "code": "PS-TBS", - "name": "Tubas", - "type": "Governorate" - }, - { - "code": "PS-TKM", - "name": "Tulkarm", - "type": "Governorate" - }, - { - "code": "PT-01", - "name": "Aveiro", - "type": "District" - }, - { - "code": "PT-02", - "name": "Beja", - "type": "District" - }, - { - "code": "PT-03", - "name": "Braga", - "type": "District" - }, - { - "code": "PT-04", - "name": "Bragança", - "type": "District" - }, - { - "code": "PT-05", - "name": "Castelo Branco", - "type": "District" - }, - { - "code": "PT-06", - "name": "Coimbra", - "type": "District" - }, - { - "code": "PT-07", - "name": "Évora", - "type": "District" - }, - { - "code": "PT-08", - "name": "Faro", - "type": "District" - }, - { - "code": "PT-09", - "name": "Guarda", - "type": "District" - }, - { - "code": "PT-10", - "name": "Leiria", - "type": "District" - }, - { - "code": "PT-11", - "name": "Lisboa", - "type": "District" - }, - { - "code": "PT-12", - "name": "Portalegre", - "type": "District" - }, - { - "code": "PT-13", - "name": "Porto", - "type": "District" - }, - { - "code": "PT-14", - "name": "Santarém", - "type": "District" - }, - { - "code": "PT-15", - "name": "Setúbal", - "type": "District" - }, - { - "code": "PT-16", - "name": "Viana do Castelo", - "type": "District" - }, - { - "code": "PT-17", - "name": "Vila Real", - "type": "District" - }, - { - "code": "PT-18", - "name": "Viseu", - "type": "District" - }, - { - "code": "PT-20", - "name": "Região Autónoma dos Açores", - "type": "Autonomous region" - }, - { - "code": "PT-30", - "name": "Região Autónoma da Madeira", - "type": "Autonomous region" - }, - { - "code": "PW-002", - "name": "Aimeliik", - "type": "State" - }, - { - "code": "PW-004", - "name": "Airai", - "type": "State" - }, - { - "code": "PW-010", - "name": "Angaur", - "type": "State" - }, - { - "code": "PW-050", - "name": "Hatohobei", - "type": "State" - }, - { - "code": "PW-100", - "name": "Kayangel", - "type": "State" - }, - { - "code": "PW-150", - "name": "Koror", - "type": "State" - }, - { - "code": "PW-212", - "name": "Melekeok", - "type": "State" - }, - { - "code": "PW-214", - "name": "Ngaraard", - "type": "State" - }, - { - "code": "PW-218", - "name": "Ngarchelong", - "type": "State" - }, - { - "code": "PW-222", - "name": "Ngardmau", - "type": "State" - }, - { - "code": "PW-224", - "name": "Ngatpang", - "type": "State" - }, - { - "code": "PW-226", - "name": "Ngchesar", - "type": "State" - }, - { - "code": "PW-227", - "name": "Ngeremlengui", - "type": "State" - }, - { - "code": "PW-228", - "name": "Ngiwal", - "type": "State" - }, - { - "code": "PW-350", - "name": "Peleliu", - "type": "State" - }, - { - "code": "PW-370", - "name": "Sonsorol", - "type": "State" - }, - { - "code": "PY-1", - "name": "Concepción", - "type": "Department" - }, - { - "code": "PY-10", - "name": "Alto Paraná", - "type": "Department" - }, - { - "code": "PY-11", - "name": "Central", - "type": "Department" - }, - { - "code": "PY-12", - "name": "Ñeembucú", - "type": "Department" - }, - { - "code": "PY-13", - "name": "Amambay", - "type": "Department" - }, - { - "code": "PY-14", - "name": "Canindeyú", - "type": "Department" - }, - { - "code": "PY-15", - "name": "Presidente Hayes", - "type": "Department" - }, - { - "code": "PY-16", - "name": "Alto Paraguay", - "type": "Department" - }, - { - "code": "PY-19", - "name": "Boquerón", - "type": "Department" - }, - { - "code": "PY-2", - "name": "San Pedro", - "type": "Department" - }, - { - "code": "PY-3", - "name": "Cordillera", - "type": "Department" - }, - { - "code": "PY-4", - "name": "Guairá", - "type": "Department" - }, - { - "code": "PY-5", - "name": "Caaguazú", - "type": "Department" - }, - { - "code": "PY-6", - "name": "Caazapá", - "type": "Department" - }, - { - "code": "PY-7", - "name": "Itapúa", - "type": "Department" - }, - { - "code": "PY-8", - "name": "Misiones", - "type": "Department" - }, - { - "code": "PY-9", - "name": "Paraguarí", - "type": "Department" - }, - { - "code": "PY-ASU", - "name": "Asunción", - "type": "Capital" - }, - { - "code": "QA-DA", - "name": "Ad Dawḩah", - "type": "Municipality" - }, - { - "code": "QA-KH", - "name": "Al Khawr wa adh Dhakhīrah", - "type": "Municipality" - }, - { - "code": "QA-MS", - "name": "Ash Shamāl", - "type": "Municipality" - }, - { - "code": "QA-RA", - "name": "Ar Rayyān", - "type": "Municipality" - }, - { - "code": "QA-SH", - "name": "Ash Shīḩānīyah", - "type": "Municipality" - }, - { - "code": "QA-US", - "name": "Umm Şalāl", - "type": "Municipality" - }, - { - "code": "QA-WA", - "name": "Al Wakrah", - "type": "Municipality" - }, - { - "code": "QA-ZA", - "name": "Az̧ Z̧a‘āyin", - "type": "Municipality" - }, - { - "code": "RO-AB", - "name": "Alba", - "type": "Department" - }, - { - "code": "RO-AG", - "name": "Argeș", - "type": "Department" - }, - { - "code": "RO-AR", - "name": "Arad", - "type": "Department" - }, - { - "code": "RO-B", - "name": "București", - "type": "Municipality" - }, - { - "code": "RO-BC", - "name": "Bacău", - "type": "Department" - }, - { - "code": "RO-BH", - "name": "Bihor", - "type": "Department" - }, - { - "code": "RO-BN", - "name": "Bistrița-Năsăud", - "type": "Department" - }, - { - "code": "RO-BR", - "name": "Brăila", - "type": "Department" - }, - { - "code": "RO-BT", - "name": "Botoșani", - "type": "Department" - }, - { - "code": "RO-BV", - "name": "Brașov", - "type": "Department" - }, - { - "code": "RO-BZ", - "name": "Buzău", - "type": "Department" - }, - { - "code": "RO-CJ", - "name": "Cluj", - "type": "Department" - }, - { - "code": "RO-CL", - "name": "Călărași", - "type": "Department" - }, - { - "code": "RO-CS", - "name": "Caraș-Severin", - "type": "Department" - }, - { - "code": "RO-CT", - "name": "Constanța", - "type": "Department" - }, - { - "code": "RO-CV", - "name": "Covasna", - "type": "Department" - }, - { - "code": "RO-DB", - "name": "Dâmbovița", - "type": "Department" - }, - { - "code": "RO-DJ", - "name": "Dolj", - "type": "Department" - }, - { - "code": "RO-GJ", - "name": "Gorj", - "type": "Department" - }, - { - "code": "RO-GL", - "name": "Galați", - "type": "Department" - }, - { - "code": "RO-GR", - "name": "Giurgiu", - "type": "Department" - }, - { - "code": "RO-HD", - "name": "Hunedoara", - "type": "Department" - }, - { - "code": "RO-HR", - "name": "Harghita", - "type": "Department" - }, - { - "code": "RO-IF", - "name": "Ilfov", - "type": "Department" - }, - { - "code": "RO-IL", - "name": "Ialomița", - "type": "Department" - }, - { - "code": "RO-IS", - "name": "Iași", - "type": "Department" - }, - { - "code": "RO-MH", - "name": "Mehedinți", - "type": "Department" - }, - { - "code": "RO-MM", - "name": "Maramureș", - "type": "Department" - }, - { - "code": "RO-MS", - "name": "Mureș", - "type": "Department" - }, - { - "code": "RO-NT", - "name": "Neamț", - "type": "Department" - }, - { - "code": "RO-OT", - "name": "Olt", - "type": "Department" - }, - { - "code": "RO-PH", - "name": "Prahova", - "type": "Department" - }, - { - "code": "RO-SB", - "name": "Sibiu", - "type": "Department" - }, - { - "code": "RO-SJ", - "name": "Sălaj", - "type": "Department" - }, - { - "code": "RO-SM", - "name": "Satu Mare", - "type": "Department" - }, - { - "code": "RO-SV", - "name": "Suceava", - "type": "Department" - }, - { - "code": "RO-TL", - "name": "Tulcea", - "type": "Department" - }, - { - "code": "RO-TM", - "name": "Timiș", - "type": "Department" - }, - { - "code": "RO-TR", - "name": "Teleorman", - "type": "Department" - }, - { - "code": "RO-VL", - "name": "Vâlcea", - "type": "Department" - }, - { - "code": "RO-VN", - "name": "Vrancea", - "type": "Department" - }, - { - "code": "RO-VS", - "name": "Vaslui", - "type": "Department" - }, - { - "code": "RS-00", - "name": "Beograd", - "type": "City" - }, - { - "code": "RS-01", - "name": "Severnobački okrug", - "parent": "RS-VO", - "type": "District" - }, - { - "code": "RS-02", - "name": "Srednjebanatski okrug", - "parent": "RS-VO", - "type": "District" - }, - { - "code": "RS-03", - "name": "Severnobanatski okrug", - "parent": "RS-VO", - "type": "District" - }, - { - "code": "RS-04", - "name": "Južnobanatski okrug", - "parent": "RS-VO", - "type": "District" - }, - { - "code": "RS-05", - "name": "Zapadnobački okrug", - "parent": "RS-VO", - "type": "District" - }, - { - "code": "RS-06", - "name": "Južnobački okrug", - "parent": "RS-VO", - "type": "District" - }, - { - "code": "RS-07", - "name": "Sremski okrug", - "parent": "RS-VO", - "type": "District" - }, - { - "code": "RS-08", - "name": "Mačvanski okrug", - "type": "District" - }, - { - "code": "RS-09", - "name": "Kolubarski okrug", - "type": "District" - }, - { - "code": "RS-10", - "name": "Podunavski okrug", - "type": "District" - }, - { - "code": "RS-11", - "name": "Braničevski okrug", - "type": "District" - }, - { - "code": "RS-12", - "name": "Šumadijski okrug", - "type": "District" - }, - { - "code": "RS-13", - "name": "Pomoravski okrug", - "type": "District" - }, - { - "code": "RS-14", - "name": "Borski okrug", - "type": "District" - }, - { - "code": "RS-15", - "name": "Zaječarski okrug", - "type": "District" - }, - { - "code": "RS-16", - "name": "Zlatiborski okrug", - "type": "District" - }, - { - "code": "RS-17", - "name": "Moravički okrug", - "type": "District" - }, - { - "code": "RS-18", - "name": "Raški okrug", - "type": "District" - }, - { - "code": "RS-19", - "name": "Rasinski okrug", - "type": "District" - }, - { - "code": "RS-20", - "name": "Nišavski okrug", - "type": "District" - }, - { - "code": "RS-21", - "name": "Toplički okrug", - "type": "District" - }, - { - "code": "RS-22", - "name": "Pirotski okrug", - "type": "District" - }, - { - "code": "RS-23", - "name": "Jablanički okrug", - "type": "District" - }, - { - "code": "RS-24", - "name": "Pčinjski okrug", - "type": "District" - }, - { - "code": "RS-25", - "name": "Kosovski okrug", - "parent": "RS-KM", - "type": "District" - }, - { - "code": "RS-26", - "name": "Pećki okrug", - "parent": "RS-KM", - "type": "District" - }, - { - "code": "RS-27", - "name": "Prizrenski okrug", - "parent": "RS-KM", - "type": "District" - }, - { - "code": "RS-28", - "name": "Kosovsko-Mitrovački okrug", - "parent": "RS-KM", - "type": "District" - }, - { - "code": "RS-29", - "name": "Kosovsko-Pomoravski okrug", - "parent": "RS-KM", - "type": "District" - }, - { - "code": "RS-KM", - "name": "Kosovo-Metohija", - "type": "Autonomous province" - }, - { - "code": "RS-VO", - "name": "Vojvodina", - "type": "Autonomous province" - }, - { - "code": "RU-AD", - "name": "Adygeja, Respublika", - "type": "Republic" - }, - { - "code": "RU-AL", - "name": "Altaj, Respublika", - "type": "Republic" - }, - { - "code": "RU-ALT", - "name": "Altajskij kraj", - "type": "Administrative territory" - }, - { - "code": "RU-AMU", - "name": "Amurskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-ARK", - "name": "Arhangel'skaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-AST", - "name": "Astrahanskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-BA", - "name": "Bashkortostan, Respublika", - "type": "Republic" - }, - { - "code": "RU-BEL", - "name": "Belgorodskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-BRY", - "name": "Brjanskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-BU", - "name": "Burjatija, Respublika", - "type": "Republic" - }, - { - "code": "RU-CE", - "name": "Chechenskaya Respublika", - "type": "Republic" - }, - { - "code": "RU-CHE", - "name": "Chelyabinskaya oblast'", - "type": "Administrative region" - }, - { - "code": "RU-CHU", - "name": "Chukotskiy avtonomnyy okrug", - "type": "Autonomous district" - }, - { - "code": "RU-CU", - "name": "Chuvashskaya Respublika", - "type": "Republic" - }, - { - "code": "RU-DA", - "name": "Dagestan, Respublika", - "type": "Republic" - }, - { - "code": "RU-IN", - "name": "Ingushetiya, Respublika", - "type": "Republic" - }, - { - "code": "RU-IRK", - "name": "Irkutskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-IVA", - "name": "Ivanovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-KAM", - "name": "Kamchatskiy kray", - "type": "Administrative territory" - }, - { - "code": "RU-KB", - "name": "Kabardino-Balkarskaja Respublika", - "type": "Republic" - }, - { - "code": "RU-KC", - "name": "Karachayevo-Cherkesskaya Respublika", - "type": "Republic" - }, - { - "code": "RU-KDA", - "name": "Krasnodarskij kraj", - "type": "Administrative territory" - }, - { - "code": "RU-KEM", - "name": "Kemerovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-KGD", - "name": "Kaliningradskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-KGN", - "name": "Kurganskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-KHA", - "name": "Habarovskij kraj", - "type": "Administrative territory" - }, - { - "code": "RU-KHM", - "name": "Hanty-Mansijskij avtonomnyj okrug", - "type": "Autonomous district" - }, - { - "code": "RU-KIR", - "name": "Kirovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-KK", - "name": "Hakasija, Respublika", - "type": "Republic" - }, - { - "code": "RU-KL", - "name": "Kalmykija, Respublika", - "type": "Republic" - }, - { - "code": "RU-KLU", - "name": "Kaluzhskaya oblast'", - "type": "Administrative region" - }, - { - "code": "RU-KO", - "name": "Komi, Respublika", - "type": "Republic" - }, - { - "code": "RU-KOS", - "name": "Kostromskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-KR", - "name": "Karelija, Respublika", - "type": "Republic" - }, - { - "code": "RU-KRS", - "name": "Kurskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-KYA", - "name": "Krasnojarskij kraj", - "type": "Administrative territory" - }, - { - "code": "RU-LEN", - "name": "Leningradskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-LIP", - "name": "Lipeckaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-MAG", - "name": "Magadanskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-ME", - "name": "Marij Èl, Respublika", - "type": "Republic" - }, - { - "code": "RU-MO", - "name": "Mordovija, Respublika", - "type": "Republic" - }, - { - "code": "RU-MOS", - "name": "Moskovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-MOW", - "name": "Moskva", - "type": "Autonomous city" - }, - { - "code": "RU-MUR", - "name": "Murmanskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-NEN", - "name": "Neneckij avtonomnyj okrug", - "type": "Autonomous district" - }, - { - "code": "RU-NGR", - "name": "Novgorodskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-NIZ", - "name": "Nizhegorodskaya oblast'", - "type": "Administrative region" - }, - { - "code": "RU-NVS", - "name": "Novosibirskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-OMS", - "name": "Omskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-ORE", - "name": "Orenburgskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-ORL", - "name": "Orlovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-PER", - "name": "Permskij kraj", - "type": "Administrative territory" - }, - { - "code": "RU-PNZ", - "name": "Penzenskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-PRI", - "name": "Primorskij kraj", - "type": "Administrative territory" - }, - { - "code": "RU-PSK", - "name": "Pskovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-ROS", - "name": "Rostovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-RYA", - "name": "Rjazanskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-SA", - "name": "Saha, Respublika", - "type": "Republic" - }, - { - "code": "RU-SAK", - "name": "Sahalinskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-SAM", - "name": "Samarskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-SAR", - "name": "Saratovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-SE", - "name": "Severnaja Osetija, Respublika", - "type": "Republic" - }, - { - "code": "RU-SMO", - "name": "Smolenskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-SPE", - "name": "Sankt-Peterburg", - "type": "Autonomous city" - }, - { - "code": "RU-STA", - "name": "Stavropol'skij kraj", - "type": "Administrative territory" - }, - { - "code": "RU-SVE", - "name": "Sverdlovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-TA", - "name": "Tatarstan, Respublika", - "type": "Republic" - }, - { - "code": "RU-TAM", - "name": "Tambovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-TOM", - "name": "Tomskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-TUL", - "name": "Tul'skaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-TVE", - "name": "Tverskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-TY", - "name": "Tyva, Respublika", - "type": "Republic" - }, - { - "code": "RU-TYU", - "name": "Tjumenskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-UD", - "name": "Udmurtskaja Respublika", - "type": "Republic" - }, - { - "code": "RU-ULY", - "name": "Ul'janovskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-VGG", - "name": "Volgogradskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-VLA", - "name": "Vladimirskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-VLG", - "name": "Vologodskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-VOR", - "name": "Voronezhskaya oblast'", - "type": "Administrative region" - }, - { - "code": "RU-YAN", - "name": "Jamalo-Neneckij avtonomnyj okrug", - "type": "Autonomous district" - }, - { - "code": "RU-YAR", - "name": "Jaroslavskaja oblast'", - "type": "Administrative region" - }, - { - "code": "RU-YEV", - "name": "Evrejskaja avtonomnaja oblast'", - "type": "Autonomous region" - }, - { - "code": "RU-ZAB", - "name": "Zabajkal'skij kraj", - "type": "Administrative territory" - }, - { - "code": "RW-01", - "name": "City of Kigali", - "type": "City" - }, - { - "code": "RW-02", - "name": "Eastern", - "type": "Province" - }, - { - "code": "RW-03", - "name": "Northern", - "type": "Province" - }, - { - "code": "RW-04", - "name": "Western", - "type": "Province" - }, - { - "code": "RW-05", - "name": "Southern", - "type": "Province" - }, - { - "code": "SA-01", - "name": "Ar Riyāḑ", - "type": "Region" - }, - { - "code": "SA-02", - "name": "Makkah al Mukarramah", - "type": "Region" - }, - { - "code": "SA-03", - "name": "Al Madīnah al Munawwarah", - "type": "Region" - }, - { - "code": "SA-04", - "name": "Ash Sharqīyah", - "type": "Region" - }, - { - "code": "SA-05", - "name": "Al Qaşīm", - "type": "Region" - }, - { - "code": "SA-06", - "name": "Ḩā'il", - "type": "Region" - }, - { - "code": "SA-07", - "name": "Tabūk", - "type": "Region" - }, - { - "code": "SA-08", - "name": "Al Ḩudūd ash Shamālīyah", - "type": "Region" - }, - { - "code": "SA-09", - "name": "Jāzān", - "type": "Region" - }, - { - "code": "SA-10", - "name": "Najrān", - "type": "Region" - }, - { - "code": "SA-11", - "name": "Al Bāḩah", - "type": "Region" - }, - { - "code": "SA-12", - "name": "Al Jawf", - "type": "Region" - }, - { - "code": "SA-14", - "name": "'Asīr", - "type": "Region" - }, - { - "code": "SB-CE", - "name": "Central", - "type": "Province" - }, - { - "code": "SB-CH", - "name": "Choiseul", - "type": "Province" - }, - { - "code": "SB-CT", - "name": "Capital Territory (Honiara)", - "type": "Capital territory" - }, - { - "code": "SB-GU", - "name": "Guadalcanal", - "type": "Province" - }, - { - "code": "SB-IS", - "name": "Isabel", - "type": "Province" - }, - { - "code": "SB-MK", - "name": "Makira-Ulawa", - "type": "Province" - }, - { - "code": "SB-ML", - "name": "Malaita", - "type": "Province" - }, - { - "code": "SB-RB", - "name": "Rennell and Bellona", - "type": "Province" - }, - { - "code": "SB-TE", - "name": "Temotu", - "type": "Province" - }, - { - "code": "SB-WE", - "name": "Western", - "type": "Province" - }, - { - "code": "SC-01", - "name": "Anse aux Pins", - "type": "District" - }, - { - "code": "SC-02", - "name": "Anse Boileau", - "type": "District" - }, - { - "code": "SC-03", - "name": "Anse Etoile", - "type": "District" - }, - { - "code": "SC-04", - "name": "Au Cap", - "type": "District" - }, - { - "code": "SC-05", - "name": "Anse Royale", - "type": "District" - }, - { - "code": "SC-06", - "name": "Baie Lazare", - "type": "District" - }, - { - "code": "SC-07", - "name": "Baie Sainte Anne", - "type": "District" - }, - { - "code": "SC-08", - "name": "Beau Vallon", - "type": "District" - }, - { - "code": "SC-09", - "name": "Bel Air", - "type": "District" - }, - { - "code": "SC-10", - "name": "Bel Ombre", - "type": "District" - }, - { - "code": "SC-11", - "name": "Cascade", - "type": "District" - }, - { - "code": "SC-12", - "name": "Glacis", - "type": "District" - }, - { - "code": "SC-13", - "name": "Grand Anse Mahe", - "type": "District" - }, - { - "code": "SC-14", - "name": "Grand Anse Praslin", - "type": "District" - }, - { - "code": "SC-15", - "name": "La Digue", - "type": "District" - }, - { - "code": "SC-16", - "name": "English River", - "type": "District" - }, - { - "code": "SC-17", - "name": "Mont Buxton", - "type": "District" - }, - { - "code": "SC-18", - "name": "Mont Fleuri", - "type": "District" - }, - { - "code": "SC-19", - "name": "Plaisance", - "type": "District" - }, - { - "code": "SC-20", - "name": "Pointe Larue", - "type": "District" - }, - { - "code": "SC-21", - "name": "Port Glaud", - "type": "District" - }, - { - "code": "SC-22", - "name": "Saint Louis", - "type": "District" - }, - { - "code": "SC-23", - "name": "Takamaka", - "type": "District" - }, - { - "code": "SC-24", - "name": "Les Mamelles", - "type": "District" - }, - { - "code": "SC-25", - "name": "Roche Caiman", - "type": "District" - }, - { - "code": "SC-26", - "name": "Ile Perseverance I", - "type": "District" - }, - { - "code": "SC-27", - "name": "Ile Perseverance II", - "type": "District" - }, - { - "code": "SD-DC", - "name": "Central Darfur", - "type": "State" - }, - { - "code": "SD-DE", - "name": "East Darfur", - "type": "State" - }, - { - "code": "SD-DN", - "name": "North Darfur", - "type": "State" - }, - { - "code": "SD-DS", - "name": "South Darfur", - "type": "State" - }, - { - "code": "SD-DW", - "name": "West Darfur", - "type": "State" - }, - { - "code": "SD-GD", - "name": "Gedaref", - "type": "State" - }, - { - "code": "SD-GK", - "name": "West Kordofan", - "type": "State" - }, - { - "code": "SD-GZ", - "name": "Gezira", - "type": "State" - }, - { - "code": "SD-KA", - "name": "Kassala", - "type": "State" - }, - { - "code": "SD-KH", - "name": "Khartoum", - "type": "State" - }, - { - "code": "SD-KN", - "name": "North Kordofan", - "type": "State" - }, - { - "code": "SD-KS", - "name": "South Kordofan", - "type": "State" - }, - { - "code": "SD-NB", - "name": "Blue Nile", - "type": "State" - }, - { - "code": "SD-NO", - "name": "Northern", - "type": "State" - }, - { - "code": "SD-NR", - "name": "River Nile", - "type": "State" - }, - { - "code": "SD-NW", - "name": "White Nile", - "type": "State" - }, - { - "code": "SD-RS", - "name": "Red Sea", - "type": "State" - }, - { - "code": "SD-SI", - "name": "Sennar", - "type": "State" - }, - { - "code": "SE-AB", - "name": "Stockholms län [SE-01]", - "type": "County" - }, - { - "code": "SE-AC", - "name": "Västerbottens län [SE-24]", - "type": "County" - }, - { - "code": "SE-BD", - "name": "Norrbottens län [SE-25]", - "type": "County" - }, - { - "code": "SE-C", - "name": "Uppsala län [SE-03]", - "type": "County" - }, - { - "code": "SE-D", - "name": "Södermanlands län [SE-04]", - "type": "County" - }, - { - "code": "SE-E", - "name": "Östergötlands län [SE-05]", - "type": "County" - }, - { - "code": "SE-F", - "name": "Jönköpings län [SE-06]", - "type": "County" - }, - { - "code": "SE-G", - "name": "Kronobergs län [SE-07]", - "type": "County" - }, - { - "code": "SE-H", - "name": "Kalmar län [SE-08]", - "type": "County" - }, - { - "code": "SE-I", - "name": "Gotlands län [SE-09]", - "type": "County" - }, - { - "code": "SE-K", - "name": "Blekinge län [SE-10]", - "type": "County" - }, - { - "code": "SE-M", - "name": "Skåne län [SE-12]", - "type": "County" - }, - { - "code": "SE-N", - "name": "Hallands län [SE-13]", - "type": "County" - }, - { - "code": "SE-O", - "name": "Västra Götalands län [SE-14]", - "type": "County" - }, - { - "code": "SE-S", - "name": "Värmlands län [SE-17]", - "type": "County" - }, - { - "code": "SE-T", - "name": "Örebro län [SE-18]", - "type": "County" - }, - { - "code": "SE-U", - "name": "Västmanlands län [SE-19]", - "type": "County" - }, - { - "code": "SE-W", - "name": "Dalarnas län [SE-20]", - "type": "County" - }, - { - "code": "SE-X", - "name": "Gävleborgs län [SE-21]", - "type": "County" - }, - { - "code": "SE-Y", - "name": "Västernorrlands län [SE-22]", - "type": "County" - }, - { - "code": "SE-Z", - "name": "Jämtlands län [SE-23]", - "type": "County" - }, - { - "code": "SG-01", - "name": "Central Singapore", - "type": "District" - }, - { - "code": "SG-02", - "name": "North East", - "type": "District" - }, - { - "code": "SG-03", - "name": "North West", - "type": "District" - }, - { - "code": "SG-04", - "name": "South East", - "type": "District" - }, - { - "code": "SG-05", - "name": "South West", - "type": "District" - }, - { - "code": "SH-AC", - "name": "Ascension", - "type": "Geographical entity" - }, - { - "code": "SH-HL", - "name": "Saint Helena", - "type": "Geographical entity" - }, - { - "code": "SH-TA", - "name": "Tristan da Cunha", - "type": "Geographical entity" - }, - { - "code": "SI-001", - "name": "Ajdovščina", - "type": "Municipality" - }, - { - "code": "SI-002", - "name": "Beltinci", - "type": "Municipality" - }, - { - "code": "SI-003", - "name": "Bled", - "type": "Municipality" - }, - { - "code": "SI-004", - "name": "Bohinj", - "type": "Municipality" - }, - { - "code": "SI-005", - "name": "Borovnica", - "type": "Municipality" - }, - { - "code": "SI-006", - "name": "Bovec", - "type": "Municipality" - }, - { - "code": "SI-007", - "name": "Brda", - "type": "Municipality" - }, - { - "code": "SI-008", - "name": "Brezovica", - "type": "Municipality" - }, - { - "code": "SI-009", - "name": "Brežice", - "type": "Municipality" - }, - { - "code": "SI-010", - "name": "Tišina", - "type": "Municipality" - }, - { - "code": "SI-011", - "name": "Celje", - "type": "Urban municipality" - }, - { - "code": "SI-012", - "name": "Cerklje na Gorenjskem", - "type": "Municipality" - }, - { - "code": "SI-013", - "name": "Cerknica", - "type": "Municipality" - }, - { - "code": "SI-014", - "name": "Cerkno", - "type": "Municipality" - }, - { - "code": "SI-015", - "name": "Črenšovci", - "type": "Municipality" - }, - { - "code": "SI-016", - "name": "Črna na Koroškem", - "type": "Municipality" - }, - { - "code": "SI-017", - "name": "Črnomelj", - "type": "Municipality" - }, - { - "code": "SI-018", - "name": "Destrnik", - "type": "Municipality" - }, - { - "code": "SI-019", - "name": "Divača", - "type": "Municipality" - }, - { - "code": "SI-020", - "name": "Dobrepolje", - "type": "Municipality" - }, - { - "code": "SI-021", - "name": "Dobrova-Polhov Gradec", - "type": "Municipality" - }, - { - "code": "SI-022", - "name": "Dol pri Ljubljani", - "type": "Municipality" - }, - { - "code": "SI-023", - "name": "Domžale", - "type": "Municipality" - }, - { - "code": "SI-024", - "name": "Dornava", - "type": "Municipality" - }, - { - "code": "SI-025", - "name": "Dravograd", - "type": "Municipality" - }, - { - "code": "SI-026", - "name": "Duplek", - "type": "Municipality" - }, - { - "code": "SI-027", - "name": "Gorenja vas-Poljane", - "type": "Municipality" - }, - { - "code": "SI-028", - "name": "Gorišnica", - "type": "Municipality" - }, - { - "code": "SI-029", - "name": "Gornja Radgona", - "type": "Municipality" - }, - { - "code": "SI-030", - "name": "Gornji Grad", - "type": "Municipality" - }, - { - "code": "SI-031", - "name": "Gornji Petrovci", - "type": "Municipality" - }, - { - "code": "SI-032", - "name": "Grosuplje", - "type": "Municipality" - }, - { - "code": "SI-033", - "name": "Šalovci", - "type": "Municipality" - }, - { - "code": "SI-034", - "name": "Hrastnik", - "type": "Municipality" - }, - { - "code": "SI-035", - "name": "Hrpelje-Kozina", - "type": "Municipality" - }, - { - "code": "SI-036", - "name": "Idrija", - "type": "Municipality" - }, - { - "code": "SI-037", - "name": "Ig", - "type": "Municipality" - }, - { - "code": "SI-038", - "name": "Ilirska Bistrica", - "type": "Municipality" - }, - { - "code": "SI-039", - "name": "Ivančna Gorica", - "type": "Municipality" - }, - { - "code": "SI-040", - "name": "Izola", - "type": "Municipality" - }, - { - "code": "SI-041", - "name": "Jesenice", - "type": "Municipality" - }, - { - "code": "SI-042", - "name": "Juršinci", - "type": "Municipality" - }, - { - "code": "SI-043", - "name": "Kamnik", - "type": "Municipality" - }, - { - "code": "SI-044", - "name": "Kanal ob Soči", - "type": "Municipality" - }, - { - "code": "SI-045", - "name": "Kidričevo", - "type": "Municipality" - }, - { - "code": "SI-046", - "name": "Kobarid", - "type": "Municipality" - }, - { - "code": "SI-047", - "name": "Kobilje", - "type": "Municipality" - }, - { - "code": "SI-048", - "name": "Kočevje", - "type": "Municipality" - }, - { - "code": "SI-049", - "name": "Komen", - "type": "Municipality" - }, - { - "code": "SI-050", - "name": "Koper", - "type": "Urban municipality" - }, - { - "code": "SI-051", - "name": "Kozje", - "type": "Municipality" - }, - { - "code": "SI-052", - "name": "Kranj", - "type": "Urban municipality" - }, - { - "code": "SI-053", - "name": "Kranjska Gora", - "type": "Municipality" - }, - { - "code": "SI-054", - "name": "Krško", - "type": "Urban municipality" - }, - { - "code": "SI-055", - "name": "Kungota", - "type": "Municipality" - }, - { - "code": "SI-056", - "name": "Kuzma", - "type": "Municipality" - }, - { - "code": "SI-057", - "name": "Laško", - "type": "Municipality" - }, - { - "code": "SI-058", - "name": "Lenart", - "type": "Municipality" - }, - { - "code": "SI-059", - "name": "Lendava", - "type": "Municipality" - }, - { - "code": "SI-060", - "name": "Litija", - "type": "Municipality" - }, - { - "code": "SI-061", - "name": "Ljubljana", - "type": "Urban municipality" - }, - { - "code": "SI-062", - "name": "Ljubno", - "type": "Municipality" - }, - { - "code": "SI-063", - "name": "Ljutomer", - "type": "Municipality" - }, - { - "code": "SI-064", - "name": "Logatec", - "type": "Municipality" - }, - { - "code": "SI-065", - "name": "Loška dolina", - "type": "Municipality" - }, - { - "code": "SI-066", - "name": "Loški Potok", - "type": "Municipality" - }, - { - "code": "SI-067", - "name": "Luče", - "type": "Municipality" - }, - { - "code": "SI-068", - "name": "Lukovica", - "type": "Municipality" - }, - { - "code": "SI-069", - "name": "Majšperk", - "type": "Municipality" - }, - { - "code": "SI-070", - "name": "Maribor", - "type": "Urban municipality" - }, - { - "code": "SI-071", - "name": "Medvode", - "type": "Municipality" - }, - { - "code": "SI-072", - "name": "Mengeš", - "type": "Municipality" - }, - { - "code": "SI-073", - "name": "Metlika", - "type": "Municipality" - }, - { - "code": "SI-074", - "name": "Mežica", - "type": "Municipality" - }, - { - "code": "SI-075", - "name": "Miren-Kostanjevica", - "type": "Municipality" - }, - { - "code": "SI-076", - "name": "Mislinja", - "type": "Municipality" - }, - { - "code": "SI-077", - "name": "Moravče", - "type": "Municipality" - }, - { - "code": "SI-078", - "name": "Moravske Toplice", - "type": "Municipality" - }, - { - "code": "SI-079", - "name": "Mozirje", - "type": "Municipality" - }, - { - "code": "SI-080", - "name": "Murska Sobota", - "type": "Urban municipality" - }, - { - "code": "SI-081", - "name": "Muta", - "type": "Municipality" - }, - { - "code": "SI-082", - "name": "Naklo", - "type": "Municipality" - }, - { - "code": "SI-083", - "name": "Nazarje", - "type": "Municipality" - }, - { - "code": "SI-084", - "name": "Nova Gorica", - "type": "Urban municipality" - }, - { - "code": "SI-085", - "name": "Novo Mesto", - "type": "Urban municipality" - }, - { - "code": "SI-086", - "name": "Odranci", - "type": "Municipality" - }, - { - "code": "SI-087", - "name": "Ormož", - "type": "Municipality" - }, - { - "code": "SI-088", - "name": "Osilnica", - "type": "Municipality" - }, - { - "code": "SI-089", - "name": "Pesnica", - "type": "Municipality" - }, - { - "code": "SI-090", - "name": "Piran", - "type": "Municipality" - }, - { - "code": "SI-091", - "name": "Pivka", - "type": "Municipality" - }, - { - "code": "SI-092", - "name": "Podčetrtek", - "type": "Municipality" - }, - { - "code": "SI-093", - "name": "Podvelka", - "type": "Municipality" - }, - { - "code": "SI-094", - "name": "Postojna", - "type": "Municipality" - }, - { - "code": "SI-095", - "name": "Preddvor", - "type": "Municipality" - }, - { - "code": "SI-096", - "name": "Ptuj", - "type": "Urban municipality" - }, - { - "code": "SI-097", - "name": "Puconci", - "type": "Municipality" - }, - { - "code": "SI-098", - "name": "Rače-Fram", - "type": "Municipality" - }, - { - "code": "SI-099", - "name": "Radeče", - "type": "Municipality" - }, - { - "code": "SI-100", - "name": "Radenci", - "type": "Municipality" - }, - { - "code": "SI-101", - "name": "Radlje ob Dravi", - "type": "Municipality" - }, - { - "code": "SI-102", - "name": "Radovljica", - "type": "Municipality" - }, - { - "code": "SI-103", - "name": "Ravne na Koroškem", - "type": "Municipality" - }, - { - "code": "SI-104", - "name": "Ribnica", - "type": "Municipality" - }, - { - "code": "SI-105", - "name": "Rogašovci", - "type": "Municipality" - }, - { - "code": "SI-106", - "name": "Rogaška Slatina", - "type": "Municipality" - }, - { - "code": "SI-107", - "name": "Rogatec", - "type": "Municipality" - }, - { - "code": "SI-108", - "name": "Ruše", - "type": "Municipality" - }, - { - "code": "SI-109", - "name": "Semič", - "type": "Municipality" - }, - { - "code": "SI-110", - "name": "Sevnica", - "type": "Municipality" - }, - { - "code": "SI-111", - "name": "Sežana", - "type": "Municipality" - }, - { - "code": "SI-112", - "name": "Slovenj Gradec", - "type": "Urban municipality" - }, - { - "code": "SI-113", - "name": "Slovenska Bistrica", - "type": "Municipality" - }, - { - "code": "SI-114", - "name": "Slovenske Konjice", - "type": "Municipality" - }, - { - "code": "SI-115", - "name": "Starše", - "type": "Municipality" - }, - { - "code": "SI-116", - "name": "Sveti Jurij ob Ščavnici", - "type": "Municipality" - }, - { - "code": "SI-117", - "name": "Šenčur", - "type": "Municipality" - }, - { - "code": "SI-118", - "name": "Šentilj", - "type": "Municipality" - }, - { - "code": "SI-119", - "name": "Šentjernej", - "type": "Municipality" - }, - { - "code": "SI-120", - "name": "Šentjur", - "type": "Municipality" - }, - { - "code": "SI-121", - "name": "Škocjan", - "type": "Municipality" - }, - { - "code": "SI-122", - "name": "Škofja Loka", - "type": "Municipality" - }, - { - "code": "SI-123", - "name": "Škofljica", - "type": "Municipality" - }, - { - "code": "SI-124", - "name": "Šmarje pri Jelšah", - "type": "Municipality" - }, - { - "code": "SI-125", - "name": "Šmartno ob Paki", - "type": "Municipality" - }, - { - "code": "SI-126", - "name": "Šoštanj", - "type": "Municipality" - }, - { - "code": "SI-127", - "name": "Štore", - "type": "Municipality" - }, - { - "code": "SI-128", - "name": "Tolmin", - "type": "Municipality" - }, - { - "code": "SI-129", - "name": "Trbovlje", - "type": "Municipality" - }, - { - "code": "SI-130", - "name": "Trebnje", - "type": "Municipality" - }, - { - "code": "SI-131", - "name": "Tržič", - "type": "Municipality" - }, - { - "code": "SI-132", - "name": "Turnišče", - "type": "Municipality" - }, - { - "code": "SI-133", - "name": "Velenje", - "type": "Urban municipality" - }, - { - "code": "SI-134", - "name": "Velike Lašče", - "type": "Municipality" - }, - { - "code": "SI-135", - "name": "Videm", - "type": "Municipality" - }, - { - "code": "SI-136", - "name": "Vipava", - "type": "Municipality" - }, - { - "code": "SI-137", - "name": "Vitanje", - "type": "Municipality" - }, - { - "code": "SI-138", - "name": "Vodice", - "type": "Municipality" - }, - { - "code": "SI-139", - "name": "Vojnik", - "type": "Municipality" - }, - { - "code": "SI-140", - "name": "Vrhnika", - "type": "Municipality" - }, - { - "code": "SI-141", - "name": "Vuzenica", - "type": "Municipality" - }, - { - "code": "SI-142", - "name": "Zagorje ob Savi", - "type": "Municipality" - }, - { - "code": "SI-143", - "name": "Zavrč", - "type": "Municipality" - }, - { - "code": "SI-144", - "name": "Zreče", - "type": "Municipality" - }, - { - "code": "SI-146", - "name": "Železniki", - "type": "Municipality" - }, - { - "code": "SI-147", - "name": "Žiri", - "type": "Municipality" - }, - { - "code": "SI-148", - "name": "Benedikt", - "type": "Municipality" - }, - { - "code": "SI-149", - "name": "Bistrica ob Sotli", - "type": "Municipality" - }, - { - "code": "SI-150", - "name": "Bloke", - "type": "Municipality" - }, - { - "code": "SI-151", - "name": "Braslovče", - "type": "Municipality" - }, - { - "code": "SI-152", - "name": "Cankova", - "type": "Municipality" - }, - { - "code": "SI-153", - "name": "Cerkvenjak", - "type": "Municipality" - }, - { - "code": "SI-154", - "name": "Dobje", - "type": "Municipality" - }, - { - "code": "SI-155", - "name": "Dobrna", - "type": "Municipality" - }, - { - "code": "SI-156", - "name": "Dobrovnik", - "type": "Municipality" - }, - { - "code": "SI-157", - "name": "Dolenjske Toplice", - "type": "Municipality" - }, - { - "code": "SI-158", - "name": "Grad", - "type": "Municipality" - }, - { - "code": "SI-159", - "name": "Hajdina", - "type": "Municipality" - }, - { - "code": "SI-160", - "name": "Hoče-Slivnica", - "type": "Municipality" - }, - { - "code": "SI-161", - "name": "Hodoš", - "type": "Municipality" - }, - { - "code": "SI-162", - "name": "Horjul", - "type": "Municipality" - }, - { - "code": "SI-163", - "name": "Jezersko", - "type": "Municipality" - }, - { - "code": "SI-164", - "name": "Komenda", - "type": "Municipality" - }, - { - "code": "SI-165", - "name": "Kostel", - "type": "Municipality" - }, - { - "code": "SI-166", - "name": "Križevci", - "type": "Municipality" - }, - { - "code": "SI-167", - "name": "Lovrenc na Pohorju", - "type": "Municipality" - }, - { - "code": "SI-168", - "name": "Markovci", - "type": "Municipality" - }, - { - "code": "SI-169", - "name": "Miklavž na Dravskem polju", - "type": "Municipality" - }, - { - "code": "SI-170", - "name": "Mirna Peč", - "type": "Municipality" - }, - { - "code": "SI-171", - "name": "Oplotnica", - "type": "Municipality" - }, - { - "code": "SI-172", - "name": "Podlehnik", - "type": "Municipality" - }, - { - "code": "SI-173", - "name": "Polzela", - "type": "Municipality" - }, - { - "code": "SI-174", - "name": "Prebold", - "type": "Municipality" - }, - { - "code": "SI-175", - "name": "Prevalje", - "type": "Municipality" - }, - { - "code": "SI-176", - "name": "Razkrižje", - "type": "Municipality" - }, - { - "code": "SI-177", - "name": "Ribnica na Pohorju", - "type": "Municipality" - }, - { - "code": "SI-178", - "name": "Selnica ob Dravi", - "type": "Municipality" - }, - { - "code": "SI-179", - "name": "Sodražica", - "type": "Municipality" - }, - { - "code": "SI-180", - "name": "Solčava", - "type": "Municipality" - }, - { - "code": "SI-181", - "name": "Sveta Ana", - "type": "Municipality" - }, - { - "code": "SI-182", - "name": "Sveti Andraž v Slovenskih goricah", - "type": "Municipality" - }, - { - "code": "SI-183", - "name": "Šempeter-Vrtojba", - "type": "Municipality" - }, - { - "code": "SI-184", - "name": "Tabor", - "type": "Municipality" - }, - { - "code": "SI-185", - "name": "Trnovska Vas", - "type": "Municipality" - }, - { - "code": "SI-186", - "name": "Trzin", - "type": "Municipality" - }, - { - "code": "SI-187", - "name": "Velika Polana", - "type": "Municipality" - }, - { - "code": "SI-188", - "name": "Veržej", - "type": "Municipality" - }, - { - "code": "SI-189", - "name": "Vransko", - "type": "Municipality" - }, - { - "code": "SI-190", - "name": "Žalec", - "type": "Municipality" - }, - { - "code": "SI-191", - "name": "Žetale", - "type": "Municipality" - }, - { - "code": "SI-192", - "name": "Žirovnica", - "type": "Municipality" - }, - { - "code": "SI-193", - "name": "Žužemberk", - "type": "Municipality" - }, - { - "code": "SI-194", - "name": "Šmartno pri Litiji", - "type": "Municipality" - }, - { - "code": "SI-195", - "name": "Apače", - "type": "Municipality" - }, - { - "code": "SI-196", - "name": "Cirkulane", - "type": "Municipality" - }, - { - "code": "SI-197", - "name": "Kostanjevica na Krki", - "type": "Municipality" - }, - { - "code": "SI-198", - "name": "Makole", - "type": "Municipality" - }, - { - "code": "SI-199", - "name": "Mokronog-Trebelno", - "type": "Municipality" - }, - { - "code": "SI-200", - "name": "Poljčane", - "type": "Municipality" - }, - { - "code": "SI-201", - "name": "Renče-Vogrsko", - "type": "Municipality" - }, - { - "code": "SI-202", - "name": "Središče ob Dravi", - "type": "Municipality" - }, - { - "code": "SI-203", - "name": "Straža", - "type": "Municipality" - }, - { - "code": "SI-204", - "name": "Sveta Trojica v Slovenskih goricah", - "type": "Municipality" - }, - { - "code": "SI-205", - "name": "Sveti Tomaž", - "type": "Municipality" - }, - { - "code": "SI-206", - "name": "Šmarješke Toplice", - "type": "Municipality" - }, - { - "code": "SI-207", - "name": "Gorje", - "type": "Municipality" - }, - { - "code": "SI-208", - "name": "Log-Dragomer", - "type": "Municipality" - }, - { - "code": "SI-209", - "name": "Rečica ob Savinji", - "type": "Municipality" - }, - { - "code": "SI-210", - "name": "Sveti Jurij v Slovenskih goricah", - "type": "Municipality" - }, - { - "code": "SI-211", - "name": "Šentrupert", - "type": "Municipality" - }, - { - "code": "SI-212", - "name": "Mirna", - "type": "Municipality" - }, - { - "code": "SI-213", - "name": "Ankaran", - "type": "Municipality" - }, - { - "code": "SK-BC", - "name": "Banskobystrický kraj", - "type": "Region" - }, - { - "code": "SK-BL", - "name": "Bratislavský kraj", - "type": "Region" - }, - { - "code": "SK-KI", - "name": "Košický kraj", - "type": "Region" - }, - { - "code": "SK-NI", - "name": "Nitriansky kraj", - "type": "Region" - }, - { - "code": "SK-PV", - "name": "Prešovský kraj", - "type": "Region" - }, - { - "code": "SK-TA", - "name": "Trnavský kraj", - "type": "Region" - }, - { - "code": "SK-TC", - "name": "Trenčiansky kraj", - "type": "Region" - }, - { - "code": "SK-ZI", - "name": "Žilinský kraj", - "type": "Region" - }, - { - "code": "SL-E", - "name": "Eastern", - "type": "Province" - }, - { - "code": "SL-N", - "name": "Northern", - "type": "Province" - }, - { - "code": "SL-NW", - "name": "North Western", - "type": "Province" - }, - { - "code": "SL-S", - "name": "Southern", - "type": "Province" - }, - { - "code": "SL-W", - "name": "Western Area (Freetown)", - "type": "Area" - }, - { - "code": "SM-01", - "name": "Acquaviva", - "type": "Municipality" - }, - { - "code": "SM-02", - "name": "Chiesanuova", - "type": "Municipality" - }, - { - "code": "SM-03", - "name": "Domagnano", - "type": "Municipality" - }, - { - "code": "SM-04", - "name": "Faetano", - "type": "Municipality" - }, - { - "code": "SM-05", - "name": "Fiorentino", - "type": "Municipality" - }, - { - "code": "SM-06", - "name": "Borgo Maggiore", - "type": "Municipality" - }, - { - "code": "SM-07", - "name": "Città di San Marino", - "type": "Municipality" - }, - { - "code": "SM-08", - "name": "Montegiardino", - "type": "Municipality" - }, - { - "code": "SM-09", - "name": "Serravalle", - "type": "Municipality" - }, - { - "code": "SN-DB", - "name": "Diourbel", - "type": "Region" - }, - { - "code": "SN-DK", - "name": "Dakar", - "type": "Region" - }, - { - "code": "SN-FK", - "name": "Fatick", - "type": "Region" - }, - { - "code": "SN-KA", - "name": "Kaffrine", - "type": "Region" - }, - { - "code": "SN-KD", - "name": "Kolda", - "type": "Region" - }, - { - "code": "SN-KE", - "name": "Kédougou", - "type": "Region" - }, - { - "code": "SN-KL", - "name": "Kaolack", - "type": "Region" - }, - { - "code": "SN-LG", - "name": "Louga", - "type": "Region" - }, - { - "code": "SN-MT", - "name": "Matam", - "type": "Region" - }, - { - "code": "SN-SE", - "name": "Sédhiou", - "type": "Region" - }, - { - "code": "SN-SL", - "name": "Saint-Louis", - "type": "Region" - }, - { - "code": "SN-TC", - "name": "Tambacounda", - "type": "Region" - }, - { - "code": "SN-TH", - "name": "Thiès", - "type": "Region" - }, - { - "code": "SN-ZG", - "name": "Ziguinchor", - "type": "Region" - }, - { - "code": "SO-AW", - "name": "Awdal", - "type": "Region" - }, - { - "code": "SO-BK", - "name": "Bakool", - "type": "Region" - }, - { - "code": "SO-BN", - "name": "Banaadir", - "type": "Region" - }, - { - "code": "SO-BR", - "name": "Bari", - "type": "Region" - }, - { - "code": "SO-BY", - "name": "Bay", - "type": "Region" - }, - { - "code": "SO-GA", - "name": "Galguduud", - "type": "Region" - }, - { - "code": "SO-GE", - "name": "Gedo", - "type": "Region" - }, - { - "code": "SO-HI", - "name": "Hiiraan", - "type": "Region" - }, - { - "code": "SO-JD", - "name": "Jubbada Dhexe", - "type": "Region" - }, - { - "code": "SO-JH", - "name": "Jubbada Hoose", - "type": "Region" - }, - { - "code": "SO-MU", - "name": "Mudug", - "type": "Region" - }, - { - "code": "SO-NU", - "name": "Nugaal", - "type": "Region" - }, - { - "code": "SO-SA", - "name": "Sanaag", - "type": "Region" - }, - { - "code": "SO-SD", - "name": "Shabeellaha Dhexe", - "type": "Region" - }, - { - "code": "SO-SH", - "name": "Shabeellaha Hoose", - "type": "Region" - }, - { - "code": "SO-SO", - "name": "Sool", - "type": "Region" - }, - { - "code": "SO-TO", - "name": "Togdheer", - "type": "Region" - }, - { - "code": "SO-WO", - "name": "Woqooyi Galbeed", - "type": "Region" - }, - { - "code": "SR-BR", - "name": "Brokopondo", - "type": "District" - }, - { - "code": "SR-CM", - "name": "Commewijne", - "type": "District" - }, - { - "code": "SR-CR", - "name": "Coronie", - "type": "District" - }, - { - "code": "SR-MA", - "name": "Marowijne", - "type": "District" - }, - { - "code": "SR-NI", - "name": "Nickerie", - "type": "District" - }, - { - "code": "SR-PM", - "name": "Paramaribo", - "type": "District" - }, - { - "code": "SR-PR", - "name": "Para", - "type": "District" - }, - { - "code": "SR-SA", - "name": "Saramacca", - "type": "District" - }, - { - "code": "SR-SI", - "name": "Sipaliwini", - "type": "District" - }, - { - "code": "SR-WA", - "name": "Wanica", - "type": "District" - }, - { - "code": "SS-BN", - "name": "Northern Bahr el Ghazal", - "type": "State" - }, - { - "code": "SS-BW", - "name": "Western Bahr el Ghazal", - "type": "State" - }, - { - "code": "SS-EC", - "name": "Central Equatoria", - "type": "State" - }, - { - "code": "SS-EE", - "name": "Eastern Equatoria", - "type": "State" - }, - { - "code": "SS-EW", - "name": "Western Equatoria", - "type": "State" - }, - { - "code": "SS-JG", - "name": "Jonglei", - "type": "State" - }, - { - "code": "SS-LK", - "name": "Lakes", - "type": "State" - }, - { - "code": "SS-NU", - "name": "Upper Nile", - "type": "State" - }, - { - "code": "SS-UY", - "name": "Unity", - "type": "State" - }, - { - "code": "SS-WR", - "name": "Warrap", - "type": "State" - }, - { - "code": "ST-01", - "name": "Água Grande", - "type": "District" - }, - { - "code": "ST-02", - "name": "Cantagalo", - "type": "District" - }, - { - "code": "ST-03", - "name": "Caué", - "type": "District" - }, - { - "code": "ST-04", - "name": "Lembá", - "type": "District" - }, - { - "code": "ST-05", - "name": "Lobata", - "type": "District" - }, - { - "code": "ST-06", - "name": "Mé-Zóchi", - "type": "District" - }, - { - "code": "ST-P", - "name": "Príncipe", - "type": "Autonomous region" - }, - { - "code": "SV-AH", - "name": "Ahuachapán", - "type": "Department" - }, - { - "code": "SV-CA", - "name": "Cabañas", - "type": "Department" - }, - { - "code": "SV-CH", - "name": "Chalatenango", - "type": "Department" - }, - { - "code": "SV-CU", - "name": "Cuscatlán", - "type": "Department" - }, - { - "code": "SV-LI", - "name": "La Libertad", - "type": "Department" - }, - { - "code": "SV-MO", - "name": "Morazán", - "type": "Department" - }, - { - "code": "SV-PA", - "name": "La Paz", - "type": "Department" - }, - { - "code": "SV-SA", - "name": "Santa Ana", - "type": "Department" - }, - { - "code": "SV-SM", - "name": "San Miguel", - "type": "Department" - }, - { - "code": "SV-SO", - "name": "Sonsonate", - "type": "Department" - }, - { - "code": "SV-SS", - "name": "San Salvador", - "type": "Department" - }, - { - "code": "SV-SV", - "name": "San Vicente", - "type": "Department" - }, - { - "code": "SV-UN", - "name": "La Unión", - "type": "Department" - }, - { - "code": "SV-US", - "name": "Usulután", - "type": "Department" - }, - { - "code": "SY-DI", - "name": "Dimashq", - "type": "Province" - }, - { - "code": "SY-DR", - "name": "Dar'ā", - "type": "Province" - }, - { - "code": "SY-DY", - "name": "Dayr az Zawr", - "type": "Province" - }, - { - "code": "SY-HA", - "name": "Al Ḩasakah", - "type": "Province" - }, - { - "code": "SY-HI", - "name": "Ḩimş", - "type": "Province" - }, - { - "code": "SY-HL", - "name": "Ḩalab", - "type": "Province" - }, - { - "code": "SY-HM", - "name": "Ḩamāh", - "type": "Province" - }, - { - "code": "SY-ID", - "name": "Idlib", - "type": "Province" - }, - { - "code": "SY-LA", - "name": "Al Lādhiqīyah", - "type": "Province" - }, - { - "code": "SY-QU", - "name": "Al Qunayţirah", - "type": "Province" - }, - { - "code": "SY-RA", - "name": "Ar Raqqah", - "type": "Province" - }, - { - "code": "SY-RD", - "name": "Rīf Dimashq", - "type": "Province" - }, - { - "code": "SY-SU", - "name": "As Suwaydā'", - "type": "Province" - }, - { - "code": "SY-TA", - "name": "Ţarţūs", - "type": "Province" - }, - { - "code": "SZ-HH", - "name": "Hhohho", - "type": "Region" - }, - { - "code": "SZ-LU", - "name": "Lubombo", - "type": "Region" - }, - { - "code": "SZ-MA", - "name": "Manzini", - "type": "Region" - }, - { - "code": "SZ-SH", - "name": "Shiselweni", - "type": "Region" - }, - { - "code": "TD-BA", - "name": "Batha", - "type": "Province" - }, - { - "code": "TD-BG", - "name": "Bahr el Ghazal", - "type": "Province" - }, - { - "code": "TD-BO", - "name": "Borkou", - "type": "Province" - }, - { - "code": "TD-CB", - "name": "Chari-Baguirmi", - "type": "Province" - }, - { - "code": "TD-EE", - "name": "Ennedi-Est", - "type": "Province" - }, - { - "code": "TD-EO", - "name": "Ennedi-Ouest", - "type": "Province" - }, - { - "code": "TD-GR", - "name": "Guéra", - "type": "Province" - }, - { - "code": "TD-HL", - "name": "Hadjer Lamis", - "type": "Province" - }, - { - "code": "TD-KA", - "name": "Kanem", - "type": "Province" - }, - { - "code": "TD-LC", - "name": "Lac", - "type": "Province" - }, - { - "code": "TD-LO", - "name": "Logone-Occidental", - "type": "Province" - }, - { - "code": "TD-LR", - "name": "Logone-Oriental", - "type": "Province" - }, - { - "code": "TD-MA", - "name": "Mandoul", - "type": "Province" - }, - { - "code": "TD-MC", - "name": "Moyen-Chari", - "type": "Province" - }, - { - "code": "TD-ME", - "name": "Mayo-Kebbi-Est", - "type": "Province" - }, - { - "code": "TD-MO", - "name": "Mayo-Kebbi-Ouest", - "type": "Province" - }, - { - "code": "TD-ND", - "name": "Ville de Ndjamena", - "type": "Province" - }, - { - "code": "TD-OD", - "name": "Ouaddaï", - "type": "Province" - }, - { - "code": "TD-SA", - "name": "Salamat", - "type": "Province" - }, - { - "code": "TD-SI", - "name": "Sila", - "type": "Province" - }, - { - "code": "TD-TA", - "name": "Tandjilé", - "type": "Province" - }, - { - "code": "TD-TI", - "name": "Tibesti", - "type": "Province" - }, - { - "code": "TD-WF", - "name": "Wadi Fira", - "type": "Province" - }, - { - "code": "TG-C", - "name": "Centrale", - "type": "Region" - }, - { - "code": "TG-K", - "name": "Kara", - "type": "Region" - }, - { - "code": "TG-M", - "name": "Maritime (Région)", - "type": "Region" - }, - { - "code": "TG-P", - "name": "Plateaux", - "type": "Region" - }, - { - "code": "TG-S", - "name": "Savanes", - "type": "Region" - }, - { - "code": "TH-10", - "name": "Krung Thep Maha Nakhon", - "type": "Metropolitan administration" - }, - { - "code": "TH-11", - "name": "Samut Prakan", - "type": "Province" - }, - { - "code": "TH-12", - "name": "Nonthaburi", - "type": "Province" - }, - { - "code": "TH-13", - "name": "Pathum Thani", - "type": "Province" - }, - { - "code": "TH-14", - "name": "Phra Nakhon Si Ayutthaya", - "type": "Province" - }, - { - "code": "TH-15", - "name": "Ang Thong", - "type": "Province" - }, - { - "code": "TH-16", - "name": "Lop Buri", - "type": "Province" - }, - { - "code": "TH-17", - "name": "Sing Buri", - "type": "Province" - }, - { - "code": "TH-18", - "name": "Chai Nat", - "type": "Province" - }, - { - "code": "TH-19", - "name": "Saraburi", - "type": "Province" - }, - { - "code": "TH-20", - "name": "Chon Buri", - "type": "Province" - }, - { - "code": "TH-21", - "name": "Rayong", - "type": "Province" - }, - { - "code": "TH-22", - "name": "Chanthaburi", - "type": "Province" - }, - { - "code": "TH-23", - "name": "Trat", - "type": "Province" - }, - { - "code": "TH-24", - "name": "Chachoengsao", - "type": "Province" - }, - { - "code": "TH-25", - "name": "Prachin Buri", - "type": "Province" - }, - { - "code": "TH-26", - "name": "Nakhon Nayok", - "type": "Province" - }, - { - "code": "TH-27", - "name": "Sa Kaeo", - "type": "Province" - }, - { - "code": "TH-30", - "name": "Nakhon Ratchasima", - "type": "Province" - }, - { - "code": "TH-31", - "name": "Buri Ram", - "type": "Province" - }, - { - "code": "TH-32", - "name": "Surin", - "type": "Province" - }, - { - "code": "TH-33", - "name": "Si Sa Ket", - "type": "Province" - }, - { - "code": "TH-34", - "name": "Ubon Ratchathani", - "type": "Province" - }, - { - "code": "TH-35", - "name": "Yasothon", - "type": "Province" - }, - { - "code": "TH-36", - "name": "Chaiyaphum", - "type": "Province" - }, - { - "code": "TH-37", - "name": "Amnat Charoen", - "type": "Province" - }, - { - "code": "TH-38", - "name": "Bueng Kan", - "type": "Province" - }, - { - "code": "TH-39", - "name": "Nong Bua Lam Phu", - "type": "Province" - }, - { - "code": "TH-40", - "name": "Khon Kaen", - "type": "Province" - }, - { - "code": "TH-41", - "name": "Udon Thani", - "type": "Province" - }, - { - "code": "TH-42", - "name": "Loei", - "type": "Province" - }, - { - "code": "TH-43", - "name": "Nong Khai", - "type": "Province" - }, - { - "code": "TH-44", - "name": "Maha Sarakham", - "type": "Province" - }, - { - "code": "TH-45", - "name": "Roi Et", - "type": "Province" - }, - { - "code": "TH-46", - "name": "Kalasin", - "type": "Province" - }, - { - "code": "TH-47", - "name": "Sakon Nakhon", - "type": "Province" - }, - { - "code": "TH-48", - "name": "Nakhon Phanom", - "type": "Province" - }, - { - "code": "TH-49", - "name": "Mukdahan", - "type": "Province" - }, - { - "code": "TH-50", - "name": "Chiang Mai", - "type": "Province" - }, - { - "code": "TH-51", - "name": "Lamphun", - "type": "Province" - }, - { - "code": "TH-52", - "name": "Lampang", - "type": "Province" - }, - { - "code": "TH-53", - "name": "Uttaradit", - "type": "Province" - }, - { - "code": "TH-54", - "name": "Phrae", - "type": "Province" - }, - { - "code": "TH-55", - "name": "Nan", - "type": "Province" - }, - { - "code": "TH-56", - "name": "Phayao", - "type": "Province" - }, - { - "code": "TH-57", - "name": "Chiang Rai", - "type": "Province" - }, - { - "code": "TH-58", - "name": "Mae Hong Son", - "type": "Province" - }, - { - "code": "TH-60", - "name": "Nakhon Sawan", - "type": "Province" - }, - { - "code": "TH-61", - "name": "Uthai Thani", - "type": "Province" - }, - { - "code": "TH-62", - "name": "Kamphaeng Phet", - "type": "Province" - }, - { - "code": "TH-63", - "name": "Tak", - "type": "Province" - }, - { - "code": "TH-64", - "name": "Sukhothai", - "type": "Province" - }, - { - "code": "TH-65", - "name": "Phitsanulok", - "type": "Province" - }, - { - "code": "TH-66", - "name": "Phichit", - "type": "Province" - }, - { - "code": "TH-67", - "name": "Phetchabun", - "type": "Province" - }, - { - "code": "TH-70", - "name": "Ratchaburi", - "type": "Province" - }, - { - "code": "TH-71", - "name": "Kanchanaburi", - "type": "Province" - }, - { - "code": "TH-72", - "name": "Suphan Buri", - "type": "Province" - }, - { - "code": "TH-73", - "name": "Nakhon Pathom", - "type": "Province" - }, - { - "code": "TH-74", - "name": "Samut Sakhon", - "type": "Province" - }, - { - "code": "TH-75", - "name": "Samut Songkhram", - "type": "Province" - }, - { - "code": "TH-76", - "name": "Phetchaburi", - "type": "Province" - }, - { - "code": "TH-77", - "name": "Prachuap Khiri Khan", - "type": "Province" - }, - { - "code": "TH-80", - "name": "Nakhon Si Thammarat", - "type": "Province" - }, - { - "code": "TH-81", - "name": "Krabi", - "type": "Province" - }, - { - "code": "TH-82", - "name": "Phangnga", - "type": "Province" - }, - { - "code": "TH-83", - "name": "Phuket", - "type": "Province" - }, - { - "code": "TH-84", - "name": "Surat Thani", - "type": "Province" - }, - { - "code": "TH-85", - "name": "Ranong", - "type": "Province" - }, - { - "code": "TH-86", - "name": "Chumphon", - "type": "Province" - }, - { - "code": "TH-90", - "name": "Songkhla", - "type": "Province" - }, - { - "code": "TH-91", - "name": "Satun", - "type": "Province" - }, - { - "code": "TH-92", - "name": "Trang", - "type": "Province" - }, - { - "code": "TH-93", - "name": "Phatthalung", - "type": "Province" - }, - { - "code": "TH-94", - "name": "Pattani", - "type": "Province" - }, - { - "code": "TH-95", - "name": "Yala", - "type": "Province" - }, - { - "code": "TH-96", - "name": "Narathiwat", - "type": "Province" - }, - { - "code": "TH-S", - "name": "Phatthaya", - "type": "Special administrative city" - }, - { - "code": "TJ-DU", - "name": "Dushanbe", - "type": "Capital territory" - }, - { - "code": "TJ-GB", - "name": "Kŭhistoni Badakhshon", - "type": "Autonomous region" - }, - { - "code": "TJ-KT", - "name": "Khatlon", - "type": "Region" - }, - { - "code": "TJ-RA", - "name": "nohiyahoi tobei jumhurí", - "type": "Districts under republic administration" - }, - { - "code": "TJ-SU", - "name": "Sughd", - "type": "Region" - }, - { - "code": "TL-AL", - "name": "Aileu", - "type": "Municipality" - }, - { - "code": "TL-AN", - "name": "Ainaro", - "type": "Municipality" - }, - { - "code": "TL-BA", - "name": "Baucau", - "type": "Municipality" - }, - { - "code": "TL-BO", - "name": "Bobonaro", - "type": "Municipality" - }, - { - "code": "TL-CO", - "name": "Cova Lima", - "type": "Municipality" - }, - { - "code": "TL-DI", - "name": "Díli", - "type": "Municipality" - }, - { - "code": "TL-ER", - "name": "Ermera", - "type": "Municipality" - }, - { - "code": "TL-LA", - "name": "Lautein", - "type": "Municipality" - }, - { - "code": "TL-LI", - "name": "Likisá", - "type": "Municipality" - }, - { - "code": "TL-MF", - "name": "Manufahi", - "type": "Municipality" - }, - { - "code": "TL-MT", - "name": "Manatuto", - "type": "Municipality" - }, - { - "code": "TL-OE", - "name": "Oekusi-Ambenu", - "type": "Special administrative region" - }, - { - "code": "TL-VI", - "name": "Vikeke", - "type": "Municipality" - }, - { - "code": "TM-A", - "name": "Ahal", - "type": "Region" - }, - { - "code": "TM-B", - "name": "Balkan", - "type": "Region" - }, - { - "code": "TM-D", - "name": "Daşoguz", - "type": "Region" - }, - { - "code": "TM-L", - "name": "Lebap", - "type": "Region" - }, - { - "code": "TM-M", - "name": "Mary", - "type": "Region" - }, - { - "code": "TM-S", - "name": "Aşgabat", - "type": "City" - }, - { - "code": "TN-11", - "name": "Tunis", - "type": "Governorate" - }, - { - "code": "TN-12", - "name": "L'Ariana", - "type": "Governorate" - }, - { - "code": "TN-13", - "name": "Ben Arous", - "type": "Governorate" - }, - { - "code": "TN-14", - "name": "La Manouba", - "type": "Governorate" - }, - { - "code": "TN-21", - "name": "Nabeul", - "type": "Governorate" - }, - { - "code": "TN-22", - "name": "Zaghouan", - "type": "Governorate" - }, - { - "code": "TN-23", - "name": "Bizerte", - "type": "Governorate" - }, - { - "code": "TN-31", - "name": "Béja", - "type": "Governorate" - }, - { - "code": "TN-32", - "name": "Jendouba", - "type": "Governorate" - }, - { - "code": "TN-33", - "name": "Le Kef", - "type": "Governorate" - }, - { - "code": "TN-34", - "name": "Siliana", - "type": "Governorate" - }, - { - "code": "TN-41", - "name": "Kairouan", - "type": "Governorate" - }, - { - "code": "TN-42", - "name": "Kasserine", - "type": "Governorate" - }, - { - "code": "TN-43", - "name": "Sidi Bouzid", - "type": "Governorate" - }, - { - "code": "TN-51", - "name": "Sousse", - "type": "Governorate" - }, - { - "code": "TN-52", - "name": "Monastir", - "type": "Governorate" - }, - { - "code": "TN-53", - "name": "Mahdia", - "type": "Governorate" - }, - { - "code": "TN-61", - "name": "Sfax", - "type": "Governorate" - }, - { - "code": "TN-71", - "name": "Gafsa", - "type": "Governorate" - }, - { - "code": "TN-72", - "name": "Tozeur", - "type": "Governorate" - }, - { - "code": "TN-73", - "name": "Kébili", - "type": "Governorate" - }, - { - "code": "TN-81", - "name": "Gabès", - "type": "Governorate" - }, - { - "code": "TN-82", - "name": "Médenine", - "type": "Governorate" - }, - { - "code": "TN-83", - "name": "Tataouine", - "type": "Governorate" - }, - { - "code": "TO-01", - "name": "'Eua", - "type": "Division" - }, - { - "code": "TO-02", - "name": "Ha'apai", - "type": "Division" - }, - { - "code": "TO-03", - "name": "Niuas", - "type": "Division" - }, - { - "code": "TO-04", - "name": "Tongatapu", - "type": "Division" - }, - { - "code": "TO-05", - "name": "Vava'u", - "type": "Division" - }, - { - "code": "TR-01", - "name": "Adana", - "type": "Province" - }, - { - "code": "TR-02", - "name": "Adıyaman", - "type": "Province" - }, - { - "code": "TR-03", - "name": "Afyonkarahisar", - "type": "Province" - }, - { - "code": "TR-04", - "name": "Ağrı", - "type": "Province" - }, - { - "code": "TR-05", - "name": "Amasya", - "type": "Province" - }, - { - "code": "TR-06", - "name": "Ankara", - "type": "Province" - }, - { - "code": "TR-07", - "name": "Antalya", - "type": "Province" - }, - { - "code": "TR-08", - "name": "Artvin", - "type": "Province" - }, - { - "code": "TR-09", - "name": "Aydın", - "type": "Province" - }, - { - "code": "TR-10", - "name": "Balıkesir", - "type": "Province" - }, - { - "code": "TR-11", - "name": "Bilecik", - "type": "Province" - }, - { - "code": "TR-12", - "name": "Bingöl", - "type": "Province" - }, - { - "code": "TR-13", - "name": "Bitlis", - "type": "Province" - }, - { - "code": "TR-14", - "name": "Bolu", - "type": "Province" - }, - { - "code": "TR-15", - "name": "Burdur", - "type": "Province" - }, - { - "code": "TR-16", - "name": "Bursa", - "type": "Province" - }, - { - "code": "TR-17", - "name": "Çanakkale", - "type": "Province" - }, - { - "code": "TR-18", - "name": "Çankırı", - "type": "Province" - }, - { - "code": "TR-19", - "name": "Çorum", - "type": "Province" - }, - { - "code": "TR-20", - "name": "Denizli", - "type": "Province" - }, - { - "code": "TR-21", - "name": "Diyarbakır", - "type": "Province" - }, - { - "code": "TR-22", - "name": "Edirne", - "type": "Province" - }, - { - "code": "TR-23", - "name": "Elazığ", - "type": "Province" - }, - { - "code": "TR-24", - "name": "Erzincan", - "type": "Province" - }, - { - "code": "TR-25", - "name": "Erzurum", - "type": "Province" - }, - { - "code": "TR-26", - "name": "Eskişehir", - "type": "Province" - }, - { - "code": "TR-27", - "name": "Gaziantep", - "type": "Province" - }, - { - "code": "TR-28", - "name": "Giresun", - "type": "Province" - }, - { - "code": "TR-29", - "name": "Gümüşhane", - "type": "Province" - }, - { - "code": "TR-30", - "name": "Hakkâri", - "type": "Province" - }, - { - "code": "TR-31", - "name": "Hatay", - "type": "Province" - }, - { - "code": "TR-32", - "name": "Isparta", - "type": "Province" - }, - { - "code": "TR-33", - "name": "Mersin", - "type": "Province" - }, - { - "code": "TR-34", - "name": "İstanbul", - "type": "Province" - }, - { - "code": "TR-35", - "name": "İzmir", - "type": "Province" - }, - { - "code": "TR-36", - "name": "Kars", - "type": "Province" - }, - { - "code": "TR-37", - "name": "Kastamonu", - "type": "Province" - }, - { - "code": "TR-38", - "name": "Kayseri", - "type": "Province" - }, - { - "code": "TR-39", - "name": "Kırklareli", - "type": "Province" - }, - { - "code": "TR-40", - "name": "Kırşehir", - "type": "Province" - }, - { - "code": "TR-41", - "name": "Kocaeli", - "type": "Province" - }, - { - "code": "TR-42", - "name": "Konya", - "type": "Province" - }, - { - "code": "TR-43", - "name": "Kütahya", - "type": "Province" - }, - { - "code": "TR-44", - "name": "Malatya", - "type": "Province" - }, - { - "code": "TR-45", - "name": "Manisa", - "type": "Province" - }, - { - "code": "TR-46", - "name": "Kahramanmaraş", - "type": "Province" - }, - { - "code": "TR-47", - "name": "Mardin", - "type": "Province" - }, - { - "code": "TR-48", - "name": "Muğla", - "type": "Province" - }, - { - "code": "TR-49", - "name": "Muş", - "type": "Province" - }, - { - "code": "TR-50", - "name": "Nevşehir", - "type": "Province" - }, - { - "code": "TR-51", - "name": "Niğde", - "type": "Province" - }, - { - "code": "TR-52", - "name": "Ordu", - "type": "Province" - }, - { - "code": "TR-53", - "name": "Rize", - "type": "Province" - }, - { - "code": "TR-54", - "name": "Sakarya", - "type": "Province" - }, - { - "code": "TR-55", - "name": "Samsun", - "type": "Province" - }, - { - "code": "TR-56", - "name": "Siirt", - "type": "Province" - }, - { - "code": "TR-57", - "name": "Sinop", - "type": "Province" - }, - { - "code": "TR-58", - "name": "Sivas", - "type": "Province" - }, - { - "code": "TR-59", - "name": "Tekirdağ", - "type": "Province" - }, - { - "code": "TR-60", - "name": "Tokat", - "type": "Province" - }, - { - "code": "TR-61", - "name": "Trabzon", - "type": "Province" - }, - { - "code": "TR-62", - "name": "Tunceli", - "type": "Province" - }, - { - "code": "TR-63", - "name": "Şanlıurfa", - "type": "Province" - }, - { - "code": "TR-64", - "name": "Uşak", - "type": "Province" - }, - { - "code": "TR-65", - "name": "Van", - "type": "Province" - }, - { - "code": "TR-66", - "name": "Yozgat", - "type": "Province" - }, - { - "code": "TR-67", - "name": "Zonguldak", - "type": "Province" - }, - { - "code": "TR-68", - "name": "Aksaray", - "type": "Province" - }, - { - "code": "TR-69", - "name": "Bayburt", - "type": "Province" - }, - { - "code": "TR-70", - "name": "Karaman", - "type": "Province" - }, - { - "code": "TR-71", - "name": "Kırıkkale", - "type": "Province" - }, - { - "code": "TR-72", - "name": "Batman", - "type": "Province" - }, - { - "code": "TR-73", - "name": "Şırnak", - "type": "Province" - }, - { - "code": "TR-74", - "name": "Bartın", - "type": "Province" - }, - { - "code": "TR-75", - "name": "Ardahan", - "type": "Province" - }, - { - "code": "TR-76", - "name": "Iğdır", - "type": "Province" - }, - { - "code": "TR-77", - "name": "Yalova", - "type": "Province" - }, - { - "code": "TR-78", - "name": "Karabük", - "type": "Province" - }, - { - "code": "TR-79", - "name": "Kilis", - "type": "Province" - }, - { - "code": "TR-80", - "name": "Osmaniye", - "type": "Province" - }, - { - "code": "TR-81", - "name": "Düzce", - "type": "Province" - }, - { - "code": "TT-ARI", - "name": "Arima", - "type": "Borough" - }, - { - "code": "TT-CHA", - "name": "Chaguanas", - "type": "Borough" - }, - { - "code": "TT-CTT", - "name": "Couva-Tabaquite-Talparo", - "type": "Region" - }, - { - "code": "TT-DMN", - "name": "Diego Martin", - "type": "Region" - }, - { - "code": "TT-MRC", - "name": "Mayaro-Rio Claro", - "type": "Region" - }, - { - "code": "TT-PED", - "name": "Penal-Debe", - "type": "Region" - }, - { - "code": "TT-POS", - "name": "Port of Spain", - "type": "City" - }, - { - "code": "TT-PRT", - "name": "Princes Town", - "type": "Region" - }, - { - "code": "TT-PTF", - "name": "Point Fortin", - "type": "Borough" - }, - { - "code": "TT-SFO", - "name": "San Fernando", - "type": "City" - }, - { - "code": "TT-SGE", - "name": "Sangre Grande", - "type": "Region" - }, - { - "code": "TT-SIP", - "name": "Siparia", - "type": "Region" - }, - { - "code": "TT-SJL", - "name": "San Juan-Laventille", - "type": "Region" - }, - { - "code": "TT-TOB", - "name": "Tobago", - "type": "Ward" - }, - { - "code": "TT-TUP", - "name": "Tunapuna-Piarco", - "type": "Region" - }, - { - "code": "TV-FUN", - "name": "Funafuti", - "type": "Town council" - }, - { - "code": "TV-NIT", - "name": "Niutao", - "type": "Island council" - }, - { - "code": "TV-NKF", - "name": "Nukufetau", - "type": "Island council" - }, - { - "code": "TV-NKL", - "name": "Nukulaelae", - "type": "Island council" - }, - { - "code": "TV-NMA", - "name": "Nanumea", - "type": "Island council" - }, - { - "code": "TV-NMG", - "name": "Nanumaga", - "type": "Island council" - }, - { - "code": "TV-NUI", - "name": "Nui", - "type": "Island council" - }, - { - "code": "TV-VAI", - "name": "Vaitupu", - "type": "Island council" - }, - { - "code": "TW-CHA", - "name": "Changhua", - "type": "County" - }, - { - "code": "TW-CYI", - "name": "Chiayi", - "type": "City" - }, - { - "code": "TW-CYQ", - "name": "Chiayi", - "type": "County" - }, - { - "code": "TW-HSQ", - "name": "Hsinchu", - "type": "County" - }, - { - "code": "TW-HSZ", - "name": "Hsinchu", - "type": "City" - }, - { - "code": "TW-HUA", - "name": "Hualien", - "type": "County" - }, - { - "code": "TW-ILA", - "name": "Yilan", - "type": "County" - }, - { - "code": "TW-KEE", - "name": "Keelung", - "type": "City" - }, - { - "code": "TW-KHH", - "name": "Kaohsiung", - "type": "Special municipality" - }, - { - "code": "TW-KIN", - "name": "Kinmen", - "type": "County" - }, - { - "code": "TW-LIE", - "name": "Lienchiang", - "type": "County" - }, - { - "code": "TW-MIA", - "name": "Miaoli", - "type": "County" - }, - { - "code": "TW-NAN", - "name": "Nantou", - "type": "County" - }, - { - "code": "TW-NWT", - "name": "New Taipei", - "type": "Special municipality" - }, - { - "code": "TW-PEN", - "name": "Penghu", - "type": "County" - }, - { - "code": "TW-PIF", - "name": "Pingtung", - "type": "County" - }, - { - "code": "TW-TAO", - "name": "Taoyuan", - "type": "Special municipality" - }, - { - "code": "TW-TNN", - "name": "Tainan", - "type": "Special municipality" - }, - { - "code": "TW-TPE", - "name": "Taipei", - "type": "Special municipality" - }, - { - "code": "TW-TTT", - "name": "Taitung", - "type": "County" - }, - { - "code": "TW-TXG", - "name": "Taichung", - "type": "Special municipality" - }, - { - "code": "TW-YUN", - "name": "Yunlin", - "type": "County" - }, - { - "code": "TZ-01", - "name": "Arusha", - "type": "Region" - }, - { - "code": "TZ-02", - "name": "Dar es Salaam", - "type": "Region" - }, - { - "code": "TZ-03", - "name": "Dodoma", - "type": "Region" - }, - { - "code": "TZ-04", - "name": "Iringa", - "type": "Region" - }, - { - "code": "TZ-05", - "name": "Kagera", - "type": "Region" - }, - { - "code": "TZ-06", - "name": "Pemba North", - "type": "Region" - }, - { - "code": "TZ-07", - "name": "Zanzibar North", - "type": "Region" - }, - { - "code": "TZ-08", - "name": "Kigoma", - "type": "Region" - }, - { - "code": "TZ-09", - "name": "Kilimanjaro", - "type": "Region" - }, - { - "code": "TZ-10", - "name": "Pemba South", - "type": "Region" - }, - { - "code": "TZ-11", - "name": "Zanzibar South", - "type": "Region" - }, - { - "code": "TZ-12", - "name": "Lindi", - "type": "Region" - }, - { - "code": "TZ-13", - "name": "Mara", - "type": "Region" - }, - { - "code": "TZ-14", - "name": "Mbeya", - "type": "Region" - }, - { - "code": "TZ-15", - "name": "Zanzibar West", - "type": "Region" - }, - { - "code": "TZ-16", - "name": "Morogoro", - "type": "Region" - }, - { - "code": "TZ-17", - "name": "Mtwara", - "type": "Region" - }, - { - "code": "TZ-18", - "name": "Mwanza", - "type": "Region" - }, - { - "code": "TZ-19", - "name": "Coast", - "type": "Region" - }, - { - "code": "TZ-20", - "name": "Rukwa", - "type": "Region" - }, - { - "code": "TZ-21", - "name": "Ruvuma", - "type": "Region" - }, - { - "code": "TZ-22", - "name": "Shinyanga", - "type": "Region" - }, - { - "code": "TZ-23", - "name": "Singida", - "type": "Region" - }, - { - "code": "TZ-24", - "name": "Tabora", - "type": "Region" - }, - { - "code": "TZ-25", - "name": "Tanga", - "type": "Region" - }, - { - "code": "TZ-26", - "name": "Manyara", - "type": "Region" - }, - { - "code": "TZ-27", - "name": "Geita", - "type": "Region" - }, - { - "code": "TZ-28", - "name": "Katavi", - "type": "Region" - }, - { - "code": "TZ-29", - "name": "Njombe", - "type": "Region" - }, - { - "code": "TZ-30", - "name": "Simiyu", - "type": "Region" - }, - { - "code": "TZ-31", - "name": "Songwe", - "type": "Region" - }, - { - "code": "UA-05", - "name": "Vinnytska oblast", - "type": "Region" - }, - { - "code": "UA-07", - "name": "Volynska oblast", - "type": "Region" - }, - { - "code": "UA-09", - "name": "Luhanska oblast", - "type": "Region" - }, - { - "code": "UA-12", - "name": "Dnipropetrovska oblast", - "type": "Region" - }, - { - "code": "UA-14", - "name": "Donetska oblast", - "type": "Region" - }, - { - "code": "UA-18", - "name": "Zhytomyrska oblast", - "type": "Region" - }, - { - "code": "UA-21", - "name": "Zakarpatska oblast", - "type": "Region" - }, - { - "code": "UA-23", - "name": "Zaporizka oblast", - "type": "Region" - }, - { - "code": "UA-26", - "name": "Ivano-Frankivska oblast", - "type": "Region" - }, - { - "code": "UA-30", - "name": "Kyiv", - "type": "City" - }, - { - "code": "UA-32", - "name": "Kyivska oblast", - "type": "Region" - }, - { - "code": "UA-35", - "name": "Kirovohradska oblast", - "type": "Region" - }, - { - "code": "UA-40", - "name": "Sevastopol", - "type": "City" - }, - { - "code": "UA-43", - "name": "Avtonomna Respublika Krym", - "type": "Republic" - }, - { - "code": "UA-46", - "name": "Lvivska oblast", - "type": "Region" - }, - { - "code": "UA-48", - "name": "Mykolaivska oblast", - "type": "Region" - }, - { - "code": "UA-51", - "name": "Odeska oblast", - "type": "Region" - }, - { - "code": "UA-53", - "name": "Poltavska oblast", - "type": "Region" - }, - { - "code": "UA-56", - "name": "Rivnenska oblast", - "type": "Region" - }, - { - "code": "UA-59", - "name": "Sumska oblast", - "type": "Region" - }, - { - "code": "UA-61", - "name": "Ternopilska oblast", - "type": "Region" - }, - { - "code": "UA-63", - "name": "Kharkivska oblast", - "type": "Region" - }, - { - "code": "UA-65", - "name": "Khersonska oblast", - "type": "Region" - }, - { - "code": "UA-68", - "name": "Khmelnytska oblast", - "type": "Region" - }, - { - "code": "UA-71", - "name": "Cherkaska oblast", - "type": "Region" - }, - { - "code": "UA-74", - "name": "Chernihivska oblast", - "type": "Region" - }, - { - "code": "UA-77", - "name": "Chernivetska oblast", - "type": "Region" - }, - { - "code": "UG-101", - "name": "Kalangala", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-102", - "name": "Kampala", - "parent": "UG-C", - "type": "City" - }, - { - "code": "UG-103", - "name": "Kiboga", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-104", - "name": "Luwero", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-105", - "name": "Masaka", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-106", - "name": "Mpigi", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-107", - "name": "Mubende", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-108", - "name": "Mukono", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-109", - "name": "Nakasongola", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-110", - "name": "Rakai", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-111", - "name": "Sembabule", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-112", - "name": "Kayunga", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-113", - "name": "Wakiso", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-114", - "name": "Lyantonde", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-115", - "name": "Mityana", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-116", - "name": "Nakaseke", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-117", - "name": "Buikwe", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-118", - "name": "Bukomansibi", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-119", - "name": "Butambala", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-120", - "name": "Buvuma", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-121", - "name": "Gomba", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-122", - "name": "Kalungu", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-123", - "name": "Kyankwanzi", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-124", - "name": "Lwengo", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-125", - "name": "Kyotera", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-126", - "name": "Kasanda", - "parent": "UG-C", - "type": "District" - }, - { - "code": "UG-201", - "name": "Bugiri", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-202", - "name": "Busia", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-203", - "name": "Iganga", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-204", - "name": "Jinja", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-205", - "name": "Kamuli", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-206", - "name": "Kapchorwa", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-207", - "name": "Katakwi", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-208", - "name": "Kumi", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-209", - "name": "Mbale", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-210", - "name": "Pallisa", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-211", - "name": "Soroti", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-212", - "name": "Tororo", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-213", - "name": "Kaberamaido", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-214", - "name": "Mayuge", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-215", - "name": "Sironko", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-216", - "name": "Amuria", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-217", - "name": "Budaka", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-218", - "name": "Bududa", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-219", - "name": "Bukedea", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-220", - "name": "Bukwo", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-221", - "name": "Butaleja", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-222", - "name": "Kaliro", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-223", - "name": "Manafwa", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-224", - "name": "Namutumba", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-225", - "name": "Bulambuli", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-226", - "name": "Buyende", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-227", - "name": "Kibuku", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-228", - "name": "Kween", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-229", - "name": "Luuka", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-230", - "name": "Namayingo", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-231", - "name": "Ngora", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-232", - "name": "Serere", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-233", - "name": "Butebo", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-234", - "name": "Namisindwa", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-235", - "name": "Bugweri", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-236", - "name": "Kapelebyong", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-237", - "name": "Kalaki", - "parent": "UG-E", - "type": "District" - }, - { - "code": "UG-301", - "name": "Adjumani", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-302", - "name": "Apac", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-303", - "name": "Arua", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-304", - "name": "Gulu", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-305", - "name": "Kitgum", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-306", - "name": "Kotido", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-307", - "name": "Lira", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-308", - "name": "Moroto", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-309", - "name": "Moyo", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-310", - "name": "Nebbi", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-311", - "name": "Nakapiripirit", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-312", - "name": "Pader", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-313", - "name": "Yumbe", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-314", - "name": "Abim", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-315", - "name": "Amolatar", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-316", - "name": "Amuru", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-317", - "name": "Dokolo", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-318", - "name": "Kaabong", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-319", - "name": "Koboko", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-320", - "name": "Maracha", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-321", - "name": "Oyam", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-322", - "name": "Agago", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-323", - "name": "Alebtong", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-324", - "name": "Amudat", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-325", - "name": "Kole", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-326", - "name": "Lamwo", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-327", - "name": "Napak", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-328", - "name": "Nwoya", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-329", - "name": "Otuke", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-330", - "name": "Zombo", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-331", - "name": "Omoro", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-332", - "name": "Pakwach", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-333", - "name": "Kwania", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-334", - "name": "Nabilatuk", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-335", - "name": "Karenga", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-336", - "name": "Madi-Okollo", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-337", - "name": "Obongi", - "parent": "UG-N", - "type": "District" - }, - { - "code": "UG-401", - "name": "Bundibugyo", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-402", - "name": "Bushenyi", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-403", - "name": "Hoima", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-404", - "name": "Kabale", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-405", - "name": "Kabarole", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-406", - "name": "Kasese", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-407", - "name": "Kibaale", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-408", - "name": "Kisoro", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-409", - "name": "Masindi", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-410", - "name": "Mbarara", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-411", - "name": "Ntungamo", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-412", - "name": "Rukungiri", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-413", - "name": "Kamwenge", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-414", - "name": "Kanungu", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-415", - "name": "Kyenjojo", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-416", - "name": "Buliisa", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-417", - "name": "Ibanda", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-418", - "name": "Isingiro", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-419", - "name": "Kiruhura", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-420", - "name": "Buhweju", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-421", - "name": "Kiryandongo", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-422", - "name": "Kyegegwa", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-423", - "name": "Mitooma", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-424", - "name": "Ntoroko", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-425", - "name": "Rubirizi", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-426", - "name": "Sheema", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-427", - "name": "Kagadi", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-428", - "name": "Kakumiro", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-429", - "name": "Rubanda", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-430", - "name": "Bunyangabu", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-431", - "name": "Rukiga", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-432", - "name": "Kikuube", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-433", - "name": "Kazo", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-434", - "name": "Kitagwenda", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-435", - "name": "Rwampara", - "parent": "UG-W", - "type": "District" - }, - { - "code": "UG-C", - "name": "Central", - "type": "Geographical region" - }, - { - "code": "UG-E", - "name": "Eastern", - "type": "Geographical region" - }, - { - "code": "UG-N", - "name": "Northern", - "type": "Geographical region" - }, - { - "code": "UG-W", - "name": "Western", - "type": "Geographical region" - }, - { - "code": "UM-67", - "name": "Johnston Atoll", - "type": "Islands, groups of islands" - }, - { - "code": "UM-71", - "name": "Midway Islands", - "type": "Islands, groups of islands" - }, - { - "code": "UM-76", - "name": "Navassa Island", - "type": "Islands, groups of islands" - }, - { - "code": "UM-79", - "name": "Wake Island", - "type": "Islands, groups of islands" - }, - { - "code": "UM-81", - "name": "Baker Island", - "type": "Islands, groups of islands" - }, - { - "code": "UM-84", - "name": "Howland Island", - "type": "Islands, groups of islands" - }, - { - "code": "UM-86", - "name": "Jarvis Island", - "type": "Islands, groups of islands" - }, - { - "code": "UM-89", - "name": "Kingman Reef", - "type": "Islands, groups of islands" - }, - { - "code": "UM-95", - "name": "Palmyra Atoll", - "type": "Islands, groups of islands" - }, - { - "code": "US-AK", - "name": "Alaska", - "type": "State" - }, - { - "code": "US-AL", - "name": "Alabama", - "type": "State" - }, - { - "code": "US-AR", - "name": "Arkansas", - "type": "State" - }, - { - "code": "US-AS", - "name": "American Samoa", - "type": "Outlying area" - }, - { - "code": "US-AZ", - "name": "Arizona", - "type": "State" - }, - { - "code": "US-CA", - "name": "California", - "type": "State" - }, - { - "code": "US-CO", - "name": "Colorado", - "type": "State" - }, - { - "code": "US-CT", - "name": "Connecticut", - "type": "State" - }, - { - "code": "US-DC", - "name": "District of Columbia", - "type": "District" - }, - { - "code": "US-DE", - "name": "Delaware", - "type": "State" - }, - { - "code": "US-FL", - "name": "Florida", - "type": "State" - }, - { - "code": "US-GA", - "name": "Georgia", - "type": "State" - }, - { - "code": "US-GU", - "name": "Guam", - "type": "Outlying area" - }, - { - "code": "US-HI", - "name": "Hawaii", - "type": "State" - }, - { - "code": "US-IA", - "name": "Iowa", - "type": "State" - }, - { - "code": "US-ID", - "name": "Idaho", - "type": "State" - }, - { - "code": "US-IL", - "name": "Illinois", - "type": "State" - }, - { - "code": "US-IN", - "name": "Indiana", - "type": "State" - }, - { - "code": "US-KS", - "name": "Kansas", - "type": "State" - }, - { - "code": "US-KY", - "name": "Kentucky", - "type": "State" - }, - { - "code": "US-LA", - "name": "Louisiana", - "type": "State" - }, - { - "code": "US-MA", - "name": "Massachusetts", - "type": "State" - }, - { - "code": "US-MD", - "name": "Maryland", - "type": "State" - }, - { - "code": "US-ME", - "name": "Maine", - "type": "State" - }, - { - "code": "US-MI", - "name": "Michigan", - "type": "State" - }, - { - "code": "US-MN", - "name": "Minnesota", - "type": "State" - }, - { - "code": "US-MO", - "name": "Missouri", - "type": "State" - }, - { - "code": "US-MP", - "name": "Northern Mariana Islands", - "type": "Outlying area" - }, - { - "code": "US-MS", - "name": "Mississippi", - "type": "State" - }, - { - "code": "US-MT", - "name": "Montana", - "type": "State" - }, - { - "code": "US-NC", - "name": "North Carolina", - "type": "State" - }, - { - "code": "US-ND", - "name": "North Dakota", - "type": "State" - }, - { - "code": "US-NE", - "name": "Nebraska", - "type": "State" - }, - { - "code": "US-NH", - "name": "New Hampshire", - "type": "State" - }, - { - "code": "US-NJ", - "name": "New Jersey", - "type": "State" - }, - { - "code": "US-NM", - "name": "New Mexico", - "type": "State" - }, - { - "code": "US-NV", - "name": "Nevada", - "type": "State" - }, - { - "code": "US-NY", - "name": "New York", - "type": "State" - }, - { - "code": "US-OH", - "name": "Ohio", - "type": "State" - }, - { - "code": "US-OK", - "name": "Oklahoma", - "type": "State" - }, - { - "code": "US-OR", - "name": "Oregon", - "type": "State" - }, - { - "code": "US-PA", - "name": "Pennsylvania", - "type": "State" - }, - { - "code": "US-PR", - "name": "Puerto Rico", - "type": "Outlying area" - }, - { - "code": "US-RI", - "name": "Rhode Island", - "type": "State" - }, - { - "code": "US-SC", - "name": "South Carolina", - "type": "State" - }, - { - "code": "US-SD", - "name": "South Dakota", - "type": "State" - }, - { - "code": "US-TN", - "name": "Tennessee", - "type": "State" - }, - { - "code": "US-TX", - "name": "Texas", - "type": "State" - }, - { - "code": "US-UM", - "name": "United States Minor Outlying Islands", - "type": "Outlying area" - }, - { - "code": "US-UT", - "name": "Utah", - "type": "State" - }, - { - "code": "US-VA", - "name": "Virginia", - "type": "State" - }, - { - "code": "US-VI", - "name": "Virgin Islands, U.S.", - "type": "Outlying area" - }, - { - "code": "US-VT", - "name": "Vermont", - "type": "State" - }, - { - "code": "US-WA", - "name": "Washington", - "type": "State" - }, - { - "code": "US-WI", - "name": "Wisconsin", - "type": "State" - }, - { - "code": "US-WV", - "name": "West Virginia", - "type": "State" - }, - { - "code": "US-WY", - "name": "Wyoming", - "type": "State" - }, - { - "code": "UY-AR", - "name": "Artigas", - "type": "Department" - }, - { - "code": "UY-CA", - "name": "Canelones", - "type": "Department" - }, - { - "code": "UY-CL", - "name": "Cerro Largo", - "type": "Department" - }, - { - "code": "UY-CO", - "name": "Colonia", - "type": "Department" - }, - { - "code": "UY-DU", - "name": "Durazno", - "type": "Department" - }, - { - "code": "UY-FD", - "name": "Florida", - "type": "Department" - }, - { - "code": "UY-FS", - "name": "Flores", - "type": "Department" - }, - { - "code": "UY-LA", - "name": "Lavalleja", - "type": "Department" - }, - { - "code": "UY-MA", - "name": "Maldonado", - "type": "Department" - }, - { - "code": "UY-MO", - "name": "Montevideo", - "type": "Department" - }, - { - "code": "UY-PA", - "name": "Paysandú", - "type": "Department" - }, - { - "code": "UY-RN", - "name": "Río Negro", - "type": "Department" - }, - { - "code": "UY-RO", - "name": "Rocha", - "type": "Department" - }, - { - "code": "UY-RV", - "name": "Rivera", - "type": "Department" - }, - { - "code": "UY-SA", - "name": "Salto", - "type": "Department" - }, - { - "code": "UY-SJ", - "name": "San José", - "type": "Department" - }, - { - "code": "UY-SO", - "name": "Soriano", - "type": "Department" - }, - { - "code": "UY-TA", - "name": "Tacuarembó", - "type": "Department" - }, - { - "code": "UY-TT", - "name": "Treinta y Tres", - "type": "Department" - }, - { - "code": "UZ-AN", - "name": "Andijon", - "type": "Region" - }, - { - "code": "UZ-BU", - "name": "Buxoro", - "type": "Region" - }, - { - "code": "UZ-FA", - "name": "Farg‘ona", - "type": "Region" - }, - { - "code": "UZ-JI", - "name": "Jizzax", - "type": "Region" - }, - { - "code": "UZ-NG", - "name": "Namangan", - "type": "Region" - }, - { - "code": "UZ-NW", - "name": "Navoiy", - "type": "Region" - }, - { - "code": "UZ-QA", - "name": "Qashqadaryo", - "type": "Region" - }, - { - "code": "UZ-QR", - "name": "Qoraqalpog‘iston Respublikasi", - "type": "Republic" - }, - { - "code": "UZ-SA", - "name": "Samarqand", - "type": "Region" - }, - { - "code": "UZ-SI", - "name": "Sirdaryo", - "type": "Region" - }, - { - "code": "UZ-SU", - "name": "Surxondaryo", - "type": "Region" - }, - { - "code": "UZ-TK", - "name": "Toshkent", - "type": "City" - }, - { - "code": "UZ-TO", - "name": "Toshkent", - "type": "Region" - }, - { - "code": "UZ-XO", - "name": "Xorazm", - "type": "Region" - }, - { - "code": "VC-01", - "name": "Charlotte", - "type": "Parish" - }, - { - "code": "VC-02", - "name": "Saint Andrew", - "type": "Parish" - }, - { - "code": "VC-03", - "name": "Saint David", - "type": "Parish" - }, - { - "code": "VC-04", - "name": "Saint George", - "type": "Parish" - }, - { - "code": "VC-05", - "name": "Saint Patrick", - "type": "Parish" - }, - { - "code": "VC-06", - "name": "Grenadines", - "type": "Parish" - }, - { - "code": "VE-A", - "name": "Distrito Capital", - "type": "Capital district" - }, - { - "code": "VE-B", - "name": "Anzoátegui", - "type": "State" - }, - { - "code": "VE-C", - "name": "Apure", - "type": "State" - }, - { - "code": "VE-D", - "name": "Aragua", - "type": "State" - }, - { - "code": "VE-E", - "name": "Barinas", - "type": "State" - }, - { - "code": "VE-F", - "name": "Bolívar", - "type": "State" - }, - { - "code": "VE-G", - "name": "Carabobo", - "type": "State" - }, - { - "code": "VE-H", - "name": "Cojedes", - "type": "State" - }, - { - "code": "VE-I", - "name": "Falcón", - "type": "State" - }, - { - "code": "VE-J", - "name": "Guárico", - "type": "State" - }, - { - "code": "VE-K", - "name": "Lara", - "type": "State" - }, - { - "code": "VE-L", - "name": "Mérida", - "type": "State" - }, - { - "code": "VE-M", - "name": "Miranda", - "type": "State" - }, - { - "code": "VE-N", - "name": "Monagas", - "type": "State" - }, - { - "code": "VE-O", - "name": "Nueva Esparta", - "type": "State" - }, - { - "code": "VE-P", - "name": "Portuguesa", - "type": "State" - }, - { - "code": "VE-R", - "name": "Sucre", - "type": "State" - }, - { - "code": "VE-S", - "name": "Táchira", - "type": "State" - }, - { - "code": "VE-T", - "name": "Trujillo", - "type": "State" - }, - { - "code": "VE-U", - "name": "Yaracuy", - "type": "State" - }, - { - "code": "VE-V", - "name": "Zulia", - "type": "State" - }, - { - "code": "VE-W", - "name": "Dependencias Federales", - "type": "Federal dependency" - }, - { - "code": "VE-X", - "name": "La Guaira", - "type": "State" - }, - { - "code": "VE-Y", - "name": "Delta Amacuro", - "type": "State" - }, - { - "code": "VE-Z", - "name": "Amazonas", - "type": "State" - }, - { - "code": "VN-01", - "name": "Lai Châu", - "type": "Province" - }, - { - "code": "VN-02", - "name": "Lào Cai", - "type": "Province" - }, - { - "code": "VN-03", - "name": "Hà Giang", - "type": "Province" - }, - { - "code": "VN-04", - "name": "Cao Bằng", - "type": "Province" - }, - { - "code": "VN-05", - "name": "Sơn La", - "type": "Province" - }, - { - "code": "VN-06", - "name": "Yên Bái", - "type": "Province" - }, - { - "code": "VN-07", - "name": "Tuyên Quang", - "type": "Province" - }, - { - "code": "VN-09", - "name": "Lạng Sơn", - "type": "Province" - }, - { - "code": "VN-13", - "name": "Quảng Ninh", - "type": "Province" - }, - { - "code": "VN-14", - "name": "Hòa Bình", - "type": "Province" - }, - { - "code": "VN-18", - "name": "Ninh Bình", - "type": "Province" - }, - { - "code": "VN-20", - "name": "Thái Bình", - "type": "Province" - }, - { - "code": "VN-21", - "name": "Thanh Hóa", - "type": "Province" - }, - { - "code": "VN-22", - "name": "Nghệ An", - "type": "Province" - }, - { - "code": "VN-23", - "name": "Hà Tĩnh", - "type": "Province" - }, - { - "code": "VN-24", - "name": "Quảng Bình", - "type": "Province" - }, - { - "code": "VN-25", - "name": "Quảng Trị", - "type": "Province" - }, - { - "code": "VN-26", - "name": "Thừa Thiên-Huế", - "type": "Province" - }, - { - "code": "VN-27", - "name": "Quảng Nam", - "type": "Province" - }, - { - "code": "VN-28", - "name": "Kon Tum", - "type": "Province" - }, - { - "code": "VN-29", - "name": "Quảng Ngãi", - "type": "Province" - }, - { - "code": "VN-30", - "name": "Gia Lai", - "type": "Province" - }, - { - "code": "VN-31", - "name": "Bình Định", - "type": "Province" - }, - { - "code": "VN-32", - "name": "Phú Yên", - "type": "Province" - }, - { - "code": "VN-33", - "name": "Đắk Lắk", - "type": "Province" - }, - { - "code": "VN-34", - "name": "Khánh Hòa", - "type": "Province" - }, - { - "code": "VN-35", - "name": "Lâm Đồng", - "type": "Province" - }, - { - "code": "VN-36", - "name": "Ninh Thuận", - "type": "Province" - }, - { - "code": "VN-37", - "name": "Tây Ninh", - "type": "Province" - }, - { - "code": "VN-39", - "name": "Đồng Nai", - "type": "Province" - }, - { - "code": "VN-40", - "name": "Bình Thuận", - "type": "Province" - }, - { - "code": "VN-41", - "name": "Long An", - "type": "Province" - }, - { - "code": "VN-43", - "name": "Bà Rịa - Vũng Tàu", - "type": "Province" - }, - { - "code": "VN-44", - "name": "An Giang", - "type": "Province" - }, - { - "code": "VN-45", - "name": "Đồng Tháp", - "type": "Province" - }, - { - "code": "VN-46", - "name": "Tiền Giang", - "type": "Province" - }, - { - "code": "VN-47", - "name": "Kiến Giang", - "type": "Province" - }, - { - "code": "VN-49", - "name": "Vĩnh Long", - "type": "Province" - }, - { - "code": "VN-50", - "name": "Bến Tre", - "type": "Province" - }, - { - "code": "VN-51", - "name": "Trà Vinh", - "type": "Province" - }, - { - "code": "VN-52", - "name": "Sóc Trăng", - "type": "Province" - }, - { - "code": "VN-53", - "name": "Bắc Kạn", - "type": "Province" - }, - { - "code": "VN-54", - "name": "Bắc Giang", - "type": "Province" - }, - { - "code": "VN-55", - "name": "Bạc Liêu", - "type": "Province" - }, - { - "code": "VN-56", - "name": "Bắc Ninh", - "type": "Province" - }, - { - "code": "VN-57", - "name": "Bình Dương", - "type": "Province" - }, - { - "code": "VN-58", - "name": "Bình Phước", - "type": "Province" - }, - { - "code": "VN-59", - "name": "Cà Mau", - "type": "Province" - }, - { - "code": "VN-61", - "name": "Hải Dương", - "type": "Province" - }, - { - "code": "VN-63", - "name": "Hà Nam", - "type": "Province" - }, - { - "code": "VN-66", - "name": "Hưng Yên", - "type": "Province" - }, - { - "code": "VN-67", - "name": "Nam Định", - "type": "Province" - }, - { - "code": "VN-68", - "name": "Phú Thọ", - "type": "Province" - }, - { - "code": "VN-69", - "name": "Thái Nguyên", - "type": "Province" - }, - { - "code": "VN-70", - "name": "Vĩnh Phúc", - "type": "Province" - }, - { - "code": "VN-71", - "name": "Điện Biên", - "type": "Province" - }, - { - "code": "VN-72", - "name": "Đắk Nông", - "type": "Province" - }, - { - "code": "VN-73", - "name": "Hậu Giang", - "type": "Province" - }, - { - "code": "VN-CT", - "name": "Cần Thơ", - "type": "Municipality" - }, - { - "code": "VN-DN", - "name": "Đà Nẵng", - "type": "Municipality" - }, - { - "code": "VN-HN", - "name": "Hà Nội", - "type": "Municipality" - }, - { - "code": "VN-HP", - "name": "Hải Phòng", - "type": "Municipality" - }, - { - "code": "VN-SG", - "name": "Hồ Chí Minh", - "type": "Municipality" - }, - { - "code": "VU-MAP", - "name": "Malampa", - "type": "Province" - }, - { - "code": "VU-PAM", - "name": "Pénama", - "type": "Province" - }, - { - "code": "VU-SAM", - "name": "Sanma", - "type": "Province" - }, - { - "code": "VU-SEE", - "name": "Shéfa", - "type": "Province" - }, - { - "code": "VU-TAE", - "name": "Taféa", - "type": "Province" - }, - { - "code": "VU-TOB", - "name": "Torba", - "type": "Province" - }, - { - "code": "WF-AL", - "name": "Alo", - "type": "Administrative precinct" - }, - { - "code": "WF-SG", - "name": "Sigave", - "type": "Administrative precinct" - }, - { - "code": "WF-UV", - "name": "Uvea", - "type": "Administrative precinct" - }, - { - "code": "WS-AA", - "name": "A'ana", - "type": "District" - }, - { - "code": "WS-AL", - "name": "Aiga-i-le-Tai", - "type": "District" - }, - { - "code": "WS-AT", - "name": "Atua", - "type": "District" - }, - { - "code": "WS-FA", - "name": "Fa'asaleleaga", - "type": "District" - }, - { - "code": "WS-GE", - "name": "Gaga'emauga", - "type": "District" - }, - { - "code": "WS-GI", - "name": "Gagaifomauga", - "type": "District" - }, - { - "code": "WS-PA", - "name": "Palauli", - "type": "District" - }, - { - "code": "WS-SA", - "name": "Satupa'itea", - "type": "District" - }, - { - "code": "WS-TU", - "name": "Tuamasaga", - "type": "District" - }, - { - "code": "WS-VF", - "name": "Va'a-o-Fonoti", - "type": "District" - }, - { - "code": "WS-VS", - "name": "Vaisigano", - "type": "District" - }, - { - "code": "YE-AB", - "name": "Abyan", - "type": "Governorate" - }, - { - "code": "YE-AD", - "name": "‘Adan", - "type": "Governorate" - }, - { - "code": "YE-AM", - "name": "‘Amrān", - "type": "Governorate" - }, - { - "code": "YE-BA", - "name": "Al Bayḑā’", - "type": "Governorate" - }, - { - "code": "YE-DA", - "name": "Aḑ Ḑāli‘", - "type": "Governorate" - }, - { - "code": "YE-DH", - "name": "Dhamār", - "type": "Governorate" - }, - { - "code": "YE-HD", - "name": "Ḩaḑramawt", - "type": "Governorate" - }, - { - "code": "YE-HJ", - "name": "Ḩajjah", - "type": "Governorate" - }, - { - "code": "YE-HU", - "name": "Al Ḩudaydah", - "type": "Governorate" - }, - { - "code": "YE-IB", - "name": "Ibb", - "type": "Governorate" - }, - { - "code": "YE-JA", - "name": "Al Jawf", - "type": "Governorate" - }, - { - "code": "YE-LA", - "name": "Laḩij", - "type": "Governorate" - }, - { - "code": "YE-MA", - "name": "Ma’rib", - "type": "Governorate" - }, - { - "code": "YE-MR", - "name": "Al Mahrah", - "type": "Governorate" - }, - { - "code": "YE-MW", - "name": "Al Maḩwīt", - "type": "Governorate" - }, - { - "code": "YE-RA", - "name": "Raymah", - "type": "Governorate" - }, - { - "code": "YE-SA", - "name": "Amānat al ‘Āşimah [city]", - "type": "Municipality" - }, - { - "code": "YE-SD", - "name": "Şāʻdah", - "type": "Governorate" - }, - { - "code": "YE-SH", - "name": "Shabwah", - "type": "Governorate" - }, - { - "code": "YE-SN", - "name": "Şanʻā’", - "type": "Governorate" - }, - { - "code": "YE-SU", - "name": "Arkhabīl Suquţrá", - "type": "Governorate" - }, - { - "code": "YE-TA", - "name": "Tāʻizz", - "type": "Governorate" - }, - { - "code": "ZA-EC", - "name": "Eastern Cape", - "type": "Province" - }, - { - "code": "ZA-FS", - "name": "Free State", - "type": "Province" - }, - { - "code": "ZA-GP", - "name": "Gauteng", - "type": "Province" - }, - { - "code": "ZA-KZN", - "name": "Kwazulu-Natal", - "type": "Province" - }, - { - "code": "ZA-LP", - "name": "Limpopo", - "type": "Province" - }, - { - "code": "ZA-MP", - "name": "Mpumalanga", - "type": "Province" - }, - { - "code": "ZA-NC", - "name": "Northern Cape", - "type": "Province" - }, - { - "code": "ZA-NW", - "name": "North-West", - "type": "Province" - }, - { - "code": "ZA-WC", - "name": "Western Cape", - "type": "Province" - }, - { - "code": "ZM-01", - "name": "Western", - "type": "Province" - }, - { - "code": "ZM-02", - "name": "Central", - "type": "Province" - }, - { - "code": "ZM-03", - "name": "Eastern", - "type": "Province" - }, - { - "code": "ZM-04", - "name": "Luapula", - "type": "Province" - }, - { - "code": "ZM-05", - "name": "Northern", - "type": "Province" - }, - { - "code": "ZM-06", - "name": "North-Western", - "type": "Province" - }, - { - "code": "ZM-07", - "name": "Southern", - "type": "Province" - }, - { - "code": "ZM-08", - "name": "Copperbelt", - "type": "Province" - }, - { - "code": "ZM-09", - "name": "Lusaka", - "type": "Province" - }, - { - "code": "ZM-10", - "name": "Muchinga", - "type": "Province" - }, - { - "code": "ZW-BU", - "name": "Bulawayo", - "type": "Province" - }, - { - "code": "ZW-HA", - "name": "Harare", - "type": "Province" - }, - { - "code": "ZW-MA", - "name": "Manicaland", - "type": "Province" - }, - { - "code": "ZW-MC", - "name": "Mashonaland Central", - "type": "Province" - }, - { - "code": "ZW-ME", - "name": "Mashonaland East", - "type": "Province" - }, - { - "code": "ZW-MI", - "name": "Midlands", - "type": "Province" - }, - { - "code": "ZW-MN", - "name": "Matabeleland North", - "type": "Province" - }, - { - "code": "ZW-MS", - "name": "Matabeleland South", - "type": "Province" - }, - { - "code": "ZW-MV", - "name": "Masvingo", - "type": "Province" - }, - { - "code": "ZW-MW", - "name": "Mashonaland West", - "type": "Province" - } - ] -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso3166-3.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso3166-3.json deleted file mode 100644 index 88b462881e617b7a3206a6d8a6b3e910682bbc16..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso3166-3.json +++ /dev/null @@ -1,254 +0,0 @@ -{ - "3166-3": [ - { - "alpha_2": "AI", - "alpha_3": "AFI", - "alpha_4": "AIDJ", - "name": "French Afars and Issas", - "numeric": "262", - "withdrawal_date": "1977" - }, - { - "alpha_2": "AN", - "alpha_3": "ANT", - "alpha_4": "ANHH", - "comment": "had numeric code 532 until Aruba split away in 1986", - "name": "Netherlands Antilles", - "numeric": "530", - "withdrawal_date": "2010-12-15" - }, - { - "alpha_2": "BQ", - "alpha_3": "ATB", - "alpha_4": "BQAQ", - "name": "British Antarctic Territory", - "withdrawal_date": "1979" - }, - { - "alpha_2": "BU", - "alpha_3": "BUR", - "alpha_4": "BUMM", - "name": "Burma, Socialist Republic of the Union of", - "numeric": "104", - "withdrawal_date": "1989-12-05" - }, - { - "alpha_2": "BY", - "alpha_3": "BYS", - "alpha_4": "BYAA", - "name": "Byelorussian SSR Soviet Socialist Republic", - "numeric": "112", - "withdrawal_date": "1992-06-15" - }, - { - "alpha_2": "CS", - "alpha_3": "CSK", - "alpha_4": "CSHH", - "name": "Czechoslovakia, Czechoslovak Socialist Republic", - "numeric": "200", - "withdrawal_date": "1993-06-15" - }, - { - "alpha_2": "CS", - "alpha_3": "SCG", - "alpha_4": "CSXX", - "name": "Serbia and Montenegro", - "numeric": "891", - "withdrawal_date": "2006-09-26" - }, - { - "alpha_2": "CT", - "alpha_3": "CTE", - "alpha_4": "CTKI", - "name": "Canton and Enderbury Islands", - "numeric": "128", - "withdrawal_date": "1984" - }, - { - "alpha_2": "DD", - "alpha_3": "DDR", - "alpha_4": "DDDE", - "name": "German Democratic Republic", - "numeric": "278", - "withdrawal_date": "1990-10-30" - }, - { - "alpha_2": "DY", - "alpha_3": "DHY", - "alpha_4": "DYBJ", - "name": "Dahomey", - "numeric": "204", - "withdrawal_date": "1977" - }, - { - "alpha_2": "FQ", - "alpha_3": "ATF", - "alpha_4": "FQHH", - "comment": "now split between AQ and TF", - "name": "French Southern and Antarctic Territories", - "withdrawal_date": "1979" - }, - { - "alpha_2": "FX", - "alpha_3": "FXX", - "alpha_4": "FXFR", - "name": "France, Metropolitan", - "numeric": "249", - "withdrawal_date": "1997-07-14" - }, - { - "alpha_2": "GE", - "alpha_3": "GEL", - "alpha_4": "GEHH", - "comment": "now split into Kiribati and Tuvalu", - "name": "Gilbert and Ellice Islands", - "numeric": "296", - "withdrawal_date": "1979" - }, - { - "alpha_2": "HV", - "alpha_3": "HVO", - "alpha_4": "HVBF", - "name": "Upper Volta, Republic of", - "numeric": "854", - "withdrawal_date": "1984" - }, - { - "alpha_2": "JT", - "alpha_3": "JTN", - "alpha_4": "JTUM", - "name": "Johnston Island", - "numeric": "396", - "withdrawal_date": "1986" - }, - { - "alpha_2": "MI", - "alpha_3": "MID", - "alpha_4": "MIUM", - "name": "Midway Islands", - "numeric": "488", - "withdrawal_date": "1986" - }, - { - "alpha_2": "NH", - "alpha_3": "NHB", - "alpha_4": "NHVU", - "name": "New Hebrides", - "numeric": "548", - "withdrawal_date": "1980" - }, - { - "alpha_2": "NQ", - "alpha_3": "ATN", - "alpha_4": "NQAQ", - "name": "Dronning Maud Land", - "numeric": "216", - "withdrawal_date": "1983" - }, - { - "alpha_2": "NT", - "alpha_3": "NTZ", - "alpha_4": "NTHH", - "comment": "formerly between Saudi Arabia and Iraq", - "name": "Neutral Zone", - "numeric": "536", - "withdrawal_date": "1993-07-12" - }, - { - "alpha_2": "PC", - "alpha_3": "PCI", - "alpha_4": "PCHH", - "comment": "divided into FM, MH, MP, and PW", - "name": "Pacific Islands (trust territory)", - "numeric": "582", - "withdrawal_date": "1986" - }, - { - "alpha_2": "PU", - "alpha_3": "PUS", - "alpha_4": "PUUM", - "name": "US Miscellaneous Pacific Islands", - "numeric": "849", - "withdrawal_date": "1986" - }, - { - "alpha_2": "PZ", - "alpha_3": "PCZ", - "alpha_4": "PZPA", - "name": "Panama Canal Zone", - "withdrawal_date": "1980" - }, - { - "alpha_2": "RH", - "alpha_3": "RHO", - "alpha_4": "RHZW", - "name": "Southern Rhodesia", - "numeric": "716", - "withdrawal_date": "1980" - }, - { - "alpha_2": "SK", - "alpha_3": "SKM", - "alpha_4": "SKIN", - "name": "Sikkim", - "withdrawal_date": "1975" - }, - { - "alpha_2": "SU", - "alpha_3": "SUN", - "alpha_4": "SUHH", - "name": "USSR, Union of Soviet Socialist Republics", - "numeric": "810", - "withdrawal_date": "1992-08-30" - }, - { - "alpha_2": "TP", - "alpha_3": "TMP", - "alpha_4": "TPTL", - "comment": "was Portuguese Timor", - "name": "East Timor", - "numeric": "626", - "withdrawal_date": "2002-05-20" - }, - { - "alpha_2": "VD", - "alpha_3": "VDR", - "alpha_4": "VDVN", - "name": "Viet-Nam, Democratic Republic of", - "withdrawal_date": "1977" - }, - { - "alpha_2": "WK", - "alpha_3": "WAK", - "alpha_4": "WKUM", - "name": "Wake Island", - "numeric": "872", - "withdrawal_date": "1986" - }, - { - "alpha_2": "YD", - "alpha_3": "YMD", - "alpha_4": "YDYE", - "name": "Yemen, Democratic, People's Democratic Republic of", - "numeric": "720", - "withdrawal_date": "1990-08-14" - }, - { - "alpha_2": "YU", - "alpha_3": "YUG", - "alpha_4": "YUCS", - "comment": "had numeric code 890 until the 'Socialist Federal Republic of Yugoslavia' formerly broke apart on 27 April 1992 and the 'Federal Republic of Yugoslavia' was founded", - "name": "Yugoslavia, (Socialist) Federal Republic of", - "numeric": "891", - "withdrawal_date": "2003-07-23" - }, - { - "alpha_2": "ZR", - "alpha_3": "ZAR", - "alpha_4": "ZRCD", - "name": "Zaire, Republic of", - "numeric": "180", - "withdrawal_date": "1997-07-14" - } - ] -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso4217.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso4217.json deleted file mode 100644 index 4bd42d3bc7cce146d422098eeb88583a59681448..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso4217.json +++ /dev/null @@ -1,909 +0,0 @@ -{ - "4217": [ - { - "alpha_3": "AED", - "name": "UAE Dirham", - "numeric": "784" - }, - { - "alpha_3": "AFN", - "name": "Afghani", - "numeric": "971" - }, - { - "alpha_3": "ALL", - "name": "Lek", - "numeric": "008" - }, - { - "alpha_3": "AMD", - "name": "Armenian Dram", - "numeric": "051" - }, - { - "alpha_3": "ANG", - "name": "Netherlands Antillean Guilder", - "numeric": "532" - }, - { - "alpha_3": "AOA", - "name": "Kwanza", - "numeric": "973" - }, - { - "alpha_3": "ARS", - "name": "Argentine Peso", - "numeric": "032" - }, - { - "alpha_3": "AUD", - "name": "Australian Dollar", - "numeric": "036" - }, - { - "alpha_3": "AWG", - "name": "Aruban Florin", - "numeric": "533" - }, - { - "alpha_3": "AZN", - "name": "Azerbaijan Manat", - "numeric": "944" - }, - { - "alpha_3": "BAM", - "name": "Convertible Mark", - "numeric": "977" - }, - { - "alpha_3": "BBD", - "name": "Barbados Dollar", - "numeric": "052" - }, - { - "alpha_3": "BDT", - "name": "Taka", - "numeric": "050" - }, - { - "alpha_3": "BGN", - "name": "Bulgarian Lev", - "numeric": "975" - }, - { - "alpha_3": "BHD", - "name": "Bahraini Dinar", - "numeric": "048" - }, - { - "alpha_3": "BIF", - "name": "Burundi Franc", - "numeric": "108" - }, - { - "alpha_3": "BMD", - "name": "Bermudian Dollar", - "numeric": "060" - }, - { - "alpha_3": "BND", - "name": "Brunei Dollar", - "numeric": "096" - }, - { - "alpha_3": "BOB", - "name": "Boliviano", - "numeric": "068" - }, - { - "alpha_3": "BOV", - "name": "Mvdol", - "numeric": "984" - }, - { - "alpha_3": "BRL", - "name": "Brazilian Real", - "numeric": "986" - }, - { - "alpha_3": "BSD", - "name": "Bahamian Dollar", - "numeric": "044" - }, - { - "alpha_3": "BTN", - "name": "Ngultrum", - "numeric": "064" - }, - { - "alpha_3": "BWP", - "name": "Pula", - "numeric": "072" - }, - { - "alpha_3": "BYN", - "name": "Belarusian Ruble", - "numeric": "933" - }, - { - "alpha_3": "BZD", - "name": "Belize Dollar", - "numeric": "084" - }, - { - "alpha_3": "CAD", - "name": "Canadian Dollar", - "numeric": "124" - }, - { - "alpha_3": "CDF", - "name": "Congolese Franc", - "numeric": "976" - }, - { - "alpha_3": "CHE", - "name": "WIR Euro", - "numeric": "947" - }, - { - "alpha_3": "CHF", - "name": "Swiss Franc", - "numeric": "756" - }, - { - "alpha_3": "CHW", - "name": "WIR Franc", - "numeric": "948" - }, - { - "alpha_3": "CLF", - "name": "Unidad de Fomento", - "numeric": "990" - }, - { - "alpha_3": "CLP", - "name": "Chilean Peso", - "numeric": "152" - }, - { - "alpha_3": "CNY", - "name": "Yuan Renminbi", - "numeric": "156" - }, - { - "alpha_3": "COP", - "name": "Colombian Peso", - "numeric": "170" - }, - { - "alpha_3": "COU", - "name": "Unidad de Valor Real", - "numeric": "970" - }, - { - "alpha_3": "CRC", - "name": "Costa Rican Colon", - "numeric": "188" - }, - { - "alpha_3": "CUC", - "name": "Peso Convertible", - "numeric": "931" - }, - { - "alpha_3": "CUP", - "name": "Cuban Peso", - "numeric": "192" - }, - { - "alpha_3": "CVE", - "name": "Cabo Verde Escudo", - "numeric": "132" - }, - { - "alpha_3": "CZK", - "name": "Czech Koruna", - "numeric": "203" - }, - { - "alpha_3": "DJF", - "name": "Djibouti Franc", - "numeric": "262" - }, - { - "alpha_3": "DKK", - "name": "Danish Krone", - "numeric": "208" - }, - { - "alpha_3": "DOP", - "name": "Dominican Peso", - "numeric": "214" - }, - { - "alpha_3": "DZD", - "name": "Algerian Dinar", - "numeric": "012" - }, - { - "alpha_3": "EGP", - "name": "Egyptian Pound", - "numeric": "818" - }, - { - "alpha_3": "ERN", - "name": "Nakfa", - "numeric": "232" - }, - { - "alpha_3": "ETB", - "name": "Ethiopian Birr", - "numeric": "230" - }, - { - "alpha_3": "EUR", - "name": "Euro", - "numeric": "978" - }, - { - "alpha_3": "FJD", - "name": "Fiji Dollar", - "numeric": "242" - }, - { - "alpha_3": "FKP", - "name": "Falkland Islands Pound", - "numeric": "238" - }, - { - "alpha_3": "GBP", - "name": "Pound Sterling", - "numeric": "826" - }, - { - "alpha_3": "GEL", - "name": "Lari", - "numeric": "981" - }, - { - "alpha_3": "GHS", - "name": "Ghana Cedi", - "numeric": "936" - }, - { - "alpha_3": "GIP", - "name": "Gibraltar Pound", - "numeric": "292" - }, - { - "alpha_3": "GMD", - "name": "Dalasi", - "numeric": "270" - }, - { - "alpha_3": "GNF", - "name": "Guinean Franc", - "numeric": "324" - }, - { - "alpha_3": "GTQ", - "name": "Quetzal", - "numeric": "320" - }, - { - "alpha_3": "GYD", - "name": "Guyana Dollar", - "numeric": "328" - }, - { - "alpha_3": "HKD", - "name": "Hong Kong Dollar", - "numeric": "344" - }, - { - "alpha_3": "HNL", - "name": "Lempira", - "numeric": "340" - }, - { - "alpha_3": "HRK", - "name": "Kuna", - "numeric": "191" - }, - { - "alpha_3": "HTG", - "name": "Gourde", - "numeric": "332" - }, - { - "alpha_3": "HUF", - "name": "Forint", - "numeric": "348" - }, - { - "alpha_3": "IDR", - "name": "Rupiah", - "numeric": "360" - }, - { - "alpha_3": "ILS", - "name": "New Israeli Sheqel", - "numeric": "376" - }, - { - "alpha_3": "INR", - "name": "Indian Rupee", - "numeric": "356" - }, - { - "alpha_3": "IQD", - "name": "Iraqi Dinar", - "numeric": "368" - }, - { - "alpha_3": "IRR", - "name": "Iranian Rial", - "numeric": "364" - }, - { - "alpha_3": "ISK", - "name": "Iceland Krona", - "numeric": "352" - }, - { - "alpha_3": "JMD", - "name": "Jamaican Dollar", - "numeric": "388" - }, - { - "alpha_3": "JOD", - "name": "Jordanian Dinar", - "numeric": "400" - }, - { - "alpha_3": "JPY", - "name": "Yen", - "numeric": "392" - }, - { - "alpha_3": "KES", - "name": "Kenyan Shilling", - "numeric": "404" - }, - { - "alpha_3": "KGS", - "name": "Som", - "numeric": "417" - }, - { - "alpha_3": "KHR", - "name": "Riel", - "numeric": "116" - }, - { - "alpha_3": "KMF", - "name": "Comorian Franc", - "numeric": "174" - }, - { - "alpha_3": "KPW", - "name": "North Korean Won", - "numeric": "408" - }, - { - "alpha_3": "KRW", - "name": "Won", - "numeric": "410" - }, - { - "alpha_3": "KWD", - "name": "Kuwaiti Dinar", - "numeric": "414" - }, - { - "alpha_3": "KYD", - "name": "Cayman Islands Dollar", - "numeric": "136" - }, - { - "alpha_3": "KZT", - "name": "Tenge", - "numeric": "398" - }, - { - "alpha_3": "LAK", - "name": "Lao Kip", - "numeric": "418" - }, - { - "alpha_3": "LBP", - "name": "Lebanese Pound", - "numeric": "422" - }, - { - "alpha_3": "LKR", - "name": "Sri Lanka Rupee", - "numeric": "144" - }, - { - "alpha_3": "LRD", - "name": "Liberian Dollar", - "numeric": "430" - }, - { - "alpha_3": "LSL", - "name": "Loti", - "numeric": "426" - }, - { - "alpha_3": "LYD", - "name": "Libyan Dinar", - "numeric": "434" - }, - { - "alpha_3": "MAD", - "name": "Moroccan Dirham", - "numeric": "504" - }, - { - "alpha_3": "MDL", - "name": "Moldovan Leu", - "numeric": "498" - }, - { - "alpha_3": "MGA", - "name": "Malagasy Ariary", - "numeric": "969" - }, - { - "alpha_3": "MKD", - "name": "Denar", - "numeric": "807" - }, - { - "alpha_3": "MMK", - "name": "Kyat", - "numeric": "104" - }, - { - "alpha_3": "MNT", - "name": "Tugrik", - "numeric": "496" - }, - { - "alpha_3": "MOP", - "name": "Pataca", - "numeric": "446" - }, - { - "alpha_3": "MRU", - "name": "Ouguiya", - "numeric": "929" - }, - { - "alpha_3": "MUR", - "name": "Mauritius Rupee", - "numeric": "480" - }, - { - "alpha_3": "MVR", - "name": "Rufiyaa", - "numeric": "462" - }, - { - "alpha_3": "MWK", - "name": "Malawi Kwacha", - "numeric": "454" - }, - { - "alpha_3": "MXN", - "name": "Mexican Peso", - "numeric": "484" - }, - { - "alpha_3": "MXV", - "name": "Mexican Unidad de Inversion (UDI)", - "numeric": "979" - }, - { - "alpha_3": "MYR", - "name": "Malaysian Ringgit", - "numeric": "458" - }, - { - "alpha_3": "MZN", - "name": "Mozambique Metical", - "numeric": "943" - }, - { - "alpha_3": "NAD", - "name": "Namibia Dollar", - "numeric": "516" - }, - { - "alpha_3": "NGN", - "name": "Naira", - "numeric": "566" - }, - { - "alpha_3": "NIO", - "name": "Cordoba Oro", - "numeric": "558" - }, - { - "alpha_3": "NOK", - "name": "Norwegian Krone", - "numeric": "578" - }, - { - "alpha_3": "NPR", - "name": "Nepalese Rupee", - "numeric": "524" - }, - { - "alpha_3": "NZD", - "name": "New Zealand Dollar", - "numeric": "554" - }, - { - "alpha_3": "OMR", - "name": "Rial Omani", - "numeric": "512" - }, - { - "alpha_3": "PAB", - "name": "Balboa", - "numeric": "590" - }, - { - "alpha_3": "PEN", - "name": "Sol", - "numeric": "604" - }, - { - "alpha_3": "PGK", - "name": "Kina", - "numeric": "598" - }, - { - "alpha_3": "PHP", - "name": "Philippine Peso", - "numeric": "608" - }, - { - "alpha_3": "PKR", - "name": "Pakistan Rupee", - "numeric": "586" - }, - { - "alpha_3": "PLN", - "name": "Zloty", - "numeric": "985" - }, - { - "alpha_3": "PYG", - "name": "Guarani", - "numeric": "600" - }, - { - "alpha_3": "QAR", - "name": "Qatari Rial", - "numeric": "634" - }, - { - "alpha_3": "RON", - "name": "Romanian Leu", - "numeric": "946" - }, - { - "alpha_3": "RSD", - "name": "Serbian Dinar", - "numeric": "941" - }, - { - "alpha_3": "RUB", - "name": "Russian Ruble", - "numeric": "643" - }, - { - "alpha_3": "RWF", - "name": "Rwanda Franc", - "numeric": "646" - }, - { - "alpha_3": "SAR", - "name": "Saudi Riyal", - "numeric": "682" - }, - { - "alpha_3": "SBD", - "name": "Solomon Islands Dollar", - "numeric": "090" - }, - { - "alpha_3": "SCR", - "name": "Seychelles Rupee", - "numeric": "690" - }, - { - "alpha_3": "SDG", - "name": "Sudanese Pound", - "numeric": "938" - }, - { - "alpha_3": "SEK", - "name": "Swedish Krona", - "numeric": "752" - }, - { - "alpha_3": "SGD", - "name": "Singapore Dollar", - "numeric": "702" - }, - { - "alpha_3": "SHP", - "name": "Saint Helena Pound", - "numeric": "654" - }, - { - "alpha_3": "SLE", - "name": "Leone", - "numeric": "925" - }, - { - "alpha_3": "SLL", - "name": "Leone", - "numeric": "694" - }, - { - "alpha_3": "SOS", - "name": "Somali Shilling", - "numeric": "706" - }, - { - "alpha_3": "SRD", - "name": "Surinam Dollar", - "numeric": "968" - }, - { - "alpha_3": "SSP", - "name": "South Sudanese Pound", - "numeric": "728" - }, - { - "alpha_3": "STN", - "name": "Dobra", - "numeric": "930" - }, - { - "alpha_3": "SVC", - "name": "El Salvador Colon", - "numeric": "222" - }, - { - "alpha_3": "SYP", - "name": "Syrian Pound", - "numeric": "760" - }, - { - "alpha_3": "SZL", - "name": "Lilangeni", - "numeric": "748" - }, - { - "alpha_3": "THB", - "name": "Baht", - "numeric": "764" - }, - { - "alpha_3": "TJS", - "name": "Somoni", - "numeric": "972" - }, - { - "alpha_3": "TMT", - "name": "Turkmenistan New Manat", - "numeric": "934" - }, - { - "alpha_3": "TND", - "name": "Tunisian Dinar", - "numeric": "788" - }, - { - "alpha_3": "TOP", - "name": "Pa’anga", - "numeric": "776" - }, - { - "alpha_3": "TRY", - "name": "Turkish Lira", - "numeric": "949" - }, - { - "alpha_3": "TTD", - "name": "Trinidad and Tobago Dollar", - "numeric": "780" - }, - { - "alpha_3": "TWD", - "name": "New Taiwan Dollar", - "numeric": "901" - }, - { - "alpha_3": "TZS", - "name": "Tanzanian Shilling", - "numeric": "834" - }, - { - "alpha_3": "UAH", - "name": "Hryvnia", - "numeric": "980" - }, - { - "alpha_3": "UGX", - "name": "Uganda Shilling", - "numeric": "800" - }, - { - "alpha_3": "USD", - "name": "US Dollar", - "numeric": "840" - }, - { - "alpha_3": "USN", - "name": "US Dollar (Next day)", - "numeric": "997" - }, - { - "alpha_3": "UYI", - "name": "Uruguay Peso en Unidades Indexadas (UI)", - "numeric": "940" - }, - { - "alpha_3": "UYU", - "name": "Peso Uruguayo", - "numeric": "858" - }, - { - "alpha_3": "UYW", - "name": "Unidad Previsional", - "numeric": "927" - }, - { - "alpha_3": "UZS", - "name": "Uzbekistan Sum", - "numeric": "860" - }, - { - "alpha_3": "VED", - "name": "Bolívar Soberano", - "numeric": "926" - }, - { - "alpha_3": "VES", - "name": "Bolívar Soberano", - "numeric": "928" - }, - { - "alpha_3": "VND", - "name": "Dong", - "numeric": "704" - }, - { - "alpha_3": "VUV", - "name": "Vatu", - "numeric": "548" - }, - { - "alpha_3": "WST", - "name": "Tala", - "numeric": "882" - }, - { - "alpha_3": "XAF", - "name": "CFA Franc BEAC", - "numeric": "950" - }, - { - "alpha_3": "XAG", - "name": "Silver", - "numeric": "961" - }, - { - "alpha_3": "XAU", - "name": "Gold", - "numeric": "959" - }, - { - "alpha_3": "XBA", - "name": "Bond Markets Unit European Composite Unit (EURCO)", - "numeric": "955" - }, - { - "alpha_3": "XBB", - "name": "Bond Markets Unit European Monetary Unit (E.M.U.-6)", - "numeric": "956" - }, - { - "alpha_3": "XBC", - "name": "Bond Markets Unit European Unit of Account 9 (E.U.A.-9)", - "numeric": "957" - }, - { - "alpha_3": "XBD", - "name": "Bond Markets Unit European Unit of Account 17 (E.U.A.-17)", - "numeric": "958" - }, - { - "alpha_3": "XCD", - "name": "East Caribbean Dollar", - "numeric": "951" - }, - { - "alpha_3": "XDR", - "name": "SDR (Special Drawing Right)", - "numeric": "960" - }, - { - "alpha_3": "XOF", - "name": "CFA Franc BCEAO", - "numeric": "952" - }, - { - "alpha_3": "XPD", - "name": "Palladium", - "numeric": "964" - }, - { - "alpha_3": "XPF", - "name": "CFP Franc", - "numeric": "953" - }, - { - "alpha_3": "XPT", - "name": "Platinum", - "numeric": "962" - }, - { - "alpha_3": "XSU", - "name": "Sucre", - "numeric": "994" - }, - { - "alpha_3": "XTS", - "name": "Codes specifically reserved for testing purposes", - "numeric": "963" - }, - { - "alpha_3": "XUA", - "name": "ADB Unit of Account", - "numeric": "965" - }, - { - "alpha_3": "XXX", - "name": "The codes assigned for transactions where no currency is involved", - "numeric": "999" - }, - { - "alpha_3": "YER", - "name": "Yemeni Rial", - "numeric": "886" - }, - { - "alpha_3": "ZAR", - "name": "Rand", - "numeric": "710" - }, - { - "alpha_3": "ZMW", - "name": "Zambian Kwacha", - "numeric": "967" - }, - { - "alpha_3": "ZWL", - "name": "Zimbabwe Dollar", - "numeric": "932" - } - ] -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso639-3.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso639-3.json deleted file mode 100644 index 7a09889c1910fa6ee70c9bb12bc35c7ff2561019..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso639-3.json +++ /dev/null @@ -1,49084 +0,0 @@ -{ - "639-3": [ - { - "alpha_3": "aaa", - "name": "Ghotuo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aab", - "name": "Alumu-Tesu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aac", - "name": "Ari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aad", - "name": "Amal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aae", - "inverted_name": "Albanian, Arbëreshë", - "name": "Arbëreshë Albanian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aaf", - "name": "Aranadan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aag", - "name": "Ambrak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aah", - "inverted_name": "Arapesh, Abu'", - "name": "Abu' Arapesh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aai", - "name": "Arifama-Miniafia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aak", - "name": "Ankave", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aal", - "name": "Afade", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aan", - "name": "Anambé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aao", - "inverted_name": "Arabic, Algerian Saharan", - "name": "Algerian Saharan Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aap", - "inverted_name": "Arára, Pará", - "name": "Pará Arára", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aaq", - "inverted_name": "Abnaki, Eastern", - "name": "Eastern Abnaki", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "aa", - "alpha_3": "aar", - "name": "Afar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aas", - "name": "Aasáx", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aat", - "inverted_name": "Albanian, Arvanitika", - "name": "Arvanitika Albanian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aau", - "name": "Abau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aaw", - "name": "Solong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aax", - "name": "Mandobo Atas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aaz", - "name": "Amarasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aba", - "name": "Abé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abb", - "name": "Bankon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abc", - "inverted_name": "Ayta, Ambala", - "name": "Ambala Ayta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abd", - "name": "Manide", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abe", - "inverted_name": "Abnaki, Western", - "name": "Western Abnaki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abf", - "name": "Abai Sungai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abg", - "name": "Abaga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abh", - "inverted_name": "Arabic, Tajiki", - "name": "Tajiki Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abi", - "name": "Abidji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abj", - "name": "Aka-Bea", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "ab", - "alpha_3": "abk", - "name": "Abkhazian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abl", - "name": "Lampung Nyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abm", - "name": "Abanyom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abn", - "name": "Abua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abo", - "name": "Abon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abp", - "inverted_name": "Ayta, Abellen", - "name": "Abellen Ayta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abq", - "name": "Abaza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abr", - "name": "Abron", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abs", - "inverted_name": "Malay, Ambonese", - "name": "Ambonese Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abt", - "name": "Ambulas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abu", - "name": "Abure", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abv", - "inverted_name": "Arabic, Baharna", - "name": "Baharna Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abw", - "name": "Pal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abx", - "name": "Inabaknon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aby", - "name": "Aneme Wake", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "abz", - "name": "Abui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aca", - "name": "Achagua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acb", - "name": "Áncá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acd", - "name": "Gikyode", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ace", - "name": "Achinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acf", - "inverted_name": "Creole French, Saint Lucian", - "name": "Saint Lucian Creole French", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ach", - "name": "Acoli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aci", - "name": "Aka-Cari", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ack", - "name": "Aka-Kora", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "acl", - "name": "Akar-Bale", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "acm", - "inverted_name": "Arabic, Mesopotamian", - "name": "Mesopotamian Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acn", - "name": "Achang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acp", - "inverted_name": "Acipa, Eastern", - "name": "Eastern Acipa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acq", - "inverted_name": "Arabic, Ta'izzi-Adeni", - "name": "Ta'izzi-Adeni Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acr", - "name": "Achi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acs", - "name": "Acroá", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "act", - "name": "Achterhoeks", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acu", - "name": "Achuar-Shiwiar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acv", - "name": "Achumawi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acw", - "inverted_name": "Arabic, Hijazi", - "name": "Hijazi Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acx", - "inverted_name": "Arabic, Omani", - "name": "Omani Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acy", - "inverted_name": "Arabic, Cypriot", - "name": "Cypriot Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "acz", - "name": "Acheron", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ada", - "name": "Adangme", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adb", - "name": "Atauran", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "add", - "name": "Lidzonka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ade", - "name": "Adele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adf", - "inverted_name": "Arabic, Dhofari", - "name": "Dhofari Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adg", - "name": "Andegerebinha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adh", - "name": "Adhola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adi", - "name": "Adi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adj", - "name": "Adioukrou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adl", - "name": "Galo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adn", - "name": "Adang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ado", - "name": "Abu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adq", - "name": "Adangbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adr", - "name": "Adonara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ads", - "name": "Adamorobe Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adt", - "name": "Adnyamathanha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adu", - "name": "Aduge", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adw", - "name": "Amundava", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adx", - "inverted_name": "Tibetan, Amdo", - "name": "Amdo Tibetan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ady", - "name": "Adyghe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "adz", - "name": "Adzera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aea", - "name": "Areba", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "aeb", - "inverted_name": "Arabic, Tunisian", - "name": "Tunisian Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aec", - "inverted_name": "Arabic, Saidi", - "name": "Saidi Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aed", - "name": "Argentine Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aee", - "inverted_name": "Pashai, Northeast", - "name": "Northeast Pashai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aek", - "name": "Haeke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ael", - "name": "Ambele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aem", - "name": "Arem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aen", - "name": "Armenian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aeq", - "name": "Aer", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aer", - "inverted_name": "Arrernte, Eastern", - "name": "Eastern Arrernte", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aes", - "name": "Alsea", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "aeu", - "name": "Akeu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aew", - "name": "Ambakich", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aey", - "name": "Amele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aez", - "name": "Aeka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afb", - "inverted_name": "Arabic, Gulf", - "name": "Gulf Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afd", - "name": "Andai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afe", - "name": "Putukwam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afg", - "name": "Afghan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afh", - "name": "Afrihili", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "afi", - "name": "Akrukay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afk", - "name": "Nanubae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afn", - "name": "Defaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afo", - "name": "Eloyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afp", - "name": "Tapei", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "af", - "alpha_3": "afr", - "name": "Afrikaans", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afs", - "inverted_name": "Creole, Afro-Seminole", - "name": "Afro-Seminole Creole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aft", - "name": "Afitti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afu", - "name": "Awutu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "afz", - "name": "Obokuitai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aga", - "name": "Aguano", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "agb", - "name": "Legbo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agc", - "name": "Agatu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agd", - "name": "Agarabi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "age", - "name": "Angal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agf", - "name": "Arguni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agg", - "name": "Angor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agh", - "name": "Ngelima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agi", - "name": "Agariya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agj", - "name": "Argobba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agk", - "inverted_name": "Agta, Isarog", - "name": "Isarog Agta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agl", - "name": "Fembe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agm", - "name": "Angaataha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agn", - "name": "Agutaynen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ago", - "name": "Tainae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agq", - "name": "Aghem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agr", - "name": "Aguaruna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ags", - "name": "Esimbi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agt", - "inverted_name": "Agta, Central Cagayan", - "name": "Central Cagayan Agta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agu", - "name": "Aguacateco", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agv", - "inverted_name": "Dumagat, Remontado", - "name": "Remontado Dumagat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agw", - "name": "Kahua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agx", - "name": "Aghul", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agy", - "inverted_name": "Alta, Southern", - "name": "Southern Alta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "agz", - "inverted_name": "Agta, Mt. Iriga", - "name": "Mt. Iriga Agta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aha", - "name": "Ahanta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ahb", - "name": "Axamb", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ahg", - "name": "Qimant", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ahh", - "name": "Aghu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ahi", - "inverted_name": "Aizi, Tiagbamrin", - "name": "Tiagbamrin Aizi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ahk", - "name": "Akha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ahl", - "name": "Igo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ahm", - "inverted_name": "Aizi, Mobumrin", - "name": "Mobumrin Aizi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ahn", - "name": "Àhàn", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aho", - "name": "Ahom", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ahp", - "inverted_name": "Aizi, Aproumu", - "name": "Aproumu Aizi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ahr", - "name": "Ahirani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ahs", - "name": "Ashe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aht", - "name": "Ahtena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aia", - "name": "Arosi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aib", - "name": "Ainu (China)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aic", - "name": "Ainbai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aid", - "name": "Alngith", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "aie", - "name": "Amara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aif", - "name": "Agi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aig", - "inverted_name": "Creole English, Antigua and Barbuda", - "name": "Antigua and Barbuda Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aih", - "name": "Ai-Cham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aii", - "inverted_name": "Neo-Aramaic, Assyrian", - "name": "Assyrian Neo-Aramaic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aij", - "name": "Lishanid Noshan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aik", - "name": "Ake", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ail", - "name": "Aimele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aim", - "name": "Aimol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ain", - "name": "Ainu (Japan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aio", - "name": "Aiton", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aip", - "name": "Burumakok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aiq", - "name": "Aimaq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "air", - "name": "Airoran", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ait", - "name": "Arikem", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "aiw", - "name": "Aari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aix", - "name": "Aighon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aiy", - "name": "Ali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aja", - "name": "Aja (South Sudan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ajg", - "name": "Aja (Benin)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aji", - "name": "Ajië", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ajn", - "name": "Andajin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ajp", - "inverted_name": "Arabic, South Levantine", - "name": "South Levantine Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ajs", - "name": "Algerian Jewish Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aju", - "inverted_name": "Arabic, Judeo-Moroccan", - "name": "Judeo-Moroccan Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ajw", - "name": "Ajawa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ajz", - "inverted_name": "Karbi, Amri", - "name": "Amri Karbi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ak", - "alpha_3": "aka", - "name": "Akan", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "akb", - "name": "Batak Angkola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akc", - "name": "Mpur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akd", - "name": "Ukpet-Ehom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ake", - "name": "Akawaio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akf", - "name": "Akpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akg", - "name": "Anakalangu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akh", - "name": "Angal Heneng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aki", - "name": "Aiome", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akj", - "name": "Aka-Jeru", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "akk", - "name": "Akkadian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "akl", - "name": "Aklanon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akm", - "name": "Aka-Bo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ako", - "name": "Akurio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akp", - "name": "Siwu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akq", - "name": "Ak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akr", - "name": "Araki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aks", - "name": "Akaselem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akt", - "name": "Akolet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aku", - "name": "Akum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akv", - "name": "Akhvakh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akw", - "name": "Akwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "akx", - "name": "Aka-Kede", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "aky", - "name": "Aka-Kol", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "akz", - "name": "Alabama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ala", - "name": "Alago", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alc", - "name": "Qawasqar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ald", - "name": "Alladian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ale", - "name": "Aleut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alf", - "name": "Alege", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alh", - "name": "Alawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ali", - "name": "Amaimon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alj", - "name": "Alangan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alk", - "name": "Alak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "all", - "name": "Allar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alm", - "name": "Amblong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aln", - "inverted_name": "Albanian, Gheg", - "name": "Gheg Albanian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alo", - "name": "Larike-Wakasihu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alp", - "name": "Alune", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alq", - "name": "Algonquin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alr", - "name": "Alutor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "als", - "inverted_name": "Albanian, Tosk", - "name": "Tosk Albanian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alt", - "inverted_name": "Altai, Southern", - "name": "Southern Altai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alu", - "name": "'Are'are", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alw", - "name": "Alaba-K’abeena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alx", - "name": "Amol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aly", - "name": "Alyawarr", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "alz", - "name": "Alur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ama", - "name": "Amanayé", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "amb", - "name": "Ambo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amc", - "name": "Amahuaca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ame", - "name": "Yanesha'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amf", - "name": "Hamer-Banna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amg", - "name": "Amurdak", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "am", - "alpha_3": "amh", - "name": "Amharic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ami", - "name": "Amis", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amj", - "name": "Amdang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amk", - "name": "Ambai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aml", - "name": "War-Jaintia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amm", - "name": "Ama (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amn", - "name": "Amanab", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amo", - "name": "Amo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amp", - "name": "Alamblak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amq", - "name": "Amahai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amr", - "name": "Amarakaeri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ams", - "inverted_name": "Amami-Oshima, Southern", - "name": "Southern Amami-Oshima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amt", - "name": "Amto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amu", - "inverted_name": "Amuzgo, Guerrero", - "name": "Guerrero Amuzgo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amv", - "name": "Ambelau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amw", - "inverted_name": "Neo-Aramaic, Western", - "name": "Western Neo-Aramaic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amx", - "name": "Anmatyerre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amy", - "name": "Ami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "amz", - "name": "Atampaya", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ana", - "name": "Andaqui", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "anb", - "name": "Andoa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "anc", - "name": "Ngas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "and", - "name": "Ansus", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ane", - "name": "Xârâcùù", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anf", - "name": "Animere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ang", - "inverted_name": "English, Old (ca. 450-1100)", - "name": "Old English (ca. 450-1100)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "anh", - "name": "Nend", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ani", - "name": "Andi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anj", - "name": "Anor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ank", - "name": "Goemai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anl", - "inverted_name": "Chin, Anu-Hkongso", - "name": "Anu-Hkongso Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anm", - "name": "Anal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ann", - "name": "Obolo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ano", - "name": "Andoque", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anp", - "name": "Angika", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anq", - "name": "Jarawa (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anr", - "name": "Andh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ans", - "name": "Anserma", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ant", - "name": "Antakarinya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anu", - "name": "Anuak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anv", - "name": "Denya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anw", - "name": "Anaang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anx", - "name": "Andra-Hus", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "any", - "name": "Anyin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "anz", - "name": "Anem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aoa", - "name": "Angolar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aob", - "name": "Abom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aoc", - "name": "Pemon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aod", - "name": "Andarum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aoe", - "name": "Angal Enen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aof", - "name": "Bragat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aog", - "name": "Angoram", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aoi", - "name": "Anindilyakwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aoj", - "name": "Mufian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aok", - "name": "Arhö", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aol", - "name": "Alor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aom", - "name": "Ömie", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aon", - "inverted_name": "Arapesh, Bumbita", - "name": "Bumbita Arapesh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aor", - "name": "Aore", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "aos", - "name": "Taikat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aot", - "name": "Atong (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aou", - "name": "A'ou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aox", - "name": "Atorada", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aoz", - "name": "Uab Meto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apb", - "name": "Sa'a", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apc", - "inverted_name": "Arabic, North Levantine", - "name": "North Levantine Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apd", - "inverted_name": "Arabic, Sudanese", - "name": "Sudanese Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ape", - "name": "Bukiyip", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apf", - "inverted_name": "Agta, Pahanan", - "name": "Pahanan Agta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apg", - "name": "Ampanang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aph", - "name": "Athpariya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "api", - "name": "Apiaká", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apj", - "inverted_name": "Apache, Jicarilla", - "name": "Jicarilla Apache", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apk", - "inverted_name": "Apache, Kiowa", - "name": "Kiowa Apache", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apl", - "inverted_name": "Apache, Lipan", - "name": "Lipan Apache", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apm", - "inverted_name": "Apache, Mescalero-Chiricahua", - "name": "Mescalero-Chiricahua Apache", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apn", - "name": "Apinayé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apo", - "name": "Ambul", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "app", - "name": "Apma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apq", - "name": "A-Pucikwar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apr", - "name": "Arop-Lokep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aps", - "name": "Arop-Sissano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apt", - "name": "Apatani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apu", - "name": "Apurinã", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apv", - "name": "Alapmunte", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "apw", - "inverted_name": "Apache, Western", - "name": "Western Apache", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apx", - "name": "Aputai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apy", - "name": "Apalaí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "apz", - "name": "Safeyoka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aqc", - "name": "Archi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aqd", - "inverted_name": "Dogon, Ampari", - "name": "Ampari Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aqg", - "name": "Arigidi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aqk", - "name": "Aninka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aqm", - "name": "Atohwaim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aqn", - "inverted_name": "Alta, Northern", - "name": "Northern Alta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aqp", - "name": "Atakapa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "aqr", - "name": "Arhâ", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aqt", - "name": "Angaité", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aqz", - "name": "Akuntsu", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ar", - "alpha_3": "ara", - "name": "Arabic", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "arb", - "inverted_name": "Arabic, Standard", - "name": "Standard Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arc", - "inverted_name": "Aramaic, Official (700-300 BCE)", - "name": "Official Aramaic (700-300 BCE)", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "ard", - "name": "Arabana", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "are", - "inverted_name": "Arrarnta, Western", - "name": "Western Arrarnta", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "an", - "alpha_3": "arg", - "name": "Aragonese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arh", - "name": "Arhuaco", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ari", - "name": "Arikara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arj", - "name": "Arapaso", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ark", - "name": "Arikapú", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arl", - "name": "Arabela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arn", - "name": "Mapudungun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aro", - "name": "Araona", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arp", - "name": "Arapaho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arq", - "inverted_name": "Arabic, Algerian", - "name": "Algerian Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arr", - "name": "Karo (Brazil)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ars", - "inverted_name": "Arabic, Najdi", - "name": "Najdi Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aru", - "name": "Aruá (Amazonas State)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "arv", - "name": "Arbore", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arw", - "name": "Arawak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arx", - "name": "Aruá (Rodonia State)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ary", - "inverted_name": "Arabic, Moroccan", - "name": "Moroccan Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "arz", - "inverted_name": "Arabic, Egyptian", - "name": "Egyptian Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asa", - "name": "Asu (Tanzania)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asb", - "name": "Assiniboine", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asc", - "inverted_name": "Asmat, Casuarina Coast", - "name": "Casuarina Coast Asmat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ase", - "name": "American Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asf", - "name": "Auslan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asg", - "name": "Cishingini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ash", - "name": "Abishira", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "asi", - "name": "Buruwai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asj", - "name": "Sari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ask", - "name": "Ashkun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asl", - "name": "Asilulu", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "as", - "alpha_3": "asm", - "name": "Assamese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asn", - "inverted_name": "Asuriní, Xingú", - "name": "Xingú Asuriní", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aso", - "name": "Dano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asp", - "name": "Algerian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asq", - "name": "Austrian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asr", - "name": "Asuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ass", - "name": "Ipulo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ast", - "name": "Asturian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asu", - "inverted_name": "Asurini, Tocantins", - "name": "Tocantins Asurini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asv", - "name": "Asoa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asw", - "name": "Australian Aborigines Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asx", - "name": "Muratayak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asy", - "inverted_name": "Asmat, Yaosakor", - "name": "Yaosakor Asmat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "asz", - "name": "As", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ata", - "name": "Pele-Ata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atb", - "name": "Zaiwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atc", - "name": "Atsahuaca", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "atd", - "inverted_name": "Manobo, Ata", - "name": "Ata Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ate", - "name": "Atemble", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atg", - "name": "Ivbie North-Okpela-Arhe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ati", - "name": "Attié", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atj", - "name": "Atikamekw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atk", - "name": "Ati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atl", - "inverted_name": "Agta, Mt. Iraya", - "name": "Mt. Iraya Agta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atm", - "name": "Ata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atn", - "name": "Ashtiani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ato", - "name": "Atong (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atp", - "inverted_name": "Atta, Pudtol", - "name": "Pudtol Atta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atq", - "name": "Aralle-Tabulahan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atr", - "name": "Waimiri-Atroari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ats", - "name": "Gros Ventre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "att", - "inverted_name": "Atta, Pamplona", - "name": "Pamplona Atta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atu", - "name": "Reel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atv", - "inverted_name": "Altai, Northern", - "name": "Northern Altai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atw", - "name": "Atsugewi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atx", - "name": "Arutani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aty", - "name": "Aneityum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "atz", - "name": "Arta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aua", - "name": "Asumboa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aub", - "name": "Alugu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "auc", - "name": "Waorani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aud", - "name": "Anuta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aug", - "name": "Aguna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "auh", - "name": "Aushi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aui", - "name": "Anuki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "auj", - "name": "Awjilah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "auk", - "name": "Heyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aul", - "name": "Aulua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aum", - "name": "Asu (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aun", - "inverted_name": "One, Molmo", - "name": "Molmo One", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "auo", - "name": "Auyokawa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "aup", - "name": "Makayam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "auq", - "name": "Anus", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aur", - "name": "Aruek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aut", - "name": "Austral", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "auu", - "name": "Auye", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "auw", - "name": "Awyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aux", - "name": "Aurá", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "auy", - "name": "Awiyaana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "auz", - "inverted_name": "Arabic, Uzbeki", - "name": "Uzbeki Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "av", - "alpha_3": "ava", - "name": "Avaric", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "avb", - "name": "Avau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "avd", - "name": "Alviri-Vidari", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ae", - "alpha_3": "ave", - "name": "Avestan", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "avi", - "name": "Avikam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "avk", - "name": "Kotava", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "avl", - "inverted_name": "Arabic, Eastern Egyptian Bedawi", - "name": "Eastern Egyptian Bedawi Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "avm", - "name": "Angkamuthi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "avn", - "name": "Avatime", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "avo", - "name": "Agavotaguerra", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "avs", - "name": "Aushiri", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "avt", - "name": "Au", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "avu", - "name": "Avokaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "avv", - "name": "Avá-Canoeiro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awa", - "name": "Awadhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awb", - "name": "Awa (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awc", - "name": "Cicipu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awe", - "name": "Awetí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awg", - "name": "Anguthimri", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "awh", - "name": "Awbono", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awi", - "name": "Aekyom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awk", - "name": "Awabakal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "awm", - "name": "Arawum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awn", - "name": "Awngi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awo", - "name": "Awak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awr", - "name": "Awera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aws", - "inverted_name": "Awyu, South", - "name": "South Awyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awt", - "name": "Araweté", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awu", - "inverted_name": "Awyu, Central", - "name": "Central Awyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awv", - "inverted_name": "Awyu, Jair", - "name": "Jair Awyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aww", - "name": "Awun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awx", - "name": "Awara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "awy", - "inverted_name": "Awyu, Edera", - "name": "Edera Awyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "axb", - "name": "Abipon", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "axe", - "name": "Ayerrerenge", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "axg", - "inverted_name": "Arára, Mato Grosso", - "name": "Mato Grosso Arára", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "axk", - "name": "Yaka (Central African Republic)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "axl", - "inverted_name": "Aranda, Lower Southern", - "name": "Lower Southern Aranda", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "axm", - "inverted_name": "Armenian, Middle", - "name": "Middle Armenian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "axx", - "name": "Xârâgurè", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aya", - "name": "Awar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayb", - "inverted_name": "Gbe, Ayizo", - "name": "Ayizo Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayc", - "inverted_name": "Aymara, Southern", - "name": "Southern Aymara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayd", - "name": "Ayabadhu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "aye", - "name": "Ayere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayg", - "name": "Ginyanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayh", - "inverted_name": "Arabic, Hadrami", - "name": "Hadrami Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayi", - "name": "Leyigha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayk", - "name": "Akuku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayl", - "inverted_name": "Arabic, Libyan", - "name": "Libyan Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ay", - "alpha_3": "aym", - "name": "Aymara", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "ayn", - "inverted_name": "Arabic, Sanaani", - "name": "Sanaani Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayo", - "name": "Ayoreo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayp", - "inverted_name": "Arabic, North Mesopotamian", - "name": "North Mesopotamian Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayq", - "name": "Ayi (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayr", - "inverted_name": "Aymara, Central", - "name": "Central Aymara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ays", - "inverted_name": "Ayta, Sorsogon", - "name": "Sorsogon Ayta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayt", - "inverted_name": "Ayta, Magbukun", - "name": "Magbukun Ayta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayu", - "name": "Ayu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ayz", - "name": "Mai Brat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "aza", - "name": "Azha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "azb", - "inverted_name": "Azerbaijani, South", - "name": "South Azerbaijani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "azd", - "inverted_name": "Nahuatl, Eastern Durango", - "name": "Eastern Durango Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "az", - "alpha_3": "aze", - "name": "Azerbaijani", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "azg", - "inverted_name": "Amuzgo, San Pedro Amuzgos", - "name": "San Pedro Amuzgos Amuzgo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "azj", - "inverted_name": "Azerbaijani, North", - "name": "North Azerbaijani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "azm", - "inverted_name": "Amuzgo, Ipalapa", - "name": "Ipalapa Amuzgo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "azn", - "inverted_name": "Nahuatl, Western Durango", - "name": "Western Durango Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "azo", - "name": "Awing", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "azt", - "inverted_name": "Atta, Faire", - "name": "Faire Atta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "azz", - "inverted_name": "Nahuatl, Highland Puebla", - "name": "Highland Puebla Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "baa", - "name": "Babatana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bab", - "name": "Bainouk-Gunyuño", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bac", - "name": "Badui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bae", - "name": "Baré", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "baf", - "name": "Nubaca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bag", - "name": "Tuki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bah", - "inverted_name": "Creole English, Bahamas", - "name": "Bahamas Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "baj", - "name": "Barakai", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ba", - "alpha_3": "bak", - "name": "Bashkir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bal", - "name": "Baluchi", - "scope": "M", - "type": "L" - }, - { - "alpha_2": "bm", - "alpha_3": "bam", - "name": "Bambara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ban", - "name": "Balinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bao", - "name": "Waimaha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bap", - "name": "Bantawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bar", - "name": "Bavarian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bas", - "name": "Basa (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bau", - "name": "Bada (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bav", - "name": "Vengo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "baw", - "name": "Bambili-Bambui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bax", - "name": "Bamun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bay", - "name": "Batuley", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bba", - "name": "Baatonum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbb", - "name": "Barai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbc", - "name": "Batak Toba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbd", - "name": "Bau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbe", - "name": "Bangba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbf", - "name": "Baibai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbg", - "name": "Barama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbh", - "name": "Bugan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbi", - "name": "Barombi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbj", - "name": "Ghomálá'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbk", - "name": "Babanki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbl", - "name": "Bats", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbm", - "name": "Babango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbn", - "name": "Uneapa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbo", - "inverted_name": "Bobo Madaré, Northern", - "name": "Northern Bobo Madaré", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbp", - "inverted_name": "Banda, West Central", - "name": "West Central Banda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbq", - "name": "Bamali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbr", - "name": "Girawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbs", - "name": "Bakpinka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbt", - "name": "Mburku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbu", - "name": "Kulung (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbv", - "name": "Karnai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbw", - "name": "Baba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bbx", - "name": "Bubia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bby", - "name": "Befang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bca", - "inverted_name": "Bai, Central", - "name": "Central Bai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcb", - "name": "Bainouk-Samik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcc", - "inverted_name": "Balochi, Southern", - "name": "Southern Balochi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcd", - "inverted_name": "Babar, North", - "name": "North Babar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bce", - "name": "Bamenyam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcf", - "name": "Bamu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcg", - "name": "Baga Pokur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bch", - "name": "Bariai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bci", - "name": "Baoulé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcj", - "name": "Bardi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bck", - "name": "Bunuba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcl", - "inverted_name": "Bikol, Central", - "name": "Central Bikol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcm", - "name": "Bannoni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcn", - "name": "Bali (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bco", - "name": "Kaluli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcp", - "name": "Bali (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcq", - "name": "Bench", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcr", - "name": "Babine", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcs", - "name": "Kohumono", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bct", - "name": "Bendi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcu", - "name": "Awad Bing", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcv", - "name": "Shoo-Minda-Nye", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcw", - "name": "Bana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcy", - "name": "Bacama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bcz", - "name": "Bainouk-Gunyaamolo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bda", - "name": "Bayot", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdb", - "name": "Basap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdc", - "name": "Emberá-Baudó", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdd", - "name": "Bunama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bde", - "name": "Bade", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdf", - "name": "Biage", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdg", - "name": "Bonggi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdh", - "name": "Baka (South Sudan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdi", - "name": "Burun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdj", - "name": "Bai (South Sudan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdk", - "name": "Budukh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdl", - "inverted_name": "Bajau, Indonesian", - "name": "Indonesian Bajau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdm", - "name": "Buduma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdn", - "name": "Baldemu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdo", - "name": "Morom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdp", - "name": "Bende", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdq", - "name": "Bahnar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdr", - "inverted_name": "Bajau, West Coast", - "name": "West Coast Bajau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bds", - "name": "Burunge", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdt", - "name": "Bokoto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdu", - "name": "Oroko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdv", - "name": "Bodo Parja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdw", - "name": "Baham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdx", - "name": "Budong-Budong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdy", - "name": "Bandjalang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bdz", - "name": "Badeshi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bea", - "name": "Beaver", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "beb", - "name": "Bebele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bec", - "name": "Iceve-Maci", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bed", - "name": "Bedoanas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bee", - "name": "Byangsi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bef", - "name": "Benabena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "beg", - "name": "Belait", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "beh", - "name": "Biali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bei", - "name": "Bekati'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bej", - "name": "Beja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bek", - "name": "Bebeli", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "be", - "alpha_3": "bel", - "name": "Belarusian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bem", - "name": "Bemba (Zambia)", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "bn", - "alpha_3": "ben", - "common_name": "Bangla", - "name": "Bengali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "beo", - "name": "Beami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bep", - "name": "Besoa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "beq", - "name": "Beembe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bes", - "name": "Besme", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bet", - "inverted_name": "Béte, Guiberoua", - "name": "Guiberoua Béte", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "beu", - "name": "Blagar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bev", - "inverted_name": "Bété, Daloa", - "name": "Daloa Bété", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bew", - "name": "Betawi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bex", - "name": "Jur Modo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bey", - "name": "Beli (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bez", - "name": "Bena (Tanzania)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfa", - "name": "Bari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfb", - "inverted_name": "Bareli, Pauri", - "name": "Pauri Bareli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfc", - "inverted_name": "Bai, Panyi", - "name": "Panyi Bai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfd", - "name": "Bafut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfe", - "name": "Betaf", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bff", - "name": "Bofi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfg", - "inverted_name": "Kayan, Busang", - "name": "Busang Kayan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfh", - "name": "Blafe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfi", - "name": "British Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfj", - "name": "Bafanji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfk", - "name": "Ban Khor Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfl", - "name": "Banda-Ndélé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfm", - "name": "Mmen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfn", - "name": "Bunak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfo", - "inverted_name": "Birifor, Malba", - "name": "Malba Birifor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfp", - "name": "Beba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfq", - "name": "Badaga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfr", - "name": "Bazigar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfs", - "inverted_name": "Bai, Southern", - "name": "Southern Bai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bft", - "name": "Balti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfu", - "name": "Gahri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfw", - "name": "Bondo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfx", - "name": "Bantayanon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfy", - "name": "Bagheli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bfz", - "inverted_name": "Pahari, Mahasu", - "name": "Mahasu Pahari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bga", - "name": "Gwamhi-Wuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgb", - "name": "Bobongko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgc", - "name": "Haryanvi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgd", - "inverted_name": "Bareli, Rathwi", - "name": "Rathwi Bareli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bge", - "name": "Bauria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgf", - "name": "Bangandu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgg", - "name": "Bugun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgi", - "name": "Giangan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgj", - "name": "Bangolan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgk", - "name": "Bit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgl", - "name": "Bo (Laos)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgn", - "inverted_name": "Balochi, Western", - "name": "Western Balochi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgo", - "name": "Baga Koga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgp", - "inverted_name": "Balochi, Eastern", - "name": "Eastern Balochi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgq", - "name": "Bagri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgr", - "inverted_name": "Chin, Bawm", - "name": "Bawm Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgs", - "name": "Tagabawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgt", - "name": "Bughotu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgu", - "name": "Mbongno", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgv", - "name": "Warkay-Bipim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgw", - "name": "Bhatri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgx", - "inverted_name": "Turkish, Balkan Gagauz", - "name": "Balkan Gagauz Turkish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgy", - "name": "Benggoi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bgz", - "name": "Banggai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bha", - "name": "Bharia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhb", - "name": "Bhili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhc", - "name": "Biga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhd", - "name": "Bhadrawahi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhe", - "name": "Bhaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhf", - "name": "Odiai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhg", - "name": "Binandere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhh", - "name": "Bukharic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhi", - "name": "Bhilali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhj", - "name": "Bahing", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhl", - "name": "Bimin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhm", - "name": "Bathari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhn", - "inverted_name": "Neo-Aramaic, Bohtan", - "name": "Bohtan Neo-Aramaic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bho", - "name": "Bhojpuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhp", - "name": "Bima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhq", - "name": "Tukang Besi South", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhr", - "inverted_name": "Malagasy, Bara", - "name": "Bara Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhs", - "name": "Buwal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bht", - "name": "Bhattiyali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhu", - "name": "Bhunjia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhv", - "name": "Bahau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhw", - "name": "Biak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhx", - "name": "Bhalay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhy", - "name": "Bhele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bhz", - "name": "Bada (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bia", - "name": "Badimaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bib", - "name": "Bissa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bid", - "name": "Bidiyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bie", - "name": "Bepour", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bif", - "name": "Biafada", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "big", - "name": "Biangai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bik", - "name": "Bikol", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "bil", - "name": "Bile", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bim", - "name": "Bimoba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bin", - "name": "Bini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bio", - "name": "Nai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bip", - "name": "Bila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "biq", - "name": "Bipi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bir", - "name": "Bisorio", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "bi", - "alpha_3": "bis", - "name": "Bislama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bit", - "name": "Berinomo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "biu", - "name": "Biete", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "biv", - "inverted_name": "Birifor, Southern", - "name": "Southern Birifor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "biw", - "name": "Kol (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bix", - "name": "Bijori", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "biy", - "name": "Birhor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "biz", - "name": "Baloi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bja", - "name": "Budza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjb", - "name": "Banggarla", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "bjc", - "name": "Bariji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bje", - "inverted_name": "Mien, Biao-Jiao", - "name": "Biao-Jiao Mien", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjf", - "inverted_name": "Neo-Aramaic, Barzani Jewish", - "name": "Barzani Jewish Neo-Aramaic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjg", - "name": "Bidyogo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjh", - "name": "Bahinemo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bji", - "name": "Burji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjj", - "name": "Kanauji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjk", - "name": "Barok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjl", - "name": "Bulu (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjm", - "name": "Bajelani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjn", - "name": "Banjar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjo", - "inverted_name": "Banda, Mid-Southern", - "name": "Mid-Southern Banda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjp", - "name": "Fanamaket", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjr", - "name": "Binumarien", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjs", - "name": "Bajan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjt", - "name": "Balanta-Ganja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bju", - "name": "Busuu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjv", - "name": "Bedjond", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjw", - "name": "Bakwé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjx", - "inverted_name": "Itneg, Banao", - "name": "Banao Itneg", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bjy", - "name": "Bayali", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "bjz", - "name": "Baruga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bka", - "name": "Kyak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkc", - "name": "Baka (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkd", - "name": "Binukid", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkf", - "name": "Beeke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkg", - "name": "Buraka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkh", - "name": "Bakoko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bki", - "name": "Baki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkj", - "name": "Pande", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkk", - "name": "Brokskat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkl", - "name": "Berik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkm", - "name": "Kom (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkn", - "name": "Bukitan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bko", - "name": "Kwa'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkp", - "name": "Boko (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkq", - "name": "Bakairí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkr", - "name": "Bakumpai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bks", - "inverted_name": "Sorsoganon, Northern", - "name": "Northern Sorsoganon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkt", - "name": "Boloki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bku", - "name": "Buhid", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkv", - "name": "Bekwarra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkw", - "name": "Bekwel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkx", - "name": "Baikeno", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bky", - "name": "Bokyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bkz", - "name": "Bungku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bla", - "name": "Siksika", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blb", - "name": "Bilua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blc", - "name": "Bella Coola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bld", - "name": "Bolango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ble", - "name": "Balanta-Kentohe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blf", - "name": "Buol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blh", - "name": "Kuwaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bli", - "name": "Bolia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blj", - "name": "Bolongan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blk", - "inverted_name": "Karen, Pa'o", - "name": "Pa'o Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bll", - "name": "Biloxi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "blm", - "name": "Beli (South Sudan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bln", - "inverted_name": "Bikol, Southern Catanduanes", - "name": "Southern Catanduanes Bikol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blo", - "name": "Anii", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blp", - "name": "Blablanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blq", - "name": "Baluan-Pam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blr", - "name": "Blang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bls", - "name": "Balaesang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blt", - "name": "Tai Dam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blv", - "name": "Kibala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blw", - "name": "Balangao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blx", - "inverted_name": "Ayta, Mag-Indi", - "name": "Mag-Indi Ayta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bly", - "name": "Notre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "blz", - "name": "Balantak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bma", - "name": "Lame", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmb", - "name": "Bembe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmc", - "name": "Biem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmd", - "inverted_name": "Manduri, Baga", - "name": "Baga Manduri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bme", - "name": "Limassa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmf", - "name": "Bom-Kim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmg", - "name": "Bamwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmh", - "name": "Kein", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmi", - "name": "Bagirmi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmj", - "name": "Bote-Majhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmk", - "name": "Ghayavi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bml", - "name": "Bomboli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmm", - "inverted_name": "Malagasy, Northern Betsimisaraka", - "name": "Northern Betsimisaraka Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmn", - "name": "Bina (Papua New Guinea)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "bmo", - "name": "Bambalang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmp", - "name": "Bulgebi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmq", - "name": "Bomu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmr", - "name": "Muinane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bms", - "inverted_name": "Kanuri, Bilma", - "name": "Bilma Kanuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmt", - "name": "Biao Mon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmu", - "name": "Somba-Siawari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmv", - "name": "Bum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmw", - "name": "Bomwali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmx", - "name": "Baimak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bmz", - "name": "Baramu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bna", - "name": "Bonerate", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnb", - "name": "Bookan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnc", - "name": "Bontok", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "bnd", - "name": "Banda (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bne", - "name": "Bintauna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnf", - "name": "Masiwang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bng", - "name": "Benga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bni", - "name": "Bangi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnj", - "inverted_name": "Tawbuid, Eastern", - "name": "Eastern Tawbuid", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnk", - "name": "Bierebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnl", - "name": "Boon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnm", - "name": "Batanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnn", - "name": "Bunun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bno", - "name": "Bantoanon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnp", - "name": "Bola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnq", - "name": "Bantik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnr", - "name": "Butmas-Tur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bns", - "name": "Bundeli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnu", - "name": "Bentong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnv", - "name": "Bonerif", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnw", - "name": "Bisis", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnx", - "name": "Bangubangu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bny", - "name": "Bintulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bnz", - "name": "Beezen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "boa", - "name": "Bora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bob", - "name": "Aweer", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "bo", - "alpha_3": "bod", - "bibliographic": "tib", - "name": "Tibetan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "boe", - "name": "Mundabli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bof", - "name": "Bolon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bog", - "name": "Bamako Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "boh", - "name": "Boma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "boi", - "name": "Barbareño", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "boj", - "name": "Anjam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bok", - "name": "Bonjo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bol", - "name": "Bole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bom", - "name": "Berom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bon", - "name": "Bine", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "boo", - "inverted_name": "Bozo, Tiemacèwè", - "name": "Tiemacèwè Bozo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bop", - "name": "Bonkiman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "boq", - "name": "Bogaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bor", - "name": "Borôro", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "bs", - "alpha_3": "bos", - "name": "Bosnian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bot", - "name": "Bongo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bou", - "name": "Bondei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bov", - "name": "Tuwuli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bow", - "name": "Rema", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "box", - "name": "Buamu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "boy", - "name": "Bodo (Central African Republic)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "boz", - "inverted_name": "Bozo, Tiéyaxo", - "name": "Tiéyaxo Bozo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpa", - "name": "Daakaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpc", - "name": "Mbuk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpd", - "name": "Banda-Banda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpe", - "name": "Bauni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpg", - "name": "Bonggo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bph", - "name": "Botlikh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpi", - "name": "Bagupi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpj", - "name": "Binji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpk", - "name": "Orowe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpl", - "name": "Broome Pearling Lugger Pidgin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpm", - "name": "Biyom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpn", - "name": "Dzao Min", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpo", - "name": "Anasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpp", - "name": "Kaure", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpq", - "inverted_name": "Malay, Banda", - "name": "Banda Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpr", - "inverted_name": "Blaan, Koronadal", - "name": "Koronadal Blaan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bps", - "inverted_name": "Blaan, Sarangani", - "name": "Sarangani Blaan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpt", - "name": "Barrow Point", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "bpu", - "name": "Bongu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpv", - "inverted_name": "Marind, Bian", - "name": "Bian Marind", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpw", - "name": "Bo (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpx", - "inverted_name": "Bareli, Palya", - "name": "Palya Bareli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpy", - "name": "Bishnupriya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bpz", - "name": "Bilba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqa", - "name": "Tchumbuli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqb", - "name": "Bagusa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqc", - "name": "Boko (Benin)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqd", - "name": "Bung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqf", - "name": "Baga Kaloum", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "bqg", - "name": "Bago-Kusuntu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqh", - "name": "Baima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqi", - "name": "Bakhtiari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqj", - "name": "Bandial", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqk", - "name": "Banda-Mbrès", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bql", - "name": "Bilakura", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqm", - "name": "Wumboko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqn", - "name": "Bulgarian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqo", - "name": "Balo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqp", - "name": "Busa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqq", - "name": "Biritai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqr", - "name": "Burusu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqs", - "name": "Bosngun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqt", - "name": "Bamukumbit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqu", - "name": "Boguru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqv", - "name": "Koro Wachi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqw", - "name": "Buru (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqx", - "name": "Baangi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqy", - "name": "Bengkala Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bqz", - "name": "Bakaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bra", - "name": "Braj", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brb", - "name": "Brao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brc", - "inverted_name": "Creole Dutch, Berbice", - "name": "Berbice Creole Dutch", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "brd", - "name": "Baraamu", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "br", - "alpha_3": "bre", - "name": "Breton", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brf", - "name": "Bira", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brg", - "name": "Baure", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brh", - "name": "Brahui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bri", - "name": "Mokpwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brj", - "name": "Bieria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brk", - "name": "Birked", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "brl", - "name": "Birwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brm", - "name": "Barambu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brn", - "name": "Boruca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bro", - "name": "Brokkat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brp", - "name": "Barapasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brq", - "name": "Breri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brr", - "name": "Birao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brs", - "name": "Baras", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brt", - "name": "Bitare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bru", - "inverted_name": "Bru, Eastern", - "name": "Eastern Bru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brv", - "inverted_name": "Bru, Western", - "name": "Western Bru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brw", - "name": "Bellari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brx", - "name": "Bodo (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bry", - "name": "Burui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "brz", - "name": "Bilbil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsa", - "name": "Abinomn", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsb", - "inverted_name": "Bisaya, Brunei", - "name": "Brunei Bisaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsc", - "name": "Bassari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bse", - "name": "Wushi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsf", - "name": "Bauchi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsg", - "name": "Bashkardi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsh", - "name": "Kati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsi", - "name": "Bassossi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsj", - "name": "Bangwinji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsk", - "name": "Burushaski", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsl", - "name": "Basa-Gumna", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "bsm", - "name": "Busami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsn", - "name": "Barasana-Eduria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bso", - "name": "Buso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsp", - "name": "Baga Sitemu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsq", - "name": "Bassa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsr", - "name": "Bassa-Kontagora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bss", - "name": "Akoose", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bst", - "name": "Basketo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsu", - "name": "Bahonsuai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsv", - "name": "Baga Sobané", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "bsw", - "name": "Baiso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsx", - "name": "Yangkam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bsy", - "inverted_name": "Bisaya, Sabah", - "name": "Sabah Bisaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bta", - "name": "Bata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btc", - "name": "Bati (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btd", - "name": "Batak Dairi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bte", - "name": "Gamo-Ningi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "btf", - "name": "Birgit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btg", - "inverted_name": "Bété, Gagnoa", - "name": "Gagnoa Bété", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bth", - "inverted_name": "Bidayuh, Biatah", - "name": "Biatah Bidayuh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bti", - "name": "Burate", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btj", - "inverted_name": "Malay, Bacanese", - "name": "Bacanese Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btm", - "name": "Batak Mandailing", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btn", - "name": "Ratagnon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bto", - "inverted_name": "Bikol, Rinconada", - "name": "Rinconada Bikol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btp", - "name": "Budibud", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btq", - "name": "Batek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btr", - "name": "Baetora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bts", - "name": "Batak Simalungun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btt", - "name": "Bete-Bendi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btu", - "name": "Batu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btv", - "name": "Bateri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btw", - "name": "Butuanon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btx", - "name": "Batak Karo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bty", - "name": "Bobot", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "btz", - "name": "Batak Alas-Kluet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bua", - "name": "Buriat", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "bub", - "name": "Bua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buc", - "name": "Bushi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bud", - "name": "Ntcham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bue", - "name": "Beothuk", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "buf", - "name": "Bushoong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bug", - "name": "Buginese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buh", - "inverted_name": "Bunu, Younuo", - "name": "Younuo Bunu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bui", - "name": "Bongili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buj", - "name": "Basa-Gurmana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buk", - "name": "Bugawac", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "bg", - "alpha_3": "bul", - "name": "Bulgarian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bum", - "name": "Bulu (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bun", - "name": "Sherbro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buo", - "name": "Terei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bup", - "name": "Busoa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buq", - "name": "Brem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bus", - "name": "Bokobaru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "but", - "name": "Bungain", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buu", - "name": "Budu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buv", - "name": "Bun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buw", - "name": "Bubi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bux", - "name": "Boghom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buy", - "name": "Bullom So", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "buz", - "name": "Bukwen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bva", - "name": "Barein", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvb", - "name": "Bube", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvc", - "name": "Baelelea", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvd", - "name": "Baeggu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bve", - "inverted_name": "Malay, Berau", - "name": "Berau Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvf", - "name": "Boor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvg", - "name": "Bonkeng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvh", - "name": "Bure", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvi", - "name": "Belanda Viri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvj", - "name": "Baan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvk", - "name": "Bukat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvl", - "name": "Bolivian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvm", - "name": "Bamunka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvn", - "name": "Buna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvo", - "name": "Bolgo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvp", - "name": "Bumang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvq", - "name": "Birri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvr", - "name": "Burarra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvt", - "name": "Bati (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvu", - "inverted_name": "Malay, Bukit", - "name": "Bukit Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvv", - "name": "Baniva", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "bvw", - "name": "Boga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvx", - "name": "Dibole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvy", - "name": "Baybayanon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bvz", - "name": "Bauzi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwa", - "name": "Bwatoo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwb", - "name": "Namosi-Naitasiri-Serua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwc", - "name": "Bwile", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwd", - "name": "Bwaidoka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwe", - "inverted_name": "Karen, Bwe", - "name": "Bwe Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwf", - "name": "Boselewa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwg", - "name": "Barwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwh", - "name": "Bishuo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwi", - "name": "Baniwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwj", - "inverted_name": "Bwamu, Láá Láá", - "name": "Láá Láá Bwamu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwk", - "name": "Bauwaki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwl", - "name": "Bwela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwm", - "name": "Biwat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwn", - "inverted_name": "Bunu, Wunai", - "name": "Wunai Bunu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwo", - "name": "Boro (Ethiopia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwp", - "name": "Mandobo Bawah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwq", - "inverted_name": "Bobo Madaré, Southern", - "name": "Southern Bobo Madaré", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwr", - "name": "Bura-Pabir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bws", - "name": "Bomboma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwt", - "name": "Bafaw-Balong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwu", - "name": "Buli (Ghana)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bww", - "name": "Bwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwx", - "inverted_name": "Bunu, Bu-Nao", - "name": "Bu-Nao Bunu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwy", - "inverted_name": "Bwamu, Cwi", - "name": "Cwi Bwamu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bwz", - "name": "Bwisi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxa", - "name": "Tairaha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxb", - "inverted_name": "Bor, Belanda", - "name": "Belanda Bor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxc", - "name": "Molengue", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxd", - "name": "Pela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxe", - "name": "Birale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxf", - "name": "Bilur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxg", - "name": "Bangala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxh", - "name": "Buhutu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxi", - "name": "Pirlatapa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "bxj", - "name": "Bayungu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxk", - "name": "Bukusu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxl", - "name": "Jalkunan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxm", - "inverted_name": "Buriat, Mongolia", - "name": "Mongolia Buriat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxn", - "name": "Burduna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxo", - "name": "Barikanchi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxp", - "name": "Bebil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxq", - "name": "Beele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxr", - "inverted_name": "Buriat, Russia", - "name": "Russia Buriat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxs", - "name": "Busam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxu", - "inverted_name": "Buriat, China", - "name": "China Buriat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxv", - "name": "Berakou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxw", - "name": "Bankagooma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bxz", - "name": "Binahari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bya", - "name": "Batak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byb", - "name": "Bikya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byc", - "name": "Ubaghara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byd", - "name": "Benyadu'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bye", - "name": "Pouye", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byf", - "name": "Bete", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byg", - "name": "Baygo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "byh", - "name": "Bhujel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byi", - "name": "Buyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byj", - "name": "Bina (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byk", - "name": "Biao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byl", - "name": "Bayono", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bym", - "name": "Bidjara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byn", - "name": "Bilin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byo", - "name": "Biyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byp", - "name": "Bumaji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byq", - "name": "Basay", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "byr", - "name": "Baruya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bys", - "name": "Burak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byt", - "name": "Berti", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "byv", - "name": "Medumba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byw", - "name": "Belhariya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byx", - "name": "Qaqet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "byz", - "name": "Banaro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bza", - "name": "Bandi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzb", - "name": "Andio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzc", - "inverted_name": "Malagasy, Southern Betsimisaraka", - "name": "Southern Betsimisaraka Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzd", - "name": "Bribri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bze", - "inverted_name": "Bozo, Jenaama", - "name": "Jenaama Bozo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzf", - "name": "Boikin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzg", - "name": "Babuza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzh", - "inverted_name": "Buang, Mapos", - "name": "Mapos Buang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzi", - "name": "Bisu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzj", - "inverted_name": "Kriol English, Belize", - "name": "Belize Kriol English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzk", - "inverted_name": "Creole English, Nicaragua", - "name": "Nicaragua Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzl", - "name": "Boano (Sulawesi)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzm", - "name": "Bolondo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzn", - "name": "Boano (Maluku)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzo", - "name": "Bozaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzp", - "name": "Kemberano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzq", - "name": "Buli (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzr", - "name": "Biri", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "bzs", - "name": "Brazilian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzt", - "name": "Brithenig", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "bzu", - "name": "Burmeso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzv", - "name": "Naami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzw", - "name": "Basa (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzx", - "inverted_name": "Bozo, Kɛlɛngaxo", - "name": "Kɛlɛngaxo Bozo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzy", - "name": "Obanliku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "bzz", - "name": "Evant", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "caa", - "name": "Chortí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cab", - "name": "Garifuna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cac", - "name": "Chuj", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cad", - "name": "Caddo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cae", - "name": "Lehar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "caf", - "inverted_name": "Carrier, Southern", - "name": "Southern Carrier", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cag", - "name": "Nivaclé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cah", - "name": "Cahuarano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "caj", - "name": "Chané", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cak", - "name": "Kaqchikel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cal", - "name": "Carolinian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cam", - "name": "Cemuhî", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "can", - "name": "Chambri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cao", - "name": "Chácobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cap", - "name": "Chipaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "caq", - "inverted_name": "Nicobarese, Car", - "name": "Car Nicobarese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "car", - "inverted_name": "Carib, Galibi", - "name": "Galibi Carib", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cas", - "name": "Tsimané", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ca", - "alpha_3": "cat", - "name": "Catalan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cav", - "name": "Cavineña", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "caw", - "name": "Callawalla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cax", - "name": "Chiquitano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cay", - "name": "Cayuga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "caz", - "name": "Canichana", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cbb", - "name": "Cabiyarí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbc", - "name": "Carapana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbd", - "name": "Carijona", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbg", - "name": "Chimila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbi", - "name": "Chachi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbj", - "name": "Ede Cabe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbk", - "name": "Chavacano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbl", - "inverted_name": "Chin, Bualkhaw", - "name": "Bualkhaw Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbn", - "name": "Nyahkur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbo", - "name": "Izora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbq", - "name": "Tsucuba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbr", - "name": "Cashibo-Cacataibo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbs", - "name": "Cashinahua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbt", - "name": "Chayahuita", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbu", - "name": "Candoshi-Shapra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbv", - "name": "Cacua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cbw", - "name": "Kinabalian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cby", - "name": "Carabayo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ccc", - "name": "Chamicuro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ccd", - "inverted_name": "Creole, Cafundo", - "name": "Cafundo Creole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cce", - "name": "Chopi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ccg", - "inverted_name": "Daka, Samba", - "name": "Samba Daka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cch", - "name": "Atsam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ccj", - "name": "Kasanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ccl", - "name": "Cutchi-Swahili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ccm", - "inverted_name": "Creole Malay, Malaccan", - "name": "Malaccan Creole Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cco", - "inverted_name": "Chinantec, Comaltepec", - "name": "Comaltepec Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ccp", - "name": "Chakma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ccr", - "name": "Cacaopera", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cda", - "name": "Choni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cde", - "name": "Chenchu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cdf", - "name": "Chiru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cdh", - "name": "Chambeali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cdi", - "name": "Chodri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cdj", - "name": "Churahi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cdm", - "name": "Chepang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cdn", - "name": "Chaudangsi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cdo", - "inverted_name": "Chinese, Min Dong", - "name": "Min Dong Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cdr", - "name": "Cinda-Regi-Tiyal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cds", - "name": "Chadian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cdy", - "name": "Chadong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cdz", - "name": "Koda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cea", - "inverted_name": "Chehalis, Lower", - "name": "Lower Chehalis", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ceb", - "name": "Cebuano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ceg", - "name": "Chamacoco", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cek", - "inverted_name": "Chin, Eastern Khumi", - "name": "Eastern Khumi Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cen", - "name": "Cen", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "cs", - "alpha_3": "ces", - "bibliographic": "cze", - "name": "Czech", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cet", - "name": "Centúúm", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cey", - "inverted_name": "Chin, Ekai", - "name": "Ekai Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cfa", - "name": "Dijim-Bwilim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cfd", - "name": "Cara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cfg", - "name": "Como Karim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cfm", - "inverted_name": "Chin, Falam", - "name": "Falam Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cga", - "name": "Changriwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cgc", - "name": "Kagayanen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cgg", - "name": "Chiga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cgk", - "name": "Chocangacakha", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ch", - "alpha_3": "cha", - "name": "Chamorro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chb", - "name": "Chibcha", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "chc", - "name": "Catawba", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "chd", - "inverted_name": "Chontal, Highland Oaxaca", - "name": "Highland Oaxaca Chontal", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ce", - "alpha_3": "che", - "name": "Chechen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chf", - "inverted_name": "Chontal, Tabasco", - "name": "Tabasco Chontal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chg", - "name": "Chagatai", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "chh", - "name": "Chinook", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "chj", - "inverted_name": "Chinantec, Ojitlán", - "name": "Ojitlán Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chk", - "name": "Chuukese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chl", - "name": "Cahuilla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chm", - "name": "Mari (Russia)", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "chn", - "name": "Chinook jargon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cho", - "name": "Choctaw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chp", - "name": "Chipewyan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chq", - "inverted_name": "Chinantec, Quiotepec", - "name": "Quiotepec Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chr", - "name": "Cherokee", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cht", - "name": "Cholón", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "cu", - "alpha_3": "chu", - "inverted_name": "Slavic, Church", - "name": "Church Slavic", - "scope": "I", - "type": "A" - }, - { - "alpha_2": "cv", - "alpha_3": "chv", - "name": "Chuvash", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chw", - "name": "Chuwabu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chx", - "name": "Chantyal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chy", - "name": "Cheyenne", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "chz", - "inverted_name": "Chinantec, Ozumacín", - "name": "Ozumacín Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cia", - "name": "Cia-Cia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cib", - "inverted_name": "Gbe, Ci", - "name": "Ci Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cic", - "name": "Chickasaw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cid", - "name": "Chimariko", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cie", - "name": "Cineni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cih", - "name": "Chinali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cik", - "inverted_name": "Kinnauri, Chitkuli", - "name": "Chitkuli Kinnauri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cim", - "name": "Cimbrian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cin", - "name": "Cinta Larga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cip", - "name": "Chiapanec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cir", - "name": "Tiri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ciw", - "name": "Chippewa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ciy", - "name": "Chaima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cja", - "inverted_name": "Cham, Western", - "name": "Western Cham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cje", - "name": "Chru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cjh", - "inverted_name": "Chehalis, Upper", - "name": "Upper Chehalis", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cji", - "name": "Chamalal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cjk", - "name": "Chokwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cjm", - "inverted_name": "Cham, Eastern", - "name": "Eastern Cham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cjn", - "name": "Chenapian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cjo", - "name": "Ashéninka Pajonal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cjp", - "name": "Cabécar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cjs", - "name": "Shor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cjv", - "name": "Chuave", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cjy", - "inverted_name": "Chinese, Jinyu", - "name": "Jinyu Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckb", - "inverted_name": "Kurdish, Central", - "name": "Central Kurdish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckh", - "name": "Chak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckl", - "name": "Cibak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckm", - "name": "Chakavian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckn", - "inverted_name": "Chin, Kaang", - "name": "Kaang Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cko", - "name": "Anufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckq", - "name": "Kajakse", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckr", - "name": "Kairak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cks", - "name": "Tayo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckt", - "name": "Chukot", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cku", - "name": "Koasati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckv", - "name": "Kavalan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckx", - "name": "Caka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cky", - "name": "Cakfem-Mushere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ckz", - "name": "Cakchiquel-Quiché Mixed Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cla", - "name": "Ron", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "clc", - "name": "Chilcotin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cld", - "inverted_name": "Neo-Aramaic, Chaldean", - "name": "Chaldean Neo-Aramaic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cle", - "inverted_name": "Chinantec, Lealao", - "name": "Lealao Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "clh", - "name": "Chilisso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cli", - "name": "Chakali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "clj", - "inverted_name": "Chin, Laitu", - "name": "Laitu Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "clk", - "name": "Idu-Mishmi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cll", - "name": "Chala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "clm", - "name": "Clallam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "clo", - "inverted_name": "Chontal, Lowland Oaxaca", - "name": "Lowland Oaxaca Chontal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "clt", - "inverted_name": "Chin, Lautu", - "name": "Lautu Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "clu", - "name": "Caluyanun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "clw", - "name": "Chulym", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cly", - "inverted_name": "Chatino, Eastern Highland", - "name": "Eastern Highland Chatino", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cma", - "name": "Maa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cme", - "name": "Cerma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cmg", - "inverted_name": "Mongolian, Classical", - "name": "Classical Mongolian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "cmi", - "name": "Emberá-Chamí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cml", - "name": "Campalagian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cmm", - "name": "Michigamea", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cmn", - "inverted_name": "Chinese, Mandarin", - "name": "Mandarin Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cmo", - "inverted_name": "Mnong, Central", - "name": "Central Mnong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cmr", - "inverted_name": "Chin, Mro-Khimi", - "name": "Mro-Khimi Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cms", - "name": "Messapic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "cmt", - "name": "Camtho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cna", - "name": "Changthang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnb", - "inverted_name": "Chin, Chinbon", - "name": "Chinbon Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnc", - "name": "Côông", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cng", - "inverted_name": "Qiang, Northern", - "name": "Northern Qiang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnh", - "inverted_name": "Chin, Hakha", - "name": "Hakha Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cni", - "name": "Asháninka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnk", - "inverted_name": "Chin, Khumi", - "name": "Khumi Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnl", - "inverted_name": "Chinantec, Lalana", - "name": "Lalana Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cno", - "name": "Con", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnp", - "inverted_name": "Chinese, Northern Ping", - "name": "Northern Ping Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnq", - "name": "Chung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnr", - "name": "Montenegrin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cns", - "inverted_name": "Asmat, Central", - "name": "Central Asmat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnt", - "inverted_name": "Chinantec, Tepetotutla", - "name": "Tepetotutla Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnu", - "name": "Chenoua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnw", - "inverted_name": "Chin, Ngawn", - "name": "Ngawn Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cnx", - "inverted_name": "Cornish, Middle", - "name": "Middle Cornish", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "coa", - "inverted_name": "Malay, Cocos Islands", - "name": "Cocos Islands Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cob", - "name": "Chicomuceltec", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "coc", - "name": "Cocopa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cod", - "name": "Cocama-Cocamilla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "coe", - "name": "Koreguaje", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cof", - "name": "Colorado", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cog", - "name": "Chong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "coh", - "name": "Chonyi-Dzihana-Kauma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "coj", - "name": "Cochimi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cok", - "inverted_name": "Cora, Santa Teresa", - "name": "Santa Teresa Cora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "col", - "name": "Columbia-Wenatchi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "com", - "name": "Comanche", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "con", - "name": "Cofán", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "coo", - "name": "Comox", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cop", - "name": "Coptic", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "coq", - "name": "Coquille", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "kw", - "alpha_3": "cor", - "name": "Cornish", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "co", - "alpha_3": "cos", - "name": "Corsican", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cot", - "name": "Caquinte", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cou", - "name": "Wamey", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cov", - "name": "Cao Miao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cow", - "name": "Cowlitz", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cox", - "name": "Nanti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "coz", - "name": "Chochotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cpa", - "inverted_name": "Chinantec, Palantla", - "name": "Palantla Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cpb", - "inverted_name": "Ashéninka, Ucayali-Yurúa", - "name": "Ucayali-Yurúa Ashéninka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cpc", - "name": "Ajyíninka Apurucayali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cpg", - "inverted_name": "Greek, Cappadocian", - "name": "Cappadocian Greek", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cpi", - "inverted_name": "Pidgin English, Chinese", - "name": "Chinese Pidgin English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cpn", - "name": "Cherepon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cpo", - "name": "Kpeego", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cps", - "name": "Capiznon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cpu", - "inverted_name": "Ashéninka, Pichis", - "name": "Pichis Ashéninka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cpx", - "inverted_name": "Chinese, Pu-Xian", - "name": "Pu-Xian Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cpy", - "inverted_name": "Ashéninka, South Ucayali", - "name": "South Ucayali Ashéninka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cqd", - "inverted_name": "Miao, Chuanqiandian Cluster", - "name": "Chuanqiandian Cluster Miao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cra", - "name": "Chara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crb", - "inverted_name": "Carib, Island", - "name": "Island Carib", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "crc", - "name": "Lonwolwol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crd", - "name": "Coeur d'Alene", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "cr", - "alpha_3": "cre", - "name": "Cree", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "crf", - "name": "Caramanta", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "crg", - "name": "Michif", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crh", - "inverted_name": "Tatar, Crimean", - "name": "Crimean Tatar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cri", - "name": "Sãotomense", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crj", - "inverted_name": "Cree, Southern East", - "name": "Southern East Cree", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crk", - "inverted_name": "Cree, Plains", - "name": "Plains Cree", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crl", - "inverted_name": "Cree, Northern East", - "name": "Northern East Cree", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crm", - "inverted_name": "Cree, Moose", - "name": "Moose Cree", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crn", - "inverted_name": "Cora, El Nayar", - "name": "El Nayar Cora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cro", - "name": "Crow", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crq", - "inverted_name": "Chorote, Iyo'wujwa", - "name": "Iyo'wujwa Chorote", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crr", - "inverted_name": "Algonquian, Carolina", - "name": "Carolina Algonquian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "crs", - "inverted_name": "Creole French, Seselwa", - "name": "Seselwa Creole French", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crt", - "inverted_name": "Chorote, Iyojwa'ja", - "name": "Iyojwa'ja Chorote", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crv", - "name": "Chaura", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crw", - "name": "Chrau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crx", - "name": "Carrier", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cry", - "name": "Cori", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "crz", - "name": "Cruzeño", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "csa", - "inverted_name": "Chinantec, Chiltepec", - "name": "Chiltepec Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csb", - "name": "Kashubian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csc", - "name": "Catalan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csd", - "name": "Chiangmai Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cse", - "name": "Czech Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csf", - "name": "Cuba Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csg", - "name": "Chilean Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csh", - "inverted_name": "Chin, Asho", - "name": "Asho Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csi", - "inverted_name": "Miwok, Coast", - "name": "Coast Miwok", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "csj", - "inverted_name": "Chin, Songlai", - "name": "Songlai Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csk", - "name": "Jola-Kasa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csl", - "name": "Chinese Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csm", - "inverted_name": "Miwok, Central Sierra", - "name": "Central Sierra Miwok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csn", - "name": "Colombian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cso", - "inverted_name": "Chinantec, Sochiapam", - "name": "Sochiapam Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csp", - "inverted_name": "Chinese, Southern Ping", - "name": "Southern Ping Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csq", - "name": "Croatia Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csr", - "name": "Costa Rican Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "css", - "inverted_name": "Ohlone, Southern", - "name": "Southern Ohlone", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cst", - "inverted_name": "Ohlone, Northern", - "name": "Northern Ohlone", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csv", - "inverted_name": "Chin, Sumtu", - "name": "Sumtu Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csw", - "inverted_name": "Cree, Swampy", - "name": "Swampy Cree", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csx", - "name": "Cambodian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csy", - "inverted_name": "Chin, Siyin", - "name": "Siyin Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "csz", - "name": "Coos", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cta", - "inverted_name": "Chatino, Tataltepec", - "name": "Tataltepec Chatino", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ctc", - "name": "Chetco", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ctd", - "inverted_name": "Chin, Tedim", - "name": "Tedim Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cte", - "inverted_name": "Chinantec, Tepinapa", - "name": "Tepinapa Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ctg", - "name": "Chittagonian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cth", - "inverted_name": "Chin, Thaiphum", - "name": "Thaiphum Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ctl", - "inverted_name": "Chinantec, Tlacoatzintepec", - "name": "Tlacoatzintepec Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ctm", - "name": "Chitimacha", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ctn", - "name": "Chhintange", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cto", - "name": "Emberá-Catío", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ctp", - "inverted_name": "Chatino, Western Highland", - "name": "Western Highland Chatino", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cts", - "inverted_name": "Bikol, Northern Catanduanes", - "name": "Northern Catanduanes Bikol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ctt", - "inverted_name": "Chetti, Wayanad", - "name": "Wayanad Chetti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ctu", - "name": "Chol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cty", - "name": "Moundadan Chetty", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ctz", - "inverted_name": "Chatino, Zacatepec", - "name": "Zacatepec Chatino", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cua", - "name": "Cua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cub", - "name": "Cubeo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cuc", - "inverted_name": "Chinantec, Usila", - "name": "Usila Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cuh", - "name": "Chuka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cui", - "name": "Cuiba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cuj", - "name": "Mashco Piro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cuk", - "inverted_name": "Kuna, San Blas", - "name": "San Blas Kuna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cul", - "name": "Culina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cuo", - "name": "Cumanagoto", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cup", - "name": "Cupeño", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "cuq", - "name": "Cun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cur", - "name": "Chhulung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cut", - "inverted_name": "Cuicatec, Teutila", - "name": "Teutila Cuicatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cuu", - "name": "Tai Ya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cuv", - "name": "Cuvok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cuw", - "name": "Chukwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cux", - "inverted_name": "Cuicatec, Tepeuxila", - "name": "Tepeuxila Cuicatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cuy", - "name": "Cuitlatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cvg", - "name": "Chug", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cvn", - "inverted_name": "Chinantec, Valle Nacional", - "name": "Valle Nacional Chinantec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cwa", - "name": "Kabwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cwb", - "name": "Maindo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cwd", - "inverted_name": "Cree, Woods", - "name": "Woods Cree", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cwe", - "name": "Kwere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cwg", - "name": "Chewong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cwt", - "name": "Kuwaataay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cya", - "inverted_name": "Chatino, Nopala", - "name": "Nopala Chatino", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cyb", - "name": "Cayubaba", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "cy", - "alpha_3": "cym", - "bibliographic": "wel", - "name": "Welsh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "cyo", - "name": "Cuyonon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "czh", - "inverted_name": "Chinese, Huizhou", - "name": "Huizhou Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "czk", - "name": "Knaanic", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "czn", - "inverted_name": "Chatino, Zenzontepec", - "name": "Zenzontepec Chatino", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "czo", - "inverted_name": "Chinese, Min Zhong", - "name": "Min Zhong Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "czt", - "inverted_name": "Chin, Zotung", - "name": "Zotung Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "daa", - "name": "Dangaléat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dac", - "name": "Dambi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dad", - "name": "Marik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dae", - "name": "Duupa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dag", - "name": "Dagbani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dah", - "name": "Gwahatike", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dai", - "name": "Day", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "daj", - "inverted_name": "Daju, Dar Fur", - "name": "Dar Fur Daju", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dak", - "name": "Dakota", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dal", - "name": "Dahalo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dam", - "name": "Damakawa", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "da", - "alpha_3": "dan", - "name": "Danish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dao", - "inverted_name": "Chin, Daai", - "name": "Daai Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "daq", - "inverted_name": "Maria, Dandami", - "name": "Dandami Maria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dar", - "name": "Dargwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "das", - "name": "Daho-Doo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dau", - "inverted_name": "Daju, Dar Sila", - "name": "Dar Sila Daju", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dav", - "name": "Taita", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "daw", - "name": "Davawenyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dax", - "name": "Dayi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "daz", - "name": "Dao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dba", - "name": "Bangime", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbb", - "name": "Deno", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbd", - "name": "Dadiya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbe", - "name": "Dabe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbf", - "name": "Edopi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbg", - "inverted_name": "Dogon, Dogul Dom", - "name": "Dogul Dom Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbi", - "name": "Doka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbj", - "name": "Ida'an", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbl", - "name": "Dyirbal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbm", - "name": "Duguri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbn", - "name": "Duriankere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbo", - "name": "Dulbu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbp", - "name": "Duwai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbq", - "name": "Daba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbr", - "name": "Dabarre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbt", - "inverted_name": "Dogon, Ben Tey", - "name": "Ben Tey Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbu", - "inverted_name": "Dogon, Bondum Dom", - "name": "Bondum Dom Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbv", - "name": "Dungu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dbw", - "inverted_name": "Dogon, Bankan Tey", - "name": "Bankan Tey Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dby", - "name": "Dibiyaso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dcc", - "name": "Deccan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dcr", - "name": "Negerhollands", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dda", - "name": "Dadi Dadi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ddd", - "name": "Dongotono", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dde", - "name": "Doondo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ddg", - "name": "Fataluku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ddi", - "inverted_name": "Goodenough, West", - "name": "West Goodenough", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ddj", - "name": "Jaru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ddn", - "name": "Dendi (Benin)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ddo", - "name": "Dido", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ddr", - "name": "Dhudhuroa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dds", - "inverted_name": "Dogon, Donno So", - "name": "Donno So Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ddw", - "name": "Dawera-Daweloor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dec", - "name": "Dagik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ded", - "name": "Dedua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dee", - "name": "Dewoin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "def", - "name": "Dezfuli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "deg", - "name": "Degema", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "deh", - "name": "Dehwari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dei", - "name": "Demisa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dek", - "name": "Dek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "del", - "name": "Delaware", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "dem", - "name": "Dem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "den", - "name": "Slave (Athapascan)", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "dep", - "inverted_name": "Delaware, Pidgin", - "name": "Pidgin Delaware", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "deq", - "name": "Dendi (Central African Republic)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "der", - "name": "Deori", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "des", - "name": "Desano", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "de", - "alpha_3": "deu", - "bibliographic": "ger", - "name": "German", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dev", - "name": "Domung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dez", - "name": "Dengese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dga", - "inverted_name": "Dagaare, Southern", - "name": "Southern Dagaare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgb", - "inverted_name": "Dogon, Bunoge", - "name": "Bunoge Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgc", - "inverted_name": "Agta, Casiguran Dumagat", - "name": "Casiguran Dumagat Agta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgd", - "name": "Dagaari Dioula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dge", - "name": "Degenan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgg", - "name": "Doga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgh", - "name": "Dghwede", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgi", - "inverted_name": "Dagara, Northern", - "name": "Northern Dagara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgk", - "name": "Dagba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgl", - "name": "Andaandi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgn", - "name": "Dagoman", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dgo", - "name": "Dogri (individual language)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgr", - "name": "Dogrib", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgs", - "name": "Dogoso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgt", - "name": "Ndra'ngith", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dgw", - "name": "Daungwurrung", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dgx", - "name": "Doghoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dgz", - "name": "Daga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhd", - "name": "Dhundari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhg", - "name": "Dhangu-Djangu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhi", - "name": "Dhimal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhl", - "name": "Dhalandji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhm", - "name": "Zemba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhn", - "name": "Dhanki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dho", - "name": "Dhodia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhr", - "name": "Dhargari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhs", - "name": "Dhaiso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhu", - "name": "Dhurga", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dhv", - "name": "Dehu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhw", - "name": "Dhanwar (Nepal)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dhx", - "name": "Dhungaloo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dia", - "name": "Dia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dib", - "inverted_name": "Dinka, South Central", - "name": "South Central Dinka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dic", - "inverted_name": "Dida, Lakota", - "name": "Lakota Dida", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "did", - "name": "Didinga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dif", - "name": "Dieri", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dig", - "name": "Digo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dih", - "name": "Kumiai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dii", - "name": "Dimbong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dij", - "name": "Dai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dik", - "inverted_name": "Dinka, Southwestern", - "name": "Southwestern Dinka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dil", - "name": "Dilling", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dim", - "name": "Dime", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "din", - "name": "Dinka", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "dio", - "name": "Dibo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dip", - "inverted_name": "Dinka, Northeastern", - "name": "Northeastern Dinka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "diq", - "name": "Dimli (individual language)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dir", - "name": "Dirim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dis", - "name": "Dimasa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "diu", - "name": "Diriku", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "dv", - "alpha_3": "div", - "name": "Dhivehi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "diw", - "inverted_name": "Dinka, Northwestern", - "name": "Northwestern Dinka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dix", - "name": "Dixon Reef", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "diy", - "name": "Diuwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "diz", - "name": "Ding", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dja", - "name": "Djadjawurrung", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "djb", - "name": "Djinba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "djc", - "inverted_name": "Daju, Dar Daju", - "name": "Dar Daju Daju", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "djd", - "name": "Djamindjung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dje", - "name": "Zarma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "djf", - "name": "Djangun", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dji", - "name": "Djinang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "djj", - "name": "Djeebbana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "djk", - "name": "Eastern Maroon Creole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "djm", - "inverted_name": "Dogon, Jamsay", - "name": "Jamsay Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "djn", - "name": "Jawoyn", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "djo", - "name": "Jangkang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "djr", - "name": "Djambarrpuyngu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dju", - "name": "Kapriman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "djw", - "name": "Djawi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dka", - "name": "Dakpakha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dkg", - "name": "Kadung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dkk", - "name": "Dakka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dkr", - "name": "Kuijau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dks", - "inverted_name": "Dinka, Southeastern", - "name": "Southeastern Dinka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dkx", - "name": "Mazagway", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dlg", - "name": "Dolgan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dlk", - "name": "Dahalik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dlm", - "name": "Dalmatian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dln", - "name": "Darlong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dma", - "name": "Duma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmb", - "inverted_name": "Dogon, Mombo", - "name": "Mombo Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmc", - "name": "Gavak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmd", - "name": "Madhi Madhi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dme", - "name": "Dugwor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmf", - "name": "Medefaidrin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dmg", - "inverted_name": "Kinabatangan, Upper", - "name": "Upper Kinabatangan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmk", - "name": "Domaaki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dml", - "name": "Dameli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmm", - "name": "Dama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmo", - "name": "Kemedzung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmr", - "inverted_name": "Damar, East", - "name": "East Damar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dms", - "name": "Dampelas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmu", - "name": "Dubu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmv", - "name": "Dumpas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmw", - "name": "Mudburra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmx", - "name": "Dema", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dmy", - "name": "Demta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dna", - "inverted_name": "Dani, Upper Grand Valley", - "name": "Upper Grand Valley Dani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dnd", - "name": "Daonda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dne", - "name": "Ndendeule", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dng", - "name": "Dungan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dni", - "inverted_name": "Dani, Lower Grand Valley", - "name": "Lower Grand Valley Dani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dnj", - "name": "Dan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dnk", - "name": "Dengka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dnn", - "name": "Dzùùngoo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dno", - "name": "Ndrulo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dnr", - "name": "Danaru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dnt", - "inverted_name": "Dani, Mid Grand Valley", - "name": "Mid Grand Valley Dani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dnu", - "name": "Danau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dnv", - "name": "Danu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dnw", - "inverted_name": "Dani, Western", - "name": "Western Dani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dny", - "name": "Dení", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "doa", - "name": "Dom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dob", - "name": "Dobu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "doc", - "inverted_name": "Dong, Northern", - "name": "Northern Dong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "doe", - "name": "Doe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dof", - "name": "Domu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "doh", - "name": "Dong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "doi", - "name": "Dogri (macrolanguage)", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "dok", - "name": "Dondo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dol", - "name": "Doso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "don", - "name": "Toura (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "doo", - "name": "Dongo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dop", - "name": "Lukpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "doq", - "name": "Dominican Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dor", - "name": "Dori'o", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dos", - "name": "Dogosé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dot", - "name": "Dass", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dov", - "name": "Dombe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dow", - "name": "Doyayo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dox", - "name": "Bussa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "doy", - "name": "Dompo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "doz", - "name": "Dorze", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dpp", - "name": "Papar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "drb", - "name": "Dair", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "drc", - "name": "Minderico", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "drd", - "name": "Darmiya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dre", - "name": "Dolpo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "drg", - "name": "Rungus", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dri", - "name": "C'Lela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "drl", - "name": "Paakantyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "drn", - "inverted_name": "Damar, West", - "name": "West Damar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dro", - "inverted_name": "Melanau, Daro-Matu", - "name": "Daro-Matu Melanau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "drq", - "name": "Dura", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "drs", - "name": "Gedeo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "drt", - "name": "Drents", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dru", - "name": "Rukai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dry", - "name": "Darai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dsb", - "inverted_name": "Sorbian, Lower", - "name": "Lower Sorbian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dse", - "name": "Dutch Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dsh", - "name": "Daasanach", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dsi", - "name": "Disa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dsl", - "name": "Danish Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dsn", - "name": "Dusner", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dso", - "name": "Desiya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dsq", - "name": "Tadaksahak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dsz", - "name": "Mardin Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dta", - "name": "Daur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dtb", - "inverted_name": "Kadazan, Labuk-Kinabatangan", - "name": "Labuk-Kinabatangan Kadazan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dtd", - "name": "Ditidaht", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dth", - "name": "Adithinngithigh", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dti", - "inverted_name": "Dogon, Ana Tinga", - "name": "Ana Tinga Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dtk", - "inverted_name": "Dogon, Tene Kan", - "name": "Tene Kan Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dtm", - "inverted_name": "Dogon, Tomo Kan", - "name": "Tomo Kan Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dtn", - "name": "Daatsʼíin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dto", - "inverted_name": "Dogon, Tommo So", - "name": "Tommo So Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dtp", - "inverted_name": "Dusun, Kadazan", - "name": "Kadazan Dusun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dtr", - "name": "Lotud", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dts", - "inverted_name": "Dogon, Toro So", - "name": "Toro So Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dtt", - "inverted_name": "Dogon, Toro Tegu", - "name": "Toro Tegu Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dtu", - "inverted_name": "Dogon, Tebul Ure", - "name": "Tebul Ure Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dty", - "name": "Dotyali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dua", - "name": "Duala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dub", - "name": "Dubli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "duc", - "name": "Duna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "due", - "inverted_name": "Agta, Umiray Dumaget", - "name": "Umiray Dumaget Agta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "duf", - "name": "Dumbea", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dug", - "name": "Duruma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "duh", - "name": "Dungra Bhil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dui", - "name": "Dumun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "duk", - "name": "Uyajitaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dul", - "inverted_name": "Agta, Alabat Island", - "name": "Alabat Island Agta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dum", - "inverted_name": "Dutch, Middle (ca. 1050-1350)", - "name": "Middle Dutch (ca. 1050-1350)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "dun", - "name": "Dusun Deyah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "duo", - "inverted_name": "Agta, Dupaninan", - "name": "Dupaninan Agta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dup", - "name": "Duano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "duq", - "name": "Dusun Malang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dur", - "name": "Dii", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dus", - "name": "Dumi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "duu", - "name": "Drung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "duv", - "name": "Duvle", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "duw", - "name": "Dusun Witu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dux", - "name": "Duungooma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "duy", - "inverted_name": "Agta, Dicamay", - "name": "Dicamay Agta", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "duz", - "name": "Duli-Gey", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dva", - "name": "Duau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dwa", - "name": "Diri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dwk", - "inverted_name": "Kui, Dawik", - "name": "Dawik Kui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dwr", - "name": "Dawro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dws", - "name": "Dutton World Speedwords", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "dwu", - "name": "Dhuwal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dww", - "name": "Dawawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dwy", - "name": "Dhuwaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dwz", - "inverted_name": "Rai, Dewas", - "name": "Dewas Rai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dya", - "name": "Dyan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dyb", - "name": "Dyaberdyaber", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dyd", - "name": "Dyugun", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dyg", - "inverted_name": "Agta, Villa Viciosa", - "name": "Villa Viciosa Agta", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dyi", - "inverted_name": "Senoufo, Djimini", - "name": "Djimini Senoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dym", - "inverted_name": "Dogon, Yanda Dom", - "name": "Yanda Dom Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dyn", - "name": "Dyangadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dyo", - "name": "Jola-Fonyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dyu", - "name": "Dyula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dyy", - "name": "Djabugay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dza", - "name": "Tunzu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dze", - "name": "Djiwarli", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "dzg", - "name": "Dazaga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dzl", - "name": "Dzalakha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "dzn", - "name": "Dzando", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "dz", - "alpha_3": "dzo", - "name": "Dzongkha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eaa", - "name": "Karenggapa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ebc", - "name": "Beginci", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ebg", - "name": "Ebughu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ebk", - "inverted_name": "Bontok, Eastern", - "name": "Eastern Bontok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ebo", - "name": "Teke-Ebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ebr", - "name": "Ebrié", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ebu", - "name": "Embu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ecr", - "name": "Eteocretan", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "ecs", - "name": "Ecuadorian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ecy", - "name": "Eteocypriot", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "eee", - "name": "E", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "efa", - "name": "Efai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "efe", - "name": "Efe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "efi", - "name": "Efik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ega", - "name": "Ega", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "egl", - "name": "Emilian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "egm", - "name": "Benamanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ego", - "name": "Eggon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "egy", - "name": "Egyptian (Ancient)", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "ehs", - "name": "Miyakubo Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ehu", - "name": "Ehueun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eip", - "name": "Eipomek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eit", - "name": "Eitiep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eiv", - "name": "Askopan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eja", - "name": "Ejamat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eka", - "name": "Ekajuk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eke", - "name": "Ekit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ekg", - "name": "Ekari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eki", - "name": "Eki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ekk", - "inverted_name": "Estonian, Standard", - "name": "Standard Estonian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ekl", - "name": "Kol (Bangladesh)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ekm", - "name": "Elip", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eko", - "name": "Koti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ekp", - "name": "Ekpeye", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ekr", - "name": "Yace", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eky", - "inverted_name": "Kayah, Eastern", - "name": "Eastern Kayah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ele", - "name": "Elepi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "elh", - "name": "El Hugeirat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eli", - "name": "Nding", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "elk", - "name": "Elkei", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "el", - "alpha_3": "ell", - "bibliographic": "gre", - "inverted_name": "Greek, Modern (1453-)", - "name": "Modern Greek (1453-)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "elm", - "name": "Eleme", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "elo", - "name": "El Molo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "elu", - "name": "Elu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "elx", - "name": "Elamite", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "ema", - "name": "Emai-Iuleha-Ora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emb", - "name": "Embaloh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eme", - "name": "Emerillon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emg", - "inverted_name": "Meohang, Eastern", - "name": "Eastern Meohang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emi", - "name": "Mussau-Emira", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emk", - "inverted_name": "Maninkakan, Eastern", - "name": "Eastern Maninkakan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emm", - "name": "Mamulique", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "emn", - "name": "Eman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emp", - "inverted_name": "Emberá, Northern", - "name": "Northern Emberá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emq", - "inverted_name": "Minyag, Eastern", - "name": "Eastern Minyag", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ems", - "inverted_name": "Yupik, Pacific Gulf", - "name": "Pacific Gulf Yupik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emu", - "inverted_name": "Muria, Eastern", - "name": "Eastern Muria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emw", - "name": "Emplawas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emx", - "name": "Erromintxela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "emy", - "inverted_name": "Mayan, Epigraphic", - "name": "Epigraphic Mayan", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "emz", - "name": "Mbessa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ena", - "name": "Apali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enb", - "name": "Markweeta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enc", - "name": "En", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "end", - "name": "Ende", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enf", - "inverted_name": "Enets, Forest", - "name": "Forest Enets", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "en", - "alpha_3": "eng", - "name": "English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enh", - "inverted_name": "Enets, Tundra", - "name": "Tundra Enets", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enl", - "name": "Enlhet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enm", - "inverted_name": "English, Middle (1100-1500)", - "name": "Middle English (1100-1500)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "enn", - "name": "Engenni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eno", - "name": "Enggano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enq", - "name": "Enga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enr", - "name": "Emumu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enu", - "name": "Enu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "env", - "name": "Enwan (Edo State)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enw", - "name": "Enwan (Akwa Ibom State)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "enx", - "name": "Enxet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eot", - "name": "Beti (Côte d'Ivoire)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "epi", - "name": "Epie", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "eo", - "alpha_3": "epo", - "name": "Esperanto", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "era", - "name": "Eravallan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "erg", - "name": "Sie", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "erh", - "name": "Eruwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eri", - "name": "Ogea", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "erk", - "inverted_name": "Efate, South", - "name": "South Efate", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ero", - "name": "Horpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "err", - "name": "Erre", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ers", - "name": "Ersu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ert", - "name": "Eritai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "erw", - "name": "Erokwanas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ese", - "name": "Ese Ejja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "esg", - "inverted_name": "Gondi, Aheri", - "name": "Aheri Gondi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "esh", - "name": "Eshtehardi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "esi", - "inverted_name": "Inupiatun, North Alaskan", - "name": "North Alaskan Inupiatun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "esk", - "inverted_name": "Inupiatun, Northwest Alaska", - "name": "Northwest Alaska Inupiatun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "esl", - "name": "Egypt Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "esm", - "name": "Esuma", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "esn", - "name": "Salvadoran Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eso", - "name": "Estonian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "esq", - "name": "Esselen", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ess", - "inverted_name": "Yupik, Central Siberian", - "name": "Central Siberian Yupik", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "et", - "alpha_3": "est", - "name": "Estonian", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "esu", - "inverted_name": "Yupik, Central", - "name": "Central Yupik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "esy", - "name": "Eskayan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "etb", - "name": "Etebi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "etc", - "name": "Etchemin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "eth", - "name": "Ethiopian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "etn", - "name": "Eton (Vanuatu)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eto", - "name": "Eton (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "etr", - "name": "Edolo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ets", - "name": "Yekhee", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ett", - "name": "Etruscan", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "etu", - "name": "Ejagham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "etx", - "name": "Eten", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "etz", - "name": "Semimi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "eu", - "alpha_3": "eus", - "bibliographic": "baq", - "name": "Basque", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eve", - "name": "Even", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "evh", - "name": "Uvbie", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "evn", - "name": "Evenki", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ee", - "alpha_3": "ewe", - "name": "Ewe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ewo", - "name": "Ewondo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ext", - "name": "Extremaduran", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eya", - "name": "Eyak", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "eyo", - "name": "Keiyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eza", - "name": "Ezaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "eze", - "name": "Uzekwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "faa", - "name": "Fasu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fab", - "name": "Fa d'Ambu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fad", - "name": "Wagi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "faf", - "name": "Fagani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fag", - "name": "Finongan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fah", - "inverted_name": "Fali, Baissa", - "name": "Baissa Fali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fai", - "name": "Faiwol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "faj", - "name": "Faita", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fak", - "name": "Fang (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fal", - "inverted_name": "Fali, South", - "name": "South Fali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fam", - "name": "Fam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fan", - "name": "Fang (Equatorial Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "fo", - "alpha_3": "fao", - "name": "Faroese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fap", - "name": "Paloor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "far", - "name": "Fataleka", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "fa", - "alpha_3": "fas", - "bibliographic": "per", - "name": "Persian", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "fat", - "name": "Fanti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fau", - "name": "Fayu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fax", - "name": "Fala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fay", - "inverted_name": "Fars, Southwestern", - "name": "Southwestern Fars", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "faz", - "inverted_name": "Fars, Northwestern", - "name": "Northwestern Fars", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fbl", - "inverted_name": "Bikol, West Albay", - "name": "West Albay Bikol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fcs", - "name": "Quebec Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fer", - "name": "Feroge", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ffi", - "name": "Foia Foia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ffm", - "inverted_name": "Fulfulde, Maasina", - "name": "Maasina Fulfulde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fgr", - "name": "Fongoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fia", - "name": "Nobiin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fie", - "name": "Fyer", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fif", - "name": "Faifi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "fj", - "alpha_3": "fij", - "name": "Fijian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fil", - "name": "Filipino", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "fi", - "alpha_3": "fin", - "name": "Finnish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fip", - "name": "Fipa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fir", - "name": "Firan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fit", - "inverted_name": "Finnish, Tornedalen", - "name": "Tornedalen Finnish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fiw", - "name": "Fiwaga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fkk", - "name": "Kirya-Konzəl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fkv", - "inverted_name": "Finnish, Kven", - "name": "Kven Finnish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fla", - "name": "Kalispel-Pend d'Oreille", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "flh", - "name": "Foau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fli", - "name": "Fali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fll", - "inverted_name": "Fali, North", - "name": "North Fali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fln", - "name": "Flinders Island", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "flr", - "name": "Fuliiru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fly", - "name": "Flaaitaal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fmp", - "name": "Fe'fe'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fmu", - "inverted_name": "Muria, Far Western", - "name": "Far Western Muria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fnb", - "name": "Fanbak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fng", - "name": "Fanagalo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fni", - "name": "Fania", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fod", - "name": "Foodo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "foi", - "name": "Foi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fom", - "name": "Foma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fon", - "name": "Fon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "for", - "name": "Fore", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fos", - "name": "Siraya", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "fpe", - "inverted_name": "Creole English, Fernando Po", - "name": "Fernando Po Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fqs", - "name": "Fas", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "fr", - "alpha_3": "fra", - "bibliographic": "fre", - "name": "French", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "frc", - "inverted_name": "French, Cajun", - "name": "Cajun French", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "frd", - "name": "Fordata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "frk", - "name": "Frankish", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "frm", - "inverted_name": "French, Middle (ca. 1400-1600)", - "name": "Middle French (ca. 1400-1600)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "fro", - "inverted_name": "French, Old (842-ca. 1400)", - "name": "Old French (842-ca. 1400)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "frp", - "name": "Arpitan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "frq", - "name": "Forak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "frr", - "inverted_name": "Frisian, Northern", - "name": "Northern Frisian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "frs", - "inverted_name": "Frisian, Eastern", - "name": "Eastern Frisian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "frt", - "name": "Fortsenal", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "fy", - "alpha_3": "fry", - "inverted_name": "Frisian, Western", - "name": "Western Frisian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fse", - "name": "Finnish Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fsl", - "name": "French Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fss", - "name": "Finland-Swedish Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fub", - "inverted_name": "Fulfulde, Adamawa", - "name": "Adamawa Fulfulde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fuc", - "name": "Pulaar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fud", - "inverted_name": "Futuna, East", - "name": "East Futuna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fue", - "inverted_name": "Fulfulde, Borgu", - "name": "Borgu Fulfulde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fuf", - "name": "Pular", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fuh", - "inverted_name": "Fulfulde, Western Niger", - "name": "Western Niger Fulfulde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fui", - "inverted_name": "Fulfulde, Bagirmi", - "name": "Bagirmi Fulfulde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fuj", - "name": "Ko", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ff", - "alpha_3": "ful", - "name": "Fulah", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "fum", - "name": "Fum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fun", - "name": "Fulniô", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fuq", - "inverted_name": "Fulfulde, Central-Eastern Niger", - "name": "Central-Eastern Niger Fulfulde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fur", - "name": "Friulian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fut", - "name": "Futuna-Aniwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fuu", - "name": "Furu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fuv", - "inverted_name": "Fulfulde, Nigerian", - "name": "Nigerian Fulfulde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fuy", - "name": "Fuyug", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fvr", - "name": "Fur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fwa", - "name": "Fwâi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "fwe", - "name": "Fwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gaa", - "name": "Ga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gab", - "name": "Gabri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gac", - "inverted_name": "Great Andamanese, Mixed", - "name": "Mixed Great Andamanese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gad", - "name": "Gaddang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gae", - "name": "Guarequena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gaf", - "name": "Gende", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gag", - "name": "Gagauz", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gah", - "name": "Alekano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gai", - "name": "Borei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gaj", - "name": "Gadsup", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gak", - "name": "Gamkonora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gal", - "name": "Galolen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gam", - "name": "Kandawo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gan", - "inverted_name": "Chinese, Gan", - "name": "Gan Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gao", - "name": "Gants", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gap", - "name": "Gal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gaq", - "name": "Gata'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gar", - "name": "Galeya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gas", - "inverted_name": "Garasia, Adiwasi", - "name": "Adiwasi Garasia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gat", - "name": "Kenati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gau", - "inverted_name": "Gadaba, Mudhili", - "name": "Mudhili Gadaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gaw", - "name": "Nobonob", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gax", - "inverted_name": "Oromo, Borana-Arsi-Guji", - "name": "Borana-Arsi-Guji Oromo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gay", - "name": "Gayo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gaz", - "inverted_name": "Oromo, West Central", - "name": "West Central Oromo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gba", - "name": "Gbaya (Central African Republic)", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "gbb", - "name": "Kaytetye", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbd", - "name": "Karajarri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbe", - "name": "Niksek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbf", - "name": "Gaikundi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbg", - "name": "Gbanziri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbh", - "inverted_name": "Gbe, Defi", - "name": "Defi Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbi", - "name": "Galela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbj", - "inverted_name": "Gadaba, Bodo", - "name": "Bodo Gadaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbk", - "name": "Gaddi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbl", - "name": "Gamit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbm", - "name": "Garhwali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbn", - "name": "Mo'da", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbo", - "inverted_name": "Grebo, Northern", - "name": "Northern Grebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbp", - "name": "Gbaya-Bossangoa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbq", - "name": "Gbaya-Bozoum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbr", - "name": "Gbagyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbs", - "inverted_name": "Gbe, Gbesi", - "name": "Gbesi Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbu", - "name": "Gagadu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbv", - "name": "Gbanu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbw", - "name": "Gabi-Gabi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbx", - "inverted_name": "Gbe, Eastern Xwla", - "name": "Eastern Xwla Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gby", - "name": "Gbari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gbz", - "inverted_name": "Dari, Zoroastrian", - "name": "Zoroastrian Dari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gcc", - "name": "Mali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gcd", - "name": "Ganggalida", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gce", - "name": "Galice", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gcf", - "inverted_name": "Creole French, Guadeloupean", - "name": "Guadeloupean Creole French", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gcl", - "inverted_name": "Creole English, Grenadian", - "name": "Grenadian Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gcn", - "name": "Gaina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gcr", - "inverted_name": "Creole French, Guianese", - "name": "Guianese Creole French", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gct", - "inverted_name": "German, Colonia Tovar", - "name": "Colonia Tovar German", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gda", - "inverted_name": "Lohar, Gade", - "name": "Gade Lohar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdb", - "inverted_name": "Gadaba, Pottangi Ollar", - "name": "Pottangi Ollar Gadaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdc", - "name": "Gugu Badhun", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gdd", - "name": "Gedaged", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gde", - "name": "Gude", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdf", - "name": "Guduf-Gava", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdg", - "name": "Ga'dang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdh", - "name": "Gadjerawang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdi", - "name": "Gundi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdj", - "name": "Gurdjar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdk", - "name": "Gadang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdl", - "name": "Dirasha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdm", - "name": "Laal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdn", - "name": "Umanakaina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdo", - "name": "Ghodoberi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdq", - "name": "Mehri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdr", - "name": "Wipi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gds", - "name": "Ghandruk Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdt", - "name": "Kungardutyi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gdu", - "name": "Gudu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gdx", - "name": "Godwari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gea", - "name": "Geruma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "geb", - "name": "Kire", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gec", - "inverted_name": "Grebo, Gboloo", - "name": "Gboloo Grebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ged", - "name": "Gade", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gef", - "name": "Gerai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "geg", - "name": "Gengle", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "geh", - "inverted_name": "German, Hutterite", - "name": "Hutterite German", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gei", - "name": "Gebe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gej", - "name": "Gen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gek", - "name": "Ywom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gel", - "name": "ut-Ma'in", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "geq", - "name": "Geme", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ges", - "name": "Geser-Gorom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gev", - "name": "Eviya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gew", - "name": "Gera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gex", - "name": "Garre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gey", - "name": "Enya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gez", - "name": "Geez", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "gfk", - "name": "Patpatar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gft", - "name": "Gafat", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gga", - "name": "Gao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ggb", - "name": "Gbii", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ggd", - "name": "Gugadj", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gge", - "name": "Gurr-goni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ggg", - "name": "Gurgula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ggk", - "name": "Kungarakany", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ggl", - "name": "Ganglau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ggt", - "name": "Gitua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ggu", - "name": "Gagu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ggw", - "name": "Gogodala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gha", - "name": "Ghadamès", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ghc", - "inverted_name": "Gaelic, Hiberno-Scottish", - "name": "Hiberno-Scottish Gaelic", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ghe", - "inverted_name": "Ghale, Southern", - "name": "Southern Ghale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ghh", - "inverted_name": "Ghale, Northern", - "name": "Northern Ghale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ghk", - "inverted_name": "Karen, Geko", - "name": "Geko Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ghl", - "name": "Ghulfan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ghn", - "name": "Ghanongga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gho", - "name": "Ghomara", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ghr", - "name": "Ghera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ghs", - "name": "Guhu-Samane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ght", - "name": "Kuke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gia", - "name": "Kija", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gib", - "name": "Gibanawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gic", - "name": "Gail", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gid", - "name": "Gidar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gie", - "name": "Gaɓogbo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gig", - "name": "Goaria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gih", - "name": "Githabul", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gii", - "name": "Girirra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gil", - "name": "Gilbertese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gim", - "name": "Gimi (Eastern Highlands)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gin", - "name": "Hinukh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gip", - "name": "Gimi (West New Britain)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "giq", - "inverted_name": "Gelao, Green", - "name": "Green Gelao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gir", - "inverted_name": "Gelao, Red", - "name": "Red Gelao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gis", - "inverted_name": "Giziga, North", - "name": "North Giziga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "git", - "name": "Gitxsan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "giu", - "name": "Mulao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "giw", - "inverted_name": "Gelao, White", - "name": "White Gelao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gix", - "name": "Gilima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "giy", - "name": "Giyug", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "giz", - "inverted_name": "Giziga, South", - "name": "South Giziga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gjk", - "inverted_name": "Koli, Kachi", - "name": "Kachi Koli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gjm", - "name": "Gunditjmara", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gjn", - "name": "Gonja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gjr", - "name": "Gurindji Kriol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gju", - "name": "Gujari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gka", - "name": "Guya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gkd", - "name": "Magɨ (Madang Province)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gke", - "name": "Ndai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gkn", - "name": "Gokana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gko", - "name": "Kok-Nar", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gkp", - "inverted_name": "Kpelle, Guinea", - "name": "Guinea Kpelle", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gku", - "name": "ǂUngkue", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "gd", - "alpha_3": "gla", - "inverted_name": "Gaelic, Scottish", - "name": "Scottish Gaelic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "glb", - "name": "Belning", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "glc", - "name": "Bon Gula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gld", - "name": "Nanai", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ga", - "alpha_3": "gle", - "name": "Irish", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "gl", - "alpha_3": "glg", - "name": "Galician", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "glh", - "inverted_name": "Pashai, Northwest", - "name": "Northwest Pashai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "glj", - "name": "Gula Iro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "glk", - "name": "Gilaki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gll", - "name": "Garlali", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "glo", - "name": "Galambu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "glr", - "name": "Glaro-Twabo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "glu", - "name": "Gula (Chad)", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "gv", - "alpha_3": "glv", - "name": "Manx", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "glw", - "name": "Glavda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gly", - "name": "Gule", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gma", - "name": "Gambera", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gmb", - "name": "Gula'alaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gmd", - "name": "Mághdì", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gmg", - "name": "Magɨyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gmh", - "inverted_name": "German, Middle High (ca. 1050-1500)", - "name": "Middle High German (ca. 1050-1500)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "gml", - "inverted_name": "German, Middle Low", - "name": "Middle Low German", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "gmm", - "name": "Gbaya-Mbodomo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gmn", - "name": "Gimnime", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gmr", - "name": "Mirning", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gmu", - "name": "Gumalu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gmv", - "name": "Gamo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gmx", - "name": "Magoma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gmy", - "inverted_name": "Greek, Mycenaean", - "name": "Mycenaean Greek", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "gmz", - "name": "Mgbolizhia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gna", - "name": "Kaansa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnb", - "name": "Gangte", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnc", - "name": "Guanche", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gnd", - "name": "Zulgo-Gemzek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gne", - "name": "Ganang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gng", - "name": "Ngangam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnh", - "name": "Lere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gni", - "name": "Gooniyandi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnj", - "name": "Ngen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnk", - "name": "ǁGana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnl", - "name": "Gangulu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gnm", - "name": "Ginuman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnn", - "name": "Gumatj", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gno", - "inverted_name": "Gondi, Northern", - "name": "Northern Gondi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnq", - "name": "Gana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnr", - "name": "Gureng Gureng", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gnt", - "name": "Guntai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnu", - "name": "Gnau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnw", - "inverted_name": "Guaraní, Western Bolivian", - "name": "Western Bolivian Guaraní", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gnz", - "name": "Ganzi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "goa", - "name": "Guro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gob", - "name": "Playero", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "goc", - "name": "Gorakor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "god", - "name": "Godié", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "goe", - "name": "Gongduk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gof", - "name": "Gofa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gog", - "name": "Gogo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "goh", - "inverted_name": "German, Old High (ca. 750-1050)", - "name": "Old High German (ca. 750-1050)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "goi", - "name": "Gobasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "goj", - "name": "Gowlan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gok", - "name": "Gowli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gol", - "name": "Gola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gom", - "inverted_name": "Konkani, Goan", - "name": "Goan Konkani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gon", - "name": "Gondi", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "goo", - "name": "Gone Dau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gop", - "name": "Yeretuar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "goq", - "name": "Gorap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gor", - "name": "Gorontalo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gos", - "name": "Gronings", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "got", - "name": "Gothic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "gou", - "name": "Gavar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gov", - "name": "Goo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gow", - "name": "Gorowa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gox", - "name": "Gobu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "goy", - "name": "Goundo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "goz", - "name": "Gozarkhani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gpa", - "name": "Gupa-Abawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gpe", - "inverted_name": "Pidgin English, Ghanaian", - "name": "Ghanaian Pidgin English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gpn", - "name": "Taiap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gqa", - "name": "Ga'anda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gqi", - "name": "Guiqiong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gqn", - "name": "Guana (Brazil)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gqr", - "name": "Gor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gqu", - "name": "Qau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gra", - "inverted_name": "Garasia, Rajput", - "name": "Rajput Garasia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grb", - "name": "Grebo", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "grc", - "inverted_name": "Greek, Ancient (to 1453)", - "name": "Ancient Greek (to 1453)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "grd", - "name": "Guruntum-Mbaaru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grg", - "name": "Madi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grh", - "name": "Gbiri-Niragu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gri", - "name": "Ghari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grj", - "inverted_name": "Grebo, Southern", - "name": "Southern Grebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grm", - "name": "Kota Marudu Talantang", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "gn", - "alpha_3": "grn", - "name": "Guarani", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "gro", - "name": "Groma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grq", - "name": "Gorovu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grr", - "name": "Taznatit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grs", - "name": "Gresi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grt", - "name": "Garo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gru", - "name": "Kistane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grv", - "inverted_name": "Grebo, Central", - "name": "Central Grebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grw", - "name": "Gweda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grx", - "name": "Guriaso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gry", - "inverted_name": "Grebo, Barclayville", - "name": "Barclayville Grebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "grz", - "name": "Guramalum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gse", - "name": "Ghanaian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gsg", - "name": "German Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gsl", - "name": "Gusilay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gsm", - "name": "Guatemalan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gsn", - "name": "Nema", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gso", - "inverted_name": "Gbaya, Southwest", - "name": "Southwest Gbaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gsp", - "name": "Wasembo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gss", - "name": "Greek Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gsw", - "inverted_name": "German, Swiss", - "name": "Swiss German", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gta", - "name": "Guató", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gtu", - "name": "Aghu-Tharnggala", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gua", - "name": "Shiki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gub", - "name": "Guajajára", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "guc", - "name": "Wayuu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gud", - "inverted_name": "Dida, Yocoboué", - "name": "Yocoboué Dida", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gue", - "name": "Gurindji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "guf", - "name": "Gupapuyngu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gug", - "inverted_name": "Guaraní, Paraguayan", - "name": "Paraguayan Guaraní", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "guh", - "name": "Guahibo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gui", - "inverted_name": "Guaraní, Eastern Bolivian", - "name": "Eastern Bolivian Guaraní", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "gu", - "alpha_3": "guj", - "name": "Gujarati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "guk", - "name": "Gumuz", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gul", - "inverted_name": "Creole English, Sea Island", - "name": "Sea Island Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gum", - "name": "Guambiano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gun", - "inverted_name": "Guaraní, Mbyá", - "name": "Mbyá Guaraní", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "guo", - "name": "Guayabero", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gup", - "name": "Gunwinggu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "guq", - "name": "Aché", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gur", - "name": "Farefare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gus", - "name": "Guinean Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gut", - "name": "Maléku Jaíka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "guu", - "name": "Yanomamö", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "guw", - "name": "Gun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gux", - "name": "Gourmanchéma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "guz", - "name": "Gusii", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gva", - "name": "Guana (Paraguay)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvc", - "name": "Guanano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gve", - "name": "Duwet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvf", - "name": "Golin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvj", - "name": "Guajá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvl", - "name": "Gulay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvm", - "name": "Gurmana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvn", - "name": "Kuku-Yalanji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvo", - "name": "Gavião Do Jiparaná", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvp", - "inverted_name": "Gavião, Pará", - "name": "Pará Gavião", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvr", - "name": "Gurung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvs", - "name": "Gumawana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gvy", - "name": "Guyani", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gwa", - "name": "Mbato", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwb", - "name": "Gwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwc", - "name": "Gawri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwd", - "name": "Gawwada", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwe", - "name": "Gweno", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwf", - "name": "Gowro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwg", - "name": "Moo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwi", - "name": "Gwichʼin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwj", - "name": "ǀGwi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwm", - "name": "Awngthim", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gwn", - "name": "Gwandara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwr", - "name": "Gwere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwt", - "name": "Gawar-Bati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwu", - "name": "Guwamu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gww", - "name": "Kwini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gwx", - "name": "Gua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gxx", - "name": "Wè Southern", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gya", - "inverted_name": "Gbaya, Northwest", - "name": "Northwest Gbaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gyb", - "name": "Garus", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gyd", - "name": "Kayardild", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gye", - "name": "Gyem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gyf", - "name": "Gungabula", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gyg", - "name": "Gbayi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gyi", - "name": "Gyele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gyl", - "name": "Gayil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gym", - "name": "Ngäbere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gyn", - "inverted_name": "Creole English, Guyanese", - "name": "Guyanese Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gyo", - "name": "Gyalsumdo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gyr", - "name": "Guarayu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gyy", - "name": "Gunya", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "gyz", - "name": "Geji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gza", - "name": "Ganza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gzi", - "name": "Gazi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "gzn", - "name": "Gane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "haa", - "name": "Han", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hab", - "name": "Hanoi Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hac", - "name": "Gurani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "had", - "name": "Hatam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hae", - "inverted_name": "Oromo, Eastern", - "name": "Eastern Oromo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "haf", - "name": "Haiphong Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hag", - "name": "Hanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hah", - "name": "Hahon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hai", - "name": "Haida", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "haj", - "name": "Hajong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hak", - "inverted_name": "Chinese, Hakka", - "name": "Hakka Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hal", - "name": "Halang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ham", - "name": "Hewa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "han", - "name": "Hangaza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hao", - "name": "Hakö", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hap", - "name": "Hupla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "haq", - "name": "Ha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "har", - "name": "Harari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "has", - "name": "Haisla", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ht", - "alpha_3": "hat", - "name": "Haitian", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ha", - "alpha_3": "hau", - "name": "Hausa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hav", - "name": "Havu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "haw", - "name": "Hawaiian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hax", - "inverted_name": "Haida, Southern", - "name": "Southern Haida", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hay", - "name": "Haya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "haz", - "name": "Hazaragi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hba", - "name": "Hamba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hbb", - "name": "Huba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hbn", - "name": "Heiban", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hbo", - "inverted_name": "Hebrew, Ancient", - "name": "Ancient Hebrew", - "scope": "I", - "type": "H" - }, - { - "alpha_2": "sh", - "alpha_3": "hbs", - "name": "Serbo-Croatian", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "hbu", - "name": "Habu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hca", - "inverted_name": "Creole Hindi, Andaman", - "name": "Andaman Creole Hindi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hch", - "name": "Huichol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hdn", - "inverted_name": "Haida, Northern", - "name": "Northern Haida", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hds", - "name": "Honduras Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hdy", - "name": "Hadiyya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hea", - "inverted_name": "Miao, Northern Qiandong", - "name": "Northern Qiandong Miao", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "he", - "alpha_3": "heb", - "name": "Hebrew", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hed", - "name": "Herdé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "heg", - "name": "Helong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "heh", - "name": "Hehe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hei", - "name": "Heiltsuk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hem", - "name": "Hemba", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "hz", - "alpha_3": "her", - "name": "Herero", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hgm", - "name": "Haiǁom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hgw", - "name": "Haigwai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hhi", - "name": "Hoia Hoia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hhr", - "name": "Kerak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hhy", - "name": "Hoyahoya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hia", - "name": "Lamang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hib", - "name": "Hibito", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "hid", - "name": "Hidatsa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hif", - "inverted_name": "Hindi, Fiji", - "name": "Fiji Hindi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hig", - "name": "Kamwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hih", - "name": "Pamosu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hii", - "name": "Hinduri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hij", - "name": "Hijuk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hik", - "name": "Seit-Kaitetu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hil", - "name": "Hiligaynon", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "hi", - "alpha_3": "hin", - "name": "Hindi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hio", - "name": "Tsoa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hir", - "name": "Himarimã", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hit", - "name": "Hittite", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "hiw", - "name": "Hiw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hix", - "name": "Hixkaryána", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hji", - "name": "Haji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hka", - "name": "Kahe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hke", - "name": "Hunde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hkh", - "name": "Khah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hkk", - "name": "Hunjara-Kaina Ke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hkn", - "name": "Mel-Khaonh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hks", - "name": "Hong Kong Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hla", - "name": "Halia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hlb", - "name": "Halbi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hld", - "name": "Halang Doan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hle", - "name": "Hlersu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hlt", - "inverted_name": "Chin, Matu", - "name": "Matu Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hlu", - "inverted_name": "Luwian, Hieroglyphic", - "name": "Hieroglyphic Luwian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "hma", - "inverted_name": "Hmong, Southern Mashan", - "name": "Southern Mashan Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmb", - "inverted_name": "Songhay, Humburi Senni", - "name": "Humburi Senni Songhay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmc", - "inverted_name": "Hmong, Central Huishui", - "name": "Central Huishui Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmd", - "inverted_name": "Miao, Large Flowery", - "name": "Large Flowery Miao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hme", - "inverted_name": "Hmong, Eastern Huishui", - "name": "Eastern Huishui Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmf", - "name": "Hmong Don", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmg", - "inverted_name": "Hmong, Southwestern Guiyang", - "name": "Southwestern Guiyang Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmh", - "inverted_name": "Hmong, Southwestern Huishui", - "name": "Southwestern Huishui Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmi", - "inverted_name": "Hmong, Northern Huishui", - "name": "Northern Huishui Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmj", - "name": "Ge", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmk", - "name": "Maek", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "hml", - "inverted_name": "Hmong, Luopohe", - "name": "Luopohe Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmm", - "inverted_name": "Hmong, Central Mashan", - "name": "Central Mashan Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmn", - "name": "Hmong", - "scope": "M", - "type": "L" - }, - { - "alpha_2": "ho", - "alpha_3": "hmo", - "name": "Hiri Motu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmp", - "inverted_name": "Hmong, Northern Mashan", - "name": "Northern Mashan Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmq", - "inverted_name": "Miao, Eastern Qiandong", - "name": "Eastern Qiandong Miao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmr", - "name": "Hmar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hms", - "inverted_name": "Miao, Southern Qiandong", - "name": "Southern Qiandong Miao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmt", - "name": "Hamtai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmu", - "name": "Hamap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmv", - "name": "Hmong Dô", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmw", - "inverted_name": "Hmong, Western Mashan", - "name": "Western Mashan Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmy", - "inverted_name": "Hmong, Southern Guiyang", - "name": "Southern Guiyang Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hmz", - "name": "Hmong Shua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hna", - "name": "Mina (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hnd", - "inverted_name": "Hindko, Southern", - "name": "Southern Hindko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hne", - "name": "Chhattisgarhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hng", - "name": "Hungu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hnh", - "name": "ǁAni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hni", - "name": "Hani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hnj", - "name": "Hmong Njua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hnn", - "name": "Hanunoo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hno", - "inverted_name": "Hindko, Northern", - "name": "Northern Hindko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hns", - "inverted_name": "Hindustani, Caribbean", - "name": "Caribbean Hindustani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hnu", - "name": "Hung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hoa", - "name": "Hoava", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hob", - "name": "Mari (Madang Province)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hoc", - "name": "Ho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hod", - "name": "Holma", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "hoe", - "name": "Horom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hoh", - "name": "Hobyót", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hoi", - "name": "Holikachuk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hoj", - "name": "Hadothi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hol", - "name": "Holu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hom", - "name": "Homa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "hoo", - "name": "Holoholo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hop", - "name": "Hopi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hor", - "name": "Horo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "hos", - "name": "Ho Chi Minh City Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hot", - "name": "Hote", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hov", - "name": "Hovongan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "how", - "name": "Honi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hoy", - "name": "Holiya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hoz", - "name": "Hozo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hpo", - "name": "Hpon", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "hps", - "name": "Hawai'i Sign Language (HSL)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hra", - "name": "Hrangkhol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hrc", - "name": "Niwer Mil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hre", - "name": "Hre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hrk", - "name": "Haruku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hrm", - "inverted_name": "Miao, Horned", - "name": "Horned Miao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hro", - "name": "Haroi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hrp", - "name": "Nhirrpi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "hrt", - "name": "Hértevin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hru", - "name": "Hruso", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "hr", - "alpha_3": "hrv", - "name": "Croatian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hrw", - "name": "Warwar Feni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hrx", - "name": "Hunsrik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hrz", - "name": "Harzani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hsb", - "inverted_name": "Sorbian, Upper", - "name": "Upper Sorbian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hsh", - "name": "Hungarian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hsl", - "name": "Hausa Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hsn", - "inverted_name": "Chinese, Xiang", - "name": "Xiang Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hss", - "name": "Harsusi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hti", - "name": "Hoti", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "hto", - "inverted_name": "Huitoto, Minica", - "name": "Minica Huitoto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hts", - "name": "Hadza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "htu", - "name": "Hitu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "htx", - "inverted_name": "Hittite, Middle", - "name": "Middle Hittite", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "hub", - "name": "Huambisa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huc", - "name": "ǂHua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hud", - "name": "Huaulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hue", - "inverted_name": "Huave, San Francisco Del Mar", - "name": "San Francisco Del Mar Huave", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huf", - "name": "Humene", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hug", - "name": "Huachipaeri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huh", - "name": "Huilliche", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hui", - "name": "Huli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huj", - "inverted_name": "Hmong, Northern Guiyang", - "name": "Northern Guiyang Hmong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huk", - "name": "Hulung", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "hul", - "name": "Hula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hum", - "name": "Hungana", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "hu", - "alpha_3": "hun", - "name": "Hungarian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huo", - "name": "Hu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hup", - "name": "Hupa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huq", - "name": "Tsat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hur", - "name": "Halkomelem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hus", - "name": "Huastec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hut", - "name": "Humla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huu", - "inverted_name": "Huitoto, Murui", - "name": "Murui Huitoto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huv", - "inverted_name": "Huave, San Mateo Del Mar", - "name": "San Mateo Del Mar Huave", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huw", - "name": "Hukumina", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "hux", - "inverted_name": "Huitoto, Nüpode", - "name": "Nüpode Huitoto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huy", - "name": "Hulaulá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "huz", - "name": "Hunzib", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hvc", - "name": "Haitian Vodoun Culture Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hve", - "inverted_name": "Huave, San Dionisio Del Mar", - "name": "San Dionisio Del Mar Huave", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hvk", - "name": "Haveke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hvn", - "name": "Sabu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hvv", - "inverted_name": "Huave, Santa María Del Mar", - "name": "Santa María Del Mar Huave", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hwa", - "name": "Wané", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hwc", - "inverted_name": "Creole English, Hawai'i", - "name": "Hawai'i Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hwo", - "name": "Hwana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hya", - "name": "Hya", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "hy", - "alpha_3": "hye", - "bibliographic": "arm", - "name": "Armenian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "hyw", - "inverted_name": "Armenian, Western", - "name": "Western Armenian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iai", - "name": "Iaai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ian", - "name": "Iatmul", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iar", - "name": "Purari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iba", - "name": "Iban", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ibb", - "name": "Ibibio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ibd", - "name": "Iwaidja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ibe", - "name": "Akpes", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ibg", - "name": "Ibanag", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ibh", - "name": "Bih", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ibl", - "name": "Ibaloi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ibm", - "name": "Agoi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ibn", - "name": "Ibino", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ig", - "alpha_3": "ibo", - "name": "Igbo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ibr", - "name": "Ibuoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ibu", - "name": "Ibu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iby", - "name": "Ibani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ica", - "name": "Ede Ica", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ich", - "name": "Etkywan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "icl", - "name": "Icelandic Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "icr", - "inverted_name": "Creole English, Islander", - "name": "Islander Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ida", - "name": "Idakho-Isukha-Tiriki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "idb", - "name": "Indo-Portuguese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "idc", - "name": "Idon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "idd", - "name": "Ede Idaca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ide", - "name": "Idere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "idi", - "name": "Idi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "io", - "alpha_3": "ido", - "name": "Ido", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "idr", - "name": "Indri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ids", - "name": "Idesa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "idt", - "name": "Idaté", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "idu", - "name": "Idoma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ifa", - "inverted_name": "Ifugao, Amganad", - "name": "Amganad Ifugao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ifb", - "inverted_name": "Ifugao, Batad", - "name": "Batad Ifugao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ife", - "name": "Ifè", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iff", - "name": "Ifo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ifk", - "inverted_name": "Ifugao, Tuwali", - "name": "Tuwali Ifugao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ifm", - "name": "Teke-Fuumu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ifu", - "inverted_name": "Ifugao, Mayoyao", - "name": "Mayoyao Ifugao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ify", - "inverted_name": "Kallahan, Keley-I", - "name": "Keley-I Kallahan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "igb", - "name": "Ebira", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ige", - "name": "Igede", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "igg", - "name": "Igana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "igl", - "name": "Igala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "igm", - "name": "Kanggape", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ign", - "name": "Ignaciano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "igo", - "name": "Isebe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "igs", - "name": "Interglossa", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "igw", - "name": "Igwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ihb", - "name": "Iha Based Pidgin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ihi", - "name": "Ihievbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ihp", - "name": "Iha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ihw", - "name": "Bidhawal", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "ii", - "alpha_3": "iii", - "inverted_name": "Yi, Sichuan", - "name": "Sichuan Yi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iin", - "name": "Thiin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ijc", - "name": "Izon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ije", - "name": "Biseni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ijj", - "name": "Ede Ije", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ijn", - "name": "Kalabari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ijs", - "inverted_name": "Ijo, Southeast", - "name": "Southeast Ijo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ike", - "inverted_name": "Inuktitut, Eastern Canadian", - "name": "Eastern Canadian Inuktitut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iki", - "name": "Iko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ikk", - "name": "Ika", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ikl", - "name": "Ikulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iko", - "name": "Olulumo-Ikom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ikp", - "name": "Ikpeshi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ikr", - "name": "Ikaranggal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "iks", - "name": "Inuit Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ikt", - "name": "Inuinnaqtun", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "iu", - "alpha_3": "iku", - "name": "Inuktitut", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "ikv", - "name": "Iku-Gora-Ankwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ikw", - "name": "Ikwere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ikx", - "name": "Ik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ikz", - "name": "Ikizu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ila", - "name": "Ile Ape", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ilb", - "name": "Ila", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ie", - "alpha_3": "ile", - "name": "Interlingue", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "ilg", - "name": "Garig-Ilgar", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ili", - "name": "Ili Turki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ilk", - "name": "Ilongot", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ilm", - "name": "Iranun (Malaysia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ilo", - "name": "Iloko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ilp", - "name": "Iranun (Philippines)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ils", - "name": "International Sign", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ilu", - "name": "Ili'uun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ilv", - "name": "Ilue", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ima", - "inverted_name": "Malasar, Mala", - "name": "Mala Malasar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "imi", - "name": "Anamgura", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iml", - "name": "Miluk", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "imn", - "name": "Imonda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "imo", - "name": "Imbongu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "imr", - "name": "Imroing", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ims", - "name": "Marsian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "imt", - "name": "Imotong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "imy", - "name": "Milyan", - "scope": "I", - "type": "A" - }, - { - "alpha_2": "ia", - "alpha_3": "ina", - "name": "Interlingua (International Auxiliary Language Association)", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "inb", - "name": "Inga", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "id", - "alpha_3": "ind", - "name": "Indonesian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ing", - "name": "Degexit'an", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "inh", - "name": "Ingush", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "inj", - "inverted_name": "Inga, Jungle", - "name": "Jungle Inga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "inl", - "name": "Indonesian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "inm", - "name": "Minaean", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "inn", - "name": "Isinai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ino", - "name": "Inoke-Yate", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "inp", - "name": "Iñapari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ins", - "name": "Indian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "int", - "name": "Intha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "inz", - "name": "Ineseño", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ior", - "name": "Inor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iou", - "name": "Tuma-Irumu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iow", - "name": "Iowa-Oto", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ipi", - "name": "Ipili", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ik", - "alpha_3": "ipk", - "name": "Inupiaq", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "ipo", - "name": "Ipiko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iqu", - "name": "Iquito", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iqw", - "name": "Ikwo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ire", - "name": "Iresim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "irh", - "name": "Irarutu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iri", - "name": "Rigwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "irk", - "name": "Iraqw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "irn", - "name": "Irántxe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "irr", - "name": "Ir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iru", - "name": "Irula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "irx", - "name": "Kamberau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iry", - "name": "Iraya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "isa", - "name": "Isabi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "isc", - "name": "Isconahua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "isd", - "name": "Isnag", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ise", - "name": "Italian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "isg", - "name": "Irish Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ish", - "name": "Esan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "isi", - "name": "Nkem-Nkum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "isk", - "name": "Ishkashimi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "is", - "alpha_3": "isl", - "bibliographic": "ice", - "name": "Icelandic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ism", - "name": "Masimasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "isn", - "name": "Isanzu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iso", - "name": "Isoko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "isr", - "name": "Israeli Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ist", - "name": "Istriot", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "isu", - "name": "Isu (Menchum Division)", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "it", - "alpha_3": "ita", - "name": "Italian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itb", - "inverted_name": "Itneg, Binongan", - "name": "Binongan Itneg", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itd", - "inverted_name": "Tidung, Southern", - "name": "Southern Tidung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ite", - "name": "Itene", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "iti", - "inverted_name": "Itneg, Inlaod", - "name": "Inlaod Itneg", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itk", - "name": "Judeo-Italian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itl", - "name": "Itelmen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itm", - "name": "Itu Mbon Uzo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ito", - "name": "Itonama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itr", - "name": "Iteri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "its", - "name": "Isekiri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itt", - "inverted_name": "Itneg, Maeng", - "name": "Maeng Itneg", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itv", - "name": "Itawit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itw", - "name": "Ito", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itx", - "name": "Itik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ity", - "inverted_name": "Itneg, Moyadan", - "name": "Moyadan Itneg", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "itz", - "name": "Itzá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ium", - "inverted_name": "Mien, Iu", - "name": "Iu Mien", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ivb", - "name": "Ibatan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ivv", - "name": "Ivatan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iwk", - "name": "I-Wak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iwm", - "name": "Iwam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iwo", - "name": "Iwur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iws", - "inverted_name": "Iwam, Sepik", - "name": "Sepik Iwam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ixc", - "name": "Ixcatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ixl", - "name": "Ixil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iya", - "name": "Iyayu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iyo", - "name": "Mesaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "iyx", - "name": "Yaka (Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "izh", - "name": "Ingrian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "izr", - "name": "Izere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "izz", - "name": "Izii", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jaa", - "name": "Jamamadí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jab", - "name": "Hyam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jac", - "name": "Popti'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jad", - "name": "Jahanka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jae", - "name": "Yabem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jaf", - "name": "Jara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jah", - "name": "Jah Hut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jaj", - "name": "Zazao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jak", - "name": "Jakun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jal", - "name": "Yalahatan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jam", - "inverted_name": "Creole English, Jamaican", - "name": "Jamaican Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jan", - "name": "Jandai", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "jao", - "name": "Yanyuwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jaq", - "name": "Yaqay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jas", - "inverted_name": "Javanese, New Caledonian", - "name": "New Caledonian Javanese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jat", - "name": "Jakati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jau", - "name": "Yaur", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "jv", - "alpha_3": "jav", - "name": "Javanese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jax", - "inverted_name": "Malay, Jambi", - "name": "Jambi Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jay", - "name": "Yan-nhangu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jaz", - "name": "Jawe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jbe", - "name": "Judeo-Berber", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jbi", - "name": "Badjiri", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "jbj", - "name": "Arandai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jbk", - "name": "Barikewa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jbm", - "name": "Bijim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jbn", - "name": "Nafusi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jbo", - "name": "Lojban", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "jbr", - "name": "Jofotek-Bromnya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jbt", - "name": "Jabutí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jbu", - "name": "Jukun Takum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jbw", - "name": "Yawijibaya", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "jcs", - "name": "Jamaican Country Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jct", - "name": "Krymchak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jda", - "name": "Jad", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jdg", - "name": "Jadgali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jdt", - "name": "Judeo-Tat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jeb", - "name": "Jebero", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jee", - "name": "Jerung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jeh", - "name": "Jeh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jei", - "name": "Yei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jek", - "name": "Jeri Kuo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jel", - "name": "Yelmek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jen", - "name": "Dza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jer", - "name": "Jere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jet", - "name": "Manem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jeu", - "name": "Jonkor Bourmataguil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jgb", - "name": "Ngbee", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "jge", - "name": "Judeo-Georgian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jgk", - "name": "Gwak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jgo", - "name": "Ngomba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jhi", - "name": "Jehai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jhs", - "name": "Jhankot Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jia", - "name": "Jina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jib", - "name": "Jibu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jic", - "name": "Tol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jid", - "name": "Bu (Kaduna State)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jie", - "name": "Jilbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jig", - "name": "Jingulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jih", - "name": "sTodsde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jii", - "name": "Jiiddu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jil", - "name": "Jilim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jim", - "name": "Jimi (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jio", - "name": "Jiamao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jiq", - "name": "Guanyinqiao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jit", - "name": "Jita", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jiu", - "inverted_name": "Jinuo, Youle", - "name": "Youle Jinuo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jiv", - "name": "Shuar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jiy", - "inverted_name": "Jinuo, Buyuan", - "name": "Buyuan Jinuo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jje", - "name": "Jejueo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jjr", - "name": "Bankal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jka", - "name": "Kaera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jkm", - "inverted_name": "Karen, Mobwa", - "name": "Mobwa Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jko", - "name": "Kubo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jkp", - "inverted_name": "Karen, Paku", - "name": "Paku Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jkr", - "name": "Koro (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jks", - "name": "Amami Koniya Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jku", - "name": "Labir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jle", - "name": "Ngile", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jls", - "name": "Jamaican Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jma", - "name": "Dima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jmb", - "name": "Zumbun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jmc", - "name": "Machame", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jmd", - "name": "Yamdena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jmi", - "name": "Jimi (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jml", - "name": "Jumli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jmn", - "inverted_name": "Naga, Makuri", - "name": "Makuri Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jmr", - "name": "Kamara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jms", - "name": "Mashi (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jmw", - "name": "Mouwase", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jmx", - "inverted_name": "Mixtec, Western Juxtlahuaca", - "name": "Western Juxtlahuaca Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jna", - "name": "Jangshung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jnd", - "name": "Jandavra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jng", - "name": "Yangman", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "jni", - "name": "Janji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jnj", - "name": "Yemsa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jnl", - "name": "Rawat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jns", - "name": "Jaunsari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "job", - "name": "Joba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jod", - "name": "Wojenaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jog", - "name": "Jogi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jor", - "name": "Jorá", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "jos", - "name": "Jordanian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jow", - "name": "Jowulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jpa", - "inverted_name": "Aramaic, Jewish Palestinian", - "name": "Jewish Palestinian Aramaic", - "scope": "I", - "type": "H" - }, - { - "alpha_2": "ja", - "alpha_3": "jpn", - "name": "Japanese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jpr", - "name": "Judeo-Persian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jqr", - "name": "Jaqaru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jra", - "name": "Jarai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jrb", - "name": "Judeo-Arabic", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "jrr", - "name": "Jiru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jrt", - "name": "Jakattoe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jru", - "name": "Japrería", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jsl", - "name": "Japanese Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jua", - "name": "Júma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jub", - "name": "Wannu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "juc", - "name": "Jurchen", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "jud", - "name": "Worodougou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "juh", - "name": "Hõne", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jui", - "name": "Ngadjuri", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "juk", - "name": "Wapan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jul", - "name": "Jirel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jum", - "name": "Jumjum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jun", - "name": "Juang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "juo", - "name": "Jiba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jup", - "name": "Hupdë", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jur", - "name": "Jurúna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jus", - "name": "Jumla Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jut", - "name": "Jutish", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "juu", - "name": "Ju", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "juw", - "name": "Wãpha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "juy", - "name": "Juray", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jvd", - "name": "Javindo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jvn", - "inverted_name": "Javanese, Caribbean", - "name": "Caribbean Javanese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jwi", - "name": "Jwira-Pepesa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jya", - "name": "Jiarong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jye", - "inverted_name": "Arabic, Judeo-Yemeni", - "name": "Judeo-Yemeni Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "jyy", - "name": "Jaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kaa", - "name": "Kara-Kalpak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kab", - "name": "Kabyle", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kac", - "name": "Kachin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kad", - "name": "Adara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kae", - "name": "Ketangalan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kaf", - "name": "Katso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kag", - "name": "Kajaman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kah", - "name": "Kara (Central African Republic)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kai", - "name": "Karekare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kaj", - "name": "Jju", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kak", - "name": "Kalanguya", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "kl", - "alpha_3": "kal", - "name": "Kalaallisut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kam", - "name": "Kamba (Kenya)", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "kn", - "alpha_3": "kan", - "name": "Kannada", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kao", - "name": "Xaasongaxango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kap", - "name": "Bezhta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kaq", - "name": "Capanahua", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ks", - "alpha_3": "kas", - "name": "Kashmiri", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ka", - "alpha_3": "kat", - "bibliographic": "geo", - "name": "Georgian", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "kr", - "alpha_3": "kau", - "name": "Kanuri", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "kav", - "name": "Katukína", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kaw", - "name": "Kawi", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "kax", - "name": "Kao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kay", - "name": "Kamayurá", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "kk", - "alpha_3": "kaz", - "name": "Kazakh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kba", - "name": "Kalarko", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kbb", - "name": "Kaxuiâna", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kbc", - "name": "Kadiwéu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbd", - "name": "Kabardian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbe", - "name": "Kanju", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbg", - "name": "Khamba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbh", - "name": "Camsá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbi", - "name": "Kaptiau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbj", - "name": "Kari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbk", - "inverted_name": "Koiari, Grass", - "name": "Grass Koiari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbl", - "name": "Kanembu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbm", - "name": "Iwal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbn", - "name": "Kare (Central African Republic)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbo", - "name": "Keliko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbp", - "name": "Kabiyè", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbq", - "name": "Kamano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbr", - "name": "Kafa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbs", - "name": "Kande", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbt", - "name": "Abadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbu", - "name": "Kabutra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbv", - "name": "Dera (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbw", - "name": "Kaiep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbx", - "name": "Ap Ma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kby", - "inverted_name": "Kanuri, Manga", - "name": "Manga Kanuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kbz", - "name": "Duhwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kca", - "name": "Khanty", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcb", - "name": "Kawacha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcc", - "name": "Lubila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcd", - "inverted_name": "Kanum, Ngkâlmpw", - "name": "Ngkâlmpw Kanum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kce", - "name": "Kaivi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcf", - "name": "Ukaan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcg", - "name": "Tyap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kch", - "name": "Vono", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kci", - "name": "Kamantan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcj", - "name": "Kobiana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kck", - "name": "Kalanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcl", - "name": "Kela (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcm", - "name": "Gula (Central African Republic)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcn", - "name": "Nubi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kco", - "name": "Kinalakna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcp", - "name": "Kanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcq", - "name": "Kamo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcr", - "name": "Katla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcs", - "name": "Koenoem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kct", - "name": "Kaian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcu", - "name": "Kami (Tanzania)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcv", - "name": "Kete", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcw", - "name": "Kabwari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcx", - "name": "Kachama-Ganjule", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcy", - "name": "Korandje", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kcz", - "name": "Konongo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kda", - "name": "Worimi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kdc", - "name": "Kutu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdd", - "name": "Yankunytjatjara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kde", - "name": "Makonde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdf", - "name": "Mamusi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdg", - "name": "Seba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdh", - "name": "Tem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdi", - "name": "Kumam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdj", - "name": "Karamojong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdk", - "name": "Numèè", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdl", - "name": "Tsikimba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdm", - "name": "Kagoma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdn", - "name": "Kunda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdp", - "name": "Kaningdon-Nindem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdq", - "name": "Koch", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdr", - "name": "Karaim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdt", - "name": "Kuy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdu", - "name": "Kadaru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdw", - "name": "Koneraw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdx", - "name": "Kam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdy", - "name": "Keder", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kdz", - "name": "Kwaja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kea", - "name": "Kabuverdianu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "keb", - "name": "Kélé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kec", - "name": "Keiga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ked", - "name": "Kerewe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kee", - "inverted_name": "Keres, Eastern", - "name": "Eastern Keres", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kef", - "name": "Kpessi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "keg", - "name": "Tese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "keh", - "name": "Keak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kei", - "name": "Kei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kej", - "name": "Kadar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kek", - "name": "Kekchí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kel", - "name": "Kela (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kem", - "name": "Kemak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ken", - "name": "Kenyang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "keo", - "name": "Kakwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kep", - "name": "Kaikadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "keq", - "name": "Kamar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ker", - "name": "Kera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kes", - "name": "Kugbo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ket", - "name": "Ket", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "keu", - "name": "Akebu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kev", - "name": "Kanikkaran", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kew", - "inverted_name": "Kewa, West", - "name": "West Kewa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kex", - "name": "Kukna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "key", - "name": "Kupia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kez", - "name": "Kukele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfa", - "name": "Kodava", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfb", - "inverted_name": "Kolami, Northwestern", - "name": "Northwestern Kolami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfc", - "name": "Konda-Dora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfd", - "inverted_name": "Koraga, Korra", - "name": "Korra Koraga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfe", - "name": "Kota (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kff", - "name": "Koya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfg", - "name": "Kudiya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfh", - "name": "Kurichiya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfi", - "inverted_name": "Kurumba, Kannada", - "name": "Kannada Kurumba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfj", - "name": "Kemiehua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfk", - "name": "Kinnauri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfl", - "name": "Kung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfm", - "name": "Khunsari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfn", - "name": "Kuk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfo", - "name": "Koro (Côte d'Ivoire)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfp", - "name": "Korwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfq", - "name": "Korku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfr", - "name": "Kachhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfs", - "name": "Bilaspuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kft", - "name": "Kanjari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfu", - "name": "Katkari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfv", - "name": "Kurmukar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfw", - "inverted_name": "Naga, Kharam", - "name": "Kharam Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfx", - "inverted_name": "Pahari, Kullu", - "name": "Kullu Pahari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfy", - "name": "Kumaoni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kfz", - "name": "Koromfé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kga", - "name": "Koyaga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgb", - "name": "Kawe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kge", - "name": "Komering", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgf", - "name": "Kube", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgg", - "name": "Kusunda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgi", - "name": "Selangor Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgj", - "inverted_name": "Kham, Gamale", - "name": "Gamale Kham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgk", - "name": "Kaiwá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgl", - "name": "Kunggari", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kgm", - "name": "Karipúna", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kgn", - "name": "Karingani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgo", - "name": "Krongo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgp", - "name": "Kaingang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgq", - "name": "Kamoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgr", - "name": "Abun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgs", - "name": "Kumbainggar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgt", - "name": "Somyev", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgu", - "name": "Kobol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgv", - "name": "Karas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgw", - "name": "Karon Dori", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgx", - "name": "Kamaru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kgy", - "name": "Kyerung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kha", - "name": "Khasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khb", - "name": "Lü", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khc", - "name": "Tukang Besi North", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khd", - "inverted_name": "Kanum, Bädi", - "name": "Bädi Kanum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khe", - "name": "Korowai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khf", - "name": "Khuen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khg", - "inverted_name": "Tibetan, Khams", - "name": "Khams Tibetan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khh", - "name": "Kehu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khj", - "name": "Kuturmi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khk", - "inverted_name": "Mongolian, Halh", - "name": "Halh Mongolian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khl", - "name": "Lusi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "km", - "alpha_3": "khm", - "name": "Khmer", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khn", - "name": "Khandesi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kho", - "name": "Khotanese", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "khp", - "name": "Kapori", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khq", - "inverted_name": "Songhay, Koyra Chiini", - "name": "Koyra Chiini Songhay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khr", - "name": "Kharia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khs", - "name": "Kasua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kht", - "name": "Khamti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khu", - "name": "Nkhumbi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khv", - "name": "Khvarshi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khw", - "name": "Khowar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khx", - "name": "Kanu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khy", - "name": "Kele (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "khz", - "name": "Keapara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kia", - "name": "Kim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kib", - "name": "Koalib", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kic", - "name": "Kickapoo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kid", - "name": "Koshin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kie", - "name": "Kibet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kif", - "inverted_name": "Kham, Eastern Parbate", - "name": "Eastern Parbate Kham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kig", - "name": "Kimaama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kih", - "name": "Kilmeri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kii", - "name": "Kitsai", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kij", - "name": "Kilivila", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ki", - "alpha_3": "kik", - "name": "Kikuyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kil", - "name": "Kariya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kim", - "name": "Karagas", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "rw", - "alpha_3": "kin", - "name": "Kinyarwanda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kio", - "name": "Kiowa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kip", - "inverted_name": "Kham, Sheshi", - "name": "Sheshi Kham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kiq", - "name": "Kosadle", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ky", - "alpha_3": "kir", - "name": "Kirghiz", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kis", - "name": "Kis", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kit", - "name": "Agob", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kiu", - "name": "Kirmanjki (individual language)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kiv", - "name": "Kimbu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kiw", - "inverted_name": "Kiwai, Northeast", - "name": "Northeast Kiwai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kix", - "inverted_name": "Naga, Khiamniungan", - "name": "Khiamniungan Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kiy", - "name": "Kirikiri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kiz", - "name": "Kisi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kja", - "name": "Mlap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjb", - "name": "Q'anjob'al", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjc", - "inverted_name": "Konjo, Coastal", - "name": "Coastal Konjo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjd", - "inverted_name": "Kiwai, Southern", - "name": "Southern Kiwai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kje", - "name": "Kisar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjg", - "name": "Khmu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjh", - "name": "Khakas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kji", - "name": "Zabana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjj", - "name": "Khinalugh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjk", - "inverted_name": "Konjo, Highland", - "name": "Highland Konjo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjl", - "inverted_name": "Kham, Western Parbate", - "name": "Western Parbate Kham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjm", - "name": "Kháng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjn", - "name": "Kunjen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjo", - "inverted_name": "Kinnauri, Harijan", - "name": "Harijan Kinnauri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjp", - "inverted_name": "Karen, Pwo Eastern", - "name": "Pwo Eastern Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjq", - "inverted_name": "Keres, Western", - "name": "Western Keres", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjr", - "name": "Kurudu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjs", - "inverted_name": "Kewa, East", - "name": "East Kewa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjt", - "inverted_name": "Karen, Phrae Pwo", - "name": "Phrae Pwo Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kju", - "name": "Kashaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjv", - "name": "Kaikavian Literary Language", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "kjx", - "name": "Ramopa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjy", - "name": "Erave", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kjz", - "name": "Bumthangkha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kka", - "name": "Kakanda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkb", - "name": "Kwerisa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkc", - "name": "Odoodee", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkd", - "name": "Kinuku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kke", - "name": "Kakabe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkf", - "inverted_name": "Monpa, Kalaktang", - "name": "Kalaktang Monpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkg", - "inverted_name": "Kalinga, Mabaka Valley", - "name": "Mabaka Valley Kalinga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkh", - "name": "Khün", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kki", - "name": "Kagulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkj", - "name": "Kako", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkk", - "name": "Kokota", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkl", - "inverted_name": "Yale, Kosarek", - "name": "Kosarek Yale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkm", - "name": "Kiong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkn", - "name": "Kon Keu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kko", - "name": "Karko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkp", - "name": "Gugubera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkq", - "name": "Kaeku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkr", - "name": "Kir-Balar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kks", - "name": "Giiwo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkt", - "name": "Koi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kku", - "name": "Tumi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkv", - "name": "Kangean", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkw", - "name": "Teke-Kukuya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkx", - "name": "Kohin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kky", - "name": "Guugu Yimidhirr", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kkz", - "name": "Kaska", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kla", - "name": "Klamath-Modoc", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "klb", - "name": "Kiliwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klc", - "name": "Kolbila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kld", - "name": "Gamilaraay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kle", - "name": "Kulung (Nepal)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klf", - "name": "Kendeje", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klg", - "name": "Tagakaulo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klh", - "name": "Weliki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kli", - "name": "Kalumpang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klj", - "name": "Khalaj", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klk", - "name": "Kono (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kll", - "inverted_name": "Kalagan, Kagan", - "name": "Kagan Kalagan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klm", - "name": "Migum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kln", - "name": "Kalenjin", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "klo", - "name": "Kapya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klp", - "name": "Kamasa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klq", - "name": "Rumu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klr", - "name": "Khaling", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kls", - "name": "Kalasha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klt", - "name": "Nukna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klu", - "name": "Klao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klv", - "name": "Maskelynes", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klw", - "name": "Tado", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klx", - "name": "Koluwawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kly", - "name": "Kalao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "klz", - "name": "Kabola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kma", - "name": "Konni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmb", - "name": "Kimbundu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmc", - "inverted_name": "Dong, Southern", - "name": "Southern Dong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmd", - "inverted_name": "Kalinga, Majukayang", - "name": "Majukayang Kalinga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kme", - "name": "Bakole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmf", - "name": "Kare (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmg", - "name": "Kâte", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmh", - "name": "Kalam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmi", - "name": "Kami (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmj", - "name": "Kumarbhag Paharia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmk", - "inverted_name": "Kalinga, Limos", - "name": "Limos Kalinga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kml", - "inverted_name": "Kalinga, Tanudan", - "name": "Tanudan Kalinga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmm", - "name": "Kom (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmn", - "name": "Awtuw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmo", - "name": "Kwoma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmp", - "name": "Gimme", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmq", - "name": "Kwama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmr", - "inverted_name": "Kurdish, Northern", - "name": "Northern Kurdish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kms", - "name": "Kamasau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmt", - "name": "Kemtuik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmu", - "name": "Kanite", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmv", - "inverted_name": "Creole French, Karipúna", - "name": "Karipúna Creole French", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmw", - "name": "Komo (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmx", - "name": "Waboda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmy", - "name": "Koma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kmz", - "name": "Khorasani Turkish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kna", - "name": "Dera (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knb", - "inverted_name": "Kalinga, Lubuagan", - "name": "Lubuagan Kalinga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knc", - "inverted_name": "Kanuri, Central", - "name": "Central Kanuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knd", - "name": "Konda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kne", - "name": "Kankanaey", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knf", - "name": "Mankanya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kng", - "name": "Koongo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kni", - "name": "Kanufi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knj", - "inverted_name": "Kanjobal, Western", - "name": "Western Kanjobal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knk", - "name": "Kuranko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knl", - "name": "Keninjal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knm", - "name": "Kanamarí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knn", - "name": "Konkani (individual language)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kno", - "name": "Kono (Sierra Leone)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knp", - "name": "Kwanja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knq", - "name": "Kintaq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knr", - "name": "Kaningra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kns", - "name": "Kensiu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knt", - "inverted_name": "Katukína, Panoan", - "name": "Panoan Katukína", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knu", - "name": "Kono (Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knv", - "name": "Tabo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knw", - "name": "Kung-Ekoka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knx", - "name": "Kendayan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kny", - "name": "Kanyok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "knz", - "name": "Kalamsé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "koa", - "name": "Konomala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "koc", - "name": "Kpati", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kod", - "name": "Kodi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "koe", - "inverted_name": "Suri, Kacipo-Bale", - "name": "Kacipo-Bale Suri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kof", - "name": "Kubi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kog", - "name": "Cogui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "koh", - "name": "Koyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "koi", - "name": "Komi-Permyak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kok", - "name": "Konkani (macrolanguage)", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "kol", - "name": "Kol (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "kv", - "alpha_3": "kom", - "name": "Komi", - "scope": "M", - "type": "L" - }, - { - "alpha_2": "kg", - "alpha_3": "kon", - "name": "Kongo", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "koo", - "name": "Konzo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kop", - "name": "Waube", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "koq", - "name": "Kota (Gabon)", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ko", - "alpha_3": "kor", - "name": "Korean", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kos", - "name": "Kosraean", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kot", - "name": "Lagwan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kou", - "name": "Koke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kov", - "name": "Kudu-Camo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kow", - "name": "Kugama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "koy", - "name": "Koyukon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "koz", - "name": "Korak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpa", - "name": "Kutto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpb", - "inverted_name": "Kurumba, Mullu", - "name": "Mullu Kurumba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpc", - "name": "Curripaco", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpd", - "name": "Koba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpe", - "name": "Kpelle", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "kpf", - "name": "Komba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpg", - "name": "Kapingamarangi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kph", - "name": "Kplang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpi", - "name": "Kofei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpj", - "name": "Karajá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpk", - "name": "Kpan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpl", - "name": "Kpala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpm", - "name": "Koho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpn", - "name": "Kepkiriwát", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kpo", - "name": "Ikposo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpq", - "name": "Korupun-Sela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpr", - "name": "Korafe-Yegha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kps", - "name": "Tehit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpt", - "name": "Karata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpu", - "name": "Kafoa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpv", - "name": "Komi-Zyrian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpw", - "name": "Kobon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpx", - "inverted_name": "Koiali, Mountain", - "name": "Mountain Koiali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpy", - "name": "Koryak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kpz", - "name": "Kupsabiny", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqa", - "name": "Mum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqb", - "name": "Kovai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqc", - "name": "Doromu-Koki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqd", - "name": "Koy Sanjaq Surat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqe", - "name": "Kalagan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqf", - "name": "Kakabai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqg", - "name": "Khe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqh", - "name": "Kisankasa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqi", - "name": "Koitabu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqj", - "name": "Koromira", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqk", - "inverted_name": "Gbe, Kotafon", - "name": "Kotafon Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kql", - "name": "Kyenele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqm", - "name": "Khisa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqn", - "name": "Kaonde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqo", - "inverted_name": "Krahn, Eastern", - "name": "Eastern Krahn", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqp", - "name": "Kimré", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqq", - "name": "Krenak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqr", - "name": "Kimaragang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqs", - "inverted_name": "Kissi, Northern", - "name": "Northern Kissi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqt", - "inverted_name": "Kadazan, Klias River", - "name": "Klias River Kadazan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqu", - "name": "Seroa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kqv", - "name": "Okolod", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqw", - "name": "Kandas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqx", - "name": "Mser", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqy", - "name": "Koorete", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kqz", - "name": "Korana", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kra", - "name": "Kumhali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krb", - "name": "Karkin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "krc", - "name": "Karachay-Balkar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krd", - "name": "Kairui-Midiki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kre", - "name": "Panará", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krf", - "name": "Koro (Vanuatu)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krh", - "name": "Kurama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kri", - "name": "Krio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krj", - "name": "Kinaray-A", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krk", - "name": "Kerek", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "krl", - "name": "Karelian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krn", - "name": "Sapo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krp", - "name": "Korop", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krr", - "name": "Krung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krs", - "name": "Gbaya (Sudan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krt", - "inverted_name": "Kanuri, Tumari", - "name": "Tumari Kanuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kru", - "name": "Kurukh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krv", - "name": "Kavet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krw", - "inverted_name": "Krahn, Western", - "name": "Western Krahn", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krx", - "name": "Karon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kry", - "name": "Kryts", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "krz", - "inverted_name": "Kanum, Sota", - "name": "Sota Kanum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksa", - "name": "Shuwa-Zamani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksb", - "name": "Shambala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksc", - "inverted_name": "Kalinga, Southern", - "name": "Southern Kalinga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksd", - "name": "Kuanua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kse", - "name": "Kuni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksf", - "name": "Bafia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksg", - "name": "Kusaghe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksh", - "name": "Kölsch", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksi", - "name": "Krisa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksj", - "name": "Uare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksk", - "name": "Kansa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksl", - "name": "Kumalu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksm", - "name": "Kumba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksn", - "name": "Kasiguranin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kso", - "name": "Kofa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksp", - "name": "Kaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksq", - "name": "Kwaami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksr", - "name": "Borong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kss", - "inverted_name": "Kisi, Southern", - "name": "Southern Kisi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kst", - "name": "Winyé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksu", - "name": "Khamyang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksv", - "name": "Kusu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksw", - "inverted_name": "Karen, S'gaw", - "name": "S'gaw Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksx", - "name": "Kedang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksy", - "name": "Kharia Thar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ksz", - "name": "Kodaku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kta", - "name": "Katua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktb", - "name": "Kambaata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktc", - "name": "Kholok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktd", - "name": "Kokata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kte", - "name": "Nubri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktf", - "name": "Kwami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktg", - "name": "Kalkutung", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kth", - "name": "Karanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kti", - "inverted_name": "Muyu, North", - "name": "North Muyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktj", - "inverted_name": "Krumen, Plapo", - "name": "Plapo Krumen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktk", - "name": "Kaniet", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ktl", - "name": "Koroshi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktm", - "name": "Kurti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktn", - "name": "Karitiâna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kto", - "name": "Kuot", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktp", - "name": "Kaduo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktq", - "name": "Katabaga", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kts", - "inverted_name": "Muyu, South", - "name": "South Muyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktt", - "name": "Ketum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktu", - "name": "Kituba (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktv", - "inverted_name": "Katu, Eastern", - "name": "Eastern Katu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktw", - "name": "Kato", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ktx", - "name": "Kaxararí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kty", - "name": "Kango (Bas-Uélé District)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ktz", - "name": "Juǀʼhoan", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "kj", - "alpha_3": "kua", - "name": "Kuanyama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kub", - "name": "Kutep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuc", - "name": "Kwinsu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kud", - "name": "'Auhelawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kue", - "name": "Kuman (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuf", - "inverted_name": "Katu, Western", - "name": "Western Katu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kug", - "name": "Kupa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuh", - "name": "Kushi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kui", - "name": "Kuikúro-Kalapálo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuj", - "name": "Kuria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuk", - "name": "Kepo'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kul", - "name": "Kulere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kum", - "name": "Kumyk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kun", - "name": "Kunama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuo", - "name": "Kumukio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kup", - "name": "Kunimaipa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuq", - "name": "Karipuna", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ku", - "alpha_3": "kur", - "name": "Kurdish", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "kus", - "name": "Kusaal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kut", - "name": "Kutenai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuu", - "inverted_name": "Kuskokwim, Upper", - "name": "Upper Kuskokwim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuv", - "name": "Kur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuw", - "name": "Kpagua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kux", - "name": "Kukatja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuy", - "name": "Kuuku-Ya'u", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kuz", - "name": "Kunza", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kva", - "name": "Bagvalal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvb", - "name": "Kubu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvc", - "name": "Kove", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvd", - "name": "Kui (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kve", - "name": "Kalabakan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvf", - "name": "Kabalai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvg", - "name": "Kuni-Boazi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvh", - "name": "Komodo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvi", - "name": "Kwang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvj", - "name": "Psikye", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvk", - "name": "Korean Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvl", - "name": "Kayaw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvm", - "name": "Kendem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvn", - "inverted_name": "Kuna, Border", - "name": "Border Kuna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvo", - "name": "Dobel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvp", - "name": "Kompane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvq", - "inverted_name": "Karen, Geba", - "name": "Geba Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvr", - "name": "Kerinci", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvt", - "inverted_name": "Karen, Lahta", - "name": "Lahta Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvu", - "inverted_name": "Karen, Yinbaw", - "name": "Yinbaw Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvv", - "name": "Kola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvw", - "name": "Wersing", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvx", - "inverted_name": "Koli, Parkari", - "name": "Parkari Koli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvy", - "inverted_name": "Karen, Yintale", - "name": "Yintale Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kvz", - "name": "Tsakwambo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwa", - "name": "Dâw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwb", - "name": "Kwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwc", - "name": "Likwala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwd", - "name": "Kwaio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwe", - "name": "Kwerba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwf", - "name": "Kwara'ae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwg", - "name": "Sara Kaba Deme", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwh", - "name": "Kowiai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwi", - "name": "Awa-Cuaiquer", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwj", - "name": "Kwanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwk", - "name": "Kwakiutl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwl", - "name": "Kofyar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwm", - "name": "Kwambi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwn", - "name": "Kwangali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwo", - "name": "Kwomtari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwp", - "name": "Kodia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwr", - "name": "Kwer", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kws", - "name": "Kwese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwt", - "name": "Kwesten", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwu", - "name": "Kwakum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwv", - "name": "Sara Kaba Náà", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kww", - "name": "Kwinti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwx", - "name": "Khirwar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwy", - "inverted_name": "Kongo, San Salvador", - "name": "San Salvador Kongo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kwz", - "name": "Kwadi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kxa", - "name": "Kairiru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxb", - "name": "Krobu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxc", - "name": "Konso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxd", - "name": "Brunei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxf", - "inverted_name": "Karen, Manumanaw", - "name": "Manumanaw Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxh", - "name": "Karo (Ethiopia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxi", - "inverted_name": "Murut, Keningau", - "name": "Keningau Murut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxj", - "name": "Kulfa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxk", - "inverted_name": "Karen, Zayein", - "name": "Zayein Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxm", - "inverted_name": "Khmer, Northern", - "name": "Northern Khmer", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxn", - "inverted_name": "Melanau, Kanowit-Tanjong", - "name": "Kanowit-Tanjong Melanau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxo", - "name": "Kanoé", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kxp", - "inverted_name": "Koli, Wadiyara", - "name": "Wadiyara Koli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxq", - "inverted_name": "Kanum, Smärky", - "name": "Smärky Kanum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxr", - "name": "Koro (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxs", - "name": "Kangjia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxt", - "name": "Koiwat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxv", - "name": "Kuvi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxw", - "name": "Konai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxx", - "name": "Likuba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxy", - "name": "Kayong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kxz", - "name": "Kerewo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kya", - "name": "Kwaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyb", - "inverted_name": "Kalinga, Butbut", - "name": "Butbut Kalinga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyc", - "name": "Kyaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyd", - "name": "Karey", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kye", - "name": "Krache", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyf", - "name": "Kouya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyg", - "name": "Keyagana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyh", - "name": "Karok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyi", - "name": "Kiput", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyj", - "name": "Karao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyk", - "name": "Kamayo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyl", - "name": "Kalapuya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kym", - "name": "Kpatili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyn", - "inverted_name": "Binukidnon, Northern", - "name": "Northern Binukidnon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyo", - "name": "Kelon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyp", - "name": "Kang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyq", - "name": "Kenga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyr", - "name": "Kuruáya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kys", - "inverted_name": "Kayan, Baram", - "name": "Baram Kayan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyt", - "name": "Kayagar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyu", - "inverted_name": "Kayah, Western", - "name": "Western Kayah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyv", - "name": "Kayort", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyw", - "name": "Kudmali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyx", - "name": "Rapoisi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyy", - "name": "Kambaira", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kyz", - "name": "Kayabí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kza", - "inverted_name": "Karaboro, Western", - "name": "Western Karaboro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzb", - "name": "Kaibobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzc", - "inverted_name": "Kulango, Bondoukou", - "name": "Bondoukou Kulango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzd", - "name": "Kadai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kze", - "name": "Kosena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzf", - "inverted_name": "Kaili, Da'a", - "name": "Da'a Kaili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzg", - "name": "Kikai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzi", - "name": "Kelabit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzk", - "name": "Kazukuru", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kzl", - "name": "Kayeli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzm", - "name": "Kais", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzn", - "name": "Kokola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzo", - "name": "Kaningi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzp", - "name": "Kaidipang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzq", - "name": "Kaike", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzr", - "name": "Karang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzs", - "inverted_name": "Dusun, Sugut", - "name": "Sugut Dusun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzu", - "name": "Kayupulau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzv", - "name": "Komyandaret", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzw", - "name": "Karirí-Xocó", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kzx", - "name": "Kamarian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "kzy", - "name": "Kango (Tshopo District)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "kzz", - "name": "Kalabra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "laa", - "inverted_name": "Subanen, Southern", - "name": "Southern Subanen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lab", - "name": "Linear A", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "lac", - "name": "Lacandon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lad", - "name": "Ladino", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lae", - "name": "Pattani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "laf", - "name": "Lafofa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lag", - "name": "Langi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lah", - "name": "Lahnda", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "lai", - "name": "Lambya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "laj", - "name": "Lango (Uganda)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lal", - "name": "Lalia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lam", - "name": "Lamba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lan", - "name": "Laru", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "lo", - "alpha_3": "lao", - "name": "Lao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lap", - "name": "Laka (Chad)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "laq", - "name": "Qabiao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lar", - "name": "Larteh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "las", - "name": "Lama (Togo)", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "la", - "alpha_3": "lat", - "name": "Latin", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "lau", - "name": "Laba", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "lv", - "alpha_3": "lav", - "name": "Latvian", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "law", - "name": "Lauje", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lax", - "name": "Tiwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lay", - "inverted_name": "Bai, Lama", - "name": "Lama Bai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "laz", - "name": "Aribwatsa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lbb", - "name": "Label", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbc", - "name": "Lakkia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbe", - "name": "Lak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbf", - "name": "Tinani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbg", - "name": "Laopang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbi", - "name": "La'bi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbj", - "name": "Ladakhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbk", - "inverted_name": "Bontok, Central", - "name": "Central Bontok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbl", - "inverted_name": "Bikol, Libon", - "name": "Libon Bikol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbm", - "name": "Lodhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbn", - "name": "Rmeet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbo", - "name": "Laven", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbq", - "name": "Wampar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbr", - "name": "Lohorung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbs", - "name": "Libyan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbt", - "name": "Lachi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbu", - "name": "Labu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbv", - "name": "Lavatbura-Lamusong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbw", - "name": "Tolaki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lbx", - "name": "Lawangan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lby", - "name": "Lamalama", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lbz", - "name": "Lardil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lcc", - "name": "Legenyem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lcd", - "name": "Lola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lce", - "name": "Loncong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lcf", - "name": "Lubu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lch", - "name": "Luchazi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lcl", - "name": "Lisela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lcm", - "name": "Tungag", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lcp", - "inverted_name": "Lawa, Western", - "name": "Western Lawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lcq", - "name": "Luhu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lcs", - "name": "Lisabata-Nuniali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lda", - "name": "Kla-Dan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldb", - "name": "Dũya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldd", - "name": "Luri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldg", - "name": "Lenyima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldh", - "name": "Lamja-Dengsa-Tola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldi", - "name": "Laari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldj", - "name": "Lemoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldk", - "name": "Leelau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldl", - "name": "Kaan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldm", - "name": "Landoma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldn", - "name": "Láadan", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "ldo", - "name": "Loo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldp", - "name": "Tso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ldq", - "name": "Lufu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lea", - "name": "Lega-Shabunda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "leb", - "name": "Lala-Bisa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lec", - "name": "Leco", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "led", - "name": "Lendu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lee", - "name": "Lyélé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lef", - "name": "Lelemi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "leh", - "name": "Lenje", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lei", - "name": "Lemio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lej", - "name": "Lengola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lek", - "name": "Leipon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lel", - "name": "Lele (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lem", - "name": "Nomaande", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "len", - "name": "Lenca", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "leo", - "name": "Leti (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lep", - "name": "Lepcha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "leq", - "name": "Lembena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ler", - "name": "Lenkau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "les", - "name": "Lese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "let", - "name": "Lesing-Gelimi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "leu", - "name": "Kara (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lev", - "name": "Lamma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lew", - "inverted_name": "Kaili, Ledo", - "name": "Ledo Kaili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lex", - "name": "Luang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ley", - "name": "Lemolang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lez", - "name": "Lezghian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lfa", - "name": "Lefa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lfn", - "name": "Lingua Franca Nova", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "lga", - "name": "Lungga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgb", - "name": "Laghu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgg", - "name": "Lugbara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgh", - "name": "Laghuu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgi", - "name": "Lengilu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgk", - "name": "Lingarak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgl", - "name": "Wala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgm", - "name": "Lega-Mwenga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgn", - "name": "T'apo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgo", - "name": "Lango (South Sudan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgq", - "name": "Logba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgr", - "name": "Lengo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgt", - "name": "Pahi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgu", - "name": "Longgu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lgz", - "name": "Ligenza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lha", - "name": "Laha (Viet Nam)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lhh", - "name": "Laha (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lhi", - "name": "Lahu Shi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lhl", - "inverted_name": "Lohar, Lahul", - "name": "Lahul Lohar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lhm", - "name": "Lhomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lhn", - "name": "Lahanan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lhp", - "name": "Lhokpu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lhs", - "name": "Mlahsö", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lht", - "name": "Lo-Toga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lhu", - "name": "Lahu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lia", - "inverted_name": "Limba, West-Central", - "name": "West-Central Limba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lib", - "name": "Likum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lic", - "name": "Hlai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lid", - "name": "Nyindrou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lie", - "name": "Likila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lif", - "name": "Limbu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lig", - "name": "Ligbi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lih", - "name": "Lihir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lij", - "name": "Ligurian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lik", - "name": "Lika", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lil", - "name": "Lillooet", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "li", - "alpha_3": "lim", - "name": "Limburgan", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ln", - "alpha_3": "lin", - "name": "Lingala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lio", - "name": "Liki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lip", - "name": "Sekpele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "liq", - "name": "Libido", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lir", - "inverted_name": "English, Liberian", - "name": "Liberian English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lis", - "name": "Lisu", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "lt", - "alpha_3": "lit", - "name": "Lithuanian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "liu", - "name": "Logorik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "liv", - "name": "Liv", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "liw", - "name": "Col", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lix", - "name": "Liabuku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "liy", - "name": "Banda-Bambari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "liz", - "name": "Libinza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lja", - "name": "Golpa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lje", - "name": "Rampi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lji", - "name": "Laiyolo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ljl", - "name": "Li'o", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ljp", - "name": "Lampung Api", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ljw", - "name": "Yirandali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ljx", - "name": "Yuru", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lka", - "name": "Lakalei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lkb", - "name": "Kabras", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lkc", - "name": "Kucong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lkd", - "name": "Lakondê", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lke", - "name": "Kenyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lkh", - "name": "Lakha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lki", - "name": "Laki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lkj", - "name": "Remun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lkl", - "name": "Laeko-Libuat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lkm", - "name": "Kalaamaya", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lkn", - "name": "Lakon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lko", - "name": "Khayo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lkr", - "name": "Päri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lks", - "name": "Kisa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lkt", - "name": "Lakota", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lku", - "name": "Kungkari", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lky", - "name": "Lokoya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lla", - "name": "Lala-Roba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "llb", - "name": "Lolo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "llc", - "name": "Lele (Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lld", - "name": "Ladin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lle", - "name": "Lele (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "llf", - "name": "Hermit", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "llg", - "name": "Lole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "llh", - "name": "Lamu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lli", - "name": "Teke-Laali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "llj", - "name": "Ladji Ladji", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "llk", - "name": "Lelak", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lll", - "name": "Lilau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "llm", - "name": "Lasalimu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lln", - "name": "Lele (Chad)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "llp", - "inverted_name": "Efate, North", - "name": "North Efate", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "llq", - "name": "Lolak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lls", - "name": "Lithuanian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "llu", - "name": "Lau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "llx", - "name": "Lauan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lma", - "inverted_name": "Limba, East", - "name": "East Limba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmb", - "name": "Merei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmc", - "name": "Limilngan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lmd", - "name": "Lumun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lme", - "name": "Pévé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmf", - "inverted_name": "Lembata, South", - "name": "South Lembata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmg", - "name": "Lamogai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmh", - "name": "Lambichhong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmi", - "name": "Lombi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmj", - "inverted_name": "Lembata, West", - "name": "West Lembata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmk", - "name": "Lamkang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lml", - "name": "Hano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmn", - "name": "Lambadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmo", - "name": "Lombard", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmp", - "name": "Limbum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmq", - "name": "Lamatuka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmr", - "name": "Lamalera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmu", - "name": "Lamenu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmv", - "name": "Lomaiviti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmw", - "inverted_name": "Miwok, Lake", - "name": "Lake Miwok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmx", - "name": "Laimbue", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lmy", - "name": "Lamboya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lna", - "name": "Langbashe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lnb", - "name": "Mbalanhu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lnd", - "name": "Lundayeh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lng", - "name": "Langobardic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "lnh", - "name": "Lanoh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lni", - "name": "Daantanai'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lnj", - "name": "Leningitij", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lnl", - "inverted_name": "Banda, South Central", - "name": "South Central Banda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lnm", - "name": "Langam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lnn", - "name": "Lorediakarkar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lns", - "name": "Lamnso'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lnu", - "name": "Longuda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lnw", - "name": "Lanima", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lnz", - "name": "Lonzo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "loa", - "name": "Loloda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lob", - "name": "Lobi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "loc", - "name": "Inonhan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "loe", - "name": "Saluan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lof", - "name": "Logol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "log", - "name": "Logo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "loh", - "name": "Narim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "loi", - "name": "Loma (Côte d'Ivoire)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "loj", - "name": "Lou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lok", - "name": "Loko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lol", - "name": "Mongo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lom", - "name": "Loma (Liberia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lon", - "inverted_name": "Lomwe, Malawi", - "name": "Malawi Lomwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "loo", - "name": "Lombo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lop", - "name": "Lopa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "loq", - "name": "Lobala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lor", - "name": "Téén", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "los", - "name": "Loniu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lot", - "name": "Otuho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lou", - "inverted_name": "Creole, Louisiana", - "name": "Louisiana Creole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lov", - "name": "Lopi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "low", - "inverted_name": "Lobu, Tampias", - "name": "Tampias Lobu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lox", - "name": "Loun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "loy", - "name": "Loke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "loz", - "name": "Lozi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lpa", - "name": "Lelepa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lpe", - "name": "Lepki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lpn", - "inverted_name": "Naga, Long Phuri", - "name": "Long Phuri Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lpo", - "name": "Lipo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lpx", - "name": "Lopit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lqr", - "name": "Logir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lra", - "name": "Rara Bakati'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lrc", - "inverted_name": "Luri, Northern", - "name": "Northern Luri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lre", - "name": "Laurentian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lrg", - "name": "Laragia", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "lri", - "name": "Marachi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lrk", - "name": "Loarki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lrl", - "name": "Lari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lrm", - "name": "Marama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lrn", - "name": "Lorang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lro", - "name": "Laro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lrr", - "inverted_name": "Yamphu, Southern", - "name": "Southern Yamphu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lrt", - "inverted_name": "Malay, Larantuka", - "name": "Larantuka Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lrv", - "name": "Larevat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lrz", - "name": "Lemerig", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsa", - "name": "Lasgerdi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsb", - "name": "Burundian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsc", - "name": "Albarradas Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsd", - "name": "Lishana Deni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lse", - "name": "Lusengo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsh", - "name": "Lish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsi", - "name": "Lashi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsl", - "name": "Latvian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsm", - "name": "Saamia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsn", - "name": "Tibetan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lso", - "name": "Laos Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsp", - "name": "Panamanian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsr", - "name": "Aruop", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lss", - "name": "Lasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lst", - "name": "Trinidad and Tobago Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsv", - "name": "Sivia Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsw", - "name": "Seychelles Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lsy", - "name": "Mauritian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ltc", - "inverted_name": "Chinese, Late Middle", - "name": "Late Middle Chinese", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ltg", - "name": "Latgalian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lth", - "name": "Thur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lti", - "name": "Leti (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ltn", - "name": "Latundê", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lto", - "name": "Tsotso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lts", - "name": "Tachoni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ltu", - "name": "Latu", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "lb", - "alpha_3": "ltz", - "name": "Luxembourgish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lua", - "name": "Luba-Lulua", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "lu", - "alpha_3": "lub", - "name": "Luba-Katanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "luc", - "name": "Aringa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lud", - "name": "Ludian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lue", - "name": "Luvale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "luf", - "name": "Laua", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "lg", - "alpha_3": "lug", - "name": "Ganda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lui", - "name": "Luiseno", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "luj", - "name": "Luna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "luk", - "name": "Lunanakha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lul", - "name": "Olu'bo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lum", - "name": "Luimbi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lun", - "name": "Lunda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "luo", - "name": "Luo (Kenya and Tanzania)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lup", - "name": "Lumbu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "luq", - "name": "Lucumi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lur", - "name": "Laura", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lus", - "name": "Lushai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lut", - "name": "Lushootseed", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "luu", - "name": "Lumba-Yakkha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "luv", - "name": "Luwati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "luw", - "name": "Luo (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "luy", - "name": "Luyia", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "luz", - "inverted_name": "Luri, Southern", - "name": "Southern Luri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lva", - "name": "Maku'a", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lvi", - "name": "Lavi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lvk", - "name": "Lavukaleve", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lvs", - "inverted_name": "Latvian, Standard", - "name": "Standard Latvian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lvu", - "name": "Levuka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lwa", - "name": "Lwalu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lwe", - "name": "Lewo Eleng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lwg", - "name": "Wanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lwh", - "inverted_name": "Lachi, White", - "name": "White Lachi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lwl", - "inverted_name": "Lawa, Eastern", - "name": "Eastern Lawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lwm", - "name": "Laomian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lwo", - "name": "Luwo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lws", - "name": "Malawian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lwt", - "name": "Lewotobi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lwu", - "name": "Lawu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lww", - "name": "Lewo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lxm", - "name": "Lakurumau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lya", - "name": "Layakha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lyg", - "name": "Lyngngam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lyn", - "name": "Luyana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lzh", - "inverted_name": "Chinese, Literary", - "name": "Literary Chinese", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "lzl", - "name": "Litzlitz", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lzn", - "inverted_name": "Naga, Leinong", - "name": "Leinong Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "lzz", - "name": "Laz", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "maa", - "inverted_name": "Mazatec, San Jerónimo Tecóatl", - "name": "San Jerónimo Tecóatl Mazatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mab", - "inverted_name": "Mixtec, Yutanduchi", - "name": "Yutanduchi Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mad", - "name": "Madurese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mae", - "name": "Bo-Rukul", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "maf", - "name": "Mafa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mag", - "name": "Magahi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "mh", - "alpha_3": "mah", - "name": "Marshallese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mai", - "name": "Maithili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "maj", - "inverted_name": "Mazatec, Jalapa De Díaz", - "name": "Jalapa De Díaz Mazatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mak", - "name": "Makasar", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ml", - "alpha_3": "mal", - "name": "Malayalam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mam", - "name": "Mam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "man", - "name": "Mandingo", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "maq", - "inverted_name": "Mazatec, Chiquihuitlán", - "name": "Chiquihuitlán Mazatec", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "mr", - "alpha_3": "mar", - "name": "Marathi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mas", - "name": "Masai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mat", - "inverted_name": "Matlatzinca, San Francisco", - "name": "San Francisco Matlatzinca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mau", - "inverted_name": "Mazatec, Huautla", - "name": "Huautla Mazatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mav", - "name": "Sateré-Mawé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "maw", - "name": "Mampruli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "max", - "inverted_name": "Malay, North Moluccan", - "name": "North Moluccan Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "maz", - "inverted_name": "Mazahua, Central", - "name": "Central Mazahua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mba", - "name": "Higaonon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbb", - "inverted_name": "Manobo, Western Bukidnon", - "name": "Western Bukidnon Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbc", - "name": "Macushi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbd", - "inverted_name": "Manobo, Dibabawon", - "name": "Dibabawon Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbe", - "name": "Molale", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mbf", - "inverted_name": "Malay, Baba", - "name": "Baba Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbh", - "name": "Mangseng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbi", - "inverted_name": "Manobo, Ilianen", - "name": "Ilianen Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbj", - "name": "Nadëb", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbk", - "name": "Malol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbl", - "name": "Maxakalí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbm", - "name": "Ombamba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbn", - "name": "Macaguán", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbo", - "name": "Mbo (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbp", - "name": "Malayo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbq", - "name": "Maisin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbr", - "name": "Nukak Makú", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbs", - "inverted_name": "Manobo, Sarangani", - "name": "Sarangani Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbt", - "inverted_name": "Manobo, Matigsalug", - "name": "Matigsalug Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbu", - "name": "Mbula-Bwazza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbv", - "name": "Mbulungish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbw", - "name": "Maring", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbx", - "name": "Mari (East Sepik Province)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mby", - "name": "Memoni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mbz", - "inverted_name": "Mixtec, Amoltepec", - "name": "Amoltepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mca", - "name": "Maca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcb", - "name": "Machiguenga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcc", - "name": "Bitur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcd", - "name": "Sharanahua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mce", - "inverted_name": "Mixtec, Itundujia", - "name": "Itundujia Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcf", - "name": "Matsés", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcg", - "name": "Mapoyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mch", - "name": "Maquiritari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mci", - "name": "Mese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcj", - "name": "Mvanip", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mck", - "name": "Mbunda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcl", - "name": "Macaguaje", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mcm", - "inverted_name": "Creole Portuguese, Malaccan", - "name": "Malaccan Creole Portuguese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcn", - "name": "Masana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mco", - "inverted_name": "Mixe, Coatlán", - "name": "Coatlán Mixe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcp", - "name": "Makaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcq", - "name": "Ese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcr", - "name": "Menya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcs", - "name": "Mambai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mct", - "name": "Mengisa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcu", - "inverted_name": "Mambila, Cameroon", - "name": "Cameroon Mambila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcv", - "name": "Minanibai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcw", - "name": "Mawa (Chad)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcx", - "name": "Mpiemo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcy", - "inverted_name": "Watut, South", - "name": "South Watut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mcz", - "name": "Mawan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mda", - "name": "Mada (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdb", - "name": "Morigi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdc", - "name": "Male (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdd", - "name": "Mbum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mde", - "name": "Maba (Chad)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdf", - "name": "Moksha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdg", - "name": "Massalat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdh", - "name": "Maguindanaon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdi", - "name": "Mamvu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdj", - "name": "Mangbetu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdk", - "name": "Mangbutu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdl", - "name": "Maltese Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdm", - "name": "Mayogo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdn", - "name": "Mbati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdp", - "name": "Mbala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdq", - "name": "Mbole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdr", - "name": "Mandar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mds", - "name": "Maria (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdt", - "name": "Mbere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdu", - "name": "Mboko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdv", - "inverted_name": "Mixtec, Santa Lucía Monteverde", - "name": "Santa Lucía Monteverde Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdw", - "name": "Mbosi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdx", - "name": "Dizin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdy", - "name": "Male (Ethiopia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mdz", - "name": "Suruí Do Pará", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mea", - "name": "Menka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "meb", - "name": "Ikobi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mec", - "name": "Marra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "med", - "name": "Melpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mee", - "name": "Mengen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mef", - "name": "Megam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "meh", - "inverted_name": "Mixtec, Southwestern Tlaxiaco", - "name": "Southwestern Tlaxiaco Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mei", - "name": "Midob", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mej", - "name": "Meyah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mek", - "name": "Mekeo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mel", - "inverted_name": "Melanau, Central", - "name": "Central Melanau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mem", - "name": "Mangala", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "men", - "name": "Mende (Sierra Leone)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "meo", - "inverted_name": "Malay, Kedah", - "name": "Kedah Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mep", - "name": "Miriwoong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "meq", - "name": "Merey", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mer", - "name": "Meru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mes", - "name": "Masmaje", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "met", - "name": "Mato", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "meu", - "name": "Motu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mev", - "name": "Mano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mew", - "name": "Maaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mey", - "name": "Hassaniyya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mez", - "name": "Menominee", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfa", - "inverted_name": "Malay, Pattani", - "name": "Pattani Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfb", - "name": "Bangka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfc", - "name": "Mba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfd", - "name": "Mendankwe-Nkwen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfe", - "name": "Morisyen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mff", - "name": "Naki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfg", - "name": "Mogofin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfh", - "name": "Matal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfi", - "name": "Wandala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfj", - "name": "Mefele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfk", - "inverted_name": "Mofu, North", - "name": "North Mofu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfl", - "name": "Putai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfm", - "name": "Marghi South", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfn", - "inverted_name": "Mbembe, Cross River", - "name": "Cross River Mbembe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfo", - "name": "Mbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfp", - "inverted_name": "Malay, Makassar", - "name": "Makassar Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfq", - "name": "Moba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfr", - "name": "Marrithiyel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfs", - "name": "Mexican Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mft", - "name": "Mokerang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfu", - "name": "Mbwela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfv", - "name": "Mandjak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfw", - "name": "Mulaha", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mfx", - "name": "Melo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfy", - "name": "Mayo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mfz", - "name": "Mabaan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mga", - "inverted_name": "Irish, Middle (900-1200)", - "name": "Middle Irish (900-1200)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "mgb", - "name": "Mararit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgc", - "name": "Morokodo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgd", - "name": "Moru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mge", - "name": "Mango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgf", - "name": "Maklew", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgg", - "name": "Mpumpong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgh", - "name": "Makhuwa-Meetto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgi", - "name": "Lijili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgj", - "name": "Abureni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgk", - "name": "Mawes", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgl", - "name": "Maleu-Kilenge", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgm", - "name": "Mambae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgn", - "name": "Mbangi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgo", - "name": "Meta'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgp", - "inverted_name": "Magar, Eastern", - "name": "Eastern Magar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgq", - "name": "Malila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgr", - "name": "Mambwe-Lungu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgs", - "name": "Manda (Tanzania)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgt", - "name": "Mongol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgu", - "name": "Mailu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgv", - "name": "Matengo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgw", - "name": "Matumbi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgy", - "name": "Mbunga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mgz", - "name": "Mbugwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mha", - "name": "Manda (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhb", - "name": "Mahongwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhc", - "name": "Mocho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhd", - "name": "Mbugu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhe", - "name": "Besisi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhf", - "name": "Mamaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhg", - "name": "Margu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhi", - "name": "Ma'di", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhj", - "name": "Mogholi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhk", - "name": "Mungaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhl", - "name": "Mauwake", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhm", - "name": "Makhuwa-Moniga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhn", - "name": "Mócheno", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mho", - "name": "Mashi (Zambia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhp", - "inverted_name": "Malay, Balinese", - "name": "Balinese Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhq", - "name": "Mandan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhr", - "inverted_name": "Mari, Eastern", - "name": "Eastern Mari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhs", - "name": "Buru (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mht", - "name": "Mandahuaca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhu", - "name": "Digaro-Mishmi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhw", - "name": "Mbukushu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhx", - "name": "Maru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhy", - "name": "Ma'anyan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mhz", - "name": "Mor (Mor Islands)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mia", - "name": "Miami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mib", - "inverted_name": "Mixtec, Atatláhuca", - "name": "Atatláhuca Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mic", - "name": "Mi'kmaq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mid", - "name": "Mandaic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mie", - "inverted_name": "Mixtec, Ocotepec", - "name": "Ocotepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mif", - "name": "Mofu-Gudur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mig", - "inverted_name": "Mixtec, San Miguel El Grande", - "name": "San Miguel El Grande Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mih", - "inverted_name": "Mixtec, Chayuco", - "name": "Chayuco Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mii", - "inverted_name": "Mixtec, Chigmecatitlán", - "name": "Chigmecatitlán Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mij", - "name": "Abar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mik", - "name": "Mikasuki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mil", - "inverted_name": "Mixtec, Peñoles", - "name": "Peñoles Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mim", - "inverted_name": "Mixtec, Alacatlatzala", - "name": "Alacatlatzala Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "min", - "name": "Minangkabau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mio", - "inverted_name": "Mixtec, Pinotepa Nacional", - "name": "Pinotepa Nacional Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mip", - "inverted_name": "Mixtec, Apasco-Apoala", - "name": "Apasco-Apoala Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "miq", - "name": "Mískito", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mir", - "inverted_name": "Mixe, Isthmus", - "name": "Isthmus Mixe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mis", - "name": "Uncoded languages", - "scope": "S", - "type": "S" - }, - { - "alpha_3": "mit", - "inverted_name": "Mixtec, Southern Puebla", - "name": "Southern Puebla Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "miu", - "inverted_name": "Mixtec, Cacaloxtepec", - "name": "Cacaloxtepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "miw", - "name": "Akoye", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mix", - "inverted_name": "Mixtec, Mixtepec", - "name": "Mixtepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "miy", - "inverted_name": "Mixtec, Ayutla", - "name": "Ayutla Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "miz", - "inverted_name": "Mixtec, Coatzospan", - "name": "Coatzospan Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjb", - "name": "Makalero", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjc", - "inverted_name": "Mixtec, San Juan Colorado", - "name": "San Juan Colorado Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjd", - "inverted_name": "Maidu, Northwest", - "name": "Northwest Maidu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mje", - "name": "Muskum", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mjg", - "name": "Tu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjh", - "name": "Mwera (Nyasa)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mji", - "name": "Kim Mun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjj", - "name": "Mawak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjk", - "name": "Matukar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjl", - "name": "Mandeali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjm", - "name": "Medebur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjn", - "name": "Ma (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjo", - "name": "Malankuravan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjp", - "name": "Malapandaram", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjq", - "name": "Malaryan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mjr", - "name": "Malavedan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjs", - "name": "Miship", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjt", - "name": "Sauria Paharia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mju", - "name": "Manna-Dora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjv", - "name": "Mannan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjw", - "name": "Karbi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjx", - "name": "Mahali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mjy", - "name": "Mahican", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mjz", - "name": "Majhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mka", - "name": "Mbre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkb", - "name": "Mal Paharia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkc", - "name": "Siliput", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "mk", - "alpha_3": "mkd", - "bibliographic": "mac", - "name": "Macedonian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mke", - "name": "Mawchi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkf", - "name": "Miya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkg", - "name": "Mak (China)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mki", - "name": "Dhatki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkj", - "name": "Mokilese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkk", - "name": "Byep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkl", - "name": "Mokole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkm", - "name": "Moklen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkn", - "inverted_name": "Malay, Kupang", - "name": "Kupang Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mko", - "name": "Mingang Doso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkp", - "name": "Moikodi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkq", - "inverted_name": "Miwok, Bay", - "name": "Bay Miwok", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mkr", - "name": "Malas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mks", - "inverted_name": "Mixtec, Silacayoapan", - "name": "Silacayoapan Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkt", - "name": "Vamale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mku", - "inverted_name": "Maninka, Konyanka", - "name": "Konyanka Maninka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkv", - "name": "Mafea", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkw", - "name": "Kituba (Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkx", - "inverted_name": "Manobo, Kinamiging", - "name": "Kinamiging Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mky", - "inverted_name": "Makian, East", - "name": "East Makian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mkz", - "name": "Makasae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mla", - "name": "Malo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlb", - "name": "Mbule", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlc", - "name": "Cao Lan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mle", - "name": "Manambu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlf", - "name": "Mal", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "mg", - "alpha_3": "mlg", - "name": "Malagasy", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "mlh", - "name": "Mape", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mli", - "name": "Malimpung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlj", - "name": "Miltu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlk", - "name": "Ilwana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mll", - "name": "Malua Bay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlm", - "name": "Mulam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mln", - "name": "Malango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlo", - "name": "Mlomp", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlp", - "name": "Bargam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlq", - "inverted_name": "Maninkakan, Western", - "name": "Western Maninkakan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlr", - "name": "Vame", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mls", - "name": "Masalit", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "mt", - "alpha_3": "mlt", - "name": "Maltese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlu", - "name": "To'abaita", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlv", - "name": "Motlav", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlw", - "name": "Moloko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlx", - "name": "Malfaxal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mlz", - "name": "Malaynon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mma", - "name": "Mama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmb", - "name": "Momina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmc", - "inverted_name": "Mazahua, Michoacán", - "name": "Michoacán Mazahua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmd", - "name": "Maonan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mme", - "name": "Mae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmf", - "name": "Mundat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmg", - "inverted_name": "Ambrym, North", - "name": "North Ambrym", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmh", - "name": "Mehináku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmi", - "name": "Musar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmj", - "name": "Majhwar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmk", - "name": "Mukha-Dora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mml", - "name": "Man Met", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmm", - "name": "Maii", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmn", - "name": "Mamanwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmo", - "inverted_name": "Buang, Mangga", - "name": "Mangga Buang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmp", - "name": "Siawi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmq", - "name": "Musak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmr", - "inverted_name": "Miao, Western Xiangxi", - "name": "Western Xiangxi Miao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmt", - "name": "Malalamai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmu", - "name": "Mmaala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmv", - "name": "Miriti", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mmw", - "name": "Emae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmx", - "name": "Madak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmy", - "name": "Migaama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mmz", - "name": "Mabaale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mna", - "name": "Mbula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnb", - "name": "Muna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnc", - "name": "Manchu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnd", - "name": "Mondé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mne", - "name": "Naba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnf", - "name": "Mundani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mng", - "inverted_name": "Mnong, Eastern", - "name": "Eastern Mnong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnh", - "name": "Mono (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mni", - "name": "Manipuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnj", - "name": "Munji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnk", - "name": "Mandinka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnl", - "name": "Tiale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnm", - "name": "Mapena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnn", - "inverted_name": "Mnong, Southern", - "name": "Southern Mnong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnp", - "inverted_name": "Chinese, Min Bei", - "name": "Min Bei Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnq", - "name": "Minriq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnr", - "name": "Mono (USA)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mns", - "name": "Mansi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnu", - "name": "Mer", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnv", - "name": "Rennell-Bellona", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnw", - "name": "Mon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnx", - "name": "Manikion", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mny", - "name": "Manyawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mnz", - "name": "Moni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "moa", - "name": "Mwan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "moc", - "name": "Mocoví", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mod", - "name": "Mobilian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "moe", - "name": "Innu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mog", - "name": "Mongondow", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "moh", - "name": "Mohawk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "moi", - "name": "Mboi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "moj", - "name": "Monzombo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mok", - "name": "Morori", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mom", - "name": "Mangue", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "mn", - "alpha_3": "mon", - "name": "Mongolian", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "moo", - "name": "Monom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mop", - "name": "Mopán Maya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "moq", - "name": "Mor (Bomberai Peninsula)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mor", - "name": "Moro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mos", - "name": "Mossi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mot", - "name": "Barí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mou", - "name": "Mogum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mov", - "name": "Mohave", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mow", - "name": "Moi (Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mox", - "name": "Molima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "moy", - "name": "Shekkacho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "moz", - "name": "Mukulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpa", - "name": "Mpoto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpb", - "name": "Malak Malak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpc", - "name": "Mangarrayi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpd", - "name": "Machinere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpe", - "name": "Majang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpg", - "name": "Marba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mph", - "name": "Maung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpi", - "name": "Mpade", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpj", - "name": "Martu Wangka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpk", - "name": "Mbara (Chad)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpl", - "inverted_name": "Watut, Middle", - "name": "Middle Watut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpm", - "inverted_name": "Mixtec, Yosondúa", - "name": "Yosondúa Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpn", - "name": "Mindiri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpo", - "name": "Miu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpp", - "name": "Migabac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpq", - "name": "Matís", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpr", - "name": "Vangunu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mps", - "name": "Dadibi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpt", - "name": "Mian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpu", - "name": "Makuráp", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpv", - "name": "Mungkip", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpw", - "name": "Mapidian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpx", - "name": "Misima-Panaeati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpy", - "name": "Mapia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mpz", - "name": "Mpi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqa", - "name": "Maba (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqb", - "name": "Mbuko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqc", - "name": "Mangole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqe", - "name": "Matepi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqf", - "name": "Momuna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqg", - "inverted_name": "Malay, Kota Bangun Kutai", - "name": "Kota Bangun Kutai Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqh", - "inverted_name": "Mixtec, Tlazoyaltepec", - "name": "Tlazoyaltepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqi", - "name": "Mariri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqj", - "name": "Mamasa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqk", - "inverted_name": "Manobo, Rajah Kabunsuwan", - "name": "Rajah Kabunsuwan Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mql", - "name": "Mbelime", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqm", - "inverted_name": "Marquesan, South", - "name": "South Marquesan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqn", - "name": "Moronene", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqo", - "name": "Modole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqp", - "name": "Manipa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqq", - "name": "Minokok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqr", - "name": "Mander", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqs", - "inverted_name": "Makian, West", - "name": "West Makian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqt", - "name": "Mok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqu", - "name": "Mandari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqv", - "name": "Mosimo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqw", - "name": "Murupi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqx", - "name": "Mamuju", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqy", - "name": "Manggarai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mqz", - "name": "Pano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mra", - "name": "Mlabri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrb", - "name": "Marino", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrc", - "name": "Maricopa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrd", - "inverted_name": "Magar, Western", - "name": "Western Magar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mre", - "name": "Martha's Vineyard Sign Language", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mrf", - "name": "Elseng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrg", - "name": "Mising", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrh", - "inverted_name": "Chin, Mara", - "name": "Mara Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "mi", - "alpha_3": "mri", - "bibliographic": "mao", - "name": "Maori", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrj", - "inverted_name": "Mari, Western", - "name": "Western Mari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrk", - "name": "Hmwaveke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrl", - "name": "Mortlockese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrm", - "name": "Merlav", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrn", - "name": "Cheke Holo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mro", - "name": "Mru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrp", - "name": "Morouas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrq", - "inverted_name": "Marquesan, North", - "name": "North Marquesan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrr", - "name": "Maria (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrs", - "name": "Maragus", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrt", - "name": "Marghi Central", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mru", - "name": "Mono (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrv", - "name": "Mangareva", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrw", - "name": "Maranao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrx", - "name": "Maremgi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mry", - "name": "Mandaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mrz", - "name": "Marind", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ms", - "alpha_3": "msa", - "bibliographic": "may", - "name": "Malay (macrolanguage)", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "msb", - "name": "Masbatenyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msc", - "inverted_name": "Maninka, Sankaran", - "name": "Sankaran Maninka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msd", - "name": "Yucatec Maya Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mse", - "name": "Musey", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msf", - "name": "Mekwei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msg", - "name": "Moraid", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msh", - "inverted_name": "Malagasy, Masikoro", - "name": "Masikoro Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msi", - "inverted_name": "Malay, Sabah", - "name": "Sabah Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msj", - "name": "Ma (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msk", - "name": "Mansaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msl", - "name": "Molof", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msm", - "inverted_name": "Manobo, Agusan", - "name": "Agusan Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msn", - "name": "Vurës", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mso", - "name": "Mombum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msp", - "name": "Maritsauá", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "msq", - "name": "Caac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msr", - "name": "Mongolian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mss", - "inverted_name": "Masela, West", - "name": "West Masela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msu", - "name": "Musom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msv", - "name": "Maslam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msw", - "name": "Mansoanka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msx", - "name": "Moresada", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msy", - "name": "Aruamu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "msz", - "name": "Momare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mta", - "inverted_name": "Manobo, Cotabato", - "name": "Cotabato Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtb", - "name": "Anyin Morofo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtc", - "name": "Munit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtd", - "name": "Mualang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mte", - "name": "Mono (Solomon Islands)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtf", - "name": "Murik (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtg", - "name": "Una", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mth", - "name": "Munggui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mti", - "name": "Maiwa (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtj", - "name": "Moskona", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtk", - "name": "Mbe'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtl", - "name": "Montol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtm", - "name": "Mator", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mtn", - "name": "Matagalpa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mto", - "inverted_name": "Mixe, Totontepec", - "name": "Totontepec Mixe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtp", - "name": "Wichí Lhamtés Nocten", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtq", - "name": "Muong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtr", - "name": "Mewari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mts", - "name": "Yora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtt", - "name": "Mota", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtu", - "inverted_name": "Mixtec, Tututepec", - "name": "Tututepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtv", - "name": "Asaro'o", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtw", - "inverted_name": "Binukidnon, Southern", - "name": "Southern Binukidnon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mtx", - "inverted_name": "Mixtec, Tidaá", - "name": "Tidaá Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mty", - "name": "Nabi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mua", - "name": "Mundang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mub", - "name": "Mubi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "muc", - "name": "Ajumbu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mud", - "inverted_name": "Aleut, Mednyj", - "name": "Mednyj Aleut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mue", - "name": "Media Lengua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mug", - "name": "Musgu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "muh", - "name": "Mündü", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mui", - "name": "Musi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "muj", - "name": "Mabire", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "muk", - "name": "Mugom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mul", - "name": "Multiple languages", - "scope": "S", - "type": "S" - }, - { - "alpha_3": "mum", - "name": "Maiwala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "muo", - "name": "Nyong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mup", - "name": "Malvi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "muq", - "inverted_name": "Miao, Eastern Xiangxi", - "name": "Eastern Xiangxi Miao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mur", - "name": "Murle", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mus", - "name": "Creek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mut", - "inverted_name": "Muria, Western", - "name": "Western Muria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "muu", - "name": "Yaaku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "muv", - "name": "Muthuvan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mux", - "name": "Bo-Ung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "muy", - "name": "Muyang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "muz", - "name": "Mursi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mva", - "name": "Manam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvb", - "name": "Mattole", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mvd", - "name": "Mamboru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mve", - "name": "Marwari (Pakistan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvf", - "inverted_name": "Mongolian, Peripheral", - "name": "Peripheral Mongolian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvg", - "inverted_name": "Mixtec, Yucuañe", - "name": "Yucuañe Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvh", - "name": "Mulgi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvi", - "name": "Miyako", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvk", - "name": "Mekmek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvl", - "name": "Mbara (Australia)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mvn", - "name": "Minaveha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvo", - "name": "Marovo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvp", - "name": "Duri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvq", - "name": "Moere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvr", - "name": "Marau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvs", - "name": "Massep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvt", - "name": "Mpotovoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvu", - "name": "Marfa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvv", - "inverted_name": "Murut, Tagal", - "name": "Tagal Murut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvw", - "name": "Machinga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvx", - "name": "Meoswar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvy", - "inverted_name": "Kohistani, Indus", - "name": "Indus Kohistani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mvz", - "name": "Mesqan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwa", - "name": "Mwatebu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwb", - "name": "Juwal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwc", - "name": "Are", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwe", - "name": "Mwera (Chimwera)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwf", - "name": "Murrinh-Patha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwg", - "name": "Aiklep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwh", - "name": "Mouk-Aria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwi", - "name": "Labo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwk", - "inverted_name": "Maninkakan, Kita", - "name": "Kita Maninkakan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwl", - "name": "Mirandese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwm", - "name": "Sar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwn", - "name": "Nyamwanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwo", - "inverted_name": "Maewo, Central", - "name": "Central Maewo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwp", - "name": "Kala Lagaw Ya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwq", - "inverted_name": "Chin, Mün", - "name": "Mün Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwr", - "name": "Marwari", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "mws", - "name": "Mwimbi-Muthambi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwt", - "name": "Moken", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwu", - "name": "Mittu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mwv", - "name": "Mentawai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mww", - "name": "Hmong Daw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mwz", - "name": "Moingi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxa", - "inverted_name": "Mixtec, Northwest Oaxaca", - "name": "Northwest Oaxaca Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxb", - "inverted_name": "Mixtec, Tezoatlán", - "name": "Tezoatlán Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxc", - "name": "Manyika", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxd", - "name": "Modang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxe", - "name": "Mele-Fila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxf", - "name": "Malgbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxg", - "name": "Mbangala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxh", - "name": "Mvuba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxi", - "name": "Mozarabic", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "mxj", - "name": "Miju-Mishmi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxk", - "name": "Monumbo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxl", - "inverted_name": "Gbe, Maxi", - "name": "Maxi Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxm", - "name": "Meramera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxn", - "name": "Moi (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxo", - "name": "Mbowe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxp", - "inverted_name": "Mixe, Tlahuitoltepec", - "name": "Tlahuitoltepec Mixe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxq", - "inverted_name": "Mixe, Juquila", - "name": "Juquila Mixe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxr", - "name": "Murik (Malaysia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxs", - "inverted_name": "Mixtec, Huitepec", - "name": "Huitepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxt", - "inverted_name": "Mixtec, Jamiltepec", - "name": "Jamiltepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxu", - "name": "Mada (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxv", - "inverted_name": "Mixtec, Metlatónoc", - "name": "Metlatónoc Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxw", - "name": "Namo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxx", - "name": "Mahou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxy", - "inverted_name": "Mixtec, Southeastern Nochixtlán", - "name": "Southeastern Nochixtlán Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mxz", - "inverted_name": "Masela, Central", - "name": "Central Masela", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "my", - "alpha_3": "mya", - "bibliographic": "bur", - "name": "Burmese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myb", - "name": "Mbay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myc", - "name": "Mayeka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mye", - "name": "Myene", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myf", - "name": "Bambassi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myg", - "name": "Manta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myh", - "name": "Makah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myj", - "name": "Mangayat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myk", - "inverted_name": "Senoufo, Mamara", - "name": "Mamara Senoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myl", - "name": "Moma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mym", - "name": "Me'en", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myo", - "name": "Anfillo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myp", - "name": "Pirahã", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myr", - "name": "Muniche", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mys", - "name": "Mesmes", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "myu", - "name": "Mundurukú", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myv", - "name": "Erzya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myw", - "name": "Muyuw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myx", - "name": "Masaaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myy", - "name": "Macuna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "myz", - "inverted_name": "Mandaic, Classical", - "name": "Classical Mandaic", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "mza", - "inverted_name": "Mixtec, Santa María Zacatepec", - "name": "Santa María Zacatepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzb", - "name": "Tumzabt", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzc", - "name": "Madagascar Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzd", - "name": "Malimba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mze", - "name": "Morawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzg", - "name": "Monastic Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzh", - "name": "Wichí Lhamtés Güisnay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzi", - "inverted_name": "Mazatec, Ixcatlán", - "name": "Ixcatlán Mazatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzj", - "name": "Manya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzk", - "inverted_name": "Mambila, Nigeria", - "name": "Nigeria Mambila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzl", - "inverted_name": "Mixe, Mazatlán", - "name": "Mazatlán Mixe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzm", - "name": "Mumuye", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzn", - "name": "Mazanderani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzo", - "name": "Matipuhy", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "mzp", - "name": "Movima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzq", - "name": "Mori Atas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzr", - "name": "Marúbo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzs", - "name": "Macanese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzt", - "name": "Mintil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzu", - "name": "Inapang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzv", - "name": "Manza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzw", - "name": "Deg", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzx", - "name": "Mawayana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzy", - "name": "Mozambican Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "mzz", - "name": "Maiadomu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "naa", - "name": "Namla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nab", - "inverted_name": "Nambikuára, Southern", - "name": "Southern Nambikuára", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nac", - "name": "Narak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nae", - "name": "Naka'ela", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "naf", - "name": "Nabak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nag", - "name": "Naga Pidgin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "naj", - "name": "Nalu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nak", - "name": "Nakanai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nal", - "name": "Nalik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nam", - "name": "Ngan'gityemerri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nan", - "inverted_name": "Chinese, Min Nan", - "name": "Min Nan Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nao", - "name": "Naaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nap", - "name": "Neapolitan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "naq", - "name": "Khoekhoe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nar", - "name": "Iguta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nas", - "name": "Naasioi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nat", - "name": "Ca̱hungwa̱rya̱", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "na", - "alpha_3": "nau", - "name": "Nauru", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "nv", - "alpha_3": "nav", - "name": "Navajo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "naw", - "name": "Nawuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nax", - "name": "Nakwi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nay", - "name": "Ngarrindjeri", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "naz", - "inverted_name": "Nahuatl, Coatepec", - "name": "Coatepec Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nba", - "name": "Nyemba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbb", - "name": "Ndoe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbc", - "inverted_name": "Naga, Chang", - "name": "Chang Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbd", - "name": "Ngbinda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbe", - "inverted_name": "Naga, Konyak", - "name": "Konyak Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbg", - "name": "Nagarchal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbh", - "name": "Ngamo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbi", - "inverted_name": "Naga, Mao", - "name": "Mao Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbj", - "name": "Ngarinyman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbk", - "name": "Nake", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "nr", - "alpha_3": "nbl", - "inverted_name": "Ndebele, South", - "name": "South Ndebele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbm", - "name": "Ngbaka Ma'bo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbn", - "name": "Kuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbo", - "name": "Nkukoli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbp", - "name": "Nnam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbq", - "name": "Nggem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbr", - "name": "Numana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbs", - "name": "Namibian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbt", - "name": "Na", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbu", - "inverted_name": "Naga, Rongmei", - "name": "Rongmei Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbv", - "name": "Ngamambo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nbw", - "inverted_name": "Ngbandi, Southern", - "name": "Southern Ngbandi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nby", - "name": "Ningera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nca", - "name": "Iyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncb", - "inverted_name": "Nicobarese, Central", - "name": "Central Nicobarese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncc", - "name": "Ponam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncd", - "name": "Nachering", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nce", - "name": "Yale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncf", - "name": "Notsi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncg", - "name": "Nisga'a", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nch", - "inverted_name": "Nahuatl, Central Huasteca", - "name": "Central Huasteca Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nci", - "inverted_name": "Nahuatl, Classical", - "name": "Classical Nahuatl", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ncj", - "inverted_name": "Nahuatl, Northern Puebla", - "name": "Northern Puebla Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nck", - "name": "Na-kara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncl", - "inverted_name": "Nahuatl, Michoacán", - "name": "Michoacán Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncm", - "name": "Nambo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncn", - "name": "Nauna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nco", - "name": "Sibe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncq", - "inverted_name": "Katang, Northern", - "name": "Northern Katang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncr", - "name": "Ncane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncs", - "name": "Nicaraguan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nct", - "inverted_name": "Naga, Chothe", - "name": "Chothe Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncu", - "name": "Chumburung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncx", - "inverted_name": "Nahuatl, Central Puebla", - "name": "Central Puebla Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ncz", - "name": "Natchez", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nda", - "name": "Ndasa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndb", - "name": "Kenswei Nsei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndc", - "name": "Ndau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndd", - "name": "Nde-Nsele-Nta", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "nd", - "alpha_3": "nde", - "inverted_name": "Ndebele, North", - "name": "North Ndebele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndf", - "name": "Nadruvian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ndg", - "name": "Ndengereko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndh", - "name": "Ndali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndi", - "name": "Samba Leko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndj", - "name": "Ndamba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndk", - "name": "Ndaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndl", - "name": "Ndolo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndm", - "name": "Ndam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndn", - "name": "Ngundi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ng", - "alpha_3": "ndo", - "name": "Ndonga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndp", - "name": "Ndo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndq", - "name": "Ndombe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndr", - "name": "Ndoola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nds", - "inverted_name": "German, Low", - "name": "Low German", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndt", - "name": "Ndunga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndu", - "name": "Dugun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndv", - "name": "Ndut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndw", - "name": "Ndobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndx", - "name": "Nduga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndy", - "name": "Lutos", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ndz", - "name": "Ndogo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nea", - "inverted_name": "Ngad'a, Eastern", - "name": "Eastern Ngad'a", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "neb", - "name": "Toura (Côte d'Ivoire)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nec", - "name": "Nedebang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ned", - "name": "Nde-Gbite", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nee", - "name": "Nêlêmwa-Nixumwak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nef", - "name": "Nefamese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "neg", - "name": "Negidal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "neh", - "name": "Nyenkha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nei", - "inverted_name": "Hittite, Neo-", - "name": "Neo-Hittite", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "nej", - "name": "Neko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nek", - "name": "Neku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nem", - "name": "Nemi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nen", - "name": "Nengone", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "neo", - "name": "Ná-Meo", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ne", - "alpha_3": "nep", - "name": "Nepali (macrolanguage)", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "neq", - "inverted_name": "Mixe, North Central", - "name": "North Central Mixe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ner", - "name": "Yahadian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nes", - "inverted_name": "Kinnauri, Bhoti", - "name": "Bhoti Kinnauri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "net", - "name": "Nete", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "neu", - "name": "Neo", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "nev", - "name": "Nyaheun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "new", - "name": "Newari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nex", - "name": "Neme", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ney", - "name": "Neyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nez", - "name": "Nez Perce", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nfa", - "name": "Dhao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nfd", - "name": "Ahwai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nfl", - "name": "Ayiwo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nfr", - "name": "Nafaanra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nfu", - "name": "Mfumte", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nga", - "name": "Ngbaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngb", - "inverted_name": "Ngbandi, Northern", - "name": "Northern Ngbandi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngc", - "name": "Ngombe (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngd", - "name": "Ngando (Central African Republic)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nge", - "name": "Ngemba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngg", - "name": "Ngbaka Manza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngh", - "name": "Nǁng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngi", - "name": "Ngizim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngj", - "name": "Ngie", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngk", - "name": "Dalabon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngl", - "name": "Lomwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngm", - "name": "Ngatik Men's Creole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngn", - "name": "Ngwo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngp", - "name": "Ngulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngq", - "name": "Ngurimi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngr", - "name": "Engdewu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngs", - "name": "Gvoko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngt", - "name": "Kriang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngu", - "inverted_name": "Nahuatl, Guerrero", - "name": "Guerrero Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngv", - "name": "Nagumi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ngw", - "name": "Ngwaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngx", - "name": "Nggwahyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngy", - "name": "Tibea", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ngz", - "name": "Ngungwel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nha", - "name": "Nhanda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhb", - "name": "Beng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhc", - "inverted_name": "Nahuatl, Tabasco", - "name": "Tabasco Nahuatl", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nhd", - "name": "Chiripá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhe", - "inverted_name": "Nahuatl, Eastern Huasteca", - "name": "Eastern Huasteca Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhf", - "name": "Nhuwala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhg", - "inverted_name": "Nahuatl, Tetelcingo", - "name": "Tetelcingo Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhh", - "name": "Nahari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhi", - "inverted_name": "Nahuatl, Zacatlán-Ahuacatlán-Tepetzintla", - "name": "Zacatlán-Ahuacatlán-Tepetzintla Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhk", - "inverted_name": "Nahuatl, Isthmus-Cosoleacaque", - "name": "Isthmus-Cosoleacaque Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhm", - "inverted_name": "Nahuatl, Morelos", - "name": "Morelos Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhn", - "inverted_name": "Nahuatl, Central", - "name": "Central Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nho", - "name": "Takuu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhp", - "inverted_name": "Nahuatl, Isthmus-Pajapan", - "name": "Isthmus-Pajapan Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhq", - "inverted_name": "Nahuatl, Huaxcaleca", - "name": "Huaxcaleca Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhr", - "name": "Naro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nht", - "inverted_name": "Nahuatl, Ometepec", - "name": "Ometepec Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhu", - "name": "Noone", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhv", - "inverted_name": "Nahuatl, Temascaltepec", - "name": "Temascaltepec Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhw", - "inverted_name": "Nahuatl, Western Huasteca", - "name": "Western Huasteca Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhx", - "inverted_name": "Nahuatl, Isthmus-Mecayapan", - "name": "Isthmus-Mecayapan Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhy", - "inverted_name": "Nahuatl, Northern Oaxaca", - "name": "Northern Oaxaca Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nhz", - "inverted_name": "Nahuatl, Santa María La Alta", - "name": "Santa María La Alta Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nia", - "name": "Nias", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nib", - "name": "Nakame", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nid", - "name": "Ngandi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nie", - "name": "Niellim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nif", - "name": "Nek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nig", - "name": "Ngalakgan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nih", - "name": "Nyiha (Tanzania)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nii", - "name": "Nii", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nij", - "name": "Ngaju", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nik", - "inverted_name": "Nicobarese, Southern", - "name": "Southern Nicobarese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nil", - "name": "Nila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nim", - "name": "Nilamba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nin", - "name": "Ninzo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nio", - "name": "Nganasan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "niq", - "name": "Nandi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nir", - "name": "Nimboran", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nis", - "name": "Nimi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nit", - "inverted_name": "Kolami, Southeastern", - "name": "Southeastern Kolami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "niu", - "name": "Niuean", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "niv", - "name": "Gilyak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "niw", - "name": "Nimo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nix", - "name": "Hema", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "niy", - "name": "Ngiti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "niz", - "name": "Ningil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nja", - "name": "Nzanyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njb", - "inverted_name": "Naga, Nocte", - "name": "Nocte Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njd", - "name": "Ndonde Hamba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njh", - "inverted_name": "Naga, Lotha", - "name": "Lotha Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nji", - "name": "Gudanji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njj", - "name": "Njen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njl", - "name": "Njalgulgule", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njm", - "inverted_name": "Naga, Angami", - "name": "Angami Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njn", - "inverted_name": "Naga, Liangmai", - "name": "Liangmai Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njo", - "inverted_name": "Naga, Ao", - "name": "Ao Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njr", - "name": "Njerep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njs", - "name": "Nisa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njt", - "name": "Ndyuka-Trio Pidgin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nju", - "name": "Ngadjunmaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njx", - "name": "Kunyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njy", - "name": "Njyem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "njz", - "name": "Nyishi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nka", - "name": "Nkoya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkb", - "inverted_name": "Naga, Khoibu", - "name": "Khoibu Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkc", - "name": "Nkongho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkd", - "name": "Koireng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nke", - "name": "Duke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkf", - "inverted_name": "Naga, Inpui", - "name": "Inpui Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkg", - "name": "Nekgini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkh", - "inverted_name": "Naga, Khezha", - "name": "Khezha Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nki", - "inverted_name": "Naga, Thangal", - "name": "Thangal Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkj", - "name": "Nakai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkk", - "name": "Nokuku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkm", - "name": "Namat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkn", - "name": "Nkangala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nko", - "name": "Nkonya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkp", - "name": "Niuatoputapu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nkq", - "name": "Nkami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkr", - "name": "Nukuoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nks", - "inverted_name": "Asmat, North", - "name": "North Asmat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkt", - "name": "Nyika (Tanzania)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nku", - "inverted_name": "Kulango, Bouna", - "name": "Bouna Kulango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkv", - "name": "Nyika (Malawi and Zambia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkw", - "name": "Nkutu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkx", - "name": "Nkoroo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nkz", - "name": "Nkari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nla", - "name": "Ngombale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlc", - "name": "Nalca", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "nl", - "alpha_3": "nld", - "bibliographic": "dut", - "name": "Dutch", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nle", - "inverted_name": "Nyala, East", - "name": "East Nyala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlg", - "name": "Gela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nli", - "name": "Grangali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlj", - "name": "Nyali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlk", - "inverted_name": "Yali, Ninia", - "name": "Ninia Yali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nll", - "name": "Nihali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlm", - "name": "Mankiyali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlo", - "name": "Ngul", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlq", - "inverted_name": "Naga, Lao", - "name": "Lao Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlu", - "name": "Nchumbulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlv", - "inverted_name": "Nahuatl, Orizaba", - "name": "Orizaba Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlw", - "name": "Walangama", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nlx", - "name": "Nahali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nly", - "name": "Nyamal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nlz", - "name": "Nalögo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nma", - "inverted_name": "Naga, Maram", - "name": "Maram Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmb", - "inverted_name": "Nambas, Big", - "name": "Big Nambas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmc", - "name": "Ngam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmd", - "name": "Ndumu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nme", - "inverted_name": "Naga, Mzieme", - "name": "Mzieme Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmf", - "inverted_name": "Naga, Tangkhul (India)", - "name": "Tangkhul Naga (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmg", - "name": "Kwasio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmh", - "inverted_name": "Naga, Monsang", - "name": "Monsang Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmi", - "name": "Nyam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmj", - "name": "Ngombe (Central African Republic)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmk", - "name": "Namakura", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nml", - "name": "Ndemli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmm", - "name": "Manangba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmn", - "name": "ǃXóõ", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmo", - "inverted_name": "Naga, Moyon", - "name": "Moyon Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmp", - "name": "Nimanbur", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nmq", - "name": "Nambya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmr", - "name": "Nimbari", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nms", - "name": "Letemboi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmt", - "name": "Namonuito", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmu", - "inverted_name": "Maidu, Northeast", - "name": "Northeast Maidu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmv", - "name": "Ngamini", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nmw", - "name": "Nimoa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmx", - "name": "Nama (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmy", - "name": "Namuyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nmz", - "name": "Nawdm", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nna", - "name": "Nyangumarta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnb", - "name": "Nande", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnc", - "name": "Nancere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnd", - "inverted_name": "Ambae, West", - "name": "West Ambae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nne", - "name": "Ngandyera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnf", - "name": "Ngaing", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nng", - "inverted_name": "Naga, Maring", - "name": "Maring Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnh", - "name": "Ngiemboon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nni", - "inverted_name": "Nuaulu, North", - "name": "North Nuaulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnj", - "name": "Nyangatom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnk", - "name": "Nankina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnl", - "inverted_name": "Naga, Northern Rengma", - "name": "Northern Rengma Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnm", - "name": "Namia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnn", - "name": "Ngete", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "nn", - "alpha_3": "nno", - "name": "Norwegian Nynorsk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnp", - "inverted_name": "Naga, Wancho", - "name": "Wancho Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnq", - "name": "Ngindo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnr", - "name": "Narungga", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nnt", - "name": "Nanticoke", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nnu", - "name": "Dwang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nnv", - "name": "Nugunu (Australia)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nnw", - "inverted_name": "Nuni, Southern", - "name": "Southern Nuni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nny", - "name": "Nyangga", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nnz", - "name": "Nda'nda'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "noa", - "name": "Woun Meu", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "nb", - "alpha_3": "nob", - "name": "Norwegian Bokmål", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "noc", - "name": "Nuk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nod", - "inverted_name": "Thai, Northern", - "name": "Northern Thai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "noe", - "name": "Nimadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nof", - "name": "Nomane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nog", - "name": "Nogai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "noh", - "name": "Nomu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "noi", - "name": "Noiri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "noj", - "name": "Nonuya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nok", - "name": "Nooksack", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nol", - "name": "Nomlaki", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nom", - "name": "Nocamán", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "non", - "inverted_name": "Norse, Old", - "name": "Old Norse", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "nop", - "name": "Numanggang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "noq", - "name": "Ngongo", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "no", - "alpha_3": "nor", - "name": "Norwegian", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "nos", - "inverted_name": "Nisu, Eastern", - "name": "Eastern Nisu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "not", - "name": "Nomatsiguenga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nou", - "name": "Ewage-Notu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nov", - "name": "Novial", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "now", - "name": "Nyambo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "noy", - "name": "Noy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "noz", - "name": "Nayi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "npa", - "name": "Nar Phu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "npb", - "name": "Nupbikha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "npg", - "inverted_name": "Naga, Ponyo-Gongwang", - "name": "Ponyo-Gongwang Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nph", - "inverted_name": "Naga, Phom", - "name": "Phom Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "npi", - "name": "Nepali (individual language)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "npl", - "inverted_name": "Nahuatl, Southeastern Puebla", - "name": "Southeastern Puebla Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "npn", - "name": "Mondropolon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "npo", - "inverted_name": "Naga, Pochuri", - "name": "Pochuri Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nps", - "name": "Nipsan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "npu", - "inverted_name": "Naga, Puimei", - "name": "Puimei Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "npx", - "name": "Noipx", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "npy", - "name": "Napu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nqg", - "inverted_name": "Nago, Southern", - "name": "Southern Nago", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nqk", - "inverted_name": "Ede Nago, Kura", - "name": "Kura Ede Nago", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nql", - "name": "Ngendelengo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nqm", - "name": "Ndom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nqn", - "name": "Nen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nqo", - "name": "N'Ko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nqq", - "inverted_name": "Naga, Kyan-Karyaw", - "name": "Kyan-Karyaw Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nqt", - "name": "Nteng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nqy", - "inverted_name": "Naga, Akyaung Ari", - "name": "Akyaung Ari Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nra", - "name": "Ngom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nrb", - "name": "Nara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nrc", - "name": "Noric", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "nre", - "inverted_name": "Naga, Southern Rengma", - "name": "Southern Rengma Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nrf", - "name": "Jèrriais", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nrg", - "name": "Narango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nri", - "inverted_name": "Naga, Chokri", - "name": "Chokri Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nrk", - "name": "Ngarla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nrl", - "name": "Ngarluma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nrm", - "name": "Narom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nrn", - "name": "Norn", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nrp", - "inverted_name": "Picene, North", - "name": "North Picene", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "nrr", - "name": "Norra", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nrt", - "inverted_name": "Kalapuya, Northern", - "name": "Northern Kalapuya", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nru", - "name": "Narua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nrx", - "name": "Ngurmbur", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nrz", - "name": "Lala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsa", - "inverted_name": "Naga, Sangtam", - "name": "Sangtam Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsb", - "name": "Lower Nossob", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nsc", - "name": "Nshi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsd", - "inverted_name": "Nisu, Southern", - "name": "Southern Nisu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nse", - "name": "Nsenga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsf", - "inverted_name": "Nisu, Northwestern", - "name": "Northwestern Nisu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsg", - "name": "Ngasa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsh", - "name": "Ngoshie", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsi", - "name": "Nigerian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsk", - "name": "Naskapi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsl", - "name": "Norwegian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsm", - "inverted_name": "Naga, Sumi", - "name": "Sumi Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsn", - "name": "Nehan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nso", - "name": "Pedi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsp", - "name": "Nepalese Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsq", - "inverted_name": "Miwok, Northern Sierra", - "name": "Northern Sierra Miwok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsr", - "name": "Maritime Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nss", - "name": "Nali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nst", - "inverted_name": "Naga, Tase", - "name": "Tase Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsu", - "inverted_name": "Nahuatl, Sierra Negra", - "name": "Sierra Negra Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsv", - "inverted_name": "Nisu, Southwestern", - "name": "Southwestern Nisu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsw", - "name": "Navut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsx", - "name": "Nsongo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsy", - "name": "Nasal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nsz", - "name": "Nisenan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ntd", - "inverted_name": "Tidung, Northern", - "name": "Northern Tidung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nte", - "name": "Nathembo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ntg", - "name": "Ngantangarra", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nti", - "name": "Natioro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ntj", - "name": "Ngaanyatjarra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ntk", - "name": "Ikoma-Nata-Isenye", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ntm", - "name": "Nateni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nto", - "name": "Ntomba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ntp", - "inverted_name": "Tepehuan, Northern", - "name": "Northern Tepehuan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ntr", - "name": "Delo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ntu", - "name": "Natügu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ntw", - "name": "Nottoway", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ntx", - "inverted_name": "Naga, Tangkhul (Myanmar)", - "name": "Tangkhul Naga (Myanmar)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nty", - "name": "Mantsi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ntz", - "name": "Natanzi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nua", - "name": "Yuanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuc", - "name": "Nukuini", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nud", - "name": "Ngala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nue", - "name": "Ngundu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuf", - "name": "Nusu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nug", - "name": "Nungali", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nuh", - "name": "Ndunda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nui", - "name": "Ngumbi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuj", - "name": "Nyole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuk", - "name": "Nuu-chah-nulth", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nul", - "name": "Nusa Laut", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "num", - "name": "Niuafo'ou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nun", - "name": "Anong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuo", - "name": "Nguôn", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nup", - "name": "Nupe-Nupe-Tako", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuq", - "name": "Nukumanu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nur", - "name": "Nukuria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nus", - "name": "Nuer", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nut", - "name": "Nung (Viet Nam)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuu", - "name": "Ngbundu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuv", - "inverted_name": "Nuni, Northern", - "name": "Northern Nuni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuw", - "name": "Nguluwan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nux", - "name": "Mehek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuy", - "name": "Nunggubuyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nuz", - "inverted_name": "Nahuatl, Tlamacazapa", - "name": "Tlamacazapa Nahuatl", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nvh", - "name": "Nasarian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nvm", - "name": "Namiae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nvo", - "name": "Nyokon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nwa", - "name": "Nawathinehena", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nwb", - "name": "Nyabwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nwc", - "inverted_name": "Newari, Classical", - "name": "Classical Newari", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "nwe", - "name": "Ngwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nwg", - "name": "Ngayawung", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nwi", - "inverted_name": "Tanna, Southwest", - "name": "Southwest Tanna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nwm", - "name": "Nyamusa-Molo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nwo", - "name": "Nauo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nwr", - "name": "Nawaru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nww", - "name": "Ndwewe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nwx", - "inverted_name": "Newar, Middle", - "name": "Middle Newar", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "nwy", - "name": "Nottoway-Meherrin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nxa", - "name": "Nauete", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nxd", - "name": "Ngando (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nxe", - "name": "Nage", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nxg", - "name": "Ngad'a", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nxi", - "name": "Nindi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nxk", - "inverted_name": "Naga, Koki", - "name": "Koki Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nxl", - "inverted_name": "Nuaulu, South", - "name": "South Nuaulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nxm", - "name": "Numidian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "nxn", - "name": "Ngawun", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nxo", - "name": "Ndambomo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nxq", - "name": "Naxi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nxr", - "name": "Ninggerum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nxx", - "name": "Nafri", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ny", - "alpha_3": "nya", - "name": "Nyanja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyb", - "name": "Nyangbo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyc", - "name": "Nyanga-li", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyd", - "name": "Nyore", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nye", - "name": "Nyengo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyf", - "name": "Giryama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyg", - "name": "Nyindu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyh", - "name": "Nyikina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyi", - "name": "Ama (Sudan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyj", - "name": "Nyanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyk", - "name": "Nyaneka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyl", - "name": "Nyeu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nym", - "name": "Nyamwezi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyn", - "name": "Nyankole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyo", - "name": "Nyoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyp", - "name": "Nyang'i", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nyq", - "name": "Nayini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyr", - "name": "Nyiha (Malawi)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nys", - "name": "Nyungar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyt", - "name": "Nyawaygi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nyu", - "name": "Nyungwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyv", - "name": "Nyulnyul", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nyw", - "name": "Nyaw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nyx", - "name": "Nganyaywana", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "nyy", - "name": "Nyakyusa-Ngonde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nza", - "inverted_name": "Mbembe, Tigon", - "name": "Tigon Mbembe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nzb", - "name": "Njebi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nzd", - "name": "Nzadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nzi", - "name": "Nzima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nzk", - "name": "Nzakara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nzm", - "inverted_name": "Naga, Zeme", - "name": "Zeme Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nzs", - "name": "New Zealand Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nzu", - "name": "Teke-Nzikou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nzy", - "name": "Nzakambay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "nzz", - "inverted_name": "Dogon, Nanga Dama", - "name": "Nanga Dama Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oaa", - "name": "Orok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oac", - "name": "Oroch", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oar", - "inverted_name": "Aramaic, Old (up to 700 BCE)", - "name": "Old Aramaic (up to 700 BCE)", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "oav", - "inverted_name": "Avar, Old", - "name": "Old Avar", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "obi", - "name": "Obispeño", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "obk", - "inverted_name": "Bontok, Southern", - "name": "Southern Bontok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "obl", - "name": "Oblo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "obm", - "name": "Moabite", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "obo", - "inverted_name": "Manobo, Obo", - "name": "Obo Manobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "obr", - "inverted_name": "Burmese, Old", - "name": "Old Burmese", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "obt", - "inverted_name": "Breton, Old", - "name": "Old Breton", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "obu", - "name": "Obulom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oca", - "name": "Ocaina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "och", - "inverted_name": "Chinese, Old", - "name": "Old Chinese", - "scope": "I", - "type": "A" - }, - { - "alpha_2": "oc", - "alpha_3": "oci", - "name": "Occitan (post 1500)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ocm", - "inverted_name": "Cham, Old", - "name": "Old Cham", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "oco", - "inverted_name": "Cornish, Old", - "name": "Old Cornish", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ocu", - "inverted_name": "Matlatzinca, Atzingo", - "name": "Atzingo Matlatzinca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oda", - "name": "Odut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "odk", - "name": "Od", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "odt", - "inverted_name": "Dutch, Old", - "name": "Old Dutch", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "odu", - "name": "Odual", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ofo", - "name": "Ofo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ofs", - "inverted_name": "Frisian, Old", - "name": "Old Frisian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ofu", - "name": "Efutop", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ogb", - "name": "Ogbia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ogc", - "name": "Ogbah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oge", - "inverted_name": "Georgian, Old", - "name": "Old Georgian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ogg", - "name": "Ogbogolo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ogo", - "name": "Khana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ogu", - "name": "Ogbronuagum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oht", - "inverted_name": "Hittite, Old", - "name": "Old Hittite", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "ohu", - "inverted_name": "Hungarian, Old", - "name": "Old Hungarian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "oia", - "name": "Oirata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oie", - "name": "Okolie", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oin", - "inverted_name": "One, Inebu", - "name": "Inebu One", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ojb", - "inverted_name": "Ojibwa, Northwestern", - "name": "Northwestern Ojibwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ojc", - "inverted_name": "Ojibwa, Central", - "name": "Central Ojibwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ojg", - "inverted_name": "Ojibwa, Eastern", - "name": "Eastern Ojibwa", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "oj", - "alpha_3": "oji", - "name": "Ojibwa", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "ojp", - "inverted_name": "Japanese, Old", - "name": "Old Japanese", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ojs", - "inverted_name": "Ojibwa, Severn", - "name": "Severn Ojibwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ojv", - "name": "Ontong Java", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ojw", - "inverted_name": "Ojibwa, Western", - "name": "Western Ojibwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oka", - "name": "Okanagan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "okb", - "name": "Okobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "okc", - "name": "Kobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "okd", - "name": "Okodia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oke", - "name": "Okpe (Southwestern Edo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "okg", - "name": "Koko Babangk", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "okh", - "name": "Koresh-e Rostam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oki", - "name": "Okiek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "okj", - "name": "Oko-Juwoi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "okk", - "inverted_name": "One, Kwamtim", - "name": "Kwamtim One", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "okl", - "inverted_name": "Kentish Sign Language, Old", - "name": "Old Kentish Sign Language", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "okm", - "inverted_name": "Korean, Middle (10th-16th cent.)", - "name": "Middle Korean (10th-16th cent.)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "okn", - "name": "Oki-No-Erabu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oko", - "inverted_name": "Korean, Old (3rd-9th cent.)", - "name": "Old Korean (3rd-9th cent.)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "okr", - "name": "Kirike", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oks", - "name": "Oko-Eni-Osayen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oku", - "name": "Oku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "okv", - "name": "Orokaiva", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "okx", - "name": "Okpe (Northwestern Edo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "okz", - "inverted_name": "Khmer, Old", - "name": "Old Khmer", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ola", - "name": "Walungge", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "old", - "name": "Mochi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ole", - "name": "Olekha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "olk", - "name": "Olkol", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "olm", - "name": "Oloma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "olo", - "name": "Livvi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "olr", - "name": "Olrat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "olt", - "inverted_name": "Lithuanian, Old", - "name": "Old Lithuanian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "olu", - "name": "Kuvale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oma", - "name": "Omaha-Ponca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "omb", - "inverted_name": "Ambae, East", - "name": "East Ambae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "omc", - "name": "Mochica", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "omg", - "name": "Omagua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "omi", - "name": "Omi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "omk", - "name": "Omok", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "oml", - "name": "Ombo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "omn", - "name": "Minoan", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "omo", - "name": "Utarmbung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "omp", - "inverted_name": "Manipuri, Old", - "name": "Old Manipuri", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "omr", - "inverted_name": "Marathi, Old", - "name": "Old Marathi", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "omt", - "name": "Omotik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "omu", - "name": "Omurano", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "omw", - "inverted_name": "Tairora, South", - "name": "South Tairora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "omx", - "inverted_name": "Mon, Old", - "name": "Old Mon", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "omy", - "inverted_name": "Malay, Old", - "name": "Old Malay", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ona", - "name": "Ona", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "onb", - "name": "Lingao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "one", - "name": "Oneida", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ong", - "name": "Olo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oni", - "name": "Onin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "onj", - "name": "Onjob", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "onk", - "inverted_name": "One, Kabore", - "name": "Kabore One", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "onn", - "name": "Onobasulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ono", - "name": "Onondaga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "onp", - "name": "Sartang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "onr", - "inverted_name": "One, Northern", - "name": "Northern One", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ons", - "name": "Ono", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ont", - "name": "Ontenu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "onu", - "name": "Unua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "onw", - "inverted_name": "Nubian, Old", - "name": "Old Nubian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "onx", - "name": "Onin Based Pidgin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ood", - "name": "Tohono O'odham", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oog", - "name": "Ong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oon", - "name": "Önge", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oor", - "name": "Oorlams", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oos", - "inverted_name": "Ossetic, Old", - "name": "Old Ossetic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "opa", - "name": "Okpamheri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "opk", - "name": "Kopkaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "opm", - "name": "Oksapmin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "opo", - "name": "Opao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "opt", - "name": "Opata", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "opy", - "name": "Ofayé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ora", - "name": "Oroha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "orc", - "name": "Orma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ore", - "name": "Orejón", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "org", - "name": "Oring", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "orh", - "name": "Oroqen", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "or", - "alpha_3": "ori", - "name": "Oriya (macrolanguage)", - "scope": "M", - "type": "L" - }, - { - "alpha_2": "om", - "alpha_3": "orm", - "name": "Oromo", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "orn", - "name": "Orang Kanaq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oro", - "name": "Orokolo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "orr", - "name": "Oruma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ors", - "name": "Orang Seletar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ort", - "inverted_name": "Oriya, Adivasi", - "name": "Adivasi Oriya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oru", - "name": "Ormuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "orv", - "inverted_name": "Russian, Old", - "name": "Old Russian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "orw", - "name": "Oro Win", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "orx", - "name": "Oro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ory", - "name": "Odia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "orz", - "name": "Ormu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "osa", - "name": "Osage", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "osc", - "name": "Oscan", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "osi", - "name": "Osing", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "osn", - "inverted_name": "Sundanese, Old", - "name": "Old Sundanese", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "oso", - "name": "Ososo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "osp", - "inverted_name": "Spanish, Old", - "name": "Old Spanish", - "scope": "I", - "type": "H" - }, - { - "alpha_2": "os", - "alpha_3": "oss", - "name": "Ossetian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ost", - "name": "Osatu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "osu", - "inverted_name": "One, Southern", - "name": "Southern One", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "osx", - "inverted_name": "Saxon, Old", - "name": "Old Saxon", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "ota", - "inverted_name": "Turkish, Ottoman (1500-1928)", - "name": "Ottoman Turkish (1500-1928)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "otb", - "inverted_name": "Tibetan, Old", - "name": "Old Tibetan", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "otd", - "name": "Ot Danum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ote", - "inverted_name": "Otomi, Mezquital", - "name": "Mezquital Otomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oti", - "name": "Oti", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "otk", - "inverted_name": "Turkish, Old", - "name": "Old Turkish", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "otl", - "inverted_name": "Otomi, Tilapa", - "name": "Tilapa Otomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "otm", - "inverted_name": "Otomi, Eastern Highland", - "name": "Eastern Highland Otomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "otn", - "inverted_name": "Otomi, Tenango", - "name": "Tenango Otomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "otq", - "inverted_name": "Otomi, Querétaro", - "name": "Querétaro Otomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "otr", - "name": "Otoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ots", - "inverted_name": "Otomi, Estado de México", - "name": "Estado de México Otomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ott", - "inverted_name": "Otomi, Temoaya", - "name": "Temoaya Otomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "otu", - "name": "Otuke", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "otw", - "name": "Ottawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "otx", - "inverted_name": "Otomi, Texcatepec", - "name": "Texcatepec Otomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oty", - "inverted_name": "Tamil, Old", - "name": "Old Tamil", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "otz", - "inverted_name": "Otomi, Ixtenco", - "name": "Ixtenco Otomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oua", - "name": "Tagargrent", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oub", - "name": "Glio-Oubi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oue", - "name": "Oune", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oui", - "inverted_name": "Uighur, Old", - "name": "Old Uighur", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "oum", - "name": "Ouma", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ovd", - "name": "Elfdalian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "owi", - "name": "Owiniga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "owl", - "inverted_name": "Welsh, Old", - "name": "Old Welsh", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "oyb", - "name": "Oy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oyd", - "name": "Oyda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oym", - "name": "Wayampi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "oyy", - "name": "Oya'oya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ozm", - "name": "Koonzime", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pab", - "name": "Parecís", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pac", - "name": "Pacoh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pad", - "name": "Paumarí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pae", - "name": "Pagibete", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "paf", - "name": "Paranawát", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pag", - "name": "Pangasinan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pah", - "name": "Tenharim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pai", - "name": "Pe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pak", - "name": "Parakanã", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pal", - "name": "Pahlavi", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "pam", - "name": "Pampanga", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "pa", - "alpha_3": "pan", - "name": "Panjabi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pao", - "inverted_name": "Paiute, Northern", - "name": "Northern Paiute", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pap", - "name": "Papiamento", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "paq", - "name": "Parya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "par", - "name": "Panamint", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pas", - "name": "Papasena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pau", - "name": "Palauan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pav", - "name": "Pakaásnovos", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "paw", - "name": "Pawnee", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pax", - "name": "Pankararé", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pay", - "name": "Pech", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "paz", - "name": "Pankararú", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pbb", - "name": "Páez", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbc", - "name": "Patamona", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbe", - "inverted_name": "Popoloca, Mezontla", - "name": "Mezontla Popoloca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbf", - "inverted_name": "Popoloca, Coyotepec", - "name": "Coyotepec Popoloca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbg", - "name": "Paraujano", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pbh", - "name": "E'ñapa Woromaipu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbi", - "name": "Parkwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbl", - "name": "Mak (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbm", - "inverted_name": "Mazatec, Puebla", - "name": "Puebla Mazatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbn", - "name": "Kpasam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbo", - "name": "Papel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbp", - "name": "Badyara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbr", - "name": "Pangwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbs", - "inverted_name": "Pame, Central", - "name": "Central Pame", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbt", - "inverted_name": "Pashto, Southern", - "name": "Southern Pashto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbu", - "inverted_name": "Pashto, Northern", - "name": "Northern Pashto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pbv", - "name": "Pnar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pby", - "name": "Pyu (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pca", - "inverted_name": "Popoloca, Santa Inés Ahuatempan", - "name": "Santa Inés Ahuatempan Popoloca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcb", - "name": "Pear", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcc", - "name": "Bouyei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcd", - "name": "Picard", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pce", - "inverted_name": "Palaung, Ruching", - "name": "Ruching Palaung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcf", - "name": "Paliyan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcg", - "name": "Paniya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pch", - "name": "Pardhan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pci", - "name": "Duruwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcj", - "name": "Parenga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pck", - "inverted_name": "Chin, Paite", - "name": "Paite Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcl", - "name": "Pardhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcm", - "inverted_name": "Pidgin, Nigerian", - "name": "Nigerian Pidgin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcn", - "name": "Piti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcp", - "name": "Pacahuara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pcw", - "name": "Pyapun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pda", - "name": "Anam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pdc", - "inverted_name": "German, Pennsylvania", - "name": "Pennsylvania German", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pdi", - "name": "Pa Di", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pdn", - "name": "Podena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pdo", - "name": "Padoe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pdt", - "name": "Plautdietsch", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pdu", - "name": "Kayan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pea", - "inverted_name": "Indonesian, Peranakan", - "name": "Peranakan Indonesian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "peb", - "inverted_name": "Pomo, Eastern", - "name": "Eastern Pomo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ped", - "name": "Mala (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pee", - "name": "Taje", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pef", - "inverted_name": "Pomo, Northeastern", - "name": "Northeastern Pomo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "peg", - "name": "Pengo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "peh", - "name": "Bonan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pei", - "name": "Chichimeca-Jonaz", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pej", - "inverted_name": "Pomo, Northern", - "name": "Northern Pomo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pek", - "name": "Penchal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pel", - "name": "Pekal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pem", - "name": "Phende", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "peo", - "inverted_name": "Persian, Old (ca. 600-400 B.C.)", - "name": "Old Persian (ca. 600-400 B.C.)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "pep", - "name": "Kunja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "peq", - "inverted_name": "Pomo, Southern", - "name": "Southern Pomo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pes", - "inverted_name": "Persian, Iranian", - "name": "Iranian Persian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pev", - "name": "Pémono", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pex", - "name": "Petats", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pey", - "name": "Petjo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pez", - "inverted_name": "Penan, Eastern", - "name": "Eastern Penan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pfa", - "name": "Pááfang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pfe", - "name": "Pere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pfl", - "name": "Pfaelzisch", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pga", - "inverted_name": "Creole Arabic, Sudanese", - "name": "Sudanese Creole Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pgd", - "name": "Gāndhārī", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "pgg", - "name": "Pangwali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pgi", - "name": "Pagi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pgk", - "name": "Rerep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pgl", - "inverted_name": "Irish, Primitive", - "name": "Primitive Irish", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "pgn", - "name": "Paelignian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "pgs", - "name": "Pangseng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pgu", - "name": "Pagu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pgz", - "name": "Papua New Guinean Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pha", - "name": "Pa-Hng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phd", - "name": "Phudagi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phg", - "name": "Phuong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phh", - "name": "Phukha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phj", - "name": "Pahari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phk", - "name": "Phake", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phl", - "name": "Phalura", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phm", - "name": "Phimbi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phn", - "name": "Phoenician", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "pho", - "name": "Phunoi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phq", - "name": "Phana'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phr", - "name": "Pahari-Potwari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pht", - "name": "Phu Thai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phu", - "name": "Phuan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phv", - "name": "Pahlavani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "phw", - "name": "Phangduwali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pia", - "name": "Pima Bajo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pib", - "name": "Yine", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pic", - "name": "Pinji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pid", - "name": "Piaroa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pie", - "name": "Piro", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pif", - "name": "Pingelapese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pig", - "name": "Pisabo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pih", - "name": "Pitcairn-Norfolk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pij", - "name": "Pijao", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pil", - "name": "Yom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pim", - "name": "Powhatan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pin", - "name": "Piame", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pio", - "name": "Piapoco", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pip", - "name": "Pero", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pir", - "name": "Piratapuyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pis", - "name": "Pijin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pit", - "name": "Pitta Pitta", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "piu", - "name": "Pintupi-Luritja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "piv", - "name": "Pileni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "piw", - "name": "Pimbwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pix", - "name": "Piu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "piy", - "name": "Piya-Kwonci", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "piz", - "name": "Pije", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pjt", - "name": "Pitjantjatjara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pka", - "inverted_name": "Prākrit, Ardhamāgadhī", - "name": "Ardhamāgadhī Prākrit", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "pkb", - "name": "Pokomo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pkc", - "name": "Paekche", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "pkg", - "name": "Pak-Tong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pkh", - "name": "Pankhu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pkn", - "name": "Pakanha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pko", - "name": "Pökoot", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pkp", - "name": "Pukapuka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pkr", - "inverted_name": "Kurumba, Attapady", - "name": "Attapady Kurumba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pks", - "name": "Pakistan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pkt", - "name": "Maleng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pku", - "name": "Paku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pla", - "name": "Miani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plb", - "name": "Polonombauk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plc", - "inverted_name": "Palawano, Central", - "name": "Central Palawano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pld", - "name": "Polari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ple", - "name": "Palu'e", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plg", - "name": "Pilagá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plh", - "name": "Paulohi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "pi", - "alpha_3": "pli", - "name": "Pali", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "plj", - "name": "Polci", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plk", - "inverted_name": "Shina, Kohistani", - "name": "Kohistani Shina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pll", - "inverted_name": "Palaung, Shwe", - "name": "Shwe Palaung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pln", - "name": "Palenquero", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plo", - "inverted_name": "Popoluca, Oluta", - "name": "Oluta Popoluca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plq", - "name": "Palaic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "plr", - "inverted_name": "Senoufo, Palaka", - "name": "Palaka Senoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pls", - "inverted_name": "Popoloca, San Marcos Tlacoyalco", - "name": "San Marcos Tlacoyalco Popoloca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plt", - "inverted_name": "Malagasy, Plateau", - "name": "Plateau Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plu", - "name": "Palikúr", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plv", - "inverted_name": "Palawano, Southwest", - "name": "Southwest Palawano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plw", - "inverted_name": "Palawano, Brooke's Point", - "name": "Brooke's Point Palawano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ply", - "name": "Bolyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "plz", - "name": "Paluan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pma", - "name": "Paama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmb", - "name": "Pambia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmd", - "name": "Pallanganmiddang", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pme", - "name": "Pwaamei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmf", - "name": "Pamona", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmh", - "inverted_name": "Prākrit, Māhārāṣṭri", - "name": "Māhārāṣṭri Prākrit", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "pmi", - "inverted_name": "Pumi, Northern", - "name": "Northern Pumi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmj", - "inverted_name": "Pumi, Southern", - "name": "Southern Pumi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmk", - "name": "Pamlico", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pml", - "name": "Lingua Franca", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pmm", - "name": "Pomo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmn", - "name": "Pam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmo", - "name": "Pom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmq", - "inverted_name": "Pame, Northern", - "name": "Northern Pame", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmr", - "name": "Paynamar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pms", - "name": "Piemontese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmt", - "name": "Tuamotuan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmw", - "inverted_name": "Miwok, Plains", - "name": "Plains Miwok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmx", - "inverted_name": "Naga, Poumei", - "name": "Poumei Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmy", - "inverted_name": "Malay, Papuan", - "name": "Papuan Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pmz", - "inverted_name": "Pame, Southern", - "name": "Southern Pame", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pna", - "name": "Punan Bah-Biau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnb", - "inverted_name": "Panjabi, Western", - "name": "Western Panjabi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnc", - "name": "Pannei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnd", - "name": "Mpinda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pne", - "inverted_name": "Penan, Western", - "name": "Western Penan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "png", - "name": "Pangu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnh", - "name": "Penrhyn", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pni", - "name": "Aoheng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnj", - "name": "Pinjarup", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pnk", - "name": "Paunaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnl", - "name": "Paleni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnm", - "name": "Punan Batu 1", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnn", - "name": "Pinai-Hagahai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pno", - "name": "Panobo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pnp", - "name": "Pancana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnq", - "name": "Pana (Burkina Faso)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnr", - "name": "Panim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pns", - "name": "Ponosakan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnt", - "name": "Pontic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnu", - "inverted_name": "Bunu, Jiongnai", - "name": "Jiongnai Bunu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnv", - "name": "Pinigura", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnw", - "name": "Banyjima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnx", - "name": "Phong-Kniang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pny", - "name": "Pinyin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pnz", - "name": "Pana (Central African Republic)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "poc", - "name": "Poqomam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "poe", - "inverted_name": "Popoloca, San Juan Atzingo", - "name": "San Juan Atzingo Popoloca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pof", - "name": "Poke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pog", - "name": "Potiguára", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "poh", - "name": "Poqomchi'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "poi", - "inverted_name": "Popoluca, Highland", - "name": "Highland Popoluca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pok", - "name": "Pokangá", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "pl", - "alpha_3": "pol", - "name": "Polish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pom", - "inverted_name": "Pomo, Southeastern", - "name": "Southeastern Pomo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pon", - "name": "Pohnpeian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "poo", - "inverted_name": "Pomo, Central", - "name": "Central Pomo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pop", - "name": "Pwapwâ", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "poq", - "inverted_name": "Popoluca, Texistepec", - "name": "Texistepec Popoluca", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "pt", - "alpha_3": "por", - "name": "Portuguese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pos", - "inverted_name": "Popoluca, Sayula", - "name": "Sayula Popoluca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pot", - "name": "Potawatomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pov", - "inverted_name": "Crioulo, Upper Guinea", - "name": "Upper Guinea Crioulo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pow", - "inverted_name": "Popoloca, San Felipe Otlaltepec", - "name": "San Felipe Otlaltepec Popoloca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pox", - "name": "Polabian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "poy", - "name": "Pogolo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppe", - "name": "Papi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppi", - "name": "Paipai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppk", - "name": "Uma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppl", - "name": "Pipil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppm", - "name": "Papuma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppn", - "name": "Papapana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppo", - "name": "Folopa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppp", - "name": "Pelende", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppq", - "name": "Pei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pps", - "inverted_name": "Popoloca, San Luís Temalacayuca", - "name": "San Luís Temalacayuca Popoloca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppt", - "name": "Pare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ppu", - "name": "Papora", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pqa", - "name": "Pa'a", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pqm", - "name": "Malecite-Passamaquoddy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prc", - "name": "Parachi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prd", - "name": "Parsi-Dari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pre", - "name": "Principense", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prf", - "name": "Paranan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prg", - "name": "Prussian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prh", - "name": "Porohanon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pri", - "name": "Paicî", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prk", - "name": "Parauk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prl", - "name": "Peruvian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prm", - "name": "Kibiri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prn", - "name": "Prasuni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pro", - "inverted_name": "Provençal, Old (to 1500)", - "name": "Old Provençal (to 1500)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "prp", - "name": "Parsi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prq", - "name": "Ashéninka Perené", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prr", - "name": "Puri", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "prs", - "name": "Dari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prt", - "name": "Phai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pru", - "name": "Puragi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prw", - "name": "Parawen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prx", - "name": "Purik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "prz", - "name": "Providencia Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psa", - "inverted_name": "Awyu, Asue", - "name": "Asue Awyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psc", - "name": "Iranian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psd", - "name": "Plains Indian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pse", - "inverted_name": "Malay, Central", - "name": "Central Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psg", - "name": "Penang Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psh", - "inverted_name": "Pashai, Southwest", - "name": "Southwest Pashai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psi", - "inverted_name": "Pashai, Southeast", - "name": "Southeast Pashai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psl", - "name": "Puerto Rican Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psm", - "name": "Pauserna", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "psn", - "name": "Panasuan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pso", - "name": "Polish Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psp", - "name": "Philippine Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psq", - "name": "Pasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psr", - "name": "Portuguese Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pss", - "name": "Kaulong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pst", - "inverted_name": "Pashto, Central", - "name": "Central Pashto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psu", - "inverted_name": "Prākrit, Sauraseni", - "name": "Sauraseni Prākrit", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "psw", - "name": "Port Sandwich", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "psy", - "name": "Piscataway", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pta", - "name": "Pai Tavytera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pth", - "name": "Pataxó Hã-Ha-Hãe", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pti", - "name": "Pindiini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ptn", - "name": "Patani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pto", - "name": "Zo'é", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ptp", - "name": "Patep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ptq", - "name": "Pattapu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ptr", - "name": "Piamatsina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ptt", - "name": "Enrekang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ptu", - "name": "Bambam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ptv", - "name": "Port Vato", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ptw", - "name": "Pentlatch", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pty", - "name": "Pathiya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pua", - "inverted_name": "Purepecha, Western Highland", - "name": "Western Highland Purepecha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pub", - "name": "Purum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "puc", - "name": "Punan Merap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pud", - "name": "Punan Aput", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pue", - "name": "Puelche", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "puf", - "name": "Punan Merah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pug", - "name": "Phuie", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pui", - "name": "Puinave", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "puj", - "name": "Punan Tubu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pum", - "name": "Puma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "puo", - "name": "Puoc", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pup", - "name": "Pulabu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "puq", - "name": "Puquina", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pur", - "name": "Puruborá", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ps", - "alpha_3": "pus", - "name": "Pushto", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "put", - "name": "Putoh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "puu", - "name": "Punu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "puw", - "name": "Puluwatese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pux", - "name": "Puare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "puy", - "name": "Purisimeño", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pwa", - "name": "Pawaia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pwb", - "name": "Panawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pwg", - "name": "Gapapaiwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pwi", - "name": "Patwin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "pwm", - "name": "Molbog", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pwn", - "name": "Paiwan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pwo", - "inverted_name": "Karen, Pwo Western", - "name": "Pwo Western Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pwr", - "name": "Powari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pww", - "inverted_name": "Karen, Pwo Northern", - "name": "Pwo Northern Karen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pxm", - "inverted_name": "Mixe, Quetzaltepec", - "name": "Quetzaltepec Mixe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pye", - "inverted_name": "Krumen, Pye", - "name": "Pye Krumen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pym", - "name": "Fyam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pyn", - "name": "Poyanáwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pys", - "name": "Paraguayan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pyu", - "name": "Puyuma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pyx", - "name": "Pyu (Myanmar)", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "pyy", - "name": "Pyen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pzh", - "name": "Pazeh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "pzn", - "name": "Jejara Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qua", - "name": "Quapaw", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qub", - "inverted_name": "Quechua, Huallaga Huánuco", - "name": "Huallaga Huánuco Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "quc", - "name": "K'iche'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qud", - "inverted_name": "Quichua, Calderón Highland", - "name": "Calderón Highland Quichua", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "qu", - "alpha_3": "que", - "name": "Quechua", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "quf", - "inverted_name": "Quechua, Lambayeque", - "name": "Lambayeque Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qug", - "inverted_name": "Quichua, Chimborazo Highland", - "name": "Chimborazo Highland Quichua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "quh", - "inverted_name": "Quechua, South Bolivian", - "name": "South Bolivian Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qui", - "name": "Quileute", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "quk", - "inverted_name": "Quechua, Chachapoyas", - "name": "Chachapoyas Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qul", - "inverted_name": "Quechua, North Bolivian", - "name": "North Bolivian Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qum", - "name": "Sipacapense", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qun", - "name": "Quinault", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "qup", - "inverted_name": "Quechua, Southern Pastaza", - "name": "Southern Pastaza Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "quq", - "name": "Quinqui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qur", - "inverted_name": "Quechua, Yanahuanca Pasco", - "name": "Yanahuanca Pasco Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qus", - "inverted_name": "Quichua, Santiago del Estero", - "name": "Santiago del Estero Quichua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "quv", - "name": "Sacapulteco", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "quw", - "inverted_name": "Quichua, Tena Lowland", - "name": "Tena Lowland Quichua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qux", - "inverted_name": "Quechua, Yauyos", - "name": "Yauyos Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "quy", - "inverted_name": "Quechua, Ayacucho", - "name": "Ayacucho Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "quz", - "inverted_name": "Quechua, Cusco", - "name": "Cusco Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qva", - "inverted_name": "Quechua, Ambo-Pasco", - "name": "Ambo-Pasco Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvc", - "inverted_name": "Quechua, Cajamarca", - "name": "Cajamarca Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qve", - "inverted_name": "Quechua, Eastern Apurímac", - "name": "Eastern Apurímac Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvh", - "inverted_name": "Quechua, Huamalíes-Dos de Mayo Huánuco", - "name": "Huamalíes-Dos de Mayo Huánuco Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvi", - "inverted_name": "Quichua, Imbabura Highland", - "name": "Imbabura Highland Quichua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvj", - "inverted_name": "Quichua, Loja Highland", - "name": "Loja Highland Quichua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvl", - "inverted_name": "Quechua, Cajatambo North Lima", - "name": "Cajatambo North Lima Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvm", - "inverted_name": "Quechua, Margos-Yarowilca-Lauricocha", - "name": "Margos-Yarowilca-Lauricocha Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvn", - "inverted_name": "Quechua, North Junín", - "name": "North Junín Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvo", - "inverted_name": "Quechua, Napo Lowland", - "name": "Napo Lowland Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvp", - "inverted_name": "Quechua, Pacaraos", - "name": "Pacaraos Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvs", - "inverted_name": "Quechua, San Martín", - "name": "San Martín Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvw", - "inverted_name": "Quechua, Huaylla Wanca", - "name": "Huaylla Wanca Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvy", - "name": "Queyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qvz", - "inverted_name": "Quichua, Northern Pastaza", - "name": "Northern Pastaza Quichua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qwa", - "inverted_name": "Quechua, Corongo Ancash", - "name": "Corongo Ancash Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qwc", - "inverted_name": "Quechua, Classical", - "name": "Classical Quechua", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "qwh", - "inverted_name": "Quechua, Huaylas Ancash", - "name": "Huaylas Ancash Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qwm", - "name": "Kuman (Russia)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "qws", - "inverted_name": "Quechua, Sihuas Ancash", - "name": "Sihuas Ancash Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qwt", - "name": "Kwalhioqua-Tlatskanai", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "qxa", - "inverted_name": "Quechua, Chiquián Ancash", - "name": "Chiquián Ancash Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxc", - "inverted_name": "Quechua, Chincha", - "name": "Chincha Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxh", - "inverted_name": "Quechua, Panao Huánuco", - "name": "Panao Huánuco Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxl", - "inverted_name": "Quichua, Salasaca Highland", - "name": "Salasaca Highland Quichua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxn", - "inverted_name": "Quechua, Northern Conchucos Ancash", - "name": "Northern Conchucos Ancash Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxo", - "inverted_name": "Quechua, Southern Conchucos Ancash", - "name": "Southern Conchucos Ancash Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxp", - "inverted_name": "Quechua, Puno", - "name": "Puno Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxq", - "name": "Qashqa'i", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxr", - "inverted_name": "Quichua, Cañar Highland", - "name": "Cañar Highland Quichua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxs", - "inverted_name": "Qiang, Southern", - "name": "Southern Qiang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxt", - "inverted_name": "Quechua, Santa Ana de Tusi Pasco", - "name": "Santa Ana de Tusi Pasco Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxu", - "inverted_name": "Quechua, Arequipa-La Unión", - "name": "Arequipa-La Unión Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qxw", - "inverted_name": "Quechua, Jauja Wanca", - "name": "Jauja Wanca Quechua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "qya", - "name": "Quenya", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "qyp", - "name": "Quiripi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "raa", - "name": "Dungmali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rab", - "name": "Camling", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rac", - "name": "Rasawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rad", - "name": "Rade", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "raf", - "inverted_name": "Meohang, Western", - "name": "Western Meohang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rag", - "name": "Logooli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rah", - "name": "Rabha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rai", - "name": "Ramoaaina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "raj", - "name": "Rajasthani", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "rak", - "name": "Tulu-Bohuai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ral", - "name": "Ralte", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ram", - "name": "Canela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ran", - "name": "Riantana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rao", - "name": "Rao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rap", - "name": "Rapanui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "raq", - "name": "Saam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rar", - "name": "Rarotongan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ras", - "name": "Tegali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rat", - "name": "Razajerdi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rau", - "name": "Raute", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rav", - "name": "Sampang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "raw", - "name": "Rawang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rax", - "name": "Rang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ray", - "name": "Rapa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "raz", - "name": "Rahambuu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rbb", - "inverted_name": "Palaung, Rumai", - "name": "Rumai Palaung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rbk", - "inverted_name": "Bontok, Northern", - "name": "Northern Bontok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rbl", - "inverted_name": "Bikol, Miraya", - "name": "Miraya Bikol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rbp", - "name": "Barababaraba", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "rcf", - "inverted_name": "Creole French, Réunion", - "name": "Réunion Creole French", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rdb", - "name": "Rudbari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rea", - "name": "Rerau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "reb", - "name": "Rembong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ree", - "inverted_name": "Kayan, Rejang", - "name": "Rejang Kayan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "reg", - "name": "Kara (Tanzania)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rei", - "name": "Reli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rej", - "name": "Rejang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rel", - "name": "Rendille", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rem", - "name": "Remo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ren", - "name": "Rengao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rer", - "name": "Rer Bare", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "res", - "name": "Reshe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ret", - "name": "Retta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rey", - "name": "Reyesano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rga", - "name": "Roria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rge", - "name": "Romano-Greek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rgk", - "name": "Rangkas", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "rgn", - "name": "Romagnol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rgr", - "name": "Resígaro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rgs", - "inverted_name": "Roglai, Southern", - "name": "Southern Roglai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rgu", - "name": "Ringgou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rhg", - "name": "Rohingya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rhp", - "name": "Yahang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ria", - "name": "Riang (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rib", - "name": "Bribri Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rif", - "name": "Tarifit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ril", - "name": "Riang Lang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rim", - "name": "Nyaturu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rin", - "name": "Nungu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rir", - "name": "Ribun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rit", - "name": "Ritharrngu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "riu", - "name": "Riung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rjg", - "name": "Rajong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rji", - "name": "Raji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rjs", - "name": "Rajbanshi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rka", - "name": "Kraol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rkb", - "name": "Rikbaktsa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rkh", - "name": "Rakahanga-Manihiki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rki", - "name": "Rakhine", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rkm", - "name": "Marka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rkt", - "name": "Rangpuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rkw", - "name": "Arakwal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "rma", - "name": "Rama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmb", - "name": "Rembarrnga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmc", - "inverted_name": "Romani, Carpathian", - "name": "Carpathian Romani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmd", - "inverted_name": "Danish, Traveller", - "name": "Traveller Danish", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "rme", - "name": "Angloromani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmf", - "inverted_name": "Romani, Kalo Finnish", - "name": "Kalo Finnish Romani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmg", - "inverted_name": "Norwegian, Traveller", - "name": "Traveller Norwegian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmh", - "name": "Murkim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmi", - "name": "Lomavren", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmk", - "name": "Romkun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rml", - "inverted_name": "Romani, Baltic", - "name": "Baltic Romani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmm", - "name": "Roma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmn", - "inverted_name": "Romani, Balkan", - "name": "Balkan Romani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmo", - "inverted_name": "Romani, Sinte", - "name": "Sinte Romani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmp", - "name": "Rempi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmq", - "name": "Caló", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rms", - "name": "Romanian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmt", - "name": "Domari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmu", - "inverted_name": "Romani, Tavringer", - "name": "Tavringer Romani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmv", - "name": "Romanova", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "rmw", - "inverted_name": "Romani, Welsh", - "name": "Welsh Romani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmx", - "name": "Romam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmy", - "inverted_name": "Romani, Vlax", - "name": "Vlax Romani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rmz", - "name": "Marma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rnb", - "name": "Brunca Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rnd", - "name": "Ruund", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rng", - "name": "Ronga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rnl", - "name": "Ranglong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rnn", - "name": "Roon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rnp", - "name": "Rongpo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rnr", - "name": "Nari Nari", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "rnw", - "name": "Rungwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rob", - "name": "Tae'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "roc", - "inverted_name": "Roglai, Cacgia", - "name": "Cacgia Roglai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rod", - "name": "Rogo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "roe", - "name": "Ronji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rof", - "name": "Rombo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rog", - "inverted_name": "Roglai, Northern", - "name": "Northern Roglai", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "rm", - "alpha_3": "roh", - "name": "Romansh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rol", - "name": "Romblomanon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rom", - "name": "Romany", - "scope": "M", - "type": "L" - }, - { - "alpha_2": "ro", - "alpha_3": "ron", - "bibliographic": "rum", - "name": "Romanian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "roo", - "name": "Rotokas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rop", - "name": "Kriol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ror", - "name": "Rongga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rou", - "name": "Runga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "row", - "name": "Dela-Oenale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rpn", - "name": "Repanbitip", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rpt", - "name": "Rapting", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rri", - "name": "Ririo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rro", - "name": "Waima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rrt", - "name": "Arritinngithigh", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "rsb", - "name": "Romano-Serbian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rsk", - "name": "Ruthenian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rsl", - "name": "Russian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rsm", - "name": "Miriwoong Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rsn", - "name": "Rwandan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rtc", - "inverted_name": "Chin, Rungtu", - "name": "Rungtu Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rth", - "name": "Ratahan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rtm", - "name": "Rotuman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rts", - "name": "Yurats", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "rtw", - "name": "Rathawi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rub", - "name": "Gungu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ruc", - "name": "Ruuli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rue", - "name": "Rusyn", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ruf", - "name": "Luguru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rug", - "name": "Roviana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ruh", - "name": "Ruga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rui", - "name": "Rufiji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ruk", - "name": "Che", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "rn", - "alpha_3": "run", - "name": "Rundi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ruo", - "inverted_name": "Romanian, Istro", - "name": "Istro Romanian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rup", - "inverted_name": "Romanian, Macedo-", - "name": "Macedo-Romanian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ruq", - "inverted_name": "Romanian, Megleno", - "name": "Megleno Romanian", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ru", - "alpha_3": "rus", - "name": "Russian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rut", - "name": "Rutul", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ruu", - "inverted_name": "Lobu, Lanas", - "name": "Lanas Lobu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ruy", - "name": "Mala (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ruz", - "name": "Ruma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rwa", - "name": "Rawo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rwk", - "name": "Rwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rwl", - "name": "Ruwila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rwm", - "name": "Amba (Uganda)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rwo", - "name": "Rawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rwr", - "name": "Marwari (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rxd", - "name": "Ngardi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rxw", - "name": "Karuwali", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ryn", - "inverted_name": "Amami-Oshima, Northern", - "name": "Northern Amami-Oshima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rys", - "name": "Yaeyama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ryu", - "inverted_name": "Okinawan, Central", - "name": "Central Okinawan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "rzh", - "name": "Rāziḥī", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "saa", - "name": "Saba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sab", - "name": "Buglere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sac", - "name": "Meskwaki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sad", - "name": "Sandawe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sae", - "name": "Sabanê", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "saf", - "name": "Safaliba", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "sg", - "alpha_3": "sag", - "name": "Sango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sah", - "name": "Yakut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "saj", - "name": "Sahu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sak", - "name": "Sake", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sam", - "inverted_name": "Aramaic, Samaritan", - "name": "Samaritan Aramaic", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "sa", - "alpha_3": "san", - "name": "Sanskrit", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "sao", - "name": "Sause", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "saq", - "name": "Samburu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sar", - "name": "Saraveca", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sas", - "name": "Sasak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sat", - "name": "Santali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sau", - "name": "Saleman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sav", - "name": "Saafi-Saafi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "saw", - "name": "Sawi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sax", - "name": "Sa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "say", - "name": "Saya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "saz", - "name": "Saurashtra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sba", - "name": "Ngambay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbb", - "name": "Simbo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbc", - "name": "Kele (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbd", - "inverted_name": "Samo, Southern", - "name": "Southern Samo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbe", - "name": "Saliba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbf", - "name": "Chabu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbg", - "name": "Seget", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbh", - "name": "Sori-Harengan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbi", - "name": "Seti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbj", - "name": "Surbakhal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbk", - "name": "Safwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbl", - "inverted_name": "Sambal, Botolan", - "name": "Botolan Sambal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbm", - "name": "Sagala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbn", - "inverted_name": "Bhil, Sindhi", - "name": "Sindhi Bhil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbo", - "name": "Sabüm", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbp", - "name": "Sangu (Tanzania)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbq", - "name": "Sileibi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbr", - "name": "Sembakung Murut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbs", - "name": "Subiya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbt", - "name": "Kimki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbu", - "inverted_name": "Bhoti, Stod", - "name": "Stod Bhoti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbv", - "name": "Sabine", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "sbw", - "name": "Simba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbx", - "name": "Seberuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sby", - "name": "Soli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sbz", - "name": "Sara Kaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scb", - "name": "Chut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sce", - "name": "Dongxiang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scf", - "inverted_name": "Creole French, San Miguel", - "name": "San Miguel Creole French", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scg", - "name": "Sanggau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sch", - "name": "Sakachep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sci", - "inverted_name": "Creole Malay, Sri Lankan", - "name": "Sri Lankan Creole Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sck", - "name": "Sadri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scl", - "name": "Shina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scn", - "name": "Sicilian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sco", - "name": "Scots", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scp", - "name": "Hyolmo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scq", - "name": "Sa'och", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scs", - "inverted_name": "Slavey, North", - "name": "North Slavey", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sct", - "inverted_name": "Katang, Southern", - "name": "Southern Katang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scu", - "name": "Shumcho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scv", - "name": "Sheni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scw", - "name": "Sha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "scx", - "name": "Sicel", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "sda", - "name": "Toraja-Sa'dan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdb", - "name": "Shabak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdc", - "inverted_name": "Sardinian, Sassarese", - "name": "Sassarese Sardinian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sde", - "name": "Surubu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdf", - "name": "Sarli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdg", - "name": "Savi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdh", - "inverted_name": "Kurdish, Southern", - "name": "Southern Kurdish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdj", - "name": "Suundi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdk", - "name": "Sos Kundi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdl", - "name": "Saudi Arabian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdn", - "inverted_name": "Sardinian, Gallurese", - "name": "Gallurese Sardinian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdo", - "inverted_name": "Bidayuh, Bukar-Sadung", - "name": "Bukar-Sadung Bidayuh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdp", - "name": "Sherdukpen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdq", - "name": "Semandang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdr", - "inverted_name": "Sadri, Oraon", - "name": "Oraon Sadri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sds", - "name": "Sened", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sdt", - "name": "Shuadit", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sdu", - "name": "Sarudu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdx", - "inverted_name": "Melanau, Sibu", - "name": "Sibu Melanau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sdz", - "name": "Sallands", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sea", - "name": "Semai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "seb", - "inverted_name": "Senoufo, Shempire", - "name": "Shempire Senoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sec", - "name": "Sechelt", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sed", - "name": "Sedang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "see", - "name": "Seneca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sef", - "inverted_name": "Senoufo, Cebaara", - "name": "Cebaara Senoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "seg", - "name": "Segeju", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "seh", - "name": "Sena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sei", - "name": "Seri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sej", - "name": "Sene", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sek", - "name": "Sekani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sel", - "name": "Selkup", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sen", - "inverted_name": "Sénoufo, Nanerigé", - "name": "Nanerigé Sénoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "seo", - "name": "Suarmin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sep", - "inverted_name": "Sénoufo, Sìcìté", - "name": "Sìcìté Sénoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "seq", - "inverted_name": "Sénoufo, Senara", - "name": "Senara Sénoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ser", - "name": "Serrano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ses", - "inverted_name": "Songhai, Koyraboro Senni", - "name": "Koyraboro Senni Songhai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "set", - "name": "Sentani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "seu", - "name": "Serui-Laut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sev", - "inverted_name": "Senoufo, Nyarafolo", - "name": "Nyarafolo Senoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sew", - "name": "Sewa Bay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sey", - "name": "Secoya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sez", - "inverted_name": "Chin, Senthang", - "name": "Senthang Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sfb", - "name": "Langue des signes de Belgique Francophone", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sfe", - "inverted_name": "Subanen, Eastern", - "name": "Eastern Subanen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sfm", - "inverted_name": "Miao, Small Flowery", - "name": "Small Flowery Miao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sfs", - "name": "South African Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sfw", - "name": "Sehwi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sga", - "inverted_name": "Irish, Old (to 900)", - "name": "Old Irish (to 900)", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "sgb", - "inverted_name": "Ayta, Mag-antsi", - "name": "Mag-antsi Ayta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgc", - "name": "Kipsigis", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgd", - "name": "Surigaonon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sge", - "name": "Segai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgg", - "name": "Swiss-German Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgh", - "name": "Shughni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgi", - "name": "Suga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgj", - "name": "Surgujia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgk", - "name": "Sangkong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgm", - "name": "Singa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sgp", - "name": "Singpho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgr", - "name": "Sangisari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgs", - "name": "Samogitian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgt", - "name": "Brokpake", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgu", - "name": "Salas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgw", - "name": "Sebat Bet Gurage", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgx", - "name": "Sierra Leone Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgy", - "name": "Sanglechi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sgz", - "name": "Sursurunga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sha", - "name": "Shall-Zwall", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shb", - "name": "Ninam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shc", - "name": "Sonde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shd", - "name": "Kundal Shahi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "she", - "name": "Sheko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shg", - "name": "Shua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shh", - "name": "Shoshoni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shi", - "name": "Tachelhit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shj", - "name": "Shatt", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shk", - "name": "Shilluk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shl", - "name": "Shendu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shm", - "name": "Shahrudi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shn", - "name": "Shan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sho", - "name": "Shanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shp", - "name": "Shipibo-Conibo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shq", - "name": "Sala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shr", - "name": "Shi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shs", - "name": "Shuswap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sht", - "name": "Shasta", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "shu", - "inverted_name": "Arabic, Chadian", - "name": "Chadian Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shv", - "name": "Shehri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shw", - "name": "Shwai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shx", - "name": "She", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shy", - "name": "Tachawit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "shz", - "inverted_name": "Senoufo, Syenara", - "name": "Syenara Senoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sia", - "inverted_name": "Sami, Akkala", - "name": "Akkala Sami", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sib", - "name": "Sebop", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sid", - "name": "Sidamo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sie", - "name": "Simaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sif", - "name": "Siamou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sig", - "name": "Paasaal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sih", - "name": "Zire", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sii", - "name": "Shom Peng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sij", - "name": "Numbami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sik", - "name": "Sikiana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sil", - "inverted_name": "Sisaala, Tumulung", - "name": "Tumulung Sisaala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sim", - "name": "Mende (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "si", - "alpha_3": "sin", - "name": "Sinhala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sip", - "name": "Sikkimese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "siq", - "name": "Sonia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sir", - "name": "Siri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sis", - "name": "Siuslaw", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "siu", - "name": "Sinagen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "siv", - "name": "Sumariup", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "siw", - "name": "Siwai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "six", - "name": "Sumau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "siy", - "name": "Sivandi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "siz", - "name": "Siwi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sja", - "name": "Epena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sjb", - "name": "Sajau Basap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sjd", - "inverted_name": "Sami, Kildin", - "name": "Kildin Sami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sje", - "inverted_name": "Sami, Pite", - "name": "Pite Sami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sjg", - "name": "Assangori", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sjk", - "inverted_name": "Sami, Kemi", - "name": "Kemi Sami", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sjl", - "name": "Sajalong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sjm", - "name": "Mapun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sjn", - "name": "Sindarin", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "sjo", - "name": "Xibe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sjp", - "name": "Surjapuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sjr", - "name": "Siar-Lak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sjs", - "name": "Senhaja De Srair", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sjt", - "inverted_name": "Sami, Ter", - "name": "Ter Sami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sju", - "inverted_name": "Sami, Ume", - "name": "Ume Sami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sjw", - "name": "Shawnee", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ska", - "name": "Skagit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skb", - "name": "Saek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skc", - "name": "Ma Manda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skd", - "inverted_name": "Miwok, Southern Sierra", - "name": "Southern Sierra Miwok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ske", - "name": "Seke (Vanuatu)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skf", - "name": "Sakirabiá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skg", - "inverted_name": "Malagasy, Sakalava", - "name": "Sakalava Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skh", - "name": "Sikule", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ski", - "name": "Sika", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skj", - "name": "Seke (Nepal)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skm", - "name": "Kutong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skn", - "inverted_name": "Subanon, Kolibugan", - "name": "Kolibugan Subanon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sko", - "name": "Seko Tengah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skp", - "name": "Sekapan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skq", - "name": "Sininkere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skr", - "name": "Saraiki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sks", - "name": "Maia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skt", - "name": "Sakata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sku", - "name": "Sakao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skv", - "name": "Skou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skw", - "inverted_name": "Creole Dutch, Skepi", - "name": "Skepi Creole Dutch", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "skx", - "name": "Seko Padang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sky", - "name": "Sikaiana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "skz", - "name": "Sekar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slc", - "name": "Sáliba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sld", - "name": "Sissala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sle", - "name": "Sholaga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slf", - "name": "Swiss-Italian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slg", - "name": "Selungai Murut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slh", - "inverted_name": "Salish, Southern Puget Sound", - "name": "Southern Puget Sound Salish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sli", - "inverted_name": "Silesian, Lower", - "name": "Lower Silesian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slj", - "name": "Salumá", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "sk", - "alpha_3": "slk", - "bibliographic": "slo", - "name": "Slovak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sll", - "name": "Salt-Yui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slm", - "inverted_name": "Sama, Pangutaran", - "name": "Pangutaran Sama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sln", - "name": "Salinan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "slp", - "name": "Lamaholot", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slq", - "name": "Salchuq", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "slr", - "name": "Salar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sls", - "name": "Singapore Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slt", - "name": "Sila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slu", - "name": "Selaru", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "sl", - "alpha_3": "slv", - "name": "Slovenian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slw", - "name": "Sialum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slx", - "name": "Salampasu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sly", - "name": "Selayar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "slz", - "name": "Ma'ya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sma", - "inverted_name": "Sami, Southern", - "name": "Southern Sami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smb", - "name": "Simbari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smc", - "name": "Som", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "se", - "alpha_3": "sme", - "inverted_name": "Sami, Northern", - "name": "Northern Sami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smf", - "name": "Auwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smg", - "name": "Simbali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smh", - "name": "Samei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smj", - "name": "Lule Sami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smk", - "name": "Bolinao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sml", - "inverted_name": "Sama, Central", - "name": "Central Sama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smm", - "name": "Musasa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smn", - "inverted_name": "Sami, Inari", - "name": "Inari Sami", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "sm", - "alpha_3": "smo", - "name": "Samoan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smp", - "name": "Samaritan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "smq", - "name": "Samo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smr", - "name": "Simeulue", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sms", - "inverted_name": "Sami, Skolt", - "name": "Skolt Sami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smt", - "name": "Simte", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smu", - "name": "Somray", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "smv", - "name": "Samvedi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smw", - "name": "Sumbawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smx", - "name": "Samba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smy", - "name": "Semnani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "smz", - "name": "Simeku", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "sn", - "alpha_3": "sna", - "name": "Shona", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snc", - "name": "Sinaugoro", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "sd", - "alpha_3": "snd", - "name": "Sindhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sne", - "inverted_name": "Bidayuh, Bau", - "name": "Bau Bidayuh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snf", - "name": "Noon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sng", - "name": "Sanga (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sni", - "name": "Sensi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "snj", - "inverted_name": "Sango, Riverain", - "name": "Riverain Sango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snk", - "name": "Soninke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snl", - "name": "Sangil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snm", - "inverted_name": "Ma'di, Southern", - "name": "Southern Ma'di", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snn", - "name": "Siona", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sno", - "name": "Snohomish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snp", - "name": "Siane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snq", - "name": "Sangu (Gabon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snr", - "name": "Sihan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sns", - "name": "South West Bay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snu", - "name": "Senggi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snv", - "name": "Sa'ban", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snw", - "name": "Selee", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snx", - "name": "Sam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sny", - "name": "Saniyo-Hiyewe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "snz", - "name": "Kou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "soa", - "name": "Thai Song", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sob", - "name": "Sobei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "soc", - "name": "So (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sod", - "name": "Songoora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "soe", - "name": "Songomeno", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sog", - "name": "Sogdian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "soh", - "name": "Aka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "soi", - "name": "Sonha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "soj", - "name": "Soi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sok", - "name": "Sokoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sol", - "name": "Solos", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "so", - "alpha_3": "som", - "name": "Somali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "soo", - "name": "Songo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sop", - "name": "Songe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "soq", - "name": "Kanasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sor", - "name": "Somrai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sos", - "name": "Seeku", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "st", - "alpha_3": "sot", - "inverted_name": "Sotho, Southern", - "name": "Southern Sotho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sou", - "inverted_name": "Thai, Southern", - "name": "Southern Thai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sov", - "name": "Sonsorol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sow", - "name": "Sowanda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sox", - "name": "Swo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "soy", - "name": "Miyobe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "soz", - "name": "Temi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "es", - "alpha_3": "spa", - "name": "Spanish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spb", - "name": "Sepa (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spc", - "name": "Sapé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spd", - "name": "Saep", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spe", - "name": "Sepa (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spg", - "name": "Sian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spi", - "name": "Saponi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spk", - "name": "Sengo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spl", - "name": "Selepet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spm", - "name": "Akukem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spn", - "name": "Sanapaná", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spo", - "name": "Spokane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spp", - "inverted_name": "Senoufo, Supyire", - "name": "Supyire Senoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spq", - "inverted_name": "Spanish, Loreto-Ucayali", - "name": "Loreto-Ucayali Spanish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spr", - "name": "Saparua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sps", - "name": "Saposa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spt", - "inverted_name": "Bhoti, Spiti", - "name": "Spiti Bhoti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spu", - "name": "Sapuan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spv", - "name": "Sambalpuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "spx", - "inverted_name": "Picene, South", - "name": "South Picene", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "spy", - "name": "Sabaot", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sqa", - "name": "Shama-Sambuga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sqh", - "name": "Shau", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "sq", - "alpha_3": "sqi", - "bibliographic": "alb", - "name": "Albanian", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "sqk", - "name": "Albanian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sqm", - "name": "Suma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sqn", - "name": "Susquehannock", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sqo", - "name": "Sorkhei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sqq", - "name": "Sou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sqr", - "inverted_name": "Arabic, Siculo", - "name": "Siculo Arabic", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "sqs", - "name": "Sri Lankan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sqt", - "name": "Soqotri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "squ", - "name": "Squamish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sqx", - "name": "Kufr Qassem Sign Language (KQSL)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sra", - "name": "Saruga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srb", - "name": "Sora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "src", - "inverted_name": "Sardinian, Logudorese", - "name": "Logudorese Sardinian", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "sc", - "alpha_3": "srd", - "name": "Sardinian", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "sre", - "name": "Sara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srf", - "name": "Nafi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srg", - "name": "Sulod", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srh", - "name": "Sarikoli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sri", - "name": "Siriano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srk", - "name": "Serudung Murut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srl", - "name": "Isirawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srm", - "name": "Saramaccan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srn", - "name": "Sranan Tongo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sro", - "inverted_name": "Sardinian, Campidanese", - "name": "Campidanese Sardinian", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "sr", - "alpha_3": "srp", - "name": "Serbian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srq", - "name": "Sirionó", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srr", - "name": "Serer", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srs", - "name": "Sarsi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srt", - "name": "Sauri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sru", - "name": "Suruí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srv", - "inverted_name": "Sorsoganon, Southern", - "name": "Southern Sorsoganon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srw", - "name": "Serua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srx", - "name": "Sirmauri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sry", - "name": "Sera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "srz", - "name": "Shahmirzadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssb", - "inverted_name": "Sama, Southern", - "name": "Southern Sama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssc", - "name": "Suba-Simbiti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssd", - "name": "Siroi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sse", - "name": "Balangingi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssf", - "name": "Thao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssg", - "name": "Seimat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssh", - "inverted_name": "Arabic, Shihhi", - "name": "Shihhi Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssi", - "name": "Sansi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssj", - "name": "Sausi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssk", - "name": "Sunam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssl", - "inverted_name": "Sisaala, Western", - "name": "Western Sisaala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssm", - "name": "Semnam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssn", - "name": "Waata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sso", - "name": "Sissano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssp", - "name": "Spanish Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssq", - "name": "So'a", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssr", - "name": "Swiss-French Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sss", - "name": "Sô", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sst", - "name": "Sinasina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssu", - "name": "Susuami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssv", - "name": "Shark Bay", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ss", - "alpha_3": "ssw", - "name": "Swati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssx", - "name": "Samberigi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssy", - "name": "Saho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ssz", - "name": "Sengseng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sta", - "name": "Settla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stb", - "inverted_name": "Subanen, Northern", - "name": "Northern Subanen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "std", - "name": "Sentinel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ste", - "name": "Liana-Seti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stf", - "name": "Seta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stg", - "name": "Trieng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sth", - "name": "Shelta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sti", - "inverted_name": "Stieng, Bulo", - "name": "Bulo Stieng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stj", - "inverted_name": "Samo, Matya", - "name": "Matya Samo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stk", - "name": "Arammba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stl", - "name": "Stellingwerfs", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stm", - "name": "Setaman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stn", - "name": "Owa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sto", - "name": "Stoney", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stp", - "inverted_name": "Tepehuan, Southeastern", - "name": "Southeastern Tepehuan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stq", - "name": "Saterfriesisch", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "str", - "inverted_name": "Salish, Straits", - "name": "Straits Salish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sts", - "name": "Shumashti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stt", - "inverted_name": "Stieng, Budeh", - "name": "Budeh Stieng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stu", - "name": "Samtao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stv", - "name": "Silt'e", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "stw", - "name": "Satawalese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sty", - "inverted_name": "Tatar, Siberian", - "name": "Siberian Tatar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sua", - "name": "Sulka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sub", - "name": "Suku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "suc", - "inverted_name": "Subanon, Western", - "name": "Western Subanon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sue", - "name": "Suena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sug", - "name": "Suganga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sui", - "name": "Suki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "suj", - "name": "Shubi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "suk", - "name": "Sukuma", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "su", - "alpha_3": "sun", - "name": "Sundanese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "suo", - "name": "Bouni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "suq", - "inverted_name": "Suri, Tirmaga-Chai", - "name": "Tirmaga-Chai Suri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sur", - "name": "Mwaghavul", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sus", - "name": "Susu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sut", - "name": "Subtiaba", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "suv", - "name": "Puroik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "suw", - "name": "Sumbwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sux", - "name": "Sumerian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "suy", - "name": "Suyá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "suz", - "name": "Sunwar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sva", - "name": "Svan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "svb", - "name": "Ulau-Suain", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "svc", - "inverted_name": "Creole English, Vincentian", - "name": "Vincentian Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sve", - "name": "Serili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "svk", - "name": "Slovakian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "svm", - "name": "Slavomolisano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "svs", - "name": "Savosavo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "svx", - "name": "Skalvian", - "scope": "I", - "type": "H" - }, - { - "alpha_2": "sw", - "alpha_3": "swa", - "name": "Swahili (macrolanguage)", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "swb", - "inverted_name": "Comorian, Maore", - "name": "Maore Comorian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swc", - "inverted_name": "Swahili, Congo", - "name": "Congo Swahili", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "sv", - "alpha_3": "swe", - "name": "Swedish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swf", - "name": "Sere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swg", - "name": "Swabian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swh", - "name": "Swahili (individual language)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swi", - "name": "Sui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swj", - "name": "Sira", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swk", - "inverted_name": "Sena, Malawi", - "name": "Malawi Sena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swl", - "name": "Swedish Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swm", - "name": "Samosa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swn", - "name": "Sawknah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swo", - "name": "Shanenawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swp", - "name": "Suau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swq", - "name": "Sharwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swr", - "name": "Saweru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sws", - "name": "Seluwasan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swt", - "name": "Sawila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swu", - "name": "Suwawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swv", - "name": "Shekhawati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sww", - "name": "Sowa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "swx", - "name": "Suruahá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "swy", - "name": "Sarua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sxb", - "name": "Suba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sxc", - "name": "Sicanian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "sxe", - "name": "Sighu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sxg", - "name": "Shuhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sxk", - "inverted_name": "Kalapuya, Southern", - "name": "Southern Kalapuya", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sxl", - "name": "Selian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sxm", - "name": "Samre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sxn", - "name": "Sangir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sxo", - "name": "Sorothaptic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "sxr", - "name": "Saaroa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sxs", - "name": "Sasaru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sxu", - "inverted_name": "Saxon, Upper", - "name": "Upper Saxon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sxw", - "inverted_name": "Gbe, Saxwe", - "name": "Saxwe Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sya", - "name": "Siang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "syb", - "inverted_name": "Subanen, Central", - "name": "Central Subanen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "syc", - "inverted_name": "Syriac, Classical", - "name": "Classical Syriac", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "syi", - "name": "Seki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "syk", - "name": "Sukur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "syl", - "name": "Sylheti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sym", - "inverted_name": "Samo, Maya", - "name": "Maya Samo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "syn", - "name": "Senaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "syo", - "name": "Suoy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "syr", - "name": "Syriac", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "sys", - "name": "Sinyar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "syw", - "name": "Kagate", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "syx", - "name": "Samay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "syy", - "name": "Al-Sayyid Bedouin Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "sza", - "name": "Semelai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szb", - "name": "Ngalum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szc", - "name": "Semaq Beri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szd", - "name": "Seru", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "sze", - "name": "Seze", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szg", - "name": "Sengele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szl", - "name": "Silesian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szn", - "name": "Sula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szp", - "name": "Suabo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szs", - "name": "Solomon Islands Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szv", - "name": "Isu (Fako Division)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szw", - "name": "Sawai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "szy", - "name": "Sakizaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "taa", - "inverted_name": "Tanana, Lower", - "name": "Lower Tanana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tab", - "name": "Tabassaran", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tac", - "inverted_name": "Tarahumara, Lowland", - "name": "Lowland Tarahumara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tad", - "name": "Tause", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tae", - "name": "Tariana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "taf", - "name": "Tapirapé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tag", - "name": "Tagoi", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ty", - "alpha_3": "tah", - "name": "Tahitian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "taj", - "inverted_name": "Tamang, Eastern", - "name": "Eastern Tamang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tak", - "name": "Tala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tal", - "name": "Tal", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ta", - "alpha_3": "tam", - "name": "Tamil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tan", - "name": "Tangale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tao", - "name": "Yami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tap", - "name": "Taabwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "taq", - "name": "Tamasheq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tar", - "inverted_name": "Tarahumara, Central", - "name": "Central Tarahumara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tas", - "name": "Tay Boi", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "tt", - "alpha_3": "tat", - "name": "Tatar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tau", - "inverted_name": "Tanana, Upper", - "name": "Upper Tanana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tav", - "name": "Tatuyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "taw", - "name": "Tai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tax", - "name": "Tamki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tay", - "name": "Atayal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "taz", - "name": "Tocho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tba", - "name": "Aikanã", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbc", - "name": "Takia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbd", - "name": "Kaki Ae", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbe", - "name": "Tanimbili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbf", - "name": "Mandara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbg", - "inverted_name": "Tairora, North", - "name": "North Tairora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbh", - "name": "Dharawal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tbi", - "name": "Gaam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbj", - "name": "Tiang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbk", - "inverted_name": "Tagbanwa, Calamian", - "name": "Calamian Tagbanwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbl", - "name": "Tboli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbm", - "name": "Tagbu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbn", - "inverted_name": "Tunebo, Barro Negro", - "name": "Barro Negro Tunebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbo", - "name": "Tawala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbp", - "name": "Taworta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbr", - "name": "Tumtum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbs", - "name": "Tanguat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbt", - "name": "Tembo (Kitembo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbu", - "name": "Tubar", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tbv", - "name": "Tobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbw", - "name": "Tagbanwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbx", - "name": "Kapin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tby", - "name": "Tabaru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tbz", - "name": "Ditammari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tca", - "name": "Ticuna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcb", - "name": "Tanacross", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcc", - "name": "Datooga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcd", - "name": "Tafi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tce", - "inverted_name": "Tutchone, Southern", - "name": "Southern Tutchone", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcf", - "inverted_name": "Me'phaa, Malinaltepec", - "name": "Malinaltepec Me'phaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcg", - "name": "Tamagario", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tch", - "inverted_name": "Creole English, Turks And Caicos", - "name": "Turks And Caicos Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tci", - "name": "Wára", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tck", - "name": "Tchitchege", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcl", - "name": "Taman (Myanmar)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tcm", - "name": "Tanahmerah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcn", - "name": "Tichurong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tco", - "name": "Taungyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcp", - "inverted_name": "Chin, Tawr", - "name": "Tawr Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcq", - "name": "Kaiy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcs", - "inverted_name": "Creole, Torres Strait", - "name": "Torres Strait Creole", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tct", - "name": "T'en", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcu", - "inverted_name": "Tarahumara, Southeastern", - "name": "Southeastern Tarahumara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcw", - "inverted_name": "Totonac, Tecpatlán", - "name": "Tecpatlán Totonac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcx", - "name": "Toda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcy", - "name": "Tulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tcz", - "inverted_name": "Chin, Thado", - "name": "Thado Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tda", - "name": "Tagdal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdb", - "name": "Panchpargania", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdc", - "name": "Emberá-Tadó", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdd", - "name": "Tai Nüa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tde", - "inverted_name": "Dogon, Tiranige Diga", - "name": "Tiranige Diga Dogon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdf", - "name": "Talieng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdg", - "inverted_name": "Tamang, Western", - "name": "Western Tamang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdh", - "name": "Thulung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdi", - "name": "Tomadino", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdj", - "name": "Tajio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdk", - "name": "Tambas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdl", - "name": "Sur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdm", - "name": "Taruma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdn", - "name": "Tondano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdo", - "name": "Teme", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdq", - "name": "Tita", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdr", - "name": "Todrah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tds", - "name": "Doutai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdt", - "name": "Tetun Dili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdv", - "name": "Toro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdx", - "inverted_name": "Malagasy, Tandroy-Mahafaly", - "name": "Tandroy-Mahafaly Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tdy", - "name": "Tadyawan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tea", - "name": "Temiar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "teb", - "name": "Tetete", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tec", - "name": "Terik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ted", - "inverted_name": "Krumen, Tepo", - "name": "Tepo Krumen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tee", - "inverted_name": "Tepehua, Huehuetla", - "name": "Huehuetla Tepehua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tef", - "name": "Teressa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "teg", - "name": "Teke-Tege", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "teh", - "name": "Tehuelche", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tei", - "name": "Torricelli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tek", - "inverted_name": "Teke, Ibali", - "name": "Ibali Teke", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "te", - "alpha_3": "tel", - "name": "Telugu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tem", - "name": "Timne", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ten", - "name": "Tama (Colombia)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "teo", - "name": "Teso", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tep", - "name": "Tepecano", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "teq", - "name": "Temein", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ter", - "name": "Tereno", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tes", - "name": "Tengger", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tet", - "name": "Tetum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "teu", - "name": "Soo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tev", - "name": "Teor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tew", - "name": "Tewa (USA)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tex", - "name": "Tennet", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tey", - "name": "Tulishi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tez", - "name": "Tetserret", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tfi", - "inverted_name": "Gbe, Tofin", - "name": "Tofin Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tfn", - "name": "Tanaina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tfo", - "name": "Tefaro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tfr", - "name": "Teribe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tft", - "name": "Ternate", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tga", - "name": "Sagalla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgb", - "name": "Tobilung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgc", - "name": "Tigak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgd", - "name": "Ciwogai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tge", - "inverted_name": "Tamang, Eastern Gorkha", - "name": "Eastern Gorkha Tamang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgf", - "name": "Chalikha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgh", - "inverted_name": "Creole English, Tobagonian", - "name": "Tobagonian Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgi", - "name": "Lawunuia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgj", - "name": "Tagin", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "tg", - "alpha_3": "tgk", - "name": "Tajik", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "tl", - "alpha_3": "tgl", - "name": "Tagalog", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgn", - "name": "Tandaganon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgo", - "name": "Sudest", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgp", - "name": "Tangoa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgq", - "name": "Tring", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgr", - "name": "Tareng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgs", - "name": "Nume", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgt", - "inverted_name": "Tagbanwa, Central", - "name": "Central Tagbanwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgu", - "name": "Tanggu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgv", - "name": "Tingui-Boto", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tgw", - "inverted_name": "Senoufo, Tagwana", - "name": "Tagwana Senoufo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgx", - "name": "Tagish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tgy", - "name": "Togoyo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tgz", - "name": "Tagalaka", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "th", - "alpha_3": "tha", - "name": "Thai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thd", - "name": "Kuuk Thaayorre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "the", - "inverted_name": "Tharu, Chitwania", - "name": "Chitwania Tharu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thf", - "name": "Thangmi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thh", - "inverted_name": "Tarahumara, Northern", - "name": "Northern Tarahumara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thi", - "name": "Tai Long", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thk", - "name": "Tharaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thl", - "inverted_name": "Tharu, Dangaura", - "name": "Dangaura Tharu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thm", - "name": "Aheu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thn", - "name": "Thachanadan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thp", - "name": "Thompson", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thq", - "inverted_name": "Tharu, Kochila", - "name": "Kochila Tharu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thr", - "inverted_name": "Tharu, Rana", - "name": "Rana Tharu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ths", - "name": "Thakali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tht", - "name": "Tahltan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thu", - "name": "Thuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thv", - "inverted_name": "Tamahaq, Tahaggart", - "name": "Tahaggart Tamahaq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thy", - "name": "Tha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "thz", - "inverted_name": "Tamajeq, Tayart", - "name": "Tayart Tamajeq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tia", - "inverted_name": "Tamazight, Tidikelt", - "name": "Tidikelt Tamazight", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tic", - "name": "Tira", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tif", - "name": "Tifal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tig", - "name": "Tigre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tih", - "inverted_name": "Murut, Timugon", - "name": "Timugon Murut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tii", - "name": "Tiene", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tij", - "name": "Tilung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tik", - "name": "Tikar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "til", - "name": "Tillamook", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tim", - "name": "Timbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tin", - "name": "Tindi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tio", - "name": "Teop", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tip", - "name": "Trimuris", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tiq", - "name": "Tiéfo", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ti", - "alpha_3": "tir", - "name": "Tigrinya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tis", - "inverted_name": "Itneg, Masadiit", - "name": "Masadiit Itneg", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tit", - "name": "Tinigua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tiu", - "name": "Adasen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tiv", - "name": "Tiv", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tiw", - "name": "Tiwi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tix", - "inverted_name": "Tiwa, Southern", - "name": "Southern Tiwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tiy", - "name": "Tiruray", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tiz", - "name": "Tai Hongjin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tja", - "name": "Tajuasohn", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tjg", - "name": "Tunjung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tji", - "inverted_name": "Tujia, Northern", - "name": "Northern Tujia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tjj", - "name": "Tjungundji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tjl", - "name": "Tai Laing", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tjm", - "name": "Timucua", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tjn", - "name": "Tonjon", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tjo", - "inverted_name": "Tamazight, Temacine", - "name": "Temacine Tamazight", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tjp", - "name": "Tjupany", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tjs", - "inverted_name": "Tujia, Southern", - "name": "Southern Tujia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tju", - "name": "Tjurruru", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tjw", - "name": "Djabwurrung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tka", - "name": "Truká", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tkb", - "name": "Buksa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkd", - "name": "Tukudede", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tke", - "name": "Takwane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkf", - "name": "Tukumanféd", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tkg", - "inverted_name": "Malagasy, Tesaka", - "name": "Tesaka Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkl", - "name": "Tokelau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkm", - "name": "Takelma", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tkn", - "name": "Toku-No-Shima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkp", - "name": "Tikopia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkq", - "name": "Tee", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkr", - "name": "Tsakhur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tks", - "name": "Takestani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkt", - "inverted_name": "Tharu, Kathoriya", - "name": "Kathoriya Tharu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tku", - "inverted_name": "Totonac, Upper Necaxa", - "name": "Upper Necaxa Totonac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkv", - "name": "Mur Pano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkw", - "name": "Teanu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkx", - "name": "Tangko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tkz", - "name": "Takua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tla", - "inverted_name": "Tepehuan, Southwestern", - "name": "Southwestern Tepehuan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlb", - "name": "Tobelo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlc", - "inverted_name": "Totonac, Yecuatla", - "name": "Yecuatla Totonac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tld", - "name": "Talaud", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlf", - "name": "Telefol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlg", - "name": "Tofanma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlh", - "name": "Klingon", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "tli", - "name": "Tlingit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlj", - "name": "Talinga-Bwisi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlk", - "name": "Taloki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tll", - "name": "Tetela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlm", - "name": "Tolomako", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tln", - "name": "Talondo'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlo", - "name": "Talodi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlp", - "inverted_name": "Totonac, Filomena Mata-Coahuitlán", - "name": "Filomena Mata-Coahuitlán Totonac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlq", - "name": "Tai Loi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlr", - "name": "Talise", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tls", - "name": "Tambotalo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlt", - "name": "Sou Nama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlu", - "name": "Tulehu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlv", - "name": "Taliabu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tlx", - "name": "Khehek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tly", - "name": "Talysh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tma", - "name": "Tama (Chad)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmb", - "name": "Katbol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmc", - "name": "Tumak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmd", - "name": "Haruai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tme", - "name": "Tremembé", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tmf", - "name": "Toba-Maskoy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmg", - "name": "Ternateño", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tmh", - "name": "Tamashek", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "tmi", - "name": "Tutuba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmj", - "name": "Samarokena", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmk", - "inverted_name": "Tamang, Northwestern", - "name": "Northwestern Tamang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tml", - "inverted_name": "Citak, Tamnim", - "name": "Tamnim Citak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmm", - "name": "Tai Thanh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmn", - "name": "Taman (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmo", - "name": "Temoq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmq", - "name": "Tumleo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmr", - "inverted_name": "Aramaic, Jewish Babylonian (ca. 200-1200 CE)", - "name": "Jewish Babylonian Aramaic (ca. 200-1200 CE)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tms", - "name": "Tima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmt", - "name": "Tasmate", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmu", - "name": "Iau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmv", - "name": "Tembo (Motembo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmw", - "name": "Temuan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmy", - "name": "Tami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tmz", - "name": "Tamanaku", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tna", - "name": "Tacana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnb", - "inverted_name": "Tunebo, Western", - "name": "Western Tunebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnc", - "name": "Tanimuca-Retuarã", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnd", - "inverted_name": "Tunebo, Angosturas", - "name": "Angosturas Tunebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tng", - "name": "Tobanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnh", - "name": "Maiani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tni", - "name": "Tandia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnk", - "name": "Kwamera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnl", - "name": "Lenakel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnm", - "name": "Tabla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnn", - "inverted_name": "Tanna, North", - "name": "North Tanna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tno", - "name": "Toromono", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnp", - "name": "Whitesands", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnq", - "name": "Taino", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tnr", - "name": "Ménik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tns", - "name": "Tenis", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnt", - "name": "Tontemboan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnu", - "name": "Tay Khang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnv", - "name": "Tangchangya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnw", - "name": "Tonsawang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnx", - "name": "Tanema", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tny", - "name": "Tongwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tnz", - "name": "Ten'edn", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tob", - "name": "Toba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "toc", - "inverted_name": "Totonac, Coyutla", - "name": "Coyutla Totonac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tod", - "name": "Toma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tof", - "name": "Gizrra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tog", - "name": "Tonga (Nyasa)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "toh", - "name": "Gitonga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "toi", - "name": "Tonga (Zambia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "toj", - "name": "Tojolabal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tok", - "name": "Toki Pona", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "tol", - "name": "Tolowa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tom", - "name": "Tombulu", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "to", - "alpha_3": "ton", - "name": "Tonga (Tonga Islands)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "too", - "inverted_name": "Totonac, Xicotepec De Juárez", - "name": "Xicotepec De Juárez Totonac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "top", - "inverted_name": "Totonac, Papantla", - "name": "Papantla Totonac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "toq", - "name": "Toposa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tor", - "inverted_name": "Banda, Togbo-Vara", - "name": "Togbo-Vara Banda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tos", - "inverted_name": "Totonac, Highland", - "name": "Highland Totonac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tou", - "name": "Tho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tov", - "inverted_name": "Taromi, Upper", - "name": "Upper Taromi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tow", - "name": "Jemez", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tox", - "name": "Tobian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "toy", - "name": "Topoiyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "toz", - "name": "To", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpa", - "name": "Taupota", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpc", - "inverted_name": "Me'phaa, Azoyú", - "name": "Azoyú Me'phaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpe", - "name": "Tippera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpf", - "name": "Tarpia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpg", - "name": "Kula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpi", - "name": "Tok Pisin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpj", - "name": "Tapieté", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpk", - "name": "Tupinikin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tpl", - "inverted_name": "Me'phaa, Tlacoapa", - "name": "Tlacoapa Me'phaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpm", - "name": "Tampulma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpn", - "name": "Tupinambá", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tpo", - "name": "Tai Pao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpp", - "inverted_name": "Tepehua, Pisaflores", - "name": "Pisaflores Tepehua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpq", - "name": "Tukpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpr", - "name": "Tuparí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpt", - "inverted_name": "Tepehua, Tlachichilco", - "name": "Tlachichilco Tepehua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpu", - "name": "Tampuan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpv", - "name": "Tanapag", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpw", - "name": "Tupí", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tpx", - "inverted_name": "Me'phaa, Acatepec", - "name": "Acatepec Me'phaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpy", - "name": "Trumai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tpz", - "name": "Tinputz", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tqb", - "name": "Tembé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tql", - "name": "Lehali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tqm", - "name": "Turumsa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tqn", - "name": "Tenino", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tqo", - "name": "Toaripi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tqp", - "name": "Tomoip", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tqq", - "name": "Tunni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tqr", - "name": "Torona", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tqt", - "inverted_name": "Totonac, Western", - "name": "Western Totonac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tqu", - "name": "Touo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tqw", - "name": "Tonkawa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tra", - "name": "Tirahi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trb", - "name": "Terebu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trc", - "inverted_name": "Triqui, Copala", - "name": "Copala Triqui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trd", - "name": "Turi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tre", - "inverted_name": "Tarangan, East", - "name": "East Tarangan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trf", - "inverted_name": "Creole English, Trinidadian", - "name": "Trinidadian Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trg", - "name": "Lishán Didán", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trh", - "name": "Turaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tri", - "name": "Trió", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trj", - "name": "Toram", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trl", - "inverted_name": "Scottish, Traveller", - "name": "Traveller Scottish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trm", - "name": "Tregami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trn", - "name": "Trinitario", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tro", - "inverted_name": "Naga, Tarao", - "name": "Tarao Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trp", - "name": "Kok Borok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trq", - "inverted_name": "Triqui, San Martín Itunyoso", - "name": "San Martín Itunyoso Triqui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trr", - "name": "Taushiro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trs", - "inverted_name": "Triqui, Chicahuaxtla", - "name": "Chicahuaxtla Triqui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trt", - "name": "Tunggare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tru", - "name": "Turoyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trv", - "name": "Sediq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trw", - "name": "Torwali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "trx", - "inverted_name": "Bidayuh, Tringgus-Sembaan", - "name": "Tringgus-Sembaan Bidayuh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "try", - "name": "Turung", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "trz", - "name": "Torá", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tsa", - "name": "Tsaangi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsb", - "name": "Tsamai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsc", - "name": "Tswa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsd", - "name": "Tsakonian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tse", - "name": "Tunisian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsg", - "name": "Tausug", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsh", - "name": "Tsuvan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsi", - "name": "Tsimshian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsj", - "name": "Tshangla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsk", - "name": "Tseku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsl", - "name": "Ts'ün-Lao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsm", - "name": "Turkish Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "tn", - "alpha_3": "tsn", - "name": "Tswana", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ts", - "alpha_3": "tso", - "name": "Tsonga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsp", - "inverted_name": "Toussian, Northern", - "name": "Northern Toussian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsq", - "name": "Thai Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsr", - "name": "Akei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tss", - "name": "Taiwan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tst", - "inverted_name": "Songway Kiini, Tondi", - "name": "Tondi Songway Kiini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsu", - "name": "Tsou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsv", - "name": "Tsogo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsw", - "name": "Tsishingini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsx", - "name": "Mubami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsy", - "name": "Tebul Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tsz", - "name": "Purepecha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tta", - "name": "Tutelo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ttb", - "name": "Gaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttc", - "name": "Tektiteko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttd", - "name": "Tauade", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tte", - "name": "Bwanabwana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttf", - "name": "Tuotomb", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttg", - "name": "Tutong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tth", - "inverted_name": "Ta'oih, Upper", - "name": "Upper Ta'oih", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tti", - "name": "Tobati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttj", - "name": "Tooro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttk", - "name": "Totoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttl", - "name": "Totela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttm", - "inverted_name": "Tutchone, Northern", - "name": "Northern Tutchone", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttn", - "name": "Towei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tto", - "inverted_name": "Ta'oih, Lower", - "name": "Lower Ta'oih", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttp", - "name": "Tombelala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttq", - "inverted_name": "Tamajaq, Tawallammat", - "name": "Tawallammat Tamajaq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttr", - "name": "Tera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tts", - "inverted_name": "Thai, Northeastern", - "name": "Northeastern Thai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttt", - "inverted_name": "Tat, Muslim", - "name": "Muslim Tat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttu", - "name": "Torau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttv", - "name": "Titan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttw", - "name": "Long Wat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tty", - "name": "Sikaritai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ttz", - "name": "Tsum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tua", - "name": "Wiarumus", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tub", - "name": "Tübatulabal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tuc", - "name": "Mutu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tud", - "name": "Tuxá", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tue", - "name": "Tuyuca", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tuf", - "inverted_name": "Tunebo, Central", - "name": "Central Tunebo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tug", - "name": "Tunia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tuh", - "name": "Taulil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tui", - "name": "Tupuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tuj", - "name": "Tugutil", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "tk", - "alpha_3": "tuk", - "name": "Turkmen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tul", - "name": "Tula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tum", - "name": "Tumbuka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tun", - "name": "Tunica", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tuo", - "name": "Tucano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tuq", - "name": "Tedaga", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "tr", - "alpha_3": "tur", - "name": "Turkish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tus", - "name": "Tuscarora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tuu", - "name": "Tututni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tuv", - "name": "Turkana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tux", - "name": "Tuxináwa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tuy", - "name": "Tugen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tuz", - "name": "Turka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tva", - "name": "Vaghua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvd", - "name": "Tsuvadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tve", - "name": "Te'un", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvk", - "inverted_name": "Ambrym, Southeast", - "name": "Southeast Ambrym", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvl", - "name": "Tuvalu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvm", - "name": "Tela-Masbuar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvn", - "name": "Tavoyan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvo", - "name": "Tidore", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvs", - "name": "Taveta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvt", - "inverted_name": "Naga, Tutsa", - "name": "Tutsa Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvu", - "name": "Tunen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvw", - "name": "Sedoa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tvx", - "name": "Taivoan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tvy", - "inverted_name": "Pidgin, Timor", - "name": "Timor Pidgin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "twa", - "name": "Twana", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "twb", - "inverted_name": "Tawbuid, Western", - "name": "Western Tawbuid", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twc", - "name": "Teshenawa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "twd", - "name": "Twents", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twe", - "name": "Tewa (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twf", - "inverted_name": "Tiwa, Northern", - "name": "Northern Tiwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twg", - "name": "Tereweng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twh", - "name": "Tai Dón", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "tw", - "alpha_3": "twi", - "name": "Twi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twl", - "name": "Tawara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twm", - "inverted_name": "Monpa, Tawang", - "name": "Tawang Monpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twn", - "name": "Twendi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "two", - "name": "Tswapong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twp", - "name": "Ere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twq", - "name": "Tasawaq", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twr", - "inverted_name": "Tarahumara, Southwestern", - "name": "Southwestern Tarahumara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twt", - "name": "Turiwára", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "twu", - "name": "Termanu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tww", - "name": "Tuwari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twx", - "name": "Tewe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "twy", - "name": "Tawoyan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txa", - "name": "Tombonuo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txb", - "name": "Tokharian B", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "txc", - "name": "Tsetsaut", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "txe", - "name": "Totoli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txg", - "name": "Tangut", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "txh", - "name": "Thracian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "txi", - "name": "Ikpeng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txj", - "name": "Tarjumo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txm", - "name": "Tomini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txn", - "inverted_name": "Tarangan, West", - "name": "West Tarangan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txo", - "name": "Toto", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txq", - "name": "Tii", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txr", - "name": "Tartessian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "txs", - "name": "Tonsea", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txt", - "name": "Citak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txu", - "name": "Kayapó", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txx", - "name": "Tatana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "txy", - "inverted_name": "Malagasy, Tanosy", - "name": "Tanosy Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tya", - "name": "Tauya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tye", - "name": "Kyanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyh", - "name": "O'du", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyi", - "name": "Teke-Tsaayi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyj", - "name": "Tai Do", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyl", - "name": "Thu Lao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyn", - "name": "Kombai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "typ", - "name": "Thaypan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "tyr", - "name": "Tai Daeng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tys", - "name": "Tày Sa Pa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyt", - "name": "Tày Tac", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyu", - "name": "Kua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyv", - "name": "Tuvinian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyx", - "name": "Teke-Tyee", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyy", - "name": "Tiyaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tyz", - "name": "Tày", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tza", - "name": "Tanzanian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tzh", - "name": "Tzeltal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tzj", - "name": "Tz'utujil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tzl", - "name": "Talossan", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "tzm", - "inverted_name": "Tamazight, Central Atlas", - "name": "Central Atlas Tamazight", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tzn", - "name": "Tugun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tzo", - "name": "Tzotzil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "tzx", - "name": "Tabriak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uam", - "name": "Uamué", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "uan", - "name": "Kuan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uar", - "name": "Tairuma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uba", - "name": "Ubang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ubi", - "name": "Ubi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ubl", - "inverted_name": "Bikol, Buhi'non", - "name": "Buhi'non Bikol", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ubr", - "name": "Ubir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ubu", - "name": "Umbu-Ungu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uby", - "name": "Ubykh", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "uda", - "name": "Uda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ude", - "name": "Udihe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "udg", - "name": "Muduga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "udi", - "name": "Udi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "udj", - "name": "Ujir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "udl", - "name": "Wuzlam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "udm", - "name": "Udmurt", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "udu", - "name": "Uduk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ues", - "name": "Kioko", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ufi", - "name": "Ufim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uga", - "name": "Ugaritic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "ugb", - "name": "Kuku-Ugbanh", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "uge", - "name": "Ughele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ugh", - "name": "Kubachi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ugn", - "name": "Ugandan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ugo", - "name": "Ugong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ugy", - "name": "Uruguayan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uha", - "name": "Uhami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uhn", - "name": "Damal", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ug", - "alpha_3": "uig", - "name": "Uighur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uis", - "name": "Uisai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uiv", - "name": "Iyive", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uji", - "name": "Tanjijili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uka", - "name": "Kaburi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ukg", - "name": "Ukuriguma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ukh", - "name": "Ukhwejo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uki", - "name": "Kui (India)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ukk", - "name": "Muak Sa-aak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ukl", - "name": "Ukrainian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ukp", - "name": "Ukpe-Bayobiri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ukq", - "name": "Ukwa", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "uk", - "alpha_3": "ukr", - "name": "Ukrainian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uks", - "name": "Urubú-Kaapor Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uku", - "name": "Ukue", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ukv", - "name": "Kuku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ukw", - "name": "Ukwuani-Aboh-Ndoni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uky", - "name": "Kuuk-Yak", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ula", - "name": "Fungwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ulb", - "name": "Ulukwumi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ulc", - "name": "Ulch", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ule", - "name": "Lule", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ulf", - "name": "Usku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uli", - "name": "Ulithian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ulk", - "name": "Meriam Mir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ull", - "name": "Ullatan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ulm", - "name": "Ulumanda'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uln", - "name": "Unserdeutsch", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ulu", - "name": "Uma' Lung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ulw", - "name": "Ulwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uma", - "name": "Umatilla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "umb", - "name": "Umbundu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "umc", - "name": "Marrucinian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "umd", - "name": "Umbindhamu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "umg", - "name": "Morrobalama", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "umi", - "name": "Ukit", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "umm", - "name": "Umon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "umn", - "inverted_name": "Naga, Makyan", - "name": "Makyan Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "umo", - "name": "Umotína", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ump", - "name": "Umpila", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "umr", - "name": "Umbugarla", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ums", - "name": "Pendau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "umu", - "name": "Munsee", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "una", - "inverted_name": "Watut, North", - "name": "North Watut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "und", - "name": "Undetermined", - "scope": "S", - "type": "S" - }, - { - "alpha_3": "une", - "name": "Uneme", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ung", - "name": "Ngarinyin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uni", - "name": "Uni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "unk", - "name": "Enawené-Nawé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "unm", - "name": "Unami", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "unn", - "name": "Kurnai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "unr", - "name": "Mundari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "unu", - "name": "Unubahe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "unx", - "name": "Munda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "unz", - "inverted_name": "Kaili, Unde", - "name": "Unde Kaili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uon", - "name": "Kulon", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "upi", - "name": "Umeda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "upv", - "name": "Uripiv-Wala-Rano-Atchin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ura", - "name": "Urarina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urb", - "name": "Urubú-Kaapor", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urc", - "name": "Urningangg", - "scope": "I", - "type": "E" - }, - { - "alpha_2": "ur", - "alpha_3": "urd", - "name": "Urdu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ure", - "name": "Uru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urf", - "name": "Uradhi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "urg", - "name": "Urigina", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urh", - "name": "Urhobo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uri", - "name": "Urim", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urk", - "name": "Urak Lawoi'", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "url", - "name": "Urali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urm", - "name": "Urapmin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urn", - "name": "Uruangnirin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uro", - "name": "Ura (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urp", - "name": "Uru-Pa-In", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urr", - "name": "Lehalurup", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urt", - "name": "Urat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uru", - "name": "Urumi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "urv", - "name": "Uruava", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "urw", - "name": "Sop", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urx", - "name": "Urimo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ury", - "name": "Orya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "urz", - "name": "Uru-Eu-Wau-Wau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "usa", - "name": "Usarufa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ush", - "name": "Ushojo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "usi", - "name": "Usui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "usk", - "name": "Usaghade", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "usp", - "name": "Uspanteco", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uss", - "name": "us-Saare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "usu", - "name": "Uya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uta", - "name": "Otank", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ute", - "name": "Ute-Southern Paiute", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uth", - "name": "ut-Hun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "utp", - "name": "Amba (Solomon Islands)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "utr", - "name": "Etulo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "utu", - "name": "Utu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uum", - "name": "Urum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uur", - "name": "Ura (Vanuatu)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uuu", - "name": "U", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uve", - "inverted_name": "Uvean, West", - "name": "West Uvean", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uvh", - "name": "Uri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uvl", - "name": "Lote", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uwa", - "name": "Kuku-Uwanh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uya", - "name": "Doko-Uyanga", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "uz", - "alpha_3": "uzb", - "name": "Uzbek", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "uzn", - "inverted_name": "Uzbek, Northern", - "name": "Northern Uzbek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "uzs", - "inverted_name": "Uzbek, Southern", - "name": "Southern Uzbek", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vaa", - "name": "Vaagri Booli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vae", - "name": "Vale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vaf", - "name": "Vafsi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vag", - "name": "Vagla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vah", - "name": "Varhadi-Nagpuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vai", - "name": "Vai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vaj", - "name": "Sekele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "val", - "name": "Vehes", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vam", - "name": "Vanimo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "van", - "name": "Valman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vao", - "name": "Vao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vap", - "name": "Vaiphei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "var", - "name": "Huarijio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vas", - "name": "Vasavi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vau", - "name": "Vanuma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vav", - "name": "Varli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vay", - "name": "Wayu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vbb", - "inverted_name": "Babar, Southeast", - "name": "Southeast Babar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vbk", - "inverted_name": "Bontok, Southwestern", - "name": "Southwestern Bontok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vec", - "name": "Venetian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ved", - "name": "Veddah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vel", - "name": "Veluws", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vem", - "name": "Vemgo-Mabas", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "ve", - "alpha_3": "ven", - "name": "Venda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "veo", - "name": "Ventureño", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "vep", - "name": "Veps", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ver", - "name": "Mom Jango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vgr", - "name": "Vaghri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vgt", - "name": "Vlaamse Gebarentaal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vic", - "inverted_name": "Creole English, Virgin Islands", - "name": "Virgin Islands Creole English", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vid", - "name": "Vidunda", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "vi", - "alpha_3": "vie", - "name": "Vietnamese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vif", - "name": "Vili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vig", - "name": "Viemo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vil", - "name": "Vilela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vin", - "name": "Vinza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vis", - "name": "Vishavan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vit", - "name": "Viti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "viv", - "name": "Iduna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vka", - "name": "Kariyarra", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "vkj", - "name": "Kujarge", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vkk", - "name": "Kaur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vkl", - "name": "Kulisusu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vkm", - "name": "Kamakan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "vkn", - "name": "Koro Nulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vko", - "name": "Kodeoha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vkp", - "inverted_name": "Creole Portuguese, Korlai", - "name": "Korlai Creole Portuguese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vkt", - "inverted_name": "Malay, Tenggarong Kutai", - "name": "Tenggarong Kutai Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vku", - "name": "Kurrama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vkz", - "name": "Koro Zuba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vlp", - "name": "Valpei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vls", - "name": "Vlaams", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vma", - "name": "Martuyhunira", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmb", - "name": "Barbaram", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "vmc", - "inverted_name": "Mixtec, Juxtlahuaca", - "name": "Juxtlahuaca Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmd", - "inverted_name": "Koraga, Mudu", - "name": "Mudu Koraga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vme", - "inverted_name": "Masela, East", - "name": "East Masela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmf", - "name": "Mainfränkisch", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmg", - "name": "Lungalunga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmh", - "name": "Maraghei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmi", - "name": "Miwa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "vmj", - "inverted_name": "Mixtec, Ixtayutla", - "name": "Ixtayutla Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmk", - "name": "Makhuwa-Shirima", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vml", - "name": "Malgana", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "vmm", - "inverted_name": "Mixtec, Mitlatongo", - "name": "Mitlatongo Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmp", - "inverted_name": "Mazatec, Soyaltepec", - "name": "Soyaltepec Mazatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmq", - "inverted_name": "Mixtec, Soyaltepec", - "name": "Soyaltepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmr", - "name": "Marenje", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vms", - "name": "Moksela", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "vmu", - "name": "Muluridyi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "vmv", - "inverted_name": "Maidu, Valley", - "name": "Valley Maidu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "vmw", - "name": "Makhuwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmx", - "inverted_name": "Mixtec, Tamazola", - "name": "Tamazola Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmy", - "inverted_name": "Mazatec, Ayautla", - "name": "Ayautla Mazatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vmz", - "inverted_name": "Mazatec, Mazatlán", - "name": "Mazatlán Mazatec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vnk", - "name": "Vano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vnm", - "name": "Vinmavis", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vnp", - "name": "Vunapu", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "vo", - "alpha_3": "vol", - "name": "Volapük", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "vor", - "name": "Voro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vot", - "name": "Votic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vra", - "name": "Vera'a", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vro", - "name": "Võro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vrs", - "name": "Varisi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vrt", - "name": "Burmbar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vsi", - "name": "Moldova Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vsl", - "name": "Venezuelan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vsv", - "name": "Valencian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vto", - "name": "Vitou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vum", - "name": "Vumbu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vun", - "name": "Vunjo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vut", - "name": "Vute", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "vwa", - "name": "Awa (China)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "waa", - "name": "Walla Walla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wab", - "name": "Wab", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wac", - "name": "Wasco-Wishram", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wad", - "name": "Wamesa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wae", - "name": "Walser", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "waf", - "name": "Wakoná", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wag", - "name": "Wa'ema", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wah", - "name": "Watubela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wai", - "name": "Wares", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "waj", - "name": "Waffa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wal", - "name": "Wolaytta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wam", - "name": "Wampanoag", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wan", - "name": "Wan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wao", - "name": "Wappo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wap", - "name": "Wapishana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "waq", - "name": "Wagiman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "war", - "name": "Waray (Philippines)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "was", - "name": "Washo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wat", - "name": "Kaninuwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wau", - "name": "Waurá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wav", - "name": "Waka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "waw", - "name": "Waiwai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wax", - "name": "Watam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "way", - "name": "Wayana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "waz", - "name": "Wampur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wba", - "name": "Warao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbb", - "name": "Wabo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbe", - "name": "Waritai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbf", - "name": "Wara", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbh", - "name": "Wanda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbi", - "name": "Vwanji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbj", - "name": "Alagwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbk", - "name": "Waigali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbl", - "name": "Wakhi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbm", - "name": "Wa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbp", - "name": "Warlpiri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbq", - "name": "Waddar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbr", - "name": "Wagdi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbs", - "name": "West Bengal Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbt", - "name": "Warnman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbv", - "name": "Wajarri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wbw", - "name": "Woi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wca", - "name": "Yanomámi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wci", - "inverted_name": "Gbe, Waci", - "name": "Waci Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wdd", - "name": "Wandji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wdg", - "name": "Wadaginam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wdj", - "name": "Wadjiginy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wdk", - "name": "Wadikali", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wdt", - "name": "Wendat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wdu", - "name": "Wadjigu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wdy", - "name": "Wadjabangayi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wea", - "name": "Wewaw", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wec", - "name": "Wè Western", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wed", - "name": "Wedau", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "weg", - "name": "Wergaia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "weh", - "name": "Weh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wei", - "name": "Kiunum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wem", - "inverted_name": "Gbe, Weme", - "name": "Weme Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "weo", - "name": "Wemale", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wep", - "name": "Westphalien", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wer", - "name": "Weri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wes", - "inverted_name": "Pidgin, Cameroon", - "name": "Cameroon Pidgin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wet", - "name": "Perai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "weu", - "inverted_name": "Chin, Rawngtu", - "name": "Rawngtu Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wew", - "name": "Wejewa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wfg", - "name": "Yafi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wga", - "name": "Wagaya", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wgb", - "name": "Wagawaga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wgg", - "name": "Wangkangurru", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wgi", - "name": "Wahgi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wgo", - "name": "Waigeo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wgu", - "name": "Wirangu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wgy", - "name": "Warrgamay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wha", - "name": "Sou Upaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "whg", - "inverted_name": "Wahgi, North", - "name": "North Wahgi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "whk", - "inverted_name": "Kenyah, Wahau", - "name": "Wahau Kenyah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "whu", - "inverted_name": "Kayan, Wahau", - "name": "Wahau Kayan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wib", - "inverted_name": "Toussian, Southern", - "name": "Southern Toussian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wic", - "name": "Wichita", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wie", - "name": "Wik-Epa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wif", - "name": "Wik-Keyangan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wig", - "name": "Wik Ngathan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wih", - "name": "Wik-Me'anha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wii", - "name": "Minidien", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wij", - "name": "Wik-Iiyanh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wik", - "name": "Wikalkan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wil", - "name": "Wilawila", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wim", - "name": "Wik-Mungkan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "win", - "name": "Ho-Chunk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wir", - "name": "Wiraféd", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wiu", - "name": "Wiru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wiv", - "name": "Vitu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wiy", - "name": "Wiyot", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wja", - "name": "Waja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wji", - "name": "Warji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wka", - "name": "Kw'adza", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wkb", - "name": "Kumbaran", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wkd", - "name": "Wakde", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wkl", - "name": "Kalanadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wkr", - "name": "Keerray-Woorroong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wku", - "name": "Kunduvadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wkw", - "name": "Wakawaka", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wky", - "name": "Wangkayutyuru", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wla", - "name": "Walio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wlc", - "inverted_name": "Comorian, Mwali", - "name": "Mwali Comorian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wle", - "name": "Wolane", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wlg", - "name": "Kunbarlang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wlh", - "name": "Welaun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wli", - "name": "Waioli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wlk", - "name": "Wailaki", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wll", - "name": "Wali (Sudan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wlm", - "inverted_name": "Welsh, Middle", - "name": "Middle Welsh", - "scope": "I", - "type": "H" - }, - { - "alpha_2": "wa", - "alpha_3": "wln", - "name": "Walloon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wlo", - "name": "Wolio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wlr", - "name": "Wailapa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wls", - "name": "Wallisian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wlu", - "name": "Wuliwuli", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wlv", - "name": "Wichí Lhamtés Vejoz", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wlw", - "name": "Walak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wlx", - "name": "Wali (Ghana)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wly", - "name": "Waling", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wma", - "name": "Mawa (Nigeria)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wmb", - "name": "Wambaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wmc", - "name": "Wamas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wmd", - "name": "Mamaindé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wme", - "name": "Wambule", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wmg", - "inverted_name": "Minyag, Western", - "name": "Western Minyag", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wmh", - "name": "Waima'a", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wmi", - "name": "Wamin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wmm", - "name": "Maiwa (Indonesia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wmn", - "name": "Waamwang", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wmo", - "name": "Wom (Papua New Guinea)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wms", - "name": "Wambon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wmt", - "name": "Walmajarri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wmw", - "name": "Mwani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wmx", - "name": "Womo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wnb", - "name": "Wanambre", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wnc", - "name": "Wantoat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wnd", - "name": "Wandarang", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wne", - "name": "Waneci", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wng", - "name": "Wanggom", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wni", - "inverted_name": "Comorian, Ndzwani", - "name": "Ndzwani Comorian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wnk", - "name": "Wanukaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wnm", - "name": "Wanggamala", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wnn", - "name": "Wunumara", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wno", - "name": "Wano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wnp", - "name": "Wanap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wnu", - "name": "Usan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wnw", - "name": "Wintu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wny", - "name": "Wanyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "woa", - "name": "Kuwema", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wob", - "name": "Wè Northern", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "woc", - "name": "Wogeo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wod", - "name": "Wolani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "woe", - "name": "Woleaian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wof", - "inverted_name": "Wolof, Gambian", - "name": "Gambian Wolof", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wog", - "name": "Wogamusin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "woi", - "name": "Kamang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wok", - "name": "Longto", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "wo", - "alpha_3": "wol", - "name": "Wolof", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wom", - "name": "Wom (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "won", - "name": "Wongo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "woo", - "name": "Manombai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wor", - "name": "Woria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wos", - "name": "Hanga Hundi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wow", - "name": "Wawonii", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "woy", - "name": "Weyto", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wpc", - "name": "Maco", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wrb", - "name": "Waluwarra", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wrg", - "name": "Warungu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wrh", - "name": "Wiradjuri", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wri", - "name": "Wariyangga", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wrk", - "name": "Garrwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wrl", - "name": "Warlmanpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wrm", - "name": "Warumungu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wrn", - "name": "Warnang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wro", - "name": "Worrorra", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wrp", - "name": "Waropen", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wrr", - "name": "Wardaman", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wrs", - "name": "Waris", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wru", - "name": "Waru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wrv", - "name": "Waruna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wrw", - "name": "Gugu Warra", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wrx", - "name": "Wae Rana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wry", - "name": "Merwari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wrz", - "name": "Waray (Australia)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wsa", - "name": "Warembori", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wsg", - "inverted_name": "Gondi, Adilabad", - "name": "Adilabad Gondi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wsi", - "name": "Wusi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wsk", - "name": "Waskia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wsr", - "name": "Owenia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wss", - "name": "Wasa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wsu", - "name": "Wasu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wsv", - "name": "Wotapuri-Katarqalai", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wtf", - "name": "Watiwa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wth", - "name": "Wathawurrung", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wti", - "name": "Berta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wtk", - "name": "Watakataui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wtm", - "name": "Mewati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wtw", - "name": "Wotu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wua", - "name": "Wikngenchera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wub", - "name": "Wunambal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wud", - "name": "Wudu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wuh", - "name": "Wutunhua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wul", - "name": "Silimo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wum", - "name": "Wumbvu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wun", - "name": "Bungu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wur", - "name": "Wurrugu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wut", - "name": "Wutung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wuu", - "inverted_name": "Chinese, Wu", - "name": "Wu Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wuv", - "name": "Wuvulu-Aua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wux", - "name": "Wulna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wuy", - "name": "Wauyai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wwa", - "name": "Waama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wwb", - "name": "Wakabunga", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wwo", - "name": "Wetamut", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wwr", - "name": "Warrwa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "www", - "name": "Wawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wxa", - "name": "Waxianghua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wxw", - "name": "Wardandi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wyb", - "name": "Wangaaybuwan-Ngiyambaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wyi", - "name": "Woiwurrung", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "wym", - "name": "Wymysorys", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wyn", - "name": "Wyandot", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wyr", - "name": "Wayoró", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "wyy", - "inverted_name": "Fijian, Western", - "name": "Western Fijian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xaa", - "inverted_name": "Arabic, Andalusian", - "name": "Andalusian Arabic", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xab", - "name": "Sambe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xac", - "name": "Kachari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xad", - "name": "Adai", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xae", - "name": "Aequian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xag", - "name": "Aghwan", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xai", - "name": "Kaimbé", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xaj", - "name": "Ararandewára", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xak", - "name": "Máku", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xal", - "name": "Kalmyk", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xam", - "name": "ǀXam", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xan", - "name": "Xamtanga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xao", - "name": "Khao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xap", - "name": "Apalachee", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xaq", - "name": "Aquitanian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xar", - "name": "Karami", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xas", - "name": "Kamas", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xat", - "name": "Katawixi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xau", - "name": "Kauwera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xav", - "name": "Xavánte", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xaw", - "name": "Kawaiisu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xay", - "name": "Kayan Mahakam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xbb", - "inverted_name": "Burdekin, Lower", - "name": "Lower Burdekin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xbc", - "name": "Bactrian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xbd", - "name": "Bindal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xbe", - "name": "Bigambal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xbg", - "name": "Bunganditj", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xbi", - "name": "Kombio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xbj", - "name": "Birrpayi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xbm", - "inverted_name": "Breton, Middle", - "name": "Middle Breton", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xbn", - "name": "Kenaboi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xbo", - "name": "Bolgarian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xbp", - "name": "Bibbulman", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xbr", - "name": "Kambera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xbw", - "name": "Kambiwá", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xby", - "name": "Batjala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xcb", - "name": "Cumbric", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xcc", - "name": "Camunic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xce", - "name": "Celtiberian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xcg", - "inverted_name": "Gaulish, Cisalpine", - "name": "Cisalpine Gaulish", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xch", - "name": "Chemakum", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xcl", - "inverted_name": "Armenian, Classical", - "name": "Classical Armenian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xcm", - "name": "Comecrudo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xcn", - "name": "Cotoname", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xco", - "name": "Chorasmian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xcr", - "name": "Carian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xct", - "inverted_name": "Tibetan, Classical", - "name": "Classical Tibetan", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xcu", - "name": "Curonian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xcv", - "name": "Chuvantsy", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xcw", - "name": "Coahuilteco", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xcy", - "name": "Cayuse", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xda", - "name": "Darkinyung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xdc", - "name": "Dacian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xdk", - "name": "Dharuk", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xdm", - "name": "Edomite", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xdo", - "name": "Kwandu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xdq", - "name": "Kaitag", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xdy", - "inverted_name": "Dayak, Malayic", - "name": "Malayic Dayak", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xeb", - "name": "Eblan", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xed", - "name": "Hdi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xeg", - "name": "ǁXegwi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xel", - "name": "Kelo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xem", - "name": "Kembayan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xep", - "name": "Epi-Olmec", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xer", - "name": "Xerénte", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xes", - "name": "Kesawai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xet", - "name": "Xetá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xeu", - "name": "Keoru-Ahia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xfa", - "name": "Faliscan", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xga", - "name": "Galatian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xgb", - "name": "Gbin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xgd", - "name": "Gudang", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xgf", - "name": "Gabrielino-Fernandeño", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xgg", - "name": "Goreng", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xgi", - "name": "Garingbal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xgl", - "name": "Galindan", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xgm", - "name": "Dharumbal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xgr", - "name": "Garza", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xgu", - "name": "Unggumi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xgw", - "name": "Guwa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xha", - "name": "Harami", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xhc", - "name": "Hunnic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xhd", - "name": "Hadrami", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xhe", - "name": "Khetrani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xhm", - "inverted_name": "Khmer, Middle (1400 to 1850 CE)", - "name": "Middle Khmer (1400 to 1850 CE)", - "scope": "I", - "type": "H" - }, - { - "alpha_2": "xh", - "alpha_3": "xho", - "name": "Xhosa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xhr", - "name": "Hernican", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xht", - "name": "Hattic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xhu", - "name": "Hurrian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xhv", - "name": "Khua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xib", - "name": "Iberian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xii", - "name": "Xiri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xil", - "name": "Illyrian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xin", - "name": "Xinca", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xir", - "name": "Xiriâna", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xis", - "name": "Kisan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xiv", - "name": "Indus Valley Language", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xiy", - "name": "Xipaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xjb", - "name": "Minjungbal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xjt", - "name": "Jaitmatang", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xka", - "name": "Kalkoti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkb", - "inverted_name": "Nago, Northern", - "name": "Northern Nago", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkc", - "name": "Kho'ini", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkd", - "inverted_name": "Kayan, Mendalam", - "name": "Mendalam Kayan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xke", - "name": "Kereho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkf", - "name": "Khengkha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkg", - "name": "Kagoro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xki", - "name": "Kenyan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkj", - "name": "Kajali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkk", - "name": "Kachok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkl", - "name": "Mainstream Kenyah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkn", - "inverted_name": "Kayan, Kayan River", - "name": "Kayan River Kayan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xko", - "name": "Kiorr", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkp", - "name": "Kabatei", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkq", - "name": "Koroni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkr", - "name": "Xakriabá", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xks", - "name": "Kumbewaha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkt", - "name": "Kantosi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xku", - "name": "Kaamba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkv", - "name": "Kgalagadi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkw", - "name": "Kembra", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkx", - "name": "Karore", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xky", - "name": "Uma' Lasan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xkz", - "name": "Kurtokha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xla", - "name": "Kamula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xlb", - "name": "Loup B", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xlc", - "name": "Lycian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xld", - "name": "Lydian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xle", - "name": "Lemnian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xlg", - "name": "Ligurian (Ancient)", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xli", - "name": "Liburnian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xln", - "name": "Alanic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xlo", - "name": "Loup A", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xlp", - "name": "Lepontic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xls", - "name": "Lusitanian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xlu", - "inverted_name": "Luwian, Cuneiform", - "name": "Cuneiform Luwian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xly", - "name": "Elymian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xma", - "name": "Mushungulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmb", - "name": "Mbonga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmc", - "name": "Makhuwa-Marrevone", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmd", - "name": "Mbudum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xme", - "name": "Median", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xmf", - "name": "Mingrelian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmg", - "name": "Mengaka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmh", - "name": "Kugu-Muminh", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmj", - "name": "Majera", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmk", - "inverted_name": "Macedonian, Ancient", - "name": "Ancient Macedonian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xml", - "name": "Malaysian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmm", - "inverted_name": "Malay, Manado", - "name": "Manado Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmn", - "inverted_name": "Persian, Manichaean Middle", - "name": "Manichaean Middle Persian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xmo", - "name": "Morerebi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmp", - "name": "Kuku-Mu'inh", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xmq", - "name": "Kuku-Mangk", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xmr", - "name": "Meroitic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xms", - "name": "Moroccan Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmt", - "name": "Matbat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmu", - "name": "Kamu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xmv", - "inverted_name": "Malagasy, Antankarana", - "name": "Antankarana Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmw", - "inverted_name": "Malagasy, Tsimihety", - "name": "Tsimihety Malagasy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmx", - "name": "Salawati", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmy", - "name": "Mayaguduna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xmz", - "name": "Mori Bawah", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xna", - "inverted_name": "North Arabian, Ancient", - "name": "Ancient North Arabian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xnb", - "name": "Kanakanabu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xng", - "inverted_name": "Mongolian, Middle", - "name": "Middle Mongolian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xnh", - "name": "Kuanhua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xni", - "name": "Ngarigu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xnj", - "name": "Ngoni (Tanzania)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xnk", - "name": "Nganakarti", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xnm", - "name": "Ngumbarl", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xnn", - "inverted_name": "Kankanay, Northern", - "name": "Northern Kankanay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xno", - "name": "Anglo-Norman", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xnq", - "name": "Ngoni (Mozambique)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xnr", - "name": "Kangri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xns", - "name": "Kanashi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xnt", - "name": "Narragansett", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xnu", - "name": "Nukunul", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xny", - "name": "Nyiyaparli", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xnz", - "name": "Kenzi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xoc", - "name": "O'chi'chi'", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xod", - "name": "Kokoda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xog", - "name": "Soga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xoi", - "name": "Kominimung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xok", - "name": "Xokleng", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xom", - "name": "Komo (Sudan)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xon", - "name": "Konkomba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xoo", - "name": "Xukurú", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xop", - "name": "Kopar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xor", - "name": "Korubo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xow", - "name": "Kowaki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xpa", - "name": "Pirriya", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpb", - "inverted_name": "Tasmanian, Northeastern", - "name": "Northeastern Tasmanian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpc", - "name": "Pecheneg", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xpd", - "inverted_name": "Tasmanian, Oyster Bay", - "name": "Oyster Bay Tasmanian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpe", - "inverted_name": "Kpelle, Liberia", - "name": "Liberia Kpelle", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xpf", - "inverted_name": "Tasmanian, Southeast", - "name": "Southeast Tasmanian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpg", - "name": "Phrygian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xph", - "inverted_name": "Tasmanian, North Midlands", - "name": "North Midlands Tasmanian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpi", - "name": "Pictish", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xpj", - "name": "Mpalitjanh", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpk", - "inverted_name": "Pano, Kulina", - "name": "Kulina Pano", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xpl", - "inverted_name": "Tasmanian, Port Sorell", - "name": "Port Sorell Tasmanian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpm", - "name": "Pumpokol", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpn", - "name": "Kapinawá", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpo", - "name": "Pochutec", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpp", - "name": "Puyo-Paekche", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xpq", - "name": "Mohegan-Pequot", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpr", - "name": "Parthian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xps", - "name": "Pisidian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xpt", - "name": "Punthamara", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpu", - "name": "Punic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xpv", - "inverted_name": "Tasmanian, Northern", - "name": "Northern Tasmanian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpw", - "inverted_name": "Tasmanian, Northwestern", - "name": "Northwestern Tasmanian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpx", - "inverted_name": "Tasmanian, Southwestern", - "name": "Southwestern Tasmanian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xpy", - "name": "Puyo", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xpz", - "inverted_name": "Tasmanian, Bruny Island", - "name": "Bruny Island Tasmanian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xqa", - "name": "Karakhanid", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xqt", - "name": "Qatabanian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xra", - "name": "Krahô", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xrb", - "inverted_name": "Karaboro, Eastern", - "name": "Eastern Karaboro", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xrd", - "name": "Gundungurra", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xre", - "name": "Kreye", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xrg", - "name": "Minang", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xri", - "name": "Krikati-Timbira", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xrm", - "name": "Armazic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xrn", - "name": "Arin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xrr", - "name": "Raetic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xrt", - "name": "Aranama-Tamique", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xru", - "name": "Marriammu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xrw", - "name": "Karawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsa", - "name": "Sabaean", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xsb", - "name": "Sambal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsc", - "name": "Scythian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xsd", - "name": "Sidetic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xse", - "name": "Sempan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsh", - "name": "Shamang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsi", - "name": "Sio", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsj", - "name": "Subi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsl", - "inverted_name": "Slavey, South", - "name": "South Slavey", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsm", - "name": "Kasem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsn", - "name": "Sanga (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xso", - "name": "Solano", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xsp", - "name": "Silopi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsq", - "name": "Makhuwa-Saka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsr", - "name": "Sherpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xss", - "name": "Assan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xsu", - "name": "Sanumá", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xsv", - "name": "Sudovian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xsy", - "name": "Saisiyat", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xta", - "inverted_name": "Mixtec, Alcozauca", - "name": "Alcozauca Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtb", - "inverted_name": "Mixtec, Chazumba", - "name": "Chazumba Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtc", - "name": "Katcha-Kadugli-Miri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtd", - "inverted_name": "Mixtec, Diuxi-Tilantongo", - "name": "Diuxi-Tilantongo Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xte", - "name": "Ketengban", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtg", - "inverted_name": "Gaulish, Transalpine", - "name": "Transalpine Gaulish", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xth", - "name": "Yitha Yitha", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xti", - "inverted_name": "Mixtec, Sinicahua", - "name": "Sinicahua Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtj", - "inverted_name": "Mixtec, San Juan Teita", - "name": "San Juan Teita Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtl", - "inverted_name": "Mixtec, Tijaltepec", - "name": "Tijaltepec Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtm", - "inverted_name": "Mixtec, Magdalena Peñasco", - "name": "Magdalena Peñasco Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtn", - "inverted_name": "Mixtec, Northern Tlaxiaco", - "name": "Northern Tlaxiaco Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xto", - "name": "Tokharian A", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xtp", - "inverted_name": "Mixtec, San Miguel Piedras", - "name": "San Miguel Piedras Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtq", - "name": "Tumshuqese", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "xtr", - "inverted_name": "Tripuri, Early", - "name": "Early Tripuri", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xts", - "inverted_name": "Mixtec, Sindihui", - "name": "Sindihui Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtt", - "inverted_name": "Mixtec, Tacahua", - "name": "Tacahua Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtu", - "inverted_name": "Mixtec, Cuyamecalco", - "name": "Cuyamecalco Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xtv", - "name": "Thawa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xtw", - "name": "Tawandê", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xty", - "inverted_name": "Mixtec, Yoloxochitl", - "name": "Yoloxochitl Mixtec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xua", - "inverted_name": "Kurumba, Alu", - "name": "Alu Kurumba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xub", - "inverted_name": "Kurumba, Betta", - "name": "Betta Kurumba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xud", - "name": "Umiida", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xug", - "name": "Kunigami", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xuj", - "inverted_name": "Kurumba, Jennu", - "name": "Jennu Kurumba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xul", - "name": "Ngunawal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xum", - "name": "Umbrian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xun", - "name": "Unggaranggu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xuo", - "name": "Kuo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xup", - "inverted_name": "Umpqua, Upper", - "name": "Upper Umpqua", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xur", - "name": "Urartian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xut", - "name": "Kuthant", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xuu", - "name": "Kxoe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xve", - "name": "Venetic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xvi", - "name": "Kamviri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xvn", - "name": "Vandalic", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xvo", - "name": "Volscian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xvs", - "name": "Vestinian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xwa", - "name": "Kwaza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xwc", - "name": "Woccon", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xwd", - "name": "Wadi Wadi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xwe", - "inverted_name": "Gbe, Xwela", - "name": "Xwela Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xwg", - "name": "Kwegu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xwj", - "name": "Wajuk", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xwk", - "name": "Wangkumara", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xwl", - "inverted_name": "Gbe, Western Xwla", - "name": "Western Xwla Gbe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xwo", - "inverted_name": "Oirat, Written", - "name": "Written Oirat", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xwr", - "name": "Kwerba Mamberamo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xwt", - "name": "Wotjobaluk", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xww", - "name": "Wemba Wemba", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xxb", - "name": "Boro (Ghana)", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xxk", - "name": "Ke'o", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xxm", - "name": "Minkin", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xxr", - "name": "Koropó", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xxt", - "name": "Tambora", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xya", - "name": "Yaygir", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xyb", - "name": "Yandjibara", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xyj", - "name": "Mayi-Yapi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xyk", - "name": "Mayi-Kulan", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xyl", - "name": "Yalakalore", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xyt", - "name": "Mayi-Thakurti", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xyy", - "name": "Yorta Yorta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "xzh", - "name": "Zhang-Zhung", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "xzm", - "name": "Zemgalian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "xzp", - "inverted_name": "Zapotec, Ancient", - "name": "Ancient Zapotec", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "yaa", - "name": "Yaminahua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yab", - "name": "Yuhup", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yac", - "inverted_name": "Yali, Pass Valley", - "name": "Pass Valley Yali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yad", - "name": "Yagua", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yae", - "name": "Pumé", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yaf", - "name": "Yaka (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yag", - "name": "Yámana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yah", - "name": "Yazgulyam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yai", - "name": "Yagnobi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yaj", - "name": "Banda-Yangere", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yak", - "name": "Yakama", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yal", - "name": "Yalunka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yam", - "name": "Yamba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yan", - "name": "Mayangna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yao", - "name": "Yao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yap", - "name": "Yapese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yaq", - "name": "Yaqui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yar", - "name": "Yabarana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yas", - "name": "Nugunu (Cameroon)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yat", - "name": "Yambeta", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yau", - "name": "Yuwana", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yav", - "name": "Yangben", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yaw", - "name": "Yawalapití", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yax", - "name": "Yauma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yay", - "name": "Agwagwune", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yaz", - "name": "Lokaa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yba", - "name": "Yala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ybb", - "name": "Yemba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ybe", - "inverted_name": "Yugur, West", - "name": "West Yugur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ybh", - "name": "Yakha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ybi", - "name": "Yamphu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ybj", - "name": "Hasha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ybk", - "name": "Bokha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ybl", - "name": "Yukuben", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ybm", - "name": "Yaben", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ybn", - "name": "Yabaâna", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ybo", - "name": "Yabong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ybx", - "name": "Yawiyo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yby", - "name": "Yaweyuha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ych", - "name": "Chesu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ycl", - "name": "Lolopo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ycn", - "name": "Yucuna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ycp", - "name": "Chepya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yda", - "name": "Yanda", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ydd", - "inverted_name": "Yiddish, Eastern", - "name": "Eastern Yiddish", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yde", - "name": "Yangum Dey", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ydg", - "name": "Yidgha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ydk", - "name": "Yoidik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yea", - "name": "Ravula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yec", - "name": "Yeniche", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yee", - "name": "Yimas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yei", - "name": "Yeni", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yej", - "name": "Yevanic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yel", - "name": "Yela", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yer", - "name": "Tarok", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yes", - "name": "Nyankpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yet", - "name": "Yetfa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yeu", - "name": "Yerukula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yev", - "name": "Yapunda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yey", - "name": "Yeyi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yga", - "name": "Malyangapa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ygi", - "name": "Yiningayi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ygl", - "name": "Yangum Gel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ygm", - "name": "Yagomi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ygp", - "name": "Gepo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ygr", - "name": "Yagaria", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ygs", - "name": "Yolŋu Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ygu", - "name": "Yugul", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ygw", - "name": "Yagwoia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yha", - "inverted_name": "Buyang, Baha", - "name": "Baha Buyang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yhd", - "inverted_name": "Arabic, Judeo-Iraqi", - "name": "Judeo-Iraqi Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yhl", - "inverted_name": "Phowa, Hlepho", - "name": "Hlepho Phowa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yhs", - "name": "Yan-nhaŋu Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yia", - "name": "Yinggarda", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "yi", - "alpha_3": "yid", - "name": "Yiddish", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "yif", - "name": "Ache", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yig", - "inverted_name": "Nasu, Wusa", - "name": "Wusa Nasu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yih", - "inverted_name": "Yiddish, Western", - "name": "Western Yiddish", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yii", - "name": "Yidiny", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yij", - "name": "Yindjibarndi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yik", - "inverted_name": "Lalo, Dongshanba", - "name": "Dongshanba Lalo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yil", - "name": "Yindjilandji", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yim", - "inverted_name": "Naga, Yimchungru", - "name": "Yimchungru Naga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yin", - "name": "Riang Lai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yip", - "name": "Pholo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yiq", - "name": "Miqie", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yir", - "inverted_name": "Awyu, North", - "name": "North Awyu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yis", - "name": "Yis", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yit", - "inverted_name": "Lalu, Eastern", - "name": "Eastern Lalu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yiu", - "name": "Awu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yiv", - "inverted_name": "Nisu, Northern", - "name": "Northern Nisu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yix", - "inverted_name": "Yi, Axi", - "name": "Axi Yi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yiz", - "name": "Azhe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yka", - "name": "Yakan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ykg", - "inverted_name": "Yukaghir, Northern", - "name": "Northern Yukaghir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yki", - "name": "Yoke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ykk", - "name": "Yakaikeke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ykl", - "name": "Khlula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ykm", - "name": "Kap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ykn", - "name": "Kua-nsi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yko", - "name": "Yasa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ykr", - "name": "Yekora", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ykt", - "name": "Kathu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yku", - "name": "Kuamasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yky", - "name": "Yakoma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yla", - "name": "Yaul", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ylb", - "name": "Yaleba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yle", - "name": "Yele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ylg", - "name": "Yelogu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yli", - "inverted_name": "Yali, Angguruk", - "name": "Angguruk Yali", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yll", - "name": "Yil", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ylm", - "name": "Limi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yln", - "inverted_name": "Buyang, Langnian", - "name": "Langnian Buyang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ylo", - "inverted_name": "Yi, Naluo", - "name": "Naluo Yi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ylr", - "name": "Yalarnnga", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ylu", - "name": "Aribwaung", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yly", - "name": "Nyâlayu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymb", - "name": "Yambes", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymc", - "inverted_name": "Muji, Southern", - "name": "Southern Muji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymd", - "name": "Muda", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yme", - "name": "Yameo", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ymg", - "name": "Yamongeri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymh", - "name": "Mili", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymi", - "name": "Moji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymk", - "name": "Makwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yml", - "name": "Iamalele", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymm", - "name": "Maay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymn", - "name": "Yamna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymo", - "name": "Yangum Mon", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymp", - "name": "Yamap", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymq", - "inverted_name": "Muji, Qila", - "name": "Qila Muji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymr", - "name": "Malasar", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yms", - "name": "Mysian", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "ymx", - "inverted_name": "Muji, Northern", - "name": "Northern Muji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ymz", - "name": "Muzi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yna", - "name": "Aluo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ynd", - "name": "Yandruwandha", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yne", - "name": "Lang'e", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yng", - "name": "Yango", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ynk", - "inverted_name": "Yupik, Naukan", - "name": "Naukan Yupik", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ynl", - "name": "Yangulam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ynn", - "name": "Yana", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yno", - "name": "Yong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ynq", - "name": "Yendang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yns", - "name": "Yansi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ynu", - "name": "Yahuna", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yob", - "name": "Yoba", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yog", - "name": "Yogad", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yoi", - "name": "Yonaguni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yok", - "name": "Yokuts", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yol", - "name": "Yola", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yom", - "name": "Yombe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yon", - "name": "Yongkom", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "yo", - "alpha_3": "yor", - "name": "Yoruba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yot", - "name": "Yotti", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yox", - "name": "Yoron", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yoy", - "name": "Yoy", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ypa", - "name": "Phala", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ypb", - "inverted_name": "Phowa, Labo", - "name": "Labo Phowa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ypg", - "name": "Phola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yph", - "name": "Phupha", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ypm", - "name": "Phuma", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ypn", - "inverted_name": "Phowa, Ani", - "name": "Ani Phowa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ypo", - "inverted_name": "Phola, Alo", - "name": "Alo Phola", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ypp", - "name": "Phupa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ypz", - "name": "Phuza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yra", - "name": "Yerakai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yrb", - "name": "Yareba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yre", - "name": "Yaouré", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yrk", - "name": "Nenets", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yrl", - "name": "Nhengatu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yrm", - "name": "Yirrk-Mel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yrn", - "name": "Yerong", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yro", - "name": "Yaroamë", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yrs", - "name": "Yarsun", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yrw", - "name": "Yarawata", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yry", - "name": "Yarluyandi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ysc", - "name": "Yassic", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ysd", - "name": "Samatao", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ysg", - "name": "Sonaga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ysl", - "name": "Yugoslavian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ysm", - "name": "Myanmar Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ysn", - "name": "Sani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yso", - "name": "Nisi (China)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ysp", - "inverted_name": "Lolopo, Southern", - "name": "Southern Lolopo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ysr", - "inverted_name": "Yupik, Sirenik", - "name": "Sirenik Yupik", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yss", - "name": "Yessan-Mayo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ysy", - "name": "Sanie", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yta", - "name": "Talu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ytl", - "name": "Tanglang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ytp", - "name": "Thopho", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ytw", - "name": "Yout Wam", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yty", - "name": "Yatay", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yua", - "name": "Yucateco", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yub", - "name": "Yugambal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yuc", - "name": "Yuchi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yud", - "inverted_name": "Arabic, Judeo-Tripolitanian", - "name": "Judeo-Tripolitanian Arabic", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yue", - "inverted_name": "Chinese, Yue", - "name": "Yue Chinese", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yuf", - "name": "Havasupai-Walapai-Yavapai", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yug", - "name": "Yug", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yui", - "name": "Yurutí", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yuj", - "name": "Karkar-Yuri", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yuk", - "name": "Yuki", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yul", - "name": "Yulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yum", - "name": "Quechan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yun", - "name": "Bena (Nigeria)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yup", - "name": "Yukpa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yuq", - "name": "Yuqui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yur", - "name": "Yurok", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yut", - "name": "Yopno", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yuw", - "name": "Yau (Morobe Province)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yux", - "inverted_name": "Yukaghir, Southern", - "name": "Southern Yukaghir", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yuy", - "inverted_name": "Yugur, East", - "name": "East Yugur", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yuz", - "name": "Yuracare", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yva", - "name": "Yawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yvt", - "name": "Yavitero", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "ywa", - "name": "Kalou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ywg", - "name": "Yinhawangka", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ywl", - "inverted_name": "Lalu, Western", - "name": "Western Lalu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ywn", - "name": "Yawanawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ywq", - "inverted_name": "Yi, Wuding-Luquan", - "name": "Wuding-Luquan Yi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ywr", - "name": "Yawuru", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ywt", - "inverted_name": "Lalo, Xishanba", - "name": "Xishanba Lalo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ywu", - "inverted_name": "Nasu, Wumeng", - "name": "Wumeng Nasu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yww", - "name": "Yawarawarga", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yxa", - "name": "Mayawali", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yxg", - "name": "Yagara", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yxl", - "name": "Yardliyawarra", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yxm", - "name": "Yinwum", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yxu", - "name": "Yuyu", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yxy", - "name": "Yabula Yabula", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yyr", - "name": "Yir Yoront", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "yyu", - "name": "Yau (Sandaun Province)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yyz", - "name": "Ayizi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yzg", - "inverted_name": "Buyang, E'ma", - "name": "E'ma Buyang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "yzk", - "name": "Zokhuo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zaa", - "inverted_name": "Zapotec, Sierra de Juárez", - "name": "Sierra de Juárez Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zab", - "inverted_name": "Zapotec, Western Tlacolula Valley", - "name": "Western Tlacolula Valley Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zac", - "inverted_name": "Zapotec, Ocotlán", - "name": "Ocotlán Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zad", - "inverted_name": "Zapotec, Cajonos", - "name": "Cajonos Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zae", - "inverted_name": "Zapotec, Yareni", - "name": "Yareni Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zaf", - "inverted_name": "Zapotec, Ayoquesco", - "name": "Ayoquesco Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zag", - "name": "Zaghawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zah", - "name": "Zangwal", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zai", - "inverted_name": "Zapotec, Isthmus", - "name": "Isthmus Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zaj", - "name": "Zaramo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zak", - "name": "Zanaki", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zal", - "name": "Zauzou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zam", - "inverted_name": "Zapotec, Miahuatlán", - "name": "Miahuatlán Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zao", - "inverted_name": "Zapotec, Ozolotepec", - "name": "Ozolotepec Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zap", - "name": "Zapotec", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "zaq", - "inverted_name": "Zapotec, Aloápam", - "name": "Aloápam Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zar", - "inverted_name": "Zapotec, Rincón", - "name": "Rincón Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zas", - "inverted_name": "Zapotec, Santo Domingo Albarradas", - "name": "Santo Domingo Albarradas Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zat", - "inverted_name": "Zapotec, Tabaa", - "name": "Tabaa Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zau", - "name": "Zangskari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zav", - "inverted_name": "Zapotec, Yatzachi", - "name": "Yatzachi Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zaw", - "inverted_name": "Zapotec, Mitla", - "name": "Mitla Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zax", - "inverted_name": "Zapotec, Xadani", - "name": "Xadani Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zay", - "name": "Zayse-Zergulla", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zaz", - "name": "Zari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zba", - "name": "Balaibalan", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "zbc", - "inverted_name": "Berawan, Central", - "name": "Central Berawan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zbe", - "inverted_name": "Berawan, East", - "name": "East Berawan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zbl", - "name": "Blissymbols", - "scope": "I", - "type": "C" - }, - { - "alpha_3": "zbt", - "name": "Batui", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zbu", - "name": "Bu (Bauchi State)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zbw", - "inverted_name": "Berawan, West", - "name": "West Berawan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zca", - "inverted_name": "Zapotec, Coatecas Altas", - "name": "Coatecas Altas Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zcd", - "inverted_name": "Zapotec, Las Delicias", - "name": "Las Delicias Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zch", - "inverted_name": "Zhuang, Central Hongshuihe", - "name": "Central Hongshuihe Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zdj", - "inverted_name": "Comorian, Ngazidja", - "name": "Ngazidja Comorian", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zea", - "name": "Zeeuws", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zeg", - "name": "Zenag", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zeh", - "inverted_name": "Zhuang, Eastern Hongshuihe", - "name": "Eastern Hongshuihe Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zen", - "name": "Zenaga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zga", - "name": "Kinga", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zgb", - "inverted_name": "Zhuang, Guibei", - "name": "Guibei Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zgh", - "inverted_name": "Tamazight, Standard Moroccan", - "name": "Standard Moroccan Tamazight", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zgm", - "inverted_name": "Zhuang, Minz", - "name": "Minz Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zgn", - "inverted_name": "Zhuang, Guibian", - "name": "Guibian Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zgr", - "name": "Magori", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "za", - "alpha_3": "zha", - "name": "Zhuang", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "zhb", - "name": "Zhaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zhd", - "inverted_name": "Zhuang, Dai", - "name": "Dai Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zhi", - "name": "Zhire", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zhn", - "inverted_name": "Zhuang, Nong", - "name": "Nong Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "zh", - "alpha_3": "zho", - "bibliographic": "chi", - "name": "Chinese", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "zhw", - "name": "Zhoa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zia", - "name": "Zia", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zib", - "name": "Zimbabwe Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zik", - "name": "Zimakani", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zil", - "name": "Zialo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zim", - "name": "Mesme", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zin", - "name": "Zinza", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ziw", - "name": "Zigula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ziz", - "name": "Zizilivakan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zka", - "name": "Kaimbulawa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zkb", - "name": "Koibal", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zkd", - "name": "Kadu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zkg", - "name": "Koguryo", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "zkh", - "name": "Khorezmian", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "zkk", - "name": "Karankawa", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zkn", - "name": "Kanan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zko", - "name": "Kott", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zkp", - "inverted_name": "Kaingáng, São Paulo", - "name": "São Paulo Kaingáng", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zkr", - "name": "Zakhring", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zkt", - "name": "Kitan", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "zku", - "name": "Kaurna", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zkv", - "name": "Krevinian", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zkz", - "name": "Khazar", - "scope": "I", - "type": "H" - }, - { - "alpha_3": "zla", - "name": "Zula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zlj", - "inverted_name": "Zhuang, Liujiang", - "name": "Liujiang Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zlm", - "name": "Malay (individual language)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zln", - "inverted_name": "Zhuang, Lianshan", - "name": "Lianshan Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zlq", - "inverted_name": "Zhuang, Liuqian", - "name": "Liuqian Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zma", - "name": "Manda (Australia)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmb", - "name": "Zimba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmc", - "name": "Margany", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zmd", - "name": "Maridan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zme", - "name": "Mangerr", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zmf", - "name": "Mfinu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmg", - "name": "Marti Ke", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmh", - "name": "Makolkol", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zmi", - "name": "Negeri Sembilan Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmj", - "name": "Maridjabin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmk", - "name": "Mandandanyi", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zml", - "name": "Matngala", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zmm", - "name": "Marimanindji", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmn", - "name": "Mbangwe", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmo", - "name": "Molo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmp", - "name": "Mpuono", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmq", - "name": "Mituku", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmr", - "name": "Maranunggu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zms", - "name": "Mbesa", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmt", - "name": "Maringarr", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmu", - "name": "Muruwari", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zmv", - "name": "Mbariman-Gudhinma", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zmw", - "name": "Mbo (Democratic Republic of Congo)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmx", - "name": "Bomitaba", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmy", - "name": "Mariyedi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zmz", - "name": "Mbandja", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zna", - "name": "Zan Gula", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zne", - "name": "Zande (individual language)", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zng", - "name": "Mang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "znk", - "name": "Manangkari", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zns", - "name": "Mangas", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zoc", - "inverted_name": "Zoque, Copainalá", - "name": "Copainalá Zoque", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zoh", - "inverted_name": "Zoque, Chimalapa", - "name": "Chimalapa Zoque", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zom", - "name": "Zou", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zoo", - "inverted_name": "Zapotec, Asunción Mixtepec", - "name": "Asunción Mixtepec Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zoq", - "inverted_name": "Zoque, Tabasco", - "name": "Tabasco Zoque", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zor", - "inverted_name": "Zoque, Rayón", - "name": "Rayón Zoque", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zos", - "inverted_name": "Zoque, Francisco León", - "name": "Francisco León Zoque", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpa", - "inverted_name": "Zapotec, Lachiguiri", - "name": "Lachiguiri Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpb", - "inverted_name": "Zapotec, Yautepec", - "name": "Yautepec Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpc", - "inverted_name": "Zapotec, Choapan", - "name": "Choapan Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpd", - "inverted_name": "Zapotec, Southeastern Ixtlán", - "name": "Southeastern Ixtlán Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpe", - "inverted_name": "Zapotec, Petapa", - "name": "Petapa Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpf", - "inverted_name": "Zapotec, San Pedro Quiatoni", - "name": "San Pedro Quiatoni Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpg", - "inverted_name": "Zapotec, Guevea De Humboldt", - "name": "Guevea De Humboldt Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zph", - "inverted_name": "Zapotec, Totomachapan", - "name": "Totomachapan Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpi", - "inverted_name": "Zapotec, Santa María Quiegolani", - "name": "Santa María Quiegolani Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpj", - "inverted_name": "Zapotec, Quiavicuzas", - "name": "Quiavicuzas Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpk", - "inverted_name": "Zapotec, Tlacolulita", - "name": "Tlacolulita Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpl", - "inverted_name": "Zapotec, Lachixío", - "name": "Lachixío Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpm", - "inverted_name": "Zapotec, Mixtepec", - "name": "Mixtepec Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpn", - "inverted_name": "Zapotec, Santa Inés Yatzechi", - "name": "Santa Inés Yatzechi Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpo", - "inverted_name": "Zapotec, Amatlán", - "name": "Amatlán Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpp", - "inverted_name": "Zapotec, El Alto", - "name": "El Alto Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpq", - "inverted_name": "Zapotec, Zoogocho", - "name": "Zoogocho Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpr", - "inverted_name": "Zapotec, Santiago Xanica", - "name": "Santiago Xanica Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zps", - "inverted_name": "Zapotec, Coatlán", - "name": "Coatlán Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpt", - "inverted_name": "Zapotec, San Vicente Coatlán", - "name": "San Vicente Coatlán Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpu", - "inverted_name": "Zapotec, Yalálag", - "name": "Yalálag Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpv", - "inverted_name": "Zapotec, Chichicapan", - "name": "Chichicapan Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpw", - "inverted_name": "Zapotec, Zaniza", - "name": "Zaniza Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpx", - "inverted_name": "Zapotec, San Baltazar Loxicha", - "name": "San Baltazar Loxicha Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpy", - "inverted_name": "Zapotec, Mazaltepec", - "name": "Mazaltepec Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zpz", - "inverted_name": "Zapotec, Texmelucan", - "name": "Texmelucan Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zqe", - "inverted_name": "Zhuang, Qiubei", - "name": "Qiubei Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zra", - "name": "Kara (Korea)", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "zrg", - "name": "Mirgan", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zrn", - "name": "Zerenkel", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zro", - "name": "Záparo", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zrp", - "name": "Zarphatic", - "scope": "I", - "type": "E" - }, - { - "alpha_3": "zrs", - "name": "Mairasi", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zsa", - "name": "Sarasira", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zsk", - "name": "Kaskean", - "scope": "I", - "type": "A" - }, - { - "alpha_3": "zsl", - "name": "Zambian Sign Language", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zsm", - "inverted_name": "Malay, Standard", - "name": "Standard Malay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zsr", - "inverted_name": "Zapotec, Southern Rincon", - "name": "Southern Rincon Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zsu", - "name": "Sukurum", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zte", - "inverted_name": "Zapotec, Elotepec", - "name": "Elotepec Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ztg", - "inverted_name": "Zapotec, Xanaguía", - "name": "Xanaguía Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ztl", - "inverted_name": "Zapotec, Lapaguía-Guivini", - "name": "Lapaguía-Guivini Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ztm", - "inverted_name": "Zapotec, San Agustín Mixtepec", - "name": "San Agustín Mixtepec Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ztn", - "inverted_name": "Zapotec, Santa Catarina Albarradas", - "name": "Santa Catarina Albarradas Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ztp", - "inverted_name": "Zapotec, Loxicha", - "name": "Loxicha Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ztq", - "inverted_name": "Zapotec, Quioquitani-Quierí", - "name": "Quioquitani-Quierí Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zts", - "inverted_name": "Zapotec, Tilquiapan", - "name": "Tilquiapan Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ztt", - "inverted_name": "Zapotec, Tejalapan", - "name": "Tejalapan Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ztu", - "inverted_name": "Zapotec, Güilá", - "name": "Güilá Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "ztx", - "inverted_name": "Zapotec, Zaachila", - "name": "Zaachila Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zty", - "inverted_name": "Zapotec, Yatee", - "name": "Yatee Zapotec", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zua", - "name": "Zeem", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zuh", - "name": "Tokano", - "scope": "I", - "type": "L" - }, - { - "alpha_2": "zu", - "alpha_3": "zul", - "name": "Zulu", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zum", - "name": "Kumzari", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zun", - "name": "Zuni", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zuy", - "name": "Zumaya", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zwa", - "name": "Zay", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zxx", - "name": "No linguistic content", - "scope": "S", - "type": "S" - }, - { - "alpha_3": "zyb", - "inverted_name": "Zhuang, Yongbei", - "name": "Yongbei Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zyg", - "inverted_name": "Zhuang, Yang", - "name": "Yang Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zyj", - "inverted_name": "Zhuang, Youjiang", - "name": "Youjiang Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zyn", - "inverted_name": "Zhuang, Yongnan", - "name": "Yongnan Zhuang", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zyp", - "inverted_name": "Chin, Zyphe", - "name": "Zyphe Chin", - "scope": "I", - "type": "L" - }, - { - "alpha_3": "zza", - "name": "Zaza", - "scope": "M", - "type": "L" - }, - { - "alpha_3": "zzj", - "inverted_name": "Zhuang, Zuojiang", - "name": "Zuojiang Zhuang", - "scope": "I", - "type": "L" - } - ] -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso639-5.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso639-5.json deleted file mode 100644 index edd996c857e18212d88320467ddb39782702ee4d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/databases/iso639-5.json +++ /dev/null @@ -1,464 +0,0 @@ -{ - "639-5": [ - { - "alpha_3": "aav", - "name": "Austro-Asiatic languages" - }, - { - "alpha_3": "afa", - "name": "Afro-Asiatic languages" - }, - { - "alpha_3": "alg", - "name": "Algonquian languages" - }, - { - "alpha_3": "alv", - "name": "Atlantic-Congo languages" - }, - { - "alpha_3": "apa", - "name": "Apache languages" - }, - { - "alpha_3": "aqa", - "name": "Alacalufan languages" - }, - { - "alpha_3": "aql", - "name": "Algic languages" - }, - { - "alpha_3": "art", - "name": "Artificial languages" - }, - { - "alpha_3": "ath", - "name": "Athapascan languages" - }, - { - "alpha_3": "auf", - "name": "Arauan languages" - }, - { - "alpha_3": "aus", - "name": "Australian languages" - }, - { - "alpha_3": "awd", - "name": "Arawakan languages" - }, - { - "alpha_3": "azc", - "name": "Uto-Aztecan languages" - }, - { - "alpha_3": "bad", - "name": "Banda languages" - }, - { - "alpha_3": "bai", - "name": "Bamileke languages" - }, - { - "alpha_3": "bat", - "name": "Baltic languages" - }, - { - "alpha_3": "ber", - "name": "Berber languages" - }, - { - "alpha_3": "bih", - "name": "Bihari languages" - }, - { - "alpha_3": "bnt", - "name": "Bantu languages" - }, - { - "alpha_3": "btk", - "name": "Batak languages" - }, - { - "alpha_3": "cai", - "name": "Central American Indian languages" - }, - { - "alpha_3": "cau", - "name": "Caucasian languages" - }, - { - "alpha_3": "cba", - "name": "Chibchan languages" - }, - { - "alpha_3": "ccn", - "name": "North Caucasian languages" - }, - { - "alpha_3": "ccs", - "name": "South Caucasian languages" - }, - { - "alpha_3": "cdc", - "name": "Chadic languages" - }, - { - "alpha_3": "cdd", - "name": "Caddoan languages" - }, - { - "alpha_3": "cel", - "name": "Celtic languages" - }, - { - "alpha_3": "cmc", - "name": "Chamic languages" - }, - { - "alpha_3": "cpe", - "name": "Creoles and pidgins, English‑based" - }, - { - "alpha_3": "cpf", - "name": "Creoles and pidgins, French‑based" - }, - { - "alpha_3": "cpp", - "name": "Creoles and pidgins, Portuguese-based" - }, - { - "alpha_3": "crp", - "name": "Creoles and pidgins" - }, - { - "alpha_3": "csu", - "name": "Central Sudanic languages" - }, - { - "alpha_3": "cus", - "name": "Cushitic languages" - }, - { - "alpha_3": "day", - "name": "Land Dayak languages" - }, - { - "alpha_3": "dmn", - "name": "Mande languages" - }, - { - "alpha_3": "dra", - "name": "Dravidian languages" - }, - { - "alpha_3": "egx", - "name": "Egyptian languages" - }, - { - "alpha_3": "esx", - "name": "Eskimo-Aleut languages" - }, - { - "alpha_3": "euq", - "name": "Basque (family)" - }, - { - "alpha_3": "fiu", - "name": "Finno-Ugrian languages" - }, - { - "alpha_3": "fox", - "name": "Formosan languages" - }, - { - "alpha_3": "gem", - "name": "Germanic languages" - }, - { - "alpha_3": "gme", - "name": "East Germanic languages" - }, - { - "alpha_3": "gmq", - "name": "North Germanic languages" - }, - { - "alpha_3": "gmw", - "name": "West Germanic languages" - }, - { - "alpha_3": "grk", - "name": "Greek languages" - }, - { - "alpha_3": "hmx", - "name": "Hmong-Mien languages" - }, - { - "alpha_3": "hok", - "name": "Hokan languages" - }, - { - "alpha_3": "hyx", - "name": "Armenian (family)" - }, - { - "alpha_3": "iir", - "name": "Indo-Iranian languages" - }, - { - "alpha_3": "ijo", - "name": "Ijo languages" - }, - { - "alpha_3": "inc", - "name": "Indic languages" - }, - { - "alpha_3": "ine", - "name": "Indo-European languages" - }, - { - "alpha_3": "ira", - "name": "Iranian languages" - }, - { - "alpha_3": "iro", - "name": "Iroquoian languages" - }, - { - "alpha_3": "itc", - "name": "Italic languages" - }, - { - "alpha_3": "jpx", - "name": "Japanese (family)" - }, - { - "alpha_3": "kar", - "name": "Karen languages" - }, - { - "alpha_3": "kdo", - "name": "Kordofanian languages" - }, - { - "alpha_3": "khi", - "name": "Khoisan languages" - }, - { - "alpha_3": "kro", - "name": "Kru languages" - }, - { - "alpha_3": "map", - "name": "Austronesian languages" - }, - { - "alpha_3": "mkh", - "name": "Mon-Khmer languages" - }, - { - "alpha_3": "mno", - "name": "Manobo languages" - }, - { - "alpha_3": "mun", - "name": "Munda languages" - }, - { - "alpha_3": "myn", - "name": "Mayan languages" - }, - { - "alpha_3": "nah", - "name": "Nahuatl languages" - }, - { - "alpha_3": "nai", - "name": "North American Indian languages" - }, - { - "alpha_3": "ngf", - "name": "Trans-New Guinea languages" - }, - { - "alpha_3": "nic", - "name": "Niger-Kordofanian languages" - }, - { - "alpha_3": "nub", - "name": "Nubian languages" - }, - { - "alpha_3": "omq", - "name": "Oto-Manguean languages" - }, - { - "alpha_3": "omv", - "name": "Omotic languages" - }, - { - "alpha_3": "oto", - "name": "Otomian languages" - }, - { - "alpha_3": "paa", - "name": "Papuan languages" - }, - { - "alpha_3": "phi", - "name": "Philippine languages" - }, - { - "alpha_3": "plf", - "name": "Central Malayo-Polynesian languages" - }, - { - "alpha_3": "poz", - "name": "Malayo-Polynesian languages" - }, - { - "alpha_3": "pqe", - "name": "Eastern Malayo-Polynesian languages" - }, - { - "alpha_3": "pqw", - "name": "Western Malayo-Polynesian languages" - }, - { - "alpha_3": "pra", - "name": "Prakrit languages" - }, - { - "alpha_3": "qwe", - "name": "Quechuan (family)" - }, - { - "alpha_3": "roa", - "name": "Romance languages" - }, - { - "alpha_3": "sai", - "name": "South American Indian languages" - }, - { - "alpha_3": "sal", - "name": "Salishan languages" - }, - { - "alpha_3": "sdv", - "name": "Eastern Sudanic languages" - }, - { - "alpha_3": "sem", - "name": "Semitic languages" - }, - { - "alpha_3": "sgn", - "name": "sign languages" - }, - { - "alpha_3": "sio", - "name": "Siouan languages" - }, - { - "alpha_3": "sit", - "name": "Sino-Tibetan languages" - }, - { - "alpha_3": "sla", - "name": "Slavic languages" - }, - { - "alpha_3": "smi", - "name": "Sami languages" - }, - { - "alpha_3": "son", - "name": "Songhai languages" - }, - { - "alpha_3": "sqj", - "name": "Albanian languages" - }, - { - "alpha_3": "ssa", - "name": "Nilo-Saharan languages" - }, - { - "alpha_3": "syd", - "name": "Samoyedic languages" - }, - { - "alpha_3": "tai", - "name": "Tai languages" - }, - { - "alpha_3": "tbq", - "name": "Tibeto-Burman languages" - }, - { - "alpha_3": "trk", - "name": "Turkic languages" - }, - { - "alpha_3": "tup", - "name": "Tupi languages" - }, - { - "alpha_3": "tut", - "name": "Altaic languages" - }, - { - "alpha_3": "tuw", - "name": "Tungus languages" - }, - { - "alpha_3": "urj", - "name": "Uralic languages" - }, - { - "alpha_3": "wak", - "name": "Wakashan languages" - }, - { - "alpha_3": "wen", - "name": "Sorbian languages" - }, - { - "alpha_3": "xgn", - "name": "Mongolian languages" - }, - { - "alpha_3": "xnd", - "name": "Na-Dene languages" - }, - { - "alpha_3": "ypk", - "name": "Yupik languages" - }, - { - "alpha_3": "zhx", - "name": "Chinese (family)" - }, - { - "alpha_3": "zle", - "name": "East Slavic languages" - }, - { - "alpha_3": "zls", - "name": "South Slavic languages" - }, - { - "alpha_3": "zlw", - "name": "West Slavic languages" - }, - { - "alpha_3": "znd", - "name": "Zande languages" - } - ] -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/db.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/db.py deleted file mode 100644 index 08f24e8c97b8329de73108957def0a2b2275ec6c..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/db.py +++ /dev/null @@ -1,200 +0,0 @@ -import json -import logging -import threading -from typing import Any, Iterator, List, Optional, Type, Union - -logger = logging.getLogger("pycountry.db") - - -class Data: - def __init__(self, **fields: str): - self._fields = fields - - def __getattr__(self, key): - if key in self._fields: - return self._fields[key] - raise AttributeError(key) - - def __setattr__(self, key: str, value: str) -> None: - if key != "_fields": - self._fields[key] = value - super().__setattr__(key, value) - - def __repr__(self) -> str: - cls_name = self.__class__.__name__ - fields = ", ".join("%s=%r" % i for i in sorted(self._fields.items())) - return f"{cls_name}({fields})" - - def __dir__(self) -> List[str]: - return dir(self.__class__) + list(self._fields) - - def __iter__(self): - # allow casting into a dict - for field in self._fields: - yield field, getattr(self, field) - - -class Country(Data): - pass - - -class Subdivision(Data): - pass - - -def lazy_load(f): - def load_if_needed(self, *args, **kw): - if not self._is_loaded: - with self._load_lock: - self._load() - return f(self, *args, **kw) - - return load_if_needed - - -class Database: - data_class: Union[Type, str] - root_key: Optional[str] = None - no_index: List[str] = [] - - def __init__(self, filename: str) -> None: - self.filename = filename - self._is_loaded = False - self._load_lock = threading.Lock() - - if isinstance(self.data_class, str): - self.factory = type(self.data_class, (Data,), {}) - else: - self.factory = self.data_class - - def _clear(self): - self._is_loaded = False - self.objects = [] - self.index_names = set() - self.indices = {} - - def _load(self) -> None: - if self._is_loaded: - # Help keeping the _load_if_needed code easier - # to read. - return - self._clear() - - with open(self.filename, encoding="utf-8") as f: - tree = json.load(f) - - for entry in tree[self.root_key]: - obj = self.factory(**entry) - self.objects.append(obj) - # Inject into index. - for key, value in entry.items(): - if key in self.no_index: - continue - # Lookups and searches are case insensitive. Normalize - # here. - index = self.indices.setdefault(key, {}) - value = value.lower() - if value in index: - logger.debug( - "%s %r already taken in index %r and will be " - "ignored. This is an error in the databases." - % (self.factory.__name__, value, key) - ) - index[value] = obj - - self._is_loaded = True - - # Public API - - @lazy_load - def add_entry(self, **kw): - # create the object with the correct dynamic type - obj = self.factory(**kw) - - # append object - self.objects.append(obj) - - # update indices - for key, value in kw.items(): - if key in self.no_index: - continue - value = value.lower() - index = self.indices.setdefault(key, {}) - index[value] = obj - - @lazy_load - def remove_entry(self, **kw): - # make sure that we receive None if no entry found - if "default" in kw: - del kw["default"] - obj = self.get(**kw) - if not obj: - raise KeyError( - f"{self.factory.__name__} not found and cannot be removed: {kw}" - ) - - # remove object - self.objects.remove(obj) - - # update indices - for key, value in obj: - if key in self.no_index: - continue - value = value.lower() - index = self.indices.setdefault(key, {}) - if value in index: - del index[value] - - @lazy_load - def __iter__(self) -> Iterator["Database"]: - return iter(self.objects) - - @lazy_load - def __len__(self) -> int: - return len(self.objects) - - @lazy_load - def get( - self, *, default: Optional[Any] = None, **kw: Optional[str] - ) -> Optional[Any]: - if len(kw) != 1: - raise TypeError("Only one criteria may be given") - field, value = kw.popitem() - if not isinstance(value, str): - raise LookupError() - # Normalize for case-insensitivity - value = value.lower() - index = self.indices[field] - try: - return index[value] - except KeyError: - # Pythonic APIs implementing get() shouldn't raise KeyErrors. - # Those are a bit unexpected and they should rather support - # returning `None` by default and allow customization. - return default - - @lazy_load - def lookup(self, value: str) -> Type: - if not isinstance(value, str): - raise LookupError() - - # Normalize for case-insensitivity - value = value.lower() - - # Use indexes first - for key in self.indices: - try: - return self.indices[key][value] - except LookupError: - pass - - # Use non-indexed values now. Avoid going through indexed values. - for candidate in self: - for k in self.no_index: - v = candidate._fields.get(k) - if v is None: - continue - if v.lower() == value: - return candidate - - raise LookupError("Could not find a record for %r" % value) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ab/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ab/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 09f6341ab878de657eae07bf810f2539820b7187..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ab/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ab/LC_MESSAGES/iso639-5.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ab/LC_MESSAGES/iso639-5.mo deleted file mode 100644 index 2193d1d3fe5d5cce95c39add6652756ab4f08332..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ab/LC_MESSAGES/iso639-5.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/af/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/af/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 4044ce811426842da9978bfced16eae242e4de99..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/af/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/af/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/af/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index ba97f187ddf42b6f90c35f0fea336431c3d1b1ab..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/af/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/af/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/af/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index 667f28beb748e7796388149c04477ab805296363..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/af/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/as/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/as/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index e30b1354ec03a62fea6755e8ff8fcb6e33d7d966..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/as/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/as/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/as/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 3a85d8670baf433fc1526cbffccf57ff2229f0bc..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/as/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bi/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bi/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 3ca1db7a319b2fd643c1828dc571cf33c86207ca..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bi/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bn_BD/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bn_BD/LC_MESSAGES/iso15924.mo deleted file mode 100644 index bee7a566bf76568ed8b54c4da600dd8aff99de2d..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bn_BD/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bn_BD/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bn_BD/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index e243d57d52628aca576f42f7306223433de3472c..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bn_BD/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bn_BD/LC_MESSAGES/iso639-5.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bn_BD/LC_MESSAGES/iso639-5.mo deleted file mode 100644 index 4d13bb310405eeb72a43dbfe0cb949c468ce3b71..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/bn_BD/LC_MESSAGES/iso639-5.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/chr/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/chr/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index a3778663c3e797261683d761b45025d40b0f8efd..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/chr/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/crh/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/crh/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index a427bf2f2c1895598f7f3df5d0e460bf7f875c4b..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/crh/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/crh/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/crh/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index b2951254e128c2be4109f1a95ecd08152f416ebc..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/crh/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/crh/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/crh/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index ba9694524221b4789c2c9a016a1d82e9291e9d64..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/crh/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso15924.mo deleted file mode 100644 index b24d46cb36afd0a21f7524bfa571dc225e27f0e5..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 7dd6d789388144dbf33b09d4fd0280fc986a0a46..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index a4274f7369b5874d2b0e5edc3a9cf03b7b844ddb..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index b0a65c7f8bddada39fae1e4e233381e42f82e265..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso4217.mo deleted file mode 100644 index c08a168e6dd9d1e64991a1a2eafe82576f6910b9..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index 591d3ff7f4390a17e5de65c19e420211d3ec7517..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso639-5.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso639-5.mo deleted file mode 100644 index 7eea0aa3ee79bd806a27ea6c1e22f26d87c63d8e..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/el/LC_MESSAGES/iso639-5.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso15924.mo deleted file mode 100644 index 22f1649275f007940502b7db71d1913d61d6f226..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 6a8cbefa6f3c627161a47a0082da1fee54780898..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index 02967c2d3f41f05de0a560f70dbebda45f2cab48..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 38b5758d901be51c30ef5de857b67dada65bc337..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso4217.mo deleted file mode 100644 index 94e820e5b7c38865dbcb7373f97fd8aa144ae83a..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index 58da57013fa380fccea14d76eddb2ec19f5d88dd..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/es/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso15924.mo deleted file mode 100644 index 62b78b1843917c3b19924cfcff24cf15e1a8ee54..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 65516dd1c37a5b9bcb712bf73a725a5a9626f441..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 3e76d0c1f83c6d7f7e2526905e0d5605f6c6a20a..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso4217.mo deleted file mode 100644 index a73aa850da75e63bcc67221bf650602df276cbb8..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso639-5.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso639-5.mo deleted file mode 100644 index 3e6f04de0626d0b861ced5bf639b78773c0c4cfb..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fr/LC_MESSAGES/iso639-5.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/frp/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/frp/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index c261a3a4c29fac0e2553e7065d49aa8460ee20ae..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/frp/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fy/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fy/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index fc326954deab730f9585a4c99ead816ec307eedd..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/fy/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/gn/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/gn/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 895241bb2cfc516f9273d0b8d1440fe8dc444def..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/gn/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso15924.mo deleted file mode 100644 index f91a8207e7b98380744ce9c941bdf5d78ec27c39..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 5fd134ecda45b0a2f4e4ad8e2c7b36bf87bd2b3f..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index c16da1986af0d07c59b63084bce726d82b794f3e..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index cc25f2a4d634e41f7b62af0ade868f80d24e8b89..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index 140986ab9fab7f51935550e42733b2ce5b4d6314..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/he/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso15924.mo deleted file mode 100644 index fa262dbde52ea537733111e7c971a72610bbfd03..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index a43f00f2bdf863e23bde58ffb11a523138273a5f..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index be1350233007a3e89837414cad8f59298893cfe7..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso4217.mo deleted file mode 100644 index 084bf15c835b57bca21e999ac2f3fb77df371fea..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/id/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/iu/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/iu/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 8a99875164ccab3cc7b9760ce4f5b6b9acc26d64..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/iu/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/kk/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/kk/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index e038a15824cd762c857600d913edb9f4e89b26d4..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/kk/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/kl/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/kl/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index a7c5b2c0f8305e1d5ef442bd2bb302280c904abd..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/kl/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ky/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ky/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 4167a65a7d420cb737a683a3116353794a5af3e1..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ky/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ky/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ky/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index 5d4ec7c15a86bb7937b54a033596def6451c35b7..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ky/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/lv/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/lv/LC_MESSAGES/iso15924.mo deleted file mode 100644 index 527603e4592b8b26a149dbb249066f255d536eb0..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/lv/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/lv/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/lv/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 3c45e02bdf1a11e6f81f917b1c28403aaebfc465..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/lv/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/lv/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/lv/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index a0f56160f5640f80861bc8f5a27724b44d0456e8..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/lv/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/mai/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/mai/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index fc6879afd9a00f4ad0ccbbf998b74916cf4270f5..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/mai/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/mr/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/mr/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 280515b9f578168f4252c7b98eaef7b36e917b47..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/mr/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/mr/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/mr/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 07692d71d1dbc5ebe456c1ff523c7e459f7cd102..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/mr/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 01ae29908e7c5d66a48c422d53b24af806ae78e9..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index e82a04083768766f2ee853fefe5275aacb7b67be..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index ae8a2bc7df648c3c6e05f59b2f9421802bdda519..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index 3e38f24beb54ab8c813adf0fc7a98fdada4d2fd2..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/nso/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/or/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/or/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 248de4c2c745f3a991e7b048692c07e7d3a7f422..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/or/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/or/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/or/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index dae51ec48bd75235d1d41a0dea1ca5ec7379de2c..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/or/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/pa/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/pa/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 7efeea06a18c2e34893510cba4e7e5f45e3c1588..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/pa/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/pa/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/pa/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 6a5967fd401b11614fd5e4c86a0099ff1d9bc8b9..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/pa/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso15924.mo deleted file mode 100644 index d254a0a4b1d46d452e8fee73ca845b2cfb3dca21..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 0826877a2d505c2bd89b9cc6934d928c64dcdda0..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 9bf4d1aafd0b896ec12cc3d359cc4673706c730d..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso4217.mo deleted file mode 100644 index aefa88b6e1bd183348a3c95b28b55de05a079ccf..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index b85ce6dcb6b3125acd8728136d47933d7576ea0b..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso639-5.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso639-5.mo deleted file mode 100644 index 4bcfd655cac03a3fe2a4c6e10f951c62edc137e7..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ru/LC_MESSAGES/iso639-5.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sd/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sd/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 8ec898c8c02476850d4ef0082f2c96a0df858edf..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sd/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso15924.mo deleted file mode 100644 index 7a7bfa63ac8b3eb243b04d6c2edb8f1f61cbc31d..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index cef5d4d469dabc98b66f533b3e5cf05fbf835c9e..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index 52262df100c1764d66440d5124d2afc7fbf6c626..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 708e7c351d1c92b2c19f40d8a5dfff91974c4d9a..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso4217.mo deleted file mode 100644 index dc44d0cccbd4348daea0f50411b575cd4d896ac9..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index cfe9bb0b8489796b50c1107b5020682ef34dd75c..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/so/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso15924.mo deleted file mode 100644 index 533c89ea74d43f0be8ee25fd4bea2051ce94348e..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index a1e016ae84932a60575afefd2bbcd94b8ca0fc1d..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 7487e6fd60138e7bbabb1d076b46e4002807c1e2..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso4217.mo deleted file mode 100644 index acc25f037057df27dda5877f707a481d69f9b989..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index a20ae0c9a880c028f1a73a77f877ce47cce55931..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso639-5.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso639-5.mo deleted file mode 100644 index a0d81f85484a93ce4982bcbf6e67b7e6ba7012f5..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sr/LC_MESSAGES/iso639-5.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso15924.mo deleted file mode 100644 index e1f8261a5c6005e26cd7fa4674f5e7c080d3d015..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 362b3be27d0e7f7cfc905c0e358628c4f207c15a..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 974ba8c7591ca466651cd8471a2851f1ece85504..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso4217.mo deleted file mode 100644 index cb6f447f2f3cb71b6930df77ec2ec2e6ee53f60f..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso639-5.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso639-5.mo deleted file mode 100644 index d4a0407b51727c142b5823d7d77b8a0bcb410341..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/sv/LC_MESSAGES/iso639-5.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso15924.mo deleted file mode 100644 index d71800501176f0d8cc5f83b58b8fb5d1178f0c0d..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 0e98c7f3bddb4e49c480574d467eeff91a1b56de..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index c27fdce88fb69a446bf23fde52ea88cf18918bba..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 257950a8c60d9b007781e5bd694a4125208377bb..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso4217.mo deleted file mode 100644 index a3a66cdb5d8fc4b21992d2477ff89b44b9f75779..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso639-5.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso639-5.mo deleted file mode 100644 index 39ae6fcb9accd7060c5fd2e22faa3c3f0a49ec26..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ta/LC_MESSAGES/iso639-5.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/te/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/te/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 8aa97b6bf743003bd34b48cd06629c1d6732db98..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/te/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/te/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/te/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 7bd70f54ed4069ce5e07ac365397e959eebf3362..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/te/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ti/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ti/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 2074d1ad2885bf762222f30358d7397c7d5a479e..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ti/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ti/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ti/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index c3ce62f1bfff153ebba6e04d4993ba359b189c03..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ti/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ti/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ti/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index a8830d4897f41a279eced2e38859a8ae990f73e4..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ti/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tig/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tig/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index ae2791a14f54c2712484222425af843cf7e73c60..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tig/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tig/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tig/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index fb92fd70daf06525562d1d47a5f83749a0a491e6..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tig/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tig/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tig/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index 493a893a9fbe61fc70d8cc8f7524064ca6006f88..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tig/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tl/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tl/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 005f440d734bf3e22b2b23919916a080d8121523..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tl/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tl/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tl/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 89bef01cb142269a425f51538670656ad9f026b6..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tl/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tt@iqtelif/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tt@iqtelif/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 683c9e1cc0279df5b397ef962eb6ba48138b6a12..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tt@iqtelif/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tt@iqtelif/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tt@iqtelif/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 91231b93464e7e4d7006fd5e36025320518bfbcf..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tt@iqtelif/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tt@iqtelif/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tt@iqtelif/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index 4e5fe1fe81902e362e8ce9550d55e2266c851948..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/tt@iqtelif/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/uk/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/uk/LC_MESSAGES/iso15924.mo deleted file mode 100644 index d6d140da062f0426bd1708fab2f2e060f8f6e2c4..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/uk/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/uk/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/uk/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index fed97dad0043a9ec631861073f1259c665ccef6c..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/uk/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ur/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ur/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index d66e58af509adc1754f32416de3b3e22fd2e8d7a..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ur/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 57c2cb5683d197b8fdbec7e36808c5f29758c66e..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index 3188326058e030fa87789464ed1d60c770f937fc..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index ce6b77f7e513419724f9702a73f333c329ea6b50..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index 64e2747b1a276552a7c664d7e702b34af0aac6be..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/ve/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/wo/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/wo/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index 4fffe93a0242918d2e6f0e48cbf4114530a5e502..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/wo/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/wo/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/wo/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index cd165471adb93f9bc281b2acafece8547547bea1..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/wo/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/xh/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/xh/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index f5ead56813a06d22790fad02e6188a3025428567..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/xh/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/xh/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/xh/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index b8d832ed4603583d58f3b615486ddf0cecd2d618..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/xh/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/xh/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/xh/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index c41ef44fde55fc56fd5d4d384fd222eb9daa9459..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/xh/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_HK/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_HK/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 5fbab85d372362a444ddfd61b605abed01e78bf8..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_HK/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_HK/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_HK/LC_MESSAGES/iso4217.mo deleted file mode 100644 index 33372520ce3574bf711bf173eed979463c067473..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_HK/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso15924.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso15924.mo deleted file mode 100644 index 1e577c42252b27232107f3292df985eef6a70725..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso15924.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso3166-1.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso3166-1.mo deleted file mode 100644 index c2ff70edfb5503ba9f836dc6cabfa5a448faed90..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso3166-1.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso3166-2.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso3166-2.mo deleted file mode 100644 index 331d34cbbe4e5b7b176877e9e0eb87dc6d0a4b78..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso3166-2.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso3166-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso3166-3.mo deleted file mode 100644 index 0aa9d65a2047541d905954f5b1c41e62d1f84ce8..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso3166-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso4217.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso4217.mo deleted file mode 100644 index 67454c226e4f4a52e4f4b2668f05444e15580d9c..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso4217.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso639-3.mo b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso639-3.mo deleted file mode 100644 index cb224bce00d5b385ff18fee316ada672559c261f..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/locales/zh_TW/LC_MESSAGES/iso639-3.mo and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/py.typed b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/py.typed deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/tests/__pycache__/test_general.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/tests/__pycache__/test_general.cpython-310.pyc deleted file mode 100644 index d1fe69cce48bcd951ad6f33cd7010608f37c70b6..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/tests/__pycache__/test_general.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/tests/test_general.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/tests/test_general.py deleted file mode 100644 index 7039f1d89a4ad06bb6ebbd7759723f01aee43de5..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/pycountry/tests/test_general.py +++ /dev/null @@ -1,468 +0,0 @@ -import gettext -import os.path -import re -from importlib import metadata as _importlib_metadata -from unittest.mock import patch - -import pytest - -import pycountry -import pycountry.db - - -@pytest.fixture -def countries(): - pycountry.countries._clear() - yield pycountry.countries - pycountry.countries._clear() - - -def test_country_list(countries): - assert len(pycountry.countries) == 249 - assert isinstance(list(pycountry.countries)[0], pycountry.db.Data) - - -def test_country_fuzzy_search(countries): - results = pycountry.countries.search_fuzzy("England") - assert len(results) == 1 - assert results[0] == pycountry.countries.get(alpha_2="GB") - - # Match alternative names exactly and thus NL ends up with - # "Sint Maarten" before SX with "Sint Maarten (Dutch part)" - results = pycountry.countries.search_fuzzy("Sint Maarten") - assert len(results) == 2 - assert results[0] == pycountry.countries.get(alpha_2="NL") - assert results[1] == pycountry.countries.get(alpha_2="SX") - - # Match with accents removed, first a country with a partial match in the - # country name, then a country with multiple subdivision partial matches, - # and then a country with a single subdivision match. - results = pycountry.countries.search_fuzzy("Cote") - assert len(results) == 3 - assert results[0] == pycountry.countries.get(alpha_2="CI") - assert results[1] == pycountry.countries.get(alpha_2="FR") - assert results[2] == pycountry.countries.get(alpha_2="HN") - - # A somewhat carefully balanced point system allows for a (bias-based) - # graceful sorting of common substrings being used in multiple matches: - results = pycountry.countries.search_fuzzy("New") - assert results[0] == pycountry.countries.get(alpha_2="NC") - assert results[1] == pycountry.countries.get(alpha_2="NZ") - assert results[2] == pycountry.countries.get(alpha_2="PG") - assert results[3] == pycountry.countries.get(alpha_2="GB") - assert results[4] == pycountry.countries.get(alpha_2="US") - assert results[5] == pycountry.countries.get(alpha_2="CA") - assert results[6] == pycountry.countries.get(alpha_2="AU") - assert results[7] == pycountry.countries.get(alpha_2="BS") - assert results[8] == pycountry.countries.get(alpha_2="TW") - assert results[9] == pycountry.countries.get(alpha_2="MH") - - # bug #34, likely about capitalization that was broken - results = pycountry.countries.search_fuzzy("united states of america") - assert len(results) == 1 - assert results[0] == pycountry.countries.get(alpha_2="US") - - -def test_historic_country_fuzzy_search(countries): - results = pycountry.historic_countries.search_fuzzy("burma") - assert len(results) == 1 - assert results[0] == pycountry.historic_countries.get(alpha_4="BUMM") - - -def test_germany_has_all_attributes(countries): - germany = pycountry.countries.get(alpha_2="DE") - assert germany.alpha_2 == "DE" - assert germany.alpha_3 == "DEU" - assert germany.numeric == "276" - assert germany.name == "Germany" - assert germany.official_name == "Federal Republic of Germany" - - -def test_missing_common_official(countries): - aruba = pycountry.countries.get(alpha_2="AW") - assert aruba.alpha_2 == "AW" - assert aruba.name == "Aruba" - with pytest.raises(AttributeError, match="official_name"): - aruba.official_name - with pytest.raises(AttributeError, match="common_name"): - aruba.common_name - - -def test_missing_common_official_use_different(countries): - vietnam = pycountry.countries.get(alpha_2="VN") - assert vietnam.alpha_2 == "VN" - assert vietnam.name == "Viet Nam" - assert vietnam.official_name == "Socialist Republic of Viet Nam" - assert vietnam.common_name == "Vietnam" - - -def test_country_missing_attribute(countries): - germany = pycountry.countries.get(alpha_2="DE") - with pytest.raises(AttributeError): - _ = germany.foo - - -def test_subdivisions_directly_accessible(countries): - assert len(pycountry.subdivisions) == 5046 - assert isinstance(list(pycountry.subdivisions)[0], pycountry.db.Data) - - de_st = pycountry.subdivisions.get(code="DE-ST") - assert de_st.code == "DE-ST" - assert de_st.name == "Sachsen-Anhalt" - assert de_st.type == "Land" - assert de_st.parent is None - assert de_st.parent_code is None - assert de_st.country is pycountry.countries.get(alpha_2="DE") - - -def test_subdivisions_have_subdivision_as_parent(): - fr_01 = pycountry.subdivisions.get(code="FR-01") - assert fr_01.code == "FR-01" - assert fr_01.name == "Ain" - assert fr_01.type == "Metropolitan department" - assert fr_01.parent_code == "FR-ARA" - assert fr_01.parent is pycountry.subdivisions.get(code="FR-ARA") - assert fr_01.parent.name == "Auvergne-Rhône-Alpes" - - -def test_query_subdivisions_of_country(): - assert len(pycountry.subdivisions.get(country_code="DE")) == 16 - assert len(pycountry.subdivisions.get(country_code="US")) == 57 - - -def test_scripts(): - assert len(pycountry.scripts) == 182 - assert isinstance(list(pycountry.scripts)[0], pycountry.db.Data) - - latin = pycountry.scripts.get(name="Latin") - assert latin.alpha_4 == "Latn" - assert latin.name == "Latin" - assert latin.numeric == "215" - - -def test_currencies(): - assert len(pycountry.currencies) == 181 - assert isinstance(list(pycountry.currencies)[0], pycountry.db.Data) - - argentine_peso = pycountry.currencies.get(alpha_3="ARS") - assert argentine_peso.alpha_3 == "ARS" - assert argentine_peso.name == "Argentine Peso" - assert argentine_peso.numeric == "032" - - -def test_languages(): - assert len(pycountry.languages) == 7910 - assert isinstance(list(pycountry.languages)[0], pycountry.db.Data) - - aragonese = pycountry.languages.get(alpha_2="an") - assert aragonese.alpha_2 == "an" - assert aragonese.alpha_3 == "arg" - assert aragonese.name == "Aragonese" - - bengali = pycountry.languages.get(alpha_2="bn") - assert bengali.name == "Bengali" - assert bengali.common_name == "Bangla" - - # this tests the slow search path in lookup() - bengali2 = pycountry.languages.lookup("bAngLa") - assert bengali2 == bengali - - -def test_language_families(): - assert len(pycountry.language_families) == 115 - assert isinstance(list(pycountry.language_families)[0], pycountry.db.Data) - - aragonese = pycountry.languages.get(alpha_3="arg") - assert aragonese.alpha_3 == "arg" - assert aragonese.name == "Aragonese" - - -def test_locales(): - german = gettext.translation( - "iso3166-1", pycountry.LOCALES_DIR, languages=["de"] - ) - assert german.gettext("Germany") == "Deutschland" - - -def test_removed_countries(): - ussr = pycountry.historic_countries.get(alpha_3="SUN") - assert isinstance(ussr, pycountry.db.Data) - assert ussr.alpha_4 == "SUHH" - assert ussr.alpha_3 == "SUN" - assert ussr.name == "USSR, Union of Soviet Socialist Republics" - assert ussr.withdrawal_date == "1992-08-30" - - -def test_repr(countries): - assert re.match( - "Country\\(alpha_2=u?'DE', " - "alpha_3=u?'DEU', " - "flag='..', " - "name=u?'Germany', " - "numeric=u?'276', " - "official_name=u?'Federal Republic of Germany'\\)", - repr(pycountry.countries.get(alpha_2="DE")), - ) - - -def test_dict(countries): - country = pycountry.countries.get(alpha_2="DE") - exp = { - "alpha_2": "DE", - "alpha_3": "DEU", - "name": "Germany", - "numeric": "276", - "official_name": "Federal Republic of Germany", - "flag": country.flag, - } - assert dict(country) == exp - - -def test_dir(countries): - germany = pycountry.countries.get(alpha_2="DE") - for n in "alpha_2", "alpha_3", "name", "numeric", "official_name": - assert n in dir(germany) - - -def test_get(countries): - c = pycountry.countries - with pytest.raises(TypeError): - c.get(alpha_2="DE", alpha_3="DEU") - assert c.get(alpha_2="DE") == c.get(alpha_3="DEU") - assert c.get(alpha_2="Foo") is None - tracer = object() - assert c.get(alpha_2="Foo", default=tracer) is tracer - - -def test_lookup(countries): - c = pycountry.countries - g = c.get(alpha_2="DE") - assert g == c.get(alpha_2="de") - assert g == c.lookup("de") - assert g == c.lookup("DEU") - assert g == c.lookup("276") - assert g == c.lookup("germany") - assert g == c.lookup("Federal Republic of Germany") - # try a generated field - bqaq = pycountry.historic_countries.get(alpha_4="BQAQ") - assert bqaq == pycountry.historic_countries.lookup("atb") - german = pycountry.languages.get(alpha_2="de") - assert german == pycountry.languages.lookup("De") - euro = pycountry.currencies.get(alpha_3="EUR") - assert euro == pycountry.currencies.lookup("euro") - latin = pycountry.scripts.get(name="Latin") - assert latin == pycountry.scripts.lookup("latn") - fr_ara = pycountry.subdivisions.get(code="FR-ARA") - assert fr_ara == pycountry.subdivisions.lookup("fr-ara") - with pytest.raises(LookupError): - pycountry.countries.lookup("bogus country") - with pytest.raises(LookupError): - pycountry.countries.lookup(12345) - with pytest.raises(LookupError): - pycountry.countries.get(alpha_2=12345) - - -def test_subdivision_parent(): - s = pycountry.subdivisions - sd = s.get(code="CV-BV") - assert sd.parent_code == "CV-B" - assert sd.parent is s.get(code=sd.parent_code) - - -def test_subdivision_missing_code_raises_keyerror(): - s = pycountry.subdivisions - assert s.get(code="US-ZZ") is None - - -def test_subdivision_empty_list(): - s = pycountry.subdivisions - assert len(s.get(country_code="DE")) == 16 - assert len(s.get(country_code="JE")) == 0 - assert s.get(country_code="FOOBAR") is None - - -def test_has_version_attribute(): - try: - _importlib_metadata.distribution("pycountry") - except _importlib_metadata.PackageNotFoundError: - pytest.skip("pycountry not installed correctly, you're on your own") - assert pycountry.__version__ != "n/a" - assert len(pycountry.__version__) >= 5 - assert "." in pycountry.__version__ - - -def test_is_instance_of_language(): - assert isinstance(pycountry.languages, pycountry.Languages) - - -def test_is_instance_of_country(countries): - united_states = pycountry.countries.get(alpha_2="US") - class_name = united_states.__class__.__name__ - assert class_name == "Country" - - -def test_is_instance_of_subdivision(): - assert isinstance(pycountry.subdivisions, pycountry.Subdivisions) - - -def test_is_instance_of_script(): - assert isinstance(pycountry.scripts, pycountry.Scripts) - - -def test_is_instance_of_currency(): - assert isinstance(pycountry.currencies, pycountry.Currencies) - - -def test_add_entry(countries): - assert pycountry.countries.get(alpha_2="XK") is None - - pycountry.countries.add_entry( - alpha_2="XK", alpha_3="XXK", name="Kosovo", numeric="926" - ) - - country = pycountry.countries.get(alpha_2="XK") - assert isinstance(country, pycountry.countries.data_class) - - -def test_remove_entry(countries): - assert pycountry.countries.get(alpha_2="DE") is not None - - pycountry.countries.remove_entry(alpha_2="DE") - - assert pycountry.countries.get(alpha_2="DE") is None - - -def test_remove_non_existent_entry(): - with pytest.raises(KeyError, match="not found"): - pycountry.countries.remove_entry(name="Not A Real Country") - - -def test_no_results_lookup_error(countries): - try: - import importlib_resources # type: ignore - except ModuleNotFoundError: - from importlib import resources as importlib_resources - - def resource_filename(package_or_requirement, resource_name): - return str( - importlib_resources.files(package_or_requirement) / resource_name - ) - - DATABASE_DIR = resource_filename("pycountry", "databases") - countries = pycountry.ExistingCountries( - os.path.join(DATABASE_DIR, "iso3166-1.json") - ) - - query = "nonexistent query" - with pytest.raises(LookupError): - countries.search_fuzzy(query) - - -def test_subdivision_fuzzy_search_match(): - results = pycountry.subdivisions.search_fuzzy("Alabama") - assert len(results) == 1 - assert results[0].name == "Alabama" - - -def test_subdivision_fuzzy_search_partial_match(): - results = pycountry.subdivisions.search_fuzzy("Massachusett") - assert len(results) == 1 - assert results[0].name == "Massachusetts" - - -def test_subdivision_match(): - results = pycountry.subdivisions.match("Alabama") - assert len(results) == 1 - assert results[0].name == "Alabama" - - -def test_subdivision_partial_match(): - results = pycountry.subdivisions.partial_match("Massachusett") - assert len(results) == 1 - assert results[0].name == "Massachusetts" - - -def test_non_country_attribute_error(): - english = pycountry.languages.get(name="English") - with pytest.raises(AttributeError): - english.official_name - - -def test_country_attribute_error(countries): - canada = pycountry.countries.get(alpha_2="CA") - with pytest.raises(AttributeError): - canada.maple_syrup - - -def test_with_accents(): - assert pycountry.remove_accents("Café") == "Cafe" - assert pycountry.remove_accents("résumé") == "resume" - assert pycountry.remove_accents("naïve") == "naive" - assert pycountry.remove_accents("São Paulo") == "Sao Paulo" - - -def test_without_accents(): - assert pycountry.remove_accents("apple") == "apple" - assert pycountry.remove_accents("banana") == "banana" - - -def test_empty_string(): - assert pycountry.remove_accents("") == "" - - -def test_special_characters(): - assert pycountry.remove_accents("!@#$%^&*()") == "!@#$%^&*()" - - -def test_unicode_characters(): - assert pycountry.remove_accents("你好") == "你好" # Chinese characters - assert ( - pycountry.remove_accents("こんにちは") == "こんにちは" - ) # Japanese characters - - -def test_subdivision_search_fuzzy_non_existent_subdivision(): - with pytest.raises(LookupError): - pycountry.subdivisions.search_fuzzy("Non Existent Subdivision") - - -def test_subdivision_partial_match_non(): - result = pycountry.subdivisions.partial_match("Non Existent Subdivision") - assert len(result) == 0 - - -def test_subdivision_match_non(): - result = pycountry.subdivisions.match("Non Existent Subdivision") - assert len(result) == 0 - - -def test_get_version_with_package_not_found(): - # Mock importlib.metadata.version to raise PackageNotFoundError - with patch( - "importlib.metadata.version", - side_effect=_importlib_metadata.PackageNotFoundError, - ): - # Call get_version with a package name that doesn't exist - result = pycountry.get_version("non_existent_package") - - # Assert that the result is 'n/a' - assert result == "n/a" - - -def test_all_subdivisions_have_name_attribute(): - subdivisions = pycountry.subdivisions - has_name_attr = [ - hasattr(subdivision, "name") for subdivision in subdivisions - ] - all_have_name_attr = all(has_name_attr) - - assert all_have_name_attr - - -def test_subdivisions_with_missing_parents(): - result = [ - (i.code, i.parent_code) - for i in pycountry.subdivisions - if i.parent_code and not i.parent - ] - assert result == [] diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/__config__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/__config__.py deleted file mode 100644 index faf528c80a751867267f1885e6f3a5d93d61b475..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/__config__.py +++ /dev/null @@ -1,161 +0,0 @@ -# This file is generated by SciPy's build process -# It contains system_info results at the time of building this package. -from enum import Enum - -__all__ = ["show"] -_built_with_meson = True - - -class DisplayModes(Enum): - stdout = "stdout" - dicts = "dicts" - - -def _cleanup(d): - """ - Removes empty values in a `dict` recursively - This ensures we remove values that Meson could not provide to CONFIG - """ - if isinstance(d, dict): - return { k: _cleanup(v) for k, v in d.items() if v != '' and _cleanup(v) != '' } - else: - return d - - -CONFIG = _cleanup( - { - "Compilers": { - "c": { - "name": "gcc", - "linker": r"ld.bfd", - "version": "10.2.1", - "commands": r"cc", - "args": r"", - "linker args": r"", - }, - "cython": { - "name": r"cython", - "linker": r"cython", - "version": r"3.0.11", - "commands": r"cython", - "args": r"", - "linker args": r"", - }, - "c++": { - "name": "gcc", - "linker": r"ld.bfd", - "version": "10.2.1", - "commands": r"c++", - "args": r"", - "linker args": r"", - }, - "fortran": { - "name": "gcc", - "linker": r"ld.bfd", - "version": "10.2.1", - "commands": r"gfortran", - "args": r"", - "linker args": r"", - }, - "pythran": { - "version": r"0.16.1", - "include directory": r"../../tmp/pip-build-env-h_xz8lfs/overlay/lib/python3.10/site-packages/pythran" - }, - }, - "Machine Information": { - "host": { - "cpu": r"x86_64", - "family": r"x86_64", - "endian": r"little", - "system": r"linux", - }, - "build": { - "cpu": r"x86_64", - "family": r"x86_64", - "endian": r"little", - "system": r"linux", - }, - "cross-compiled": bool("False".lower().replace('false', '')), - }, - "Build Dependencies": { - "blas": { - "name": "scipy-openblas", - "found": bool("True".lower().replace('false', '')), - "version": "0.3.27.dev", - "detection method": "pkgconfig", - "include directory": r"/opt/_internal/cpython-3.10.14/lib/python3.10/site-packages/scipy_openblas32/include", - "lib directory": r"/opt/_internal/cpython-3.10.14/lib/python3.10/site-packages/scipy_openblas32/lib", - "openblas configuration": r"OpenBLAS 0.3.27.dev DYNAMIC_ARCH NO_AFFINITY Zen MAX_THREADS=64", - "pc file directory": r"/project", - }, - "lapack": { - "name": "scipy-openblas", - "found": bool("True".lower().replace('false', '')), - "version": "0.3.27.dev", - "detection method": "pkgconfig", - "include directory": r"/opt/_internal/cpython-3.10.14/lib/python3.10/site-packages/scipy_openblas32/include", - "lib directory": r"/opt/_internal/cpython-3.10.14/lib/python3.10/site-packages/scipy_openblas32/lib", - "openblas configuration": r"OpenBLAS 0.3.27.dev DYNAMIC_ARCH NO_AFFINITY Zen MAX_THREADS=64", - "pc file directory": r"/project", - }, - "pybind11": { - "name": "pybind11", - "version": "2.12.0", - "detection method": "config-tool", - "include directory": r"unknown", - }, - }, - "Python Information": { - "path": r"/opt/python/cp310-cp310/bin/python", - "version": "3.10", - }, - } -) - - -def _check_pyyaml(): - import yaml - - return yaml - - -def show(mode=DisplayModes.stdout.value): - """ - Show libraries and system information on which SciPy was built - and is being used - - Parameters - ---------- - mode : {`'stdout'`, `'dicts'`}, optional. - Indicates how to display the config information. - `'stdout'` prints to console, `'dicts'` returns a dictionary - of the configuration. - - Returns - ------- - out : {`dict`, `None`} - If mode is `'dicts'`, a dict is returned, else None - - Notes - ----- - 1. The `'stdout'` mode will give more readable - output if ``pyyaml`` is installed - - """ - if mode == DisplayModes.stdout.value: - try: # Non-standard library, check import - yaml = _check_pyyaml() - - print(yaml.dump(CONFIG)) - except ModuleNotFoundError: - import warnings - import json - - warnings.warn("Install `pyyaml` for better output", stacklevel=1) - print(json.dumps(CONFIG, indent=2)) - elif mode == DisplayModes.dicts.value: - return CONFIG - else: - raise AttributeError( - f"Invalid `mode`, use one of: {', '.join([e.value for e in DisplayModes])}" - ) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/__init__.py deleted file mode 100644 index cc2ccee425ff92117c00aeacccdb38b92261a0ca..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/__init__.py +++ /dev/null @@ -1,141 +0,0 @@ -""" -SciPy: A scientific computing package for Python -================================================ - -Documentation is available in the docstrings and -online at https://docs.scipy.org. - -Subpackages ------------ -Using any of these subpackages requires an explicit import. For example, -``import scipy.cluster``. - -:: - - cluster --- Vector Quantization / Kmeans - constants --- Physical and mathematical constants and units - datasets --- Dataset methods - fft --- Discrete Fourier transforms - fftpack --- Legacy discrete Fourier transforms - integrate --- Integration routines - interpolate --- Interpolation Tools - io --- Data input and output - linalg --- Linear algebra routines - misc --- Utilities that don't have another home. - ndimage --- N-D image package - odr --- Orthogonal Distance Regression - optimize --- Optimization Tools - signal --- Signal Processing Tools - sparse --- Sparse Matrices - spatial --- Spatial data structures and algorithms - special --- Special functions - stats --- Statistical Functions - -Public API in the main SciPy namespace --------------------------------------- -:: - - __version__ --- SciPy version string - LowLevelCallable --- Low-level callback function - show_config --- Show scipy build configuration - test --- Run scipy unittests - -""" - -import importlib as _importlib - -from numpy import __version__ as __numpy_version__ - - -try: - from scipy.__config__ import show as show_config -except ImportError as e: - msg = """Error importing SciPy: you cannot import SciPy while - being in scipy source directory; please exit the SciPy source - tree first and relaunch your Python interpreter.""" - raise ImportError(msg) from e - - -from scipy.version import version as __version__ - - -# Allow distributors to run custom init code -from . import _distributor_init -del _distributor_init - - -from scipy._lib import _pep440 -# In maintenance branch, change to np_maxversion N+3 if numpy is at N -np_minversion = '1.23.5' -np_maxversion = '2.3.0' -if (_pep440.parse(__numpy_version__) < _pep440.Version(np_minversion) or - _pep440.parse(__numpy_version__) >= _pep440.Version(np_maxversion)): - import warnings - warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" - f" is required for this version of SciPy (detected " - f"version {__numpy_version__})", - UserWarning, stacklevel=2) -del _pep440 - - -# This is the first import of an extension module within SciPy. If there's -# a general issue with the install, such that extension modules are missing -# or cannot be imported, this is where we'll get a failure - so give an -# informative error message. -try: - from scipy._lib._ccallback import LowLevelCallable -except ImportError as e: - msg = "The `scipy` install you are using seems to be broken, " + \ - "(extension modules cannot be imported), " + \ - "please try reinstalling." - raise ImportError(msg) from e - - -from scipy._lib._testutils import PytestTester -test = PytestTester(__name__) -del PytestTester - - -submodules = [ - 'cluster', - 'constants', - 'datasets', - 'fft', - 'fftpack', - 'integrate', - 'interpolate', - 'io', - 'linalg', - 'misc', - 'ndimage', - 'odr', - 'optimize', - 'signal', - 'sparse', - 'spatial', - 'special', - 'stats' -] - -__all__ = submodules + [ - 'LowLevelCallable', - 'test', - 'show_config', - '__version__', -] - - -def __dir__(): - return __all__ - - -def __getattr__(name): - if name in submodules: - return _importlib.import_module(f'scipy.{name}') - else: - try: - return globals()[name] - except KeyError: - raise AttributeError( - f"Module 'scipy' has no attribute '{name}'" - ) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_distributor_init.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_distributor_init.py deleted file mode 100644 index 5df134975aa27d31beaff74c3cbfd2d3fb0a55dd..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_distributor_init.py +++ /dev/null @@ -1,18 +0,0 @@ -""" Distributor init file - -Distributors: you can replace the contents of this file with your own custom -code to support particular distributions of SciPy. - -For example, this is a good place to put any checks for hardware requirements -or BLAS/LAPACK library initialization. - -The SciPy standard source distribution will not put code in this file beyond -the try-except import of `_distributor_init_local` (which is not part of a -standard source distribution), so you can safely replace this file with your -own version. -""" - -try: - from . import _distributor_init_local # noqa: F401 -except ImportError: - pass diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__init__.py deleted file mode 100644 index 2140970015d099763797d60a98a3a3b6f4b5f219..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -""" -Module containing private utility functions -=========================================== - -The ``scipy._lib`` namespace is empty (for now). Tests for all -utilities in submodules of ``_lib`` can be run with:: - - from scipy import _lib - _lib.test() - -""" -from scipy._lib._testutils import PytestTester -test = PytestTester(__name__) -del PytestTester diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index c7971b209e7ab27401cc3b430c25cad77f5d2c6d..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_array_api.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_array_api.cpython-310.pyc deleted file mode 100644 index 9e2217464a5e007691d154a228b4da25bd3ab993..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_array_api.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_bunch.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_bunch.cpython-310.pyc deleted file mode 100644 index bf89e52e0777f526af74deabf1da45f2741effee..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_bunch.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_ccallback.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_ccallback.cpython-310.pyc deleted file mode 100644 index dada1c06a74bf9fac597506c0fa6405cbd1a29c4..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_ccallback.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_disjoint_set.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_disjoint_set.cpython-310.pyc deleted file mode 100644 index 9c8a464b97890e01ef467146dc12798cdebf7627..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_disjoint_set.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_docscrape.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_docscrape.cpython-310.pyc deleted file mode 100644 index 3e931b2cc7aefb32591aed3e39765a785fe15608..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_docscrape.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_elementwise_iterative_method.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_elementwise_iterative_method.cpython-310.pyc deleted file mode 100644 index dad426cce8fd37a38f5b61757c213f639a0e56cf..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_elementwise_iterative_method.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_finite_differences.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_finite_differences.cpython-310.pyc deleted file mode 100644 index 2fb817703218d12939e19ce48ddf1717bd3185fc..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_finite_differences.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_gcutils.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_gcutils.cpython-310.pyc deleted file mode 100644 index 3eb7ca092582092e15d908d1b6c653a3b1392cfc..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_gcutils.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_pep440.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_pep440.cpython-310.pyc deleted file mode 100644 index f9fb259070e5fc54438af9eee9779853a5314fe8..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_pep440.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_testutils.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_testutils.cpython-310.pyc deleted file mode 100644 index c0d8406153f6c7f0665334413beba8f6c20dd5ad..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_testutils.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_threadsafety.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_threadsafety.cpython-310.pyc deleted file mode 100644 index 11cec7fddffd68d4dc13ffe35351dcd43529550f..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_threadsafety.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_tmpdirs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_tmpdirs.cpython-310.pyc deleted file mode 100644 index fc40e92b6cf59011a58355006c4c4657173c073a..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_tmpdirs.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_util.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_util.cpython-310.pyc deleted file mode 100644 index 34cb0aa2227ba75bb2aef053c1f7e48c7b41467d..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/_util.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/decorator.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/decorator.cpython-310.pyc deleted file mode 100644 index a5b1fba476792395e25e1f14124cf48fe688852f..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/decorator.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/deprecation.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/deprecation.cpython-310.pyc deleted file mode 100644 index c2c2463d156b99752c43007af5bffd0d9ce686cb..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/deprecation.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/doccer.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/doccer.cpython-310.pyc deleted file mode 100644 index 3b4c7403fd4f5aff2430b7e31a58b832898bb376..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/doccer.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/uarray.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/uarray.cpython-310.pyc deleted file mode 100644 index 66f90cf33c3ef2a6f83a7f2533e2bd2e18702a90..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/__pycache__/uarray.cpython-310.pyc and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_array_api.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_array_api.py deleted file mode 100644 index 5cce1726013fef80c4a95998d8ab41cb026e5cdf..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_array_api.py +++ /dev/null @@ -1,524 +0,0 @@ -"""Utility functions to use Python Array API compatible libraries. - -For the context about the Array API see: -https://data-apis.org/array-api/latest/purpose_and_scope.html - -The SciPy use case of the Array API is described on the following page: -https://data-apis.org/array-api/latest/use_cases.html#use-case-scipy -""" -from __future__ import annotations - -import os -import warnings - -from types import ModuleType -from typing import Any, Literal, TYPE_CHECKING - -import numpy as np -import numpy.typing as npt - -from scipy._lib import array_api_compat -from scipy._lib.array_api_compat import ( - is_array_api_obj, - size, - numpy as np_compat, - device -) - -__all__ = ['array_namespace', '_asarray', 'size', 'device'] - - -# To enable array API and strict array-like input validation -SCIPY_ARRAY_API: str | bool = os.environ.get("SCIPY_ARRAY_API", False) -# To control the default device - for use in the test suite only -SCIPY_DEVICE = os.environ.get("SCIPY_DEVICE", "cpu") - -_GLOBAL_CONFIG = { - "SCIPY_ARRAY_API": SCIPY_ARRAY_API, - "SCIPY_DEVICE": SCIPY_DEVICE, -} - - -if TYPE_CHECKING: - Array = Any # To be changed to a Protocol later (see array-api#589) - ArrayLike = Array | npt.ArrayLike - - -def compliance_scipy(arrays: list[ArrayLike]) -> list[Array]: - """Raise exceptions on known-bad subclasses. - - The following subclasses are not supported and raise and error: - - `numpy.ma.MaskedArray` - - `numpy.matrix` - - NumPy arrays which do not have a boolean or numerical dtype - - Any array-like which is neither array API compatible nor coercible by NumPy - - Any array-like which is coerced by NumPy to an unsupported dtype - """ - for i in range(len(arrays)): - array = arrays[i] - if isinstance(array, np.ma.MaskedArray): - raise TypeError("Inputs of type `numpy.ma.MaskedArray` are not supported.") - elif isinstance(array, np.matrix): - raise TypeError("Inputs of type `numpy.matrix` are not supported.") - if isinstance(array, (np.ndarray, np.generic)): - dtype = array.dtype - if not (np.issubdtype(dtype, np.number) or np.issubdtype(dtype, np.bool_)): - raise TypeError(f"An argument has dtype `{dtype!r}`; " - f"only boolean and numerical dtypes are supported.") - elif not is_array_api_obj(array): - try: - array = np.asanyarray(array) - except TypeError: - raise TypeError("An argument is neither array API compatible nor " - "coercible by NumPy.") - dtype = array.dtype - if not (np.issubdtype(dtype, np.number) or np.issubdtype(dtype, np.bool_)): - message = ( - f"An argument was coerced to an unsupported dtype `{dtype!r}`; " - f"only boolean and numerical dtypes are supported." - ) - raise TypeError(message) - arrays[i] = array - return arrays - - -def _check_finite(array: Array, xp: ModuleType) -> None: - """Check for NaNs or Infs.""" - msg = "array must not contain infs or NaNs" - try: - if not xp.all(xp.isfinite(array)): - raise ValueError(msg) - except TypeError: - raise ValueError(msg) - - -def array_namespace(*arrays: Array) -> ModuleType: - """Get the array API compatible namespace for the arrays xs. - - Parameters - ---------- - *arrays : sequence of array_like - Arrays used to infer the common namespace. - - Returns - ------- - namespace : module - Common namespace. - - Notes - ----- - Thin wrapper around `array_api_compat.array_namespace`. - - 1. Check for the global switch: SCIPY_ARRAY_API. This can also be accessed - dynamically through ``_GLOBAL_CONFIG['SCIPY_ARRAY_API']``. - 2. `compliance_scipy` raise exceptions on known-bad subclasses. See - its definition for more details. - - When the global switch is False, it defaults to the `numpy` namespace. - In that case, there is no compliance check. This is a convenience to - ease the adoption. Otherwise, arrays must comply with the new rules. - """ - if not _GLOBAL_CONFIG["SCIPY_ARRAY_API"]: - # here we could wrap the namespace if needed - return np_compat - - _arrays = [array for array in arrays if array is not None] - - _arrays = compliance_scipy(_arrays) - - return array_api_compat.array_namespace(*_arrays) - - -def _asarray( - array: ArrayLike, - dtype: Any = None, - order: Literal['K', 'A', 'C', 'F'] | None = None, - copy: bool | None = None, - *, - xp: ModuleType | None = None, - check_finite: bool = False, - subok: bool = False, - ) -> Array: - """SciPy-specific replacement for `np.asarray` with `order`, `check_finite`, and - `subok`. - - Memory layout parameter `order` is not exposed in the Array API standard. - `order` is only enforced if the input array implementation - is NumPy based, otherwise `order` is just silently ignored. - - `check_finite` is also not a keyword in the array API standard; included - here for convenience rather than that having to be a separate function - call inside SciPy functions. - - `subok` is included to allow this function to preserve the behaviour of - `np.asanyarray` for NumPy based inputs. - """ - if xp is None: - xp = array_namespace(array) - if xp.__name__ in {"numpy", "scipy._lib.array_api_compat.numpy"}: - # Use NumPy API to support order - if copy is True: - array = np.array(array, order=order, dtype=dtype, subok=subok) - elif subok: - array = np.asanyarray(array, order=order, dtype=dtype) - else: - array = np.asarray(array, order=order, dtype=dtype) - - # At this point array is a NumPy ndarray. We convert it to an array - # container that is consistent with the input's namespace. - array = xp.asarray(array) - else: - try: - array = xp.asarray(array, dtype=dtype, copy=copy) - except TypeError: - coerced_xp = array_namespace(xp.asarray(3)) - array = coerced_xp.asarray(array, dtype=dtype, copy=copy) - - if check_finite: - _check_finite(array, xp) - - return array - - -def atleast_nd(x: Array, *, ndim: int, xp: ModuleType | None = None) -> Array: - """Recursively expand the dimension to have at least `ndim`.""" - if xp is None: - xp = array_namespace(x) - x = xp.asarray(x) - if x.ndim < ndim: - x = xp.expand_dims(x, axis=0) - x = atleast_nd(x, ndim=ndim, xp=xp) - return x - - -def copy(x: Array, *, xp: ModuleType | None = None) -> Array: - """ - Copies an array. - - Parameters - ---------- - x : array - - xp : array_namespace - - Returns - ------- - copy : array - Copied array - - Notes - ----- - This copy function does not offer all the semantics of `np.copy`, i.e. the - `subok` and `order` keywords are not used. - """ - # Note: xp.asarray fails if xp is numpy. - if xp is None: - xp = array_namespace(x) - - return _asarray(x, copy=True, xp=xp) - - -def is_numpy(xp: ModuleType) -> bool: - return xp.__name__ in ('numpy', 'scipy._lib.array_api_compat.numpy') - - -def is_cupy(xp: ModuleType) -> bool: - return xp.__name__ in ('cupy', 'scipy._lib.array_api_compat.cupy') - - -def is_torch(xp: ModuleType) -> bool: - return xp.__name__ in ('torch', 'scipy._lib.array_api_compat.torch') - -def is_jax(xp): - return xp.__name__ in ('jax.numpy', 'jax.experimental.array_api') - - -def _strict_check(actual, desired, xp, - check_namespace=True, check_dtype=True, check_shape=True): - __tracebackhide__ = True # Hide traceback for py.test - if check_namespace: - _assert_matching_namespace(actual, desired) - - desired = xp.asarray(desired) - - if check_dtype: - _msg = f"dtypes do not match.\nActual: {actual.dtype}\nDesired: {desired.dtype}" - assert actual.dtype == desired.dtype, _msg - - if check_shape: - _msg = f"Shapes do not match.\nActual: {actual.shape}\nDesired: {desired.shape}" - assert actual.shape == desired.shape, _msg - _check_scalar(actual, desired, xp) - - desired = xp.broadcast_to(desired, actual.shape) - return desired - - -def _assert_matching_namespace(actual, desired): - __tracebackhide__ = True # Hide traceback for py.test - actual = actual if isinstance(actual, tuple) else (actual,) - desired_space = array_namespace(desired) - for arr in actual: - arr_space = array_namespace(arr) - _msg = (f"Namespaces do not match.\n" - f"Actual: {arr_space.__name__}\n" - f"Desired: {desired_space.__name__}") - assert arr_space == desired_space, _msg - - -def _check_scalar(actual, desired, xp): - __tracebackhide__ = True # Hide traceback for py.test - # Shape check alone is sufficient unless desired.shape == (). Also, - # only NumPy distinguishes between scalars and arrays. - if desired.shape != () or not is_numpy(xp): - return - # We want to follow the conventions of the `xp` library. Libraries like - # NumPy, for which `np.asarray(0)[()]` returns a scalar, tend to return - # a scalar even when a 0D array might be more appropriate: - # import numpy as np - # np.mean([1, 2, 3]) # scalar, not 0d array - # np.asarray(0)*2 # scalar, not 0d array - # np.sin(np.asarray(0)) # scalar, not 0d array - # Libraries like CuPy, for which `cp.asarray(0)[()]` returns a 0D array, - # tend to return a 0D array in scenarios like those above. - # Therefore, regardless of whether the developer provides a scalar or 0D - # array for `desired`, we would typically want the type of `actual` to be - # the type of `desired[()]`. If the developer wants to override this - # behavior, they can set `check_shape=False`. - desired = desired[()] - _msg = f"Types do not match:\n Actual: {type(actual)}\n Desired: {type(desired)}" - assert (xp.isscalar(actual) and xp.isscalar(desired) - or (not xp.isscalar(actual) and not xp.isscalar(desired))), _msg - - -def xp_assert_equal(actual, desired, check_namespace=True, check_dtype=True, - check_shape=True, err_msg='', xp=None): - __tracebackhide__ = True # Hide traceback for py.test - if xp is None: - xp = array_namespace(actual) - desired = _strict_check(actual, desired, xp, check_namespace=check_namespace, - check_dtype=check_dtype, check_shape=check_shape) - if is_cupy(xp): - return xp.testing.assert_array_equal(actual, desired, err_msg=err_msg) - elif is_torch(xp): - # PyTorch recommends using `rtol=0, atol=0` like this - # to test for exact equality - err_msg = None if err_msg == '' else err_msg - return xp.testing.assert_close(actual, desired, rtol=0, atol=0, equal_nan=True, - check_dtype=False, msg=err_msg) - # JAX uses `np.testing` - return np.testing.assert_array_equal(actual, desired, err_msg=err_msg) - - -def xp_assert_close(actual, desired, rtol=None, atol=0, check_namespace=True, - check_dtype=True, check_shape=True, err_msg='', xp=None): - __tracebackhide__ = True # Hide traceback for py.test - if xp is None: - xp = array_namespace(actual) - desired = _strict_check(actual, desired, xp, check_namespace=check_namespace, - check_dtype=check_dtype, check_shape=check_shape) - - floating = xp.isdtype(actual.dtype, ('real floating', 'complex floating')) - if rtol is None and floating: - # multiplier of 4 is used as for `np.float64` this puts the default `rtol` - # roughly half way between sqrt(eps) and the default for - # `numpy.testing.assert_allclose`, 1e-7 - rtol = xp.finfo(actual.dtype).eps**0.5 * 4 - elif rtol is None: - rtol = 1e-7 - - if is_cupy(xp): - return xp.testing.assert_allclose(actual, desired, rtol=rtol, - atol=atol, err_msg=err_msg) - elif is_torch(xp): - err_msg = None if err_msg == '' else err_msg - return xp.testing.assert_close(actual, desired, rtol=rtol, atol=atol, - equal_nan=True, check_dtype=False, msg=err_msg) - # JAX uses `np.testing` - return np.testing.assert_allclose(actual, desired, rtol=rtol, - atol=atol, err_msg=err_msg) - - -def xp_assert_less(actual, desired, check_namespace=True, check_dtype=True, - check_shape=True, err_msg='', verbose=True, xp=None): - __tracebackhide__ = True # Hide traceback for py.test - if xp is None: - xp = array_namespace(actual) - desired = _strict_check(actual, desired, xp, check_namespace=check_namespace, - check_dtype=check_dtype, check_shape=check_shape) - if is_cupy(xp): - return xp.testing.assert_array_less(actual, desired, - err_msg=err_msg, verbose=verbose) - elif is_torch(xp): - if actual.device.type != 'cpu': - actual = actual.cpu() - if desired.device.type != 'cpu': - desired = desired.cpu() - # JAX uses `np.testing` - return np.testing.assert_array_less(actual, desired, - err_msg=err_msg, verbose=verbose) - - -def cov(x: Array, *, xp: ModuleType | None = None) -> Array: - if xp is None: - xp = array_namespace(x) - - X = copy(x, xp=xp) - dtype = xp.result_type(X, xp.float64) - - X = atleast_nd(X, ndim=2, xp=xp) - X = xp.asarray(X, dtype=dtype) - - avg = xp.mean(X, axis=1) - fact = X.shape[1] - 1 - - if fact <= 0: - warnings.warn("Degrees of freedom <= 0 for slice", - RuntimeWarning, stacklevel=2) - fact = 0.0 - - X -= avg[:, None] - X_T = X.T - if xp.isdtype(X_T.dtype, 'complex floating'): - X_T = xp.conj(X_T) - c = X @ X_T - c /= fact - axes = tuple(axis for axis, length in enumerate(c.shape) if length == 1) - return xp.squeeze(c, axis=axes) - - -def xp_unsupported_param_msg(param: Any) -> str: - return f'Providing {param!r} is only supported for numpy arrays.' - - -def is_complex(x: Array, xp: ModuleType) -> bool: - return xp.isdtype(x.dtype, 'complex floating') - - -def get_xp_devices(xp: ModuleType) -> list[str] | list[None]: - """Returns a list of available devices for the given namespace.""" - devices: list[str] = [] - if is_torch(xp): - devices += ['cpu'] - import torch # type: ignore[import] - num_cuda = torch.cuda.device_count() - for i in range(0, num_cuda): - devices += [f'cuda:{i}'] - if torch.backends.mps.is_available(): - devices += ['mps'] - return devices - elif is_cupy(xp): - import cupy # type: ignore[import] - num_cuda = cupy.cuda.runtime.getDeviceCount() - for i in range(0, num_cuda): - devices += [f'cuda:{i}'] - return devices - elif is_jax(xp): - import jax # type: ignore[import] - num_cpu = jax.device_count(backend='cpu') - for i in range(0, num_cpu): - devices += [f'cpu:{i}'] - num_gpu = jax.device_count(backend='gpu') - for i in range(0, num_gpu): - devices += [f'gpu:{i}'] - num_tpu = jax.device_count(backend='tpu') - for i in range(0, num_tpu): - devices += [f'tpu:{i}'] - return devices - - # given namespace is not known to have a list of available devices; - # return `[None]` so that one can use this in tests for `device=None`. - return [None] - - -def scipy_namespace_for(xp: ModuleType) -> ModuleType: - """ - Return the `scipy` namespace for alternative backends, where it exists, - such as `cupyx.scipy` and `jax.scipy`. Useful for ad hoc dispatching. - - Default: return `scipy` (this package). - """ - - - if is_cupy(xp): - import cupyx # type: ignore[import-not-found,import-untyped] - return cupyx.scipy - - if is_jax(xp): - import jax # type: ignore[import-not-found] - return jax.scipy - - import scipy - return scipy - - -# temporary substitute for xp.minimum, which is not yet in all backends -# or covered by array_api_compat. -def xp_minimum(x1: Array, x2: Array, /) -> Array: - # xp won't be passed in because it doesn't need to be passed in to xp.minimum - xp = array_namespace(x1, x2) - if hasattr(xp, 'minimum'): - return xp.minimum(x1, x2) - x1, x2 = xp.broadcast_arrays(x1, x2) - i = (x2 < x1) | xp.isnan(x2) - res = xp.where(i, x2, x1) - return res[()] if res.ndim == 0 else res - - -# temporary substitute for xp.clip, which is not yet in all backends -# or covered by array_api_compat. -def xp_clip( - x: Array, - /, - min: int | float | Array | None = None, - max: int | float | Array | None = None, - *, - xp: ModuleType | None = None) -> Array: - xp = array_namespace(x) if xp is None else xp - a, b = xp.asarray(min, dtype=x.dtype), xp.asarray(max, dtype=x.dtype) - if hasattr(xp, 'clip'): - return xp.clip(x, a, b) - x, a, b = xp.broadcast_arrays(x, a, b) - y = xp.asarray(x, copy=True) - ia = y < a - y[ia] = a[ia] - ib = y > b - y[ib] = b[ib] - return y[()] if y.ndim == 0 else y - - -# temporary substitute for xp.moveaxis, which is not yet in all backends -# or covered by array_api_compat. -def xp_moveaxis_to_end( - x: Array, - source: int, - /, *, - xp: ModuleType | None = None) -> Array: - xp = array_namespace(xp) if xp is None else xp - axes = list(range(x.ndim)) - temp = axes.pop(source) - axes = axes + [temp] - return xp.permute_dims(x, axes) - - -# temporary substitute for xp.copysign, which is not yet in all backends -# or covered by array_api_compat. -def xp_copysign(x1: Array, x2: Array, /, *, xp: ModuleType | None = None) -> Array: - # no attempt to account for special cases - xp = array_namespace(x1, x2) if xp is None else xp - abs_x1 = xp.abs(x1) - return xp.where(x2 >= 0, abs_x1, -abs_x1) - - -# partial substitute for xp.sign, which does not cover the NaN special case -# that I need. (https://github.com/data-apis/array-api-compat/issues/136) -def xp_sign(x: Array, /, *, xp: ModuleType | None = None) -> Array: - xp = array_namespace(x) if xp is None else xp - if is_numpy(xp): # only NumPy implements the special cases correctly - return xp.sign(x) - sign = xp.full_like(x, xp.nan) - one = xp.asarray(1, dtype=x.dtype) - sign = xp.where(x > 0, one, sign) - sign = xp.where(x < 0, -one, sign) - sign = xp.where(x == 0, 0*one, sign) - return sign diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_bunch.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_bunch.py deleted file mode 100644 index bb562e4348f46dc1137afe3d3ce50f1149c85376..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_bunch.py +++ /dev/null @@ -1,225 +0,0 @@ -import sys as _sys -from keyword import iskeyword as _iskeyword - - -def _validate_names(typename, field_names, extra_field_names): - """ - Ensure that all the given names are valid Python identifiers that - do not start with '_'. Also check that there are no duplicates - among field_names + extra_field_names. - """ - for name in [typename] + field_names + extra_field_names: - if not isinstance(name, str): - raise TypeError('typename and all field names must be strings') - if not name.isidentifier(): - raise ValueError('typename and all field names must be valid ' - f'identifiers: {name!r}') - if _iskeyword(name): - raise ValueError('typename and all field names cannot be a ' - f'keyword: {name!r}') - - seen = set() - for name in field_names + extra_field_names: - if name.startswith('_'): - raise ValueError('Field names cannot start with an underscore: ' - f'{name!r}') - if name in seen: - raise ValueError(f'Duplicate field name: {name!r}') - seen.add(name) - - -# Note: This code is adapted from CPython:Lib/collections/__init__.py -def _make_tuple_bunch(typename, field_names, extra_field_names=None, - module=None): - """ - Create a namedtuple-like class with additional attributes. - - This function creates a subclass of tuple that acts like a namedtuple - and that has additional attributes. - - The additional attributes are listed in `extra_field_names`. The - values assigned to these attributes are not part of the tuple. - - The reason this function exists is to allow functions in SciPy - that currently return a tuple or a namedtuple to returned objects - that have additional attributes, while maintaining backwards - compatibility. - - This should only be used to enhance *existing* functions in SciPy. - New functions are free to create objects as return values without - having to maintain backwards compatibility with an old tuple or - namedtuple return value. - - Parameters - ---------- - typename : str - The name of the type. - field_names : list of str - List of names of the values to be stored in the tuple. These names - will also be attributes of instances, so the values in the tuple - can be accessed by indexing or as attributes. At least one name - is required. See the Notes for additional restrictions. - extra_field_names : list of str, optional - List of names of values that will be stored as attributes of the - object. See the notes for additional restrictions. - - Returns - ------- - cls : type - The new class. - - Notes - ----- - There are restrictions on the names that may be used in `field_names` - and `extra_field_names`: - - * The names must be unique--no duplicates allowed. - * The names must be valid Python identifiers, and must not begin with - an underscore. - * The names must not be Python keywords (e.g. 'def', 'and', etc., are - not allowed). - - Examples - -------- - >>> from scipy._lib._bunch import _make_tuple_bunch - - Create a class that acts like a namedtuple with length 2 (with field - names `x` and `y`) that will also have the attributes `w` and `beta`: - - >>> Result = _make_tuple_bunch('Result', ['x', 'y'], ['w', 'beta']) - - `Result` is the new class. We call it with keyword arguments to create - a new instance with given values. - - >>> result1 = Result(x=1, y=2, w=99, beta=0.5) - >>> result1 - Result(x=1, y=2, w=99, beta=0.5) - - `result1` acts like a tuple of length 2: - - >>> len(result1) - 2 - >>> result1[:] - (1, 2) - - The values assigned when the instance was created are available as - attributes: - - >>> result1.y - 2 - >>> result1.beta - 0.5 - """ - if len(field_names) == 0: - raise ValueError('field_names must contain at least one name') - - if extra_field_names is None: - extra_field_names = [] - _validate_names(typename, field_names, extra_field_names) - - typename = _sys.intern(str(typename)) - field_names = tuple(map(_sys.intern, field_names)) - extra_field_names = tuple(map(_sys.intern, extra_field_names)) - - all_names = field_names + extra_field_names - arg_list = ', '.join(field_names) - full_list = ', '.join(all_names) - repr_fmt = ''.join(('(', - ', '.join(f'{name}=%({name})r' for name in all_names), - ')')) - tuple_new = tuple.__new__ - _dict, _tuple, _zip = dict, tuple, zip - - # Create all the named tuple methods to be added to the class namespace - - s = f"""\ -def __new__(_cls, {arg_list}, **extra_fields): - return _tuple_new(_cls, ({arg_list},)) - -def __init__(self, {arg_list}, **extra_fields): - for key in self._extra_fields: - if key not in extra_fields: - raise TypeError("missing keyword argument '%s'" % (key,)) - for key, val in extra_fields.items(): - if key not in self._extra_fields: - raise TypeError("unexpected keyword argument '%s'" % (key,)) - self.__dict__[key] = val - -def __setattr__(self, key, val): - if key in {repr(field_names)}: - raise AttributeError("can't set attribute %r of class %r" - % (key, self.__class__.__name__)) - else: - self.__dict__[key] = val -""" - del arg_list - namespace = {'_tuple_new': tuple_new, - '__builtins__': dict(TypeError=TypeError, - AttributeError=AttributeError), - '__name__': f'namedtuple_{typename}'} - exec(s, namespace) - __new__ = namespace['__new__'] - __new__.__doc__ = f'Create new instance of {typename}({full_list})' - __init__ = namespace['__init__'] - __init__.__doc__ = f'Instantiate instance of {typename}({full_list})' - __setattr__ = namespace['__setattr__'] - - def __repr__(self): - 'Return a nicely formatted representation string' - return self.__class__.__name__ + repr_fmt % self._asdict() - - def _asdict(self): - 'Return a new dict which maps field names to their values.' - out = _dict(_zip(self._fields, self)) - out.update(self.__dict__) - return out - - def __getnewargs_ex__(self): - 'Return self as a plain tuple. Used by copy and pickle.' - return _tuple(self), self.__dict__ - - # Modify function metadata to help with introspection and debugging - for method in (__new__, __repr__, _asdict, __getnewargs_ex__): - method.__qualname__ = f'{typename}.{method.__name__}' - - # Build-up the class namespace dictionary - # and use type() to build the result class - class_namespace = { - '__doc__': f'{typename}({full_list})', - '_fields': field_names, - '__new__': __new__, - '__init__': __init__, - '__repr__': __repr__, - '__setattr__': __setattr__, - '_asdict': _asdict, - '_extra_fields': extra_field_names, - '__getnewargs_ex__': __getnewargs_ex__, - } - for index, name in enumerate(field_names): - - def _get(self, index=index): - return self[index] - class_namespace[name] = property(_get) - for name in extra_field_names: - - def _get(self, name=name): - return self.__dict__[name] - class_namespace[name] = property(_get) - - result = type(typename, (tuple,), class_namespace) - - # For pickling to work, the __module__ variable needs to be set to the - # frame where the named tuple is created. Bypass this step in environments - # where sys._getframe is not defined (Jython for example) or sys._getframe - # is not defined for arguments greater than 0 (IronPython), or where the - # user has specified a particular module. - if module is None: - try: - module = _sys._getframe(1).f_globals.get('__name__', '__main__') - except (AttributeError, ValueError): - pass - if module is not None: - result.__module__ = module - __new__.__module__ = module - - return result diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_ccallback.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_ccallback.py deleted file mode 100644 index 1980d06f5489e6633fb611c35bfb56903bd63e7f..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_ccallback.py +++ /dev/null @@ -1,251 +0,0 @@ -from . import _ccallback_c - -import ctypes - -PyCFuncPtr = ctypes.CFUNCTYPE(ctypes.c_void_p).__bases__[0] - -ffi = None - -class CData: - pass - -def _import_cffi(): - global ffi, CData - - if ffi is not None: - return - - try: - import cffi - ffi = cffi.FFI() - CData = ffi.CData - except ImportError: - ffi = False - - -class LowLevelCallable(tuple): - """ - Low-level callback function. - - Some functions in SciPy take as arguments callback functions, which - can either be python callables or low-level compiled functions. Using - compiled callback functions can improve performance somewhat by - avoiding wrapping data in Python objects. - - Such low-level functions in SciPy are wrapped in `LowLevelCallable` - objects, which can be constructed from function pointers obtained from - ctypes, cffi, Cython, or contained in Python `PyCapsule` objects. - - .. seealso:: - - Functions accepting low-level callables: - - `scipy.integrate.quad`, `scipy.ndimage.generic_filter`, - `scipy.ndimage.generic_filter1d`, `scipy.ndimage.geometric_transform` - - Usage examples: - - :ref:`ndimage-ccallbacks`, :ref:`quad-callbacks` - - Parameters - ---------- - function : {PyCapsule, ctypes function pointer, cffi function pointer} - Low-level callback function. - user_data : {PyCapsule, ctypes void pointer, cffi void pointer} - User data to pass on to the callback function. - signature : str, optional - Signature of the function. If omitted, determined from *function*, - if possible. - - Attributes - ---------- - function - Callback function given. - user_data - User data given. - signature - Signature of the function. - - Methods - ------- - from_cython - Class method for constructing callables from Cython C-exported - functions. - - Notes - ----- - The argument ``function`` can be one of: - - - PyCapsule, whose name contains the C function signature - - ctypes function pointer - - cffi function pointer - - The signature of the low-level callback must match one of those expected - by the routine it is passed to. - - If constructing low-level functions from a PyCapsule, the name of the - capsule must be the corresponding signature, in the format:: - - return_type (arg1_type, arg2_type, ...) - - For example:: - - "void (double)" - "double (double, int *, void *)" - - The context of a PyCapsule passed in as ``function`` is used as ``user_data``, - if an explicit value for ``user_data`` was not given. - - """ - - # Make the class immutable - __slots__ = () - - def __new__(cls, function, user_data=None, signature=None): - # We need to hold a reference to the function & user data, - # to prevent them going out of scope - item = cls._parse_callback(function, user_data, signature) - return tuple.__new__(cls, (item, function, user_data)) - - def __repr__(self): - return f"LowLevelCallable({self.function!r}, {self.user_data!r})" - - @property - def function(self): - return tuple.__getitem__(self, 1) - - @property - def user_data(self): - return tuple.__getitem__(self, 2) - - @property - def signature(self): - return _ccallback_c.get_capsule_signature(tuple.__getitem__(self, 0)) - - def __getitem__(self, idx): - raise ValueError() - - @classmethod - def from_cython(cls, module, name, user_data=None, signature=None): - """ - Create a low-level callback function from an exported Cython function. - - Parameters - ---------- - module : module - Cython module where the exported function resides - name : str - Name of the exported function - user_data : {PyCapsule, ctypes void pointer, cffi void pointer}, optional - User data to pass on to the callback function. - signature : str, optional - Signature of the function. If omitted, determined from *function*. - - """ - try: - function = module.__pyx_capi__[name] - except AttributeError as e: - message = "Given module is not a Cython module with __pyx_capi__ attribute" - raise ValueError(message) from e - except KeyError as e: - message = f"No function {name!r} found in __pyx_capi__ of the module" - raise ValueError(message) from e - return cls(function, user_data, signature) - - @classmethod - def _parse_callback(cls, obj, user_data=None, signature=None): - _import_cffi() - - if isinstance(obj, LowLevelCallable): - func = tuple.__getitem__(obj, 0) - elif isinstance(obj, PyCFuncPtr): - func, signature = _get_ctypes_func(obj, signature) - elif isinstance(obj, CData): - func, signature = _get_cffi_func(obj, signature) - elif _ccallback_c.check_capsule(obj): - func = obj - else: - raise ValueError("Given input is not a callable or a " - "low-level callable (pycapsule/ctypes/cffi)") - - if isinstance(user_data, ctypes.c_void_p): - context = _get_ctypes_data(user_data) - elif isinstance(user_data, CData): - context = _get_cffi_data(user_data) - elif user_data is None: - context = 0 - elif _ccallback_c.check_capsule(user_data): - context = user_data - else: - raise ValueError("Given user data is not a valid " - "low-level void* pointer (pycapsule/ctypes/cffi)") - - return _ccallback_c.get_raw_capsule(func, signature, context) - - -# -# ctypes helpers -# - -def _get_ctypes_func(func, signature=None): - # Get function pointer - func_ptr = ctypes.cast(func, ctypes.c_void_p).value - - # Construct function signature - if signature is None: - signature = _typename_from_ctypes(func.restype) + " (" - for j, arg in enumerate(func.argtypes): - if j == 0: - signature += _typename_from_ctypes(arg) - else: - signature += ", " + _typename_from_ctypes(arg) - signature += ")" - - return func_ptr, signature - - -def _typename_from_ctypes(item): - if item is None: - return "void" - elif item is ctypes.c_void_p: - return "void *" - - name = item.__name__ - - pointer_level = 0 - while name.startswith("LP_"): - pointer_level += 1 - name = name[3:] - - if name.startswith('c_'): - name = name[2:] - - if pointer_level > 0: - name += " " + "*"*pointer_level - - return name - - -def _get_ctypes_data(data): - # Get voidp pointer - return ctypes.cast(data, ctypes.c_void_p).value - - -# -# CFFI helpers -# - -def _get_cffi_func(func, signature=None): - # Get function pointer - func_ptr = ffi.cast('uintptr_t', func) - - # Get signature - if signature is None: - signature = ffi.getctype(ffi.typeof(func)).replace('(*)', ' ') - - return func_ptr, signature - - -def _get_cffi_data(data): - # Get pointer - return ffi.cast('uintptr_t', data) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_disjoint_set.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_disjoint_set.py deleted file mode 100644 index 683c5c8e518705e710212dafc01363f92a2f947d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_disjoint_set.py +++ /dev/null @@ -1,254 +0,0 @@ -""" -Disjoint set data structure -""" - - -class DisjointSet: - """ Disjoint set data structure for incremental connectivity queries. - - .. versionadded:: 1.6.0 - - Attributes - ---------- - n_subsets : int - The number of subsets. - - Methods - ------- - add - merge - connected - subset - subset_size - subsets - __getitem__ - - Notes - ----- - This class implements the disjoint set [1]_, also known as the *union-find* - or *merge-find* data structure. The *find* operation (implemented in - `__getitem__`) implements the *path halving* variant. The *merge* method - implements the *merge by size* variant. - - References - ---------- - .. [1] https://en.wikipedia.org/wiki/Disjoint-set_data_structure - - Examples - -------- - >>> from scipy.cluster.hierarchy import DisjointSet - - Initialize a disjoint set: - - >>> disjoint_set = DisjointSet([1, 2, 3, 'a', 'b']) - - Merge some subsets: - - >>> disjoint_set.merge(1, 2) - True - >>> disjoint_set.merge(3, 'a') - True - >>> disjoint_set.merge('a', 'b') - True - >>> disjoint_set.merge('b', 'b') - False - - Find root elements: - - >>> disjoint_set[2] - 1 - >>> disjoint_set['b'] - 3 - - Test connectivity: - - >>> disjoint_set.connected(1, 2) - True - >>> disjoint_set.connected(1, 'b') - False - - List elements in disjoint set: - - >>> list(disjoint_set) - [1, 2, 3, 'a', 'b'] - - Get the subset containing 'a': - - >>> disjoint_set.subset('a') - {'a', 3, 'b'} - - Get the size of the subset containing 'a' (without actually instantiating - the subset): - - >>> disjoint_set.subset_size('a') - 3 - - Get all subsets in the disjoint set: - - >>> disjoint_set.subsets() - [{1, 2}, {'a', 3, 'b'}] - """ - def __init__(self, elements=None): - self.n_subsets = 0 - self._sizes = {} - self._parents = {} - # _nbrs is a circular linked list which links connected elements. - self._nbrs = {} - # _indices tracks the element insertion order in `__iter__`. - self._indices = {} - if elements is not None: - for x in elements: - self.add(x) - - def __iter__(self): - """Returns an iterator of the elements in the disjoint set. - - Elements are ordered by insertion order. - """ - return iter(self._indices) - - def __len__(self): - return len(self._indices) - - def __contains__(self, x): - return x in self._indices - - def __getitem__(self, x): - """Find the root element of `x`. - - Parameters - ---------- - x : hashable object - Input element. - - Returns - ------- - root : hashable object - Root element of `x`. - """ - if x not in self._indices: - raise KeyError(x) - - # find by "path halving" - parents = self._parents - while self._indices[x] != self._indices[parents[x]]: - parents[x] = parents[parents[x]] - x = parents[x] - return x - - def add(self, x): - """Add element `x` to disjoint set - """ - if x in self._indices: - return - - self._sizes[x] = 1 - self._parents[x] = x - self._nbrs[x] = x - self._indices[x] = len(self._indices) - self.n_subsets += 1 - - def merge(self, x, y): - """Merge the subsets of `x` and `y`. - - The smaller subset (the child) is merged into the larger subset (the - parent). If the subsets are of equal size, the root element which was - first inserted into the disjoint set is selected as the parent. - - Parameters - ---------- - x, y : hashable object - Elements to merge. - - Returns - ------- - merged : bool - True if `x` and `y` were in disjoint sets, False otherwise. - """ - xr = self[x] - yr = self[y] - if self._indices[xr] == self._indices[yr]: - return False - - sizes = self._sizes - if (sizes[xr], self._indices[yr]) < (sizes[yr], self._indices[xr]): - xr, yr = yr, xr - self._parents[yr] = xr - self._sizes[xr] += self._sizes[yr] - self._nbrs[xr], self._nbrs[yr] = self._nbrs[yr], self._nbrs[xr] - self.n_subsets -= 1 - return True - - def connected(self, x, y): - """Test whether `x` and `y` are in the same subset. - - Parameters - ---------- - x, y : hashable object - Elements to test. - - Returns - ------- - result : bool - True if `x` and `y` are in the same set, False otherwise. - """ - return self._indices[self[x]] == self._indices[self[y]] - - def subset(self, x): - """Get the subset containing `x`. - - Parameters - ---------- - x : hashable object - Input element. - - Returns - ------- - result : set - Subset containing `x`. - """ - if x not in self._indices: - raise KeyError(x) - - result = [x] - nxt = self._nbrs[x] - while self._indices[nxt] != self._indices[x]: - result.append(nxt) - nxt = self._nbrs[nxt] - return set(result) - - def subset_size(self, x): - """Get the size of the subset containing `x`. - - Note that this method is faster than ``len(self.subset(x))`` because - the size is directly read off an internal field, without the need to - instantiate the full subset. - - Parameters - ---------- - x : hashable object - Input element. - - Returns - ------- - result : int - Size of the subset containing `x`. - """ - return self._sizes[self[x]] - - def subsets(self): - """Get all the subsets in the disjoint set. - - Returns - ------- - result : list - Subsets in the disjoint set. - """ - result = [] - visited = set() - for x in self: - if x not in visited: - xset = self.subset(x) - visited.update(xset) - result.append(xset) - return result diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_docscrape.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_docscrape.py deleted file mode 100644 index f5ad8058366fa4df2f2fa870de7e4f0eff79b1e1..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_docscrape.py +++ /dev/null @@ -1,679 +0,0 @@ -"""Extract reference documentation from the NumPy source tree. - -""" -# copied from numpydoc/docscrape.py -import inspect -import textwrap -import re -import pydoc -from warnings import warn -from collections import namedtuple -from collections.abc import Callable, Mapping -import copy -import sys - - -def strip_blank_lines(l): - "Remove leading and trailing blank lines from a list of lines" - while l and not l[0].strip(): - del l[0] - while l and not l[-1].strip(): - del l[-1] - return l - - -class Reader: - """A line-based string reader. - - """ - def __init__(self, data): - """ - Parameters - ---------- - data : str - String with lines separated by '\\n'. - - """ - if isinstance(data, list): - self._str = data - else: - self._str = data.split('\n') # store string as list of lines - - self.reset() - - def __getitem__(self, n): - return self._str[n] - - def reset(self): - self._l = 0 # current line nr - - def read(self): - if not self.eof(): - out = self[self._l] - self._l += 1 - return out - else: - return '' - - def seek_next_non_empty_line(self): - for l in self[self._l:]: - if l.strip(): - break - else: - self._l += 1 - - def eof(self): - return self._l >= len(self._str) - - def read_to_condition(self, condition_func): - start = self._l - for line in self[start:]: - if condition_func(line): - return self[start:self._l] - self._l += 1 - if self.eof(): - return self[start:self._l+1] - return [] - - def read_to_next_empty_line(self): - self.seek_next_non_empty_line() - - def is_empty(line): - return not line.strip() - - return self.read_to_condition(is_empty) - - def read_to_next_unindented_line(self): - def is_unindented(line): - return (line.strip() and (len(line.lstrip()) == len(line))) - return self.read_to_condition(is_unindented) - - def peek(self, n=0): - if self._l + n < len(self._str): - return self[self._l + n] - else: - return '' - - def is_empty(self): - return not ''.join(self._str).strip() - - -class ParseError(Exception): - def __str__(self): - message = self.args[0] - if hasattr(self, 'docstring'): - message = f"{message} in {self.docstring!r}" - return message - - -Parameter = namedtuple('Parameter', ['name', 'type', 'desc']) - - -class NumpyDocString(Mapping): - """Parses a numpydoc string to an abstract representation - - Instances define a mapping from section title to structured data. - - """ - - sections = { - 'Signature': '', - 'Summary': [''], - 'Extended Summary': [], - 'Parameters': [], - 'Returns': [], - 'Yields': [], - 'Receives': [], - 'Raises': [], - 'Warns': [], - 'Other Parameters': [], - 'Attributes': [], - 'Methods': [], - 'See Also': [], - 'Notes': [], - 'Warnings': [], - 'References': '', - 'Examples': '', - 'index': {} - } - - def __init__(self, docstring, config={}): - orig_docstring = docstring - docstring = textwrap.dedent(docstring).split('\n') - - self._doc = Reader(docstring) - self._parsed_data = copy.deepcopy(self.sections) - - try: - self._parse() - except ParseError as e: - e.docstring = orig_docstring - raise - - def __getitem__(self, key): - return self._parsed_data[key] - - def __setitem__(self, key, val): - if key not in self._parsed_data: - self._error_location("Unknown section %s" % key, error=False) - else: - self._parsed_data[key] = val - - def __iter__(self): - return iter(self._parsed_data) - - def __len__(self): - return len(self._parsed_data) - - def _is_at_section(self): - self._doc.seek_next_non_empty_line() - - if self._doc.eof(): - return False - - l1 = self._doc.peek().strip() # e.g. Parameters - - if l1.startswith('.. index::'): - return True - - l2 = self._doc.peek(1).strip() # ---------- or ========== - return l2.startswith('-'*len(l1)) or l2.startswith('='*len(l1)) - - def _strip(self, doc): - i = 0 - j = 0 - for i, line in enumerate(doc): - if line.strip(): - break - - for j, line in enumerate(doc[::-1]): - if line.strip(): - break - - return doc[i:len(doc)-j] - - def _read_to_next_section(self): - section = self._doc.read_to_next_empty_line() - - while not self._is_at_section() and not self._doc.eof(): - if not self._doc.peek(-1).strip(): # previous line was empty - section += [''] - - section += self._doc.read_to_next_empty_line() - - return section - - def _read_sections(self): - while not self._doc.eof(): - data = self._read_to_next_section() - name = data[0].strip() - - if name.startswith('..'): # index section - yield name, data[1:] - elif len(data) < 2: - yield StopIteration - else: - yield name, self._strip(data[2:]) - - def _parse_param_list(self, content, single_element_is_type=False): - r = Reader(content) - params = [] - while not r.eof(): - header = r.read().strip() - if ' : ' in header: - arg_name, arg_type = header.split(' : ')[:2] - else: - if single_element_is_type: - arg_name, arg_type = '', header - else: - arg_name, arg_type = header, '' - - desc = r.read_to_next_unindented_line() - desc = dedent_lines(desc) - desc = strip_blank_lines(desc) - - params.append(Parameter(arg_name, arg_type, desc)) - - return params - - # See also supports the following formats. - # - # - # SPACE* COLON SPACE+ SPACE* - # ( COMMA SPACE+ )+ (COMMA | PERIOD)? SPACE* - # ( COMMA SPACE+ )* SPACE* COLON SPACE+ SPACE* - - # is one of - # - # COLON COLON BACKTICK BACKTICK - # where - # is a legal function name, and - # is any nonempty sequence of word characters. - # Examples: func_f1 :meth:`func_h1` :obj:`~baz.obj_r` :class:`class_j` - # is a string describing the function. - - _role = r":(?P\w+):" - _funcbacktick = r"`(?P(?:~\w+\.)?[a-zA-Z0-9_\.-]+)`" - _funcplain = r"(?P[a-zA-Z0-9_\.-]+)" - _funcname = r"(" + _role + _funcbacktick + r"|" + _funcplain + r")" - _funcnamenext = _funcname.replace('role', 'rolenext') - _funcnamenext = _funcnamenext.replace('name', 'namenext') - _description = r"(?P\s*:(\s+(?P\S+.*))?)?\s*$" - _func_rgx = re.compile(r"^\s*" + _funcname + r"\s*") - _line_rgx = re.compile( - r"^\s*" + - r"(?P" + # group for all function names - _funcname + - r"(?P([,]\s+" + _funcnamenext + r")*)" + - r")" + # end of "allfuncs" - # Some function lists have a trailing comma (or period) '\s*' - r"(?P[,\.])?" + - _description) - - # Empty elements are replaced with '..' - empty_description = '..' - - def _parse_see_also(self, content): - """ - func_name : Descriptive text - continued text - another_func_name : Descriptive text - func_name1, func_name2, :meth:`func_name`, func_name3 - - """ - - items = [] - - def parse_item_name(text): - """Match ':role:`name`' or 'name'.""" - m = self._func_rgx.match(text) - if not m: - raise ParseError("%s is not a item name" % text) - role = m.group('role') - name = m.group('name') if role else m.group('name2') - return name, role, m.end() - - rest = [] - for line in content: - if not line.strip(): - continue - - line_match = self._line_rgx.match(line) - description = None - if line_match: - description = line_match.group('desc') - if line_match.group('trailing') and description: - self._error_location( - 'Unexpected comma or period after function list at ' - 'index %d of line "%s"' % (line_match.end('trailing'), - line), - error=False) - if not description and line.startswith(' '): - rest.append(line.strip()) - elif line_match: - funcs = [] - text = line_match.group('allfuncs') - while True: - if not text.strip(): - break - name, role, match_end = parse_item_name(text) - funcs.append((name, role)) - text = text[match_end:].strip() - if text and text[0] == ',': - text = text[1:].strip() - rest = list(filter(None, [description])) - items.append((funcs, rest)) - else: - raise ParseError("%s is not a item name" % line) - return items - - def _parse_index(self, section, content): - """ - .. index:: default - :refguide: something, else, and more - - """ - def strip_each_in(lst): - return [s.strip() for s in lst] - - out = {} - section = section.split('::') - if len(section) > 1: - out['default'] = strip_each_in(section[1].split(','))[0] - for line in content: - line = line.split(':') - if len(line) > 2: - out[line[1]] = strip_each_in(line[2].split(',')) - return out - - def _parse_summary(self): - """Grab signature (if given) and summary""" - if self._is_at_section(): - return - - # If several signatures present, take the last one - while True: - summary = self._doc.read_to_next_empty_line() - summary_str = " ".join([s.strip() for s in summary]).strip() - compiled = re.compile(r'^([\w., ]+=)?\s*[\w\.]+\(.*\)$') - if compiled.match(summary_str): - self['Signature'] = summary_str - if not self._is_at_section(): - continue - break - - if summary is not None: - self['Summary'] = summary - - if not self._is_at_section(): - self['Extended Summary'] = self._read_to_next_section() - - def _parse(self): - self._doc.reset() - self._parse_summary() - - sections = list(self._read_sections()) - section_names = {section for section, content in sections} - - has_returns = 'Returns' in section_names - has_yields = 'Yields' in section_names - # We could do more tests, but we are not. Arbitrarily. - if has_returns and has_yields: - msg = 'Docstring contains both a Returns and Yields section.' - raise ValueError(msg) - if not has_yields and 'Receives' in section_names: - msg = 'Docstring contains a Receives section but not Yields.' - raise ValueError(msg) - - for (section, content) in sections: - if not section.startswith('..'): - section = (s.capitalize() for s in section.split(' ')) - section = ' '.join(section) - if self.get(section): - self._error_location("The section %s appears twice" - % section) - - if section in ('Parameters', 'Other Parameters', 'Attributes', - 'Methods'): - self[section] = self._parse_param_list(content) - elif section in ('Returns', 'Yields', 'Raises', 'Warns', - 'Receives'): - self[section] = self._parse_param_list( - content, single_element_is_type=True) - elif section.startswith('.. index::'): - self['index'] = self._parse_index(section, content) - elif section == 'See Also': - self['See Also'] = self._parse_see_also(content) - else: - self[section] = content - - def _error_location(self, msg, error=True): - if hasattr(self, '_obj'): - # we know where the docs came from: - try: - filename = inspect.getsourcefile(self._obj) - except TypeError: - filename = None - msg = msg + (f" in the docstring of {self._obj} in {filename}.") - if error: - raise ValueError(msg) - else: - warn(msg, stacklevel=3) - - # string conversion routines - - def _str_header(self, name, symbol='-'): - return [name, len(name)*symbol] - - def _str_indent(self, doc, indent=4): - out = [] - for line in doc: - out += [' '*indent + line] - return out - - def _str_signature(self): - if self['Signature']: - return [self['Signature'].replace('*', r'\*')] + [''] - else: - return [''] - - def _str_summary(self): - if self['Summary']: - return self['Summary'] + [''] - else: - return [] - - def _str_extended_summary(self): - if self['Extended Summary']: - return self['Extended Summary'] + [''] - else: - return [] - - def _str_param_list(self, name): - out = [] - if self[name]: - out += self._str_header(name) - for param in self[name]: - parts = [] - if param.name: - parts.append(param.name) - if param.type: - parts.append(param.type) - out += [' : '.join(parts)] - if param.desc and ''.join(param.desc).strip(): - out += self._str_indent(param.desc) - out += [''] - return out - - def _str_section(self, name): - out = [] - if self[name]: - out += self._str_header(name) - out += self[name] - out += [''] - return out - - def _str_see_also(self, func_role): - if not self['See Also']: - return [] - out = [] - out += self._str_header("See Also") - out += [''] - last_had_desc = True - for funcs, desc in self['See Also']: - assert isinstance(funcs, list) - links = [] - for func, role in funcs: - if role: - link = f':{role}:`{func}`' - elif func_role: - link = f':{func_role}:`{func}`' - else: - link = "`%s`_" % func - links.append(link) - link = ', '.join(links) - out += [link] - if desc: - out += self._str_indent([' '.join(desc)]) - last_had_desc = True - else: - last_had_desc = False - out += self._str_indent([self.empty_description]) - - if last_had_desc: - out += [''] - out += [''] - return out - - def _str_index(self): - idx = self['index'] - out = [] - output_index = False - default_index = idx.get('default', '') - if default_index: - output_index = True - out += ['.. index:: %s' % default_index] - for section, references in idx.items(): - if section == 'default': - continue - output_index = True - out += [' :{}: {}'.format(section, ', '.join(references))] - if output_index: - return out - else: - return '' - - def __str__(self, func_role=''): - out = [] - out += self._str_signature() - out += self._str_summary() - out += self._str_extended_summary() - for param_list in ('Parameters', 'Returns', 'Yields', 'Receives', - 'Other Parameters', 'Raises', 'Warns'): - out += self._str_param_list(param_list) - out += self._str_section('Warnings') - out += self._str_see_also(func_role) - for s in ('Notes', 'References', 'Examples'): - out += self._str_section(s) - for param_list in ('Attributes', 'Methods'): - out += self._str_param_list(param_list) - out += self._str_index() - return '\n'.join(out) - - -def indent(str, indent=4): - indent_str = ' '*indent - if str is None: - return indent_str - lines = str.split('\n') - return '\n'.join(indent_str + l for l in lines) - - -def dedent_lines(lines): - """Deindent a list of lines maximally""" - return textwrap.dedent("\n".join(lines)).split("\n") - - -def header(text, style='-'): - return text + '\n' + style*len(text) + '\n' - - -class FunctionDoc(NumpyDocString): - def __init__(self, func, role='func', doc=None, config={}): - self._f = func - self._role = role # e.g. "func" or "meth" - - if doc is None: - if func is None: - raise ValueError("No function or docstring given") - doc = inspect.getdoc(func) or '' - NumpyDocString.__init__(self, doc, config) - - def get_func(self): - func_name = getattr(self._f, '__name__', self.__class__.__name__) - if inspect.isclass(self._f): - func = getattr(self._f, '__call__', self._f.__init__) - else: - func = self._f - return func, func_name - - def __str__(self): - out = '' - - func, func_name = self.get_func() - - roles = {'func': 'function', - 'meth': 'method'} - - if self._role: - if self._role not in roles: - print("Warning: invalid role %s" % self._role) - out += '.. {}:: {}\n \n\n'.format(roles.get(self._role, ''), - func_name) - - out += super().__str__(func_role=self._role) - return out - - -class ClassDoc(NumpyDocString): - - extra_public_methods = ['__call__'] - - def __init__(self, cls, doc=None, modulename='', func_doc=FunctionDoc, - config={}): - if not inspect.isclass(cls) and cls is not None: - raise ValueError("Expected a class or None, but got %r" % cls) - self._cls = cls - - if 'sphinx' in sys.modules: - from sphinx.ext.autodoc import ALL - else: - ALL = object() - - self.show_inherited_members = config.get( - 'show_inherited_class_members', True) - - if modulename and not modulename.endswith('.'): - modulename += '.' - self._mod = modulename - - if doc is None: - if cls is None: - raise ValueError("No class or documentation string given") - doc = pydoc.getdoc(cls) - - NumpyDocString.__init__(self, doc) - - _members = config.get('members', []) - if _members is ALL: - _members = None - _exclude = config.get('exclude-members', []) - - if config.get('show_class_members', True) and _exclude is not ALL: - def splitlines_x(s): - if not s: - return [] - else: - return s.splitlines() - for field, items in [('Methods', self.methods), - ('Attributes', self.properties)]: - if not self[field]: - doc_list = [] - for name in sorted(items): - if (name in _exclude or - (_members and name not in _members)): - continue - try: - doc_item = pydoc.getdoc(getattr(self._cls, name)) - doc_list.append( - Parameter(name, '', splitlines_x(doc_item))) - except AttributeError: - pass # method doesn't exist - self[field] = doc_list - - @property - def methods(self): - if self._cls is None: - return [] - return [name for name, func in inspect.getmembers(self._cls) - if ((not name.startswith('_') - or name in self.extra_public_methods) - and isinstance(func, Callable) - and self._is_show_member(name))] - - @property - def properties(self): - if self._cls is None: - return [] - return [name for name, func in inspect.getmembers(self._cls) - if (not name.startswith('_') and - (func is None or isinstance(func, property) or - inspect.isdatadescriptor(func)) - and self._is_show_member(name))] - - def _is_show_member(self, name): - if self.show_inherited_members: - return True # show all class members - if name not in self._cls.__dict__: - return False # class member is inherited, we do not show it - return True diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_elementwise_iterative_method.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_elementwise_iterative_method.py deleted file mode 100644 index c82363b754489607b53a430201cffb42ee881a76..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_elementwise_iterative_method.py +++ /dev/null @@ -1,348 +0,0 @@ -# `_elementwise_iterative_method.py` includes tools for writing functions that -# - are vectorized to work elementwise on arrays, -# - implement non-trivial, iterative algorithms with a callback interface, and -# - return rich objects with iteration count, termination status, etc. -# -# Examples include: -# `scipy.optimize._chandrupatla._chandrupatla for scalar rootfinding, -# `scipy.optimize._chandrupatla._chandrupatla_minimize for scalar minimization, -# `scipy.optimize._differentiate._differentiate for numerical differentiation, -# `scipy.optimize._bracket._bracket_root for finding rootfinding brackets, -# `scipy.optimize._bracket._bracket_minimize for finding minimization brackets, -# `scipy.integrate._tanhsinh._tanhsinh` for numerical quadrature. - -import math -import numpy as np -from ._util import _RichResult, _call_callback_maybe_halt -from ._array_api import array_namespace, size as xp_size - -_ESIGNERR = -1 -_ECONVERR = -2 -_EVALUEERR = -3 -_ECALLBACK = -4 -_EINPUTERR = -5 -_ECONVERGED = 0 -_EINPROGRESS = 1 - -def _initialize(func, xs, args, complex_ok=False, preserve_shape=None): - """Initialize abscissa, function, and args arrays for elementwise function - - Parameters - ---------- - func : callable - An elementwise function with signature - - func(x: ndarray, *args) -> ndarray - - where each element of ``x`` is a finite real and ``args`` is a tuple, - which may contain an arbitrary number of arrays that are broadcastable - with ``x``. - xs : tuple of arrays - Finite real abscissa arrays. Must be broadcastable. - args : tuple, optional - Additional positional arguments to be passed to `func`. - preserve_shape : bool, default:False - When ``preserve_shape=False`` (default), `func` may be passed - arguments of any shape; `_scalar_optimization_loop` is permitted - to reshape and compress arguments at will. When - ``preserve_shape=False``, arguments passed to `func` must have shape - `shape` or ``shape + (n,)``, where ``n`` is any integer. - - Returns - ------- - xs, fs, args : tuple of arrays - Broadcasted, writeable, 1D abscissa and function value arrays (or - NumPy floats, if appropriate). The dtypes of the `xs` and `fs` are - `xfat`; the dtype of the `args` are unchanged. - shape : tuple of ints - Original shape of broadcasted arrays. - xfat : NumPy dtype - Result dtype of abscissae, function values, and args determined using - `np.result_type`, except integer types are promoted to `np.float64`. - - Raises - ------ - ValueError - If the result dtype is not that of a real scalar - - Notes - ----- - Useful for initializing the input of SciPy functions that accept - an elementwise callable, abscissae, and arguments; e.g. - `scipy.optimize._chandrupatla`. - """ - nx = len(xs) - xp = array_namespace(*xs) - - # Try to preserve `dtype`, but we need to ensure that the arguments are at - # least floats before passing them into the function; integers can overflow - # and cause failure. - # There might be benefit to combining the `xs` into a single array and - # calling `func` once on the combined array. For now, keep them separate. - xas = xp.broadcast_arrays(*xs, *args) # broadcast and rename - xat = xp.result_type(*[xa.dtype for xa in xas]) - xat = xp.asarray(1.).dtype if xp.isdtype(xat, "integral") else xat - xs, args = xas[:nx], xas[nx:] - xs = [xp.asarray(x, dtype=xat) for x in xs] # use copy=False when implemented - fs = [xp.asarray(func(x, *args)) for x in xs] - shape = xs[0].shape - fshape = fs[0].shape - - if preserve_shape: - # bind original shape/func now to avoid late-binding gotcha - def func(x, *args, shape=shape, func=func, **kwargs): - i = (0,)*(len(fshape) - len(shape)) - return func(x[i], *args, **kwargs) - shape = np.broadcast_shapes(fshape, shape) # just shapes; use of NumPy OK - xs = [xp.broadcast_to(x, shape) for x in xs] - args = [xp.broadcast_to(arg, shape) for arg in args] - - message = ("The shape of the array returned by `func` must be the same as " - "the broadcasted shape of `x` and all other `args`.") - if preserve_shape is not None: # only in tanhsinh for now - message = f"When `preserve_shape=False`, {message.lower()}" - shapes_equal = [f.shape == shape for f in fs] - if not all(shapes_equal): # use Python all to reduce overhead - raise ValueError(message) - - # These algorithms tend to mix the dtypes of the abscissae and function - # values, so figure out what the result will be and convert them all to - # that type from the outset. - xfat = xp.result_type(*([f.dtype for f in fs] + [xat])) - if not complex_ok and not xp.isdtype(xfat, "real floating"): - raise ValueError("Abscissae and function output must be real numbers.") - xs = [xp.asarray(x, dtype=xfat, copy=True) for x in xs] - fs = [xp.asarray(f, dtype=xfat, copy=True) for f in fs] - - # To ensure that we can do indexing, we'll work with at least 1d arrays, - # but remember the appropriate shape of the output. - xs = [xp.reshape(x, (-1,)) for x in xs] - fs = [xp.reshape(f, (-1,)) for f in fs] - args = [xp.reshape(xp.asarray(arg, copy=True), (-1,)) for arg in args] - return func, xs, fs, args, shape, xfat, xp - - -def _loop(work, callback, shape, maxiter, func, args, dtype, pre_func_eval, - post_func_eval, check_termination, post_termination_check, - customize_result, res_work_pairs, xp, preserve_shape=False): - """Main loop of a vectorized scalar optimization algorithm - - Parameters - ---------- - work : _RichResult - All variables that need to be retained between iterations. Must - contain attributes `nit`, `nfev`, and `success` - callback : callable - User-specified callback function - shape : tuple of ints - The shape of all output arrays - maxiter : - Maximum number of iterations of the algorithm - func : callable - The user-specified callable that is being optimized or solved - args : tuple - Additional positional arguments to be passed to `func`. - dtype : NumPy dtype - The common dtype of all abscissae and function values - pre_func_eval : callable - A function that accepts `work` and returns `x`, the active elements - of `x` at which `func` will be evaluated. May modify attributes - of `work` with any algorithmic steps that need to happen - at the beginning of an iteration, before `func` is evaluated, - post_func_eval : callable - A function that accepts `x`, `func(x)`, and `work`. May modify - attributes of `work` with any algorithmic steps that need to happen - in the middle of an iteration, after `func` is evaluated but before - the termination check. - check_termination : callable - A function that accepts `work` and returns `stop`, a boolean array - indicating which of the active elements have met a termination - condition. - post_termination_check : callable - A function that accepts `work`. May modify `work` with any algorithmic - steps that need to happen after the termination check and before the - end of the iteration. - customize_result : callable - A function that accepts `res` and `shape` and returns `shape`. May - modify `res` (in-place) according to preferences (e.g. rearrange - elements between attributes) and modify `shape` if needed. - res_work_pairs : list of (str, str) - Identifies correspondence between attributes of `res` and attributes - of `work`; i.e., attributes of active elements of `work` will be - copied to the appropriate indices of `res` when appropriate. The order - determines the order in which _RichResult attributes will be - pretty-printed. - - Returns - ------- - res : _RichResult - The final result object - - Notes - ----- - Besides providing structure, this framework provides several important - services for a vectorized optimization algorithm. - - - It handles common tasks involving iteration count, function evaluation - count, a user-specified callback, and associated termination conditions. - - It compresses the attributes of `work` to eliminate unnecessary - computation on elements that have already converged. - - """ - if xp is None: - raise NotImplementedError("Must provide xp.") - - cb_terminate = False - - # Initialize the result object and active element index array - n_elements = math.prod(shape) - active = xp.arange(n_elements) # in-progress element indices - res_dict = {i: xp.zeros(n_elements, dtype=dtype) for i, j in res_work_pairs} - res_dict['success'] = xp.zeros(n_elements, dtype=xp.bool) - res_dict['status'] = xp.full(n_elements, _EINPROGRESS, dtype=xp.int32) - res_dict['nit'] = xp.zeros(n_elements, dtype=xp.int32) - res_dict['nfev'] = xp.zeros(n_elements, dtype=xp.int32) - res = _RichResult(res_dict) - work.args = args - - active = _check_termination(work, res, res_work_pairs, active, - check_termination, preserve_shape, xp) - - if callback is not None: - temp = _prepare_result(work, res, res_work_pairs, active, shape, - customize_result, preserve_shape, xp) - if _call_callback_maybe_halt(callback, temp): - cb_terminate = True - - while work.nit < maxiter and xp_size(active) and not cb_terminate and n_elements: - x = pre_func_eval(work) - - if work.args and work.args[0].ndim != x.ndim: - # `x` always starts as 1D. If the SciPy function that uses - # _loop added dimensions to `x`, we need to - # add them to the elements of `args`. - args = [] - for arg in work.args: - n_new_dims = x.ndim - arg.ndim - new_shape = arg.shape + (1,)*n_new_dims - args.append(xp.reshape(arg, new_shape)) - work.args = args - - x_shape = x.shape - if preserve_shape: - x = xp.reshape(x, (shape + (-1,))) - f = func(x, *work.args) - f = xp.asarray(f, dtype=dtype) - if preserve_shape: - x = xp.reshape(x, x_shape) - f = xp.reshape(f, x_shape) - work.nfev += 1 if x.ndim == 1 else x.shape[-1] - - post_func_eval(x, f, work) - - work.nit += 1 - active = _check_termination(work, res, res_work_pairs, active, - check_termination, preserve_shape, xp) - - if callback is not None: - temp = _prepare_result(work, res, res_work_pairs, active, shape, - customize_result, preserve_shape, xp) - if _call_callback_maybe_halt(callback, temp): - cb_terminate = True - break - if xp_size(active) == 0: - break - - post_termination_check(work) - - work.status[:] = _ECALLBACK if cb_terminate else _ECONVERR - return _prepare_result(work, res, res_work_pairs, active, shape, - customize_result, preserve_shape, xp) - - -def _check_termination(work, res, res_work_pairs, active, check_termination, - preserve_shape, xp): - # Checks termination conditions, updates elements of `res` with - # corresponding elements of `work`, and compresses `work`. - - stop = check_termination(work) - - if xp.any(stop): - # update the active elements of the result object with the active - # elements for which a termination condition has been met - _update_active(work, res, res_work_pairs, active, stop, preserve_shape, xp) - - if preserve_shape: - stop = stop[active] - - proceed = ~stop - active = active[proceed] - - if not preserve_shape: - # compress the arrays to avoid unnecessary computation - for key, val in work.items(): - # Need to find a better way than these try/excepts - # Somehow need to keep compressible numerical args separate - if key == 'args': - continue - try: - work[key] = val[proceed] - except (IndexError, TypeError, KeyError): # not a compressible array - work[key] = val - work.args = [arg[proceed] for arg in work.args] - - return active - - -def _update_active(work, res, res_work_pairs, active, mask, preserve_shape, xp): - # Update `active` indices of the arrays in result object `res` with the - # contents of the scalars and arrays in `update_dict`. When provided, - # `mask` is a boolean array applied both to the arrays in `update_dict` - # that are to be used and to the arrays in `res` that are to be updated. - update_dict = {key1: work[key2] for key1, key2 in res_work_pairs} - update_dict['success'] = work.status == 0 - - if mask is not None: - if preserve_shape: - active_mask = xp.zeros_like(mask) - active_mask[active] = 1 - active_mask = active_mask & mask - for key, val in update_dict.items(): - try: - res[key][active_mask] = val[active_mask] - except (IndexError, TypeError, KeyError): - res[key][active_mask] = val - else: - active_mask = active[mask] - for key, val in update_dict.items(): - try: - res[key][active_mask] = val[mask] - except (IndexError, TypeError, KeyError): - res[key][active_mask] = val - else: - for key, val in update_dict.items(): - if preserve_shape: - try: - val = val[active] - except (IndexError, TypeError, KeyError): - pass - res[key][active] = val - - -def _prepare_result(work, res, res_work_pairs, active, shape, customize_result, - preserve_shape, xp): - # Prepare the result object `res` by creating a copy, copying the latest - # data from work, running the provided result customization function, - # and reshaping the data to the original shapes. - res = res.copy() - _update_active(work, res, res_work_pairs, active, None, preserve_shape, xp) - - shape = customize_result(res, shape) - - for key, val in res.items(): - # this looks like it won't work for xp != np if val is not numeric - temp = xp.reshape(val, shape) - res[key] = temp[()] if temp.ndim == 0 else temp - - res['_order_keys'] = ['success'] + [i for i, j in res_work_pairs] - return _RichResult(**res) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_finite_differences.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_finite_differences.py deleted file mode 100644 index 506057b48b3f49244e1ed6cd755fad8ad43d8739..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_finite_differences.py +++ /dev/null @@ -1,145 +0,0 @@ -from numpy import arange, newaxis, hstack, prod, array - - -def _central_diff_weights(Np, ndiv=1): - """ - Return weights for an Np-point central derivative. - - Assumes equally-spaced function points. - - If weights are in the vector w, then - derivative is w[0] * f(x-ho*dx) + ... + w[-1] * f(x+h0*dx) - - Parameters - ---------- - Np : int - Number of points for the central derivative. - ndiv : int, optional - Number of divisions. Default is 1. - - Returns - ------- - w : ndarray - Weights for an Np-point central derivative. Its size is `Np`. - - Notes - ----- - Can be inaccurate for a large number of points. - - Examples - -------- - We can calculate a derivative value of a function. - - >>> def f(x): - ... return 2 * x**2 + 3 - >>> x = 3.0 # derivative point - >>> h = 0.1 # differential step - >>> Np = 3 # point number for central derivative - >>> weights = _central_diff_weights(Np) # weights for first derivative - >>> vals = [f(x + (i - Np/2) * h) for i in range(Np)] - >>> sum(w * v for (w, v) in zip(weights, vals))/h - 11.79999999999998 - - This value is close to the analytical solution: - f'(x) = 4x, so f'(3) = 12 - - References - ---------- - .. [1] https://en.wikipedia.org/wiki/Finite_difference - - """ - if Np < ndiv + 1: - raise ValueError( - "Number of points must be at least the derivative order + 1." - ) - if Np % 2 == 0: - raise ValueError("The number of points must be odd.") - from scipy import linalg - - ho = Np >> 1 - x = arange(-ho, ho + 1.0) - x = x[:, newaxis] - X = x**0.0 - for k in range(1, Np): - X = hstack([X, x**k]) - w = prod(arange(1, ndiv + 1), axis=0) * linalg.inv(X)[ndiv] - return w - - -def _derivative(func, x0, dx=1.0, n=1, args=(), order=3): - """ - Find the nth derivative of a function at a point. - - Given a function, use a central difference formula with spacing `dx` to - compute the nth derivative at `x0`. - - Parameters - ---------- - func : function - Input function. - x0 : float - The point at which the nth derivative is found. - dx : float, optional - Spacing. - n : int, optional - Order of the derivative. Default is 1. - args : tuple, optional - Arguments - order : int, optional - Number of points to use, must be odd. - - Notes - ----- - Decreasing the step size too small can result in round-off error. - - Examples - -------- - >>> def f(x): - ... return x**3 + x**2 - >>> _derivative(f, 1.0, dx=1e-6) - 4.9999999999217337 - - """ - if order < n + 1: - raise ValueError( - "'order' (the number of points used to compute the derivative), " - "must be at least the derivative order 'n' + 1." - ) - if order % 2 == 0: - raise ValueError( - "'order' (the number of points used to compute the derivative) " - "must be odd." - ) - # pre-computed for n=1 and 2 and low-order for speed. - if n == 1: - if order == 3: - weights = array([-1, 0, 1]) / 2.0 - elif order == 5: - weights = array([1, -8, 0, 8, -1]) / 12.0 - elif order == 7: - weights = array([-1, 9, -45, 0, 45, -9, 1]) / 60.0 - elif order == 9: - weights = array([3, -32, 168, -672, 0, 672, -168, 32, -3]) / 840.0 - else: - weights = _central_diff_weights(order, 1) - elif n == 2: - if order == 3: - weights = array([1, -2.0, 1]) - elif order == 5: - weights = array([-1, 16, -30, 16, -1]) / 12.0 - elif order == 7: - weights = array([2, -27, 270, -490, 270, -27, 2]) / 180.0 - elif order == 9: - weights = ( - array([-9, 128, -1008, 8064, -14350, 8064, -1008, 128, -9]) - / 5040.0 - ) - else: - weights = _central_diff_weights(order, 2) - else: - weights = _central_diff_weights(order, n) - val = 0.0 - ho = order >> 1 - for k in range(order): - val += weights[k] * func(x0 + (k - ho) * dx, *args) - return val / prod((dx,) * n, axis=0) diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_fpumode.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_fpumode.cpython-310-x86_64-linux-gnu.so deleted file mode 100644 index 3a443899bde3481ed6c1359eff4ef9696f6c8e4d..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_fpumode.cpython-310-x86_64-linux-gnu.so and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_gcutils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_gcutils.py deleted file mode 100644 index 854ae36228614f3eb8849e9f95abf0dd387b5d35..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_gcutils.py +++ /dev/null @@ -1,105 +0,0 @@ -""" -Module for testing automatic garbage collection of objects - -.. autosummary:: - :toctree: generated/ - - set_gc_state - enable or disable garbage collection - gc_state - context manager for given state of garbage collector - assert_deallocated - context manager to check for circular references on object - -""" -import weakref -import gc - -from contextlib import contextmanager -from platform import python_implementation - -__all__ = ['set_gc_state', 'gc_state', 'assert_deallocated'] - - -IS_PYPY = python_implementation() == 'PyPy' - - -class ReferenceError(AssertionError): - pass - - -def set_gc_state(state): - """ Set status of garbage collector """ - if gc.isenabled() == state: - return - if state: - gc.enable() - else: - gc.disable() - - -@contextmanager -def gc_state(state): - """ Context manager to set state of garbage collector to `state` - - Parameters - ---------- - state : bool - True for gc enabled, False for disabled - - Examples - -------- - >>> with gc_state(False): - ... assert not gc.isenabled() - >>> with gc_state(True): - ... assert gc.isenabled() - """ - orig_state = gc.isenabled() - set_gc_state(state) - yield - set_gc_state(orig_state) - - -@contextmanager -def assert_deallocated(func, *args, **kwargs): - """Context manager to check that object is deallocated - - This is useful for checking that an object can be freed directly by - reference counting, without requiring gc to break reference cycles. - GC is disabled inside the context manager. - - This check is not available on PyPy. - - Parameters - ---------- - func : callable - Callable to create object to check - \\*args : sequence - positional arguments to `func` in order to create object to check - \\*\\*kwargs : dict - keyword arguments to `func` in order to create object to check - - Examples - -------- - >>> class C: pass - >>> with assert_deallocated(C) as c: - ... # do something - ... del c - - >>> class C: - ... def __init__(self): - ... self._circular = self # Make circular reference - >>> with assert_deallocated(C) as c: #doctest: +IGNORE_EXCEPTION_DETAIL - ... # do something - ... del c - Traceback (most recent call last): - ... - ReferenceError: Remaining reference(s) to object - """ - if IS_PYPY: - raise RuntimeError("assert_deallocated is unavailable on PyPy") - - with gc_state(False): - obj = func(*args, **kwargs) - ref = weakref.ref(obj) - yield obj - del obj - if ref() is not None: - raise ReferenceError("Remaining reference(s) to object") diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_pep440.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_pep440.py deleted file mode 100644 index d546e32a0349461a0aab76bfb4636ebf25227ca0..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_pep440.py +++ /dev/null @@ -1,487 +0,0 @@ -"""Utility to compare pep440 compatible version strings. - -The LooseVersion and StrictVersion classes that distutils provides don't -work; they don't recognize anything like alpha/beta/rc/dev versions. -""" - -# Copyright (c) Donald Stufft and individual contributors. -# All rights reserved. - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: - -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. - -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. - -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -import collections -import itertools -import re - - -__all__ = [ - "parse", "Version", "LegacyVersion", "InvalidVersion", "VERSION_PATTERN", -] - - -# BEGIN packaging/_structures.py - - -class Infinity: - def __repr__(self): - return "Infinity" - - def __hash__(self): - return hash(repr(self)) - - def __lt__(self, other): - return False - - def __le__(self, other): - return False - - def __eq__(self, other): - return isinstance(other, self.__class__) - - def __ne__(self, other): - return not isinstance(other, self.__class__) - - def __gt__(self, other): - return True - - def __ge__(self, other): - return True - - def __neg__(self): - return NegativeInfinity - - -Infinity = Infinity() - - -class NegativeInfinity: - def __repr__(self): - return "-Infinity" - - def __hash__(self): - return hash(repr(self)) - - def __lt__(self, other): - return True - - def __le__(self, other): - return True - - def __eq__(self, other): - return isinstance(other, self.__class__) - - def __ne__(self, other): - return not isinstance(other, self.__class__) - - def __gt__(self, other): - return False - - def __ge__(self, other): - return False - - def __neg__(self): - return Infinity - - -# BEGIN packaging/version.py - - -NegativeInfinity = NegativeInfinity() - -_Version = collections.namedtuple( - "_Version", - ["epoch", "release", "dev", "pre", "post", "local"], -) - - -def parse(version): - """ - Parse the given version string and return either a :class:`Version` object - or a :class:`LegacyVersion` object depending on if the given version is - a valid PEP 440 version or a legacy version. - """ - try: - return Version(version) - except InvalidVersion: - return LegacyVersion(version) - - -class InvalidVersion(ValueError): - """ - An invalid version was found, users should refer to PEP 440. - """ - - -class _BaseVersion: - - def __hash__(self): - return hash(self._key) - - def __lt__(self, other): - return self._compare(other, lambda s, o: s < o) - - def __le__(self, other): - return self._compare(other, lambda s, o: s <= o) - - def __eq__(self, other): - return self._compare(other, lambda s, o: s == o) - - def __ge__(self, other): - return self._compare(other, lambda s, o: s >= o) - - def __gt__(self, other): - return self._compare(other, lambda s, o: s > o) - - def __ne__(self, other): - return self._compare(other, lambda s, o: s != o) - - def _compare(self, other, method): - if not isinstance(other, _BaseVersion): - return NotImplemented - - return method(self._key, other._key) - - -class LegacyVersion(_BaseVersion): - - def __init__(self, version): - self._version = str(version) - self._key = _legacy_cmpkey(self._version) - - def __str__(self): - return self._version - - def __repr__(self): - return f"" - - @property - def public(self): - return self._version - - @property - def base_version(self): - return self._version - - @property - def local(self): - return None - - @property - def is_prerelease(self): - return False - - @property - def is_postrelease(self): - return False - - -_legacy_version_component_re = re.compile( - r"(\d+ | [a-z]+ | \.| -)", re.VERBOSE, -) - -_legacy_version_replacement_map = { - "pre": "c", "preview": "c", "-": "final-", "rc": "c", "dev": "@", -} - - -def _parse_version_parts(s): - for part in _legacy_version_component_re.split(s): - part = _legacy_version_replacement_map.get(part, part) - - if not part or part == ".": - continue - - if part[:1] in "0123456789": - # pad for numeric comparison - yield part.zfill(8) - else: - yield "*" + part - - # ensure that alpha/beta/candidate are before final - yield "*final" - - -def _legacy_cmpkey(version): - # We hardcode an epoch of -1 here. A PEP 440 version can only have an epoch - # greater than or equal to 0. This will effectively put the LegacyVersion, - # which uses the defacto standard originally implemented by setuptools, - # as before all PEP 440 versions. - epoch = -1 - - # This scheme is taken from pkg_resources.parse_version setuptools prior to - # its adoption of the packaging library. - parts = [] - for part in _parse_version_parts(version.lower()): - if part.startswith("*"): - # remove "-" before a prerelease tag - if part < "*final": - while parts and parts[-1] == "*final-": - parts.pop() - - # remove trailing zeros from each series of numeric parts - while parts and parts[-1] == "00000000": - parts.pop() - - parts.append(part) - parts = tuple(parts) - - return epoch, parts - - -# Deliberately not anchored to the start and end of the string, to make it -# easier for 3rd party code to reuse -VERSION_PATTERN = r""" - v? - (?: - (?:(?P[0-9]+)!)? # epoch - (?P[0-9]+(?:\.[0-9]+)*) # release segment - (?P
                                          # pre-release
-            [-_\.]?
-            (?P(a|b|c|rc|alpha|beta|pre|preview))
-            [-_\.]?
-            (?P[0-9]+)?
-        )?
-        (?P                                         # post release
-            (?:-(?P[0-9]+))
-            |
-            (?:
-                [-_\.]?
-                (?Ppost|rev|r)
-                [-_\.]?
-                (?P[0-9]+)?
-            )
-        )?
-        (?P                                          # dev release
-            [-_\.]?
-            (?Pdev)
-            [-_\.]?
-            (?P[0-9]+)?
-        )?
-    )
-    (?:\+(?P[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
-"""
-
-
-class Version(_BaseVersion):
-
-    _regex = re.compile(
-        r"^\s*" + VERSION_PATTERN + r"\s*$",
-        re.VERBOSE | re.IGNORECASE,
-    )
-
-    def __init__(self, version):
-        # Validate the version and parse it into pieces
-        match = self._regex.search(version)
-        if not match:
-            raise InvalidVersion(f"Invalid version: '{version}'")
-
-        # Store the parsed out pieces of the version
-        self._version = _Version(
-            epoch=int(match.group("epoch")) if match.group("epoch") else 0,
-            release=tuple(int(i) for i in match.group("release").split(".")),
-            pre=_parse_letter_version(
-                match.group("pre_l"),
-                match.group("pre_n"),
-            ),
-            post=_parse_letter_version(
-                match.group("post_l"),
-                match.group("post_n1") or match.group("post_n2"),
-            ),
-            dev=_parse_letter_version(
-                match.group("dev_l"),
-                match.group("dev_n"),
-            ),
-            local=_parse_local_version(match.group("local")),
-        )
-
-        # Generate a key which will be used for sorting
-        self._key = _cmpkey(
-            self._version.epoch,
-            self._version.release,
-            self._version.pre,
-            self._version.post,
-            self._version.dev,
-            self._version.local,
-        )
-
-    def __repr__(self):
-        return f""
-
-    def __str__(self):
-        parts = []
-
-        # Epoch
-        if self._version.epoch != 0:
-            parts.append(f"{self._version.epoch}!")
-
-        # Release segment
-        parts.append(".".join(str(x) for x in self._version.release))
-
-        # Pre-release
-        if self._version.pre is not None:
-            parts.append("".join(str(x) for x in self._version.pre))
-
-        # Post-release
-        if self._version.post is not None:
-            parts.append(f".post{self._version.post[1]}")
-
-        # Development release
-        if self._version.dev is not None:
-            parts.append(f".dev{self._version.dev[1]}")
-
-        # Local version segment
-        if self._version.local is not None:
-            parts.append(
-                "+{}".format(".".join(str(x) for x in self._version.local))
-            )
-
-        return "".join(parts)
-
-    @property
-    def public(self):
-        return str(self).split("+", 1)[0]
-
-    @property
-    def base_version(self):
-        parts = []
-
-        # Epoch
-        if self._version.epoch != 0:
-            parts.append(f"{self._version.epoch}!")
-
-        # Release segment
-        parts.append(".".join(str(x) for x in self._version.release))
-
-        return "".join(parts)
-
-    @property
-    def local(self):
-        version_string = str(self)
-        if "+" in version_string:
-            return version_string.split("+", 1)[1]
-
-    @property
-    def is_prerelease(self):
-        return bool(self._version.dev or self._version.pre)
-
-    @property
-    def is_postrelease(self):
-        return bool(self._version.post)
-
-
-def _parse_letter_version(letter, number):
-    if letter:
-        # We assume there is an implicit 0 in a pre-release if there is
-        # no numeral associated with it.
-        if number is None:
-            number = 0
-
-        # We normalize any letters to their lower-case form
-        letter = letter.lower()
-
-        # We consider some words to be alternate spellings of other words and
-        # in those cases we want to normalize the spellings to our preferred
-        # spelling.
-        if letter == "alpha":
-            letter = "a"
-        elif letter == "beta":
-            letter = "b"
-        elif letter in ["c", "pre", "preview"]:
-            letter = "rc"
-        elif letter in ["rev", "r"]:
-            letter = "post"
-
-        return letter, int(number)
-    if not letter and number:
-        # We assume that if we are given a number but not given a letter,
-        # then this is using the implicit post release syntax (e.g., 1.0-1)
-        letter = "post"
-
-        return letter, int(number)
-
-
-_local_version_seperators = re.compile(r"[\._-]")
-
-
-def _parse_local_version(local):
-    """
-    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
-    """
-    if local is not None:
-        return tuple(
-            part.lower() if not part.isdigit() else int(part)
-            for part in _local_version_seperators.split(local)
-        )
-
-
-def _cmpkey(epoch, release, pre, post, dev, local):
-    # When we compare a release version, we want to compare it with all of the
-    # trailing zeros removed. So we'll use a reverse the list, drop all the now
-    # leading zeros until we come to something non-zero, then take the rest,
-    # re-reverse it back into the correct order, and make it a tuple and use
-    # that for our sorting key.
-    release = tuple(
-        reversed(list(
-            itertools.dropwhile(
-                lambda x: x == 0,
-                reversed(release),
-            )
-        ))
-    )
-
-    # We need to "trick" the sorting algorithm to put 1.0.dev0 before 1.0a0.
-    # We'll do this by abusing the pre-segment, but we _only_ want to do this
-    # if there is no pre- or a post-segment. If we have one of those, then
-    # the normal sorting rules will handle this case correctly.
-    if pre is None and post is None and dev is not None:
-        pre = -Infinity
-    # Versions without a pre-release (except as noted above) should sort after
-    # those with one.
-    elif pre is None:
-        pre = Infinity
-
-    # Versions without a post-segment should sort before those with one.
-    if post is None:
-        post = -Infinity
-
-    # Versions without a development segment should sort after those with one.
-    if dev is None:
-        dev = Infinity
-
-    if local is None:
-        # Versions without a local segment should sort before those with one.
-        local = -Infinity
-    else:
-        # Versions with a local segment need that segment parsed to implement
-        # the sorting rules in PEP440.
-        # - Alphanumeric segments sort before numeric segments
-        # - Alphanumeric segments sort lexicographically
-        # - Numeric segments sort numerically
-        # - Shorter versions sort before longer versions when the prefixes
-        #   match exactly
-        local = tuple(
-            (i, "") if isinstance(i, int) else (-Infinity, i)
-            for i in local
-        )
-
-    return epoch, release, pre, post, dev, local
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_test_ccallback.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_test_ccallback.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index bfb217d3ba8618170d57b5451f369660eb4ede64..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_test_ccallback.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_test_deprecation_call.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_test_deprecation_call.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index 18e11f349a5c869c5e27e41dafa35145f6a5fae8..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_test_deprecation_call.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_test_deprecation_def.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_test_deprecation_def.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index 4e147503985965d529df2f379bd8b095c203079e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_test_deprecation_def.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_testutils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_testutils.py
deleted file mode 100644
index 4a830edcdf0cb19d68eb914c98c3b1dcfafab823..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_testutils.py
+++ /dev/null
@@ -1,337 +0,0 @@
-"""
-Generic test utilities.
-
-"""
-
-import inspect
-import os
-import re
-import shutil
-import subprocess
-import sys
-import sysconfig
-from importlib.util import module_from_spec, spec_from_file_location
-
-import numpy as np
-import scipy
-
-try:
-    # Need type: ignore[import-untyped] for mypy >= 1.6
-    import cython  # type: ignore[import-untyped]
-    from Cython.Compiler.Version import (  # type: ignore[import-untyped]
-        version as cython_version,
-    )
-except ImportError:
-    cython = None
-else:
-    from scipy._lib import _pep440
-    required_version = '3.0.8'
-    if _pep440.parse(cython_version) < _pep440.Version(required_version):
-        # too old or wrong cython, skip Cython API tests
-        cython = None
-
-
-__all__ = ['PytestTester', 'check_free_memory', '_TestPythranFunc', 'IS_MUSL']
-
-
-IS_MUSL = False
-# alternate way is
-# from packaging.tags import sys_tags
-#     _tags = list(sys_tags())
-#     if 'musllinux' in _tags[0].platform:
-_v = sysconfig.get_config_var('HOST_GNU_TYPE') or ''
-if 'musl' in _v:
-    IS_MUSL = True
-
-
-IS_EDITABLE = 'editable' in scipy.__path__[0]
-
-
-class FPUModeChangeWarning(RuntimeWarning):
-    """Warning about FPU mode change"""
-    pass
-
-
-class PytestTester:
-    """
-    Run tests for this namespace
-
-    ``scipy.test()`` runs tests for all of SciPy, with the default settings.
-    When used from a submodule (e.g., ``scipy.cluster.test()``, only the tests
-    for that namespace are run.
-
-    Parameters
-    ----------
-    label : {'fast', 'full'}, optional
-        Whether to run only the fast tests, or also those marked as slow.
-        Default is 'fast'.
-    verbose : int, optional
-        Test output verbosity. Default is 1.
-    extra_argv : list, optional
-        Arguments to pass through to Pytest.
-    doctests : bool, optional
-        Whether to run doctests or not. Default is False.
-    coverage : bool, optional
-        Whether to run tests with code coverage measurements enabled.
-        Default is False.
-    tests : list of str, optional
-        List of module names to run tests for. By default, uses the module
-        from which the ``test`` function is called.
-    parallel : int, optional
-        Run tests in parallel with pytest-xdist, if number given is larger than
-        1. Default is 1.
-
-    """
-    def __init__(self, module_name):
-        self.module_name = module_name
-
-    def __call__(self, label="fast", verbose=1, extra_argv=None, doctests=False,
-                 coverage=False, tests=None, parallel=None):
-        import pytest
-
-        module = sys.modules[self.module_name]
-        module_path = os.path.abspath(module.__path__[0])
-
-        pytest_args = ['--showlocals', '--tb=short']
-
-        if doctests:
-            pytest_args += [
-                "--doctest-modules",
-                "--ignore=scipy/interpolate/_interpnd_info.py",
-                "--ignore=scipy/_lib/array_api_compat",
-                "--ignore=scipy/_lib/highs",
-                "--ignore=scipy/_lib/unuran",
-                "--ignore=scipy/_lib/_gcutils.py",
-                "--ignore=scipy/_lib/doccer.py",
-                "--ignore=scipy/_lib/_uarray",
-            ]
-
-        if extra_argv:
-            pytest_args += list(extra_argv)
-
-        if verbose and int(verbose) > 1:
-            pytest_args += ["-" + "v"*(int(verbose)-1)]
-
-        if coverage:
-            pytest_args += ["--cov=" + module_path]
-
-        if label == "fast":
-            pytest_args += ["-m", "not slow"]
-        elif label != "full":
-            pytest_args += ["-m", label]
-
-        if tests is None:
-            tests = [self.module_name]
-
-        if parallel is not None and parallel > 1:
-            if _pytest_has_xdist():
-                pytest_args += ['-n', str(parallel)]
-            else:
-                import warnings
-                warnings.warn('Could not run tests in parallel because '
-                              'pytest-xdist plugin is not available.',
-                              stacklevel=2)
-
-        pytest_args += ['--pyargs'] + list(tests)
-
-        try:
-            code = pytest.main(pytest_args)
-        except SystemExit as exc:
-            code = exc.code
-
-        return (code == 0)
-
-
-class _TestPythranFunc:
-    '''
-    These are situations that can be tested in our pythran tests:
-    - A function with multiple array arguments and then
-      other positional and keyword arguments.
-    - A function with array-like keywords (e.g. `def somefunc(x0, x1=None)`.
-    Note: list/tuple input is not yet tested!
-
-    `self.arguments`: A dictionary which key is the index of the argument,
-                      value is tuple(array value, all supported dtypes)
-    `self.partialfunc`: A function used to freeze some non-array argument
-                        that of no interests in the original function
-    '''
-    ALL_INTEGER = [np.int8, np.int16, np.int32, np.int64, np.intc, np.intp]
-    ALL_FLOAT = [np.float32, np.float64]
-    ALL_COMPLEX = [np.complex64, np.complex128]
-
-    def setup_method(self):
-        self.arguments = {}
-        self.partialfunc = None
-        self.expected = None
-
-    def get_optional_args(self, func):
-        # get optional arguments with its default value,
-        # used for testing keywords
-        signature = inspect.signature(func)
-        optional_args = {}
-        for k, v in signature.parameters.items():
-            if v.default is not inspect.Parameter.empty:
-                optional_args[k] = v.default
-        return optional_args
-
-    def get_max_dtype_list_length(self):
-        # get the max supported dtypes list length in all arguments
-        max_len = 0
-        for arg_idx in self.arguments:
-            cur_len = len(self.arguments[arg_idx][1])
-            if cur_len > max_len:
-                max_len = cur_len
-        return max_len
-
-    def get_dtype(self, dtype_list, dtype_idx):
-        # get the dtype from dtype_list via index
-        # if the index is out of range, then return the last dtype
-        if dtype_idx > len(dtype_list)-1:
-            return dtype_list[-1]
-        else:
-            return dtype_list[dtype_idx]
-
-    def test_all_dtypes(self):
-        for type_idx in range(self.get_max_dtype_list_length()):
-            args_array = []
-            for arg_idx in self.arguments:
-                new_dtype = self.get_dtype(self.arguments[arg_idx][1],
-                                           type_idx)
-                args_array.append(self.arguments[arg_idx][0].astype(new_dtype))
-            self.pythranfunc(*args_array)
-
-    def test_views(self):
-        args_array = []
-        for arg_idx in self.arguments:
-            args_array.append(self.arguments[arg_idx][0][::-1][::-1])
-        self.pythranfunc(*args_array)
-
-    def test_strided(self):
-        args_array = []
-        for arg_idx in self.arguments:
-            args_array.append(np.repeat(self.arguments[arg_idx][0],
-                                        2, axis=0)[::2])
-        self.pythranfunc(*args_array)
-
-
-def _pytest_has_xdist():
-    """
-    Check if the pytest-xdist plugin is installed, providing parallel tests
-    """
-    # Check xdist exists without importing, otherwise pytests emits warnings
-    from importlib.util import find_spec
-    return find_spec('xdist') is not None
-
-
-def check_free_memory(free_mb):
-    """
-    Check *free_mb* of memory is available, otherwise do pytest.skip
-    """
-    import pytest
-
-    try:
-        mem_free = _parse_size(os.environ['SCIPY_AVAILABLE_MEM'])
-        msg = '{} MB memory required, but environment SCIPY_AVAILABLE_MEM={}'.format(
-            free_mb, os.environ['SCIPY_AVAILABLE_MEM'])
-    except KeyError:
-        mem_free = _get_mem_available()
-        if mem_free is None:
-            pytest.skip("Could not determine available memory; set SCIPY_AVAILABLE_MEM "
-                        "variable to free memory in MB to run the test.")
-        msg = f'{free_mb} MB memory required, but {mem_free/1e6} MB available'
-
-    if mem_free < free_mb * 1e6:
-        pytest.skip(msg)
-
-
-def _parse_size(size_str):
-    suffixes = {'': 1e6,
-                'b': 1.0,
-                'k': 1e3, 'M': 1e6, 'G': 1e9, 'T': 1e12,
-                'kb': 1e3, 'Mb': 1e6, 'Gb': 1e9, 'Tb': 1e12,
-                'kib': 1024.0, 'Mib': 1024.0**2, 'Gib': 1024.0**3, 'Tib': 1024.0**4}
-    m = re.match(r'^\s*(\d+)\s*({})\s*$'.format('|'.join(suffixes.keys())),
-                 size_str,
-                 re.I)
-    if not m or m.group(2) not in suffixes:
-        raise ValueError("Invalid size string")
-
-    return float(m.group(1)) * suffixes[m.group(2)]
-
-
-def _get_mem_available():
-    """
-    Get information about memory available, not counting swap.
-    """
-    try:
-        import psutil
-        return psutil.virtual_memory().available
-    except (ImportError, AttributeError):
-        pass
-
-    if sys.platform.startswith('linux'):
-        info = {}
-        with open('/proc/meminfo') as f:
-            for line in f:
-                p = line.split()
-                info[p[0].strip(':').lower()] = float(p[1]) * 1e3
-
-        if 'memavailable' in info:
-            # Linux >= 3.14
-            return info['memavailable']
-        else:
-            return info['memfree'] + info['cached']
-
-    return None
-
-def _test_cython_extension(tmp_path, srcdir):
-    """
-    Helper function to test building and importing Cython modules that
-    make use of the Cython APIs for BLAS, LAPACK, optimize, and special.
-    """
-    import pytest
-    try:
-        subprocess.check_call(["meson", "--version"])
-    except FileNotFoundError:
-        pytest.skip("No usable 'meson' found")
-
-    # build the examples in a temporary directory
-    mod_name = os.path.split(srcdir)[1]
-    shutil.copytree(srcdir, tmp_path / mod_name)
-    build_dir = tmp_path / mod_name / 'tests' / '_cython_examples'
-    target_dir = build_dir / 'build'
-    os.makedirs(target_dir, exist_ok=True)
-
-    # Ensure we use the correct Python interpreter even when `meson` is
-    # installed in a different Python environment (see numpy#24956)
-    native_file = str(build_dir / 'interpreter-native-file.ini')
-    with open(native_file, 'w') as f:
-        f.write("[binaries]\n")
-        f.write(f"python = '{sys.executable}'")
-
-    if sys.platform == "win32":
-        subprocess.check_call(["meson", "setup",
-                               "--buildtype=release",
-                               "--native-file", native_file,
-                               "--vsenv", str(build_dir)],
-                              cwd=target_dir,
-                              )
-    else:
-        subprocess.check_call(["meson", "setup",
-                               "--native-file", native_file, str(build_dir)],
-                              cwd=target_dir
-                              )
-    subprocess.check_call(["meson", "compile", "-vv"], cwd=target_dir)
-
-    # import without adding the directory to sys.path
-    suffix = sysconfig.get_config_var('EXT_SUFFIX')
-
-    def load(modname):
-        so = (target_dir / modname).with_suffix(suffix)
-        spec = spec_from_file_location(modname, so)
-        mod = module_from_spec(spec)
-        spec.loader.exec_module(mod)
-        return mod
-
-    # test that the module can be imported
-    return load("extending"), load("extending_cpp")
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_threadsafety.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_threadsafety.py
deleted file mode 100644
index feea0c5923903b0b751e66bdf192e7f1d2b7ac67..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_threadsafety.py
+++ /dev/null
@@ -1,58 +0,0 @@
-import threading
-
-import scipy._lib.decorator
-
-
-__all__ = ['ReentrancyError', 'ReentrancyLock', 'non_reentrant']
-
-
-class ReentrancyError(RuntimeError):
-    pass
-
-
-class ReentrancyLock:
-    """
-    Threading lock that raises an exception for reentrant calls.
-
-    Calls from different threads are serialized, and nested calls from the
-    same thread result to an error.
-
-    The object can be used as a context manager or to decorate functions
-    via the decorate() method.
-
-    """
-
-    def __init__(self, err_msg):
-        self._rlock = threading.RLock()
-        self._entered = False
-        self._err_msg = err_msg
-
-    def __enter__(self):
-        self._rlock.acquire()
-        if self._entered:
-            self._rlock.release()
-            raise ReentrancyError(self._err_msg)
-        self._entered = True
-
-    def __exit__(self, type, value, traceback):
-        self._entered = False
-        self._rlock.release()
-
-    def decorate(self, func):
-        def caller(func, *a, **kw):
-            with self:
-                return func(*a, **kw)
-        return scipy._lib.decorator.decorate(func, caller)
-
-
-def non_reentrant(err_msg=None):
-    """
-    Decorate a function with a threading lock and prevent reentrant calls.
-    """
-    def decorator(func):
-        msg = err_msg
-        if msg is None:
-            msg = "%s is not re-entrant" % func.__name__
-        lock = ReentrancyLock(msg)
-        return lock.decorate(func)
-    return decorator
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_tmpdirs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_tmpdirs.py
deleted file mode 100644
index 0f9fd546a9d2ae3e9a20c0684f79eb0b3d61ee92..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_tmpdirs.py
+++ /dev/null
@@ -1,86 +0,0 @@
-''' Contexts for *with* statement providing temporary directories
-'''
-import os
-from contextlib import contextmanager
-from shutil import rmtree
-from tempfile import mkdtemp
-
-
-@contextmanager
-def tempdir():
-    """Create and return a temporary directory. This has the same
-    behavior as mkdtemp but can be used as a context manager.
-
-    Upon exiting the context, the directory and everything contained
-    in it are removed.
-
-    Examples
-    --------
-    >>> import os
-    >>> with tempdir() as tmpdir:
-    ...     fname = os.path.join(tmpdir, 'example_file.txt')
-    ...     with open(fname, 'wt') as fobj:
-    ...         _ = fobj.write('a string\\n')
-    >>> os.path.exists(tmpdir)
-    False
-    """
-    d = mkdtemp()
-    yield d
-    rmtree(d)
-
-
-@contextmanager
-def in_tempdir():
-    ''' Create, return, and change directory to a temporary directory
-
-    Examples
-    --------
-    >>> import os
-    >>> my_cwd = os.getcwd()
-    >>> with in_tempdir() as tmpdir:
-    ...     _ = open('test.txt', 'wt').write('some text')
-    ...     assert os.path.isfile('test.txt')
-    ...     assert os.path.isfile(os.path.join(tmpdir, 'test.txt'))
-    >>> os.path.exists(tmpdir)
-    False
-    >>> os.getcwd() == my_cwd
-    True
-    '''
-    pwd = os.getcwd()
-    d = mkdtemp()
-    os.chdir(d)
-    yield d
-    os.chdir(pwd)
-    rmtree(d)
-
-
-@contextmanager
-def in_dir(dir=None):
-    """ Change directory to given directory for duration of ``with`` block
-
-    Useful when you want to use `in_tempdir` for the final test, but
-    you are still debugging. For example, you may want to do this in the end:
-
-    >>> with in_tempdir() as tmpdir:
-    ...     # do something complicated which might break
-    ...     pass
-
-    But, indeed, the complicated thing does break, and meanwhile, the
-    ``in_tempdir`` context manager wiped out the directory with the
-    temporary files that you wanted for debugging. So, while debugging, you
-    replace with something like:
-
-    >>> with in_dir() as tmpdir: # Use working directory by default
-    ...     # do something complicated which might break
-    ...     pass
-
-    You can then look at the temporary file outputs to debug what is happening,
-    fix, and finally replace ``in_dir`` with ``in_tempdir`` again.
-    """
-    cwd = os.getcwd()
-    if dir is None:
-        yield cwd
-        return
-    os.chdir(dir)
-    yield dir
-    os.chdir(cwd)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/LICENSE b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/LICENSE
deleted file mode 100644
index 5f2b90a026aaecbdc090b3d3234954ab29fce8ae..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/LICENSE
+++ /dev/null
@@ -1,29 +0,0 @@
-BSD 3-Clause License
-
-Copyright (c) 2018, Quansight-Labs
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
-  contributors may be used to endorse or promote products derived from
-  this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/__init__.py
deleted file mode 100644
index 91afdcedb180599a41758cdd8c03416cf6c20d76..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/__init__.py
+++ /dev/null
@@ -1,116 +0,0 @@
-"""
-.. note:
-    If you are looking for overrides for NumPy-specific methods, see the
-    documentation for :obj:`unumpy`. This page explains how to write
-    back-ends and multimethods.
-
-``uarray`` is built around a back-end protocol, and overridable multimethods.
-It is necessary to define multimethods for back-ends to be able to override them.
-See the documentation of :obj:`generate_multimethod` on how to write multimethods.
-
-
-
-Let's start with the simplest:
-
-``__ua_domain__`` defines the back-end *domain*. The domain consists of period-
-separated string consisting of the modules you extend plus the submodule. For
-example, if a submodule ``module2.submodule`` extends ``module1``
-(i.e., it exposes dispatchables marked as types available in ``module1``),
-then the domain string should be ``"module1.module2.submodule"``.
-
-
-For the purpose of this demonstration, we'll be creating an object and setting
-its attributes directly. However, note that you can use a module or your own type
-as a backend as well.
-
->>> class Backend: pass
->>> be = Backend()
->>> be.__ua_domain__ = "ua_examples"
-
-It might be useful at this point to sidetrack to the documentation of
-:obj:`generate_multimethod` to find out how to generate a multimethod
-overridable by :obj:`uarray`. Needless to say, writing a backend and
-creating multimethods are mostly orthogonal activities, and knowing
-one doesn't necessarily require knowledge of the other, although it
-is certainly helpful. We expect core API designers/specifiers to write the
-multimethods, and implementors to override them. But, as is often the case,
-similar people write both.
-
-Without further ado, here's an example multimethod:
-
->>> import uarray as ua
->>> from uarray import Dispatchable
->>> def override_me(a, b):
-...   return Dispatchable(a, int),
->>> def override_replacer(args, kwargs, dispatchables):
-...     return (dispatchables[0], args[1]), {}
->>> overridden_me = ua.generate_multimethod(
-...     override_me, override_replacer, "ua_examples"
-... )
-
-Next comes the part about overriding the multimethod. This requires
-the ``__ua_function__`` protocol, and the ``__ua_convert__``
-protocol. The ``__ua_function__`` protocol has the signature
-``(method, args, kwargs)`` where ``method`` is the passed
-multimethod, ``args``/``kwargs`` specify the arguments and ``dispatchables``
-is the list of converted dispatchables passed in.
-
->>> def __ua_function__(method, args, kwargs):
-...     return method.__name__, args, kwargs
->>> be.__ua_function__ = __ua_function__
-
-The other protocol of interest is the ``__ua_convert__`` protocol. It has the
-signature ``(dispatchables, coerce)``. When ``coerce`` is ``False``, conversion
-between the formats should ideally be an ``O(1)`` operation, but it means that
-no memory copying should be involved, only views of the existing data.
-
->>> def __ua_convert__(dispatchables, coerce):
-...     for d in dispatchables:
-...         if d.type is int:
-...             if coerce and d.coercible:
-...                 yield str(d.value)
-...             else:
-...                 yield d.value
->>> be.__ua_convert__ = __ua_convert__
-
-Now that we have defined the backend, the next thing to do is to call the multimethod.
-
->>> with ua.set_backend(be):
-...      overridden_me(1, "2")
-('override_me', (1, '2'), {})
-
-Note that the marked type has no effect on the actual type of the passed object.
-We can also coerce the type of the input.
-
->>> with ua.set_backend(be, coerce=True):
-...     overridden_me(1, "2")
-...     overridden_me(1.0, "2")
-('override_me', ('1', '2'), {})
-('override_me', ('1.0', '2'), {})
-
-Another feature is that if you remove ``__ua_convert__``, the arguments are not
-converted at all and it's up to the backend to handle that.
-
->>> del be.__ua_convert__
->>> with ua.set_backend(be):
-...     overridden_me(1, "2")
-('override_me', (1, '2'), {})
-
-You also have the option to return ``NotImplemented``, in which case processing moves on
-to the next back-end, which in this case, doesn't exist. The same applies to
-``__ua_convert__``.
-
->>> be.__ua_function__ = lambda *a, **kw: NotImplemented
->>> with ua.set_backend(be):
-...     overridden_me(1, "2")
-Traceback (most recent call last):
-    ...
-uarray.BackendNotImplementedError: ...
-
-The last possibility is if we don't have ``__ua_convert__``, in which case the job is
-left up to ``__ua_function__``, but putting things back into arrays after conversion
-will not be possible.
-"""
-
-from ._backend import *
-__version__ = '0.8.8.dev0+aa94c5a4.scipy'
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 8722b65489f403325eabd1ad01da0d9d89a1ca46..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/__pycache__/_backend.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/__pycache__/_backend.cpython-310.pyc
deleted file mode 100644
index c12ff63ea5ffc2fe82470775d02e4a745ab7bef2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/__pycache__/_backend.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/_backend.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/_backend.py
deleted file mode 100644
index 67da7d35ccea8ad26bd471b16e9400071a821cc0..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_uarray/_backend.py
+++ /dev/null
@@ -1,704 +0,0 @@
-import typing
-import types
-import inspect
-import functools
-from . import _uarray
-import copyreg
-import pickle
-import contextlib
-
-from ._uarray import (  # type: ignore
-    BackendNotImplementedError,
-    _Function,
-    _SkipBackendContext,
-    _SetBackendContext,
-    _BackendState,
-)
-
-__all__ = [
-    "set_backend",
-    "set_global_backend",
-    "skip_backend",
-    "register_backend",
-    "determine_backend",
-    "determine_backend_multi",
-    "clear_backends",
-    "create_multimethod",
-    "generate_multimethod",
-    "_Function",
-    "BackendNotImplementedError",
-    "Dispatchable",
-    "wrap_single_convertor",
-    "wrap_single_convertor_instance",
-    "all_of_type",
-    "mark_as",
-    "set_state",
-    "get_state",
-    "reset_state",
-    "_BackendState",
-    "_SkipBackendContext",
-    "_SetBackendContext",
-]
-
-ArgumentExtractorType = typing.Callable[..., tuple["Dispatchable", ...]]
-ArgumentReplacerType = typing.Callable[
-    [tuple, dict, tuple], tuple[tuple, dict]
-]
-
-def unpickle_function(mod_name, qname, self_):
-    import importlib
-
-    try:
-        module = importlib.import_module(mod_name)
-        qname = qname.split(".")
-        func = module
-        for q in qname:
-            func = getattr(func, q)
-
-        if self_ is not None:
-            func = types.MethodType(func, self_)
-
-        return func
-    except (ImportError, AttributeError) as e:
-        from pickle import UnpicklingError
-
-        raise UnpicklingError from e
-
-
-def pickle_function(func):
-    mod_name = getattr(func, "__module__", None)
-    qname = getattr(func, "__qualname__", None)
-    self_ = getattr(func, "__self__", None)
-
-    try:
-        test = unpickle_function(mod_name, qname, self_)
-    except pickle.UnpicklingError:
-        test = None
-
-    if test is not func:
-        raise pickle.PicklingError(
-            f"Can't pickle {func}: it's not the same object as {test}"
-        )
-
-    return unpickle_function, (mod_name, qname, self_)
-
-
-def pickle_state(state):
-    return _uarray._BackendState._unpickle, state._pickle()
-
-
-def pickle_set_backend_context(ctx):
-    return _SetBackendContext, ctx._pickle()
-
-
-def pickle_skip_backend_context(ctx):
-    return _SkipBackendContext, ctx._pickle()
-
-
-copyreg.pickle(_Function, pickle_function)
-copyreg.pickle(_uarray._BackendState, pickle_state)
-copyreg.pickle(_SetBackendContext, pickle_set_backend_context)
-copyreg.pickle(_SkipBackendContext, pickle_skip_backend_context)
-
-
-def get_state():
-    """
-    Returns an opaque object containing the current state of all the backends.
-
-    Can be used for synchronization between threads/processes.
-
-    See Also
-    --------
-    set_state
-        Sets the state returned by this function.
-    """
-    return _uarray.get_state()
-
-
-@contextlib.contextmanager
-def reset_state():
-    """
-    Returns a context manager that resets all state once exited.
-
-    See Also
-    --------
-    set_state
-        Context manager that sets the backend state.
-    get_state
-        Gets a state to be set by this context manager.
-    """
-    with set_state(get_state()):
-        yield
-
-
-@contextlib.contextmanager
-def set_state(state):
-    """
-    A context manager that sets the state of the backends to one returned by :obj:`get_state`.
-
-    See Also
-    --------
-    get_state
-        Gets a state to be set by this context manager.
-    """  # noqa: E501
-    old_state = get_state()
-    _uarray.set_state(state)
-    try:
-        yield
-    finally:
-        _uarray.set_state(old_state, True)
-
-
-def create_multimethod(*args, **kwargs):
-    """
-    Creates a decorator for generating multimethods.
-
-    This function creates a decorator that can be used with an argument
-    extractor in order to generate a multimethod. Other than for the
-    argument extractor, all arguments are passed on to
-    :obj:`generate_multimethod`.
-
-    See Also
-    --------
-    generate_multimethod
-        Generates a multimethod.
-    """
-
-    def wrapper(a):
-        return generate_multimethod(a, *args, **kwargs)
-
-    return wrapper
-
-
-def generate_multimethod(
-    argument_extractor: ArgumentExtractorType,
-    argument_replacer: ArgumentReplacerType,
-    domain: str,
-    default: typing.Optional[typing.Callable] = None,
-):
-    """
-    Generates a multimethod.
-
-    Parameters
-    ----------
-    argument_extractor : ArgumentExtractorType
-        A callable which extracts the dispatchable arguments. Extracted arguments
-        should be marked by the :obj:`Dispatchable` class. It has the same signature
-        as the desired multimethod.
-    argument_replacer : ArgumentReplacerType
-        A callable with the signature (args, kwargs, dispatchables), which should also
-        return an (args, kwargs) pair with the dispatchables replaced inside the
-        args/kwargs.
-    domain : str
-        A string value indicating the domain of this multimethod.
-    default: Optional[Callable], optional
-        The default implementation of this multimethod, where ``None`` (the default)
-        specifies there is no default implementation.
-
-    Examples
-    --------
-    In this example, ``a`` is to be dispatched over, so we return it, while marking it
-    as an ``int``.
-    The trailing comma is needed because the args have to be returned as an iterable.
-
-    >>> def override_me(a, b):
-    ...   return Dispatchable(a, int),
-
-    Next, we define the argument replacer that replaces the dispatchables inside
-    args/kwargs with the supplied ones.
-
-    >>> def override_replacer(args, kwargs, dispatchables):
-    ...     return (dispatchables[0], args[1]), {}
-
-    Next, we define the multimethod.
-
-    >>> overridden_me = generate_multimethod(
-    ...     override_me, override_replacer, "ua_examples"
-    ... )
-
-    Notice that there's no default implementation, unless you supply one.
-
-    >>> overridden_me(1, "a")
-    Traceback (most recent call last):
-        ...
-    uarray.BackendNotImplementedError: ...
-
-    >>> overridden_me2 = generate_multimethod(
-    ...     override_me, override_replacer, "ua_examples", default=lambda x, y: (x, y)
-    ... )
-    >>> overridden_me2(1, "a")
-    (1, 'a')
-
-    See Also
-    --------
-    uarray
-        See the module documentation for how to override the method by creating
-        backends.
-    """
-    kw_defaults, arg_defaults, opts = get_defaults(argument_extractor)
-    ua_func = _Function(
-        argument_extractor,
-        argument_replacer,
-        domain,
-        arg_defaults,
-        kw_defaults,
-        default,
-    )
-
-    return functools.update_wrapper(ua_func, argument_extractor)
-
-
-def set_backend(backend, coerce=False, only=False):
-    """
-    A context manager that sets the preferred backend.
-
-    Parameters
-    ----------
-    backend
-        The backend to set.
-    coerce
-        Whether or not to coerce to a specific backend's types. Implies ``only``.
-    only
-        Whether or not this should be the last backend to try.
-
-    See Also
-    --------
-    skip_backend: A context manager that allows skipping of backends.
-    set_global_backend: Set a single, global backend for a domain.
-    """
-    try:
-        return backend.__ua_cache__["set", coerce, only]
-    except AttributeError:
-        backend.__ua_cache__ = {}
-    except KeyError:
-        pass
-
-    ctx = _SetBackendContext(backend, coerce, only)
-    backend.__ua_cache__["set", coerce, only] = ctx
-    return ctx
-
-
-def skip_backend(backend):
-    """
-    A context manager that allows one to skip a given backend from processing
-    entirely. This allows one to use another backend's code in a library that
-    is also a consumer of the same backend.
-
-    Parameters
-    ----------
-    backend
-        The backend to skip.
-
-    See Also
-    --------
-    set_backend: A context manager that allows setting of backends.
-    set_global_backend: Set a single, global backend for a domain.
-    """
-    try:
-        return backend.__ua_cache__["skip"]
-    except AttributeError:
-        backend.__ua_cache__ = {}
-    except KeyError:
-        pass
-
-    ctx = _SkipBackendContext(backend)
-    backend.__ua_cache__["skip"] = ctx
-    return ctx
-
-
-def get_defaults(f):
-    sig = inspect.signature(f)
-    kw_defaults = {}
-    arg_defaults = []
-    opts = set()
-    for k, v in sig.parameters.items():
-        if v.default is not inspect.Parameter.empty:
-            kw_defaults[k] = v.default
-        if v.kind in (
-            inspect.Parameter.POSITIONAL_ONLY,
-            inspect.Parameter.POSITIONAL_OR_KEYWORD,
-        ):
-            arg_defaults.append(v.default)
-        opts.add(k)
-
-    return kw_defaults, tuple(arg_defaults), opts
-
-
-def set_global_backend(backend, coerce=False, only=False, *, try_last=False):
-    """
-    This utility method replaces the default backend for permanent use. It
-    will be tried in the list of backends automatically, unless the
-    ``only`` flag is set on a backend. This will be the first tried
-    backend outside the :obj:`set_backend` context manager.
-
-    Note that this method is not thread-safe.
-
-    .. warning::
-        We caution library authors against using this function in
-        their code. We do *not* support this use-case. This function
-        is meant to be used only by users themselves, or by a reference
-        implementation, if one exists.
-
-    Parameters
-    ----------
-    backend
-        The backend to register.
-    coerce : bool
-        Whether to coerce input types when trying this backend.
-    only : bool
-        If ``True``, no more backends will be tried if this fails.
-        Implied by ``coerce=True``.
-    try_last : bool
-        If ``True``, the global backend is tried after registered backends.
-
-    See Also
-    --------
-    set_backend: A context manager that allows setting of backends.
-    skip_backend: A context manager that allows skipping of backends.
-    """
-    _uarray.set_global_backend(backend, coerce, only, try_last)
-
-
-def register_backend(backend):
-    """
-    This utility method sets registers backend for permanent use. It
-    will be tried in the list of backends automatically, unless the
-    ``only`` flag is set on a backend.
-
-    Note that this method is not thread-safe.
-
-    Parameters
-    ----------
-    backend
-        The backend to register.
-    """
-    _uarray.register_backend(backend)
-
-
-def clear_backends(domain, registered=True, globals=False):
-    """
-    This utility method clears registered backends.
-
-    .. warning::
-        We caution library authors against using this function in
-        their code. We do *not* support this use-case. This function
-        is meant to be used only by users themselves.
-
-    .. warning::
-        Do NOT use this method inside a multimethod call, or the
-        program is likely to crash.
-
-    Parameters
-    ----------
-    domain : Optional[str]
-        The domain for which to de-register backends. ``None`` means
-        de-register for all domains.
-    registered : bool
-        Whether or not to clear registered backends. See :obj:`register_backend`.
-    globals : bool
-        Whether or not to clear global backends. See :obj:`set_global_backend`.
-
-    See Also
-    --------
-    register_backend : Register a backend globally.
-    set_global_backend : Set a global backend.
-    """
-    _uarray.clear_backends(domain, registered, globals)
-
-
-class Dispatchable:
-    """
-    A utility class which marks an argument with a specific dispatch type.
-
-
-    Attributes
-    ----------
-    value
-        The value of the Dispatchable.
-
-    type
-        The type of the Dispatchable.
-
-    Examples
-    --------
-    >>> x = Dispatchable(1, str)
-    >>> x
-    , value=1>
-
-    See Also
-    --------
-    all_of_type
-        Marks all unmarked parameters of a function.
-
-    mark_as
-        Allows one to create a utility function to mark as a given type.
-    """
-
-    def __init__(self, value, dispatch_type, coercible=True):
-        self.value = value
-        self.type = dispatch_type
-        self.coercible = coercible
-
-    def __getitem__(self, index):
-        return (self.type, self.value)[index]
-
-    def __str__(self):
-        return f"<{type(self).__name__}: type={self.type!r}, value={self.value!r}>"
-
-    __repr__ = __str__
-
-
-def mark_as(dispatch_type):
-    """
-    Creates a utility function to mark something as a specific type.
-
-    Examples
-    --------
-    >>> mark_int = mark_as(int)
-    >>> mark_int(1)
-    , value=1>
-    """
-    return functools.partial(Dispatchable, dispatch_type=dispatch_type)
-
-
-def all_of_type(arg_type):
-    """
-    Marks all unmarked arguments as a given type.
-
-    Examples
-    --------
-    >>> @all_of_type(str)
-    ... def f(a, b):
-    ...     return a, Dispatchable(b, int)
-    >>> f('a', 1)
-    (, value='a'>,
-     , value=1>)
-    """
-
-    def outer(func):
-        @functools.wraps(func)
-        def inner(*args, **kwargs):
-            extracted_args = func(*args, **kwargs)
-            return tuple(
-                Dispatchable(arg, arg_type)
-                if not isinstance(arg, Dispatchable)
-                else arg
-                for arg in extracted_args
-            )
-
-        return inner
-
-    return outer
-
-
-def wrap_single_convertor(convert_single):
-    """
-    Wraps a ``__ua_convert__`` defined for a single element to all elements.
-    If any of them return ``NotImplemented``, the operation is assumed to be
-    undefined.
-
-    Accepts a signature of (value, type, coerce).
-    """
-
-    @functools.wraps(convert_single)
-    def __ua_convert__(dispatchables, coerce):
-        converted = []
-        for d in dispatchables:
-            c = convert_single(d.value, d.type, coerce and d.coercible)
-
-            if c is NotImplemented:
-                return NotImplemented
-
-            converted.append(c)
-
-        return converted
-
-    return __ua_convert__
-
-
-def wrap_single_convertor_instance(convert_single):
-    """
-    Wraps a ``__ua_convert__`` defined for a single element to all elements.
-    If any of them return ``NotImplemented``, the operation is assumed to be
-    undefined.
-
-    Accepts a signature of (value, type, coerce).
-    """
-
-    @functools.wraps(convert_single)
-    def __ua_convert__(self, dispatchables, coerce):
-        converted = []
-        for d in dispatchables:
-            c = convert_single(self, d.value, d.type, coerce and d.coercible)
-
-            if c is NotImplemented:
-                return NotImplemented
-
-            converted.append(c)
-
-        return converted
-
-    return __ua_convert__
-
-
-def determine_backend(value, dispatch_type, *, domain, only=True, coerce=False):
-    """Set the backend to the first active backend that supports ``value``
-
-    This is useful for functions that call multimethods without any dispatchable
-    arguments. You can use :func:`determine_backend` to ensure the same backend
-    is used everywhere in a block of multimethod calls.
-
-    Parameters
-    ----------
-    value
-        The value being tested
-    dispatch_type
-        The dispatch type associated with ``value``, aka
-        ":ref:`marking `".
-    domain: string
-        The domain to query for backends and set.
-    coerce: bool
-        Whether or not to allow coercion to the backend's types. Implies ``only``.
-    only: bool
-        Whether or not this should be the last backend to try.
-
-    See Also
-    --------
-    set_backend: For when you know which backend to set
-
-    Notes
-    -----
-
-    Support is determined by the ``__ua_convert__`` protocol. Backends not
-    supporting the type must return ``NotImplemented`` from their
-    ``__ua_convert__`` if they don't support input of that type.
-
-    Examples
-    --------
-
-    Suppose we have two backends ``BackendA`` and ``BackendB`` each supporting
-    different types, ``TypeA`` and ``TypeB``. Neither supporting the other type:
-
-    >>> with ua.set_backend(ex.BackendA):
-    ...     ex.call_multimethod(ex.TypeB(), ex.TypeB())
-    Traceback (most recent call last):
-        ...
-    uarray.BackendNotImplementedError: ...
-
-    Now consider a multimethod that creates a new object of ``TypeA``, or
-    ``TypeB`` depending on the active backend.
-
-    >>> with ua.set_backend(ex.BackendA), ua.set_backend(ex.BackendB):
-    ...         res = ex.creation_multimethod()
-    ...         ex.call_multimethod(res, ex.TypeA())
-    Traceback (most recent call last):
-        ...
-    uarray.BackendNotImplementedError: ...
-
-    ``res`` is an object of ``TypeB`` because ``BackendB`` is set in the
-    innermost with statement. So, ``call_multimethod`` fails since the types
-    don't match.
-
-    Instead, we need to first find a backend suitable for all of our objects.
-
-    >>> with ua.set_backend(ex.BackendA), ua.set_backend(ex.BackendB):
-    ...     x = ex.TypeA()
-    ...     with ua.determine_backend(x, "mark", domain="ua_examples"):
-    ...         res = ex.creation_multimethod()
-    ...         ex.call_multimethod(res, x)
-    TypeA
-
-    """
-    dispatchables = (Dispatchable(value, dispatch_type, coerce),)
-    backend = _uarray.determine_backend(domain, dispatchables, coerce)
-
-    return set_backend(backend, coerce=coerce, only=only)
-
-
-def determine_backend_multi(
-    dispatchables, *, domain, only=True, coerce=False, **kwargs
-):
-    """Set a backend supporting all ``dispatchables``
-
-    This is useful for functions that call multimethods without any dispatchable
-    arguments. You can use :func:`determine_backend_multi` to ensure the same
-    backend is used everywhere in a block of multimethod calls involving
-    multiple arrays.
-
-    Parameters
-    ----------
-    dispatchables: Sequence[Union[uarray.Dispatchable, Any]]
-        The dispatchables that must be supported
-    domain: string
-        The domain to query for backends and set.
-    coerce: bool
-        Whether or not to allow coercion to the backend's types. Implies ``only``.
-    only: bool
-        Whether or not this should be the last backend to try.
-    dispatch_type: Optional[Any]
-        The default dispatch type associated with ``dispatchables``, aka
-        ":ref:`marking `".
-
-    See Also
-    --------
-    determine_backend: For a single dispatch value
-    set_backend: For when you know which backend to set
-
-    Notes
-    -----
-
-    Support is determined by the ``__ua_convert__`` protocol. Backends not
-    supporting the type must return ``NotImplemented`` from their
-    ``__ua_convert__`` if they don't support input of that type.
-
-    Examples
-    --------
-
-    :func:`determine_backend` allows the backend to be set from a single
-    object. :func:`determine_backend_multi` allows multiple objects to be
-    checked simultaneously for support in the backend. Suppose we have a
-    ``BackendAB`` which supports ``TypeA`` and ``TypeB`` in the same call,
-    and a ``BackendBC`` that doesn't support ``TypeA``.
-
-    >>> with ua.set_backend(ex.BackendAB), ua.set_backend(ex.BackendBC):
-    ...     a, b = ex.TypeA(), ex.TypeB()
-    ...     with ua.determine_backend_multi(
-    ...         [ua.Dispatchable(a, "mark"), ua.Dispatchable(b, "mark")],
-    ...         domain="ua_examples"
-    ...     ):
-    ...         res = ex.creation_multimethod()
-    ...         ex.call_multimethod(res, a, b)
-    TypeA
-
-    This won't call ``BackendBC`` because it doesn't support ``TypeA``.
-
-    We can also use leave out the ``ua.Dispatchable`` if we specify the
-    default ``dispatch_type`` for the ``dispatchables`` argument.
-
-    >>> with ua.set_backend(ex.BackendAB), ua.set_backend(ex.BackendBC):
-    ...     a, b = ex.TypeA(), ex.TypeB()
-    ...     with ua.determine_backend_multi(
-    ...         [a, b], dispatch_type="mark", domain="ua_examples"
-    ...     ):
-    ...         res = ex.creation_multimethod()
-    ...         ex.call_multimethod(res, a, b)
-    TypeA
-
-    """
-    if "dispatch_type" in kwargs:
-        disp_type = kwargs.pop("dispatch_type")
-        dispatchables = tuple(
-            d if isinstance(d, Dispatchable) else Dispatchable(d, disp_type)
-            for d in dispatchables
-        )
-    else:
-        dispatchables = tuple(dispatchables)
-        if not all(isinstance(d, Dispatchable) for d in dispatchables):
-            raise TypeError("dispatchables must be instances of uarray.Dispatchable")
-
-    if len(kwargs) != 0:
-        raise TypeError(f"Received unexpected keyword arguments: {kwargs}")
-
-    backend = _uarray.determine_backend(domain, dispatchables, coerce)
-
-    return set_backend(backend, coerce=coerce, only=only)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_util.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_util.py
deleted file mode 100644
index b59677b954fc386e7b531d0dd7b9f64c852012b6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/_util.py
+++ /dev/null
@@ -1,954 +0,0 @@
-import re
-from contextlib import contextmanager
-import functools
-import operator
-import warnings
-import numbers
-from collections import namedtuple
-import inspect
-import math
-from typing import (
-    Optional,
-    Union,
-    TYPE_CHECKING,
-    TypeVar,
-)
-
-import numpy as np
-from scipy._lib._array_api import array_namespace, is_numpy, size as xp_size
-
-
-AxisError: type[Exception]
-ComplexWarning: type[Warning]
-VisibleDeprecationWarning: type[Warning]
-
-if np.lib.NumpyVersion(np.__version__) >= '1.25.0':
-    from numpy.exceptions import (
-        AxisError, ComplexWarning, VisibleDeprecationWarning,
-        DTypePromotionError
-    )
-else:
-    from numpy import (  # type: ignore[attr-defined, no-redef]
-        AxisError, ComplexWarning, VisibleDeprecationWarning  # noqa: F401
-    )
-    DTypePromotionError = TypeError  # type: ignore
-
-np_long: type
-np_ulong: type
-
-if np.lib.NumpyVersion(np.__version__) >= "2.0.0.dev0":
-    try:
-        with warnings.catch_warnings():
-            warnings.filterwarnings(
-                "ignore",
-                r".*In the future `np\.long` will be defined as.*",
-                FutureWarning,
-            )
-            np_long = np.long  # type: ignore[attr-defined]
-            np_ulong = np.ulong  # type: ignore[attr-defined]
-    except AttributeError:
-            np_long = np.int_
-            np_ulong = np.uint
-else:
-    np_long = np.int_
-    np_ulong = np.uint
-
-IntNumber = Union[int, np.integer]
-DecimalNumber = Union[float, np.floating, np.integer]
-
-copy_if_needed: Optional[bool]
-
-if np.lib.NumpyVersion(np.__version__) >= "2.0.0":
-    copy_if_needed = None
-elif np.lib.NumpyVersion(np.__version__) < "1.28.0":
-    copy_if_needed = False
-else:
-    # 2.0.0 dev versions, handle cases where copy may or may not exist
-    try:
-        np.array([1]).__array__(copy=None)  # type: ignore[call-overload]
-        copy_if_needed = None
-    except TypeError:
-        copy_if_needed = False
-
-# Since Generator was introduced in numpy 1.17, the following condition is needed for
-# backward compatibility
-if TYPE_CHECKING:
-    SeedType = Optional[Union[IntNumber, np.random.Generator,
-                              np.random.RandomState]]
-    GeneratorType = TypeVar("GeneratorType", bound=Union[np.random.Generator,
-                                                         np.random.RandomState])
-
-try:
-    from numpy.random import Generator as Generator
-except ImportError:
-    class Generator:  # type: ignore[no-redef]
-        pass
-
-
-def _lazywhere(cond, arrays, f, fillvalue=None, f2=None):
-    """Return elements chosen from two possibilities depending on a condition
-
-    Equivalent to ``f(*arrays) if cond else fillvalue`` performed elementwise.
-
-    Parameters
-    ----------
-    cond : array
-        The condition (expressed as a boolean array).
-    arrays : tuple of array
-        Arguments to `f` (and `f2`). Must be broadcastable with `cond`.
-    f : callable
-        Where `cond` is True, output will be ``f(arr1[cond], arr2[cond], ...)``
-    fillvalue : object
-        If provided, value with which to fill output array where `cond` is
-        not True.
-    f2 : callable
-        If provided, output will be ``f2(arr1[cond], arr2[cond], ...)`` where
-        `cond` is not True.
-
-    Returns
-    -------
-    out : array
-        An array with elements from the output of `f` where `cond` is True
-        and `fillvalue` (or elements from the output of `f2`) elsewhere. The
-        returned array has data type determined by Type Promotion Rules
-        with the output of `f` and `fillvalue` (or the output of `f2`).
-
-    Notes
-    -----
-    ``xp.where(cond, x, fillvalue)`` requires explicitly forming `x` even where
-    `cond` is False. This function evaluates ``f(arr1[cond], arr2[cond], ...)``
-    onle where `cond` ``is True.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> a, b = np.array([1, 2, 3, 4]), np.array([5, 6, 7, 8])
-    >>> def f(a, b):
-    ...     return a*b
-    >>> _lazywhere(a > 2, (a, b), f, np.nan)
-    array([ nan,  nan,  21.,  32.])
-
-    """
-    xp = array_namespace(cond, *arrays)
-
-    if (f2 is fillvalue is None) or (f2 is not None and fillvalue is not None):
-        raise ValueError("Exactly one of `fillvalue` or `f2` must be given.")
-
-    args = xp.broadcast_arrays(cond, *arrays)
-    bool_dtype = xp.asarray([True]).dtype  # numpy 1.xx doesn't have `bool`
-    cond, arrays = xp.astype(args[0], bool_dtype, copy=False), args[1:]
-
-    temp1 = xp.asarray(f(*(arr[cond] for arr in arrays)))
-
-    if f2 is None:
-        fillvalue = xp.asarray(fillvalue)
-        dtype = xp.result_type(temp1.dtype, fillvalue.dtype)
-        out = xp.full(cond.shape, fill_value=fillvalue, dtype=dtype)
-    else:
-        ncond = ~cond
-        temp2 = xp.asarray(f2(*(arr[ncond] for arr in arrays)))
-        dtype = xp.result_type(temp1, temp2)
-        out = xp.empty(cond.shape, dtype=dtype)
-        out[ncond] = temp2
-
-    out[cond] = temp1
-
-    return out
-
-
-def _lazyselect(condlist, choicelist, arrays, default=0):
-    """
-    Mimic `np.select(condlist, choicelist)`.
-
-    Notice, it assumes that all `arrays` are of the same shape or can be
-    broadcasted together.
-
-    All functions in `choicelist` must accept array arguments in the order
-    given in `arrays` and must return an array of the same shape as broadcasted
-    `arrays`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> x = np.arange(6)
-    >>> np.select([x <3, x > 3], [x**2, x**3], default=0)
-    array([  0,   1,   4,   0,  64, 125])
-
-    >>> _lazyselect([x < 3, x > 3], [lambda x: x**2, lambda x: x**3], (x,))
-    array([   0.,    1.,    4.,   0.,   64.,  125.])
-
-    >>> a = -np.ones_like(x)
-    >>> _lazyselect([x < 3, x > 3],
-    ...             [lambda x, a: x**2, lambda x, a: a * x**3],
-    ...             (x, a), default=np.nan)
-    array([   0.,    1.,    4.,   nan,  -64., -125.])
-
-    """
-    arrays = np.broadcast_arrays(*arrays)
-    tcode = np.mintypecode([a.dtype.char for a in arrays])
-    out = np.full(np.shape(arrays[0]), fill_value=default, dtype=tcode)
-    for func, cond in zip(choicelist, condlist):
-        if np.all(cond is False):
-            continue
-        cond, _ = np.broadcast_arrays(cond, arrays[0])
-        temp = tuple(np.extract(cond, arr) for arr in arrays)
-        np.place(out, cond, func(*temp))
-    return out
-
-
-def _aligned_zeros(shape, dtype=float, order="C", align=None):
-    """Allocate a new ndarray with aligned memory.
-
-    Primary use case for this currently is working around a f2py issue
-    in NumPy 1.9.1, where dtype.alignment is such that np.zeros() does
-    not necessarily create arrays aligned up to it.
-
-    """
-    dtype = np.dtype(dtype)
-    if align is None:
-        align = dtype.alignment
-    if not hasattr(shape, '__len__'):
-        shape = (shape,)
-    size = functools.reduce(operator.mul, shape) * dtype.itemsize
-    buf = np.empty(size + align + 1, np.uint8)
-    offset = buf.__array_interface__['data'][0] % align
-    if offset != 0:
-        offset = align - offset
-    # Note: slices producing 0-size arrays do not necessarily change
-    # data pointer --- so we use and allocate size+1
-    buf = buf[offset:offset+size+1][:-1]
-    data = np.ndarray(shape, dtype, buf, order=order)
-    data.fill(0)
-    return data
-
-
-def _prune_array(array):
-    """Return an array equivalent to the input array. If the input
-    array is a view of a much larger array, copy its contents to a
-    newly allocated array. Otherwise, return the input unchanged.
-    """
-    if array.base is not None and array.size < array.base.size // 2:
-        return array.copy()
-    return array
-
-
-def float_factorial(n: int) -> float:
-    """Compute the factorial and return as a float
-
-    Returns infinity when result is too large for a double
-    """
-    return float(math.factorial(n)) if n < 171 else np.inf
-
-
-# copy-pasted from scikit-learn utils/validation.py
-# change this to scipy.stats._qmc.check_random_state once numpy 1.16 is dropped
-def check_random_state(seed):
-    """Turn `seed` into a `np.random.RandomState` instance.
-
-    Parameters
-    ----------
-    seed : {None, int, `numpy.random.Generator`, `numpy.random.RandomState`}, optional
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-
-    Returns
-    -------
-    seed : {`numpy.random.Generator`, `numpy.random.RandomState`}
-        Random number generator.
-
-    """
-    if seed is None or seed is np.random:
-        return np.random.mtrand._rand
-    if isinstance(seed, (numbers.Integral, np.integer)):
-        return np.random.RandomState(seed)
-    if isinstance(seed, (np.random.RandomState, np.random.Generator)):
-        return seed
-
-    raise ValueError(f"'{seed}' cannot be used to seed a numpy.random.RandomState"
-                     " instance")
-
-
-def _asarray_validated(a, check_finite=True,
-                       sparse_ok=False, objects_ok=False, mask_ok=False,
-                       as_inexact=False):
-    """
-    Helper function for SciPy argument validation.
-
-    Many SciPy linear algebra functions do support arbitrary array-like
-    input arguments. Examples of commonly unsupported inputs include
-    matrices containing inf/nan, sparse matrix representations, and
-    matrices with complicated elements.
-
-    Parameters
-    ----------
-    a : array_like
-        The array-like input.
-    check_finite : bool, optional
-        Whether to check that the input matrices contain only finite numbers.
-        Disabling may give a performance gain, but may result in problems
-        (crashes, non-termination) if the inputs do contain infinities or NaNs.
-        Default: True
-    sparse_ok : bool, optional
-        True if scipy sparse matrices are allowed.
-    objects_ok : bool, optional
-        True if arrays with dype('O') are allowed.
-    mask_ok : bool, optional
-        True if masked arrays are allowed.
-    as_inexact : bool, optional
-        True to convert the input array to a np.inexact dtype.
-
-    Returns
-    -------
-    ret : ndarray
-        The converted validated array.
-
-    """
-    if not sparse_ok:
-        import scipy.sparse
-        if scipy.sparse.issparse(a):
-            msg = ('Sparse matrices are not supported by this function. '
-                   'Perhaps one of the scipy.sparse.linalg functions '
-                   'would work instead.')
-            raise ValueError(msg)
-    if not mask_ok:
-        if np.ma.isMaskedArray(a):
-            raise ValueError('masked arrays are not supported')
-    toarray = np.asarray_chkfinite if check_finite else np.asarray
-    a = toarray(a)
-    if not objects_ok:
-        if a.dtype is np.dtype('O'):
-            raise ValueError('object arrays are not supported')
-    if as_inexact:
-        if not np.issubdtype(a.dtype, np.inexact):
-            a = toarray(a, dtype=np.float64)
-    return a
-
-
-def _validate_int(k, name, minimum=None):
-    """
-    Validate a scalar integer.
-
-    This function can be used to validate an argument to a function
-    that expects the value to be an integer.  It uses `operator.index`
-    to validate the value (so, for example, k=2.0 results in a
-    TypeError).
-
-    Parameters
-    ----------
-    k : int
-        The value to be validated.
-    name : str
-        The name of the parameter.
-    minimum : int, optional
-        An optional lower bound.
-    """
-    try:
-        k = operator.index(k)
-    except TypeError:
-        raise TypeError(f'{name} must be an integer.') from None
-    if minimum is not None and k < minimum:
-        raise ValueError(f'{name} must be an integer not less '
-                         f'than {minimum}') from None
-    return k
-
-
-# Add a replacement for inspect.getfullargspec()/
-# The version below is borrowed from Django,
-# https://github.com/django/django/pull/4846.
-
-# Note an inconsistency between inspect.getfullargspec(func) and
-# inspect.signature(func). If `func` is a bound method, the latter does *not*
-# list `self` as a first argument, while the former *does*.
-# Hence, cook up a common ground replacement: `getfullargspec_no_self` which
-# mimics `inspect.getfullargspec` but does not list `self`.
-#
-# This way, the caller code does not need to know whether it uses a legacy
-# .getfullargspec or a bright and shiny .signature.
-
-FullArgSpec = namedtuple('FullArgSpec',
-                         ['args', 'varargs', 'varkw', 'defaults',
-                          'kwonlyargs', 'kwonlydefaults', 'annotations'])
-
-
-def getfullargspec_no_self(func):
-    """inspect.getfullargspec replacement using inspect.signature.
-
-    If func is a bound method, do not list the 'self' parameter.
-
-    Parameters
-    ----------
-    func : callable
-        A callable to inspect
-
-    Returns
-    -------
-    fullargspec : FullArgSpec(args, varargs, varkw, defaults, kwonlyargs,
-                              kwonlydefaults, annotations)
-
-        NOTE: if the first argument of `func` is self, it is *not*, I repeat
-        *not*, included in fullargspec.args.
-        This is done for consistency between inspect.getargspec() under
-        Python 2.x, and inspect.signature() under Python 3.x.
-
-    """
-    sig = inspect.signature(func)
-    args = [
-        p.name for p in sig.parameters.values()
-        if p.kind in [inspect.Parameter.POSITIONAL_OR_KEYWORD,
-                      inspect.Parameter.POSITIONAL_ONLY]
-    ]
-    varargs = [
-        p.name for p in sig.parameters.values()
-        if p.kind == inspect.Parameter.VAR_POSITIONAL
-    ]
-    varargs = varargs[0] if varargs else None
-    varkw = [
-        p.name for p in sig.parameters.values()
-        if p.kind == inspect.Parameter.VAR_KEYWORD
-    ]
-    varkw = varkw[0] if varkw else None
-    defaults = tuple(
-        p.default for p in sig.parameters.values()
-        if (p.kind == inspect.Parameter.POSITIONAL_OR_KEYWORD and
-            p.default is not p.empty)
-    ) or None
-    kwonlyargs = [
-        p.name for p in sig.parameters.values()
-        if p.kind == inspect.Parameter.KEYWORD_ONLY
-    ]
-    kwdefaults = {p.name: p.default for p in sig.parameters.values()
-                  if p.kind == inspect.Parameter.KEYWORD_ONLY and
-                  p.default is not p.empty}
-    annotations = {p.name: p.annotation for p in sig.parameters.values()
-                   if p.annotation is not p.empty}
-    return FullArgSpec(args, varargs, varkw, defaults, kwonlyargs,
-                       kwdefaults or None, annotations)
-
-
-class _FunctionWrapper:
-    """
-    Object to wrap user's function, allowing picklability
-    """
-    def __init__(self, f, args):
-        self.f = f
-        self.args = [] if args is None else args
-
-    def __call__(self, x):
-        return self.f(x, *self.args)
-
-
-class MapWrapper:
-    """
-    Parallelisation wrapper for working with map-like callables, such as
-    `multiprocessing.Pool.map`.
-
-    Parameters
-    ----------
-    pool : int or map-like callable
-        If `pool` is an integer, then it specifies the number of threads to
-        use for parallelization. If ``int(pool) == 1``, then no parallel
-        processing is used and the map builtin is used.
-        If ``pool == -1``, then the pool will utilize all available CPUs.
-        If `pool` is a map-like callable that follows the same
-        calling sequence as the built-in map function, then this callable is
-        used for parallelization.
-    """
-    def __init__(self, pool=1):
-        self.pool = None
-        self._mapfunc = map
-        self._own_pool = False
-
-        if callable(pool):
-            self.pool = pool
-            self._mapfunc = self.pool
-        else:
-            from multiprocessing import Pool
-            # user supplies a number
-            if int(pool) == -1:
-                # use as many processors as possible
-                self.pool = Pool()
-                self._mapfunc = self.pool.map
-                self._own_pool = True
-            elif int(pool) == 1:
-                pass
-            elif int(pool) > 1:
-                # use the number of processors requested
-                self.pool = Pool(processes=int(pool))
-                self._mapfunc = self.pool.map
-                self._own_pool = True
-            else:
-                raise RuntimeError("Number of workers specified must be -1,"
-                                   " an int >= 1, or an object with a 'map' "
-                                   "method")
-
-    def __enter__(self):
-        return self
-
-    def terminate(self):
-        if self._own_pool:
-            self.pool.terminate()
-
-    def join(self):
-        if self._own_pool:
-            self.pool.join()
-
-    def close(self):
-        if self._own_pool:
-            self.pool.close()
-
-    def __exit__(self, exc_type, exc_value, traceback):
-        if self._own_pool:
-            self.pool.close()
-            self.pool.terminate()
-
-    def __call__(self, func, iterable):
-        # only accept one iterable because that's all Pool.map accepts
-        try:
-            return self._mapfunc(func, iterable)
-        except TypeError as e:
-            # wrong number of arguments
-            raise TypeError("The map-like callable must be of the"
-                            " form f(func, iterable)") from e
-
-
-def rng_integers(gen, low, high=None, size=None, dtype='int64',
-                 endpoint=False):
-    """
-    Return random integers from low (inclusive) to high (exclusive), or if
-    endpoint=True, low (inclusive) to high (inclusive). Replaces
-    `RandomState.randint` (with endpoint=False) and
-    `RandomState.random_integers` (with endpoint=True).
-
-    Return random integers from the "discrete uniform" distribution of the
-    specified dtype. If high is None (the default), then results are from
-    0 to low.
-
-    Parameters
-    ----------
-    gen : {None, np.random.RandomState, np.random.Generator}
-        Random number generator. If None, then the np.random.RandomState
-        singleton is used.
-    low : int or array-like of ints
-        Lowest (signed) integers to be drawn from the distribution (unless
-        high=None, in which case this parameter is 0 and this value is used
-        for high).
-    high : int or array-like of ints
-        If provided, one above the largest (signed) integer to be drawn from
-        the distribution (see above for behavior if high=None). If array-like,
-        must contain integer values.
-    size : array-like of ints, optional
-        Output shape. If the given shape is, e.g., (m, n, k), then m * n * k
-        samples are drawn. Default is None, in which case a single value is
-        returned.
-    dtype : {str, dtype}, optional
-        Desired dtype of the result. All dtypes are determined by their name,
-        i.e., 'int64', 'int', etc, so byteorder is not available and a specific
-        precision may have different C types depending on the platform.
-        The default value is 'int64'.
-    endpoint : bool, optional
-        If True, sample from the interval [low, high] instead of the default
-        [low, high) Defaults to False.
-
-    Returns
-    -------
-    out: int or ndarray of ints
-        size-shaped array of random integers from the appropriate distribution,
-        or a single such random int if size not provided.
-    """
-    if isinstance(gen, Generator):
-        return gen.integers(low, high=high, size=size, dtype=dtype,
-                            endpoint=endpoint)
-    else:
-        if gen is None:
-            # default is RandomState singleton used by np.random.
-            gen = np.random.mtrand._rand
-        if endpoint:
-            # inclusive of endpoint
-            # remember that low and high can be arrays, so don't modify in
-            # place
-            if high is None:
-                return gen.randint(low + 1, size=size, dtype=dtype)
-            if high is not None:
-                return gen.randint(low, high=high + 1, size=size, dtype=dtype)
-
-        # exclusive
-        return gen.randint(low, high=high, size=size, dtype=dtype)
-
-
-@contextmanager
-def _fixed_default_rng(seed=1638083107694713882823079058616272161):
-    """Context with a fixed np.random.default_rng seed."""
-    orig_fun = np.random.default_rng
-    np.random.default_rng = lambda seed=seed: orig_fun(seed)
-    try:
-        yield
-    finally:
-        np.random.default_rng = orig_fun
-
-
-def _rng_html_rewrite(func):
-    """Rewrite the HTML rendering of ``np.random.default_rng``.
-
-    This is intended to decorate
-    ``numpydoc.docscrape_sphinx.SphinxDocString._str_examples``.
-
-    Examples are only run by Sphinx when there are plot involved. Even so,
-    it does not change the result values getting printed.
-    """
-    # hexadecimal or number seed, case-insensitive
-    pattern = re.compile(r'np.random.default_rng\((0x[0-9A-F]+|\d+)\)', re.I)
-
-    def _wrapped(*args, **kwargs):
-        res = func(*args, **kwargs)
-        lines = [
-            re.sub(pattern, 'np.random.default_rng()', line)
-            for line in res
-        ]
-        return lines
-
-    return _wrapped
-
-
-def _argmin(a, keepdims=False, axis=None):
-    """
-    argmin with a `keepdims` parameter.
-
-    See https://github.com/numpy/numpy/issues/8710
-
-    If axis is not None, a.shape[axis] must be greater than 0.
-    """
-    res = np.argmin(a, axis=axis)
-    if keepdims and axis is not None:
-        res = np.expand_dims(res, axis=axis)
-    return res
-
-
-def _first_nonnan(a, axis):
-    """
-    Return the first non-nan value along the given axis.
-
-    If a slice is all nan, nan is returned for that slice.
-
-    The shape of the return value corresponds to ``keepdims=True``.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> nan = np.nan
-    >>> a = np.array([[ 3.,  3., nan,  3.],
-                      [ 1., nan,  2.,  4.],
-                      [nan, nan,  9., -1.],
-                      [nan,  5.,  4.,  3.],
-                      [ 2.,  2.,  2.,  2.],
-                      [nan, nan, nan, nan]])
-    >>> _first_nonnan(a, axis=0)
-    array([[3., 3., 2., 3.]])
-    >>> _first_nonnan(a, axis=1)
-    array([[ 3.],
-           [ 1.],
-           [ 9.],
-           [ 5.],
-           [ 2.],
-           [nan]])
-    """
-    k = _argmin(np.isnan(a), axis=axis, keepdims=True)
-    return np.take_along_axis(a, k, axis=axis)
-
-
-def _nan_allsame(a, axis, keepdims=False):
-    """
-    Determine if the values along an axis are all the same.
-
-    nan values are ignored.
-
-    `a` must be a numpy array.
-
-    `axis` is assumed to be normalized; that is, 0 <= axis < a.ndim.
-
-    For an axis of length 0, the result is True.  That is, we adopt the
-    convention that ``allsame([])`` is True. (There are no values in the
-    input that are different.)
-
-    `True` is returned for slices that are all nan--not because all the
-    values are the same, but because this is equivalent to ``allsame([])``.
-
-    Examples
-    --------
-    >>> from numpy import nan, array
-    >>> a = array([[ 3.,  3., nan,  3.],
-    ...            [ 1., nan,  2.,  4.],
-    ...            [nan, nan,  9., -1.],
-    ...            [nan,  5.,  4.,  3.],
-    ...            [ 2.,  2.,  2.,  2.],
-    ...            [nan, nan, nan, nan]])
-    >>> _nan_allsame(a, axis=1, keepdims=True)
-    array([[ True],
-           [False],
-           [False],
-           [False],
-           [ True],
-           [ True]])
-    """
-    if axis is None:
-        if a.size == 0:
-            return True
-        a = a.ravel()
-        axis = 0
-    else:
-        shp = a.shape
-        if shp[axis] == 0:
-            shp = shp[:axis] + (1,)*keepdims + shp[axis + 1:]
-            return np.full(shp, fill_value=True, dtype=bool)
-    a0 = _first_nonnan(a, axis=axis)
-    return ((a0 == a) | np.isnan(a)).all(axis=axis, keepdims=keepdims)
-
-
-def _contains_nan(a, nan_policy='propagate', policies=None, *, xp=None):
-    if xp is None:
-        xp = array_namespace(a)
-    not_numpy = not is_numpy(xp)
-
-    if policies is None:
-        policies = {'propagate', 'raise', 'omit'}
-    if nan_policy not in policies:
-        raise ValueError(f"nan_policy must be one of {set(policies)}.")
-
-    inexact = (xp.isdtype(a.dtype, "real floating")
-               or xp.isdtype(a.dtype, "complex floating"))
-    if xp_size(a) == 0:
-        contains_nan = False
-    elif inexact:
-        # Faster and less memory-intensive than xp.any(xp.isnan(a))
-        contains_nan = xp.isnan(xp.max(a))
-    elif is_numpy(xp) and np.issubdtype(a.dtype, object):
-        contains_nan = False
-        for el in a.ravel():
-            # isnan doesn't work on non-numeric elements
-            if np.issubdtype(type(el), np.number) and np.isnan(el):
-                contains_nan = True
-                break
-    else:
-        # Only `object` and `inexact` arrays can have NaNs
-        contains_nan = False
-
-    if contains_nan and nan_policy == 'raise':
-        raise ValueError("The input contains nan values")
-
-    if not_numpy and contains_nan and nan_policy=='omit':
-        message = "`nan_policy='omit' is incompatible with non-NumPy arrays."
-        raise ValueError(message)
-
-    return contains_nan, nan_policy
-
-
-def _rename_parameter(old_name, new_name, dep_version=None):
-    """
-    Generate decorator for backward-compatible keyword renaming.
-
-    Apply the decorator generated by `_rename_parameter` to functions with a
-    recently renamed parameter to maintain backward-compatibility.
-
-    After decoration, the function behaves as follows:
-    If only the new parameter is passed into the function, behave as usual.
-    If only the old parameter is passed into the function (as a keyword), raise
-    a DeprecationWarning if `dep_version` is provided, and behave as usual
-    otherwise.
-    If both old and new parameters are passed into the function, raise a
-    DeprecationWarning if `dep_version` is provided, and raise the appropriate
-    TypeError (function got multiple values for argument).
-
-    Parameters
-    ----------
-    old_name : str
-        Old name of parameter
-    new_name : str
-        New name of parameter
-    dep_version : str, optional
-        Version of SciPy in which old parameter was deprecated in the format
-        'X.Y.Z'. If supplied, the deprecation message will indicate that
-        support for the old parameter will be removed in version 'X.Y+2.Z'
-
-    Notes
-    -----
-    Untested with functions that accept *args. Probably won't work as written.
-
-    """
-    def decorator(fun):
-        @functools.wraps(fun)
-        def wrapper(*args, **kwargs):
-            if old_name in kwargs:
-                if dep_version:
-                    end_version = dep_version.split('.')
-                    end_version[1] = str(int(end_version[1]) + 2)
-                    end_version = '.'.join(end_version)
-                    message = (f"Use of keyword argument `{old_name}` is "
-                               f"deprecated and replaced by `{new_name}`.  "
-                               f"Support for `{old_name}` will be removed "
-                               f"in SciPy {end_version}.")
-                    warnings.warn(message, DeprecationWarning, stacklevel=2)
-                if new_name in kwargs:
-                    message = (f"{fun.__name__}() got multiple values for "
-                               f"argument now known as `{new_name}`")
-                    raise TypeError(message)
-                kwargs[new_name] = kwargs.pop(old_name)
-            return fun(*args, **kwargs)
-        return wrapper
-    return decorator
-
-
-def _rng_spawn(rng, n_children):
-    # spawns independent RNGs from a parent RNG
-    bg = rng._bit_generator
-    ss = bg._seed_seq
-    child_rngs = [np.random.Generator(type(bg)(child_ss))
-                  for child_ss in ss.spawn(n_children)]
-    return child_rngs
-
-
-def _get_nan(*data, xp=None):
-    xp = array_namespace(*data) if xp is None else xp
-    # Get NaN of appropriate dtype for data
-    data = [xp.asarray(item) for item in data]
-    try:
-        min_float = getattr(xp, 'float16', xp.float32)
-        dtype = xp.result_type(*data, min_float)  # must be at least a float
-    except DTypePromotionError:
-        # fallback to float64
-        dtype = xp.float64
-    return xp.asarray(xp.nan, dtype=dtype)[()]
-
-
-def normalize_axis_index(axis, ndim):
-    # Check if `axis` is in the correct range and normalize it
-    if axis < -ndim or axis >= ndim:
-        msg = f"axis {axis} is out of bounds for array of dimension {ndim}"
-        raise AxisError(msg)
-
-    if axis < 0:
-        axis = axis + ndim
-    return axis
-
-
-def _call_callback_maybe_halt(callback, res):
-    """Call wrapped callback; return True if algorithm should stop.
-
-    Parameters
-    ----------
-    callback : callable or None
-        A user-provided callback wrapped with `_wrap_callback`
-    res : OptimizeResult
-        Information about the current iterate
-
-    Returns
-    -------
-    halt : bool
-        True if minimization should stop
-
-    """
-    if callback is None:
-        return False
-    try:
-        callback(res)
-        return False
-    except StopIteration:
-        callback.stop_iteration = True
-        return True
-
-
-class _RichResult(dict):
-    """ Container for multiple outputs with pretty-printing """
-    def __getattr__(self, name):
-        try:
-            return self[name]
-        except KeyError as e:
-            raise AttributeError(name) from e
-
-    __setattr__ = dict.__setitem__  # type: ignore[assignment]
-    __delattr__ = dict.__delitem__  # type: ignore[assignment]
-
-    def __repr__(self):
-        order_keys = ['message', 'success', 'status', 'fun', 'funl', 'x', 'xl',
-                      'col_ind', 'nit', 'lower', 'upper', 'eqlin', 'ineqlin',
-                      'converged', 'flag', 'function_calls', 'iterations',
-                      'root']
-        order_keys = getattr(self, '_order_keys', order_keys)
-        # 'slack', 'con' are redundant with residuals
-        # 'crossover_nit' is probably not interesting to most users
-        omit_keys = {'slack', 'con', 'crossover_nit', '_order_keys'}
-
-        def key(item):
-            try:
-                return order_keys.index(item[0].lower())
-            except ValueError:  # item not in list
-                return np.inf
-
-        def omit_redundant(items):
-            for item in items:
-                if item[0] in omit_keys:
-                    continue
-                yield item
-
-        def item_sorter(d):
-            return sorted(omit_redundant(d.items()), key=key)
-
-        if self.keys():
-            return _dict_formatter(self, sorter=item_sorter)
-        else:
-            return self.__class__.__name__ + "()"
-
-    def __dir__(self):
-        return list(self.keys())
-
-
-def _indenter(s, n=0):
-    """
-    Ensures that lines after the first are indented by the specified amount
-    """
-    split = s.split("\n")
-    indent = " "*n
-    return ("\n" + indent).join(split)
-
-
-def _float_formatter_10(x):
-    """
-    Returns a string representation of a float with exactly ten characters
-    """
-    if np.isposinf(x):
-        return "       inf"
-    elif np.isneginf(x):
-        return "      -inf"
-    elif np.isnan(x):
-        return "       nan"
-    return np.format_float_scientific(x, precision=3, pad_left=2, unique=False)
-
-
-def _dict_formatter(d, n=0, mplus=1, sorter=None):
-    """
-    Pretty printer for dictionaries
-
-    `n` keeps track of the starting indentation;
-    lines are indented by this much after a line break.
-    `mplus` is additional left padding applied to keys
-    """
-    if isinstance(d, dict):
-        m = max(map(len, list(d.keys()))) + mplus  # width to print keys
-        s = '\n'.join([k.rjust(m) + ': ' +  # right justified, width m
-                       _indenter(_dict_formatter(v, m+n+2, 0, sorter), m+2)
-                       for k, v in sorter(d)])  # +2 for ': '
-    else:
-        # By default, NumPy arrays print with linewidth=76. `n` is
-        # the indent at which a line begins printing, so it is subtracted
-        # from the default to avoid exceeding 76 characters total.
-        # `edgeitems` is the number of elements to include before and after
-        # ellipses when arrays are not shown in full.
-        # `threshold` is the maximum number of elements for which an
-        # array is shown in full.
-        # These values tend to work well for use with OptimizeResult.
-        with np.printoptions(linewidth=76-n, edgeitems=2, threshold=12,
-                             formatter={'float_kind': _float_formatter_10}):
-            s = str(d)
-    return s
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/__init__.py
deleted file mode 100644
index 79712ae1bdb76eb6155e0823ec1992dd28bd0282..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-"""
-NumPy Array API compatibility library
-
-This is a small wrapper around NumPy and CuPy that is compatible with the
-Array API standard https://data-apis.org/array-api/latest/. See also NEP 47
-https://numpy.org/neps/nep-0047-array-api-standard.html.
-
-Unlike array_api_strict, this is not a strict minimal implementation of the
-Array API, but rather just an extension of the main NumPy namespace with
-changes needed to be compliant with the Array API. See
-https://numpy.org/doc/stable/reference/array_api.html for a full list of
-changes. In particular, unlike array_api_strict, this package does not use a
-separate Array object, but rather just uses numpy.ndarray directly.
-
-Library authors using the Array API may wish to test against array_api_strict
-to ensure they are not using functionality outside of the standard, but prefer
-this implementation for the default when working with NumPy arrays.
-
-"""
-__version__ = '1.5.1'
-
-from .common import *  # noqa: F401, F403
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index ed8ca1e90e06b9640ece2548c9da58126dbddda9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/__pycache__/_internal.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/__pycache__/_internal.cpython-310.pyc
deleted file mode 100644
index 6e53618005c370f366624ceb85152147998a047c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/__pycache__/_internal.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/_internal.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/_internal.py
deleted file mode 100644
index 170a1ff9e6459a8cd76f8f6f9b4bca1e894e9883..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/_internal.py
+++ /dev/null
@@ -1,46 +0,0 @@
-"""
-Internal helpers
-"""
-
-from functools import wraps
-from inspect import signature
-
-def get_xp(xp):
-    """
-    Decorator to automatically replace xp with the corresponding array module.
-
-    Use like
-
-    import numpy as np
-
-    @get_xp(np)
-    def func(x, /, xp, kwarg=None):
-        return xp.func(x, kwarg=kwarg)
-
-    Note that xp must be a keyword argument and come after all non-keyword
-    arguments.
-
-    """
-
-    def inner(f):
-        @wraps(f)
-        def wrapped_f(*args, **kwargs):
-            return f(*args, xp=xp, **kwargs)
-
-        sig = signature(f)
-        new_sig = sig.replace(
-            parameters=[sig.parameters[i] for i in sig.parameters if i != "xp"]
-        )
-
-        if wrapped_f.__doc__ is None:
-            wrapped_f.__doc__ = f"""\
-Array API compatibility wrapper for {f.__name__}.
-
-See the corresponding documentation in NumPy/CuPy and/or the array API
-specification for more details.
-
-"""
-        wrapped_f.__signature__ = new_sig
-        return wrapped_f
-
-    return inner
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__init__.py
deleted file mode 100644
index 91ab1c405e1d700e2bab5a87fc70196a34871e7d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from ._helpers import * # noqa: F403
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 6e6c28cfc7c3a7a0f65e18429f07e567149ee589..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_aliases.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_aliases.cpython-310.pyc
deleted file mode 100644
index 087639b52346b7a0e8d877b5b5c6062cad41ad72..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_aliases.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_fft.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_fft.cpython-310.pyc
deleted file mode 100644
index a0d0658997d1829d1ff1e6ca9b722f7bd74b3388..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_fft.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_helpers.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_helpers.cpython-310.pyc
deleted file mode 100644
index 0c22d08676bfe8c5532b2988411824f54584f51f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_helpers.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_linalg.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_linalg.cpython-310.pyc
deleted file mode 100644
index 369b1b148868dca10bcf2cd6c3422ff730958cf2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_linalg.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_typing.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_typing.cpython-310.pyc
deleted file mode 100644
index 70d3be81405e3f476a31d2f1b51b0f9cf7baf61e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/__pycache__/_typing.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_aliases.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_aliases.py
deleted file mode 100644
index f998481cc70ffe207633b458a9197f9883f1bc30..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_aliases.py
+++ /dev/null
@@ -1,554 +0,0 @@
-"""
-These are functions that are just aliases of existing functions in NumPy.
-"""
-
-from __future__ import annotations
-
-from typing import TYPE_CHECKING
-if TYPE_CHECKING:
-    import numpy as np
-    from typing import Optional, Sequence, Tuple, Union
-    from ._typing import ndarray, Device, Dtype, NestedSequence, SupportsBufferProtocol
-
-from typing import NamedTuple
-from types import ModuleType
-import inspect
-
-from ._helpers import _check_device, is_numpy_array, array_namespace
-
-# These functions are modified from the NumPy versions.
-
-def arange(
-    start: Union[int, float],
-    /,
-    stop: Optional[Union[int, float]] = None,
-    step: Union[int, float] = 1,
-    *,
-    xp,
-    dtype: Optional[Dtype] = None,
-    device: Optional[Device] = None,
-    **kwargs
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.arange(start, stop=stop, step=step, dtype=dtype, **kwargs)
-
-def empty(
-    shape: Union[int, Tuple[int, ...]],
-    xp,
-    *,
-    dtype: Optional[Dtype] = None,
-    device: Optional[Device] = None,
-    **kwargs
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.empty(shape, dtype=dtype, **kwargs)
-
-def empty_like(
-    x: ndarray, /, xp, *, dtype: Optional[Dtype] = None, device: Optional[Device] = None,
-    **kwargs
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.empty_like(x, dtype=dtype, **kwargs)
-
-def eye(
-    n_rows: int,
-    n_cols: Optional[int] = None,
-    /,
-    *,
-    xp,
-    k: int = 0,
-    dtype: Optional[Dtype] = None,
-    device: Optional[Device] = None,
-    **kwargs,
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.eye(n_rows, M=n_cols, k=k, dtype=dtype, **kwargs)
-
-def full(
-    shape: Union[int, Tuple[int, ...]],
-    fill_value: Union[int, float],
-    xp,
-    *,
-    dtype: Optional[Dtype] = None,
-    device: Optional[Device] = None,
-    **kwargs,
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.full(shape, fill_value, dtype=dtype, **kwargs)
-
-def full_like(
-    x: ndarray,
-    /,
-    fill_value: Union[int, float],
-    *,
-    xp,
-    dtype: Optional[Dtype] = None,
-    device: Optional[Device] = None,
-    **kwargs,
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.full_like(x, fill_value, dtype=dtype, **kwargs)
-
-def linspace(
-    start: Union[int, float],
-    stop: Union[int, float],
-    /,
-    num: int,
-    *,
-    xp,
-    dtype: Optional[Dtype] = None,
-    device: Optional[Device] = None,
-    endpoint: bool = True,
-    **kwargs,
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.linspace(start, stop, num, dtype=dtype, endpoint=endpoint, **kwargs)
-
-def ones(
-    shape: Union[int, Tuple[int, ...]],
-    xp,
-    *,
-    dtype: Optional[Dtype] = None,
-    device: Optional[Device] = None,
-    **kwargs,
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.ones(shape, dtype=dtype, **kwargs)
-
-def ones_like(
-    x: ndarray, /, xp, *, dtype: Optional[Dtype] = None, device: Optional[Device] = None,
-    **kwargs,
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.ones_like(x, dtype=dtype, **kwargs)
-
-def zeros(
-    shape: Union[int, Tuple[int, ...]],
-    xp,
-    *,
-    dtype: Optional[Dtype] = None,
-    device: Optional[Device] = None,
-    **kwargs,
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.zeros(shape, dtype=dtype, **kwargs)
-
-def zeros_like(
-    x: ndarray, /, xp, *, dtype: Optional[Dtype] = None, device: Optional[Device] = None,
-    **kwargs,
-) -> ndarray:
-    _check_device(xp, device)
-    return xp.zeros_like(x, dtype=dtype, **kwargs)
-
-# np.unique() is split into four functions in the array API:
-# unique_all, unique_counts, unique_inverse, and unique_values (this is done
-# to remove polymorphic return types).
-
-# The functions here return namedtuples (np.unique() returns a normal
-# tuple).
-
-# Note that these named tuples aren't actually part of the standard namespace,
-# but I don't see any issue with exporting the names here regardless.
-class UniqueAllResult(NamedTuple):
-    values: ndarray
-    indices: ndarray
-    inverse_indices: ndarray
-    counts: ndarray
-
-
-class UniqueCountsResult(NamedTuple):
-    values: ndarray
-    counts: ndarray
-
-
-class UniqueInverseResult(NamedTuple):
-    values: ndarray
-    inverse_indices: ndarray
-
-
-def _unique_kwargs(xp):
-    # Older versions of NumPy and CuPy do not have equal_nan. Rather than
-    # trying to parse version numbers, just check if equal_nan is in the
-    # signature.
-    s = inspect.signature(xp.unique)
-    if 'equal_nan' in s.parameters:
-        return {'equal_nan': False}
-    return {}
-
-def unique_all(x: ndarray, /, xp) -> UniqueAllResult:
-    kwargs = _unique_kwargs(xp)
-    values, indices, inverse_indices, counts = xp.unique(
-        x,
-        return_counts=True,
-        return_index=True,
-        return_inverse=True,
-        **kwargs,
-    )
-    # np.unique() flattens inverse indices, but they need to share x's shape
-    # See https://github.com/numpy/numpy/issues/20638
-    inverse_indices = inverse_indices.reshape(x.shape)
-    return UniqueAllResult(
-        values,
-        indices,
-        inverse_indices,
-        counts,
-    )
-
-
-def unique_counts(x: ndarray, /, xp) -> UniqueCountsResult:
-    kwargs = _unique_kwargs(xp)
-    res = xp.unique(
-        x,
-        return_counts=True,
-        return_index=False,
-        return_inverse=False,
-        **kwargs
-    )
-
-    return UniqueCountsResult(*res)
-
-
-def unique_inverse(x: ndarray, /, xp) -> UniqueInverseResult:
-    kwargs = _unique_kwargs(xp)
-    values, inverse_indices = xp.unique(
-        x,
-        return_counts=False,
-        return_index=False,
-        return_inverse=True,
-        **kwargs,
-    )
-    # xp.unique() flattens inverse indices, but they need to share x's shape
-    # See https://github.com/numpy/numpy/issues/20638
-    inverse_indices = inverse_indices.reshape(x.shape)
-    return UniqueInverseResult(values, inverse_indices)
-
-
-def unique_values(x: ndarray, /, xp) -> ndarray:
-    kwargs = _unique_kwargs(xp)
-    return xp.unique(
-        x,
-        return_counts=False,
-        return_index=False,
-        return_inverse=False,
-        **kwargs,
-    )
-
-def astype(x: ndarray, dtype: Dtype, /, *, copy: bool = True) -> ndarray:
-    if not copy and dtype == x.dtype:
-        return x
-    return x.astype(dtype=dtype, copy=copy)
-
-# These functions have different keyword argument names
-
-def std(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    axis: Optional[Union[int, Tuple[int, ...]]] = None,
-    correction: Union[int, float] = 0.0, # correction instead of ddof
-    keepdims: bool = False,
-    **kwargs,
-) -> ndarray:
-    return xp.std(x, axis=axis, ddof=correction, keepdims=keepdims, **kwargs)
-
-def var(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    axis: Optional[Union[int, Tuple[int, ...]]] = None,
-    correction: Union[int, float] = 0.0, # correction instead of ddof
-    keepdims: bool = False,
-    **kwargs,
-) -> ndarray:
-    return xp.var(x, axis=axis, ddof=correction, keepdims=keepdims, **kwargs)
-
-# Unlike transpose(), the axes argument to permute_dims() is required.
-def permute_dims(x: ndarray, /, axes: Tuple[int, ...], xp) -> ndarray:
-    return xp.transpose(x, axes)
-
-# Creation functions add the device keyword (which does nothing for NumPy)
-
-# asarray also adds the copy keyword
-def _asarray(
-    obj: Union[
-        ndarray,
-        bool,
-        int,
-        float,
-        NestedSequence[bool | int | float],
-        SupportsBufferProtocol,
-    ],
-    /,
-    *,
-    dtype: Optional[Dtype] = None,
-    device: Optional[Device] = None,
-    copy: "Optional[Union[bool, np._CopyMode]]" = None,
-    namespace = None,
-    **kwargs,
-) -> ndarray:
-    """
-    Array API compatibility wrapper for asarray().
-
-    See the corresponding documentation in NumPy/CuPy and/or the array API
-    specification for more details.
-
-    """
-    if namespace is None:
-        try:
-            xp = array_namespace(obj, _use_compat=False)
-        except ValueError:
-            # TODO: What about lists of arrays?
-            raise ValueError("A namespace must be specified for asarray() with non-array input")
-    elif isinstance(namespace, ModuleType):
-        xp = namespace
-    elif namespace == 'numpy':
-        import numpy as xp
-    elif namespace == 'cupy':
-        import cupy as xp
-    elif namespace == 'dask.array':
-        import dask.array as xp
-    else:
-        raise ValueError("Unrecognized namespace argument to asarray()")
-
-    _check_device(xp, device)
-    if is_numpy_array(obj):
-        import numpy as np
-        if hasattr(np, '_CopyMode'):
-            # Not present in older NumPys
-            COPY_FALSE = (False, np._CopyMode.IF_NEEDED)
-            COPY_TRUE = (True, np._CopyMode.ALWAYS)
-        else:
-            COPY_FALSE = (False,)
-            COPY_TRUE = (True,)
-    else:
-        COPY_FALSE = (False,)
-        COPY_TRUE = (True,)
-    if copy in COPY_FALSE and namespace != "dask.array":
-        # copy=False is not yet implemented in xp.asarray
-        raise NotImplementedError("copy=False is not yet implemented")
-    if (hasattr(xp, "ndarray") and isinstance(obj, xp.ndarray)):
-        if dtype is not None and obj.dtype != dtype:
-            copy = True
-        if copy in COPY_TRUE:
-            return xp.array(obj, copy=True, dtype=dtype)
-        return obj
-    elif namespace == "dask.array":
-        if copy in COPY_TRUE:
-            if dtype is None:
-                return obj.copy()
-            # Go through numpy, since dask copy is no-op by default
-            import numpy as np
-            obj = np.array(obj, dtype=dtype, copy=True)
-            return xp.array(obj, dtype=dtype)
-        else:
-            import dask.array as da
-            import numpy as np
-            if not isinstance(obj, da.Array):
-                obj = np.asarray(obj, dtype=dtype)
-                return da.from_array(obj)
-            return obj
-
-    return xp.asarray(obj, dtype=dtype, **kwargs)
-
-# np.reshape calls the keyword argument 'newshape' instead of 'shape'
-def reshape(x: ndarray,
-            /,
-            shape: Tuple[int, ...],
-            xp, copy: Optional[bool] = None,
-            **kwargs) -> ndarray:
-    if copy is True:
-        x = x.copy()
-    elif copy is False:
-        y = x.view()
-        y.shape = shape
-        return y
-    return xp.reshape(x, shape, **kwargs)
-
-# The descending keyword is new in sort and argsort, and 'kind' replaced with
-# 'stable'
-def argsort(
-    x: ndarray, /, xp, *, axis: int = -1, descending: bool = False, stable: bool = True,
-    **kwargs,
-) -> ndarray:
-    # Note: this keyword argument is different, and the default is different.
-    # We set it in kwargs like this because numpy.sort uses kind='quicksort'
-    # as the default whereas cupy.sort uses kind=None.
-    if stable:
-        kwargs['kind'] = "stable"
-    if not descending:
-        res = xp.argsort(x, axis=axis, **kwargs)
-    else:
-        # As NumPy has no native descending sort, we imitate it here. Note that
-        # simply flipping the results of xp.argsort(x, ...) would not
-        # respect the relative order like it would in native descending sorts.
-        res = xp.flip(
-            xp.argsort(xp.flip(x, axis=axis), axis=axis, **kwargs),
-            axis=axis,
-        )
-        # Rely on flip()/argsort() to validate axis
-        normalised_axis = axis if axis >= 0 else x.ndim + axis
-        max_i = x.shape[normalised_axis] - 1
-        res = max_i - res
-    return res
-
-def sort(
-    x: ndarray, /, xp, *, axis: int = -1, descending: bool = False, stable: bool = True,
-    **kwargs,
-) -> ndarray:
-    # Note: this keyword argument is different, and the default is different.
-    # We set it in kwargs like this because numpy.sort uses kind='quicksort'
-    # as the default whereas cupy.sort uses kind=None.
-    if stable:
-        kwargs['kind'] = "stable"
-    res = xp.sort(x, axis=axis, **kwargs)
-    if descending:
-        res = xp.flip(res, axis=axis)
-    return res
-
-# nonzero should error for zero-dimensional arrays
-def nonzero(x: ndarray, /, xp, **kwargs) -> Tuple[ndarray, ...]:
-    if x.ndim == 0:
-        raise ValueError("nonzero() does not support zero-dimensional arrays")
-    return xp.nonzero(x, **kwargs)
-
-# sum() and prod() should always upcast when dtype=None
-def sum(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    axis: Optional[Union[int, Tuple[int, ...]]] = None,
-    dtype: Optional[Dtype] = None,
-    keepdims: bool = False,
-    **kwargs,
-) -> ndarray:
-    # `xp.sum` already upcasts integers, but not floats or complexes
-    if dtype is None:
-        if x.dtype == xp.float32:
-            dtype = xp.float64
-        elif x.dtype == xp.complex64:
-            dtype = xp.complex128
-    return xp.sum(x, axis=axis, dtype=dtype, keepdims=keepdims, **kwargs)
-
-def prod(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    axis: Optional[Union[int, Tuple[int, ...]]] = None,
-    dtype: Optional[Dtype] = None,
-    keepdims: bool = False,
-    **kwargs,
-) -> ndarray:
-    if dtype is None:
-        if x.dtype == xp.float32:
-            dtype = xp.float64
-        elif x.dtype == xp.complex64:
-            dtype = xp.complex128
-    return xp.prod(x, dtype=dtype, axis=axis, keepdims=keepdims, **kwargs)
-
-# ceil, floor, and trunc return integers for integer inputs
-
-def ceil(x: ndarray, /, xp, **kwargs) -> ndarray:
-    if xp.issubdtype(x.dtype, xp.integer):
-        return x
-    return xp.ceil(x, **kwargs)
-
-def floor(x: ndarray, /, xp, **kwargs) -> ndarray:
-    if xp.issubdtype(x.dtype, xp.integer):
-        return x
-    return xp.floor(x, **kwargs)
-
-def trunc(x: ndarray, /, xp, **kwargs) -> ndarray:
-    if xp.issubdtype(x.dtype, xp.integer):
-        return x
-    return xp.trunc(x, **kwargs)
-
-# linear algebra functions
-
-def matmul(x1: ndarray, x2: ndarray, /, xp, **kwargs) -> ndarray:
-    return xp.matmul(x1, x2, **kwargs)
-
-# Unlike transpose, matrix_transpose only transposes the last two axes.
-def matrix_transpose(x: ndarray, /, xp) -> ndarray:
-    if x.ndim < 2:
-        raise ValueError("x must be at least 2-dimensional for matrix_transpose")
-    return xp.swapaxes(x, -1, -2)
-
-def tensordot(x1: ndarray,
-              x2: ndarray,
-              /,
-              xp,
-              *,
-              axes: Union[int, Tuple[Sequence[int], Sequence[int]]] = 2,
-              **kwargs,
-) -> ndarray:
-    return xp.tensordot(x1, x2, axes=axes, **kwargs)
-
-def vecdot(x1: ndarray, x2: ndarray, /, xp, *, axis: int = -1) -> ndarray:
-    if x1.shape[axis] != x2.shape[axis]:
-        raise ValueError("x1 and x2 must have the same size along the given axis")
-
-    if hasattr(xp, 'broadcast_tensors'):
-        _broadcast = xp.broadcast_tensors
-    else:
-        _broadcast = xp.broadcast_arrays
-
-    x1_ = xp.moveaxis(x1, axis, -1)
-    x2_ = xp.moveaxis(x2, axis, -1)
-    x1_, x2_ = _broadcast(x1_, x2_)
-
-    res = x1_[..., None, :] @ x2_[..., None]
-    return res[..., 0, 0]
-
-# isdtype is a new function in the 2022.12 array API specification.
-
-def isdtype(
-    dtype: Dtype, kind: Union[Dtype, str, Tuple[Union[Dtype, str], ...]], xp,
-    *, _tuple=True, # Disallow nested tuples
-) -> bool:
-    """
-    Returns a boolean indicating whether a provided dtype is of a specified data type ``kind``.
-
-    Note that outside of this function, this compat library does not yet fully
-    support complex numbers.
-
-    See
-    https://data-apis.org/array-api/latest/API_specification/generated/array_api.isdtype.html
-    for more details
-    """
-    if isinstance(kind, tuple) and _tuple:
-        return any(isdtype(dtype, k, xp, _tuple=False) for k in kind)
-    elif isinstance(kind, str):
-        if kind == 'bool':
-            return dtype == xp.bool_
-        elif kind == 'signed integer':
-            return xp.issubdtype(dtype, xp.signedinteger)
-        elif kind == 'unsigned integer':
-            return xp.issubdtype(dtype, xp.unsignedinteger)
-        elif kind == 'integral':
-            return xp.issubdtype(dtype, xp.integer)
-        elif kind == 'real floating':
-            return xp.issubdtype(dtype, xp.floating)
-        elif kind == 'complex floating':
-            return xp.issubdtype(dtype, xp.complexfloating)
-        elif kind == 'numeric':
-            return xp.issubdtype(dtype, xp.number)
-        else:
-            raise ValueError(f"Unrecognized data type kind: {kind!r}")
-    else:
-        # This will allow things that aren't required by the spec, like
-        # isdtype(np.float64, float) or isdtype(np.int64, 'l'). Should we be
-        # more strict here to match the type annotation? Note that the
-        # array_api_strict implementation will be very strict.
-        return dtype == kind
-
-__all__ = ['arange', 'empty', 'empty_like', 'eye', 'full', 'full_like',
-           'linspace', 'ones', 'ones_like', 'zeros', 'zeros_like',
-           'UniqueAllResult', 'UniqueCountsResult', 'UniqueInverseResult',
-           'unique_all', 'unique_counts', 'unique_inverse', 'unique_values',
-           'astype', 'std', 'var', 'permute_dims', 'reshape', 'argsort',
-           'sort', 'nonzero', 'sum', 'prod', 'ceil', 'floor', 'trunc',
-           'matmul', 'matrix_transpose', 'tensordot', 'vecdot', 'isdtype']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_fft.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_fft.py
deleted file mode 100644
index 666b0b1f84211052ac23be8a2a3009457b3b19d2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_fft.py
+++ /dev/null
@@ -1,183 +0,0 @@
-from __future__ import annotations
-
-from typing import TYPE_CHECKING, Union, Optional, Literal
-
-if TYPE_CHECKING:
-    from ._typing import Device, ndarray
-    from collections.abc import Sequence
-
-# Note: NumPy fft functions improperly upcast float32 and complex64 to
-# complex128, which is why we require wrapping them all here.
-
-def fft(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    n: Optional[int] = None,
-    axis: int = -1,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-) -> ndarray:
-    res = xp.fft.fft(x, n=n, axis=axis, norm=norm)
-    if x.dtype in [xp.float32, xp.complex64]:
-        return res.astype(xp.complex64)
-    return res
-
-def ifft(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    n: Optional[int] = None,
-    axis: int = -1,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-) -> ndarray:
-    res = xp.fft.ifft(x, n=n, axis=axis, norm=norm)
-    if x.dtype in [xp.float32, xp.complex64]:
-        return res.astype(xp.complex64)
-    return res
-
-def fftn(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    s: Sequence[int] = None,
-    axes: Sequence[int] = None,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-) -> ndarray:
-    res = xp.fft.fftn(x, s=s, axes=axes, norm=norm)
-    if x.dtype in [xp.float32, xp.complex64]:
-        return res.astype(xp.complex64)
-    return res
-
-def ifftn(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    s: Sequence[int] = None,
-    axes: Sequence[int] = None,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-) -> ndarray:
-    res = xp.fft.ifftn(x, s=s, axes=axes, norm=norm)
-    if x.dtype in [xp.float32, xp.complex64]:
-        return res.astype(xp.complex64)
-    return res
-
-def rfft(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    n: Optional[int] = None,
-    axis: int = -1,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-) -> ndarray:
-    res = xp.fft.rfft(x, n=n, axis=axis, norm=norm)
-    if x.dtype == xp.float32:
-        return res.astype(xp.complex64)
-    return res
-
-def irfft(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    n: Optional[int] = None,
-    axis: int = -1,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-) -> ndarray:
-    res = xp.fft.irfft(x, n=n, axis=axis, norm=norm)
-    if x.dtype == xp.complex64:
-        return res.astype(xp.float32)
-    return res
-
-def rfftn(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    s: Sequence[int] = None,
-    axes: Sequence[int] = None,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-) -> ndarray:
-    res = xp.fft.rfftn(x, s=s, axes=axes, norm=norm)
-    if x.dtype == xp.float32:
-        return res.astype(xp.complex64)
-    return res
-
-def irfftn(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    s: Sequence[int] = None,
-    axes: Sequence[int] = None,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-) -> ndarray:
-    res = xp.fft.irfftn(x, s=s, axes=axes, norm=norm)
-    if x.dtype == xp.complex64:
-        return res.astype(xp.float32)
-    return res
-
-def hfft(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    n: Optional[int] = None,
-    axis: int = -1,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-) -> ndarray:
-    res = xp.fft.hfft(x, n=n, axis=axis, norm=norm)
-    if x.dtype in [xp.float32, xp.complex64]:
-        return res.astype(xp.float32)
-    return res
-
-def ihfft(
-    x: ndarray,
-    /,
-    xp,
-    *,
-    n: Optional[int] = None,
-    axis: int = -1,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-) -> ndarray:
-    res = xp.fft.ihfft(x, n=n, axis=axis, norm=norm)
-    if x.dtype in [xp.float32, xp.complex64]:
-        return res.astype(xp.complex64)
-    return res
-
-def fftfreq(n: int, /, xp, *, d: float = 1.0, device: Optional[Device] = None) -> ndarray:
-    if device not in ["cpu", None]:
-        raise ValueError(f"Unsupported device {device!r}")
-    return xp.fft.fftfreq(n, d=d)
-
-def rfftfreq(n: int, /, xp, *, d: float = 1.0, device: Optional[Device] = None) -> ndarray:
-    if device not in ["cpu", None]:
-        raise ValueError(f"Unsupported device {device!r}")
-    return xp.fft.rfftfreq(n, d=d)
-
-def fftshift(x: ndarray, /, xp, *, axes: Union[int, Sequence[int]] = None) -> ndarray:
-    return xp.fft.fftshift(x, axes=axes)
-
-def ifftshift(x: ndarray, /, xp, *, axes: Union[int, Sequence[int]] = None) -> ndarray:
-    return xp.fft.ifftshift(x, axes=axes)
-
-__all__ = [
-    "fft",
-    "ifft",
-    "fftn",
-    "ifftn",
-    "rfft",
-    "irfft",
-    "rfftn",
-    "irfftn",
-    "hfft",
-    "ihfft",
-    "fftfreq",
-    "rfftfreq",
-    "fftshift",
-    "ifftshift",
-]
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_helpers.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_helpers.py
deleted file mode 100644
index 25419c01c2a4870d15eb8806b92af41723814446..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_helpers.py
+++ /dev/null
@@ -1,515 +0,0 @@
-"""
-Various helper functions which are not part of the spec.
-
-Functions which start with an underscore are for internal use only but helpers
-that are in __all__ are intended as additional helper functions for use by end
-users of the compat library.
-"""
-from __future__ import annotations
-
-from typing import TYPE_CHECKING
-
-if TYPE_CHECKING:
-    from typing import Optional, Union, Any
-    from ._typing import Array, Device
-
-import sys
-import math
-import inspect
-import warnings
-
-def is_numpy_array(x):
-    """
-    Return True if `x` is a NumPy array.
-
-    This function does not import NumPy if it has not already been imported
-    and is therefore cheap to use.
-
-    This also returns True for `ndarray` subclasses and NumPy scalar objects.
-
-    See Also
-    --------
-
-    array_namespace
-    is_array_api_obj
-    is_cupy_array
-    is_torch_array
-    is_dask_array
-    is_jax_array
-    """
-    # Avoid importing NumPy if it isn't already
-    if 'numpy' not in sys.modules:
-        return False
-
-    import numpy as np
-
-    # TODO: Should we reject ndarray subclasses?
-    return isinstance(x, (np.ndarray, np.generic))
-
-def is_cupy_array(x):
-    """
-    Return True if `x` is a CuPy array.
-
-    This function does not import CuPy if it has not already been imported
-    and is therefore cheap to use.
-
-    This also returns True for `cupy.ndarray` subclasses and CuPy scalar objects.
-
-    See Also
-    --------
-
-    array_namespace
-    is_array_api_obj
-    is_numpy_array
-    is_torch_array
-    is_dask_array
-    is_jax_array
-    """
-    # Avoid importing NumPy if it isn't already
-    if 'cupy' not in sys.modules:
-        return False
-
-    import cupy as cp
-
-    # TODO: Should we reject ndarray subclasses?
-    return isinstance(x, (cp.ndarray, cp.generic))
-
-def is_torch_array(x):
-    """
-    Return True if `x` is a PyTorch tensor.
-
-    This function does not import PyTorch if it has not already been imported
-    and is therefore cheap to use.
-
-    See Also
-    --------
-
-    array_namespace
-    is_array_api_obj
-    is_numpy_array
-    is_cupy_array
-    is_dask_array
-    is_jax_array
-    """
-    # Avoid importing torch if it isn't already
-    if 'torch' not in sys.modules:
-        return False
-
-    import torch
-
-    # TODO: Should we reject ndarray subclasses?
-    return isinstance(x, torch.Tensor)
-
-def is_dask_array(x):
-    """
-    Return True if `x` is a dask.array Array.
-
-    This function does not import dask if it has not already been imported
-    and is therefore cheap to use.
-
-    See Also
-    --------
-
-    array_namespace
-    is_array_api_obj
-    is_numpy_array
-    is_cupy_array
-    is_torch_array
-    is_jax_array
-    """
-    # Avoid importing dask if it isn't already
-    if 'dask.array' not in sys.modules:
-        return False
-
-    import dask.array
-
-    return isinstance(x, dask.array.Array)
-
-def is_jax_array(x):
-    """
-    Return True if `x` is a JAX array.
-
-    This function does not import JAX if it has not already been imported
-    and is therefore cheap to use.
-
-
-    See Also
-    --------
-
-    array_namespace
-    is_array_api_obj
-    is_numpy_array
-    is_cupy_array
-    is_torch_array
-    is_dask_array
-    """
-    # Avoid importing jax if it isn't already
-    if 'jax' not in sys.modules:
-        return False
-
-    import jax
-
-    return isinstance(x, jax.Array)
-
-def is_array_api_obj(x):
-    """
-    Return True if `x` is an array API compatible array object.
-
-    See Also
-    --------
-
-    array_namespace
-    is_numpy_array
-    is_cupy_array
-    is_torch_array
-    is_dask_array
-    is_jax_array
-    """
-    return is_numpy_array(x) \
-        or is_cupy_array(x) \
-        or is_torch_array(x) \
-        or is_dask_array(x) \
-        or is_jax_array(x) \
-        or hasattr(x, '__array_namespace__')
-
-def _check_api_version(api_version):
-    if api_version == '2021.12':
-        warnings.warn("The 2021.12 version of the array API specification was requested but the returned namespace is actually version 2022.12")
-    elif api_version is not None and api_version != '2022.12':
-        raise ValueError("Only the 2022.12 version of the array API specification is currently supported")
-
-def array_namespace(*xs, api_version=None, _use_compat=True):
-    """
-    Get the array API compatible namespace for the arrays `xs`.
-
-    Parameters
-    ----------
-    xs: arrays
-        one or more arrays.
-
-    api_version: str
-        The newest version of the spec that you need support for (currently
-        the compat library wrapped APIs support v2022.12).
-
-    Returns
-    -------
-
-    out: namespace
-        The array API compatible namespace corresponding to the arrays in `xs`.
-
-    Raises
-    ------
-    TypeError
-        If `xs` contains arrays from different array libraries or contains a
-        non-array.
-
-
-    Typical usage is to pass the arguments of a function to
-    `array_namespace()` at the top of a function to get the corresponding
-    array API namespace:
-
-    .. code:: python
-
-       def your_function(x, y):
-           xp = array_api_compat.array_namespace(x, y)
-           # Now use xp as the array library namespace
-           return xp.mean(x, axis=0) + 2*xp.std(y, axis=0)
-
-
-    Wrapped array namespaces can also be imported directly. For example,
-    `array_namespace(np.array(...))` will return `array_api_compat.numpy`.
-    This function will also work for any array library not wrapped by
-    array-api-compat if it explicitly defines `__array_namespace__
-    `__
-    (the wrapped namespace is always preferred if it exists).
-
-    See Also
-    --------
-
-    is_array_api_obj
-    is_numpy_array
-    is_cupy_array
-    is_torch_array
-    is_dask_array
-    is_jax_array
-
-    """
-    namespaces = set()
-    for x in xs:
-        if is_numpy_array(x):
-            _check_api_version(api_version)
-            if _use_compat:
-                from .. import numpy as numpy_namespace
-                namespaces.add(numpy_namespace)
-            else:
-                import numpy as np
-                namespaces.add(np)
-        elif is_cupy_array(x):
-            _check_api_version(api_version)
-            if _use_compat:
-                from .. import cupy as cupy_namespace
-                namespaces.add(cupy_namespace)
-            else:
-                import cupy as cp
-                namespaces.add(cp)
-        elif is_torch_array(x):
-            _check_api_version(api_version)
-            if _use_compat:
-                from .. import torch as torch_namespace
-                namespaces.add(torch_namespace)
-            else:
-                import torch
-                namespaces.add(torch)
-        elif is_dask_array(x):
-            _check_api_version(api_version)
-            if _use_compat:
-                from ..dask import array as dask_namespace
-                namespaces.add(dask_namespace)
-            else:
-                raise TypeError("_use_compat cannot be False if input array is a dask array!")
-        elif is_jax_array(x):
-            _check_api_version(api_version)
-            # jax.experimental.array_api is already an array namespace. We do
-            # not have a wrapper submodule for it.
-            import jax.experimental.array_api as jnp
-            namespaces.add(jnp)
-        elif hasattr(x, '__array_namespace__'):
-            namespaces.add(x.__array_namespace__(api_version=api_version))
-        else:
-            # TODO: Support Python scalars?
-            raise TypeError(f"{type(x).__name__} is not a supported array type")
-
-    if not namespaces:
-        raise TypeError("Unrecognized array input")
-
-    if len(namespaces) != 1:
-        raise TypeError(f"Multiple namespaces for array inputs: {namespaces}")
-
-    xp, = namespaces
-
-    return xp
-
-# backwards compatibility alias
-get_namespace = array_namespace
-
-def _check_device(xp, device):
-    if xp == sys.modules.get('numpy'):
-        if device not in ["cpu", None]:
-            raise ValueError(f"Unsupported device for NumPy: {device!r}")
-
-# Placeholder object to represent the dask device
-# when the array backend is not the CPU.
-# (since it is not easy to tell which device a dask array is on)
-class _dask_device:
-    def __repr__(self):
-        return "DASK_DEVICE"
-
-_DASK_DEVICE = _dask_device()
-
-# device() is not on numpy.ndarray or dask.array and to_device() is not on numpy.ndarray
-# or cupy.ndarray. They are not included in array objects of this library
-# because this library just reuses the respective ndarray classes without
-# wrapping or subclassing them. These helper functions can be used instead of
-# the wrapper functions for libraries that need to support both NumPy/CuPy and
-# other libraries that use devices.
-def device(x: Array, /) -> Device:
-    """
-    Hardware device the array data resides on.
-
-    This is equivalent to `x.device` according to the `standard
-    `__.
-    This helper is included because some array libraries either do not have
-    the `device` attribute or include it with an incompatible API.
-
-    Parameters
-    ----------
-    x: array
-        array instance from an array API compatible library.
-
-    Returns
-    -------
-    out: device
-        a ``device`` object (see the `Device Support `__
-        section of the array API specification).
-
-    Notes
-    -----
-
-    For NumPy the device is always `"cpu"`. For Dask, the device is always a
-    special `DASK_DEVICE` object.
-
-    See Also
-    --------
-
-    to_device : Move array data to a different device.
-
-    """
-    if is_numpy_array(x):
-        return "cpu"
-    elif is_dask_array(x):
-        # Peek at the metadata of the jax array to determine type
-        try:
-            import numpy as np
-            if isinstance(x._meta, np.ndarray):
-                # Must be on CPU since backed by numpy
-                return "cpu"
-        except ImportError:
-            pass
-        return _DASK_DEVICE
-    elif is_jax_array(x):
-        # JAX has .device() as a method, but it is being deprecated so that it
-        # can become a property, in accordance with the standard. In order for
-        # this function to not break when JAX makes the flip, we check for
-        # both here.
-        if inspect.ismethod(x.device):
-            return x.device()
-        else:
-            return x.device
-    return x.device
-
-# Based on cupy.array_api.Array.to_device
-def _cupy_to_device(x, device, /, stream=None):
-    import cupy as cp
-    from cupy.cuda import Device as _Device
-    from cupy.cuda import stream as stream_module
-    from cupy_backends.cuda.api import runtime
-
-    if device == x.device:
-        return x
-    elif device == "cpu":
-        # allowing us to use `to_device(x, "cpu")`
-        # is useful for portable test swapping between
-        # host and device backends
-        return x.get()
-    elif not isinstance(device, _Device):
-        raise ValueError(f"Unsupported device {device!r}")
-    else:
-        # see cupy/cupy#5985 for the reason how we handle device/stream here
-        prev_device = runtime.getDevice()
-        prev_stream: stream_module.Stream = None
-        if stream is not None:
-            prev_stream = stream_module.get_current_stream()
-            # stream can be an int as specified in __dlpack__, or a CuPy stream
-            if isinstance(stream, int):
-                stream = cp.cuda.ExternalStream(stream)
-            elif isinstance(stream, cp.cuda.Stream):
-                pass
-            else:
-                raise ValueError('the input stream is not recognized')
-            stream.use()
-        try:
-            runtime.setDevice(device.id)
-            arr = x.copy()
-        finally:
-            runtime.setDevice(prev_device)
-            if stream is not None:
-                prev_stream.use()
-        return arr
-
-def _torch_to_device(x, device, /, stream=None):
-    if stream is not None:
-        raise NotImplementedError
-    return x.to(device)
-
-def to_device(x: Array, device: Device, /, *, stream: Optional[Union[int, Any]] = None) -> Array:
-    """
-    Copy the array from the device on which it currently resides to the specified ``device``.
-
-    This is equivalent to `x.to_device(device, stream=stream)` according to
-    the `standard
-    `__.
-    This helper is included because some array libraries do not have the
-    `to_device` method.
-
-    Parameters
-    ----------
-
-    x: array
-        array instance from an array API compatible library.
-
-    device: device
-        a ``device`` object (see the `Device Support `__
-        section of the array API specification).
-
-    stream: Optional[Union[int, Any]]
-        stream object to use during copy. In addition to the types supported
-        in ``array.__dlpack__``, implementations may choose to support any
-        library-specific stream object with the caveat that any code using
-        such an object would not be portable.
-
-    Returns
-    -------
-
-    out: array
-        an array with the same data and data type as ``x`` and located on the
-        specified ``device``.
-
-    Notes
-    -----
-
-    For NumPy, this function effectively does nothing since the only supported
-    device is the CPU. For CuPy, this method supports CuPy CUDA
-    :external+cupy:class:`Device ` and
-    :external+cupy:class:`Stream ` objects. For PyTorch,
-    this is the same as :external+torch:meth:`x.to(device) `
-    (the ``stream`` argument is not supported in PyTorch).
-
-    See Also
-    --------
-
-    device : Hardware device the array data resides on.
-
-    """
-    if is_numpy_array(x):
-        if stream is not None:
-            raise ValueError("The stream argument to to_device() is not supported")
-        if device == 'cpu':
-            return x
-        raise ValueError(f"Unsupported device {device!r}")
-    elif is_cupy_array(x):
-        # cupy does not yet have to_device
-        return _cupy_to_device(x, device, stream=stream)
-    elif is_torch_array(x):
-        return _torch_to_device(x, device, stream=stream)
-    elif is_dask_array(x):
-        if stream is not None:
-            raise ValueError("The stream argument to to_device() is not supported")
-        # TODO: What if our array is on the GPU already?
-        if device == 'cpu':
-            return x
-        raise ValueError(f"Unsupported device {device!r}")
-    elif is_jax_array(x):
-        # This import adds to_device to x
-        import jax.experimental.array_api # noqa: F401
-        return x.to_device(device, stream=stream)
-    return x.to_device(device, stream=stream)
-
-def size(x):
-    """
-    Return the total number of elements of x.
-
-    This is equivalent to `x.size` according to the `standard
-    `__.
-    This helper is included because PyTorch defines `size` in an
-    :external+torch:meth:`incompatible way `.
-
-    """
-    if None in x.shape:
-        return None
-    return math.prod(x.shape)
-
-__all__ = [
-    "array_namespace",
-    "device",
-    "get_namespace",
-    "is_array_api_obj",
-    "is_cupy_array",
-    "is_dask_array",
-    "is_jax_array",
-    "is_numpy_array",
-    "is_torch_array",
-    "size",
-    "to_device",
-]
-
-_all_ignore = ['sys', 'math', 'inspect', 'warnings']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_linalg.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_linalg.py
deleted file mode 100644
index dc2b69d87b826717a6bea9dc27610b93a6908061..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_linalg.py
+++ /dev/null
@@ -1,161 +0,0 @@
-from __future__ import annotations
-
-from typing import TYPE_CHECKING, NamedTuple
-if TYPE_CHECKING:
-    from typing import Literal, Optional, Tuple, Union
-    from ._typing import ndarray
-
-import math
-
-import numpy as np
-if np.__version__[0] == "2":
-    from numpy.lib.array_utils import normalize_axis_tuple
-else:
-    from numpy.core.numeric import normalize_axis_tuple
-
-from ._aliases import matmul, matrix_transpose, tensordot, vecdot, isdtype
-from .._internal import get_xp
-
-# These are in the main NumPy namespace but not in numpy.linalg
-def cross(x1: ndarray, x2: ndarray, /, xp, *, axis: int = -1, **kwargs) -> ndarray:
-    return xp.cross(x1, x2, axis=axis, **kwargs)
-
-def outer(x1: ndarray, x2: ndarray, /, xp, **kwargs) -> ndarray:
-    return xp.outer(x1, x2, **kwargs)
-
-class EighResult(NamedTuple):
-    eigenvalues: ndarray
-    eigenvectors: ndarray
-
-class QRResult(NamedTuple):
-    Q: ndarray
-    R: ndarray
-
-class SlogdetResult(NamedTuple):
-    sign: ndarray
-    logabsdet: ndarray
-
-class SVDResult(NamedTuple):
-    U: ndarray
-    S: ndarray
-    Vh: ndarray
-
-# These functions are the same as their NumPy counterparts except they return
-# a namedtuple.
-def eigh(x: ndarray, /, xp, **kwargs) -> EighResult:
-    return EighResult(*xp.linalg.eigh(x, **kwargs))
-
-def qr(x: ndarray, /, xp, *, mode: Literal['reduced', 'complete'] = 'reduced',
-       **kwargs) -> QRResult:
-    return QRResult(*xp.linalg.qr(x, mode=mode, **kwargs))
-
-def slogdet(x: ndarray, /, xp, **kwargs) -> SlogdetResult:
-    return SlogdetResult(*xp.linalg.slogdet(x, **kwargs))
-
-def svd(x: ndarray, /, xp, *, full_matrices: bool = True, **kwargs) -> SVDResult:
-    return SVDResult(*xp.linalg.svd(x, full_matrices=full_matrices, **kwargs))
-
-# These functions have additional keyword arguments
-
-# The upper keyword argument is new from NumPy
-def cholesky(x: ndarray, /, xp, *, upper: bool = False, **kwargs) -> ndarray:
-    L = xp.linalg.cholesky(x, **kwargs)
-    if upper:
-        U = get_xp(xp)(matrix_transpose)(L)
-        if get_xp(xp)(isdtype)(U.dtype, 'complex floating'):
-            U = xp.conj(U)
-        return U
-    return L
-
-# The rtol keyword argument of matrix_rank() and pinv() is new from NumPy.
-# Note that it has a different semantic meaning from tol and rcond.
-def matrix_rank(x: ndarray,
-                /,
-                xp,
-                *,
-                rtol: Optional[Union[float, ndarray]] = None,
-                **kwargs) -> ndarray:
-    # this is different from xp.linalg.matrix_rank, which supports 1
-    # dimensional arrays.
-    if x.ndim < 2:
-        raise xp.linalg.LinAlgError("1-dimensional array given. Array must be at least two-dimensional")
-    S = get_xp(xp)(svdvals)(x, **kwargs)
-    if rtol is None:
-        tol = S.max(axis=-1, keepdims=True) * max(x.shape[-2:]) * xp.finfo(S.dtype).eps
-    else:
-        # this is different from xp.linalg.matrix_rank, which does not
-        # multiply the tolerance by the largest singular value.
-        tol = S.max(axis=-1, keepdims=True)*xp.asarray(rtol)[..., xp.newaxis]
-    return xp.count_nonzero(S > tol, axis=-1)
-
-def pinv(x: ndarray, /, xp, *, rtol: Optional[Union[float, ndarray]] = None, **kwargs) -> ndarray:
-    # this is different from xp.linalg.pinv, which does not multiply the
-    # default tolerance by max(M, N).
-    if rtol is None:
-        rtol = max(x.shape[-2:]) * xp.finfo(x.dtype).eps
-    return xp.linalg.pinv(x, rcond=rtol, **kwargs)
-
-# These functions are new in the array API spec
-
-def matrix_norm(x: ndarray, /, xp, *, keepdims: bool = False, ord: Optional[Union[int, float, Literal['fro', 'nuc']]] = 'fro') -> ndarray:
-    return xp.linalg.norm(x, axis=(-2, -1), keepdims=keepdims, ord=ord)
-
-# svdvals is not in NumPy (but it is in SciPy). It is equivalent to
-# xp.linalg.svd(compute_uv=False).
-def svdvals(x: ndarray, /, xp) -> Union[ndarray, Tuple[ndarray, ...]]:
-    return xp.linalg.svd(x, compute_uv=False)
-
-def vector_norm(x: ndarray, /, xp, *, axis: Optional[Union[int, Tuple[int, ...]]] = None, keepdims: bool = False, ord: Optional[Union[int, float]] = 2) -> ndarray:
-    # xp.linalg.norm tries to do a matrix norm whenever axis is a 2-tuple or
-    # when axis=None and the input is 2-D, so to force a vector norm, we make
-    # it so the input is 1-D (for axis=None), or reshape so that norm is done
-    # on a single dimension.
-    if axis is None:
-        # Note: xp.linalg.norm() doesn't handle 0-D arrays
-        _x = x.ravel()
-        _axis = 0
-    elif isinstance(axis, tuple):
-        # Note: The axis argument supports any number of axes, whereas
-        # xp.linalg.norm() only supports a single axis for vector norm.
-        normalized_axis = normalize_axis_tuple(axis, x.ndim)
-        rest = tuple(i for i in range(x.ndim) if i not in normalized_axis)
-        newshape = axis + rest
-        _x = xp.transpose(x, newshape).reshape(
-            (math.prod([x.shape[i] for i in axis]), *[x.shape[i] for i in rest]))
-        _axis = 0
-    else:
-        _x = x
-        _axis = axis
-
-    res = xp.linalg.norm(_x, axis=_axis, ord=ord)
-
-    if keepdims:
-        # We can't reuse xp.linalg.norm(keepdims) because of the reshape hacks
-        # above to avoid matrix norm logic.
-        shape = list(x.shape)
-        _axis = normalize_axis_tuple(range(x.ndim) if axis is None else axis, x.ndim)
-        for i in _axis:
-            shape[i] = 1
-        res = xp.reshape(res, tuple(shape))
-
-    return res
-
-# xp.diagonal and xp.trace operate on the first two axes whereas these
-# operates on the last two
-
-def diagonal(x: ndarray, /, xp, *, offset: int = 0, **kwargs) -> ndarray:
-    return xp.diagonal(x, offset=offset, axis1=-2, axis2=-1, **kwargs)
-
-def trace(x: ndarray, /, xp, *, offset: int = 0, dtype=None, **kwargs) -> ndarray:
-    if dtype is None:
-        if x.dtype == xp.float32:
-            dtype = xp.float64
-        elif x.dtype == xp.complex64:
-            dtype = xp.complex128
-    return xp.asarray(xp.trace(x, offset=offset, dtype=dtype, axis1=-2, axis2=-1, **kwargs))
-
-__all__ = ['cross', 'matmul', 'outer', 'tensordot', 'EighResult',
-           'QRResult', 'SlogdetResult', 'SVDResult', 'eigh', 'qr', 'slogdet',
-           'svd', 'cholesky', 'matrix_rank', 'pinv', 'matrix_norm',
-           'matrix_transpose', 'svdvals', 'vecdot', 'vector_norm', 'diagonal',
-           'trace']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_typing.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_typing.py
deleted file mode 100644
index 07f3850d21fade94814f9fe1e638286c72a1c552..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/common/_typing.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from __future__ import annotations
-
-__all__ = [
-    "NestedSequence",
-    "SupportsBufferProtocol",
-]
-
-from typing import (
-    Any,
-    TypeVar,
-    Protocol,
-)
-
-_T_co = TypeVar("_T_co", covariant=True)
-
-class NestedSequence(Protocol[_T_co]):
-    def __getitem__(self, key: int, /) -> _T_co | NestedSequence[_T_co]: ...
-    def __len__(self, /) -> int: ...
-
-SupportsBufferProtocol = Any
-
-Array = Any
-Device = Any
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__init__.py
deleted file mode 100644
index 7968d68d3d0e9d7fd1cccd72a4980217bc54124a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from cupy import * # noqa: F403
-
-# from cupy import * doesn't overwrite these builtin names
-from cupy import abs, max, min, round # noqa: F401
-
-# These imports may overwrite names from the import * above.
-from ._aliases import * # noqa: F403
-
-# See the comment in the numpy __init__.py
-__import__(__package__ + '.linalg')
-
-__import__(__package__ + '.fft')
-
-from ..common._helpers import * # noqa: F401,F403
-
-__array_api_version__ = '2022.12'
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 1b49ce6016a0880a1c0f58679268aaf6834503f6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/_aliases.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/_aliases.cpython-310.pyc
deleted file mode 100644
index e2035bf5e33ed5b09520817319600119fc892d68..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/_aliases.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/_typing.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/_typing.cpython-310.pyc
deleted file mode 100644
index cd53c463672432bd057cbdd41744baeba280bf22..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/_typing.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/fft.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/fft.cpython-310.pyc
deleted file mode 100644
index a6c0774a26408b960587586c4c29b6161eb7433f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/fft.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/linalg.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/linalg.cpython-310.pyc
deleted file mode 100644
index beb982c6529bd8652fc397ddea8c23a921a0ed13..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/__pycache__/linalg.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/_aliases.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/_aliases.py
deleted file mode 100644
index b9364ac691ab734bd6703d51a7a30dab13e545c4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/_aliases.py
+++ /dev/null
@@ -1,81 +0,0 @@
-from __future__ import annotations
-
-from functools import partial
-
-import cupy as cp
-
-from ..common import _aliases
-from .._internal import get_xp
-
-asarray = asarray_cupy = partial(_aliases._asarray, namespace='cupy')
-asarray.__doc__ = _aliases._asarray.__doc__
-del partial
-
-bool = cp.bool_
-
-# Basic renames
-acos = cp.arccos
-acosh = cp.arccosh
-asin = cp.arcsin
-asinh = cp.arcsinh
-atan = cp.arctan
-atan2 = cp.arctan2
-atanh = cp.arctanh
-bitwise_left_shift = cp.left_shift
-bitwise_invert = cp.invert
-bitwise_right_shift = cp.right_shift
-concat = cp.concatenate
-pow = cp.power
-
-arange = get_xp(cp)(_aliases.arange)
-empty = get_xp(cp)(_aliases.empty)
-empty_like = get_xp(cp)(_aliases.empty_like)
-eye = get_xp(cp)(_aliases.eye)
-full = get_xp(cp)(_aliases.full)
-full_like = get_xp(cp)(_aliases.full_like)
-linspace = get_xp(cp)(_aliases.linspace)
-ones = get_xp(cp)(_aliases.ones)
-ones_like = get_xp(cp)(_aliases.ones_like)
-zeros = get_xp(cp)(_aliases.zeros)
-zeros_like = get_xp(cp)(_aliases.zeros_like)
-UniqueAllResult = get_xp(cp)(_aliases.UniqueAllResult)
-UniqueCountsResult = get_xp(cp)(_aliases.UniqueCountsResult)
-UniqueInverseResult = get_xp(cp)(_aliases.UniqueInverseResult)
-unique_all = get_xp(cp)(_aliases.unique_all)
-unique_counts = get_xp(cp)(_aliases.unique_counts)
-unique_inverse = get_xp(cp)(_aliases.unique_inverse)
-unique_values = get_xp(cp)(_aliases.unique_values)
-astype = _aliases.astype
-std = get_xp(cp)(_aliases.std)
-var = get_xp(cp)(_aliases.var)
-permute_dims = get_xp(cp)(_aliases.permute_dims)
-reshape = get_xp(cp)(_aliases.reshape)
-argsort = get_xp(cp)(_aliases.argsort)
-sort = get_xp(cp)(_aliases.sort)
-nonzero = get_xp(cp)(_aliases.nonzero)
-sum = get_xp(cp)(_aliases.sum)
-prod = get_xp(cp)(_aliases.prod)
-ceil = get_xp(cp)(_aliases.ceil)
-floor = get_xp(cp)(_aliases.floor)
-trunc = get_xp(cp)(_aliases.trunc)
-matmul = get_xp(cp)(_aliases.matmul)
-matrix_transpose = get_xp(cp)(_aliases.matrix_transpose)
-tensordot = get_xp(cp)(_aliases.tensordot)
-
-# These functions are completely new here. If the library already has them
-# (i.e., numpy 2.0), use the library version instead of our wrapper.
-if hasattr(cp, 'vecdot'):
-    vecdot = cp.vecdot
-else:
-    vecdot = get_xp(cp)(_aliases.vecdot)
-if hasattr(cp, 'isdtype'):
-    isdtype = cp.isdtype
-else:
-    isdtype = get_xp(cp)(_aliases.isdtype)
-
-__all__ = _aliases.__all__ + ['asarray', 'asarray_cupy', 'bool', 'acos',
-                              'acosh', 'asin', 'asinh', 'atan', 'atan2',
-                              'atanh', 'bitwise_left_shift', 'bitwise_invert',
-                              'bitwise_right_shift', 'concat', 'pow']
-
-_all_ignore = ['cp', 'get_xp']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/_typing.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/_typing.py
deleted file mode 100644
index f3d9aab67e52f3300cd96c3d0e701d1604eaccbb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/_typing.py
+++ /dev/null
@@ -1,46 +0,0 @@
-from __future__ import annotations
-
-__all__ = [
-    "ndarray",
-    "Device",
-    "Dtype",
-]
-
-import sys
-from typing import (
-    Union,
-    TYPE_CHECKING,
-)
-
-from cupy import (
-    ndarray,
-    dtype,
-    int8,
-    int16,
-    int32,
-    int64,
-    uint8,
-    uint16,
-    uint32,
-    uint64,
-    float32,
-    float64,
-)
-
-from cupy.cuda.device import Device
-
-if TYPE_CHECKING or sys.version_info >= (3, 9):
-    Dtype = dtype[Union[
-        int8,
-        int16,
-        int32,
-        int64,
-        uint8,
-        uint16,
-        uint32,
-        uint64,
-        float32,
-        float64,
-    ]]
-else:
-    Dtype = dtype
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/fft.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/fft.py
deleted file mode 100644
index 307e0f7277710693063ef8c4d2cd7893275ad44a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/fft.py
+++ /dev/null
@@ -1,36 +0,0 @@
-from cupy.fft import * # noqa: F403
-# cupy.fft doesn't have __all__. If it is added, replace this with
-#
-# from cupy.fft import __all__ as linalg_all
-_n = {}
-exec('from cupy.fft import *', _n)
-del _n['__builtins__']
-fft_all = list(_n)
-del _n
-
-from ..common import _fft
-from .._internal import get_xp
-
-import cupy as cp
-
-fft = get_xp(cp)(_fft.fft)
-ifft = get_xp(cp)(_fft.ifft)
-fftn = get_xp(cp)(_fft.fftn)
-ifftn = get_xp(cp)(_fft.ifftn)
-rfft = get_xp(cp)(_fft.rfft)
-irfft = get_xp(cp)(_fft.irfft)
-rfftn = get_xp(cp)(_fft.rfftn)
-irfftn = get_xp(cp)(_fft.irfftn)
-hfft = get_xp(cp)(_fft.hfft)
-ihfft = get_xp(cp)(_fft.ihfft)
-fftfreq = get_xp(cp)(_fft.fftfreq)
-rfftfreq = get_xp(cp)(_fft.rfftfreq)
-fftshift = get_xp(cp)(_fft.fftshift)
-ifftshift = get_xp(cp)(_fft.ifftshift)
-
-__all__ = fft_all + _fft.__all__
-
-del get_xp
-del cp
-del fft_all
-del _fft
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/linalg.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/linalg.py
deleted file mode 100644
index 7fcdd498e0073ada094a20a9ae423e01cb0f8ceb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/cupy/linalg.py
+++ /dev/null
@@ -1,49 +0,0 @@
-from cupy.linalg import * # noqa: F403
-# cupy.linalg doesn't have __all__. If it is added, replace this with
-#
-# from cupy.linalg import __all__ as linalg_all
-_n = {}
-exec('from cupy.linalg import *', _n)
-del _n['__builtins__']
-linalg_all = list(_n)
-del _n
-
-from ..common import _linalg
-from .._internal import get_xp
-
-import cupy as cp
-
-# These functions are in both the main and linalg namespaces
-from ._aliases import matmul, matrix_transpose, tensordot, vecdot # noqa: F401
-
-cross = get_xp(cp)(_linalg.cross)
-outer = get_xp(cp)(_linalg.outer)
-EighResult = _linalg.EighResult
-QRResult = _linalg.QRResult
-SlogdetResult = _linalg.SlogdetResult
-SVDResult = _linalg.SVDResult
-eigh = get_xp(cp)(_linalg.eigh)
-qr = get_xp(cp)(_linalg.qr)
-slogdet = get_xp(cp)(_linalg.slogdet)
-svd = get_xp(cp)(_linalg.svd)
-cholesky = get_xp(cp)(_linalg.cholesky)
-matrix_rank = get_xp(cp)(_linalg.matrix_rank)
-pinv = get_xp(cp)(_linalg.pinv)
-matrix_norm = get_xp(cp)(_linalg.matrix_norm)
-svdvals = get_xp(cp)(_linalg.svdvals)
-diagonal = get_xp(cp)(_linalg.diagonal)
-trace = get_xp(cp)(_linalg.trace)
-
-# These functions are completely new here. If the library already has them
-# (i.e., numpy 2.0), use the library version instead of our wrapper.
-if hasattr(cp.linalg, 'vector_norm'):
-    vector_norm = cp.linalg.vector_norm
-else:
-    vector_norm = get_xp(cp)(_linalg.vector_norm)
-
-__all__ = linalg_all + _linalg.__all__
-
-del get_xp
-del cp
-del linalg_all
-del _linalg
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 38ac22c2d1daf5d63b724bd468db6053f18e742b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__init__.py
deleted file mode 100644
index 03e0cd7239cb882423a2fcdcdbfd4781cdf04612..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__init__.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from dask.array import * # noqa: F403
-
-# These imports may overwrite names from the import * above.
-from ._aliases import * # noqa: F403
-
-__array_api_version__ = '2022.12'
-
-__import__(__package__ + '.linalg')
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index ede59a98791c7618d0e318230fce5c9425d2f52b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__pycache__/_aliases.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__pycache__/_aliases.cpython-310.pyc
deleted file mode 100644
index cd9c6989b93baba2237c4a2ebf7ccb381f3b302f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__pycache__/_aliases.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__pycache__/linalg.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__pycache__/linalg.cpython-310.pyc
deleted file mode 100644
index ded84bcb22c2e36278ee51c9103a1d97f47dd302..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/__pycache__/linalg.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/_aliases.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/_aliases.py
deleted file mode 100644
index 94d938a40ab877fd1f039d906f5f771e0320a248..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/_aliases.py
+++ /dev/null
@@ -1,146 +0,0 @@
-from __future__ import annotations
-
-from ...common import _aliases
-from ...common._helpers import _check_device
-
-from ..._internal import get_xp
-
-import numpy as np
-from numpy import (
-    # Constants
-    e,
-    inf,
-    nan,
-    pi,
-    newaxis,
-    # Dtypes
-    bool_ as bool,
-    float32,
-    float64,
-    int8,
-    int16,
-    int32,
-    int64,
-    uint8,
-    uint16,
-    uint32,
-    uint64,
-    complex64,
-    complex128,
-    iinfo,
-    finfo,
-    can_cast,
-    result_type,
-)
-
-from typing import TYPE_CHECKING
-if TYPE_CHECKING:
-    from typing import Optional, Union
-
-    from ...common._typing import Device, Dtype, Array
-
-import dask.array as da
-
-isdtype = get_xp(np)(_aliases.isdtype)
-astype = _aliases.astype
-
-# Common aliases
-
-# This arange func is modified from the common one to
-# not pass stop/step as keyword arguments, which will cause
-# an error with dask
-
-# TODO: delete the xp stuff, it shouldn't be necessary
-def _dask_arange(
-    start: Union[int, float],
-    /,
-    stop: Optional[Union[int, float]] = None,
-    step: Union[int, float] = 1,
-    *,
-    xp,
-    dtype: Optional[Dtype] = None,
-    device: Optional[Device] = None,
-    **kwargs,
-) -> Array:
-    _check_device(xp, device)
-    args = [start]
-    if stop is not None:
-        args.append(stop)
-    else:
-        # stop is None, so start is actually stop
-        # prepend the default value for start which is 0
-        args.insert(0, 0)
-    args.append(step)
-    return xp.arange(*args, dtype=dtype, **kwargs)
-
-arange = get_xp(da)(_dask_arange)
-eye = get_xp(da)(_aliases.eye)
-
-from functools import partial
-asarray = partial(_aliases._asarray, namespace='dask.array')
-asarray.__doc__ = _aliases._asarray.__doc__
-
-linspace = get_xp(da)(_aliases.linspace)
-eye = get_xp(da)(_aliases.eye)
-UniqueAllResult = get_xp(da)(_aliases.UniqueAllResult)
-UniqueCountsResult = get_xp(da)(_aliases.UniqueCountsResult)
-UniqueInverseResult = get_xp(da)(_aliases.UniqueInverseResult)
-unique_all = get_xp(da)(_aliases.unique_all)
-unique_counts = get_xp(da)(_aliases.unique_counts)
-unique_inverse = get_xp(da)(_aliases.unique_inverse)
-unique_values = get_xp(da)(_aliases.unique_values)
-permute_dims = get_xp(da)(_aliases.permute_dims)
-std = get_xp(da)(_aliases.std)
-var = get_xp(da)(_aliases.var)
-empty = get_xp(da)(_aliases.empty)
-empty_like = get_xp(da)(_aliases.empty_like)
-full = get_xp(da)(_aliases.full)
-full_like = get_xp(da)(_aliases.full_like)
-ones = get_xp(da)(_aliases.ones)
-ones_like = get_xp(da)(_aliases.ones_like)
-zeros = get_xp(da)(_aliases.zeros)
-zeros_like = get_xp(da)(_aliases.zeros_like)
-reshape = get_xp(da)(_aliases.reshape)
-matrix_transpose = get_xp(da)(_aliases.matrix_transpose)
-vecdot = get_xp(da)(_aliases.vecdot)
-
-nonzero = get_xp(da)(_aliases.nonzero)
-sum = get_xp(np)(_aliases.sum)
-prod = get_xp(np)(_aliases.prod)
-ceil = get_xp(np)(_aliases.ceil)
-floor = get_xp(np)(_aliases.floor)
-trunc = get_xp(np)(_aliases.trunc)
-matmul = get_xp(np)(_aliases.matmul)
-tensordot = get_xp(np)(_aliases.tensordot)
-
-from dask.array import (
-    # Element wise aliases
-    arccos as acos,
-    arccosh as acosh,
-    arcsin as asin,
-    arcsinh as asinh,
-    arctan as atan,
-    arctan2 as atan2,
-    arctanh as atanh,
-    left_shift as bitwise_left_shift,
-    right_shift as bitwise_right_shift,
-    invert as bitwise_invert,
-    power as pow,
-    # Other
-    concatenate as concat,
-)
-
-# exclude these from all since
-_da_unsupported = ['sort', 'argsort']
-
-common_aliases = [alias for alias in _aliases.__all__ if alias not in _da_unsupported]
-
-__all__ = common_aliases + ['asarray', 'bool', 'acos',
-                            'acosh', 'asin', 'asinh', 'atan', 'atan2',
-                            'atanh', 'bitwise_left_shift', 'bitwise_invert',
-                            'bitwise_right_shift', 'concat', 'pow',
-                            'e', 'inf', 'nan', 'pi', 'newaxis', 'float32', 'float64', 'int8',
-                            'int16', 'int32', 'int64', 'uint8', 'uint16', 'uint32', 'uint64',
-                            'complex64', 'complex128', 'iinfo', 'finfo', 'can_cast', 'result_type']
-
-_all_ignore = ['get_xp', 'da', 'partial', 'common_aliases', 'np']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/linalg.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/linalg.py
deleted file mode 100644
index 7f5b2c6e2840e8a0bc95c4daa6e7231ae5b9053a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/dask/array/linalg.py
+++ /dev/null
@@ -1,72 +0,0 @@
-from __future__ import annotations
-
-from ...common import _linalg
-from ..._internal import get_xp
-
-# Exports
-from dask.array.linalg import * # noqa: F403
-from dask.array import trace, outer
-
-# These functions are in both the main and linalg namespaces
-from dask.array import matmul, tensordot
-from ._aliases import matrix_transpose, vecdot
-
-import dask.array as da
-
-from typing import TYPE_CHECKING
-if TYPE_CHECKING:
-    from ...common._typing import Array
-    from typing import Literal
-
-# dask.array.linalg doesn't have __all__. If it is added, replace this with
-#
-# from dask.array.linalg import __all__ as linalg_all
-_n = {}
-exec('from dask.array.linalg import *', _n)
-del _n['__builtins__']
-if 'annotations' in _n:
-    del _n['annotations']
-linalg_all = list(_n)
-del _n
-
-EighResult = _linalg.EighResult
-QRResult = _linalg.QRResult
-SlogdetResult = _linalg.SlogdetResult
-SVDResult = _linalg.SVDResult
-# TODO: use the QR wrapper once dask
-# supports the mode keyword on QR
-# https://github.com/dask/dask/issues/10388
-#qr = get_xp(da)(_linalg.qr)
-def qr(x: Array, mode: Literal['reduced', 'complete'] = 'reduced',
-       **kwargs) -> QRResult:
-    if mode != "reduced":
-        raise ValueError("dask arrays only support using mode='reduced'")
-    return QRResult(*da.linalg.qr(x, **kwargs))
-cholesky = get_xp(da)(_linalg.cholesky)
-matrix_rank = get_xp(da)(_linalg.matrix_rank)
-matrix_norm = get_xp(da)(_linalg.matrix_norm)
-
-
-# Wrap the svd functions to not pass full_matrices to dask
-# when full_matrices=False (as that is the default behavior for dask),
-# and dask doesn't have the full_matrices keyword
-def svd(x: Array, full_matrices: bool = True, **kwargs) -> SVDResult:
-    if full_matrices:
-        raise ValueError("full_matrics=True is not supported by dask.")
-    return da.linalg.svd(x, coerce_signs=False, **kwargs)
-
-def svdvals(x: Array) -> Array:
-    # TODO: can't avoid computing U or V for dask
-    _, s, _ =  svd(x)
-    return s
-
-vector_norm = get_xp(da)(_linalg.vector_norm)
-diagonal = get_xp(da)(_linalg.diagonal)
-
-__all__ = linalg_all + ["trace", "outer", "matmul", "tensordot",
-                        "matrix_transpose", "vecdot", "EighResult",
-                        "QRResult", "SlogdetResult", "SVDResult", "qr",
-                        "cholesky", "matrix_rank", "matrix_norm", "svdvals",
-                        "vector_norm", "diagonal"]
-
-_all_ignore = ['get_xp', 'da', 'linalg_all']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__init__.py
deleted file mode 100644
index 879087094cb3894566a8c9be9d322e415df72ce6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__init__.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from numpy import * # noqa: F403
-
-# from numpy import * doesn't overwrite these builtin names
-from numpy import abs, max, min, round # noqa: F401
-
-# These imports may overwrite names from the import * above.
-from ._aliases import * # noqa: F403
-
-# Don't know why, but we have to do an absolute import to import linalg. If we
-# instead do
-#
-# from . import linalg
-#
-# It doesn't overwrite np.linalg from above. The import is generated
-# dynamically so that the library can be vendored.
-__import__(__package__ + '.linalg')
-
-__import__(__package__ + '.fft')
-
-from .linalg import matrix_transpose, vecdot # noqa: F401
-
-from ..common._helpers import * # noqa: F403
-
-__array_api_version__ = '2022.12'
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 2d199ebdb787fced7a417834f31af55a48e97374..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/_aliases.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/_aliases.cpython-310.pyc
deleted file mode 100644
index 5628111395095fa682f9337acdb5bc9f0ada3a04..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/_aliases.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/_typing.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/_typing.cpython-310.pyc
deleted file mode 100644
index e5fdf0bf36c7fb158c2f90e10c9536670783825d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/_typing.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/fft.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/fft.cpython-310.pyc
deleted file mode 100644
index 37485aeea67b178b490b11c5a4fa9a07519b58b9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/fft.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/linalg.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/linalg.cpython-310.pyc
deleted file mode 100644
index b0f933f7f5d08248478a91d3488411d540f62184..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/__pycache__/linalg.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/_aliases.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/_aliases.py
deleted file mode 100644
index 1201d798864d82c77e2bb95a5e664d3f79ee59c7..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/_aliases.py
+++ /dev/null
@@ -1,81 +0,0 @@
-from __future__ import annotations
-
-from functools import partial
-
-from ..common import _aliases
-
-from .._internal import get_xp
-
-asarray = asarray_numpy = partial(_aliases._asarray, namespace='numpy')
-asarray.__doc__ = _aliases._asarray.__doc__
-del partial
-
-import numpy as np
-bool = np.bool_
-
-# Basic renames
-acos = np.arccos
-acosh = np.arccosh
-asin = np.arcsin
-asinh = np.arcsinh
-atan = np.arctan
-atan2 = np.arctan2
-atanh = np.arctanh
-bitwise_left_shift = np.left_shift
-bitwise_invert = np.invert
-bitwise_right_shift = np.right_shift
-concat = np.concatenate
-pow = np.power
-
-arange = get_xp(np)(_aliases.arange)
-empty = get_xp(np)(_aliases.empty)
-empty_like = get_xp(np)(_aliases.empty_like)
-eye = get_xp(np)(_aliases.eye)
-full = get_xp(np)(_aliases.full)
-full_like = get_xp(np)(_aliases.full_like)
-linspace = get_xp(np)(_aliases.linspace)
-ones = get_xp(np)(_aliases.ones)
-ones_like = get_xp(np)(_aliases.ones_like)
-zeros = get_xp(np)(_aliases.zeros)
-zeros_like = get_xp(np)(_aliases.zeros_like)
-UniqueAllResult = get_xp(np)(_aliases.UniqueAllResult)
-UniqueCountsResult = get_xp(np)(_aliases.UniqueCountsResult)
-UniqueInverseResult = get_xp(np)(_aliases.UniqueInverseResult)
-unique_all = get_xp(np)(_aliases.unique_all)
-unique_counts = get_xp(np)(_aliases.unique_counts)
-unique_inverse = get_xp(np)(_aliases.unique_inverse)
-unique_values = get_xp(np)(_aliases.unique_values)
-astype = _aliases.astype
-std = get_xp(np)(_aliases.std)
-var = get_xp(np)(_aliases.var)
-permute_dims = get_xp(np)(_aliases.permute_dims)
-reshape = get_xp(np)(_aliases.reshape)
-argsort = get_xp(np)(_aliases.argsort)
-sort = get_xp(np)(_aliases.sort)
-nonzero = get_xp(np)(_aliases.nonzero)
-sum = get_xp(np)(_aliases.sum)
-prod = get_xp(np)(_aliases.prod)
-ceil = get_xp(np)(_aliases.ceil)
-floor = get_xp(np)(_aliases.floor)
-trunc = get_xp(np)(_aliases.trunc)
-matmul = get_xp(np)(_aliases.matmul)
-matrix_transpose = get_xp(np)(_aliases.matrix_transpose)
-tensordot = get_xp(np)(_aliases.tensordot)
-
-# These functions are completely new here. If the library already has them
-# (i.e., numpy 2.0), use the library version instead of our wrapper.
-if hasattr(np, 'vecdot'):
-    vecdot = np.vecdot
-else:
-    vecdot = get_xp(np)(_aliases.vecdot)
-if hasattr(np, 'isdtype'):
-    isdtype = np.isdtype
-else:
-    isdtype = get_xp(np)(_aliases.isdtype)
-
-__all__ = _aliases.__all__ + ['asarray', 'asarray_numpy', 'bool', 'acos',
-                              'acosh', 'asin', 'asinh', 'atan', 'atan2',
-                              'atanh', 'bitwise_left_shift', 'bitwise_invert',
-                              'bitwise_right_shift', 'concat', 'pow']
-
-_all_ignore = ['np', 'get_xp']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/_typing.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/_typing.py
deleted file mode 100644
index c5ebb5abb987572be625ee864a37e61126d36d8b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/_typing.py
+++ /dev/null
@@ -1,46 +0,0 @@
-from __future__ import annotations
-
-__all__ = [
-    "ndarray",
-    "Device",
-    "Dtype",
-]
-
-import sys
-from typing import (
-    Literal,
-    Union,
-    TYPE_CHECKING,
-)
-
-from numpy import (
-    ndarray,
-    dtype,
-    int8,
-    int16,
-    int32,
-    int64,
-    uint8,
-    uint16,
-    uint32,
-    uint64,
-    float32,
-    float64,
-)
-
-Device = Literal["cpu"]
-if TYPE_CHECKING or sys.version_info >= (3, 9):
-    Dtype = dtype[Union[
-        int8,
-        int16,
-        int32,
-        int64,
-        uint8,
-        uint16,
-        uint32,
-        uint64,
-        float32,
-        float64,
-    ]]
-else:
-    Dtype = dtype
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/fft.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/fft.py
deleted file mode 100644
index 286675946e0fbb0aa18105d25db08ebbbd2e4d0c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/fft.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from numpy.fft import * # noqa: F403
-from numpy.fft import __all__ as fft_all
-
-from ..common import _fft
-from .._internal import get_xp
-
-import numpy as np
-
-fft = get_xp(np)(_fft.fft)
-ifft = get_xp(np)(_fft.ifft)
-fftn = get_xp(np)(_fft.fftn)
-ifftn = get_xp(np)(_fft.ifftn)
-rfft = get_xp(np)(_fft.rfft)
-irfft = get_xp(np)(_fft.irfft)
-rfftn = get_xp(np)(_fft.rfftn)
-irfftn = get_xp(np)(_fft.irfftn)
-hfft = get_xp(np)(_fft.hfft)
-ihfft = get_xp(np)(_fft.ihfft)
-fftfreq = get_xp(np)(_fft.fftfreq)
-rfftfreq = get_xp(np)(_fft.rfftfreq)
-fftshift = get_xp(np)(_fft.fftshift)
-ifftshift = get_xp(np)(_fft.ifftshift)
-
-__all__ = fft_all + _fft.__all__
-
-del get_xp
-del np
-del fft_all
-del _fft
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/linalg.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/linalg.py
deleted file mode 100644
index 8f01593bd0ae619b3bea471980b4eeabfc29f319..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/numpy/linalg.py
+++ /dev/null
@@ -1,90 +0,0 @@
-from numpy.linalg import * # noqa: F403
-from numpy.linalg import __all__ as linalg_all
-import numpy as _np
-
-from ..common import _linalg
-from .._internal import get_xp
-
-# These functions are in both the main and linalg namespaces
-from ._aliases import matmul, matrix_transpose, tensordot, vecdot # noqa: F401
-
-import numpy as np
-
-cross = get_xp(np)(_linalg.cross)
-outer = get_xp(np)(_linalg.outer)
-EighResult = _linalg.EighResult
-QRResult = _linalg.QRResult
-SlogdetResult = _linalg.SlogdetResult
-SVDResult = _linalg.SVDResult
-eigh = get_xp(np)(_linalg.eigh)
-qr = get_xp(np)(_linalg.qr)
-slogdet = get_xp(np)(_linalg.slogdet)
-svd = get_xp(np)(_linalg.svd)
-cholesky = get_xp(np)(_linalg.cholesky)
-matrix_rank = get_xp(np)(_linalg.matrix_rank)
-pinv = get_xp(np)(_linalg.pinv)
-matrix_norm = get_xp(np)(_linalg.matrix_norm)
-svdvals = get_xp(np)(_linalg.svdvals)
-diagonal = get_xp(np)(_linalg.diagonal)
-trace = get_xp(np)(_linalg.trace)
-
-# Note: unlike np.linalg.solve, the array API solve() only accepts x2 as a
-# vector when it is exactly 1-dimensional. All other cases treat x2 as a stack
-# of matrices. The np.linalg.solve behavior of allowing stacks of both
-# matrices and vectors is ambiguous c.f.
-# https://github.com/numpy/numpy/issues/15349 and
-# https://github.com/data-apis/array-api/issues/285.
-
-# To workaround this, the below is the code from np.linalg.solve except
-# only calling solve1 in the exactly 1D case.
-
-# This code is here instead of in common because it is numpy specific. Also
-# note that CuPy's solve() does not currently support broadcasting (see
-# https://github.com/cupy/cupy/blob/main/cupy/cublas.py#L43).
-def solve(x1: _np.ndarray, x2: _np.ndarray, /) -> _np.ndarray:
-    try:
-        from numpy.linalg._linalg import (
-        _makearray, _assert_stacked_2d, _assert_stacked_square,
-        _commonType, isComplexType, _raise_linalgerror_singular
-        )
-    except ImportError:
-        from numpy.linalg.linalg import (
-        _makearray, _assert_stacked_2d, _assert_stacked_square,
-        _commonType, isComplexType, _raise_linalgerror_singular
-        )
-    from numpy.linalg import _umath_linalg
-
-    x1, _ = _makearray(x1)
-    _assert_stacked_2d(x1)
-    _assert_stacked_square(x1)
-    x2, wrap = _makearray(x2)
-    t, result_t = _commonType(x1, x2)
-
-    # This part is different from np.linalg.solve
-    if x2.ndim == 1:
-        gufunc = _umath_linalg.solve1
-    else:
-        gufunc = _umath_linalg.solve
-
-    # This does nothing currently but is left in because it will be relevant
-    # when complex dtype support is added to the spec in 2022.
-    signature = 'DD->D' if isComplexType(t) else 'dd->d'
-    with _np.errstate(call=_raise_linalgerror_singular, invalid='call',
-                      over='ignore', divide='ignore', under='ignore'):
-        r = gufunc(x1, x2, signature=signature)
-
-    return wrap(r.astype(result_t, copy=False))
-
-# These functions are completely new here. If the library already has them
-# (i.e., numpy 2.0), use the library version instead of our wrapper.
-if hasattr(np.linalg, 'vector_norm'):
-    vector_norm = np.linalg.vector_norm
-else:
-    vector_norm = get_xp(np)(_linalg.vector_norm)
-
-__all__ = linalg_all + _linalg.__all__ + ['solve']
-
-del get_xp
-del np
-del linalg_all
-del _linalg
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__init__.py
deleted file mode 100644
index 172f52792c231f6ce90145fa0dff7a687dd57089..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__init__.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from torch import * # noqa: F403
-
-# Several names are not included in the above import *
-import torch
-for n in dir(torch):
-    if (n.startswith('_')
-        or n.endswith('_')
-        or 'cuda' in n
-        or 'cpu' in n
-        or 'backward' in n):
-        continue
-    exec(n + ' = torch.' + n)
-
-# These imports may overwrite names from the import * above.
-from ._aliases import * # noqa: F403
-
-# See the comment in the numpy __init__.py
-__import__(__package__ + '.linalg')
-
-__import__(__package__ + '.fft')
-
-from ..common._helpers import * # noqa: F403
-
-__array_api_version__ = '2022.12'
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 7f2c839a0f91fab0be4d629a272e756d84952be9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/_aliases.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/_aliases.cpython-310.pyc
deleted file mode 100644
index b42e6e86d1cb6151bc02efac9af5965451c2a44a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/_aliases.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/fft.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/fft.cpython-310.pyc
deleted file mode 100644
index 019ad6215918fb4bb7ffb80b44b3fb6c1d840495..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/fft.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/linalg.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/linalg.cpython-310.pyc
deleted file mode 100644
index 1db071599799e16dd18a9c84d55ed7237554fb86..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/__pycache__/linalg.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/_aliases.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/_aliases.py
deleted file mode 100644
index fb53e0eeb072bda5d6fdc806442c4ed5437895b8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/_aliases.py
+++ /dev/null
@@ -1,718 +0,0 @@
-from __future__ import annotations
-
-from functools import wraps as _wraps
-from builtins import all as _builtin_all, any as _builtin_any
-
-from ..common._aliases import (matrix_transpose as _aliases_matrix_transpose,
-                               vecdot as _aliases_vecdot)
-from .._internal import get_xp
-
-import torch
-
-from typing import TYPE_CHECKING
-if TYPE_CHECKING:
-    from typing import List, Optional, Sequence, Tuple, Union
-    from ..common._typing import Device
-    from torch import dtype as Dtype
-
-    array = torch.Tensor
-
-_int_dtypes = {
-    torch.uint8,
-    torch.int8,
-    torch.int16,
-    torch.int32,
-    torch.int64,
-}
-
-_array_api_dtypes = {
-    torch.bool,
-    *_int_dtypes,
-    torch.float32,
-    torch.float64,
-    torch.complex64,
-    torch.complex128,
-}
-
-_promotion_table  = {
-    # bool
-    (torch.bool, torch.bool): torch.bool,
-    # ints
-    (torch.int8, torch.int8): torch.int8,
-    (torch.int8, torch.int16): torch.int16,
-    (torch.int8, torch.int32): torch.int32,
-    (torch.int8, torch.int64): torch.int64,
-    (torch.int16, torch.int8): torch.int16,
-    (torch.int16, torch.int16): torch.int16,
-    (torch.int16, torch.int32): torch.int32,
-    (torch.int16, torch.int64): torch.int64,
-    (torch.int32, torch.int8): torch.int32,
-    (torch.int32, torch.int16): torch.int32,
-    (torch.int32, torch.int32): torch.int32,
-    (torch.int32, torch.int64): torch.int64,
-    (torch.int64, torch.int8): torch.int64,
-    (torch.int64, torch.int16): torch.int64,
-    (torch.int64, torch.int32): torch.int64,
-    (torch.int64, torch.int64): torch.int64,
-    # uints
-    (torch.uint8, torch.uint8): torch.uint8,
-    # ints and uints (mixed sign)
-    (torch.int8, torch.uint8): torch.int16,
-    (torch.int16, torch.uint8): torch.int16,
-    (torch.int32, torch.uint8): torch.int32,
-    (torch.int64, torch.uint8): torch.int64,
-    (torch.uint8, torch.int8): torch.int16,
-    (torch.uint8, torch.int16): torch.int16,
-    (torch.uint8, torch.int32): torch.int32,
-    (torch.uint8, torch.int64): torch.int64,
-    # floats
-    (torch.float32, torch.float32): torch.float32,
-    (torch.float32, torch.float64): torch.float64,
-    (torch.float64, torch.float32): torch.float64,
-    (torch.float64, torch.float64): torch.float64,
-    # complexes
-    (torch.complex64, torch.complex64): torch.complex64,
-    (torch.complex64, torch.complex128): torch.complex128,
-    (torch.complex128, torch.complex64): torch.complex128,
-    (torch.complex128, torch.complex128): torch.complex128,
-    # Mixed float and complex
-    (torch.float32, torch.complex64): torch.complex64,
-    (torch.float32, torch.complex128): torch.complex128,
-    (torch.float64, torch.complex64): torch.complex128,
-    (torch.float64, torch.complex128): torch.complex128,
-}
-
-
-def _two_arg(f):
-    @_wraps(f)
-    def _f(x1, x2, /, **kwargs):
-        x1, x2 = _fix_promotion(x1, x2)
-        return f(x1, x2, **kwargs)
-    if _f.__doc__ is None:
-        _f.__doc__ = f"""\
-Array API compatibility wrapper for torch.{f.__name__}.
-
-See the corresponding PyTorch documentation and/or the array API specification
-for more details.
-
-"""
-    return _f
-
-def _fix_promotion(x1, x2, only_scalar=True):
-    if not isinstance(x1, torch.Tensor) or not isinstance(x2, torch.Tensor):
-        return x1, x2
-    if x1.dtype not in _array_api_dtypes or x2.dtype not in _array_api_dtypes:
-        return x1, x2
-    # If an argument is 0-D pytorch downcasts the other argument
-    if not only_scalar or x1.shape == ():
-        dtype = result_type(x1, x2)
-        x2 = x2.to(dtype)
-    if not only_scalar or x2.shape == ():
-        dtype = result_type(x1, x2)
-        x1 = x1.to(dtype)
-    return x1, x2
-
-def result_type(*arrays_and_dtypes: Union[array, Dtype]) -> Dtype:
-    if len(arrays_and_dtypes) == 0:
-        raise TypeError("At least one array or dtype must be provided")
-    if len(arrays_and_dtypes) == 1:
-        x = arrays_and_dtypes[0]
-        if isinstance(x, torch.dtype):
-            return x
-        return x.dtype
-    if len(arrays_and_dtypes) > 2:
-        return result_type(arrays_and_dtypes[0], result_type(*arrays_and_dtypes[1:]))
-
-    x, y = arrays_and_dtypes
-    xdt = x.dtype if not isinstance(x, torch.dtype) else x
-    ydt = y.dtype if not isinstance(y, torch.dtype) else y
-
-    if (xdt, ydt) in _promotion_table:
-        return _promotion_table[xdt, ydt]
-
-    # This doesn't result_type(dtype, dtype) for non-array API dtypes
-    # because torch.result_type only accepts tensors. This does however, allow
-    # cross-kind promotion.
-    x = torch.tensor([], dtype=x) if isinstance(x, torch.dtype) else x
-    y = torch.tensor([], dtype=y) if isinstance(y, torch.dtype) else y
-    return torch.result_type(x, y)
-
-def can_cast(from_: Union[Dtype, array], to: Dtype, /) -> bool:
-    if not isinstance(from_, torch.dtype):
-        from_ = from_.dtype
-    return torch.can_cast(from_, to)
-
-# Basic renames
-bitwise_invert = torch.bitwise_not
-newaxis = None
-
-# Two-arg elementwise functions
-# These require a wrapper to do the correct type promotion on 0-D tensors
-add = _two_arg(torch.add)
-atan2 = _two_arg(torch.atan2)
-bitwise_and = _two_arg(torch.bitwise_and)
-bitwise_left_shift = _two_arg(torch.bitwise_left_shift)
-bitwise_or = _two_arg(torch.bitwise_or)
-bitwise_right_shift = _two_arg(torch.bitwise_right_shift)
-bitwise_xor = _two_arg(torch.bitwise_xor)
-divide = _two_arg(torch.divide)
-# Also a rename. torch.equal does not broadcast
-equal = _two_arg(torch.eq)
-floor_divide = _two_arg(torch.floor_divide)
-greater = _two_arg(torch.greater)
-greater_equal = _two_arg(torch.greater_equal)
-less = _two_arg(torch.less)
-less_equal = _two_arg(torch.less_equal)
-logaddexp = _two_arg(torch.logaddexp)
-# logical functions are not included here because they only accept bool in the
-# spec, so type promotion is irrelevant.
-multiply = _two_arg(torch.multiply)
-not_equal = _two_arg(torch.not_equal)
-pow = _two_arg(torch.pow)
-remainder = _two_arg(torch.remainder)
-subtract = _two_arg(torch.subtract)
-
-# These wrappers are mostly based on the fact that pytorch uses 'dim' instead
-# of 'axis'.
-
-# torch.min and torch.max return a tuple and don't support multiple axes https://github.com/pytorch/pytorch/issues/58745
-def max(x: array, /, *, axis: Optional[Union[int, Tuple[int, ...]]] = None, keepdims: bool = False) -> array:
-    # https://github.com/pytorch/pytorch/issues/29137
-    if axis == ():
-        return torch.clone(x)
-    return torch.amax(x, axis, keepdims=keepdims)
-
-def min(x: array, /, *, axis: Optional[Union[int, Tuple[int, ...]]] = None, keepdims: bool = False) -> array:
-    # https://github.com/pytorch/pytorch/issues/29137
-    if axis == ():
-        return torch.clone(x)
-    return torch.amin(x, axis, keepdims=keepdims)
-
-# torch.sort also returns a tuple
-# https://github.com/pytorch/pytorch/issues/70921
-def sort(x: array, /, *, axis: int = -1, descending: bool = False, stable: bool = True, **kwargs) -> array:
-    return torch.sort(x, dim=axis, descending=descending, stable=stable, **kwargs).values
-
-def _normalize_axes(axis, ndim):
-    axes = []
-    if ndim == 0 and axis:
-        # Better error message in this case
-        raise IndexError(f"Dimension out of range: {axis[0]}")
-    lower, upper = -ndim, ndim - 1
-    for a in axis:
-        if a < lower or a > upper:
-            # Match torch error message (e.g., from sum())
-            raise IndexError(f"Dimension out of range (expected to be in range of [{lower}, {upper}], but got {a}")
-        if a < 0:
-            a = a + ndim
-        if a in axes:
-            # Use IndexError instead of RuntimeError, and "axis" instead of "dim"
-            raise IndexError(f"Axis {a} appears multiple times in the list of axes")
-        axes.append(a)
-    return sorted(axes)
-
-def _axis_none_keepdims(x, ndim, keepdims):
-    # Apply keepdims when axis=None
-    # (https://github.com/pytorch/pytorch/issues/71209)
-    # Note that this is only valid for the axis=None case.
-    if keepdims:
-        for i in range(ndim):
-            x = torch.unsqueeze(x, 0)
-    return x
-
-def _reduce_multiple_axes(f, x, axis, keepdims=False, **kwargs):
-    # Some reductions don't support multiple axes
-    # (https://github.com/pytorch/pytorch/issues/56586).
-    axes = _normalize_axes(axis, x.ndim)
-    for a in reversed(axes):
-        x = torch.movedim(x, a, -1)
-    x = torch.flatten(x, -len(axes))
-
-    out = f(x, -1, **kwargs)
-
-    if keepdims:
-        for a in axes:
-            out = torch.unsqueeze(out, a)
-    return out
-
-def prod(x: array,
-         /,
-         *,
-         axis: Optional[Union[int, Tuple[int, ...]]] = None,
-         dtype: Optional[Dtype] = None,
-         keepdims: bool = False,
-         **kwargs) -> array:
-    x = torch.asarray(x)
-    ndim = x.ndim
-
-    # https://github.com/pytorch/pytorch/issues/29137. Separate from the logic
-    # below because it still needs to upcast.
-    if axis == ():
-        if dtype is None:
-            # We can't upcast uint8 according to the spec because there is no
-            # torch.uint64, so at least upcast to int64 which is what sum does
-            # when axis=None.
-            if x.dtype in [torch.int8, torch.int16, torch.int32, torch.uint8]:
-                return x.to(torch.int64)
-            return x.clone()
-        return x.to(dtype)
-
-    # torch.prod doesn't support multiple axes
-    # (https://github.com/pytorch/pytorch/issues/56586).
-    if isinstance(axis, tuple):
-        return _reduce_multiple_axes(torch.prod, x, axis, keepdims=keepdims, dtype=dtype, **kwargs)
-    if axis is None:
-        # torch doesn't support keepdims with axis=None
-        # (https://github.com/pytorch/pytorch/issues/71209)
-        res = torch.prod(x, dtype=dtype, **kwargs)
-        res = _axis_none_keepdims(res, ndim, keepdims)
-        return res
-
-    return torch.prod(x, axis, dtype=dtype, keepdims=keepdims, **kwargs)
-
-
-def sum(x: array,
-         /,
-         *,
-         axis: Optional[Union[int, Tuple[int, ...]]] = None,
-         dtype: Optional[Dtype] = None,
-         keepdims: bool = False,
-         **kwargs) -> array:
-    x = torch.asarray(x)
-    ndim = x.ndim
-
-    # https://github.com/pytorch/pytorch/issues/29137.
-    # Make sure it upcasts.
-    if axis == ():
-        if dtype is None:
-            # We can't upcast uint8 according to the spec because there is no
-            # torch.uint64, so at least upcast to int64 which is what sum does
-            # when axis=None.
-            if x.dtype in [torch.int8, torch.int16, torch.int32, torch.uint8]:
-                return x.to(torch.int64)
-            return x.clone()
-        return x.to(dtype)
-
-    if axis is None:
-        # torch doesn't support keepdims with axis=None
-        # (https://github.com/pytorch/pytorch/issues/71209)
-        res = torch.sum(x, dtype=dtype, **kwargs)
-        res = _axis_none_keepdims(res, ndim, keepdims)
-        return res
-
-    return torch.sum(x, axis, dtype=dtype, keepdims=keepdims, **kwargs)
-
-def any(x: array,
-        /,
-        *,
-        axis: Optional[Union[int, Tuple[int, ...]]] = None,
-        keepdims: bool = False,
-        **kwargs) -> array:
-    x = torch.asarray(x)
-    ndim = x.ndim
-    if axis == ():
-        return x.to(torch.bool)
-    # torch.any doesn't support multiple axes
-    # (https://github.com/pytorch/pytorch/issues/56586).
-    if isinstance(axis, tuple):
-        res = _reduce_multiple_axes(torch.any, x, axis, keepdims=keepdims, **kwargs)
-        return res.to(torch.bool)
-    if axis is None:
-        # torch doesn't support keepdims with axis=None
-        # (https://github.com/pytorch/pytorch/issues/71209)
-        res = torch.any(x, **kwargs)
-        res = _axis_none_keepdims(res, ndim, keepdims)
-        return res.to(torch.bool)
-
-    # torch.any doesn't return bool for uint8
-    return torch.any(x, axis, keepdims=keepdims).to(torch.bool)
-
-def all(x: array,
-        /,
-        *,
-        axis: Optional[Union[int, Tuple[int, ...]]] = None,
-        keepdims: bool = False,
-        **kwargs) -> array:
-    x = torch.asarray(x)
-    ndim = x.ndim
-    if axis == ():
-        return x.to(torch.bool)
-    # torch.all doesn't support multiple axes
-    # (https://github.com/pytorch/pytorch/issues/56586).
-    if isinstance(axis, tuple):
-        res = _reduce_multiple_axes(torch.all, x, axis, keepdims=keepdims, **kwargs)
-        return res.to(torch.bool)
-    if axis is None:
-        # torch doesn't support keepdims with axis=None
-        # (https://github.com/pytorch/pytorch/issues/71209)
-        res = torch.all(x, **kwargs)
-        res = _axis_none_keepdims(res, ndim, keepdims)
-        return res.to(torch.bool)
-
-    # torch.all doesn't return bool for uint8
-    return torch.all(x, axis, keepdims=keepdims).to(torch.bool)
-
-def mean(x: array,
-         /,
-         *,
-         axis: Optional[Union[int, Tuple[int, ...]]] = None,
-         keepdims: bool = False,
-         **kwargs) -> array:
-    # https://github.com/pytorch/pytorch/issues/29137
-    if axis == ():
-        return torch.clone(x)
-    if axis is None:
-        # torch doesn't support keepdims with axis=None
-        # (https://github.com/pytorch/pytorch/issues/71209)
-        res = torch.mean(x, **kwargs)
-        res = _axis_none_keepdims(res, x.ndim, keepdims)
-        return res
-    return torch.mean(x, axis, keepdims=keepdims, **kwargs)
-
-def std(x: array,
-        /,
-        *,
-        axis: Optional[Union[int, Tuple[int, ...]]] = None,
-        correction: Union[int, float] = 0.0,
-        keepdims: bool = False,
-        **kwargs) -> array:
-    # Note, float correction is not supported
-    # https://github.com/pytorch/pytorch/issues/61492. We don't try to
-    # implement it here for now.
-
-    if isinstance(correction, float):
-        _correction = int(correction)
-        if correction != _correction:
-            raise NotImplementedError("float correction in torch std() is not yet supported")
-    else:
-        _correction = correction
-
-    # https://github.com/pytorch/pytorch/issues/29137
-    if axis == ():
-        return torch.zeros_like(x)
-    if isinstance(axis, int):
-        axis = (axis,)
-    if axis is None:
-        # torch doesn't support keepdims with axis=None
-        # (https://github.com/pytorch/pytorch/issues/71209)
-        res = torch.std(x, tuple(range(x.ndim)), correction=_correction, **kwargs)
-        res = _axis_none_keepdims(res, x.ndim, keepdims)
-        return res
-    return torch.std(x, axis, correction=_correction, keepdims=keepdims, **kwargs)
-
-def var(x: array,
-        /,
-        *,
-        axis: Optional[Union[int, Tuple[int, ...]]] = None,
-        correction: Union[int, float] = 0.0,
-        keepdims: bool = False,
-        **kwargs) -> array:
-    # Note, float correction is not supported
-    # https://github.com/pytorch/pytorch/issues/61492. We don't try to
-    # implement it here for now.
-
-    # if isinstance(correction, float):
-    #     correction = int(correction)
-
-    # https://github.com/pytorch/pytorch/issues/29137
-    if axis == ():
-        return torch.zeros_like(x)
-    if isinstance(axis, int):
-        axis = (axis,)
-    if axis is None:
-        # torch doesn't support keepdims with axis=None
-        # (https://github.com/pytorch/pytorch/issues/71209)
-        res = torch.var(x, tuple(range(x.ndim)), correction=correction, **kwargs)
-        res = _axis_none_keepdims(res, x.ndim, keepdims)
-        return res
-    return torch.var(x, axis, correction=correction, keepdims=keepdims, **kwargs)
-
-# torch.concat doesn't support dim=None
-# https://github.com/pytorch/pytorch/issues/70925
-def concat(arrays: Union[Tuple[array, ...], List[array]],
-           /,
-           *,
-           axis: Optional[int] = 0,
-           **kwargs) -> array:
-    if axis is None:
-        arrays = tuple(ar.flatten() for ar in arrays)
-        axis = 0
-    return torch.concat(arrays, axis, **kwargs)
-
-# torch.squeeze only accepts int dim and doesn't require it
-# https://github.com/pytorch/pytorch/issues/70924. Support for tuple dim was
-# added at https://github.com/pytorch/pytorch/pull/89017.
-def squeeze(x: array, /, axis: Union[int, Tuple[int, ...]]) -> array:
-    if isinstance(axis, int):
-        axis = (axis,)
-    for a in axis:
-        if x.shape[a] != 1:
-            raise ValueError("squeezed dimensions must be equal to 1")
-    axes = _normalize_axes(axis, x.ndim)
-    # Remove this once pytorch 1.14 is released with the above PR #89017.
-    sequence = [a - i for i, a in enumerate(axes)]
-    for a in sequence:
-        x = torch.squeeze(x, a)
-    return x
-
-# torch.broadcast_to uses size instead of shape
-def broadcast_to(x: array, /, shape: Tuple[int, ...], **kwargs) -> array:
-    return torch.broadcast_to(x, shape, **kwargs)
-
-# torch.permute uses dims instead of axes
-def permute_dims(x: array, /, axes: Tuple[int, ...]) -> array:
-    return torch.permute(x, axes)
-
-# The axis parameter doesn't work for flip() and roll()
-# https://github.com/pytorch/pytorch/issues/71210. Also torch.flip() doesn't
-# accept axis=None
-def flip(x: array, /, *, axis: Optional[Union[int, Tuple[int, ...]]] = None, **kwargs) -> array:
-    if axis is None:
-        axis = tuple(range(x.ndim))
-    # torch.flip doesn't accept dim as an int but the method does
-    # https://github.com/pytorch/pytorch/issues/18095
-    return x.flip(axis, **kwargs)
-
-def roll(x: array, /, shift: Union[int, Tuple[int, ...]], *, axis: Optional[Union[int, Tuple[int, ...]]] = None, **kwargs) -> array:
-    return torch.roll(x, shift, axis, **kwargs)
-
-def nonzero(x: array, /, **kwargs) -> Tuple[array, ...]:
-    if x.ndim == 0:
-        raise ValueError("nonzero() does not support zero-dimensional arrays")
-    return torch.nonzero(x, as_tuple=True, **kwargs)
-
-def where(condition: array, x1: array, x2: array, /) -> array:
-    x1, x2 = _fix_promotion(x1, x2)
-    return torch.where(condition, x1, x2)
-
-# torch.reshape doesn't have the copy keyword
-def reshape(x: array,
-            /,
-            shape: Tuple[int, ...],
-            copy: Optional[bool] = None,
-            **kwargs) -> array:
-    if copy is not None:
-        raise NotImplementedError("torch.reshape doesn't yet support the copy keyword")
-    return torch.reshape(x, shape, **kwargs)
-
-# torch.arange doesn't support returning empty arrays
-# (https://github.com/pytorch/pytorch/issues/70915), and doesn't support some
-# keyword argument combinations
-# (https://github.com/pytorch/pytorch/issues/70914)
-def arange(start: Union[int, float],
-           /,
-           stop: Optional[Union[int, float]] = None,
-           step: Union[int, float] = 1,
-           *,
-           dtype: Optional[Dtype] = None,
-           device: Optional[Device] = None,
-           **kwargs) -> array:
-    if stop is None:
-        start, stop = 0, start
-    if step > 0 and stop <= start or step < 0 and stop >= start:
-        if dtype is None:
-            if _builtin_all(isinstance(i, int) for i in [start, stop, step]):
-                dtype = torch.int64
-            else:
-                dtype = torch.float32
-        return torch.empty(0, dtype=dtype, device=device, **kwargs)
-    return torch.arange(start, stop, step, dtype=dtype, device=device, **kwargs)
-
-# torch.eye does not accept None as a default for the second argument and
-# doesn't support off-diagonals (https://github.com/pytorch/pytorch/issues/70910)
-def eye(n_rows: int,
-        n_cols: Optional[int] = None,
-        /,
-        *,
-        k: int = 0,
-        dtype: Optional[Dtype] = None,
-        device: Optional[Device] = None,
-        **kwargs) -> array:
-    if n_cols is None:
-        n_cols = n_rows
-    z = torch.zeros(n_rows, n_cols, dtype=dtype, device=device, **kwargs)
-    if abs(k) <= n_rows + n_cols:
-        z.diagonal(k).fill_(1)
-    return z
-
-# torch.linspace doesn't have the endpoint parameter
-def linspace(start: Union[int, float],
-             stop: Union[int, float],
-             /,
-             num: int,
-             *,
-             dtype: Optional[Dtype] = None,
-             device: Optional[Device] = None,
-             endpoint: bool = True,
-             **kwargs) -> array:
-    if not endpoint:
-        return torch.linspace(start, stop, num+1, dtype=dtype, device=device, **kwargs)[:-1]
-    return torch.linspace(start, stop, num, dtype=dtype, device=device, **kwargs)
-
-# torch.full does not accept an int size
-# https://github.com/pytorch/pytorch/issues/70906
-def full(shape: Union[int, Tuple[int, ...]],
-         fill_value: Union[bool, int, float, complex],
-         *,
-         dtype: Optional[Dtype] = None,
-         device: Optional[Device] = None,
-         **kwargs) -> array:
-    if isinstance(shape, int):
-        shape = (shape,)
-
-    return torch.full(shape, fill_value, dtype=dtype, device=device, **kwargs)
-
-# ones, zeros, and empty do not accept shape as a keyword argument
-def ones(shape: Union[int, Tuple[int, ...]],
-         *,
-         dtype: Optional[Dtype] = None,
-         device: Optional[Device] = None,
-         **kwargs) -> array:
-    return torch.ones(shape, dtype=dtype, device=device, **kwargs)
-
-def zeros(shape: Union[int, Tuple[int, ...]],
-         *,
-         dtype: Optional[Dtype] = None,
-         device: Optional[Device] = None,
-         **kwargs) -> array:
-    return torch.zeros(shape, dtype=dtype, device=device, **kwargs)
-
-def empty(shape: Union[int, Tuple[int, ...]],
-         *,
-         dtype: Optional[Dtype] = None,
-         device: Optional[Device] = None,
-         **kwargs) -> array:
-    return torch.empty(shape, dtype=dtype, device=device, **kwargs)
-
-# tril and triu do not call the keyword argument k
-
-def tril(x: array, /, *, k: int = 0) -> array:
-    return torch.tril(x, k)
-
-def triu(x: array, /, *, k: int = 0) -> array:
-    return torch.triu(x, k)
-
-# Functions that aren't in torch https://github.com/pytorch/pytorch/issues/58742
-def expand_dims(x: array, /, *, axis: int = 0) -> array:
-    return torch.unsqueeze(x, axis)
-
-def astype(x: array, dtype: Dtype, /, *, copy: bool = True) -> array:
-    return x.to(dtype, copy=copy)
-
-def broadcast_arrays(*arrays: array) -> List[array]:
-    shape = torch.broadcast_shapes(*[a.shape for a in arrays])
-    return [torch.broadcast_to(a, shape) for a in arrays]
-
-# Note that these named tuples aren't actually part of the standard namespace,
-# but I don't see any issue with exporting the names here regardless.
-from ..common._aliases import (UniqueAllResult, UniqueCountsResult,
-                               UniqueInverseResult)
-
-# https://github.com/pytorch/pytorch/issues/70920
-def unique_all(x: array) -> UniqueAllResult:
-    # torch.unique doesn't support returning indices.
-    # https://github.com/pytorch/pytorch/issues/36748. The workaround
-    # suggested in that issue doesn't actually function correctly (it relies
-    # on non-deterministic behavior of scatter()).
-    raise NotImplementedError("unique_all() not yet implemented for pytorch (see https://github.com/pytorch/pytorch/issues/36748)")
-
-    # values, inverse_indices, counts = torch.unique(x, return_counts=True, return_inverse=True)
-    # # torch.unique incorrectly gives a 0 count for nan values.
-    # # https://github.com/pytorch/pytorch/issues/94106
-    # counts[torch.isnan(values)] = 1
-    # return UniqueAllResult(values, indices, inverse_indices, counts)
-
-def unique_counts(x: array) -> UniqueCountsResult:
-    values, counts = torch.unique(x, return_counts=True)
-
-    # torch.unique incorrectly gives a 0 count for nan values.
-    # https://github.com/pytorch/pytorch/issues/94106
-    counts[torch.isnan(values)] = 1
-    return UniqueCountsResult(values, counts)
-
-def unique_inverse(x: array) -> UniqueInverseResult:
-    values, inverse = torch.unique(x, return_inverse=True)
-    return UniqueInverseResult(values, inverse)
-
-def unique_values(x: array) -> array:
-    return torch.unique(x)
-
-def matmul(x1: array, x2: array, /, **kwargs) -> array:
-    # torch.matmul doesn't type promote (but differently from _fix_promotion)
-    x1, x2 = _fix_promotion(x1, x2, only_scalar=False)
-    return torch.matmul(x1, x2, **kwargs)
-
-matrix_transpose = get_xp(torch)(_aliases_matrix_transpose)
-_vecdot = get_xp(torch)(_aliases_vecdot)
-
-def vecdot(x1: array, x2: array, /, *, axis: int = -1) -> array:
-    x1, x2 = _fix_promotion(x1, x2, only_scalar=False)
-    return _vecdot(x1, x2, axis=axis)
-
-# torch.tensordot uses dims instead of axes
-def tensordot(x1: array, x2: array, /, *, axes: Union[int, Tuple[Sequence[int], Sequence[int]]] = 2, **kwargs) -> array:
-    # Note: torch.tensordot fails with integer dtypes when there is only 1
-    # element in the axis (https://github.com/pytorch/pytorch/issues/84530).
-    x1, x2 = _fix_promotion(x1, x2, only_scalar=False)
-    return torch.tensordot(x1, x2, dims=axes, **kwargs)
-
-
-def isdtype(
-    dtype: Dtype, kind: Union[Dtype, str, Tuple[Union[Dtype, str], ...]],
-    *, _tuple=True, # Disallow nested tuples
-) -> bool:
-    """
-    Returns a boolean indicating whether a provided dtype is of a specified data type ``kind``.
-
-    Note that outside of this function, this compat library does not yet fully
-    support complex numbers.
-
-    See
-    https://data-apis.org/array-api/latest/API_specification/generated/array_api.isdtype.html
-    for more details
-    """
-    if isinstance(kind, tuple) and _tuple:
-        return _builtin_any(isdtype(dtype, k, _tuple=False) for k in kind)
-    elif isinstance(kind, str):
-        if kind == 'bool':
-            return dtype == torch.bool
-        elif kind == 'signed integer':
-            return dtype in _int_dtypes and dtype.is_signed
-        elif kind == 'unsigned integer':
-            return dtype in _int_dtypes and not dtype.is_signed
-        elif kind == 'integral':
-            return dtype in _int_dtypes
-        elif kind == 'real floating':
-            return dtype.is_floating_point
-        elif kind == 'complex floating':
-            return dtype.is_complex
-        elif kind == 'numeric':
-            return isdtype(dtype, ('integral', 'real floating', 'complex floating'))
-        else:
-            raise ValueError(f"Unrecognized data type kind: {kind!r}")
-    else:
-        return dtype == kind
-
-def take(x: array, indices: array, /, *, axis: Optional[int] = None, **kwargs) -> array:
-    if axis is None:
-        if x.ndim != 1:
-            raise ValueError("axis must be specified when ndim > 1")
-        axis = 0
-    return torch.index_select(x, axis, indices, **kwargs)
-
-__all__ = ['result_type', 'can_cast', 'permute_dims', 'bitwise_invert',
-           'newaxis', 'add', 'atan2', 'bitwise_and', 'bitwise_left_shift',
-           'bitwise_or', 'bitwise_right_shift', 'bitwise_xor', 'divide',
-           'equal', 'floor_divide', 'greater', 'greater_equal', 'less',
-           'less_equal', 'logaddexp', 'multiply', 'not_equal', 'pow',
-           'remainder', 'subtract', 'max', 'min', 'sort', 'prod', 'sum',
-           'any', 'all', 'mean', 'std', 'var', 'concat', 'squeeze',
-           'broadcast_to', 'flip', 'roll', 'nonzero', 'where', 'reshape',
-           'arange', 'eye', 'linspace', 'full', 'ones', 'zeros', 'empty',
-           'tril', 'triu', 'expand_dims', 'astype', 'broadcast_arrays',
-           'UniqueAllResult', 'UniqueCountsResult', 'UniqueInverseResult',
-           'unique_all', 'unique_counts', 'unique_inverse', 'unique_values',
-           'matmul', 'matrix_transpose', 'vecdot', 'tensordot', 'isdtype',
-           'take']
-
-_all_ignore = ['torch', 'get_xp']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/fft.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/fft.py
deleted file mode 100644
index 3c9117ee57d3534e3e72329d740632c02e936200..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/fft.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from __future__ import annotations
-
-from typing import TYPE_CHECKING
-if TYPE_CHECKING:
-    import torch
-    array = torch.Tensor
-    from typing import Union, Sequence, Literal
-
-from torch.fft import * # noqa: F403
-import torch.fft
-
-# Several torch fft functions do not map axes to dim
-
-def fftn(
-    x: array,
-    /,
-    *,
-    s: Sequence[int] = None,
-    axes: Sequence[int] = None,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-    **kwargs,
-) -> array:
-    return torch.fft.fftn(x, s=s, dim=axes, norm=norm, **kwargs)
-
-def ifftn(
-    x: array,
-    /,
-    *,
-    s: Sequence[int] = None,
-    axes: Sequence[int] = None,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-    **kwargs,
-) -> array:
-    return torch.fft.ifftn(x, s=s, dim=axes, norm=norm, **kwargs)
-
-def rfftn(
-    x: array,
-    /,
-    *,
-    s: Sequence[int] = None,
-    axes: Sequence[int] = None,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-    **kwargs,
-) -> array:
-    return torch.fft.rfftn(x, s=s, dim=axes, norm=norm, **kwargs)
-
-def irfftn(
-    x: array,
-    /,
-    *,
-    s: Sequence[int] = None,
-    axes: Sequence[int] = None,
-    norm: Literal["backward", "ortho", "forward"] = "backward",
-    **kwargs,
-) -> array:
-    return torch.fft.irfftn(x, s=s, dim=axes, norm=norm, **kwargs)
-
-def fftshift(
-    x: array,
-    /,
-    *,
-    axes: Union[int, Sequence[int]] = None,
-    **kwargs,
-) -> array:
-    return torch.fft.fftshift(x, dim=axes, **kwargs)
-
-def ifftshift(
-    x: array,
-    /,
-    *,
-    axes: Union[int, Sequence[int]] = None,
-    **kwargs,
-) -> array:
-    return torch.fft.ifftshift(x, dim=axes, **kwargs)
-
-
-__all__ = torch.fft.__all__ + [
-    "fftn",
-    "ifftn",
-    "rfftn",
-    "irfftn",
-    "fftshift",
-    "ifftshift",
-]
-
-_all_ignore = ['torch']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/linalg.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/linalg.py
deleted file mode 100644
index 7e7e241521caf50564a594d84a0b4f7cd0b08c20..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/array_api_compat/torch/linalg.py
+++ /dev/null
@@ -1,89 +0,0 @@
-from __future__ import annotations
-
-from typing import TYPE_CHECKING
-if TYPE_CHECKING:
-    import torch
-    array = torch.Tensor
-    from torch import dtype as Dtype
-    from typing import Optional, Union, Tuple, Literal
-    inf = float('inf')
-
-from ._aliases import _fix_promotion, sum
-
-from torch.linalg import * # noqa: F403
-
-# torch.linalg doesn't define __all__
-# from torch.linalg import __all__ as linalg_all
-from torch import linalg as torch_linalg
-linalg_all = [i for i in dir(torch_linalg) if not i.startswith('_')]
-
-# outer is implemented in torch but aren't in the linalg namespace
-from torch import outer
-# These functions are in both the main and linalg namespaces
-from ._aliases import matmul, matrix_transpose, tensordot
-
-# Note: torch.linalg.cross does not default to axis=-1 (it defaults to the
-# first axis with size 3), see https://github.com/pytorch/pytorch/issues/58743
-
-# torch.cross also does not support broadcasting when it would add new
-# dimensions https://github.com/pytorch/pytorch/issues/39656
-def cross(x1: array, x2: array, /, *, axis: int = -1) -> array:
-    x1, x2 = _fix_promotion(x1, x2, only_scalar=False)
-    if not (-min(x1.ndim, x2.ndim) <= axis < max(x1.ndim, x2.ndim)):
-        raise ValueError(f"axis {axis} out of bounds for cross product of arrays with shapes {x1.shape} and {x2.shape}")
-    if not (x1.shape[axis] == x2.shape[axis] == 3):
-        raise ValueError(f"cross product axis must have size 3, got {x1.shape[axis]} and {x2.shape[axis]}")
-    x1, x2 = torch.broadcast_tensors(x1, x2)
-    return torch_linalg.cross(x1, x2, dim=axis)
-
-def vecdot(x1: array, x2: array, /, *, axis: int = -1, **kwargs) -> array:
-    from ._aliases import isdtype
-
-    x1, x2 = _fix_promotion(x1, x2, only_scalar=False)
-
-    # torch.linalg.vecdot incorrectly allows broadcasting along the contracted dimension
-    if x1.shape[axis] != x2.shape[axis]:
-        raise ValueError("x1 and x2 must have the same size along the given axis")
-
-    # torch.linalg.vecdot doesn't support integer dtypes
-    if isdtype(x1.dtype, 'integral') or isdtype(x2.dtype, 'integral'):
-        if kwargs:
-            raise RuntimeError("vecdot kwargs not supported for integral dtypes")
-
-        x1_ = torch.moveaxis(x1, axis, -1)
-        x2_ = torch.moveaxis(x2, axis, -1)
-        x1_, x2_ = torch.broadcast_tensors(x1_, x2_)
-
-        res = x1_[..., None, :] @ x2_[..., None]
-        return res[..., 0, 0]
-    return torch.linalg.vecdot(x1, x2, dim=axis, **kwargs)
-
-def solve(x1: array, x2: array, /, **kwargs) -> array:
-    x1, x2 = _fix_promotion(x1, x2, only_scalar=False)
-    return torch.linalg.solve(x1, x2, **kwargs)
-
-# torch.trace doesn't support the offset argument and doesn't support stacking
-def trace(x: array, /, *, offset: int = 0, dtype: Optional[Dtype] = None) -> array:
-    # Use our wrapped sum to make sure it does upcasting correctly
-    return sum(torch.diagonal(x, offset=offset, dim1=-2, dim2=-1), axis=-1, dtype=dtype)
-
-def vector_norm(
-    x: array,
-    /,
-    *,
-    axis: Optional[Union[int, Tuple[int, ...]]] = None,
-    keepdims: bool = False,
-    ord: Union[int, float, Literal[inf, -inf]] = 2,
-    **kwargs,
-) -> array:
-    # torch.vector_norm incorrectly treats axis=() the same as axis=None
-    if axis == ():
-        keepdims = True
-    return torch.linalg.vector_norm(x, ord=ord, axis=axis, keepdim=keepdims, **kwargs)
-
-__all__ = linalg_all + ['outer', 'matmul', 'matrix_transpose', 'tensordot',
-                        'cross', 'vecdot', 'solve', 'trace', 'vector_norm']
-
-_all_ignore = ['torch_linalg', 'sum']
-
-del linalg_all
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__init__.py
deleted file mode 100644
index dcc8a6a77e2ba08138ecfe9c65b3a1d5d3ba5f6b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__init__.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from .main import minimize
-from .utils import show_versions
-
-# PEP0440 compatible formatted version, see:
-# https://www.python.org/dev/peps/pep-0440/
-#
-# Final release markers:
-#   X.Y.0   # For first release after an increment in Y
-#   X.Y.Z   # For bugfix releases
-#
-# Admissible pre-release markers:
-#   X.YaN   # Alpha release
-#   X.YbN   # Beta release
-#   X.YrcN  # Release Candidate
-#
-# Dev branch marker is: 'X.Y.dev' or 'X.Y.devN' where N is an integer.
-# 'X.Y.dev0' is the canonical version of 'X.Y.dev'.
-__version__ = "1.1.1"
-
-__all__ = ["minimize", "show_versions"]
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 7dc30124451bb327b696c213da46e5e4ea7e25b4..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/framework.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/framework.cpython-310.pyc
deleted file mode 100644
index 49209f8af1fa5a712caea187fdbde4f1038ac1a9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/framework.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/main.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/main.cpython-310.pyc
deleted file mode 100644
index f7e54e2e8a38fe3c8638d752b56ec8c8465974ff..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/main.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/models.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/models.cpython-310.pyc
deleted file mode 100644
index 11c04cce80dec1eca49a7380aff4373e06ff371e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/models.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/problem.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/problem.cpython-310.pyc
deleted file mode 100644
index 87759849844eb2f67096a8ca168bdb39007559cd..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/problem.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/settings.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/settings.cpython-310.pyc
deleted file mode 100644
index aeaa1cc0e488615abe09e337ecdf8e4c8c745260..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/__pycache__/settings.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/framework.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/framework.py
deleted file mode 100644
index d5f4b3cc5b8b25d72dca03a6936587330ef8d0bf..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/framework.py
+++ /dev/null
@@ -1,1240 +0,0 @@
-import warnings
-
-import numpy as np
-from scipy.optimize import lsq_linear
-
-from .models import Models, Quadratic
-from .settings import Options, Constants
-from .subsolvers import (
-    cauchy_geometry,
-    spider_geometry,
-    normal_byrd_omojokun,
-    tangential_byrd_omojokun,
-    constrained_tangential_byrd_omojokun,
-)
-from .subsolvers.optim import qr_tangential_byrd_omojokun
-from .utils import get_arrays_tol
-
-
-TINY = np.finfo(float).tiny
-EPS = np.finfo(float).eps
-
-
-class TrustRegion:
-    """
-    Trust-region framework.
-    """
-
-    def __init__(self, pb, options, constants):
-        """
-        Initialize the trust-region framework.
-
-        Parameters
-        ----------
-        pb : `cobyqa.problem.Problem`
-            Problem to solve.
-        options : dict
-            Options of the solver.
-        constants : dict
-            Constants of the solver.
-
-        Raises
-        ------
-        `cobyqa.utils.MaxEvalError`
-            If the maximum number of evaluations is reached.
-        `cobyqa.utils.TargetSuccess`
-            If a nearly feasible point has been found with an objective
-            function value below the target.
-        `cobyqa.utils.FeasibleSuccess`
-            If a feasible point has been found for a feasibility problem.
-        `numpy.linalg.LinAlgError`
-            If the initial interpolation system is ill-defined.
-        """
-        # Initialize the models.
-        self._pb = pb
-        self._models = Models(self._pb, options)
-        self._constants = constants
-
-        # Set the initial penalty parameter.
-        self._penalty = 0.0
-
-        # Set the index of the best interpolation point.
-        self._best_index = 0
-        self.set_best_index()
-
-        # Set the initial Lagrange multipliers.
-        self._lm_linear_ub = np.zeros(self.m_linear_ub)
-        self._lm_linear_eq = np.zeros(self.m_linear_eq)
-        self._lm_nonlinear_ub = np.zeros(self.m_nonlinear_ub)
-        self._lm_nonlinear_eq = np.zeros(self.m_nonlinear_eq)
-        self.set_multipliers(self.x_best)
-
-        # Set the initial trust-region radius and the resolution.
-        self._resolution = options[Options.RHOBEG]
-        self._radius = self.resolution
-
-    @property
-    def n(self):
-        """
-        Number of variables.
-
-        Returns
-        -------
-        int
-            Number of variables.
-        """
-        return self._pb.n
-
-    @property
-    def m_linear_ub(self):
-        """
-        Number of linear inequality constraints.
-
-        Returns
-        -------
-        int
-            Number of linear inequality constraints.
-        """
-        return self._pb.m_linear_ub
-
-    @property
-    def m_linear_eq(self):
-        """
-        Number of linear equality constraints.
-
-        Returns
-        -------
-        int
-            Number of linear equality constraints.
-        """
-        return self._pb.m_linear_eq
-
-    @property
-    def m_nonlinear_ub(self):
-        """
-        Number of nonlinear inequality constraints.
-
-        Returns
-        -------
-        int
-            Number of nonlinear inequality constraints.
-        """
-        return self._pb.m_nonlinear_ub
-
-    @property
-    def m_nonlinear_eq(self):
-        """
-        Number of nonlinear equality constraints.
-
-        Returns
-        -------
-        int
-            Number of nonlinear equality constraints.
-        """
-        return self._pb.m_nonlinear_eq
-
-    @property
-    def radius(self):
-        """
-        Trust-region radius.
-
-        Returns
-        -------
-        float
-            Trust-region radius.
-        """
-        return self._radius
-
-    @radius.setter
-    def radius(self, radius):
-        """
-        Set the trust-region radius.
-
-        Parameters
-        ----------
-        radius : float
-            New trust-region radius.
-        """
-        self._radius = radius
-        if (
-            self.radius
-            <= self._constants[Constants.DECREASE_RADIUS_THRESHOLD]
-            * self.resolution
-        ):
-            self._radius = self.resolution
-
-    @property
-    def resolution(self):
-        """
-        Resolution of the trust-region framework.
-
-        The resolution is a lower bound on the trust-region radius.
-
-        Returns
-        -------
-        float
-            Resolution of the trust-region framework.
-        """
-        return self._resolution
-
-    @resolution.setter
-    def resolution(self, resolution):
-        """
-        Set the resolution of the trust-region framework.
-
-        Parameters
-        ----------
-        resolution : float
-            New resolution of the trust-region framework.
-        """
-        self._resolution = resolution
-
-    @property
-    def penalty(self):
-        """
-        Penalty parameter.
-
-        Returns
-        -------
-        float
-            Penalty parameter.
-        """
-        return self._penalty
-
-    @property
-    def models(self):
-        """
-        Models of the objective function and constraints.
-
-        Returns
-        -------
-        `cobyqa.models.Models`
-            Models of the objective function and constraints.
-        """
-        return self._models
-
-    @property
-    def best_index(self):
-        """
-        Index of the best interpolation point.
-
-        Returns
-        -------
-        int
-            Index of the best interpolation point.
-        """
-        return self._best_index
-
-    @property
-    def x_best(self):
-        """
-        Best interpolation point.
-
-        Its value is interpreted as relative to the origin, not the base point.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Best interpolation point.
-        """
-        return self.models.interpolation.point(self.best_index)
-
-    @property
-    def fun_best(self):
-        """
-        Value of the objective function at `x_best`.
-
-        Returns
-        -------
-        float
-            Value of the objective function at `x_best`.
-        """
-        return self.models.fun_val[self.best_index]
-
-    @property
-    def cub_best(self):
-        """
-        Values of the nonlinear inequality constraints at `x_best`.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (m_nonlinear_ub,)
-            Values of the nonlinear inequality constraints at `x_best`.
-        """
-        return self.models.cub_val[self.best_index, :]
-
-    @property
-    def ceq_best(self):
-        """
-        Values of the nonlinear equality constraints at `x_best`.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (m_nonlinear_eq,)
-            Values of the nonlinear equality constraints at `x_best`.
-        """
-        return self.models.ceq_val[self.best_index, :]
-
-    def lag_model(self, x):
-        """
-        Evaluate the Lagrangian model at a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which the Lagrangian model is evaluated.
-
-        Returns
-        -------
-        float
-            Value of the Lagrangian model at `x`.
-        """
-        return (
-            self.models.fun(x)
-            + self._lm_linear_ub
-            @ (self._pb.linear.a_ub @ x - self._pb.linear.b_ub)
-            + self._lm_linear_eq
-            @ (self._pb.linear.a_eq @ x - self._pb.linear.b_eq)
-            + self._lm_nonlinear_ub @ self.models.cub(x)
-            + self._lm_nonlinear_eq @ self.models.ceq(x)
-        )
-
-    def lag_model_grad(self, x):
-        """
-        Evaluate the gradient of the Lagrangian model at a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which the gradient of the Lagrangian model is evaluated.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Gradient of the Lagrangian model at `x`.
-        """
-        return (
-            self.models.fun_grad(x)
-            + self._lm_linear_ub @ self._pb.linear.a_ub
-            + self._lm_linear_eq @ self._pb.linear.a_eq
-            + self._lm_nonlinear_ub @ self.models.cub_grad(x)
-            + self._lm_nonlinear_eq @ self.models.ceq_grad(x)
-        )
-
-    def lag_model_hess(self):
-        """
-        Evaluate the Hessian matrix of the Lagrangian model at a given point.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n, n)
-            Hessian matrix of the Lagrangian model at `x`.
-        """
-        hess = self.models.fun_hess()
-        if self.m_nonlinear_ub > 0:
-            hess += self._lm_nonlinear_ub @ self.models.cub_hess()
-        if self.m_nonlinear_eq > 0:
-            hess += self._lm_nonlinear_eq @ self.models.ceq_hess()
-        return hess
-
-    def lag_model_hess_prod(self, v):
-        """
-        Evaluate the right product of the Hessian matrix of the Lagrangian
-        model with a given vector.
-
-        Parameters
-        ----------
-        v : `numpy.ndarray`, shape (n,)
-            Vector with which the Hessian matrix of the Lagrangian model is
-            multiplied from the right.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Right product of the Hessian matrix of the Lagrangian model with
-            `v`.
-        """
-        return (
-            self.models.fun_hess_prod(v)
-            + self._lm_nonlinear_ub @ self.models.cub_hess_prod(v)
-            + self._lm_nonlinear_eq @ self.models.ceq_hess_prod(v)
-        )
-
-    def lag_model_curv(self, v):
-        """
-        Evaluate the curvature of the Lagrangian model along a given direction.
-
-        Parameters
-        ----------
-        v : `numpy.ndarray`, shape (n,)
-            Direction along which the curvature of the Lagrangian model is
-            evaluated.
-
-        Returns
-        -------
-        float
-            Curvature of the Lagrangian model along `v`.
-        """
-        return (
-            self.models.fun_curv(v)
-            + self._lm_nonlinear_ub @ self.models.cub_curv(v)
-            + self._lm_nonlinear_eq @ self.models.ceq_curv(v)
-        )
-
-    def sqp_fun(self, step):
-        """
-        Evaluate the objective function of the SQP subproblem.
-
-        Parameters
-        ----------
-        step : `numpy.ndarray`, shape (n,)
-            Step along which the objective function of the SQP subproblem is
-            evaluated.
-
-        Returns
-        -------
-        float
-            Value of the objective function of the SQP subproblem along `step`.
-        """
-        return step @ (
-            self.models.fun_grad(self.x_best)
-            + 0.5 * self.lag_model_hess_prod(step)
-        )
-
-    def sqp_cub(self, step):
-        """
-        Evaluate the linearization of the nonlinear inequality constraints.
-
-        Parameters
-        ----------
-        step : `numpy.ndarray`, shape (n,)
-            Step along which the linearization of the nonlinear inequality
-            constraints is evaluated.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (m_nonlinear_ub,)
-            Value of the linearization of the nonlinear inequality constraints
-            along `step`.
-        """
-        return (
-            self.models.cub(self.x_best)
-            + self.models.cub_grad(self.x_best) @ step
-        )
-
-    def sqp_ceq(self, step):
-        """
-        Evaluate the linearization of the nonlinear equality constraints.
-
-        Parameters
-        ----------
-        step : `numpy.ndarray`, shape (n,)
-            Step along which the linearization of the nonlinear equality
-            constraints is evaluated.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (m_nonlinear_ub,)
-            Value of the linearization of the nonlinear equality constraints
-            along `step`.
-        """
-        return (
-            self.models.ceq(self.x_best)
-            + self.models.ceq_grad(self.x_best) @ step
-        )
-
-    def merit(self, x, fun_val=None, cub_val=None, ceq_val=None):
-        """
-        Evaluate the merit function at a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which the merit function is evaluated.
-        fun_val : float, optional
-            Value of the objective function at `x`. If not provided, the
-            objective function is evaluated at `x`.
-        cub_val : `numpy.ndarray`, shape (m_nonlinear_ub,), optional
-            Values of the nonlinear inequality constraints. If not provided,
-            the nonlinear inequality constraints are evaluated at `x`.
-        ceq_val : `numpy.ndarray`, shape (m_nonlinear_eq,), optional
-            Values of the nonlinear equality constraints. If not provided,
-            the nonlinear equality constraints are evaluated at `x`.
-
-        Returns
-        -------
-        float
-            Value of the merit function at `x`.
-        """
-        if fun_val is None or cub_val is None or ceq_val is None:
-            fun_val, cub_val, ceq_val = self._pb(x)
-        m_val = fun_val
-        if self._penalty > 0.0:
-            c_val = self._pb.violation(x, cub_val=cub_val, ceq_val=ceq_val)
-            if np.count_nonzero(c_val):
-                m_val += self._penalty * np.linalg.norm(c_val)
-        return m_val
-
-    def get_constraint_linearizations(self, x):
-        """
-        Get the linearizations of the constraints at a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which the linearizations of the constraints are evaluated.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (m_linear_ub + m_nonlinear_ub, n)
-            Left-hand side matrix of the linearized inequality constraints.
-        `numpy.ndarray`, shape (m_linear_ub + m_nonlinear_ub,)
-            Right-hand side vector of the linearized inequality constraints.
-        `numpy.ndarray`, shape (m_linear_eq + m_nonlinear_eq, n)
-            Left-hand side matrix of the linearized equality constraints.
-        `numpy.ndarray`, shape (m_linear_eq + m_nonlinear_eq,)
-            Right-hand side vector of the linearized equality constraints.
-        """
-        aub = np.block(
-            [
-                [self._pb.linear.a_ub],
-                [self.models.cub_grad(x)],
-            ]
-        )
-        bub = np.block(
-            [
-                self._pb.linear.b_ub - self._pb.linear.a_ub @ x,
-                -self.models.cub(x),
-            ]
-        )
-        aeq = np.block(
-            [
-                [self._pb.linear.a_eq],
-                [self.models.ceq_grad(x)],
-            ]
-        )
-        beq = np.block(
-            [
-                self._pb.linear.b_eq - self._pb.linear.a_eq @ x,
-                -self.models.ceq(x),
-            ]
-        )
-        return aub, bub, aeq, beq
-
-    def get_trust_region_step(self, options):
-        """
-        Get the trust-region step.
-
-        The trust-region step is computed by solving the derivative-free
-        trust-region SQP subproblem using a Byrd-Omojokun composite-step
-        approach. For more details, see Section 5.2.3 of [1]_.
-
-        Parameters
-        ----------
-        options : dict
-            Options of the solver.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Normal step.
-        `numpy.ndarray`, shape (n,)
-            Tangential step.
-
-        References
-        ----------
-        .. [1] T. M. Ragonneau. *Model-Based Derivative-Free Optimization
-           Methods and Software*. PhD thesis, Department of Applied
-           Mathematics, The Hong Kong Polytechnic University, Hong Kong, China,
-           2022. URL: https://theses.lib.polyu.edu.hk/handle/200/12294.
-        """
-        # Evaluate the linearizations of the constraints.
-        aub, bub, aeq, beq = self.get_constraint_linearizations(self.x_best)
-        xl = self._pb.bounds.xl - self.x_best
-        xu = self._pb.bounds.xu - self.x_best
-
-        # Evaluate the normal step.
-        radius = self._constants[Constants.BYRD_OMOJOKUN_FACTOR] * self.radius
-        normal_step = normal_byrd_omojokun(
-            aub,
-            bub,
-            aeq,
-            beq,
-            xl,
-            xu,
-            radius,
-            options[Options.DEBUG],
-            **self._constants,
-        )
-        if options[Options.DEBUG]:
-            tol = get_arrays_tol(xl, xu)
-            if (np.any(normal_step + tol < xl)
-                    or np.any(xu < normal_step - tol)):
-                warnings.warn(
-                    "the normal step does not respect the bound constraint.",
-                    RuntimeWarning,
-                    2,
-                )
-            if np.linalg.norm(normal_step) > 1.1 * radius:
-                warnings.warn(
-                    "the normal step does not respect the trust-region "
-                    "constraint.",
-                    RuntimeWarning,
-                    2,
-                )
-
-        # Evaluate the tangential step.
-        radius = np.sqrt(self.radius**2.0 - normal_step @ normal_step)
-        xl -= normal_step
-        xu -= normal_step
-        bub = np.maximum(bub - aub @ normal_step, 0.0)
-        g_best = self.models.fun_grad(self.x_best) + self.lag_model_hess_prod(
-            normal_step
-        )
-        if self._pb.type in ["unconstrained", "bound-constrained"]:
-            tangential_step = tangential_byrd_omojokun(
-                g_best,
-                self.lag_model_hess_prod,
-                xl,
-                xu,
-                radius,
-                options[Options.DEBUG],
-                **self._constants,
-            )
-        else:
-            tangential_step = constrained_tangential_byrd_omojokun(
-                g_best,
-                self.lag_model_hess_prod,
-                xl,
-                xu,
-                aub,
-                bub,
-                aeq,
-                radius,
-                options["debug"],
-                **self._constants,
-            )
-        if options[Options.DEBUG]:
-            tol = get_arrays_tol(xl, xu)
-            if np.any(tangential_step + tol < xl) or np.any(
-                xu < tangential_step - tol
-            ):
-                warnings.warn(
-                    "The tangential step does not respect the bound "
-                    "constraints.",
-                    RuntimeWarning,
-                    2,
-                )
-            if (
-                np.linalg.norm(normal_step + tangential_step)
-                > 1.1 * np.sqrt(2.0) * self.radius
-            ):
-                warnings.warn(
-                    "The trial step does not respect the trust-region "
-                    "constraint.",
-                    RuntimeWarning,
-                    2,
-                )
-        return normal_step, tangential_step
-
-    def get_geometry_step(self, k_new, options):
-        """
-        Get the geometry-improving step.
-
-        Three different geometry-improving steps are computed and the best one
-        is returned. For more details, see Section 5.2.7 of [1]_.
-
-        Parameters
-        ----------
-        k_new : int
-            Index of the interpolation point to be modified.
-        options : dict
-            Options of the solver.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Geometry-improving step.
-
-        Raises
-        ------
-        `numpy.linalg.LinAlgError`
-            If the computation of a determinant fails.
-
-        References
-        ----------
-        .. [1] T. M. Ragonneau. *Model-Based Derivative-Free Optimization
-           Methods and Software*. PhD thesis, Department of Applied
-           Mathematics, The Hong Kong Polytechnic University, Hong Kong, China,
-           2022. URL: https://theses.lib.polyu.edu.hk/handle/200/12294.
-        """
-        if options[Options.DEBUG]:
-            assert (
-                k_new != self.best_index
-            ), "The index `k_new` must be different from the best index."
-
-        # Build the k_new-th Lagrange polynomial.
-        coord_vec = np.squeeze(np.eye(1, self.models.npt, k_new))
-        lag = Quadratic(
-            self.models.interpolation,
-            coord_vec,
-            options[Options.DEBUG],
-        )
-        g_lag = lag.grad(self.x_best, self.models.interpolation)
-
-        # Compute a simple constrained Cauchy step.
-        xl = self._pb.bounds.xl - self.x_best
-        xu = self._pb.bounds.xu - self.x_best
-        step = cauchy_geometry(
-            0.0,
-            g_lag,
-            lambda v: lag.curv(v, self.models.interpolation),
-            xl,
-            xu,
-            self.radius,
-            options[Options.DEBUG],
-        )
-        sigma = self.models.determinants(self.x_best + step, k_new)
-
-        # Compute the solution on the straight lines joining the interpolation
-        # points to the k-th one, and choose it if it provides a larger value
-        # of the determinant of the interpolation system in absolute value.
-        xpt = (
-            self.models.interpolation.xpt
-            - self.models.interpolation.xpt[:, self.best_index, np.newaxis]
-        )
-        xpt[:, [0, self.best_index]] = xpt[:, [self.best_index, 0]]
-        step_alt = spider_geometry(
-            0.0,
-            g_lag,
-            lambda v: lag.curv(v, self.models.interpolation),
-            xpt[:, 1:],
-            xl,
-            xu,
-            self.radius,
-            options[Options.DEBUG],
-        )
-        sigma_alt = self.models.determinants(self.x_best + step_alt, k_new)
-        if abs(sigma_alt) > abs(sigma):
-            step = step_alt
-            sigma = sigma_alt
-
-        # Compute a Cauchy step on the tangent space of the active constraints.
-        if self._pb.type in [
-            "linearly constrained",
-            "nonlinearly constrained",
-        ]:
-            aub, bub, aeq, beq = (
-                self.get_constraint_linearizations(self.x_best))
-            tol_bd = get_arrays_tol(xl, xu)
-            tol_ub = get_arrays_tol(bub)
-            free_xl = xl <= -tol_bd
-            free_xu = xu >= tol_bd
-            free_ub = bub >= tol_ub
-
-            # Compute the Cauchy step.
-            n_act, q = qr_tangential_byrd_omojokun(
-                aub,
-                aeq,
-                free_xl,
-                free_xu,
-                free_ub,
-            )
-            g_lag_proj = q[:, n_act:] @ (q[:, n_act:].T @ g_lag)
-            norm_g_lag_proj = np.linalg.norm(g_lag_proj)
-            if 0 < n_act < self._pb.n and norm_g_lag_proj > TINY * self.radius:
-                step_alt = (self.radius / norm_g_lag_proj) * g_lag_proj
-                if lag.curv(step_alt, self.models.interpolation) < 0.0:
-                    step_alt = -step_alt
-
-                # Evaluate the constraint violation at the Cauchy step.
-                cbd = np.block([xl - step_alt, step_alt - xu])
-                cub = aub @ step_alt - bub
-                ceq = aeq @ step_alt - beq
-                maxcv_val = max(
-                    np.max(array, initial=0.0)
-                    for array in [cbd, cub, np.abs(ceq)]
-                )
-
-                # Accept the new step if it is nearly feasible and do not
-                # drastically worsen the determinant of the interpolation
-                # system in absolute value.
-                tol = np.max(np.abs(step_alt[~free_xl]), initial=0.0)
-                tol = np.max(np.abs(step_alt[~free_xu]), initial=tol)
-                tol = np.max(np.abs(aub[~free_ub, :] @ step_alt), initial=tol)
-                tol = min(10.0 * tol, 1e-2 * np.linalg.norm(step_alt))
-                if maxcv_val <= tol:
-                    sigma_alt = self.models.determinants(
-                        self.x_best + step_alt, k_new
-                    )
-                    if abs(sigma_alt) >= 0.1 * abs(sigma):
-                        step = np.clip(step_alt, xl, xu)
-
-        if options[Options.DEBUG]:
-            tol = get_arrays_tol(xl, xu)
-            if np.any(step + tol < xl) or np.any(xu < step - tol):
-                warnings.warn(
-                    "The geometry step does not respect the bound "
-                    "constraints.",
-                    RuntimeWarning,
-                    2,
-                )
-            if np.linalg.norm(step) > 1.1 * self.radius:
-                warnings.warn(
-                    "The geometry step does not respect the "
-                    "trust-region constraint.",
-                    RuntimeWarning,
-                    2,
-                )
-        return step
-
-    def get_second_order_correction_step(self, step, options):
-        """
-        Get the second-order correction step.
-
-        Parameters
-        ----------
-        step : `numpy.ndarray`, shape (n,)
-            Trust-region step.
-        options : dict
-            Options of the solver.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Second-order correction step.
-        """
-        # Evaluate the linearizations of the constraints.
-        aub, bub, aeq, beq = self.get_constraint_linearizations(self.x_best)
-        xl = self._pb.bounds.xl - self.x_best
-        xu = self._pb.bounds.xu - self.x_best
-        radius = np.linalg.norm(step)
-        soc_step = normal_byrd_omojokun(
-            aub,
-            bub,
-            aeq,
-            beq,
-            xl,
-            xu,
-            radius,
-            options[Options.DEBUG],
-            **self._constants,
-        )
-        if options[Options.DEBUG]:
-            tol = get_arrays_tol(xl, xu)
-            if np.any(soc_step + tol < xl) or np.any(xu < soc_step - tol):
-                warnings.warn(
-                    "The second-order correction step does not "
-                    "respect the bound constraints.",
-                    RuntimeWarning,
-                    2,
-                )
-            if np.linalg.norm(soc_step) > 1.1 * radius:
-                warnings.warn(
-                    "The second-order correction step does not "
-                    "respect the trust-region constraint.",
-                    RuntimeWarning,
-                    2,
-                )
-        return soc_step
-
-    def get_reduction_ratio(self, step, fun_val, cub_val, ceq_val):
-        """
-        Get the reduction ratio.
-
-        Parameters
-        ----------
-        step : `numpy.ndarray`, shape (n,)
-            Trust-region step.
-        fun_val : float
-            Objective function value at the trial point.
-        cub_val : `numpy.ndarray`, shape (m_nonlinear_ub,)
-            Nonlinear inequality constraint values at the trial point.
-        ceq_val : `numpy.ndarray`, shape (m_nonlinear_eq,)
-            Nonlinear equality constraint values at the trial point.
-
-        Returns
-        -------
-        float
-            Reduction ratio.
-        """
-        merit_old = self.merit(
-            self.x_best,
-            self.fun_best,
-            self.cub_best,
-            self.ceq_best,
-        )
-        merit_new = self.merit(self.x_best + step, fun_val, cub_val, ceq_val)
-        merit_model_old = self.merit(
-            self.x_best,
-            0.0,
-            self.models.cub(self.x_best),
-            self.models.ceq(self.x_best),
-        )
-        merit_model_new = self.merit(
-            self.x_best + step,
-            self.sqp_fun(step),
-            self.sqp_cub(step),
-            self.sqp_ceq(step),
-        )
-        if abs(merit_model_old - merit_model_new) > TINY * abs(
-            merit_old - merit_new
-        ):
-            return (merit_old - merit_new) / abs(
-                merit_model_old - merit_model_new
-            )
-        else:
-            return -1.0
-
-    def increase_penalty(self, step):
-        """
-        Increase the penalty parameter.
-
-        Parameters
-        ----------
-        step : `numpy.ndarray`, shape (n,)
-            Trust-region step.
-        """
-        aub, bub, aeq, beq = self.get_constraint_linearizations(self.x_best)
-        viol_diff = max(
-            np.linalg.norm(
-                np.block(
-                    [
-                        np.maximum(0.0, -bub),
-                        beq,
-                    ]
-                )
-            )
-            - np.linalg.norm(
-                np.block(
-                    [
-                        np.maximum(0.0, aub @ step - bub),
-                        aeq @ step - beq,
-                    ]
-                )
-            ),
-            0.0,
-        )
-        sqp_val = self.sqp_fun(step)
-
-        threshold = np.linalg.norm(
-            np.block(
-                [
-                    self._lm_linear_ub,
-                    self._lm_linear_eq,
-                    self._lm_nonlinear_ub,
-                    self._lm_nonlinear_eq,
-                ]
-            )
-        )
-        if abs(viol_diff) > TINY * abs(sqp_val):
-            threshold = max(threshold, sqp_val / viol_diff)
-        best_index_save = self.best_index
-        if (
-            self._penalty
-            <= self._constants[Constants.PENALTY_INCREASE_THRESHOLD]
-                * threshold
-        ):
-            self._penalty = max(
-                self._constants[Constants.PENALTY_INCREASE_FACTOR] * threshold,
-                1.0,
-            )
-            self.set_best_index()
-        return best_index_save == self.best_index
-
-    def decrease_penalty(self):
-        """
-        Decrease the penalty parameter.
-        """
-        self._penalty = min(self._penalty, self._get_low_penalty())
-        self.set_best_index()
-
-    def set_best_index(self):
-        """
-        Set the index of the best point.
-        """
-        best_index = self.best_index
-        m_best = self.merit(
-            self.x_best,
-            self.models.fun_val[best_index],
-            self.models.cub_val[best_index, :],
-            self.models.ceq_val[best_index, :],
-        )
-        r_best = self._pb.maxcv(
-            self.x_best,
-            self.models.cub_val[best_index, :],
-            self.models.ceq_val[best_index, :],
-        )
-        tol = (
-            10.0
-            * EPS
-            * max(self.models.n, self.models.npt)
-            * max(abs(m_best), 1.0)
-        )
-        for k in range(self.models.npt):
-            if k != self.best_index:
-                x_val = self.models.interpolation.point(k)
-                m_val = self.merit(
-                    x_val,
-                    self.models.fun_val[k],
-                    self.models.cub_val[k, :],
-                    self.models.ceq_val[k, :],
-                )
-                r_val = self._pb.maxcv(
-                    x_val,
-                    self.models.cub_val[k, :],
-                    self.models.ceq_val[k, :],
-                )
-                if m_val < m_best or (m_val < m_best + tol and r_val < r_best):
-                    best_index = k
-                    m_best = m_val
-                    r_best = r_val
-        self._best_index = best_index
-
-    def get_index_to_remove(self, x_new=None):
-        """
-        Get the index of the interpolation point to remove.
-
-        If `x_new` is not provided, the index returned should be used during
-        the geometry-improvement phase. Otherwise, the index returned is the
-        best index for included `x_new` in the interpolation set.
-
-        Parameters
-        ----------
-        x_new : `numpy.ndarray`, shape (n,), optional
-            New point to be included in the interpolation set.
-
-        Returns
-        -------
-        int
-            Index of the interpolation point to remove.
-        float
-            Distance between `x_best` and the removed point.
-
-        Raises
-        ------
-        `numpy.linalg.LinAlgError`
-            If the computation of a determinant fails.
-        """
-        dist_sq = np.sum(
-            (
-                self.models.interpolation.xpt
-                - self.models.interpolation.xpt[:, self.best_index, np.newaxis]
-            )
-            ** 2.0,
-            axis=0,
-        )
-        if x_new is None:
-            sigma = 1.0
-            weights = dist_sq
-        else:
-            sigma = self.models.determinants(x_new)
-            weights = (
-                np.maximum(
-                    1.0,
-                    dist_sq
-                    / max(
-                        self._constants[Constants.LOW_RADIUS_FACTOR]
-                        * self.radius,
-                        self.resolution,
-                    )
-                    ** 2.0,
-                )
-                ** 3.0
-            )
-            weights[self.best_index] = -1.0  # do not remove the best point
-        k_max = np.argmax(weights * np.abs(sigma))
-        return k_max, np.sqrt(dist_sq[k_max])
-
-    def update_radius(self, step, ratio):
-        """
-        Update the trust-region radius.
-
-        Parameters
-        ----------
-        step : `numpy.ndarray`, shape (n,)
-            Trust-region step.
-        ratio : float
-            Reduction ratio.
-        """
-        s_norm = np.linalg.norm(step)
-        if ratio <= self._constants[Constants.LOW_RATIO]:
-            self.radius *= self._constants[Constants.DECREASE_RADIUS_FACTOR]
-        elif ratio <= self._constants[Constants.HIGH_RATIO]:
-            self.radius = max(
-                self._constants[Constants.DECREASE_RADIUS_FACTOR]
-                * self.radius,
-                s_norm,
-            )
-        else:
-            self.radius = min(
-                self._constants[Constants.INCREASE_RADIUS_FACTOR]
-                * self.radius,
-                max(
-                    self._constants[Constants.DECREASE_RADIUS_FACTOR]
-                    * self.radius,
-                    self._constants[Constants.INCREASE_RADIUS_THRESHOLD]
-                    * s_norm,
-                ),
-            )
-
-    def enhance_resolution(self, options):
-        """
-        Enhance the resolution of the trust-region framework.
-
-        Parameters
-        ----------
-        options : dict
-            Options of the solver.
-        """
-        if (
-            self._constants[Constants.LARGE_RESOLUTION_THRESHOLD]
-            * options[Options.RHOEND]
-            < self.resolution
-        ):
-            self.resolution *= self._constants[
-                Constants.DECREASE_RESOLUTION_FACTOR
-            ]
-        elif (
-            self._constants[Constants.MODERATE_RESOLUTION_THRESHOLD]
-            * options[Options.RHOEND]
-            < self.resolution
-        ):
-            self.resolution = np.sqrt(self.resolution
-                                      * options[Options.RHOEND])
-        else:
-            self.resolution = options[Options.RHOEND]
-
-        # Reduce the trust-region radius.
-        self._radius = max(
-            self._constants[Constants.DECREASE_RADIUS_FACTOR] * self._radius,
-            self.resolution,
-        )
-
-    def shift_x_base(self, options):
-        """
-        Shift the base point to `x_best`.
-
-        Parameters
-        ----------
-        options : dict
-            Options of the solver.
-        """
-        self.models.shift_x_base(np.copy(self.x_best), options)
-
-    def set_multipliers(self, x):
-        """
-        Set the Lagrange multipliers.
-
-        This method computes and set the Lagrange multipliers of the linear and
-        nonlinear constraints to be the QP multipliers.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which the Lagrange multipliers are computed.
-        """
-        # Build the constraints of the least-squares problem.
-        incl_linear_ub = self._pb.linear.a_ub @ x >= self._pb.linear.b_ub
-        incl_nonlinear_ub = self.cub_best >= 0.0
-        incl_xl = self._pb.bounds.xl >= x
-        incl_xu = self._pb.bounds.xu <= x
-        m_linear_ub = np.count_nonzero(incl_linear_ub)
-        m_nonlinear_ub = np.count_nonzero(incl_nonlinear_ub)
-        m_xl = np.count_nonzero(incl_xl)
-        m_xu = np.count_nonzero(incl_xu)
-
-        if (
-            m_linear_ub + m_nonlinear_ub + self.m_linear_eq
-                + self.m_nonlinear_eq > 0
-        ):
-            identity = np.eye(self._pb.n)
-            c_jac = np.r_[
-                -identity[incl_xl, :],
-                identity[incl_xu, :],
-                self._pb.linear.a_ub[incl_linear_ub, :],
-                self.models.cub_grad(x, incl_nonlinear_ub),
-                self._pb.linear.a_eq,
-                self.models.ceq_grad(x),
-            ]
-
-            # Solve the least-squares problem.
-            g_best = self.models.fun_grad(x)
-            xl_lm = np.full(c_jac.shape[0], -np.inf)
-            xl_lm[: m_xl + m_xu + m_linear_ub + m_nonlinear_ub] = 0.0
-            res = lsq_linear(
-                c_jac.T,
-                -g_best,
-                bounds=(xl_lm, np.inf),
-                method="bvls",
-            )
-
-            # Extract the Lagrange multipliers.
-            self._lm_linear_ub[incl_linear_ub] = res.x[
-                m_xl + m_xu:m_xl + m_xu + m_linear_ub
-            ]
-            self._lm_linear_ub[~incl_linear_ub] = 0.0
-            self._lm_nonlinear_ub[incl_nonlinear_ub] = res.x[
-                m_xl
-                + m_xu
-                + m_linear_ub:m_xl
-                + m_xu
-                + m_linear_ub
-                + m_nonlinear_ub
-            ]
-            self._lm_nonlinear_ub[~incl_nonlinear_ub] = 0.0
-            self._lm_linear_eq[:] = res.x[
-                m_xl
-                + m_xu
-                + m_linear_ub
-                + m_nonlinear_ub:m_xl
-                + m_xu
-                + m_linear_ub
-                + m_nonlinear_ub
-                + self.m_linear_eq
-            ]
-            self._lm_nonlinear_eq[:] = res.x[
-                m_xl + m_xu + m_linear_ub + m_nonlinear_ub + self.m_linear_eq:
-            ]
-
-    def _get_low_penalty(self):
-        r_val_ub = np.c_[
-            (
-                self.models.interpolation.x_base[np.newaxis, :]
-                + self.models.interpolation.xpt.T
-            )
-            @ self._pb.linear.a_ub.T
-            - self._pb.linear.b_ub[np.newaxis, :],
-            self.models.cub_val,
-        ]
-        r_val_eq = (
-            self.models.interpolation.x_base[np.newaxis, :]
-            + self.models.interpolation.xpt.T
-        ) @ self._pb.linear.a_eq.T - self._pb.linear.b_eq[np.newaxis, :]
-        r_val_eq = np.block(
-            [
-                r_val_eq,
-                -r_val_eq,
-                self.models.ceq_val,
-                -self.models.ceq_val,
-            ]
-        )
-        r_val = np.block([r_val_ub, r_val_eq])
-        c_min = np.nanmin(r_val, axis=0)
-        c_max = np.nanmax(r_val, axis=0)
-        indices = (
-            c_min
-            < self._constants[Constants.THRESHOLD_RATIO_CONSTRAINTS] * c_max
-        )
-        if np.any(indices):
-            f_min = np.nanmin(self.models.fun_val)
-            f_max = np.nanmax(self.models.fun_val)
-            c_min_neg = np.minimum(0.0, c_min[indices])
-            c_diff = np.min(c_max[indices] - c_min_neg)
-            if c_diff > TINY * (f_max - f_min):
-                penalty = (f_max - f_min) / c_diff
-            else:
-                penalty = np.inf
-        else:
-            penalty = 0.0
-        return penalty
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/main.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/main.py
deleted file mode 100644
index aa34bbbf9a4695cd0de131829f6bef7e76248bd0..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/main.py
+++ /dev/null
@@ -1,1488 +0,0 @@
-import warnings
-
-import numpy as np
-from scipy.optimize import (
-    Bounds,
-    LinearConstraint,
-    NonlinearConstraint,
-    OptimizeResult,
-)
-
-from .framework import TrustRegion
-from .problem import (
-    ObjectiveFunction,
-    BoundConstraints,
-    LinearConstraints,
-    NonlinearConstraints,
-    Problem,
-)
-from .utils import (
-    MaxEvalError,
-    TargetSuccess,
-    CallbackSuccess,
-    FeasibleSuccess,
-    exact_1d_array,
-)
-from .settings import (
-    ExitStatus,
-    Options,
-    Constants,
-    DEFAULT_OPTIONS,
-    DEFAULT_CONSTANTS,
-    PRINT_OPTIONS,
-)
-
-
-def minimize(
-    fun,
-    x0,
-    args=(),
-    bounds=None,
-    constraints=(),
-    callback=None,
-    options=None,
-    **kwargs,
-):
-    r"""
-    Minimize a scalar function using the COBYQA method.
-
-    The Constrained Optimization BY Quadratic Approximations (COBYQA) method is
-    a derivative-free optimization method designed to solve general nonlinear
-    optimization problems. A complete description of COBYQA is given in [3]_.
-
-    Parameters
-    ----------
-    fun : {callable, None}
-        Objective function to be minimized.
-
-            ``fun(x, *args) -> float``
-
-        where ``x`` is an array with shape (n,) and `args` is a tuple. If `fun`
-        is ``None``, the objective function is assumed to be the zero function,
-        resulting in a feasibility problem.
-    x0 : array_like, shape (n,)
-        Initial guess.
-    args : tuple, optional
-        Extra arguments passed to the objective function.
-    bounds : {`scipy.optimize.Bounds`, array_like, shape (n, 2)}, optional
-        Bound constraints of the problem. It can be one of the cases below.
-
-        #. An instance of `scipy.optimize.Bounds`. For the time being, the
-           argument ``keep_feasible`` is disregarded, and all the constraints
-           are considered unrelaxable and will be enforced.
-        #. An array with shape (n, 2). The bound constraints for ``x[i]`` are
-           ``bounds[i][0] <= x[i] <= bounds[i][1]``. Set ``bounds[i][0]`` to
-           :math:`-\infty` if there is no lower bound, and set ``bounds[i][1]``
-           to :math:`\infty` if there is no upper bound.
-
-        The COBYQA method always respect the bound constraints.
-    constraints : {Constraint, list}, optional
-        General constraints of the problem. It can be one of the cases below.
-
-        #. An instance of `scipy.optimize.LinearConstraint`. The argument
-           ``keep_feasible`` is disregarded.
-        #. An instance of `scipy.optimize.NonlinearConstraint`. The arguments
-           ``jac``, ``hess``, ``keep_feasible``, ``finite_diff_rel_step``, and
-           ``finite_diff_jac_sparsity`` are disregarded.
-
-        #. A list, each of whose elements are described in the cases above.
-
-    callback : callable, optional
-        A callback executed at each objective function evaluation. The method
-        terminates if a ``StopIteration`` exception is raised by the callback
-        function. Its signature can be one of the following:
-
-            ``callback(intermediate_result)``
-
-        where ``intermediate_result`` is a keyword parameter that contains an
-        instance of `scipy.optimize.OptimizeResult`, with attributes ``x``
-        and ``fun``, being the point at which the objective function is
-        evaluated and the value of the objective function, respectively. The
-        name of the parameter must be ``intermediate_result`` for the callback
-        to be passed an instance of `scipy.optimize.OptimizeResult`.
-
-        Alternatively, the callback function can have the signature:
-
-            ``callback(xk)``
-
-        where ``xk`` is the point at which the objective function is evaluated.
-        Introspection is used to determine which of the signatures to invoke.
-    options : dict, optional
-        Options passed to the solver. Accepted keys are:
-
-            disp : bool, optional
-                Whether to print information about the optimization procedure.
-            maxfev : int, optional
-                Maximum number of function evaluations.
-            maxiter : int, optional
-                Maximum number of iterations.
-            target : float, optional
-                Target on the objective function value. The optimization
-                procedure is terminated when the objective function value of a
-                feasible point is less than or equal to this target.
-            feasibility_tol : float, optional
-                Tolerance on the constraint violation. If the maximum
-                constraint violation at a point is less than or equal to this
-                tolerance, the point is considered feasible.
-            radius_init : float, optional
-                Initial trust-region radius. Typically, this value should be in
-                the order of one tenth of the greatest expected change to `x0`.
-            radius_final : float, optional
-                Final trust-region radius. It should indicate the accuracy
-                required in the final values of the variables.
-            nb_points : int, optional
-                Number of interpolation points used to build the quadratic
-                models of the objective and constraint functions.
-            scale : bool, optional
-                Whether to scale the variables according to the bounds.
-            filter_size : int, optional
-                Maximum number of points in the filter. The filter is used to
-                select the best point returned by the optimization procedure.
-            store_history : bool, optional
-                Whether to store the history of the function evaluations.
-            history_size : int, optional
-                Maximum number of function evaluations to store in the history.
-            debug : bool, optional
-                Whether to perform additional checks during the optimization
-                procedure. This option should be used only for debugging
-                purposes and is highly discouraged to general users.
-
-        Other constants (from the keyword arguments) are described below. They
-        are not intended to be changed by general users. They should only be
-        changed by users with a deep understanding of the algorithm, who want
-        to experiment with different settings.
-
-    Returns
-    -------
-    `scipy.optimize.OptimizeResult`
-        Result of the optimization procedure, with the following fields:
-
-            message : str
-                Description of the cause of the termination.
-            success : bool
-                Whether the optimization procedure terminated successfully.
-            status : int
-                Termination status of the optimization procedure.
-            x : `numpy.ndarray`, shape (n,)
-                Solution point.
-            fun : float
-                Objective function value at the solution point.
-            maxcv : float
-                Maximum constraint violation at the solution point.
-            nfev : int
-                Number of function evaluations.
-            nit : int
-                Number of iterations.
-
-        If ``store_history`` is True, the result also has the following fields:
-
-            fun_history : `numpy.ndarray`, shape (nfev,)
-                History of the objective function values.
-            maxcv_history : `numpy.ndarray`, shape (nfev,)
-                History of the maximum constraint violations.
-
-        A description of the termination statuses is given below.
-
-        .. list-table::
-            :widths: 25 75
-            :header-rows: 1
-
-            * - Exit status
-              - Description
-            * - 0
-              - The lower bound for the trust-region radius has been reached.
-            * - 1
-              - The target objective function value has been reached.
-            * - 2
-              - All variables are fixed by the bound constraints.
-            * - 3
-              - The callback requested to stop the optimization procedure.
-            * - 4
-              - The feasibility problem received has been solved successfully.
-            * - 5
-              - The maximum number of function evaluations has been exceeded.
-            * - 6
-              - The maximum number of iterations has been exceeded.
-            * - -1
-              - The bound constraints are infeasible.
-            * - -2
-              - A linear algebra error occurred.
-
-    Other Parameters
-    ----------------
-    decrease_radius_factor : float, optional
-        Factor by which the trust-region radius is reduced when the reduction
-        ratio is low or negative.
-    increase_radius_factor : float, optional
-        Factor by which the trust-region radius is increased when the reduction
-        ratio is large.
-    increase_radius_threshold : float, optional
-        Threshold that controls the increase of the trust-region radius when
-        the reduction ratio is large.
-    decrease_radius_threshold : float, optional
-        Threshold used to determine whether the trust-region radius should be
-        reduced to the resolution.
-    decrease_resolution_factor : float, optional
-        Factor by which the resolution is reduced when the current value is far
-        from its final value.
-    large_resolution_threshold : float, optional
-        Threshold used to determine whether the resolution is far from its
-        final value.
-    moderate_resolution_threshold : float, optional
-        Threshold used to determine whether the resolution is close to its
-        final value.
-    low_ratio : float, optional
-        Threshold used to determine whether the reduction ratio is low.
-    high_ratio : float, optional
-        Threshold used to determine whether the reduction ratio is high.
-    very_low_ratio : float, optional
-        Threshold used to determine whether the reduction ratio is very low.
-        This is used to determine whether the models should be reset.
-    penalty_increase_threshold : float, optional
-        Threshold used to determine whether the penalty parameter should be
-        increased.
-    penalty_increase_factor : float, optional
-        Factor by which the penalty parameter is increased.
-    short_step_threshold : float, optional
-        Factor used to determine whether the trial step is too short.
-    low_radius_factor : float, optional
-        Factor used to determine which interpolation point should be removed
-        from the interpolation set at each iteration.
-    byrd_omojokun_factor : float, optional
-        Factor by which the trust-region radius is reduced for the computations
-        of the normal step in the Byrd-Omojokun composite-step approach.
-    threshold_ratio_constraints : float, optional
-        Threshold used to determine which constraints should be taken into
-        account when decreasing the penalty parameter.
-    large_shift_factor : float, optional
-        Factor used to determine whether the point around which the quadratic
-        models are built should be updated.
-    large_gradient_factor : float, optional
-        Factor used to determine whether the models should be reset.
-    resolution_factor : float, optional
-        Factor by which the resolution is decreased.
-    improve_tcg : bool, optional
-        Whether to improve the steps computed by the truncated conjugate
-        gradient method when the trust-region boundary is reached.
-
-    References
-    ----------
-    .. [1] J. Nocedal and S. J. Wright. *Numerical Optimization*. Springer Ser.
-       Oper. Res. Financ. Eng. Springer, New York, NY, USA, second edition,
-       2006. `doi:10.1007/978-0-387-40065-5
-       `_.
-    .. [2] M. J. D. Powell. A direct search optimization method that models the
-       objective and constraint functions by linear interpolation. In S. Gomez
-       and J.-P. Hennart, editors, *Advances in Optimization and Numerical
-       Analysis*, volume 275 of Math. Appl., pages 51--67. Springer, Dordrecht,
-       Netherlands, 1994. `doi:10.1007/978-94-015-8330-5_4
-       `_.
-    .. [3] T. M. Ragonneau. *Model-Based Derivative-Free Optimization Methods
-       and Software*. PhD thesis, Department of Applied Mathematics, The Hong
-       Kong Polytechnic University, Hong Kong, China, 2022. URL:
-       https://theses.lib.polyu.edu.hk/handle/200/12294.
-
-    Examples
-    --------
-    To demonstrate how to use `minimize`, we first minimize the Rosenbrock
-    function implemented in `scipy.optimize` in an unconstrained setting.
-
-    .. testsetup::
-
-        import numpy as np
-        np.set_printoptions(precision=3, suppress=True)
-
-    >>> from cobyqa import minimize
-    >>> from scipy.optimize import rosen
-
-    To solve the problem using COBYQA, run:
-
-    >>> x0 = [1.3, 0.7, 0.8, 1.9, 1.2]
-    >>> res = minimize(rosen, x0)
-    >>> res.x
-    array([1., 1., 1., 1., 1.])
-
-    To see how bound and constraints are handled using `minimize`, we solve
-    Example 16.4 of [1]_, defined as
-
-    .. math::
-
-        \begin{aligned}
-            \min_{x \in \mathbb{R}^2}   & \quad (x_1 - 1)^2 + (x_2 - 2.5)^2\\
-            \text{s.t.}                 & \quad -x_1 + 2x_2 \le 2,\\
-                                        & \quad x_1 + 2x_2 \le 6,\\
-                                        & \quad x_1 - 2x_2 \le 2,\\
-                                        & \quad x_1 \ge 0,\\
-                                        & \quad x_2 \ge 0.
-        \end{aligned}
-
-    >>> import numpy as np
-    >>> from scipy.optimize import Bounds, LinearConstraint
-
-    Its objective function can be implemented as:
-
-    >>> def fun(x):
-    ...     return (x[0] - 1.0)**2 + (x[1] - 2.5)**2
-
-    This problem can be solved using `minimize` as:
-
-    >>> x0 = [2.0, 0.0]
-    >>> bounds = Bounds([0.0, 0.0], np.inf)
-    >>> constraints = LinearConstraint([
-    ...     [-1.0, 2.0],
-    ...     [1.0, 2.0],
-    ...     [1.0, -2.0],
-    ... ], -np.inf, [2.0, 6.0, 2.0])
-    >>> res = minimize(fun, x0, bounds=bounds, constraints=constraints)
-    >>> res.x
-    array([1.4, 1.7])
-
-    To see how nonlinear constraints are handled, we solve Problem (F) of [2]_,
-    defined as
-
-    .. math::
-
-        \begin{aligned}
-            \min_{x \in \mathbb{R}^2}   & \quad -x_1 - x_2\\
-            \text{s.t.}                 & \quad x_1^2 - x_2 \le 0,\\
-                                        & \quad x_1^2 + x_2^2 \le 1.
-        \end{aligned}
-
-    >>> from scipy.optimize import NonlinearConstraint
-
-    Its objective and constraint functions can be implemented as:
-
-    >>> def fun(x):
-    ...     return -x[0] - x[1]
-    >>>
-    >>> def cub(x):
-    ...     return [x[0]**2 - x[1], x[0]**2 + x[1]**2]
-
-    This problem can be solved using `minimize` as:
-
-    >>> x0 = [1.0, 1.0]
-    >>> constraints = NonlinearConstraint(cub, -np.inf, [0.0, 1.0])
-    >>> res = minimize(fun, x0, constraints=constraints)
-    >>> res.x
-    array([0.707, 0.707])
-
-    Finally, to see how to supply linear and nonlinear constraints
-    simultaneously, we solve Problem (G) of [2]_, defined as
-
-    .. math::
-
-        \begin{aligned}
-            \min_{x \in \mathbb{R}^3}   & \quad x_3\\
-            \text{s.t.}                 & \quad 5x_1 - x_2 + x_3 \ge 0,\\
-                                        & \quad -5x_1 - x_2 + x_3 \ge 0,\\
-                                        & \quad x_1^2 + x_2^2 + 4x_2 \le x_3.
-        \end{aligned}
-
-    Its objective and nonlinear constraint functions can be implemented as:
-
-    >>> def fun(x):
-    ...     return x[2]
-    >>>
-    >>> def cub(x):
-    ...     return x[0]**2 + x[1]**2 + 4.0*x[1] - x[2]
-
-    This problem can be solved using `minimize` as:
-
-    >>> x0 = [1.0, 1.0, 1.0]
-    >>> constraints = [
-    ...     LinearConstraint(
-    ...         [[5.0, -1.0, 1.0], [-5.0, -1.0, 1.0]],
-    ...         [0.0, 0.0],
-    ...         np.inf,
-    ...     ),
-    ...     NonlinearConstraint(cub, -np.inf, 0.0),
-    ... ]
-    >>> res = minimize(fun, x0, constraints=constraints)
-    >>> res.x
-    array([ 0., -3., -3.])
-    """
-    # Get basic options that are needed for the initialization.
-    if options is None:
-        options = {}
-    else:
-        options = dict(options)
-    verbose = options.get(Options.VERBOSE, DEFAULT_OPTIONS[Options.VERBOSE])
-    verbose = bool(verbose)
-    feasibility_tol = options.get(
-        Options.FEASIBILITY_TOL,
-        DEFAULT_OPTIONS[Options.FEASIBILITY_TOL],
-    )
-    feasibility_tol = float(feasibility_tol)
-    scale = options.get(Options.SCALE, DEFAULT_OPTIONS[Options.SCALE])
-    scale = bool(scale)
-    store_history = options.get(
-        Options.STORE_HISTORY,
-        DEFAULT_OPTIONS[Options.STORE_HISTORY],
-    )
-    store_history = bool(store_history)
-    if Options.HISTORY_SIZE in options and options[Options.HISTORY_SIZE] <= 0:
-        raise ValueError("The size of the history must be positive.")
-    history_size = options.get(
-        Options.HISTORY_SIZE,
-        DEFAULT_OPTIONS[Options.HISTORY_SIZE],
-    )
-    history_size = int(history_size)
-    if Options.FILTER_SIZE in options and options[Options.FILTER_SIZE] <= 0:
-        raise ValueError("The size of the filter must be positive.")
-    filter_size = options.get(
-        Options.FILTER_SIZE,
-        DEFAULT_OPTIONS[Options.FILTER_SIZE],
-    )
-    filter_size = int(filter_size)
-    debug = options.get(Options.DEBUG, DEFAULT_OPTIONS[Options.DEBUG])
-    debug = bool(debug)
-
-    # Initialize the objective function.
-    if not isinstance(args, tuple):
-        args = (args,)
-    obj = ObjectiveFunction(fun, verbose, debug, *args)
-
-    # Initialize the bound constraints.
-    if not hasattr(x0, "__len__"):
-        x0 = [x0]
-    n_orig = len(x0)
-    bounds = BoundConstraints(_get_bounds(bounds, n_orig))
-
-    # Initialize the constraints.
-    linear_constraints, nonlinear_constraints = _get_constraints(constraints)
-    linear = LinearConstraints(linear_constraints, n_orig, debug)
-    nonlinear = NonlinearConstraints(nonlinear_constraints, verbose, debug)
-
-    # Initialize the problem (and remove the fixed variables).
-    pb = Problem(
-        obj,
-        x0,
-        bounds,
-        linear,
-        nonlinear,
-        callback,
-        feasibility_tol,
-        scale,
-        store_history,
-        history_size,
-        filter_size,
-        debug,
-    )
-
-    # Set the default options.
-    _set_default_options(options, pb.n)
-    constants = _set_default_constants(**kwargs)
-
-    # Initialize the models and skip the computations whenever possible.
-    if not pb.bounds.is_feasible:
-        # The bound constraints are infeasible.
-        return _build_result(
-            pb,
-            0.0,
-            False,
-            ExitStatus.INFEASIBLE_ERROR,
-            0,
-            options,
-        )
-    elif pb.n == 0:
-        # All variables are fixed by the bound constraints.
-        return _build_result(
-            pb,
-            0.0,
-            True,
-            ExitStatus.FIXED_SUCCESS,
-            0,
-            options,
-        )
-    if verbose:
-        print("Starting the optimization procedure.")
-        print(f"Initial trust-region radius: {options[Options.RHOBEG]}.")
-        print(f"Final trust-region radius: {options[Options.RHOEND]}.")
-        print(
-            f"Maximum number of function evaluations: "
-            f"{options[Options.MAX_EVAL]}."
-        )
-        print(f"Maximum number of iterations: {options[Options.MAX_ITER]}.")
-        print()
-    try:
-        framework = TrustRegion(pb, options, constants)
-    except TargetSuccess:
-        # The target on the objective function value has been reached
-        return _build_result(
-            pb,
-            0.0,
-            True,
-            ExitStatus.TARGET_SUCCESS,
-            0,
-            options,
-        )
-    except CallbackSuccess:
-        # The callback raised a StopIteration exception.
-        return _build_result(
-            pb,
-            0.0,
-            True,
-            ExitStatus.CALLBACK_SUCCESS,
-            0,
-            options,
-        )
-    except FeasibleSuccess:
-        # The feasibility problem has been solved successfully.
-        return _build_result(
-            pb,
-            0.0,
-            True,
-            ExitStatus.FEASIBLE_SUCCESS,
-            0,
-            options,
-        )
-    except MaxEvalError:
-        # The maximum number of function evaluations has been exceeded.
-        return _build_result(
-            pb,
-            0.0,
-            False,
-            ExitStatus.MAX_ITER_WARNING,
-            0,
-            options,
-        )
-    except np.linalg.LinAlgError:
-        # The construction of the initial interpolation set failed.
-        return _build_result(
-            pb,
-            0.0,
-            False,
-            ExitStatus.LINALG_ERROR,
-            0,
-            options,
-        )
-
-    # Start the optimization procedure.
-    success = False
-    n_iter = 0
-    k_new = None
-    n_short_steps = 0
-    n_very_short_steps = 0
-    n_alt_models = 0
-    while True:
-        # Stop the optimization procedure if the maximum number of iterations
-        # has been exceeded. We do not write the main loop as a for loop
-        # because we want to access the number of iterations outside the loop.
-        if n_iter >= options[Options.MAX_ITER]:
-            status = ExitStatus.MAX_ITER_WARNING
-            break
-        n_iter += 1
-
-        # Update the point around which the quadratic models are built.
-        if (
-            np.linalg.norm(
-                framework.x_best - framework.models.interpolation.x_base
-            )
-            >= constants[Constants.LARGE_SHIFT_FACTOR] * framework.radius
-        ):
-            framework.shift_x_base(options)
-
-        # Evaluate the trial step.
-        radius_save = framework.radius
-        normal_step, tangential_step = framework.get_trust_region_step(options)
-        step = normal_step + tangential_step
-        s_norm = np.linalg.norm(step)
-
-        # If the trial step is too short, we do not attempt to evaluate the
-        # objective and constraint functions. Instead, we reduce the
-        # trust-region radius and check whether the resolution should be
-        # enhanced and whether the geometry of the interpolation set should be
-        # improved. Otherwise, we entertain a classical iteration. The
-        # criterion for performing an exceptional jump is taken from NEWUOA.
-        if (
-            s_norm
-            <= constants[Constants.SHORT_STEP_THRESHOLD] * framework.resolution
-        ):
-            framework.radius *= constants[Constants.DECREASE_RESOLUTION_FACTOR]
-            if radius_save > framework.resolution:
-                n_short_steps = 0
-                n_very_short_steps = 0
-            else:
-                n_short_steps += 1
-                n_very_short_steps += 1
-                if s_norm > 0.1 * framework.resolution:
-                    n_very_short_steps = 0
-            enhance_resolution = n_short_steps >= 5 or n_very_short_steps >= 3
-            if enhance_resolution:
-                n_short_steps = 0
-                n_very_short_steps = 0
-                improve_geometry = False
-            else:
-                try:
-                    k_new, dist_new = framework.get_index_to_remove()
-                except np.linalg.LinAlgError:
-                    status = ExitStatus.LINALG_ERROR
-                    break
-                improve_geometry = dist_new > max(
-                    framework.radius,
-                    constants[Constants.RESOLUTION_FACTOR]
-                    * framework.resolution,
-                )
-        else:
-            # Increase the penalty parameter if necessary.
-            same_best_point = framework.increase_penalty(step)
-            if same_best_point:
-                # Evaluate the objective and constraint functions.
-                try:
-                    fun_val, cub_val, ceq_val = _eval(
-                        pb,
-                        framework,
-                        step,
-                        options,
-                    )
-                except TargetSuccess:
-                    status = ExitStatus.TARGET_SUCCESS
-                    success = True
-                    break
-                except FeasibleSuccess:
-                    status = ExitStatus.FEASIBLE_SUCCESS
-                    success = True
-                    break
-                except CallbackSuccess:
-                    status = ExitStatus.CALLBACK_SUCCESS
-                    success = True
-                    break
-                except MaxEvalError:
-                    status = ExitStatus.MAX_EVAL_WARNING
-                    break
-
-                # Perform a second-order correction step if necessary.
-                merit_old = framework.merit(
-                    framework.x_best,
-                    framework.fun_best,
-                    framework.cub_best,
-                    framework.ceq_best,
-                )
-                merit_new = framework.merit(
-                    framework.x_best + step, fun_val, cub_val, ceq_val
-                )
-                if (
-                    pb.type == "nonlinearly constrained"
-                    and merit_new > merit_old
-                    and np.linalg.norm(normal_step)
-                    > constants[Constants.BYRD_OMOJOKUN_FACTOR] ** 2.0
-                    * framework.radius
-                ):
-                    soc_step = framework.get_second_order_correction_step(
-                        step, options
-                    )
-                    if np.linalg.norm(soc_step) > 0.0:
-                        step += soc_step
-
-                        # Evaluate the objective and constraint functions.
-                        try:
-                            fun_val, cub_val, ceq_val = _eval(
-                                pb,
-                                framework,
-                                step,
-                                options,
-                            )
-                        except TargetSuccess:
-                            status = ExitStatus.TARGET_SUCCESS
-                            success = True
-                            break
-                        except FeasibleSuccess:
-                            status = ExitStatus.FEASIBLE_SUCCESS
-                            success = True
-                            break
-                        except CallbackSuccess:
-                            status = ExitStatus.CALLBACK_SUCCESS
-                            success = True
-                            break
-                        except MaxEvalError:
-                            status = ExitStatus.MAX_EVAL_WARNING
-                            break
-
-                # Calculate the reduction ratio.
-                ratio = framework.get_reduction_ratio(
-                    step,
-                    fun_val,
-                    cub_val,
-                    ceq_val,
-                )
-
-                # Choose an interpolation point to remove.
-                try:
-                    k_new = framework.get_index_to_remove(
-                        framework.x_best + step
-                    )[0]
-                except np.linalg.LinAlgError:
-                    status = ExitStatus.LINALG_ERROR
-                    break
-
-                # Update the interpolation set.
-                try:
-                    ill_conditioned = framework.models.update_interpolation(
-                        k_new, framework.x_best + step, fun_val, cub_val,
-                        ceq_val
-                    )
-                except np.linalg.LinAlgError:
-                    status = ExitStatus.LINALG_ERROR
-                    break
-                framework.set_best_index()
-
-                # Update the trust-region radius.
-                framework.update_radius(step, ratio)
-
-                # Attempt to replace the models by the alternative ones.
-                if framework.radius <= framework.resolution:
-                    if ratio >= constants[Constants.VERY_LOW_RATIO]:
-                        n_alt_models = 0
-                    else:
-                        n_alt_models += 1
-                        grad = framework.models.fun_grad(framework.x_best)
-                        try:
-                            grad_alt = framework.models.fun_alt_grad(
-                                framework.x_best
-                            )
-                        except np.linalg.LinAlgError:
-                            status = ExitStatus.LINALG_ERROR
-                            break
-                        if np.linalg.norm(grad) < constants[
-                            Constants.LARGE_GRADIENT_FACTOR
-                        ] * np.linalg.norm(grad_alt):
-                            n_alt_models = 0
-                        if n_alt_models >= 3:
-                            try:
-                                framework.models.reset_models()
-                            except np.linalg.LinAlgError:
-                                status = ExitStatus.LINALG_ERROR
-                                break
-                            n_alt_models = 0
-
-                # Update the Lagrange multipliers.
-                framework.set_multipliers(framework.x_best + step)
-
-                # Check whether the resolution should be enhanced.
-                try:
-                    k_new, dist_new = framework.get_index_to_remove()
-                except np.linalg.LinAlgError:
-                    status = ExitStatus.LINALG_ERROR
-                    break
-                improve_geometry = (
-                    ill_conditioned
-                    or ratio <= constants[Constants.LOW_RATIO]
-                    and dist_new
-                    > max(
-                        framework.radius,
-                        constants[Constants.RESOLUTION_FACTOR]
-                        * framework.resolution,
-                    )
-                )
-                enhance_resolution = (
-                    radius_save <= framework.resolution
-                    and ratio <= constants[Constants.LOW_RATIO]
-                    and not improve_geometry
-                )
-            else:
-                # When increasing the penalty parameter, the best point so far
-                # may change. In this case, we restart the iteration.
-                enhance_resolution = False
-                improve_geometry = False
-
-        # Reduce the resolution if necessary.
-        if enhance_resolution:
-            if framework.resolution <= options[Options.RHOEND]:
-                success = True
-                status = ExitStatus.RADIUS_SUCCESS
-                break
-            framework.enhance_resolution(options)
-            framework.decrease_penalty()
-
-            if verbose:
-                maxcv_val = pb.maxcv(
-                    framework.x_best, framework.cub_best, framework.ceq_best
-                )
-                _print_step(
-                    f"New trust-region radius: {framework.resolution}",
-                    pb,
-                    pb.build_x(framework.x_best),
-                    framework.fun_best,
-                    maxcv_val,
-                    pb.n_eval,
-                    n_iter,
-                )
-                print()
-
-        # Improve the geometry of the interpolation set if necessary.
-        if improve_geometry:
-            try:
-                step = framework.get_geometry_step(k_new, options)
-            except np.linalg.LinAlgError:
-                status = ExitStatus.LINALG_ERROR
-                break
-
-            # Evaluate the objective and constraint functions.
-            try:
-                fun_val, cub_val, ceq_val = _eval(pb, framework, step, options)
-            except TargetSuccess:
-                status = ExitStatus.TARGET_SUCCESS
-                success = True
-                break
-            except FeasibleSuccess:
-                status = ExitStatus.FEASIBLE_SUCCESS
-                success = True
-                break
-            except CallbackSuccess:
-                status = ExitStatus.CALLBACK_SUCCESS
-                success = True
-                break
-            except MaxEvalError:
-                status = ExitStatus.MAX_EVAL_WARNING
-                break
-
-            # Update the interpolation set.
-            try:
-                framework.models.update_interpolation(
-                    k_new,
-                    framework.x_best + step,
-                    fun_val,
-                    cub_val,
-                    ceq_val,
-                )
-            except np.linalg.LinAlgError:
-                status = ExitStatus.LINALG_ERROR
-                break
-            framework.set_best_index()
-
-    return _build_result(
-        pb,
-        framework.penalty,
-        success,
-        status,
-        n_iter,
-        options,
-    )
-
-
-def _get_bounds(bounds, n):
-    """
-    Uniformize the bounds.
-    """
-    if bounds is None:
-        return Bounds(np.full(n, -np.inf), np.full(n, np.inf))
-    elif isinstance(bounds, Bounds):
-        if bounds.lb.shape != (n,) or bounds.ub.shape != (n,):
-            raise ValueError(f"The bounds must have {n} elements.")
-        return bounds
-    elif hasattr(bounds, "__len__"):
-        bounds = np.asarray(bounds)
-        if bounds.shape != (n, 2):
-            raise ValueError(
-                "The shape of the bounds is not compatible with "
-                "the number of variables."
-            )
-        return Bounds(bounds[:, 0], bounds[:, 1])
-    else:
-        raise TypeError(
-            "The bounds must be an instance of "
-            "scipy.optimize.Bounds or an array-like object."
-        )
-
-
-def _get_constraints(constraints):
-    """
-    Extract the linear and nonlinear constraints.
-    """
-    if isinstance(constraints, dict) or not hasattr(constraints, "__len__"):
-        constraints = (constraints,)
-
-    # Extract the linear and nonlinear constraints.
-    linear_constraints = []
-    nonlinear_constraints = []
-    for constraint in constraints:
-        if isinstance(constraint, LinearConstraint):
-            lb = exact_1d_array(
-                constraint.lb,
-                "The lower bound of the linear constraints must be a vector.",
-            )
-            ub = exact_1d_array(
-                constraint.ub,
-                "The upper bound of the linear constraints must be a vector.",
-            )
-            linear_constraints.append(
-                LinearConstraint(
-                    constraint.A,
-                    *np.broadcast_arrays(lb, ub),
-                )
-            )
-        elif isinstance(constraint, NonlinearConstraint):
-            lb = exact_1d_array(
-                constraint.lb,
-                "The lower bound of the "
-                "nonlinear constraints must be a "
-                "vector.",
-            )
-            ub = exact_1d_array(
-                constraint.ub,
-                "The upper bound of the "
-                "nonlinear constraints must be a "
-                "vector.",
-            )
-            nonlinear_constraints.append(
-                NonlinearConstraint(
-                    constraint.fun,
-                    *np.broadcast_arrays(lb, ub),
-                )
-            )
-        elif isinstance(constraint, dict):
-            if "type" not in constraint or constraint["type"] not in (
-                "eq",
-                "ineq",
-            ):
-                raise ValueError('The constraint type must be "eq" or "ineq".')
-            if "fun" not in constraint or not callable(constraint["fun"]):
-                raise ValueError("The constraint function must be callable.")
-            nonlinear_constraints.append(
-                {
-                    "fun": constraint["fun"],
-                    "type": constraint["type"],
-                    "args": constraint.get("args", ()),
-                }
-            )
-        else:
-            raise TypeError(
-                "The constraints must be instances of "
-                "scipy.optimize.LinearConstraint, "
-                "scipy.optimize.NonlinearConstraint, or dict."
-            )
-    return linear_constraints, nonlinear_constraints
-
-
-def _set_default_options(options, n):
-    """
-    Set the default options.
-    """
-    if Options.RHOBEG in options and options[Options.RHOBEG] <= 0.0:
-        raise ValueError("The initial trust-region radius must be positive.")
-    if Options.RHOEND in options and options[Options.RHOEND] < 0.0:
-        raise ValueError("The final trust-region radius must be nonnegative.")
-    if Options.RHOBEG in options and Options.RHOEND in options:
-        if options[Options.RHOBEG] < options[Options.RHOEND]:
-            raise ValueError(
-                "The initial trust-region radius must be greater "
-                "than or equal to the final trust-region radius."
-            )
-    elif Options.RHOBEG in options:
-        options[Options.RHOEND.value] = np.min(
-            [
-                DEFAULT_OPTIONS[Options.RHOEND],
-                options[Options.RHOBEG],
-            ]
-        )
-    elif Options.RHOEND in options:
-        options[Options.RHOBEG.value] = np.max(
-            [
-                DEFAULT_OPTIONS[Options.RHOBEG],
-                options[Options.RHOEND],
-            ]
-        )
-    else:
-        options[Options.RHOBEG.value] = DEFAULT_OPTIONS[Options.RHOBEG]
-        options[Options.RHOEND.value] = DEFAULT_OPTIONS[Options.RHOEND]
-    options[Options.RHOBEG.value] = float(options[Options.RHOBEG])
-    options[Options.RHOEND.value] = float(options[Options.RHOEND])
-    if Options.NPT in options and options[Options.NPT] <= 0:
-        raise ValueError("The number of interpolation points must be "
-                         "positive.")
-    if (
-        Options.NPT in options
-        and options[Options.NPT] > ((n + 1) * (n + 2)) // 2
-    ):
-        raise ValueError(
-            f"The number of interpolation points must be at most "
-            f"{((n + 1) * (n + 2)) // 2}."
-        )
-    options.setdefault(Options.NPT.value, DEFAULT_OPTIONS[Options.NPT](n))
-    options[Options.NPT.value] = int(options[Options.NPT])
-    if Options.MAX_EVAL in options and options[Options.MAX_EVAL] <= 0:
-        raise ValueError(
-            "The maximum number of function evaluations must be positive."
-        )
-    options.setdefault(
-        Options.MAX_EVAL.value,
-        np.max(
-            [
-                DEFAULT_OPTIONS[Options.MAX_EVAL](n),
-                options[Options.NPT] + 1,
-            ]
-        ),
-    )
-    options[Options.MAX_EVAL.value] = int(options[Options.MAX_EVAL])
-    if Options.MAX_ITER in options and options[Options.MAX_ITER] <= 0:
-        raise ValueError("The maximum number of iterations must be positive.")
-    options.setdefault(
-        Options.MAX_ITER.value,
-        DEFAULT_OPTIONS[Options.MAX_ITER](n),
-    )
-    options[Options.MAX_ITER.value] = int(options[Options.MAX_ITER])
-    options.setdefault(Options.TARGET.value, DEFAULT_OPTIONS[Options.TARGET])
-    options[Options.TARGET.value] = float(options[Options.TARGET])
-    options.setdefault(
-        Options.FEASIBILITY_TOL.value,
-        DEFAULT_OPTIONS[Options.FEASIBILITY_TOL],
-    )
-    options[Options.FEASIBILITY_TOL.value] = float(
-        options[Options.FEASIBILITY_TOL]
-    )
-    options.setdefault(Options.VERBOSE.value, DEFAULT_OPTIONS[Options.VERBOSE])
-    options[Options.VERBOSE.value] = bool(options[Options.VERBOSE])
-    options.setdefault(Options.SCALE.value, DEFAULT_OPTIONS[Options.SCALE])
-    options[Options.SCALE.value] = bool(options[Options.SCALE])
-    options.setdefault(
-        Options.FILTER_SIZE.value,
-        DEFAULT_OPTIONS[Options.FILTER_SIZE],
-    )
-    options[Options.FILTER_SIZE.value] = int(options[Options.FILTER_SIZE])
-    options.setdefault(
-        Options.STORE_HISTORY.value,
-        DEFAULT_OPTIONS[Options.STORE_HISTORY],
-    )
-    options[Options.STORE_HISTORY.value] = bool(options[Options.STORE_HISTORY])
-    options.setdefault(
-        Options.HISTORY_SIZE.value,
-        DEFAULT_OPTIONS[Options.HISTORY_SIZE],
-    )
-    options[Options.HISTORY_SIZE.value] = int(options[Options.HISTORY_SIZE])
-    options.setdefault(Options.DEBUG.value, DEFAULT_OPTIONS[Options.DEBUG])
-    options[Options.DEBUG.value] = bool(options[Options.DEBUG])
-
-    # Check whether they are any unknown options.
-    for key in options:
-        if key not in Options.__members__.values():
-            warnings.warn(f"Unknown option: {key}.", RuntimeWarning, 3)
-
-
-def _set_default_constants(**kwargs):
-    """
-    Set the default constants.
-    """
-    constants = dict(kwargs)
-    constants.setdefault(
-        Constants.DECREASE_RADIUS_FACTOR.value,
-        DEFAULT_CONSTANTS[Constants.DECREASE_RADIUS_FACTOR],
-    )
-    constants[Constants.DECREASE_RADIUS_FACTOR.value] = float(
-        constants[Constants.DECREASE_RADIUS_FACTOR]
-    )
-    if (
-        constants[Constants.DECREASE_RADIUS_FACTOR] <= 0.0
-        or constants[Constants.DECREASE_RADIUS_FACTOR] >= 1.0
-    ):
-        raise ValueError(
-            "The constant decrease_radius_factor must be in the interval "
-            "(0, 1)."
-        )
-    constants.setdefault(
-        Constants.INCREASE_RADIUS_THRESHOLD.value,
-        DEFAULT_CONSTANTS[Constants.INCREASE_RADIUS_THRESHOLD],
-    )
-    constants[Constants.INCREASE_RADIUS_THRESHOLD.value] = float(
-        constants[Constants.INCREASE_RADIUS_THRESHOLD]
-    )
-    if constants[Constants.INCREASE_RADIUS_THRESHOLD] <= 1.0:
-        raise ValueError(
-            "The constant increase_radius_threshold must be greater than 1."
-        )
-    if (
-        Constants.INCREASE_RADIUS_FACTOR in constants
-        and constants[Constants.INCREASE_RADIUS_FACTOR] <= 1.0
-    ):
-        raise ValueError(
-            "The constant increase_radius_factor must be greater than 1."
-        )
-    if (
-        Constants.DECREASE_RADIUS_THRESHOLD in constants
-        and constants[Constants.DECREASE_RADIUS_THRESHOLD] <= 1.0
-    ):
-        raise ValueError(
-            "The constant decrease_radius_threshold must be greater than 1."
-        )
-    if (
-        Constants.INCREASE_RADIUS_FACTOR in constants
-        and Constants.DECREASE_RADIUS_THRESHOLD in constants
-    ):
-        if (
-            constants[Constants.DECREASE_RADIUS_THRESHOLD]
-            >= constants[Constants.INCREASE_RADIUS_FACTOR]
-        ):
-            raise ValueError(
-                "The constant decrease_radius_threshold must be "
-                "less than increase_radius_factor."
-            )
-    elif Constants.INCREASE_RADIUS_FACTOR in constants:
-        constants[Constants.DECREASE_RADIUS_THRESHOLD.value] = np.min(
-            [
-                DEFAULT_CONSTANTS[Constants.DECREASE_RADIUS_THRESHOLD],
-                0.5 * (1.0 + constants[Constants.INCREASE_RADIUS_FACTOR]),
-            ]
-        )
-    elif Constants.DECREASE_RADIUS_THRESHOLD in constants:
-        constants[Constants.INCREASE_RADIUS_FACTOR.value] = np.max(
-            [
-                DEFAULT_CONSTANTS[Constants.INCREASE_RADIUS_FACTOR],
-                2.0 * constants[Constants.DECREASE_RADIUS_THRESHOLD],
-            ]
-        )
-    else:
-        constants[Constants.INCREASE_RADIUS_FACTOR.value] = DEFAULT_CONSTANTS[
-            Constants.INCREASE_RADIUS_FACTOR
-        ]
-        constants[Constants.DECREASE_RADIUS_THRESHOLD.value] = (
-            DEFAULT_CONSTANTS[Constants.DECREASE_RADIUS_THRESHOLD])
-    constants.setdefault(
-        Constants.DECREASE_RESOLUTION_FACTOR.value,
-        DEFAULT_CONSTANTS[Constants.DECREASE_RESOLUTION_FACTOR],
-    )
-    constants[Constants.DECREASE_RESOLUTION_FACTOR.value] = float(
-        constants[Constants.DECREASE_RESOLUTION_FACTOR]
-    )
-    if (
-        constants[Constants.DECREASE_RESOLUTION_FACTOR] <= 0.0
-        or constants[Constants.DECREASE_RESOLUTION_FACTOR] >= 1.0
-    ):
-        raise ValueError(
-            "The constant decrease_resolution_factor must be in the interval "
-            "(0, 1)."
-        )
-    if (
-        Constants.LARGE_RESOLUTION_THRESHOLD in constants
-        and constants[Constants.LARGE_RESOLUTION_THRESHOLD] <= 1.0
-    ):
-        raise ValueError(
-            "The constant large_resolution_threshold must be greater than 1."
-        )
-    if (
-        Constants.MODERATE_RESOLUTION_THRESHOLD in constants
-        and constants[Constants.MODERATE_RESOLUTION_THRESHOLD] <= 1.0
-    ):
-        raise ValueError(
-            "The constant moderate_resolution_threshold must be greater than "
-            "1."
-        )
-    if (
-        Constants.LARGE_RESOLUTION_THRESHOLD in constants
-        and Constants.MODERATE_RESOLUTION_THRESHOLD in constants
-    ):
-        if (
-            constants[Constants.MODERATE_RESOLUTION_THRESHOLD]
-            > constants[Constants.LARGE_RESOLUTION_THRESHOLD]
-        ):
-            raise ValueError(
-                "The constant moderate_resolution_threshold "
-                "must be at most large_resolution_threshold."
-            )
-    elif Constants.LARGE_RESOLUTION_THRESHOLD in constants:
-        constants[Constants.MODERATE_RESOLUTION_THRESHOLD.value] = np.min(
-            [
-                DEFAULT_CONSTANTS[Constants.MODERATE_RESOLUTION_THRESHOLD],
-                constants[Constants.LARGE_RESOLUTION_THRESHOLD],
-            ]
-        )
-    elif Constants.MODERATE_RESOLUTION_THRESHOLD in constants:
-        constants[Constants.LARGE_RESOLUTION_THRESHOLD.value] = np.max(
-            [
-                DEFAULT_CONSTANTS[Constants.LARGE_RESOLUTION_THRESHOLD],
-                constants[Constants.MODERATE_RESOLUTION_THRESHOLD],
-            ]
-        )
-    else:
-        constants[Constants.LARGE_RESOLUTION_THRESHOLD.value] = (
-            DEFAULT_CONSTANTS[Constants.LARGE_RESOLUTION_THRESHOLD]
-        )
-        constants[Constants.MODERATE_RESOLUTION_THRESHOLD.value] = (
-            DEFAULT_CONSTANTS[Constants.MODERATE_RESOLUTION_THRESHOLD]
-        )
-    if Constants.LOW_RATIO in constants and (
-        constants[Constants.LOW_RATIO] <= 0.0
-        or constants[Constants.LOW_RATIO] >= 1.0
-    ):
-        raise ValueError(
-            "The constant low_ratio must be in the interval (0, 1)."
-        )
-    if Constants.HIGH_RATIO in constants and (
-        constants[Constants.HIGH_RATIO] <= 0.0
-        or constants[Constants.HIGH_RATIO] >= 1.0
-    ):
-        raise ValueError(
-            "The constant high_ratio must be in the interval (0, 1)."
-        )
-    if Constants.LOW_RATIO in constants and Constants.HIGH_RATIO in constants:
-        if constants[Constants.LOW_RATIO] > constants[Constants.HIGH_RATIO]:
-            raise ValueError(
-                "The constant low_ratio must be at most high_ratio."
-            )
-    elif Constants.LOW_RATIO in constants:
-        constants[Constants.HIGH_RATIO.value] = np.max(
-            [
-                DEFAULT_CONSTANTS[Constants.HIGH_RATIO],
-                constants[Constants.LOW_RATIO],
-            ]
-        )
-    elif Constants.HIGH_RATIO in constants:
-        constants[Constants.LOW_RATIO.value] = np.min(
-            [
-                DEFAULT_CONSTANTS[Constants.LOW_RATIO],
-                constants[Constants.HIGH_RATIO],
-            ]
-        )
-    else:
-        constants[Constants.LOW_RATIO.value] = DEFAULT_CONSTANTS[
-            Constants.LOW_RATIO
-        ]
-        constants[Constants.HIGH_RATIO.value] = DEFAULT_CONSTANTS[
-            Constants.HIGH_RATIO
-        ]
-    constants.setdefault(
-        Constants.VERY_LOW_RATIO.value,
-        DEFAULT_CONSTANTS[Constants.VERY_LOW_RATIO],
-    )
-    constants[Constants.VERY_LOW_RATIO.value] = float(
-        constants[Constants.VERY_LOW_RATIO]
-    )
-    if (
-        constants[Constants.VERY_LOW_RATIO] <= 0.0
-        or constants[Constants.VERY_LOW_RATIO] >= 1.0
-    ):
-        raise ValueError(
-            "The constant very_low_ratio must be in the interval (0, 1)."
-        )
-    if (
-        Constants.PENALTY_INCREASE_THRESHOLD in constants
-        and constants[Constants.PENALTY_INCREASE_THRESHOLD] < 1.0
-    ):
-        raise ValueError(
-            "The constant penalty_increase_threshold must be "
-            "greater than or equal to 1."
-        )
-    if (
-        Constants.PENALTY_INCREASE_FACTOR in constants
-        and constants[Constants.PENALTY_INCREASE_FACTOR] <= 1.0
-    ):
-        raise ValueError(
-            "The constant penalty_increase_factor must be greater than 1."
-        )
-    if (
-        Constants.PENALTY_INCREASE_THRESHOLD in constants
-        and Constants.PENALTY_INCREASE_FACTOR in constants
-    ):
-        if (
-            constants[Constants.PENALTY_INCREASE_FACTOR]
-            < constants[Constants.PENALTY_INCREASE_THRESHOLD]
-        ):
-            raise ValueError(
-                "The constant penalty_increase_factor must be "
-                "greater than or equal to "
-                "penalty_increase_threshold."
-            )
-    elif Constants.PENALTY_INCREASE_THRESHOLD in constants:
-        constants[Constants.PENALTY_INCREASE_FACTOR.value] = np.max(
-            [
-                DEFAULT_CONSTANTS[Constants.PENALTY_INCREASE_FACTOR],
-                constants[Constants.PENALTY_INCREASE_THRESHOLD],
-            ]
-        )
-    elif Constants.PENALTY_INCREASE_FACTOR in constants:
-        constants[Constants.PENALTY_INCREASE_THRESHOLD.value] = np.min(
-            [
-                DEFAULT_CONSTANTS[Constants.PENALTY_INCREASE_THRESHOLD],
-                constants[Constants.PENALTY_INCREASE_FACTOR],
-            ]
-        )
-    else:
-        constants[Constants.PENALTY_INCREASE_THRESHOLD.value] = (
-            DEFAULT_CONSTANTS[Constants.PENALTY_INCREASE_THRESHOLD]
-        )
-        constants[Constants.PENALTY_INCREASE_FACTOR.value] = DEFAULT_CONSTANTS[
-            Constants.PENALTY_INCREASE_FACTOR
-        ]
-    constants.setdefault(
-        Constants.SHORT_STEP_THRESHOLD.value,
-        DEFAULT_CONSTANTS[Constants.SHORT_STEP_THRESHOLD],
-    )
-    constants[Constants.SHORT_STEP_THRESHOLD.value] = float(
-        constants[Constants.SHORT_STEP_THRESHOLD]
-    )
-    if (
-        constants[Constants.SHORT_STEP_THRESHOLD] <= 0.0
-        or constants[Constants.SHORT_STEP_THRESHOLD] >= 1.0
-    ):
-        raise ValueError(
-            "The constant short_step_threshold must be in the interval (0, 1)."
-        )
-    constants.setdefault(
-        Constants.LOW_RADIUS_FACTOR.value,
-        DEFAULT_CONSTANTS[Constants.LOW_RADIUS_FACTOR],
-    )
-    constants[Constants.LOW_RADIUS_FACTOR.value] = float(
-        constants[Constants.LOW_RADIUS_FACTOR]
-    )
-    if (
-        constants[Constants.LOW_RADIUS_FACTOR] <= 0.0
-        or constants[Constants.LOW_RADIUS_FACTOR] >= 1.0
-    ):
-        raise ValueError(
-            "The constant low_radius_factor must be in the interval (0, 1)."
-        )
-    constants.setdefault(
-        Constants.BYRD_OMOJOKUN_FACTOR.value,
-        DEFAULT_CONSTANTS[Constants.BYRD_OMOJOKUN_FACTOR],
-    )
-    constants[Constants.BYRD_OMOJOKUN_FACTOR.value] = float(
-        constants[Constants.BYRD_OMOJOKUN_FACTOR]
-    )
-    if (
-        constants[Constants.BYRD_OMOJOKUN_FACTOR] <= 0.0
-        or constants[Constants.BYRD_OMOJOKUN_FACTOR] >= 1.0
-    ):
-        raise ValueError(
-            "The constant byrd_omojokun_factor must be in the interval (0, 1)."
-        )
-    constants.setdefault(
-        Constants.THRESHOLD_RATIO_CONSTRAINTS.value,
-        DEFAULT_CONSTANTS[Constants.THRESHOLD_RATIO_CONSTRAINTS],
-    )
-    constants[Constants.THRESHOLD_RATIO_CONSTRAINTS.value] = float(
-        constants[Constants.THRESHOLD_RATIO_CONSTRAINTS]
-    )
-    if constants[Constants.THRESHOLD_RATIO_CONSTRAINTS] <= 1.0:
-        raise ValueError(
-            "The constant threshold_ratio_constraints must be greater than 1."
-        )
-    constants.setdefault(
-        Constants.LARGE_SHIFT_FACTOR.value,
-        DEFAULT_CONSTANTS[Constants.LARGE_SHIFT_FACTOR],
-    )
-    constants[Constants.LARGE_SHIFT_FACTOR.value] = float(
-        constants[Constants.LARGE_SHIFT_FACTOR]
-    )
-    if constants[Constants.LARGE_SHIFT_FACTOR] < 0.0:
-        raise ValueError("The constant large_shift_factor must be "
-                         "nonnegative.")
-    constants.setdefault(
-        Constants.LARGE_GRADIENT_FACTOR.value,
-        DEFAULT_CONSTANTS[Constants.LARGE_GRADIENT_FACTOR],
-    )
-    constants[Constants.LARGE_GRADIENT_FACTOR.value] = float(
-        constants[Constants.LARGE_GRADIENT_FACTOR]
-    )
-    if constants[Constants.LARGE_GRADIENT_FACTOR] <= 1.0:
-        raise ValueError(
-            "The constant large_gradient_factor must be greater than 1."
-        )
-    constants.setdefault(
-        Constants.RESOLUTION_FACTOR.value,
-        DEFAULT_CONSTANTS[Constants.RESOLUTION_FACTOR],
-    )
-    constants[Constants.RESOLUTION_FACTOR.value] = float(
-        constants[Constants.RESOLUTION_FACTOR]
-    )
-    if constants[Constants.RESOLUTION_FACTOR] <= 1.0:
-        raise ValueError(
-            "The constant resolution_factor must be greater than 1."
-        )
-    constants.setdefault(
-        Constants.IMPROVE_TCG.value,
-        DEFAULT_CONSTANTS[Constants.IMPROVE_TCG],
-    )
-    constants[Constants.IMPROVE_TCG.value] = bool(
-        constants[Constants.IMPROVE_TCG]
-    )
-
-    # Check whether they are any unknown options.
-    for key in kwargs:
-        if key not in Constants.__members__.values():
-            warnings.warn(f"Unknown constant: {key}.", RuntimeWarning, 3)
-    return constants
-
-
-def _eval(pb, framework, step, options):
-    """
-    Evaluate the objective and constraint functions.
-    """
-    if pb.n_eval >= options[Options.MAX_EVAL]:
-        raise MaxEvalError
-    x_eval = framework.x_best + step
-    fun_val, cub_val, ceq_val = pb(x_eval)
-    r_val = pb.maxcv(x_eval, cub_val, ceq_val)
-    if (
-        fun_val <= options[Options.TARGET]
-        and r_val <= options[Options.FEASIBILITY_TOL]
-    ):
-        raise TargetSuccess
-    if pb.is_feasibility and r_val <= options[Options.FEASIBILITY_TOL]:
-        raise FeasibleSuccess
-    return fun_val, cub_val, ceq_val
-
-
-def _build_result(pb, penalty, success, status, n_iter, options):
-    """
-    Build the result of the optimization process.
-    """
-    # Build the result.
-    x, fun, maxcv = pb.best_eval(penalty)
-    success = success and np.isfinite(fun) and np.isfinite(maxcv)
-    if status not in [ExitStatus.TARGET_SUCCESS, ExitStatus.FEASIBLE_SUCCESS]:
-        success = success and maxcv <= options[Options.FEASIBILITY_TOL]
-    result = OptimizeResult()
-    result.message = {
-        ExitStatus.RADIUS_SUCCESS: "The lower bound for the trust-region "
-                                   "radius has been reached",
-        ExitStatus.TARGET_SUCCESS: "The target objective function value has "
-                                   "been reached",
-        ExitStatus.FIXED_SUCCESS: "All variables are fixed by the bound "
-                                  "constraints",
-        ExitStatus.CALLBACK_SUCCESS: "The callback requested to stop the "
-                                     "optimization procedure",
-        ExitStatus.FEASIBLE_SUCCESS: "The feasibility problem received has "
-                                     "been solved successfully",
-        ExitStatus.MAX_EVAL_WARNING: "The maximum number of function "
-                                     "evaluations has been exceeded",
-        ExitStatus.MAX_ITER_WARNING: "The maximum number of iterations has "
-                                     "been exceeded",
-        ExitStatus.INFEASIBLE_ERROR: "The bound constraints are infeasible",
-        ExitStatus.LINALG_ERROR: "A linear algebra error occurred",
-    }.get(status, "Unknown exit status")
-    result.success = success
-    result.status = status.value
-    result.x = pb.build_x(x)
-    result.fun = fun
-    result.maxcv = maxcv
-    result.nfev = pb.n_eval
-    result.nit = n_iter
-    if options[Options.STORE_HISTORY]:
-        result.fun_history = pb.fun_history
-        result.maxcv_history = pb.maxcv_history
-
-    # Print the result if requested.
-    if options[Options.VERBOSE]:
-        _print_step(
-            result.message,
-            pb,
-            result.x,
-            result.fun,
-            result.maxcv,
-            result.nfev,
-            result.nit,
-        )
-    return result
-
-
-def _print_step(message, pb, x, fun_val, r_val, n_eval, n_iter):
-    """
-    Print information about the current state of the optimization process.
-    """
-    print()
-    print(f"{message}.")
-    print(f"Number of function evaluations: {n_eval}.")
-    print(f"Number of iterations: {n_iter}.")
-    if not pb.is_feasibility:
-        print(f"Least value of {pb.fun_name}: {fun_val}.")
-    print(f"Maximum constraint violation: {r_val}.")
-    with np.printoptions(**PRINT_OPTIONS):
-        print(f"Corresponding point: {x}.")
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/models.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/models.py
deleted file mode 100644
index 04ecb5c5551ccfe46c71c268c0fea0add419b840..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/models.py
+++ /dev/null
@@ -1,1525 +0,0 @@
-import warnings
-
-import numpy as np
-from scipy.linalg import eigh
-
-from .settings import Options
-from .utils import MaxEvalError, TargetSuccess, FeasibleSuccess
-
-
-EPS = np.finfo(float).eps
-
-
-class Interpolation:
-    """
-    Interpolation set.
-
-    This class stores a base point around which the models are expanded and the
-    interpolation points. The coordinates of the interpolation points are
-    relative to the base point.
-    """
-
-    def __init__(self, pb, options):
-        """
-        Initialize the interpolation set.
-
-        Parameters
-        ----------
-        pb : `cobyqa.problem.Problem`
-            Problem to be solved.
-        options : dict
-            Options of the solver.
-        """
-        # Reduce the initial trust-region radius if necessary.
-        self._debug = options[Options.DEBUG]
-        max_radius = 0.5 * np.min(pb.bounds.xu - pb.bounds.xl)
-        if options[Options.RHOBEG] > max_radius:
-            options[Options.RHOBEG.value] = max_radius
-            options[Options.RHOEND.value] = np.min(
-                [
-                    options[Options.RHOEND],
-                    max_radius,
-                ]
-            )
-
-        # Set the initial point around which the models are expanded.
-        self._x_base = np.copy(pb.x0)
-        very_close_xl_idx = (
-            self.x_base <= pb.bounds.xl + 0.5 * options[Options.RHOBEG]
-        )
-        self.x_base[very_close_xl_idx] = pb.bounds.xl[very_close_xl_idx]
-        close_xl_idx = (
-            pb.bounds.xl + 0.5 * options[Options.RHOBEG] < self.x_base
-        ) & (self.x_base <= pb.bounds.xl + options[Options.RHOBEG])
-        self.x_base[close_xl_idx] = np.minimum(
-            pb.bounds.xl[close_xl_idx] + options[Options.RHOBEG],
-            pb.bounds.xu[close_xl_idx],
-        )
-        very_close_xu_idx = (
-            self.x_base >= pb.bounds.xu - 0.5 * options[Options.RHOBEG]
-        )
-        self.x_base[very_close_xu_idx] = pb.bounds.xu[very_close_xu_idx]
-        close_xu_idx = (
-            self.x_base < pb.bounds.xu - 0.5 * options[Options.RHOBEG]
-        ) & (pb.bounds.xu - options[Options.RHOBEG] <= self.x_base)
-        self.x_base[close_xu_idx] = np.maximum(
-            pb.bounds.xu[close_xu_idx] - options[Options.RHOBEG],
-            pb.bounds.xl[close_xu_idx],
-        )
-
-        # Set the initial interpolation set.
-        self._xpt = np.zeros((pb.n, options[Options.NPT]))
-        for k in range(1, options[Options.NPT]):
-            if k <= pb.n:
-                if very_close_xu_idx[k - 1]:
-                    self.xpt[k - 1, k] = -options[Options.RHOBEG]
-                else:
-                    self.xpt[k - 1, k] = options[Options.RHOBEG]
-            elif k <= 2 * pb.n:
-                if very_close_xl_idx[k - pb.n - 1]:
-                    self.xpt[k - pb.n - 1, k] = 2.0 * options[Options.RHOBEG]
-                elif very_close_xu_idx[k - pb.n - 1]:
-                    self.xpt[k - pb.n - 1, k] = -2.0 * options[Options.RHOBEG]
-                else:
-                    self.xpt[k - pb.n - 1, k] = -options[Options.RHOBEG]
-            else:
-                spread = (k - pb.n - 1) // pb.n
-                k1 = k - (1 + spread) * pb.n - 1
-                k2 = (k1 + spread) % pb.n
-                self.xpt[k1, k] = self.xpt[k1, k1 + 1]
-                self.xpt[k2, k] = self.xpt[k2, k2 + 1]
-
-    @property
-    def n(self):
-        """
-        Number of variables.
-
-        Returns
-        -------
-        int
-            Number of variables.
-        """
-        return self.xpt.shape[0]
-
-    @property
-    def npt(self):
-        """
-        Number of interpolation points.
-
-        Returns
-        -------
-        int
-            Number of interpolation points.
-        """
-        return self.xpt.shape[1]
-
-    @property
-    def xpt(self):
-        """
-        Interpolation points.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n, npt)
-            Interpolation points.
-        """
-        return self._xpt
-
-    @xpt.setter
-    def xpt(self, xpt):
-        """
-        Set the interpolation points.
-
-        Parameters
-        ----------
-        xpt : `numpy.ndarray`, shape (n, npt)
-            New interpolation points.
-        """
-        if self._debug:
-            assert xpt.shape == (
-                self.n,
-                self.npt,
-            ), "The shape of `xpt` is not valid."
-        self._xpt = xpt
-
-    @property
-    def x_base(self):
-        """
-        Base point around which the models are expanded.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Base point around which the models are expanded.
-        """
-        return self._x_base
-
-    @x_base.setter
-    def x_base(self, x_base):
-        """
-        Set the base point around which the models are expanded.
-
-        Parameters
-        ----------
-        x_base : `numpy.ndarray`, shape (n,)
-            New base point around which the models are expanded.
-        """
-        if self._debug:
-            assert x_base.shape == (
-                self.n,
-            ), "The shape of `x_base` is not valid."
-        self._x_base = x_base
-
-    def point(self, k):
-        """
-        Get the `k`-th interpolation point.
-
-        The return point is relative to the origin.
-
-        Parameters
-        ----------
-        k : int
-            Index of the interpolation point.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            `k`-th interpolation point.
-        """
-        if self._debug:
-            assert 0 <= k < self.npt, "The index `k` is not valid."
-        return self.x_base + self.xpt[:, k]
-
-
-_cache = {"xpt": None, "a": None, "right_scaling": None, "eigh": None}
-
-
-def build_system(interpolation):
-    """
-    Build the left-hand side matrix of the interpolation system. The
-    matrix below stores W * diag(right_scaling),
-    where W is the theoretical matrix of the interpolation system. The
-    right scaling matrices is chosen to keep the elements in
-    the matrix well-balanced.
-
-    Parameters
-    ----------
-    interpolation : `cobyqa.models.Interpolation`
-        Interpolation set.
-    """
-
-    # Compute the scaled directions from the base point to the
-    # interpolation points. We scale the directions to avoid numerical
-    # difficulties.
-    if _cache["xpt"] is not None and np.array_equal(
-        interpolation.xpt, _cache["xpt"]
-    ):
-        return _cache["a"], _cache["right_scaling"], _cache["eigh"]
-
-    scale = np.max(np.linalg.norm(interpolation.xpt, axis=0), initial=EPS)
-    xpt_scale = interpolation.xpt / scale
-
-    n, npt = xpt_scale.shape
-    a = np.zeros((npt + n + 1, npt + n + 1))
-    a[:npt, :npt] = 0.5 * (xpt_scale.T @ xpt_scale) ** 2.0
-    a[:npt, npt] = 1.0
-    a[:npt, npt + 1:] = xpt_scale.T
-    a[npt, :npt] = 1.0
-    a[npt + 1:, :npt] = xpt_scale
-
-    # Build the left and right scaling diagonal matrices.
-    right_scaling = np.empty(npt + n + 1)
-    right_scaling[:npt] = 1.0 / scale**2.0
-    right_scaling[npt] = scale**2.0
-    right_scaling[npt + 1:] = scale
-
-    eig_values, eig_vectors = eigh(a, check_finite=False)
-
-    _cache["xpt"] = np.copy(interpolation.xpt)
-    _cache["a"] = np.copy(a)
-    _cache["right_scaling"] = np.copy(right_scaling)
-    _cache["eigh"] = (eig_values, eig_vectors)
-
-    return a, right_scaling, (eig_values, eig_vectors)
-
-
-class Quadratic:
-    """
-    Quadratic model.
-
-    This class stores the Hessian matrix of the quadratic model using the
-    implicit/explicit representation designed by Powell for NEWUOA [1]_.
-
-    References
-    ----------
-    .. [1] M. J. D. Powell. The NEWUOA software for unconstrained optimization
-       without derivatives. In G. Di Pillo and M. Roma, editors, *Large-Scale
-       Nonlinear Optimization*, volume 83 of Nonconvex Optim. Appl., pages
-       255--297. Springer, Boston, MA, USA, 2006. `doi:10.1007/0-387-30065-1_16
-       `_.
-    """
-
-    def __init__(self, interpolation, values, debug):
-        """
-        Initialize the quadratic model.
-
-        Parameters
-        ----------
-        interpolation : `cobyqa.models.Interpolation`
-            Interpolation set.
-        values : `numpy.ndarray`, shape (npt,)
-            Values of the interpolated function at the interpolation points.
-        debug : bool
-            Whether to make debugging tests during the execution.
-
-        Raises
-        ------
-        `numpy.linalg.LinAlgError`
-            If the interpolation system is ill-defined.
-        """
-        self._debug = debug
-        if self._debug:
-            assert values.shape == (
-                interpolation.npt,
-            ), "The shape of `values` is not valid."
-        if interpolation.npt < interpolation.n + 1:
-            raise ValueError(
-                f"The number of interpolation points must be at least "
-                f"{interpolation.n + 1}."
-            )
-        self._const, self._grad, self._i_hess, _ = self._get_model(
-            interpolation,
-            values,
-        )
-        self._e_hess = np.zeros((self.n, self.n))
-
-    def __call__(self, x, interpolation):
-        """
-        Evaluate the quadratic model at a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which the quadratic model is evaluated.
-        interpolation : `cobyqa.models.Interpolation`
-            Interpolation set.
-
-        Returns
-        -------
-        float
-            Value of the quadratic model at `x`.
-        """
-        if self._debug:
-            assert x.shape == (self.n,), "The shape of `x` is not valid."
-        x_diff = x - interpolation.x_base
-        return (
-            self._const
-            + self._grad @ x_diff
-            + 0.5
-            * (
-                self._i_hess @ (interpolation.xpt.T @ x_diff) ** 2.0
-                + x_diff @ self._e_hess @ x_diff
-            )
-        )
-
-    @property
-    def n(self):
-        """
-        Number of variables.
-
-        Returns
-        -------
-        int
-            Number of variables.
-        """
-        return self._grad.size
-
-    @property
-    def npt(self):
-        """
-        Number of interpolation points used to define the quadratic model.
-
-        Returns
-        -------
-        int
-            Number of interpolation points used to define the quadratic model.
-        """
-        return self._i_hess.size
-
-    def grad(self, x, interpolation):
-        """
-        Evaluate the gradient of the quadratic model at a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which the gradient of the quadratic model is evaluated.
-        interpolation : `cobyqa.models.Interpolation`
-            Interpolation set.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Gradient of the quadratic model at `x`.
-        """
-        if self._debug:
-            assert x.shape == (self.n,), "The shape of `x` is not valid."
-        x_diff = x - interpolation.x_base
-        return self._grad + self.hess_prod(x_diff, interpolation)
-
-    def hess(self, interpolation):
-        """
-        Evaluate the Hessian matrix of the quadratic model.
-
-        Parameters
-        ----------
-        interpolation : `cobyqa.models.Interpolation`
-            Interpolation set.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n, n)
-            Hessian matrix of the quadratic model.
-        """
-        return self._e_hess + interpolation.xpt @ (
-            self._i_hess[:, np.newaxis] * interpolation.xpt.T
-        )
-
-    def hess_prod(self, v, interpolation):
-        """
-        Evaluate the right product of the Hessian matrix of the quadratic model
-        with a given vector.
-
-        Parameters
-        ----------
-        v : `numpy.ndarray`, shape (n,)
-            Vector with which the Hessian matrix of the quadratic model is
-            multiplied from the right.
-        interpolation : `cobyqa.models.Interpolation`
-            Interpolation set.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Right product of the Hessian matrix of the quadratic model with
-            `v`.
-        """
-        if self._debug:
-            assert v.shape == (self.n,), "The shape of `v` is not valid."
-        return self._e_hess @ v + interpolation.xpt @ (
-            self._i_hess * (interpolation.xpt.T @ v)
-        )
-
-    def curv(self, v, interpolation):
-        """
-        Evaluate the curvature of the quadratic model along a given direction.
-
-        Parameters
-        ----------
-        v : `numpy.ndarray`, shape (n,)
-            Direction along which the curvature of the quadratic model is
-            evaluated.
-        interpolation : `cobyqa.models.Interpolation`
-            Interpolation set.
-
-        Returns
-        -------
-        float
-            Curvature of the quadratic model along `v`.
-        """
-        if self._debug:
-            assert v.shape == (self.n,), "The shape of `v` is not valid."
-        return (
-            v @ self._e_hess @ v
-            + self._i_hess @ (interpolation.xpt.T @ v) ** 2.0
-        )
-
-    def update(self, interpolation, k_new, dir_old, values_diff):
-        """
-        Update the quadratic model.
-
-        This method applies the derivative-free symmetric Broyden update to the
-        quadratic model. The `knew`-th interpolation point must be updated
-        before calling this method.
-
-        Parameters
-        ----------
-        interpolation : `cobyqa.models.Interpolation`
-            Updated interpolation set.
-        k_new : int
-            Index of the updated interpolation point.
-        dir_old : `numpy.ndarray`, shape (n,)
-            Value of ``interpolation.xpt[:, k_new]`` before the update.
-        values_diff : `numpy.ndarray`, shape (npt,)
-            Differences between the values of the interpolated nonlinear
-            function and the previous quadratic model at the updated
-            interpolation points.
-
-        Raises
-        ------
-        `numpy.linalg.LinAlgError`
-            If the interpolation system is ill-defined.
-        """
-        if self._debug:
-            assert 0 <= k_new < self.npt, "The index `k_new` is not valid."
-            assert dir_old.shape == (
-                self.n,
-            ), "The shape of `dir_old` is not valid."
-            assert values_diff.shape == (
-                self.npt,
-            ), "The shape of `values_diff` is not valid."
-
-        # Forward the k_new-th element of the implicit Hessian matrix to the
-        # explicit Hessian matrix. This must be done because the implicit
-        # Hessian matrix is related to the interpolation points, and the
-        # k_new-th interpolation point is modified.
-        self._e_hess += self._i_hess[k_new] * np.outer(dir_old, dir_old)
-        self._i_hess[k_new] = 0.0
-
-        # Update the quadratic model.
-        const, grad, i_hess, ill_conditioned = self._get_model(
-            interpolation,
-            values_diff,
-        )
-        self._const += const
-        self._grad += grad
-        self._i_hess += i_hess
-        return ill_conditioned
-
-    def shift_x_base(self, interpolation, new_x_base):
-        """
-        Shift the point around which the quadratic model is defined.
-
-        Parameters
-        ----------
-        interpolation : `cobyqa.models.Interpolation`
-            Previous interpolation set.
-        new_x_base : `numpy.ndarray`, shape (n,)
-            Point that will replace ``interpolation.x_base``.
-        """
-        if self._debug:
-            assert new_x_base.shape == (
-                self.n,
-            ), "The shape of `new_x_base` is not valid."
-        self._const = self(new_x_base, interpolation)
-        self._grad = self.grad(new_x_base, interpolation)
-        shift = new_x_base - interpolation.x_base
-        update = np.outer(
-            shift,
-            (interpolation.xpt - 0.5 * shift[:, np.newaxis]) @ self._i_hess,
-        )
-        self._e_hess += update + update.T
-
-    @staticmethod
-    def solve_systems(interpolation, rhs):
-        """
-        Solve the interpolation systems.
-
-        Parameters
-        ----------
-        interpolation : `cobyqa.models.Interpolation`
-            Interpolation set.
-        rhs : `numpy.ndarray`, shape (npt + n + 1, m)
-            Right-hand side vectors of the ``m`` interpolation systems.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (npt + n + 1, m)
-            Solutions of the interpolation systems.
-        `numpy.ndarray`, shape (m, )
-            Whether the interpolation systems are ill-conditioned.
-
-        Raises
-        ------
-        `numpy.linalg.LinAlgError`
-            If the interpolation systems are ill-defined.
-        """
-        n, npt = interpolation.xpt.shape
-        assert (
-            rhs.ndim == 2 and rhs.shape[0] == npt + n + 1
-        ), "The shape of `rhs` is not valid."
-
-        # Build the left-hand side matrix of the interpolation system. The
-        # matrix below stores diag(left_scaling) * W * diag(right_scaling),
-        # where W is the theoretical matrix of the interpolation system. The
-        # left and right scaling matrices are chosen to keep the elements in
-        # the matrix well-balanced.
-        a, right_scaling, eig = build_system(interpolation)
-
-        # Build the solution. After a discussion with Mike Saunders and Alexis
-        # Montoison during their visit to the Hong Kong Polytechnic University
-        # in 2024, we decided to use the eigendecomposition of the symmetric
-        # matrix a. This is more stable than the previously employed LBL
-        # decomposition, and allows us to directly detect ill-conditioning of
-        # the system and to build the least-squares solution if necessary.
-        # Numerical experiments have shown that this strategy improves the
-        # performance of the solver.
-        rhs_scaled = rhs * right_scaling[:, np.newaxis]
-        if not (np.all(np.isfinite(a)) and np.all(np.isfinite(rhs_scaled))):
-            raise np.linalg.LinAlgError(
-                "The interpolation system is ill-defined."
-            )
-
-        # calculated in build_system
-        eig_values, eig_vectors = eig
-
-        large_eig_values = np.abs(eig_values) > EPS
-        eig_vectors = eig_vectors[:, large_eig_values]
-        inv_eig_values = 1.0 / eig_values[large_eig_values]
-        ill_conditioned = ~np.all(large_eig_values, 0)
-        left_scaled_solutions = eig_vectors @ (
-            (eig_vectors.T @ rhs_scaled) * inv_eig_values[:, np.newaxis]
-        )
-        return (
-            left_scaled_solutions * right_scaling[:, np.newaxis],
-            ill_conditioned,
-        )
-
-    @staticmethod
-    def _get_model(interpolation, values):
-        """
-        Solve the interpolation system.
-
-        Parameters
-        ----------
-        interpolation : `cobyqa.models.Interpolation`
-            Interpolation set.
-        values : `numpy.ndarray`, shape (npt,)
-            Values of the interpolated function at the interpolation points.
-
-        Returns
-        -------
-        float
-            Constant term of the quadratic model.
-        `numpy.ndarray`, shape (n,)
-            Gradient of the quadratic model at ``interpolation.x_base``.
-        `numpy.ndarray`, shape (npt,)
-            Implicit Hessian matrix of the quadratic model.
-
-        Raises
-        ------
-        `numpy.linalg.LinAlgError`
-            If the interpolation system is ill-defined.
-        """
-        assert values.shape == (
-            interpolation.npt,
-        ), "The shape of `values` is not valid."
-        n, npt = interpolation.xpt.shape
-        x, ill_conditioned = Quadratic.solve_systems(
-            interpolation,
-            np.block(
-                [
-                    [
-                        values,
-                        np.zeros(n + 1),
-                    ]
-                ]
-            ).T,
-        )
-        return x[npt, 0], x[npt + 1:, 0], x[:npt, 0], ill_conditioned
-
-
-class Models:
-    """
-    Models for a nonlinear optimization problem.
-    """
-
-    def __init__(self, pb, options):
-        """
-        Initialize the models.
-
-        Parameters
-        ----------
-        pb : `cobyqa.problem.Problem`
-            Problem to be solved.
-        options : dict
-            Options of the solver.
-
-        Raises
-        ------
-        `cobyqa.utils.MaxEvalError`
-            If the maximum number of evaluations is reached.
-        `cobyqa.utils.TargetSuccess`
-            If a nearly feasible point has been found with an objective
-            function value below the target.
-        `cobyqa.utils.FeasibleSuccess`
-            If a feasible point has been found for a feasibility problem.
-        `numpy.linalg.LinAlgError`
-            If the interpolation system is ill-defined.
-        """
-        # Set the initial interpolation set.
-        self._debug = options[Options.DEBUG]
-        self._interpolation = Interpolation(pb, options)
-
-        # Evaluate the nonlinear functions at the initial interpolation points.
-        x_eval = self.interpolation.point(0)
-        fun_init, cub_init, ceq_init = pb(x_eval)
-        self._fun_val = np.full(options[Options.NPT], np.nan)
-        self._cub_val = np.full((options[Options.NPT], cub_init.size), np.nan)
-        self._ceq_val = np.full((options[Options.NPT], ceq_init.size), np.nan)
-        for k in range(options[Options.NPT]):
-            if k >= options[Options.MAX_EVAL]:
-                raise MaxEvalError
-            if k == 0:
-                self.fun_val[k] = fun_init
-                self.cub_val[k, :] = cub_init
-                self.ceq_val[k, :] = ceq_init
-            else:
-                x_eval = self.interpolation.point(k)
-                self.fun_val[k], self.cub_val[k, :], self.ceq_val[k, :] = pb(
-                    x_eval
-                )
-
-            # Stop the iterations if the problem is a feasibility problem and
-            # the current interpolation point is feasible.
-            if (
-                pb.is_feasibility
-                and pb.maxcv(
-                    self.interpolation.point(k),
-                    self.cub_val[k, :],
-                    self.ceq_val[k, :],
-                )
-                <= options[Options.FEASIBILITY_TOL]
-            ):
-                raise FeasibleSuccess
-
-            # Stop the iterations if the current interpolation point is nearly
-            # feasible and has an objective function value below the target.
-            if (
-                self._fun_val[k] <= options[Options.TARGET]
-                and pb.maxcv(
-                    self.interpolation.point(k),
-                    self.cub_val[k, :],
-                    self.ceq_val[k, :],
-                )
-                <= options[Options.FEASIBILITY_TOL]
-            ):
-                raise TargetSuccess
-
-        # Build the initial quadratic models.
-        self._fun = Quadratic(
-            self.interpolation,
-            self._fun_val,
-            options[Options.DEBUG],
-        )
-        self._cub = np.empty(self.m_nonlinear_ub, dtype=Quadratic)
-        self._ceq = np.empty(self.m_nonlinear_eq, dtype=Quadratic)
-        for i in range(self.m_nonlinear_ub):
-            self._cub[i] = Quadratic(
-                self.interpolation,
-                self.cub_val[:, i],
-                options[Options.DEBUG],
-            )
-        for i in range(self.m_nonlinear_eq):
-            self._ceq[i] = Quadratic(
-                self.interpolation,
-                self.ceq_val[:, i],
-                options[Options.DEBUG],
-            )
-        if self._debug:
-            self._check_interpolation_conditions()
-
-    @property
-    def n(self):
-        """
-        Dimension of the problem.
-
-        Returns
-        -------
-        int
-            Dimension of the problem.
-        """
-        return self.interpolation.n
-
-    @property
-    def npt(self):
-        """
-        Number of interpolation points.
-
-        Returns
-        -------
-        int
-            Number of interpolation points.
-        """
-        return self.interpolation.npt
-
-    @property
-    def m_nonlinear_ub(self):
-        """
-        Number of nonlinear inequality constraints.
-
-        Returns
-        -------
-        int
-            Number of nonlinear inequality constraints.
-        """
-        return self.cub_val.shape[1]
-
-    @property
-    def m_nonlinear_eq(self):
-        """
-        Number of nonlinear equality constraints.
-
-        Returns
-        -------
-        int
-            Number of nonlinear equality constraints.
-        """
-        return self.ceq_val.shape[1]
-
-    @property
-    def interpolation(self):
-        """
-        Interpolation set.
-
-        Returns
-        -------
-        `cobyqa.models.Interpolation`
-            Interpolation set.
-        """
-        return self._interpolation
-
-    @property
-    def fun_val(self):
-        """
-        Values of the objective function at the interpolation points.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (npt,)
-            Values of the objective function at the interpolation points.
-        """
-        return self._fun_val
-
-    @property
-    def cub_val(self):
-        """
-        Values of the nonlinear inequality constraint functions at the
-        interpolation points.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (npt, m_nonlinear_ub)
-            Values of the nonlinear inequality constraint functions at the
-            interpolation points.
-        """
-        return self._cub_val
-
-    @property
-    def ceq_val(self):
-        """
-        Values of the nonlinear equality constraint functions at the
-        interpolation points.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (npt, m_nonlinear_eq)
-            Values of the nonlinear equality constraint functions at the
-            interpolation points.
-        """
-        return self._ceq_val
-
-    def fun(self, x):
-        """
-        Evaluate the quadratic model of the objective function at a given
-        point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which to evaluate the quadratic model of the objective
-            function.
-
-        Returns
-        -------
-        float
-            Value of the quadratic model of the objective function at `x`.
-        """
-        if self._debug:
-            assert x.shape == (self.n,), "The shape of `x` is not valid."
-        return self._fun(x, self.interpolation)
-
-    def fun_grad(self, x):
-        """
-        Evaluate the gradient of the quadratic model of the objective function
-        at a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which to evaluate the gradient of the quadratic model of
-            the objective function.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Gradient of the quadratic model of the objective function at `x`.
-        """
-        if self._debug:
-            assert x.shape == (self.n,), "The shape of `x` is not valid."
-        return self._fun.grad(x, self.interpolation)
-
-    def fun_hess(self):
-        """
-        Evaluate the Hessian matrix of the quadratic model of the objective
-        function.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n, n)
-            Hessian matrix of the quadratic model of the objective function.
-        """
-        return self._fun.hess(self.interpolation)
-
-    def fun_hess_prod(self, v):
-        """
-        Evaluate the right product of the Hessian matrix of the quadratic model
-        of the objective function with a given vector.
-
-        Parameters
-        ----------
-        v : `numpy.ndarray`, shape (n,)
-            Vector with which the Hessian matrix of the quadratic model of the
-            objective function is multiplied from the right.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Right product of the Hessian matrix of the quadratic model of the
-            objective function with `v`.
-        """
-        if self._debug:
-            assert v.shape == (self.n,), "The shape of `v` is not valid."
-        return self._fun.hess_prod(v, self.interpolation)
-
-    def fun_curv(self, v):
-        """
-        Evaluate the curvature of the quadratic model of the objective function
-        along a given direction.
-
-        Parameters
-        ----------
-        v : `numpy.ndarray`, shape (n,)
-            Direction along which the curvature of the quadratic model of the
-            objective function is evaluated.
-
-        Returns
-        -------
-        float
-            Curvature of the quadratic model of the objective function along
-            `v`.
-        """
-        if self._debug:
-            assert v.shape == (self.n,), "The shape of `v` is not valid."
-        return self._fun.curv(v, self.interpolation)
-
-    def fun_alt_grad(self, x):
-        """
-        Evaluate the gradient of the alternative quadratic model of the
-        objective function at a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which to evaluate the gradient of the alternative
-            quadratic model of the objective function.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Gradient of the alternative quadratic model of the objective
-            function at `x`.
-
-        Raises
-        ------
-        `numpy.linalg.LinAlgError`
-            If the interpolation system is ill-defined.
-        """
-        if self._debug:
-            assert x.shape == (self.n,), "The shape of `x` is not valid."
-        model = Quadratic(self.interpolation, self.fun_val, self._debug)
-        return model.grad(x, self.interpolation)
-
-    def cub(self, x, mask=None):
-        """
-        Evaluate the quadratic models of the nonlinear inequality functions at
-        a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which to evaluate the quadratic models of the nonlinear
-            inequality functions.
-        mask : `numpy.ndarray`, shape (m_nonlinear_ub,), optional
-            Mask of the quadratic models to consider.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Values of the quadratic model of the nonlinear inequality
-            functions.
-        """
-        if self._debug:
-            assert x.shape == (self.n,), "The shape of `x` is not valid."
-            assert mask is None or mask.shape == (
-                self.m_nonlinear_ub,
-            ), "The shape of `mask` is not valid."
-        return np.array(
-            [model(x, self.interpolation) for model in self._get_cub(mask)]
-        )
-
-    def cub_grad(self, x, mask=None):
-        """
-        Evaluate the gradients of the quadratic models of the nonlinear
-        inequality functions at a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which to evaluate the gradients of the quadratic models of
-            the nonlinear inequality functions.
-        mask : `numpy.ndarray`, shape (m_nonlinear_eq,), optional
-            Mask of the quadratic models to consider.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Gradients of the quadratic model of the nonlinear inequality
-            functions.
-        """
-        if self._debug:
-            assert x.shape == (self.n,), "The shape of `x` is not valid."
-            assert mask is None or mask.shape == (
-                self.m_nonlinear_ub,
-            ), "The shape of `mask` is not valid."
-        return np.reshape(
-            [model.grad(x, self.interpolation)
-             for model in self._get_cub(mask)],
-            (-1, self.n),
-        )
-
-    def cub_hess(self, mask=None):
-        """
-        Evaluate the Hessian matrices of the quadratic models of the nonlinear
-        inequality functions.
-
-        Parameters
-        ----------
-        mask : `numpy.ndarray`, shape (m_nonlinear_ub,), optional
-            Mask of the quadratic models to consider.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Hessian matrices of the quadratic models of the nonlinear
-            inequality functions.
-        """
-        if self._debug:
-            assert mask is None or mask.shape == (
-                self.m_nonlinear_ub,
-            ), "The shape of `mask` is not valid."
-        return np.reshape(
-            [model.hess(self.interpolation) for model in self._get_cub(mask)],
-            (-1, self.n, self.n),
-        )
-
-    def cub_hess_prod(self, v, mask=None):
-        """
-        Evaluate the right product of the Hessian matrices of the quadratic
-        models of the nonlinear inequality functions with a given vector.
-
-        Parameters
-        ----------
-        v : `numpy.ndarray`, shape (n,)
-            Vector with which the Hessian matrices of the quadratic models of
-            the nonlinear inequality functions are multiplied from the right.
-        mask : `numpy.ndarray`, shape (m_nonlinear_ub,), optional
-            Mask of the quadratic models to consider.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Right products of the Hessian matrices of the quadratic models of
-            the nonlinear inequality functions with `v`.
-        """
-        if self._debug:
-            assert v.shape == (self.n,), "The shape of `v` is not valid."
-            assert mask is None or mask.shape == (
-                self.m_nonlinear_ub,
-            ), "The shape of `mask` is not valid."
-        return np.reshape(
-            [
-                model.hess_prod(v, self.interpolation)
-                for model in self._get_cub(mask)
-            ],
-            (-1, self.n),
-        )
-
-    def cub_curv(self, v, mask=None):
-        """
-        Evaluate the curvature of the quadratic models of the nonlinear
-        inequality functions along a given direction.
-
-        Parameters
-        ----------
-        v : `numpy.ndarray`, shape (n,)
-            Direction along which the curvature of the quadratic models of the
-            nonlinear inequality functions is evaluated.
-        mask : `numpy.ndarray`, shape (m_nonlinear_ub,), optional
-            Mask of the quadratic models to consider.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Curvature of the quadratic models of the nonlinear inequality
-            functions along `v`.
-        """
-        if self._debug:
-            assert v.shape == (self.n,), "The shape of `v` is not valid."
-            assert mask is None or mask.shape == (
-                self.m_nonlinear_ub,
-            ), "The shape of `mask` is not valid."
-        return np.array(
-            [model.curv(v, self.interpolation)
-             for model in self._get_cub(mask)]
-        )
-
-    def ceq(self, x, mask=None):
-        """
-        Evaluate the quadratic models of the nonlinear equality functions at a
-        given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which to evaluate the quadratic models of the nonlinear
-            equality functions.
-        mask : `numpy.ndarray`, shape (m_nonlinear_eq,), optional
-            Mask of the quadratic models to consider.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Values of the quadratic model of the nonlinear equality functions.
-        """
-        if self._debug:
-            assert x.shape == (self.n,), "The shape of `x` is not valid."
-            assert mask is None or mask.shape == (
-                self.m_nonlinear_eq,
-            ), "The shape of `mask` is not valid."
-        return np.array(
-            [model(x, self.interpolation) for model in self._get_ceq(mask)]
-        )
-
-    def ceq_grad(self, x, mask=None):
-        """
-        Evaluate the gradients of the quadratic models of the nonlinear
-        equality functions at a given point.
-
-        Parameters
-        ----------
-        x : `numpy.ndarray`, shape (n,)
-            Point at which to evaluate the gradients of the quadratic models of
-            the nonlinear equality functions.
-        mask : `numpy.ndarray`, shape (m_nonlinear_eq,), optional
-            Mask of the quadratic models to consider.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Gradients of the quadratic model of the nonlinear equality
-            functions.
-        """
-        if self._debug:
-            assert x.shape == (self.n,), "The shape of `x` is not valid."
-            assert mask is None or mask.shape == (
-                self.m_nonlinear_eq,
-            ), "The shape of `mask` is not valid."
-        return np.reshape(
-            [model.grad(x, self.interpolation)
-             for model in self._get_ceq(mask)],
-            (-1, self.n),
-        )
-
-    def ceq_hess(self, mask=None):
-        """
-        Evaluate the Hessian matrices of the quadratic models of the nonlinear
-        equality functions.
-
-        Parameters
-        ----------
-        mask : `numpy.ndarray`, shape (m_nonlinear_eq,), optional
-            Mask of the quadratic models to consider.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Hessian matrices of the quadratic models of the nonlinear equality
-            functions.
-        """
-        if self._debug:
-            assert mask is None or mask.shape == (
-                self.m_nonlinear_eq,
-            ), "The shape of `mask` is not valid."
-        return np.reshape(
-            [model.hess(self.interpolation) for model in self._get_ceq(mask)],
-            (-1, self.n, self.n),
-        )
-
-    def ceq_hess_prod(self, v, mask=None):
-        """
-        Evaluate the right product of the Hessian matrices of the quadratic
-        models of the nonlinear equality functions with a given vector.
-
-        Parameters
-        ----------
-        v : `numpy.ndarray`, shape (n,)
-            Vector with which the Hessian matrices of the quadratic models of
-            the nonlinear equality functions are multiplied from the right.
-        mask : `numpy.ndarray`, shape (m_nonlinear_eq,), optional
-            Mask of the quadratic models to consider.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Right products of the Hessian matrices of the quadratic models of
-            the nonlinear equality functions with `v`.
-        """
-        if self._debug:
-            assert v.shape == (self.n,), "The shape of `v` is not valid."
-            assert mask is None or mask.shape == (
-                self.m_nonlinear_eq,
-            ), "The shape of `mask` is not valid."
-        return np.reshape(
-            [
-                model.hess_prod(v, self.interpolation)
-                for model in self._get_ceq(mask)
-            ],
-            (-1, self.n),
-        )
-
-    def ceq_curv(self, v, mask=None):
-        """
-        Evaluate the curvature of the quadratic models of the nonlinear
-        equality functions along a given direction.
-
-        Parameters
-        ----------
-        v : `numpy.ndarray`, shape (n,)
-            Direction along which the curvature of the quadratic models of the
-            nonlinear equality functions is evaluated.
-        mask : `numpy.ndarray`, shape (m_nonlinear_eq,), optional
-            Mask of the quadratic models to consider.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Curvature of the quadratic models of the nonlinear equality
-            functions along `v`.
-        """
-        if self._debug:
-            assert v.shape == (self.n,), "The shape of `v` is not valid."
-            assert mask is None or mask.shape == (
-                self.m_nonlinear_eq,
-            ), "The shape of `mask` is not valid."
-        return np.array(
-            [model.curv(v, self.interpolation)
-             for model in self._get_ceq(mask)]
-        )
-
-    def reset_models(self):
-        """
-        Set the quadratic models of the objective function, nonlinear
-        inequality constraints, and nonlinear equality constraints to the
-        alternative quadratic models.
-
-        Raises
-        ------
-        `numpy.linalg.LinAlgError`
-            If the interpolation system is ill-defined.
-        """
-        self._fun = Quadratic(self.interpolation, self.fun_val, self._debug)
-        for i in range(self.m_nonlinear_ub):
-            self._cub[i] = Quadratic(
-                self.interpolation,
-                self.cub_val[:, i],
-                self._debug,
-            )
-        for i in range(self.m_nonlinear_eq):
-            self._ceq[i] = Quadratic(
-                self.interpolation,
-                self.ceq_val[:, i],
-                self._debug,
-            )
-        if self._debug:
-            self._check_interpolation_conditions()
-
-    def update_interpolation(self, k_new, x_new, fun_val, cub_val, ceq_val):
-        """
-        Update the interpolation set.
-
-        This method updates the interpolation set by replacing the `knew`-th
-        interpolation point with `xnew`. It also updates the function values
-        and the quadratic models.
-
-        Parameters
-        ----------
-        k_new : int
-            Index of the updated interpolation point.
-        x_new : `numpy.ndarray`, shape (n,)
-            New interpolation point. Its value is interpreted as relative to
-            the origin, not the base point.
-        fun_val : float
-            Value of the objective function at `x_new`.
-            Objective function value at `x_new`.
-        cub_val : `numpy.ndarray`, shape (m_nonlinear_ub,)
-            Values of the nonlinear inequality constraints at `x_new`.
-        ceq_val : `numpy.ndarray`, shape (m_nonlinear_eq,)
-            Values of the nonlinear equality constraints at `x_new`.
-
-        Raises
-        ------
-        `numpy.linalg.LinAlgError`
-            If the interpolation system is ill-defined.
-        """
-        if self._debug:
-            assert 0 <= k_new < self.npt, "The index `k_new` is not valid."
-            assert x_new.shape == (self.n,), \
-                "The shape of `x_new` is not valid."
-            assert isinstance(fun_val, float), \
-                "The function value is not valid."
-            assert cub_val.shape == (
-                self.m_nonlinear_ub,
-            ), "The shape of `cub_val` is not valid."
-            assert ceq_val.shape == (
-                self.m_nonlinear_eq,
-            ), "The shape of `ceq_val` is not valid."
-
-        # Compute the updates in the interpolation conditions.
-        fun_diff = np.zeros(self.npt)
-        cub_diff = np.zeros(self.cub_val.shape)
-        ceq_diff = np.zeros(self.ceq_val.shape)
-        fun_diff[k_new] = fun_val - self.fun(x_new)
-        cub_diff[k_new, :] = cub_val - self.cub(x_new)
-        ceq_diff[k_new, :] = ceq_val - self.ceq(x_new)
-
-        # Update the function values.
-        self.fun_val[k_new] = fun_val
-        self.cub_val[k_new, :] = cub_val
-        self.ceq_val[k_new, :] = ceq_val
-
-        # Update the interpolation set.
-        dir_old = np.copy(self.interpolation.xpt[:, k_new])
-        self.interpolation.xpt[:, k_new] = x_new - self.interpolation.x_base
-
-        # Update the quadratic models.
-        ill_conditioned = self._fun.update(
-            self.interpolation,
-            k_new,
-            dir_old,
-            fun_diff,
-        )
-        for i in range(self.m_nonlinear_ub):
-            ill_conditioned = ill_conditioned or self._cub[i].update(
-                self.interpolation,
-                k_new,
-                dir_old,
-                cub_diff[:, i],
-            )
-        for i in range(self.m_nonlinear_eq):
-            ill_conditioned = ill_conditioned or self._ceq[i].update(
-                self.interpolation,
-                k_new,
-                dir_old,
-                ceq_diff[:, i],
-            )
-        if self._debug:
-            self._check_interpolation_conditions()
-        return ill_conditioned
-
-    def determinants(self, x_new, k_new=None):
-        """
-        Compute the normalized determinants of the new interpolation systems.
-
-        Parameters
-        ----------
-        x_new : `numpy.ndarray`, shape (n,)
-            New interpolation point. Its value is interpreted as relative to
-            the origin, not the base point.
-        k_new : int, optional
-            Index of the updated interpolation point. If `k_new` is not
-            specified, all the possible determinants are computed.
-
-        Returns
-        -------
-        {float, `numpy.ndarray`, shape (npt,)}
-            Determinant(s) of the new interpolation system.
-
-        Raises
-        ------
-        `numpy.linalg.LinAlgError`
-            If the interpolation system is ill-defined.
-
-        Notes
-        -----
-        The determinants are normalized by the determinant of the current
-        interpolation system. For stability reasons, the calculations are done
-        using the formula (2.12) in [1]_.
-
-        References
-        ----------
-        .. [1] M. J. D. Powell. On updating the inverse of a KKT matrix.
-           Technical Report DAMTP 2004/NA01, Department of Applied Mathematics
-           and Theoretical Physics, University of Cambridge, Cambridge, UK,
-           2004.
-        """
-        if self._debug:
-            assert x_new.shape == (self.n,), \
-                "The shape of `x_new` is not valid."
-            assert (
-                k_new is None or 0 <= k_new < self.npt
-            ), "The index `k_new` is not valid."
-
-        # Compute the values independent of k_new.
-        shift = x_new - self.interpolation.x_base
-        new_col = np.empty((self.npt + self.n + 1, 1))
-        new_col[: self.npt, 0] = (
-                0.5 * (self.interpolation.xpt.T @ shift) ** 2.0)
-        new_col[self.npt, 0] = 1.0
-        new_col[self.npt + 1:, 0] = shift
-        inv_new_col = Quadratic.solve_systems(self.interpolation, new_col)[0]
-        beta = 0.5 * (shift @ shift) ** 2.0 - new_col[:, 0] @ inv_new_col[:, 0]
-
-        # Compute the values that depend on k.
-        if k_new is None:
-            coord_vec = np.eye(self.npt + self.n + 1, self.npt)
-            alpha = np.diag(
-                Quadratic.solve_systems(
-                    self.interpolation,
-                    coord_vec,
-                )[0]
-            )
-            tau = inv_new_col[: self.npt, 0]
-        else:
-            coord_vec = np.eye(self.npt + self.n + 1, 1, -k_new)
-            alpha = Quadratic.solve_systems(
-                self.interpolation,
-                coord_vec,
-            )[
-                0
-            ][k_new, 0]
-            tau = inv_new_col[k_new, 0]
-        return alpha * beta + tau**2.0
-
-    def shift_x_base(self, new_x_base, options):
-        """
-        Shift the base point without changing the interpolation set.
-
-        Parameters
-        ----------
-        new_x_base : `numpy.ndarray`, shape (n,)
-            New base point.
-        options : dict
-            Options of the solver.
-        """
-        if self._debug:
-            assert new_x_base.shape == (
-                self.n,
-            ), "The shape of `new_x_base` is not valid."
-
-        # Update the models.
-        self._fun.shift_x_base(self.interpolation, new_x_base)
-        for model in self._cub:
-            model.shift_x_base(self.interpolation, new_x_base)
-        for model in self._ceq:
-            model.shift_x_base(self.interpolation, new_x_base)
-
-        # Update the base point and the interpolation points.
-        shift = new_x_base - self.interpolation.x_base
-        self.interpolation.x_base += shift
-        self.interpolation.xpt -= shift[:, np.newaxis]
-        if options[Options.DEBUG]:
-            self._check_interpolation_conditions()
-
-    def _get_cub(self, mask=None):
-        """
-        Get the quadratic models of the nonlinear inequality constraints.
-
-        Parameters
-        ----------
-        mask : `numpy.ndarray`, shape (m_nonlinear_ub,), optional
-            Mask of the quadratic models to return.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Quadratic models of the nonlinear inequality constraints.
-        """
-        return self._cub if mask is None else self._cub[mask]
-
-    def _get_ceq(self, mask=None):
-        """
-        Get the quadratic models of the nonlinear equality constraints.
-
-        Parameters
-        ----------
-        mask : `numpy.ndarray`, shape (m_nonlinear_eq,), optional
-            Mask of the quadratic models to return.
-
-        Returns
-        -------
-        `numpy.ndarray`
-            Quadratic models of the nonlinear equality constraints.
-        """
-        return self._ceq if mask is None else self._ceq[mask]
-
-    def _check_interpolation_conditions(self):
-        """
-        Check the interpolation conditions of all quadratic models.
-        """
-        error_fun = 0.0
-        error_cub = 0.0
-        error_ceq = 0.0
-        for k in range(self.npt):
-            error_fun = np.max(
-                [
-                    error_fun,
-                    np.abs(
-                        self.fun(self.interpolation.point(k)) - self.fun_val[k]
-                    ),
-                ]
-            )
-            error_cub = np.max(
-                np.abs(
-                    self.cub(self.interpolation.point(k)) - self.cub_val[k, :]
-                ),
-                initial=error_cub,
-            )
-            error_ceq = np.max(
-                np.abs(
-                    self.ceq(self.interpolation.point(k)) - self.ceq_val[k, :]
-                ),
-                initial=error_ceq,
-            )
-        tol = 10.0 * np.sqrt(EPS) * max(self.n, self.npt)
-        if error_fun > tol * np.max(np.abs(self.fun_val), initial=1.0):
-            warnings.warn(
-                "The interpolation conditions for the objective function are "
-                "not satisfied.",
-                RuntimeWarning,
-                2,
-            )
-        if error_cub > tol * np.max(np.abs(self.cub_val), initial=1.0):
-            warnings.warn(
-                "The interpolation conditions for the inequality constraint "
-                "function are not satisfied.",
-                RuntimeWarning,
-                2,
-            )
-        if error_ceq > tol * np.max(np.abs(self.ceq_val), initial=1.0):
-            warnings.warn(
-                "The interpolation conditions for the equality constraint "
-                "function are not satisfied.",
-                RuntimeWarning,
-                2,
-            )
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/problem.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/problem.py
deleted file mode 100644
index d298ee2e27dfa7524e010fe1787b19888f5a496c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/problem.py
+++ /dev/null
@@ -1,1287 +0,0 @@
-from contextlib import suppress
-from inspect import signature
-import copy
-
-import numpy as np
-from scipy.optimize import (
-    Bounds,
-    LinearConstraint,
-    NonlinearConstraint,
-    OptimizeResult,
-)
-from scipy.optimize._constraints import PreparedConstraint
-
-
-from .settings import PRINT_OPTIONS, BARRIER
-from .utils import CallbackSuccess, get_arrays_tol
-from .utils import exact_1d_array
-
-
-class ObjectiveFunction:
-    """
-    Real-valued objective function.
-    """
-
-    def __init__(self, fun, verbose, debug, *args):
-        """
-        Initialize the objective function.
-
-        Parameters
-        ----------
-        fun : {callable, None}
-            Function to evaluate, or None.
-
-                ``fun(x, *args) -> float``
-
-            where ``x`` is an array with shape (n,) and `args` is a tuple.
-        verbose : bool
-            Whether to print the function evaluations.
-        debug : bool
-            Whether to make debugging tests during the execution.
-        *args : tuple
-            Additional arguments to be passed to the function.
-        """
-        if debug:
-            assert fun is None or callable(fun)
-            assert isinstance(verbose, bool)
-            assert isinstance(debug, bool)
-
-        self._fun = fun
-        self._verbose = verbose
-        self._args = args
-        self._n_eval = 0
-
-    def __call__(self, x):
-        """
-        Evaluate the objective function.
-
-        Parameters
-        ----------
-        x : array_like, shape (n,)
-            Point at which the objective function is evaluated.
-
-        Returns
-        -------
-        float
-            Function value at `x`.
-        """
-        x = np.array(x, dtype=float)
-        if self._fun is None:
-            f = 0.0
-        else:
-            f = float(np.squeeze(self._fun(x, *self._args)))
-            self._n_eval += 1
-            if self._verbose:
-                with np.printoptions(**PRINT_OPTIONS):
-                    print(f"{self.name}({x}) = {f}")
-        return f
-
-    @property
-    def n_eval(self):
-        """
-        Number of function evaluations.
-
-        Returns
-        -------
-        int
-            Number of function evaluations.
-        """
-        return self._n_eval
-
-    @property
-    def name(self):
-        """
-        Name of the objective function.
-
-        Returns
-        -------
-        str
-            Name of the objective function.
-        """
-        name = ""
-        if self._fun is not None:
-            try:
-                name = self._fun.__name__
-            except AttributeError:
-                name = "fun"
-        return name
-
-
-class BoundConstraints:
-    """
-    Bound constraints ``xl <= x <= xu``.
-    """
-
-    def __init__(self, bounds):
-        """
-        Initialize the bound constraints.
-
-        Parameters
-        ----------
-        bounds : scipy.optimize.Bounds
-            Bound constraints.
-        """
-        self._xl = np.array(bounds.lb, float)
-        self._xu = np.array(bounds.ub, float)
-
-        # Remove the ill-defined bounds.
-        self.xl[np.isnan(self.xl)] = -np.inf
-        self.xu[np.isnan(self.xu)] = np.inf
-
-        self.is_feasible = (
-            np.all(self.xl <= self.xu)
-            and np.all(self.xl < np.inf)
-            and np.all(self.xu > -np.inf)
-        )
-        self.m = np.count_nonzero(self.xl > -np.inf) + np.count_nonzero(
-            self.xu < np.inf
-        )
-        self.pcs = PreparedConstraint(bounds, np.ones(bounds.lb.size))
-
-    @property
-    def xl(self):
-        """
-        Lower bound.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Lower bound.
-        """
-        return self._xl
-
-    @property
-    def xu(self):
-        """
-        Upper bound.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Upper bound.
-        """
-        return self._xu
-
-    def maxcv(self, x):
-        """
-        Evaluate the maximum constraint violation.
-
-        Parameters
-        ----------
-        x : array_like, shape (n,)
-            Point at which the maximum constraint violation is evaluated.
-
-        Returns
-        -------
-        float
-            Maximum constraint violation at `x`.
-        """
-        x = np.asarray(x, dtype=float)
-        return self.violation(x)
-
-    def violation(self, x):
-        # shortcut for no bounds
-        if self.is_feasible:
-            return np.array([0])
-        else:
-            return self.pcs.violation(x)
-
-    def project(self, x):
-        """
-        Project a point onto the feasible set.
-
-        Parameters
-        ----------
-        x : array_like, shape (n,)
-            Point to be projected.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Projection of `x` onto the feasible set.
-        """
-        return np.clip(x, self.xl, self.xu) if self.is_feasible else x
-
-
-class LinearConstraints:
-    """
-    Linear constraints ``a_ub @ x <= b_ub`` and ``a_eq @ x == b_eq``.
-    """
-
-    def __init__(self, constraints, n, debug):
-        """
-        Initialize the linear constraints.
-
-        Parameters
-        ----------
-        constraints : list of LinearConstraint
-            Linear constraints.
-        n : int
-            Number of variables.
-        debug : bool
-            Whether to make debugging tests during the execution.
-        """
-        if debug:
-            assert isinstance(constraints, list)
-            for constraint in constraints:
-                assert isinstance(constraint, LinearConstraint)
-            assert isinstance(debug, bool)
-
-        self._a_ub = np.empty((0, n))
-        self._b_ub = np.empty(0)
-        self._a_eq = np.empty((0, n))
-        self._b_eq = np.empty(0)
-        for constraint in constraints:
-            is_equality = np.abs(
-                constraint.ub - constraint.lb
-            ) <= get_arrays_tol(constraint.lb, constraint.ub)
-            if np.any(is_equality):
-                self._a_eq = np.vstack((self.a_eq, constraint.A[is_equality]))
-                self._b_eq = np.concatenate(
-                    (
-                        self.b_eq,
-                        0.5
-                        * (
-                            constraint.lb[is_equality]
-                            + constraint.ub[is_equality]
-                        ),
-                    )
-                )
-            if not np.all(is_equality):
-                self._a_ub = np.vstack(
-                    (
-                        self.a_ub,
-                        constraint.A[~is_equality],
-                        -constraint.A[~is_equality],
-                    )
-                )
-                self._b_ub = np.concatenate(
-                    (
-                        self.b_ub,
-                        constraint.ub[~is_equality],
-                        -constraint.lb[~is_equality],
-                    )
-                )
-
-        # Remove the ill-defined constraints.
-        self.a_ub[np.isnan(self.a_ub)] = 0.0
-        self.a_eq[np.isnan(self.a_eq)] = 0.0
-        undef_ub = np.isnan(self.b_ub) | np.isinf(self.b_ub)
-        undef_eq = np.isnan(self.b_eq)
-        self._a_ub = self.a_ub[~undef_ub, :]
-        self._b_ub = self.b_ub[~undef_ub]
-        self._a_eq = self.a_eq[~undef_eq, :]
-        self._b_eq = self.b_eq[~undef_eq]
-        self.pcs = [
-            PreparedConstraint(c, np.ones(n)) for c in constraints if c.A.size
-        ]
-
-    @property
-    def a_ub(self):
-        """
-        Left-hand side matrix of the linear inequality constraints.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (m, n)
-            Left-hand side matrix of the linear inequality constraints.
-        """
-        return self._a_ub
-
-    @property
-    def b_ub(self):
-        """
-        Right-hand side vector of the linear inequality constraints.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (m, n)
-            Right-hand side vector of the linear inequality constraints.
-        """
-        return self._b_ub
-
-    @property
-    def a_eq(self):
-        """
-        Left-hand side matrix of the linear equality constraints.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (m, n)
-            Left-hand side matrix of the linear equality constraints.
-        """
-        return self._a_eq
-
-    @property
-    def b_eq(self):
-        """
-        Right-hand side vector of the linear equality constraints.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (m, n)
-            Right-hand side vector of the linear equality constraints.
-        """
-        return self._b_eq
-
-    @property
-    def m_ub(self):
-        """
-        Number of linear inequality constraints.
-
-        Returns
-        -------
-        int
-            Number of linear inequality constraints.
-        """
-        return self.b_ub.size
-
-    @property
-    def m_eq(self):
-        """
-        Number of linear equality constraints.
-
-        Returns
-        -------
-        int
-            Number of linear equality constraints.
-        """
-        return self.b_eq.size
-
-    def maxcv(self, x):
-        """
-        Evaluate the maximum constraint violation.
-
-        Parameters
-        ----------
-        x : array_like, shape (n,)
-            Point at which the maximum constraint violation is evaluated.
-
-        Returns
-        -------
-        float
-            Maximum constraint violation at `x`.
-        """
-        return np.max(self.violation(x), initial=0.0)
-
-    def violation(self, x):
-        if len(self.pcs):
-            return np.concatenate([pc.violation(x) for pc in self.pcs])
-        return np.array([])
-
-
-class NonlinearConstraints:
-    """
-    Nonlinear constraints ``c_ub(x) <= 0`` and ``c_eq(x) == b_eq``.
-    """
-
-    def __init__(self, constraints, verbose, debug):
-        """
-        Initialize the nonlinear constraints.
-
-        Parameters
-        ----------
-        constraints : list
-            Nonlinear constraints.
-        verbose : bool
-            Whether to print the function evaluations.
-        debug : bool
-            Whether to make debugging tests during the execution.
-        """
-        if debug:
-            assert isinstance(constraints, list)
-            for constraint in constraints:
-                assert isinstance(constraint, NonlinearConstraint)
-            assert isinstance(verbose, bool)
-            assert isinstance(debug, bool)
-
-        self._constraints = constraints
-        self.pcs = []
-        self._verbose = verbose
-
-        # map of indexes for equality and inequality constraints
-        self._map_ub = None
-        self._map_eq = None
-        self._m_ub = self._m_eq = None
-
-    def __call__(self, x):
-        """
-        Calculates the residual (slack) for the constraints.
-
-        Parameters
-        ----------
-        x : array_like, shape (n,)
-            Point at which the constraints are evaluated.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (m_nonlinear_ub,)
-            Nonlinear inequality constraint slack values.
-        `numpy.ndarray`, shape (m_nonlinear_eq,)
-            Nonlinear equality constraint slack values.
-        """
-        if not len(self._constraints):
-            self._m_eq = self._m_ub = 0
-            return np.array([]), np.array([])
-
-        x = np.array(x, dtype=float)
-        # first time around the constraints haven't been prepared
-        if not len(self.pcs):
-            self._map_ub = []
-            self._map_eq = []
-            self._m_eq = 0
-            self._m_ub = 0
-
-            for constraint in self._constraints:
-                if not callable(constraint.jac):
-                    # having a callable constraint function prevents
-                    # constraint.fun from being evaluated when preparing
-                    # constraint
-                    c = copy.copy(constraint)
-                    c.jac = lambda x0: x0
-                    c.hess = lambda x0, v: 0.0
-                    pc = PreparedConstraint(c, x)
-                else:
-                    pc = PreparedConstraint(constraint, x)
-                # we're going to be using the same x value again immediately
-                # after this initialisation
-                pc.fun.f_updated = True
-
-                self.pcs.append(pc)
-                idx = np.arange(pc.fun.m)
-
-                # figure out equality and inequality maps
-                lb, ub = pc.bounds[0], pc.bounds[1]
-                arr_tol = get_arrays_tol(lb, ub)
-                is_equality = np.abs(ub - lb) <= arr_tol
-                self._map_eq.append(idx[is_equality])
-                self._map_ub.append(idx[~is_equality])
-
-                # these values will be corrected to their proper values later
-                self._m_eq += np.count_nonzero(is_equality)
-                self._m_ub += np.count_nonzero(~is_equality)
-
-        c_ub = []
-        c_eq = []
-        for i, pc in enumerate(self.pcs):
-            val = pc.fun.fun(x)
-            if self._verbose:
-                with np.printoptions(**PRINT_OPTIONS):
-                    with suppress(AttributeError):
-                        fun_name = self._constraints[i].fun.__name__
-                        print(f"{fun_name}({x}) = {val}")
-
-            # separate violations into c_eq and c_ub
-            eq_idx = self._map_eq[i]
-            ub_idx = self._map_ub[i]
-
-            ub_val = val[ub_idx]
-            if len(ub_idx):
-                xl = pc.bounds[0][ub_idx]
-                xu = pc.bounds[1][ub_idx]
-
-                # calculate slack within lower bound
-                finite_xl = xl > -np.inf
-                _v = xl[finite_xl] - ub_val[finite_xl]
-                c_ub.append(_v)
-
-                # calculate slack within lower bound
-                finite_xu = xu < np.inf
-                _v = ub_val[finite_xu] - xu[finite_xu]
-                c_ub.append(_v)
-
-            # equality constraints taken from midpoint between lb and ub
-            eq_val = val[eq_idx]
-            if len(eq_idx):
-                midpoint = 0.5 * (pc.bounds[1][eq_idx] + pc.bounds[0][eq_idx])
-                eq_val -= midpoint
-            c_eq.append(eq_val)
-
-        if self._m_eq:
-            c_eq = np.concatenate(c_eq)
-        else:
-            c_eq = np.array([])
-
-        if self._m_ub:
-            c_ub = np.concatenate(c_ub)
-        else:
-            c_ub = np.array([])
-
-        self._m_ub = c_ub.size
-        self._m_eq = c_eq.size
-
-        return c_ub, c_eq
-
-    @property
-    def m_ub(self):
-        """
-        Number of nonlinear inequality constraints.
-
-        Returns
-        -------
-        int
-            Number of nonlinear inequality constraints.
-
-        Raises
-        ------
-        ValueError
-            If the number of nonlinear inequality constraints is unknown.
-        """
-        if self._m_ub is None:
-            raise ValueError(
-                "The number of nonlinear inequality constraints is unknown."
-            )
-        else:
-            return self._m_ub
-
-    @property
-    def m_eq(self):
-        """
-        Number of nonlinear equality constraints.
-
-        Returns
-        -------
-        int
-            Number of nonlinear equality constraints.
-
-        Raises
-        ------
-        ValueError
-            If the number of nonlinear equality constraints is unknown.
-        """
-        if self._m_eq is None:
-            raise ValueError(
-                "The number of nonlinear equality constraints is unknown."
-            )
-        else:
-            return self._m_eq
-
-    @property
-    def n_eval(self):
-        """
-        Number of function evaluations.
-
-        Returns
-        -------
-        int
-            Number of function evaluations.
-        """
-        if len(self.pcs):
-            return self.pcs[0].fun.nfev
-        else:
-            return 0
-
-    def maxcv(self, x, cub_val=None, ceq_val=None):
-        """
-        Evaluate the maximum constraint violation.
-
-        Parameters
-        ----------
-        x : array_like, shape (n,)
-            Point at which the maximum constraint violation is evaluated.
-        cub_val : array_like, shape (m_nonlinear_ub,), optional
-            Values of the nonlinear inequality constraints. If not provided,
-            the nonlinear inequality constraints are evaluated at `x`.
-        ceq_val : array_like, shape (m_nonlinear_eq,), optional
-            Values of the nonlinear equality constraints. If not provided,
-            the nonlinear equality constraints are evaluated at `x`.
-
-        Returns
-        -------
-        float
-            Maximum constraint violation at `x`.
-        """
-        return np.max(
-            self.violation(x, cub_val=cub_val, ceq_val=ceq_val), initial=0.0
-        )
-
-    def violation(self, x, cub_val=None, ceq_val=None):
-        return np.concatenate([pc.violation(x) for pc in self.pcs])
-
-
-class Problem:
-    """
-    Optimization problem.
-    """
-
-    def __init__(
-        self,
-        obj,
-        x0,
-        bounds,
-        linear,
-        nonlinear,
-        callback,
-        feasibility_tol,
-        scale,
-        store_history,
-        history_size,
-        filter_size,
-        debug,
-    ):
-        """
-        Initialize the nonlinear problem.
-
-        The problem is preprocessed to remove all the variables that are fixed
-        by the bound constraints.
-
-        Parameters
-        ----------
-        obj : ObjectiveFunction
-            Objective function.
-        x0 : array_like, shape (n,)
-            Initial guess.
-        bounds : BoundConstraints
-            Bound constraints.
-        linear : LinearConstraints
-            Linear constraints.
-        nonlinear : NonlinearConstraints
-            Nonlinear constraints.
-        callback : {callable, None}
-            Callback function.
-        feasibility_tol : float
-            Tolerance on the constraint violation.
-        scale : bool
-            Whether to scale the problem according to the bounds.
-        store_history : bool
-            Whether to store the function evaluations.
-        history_size : int
-            Maximum number of function evaluations to store.
-        filter_size : int
-            Maximum number of points in the filter.
-        debug : bool
-            Whether to make debugging tests during the execution.
-        """
-        if debug:
-            assert isinstance(obj, ObjectiveFunction)
-            assert isinstance(bounds, BoundConstraints)
-            assert isinstance(linear, LinearConstraints)
-            assert isinstance(nonlinear, NonlinearConstraints)
-            assert isinstance(feasibility_tol, float)
-            assert isinstance(scale, bool)
-            assert isinstance(store_history, bool)
-            assert isinstance(history_size, int)
-            if store_history:
-                assert history_size > 0
-            assert isinstance(filter_size, int)
-            assert filter_size > 0
-            assert isinstance(debug, bool)
-
-        self._obj = obj
-        self._linear = linear
-        self._nonlinear = nonlinear
-        if callback is not None:
-            if not callable(callback):
-                raise TypeError("The callback must be a callable function.")
-        self._callback = callback
-
-        # Check the consistency of the problem.
-        x0 = exact_1d_array(x0, "The initial guess must be a vector.")
-        n = x0.size
-        if bounds.xl.size != n:
-            raise ValueError(f"The bounds must have {n} elements.")
-        if linear.a_ub.shape[1] != n:
-            raise ValueError(
-                f"The left-hand side matrices of the linear constraints must "
-                f"have {n} columns."
-            )
-
-        # Check which variables are fixed.
-        tol = get_arrays_tol(bounds.xl, bounds.xu)
-        self._fixed_idx = (bounds.xl <= bounds.xu) & (
-            np.abs(bounds.xl - bounds.xu) < tol
-        )
-        self._fixed_val = 0.5 * (
-            bounds.xl[self._fixed_idx] + bounds.xu[self._fixed_idx]
-        )
-        self._fixed_val = np.clip(
-            self._fixed_val,
-            bounds.xl[self._fixed_idx],
-            bounds.xu[self._fixed_idx],
-        )
-
-        # Set the bound constraints.
-        self._orig_bounds = bounds
-        self._bounds = BoundConstraints(
-            Bounds(bounds.xl[~self._fixed_idx], bounds.xu[~self._fixed_idx])
-        )
-
-        # Set the initial guess.
-        self._x0 = self._bounds.project(x0[~self._fixed_idx])
-
-        # Set the linear constraints.
-        b_eq = linear.b_eq - linear.a_eq[:, self._fixed_idx] @ self._fixed_val
-        self._linear = LinearConstraints(
-            [
-                LinearConstraint(
-                    linear.a_ub[:, ~self._fixed_idx],
-                    -np.inf,
-                    linear.b_ub
-                    - linear.a_ub[:, self._fixed_idx] @ self._fixed_val,
-                ),
-                LinearConstraint(linear.a_eq[:, ~self._fixed_idx], b_eq, b_eq),
-            ],
-            self.n,
-            debug,
-        )
-
-        # Scale the problem if necessary.
-        scale = (
-            scale
-            and self._bounds.is_feasible
-            and np.all(np.isfinite(self._bounds.xl))
-            and np.all(np.isfinite(self._bounds.xu))
-        )
-        if scale:
-            self._scaling_factor = 0.5 * (self._bounds.xu - self._bounds.xl)
-            self._scaling_shift = 0.5 * (self._bounds.xu + self._bounds.xl)
-            self._bounds = BoundConstraints(
-                Bounds(-np.ones(self.n), np.ones(self.n))
-            )
-            b_eq = self._linear.b_eq - self._linear.a_eq @ self._scaling_shift
-            self._linear = LinearConstraints(
-                [
-                    LinearConstraint(
-                        self._linear.a_ub @ np.diag(self._scaling_factor),
-                        -np.inf,
-                        self._linear.b_ub
-                        - self._linear.a_ub @ self._scaling_shift,
-                    ),
-                    LinearConstraint(
-                        self._linear.a_eq @ np.diag(self._scaling_factor),
-                        b_eq,
-                        b_eq,
-                    ),
-                ],
-                self.n,
-                debug,
-            )
-            self._x0 = (self._x0 - self._scaling_shift) / self._scaling_factor
-        else:
-            self._scaling_factor = np.ones(self.n)
-            self._scaling_shift = np.zeros(self.n)
-
-        # Set the initial filter.
-        self._feasibility_tol = feasibility_tol
-        self._filter_size = filter_size
-        self._fun_filter = []
-        self._maxcv_filter = []
-        self._x_filter = []
-
-        # Set the initial history.
-        self._store_history = store_history
-        self._history_size = history_size
-        self._fun_history = []
-        self._maxcv_history = []
-        self._x_history = []
-
-    def __call__(self, x):
-        """
-        Evaluate the objective and nonlinear constraint functions.
-
-        Parameters
-        ----------
-        x : array_like, shape (n,)
-            Point at which the functions are evaluated.
-
-        Returns
-        -------
-        float
-            Objective function value.
-        `numpy.ndarray`, shape (m_nonlinear_ub,)
-            Nonlinear inequality constraint function values.
-        `numpy.ndarray`, shape (m_nonlinear_eq,)
-            Nonlinear equality constraint function values.
-
-        Raises
-        ------
-        `cobyqa.utils.CallbackSuccess`
-            If the callback function raises a ``StopIteration``.
-        """
-        # Evaluate the objective and nonlinear constraint functions.
-        x = np.asarray(x, dtype=float)
-        x_full = self.build_x(x)
-        fun_val = self._obj(x_full)
-        cub_val, ceq_val = self._nonlinear(x_full)
-        maxcv_val = self.maxcv(x, cub_val, ceq_val)
-        if self._store_history:
-            self._fun_history.append(fun_val)
-            self._maxcv_history.append(maxcv_val)
-            self._x_history.append(x)
-            if len(self._fun_history) > self._history_size:
-                self._fun_history.pop(0)
-                self._maxcv_history.pop(0)
-                self._x_history.pop(0)
-
-        # Add the point to the filter if it is not dominated by any point.
-        if np.isnan(fun_val) and np.isnan(maxcv_val):
-            include_point = len(self._fun_filter) == 0
-        elif np.isnan(fun_val):
-            include_point = all(
-                np.isnan(fun_filter)
-                and maxcv_val < maxcv_filter
-                or np.isnan(maxcv_filter)
-                for fun_filter, maxcv_filter in zip(
-                    self._fun_filter,
-                    self._maxcv_filter,
-                )
-            )
-        elif np.isnan(maxcv_val):
-            include_point = all(
-                np.isnan(maxcv_filter)
-                and fun_val < fun_filter
-                or np.isnan(fun_filter)
-                for fun_filter, maxcv_filter in zip(
-                    self._fun_filter,
-                    self._maxcv_filter,
-                )
-            )
-        else:
-            include_point = all(
-                fun_val < fun_filter or maxcv_val < maxcv_filter
-                for fun_filter, maxcv_filter in zip(
-                    self._fun_filter,
-                    self._maxcv_filter,
-                )
-            )
-        if include_point:
-            self._fun_filter.append(fun_val)
-            self._maxcv_filter.append(maxcv_val)
-            self._x_filter.append(x)
-
-            # Remove the points in the filter that are dominated by the new
-            # point. We must iterate in reverse order to avoid problems when
-            # removing elements from the list.
-            for k in range(len(self._fun_filter) - 2, -1, -1):
-                if np.isnan(fun_val):
-                    remove_point = np.isnan(self._fun_filter[k])
-                elif np.isnan(maxcv_val):
-                    remove_point = np.isnan(self._maxcv_filter[k])
-                else:
-                    remove_point = (
-                        np.isnan(self._fun_filter[k])
-                        or np.isnan(self._maxcv_filter[k])
-                        or fun_val <= self._fun_filter[k]
-                        and maxcv_val <= self._maxcv_filter[k]
-                    )
-                if remove_point:
-                    self._fun_filter.pop(k)
-                    self._maxcv_filter.pop(k)
-                    self._x_filter.pop(k)
-
-            # Keep only the most recent points in the filter.
-            if len(self._fun_filter) > self._filter_size:
-                self._fun_filter.pop(0)
-                self._maxcv_filter.pop(0)
-                self._x_filter.pop(0)
-
-        # Evaluate the callback function after updating the filter to ensure
-        # that the current point can be returned by the method.
-        if self._callback is not None:
-            sig = signature(self._callback)
-            try:
-                if set(sig.parameters) == {"intermediate_result"}:
-                    intermediate_result = OptimizeResult(x=x_full, fun=fun_val)
-                    self._callback(intermediate_result=intermediate_result)
-                else:
-                    self._callback(x_full)
-            except StopIteration as exc:
-                raise CallbackSuccess from exc
-
-        # Apply the extreme barriers and return.
-        if np.isnan(fun_val):
-            fun_val = BARRIER
-        cub_val[np.isnan(cub_val)] = BARRIER
-        ceq_val[np.isnan(ceq_val)] = BARRIER
-        fun_val = max(min(fun_val, BARRIER), -BARRIER)
-        cub_val = np.maximum(np.minimum(cub_val, BARRIER), -BARRIER)
-        ceq_val = np.maximum(np.minimum(ceq_val, BARRIER), -BARRIER)
-        return fun_val, cub_val, ceq_val
-
-    @property
-    def n(self):
-        """
-        Number of variables.
-
-        Returns
-        -------
-        int
-            Number of variables.
-        """
-        return self.x0.size
-
-    @property
-    def n_orig(self):
-        """
-        Number of variables in the original problem (with fixed variables).
-
-        Returns
-        -------
-        int
-            Number of variables in the original problem (with fixed variables).
-        """
-        return self._fixed_idx.size
-
-    @property
-    def x0(self):
-        """
-        Initial guess.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Initial guess.
-        """
-        return self._x0
-
-    @property
-    def n_eval(self):
-        """
-        Number of function evaluations.
-
-        Returns
-        -------
-        int
-            Number of function evaluations.
-        """
-        return self._obj.n_eval
-
-    @property
-    def fun_name(self):
-        """
-        Name of the objective function.
-
-        Returns
-        -------
-        str
-            Name of the objective function.
-        """
-        return self._obj.name
-
-    @property
-    def bounds(self):
-        """
-        Bound constraints.
-
-        Returns
-        -------
-        BoundConstraints
-            Bound constraints.
-        """
-        return self._bounds
-
-    @property
-    def linear(self):
-        """
-        Linear constraints.
-
-        Returns
-        -------
-        LinearConstraints
-            Linear constraints.
-        """
-        return self._linear
-
-    @property
-    def m_bounds(self):
-        """
-        Number of bound constraints.
-
-        Returns
-        -------
-        int
-            Number of bound constraints.
-        """
-        return self.bounds.m
-
-    @property
-    def m_linear_ub(self):
-        """
-        Number of linear inequality constraints.
-
-        Returns
-        -------
-        int
-            Number of linear inequality constraints.
-        """
-        return self.linear.m_ub
-
-    @property
-    def m_linear_eq(self):
-        """
-        Number of linear equality constraints.
-
-        Returns
-        -------
-        int
-            Number of linear equality constraints.
-        """
-        return self.linear.m_eq
-
-    @property
-    def m_nonlinear_ub(self):
-        """
-        Number of nonlinear inequality constraints.
-
-        Returns
-        -------
-        int
-            Number of nonlinear inequality constraints.
-
-        Raises
-        ------
-        ValueError
-            If the number of nonlinear inequality constraints is not known.
-        """
-        return self._nonlinear.m_ub
-
-    @property
-    def m_nonlinear_eq(self):
-        """
-        Number of nonlinear equality constraints.
-
-        Returns
-        -------
-        int
-            Number of nonlinear equality constraints.
-
-        Raises
-        ------
-        ValueError
-            If the number of nonlinear equality constraints is not known.
-        """
-        return self._nonlinear.m_eq
-
-    @property
-    def fun_history(self):
-        """
-        History of objective function evaluations.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n_eval,)
-            History of objective function evaluations.
-        """
-        return np.array(self._fun_history, dtype=float)
-
-    @property
-    def maxcv_history(self):
-        """
-        History of maximum constraint violations.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n_eval,)
-            History of maximum constraint violations.
-        """
-        return np.array(self._maxcv_history, dtype=float)
-
-    @property
-    def type(self):
-        """
-        Type of the problem.
-
-        The problem can be either 'unconstrained', 'bound-constrained',
-        'linearly constrained', or 'nonlinearly constrained'.
-
-        Returns
-        -------
-        str
-            Type of the problem.
-        """
-        try:
-            if self.m_nonlinear_ub > 0 or self.m_nonlinear_eq > 0:
-                return "nonlinearly constrained"
-            elif self.m_linear_ub > 0 or self.m_linear_eq > 0:
-                return "linearly constrained"
-            elif self.m_bounds > 0:
-                return "bound-constrained"
-            else:
-                return "unconstrained"
-        except ValueError:
-            # The number of nonlinear constraints is not known. It may be zero
-            # if the user provided a nonlinear inequality and/or equality
-            # constraint function that returns an empty array. However, as this
-            # is not known before the first call to the function, we assume
-            # that the problem is nonlinearly constrained.
-            return "nonlinearly constrained"
-
-    @property
-    def is_feasibility(self):
-        """
-        Whether the problem is a feasibility problem.
-
-        Returns
-        -------
-        bool
-            Whether the problem is a feasibility problem.
-        """
-        return self.fun_name == ""
-
-    def build_x(self, x):
-        """
-        Build the full vector of variables from the reduced vector.
-
-        Parameters
-        ----------
-        x : array_like, shape (n,)
-            Reduced vector of variables.
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n_orig,)
-            Full vector of variables.
-        """
-        x_full = np.empty(self.n_orig)
-        x_full[self._fixed_idx] = self._fixed_val
-        x_full[~self._fixed_idx] = (x * self._scaling_factor
-                                    + self._scaling_shift)
-        return self._orig_bounds.project(x_full)
-
-    def maxcv(self, x, cub_val=None, ceq_val=None):
-        """
-        Evaluate the maximum constraint violation.
-
-        Parameters
-        ----------
-        x : array_like, shape (n,)
-            Point at which the maximum constraint violation is evaluated.
-        cub_val : array_like, shape (m_nonlinear_ub,), optional
-            Values of the nonlinear inequality constraints. If not provided,
-            the nonlinear inequality constraints are evaluated at `x`.
-        ceq_val : array_like, shape (m_nonlinear_eq,), optional
-            Values of the nonlinear equality constraints. If not provided,
-            the nonlinear equality constraints are evaluated at `x`.
-
-        Returns
-        -------
-        float
-            Maximum constraint violation at `x`.
-        """
-        violation = self.violation(x, cub_val=cub_val, ceq_val=ceq_val)
-        if np.count_nonzero(violation):
-            return np.max(violation, initial=0.0)
-        else:
-            return 0.0
-
-    def violation(self, x, cub_val=None, ceq_val=None):
-        violation = []
-        if not self.bounds.is_feasible:
-            b = self.bounds.violation(x)
-            violation.append(b)
-
-        if len(self.linear.pcs):
-            lc = self.linear.violation(x)
-            violation.append(lc)
-        if len(self._nonlinear.pcs):
-            nlc = self._nonlinear.violation(x, cub_val, ceq_val)
-            violation.append(nlc)
-
-        if len(violation):
-            return np.concatenate(violation)
-
-    def best_eval(self, penalty):
-        """
-        Return the best point in the filter and the corresponding objective and
-        nonlinear constraint function evaluations.
-
-        Parameters
-        ----------
-        penalty : float
-            Penalty parameter
-
-        Returns
-        -------
-        `numpy.ndarray`, shape (n,)
-            Best point.
-        float
-            Corresponding objective function value.
-        float
-            Corresponding maximum constraint violation.
-        """
-        # If the filter is empty, i.e., if no function evaluation has been
-        # performed, we evaluate the objective and nonlinear constraint
-        # functions at the initial guess.
-        if len(self._fun_filter) == 0:
-            self(self.x0)
-
-        # Find the best point in the filter.
-        fun_filter = np.array(self._fun_filter)
-        maxcv_filter = np.array(self._maxcv_filter)
-        x_filter = np.array(self._x_filter)
-        finite_idx = np.isfinite(maxcv_filter)
-        if np.any(finite_idx):
-            # At least one point has a finite maximum constraint violation.
-            feasible_idx = maxcv_filter <= self._feasibility_tol
-            if np.any(feasible_idx) and not np.all(
-                np.isnan(fun_filter[feasible_idx])
-            ):
-                # At least one point is feasible and has a well-defined
-                # objective function value. We select the point with the least
-                # objective function value. If there is a tie, we select the
-                # point with the least maximum constraint violation. If there
-                # is still a tie, we select the most recent point.
-                fun_min_idx = feasible_idx & (
-                    fun_filter <= np.nanmin(fun_filter[feasible_idx])
-                )
-                if np.count_nonzero(fun_min_idx) > 1:
-                    fun_min_idx &= maxcv_filter <= np.min(
-                        maxcv_filter[fun_min_idx]
-                    )
-                i = np.flatnonzero(fun_min_idx)[-1]
-            elif np.any(feasible_idx):
-                # At least one point is feasible but no feasible point has a
-                # well-defined objective function value. We select the most
-                # recent feasible point.
-                i = np.flatnonzero(feasible_idx)[-1]
-            else:
-                # No point is feasible. We first compute the merit function
-                # value for each point.
-                merit_filter = np.full_like(fun_filter, np.nan)
-                merit_filter[finite_idx] = (
-                    fun_filter[finite_idx] + penalty * maxcv_filter[finite_idx]
-                )
-                if np.all(np.isnan(merit_filter)):
-                    # No point has a well-defined merit function value. In
-                    # other words, among the points with a well-defined maximum
-                    # constraint violation, none has a well-defined objective
-                    # function value. We select the point with the least
-                    # maximum constraint violation. If there is a tie, we
-                    # select the most recent point.
-                    min_maxcv_idx = maxcv_filter <= np.nanmin(maxcv_filter)
-                    i = np.flatnonzero(min_maxcv_idx)[-1]
-                else:
-                    # At least one point has a well-defined merit function
-                    # value. We select the point with the least merit function
-                    # value. If there is a tie, we select the point with the
-                    # least maximum constraint violation. If there is still a
-                    # tie, we select the point with the least objective
-                    # function value. If there is still a tie, we select the
-                    # most recent point.
-                    merit_min_idx = merit_filter <= np.nanmin(merit_filter)
-                    if np.count_nonzero(merit_min_idx) > 1:
-                        merit_min_idx &= maxcv_filter <= np.min(
-                            maxcv_filter[merit_min_idx]
-                        )
-
-                    if np.count_nonzero(merit_min_idx) > 1:
-                        merit_min_idx &= fun_filter <= np.min(
-                            fun_filter[merit_min_idx]
-                        )
-                    i = np.flatnonzero(merit_min_idx)[-1]
-        elif not np.all(np.isnan(fun_filter)):
-            # No maximum constraint violation is well-defined but at least one
-            # point has a well-defined objective function value. We select the
-            # point with the least objective function value. If there is a tie,
-            # we select the most recent point.
-            fun_min_idx = fun_filter <= np.nanmin(fun_filter)
-            i = np.flatnonzero(fun_min_idx)[-1]
-        else:
-            # No point has a well-defined maximum constraint violation or
-            # objective function value. We select the most recent point.
-            i = len(fun_filter) - 1
-        return (
-            self.bounds.project(x_filter[i, :]),
-            fun_filter[i],
-            maxcv_filter[i],
-        )
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/settings.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/settings.py
deleted file mode 100644
index 6394822826e094a803a485556a298e342bf260ac..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/settings.py
+++ /dev/null
@@ -1,132 +0,0 @@
-import sys
-from enum import Enum
-
-import numpy as np
-
-
-# Exit status.
-class ExitStatus(Enum):
-    """
-    Exit statuses.
-    """
-
-    RADIUS_SUCCESS = 0
-    TARGET_SUCCESS = 1
-    FIXED_SUCCESS = 2
-    CALLBACK_SUCCESS = 3
-    FEASIBLE_SUCCESS = 4
-    MAX_EVAL_WARNING = 5
-    MAX_ITER_WARNING = 6
-    INFEASIBLE_ERROR = -1
-    LINALG_ERROR = -2
-
-
-class Options(str, Enum):
-    """
-    Options.
-    """
-
-    DEBUG = "debug"
-    FEASIBILITY_TOL = "feasibility_tol"
-    FILTER_SIZE = "filter_size"
-    HISTORY_SIZE = "history_size"
-    MAX_EVAL = "maxfev"
-    MAX_ITER = "maxiter"
-    NPT = "nb_points"
-    RHOBEG = "radius_init"
-    RHOEND = "radius_final"
-    SCALE = "scale"
-    STORE_HISTORY = "store_history"
-    TARGET = "target"
-    VERBOSE = "disp"
-
-
-class Constants(str, Enum):
-    """
-    Constants.
-    """
-
-    DECREASE_RADIUS_FACTOR = "decrease_radius_factor"
-    INCREASE_RADIUS_FACTOR = "increase_radius_factor"
-    INCREASE_RADIUS_THRESHOLD = "increase_radius_threshold"
-    DECREASE_RADIUS_THRESHOLD = "decrease_radius_threshold"
-    DECREASE_RESOLUTION_FACTOR = "decrease_resolution_factor"
-    LARGE_RESOLUTION_THRESHOLD = "large_resolution_threshold"
-    MODERATE_RESOLUTION_THRESHOLD = "moderate_resolution_threshold"
-    LOW_RATIO = "low_ratio"
-    HIGH_RATIO = "high_ratio"
-    VERY_LOW_RATIO = "very_low_ratio"
-    PENALTY_INCREASE_THRESHOLD = "penalty_increase_threshold"
-    PENALTY_INCREASE_FACTOR = "penalty_increase_factor"
-    SHORT_STEP_THRESHOLD = "short_step_threshold"
-    LOW_RADIUS_FACTOR = "low_radius_factor"
-    BYRD_OMOJOKUN_FACTOR = "byrd_omojokun_factor"
-    THRESHOLD_RATIO_CONSTRAINTS = "threshold_ratio_constraints"
-    LARGE_SHIFT_FACTOR = "large_shift_factor"
-    LARGE_GRADIENT_FACTOR = "large_gradient_factor"
-    RESOLUTION_FACTOR = "resolution_factor"
-    IMPROVE_TCG = "improve_tcg"
-
-
-# Default options.
-DEFAULT_OPTIONS = {
-    Options.DEBUG.value: False,
-    Options.FEASIBILITY_TOL.value: np.sqrt(np.finfo(float).eps),
-    Options.FILTER_SIZE.value: sys.maxsize,
-    Options.HISTORY_SIZE.value: sys.maxsize,
-    Options.MAX_EVAL.value: lambda n: 500 * n,
-    Options.MAX_ITER.value: lambda n: 1000 * n,
-    Options.NPT.value: lambda n: 2 * n + 1,
-    Options.RHOBEG.value: 1.0,
-    Options.RHOEND.value: 1e-6,
-    Options.SCALE.value: False,
-    Options.STORE_HISTORY.value: False,
-    Options.TARGET.value: -np.inf,
-    Options.VERBOSE.value: False,
-}
-
-# Default constants.
-DEFAULT_CONSTANTS = {
-    Constants.DECREASE_RADIUS_FACTOR.value: 0.5,
-    Constants.INCREASE_RADIUS_FACTOR.value: np.sqrt(2.0),
-    Constants.INCREASE_RADIUS_THRESHOLD.value: 2.0,
-    Constants.DECREASE_RADIUS_THRESHOLD.value: 1.4,
-    Constants.DECREASE_RESOLUTION_FACTOR.value: 0.1,
-    Constants.LARGE_RESOLUTION_THRESHOLD.value: 250.0,
-    Constants.MODERATE_RESOLUTION_THRESHOLD.value: 16.0,
-    Constants.LOW_RATIO.value: 0.1,
-    Constants.HIGH_RATIO.value: 0.7,
-    Constants.VERY_LOW_RATIO.value: 0.01,
-    Constants.PENALTY_INCREASE_THRESHOLD.value: 1.5,
-    Constants.PENALTY_INCREASE_FACTOR.value: 2.0,
-    Constants.SHORT_STEP_THRESHOLD.value: 0.5,
-    Constants.LOW_RADIUS_FACTOR.value: 0.1,
-    Constants.BYRD_OMOJOKUN_FACTOR.value: 0.8,
-    Constants.THRESHOLD_RATIO_CONSTRAINTS.value: 2.0,
-    Constants.LARGE_SHIFT_FACTOR.value: 10.0,
-    Constants.LARGE_GRADIENT_FACTOR.value: 10.0,
-    Constants.RESOLUTION_FACTOR.value: 2.0,
-    Constants.IMPROVE_TCG.value: True,
-}
-
-# Printing options.
-PRINT_OPTIONS = {
-    "threshold": 6,
-    "edgeitems": 2,
-    "linewidth": sys.maxsize,
-    "formatter": {
-        "float_kind": lambda x: np.format_float_scientific(
-            x,
-            precision=3,
-            unique=False,
-            pad_left=2,
-        )
-    },
-}
-
-# Constants.
-BARRIER = 2.0 ** min(
-    100,
-    np.finfo(float).maxexp // 2,
-    -np.finfo(float).minexp // 2,
-)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__init__.py
deleted file mode 100644
index 01a1ad3c6f4cb5c0c9b99d1ce35fea92e7618ff5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from .geometry import cauchy_geometry, spider_geometry
-from .optim import (
-    tangential_byrd_omojokun,
-    constrained_tangential_byrd_omojokun,
-    normal_byrd_omojokun,
-)
-
-__all__ = [
-    "cauchy_geometry",
-    "spider_geometry",
-    "tangential_byrd_omojokun",
-    "constrained_tangential_byrd_omojokun",
-    "normal_byrd_omojokun",
-]
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 9972791224fcd2d60408fd5dca6bfe09505681b6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__pycache__/geometry.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__pycache__/geometry.cpython-310.pyc
deleted file mode 100644
index e919eed1f302eabe9636505f739194cb569a55ed..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__pycache__/geometry.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__pycache__/optim.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__pycache__/optim.cpython-310.pyc
deleted file mode 100644
index 472196d7f57b5569a30be76bde4ce0ba6fe7d066..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/__pycache__/optim.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/geometry.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/geometry.py
deleted file mode 100644
index 7b67fd7c813ee493b18720d1daf71324d72330b6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/geometry.py
+++ /dev/null
@@ -1,387 +0,0 @@
-import inspect
-
-import numpy as np
-
-from ..utils import get_arrays_tol
-
-
-TINY = np.finfo(float).tiny
-
-
-def cauchy_geometry(const, grad, curv, xl, xu, delta, debug):
-    r"""
-    Maximize approximately the absolute value of a quadratic function subject
-    to bound constraints in a trust region.
-
-    This function solves approximately
-
-    .. math::
-
-        \max_{s \in \mathbb{R}^n} \quad \bigg\lvert c + g^{\mathsf{T}} s +
-        \frac{1}{2} s^{\mathsf{T}} H s \bigg\rvert \quad \text{s.t.} \quad
-        \left\{ \begin{array}{l}
-            l \le s \le u,\\
-            \lVert s \rVert \le \Delta,
-        \end{array} \right.
-
-    by maximizing the objective function along the constrained Cauchy
-    direction.
-
-    Parameters
-    ----------
-    const : float
-        Constant :math:`c` as shown above.
-    grad : `numpy.ndarray`, shape (n,)
-        Gradient :math:`g` as shown above.
-    curv : callable
-        Curvature of :math:`H` along any vector.
-
-            ``curv(s) -> float``
-
-        returns :math:`s^{\mathsf{T}} H s`.
-    xl : `numpy.ndarray`, shape (n,)
-        Lower bounds :math:`l` as shown above.
-    xu : `numpy.ndarray`, shape (n,)
-        Upper bounds :math:`u` as shown above.
-    delta : float
-        Trust-region radius :math:`\Delta` as shown above.
-    debug : bool
-        Whether to make debugging tests during the execution.
-
-    Returns
-    -------
-    `numpy.ndarray`, shape (n,)
-        Approximate solution :math:`s`.
-
-    Notes
-    -----
-    This function is described as the first alternative in Section 6.5 of [1]_.
-    It is assumed that the origin is feasible with respect to the bound
-    constraints and that `delta` is finite and positive.
-
-    References
-    ----------
-    .. [1] T. M. Ragonneau. *Model-Based Derivative-Free Optimization Methods
-       and Software*. PhD thesis, Department of Applied Mathematics, The Hong
-       Kong Polytechnic University, Hong Kong, China, 2022. URL:
-       https://theses.lib.polyu.edu.hk/handle/200/12294.
-    """
-    if debug:
-        assert isinstance(const, float)
-        assert isinstance(grad, np.ndarray) and grad.ndim == 1
-        assert inspect.signature(curv).bind(grad)
-        assert isinstance(xl, np.ndarray) and xl.shape == grad.shape
-        assert isinstance(xu, np.ndarray) and xu.shape == grad.shape
-        assert isinstance(delta, float)
-        assert isinstance(debug, bool)
-        tol = get_arrays_tol(xl, xu)
-        assert np.all(xl <= tol)
-        assert np.all(xu >= -tol)
-        assert np.isfinite(delta) and delta > 0.0
-    xl = np.minimum(xl, 0.0)
-    xu = np.maximum(xu, 0.0)
-
-    # To maximize the absolute value of a quadratic function, we maximize the
-    # function itself or its negative, and we choose the solution that provides
-    # the largest function value.
-    step1, q_val1 = _cauchy_geom(const, grad, curv, xl, xu, delta, debug)
-    step2, q_val2 = _cauchy_geom(
-        -const,
-        -grad,
-        lambda x: -curv(x),
-        xl,
-        xu,
-        delta,
-        debug,
-    )
-    step = step1 if abs(q_val1) >= abs(q_val2) else step2
-
-    if debug:
-        assert np.all(xl <= step)
-        assert np.all(step <= xu)
-        assert np.linalg.norm(step) < 1.1 * delta
-    return step
-
-
-def spider_geometry(const, grad, curv, xpt, xl, xu, delta, debug):
-    r"""
-    Maximize approximately the absolute value of a quadratic function subject
-    to bound constraints in a trust region.
-
-    This function solves approximately
-
-    .. math::
-
-        \max_{s \in \mathbb{R}^n} \quad \bigg\lvert c + g^{\mathsf{T}} s +
-        \frac{1}{2} s^{\mathsf{T}} H s \bigg\rvert \quad \text{s.t.} \quad
-        \left\{ \begin{array}{l}
-            l \le s \le u,\\
-            \lVert s \rVert \le \Delta,
-        \end{array} \right.
-
-    by maximizing the objective function along given straight lines.
-
-    Parameters
-    ----------
-    const : float
-        Constant :math:`c` as shown above.
-    grad : `numpy.ndarray`, shape (n,)
-        Gradient :math:`g` as shown above.
-    curv : callable
-        Curvature of :math:`H` along any vector.
-
-            ``curv(s) -> float``
-
-        returns :math:`s^{\mathsf{T}} H s`.
-    xpt : `numpy.ndarray`, shape (n, npt)
-        Points defining the straight lines. The straight lines considered are
-        the ones passing through the origin and the points in `xpt`.
-    xl : `numpy.ndarray`, shape (n,)
-        Lower bounds :math:`l` as shown above.
-    xu : `numpy.ndarray`, shape (n,)
-        Upper bounds :math:`u` as shown above.
-    delta : float
-        Trust-region radius :math:`\Delta` as shown above.
-    debug : bool
-        Whether to make debugging tests during the execution.
-
-    Returns
-    -------
-    `numpy.ndarray`, shape (n,)
-        Approximate solution :math:`s`.
-
-    Notes
-    -----
-    This function is described as the second alternative in Section 6.5 of
-    [1]_. It is assumed that the origin is feasible with respect to the bound
-    constraints and that `delta` is finite and positive.
-
-    References
-    ----------
-    .. [1] T. M. Ragonneau. *Model-Based Derivative-Free Optimization Methods
-       and Software*. PhD thesis, Department of Applied Mathematics, The Hong
-       Kong Polytechnic University, Hong Kong, China, 2022. URL:
-       https://theses.lib.polyu.edu.hk/handle/200/12294.
-    """
-    if debug:
-        assert isinstance(const, float)
-        assert isinstance(grad, np.ndarray) and grad.ndim == 1
-        assert inspect.signature(curv).bind(grad)
-        assert (
-            isinstance(xpt, np.ndarray)
-            and xpt.ndim == 2
-            and xpt.shape[0] == grad.size
-        )
-        assert isinstance(xl, np.ndarray) and xl.shape == grad.shape
-        assert isinstance(xu, np.ndarray) and xu.shape == grad.shape
-        assert isinstance(delta, float)
-        assert isinstance(debug, bool)
-        tol = get_arrays_tol(xl, xu)
-        assert np.all(xl <= tol)
-        assert np.all(xu >= -tol)
-        assert np.isfinite(delta) and delta > 0.0
-    xl = np.minimum(xl, 0.0)
-    xu = np.maximum(xu, 0.0)
-
-    # Iterate through the straight lines.
-    step = np.zeros_like(grad)
-    q_val = const
-    s_norm = np.linalg.norm(xpt, axis=0)
-
-    # Set alpha_xl to the step size for the lower-bound constraint and
-    # alpha_xu to the step size for the upper-bound constraint.
-
-    # xl.shape = (N,)
-    # xpt.shape = (N, M)
-    # i_xl_pos.shape = (M, N)
-    i_xl_pos = (xl > -np.inf) & (xpt.T > -TINY * xl)
-    i_xl_neg = (xl > -np.inf) & (xpt.T < TINY * xl)
-    i_xu_pos = (xu < np.inf) & (xpt.T > TINY * xu)
-    i_xu_neg = (xu < np.inf) & (xpt.T < -TINY * xu)
-
-    # (M, N)
-    alpha_xl_pos = np.atleast_2d(
-        np.broadcast_to(xl, i_xl_pos.shape)[i_xl_pos] / xpt.T[i_xl_pos]
-    )
-    # (M,)
-    alpha_xl_pos = np.max(alpha_xl_pos, axis=1, initial=-np.inf)
-    # make sure it's (M,)
-    alpha_xl_pos = np.broadcast_to(np.atleast_1d(alpha_xl_pos), xpt.shape[1])
-
-    alpha_xl_neg = np.atleast_2d(
-        np.broadcast_to(xl, i_xl_neg.shape)[i_xl_neg] / xpt.T[i_xl_neg]
-    )
-    alpha_xl_neg = np.max(alpha_xl_neg, axis=1, initial=np.inf)
-    alpha_xl_neg = np.broadcast_to(np.atleast_1d(alpha_xl_neg), xpt.shape[1])
-
-    alpha_xu_neg = np.atleast_2d(
-        np.broadcast_to(xu, i_xu_neg.shape)[i_xu_neg] / xpt.T[i_xu_neg]
-    )
-    alpha_xu_neg = np.max(alpha_xu_neg, axis=1, initial=-np.inf)
-    alpha_xu_neg = np.broadcast_to(np.atleast_1d(alpha_xu_neg), xpt.shape[1])
-
-    alpha_xu_pos = np.atleast_2d(
-        np.broadcast_to(xu, i_xu_pos.shape)[i_xu_pos] / xpt.T[i_xu_pos]
-    )
-    alpha_xu_pos = np.max(alpha_xu_pos, axis=1, initial=np.inf)
-    alpha_xu_pos = np.broadcast_to(np.atleast_1d(alpha_xu_pos), xpt.shape[1])
-
-    for k in range(xpt.shape[1]):
-        # Set alpha_tr to the step size for the trust-region constraint.
-        if s_norm[k] > TINY * delta:
-            alpha_tr = max(delta / s_norm[k], 0.0)
-        else:
-            # The current straight line is basically zero.
-            continue
-
-        alpha_bd_pos = max(min(alpha_xu_pos[k], alpha_xl_neg[k]), 0.0)
-        alpha_bd_neg = min(max(alpha_xl_pos[k], alpha_xu_neg[k]), 0.0)
-
-        # Set alpha_quad_pos and alpha_quad_neg to the step size to the extrema
-        # of the quadratic function along the positive and negative directions.
-        grad_step = grad @ xpt[:, k]
-        curv_step = curv(xpt[:, k])
-        if (
-            grad_step >= 0.0
-            and curv_step < -TINY * grad_step
-            or grad_step <= 0.0
-            and curv_step > -TINY * grad_step
-        ):
-            alpha_quad_pos = max(-grad_step / curv_step, 0.0)
-        else:
-            alpha_quad_pos = np.inf
-        if (
-            grad_step >= 0.0
-            and curv_step > TINY * grad_step
-            or grad_step <= 0.0
-            and curv_step < TINY * grad_step
-        ):
-            alpha_quad_neg = min(-grad_step / curv_step, 0.0)
-        else:
-            alpha_quad_neg = -np.inf
-
-        # Select the step that provides the largest value of the objective
-        # function if it improves the current best. The best positive step is
-        # either the one that reaches the constraints or the one that reaches
-        # the extremum of the objective function along the current direction
-        # (only possible if the resulting step is feasible). We test both, and
-        # we perform similar calculations along the negative step.
-        # N.B.: we select the largest possible step among all the ones that
-        # maximize the objective function. This is to avoid returning the zero
-        # step in some extreme cases.
-        alpha_pos = min(alpha_tr, alpha_bd_pos)
-        alpha_neg = max(-alpha_tr, alpha_bd_neg)
-        q_val_pos = (
-            const + alpha_pos * grad_step + 0.5 * alpha_pos**2.0 * curv_step
-        )
-        q_val_neg = (
-            const + alpha_neg * grad_step + 0.5 * alpha_neg**2.0 * curv_step
-        )
-        if alpha_quad_pos < alpha_pos:
-            q_val_quad_pos = (
-                const
-                + alpha_quad_pos * grad_step
-                + 0.5 * alpha_quad_pos**2.0 * curv_step
-            )
-            if abs(q_val_quad_pos) > abs(q_val_pos):
-                alpha_pos = alpha_quad_pos
-                q_val_pos = q_val_quad_pos
-        if alpha_quad_neg > alpha_neg:
-            q_val_quad_neg = (
-                const
-                + alpha_quad_neg * grad_step
-                + 0.5 * alpha_quad_neg**2.0 * curv_step
-            )
-            if abs(q_val_quad_neg) > abs(q_val_neg):
-                alpha_neg = alpha_quad_neg
-                q_val_neg = q_val_quad_neg
-        if abs(q_val_pos) >= abs(q_val_neg) and abs(q_val_pos) > abs(q_val):
-            step = np.clip(alpha_pos * xpt[:, k], xl, xu)
-            q_val = q_val_pos
-        elif abs(q_val_neg) > abs(q_val_pos) and abs(q_val_neg) > abs(q_val):
-            step = np.clip(alpha_neg * xpt[:, k], xl, xu)
-            q_val = q_val_neg
-
-    if debug:
-        assert np.all(xl <= step)
-        assert np.all(step <= xu)
-        assert np.linalg.norm(step) < 1.1 * delta
-    return step
-
-
-def _cauchy_geom(const, grad, curv, xl, xu, delta, debug):
-    """
-    Same as `bound_constrained_cauchy_step` without the absolute value.
-    """
-    # Calculate the initial active set.
-    fixed_xl = (xl < 0.0) & (grad > 0.0)
-    fixed_xu = (xu > 0.0) & (grad < 0.0)
-
-    # Calculate the Cauchy step.
-    cauchy_step = np.zeros_like(grad)
-    cauchy_step[fixed_xl] = xl[fixed_xl]
-    cauchy_step[fixed_xu] = xu[fixed_xu]
-    if np.linalg.norm(cauchy_step) > delta:
-        working = fixed_xl | fixed_xu
-        while True:
-            # Calculate the Cauchy step for the directions in the working set.
-            g_norm = np.linalg.norm(grad[working])
-            delta_reduced = np.sqrt(
-                delta**2.0 - cauchy_step[~working] @ cauchy_step[~working]
-            )
-            if g_norm > TINY * abs(delta_reduced):
-                mu = max(delta_reduced / g_norm, 0.0)
-            else:
-                break
-            cauchy_step[working] = mu * grad[working]
-
-            # Update the working set.
-            fixed_xl = working & (cauchy_step < xl)
-            fixed_xu = working & (cauchy_step > xu)
-            if not np.any(fixed_xl) and not np.any(fixed_xu):
-                # Stop the calculations as the Cauchy step is now feasible.
-                break
-            cauchy_step[fixed_xl] = xl[fixed_xl]
-            cauchy_step[fixed_xu] = xu[fixed_xu]
-            working = working & ~(fixed_xl | fixed_xu)
-
-    # Calculate the step that maximizes the quadratic along the Cauchy step.
-    grad_step = grad @ cauchy_step
-    if grad_step >= 0.0:
-        # Set alpha_tr to the step size for the trust-region constraint.
-        s_norm = np.linalg.norm(cauchy_step)
-        if s_norm > TINY * delta:
-            alpha_tr = max(delta / s_norm, 0.0)
-        else:
-            # The Cauchy step is basically zero.
-            alpha_tr = 0.0
-
-        # Set alpha_quad to the step size for the maximization problem.
-        curv_step = curv(cauchy_step)
-        if curv_step < -TINY * grad_step:
-            alpha_quad = max(-grad_step / curv_step, 0.0)
-        else:
-            alpha_quad = np.inf
-
-        # Set alpha_bd to the step size for the bound constraints.
-        i_xl = (xl > -np.inf) & (cauchy_step < TINY * xl)
-        i_xu = (xu < np.inf) & (cauchy_step > TINY * xu)
-        alpha_xl = np.min(xl[i_xl] / cauchy_step[i_xl], initial=np.inf)
-        alpha_xu = np.min(xu[i_xu] / cauchy_step[i_xu], initial=np.inf)
-        alpha_bd = min(alpha_xl, alpha_xu)
-
-        # Calculate the solution and the corresponding function value.
-        alpha = min(alpha_tr, alpha_quad, alpha_bd)
-        step = np.clip(alpha * cauchy_step, xl, xu)
-        q_val = const + alpha * grad_step + 0.5 * alpha**2.0 * curv_step
-    else:
-        # This case is never reached in exact arithmetic. It prevents this
-        # function to return a step that decreases the objective function.
-        step = np.zeros_like(grad)
-        q_val = const
-
-    if debug:
-        assert np.all(xl <= step)
-        assert np.all(step <= xu)
-        assert np.linalg.norm(step) < 1.1 * delta
-    return step, q_val
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/optim.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/optim.py
deleted file mode 100644
index c4a960396fb2e992cf76bac0baf171b5af9b7717..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/subsolvers/optim.py
+++ /dev/null
@@ -1,1203 +0,0 @@
-import inspect
-
-import numpy as np
-from scipy.linalg import qr
-
-from ..utils import get_arrays_tol
-
-
-TINY = np.finfo(float).tiny
-EPS = np.finfo(float).eps
-
-
-def tangential_byrd_omojokun(grad, hess_prod, xl, xu, delta, debug, **kwargs):
-    r"""
-    Minimize approximately a quadratic function subject to bound constraints in
-    a trust region.
-
-    This function solves approximately
-
-    .. math::
-
-        \min_{s \in \mathbb{R}^n} \quad g^{\mathsf{T}} s + \frac{1}{2}
-        s^{\mathsf{T}} H s \quad \text{s.t.} \quad
-        \left\{ \begin{array}{l}
-            l \le s \le u\\
-            \lVert s \rVert \le \Delta,
-        \end{array} \right.
-
-    using an active-set variation of the truncated conjugate gradient method.
-
-    Parameters
-    ----------
-    grad : `numpy.ndarray`, shape (n,)
-        Gradient :math:`g` as shown above.
-    hess_prod : callable
-        Product of the Hessian matrix :math:`H` with any vector.
-
-            ``hess_prod(s) -> `numpy.ndarray`, shape (n,)``
-
-        returns the product :math:`H s`.
-    xl : `numpy.ndarray`, shape (n,)
-        Lower bounds :math:`l` as shown above.
-    xu : `numpy.ndarray`, shape (n,)
-        Upper bounds :math:`u` as shown above.
-    delta : float
-        Trust-region radius :math:`\Delta` as shown above.
-    debug : bool
-        Whether to make debugging tests during the execution.
-
-    Returns
-    -------
-    `numpy.ndarray`, shape (n,)
-        Approximate solution :math:`s`.
-
-    Other Parameters
-    ----------------
-    improve_tcg : bool, optional
-        If True, a solution generated by the truncated conjugate gradient
-        method that is on the boundary of the trust region is improved by
-        moving around the trust-region boundary on the two-dimensional space
-        spanned by the solution and the gradient of the quadratic function at
-        the solution (default is True).
-
-    Notes
-    -----
-    This function implements Algorithm 6.2 of [1]_. It is assumed that the
-    origin is feasible with respect to the bound constraints and that `delta`
-    is finite and positive.
-
-    References
-    ----------
-    .. [1] T. M. Ragonneau. *Model-Based Derivative-Free Optimization Methods
-       and Software*. PhD thesis, Department of Applied Mathematics, The Hong
-       Kong Polytechnic University, Hong Kong, China, 2022. URL:
-       https://theses.lib.polyu.edu.hk/handle/200/12294.
-    """
-    if debug:
-        assert isinstance(grad, np.ndarray) and grad.ndim == 1
-        assert inspect.signature(hess_prod).bind(grad)
-        assert isinstance(xl, np.ndarray) and xl.shape == grad.shape
-        assert isinstance(xu, np.ndarray) and xu.shape == grad.shape
-        assert isinstance(delta, float)
-        assert isinstance(debug, bool)
-        tol = get_arrays_tol(xl, xu)
-        assert np.all(xl <= tol)
-        assert np.all(xu >= -tol)
-        assert np.isfinite(delta) and delta > 0.0
-    xl = np.minimum(xl, 0.0)
-    xu = np.maximum(xu, 0.0)
-
-    # Copy the arrays that may be modified by the code below.
-    n = grad.size
-    grad = np.copy(grad)
-    grad_orig = np.copy(grad)
-
-    # Calculate the initial active set.
-    free_bd = ((xl < 0.0) | (grad < 0.0)) & ((xu > 0.0) | (grad > 0.0))
-
-    # Set the initial iterate and the initial search direction.
-    step = np.zeros_like(grad)
-    sd = np.zeros_like(step)
-    sd[free_bd] = -grad[free_bd]
-
-    k = 0
-    reduct = 0.0
-    boundary_reached = False
-    while k < np.count_nonzero(free_bd):
-        # Stop the computations if sd is not a descent direction.
-        grad_sd = grad @ sd
-        if grad_sd >= -10.0 * EPS * n * max(1.0, np.linalg.norm(grad)):
-            break
-
-        # Set alpha_tr to the step size for the trust-region constraint.
-        try:
-            alpha_tr = _alpha_tr(step, sd, delta)
-        except ZeroDivisionError:
-            break
-
-        # Stop the computations if a step along sd is expected to give a
-        # relatively small reduction in the objective function.
-        if -alpha_tr * grad_sd <= 1e-8 * reduct:
-            break
-
-        # Set alpha_quad to the step size for the minimization problem.
-        hess_sd = hess_prod(sd)
-        curv_sd = sd @ hess_sd
-        if curv_sd > TINY * abs(grad_sd):
-            alpha_quad = max(-grad_sd / curv_sd, 0.0)
-        else:
-            alpha_quad = np.inf
-
-        # Stop the computations if the reduction in the objective function
-        # provided by an unconstrained step is small.
-        alpha = min(alpha_tr, alpha_quad)
-        if -alpha * (grad_sd + 0.5 * alpha * curv_sd) <= 1e-8 * reduct:
-            break
-
-        # Set alpha_bd to the step size for the bound constraints.
-        i_xl = (xl > -np.inf) & (sd < -TINY * np.abs(xl - step))
-        i_xu = (xu < np.inf) & (sd > TINY * np.abs(xu - step))
-        all_alpha_xl = np.full_like(step, np.inf)
-        all_alpha_xu = np.full_like(step, np.inf)
-        all_alpha_xl[i_xl] = np.maximum(
-            (xl[i_xl] - step[i_xl]) / sd[i_xl],
-            0.0,
-        )
-        all_alpha_xu[i_xu] = np.maximum(
-            (xu[i_xu] - step[i_xu]) / sd[i_xu],
-            0.0,
-        )
-        alpha_xl = np.min(all_alpha_xl)
-        alpha_xu = np.min(all_alpha_xu)
-        alpha_bd = min(alpha_xl, alpha_xu)
-
-        # Update the iterate.
-        alpha = min(alpha, alpha_bd)
-        if alpha > 0.0:
-            step[free_bd] = np.clip(
-                step[free_bd] + alpha * sd[free_bd],
-                xl[free_bd],
-                xu[free_bd],
-            )
-            grad += alpha * hess_sd
-            reduct -= alpha * (grad_sd + 0.5 * alpha * curv_sd)
-
-        if alpha < min(alpha_tr, alpha_bd):
-            # The current iteration is a conjugate gradient iteration. Update
-            # the search direction so that it is conjugate (with respect to H)
-            # to all the previous search directions.
-            beta = (grad[free_bd] @ hess_sd[free_bd]) / curv_sd
-            sd[free_bd] = beta * sd[free_bd] - grad[free_bd]
-            sd[~free_bd] = 0.0
-            k += 1
-        elif alpha < alpha_tr:
-            # The iterate is restricted by a bound constraint. Add this bound
-            # constraint to the active set, and restart the calculations.
-            if alpha_xl <= alpha:
-                i_new = np.argmin(all_alpha_xl)
-                step[i_new] = xl[i_new]
-            else:
-                i_new = np.argmin(all_alpha_xu)
-                step[i_new] = xu[i_new]
-            free_bd[i_new] = False
-            sd[free_bd] = -grad[free_bd]
-            sd[~free_bd] = 0.0
-            k = 0
-        else:
-            # The current iterate is on the trust-region boundary. Add all the
-            # active bounds to the working set to prepare for the improvement
-            # of the solution, and stop the iterations.
-            if alpha_xl <= alpha:
-                i_new = _argmin(all_alpha_xl)
-                step[i_new] = xl[i_new]
-                free_bd[i_new] = False
-            if alpha_xu <= alpha:
-                i_new = _argmin(all_alpha_xu)
-                step[i_new] = xu[i_new]
-                free_bd[i_new] = False
-            boundary_reached = True
-            break
-
-    # Attempt to improve the solution on the trust-region boundary.
-    if kwargs.get("improve_tcg", True) and boundary_reached:
-        step_base = np.copy(step)
-        step_comparator = grad_orig @ step_base + 0.5 * step_base @ hess_prod(
-            step_base
-        )
-
-        while np.count_nonzero(free_bd) > 0:
-            # Check whether a substantial reduction in the objective function
-            # is possible, and set the search direction.
-            step_sq = step[free_bd] @ step[free_bd]
-            grad_sq = grad[free_bd] @ grad[free_bd]
-            grad_step = grad[free_bd] @ step[free_bd]
-            grad_sd = -np.sqrt(max(step_sq * grad_sq - grad_step**2.0, 0.0))
-            sd[free_bd] = grad_step * step[free_bd] - step_sq * grad[free_bd]
-            sd[~free_bd] = 0.0
-            if grad_sd >= -1e-8 * reduct or np.any(
-                grad_sd >= -TINY * np.abs(sd[free_bd])
-            ):
-                break
-            sd[free_bd] /= -grad_sd
-
-            # Calculate an upper bound for the tangent of half the angle theta
-            # of this alternative iteration. The step will be updated as:
-            # step = cos(theta) * step + sin(theta) * sd.
-            temp_xl = np.zeros(n)
-            temp_xu = np.zeros(n)
-            temp_xl[free_bd] = (
-                step[free_bd] ** 2.0 + sd[free_bd] ** 2.0 - xl[free_bd] ** 2.0
-            )
-            temp_xu[free_bd] = (
-                step[free_bd] ** 2.0 + sd[free_bd] ** 2.0 - xu[free_bd] ** 2.0
-            )
-            temp_xl[temp_xl > 0.0] = (
-                np.sqrt(temp_xl[temp_xl > 0.0]) - sd[temp_xl > 0.0]
-            )
-            temp_xu[temp_xu > 0.0] = (
-                np.sqrt(temp_xu[temp_xu > 0.0]) + sd[temp_xu > 0.0]
-            )
-            dist_xl = np.maximum(step - xl, 0.0)
-            dist_xu = np.maximum(xu - step, 0.0)
-            i_xl = temp_xl > TINY * dist_xl
-            i_xu = temp_xu > TINY * dist_xu
-            all_t_xl = np.ones(n)
-            all_t_xu = np.ones(n)
-            all_t_xl[i_xl] = np.minimum(
-                all_t_xl[i_xl],
-                dist_xl[i_xl] / temp_xl[i_xl],
-            )
-            all_t_xu[i_xu] = np.minimum(
-                all_t_xu[i_xu],
-                dist_xu[i_xu] / temp_xu[i_xu],
-            )
-            t_xl = np.min(all_t_xl)
-            t_xu = np.min(all_t_xu)
-            t_bd = min(t_xl, t_xu)
-
-            # Calculate some curvature information.
-            hess_step = hess_prod(step)
-            hess_sd = hess_prod(sd)
-            curv_step = step @ hess_step
-            curv_sd = sd @ hess_sd
-            curv_step_sd = step @ hess_sd
-
-            # For a range of equally spaced values of tan(0.5 * theta),
-            # calculate the reduction in the objective function that would be
-            # obtained by accepting the corresponding angle.
-            n_samples = 20
-            n_samples = int((n_samples - 3) * t_bd + 3)
-            t_samples = np.linspace(t_bd / n_samples, t_bd, n_samples)
-            sin_values = 2.0 * t_samples / (1.0 + t_samples**2.0)
-            all_reduct = sin_values * (
-                grad_step * t_samples
-                - grad_sd
-                - t_samples * curv_step
-                + sin_values
-                * (t_samples * curv_step_sd - 0.5 * (curv_sd - curv_step))
-            )
-            if np.all(all_reduct <= 0.0):
-                # No reduction in the objective function is obtained.
-                break
-
-            # Accept the angle that provides the largest reduction in the
-            # objective function, and update the iterate.
-            i_max = np.argmax(all_reduct)
-            cos_value = (1.0 - t_samples[i_max] ** 2.0) / (
-                1.0 + t_samples[i_max] ** 2.0
-            )
-            step[free_bd] = (
-                cos_value * step[free_bd] + sin_values[i_max] * sd[free_bd]
-            )
-            grad += (cos_value - 1.0) * hess_step + sin_values[i_max] * hess_sd
-            reduct += all_reduct[i_max]
-
-            # If the above angle is restricted by bound constraints, add them
-            # to the working set, and restart the alternative iteration.
-            # Otherwise, the calculations are terminated.
-            if t_bd < 1.0 and i_max == n_samples - 1:
-                if t_xl <= t_bd:
-                    i_new = _argmin(all_t_xl)
-                    step[i_new] = xl[i_new]
-                    free_bd[i_new] = False
-                if t_xu <= t_bd:
-                    i_new = _argmin(all_t_xu)
-                    step[i_new] = xu[i_new]
-                    free_bd[i_new] = False
-            else:
-                break
-
-        # Ensure that the alternative iteration improves the objective
-        # function.
-        if grad_orig @ step + 0.5 * step @ hess_prod(step) > step_comparator:
-            step = step_base
-
-    if debug:
-        assert np.all(xl <= step)
-        assert np.all(step <= xu)
-        assert np.linalg.norm(step) < 1.1 * delta
-    return step
-
-
-def constrained_tangential_byrd_omojokun(
-    grad,
-    hess_prod,
-    xl,
-    xu,
-    aub,
-    bub,
-    aeq,
-    delta,
-    debug,
-    **kwargs,
-):
-    r"""
-    Minimize approximately a quadratic function subject to bound and linear
-    constraints in a trust region.
-
-    This function solves approximately
-
-    .. math::
-
-        \min_{s \in \mathbb{R}^n} \quad g^{\mathsf{T}} s + \frac{1}{2}
-        s^{\mathsf{T}} H s \quad \text{s.t.} \quad
-        \left\{ \begin{array}{l}
-            l \le s \le u,\\
-            A_{\scriptscriptstyle I} s \le b_{\scriptscriptstyle I},\\
-            A_{\scriptscriptstyle E} s = 0,\\
-            \lVert s \rVert \le \Delta,
-        \end{array} \right.
-
-    using an active-set variation of the truncated conjugate gradient method.
-
-    Parameters
-    ----------
-    grad : `numpy.ndarray`, shape (n,)
-        Gradient :math:`g` as shown above.
-    hess_prod : callable
-        Product of the Hessian matrix :math:`H` with any vector.
-
-            ``hess_prod(s) -> `numpy.ndarray`, shape (n,)``
-
-        returns the product :math:`H s`.
-    xl : `numpy.ndarray`, shape (n,)
-        Lower bounds :math:`l` as shown above.
-    xu : `numpy.ndarray`, shape (n,)
-        Upper bounds :math:`u` as shown above.
-    aub : `numpy.ndarray`, shape (m_linear_ub, n)
-        Coefficient matrix :math:`A_{\scriptscriptstyle I}` as shown above.
-    bub : `numpy.ndarray`, shape (m_linear_ub,)
-        Right-hand side :math:`b_{\scriptscriptstyle I}` as shown above.
-    aeq : `numpy.ndarray`, shape (m_linear_eq, n)
-        Coefficient matrix :math:`A_{\scriptscriptstyle E}` as shown above.
-    delta : float
-        Trust-region radius :math:`\Delta` as shown above.
-    debug : bool
-        Whether to make debugging tests during the execution.
-
-    Returns
-    -------
-    `numpy.ndarray`, shape (n,)
-        Approximate solution :math:`s`.
-
-    Other Parameters
-    ----------------
-    improve_tcg : bool, optional
-        If True, a solution generated by the truncated conjugate gradient
-        method that is on the boundary of the trust region is improved by
-        moving around the trust-region boundary on the two-dimensional space
-        spanned by the solution and the gradient of the quadratic function at
-        the solution (default is True).
-
-    Notes
-    -----
-    This function implements Algorithm 6.3 of [1]_. It is assumed that the
-    origin is feasible with respect to the bound and linear constraints, and
-    that `delta` is finite and positive.
-
-    References
-    ----------
-    .. [1] T. M. Ragonneau. *Model-Based Derivative-Free Optimization Methods
-       and Software*. PhD thesis, Department of Applied Mathematics, The Hong
-       Kong Polytechnic University, Hong Kong, China, 2022. URL:
-       https://theses.lib.polyu.edu.hk/handle/200/12294.
-    """
-    if debug:
-        assert isinstance(grad, np.ndarray) and grad.ndim == 1
-        assert inspect.signature(hess_prod).bind(grad)
-        assert isinstance(xl, np.ndarray) and xl.shape == grad.shape
-        assert isinstance(xu, np.ndarray) and xu.shape == grad.shape
-        assert (
-            isinstance(aub, np.ndarray)
-            and aub.ndim == 2
-            and aub.shape[1] == grad.size
-        )
-        assert (
-            isinstance(bub, np.ndarray)
-            and bub.ndim == 1
-            and bub.size == aub.shape[0]
-        )
-        assert (
-            isinstance(aeq, np.ndarray)
-            and aeq.ndim == 2
-            and aeq.shape[1] == grad.size
-        )
-        assert isinstance(delta, float)
-        assert isinstance(debug, bool)
-        tol = get_arrays_tol(xl, xu)
-        assert np.all(xl <= tol)
-        assert np.all(xu >= -tol)
-        assert np.all(bub >= -tol)
-        assert np.isfinite(delta) and delta > 0.0
-    xl = np.minimum(xl, 0.0)
-    xu = np.maximum(xu, 0.0)
-    bub = np.maximum(bub, 0.0)
-
-    # Copy the arrays that may be modified by the code below.
-    n = grad.size
-    grad = np.copy(grad)
-    grad_orig = np.copy(grad)
-
-    # Calculate the initial active set.
-    free_xl = (xl < 0.0) | (grad < 0.0)
-    free_xu = (xu > 0.0) | (grad > 0.0)
-    free_ub = (bub > 0.0) | (aub @ grad > 0.0)
-    n_act, q = qr_tangential_byrd_omojokun(aub, aeq, free_xl, free_xu, free_ub)
-
-    # Set the initial iterate and the initial search direction.
-    step = np.zeros_like(grad)
-    sd = -q[:, n_act:] @ (q[:, n_act:].T @ grad)
-    resid = np.copy(bub)
-
-    k = 0
-    reduct = 0.0
-    boundary_reached = False
-    while k < n - n_act:
-        # Stop the computations if sd is not a descent direction.
-        grad_sd = grad @ sd
-        if grad_sd >= -10.0 * EPS * n * max(1.0, np.linalg.norm(grad)):
-            break
-
-        # Set alpha_tr to the step size for the trust-region constraint.
-        try:
-            alpha_tr = _alpha_tr(step, sd, delta)
-        except ZeroDivisionError:
-            break
-
-        # Stop the computations if a step along sd is expected to give a
-        # relatively small reduction in the objective function.
-        if -alpha_tr * grad_sd <= 1e-8 * reduct:
-            break
-
-        # Set alpha_quad to the step size for the minimization problem.
-        hess_sd = hess_prod(sd)
-        curv_sd = sd @ hess_sd
-        if curv_sd > TINY * abs(grad_sd):
-            alpha_quad = max(-grad_sd / curv_sd, 0.0)
-        else:
-            alpha_quad = np.inf
-
-        # Stop the computations if the reduction in the objective function
-        # provided by an unconstrained step is small.
-        alpha = min(alpha_tr, alpha_quad)
-        if -alpha * (grad_sd + 0.5 * alpha * curv_sd) <= 1e-8 * reduct:
-            break
-
-        # Set alpha_bd to the step size for the bound constraints.
-        i_xl = free_xl & (xl > -np.inf) & (sd < -TINY * np.abs(xl - step))
-        i_xu = free_xu & (xu < np.inf) & (sd > TINY * np.abs(xu - step))
-        all_alpha_xl = np.full_like(step, np.inf)
-        all_alpha_xu = np.full_like(step, np.inf)
-        all_alpha_xl[i_xl] = np.maximum(
-            (xl[i_xl] - step[i_xl]) / sd[i_xl],
-            0.0,
-        )
-        all_alpha_xu[i_xu] = np.maximum(
-            (xu[i_xu] - step[i_xu]) / sd[i_xu],
-            0.0,
-        )
-        alpha_xl = np.min(all_alpha_xl)
-        alpha_xu = np.min(all_alpha_xu)
-        alpha_bd = min(alpha_xl, alpha_xu)
-
-        # Set alpha_ub to the step size for the linear constraints.
-        aub_sd = aub @ sd
-        i_ub = free_ub & (aub_sd > TINY * np.abs(resid))
-        all_alpha_ub = np.full_like(bub, np.inf)
-        all_alpha_ub[i_ub] = resid[i_ub] / aub_sd[i_ub]
-        alpha_ub = np.min(all_alpha_ub, initial=np.inf)
-
-        # Update the iterate.
-        alpha = min(alpha, alpha_bd, alpha_ub)
-        if alpha > 0.0:
-            step = np.clip(step + alpha * sd, xl, xu)
-            grad += alpha * hess_sd
-            resid = np.maximum(0.0, resid - alpha * aub_sd)
-            reduct -= alpha * (grad_sd + 0.5 * alpha * curv_sd)
-
-        if alpha < min(alpha_tr, alpha_bd, alpha_ub):
-            # The current iteration is a conjugate gradient iteration. Update
-            # the search direction so that it is conjugate (with respect to H)
-            # to all the previous search directions.
-            grad_proj = q[:, n_act:] @ (q[:, n_act:].T @ grad)
-            beta = (grad_proj @ hess_sd) / curv_sd
-            sd = beta * sd - grad_proj
-            k += 1
-        elif alpha < alpha_tr:
-            # The iterate is restricted by a bound/linear constraint. Add this
-            # constraint to the active set, and restart the calculations.
-            if alpha_xl <= alpha:
-                i_new = np.argmin(all_alpha_xl)
-                step[i_new] = xl[i_new]
-                free_xl[i_new] = False
-            elif alpha_xu <= alpha:
-                i_new = np.argmin(all_alpha_xu)
-                step[i_new] = xu[i_new]
-                free_xu[i_new] = False
-            else:
-                i_new = np.argmin(all_alpha_ub)
-                free_ub[i_new] = False
-            n_act, q = qr_tangential_byrd_omojokun(
-                aub,
-                aeq,
-                free_xl,
-                free_xu,
-                free_ub,
-            )
-            sd = -q[:, n_act:] @ (q[:, n_act:].T @ grad)
-            k = 0
-        else:
-            # The current iterate is on the trust-region boundary. Add all the
-            # active bound/linear constraints to the working set to prepare for
-            # the improvement of the solution, and stop the iterations.
-            if alpha_xl <= alpha:
-                i_new = _argmin(all_alpha_xl)
-                step[i_new] = xl[i_new]
-                free_xl[i_new] = False
-            if alpha_xu <= alpha:
-                i_new = _argmin(all_alpha_xu)
-                step[i_new] = xu[i_new]
-                free_xu[i_new] = False
-            if alpha_ub <= alpha:
-                i_new = _argmin(all_alpha_ub)
-                free_ub[i_new] = False
-            n_act, q = qr_tangential_byrd_omojokun(
-                aub,
-                aeq,
-                free_xl,
-                free_xu,
-                free_ub,
-            )
-            boundary_reached = True
-            break
-
-    # Attempt to improve the solution on the trust-region boundary.
-    if kwargs.get("improve_tcg", True) and boundary_reached and n_act < n:
-        step_base = np.copy(step)
-        while n_act < n:
-            # Check whether a substantial reduction in the objective function
-            # is possible, and set the search direction.
-            step_proj = q[:, n_act:] @ (q[:, n_act:].T @ step)
-            grad_proj = q[:, n_act:] @ (q[:, n_act:].T @ grad)
-            step_sq = step_proj @ step_proj
-            grad_sq = grad_proj @ grad_proj
-            grad_step = grad_proj @ step_proj
-            grad_sd = -np.sqrt(max(step_sq * grad_sq - grad_step**2.0, 0.0))
-            sd = q[:, n_act:] @ (
-                q[:, n_act:].T @ (grad_step * step - step_sq * grad)
-            )
-            if grad_sd >= -1e-8 * reduct or np.any(
-                grad_sd >= -TINY * np.abs(sd)
-            ):
-                break
-            sd /= -grad_sd
-
-            # Calculate an upper bound for the tangent of half the angle theta
-            # of this alternative iteration for the bound constraints. The step
-            # will be updated as:
-            # step += (cos(theta) - 1) * step_proj + sin(theta) * sd.
-            temp_xl = np.zeros(n)
-            temp_xu = np.zeros(n)
-            dist_xl = np.maximum(step - xl, 0.0)
-            dist_xu = np.maximum(xu - step, 0.0)
-            temp_xl[free_xl] = sd[free_xl] ** 2.0 - dist_xl[free_xl] * (
-                dist_xl[free_xl] - 2.0 * step_proj[free_xl]
-            )
-            temp_xu[free_xu] = sd[free_xu] ** 2.0 - dist_xu[free_xu] * (
-                dist_xu[free_xu] + 2.0 * step_proj[free_xu]
-            )
-            temp_xl[temp_xl > 0.0] = (
-                np.sqrt(temp_xl[temp_xl > 0.0]) - sd[temp_xl > 0.0]
-            )
-            temp_xu[temp_xu > 0.0] = (
-                np.sqrt(temp_xu[temp_xu > 0.0]) + sd[temp_xu > 0.0]
-            )
-            i_xl = temp_xl > TINY * dist_xl
-            i_xu = temp_xu > TINY * dist_xu
-            all_t_xl = np.ones(n)
-            all_t_xu = np.ones(n)
-            all_t_xl[i_xl] = np.minimum(
-                all_t_xl[i_xl],
-                dist_xl[i_xl] / temp_xl[i_xl],
-            )
-            all_t_xu[i_xu] = np.minimum(
-                all_t_xu[i_xu],
-                dist_xu[i_xu] / temp_xu[i_xu],
-            )
-            t_xl = np.min(all_t_xl)
-            t_xu = np.min(all_t_xu)
-            t_bd = min(t_xl, t_xu)
-
-            # Calculate an upper bound for the tangent of half the angle theta
-            # of this alternative iteration for the linear constraints.
-            temp_ub = np.zeros_like(resid)
-            aub_step = aub @ step_proj
-            aub_sd = aub @ sd
-            temp_ub[free_ub] = aub_sd[free_ub] ** 2.0 - resid[free_ub] * (
-                resid[free_ub] + 2.0 * aub_step[free_ub]
-            )
-            temp_ub[temp_ub > 0.0] = (
-                np.sqrt(temp_ub[temp_ub > 0.0]) + aub_sd[temp_ub > 0.0]
-            )
-            i_ub = temp_ub > TINY * resid
-            all_t_ub = np.ones_like(resid)
-            all_t_ub[i_ub] = np.minimum(
-                all_t_ub[i_ub],
-                resid[i_ub] / temp_ub[i_ub],
-            )
-            t_ub = np.min(all_t_ub, initial=1.0)
-            t_min = min(t_bd, t_ub)
-
-            # Calculate some curvature information.
-            hess_step = hess_prod(step_proj)
-            hess_sd = hess_prod(sd)
-            curv_step = step_proj @ hess_step
-            curv_sd = sd @ hess_sd
-            curv_step_sd = step_proj @ hess_sd
-
-            # For a range of equally spaced values of tan(0.5 * theta),
-            # calculate the reduction in the objective function that would be
-            # obtained by accepting the corresponding angle.
-            n_samples = 20
-            n_samples = int((n_samples - 3) * t_min + 3)
-            t_samples = np.linspace(t_min / n_samples, t_min, n_samples)
-            sin_values = 2.0 * t_samples / (1.0 + t_samples**2.0)
-            all_reduct = sin_values * (
-                grad_step * t_samples
-                - grad_sd
-                - sin_values
-                * (
-                    0.5 * t_samples**2.0 * curv_step
-                    - 2.0 * t_samples * curv_step_sd
-                    + 0.5 * curv_sd
-                )
-            )
-            if np.all(all_reduct <= 0.0):
-                # No reduction in the objective function is obtained.
-                break
-
-            # Accept the angle that provides the largest reduction in the
-            # objective function, and update the iterate.
-            i_max = np.argmax(all_reduct)
-            cos_value = (1.0 - t_samples[i_max] ** 2.0) / (
-                1.0 + t_samples[i_max] ** 2.0
-            )
-            step = np.clip(
-                step + (cos_value - 1.0) * step_proj + sin_values[i_max] * sd,
-                xl,
-                xu,
-            )
-            grad += (cos_value - 1.0) * hess_step + sin_values[i_max] * hess_sd
-            resid = np.maximum(
-                0.0,
-                resid
-                - (cos_value - 1.0) * aub_step
-                - sin_values[i_max] * aub_sd,
-            )
-            reduct += all_reduct[i_max]
-
-            # If the above angle is restricted by bound constraints, add them
-            # to the working set, and restart the alternative iteration.
-            # Otherwise, the calculations are terminated.
-            if t_min < 1.0 and i_max == n_samples - 1:
-                if t_xl <= t_min:
-                    i_new = _argmin(all_t_xl)
-                    step[i_new] = xl[i_new]
-                    free_xl[i_new] = False
-                if t_xu <= t_min:
-                    i_new = _argmin(all_t_xu)
-                    step[i_new] = xu[i_new]
-                    free_xl[i_new] = False
-                if t_ub <= t_min:
-                    i_new = _argmin(all_t_ub)
-                    free_ub[i_new] = False
-                n_act, q = qr_tangential_byrd_omojokun(
-                    aub,
-                    aeq,
-                    free_xl,
-                    free_xu,
-                    free_ub,
-                )
-            else:
-                break
-
-        # Ensure that the alternative iteration improves the objective
-        # function.
-        if grad_orig @ step + 0.5 * step @ hess_prod(
-            step
-        ) > grad_orig @ step_base + 0.5 * step_base @ hess_prod(step_base):
-            step = step_base
-
-    if debug:
-        tol = get_arrays_tol(xl, xu)
-        assert np.all(xl <= step)
-        assert np.all(step <= xu)
-        assert np.all(aub @ step <= bub + tol)
-        assert np.all(np.abs(aeq @ step) <= tol)
-        assert np.linalg.norm(step) < 1.1 * delta
-    return step
-
-
-def normal_byrd_omojokun(aub, bub, aeq, beq, xl, xu, delta, debug, **kwargs):
-    r"""
-    Minimize approximately a linear constraint violation subject to bound
-    constraints in a trust region.
-
-    This function solves approximately
-
-    .. math::
-
-        \min_{s \in \mathbb{R}^n} \quad \frac{1}{2} \big( \lVert \max \{
-        A_{\scriptscriptstyle I} s - b_{\scriptscriptstyle I}, 0 \} \rVert^2 +
-        \lVert A_{\scriptscriptstyle E} s - b_{\scriptscriptstyle E} \rVert^2
-        \big) \quad \text{s.t.}
-        \quad
-        \left\{ \begin{array}{l}
-            l \le s \le u,\\
-            \lVert s \rVert \le \Delta,
-        \end{array} \right.
-
-    using a variation of the truncated conjugate gradient method.
-
-    Parameters
-    ----------
-    aub : `numpy.ndarray`, shape (m_linear_ub, n)
-        Matrix :math:`A_{\scriptscriptstyle I}` as shown above.
-    bub : `numpy.ndarray`, shape (m_linear_ub,)
-        Vector :math:`b_{\scriptscriptstyle I}` as shown above.
-    aeq : `numpy.ndarray`, shape (m_linear_eq, n)
-        Matrix :math:`A_{\scriptscriptstyle E}` as shown above.
-    beq : `numpy.ndarray`, shape (m_linear_eq,)
-        Vector :math:`b_{\scriptscriptstyle E}` as shown above.
-    xl : `numpy.ndarray`, shape (n,)
-        Lower bounds :math:`l` as shown above.
-    xu : `numpy.ndarray`, shape (n,)
-        Upper bounds :math:`u` as shown above.
-    delta : float
-        Trust-region radius :math:`\Delta` as shown above.
-    debug : bool
-        Whether to make debugging tests during the execution.
-
-    Returns
-    -------
-    `numpy.ndarray`, shape (n,)
-        Approximate solution :math:`s`.
-
-    Other Parameters
-    ----------------
-    improve_tcg : bool, optional
-        If True, a solution generated by the truncated conjugate gradient
-        method that is on the boundary of the trust region is improved by
-        moving around the trust-region boundary on the two-dimensional space
-        spanned by the solution and the gradient of the quadratic function at
-        the solution (default is True).
-
-    Notes
-    -----
-    This function implements Algorithm 6.4 of [1]_. It is assumed that the
-    origin is feasible with respect to the bound constraints and that `delta`
-    is finite and positive.
-
-    References
-    ----------
-    .. [1] T. M. Ragonneau. *Model-Based Derivative-Free Optimization Methods
-       and Software*. PhD thesis, Department of Applied Mathematics, The Hong
-       Kong Polytechnic University, Hong Kong, China, 2022. URL:
-       https://theses.lib.polyu.edu.hk/handle/200/12294.
-    """
-    if debug:
-        assert isinstance(aub, np.ndarray) and aub.ndim == 2
-        assert (
-            isinstance(bub, np.ndarray)
-            and bub.ndim == 1
-            and bub.size == aub.shape[0]
-        )
-        assert (
-            isinstance(aeq, np.ndarray)
-            and aeq.ndim == 2
-            and aeq.shape[1] == aub.shape[1]
-        )
-        assert (
-            isinstance(beq, np.ndarray)
-            and beq.ndim == 1
-            and beq.size == aeq.shape[0]
-        )
-        assert isinstance(xl, np.ndarray) and xl.shape == (aub.shape[1],)
-        assert isinstance(xu, np.ndarray) and xu.shape == (aub.shape[1],)
-        assert isinstance(delta, float)
-        assert isinstance(debug, bool)
-        tol = get_arrays_tol(xl, xu)
-        assert np.all(xl <= tol)
-        assert np.all(xu >= -tol)
-        assert np.isfinite(delta) and delta > 0.0
-    xl = np.minimum(xl, 0.0)
-    xu = np.maximum(xu, 0.0)
-
-    # Calculate the initial active set.
-    m_linear_ub, n = aub.shape
-    grad = np.r_[aeq.T @ -beq, np.maximum(0.0, -bub)]
-    free_xl = (xl < 0.0) | (grad[:n] < 0.0)
-    free_xu = (xu > 0.0) | (grad[:n] > 0.0)
-    free_slack = bub < 0.0
-    free_ub = (bub > 0.0) | (aub @ grad[:n] - grad[n:] > 0.0)
-    n_act, q = qr_normal_byrd_omojokun(
-        aub,
-        free_xl,
-        free_xu,
-        free_slack,
-        free_ub,
-    )
-
-    # Calculate an upper bound on the norm of the slack variables. It is not
-    # used in the original algorithm, but it may prevent undesired behaviors
-    # engendered by computer rounding errors.
-    delta_slack = np.sqrt(beq @ beq + grad[n:] @ grad[n:])
-
-    # Set the initial iterate and the initial search direction.
-    step = np.zeros(n)
-    sd = -q[:, n_act:] @ (q[:, n_act:].T @ grad)
-    resid = bub + grad[n:]
-
-    k = 0
-    reduct = 0.0
-    boundary_reached = False
-    while k < n + m_linear_ub - n_act:
-        # Stop the computations if sd is not a descent direction.
-        grad_sd = grad @ sd
-        if grad_sd >= -10.0 * EPS * n * max(1.0, np.linalg.norm(grad)):
-            break
-
-        # Set alpha_tr to the step size for the trust-region constraint.
-        try:
-            alpha_tr = _alpha_tr(step, sd[:n], delta)
-        except ZeroDivisionError:
-            alpha_tr = np.inf
-
-        # Prevent undesired behaviors engendered by computer rounding errors by
-        # considering the trust-region constraint on the slack variables.
-        try:
-            alpha_tr = min(alpha_tr, _alpha_tr(grad[n:], sd[n:], delta_slack))
-        except ZeroDivisionError:
-            pass
-
-        # Stop the computations if a step along sd is expected to give a
-        # relatively small reduction in the objective function.
-        if -alpha_tr * grad_sd <= 1e-8 * reduct:
-            break
-
-        # Set alpha_quad to the step size for the minimization problem.
-        hess_sd = np.r_[aeq.T @ (aeq @ sd[:n]), sd[n:]]
-        curv_sd = sd @ hess_sd
-        if curv_sd > TINY * abs(grad_sd):
-            alpha_quad = max(-grad_sd / curv_sd, 0.0)
-        else:
-            alpha_quad = np.inf
-
-        # Stop the computations if the reduction in the objective function
-        # provided by an unconstrained step is small.
-        alpha = min(alpha_tr, alpha_quad)
-        if -alpha * (grad_sd + 0.5 * alpha * curv_sd) <= 1e-8 * reduct:
-            break
-
-        # Set alpha_bd to the step size for the bound constraints.
-        i_xl = free_xl & (xl > -np.inf) & (sd[:n] < -TINY * np.abs(xl - step))
-        i_xu = free_xu & (xu < np.inf) & (sd[:n] > TINY * np.abs(xu - step))
-        i_slack = free_slack & (sd[n:] < -TINY * np.abs(grad[n:]))
-        all_alpha_xl = np.full_like(step, np.inf)
-        all_alpha_xu = np.full_like(step, np.inf)
-        all_alpha_slack = np.full_like(bub, np.inf)
-        all_alpha_xl[i_xl] = np.maximum(
-            (xl[i_xl] - step[i_xl]) / sd[:n][i_xl],
-            0.0,
-        )
-        all_alpha_xu[i_xu] = np.maximum(
-            (xu[i_xu] - step[i_xu]) / sd[:n][i_xu],
-            0.0,
-        )
-        all_alpha_slack[i_slack] = np.maximum(
-            -grad[n:][i_slack] / sd[n:][i_slack],
-            0.0,
-        )
-        alpha_xl = np.min(all_alpha_xl)
-        alpha_xu = np.min(all_alpha_xu)
-        alpha_slack = np.min(all_alpha_slack, initial=np.inf)
-        alpha_bd = min(alpha_xl, alpha_xu, alpha_slack)
-
-        # Set alpha_ub to the step size for the linear constraints.
-        aub_sd = aub @ sd[:n] - sd[n:]
-        i_ub = free_ub & (aub_sd > TINY * np.abs(resid))
-        all_alpha_ub = np.full_like(bub, np.inf)
-        all_alpha_ub[i_ub] = resid[i_ub] / aub_sd[i_ub]
-        alpha_ub = np.min(all_alpha_ub, initial=np.inf)
-
-        # Update the iterate.
-        alpha = min(alpha, alpha_bd, alpha_ub)
-        if alpha > 0.0:
-            step = np.clip(step + alpha * sd[:n], xl, xu)
-            grad += alpha * hess_sd
-            resid = np.maximum(0.0, resid - alpha * aub_sd)
-            reduct -= alpha * (grad_sd + 0.5 * alpha * curv_sd)
-
-        if alpha < min(alpha_tr, alpha_bd, alpha_ub):
-            # The current iteration is a conjugate gradient iteration. Update
-            # the search direction so that it is conjugate (with respect to H)
-            # to all the previous search directions.
-            grad_proj = q[:, n_act:] @ (q[:, n_act:].T @ grad)
-            beta = (grad_proj @ hess_sd) / curv_sd
-            sd = beta * sd - grad_proj
-            k += 1
-        elif alpha < alpha_tr:
-            # The iterate is restricted by a bound/linear constraint. Add this
-            # constraint to the active set, and restart the calculations.
-            if alpha_xl <= alpha:
-                i_new = np.argmin(all_alpha_xl)
-                step[i_new] = xl[i_new]
-                free_xl[i_new] = False
-            elif alpha_xu <= alpha:
-                i_new = np.argmin(all_alpha_xu)
-                step[i_new] = xu[i_new]
-                free_xu[i_new] = False
-            elif alpha_slack <= alpha:
-                i_new = np.argmin(all_alpha_slack)
-                free_slack[i_new] = False
-            else:
-                i_new = np.argmin(all_alpha_ub)
-                free_ub[i_new] = False
-            n_act, q = qr_normal_byrd_omojokun(
-                aub, free_xl, free_xu, free_slack, free_ub
-            )
-            sd = -q[:, n_act:] @ (q[:, n_act:].T @ grad)
-            k = 0
-        else:
-            # The current iterate is on the trust-region boundary. Add all the
-            # active bound constraints to the working set to prepare for the
-            # improvement of the solution, and stop the iterations.
-            if alpha_xl <= alpha:
-                i_new = _argmin(all_alpha_xl)
-                step[i_new] = xl[i_new]
-                free_xl[i_new] = False
-            if alpha_xu <= alpha:
-                i_new = _argmin(all_alpha_xu)
-                step[i_new] = xu[i_new]
-                free_xu[i_new] = False
-            boundary_reached = True
-            break
-
-    # Attempt to improve the solution on the trust-region boundary.
-    if kwargs.get("improve_tcg", True) and boundary_reached:
-        step_base = np.copy(step)
-        free_bd = free_xl & free_xu
-        grad = aub.T @ np.maximum(aub @ step - bub, 0.0) + aeq.T @ (
-            aeq @ step - beq
-        )
-        sd = np.zeros(n)
-        while np.count_nonzero(free_bd) > 0:
-            # Check whether a substantial reduction in the objective function
-            # is possible, and set the search direction.
-            step_sq = step[free_bd] @ step[free_bd]
-            grad_sq = grad[free_bd] @ grad[free_bd]
-            grad_step = grad[free_bd] @ step[free_bd]
-            grad_sd = -np.sqrt(max(step_sq * grad_sq - grad_step**2.0, 0.0))
-            sd[free_bd] = grad_step * step[free_bd] - step_sq * grad[free_bd]
-            sd[~free_bd] = 0.0
-            if grad_sd >= -1e-8 * reduct or np.any(
-                grad_sd >= -TINY * np.abs(sd[free_bd])
-            ):
-                break
-            sd[free_bd] /= -grad_sd
-
-            # Calculate an upper bound for the tangent of half the angle theta
-            # of this alternative iteration. The step will be updated as:
-            # step = cos(theta) * step + sin(theta) * sd.
-            temp_xl = np.zeros(n)
-            temp_xu = np.zeros(n)
-            temp_xl[free_bd] = (
-                step[free_bd] ** 2.0 + sd[free_bd] ** 2.0 - xl[free_bd] ** 2.0
-            )
-            temp_xu[free_bd] = (
-                step[free_bd] ** 2.0 + sd[free_bd] ** 2.0 - xu[free_bd] ** 2.0
-            )
-            temp_xl[temp_xl > 0.0] = (
-                np.sqrt(temp_xl[temp_xl > 0.0]) - sd[temp_xl > 0.0]
-            )
-            temp_xu[temp_xu > 0.0] = (
-                np.sqrt(temp_xu[temp_xu > 0.0]) + sd[temp_xu > 0.0]
-            )
-            dist_xl = np.maximum(step - xl, 0.0)
-            dist_xu = np.maximum(xu - step, 0.0)
-            i_xl = temp_xl > TINY * dist_xl
-            i_xu = temp_xu > TINY * dist_xu
-            all_t_xl = np.ones(n)
-            all_t_xu = np.ones(n)
-            all_t_xl[i_xl] = np.minimum(
-                all_t_xl[i_xl],
-                dist_xl[i_xl] / temp_xl[i_xl],
-            )
-            all_t_xu[i_xu] = np.minimum(
-                all_t_xu[i_xu],
-                dist_xu[i_xu] / temp_xu[i_xu],
-            )
-            t_xl = np.min(all_t_xl)
-            t_xu = np.min(all_t_xu)
-            t_bd = min(t_xl, t_xu)
-
-            # For a range of equally spaced values of tan(0.5 * theta),
-            # calculate the reduction in the objective function that would be
-            # obtained by accepting the corresponding angle.
-            n_samples = 20
-            n_samples = int((n_samples - 3) * t_bd + 3)
-            t_samples = np.linspace(t_bd / n_samples, t_bd, n_samples)
-            resid_ub = np.maximum(aub @ step - bub, 0.0)
-            resid_eq = aeq @ step - beq
-            step_proj = np.copy(step)
-            step_proj[~free_bd] = 0.0
-            all_reduct = np.empty(n_samples)
-            for i in range(n_samples):
-                sin_value = 2.0 * t_samples[i] / (1.0 + t_samples[i] ** 2.0)
-                step_alt = np.clip(
-                    step + sin_value * (sd - t_samples[i] * step_proj),
-                    xl,
-                    xu,
-                )
-                resid_ub_alt = np.maximum(aub @ step_alt - bub, 0.0)
-                resid_eq_alt = aeq @ step_alt - beq
-                all_reduct[i] = 0.5 * (
-                    resid_ub @ resid_ub
-                    + resid_eq @ resid_eq
-                    - resid_ub_alt @ resid_ub_alt
-                    - resid_eq_alt @ resid_eq_alt
-                )
-            if np.all(all_reduct <= 0.0):
-                # No reduction in the objective function is obtained.
-                break
-
-            # Accept the angle that provides the largest reduction in the
-            # objective function, and update the iterate.
-            i_max = np.argmax(all_reduct)
-            cos_value = (1.0 - t_samples[i_max] ** 2.0) / (
-                1.0 + t_samples[i_max] ** 2.0
-            )
-            sin_value = (2.0 * t_samples[i_max]
-                         / (1.0 + t_samples[i_max] ** 2.0))
-            step[free_bd] = cos_value * step[free_bd] + sin_value * sd[free_bd]
-            grad = aub.T @ np.maximum(aub @ step - bub, 0.0) + aeq.T @ (
-                aeq @ step - beq
-            )
-            reduct += all_reduct[i_max]
-
-            # If the above angle is restricted by bound constraints, add them
-            # to the working set, and restart the alternative iteration.
-            # Otherwise, the calculations are terminated.
-            if t_bd < 1.0 and i_max == n_samples - 1:
-                if t_xl <= t_bd:
-                    i_new = _argmin(all_t_xl)
-                    step[i_new] = xl[i_new]
-                    free_bd[i_new] = False
-                if t_xu <= t_bd:
-                    i_new = _argmin(all_t_xu)
-                    step[i_new] = xu[i_new]
-                    free_bd[i_new] = False
-            else:
-                break
-
-        # Ensure that the alternative iteration improves the objective
-        # function.
-        resid_ub = np.maximum(aub @ step - bub, 0.0)
-        resid_ub_base = np.maximum(aub @ step_base - bub, 0.0)
-        resid_eq = aeq @ step - beq
-        resid_eq_base = aeq @ step_base - beq
-        if (
-            resid_ub @ resid_ub + resid_eq @ resid_eq
-            > resid_ub_base @ resid_ub_base + resid_eq_base @ resid_eq_base
-        ):
-            step = step_base
-
-    if debug:
-        assert np.all(xl <= step)
-        assert np.all(step <= xu)
-        assert np.linalg.norm(step) < 1.1 * delta
-    return step
-
-
-def qr_tangential_byrd_omojokun(aub, aeq, free_xl, free_xu, free_ub):
-    n = free_xl.size
-    identity = np.eye(n)
-    q, r, _ = qr(
-        np.block(
-            [
-                [aeq],
-                [aub[~free_ub, :]],
-                [-identity[~free_xl, :]],
-                [identity[~free_xu, :]],
-            ]
-        ).T,
-        pivoting=True,
-    )
-    n_act = np.count_nonzero(
-        np.abs(np.diag(r))
-        >= 10.0
-        * EPS
-        * n
-        * np.linalg.norm(r[: np.min(r.shape), : np.min(r.shape)], axis=0)
-    )
-    return n_act, q
-
-
-def qr_normal_byrd_omojokun(aub, free_xl, free_xu, free_slack, free_ub):
-    m_linear_ub, n = aub.shape
-    identity_n = np.eye(n)
-    identity_m = np.eye(m_linear_ub)
-    q, r, _ = qr(
-        np.block(
-            [
-                [
-                    aub[~free_ub, :],
-                    -identity_m[~free_ub, :],
-                ],
-                [
-                    np.zeros((m_linear_ub - np.count_nonzero(free_slack), n)),
-                    -identity_m[~free_slack, :],
-                ],
-                [
-                    -identity_n[~free_xl, :],
-                    np.zeros((n - np.count_nonzero(free_xl), m_linear_ub)),
-                ],
-                [
-                    identity_n[~free_xu, :],
-                    np.zeros((n - np.count_nonzero(free_xu), m_linear_ub)),
-                ],
-            ]
-        ).T,
-        pivoting=True,
-    )
-    n_act = np.count_nonzero(
-        np.abs(np.diag(r))
-        >= 10.0
-        * EPS
-        * (n + m_linear_ub)
-        * np.linalg.norm(r[: np.min(r.shape), : np.min(r.shape)], axis=0)
-    )
-    return n_act, q
-
-
-def _alpha_tr(step, sd, delta):
-    step_sd = step @ sd
-    sd_sq = sd @ sd
-    dist_tr_sq = delta**2.0 - step @ step
-    temp = np.sqrt(max(step_sd**2.0 + sd_sq * dist_tr_sq, 0.0))
-    if step_sd <= 0.0 and sd_sq > TINY * abs(temp - step_sd):
-        alpha_tr = max((temp - step_sd) / sd_sq, 0.0)
-    elif abs(temp + step_sd) > TINY * dist_tr_sq:
-        alpha_tr = max(dist_tr_sq / (temp + step_sd), 0.0)
-    else:
-        raise ZeroDivisionError
-    return alpha_tr
-
-
-def _argmax(x):
-    return np.flatnonzero(x >= np.max(x))
-
-
-def _argmin(x):
-    return np.flatnonzero(x <= np.min(x))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__init__.py
deleted file mode 100644
index fe6b4841ddff3a04bda5cbff744e30681b6963b9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__init__.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from .exceptions import (
-    MaxEvalError,
-    TargetSuccess,
-    CallbackSuccess,
-    FeasibleSuccess,
-)
-from .math import get_arrays_tol, exact_1d_array
-from .versions import show_versions
-
-__all__ = [
-    "MaxEvalError",
-    "TargetSuccess",
-    "CallbackSuccess",
-    "FeasibleSuccess",
-    "get_arrays_tol",
-    "exact_1d_array",
-    "show_versions",
-]
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 69c53a809aec86433587b767b38d367891017f12..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/exceptions.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/exceptions.cpython-310.pyc
deleted file mode 100644
index a149340b6aff6c93a410e52218c69ffb201c3d2b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/exceptions.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/math.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/math.cpython-310.pyc
deleted file mode 100644
index 26c9793d3a399f7083204034fe18b5ffefa4d11d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/math.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/versions.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/versions.cpython-310.pyc
deleted file mode 100644
index 9183a0fc4bce223cf64cb121e2ba61b4c5b7e36d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/__pycache__/versions.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/exceptions.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/exceptions.py
deleted file mode 100644
index c85094894f378a8e3934ad109ea6166e33e4366b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/exceptions.py
+++ /dev/null
@@ -1,22 +0,0 @@
-class MaxEvalError(Exception):
-    """
-    Exception raised when the maximum number of evaluations is reached.
-    """
-
-
-class TargetSuccess(Exception):
-    """
-    Exception raised when the target value is reached.
-    """
-
-
-class CallbackSuccess(StopIteration):
-    """
-    Exception raised when the callback function raises a ``StopIteration``.
-    """
-
-
-class FeasibleSuccess(Exception):
-    """
-    Exception raised when a feasible point of a feasible problem is found.
-    """
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/math.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/math.py
deleted file mode 100644
index 1b16ae98a0df38752815f5a69d56da20f856f9f9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/math.py
+++ /dev/null
@@ -1,77 +0,0 @@
-import numpy as np
-
-
-EPS = np.finfo(float).eps
-
-
-def get_arrays_tol(*arrays):
-    """
-    Get a relative tolerance for a set of arrays.
-
-    Parameters
-    ----------
-    *arrays: tuple
-        Set of `numpy.ndarray` to get the tolerance for.
-
-    Returns
-    -------
-    float
-        Relative tolerance for the set of arrays.
-
-    Raises
-    ------
-    ValueError
-        If no array is provided.
-    """
-    if len(arrays) == 0:
-        raise ValueError("At least one array must be provided.")
-    size = max(array.size for array in arrays)
-    weight = max(
-        np.max(np.abs(array[np.isfinite(array)]), initial=1.0)
-        for array in arrays
-    )
-    return 10.0 * EPS * max(size, 1.0) * weight
-
-
-def exact_1d_array(x, message):
-    """
-    Preprocess a 1-dimensional array.
-
-    Parameters
-    ----------
-    x : array_like
-        Array to be preprocessed.
-    message : str
-        Error message if `x` cannot be interpreter as a 1-dimensional array.
-
-    Returns
-    -------
-    `numpy.ndarray`
-        Preprocessed array.
-    """
-    x = np.atleast_1d(np.squeeze(x)).astype(float)
-    if x.ndim != 1:
-        raise ValueError(message)
-    return x
-
-
-def exact_2d_array(x, message):
-    """
-    Preprocess a 2-dimensional array.
-
-    Parameters
-    ----------
-    x : array_like
-        Array to be preprocessed.
-    message : str
-        Error message if `x` cannot be interpreter as a 2-dimensional array.
-
-    Returns
-    -------
-    `numpy.ndarray`
-        Preprocessed array.
-    """
-    x = np.atleast_2d(x).astype(float)
-    if x.ndim != 2:
-        raise ValueError(message)
-    return x
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/versions.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/versions.py
deleted file mode 100644
index 94a0f8f5cef626354f40901cbe06a84287291c1c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/cobyqa/utils/versions.py
+++ /dev/null
@@ -1,67 +0,0 @@
-import os
-import platform
-import sys
-from importlib.metadata import PackageNotFoundError, version
-
-
-def _get_sys_info():
-    """
-    Get useful system information.
-
-    Returns
-    -------
-    dict
-        Useful system information.
-    """
-    return {
-        "python": sys.version.replace(os.linesep, " "),
-        "executable": sys.executable,
-        "machine": platform.platform(),
-    }
-
-
-def _get_deps_info():
-    """
-    Get the versions of the dependencies.
-
-    Returns
-    -------
-    dict
-        Versions of the dependencies.
-    """
-    deps = ["cobyqa", "numpy", "scipy", "setuptools", "pip"]
-    deps_info = {}
-    for module in deps:
-        try:
-            deps_info[module] = version(module)
-        except PackageNotFoundError:
-            deps_info[module] = None
-    return deps_info
-
-
-def show_versions():
-    """
-    Display useful system and dependencies information.
-
-    When reporting issues, please include this information.
-    """
-    print("System settings")
-    print("---------------")
-    sys_info = _get_sys_info()
-    print(
-        "\n".join(
-            f"{k:>{max(map(len, sys_info.keys())) + 1}}: {v}"
-            for k, v in sys_info.items()
-        )
-    )
-
-    print()
-    print("Python dependencies")
-    print("-------------------")
-    deps_info = _get_deps_info()
-    print(
-        "\n".join(
-            f"{k:>{max(map(len, deps_info.keys())) + 1}}: {v}"
-            for k, v in deps_info.items()
-        )
-    )
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/decorator.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/decorator.py
deleted file mode 100644
index 02121774d3c2a9407a73366bb3e5915387a571d0..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/decorator.py
+++ /dev/null
@@ -1,399 +0,0 @@
-# #########################     LICENSE     ############################ #
-
-# Copyright (c) 2005-2015, Michele Simionato
-# All rights reserved.
-
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-
-#   Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-#   Redistributions in bytecode form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in
-#   the documentation and/or other materials provided with the
-#   distribution.
-
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-
-"""
-Decorator module, see https://pypi.python.org/pypi/decorator
-for the documentation.
-"""
-import re
-import sys
-import inspect
-import operator
-import itertools
-import collections
-
-from inspect import getfullargspec
-
-__version__ = '4.0.5'
-
-
-def get_init(cls):
-    return cls.__init__
-
-
-# getargspec has been deprecated in Python 3.5
-ArgSpec = collections.namedtuple(
-    'ArgSpec', 'args varargs varkw defaults')
-
-
-def getargspec(f):
-    """A replacement for inspect.getargspec"""
-    spec = getfullargspec(f)
-    return ArgSpec(spec.args, spec.varargs, spec.varkw, spec.defaults)
-
-
-DEF = re.compile(r'\s*def\s*([_\w][_\w\d]*)\s*\(')
-
-
-# basic functionality
-class FunctionMaker:
-    """
-    An object with the ability to create functions with a given signature.
-    It has attributes name, doc, module, signature, defaults, dict, and
-    methods update and make.
-    """
-
-    # Atomic get-and-increment provided by the GIL
-    _compile_count = itertools.count()
-
-    def __init__(self, func=None, name=None, signature=None,
-                 defaults=None, doc=None, module=None, funcdict=None):
-        self.shortsignature = signature
-        if func:
-            # func can be a class or a callable, but not an instance method
-            self.name = func.__name__
-            if self.name == '':  # small hack for lambda functions
-                self.name = '_lambda_'
-            self.doc = func.__doc__
-            self.module = func.__module__
-            if inspect.isfunction(func):
-                argspec = getfullargspec(func)
-                self.annotations = getattr(func, '__annotations__', {})
-                for a in ('args', 'varargs', 'varkw', 'defaults', 'kwonlyargs',
-                          'kwonlydefaults'):
-                    setattr(self, a, getattr(argspec, a))
-                for i, arg in enumerate(self.args):
-                    setattr(self, 'arg%d' % i, arg)
-                allargs = list(self.args)
-                allshortargs = list(self.args)
-                if self.varargs:
-                    allargs.append('*' + self.varargs)
-                    allshortargs.append('*' + self.varargs)
-                elif self.kwonlyargs:
-                    allargs.append('*')  # single star syntax
-                for a in self.kwonlyargs:
-                    allargs.append('%s=None' % a)
-                    allshortargs.append(f'{a}={a}')
-                if self.varkw:
-                    allargs.append('**' + self.varkw)
-                    allshortargs.append('**' + self.varkw)
-                self.signature = ', '.join(allargs)
-                self.shortsignature = ', '.join(allshortargs)
-                self.dict = func.__dict__.copy()
-        # func=None happens when decorating a caller
-        if name:
-            self.name = name
-        if signature is not None:
-            self.signature = signature
-        if defaults:
-            self.defaults = defaults
-        if doc:
-            self.doc = doc
-        if module:
-            self.module = module
-        if funcdict:
-            self.dict = funcdict
-        # check existence required attributes
-        assert hasattr(self, 'name')
-        if not hasattr(self, 'signature'):
-            raise TypeError('You are decorating a non-function: %s' % func)
-
-    def update(self, func, **kw):
-        "Update the signature of func with the data in self"
-        func.__name__ = self.name
-        func.__doc__ = getattr(self, 'doc', None)
-        func.__dict__ = getattr(self, 'dict', {})
-        func.__defaults__ = getattr(self, 'defaults', ())
-        func.__kwdefaults__ = getattr(self, 'kwonlydefaults', None)
-        func.__annotations__ = getattr(self, 'annotations', None)
-        try:
-            frame = sys._getframe(3)
-        except AttributeError:  # for IronPython and similar implementations
-            callermodule = '?'
-        else:
-            callermodule = frame.f_globals.get('__name__', '?')
-        func.__module__ = getattr(self, 'module', callermodule)
-        func.__dict__.update(kw)
-
-    def make(self, src_templ, evaldict=None, addsource=False, **attrs):
-        "Make a new function from a given template and update the signature"
-        src = src_templ % vars(self)  # expand name and signature
-        evaldict = evaldict or {}
-        mo = DEF.match(src)
-        if mo is None:
-            raise SyntaxError('not a valid function template\n%s' % src)
-        name = mo.group(1)  # extract the function name
-        names = set([name] + [arg.strip(' *') for arg in
-                              self.shortsignature.split(',')])
-        for n in names:
-            if n in ('_func_', '_call_'):
-                raise NameError(f'{n} is overridden in\n{src}')
-        if not src.endswith('\n'):  # add a newline just for safety
-            src += '\n'  # this is needed in old versions of Python
-
-        # Ensure each generated function has a unique filename for profilers
-        # (such as cProfile) that depend on the tuple of (,
-        # , ) being unique.
-        filename = '' % (next(self._compile_count),)
-        try:
-            code = compile(src, filename, 'single')
-            exec(code, evaldict)
-        except:  # noqa: E722
-            print('Error in generated code:', file=sys.stderr)
-            print(src, file=sys.stderr)
-            raise
-        func = evaldict[name]
-        if addsource:
-            attrs['__source__'] = src
-        self.update(func, **attrs)
-        return func
-
-    @classmethod
-    def create(cls, obj, body, evaldict, defaults=None,
-               doc=None, module=None, addsource=True, **attrs):
-        """
-        Create a function from the strings name, signature, and body.
-        evaldict is the evaluation dictionary. If addsource is true, an
-        attribute __source__ is added to the result. The attributes attrs
-        are added, if any.
-        """
-        if isinstance(obj, str):  # "name(signature)"
-            name, rest = obj.strip().split('(', 1)
-            signature = rest[:-1]  # strip a right parens
-            func = None
-        else:  # a function
-            name = None
-            signature = None
-            func = obj
-        self = cls(func, name, signature, defaults, doc, module)
-        ibody = '\n'.join('    ' + line for line in body.splitlines())
-        return self.make('def %(name)s(%(signature)s):\n' + ibody,
-                         evaldict, addsource, **attrs)
-
-
-def decorate(func, caller):
-    """
-    decorate(func, caller) decorates a function using a caller.
-    """
-    evaldict = func.__globals__.copy()
-    evaldict['_call_'] = caller
-    evaldict['_func_'] = func
-    fun = FunctionMaker.create(
-        func, "return _call_(_func_, %(shortsignature)s)",
-        evaldict, __wrapped__=func)
-    if hasattr(func, '__qualname__'):
-        fun.__qualname__ = func.__qualname__
-    return fun
-
-
-def decorator(caller, _func=None):
-    """decorator(caller) converts a caller function into a decorator"""
-    if _func is not None:  # return a decorated function
-        # this is obsolete behavior; you should use decorate instead
-        return decorate(_func, caller)
-    # else return a decorator function
-    if inspect.isclass(caller):
-        name = caller.__name__.lower()
-        callerfunc = get_init(caller)
-        doc = (f'decorator({caller.__name__}) converts functions/generators into ' 
-               f'factories of {caller.__name__} objects')
-    elif inspect.isfunction(caller):
-        if caller.__name__ == '':
-            name = '_lambda_'
-        else:
-            name = caller.__name__
-        callerfunc = caller
-        doc = caller.__doc__
-    else:  # assume caller is an object with a __call__ method
-        name = caller.__class__.__name__.lower()
-        callerfunc = caller.__call__.__func__
-        doc = caller.__call__.__doc__
-    evaldict = callerfunc.__globals__.copy()
-    evaldict['_call_'] = caller
-    evaldict['_decorate_'] = decorate
-    return FunctionMaker.create(
-        '%s(func)' % name, 'return _decorate_(func, _call_)',
-        evaldict, doc=doc, module=caller.__module__,
-        __wrapped__=caller)
-
-
-# ####################### contextmanager ####################### #
-
-try:  # Python >= 3.2
-    from contextlib import _GeneratorContextManager
-except ImportError:  # Python >= 2.5
-    from contextlib import GeneratorContextManager as _GeneratorContextManager
-
-
-class ContextManager(_GeneratorContextManager):
-    def __call__(self, func):
-        """Context manager decorator"""
-        return FunctionMaker.create(
-            func, "with _self_: return _func_(%(shortsignature)s)",
-            dict(_self_=self, _func_=func), __wrapped__=func)
-
-
-init = getfullargspec(_GeneratorContextManager.__init__)
-n_args = len(init.args)
-if n_args == 2 and not init.varargs:  # (self, genobj) Python 2.7
-    def __init__(self, g, *a, **k):
-        return _GeneratorContextManager.__init__(self, g(*a, **k))
-    ContextManager.__init__ = __init__
-elif n_args == 2 and init.varargs:  # (self, gen, *a, **k) Python 3.4
-    pass
-elif n_args == 4:  # (self, gen, args, kwds) Python 3.5
-    def __init__(self, g, *a, **k):
-        return _GeneratorContextManager.__init__(self, g, a, k)
-    ContextManager.__init__ = __init__
-
-contextmanager = decorator(ContextManager)
-
-
-# ############################ dispatch_on ############################ #
-
-def append(a, vancestors):
-    """
-    Append ``a`` to the list of the virtual ancestors, unless it is already
-    included.
-    """
-    add = True
-    for j, va in enumerate(vancestors):
-        if issubclass(va, a):
-            add = False
-            break
-        if issubclass(a, va):
-            vancestors[j] = a
-            add = False
-    if add:
-        vancestors.append(a)
-
-
-# inspired from simplegeneric by P.J. Eby and functools.singledispatch
-def dispatch_on(*dispatch_args):
-    """
-    Factory of decorators turning a function into a generic function
-    dispatching on the given arguments.
-    """
-    assert dispatch_args, 'No dispatch args passed'
-    dispatch_str = '(%s,)' % ', '.join(dispatch_args)
-
-    def check(arguments, wrong=operator.ne, msg=''):
-        """Make sure one passes the expected number of arguments"""
-        if wrong(len(arguments), len(dispatch_args)):
-            raise TypeError('Expected %d arguments, got %d%s' %
-                            (len(dispatch_args), len(arguments), msg))
-
-    def gen_func_dec(func):
-        """Decorator turning a function into a generic function"""
-
-        # first check the dispatch arguments
-        argset = set(getfullargspec(func).args)
-        if not set(dispatch_args) <= argset:
-            raise NameError('Unknown dispatch arguments %s' % dispatch_str)
-
-        typemap = {}
-
-        def vancestors(*types):
-            """
-            Get a list of sets of virtual ancestors for the given types
-            """
-            check(types)
-            ras = [[] for _ in range(len(dispatch_args))]
-            for types_ in typemap:
-                for t, type_, ra in zip(types, types_, ras):
-                    if issubclass(t, type_) and type_ not in t.__mro__:
-                        append(type_, ra)
-            return [set(ra) for ra in ras]
-
-        def ancestors(*types):
-            """
-            Get a list of virtual MROs, one for each type
-            """
-            check(types)
-            lists = []
-            for t, vas in zip(types, vancestors(*types)):
-                n_vas = len(vas)
-                if n_vas > 1:
-                    raise RuntimeError(
-                        f'Ambiguous dispatch for {t}: {vas}')
-                elif n_vas == 1:
-                    va, = vas
-                    mro = type('t', (t, va), {}).__mro__[1:]
-                else:
-                    mro = t.__mro__
-                lists.append(mro[:-1])  # discard t and object
-            return lists
-
-        def register(*types):
-            """
-            Decorator to register an implementation for the given types
-            """
-            check(types)
-
-            def dec(f):
-                check(getfullargspec(f).args, operator.lt, ' in ' + f.__name__)
-                typemap[types] = f
-                return f
-            return dec
-
-        def dispatch_info(*types):
-            """
-            An utility to introspect the dispatch algorithm
-            """
-            check(types)
-            lst = [tuple(a.__name__ for a in anc)
-                   for anc in itertools.product(*ancestors(*types))]
-            return lst
-
-        def _dispatch(dispatch_args, *args, **kw):
-            types = tuple(type(arg) for arg in dispatch_args)
-            try:  # fast path
-                f = typemap[types]
-            except KeyError:
-                pass
-            else:
-                return f(*args, **kw)
-            combinations = itertools.product(*ancestors(*types))
-            next(combinations)  # the first one has been already tried
-            for types_ in combinations:
-                f = typemap.get(types_)
-                if f is not None:
-                    return f(*args, **kw)
-
-            # else call the default implementation
-            return func(*args, **kw)
-
-        return FunctionMaker.create(
-            func, 'return _f_(%s, %%(shortsignature)s)' % dispatch_str,
-            dict(_f_=_dispatch), register=register, default=func,
-            typemap=typemap, vancestors=vancestors, ancestors=ancestors,
-            dispatch_info=dispatch_info, __wrapped__=func)
-
-    gen_func_dec.__name__ = 'dispatch_on' + dispatch_str
-    return gen_func_dec
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/deprecation.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/deprecation.py
deleted file mode 100644
index 01a1dfa73695f00b409a3adab26dbb98b804b384..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/deprecation.py
+++ /dev/null
@@ -1,239 +0,0 @@
-from inspect import Parameter, signature
-import functools
-import warnings
-from importlib import import_module
-
-
-__all__ = ["_deprecated"]
-
-
-# Object to use as default value for arguments to be deprecated. This should
-# be used over 'None' as the user could parse 'None' as a positional argument
-_NoValue = object()
-
-def _sub_module_deprecation(*, sub_package, module, private_modules, all,
-                            attribute, correct_module=None):
-    """Helper function for deprecating modules that are public but were
-    intended to be private.
-
-    Parameters
-    ----------
-    sub_package : str
-        Subpackage the module belongs to eg. stats
-    module : str
-        Public but intended private module to deprecate
-    private_modules : list
-        Private replacement(s) for `module`; should contain the
-        content of ``all``, possibly spread over several modules.
-    all : list
-        ``__all__`` belonging to `module`
-    attribute : str
-        The attribute in `module` being accessed
-    correct_module : str, optional
-        Module in `sub_package` that `attribute` should be imported from.
-        Default is that `attribute` should be imported from ``scipy.sub_package``.
-    """
-    if correct_module is not None:
-        correct_import = f"scipy.{sub_package}.{correct_module}"
-    else:
-        correct_import = f"scipy.{sub_package}"
-
-    if attribute not in all:
-        raise AttributeError(
-            f"`scipy.{sub_package}.{module}` has no attribute `{attribute}`; "
-            f"furthermore, `scipy.{sub_package}.{module}` is deprecated "
-            f"and will be removed in SciPy 2.0.0."
-        )
-
-    attr = getattr(import_module(correct_import), attribute, None)
-
-    if attr is not None:
-        message = (
-            f"Please import `{attribute}` from the `{correct_import}` namespace; "
-            f"the `scipy.{sub_package}.{module}` namespace is deprecated "
-            f"and will be removed in SciPy 2.0.0."
-        )
-    else:
-        message = (
-            f"`scipy.{sub_package}.{module}.{attribute}` is deprecated along with "
-            f"the `scipy.{sub_package}.{module}` namespace. "
-            f"`scipy.{sub_package}.{module}.{attribute}` will be removed "
-            f"in SciPy 1.14.0, and the `scipy.{sub_package}.{module}` namespace "
-            f"will be removed in SciPy 2.0.0."
-        )
-
-    warnings.warn(message, category=DeprecationWarning, stacklevel=3)
-
-    for module in private_modules:
-        try:
-            return getattr(import_module(f"scipy.{sub_package}.{module}"), attribute)
-        except AttributeError as e:
-            # still raise an error if the attribute isn't in any of the expected
-            # private modules
-            if module == private_modules[-1]:
-                raise e
-            continue
-    
-
-def _deprecated(msg, stacklevel=2):
-    """Deprecate a function by emitting a warning on use."""
-    def wrap(fun):
-        if isinstance(fun, type):
-            warnings.warn(
-                f"Trying to deprecate class {fun!r}",
-                category=RuntimeWarning, stacklevel=2)
-            return fun
-
-        @functools.wraps(fun)
-        def call(*args, **kwargs):
-            warnings.warn(msg, category=DeprecationWarning,
-                          stacklevel=stacklevel)
-            return fun(*args, **kwargs)
-        call.__doc__ = fun.__doc__
-        return call
-
-    return wrap
-
-
-class _DeprecationHelperStr:
-    """
-    Helper class used by deprecate_cython_api
-    """
-    def __init__(self, content, message):
-        self._content = content
-        self._message = message
-
-    def __hash__(self):
-        return hash(self._content)
-
-    def __eq__(self, other):
-        res = (self._content == other)
-        if res:
-            warnings.warn(self._message, category=DeprecationWarning,
-                          stacklevel=2)
-        return res
-
-
-def deprecate_cython_api(module, routine_name, new_name=None, message=None):
-    """
-    Deprecate an exported cdef function in a public Cython API module.
-
-    Only functions can be deprecated; typedefs etc. cannot.
-
-    Parameters
-    ----------
-    module : module
-        Public Cython API module (e.g. scipy.linalg.cython_blas).
-    routine_name : str
-        Name of the routine to deprecate. May also be a fused-type
-        routine (in which case its all specializations are deprecated).
-    new_name : str
-        New name to include in the deprecation warning message
-    message : str
-        Additional text in the deprecation warning message
-
-    Examples
-    --------
-    Usually, this function would be used in the top-level of the
-    module ``.pyx`` file:
-
-    >>> from scipy._lib.deprecation import deprecate_cython_api
-    >>> import scipy.linalg.cython_blas as mod
-    >>> deprecate_cython_api(mod, "dgemm", "dgemm_new",
-    ...                      message="Deprecated in Scipy 1.5.0")
-    >>> del deprecate_cython_api, mod
-
-    After this, Cython modules that use the deprecated function emit a
-    deprecation warning when they are imported.
-
-    """
-    old_name = f"{module.__name__}.{routine_name}"
-
-    if new_name is None:
-        depdoc = "`%s` is deprecated!" % old_name
-    else:
-        depdoc = f"`{old_name}` is deprecated, use `{new_name}` instead!"
-
-    if message is not None:
-        depdoc += "\n" + message
-
-    d = module.__pyx_capi__
-
-    # Check if the function is a fused-type function with a mangled name
-    j = 0
-    has_fused = False
-    while True:
-        fused_name = f"__pyx_fuse_{j}{routine_name}"
-        if fused_name in d:
-            has_fused = True
-            d[_DeprecationHelperStr(fused_name, depdoc)] = d.pop(fused_name)
-            j += 1
-        else:
-            break
-
-    # If not, apply deprecation to the named routine
-    if not has_fused:
-        d[_DeprecationHelperStr(routine_name, depdoc)] = d.pop(routine_name)
-
-
-# taken from scikit-learn, see
-# https://github.com/scikit-learn/scikit-learn/blob/1.3.0/sklearn/utils/validation.py#L38
-def _deprecate_positional_args(func=None, *, version=None):
-    """Decorator for methods that issues warnings for positional arguments.
-
-    Using the keyword-only argument syntax in pep 3102, arguments after the
-    * will issue a warning when passed as a positional argument.
-
-    Parameters
-    ----------
-    func : callable, default=None
-        Function to check arguments on.
-    version : callable, default=None
-        The version when positional arguments will result in error.
-    """
-    if version is None:
-        msg = "Need to specify a version where signature will be changed"
-        raise ValueError(msg)
-
-    def _inner_deprecate_positional_args(f):
-        sig = signature(f)
-        kwonly_args = []
-        all_args = []
-
-        for name, param in sig.parameters.items():
-            if param.kind == Parameter.POSITIONAL_OR_KEYWORD:
-                all_args.append(name)
-            elif param.kind == Parameter.KEYWORD_ONLY:
-                kwonly_args.append(name)
-
-        @functools.wraps(f)
-        def inner_f(*args, **kwargs):
-            extra_args = len(args) - len(all_args)
-            if extra_args <= 0:
-                return f(*args, **kwargs)
-
-            # extra_args > 0
-            args_msg = [
-                f"{name}={arg}"
-                for name, arg in zip(kwonly_args[:extra_args], args[-extra_args:])
-            ]
-            args_msg = ", ".join(args_msg)
-            warnings.warn(
-                (
-                    f"You are passing {args_msg} as a positional argument. "
-                    "Please change your invocation to use keyword arguments. "
-                    f"From SciPy {version}, passing these as positional "
-                    "arguments will result in an error."
-                ),
-                DeprecationWarning,
-                stacklevel=2,
-            )
-            kwargs.update(zip(sig.parameters, args))
-            return f(**kwargs)
-
-        return inner_f
-
-    if func is not None:
-        return _inner_deprecate_positional_args(func)
-
-    return _inner_deprecate_positional_args
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/doccer.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/doccer.py
deleted file mode 100644
index 707f97017b81871e3c495a39e47587cf1f17175c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/doccer.py
+++ /dev/null
@@ -1,275 +0,0 @@
-''' Utilities to allow inserting docstring fragments for common
-parameters into function and method docstrings'''
-
-import sys
-
-__all__ = [
-    'docformat', 'inherit_docstring_from', 'indentcount_lines',
-    'filldoc', 'unindent_dict', 'unindent_string', 'extend_notes_in_docstring',
-    'replace_notes_in_docstring', 'doc_replace'
-]
-
-
-def docformat(docstring, docdict=None):
-    ''' Fill a function docstring from variables in dictionary
-
-    Adapt the indent of the inserted docs
-
-    Parameters
-    ----------
-    docstring : string
-        docstring from function, possibly with dict formatting strings
-    docdict : dict, optional
-        dictionary with keys that match the dict formatting strings
-        and values that are docstring fragments to be inserted. The
-        indentation of the inserted docstrings is set to match the
-        minimum indentation of the ``docstring`` by adding this
-        indentation to all lines of the inserted string, except the
-        first.
-
-    Returns
-    -------
-    outstring : string
-        string with requested ``docdict`` strings inserted
-
-    Examples
-    --------
-    >>> docformat(' Test string with %(value)s', {'value':'inserted value'})
-    ' Test string with inserted value'
-    >>> docstring = 'First line\\n    Second line\\n    %(value)s'
-    >>> inserted_string = "indented\\nstring"
-    >>> docdict = {'value': inserted_string}
-    >>> docformat(docstring, docdict)
-    'First line\\n    Second line\\n    indented\\n    string'
-    '''
-    if not docstring:
-        return docstring
-    if docdict is None:
-        docdict = {}
-    if not docdict:
-        return docstring
-    lines = docstring.expandtabs().splitlines()
-    # Find the minimum indent of the main docstring, after first line
-    if len(lines) < 2:
-        icount = 0
-    else:
-        icount = indentcount_lines(lines[1:])
-    indent = ' ' * icount
-    # Insert this indent to dictionary docstrings
-    indented = {}
-    for name, dstr in docdict.items():
-        lines = dstr.expandtabs().splitlines()
-        try:
-            newlines = [lines[0]]
-            for line in lines[1:]:
-                newlines.append(indent+line)
-            indented[name] = '\n'.join(newlines)
-        except IndexError:
-            indented[name] = dstr
-    return docstring % indented
-
-
-def inherit_docstring_from(cls):
-    """
-    This decorator modifies the decorated function's docstring by
-    replacing occurrences of '%(super)s' with the docstring of the
-    method of the same name from the class `cls`.
-
-    If the decorated method has no docstring, it is simply given the
-    docstring of `cls`s method.
-
-    Parameters
-    ----------
-    cls : Python class or instance
-        A class with a method with the same name as the decorated method.
-        The docstring of the method in this class replaces '%(super)s' in the
-        docstring of the decorated method.
-
-    Returns
-    -------
-    f : function
-        The decorator function that modifies the __doc__ attribute
-        of its argument.
-
-    Examples
-    --------
-    In the following, the docstring for Bar.func created using the
-    docstring of `Foo.func`.
-
-    >>> class Foo:
-    ...     def func(self):
-    ...         '''Do something useful.'''
-    ...         return
-    ...
-    >>> class Bar(Foo):
-    ...     @inherit_docstring_from(Foo)
-    ...     def func(self):
-    ...         '''%(super)s
-    ...         Do it fast.
-    ...         '''
-    ...         return
-    ...
-    >>> b = Bar()
-    >>> b.func.__doc__
-    'Do something useful.\n        Do it fast.\n        '
-
-    """
-    def _doc(func):
-        cls_docstring = getattr(cls, func.__name__).__doc__
-        func_docstring = func.__doc__
-        if func_docstring is None:
-            func.__doc__ = cls_docstring
-        else:
-            new_docstring = func_docstring % dict(super=cls_docstring)
-            func.__doc__ = new_docstring
-        return func
-    return _doc
-
-
-def extend_notes_in_docstring(cls, notes):
-    """
-    This decorator replaces the decorated function's docstring
-    with the docstring from corresponding method in `cls`.
-    It extends the 'Notes' section of that docstring to include
-    the given `notes`.
-    """
-    def _doc(func):
-        cls_docstring = getattr(cls, func.__name__).__doc__
-        # If python is called with -OO option,
-        # there is no docstring
-        if cls_docstring is None:
-            return func
-        end_of_notes = cls_docstring.find('        References\n')
-        if end_of_notes == -1:
-            end_of_notes = cls_docstring.find('        Examples\n')
-            if end_of_notes == -1:
-                end_of_notes = len(cls_docstring)
-        func.__doc__ = (cls_docstring[:end_of_notes] + notes +
-                        cls_docstring[end_of_notes:])
-        return func
-    return _doc
-
-
-def replace_notes_in_docstring(cls, notes):
-    """
-    This decorator replaces the decorated function's docstring
-    with the docstring from corresponding method in `cls`.
-    It replaces the 'Notes' section of that docstring with
-    the given `notes`.
-    """
-    def _doc(func):
-        cls_docstring = getattr(cls, func.__name__).__doc__
-        notes_header = '        Notes\n        -----\n'
-        # If python is called with -OO option,
-        # there is no docstring
-        if cls_docstring is None:
-            return func
-        start_of_notes = cls_docstring.find(notes_header)
-        end_of_notes = cls_docstring.find('        References\n')
-        if end_of_notes == -1:
-            end_of_notes = cls_docstring.find('        Examples\n')
-            if end_of_notes == -1:
-                end_of_notes = len(cls_docstring)
-        func.__doc__ = (cls_docstring[:start_of_notes + len(notes_header)] +
-                        notes +
-                        cls_docstring[end_of_notes:])
-        return func
-    return _doc
-
-
-def indentcount_lines(lines):
-    ''' Minimum indent for all lines in line list
-
-    >>> lines = [' one', '  two', '   three']
-    >>> indentcount_lines(lines)
-    1
-    >>> lines = []
-    >>> indentcount_lines(lines)
-    0
-    >>> lines = [' one']
-    >>> indentcount_lines(lines)
-    1
-    >>> indentcount_lines(['    '])
-    0
-    '''
-    indentno = sys.maxsize
-    for line in lines:
-        stripped = line.lstrip()
-        if stripped:
-            indentno = min(indentno, len(line) - len(stripped))
-    if indentno == sys.maxsize:
-        return 0
-    return indentno
-
-
-def filldoc(docdict, unindent_params=True):
-    ''' Return docstring decorator using docdict variable dictionary
-
-    Parameters
-    ----------
-    docdict : dictionary
-        dictionary containing name, docstring fragment pairs
-    unindent_params : {False, True}, boolean, optional
-        If True, strip common indentation from all parameters in
-        docdict
-
-    Returns
-    -------
-    decfunc : function
-        decorator that applies dictionary to input function docstring
-
-    '''
-    if unindent_params:
-        docdict = unindent_dict(docdict)
-
-    def decorate(f):
-        f.__doc__ = docformat(f.__doc__, docdict)
-        return f
-    return decorate
-
-
-def unindent_dict(docdict):
-    ''' Unindent all strings in a docdict '''
-    can_dict = {}
-    for name, dstr in docdict.items():
-        can_dict[name] = unindent_string(dstr)
-    return can_dict
-
-
-def unindent_string(docstring):
-    ''' Set docstring to minimum indent for all lines, including first
-
-    >>> unindent_string(' two')
-    'two'
-    >>> unindent_string('  two\\n   three')
-    'two\\n three'
-    '''
-    lines = docstring.expandtabs().splitlines()
-    icount = indentcount_lines(lines)
-    if icount == 0:
-        return docstring
-    return '\n'.join([line[icount:] for line in lines])
-
-
-def doc_replace(obj, oldval, newval):
-    """Decorator to take the docstring from obj, with oldval replaced by newval
-
-    Equivalent to ``func.__doc__ = obj.__doc__.replace(oldval, newval)``
-
-    Parameters
-    ----------
-    obj : object
-        The object to take the docstring from.
-    oldval : string
-        The string to replace from the original docstring.
-    newval : string
-        The string to replace ``oldval`` with.
-    """
-    # __doc__ may be None for optimized Python (-OO)
-    doc = (obj.__doc__ or '').replace(oldval, newval)
-
-    def inner(func):
-        func.__doc__ = doc
-        return func
-
-    return inner
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/messagestream.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/messagestream.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index 72ce3c3e619b2215816e37ae8e27b6d9a9c2024b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/messagestream.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 21181aa01338cb2e4ac58e4271da900fbe5cfcf5..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__gcutils.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__gcutils.cpython-310.pyc
deleted file mode 100644
index cebd9d13a9dde6a70335d874c796df4fc5b73283..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__gcutils.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__pep440.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__pep440.cpython-310.pyc
deleted file mode 100644
index 30054d27a32d53c76dd7a3c5afe3951042398ca3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__pep440.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__testutils.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__testutils.cpython-310.pyc
deleted file mode 100644
index d1d61f2162753ad7ada056878dd0f81a58889809..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__testutils.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__threadsafety.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__threadsafety.cpython-310.pyc
deleted file mode 100644
index 9b60f824a573a7a2593ea6c3d1b09475d671f458..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__threadsafety.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__util.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__util.cpython-310.pyc
deleted file mode 100644
index 54e0b6c6a1854ede70787e92c87b9d1537facf25..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test__util.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_array_api.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_array_api.cpython-310.pyc
deleted file mode 100644
index 93a735dbd4567ab3aebcd39604188d79d2149db0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_array_api.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_bunch.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_bunch.cpython-310.pyc
deleted file mode 100644
index e81ae3ee5c1effc0cded8e1fd714b83de2d4200b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_bunch.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_ccallback.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_ccallback.cpython-310.pyc
deleted file mode 100644
index b8750402c7eeb87446f32a0885b85b1bee99a869..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_ccallback.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_deprecation.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_deprecation.cpython-310.pyc
deleted file mode 100644
index 898e30bef5e43b745e6fc9b2847098495cae2968..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_deprecation.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_import_cycles.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_import_cycles.cpython-310.pyc
deleted file mode 100644
index 7f10c35a32bd05fcc8e57a454d1edd9324f19cfe..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_import_cycles.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_public_api.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_public_api.cpython-310.pyc
deleted file mode 100644
index 6e2a9f6d8199faa0c1d582d032641ad1151e00f5..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_public_api.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_scipy_version.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_scipy_version.cpython-310.pyc
deleted file mode 100644
index f6f8eb11a4871af0154af23ecb95141dbb041e7d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_scipy_version.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_tmpdirs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_tmpdirs.cpython-310.pyc
deleted file mode 100644
index 82246525e6277441ae7e4023677d5060c5130ece..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_tmpdirs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_warnings.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_warnings.cpython-310.pyc
deleted file mode 100644
index 7b14e3b6e5e7f80c7bd93e57d8de0792774a9371..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/__pycache__/test_warnings.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__gcutils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__gcutils.py
deleted file mode 100644
index 74307fa0151cf1f6562acf4200e969f41ad2a006..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__gcutils.py
+++ /dev/null
@@ -1,101 +0,0 @@
-""" Test for assert_deallocated context manager and gc utilities
-"""
-import gc
-
-from scipy._lib._gcutils import (set_gc_state, gc_state, assert_deallocated,
-                                 ReferenceError, IS_PYPY)
-
-from numpy.testing import assert_equal
-
-import pytest
-
-
-def test_set_gc_state():
-    gc_status = gc.isenabled()
-    try:
-        for state in (True, False):
-            gc.enable()
-            set_gc_state(state)
-            assert_equal(gc.isenabled(), state)
-            gc.disable()
-            set_gc_state(state)
-            assert_equal(gc.isenabled(), state)
-    finally:
-        if gc_status:
-            gc.enable()
-
-
-def test_gc_state():
-    # Test gc_state context manager
-    gc_status = gc.isenabled()
-    try:
-        for pre_state in (True, False):
-            set_gc_state(pre_state)
-            for with_state in (True, False):
-                # Check the gc state is with_state in with block
-                with gc_state(with_state):
-                    assert_equal(gc.isenabled(), with_state)
-                # And returns to previous state outside block
-                assert_equal(gc.isenabled(), pre_state)
-                # Even if the gc state is set explicitly within the block
-                with gc_state(with_state):
-                    assert_equal(gc.isenabled(), with_state)
-                    set_gc_state(not with_state)
-                assert_equal(gc.isenabled(), pre_state)
-    finally:
-        if gc_status:
-            gc.enable()
-
-
-@pytest.mark.skipif(IS_PYPY, reason="Test not meaningful on PyPy")
-def test_assert_deallocated():
-    # Ordinary use
-    class C:
-        def __init__(self, arg0, arg1, name='myname'):
-            self.name = name
-    for gc_current in (True, False):
-        with gc_state(gc_current):
-            # We are deleting from with-block context, so that's OK
-            with assert_deallocated(C, 0, 2, 'another name') as c:
-                assert_equal(c.name, 'another name')
-                del c
-            # Or not using the thing in with-block context, also OK
-            with assert_deallocated(C, 0, 2, name='third name'):
-                pass
-            assert_equal(gc.isenabled(), gc_current)
-
-
-@pytest.mark.skipif(IS_PYPY, reason="Test not meaningful on PyPy")
-def test_assert_deallocated_nodel():
-    class C:
-        pass
-    with pytest.raises(ReferenceError):
-        # Need to delete after using if in with-block context
-        # Note: assert_deallocated(C) needs to be assigned for the test
-        # to function correctly.  It is assigned to _, but _ itself is
-        # not referenced in the body of the with, it is only there for
-        # the refcount.
-        with assert_deallocated(C) as _:
-            pass
-
-
-@pytest.mark.skipif(IS_PYPY, reason="Test not meaningful on PyPy")
-def test_assert_deallocated_circular():
-    class C:
-        def __init__(self):
-            self._circular = self
-    with pytest.raises(ReferenceError):
-        # Circular reference, no automatic garbage collection
-        with assert_deallocated(C) as c:
-            del c
-
-
-@pytest.mark.skipif(IS_PYPY, reason="Test not meaningful on PyPy")
-def test_assert_deallocated_circular2():
-    class C:
-        def __init__(self):
-            self._circular = self
-    with pytest.raises(ReferenceError):
-        # Still circular reference, no automatic garbage collection
-        with assert_deallocated(C):
-            pass
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__pep440.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__pep440.py
deleted file mode 100644
index 7f5b71c8f1e13b42de2e8e612a005dec409fc025..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__pep440.py
+++ /dev/null
@@ -1,67 +0,0 @@
-from pytest import raises as assert_raises
-from scipy._lib._pep440 import Version, parse
-
-
-def test_main_versions():
-    assert Version('1.8.0') == Version('1.8.0')
-    for ver in ['1.9.0', '2.0.0', '1.8.1']:
-        assert Version('1.8.0') < Version(ver)
-
-    for ver in ['1.7.0', '1.7.1', '0.9.9']:
-        assert Version('1.8.0') > Version(ver)
-
-
-def test_version_1_point_10():
-    # regression test for gh-2998.
-    assert Version('1.9.0') < Version('1.10.0')
-    assert Version('1.11.0') < Version('1.11.1')
-    assert Version('1.11.0') == Version('1.11.0')
-    assert Version('1.99.11') < Version('1.99.12')
-
-
-def test_alpha_beta_rc():
-    assert Version('1.8.0rc1') == Version('1.8.0rc1')
-    for ver in ['1.8.0', '1.8.0rc2']:
-        assert Version('1.8.0rc1') < Version(ver)
-
-    for ver in ['1.8.0a2', '1.8.0b3', '1.7.2rc4']:
-        assert Version('1.8.0rc1') > Version(ver)
-
-    assert Version('1.8.0b1') > Version('1.8.0a2')
-
-
-def test_dev_version():
-    assert Version('1.9.0.dev+Unknown') < Version('1.9.0')
-    for ver in ['1.9.0', '1.9.0a1', '1.9.0b2', '1.9.0b2.dev+ffffffff', '1.9.0.dev1']:
-        assert Version('1.9.0.dev+f16acvda') < Version(ver)
-
-    assert Version('1.9.0.dev+f16acvda') == Version('1.9.0.dev+f16acvda')
-
-
-def test_dev_a_b_rc_mixed():
-    assert Version('1.9.0a2.dev+f16acvda') == Version('1.9.0a2.dev+f16acvda')
-    assert Version('1.9.0a2.dev+6acvda54') < Version('1.9.0a2')
-
-
-def test_dev0_version():
-    assert Version('1.9.0.dev0+Unknown') < Version('1.9.0')
-    for ver in ['1.9.0', '1.9.0a1', '1.9.0b2', '1.9.0b2.dev0+ffffffff']:
-        assert Version('1.9.0.dev0+f16acvda') < Version(ver)
-
-    assert Version('1.9.0.dev0+f16acvda') == Version('1.9.0.dev0+f16acvda')
-
-
-def test_dev0_a_b_rc_mixed():
-    assert Version('1.9.0a2.dev0+f16acvda') == Version('1.9.0a2.dev0+f16acvda')
-    assert Version('1.9.0a2.dev0+6acvda54') < Version('1.9.0a2')
-
-
-def test_raises():
-    for ver in ['1,9.0', '1.7.x']:
-        assert_raises(ValueError, Version, ver)
-
-def test_legacy_version():
-    # Non-PEP-440 version identifiers always compare less. For NumPy this only
-    # occurs on dev builds prior to 1.10.0 which are unsupported anyway.
-    assert parse('invalid') < Version('0.0.0')
-    assert parse('1.9.0-f16acvda') < Version('1.0.0')
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__testutils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__testutils.py
deleted file mode 100644
index 88db113d6d5a35c96ecc0a6a36ab42d74be49153..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__testutils.py
+++ /dev/null
@@ -1,32 +0,0 @@
-import sys
-from scipy._lib._testutils import _parse_size, _get_mem_available
-import pytest
-
-
-def test__parse_size():
-    expected = {
-        '12': 12e6,
-        '12 b': 12,
-        '12k': 12e3,
-        '  12  M  ': 12e6,
-        '  12  G  ': 12e9,
-        ' 12Tb ': 12e12,
-        '12  Mib ': 12 * 1024.0**2,
-        '12Tib': 12 * 1024.0**4,
-    }
-
-    for inp, outp in sorted(expected.items()):
-        if outp is None:
-            with pytest.raises(ValueError):
-                _parse_size(inp)
-        else:
-            assert _parse_size(inp) == outp
-
-
-def test__mem_available():
-    # May return None on non-Linux platforms
-    available = _get_mem_available()
-    if sys.platform.startswith('linux'):
-        assert available >= 0
-    else:
-        assert available is None or available >= 0
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__threadsafety.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__threadsafety.py
deleted file mode 100644
index 87ae85ef318da2b8bb104c4a87faa4e4021c01d5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__threadsafety.py
+++ /dev/null
@@ -1,51 +0,0 @@
-import threading
-import time
-import traceback
-
-from numpy.testing import assert_
-from pytest import raises as assert_raises
-
-from scipy._lib._threadsafety import ReentrancyLock, non_reentrant, ReentrancyError
-
-
-def test_parallel_threads():
-    # Check that ReentrancyLock serializes work in parallel threads.
-    #
-    # The test is not fully deterministic, and may succeed falsely if
-    # the timings go wrong.
-
-    lock = ReentrancyLock("failure")
-
-    failflag = [False]
-    exceptions_raised = []
-
-    def worker(k):
-        try:
-            with lock:
-                assert_(not failflag[0])
-                failflag[0] = True
-                time.sleep(0.1 * k)
-                assert_(failflag[0])
-                failflag[0] = False
-        except Exception:
-            exceptions_raised.append(traceback.format_exc(2))
-
-    threads = [threading.Thread(target=lambda k=k: worker(k))
-               for k in range(3)]
-    for t in threads:
-        t.start()
-    for t in threads:
-        t.join()
-
-    exceptions_raised = "\n".join(exceptions_raised)
-    assert_(not exceptions_raised, exceptions_raised)
-
-
-def test_reentering():
-    # Check that ReentrancyLock prevents re-entering from the same thread.
-
-    @non_reentrant()
-    def func(x):
-        return func(x)
-
-    assert_raises(ReentrancyError, func, 0)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__util.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__util.py
deleted file mode 100644
index b1f58acf3dc9fef524e4ff13270a8ade69a389e2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test__util.py
+++ /dev/null
@@ -1,447 +0,0 @@
-from multiprocessing import Pool
-from multiprocessing.pool import Pool as PWL
-import re
-import math
-from fractions import Fraction
-
-import numpy as np
-from numpy.testing import assert_equal, assert_
-import pytest
-from pytest import raises as assert_raises
-import hypothesis.extra.numpy as npst
-from hypothesis import given, strategies, reproduce_failure  # noqa: F401
-from scipy.conftest import array_api_compatible, skip_xp_invalid_arg
-
-from scipy._lib._array_api import (xp_assert_equal, xp_assert_close, is_numpy,
-                                   copy as xp_copy)
-from scipy._lib._util import (_aligned_zeros, check_random_state, MapWrapper,
-                              getfullargspec_no_self, FullArgSpec,
-                              rng_integers, _validate_int, _rename_parameter,
-                              _contains_nan, _rng_html_rewrite, _lazywhere)
-
-skip_xp_backends = pytest.mark.skip_xp_backends
-
-
-@pytest.mark.slow
-def test__aligned_zeros():
-    niter = 10
-
-    def check(shape, dtype, order, align):
-        err_msg = repr((shape, dtype, order, align))
-        x = _aligned_zeros(shape, dtype, order, align=align)
-        if align is None:
-            align = np.dtype(dtype).alignment
-        assert_equal(x.__array_interface__['data'][0] % align, 0)
-        if hasattr(shape, '__len__'):
-            assert_equal(x.shape, shape, err_msg)
-        else:
-            assert_equal(x.shape, (shape,), err_msg)
-        assert_equal(x.dtype, dtype)
-        if order == "C":
-            assert_(x.flags.c_contiguous, err_msg)
-        elif order == "F":
-            if x.size > 0:
-                # Size-0 arrays get invalid flags on NumPy 1.5
-                assert_(x.flags.f_contiguous, err_msg)
-        elif order is None:
-            assert_(x.flags.c_contiguous, err_msg)
-        else:
-            raise ValueError()
-
-    # try various alignments
-    for align in [1, 2, 3, 4, 8, 16, 32, 64, None]:
-        for n in [0, 1, 3, 11]:
-            for order in ["C", "F", None]:
-                for dtype in [np.uint8, np.float64]:
-                    for shape in [n, (1, 2, 3, n)]:
-                        for j in range(niter):
-                            check(shape, dtype, order, align)
-
-
-def test_check_random_state():
-    # If seed is None, return the RandomState singleton used by np.random.
-    # If seed is an int, return a new RandomState instance seeded with seed.
-    # If seed is already a RandomState instance, return it.
-    # Otherwise raise ValueError.
-    rsi = check_random_state(1)
-    assert_equal(type(rsi), np.random.RandomState)
-    rsi = check_random_state(rsi)
-    assert_equal(type(rsi), np.random.RandomState)
-    rsi = check_random_state(None)
-    assert_equal(type(rsi), np.random.RandomState)
-    assert_raises(ValueError, check_random_state, 'a')
-    rg = np.random.Generator(np.random.PCG64())
-    rsi = check_random_state(rg)
-    assert_equal(type(rsi), np.random.Generator)
-
-
-def test_getfullargspec_no_self():
-    p = MapWrapper(1)
-    argspec = getfullargspec_no_self(p.__init__)
-    assert_equal(argspec, FullArgSpec(['pool'], None, None, (1,), [],
-                                      None, {}))
-    argspec = getfullargspec_no_self(p.__call__)
-    assert_equal(argspec, FullArgSpec(['func', 'iterable'], None, None, None,
-                                      [], None, {}))
-
-    class _rv_generic:
-        def _rvs(self, a, b=2, c=3, *args, size=None, **kwargs):
-            return None
-
-    rv_obj = _rv_generic()
-    argspec = getfullargspec_no_self(rv_obj._rvs)
-    assert_equal(argspec, FullArgSpec(['a', 'b', 'c'], 'args', 'kwargs',
-                                      (2, 3), ['size'], {'size': None}, {}))
-
-
-def test_mapwrapper_serial():
-    in_arg = np.arange(10.)
-    out_arg = np.sin(in_arg)
-
-    p = MapWrapper(1)
-    assert_(p._mapfunc is map)
-    assert_(p.pool is None)
-    assert_(p._own_pool is False)
-    out = list(p(np.sin, in_arg))
-    assert_equal(out, out_arg)
-
-    with assert_raises(RuntimeError):
-        p = MapWrapper(0)
-
-
-def test_pool():
-    with Pool(2) as p:
-        p.map(math.sin, [1, 2, 3, 4])
-
-
-def test_mapwrapper_parallel():
-    in_arg = np.arange(10.)
-    out_arg = np.sin(in_arg)
-
-    with MapWrapper(2) as p:
-        out = p(np.sin, in_arg)
-        assert_equal(list(out), out_arg)
-
-        assert_(p._own_pool is True)
-        assert_(isinstance(p.pool, PWL))
-        assert_(p._mapfunc is not None)
-
-    # the context manager should've closed the internal pool
-    # check that it has by asking it to calculate again.
-    with assert_raises(Exception) as excinfo:
-        p(np.sin, in_arg)
-
-    assert_(excinfo.type is ValueError)
-
-    # can also set a PoolWrapper up with a map-like callable instance
-    with Pool(2) as p:
-        q = MapWrapper(p.map)
-
-        assert_(q._own_pool is False)
-        q.close()
-
-        # closing the PoolWrapper shouldn't close the internal pool
-        # because it didn't create it
-        out = p.map(np.sin, in_arg)
-        assert_equal(list(out), out_arg)
-
-
-def test_rng_integers():
-    rng = np.random.RandomState()
-
-    # test that numbers are inclusive of high point
-    arr = rng_integers(rng, low=2, high=5, size=100, endpoint=True)
-    assert np.max(arr) == 5
-    assert np.min(arr) == 2
-    assert arr.shape == (100, )
-
-    # test that numbers are inclusive of high point
-    arr = rng_integers(rng, low=5, size=100, endpoint=True)
-    assert np.max(arr) == 5
-    assert np.min(arr) == 0
-    assert arr.shape == (100, )
-
-    # test that numbers are exclusive of high point
-    arr = rng_integers(rng, low=2, high=5, size=100, endpoint=False)
-    assert np.max(arr) == 4
-    assert np.min(arr) == 2
-    assert arr.shape == (100, )
-
-    # test that numbers are exclusive of high point
-    arr = rng_integers(rng, low=5, size=100, endpoint=False)
-    assert np.max(arr) == 4
-    assert np.min(arr) == 0
-    assert arr.shape == (100, )
-
-    # now try with np.random.Generator
-    try:
-        rng = np.random.default_rng()
-    except AttributeError:
-        return
-
-    # test that numbers are inclusive of high point
-    arr = rng_integers(rng, low=2, high=5, size=100, endpoint=True)
-    assert np.max(arr) == 5
-    assert np.min(arr) == 2
-    assert arr.shape == (100, )
-
-    # test that numbers are inclusive of high point
-    arr = rng_integers(rng, low=5, size=100, endpoint=True)
-    assert np.max(arr) == 5
-    assert np.min(arr) == 0
-    assert arr.shape == (100, )
-
-    # test that numbers are exclusive of high point
-    arr = rng_integers(rng, low=2, high=5, size=100, endpoint=False)
-    assert np.max(arr) == 4
-    assert np.min(arr) == 2
-    assert arr.shape == (100, )
-
-    # test that numbers are exclusive of high point
-    arr = rng_integers(rng, low=5, size=100, endpoint=False)
-    assert np.max(arr) == 4
-    assert np.min(arr) == 0
-    assert arr.shape == (100, )
-
-
-class TestValidateInt:
-
-    @pytest.mark.parametrize('n', [4, np.uint8(4), np.int16(4), np.array(4)])
-    def test_validate_int(self, n):
-        n = _validate_int(n, 'n')
-        assert n == 4
-
-    @pytest.mark.parametrize('n', [4.0, np.array([4]), Fraction(4, 1)])
-    def test_validate_int_bad(self, n):
-        with pytest.raises(TypeError, match='n must be an integer'):
-            _validate_int(n, 'n')
-
-    def test_validate_int_below_min(self):
-        with pytest.raises(ValueError, match='n must be an integer not '
-                                             'less than 0'):
-            _validate_int(-1, 'n', 0)
-
-
-class TestRenameParameter:
-    # check that wrapper `_rename_parameter` for backward-compatible
-    # keyword renaming works correctly
-
-    # Example method/function that still accepts keyword `old`
-    @_rename_parameter("old", "new")
-    def old_keyword_still_accepted(self, new):
-        return new
-
-    # Example method/function for which keyword `old` is deprecated
-    @_rename_parameter("old", "new", dep_version="1.9.0")
-    def old_keyword_deprecated(self, new):
-        return new
-
-    def test_old_keyword_still_accepted(self):
-        # positional argument and both keyword work identically
-        res1 = self.old_keyword_still_accepted(10)
-        res2 = self.old_keyword_still_accepted(new=10)
-        res3 = self.old_keyword_still_accepted(old=10)
-        assert res1 == res2 == res3 == 10
-
-        # unexpected keyword raises an error
-        message = re.escape("old_keyword_still_accepted() got an unexpected")
-        with pytest.raises(TypeError, match=message):
-            self.old_keyword_still_accepted(unexpected=10)
-
-        # multiple values for the same parameter raises an error
-        message = re.escape("old_keyword_still_accepted() got multiple")
-        with pytest.raises(TypeError, match=message):
-            self.old_keyword_still_accepted(10, new=10)
-        with pytest.raises(TypeError, match=message):
-            self.old_keyword_still_accepted(10, old=10)
-        with pytest.raises(TypeError, match=message):
-            self.old_keyword_still_accepted(new=10, old=10)
-
-    def test_old_keyword_deprecated(self):
-        # positional argument and both keyword work identically,
-        # but use of old keyword results in DeprecationWarning
-        dep_msg = "Use of keyword argument `old` is deprecated"
-        res1 = self.old_keyword_deprecated(10)
-        res2 = self.old_keyword_deprecated(new=10)
-        with pytest.warns(DeprecationWarning, match=dep_msg):
-            res3 = self.old_keyword_deprecated(old=10)
-        assert res1 == res2 == res3 == 10
-
-        # unexpected keyword raises an error
-        message = re.escape("old_keyword_deprecated() got an unexpected")
-        with pytest.raises(TypeError, match=message):
-            self.old_keyword_deprecated(unexpected=10)
-
-        # multiple values for the same parameter raises an error and,
-        # if old keyword is used, results in DeprecationWarning
-        message = re.escape("old_keyword_deprecated() got multiple")
-        with pytest.raises(TypeError, match=message):
-            self.old_keyword_deprecated(10, new=10)
-        with pytest.raises(TypeError, match=message), \
-                pytest.warns(DeprecationWarning, match=dep_msg):
-            self.old_keyword_deprecated(10, old=10)
-        with pytest.raises(TypeError, match=message), \
-                pytest.warns(DeprecationWarning, match=dep_msg):
-            self.old_keyword_deprecated(new=10, old=10)
-
-
-class TestContainsNaNTest:
-
-    def test_policy(self):
-        data = np.array([1, 2, 3, np.nan])
-
-        contains_nan, nan_policy = _contains_nan(data, nan_policy="propagate")
-        assert contains_nan
-        assert nan_policy == "propagate"
-
-        contains_nan, nan_policy = _contains_nan(data, nan_policy="omit")
-        assert contains_nan
-        assert nan_policy == "omit"
-
-        msg = "The input contains nan values"
-        with pytest.raises(ValueError, match=msg):
-            _contains_nan(data, nan_policy="raise")
-
-        msg = "nan_policy must be one of"
-        with pytest.raises(ValueError, match=msg):
-            _contains_nan(data, nan_policy="nan")
-
-    def test_contains_nan(self):
-        data1 = np.array([1, 2, 3])
-        assert not _contains_nan(data1)[0]
-
-        data2 = np.array([1, 2, 3, np.nan])
-        assert _contains_nan(data2)[0]
-
-        data3 = np.array([np.nan, 2, 3, np.nan])
-        assert _contains_nan(data3)[0]
-
-        data4 = np.array([[1, 2], [3, 4]])
-        assert not _contains_nan(data4)[0]
-
-        data5 = np.array([[1, 2], [3, np.nan]])
-        assert _contains_nan(data5)[0]
-
-    @skip_xp_invalid_arg
-    def test_contains_nan_with_strings(self):
-        data1 = np.array([1, 2, "3", np.nan])  # converted to string "nan"
-        assert not _contains_nan(data1)[0]
-
-        data2 = np.array([1, 2, "3", np.nan], dtype='object')
-        assert _contains_nan(data2)[0]
-
-        data3 = np.array([["1", 2], [3, np.nan]])  # converted to string "nan"
-        assert not _contains_nan(data3)[0]
-
-        data4 = np.array([["1", 2], [3, np.nan]], dtype='object')
-        assert _contains_nan(data4)[0]
-
-    @skip_xp_backends('jax.numpy',
-                      reasons=["JAX arrays do not support item assignment"])
-    @pytest.mark.usefixtures("skip_xp_backends")
-    @array_api_compatible
-    @pytest.mark.parametrize("nan_policy", ['propagate', 'omit', 'raise'])
-    def test_array_api(self, xp, nan_policy):
-        rng = np.random.default_rng(932347235892482)
-        x0 = rng.random(size=(2, 3, 4))
-        x = xp.asarray(x0)
-        x_nan = xp_copy(x, xp=xp)
-        x_nan[1, 2, 1] = np.nan
-
-        contains_nan, nan_policy_out = _contains_nan(x, nan_policy=nan_policy)
-        assert not contains_nan
-        assert nan_policy_out == nan_policy
-
-        if nan_policy == 'raise':
-            message = 'The input contains...'
-            with pytest.raises(ValueError, match=message):
-                _contains_nan(x_nan, nan_policy=nan_policy)
-        elif nan_policy == 'omit' and not is_numpy(xp):
-            message = "`nan_policy='omit' is incompatible..."
-            with pytest.raises(ValueError, match=message):
-                _contains_nan(x_nan, nan_policy=nan_policy)
-        elif nan_policy == 'propagate':
-            contains_nan, nan_policy_out = _contains_nan(
-                x_nan, nan_policy=nan_policy)
-            assert contains_nan
-            assert nan_policy_out == nan_policy
-
-
-def test__rng_html_rewrite():
-    def mock_str():
-        lines = [
-            'np.random.default_rng(8989843)',
-            'np.random.default_rng(seed)',
-            'np.random.default_rng(0x9a71b21474694f919882289dc1559ca)',
-            ' bob ',
-        ]
-        return lines
-
-    res = _rng_html_rewrite(mock_str)()
-    ref = [
-        'np.random.default_rng()',
-        'np.random.default_rng(seed)',
-        'np.random.default_rng()',
-        ' bob ',
-    ]
-
-    assert res == ref
-
-
-class TestLazywhere:
-    n_arrays = strategies.integers(min_value=1, max_value=3)
-    rng_seed = strategies.integers(min_value=1000000000, max_value=9999999999)
-    dtype = strategies.sampled_from((np.float32, np.float64))
-    p = strategies.floats(min_value=0, max_value=1)
-    data = strategies.data()
-
-    @pytest.mark.fail_slow(5)
-    @pytest.mark.filterwarnings('ignore::RuntimeWarning')  # overflows, etc.
-    @skip_xp_backends('jax.numpy',
-                      reasons=["JAX arrays do not support item assignment"])
-    @pytest.mark.usefixtures("skip_xp_backends")
-    @array_api_compatible
-    @given(n_arrays=n_arrays, rng_seed=rng_seed, dtype=dtype, p=p, data=data)
-    def test_basic(self, n_arrays, rng_seed, dtype, p, data, xp):
-        mbs = npst.mutually_broadcastable_shapes(num_shapes=n_arrays+1,
-                                                 min_side=0)
-        input_shapes, result_shape = data.draw(mbs)
-        cond_shape, *shapes = input_shapes
-        fillvalue = xp.asarray(data.draw(npst.arrays(dtype=dtype, shape=tuple())))
-        arrays = [xp.asarray(data.draw(npst.arrays(dtype=dtype, shape=shape)))
-                  for shape in shapes]
-
-        def f(*args):
-            return sum(arg for arg in args)
-
-        def f2(*args):
-            return sum(arg for arg in args) / 2
-
-        rng = np.random.default_rng(rng_seed)
-        cond = xp.asarray(rng.random(size=cond_shape) > p)
-
-        res1 = _lazywhere(cond, arrays, f, fillvalue)
-        res2 = _lazywhere(cond, arrays, f, f2=f2)
-
-        # Ensure arrays are at least 1d to follow sane type promotion rules.
-        if xp == np:
-            cond, fillvalue, *arrays = np.atleast_1d(cond, fillvalue, *arrays)
-
-        ref1 = xp.where(cond, f(*arrays), fillvalue)
-        ref2 = xp.where(cond, f(*arrays), f2(*arrays))
-
-        if xp == np:
-            ref1 = ref1.reshape(result_shape)
-            ref2 = ref2.reshape(result_shape)
-            res1 = xp.asarray(res1)[()]
-            res2 = xp.asarray(res2)[()]
-
-        isinstance(res1, type(xp.asarray([])))
-        xp_assert_close(res1, ref1, rtol=2e-16)
-        assert_equal(res1.shape, ref1.shape)
-        assert_equal(res1.dtype, ref1.dtype)
-
-        isinstance(res2, type(xp.asarray([])))
-        xp_assert_equal(res2, ref2)
-        assert_equal(res2.shape, ref2.shape)
-        assert_equal(res2.dtype, ref2.dtype)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_array_api.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_array_api.py
deleted file mode 100644
index 3ca0ae36f03003e8e9e184157eba008e451382fd..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_array_api.py
+++ /dev/null
@@ -1,114 +0,0 @@
-import numpy as np
-import pytest
-
-from scipy.conftest import array_api_compatible
-from scipy._lib._array_api import (
-    _GLOBAL_CONFIG, array_namespace, _asarray, copy, xp_assert_equal, is_numpy
-)
-import scipy._lib.array_api_compat.numpy as np_compat
-
-skip_xp_backends = pytest.mark.skip_xp_backends
-
-
-@pytest.mark.skipif(not _GLOBAL_CONFIG["SCIPY_ARRAY_API"],
-        reason="Array API test; set environment variable SCIPY_ARRAY_API=1 to run it")
-class TestArrayAPI:
-
-    def test_array_namespace(self):
-        x, y = np.array([0, 1, 2]), np.array([0, 1, 2])
-        xp = array_namespace(x, y)
-        assert 'array_api_compat.numpy' in xp.__name__
-
-        _GLOBAL_CONFIG["SCIPY_ARRAY_API"] = False
-        xp = array_namespace(x, y)
-        assert 'array_api_compat.numpy' in xp.__name__
-        _GLOBAL_CONFIG["SCIPY_ARRAY_API"] = True
-
-    @array_api_compatible
-    def test_asarray(self, xp):
-        x, y = _asarray([0, 1, 2], xp=xp), _asarray(np.arange(3), xp=xp)
-        ref = xp.asarray([0, 1, 2])
-        xp_assert_equal(x, ref)
-        xp_assert_equal(y, ref)
-
-    @pytest.mark.filterwarnings("ignore: the matrix subclass")
-    def test_raises(self):
-        msg = "of type `numpy.ma.MaskedArray` are not supported"
-        with pytest.raises(TypeError, match=msg):
-            array_namespace(np.ma.array(1), np.array(1))
-
-        msg = "of type `numpy.matrix` are not supported"
-        with pytest.raises(TypeError, match=msg):
-            array_namespace(np.array(1), np.matrix(1))
-
-        msg = "only boolean and numerical dtypes are supported"
-        with pytest.raises(TypeError, match=msg):
-            array_namespace([object()])
-        with pytest.raises(TypeError, match=msg):
-            array_namespace('abc')
-
-    def test_array_likes(self):
-        # should be no exceptions
-        array_namespace([0, 1, 2])
-        array_namespace(1, 2, 3)
-        array_namespace(1)
-
-    @skip_xp_backends('jax.numpy',
-                      reasons=["JAX arrays do not support item assignment"])
-    @pytest.mark.usefixtures("skip_xp_backends")
-    @array_api_compatible
-    def test_copy(self, xp):
-        for _xp in [xp, None]:
-            x = xp.asarray([1, 2, 3])
-            y = copy(x, xp=_xp)
-            # with numpy we'd want to use np.shared_memory, but that's not specified
-            # in the array-api
-            x[0] = 10
-            x[1] = 11
-            x[2] = 12
-
-            assert x[0] != y[0]
-            assert x[1] != y[1]
-            assert x[2] != y[2]
-            assert id(x) != id(y)
-
-    @array_api_compatible
-    @pytest.mark.parametrize('dtype', ['int32', 'int64', 'float32', 'float64'])
-    @pytest.mark.parametrize('shape', [(), (3,)])
-    def test_strict_checks(self, xp, dtype, shape):
-        # Check that `_strict_check` behaves as expected
-        dtype = getattr(xp, dtype)
-        x = xp.broadcast_to(xp.asarray(1, dtype=dtype), shape)
-        x = x if shape else x[()]
-        y = np_compat.asarray(1)[()]
-
-        options = dict(check_namespace=True, check_dtype=False, check_shape=False)
-        if xp == np:
-            xp_assert_equal(x, y, **options)
-        else:
-            with pytest.raises(AssertionError, match="Namespaces do not match."):
-                xp_assert_equal(x, y, **options)
-
-        options = dict(check_namespace=False, check_dtype=True, check_shape=False)
-        if y.dtype.name in str(x.dtype):
-            xp_assert_equal(x, y, **options)
-        else:
-            with pytest.raises(AssertionError, match="dtypes do not match."):
-                xp_assert_equal(x, y, **options)
-
-        options = dict(check_namespace=False, check_dtype=False, check_shape=True)
-        if x.shape == y.shape:
-            xp_assert_equal(x, y, **options)
-        else:
-            with pytest.raises(AssertionError, match="Shapes do not match."):
-                xp_assert_equal(x, y, **options)
-
-    @array_api_compatible
-    def test_check_scalar(self, xp):
-        if not is_numpy(xp):
-            pytest.skip("Scalars only exist in NumPy")
-
-        if is_numpy(xp):
-            with pytest.raises(AssertionError, match="Types do not match."):
-                xp_assert_equal(xp.asarray(0.), xp.float64(0))
-            xp_assert_equal(xp.float64(0), xp.asarray(0.))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_bunch.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_bunch.py
deleted file mode 100644
index f19ca377129b925cad732dd25bf3089c646f923f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_bunch.py
+++ /dev/null
@@ -1,162 +0,0 @@
-import pytest
-import pickle
-from numpy.testing import assert_equal
-from scipy._lib._bunch import _make_tuple_bunch
-
-
-# `Result` is defined at the top level of the module so it can be
-# used to test pickling.
-Result = _make_tuple_bunch('Result', ['x', 'y', 'z'], ['w', 'beta'])
-
-
-class TestMakeTupleBunch:
-
-    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    # Tests with Result
-    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-    def setup_method(self):
-        # Set up an instance of Result.
-        self.result = Result(x=1, y=2, z=3, w=99, beta=0.5)
-
-    def test_attribute_access(self):
-        assert_equal(self.result.x, 1)
-        assert_equal(self.result.y, 2)
-        assert_equal(self.result.z, 3)
-        assert_equal(self.result.w, 99)
-        assert_equal(self.result.beta, 0.5)
-
-    def test_indexing(self):
-        assert_equal(self.result[0], 1)
-        assert_equal(self.result[1], 2)
-        assert_equal(self.result[2], 3)
-        assert_equal(self.result[-1], 3)
-        with pytest.raises(IndexError, match='index out of range'):
-            self.result[3]
-
-    def test_unpacking(self):
-        x0, y0, z0 = self.result
-        assert_equal((x0, y0, z0), (1, 2, 3))
-        assert_equal(self.result, (1, 2, 3))
-
-    def test_slice(self):
-        assert_equal(self.result[1:], (2, 3))
-        assert_equal(self.result[::2], (1, 3))
-        assert_equal(self.result[::-1], (3, 2, 1))
-
-    def test_len(self):
-        assert_equal(len(self.result), 3)
-
-    def test_repr(self):
-        s = repr(self.result)
-        assert_equal(s, 'Result(x=1, y=2, z=3, w=99, beta=0.5)')
-
-    def test_hash(self):
-        assert_equal(hash(self.result), hash((1, 2, 3)))
-
-    def test_pickle(self):
-        s = pickle.dumps(self.result)
-        obj = pickle.loads(s)
-        assert isinstance(obj, Result)
-        assert_equal(obj.x, self.result.x)
-        assert_equal(obj.y, self.result.y)
-        assert_equal(obj.z, self.result.z)
-        assert_equal(obj.w, self.result.w)
-        assert_equal(obj.beta, self.result.beta)
-
-    def test_read_only_existing(self):
-        with pytest.raises(AttributeError, match="can't set attribute"):
-            self.result.x = -1
-
-    def test_read_only_new(self):
-        self.result.plate_of_shrimp = "lattice of coincidence"
-        assert self.result.plate_of_shrimp == "lattice of coincidence"
-
-    def test_constructor_missing_parameter(self):
-        with pytest.raises(TypeError, match='missing'):
-            # `w` is missing.
-            Result(x=1, y=2, z=3, beta=0.75)
-
-    def test_constructor_incorrect_parameter(self):
-        with pytest.raises(TypeError, match='unexpected'):
-            # `foo` is not an existing field.
-            Result(x=1, y=2, z=3, w=123, beta=0.75, foo=999)
-
-    def test_module(self):
-        m = 'scipy._lib.tests.test_bunch'
-        assert_equal(Result.__module__, m)
-        assert_equal(self.result.__module__, m)
-
-    def test_extra_fields_per_instance(self):
-        # This test exists to ensure that instances of the same class
-        # store their own values for the extra fields. That is, the values
-        # are stored per instance and not in the class.
-        result1 = Result(x=1, y=2, z=3, w=-1, beta=0.0)
-        result2 = Result(x=4, y=5, z=6, w=99, beta=1.0)
-        assert_equal(result1.w, -1)
-        assert_equal(result1.beta, 0.0)
-        # The rest of these checks aren't essential, but let's check
-        # them anyway.
-        assert_equal(result1[:], (1, 2, 3))
-        assert_equal(result2.w, 99)
-        assert_equal(result2.beta, 1.0)
-        assert_equal(result2[:], (4, 5, 6))
-
-    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    # Other tests
-    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-    def test_extra_field_names_is_optional(self):
-        Square = _make_tuple_bunch('Square', ['width', 'height'])
-        sq = Square(width=1, height=2)
-        assert_equal(sq.width, 1)
-        assert_equal(sq.height, 2)
-        s = repr(sq)
-        assert_equal(s, 'Square(width=1, height=2)')
-
-    def test_tuple_like(self):
-        Tup = _make_tuple_bunch('Tup', ['a', 'b'])
-        tu = Tup(a=1, b=2)
-        assert isinstance(tu, tuple)
-        assert isinstance(tu + (1,), tuple)
-
-    def test_explicit_module(self):
-        m = 'some.module.name'
-        Foo = _make_tuple_bunch('Foo', ['x'], ['a', 'b'], module=m)
-        foo = Foo(x=1, a=355, b=113)
-        assert_equal(Foo.__module__, m)
-        assert_equal(foo.__module__, m)
-
-    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    # Argument validation
-    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-    @pytest.mark.parametrize('args', [('123', ['a'], ['b']),
-                                      ('Foo', ['-3'], ['x']),
-                                      ('Foo', ['a'], ['+-*/'])])
-    def test_identifiers_not_allowed(self, args):
-        with pytest.raises(ValueError, match='identifiers'):
-            _make_tuple_bunch(*args)
-
-    @pytest.mark.parametrize('args', [('Foo', ['a', 'b', 'a'], ['x']),
-                                      ('Foo', ['a', 'b'], ['b', 'x'])])
-    def test_repeated_field_names(self, args):
-        with pytest.raises(ValueError, match='Duplicate'):
-            _make_tuple_bunch(*args)
-
-    @pytest.mark.parametrize('args', [('Foo', ['_a'], ['x']),
-                                      ('Foo', ['a'], ['_x'])])
-    def test_leading_underscore_not_allowed(self, args):
-        with pytest.raises(ValueError, match='underscore'):
-            _make_tuple_bunch(*args)
-
-    @pytest.mark.parametrize('args', [('Foo', ['def'], ['x']),
-                                      ('Foo', ['a'], ['or']),
-                                      ('and', ['a'], ['x'])])
-    def test_keyword_not_allowed_in_fields(self, args):
-        with pytest.raises(ValueError, match='keyword'):
-            _make_tuple_bunch(*args)
-
-    def test_at_least_one_field_name_required(self):
-        with pytest.raises(ValueError, match='at least one name'):
-            _make_tuple_bunch('Qwerty', [], ['a', 'b'])
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_ccallback.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_ccallback.py
deleted file mode 100644
index 82021775c294c7b881b9458b57d16deaac483cc7..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_ccallback.py
+++ /dev/null
@@ -1,204 +0,0 @@
-from numpy.testing import assert_equal, assert_
-from pytest import raises as assert_raises
-
-import time
-import pytest
-import ctypes
-import threading
-from scipy._lib import _ccallback_c as _test_ccallback_cython
-from scipy._lib import _test_ccallback
-from scipy._lib._ccallback import LowLevelCallable
-
-try:
-    import cffi
-    HAVE_CFFI = True
-except ImportError:
-    HAVE_CFFI = False
-
-
-ERROR_VALUE = 2.0
-
-
-def callback_python(a, user_data=None):
-    if a == ERROR_VALUE:
-        raise ValueError("bad value")
-
-    if user_data is None:
-        return a + 1
-    else:
-        return a + user_data
-
-def _get_cffi_func(base, signature):
-    if not HAVE_CFFI:
-        pytest.skip("cffi not installed")
-
-    # Get function address
-    voidp = ctypes.cast(base, ctypes.c_void_p)
-    address = voidp.value
-
-    # Create corresponding cffi handle
-    ffi = cffi.FFI()
-    func = ffi.cast(signature, address)
-    return func
-
-
-def _get_ctypes_data():
-    value = ctypes.c_double(2.0)
-    return ctypes.cast(ctypes.pointer(value), ctypes.c_voidp)
-
-
-def _get_cffi_data():
-    if not HAVE_CFFI:
-        pytest.skip("cffi not installed")
-    ffi = cffi.FFI()
-    return ffi.new('double *', 2.0)
-
-
-CALLERS = {
-    'simple': _test_ccallback.test_call_simple,
-    'nodata': _test_ccallback.test_call_nodata,
-    'nonlocal': _test_ccallback.test_call_nonlocal,
-    'cython': _test_ccallback_cython.test_call_cython,
-}
-
-# These functions have signatures known to the callers
-FUNCS = {
-    'python': lambda: callback_python,
-    'capsule': lambda: _test_ccallback.test_get_plus1_capsule(),
-    'cython': lambda: LowLevelCallable.from_cython(_test_ccallback_cython,
-                                                   "plus1_cython"),
-    'ctypes': lambda: _test_ccallback_cython.plus1_ctypes,
-    'cffi': lambda: _get_cffi_func(_test_ccallback_cython.plus1_ctypes,
-                                   'double (*)(double, int *, void *)'),
-    'capsule_b': lambda: _test_ccallback.test_get_plus1b_capsule(),
-    'cython_b': lambda: LowLevelCallable.from_cython(_test_ccallback_cython,
-                                                     "plus1b_cython"),
-    'ctypes_b': lambda: _test_ccallback_cython.plus1b_ctypes,
-    'cffi_b': lambda: _get_cffi_func(_test_ccallback_cython.plus1b_ctypes,
-                                     'double (*)(double, double, int *, void *)'),
-}
-
-# These functions have signatures the callers don't know
-BAD_FUNCS = {
-    'capsule_bc': lambda: _test_ccallback.test_get_plus1bc_capsule(),
-    'cython_bc': lambda: LowLevelCallable.from_cython(_test_ccallback_cython,
-                                                      "plus1bc_cython"),
-    'ctypes_bc': lambda: _test_ccallback_cython.plus1bc_ctypes,
-    'cffi_bc': lambda: _get_cffi_func(
-        _test_ccallback_cython.plus1bc_ctypes,
-        'double (*)(double, double, double, int *, void *)'
-    ),
-}
-
-USER_DATAS = {
-    'ctypes': _get_ctypes_data,
-    'cffi': _get_cffi_data,
-    'capsule': _test_ccallback.test_get_data_capsule,
-}
-
-
-def test_callbacks():
-    def check(caller, func, user_data):
-        caller = CALLERS[caller]
-        func = FUNCS[func]()
-        user_data = USER_DATAS[user_data]()
-
-        if func is callback_python:
-            def func2(x):
-                return func(x, 2.0)
-        else:
-            func2 = LowLevelCallable(func, user_data)
-            func = LowLevelCallable(func)
-
-        # Test basic call
-        assert_equal(caller(func, 1.0), 2.0)
-
-        # Test 'bad' value resulting to an error
-        assert_raises(ValueError, caller, func, ERROR_VALUE)
-
-        # Test passing in user_data
-        assert_equal(caller(func2, 1.0), 3.0)
-
-    for caller in sorted(CALLERS.keys()):
-        for func in sorted(FUNCS.keys()):
-            for user_data in sorted(USER_DATAS.keys()):
-                check(caller, func, user_data)
-
-
-def test_bad_callbacks():
-    def check(caller, func, user_data):
-        caller = CALLERS[caller]
-        user_data = USER_DATAS[user_data]()
-        func = BAD_FUNCS[func]()
-
-        if func is callback_python:
-            def func2(x):
-                return func(x, 2.0)
-        else:
-            func2 = LowLevelCallable(func, user_data)
-            func = LowLevelCallable(func)
-
-        # Test that basic call fails
-        assert_raises(ValueError, caller, LowLevelCallable(func), 1.0)
-
-        # Test that passing in user_data also fails
-        assert_raises(ValueError, caller, func2, 1.0)
-
-        # Test error message
-        llfunc = LowLevelCallable(func)
-        try:
-            caller(llfunc, 1.0)
-        except ValueError as err:
-            msg = str(err)
-            assert_(llfunc.signature in msg, msg)
-            assert_('double (double, double, int *, void *)' in msg, msg)
-
-    for caller in sorted(CALLERS.keys()):
-        for func in sorted(BAD_FUNCS.keys()):
-            for user_data in sorted(USER_DATAS.keys()):
-                check(caller, func, user_data)
-
-
-def test_signature_override():
-    caller = _test_ccallback.test_call_simple
-    func = _test_ccallback.test_get_plus1_capsule()
-
-    llcallable = LowLevelCallable(func, signature="bad signature")
-    assert_equal(llcallable.signature, "bad signature")
-    assert_raises(ValueError, caller, llcallable, 3)
-
-    llcallable = LowLevelCallable(func, signature="double (double, int *, void *)")
-    assert_equal(llcallable.signature, "double (double, int *, void *)")
-    assert_equal(caller(llcallable, 3), 4)
-
-
-def test_threadsafety():
-    def callback(a, caller):
-        if a <= 0:
-            return 1
-        else:
-            res = caller(lambda x: callback(x, caller), a - 1)
-            return 2*res
-
-    def check(caller):
-        caller = CALLERS[caller]
-
-        results = []
-
-        count = 10
-
-        def run():
-            time.sleep(0.01)
-            r = caller(lambda x: callback(x, caller), count)
-            results.append(r)
-
-        threads = [threading.Thread(target=run) for j in range(20)]
-        for thread in threads:
-            thread.start()
-        for thread in threads:
-            thread.join()
-
-        assert_equal(results, [2.0**count]*len(threads))
-
-    for caller in CALLERS.keys():
-        check(caller)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_deprecation.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_deprecation.py
deleted file mode 100644
index 7910bd56f6b0c37276c9dff5a15cd3ddf755840e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_deprecation.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import pytest
-
-
-def test_cython_api_deprecation():
-    match = ("`scipy._lib._test_deprecation_def.foo_deprecated` "
-             "is deprecated, use `foo` instead!\n"
-             "Deprecated in Scipy 42.0.0")
-    with pytest.warns(DeprecationWarning, match=match):
-        from .. import _test_deprecation_call
-    assert _test_deprecation_call.call() == (1, 1)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_import_cycles.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_import_cycles.py
deleted file mode 100644
index 02177fec255ef514133466e7de701d3e7bf6fa1d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_import_cycles.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import pytest
-import sys
-import subprocess
-
-from .test_public_api import PUBLIC_MODULES
-
-# Regression tests for gh-6793.
-# Check that all modules are importable in a new Python process.
-# This is not necessarily true if there are import cycles present.
-
-@pytest.mark.fail_slow(20)
-@pytest.mark.slow
-def test_public_modules_importable():
-    pids = [subprocess.Popen([sys.executable, '-c', f'import {module}'])
-            for module in PUBLIC_MODULES]
-    for i, pid in enumerate(pids):
-        assert pid.wait() == 0, f'Failed to import {PUBLIC_MODULES[i]}'
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_public_api.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_public_api.py
deleted file mode 100644
index 0e789f9ccb33f3f78ea5d61a8a46fdc26a57e367..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_public_api.py
+++ /dev/null
@@ -1,496 +0,0 @@
-"""
-This test script is adopted from:
-    https://github.com/numpy/numpy/blob/main/numpy/tests/test_public_api.py
-"""
-
-import pkgutil
-import types
-import importlib
-import warnings
-from importlib import import_module
-
-import pytest
-
-import scipy
-
-from scipy.conftest import xp_available_backends
-
-
-def test_dir_testing():
-    """Assert that output of dir has only one "testing/tester"
-    attribute without duplicate"""
-    assert len(dir(scipy)) == len(set(dir(scipy)))
-
-
-# Historically SciPy has not used leading underscores for private submodules
-# much.  This has resulted in lots of things that look like public modules
-# (i.e. things that can be imported as `import scipy.somesubmodule.somefile`),
-# but were never intended to be public.  The PUBLIC_MODULES list contains
-# modules that are either public because they were meant to be, or because they
-# contain public functions/objects that aren't present in any other namespace
-# for whatever reason and therefore should be treated as public.
-PUBLIC_MODULES = ["scipy." + s for s in [
-    "cluster",
-    "cluster.vq",
-    "cluster.hierarchy",
-    "constants",
-    "datasets",
-    "fft",
-    "fftpack",
-    "integrate",
-    "interpolate",
-    "io",
-    "io.arff",
-    "io.matlab",
-    "io.wavfile",
-    "linalg",
-    "linalg.blas",
-    "linalg.cython_blas",
-    "linalg.lapack",
-    "linalg.cython_lapack",
-    "linalg.interpolative",
-    "misc",
-    "ndimage",
-    "odr",
-    "optimize",
-    "signal",
-    "signal.windows",
-    "sparse",
-    "sparse.linalg",
-    "sparse.csgraph",
-    "spatial",
-    "spatial.distance",
-    "spatial.transform",
-    "special",
-    "stats",
-    "stats.contingency",
-    "stats.distributions",
-    "stats.mstats",
-    "stats.qmc",
-    "stats.sampling"
-]]
-
-# The PRIVATE_BUT_PRESENT_MODULES list contains modules that lacked underscores
-# in their name and hence looked public, but weren't meant to be. All these
-# namespace were deprecated in the 1.8.0 release - see "clear split between
-# public and private API" in the 1.8.0 release notes.
-# These private modules support will be removed in SciPy v2.0.0, as the
-# deprecation messages emitted by each of these modules say.
-PRIVATE_BUT_PRESENT_MODULES = [
-    'scipy.constants.codata',
-    'scipy.constants.constants',
-    'scipy.fftpack.basic',
-    'scipy.fftpack.convolve',
-    'scipy.fftpack.helper',
-    'scipy.fftpack.pseudo_diffs',
-    'scipy.fftpack.realtransforms',
-    'scipy.integrate.dop',
-    'scipy.integrate.lsoda',
-    'scipy.integrate.odepack',
-    'scipy.integrate.quadpack',
-    'scipy.integrate.vode',
-    'scipy.interpolate.dfitpack',
-    'scipy.interpolate.fitpack',
-    'scipy.interpolate.fitpack2',
-    'scipy.interpolate.interpnd',
-    'scipy.interpolate.interpolate',
-    'scipy.interpolate.ndgriddata',
-    'scipy.interpolate.polyint',
-    'scipy.interpolate.rbf',
-    'scipy.io.arff.arffread',
-    'scipy.io.harwell_boeing',
-    'scipy.io.idl',
-    'scipy.io.matlab.byteordercodes',
-    'scipy.io.matlab.mio',
-    'scipy.io.matlab.mio4',
-    'scipy.io.matlab.mio5',
-    'scipy.io.matlab.mio5_params',
-    'scipy.io.matlab.mio5_utils',
-    'scipy.io.matlab.mio_utils',
-    'scipy.io.matlab.miobase',
-    'scipy.io.matlab.streams',
-    'scipy.io.mmio',
-    'scipy.io.netcdf',
-    'scipy.linalg.basic',
-    'scipy.linalg.decomp',
-    'scipy.linalg.decomp_cholesky',
-    'scipy.linalg.decomp_lu',
-    'scipy.linalg.decomp_qr',
-    'scipy.linalg.decomp_schur',
-    'scipy.linalg.decomp_svd',
-    'scipy.linalg.matfuncs',
-    'scipy.linalg.misc',
-    'scipy.linalg.special_matrices',
-    'scipy.misc.common',
-    'scipy.misc.doccer',
-    'scipy.ndimage.filters',
-    'scipy.ndimage.fourier',
-    'scipy.ndimage.interpolation',
-    'scipy.ndimage.measurements',
-    'scipy.ndimage.morphology',
-    'scipy.odr.models',
-    'scipy.odr.odrpack',
-    'scipy.optimize.cobyla',
-    'scipy.optimize.cython_optimize',
-    'scipy.optimize.lbfgsb',
-    'scipy.optimize.linesearch',
-    'scipy.optimize.minpack',
-    'scipy.optimize.minpack2',
-    'scipy.optimize.moduleTNC',
-    'scipy.optimize.nonlin',
-    'scipy.optimize.optimize',
-    'scipy.optimize.slsqp',
-    'scipy.optimize.tnc',
-    'scipy.optimize.zeros',
-    'scipy.signal.bsplines',
-    'scipy.signal.filter_design',
-    'scipy.signal.fir_filter_design',
-    'scipy.signal.lti_conversion',
-    'scipy.signal.ltisys',
-    'scipy.signal.signaltools',
-    'scipy.signal.spectral',
-    'scipy.signal.spline',
-    'scipy.signal.waveforms',
-    'scipy.signal.wavelets',
-    'scipy.signal.windows.windows',
-    'scipy.sparse.base',
-    'scipy.sparse.bsr',
-    'scipy.sparse.compressed',
-    'scipy.sparse.construct',
-    'scipy.sparse.coo',
-    'scipy.sparse.csc',
-    'scipy.sparse.csr',
-    'scipy.sparse.data',
-    'scipy.sparse.dia',
-    'scipy.sparse.dok',
-    'scipy.sparse.extract',
-    'scipy.sparse.lil',
-    'scipy.sparse.linalg.dsolve',
-    'scipy.sparse.linalg.eigen',
-    'scipy.sparse.linalg.interface',
-    'scipy.sparse.linalg.isolve',
-    'scipy.sparse.linalg.matfuncs',
-    'scipy.sparse.sparsetools',
-    'scipy.sparse.spfuncs',
-    'scipy.sparse.sputils',
-    'scipy.spatial.ckdtree',
-    'scipy.spatial.kdtree',
-    'scipy.spatial.qhull',
-    'scipy.spatial.transform.rotation',
-    'scipy.special.add_newdocs',
-    'scipy.special.basic',
-    'scipy.special.cython_special',
-    'scipy.special.orthogonal',
-    'scipy.special.sf_error',
-    'scipy.special.specfun',
-    'scipy.special.spfun_stats',
-    'scipy.stats.biasedurn',
-    'scipy.stats.kde',
-    'scipy.stats.morestats',
-    'scipy.stats.mstats_basic',
-    'scipy.stats.mstats_extras',
-    'scipy.stats.mvn',
-    'scipy.stats.stats',
-]
-
-
-def is_unexpected(name):
-    """Check if this needs to be considered."""
-    if '._' in name or '.tests' in name or '.setup' in name:
-        return False
-
-    if name in PUBLIC_MODULES:
-        return False
-
-    if name in PRIVATE_BUT_PRESENT_MODULES:
-        return False
-
-    return True
-
-
-SKIP_LIST = [
-    'scipy.conftest',
-    'scipy.version',
-    'scipy.special.libsf_error_state'
-]
-
-
-# XXX: this test does more than it says on the tin - in using `pkgutil.walk_packages`,
-# it will raise if it encounters any exceptions which are not handled by `ignore_errors`
-# while attempting to import each discovered package.
-# For now, `ignore_errors` only ignores what is necessary, but this could be expanded -
-# for example, to all errors from private modules or git subpackages - if desired.
-def test_all_modules_are_expected():
-    """
-    Test that we don't add anything that looks like a new public module by
-    accident.  Check is based on filenames.
-    """
-
-    def ignore_errors(name):
-        # if versions of other array libraries are installed which are incompatible
-        # with the installed NumPy version, there can be errors on importing
-        # `array_api_compat`. This should only raise if SciPy is configured with
-        # that library as an available backend.
-        backends = {'cupy': 'cupy',
-                    'pytorch': 'torch',
-                    'dask.array': 'dask.array'}
-        for backend, dir_name in backends.items():
-            path = f'array_api_compat.{dir_name}'
-            if path in name and backend not in xp_available_backends:
-                return
-        raise
-
-    modnames = []
-
-    for _, modname, _ in pkgutil.walk_packages(path=scipy.__path__,
-                                               prefix=scipy.__name__ + '.',
-                                               onerror=ignore_errors):
-        if is_unexpected(modname) and modname not in SKIP_LIST:
-            # We have a name that is new.  If that's on purpose, add it to
-            # PUBLIC_MODULES.  We don't expect to have to add anything to
-            # PRIVATE_BUT_PRESENT_MODULES.  Use an underscore in the name!
-            modnames.append(modname)
-
-    if modnames:
-        raise AssertionError(f'Found unexpected modules: {modnames}')
-
-
-# Stuff that clearly shouldn't be in the API and is detected by the next test
-# below
-SKIP_LIST_2 = [
-    'scipy.char',
-    'scipy.rec',
-    'scipy.emath',
-    'scipy.math',
-    'scipy.random',
-    'scipy.ctypeslib',
-    'scipy.ma'
-]
-
-
-def test_all_modules_are_expected_2():
-    """
-    Method checking all objects. The pkgutil-based method in
-    `test_all_modules_are_expected` does not catch imports into a namespace,
-    only filenames.
-    """
-
-    def find_unexpected_members(mod_name):
-        members = []
-        module = importlib.import_module(mod_name)
-        if hasattr(module, '__all__'):
-            objnames = module.__all__
-        else:
-            objnames = dir(module)
-
-        for objname in objnames:
-            if not objname.startswith('_'):
-                fullobjname = mod_name + '.' + objname
-                if isinstance(getattr(module, objname), types.ModuleType):
-                    if is_unexpected(fullobjname) and fullobjname not in SKIP_LIST_2:
-                        members.append(fullobjname)
-
-        return members
-
-    unexpected_members = find_unexpected_members("scipy")
-    for modname in PUBLIC_MODULES:
-        unexpected_members.extend(find_unexpected_members(modname))
-
-    if unexpected_members:
-        raise AssertionError("Found unexpected object(s) that look like "
-                             f"modules: {unexpected_members}")
-
-
-def test_api_importable():
-    """
-    Check that all submodules listed higher up in this file can be imported
-    Note that if a PRIVATE_BUT_PRESENT_MODULES entry goes missing, it may
-    simply need to be removed from the list (deprecation may or may not be
-    needed - apply common sense).
-    """
-    def check_importable(module_name):
-        try:
-            importlib.import_module(module_name)
-        except (ImportError, AttributeError):
-            return False
-
-        return True
-
-    module_names = []
-    for module_name in PUBLIC_MODULES:
-        if not check_importable(module_name):
-            module_names.append(module_name)
-
-    if module_names:
-        raise AssertionError("Modules in the public API that cannot be "
-                             f"imported: {module_names}")
-
-    with warnings.catch_warnings(record=True):
-        warnings.filterwarnings('always', category=DeprecationWarning)
-        warnings.filterwarnings('always', category=ImportWarning)
-        for module_name in PRIVATE_BUT_PRESENT_MODULES:
-            if not check_importable(module_name):
-                module_names.append(module_name)
-
-    if module_names:
-        raise AssertionError("Modules that are not really public but looked "
-                             "public and can not be imported: "
-                             f"{module_names}")
-
-
-@pytest.mark.parametrize(("module_name", "correct_module"),
-                         [('scipy.constants.codata', None),
-                          ('scipy.constants.constants', None),
-                          ('scipy.fftpack.basic', None),
-                          ('scipy.fftpack.helper', None),
-                          ('scipy.fftpack.pseudo_diffs', None),
-                          ('scipy.fftpack.realtransforms', None),
-                          ('scipy.integrate.dop', None),
-                          ('scipy.integrate.lsoda', None),
-                          ('scipy.integrate.odepack', None),
-                          ('scipy.integrate.quadpack', None),
-                          ('scipy.integrate.vode', None),
-                          ('scipy.interpolate.fitpack', None),
-                          ('scipy.interpolate.fitpack2', None),
-                          ('scipy.interpolate.interpolate', None),
-                          ('scipy.interpolate.ndgriddata', None),
-                          ('scipy.interpolate.polyint', None),
-                          ('scipy.interpolate.rbf', None),
-                          ('scipy.io.harwell_boeing', None),
-                          ('scipy.io.idl', None),
-                          ('scipy.io.mmio', None),
-                          ('scipy.io.netcdf', None),
-                          ('scipy.io.arff.arffread', 'arff'),
-                          ('scipy.io.matlab.byteordercodes', 'matlab'),
-                          ('scipy.io.matlab.mio_utils', 'matlab'),
-                          ('scipy.io.matlab.mio', 'matlab'),
-                          ('scipy.io.matlab.mio4', 'matlab'),
-                          ('scipy.io.matlab.mio5_params', 'matlab'),
-                          ('scipy.io.matlab.mio5_utils', 'matlab'),
-                          ('scipy.io.matlab.mio5', 'matlab'),
-                          ('scipy.io.matlab.miobase', 'matlab'),
-                          ('scipy.io.matlab.streams', 'matlab'),
-                          ('scipy.linalg.basic', None),
-                          ('scipy.linalg.decomp', None),
-                          ('scipy.linalg.decomp_cholesky', None),
-                          ('scipy.linalg.decomp_lu', None),
-                          ('scipy.linalg.decomp_qr', None),
-                          ('scipy.linalg.decomp_schur', None),
-                          ('scipy.linalg.decomp_svd', None),
-                          ('scipy.linalg.matfuncs', None),
-                          ('scipy.linalg.misc', None),
-                          ('scipy.linalg.special_matrices', None),
-                          ('scipy.misc.common', None),
-                          ('scipy.ndimage.filters', None),
-                          ('scipy.ndimage.fourier', None),
-                          ('scipy.ndimage.interpolation', None),
-                          ('scipy.ndimage.measurements', None),
-                          ('scipy.ndimage.morphology', None),
-                          ('scipy.odr.models', None),
-                          ('scipy.odr.odrpack', None),
-                          ('scipy.optimize.cobyla', None),
-                          ('scipy.optimize.lbfgsb', None),
-                          ('scipy.optimize.linesearch', None),
-                          ('scipy.optimize.minpack', None),
-                          ('scipy.optimize.minpack2', None),
-                          ('scipy.optimize.moduleTNC', None),
-                          ('scipy.optimize.nonlin', None),
-                          ('scipy.optimize.optimize', None),
-                          ('scipy.optimize.slsqp', None),
-                          ('scipy.optimize.tnc', None),
-                          ('scipy.optimize.zeros', None),
-                          ('scipy.signal.bsplines', None),
-                          ('scipy.signal.filter_design', None),
-                          ('scipy.signal.fir_filter_design', None),
-                          ('scipy.signal.lti_conversion', None),
-                          ('scipy.signal.ltisys', None),
-                          ('scipy.signal.signaltools', None),
-                          ('scipy.signal.spectral', None),
-                          ('scipy.signal.waveforms', None),
-                          ('scipy.signal.wavelets', None),
-                          ('scipy.signal.windows.windows', 'windows'),
-                          ('scipy.sparse.lil', None),
-                          ('scipy.sparse.linalg.dsolve', 'linalg'),
-                          ('scipy.sparse.linalg.eigen', 'linalg'),
-                          ('scipy.sparse.linalg.interface', 'linalg'),
-                          ('scipy.sparse.linalg.isolve', 'linalg'),
-                          ('scipy.sparse.linalg.matfuncs', 'linalg'),
-                          ('scipy.sparse.sparsetools', None),
-                          ('scipy.sparse.spfuncs', None),
-                          ('scipy.sparse.sputils', None),
-                          ('scipy.spatial.ckdtree', None),
-                          ('scipy.spatial.kdtree', None),
-                          ('scipy.spatial.qhull', None),
-                          ('scipy.spatial.transform.rotation', 'transform'),
-                          ('scipy.special.add_newdocs', None),
-                          ('scipy.special.basic', None),
-                          ('scipy.special.orthogonal', None),
-                          ('scipy.special.sf_error', None),
-                          ('scipy.special.specfun', None),
-                          ('scipy.special.spfun_stats', None),
-                          ('scipy.stats.biasedurn', None),
-                          ('scipy.stats.kde', None),
-                          ('scipy.stats.morestats', None),
-                          ('scipy.stats.mstats_basic', 'mstats'),
-                          ('scipy.stats.mstats_extras', 'mstats'),
-                          ('scipy.stats.mvn', None),
-                          ('scipy.stats.stats', None)])
-def test_private_but_present_deprecation(module_name, correct_module):
-    # gh-18279, gh-17572, gh-17771 noted that deprecation warnings
-    # for imports from private modules
-    # were misleading. Check that this is resolved.
-    module = import_module(module_name)
-    if correct_module is None:
-        import_name = f'scipy.{module_name.split(".")[1]}'
-    else:
-        import_name = f'scipy.{module_name.split(".")[1]}.{correct_module}'
-
-    correct_import = import_module(import_name)
-
-    # Attributes that were formerly in `module_name` can still be imported from
-    # `module_name`, albeit with a deprecation warning.
-    for attr_name in module.__all__:
-        if attr_name == "varmats_from_mat":
-            # defer handling this case, see
-            # https://github.com/scipy/scipy/issues/19223
-            continue
-        # ensure attribute is present where the warning is pointing
-        assert getattr(correct_import, attr_name, None) is not None
-        message = f"Please import `{attr_name}` from the `{import_name}`..."
-        with pytest.deprecated_call(match=message):
-            getattr(module, attr_name)
-
-    # Attributes that were not in `module_name` get an error notifying the user
-    # that the attribute is not in `module_name` and that `module_name` is deprecated.
-    message = f"`{module_name}` is deprecated..."
-    with pytest.raises(AttributeError, match=message):
-        getattr(module, "ekki")
-
-
-def test_misc_doccer_deprecation():
-    # gh-18279, gh-17572, gh-17771 noted that deprecation warnings
-    # for imports from private modules were misleading.
-    # Check that this is resolved.
-    # `test_private_but_present_deprecation` cannot be used since `correct_import`
-    # is a different subpackage (`_lib` instead of `misc`).
-    module = import_module('scipy.misc.doccer')
-    correct_import = import_module('scipy._lib.doccer')
-
-    # Attributes that were formerly in `scipy.misc.doccer` can still be imported from
-    # `scipy.misc.doccer`, albeit with a deprecation warning. The specific message
-    # depends on whether the attribute is in `scipy._lib.doccer` or not.
-    for attr_name in module.__all__:
-        attr = getattr(correct_import, attr_name, None)
-        if attr is None:
-            message = f"`scipy.misc.{attr_name}` is deprecated..."
-        else:
-            message = f"Please import `{attr_name}` from the `scipy._lib.doccer`..."
-        with pytest.deprecated_call(match=message):
-            getattr(module, attr_name)
-
-    # Attributes that were not in `scipy.misc.doccer` get an error
-    # notifying the user that the attribute is not in `scipy.misc.doccer` 
-    # and that `scipy.misc.doccer` is deprecated.
-    message = "`scipy.misc.doccer` is deprecated..."
-    with pytest.raises(AttributeError, match=message):
-        getattr(module, "ekki")
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_scipy_version.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_scipy_version.py
deleted file mode 100644
index 21f0e8e26aad7500fee2fec9e845d5cf6caea4c6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_scipy_version.py
+++ /dev/null
@@ -1,18 +0,0 @@
-import re
-
-import scipy
-from numpy.testing import assert_
-
-
-def test_valid_scipy_version():
-    # Verify that the SciPy version is a valid one (no .post suffix or other
-    # nonsense). See NumPy issue gh-6431 for an issue caused by an invalid
-    # version.
-    version_pattern = r"^[0-9]+\.[0-9]+\.[0-9]+(|a[0-9]|b[0-9]|rc[0-9])"
-    dev_suffix = r"(\.dev0\+.+([0-9a-f]{7}|Unknown))"
-    if scipy.version.release:
-        res = re.match(version_pattern, scipy.__version__)
-    else:
-        res = re.match(version_pattern + dev_suffix, scipy.__version__)
-
-    assert_(res is not None, scipy.__version__)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_tmpdirs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_tmpdirs.py
deleted file mode 100644
index 734f42b32f8124924a7243b188f903eca40401e9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_tmpdirs.py
+++ /dev/null
@@ -1,42 +0,0 @@
-""" Test tmpdirs module """
-from os import getcwd
-from os.path import realpath, abspath, dirname, isfile, join as pjoin, exists
-
-from scipy._lib._tmpdirs import tempdir, in_tempdir, in_dir
-
-from numpy.testing import assert_, assert_equal
-
-MY_PATH = abspath(__file__)
-MY_DIR = dirname(MY_PATH)
-
-
-def test_tempdir():
-    with tempdir() as tmpdir:
-        fname = pjoin(tmpdir, 'example_file.txt')
-        with open(fname, "w") as fobj:
-            fobj.write('a string\\n')
-    assert_(not exists(tmpdir))
-
-
-def test_in_tempdir():
-    my_cwd = getcwd()
-    with in_tempdir() as tmpdir:
-        with open('test.txt', "w") as f:
-            f.write('some text')
-        assert_(isfile('test.txt'))
-        assert_(isfile(pjoin(tmpdir, 'test.txt')))
-    assert_(not exists(tmpdir))
-    assert_equal(getcwd(), my_cwd)
-
-
-def test_given_directory():
-    # Test InGivenDirectory
-    cwd = getcwd()
-    with in_dir() as tmpdir:
-        assert_equal(tmpdir, abspath(cwd))
-        assert_equal(tmpdir, abspath(getcwd()))
-    with in_dir(MY_DIR) as tmpdir:
-        assert_equal(tmpdir, MY_DIR)
-        assert_equal(realpath(MY_DIR), realpath(abspath(getcwd())))
-    # We were deleting the given directory! Check not so now.
-    assert_(isfile(MY_PATH))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_warnings.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_warnings.py
deleted file mode 100644
index 570ea017a8f1b4db9eb67ef9e931ef15f0c39bd1..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/tests/test_warnings.py
+++ /dev/null
@@ -1,135 +0,0 @@
-"""
-Tests which scan for certain occurrences in the code, they may not find
-all of these occurrences but should catch almost all. This file was adapted
-from NumPy.
-"""
-
-
-import os
-from pathlib import Path
-import ast
-import tokenize
-
-import scipy
-
-import pytest
-
-
-class ParseCall(ast.NodeVisitor):
-    def __init__(self):
-        self.ls = []
-
-    def visit_Attribute(self, node):
-        ast.NodeVisitor.generic_visit(self, node)
-        self.ls.append(node.attr)
-
-    def visit_Name(self, node):
-        self.ls.append(node.id)
-
-
-class FindFuncs(ast.NodeVisitor):
-    def __init__(self, filename):
-        super().__init__()
-        self.__filename = filename
-        self.bad_filters = []
-        self.bad_stacklevels = []
-
-    def visit_Call(self, node):
-        p = ParseCall()
-        p.visit(node.func)
-        ast.NodeVisitor.generic_visit(self, node)
-
-        if p.ls[-1] == 'simplefilter' or p.ls[-1] == 'filterwarnings':
-            # get first argument of the `args` node of the filter call
-            match node.args[0]:
-                case ast.Constant() as c:
-                    argtext = c.value
-                case ast.JoinedStr() as js:
-                    # if we get an f-string, discard the templated pieces, which
-                    # are likely the type or specific message; we're interested
-                    # in the action, which is less likely to use a template
-                    argtext = "".join(
-                        x.value for x in js.values if isinstance(x, ast.Constant)
-                    )
-                case _:
-                    raise ValueError("unknown ast node type")
-            # check if filter is set to ignore
-            if argtext == "ignore":
-                self.bad_filters.append(
-                    f"{self.__filename}:{node.lineno}")
-
-        if p.ls[-1] == 'warn' and (
-                len(p.ls) == 1 or p.ls[-2] == 'warnings'):
-
-            if self.__filename == "_lib/tests/test_warnings.py":
-                # This file
-                return
-
-            # See if stacklevel exists:
-            if len(node.args) == 3:
-                return
-            args = {kw.arg for kw in node.keywords}
-            if "stacklevel" not in args:
-                self.bad_stacklevels.append(
-                    f"{self.__filename}:{node.lineno}")
-
-
-@pytest.fixture(scope="session")
-def warning_calls():
-    # combined "ignore" and stacklevel error
-    base = Path(scipy.__file__).parent
-
-    bad_filters = []
-    bad_stacklevels = []
-
-    for path in base.rglob("*.py"):
-        # use tokenize to auto-detect encoding on systems where no
-        # default encoding is defined (e.g., LANG='C')
-        with tokenize.open(str(path)) as file:
-            tree = ast.parse(file.read(), filename=str(path))
-            finder = FindFuncs(path.relative_to(base))
-            finder.visit(tree)
-            bad_filters.extend(finder.bad_filters)
-            bad_stacklevels.extend(finder.bad_stacklevels)
-
-    return bad_filters, bad_stacklevels
-
-
-@pytest.mark.fail_slow(20)
-@pytest.mark.slow
-def test_warning_calls_filters(warning_calls):
-    bad_filters, bad_stacklevels = warning_calls
-
-    # We try not to add filters in the code base, because those filters aren't
-    # thread-safe. We aim to only filter in tests with
-    # np.testing.suppress_warnings. However, in some cases it may prove
-    # necessary to filter out warnings, because we can't (easily) fix the root
-    # cause for them and we don't want users to see some warnings when they use
-    # SciPy correctly. So we list exceptions here.  Add new entries only if
-    # there's a good reason.
-    allowed_filters = (
-        os.path.join('datasets', '_fetchers.py'),
-        os.path.join('datasets', '__init__.py'),
-        os.path.join('optimize', '_optimize.py'),
-        os.path.join('optimize', '_constraints.py'),
-        os.path.join('optimize', '_nnls.py'),
-        os.path.join('signal', '_ltisys.py'),
-        os.path.join('sparse', '__init__.py'),  # np.matrix pending-deprecation
-        os.path.join('stats', '_discrete_distns.py'),  # gh-14901
-        os.path.join('stats', '_continuous_distns.py'),
-        os.path.join('stats', '_binned_statistic.py'),  # gh-19345
-        os.path.join('stats', 'tests', 'test_axis_nan_policy.py'),  # gh-20694
-        os.path.join('_lib', '_util.py'),  # gh-19341
-        os.path.join('sparse', 'linalg', '_dsolve', 'linsolve.py'), # gh-17924
-        "conftest.py",
-    )
-    bad_filters = [item for item in bad_filters if item.split(':')[0] not in
-                   allowed_filters]
-
-    if bad_filters:
-        raise AssertionError(
-            "warning ignore filter should not be used, instead, use\n"
-            "numpy.testing.suppress_warnings (in tests only);\n"
-            "found in:\n    {}".format(
-                "\n    ".join(bad_filters)))
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/uarray.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/uarray.py
deleted file mode 100644
index b29fc713efb3e836cc179ac87ce41f87b51870ef..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/_lib/uarray.py
+++ /dev/null
@@ -1,31 +0,0 @@
-"""`uarray` provides functions for generating multimethods that dispatch to
-multiple different backends
-
-This should be imported, rather than `_uarray` so that an installed version could
-be used instead, if available. This means that users can call
-`uarray.set_backend` directly instead of going through SciPy.
-
-"""
-
-
-# Prefer an installed version of uarray, if available
-try:
-    import uarray as _uarray
-except ImportError:
-    _has_uarray = False
-else:
-    from scipy._lib._pep440 import Version as _Version
-
-    _has_uarray = _Version(_uarray.__version__) >= _Version("0.8")
-    del _uarray
-    del _Version
-
-
-if _has_uarray:
-    from uarray import *  # noqa: F403
-    from uarray import _Function
-else:
-    from ._uarray import *  # noqa: F403
-    from ._uarray import _Function  # noqa: F401
-
-del _has_uarray
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/conftest.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/conftest.py
deleted file mode 100644
index 084c29a8ef24374d9e93898bbf47ba82fcc3541d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/conftest.py
+++ /dev/null
@@ -1,413 +0,0 @@
-# Pytest customization
-import json
-import os
-import warnings
-import tempfile
-from contextlib import contextmanager
-
-import numpy as np
-import numpy.testing as npt
-import pytest
-import hypothesis
-
-from scipy._lib._fpumode import get_fpu_mode
-from scipy._lib._testutils import FPUModeChangeWarning
-from scipy._lib._array_api import SCIPY_ARRAY_API, SCIPY_DEVICE
-from scipy._lib import _pep440
-
-try:
-    from scipy_doctest.conftest import dt_config
-    HAVE_SCPDT = True
-except ModuleNotFoundError:
-    HAVE_SCPDT = False
-
-
-def pytest_configure(config):
-    config.addinivalue_line("markers",
-        "slow: Tests that are very slow.")
-    config.addinivalue_line("markers",
-        "xslow: mark test as extremely slow (not run unless explicitly requested)")
-    config.addinivalue_line("markers",
-        "xfail_on_32bit: mark test as failing on 32-bit platforms")
-    try:
-        import pytest_timeout  # noqa:F401
-    except Exception:
-        config.addinivalue_line(
-            "markers", 'timeout: mark a test for a non-default timeout')
-    try:
-        # This is a more reliable test of whether pytest_fail_slow is installed
-        # When I uninstalled it, `import pytest_fail_slow` didn't fail!
-        from pytest_fail_slow import parse_duration  # type: ignore[import-not-found] # noqa:F401,E501
-    except Exception:
-        config.addinivalue_line(
-            "markers", 'fail_slow: mark a test for a non-default timeout failure')
-    config.addinivalue_line("markers",
-        "skip_xp_backends(*backends, reasons=None, np_only=False, cpu_only=False): "
-        "mark the desired skip configuration for the `skip_xp_backends` fixture.")
-
-
-def pytest_runtest_setup(item):
-    mark = item.get_closest_marker("xslow")
-    if mark is not None:
-        try:
-            v = int(os.environ.get('SCIPY_XSLOW', '0'))
-        except ValueError:
-            v = False
-        if not v:
-            pytest.skip("very slow test; "
-                        "set environment variable SCIPY_XSLOW=1 to run it")
-    mark = item.get_closest_marker("xfail_on_32bit")
-    if mark is not None and np.intp(0).itemsize < 8:
-        pytest.xfail(f'Fails on our 32-bit test platform(s): {mark.args[0]}')
-
-    # Older versions of threadpoolctl have an issue that may lead to this
-    # warning being emitted, see gh-14441
-    with npt.suppress_warnings() as sup:
-        sup.filter(pytest.PytestUnraisableExceptionWarning)
-
-        try:
-            from threadpoolctl import threadpool_limits
-
-            HAS_THREADPOOLCTL = True
-        except Exception:  # observed in gh-14441: (ImportError, AttributeError)
-            # Optional dependency only. All exceptions are caught, for robustness
-            HAS_THREADPOOLCTL = False
-
-        if HAS_THREADPOOLCTL:
-            # Set the number of openmp threads based on the number of workers
-            # xdist is using to prevent oversubscription. Simplified version of what
-            # sklearn does (it can rely on threadpoolctl and its builtin OpenMP helper
-            # functions)
-            try:
-                xdist_worker_count = int(os.environ['PYTEST_XDIST_WORKER_COUNT'])
-            except KeyError:
-                # raises when pytest-xdist is not installed
-                return
-
-            if not os.getenv('OMP_NUM_THREADS'):
-                max_openmp_threads = os.cpu_count() // 2  # use nr of physical cores
-                threads_per_worker = max(max_openmp_threads // xdist_worker_count, 1)
-                try:
-                    threadpool_limits(threads_per_worker, user_api='blas')
-                except Exception:
-                    # May raise AttributeError for older versions of OpenBLAS.
-                    # Catch any error for robustness.
-                    return
-
-
-@pytest.fixture(scope="function", autouse=True)
-def check_fpu_mode(request):
-    """
-    Check FPU mode was not changed during the test.
-    """
-    old_mode = get_fpu_mode()
-    yield
-    new_mode = get_fpu_mode()
-
-    if old_mode != new_mode:
-        warnings.warn(f"FPU mode changed from {old_mode:#x} to {new_mode:#x} during "
-                      "the test",
-                      category=FPUModeChangeWarning, stacklevel=0)
-
-
-# Array API backend handling
-xp_available_backends = {'numpy': np}
-
-if SCIPY_ARRAY_API and isinstance(SCIPY_ARRAY_API, str):
-    # fill the dict of backends with available libraries
-    try:
-        import array_api_strict
-        xp_available_backends.update({'array_api_strict': array_api_strict})
-        if _pep440.parse(array_api_strict.__version__) < _pep440.Version('2.0'):
-            raise ImportError("array-api-strict must be >= version 2.0")
-        array_api_strict.set_array_api_strict_flags(
-            api_version='2023.12'
-        )
-    except ImportError:
-        pass
-
-    try:
-        import torch  # type: ignore[import-not-found]
-        xp_available_backends.update({'pytorch': torch})
-        # can use `mps` or `cpu`
-        torch.set_default_device(SCIPY_DEVICE)
-    except ImportError:
-        pass
-
-    try:
-        import cupy  # type: ignore[import-not-found]
-        xp_available_backends.update({'cupy': cupy})
-    except ImportError:
-        pass
-
-    try:
-        import jax.numpy  # type: ignore[import-not-found]
-        xp_available_backends.update({'jax.numpy': jax.numpy})
-        jax.config.update("jax_enable_x64", True)
-        jax.config.update("jax_default_device", jax.devices(SCIPY_DEVICE)[0])
-    except ImportError:
-        pass
-
-    # by default, use all available backends
-    if SCIPY_ARRAY_API.lower() not in ("1", "true"):
-        SCIPY_ARRAY_API_ = json.loads(SCIPY_ARRAY_API)
-
-        if 'all' in SCIPY_ARRAY_API_:
-            pass  # same as True
-        else:
-            # only select a subset of backend by filtering out the dict
-            try:
-                xp_available_backends = {
-                    backend: xp_available_backends[backend]
-                    for backend in SCIPY_ARRAY_API_
-                }
-            except KeyError:
-                msg = f"'--array-api-backend' must be in {xp_available_backends.keys()}"
-                raise ValueError(msg)
-
-if 'cupy' in xp_available_backends:
-    SCIPY_DEVICE = 'cuda'
-
-array_api_compatible = pytest.mark.parametrize("xp", xp_available_backends.values())
-
-skip_xp_invalid_arg = pytest.mark.skipif(SCIPY_ARRAY_API,
-    reason = ('Test involves masked arrays, object arrays, or other types '
-              'that are not valid input when `SCIPY_ARRAY_API` is used.'))
-
-
-@pytest.fixture
-def skip_xp_backends(xp, request):
-    """
-    Skip based on the ``skip_xp_backends`` marker.
-
-    Parameters
-    ----------
-    *backends : tuple
-        Backends to skip, e.g. ``("array_api_strict", "torch")``.
-        These are overriden when ``np_only`` is ``True``, and are not
-        necessary to provide for non-CPU backends when ``cpu_only`` is ``True``.
-    reasons : list, optional
-        A list of reasons for each skip. When ``np_only`` is ``True``,
-        this should be a singleton list. Otherwise, this should be a list
-        of reasons, one for each corresponding backend in ``backends``.
-        If unprovided, default reasons are used. Note that it is not possible
-        to specify a custom reason with ``cpu_only``. Default: ``None``.
-    np_only : bool, optional
-        When ``True``, the test is skipped for all backends other
-        than the default NumPy backend. There is no need to provide
-        any ``backends`` in this case. To specify a reason, pass a
-        singleton list to ``reasons``. Default: ``False``.
-    cpu_only : bool, optional
-        When ``True``, the test is skipped on non-CPU devices.
-        There is no need to provide any ``backends`` in this case,
-        but any ``backends`` will also be skipped on the CPU.
-        Default: ``False``.
-    """
-    if "skip_xp_backends" not in request.keywords:
-        return
-    backends = request.keywords["skip_xp_backends"].args
-    kwargs = request.keywords["skip_xp_backends"].kwargs
-    np_only = kwargs.get("np_only", False)
-    cpu_only = kwargs.get("cpu_only", False)
-    if np_only:
-        reasons = kwargs.get("reasons", ["do not run with non-NumPy backends."])
-        reason = reasons[0]
-        if xp.__name__ != 'numpy':
-            pytest.skip(reason=reason)
-        return
-    if cpu_only:
-        reason = "do not run with `SCIPY_ARRAY_API` set and not on CPU"
-        if SCIPY_ARRAY_API and SCIPY_DEVICE != 'cpu':
-            if xp.__name__ == 'cupy':
-                pytest.skip(reason=reason)
-            elif xp.__name__ == 'torch':
-                if 'cpu' not in xp.empty(0).device.type:
-                    pytest.skip(reason=reason)
-            elif xp.__name__ == 'jax.numpy':
-                for d in xp.empty(0).devices():
-                    if 'cpu' not in d.device_kind:
-                        pytest.skip(reason=reason)
-
-    if backends is not None:
-        reasons = kwargs.get("reasons", False)
-        for i, backend in enumerate(backends):
-            if xp.__name__ == backend:
-                if not reasons:
-                    reason = f"do not run with array API backend: {backend}"
-                else:
-                    reason = reasons[i]
-                pytest.skip(reason=reason)
-
-
-# Following the approach of NumPy's conftest.py...
-# Use a known and persistent tmpdir for hypothesis' caches, which
-# can be automatically cleared by the OS or user.
-hypothesis.configuration.set_hypothesis_home_dir(
-    os.path.join(tempfile.gettempdir(), ".hypothesis")
-)
-
-# We register two custom profiles for SciPy - for details see
-# https://hypothesis.readthedocs.io/en/latest/settings.html
-# The first is designed for our own CI runs; the latter also
-# forces determinism and is designed for use via scipy.test()
-hypothesis.settings.register_profile(
-    name="nondeterministic", deadline=None, print_blob=True,
-)
-hypothesis.settings.register_profile(
-    name="deterministic",
-    deadline=None, print_blob=True, database=None, derandomize=True,
-    suppress_health_check=list(hypothesis.HealthCheck),
-)
-
-# Profile is currently set by environment variable `SCIPY_HYPOTHESIS_PROFILE`
-# In the future, it would be good to work the choice into dev.py.
-SCIPY_HYPOTHESIS_PROFILE = os.environ.get("SCIPY_HYPOTHESIS_PROFILE",
-                                          "deterministic")
-hypothesis.settings.load_profile(SCIPY_HYPOTHESIS_PROFILE)
-
-
-############################################################################
-# doctesting stuff
-
-if HAVE_SCPDT:
-
-    # FIXME: populate the dict once
-    @contextmanager
-    def warnings_errors_and_rng(test=None):
-        """Temporarily turn (almost) all warnings to errors.
-
-        Filter out known warnings which we allow.
-        """
-        known_warnings = dict()
-
-        # these functions are known to emit "divide by zero" RuntimeWarnings
-        divide_by_zero = [
-            'scipy.linalg.norm', 'scipy.ndimage.center_of_mass',
-        ]
-        for name in divide_by_zero:
-            known_warnings[name] = dict(category=RuntimeWarning,
-                                        message='divide by zero')
-
-        # Deprecated stuff in scipy.signal and elsewhere
-        deprecated = [
-            'scipy.signal.cwt', 'scipy.signal.morlet', 'scipy.signal.morlet2',
-            'scipy.signal.ricker',
-            'scipy.integrate.simpson',
-            'scipy.interpolate.interp2d',
-        ]
-        for name in deprecated:
-            known_warnings[name] = dict(category=DeprecationWarning)
-
-        from scipy import integrate
-        # the funcions are known to emit IntergrationWarnings
-        integration_w = ['scipy.special.ellip_normal',
-                         'scipy.special.ellip_harm_2',
-        ]
-        for name in integration_w:
-            known_warnings[name] = dict(category=integrate.IntegrationWarning,
-                                        message='The occurrence of roundoff')
-
-        # scipy.stats deliberately emits UserWarnings sometimes
-        user_w = ['scipy.stats.anderson_ksamp', 'scipy.stats.kurtosistest',
-                  'scipy.stats.normaltest', 'scipy.sparse.linalg.norm']
-        for name in user_w:
-            known_warnings[name] = dict(category=UserWarning)
-
-        # additional one-off warnings to filter
-        dct = {
-            'scipy.sparse.linalg.norm':
-                dict(category=UserWarning, message="Exited at iteration"),
-            # tutorials
-            'linalg.rst':
-                dict(message='the matrix subclass is not',
-                     category=PendingDeprecationWarning),
-            'stats.rst':
-                dict(message='The maximum number of subdivisions',
-                     category=integrate.IntegrationWarning),
-        }
-        known_warnings.update(dct)
-
-        # these legitimately emit warnings in examples
-        legit = set('scipy.signal.normalize')
-
-        # Now, the meat of the matter: filter warnings,
-        # also control the random seed for each doctest.
-
-        # XXX: this matches the refguide-check behavior, but is a tad strange:
-        # makes sure that the seed the old-fashioned np.random* methods is
-        # *NOT* reproducible but the new-style `default_rng()` *IS* repoducible.
-        # Should these two be either both repro or both not repro?
-
-        from scipy._lib._util import _fixed_default_rng
-        import numpy as np
-        with _fixed_default_rng():
-            np.random.seed(None)
-            with warnings.catch_warnings():
-                if test and test.name in known_warnings:
-                    warnings.filterwarnings('ignore',
-                                            **known_warnings[test.name])
-                    yield
-                elif test and test.name in legit:
-                    yield
-                else:
-                    warnings.simplefilter('error', Warning)
-                    yield
-
-
-    dt_config.user_context_mgr = warnings_errors_and_rng
-    dt_config.skiplist = set([
-        'scipy.linalg.LinAlgError',     # comes from numpy
-        'scipy.fftpack.fftshift',       # fftpack stuff is also from numpy
-        'scipy.fftpack.ifftshift',
-        'scipy.fftpack.fftfreq',
-        'scipy.special.sinc',           # sinc is from numpy
-        'scipy.optimize.show_options',  # does not have much to doctest
-        'scipy.signal.normalize',       # manipulates warnings (XXX temp skip)
-        'scipy.sparse.linalg.norm',     # XXX temp skip
-    ])
-
-    # these are affected by NumPy 2.0 scalar repr: rely on string comparison
-    if np.__version__ < "2":
-        dt_config.skiplist.update(set([
-            'scipy.io.hb_read',
-            'scipy.io.hb_write',
-            'scipy.sparse.csgraph.connected_components',
-            'scipy.sparse.csgraph.depth_first_order',
-            'scipy.sparse.csgraph.shortest_path',
-            'scipy.sparse.csgraph.floyd_warshall',
-            'scipy.sparse.csgraph.dijkstra',
-            'scipy.sparse.csgraph.bellman_ford',
-            'scipy.sparse.csgraph.johnson',
-            'scipy.sparse.csgraph.yen',
-            'scipy.sparse.csgraph.breadth_first_order',
-            'scipy.sparse.csgraph.reverse_cuthill_mckee',
-            'scipy.sparse.csgraph.structural_rank',
-            'scipy.sparse.csgraph.construct_dist_matrix',
-            'scipy.sparse.csgraph.reconstruct_path',
-            'scipy.ndimage.value_indices',
-            'scipy.stats.mstats.describe',
-    ]))
-
-    # help pytest collection a bit: these names are either private
-    # (distributions), or just do not need doctesting.
-    dt_config.pytest_extra_ignore = [
-        "scipy.stats.distributions",
-        "scipy.optimize.cython_optimize",
-        "scipy.test",
-        "scipy.show_config",
-    ]
-
-    dt_config.pytest_extra_xfail = {
-        # name: reason
-        "io.rst": "",
-        "ND_regular_grid.rst": "ReST parser limitation",
-        "extrapolation_examples.rst": "ReST parser limitation",
-        "sampling_pinv.rst": "__cinit__ unexpected argument",
-        "sampling_srou.rst": "nan in scalar_power",
-        "probability_distributions.rst": "integration warning",
-    }
-
-    # tutorials
-    dt_config.pseudocode = set(['integrate.nquad(func,'])
-    dt_config.local_resources = {'io.rst': ["octave_a.mat"]}
-############################################################################
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__init__.py
deleted file mode 100644
index 08e2e13478365fb7b227b461418d2f31e3cb76d2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__init__.py
+++ /dev/null
@@ -1,90 +0,0 @@
-"""
-================================
-Datasets (:mod:`scipy.datasets`)
-================================
-
-.. currentmodule:: scipy.datasets
-
-Dataset Methods
-===============
-
-.. autosummary::
-   :toctree: generated/
-
-   ascent
-   face
-   electrocardiogram
-
-Utility Methods
-===============
-
-.. autosummary::
-   :toctree: generated/
-
-   download_all    -- Download all the dataset files to specified path.
-   clear_cache     -- Clear cached dataset directory.
-
-
-Usage of Datasets
-=================
-
-SciPy dataset methods can be simply called as follows: ``'()'``
-This downloads the dataset files over the network once, and saves the cache,
-before returning a `numpy.ndarray` object representing the dataset.
-
-Note that the return data structure and data type might be different for
-different dataset methods. For a more detailed example on usage, please look
-into the particular dataset method documentation above.
-
-
-How dataset retrieval and storage works
-=======================================
-
-SciPy dataset files are stored within individual github repositories under the
-SciPy GitHub organization, following a naming convention as
-``'dataset-'``, for example `scipy.datasets.face` files live at
-https://github.com/scipy/dataset-face.  The `scipy.datasets` submodule utilizes
-and depends on `Pooch `_, a Python
-package built to simplify fetching data files. Pooch uses these repos to
-retrieve the respective dataset files when calling the dataset function.
-
-A registry of all the datasets, essentially a mapping of filenames with their
-SHA256 hash and repo urls are maintained, which Pooch uses to handle and verify
-the downloads on function call. After downloading the dataset once, the files
-are saved in the system cache directory under ``'scipy-data'``.
-
-Dataset cache locations may vary on different platforms.
-
-For macOS::
-
-    '~/Library/Caches/scipy-data'
-
-For Linux and other Unix-like platforms::
-
-    '~/.cache/scipy-data'  # or the value of the XDG_CACHE_HOME env var, if defined
-
-For Windows::
-
-    'C:\\Users\\\\AppData\\Local\\\\scipy-data\\Cache'
-
-
-In environments with constrained network connectivity for various security
-reasons or on systems without continuous internet connections, one may manually
-load the cache of the datasets by placing the contents of the dataset repo in
-the above mentioned cache directory to avoid fetching dataset errors without
-the internet connectivity.
-
-"""
-
-
-from ._fetchers import face, ascent, electrocardiogram
-from ._download_all import download_all
-from ._utils import clear_cache
-
-__all__ = ['ascent', 'electrocardiogram', 'face',
-           'download_all', 'clear_cache']
-
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index a47c097a3c9d33754bb26b9214b348ad79fe2c16..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_download_all.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_download_all.cpython-310.pyc
deleted file mode 100644
index ceb5795571161b1e4aa7407575642dfb9c91eea7..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_download_all.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_fetchers.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_fetchers.cpython-310.pyc
deleted file mode 100644
index 179cbd0dd7d9b32d26e664eff79c587fe15723d2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_fetchers.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_registry.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_registry.cpython-310.pyc
deleted file mode 100644
index b993f03d1d8ea291a576a11fab3b68ce7bc6334b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_registry.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_utils.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_utils.cpython-310.pyc
deleted file mode 100644
index 358d8455ea6f0526244bbc7ccbc572005ffa1aaf..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/__pycache__/_utils.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_download_all.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_download_all.py
deleted file mode 100644
index 255fdcaf22950848f458a7ed9ada183e0a2e630e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_download_all.py
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-Platform independent script to download all the
-`scipy.datasets` module data files.
-This doesn't require a full scipy build.
-
-Run: python _download_all.py 
-"""
-
-import argparse
-try:
-    import pooch
-except ImportError:
-    pooch = None
-
-
-if __package__ is None or __package__ == '':
-    # Running as python script, use absolute import
-    import _registry  # type: ignore
-else:
-    # Running as python module, use relative import
-    from . import _registry
-
-
-def download_all(path=None):
-    """
-    Utility method to download all the dataset files
-    for `scipy.datasets` module.
-
-    Parameters
-    ----------
-    path : str, optional
-        Directory path to download all the dataset files.
-        If None, default to the system cache_dir detected by pooch.
-    """
-    if pooch is None:
-        raise ImportError("Missing optional dependency 'pooch' required "
-                          "for scipy.datasets module. Please use pip or "
-                          "conda to install 'pooch'.")
-    if path is None:
-        path = pooch.os_cache('scipy-data')
-    for dataset_name, dataset_hash in _registry.registry.items():
-        pooch.retrieve(url=_registry.registry_urls[dataset_name],
-                       known_hash=dataset_hash,
-                       fname=dataset_name, path=path)
-
-
-def main():
-    parser = argparse.ArgumentParser(description='Download SciPy data files.')
-    parser.add_argument("path", nargs='?', type=str,
-                        default=pooch.os_cache('scipy-data'),
-                        help="Directory path to download all the data files.")
-    args = parser.parse_args()
-    download_all(args.path)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_fetchers.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_fetchers.py
deleted file mode 100644
index f273b9eb826dde77d197e16ea92511bbd237b3d4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_fetchers.py
+++ /dev/null
@@ -1,221 +0,0 @@
-from numpy import array, frombuffer, load
-from ._registry import registry, registry_urls
-
-try:
-    import pooch
-except ImportError:
-    pooch = None
-    data_fetcher = None
-else:
-    data_fetcher = pooch.create(
-        # Use the default cache folder for the operating system
-        # Pooch uses appdirs (https://github.com/ActiveState/appdirs) to
-        # select an appropriate directory for the cache on each platform.
-        path=pooch.os_cache("scipy-data"),
-
-        # The remote data is on Github
-        # base_url is a required param, even though we override this
-        # using individual urls in the registry.
-        base_url="https://github.com/scipy/",
-        registry=registry,
-        urls=registry_urls
-    )
-
-
-def fetch_data(dataset_name, data_fetcher=data_fetcher):
-    if data_fetcher is None:
-        raise ImportError("Missing optional dependency 'pooch' required "
-                          "for scipy.datasets module. Please use pip or "
-                          "conda to install 'pooch'.")
-    # The "fetch" method returns the full path to the downloaded data file.
-    return data_fetcher.fetch(dataset_name)
-
-
-def ascent():
-    """
-    Get an 8-bit grayscale bit-depth, 512 x 512 derived image for easy
-    use in demos.
-
-    The image is derived from
-    https://pixnio.com/people/accent-to-the-top
-
-    Parameters
-    ----------
-    None
-
-    Returns
-    -------
-    ascent : ndarray
-       convenient image to use for testing and demonstration
-
-    Examples
-    --------
-    >>> import scipy.datasets
-    >>> ascent = scipy.datasets.ascent()
-    >>> ascent.shape
-    (512, 512)
-    >>> ascent.max()
-    255
-
-    >>> import matplotlib.pyplot as plt
-    >>> plt.gray()
-    >>> plt.imshow(ascent)
-    >>> plt.show()
-
-    """
-    import pickle
-
-    # The file will be downloaded automatically the first time this is run,
-    # returning the path to the downloaded file. Afterwards, Pooch finds
-    # it in the local cache and doesn't repeat the download.
-    fname = fetch_data("ascent.dat")
-    # Now we just need to load it with our standard Python tools.
-    with open(fname, 'rb') as f:
-        ascent = array(pickle.load(f))
-    return ascent
-
-
-def electrocardiogram():
-    """
-    Load an electrocardiogram as an example for a 1-D signal.
-
-    The returned signal is a 5 minute long electrocardiogram (ECG), a medical
-    recording of the heart's electrical activity, sampled at 360 Hz.
-
-    Returns
-    -------
-    ecg : ndarray
-        The electrocardiogram in millivolt (mV) sampled at 360 Hz.
-
-    Notes
-    -----
-    The provided signal is an excerpt (19:35 to 24:35) from the `record 208`_
-    (lead MLII) provided by the MIT-BIH Arrhythmia Database [1]_ on
-    PhysioNet [2]_. The excerpt includes noise induced artifacts, typical
-    heartbeats as well as pathological changes.
-
-    .. _record 208: https://physionet.org/physiobank/database/html/mitdbdir/records.htm#208
-
-    .. versionadded:: 1.1.0
-
-    References
-    ----------
-    .. [1] Moody GB, Mark RG. The impact of the MIT-BIH Arrhythmia Database.
-           IEEE Eng in Med and Biol 20(3):45-50 (May-June 2001).
-           (PMID: 11446209); :doi:`10.13026/C2F305`
-    .. [2] Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PCh,
-           Mark RG, Mietus JE, Moody GB, Peng C-K, Stanley HE. PhysioBank,
-           PhysioToolkit, and PhysioNet: Components of a New Research Resource
-           for Complex Physiologic Signals. Circulation 101(23):e215-e220;
-           :doi:`10.1161/01.CIR.101.23.e215`
-
-    Examples
-    --------
-    >>> from scipy.datasets import electrocardiogram
-    >>> ecg = electrocardiogram()
-    >>> ecg
-    array([-0.245, -0.215, -0.185, ..., -0.405, -0.395, -0.385])
-    >>> ecg.shape, ecg.mean(), ecg.std()
-    ((108000,), -0.16510875, 0.5992473991177294)
-
-    As stated the signal features several areas with a different morphology.
-    E.g., the first few seconds show the electrical activity of a heart in
-    normal sinus rhythm as seen below.
-
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> fs = 360
-    >>> time = np.arange(ecg.size) / fs
-    >>> plt.plot(time, ecg)
-    >>> plt.xlabel("time in s")
-    >>> plt.ylabel("ECG in mV")
-    >>> plt.xlim(9, 10.2)
-    >>> plt.ylim(-1, 1.5)
-    >>> plt.show()
-
-    After second 16, however, the first premature ventricular contractions,
-    also called extrasystoles, appear. These have a different morphology
-    compared to typical heartbeats. The difference can easily be observed
-    in the following plot.
-
-    >>> plt.plot(time, ecg)
-    >>> plt.xlabel("time in s")
-    >>> plt.ylabel("ECG in mV")
-    >>> plt.xlim(46.5, 50)
-    >>> plt.ylim(-2, 1.5)
-    >>> plt.show()
-
-    At several points large artifacts disturb the recording, e.g.:
-
-    >>> plt.plot(time, ecg)
-    >>> plt.xlabel("time in s")
-    >>> plt.ylabel("ECG in mV")
-    >>> plt.xlim(207, 215)
-    >>> plt.ylim(-2, 3.5)
-    >>> plt.show()
-
-    Finally, examining the power spectrum reveals that most of the biosignal is
-    made up of lower frequencies. At 60 Hz the noise induced by the mains
-    electricity can be clearly observed.
-
-    >>> from scipy.signal import welch
-    >>> f, Pxx = welch(ecg, fs=fs, nperseg=2048, scaling="spectrum")
-    >>> plt.semilogy(f, Pxx)
-    >>> plt.xlabel("Frequency in Hz")
-    >>> plt.ylabel("Power spectrum of the ECG in mV**2")
-    >>> plt.xlim(f[[0, -1]])
-    >>> plt.show()
-    """
-    fname = fetch_data("ecg.dat")
-    with load(fname) as file:
-        ecg = file["ecg"].astype(int)  # np.uint16 -> int
-    # Convert raw output of ADC to mV: (ecg - adc_zero) / adc_gain
-    ecg = (ecg - 1024) / 200.0
-    return ecg
-
-
-def face(gray=False):
-    """
-    Get a 1024 x 768, color image of a raccoon face.
-
-    The image is derived from
-    https://pixnio.com/fauna-animals/raccoons/raccoon-procyon-lotor
-
-    Parameters
-    ----------
-    gray : bool, optional
-        If True return 8-bit grey-scale image, otherwise return a color image
-
-    Returns
-    -------
-    face : ndarray
-        image of a raccoon face
-
-    Examples
-    --------
-    >>> import scipy.datasets
-    >>> face = scipy.datasets.face()
-    >>> face.shape
-    (768, 1024, 3)
-    >>> face.max()
-    255
-    >>> face.dtype
-    dtype('uint8')
-
-    >>> import matplotlib.pyplot as plt
-    >>> plt.gray()
-    >>> plt.imshow(face)
-    >>> plt.show()
-
-    """
-    import bz2
-    fname = fetch_data("face.dat")
-    with open(fname, 'rb') as f:
-        rawdata = f.read()
-    face_data = bz2.decompress(rawdata)
-    face = frombuffer(face_data, dtype='uint8')
-    face.shape = (768, 1024, 3)
-    if gray is True:
-        face = (0.21 * face[:, :, 0] + 0.71 * face[:, :, 1] +
-                0.07 * face[:, :, 2]).astype('uint8')
-    return face
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_registry.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_registry.py
deleted file mode 100644
index 969384ad9843159e766100bfa9755aed8102dd09..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_registry.py
+++ /dev/null
@@ -1,26 +0,0 @@
-##########################################################################
-# This file serves as the dataset registry for SciPy Datasets SubModule.
-##########################################################################
-
-
-# To generate the SHA256 hash, use the command
-# openssl sha256 
-registry = {
-    "ascent.dat": "03ce124c1afc880f87b55f6b061110e2e1e939679184f5614e38dacc6c1957e2",
-    "ecg.dat": "f20ad3365fb9b7f845d0e5c48b6fe67081377ee466c3a220b7f69f35c8958baf",
-    "face.dat": "9d8b0b4d081313e2b485748c770472e5a95ed1738146883d84c7030493e82886"
-}
-
-registry_urls = {
-    "ascent.dat": "https://raw.githubusercontent.com/scipy/dataset-ascent/main/ascent.dat",
-    "ecg.dat": "https://raw.githubusercontent.com/scipy/dataset-ecg/main/ecg.dat",
-    "face.dat": "https://raw.githubusercontent.com/scipy/dataset-face/main/face.dat"
-}
-
-# dataset method mapping with their associated filenames
-#  : ["filename1", "filename2", ...]
-method_files_map = {
-    "ascent": ["ascent.dat"],
-    "electrocardiogram": ["ecg.dat"],
-    "face": ["face.dat"]
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_utils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_utils.py
deleted file mode 100644
index 8f644f8797d6e3256a16ec2c509eec725c726300..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/_utils.py
+++ /dev/null
@@ -1,81 +0,0 @@
-import os
-import shutil
-from ._registry import method_files_map
-
-try:
-    import platformdirs
-except ImportError:
-    platformdirs = None  # type: ignore[assignment]
-
-
-def _clear_cache(datasets, cache_dir=None, method_map=None):
-    if method_map is None:
-        # Use SciPy Datasets method map
-        method_map = method_files_map
-    if cache_dir is None:
-        # Use default cache_dir path
-        if platformdirs is None:
-            # platformdirs is pooch dependency
-            raise ImportError("Missing optional dependency 'pooch' required "
-                              "for scipy.datasets module. Please use pip or "
-                              "conda to install 'pooch'.")
-        cache_dir = platformdirs.user_cache_dir("scipy-data")
-
-    if not os.path.exists(cache_dir):
-        print(f"Cache Directory {cache_dir} doesn't exist. Nothing to clear.")
-        return
-
-    if datasets is None:
-        print(f"Cleaning the cache directory {cache_dir}!")
-        shutil.rmtree(cache_dir)
-    else:
-        if not isinstance(datasets, (list, tuple)):
-            # single dataset method passed should be converted to list
-            datasets = [datasets, ]
-        for dataset in datasets:
-            assert callable(dataset)
-            dataset_name = dataset.__name__  # Name of the dataset method
-            if dataset_name not in method_map:
-                raise ValueError(f"Dataset method {dataset_name} doesn't "
-                                 "exist. Please check if the passed dataset "
-                                 "is a subset of the following dataset "
-                                 f"methods: {list(method_map.keys())}")
-
-            data_files = method_map[dataset_name]
-            data_filepaths = [os.path.join(cache_dir, file)
-                              for file in data_files]
-            for data_filepath in data_filepaths:
-                if os.path.exists(data_filepath):
-                    print("Cleaning the file "
-                          f"{os.path.split(data_filepath)[1]} "
-                          f"for dataset {dataset_name}")
-                    os.remove(data_filepath)
-                else:
-                    print(f"Path {data_filepath} doesn't exist. "
-                          "Nothing to clear.")
-
-
-def clear_cache(datasets=None):
-    """
-    Cleans the scipy datasets cache directory.
-
-    If a scipy.datasets method or a list/tuple of the same is
-    provided, then clear_cache removes all the data files
-    associated to the passed dataset method callable(s).
-
-    By default, it removes all the cached data files.
-
-    Parameters
-    ----------
-    datasets : callable or list/tuple of callable or None
-
-    Examples
-    --------
-    >>> from scipy import datasets
-    >>> ascent_array = datasets.ascent()
-    >>> ascent_array.shape
-    (512, 512)
-    >>> datasets.clear_cache([datasets.ascent])
-    Cleaning the file ascent.dat for dataset ascent
-    """
-    _clear_cache(datasets)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index cbf30e6d4fc9c0a389a83748c3acf41bc7c13d0c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/__pycache__/test_data.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/__pycache__/test_data.cpython-310.pyc
deleted file mode 100644
index 1d3b0a75b63e9ded49993872802416be7eabadbb..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/__pycache__/test_data.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/test_data.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/test_data.py
deleted file mode 100644
index d29feb72f55f564d3bda3c5cfa956bf050e14135..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/datasets/tests/test_data.py
+++ /dev/null
@@ -1,124 +0,0 @@
-from scipy.datasets._registry import registry
-from scipy.datasets._fetchers import data_fetcher
-from scipy.datasets._utils import _clear_cache
-from scipy.datasets import ascent, face, electrocardiogram, download_all
-from numpy.testing import assert_equal, assert_almost_equal
-import os
-import pytest
-
-try:
-    import pooch
-except ImportError:
-    raise ImportError("Missing optional dependency 'pooch' required "
-                      "for scipy.datasets module. Please use pip or "
-                      "conda to install 'pooch'.")
-
-
-data_dir = data_fetcher.path  # type: ignore
-
-
-def _has_hash(path, expected_hash):
-    """Check if the provided path has the expected hash."""
-    if not os.path.exists(path):
-        return False
-    return pooch.file_hash(path) == expected_hash
-
-
-class TestDatasets:
-
-    @pytest.fixture(scope='module', autouse=True)
-    def test_download_all(self):
-        # This fixture requires INTERNET CONNECTION
-
-        # test_setup phase
-        download_all()
-
-        yield
-
-    @pytest.mark.fail_slow(5)
-    def test_existence_all(self):
-        assert len(os.listdir(data_dir)) >= len(registry)
-
-    def test_ascent(self):
-        assert_equal(ascent().shape, (512, 512))
-
-        # hash check
-        assert _has_hash(os.path.join(data_dir, "ascent.dat"),
-                         registry["ascent.dat"])
-
-    def test_face(self):
-        assert_equal(face().shape, (768, 1024, 3))
-
-        # hash check
-        assert _has_hash(os.path.join(data_dir, "face.dat"),
-                         registry["face.dat"])
-
-    def test_electrocardiogram(self):
-        # Test shape, dtype and stats of signal
-        ecg = electrocardiogram()
-        assert_equal(ecg.dtype, float)
-        assert_equal(ecg.shape, (108000,))
-        assert_almost_equal(ecg.mean(), -0.16510875)
-        assert_almost_equal(ecg.std(), 0.5992473991177294)
-
-        # hash check
-        assert _has_hash(os.path.join(data_dir, "ecg.dat"),
-                         registry["ecg.dat"])
-
-
-def test_clear_cache(tmp_path):
-    # Note: `tmp_path` is a pytest fixture, it handles cleanup
-    dummy_basepath = tmp_path / "dummy_cache_dir"
-    dummy_basepath.mkdir()
-
-    # Create three dummy dataset files for dummy dataset methods
-    dummy_method_map = {}
-    for i in range(4):
-        dummy_method_map[f"data{i}"] = [f"data{i}.dat"]
-        data_filepath = dummy_basepath / f"data{i}.dat"
-        data_filepath.write_text("")
-
-    # clear files associated to single dataset method data0
-    # also test callable argument instead of list of callables
-    def data0():
-        pass
-    _clear_cache(datasets=data0, cache_dir=dummy_basepath,
-                 method_map=dummy_method_map)
-    assert not os.path.exists(dummy_basepath/"data0.dat")
-
-    # clear files associated to multiple dataset methods "data3" and "data4"
-    def data1():
-        pass
-
-    def data2():
-        pass
-    _clear_cache(datasets=[data1, data2], cache_dir=dummy_basepath,
-                 method_map=dummy_method_map)
-    assert not os.path.exists(dummy_basepath/"data1.dat")
-    assert not os.path.exists(dummy_basepath/"data2.dat")
-
-    # clear multiple dataset files "data3_0.dat" and "data3_1.dat"
-    # associated with dataset method "data3"
-    def data4():
-        pass
-    # create files
-    (dummy_basepath / "data4_0.dat").write_text("")
-    (dummy_basepath / "data4_1.dat").write_text("")
-
-    dummy_method_map["data4"] = ["data4_0.dat", "data4_1.dat"]
-    _clear_cache(datasets=[data4], cache_dir=dummy_basepath,
-                 method_map=dummy_method_map)
-    assert not os.path.exists(dummy_basepath/"data4_0.dat")
-    assert not os.path.exists(dummy_basepath/"data4_1.dat")
-
-    # wrong dataset method should raise ValueError since it
-    # doesn't exist in the dummy_method_map
-    def data5():
-        pass
-    with pytest.raises(ValueError):
-        _clear_cache(datasets=[data5], cache_dir=dummy_basepath,
-                     method_map=dummy_method_map)
-
-    # remove all dataset cache
-    _clear_cache(datasets=None, cache_dir=dummy_basepath)
-    assert not os.path.exists(dummy_basepath)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__init__.py
deleted file mode 100644
index c545a00b9fd63427088ac873fa3fa65678b77f71..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__init__.py
+++ /dev/null
@@ -1,114 +0,0 @@
-"""
-==============================================
-Discrete Fourier transforms (:mod:`scipy.fft`)
-==============================================
-
-.. currentmodule:: scipy.fft
-
-Fast Fourier Transforms (FFTs)
-==============================
-
-.. autosummary::
-   :toctree: generated/
-
-   fft - Fast (discrete) Fourier Transform (FFT)
-   ifft - Inverse FFT
-   fft2 - 2-D FFT
-   ifft2 - 2-D inverse FFT
-   fftn - N-D FFT
-   ifftn - N-D inverse FFT
-   rfft - FFT of strictly real-valued sequence
-   irfft - Inverse of rfft
-   rfft2 - 2-D FFT of real sequence
-   irfft2 - Inverse of rfft2
-   rfftn - N-D FFT of real sequence
-   irfftn - Inverse of rfftn
-   hfft - FFT of a Hermitian sequence (real spectrum)
-   ihfft - Inverse of hfft
-   hfft2 - 2-D FFT of a Hermitian sequence
-   ihfft2 - Inverse of hfft2
-   hfftn - N-D FFT of a Hermitian sequence
-   ihfftn - Inverse of hfftn
-
-Discrete Sin and Cosine Transforms (DST and DCT)
-================================================
-
-.. autosummary::
-   :toctree: generated/
-
-   dct - Discrete cosine transform
-   idct - Inverse discrete cosine transform
-   dctn - N-D Discrete cosine transform
-   idctn - N-D Inverse discrete cosine transform
-   dst - Discrete sine transform
-   idst - Inverse discrete sine transform
-   dstn - N-D Discrete sine transform
-   idstn - N-D Inverse discrete sine transform
-
-Fast Hankel Transforms
-======================
-
-.. autosummary::
-   :toctree: generated/
-
-   fht - Fast Hankel transform
-   ifht - Inverse of fht
-
-Helper functions
-================
-
-.. autosummary::
-   :toctree: generated/
-
-   fftshift - Shift the zero-frequency component to the center of the spectrum
-   ifftshift - The inverse of `fftshift`
-   fftfreq - Return the Discrete Fourier Transform sample frequencies
-   rfftfreq - DFT sample frequencies (for usage with rfft, irfft)
-   fhtoffset - Compute an optimal offset for the Fast Hankel Transform
-   next_fast_len - Find the optimal length to zero-pad an FFT for speed
-   prev_fast_len - Find the maximum slice length that results in a fast FFT
-   set_workers - Context manager to set default number of workers
-   get_workers - Get the current default number of workers
-
-Backend control
-===============
-
-.. autosummary::
-   :toctree: generated/
-
-   set_backend - Context manager to set the backend within a fixed scope
-   skip_backend - Context manager to skip a backend within a fixed scope
-   set_global_backend - Sets the global fft backend
-   register_backend - Register a backend for permanent use
-
-"""
-
-from ._basic import (
-    fft, ifft, fft2, ifft2, fftn, ifftn,
-    rfft, irfft, rfft2, irfft2, rfftn, irfftn,
-    hfft, ihfft, hfft2, ihfft2, hfftn, ihfftn)
-from ._realtransforms import dct, idct, dst, idst, dctn, idctn, dstn, idstn
-from ._fftlog import fht, ifht, fhtoffset
-from ._helper import (
-    next_fast_len, prev_fast_len, fftfreq,
-    rfftfreq, fftshift, ifftshift)
-from ._backend import (set_backend, skip_backend, set_global_backend,
-                       register_backend)
-from ._pocketfft.helper import set_workers, get_workers
-
-__all__ = [
-    'fft', 'ifft', 'fft2', 'ifft2', 'fftn', 'ifftn',
-    'rfft', 'irfft', 'rfft2', 'irfft2', 'rfftn', 'irfftn',
-    'hfft', 'ihfft', 'hfft2', 'ihfft2', 'hfftn', 'ihfftn',
-    'fftfreq', 'rfftfreq', 'fftshift', 'ifftshift',
-    'next_fast_len', 'prev_fast_len',
-    'dct', 'idct', 'dst', 'idst', 'dctn', 'idctn', 'dstn', 'idstn',
-    'fht', 'ifht',
-    'fhtoffset',
-    'set_backend', 'skip_backend', 'set_global_backend', 'register_backend',
-    'get_workers', 'set_workers']
-
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 637e29dd3b884e5fab0092abbd5c8cd74f6ac7f3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_backend.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_backend.cpython-310.pyc
deleted file mode 100644
index 266409f0e90a7e08d2668ca5b3c91ed50b558d39..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_backend.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_basic.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_basic.cpython-310.pyc
deleted file mode 100644
index 8798a13071a06c5c6737adaf144f2e314f2959c3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_basic.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_basic_backend.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_basic_backend.cpython-310.pyc
deleted file mode 100644
index 3f5d888f558d0360f0aa243efd7e3ad0d4b34052..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_basic_backend.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_debug_backends.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_debug_backends.cpython-310.pyc
deleted file mode 100644
index 27d098aee3e2682c7fa74e609284e125eaadf25f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_debug_backends.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_fftlog.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_fftlog.cpython-310.pyc
deleted file mode 100644
index fd04a07ab469b383ab5fb068972c0b1818d1c2e1..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_fftlog.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_fftlog_backend.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_fftlog_backend.cpython-310.pyc
deleted file mode 100644
index fd2fe1dd2b63affe93bae3057994eaba55bf7076..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_fftlog_backend.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_helper.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_helper.cpython-310.pyc
deleted file mode 100644
index 75be6e66fad839799245de870148d0018e54131f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_helper.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_realtransforms.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_realtransforms.cpython-310.pyc
deleted file mode 100644
index 8b8745933bf5ea24f1bef6831324f007a1751e1d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_realtransforms.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_realtransforms_backend.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_realtransforms_backend.cpython-310.pyc
deleted file mode 100644
index 31d5b199d6b049b2b0a1d5b85528ccc2c433d3fa..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/__pycache__/_realtransforms_backend.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_backend.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_backend.py
deleted file mode 100644
index c1e5cfcad5c4cbc43276e151d2da33039368630d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_backend.py
+++ /dev/null
@@ -1,196 +0,0 @@
-import scipy._lib.uarray as ua
-from . import _basic_backend
-from . import _realtransforms_backend
-from . import _fftlog_backend
-
-
-class _ScipyBackend:
-    """The default backend for fft calculations
-
-    Notes
-    -----
-    We use the domain ``numpy.scipy`` rather than ``scipy`` because ``uarray``
-    treats the domain as a hierarchy. This means the user can install a single
-    backend for ``numpy`` and have it implement ``numpy.scipy.fft`` as well.
-    """
-    __ua_domain__ = "numpy.scipy.fft"
-
-    @staticmethod
-    def __ua_function__(method, args, kwargs):
-
-        fn = getattr(_basic_backend, method.__name__, None)
-        if fn is None:
-            fn = getattr(_realtransforms_backend, method.__name__, None)
-        if fn is None:
-            fn = getattr(_fftlog_backend, method.__name__, None)
-        if fn is None:
-            return NotImplemented
-        return fn(*args, **kwargs)
-
-
-_named_backends = {
-    'scipy': _ScipyBackend,
-}
-
-
-def _backend_from_arg(backend):
-    """Maps strings to known backends and validates the backend"""
-
-    if isinstance(backend, str):
-        try:
-            backend = _named_backends[backend]
-        except KeyError as e:
-            raise ValueError(f'Unknown backend {backend}') from e
-
-    if backend.__ua_domain__ != 'numpy.scipy.fft':
-        raise ValueError('Backend does not implement "numpy.scipy.fft"')
-
-    return backend
-
-
-def set_global_backend(backend, coerce=False, only=False, try_last=False):
-    """Sets the global fft backend
-
-    This utility method replaces the default backend for permanent use. It
-    will be tried in the list of backends automatically, unless the
-    ``only`` flag is set on a backend. This will be the first tried
-    backend outside the :obj:`set_backend` context manager.
-
-    Parameters
-    ----------
-    backend : {object, 'scipy'}
-        The backend to use.
-        Can either be a ``str`` containing the name of a known backend
-        {'scipy'} or an object that implements the uarray protocol.
-    coerce : bool
-        Whether to coerce input types when trying this backend.
-    only : bool
-        If ``True``, no more backends will be tried if this fails.
-        Implied by ``coerce=True``.
-    try_last : bool
-        If ``True``, the global backend is tried after registered backends.
-
-    Raises
-    ------
-    ValueError: If the backend does not implement ``numpy.scipy.fft``.
-
-    Notes
-    -----
-    This will overwrite the previously set global backend, which, by default, is
-    the SciPy implementation.
-
-    Examples
-    --------
-    We can set the global fft backend:
-
-    >>> from scipy.fft import fft, set_global_backend
-    >>> set_global_backend("scipy")  # Sets global backend (default is "scipy").
-    >>> fft([1])  # Calls the global backend
-    array([1.+0.j])
-    """
-    backend = _backend_from_arg(backend)
-    ua.set_global_backend(backend, coerce=coerce, only=only, try_last=try_last)
-
-
-def register_backend(backend):
-    """
-    Register a backend for permanent use.
-
-    Registered backends have the lowest priority and will be tried after the
-    global backend.
-
-    Parameters
-    ----------
-    backend : {object, 'scipy'}
-        The backend to use.
-        Can either be a ``str`` containing the name of a known backend
-        {'scipy'} or an object that implements the uarray protocol.
-
-    Raises
-    ------
-    ValueError: If the backend does not implement ``numpy.scipy.fft``.
-
-    Examples
-    --------
-    We can register a new fft backend:
-
-    >>> from scipy.fft import fft, register_backend, set_global_backend
-    >>> class NoopBackend:  # Define an invalid Backend
-    ...     __ua_domain__ = "numpy.scipy.fft"
-    ...     def __ua_function__(self, func, args, kwargs):
-    ...          return NotImplemented
-    >>> set_global_backend(NoopBackend())  # Set the invalid backend as global
-    >>> register_backend("scipy")  # Register a new backend
-    # The registered backend is called because
-    # the global backend returns `NotImplemented`
-    >>> fft([1])
-    array([1.+0.j])
-    >>> set_global_backend("scipy")  # Restore global backend to default
-
-    """
-    backend = _backend_from_arg(backend)
-    ua.register_backend(backend)
-
-
-def set_backend(backend, coerce=False, only=False):
-    """Context manager to set the backend within a fixed scope.
-
-    Upon entering the ``with`` statement, the given backend will be added to
-    the list of available backends with the highest priority. Upon exit, the
-    backend is reset to the state before entering the scope.
-
-    Parameters
-    ----------
-    backend : {object, 'scipy'}
-        The backend to use.
-        Can either be a ``str`` containing the name of a known backend
-        {'scipy'} or an object that implements the uarray protocol.
-    coerce : bool, optional
-        Whether to allow expensive conversions for the ``x`` parameter. e.g.,
-        copying a NumPy array to the GPU for a CuPy backend. Implies ``only``.
-    only : bool, optional
-        If only is ``True`` and this backend returns ``NotImplemented``, then a
-        BackendNotImplemented error will be raised immediately. Ignoring any
-        lower priority backends.
-
-    Examples
-    --------
-    >>> import scipy.fft as fft
-    >>> with fft.set_backend('scipy', only=True):
-    ...     fft.fft([1])  # Always calls the scipy implementation
-    array([1.+0.j])
-    """
-    backend = _backend_from_arg(backend)
-    return ua.set_backend(backend, coerce=coerce, only=only)
-
-
-def skip_backend(backend):
-    """Context manager to skip a backend within a fixed scope.
-
-    Within the context of a ``with`` statement, the given backend will not be
-    called. This covers backends registered both locally and globally. Upon
-    exit, the backend will again be considered.
-
-    Parameters
-    ----------
-    backend : {object, 'scipy'}
-        The backend to skip.
-        Can either be a ``str`` containing the name of a known backend
-        {'scipy'} or an object that implements the uarray protocol.
-
-    Examples
-    --------
-    >>> import scipy.fft as fft
-    >>> fft.fft([1])  # Calls default SciPy backend
-    array([1.+0.j])
-    >>> with fft.skip_backend('scipy'):  # We explicitly skip the SciPy backend
-    ...     fft.fft([1])                 # leaving no implementation available
-    Traceback (most recent call last):
-        ...
-    BackendNotImplementedError: No selected backends had an implementation ...
-    """
-    backend = _backend_from_arg(backend)
-    return ua.skip_backend(backend)
-
-
-set_global_backend('scipy', try_last=True)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_basic.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_basic.py
deleted file mode 100644
index a3fc021c9ef9b7c2a40bf7b5138158df8e276ae6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_basic.py
+++ /dev/null
@@ -1,1630 +0,0 @@
-from scipy._lib.uarray import generate_multimethod, Dispatchable
-import numpy as np
-
-
-def _x_replacer(args, kwargs, dispatchables):
-    """
-    uarray argument replacer to replace the transform input array (``x``)
-    """
-    if len(args) > 0:
-        return (dispatchables[0],) + args[1:], kwargs
-    kw = kwargs.copy()
-    kw['x'] = dispatchables[0]
-    return args, kw
-
-
-def _dispatch(func):
-    """
-    Function annotation that creates a uarray multimethod from the function
-    """
-    return generate_multimethod(func, _x_replacer, domain="numpy.scipy.fft")
-
-
-@_dispatch
-def fft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *,
-        plan=None):
-    """
-    Compute the 1-D discrete Fourier Transform.
-
-    This function computes the 1-D *n*-point discrete Fourier
-    Transform (DFT) with the efficient Fast Fourier Transform (FFT)
-    algorithm [1]_.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array, can be complex.
-    n : int, optional
-        Length of the transformed axis of the output.
-        If `n` is smaller than the length of the input, the input is cropped.
-        If it is larger, the input is padded with zeros. If `n` is not given,
-        the length of the input along the axis specified by `axis` is used.
-    axis : int, optional
-        Axis over which to compute the FFT. If not given, the last axis is
-        used.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode. Default is "backward", meaning no normalization on
-        the forward transforms and scaling by ``1/n`` on the `ifft`.
-        "forward" instead applies the ``1/n`` factor on the forward transform.
-        For ``norm="ortho"``, both directions are scaled by ``1/sqrt(n)``.
-
-        .. versionadded:: 1.6.0
-           ``norm={"forward", "backward"}`` options were added
-
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See the notes below for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``. See below for more
-        details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : complex ndarray
-        The truncated or zero-padded input, transformed along the axis
-        indicated by `axis`, or the last one if `axis` is not specified.
-
-    Raises
-    ------
-    IndexError
-        if `axes` is larger than the last axis of `x`.
-
-    See Also
-    --------
-    ifft : The inverse of `fft`.
-    fft2 : The 2-D FFT.
-    fftn : The N-D FFT.
-    rfftn : The N-D FFT of real input.
-    fftfreq : Frequency bins for given FFT parameters.
-    next_fast_len : Size to pad input to for most efficient transforms
-
-    Notes
-    -----
-    FFT (Fast Fourier Transform) refers to a way the discrete Fourier Transform
-    (DFT) can be calculated efficiently, by using symmetries in the calculated
-    terms. The symmetry is highest when `n` is a power of 2, and the transform
-    is therefore most efficient for these sizes. For poorly factorizable sizes,
-    `scipy.fft` uses Bluestein's algorithm [2]_ and so is never worse than
-    O(`n` log `n`). Further performance improvements may be seen by zero-padding
-    the input using `next_fast_len`.
-
-    If ``x`` is a 1d array, then the `fft` is equivalent to ::
-
-        y[k] = np.sum(x * np.exp(-2j * np.pi * k * np.arange(n)/n))
-
-    The frequency term ``f=k/n`` is found at ``y[k]``. At ``y[n/2]`` we reach
-    the Nyquist frequency and wrap around to the negative-frequency terms. So,
-    for an 8-point transform, the frequencies of the result are
-    [0, 1, 2, 3, -4, -3, -2, -1]. To rearrange the fft output so that the
-    zero-frequency component is centered, like [-4, -3, -2, -1, 0, 1, 2, 3],
-    use `fftshift`.
-
-    Transforms can be done in single, double, or extended precision (long
-    double) floating point. Half precision inputs will be converted to single
-    precision and non-floating-point inputs will be converted to double
-    precision.
-
-    If the data type of ``x`` is real, a "real FFT" algorithm is automatically
-    used, which roughly halves the computation time. To increase efficiency
-    a little further, use `rfft`, which does the same calculation, but only
-    outputs half of the symmetrical spectrum. If the data are both real and
-    symmetrical, the `dct` can again double the efficiency, by generating
-    half of the spectrum from half of the signal.
-
-    When ``overwrite_x=True`` is specified, the memory referenced by ``x`` may
-    be used by the implementation in any way. This may include reusing the
-    memory for the result, but this is in no way guaranteed. You should not
-    rely on the contents of ``x`` after the transform as this may change in
-    future without warning.
-
-    The ``workers`` argument specifies the maximum number of parallel jobs to
-    split the FFT computation into. This will execute independent 1-D
-    FFTs within ``x``. So, ``x`` must be at least 2-D and the
-    non-transformed axes must be large enough to split into chunks. If ``x`` is
-    too small, fewer jobs may be used than requested.
-
-    References
-    ----------
-    .. [1] Cooley, James W., and John W. Tukey, 1965, "An algorithm for the
-           machine calculation of complex Fourier series," *Math. Comput.*
-           19: 297-301.
-    .. [2] Bluestein, L., 1970, "A linear filtering approach to the
-           computation of discrete Fourier transform". *IEEE Transactions on
-           Audio and Electroacoustics.* 18 (4): 451-455.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> import numpy as np
-    >>> scipy.fft.fft(np.exp(2j * np.pi * np.arange(8) / 8))
-    array([-2.33486982e-16+1.14423775e-17j,  8.00000000e+00-1.25557246e-15j,
-            2.33486982e-16+2.33486982e-16j,  0.00000000e+00+1.22464680e-16j,
-           -1.14423775e-17+2.33486982e-16j,  0.00000000e+00+5.20784380e-16j,
-            1.14423775e-17+1.14423775e-17j,  0.00000000e+00+1.22464680e-16j])
-
-    In this example, real input has an FFT which is Hermitian, i.e., symmetric
-    in the real part and anti-symmetric in the imaginary part:
-
-    >>> from scipy.fft import fft, fftfreq, fftshift
-    >>> import matplotlib.pyplot as plt
-    >>> t = np.arange(256)
-    >>> sp = fftshift(fft(np.sin(t)))
-    >>> freq = fftshift(fftfreq(t.shape[-1]))
-    >>> plt.plot(freq, sp.real, freq, sp.imag)
-    [,
-     ]
-    >>> plt.show()
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def ifft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *,
-         plan=None):
-    """
-    Compute the 1-D inverse discrete Fourier Transform.
-
-    This function computes the inverse of the 1-D *n*-point
-    discrete Fourier transform computed by `fft`.  In other words,
-    ``ifft(fft(x)) == x`` to within numerical accuracy.
-
-    The input should be ordered in the same way as is returned by `fft`,
-    i.e.,
-
-    * ``x[0]`` should contain the zero frequency term,
-    * ``x[1:n//2]`` should contain the positive-frequency terms,
-    * ``x[n//2 + 1:]`` should contain the negative-frequency terms, in
-      increasing order starting from the most negative frequency.
-
-    For an even number of input points, ``x[n//2]`` represents the sum of
-    the values at the positive and negative Nyquist frequencies, as the two
-    are aliased together. See `fft` for details.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array, can be complex.
-    n : int, optional
-        Length of the transformed axis of the output.
-        If `n` is smaller than the length of the input, the input is cropped.
-        If it is larger, the input is padded with zeros. If `n` is not given,
-        the length of the input along the axis specified by `axis` is used.
-        See notes about padding issues.
-    axis : int, optional
-        Axis over which to compute the inverse DFT. If not given, the last
-        axis is used.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : complex ndarray
-        The truncated or zero-padded input, transformed along the axis
-        indicated by `axis`, or the last one if `axis` is not specified.
-
-    Raises
-    ------
-    IndexError
-        If `axes` is larger than the last axis of `x`.
-
-    See Also
-    --------
-    fft : The 1-D (forward) FFT, of which `ifft` is the inverse.
-    ifft2 : The 2-D inverse FFT.
-    ifftn : The N-D inverse FFT.
-
-    Notes
-    -----
-    If the input parameter `n` is larger than the size of the input, the input
-    is padded by appending zeros at the end. Even though this is the common
-    approach, it might lead to surprising results. If a different padding is
-    desired, it must be performed before calling `ifft`.
-
-    If ``x`` is a 1-D array, then the `ifft` is equivalent to ::
-
-        y[k] = np.sum(x * np.exp(2j * np.pi * k * np.arange(n)/n)) / len(x)
-
-    As with `fft`, `ifft` has support for all floating point types and is
-    optimized for real input.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> import numpy as np
-    >>> scipy.fft.ifft([0, 4, 0, 0])
-    array([ 1.+0.j,  0.+1.j, -1.+0.j,  0.-1.j]) # may vary
-
-    Create and plot a band-limited signal with random phases:
-
-    >>> import matplotlib.pyplot as plt
-    >>> rng = np.random.default_rng()
-    >>> t = np.arange(400)
-    >>> n = np.zeros((400,), dtype=complex)
-    >>> n[40:60] = np.exp(1j*rng.uniform(0, 2*np.pi, (20,)))
-    >>> s = scipy.fft.ifft(n)
-    >>> plt.plot(t, s.real, 'b-', t, s.imag, 'r--')
-    [, ]
-    >>> plt.legend(('real', 'imaginary'))
-    
-    >>> plt.show()
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def rfft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *,
-         plan=None):
-    """
-    Compute the 1-D discrete Fourier Transform for real input.
-
-    This function computes the 1-D *n*-point discrete Fourier
-    Transform (DFT) of a real-valued array by means of an efficient algorithm
-    called the Fast Fourier Transform (FFT).
-
-    Parameters
-    ----------
-    x : array_like
-        Input array
-    n : int, optional
-        Number of points along transformation axis in the input to use.
-        If `n` is smaller than the length of the input, the input is cropped.
-        If it is larger, the input is padded with zeros. If `n` is not given,
-        the length of the input along the axis specified by `axis` is used.
-    axis : int, optional
-        Axis over which to compute the FFT. If not given, the last axis is
-        used.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : complex ndarray
-        The truncated or zero-padded input, transformed along the axis
-        indicated by `axis`, or the last one if `axis` is not specified.
-        If `n` is even, the length of the transformed axis is ``(n/2)+1``.
-        If `n` is odd, the length is ``(n+1)/2``.
-
-    Raises
-    ------
-    IndexError
-        If `axis` is larger than the last axis of `a`.
-
-    See Also
-    --------
-    irfft : The inverse of `rfft`.
-    fft : The 1-D FFT of general (complex) input.
-    fftn : The N-D FFT.
-    rfft2 : The 2-D FFT of real input.
-    rfftn : The N-D FFT of real input.
-
-    Notes
-    -----
-    When the DFT is computed for purely real input, the output is
-    Hermitian-symmetric, i.e., the negative frequency terms are just the complex
-    conjugates of the corresponding positive-frequency terms, and the
-    negative-frequency terms are therefore redundant. This function does not
-    compute the negative frequency terms, and the length of the transformed
-    axis of the output is therefore ``n//2 + 1``.
-
-    When ``X = rfft(x)`` and fs is the sampling frequency, ``X[0]`` contains
-    the zero-frequency term 0*fs, which is real due to Hermitian symmetry.
-
-    If `n` is even, ``A[-1]`` contains the term representing both positive
-    and negative Nyquist frequency (+fs/2 and -fs/2), and must also be purely
-    real. If `n` is odd, there is no term at fs/2; ``A[-1]`` contains
-    the largest positive frequency (fs/2*(n-1)/n), and is complex in the
-    general case.
-
-    If the input `a` contains an imaginary part, it is silently discarded.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> scipy.fft.fft([0, 1, 0, 0])
-    array([ 1.+0.j,  0.-1.j, -1.+0.j,  0.+1.j]) # may vary
-    >>> scipy.fft.rfft([0, 1, 0, 0])
-    array([ 1.+0.j,  0.-1.j, -1.+0.j]) # may vary
-
-    Notice how the final element of the `fft` output is the complex conjugate
-    of the second element, for real input. For `rfft`, this symmetry is
-    exploited to compute only the non-negative frequency terms.
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def irfft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *,
-          plan=None):
-    """
-    Computes the inverse of `rfft`.
-
-    This function computes the inverse of the 1-D *n*-point
-    discrete Fourier Transform of real input computed by `rfft`.
-    In other words, ``irfft(rfft(x), len(x)) == x`` to within numerical
-    accuracy. (See Notes below for why ``len(a)`` is necessary here.)
-
-    The input is expected to be in the form returned by `rfft`, i.e., the
-    real zero-frequency term followed by the complex positive frequency terms
-    in order of increasing frequency. Since the discrete Fourier Transform of
-    real input is Hermitian-symmetric, the negative frequency terms are taken
-    to be the complex conjugates of the corresponding positive frequency terms.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    n : int, optional
-        Length of the transformed axis of the output.
-        For `n` output points, ``n//2+1`` input points are necessary. If the
-        input is longer than this, it is cropped. If it is shorter than this,
-        it is padded with zeros. If `n` is not given, it is taken to be
-        ``2*(m-1)``, where ``m`` is the length of the input along the axis
-        specified by `axis`.
-    axis : int, optional
-        Axis over which to compute the inverse FFT. If not given, the last
-        axis is used.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : ndarray
-        The truncated or zero-padded input, transformed along the axis
-        indicated by `axis`, or the last one if `axis` is not specified.
-        The length of the transformed axis is `n`, or, if `n` is not given,
-        ``2*(m-1)`` where ``m`` is the length of the transformed axis of the
-        input. To get an odd number of output points, `n` must be specified.
-
-    Raises
-    ------
-    IndexError
-        If `axis` is larger than the last axis of `x`.
-
-    See Also
-    --------
-    rfft : The 1-D FFT of real input, of which `irfft` is inverse.
-    fft : The 1-D FFT.
-    irfft2 : The inverse of the 2-D FFT of real input.
-    irfftn : The inverse of the N-D FFT of real input.
-
-    Notes
-    -----
-    Returns the real valued `n`-point inverse discrete Fourier transform
-    of `x`, where `x` contains the non-negative frequency terms of a
-    Hermitian-symmetric sequence. `n` is the length of the result, not the
-    input.
-
-    If you specify an `n` such that `a` must be zero-padded or truncated, the
-    extra/removed values will be added/removed at high frequencies. One can
-    thus resample a series to `m` points via Fourier interpolation by:
-    ``a_resamp = irfft(rfft(a), m)``.
-
-    The default value of `n` assumes an even output length. By the Hermitian
-    symmetry, the last imaginary component must be 0 and so is ignored. To
-    avoid losing information, the correct length of the real input *must* be
-    given.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> scipy.fft.ifft([1, -1j, -1, 1j])
-    array([0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j]) # may vary
-    >>> scipy.fft.irfft([1, -1j, -1])
-    array([0.,  1.,  0.,  0.])
-
-    Notice how the last term in the input to the ordinary `ifft` is the
-    complex conjugate of the second term, and the output has zero imaginary
-    part everywhere. When calling `irfft`, the negative frequencies are not
-    specified, and the output array is purely real.
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def hfft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *,
-         plan=None):
-    """
-    Compute the FFT of a signal that has Hermitian symmetry, i.e., a real
-    spectrum.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    n : int, optional
-        Length of the transformed axis of the output. For `n` output
-        points, ``n//2 + 1`` input points are necessary. If the input is
-        longer than this, it is cropped. If it is shorter than this, it is
-        padded with zeros. If `n` is not given, it is taken to be ``2*(m-1)``,
-        where ``m`` is the length of the input along the axis specified by
-        `axis`.
-    axis : int, optional
-        Axis over which to compute the FFT. If not given, the last
-        axis is used.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See `fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : ndarray
-        The truncated or zero-padded input, transformed along the axis
-        indicated by `axis`, or the last one if `axis` is not specified.
-        The length of the transformed axis is `n`, or, if `n` is not given,
-        ``2*m - 2``, where ``m`` is the length of the transformed axis of
-        the input. To get an odd number of output points, `n` must be
-        specified, for instance, as ``2*m - 1`` in the typical case,
-
-    Raises
-    ------
-    IndexError
-        If `axis` is larger than the last axis of `a`.
-
-    See Also
-    --------
-    rfft : Compute the 1-D FFT for real input.
-    ihfft : The inverse of `hfft`.
-    hfftn : Compute the N-D FFT of a Hermitian signal.
-
-    Notes
-    -----
-    `hfft`/`ihfft` are a pair analogous to `rfft`/`irfft`, but for the
-    opposite case: here the signal has Hermitian symmetry in the time
-    domain and is real in the frequency domain. So, here, it's `hfft`, for
-    which you must supply the length of the result if it is to be odd.
-    * even: ``ihfft(hfft(a, 2*len(a) - 2) == a``, within roundoff error,
-    * odd: ``ihfft(hfft(a, 2*len(a) - 1) == a``, within roundoff error.
-
-    Examples
-    --------
-    >>> from scipy.fft import fft, hfft
-    >>> import numpy as np
-    >>> a = 2 * np.pi * np.arange(10) / 10
-    >>> signal = np.cos(a) + 3j * np.sin(3 * a)
-    >>> fft(signal).round(10)
-    array([ -0.+0.j,   5.+0.j,  -0.+0.j,  15.-0.j,   0.+0.j,   0.+0.j,
-            -0.+0.j, -15.-0.j,   0.+0.j,   5.+0.j])
-    >>> hfft(signal[:6]).round(10) # Input first half of signal
-    array([  0.,   5.,   0.,  15.,  -0.,   0.,   0., -15.,  -0.,   5.])
-    >>> hfft(signal, 10)  # Input entire signal and truncate
-    array([  0.,   5.,   0.,  15.,  -0.,   0.,   0., -15.,  -0.,   5.])
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def ihfft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *,
-          plan=None):
-    """
-    Compute the inverse FFT of a signal that has Hermitian symmetry.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array.
-    n : int, optional
-        Length of the inverse FFT, the number of points along
-        transformation axis in the input to use.  If `n` is smaller than
-        the length of the input, the input is cropped. If it is larger,
-        the input is padded with zeros. If `n` is not given, the length of
-        the input along the axis specified by `axis` is used.
-    axis : int, optional
-        Axis over which to compute the inverse FFT. If not given, the last
-        axis is used.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See `fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : complex ndarray
-        The truncated or zero-padded input, transformed along the axis
-        indicated by `axis`, or the last one if `axis` is not specified.
-        The length of the transformed axis is ``n//2 + 1``.
-
-    See Also
-    --------
-    hfft, irfft
-
-    Notes
-    -----
-    `hfft`/`ihfft` are a pair analogous to `rfft`/`irfft`, but for the
-    opposite case: here, the signal has Hermitian symmetry in the time
-    domain and is real in the frequency domain. So, here, it's `hfft`, for
-    which you must supply the length of the result if it is to be odd:
-    * even: ``ihfft(hfft(a, 2*len(a) - 2) == a``, within roundoff error,
-    * odd: ``ihfft(hfft(a, 2*len(a) - 1) == a``, within roundoff error.
-
-    Examples
-    --------
-    >>> from scipy.fft import ifft, ihfft
-    >>> import numpy as np
-    >>> spectrum = np.array([ 15, -4, 0, -1, 0, -4])
-    >>> ifft(spectrum)
-    array([1.+0.j,  2.+0.j,  3.+0.j,  4.+0.j,  3.+0.j,  2.+0.j]) # may vary
-    >>> ihfft(spectrum)
-    array([ 1.-0.j,  2.-0.j,  3.-0.j,  4.-0.j]) # may vary
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def fftn(x, s=None, axes=None, norm=None, overwrite_x=False, workers=None, *,
-         plan=None):
-    """
-    Compute the N-D discrete Fourier Transform.
-
-    This function computes the N-D discrete Fourier Transform over
-    any number of axes in an M-D array by means of the Fast Fourier
-    Transform (FFT).
-
-    Parameters
-    ----------
-    x : array_like
-        Input array, can be complex.
-    s : sequence of ints, optional
-        Shape (length of each transformed axis) of the output
-        (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.).
-        This corresponds to ``n`` for ``fft(x, n)``.
-        Along any axis, if the given shape is smaller than that of the input,
-        the input is cropped. If it is larger, the input is padded with zeros.
-        if `s` is not given, the shape of the input along the axes specified
-        by `axes` is used.
-    axes : sequence of ints, optional
-        Axes over which to compute the FFT. If not given, the last ``len(s)``
-        axes are used, or all axes if `s` is also not specified.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : complex ndarray
-        The truncated or zero-padded input, transformed along the axes
-        indicated by `axes`, or by a combination of `s` and `x`,
-        as explained in the parameters section above.
-
-    Raises
-    ------
-    ValueError
-        If `s` and `axes` have different length.
-    IndexError
-        If an element of `axes` is larger than the number of axes of `x`.
-
-    See Also
-    --------
-    ifftn : The inverse of `fftn`, the inverse N-D FFT.
-    fft : The 1-D FFT, with definitions and conventions used.
-    rfftn : The N-D FFT of real input.
-    fft2 : The 2-D FFT.
-    fftshift : Shifts zero-frequency terms to centre of array.
-
-    Notes
-    -----
-    The output, analogously to `fft`, contains the term for zero frequency in
-    the low-order corner of all axes, the positive frequency terms in the
-    first half of all axes, the term for the Nyquist frequency in the middle
-    of all axes and the negative frequency terms in the second half of all
-    axes, in order of decreasingly negative frequency.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> import numpy as np
-    >>> x = np.mgrid[:3, :3, :3][0]
-    >>> scipy.fft.fftn(x, axes=(1, 2))
-    array([[[ 0.+0.j,   0.+0.j,   0.+0.j], # may vary
-            [ 0.+0.j,   0.+0.j,   0.+0.j],
-            [ 0.+0.j,   0.+0.j,   0.+0.j]],
-           [[ 9.+0.j,   0.+0.j,   0.+0.j],
-            [ 0.+0.j,   0.+0.j,   0.+0.j],
-            [ 0.+0.j,   0.+0.j,   0.+0.j]],
-           [[18.+0.j,   0.+0.j,   0.+0.j],
-            [ 0.+0.j,   0.+0.j,   0.+0.j],
-            [ 0.+0.j,   0.+0.j,   0.+0.j]]])
-    >>> scipy.fft.fftn(x, (2, 2), axes=(0, 1))
-    array([[[ 2.+0.j,  2.+0.j,  2.+0.j], # may vary
-            [ 0.+0.j,  0.+0.j,  0.+0.j]],
-           [[-2.+0.j, -2.+0.j, -2.+0.j],
-            [ 0.+0.j,  0.+0.j,  0.+0.j]]])
-
-    >>> import matplotlib.pyplot as plt
-    >>> rng = np.random.default_rng()
-    >>> [X, Y] = np.meshgrid(2 * np.pi * np.arange(200) / 12,
-    ...                      2 * np.pi * np.arange(200) / 34)
-    >>> S = np.sin(X) + np.cos(Y) + rng.uniform(0, 1, X.shape)
-    >>> FS = scipy.fft.fftn(S)
-    >>> plt.imshow(np.log(np.abs(scipy.fft.fftshift(FS))**2))
-    
-    >>> plt.show()
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def ifftn(x, s=None, axes=None, norm=None, overwrite_x=False, workers=None, *,
-          plan=None):
-    """
-    Compute the N-D inverse discrete Fourier Transform.
-
-    This function computes the inverse of the N-D discrete
-    Fourier Transform over any number of axes in an M-D array by
-    means of the Fast Fourier Transform (FFT).  In other words,
-    ``ifftn(fftn(x)) == x`` to within numerical accuracy.
-
-    The input, analogously to `ifft`, should be ordered in the same way as is
-    returned by `fftn`, i.e., it should have the term for zero frequency
-    in all axes in the low-order corner, the positive frequency terms in the
-    first half of all axes, the term for the Nyquist frequency in the middle
-    of all axes and the negative frequency terms in the second half of all
-    axes, in order of decreasingly negative frequency.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array, can be complex.
-    s : sequence of ints, optional
-        Shape (length of each transformed axis) of the output
-        (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.).
-        This corresponds to ``n`` for ``ifft(x, n)``.
-        Along any axis, if the given shape is smaller than that of the input,
-        the input is cropped. If it is larger, the input is padded with zeros.
-        if `s` is not given, the shape of the input along the axes specified
-        by `axes` is used. See notes for issue on `ifft` zero padding.
-    axes : sequence of ints, optional
-        Axes over which to compute the IFFT.  If not given, the last ``len(s)``
-        axes are used, or all axes if `s` is also not specified.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : complex ndarray
-        The truncated or zero-padded input, transformed along the axes
-        indicated by `axes`, or by a combination of `s` or `x`,
-        as explained in the parameters section above.
-
-    Raises
-    ------
-    ValueError
-        If `s` and `axes` have different length.
-    IndexError
-        If an element of `axes` is larger than the number of axes of `x`.
-
-    See Also
-    --------
-    fftn : The forward N-D FFT, of which `ifftn` is the inverse.
-    ifft : The 1-D inverse FFT.
-    ifft2 : The 2-D inverse FFT.
-    ifftshift : Undoes `fftshift`, shifts zero-frequency terms to beginning
-        of array.
-
-    Notes
-    -----
-    Zero-padding, analogously with `ifft`, is performed by appending zeros to
-    the input along the specified dimension. Although this is the common
-    approach, it might lead to surprising results. If another form of zero
-    padding is desired, it must be performed before `ifftn` is called.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> import numpy as np
-    >>> x = np.eye(4)
-    >>> scipy.fft.ifftn(scipy.fft.fftn(x, axes=(0,)), axes=(1,))
-    array([[1.+0.j,  0.+0.j,  0.+0.j,  0.+0.j], # may vary
-           [0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j],
-           [0.+0.j,  0.+0.j,  1.+0.j,  0.+0.j],
-           [0.+0.j,  0.+0.j,  0.+0.j,  1.+0.j]])
-
-
-    Create and plot an image with band-limited frequency content:
-
-    >>> import matplotlib.pyplot as plt
-    >>> rng = np.random.default_rng()
-    >>> n = np.zeros((200,200), dtype=complex)
-    >>> n[60:80, 20:40] = np.exp(1j*rng.uniform(0, 2*np.pi, (20, 20)))
-    >>> im = scipy.fft.ifftn(n).real
-    >>> plt.imshow(im)
-    
-    >>> plt.show()
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def fft2(x, s=None, axes=(-2, -1), norm=None, overwrite_x=False, workers=None, *,
-         plan=None):
-    """
-    Compute the 2-D discrete Fourier Transform
-
-    This function computes the N-D discrete Fourier Transform
-    over any axes in an M-D array by means of the
-    Fast Fourier Transform (FFT). By default, the transform is computed over
-    the last two axes of the input array, i.e., a 2-dimensional FFT.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array, can be complex
-    s : sequence of ints, optional
-        Shape (length of each transformed axis) of the output
-        (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.).
-        This corresponds to ``n`` for ``fft(x, n)``.
-        Along each axis, if the given shape is smaller than that of the input,
-        the input is cropped. If it is larger, the input is padded with zeros.
-        if `s` is not given, the shape of the input along the axes specified
-        by `axes` is used.
-    axes : sequence of ints, optional
-        Axes over which to compute the FFT. If not given, the last two axes are
-        used.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : complex ndarray
-        The truncated or zero-padded input, transformed along the axes
-        indicated by `axes`, or the last two axes if `axes` is not given.
-
-    Raises
-    ------
-    ValueError
-        If `s` and `axes` have different length, or `axes` not given and
-        ``len(s) != 2``.
-    IndexError
-        If an element of `axes` is larger than the number of axes of `x`.
-
-    See Also
-    --------
-    ifft2 : The inverse 2-D FFT.
-    fft : The 1-D FFT.
-    fftn : The N-D FFT.
-    fftshift : Shifts zero-frequency terms to the center of the array.
-        For 2-D input, swaps first and third quadrants, and second
-        and fourth quadrants.
-
-    Notes
-    -----
-    `fft2` is just `fftn` with a different default for `axes`.
-
-    The output, analogously to `fft`, contains the term for zero frequency in
-    the low-order corner of the transformed axes, the positive frequency terms
-    in the first half of these axes, the term for the Nyquist frequency in the
-    middle of the axes and the negative frequency terms in the second half of
-    the axes, in order of decreasingly negative frequency.
-
-    See `fftn` for details and a plotting example, and `fft` for
-    definitions and conventions used.
-
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> import numpy as np
-    >>> x = np.mgrid[:5, :5][0]
-    >>> scipy.fft.fft2(x)
-    array([[ 50.  +0.j        ,   0.  +0.j        ,   0.  +0.j        , # may vary
-              0.  +0.j        ,   0.  +0.j        ],
-           [-12.5+17.20477401j,   0.  +0.j        ,   0.  +0.j        ,
-              0.  +0.j        ,   0.  +0.j        ],
-           [-12.5 +4.0614962j ,   0.  +0.j        ,   0.  +0.j        ,
-              0.  +0.j        ,   0.  +0.j        ],
-           [-12.5 -4.0614962j ,   0.  +0.j        ,   0.  +0.j        ,
-              0.  +0.j        ,   0.  +0.j        ],
-           [-12.5-17.20477401j,   0.  +0.j        ,   0.  +0.j        ,
-              0.  +0.j        ,   0.  +0.j        ]])
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def ifft2(x, s=None, axes=(-2, -1), norm=None, overwrite_x=False, workers=None, *,
-          plan=None):
-    """
-    Compute the 2-D inverse discrete Fourier Transform.
-
-    This function computes the inverse of the 2-D discrete Fourier
-    Transform over any number of axes in an M-D array by means of
-    the Fast Fourier Transform (FFT). In other words, ``ifft2(fft2(x)) == x``
-    to within numerical accuracy. By default, the inverse transform is
-    computed over the last two axes of the input array.
-
-    The input, analogously to `ifft`, should be ordered in the same way as is
-    returned by `fft2`, i.e., it should have the term for zero frequency
-    in the low-order corner of the two axes, the positive frequency terms in
-    the first half of these axes, the term for the Nyquist frequency in the
-    middle of the axes and the negative frequency terms in the second half of
-    both axes, in order of decreasingly negative frequency.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array, can be complex.
-    s : sequence of ints, optional
-        Shape (length of each axis) of the output (``s[0]`` refers to axis 0,
-        ``s[1]`` to axis 1, etc.). This corresponds to `n` for ``ifft(x, n)``.
-        Along each axis, if the given shape is smaller than that of the input,
-        the input is cropped. If it is larger, the input is padded with zeros.
-        if `s` is not given, the shape of the input along the axes specified
-        by `axes` is used.  See notes for issue on `ifft` zero padding.
-    axes : sequence of ints, optional
-        Axes over which to compute the FFT. If not given, the last two
-        axes are used.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : complex ndarray
-        The truncated or zero-padded input, transformed along the axes
-        indicated by `axes`, or the last two axes if `axes` is not given.
-
-    Raises
-    ------
-    ValueError
-        If `s` and `axes` have different length, or `axes` not given and
-        ``len(s) != 2``.
-    IndexError
-        If an element of `axes` is larger than the number of axes of `x`.
-
-    See Also
-    --------
-    fft2 : The forward 2-D FFT, of which `ifft2` is the inverse.
-    ifftn : The inverse of the N-D FFT.
-    fft : The 1-D FFT.
-    ifft : The 1-D inverse FFT.
-
-    Notes
-    -----
-    `ifft2` is just `ifftn` with a different default for `axes`.
-
-    See `ifftn` for details and a plotting example, and `fft` for
-    definition and conventions used.
-
-    Zero-padding, analogously with `ifft`, is performed by appending zeros to
-    the input along the specified dimension. Although this is the common
-    approach, it might lead to surprising results. If another form of zero
-    padding is desired, it must be performed before `ifft2` is called.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> import numpy as np
-    >>> x = 4 * np.eye(4)
-    >>> scipy.fft.ifft2(x)
-    array([[1.+0.j,  0.+0.j,  0.+0.j,  0.+0.j], # may vary
-           [0.+0.j,  0.+0.j,  0.+0.j,  1.+0.j],
-           [0.+0.j,  0.+0.j,  1.+0.j,  0.+0.j],
-           [0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j]])
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def rfftn(x, s=None, axes=None, norm=None, overwrite_x=False, workers=None, *,
-          plan=None):
-    """
-    Compute the N-D discrete Fourier Transform for real input.
-
-    This function computes the N-D discrete Fourier Transform over
-    any number of axes in an M-D real array by means of the Fast
-    Fourier Transform (FFT). By default, all axes are transformed, with the
-    real transform performed over the last axis, while the remaining
-    transforms are complex.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array, taken to be real.
-    s : sequence of ints, optional
-        Shape (length along each transformed axis) to use from the input.
-        (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.).
-        The final element of `s` corresponds to `n` for ``rfft(x, n)``, while
-        for the remaining axes, it corresponds to `n` for ``fft(x, n)``.
-        Along any axis, if the given shape is smaller than that of the input,
-        the input is cropped. If it is larger, the input is padded with zeros.
-        if `s` is not given, the shape of the input along the axes specified
-        by `axes` is used.
-    axes : sequence of ints, optional
-        Axes over which to compute the FFT. If not given, the last ``len(s)``
-        axes are used, or all axes if `s` is also not specified.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : complex ndarray
-        The truncated or zero-padded input, transformed along the axes
-        indicated by `axes`, or by a combination of `s` and `x`,
-        as explained in the parameters section above.
-        The length of the last axis transformed will be ``s[-1]//2+1``,
-        while the remaining transformed axes will have lengths according to
-        `s`, or unchanged from the input.
-
-    Raises
-    ------
-    ValueError
-        If `s` and `axes` have different length.
-    IndexError
-        If an element of `axes` is larger than the number of axes of `x`.
-
-    See Also
-    --------
-    irfftn : The inverse of `rfftn`, i.e., the inverse of the N-D FFT
-         of real input.
-    fft : The 1-D FFT, with definitions and conventions used.
-    rfft : The 1-D FFT of real input.
-    fftn : The N-D FFT.
-    rfft2 : The 2-D FFT of real input.
-
-    Notes
-    -----
-    The transform for real input is performed over the last transformation
-    axis, as by `rfft`, then the transform over the remaining axes is
-    performed as by `fftn`. The order of the output is as for `rfft` for the
-    final transformation axis, and as for `fftn` for the remaining
-    transformation axes.
-
-    See `fft` for details, definitions and conventions used.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> import numpy as np
-    >>> x = np.ones((2, 2, 2))
-    >>> scipy.fft.rfftn(x)
-    array([[[8.+0.j,  0.+0.j], # may vary
-            [0.+0.j,  0.+0.j]],
-           [[0.+0.j,  0.+0.j],
-            [0.+0.j,  0.+0.j]]])
-
-    >>> scipy.fft.rfftn(x, axes=(2, 0))
-    array([[[4.+0.j,  0.+0.j], # may vary
-            [4.+0.j,  0.+0.j]],
-           [[0.+0.j,  0.+0.j],
-            [0.+0.j,  0.+0.j]]])
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def rfft2(x, s=None, axes=(-2, -1), norm=None, overwrite_x=False, workers=None, *,
-          plan=None):
-    """
-    Compute the 2-D FFT of a real array.
-
-    Parameters
-    ----------
-    x : array
-        Input array, taken to be real.
-    s : sequence of ints, optional
-        Shape of the FFT.
-    axes : sequence of ints, optional
-        Axes over which to compute the FFT.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : ndarray
-        The result of the real 2-D FFT.
-
-    See Also
-    --------
-    irfft2 : The inverse of the 2-D FFT of real input.
-    rfft : The 1-D FFT of real input.
-    rfftn : Compute the N-D discrete Fourier Transform for real
-            input.
-
-    Notes
-    -----
-    This is really just `rfftn` with different default behavior.
-    For more details see `rfftn`.
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def irfftn(x, s=None, axes=None, norm=None, overwrite_x=False, workers=None, *,
-           plan=None):
-    """
-    Computes the inverse of `rfftn`
-
-    This function computes the inverse of the N-D discrete
-    Fourier Transform for real input over any number of axes in an
-    M-D array by means of the Fast Fourier Transform (FFT). In
-    other words, ``irfftn(rfftn(x), x.shape) == x`` to within numerical
-    accuracy. (The ``a.shape`` is necessary like ``len(a)`` is for `irfft`,
-    and for the same reason.)
-
-    The input should be ordered in the same way as is returned by `rfftn`,
-    i.e., as for `irfft` for the final transformation axis, and as for `ifftn`
-    along all the other axes.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array.
-    s : sequence of ints, optional
-        Shape (length of each transformed axis) of the output
-        (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.). `s` is also the
-        number of input points used along this axis, except for the last axis,
-        where ``s[-1]//2+1`` points of the input are used.
-        Along any axis, if the shape indicated by `s` is smaller than that of
-        the input, the input is cropped. If it is larger, the input is padded
-        with zeros. If `s` is not given, the shape of the input along the axes
-        specified by axes is used. Except for the last axis which is taken to be
-        ``2*(m-1)``, where ``m`` is the length of the input along that axis.
-    axes : sequence of ints, optional
-        Axes over which to compute the inverse FFT. If not given, the last
-        `len(s)` axes are used, or all axes if `s` is also not specified.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : ndarray
-        The truncated or zero-padded input, transformed along the axes
-        indicated by `axes`, or by a combination of `s` or `x`,
-        as explained in the parameters section above.
-        The length of each transformed axis is as given by the corresponding
-        element of `s`, or the length of the input in every axis except for the
-        last one if `s` is not given. In the final transformed axis the length
-        of the output when `s` is not given is ``2*(m-1)``, where ``m`` is the
-        length of the final transformed axis of the input. To get an odd
-        number of output points in the final axis, `s` must be specified.
-
-    Raises
-    ------
-    ValueError
-        If `s` and `axes` have different length.
-    IndexError
-        If an element of `axes` is larger than the number of axes of `x`.
-
-    See Also
-    --------
-    rfftn : The forward N-D FFT of real input,
-            of which `ifftn` is the inverse.
-    fft : The 1-D FFT, with definitions and conventions used.
-    irfft : The inverse of the 1-D FFT of real input.
-    irfft2 : The inverse of the 2-D FFT of real input.
-
-    Notes
-    -----
-    See `fft` for definitions and conventions used.
-
-    See `rfft` for definitions and conventions used for real input.
-
-    The default value of `s` assumes an even output length in the final
-    transformation axis. When performing the final complex to real
-    transformation, the Hermitian symmetry requires that the last imaginary
-    component along that axis must be 0 and so it is ignored. To avoid losing
-    information, the correct length of the real input *must* be given.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> import numpy as np
-    >>> x = np.zeros((3, 2, 2))
-    >>> x[0, 0, 0] = 3 * 2 * 2
-    >>> scipy.fft.irfftn(x)
-    array([[[1.,  1.],
-            [1.,  1.]],
-           [[1.,  1.],
-            [1.,  1.]],
-           [[1.,  1.],
-            [1.,  1.]]])
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def irfft2(x, s=None, axes=(-2, -1), norm=None, overwrite_x=False, workers=None, *,
-           plan=None):
-    """
-    Computes the inverse of `rfft2`
-
-    Parameters
-    ----------
-    x : array_like
-        The input array
-    s : sequence of ints, optional
-        Shape of the real output to the inverse FFT.
-    axes : sequence of ints, optional
-        The axes over which to compute the inverse fft.
-        Default is the last two axes.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : ndarray
-        The result of the inverse real 2-D FFT.
-
-    See Also
-    --------
-    rfft2 : The 2-D FFT of real input.
-    irfft : The inverse of the 1-D FFT of real input.
-    irfftn : The inverse of the N-D FFT of real input.
-
-    Notes
-    -----
-    This is really `irfftn` with different defaults.
-    For more details see `irfftn`.
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def hfftn(x, s=None, axes=None, norm=None, overwrite_x=False, workers=None, *,
-          plan=None):
-    """
-    Compute the N-D FFT of Hermitian symmetric complex input, i.e., a
-    signal with a real spectrum.
-
-    This function computes the N-D discrete Fourier Transform for a
-    Hermitian symmetric complex input over any number of axes in an
-    M-D array by means of the Fast Fourier Transform (FFT). In other
-    words, ``ihfftn(hfftn(x, s)) == x`` to within numerical accuracy. (``s``
-    here is ``x.shape`` with ``s[-1] = x.shape[-1] * 2 - 1``, this is necessary
-    for the same reason ``x.shape`` would be necessary for `irfft`.)
-
-    Parameters
-    ----------
-    x : array_like
-        Input array.
-    s : sequence of ints, optional
-        Shape (length of each transformed axis) of the output
-        (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.). `s` is also the
-        number of input points used along this axis, except for the last axis,
-        where ``s[-1]//2+1`` points of the input are used.
-        Along any axis, if the shape indicated by `s` is smaller than that of
-        the input, the input is cropped. If it is larger, the input is padded
-        with zeros. If `s` is not given, the shape of the input along the axes
-        specified by axes is used. Except for the last axis which is taken to be
-        ``2*(m-1)`` where ``m`` is the length of the input along that axis.
-    axes : sequence of ints, optional
-        Axes over which to compute the inverse FFT. If not given, the last
-        `len(s)` axes are used, or all axes if `s` is also not specified.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : ndarray
-        The truncated or zero-padded input, transformed along the axes
-        indicated by `axes`, or by a combination of `s` or `x`,
-        as explained in the parameters section above.
-        The length of each transformed axis is as given by the corresponding
-        element of `s`, or the length of the input in every axis except for the
-        last one if `s` is not given.  In the final transformed axis the length
-        of the output when `s` is not given is ``2*(m-1)`` where ``m`` is the
-        length of the final transformed axis of the input.  To get an odd
-        number of output points in the final axis, `s` must be specified.
-
-    Raises
-    ------
-    ValueError
-        If `s` and `axes` have different length.
-    IndexError
-        If an element of `axes` is larger than the number of axes of `x`.
-
-    See Also
-    --------
-    ihfftn : The inverse N-D FFT with real spectrum. Inverse of `hfftn`.
-    fft : The 1-D FFT, with definitions and conventions used.
-    rfft : Forward FFT of real input.
-
-    Notes
-    -----
-    For a 1-D signal ``x`` to have a real spectrum, it must satisfy
-    the Hermitian property::
-
-        x[i] == np.conj(x[-i]) for all i
-
-    This generalizes into higher dimensions by reflecting over each axis in
-    turn::
-
-        x[i, j, k, ...] == np.conj(x[-i, -j, -k, ...]) for all i, j, k, ...
-
-    This should not be confused with a Hermitian matrix, for which the
-    transpose is its own conjugate::
-
-        x[i, j] == np.conj(x[j, i]) for all i, j
-
-
-    The default value of `s` assumes an even output length in the final
-    transformation axis. When performing the final complex to real
-    transformation, the Hermitian symmetry requires that the last imaginary
-    component along that axis must be 0 and so it is ignored. To avoid losing
-    information, the correct length of the real input *must* be given.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> import numpy as np
-    >>> x = np.ones((3, 2, 2))
-    >>> scipy.fft.hfftn(x)
-    array([[[12.,  0.],
-            [ 0.,  0.]],
-           [[ 0.,  0.],
-            [ 0.,  0.]],
-           [[ 0.,  0.],
-            [ 0.,  0.]]])
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def hfft2(x, s=None, axes=(-2, -1), norm=None, overwrite_x=False, workers=None, *,
-          plan=None):
-    """
-    Compute the 2-D FFT of a Hermitian complex array.
-
-    Parameters
-    ----------
-    x : array
-        Input array, taken to be Hermitian complex.
-    s : sequence of ints, optional
-        Shape of the real output.
-    axes : sequence of ints, optional
-        Axes over which to compute the FFT.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See `fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : ndarray
-        The real result of the 2-D Hermitian complex real FFT.
-
-    See Also
-    --------
-    hfftn : Compute the N-D discrete Fourier Transform for Hermitian
-            complex input.
-
-    Notes
-    -----
-    This is really just `hfftn` with different default behavior.
-    For more details see `hfftn`.
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def ihfftn(x, s=None, axes=None, norm=None, overwrite_x=False, workers=None, *,
-           plan=None):
-    """
-    Compute the N-D inverse discrete Fourier Transform for a real
-    spectrum.
-
-    This function computes the N-D inverse discrete Fourier Transform
-    over any number of axes in an M-D real array by means of the Fast
-    Fourier Transform (FFT). By default, all axes are transformed, with the
-    real transform performed over the last axis, while the remaining transforms
-    are complex.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array, taken to be real.
-    s : sequence of ints, optional
-        Shape (length along each transformed axis) to use from the input.
-        (``s[0]`` refers to axis 0, ``s[1]`` to axis 1, etc.).
-        Along any axis, if the given shape is smaller than that of the input,
-        the input is cropped. If it is larger, the input is padded with zeros.
-        if `s` is not given, the shape of the input along the axes specified
-        by `axes` is used.
-    axes : sequence of ints, optional
-        Axes over which to compute the FFT. If not given, the last ``len(s)``
-        axes are used, or all axes if `s` is also not specified.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : complex ndarray
-        The truncated or zero-padded input, transformed along the axes
-        indicated by `axes`, or by a combination of `s` and `x`,
-        as explained in the parameters section above.
-        The length of the last axis transformed will be ``s[-1]//2+1``,
-        while the remaining transformed axes will have lengths according to
-        `s`, or unchanged from the input.
-
-    Raises
-    ------
-    ValueError
-        If `s` and `axes` have different length.
-    IndexError
-        If an element of `axes` is larger than the number of axes of `x`.
-
-    See Also
-    --------
-    hfftn : The forward N-D FFT of Hermitian input.
-    hfft : The 1-D FFT of Hermitian input.
-    fft : The 1-D FFT, with definitions and conventions used.
-    fftn : The N-D FFT.
-    hfft2 : The 2-D FFT of Hermitian input.
-
-    Notes
-    -----
-    The transform for real input is performed over the last transformation
-    axis, as by `ihfft`, then the transform over the remaining axes is
-    performed as by `ifftn`. The order of the output is the positive part of
-    the Hermitian output signal, in the same format as `rfft`.
-
-    Examples
-    --------
-    >>> import scipy.fft
-    >>> import numpy as np
-    >>> x = np.ones((2, 2, 2))
-    >>> scipy.fft.ihfftn(x)
-    array([[[1.+0.j,  0.+0.j], # may vary
-            [0.+0.j,  0.+0.j]],
-           [[0.+0.j,  0.+0.j],
-            [0.+0.j,  0.+0.j]]])
-    >>> scipy.fft.ihfftn(x, axes=(2, 0))
-    array([[[1.+0.j,  0.+0.j], # may vary
-            [1.+0.j,  0.+0.j]],
-           [[0.+0.j,  0.+0.j],
-            [0.+0.j,  0.+0.j]]])
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def ihfft2(x, s=None, axes=(-2, -1), norm=None, overwrite_x=False, workers=None, *,
-           plan=None):
-    """
-    Compute the 2-D inverse FFT of a real spectrum.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array
-    s : sequence of ints, optional
-        Shape of the real input to the inverse FFT.
-    axes : sequence of ints, optional
-        The axes over which to compute the inverse fft.
-        Default is the last two axes.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see `fft`). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-        See :func:`fft` for more details.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    plan : object, optional
-        This argument is reserved for passing in a precomputed plan provided
-        by downstream FFT vendors. It is currently not used in SciPy.
-
-        .. versionadded:: 1.5.0
-
-    Returns
-    -------
-    out : ndarray
-        The result of the inverse real 2-D FFT.
-
-    See Also
-    --------
-    ihfftn : Compute the inverse of the N-D FFT of Hermitian input.
-
-    Notes
-    -----
-    This is really `ihfftn` with different defaults.
-    For more details see `ihfftn`.
-
-    """
-    return (Dispatchable(x, np.ndarray),)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_basic_backend.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_basic_backend.py
deleted file mode 100644
index b21efa56bc5bdeba9b2f96542ace027373e76c9b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_basic_backend.py
+++ /dev/null
@@ -1,180 +0,0 @@
-from scipy._lib._array_api import (
-    array_namespace, is_numpy, xp_unsupported_param_msg, is_complex
-)
-from . import _pocketfft
-import numpy as np
-
-
-def _validate_fft_args(workers, plan, norm):
-    if workers is not None:
-        raise ValueError(xp_unsupported_param_msg("workers"))
-    if plan is not None:
-        raise ValueError(xp_unsupported_param_msg("plan"))
-    if norm is None:
-        norm = 'backward'
-    return norm
-
-
-# pocketfft is used whenever SCIPY_ARRAY_API is not set,
-# or x is a NumPy array or array-like.
-# When SCIPY_ARRAY_API is set, we try to use xp.fft for CuPy arrays,
-# PyTorch arrays and other array API standard supporting objects.
-# If xp.fft does not exist, we attempt to convert to np and back to use pocketfft.
-
-def _execute_1D(func_str, pocketfft_func, x, n, axis, norm, overwrite_x, workers, plan):
-    xp = array_namespace(x)
-
-    if is_numpy(xp):
-        x = np.asarray(x)
-        return pocketfft_func(x, n=n, axis=axis, norm=norm,
-                              overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-    norm = _validate_fft_args(workers, plan, norm)
-    if hasattr(xp, 'fft'):
-        xp_func = getattr(xp.fft, func_str)
-        return xp_func(x, n=n, axis=axis, norm=norm)
-
-    x = np.asarray(x)
-    y = pocketfft_func(x, n=n, axis=axis, norm=norm)
-    return xp.asarray(y)
-
-
-def _execute_nD(func_str, pocketfft_func, x, s, axes, norm, overwrite_x, workers, plan):
-    xp = array_namespace(x)
-    
-    if is_numpy(xp):
-        x = np.asarray(x)
-        return pocketfft_func(x, s=s, axes=axes, norm=norm,
-                              overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-    norm = _validate_fft_args(workers, plan, norm)
-    if hasattr(xp, 'fft'):
-        xp_func = getattr(xp.fft, func_str)
-        return xp_func(x, s=s, axes=axes, norm=norm)
-
-    x = np.asarray(x)
-    y = pocketfft_func(x, s=s, axes=axes, norm=norm)
-    return xp.asarray(y)
-
-
-def fft(x, n=None, axis=-1, norm=None,
-        overwrite_x=False, workers=None, *, plan=None):
-    return _execute_1D('fft', _pocketfft.fft, x, n=n, axis=axis, norm=norm,
-                       overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-
-def ifft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *,
-         plan=None):
-    return _execute_1D('ifft', _pocketfft.ifft, x, n=n, axis=axis, norm=norm,
-                       overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-
-def rfft(x, n=None, axis=-1, norm=None,
-         overwrite_x=False, workers=None, *, plan=None):
-    return _execute_1D('rfft', _pocketfft.rfft, x, n=n, axis=axis, norm=norm,
-                       overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-
-def irfft(x, n=None, axis=-1, norm=None,
-          overwrite_x=False, workers=None, *, plan=None):
-    return _execute_1D('irfft', _pocketfft.irfft, x, n=n, axis=axis, norm=norm,
-                       overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-
-def hfft(x, n=None, axis=-1, norm=None,
-         overwrite_x=False, workers=None, *, plan=None):
-    return _execute_1D('hfft', _pocketfft.hfft, x, n=n, axis=axis, norm=norm,
-                       overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-
-def ihfft(x, n=None, axis=-1, norm=None,
-          overwrite_x=False, workers=None, *, plan=None):
-    return _execute_1D('ihfft', _pocketfft.ihfft, x, n=n, axis=axis, norm=norm,
-                       overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-
-def fftn(x, s=None, axes=None, norm=None,
-         overwrite_x=False, workers=None, *, plan=None):
-    return _execute_nD('fftn', _pocketfft.fftn, x, s=s, axes=axes, norm=norm,
-                       overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-
-
-def ifftn(x, s=None, axes=None, norm=None,
-          overwrite_x=False, workers=None, *, plan=None):
-    return _execute_nD('ifftn', _pocketfft.ifftn, x, s=s, axes=axes, norm=norm,
-                       overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-
-def fft2(x, s=None, axes=(-2, -1), norm=None,
-         overwrite_x=False, workers=None, *, plan=None):
-    return fftn(x, s, axes, norm, overwrite_x, workers, plan=plan)
-
-
-def ifft2(x, s=None, axes=(-2, -1), norm=None,
-          overwrite_x=False, workers=None, *, plan=None):
-    return ifftn(x, s, axes, norm, overwrite_x, workers, plan=plan)
-
-
-def rfftn(x, s=None, axes=None, norm=None,
-          overwrite_x=False, workers=None, *, plan=None):
-    return _execute_nD('rfftn', _pocketfft.rfftn, x, s=s, axes=axes, norm=norm,
-                       overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-
-def rfft2(x, s=None, axes=(-2, -1), norm=None,
-         overwrite_x=False, workers=None, *, plan=None):
-    return rfftn(x, s, axes, norm, overwrite_x, workers, plan=plan)
-
-
-def irfftn(x, s=None, axes=None, norm=None,
-           overwrite_x=False, workers=None, *, plan=None):
-    return _execute_nD('irfftn', _pocketfft.irfftn, x, s=s, axes=axes, norm=norm,
-                       overwrite_x=overwrite_x, workers=workers, plan=plan)
-
-
-def irfft2(x, s=None, axes=(-2, -1), norm=None,
-           overwrite_x=False, workers=None, *, plan=None):
-    return irfftn(x, s, axes, norm, overwrite_x, workers, plan=plan)
-
-
-def _swap_direction(norm):
-    if norm in (None, 'backward'):
-        norm = 'forward'
-    elif norm == 'forward':
-        norm = 'backward'
-    elif norm != 'ortho':
-        raise ValueError('Invalid norm value %s; should be "backward", '
-                         '"ortho", or "forward".' % norm)
-    return norm
-
-
-def hfftn(x, s=None, axes=None, norm=None,
-          overwrite_x=False, workers=None, *, plan=None):
-    xp = array_namespace(x)
-    if is_numpy(xp):
-        x = np.asarray(x)
-        return _pocketfft.hfftn(x, s, axes, norm, overwrite_x, workers, plan=plan)
-    if is_complex(x, xp):
-        x = xp.conj(x)
-    return irfftn(x, s, axes, _swap_direction(norm),
-                  overwrite_x, workers, plan=plan)
-
-
-def hfft2(x, s=None, axes=(-2, -1), norm=None,
-          overwrite_x=False, workers=None, *, plan=None):
-    return hfftn(x, s, axes, norm, overwrite_x, workers, plan=plan)
-
-
-def ihfftn(x, s=None, axes=None, norm=None,
-           overwrite_x=False, workers=None, *, plan=None):
-    xp = array_namespace(x)
-    if is_numpy(xp):
-        x = np.asarray(x)
-        return _pocketfft.ihfftn(x, s, axes, norm, overwrite_x, workers, plan=plan)
-    return xp.conj(rfftn(x, s, axes, _swap_direction(norm),
-                         overwrite_x, workers, plan=plan))
-
-def ihfft2(x, s=None, axes=(-2, -1), norm=None,
-           overwrite_x=False, workers=None, *, plan=None):
-    return ihfftn(x, s, axes, norm, overwrite_x, workers, plan=plan)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_debug_backends.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_debug_backends.py
deleted file mode 100644
index c9647c5d6ceddc73b97d95f562662ada02c1ae74..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_debug_backends.py
+++ /dev/null
@@ -1,22 +0,0 @@
-import numpy as np
-
-class NumPyBackend:
-    """Backend that uses numpy.fft"""
-    __ua_domain__ = "numpy.scipy.fft"
-
-    @staticmethod
-    def __ua_function__(method, args, kwargs):
-        kwargs.pop("overwrite_x", None)
-
-        fn = getattr(np.fft, method.__name__, None)
-        return (NotImplemented if fn is None
-                else fn(*args, **kwargs))
-
-
-class EchoBackend:
-    """Backend that just prints the __ua_function__ arguments"""
-    __ua_domain__ = "numpy.scipy.fft"
-
-    @staticmethod
-    def __ua_function__(method, args, kwargs):
-        print(method, args, kwargs, sep='\n')
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_fftlog.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_fftlog.py
deleted file mode 100644
index 8960242989c7c1d062af4fe1960c2384abaab94f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_fftlog.py
+++ /dev/null
@@ -1,223 +0,0 @@
-"""Fast Hankel transforms using the FFTLog algorithm.
-
-The implementation closely follows the Fortran code of Hamilton (2000).
-
-added: 14/11/2020 Nicolas Tessore 
-"""
-
-from ._basic import _dispatch
-from scipy._lib.uarray import Dispatchable
-from ._fftlog_backend import fhtoffset
-import numpy as np
-
-__all__ = ['fht', 'ifht', 'fhtoffset']
-
-
-@_dispatch
-def fht(a, dln, mu, offset=0.0, bias=0.0):
-    r'''Compute the fast Hankel transform.
-
-    Computes the discrete Hankel transform of a logarithmically spaced periodic
-    sequence using the FFTLog algorithm [1]_, [2]_.
-
-    Parameters
-    ----------
-    a : array_like (..., n)
-        Real periodic input array, uniformly logarithmically spaced.  For
-        multidimensional input, the transform is performed over the last axis.
-    dln : float
-        Uniform logarithmic spacing of the input array.
-    mu : float
-        Order of the Hankel transform, any positive or negative real number.
-    offset : float, optional
-        Offset of the uniform logarithmic spacing of the output array.
-    bias : float, optional
-        Exponent of power law bias, any positive or negative real number.
-
-    Returns
-    -------
-    A : array_like (..., n)
-        The transformed output array, which is real, periodic, uniformly
-        logarithmically spaced, and of the same shape as the input array.
-
-    See Also
-    --------
-    ifht : The inverse of `fht`.
-    fhtoffset : Return an optimal offset for `fht`.
-
-    Notes
-    -----
-    This function computes a discrete version of the Hankel transform
-
-    .. math::
-
-        A(k) = \int_{0}^{\infty} \! a(r) \, J_\mu(kr) \, k \, dr \;,
-
-    where :math:`J_\mu` is the Bessel function of order :math:`\mu`.  The index
-    :math:`\mu` may be any real number, positive or negative.  Note that the
-    numerical Hankel transform uses an integrand of :math:`k \, dr`, while the
-    mathematical Hankel transform is commonly defined using :math:`r \, dr`.
-
-    The input array `a` is a periodic sequence of length :math:`n`, uniformly
-    logarithmically spaced with spacing `dln`,
-
-    .. math::
-
-        a_j = a(r_j) \;, \quad
-        r_j = r_c \exp[(j-j_c) \, \mathtt{dln}]
-
-    centred about the point :math:`r_c`.  Note that the central index
-    :math:`j_c = (n-1)/2` is half-integral if :math:`n` is even, so that
-    :math:`r_c` falls between two input elements.  Similarly, the output
-    array `A` is a periodic sequence of length :math:`n`, also uniformly
-    logarithmically spaced with spacing `dln`
-
-    .. math::
-
-       A_j = A(k_j) \;, \quad
-       k_j = k_c \exp[(j-j_c) \, \mathtt{dln}]
-
-    centred about the point :math:`k_c`.
-
-    The centre points :math:`r_c` and :math:`k_c` of the periodic intervals may
-    be chosen arbitrarily, but it would be usual to choose the product
-    :math:`k_c r_c = k_j r_{n-1-j} = k_{n-1-j} r_j` to be unity.  This can be
-    changed using the `offset` parameter, which controls the logarithmic offset
-    :math:`\log(k_c) = \mathtt{offset} - \log(r_c)` of the output array.
-    Choosing an optimal value for `offset` may reduce ringing of the discrete
-    Hankel transform.
-
-    If the `bias` parameter is nonzero, this function computes a discrete
-    version of the biased Hankel transform
-
-    .. math::
-
-        A(k) = \int_{0}^{\infty} \! a_q(r) \, (kr)^q \, J_\mu(kr) \, k \, dr
-
-    where :math:`q` is the value of `bias`, and a power law bias
-    :math:`a_q(r) = a(r) \, (kr)^{-q}` is applied to the input sequence.
-    Biasing the transform can help approximate the continuous transform of
-    :math:`a(r)` if there is a value :math:`q` such that :math:`a_q(r)` is
-    close to a periodic sequence, in which case the resulting :math:`A(k)` will
-    be close to the continuous transform.
-
-    References
-    ----------
-    .. [1] Talman J. D., 1978, J. Comp. Phys., 29, 35
-    .. [2] Hamilton A. J. S., 2000, MNRAS, 312, 257 (astro-ph/9905191)
-
-    Examples
-    --------
-
-    This example is the adapted version of ``fftlogtest.f`` which is provided
-    in [2]_. It evaluates the integral
-
-    .. math::
-
-        \int^\infty_0 r^{\mu+1} \exp(-r^2/2) J_\mu(k, r) k dr
-        = k^{\mu+1} \exp(-k^2/2) .
-
-    >>> import numpy as np
-    >>> from scipy import fft
-    >>> import matplotlib.pyplot as plt
-
-    Parameters for the transform.
-
-    >>> mu = 0.0                     # Order mu of Bessel function
-    >>> r = np.logspace(-7, 1, 128)  # Input evaluation points
-    >>> dln = np.log(r[1]/r[0])      # Step size
-    >>> offset = fft.fhtoffset(dln, initial=-6*np.log(10), mu=mu)
-    >>> k = np.exp(offset)/r[::-1]   # Output evaluation points
-
-    Define the analytical function.
-
-    >>> def f(x, mu):
-    ...     """Analytical function: x^(mu+1) exp(-x^2/2)."""
-    ...     return x**(mu + 1)*np.exp(-x**2/2)
-
-    Evaluate the function at ``r`` and compute the corresponding values at
-    ``k`` using FFTLog.
-
-    >>> a_r = f(r, mu)
-    >>> fht = fft.fht(a_r, dln, mu=mu, offset=offset)
-
-    For this example we can actually compute the analytical response (which in
-    this case is the same as the input function) for comparison and compute the
-    relative error.
-
-    >>> a_k = f(k, mu)
-    >>> rel_err = abs((fht-a_k)/a_k)
-
-    Plot the result.
-
-    >>> figargs = {'sharex': True, 'sharey': True, 'constrained_layout': True}
-    >>> fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4), **figargs)
-    >>> ax1.set_title(r'$r^{\mu+1}\ \exp(-r^2/2)$')
-    >>> ax1.loglog(r, a_r, 'k', lw=2)
-    >>> ax1.set_xlabel('r')
-    >>> ax2.set_title(r'$k^{\mu+1} \exp(-k^2/2)$')
-    >>> ax2.loglog(k, a_k, 'k', lw=2, label='Analytical')
-    >>> ax2.loglog(k, fht, 'C3--', lw=2, label='FFTLog')
-    >>> ax2.set_xlabel('k')
-    >>> ax2.legend(loc=3, framealpha=1)
-    >>> ax2.set_ylim([1e-10, 1e1])
-    >>> ax2b = ax2.twinx()
-    >>> ax2b.loglog(k, rel_err, 'C0', label='Rel. Error (-)')
-    >>> ax2b.set_ylabel('Rel. Error (-)', color='C0')
-    >>> ax2b.tick_params(axis='y', labelcolor='C0')
-    >>> ax2b.legend(loc=4, framealpha=1)
-    >>> ax2b.set_ylim([1e-9, 1e-3])
-    >>> plt.show()
-
-    '''
-    return (Dispatchable(a, np.ndarray),)
-
-
-@_dispatch
-def ifht(A, dln, mu, offset=0.0, bias=0.0):
-    r"""Compute the inverse fast Hankel transform.
-
-    Computes the discrete inverse Hankel transform of a logarithmically spaced
-    periodic sequence. This is the inverse operation to `fht`.
-
-    Parameters
-    ----------
-    A : array_like (..., n)
-        Real periodic input array, uniformly logarithmically spaced.  For
-        multidimensional input, the transform is performed over the last axis.
-    dln : float
-        Uniform logarithmic spacing of the input array.
-    mu : float
-        Order of the Hankel transform, any positive or negative real number.
-    offset : float, optional
-        Offset of the uniform logarithmic spacing of the output array.
-    bias : float, optional
-        Exponent of power law bias, any positive or negative real number.
-
-    Returns
-    -------
-    a : array_like (..., n)
-        The transformed output array, which is real, periodic, uniformly
-        logarithmically spaced, and of the same shape as the input array.
-
-    See Also
-    --------
-    fht : Definition of the fast Hankel transform.
-    fhtoffset : Return an optimal offset for `ifht`.
-
-    Notes
-    -----
-    This function computes a discrete version of the Hankel transform
-
-    .. math::
-
-        a(r) = \int_{0}^{\infty} \! A(k) \, J_\mu(kr) \, r \, dk \;,
-
-    where :math:`J_\mu` is the Bessel function of order :math:`\mu`.  The index
-    :math:`\mu` may be any real number, positive or negative. Note that the
-    numerical inverse Hankel transform uses an integrand of :math:`r \, dk`, while the
-    mathematical inverse Hankel transform is commonly defined using :math:`k \, dk`.
-
-    See `fht` for further details.
-    """
-    return (Dispatchable(A, np.ndarray),)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_fftlog_backend.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_fftlog_backend.py
deleted file mode 100644
index 616752104d942edef93b8ed41bb8b302ed686ca3..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_fftlog_backend.py
+++ /dev/null
@@ -1,199 +0,0 @@
-import numpy as np
-from warnings import warn
-from ._basic import rfft, irfft
-from ..special import loggamma, poch
-
-from scipy._lib._array_api import array_namespace, copy
-
-__all__ = ['fht', 'ifht', 'fhtoffset']
-
-# constants
-LN_2 = np.log(2)
-
-
-def fht(a, dln, mu, offset=0.0, bias=0.0):
-    xp = array_namespace(a)
-    a = xp.asarray(a)
-
-    # size of transform
-    n = a.shape[-1]
-
-    # bias input array
-    if bias != 0:
-        # a_q(r) = a(r) (r/r_c)^{-q}
-        j_c = (n-1)/2
-        j = xp.arange(n, dtype=xp.float64)
-        a = a * xp.exp(-bias*(j - j_c)*dln)
-
-    # compute FHT coefficients
-    u = xp.asarray(fhtcoeff(n, dln, mu, offset=offset, bias=bias))
-
-    # transform
-    A = _fhtq(a, u, xp=xp)
-
-    # bias output array
-    if bias != 0:
-        # A(k) = A_q(k) (k/k_c)^{-q} (k_c r_c)^{-q}
-        A *= xp.exp(-bias*((j - j_c)*dln + offset))
-
-    return A
-
-
-def ifht(A, dln, mu, offset=0.0, bias=0.0):
-    xp = array_namespace(A)
-    A = xp.asarray(A)
-
-    # size of transform
-    n = A.shape[-1]
-
-    # bias input array
-    if bias != 0:
-        # A_q(k) = A(k) (k/k_c)^{q} (k_c r_c)^{q}
-        j_c = (n-1)/2
-        j = xp.arange(n, dtype=xp.float64)
-        A = A * xp.exp(bias*((j - j_c)*dln + offset))
-
-    # compute FHT coefficients
-    u = xp.asarray(fhtcoeff(n, dln, mu, offset=offset, bias=bias, inverse=True))
-
-    # transform
-    a = _fhtq(A, u, inverse=True, xp=xp)
-
-    # bias output array
-    if bias != 0:
-        # a(r) = a_q(r) (r/r_c)^{q}
-        a /= xp.exp(-bias*(j - j_c)*dln)
-
-    return a
-
-
-def fhtcoeff(n, dln, mu, offset=0.0, bias=0.0, inverse=False):
-    """Compute the coefficient array for a fast Hankel transform."""
-    lnkr, q = offset, bias
-
-    # Hankel transform coefficients
-    # u_m = (kr)^{-i 2m pi/(n dlnr)} U_mu(q + i 2m pi/(n dlnr))
-    # with U_mu(x) = 2^x Gamma((mu+1+x)/2)/Gamma((mu+1-x)/2)
-    xp = (mu+1+q)/2
-    xm = (mu+1-q)/2
-    y = np.linspace(0, np.pi*(n//2)/(n*dln), n//2+1)
-    u = np.empty(n//2+1, dtype=complex)
-    v = np.empty(n//2+1, dtype=complex)
-    u.imag[:] = y
-    u.real[:] = xm
-    loggamma(u, out=v)
-    u.real[:] = xp
-    loggamma(u, out=u)
-    y *= 2*(LN_2 - lnkr)
-    u.real -= v.real
-    u.real += LN_2*q
-    u.imag += v.imag
-    u.imag += y
-    np.exp(u, out=u)
-
-    # fix last coefficient to be real
-    u.imag[-1] = 0
-
-    # deal with special cases
-    if not np.isfinite(u[0]):
-        # write u_0 = 2^q Gamma(xp)/Gamma(xm) = 2^q poch(xm, xp-xm)
-        # poch() handles special cases for negative integers correctly
-        u[0] = 2**q * poch(xm, xp-xm)
-        # the coefficient may be inf or 0, meaning the transform or the
-        # inverse transform, respectively, is singular
-
-    # check for singular transform or singular inverse transform
-    if np.isinf(u[0]) and not inverse:
-        warn('singular transform; consider changing the bias', stacklevel=3)
-        # fix coefficient to obtain (potentially correct) transform anyway
-        u = copy(u)
-        u[0] = 0
-    elif u[0] == 0 and inverse:
-        warn('singular inverse transform; consider changing the bias', stacklevel=3)
-        # fix coefficient to obtain (potentially correct) inverse anyway
-        u = copy(u)
-        u[0] = np.inf
-
-    return u
-
-
-def fhtoffset(dln, mu, initial=0.0, bias=0.0):
-    """Return optimal offset for a fast Hankel transform.
-
-    Returns an offset close to `initial` that fulfils the low-ringing
-    condition of [1]_ for the fast Hankel transform `fht` with logarithmic
-    spacing `dln`, order `mu` and bias `bias`.
-
-    Parameters
-    ----------
-    dln : float
-        Uniform logarithmic spacing of the transform.
-    mu : float
-        Order of the Hankel transform, any positive or negative real number.
-    initial : float, optional
-        Initial value for the offset. Returns the closest value that fulfils
-        the low-ringing condition.
-    bias : float, optional
-        Exponent of power law bias, any positive or negative real number.
-
-    Returns
-    -------
-    offset : float
-        Optimal offset of the uniform logarithmic spacing of the transform that
-        fulfils a low-ringing condition.
-
-    Examples
-    --------
-    >>> from scipy.fft import fhtoffset
-    >>> dln = 0.1
-    >>> mu = 2.0
-    >>> initial = 0.5
-    >>> bias = 0.0
-    >>> offset = fhtoffset(dln, mu, initial, bias)
-    >>> offset
-    0.5454581477676637
-
-    See Also
-    --------
-    fht : Definition of the fast Hankel transform.
-
-    References
-    ----------
-    .. [1] Hamilton A. J. S., 2000, MNRAS, 312, 257 (astro-ph/9905191)
-
-    """
-
-    lnkr, q = initial, bias
-
-    xp = (mu+1+q)/2
-    xm = (mu+1-q)/2
-    y = np.pi/(2*dln)
-    zp = loggamma(xp + 1j*y)
-    zm = loggamma(xm + 1j*y)
-    arg = (LN_2 - lnkr)/dln + (zp.imag + zm.imag)/np.pi
-    return lnkr + (arg - np.round(arg))*dln
-
-
-def _fhtq(a, u, inverse=False, *, xp=None):
-    """Compute the biased fast Hankel transform.
-
-    This is the basic FFTLog routine.
-    """
-    if xp is None:
-        xp = np
-
-    # size of transform
-    n = a.shape[-1]
-
-    # biased fast Hankel transform via real FFT
-    A = rfft(a, axis=-1)
-    if not inverse:
-        # forward transform
-        A *= u
-    else:
-        # backward transform
-        A /= xp.conj(u)
-    A = irfft(A, n, axis=-1)
-    A = xp.flip(A, axis=-1)
-
-    return A
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_helper.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_helper.py
deleted file mode 100644
index 76e08c4f61c854f9bfb9407a1951f2cf5a2af123..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_helper.py
+++ /dev/null
@@ -1,379 +0,0 @@
-from functools import update_wrapper, lru_cache
-import inspect
-
-from ._pocketfft import helper as _helper
-
-import numpy as np
-from scipy._lib._array_api import array_namespace
-
-
-def next_fast_len(target, real=False):
-    """Find the next fast size of input data to ``fft``, for zero-padding, etc.
-
-    SciPy's FFT algorithms gain their speed by a recursive divide and conquer
-    strategy. This relies on efficient functions for small prime factors of the
-    input length. Thus, the transforms are fastest when using composites of the
-    prime factors handled by the fft implementation. If there are efficient
-    functions for all radices <= `n`, then the result will be a number `x`
-    >= ``target`` with only prime factors < `n`. (Also known as `n`-smooth
-    numbers)
-
-    Parameters
-    ----------
-    target : int
-        Length to start searching from. Must be a positive integer.
-    real : bool, optional
-        True if the FFT involves real input or output (e.g., `rfft` or `hfft`
-        but not `fft`). Defaults to False.
-
-    Returns
-    -------
-    out : int
-        The smallest fast length greater than or equal to ``target``.
-
-    Notes
-    -----
-    The result of this function may change in future as performance
-    considerations change, for example, if new prime factors are added.
-
-    Calling `fft` or `ifft` with real input data performs an ``'R2C'``
-    transform internally.
-
-    Examples
-    --------
-    On a particular machine, an FFT of prime length takes 11.4 ms:
-
-    >>> from scipy import fft
-    >>> import numpy as np
-    >>> rng = np.random.default_rng()
-    >>> min_len = 93059  # prime length is worst case for speed
-    >>> a = rng.standard_normal(min_len)
-    >>> b = fft.fft(a)
-
-    Zero-padding to the next regular length reduces computation time to
-    1.6 ms, a speedup of 7.3 times:
-
-    >>> fft.next_fast_len(min_len, real=True)
-    93312
-    >>> b = fft.fft(a, 93312)
-
-    Rounding up to the next power of 2 is not optimal, taking 3.0 ms to
-    compute; 1.9 times longer than the size given by ``next_fast_len``:
-
-    >>> b = fft.fft(a, 131072)
-
-    """
-    pass
-
-
-# Directly wrap the c-function good_size but take the docstring etc., from the
-# next_fast_len function above
-_sig = inspect.signature(next_fast_len)
-next_fast_len = update_wrapper(lru_cache(_helper.good_size), next_fast_len)
-next_fast_len.__wrapped__ = _helper.good_size
-next_fast_len.__signature__ = _sig
-
-
-def prev_fast_len(target, real=False):
-    """Find the previous fast size of input data to ``fft``.
-    Useful for discarding a minimal number of samples before FFT.
-
-    SciPy's FFT algorithms gain their speed by a recursive divide and conquer
-    strategy. This relies on efficient functions for small prime factors of the
-    input length. Thus, the transforms are fastest when using composites of the
-    prime factors handled by the fft implementation. If there are efficient
-    functions for all radices <= `n`, then the result will be a number `x`
-    <= ``target`` with only prime factors <= `n`. (Also known as `n`-smooth
-    numbers)
-
-    Parameters
-    ----------
-    target : int
-        Maximum length to search until. Must be a positive integer.
-    real : bool, optional
-        True if the FFT involves real input or output (e.g., `rfft` or `hfft`
-        but not `fft`). Defaults to False.
-
-    Returns
-    -------
-    out : int
-        The largest fast length less than or equal to ``target``.
-
-    Notes
-    -----
-    The result of this function may change in future as performance
-    considerations change, for example, if new prime factors are added.
-
-    Calling `fft` or `ifft` with real input data performs an ``'R2C'``
-    transform internally.
-
-    In the current implementation, prev_fast_len assumes radices of
-    2,3,5,7,11 for complex FFT and 2,3,5 for real FFT.
-
-    Examples
-    --------
-    On a particular machine, an FFT of prime length takes 16.2 ms:
-
-    >>> from scipy import fft
-    >>> import numpy as np
-    >>> rng = np.random.default_rng()
-    >>> max_len = 93059  # prime length is worst case for speed
-    >>> a = rng.standard_normal(max_len)
-    >>> b = fft.fft(a)
-
-    Performing FFT on the maximum fast length less than max_len
-    reduces the computation time to 1.5 ms, a speedup of 10.5 times:
-
-    >>> fft.prev_fast_len(max_len, real=True)
-    92160
-    >>> c = fft.fft(a[:92160]) # discard last 899 samples
-
-    """
-    pass
-
-
-# Directly wrap the c-function prev_good_size but take the docstring etc.,
-# from the prev_fast_len function above
-_sig_prev_fast_len = inspect.signature(prev_fast_len)
-prev_fast_len = update_wrapper(lru_cache()(_helper.prev_good_size), prev_fast_len)
-prev_fast_len.__wrapped__ = _helper.prev_good_size
-prev_fast_len.__signature__ = _sig_prev_fast_len
-
-
-def _init_nd_shape_and_axes(x, shape, axes):
-    """Handle shape and axes arguments for N-D transforms.
-
-    Returns the shape and axes in a standard form, taking into account negative
-    values and checking for various potential errors.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    shape : int or array_like of ints or None
-        The shape of the result. If both `shape` and `axes` (see below) are
-        None, `shape` is ``x.shape``; if `shape` is None but `axes` is
-        not None, then `shape` is ``numpy.take(x.shape, axes, axis=0)``.
-        If `shape` is -1, the size of the corresponding dimension of `x` is
-        used.
-    axes : int or array_like of ints or None
-        Axes along which the calculation is computed.
-        The default is over all axes.
-        Negative indices are automatically converted to their positive
-        counterparts.
-
-    Returns
-    -------
-    shape : tuple
-        The shape of the result as a tuple of integers.
-    axes : list
-        Axes along which the calculation is computed, as a list of integers.
-
-    """
-    x = np.asarray(x)
-    return _helper._init_nd_shape_and_axes(x, shape, axes)
-
-
-def fftfreq(n, d=1.0, *, xp=None, device=None):
-    """Return the Discrete Fourier Transform sample frequencies.
-
-    The returned float array `f` contains the frequency bin centers in cycles
-    per unit of the sample spacing (with zero at the start).  For instance, if
-    the sample spacing is in seconds, then the frequency unit is cycles/second.
-
-    Given a window length `n` and a sample spacing `d`::
-
-      f = [0, 1, ...,   n/2-1,     -n/2, ..., -1] / (d*n)   if n is even
-      f = [0, 1, ..., (n-1)/2, -(n-1)/2, ..., -1] / (d*n)   if n is odd
-
-    Parameters
-    ----------
-    n : int
-        Window length.
-    d : scalar, optional
-        Sample spacing (inverse of the sampling rate). Defaults to 1.
-    xp : array_namespace, optional
-        The namespace for the return array. Default is None, where NumPy is used.
-    device : device, optional
-        The device for the return array.
-        Only valid when `xp.fft.fftfreq` implements the device parameter.
-     
-    Returns
-    -------
-    f : ndarray
-        Array of length `n` containing the sample frequencies.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.fft
-    >>> signal = np.array([-2, 8, 6, 4, 1, 0, 3, 5], dtype=float)
-    >>> fourier = scipy.fft.fft(signal)
-    >>> n = signal.size
-    >>> timestep = 0.1
-    >>> freq = scipy.fft.fftfreq(n, d=timestep)
-    >>> freq
-    array([ 0.  ,  1.25,  2.5 , ..., -3.75, -2.5 , -1.25])
-
-    """
-    xp = np if xp is None else xp
-    # numpy does not yet support the `device` keyword
-    # `xp.__name__ != 'numpy'` should be removed when numpy is compatible
-    if hasattr(xp, 'fft') and xp.__name__ != 'numpy':
-        return xp.fft.fftfreq(n, d=d, device=device)
-    if device is not None:
-        raise ValueError('device parameter is not supported for input array type')
-    return np.fft.fftfreq(n, d=d)
-
-
-def rfftfreq(n, d=1.0, *, xp=None, device=None):
-    """Return the Discrete Fourier Transform sample frequencies
-    (for usage with rfft, irfft).
-
-    The returned float array `f` contains the frequency bin centers in cycles
-    per unit of the sample spacing (with zero at the start).  For instance, if
-    the sample spacing is in seconds, then the frequency unit is cycles/second.
-
-    Given a window length `n` and a sample spacing `d`::
-
-      f = [0, 1, ...,     n/2-1,     n/2] / (d*n)   if n is even
-      f = [0, 1, ..., (n-1)/2-1, (n-1)/2] / (d*n)   if n is odd
-
-    Unlike `fftfreq` (but like `scipy.fftpack.rfftfreq`)
-    the Nyquist frequency component is considered to be positive.
-
-    Parameters
-    ----------
-    n : int
-        Window length.
-    d : scalar, optional
-        Sample spacing (inverse of the sampling rate). Defaults to 1.
-    xp : array_namespace, optional
-        The namespace for the return array. Default is None, where NumPy is used.
-    device : device, optional
-        The device for the return array.
-        Only valid when `xp.fft.rfftfreq` implements the device parameter.
-
-    Returns
-    -------
-    f : ndarray
-        Array of length ``n//2 + 1`` containing the sample frequencies.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.fft
-    >>> signal = np.array([-2, 8, 6, 4, 1, 0, 3, 5, -3, 4], dtype=float)
-    >>> fourier = scipy.fft.rfft(signal)
-    >>> n = signal.size
-    >>> sample_rate = 100
-    >>> freq = scipy.fft.fftfreq(n, d=1./sample_rate)
-    >>> freq
-    array([  0.,  10.,  20., ..., -30., -20., -10.])
-    >>> freq = scipy.fft.rfftfreq(n, d=1./sample_rate)
-    >>> freq
-    array([  0.,  10.,  20.,  30.,  40.,  50.])
-
-    """
-    xp = np if xp is None else xp
-    # numpy does not yet support the `device` keyword
-    # `xp.__name__ != 'numpy'` should be removed when numpy is compatible
-    if hasattr(xp, 'fft') and xp.__name__ != 'numpy':
-        return xp.fft.rfftfreq(n, d=d, device=device)
-    if device is not None:
-        raise ValueError('device parameter is not supported for input array type')
-    return np.fft.rfftfreq(n, d=d)
-
-
-def fftshift(x, axes=None):
-    """Shift the zero-frequency component to the center of the spectrum.
-
-    This function swaps half-spaces for all axes listed (defaults to all).
-    Note that ``y[0]`` is the Nyquist component only if ``len(x)`` is even.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array.
-    axes : int or shape tuple, optional
-        Axes over which to shift.  Default is None, which shifts all axes.
-
-    Returns
-    -------
-    y : ndarray
-        The shifted array.
-
-    See Also
-    --------
-    ifftshift : The inverse of `fftshift`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> freqs = np.fft.fftfreq(10, 0.1)
-    >>> freqs
-    array([ 0.,  1.,  2., ..., -3., -2., -1.])
-    >>> np.fft.fftshift(freqs)
-    array([-5., -4., -3., -2., -1.,  0.,  1.,  2.,  3.,  4.])
-
-    Shift the zero-frequency component only along the second axis:
-
-    >>> freqs = np.fft.fftfreq(9, d=1./9).reshape(3, 3)
-    >>> freqs
-    array([[ 0.,  1.,  2.],
-           [ 3.,  4., -4.],
-           [-3., -2., -1.]])
-    >>> np.fft.fftshift(freqs, axes=(1,))
-    array([[ 2.,  0.,  1.],
-           [-4.,  3.,  4.],
-           [-1., -3., -2.]])
-
-    """
-    xp = array_namespace(x)
-    if hasattr(xp, 'fft'):
-        return xp.fft.fftshift(x, axes=axes)
-    x = np.asarray(x)
-    y = np.fft.fftshift(x, axes=axes)
-    return xp.asarray(y)
-
-
-def ifftshift(x, axes=None):
-    """The inverse of `fftshift`. Although identical for even-length `x`, the
-    functions differ by one sample for odd-length `x`.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array.
-    axes : int or shape tuple, optional
-        Axes over which to calculate.  Defaults to None, which shifts all axes.
-
-    Returns
-    -------
-    y : ndarray
-        The shifted array.
-
-    See Also
-    --------
-    fftshift : Shift zero-frequency component to the center of the spectrum.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> freqs = np.fft.fftfreq(9, d=1./9).reshape(3, 3)
-    >>> freqs
-    array([[ 0.,  1.,  2.],
-           [ 3.,  4., -4.],
-           [-3., -2., -1.]])
-    >>> np.fft.ifftshift(np.fft.fftshift(freqs))
-    array([[ 0.,  1.,  2.],
-           [ 3.,  4., -4.],
-           [-3., -2., -1.]])
-
-    """
-    xp = array_namespace(x)
-    if hasattr(xp, 'fft'):
-        return xp.fft.ifftshift(x, axes=axes)
-    x = np.asarray(x)
-    y = np.fft.ifftshift(x, axes=axes)
-    return xp.asarray(y)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/LICENSE.md b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/LICENSE.md
deleted file mode 100644
index 1b5163d8435976c24988afbd39ded304947178cb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/LICENSE.md
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (C) 2010-2019 Max-Planck-Society
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-* Neither the name of the copyright holder nor the names of its contributors may
-  be used to endorse or promote products derived from this software without
-  specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__init__.py
deleted file mode 100644
index 0671484c9a0780df353b9b783813b6fa7492d38d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__init__.py
+++ /dev/null
@@ -1,9 +0,0 @@
-""" FFT backend using pypocketfft """
-
-from .basic import *
-from .realtransforms import *
-from .helper import *
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 5b6101f8b4748663762dd9fbbc0a2713df566ff8..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/basic.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/basic.cpython-310.pyc
deleted file mode 100644
index b78d6cabb6c7922662e08365dd76add502c23625..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/basic.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/helper.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/helper.cpython-310.pyc
deleted file mode 100644
index 16a4049bacc16a3c1c198350f023420398307200..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/helper.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/realtransforms.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/realtransforms.cpython-310.pyc
deleted file mode 100644
index 4ae7bd398a95a671432f73e6326e296cf0ef1fc6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__pycache__/realtransforms.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/basic.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/basic.py
deleted file mode 100644
index bd2d0d33958021c431171b72f72c37363ac98e03..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/basic.py
+++ /dev/null
@@ -1,251 +0,0 @@
-"""
-Discrete Fourier Transforms - basic.py
-"""
-import numpy as np
-import functools
-from . import pypocketfft as pfft
-from .helper import (_asfarray, _init_nd_shape_and_axes, _datacopied,
-                     _fix_shape, _fix_shape_1d, _normalization,
-                     _workers)
-
-def c2c(forward, x, n=None, axis=-1, norm=None, overwrite_x=False,
-        workers=None, *, plan=None):
-    """ Return discrete Fourier transform of real or complex sequence. """
-    if plan is not None:
-        raise NotImplementedError('Passing a precomputed plan is not yet '
-                                  'supported by scipy.fft functions')
-    tmp = _asfarray(x)
-    overwrite_x = overwrite_x or _datacopied(tmp, x)
-    norm = _normalization(norm, forward)
-    workers = _workers(workers)
-
-    if n is not None:
-        tmp, copied = _fix_shape_1d(tmp, n, axis)
-        overwrite_x = overwrite_x or copied
-    elif tmp.shape[axis] < 1:
-        message = f"invalid number of data points ({tmp.shape[axis]}) specified"
-        raise ValueError(message)
-
-    out = (tmp if overwrite_x and tmp.dtype.kind == 'c' else None)
-
-    return pfft.c2c(tmp, (axis,), forward, norm, out, workers)
-
-
-fft = functools.partial(c2c, True)
-fft.__name__ = 'fft'
-ifft = functools.partial(c2c, False)
-ifft.__name__ = 'ifft'
-
-
-def r2c(forward, x, n=None, axis=-1, norm=None, overwrite_x=False,
-        workers=None, *, plan=None):
-    """
-    Discrete Fourier transform of a real sequence.
-    """
-    if plan is not None:
-        raise NotImplementedError('Passing a precomputed plan is not yet '
-                                  'supported by scipy.fft functions')
-    tmp = _asfarray(x)
-    norm = _normalization(norm, forward)
-    workers = _workers(workers)
-
-    if not np.isrealobj(tmp):
-        raise TypeError("x must be a real sequence")
-
-    if n is not None:
-        tmp, _ = _fix_shape_1d(tmp, n, axis)
-    elif tmp.shape[axis] < 1:
-        raise ValueError(f"invalid number of data points ({tmp.shape[axis]}) specified")
-
-    # Note: overwrite_x is not utilised
-    return pfft.r2c(tmp, (axis,), forward, norm, None, workers)
-
-
-rfft = functools.partial(r2c, True)
-rfft.__name__ = 'rfft'
-ihfft = functools.partial(r2c, False)
-ihfft.__name__ = 'ihfft'
-
-
-def c2r(forward, x, n=None, axis=-1, norm=None, overwrite_x=False,
-        workers=None, *, plan=None):
-    """
-    Return inverse discrete Fourier transform of real sequence x.
-    """
-    if plan is not None:
-        raise NotImplementedError('Passing a precomputed plan is not yet '
-                                  'supported by scipy.fft functions')
-    tmp = _asfarray(x)
-    norm = _normalization(norm, forward)
-    workers = _workers(workers)
-
-    # TODO: Optimize for hermitian and real?
-    if np.isrealobj(tmp):
-        tmp = tmp + 0.j
-
-    # Last axis utilizes hermitian symmetry
-    if n is None:
-        n = (tmp.shape[axis] - 1) * 2
-        if n < 1:
-            raise ValueError(f"Invalid number of data points ({n}) specified")
-    else:
-        tmp, _ = _fix_shape_1d(tmp, (n//2) + 1, axis)
-
-    # Note: overwrite_x is not utilized
-    return pfft.c2r(tmp, (axis,), n, forward, norm, None, workers)
-
-
-hfft = functools.partial(c2r, True)
-hfft.__name__ = 'hfft'
-irfft = functools.partial(c2r, False)
-irfft.__name__ = 'irfft'
-
-
-def hfft2(x, s=None, axes=(-2,-1), norm=None, overwrite_x=False, workers=None,
-          *, plan=None):
-    """
-    2-D discrete Fourier transform of a Hermitian sequence
-    """
-    if plan is not None:
-        raise NotImplementedError('Passing a precomputed plan is not yet '
-                                  'supported by scipy.fft functions')
-    return hfftn(x, s, axes, norm, overwrite_x, workers)
-
-
-def ihfft2(x, s=None, axes=(-2,-1), norm=None, overwrite_x=False, workers=None,
-           *, plan=None):
-    """
-    2-D discrete inverse Fourier transform of a Hermitian sequence
-    """
-    if plan is not None:
-        raise NotImplementedError('Passing a precomputed plan is not yet '
-                                  'supported by scipy.fft functions')
-    return ihfftn(x, s, axes, norm, overwrite_x, workers)
-
-
-def c2cn(forward, x, s=None, axes=None, norm=None, overwrite_x=False,
-         workers=None, *, plan=None):
-    """
-    Return multidimensional discrete Fourier transform.
-    """
-    if plan is not None:
-        raise NotImplementedError('Passing a precomputed plan is not yet '
-                                  'supported by scipy.fft functions')
-    tmp = _asfarray(x)
-
-    shape, axes = _init_nd_shape_and_axes(tmp, s, axes)
-    overwrite_x = overwrite_x or _datacopied(tmp, x)
-    workers = _workers(workers)
-
-    if len(axes) == 0:
-        return x
-
-    tmp, copied = _fix_shape(tmp, shape, axes)
-    overwrite_x = overwrite_x or copied
-
-    norm = _normalization(norm, forward)
-    out = (tmp if overwrite_x and tmp.dtype.kind == 'c' else None)
-
-    return pfft.c2c(tmp, axes, forward, norm, out, workers)
-
-
-fftn = functools.partial(c2cn, True)
-fftn.__name__ = 'fftn'
-ifftn = functools.partial(c2cn, False)
-ifftn.__name__ = 'ifftn'
-
-def r2cn(forward, x, s=None, axes=None, norm=None, overwrite_x=False,
-         workers=None, *, plan=None):
-    """Return multidimensional discrete Fourier transform of real input"""
-    if plan is not None:
-        raise NotImplementedError('Passing a precomputed plan is not yet '
-                                  'supported by scipy.fft functions')
-    tmp = _asfarray(x)
-
-    if not np.isrealobj(tmp):
-        raise TypeError("x must be a real sequence")
-
-    shape, axes = _init_nd_shape_and_axes(tmp, s, axes)
-    tmp, _ = _fix_shape(tmp, shape, axes)
-    norm = _normalization(norm, forward)
-    workers = _workers(workers)
-
-    if len(axes) == 0:
-        raise ValueError("at least 1 axis must be transformed")
-
-    # Note: overwrite_x is not utilized
-    return pfft.r2c(tmp, axes, forward, norm, None, workers)
-
-
-rfftn = functools.partial(r2cn, True)
-rfftn.__name__ = 'rfftn'
-ihfftn = functools.partial(r2cn, False)
-ihfftn.__name__ = 'ihfftn'
-
-
-def c2rn(forward, x, s=None, axes=None, norm=None, overwrite_x=False,
-         workers=None, *, plan=None):
-    """Multidimensional inverse discrete fourier transform with real output"""
-    if plan is not None:
-        raise NotImplementedError('Passing a precomputed plan is not yet '
-                                  'supported by scipy.fft functions')
-    tmp = _asfarray(x)
-
-    # TODO: Optimize for hermitian and real?
-    if np.isrealobj(tmp):
-        tmp = tmp + 0.j
-
-    noshape = s is None
-    shape, axes = _init_nd_shape_and_axes(tmp, s, axes)
-
-    if len(axes) == 0:
-        raise ValueError("at least 1 axis must be transformed")
-
-    shape = list(shape)
-    if noshape:
-        shape[-1] = (x.shape[axes[-1]] - 1) * 2
-
-    norm = _normalization(norm, forward)
-    workers = _workers(workers)
-
-    # Last axis utilizes hermitian symmetry
-    lastsize = shape[-1]
-    shape[-1] = (shape[-1] // 2) + 1
-
-    tmp, _ = tuple(_fix_shape(tmp, shape, axes))
-
-    # Note: overwrite_x is not utilized
-    return pfft.c2r(tmp, axes, lastsize, forward, norm, None, workers)
-
-
-hfftn = functools.partial(c2rn, True)
-hfftn.__name__ = 'hfftn'
-irfftn = functools.partial(c2rn, False)
-irfftn.__name__ = 'irfftn'
-
-
-def r2r_fftpack(forward, x, n=None, axis=-1, norm=None, overwrite_x=False):
-    """FFT of a real sequence, returning fftpack half complex format"""
-    tmp = _asfarray(x)
-    overwrite_x = overwrite_x or _datacopied(tmp, x)
-    norm = _normalization(norm, forward)
-    workers = _workers(None)
-
-    if tmp.dtype.kind == 'c':
-        raise TypeError('x must be a real sequence')
-
-    if n is not None:
-        tmp, copied = _fix_shape_1d(tmp, n, axis)
-        overwrite_x = overwrite_x or copied
-    elif tmp.shape[axis] < 1:
-        raise ValueError(f"invalid number of data points ({tmp.shape[axis]}) specified")
-
-    out = (tmp if overwrite_x else None)
-
-    return pfft.r2r_fftpack(tmp, (axis,), forward, forward, norm, out, workers)
-
-
-rfft_fftpack = functools.partial(r2r_fftpack, True)
-rfft_fftpack.__name__ = 'rfft_fftpack'
-irfft_fftpack = functools.partial(r2r_fftpack, False)
-irfft_fftpack.__name__ = 'irfft_fftpack'
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/helper.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/helper.py
deleted file mode 100644
index ab2fbc553ccc46a4b337060a62702ec28cb8b254..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/helper.py
+++ /dev/null
@@ -1,221 +0,0 @@
-from numbers import Number
-import operator
-import os
-import threading
-import contextlib
-
-import numpy as np
-
-from scipy._lib._util import copy_if_needed
-
-# good_size is exposed (and used) from this import
-from .pypocketfft import good_size, prev_good_size
-
-
-__all__ = ['good_size', 'prev_good_size', 'set_workers', 'get_workers']
-
-_config = threading.local()
-_cpu_count = os.cpu_count()
-
-
-def _iterable_of_int(x, name=None):
-    """Convert ``x`` to an iterable sequence of int
-
-    Parameters
-    ----------
-    x : value, or sequence of values, convertible to int
-    name : str, optional
-        Name of the argument being converted, only used in the error message
-
-    Returns
-    -------
-    y : ``List[int]``
-    """
-    if isinstance(x, Number):
-        x = (x,)
-
-    try:
-        x = [operator.index(a) for a in x]
-    except TypeError as e:
-        name = name or "value"
-        raise ValueError(f"{name} must be a scalar or iterable of integers") from e
-
-    return x
-
-
-def _init_nd_shape_and_axes(x, shape, axes):
-    """Handles shape and axes arguments for nd transforms"""
-    noshape = shape is None
-    noaxes = axes is None
-
-    if not noaxes:
-        axes = _iterable_of_int(axes, 'axes')
-        axes = [a + x.ndim if a < 0 else a for a in axes]
-
-        if any(a >= x.ndim or a < 0 for a in axes):
-            raise ValueError("axes exceeds dimensionality of input")
-        if len(set(axes)) != len(axes):
-            raise ValueError("all axes must be unique")
-
-    if not noshape:
-        shape = _iterable_of_int(shape, 'shape')
-
-        if axes and len(axes) != len(shape):
-            raise ValueError("when given, axes and shape arguments"
-                             " have to be of the same length")
-        if noaxes:
-            if len(shape) > x.ndim:
-                raise ValueError("shape requires more axes than are present")
-            axes = range(x.ndim - len(shape), x.ndim)
-
-        shape = [x.shape[a] if s == -1 else s for s, a in zip(shape, axes)]
-    elif noaxes:
-        shape = list(x.shape)
-        axes = range(x.ndim)
-    else:
-        shape = [x.shape[a] for a in axes]
-
-    if any(s < 1 for s in shape):
-        raise ValueError(
-            f"invalid number of data points ({shape}) specified")
-
-    return tuple(shape), list(axes)
-
-
-def _asfarray(x):
-    """
-    Convert to array with floating or complex dtype.
-
-    float16 values are also promoted to float32.
-    """
-    if not hasattr(x, "dtype"):
-        x = np.asarray(x)
-
-    if x.dtype == np.float16:
-        return np.asarray(x, np.float32)
-    elif x.dtype.kind not in 'fc':
-        return np.asarray(x, np.float64)
-
-    # Require native byte order
-    dtype = x.dtype.newbyteorder('=')
-    # Always align input
-    copy = True if not x.flags['ALIGNED'] else copy_if_needed
-    return np.array(x, dtype=dtype, copy=copy)
-
-def _datacopied(arr, original):
-    """
-    Strict check for `arr` not sharing any data with `original`,
-    under the assumption that arr = asarray(original)
-    """
-    if arr is original:
-        return False
-    if not isinstance(original, np.ndarray) and hasattr(original, '__array__'):
-        return False
-    return arr.base is None
-
-
-def _fix_shape(x, shape, axes):
-    """Internal auxiliary function for _raw_fft, _raw_fftnd."""
-    must_copy = False
-
-    # Build an nd slice with the dimensions to be read from x
-    index = [slice(None)]*x.ndim
-    for n, ax in zip(shape, axes):
-        if x.shape[ax] >= n:
-            index[ax] = slice(0, n)
-        else:
-            index[ax] = slice(0, x.shape[ax])
-            must_copy = True
-
-    index = tuple(index)
-
-    if not must_copy:
-        return x[index], False
-
-    s = list(x.shape)
-    for n, axis in zip(shape, axes):
-        s[axis] = n
-
-    z = np.zeros(s, x.dtype)
-    z[index] = x[index]
-    return z, True
-
-
-def _fix_shape_1d(x, n, axis):
-    if n < 1:
-        raise ValueError(
-            f"invalid number of data points ({n}) specified")
-
-    return _fix_shape(x, (n,), (axis,))
-
-
-_NORM_MAP = {None: 0, 'backward': 0, 'ortho': 1, 'forward': 2}
-
-
-def _normalization(norm, forward):
-    """Returns the pypocketfft normalization mode from the norm argument"""
-    try:
-        inorm = _NORM_MAP[norm]
-        return inorm if forward else (2 - inorm)
-    except KeyError:
-        raise ValueError(
-            f'Invalid norm value {norm!r}, should '
-            'be "backward", "ortho" or "forward"') from None
-
-
-def _workers(workers):
-    if workers is None:
-        return getattr(_config, 'default_workers', 1)
-
-    if workers < 0:
-        if workers >= -_cpu_count:
-            workers += 1 + _cpu_count
-        else:
-            raise ValueError(f"workers value out of range; got {workers}, must not be"
-                             f" less than {-_cpu_count}")
-    elif workers == 0:
-        raise ValueError("workers must not be zero")
-
-    return workers
-
-
-@contextlib.contextmanager
-def set_workers(workers):
-    """Context manager for the default number of workers used in `scipy.fft`
-
-    Parameters
-    ----------
-    workers : int
-        The default number of workers to use
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import fft, signal
-    >>> rng = np.random.default_rng()
-    >>> x = rng.standard_normal((128, 64))
-    >>> with fft.set_workers(4):
-    ...     y = signal.fftconvolve(x, x)
-
-    """
-    old_workers = get_workers()
-    _config.default_workers = _workers(operator.index(workers))
-    try:
-        yield
-    finally:
-        _config.default_workers = old_workers
-
-
-def get_workers():
-    """Returns the default number of workers within the current context
-
-    Examples
-    --------
-    >>> from scipy import fft
-    >>> fft.get_workers()
-    1
-    >>> with fft.set_workers(4):
-    ...     fft.get_workers()
-    4
-    """
-    return getattr(_config, 'default_workers', 1)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/realtransforms.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/realtransforms.py
deleted file mode 100644
index 5a0c616742305444d51258e650344c060129dfab..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/realtransforms.py
+++ /dev/null
@@ -1,109 +0,0 @@
-import numpy as np
-from . import pypocketfft as pfft
-from .helper import (_asfarray, _init_nd_shape_and_axes, _datacopied,
-                     _fix_shape, _fix_shape_1d, _normalization, _workers)
-import functools
-
-
-def _r2r(forward, transform, x, type=2, n=None, axis=-1, norm=None,
-         overwrite_x=False, workers=None, orthogonalize=None):
-    """Forward or backward 1-D DCT/DST
-
-    Parameters
-    ----------
-    forward : bool
-        Transform direction (determines type and normalisation)
-    transform : {pypocketfft.dct, pypocketfft.dst}
-        The transform to perform
-    """
-    tmp = _asfarray(x)
-    overwrite_x = overwrite_x or _datacopied(tmp, x)
-    norm = _normalization(norm, forward)
-    workers = _workers(workers)
-
-    if not forward:
-        if type == 2:
-            type = 3
-        elif type == 3:
-            type = 2
-
-    if n is not None:
-        tmp, copied = _fix_shape_1d(tmp, n, axis)
-        overwrite_x = overwrite_x or copied
-    elif tmp.shape[axis] < 1:
-        raise ValueError(f"invalid number of data points ({tmp.shape[axis]}) specified")
-
-    out = (tmp if overwrite_x else None)
-
-    # For complex input, transform real and imaginary components separably
-    if np.iscomplexobj(x):
-        out = np.empty_like(tmp) if out is None else out
-        transform(tmp.real, type, (axis,), norm, out.real, workers)
-        transform(tmp.imag, type, (axis,), norm, out.imag, workers)
-        return out
-
-    return transform(tmp, type, (axis,), norm, out, workers, orthogonalize)
-
-
-dct = functools.partial(_r2r, True, pfft.dct)
-dct.__name__ = 'dct'
-idct = functools.partial(_r2r, False, pfft.dct)
-idct.__name__ = 'idct'
-
-dst = functools.partial(_r2r, True, pfft.dst)
-dst.__name__ = 'dst'
-idst = functools.partial(_r2r, False, pfft.dst)
-idst.__name__ = 'idst'
-
-
-def _r2rn(forward, transform, x, type=2, s=None, axes=None, norm=None,
-          overwrite_x=False, workers=None, orthogonalize=None):
-    """Forward or backward nd DCT/DST
-
-    Parameters
-    ----------
-    forward : bool
-        Transform direction (determines type and normalisation)
-    transform : {pypocketfft.dct, pypocketfft.dst}
-        The transform to perform
-    """
-    tmp = _asfarray(x)
-
-    shape, axes = _init_nd_shape_and_axes(tmp, s, axes)
-    overwrite_x = overwrite_x or _datacopied(tmp, x)
-
-    if len(axes) == 0:
-        return x
-
-    tmp, copied = _fix_shape(tmp, shape, axes)
-    overwrite_x = overwrite_x or copied
-
-    if not forward:
-        if type == 2:
-            type = 3
-        elif type == 3:
-            type = 2
-
-    norm = _normalization(norm, forward)
-    workers = _workers(workers)
-    out = (tmp if overwrite_x else None)
-
-    # For complex input, transform real and imaginary components separably
-    if np.iscomplexobj(x):
-        out = np.empty_like(tmp) if out is None else out
-        transform(tmp.real, type, axes, norm, out.real, workers)
-        transform(tmp.imag, type, axes, norm, out.imag, workers)
-        return out
-
-    return transform(tmp, type, axes, norm, out, workers, orthogonalize)
-
-
-dctn = functools.partial(_r2rn, True, pfft.dct)
-dctn.__name__ = 'dctn'
-idctn = functools.partial(_r2rn, False, pfft.dct)
-idctn.__name__ = 'idctn'
-
-dstn = functools.partial(_r2rn, True, pfft.dst)
-dstn.__name__ = 'dstn'
-idstn = functools.partial(_r2rn, False, pfft.dst)
-idstn.__name__ = 'idstn'
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 28357236789a718284f6a7bbe224d4ca1239f165..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__pycache__/test_basic.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__pycache__/test_basic.cpython-310.pyc
deleted file mode 100644
index 5f503cb46a433e1115682a9338f1c3c81b3d4c9e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__pycache__/test_basic.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__pycache__/test_real_transforms.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__pycache__/test_real_transforms.cpython-310.pyc
deleted file mode 100644
index 721a23482370484b93c2c692255477e3cab3bf23..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/__pycache__/test_real_transforms.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/test_basic.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/test_basic.py
deleted file mode 100644
index 8960cace3e081368d00efbad77059f91cef4dbdd..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/test_basic.py
+++ /dev/null
@@ -1,1005 +0,0 @@
-# Created by Pearu Peterson, September 2002
-
-from numpy.testing import (assert_, assert_equal, assert_array_almost_equal,
-                           assert_array_almost_equal_nulp, assert_array_less,
-                           assert_allclose)
-import pytest
-from pytest import raises as assert_raises
-from scipy.fft._pocketfft import (ifft, fft, fftn, ifftn,
-                                  rfft, irfft, rfftn, irfftn,
-                                  hfft, ihfft, hfftn, ihfftn)
-
-from numpy import (arange, array, asarray, zeros, dot, exp, pi,
-                   swapaxes, cdouble)
-import numpy as np
-import numpy.fft
-from numpy.random import rand
-
-# "large" composite numbers supported by FFT._PYPOCKETFFT
-LARGE_COMPOSITE_SIZES = [
-    2**13,
-    2**5 * 3**5,
-    2**3 * 3**3 * 5**2,
-]
-SMALL_COMPOSITE_SIZES = [
-    2,
-    2*3*5,
-    2*2*3*3,
-]
-# prime
-LARGE_PRIME_SIZES = [
-    2011
-]
-SMALL_PRIME_SIZES = [
-    29
-]
-
-
-def _assert_close_in_norm(x, y, rtol, size, rdt):
-    # helper function for testing
-    err_msg = f"size: {size}  rdt: {rdt}"
-    assert_array_less(np.linalg.norm(x - y), rtol*np.linalg.norm(x), err_msg)
-
-
-def random(size):
-    return rand(*size)
-
-def swap_byteorder(arr):
-    """Returns the same array with swapped byteorder"""
-    dtype = arr.dtype.newbyteorder('S')
-    return arr.astype(dtype)
-
-def direct_dft(x):
-    x = asarray(x)
-    n = len(x)
-    y = zeros(n, dtype=cdouble)
-    w = -arange(n)*(2j*pi/n)
-    for i in range(n):
-        y[i] = dot(exp(i*w), x)
-    return y
-
-
-def direct_idft(x):
-    x = asarray(x)
-    n = len(x)
-    y = zeros(n, dtype=cdouble)
-    w = arange(n)*(2j*pi/n)
-    for i in range(n):
-        y[i] = dot(exp(i*w), x)/n
-    return y
-
-
-def direct_dftn(x):
-    x = asarray(x)
-    for axis in range(x.ndim):
-        x = fft(x, axis=axis)
-    return x
-
-
-def direct_idftn(x):
-    x = asarray(x)
-    for axis in range(x.ndim):
-        x = ifft(x, axis=axis)
-    return x
-
-
-def direct_rdft(x):
-    x = asarray(x)
-    n = len(x)
-    w = -arange(n)*(2j*pi/n)
-    y = zeros(n//2+1, dtype=cdouble)
-    for i in range(n//2+1):
-        y[i] = dot(exp(i*w), x)
-    return y
-
-
-def direct_irdft(x, n):
-    x = asarray(x)
-    x1 = zeros(n, dtype=cdouble)
-    for i in range(n//2+1):
-        x1[i] = x[i]
-        if i > 0 and 2*i < n:
-            x1[n-i] = np.conj(x[i])
-    return direct_idft(x1).real
-
-
-def direct_rdftn(x):
-    return fftn(rfft(x), axes=range(x.ndim - 1))
-
-
-class _TestFFTBase:
-    def setup_method(self):
-        self.cdt = None
-        self.rdt = None
-        np.random.seed(1234)
-
-    def test_definition(self):
-        x = np.array([1,2,3,4+1j,1,2,3,4+2j], dtype=self.cdt)
-        y = fft(x)
-        assert_equal(y.dtype, self.cdt)
-        y1 = direct_dft(x)
-        assert_array_almost_equal(y,y1)
-        x = np.array([1,2,3,4+0j,5], dtype=self.cdt)
-        assert_array_almost_equal(fft(x),direct_dft(x))
-
-    def test_n_argument_real(self):
-        x1 = np.array([1,2,3,4], dtype=self.rdt)
-        x2 = np.array([1,2,3,4], dtype=self.rdt)
-        y = fft([x1,x2],n=4)
-        assert_equal(y.dtype, self.cdt)
-        assert_equal(y.shape,(2,4))
-        assert_array_almost_equal(y[0],direct_dft(x1))
-        assert_array_almost_equal(y[1],direct_dft(x2))
-
-    def _test_n_argument_complex(self):
-        x1 = np.array([1,2,3,4+1j], dtype=self.cdt)
-        x2 = np.array([1,2,3,4+1j], dtype=self.cdt)
-        y = fft([x1,x2],n=4)
-        assert_equal(y.dtype, self.cdt)
-        assert_equal(y.shape,(2,4))
-        assert_array_almost_equal(y[0],direct_dft(x1))
-        assert_array_almost_equal(y[1],direct_dft(x2))
-
-    def test_djbfft(self):
-        for i in range(2,14):
-            n = 2**i
-            x = np.arange(n)
-            y = fft(x.astype(complex))
-            y2 = numpy.fft.fft(x)
-            assert_array_almost_equal(y,y2)
-            y = fft(x)
-            assert_array_almost_equal(y,y2)
-
-    def test_invalid_sizes(self):
-        assert_raises(ValueError, fft, [])
-        assert_raises(ValueError, fft, [[1,1],[2,2]], -5)
-
-
-class TestLongDoubleFFT(_TestFFTBase):
-    def setup_method(self):
-        self.cdt = np.clongdouble
-        self.rdt = np.longdouble
-
-
-class TestDoubleFFT(_TestFFTBase):
-    def setup_method(self):
-        self.cdt = np.cdouble
-        self.rdt = np.float64
-
-
-class TestSingleFFT(_TestFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex64
-        self.rdt = np.float32
-
-
-class TestFloat16FFT:
-
-    def test_1_argument_real(self):
-        x1 = np.array([1, 2, 3, 4], dtype=np.float16)
-        y = fft(x1, n=4)
-        assert_equal(y.dtype, np.complex64)
-        assert_equal(y.shape, (4, ))
-        assert_array_almost_equal(y, direct_dft(x1.astype(np.float32)))
-
-    def test_n_argument_real(self):
-        x1 = np.array([1, 2, 3, 4], dtype=np.float16)
-        x2 = np.array([1, 2, 3, 4], dtype=np.float16)
-        y = fft([x1, x2], n=4)
-        assert_equal(y.dtype, np.complex64)
-        assert_equal(y.shape, (2, 4))
-        assert_array_almost_equal(y[0], direct_dft(x1.astype(np.float32)))
-        assert_array_almost_equal(y[1], direct_dft(x2.astype(np.float32)))
-
-
-class _TestIFFTBase:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_definition(self):
-        x = np.array([1,2,3,4+1j,1,2,3,4+2j], self.cdt)
-        y = ifft(x)
-        y1 = direct_idft(x)
-        assert_equal(y.dtype, self.cdt)
-        assert_array_almost_equal(y,y1)
-
-        x = np.array([1,2,3,4+0j,5], self.cdt)
-        assert_array_almost_equal(ifft(x),direct_idft(x))
-
-    def test_definition_real(self):
-        x = np.array([1,2,3,4,1,2,3,4], self.rdt)
-        y = ifft(x)
-        assert_equal(y.dtype, self.cdt)
-        y1 = direct_idft(x)
-        assert_array_almost_equal(y,y1)
-
-        x = np.array([1,2,3,4,5], dtype=self.rdt)
-        assert_equal(y.dtype, self.cdt)
-        assert_array_almost_equal(ifft(x),direct_idft(x))
-
-    def test_djbfft(self):
-        for i in range(2,14):
-            n = 2**i
-            x = np.arange(n)
-            y = ifft(x.astype(self.cdt))
-            y2 = numpy.fft.ifft(x.astype(self.cdt))
-            assert_allclose(y,y2, rtol=self.rtol, atol=self.atol)
-            y = ifft(x)
-            assert_allclose(y,y2, rtol=self.rtol, atol=self.atol)
-
-    def test_random_complex(self):
-        for size in [1,51,111,100,200,64,128,256,1024]:
-            x = random([size]).astype(self.cdt)
-            x = random([size]).astype(self.cdt) + 1j*x
-            y1 = ifft(fft(x))
-            y2 = fft(ifft(x))
-            assert_equal(y1.dtype, self.cdt)
-            assert_equal(y2.dtype, self.cdt)
-            assert_array_almost_equal(y1, x)
-            assert_array_almost_equal(y2, x)
-
-    def test_random_real(self):
-        for size in [1,51,111,100,200,64,128,256,1024]:
-            x = random([size]).astype(self.rdt)
-            y1 = ifft(fft(x))
-            y2 = fft(ifft(x))
-            assert_equal(y1.dtype, self.cdt)
-            assert_equal(y2.dtype, self.cdt)
-            assert_array_almost_equal(y1, x)
-            assert_array_almost_equal(y2, x)
-
-    def test_size_accuracy(self):
-        # Sanity check for the accuracy for prime and non-prime sized inputs
-        for size in LARGE_COMPOSITE_SIZES + LARGE_PRIME_SIZES:
-            np.random.seed(1234)
-            x = np.random.rand(size).astype(self.rdt)
-            y = ifft(fft(x))
-            _assert_close_in_norm(x, y, self.rtol, size, self.rdt)
-            y = fft(ifft(x))
-            _assert_close_in_norm(x, y, self.rtol, size, self.rdt)
-
-            x = (x + 1j*np.random.rand(size)).astype(self.cdt)
-            y = ifft(fft(x))
-            _assert_close_in_norm(x, y, self.rtol, size, self.rdt)
-            y = fft(ifft(x))
-            _assert_close_in_norm(x, y, self.rtol, size, self.rdt)
-
-    def test_invalid_sizes(self):
-        assert_raises(ValueError, ifft, [])
-        assert_raises(ValueError, ifft, [[1,1],[2,2]], -5)
-
-
-@pytest.mark.skipif(np.longdouble is np.float64,
-                    reason="Long double is aliased to double")
-class TestLongDoubleIFFT(_TestIFFTBase):
-    def setup_method(self):
-        self.cdt = np.clongdouble
-        self.rdt = np.longdouble
-        self.rtol = 1e-10
-        self.atol = 1e-10
-
-
-class TestDoubleIFFT(_TestIFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex128
-        self.rdt = np.float64
-        self.rtol = 1e-10
-        self.atol = 1e-10
-
-
-class TestSingleIFFT(_TestIFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex64
-        self.rdt = np.float32
-        self.rtol = 1e-5
-        self.atol = 1e-4
-
-
-class _TestRFFTBase:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_definition(self):
-        for t in [[1, 2, 3, 4, 1, 2, 3, 4], [1, 2, 3, 4, 1, 2, 3, 4, 5]]:
-            x = np.array(t, dtype=self.rdt)
-            y = rfft(x)
-            y1 = direct_rdft(x)
-            assert_array_almost_equal(y,y1)
-            assert_equal(y.dtype, self.cdt)
-
-    def test_djbfft(self):
-        for i in range(2,14):
-            n = 2**i
-            x = np.arange(n)
-            y1 = np.fft.rfft(x)
-            y = rfft(x)
-            assert_array_almost_equal(y,y1)
-
-    def test_invalid_sizes(self):
-        assert_raises(ValueError, rfft, [])
-        assert_raises(ValueError, rfft, [[1,1],[2,2]], -5)
-
-    def test_complex_input(self):
-        x = np.zeros(10, dtype=self.cdt)
-        with assert_raises(TypeError, match="x must be a real sequence"):
-            rfft(x)
-
-    # See gh-5790
-    class MockSeries:
-        def __init__(self, data):
-            self.data = np.asarray(data)
-
-        def __getattr__(self, item):
-            try:
-                return getattr(self.data, item)
-            except AttributeError as e:
-                raise AttributeError("'MockSeries' object "
-                                      f"has no attribute '{item}'") from e
-
-    def test_non_ndarray_with_dtype(self):
-        x = np.array([1., 2., 3., 4., 5.])
-        xs = _TestRFFTBase.MockSeries(x)
-
-        expected = [1, 2, 3, 4, 5]
-        rfft(xs)
-
-        # Data should not have been overwritten
-        assert_equal(x, expected)
-        assert_equal(xs.data, expected)
-
-@pytest.mark.skipif(np.longdouble is np.float64,
-                    reason="Long double is aliased to double")
-class TestRFFTLongDouble(_TestRFFTBase):
-    def setup_method(self):
-        self.cdt = np.clongdouble
-        self.rdt = np.longdouble
-
-
-class TestRFFTDouble(_TestRFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex128
-        self.rdt = np.float64
-
-
-class TestRFFTSingle(_TestRFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex64
-        self.rdt = np.float32
-
-
-class _TestIRFFTBase:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_definition(self):
-        x1 = [1,2+3j,4+1j,1+2j,3+4j]
-        x1_1 = [1,2+3j,4+1j,2+3j,4,2-3j,4-1j,2-3j]
-        x1 = x1_1[:5]
-        x2_1 = [1,2+3j,4+1j,2+3j,4+5j,4-5j,2-3j,4-1j,2-3j]
-        x2 = x2_1[:5]
-
-        def _test(x, xr):
-            y = irfft(np.array(x, dtype=self.cdt), n=len(xr))
-            y1 = direct_irdft(x, len(xr))
-            assert_equal(y.dtype, self.rdt)
-            assert_array_almost_equal(y,y1, decimal=self.ndec)
-            assert_array_almost_equal(y,ifft(xr), decimal=self.ndec)
-
-        _test(x1, x1_1)
-        _test(x2, x2_1)
-
-    def test_djbfft(self):
-        for i in range(2,14):
-            n = 2**i
-            x = np.arange(-1, n, 2) + 1j * np.arange(0, n+1, 2)
-            x[0] = 0
-            if n % 2 == 0:
-                x[-1] = np.real(x[-1])
-            y1 = np.fft.irfft(x)
-            y = irfft(x)
-            assert_array_almost_equal(y,y1)
-
-    def test_random_real(self):
-        for size in [1,51,111,100,200,64,128,256,1024]:
-            x = random([size]).astype(self.rdt)
-            y1 = irfft(rfft(x), n=size)
-            y2 = rfft(irfft(x, n=(size*2-1)))
-            assert_equal(y1.dtype, self.rdt)
-            assert_equal(y2.dtype, self.cdt)
-            assert_array_almost_equal(y1, x, decimal=self.ndec,
-                                       err_msg="size=%d" % size)
-            assert_array_almost_equal(y2, x, decimal=self.ndec,
-                                       err_msg="size=%d" % size)
-
-    def test_size_accuracy(self):
-        # Sanity check for the accuracy for prime and non-prime sized inputs
-        if self.rdt == np.float32:
-            rtol = 1e-5
-        elif self.rdt == np.float64:
-            rtol = 1e-10
-
-        for size in LARGE_COMPOSITE_SIZES + LARGE_PRIME_SIZES:
-            np.random.seed(1234)
-            x = np.random.rand(size).astype(self.rdt)
-            y = irfft(rfft(x), len(x))
-            _assert_close_in_norm(x, y, rtol, size, self.rdt)
-            y = rfft(irfft(x, 2 * len(x) - 1))
-            _assert_close_in_norm(x, y, rtol, size, self.rdt)
-
-    def test_invalid_sizes(self):
-        assert_raises(ValueError, irfft, [])
-        assert_raises(ValueError, irfft, [[1,1],[2,2]], -5)
-
-
-# self.ndec is bogus; we should have a assert_array_approx_equal for number of
-# significant digits
-
-@pytest.mark.skipif(np.longdouble is np.float64,
-                    reason="Long double is aliased to double")
-class TestIRFFTLongDouble(_TestIRFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex128
-        self.rdt = np.float64
-        self.ndec = 14
-
-
-class TestIRFFTDouble(_TestIRFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex128
-        self.rdt = np.float64
-        self.ndec = 14
-
-
-class TestIRFFTSingle(_TestIRFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex64
-        self.rdt = np.float32
-        self.ndec = 5
-
-
-class TestFftnSingle:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_definition(self):
-        x = [[1, 2, 3],
-             [4, 5, 6],
-             [7, 8, 9]]
-        y = fftn(np.array(x, np.float32))
-        assert_(y.dtype == np.complex64,
-                msg="double precision output with single precision")
-
-        y_r = np.array(fftn(x), np.complex64)
-        assert_array_almost_equal_nulp(y, y_r)
-
-    @pytest.mark.parametrize('size', SMALL_COMPOSITE_SIZES + SMALL_PRIME_SIZES)
-    def test_size_accuracy_small(self, size):
-        x = np.random.rand(size, size) + 1j*np.random.rand(size, size)
-        y1 = fftn(x.real.astype(np.float32))
-        y2 = fftn(x.real.astype(np.float64)).astype(np.complex64)
-
-        assert_equal(y1.dtype, np.complex64)
-        assert_array_almost_equal_nulp(y1, y2, 2000)
-
-    @pytest.mark.parametrize('size', LARGE_COMPOSITE_SIZES + LARGE_PRIME_SIZES)
-    def test_size_accuracy_large(self, size):
-        x = np.random.rand(size, 3) + 1j*np.random.rand(size, 3)
-        y1 = fftn(x.real.astype(np.float32))
-        y2 = fftn(x.real.astype(np.float64)).astype(np.complex64)
-
-        assert_equal(y1.dtype, np.complex64)
-        assert_array_almost_equal_nulp(y1, y2, 2000)
-
-    def test_definition_float16(self):
-        x = [[1, 2, 3],
-             [4, 5, 6],
-             [7, 8, 9]]
-        y = fftn(np.array(x, np.float16))
-        assert_equal(y.dtype, np.complex64)
-        y_r = np.array(fftn(x), np.complex64)
-        assert_array_almost_equal_nulp(y, y_r)
-
-    @pytest.mark.parametrize('size', SMALL_COMPOSITE_SIZES + SMALL_PRIME_SIZES)
-    def test_float16_input_small(self, size):
-        x = np.random.rand(size, size) + 1j*np.random.rand(size, size)
-        y1 = fftn(x.real.astype(np.float16))
-        y2 = fftn(x.real.astype(np.float64)).astype(np.complex64)
-
-        assert_equal(y1.dtype, np.complex64)
-        assert_array_almost_equal_nulp(y1, y2, 5e5)
-
-    @pytest.mark.parametrize('size', LARGE_COMPOSITE_SIZES + LARGE_PRIME_SIZES)
-    def test_float16_input_large(self, size):
-        x = np.random.rand(size, 3) + 1j*np.random.rand(size, 3)
-        y1 = fftn(x.real.astype(np.float16))
-        y2 = fftn(x.real.astype(np.float64)).astype(np.complex64)
-
-        assert_equal(y1.dtype, np.complex64)
-        assert_array_almost_equal_nulp(y1, y2, 2e6)
-
-
-class TestFftn:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_definition(self):
-        x = [[1, 2, 3],
-             [4, 5, 6],
-             [7, 8, 9]]
-        y = fftn(x)
-        assert_array_almost_equal(y, direct_dftn(x))
-
-        x = random((20, 26))
-        assert_array_almost_equal(fftn(x), direct_dftn(x))
-
-        x = random((5, 4, 3, 20))
-        assert_array_almost_equal(fftn(x), direct_dftn(x))
-
-    def test_axes_argument(self):
-        # plane == ji_plane, x== kji_space
-        plane1 = [[1, 2, 3],
-                  [4, 5, 6],
-                  [7, 8, 9]]
-        plane2 = [[10, 11, 12],
-                  [13, 14, 15],
-                  [16, 17, 18]]
-        plane3 = [[19, 20, 21],
-                  [22, 23, 24],
-                  [25, 26, 27]]
-        ki_plane1 = [[1, 2, 3],
-                     [10, 11, 12],
-                     [19, 20, 21]]
-        ki_plane2 = [[4, 5, 6],
-                     [13, 14, 15],
-                     [22, 23, 24]]
-        ki_plane3 = [[7, 8, 9],
-                     [16, 17, 18],
-                     [25, 26, 27]]
-        jk_plane1 = [[1, 10, 19],
-                     [4, 13, 22],
-                     [7, 16, 25]]
-        jk_plane2 = [[2, 11, 20],
-                     [5, 14, 23],
-                     [8, 17, 26]]
-        jk_plane3 = [[3, 12, 21],
-                     [6, 15, 24],
-                     [9, 18, 27]]
-        kj_plane1 = [[1, 4, 7],
-                     [10, 13, 16], [19, 22, 25]]
-        kj_plane2 = [[2, 5, 8],
-                     [11, 14, 17], [20, 23, 26]]
-        kj_plane3 = [[3, 6, 9],
-                     [12, 15, 18], [21, 24, 27]]
-        ij_plane1 = [[1, 4, 7],
-                     [2, 5, 8],
-                     [3, 6, 9]]
-        ij_plane2 = [[10, 13, 16],
-                     [11, 14, 17],
-                     [12, 15, 18]]
-        ij_plane3 = [[19, 22, 25],
-                     [20, 23, 26],
-                     [21, 24, 27]]
-        ik_plane1 = [[1, 10, 19],
-                     [2, 11, 20],
-                     [3, 12, 21]]
-        ik_plane2 = [[4, 13, 22],
-                     [5, 14, 23],
-                     [6, 15, 24]]
-        ik_plane3 = [[7, 16, 25],
-                     [8, 17, 26],
-                     [9, 18, 27]]
-        ijk_space = [jk_plane1, jk_plane2, jk_plane3]
-        ikj_space = [kj_plane1, kj_plane2, kj_plane3]
-        jik_space = [ik_plane1, ik_plane2, ik_plane3]
-        jki_space = [ki_plane1, ki_plane2, ki_plane3]
-        kij_space = [ij_plane1, ij_plane2, ij_plane3]
-        x = array([plane1, plane2, plane3])
-
-        assert_array_almost_equal(fftn(x),
-                                  fftn(x, axes=(-3, -2, -1)))  # kji_space
-        assert_array_almost_equal(fftn(x), fftn(x, axes=(0, 1, 2)))
-        assert_array_almost_equal(fftn(x, axes=(0, 2)), fftn(x, axes=(0, -1)))
-        y = fftn(x, axes=(2, 1, 0))  # ijk_space
-        assert_array_almost_equal(swapaxes(y, -1, -3), fftn(ijk_space))
-        y = fftn(x, axes=(2, 0, 1))  # ikj_space
-        assert_array_almost_equal(swapaxes(swapaxes(y, -1, -3), -1, -2),
-                                  fftn(ikj_space))
-        y = fftn(x, axes=(1, 2, 0))  # jik_space
-        assert_array_almost_equal(swapaxes(swapaxes(y, -1, -3), -3, -2),
-                                  fftn(jik_space))
-        y = fftn(x, axes=(1, 0, 2))  # jki_space
-        assert_array_almost_equal(swapaxes(y, -2, -3), fftn(jki_space))
-        y = fftn(x, axes=(0, 2, 1))  # kij_space
-        assert_array_almost_equal(swapaxes(y, -2, -1), fftn(kij_space))
-
-        y = fftn(x, axes=(-2, -1))  # ji_plane
-        assert_array_almost_equal(fftn(plane1), y[0])
-        assert_array_almost_equal(fftn(plane2), y[1])
-        assert_array_almost_equal(fftn(plane3), y[2])
-
-        y = fftn(x, axes=(1, 2))  # ji_plane
-        assert_array_almost_equal(fftn(plane1), y[0])
-        assert_array_almost_equal(fftn(plane2), y[1])
-        assert_array_almost_equal(fftn(plane3), y[2])
-
-        y = fftn(x, axes=(-3, -2))  # kj_plane
-        assert_array_almost_equal(fftn(x[:, :, 0]), y[:, :, 0])
-        assert_array_almost_equal(fftn(x[:, :, 1]), y[:, :, 1])
-        assert_array_almost_equal(fftn(x[:, :, 2]), y[:, :, 2])
-
-        y = fftn(x, axes=(-3, -1))  # ki_plane
-        assert_array_almost_equal(fftn(x[:, 0, :]), y[:, 0, :])
-        assert_array_almost_equal(fftn(x[:, 1, :]), y[:, 1, :])
-        assert_array_almost_equal(fftn(x[:, 2, :]), y[:, 2, :])
-
-        y = fftn(x, axes=(-1, -2))  # ij_plane
-        assert_array_almost_equal(fftn(ij_plane1), swapaxes(y[0], -2, -1))
-        assert_array_almost_equal(fftn(ij_plane2), swapaxes(y[1], -2, -1))
-        assert_array_almost_equal(fftn(ij_plane3), swapaxes(y[2], -2, -1))
-
-        y = fftn(x, axes=(-1, -3))  # ik_plane
-        assert_array_almost_equal(fftn(ik_plane1),
-                                  swapaxes(y[:, 0, :], -1, -2))
-        assert_array_almost_equal(fftn(ik_plane2),
-                                  swapaxes(y[:, 1, :], -1, -2))
-        assert_array_almost_equal(fftn(ik_plane3),
-                                  swapaxes(y[:, 2, :], -1, -2))
-
-        y = fftn(x, axes=(-2, -3))  # jk_plane
-        assert_array_almost_equal(fftn(jk_plane1),
-                                  swapaxes(y[:, :, 0], -1, -2))
-        assert_array_almost_equal(fftn(jk_plane2),
-                                  swapaxes(y[:, :, 1], -1, -2))
-        assert_array_almost_equal(fftn(jk_plane3),
-                                  swapaxes(y[:, :, 2], -1, -2))
-
-        y = fftn(x, axes=(-1,))  # i_line
-        for i in range(3):
-            for j in range(3):
-                assert_array_almost_equal(fft(x[i, j, :]), y[i, j, :])
-        y = fftn(x, axes=(-2,))  # j_line
-        for i in range(3):
-            for j in range(3):
-                assert_array_almost_equal(fft(x[i, :, j]), y[i, :, j])
-        y = fftn(x, axes=(0,))  # k_line
-        for i in range(3):
-            for j in range(3):
-                assert_array_almost_equal(fft(x[:, i, j]), y[:, i, j])
-
-        y = fftn(x, axes=())  # point
-        assert_array_almost_equal(y, x)
-
-    def test_shape_argument(self):
-        small_x = [[1, 2, 3],
-                   [4, 5, 6]]
-        large_x1 = [[1, 2, 3, 0],
-                    [4, 5, 6, 0],
-                    [0, 0, 0, 0],
-                    [0, 0, 0, 0]]
-
-        y = fftn(small_x, s=(4, 4))
-        assert_array_almost_equal(y, fftn(large_x1))
-
-        y = fftn(small_x, s=(3, 4))
-        assert_array_almost_equal(y, fftn(large_x1[:-1]))
-
-    def test_shape_axes_argument(self):
-        small_x = [[1, 2, 3],
-                   [4, 5, 6],
-                   [7, 8, 9]]
-        large_x1 = array([[1, 2, 3, 0],
-                          [4, 5, 6, 0],
-                          [7, 8, 9, 0],
-                          [0, 0, 0, 0]])
-        y = fftn(small_x, s=(4, 4), axes=(-2, -1))
-        assert_array_almost_equal(y, fftn(large_x1))
-        y = fftn(small_x, s=(4, 4), axes=(-1, -2))
-
-        assert_array_almost_equal(y, swapaxes(
-            fftn(swapaxes(large_x1, -1, -2)), -1, -2))
-
-    def test_shape_axes_argument2(self):
-        # Change shape of the last axis
-        x = numpy.random.random((10, 5, 3, 7))
-        y = fftn(x, axes=(-1,), s=(8,))
-        assert_array_almost_equal(y, fft(x, axis=-1, n=8))
-
-        # Change shape of an arbitrary axis which is not the last one
-        x = numpy.random.random((10, 5, 3, 7))
-        y = fftn(x, axes=(-2,), s=(8,))
-        assert_array_almost_equal(y, fft(x, axis=-2, n=8))
-
-        # Change shape of axes: cf #244, where shape and axes were mixed up
-        x = numpy.random.random((4, 4, 2))
-        y = fftn(x, axes=(-3, -2), s=(8, 8))
-        assert_array_almost_equal(y,
-                                  numpy.fft.fftn(x, axes=(-3, -2), s=(8, 8)))
-
-    def test_shape_argument_more(self):
-        x = zeros((4, 4, 2))
-        with assert_raises(ValueError,
-                           match="shape requires more axes than are present"):
-            fftn(x, s=(8, 8, 2, 1))
-
-    def test_invalid_sizes(self):
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[1, 0\]\) specified"):
-            fftn([[]])
-
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[4, -3\]\) specified"):
-            fftn([[1, 1], [2, 2]], (4, -3))
-
-    def test_no_axes(self):
-        x = numpy.random.random((2,2,2))
-        assert_allclose(fftn(x, axes=[]), x, atol=1e-7)
-
-    def test_regression_244(self):
-        """FFT returns wrong result with axes parameter."""
-        # fftn (and hence fft2) used to break when both axes and shape were used
-        x = numpy.ones((4, 4, 2))
-        y = fftn(x, s=(8, 8), axes=(-3, -2))
-        y_r = numpy.fft.fftn(x, s=(8, 8), axes=(-3, -2))
-        assert_allclose(y, y_r)
-
-
-class TestIfftn:
-    dtype = None
-    cdtype = None
-
-    def setup_method(self):
-        np.random.seed(1234)
-
-    @pytest.mark.parametrize('dtype,cdtype,maxnlp',
-                             [(np.float64, np.complex128, 2000),
-                              (np.float32, np.complex64, 3500)])
-    def test_definition(self, dtype, cdtype, maxnlp):
-        x = np.array([[1, 2, 3],
-                      [4, 5, 6],
-                      [7, 8, 9]], dtype=dtype)
-        y = ifftn(x)
-        assert_equal(y.dtype, cdtype)
-        assert_array_almost_equal_nulp(y, direct_idftn(x), maxnlp)
-
-        x = random((20, 26))
-        assert_array_almost_equal_nulp(ifftn(x), direct_idftn(x), maxnlp)
-
-        x = random((5, 4, 3, 20))
-        assert_array_almost_equal_nulp(ifftn(x), direct_idftn(x), maxnlp)
-
-    @pytest.mark.parametrize('maxnlp', [2000, 3500])
-    @pytest.mark.parametrize('size', [1, 2, 51, 32, 64, 92])
-    def test_random_complex(self, maxnlp, size):
-        x = random([size, size]) + 1j*random([size, size])
-        assert_array_almost_equal_nulp(ifftn(fftn(x)), x, maxnlp)
-        assert_array_almost_equal_nulp(fftn(ifftn(x)), x, maxnlp)
-
-    def test_invalid_sizes(self):
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[1, 0\]\) specified"):
-            ifftn([[]])
-
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[4, -3\]\) specified"):
-            ifftn([[1, 1], [2, 2]], (4, -3))
-
-    def test_no_axes(self):
-        x = numpy.random.random((2,2,2))
-        assert_allclose(ifftn(x, axes=[]), x, atol=1e-7)
-
-class TestRfftn:
-    dtype = None
-    cdtype = None
-
-    def setup_method(self):
-        np.random.seed(1234)
-
-    @pytest.mark.parametrize('dtype,cdtype,maxnlp',
-                             [(np.float64, np.complex128, 2000),
-                              (np.float32, np.complex64, 3500)])
-    def test_definition(self, dtype, cdtype, maxnlp):
-        x = np.array([[1, 2, 3],
-                      [4, 5, 6],
-                      [7, 8, 9]], dtype=dtype)
-        y = rfftn(x)
-        assert_equal(y.dtype, cdtype)
-        assert_array_almost_equal_nulp(y, direct_rdftn(x), maxnlp)
-
-        x = random((20, 26))
-        assert_array_almost_equal_nulp(rfftn(x), direct_rdftn(x), maxnlp)
-
-        x = random((5, 4, 3, 20))
-        assert_array_almost_equal_nulp(rfftn(x), direct_rdftn(x), maxnlp)
-
-    @pytest.mark.parametrize('size', [1, 2, 51, 32, 64, 92])
-    def test_random(self, size):
-        x = random([size, size])
-        assert_allclose(irfftn(rfftn(x), x.shape), x, atol=1e-10)
-
-    @pytest.mark.parametrize('func', [rfftn, irfftn])
-    def test_invalid_sizes(self, func):
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[1, 0\]\) specified"):
-            func([[]])
-
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[4, -3\]\) specified"):
-            func([[1, 1], [2, 2]], (4, -3))
-
-    @pytest.mark.parametrize('func', [rfftn, irfftn])
-    def test_no_axes(self, func):
-        with assert_raises(ValueError,
-                           match="at least 1 axis must be transformed"):
-            func([], axes=[])
-
-    def test_complex_input(self):
-        with assert_raises(TypeError, match="x must be a real sequence"):
-            rfftn(np.zeros(10, dtype=np.complex64))
-
-
-class FakeArray:
-    def __init__(self, data):
-        self._data = data
-        self.__array_interface__ = data.__array_interface__
-
-
-class FakeArray2:
-    def __init__(self, data):
-        self._data = data
-
-    def __array__(self, dtype=None, copy=None):
-        return self._data
-
-# TODO: Is this test actually valuable? The behavior it's testing shouldn't be
-# relied upon by users except for overwrite_x = False
-class TestOverwrite:
-    """Check input overwrite behavior of the FFT functions."""
-
-    real_dtypes = [np.float32, np.float64, np.longdouble]
-    dtypes = real_dtypes + [np.complex64, np.complex128, np.clongdouble]
-    fftsizes = [8, 16, 32]
-
-    def _check(self, x, routine, fftsize, axis, overwrite_x, should_overwrite):
-        x2 = x.copy()
-        for fake in [lambda x: x, FakeArray, FakeArray2]:
-            routine(fake(x2), fftsize, axis, overwrite_x=overwrite_x)
-
-            sig = "{}({}{!r}, {!r}, axis={!r}, overwrite_x={!r})".format(
-                routine.__name__, x.dtype, x.shape, fftsize, axis, overwrite_x)
-            if not should_overwrite:
-                assert_equal(x2, x, err_msg="spurious overwrite in %s" % sig)
-
-    def _check_1d(self, routine, dtype, shape, axis, overwritable_dtypes,
-                  fftsize, overwrite_x):
-        np.random.seed(1234)
-        if np.issubdtype(dtype, np.complexfloating):
-            data = np.random.randn(*shape) + 1j*np.random.randn(*shape)
-        else:
-            data = np.random.randn(*shape)
-        data = data.astype(dtype)
-
-        should_overwrite = (overwrite_x
-                            and dtype in overwritable_dtypes
-                            and fftsize <= shape[axis])
-        self._check(data, routine, fftsize, axis,
-                    overwrite_x=overwrite_x,
-                    should_overwrite=should_overwrite)
-
-    @pytest.mark.parametrize('dtype', dtypes)
-    @pytest.mark.parametrize('fftsize', fftsizes)
-    @pytest.mark.parametrize('overwrite_x', [True, False])
-    @pytest.mark.parametrize('shape,axes', [((16,), -1),
-                                            ((16, 2), 0),
-                                            ((2, 16), 1)])
-    def test_fft_ifft(self, dtype, fftsize, overwrite_x, shape, axes):
-        overwritable = (np.clongdouble, np.complex128, np.complex64)
-        self._check_1d(fft, dtype, shape, axes, overwritable,
-                       fftsize, overwrite_x)
-        self._check_1d(ifft, dtype, shape, axes, overwritable,
-                       fftsize, overwrite_x)
-
-    @pytest.mark.parametrize('dtype', real_dtypes)
-    @pytest.mark.parametrize('fftsize', fftsizes)
-    @pytest.mark.parametrize('overwrite_x', [True, False])
-    @pytest.mark.parametrize('shape,axes', [((16,), -1),
-                                            ((16, 2), 0),
-                                            ((2, 16), 1)])
-    def test_rfft_irfft(self, dtype, fftsize, overwrite_x, shape, axes):
-        overwritable = self.real_dtypes
-        self._check_1d(irfft, dtype, shape, axes, overwritable,
-                       fftsize, overwrite_x)
-        self._check_1d(rfft, dtype, shape, axes, overwritable,
-                       fftsize, overwrite_x)
-
-    def _check_nd_one(self, routine, dtype, shape, axes, overwritable_dtypes,
-                      overwrite_x):
-        np.random.seed(1234)
-        if np.issubdtype(dtype, np.complexfloating):
-            data = np.random.randn(*shape) + 1j*np.random.randn(*shape)
-        else:
-            data = np.random.randn(*shape)
-        data = data.astype(dtype)
-
-        def fftshape_iter(shp):
-            if len(shp) <= 0:
-                yield ()
-            else:
-                for j in (shp[0]//2, shp[0], shp[0]*2):
-                    for rest in fftshape_iter(shp[1:]):
-                        yield (j,) + rest
-
-        def part_shape(shape, axes):
-            if axes is None:
-                return shape
-            else:
-                return tuple(np.take(shape, axes))
-
-        def should_overwrite(data, shape, axes):
-            s = part_shape(data.shape, axes)
-            return (overwrite_x and
-                    np.prod(shape) <= np.prod(s)
-                    and dtype in overwritable_dtypes)
-
-        for fftshape in fftshape_iter(part_shape(shape, axes)):
-            self._check(data, routine, fftshape, axes,
-                        overwrite_x=overwrite_x,
-                        should_overwrite=should_overwrite(data, fftshape, axes))
-            if data.ndim > 1:
-                # check fortran order
-                self._check(data.T, routine, fftshape, axes,
-                            overwrite_x=overwrite_x,
-                            should_overwrite=should_overwrite(
-                                data.T, fftshape, axes))
-
-    @pytest.mark.parametrize('dtype', dtypes)
-    @pytest.mark.parametrize('overwrite_x', [True, False])
-    @pytest.mark.parametrize('shape,axes', [((16,), None),
-                                            ((16,), (0,)),
-                                            ((16, 2), (0,)),
-                                            ((2, 16), (1,)),
-                                            ((8, 16), None),
-                                            ((8, 16), (0, 1)),
-                                            ((8, 16, 2), (0, 1)),
-                                            ((8, 16, 2), (1, 2)),
-                                            ((8, 16, 2), (0,)),
-                                            ((8, 16, 2), (1,)),
-                                            ((8, 16, 2), (2,)),
-                                            ((8, 16, 2), None),
-                                            ((8, 16, 2), (0, 1, 2))])
-    def test_fftn_ifftn(self, dtype, overwrite_x, shape, axes):
-        overwritable = (np.clongdouble, np.complex128, np.complex64)
-        self._check_nd_one(fftn, dtype, shape, axes, overwritable,
-                           overwrite_x)
-        self._check_nd_one(ifftn, dtype, shape, axes, overwritable,
-                           overwrite_x)
-
-
-@pytest.mark.parametrize('func', [fft, ifft, fftn, ifftn,
-                                 rfft, irfft, rfftn, irfftn])
-def test_invalid_norm(func):
-    x = np.arange(10, dtype=float)
-    with assert_raises(ValueError,
-                       match='Invalid norm value \'o\', should be'
-                             ' "backward", "ortho" or "forward"'):
-        func(x, norm='o')
-
-
-@pytest.mark.parametrize('func', [fft, ifft, fftn, ifftn,
-                                   irfft, irfftn, hfft, hfftn])
-def test_swapped_byte_order_complex(func):
-    rng = np.random.RandomState(1234)
-    x = rng.rand(10) + 1j * rng.rand(10)
-    assert_allclose(func(swap_byteorder(x)), func(x))
-
-
-@pytest.mark.parametrize('func', [ihfft, ihfftn, rfft, rfftn])
-def test_swapped_byte_order_real(func):
-    rng = np.random.RandomState(1234)
-    x = rng.rand(10)
-    assert_allclose(func(swap_byteorder(x)), func(x))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/test_real_transforms.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/test_real_transforms.py
deleted file mode 100644
index 2cb47f40c6bc0a251a79bb3660fcc9a0f1b10725..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_pocketfft/tests/test_real_transforms.py
+++ /dev/null
@@ -1,494 +0,0 @@
-from os.path import join, dirname
-from typing import Callable, Union
-
-import numpy as np
-from numpy.testing import (
-    assert_array_almost_equal, assert_equal, assert_allclose)
-import pytest
-from pytest import raises as assert_raises
-
-from scipy.fft._pocketfft.realtransforms import (
-    dct, idct, dst, idst, dctn, idctn, dstn, idstn)
-
-fftpack_test_dir = join(dirname(__file__), '..', '..', '..', 'fftpack', 'tests')
-
-MDATA_COUNT = 8
-FFTWDATA_COUNT = 14
-
-def is_longdouble_binary_compatible():
-    try:
-        one = np.frombuffer(
-            b'\x00\x00\x00\x00\x00\x00\x00\x80\xff\x3f\x00\x00\x00\x00\x00\x00',
-            dtype=' decimal
-dec_map: DecMapType = {
-    # DCT
-    (dct, np.float64, 1): 13,
-    (dct, np.float32, 1): 6,
-
-    (dct, np.float64, 2): 14,
-    (dct, np.float32, 2): 5,
-
-    (dct, np.float64, 3): 14,
-    (dct, np.float32, 3): 5,
-
-    (dct, np.float64, 4): 13,
-    (dct, np.float32, 4): 6,
-
-    # IDCT
-    (idct, np.float64, 1): 14,
-    (idct, np.float32, 1): 6,
-
-    (idct, np.float64, 2): 14,
-    (idct, np.float32, 2): 5,
-
-    (idct, np.float64, 3): 14,
-    (idct, np.float32, 3): 5,
-
-    (idct, np.float64, 4): 14,
-    (idct, np.float32, 4): 6,
-
-    # DST
-    (dst, np.float64, 1): 13,
-    (dst, np.float32, 1): 6,
-
-    (dst, np.float64, 2): 14,
-    (dst, np.float32, 2): 6,
-
-    (dst, np.float64, 3): 14,
-    (dst, np.float32, 3): 7,
-
-    (dst, np.float64, 4): 13,
-    (dst, np.float32, 4): 5,
-
-    # IDST
-    (idst, np.float64, 1): 14,
-    (idst, np.float32, 1): 6,
-
-    (idst, np.float64, 2): 14,
-    (idst, np.float32, 2): 6,
-
-    (idst, np.float64, 3): 14,
-    (idst, np.float32, 3): 6,
-
-    (idst, np.float64, 4): 14,
-    (idst, np.float32, 4): 6,
-}
-
-for k,v in dec_map.copy().items():
-    if k[1] == np.float64:
-        dec_map[(k[0], np.longdouble, k[2])] = v
-    elif k[1] == np.float32:
-        dec_map[(k[0], int, k[2])] = v
-
-
-@pytest.mark.parametrize('rdt', [np.longdouble, np.float64, np.float32, int])
-@pytest.mark.parametrize('type', [1, 2, 3, 4])
-class TestDCT:
-    def test_definition(self, rdt, type, fftwdata_size, reference_data):
-        x, yr, dt = fftw_dct_ref(type, fftwdata_size, rdt, reference_data)
-        y = dct(x, type=type)
-        assert_equal(y.dtype, dt)
-        dec = dec_map[(dct, rdt, type)]
-        assert_allclose(y, yr, rtol=0., atol=np.max(yr)*10**(-dec))
-
-    @pytest.mark.parametrize('size', [7, 8, 9, 16, 32, 64])
-    def test_axis(self, rdt, type, size):
-        nt = 2
-        dec = dec_map[(dct, rdt, type)]
-        x = np.random.randn(nt, size)
-        y = dct(x, type=type)
-        for j in range(nt):
-            assert_array_almost_equal(y[j], dct(x[j], type=type),
-                                      decimal=dec)
-
-        x = x.T
-        y = dct(x, axis=0, type=type)
-        for j in range(nt):
-            assert_array_almost_equal(y[:,j], dct(x[:,j], type=type),
-                                      decimal=dec)
-
-
-@pytest.mark.parametrize('rdt', [np.longdouble, np.float64, np.float32, int])
-def test_dct1_definition_ortho(rdt, mdata_x):
-    # Test orthornomal mode.
-    dec = dec_map[(dct, rdt, 1)]
-    x = np.array(mdata_x, dtype=rdt)
-    dt = np.result_type(np.float32, rdt)
-    y = dct(x, norm='ortho', type=1)
-    y2 = naive_dct1(x, norm='ortho')
-    assert_equal(y.dtype, dt)
-    assert_allclose(y, y2, rtol=0., atol=np.max(y2)*10**(-dec))
-
-
-@pytest.mark.parametrize('rdt', [np.longdouble, np.float64, np.float32, int])
-def test_dct2_definition_matlab(mdata_xy, rdt):
-    # Test correspondence with matlab (orthornomal mode).
-    dt = np.result_type(np.float32, rdt)
-    x = np.array(mdata_xy[0], dtype=dt)
-
-    yr = mdata_xy[1]
-    y = dct(x, norm="ortho", type=2)
-    dec = dec_map[(dct, rdt, 2)]
-    assert_equal(y.dtype, dt)
-    assert_array_almost_equal(y, yr, decimal=dec)
-
-
-@pytest.mark.parametrize('rdt', [np.longdouble, np.float64, np.float32, int])
-def test_dct3_definition_ortho(mdata_x, rdt):
-    # Test orthornomal mode.
-    x = np.array(mdata_x, dtype=rdt)
-    dt = np.result_type(np.float32, rdt)
-    y = dct(x, norm='ortho', type=2)
-    xi = dct(y, norm="ortho", type=3)
-    dec = dec_map[(dct, rdt, 3)]
-    assert_equal(xi.dtype, dt)
-    assert_array_almost_equal(xi, x, decimal=dec)
-
-
-@pytest.mark.parametrize('rdt', [np.longdouble, np.float64, np.float32, int])
-def test_dct4_definition_ortho(mdata_x, rdt):
-    # Test orthornomal mode.
-    x = np.array(mdata_x, dtype=rdt)
-    dt = np.result_type(np.float32, rdt)
-    y = dct(x, norm='ortho', type=4)
-    y2 = naive_dct4(x, norm='ortho')
-    dec = dec_map[(dct, rdt, 4)]
-    assert_equal(y.dtype, dt)
-    assert_allclose(y, y2, rtol=0., atol=np.max(y2)*10**(-dec))
-
-
-@pytest.mark.parametrize('rdt', [np.longdouble, np.float64, np.float32, int])
-@pytest.mark.parametrize('type', [1, 2, 3, 4])
-def test_idct_definition(fftwdata_size, rdt, type, reference_data):
-    xr, yr, dt = fftw_dct_ref(type, fftwdata_size, rdt, reference_data)
-    x = idct(yr, type=type)
-    dec = dec_map[(idct, rdt, type)]
-    assert_equal(x.dtype, dt)
-    assert_allclose(x, xr, rtol=0., atol=np.max(xr)*10**(-dec))
-
-
-@pytest.mark.parametrize('rdt', [np.longdouble, np.float64, np.float32, int])
-@pytest.mark.parametrize('type', [1, 2, 3, 4])
-def test_definition(fftwdata_size, rdt, type, reference_data):
-    xr, yr, dt = fftw_dst_ref(type, fftwdata_size, rdt, reference_data)
-    y = dst(xr, type=type)
-    dec = dec_map[(dst, rdt, type)]
-    assert_equal(y.dtype, dt)
-    assert_allclose(y, yr, rtol=0., atol=np.max(yr)*10**(-dec))
-
-
-@pytest.mark.parametrize('rdt', [np.longdouble, np.float64, np.float32, int])
-def test_dst1_definition_ortho(rdt, mdata_x):
-    # Test orthornomal mode.
-    dec = dec_map[(dst, rdt, 1)]
-    x = np.array(mdata_x, dtype=rdt)
-    dt = np.result_type(np.float32, rdt)
-    y = dst(x, norm='ortho', type=1)
-    y2 = naive_dst1(x, norm='ortho')
-    assert_equal(y.dtype, dt)
-    assert_allclose(y, y2, rtol=0., atol=np.max(y2)*10**(-dec))
-
-
-@pytest.mark.parametrize('rdt', [np.longdouble, np.float64, np.float32, int])
-def test_dst4_definition_ortho(rdt, mdata_x):
-    # Test orthornomal mode.
-    dec = dec_map[(dst, rdt, 4)]
-    x = np.array(mdata_x, dtype=rdt)
-    dt = np.result_type(np.float32, rdt)
-    y = dst(x, norm='ortho', type=4)
-    y2 = naive_dst4(x, norm='ortho')
-    assert_equal(y.dtype, dt)
-    assert_array_almost_equal(y, y2, decimal=dec)
-
-
-@pytest.mark.parametrize('rdt', [np.longdouble, np.float64, np.float32, int])
-@pytest.mark.parametrize('type', [1, 2, 3, 4])
-def test_idst_definition(fftwdata_size, rdt, type, reference_data):
-    xr, yr, dt = fftw_dst_ref(type, fftwdata_size, rdt, reference_data)
-    x = idst(yr, type=type)
-    dec = dec_map[(idst, rdt, type)]
-    assert_equal(x.dtype, dt)
-    assert_allclose(x, xr, rtol=0., atol=np.max(xr)*10**(-dec))
-
-
-@pytest.mark.parametrize('routine', [dct, dst, idct, idst])
-@pytest.mark.parametrize('dtype', [np.float32, np.float64, np.longdouble])
-@pytest.mark.parametrize('shape, axis', [
-    ((16,), -1), ((16, 2), 0), ((2, 16), 1)
-])
-@pytest.mark.parametrize('type', [1, 2, 3, 4])
-@pytest.mark.parametrize('overwrite_x', [True, False])
-@pytest.mark.parametrize('norm', [None, 'ortho'])
-def test_overwrite(routine, dtype, shape, axis, type, norm, overwrite_x):
-    # Check input overwrite behavior
-    np.random.seed(1234)
-    if np.issubdtype(dtype, np.complexfloating):
-        x = np.random.randn(*shape) + 1j*np.random.randn(*shape)
-    else:
-        x = np.random.randn(*shape)
-    x = x.astype(dtype)
-    x2 = x.copy()
-    routine(x2, type, None, axis, norm, overwrite_x=overwrite_x)
-
-    sig = "{}({}{!r}, {!r}, axis={!r}, overwrite_x={!r})".format(
-        routine.__name__, x.dtype, x.shape, None, axis, overwrite_x)
-    if not overwrite_x:
-        assert_equal(x2, x, err_msg="spurious overwrite in %s" % sig)
-
-
-class Test_DCTN_IDCTN:
-    dec = 14
-    dct_type = [1, 2, 3, 4]
-    norms = [None, 'backward', 'ortho', 'forward']
-    rstate = np.random.RandomState(1234)
-    shape = (32, 16)
-    data = rstate.randn(*shape)
-
-    @pytest.mark.parametrize('fforward,finverse', [(dctn, idctn),
-                                                   (dstn, idstn)])
-    @pytest.mark.parametrize('axes', [None,
-                                      1, (1,), [1],
-                                      0, (0,), [0],
-                                      (0, 1), [0, 1],
-                                      (-2, -1), [-2, -1]])
-    @pytest.mark.parametrize('dct_type', dct_type)
-    @pytest.mark.parametrize('norm', ['ortho'])
-    def test_axes_round_trip(self, fforward, finverse, axes, dct_type, norm):
-        tmp = fforward(self.data, type=dct_type, axes=axes, norm=norm)
-        tmp = finverse(tmp, type=dct_type, axes=axes, norm=norm)
-        assert_array_almost_equal(self.data, tmp, decimal=12)
-
-    @pytest.mark.parametrize('funcn,func', [(dctn, dct), (dstn, dst)])
-    @pytest.mark.parametrize('dct_type', dct_type)
-    @pytest.mark.parametrize('norm', norms)
-    def test_dctn_vs_2d_reference(self, funcn, func, dct_type, norm):
-        y1 = funcn(self.data, type=dct_type, axes=None, norm=norm)
-        y2 = ref_2d(func, self.data, type=dct_type, norm=norm)
-        assert_array_almost_equal(y1, y2, decimal=11)
-
-    @pytest.mark.parametrize('funcn,func', [(idctn, idct), (idstn, idst)])
-    @pytest.mark.parametrize('dct_type', dct_type)
-    @pytest.mark.parametrize('norm', norms)
-    def test_idctn_vs_2d_reference(self, funcn, func, dct_type, norm):
-        fdata = dctn(self.data, type=dct_type, norm=norm)
-        y1 = funcn(fdata, type=dct_type, norm=norm)
-        y2 = ref_2d(func, fdata, type=dct_type, norm=norm)
-        assert_array_almost_equal(y1, y2, decimal=11)
-
-    @pytest.mark.parametrize('fforward,finverse', [(dctn, idctn),
-                                                   (dstn, idstn)])
-    def test_axes_and_shape(self, fforward, finverse):
-        with assert_raises(ValueError,
-                           match="when given, axes and shape arguments"
-                           " have to be of the same length"):
-            fforward(self.data, s=self.data.shape[0], axes=(0, 1))
-
-        with assert_raises(ValueError,
-                           match="when given, axes and shape arguments"
-                           " have to be of the same length"):
-            fforward(self.data, s=self.data.shape, axes=0)
-
-    @pytest.mark.parametrize('fforward', [dctn, dstn])
-    def test_shape(self, fforward):
-        tmp = fforward(self.data, s=(128, 128), axes=None)
-        assert_equal(tmp.shape, (128, 128))
-
-    @pytest.mark.parametrize('fforward,finverse', [(dctn, idctn),
-                                                   (dstn, idstn)])
-    @pytest.mark.parametrize('axes', [1, (1,), [1],
-                                      0, (0,), [0]])
-    def test_shape_is_none_with_axes(self, fforward, finverse, axes):
-        tmp = fforward(self.data, s=None, axes=axes, norm='ortho')
-        tmp = finverse(tmp, s=None, axes=axes, norm='ortho')
-        assert_array_almost_equal(self.data, tmp, decimal=self.dec)
-
-
-@pytest.mark.parametrize('func', [dct, dctn, idct, idctn,
-                                  dst, dstn, idst, idstn])
-def test_swapped_byte_order(func):
-    rng = np.random.RandomState(1234)
-    x = rng.rand(10)
-    swapped_dt = x.dtype.newbyteorder('S')
-    assert_allclose(func(x.astype(swapped_dt)), func(x))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_realtransforms.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_realtransforms.py
deleted file mode 100644
index 1c7a3d683dd78d3227a7de88f5c47569d2f4e17f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_realtransforms.py
+++ /dev/null
@@ -1,693 +0,0 @@
-from ._basic import _dispatch
-from scipy._lib.uarray import Dispatchable
-import numpy as np
-
-__all__ = ['dct', 'idct', 'dst', 'idst', 'dctn', 'idctn', 'dstn', 'idstn']
-
-
-@_dispatch
-def dctn(x, type=2, s=None, axes=None, norm=None, overwrite_x=False,
-         workers=None, *, orthogonalize=None):
-    """
-    Return multidimensional Discrete Cosine Transform along the specified axes.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DCT (see Notes). Default type is 2.
-    s : int or array_like of ints or None, optional
-        The shape of the result. If both `s` and `axes` (see below) are None,
-        `s` is ``x.shape``; if `s` is None but `axes` is not None, then `s` is
-        ``numpy.take(x.shape, axes, axis=0)``.
-        If ``s[i] > x.shape[i]``, the ith dimension of the input is padded with zeros.
-        If ``s[i] < x.shape[i]``, the ith dimension of the input is truncated to length
-        ``s[i]``.
-        If any element of `s` is -1, the size of the corresponding dimension of
-        `x` is used.
-    axes : int or array_like of ints or None, optional
-        Axes over which the DCT is computed. If not given, the last ``len(s)``
-        axes are used, or all axes if `s` is also not specified.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see Notes). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    orthogonalize : bool, optional
-        Whether to use the orthogonalized DCT variant (see Notes).
-        Defaults to ``True`` when ``norm="ortho"`` and ``False`` otherwise.
-
-        .. versionadded:: 1.8.0
-
-    Returns
-    -------
-    y : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    idctn : Inverse multidimensional DCT
-
-    Notes
-    -----
-    For full details of the DCT types and normalization modes, as well as
-    references, see `dct`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fft import dctn, idctn
-    >>> rng = np.random.default_rng()
-    >>> y = rng.standard_normal((16, 16))
-    >>> np.allclose(y, idctn(dctn(y)))
-    True
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def idctn(x, type=2, s=None, axes=None, norm=None, overwrite_x=False,
-          workers=None, orthogonalize=None):
-    """
-    Return multidimensional Inverse Discrete Cosine Transform along the specified axes.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DCT (see Notes). Default type is 2.
-    s : int or array_like of ints or None, optional
-        The shape of the result.  If both `s` and `axes` (see below) are
-        None, `s` is ``x.shape``; if `s` is None but `axes` is
-        not None, then `s` is ``numpy.take(x.shape, axes, axis=0)``.
-        If ``s[i] > x.shape[i]``, the ith dimension of the input is padded with zeros.
-        If ``s[i] < x.shape[i]``, the ith dimension of the input is truncated to length
-        ``s[i]``.
-        If any element of `s` is -1, the size of the corresponding dimension of
-        `x` is used.
-    axes : int or array_like of ints or None, optional
-        Axes over which the IDCT is computed. If not given, the last ``len(s)``
-        axes are used, or all axes if `s` is also not specified.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see Notes). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    orthogonalize : bool, optional
-        Whether to use the orthogonalized IDCT variant (see Notes).
-        Defaults to ``True`` when ``norm="ortho"`` and ``False`` otherwise.
-
-        .. versionadded:: 1.8.0
-
-    Returns
-    -------
-    y : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    dctn : multidimensional DCT
-
-    Notes
-    -----
-    For full details of the IDCT types and normalization modes, as well as
-    references, see `idct`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fft import dctn, idctn
-    >>> rng = np.random.default_rng()
-    >>> y = rng.standard_normal((16, 16))
-    >>> np.allclose(y, idctn(dctn(y)))
-    True
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def dstn(x, type=2, s=None, axes=None, norm=None, overwrite_x=False,
-         workers=None, orthogonalize=None):
-    """
-    Return multidimensional Discrete Sine Transform along the specified axes.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DST (see Notes). Default type is 2.
-    s : int or array_like of ints or None, optional
-        The shape of the result.  If both `s` and `axes` (see below) are None,
-        `s` is ``x.shape``; if `s` is None but `axes` is not None, then `s` is
-        ``numpy.take(x.shape, axes, axis=0)``.
-        If ``s[i] > x.shape[i]``, the ith dimension of the input is padded with zeros.
-        If ``s[i] < x.shape[i]``, the ith dimension of the input is truncated to length
-        ``s[i]``.
-        If any element of `shape` is -1, the size of the corresponding dimension
-        of `x` is used.
-    axes : int or array_like of ints or None, optional
-        Axes over which the DST is computed. If not given, the last ``len(s)``
-        axes are used, or all axes if `s` is also not specified.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see Notes). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    orthogonalize : bool, optional
-        Whether to use the orthogonalized DST variant (see Notes).
-        Defaults to ``True`` when ``norm="ortho"`` and ``False`` otherwise.
-
-        .. versionadded:: 1.8.0
-
-    Returns
-    -------
-    y : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    idstn : Inverse multidimensional DST
-
-    Notes
-    -----
-    For full details of the DST types and normalization modes, as well as
-    references, see `dst`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fft import dstn, idstn
-    >>> rng = np.random.default_rng()
-    >>> y = rng.standard_normal((16, 16))
-    >>> np.allclose(y, idstn(dstn(y)))
-    True
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def idstn(x, type=2, s=None, axes=None, norm=None, overwrite_x=False,
-          workers=None, orthogonalize=None):
-    """
-    Return multidimensional Inverse Discrete Sine Transform along the specified axes.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DST (see Notes). Default type is 2.
-    s : int or array_like of ints or None, optional
-        The shape of the result.  If both `s` and `axes` (see below) are None,
-        `s` is ``x.shape``; if `s` is None but `axes` is not None, then `s` is
-        ``numpy.take(x.shape, axes, axis=0)``.
-        If ``s[i] > x.shape[i]``, the ith dimension of the input is padded with zeros.
-        If ``s[i] < x.shape[i]``, the ith dimension of the input is truncated to length
-        ``s[i]``.
-        If any element of `s` is -1, the size of the corresponding dimension of
-        `x` is used.
-    axes : int or array_like of ints or None, optional
-        Axes over which the IDST is computed. If not given, the last ``len(s)``
-        axes are used, or all axes if `s` is also not specified.
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see Notes). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    orthogonalize : bool, optional
-        Whether to use the orthogonalized IDST variant (see Notes).
-        Defaults to ``True`` when ``norm="ortho"`` and ``False`` otherwise.
-
-        .. versionadded:: 1.8.0
-
-    Returns
-    -------
-    y : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    dstn : multidimensional DST
-
-    Notes
-    -----
-    For full details of the IDST types and normalization modes, as well as
-    references, see `idst`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fft import dstn, idstn
-    >>> rng = np.random.default_rng()
-    >>> y = rng.standard_normal((16, 16))
-    >>> np.allclose(y, idstn(dstn(y)))
-    True
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def dct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False, workers=None,
-        orthogonalize=None):
-    r"""Return the Discrete Cosine Transform of arbitrary type sequence x.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DCT (see Notes). Default type is 2.
-    n : int, optional
-        Length of the transform.  If ``n < x.shape[axis]``, `x` is
-        truncated.  If ``n > x.shape[axis]``, `x` is zero-padded. The
-        default results in ``n = x.shape[axis]``.
-    axis : int, optional
-        Axis along which the dct is computed; the default is over the
-        last axis (i.e., ``axis=-1``).
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see Notes). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    orthogonalize : bool, optional
-        Whether to use the orthogonalized DCT variant (see Notes).
-        Defaults to ``True`` when ``norm="ortho"`` and ``False`` otherwise.
-
-        .. versionadded:: 1.8.0
-
-    Returns
-    -------
-    y : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    idct : Inverse DCT
-
-    Notes
-    -----
-    For a single dimension array ``x``, ``dct(x, norm='ortho')`` is equal to
-    MATLAB ``dct(x)``.
-
-    .. warning:: For ``type in {1, 2, 3}``, ``norm="ortho"`` breaks the direct
-                 correspondence with the direct Fourier transform. To recover
-                 it you must specify ``orthogonalize=False``.
-
-    For ``norm="ortho"`` both the `dct` and `idct` are scaled by the same
-    overall factor in both directions. By default, the transform is also
-    orthogonalized which for types 1, 2 and 3 means the transform definition is
-    modified to give orthogonality of the DCT matrix (see below).
-
-    For ``norm="backward"``, there is no scaling on `dct` and the `idct` is
-    scaled by ``1/N`` where ``N`` is the "logical" size of the DCT. For
-    ``norm="forward"`` the ``1/N`` normalization is applied to the forward
-    `dct` instead and the `idct` is unnormalized.
-
-    There are, theoretically, 8 types of the DCT, only the first 4 types are
-    implemented in SciPy.'The' DCT generally refers to DCT type 2, and 'the'
-    Inverse DCT generally refers to DCT type 3.
-
-    **Type I**
-
-    There are several definitions of the DCT-I; we use the following
-    (for ``norm="backward"``)
-
-    .. math::
-
-       y_k = x_0 + (-1)^k x_{N-1} + 2 \sum_{n=1}^{N-2} x_n \cos\left(
-       \frac{\pi k n}{N-1} \right)
-
-    If ``orthogonalize=True``, ``x[0]`` and ``x[N-1]`` are multiplied by a
-    scaling factor of :math:`\sqrt{2}`, and ``y[0]`` and ``y[N-1]`` are divided
-    by :math:`\sqrt{2}`. When combined with ``norm="ortho"``, this makes the
-    corresponding matrix of coefficients orthonormal (``O @ O.T = np.eye(N)``).
-
-    .. note::
-       The DCT-I is only supported for input size > 1.
-
-    **Type II**
-
-    There are several definitions of the DCT-II; we use the following
-    (for ``norm="backward"``)
-
-    .. math::
-
-       y_k = 2 \sum_{n=0}^{N-1} x_n \cos\left(\frac{\pi k(2n+1)}{2N} \right)
-
-    If ``orthogonalize=True``, ``y[0]`` is divided by :math:`\sqrt{2}` which,
-    when combined with ``norm="ortho"``, makes the corresponding matrix of
-    coefficients orthonormal (``O @ O.T = np.eye(N)``).
-
-    **Type III**
-
-    There are several definitions, we use the following (for
-    ``norm="backward"``)
-
-    .. math::
-
-       y_k = x_0 + 2 \sum_{n=1}^{N-1} x_n \cos\left(\frac{\pi(2k+1)n}{2N}\right)
-
-    If ``orthogonalize=True``, ``x[0]`` terms are multiplied by
-    :math:`\sqrt{2}` which, when combined with ``norm="ortho"``, makes the
-    corresponding matrix of coefficients orthonormal (``O @ O.T = np.eye(N)``).
-
-    The (unnormalized) DCT-III is the inverse of the (unnormalized) DCT-II, up
-    to a factor `2N`. The orthonormalized DCT-III is exactly the inverse of
-    the orthonormalized DCT-II.
-
-    **Type IV**
-
-    There are several definitions of the DCT-IV; we use the following
-    (for ``norm="backward"``)
-
-    .. math::
-
-       y_k = 2 \sum_{n=0}^{N-1} x_n \cos\left(\frac{\pi(2k+1)(2n+1)}{4N} \right)
-
-    ``orthogonalize`` has no effect here, as the DCT-IV matrix is already
-    orthogonal up to a scale factor of ``2N``.
-
-    References
-    ----------
-    .. [1] 'A Fast Cosine Transform in One and Two Dimensions', by J.
-           Makhoul, `IEEE Transactions on acoustics, speech and signal
-           processing` vol. 28(1), pp. 27-34,
-           :doi:`10.1109/TASSP.1980.1163351` (1980).
-    .. [2] Wikipedia, "Discrete cosine transform",
-           https://en.wikipedia.org/wiki/Discrete_cosine_transform
-
-    Examples
-    --------
-    The Type 1 DCT is equivalent to the FFT (though faster) for real,
-    even-symmetrical inputs. The output is also real and even-symmetrical.
-    Half of the FFT input is used to generate half of the FFT output:
-
-    >>> from scipy.fft import fft, dct
-    >>> import numpy as np
-    >>> fft(np.array([4., 3., 5., 10., 5., 3.])).real
-    array([ 30.,  -8.,   6.,  -2.,   6.,  -8.])
-    >>> dct(np.array([4., 3., 5., 10.]), 1)
-    array([ 30.,  -8.,   6.,  -2.])
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def idct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False,
-         workers=None, orthogonalize=None):
-    """
-    Return the Inverse Discrete Cosine Transform of an arbitrary type sequence.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DCT (see Notes). Default type is 2.
-    n : int, optional
-        Length of the transform.  If ``n < x.shape[axis]``, `x` is
-        truncated.  If ``n > x.shape[axis]``, `x` is zero-padded. The
-        default results in ``n = x.shape[axis]``.
-    axis : int, optional
-        Axis along which the idct is computed; the default is over the
-        last axis (i.e., ``axis=-1``).
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see Notes). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    orthogonalize : bool, optional
-        Whether to use the orthogonalized IDCT variant (see Notes).
-        Defaults to ``True`` when ``norm="ortho"`` and ``False`` otherwise.
-
-        .. versionadded:: 1.8.0
-
-    Returns
-    -------
-    idct : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    dct : Forward DCT
-
-    Notes
-    -----
-    For a single dimension array `x`, ``idct(x, norm='ortho')`` is equal to
-    MATLAB ``idct(x)``.
-
-    .. warning:: For ``type in {1, 2, 3}``, ``norm="ortho"`` breaks the direct
-                 correspondence with the inverse direct Fourier transform. To
-                 recover it you must specify ``orthogonalize=False``.
-
-    For ``norm="ortho"`` both the `dct` and `idct` are scaled by the same
-    overall factor in both directions. By default, the transform is also
-    orthogonalized which for types 1, 2 and 3 means the transform definition is
-    modified to give orthogonality of the IDCT matrix (see `dct` for the full
-    definitions).
-
-    'The' IDCT is the IDCT-II, which is the same as the normalized DCT-III.
-
-    The IDCT is equivalent to a normal DCT except for the normalization and
-    type. DCT type 1 and 4 are their own inverse and DCTs 2 and 3 are each
-    other's inverses.
-
-    Examples
-    --------
-    The Type 1 DCT is equivalent to the DFT for real, even-symmetrical
-    inputs. The output is also real and even-symmetrical. Half of the IFFT
-    input is used to generate half of the IFFT output:
-
-    >>> from scipy.fft import ifft, idct
-    >>> import numpy as np
-    >>> ifft(np.array([ 30.,  -8.,   6.,  -2.,   6.,  -8.])).real
-    array([  4.,   3.,   5.,  10.,   5.,   3.])
-    >>> idct(np.array([ 30.,  -8.,   6.,  -2.]), 1)
-    array([  4.,   3.,   5.,  10.])
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def dst(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False, workers=None,
-        orthogonalize=None):
-    r"""
-    Return the Discrete Sine Transform of arbitrary type sequence x.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DST (see Notes). Default type is 2.
-    n : int, optional
-        Length of the transform. If ``n < x.shape[axis]``, `x` is
-        truncated.  If ``n > x.shape[axis]``, `x` is zero-padded. The
-        default results in ``n = x.shape[axis]``.
-    axis : int, optional
-        Axis along which the dst is computed; the default is over the
-        last axis (i.e., ``axis=-1``).
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see Notes). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    orthogonalize : bool, optional
-        Whether to use the orthogonalized DST variant (see Notes).
-        Defaults to ``True`` when ``norm="ortho"`` and ``False`` otherwise.
-
-        .. versionadded:: 1.8.0
-
-    Returns
-    -------
-    dst : ndarray of reals
-        The transformed input array.
-
-    See Also
-    --------
-    idst : Inverse DST
-
-    Notes
-    -----
-    .. warning:: For ``type in {2, 3}``, ``norm="ortho"`` breaks the direct
-                 correspondence with the direct Fourier transform. To recover
-                 it you must specify ``orthogonalize=False``.
-
-    For ``norm="ortho"`` both the `dst` and `idst` are scaled by the same
-    overall factor in both directions. By default, the transform is also
-    orthogonalized which for types 2 and 3 means the transform definition is
-    modified to give orthogonality of the DST matrix (see below).
-
-    For ``norm="backward"``, there is no scaling on the `dst` and the `idst` is
-    scaled by ``1/N`` where ``N`` is the "logical" size of the DST.
-
-    There are, theoretically, 8 types of the DST for different combinations of
-    even/odd boundary conditions and boundary off sets [1]_, only the first
-    4 types are implemented in SciPy.
-
-    **Type I**
-
-    There are several definitions of the DST-I; we use the following for
-    ``norm="backward"``. DST-I assumes the input is odd around :math:`n=-1` and
-    :math:`n=N`.
-
-    .. math::
-
-        y_k = 2 \sum_{n=0}^{N-1} x_n \sin\left(\frac{\pi(k+1)(n+1)}{N+1}\right)
-
-    Note that the DST-I is only supported for input size > 1.
-    The (unnormalized) DST-I is its own inverse, up to a factor :math:`2(N+1)`.
-    The orthonormalized DST-I is exactly its own inverse.
-
-    ``orthogonalize`` has no effect here, as the DST-I matrix is already
-    orthogonal up to a scale factor of ``2N``.
-
-    **Type II**
-
-    There are several definitions of the DST-II; we use the following for
-    ``norm="backward"``. DST-II assumes the input is odd around :math:`n=-1/2` and
-    :math:`n=N-1/2`; the output is odd around :math:`k=-1` and even around :math:`k=N-1`
-
-    .. math::
-
-        y_k = 2 \sum_{n=0}^{N-1} x_n \sin\left(\frac{\pi(k+1)(2n+1)}{2N}\right)
-
-    If ``orthogonalize=True``, ``y[-1]`` is divided :math:`\sqrt{2}` which, when
-    combined with ``norm="ortho"``, makes the corresponding matrix of
-    coefficients orthonormal (``O @ O.T = np.eye(N)``).
-
-    **Type III**
-
-    There are several definitions of the DST-III, we use the following (for
-    ``norm="backward"``). DST-III assumes the input is odd around :math:`n=-1` and
-    even around :math:`n=N-1`
-
-    .. math::
-
-        y_k = (-1)^k x_{N-1} + 2 \sum_{n=0}^{N-2} x_n \sin\left(
-        \frac{\pi(2k+1)(n+1)}{2N}\right)
-
-    If ``orthogonalize=True``, ``x[-1]`` is multiplied by :math:`\sqrt{2}`
-    which, when combined with ``norm="ortho"``, makes the corresponding matrix
-    of coefficients orthonormal (``O @ O.T = np.eye(N)``).
-
-    The (unnormalized) DST-III is the inverse of the (unnormalized) DST-II, up
-    to a factor :math:`2N`. The orthonormalized DST-III is exactly the inverse of the
-    orthonormalized DST-II.
-
-    **Type IV**
-
-    There are several definitions of the DST-IV, we use the following (for
-    ``norm="backward"``). DST-IV assumes the input is odd around :math:`n=-0.5` and
-    even around :math:`n=N-0.5`
-
-    .. math::
-
-        y_k = 2 \sum_{n=0}^{N-1} x_n \sin\left(\frac{\pi(2k+1)(2n+1)}{4N}\right)
-
-    ``orthogonalize`` has no effect here, as the DST-IV matrix is already
-    orthogonal up to a scale factor of ``2N``.
-
-    The (unnormalized) DST-IV is its own inverse, up to a factor :math:`2N`. The
-    orthonormalized DST-IV is exactly its own inverse.
-
-    References
-    ----------
-    .. [1] Wikipedia, "Discrete sine transform",
-           https://en.wikipedia.org/wiki/Discrete_sine_transform
-
-    """
-    return (Dispatchable(x, np.ndarray),)
-
-
-@_dispatch
-def idst(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False,
-         workers=None, orthogonalize=None):
-    """
-    Return the Inverse Discrete Sine Transform of an arbitrary type sequence.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DST (see Notes). Default type is 2.
-    n : int, optional
-        Length of the transform. If ``n < x.shape[axis]``, `x` is
-        truncated.  If ``n > x.shape[axis]``, `x` is zero-padded. The
-        default results in ``n = x.shape[axis]``.
-    axis : int, optional
-        Axis along which the idst is computed; the default is over the
-        last axis (i.e., ``axis=-1``).
-    norm : {"backward", "ortho", "forward"}, optional
-        Normalization mode (see Notes). Default is "backward".
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-    workers : int, optional
-        Maximum number of workers to use for parallel computation. If negative,
-        the value wraps around from ``os.cpu_count()``.
-        See :func:`~scipy.fft.fft` for more details.
-    orthogonalize : bool, optional
-        Whether to use the orthogonalized IDST variant (see Notes).
-        Defaults to ``True`` when ``norm="ortho"`` and ``False`` otherwise.
-
-        .. versionadded:: 1.8.0
-
-    Returns
-    -------
-    idst : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    dst : Forward DST
-
-    Notes
-    -----
-    .. warning:: For ``type in {2, 3}``, ``norm="ortho"`` breaks the direct
-                 correspondence with the inverse direct Fourier transform.
-
-    For ``norm="ortho"`` both the `dst` and `idst` are scaled by the same
-    overall factor in both directions. By default, the transform is also
-    orthogonalized which for types 2 and 3 means the transform definition is
-    modified to give orthogonality of the DST matrix (see `dst` for the full
-    definitions).
-
-    'The' IDST is the IDST-II, which is the same as the normalized DST-III.
-
-    The IDST is equivalent to a normal DST except for the normalization and
-    type. DST type 1 and 4 are their own inverse and DSTs 2 and 3 are each
-    other's inverses.
-
-    """
-    return (Dispatchable(x, np.ndarray),)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_realtransforms_backend.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_realtransforms_backend.py
deleted file mode 100644
index 2042453733bec54860974cc1e20ba908e8c9b94d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/_realtransforms_backend.py
+++ /dev/null
@@ -1,63 +0,0 @@
-from scipy._lib._array_api import array_namespace
-import numpy as np
-from . import _pocketfft
-
-__all__ = ['dct', 'idct', 'dst', 'idst', 'dctn', 'idctn', 'dstn', 'idstn']
-
-
-def _execute(pocketfft_func, x, type, s, axes, norm, 
-             overwrite_x, workers, orthogonalize):
-    xp = array_namespace(x)
-    x = np.asarray(x)
-    y = pocketfft_func(x, type, s, axes, norm,
-                       overwrite_x=overwrite_x, workers=workers,
-                       orthogonalize=orthogonalize)
-    return xp.asarray(y)
-
-
-def dctn(x, type=2, s=None, axes=None, norm=None,
-         overwrite_x=False, workers=None, *, orthogonalize=None):
-    return _execute(_pocketfft.dctn, x, type, s, axes, norm, 
-                    overwrite_x, workers, orthogonalize)
-
-
-def idctn(x, type=2, s=None, axes=None, norm=None,
-          overwrite_x=False, workers=None, *, orthogonalize=None):
-    return _execute(_pocketfft.idctn, x, type, s, axes, norm, 
-                    overwrite_x, workers, orthogonalize)
-
-
-def dstn(x, type=2, s=None, axes=None, norm=None,
-         overwrite_x=False, workers=None, orthogonalize=None):
-    return _execute(_pocketfft.dstn, x, type, s, axes, norm, 
-                    overwrite_x, workers, orthogonalize)
-
-
-def idstn(x, type=2, s=None, axes=None, norm=None,
-          overwrite_x=False, workers=None, *, orthogonalize=None):
-    return _execute(_pocketfft.idstn, x, type, s, axes, norm, 
-                    overwrite_x, workers, orthogonalize)
-
-
-def dct(x, type=2, n=None, axis=-1, norm=None,
-        overwrite_x=False, workers=None, orthogonalize=None):
-    return _execute(_pocketfft.dct, x, type, n, axis, norm, 
-                    overwrite_x, workers, orthogonalize)
-
-
-def idct(x, type=2, n=None, axis=-1, norm=None,
-         overwrite_x=False, workers=None, orthogonalize=None):
-    return _execute(_pocketfft.idct, x, type, n, axis, norm, 
-                    overwrite_x, workers, orthogonalize)
-
-
-def dst(x, type=2, n=None, axis=-1, norm=None,
-        overwrite_x=False, workers=None, orthogonalize=None):
-    return _execute(_pocketfft.dst, x, type, n, axis, norm, 
-                    overwrite_x, workers, orthogonalize)
-
-
-def idst(x, type=2, n=None, axis=-1, norm=None,
-         overwrite_x=False, workers=None, orthogonalize=None):
-    return _execute(_pocketfft.idst, x, type, n, axis, norm, 
-                    overwrite_x, workers, orthogonalize)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 181be349ea606f3343ac837c9186054823e0906b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/mock_backend.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/mock_backend.cpython-310.pyc
deleted file mode 100644
index b2a369d0c541f1b1b092380e2f4b87027d3e2251..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/mock_backend.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_backend.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_backend.cpython-310.pyc
deleted file mode 100644
index c62f30885c149a30b83e651142083e3ae54d8b9e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_backend.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_basic.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_basic.cpython-310.pyc
deleted file mode 100644
index 12a6fc683658a7afdf037cdd1505c4cad3386517..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_basic.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_fftlog.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_fftlog.cpython-310.pyc
deleted file mode 100644
index cd766ae49b45b6948274f705f4027bc3b09e0e33..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_fftlog.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_helper.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_helper.cpython-310.pyc
deleted file mode 100644
index 551309aff4d6953b24ba1483e38abfdba749cc48..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_helper.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_multithreading.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_multithreading.cpython-310.pyc
deleted file mode 100644
index 7584c6626ad6d758c43737e522b1005553cce21d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_multithreading.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_real_transforms.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_real_transforms.cpython-310.pyc
deleted file mode 100644
index 77faac4896e74432757e3cf6704af304a59475da..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/__pycache__/test_real_transforms.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/mock_backend.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/mock_backend.py
deleted file mode 100644
index c57a88e0af291ffd68a2a1d62218e8c9459986d5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/mock_backend.py
+++ /dev/null
@@ -1,92 +0,0 @@
-import numpy as np
-import scipy.fft
-
-class _MockFunction:
-    def __init__(self, return_value = None):
-        self.number_calls = 0
-        self.return_value = return_value
-        self.last_args = ([], {})
-
-    def __call__(self, *args, **kwargs):
-        self.number_calls += 1
-        self.last_args = (args, kwargs)
-        return self.return_value
-
-
-fft = _MockFunction(np.random.random(10))
-fft2 = _MockFunction(np.random.random(10))
-fftn = _MockFunction(np.random.random(10))
-
-ifft = _MockFunction(np.random.random(10))
-ifft2 = _MockFunction(np.random.random(10))
-ifftn = _MockFunction(np.random.random(10))
-
-rfft = _MockFunction(np.random.random(10))
-rfft2 = _MockFunction(np.random.random(10))
-rfftn = _MockFunction(np.random.random(10))
-
-irfft = _MockFunction(np.random.random(10))
-irfft2 = _MockFunction(np.random.random(10))
-irfftn = _MockFunction(np.random.random(10))
-
-hfft = _MockFunction(np.random.random(10))
-hfft2 = _MockFunction(np.random.random(10))
-hfftn = _MockFunction(np.random.random(10))
-
-ihfft = _MockFunction(np.random.random(10))
-ihfft2 = _MockFunction(np.random.random(10))
-ihfftn = _MockFunction(np.random.random(10))
-
-dct = _MockFunction(np.random.random(10))
-idct = _MockFunction(np.random.random(10))
-dctn = _MockFunction(np.random.random(10))
-idctn = _MockFunction(np.random.random(10))
-
-dst = _MockFunction(np.random.random(10))
-idst = _MockFunction(np.random.random(10))
-dstn = _MockFunction(np.random.random(10))
-idstn = _MockFunction(np.random.random(10))
-
-fht = _MockFunction(np.random.random(10))
-ifht = _MockFunction(np.random.random(10))
-
-
-__ua_domain__ = "numpy.scipy.fft"
-
-
-_implements = {
-    scipy.fft.fft: fft,
-    scipy.fft.fft2: fft2,
-    scipy.fft.fftn: fftn,
-    scipy.fft.ifft: ifft,
-    scipy.fft.ifft2: ifft2,
-    scipy.fft.ifftn: ifftn,
-    scipy.fft.rfft: rfft,
-    scipy.fft.rfft2: rfft2,
-    scipy.fft.rfftn: rfftn,
-    scipy.fft.irfft: irfft,
-    scipy.fft.irfft2: irfft2,
-    scipy.fft.irfftn: irfftn,
-    scipy.fft.hfft: hfft,
-    scipy.fft.hfft2: hfft2,
-    scipy.fft.hfftn: hfftn,
-    scipy.fft.ihfft: ihfft,
-    scipy.fft.ihfft2: ihfft2,
-    scipy.fft.ihfftn: ihfftn,
-    scipy.fft.dct: dct,
-    scipy.fft.idct: idct,
-    scipy.fft.dctn: dctn,
-    scipy.fft.idctn: idctn,
-    scipy.fft.dst: dst,
-    scipy.fft.idst: idst,
-    scipy.fft.dstn: dstn,
-    scipy.fft.idstn: idstn,
-    scipy.fft.fht: fht,
-    scipy.fft.ifht: ifht
-}
-
-
-def __ua_function__(method, args, kwargs):
-    fn = _implements.get(method)
-    return (fn(*args, **kwargs) if fn is not None
-            else NotImplemented)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_backend.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_backend.py
deleted file mode 100644
index 352ca8ff2a7ab1181b0a3226663dad7ef36ac0fe..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_backend.py
+++ /dev/null
@@ -1,98 +0,0 @@
-from functools import partial
-
-import numpy as np
-import scipy.fft
-from scipy.fft import _fftlog, _pocketfft, set_backend
-from scipy.fft.tests import mock_backend
-
-from numpy.testing import assert_allclose, assert_equal
-import pytest
-
-fnames = ('fft', 'fft2', 'fftn',
-          'ifft', 'ifft2', 'ifftn',
-          'rfft', 'rfft2', 'rfftn',
-          'irfft', 'irfft2', 'irfftn',
-          'dct', 'idct', 'dctn', 'idctn',
-          'dst', 'idst', 'dstn', 'idstn',
-          'fht', 'ifht')
-
-np_funcs = (np.fft.fft, np.fft.fft2, np.fft.fftn,
-            np.fft.ifft, np.fft.ifft2, np.fft.ifftn,
-            np.fft.rfft, np.fft.rfft2, np.fft.rfftn,
-            np.fft.irfft, np.fft.irfft2, np.fft.irfftn,
-            np.fft.hfft, _pocketfft.hfft2, _pocketfft.hfftn,  # np has no hfftn
-            np.fft.ihfft, _pocketfft.ihfft2, _pocketfft.ihfftn,
-            _pocketfft.dct, _pocketfft.idct, _pocketfft.dctn, _pocketfft.idctn,
-            _pocketfft.dst, _pocketfft.idst, _pocketfft.dstn, _pocketfft.idstn,
-            # must provide required kwargs for fht, ifht
-            partial(_fftlog.fht, dln=2, mu=0.5),
-            partial(_fftlog.ifht, dln=2, mu=0.5))
-
-funcs = (scipy.fft.fft, scipy.fft.fft2, scipy.fft.fftn,
-         scipy.fft.ifft, scipy.fft.ifft2, scipy.fft.ifftn,
-         scipy.fft.rfft, scipy.fft.rfft2, scipy.fft.rfftn,
-         scipy.fft.irfft, scipy.fft.irfft2, scipy.fft.irfftn,
-         scipy.fft.hfft, scipy.fft.hfft2, scipy.fft.hfftn,
-         scipy.fft.ihfft, scipy.fft.ihfft2, scipy.fft.ihfftn,
-         scipy.fft.dct, scipy.fft.idct, scipy.fft.dctn, scipy.fft.idctn,
-         scipy.fft.dst, scipy.fft.idst, scipy.fft.dstn, scipy.fft.idstn,
-         # must provide required kwargs for fht, ifht
-         partial(scipy.fft.fht, dln=2, mu=0.5),
-         partial(scipy.fft.ifht, dln=2, mu=0.5))
-
-mocks = (mock_backend.fft, mock_backend.fft2, mock_backend.fftn,
-         mock_backend.ifft, mock_backend.ifft2, mock_backend.ifftn,
-         mock_backend.rfft, mock_backend.rfft2, mock_backend.rfftn,
-         mock_backend.irfft, mock_backend.irfft2, mock_backend.irfftn,
-         mock_backend.hfft, mock_backend.hfft2, mock_backend.hfftn,
-         mock_backend.ihfft, mock_backend.ihfft2, mock_backend.ihfftn,
-         mock_backend.dct, mock_backend.idct,
-         mock_backend.dctn, mock_backend.idctn,
-         mock_backend.dst, mock_backend.idst,
-         mock_backend.dstn, mock_backend.idstn,
-         mock_backend.fht, mock_backend.ifht)
-
-
-@pytest.mark.parametrize("func, np_func, mock", zip(funcs, np_funcs, mocks))
-def test_backend_call(func, np_func, mock):
-    x = np.arange(20).reshape((10,2))
-    answer = np_func(x.astype(np.float64))
-    assert_allclose(func(x), answer, atol=1e-10)
-
-    with set_backend(mock_backend, only=True):
-        mock.number_calls = 0
-        y = func(x)
-        assert_equal(y, mock.return_value)
-        assert_equal(mock.number_calls, 1)
-
-    assert_allclose(func(x), answer, atol=1e-10)
-
-
-plan_funcs = (scipy.fft.fft, scipy.fft.fft2, scipy.fft.fftn,
-              scipy.fft.ifft, scipy.fft.ifft2, scipy.fft.ifftn,
-              scipy.fft.rfft, scipy.fft.rfft2, scipy.fft.rfftn,
-              scipy.fft.irfft, scipy.fft.irfft2, scipy.fft.irfftn,
-              scipy.fft.hfft, scipy.fft.hfft2, scipy.fft.hfftn,
-              scipy.fft.ihfft, scipy.fft.ihfft2, scipy.fft.ihfftn)
-
-plan_mocks = (mock_backend.fft, mock_backend.fft2, mock_backend.fftn,
-              mock_backend.ifft, mock_backend.ifft2, mock_backend.ifftn,
-              mock_backend.rfft, mock_backend.rfft2, mock_backend.rfftn,
-              mock_backend.irfft, mock_backend.irfft2, mock_backend.irfftn,
-              mock_backend.hfft, mock_backend.hfft2, mock_backend.hfftn,
-              mock_backend.ihfft, mock_backend.ihfft2, mock_backend.ihfftn)
-
-
-@pytest.mark.parametrize("func, mock", zip(plan_funcs, plan_mocks))
-def test_backend_plan(func, mock):
-    x = np.arange(20).reshape((10, 2))
-
-    with pytest.raises(NotImplementedError, match='precomputed plan'):
-        func(x, plan='foo')
-
-    with set_backend(mock_backend, only=True):
-        mock.number_calls = 0
-        y = func(x, plan='foo')
-        assert_equal(y, mock.return_value)
-        assert_equal(mock.number_calls, 1)
-        assert_equal(mock.last_args[1]['plan'], 'foo')
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_basic.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_basic.py
deleted file mode 100644
index 2e1a12f1cd7768898aaa71d4fc7e3ba283770c77..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_basic.py
+++ /dev/null
@@ -1,491 +0,0 @@
-import queue
-import threading
-import multiprocessing
-import numpy as np
-import pytest
-from numpy.random import random
-from numpy.testing import assert_array_almost_equal, assert_allclose
-from pytest import raises as assert_raises
-import scipy.fft as fft
-from scipy.conftest import array_api_compatible
-from scipy._lib._array_api import (
-    array_namespace, size, xp_assert_close, xp_assert_equal
-)
-
-pytestmark = [array_api_compatible, pytest.mark.usefixtures("skip_xp_backends")]
-skip_xp_backends = pytest.mark.skip_xp_backends
-
-
-# Expected input dtypes. Note that `scipy.fft` is more flexible for numpy,
-# but for C2C transforms like `fft.fft`, the array API standard only mandates
-# that complex dtypes should work, float32/float64 aren't guaranteed to.
-def get_expected_input_dtype(func, xp):
-    if func in [fft.fft, fft.fftn, fft.fft2,
-                fft.ifft, fft.ifftn, fft.ifft2,
-                fft.hfft, fft.hfftn, fft.hfft2,
-                fft.irfft, fft.irfftn, fft.irfft2]:
-        dtype = xp.complex128
-    elif func in [fft.rfft, fft.rfftn, fft.rfft2,
-                  fft.ihfft, fft.ihfftn, fft.ihfft2]:
-        dtype = xp.float64
-    else:
-        raise ValueError(f'Unknown FFT function: {func}')
-
-    return dtype
-
-
-def fft1(x):
-    L = len(x)
-    phase = -2j*np.pi*(np.arange(L)/float(L))
-    phase = np.arange(L).reshape(-1, 1) * phase
-    return np.sum(x*np.exp(phase), axis=1)
-
-class TestFFT:
-
-    def test_identity(self, xp):
-        maxlen = 512
-        x = xp.asarray(random(maxlen) + 1j*random(maxlen))
-        xr = xp.asarray(random(maxlen))
-        # Check some powers of 2 and some primes
-        for i in [1, 2, 16, 128, 512, 53, 149, 281, 397]:
-            xp_assert_close(fft.ifft(fft.fft(x[0:i])), x[0:i])
-            xp_assert_close(fft.irfft(fft.rfft(xr[0:i]), i), xr[0:i])
-    
-    @skip_xp_backends(np_only=True, reasons=['significant overhead for some backends'])
-    def test_identity_extensive(self, xp):
-        maxlen = 512
-        x = xp.asarray(random(maxlen) + 1j*random(maxlen))
-        xr = xp.asarray(random(maxlen))
-        for i in range(1, maxlen):
-            xp_assert_close(fft.ifft(fft.fft(x[0:i])), x[0:i])
-            xp_assert_close(fft.irfft(fft.rfft(xr[0:i]), i), xr[0:i])
-
-    def test_fft(self, xp):
-        x = random(30) + 1j*random(30)
-        expect = xp.asarray(fft1(x))
-        x = xp.asarray(x)
-        xp_assert_close(fft.fft(x), expect)
-        xp_assert_close(fft.fft(x, norm="backward"), expect)
-        xp_assert_close(fft.fft(x, norm="ortho"),
-                        expect / xp.sqrt(xp.asarray(30, dtype=xp.float64)),)
-        xp_assert_close(fft.fft(x, norm="forward"), expect / 30)
-
-    @skip_xp_backends(np_only=True, reasons=['some backends allow `n=0`'])
-    def test_fft_n(self, xp):
-        x = xp.asarray([1, 2, 3], dtype=xp.complex128)
-        assert_raises(ValueError, fft.fft, x, 0)
-
-    def test_ifft(self, xp):
-        x = xp.asarray(random(30) + 1j*random(30))
-        xp_assert_close(fft.ifft(fft.fft(x)), x)
-        for norm in ["backward", "ortho", "forward"]:
-            xp_assert_close(fft.ifft(fft.fft(x, norm=norm), norm=norm), x)
-
-    def test_fft2(self, xp):
-        x = xp.asarray(random((30, 20)) + 1j*random((30, 20)))
-        expect = fft.fft(fft.fft(x, axis=1), axis=0)
-        xp_assert_close(fft.fft2(x), expect)
-        xp_assert_close(fft.fft2(x, norm="backward"), expect)
-        xp_assert_close(fft.fft2(x, norm="ortho"),
-                        expect / xp.sqrt(xp.asarray(30 * 20, dtype=xp.float64)))
-        xp_assert_close(fft.fft2(x, norm="forward"), expect / (30 * 20))
-
-    def test_ifft2(self, xp):
-        x = xp.asarray(random((30, 20)) + 1j*random((30, 20)))
-        expect = fft.ifft(fft.ifft(x, axis=1), axis=0)
-        xp_assert_close(fft.ifft2(x), expect)
-        xp_assert_close(fft.ifft2(x, norm="backward"), expect)
-        xp_assert_close(fft.ifft2(x, norm="ortho"),
-                        expect * xp.sqrt(xp.asarray(30 * 20, dtype=xp.float64)))
-        xp_assert_close(fft.ifft2(x, norm="forward"), expect * (30 * 20))
-
-    def test_fftn(self, xp):
-        x = xp.asarray(random((30, 20, 10)) + 1j*random((30, 20, 10)))
-        expect = fft.fft(fft.fft(fft.fft(x, axis=2), axis=1), axis=0)
-        xp_assert_close(fft.fftn(x), expect)
-        xp_assert_close(fft.fftn(x, norm="backward"), expect)
-        xp_assert_close(fft.fftn(x, norm="ortho"),
-                        expect / xp.sqrt(xp.asarray(30 * 20 * 10, dtype=xp.float64)))
-        xp_assert_close(fft.fftn(x, norm="forward"), expect / (30 * 20 * 10))
-
-    def test_ifftn(self, xp):
-        x = xp.asarray(random((30, 20, 10)) + 1j*random((30, 20, 10)))
-        expect = fft.ifft(fft.ifft(fft.ifft(x, axis=2), axis=1), axis=0)
-        xp_assert_close(fft.ifftn(x), expect, rtol=1e-7)
-        xp_assert_close(fft.ifftn(x, norm="backward"), expect, rtol=1e-7)
-        xp_assert_close(
-            fft.ifftn(x, norm="ortho"),
-            fft.ifftn(x) * xp.sqrt(xp.asarray(30 * 20 * 10, dtype=xp.float64))
-        )
-        xp_assert_close(fft.ifftn(x, norm="forward"),
-                        expect * (30 * 20 * 10),
-                        rtol=1e-7)
-
-    def test_rfft(self, xp):
-        x = xp.asarray(random(29), dtype=xp.float64)
-        for n in [size(x), 2*size(x)]:
-            for norm in [None, "backward", "ortho", "forward"]:
-                xp_assert_close(fft.rfft(x, n=n, norm=norm),
-                                fft.fft(xp.asarray(x, dtype=xp.complex128),
-                                        n=n, norm=norm)[:(n//2 + 1)])
-            xp_assert_close(
-                fft.rfft(x, n=n, norm="ortho"),
-                fft.rfft(x, n=n) / xp.sqrt(xp.asarray(n, dtype=xp.float64))
-            )
-
-    def test_irfft(self, xp):
-        x = xp.asarray(random(30))
-        xp_assert_close(fft.irfft(fft.rfft(x)), x)
-        for norm in ["backward", "ortho", "forward"]:
-            xp_assert_close(fft.irfft(fft.rfft(x, norm=norm), norm=norm), x)
-
-    def test_rfft2(self, xp):
-        x = xp.asarray(random((30, 20)), dtype=xp.float64)
-        expect = fft.fft2(xp.asarray(x, dtype=xp.complex128))[:, :11]
-        xp_assert_close(fft.rfft2(x), expect)
-        xp_assert_close(fft.rfft2(x, norm="backward"), expect)
-        xp_assert_close(fft.rfft2(x, norm="ortho"),
-                        expect / xp.sqrt(xp.asarray(30 * 20, dtype=xp.float64)))
-        xp_assert_close(fft.rfft2(x, norm="forward"), expect / (30 * 20))
-
-    def test_irfft2(self, xp):
-        x = xp.asarray(random((30, 20)))
-        xp_assert_close(fft.irfft2(fft.rfft2(x)), x)
-        for norm in ["backward", "ortho", "forward"]:
-            xp_assert_close(fft.irfft2(fft.rfft2(x, norm=norm), norm=norm), x)
-
-    def test_rfftn(self, xp):
-        x = xp.asarray(random((30, 20, 10)), dtype=xp.float64)
-        expect = fft.fftn(xp.asarray(x, dtype=xp.complex128))[:, :, :6]
-        xp_assert_close(fft.rfftn(x), expect)
-        xp_assert_close(fft.rfftn(x, norm="backward"), expect)
-        xp_assert_close(fft.rfftn(x, norm="ortho"),
-                        expect / xp.sqrt(xp.asarray(30 * 20 * 10, dtype=xp.float64)))
-        xp_assert_close(fft.rfftn(x, norm="forward"), expect / (30 * 20 * 10))
-
-    def test_irfftn(self, xp):
-        x = xp.asarray(random((30, 20, 10)))
-        xp_assert_close(fft.irfftn(fft.rfftn(x)), x)
-        for norm in ["backward", "ortho", "forward"]:
-            xp_assert_close(fft.irfftn(fft.rfftn(x, norm=norm), norm=norm), x)
-
-    def test_hfft(self, xp):
-        x = random(14) + 1j*random(14)
-        x_herm = np.concatenate((random(1), x, random(1)))
-        x = np.concatenate((x_herm, x[::-1].conj()))
-        x = xp.asarray(x)
-        x_herm = xp.asarray(x_herm)
-        expect = xp.real(fft.fft(x))
-        xp_assert_close(fft.hfft(x_herm), expect)
-        xp_assert_close(fft.hfft(x_herm, norm="backward"), expect)
-        xp_assert_close(fft.hfft(x_herm, norm="ortho"),
-                        expect / xp.sqrt(xp.asarray(30, dtype=xp.float64)))
-        xp_assert_close(fft.hfft(x_herm, norm="forward"), expect / 30)
-
-    def test_ihfft(self, xp):
-        x = random(14) + 1j*random(14)
-        x_herm = np.concatenate((random(1), x, random(1)))
-        x = np.concatenate((x_herm, x[::-1].conj()))
-        x = xp.asarray(x)
-        x_herm = xp.asarray(x_herm)
-        xp_assert_close(fft.ihfft(fft.hfft(x_herm)), x_herm)
-        for norm in ["backward", "ortho", "forward"]:
-            xp_assert_close(fft.ihfft(fft.hfft(x_herm, norm=norm), norm=norm), x_herm)
-
-    def test_hfft2(self, xp):
-        x = xp.asarray(random((30, 20)))
-        xp_assert_close(fft.hfft2(fft.ihfft2(x)), x)
-        for norm in ["backward", "ortho", "forward"]:
-            xp_assert_close(fft.hfft2(fft.ihfft2(x, norm=norm), norm=norm), x)
-
-    def test_ihfft2(self, xp):
-        x = xp.asarray(random((30, 20)), dtype=xp.float64)
-        expect = fft.ifft2(xp.asarray(x, dtype=xp.complex128))[:, :11]
-        xp_assert_close(fft.ihfft2(x), expect)
-        xp_assert_close(fft.ihfft2(x, norm="backward"), expect)
-        xp_assert_close(
-            fft.ihfft2(x, norm="ortho"),
-            expect * xp.sqrt(xp.asarray(30 * 20, dtype=xp.float64))
-        )
-        xp_assert_close(fft.ihfft2(x, norm="forward"), expect * (30 * 20))
-
-    def test_hfftn(self, xp):
-        x = xp.asarray(random((30, 20, 10)))
-        xp_assert_close(fft.hfftn(fft.ihfftn(x)), x)
-        for norm in ["backward", "ortho", "forward"]:
-            xp_assert_close(fft.hfftn(fft.ihfftn(x, norm=norm), norm=norm), x)
-
-    def test_ihfftn(self, xp):
-        x = xp.asarray(random((30, 20, 10)), dtype=xp.float64)
-        expect = fft.ifftn(xp.asarray(x, dtype=xp.complex128))[:, :, :6]
-        xp_assert_close(expect, fft.ihfftn(x))
-        xp_assert_close(expect, fft.ihfftn(x, norm="backward"))
-        xp_assert_close(
-            fft.ihfftn(x, norm="ortho"),
-            expect * xp.sqrt(xp.asarray(30 * 20 * 10, dtype=xp.float64))
-        )
-        xp_assert_close(fft.ihfftn(x, norm="forward"), expect * (30 * 20 * 10))
-
-    def _check_axes(self, op, xp):
-        dtype = get_expected_input_dtype(op, xp)
-        x = xp.asarray(random((30, 20, 10)), dtype=dtype)
-        axes = [(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]
-        xp_test = array_namespace(x)
-        for a in axes:
-            op_tr = op(xp_test.permute_dims(x, axes=a))
-            tr_op = xp_test.permute_dims(op(x, axes=a), axes=a)
-            xp_assert_close(op_tr, tr_op)
-
-    @pytest.mark.parametrize("op", [fft.fftn, fft.ifftn, fft.rfftn, fft.irfftn])
-    def test_axes_standard(self, op, xp):
-        self._check_axes(op, xp)
-
-    @pytest.mark.parametrize("op", [fft.hfftn, fft.ihfftn])
-    def test_axes_non_standard(self, op, xp):
-        self._check_axes(op, xp)
-
-    @pytest.mark.parametrize("op", [fft.fftn, fft.ifftn,
-                                    fft.rfftn, fft.irfftn])
-    def test_axes_subset_with_shape_standard(self, op, xp):
-        dtype = get_expected_input_dtype(op, xp)
-        x = xp.asarray(random((16, 8, 4)), dtype=dtype)
-        axes = [(0, 1, 2), (0, 2, 1), (1, 2, 0)]
-        xp_test = array_namespace(x)
-        for a in axes:
-            # different shape on the first two axes
-            shape = tuple([2*x.shape[ax] if ax in a[:2] else x.shape[ax]
-                           for ax in range(x.ndim)])
-            # transform only the first two axes
-            op_tr = op(xp_test.permute_dims(x, axes=a),
-                       s=shape[:2], axes=(0, 1))
-            tr_op = xp_test.permute_dims(op(x, s=shape[:2], axes=a[:2]),
-                                         axes=a)
-            xp_assert_close(op_tr, tr_op)
-
-    @pytest.mark.parametrize("op", [fft.fft2, fft.ifft2,
-                                    fft.rfft2, fft.irfft2,
-                                    fft.hfft2, fft.ihfft2,
-                                    fft.hfftn, fft.ihfftn])
-    def test_axes_subset_with_shape_non_standard(self, op, xp):
-        dtype = get_expected_input_dtype(op, xp)
-        x = xp.asarray(random((16, 8, 4)), dtype=dtype)
-        axes = [(0, 1, 2), (0, 2, 1), (1, 2, 0)]
-        xp_test = array_namespace(x)
-        for a in axes:
-            # different shape on the first two axes
-            shape = tuple([2*x.shape[ax] if ax in a[:2] else x.shape[ax]
-                           for ax in range(x.ndim)])
-            # transform only the first two axes
-            op_tr = op(xp_test.permute_dims(x, axes=a), s=shape[:2], axes=(0, 1))
-            tr_op = xp_test.permute_dims(op(x, s=shape[:2], axes=a[:2]), axes=a)
-            xp_assert_close(op_tr, tr_op)
-
-    def test_all_1d_norm_preserving(self, xp):
-        # verify that round-trip transforms are norm-preserving
-        x = xp.asarray(random(30), dtype=xp.float64)
-        xp_test = array_namespace(x)
-        x_norm = xp_test.linalg.vector_norm(x)
-        n = size(x) * 2
-        func_pairs = [(fft.rfft, fft.irfft),
-                      # hfft: order so the first function takes x.size samples
-                      #       (necessary for comparison to x_norm above)
-                      (fft.ihfft, fft.hfft),
-                      # functions that expect complex dtypes at the end
-                      (fft.fft, fft.ifft),
-                      ]
-        for forw, back in func_pairs:
-            if forw == fft.fft:
-                x = xp.asarray(x, dtype=xp.complex128)
-                x_norm = xp_test.linalg.vector_norm(x)
-            for n in [size(x), 2*size(x)]:
-                for norm in ['backward', 'ortho', 'forward']:
-                    tmp = forw(x, n=n, norm=norm)
-                    tmp = back(tmp, n=n, norm=norm)
-                    xp_assert_close(xp_test.linalg.vector_norm(tmp), x_norm)
-
-    @skip_xp_backends(np_only=True)
-    @pytest.mark.parametrize("dtype", [np.float16, np.longdouble])
-    def test_dtypes_nonstandard(self, dtype):
-        x = random(30).astype(dtype)
-        out_dtypes = {np.float16: np.complex64, np.longdouble: np.clongdouble}
-        x_complex = x.astype(out_dtypes[dtype])
-
-        res_fft = fft.ifft(fft.fft(x))
-        res_rfft = fft.irfft(fft.rfft(x))
-        res_hfft = fft.hfft(fft.ihfft(x), x.shape[0])
-        # Check both numerical results and exact dtype matches
-        assert_array_almost_equal(res_fft, x_complex)
-        assert_array_almost_equal(res_rfft, x)
-        assert_array_almost_equal(res_hfft, x)
-        assert res_fft.dtype == x_complex.dtype
-        assert res_rfft.dtype == np.result_type(np.float32, x.dtype)
-        assert res_hfft.dtype == np.result_type(np.float32, x.dtype)
-
-    @pytest.mark.parametrize("dtype", ["float32", "float64"])
-    def test_dtypes_real(self, dtype, xp):
-        x = xp.asarray(random(30), dtype=getattr(xp, dtype))
-
-        res_rfft = fft.irfft(fft.rfft(x))
-        res_hfft = fft.hfft(fft.ihfft(x), x.shape[0])
-        # Check both numerical results and exact dtype matches
-        xp_assert_close(res_rfft, x)
-        xp_assert_close(res_hfft, x)
-
-    @pytest.mark.parametrize("dtype", ["complex64", "complex128"])
-    def test_dtypes_complex(self, dtype, xp):
-        x = xp.asarray(random(30), dtype=getattr(xp, dtype))
-
-        res_fft = fft.ifft(fft.fft(x))
-        # Check both numerical results and exact dtype matches
-        xp_assert_close(res_fft, x)
-
-    @skip_xp_backends(np_only=True,
-                      reasons=['array-likes only supported for NumPy backend'])
-    @pytest.mark.parametrize("op", [fft.fft, fft.ifft,
-                                    fft.fft2, fft.ifft2,
-                                    fft.fftn, fft.ifftn,
-                                    fft.rfft, fft.irfft,
-                                    fft.rfft2, fft.irfft2,
-                                    fft.rfftn, fft.irfftn,
-                                    fft.hfft, fft.ihfft,
-                                    fft.hfft2, fft.ihfft2,
-                                    fft.hfftn, fft.ihfftn,])
-    def test_array_like(self, xp, op):
-        x = [[[1.0, 1.0], [1.0, 1.0]],
-             [[1.0, 1.0], [1.0, 1.0]],
-             [[1.0, 1.0], [1.0, 1.0]]]
-        xp_assert_close(op(x), op(xp.asarray(x)))
-
-
-@skip_xp_backends(np_only=True)
-@pytest.mark.parametrize(
-        "dtype",
-        [np.float32, np.float64, np.longdouble,
-         np.complex64, np.complex128, np.clongdouble])
-@pytest.mark.parametrize("order", ["F", 'non-contiguous'])
-@pytest.mark.parametrize(
-        "fft",
-        [fft.fft, fft.fft2, fft.fftn,
-         fft.ifft, fft.ifft2, fft.ifftn])
-def test_fft_with_order(dtype, order, fft):
-    # Check that FFT/IFFT produces identical results for C, Fortran and
-    # non contiguous arrays
-    rng = np.random.RandomState(42)
-    X = rng.rand(8, 7, 13).astype(dtype, copy=False)
-    if order == 'F':
-        Y = np.asfortranarray(X)
-    else:
-        # Make a non contiguous array
-        Y = X[::-1]
-        X = np.ascontiguousarray(X[::-1])
-
-    if fft.__name__.endswith('fft'):
-        for axis in range(3):
-            X_res = fft(X, axis=axis)
-            Y_res = fft(Y, axis=axis)
-            assert_array_almost_equal(X_res, Y_res)
-    elif fft.__name__.endswith(('fft2', 'fftn')):
-        axes = [(0, 1), (1, 2), (0, 2)]
-        if fft.__name__.endswith('fftn'):
-            axes.extend([(0,), (1,), (2,), None])
-        for ax in axes:
-            X_res = fft(X, axes=ax)
-            Y_res = fft(Y, axes=ax)
-            assert_array_almost_equal(X_res, Y_res)
-    else:
-        raise ValueError
-
-
-@skip_xp_backends(cpu_only=True)
-class TestFFTThreadSafe:
-    threads = 16
-    input_shape = (800, 200)
-
-    def _test_mtsame(self, func, *args, xp=None):
-        def worker(args, q):
-            q.put(func(*args))
-
-        q = queue.Queue()
-        expected = func(*args)
-
-        # Spin off a bunch of threads to call the same function simultaneously
-        t = [threading.Thread(target=worker, args=(args, q))
-             for i in range(self.threads)]
-        [x.start() for x in t]
-
-        [x.join() for x in t]
-
-        # Make sure all threads returned the correct value
-        for i in range(self.threads):
-            xp_assert_equal(
-                q.get(timeout=5), expected,
-                err_msg='Function returned wrong value in multithreaded context'
-            )
-
-    def test_fft(self, xp):
-        a = xp.ones(self.input_shape, dtype=xp.complex128)
-        self._test_mtsame(fft.fft, a, xp=xp)
-
-    def test_ifft(self, xp):
-        a = xp.full(self.input_shape, 1+0j)
-        self._test_mtsame(fft.ifft, a, xp=xp)
-
-    def test_rfft(self, xp):
-        a = xp.ones(self.input_shape)
-        self._test_mtsame(fft.rfft, a, xp=xp)
-
-    def test_irfft(self, xp):
-        a = xp.full(self.input_shape, 1+0j)
-        self._test_mtsame(fft.irfft, a, xp=xp)
-
-    def test_hfft(self, xp):
-        a = xp.ones(self.input_shape, dtype=xp.complex64)
-        self._test_mtsame(fft.hfft, a, xp=xp)
-
-    def test_ihfft(self, xp):
-        a = xp.ones(self.input_shape)
-        self._test_mtsame(fft.ihfft, a, xp=xp)
-
-
-@skip_xp_backends(np_only=True)
-@pytest.mark.parametrize("func", [fft.fft, fft.ifft, fft.rfft, fft.irfft])
-def test_multiprocess(func):
-    # Test that fft still works after fork (gh-10422)
-
-    with multiprocessing.Pool(2) as p:
-        res = p.map(func, [np.ones(100) for _ in range(4)])
-
-    expect = func(np.ones(100))
-    for x in res:
-        assert_allclose(x, expect)
-
-
-class TestIRFFTN:
-
-    def test_not_last_axis_success(self, xp):
-        ar, ai = np.random.random((2, 16, 8, 32))
-        a = ar + 1j*ai
-        a = xp.asarray(a)
-
-        axes = (-2,)
-
-        # Should not raise error
-        fft.irfftn(a, axes=axes)
-
-
-@pytest.mark.parametrize("func", [fft.fft, fft.ifft, fft.rfft, fft.irfft,
-                                  fft.fftn, fft.ifftn,
-                                  fft.rfftn, fft.irfftn, fft.hfft, fft.ihfft])
-def test_non_standard_params(func, xp):
-    if func in [fft.rfft, fft.rfftn, fft.ihfft]:
-        dtype = xp.float64
-    else:
-        dtype = xp.complex128
-
-    if xp.__name__ != 'numpy':
-        x = xp.asarray([1, 2, 3], dtype=dtype)
-        # func(x) should not raise an exception
-        func(x)
-        assert_raises(ValueError, func, x, workers=2)
-        # `plan` param is not tested since SciPy does not use it currently
-        # but should be tested if it comes into use
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_fftlog.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_fftlog.py
deleted file mode 100644
index e9efd852d1b7437021f80da24e97488bc9f786eb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_fftlog.py
+++ /dev/null
@@ -1,179 +0,0 @@
-import warnings
-import numpy as np
-import pytest
-
-from scipy.fft._fftlog import fht, ifht, fhtoffset
-from scipy.special import poch
-
-from scipy.conftest import array_api_compatible
-from scipy._lib._array_api import xp_assert_close
-
-pytestmark = [array_api_compatible, pytest.mark.usefixtures("skip_xp_backends"),]
-skip_xp_backends = pytest.mark.skip_xp_backends
-
-
-def test_fht_agrees_with_fftlog(xp):
-    # check that fht numerically agrees with the output from Fortran FFTLog,
-    # the results were generated with the provided `fftlogtest` program,
-    # after fixing how the k array is generated (divide range by n-1, not n)
-
-    # test function, analytical Hankel transform is of the same form
-    def f(r, mu):
-        return r**(mu+1)*np.exp(-r**2/2)
-
-    r = np.logspace(-4, 4, 16)
-
-    dln = np.log(r[1]/r[0])
-    mu = 0.3
-    offset = 0.0
-    bias = 0.0
-
-    a = xp.asarray(f(r, mu))
-
-    # test 1: compute as given
-    ours = fht(a, dln, mu, offset=offset, bias=bias)
-    theirs = [-0.1159922613593045E-02, +0.1625822618458832E-02,
-              -0.1949518286432330E-02, +0.3789220182554077E-02,
-              +0.5093959119952945E-03, +0.2785387803618774E-01,
-              +0.9944952700848897E-01, +0.4599202164586588E+00,
-              +0.3157462160881342E+00, -0.8201236844404755E-03,
-              -0.7834031308271878E-03, +0.3931444945110708E-03,
-              -0.2697710625194777E-03, +0.3568398050238820E-03,
-              -0.5554454827797206E-03, +0.8286331026468585E-03]
-    theirs = xp.asarray(theirs, dtype=xp.float64)
-    xp_assert_close(ours, theirs)
-
-    # test 2: change to optimal offset
-    offset = fhtoffset(dln, mu, bias=bias)
-    ours = fht(a, dln, mu, offset=offset, bias=bias)
-    theirs = [+0.4353768523152057E-04, -0.9197045663594285E-05,
-              +0.3150140927838524E-03, +0.9149121960963704E-03,
-              +0.5808089753959363E-02, +0.2548065256377240E-01,
-              +0.1339477692089897E+00, +0.4821530509479356E+00,
-              +0.2659899781579785E+00, -0.1116475278448113E-01,
-              +0.1791441617592385E-02, -0.4181810476548056E-03,
-              +0.1314963536765343E-03, -0.5422057743066297E-04,
-              +0.3208681804170443E-04, -0.2696849476008234E-04]
-    theirs = xp.asarray(theirs, dtype=xp.float64)
-    xp_assert_close(ours, theirs)
-
-    # test 3: positive bias
-    bias = 0.8
-    offset = fhtoffset(dln, mu, bias=bias)
-    ours = fht(a, dln, mu, offset=offset, bias=bias)
-    theirs = [-7.3436673558316850E+00, +0.1710271207817100E+00,
-              +0.1065374386206564E+00, -0.5121739602708132E-01,
-              +0.2636649319269470E-01, +0.1697209218849693E-01,
-              +0.1250215614723183E+00, +0.4739583261486729E+00,
-              +0.2841149874912028E+00, -0.8312764741645729E-02,
-              +0.1024233505508988E-02, -0.1644902767389120E-03,
-              +0.3305775476926270E-04, -0.7786993194882709E-05,
-              +0.1962258449520547E-05, -0.8977895734909250E-06]
-    theirs = xp.asarray(theirs, dtype=xp.float64)
-    xp_assert_close(ours, theirs)
-
-    # test 4: negative bias
-    bias = -0.8
-    offset = fhtoffset(dln, mu, bias=bias)
-    ours = fht(a, dln, mu, offset=offset, bias=bias)
-    theirs = [+0.8985777068568745E-05, +0.4074898209936099E-04,
-              +0.2123969254700955E-03, +0.1009558244834628E-02,
-              +0.5131386375222176E-02, +0.2461678673516286E-01,
-              +0.1235812845384476E+00, +0.4719570096404403E+00,
-              +0.2893487490631317E+00, -0.1686570611318716E-01,
-              +0.2231398155172505E-01, -0.1480742256379873E-01,
-              +0.1692387813500801E+00, +0.3097490354365797E+00,
-              +2.7593607182401860E+00, 10.5251075070045800E+00]
-    theirs = xp.asarray(theirs, dtype=xp.float64)
-    xp_assert_close(ours, theirs)
-
-
-@pytest.mark.parametrize('optimal', [True, False])
-@pytest.mark.parametrize('offset', [0.0, 1.0, -1.0])
-@pytest.mark.parametrize('bias', [0, 0.1, -0.1])
-@pytest.mark.parametrize('n', [64, 63])
-def test_fht_identity(n, bias, offset, optimal, xp):
-    rng = np.random.RandomState(3491349965)
-
-    a = xp.asarray(rng.standard_normal(n))
-    dln = rng.uniform(-1, 1)
-    mu = rng.uniform(-2, 2)
-
-    if optimal:
-        offset = fhtoffset(dln, mu, initial=offset, bias=bias)
-
-    A = fht(a, dln, mu, offset=offset, bias=bias)
-    a_ = ifht(A, dln, mu, offset=offset, bias=bias)
-
-    xp_assert_close(a_, a, rtol=1.5e-7)
-
-
-def test_fht_special_cases(xp):
-    rng = np.random.RandomState(3491349965)
-
-    a = xp.asarray(rng.standard_normal(64))
-    dln = rng.uniform(-1, 1)
-
-    # let x = (mu+1+q)/2, y = (mu+1-q)/2, M = {0, -1, -2, ...}
-
-    # case 1: x in M, y in M => well-defined transform
-    mu, bias = -4.0, 1.0
-    with warnings.catch_warnings(record=True) as record:
-        fht(a, dln, mu, bias=bias)
-        assert not record, 'fht warned about a well-defined transform'
-
-    # case 2: x not in M, y in M => well-defined transform
-    mu, bias = -2.5, 0.5
-    with warnings.catch_warnings(record=True) as record:
-        fht(a, dln, mu, bias=bias)
-        assert not record, 'fht warned about a well-defined transform'
-
-    # case 3: x in M, y not in M => singular transform
-    mu, bias = -3.5, 0.5
-    with pytest.warns(Warning) as record:
-        fht(a, dln, mu, bias=bias)
-        assert record, 'fht did not warn about a singular transform'
-
-    # case 4: x not in M, y in M => singular inverse transform
-    mu, bias = -2.5, 0.5
-    with pytest.warns(Warning) as record:
-        ifht(a, dln, mu, bias=bias)
-        assert record, 'ifht did not warn about a singular transform'
-
-
-@pytest.mark.parametrize('n', [64, 63])
-def test_fht_exact(n, xp):
-    rng = np.random.RandomState(3491349965)
-
-    # for a(r) a power law r^\gamma, the fast Hankel transform produces the
-    # exact continuous Hankel transform if biased with q = \gamma
-
-    mu = rng.uniform(0, 3)
-
-    # convergence of HT: -1-mu < gamma < 1/2
-    gamma = rng.uniform(-1-mu, 1/2)
-
-    r = np.logspace(-2, 2, n)
-    a = xp.asarray(r**gamma)
-
-    dln = np.log(r[1]/r[0])
-
-    offset = fhtoffset(dln, mu, initial=0.0, bias=gamma)
-
-    A = fht(a, dln, mu, offset=offset, bias=gamma)
-
-    k = np.exp(offset)/r[::-1]
-
-    # analytical result
-    At = xp.asarray((2/k)**gamma * poch((mu+1-gamma)/2, gamma))
-
-    xp_assert_close(A, At)
-
-@skip_xp_backends(np_only=True,
-                  reasons=['array-likes only supported for NumPy backend'])
-@pytest.mark.parametrize("op", [fht, ifht])
-def test_array_like(xp, op):
-    x = [[[1.0, 1.0], [1.0, 1.0]],
-         [[1.0, 1.0], [1.0, 1.0]],
-         [[1.0, 1.0], [1.0, 1.0]]]
-    xp_assert_close(op(x, 1.0, 2.0), op(xp.asarray(x), 1.0, 2.0))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_helper.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_helper.py
deleted file mode 100644
index 9a102ddec9011710f5c0f763334ef9492dc767da..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_helper.py
+++ /dev/null
@@ -1,570 +0,0 @@
-"""Includes test functions for fftpack.helper module
-
-Copied from fftpack.helper by Pearu Peterson, October 2005
-Modified for Array API, 2023
-
-"""
-from scipy.fft._helper import next_fast_len, prev_fast_len, _init_nd_shape_and_axes
-from numpy.testing import assert_equal
-from pytest import raises as assert_raises
-import pytest
-import numpy as np
-import sys
-from scipy.conftest import array_api_compatible
-from scipy._lib._array_api import (
-    xp_assert_close, get_xp_devices, device, array_namespace
-)
-from scipy import fft
-
-pytestmark = [array_api_compatible, pytest.mark.usefixtures("skip_xp_backends")]
-skip_xp_backends = pytest.mark.skip_xp_backends
-
-_5_smooth_numbers = [
-    2, 3, 4, 5, 6, 8, 9, 10,
-    2 * 3 * 5,
-    2**3 * 3**5,
-    2**3 * 3**3 * 5**2,
-]
-
-def test_next_fast_len():
-    for n in _5_smooth_numbers:
-        assert_equal(next_fast_len(n), n)
-
-
-def _assert_n_smooth(x, n):
-    x_orig = x
-    if n < 2:
-        assert False
-
-    while True:
-        q, r = divmod(x, 2)
-        if r != 0:
-            break
-        x = q
-
-    for d in range(3, n+1, 2):
-        while True:
-            q, r = divmod(x, d)
-            if r != 0:
-                break
-            x = q
-
-    assert x == 1, \
-           f'x={x_orig} is not {n}-smooth, remainder={x}'
-
-
-@skip_xp_backends(np_only=True)
-class TestNextFastLen:
-
-    def test_next_fast_len(self):
-        np.random.seed(1234)
-
-        def nums():
-            yield from range(1, 1000)
-            yield 2**5 * 3**5 * 4**5 + 1
-
-        for n in nums():
-            m = next_fast_len(n)
-            _assert_n_smooth(m, 11)
-            assert m == next_fast_len(n, False)
-
-            m = next_fast_len(n, True)
-            _assert_n_smooth(m, 5)
-
-    def test_np_integers(self):
-        ITYPES = [np.int16, np.int32, np.int64, np.uint16, np.uint32, np.uint64]
-        for ityp in ITYPES:
-            x = ityp(12345)
-            testN = next_fast_len(x)
-            assert_equal(testN, next_fast_len(int(x)))
-
-    def testnext_fast_len_small(self):
-        hams = {
-            1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 8, 8: 8, 14: 15, 15: 15,
-            16: 16, 17: 18, 1021: 1024, 1536: 1536, 51200000: 51200000
-        }
-        for x, y in hams.items():
-            assert_equal(next_fast_len(x, True), y)
-
-    @pytest.mark.xfail(sys.maxsize < 2**32,
-                       reason="Hamming Numbers too large for 32-bit",
-                       raises=ValueError, strict=True)
-    def testnext_fast_len_big(self):
-        hams = {
-            510183360: 510183360, 510183360 + 1: 512000000,
-            511000000: 512000000,
-            854296875: 854296875, 854296875 + 1: 859963392,
-            196608000000: 196608000000, 196608000000 + 1: 196830000000,
-            8789062500000: 8789062500000, 8789062500000 + 1: 8796093022208,
-            206391214080000: 206391214080000,
-            206391214080000 + 1: 206624260800000,
-            470184984576000: 470184984576000,
-            470184984576000 + 1: 470715894135000,
-            7222041363087360: 7222041363087360,
-            7222041363087360 + 1: 7230196133913600,
-            # power of 5    5**23
-            11920928955078125: 11920928955078125,
-            11920928955078125 - 1: 11920928955078125,
-            # power of 3    3**34
-            16677181699666569: 16677181699666569,
-            16677181699666569 - 1: 16677181699666569,
-            # power of 2   2**54
-            18014398509481984: 18014398509481984,
-            18014398509481984 - 1: 18014398509481984,
-            # above this, int(ceil(n)) == int(ceil(n+1))
-            19200000000000000: 19200000000000000,
-            19200000000000000 + 1: 19221679687500000,
-            288230376151711744: 288230376151711744,
-            288230376151711744 + 1: 288325195312500000,
-            288325195312500000 - 1: 288325195312500000,
-            288325195312500000: 288325195312500000,
-            288325195312500000 + 1: 288555831593533440,
-        }
-        for x, y in hams.items():
-            assert_equal(next_fast_len(x, True), y)
-
-    def test_keyword_args(self):
-        assert next_fast_len(11, real=True) == 12
-        assert next_fast_len(target=7, real=False) == 7
-
-@skip_xp_backends(np_only=True)
-class TestPrevFastLen:
-
-    def test_prev_fast_len(self):
-        np.random.seed(1234)
-
-        def nums():
-            yield from range(1, 1000)
-            yield 2**5 * 3**5 * 4**5 + 1
-
-        for n in nums():
-            m = prev_fast_len(n)
-            _assert_n_smooth(m, 11)
-            assert m == prev_fast_len(n, False)
-
-            m = prev_fast_len(n, True)
-            _assert_n_smooth(m, 5)
-
-    def test_np_integers(self):
-        ITYPES = [np.int16, np.int32, np.int64, np.uint16, np.uint32, 
-                    np.uint64]
-        for ityp in ITYPES:
-            x = ityp(12345)
-            testN = prev_fast_len(x)
-            assert_equal(testN, prev_fast_len(int(x)))
-
-            testN = prev_fast_len(x, real=True)
-            assert_equal(testN, prev_fast_len(int(x), real=True))
-
-    def testprev_fast_len_small(self):
-        hams = {
-            1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 6, 8: 8, 14: 12, 15: 15,
-            16: 16, 17: 16, 1021: 1000, 1536: 1536, 51200000: 51200000
-        }
-        for x, y in hams.items():
-            assert_equal(prev_fast_len(x, True), y)
-
-        hams = {
-            1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10,
-            11: 11, 12: 12, 13: 12, 14: 14, 15: 15, 16: 16, 17: 16, 18: 18,
-            19: 18, 20: 20, 21: 21, 22: 22, 120: 120, 121: 121, 122: 121,
-            1021: 1008, 1536: 1536, 51200000: 51200000
-        }
-        for x, y in hams.items():
-            assert_equal(prev_fast_len(x, False), y)
-
-    @pytest.mark.xfail(sys.maxsize < 2**32,
-                       reason="Hamming Numbers too large for 32-bit",
-                       raises=ValueError, strict=True)
-    def testprev_fast_len_big(self):
-        hams = {
-            # 2**6 * 3**13 * 5**1
-            510183360: 510183360,
-            510183360 + 1: 510183360,
-            510183360 - 1: 509607936,  # 2**21 * 3**5
-            # 2**6 * 5**6 * 7**1 * 73**1
-            511000000: 510183360,
-            511000000 + 1: 510183360,
-            511000000 - 1: 510183360,  # 2**6 * 3**13 * 5**1
-            # 3**7 * 5**8
-            854296875: 854296875,
-            854296875 + 1: 854296875,
-            854296875 - 1: 850305600,  # 2**6 * 3**12 * 5**2
-            # 2**22 * 3**1 * 5**6
-            196608000000: 196608000000,
-            196608000000 + 1: 196608000000,
-            196608000000 - 1: 195910410240,  # 2**13 * 3**14 * 5**1
-            # 2**5 * 3**2 * 5**15
-            8789062500000: 8789062500000,
-            8789062500000 + 1: 8789062500000,
-            8789062500000 - 1: 8748000000000,  # 2**11 * 3**7 * 5**9
-            # 2**24 * 3**9 * 5**4
-            206391214080000: 206391214080000,
-            206391214080000 + 1: 206391214080000,
-            206391214080000 - 1: 206158430208000,  # 2**39 * 3**1 * 5**3
-            # 2**18 * 3**15 * 5**3
-            470184984576000: 470184984576000,
-            470184984576000 + 1: 470184984576000,
-            470184984576000 - 1: 469654673817600,  # 2**33 * 3**7 **5**2
-            # 2**25 * 3**16 * 5**1
-            7222041363087360: 7222041363087360,
-            7222041363087360 + 1: 7222041363087360,
-            7222041363087360 - 1: 7213895789838336,  # 2**40 * 3**8
-            # power of 5    5**23
-            11920928955078125: 11920928955078125,
-            11920928955078125 + 1: 11920928955078125,
-            11920928955078125 - 1: 11901557422080000,  # 2**14 * 3**19 * 5**4
-            # power of 3    3**34
-            16677181699666569: 16677181699666569,
-            16677181699666569 + 1: 16677181699666569,
-            16677181699666569 - 1: 16607531250000000,  # 2**7 * 3**12 * 5**12
-            # power of 2   2**54
-            18014398509481984: 18014398509481984,
-            18014398509481984 + 1: 18014398509481984,
-            18014398509481984 - 1: 18000000000000000,  # 2**16 * 3**2 * 5**15
-            # 2**20 * 3**1 * 5**14
-            19200000000000000: 19200000000000000,
-            19200000000000000 + 1: 19200000000000000,
-            19200000000000000 - 1: 19131876000000000,  # 2**11 * 3**14 * 5**9
-            # 2**58
-            288230376151711744: 288230376151711744,
-            288230376151711744 + 1: 288230376151711744,
-            288230376151711744 - 1: 288000000000000000,  # 2**20 * 3**2 * 5**15
-            # 2**5 * 3**10 * 5**16
-            288325195312500000: 288325195312500000,
-            288325195312500000 + 1: 288325195312500000,
-            288325195312500000 - 1: 288230376151711744,  # 2**58
-        }
-        for x, y in hams.items():
-            assert_equal(prev_fast_len(x, True), y)
-
-    def test_keyword_args(self):
-        assert prev_fast_len(11, real=True) == 10
-        assert prev_fast_len(target=7, real=False) == 7
-
-
-@skip_xp_backends(cpu_only=True)
-class Test_init_nd_shape_and_axes:
-
-    def test_py_0d_defaults(self, xp):
-        x = xp.asarray(4)
-        shape = None
-        axes = None
-
-        shape_expected = ()
-        axes_expected = []
-
-        shape_res, axes_res = _init_nd_shape_and_axes(x, shape, axes)
-
-        assert shape_res == shape_expected
-        assert axes_res == axes_expected
-
-    def test_xp_0d_defaults(self, xp):
-        x = xp.asarray(7.)
-        shape = None
-        axes = None
-
-        shape_expected = ()
-        axes_expected = []
-
-        shape_res, axes_res = _init_nd_shape_and_axes(x, shape, axes)
-
-        assert shape_res == shape_expected
-        assert axes_res == axes_expected
-
-    def test_py_1d_defaults(self, xp):
-        x = xp.asarray([1, 2, 3])
-        shape = None
-        axes = None
-
-        shape_expected = (3,)
-        axes_expected = [0]
-
-        shape_res, axes_res = _init_nd_shape_and_axes(x, shape, axes)
-
-        assert shape_res == shape_expected
-        assert axes_res == axes_expected
-
-    def test_xp_1d_defaults(self, xp):
-        x = xp.arange(0, 1, .1)
-        shape = None
-        axes = None
-
-        shape_expected = (10,)
-        axes_expected = [0]
-
-        shape_res, axes_res = _init_nd_shape_and_axes(x, shape, axes)
-
-        assert shape_res == shape_expected
-        assert axes_res == axes_expected
-
-    def test_py_2d_defaults(self, xp):
-        x = xp.asarray([[1, 2, 3, 4],
-                        [5, 6, 7, 8]])
-        shape = None
-        axes = None
-
-        shape_expected = (2, 4)
-        axes_expected = [0, 1]
-
-        shape_res, axes_res = _init_nd_shape_and_axes(x, shape, axes)
-
-        assert shape_res == shape_expected
-        assert axes_res == axes_expected
-
-    def test_xp_2d_defaults(self, xp):
-        x = xp.arange(0, 1, .1)
-        x = xp.reshape(x, (5, 2))
-        shape = None
-        axes = None
-
-        shape_expected = (5, 2)
-        axes_expected = [0, 1]
-
-        shape_res, axes_res = _init_nd_shape_and_axes(x, shape, axes)
-
-        assert shape_res == shape_expected
-        assert axes_res == axes_expected
-
-    def test_xp_5d_defaults(self, xp):
-        x = xp.zeros([6, 2, 5, 3, 4])
-        shape = None
-        axes = None
-
-        shape_expected = (6, 2, 5, 3, 4)
-        axes_expected = [0, 1, 2, 3, 4]
-
-        shape_res, axes_res = _init_nd_shape_and_axes(x, shape, axes)
-
-        assert shape_res == shape_expected
-        assert axes_res == axes_expected
-
-    def test_xp_5d_set_shape(self, xp):
-        x = xp.zeros([6, 2, 5, 3, 4])
-        shape = [10, -1, -1, 1, 4]
-        axes = None
-
-        shape_expected = (10, 2, 5, 1, 4)
-        axes_expected = [0, 1, 2, 3, 4]
-
-        shape_res, axes_res = _init_nd_shape_and_axes(x, shape, axes)
-
-        assert shape_res == shape_expected
-        assert axes_res == axes_expected
-
-    def test_xp_5d_set_axes(self, xp):
-        x = xp.zeros([6, 2, 5, 3, 4])
-        shape = None
-        axes = [4, 1, 2]
-
-        shape_expected = (4, 2, 5)
-        axes_expected = [4, 1, 2]
-
-        shape_res, axes_res = _init_nd_shape_and_axes(x, shape, axes)
-
-        assert shape_res == shape_expected
-        assert axes_res == axes_expected
-
-    def test_xp_5d_set_shape_axes(self, xp):
-        x = xp.zeros([6, 2, 5, 3, 4])
-        shape = [10, -1, 2]
-        axes = [1, 0, 3]
-
-        shape_expected = (10, 6, 2)
-        axes_expected = [1, 0, 3]
-
-        shape_res, axes_res = _init_nd_shape_and_axes(x, shape, axes)
-
-        assert shape_res == shape_expected
-        assert axes_res == axes_expected
-
-    def test_shape_axes_subset(self, xp):
-        x = xp.zeros((2, 3, 4, 5))
-        shape, axes = _init_nd_shape_and_axes(x, shape=(5, 5, 5), axes=None)
-
-        assert shape == (5, 5, 5)
-        assert axes == [1, 2, 3]
-
-    def test_errors(self, xp):
-        x = xp.zeros(1)
-        with assert_raises(ValueError, match="axes must be a scalar or "
-                           "iterable of integers"):
-            _init_nd_shape_and_axes(x, shape=None, axes=[[1, 2], [3, 4]])
-
-        with assert_raises(ValueError, match="axes must be a scalar or "
-                           "iterable of integers"):
-            _init_nd_shape_and_axes(x, shape=None, axes=[1., 2., 3., 4.])
-
-        with assert_raises(ValueError,
-                           match="axes exceeds dimensionality of input"):
-            _init_nd_shape_and_axes(x, shape=None, axes=[1])
-
-        with assert_raises(ValueError,
-                           match="axes exceeds dimensionality of input"):
-            _init_nd_shape_and_axes(x, shape=None, axes=[-2])
-
-        with assert_raises(ValueError,
-                           match="all axes must be unique"):
-            _init_nd_shape_and_axes(x, shape=None, axes=[0, 0])
-
-        with assert_raises(ValueError, match="shape must be a scalar or "
-                           "iterable of integers"):
-            _init_nd_shape_and_axes(x, shape=[[1, 2], [3, 4]], axes=None)
-
-        with assert_raises(ValueError, match="shape must be a scalar or "
-                           "iterable of integers"):
-            _init_nd_shape_and_axes(x, shape=[1., 2., 3., 4.], axes=None)
-
-        with assert_raises(ValueError,
-                           match="when given, axes and shape arguments"
-                           " have to be of the same length"):
-            _init_nd_shape_and_axes(xp.zeros([1, 1, 1, 1]),
-                                    shape=[1, 2, 3], axes=[1])
-
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[0\]\) specified"):
-            _init_nd_shape_and_axes(x, shape=[0], axes=None)
-
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[-2\]\) specified"):
-            _init_nd_shape_and_axes(x, shape=-2, axes=None)
-
-
-class TestFFTShift:
-
-    def test_definition(self, xp):
-        x = xp.asarray([0., 1, 2, 3, 4, -4, -3, -2, -1])
-        y = xp.asarray([-4., -3, -2, -1, 0, 1, 2, 3, 4])
-        xp_assert_close(fft.fftshift(x), y)
-        xp_assert_close(fft.ifftshift(y), x)
-        x = xp.asarray([0., 1, 2, 3, 4, -5, -4, -3, -2, -1])
-        y = xp.asarray([-5., -4, -3, -2, -1, 0, 1, 2, 3, 4])
-        xp_assert_close(fft.fftshift(x), y)
-        xp_assert_close(fft.ifftshift(y), x)
-
-    def test_inverse(self, xp):
-        for n in [1, 4, 9, 100, 211]:
-            x = xp.asarray(np.random.random((n,)))
-            xp_assert_close(fft.ifftshift(fft.fftshift(x)), x)
-
-    def test_axes_keyword(self, xp):
-        freqs = xp.asarray([[0., 1, 2], [3, 4, -4], [-3, -2, -1]])
-        shifted = xp.asarray([[-1., -3, -2], [2, 0, 1], [-4, 3, 4]])
-        xp_assert_close(fft.fftshift(freqs, axes=(0, 1)), shifted)
-        xp_assert_close(fft.fftshift(freqs, axes=0), fft.fftshift(freqs, axes=(0,)))
-        xp_assert_close(fft.ifftshift(shifted, axes=(0, 1)), freqs)
-        xp_assert_close(fft.ifftshift(shifted, axes=0),
-                        fft.ifftshift(shifted, axes=(0,)))
-        xp_assert_close(fft.fftshift(freqs), shifted)
-        xp_assert_close(fft.ifftshift(shifted), freqs)
-    
-    def test_uneven_dims(self, xp):
-        """ Test 2D input, which has uneven dimension sizes """
-        freqs = xp.asarray([
-            [0, 1],
-            [2, 3],
-            [4, 5]
-        ], dtype=xp.float64)
-
-        # shift in dimension 0
-        shift_dim0 = xp.asarray([
-            [4, 5],
-            [0, 1],
-            [2, 3]
-        ], dtype=xp.float64)
-        xp_assert_close(fft.fftshift(freqs, axes=0), shift_dim0)
-        xp_assert_close(fft.ifftshift(shift_dim0, axes=0), freqs)
-        xp_assert_close(fft.fftshift(freqs, axes=(0,)), shift_dim0)
-        xp_assert_close(fft.ifftshift(shift_dim0, axes=[0]), freqs)
-
-        # shift in dimension 1
-        shift_dim1 = xp.asarray([
-            [1, 0],
-            [3, 2],
-            [5, 4]
-        ], dtype=xp.float64)
-        xp_assert_close(fft.fftshift(freqs, axes=1), shift_dim1)
-        xp_assert_close(fft.ifftshift(shift_dim1, axes=1), freqs)
-
-        # shift in both dimensions
-        shift_dim_both = xp.asarray([
-            [5, 4],
-            [1, 0],
-            [3, 2]
-        ], dtype=xp.float64)
-        xp_assert_close(fft.fftshift(freqs, axes=(0, 1)), shift_dim_both)
-        xp_assert_close(fft.ifftshift(shift_dim_both, axes=(0, 1)), freqs)
-        xp_assert_close(fft.fftshift(freqs, axes=[0, 1]), shift_dim_both)
-        xp_assert_close(fft.ifftshift(shift_dim_both, axes=[0, 1]), freqs)
-
-        # axes=None (default) shift in all dimensions
-        xp_assert_close(fft.fftshift(freqs, axes=None), shift_dim_both)
-        xp_assert_close(fft.ifftshift(shift_dim_both, axes=None), freqs)
-        xp_assert_close(fft.fftshift(freqs), shift_dim_both)
-        xp_assert_close(fft.ifftshift(shift_dim_both), freqs)
-
-
-@skip_xp_backends("cupy", "jax.numpy",
-                  reasons=["CuPy has not implemented the `device` param",
-                           "JAX has not implemented the `device` param"])
-class TestFFTFreq:
-
-    def test_definition(self, xp):
-        x = xp.asarray([0, 1, 2, 3, 4, -4, -3, -2, -1], dtype=xp.float64)
-        x2 = xp.asarray([0, 1, 2, 3, 4, -5, -4, -3, -2, -1], dtype=xp.float64)
-
-        # default dtype varies across backends
-
-        y = 9 * fft.fftfreq(9, xp=xp)
-        xp_assert_close(y, x, check_dtype=False, check_namespace=True)
-
-        y = 9 * xp.pi * fft.fftfreq(9, xp.pi, xp=xp)
-        xp_assert_close(y, x, check_dtype=False)
-
-        y = 10 * fft.fftfreq(10, xp=xp)
-        xp_assert_close(y, x2, check_dtype=False)
-
-        y = 10 * xp.pi * fft.fftfreq(10, xp.pi, xp=xp)
-        xp_assert_close(y, x2, check_dtype=False)
-
-    def test_device(self, xp):
-        xp_test = array_namespace(xp.empty(0))
-        devices = get_xp_devices(xp)
-        for d in devices:
-            y = fft.fftfreq(9, xp=xp, device=d)
-            x = xp_test.empty(0, device=d)
-            assert device(y) == device(x)
-
-
-@skip_xp_backends("cupy", "jax.numpy",
-                  reasons=["CuPy has not implemented the `device` param",
-                           "JAX has not implemented the `device` param"])
-class TestRFFTFreq:
-
-    def test_definition(self, xp):
-        x = xp.asarray([0, 1, 2, 3, 4], dtype=xp.float64)
-        x2 = xp.asarray([0, 1, 2, 3, 4, 5], dtype=xp.float64)
-
-        # default dtype varies across backends
-        
-        y = 9 * fft.rfftfreq(9, xp=xp)
-        xp_assert_close(y, x, check_dtype=False, check_namespace=True)
-
-        y = 9 * xp.pi * fft.rfftfreq(9, xp.pi, xp=xp)
-        xp_assert_close(y, x, check_dtype=False)
-
-        y = 10 * fft.rfftfreq(10, xp=xp)
-        xp_assert_close(y, x2, check_dtype=False)
-
-        y = 10 * xp.pi * fft.rfftfreq(10, xp.pi, xp=xp)
-        xp_assert_close(y, x2, check_dtype=False)
-
-    def test_device(self, xp):
-        xp_test = array_namespace(xp.empty(0))
-        devices = get_xp_devices(xp)
-        for d in devices:
-            y = fft.rfftfreq(9, xp=xp, device=d)
-            x = xp_test.empty(0, device=d)
-            assert device(y) == device(x)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_multithreading.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_multithreading.py
deleted file mode 100644
index 1a6b71b830211f8bcbe56e97ff71098be75021c8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_multithreading.py
+++ /dev/null
@@ -1,84 +0,0 @@
-from scipy import fft
-import numpy as np
-import pytest
-from numpy.testing import assert_allclose
-import multiprocessing
-import os
-
-
-@pytest.fixture(scope='module')
-def x():
-    return np.random.randn(512, 128)  # Must be large enough to qualify for mt
-
-
-@pytest.mark.parametrize("func", [
-    fft.fft, fft.ifft, fft.fft2, fft.ifft2, fft.fftn, fft.ifftn,
-    fft.rfft, fft.irfft, fft.rfft2, fft.irfft2, fft.rfftn, fft.irfftn,
-    fft.hfft, fft.ihfft, fft.hfft2, fft.ihfft2, fft.hfftn, fft.ihfftn,
-    fft.dct, fft.idct, fft.dctn, fft.idctn,
-    fft.dst, fft.idst, fft.dstn, fft.idstn,
-])
-@pytest.mark.parametrize("workers", [2, -1])
-def test_threaded_same(x, func, workers):
-    expected = func(x, workers=1)
-    actual = func(x, workers=workers)
-    assert_allclose(actual, expected)
-
-
-def _mt_fft(x):
-    return fft.fft(x, workers=2)
-
-
-@pytest.mark.slow
-def test_mixed_threads_processes(x):
-    # Test that the fft threadpool is safe to use before & after fork
-
-    expect = fft.fft(x, workers=2)
-
-    with multiprocessing.Pool(2) as p:
-        res = p.map(_mt_fft, [x for _ in range(4)])
-
-    for r in res:
-        assert_allclose(r, expect)
-
-    fft.fft(x, workers=2)
-
-
-def test_invalid_workers(x):
-    cpus = os.cpu_count()
-
-    fft.ifft([1], workers=-cpus)
-
-    with pytest.raises(ValueError, match='workers must not be zero'):
-        fft.fft(x, workers=0)
-
-    with pytest.raises(ValueError, match='workers value out of range'):
-        fft.ifft(x, workers=-cpus-1)
-
-
-def test_set_get_workers():
-    cpus = os.cpu_count()
-    assert fft.get_workers() == 1
-    with fft.set_workers(4):
-        assert fft.get_workers() == 4
-
-        with fft.set_workers(-1):
-            assert fft.get_workers() == cpus
-
-        assert fft.get_workers() == 4
-
-    assert fft.get_workers() == 1
-
-    with fft.set_workers(-cpus):
-        assert fft.get_workers() == 1
-
-
-def test_set_workers_invalid():
-
-    with pytest.raises(ValueError, match='workers must not be zero'):
-        with fft.set_workers(0):
-            pass
-
-    with pytest.raises(ValueError, match='workers value out of range'):
-        with fft.set_workers(-os.cpu_count()-1):
-            pass
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_real_transforms.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_real_transforms.py
deleted file mode 100644
index 26e4589bdb6dc23fb62765aa3cc7e52e06684268..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fft/tests/test_real_transforms.py
+++ /dev/null
@@ -1,249 +0,0 @@
-import numpy as np
-from numpy.testing import assert_allclose, assert_array_equal
-import pytest
-import math
-
-from scipy.fft import dct, idct, dctn, idctn, dst, idst, dstn, idstn
-import scipy.fft as fft
-from scipy import fftpack
-from scipy.conftest import array_api_compatible
-from scipy._lib._array_api import copy, xp_assert_close
-
-pytestmark = [array_api_compatible, pytest.mark.usefixtures("skip_xp_backends")]
-skip_xp_backends = pytest.mark.skip_xp_backends
-
-SQRT_2 = math.sqrt(2)
-
-# scipy.fft wraps the fftpack versions but with normalized inverse transforms.
-# So, the forward transforms and definitions are already thoroughly tested in
-# fftpack/test_real_transforms.py
-
-
-@skip_xp_backends(cpu_only=True)
-@pytest.mark.parametrize("forward, backward", [(dct, idct), (dst, idst)])
-@pytest.mark.parametrize("type", [1, 2, 3, 4])
-@pytest.mark.parametrize("n", [2, 3, 4, 5, 10, 16])
-@pytest.mark.parametrize("axis", [0, 1])
-@pytest.mark.parametrize("norm", [None, 'backward', 'ortho', 'forward'])
-@pytest.mark.parametrize("orthogonalize", [False, True])
-def test_identity_1d(forward, backward, type, n, axis, norm, orthogonalize, xp):
-    # Test the identity f^-1(f(x)) == x
-    x = xp.asarray(np.random.rand(n, n))
-
-    y = forward(x, type, axis=axis, norm=norm, orthogonalize=orthogonalize)
-    z = backward(y, type, axis=axis, norm=norm, orthogonalize=orthogonalize)
-    xp_assert_close(z, x)
-
-    pad = [(0, 0)] * 2
-    pad[axis] = (0, 4)
-
-    y2 = xp.asarray(np.pad(np.asarray(y), pad, mode='edge'))
-    z2 = backward(y2, type, n, axis, norm, orthogonalize=orthogonalize)
-    xp_assert_close(z2, x)
-
-
-@skip_xp_backends(np_only=True,
-                   reasons=['`overwrite_x` only supported for NumPy backend.'])
-@pytest.mark.parametrize("forward, backward", [(dct, idct), (dst, idst)])
-@pytest.mark.parametrize("type", [1, 2, 3, 4])
-@pytest.mark.parametrize("dtype", [np.float16, np.float32, np.float64,
-                                   np.complex64, np.complex128])
-@pytest.mark.parametrize("axis", [0, 1])
-@pytest.mark.parametrize("norm", [None, 'backward', 'ortho', 'forward'])
-@pytest.mark.parametrize("overwrite_x", [True, False])
-def test_identity_1d_overwrite(forward, backward, type, dtype, axis, norm,
-                               overwrite_x):
-    # Test the identity f^-1(f(x)) == x
-    x = np.random.rand(7, 8).astype(dtype)
-    x_orig = x.copy()
-
-    y = forward(x, type, axis=axis, norm=norm, overwrite_x=overwrite_x)
-    y_orig = y.copy()
-    z = backward(y, type, axis=axis, norm=norm, overwrite_x=overwrite_x)
-    if not overwrite_x:
-        assert_allclose(z, x, rtol=1e-6, atol=1e-6)
-        assert_array_equal(x, x_orig)
-        assert_array_equal(y, y_orig)
-    else:
-        assert_allclose(z, x_orig, rtol=1e-6, atol=1e-6)
-
-
-@skip_xp_backends(cpu_only=True)
-@pytest.mark.parametrize("forward, backward", [(dctn, idctn), (dstn, idstn)])
-@pytest.mark.parametrize("type", [1, 2, 3, 4])
-@pytest.mark.parametrize("shape, axes",
-                         [
-                             ((4, 4), 0),
-                             ((4, 4), 1),
-                             ((4, 4), None),
-                             ((4, 4), (0, 1)),
-                             ((10, 12), None),
-                             ((10, 12), (0, 1)),
-                             ((4, 5, 6), None),
-                             ((4, 5, 6), 1),
-                             ((4, 5, 6), (0, 2)),
-                         ])
-@pytest.mark.parametrize("norm", [None, 'backward', 'ortho', 'forward'])
-@pytest.mark.parametrize("orthogonalize", [False, True])
-def test_identity_nd(forward, backward, type, shape, axes, norm,
-                     orthogonalize, xp):
-    # Test the identity f^-1(f(x)) == x
-
-    x = xp.asarray(np.random.random(shape))
-
-    if axes is not None:
-        shape = np.take(shape, axes)
-
-    y = forward(x, type, axes=axes, norm=norm, orthogonalize=orthogonalize)
-    z = backward(y, type, axes=axes, norm=norm, orthogonalize=orthogonalize)
-    xp_assert_close(z, x)
-
-    if axes is None:
-        pad = [(0, 4)] * x.ndim
-    elif isinstance(axes, int):
-        pad = [(0, 0)] * x.ndim
-        pad[axes] = (0, 4)
-    else:
-        pad = [(0, 0)] * x.ndim
-
-        for a in axes:
-            pad[a] = (0, 4)
-
-    # TODO write an array-agnostic pad
-    y2 = xp.asarray(np.pad(np.asarray(y), pad, mode='edge'))
-    z2 = backward(y2, type, shape, axes, norm, orthogonalize=orthogonalize)
-    xp_assert_close(z2, x)
-
-
-@skip_xp_backends(np_only=True,
-                   reasons=['`overwrite_x` only supported for NumPy backend.'])
-@pytest.mark.parametrize("forward, backward", [(dctn, idctn), (dstn, idstn)])
-@pytest.mark.parametrize("type", [1, 2, 3, 4])
-@pytest.mark.parametrize("shape, axes",
-                         [
-                             ((4, 5), 0),
-                             ((4, 5), 1),
-                             ((4, 5), None),
-                         ])
-@pytest.mark.parametrize("dtype", [np.float16, np.float32, np.float64,
-                                   np.complex64, np.complex128])
-@pytest.mark.parametrize("norm", [None, 'backward', 'ortho', 'forward'])
-@pytest.mark.parametrize("overwrite_x", [False, True])
-def test_identity_nd_overwrite(forward, backward, type, shape, axes, dtype,
-                               norm, overwrite_x):
-    # Test the identity f^-1(f(x)) == x
-
-    x = np.random.random(shape).astype(dtype)
-    x_orig = x.copy()
-
-    if axes is not None:
-        shape = np.take(shape, axes)
-
-    y = forward(x, type, axes=axes, norm=norm)
-    y_orig = y.copy()
-    z = backward(y, type, axes=axes, norm=norm)
-    if overwrite_x:
-        assert_allclose(z, x_orig, rtol=1e-6, atol=1e-6)
-    else:
-        assert_allclose(z, x, rtol=1e-6, atol=1e-6)
-        assert_array_equal(x, x_orig)
-        assert_array_equal(y, y_orig)
-
-
-@skip_xp_backends(cpu_only=True)
-@pytest.mark.parametrize("func", ['dct', 'dst', 'dctn', 'dstn'])
-@pytest.mark.parametrize("type", [1, 2, 3, 4])
-@pytest.mark.parametrize("norm", [None, 'backward', 'ortho', 'forward'])
-def test_fftpack_equivalience(func, type, norm, xp):
-    x = np.random.rand(8, 16)
-    fftpack_res = xp.asarray(getattr(fftpack, func)(x, type, norm=norm))
-    x = xp.asarray(x)
-    fft_res = getattr(fft, func)(x, type, norm=norm)
-
-    xp_assert_close(fft_res, fftpack_res)
-
-
-@skip_xp_backends(cpu_only=True)
-@pytest.mark.parametrize("func", [dct, dst, dctn, dstn])
-@pytest.mark.parametrize("type", [1, 2, 3, 4])
-def test_orthogonalize_default(func, type, xp):
-    # Test orthogonalize is the default when norm="ortho", but not otherwise
-    x = xp.asarray(np.random.rand(100))
-
-    for norm, ortho in [
-            ("forward", False),
-            ("backward", False),
-            ("ortho", True),
-    ]:
-        a = func(x, type=type, norm=norm, orthogonalize=ortho)
-        b = func(x, type=type, norm=norm)
-        xp_assert_close(a, b)
-
-
-@skip_xp_backends(cpu_only=True)
-@pytest.mark.parametrize("norm", ["backward", "ortho", "forward"])
-@pytest.mark.parametrize("func, type", [
-    (dct, 4), (dst, 1), (dst, 4)])
-def test_orthogonalize_noop(func, type, norm, xp):
-    # Transforms where orthogonalize is a no-op
-    x = xp.asarray(np.random.rand(100))
-    y1 = func(x, type=type, norm=norm, orthogonalize=True)
-    y2 = func(x, type=type, norm=norm, orthogonalize=False)
-    xp_assert_close(y1, y2)
-
-
-@skip_xp_backends('jax.numpy',
-                  reasons=['jax arrays do not support item assignment'],
-                  cpu_only=True)
-@pytest.mark.parametrize("norm", ["backward", "ortho", "forward"])
-def test_orthogonalize_dct1(norm, xp):
-    x = xp.asarray(np.random.rand(100))
-
-    x2 = copy(x, xp=xp)
-    x2[0] *= SQRT_2
-    x2[-1] *= SQRT_2
-
-    y1 = dct(x, type=1, norm=norm, orthogonalize=True)
-    y2 = dct(x2, type=1, norm=norm, orthogonalize=False)
-
-    y2[0] /= SQRT_2
-    y2[-1] /= SQRT_2
-    xp_assert_close(y1, y2)
-
-
-@skip_xp_backends('jax.numpy',
-                  reasons=['jax arrays do not support item assignment'],
-                  cpu_only=True)
-@pytest.mark.parametrize("norm", ["backward", "ortho", "forward"])
-@pytest.mark.parametrize("func", [dct, dst])
-def test_orthogonalize_dcst2(func, norm, xp):
-    x = xp.asarray(np.random.rand(100))
-    y1 = func(x, type=2, norm=norm, orthogonalize=True)
-    y2 = func(x, type=2, norm=norm, orthogonalize=False)
-
-    y2[0 if func == dct else -1] /= SQRT_2
-    xp_assert_close(y1, y2)
-
-
-@skip_xp_backends('jax.numpy',
-                  reasons=['jax arrays do not support item assignment'],
-                  cpu_only=True)
-@pytest.mark.parametrize("norm", ["backward", "ortho", "forward"])
-@pytest.mark.parametrize("func", [dct, dst])
-def test_orthogonalize_dcst3(func, norm, xp):
-    x = xp.asarray(np.random.rand(100))
-    x2 = copy(x, xp=xp)
-    x2[0 if func == dct else -1] *= SQRT_2
-
-    y1 = func(x, type=3, norm=norm, orthogonalize=True)
-    y2 = func(x2, type=3, norm=norm, orthogonalize=False)
-    xp_assert_close(y1, y2)
-
-@skip_xp_backends(np_only=True,
-                  reasons=['array-likes only supported for NumPy backend'])
-@pytest.mark.parametrize("func", [dct, idct, dctn, idctn, dst, idst, dstn, idstn])
-def test_array_like(xp, func):
-    x = [[[1.0, 1.0], [1.0, 1.0]],
-         [[1.0, 1.0], [1.0, 1.0]],
-         [[1.0, 1.0], [1.0, 1.0]]]
-    xp_assert_close(func(x), func(xp.asarray(x)))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__init__.py
deleted file mode 100644
index 10f4b39e48e2d6c0b042582ca65f572bde6ba575..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__init__.py
+++ /dev/null
@@ -1,103 +0,0 @@
-"""
-=========================================================
-Legacy discrete Fourier transforms (:mod:`scipy.fftpack`)
-=========================================================
-
-.. legacy::
-
-   New code should use :mod:`scipy.fft`.
-
-Fast Fourier Transforms (FFTs)
-==============================
-
-.. autosummary::
-   :toctree: generated/
-
-   fft - Fast (discrete) Fourier Transform (FFT)
-   ifft - Inverse FFT
-   fft2 - 2-D FFT
-   ifft2 - 2-D inverse FFT
-   fftn - N-D FFT
-   ifftn - N-D inverse FFT
-   rfft - FFT of strictly real-valued sequence
-   irfft - Inverse of rfft
-   dct - Discrete cosine transform
-   idct - Inverse discrete cosine transform
-   dctn - N-D Discrete cosine transform
-   idctn - N-D Inverse discrete cosine transform
-   dst - Discrete sine transform
-   idst - Inverse discrete sine transform
-   dstn - N-D Discrete sine transform
-   idstn - N-D Inverse discrete sine transform
-
-Differential and pseudo-differential operators
-==============================================
-
-.. autosummary::
-   :toctree: generated/
-
-   diff - Differentiation and integration of periodic sequences
-   tilbert - Tilbert transform:         cs_diff(x,h,h)
-   itilbert - Inverse Tilbert transform: sc_diff(x,h,h)
-   hilbert - Hilbert transform:         cs_diff(x,inf,inf)
-   ihilbert - Inverse Hilbert transform: sc_diff(x,inf,inf)
-   cs_diff - cosh/sinh pseudo-derivative of periodic sequences
-   sc_diff - sinh/cosh pseudo-derivative of periodic sequences
-   ss_diff - sinh/sinh pseudo-derivative of periodic sequences
-   cc_diff - cosh/cosh pseudo-derivative of periodic sequences
-   shift - Shift periodic sequences
-
-Helper functions
-================
-
-.. autosummary::
-   :toctree: generated/
-
-   fftshift - Shift the zero-frequency component to the center of the spectrum
-   ifftshift - The inverse of `fftshift`
-   fftfreq - Return the Discrete Fourier Transform sample frequencies
-   rfftfreq - DFT sample frequencies (for usage with rfft, irfft)
-   next_fast_len - Find the optimal length to zero-pad an FFT for speed
-
-Note that ``fftshift``, ``ifftshift`` and ``fftfreq`` are numpy functions
-exposed by ``fftpack``; importing them from ``numpy`` should be preferred.
-
-Convolutions (:mod:`scipy.fftpack.convolve`)
-============================================
-
-.. module:: scipy.fftpack.convolve
-
-.. autosummary::
-   :toctree: generated/
-
-   convolve
-   convolve_z
-   init_convolution_kernel
-   destroy_convolve_cache
-
-"""
-
-
-__all__ = ['fft','ifft','fftn','ifftn','rfft','irfft',
-           'fft2','ifft2',
-           'diff',
-           'tilbert','itilbert','hilbert','ihilbert',
-           'sc_diff','cs_diff','cc_diff','ss_diff',
-           'shift',
-           'fftfreq', 'rfftfreq',
-           'fftshift', 'ifftshift',
-           'next_fast_len',
-           'dct', 'idct', 'dst', 'idst', 'dctn', 'idctn', 'dstn', 'idstn'
-           ]
-
-from ._basic import *
-from ._pseudo_diffs import *
-from ._helper import *
-from ._realtransforms import *
-
-# Deprecated namespaces, to be removed in v2.0.0
-from . import basic, helper, pseudo_diffs, realtransforms
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index e4570fc01084d932821b0a5d489202cd5f1e169d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_basic.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_basic.cpython-310.pyc
deleted file mode 100644
index d500fb67baf1ddaeb330c8e06a294f11e8db4bec..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_basic.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_helper.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_helper.cpython-310.pyc
deleted file mode 100644
index e65344132d9f9c656f97175fe5b2c3f99adee995..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_helper.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_pseudo_diffs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_pseudo_diffs.cpython-310.pyc
deleted file mode 100644
index 5e13dbf90eaf85bf85cefe54abe8bc18a3f56b61..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_pseudo_diffs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_realtransforms.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_realtransforms.cpython-310.pyc
deleted file mode 100644
index 629751b166c6a781d6022ba42c10b3ab530b6399..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/_realtransforms.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/basic.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/basic.cpython-310.pyc
deleted file mode 100644
index d4cf76c0722888ea48ad7ed1bc29a24a65bcc760..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/basic.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/helper.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/helper.cpython-310.pyc
deleted file mode 100644
index 70b5e736365ea9ada2b28865d65f930068af265f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/helper.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/pseudo_diffs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/pseudo_diffs.cpython-310.pyc
deleted file mode 100644
index 580c58470b051f540cbb8982ebb66b223070c0ce..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/pseudo_diffs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/realtransforms.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/realtransforms.cpython-310.pyc
deleted file mode 100644
index 2c9164dcf5ddccec471dad16d668c9e47694b5f0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/__pycache__/realtransforms.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_basic.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_basic.py
deleted file mode 100644
index 59c85ae4b364464a66489ef221f7f7ac45624694..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_basic.py
+++ /dev/null
@@ -1,428 +0,0 @@
-"""
-Discrete Fourier Transforms - _basic.py
-"""
-# Created by Pearu Peterson, August,September 2002
-__all__ = ['fft','ifft','fftn','ifftn','rfft','irfft',
-           'fft2','ifft2']
-
-from scipy.fft import _pocketfft
-from ._helper import _good_shape
-
-
-def fft(x, n=None, axis=-1, overwrite_x=False):
-    """
-    Return discrete Fourier transform of real or complex sequence.
-
-    The returned complex array contains ``y(0), y(1),..., y(n-1)``, where
-
-    ``y(j) = (x * exp(-2*pi*sqrt(-1)*j*np.arange(n)/n)).sum()``.
-
-    Parameters
-    ----------
-    x : array_like
-        Array to Fourier transform.
-    n : int, optional
-        Length of the Fourier transform. If ``n < x.shape[axis]``, `x` is
-        truncated. If ``n > x.shape[axis]``, `x` is zero-padded. The
-        default results in ``n = x.shape[axis]``.
-    axis : int, optional
-        Axis along which the fft's are computed; the default is over the
-        last axis (i.e., ``axis=-1``).
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    z : complex ndarray
-        with the elements::
-
-            [y(0),y(1),..,y(n/2),y(1-n/2),...,y(-1)]        if n is even
-            [y(0),y(1),..,y((n-1)/2),y(-(n-1)/2),...,y(-1)]  if n is odd
-
-        where::
-
-            y(j) = sum[k=0..n-1] x[k] * exp(-sqrt(-1)*j*k* 2*pi/n), j = 0..n-1
-
-    See Also
-    --------
-    ifft : Inverse FFT
-    rfft : FFT of a real sequence
-
-    Notes
-    -----
-    The packing of the result is "standard": If ``A = fft(a, n)``, then
-    ``A[0]`` contains the zero-frequency term, ``A[1:n/2]`` contains the
-    positive-frequency terms, and ``A[n/2:]`` contains the negative-frequency
-    terms, in order of decreasingly negative frequency. So ,for an 8-point
-    transform, the frequencies of the result are [0, 1, 2, 3, -4, -3, -2, -1].
-    To rearrange the fft output so that the zero-frequency component is
-    centered, like [-4, -3, -2, -1,  0,  1,  2,  3], use `fftshift`.
-
-    Both single and double precision routines are implemented. Half precision
-    inputs will be converted to single precision. Non-floating-point inputs
-    will be converted to double precision. Long-double precision inputs are
-    not supported.
-
-    This function is most efficient when `n` is a power of two, and least
-    efficient when `n` is prime.
-
-    Note that if ``x`` is real-valued, then ``A[j] == A[n-j].conjugate()``.
-    If ``x`` is real-valued and ``n`` is even, then ``A[n/2]`` is real.
-
-    If the data type of `x` is real, a "real FFT" algorithm is automatically
-    used, which roughly halves the computation time. To increase efficiency
-    a little further, use `rfft`, which does the same calculation, but only
-    outputs half of the symmetrical spectrum. If the data is both real and
-    symmetrical, the `dct` can again double the efficiency by generating
-    half of the spectrum from half of the signal.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fftpack import fft, ifft
-    >>> x = np.arange(5)
-    >>> np.allclose(fft(ifft(x)), x, atol=1e-15)  # within numerical accuracy.
-    True
-
-    """
-    return _pocketfft.fft(x, n, axis, None, overwrite_x)
-
-
-def ifft(x, n=None, axis=-1, overwrite_x=False):
-    """
-    Return discrete inverse Fourier transform of real or complex sequence.
-
-    The returned complex array contains ``y(0), y(1),..., y(n-1)``, where
-
-    ``y(j) = (x * exp(2*pi*sqrt(-1)*j*np.arange(n)/n)).mean()``.
-
-    Parameters
-    ----------
-    x : array_like
-        Transformed data to invert.
-    n : int, optional
-        Length of the inverse Fourier transform.  If ``n < x.shape[axis]``,
-        `x` is truncated. If ``n > x.shape[axis]``, `x` is zero-padded.
-        The default results in ``n = x.shape[axis]``.
-    axis : int, optional
-        Axis along which the ifft's are computed; the default is over the
-        last axis (i.e., ``axis=-1``).
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    ifft : ndarray of floats
-        The inverse discrete Fourier transform.
-
-    See Also
-    --------
-    fft : Forward FFT
-
-    Notes
-    -----
-    Both single and double precision routines are implemented. Half precision
-    inputs will be converted to single precision. Non-floating-point inputs
-    will be converted to double precision. Long-double precision inputs are
-    not supported.
-
-    This function is most efficient when `n` is a power of two, and least
-    efficient when `n` is prime.
-
-    If the data type of `x` is real, a "real IFFT" algorithm is automatically
-    used, which roughly halves the computation time.
-
-    Examples
-    --------
-    >>> from scipy.fftpack import fft, ifft
-    >>> import numpy as np
-    >>> x = np.arange(5)
-    >>> np.allclose(ifft(fft(x)), x, atol=1e-15)  # within numerical accuracy.
-    True
-
-    """
-    return _pocketfft.ifft(x, n, axis, None, overwrite_x)
-
-
-def rfft(x, n=None, axis=-1, overwrite_x=False):
-    """
-    Discrete Fourier transform of a real sequence.
-
-    Parameters
-    ----------
-    x : array_like, real-valued
-        The data to transform.
-    n : int, optional
-        Defines the length of the Fourier transform. If `n` is not specified
-        (the default) then ``n = x.shape[axis]``. If ``n < x.shape[axis]``,
-        `x` is truncated, if ``n > x.shape[axis]``, `x` is zero-padded.
-    axis : int, optional
-        The axis along which the transform is applied. The default is the
-        last axis.
-    overwrite_x : bool, optional
-        If set to true, the contents of `x` can be overwritten. Default is
-        False.
-
-    Returns
-    -------
-    z : real ndarray
-        The returned real array contains::
-
-          [y(0),Re(y(1)),Im(y(1)),...,Re(y(n/2))]              if n is even
-          [y(0),Re(y(1)),Im(y(1)),...,Re(y(n/2)),Im(y(n/2))]   if n is odd
-
-        where::
-
-          y(j) = sum[k=0..n-1] x[k] * exp(-sqrt(-1)*j*k*2*pi/n)
-          j = 0..n-1
-
-    See Also
-    --------
-    fft, irfft, scipy.fft.rfft
-
-    Notes
-    -----
-    Within numerical accuracy, ``y == rfft(irfft(y))``.
-
-    Both single and double precision routines are implemented. Half precision
-    inputs will be converted to single precision. Non-floating-point inputs
-    will be converted to double precision. Long-double precision inputs are
-    not supported.
-
-    To get an output with a complex datatype, consider using the newer
-    function `scipy.fft.rfft`.
-
-    Examples
-    --------
-    >>> from scipy.fftpack import fft, rfft
-    >>> a = [9, -9, 1, 3]
-    >>> fft(a)
-    array([  4. +0.j,   8.+12.j,  16. +0.j,   8.-12.j])
-    >>> rfft(a)
-    array([  4.,   8.,  12.,  16.])
-
-    """
-    return _pocketfft.rfft_fftpack(x, n, axis, None, overwrite_x)
-
-
-def irfft(x, n=None, axis=-1, overwrite_x=False):
-    """
-    Return inverse discrete Fourier transform of real sequence x.
-
-    The contents of `x` are interpreted as the output of the `rfft`
-    function.
-
-    Parameters
-    ----------
-    x : array_like
-        Transformed data to invert.
-    n : int, optional
-        Length of the inverse Fourier transform.
-        If n < x.shape[axis], x is truncated.
-        If n > x.shape[axis], x is zero-padded.
-        The default results in n = x.shape[axis].
-    axis : int, optional
-        Axis along which the ifft's are computed; the default is over
-        the last axis (i.e., axis=-1).
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    irfft : ndarray of floats
-        The inverse discrete Fourier transform.
-
-    See Also
-    --------
-    rfft, ifft, scipy.fft.irfft
-
-    Notes
-    -----
-    The returned real array contains::
-
-        [y(0),y(1),...,y(n-1)]
-
-    where for n is even::
-
-        y(j) = 1/n (sum[k=1..n/2-1] (x[2*k-1]+sqrt(-1)*x[2*k])
-                                     * exp(sqrt(-1)*j*k* 2*pi/n)
-                    + c.c. + x[0] + (-1)**(j) x[n-1])
-
-    and for n is odd::
-
-        y(j) = 1/n (sum[k=1..(n-1)/2] (x[2*k-1]+sqrt(-1)*x[2*k])
-                                     * exp(sqrt(-1)*j*k* 2*pi/n)
-                    + c.c. + x[0])
-
-    c.c. denotes complex conjugate of preceding expression.
-
-    For details on input parameters, see `rfft`.
-
-    To process (conjugate-symmetric) frequency-domain data with a complex
-    datatype, consider using the newer function `scipy.fft.irfft`.
-
-    Examples
-    --------
-    >>> from scipy.fftpack import rfft, irfft
-    >>> a = [1.0, 2.0, 3.0, 4.0, 5.0]
-    >>> irfft(a)
-    array([ 2.6       , -3.16405192,  1.24398433, -1.14955713,  1.46962473])
-    >>> irfft(rfft(a))
-    array([1., 2., 3., 4., 5.])
-
-    """
-    return _pocketfft.irfft_fftpack(x, n, axis, None, overwrite_x)
-
-
-def fftn(x, shape=None, axes=None, overwrite_x=False):
-    """
-    Return multidimensional discrete Fourier transform.
-
-    The returned array contains::
-
-      y[j_1,..,j_d] = sum[k_1=0..n_1-1, ..., k_d=0..n_d-1]
-         x[k_1,..,k_d] * prod[i=1..d] exp(-sqrt(-1)*2*pi/n_i * j_i * k_i)
-
-    where d = len(x.shape) and n = x.shape.
-
-    Parameters
-    ----------
-    x : array_like
-        The (N-D) array to transform.
-    shape : int or array_like of ints or None, optional
-        The shape of the result. If both `shape` and `axes` (see below) are
-        None, `shape` is ``x.shape``; if `shape` is None but `axes` is
-        not None, then `shape` is ``numpy.take(x.shape, axes, axis=0)``.
-        If ``shape[i] > x.shape[i]``, the ith dimension is padded with zeros.
-        If ``shape[i] < x.shape[i]``, the ith dimension is truncated to
-        length ``shape[i]``.
-        If any element of `shape` is -1, the size of the corresponding
-        dimension of `x` is used.
-    axes : int or array_like of ints or None, optional
-        The axes of `x` (`y` if `shape` is not None) along which the
-        transform is applied.
-        The default is over all axes.
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed. Default is False.
-
-    Returns
-    -------
-    y : complex-valued N-D NumPy array
-        The (N-D) DFT of the input array.
-
-    See Also
-    --------
-    ifftn
-
-    Notes
-    -----
-    If ``x`` is real-valued, then
-    ``y[..., j_i, ...] == y[..., n_i-j_i, ...].conjugate()``.
-
-    Both single and double precision routines are implemented. Half precision
-    inputs will be converted to single precision. Non-floating-point inputs
-    will be converted to double precision. Long-double precision inputs are
-    not supported.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fftpack import fftn, ifftn
-    >>> y = (-np.arange(16), 8 - np.arange(16), np.arange(16))
-    >>> np.allclose(y, fftn(ifftn(y)))
-    True
-
-    """
-    shape = _good_shape(x, shape, axes)
-    return _pocketfft.fftn(x, shape, axes, None, overwrite_x)
-
-
-def ifftn(x, shape=None, axes=None, overwrite_x=False):
-    """
-    Return inverse multidimensional discrete Fourier transform.
-
-    The sequence can be of an arbitrary type.
-
-    The returned array contains::
-
-      y[j_1,..,j_d] = 1/p * sum[k_1=0..n_1-1, ..., k_d=0..n_d-1]
-         x[k_1,..,k_d] * prod[i=1..d] exp(sqrt(-1)*2*pi/n_i * j_i * k_i)
-
-    where ``d = len(x.shape)``, ``n = x.shape``, and ``p = prod[i=1..d] n_i``.
-
-    For description of parameters see `fftn`.
-
-    See Also
-    --------
-    fftn : for detailed information.
-
-    Examples
-    --------
-    >>> from scipy.fftpack import fftn, ifftn
-    >>> import numpy as np
-    >>> y = (-np.arange(16), 8 - np.arange(16), np.arange(16))
-    >>> np.allclose(y, ifftn(fftn(y)))
-    True
-
-    """
-    shape = _good_shape(x, shape, axes)
-    return _pocketfft.ifftn(x, shape, axes, None, overwrite_x)
-
-
-def fft2(x, shape=None, axes=(-2,-1), overwrite_x=False):
-    """
-    2-D discrete Fourier transform.
-
-    Return the 2-D discrete Fourier transform of the 2-D argument
-    `x`.
-
-    See Also
-    --------
-    fftn : for detailed information.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fftpack import fft2, ifft2
-    >>> y = np.mgrid[:5, :5][0]
-    >>> y
-    array([[0, 0, 0, 0, 0],
-           [1, 1, 1, 1, 1],
-           [2, 2, 2, 2, 2],
-           [3, 3, 3, 3, 3],
-           [4, 4, 4, 4, 4]])
-    >>> np.allclose(y, ifft2(fft2(y)))
-    True
-    """
-    return fftn(x,shape,axes,overwrite_x)
-
-
-def ifft2(x, shape=None, axes=(-2,-1), overwrite_x=False):
-    """
-    2-D discrete inverse Fourier transform of real or complex sequence.
-
-    Return inverse 2-D discrete Fourier transform of
-    arbitrary type sequence x.
-
-    See `ifft` for more information.
-
-    See Also
-    --------
-    fft2, ifft
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fftpack import fft2, ifft2
-    >>> y = np.mgrid[:5, :5][0]
-    >>> y
-    array([[0, 0, 0, 0, 0],
-           [1, 1, 1, 1, 1],
-           [2, 2, 2, 2, 2],
-           [3, 3, 3, 3, 3],
-           [4, 4, 4, 4, 4]])
-    >>> np.allclose(y, fft2(ifft2(y)))
-    True
-
-    """
-    return ifftn(x,shape,axes,overwrite_x)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_helper.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_helper.py
deleted file mode 100644
index ee0dd7b0f8d6dce5fe717fe585f5af82a7d0c651..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_helper.py
+++ /dev/null
@@ -1,115 +0,0 @@
-import operator
-
-import numpy as np
-from numpy.fft import fftshift, ifftshift, fftfreq
-
-import scipy.fft._pocketfft.helper as _helper
-
-__all__ = ['fftshift', 'ifftshift', 'fftfreq', 'rfftfreq', 'next_fast_len']
-
-
-def rfftfreq(n, d=1.0):
-    """DFT sample frequencies (for usage with rfft, irfft).
-
-    The returned float array contains the frequency bins in
-    cycles/unit (with zero at the start) given a window length `n` and a
-    sample spacing `d`::
-
-      f = [0,1,1,2,2,...,n/2-1,n/2-1,n/2]/(d*n)   if n is even
-      f = [0,1,1,2,2,...,n/2-1,n/2-1,n/2,n/2]/(d*n)   if n is odd
-
-    Parameters
-    ----------
-    n : int
-        Window length.
-    d : scalar, optional
-        Sample spacing. Default is 1.
-
-    Returns
-    -------
-    out : ndarray
-        The array of length `n`, containing the sample frequencies.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import fftpack
-    >>> sig = np.array([-2, 8, 6, 4, 1, 0, 3, 5], dtype=float)
-    >>> sig_fft = fftpack.rfft(sig)
-    >>> n = sig_fft.size
-    >>> timestep = 0.1
-    >>> freq = fftpack.rfftfreq(n, d=timestep)
-    >>> freq
-    array([ 0.  ,  1.25,  1.25,  2.5 ,  2.5 ,  3.75,  3.75,  5.  ])
-
-    """
-    n = operator.index(n)
-    if n < 0:
-        raise ValueError("n = %s is not valid. "
-                         "n must be a nonnegative integer." % n)
-
-    return (np.arange(1, n + 1, dtype=int) // 2) / float(n * d)
-
-
-def next_fast_len(target):
-    """
-    Find the next fast size of input data to `fft`, for zero-padding, etc.
-
-    SciPy's FFTPACK has efficient functions for radix {2, 3, 4, 5}, so this
-    returns the next composite of the prime factors 2, 3, and 5 which is
-    greater than or equal to `target`. (These are also known as 5-smooth
-    numbers, regular numbers, or Hamming numbers.)
-
-    Parameters
-    ----------
-    target : int
-        Length to start searching from. Must be a positive integer.
-
-    Returns
-    -------
-    out : int
-        The first 5-smooth number greater than or equal to `target`.
-
-    Notes
-    -----
-    .. versionadded:: 0.18.0
-
-    Examples
-    --------
-    On a particular machine, an FFT of prime length takes 133 ms:
-
-    >>> from scipy import fftpack
-    >>> import numpy as np
-    >>> rng = np.random.default_rng()
-    >>> min_len = 10007  # prime length is worst case for speed
-    >>> a = rng.standard_normal(min_len)
-    >>> b = fftpack.fft(a)
-
-    Zero-padding to the next 5-smooth length reduces computation time to
-    211 us, a speedup of 630 times:
-
-    >>> fftpack.next_fast_len(min_len)
-    10125
-    >>> b = fftpack.fft(a, 10125)
-
-    Rounding up to the next power of 2 is not optimal, taking 367 us to
-    compute, 1.7 times as long as the 5-smooth size:
-
-    >>> b = fftpack.fft(a, 16384)
-
-    """
-    # Real transforms use regular sizes so this is backwards compatible
-    return _helper.good_size(target, True)
-
-
-def _good_shape(x, shape, axes):
-    """Ensure that shape argument is valid for scipy.fftpack
-
-    scipy.fftpack does not support len(shape) < x.ndim when axes is not given.
-    """
-    if shape is not None and axes is None:
-        shape = _helper._iterable_of_int(shape, 'shape')
-        if len(shape) != np.ndim(x):
-            raise ValueError("when given, axes and shape arguments"
-                             " have to be of the same length")
-    return shape
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_pseudo_diffs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_pseudo_diffs.py
deleted file mode 100644
index b8ef40efc07484b3bf594ae3ff904cd85f498fc9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_pseudo_diffs.py
+++ /dev/null
@@ -1,551 +0,0 @@
-"""
-Differential and pseudo-differential operators.
-"""
-# Created by Pearu Peterson, September 2002
-
-__all__ = ['diff',
-           'tilbert','itilbert','hilbert','ihilbert',
-           'cs_diff','cc_diff','sc_diff','ss_diff',
-           'shift']
-
-from numpy import pi, asarray, sin, cos, sinh, cosh, tanh, iscomplexobj
-from . import convolve
-
-from scipy.fft._pocketfft.helper import _datacopied
-
-
-_cache = {}
-
-
-def diff(x,order=1,period=None, _cache=_cache):
-    """
-    Return kth derivative (or integral) of a periodic sequence x.
-
-    If x_j and y_j are Fourier coefficients of periodic functions x
-    and y, respectively, then::
-
-      y_j = pow(sqrt(-1)*j*2*pi/period, order) * x_j
-      y_0 = 0 if order is not 0.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array.
-    order : int, optional
-        The order of differentiation. Default order is 1. If order is
-        negative, then integration is carried out under the assumption
-        that ``x_0 == 0``.
-    period : float, optional
-        The assumed period of the sequence. Default is ``2*pi``.
-
-    Notes
-    -----
-    If ``sum(x, axis=0) = 0`` then ``diff(diff(x, k), -k) == x`` (within
-    numerical accuracy).
-
-    For odd order and even ``len(x)``, the Nyquist mode is taken zero.
-
-    """
-    tmp = asarray(x)
-    if order == 0:
-        return tmp
-    if iscomplexobj(tmp):
-        return diff(tmp.real,order,period)+1j*diff(tmp.imag,order,period)
-    if period is not None:
-        c = 2*pi/period
-    else:
-        c = 1.0
-    n = len(x)
-    omega = _cache.get((n,order,c))
-    if omega is None:
-        if len(_cache) > 20:
-            while _cache:
-                _cache.popitem()
-
-        def kernel(k,order=order,c=c):
-            if k:
-                return pow(c*k,order)
-            return 0
-        omega = convolve.init_convolution_kernel(n,kernel,d=order,
-                                                 zero_nyquist=1)
-        _cache[(n,order,c)] = omega
-    overwrite_x = _datacopied(tmp, x)
-    return convolve.convolve(tmp,omega,swap_real_imag=order % 2,
-                             overwrite_x=overwrite_x)
-
-
-del _cache
-
-
-_cache = {}
-
-
-def tilbert(x, h, period=None, _cache=_cache):
-    """
-    Return h-Tilbert transform of a periodic sequence x.
-
-    If x_j and y_j are Fourier coefficients of periodic functions x
-    and y, respectively, then::
-
-        y_j = sqrt(-1)*coth(j*h*2*pi/period) * x_j
-        y_0 = 0
-
-    Parameters
-    ----------
-    x : array_like
-        The input array to transform.
-    h : float
-        Defines the parameter of the Tilbert transform.
-    period : float, optional
-        The assumed period of the sequence. Default period is ``2*pi``.
-
-    Returns
-    -------
-    tilbert : ndarray
-        The result of the transform.
-
-    Notes
-    -----
-    If ``sum(x, axis=0) == 0`` and ``n = len(x)`` is odd, then
-    ``tilbert(itilbert(x)) == x``.
-
-    If ``2 * pi * h / period`` is approximately 10 or larger, then
-    numerically ``tilbert == hilbert``
-    (theoretically oo-Tilbert == Hilbert).
-
-    For even ``len(x)``, the Nyquist mode of ``x`` is taken zero.
-
-    """
-    tmp = asarray(x)
-    if iscomplexobj(tmp):
-        return tilbert(tmp.real, h, period) + \
-               1j * tilbert(tmp.imag, h, period)
-
-    if period is not None:
-        h = h * 2 * pi / period
-
-    n = len(x)
-    omega = _cache.get((n, h))
-    if omega is None:
-        if len(_cache) > 20:
-            while _cache:
-                _cache.popitem()
-
-        def kernel(k, h=h):
-            if k:
-                return 1.0/tanh(h*k)
-
-            return 0
-
-        omega = convolve.init_convolution_kernel(n, kernel, d=1)
-        _cache[(n,h)] = omega
-
-    overwrite_x = _datacopied(tmp, x)
-    return convolve.convolve(tmp,omega,swap_real_imag=1,overwrite_x=overwrite_x)
-
-
-del _cache
-
-
-_cache = {}
-
-
-def itilbert(x,h,period=None, _cache=_cache):
-    """
-    Return inverse h-Tilbert transform of a periodic sequence x.
-
-    If ``x_j`` and ``y_j`` are Fourier coefficients of periodic functions x
-    and y, respectively, then::
-
-      y_j = -sqrt(-1)*tanh(j*h*2*pi/period) * x_j
-      y_0 = 0
-
-    For more details, see `tilbert`.
-
-    """
-    tmp = asarray(x)
-    if iscomplexobj(tmp):
-        return itilbert(tmp.real,h,period) + \
-               1j*itilbert(tmp.imag,h,period)
-    if period is not None:
-        h = h*2*pi/period
-    n = len(x)
-    omega = _cache.get((n,h))
-    if omega is None:
-        if len(_cache) > 20:
-            while _cache:
-                _cache.popitem()
-
-        def kernel(k,h=h):
-            if k:
-                return -tanh(h*k)
-            return 0
-        omega = convolve.init_convolution_kernel(n,kernel,d=1)
-        _cache[(n,h)] = omega
-    overwrite_x = _datacopied(tmp, x)
-    return convolve.convolve(tmp,omega,swap_real_imag=1,overwrite_x=overwrite_x)
-
-
-del _cache
-
-
-_cache = {}
-
-
-def hilbert(x, _cache=_cache):
-    """
-    Return Hilbert transform of a periodic sequence x.
-
-    If x_j and y_j are Fourier coefficients of periodic functions x
-    and y, respectively, then::
-
-      y_j = sqrt(-1)*sign(j) * x_j
-      y_0 = 0
-
-    Parameters
-    ----------
-    x : array_like
-        The input array, should be periodic.
-    _cache : dict, optional
-        Dictionary that contains the kernel used to do a convolution with.
-
-    Returns
-    -------
-    y : ndarray
-        The transformed input.
-
-    See Also
-    --------
-    scipy.signal.hilbert : Compute the analytic signal, using the Hilbert
-                           transform.
-
-    Notes
-    -----
-    If ``sum(x, axis=0) == 0`` then ``hilbert(ihilbert(x)) == x``.
-
-    For even len(x), the Nyquist mode of x is taken zero.
-
-    The sign of the returned transform does not have a factor -1 that is more
-    often than not found in the definition of the Hilbert transform. Note also
-    that `scipy.signal.hilbert` does have an extra -1 factor compared to this
-    function.
-
-    """
-    tmp = asarray(x)
-    if iscomplexobj(tmp):
-        return hilbert(tmp.real)+1j*hilbert(tmp.imag)
-    n = len(x)
-    omega = _cache.get(n)
-    if omega is None:
-        if len(_cache) > 20:
-            while _cache:
-                _cache.popitem()
-
-        def kernel(k):
-            if k > 0:
-                return 1.0
-            elif k < 0:
-                return -1.0
-            return 0.0
-        omega = convolve.init_convolution_kernel(n,kernel,d=1)
-        _cache[n] = omega
-    overwrite_x = _datacopied(tmp, x)
-    return convolve.convolve(tmp,omega,swap_real_imag=1,overwrite_x=overwrite_x)
-
-
-del _cache
-
-
-def ihilbert(x):
-    """
-    Return inverse Hilbert transform of a periodic sequence x.
-
-    If ``x_j`` and ``y_j`` are Fourier coefficients of periodic functions x
-    and y, respectively, then::
-
-      y_j = -sqrt(-1)*sign(j) * x_j
-      y_0 = 0
-
-    """
-    return -hilbert(x)
-
-
-_cache = {}
-
-
-def cs_diff(x, a, b, period=None, _cache=_cache):
-    """
-    Return (a,b)-cosh/sinh pseudo-derivative of a periodic sequence.
-
-    If ``x_j`` and ``y_j`` are Fourier coefficients of periodic functions x
-    and y, respectively, then::
-
-      y_j = -sqrt(-1)*cosh(j*a*2*pi/period)/sinh(j*b*2*pi/period) * x_j
-      y_0 = 0
-
-    Parameters
-    ----------
-    x : array_like
-        The array to take the pseudo-derivative from.
-    a, b : float
-        Defines the parameters of the cosh/sinh pseudo-differential
-        operator.
-    period : float, optional
-        The period of the sequence. Default period is ``2*pi``.
-
-    Returns
-    -------
-    cs_diff : ndarray
-        Pseudo-derivative of periodic sequence `x`.
-
-    Notes
-    -----
-    For even len(`x`), the Nyquist mode of `x` is taken as zero.
-
-    """
-    tmp = asarray(x)
-    if iscomplexobj(tmp):
-        return cs_diff(tmp.real,a,b,period) + \
-               1j*cs_diff(tmp.imag,a,b,period)
-    if period is not None:
-        a = a*2*pi/period
-        b = b*2*pi/period
-    n = len(x)
-    omega = _cache.get((n,a,b))
-    if omega is None:
-        if len(_cache) > 20:
-            while _cache:
-                _cache.popitem()
-
-        def kernel(k,a=a,b=b):
-            if k:
-                return -cosh(a*k)/sinh(b*k)
-            return 0
-        omega = convolve.init_convolution_kernel(n,kernel,d=1)
-        _cache[(n,a,b)] = omega
-    overwrite_x = _datacopied(tmp, x)
-    return convolve.convolve(tmp,omega,swap_real_imag=1,overwrite_x=overwrite_x)
-
-
-del _cache
-
-
-_cache = {}
-
-
-def sc_diff(x, a, b, period=None, _cache=_cache):
-    """
-    Return (a,b)-sinh/cosh pseudo-derivative of a periodic sequence x.
-
-    If x_j and y_j are Fourier coefficients of periodic functions x
-    and y, respectively, then::
-
-      y_j = sqrt(-1)*sinh(j*a*2*pi/period)/cosh(j*b*2*pi/period) * x_j
-      y_0 = 0
-
-    Parameters
-    ----------
-    x : array_like
-        Input array.
-    a,b : float
-        Defines the parameters of the sinh/cosh pseudo-differential
-        operator.
-    period : float, optional
-        The period of the sequence x. Default is 2*pi.
-
-    Notes
-    -----
-    ``sc_diff(cs_diff(x,a,b),b,a) == x``
-    For even ``len(x)``, the Nyquist mode of x is taken as zero.
-
-    """
-    tmp = asarray(x)
-    if iscomplexobj(tmp):
-        return sc_diff(tmp.real,a,b,period) + \
-               1j*sc_diff(tmp.imag,a,b,period)
-    if period is not None:
-        a = a*2*pi/period
-        b = b*2*pi/period
-    n = len(x)
-    omega = _cache.get((n,a,b))
-    if omega is None:
-        if len(_cache) > 20:
-            while _cache:
-                _cache.popitem()
-
-        def kernel(k,a=a,b=b):
-            if k:
-                return sinh(a*k)/cosh(b*k)
-            return 0
-        omega = convolve.init_convolution_kernel(n,kernel,d=1)
-        _cache[(n,a,b)] = omega
-    overwrite_x = _datacopied(tmp, x)
-    return convolve.convolve(tmp,omega,swap_real_imag=1,overwrite_x=overwrite_x)
-
-
-del _cache
-
-
-_cache = {}
-
-
-def ss_diff(x, a, b, period=None, _cache=_cache):
-    """
-    Return (a,b)-sinh/sinh pseudo-derivative of a periodic sequence x.
-
-    If x_j and y_j are Fourier coefficients of periodic functions x
-    and y, respectively, then::
-
-      y_j = sinh(j*a*2*pi/period)/sinh(j*b*2*pi/period) * x_j
-      y_0 = a/b * x_0
-
-    Parameters
-    ----------
-    x : array_like
-        The array to take the pseudo-derivative from.
-    a,b
-        Defines the parameters of the sinh/sinh pseudo-differential
-        operator.
-    period : float, optional
-        The period of the sequence x. Default is ``2*pi``.
-
-    Notes
-    -----
-    ``ss_diff(ss_diff(x,a,b),b,a) == x``
-
-    """
-    tmp = asarray(x)
-    if iscomplexobj(tmp):
-        return ss_diff(tmp.real,a,b,period) + \
-               1j*ss_diff(tmp.imag,a,b,period)
-    if period is not None:
-        a = a*2*pi/period
-        b = b*2*pi/period
-    n = len(x)
-    omega = _cache.get((n,a,b))
-    if omega is None:
-        if len(_cache) > 20:
-            while _cache:
-                _cache.popitem()
-
-        def kernel(k,a=a,b=b):
-            if k:
-                return sinh(a*k)/sinh(b*k)
-            return float(a)/b
-        omega = convolve.init_convolution_kernel(n,kernel)
-        _cache[(n,a,b)] = omega
-    overwrite_x = _datacopied(tmp, x)
-    return convolve.convolve(tmp,omega,overwrite_x=overwrite_x)
-
-
-del _cache
-
-
-_cache = {}
-
-
-def cc_diff(x, a, b, period=None, _cache=_cache):
-    """
-    Return (a,b)-cosh/cosh pseudo-derivative of a periodic sequence.
-
-    If x_j and y_j are Fourier coefficients of periodic functions x
-    and y, respectively, then::
-
-      y_j = cosh(j*a*2*pi/period)/cosh(j*b*2*pi/period) * x_j
-
-    Parameters
-    ----------
-    x : array_like
-        The array to take the pseudo-derivative from.
-    a,b : float
-        Defines the parameters of the sinh/sinh pseudo-differential
-        operator.
-    period : float, optional
-        The period of the sequence x. Default is ``2*pi``.
-
-    Returns
-    -------
-    cc_diff : ndarray
-        Pseudo-derivative of periodic sequence `x`.
-
-    Notes
-    -----
-    ``cc_diff(cc_diff(x,a,b),b,a) == x``
-
-    """
-    tmp = asarray(x)
-    if iscomplexobj(tmp):
-        return cc_diff(tmp.real,a,b,period) + \
-               1j*cc_diff(tmp.imag,a,b,period)
-    if period is not None:
-        a = a*2*pi/period
-        b = b*2*pi/period
-    n = len(x)
-    omega = _cache.get((n,a,b))
-    if omega is None:
-        if len(_cache) > 20:
-            while _cache:
-                _cache.popitem()
-
-        def kernel(k,a=a,b=b):
-            return cosh(a*k)/cosh(b*k)
-        omega = convolve.init_convolution_kernel(n,kernel)
-        _cache[(n,a,b)] = omega
-    overwrite_x = _datacopied(tmp, x)
-    return convolve.convolve(tmp,omega,overwrite_x=overwrite_x)
-
-
-del _cache
-
-
-_cache = {}
-
-
-def shift(x, a, period=None, _cache=_cache):
-    """
-    Shift periodic sequence x by a: y(u) = x(u+a).
-
-    If x_j and y_j are Fourier coefficients of periodic functions x
-    and y, respectively, then::
-
-          y_j = exp(j*a*2*pi/period*sqrt(-1)) * x_f
-
-    Parameters
-    ----------
-    x : array_like
-        The array to take the pseudo-derivative from.
-    a : float
-        Defines the parameters of the sinh/sinh pseudo-differential
-    period : float, optional
-        The period of the sequences x and y. Default period is ``2*pi``.
-    """
-    tmp = asarray(x)
-    if iscomplexobj(tmp):
-        return shift(tmp.real,a,period)+1j*shift(tmp.imag,a,period)
-    if period is not None:
-        a = a*2*pi/period
-    n = len(x)
-    omega = _cache.get((n,a))
-    if omega is None:
-        if len(_cache) > 20:
-            while _cache:
-                _cache.popitem()
-
-        def kernel_real(k,a=a):
-            return cos(a*k)
-
-        def kernel_imag(k,a=a):
-            return sin(a*k)
-        omega_real = convolve.init_convolution_kernel(n,kernel_real,d=0,
-                                                      zero_nyquist=0)
-        omega_imag = convolve.init_convolution_kernel(n,kernel_imag,d=1,
-                                                      zero_nyquist=0)
-        _cache[(n,a)] = omega_real,omega_imag
-    else:
-        omega_real,omega_imag = omega
-    overwrite_x = _datacopied(tmp, x)
-    return convolve.convolve_z(tmp,omega_real,omega_imag,
-                               overwrite_x=overwrite_x)
-
-
-del _cache
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_realtransforms.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_realtransforms.py
deleted file mode 100644
index f56f68fce4ea447b6b946b14d7610dc4ef07c47c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/_realtransforms.py
+++ /dev/null
@@ -1,598 +0,0 @@
-"""
-Real spectrum transforms (DCT, DST, MDCT)
-"""
-
-__all__ = ['dct', 'idct', 'dst', 'idst', 'dctn', 'idctn', 'dstn', 'idstn']
-
-from scipy.fft import _pocketfft
-from ._helper import _good_shape
-
-_inverse_typemap = {1: 1, 2: 3, 3: 2, 4: 4}
-
-
-def dctn(x, type=2, shape=None, axes=None, norm=None, overwrite_x=False):
-    """
-    Return multidimensional Discrete Cosine Transform along the specified axes.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DCT (see Notes). Default type is 2.
-    shape : int or array_like of ints or None, optional
-        The shape of the result. If both `shape` and `axes` (see below) are
-        None, `shape` is ``x.shape``; if `shape` is None but `axes` is
-        not None, then `shape` is ``numpy.take(x.shape, axes, axis=0)``.
-        If ``shape[i] > x.shape[i]``, the ith dimension is padded with zeros.
-        If ``shape[i] < x.shape[i]``, the ith dimension is truncated to
-        length ``shape[i]``.
-        If any element of `shape` is -1, the size of the corresponding
-        dimension of `x` is used.
-    axes : int or array_like of ints or None, optional
-        Axes along which the DCT is computed.
-        The default is over all axes.
-    norm : {None, 'ortho'}, optional
-        Normalization mode (see Notes). Default is None.
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    y : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    idctn : Inverse multidimensional DCT
-
-    Notes
-    -----
-    For full details of the DCT types and normalization modes, as well as
-    references, see `dct`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fftpack import dctn, idctn
-    >>> rng = np.random.default_rng()
-    >>> y = rng.standard_normal((16, 16))
-    >>> np.allclose(y, idctn(dctn(y, norm='ortho'), norm='ortho'))
-    True
-
-    """
-    shape = _good_shape(x, shape, axes)
-    return _pocketfft.dctn(x, type, shape, axes, norm, overwrite_x)
-
-
-def idctn(x, type=2, shape=None, axes=None, norm=None, overwrite_x=False):
-    """
-    Return multidimensional Discrete Cosine Transform along the specified axes.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DCT (see Notes). Default type is 2.
-    shape : int or array_like of ints or None, optional
-        The shape of the result.  If both `shape` and `axes` (see below) are
-        None, `shape` is ``x.shape``; if `shape` is None but `axes` is
-        not None, then `shape` is ``numpy.take(x.shape, axes, axis=0)``.
-        If ``shape[i] > x.shape[i]``, the ith dimension is padded with zeros.
-        If ``shape[i] < x.shape[i]``, the ith dimension is truncated to
-        length ``shape[i]``.
-        If any element of `shape` is -1, the size of the corresponding
-        dimension of `x` is used.
-    axes : int or array_like of ints or None, optional
-        Axes along which the IDCT is computed.
-        The default is over all axes.
-    norm : {None, 'ortho'}, optional
-        Normalization mode (see Notes). Default is None.
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    y : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    dctn : multidimensional DCT
-
-    Notes
-    -----
-    For full details of the IDCT types and normalization modes, as well as
-    references, see `idct`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fftpack import dctn, idctn
-    >>> rng = np.random.default_rng()
-    >>> y = rng.standard_normal((16, 16))
-    >>> np.allclose(y, idctn(dctn(y, norm='ortho'), norm='ortho'))
-    True
-
-    """
-    type = _inverse_typemap[type]
-    shape = _good_shape(x, shape, axes)
-    return _pocketfft.dctn(x, type, shape, axes, norm, overwrite_x)
-
-
-def dstn(x, type=2, shape=None, axes=None, norm=None, overwrite_x=False):
-    """
-    Return multidimensional Discrete Sine Transform along the specified axes.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DST (see Notes). Default type is 2.
-    shape : int or array_like of ints or None, optional
-        The shape of the result.  If both `shape` and `axes` (see below) are
-        None, `shape` is ``x.shape``; if `shape` is None but `axes` is
-        not None, then `shape` is ``numpy.take(x.shape, axes, axis=0)``.
-        If ``shape[i] > x.shape[i]``, the ith dimension is padded with zeros.
-        If ``shape[i] < x.shape[i]``, the ith dimension is truncated to
-        length ``shape[i]``.
-        If any element of `shape` is -1, the size of the corresponding
-        dimension of `x` is used.
-    axes : int or array_like of ints or None, optional
-        Axes along which the DCT is computed.
-        The default is over all axes.
-    norm : {None, 'ortho'}, optional
-        Normalization mode (see Notes). Default is None.
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    y : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    idstn : Inverse multidimensional DST
-
-    Notes
-    -----
-    For full details of the DST types and normalization modes, as well as
-    references, see `dst`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fftpack import dstn, idstn
-    >>> rng = np.random.default_rng()
-    >>> y = rng.standard_normal((16, 16))
-    >>> np.allclose(y, idstn(dstn(y, norm='ortho'), norm='ortho'))
-    True
-
-    """
-    shape = _good_shape(x, shape, axes)
-    return _pocketfft.dstn(x, type, shape, axes, norm, overwrite_x)
-
-
-def idstn(x, type=2, shape=None, axes=None, norm=None, overwrite_x=False):
-    """
-    Return multidimensional Discrete Sine Transform along the specified axes.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DST (see Notes). Default type is 2.
-    shape : int or array_like of ints or None, optional
-        The shape of the result.  If both `shape` and `axes` (see below) are
-        None, `shape` is ``x.shape``; if `shape` is None but `axes` is
-        not None, then `shape` is ``numpy.take(x.shape, axes, axis=0)``.
-        If ``shape[i] > x.shape[i]``, the ith dimension is padded with zeros.
-        If ``shape[i] < x.shape[i]``, the ith dimension is truncated to
-        length ``shape[i]``.
-        If any element of `shape` is -1, the size of the corresponding
-        dimension of `x` is used.
-    axes : int or array_like of ints or None, optional
-        Axes along which the IDST is computed.
-        The default is over all axes.
-    norm : {None, 'ortho'}, optional
-        Normalization mode (see Notes). Default is None.
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    y : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    dstn : multidimensional DST
-
-    Notes
-    -----
-    For full details of the IDST types and normalization modes, as well as
-    references, see `idst`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.fftpack import dstn, idstn
-    >>> rng = np.random.default_rng()
-    >>> y = rng.standard_normal((16, 16))
-    >>> np.allclose(y, idstn(dstn(y, norm='ortho'), norm='ortho'))
-    True
-
-    """
-    type = _inverse_typemap[type]
-    shape = _good_shape(x, shape, axes)
-    return _pocketfft.dstn(x, type, shape, axes, norm, overwrite_x)
-
-
-def dct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False):
-    r"""
-    Return the Discrete Cosine Transform of arbitrary type sequence x.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DCT (see Notes). Default type is 2.
-    n : int, optional
-        Length of the transform.  If ``n < x.shape[axis]``, `x` is
-        truncated.  If ``n > x.shape[axis]``, `x` is zero-padded. The
-        default results in ``n = x.shape[axis]``.
-    axis : int, optional
-        Axis along which the dct is computed; the default is over the
-        last axis (i.e., ``axis=-1``).
-    norm : {None, 'ortho'}, optional
-        Normalization mode (see Notes). Default is None.
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    y : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    idct : Inverse DCT
-
-    Notes
-    -----
-    For a single dimension array ``x``, ``dct(x, norm='ortho')`` is equal to
-    MATLAB ``dct(x)``.
-
-    There are, theoretically, 8 types of the DCT, only the first 4 types are
-    implemented in scipy. 'The' DCT generally refers to DCT type 2, and 'the'
-    Inverse DCT generally refers to DCT type 3.
-
-    **Type I**
-
-    There are several definitions of the DCT-I; we use the following
-    (for ``norm=None``)
-
-    .. math::
-
-       y_k = x_0 + (-1)^k x_{N-1} + 2 \sum_{n=1}^{N-2} x_n \cos\left(
-       \frac{\pi k n}{N-1} \right)
-
-    If ``norm='ortho'``, ``x[0]`` and ``x[N-1]`` are multiplied by a scaling
-    factor of :math:`\sqrt{2}`, and ``y[k]`` is multiplied by a scaling factor
-    ``f``
-
-    .. math::
-
-        f = \begin{cases}
-         \frac{1}{2}\sqrt{\frac{1}{N-1}} & \text{if }k=0\text{ or }N-1, \\
-         \frac{1}{2}\sqrt{\frac{2}{N-1}} & \text{otherwise} \end{cases}
-
-    .. versionadded:: 1.2.0
-       Orthonormalization in DCT-I.
-
-    .. note::
-       The DCT-I is only supported for input size > 1.
-
-    **Type II**
-
-    There are several definitions of the DCT-II; we use the following
-    (for ``norm=None``)
-
-    .. math::
-
-       y_k = 2 \sum_{n=0}^{N-1} x_n \cos\left(\frac{\pi k(2n+1)}{2N} \right)
-
-    If ``norm='ortho'``, ``y[k]`` is multiplied by a scaling factor ``f``
-
-    .. math::
-       f = \begin{cases}
-       \sqrt{\frac{1}{4N}} & \text{if }k=0, \\
-       \sqrt{\frac{1}{2N}} & \text{otherwise} \end{cases}
-
-    which makes the corresponding matrix of coefficients orthonormal
-    (``O @ O.T = np.eye(N)``).
-
-    **Type III**
-
-    There are several definitions, we use the following (for ``norm=None``)
-
-    .. math::
-
-       y_k = x_0 + 2 \sum_{n=1}^{N-1} x_n \cos\left(\frac{\pi(2k+1)n}{2N}\right)
-
-    or, for ``norm='ortho'``
-
-    .. math::
-
-       y_k = \frac{x_0}{\sqrt{N}} + \sqrt{\frac{2}{N}} \sum_{n=1}^{N-1} x_n
-       \cos\left(\frac{\pi(2k+1)n}{2N}\right)
-
-    The (unnormalized) DCT-III is the inverse of the (unnormalized) DCT-II, up
-    to a factor `2N`. The orthonormalized DCT-III is exactly the inverse of
-    the orthonormalized DCT-II.
-
-    **Type IV**
-
-    There are several definitions of the DCT-IV; we use the following
-    (for ``norm=None``)
-
-    .. math::
-
-       y_k = 2 \sum_{n=0}^{N-1} x_n \cos\left(\frac{\pi(2k+1)(2n+1)}{4N} \right)
-
-    If ``norm='ortho'``, ``y[k]`` is multiplied by a scaling factor ``f``
-
-    .. math::
-
-        f = \frac{1}{\sqrt{2N}}
-
-    .. versionadded:: 1.2.0
-       Support for DCT-IV.
-
-    References
-    ----------
-    .. [1] 'A Fast Cosine Transform in One and Two Dimensions', by J.
-           Makhoul, `IEEE Transactions on acoustics, speech and signal
-           processing` vol. 28(1), pp. 27-34,
-           :doi:`10.1109/TASSP.1980.1163351` (1980).
-    .. [2] Wikipedia, "Discrete cosine transform",
-           https://en.wikipedia.org/wiki/Discrete_cosine_transform
-
-    Examples
-    --------
-    The Type 1 DCT is equivalent to the FFT (though faster) for real,
-    even-symmetrical inputs. The output is also real and even-symmetrical.
-    Half of the FFT input is used to generate half of the FFT output:
-
-    >>> from scipy.fftpack import fft, dct
-    >>> import numpy as np
-    >>> fft(np.array([4., 3., 5., 10., 5., 3.])).real
-    array([ 30.,  -8.,   6.,  -2.,   6.,  -8.])
-    >>> dct(np.array([4., 3., 5., 10.]), 1)
-    array([ 30.,  -8.,   6.,  -2.])
-
-    """
-    return _pocketfft.dct(x, type, n, axis, norm, overwrite_x)
-
-
-def idct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False):
-    """
-    Return the Inverse Discrete Cosine Transform of an arbitrary type sequence.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DCT (see Notes). Default type is 2.
-    n : int, optional
-        Length of the transform.  If ``n < x.shape[axis]``, `x` is
-        truncated.  If ``n > x.shape[axis]``, `x` is zero-padded. The
-        default results in ``n = x.shape[axis]``.
-    axis : int, optional
-        Axis along which the idct is computed; the default is over the
-        last axis (i.e., ``axis=-1``).
-    norm : {None, 'ortho'}, optional
-        Normalization mode (see Notes). Default is None.
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    idct : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    dct : Forward DCT
-
-    Notes
-    -----
-    For a single dimension array `x`, ``idct(x, norm='ortho')`` is equal to
-    MATLAB ``idct(x)``.
-
-    'The' IDCT is the IDCT of type 2, which is the same as DCT of type 3.
-
-    IDCT of type 1 is the DCT of type 1, IDCT of type 2 is the DCT of type
-    3, and IDCT of type 3 is the DCT of type 2. IDCT of type 4 is the DCT
-    of type 4. For the definition of these types, see `dct`.
-
-    Examples
-    --------
-    The Type 1 DCT is equivalent to the DFT for real, even-symmetrical
-    inputs. The output is also real and even-symmetrical. Half of the IFFT
-    input is used to generate half of the IFFT output:
-
-    >>> from scipy.fftpack import ifft, idct
-    >>> import numpy as np
-    >>> ifft(np.array([ 30.,  -8.,   6.,  -2.,   6.,  -8.])).real
-    array([  4.,   3.,   5.,  10.,   5.,   3.])
-    >>> idct(np.array([ 30.,  -8.,   6.,  -2.]), 1) / 6
-    array([  4.,   3.,   5.,  10.])
-
-    """
-    type = _inverse_typemap[type]
-    return _pocketfft.dct(x, type, n, axis, norm, overwrite_x)
-
-
-def dst(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False):
-    r"""
-    Return the Discrete Sine Transform of arbitrary type sequence x.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DST (see Notes). Default type is 2.
-    n : int, optional
-        Length of the transform.  If ``n < x.shape[axis]``, `x` is
-        truncated.  If ``n > x.shape[axis]``, `x` is zero-padded. The
-        default results in ``n = x.shape[axis]``.
-    axis : int, optional
-        Axis along which the dst is computed; the default is over the
-        last axis (i.e., ``axis=-1``).
-    norm : {None, 'ortho'}, optional
-        Normalization mode (see Notes). Default is None.
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    dst : ndarray of reals
-        The transformed input array.
-
-    See Also
-    --------
-    idst : Inverse DST
-
-    Notes
-    -----
-    For a single dimension array ``x``.
-
-    There are, theoretically, 8 types of the DST for different combinations of
-    even/odd boundary conditions and boundary off sets [1]_, only the first
-    4 types are implemented in scipy.
-
-    **Type I**
-
-    There are several definitions of the DST-I; we use the following
-    for ``norm=None``. DST-I assumes the input is odd around `n=-1` and `n=N`.
-
-    .. math::
-
-        y_k = 2 \sum_{n=0}^{N-1} x_n \sin\left(\frac{\pi(k+1)(n+1)}{N+1}\right)
-
-    Note that the DST-I is only supported for input size > 1.
-    The (unnormalized) DST-I is its own inverse, up to a factor `2(N+1)`.
-    The orthonormalized DST-I is exactly its own inverse.
-
-    **Type II**
-
-    There are several definitions of the DST-II; we use the following for
-    ``norm=None``. DST-II assumes the input is odd around `n=-1/2` and
-    `n=N-1/2`; the output is odd around :math:`k=-1` and even around `k=N-1`
-
-    .. math::
-
-        y_k = 2 \sum_{n=0}^{N-1} x_n \sin\left(\frac{\pi(k+1)(2n+1)}{2N}\right)
-
-    if ``norm='ortho'``, ``y[k]`` is multiplied by a scaling factor ``f``
-
-    .. math::
-
-        f = \begin{cases}
-        \sqrt{\frac{1}{4N}} & \text{if }k = 0, \\
-        \sqrt{\frac{1}{2N}} & \text{otherwise} \end{cases}
-
-    **Type III**
-
-    There are several definitions of the DST-III, we use the following (for
-    ``norm=None``). DST-III assumes the input is odd around `n=-1` and even
-    around `n=N-1`
-
-    .. math::
-
-        y_k = (-1)^k x_{N-1} + 2 \sum_{n=0}^{N-2} x_n \sin\left(
-        \frac{\pi(2k+1)(n+1)}{2N}\right)
-
-    The (unnormalized) DST-III is the inverse of the (unnormalized) DST-II, up
-    to a factor `2N`. The orthonormalized DST-III is exactly the inverse of the
-    orthonormalized DST-II.
-
-    .. versionadded:: 0.11.0
-
-    **Type IV**
-
-    There are several definitions of the DST-IV, we use the following (for
-    ``norm=None``). DST-IV assumes the input is odd around `n=-0.5` and even
-    around `n=N-0.5`
-
-    .. math::
-
-        y_k = 2 \sum_{n=0}^{N-1} x_n \sin\left(\frac{\pi(2k+1)(2n+1)}{4N}\right)
-
-    The (unnormalized) DST-IV is its own inverse, up to a factor `2N`. The
-    orthonormalized DST-IV is exactly its own inverse.
-
-    .. versionadded:: 1.2.0
-       Support for DST-IV.
-
-    References
-    ----------
-    .. [1] Wikipedia, "Discrete sine transform",
-           https://en.wikipedia.org/wiki/Discrete_sine_transform
-
-    """
-    return _pocketfft.dst(x, type, n, axis, norm, overwrite_x)
-
-
-def idst(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False):
-    """
-    Return the Inverse Discrete Sine Transform of an arbitrary type sequence.
-
-    Parameters
-    ----------
-    x : array_like
-        The input array.
-    type : {1, 2, 3, 4}, optional
-        Type of the DST (see Notes). Default type is 2.
-    n : int, optional
-        Length of the transform.  If ``n < x.shape[axis]``, `x` is
-        truncated. If ``n > x.shape[axis]``, `x` is zero-padded. The
-        default results in ``n = x.shape[axis]``.
-    axis : int, optional
-        Axis along which the idst is computed; the default is over the
-        last axis (i.e., ``axis=-1``).
-    norm : {None, 'ortho'}, optional
-        Normalization mode (see Notes). Default is None.
-    overwrite_x : bool, optional
-        If True, the contents of `x` can be destroyed; the default is False.
-
-    Returns
-    -------
-    idst : ndarray of real
-        The transformed input array.
-
-    See Also
-    --------
-    dst : Forward DST
-
-    Notes
-    -----
-    'The' IDST is the IDST of type 2, which is the same as DST of type 3.
-
-    IDST of type 1 is the DST of type 1, IDST of type 2 is the DST of type
-    3, and IDST of type 3 is the DST of type 2. For the definition of these
-    types, see `dst`.
-
-    .. versionadded:: 0.11.0
-
-    """
-    type = _inverse_typemap[type]
-    return _pocketfft.dst(x, type, n, axis, norm, overwrite_x)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/basic.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/basic.py
deleted file mode 100644
index 553f456fe1561c28928ecc4ebe2238459cc60443..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/basic.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.fftpack` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = [  # noqa: F822
-    'fft','ifft','fftn','ifftn','rfft','irfft',
-    'fft2','ifft2'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="fftpack", module="basic",
-                                   private_modules=["_basic"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/helper.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/helper.py
deleted file mode 100644
index fcc7000c215f8a7605a2a59b5767b27b2fcd969d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/helper.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.fftpack` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = [  # noqa: F822
-    'fftshift', 'ifftshift', 'fftfreq', 'rfftfreq', 'next_fast_len'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="fftpack", module="helper",
-                                   private_modules=["_helper"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/pseudo_diffs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/pseudo_diffs.py
deleted file mode 100644
index ecf71ad3256d48d2131c8058072da724cb001af9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/pseudo_diffs.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.fftpack` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = [  # noqa: F822
-    'diff',
-    'tilbert', 'itilbert', 'hilbert', 'ihilbert',
-    'cs_diff', 'cc_diff', 'sc_diff', 'ss_diff',
-    'shift', 'convolve'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="fftpack", module="pseudo_diffs",
-                                   private_modules=["_pseudo_diffs"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/realtransforms.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/realtransforms.py
deleted file mode 100644
index 9a392198fccf213bc988a79058bd69515e39f510..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/realtransforms.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.fftpack` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = [  # noqa: F822
-    'dct', 'idct', 'dst', 'idst', 'dctn', 'idctn', 'dstn', 'idstn'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="fftpack", module="realtransforms",
-                                   private_modules=["_realtransforms"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index d65c8fc1f4e08d0ef8846bc7b2e0b3326684704d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_basic.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_basic.cpython-310.pyc
deleted file mode 100644
index 1bd009d0c7f53a90296626aaf697e478bc3e4375..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_basic.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_helper.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_helper.cpython-310.pyc
deleted file mode 100644
index 8ae3cd65fb3ea1bce9b7f843e208b80b70d11e41..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_helper.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_import.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_import.cpython-310.pyc
deleted file mode 100644
index 27aba9bd7facfcf51ff2f39a63aa55ae66966d7e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_import.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_pseudo_diffs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_pseudo_diffs.cpython-310.pyc
deleted file mode 100644
index 8b45f5c0d357f855924439e928196afb2458505c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_pseudo_diffs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_real_transforms.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_real_transforms.cpython-310.pyc
deleted file mode 100644
index cc3b19da98890dbb3fe0f0856611ae5383adb3c3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/__pycache__/test_real_transforms.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/fftw_single_ref.npz b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/fftw_single_ref.npz
deleted file mode 100644
index 8953d3303e84f76bdc45dfe0475f1c984d85915b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/fftw_single_ref.npz and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test.npz b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test.npz
deleted file mode 100644
index f90294b41d3f21e76318d396ffba6705e6afe1fa..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test.npz and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_basic.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_basic.py
deleted file mode 100644
index a7c4b1de867fb4eadc72e17e2e70a02c9ba190a5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_basic.py
+++ /dev/null
@@ -1,873 +0,0 @@
-# Created by Pearu Peterson, September 2002
-
-from numpy.testing import (assert_, assert_equal, assert_array_almost_equal,
-                           assert_array_almost_equal_nulp, assert_array_less)
-import pytest
-from pytest import raises as assert_raises
-from scipy.fftpack import ifft, fft, fftn, ifftn, rfft, irfft, fft2
-
-from numpy import (arange, array, asarray, zeros, dot, exp, pi,
-                   swapaxes, double, cdouble)
-import numpy as np
-import numpy.fft
-from numpy.random import rand
-
-# "large" composite numbers supported by FFTPACK
-LARGE_COMPOSITE_SIZES = [
-    2**13,
-    2**5 * 3**5,
-    2**3 * 3**3 * 5**2,
-]
-SMALL_COMPOSITE_SIZES = [
-    2,
-    2*3*5,
-    2*2*3*3,
-]
-# prime
-LARGE_PRIME_SIZES = [
-    2011
-]
-SMALL_PRIME_SIZES = [
-    29
-]
-
-
-def _assert_close_in_norm(x, y, rtol, size, rdt):
-    # helper function for testing
-    err_msg = f"size: {size}  rdt: {rdt}"
-    assert_array_less(np.linalg.norm(x - y), rtol*np.linalg.norm(x), err_msg)
-
-
-def random(size):
-    return rand(*size)
-
-
-def direct_dft(x):
-    x = asarray(x)
-    n = len(x)
-    y = zeros(n, dtype=cdouble)
-    w = -arange(n)*(2j*pi/n)
-    for i in range(n):
-        y[i] = dot(exp(i*w), x)
-    return y
-
-
-def direct_idft(x):
-    x = asarray(x)
-    n = len(x)
-    y = zeros(n, dtype=cdouble)
-    w = arange(n)*(2j*pi/n)
-    for i in range(n):
-        y[i] = dot(exp(i*w), x)/n
-    return y
-
-
-def direct_dftn(x):
-    x = asarray(x)
-    for axis in range(len(x.shape)):
-        x = fft(x, axis=axis)
-    return x
-
-
-def direct_idftn(x):
-    x = asarray(x)
-    for axis in range(len(x.shape)):
-        x = ifft(x, axis=axis)
-    return x
-
-
-def direct_rdft(x):
-    x = asarray(x)
-    n = len(x)
-    w = -arange(n)*(2j*pi/n)
-    r = zeros(n, dtype=double)
-    for i in range(n//2+1):
-        y = dot(exp(i*w), x)
-        if i:
-            r[2*i-1] = y.real
-            if 2*i < n:
-                r[2*i] = y.imag
-        else:
-            r[0] = y.real
-    return r
-
-
-def direct_irdft(x):
-    x = asarray(x)
-    n = len(x)
-    x1 = zeros(n, dtype=cdouble)
-    for i in range(n//2+1):
-        if i:
-            if 2*i < n:
-                x1[i] = x[2*i-1] + 1j*x[2*i]
-                x1[n-i] = x[2*i-1] - 1j*x[2*i]
-            else:
-                x1[i] = x[2*i-1]
-        else:
-            x1[0] = x[0]
-    return direct_idft(x1).real
-
-
-class _TestFFTBase:
-    def setup_method(self):
-        self.cdt = None
-        self.rdt = None
-        np.random.seed(1234)
-
-    def test_definition(self):
-        x = np.array([1,2,3,4+1j,1,2,3,4+2j], dtype=self.cdt)
-        y = fft(x)
-        assert_equal(y.dtype, self.cdt)
-        y1 = direct_dft(x)
-        assert_array_almost_equal(y,y1)
-        x = np.array([1,2,3,4+0j,5], dtype=self.cdt)
-        assert_array_almost_equal(fft(x),direct_dft(x))
-
-    def test_n_argument_real(self):
-        x1 = np.array([1,2,3,4], dtype=self.rdt)
-        x2 = np.array([1,2,3,4], dtype=self.rdt)
-        y = fft([x1,x2],n=4)
-        assert_equal(y.dtype, self.cdt)
-        assert_equal(y.shape,(2,4))
-        assert_array_almost_equal(y[0],direct_dft(x1))
-        assert_array_almost_equal(y[1],direct_dft(x2))
-
-    def _test_n_argument_complex(self):
-        x1 = np.array([1,2,3,4+1j], dtype=self.cdt)
-        x2 = np.array([1,2,3,4+1j], dtype=self.cdt)
-        y = fft([x1,x2],n=4)
-        assert_equal(y.dtype, self.cdt)
-        assert_equal(y.shape,(2,4))
-        assert_array_almost_equal(y[0],direct_dft(x1))
-        assert_array_almost_equal(y[1],direct_dft(x2))
-
-    def test_invalid_sizes(self):
-        assert_raises(ValueError, fft, [])
-        assert_raises(ValueError, fft, [[1,1],[2,2]], -5)
-
-
-class TestDoubleFFT(_TestFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex128
-        self.rdt = np.float64
-
-
-class TestSingleFFT(_TestFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex64
-        self.rdt = np.float32
-
-    reason = ("single-precision FFT implementation is partially disabled, "
-              "until accuracy issues with large prime powers are resolved")
-
-    @pytest.mark.xfail(run=False, reason=reason)
-    def test_notice(self):
-        pass
-
-
-class TestFloat16FFT:
-
-    def test_1_argument_real(self):
-        x1 = np.array([1, 2, 3, 4], dtype=np.float16)
-        y = fft(x1, n=4)
-        assert_equal(y.dtype, np.complex64)
-        assert_equal(y.shape, (4, ))
-        assert_array_almost_equal(y, direct_dft(x1.astype(np.float32)))
-
-    def test_n_argument_real(self):
-        x1 = np.array([1, 2, 3, 4], dtype=np.float16)
-        x2 = np.array([1, 2, 3, 4], dtype=np.float16)
-        y = fft([x1, x2], n=4)
-        assert_equal(y.dtype, np.complex64)
-        assert_equal(y.shape, (2, 4))
-        assert_array_almost_equal(y[0], direct_dft(x1.astype(np.float32)))
-        assert_array_almost_equal(y[1], direct_dft(x2.astype(np.float32)))
-
-
-class _TestIFFTBase:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_definition(self):
-        x = np.array([1,2,3,4+1j,1,2,3,4+2j], self.cdt)
-        y = ifft(x)
-        y1 = direct_idft(x)
-        assert_equal(y.dtype, self.cdt)
-        assert_array_almost_equal(y,y1)
-
-        x = np.array([1,2,3,4+0j,5], self.cdt)
-        assert_array_almost_equal(ifft(x),direct_idft(x))
-
-    def test_definition_real(self):
-        x = np.array([1,2,3,4,1,2,3,4], self.rdt)
-        y = ifft(x)
-        assert_equal(y.dtype, self.cdt)
-        y1 = direct_idft(x)
-        assert_array_almost_equal(y,y1)
-
-        x = np.array([1,2,3,4,5], dtype=self.rdt)
-        assert_equal(y.dtype, self.cdt)
-        assert_array_almost_equal(ifft(x),direct_idft(x))
-
-    def test_random_complex(self):
-        for size in [1,51,111,100,200,64,128,256,1024]:
-            x = random([size]).astype(self.cdt)
-            x = random([size]).astype(self.cdt) + 1j*x
-            y1 = ifft(fft(x))
-            y2 = fft(ifft(x))
-            assert_equal(y1.dtype, self.cdt)
-            assert_equal(y2.dtype, self.cdt)
-            assert_array_almost_equal(y1, x)
-            assert_array_almost_equal(y2, x)
-
-    def test_random_real(self):
-        for size in [1,51,111,100,200,64,128,256,1024]:
-            x = random([size]).astype(self.rdt)
-            y1 = ifft(fft(x))
-            y2 = fft(ifft(x))
-            assert_equal(y1.dtype, self.cdt)
-            assert_equal(y2.dtype, self.cdt)
-            assert_array_almost_equal(y1, x)
-            assert_array_almost_equal(y2, x)
-
-    def test_size_accuracy(self):
-        # Sanity check for the accuracy for prime and non-prime sized inputs
-        if self.rdt == np.float32:
-            rtol = 1e-5
-        elif self.rdt == np.float64:
-            rtol = 1e-10
-
-        for size in LARGE_COMPOSITE_SIZES + LARGE_PRIME_SIZES:
-            np.random.seed(1234)
-            x = np.random.rand(size).astype(self.rdt)
-            y = ifft(fft(x))
-            _assert_close_in_norm(x, y, rtol, size, self.rdt)
-            y = fft(ifft(x))
-            _assert_close_in_norm(x, y, rtol, size, self.rdt)
-
-            x = (x + 1j*np.random.rand(size)).astype(self.cdt)
-            y = ifft(fft(x))
-            _assert_close_in_norm(x, y, rtol, size, self.rdt)
-            y = fft(ifft(x))
-            _assert_close_in_norm(x, y, rtol, size, self.rdt)
-
-    def test_invalid_sizes(self):
-        assert_raises(ValueError, ifft, [])
-        assert_raises(ValueError, ifft, [[1,1],[2,2]], -5)
-
-
-class TestDoubleIFFT(_TestIFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex128
-        self.rdt = np.float64
-
-
-class TestSingleIFFT(_TestIFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex64
-        self.rdt = np.float32
-
-
-class _TestRFFTBase:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_definition(self):
-        for t in [[1, 2, 3, 4, 1, 2, 3, 4], [1, 2, 3, 4, 1, 2, 3, 4, 5]]:
-            x = np.array(t, dtype=self.rdt)
-            y = rfft(x)
-            y1 = direct_rdft(x)
-            assert_array_almost_equal(y,y1)
-            assert_equal(y.dtype, self.rdt)
-
-    def test_invalid_sizes(self):
-        assert_raises(ValueError, rfft, [])
-        assert_raises(ValueError, rfft, [[1,1],[2,2]], -5)
-
-    # See gh-5790
-    class MockSeries:
-        def __init__(self, data):
-            self.data = np.asarray(data)
-
-        def __getattr__(self, item):
-            try:
-                return getattr(self.data, item)
-            except AttributeError as e:
-                raise AttributeError("'MockSeries' object "
-                                      f"has no attribute '{item}'") from e
-
-    def test_non_ndarray_with_dtype(self):
-        x = np.array([1., 2., 3., 4., 5.])
-        xs = _TestRFFTBase.MockSeries(x)
-
-        expected = [1, 2, 3, 4, 5]
-        rfft(xs)
-
-        # Data should not have been overwritten
-        assert_equal(x, expected)
-        assert_equal(xs.data, expected)
-
-    def test_complex_input(self):
-        assert_raises(TypeError, rfft, np.arange(4, dtype=np.complex64))
-
-
-class TestRFFTDouble(_TestRFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex128
-        self.rdt = np.float64
-
-
-class TestRFFTSingle(_TestRFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex64
-        self.rdt = np.float32
-
-
-class _TestIRFFTBase:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_definition(self):
-        x1 = [1,2,3,4,1,2,3,4]
-        x1_1 = [1,2+3j,4+1j,2+3j,4,2-3j,4-1j,2-3j]
-        x2 = [1,2,3,4,1,2,3,4,5]
-        x2_1 = [1,2+3j,4+1j,2+3j,4+5j,4-5j,2-3j,4-1j,2-3j]
-
-        def _test(x, xr):
-            y = irfft(np.array(x, dtype=self.rdt))
-            y1 = direct_irdft(x)
-            assert_equal(y.dtype, self.rdt)
-            assert_array_almost_equal(y,y1, decimal=self.ndec)
-            assert_array_almost_equal(y,ifft(xr), decimal=self.ndec)
-
-        _test(x1, x1_1)
-        _test(x2, x2_1)
-
-    def test_random_real(self):
-        for size in [1,51,111,100,200,64,128,256,1024]:
-            x = random([size]).astype(self.rdt)
-            y1 = irfft(rfft(x))
-            y2 = rfft(irfft(x))
-            assert_equal(y1.dtype, self.rdt)
-            assert_equal(y2.dtype, self.rdt)
-            assert_array_almost_equal(y1, x, decimal=self.ndec,
-                                       err_msg="size=%d" % size)
-            assert_array_almost_equal(y2, x, decimal=self.ndec,
-                                       err_msg="size=%d" % size)
-
-    def test_size_accuracy(self):
-        # Sanity check for the accuracy for prime and non-prime sized inputs
-        if self.rdt == np.float32:
-            rtol = 1e-5
-        elif self.rdt == np.float64:
-            rtol = 1e-10
-
-        for size in LARGE_COMPOSITE_SIZES + LARGE_PRIME_SIZES:
-            np.random.seed(1234)
-            x = np.random.rand(size).astype(self.rdt)
-            y = irfft(rfft(x))
-            _assert_close_in_norm(x, y, rtol, size, self.rdt)
-            y = rfft(irfft(x))
-            _assert_close_in_norm(x, y, rtol, size, self.rdt)
-
-    def test_invalid_sizes(self):
-        assert_raises(ValueError, irfft, [])
-        assert_raises(ValueError, irfft, [[1,1],[2,2]], -5)
-
-    def test_complex_input(self):
-        assert_raises(TypeError, irfft, np.arange(4, dtype=np.complex64))
-
-
-# self.ndec is bogus; we should have a assert_array_approx_equal for number of
-# significant digits
-
-class TestIRFFTDouble(_TestIRFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex128
-        self.rdt = np.float64
-        self.ndec = 14
-
-
-class TestIRFFTSingle(_TestIRFFTBase):
-    def setup_method(self):
-        self.cdt = np.complex64
-        self.rdt = np.float32
-        self.ndec = 5
-
-
-class Testfft2:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_regression_244(self):
-        """FFT returns wrong result with axes parameter."""
-        # fftn (and hence fft2) used to break when both axes and shape were
-        # used
-        x = numpy.ones((4, 4, 2))
-        y = fft2(x, shape=(8, 8), axes=(-3, -2))
-        y_r = numpy.fft.fftn(x, s=(8, 8), axes=(-3, -2))
-        assert_array_almost_equal(y, y_r)
-
-    def test_invalid_sizes(self):
-        assert_raises(ValueError, fft2, [[]])
-        assert_raises(ValueError, fft2, [[1, 1], [2, 2]], (4, -3))
-
-
-class TestFftnSingle:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_definition(self):
-        x = [[1, 2, 3],
-             [4, 5, 6],
-             [7, 8, 9]]
-        y = fftn(np.array(x, np.float32))
-        assert_(y.dtype == np.complex64,
-                msg="double precision output with single precision")
-
-        y_r = np.array(fftn(x), np.complex64)
-        assert_array_almost_equal_nulp(y, y_r)
-
-    @pytest.mark.parametrize('size', SMALL_COMPOSITE_SIZES + SMALL_PRIME_SIZES)
-    def test_size_accuracy_small(self, size):
-        x = np.random.rand(size, size) + 1j*np.random.rand(size, size)
-        y1 = fftn(x.real.astype(np.float32))
-        y2 = fftn(x.real.astype(np.float64)).astype(np.complex64)
-
-        assert_equal(y1.dtype, np.complex64)
-        assert_array_almost_equal_nulp(y1, y2, 2000)
-
-    @pytest.mark.parametrize('size', LARGE_COMPOSITE_SIZES + LARGE_PRIME_SIZES)
-    def test_size_accuracy_large(self, size):
-        x = np.random.rand(size, 3) + 1j*np.random.rand(size, 3)
-        y1 = fftn(x.real.astype(np.float32))
-        y2 = fftn(x.real.astype(np.float64)).astype(np.complex64)
-
-        assert_equal(y1.dtype, np.complex64)
-        assert_array_almost_equal_nulp(y1, y2, 2000)
-
-    def test_definition_float16(self):
-        x = [[1, 2, 3],
-             [4, 5, 6],
-             [7, 8, 9]]
-        y = fftn(np.array(x, np.float16))
-        assert_equal(y.dtype, np.complex64)
-        y_r = np.array(fftn(x), np.complex64)
-        assert_array_almost_equal_nulp(y, y_r)
-
-    @pytest.mark.parametrize('size', SMALL_COMPOSITE_SIZES + SMALL_PRIME_SIZES)
-    def test_float16_input_small(self, size):
-        x = np.random.rand(size, size) + 1j*np.random.rand(size, size)
-        y1 = fftn(x.real.astype(np.float16))
-        y2 = fftn(x.real.astype(np.float64)).astype(np.complex64)
-
-        assert_equal(y1.dtype, np.complex64)
-        assert_array_almost_equal_nulp(y1, y2, 5e5)
-
-    @pytest.mark.parametrize('size', LARGE_COMPOSITE_SIZES + LARGE_PRIME_SIZES)
-    def test_float16_input_large(self, size):
-        x = np.random.rand(size, 3) + 1j*np.random.rand(size, 3)
-        y1 = fftn(x.real.astype(np.float16))
-        y2 = fftn(x.real.astype(np.float64)).astype(np.complex64)
-
-        assert_equal(y1.dtype, np.complex64)
-        assert_array_almost_equal_nulp(y1, y2, 2e6)
-
-
-class TestFftn:
-    def setup_method(self):
-        np.random.seed(1234)
-
-    def test_definition(self):
-        x = [[1, 2, 3],
-             [4, 5, 6],
-             [7, 8, 9]]
-        y = fftn(x)
-        assert_array_almost_equal(y, direct_dftn(x))
-
-        x = random((20, 26))
-        assert_array_almost_equal(fftn(x), direct_dftn(x))
-
-        x = random((5, 4, 3, 20))
-        assert_array_almost_equal(fftn(x), direct_dftn(x))
-
-    def test_axes_argument(self):
-        # plane == ji_plane, x== kji_space
-        plane1 = [[1, 2, 3],
-                  [4, 5, 6],
-                  [7, 8, 9]]
-        plane2 = [[10, 11, 12],
-                  [13, 14, 15],
-                  [16, 17, 18]]
-        plane3 = [[19, 20, 21],
-                  [22, 23, 24],
-                  [25, 26, 27]]
-        ki_plane1 = [[1, 2, 3],
-                     [10, 11, 12],
-                     [19, 20, 21]]
-        ki_plane2 = [[4, 5, 6],
-                     [13, 14, 15],
-                     [22, 23, 24]]
-        ki_plane3 = [[7, 8, 9],
-                     [16, 17, 18],
-                     [25, 26, 27]]
-        jk_plane1 = [[1, 10, 19],
-                     [4, 13, 22],
-                     [7, 16, 25]]
-        jk_plane2 = [[2, 11, 20],
-                     [5, 14, 23],
-                     [8, 17, 26]]
-        jk_plane3 = [[3, 12, 21],
-                     [6, 15, 24],
-                     [9, 18, 27]]
-        kj_plane1 = [[1, 4, 7],
-                     [10, 13, 16], [19, 22, 25]]
-        kj_plane2 = [[2, 5, 8],
-                     [11, 14, 17], [20, 23, 26]]
-        kj_plane3 = [[3, 6, 9],
-                     [12, 15, 18], [21, 24, 27]]
-        ij_plane1 = [[1, 4, 7],
-                     [2, 5, 8],
-                     [3, 6, 9]]
-        ij_plane2 = [[10, 13, 16],
-                     [11, 14, 17],
-                     [12, 15, 18]]
-        ij_plane3 = [[19, 22, 25],
-                     [20, 23, 26],
-                     [21, 24, 27]]
-        ik_plane1 = [[1, 10, 19],
-                     [2, 11, 20],
-                     [3, 12, 21]]
-        ik_plane2 = [[4, 13, 22],
-                     [5, 14, 23],
-                     [6, 15, 24]]
-        ik_plane3 = [[7, 16, 25],
-                     [8, 17, 26],
-                     [9, 18, 27]]
-        ijk_space = [jk_plane1, jk_plane2, jk_plane3]
-        ikj_space = [kj_plane1, kj_plane2, kj_plane3]
-        jik_space = [ik_plane1, ik_plane2, ik_plane3]
-        jki_space = [ki_plane1, ki_plane2, ki_plane3]
-        kij_space = [ij_plane1, ij_plane2, ij_plane3]
-        x = array([plane1, plane2, plane3])
-
-        assert_array_almost_equal(fftn(x),
-                                  fftn(x, axes=(-3, -2, -1)))  # kji_space
-        assert_array_almost_equal(fftn(x), fftn(x, axes=(0, 1, 2)))
-        assert_array_almost_equal(fftn(x, axes=(0, 2)), fftn(x, axes=(0, -1)))
-        y = fftn(x, axes=(2, 1, 0))  # ijk_space
-        assert_array_almost_equal(swapaxes(y, -1, -3), fftn(ijk_space))
-        y = fftn(x, axes=(2, 0, 1))  # ikj_space
-        assert_array_almost_equal(swapaxes(swapaxes(y, -1, -3), -1, -2),
-                                  fftn(ikj_space))
-        y = fftn(x, axes=(1, 2, 0))  # jik_space
-        assert_array_almost_equal(swapaxes(swapaxes(y, -1, -3), -3, -2),
-                                  fftn(jik_space))
-        y = fftn(x, axes=(1, 0, 2))  # jki_space
-        assert_array_almost_equal(swapaxes(y, -2, -3), fftn(jki_space))
-        y = fftn(x, axes=(0, 2, 1))  # kij_space
-        assert_array_almost_equal(swapaxes(y, -2, -1), fftn(kij_space))
-
-        y = fftn(x, axes=(-2, -1))  # ji_plane
-        assert_array_almost_equal(fftn(plane1), y[0])
-        assert_array_almost_equal(fftn(plane2), y[1])
-        assert_array_almost_equal(fftn(plane3), y[2])
-
-        y = fftn(x, axes=(1, 2))  # ji_plane
-        assert_array_almost_equal(fftn(plane1), y[0])
-        assert_array_almost_equal(fftn(plane2), y[1])
-        assert_array_almost_equal(fftn(plane3), y[2])
-
-        y = fftn(x, axes=(-3, -2))  # kj_plane
-        assert_array_almost_equal(fftn(x[:, :, 0]), y[:, :, 0])
-        assert_array_almost_equal(fftn(x[:, :, 1]), y[:, :, 1])
-        assert_array_almost_equal(fftn(x[:, :, 2]), y[:, :, 2])
-
-        y = fftn(x, axes=(-3, -1))  # ki_plane
-        assert_array_almost_equal(fftn(x[:, 0, :]), y[:, 0, :])
-        assert_array_almost_equal(fftn(x[:, 1, :]), y[:, 1, :])
-        assert_array_almost_equal(fftn(x[:, 2, :]), y[:, 2, :])
-
-        y = fftn(x, axes=(-1, -2))  # ij_plane
-        assert_array_almost_equal(fftn(ij_plane1), swapaxes(y[0], -2, -1))
-        assert_array_almost_equal(fftn(ij_plane2), swapaxes(y[1], -2, -1))
-        assert_array_almost_equal(fftn(ij_plane3), swapaxes(y[2], -2, -1))
-
-        y = fftn(x, axes=(-1, -3))  # ik_plane
-        assert_array_almost_equal(fftn(ik_plane1),
-                                  swapaxes(y[:, 0, :], -1, -2))
-        assert_array_almost_equal(fftn(ik_plane2),
-                                  swapaxes(y[:, 1, :], -1, -2))
-        assert_array_almost_equal(fftn(ik_plane3),
-                                  swapaxes(y[:, 2, :], -1, -2))
-
-        y = fftn(x, axes=(-2, -3))  # jk_plane
-        assert_array_almost_equal(fftn(jk_plane1),
-                                  swapaxes(y[:, :, 0], -1, -2))
-        assert_array_almost_equal(fftn(jk_plane2),
-                                  swapaxes(y[:, :, 1], -1, -2))
-        assert_array_almost_equal(fftn(jk_plane3),
-                                  swapaxes(y[:, :, 2], -1, -2))
-
-        y = fftn(x, axes=(-1,))  # i_line
-        for i in range(3):
-            for j in range(3):
-                assert_array_almost_equal(fft(x[i, j, :]), y[i, j, :])
-        y = fftn(x, axes=(-2,))  # j_line
-        for i in range(3):
-            for j in range(3):
-                assert_array_almost_equal(fft(x[i, :, j]), y[i, :, j])
-        y = fftn(x, axes=(0,))  # k_line
-        for i in range(3):
-            for j in range(3):
-                assert_array_almost_equal(fft(x[:, i, j]), y[:, i, j])
-
-        y = fftn(x, axes=())  # point
-        assert_array_almost_equal(y, x)
-
-    def test_shape_argument(self):
-        small_x = [[1, 2, 3],
-                   [4, 5, 6]]
-        large_x1 = [[1, 2, 3, 0],
-                    [4, 5, 6, 0],
-                    [0, 0, 0, 0],
-                    [0, 0, 0, 0]]
-
-        y = fftn(small_x, shape=(4, 4))
-        assert_array_almost_equal(y, fftn(large_x1))
-
-        y = fftn(small_x, shape=(3, 4))
-        assert_array_almost_equal(y, fftn(large_x1[:-1]))
-
-    def test_shape_axes_argument(self):
-        small_x = [[1, 2, 3],
-                   [4, 5, 6],
-                   [7, 8, 9]]
-        large_x1 = array([[1, 2, 3, 0],
-                          [4, 5, 6, 0],
-                          [7, 8, 9, 0],
-                          [0, 0, 0, 0]])
-        y = fftn(small_x, shape=(4, 4), axes=(-2, -1))
-        assert_array_almost_equal(y, fftn(large_x1))
-        y = fftn(small_x, shape=(4, 4), axes=(-1, -2))
-
-        assert_array_almost_equal(y, swapaxes(
-            fftn(swapaxes(large_x1, -1, -2)), -1, -2))
-
-    def test_shape_axes_argument2(self):
-        # Change shape of the last axis
-        x = numpy.random.random((10, 5, 3, 7))
-        y = fftn(x, axes=(-1,), shape=(8,))
-        assert_array_almost_equal(y, fft(x, axis=-1, n=8))
-
-        # Change shape of an arbitrary axis which is not the last one
-        x = numpy.random.random((10, 5, 3, 7))
-        y = fftn(x, axes=(-2,), shape=(8,))
-        assert_array_almost_equal(y, fft(x, axis=-2, n=8))
-
-        # Change shape of axes: cf #244, where shape and axes were mixed up
-        x = numpy.random.random((4, 4, 2))
-        y = fftn(x, axes=(-3, -2), shape=(8, 8))
-        assert_array_almost_equal(y,
-                                  numpy.fft.fftn(x, axes=(-3, -2), s=(8, 8)))
-
-    def test_shape_argument_more(self):
-        x = zeros((4, 4, 2))
-        with assert_raises(ValueError,
-                           match="when given, axes and shape arguments"
-                           " have to be of the same length"):
-            fftn(x, shape=(8, 8, 2, 1))
-
-    def test_invalid_sizes(self):
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[1, 0\]\) specified"):
-            fftn([[]])
-
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[4, -3\]\) specified"):
-            fftn([[1, 1], [2, 2]], (4, -3))
-
-
-class TestIfftn:
-    dtype = None
-    cdtype = None
-
-    def setup_method(self):
-        np.random.seed(1234)
-
-    @pytest.mark.parametrize('dtype,cdtype,maxnlp',
-                             [(np.float64, np.complex128, 2000),
-                              (np.float32, np.complex64, 3500)])
-    def test_definition(self, dtype, cdtype, maxnlp):
-        x = np.array([[1, 2, 3],
-                      [4, 5, 6],
-                      [7, 8, 9]], dtype=dtype)
-        y = ifftn(x)
-        assert_equal(y.dtype, cdtype)
-        assert_array_almost_equal_nulp(y, direct_idftn(x), maxnlp)
-
-        x = random((20, 26))
-        assert_array_almost_equal_nulp(ifftn(x), direct_idftn(x), maxnlp)
-
-        x = random((5, 4, 3, 20))
-        assert_array_almost_equal_nulp(ifftn(x), direct_idftn(x), maxnlp)
-
-    @pytest.mark.parametrize('maxnlp', [2000, 3500])
-    @pytest.mark.parametrize('size', [1, 2, 51, 32, 64, 92])
-    def test_random_complex(self, maxnlp, size):
-        x = random([size, size]) + 1j*random([size, size])
-        assert_array_almost_equal_nulp(ifftn(fftn(x)), x, maxnlp)
-        assert_array_almost_equal_nulp(fftn(ifftn(x)), x, maxnlp)
-
-    def test_invalid_sizes(self):
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[1, 0\]\) specified"):
-            ifftn([[]])
-
-        with assert_raises(ValueError,
-                           match="invalid number of data points"
-                           r" \(\[4, -3\]\) specified"):
-            ifftn([[1, 1], [2, 2]], (4, -3))
-
-
-class FakeArray:
-    def __init__(self, data):
-        self._data = data
-        self.__array_interface__ = data.__array_interface__
-
-
-class FakeArray2:
-    def __init__(self, data):
-        self._data = data
-
-    def __array__(self, dtype=None, copy=None):
-        return self._data
-
-
-class TestOverwrite:
-    """Check input overwrite behavior of the FFT functions."""
-
-    real_dtypes = (np.float32, np.float64)
-    dtypes = real_dtypes + (np.complex64, np.complex128)
-    fftsizes = [8, 16, 32]
-
-    def _check(self, x, routine, fftsize, axis, overwrite_x):
-        x2 = x.copy()
-        for fake in [lambda x: x, FakeArray, FakeArray2]:
-            routine(fake(x2), fftsize, axis, overwrite_x=overwrite_x)
-
-            sig = "{}({}{!r}, {!r}, axis={!r}, overwrite_x={!r})".format(
-                routine.__name__, x.dtype, x.shape, fftsize, axis, overwrite_x)
-            if not overwrite_x:
-                assert_equal(x2, x, err_msg="spurious overwrite in %s" % sig)
-
-    def _check_1d(self, routine, dtype, shape, axis, overwritable_dtypes,
-                  fftsize, overwrite_x):
-        np.random.seed(1234)
-        if np.issubdtype(dtype, np.complexfloating):
-            data = np.random.randn(*shape) + 1j*np.random.randn(*shape)
-        else:
-            data = np.random.randn(*shape)
-        data = data.astype(dtype)
-
-        self._check(data, routine, fftsize, axis,
-                    overwrite_x=overwrite_x)
-
-    @pytest.mark.parametrize('dtype', dtypes)
-    @pytest.mark.parametrize('fftsize', fftsizes)
-    @pytest.mark.parametrize('overwrite_x', [True, False])
-    @pytest.mark.parametrize('shape,axes', [((16,), -1),
-                                            ((16, 2), 0),
-                                            ((2, 16), 1)])
-    def test_fft_ifft(self, dtype, fftsize, overwrite_x, shape, axes):
-        overwritable = (np.complex128, np.complex64)
-        self._check_1d(fft, dtype, shape, axes, overwritable,
-                       fftsize, overwrite_x)
-        self._check_1d(ifft, dtype, shape, axes, overwritable,
-                       fftsize, overwrite_x)
-
-    @pytest.mark.parametrize('dtype', real_dtypes)
-    @pytest.mark.parametrize('fftsize', fftsizes)
-    @pytest.mark.parametrize('overwrite_x', [True, False])
-    @pytest.mark.parametrize('shape,axes', [((16,), -1),
-                                            ((16, 2), 0),
-                                            ((2, 16), 1)])
-    def test_rfft_irfft(self, dtype, fftsize, overwrite_x, shape, axes):
-        overwritable = self.real_dtypes
-        self._check_1d(irfft, dtype, shape, axes, overwritable,
-                       fftsize, overwrite_x)
-        self._check_1d(rfft, dtype, shape, axes, overwritable,
-                       fftsize, overwrite_x)
-
-    def _check_nd_one(self, routine, dtype, shape, axes, overwritable_dtypes,
-                      overwrite_x):
-        np.random.seed(1234)
-        if np.issubdtype(dtype, np.complexfloating):
-            data = np.random.randn(*shape) + 1j*np.random.randn(*shape)
-        else:
-            data = np.random.randn(*shape)
-        data = data.astype(dtype)
-
-        def fftshape_iter(shp):
-            if len(shp) <= 0:
-                yield ()
-            else:
-                for j in (shp[0]//2, shp[0], shp[0]*2):
-                    for rest in fftshape_iter(shp[1:]):
-                        yield (j,) + rest
-
-        if axes is None:
-            part_shape = shape
-        else:
-            part_shape = tuple(np.take(shape, axes))
-
-        for fftshape in fftshape_iter(part_shape):
-            self._check(data, routine, fftshape, axes,
-                        overwrite_x=overwrite_x)
-            if data.ndim > 1:
-                self._check(data.T, routine, fftshape, axes,
-                            overwrite_x=overwrite_x)
-
-    @pytest.mark.parametrize('dtype', dtypes)
-    @pytest.mark.parametrize('overwrite_x', [True, False])
-    @pytest.mark.parametrize('shape,axes', [((16,), None),
-                                            ((16,), (0,)),
-                                            ((16, 2), (0,)),
-                                            ((2, 16), (1,)),
-                                            ((8, 16), None),
-                                            ((8, 16), (0, 1)),
-                                            ((8, 16, 2), (0, 1)),
-                                            ((8, 16, 2), (1, 2)),
-                                            ((8, 16, 2), (0,)),
-                                            ((8, 16, 2), (1,)),
-                                            ((8, 16, 2), (2,)),
-                                            ((8, 16, 2), None),
-                                            ((8, 16, 2), (0, 1, 2))])
-    def test_fftn_ifftn(self, dtype, overwrite_x, shape, axes):
-        overwritable = (np.complex128, np.complex64)
-        self._check_nd_one(fftn, dtype, shape, axes, overwritable,
-                           overwrite_x)
-        self._check_nd_one(ifftn, dtype, shape, axes, overwritable,
-                           overwrite_x)
-
-
-@pytest.mark.parametrize('func', [fftn, ifftn, fft2])
-def test_shape_axes_ndarray(func):
-    # Test fftn and ifftn work with NumPy arrays for shape and axes arguments
-    # Regression test for gh-13342
-    a = np.random.rand(10, 10)
-
-    expect = func(a, shape=(5, 5))
-    actual = func(a, shape=np.array([5, 5]))
-    assert_equal(expect, actual)
-
-    expect = func(a, axes=(-1,))
-    actual = func(a, axes=np.array([-1,]))
-    assert_equal(expect, actual)
-
-    expect = func(a, shape=(4, 7), axes=(1, 0))
-    actual = func(a, shape=np.array([4, 7]), axes=np.array([1, 0]))
-    assert_equal(expect, actual)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_helper.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_helper.py
deleted file mode 100644
index 5e7be04f3c0291502b50b101db82d299aadc7772..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_helper.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# Created by Pearu Peterson, September 2002
-
-__usage__ = """
-Build fftpack:
-  python setup_fftpack.py build
-Run tests if scipy is installed:
-  python -c 'import scipy;scipy.fftpack.test()'
-Run tests if fftpack is not installed:
-  python tests/test_helper.py []
-"""
-
-from numpy.testing import assert_array_almost_equal
-from scipy.fftpack import fftshift, ifftshift, fftfreq, rfftfreq
-
-from numpy import pi, random
-
-class TestFFTShift:
-
-    def test_definition(self):
-        x = [0,1,2,3,4,-4,-3,-2,-1]
-        y = [-4,-3,-2,-1,0,1,2,3,4]
-        assert_array_almost_equal(fftshift(x),y)
-        assert_array_almost_equal(ifftshift(y),x)
-        x = [0,1,2,3,4,-5,-4,-3,-2,-1]
-        y = [-5,-4,-3,-2,-1,0,1,2,3,4]
-        assert_array_almost_equal(fftshift(x),y)
-        assert_array_almost_equal(ifftshift(y),x)
-
-    def test_inverse(self):
-        for n in [1,4,9,100,211]:
-            x = random.random((n,))
-            assert_array_almost_equal(ifftshift(fftshift(x)),x)
-
-
-class TestFFTFreq:
-
-    def test_definition(self):
-        x = [0,1,2,3,4,-4,-3,-2,-1]
-        assert_array_almost_equal(9*fftfreq(9),x)
-        assert_array_almost_equal(9*pi*fftfreq(9,pi),x)
-        x = [0,1,2,3,4,-5,-4,-3,-2,-1]
-        assert_array_almost_equal(10*fftfreq(10),x)
-        assert_array_almost_equal(10*pi*fftfreq(10,pi),x)
-
-
-class TestRFFTFreq:
-
-    def test_definition(self):
-        x = [0,1,1,2,2,3,3,4,4]
-        assert_array_almost_equal(9*rfftfreq(9),x)
-        assert_array_almost_equal(9*pi*rfftfreq(9,pi),x)
-        x = [0,1,1,2,2,3,3,4,4,5]
-        assert_array_almost_equal(10*rfftfreq(10),x)
-        assert_array_almost_equal(10*pi*rfftfreq(10,pi),x)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_import.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_import.py
deleted file mode 100644
index e71aec9bd07cd4ef486b7e74b9589b6f1634d629..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_import.py
+++ /dev/null
@@ -1,33 +0,0 @@
-"""Test possibility of patching fftpack with pyfftw.
-
-No module source outside of scipy.fftpack should contain an import of
-the form `from scipy.fftpack import ...`, so that a simple replacement
-of scipy.fftpack by the corresponding fftw interface completely swaps
-the two FFT implementations.
-
-Because this simply inspects source files, we only need to run the test
-on one version of Python.
-"""
-
-
-from pathlib import Path
-import re
-import tokenize
-import pytest
-from numpy.testing import assert_
-import scipy
-
-class TestFFTPackImport:
-    @pytest.mark.slow
-    def test_fftpack_import(self):
-        base = Path(scipy.__file__).parent
-        regexp = r"\s*from.+\.fftpack import .*\n"
-        for path in base.rglob("*.py"):
-            if base / "fftpack" in path.parents:
-                continue
-            # use tokenize to auto-detect encoding on systems where no
-            # default encoding is defined (e.g., LANG='C')
-            with tokenize.open(str(path)) as file:
-                assert_(all(not re.fullmatch(regexp, line)
-                            for line in file),
-                        f"{path} contains an import from fftpack")
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_pseudo_diffs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_pseudo_diffs.py
deleted file mode 100644
index cec131caced4ccf9cf7c34255f7693769e2ebb12..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_pseudo_diffs.py
+++ /dev/null
@@ -1,380 +0,0 @@
-# Created by Pearu Peterson, September 2002
-
-__usage__ = """
-Build fftpack:
-  python setup_fftpack.py build
-Run tests if scipy is installed:
-  python -c 'import scipy;scipy.fftpack.test()'
-Run tests if fftpack is not installed:
-  python tests/test_pseudo_diffs.py []
-"""
-
-from numpy.testing import (assert_equal, assert_almost_equal,
-                           assert_array_almost_equal)
-from scipy.fftpack import (diff, fft, ifft, tilbert, itilbert, hilbert,
-                           ihilbert, shift, fftfreq, cs_diff, sc_diff,
-                           ss_diff, cc_diff)
-
-import numpy as np
-from numpy import arange, sin, cos, pi, exp, tanh, sum, sign
-from numpy.random import random
-
-
-def direct_diff(x,k=1,period=None):
-    fx = fft(x)
-    n = len(fx)
-    if period is None:
-        period = 2*pi
-    w = fftfreq(n)*2j*pi/period*n
-    if k < 0:
-        w = 1 / w**k
-        w[0] = 0.0
-    else:
-        w = w**k
-    if n > 2000:
-        w[250:n-250] = 0.0
-    return ifft(w*fx).real
-
-
-def direct_tilbert(x,h=1,period=None):
-    fx = fft(x)
-    n = len(fx)
-    if period is None:
-        period = 2*pi
-    w = fftfreq(n)*h*2*pi/period*n
-    w[0] = 1
-    w = 1j/tanh(w)
-    w[0] = 0j
-    return ifft(w*fx)
-
-
-def direct_itilbert(x,h=1,period=None):
-    fx = fft(x)
-    n = len(fx)
-    if period is None:
-        period = 2*pi
-    w = fftfreq(n)*h*2*pi/period*n
-    w = -1j*tanh(w)
-    return ifft(w*fx)
-
-
-def direct_hilbert(x):
-    fx = fft(x)
-    n = len(fx)
-    w = fftfreq(n)*n
-    w = 1j*sign(w)
-    return ifft(w*fx)
-
-
-def direct_ihilbert(x):
-    return -direct_hilbert(x)
-
-
-def direct_shift(x,a,period=None):
-    n = len(x)
-    if period is None:
-        k = fftfreq(n)*1j*n
-    else:
-        k = fftfreq(n)*2j*pi/period*n
-    return ifft(fft(x)*exp(k*a)).real
-
-
-class TestDiff:
-
-    def test_definition(self):
-        for n in [16,17,64,127,32]:
-            x = arange(n)*2*pi/n
-            assert_array_almost_equal(diff(sin(x)),direct_diff(sin(x)))
-            assert_array_almost_equal(diff(sin(x),2),direct_diff(sin(x),2))
-            assert_array_almost_equal(diff(sin(x),3),direct_diff(sin(x),3))
-            assert_array_almost_equal(diff(sin(x),4),direct_diff(sin(x),4))
-            assert_array_almost_equal(diff(sin(x),5),direct_diff(sin(x),5))
-            assert_array_almost_equal(diff(sin(2*x),3),direct_diff(sin(2*x),3))
-            assert_array_almost_equal(diff(sin(2*x),4),direct_diff(sin(2*x),4))
-            assert_array_almost_equal(diff(cos(x)),direct_diff(cos(x)))
-            assert_array_almost_equal(diff(cos(x),2),direct_diff(cos(x),2))
-            assert_array_almost_equal(diff(cos(x),3),direct_diff(cos(x),3))
-            assert_array_almost_equal(diff(cos(x),4),direct_diff(cos(x),4))
-            assert_array_almost_equal(diff(cos(2*x)),direct_diff(cos(2*x)))
-            assert_array_almost_equal(diff(sin(x*n/8)),direct_diff(sin(x*n/8)))
-            assert_array_almost_equal(diff(cos(x*n/8)),direct_diff(cos(x*n/8)))
-            for k in range(5):
-                assert_array_almost_equal(diff(sin(4*x),k),direct_diff(sin(4*x),k))
-                assert_array_almost_equal(diff(cos(4*x),k),direct_diff(cos(4*x),k))
-
-    def test_period(self):
-        for n in [17,64]:
-            x = arange(n)/float(n)
-            assert_array_almost_equal(diff(sin(2*pi*x),period=1),
-                                      2*pi*cos(2*pi*x))
-            assert_array_almost_equal(diff(sin(2*pi*x),3,period=1),
-                                      -(2*pi)**3*cos(2*pi*x))
-
-    def test_sin(self):
-        for n in [32,64,77]:
-            x = arange(n)*2*pi/n
-            assert_array_almost_equal(diff(sin(x)),cos(x))
-            assert_array_almost_equal(diff(cos(x)),-sin(x))
-            assert_array_almost_equal(diff(sin(x),2),-sin(x))
-            assert_array_almost_equal(diff(sin(x),4),sin(x))
-            assert_array_almost_equal(diff(sin(4*x)),4*cos(4*x))
-            assert_array_almost_equal(diff(sin(sin(x))),cos(x)*cos(sin(x)))
-
-    def test_expr(self):
-        for n in [64,77,100,128,256,512,1024,2048,4096,8192][:5]:
-            x = arange(n)*2*pi/n
-            f = sin(x)*cos(4*x)+exp(sin(3*x))
-            df = cos(x)*cos(4*x)-4*sin(x)*sin(4*x)+3*cos(3*x)*exp(sin(3*x))
-            ddf = -17*sin(x)*cos(4*x)-8*cos(x)*sin(4*x)\
-                 - 9*sin(3*x)*exp(sin(3*x))+9*cos(3*x)**2*exp(sin(3*x))
-            d1 = diff(f)
-            assert_array_almost_equal(d1,df)
-            assert_array_almost_equal(diff(df),ddf)
-            assert_array_almost_equal(diff(f,2),ddf)
-            assert_array_almost_equal(diff(ddf,-1),df)
-
-    def test_expr_large(self):
-        for n in [2048,4096]:
-            x = arange(n)*2*pi/n
-            f = sin(x)*cos(4*x)+exp(sin(3*x))
-            df = cos(x)*cos(4*x)-4*sin(x)*sin(4*x)+3*cos(3*x)*exp(sin(3*x))
-            ddf = -17*sin(x)*cos(4*x)-8*cos(x)*sin(4*x)\
-                 - 9*sin(3*x)*exp(sin(3*x))+9*cos(3*x)**2*exp(sin(3*x))
-            assert_array_almost_equal(diff(f),df)
-            assert_array_almost_equal(diff(df),ddf)
-            assert_array_almost_equal(diff(ddf,-1),df)
-            assert_array_almost_equal(diff(f,2),ddf)
-
-    def test_int(self):
-        n = 64
-        x = arange(n)*2*pi/n
-        assert_array_almost_equal(diff(sin(x),-1),-cos(x))
-        assert_array_almost_equal(diff(sin(x),-2),-sin(x))
-        assert_array_almost_equal(diff(sin(x),-4),sin(x))
-        assert_array_almost_equal(diff(2*cos(2*x),-1),sin(2*x))
-
-    def test_random_even(self):
-        for k in [0,2,4,6]:
-            for n in [60,32,64,56,55]:
-                f = random((n,))
-                af = sum(f,axis=0)/n
-                f = f-af
-                # zeroing Nyquist mode:
-                f = diff(diff(f,1),-1)
-                assert_almost_equal(sum(f,axis=0),0.0)
-                assert_array_almost_equal(diff(diff(f,k),-k),f)
-                assert_array_almost_equal(diff(diff(f,-k),k),f)
-
-    def test_random_odd(self):
-        for k in [0,1,2,3,4,5,6]:
-            for n in [33,65,55]:
-                f = random((n,))
-                af = sum(f,axis=0)/n
-                f = f-af
-                assert_almost_equal(sum(f,axis=0),0.0)
-                assert_array_almost_equal(diff(diff(f,k),-k),f)
-                assert_array_almost_equal(diff(diff(f,-k),k),f)
-
-    def test_zero_nyquist(self):
-        for k in [0,1,2,3,4,5,6]:
-            for n in [32,33,64,56,55]:
-                f = random((n,))
-                af = sum(f,axis=0)/n
-                f = f-af
-                # zeroing Nyquist mode:
-                f = diff(diff(f,1),-1)
-                assert_almost_equal(sum(f,axis=0),0.0)
-                assert_array_almost_equal(diff(diff(f,k),-k),f)
-                assert_array_almost_equal(diff(diff(f,-k),k),f)
-
-
-class TestTilbert:
-
-    def test_definition(self):
-        for h in [0.1,0.5,1,5.5,10]:
-            for n in [16,17,64,127]:
-                x = arange(n)*2*pi/n
-                y = tilbert(sin(x),h)
-                y1 = direct_tilbert(sin(x),h)
-                assert_array_almost_equal(y,y1)
-                assert_array_almost_equal(tilbert(sin(x),h),
-                                          direct_tilbert(sin(x),h))
-                assert_array_almost_equal(tilbert(sin(2*x),h),
-                                          direct_tilbert(sin(2*x),h))
-
-    def test_random_even(self):
-        for h in [0.1,0.5,1,5.5,10]:
-            for n in [32,64,56]:
-                f = random((n,))
-                af = sum(f,axis=0)/n
-                f = f-af
-                assert_almost_equal(sum(f,axis=0),0.0)
-                assert_array_almost_equal(direct_tilbert(direct_itilbert(f,h),h),f)
-
-    def test_random_odd(self):
-        for h in [0.1,0.5,1,5.5,10]:
-            for n in [33,65,55]:
-                f = random((n,))
-                af = sum(f,axis=0)/n
-                f = f-af
-                assert_almost_equal(sum(f,axis=0),0.0)
-                assert_array_almost_equal(itilbert(tilbert(f,h),h),f)
-                assert_array_almost_equal(tilbert(itilbert(f,h),h),f)
-
-
-class TestITilbert:
-
-    def test_definition(self):
-        for h in [0.1,0.5,1,5.5,10]:
-            for n in [16,17,64,127]:
-                x = arange(n)*2*pi/n
-                y = itilbert(sin(x),h)
-                y1 = direct_itilbert(sin(x),h)
-                assert_array_almost_equal(y,y1)
-                assert_array_almost_equal(itilbert(sin(x),h),
-                                          direct_itilbert(sin(x),h))
-                assert_array_almost_equal(itilbert(sin(2*x),h),
-                                          direct_itilbert(sin(2*x),h))
-
-
-class TestHilbert:
-
-    def test_definition(self):
-        for n in [16,17,64,127]:
-            x = arange(n)*2*pi/n
-            y = hilbert(sin(x))
-            y1 = direct_hilbert(sin(x))
-            assert_array_almost_equal(y,y1)
-            assert_array_almost_equal(hilbert(sin(2*x)),
-                                      direct_hilbert(sin(2*x)))
-
-    def test_tilbert_relation(self):
-        for n in [16,17,64,127]:
-            x = arange(n)*2*pi/n
-            f = sin(x)+cos(2*x)*sin(x)
-            y = hilbert(f)
-            y1 = direct_hilbert(f)
-            assert_array_almost_equal(y,y1)
-            y2 = tilbert(f,h=10)
-            assert_array_almost_equal(y,y2)
-
-    def test_random_odd(self):
-        for n in [33,65,55]:
-            f = random((n,))
-            af = sum(f,axis=0)/n
-            f = f-af
-            assert_almost_equal(sum(f,axis=0),0.0)
-            assert_array_almost_equal(ihilbert(hilbert(f)),f)
-            assert_array_almost_equal(hilbert(ihilbert(f)),f)
-
-    def test_random_even(self):
-        for n in [32,64,56]:
-            f = random((n,))
-            af = sum(f,axis=0)/n
-            f = f-af
-            # zeroing Nyquist mode:
-            f = diff(diff(f,1),-1)
-            assert_almost_equal(sum(f,axis=0),0.0)
-            assert_array_almost_equal(direct_hilbert(direct_ihilbert(f)),f)
-            assert_array_almost_equal(hilbert(ihilbert(f)),f)
-
-
-class TestIHilbert:
-
-    def test_definition(self):
-        for n in [16,17,64,127]:
-            x = arange(n)*2*pi/n
-            y = ihilbert(sin(x))
-            y1 = direct_ihilbert(sin(x))
-            assert_array_almost_equal(y,y1)
-            assert_array_almost_equal(ihilbert(sin(2*x)),
-                                      direct_ihilbert(sin(2*x)))
-
-    def test_itilbert_relation(self):
-        for n in [16,17,64,127]:
-            x = arange(n)*2*pi/n
-            f = sin(x)+cos(2*x)*sin(x)
-            y = ihilbert(f)
-            y1 = direct_ihilbert(f)
-            assert_array_almost_equal(y,y1)
-            y2 = itilbert(f,h=10)
-            assert_array_almost_equal(y,y2)
-
-
-class TestShift:
-
-    def test_definition(self):
-        for n in [18,17,64,127,32,2048,256]:
-            x = arange(n)*2*pi/n
-            for a in [0.1,3]:
-                assert_array_almost_equal(shift(sin(x),a),direct_shift(sin(x),a))
-                assert_array_almost_equal(shift(sin(x),a),sin(x+a))
-                assert_array_almost_equal(shift(cos(x),a),cos(x+a))
-                assert_array_almost_equal(shift(cos(2*x)+sin(x),a),
-                                          cos(2*(x+a))+sin(x+a))
-                assert_array_almost_equal(shift(exp(sin(x)),a),exp(sin(x+a)))
-            assert_array_almost_equal(shift(sin(x),2*pi),sin(x))
-            assert_array_almost_equal(shift(sin(x),pi),-sin(x))
-            assert_array_almost_equal(shift(sin(x),pi/2),cos(x))
-
-
-class TestOverwrite:
-    """Check input overwrite behavior """
-
-    real_dtypes = (np.float32, np.float64)
-    dtypes = real_dtypes + (np.complex64, np.complex128)
-
-    def _check(self, x, routine, *args, **kwargs):
-        x2 = x.copy()
-        routine(x2, *args, **kwargs)
-        sig = routine.__name__
-        if args:
-            sig += repr(args)
-        if kwargs:
-            sig += repr(kwargs)
-        assert_equal(x2, x, err_msg="spurious overwrite in %s" % sig)
-
-    def _check_1d(self, routine, dtype, shape, *args, **kwargs):
-        np.random.seed(1234)
-        if np.issubdtype(dtype, np.complexfloating):
-            data = np.random.randn(*shape) + 1j*np.random.randn(*shape)
-        else:
-            data = np.random.randn(*shape)
-        data = data.astype(dtype)
-        self._check(data, routine, *args, **kwargs)
-
-    def test_diff(self):
-        for dtype in self.dtypes:
-            self._check_1d(diff, dtype, (16,))
-
-    def test_tilbert(self):
-        for dtype in self.dtypes:
-            self._check_1d(tilbert, dtype, (16,), 1.6)
-
-    def test_itilbert(self):
-        for dtype in self.dtypes:
-            self._check_1d(itilbert, dtype, (16,), 1.6)
-
-    def test_hilbert(self):
-        for dtype in self.dtypes:
-            self._check_1d(hilbert, dtype, (16,))
-
-    def test_cs_diff(self):
-        for dtype in self.dtypes:
-            self._check_1d(cs_diff, dtype, (16,), 1.0, 4.0)
-
-    def test_sc_diff(self):
-        for dtype in self.dtypes:
-            self._check_1d(sc_diff, dtype, (16,), 1.0, 4.0)
-
-    def test_ss_diff(self):
-        for dtype in self.dtypes:
-            self._check_1d(ss_diff, dtype, (16,), 1.0, 4.0)
-
-    def test_cc_diff(self):
-        for dtype in self.dtypes:
-            self._check_1d(cc_diff, dtype, (16,), 1.0, 4.0)
-
-    def test_shift(self):
-        for dtype in self.dtypes:
-            self._check_1d(shift, dtype, (16,), 1.0)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_real_transforms.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_real_transforms.py
deleted file mode 100644
index 6108d460c7864bdc5dd9425bddf93576fac5b39d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/fftpack/tests/test_real_transforms.py
+++ /dev/null
@@ -1,815 +0,0 @@
-from os.path import join, dirname
-
-import numpy as np
-from numpy.testing import assert_array_almost_equal, assert_equal
-import pytest
-from pytest import raises as assert_raises
-
-from scipy.fftpack._realtransforms import (
-    dct, idct, dst, idst, dctn, idctn, dstn, idstn)
-
-# Matlab reference data
-MDATA = np.load(join(dirname(__file__), 'test.npz'))
-X = [MDATA['x%d' % i] for i in range(8)]
-Y = [MDATA['y%d' % i] for i in range(8)]
-
-# FFTW reference data: the data are organized as follows:
-#    * SIZES is an array containing all available sizes
-#    * for every type (1, 2, 3, 4) and every size, the array dct_type_size
-#    contains the output of the DCT applied to the input np.linspace(0, size-1,
-#    size)
-FFTWDATA_DOUBLE = np.load(join(dirname(__file__), 'fftw_double_ref.npz'))
-FFTWDATA_SINGLE = np.load(join(dirname(__file__), 'fftw_single_ref.npz'))
-FFTWDATA_SIZES = FFTWDATA_DOUBLE['sizes']
-
-
-def fftw_dct_ref(type, size, dt):
-    x = np.linspace(0, size-1, size).astype(dt)
-    dt = np.result_type(np.float32, dt)
-    if dt == np.float64:
-        data = FFTWDATA_DOUBLE
-    elif dt == np.float32:
-        data = FFTWDATA_SINGLE
-    else:
-        raise ValueError()
-    y = (data['dct_%d_%d' % (type, size)]).astype(dt)
-    return x, y, dt
-
-
-def fftw_dst_ref(type, size, dt):
-    x = np.linspace(0, size-1, size).astype(dt)
-    dt = np.result_type(np.float32, dt)
-    if dt == np.float64:
-        data = FFTWDATA_DOUBLE
-    elif dt == np.float32:
-        data = FFTWDATA_SINGLE
-    else:
-        raise ValueError()
-    y = (data['dst_%d_%d' % (type, size)]).astype(dt)
-    return x, y, dt
-
-
-def dct_2d_ref(x, **kwargs):
-    """Calculate reference values for testing dct2."""
-    x = np.array(x, copy=True)
-    for row in range(x.shape[0]):
-        x[row, :] = dct(x[row, :], **kwargs)
-    for col in range(x.shape[1]):
-        x[:, col] = dct(x[:, col], **kwargs)
-    return x
-
-
-def idct_2d_ref(x, **kwargs):
-    """Calculate reference values for testing idct2."""
-    x = np.array(x, copy=True)
-    for row in range(x.shape[0]):
-        x[row, :] = idct(x[row, :], **kwargs)
-    for col in range(x.shape[1]):
-        x[:, col] = idct(x[:, col], **kwargs)
-    return x
-
-
-def dst_2d_ref(x, **kwargs):
-    """Calculate reference values for testing dst2."""
-    x = np.array(x, copy=True)
-    for row in range(x.shape[0]):
-        x[row, :] = dst(x[row, :], **kwargs)
-    for col in range(x.shape[1]):
-        x[:, col] = dst(x[:, col], **kwargs)
-    return x
-
-
-def idst_2d_ref(x, **kwargs):
-    """Calculate reference values for testing idst2."""
-    x = np.array(x, copy=True)
-    for row in range(x.shape[0]):
-        x[row, :] = idst(x[row, :], **kwargs)
-    for col in range(x.shape[1]):
-        x[:, col] = idst(x[:, col], **kwargs)
-    return x
-
-
-def naive_dct1(x, norm=None):
-    """Calculate textbook definition version of DCT-I."""
-    x = np.array(x, copy=True)
-    N = len(x)
-    M = N-1
-    y = np.zeros(N)
-    m0, m = 1, 2
-    if norm == 'ortho':
-        m0 = np.sqrt(1.0/M)
-        m = np.sqrt(2.0/M)
-    for k in range(N):
-        for n in range(1, N-1):
-            y[k] += m*x[n]*np.cos(np.pi*n*k/M)
-        y[k] += m0 * x[0]
-        y[k] += m0 * x[N-1] * (1 if k % 2 == 0 else -1)
-    if norm == 'ortho':
-        y[0] *= 1/np.sqrt(2)
-        y[N-1] *= 1/np.sqrt(2)
-    return y
-
-
-def naive_dst1(x, norm=None):
-    """Calculate textbook definition version  of DST-I."""
-    x = np.array(x, copy=True)
-    N = len(x)
-    M = N+1
-    y = np.zeros(N)
-    for k in range(N):
-        for n in range(N):
-            y[k] += 2*x[n]*np.sin(np.pi*(n+1.0)*(k+1.0)/M)
-    if norm == 'ortho':
-        y *= np.sqrt(0.5/M)
-    return y
-
-
-def naive_dct4(x, norm=None):
-    """Calculate textbook definition version of DCT-IV."""
-    x = np.array(x, copy=True)
-    N = len(x)
-    y = np.zeros(N)
-    for k in range(N):
-        for n in range(N):
-            y[k] += x[n]*np.cos(np.pi*(n+0.5)*(k+0.5)/(N))
-    if norm == 'ortho':
-        y *= np.sqrt(2.0/N)
-    else:
-        y *= 2
-    return y
-
-
-def naive_dst4(x, norm=None):
-    """Calculate textbook definition version of DST-IV."""
-    x = np.array(x, copy=True)
-    N = len(x)
-    y = np.zeros(N)
-    for k in range(N):
-        for n in range(N):
-            y[k] += x[n]*np.sin(np.pi*(n+0.5)*(k+0.5)/(N))
-    if norm == 'ortho':
-        y *= np.sqrt(2.0/N)
-    else:
-        y *= 2
-    return y
-
-
-class TestComplex:
-    def test_dct_complex64(self):
-        y = dct(1j*np.arange(5, dtype=np.complex64))
-        x = 1j*dct(np.arange(5))
-        assert_array_almost_equal(x, y)
-
-    def test_dct_complex(self):
-        y = dct(np.arange(5)*1j)
-        x = 1j*dct(np.arange(5))
-        assert_array_almost_equal(x, y)
-
-    def test_idct_complex(self):
-        y = idct(np.arange(5)*1j)
-        x = 1j*idct(np.arange(5))
-        assert_array_almost_equal(x, y)
-
-    def test_dst_complex64(self):
-        y = dst(np.arange(5, dtype=np.complex64)*1j)
-        x = 1j*dst(np.arange(5))
-        assert_array_almost_equal(x, y)
-
-    def test_dst_complex(self):
-        y = dst(np.arange(5)*1j)
-        x = 1j*dst(np.arange(5))
-        assert_array_almost_equal(x, y)
-
-    def test_idst_complex(self):
-        y = idst(np.arange(5)*1j)
-        x = 1j*idst(np.arange(5))
-        assert_array_almost_equal(x, y)
-
-
-class _TestDCTBase:
-    def setup_method(self):
-        self.rdt = None
-        self.dec = 14
-        self.type = None
-
-    def test_definition(self):
-        for i in FFTWDATA_SIZES:
-            x, yr, dt = fftw_dct_ref(self.type, i, self.rdt)
-            y = dct(x, type=self.type)
-            assert_equal(y.dtype, dt)
-            # XXX: we divide by np.max(y) because the tests fail otherwise. We
-            # should really use something like assert_array_approx_equal. The
-            # difference is due to fftw using a better algorithm w.r.t error
-            # propagation compared to the ones from fftpack.
-            assert_array_almost_equal(y / np.max(y), yr / np.max(y), decimal=self.dec,
-                    err_msg="Size %d failed" % i)
-
-    def test_axis(self):
-        nt = 2
-        for i in [7, 8, 9, 16, 32, 64]:
-            x = np.random.randn(nt, i)
-            y = dct(x, type=self.type)
-            for j in range(nt):
-                assert_array_almost_equal(y[j], dct(x[j], type=self.type),
-                        decimal=self.dec)
-
-            x = x.T
-            y = dct(x, axis=0, type=self.type)
-            for j in range(nt):
-                assert_array_almost_equal(y[:,j], dct(x[:,j], type=self.type),
-                        decimal=self.dec)
-
-
-class _TestDCTIBase(_TestDCTBase):
-    def test_definition_ortho(self):
-        # Test orthornomal mode.
-        dt = np.result_type(np.float32, self.rdt)
-        for xr in X:
-            x = np.array(xr, dtype=self.rdt)
-            y = dct(x, norm='ortho', type=1)
-            y2 = naive_dct1(x, norm='ortho')
-            assert_equal(y.dtype, dt)
-            assert_array_almost_equal(y / np.max(y), y2 / np.max(y), decimal=self.dec)
-
-class _TestDCTIIBase(_TestDCTBase):
-    def test_definition_matlab(self):
-        # Test correspondence with MATLAB (orthornomal mode).
-        dt = np.result_type(np.float32, self.rdt)
-        for xr, yr in zip(X, Y):
-            x = np.array(xr, dtype=dt)
-            y = dct(x, norm="ortho", type=2)
-            assert_equal(y.dtype, dt)
-            assert_array_almost_equal(y, yr, decimal=self.dec)
-
-
-class _TestDCTIIIBase(_TestDCTBase):
-    def test_definition_ortho(self):
-        # Test orthornomal mode.
-        dt = np.result_type(np.float32, self.rdt)
-        for xr in X:
-            x = np.array(xr, dtype=self.rdt)
-            y = dct(x, norm='ortho', type=2)
-            xi = dct(y, norm="ortho", type=3)
-            assert_equal(xi.dtype, dt)
-            assert_array_almost_equal(xi, x, decimal=self.dec)
-
-class _TestDCTIVBase(_TestDCTBase):
-    def test_definition_ortho(self):
-        # Test orthornomal mode.
-        dt = np.result_type(np.float32, self.rdt)
-        for xr in X:
-            x = np.array(xr, dtype=self.rdt)
-            y = dct(x, norm='ortho', type=4)
-            y2 = naive_dct4(x, norm='ortho')
-            assert_equal(y.dtype, dt)
-            assert_array_almost_equal(y / np.max(y), y2 / np.max(y), decimal=self.dec)
-
-
-class TestDCTIDouble(_TestDCTIBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 10
-        self.type = 1
-
-
-class TestDCTIFloat(_TestDCTIBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 4
-        self.type = 1
-
-
-class TestDCTIInt(_TestDCTIBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 5
-        self.type = 1
-
-
-class TestDCTIIDouble(_TestDCTIIBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 10
-        self.type = 2
-
-
-class TestDCTIIFloat(_TestDCTIIBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 5
-        self.type = 2
-
-
-class TestDCTIIInt(_TestDCTIIBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 5
-        self.type = 2
-
-
-class TestDCTIIIDouble(_TestDCTIIIBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 14
-        self.type = 3
-
-
-class TestDCTIIIFloat(_TestDCTIIIBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 5
-        self.type = 3
-
-
-class TestDCTIIIInt(_TestDCTIIIBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 5
-        self.type = 3
-
-
-class TestDCTIVDouble(_TestDCTIVBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 12
-        self.type = 3
-
-
-class TestDCTIVFloat(_TestDCTIVBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 5
-        self.type = 3
-
-
-class TestDCTIVInt(_TestDCTIVBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 5
-        self.type = 3
-
-
-class _TestIDCTBase:
-    def setup_method(self):
-        self.rdt = None
-        self.dec = 14
-        self.type = None
-
-    def test_definition(self):
-        for i in FFTWDATA_SIZES:
-            xr, yr, dt = fftw_dct_ref(self.type, i, self.rdt)
-            x = idct(yr, type=self.type)
-            if self.type == 1:
-                x /= 2 * (i-1)
-            else:
-                x /= 2 * i
-            assert_equal(x.dtype, dt)
-            # XXX: we divide by np.max(y) because the tests fail otherwise. We
-            # should really use something like assert_array_approx_equal. The
-            # difference is due to fftw using a better algorithm w.r.t error
-            # propagation compared to the ones from fftpack.
-            assert_array_almost_equal(x / np.max(x), xr / np.max(x), decimal=self.dec,
-                    err_msg="Size %d failed" % i)
-
-
-class TestIDCTIDouble(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 10
-        self.type = 1
-
-
-class TestIDCTIFloat(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 4
-        self.type = 1
-
-
-class TestIDCTIInt(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 4
-        self.type = 1
-
-
-class TestIDCTIIDouble(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 10
-        self.type = 2
-
-
-class TestIDCTIIFloat(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 5
-        self.type = 2
-
-
-class TestIDCTIIInt(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 5
-        self.type = 2
-
-
-class TestIDCTIIIDouble(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 14
-        self.type = 3
-
-
-class TestIDCTIIIFloat(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 5
-        self.type = 3
-
-
-class TestIDCTIIIInt(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 5
-        self.type = 3
-
-class TestIDCTIVDouble(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 12
-        self.type = 4
-
-
-class TestIDCTIVFloat(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 5
-        self.type = 4
-
-
-class TestIDCTIVInt(_TestIDCTBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 5
-        self.type = 4
-
-class _TestDSTBase:
-    def setup_method(self):
-        self.rdt = None  # dtype
-        self.dec = None  # number of decimals to match
-        self.type = None  # dst type
-
-    def test_definition(self):
-        for i in FFTWDATA_SIZES:
-            xr, yr, dt = fftw_dst_ref(self.type, i, self.rdt)
-            y = dst(xr, type=self.type)
-            assert_equal(y.dtype, dt)
-            # XXX: we divide by np.max(y) because the tests fail otherwise. We
-            # should really use something like assert_array_approx_equal. The
-            # difference is due to fftw using a better algorithm w.r.t error
-            # propagation compared to the ones from fftpack.
-            assert_array_almost_equal(y / np.max(y), yr / np.max(y), decimal=self.dec,
-                    err_msg="Size %d failed" % i)
-
-
-class _TestDSTIBase(_TestDSTBase):
-    def test_definition_ortho(self):
-        # Test orthornomal mode.
-        dt = np.result_type(np.float32, self.rdt)
-        for xr in X:
-            x = np.array(xr, dtype=self.rdt)
-            y = dst(x, norm='ortho', type=1)
-            y2 = naive_dst1(x, norm='ortho')
-            assert_equal(y.dtype, dt)
-            assert_array_almost_equal(y / np.max(y), y2 / np.max(y), decimal=self.dec)
-
-class _TestDSTIVBase(_TestDSTBase):
-    def test_definition_ortho(self):
-        # Test orthornomal mode.
-        dt = np.result_type(np.float32, self.rdt)
-        for xr in X:
-            x = np.array(xr, dtype=self.rdt)
-            y = dst(x, norm='ortho', type=4)
-            y2 = naive_dst4(x, norm='ortho')
-            assert_equal(y.dtype, dt)
-            assert_array_almost_equal(y, y2, decimal=self.dec)
-
-class TestDSTIDouble(_TestDSTIBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 12
-        self.type = 1
-
-
-class TestDSTIFloat(_TestDSTIBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 4
-        self.type = 1
-
-
-class TestDSTIInt(_TestDSTIBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 5
-        self.type = 1
-
-
-class TestDSTIIDouble(_TestDSTBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 14
-        self.type = 2
-
-
-class TestDSTIIFloat(_TestDSTBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 6
-        self.type = 2
-
-
-class TestDSTIIInt(_TestDSTBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 6
-        self.type = 2
-
-
-class TestDSTIIIDouble(_TestDSTBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 14
-        self.type = 3
-
-
-class TestDSTIIIFloat(_TestDSTBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 7
-        self.type = 3
-
-
-class TestDSTIIIInt(_TestDSTBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 7
-        self.type = 3
-
-
-class TestDSTIVDouble(_TestDSTIVBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 12
-        self.type = 4
-
-
-class TestDSTIVFloat(_TestDSTIVBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 4
-        self.type = 4
-
-
-class TestDSTIVInt(_TestDSTIVBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 5
-        self.type = 4
-
-
-class _TestIDSTBase:
-    def setup_method(self):
-        self.rdt = None
-        self.dec = None
-        self.type = None
-
-    def test_definition(self):
-        for i in FFTWDATA_SIZES:
-            xr, yr, dt = fftw_dst_ref(self.type, i, self.rdt)
-            x = idst(yr, type=self.type)
-            if self.type == 1:
-                x /= 2 * (i+1)
-            else:
-                x /= 2 * i
-            assert_equal(x.dtype, dt)
-            # XXX: we divide by np.max(x) because the tests fail otherwise. We
-            # should really use something like assert_array_approx_equal. The
-            # difference is due to fftw using a better algorithm w.r.t error
-            # propagation compared to the ones from fftpack.
-            assert_array_almost_equal(x / np.max(x), xr / np.max(x), decimal=self.dec,
-                    err_msg="Size %d failed" % i)
-
-
-class TestIDSTIDouble(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 12
-        self.type = 1
-
-
-class TestIDSTIFloat(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 4
-        self.type = 1
-
-
-class TestIDSTIInt(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 4
-        self.type = 1
-
-
-class TestIDSTIIDouble(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 14
-        self.type = 2
-
-
-class TestIDSTIIFloat(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 6
-        self.type = 2
-
-
-class TestIDSTIIInt(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 6
-        self.type = 2
-
-
-class TestIDSTIIIDouble(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 14
-        self.type = 3
-
-
-class TestIDSTIIIFloat(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 6
-        self.type = 3
-
-
-class TestIDSTIIIInt(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 6
-        self.type = 3
-
-
-class TestIDSTIVDouble(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = np.float64
-        self.dec = 12
-        self.type = 4
-
-
-class TestIDSTIVFloat(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = np.float32
-        self.dec = 6
-        self.type = 4
-
-
-class TestIDSTIVnt(_TestIDSTBase):
-    def setup_method(self):
-        self.rdt = int
-        self.dec = 6
-        self.type = 4
-
-
-class TestOverwrite:
-    """Check input overwrite behavior."""
-
-    real_dtypes = [np.float32, np.float64]
-
-    def _check(self, x, routine, type, fftsize, axis, norm, overwrite_x, **kw):
-        x2 = x.copy()
-        routine(x2, type, fftsize, axis, norm, overwrite_x=overwrite_x)
-
-        sig = "{}({}{!r}, {!r}, axis={!r}, overwrite_x={!r})".format(
-            routine.__name__, x.dtype, x.shape, fftsize, axis, overwrite_x)
-        if not overwrite_x:
-            assert_equal(x2, x, err_msg="spurious overwrite in %s" % sig)
-
-    def _check_1d(self, routine, dtype, shape, axis):
-        np.random.seed(1234)
-        if np.issubdtype(dtype, np.complexfloating):
-            data = np.random.randn(*shape) + 1j*np.random.randn(*shape)
-        else:
-            data = np.random.randn(*shape)
-        data = data.astype(dtype)
-
-        for type in [1, 2, 3, 4]:
-            for overwrite_x in [True, False]:
-                for norm in [None, 'ortho']:
-                    self._check(data, routine, type, None, axis, norm,
-                                overwrite_x)
-
-    def test_dct(self):
-        for dtype in self.real_dtypes:
-            self._check_1d(dct, dtype, (16,), -1)
-            self._check_1d(dct, dtype, (16, 2), 0)
-            self._check_1d(dct, dtype, (2, 16), 1)
-
-    def test_idct(self):
-        for dtype in self.real_dtypes:
-            self._check_1d(idct, dtype, (16,), -1)
-            self._check_1d(idct, dtype, (16, 2), 0)
-            self._check_1d(idct, dtype, (2, 16), 1)
-
-    def test_dst(self):
-        for dtype in self.real_dtypes:
-            self._check_1d(dst, dtype, (16,), -1)
-            self._check_1d(dst, dtype, (16, 2), 0)
-            self._check_1d(dst, dtype, (2, 16), 1)
-
-    def test_idst(self):
-        for dtype in self.real_dtypes:
-            self._check_1d(idst, dtype, (16,), -1)
-            self._check_1d(idst, dtype, (16, 2), 0)
-            self._check_1d(idst, dtype, (2, 16), 1)
-
-
-class Test_DCTN_IDCTN:
-    dec = 14
-    dct_type = [1, 2, 3, 4]
-    norms = [None, 'ortho']
-    rstate = np.random.RandomState(1234)
-    shape = (32, 16)
-    data = rstate.randn(*shape)
-
-    @pytest.mark.parametrize('fforward,finverse', [(dctn, idctn),
-                                                   (dstn, idstn)])
-    @pytest.mark.parametrize('axes', [None,
-                                      1, (1,), [1],
-                                      0, (0,), [0],
-                                      (0, 1), [0, 1],
-                                      (-2, -1), [-2, -1]])
-    @pytest.mark.parametrize('dct_type', dct_type)
-    @pytest.mark.parametrize('norm', ['ortho'])
-    def test_axes_round_trip(self, fforward, finverse, axes, dct_type, norm):
-        tmp = fforward(self.data, type=dct_type, axes=axes, norm=norm)
-        tmp = finverse(tmp, type=dct_type, axes=axes, norm=norm)
-        assert_array_almost_equal(self.data, tmp, decimal=12)
-
-    @pytest.mark.parametrize('fforward,fforward_ref', [(dctn, dct_2d_ref),
-                                                       (dstn, dst_2d_ref)])
-    @pytest.mark.parametrize('dct_type', dct_type)
-    @pytest.mark.parametrize('norm', norms)
-    def test_dctn_vs_2d_reference(self, fforward, fforward_ref,
-                                  dct_type, norm):
-        y1 = fforward(self.data, type=dct_type, axes=None, norm=norm)
-        y2 = fforward_ref(self.data, type=dct_type, norm=norm)
-        assert_array_almost_equal(y1, y2, decimal=11)
-
-    @pytest.mark.parametrize('finverse,finverse_ref', [(idctn, idct_2d_ref),
-                                                       (idstn, idst_2d_ref)])
-    @pytest.mark.parametrize('dct_type', dct_type)
-    @pytest.mark.parametrize('norm', [None, 'ortho'])
-    def test_idctn_vs_2d_reference(self, finverse, finverse_ref,
-                                   dct_type, norm):
-        fdata = dctn(self.data, type=dct_type, norm=norm)
-        y1 = finverse(fdata, type=dct_type, norm=norm)
-        y2 = finverse_ref(fdata, type=dct_type, norm=norm)
-        assert_array_almost_equal(y1, y2, decimal=11)
-
-    @pytest.mark.parametrize('fforward,finverse', [(dctn, idctn),
-                                                   (dstn, idstn)])
-    def test_axes_and_shape(self, fforward, finverse):
-        with assert_raises(ValueError,
-                           match="when given, axes and shape arguments"
-                           " have to be of the same length"):
-            fforward(self.data, shape=self.data.shape[0], axes=(0, 1))
-
-        with assert_raises(ValueError,
-                           match="when given, axes and shape arguments"
-                           " have to be of the same length"):
-            fforward(self.data, shape=self.data.shape[0], axes=None)
-
-        with assert_raises(ValueError,
-                           match="when given, axes and shape arguments"
-                           " have to be of the same length"):
-            fforward(self.data, shape=self.data.shape, axes=0)
-
-    @pytest.mark.parametrize('fforward', [dctn, dstn])
-    def test_shape(self, fforward):
-        tmp = fforward(self.data, shape=(128, 128), axes=None)
-        assert_equal(tmp.shape, (128, 128))
-
-    @pytest.mark.parametrize('fforward,finverse', [(dctn, idctn),
-                                                   (dstn, idstn)])
-    @pytest.mark.parametrize('axes', [1, (1,), [1],
-                                      0, (0,), [0]])
-    def test_shape_is_none_with_axes(self, fforward, finverse, axes):
-        tmp = fforward(self.data, shape=None, axes=axes, norm='ortho')
-        tmp = finverse(tmp, shape=None, axes=axes, norm='ortho')
-        assert_array_almost_equal(self.data, tmp, decimal=self.dec)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__init__.py
deleted file mode 100644
index 039234777d35a1aebce2b93b943261e4f013a6b5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__init__.py
+++ /dev/null
@@ -1,110 +0,0 @@
-"""
-=============================================
-Integration and ODEs (:mod:`scipy.integrate`)
-=============================================
-
-.. currentmodule:: scipy.integrate
-
-Integrating functions, given function object
-============================================
-
-.. autosummary::
-   :toctree: generated/
-
-   quad          -- General purpose integration
-   quad_vec      -- General purpose integration of vector-valued functions
-   dblquad       -- General purpose double integration
-   tplquad       -- General purpose triple integration
-   nquad         -- General purpose N-D integration
-   fixed_quad    -- Integrate func(x) using Gaussian quadrature of order n
-   quadrature    -- Integrate with given tolerance using Gaussian quadrature
-   romberg       -- Integrate func using Romberg integration
-   newton_cotes  -- Weights and error coefficient for Newton-Cotes integration
-   qmc_quad      -- N-D integration using Quasi-Monte Carlo quadrature
-   IntegrationWarning -- Warning on issues during integration
-   AccuracyWarning  -- Warning on issues during quadrature integration
-
-Integrating functions, given fixed samples
-==========================================
-
-.. autosummary::
-   :toctree: generated/
-
-   trapezoid            -- Use trapezoidal rule to compute integral.
-   cumulative_trapezoid -- Use trapezoidal rule to cumulatively compute integral.
-   simpson              -- Use Simpson's rule to compute integral from samples.
-   cumulative_simpson   -- Use Simpson's rule to cumulatively compute integral from samples.
-   romb                 -- Use Romberg Integration to compute integral from
-                        -- (2**k + 1) evenly-spaced samples.
-
-.. seealso::
-
-   :mod:`scipy.special` for orthogonal polynomials (special) for Gaussian
-   quadrature roots and weights for other weighting factors and regions.
-
-Solving initial value problems for ODE systems
-==============================================
-
-The solvers are implemented as individual classes, which can be used directly
-(low-level usage) or through a convenience function.
-
-.. autosummary::
-   :toctree: generated/
-
-   solve_ivp     -- Convenient function for ODE integration.
-   RK23          -- Explicit Runge-Kutta solver of order 3(2).
-   RK45          -- Explicit Runge-Kutta solver of order 5(4).
-   DOP853        -- Explicit Runge-Kutta solver of order 8.
-   Radau         -- Implicit Runge-Kutta solver of order 5.
-   BDF           -- Implicit multi-step variable order (1 to 5) solver.
-   LSODA         -- LSODA solver from ODEPACK Fortran package.
-   OdeSolver     -- Base class for ODE solvers.
-   DenseOutput   -- Local interpolant for computing a dense output.
-   OdeSolution   -- Class which represents a continuous ODE solution.
-
-
-Old API
--------
-
-These are the routines developed earlier for SciPy. They wrap older solvers
-implemented in Fortran (mostly ODEPACK). While the interface to them is not
-particularly convenient and certain features are missing compared to the new
-API, the solvers themselves are of good quality and work fast as compiled
-Fortran code. In some cases, it might be worth using this old API.
-
-.. autosummary::
-   :toctree: generated/
-
-   odeint        -- General integration of ordinary differential equations.
-   ode           -- Integrate ODE using VODE and ZVODE routines.
-   complex_ode   -- Convert a complex-valued ODE to real-valued and integrate.
-   ODEintWarning -- Warning raised during the execution of `odeint`.
-
-
-Solving boundary value problems for ODE systems
-===============================================
-
-.. autosummary::
-   :toctree: generated/
-
-   solve_bvp     -- Solve a boundary value problem for a system of ODEs.
-"""  # noqa: E501
-
-
-from ._quadrature import *
-from ._odepack_py import *
-from ._quadpack_py import *
-from ._ode import *
-from ._bvp import solve_bvp
-from ._ivp import (solve_ivp, OdeSolution, DenseOutput,
-                   OdeSolver, RK23, RK45, DOP853, Radau, BDF, LSODA)
-from ._quad_vec import quad_vec
-
-# Deprecated namespaces, to be removed in v2.0.0
-from . import dop, lsoda, vode, odepack, quadpack
-
-__all__ = [s for s in dir() if not s.startswith('_')]
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index e4fd581bd31ced39c25dbf085fdd9a9df6c73556..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_bvp.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_bvp.cpython-310.pyc
deleted file mode 100644
index f61dc258e6d35295d052e59e7d7bce97a50843e9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_bvp.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_ode.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_ode.cpython-310.pyc
deleted file mode 100644
index c3f6dc413ff192564f96b6eecb1519917858b832..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_ode.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_odepack_py.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_odepack_py.cpython-310.pyc
deleted file mode 100644
index 2fc926b28809ffe0725cf487cc8a861c4781c97e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_odepack_py.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_quad_vec.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_quad_vec.cpython-310.pyc
deleted file mode 100644
index ec8fbb3e46122f61990802dbe8f6960877827a9c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_quad_vec.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_quadpack_py.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_quadpack_py.cpython-310.pyc
deleted file mode 100644
index 2685f3d3a664e0c653d0d2fc75f12bf7786b5d02..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_quadpack_py.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_quadrature.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_quadrature.cpython-310.pyc
deleted file mode 100644
index 60008511c35af32d6adb134a86cb10773fab31f4..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_quadrature.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_tanhsinh.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_tanhsinh.cpython-310.pyc
deleted file mode 100644
index 9c422a5c4dcb0c5ca76f02df36eb2f49cf84bfa1..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/_tanhsinh.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/dop.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/dop.cpython-310.pyc
deleted file mode 100644
index 7123dd79caaff661c3af4b112292ae93aab07fcd..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/dop.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/lsoda.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/lsoda.cpython-310.pyc
deleted file mode 100644
index 6678927c66d3c28047c54ae96981363ad43aeb15..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/lsoda.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/odepack.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/odepack.cpython-310.pyc
deleted file mode 100644
index 042a25a2c84b950324ce430db73f03ba3b419de8..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/odepack.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/quadpack.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/quadpack.cpython-310.pyc
deleted file mode 100644
index b51d532e9d9a3b4883f90073e2c5043358332716..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/quadpack.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/vode.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/vode.cpython-310.pyc
deleted file mode 100644
index 4194af45c829d8df35acc36fe9ece00bc7dbf0bc..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/__pycache__/vode.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_bvp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_bvp.py
deleted file mode 100644
index f988fdd6e0527d3adc4f4edfa955cc33d9eb85f8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_bvp.py
+++ /dev/null
@@ -1,1155 +0,0 @@
-"""Boundary value problem solver."""
-from warnings import warn
-
-import numpy as np
-from numpy.linalg import pinv
-
-from scipy.sparse import coo_matrix, csc_matrix
-from scipy.sparse.linalg import splu
-from scipy.optimize import OptimizeResult
-
-
-EPS = np.finfo(float).eps
-
-
-def estimate_fun_jac(fun, x, y, p, f0=None):
-    """Estimate derivatives of an ODE system rhs with forward differences.
-
-    Returns
-    -------
-    df_dy : ndarray, shape (n, n, m)
-        Derivatives with respect to y. An element (i, j, q) corresponds to
-        d f_i(x_q, y_q) / d (y_q)_j.
-    df_dp : ndarray with shape (n, k, m) or None
-        Derivatives with respect to p. An element (i, j, q) corresponds to
-        d f_i(x_q, y_q, p) / d p_j. If `p` is empty, None is returned.
-    """
-    n, m = y.shape
-    if f0 is None:
-        f0 = fun(x, y, p)
-
-    dtype = y.dtype
-
-    df_dy = np.empty((n, n, m), dtype=dtype)
-    h = EPS**0.5 * (1 + np.abs(y))
-    for i in range(n):
-        y_new = y.copy()
-        y_new[i] += h[i]
-        hi = y_new[i] - y[i]
-        f_new = fun(x, y_new, p)
-        df_dy[:, i, :] = (f_new - f0) / hi
-
-    k = p.shape[0]
-    if k == 0:
-        df_dp = None
-    else:
-        df_dp = np.empty((n, k, m), dtype=dtype)
-        h = EPS**0.5 * (1 + np.abs(p))
-        for i in range(k):
-            p_new = p.copy()
-            p_new[i] += h[i]
-            hi = p_new[i] - p[i]
-            f_new = fun(x, y, p_new)
-            df_dp[:, i, :] = (f_new - f0) / hi
-
-    return df_dy, df_dp
-
-
-def estimate_bc_jac(bc, ya, yb, p, bc0=None):
-    """Estimate derivatives of boundary conditions with forward differences.
-
-    Returns
-    -------
-    dbc_dya : ndarray, shape (n + k, n)
-        Derivatives with respect to ya. An element (i, j) corresponds to
-        d bc_i / d ya_j.
-    dbc_dyb : ndarray, shape (n + k, n)
-        Derivatives with respect to yb. An element (i, j) corresponds to
-        d bc_i / d ya_j.
-    dbc_dp : ndarray with shape (n + k, k) or None
-        Derivatives with respect to p. An element (i, j) corresponds to
-        d bc_i / d p_j. If `p` is empty, None is returned.
-    """
-    n = ya.shape[0]
-    k = p.shape[0]
-
-    if bc0 is None:
-        bc0 = bc(ya, yb, p)
-
-    dtype = ya.dtype
-
-    dbc_dya = np.empty((n, n + k), dtype=dtype)
-    h = EPS**0.5 * (1 + np.abs(ya))
-    for i in range(n):
-        ya_new = ya.copy()
-        ya_new[i] += h[i]
-        hi = ya_new[i] - ya[i]
-        bc_new = bc(ya_new, yb, p)
-        dbc_dya[i] = (bc_new - bc0) / hi
-    dbc_dya = dbc_dya.T
-
-    h = EPS**0.5 * (1 + np.abs(yb))
-    dbc_dyb = np.empty((n, n + k), dtype=dtype)
-    for i in range(n):
-        yb_new = yb.copy()
-        yb_new[i] += h[i]
-        hi = yb_new[i] - yb[i]
-        bc_new = bc(ya, yb_new, p)
-        dbc_dyb[i] = (bc_new - bc0) / hi
-    dbc_dyb = dbc_dyb.T
-
-    if k == 0:
-        dbc_dp = None
-    else:
-        h = EPS**0.5 * (1 + np.abs(p))
-        dbc_dp = np.empty((k, n + k), dtype=dtype)
-        for i in range(k):
-            p_new = p.copy()
-            p_new[i] += h[i]
-            hi = p_new[i] - p[i]
-            bc_new = bc(ya, yb, p_new)
-            dbc_dp[i] = (bc_new - bc0) / hi
-        dbc_dp = dbc_dp.T
-
-    return dbc_dya, dbc_dyb, dbc_dp
-
-
-def compute_jac_indices(n, m, k):
-    """Compute indices for the collocation system Jacobian construction.
-
-    See `construct_global_jac` for the explanation.
-    """
-    i_col = np.repeat(np.arange((m - 1) * n), n)
-    j_col = (np.tile(np.arange(n), n * (m - 1)) +
-             np.repeat(np.arange(m - 1) * n, n**2))
-
-    i_bc = np.repeat(np.arange((m - 1) * n, m * n + k), n)
-    j_bc = np.tile(np.arange(n), n + k)
-
-    i_p_col = np.repeat(np.arange((m - 1) * n), k)
-    j_p_col = np.tile(np.arange(m * n, m * n + k), (m - 1) * n)
-
-    i_p_bc = np.repeat(np.arange((m - 1) * n, m * n + k), k)
-    j_p_bc = np.tile(np.arange(m * n, m * n + k), n + k)
-
-    i = np.hstack((i_col, i_col, i_bc, i_bc, i_p_col, i_p_bc))
-    j = np.hstack((j_col, j_col + n,
-                   j_bc, j_bc + (m - 1) * n,
-                   j_p_col, j_p_bc))
-
-    return i, j
-
-
-def stacked_matmul(a, b):
-    """Stacked matrix multiply: out[i,:,:] = np.dot(a[i,:,:], b[i,:,:]).
-
-    Empirical optimization. Use outer Python loop and BLAS for large
-    matrices, otherwise use a single einsum call.
-    """
-    if a.shape[1] > 50:
-        out = np.empty((a.shape[0], a.shape[1], b.shape[2]))
-        for i in range(a.shape[0]):
-            out[i] = np.dot(a[i], b[i])
-        return out
-    else:
-        return np.einsum('...ij,...jk->...ik', a, b)
-
-
-def construct_global_jac(n, m, k, i_jac, j_jac, h, df_dy, df_dy_middle, df_dp,
-                         df_dp_middle, dbc_dya, dbc_dyb, dbc_dp):
-    """Construct the Jacobian of the collocation system.
-
-    There are n * m + k functions: m - 1 collocations residuals, each
-    containing n components, followed by n + k boundary condition residuals.
-
-    There are n * m + k variables: m vectors of y, each containing n
-    components, followed by k values of vector p.
-
-    For example, let m = 4, n = 2 and k = 1, then the Jacobian will have
-    the following sparsity structure:
-
-        1 1 2 2 0 0 0 0  5
-        1 1 2 2 0 0 0 0  5
-        0 0 1 1 2 2 0 0  5
-        0 0 1 1 2 2 0 0  5
-        0 0 0 0 1 1 2 2  5
-        0 0 0 0 1 1 2 2  5
-
-        3 3 0 0 0 0 4 4  6
-        3 3 0 0 0 0 4 4  6
-        3 3 0 0 0 0 4 4  6
-
-    Zeros denote identically zero values, other values denote different kinds
-    of blocks in the matrix (see below). The blank row indicates the separation
-    of collocation residuals from boundary conditions. And the blank column
-    indicates the separation of y values from p values.
-
-    Refer to [1]_  (p. 306) for the formula of n x n blocks for derivatives
-    of collocation residuals with respect to y.
-
-    Parameters
-    ----------
-    n : int
-        Number of equations in the ODE system.
-    m : int
-        Number of nodes in the mesh.
-    k : int
-        Number of the unknown parameters.
-    i_jac, j_jac : ndarray
-        Row and column indices returned by `compute_jac_indices`. They
-        represent different blocks in the Jacobian matrix in the following
-        order (see the scheme above):
-
-            * 1: m - 1 diagonal n x n blocks for the collocation residuals.
-            * 2: m - 1 off-diagonal n x n blocks for the collocation residuals.
-            * 3 : (n + k) x n block for the dependency of the boundary
-              conditions on ya.
-            * 4: (n + k) x n block for the dependency of the boundary
-              conditions on yb.
-            * 5: (m - 1) * n x k block for the dependency of the collocation
-              residuals on p.
-            * 6: (n + k) x k block for the dependency of the boundary
-              conditions on p.
-
-    df_dy : ndarray, shape (n, n, m)
-        Jacobian of f with respect to y computed at the mesh nodes.
-    df_dy_middle : ndarray, shape (n, n, m - 1)
-        Jacobian of f with respect to y computed at the middle between the
-        mesh nodes.
-    df_dp : ndarray with shape (n, k, m) or None
-        Jacobian of f with respect to p computed at the mesh nodes.
-    df_dp_middle : ndarray with shape (n, k, m - 1) or None
-        Jacobian of f with respect to p computed at the middle between the
-        mesh nodes.
-    dbc_dya, dbc_dyb : ndarray, shape (n, n)
-        Jacobian of bc with respect to ya and yb.
-    dbc_dp : ndarray with shape (n, k) or None
-        Jacobian of bc with respect to p.
-
-    Returns
-    -------
-    J : csc_matrix, shape (n * m + k, n * m + k)
-        Jacobian of the collocation system in a sparse form.
-
-    References
-    ----------
-    .. [1] J. Kierzenka, L. F. Shampine, "A BVP Solver Based on Residual
-       Control and the Maltab PSE", ACM Trans. Math. Softw., Vol. 27,
-       Number 3, pp. 299-316, 2001.
-    """
-    df_dy = np.transpose(df_dy, (2, 0, 1))
-    df_dy_middle = np.transpose(df_dy_middle, (2, 0, 1))
-
-    h = h[:, np.newaxis, np.newaxis]
-
-    dtype = df_dy.dtype
-
-    # Computing diagonal n x n blocks.
-    dPhi_dy_0 = np.empty((m - 1, n, n), dtype=dtype)
-    dPhi_dy_0[:] = -np.identity(n)
-    dPhi_dy_0 -= h / 6 * (df_dy[:-1] + 2 * df_dy_middle)
-    T = stacked_matmul(df_dy_middle, df_dy[:-1])
-    dPhi_dy_0 -= h**2 / 12 * T
-
-    # Computing off-diagonal n x n blocks.
-    dPhi_dy_1 = np.empty((m - 1, n, n), dtype=dtype)
-    dPhi_dy_1[:] = np.identity(n)
-    dPhi_dy_1 -= h / 6 * (df_dy[1:] + 2 * df_dy_middle)
-    T = stacked_matmul(df_dy_middle, df_dy[1:])
-    dPhi_dy_1 += h**2 / 12 * T
-
-    values = np.hstack((dPhi_dy_0.ravel(), dPhi_dy_1.ravel(), dbc_dya.ravel(),
-                        dbc_dyb.ravel()))
-
-    if k > 0:
-        df_dp = np.transpose(df_dp, (2, 0, 1))
-        df_dp_middle = np.transpose(df_dp_middle, (2, 0, 1))
-        T = stacked_matmul(df_dy_middle, df_dp[:-1] - df_dp[1:])
-        df_dp_middle += 0.125 * h * T
-        dPhi_dp = -h/6 * (df_dp[:-1] + df_dp[1:] + 4 * df_dp_middle)
-        values = np.hstack((values, dPhi_dp.ravel(), dbc_dp.ravel()))
-
-    J = coo_matrix((values, (i_jac, j_jac)))
-    return csc_matrix(J)
-
-
-def collocation_fun(fun, y, p, x, h):
-    """Evaluate collocation residuals.
-
-    This function lies in the core of the method. The solution is sought
-    as a cubic C1 continuous spline with derivatives matching the ODE rhs
-    at given nodes `x`. Collocation conditions are formed from the equality
-    of the spline derivatives and rhs of the ODE system in the middle points
-    between nodes.
-
-    Such method is classified to Lobbato IIIA family in ODE literature.
-    Refer to [1]_ for the formula and some discussion.
-
-    Returns
-    -------
-    col_res : ndarray, shape (n, m - 1)
-        Collocation residuals at the middle points of the mesh intervals.
-    y_middle : ndarray, shape (n, m - 1)
-        Values of the cubic spline evaluated at the middle points of the mesh
-        intervals.
-    f : ndarray, shape (n, m)
-        RHS of the ODE system evaluated at the mesh nodes.
-    f_middle : ndarray, shape (n, m - 1)
-        RHS of the ODE system evaluated at the middle points of the mesh
-        intervals (and using `y_middle`).
-
-    References
-    ----------
-    .. [1] J. Kierzenka, L. F. Shampine, "A BVP Solver Based on Residual
-           Control and the Maltab PSE", ACM Trans. Math. Softw., Vol. 27,
-           Number 3, pp. 299-316, 2001.
-    """
-    f = fun(x, y, p)
-    y_middle = (0.5 * (y[:, 1:] + y[:, :-1]) -
-                0.125 * h * (f[:, 1:] - f[:, :-1]))
-    f_middle = fun(x[:-1] + 0.5 * h, y_middle, p)
-    col_res = y[:, 1:] - y[:, :-1] - h / 6 * (f[:, :-1] + f[:, 1:] +
-                                              4 * f_middle)
-
-    return col_res, y_middle, f, f_middle
-
-
-def prepare_sys(n, m, k, fun, bc, fun_jac, bc_jac, x, h):
-    """Create the function and the Jacobian for the collocation system."""
-    x_middle = x[:-1] + 0.5 * h
-    i_jac, j_jac = compute_jac_indices(n, m, k)
-
-    def col_fun(y, p):
-        return collocation_fun(fun, y, p, x, h)
-
-    def sys_jac(y, p, y_middle, f, f_middle, bc0):
-        if fun_jac is None:
-            df_dy, df_dp = estimate_fun_jac(fun, x, y, p, f)
-            df_dy_middle, df_dp_middle = estimate_fun_jac(
-                fun, x_middle, y_middle, p, f_middle)
-        else:
-            df_dy, df_dp = fun_jac(x, y, p)
-            df_dy_middle, df_dp_middle = fun_jac(x_middle, y_middle, p)
-
-        if bc_jac is None:
-            dbc_dya, dbc_dyb, dbc_dp = estimate_bc_jac(bc, y[:, 0], y[:, -1],
-                                                       p, bc0)
-        else:
-            dbc_dya, dbc_dyb, dbc_dp = bc_jac(y[:, 0], y[:, -1], p)
-
-        return construct_global_jac(n, m, k, i_jac, j_jac, h, df_dy,
-                                    df_dy_middle, df_dp, df_dp_middle, dbc_dya,
-                                    dbc_dyb, dbc_dp)
-
-    return col_fun, sys_jac
-
-
-def solve_newton(n, m, h, col_fun, bc, jac, y, p, B, bvp_tol, bc_tol):
-    """Solve the nonlinear collocation system by a Newton method.
-
-    This is a simple Newton method with a backtracking line search. As
-    advised in [1]_, an affine-invariant criterion function F = ||J^-1 r||^2
-    is used, where J is the Jacobian matrix at the current iteration and r is
-    the vector or collocation residuals (values of the system lhs).
-
-    The method alters between full Newton iterations and the fixed-Jacobian
-    iterations based
-
-    There are other tricks proposed in [1]_, but they are not used as they
-    don't seem to improve anything significantly, and even break the
-    convergence on some test problems I tried.
-
-    All important parameters of the algorithm are defined inside the function.
-
-    Parameters
-    ----------
-    n : int
-        Number of equations in the ODE system.
-    m : int
-        Number of nodes in the mesh.
-    h : ndarray, shape (m-1,)
-        Mesh intervals.
-    col_fun : callable
-        Function computing collocation residuals.
-    bc : callable
-        Function computing boundary condition residuals.
-    jac : callable
-        Function computing the Jacobian of the whole system (including
-        collocation and boundary condition residuals). It is supposed to
-        return csc_matrix.
-    y : ndarray, shape (n, m)
-        Initial guess for the function values at the mesh nodes.
-    p : ndarray, shape (k,)
-        Initial guess for the unknown parameters.
-    B : ndarray with shape (n, n) or None
-        Matrix to force the S y(a) = 0 condition for a problems with the
-        singular term. If None, the singular term is assumed to be absent.
-    bvp_tol : float
-        Tolerance to which we want to solve a BVP.
-    bc_tol : float
-        Tolerance to which we want to satisfy the boundary conditions.
-
-    Returns
-    -------
-    y : ndarray, shape (n, m)
-        Final iterate for the function values at the mesh nodes.
-    p : ndarray, shape (k,)
-        Final iterate for the unknown parameters.
-    singular : bool
-        True, if the LU decomposition failed because Jacobian turned out
-        to be singular.
-
-    References
-    ----------
-    .. [1]  U. Ascher, R. Mattheij and R. Russell "Numerical Solution of
-       Boundary Value Problems for Ordinary Differential Equations"
-    """
-    # We know that the solution residuals at the middle points of the mesh
-    # are connected with collocation residuals  r_middle = 1.5 * col_res / h.
-    # As our BVP solver tries to decrease relative residuals below a certain
-    # tolerance, it seems reasonable to terminated Newton iterations by
-    # comparison of r_middle / (1 + np.abs(f_middle)) with a certain threshold,
-    # which we choose to be 1.5 orders lower than the BVP tolerance. We rewrite
-    # the condition as col_res < tol_r * (1 + np.abs(f_middle)), then tol_r
-    # should be computed as follows:
-    tol_r = 2/3 * h * 5e-2 * bvp_tol
-
-    # Maximum allowed number of Jacobian evaluation and factorization, in
-    # other words, the maximum number of full Newton iterations. A small value
-    # is recommended in the literature.
-    max_njev = 4
-
-    # Maximum number of iterations, considering that some of them can be
-    # performed with the fixed Jacobian. In theory, such iterations are cheap,
-    # but it's not that simple in Python.
-    max_iter = 8
-
-    # Minimum relative improvement of the criterion function to accept the
-    # step (Armijo constant).
-    sigma = 0.2
-
-    # Step size decrease factor for backtracking.
-    tau = 0.5
-
-    # Maximum number of backtracking steps, the minimum step is then
-    # tau ** n_trial.
-    n_trial = 4
-
-    col_res, y_middle, f, f_middle = col_fun(y, p)
-    bc_res = bc(y[:, 0], y[:, -1], p)
-    res = np.hstack((col_res.ravel(order='F'), bc_res))
-
-    njev = 0
-    singular = False
-    recompute_jac = True
-    for iteration in range(max_iter):
-        if recompute_jac:
-            J = jac(y, p, y_middle, f, f_middle, bc_res)
-            njev += 1
-            try:
-                LU = splu(J)
-            except RuntimeError:
-                singular = True
-                break
-
-            step = LU.solve(res)
-            cost = np.dot(step, step)
-
-        y_step = step[:m * n].reshape((n, m), order='F')
-        p_step = step[m * n:]
-
-        alpha = 1
-        for trial in range(n_trial + 1):
-            y_new = y - alpha * y_step
-            if B is not None:
-                y_new[:, 0] = np.dot(B, y_new[:, 0])
-            p_new = p - alpha * p_step
-
-            col_res, y_middle, f, f_middle = col_fun(y_new, p_new)
-            bc_res = bc(y_new[:, 0], y_new[:, -1], p_new)
-            res = np.hstack((col_res.ravel(order='F'), bc_res))
-
-            step_new = LU.solve(res)
-            cost_new = np.dot(step_new, step_new)
-            if cost_new < (1 - 2 * alpha * sigma) * cost:
-                break
-
-            if trial < n_trial:
-                alpha *= tau
-
-        y = y_new
-        p = p_new
-
-        if njev == max_njev:
-            break
-
-        if (np.all(np.abs(col_res) < tol_r * (1 + np.abs(f_middle))) and
-                np.all(np.abs(bc_res) < bc_tol)):
-            break
-
-        # If the full step was taken, then we are going to continue with
-        # the same Jacobian. This is the approach of BVP_SOLVER.
-        if alpha == 1:
-            step = step_new
-            cost = cost_new
-            recompute_jac = False
-        else:
-            recompute_jac = True
-
-    return y, p, singular
-
-
-def print_iteration_header():
-    print("{:^15}{:^15}{:^15}{:^15}{:^15}".format(
-        "Iteration", "Max residual", "Max BC residual", "Total nodes",
-        "Nodes added"))
-
-
-def print_iteration_progress(iteration, residual, bc_residual, total_nodes,
-                             nodes_added):
-    print("{:^15}{:^15.2e}{:^15.2e}{:^15}{:^15}".format(
-        iteration, residual, bc_residual, total_nodes, nodes_added))
-
-
-class BVPResult(OptimizeResult):
-    pass
-
-
-TERMINATION_MESSAGES = {
-    0: "The algorithm converged to the desired accuracy.",
-    1: "The maximum number of mesh nodes is exceeded.",
-    2: "A singular Jacobian encountered when solving the collocation system.",
-    3: "The solver was unable to satisfy boundary conditions tolerance on iteration 10."
-}
-
-
-def estimate_rms_residuals(fun, sol, x, h, p, r_middle, f_middle):
-    """Estimate rms values of collocation residuals using Lobatto quadrature.
-
-    The residuals are defined as the difference between the derivatives of
-    our solution and rhs of the ODE system. We use relative residuals, i.e.,
-    normalized by 1 + np.abs(f). RMS values are computed as sqrt from the
-    normalized integrals of the squared relative residuals over each interval.
-    Integrals are estimated using 5-point Lobatto quadrature [1]_, we use the
-    fact that residuals at the mesh nodes are identically zero.
-
-    In [2] they don't normalize integrals by interval lengths, which gives
-    a higher rate of convergence of the residuals by the factor of h**0.5.
-    I chose to do such normalization for an ease of interpretation of return
-    values as RMS estimates.
-
-    Returns
-    -------
-    rms_res : ndarray, shape (m - 1,)
-        Estimated rms values of the relative residuals over each interval.
-
-    References
-    ----------
-    .. [1] http://mathworld.wolfram.com/LobattoQuadrature.html
-    .. [2] J. Kierzenka, L. F. Shampine, "A BVP Solver Based on Residual
-       Control and the Maltab PSE", ACM Trans. Math. Softw., Vol. 27,
-       Number 3, pp. 299-316, 2001.
-    """
-    x_middle = x[:-1] + 0.5 * h
-    s = 0.5 * h * (3/7)**0.5
-    x1 = x_middle + s
-    x2 = x_middle - s
-    y1 = sol(x1)
-    y2 = sol(x2)
-    y1_prime = sol(x1, 1)
-    y2_prime = sol(x2, 1)
-    f1 = fun(x1, y1, p)
-    f2 = fun(x2, y2, p)
-    r1 = y1_prime - f1
-    r2 = y2_prime - f2
-
-    r_middle /= 1 + np.abs(f_middle)
-    r1 /= 1 + np.abs(f1)
-    r2 /= 1 + np.abs(f2)
-
-    r1 = np.sum(np.real(r1 * np.conj(r1)), axis=0)
-    r2 = np.sum(np.real(r2 * np.conj(r2)), axis=0)
-    r_middle = np.sum(np.real(r_middle * np.conj(r_middle)), axis=0)
-
-    return (0.5 * (32 / 45 * r_middle + 49 / 90 * (r1 + r2))) ** 0.5
-
-
-def create_spline(y, yp, x, h):
-    """Create a cubic spline given values and derivatives.
-
-    Formulas for the coefficients are taken from interpolate.CubicSpline.
-
-    Returns
-    -------
-    sol : PPoly
-        Constructed spline as a PPoly instance.
-    """
-    from scipy.interpolate import PPoly
-
-    n, m = y.shape
-    c = np.empty((4, n, m - 1), dtype=y.dtype)
-    slope = (y[:, 1:] - y[:, :-1]) / h
-    t = (yp[:, :-1] + yp[:, 1:] - 2 * slope) / h
-    c[0] = t / h
-    c[1] = (slope - yp[:, :-1]) / h - t
-    c[2] = yp[:, :-1]
-    c[3] = y[:, :-1]
-    c = np.moveaxis(c, 1, 0)
-
-    return PPoly(c, x, extrapolate=True, axis=1)
-
-
-def modify_mesh(x, insert_1, insert_2):
-    """Insert nodes into a mesh.
-
-    Nodes removal logic is not established, its impact on the solver is
-    presumably negligible. So, only insertion is done in this function.
-
-    Parameters
-    ----------
-    x : ndarray, shape (m,)
-        Mesh nodes.
-    insert_1 : ndarray
-        Intervals to each insert 1 new node in the middle.
-    insert_2 : ndarray
-        Intervals to each insert 2 new nodes, such that divide an interval
-        into 3 equal parts.
-
-    Returns
-    -------
-    x_new : ndarray
-        New mesh nodes.
-
-    Notes
-    -----
-    `insert_1` and `insert_2` should not have common values.
-    """
-    # Because np.insert implementation apparently varies with a version of
-    # NumPy, we use a simple and reliable approach with sorting.
-    return np.sort(np.hstack((
-        x,
-        0.5 * (x[insert_1] + x[insert_1 + 1]),
-        (2 * x[insert_2] + x[insert_2 + 1]) / 3,
-        (x[insert_2] + 2 * x[insert_2 + 1]) / 3
-    )))
-
-
-def wrap_functions(fun, bc, fun_jac, bc_jac, k, a, S, D, dtype):
-    """Wrap functions for unified usage in the solver."""
-    if fun_jac is None:
-        fun_jac_wrapped = None
-
-    if bc_jac is None:
-        bc_jac_wrapped = None
-
-    if k == 0:
-        def fun_p(x, y, _):
-            return np.asarray(fun(x, y), dtype)
-
-        def bc_wrapped(ya, yb, _):
-            return np.asarray(bc(ya, yb), dtype)
-
-        if fun_jac is not None:
-            def fun_jac_p(x, y, _):
-                return np.asarray(fun_jac(x, y), dtype), None
-
-        if bc_jac is not None:
-            def bc_jac_wrapped(ya, yb, _):
-                dbc_dya, dbc_dyb = bc_jac(ya, yb)
-                return (np.asarray(dbc_dya, dtype),
-                        np.asarray(dbc_dyb, dtype), None)
-    else:
-        def fun_p(x, y, p):
-            return np.asarray(fun(x, y, p), dtype)
-
-        def bc_wrapped(x, y, p):
-            return np.asarray(bc(x, y, p), dtype)
-
-        if fun_jac is not None:
-            def fun_jac_p(x, y, p):
-                df_dy, df_dp = fun_jac(x, y, p)
-                return np.asarray(df_dy, dtype), np.asarray(df_dp, dtype)
-
-        if bc_jac is not None:
-            def bc_jac_wrapped(ya, yb, p):
-                dbc_dya, dbc_dyb, dbc_dp = bc_jac(ya, yb, p)
-                return (np.asarray(dbc_dya, dtype), np.asarray(dbc_dyb, dtype),
-                        np.asarray(dbc_dp, dtype))
-
-    if S is None:
-        fun_wrapped = fun_p
-    else:
-        def fun_wrapped(x, y, p):
-            f = fun_p(x, y, p)
-            if x[0] == a:
-                f[:, 0] = np.dot(D, f[:, 0])
-                f[:, 1:] += np.dot(S, y[:, 1:]) / (x[1:] - a)
-            else:
-                f += np.dot(S, y) / (x - a)
-            return f
-
-    if fun_jac is not None:
-        if S is None:
-            fun_jac_wrapped = fun_jac_p
-        else:
-            Sr = S[:, :, np.newaxis]
-
-            def fun_jac_wrapped(x, y, p):
-                df_dy, df_dp = fun_jac_p(x, y, p)
-                if x[0] == a:
-                    df_dy[:, :, 0] = np.dot(D, df_dy[:, :, 0])
-                    df_dy[:, :, 1:] += Sr / (x[1:] - a)
-                else:
-                    df_dy += Sr / (x - a)
-
-                return df_dy, df_dp
-
-    return fun_wrapped, bc_wrapped, fun_jac_wrapped, bc_jac_wrapped
-
-
-def solve_bvp(fun, bc, x, y, p=None, S=None, fun_jac=None, bc_jac=None,
-              tol=1e-3, max_nodes=1000, verbose=0, bc_tol=None):
-    """Solve a boundary value problem for a system of ODEs.
-
-    This function numerically solves a first order system of ODEs subject to
-    two-point boundary conditions::
-
-        dy / dx = f(x, y, p) + S * y / (x - a), a <= x <= b
-        bc(y(a), y(b), p) = 0
-
-    Here x is a 1-D independent variable, y(x) is an N-D
-    vector-valued function and p is a k-D vector of unknown
-    parameters which is to be found along with y(x). For the problem to be
-    determined, there must be n + k boundary conditions, i.e., bc must be an
-    (n + k)-D function.
-
-    The last singular term on the right-hand side of the system is optional.
-    It is defined by an n-by-n matrix S, such that the solution must satisfy
-    S y(a) = 0. This condition will be forced during iterations, so it must not
-    contradict boundary conditions. See [2]_ for the explanation how this term
-    is handled when solving BVPs numerically.
-
-    Problems in a complex domain can be solved as well. In this case, y and p
-    are considered to be complex, and f and bc are assumed to be complex-valued
-    functions, but x stays real. Note that f and bc must be complex
-    differentiable (satisfy Cauchy-Riemann equations [4]_), otherwise you
-    should rewrite your problem for real and imaginary parts separately. To
-    solve a problem in a complex domain, pass an initial guess for y with a
-    complex data type (see below).
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system. The calling signature is ``fun(x, y)``,
-        or ``fun(x, y, p)`` if parameters are present. All arguments are
-        ndarray: ``x`` with shape (m,), ``y`` with shape (n, m), meaning that
-        ``y[:, i]`` corresponds to ``x[i]``, and ``p`` with shape (k,). The
-        return value must be an array with shape (n, m) and with the same
-        layout as ``y``.
-    bc : callable
-        Function evaluating residuals of the boundary conditions. The calling
-        signature is ``bc(ya, yb)``, or ``bc(ya, yb, p)`` if parameters are
-        present. All arguments are ndarray: ``ya`` and ``yb`` with shape (n,),
-        and ``p`` with shape (k,). The return value must be an array with
-        shape (n + k,).
-    x : array_like, shape (m,)
-        Initial mesh. Must be a strictly increasing sequence of real numbers
-        with ``x[0]=a`` and ``x[-1]=b``.
-    y : array_like, shape (n, m)
-        Initial guess for the function values at the mesh nodes, ith column
-        corresponds to ``x[i]``. For problems in a complex domain pass `y`
-        with a complex data type (even if the initial guess is purely real).
-    p : array_like with shape (k,) or None, optional
-        Initial guess for the unknown parameters. If None (default), it is
-        assumed that the problem doesn't depend on any parameters.
-    S : array_like with shape (n, n) or None
-        Matrix defining the singular term. If None (default), the problem is
-        solved without the singular term.
-    fun_jac : callable or None, optional
-        Function computing derivatives of f with respect to y and p. The
-        calling signature is ``fun_jac(x, y)``, or ``fun_jac(x, y, p)`` if
-        parameters are present. The return must contain 1 or 2 elements in the
-        following order:
-
-            * df_dy : array_like with shape (n, n, m), where an element
-              (i, j, q) equals to d f_i(x_q, y_q, p) / d (y_q)_j.
-            * df_dp : array_like with shape (n, k, m), where an element
-              (i, j, q) equals to d f_i(x_q, y_q, p) / d p_j.
-
-        Here q numbers nodes at which x and y are defined, whereas i and j
-        number vector components. If the problem is solved without unknown
-        parameters, df_dp should not be returned.
-
-        If `fun_jac` is None (default), the derivatives will be estimated
-        by the forward finite differences.
-    bc_jac : callable or None, optional
-        Function computing derivatives of bc with respect to ya, yb, and p.
-        The calling signature is ``bc_jac(ya, yb)``, or ``bc_jac(ya, yb, p)``
-        if parameters are present. The return must contain 2 or 3 elements in
-        the following order:
-
-            * dbc_dya : array_like with shape (n, n), where an element (i, j)
-              equals to d bc_i(ya, yb, p) / d ya_j.
-            * dbc_dyb : array_like with shape (n, n), where an element (i, j)
-              equals to d bc_i(ya, yb, p) / d yb_j.
-            * dbc_dp : array_like with shape (n, k), where an element (i, j)
-              equals to d bc_i(ya, yb, p) / d p_j.
-
-        If the problem is solved without unknown parameters, dbc_dp should not
-        be returned.
-
-        If `bc_jac` is None (default), the derivatives will be estimated by
-        the forward finite differences.
-    tol : float, optional
-        Desired tolerance of the solution. If we define ``r = y' - f(x, y)``,
-        where y is the found solution, then the solver tries to achieve on each
-        mesh interval ``norm(r / (1 + abs(f)) < tol``, where ``norm`` is
-        estimated in a root mean squared sense (using a numerical quadrature
-        formula). Default is 1e-3.
-    max_nodes : int, optional
-        Maximum allowed number of the mesh nodes. If exceeded, the algorithm
-        terminates. Default is 1000.
-    verbose : {0, 1, 2}, optional
-        Level of algorithm's verbosity:
-
-            * 0 (default) : work silently.
-            * 1 : display a termination report.
-            * 2 : display progress during iterations.
-    bc_tol : float, optional
-        Desired absolute tolerance for the boundary condition residuals: `bc`
-        value should satisfy ``abs(bc) < bc_tol`` component-wise.
-        Equals to `tol` by default. Up to 10 iterations are allowed to achieve this
-        tolerance.
-
-    Returns
-    -------
-    Bunch object with the following fields defined:
-    sol : PPoly
-        Found solution for y as `scipy.interpolate.PPoly` instance, a C1
-        continuous cubic spline.
-    p : ndarray or None, shape (k,)
-        Found parameters. None, if the parameters were not present in the
-        problem.
-    x : ndarray, shape (m,)
-        Nodes of the final mesh.
-    y : ndarray, shape (n, m)
-        Solution values at the mesh nodes.
-    yp : ndarray, shape (n, m)
-        Solution derivatives at the mesh nodes.
-    rms_residuals : ndarray, shape (m - 1,)
-        RMS values of the relative residuals over each mesh interval (see the
-        description of `tol` parameter).
-    niter : int
-        Number of completed iterations.
-    status : int
-        Reason for algorithm termination:
-
-            * 0: The algorithm converged to the desired accuracy.
-            * 1: The maximum number of mesh nodes is exceeded.
-            * 2: A singular Jacobian encountered when solving the collocation
-              system.
-
-    message : string
-        Verbal description of the termination reason.
-    success : bool
-        True if the algorithm converged to the desired accuracy (``status=0``).
-
-    Notes
-    -----
-    This function implements a 4th order collocation algorithm with the
-    control of residuals similar to [1]_. A collocation system is solved
-    by a damped Newton method with an affine-invariant criterion function as
-    described in [3]_.
-
-    Note that in [1]_  integral residuals are defined without normalization
-    by interval lengths. So, their definition is different by a multiplier of
-    h**0.5 (h is an interval length) from the definition used here.
-
-    .. versionadded:: 0.18.0
-
-    References
-    ----------
-    .. [1] J. Kierzenka, L. F. Shampine, "A BVP Solver Based on Residual
-           Control and the Maltab PSE", ACM Trans. Math. Softw., Vol. 27,
-           Number 3, pp. 299-316, 2001.
-    .. [2] L.F. Shampine, P. H. Muir and H. Xu, "A User-Friendly Fortran BVP
-           Solver".
-    .. [3] U. Ascher, R. Mattheij and R. Russell "Numerical Solution of
-           Boundary Value Problems for Ordinary Differential Equations".
-    .. [4] `Cauchy-Riemann equations
-            `_ on
-            Wikipedia.
-
-    Examples
-    --------
-    In the first example, we solve Bratu's problem::
-
-        y'' + k * exp(y) = 0
-        y(0) = y(1) = 0
-
-    for k = 1.
-
-    We rewrite the equation as a first-order system and implement its
-    right-hand side evaluation::
-
-        y1' = y2
-        y2' = -exp(y1)
-
-    >>> import numpy as np
-    >>> def fun(x, y):
-    ...     return np.vstack((y[1], -np.exp(y[0])))
-
-    Implement evaluation of the boundary condition residuals:
-
-    >>> def bc(ya, yb):
-    ...     return np.array([ya[0], yb[0]])
-
-    Define the initial mesh with 5 nodes:
-
-    >>> x = np.linspace(0, 1, 5)
-
-    This problem is known to have two solutions. To obtain both of them, we
-    use two different initial guesses for y. We denote them by subscripts
-    a and b.
-
-    >>> y_a = np.zeros((2, x.size))
-    >>> y_b = np.zeros((2, x.size))
-    >>> y_b[0] = 3
-
-    Now we are ready to run the solver.
-
-    >>> from scipy.integrate import solve_bvp
-    >>> res_a = solve_bvp(fun, bc, x, y_a)
-    >>> res_b = solve_bvp(fun, bc, x, y_b)
-
-    Let's plot the two found solutions. We take an advantage of having the
-    solution in a spline form to produce a smooth plot.
-
-    >>> x_plot = np.linspace(0, 1, 100)
-    >>> y_plot_a = res_a.sol(x_plot)[0]
-    >>> y_plot_b = res_b.sol(x_plot)[0]
-    >>> import matplotlib.pyplot as plt
-    >>> plt.plot(x_plot, y_plot_a, label='y_a')
-    >>> plt.plot(x_plot, y_plot_b, label='y_b')
-    >>> plt.legend()
-    >>> plt.xlabel("x")
-    >>> plt.ylabel("y")
-    >>> plt.show()
-
-    We see that the two solutions have similar shape, but differ in scale
-    significantly.
-
-    In the second example, we solve a simple Sturm-Liouville problem::
-
-        y'' + k**2 * y = 0
-        y(0) = y(1) = 0
-
-    It is known that a non-trivial solution y = A * sin(k * x) is possible for
-    k = pi * n, where n is an integer. To establish the normalization constant
-    A = 1 we add a boundary condition::
-
-        y'(0) = k
-
-    Again, we rewrite our equation as a first-order system and implement its
-    right-hand side evaluation::
-
-        y1' = y2
-        y2' = -k**2 * y1
-
-    >>> def fun(x, y, p):
-    ...     k = p[0]
-    ...     return np.vstack((y[1], -k**2 * y[0]))
-
-    Note that parameters p are passed as a vector (with one element in our
-    case).
-
-    Implement the boundary conditions:
-
-    >>> def bc(ya, yb, p):
-    ...     k = p[0]
-    ...     return np.array([ya[0], yb[0], ya[1] - k])
-
-    Set up the initial mesh and guess for y. We aim to find the solution for
-    k = 2 * pi, to achieve that we set values of y to approximately follow
-    sin(2 * pi * x):
-
-    >>> x = np.linspace(0, 1, 5)
-    >>> y = np.zeros((2, x.size))
-    >>> y[0, 1] = 1
-    >>> y[0, 3] = -1
-
-    Run the solver with 6 as an initial guess for k.
-
-    >>> sol = solve_bvp(fun, bc, x, y, p=[6])
-
-    We see that the found k is approximately correct:
-
-    >>> sol.p[0]
-    6.28329460046
-
-    And, finally, plot the solution to see the anticipated sinusoid:
-
-    >>> x_plot = np.linspace(0, 1, 100)
-    >>> y_plot = sol.sol(x_plot)[0]
-    >>> plt.plot(x_plot, y_plot)
-    >>> plt.xlabel("x")
-    >>> plt.ylabel("y")
-    >>> plt.show()
-    """
-    x = np.asarray(x, dtype=float)
-    if x.ndim != 1:
-        raise ValueError("`x` must be 1 dimensional.")
-    h = np.diff(x)
-    if np.any(h <= 0):
-        raise ValueError("`x` must be strictly increasing.")
-    a = x[0]
-
-    y = np.asarray(y)
-    if np.issubdtype(y.dtype, np.complexfloating):
-        dtype = complex
-    else:
-        dtype = float
-    y = y.astype(dtype, copy=False)
-
-    if y.ndim != 2:
-        raise ValueError("`y` must be 2 dimensional.")
-    if y.shape[1] != x.shape[0]:
-        raise ValueError(f"`y` is expected to have {x.shape[0]} columns, but actually "
-                         f"has {y.shape[1]}.")
-
-    if p is None:
-        p = np.array([])
-    else:
-        p = np.asarray(p, dtype=dtype)
-    if p.ndim != 1:
-        raise ValueError("`p` must be 1 dimensional.")
-
-    if tol < 100 * EPS:
-        warn(f"`tol` is too low, setting to {100 * EPS:.2e}", stacklevel=2)
-        tol = 100 * EPS
-
-    if verbose not in [0, 1, 2]:
-        raise ValueError("`verbose` must be in [0, 1, 2].")
-
-    n = y.shape[0]
-    k = p.shape[0]
-
-    if S is not None:
-        S = np.asarray(S, dtype=dtype)
-        if S.shape != (n, n):
-            raise ValueError(f"`S` is expected to have shape {(n, n)}, "
-                             f"but actually has {S.shape}")
-
-        # Compute I - S^+ S to impose necessary boundary conditions.
-        B = np.identity(n) - np.dot(pinv(S), S)
-
-        y[:, 0] = np.dot(B, y[:, 0])
-
-        # Compute (I - S)^+ to correct derivatives at x=a.
-        D = pinv(np.identity(n) - S)
-    else:
-        B = None
-        D = None
-
-    if bc_tol is None:
-        bc_tol = tol
-
-    # Maximum number of iterations
-    max_iteration = 10
-
-    fun_wrapped, bc_wrapped, fun_jac_wrapped, bc_jac_wrapped = wrap_functions(
-        fun, bc, fun_jac, bc_jac, k, a, S, D, dtype)
-
-    f = fun_wrapped(x, y, p)
-    if f.shape != y.shape:
-        raise ValueError(f"`fun` return is expected to have shape {y.shape}, "
-                         f"but actually has {f.shape}.")
-
-    bc_res = bc_wrapped(y[:, 0], y[:, -1], p)
-    if bc_res.shape != (n + k,):
-        raise ValueError(f"`bc` return is expected to have shape {(n + k,)}, "
-                         f"but actually has {bc_res.shape}.")
-
-    status = 0
-    iteration = 0
-    if verbose == 2:
-        print_iteration_header()
-
-    while True:
-        m = x.shape[0]
-
-        col_fun, jac_sys = prepare_sys(n, m, k, fun_wrapped, bc_wrapped,
-                                       fun_jac_wrapped, bc_jac_wrapped, x, h)
-        y, p, singular = solve_newton(n, m, h, col_fun, bc_wrapped, jac_sys,
-                                      y, p, B, tol, bc_tol)
-        iteration += 1
-
-        col_res, y_middle, f, f_middle = collocation_fun(fun_wrapped, y,
-                                                         p, x, h)
-        bc_res = bc_wrapped(y[:, 0], y[:, -1], p)
-        max_bc_res = np.max(abs(bc_res))
-
-        # This relation is not trivial, but can be verified.
-        r_middle = 1.5 * col_res / h
-        sol = create_spline(y, f, x, h)
-        rms_res = estimate_rms_residuals(fun_wrapped, sol, x, h, p,
-                                         r_middle, f_middle)
-        max_rms_res = np.max(rms_res)
-
-        if singular:
-            status = 2
-            break
-
-        insert_1, = np.nonzero((rms_res > tol) & (rms_res < 100 * tol))
-        insert_2, = np.nonzero(rms_res >= 100 * tol)
-        nodes_added = insert_1.shape[0] + 2 * insert_2.shape[0]
-
-        if m + nodes_added > max_nodes:
-            status = 1
-            if verbose == 2:
-                nodes_added = f"({nodes_added})"
-                print_iteration_progress(iteration, max_rms_res, max_bc_res,
-                                         m, nodes_added)
-            break
-
-        if verbose == 2:
-            print_iteration_progress(iteration, max_rms_res, max_bc_res, m,
-                                     nodes_added)
-
-        if nodes_added > 0:
-            x = modify_mesh(x, insert_1, insert_2)
-            h = np.diff(x)
-            y = sol(x)
-        elif max_bc_res <= bc_tol:
-            status = 0
-            break
-        elif iteration >= max_iteration:
-            status = 3
-            break
-
-    if verbose > 0:
-        if status == 0:
-            print(f"Solved in {iteration} iterations, number of nodes {x.shape[0]}. \n"
-                  f"Maximum relative residual: {max_rms_res:.2e} \n"
-                  f"Maximum boundary residual: {max_bc_res:.2e}")
-        elif status == 1:
-            print(f"Number of nodes is exceeded after iteration {iteration}. \n"
-                  f"Maximum relative residual: {max_rms_res:.2e} \n"
-                  f"Maximum boundary residual: {max_bc_res:.2e}")
-        elif status == 2:
-            print("Singular Jacobian encountered when solving the collocation "
-                  f"system on iteration {iteration}. \n"
-                  f"Maximum relative residual: {max_rms_res:.2e} \n"
-                  f"Maximum boundary residual: {max_bc_res:.2e}")
-        elif status == 3:
-            print("The solver was unable to satisfy boundary conditions "
-                  f"tolerance on iteration {iteration}. \n"
-                  f"Maximum relative residual: {max_rms_res:.2e} \n"
-                  f"Maximum boundary residual: {max_bc_res:.2e}")
-
-    if p.size == 0:
-        p = None
-
-    return BVPResult(sol=sol, p=p, x=x, y=y, yp=f, rms_residuals=rms_res,
-                     niter=iteration, status=status,
-                     message=TERMINATION_MESSAGES[status], success=status == 0)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__init__.py
deleted file mode 100644
index f3c8aaa36588651ae5e48b58fbb1d443bc71fc77..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__init__.py
+++ /dev/null
@@ -1,8 +0,0 @@
-"""Suite of ODE solvers implemented in Python."""
-from .ivp import solve_ivp
-from .rk import RK23, RK45, DOP853
-from .radau import Radau
-from .bdf import BDF
-from .lsoda import LSODA
-from .common import OdeSolution
-from .base import DenseOutput, OdeSolver
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index d0d832a21a3cc95e919a14137097d00f6e84ac0e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/base.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/base.cpython-310.pyc
deleted file mode 100644
index 6a716ae08c6d1d98ce9b92a8248c579412234e9a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/base.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/bdf.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/bdf.cpython-310.pyc
deleted file mode 100644
index d02c664bd763cbd3069980795ce2ef0fe71ae1df..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/bdf.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/common.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/common.cpython-310.pyc
deleted file mode 100644
index 8d68ee34106b01c3af79c048fbec74955d8e7ce3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/common.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/dop853_coefficients.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/dop853_coefficients.cpython-310.pyc
deleted file mode 100644
index ed25b715c92370619c2b92c976b36e8a668e6f1d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/dop853_coefficients.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/ivp.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/ivp.cpython-310.pyc
deleted file mode 100644
index b92f926d5b4c5e8e54d15ceda0f575404649533e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/ivp.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/lsoda.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/lsoda.cpython-310.pyc
deleted file mode 100644
index c7eaa91fd7da81e065612bd56c6151b65cab5454..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/lsoda.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/radau.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/radau.cpython-310.pyc
deleted file mode 100644
index 2583787b20aaacca994b01b47263244cb0f1c4be..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/radau.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/rk.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/rk.cpython-310.pyc
deleted file mode 100644
index a872a5da1626702f964b518dc8f215a18c4ac867..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/__pycache__/rk.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/base.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/base.py
deleted file mode 100644
index 46db9a69dfb3e7aee5c150ac6795234cd455dfe5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/base.py
+++ /dev/null
@@ -1,290 +0,0 @@
-import numpy as np
-
-
-def check_arguments(fun, y0, support_complex):
-    """Helper function for checking arguments common to all solvers."""
-    y0 = np.asarray(y0)
-    if np.issubdtype(y0.dtype, np.complexfloating):
-        if not support_complex:
-            raise ValueError("`y0` is complex, but the chosen solver does "
-                             "not support integration in a complex domain.")
-        dtype = complex
-    else:
-        dtype = float
-    y0 = y0.astype(dtype, copy=False)
-
-    if y0.ndim != 1:
-        raise ValueError("`y0` must be 1-dimensional.")
-
-    if not np.isfinite(y0).all():
-        raise ValueError("All components of the initial state `y0` must be finite.")
-
-    def fun_wrapped(t, y):
-        return np.asarray(fun(t, y), dtype=dtype)
-
-    return fun_wrapped, y0
-
-
-class OdeSolver:
-    """Base class for ODE solvers.
-
-    In order to implement a new solver you need to follow the guidelines:
-
-        1. A constructor must accept parameters presented in the base class
-           (listed below) along with any other parameters specific to a solver.
-        2. A constructor must accept arbitrary extraneous arguments
-           ``**extraneous``, but warn that these arguments are irrelevant
-           using `common.warn_extraneous` function. Do not pass these
-           arguments to the base class.
-        3. A solver must implement a private method `_step_impl(self)` which
-           propagates a solver one step further. It must return tuple
-           ``(success, message)``, where ``success`` is a boolean indicating
-           whether a step was successful, and ``message`` is a string
-           containing description of a failure if a step failed or None
-           otherwise.
-        4. A solver must implement a private method `_dense_output_impl(self)`,
-           which returns a `DenseOutput` object covering the last successful
-           step.
-        5. A solver must have attributes listed below in Attributes section.
-           Note that ``t_old`` and ``step_size`` are updated automatically.
-        6. Use `fun(self, t, y)` method for the system rhs evaluation, this
-           way the number of function evaluations (`nfev`) will be tracked
-           automatically.
-        7. For convenience, a base class provides `fun_single(self, t, y)` and
-           `fun_vectorized(self, t, y)` for evaluating the rhs in
-           non-vectorized and vectorized fashions respectively (regardless of
-           how `fun` from the constructor is implemented). These calls don't
-           increment `nfev`.
-        8. If a solver uses a Jacobian matrix and LU decompositions, it should
-           track the number of Jacobian evaluations (`njev`) and the number of
-           LU decompositions (`nlu`).
-        9. By convention, the function evaluations used to compute a finite
-           difference approximation of the Jacobian should not be counted in
-           `nfev`, thus use `fun_single(self, t, y)` or
-           `fun_vectorized(self, t, y)` when computing a finite difference
-           approximation of the Jacobian.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system: the time derivative of the state ``y``
-        at time ``t``. The calling signature is ``fun(t, y)``, where ``t`` is a
-        scalar and ``y`` is an ndarray with ``len(y) = len(y0)``. ``fun`` must
-        return an array of the same shape as ``y``. See `vectorized` for more
-        information.
-    t0 : float
-        Initial time.
-    y0 : array_like, shape (n,)
-        Initial state.
-    t_bound : float
-        Boundary time --- the integration won't continue beyond it. It also
-        determines the direction of the integration.
-    vectorized : bool
-        Whether `fun` can be called in a vectorized fashion. Default is False.
-
-        If ``vectorized`` is False, `fun` will always be called with ``y`` of
-        shape ``(n,)``, where ``n = len(y0)``.
-
-        If ``vectorized`` is True, `fun` may be called with ``y`` of shape
-        ``(n, k)``, where ``k`` is an integer. In this case, `fun` must behave
-        such that ``fun(t, y)[:, i] == fun(t, y[:, i])`` (i.e. each column of
-        the returned array is the time derivative of the state corresponding
-        with a column of ``y``).
-
-        Setting ``vectorized=True`` allows for faster finite difference
-        approximation of the Jacobian by methods 'Radau' and 'BDF', but
-        will result in slower execution for other methods. It can also
-        result in slower overall execution for 'Radau' and 'BDF' in some
-        circumstances (e.g. small ``len(y0)``).
-    support_complex : bool, optional
-        Whether integration in a complex domain should be supported.
-        Generally determined by a derived solver class capabilities.
-        Default is False.
-
-    Attributes
-    ----------
-    n : int
-        Number of equations.
-    status : string
-        Current status of the solver: 'running', 'finished' or 'failed'.
-    t_bound : float
-        Boundary time.
-    direction : float
-        Integration direction: +1 or -1.
-    t : float
-        Current time.
-    y : ndarray
-        Current state.
-    t_old : float
-        Previous time. None if no steps were made yet.
-    step_size : float
-        Size of the last successful step. None if no steps were made yet.
-    nfev : int
-        Number of the system's rhs evaluations.
-    njev : int
-        Number of the Jacobian evaluations.
-    nlu : int
-        Number of LU decompositions.
-    """
-    TOO_SMALL_STEP = "Required step size is less than spacing between numbers."
-
-    def __init__(self, fun, t0, y0, t_bound, vectorized,
-                 support_complex=False):
-        self.t_old = None
-        self.t = t0
-        self._fun, self.y = check_arguments(fun, y0, support_complex)
-        self.t_bound = t_bound
-        self.vectorized = vectorized
-
-        if vectorized:
-            def fun_single(t, y):
-                return self._fun(t, y[:, None]).ravel()
-            fun_vectorized = self._fun
-        else:
-            fun_single = self._fun
-
-            def fun_vectorized(t, y):
-                f = np.empty_like(y)
-                for i, yi in enumerate(y.T):
-                    f[:, i] = self._fun(t, yi)
-                return f
-
-        def fun(t, y):
-            self.nfev += 1
-            return self.fun_single(t, y)
-
-        self.fun = fun
-        self.fun_single = fun_single
-        self.fun_vectorized = fun_vectorized
-
-        self.direction = np.sign(t_bound - t0) if t_bound != t0 else 1
-        self.n = self.y.size
-        self.status = 'running'
-
-        self.nfev = 0
-        self.njev = 0
-        self.nlu = 0
-
-    @property
-    def step_size(self):
-        if self.t_old is None:
-            return None
-        else:
-            return np.abs(self.t - self.t_old)
-
-    def step(self):
-        """Perform one integration step.
-
-        Returns
-        -------
-        message : string or None
-            Report from the solver. Typically a reason for a failure if
-            `self.status` is 'failed' after the step was taken or None
-            otherwise.
-        """
-        if self.status != 'running':
-            raise RuntimeError("Attempt to step on a failed or finished "
-                               "solver.")
-
-        if self.n == 0 or self.t == self.t_bound:
-            # Handle corner cases of empty solver or no integration.
-            self.t_old = self.t
-            self.t = self.t_bound
-            message = None
-            self.status = 'finished'
-        else:
-            t = self.t
-            success, message = self._step_impl()
-
-            if not success:
-                self.status = 'failed'
-            else:
-                self.t_old = t
-                if self.direction * (self.t - self.t_bound) >= 0:
-                    self.status = 'finished'
-
-        return message
-
-    def dense_output(self):
-        """Compute a local interpolant over the last successful step.
-
-        Returns
-        -------
-        sol : `DenseOutput`
-            Local interpolant over the last successful step.
-        """
-        if self.t_old is None:
-            raise RuntimeError("Dense output is available after a successful "
-                               "step was made.")
-
-        if self.n == 0 or self.t == self.t_old:
-            # Handle corner cases of empty solver and no integration.
-            return ConstantDenseOutput(self.t_old, self.t, self.y)
-        else:
-            return self._dense_output_impl()
-
-    def _step_impl(self):
-        raise NotImplementedError
-
-    def _dense_output_impl(self):
-        raise NotImplementedError
-
-
-class DenseOutput:
-    """Base class for local interpolant over step made by an ODE solver.
-
-    It interpolates between `t_min` and `t_max` (see Attributes below).
-    Evaluation outside this interval is not forbidden, but the accuracy is not
-    guaranteed.
-
-    Attributes
-    ----------
-    t_min, t_max : float
-        Time range of the interpolation.
-    """
-    def __init__(self, t_old, t):
-        self.t_old = t_old
-        self.t = t
-        self.t_min = min(t, t_old)
-        self.t_max = max(t, t_old)
-
-    def __call__(self, t):
-        """Evaluate the interpolant.
-
-        Parameters
-        ----------
-        t : float or array_like with shape (n_points,)
-            Points to evaluate the solution at.
-
-        Returns
-        -------
-        y : ndarray, shape (n,) or (n, n_points)
-            Computed values. Shape depends on whether `t` was a scalar or a
-            1-D array.
-        """
-        t = np.asarray(t)
-        if t.ndim > 1:
-            raise ValueError("`t` must be a float or a 1-D array.")
-        return self._call_impl(t)
-
-    def _call_impl(self, t):
-        raise NotImplementedError
-
-
-class ConstantDenseOutput(DenseOutput):
-    """Constant value interpolator.
-
-    This class used for degenerate integration cases: equal integration limits
-    or a system with 0 equations.
-    """
-    def __init__(self, t_old, t, value):
-        super().__init__(t_old, t)
-        self.value = value
-
-    def _call_impl(self, t):
-        if t.ndim == 0:
-            return self.value
-        else:
-            ret = np.empty((self.value.shape[0], t.shape[0]))
-            ret[:] = self.value[:, None]
-            return ret
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/bdf.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/bdf.py
deleted file mode 100644
index 29bd9461519255c0bdab6e2172a9e549cb709cbd..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/bdf.py
+++ /dev/null
@@ -1,480 +0,0 @@
-import numpy as np
-from scipy.linalg import lu_factor, lu_solve
-from scipy.sparse import issparse, csc_matrix, eye
-from scipy.sparse.linalg import splu
-from scipy.optimize._numdiff import group_columns
-from .common import (validate_max_step, validate_tol, select_initial_step,
-                     norm, EPS, num_jac, validate_first_step,
-                     warn_extraneous)
-from .base import OdeSolver, DenseOutput
-
-
-MAX_ORDER = 5
-NEWTON_MAXITER = 4
-MIN_FACTOR = 0.2
-MAX_FACTOR = 10
-
-
-def compute_R(order, factor):
-    """Compute the matrix for changing the differences array."""
-    I = np.arange(1, order + 1)[:, None]
-    J = np.arange(1, order + 1)
-    M = np.zeros((order + 1, order + 1))
-    M[1:, 1:] = (I - 1 - factor * J) / I
-    M[0] = 1
-    return np.cumprod(M, axis=0)
-
-
-def change_D(D, order, factor):
-    """Change differences array in-place when step size is changed."""
-    R = compute_R(order, factor)
-    U = compute_R(order, 1)
-    RU = R.dot(U)
-    D[:order + 1] = np.dot(RU.T, D[:order + 1])
-
-
-def solve_bdf_system(fun, t_new, y_predict, c, psi, LU, solve_lu, scale, tol):
-    """Solve the algebraic system resulting from BDF method."""
-    d = 0
-    y = y_predict.copy()
-    dy_norm_old = None
-    converged = False
-    for k in range(NEWTON_MAXITER):
-        f = fun(t_new, y)
-        if not np.all(np.isfinite(f)):
-            break
-
-        dy = solve_lu(LU, c * f - psi - d)
-        dy_norm = norm(dy / scale)
-
-        if dy_norm_old is None:
-            rate = None
-        else:
-            rate = dy_norm / dy_norm_old
-
-        if (rate is not None and (rate >= 1 or
-                rate ** (NEWTON_MAXITER - k) / (1 - rate) * dy_norm > tol)):
-            break
-
-        y += dy
-        d += dy
-
-        if (dy_norm == 0 or
-                rate is not None and rate / (1 - rate) * dy_norm < tol):
-            converged = True
-            break
-
-        dy_norm_old = dy_norm
-
-    return converged, k + 1, y, d
-
-
-class BDF(OdeSolver):
-    """Implicit method based on backward-differentiation formulas.
-
-    This is a variable order method with the order varying automatically from
-    1 to 5. The general framework of the BDF algorithm is described in [1]_.
-    This class implements a quasi-constant step size as explained in [2]_.
-    The error estimation strategy for the constant-step BDF is derived in [3]_.
-    An accuracy enhancement using modified formulas (NDF) [2]_ is also implemented.
-
-    Can be applied in the complex domain.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system: the time derivative of the state ``y``
-        at time ``t``. The calling signature is ``fun(t, y)``, where ``t`` is a
-        scalar and ``y`` is an ndarray with ``len(y) = len(y0)``. ``fun`` must
-        return an array of the same shape as ``y``. See `vectorized` for more
-        information.
-    t0 : float
-        Initial time.
-    y0 : array_like, shape (n,)
-        Initial state.
-    t_bound : float
-        Boundary time - the integration won't continue beyond it. It also
-        determines the direction of the integration.
-    first_step : float or None, optional
-        Initial step size. Default is ``None`` which means that the algorithm
-        should choose.
-    max_step : float, optional
-        Maximum allowed step size. Default is np.inf, i.e., the step size is not
-        bounded and determined solely by the solver.
-    rtol, atol : float and array_like, optional
-        Relative and absolute tolerances. The solver keeps the local error
-        estimates less than ``atol + rtol * abs(y)``. Here `rtol` controls a
-        relative accuracy (number of correct digits), while `atol` controls
-        absolute accuracy (number of correct decimal places). To achieve the
-        desired `rtol`, set `atol` to be smaller than the smallest value that
-        can be expected from ``rtol * abs(y)`` so that `rtol` dominates the
-        allowable error. If `atol` is larger than ``rtol * abs(y)`` the
-        number of correct digits is not guaranteed. Conversely, to achieve the
-        desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller
-        than `atol`. If components of y have different scales, it might be
-        beneficial to set different `atol` values for different components by
-        passing array_like with shape (n,) for `atol`. Default values are
-        1e-3 for `rtol` and 1e-6 for `atol`.
-    jac : {None, array_like, sparse_matrix, callable}, optional
-        Jacobian matrix of the right-hand side of the system with respect to y,
-        required by this method. The Jacobian matrix has shape (n, n) and its
-        element (i, j) is equal to ``d f_i / d y_j``.
-        There are three ways to define the Jacobian:
-
-            * If array_like or sparse_matrix, the Jacobian is assumed to
-              be constant.
-            * If callable, the Jacobian is assumed to depend on both
-              t and y; it will be called as ``jac(t, y)`` as necessary.
-              For the 'Radau' and 'BDF' methods, the return value might be a
-              sparse matrix.
-            * If None (default), the Jacobian will be approximated by
-              finite differences.
-
-        It is generally recommended to provide the Jacobian rather than
-        relying on a finite-difference approximation.
-    jac_sparsity : {None, array_like, sparse matrix}, optional
-        Defines a sparsity structure of the Jacobian matrix for a
-        finite-difference approximation. Its shape must be (n, n). This argument
-        is ignored if `jac` is not `None`. If the Jacobian has only few non-zero
-        elements in *each* row, providing the sparsity structure will greatly
-        speed up the computations [4]_. A zero entry means that a corresponding
-        element in the Jacobian is always zero. If None (default), the Jacobian
-        is assumed to be dense.
-    vectorized : bool, optional
-        Whether `fun` can be called in a vectorized fashion. Default is False.
-
-        If ``vectorized`` is False, `fun` will always be called with ``y`` of
-        shape ``(n,)``, where ``n = len(y0)``.
-
-        If ``vectorized`` is True, `fun` may be called with ``y`` of shape
-        ``(n, k)``, where ``k`` is an integer. In this case, `fun` must behave
-        such that ``fun(t, y)[:, i] == fun(t, y[:, i])`` (i.e. each column of
-        the returned array is the time derivative of the state corresponding
-        with a column of ``y``).
-
-        Setting ``vectorized=True`` allows for faster finite difference
-        approximation of the Jacobian by this method, but may result in slower
-        execution overall in some circumstances (e.g. small ``len(y0)``).
-
-    Attributes
-    ----------
-    n : int
-        Number of equations.
-    status : string
-        Current status of the solver: 'running', 'finished' or 'failed'.
-    t_bound : float
-        Boundary time.
-    direction : float
-        Integration direction: +1 or -1.
-    t : float
-        Current time.
-    y : ndarray
-        Current state.
-    t_old : float
-        Previous time. None if no steps were made yet.
-    step_size : float
-        Size of the last successful step. None if no steps were made yet.
-    nfev : int
-        Number of evaluations of the right-hand side.
-    njev : int
-        Number of evaluations of the Jacobian.
-    nlu : int
-        Number of LU decompositions.
-
-    References
-    ----------
-    .. [1] G. D. Byrne, A. C. Hindmarsh, "A Polyalgorithm for the Numerical
-           Solution of Ordinary Differential Equations", ACM Transactions on
-           Mathematical Software, Vol. 1, No. 1, pp. 71-96, March 1975.
-    .. [2] L. F. Shampine, M. W. Reichelt, "THE MATLAB ODE SUITE", SIAM J. SCI.
-           COMPUTE., Vol. 18, No. 1, pp. 1-22, January 1997.
-    .. [3] E. Hairer, G. Wanner, "Solving Ordinary Differential Equations I:
-           Nonstiff Problems", Sec. III.2.
-    .. [4] A. Curtis, M. J. D. Powell, and J. Reid, "On the estimation of
-           sparse Jacobian matrices", Journal of the Institute of Mathematics
-           and its Applications, 13, pp. 117-120, 1974.
-    """
-    def __init__(self, fun, t0, y0, t_bound, max_step=np.inf,
-                 rtol=1e-3, atol=1e-6, jac=None, jac_sparsity=None,
-                 vectorized=False, first_step=None, **extraneous):
-        warn_extraneous(extraneous)
-        super().__init__(fun, t0, y0, t_bound, vectorized,
-                         support_complex=True)
-        self.max_step = validate_max_step(max_step)
-        self.rtol, self.atol = validate_tol(rtol, atol, self.n)
-        f = self.fun(self.t, self.y)
-        if first_step is None:
-            self.h_abs = select_initial_step(self.fun, self.t, self.y, 
-                                             t_bound, max_step, f,
-                                             self.direction, 1,
-                                             self.rtol, self.atol)
-        else:
-            self.h_abs = validate_first_step(first_step, t0, t_bound)
-        self.h_abs_old = None
-        self.error_norm_old = None
-
-        self.newton_tol = max(10 * EPS / rtol, min(0.03, rtol ** 0.5))
-
-        self.jac_factor = None
-        self.jac, self.J = self._validate_jac(jac, jac_sparsity)
-        if issparse(self.J):
-            def lu(A):
-                self.nlu += 1
-                return splu(A)
-
-            def solve_lu(LU, b):
-                return LU.solve(b)
-
-            I = eye(self.n, format='csc', dtype=self.y.dtype)
-        else:
-            def lu(A):
-                self.nlu += 1
-                return lu_factor(A, overwrite_a=True)
-
-            def solve_lu(LU, b):
-                return lu_solve(LU, b, overwrite_b=True)
-
-            I = np.identity(self.n, dtype=self.y.dtype)
-
-        self.lu = lu
-        self.solve_lu = solve_lu
-        self.I = I
-
-        kappa = np.array([0, -0.1850, -1/9, -0.0823, -0.0415, 0])
-        self.gamma = np.hstack((0, np.cumsum(1 / np.arange(1, MAX_ORDER + 1))))
-        self.alpha = (1 - kappa) * self.gamma
-        self.error_const = kappa * self.gamma + 1 / np.arange(1, MAX_ORDER + 2)
-
-        D = np.empty((MAX_ORDER + 3, self.n), dtype=self.y.dtype)
-        D[0] = self.y
-        D[1] = f * self.h_abs * self.direction
-        self.D = D
-
-        self.order = 1
-        self.n_equal_steps = 0
-        self.LU = None
-
-    def _validate_jac(self, jac, sparsity):
-        t0 = self.t
-        y0 = self.y
-
-        if jac is None:
-            if sparsity is not None:
-                if issparse(sparsity):
-                    sparsity = csc_matrix(sparsity)
-                groups = group_columns(sparsity)
-                sparsity = (sparsity, groups)
-
-            def jac_wrapped(t, y):
-                self.njev += 1
-                f = self.fun_single(t, y)
-                J, self.jac_factor = num_jac(self.fun_vectorized, t, y, f,
-                                             self.atol, self.jac_factor,
-                                             sparsity)
-                return J
-            J = jac_wrapped(t0, y0)
-        elif callable(jac):
-            J = jac(t0, y0)
-            self.njev += 1
-            if issparse(J):
-                J = csc_matrix(J, dtype=y0.dtype)
-
-                def jac_wrapped(t, y):
-                    self.njev += 1
-                    return csc_matrix(jac(t, y), dtype=y0.dtype)
-            else:
-                J = np.asarray(J, dtype=y0.dtype)
-
-                def jac_wrapped(t, y):
-                    self.njev += 1
-                    return np.asarray(jac(t, y), dtype=y0.dtype)
-
-            if J.shape != (self.n, self.n):
-                raise ValueError("`jac` is expected to have shape {}, but "
-                                 "actually has {}."
-                                 .format((self.n, self.n), J.shape))
-        else:
-            if issparse(jac):
-                J = csc_matrix(jac, dtype=y0.dtype)
-            else:
-                J = np.asarray(jac, dtype=y0.dtype)
-
-            if J.shape != (self.n, self.n):
-                raise ValueError("`jac` is expected to have shape {}, but "
-                                 "actually has {}."
-                                 .format((self.n, self.n), J.shape))
-            jac_wrapped = None
-
-        return jac_wrapped, J
-
-    def _step_impl(self):
-        t = self.t
-        D = self.D
-
-        max_step = self.max_step
-        min_step = 10 * np.abs(np.nextafter(t, self.direction * np.inf) - t)
-        if self.h_abs > max_step:
-            h_abs = max_step
-            change_D(D, self.order, max_step / self.h_abs)
-            self.n_equal_steps = 0
-        elif self.h_abs < min_step:
-            h_abs = min_step
-            change_D(D, self.order, min_step / self.h_abs)
-            self.n_equal_steps = 0
-        else:
-            h_abs = self.h_abs
-
-        atol = self.atol
-        rtol = self.rtol
-        order = self.order
-
-        alpha = self.alpha
-        gamma = self.gamma
-        error_const = self.error_const
-
-        J = self.J
-        LU = self.LU
-        current_jac = self.jac is None
-
-        step_accepted = False
-        while not step_accepted:
-            if h_abs < min_step:
-                return False, self.TOO_SMALL_STEP
-
-            h = h_abs * self.direction
-            t_new = t + h
-
-            if self.direction * (t_new - self.t_bound) > 0:
-                t_new = self.t_bound
-                change_D(D, order, np.abs(t_new - t) / h_abs)
-                self.n_equal_steps = 0
-                LU = None
-
-            h = t_new - t
-            h_abs = np.abs(h)
-
-            y_predict = np.sum(D[:order + 1], axis=0)
-
-            scale = atol + rtol * np.abs(y_predict)
-            psi = np.dot(D[1: order + 1].T, gamma[1: order + 1]) / alpha[order]
-
-            converged = False
-            c = h / alpha[order]
-            while not converged:
-                if LU is None:
-                    LU = self.lu(self.I - c * J)
-
-                converged, n_iter, y_new, d = solve_bdf_system(
-                    self.fun, t_new, y_predict, c, psi, LU, self.solve_lu,
-                    scale, self.newton_tol)
-
-                if not converged:
-                    if current_jac:
-                        break
-                    J = self.jac(t_new, y_predict)
-                    LU = None
-                    current_jac = True
-
-            if not converged:
-                factor = 0.5
-                h_abs *= factor
-                change_D(D, order, factor)
-                self.n_equal_steps = 0
-                LU = None
-                continue
-
-            safety = 0.9 * (2 * NEWTON_MAXITER + 1) / (2 * NEWTON_MAXITER
-                                                       + n_iter)
-
-            scale = atol + rtol * np.abs(y_new)
-            error = error_const[order] * d
-            error_norm = norm(error / scale)
-
-            if error_norm > 1:
-                factor = max(MIN_FACTOR,
-                             safety * error_norm ** (-1 / (order + 1)))
-                h_abs *= factor
-                change_D(D, order, factor)
-                self.n_equal_steps = 0
-                # As we didn't have problems with convergence, we don't
-                # reset LU here.
-            else:
-                step_accepted = True
-
-        self.n_equal_steps += 1
-
-        self.t = t_new
-        self.y = y_new
-
-        self.h_abs = h_abs
-        self.J = J
-        self.LU = LU
-
-        # Update differences. The principal relation here is
-        # D^{j + 1} y_n = D^{j} y_n - D^{j} y_{n - 1}. Keep in mind that D
-        # contained difference for previous interpolating polynomial and
-        # d = D^{k + 1} y_n. Thus this elegant code follows.
-        D[order + 2] = d - D[order + 1]
-        D[order + 1] = d
-        for i in reversed(range(order + 1)):
-            D[i] += D[i + 1]
-
-        if self.n_equal_steps < order + 1:
-            return True, None
-
-        if order > 1:
-            error_m = error_const[order - 1] * D[order]
-            error_m_norm = norm(error_m / scale)
-        else:
-            error_m_norm = np.inf
-
-        if order < MAX_ORDER:
-            error_p = error_const[order + 1] * D[order + 2]
-            error_p_norm = norm(error_p / scale)
-        else:
-            error_p_norm = np.inf
-
-        error_norms = np.array([error_m_norm, error_norm, error_p_norm])
-        with np.errstate(divide='ignore'):
-            factors = error_norms ** (-1 / np.arange(order, order + 3))
-
-        delta_order = np.argmax(factors) - 1
-        order += delta_order
-        self.order = order
-
-        factor = min(MAX_FACTOR, safety * np.max(factors))
-        self.h_abs *= factor
-        change_D(D, order, factor)
-        self.n_equal_steps = 0
-        self.LU = None
-
-        return True, None
-
-    def _dense_output_impl(self):
-        return BdfDenseOutput(self.t_old, self.t, self.h_abs * self.direction,
-                              self.order, self.D[:self.order + 1].copy())
-
-
-class BdfDenseOutput(DenseOutput):
-    def __init__(self, t_old, t, h, order, D):
-        super().__init__(t_old, t)
-        self.order = order
-        self.t_shift = self.t - h * np.arange(self.order)
-        self.denom = h * (1 + np.arange(self.order))
-        self.D = D
-
-    def _call_impl(self, t):
-        if t.ndim == 0:
-            x = (t - self.t_shift) / self.denom
-            p = np.cumprod(x)
-        else:
-            x = (t - self.t_shift[:, None]) / self.denom[:, None]
-            p = np.cumprod(x, axis=0)
-
-        y = np.dot(self.D[1:].T, p)
-        if y.ndim == 1:
-            y += self.D[0]
-        else:
-            y += self.D[0, :, None]
-
-        return y
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/common.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/common.py
deleted file mode 100644
index 4ff0b7056a0e7d117232b87fe9148bb23b7cf2ba..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/common.py
+++ /dev/null
@@ -1,451 +0,0 @@
-from itertools import groupby
-from warnings import warn
-import numpy as np
-from scipy.sparse import find, coo_matrix
-
-
-EPS = np.finfo(float).eps
-
-
-def validate_first_step(first_step, t0, t_bound):
-    """Assert that first_step is valid and return it."""
-    if first_step <= 0:
-        raise ValueError("`first_step` must be positive.")
-    if first_step > np.abs(t_bound - t0):
-        raise ValueError("`first_step` exceeds bounds.")
-    return first_step
-
-
-def validate_max_step(max_step):
-    """Assert that max_Step is valid and return it."""
-    if max_step <= 0:
-        raise ValueError("`max_step` must be positive.")
-    return max_step
-
-
-def warn_extraneous(extraneous):
-    """Display a warning for extraneous keyword arguments.
-
-    The initializer of each solver class is expected to collect keyword
-    arguments that it doesn't understand and warn about them. This function
-    prints a warning for each key in the supplied dictionary.
-
-    Parameters
-    ----------
-    extraneous : dict
-        Extraneous keyword arguments
-    """
-    if extraneous:
-        warn("The following arguments have no effect for a chosen solver: {}."
-             .format(", ".join(f"`{x}`" for x in extraneous)),
-             stacklevel=3)
-
-
-def validate_tol(rtol, atol, n):
-    """Validate tolerance values."""
-
-    if np.any(rtol < 100 * EPS):
-        warn("At least one element of `rtol` is too small. "
-             f"Setting `rtol = np.maximum(rtol, {100 * EPS})`.",
-             stacklevel=3)
-        rtol = np.maximum(rtol, 100 * EPS)
-
-    atol = np.asarray(atol)
-    if atol.ndim > 0 and atol.shape != (n,):
-        raise ValueError("`atol` has wrong shape.")
-
-    if np.any(atol < 0):
-        raise ValueError("`atol` must be positive.")
-
-    return rtol, atol
-
-
-def norm(x):
-    """Compute RMS norm."""
-    return np.linalg.norm(x) / x.size ** 0.5
-
-
-def select_initial_step(fun, t0, y0, t_bound, 
-                        max_step, f0, direction, order, rtol, atol):
-    """Empirically select a good initial step.
-
-    The algorithm is described in [1]_.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system.
-    t0 : float
-        Initial value of the independent variable.
-    y0 : ndarray, shape (n,)
-        Initial value of the dependent variable.
-    t_bound : float
-        End-point of integration interval; used to ensure that t0+step<=tbound 
-        and that fun is only evaluated in the interval [t0,tbound]
-    max_step : float
-        Maximum allowable step size.
-    f0 : ndarray, shape (n,)
-        Initial value of the derivative, i.e., ``fun(t0, y0)``.
-    direction : float
-        Integration direction.
-    order : float
-        Error estimator order. It means that the error controlled by the
-        algorithm is proportional to ``step_size ** (order + 1)`.
-    rtol : float
-        Desired relative tolerance.
-    atol : float
-        Desired absolute tolerance.
-
-    Returns
-    -------
-    h_abs : float
-        Absolute value of the suggested initial step.
-
-    References
-    ----------
-    .. [1] E. Hairer, S. P. Norsett G. Wanner, "Solving Ordinary Differential
-           Equations I: Nonstiff Problems", Sec. II.4.
-    """
-    if y0.size == 0:
-        return np.inf
-
-    interval_length = abs(t_bound - t0)
-    if interval_length == 0.0:
-        return 0.0
-    
-    scale = atol + np.abs(y0) * rtol
-    d0 = norm(y0 / scale)
-    d1 = norm(f0 / scale)
-    if d0 < 1e-5 or d1 < 1e-5:
-        h0 = 1e-6
-    else:
-        h0 = 0.01 * d0 / d1
-    # Check t0+h0*direction doesn't take us beyond t_bound
-    h0 = min(h0, interval_length)
-    y1 = y0 + h0 * direction * f0
-    f1 = fun(t0 + h0 * direction, y1)
-    d2 = norm((f1 - f0) / scale) / h0
-
-    if d1 <= 1e-15 and d2 <= 1e-15:
-        h1 = max(1e-6, h0 * 1e-3)
-    else:
-        h1 = (0.01 / max(d1, d2)) ** (1 / (order + 1))
-
-    return min(100 * h0, h1, interval_length, max_step)
-
-
-class OdeSolution:
-    """Continuous ODE solution.
-
-    It is organized as a collection of `DenseOutput` objects which represent
-    local interpolants. It provides an algorithm to select a right interpolant
-    for each given point.
-
-    The interpolants cover the range between `t_min` and `t_max` (see
-    Attributes below). Evaluation outside this interval is not forbidden, but
-    the accuracy is not guaranteed.
-
-    When evaluating at a breakpoint (one of the values in `ts`) a segment with
-    the lower index is selected.
-
-    Parameters
-    ----------
-    ts : array_like, shape (n_segments + 1,)
-        Time instants between which local interpolants are defined. Must
-        be strictly increasing or decreasing (zero segment with two points is
-        also allowed).
-    interpolants : list of DenseOutput with n_segments elements
-        Local interpolants. An i-th interpolant is assumed to be defined
-        between ``ts[i]`` and ``ts[i + 1]``.
-    alt_segment : boolean
-        Requests the alternative interpolant segment selection scheme. At each
-        solver integration point, two interpolant segments are available. The
-        default (False) and alternative (True) behaviours select the segment
-        for which the requested time corresponded to ``t`` and ``t_old``,
-        respectively. This functionality is only relevant for testing the
-        interpolants' accuracy: different integrators use different
-        construction strategies.
-
-    Attributes
-    ----------
-    t_min, t_max : float
-        Time range of the interpolation.
-    """
-    def __init__(self, ts, interpolants, alt_segment=False):
-        ts = np.asarray(ts)
-        d = np.diff(ts)
-        # The first case covers integration on zero segment.
-        if not ((ts.size == 2 and ts[0] == ts[-1])
-                or np.all(d > 0) or np.all(d < 0)):
-            raise ValueError("`ts` must be strictly increasing or decreasing.")
-
-        self.n_segments = len(interpolants)
-        if ts.shape != (self.n_segments + 1,):
-            raise ValueError("Numbers of time stamps and interpolants "
-                             "don't match.")
-
-        self.ts = ts
-        self.interpolants = interpolants
-        if ts[-1] >= ts[0]:
-            self.t_min = ts[0]
-            self.t_max = ts[-1]
-            self.ascending = True
-            self.side = "right" if alt_segment else "left"
-            self.ts_sorted = ts
-        else:
-            self.t_min = ts[-1]
-            self.t_max = ts[0]
-            self.ascending = False
-            self.side = "left" if alt_segment else "right"
-            self.ts_sorted = ts[::-1]
-
-    def _call_single(self, t):
-        # Here we preserve a certain symmetry that when t is in self.ts,
-        # if alt_segment=False, then we prioritize a segment with a lower
-        # index.
-        ind = np.searchsorted(self.ts_sorted, t, side=self.side)
-
-        segment = min(max(ind - 1, 0), self.n_segments - 1)
-        if not self.ascending:
-            segment = self.n_segments - 1 - segment
-
-        return self.interpolants[segment](t)
-
-    def __call__(self, t):
-        """Evaluate the solution.
-
-        Parameters
-        ----------
-        t : float or array_like with shape (n_points,)
-            Points to evaluate at.
-
-        Returns
-        -------
-        y : ndarray, shape (n_states,) or (n_states, n_points)
-            Computed values. Shape depends on whether `t` is a scalar or a
-            1-D array.
-        """
-        t = np.asarray(t)
-
-        if t.ndim == 0:
-            return self._call_single(t)
-
-        order = np.argsort(t)
-        reverse = np.empty_like(order)
-        reverse[order] = np.arange(order.shape[0])
-        t_sorted = t[order]
-
-        # See comment in self._call_single.
-        segments = np.searchsorted(self.ts_sorted, t_sorted, side=self.side)
-        segments -= 1
-        segments[segments < 0] = 0
-        segments[segments > self.n_segments - 1] = self.n_segments - 1
-        if not self.ascending:
-            segments = self.n_segments - 1 - segments
-
-        ys = []
-        group_start = 0
-        for segment, group in groupby(segments):
-            group_end = group_start + len(list(group))
-            y = self.interpolants[segment](t_sorted[group_start:group_end])
-            ys.append(y)
-            group_start = group_end
-
-        ys = np.hstack(ys)
-        ys = ys[:, reverse]
-
-        return ys
-
-
-NUM_JAC_DIFF_REJECT = EPS ** 0.875
-NUM_JAC_DIFF_SMALL = EPS ** 0.75
-NUM_JAC_DIFF_BIG = EPS ** 0.25
-NUM_JAC_MIN_FACTOR = 1e3 * EPS
-NUM_JAC_FACTOR_INCREASE = 10
-NUM_JAC_FACTOR_DECREASE = 0.1
-
-
-def num_jac(fun, t, y, f, threshold, factor, sparsity=None):
-    """Finite differences Jacobian approximation tailored for ODE solvers.
-
-    This function computes finite difference approximation to the Jacobian
-    matrix of `fun` with respect to `y` using forward differences.
-    The Jacobian matrix has shape (n, n) and its element (i, j) is equal to
-    ``d f_i / d y_j``.
-
-    A special feature of this function is the ability to correct the step
-    size from iteration to iteration. The main idea is to keep the finite
-    difference significantly separated from its round-off error which
-    approximately equals ``EPS * np.abs(f)``. It reduces a possibility of a
-    huge error and assures that the estimated derivative are reasonably close
-    to the true values (i.e., the finite difference approximation is at least
-    qualitatively reflects the structure of the true Jacobian).
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system implemented in a vectorized fashion.
-    t : float
-        Current time.
-    y : ndarray, shape (n,)
-        Current state.
-    f : ndarray, shape (n,)
-        Value of the right hand side at (t, y).
-    threshold : float
-        Threshold for `y` value used for computing the step size as
-        ``factor * np.maximum(np.abs(y), threshold)``. Typically, the value of
-        absolute tolerance (atol) for a solver should be passed as `threshold`.
-    factor : ndarray with shape (n,) or None
-        Factor to use for computing the step size. Pass None for the very
-        evaluation, then use the value returned from this function.
-    sparsity : tuple (structure, groups) or None
-        Sparsity structure of the Jacobian, `structure` must be csc_matrix.
-
-    Returns
-    -------
-    J : ndarray or csc_matrix, shape (n, n)
-        Jacobian matrix.
-    factor : ndarray, shape (n,)
-        Suggested `factor` for the next evaluation.
-    """
-    y = np.asarray(y)
-    n = y.shape[0]
-    if n == 0:
-        return np.empty((0, 0)), factor
-
-    if factor is None:
-        factor = np.full(n, EPS ** 0.5)
-    else:
-        factor = factor.copy()
-
-    # Direct the step as ODE dictates, hoping that such a step won't lead to
-    # a problematic region. For complex ODEs it makes sense to use the real
-    # part of f as we use steps along real axis.
-    f_sign = 2 * (np.real(f) >= 0).astype(float) - 1
-    y_scale = f_sign * np.maximum(threshold, np.abs(y))
-    h = (y + factor * y_scale) - y
-
-    # Make sure that the step is not 0 to start with. Not likely it will be
-    # executed often.
-    for i in np.nonzero(h == 0)[0]:
-        while h[i] == 0:
-            factor[i] *= 10
-            h[i] = (y[i] + factor[i] * y_scale[i]) - y[i]
-
-    if sparsity is None:
-        return _dense_num_jac(fun, t, y, f, h, factor, y_scale)
-    else:
-        structure, groups = sparsity
-        return _sparse_num_jac(fun, t, y, f, h, factor, y_scale,
-                               structure, groups)
-
-
-def _dense_num_jac(fun, t, y, f, h, factor, y_scale):
-    n = y.shape[0]
-    h_vecs = np.diag(h)
-    f_new = fun(t, y[:, None] + h_vecs)
-    diff = f_new - f[:, None]
-    max_ind = np.argmax(np.abs(diff), axis=0)
-    r = np.arange(n)
-    max_diff = np.abs(diff[max_ind, r])
-    scale = np.maximum(np.abs(f[max_ind]), np.abs(f_new[max_ind, r]))
-
-    diff_too_small = max_diff < NUM_JAC_DIFF_REJECT * scale
-    if np.any(diff_too_small):
-        ind, = np.nonzero(diff_too_small)
-        new_factor = NUM_JAC_FACTOR_INCREASE * factor[ind]
-        h_new = (y[ind] + new_factor * y_scale[ind]) - y[ind]
-        h_vecs[ind, ind] = h_new
-        f_new = fun(t, y[:, None] + h_vecs[:, ind])
-        diff_new = f_new - f[:, None]
-        max_ind = np.argmax(np.abs(diff_new), axis=0)
-        r = np.arange(ind.shape[0])
-        max_diff_new = np.abs(diff_new[max_ind, r])
-        scale_new = np.maximum(np.abs(f[max_ind]), np.abs(f_new[max_ind, r]))
-
-        update = max_diff[ind] * scale_new < max_diff_new * scale[ind]
-        if np.any(update):
-            update, = np.nonzero(update)
-            update_ind = ind[update]
-            factor[update_ind] = new_factor[update]
-            h[update_ind] = h_new[update]
-            diff[:, update_ind] = diff_new[:, update]
-            scale[update_ind] = scale_new[update]
-            max_diff[update_ind] = max_diff_new[update]
-
-    diff /= h
-
-    factor[max_diff < NUM_JAC_DIFF_SMALL * scale] *= NUM_JAC_FACTOR_INCREASE
-    factor[max_diff > NUM_JAC_DIFF_BIG * scale] *= NUM_JAC_FACTOR_DECREASE
-    factor = np.maximum(factor, NUM_JAC_MIN_FACTOR)
-
-    return diff, factor
-
-
-def _sparse_num_jac(fun, t, y, f, h, factor, y_scale, structure, groups):
-    n = y.shape[0]
-    n_groups = np.max(groups) + 1
-    h_vecs = np.empty((n_groups, n))
-    for group in range(n_groups):
-        e = np.equal(group, groups)
-        h_vecs[group] = h * e
-    h_vecs = h_vecs.T
-
-    f_new = fun(t, y[:, None] + h_vecs)
-    df = f_new - f[:, None]
-
-    i, j, _ = find(structure)
-    diff = coo_matrix((df[i, groups[j]], (i, j)), shape=(n, n)).tocsc()
-    max_ind = np.array(abs(diff).argmax(axis=0)).ravel()
-    r = np.arange(n)
-    max_diff = np.asarray(np.abs(diff[max_ind, r])).ravel()
-    scale = np.maximum(np.abs(f[max_ind]),
-                       np.abs(f_new[max_ind, groups[r]]))
-
-    diff_too_small = max_diff < NUM_JAC_DIFF_REJECT * scale
-    if np.any(diff_too_small):
-        ind, = np.nonzero(diff_too_small)
-        new_factor = NUM_JAC_FACTOR_INCREASE * factor[ind]
-        h_new = (y[ind] + new_factor * y_scale[ind]) - y[ind]
-        h_new_all = np.zeros(n)
-        h_new_all[ind] = h_new
-
-        groups_unique = np.unique(groups[ind])
-        groups_map = np.empty(n_groups, dtype=int)
-        h_vecs = np.empty((groups_unique.shape[0], n))
-        for k, group in enumerate(groups_unique):
-            e = np.equal(group, groups)
-            h_vecs[k] = h_new_all * e
-            groups_map[group] = k
-        h_vecs = h_vecs.T
-
-        f_new = fun(t, y[:, None] + h_vecs)
-        df = f_new - f[:, None]
-        i, j, _ = find(structure[:, ind])
-        diff_new = coo_matrix((df[i, groups_map[groups[ind[j]]]],
-                               (i, j)), shape=(n, ind.shape[0])).tocsc()
-
-        max_ind_new = np.array(abs(diff_new).argmax(axis=0)).ravel()
-        r = np.arange(ind.shape[0])
-        max_diff_new = np.asarray(np.abs(diff_new[max_ind_new, r])).ravel()
-        scale_new = np.maximum(
-            np.abs(f[max_ind_new]),
-            np.abs(f_new[max_ind_new, groups_map[groups[ind]]]))
-
-        update = max_diff[ind] * scale_new < max_diff_new * scale[ind]
-        if np.any(update):
-            update, = np.nonzero(update)
-            update_ind = ind[update]
-            factor[update_ind] = new_factor[update]
-            h[update_ind] = h_new[update]
-            diff[:, update_ind] = diff_new[:, update]
-            scale[update_ind] = scale_new[update]
-            max_diff[update_ind] = max_diff_new[update]
-
-    diff.data /= np.repeat(h, np.diff(diff.indptr))
-
-    factor[max_diff < NUM_JAC_DIFF_SMALL * scale] *= NUM_JAC_FACTOR_INCREASE
-    factor[max_diff > NUM_JAC_DIFF_BIG * scale] *= NUM_JAC_FACTOR_DECREASE
-    factor = np.maximum(factor, NUM_JAC_MIN_FACTOR)
-
-    return diff, factor
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/dop853_coefficients.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/dop853_coefficients.py
deleted file mode 100644
index f39f2f3650d321e2c475d4e220f9769139118a5e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/dop853_coefficients.py
+++ /dev/null
@@ -1,193 +0,0 @@
-import numpy as np
-
-N_STAGES = 12
-N_STAGES_EXTENDED = 16
-INTERPOLATOR_POWER = 7
-
-C = np.array([0.0,
-              0.526001519587677318785587544488e-01,
-              0.789002279381515978178381316732e-01,
-              0.118350341907227396726757197510,
-              0.281649658092772603273242802490,
-              0.333333333333333333333333333333,
-              0.25,
-              0.307692307692307692307692307692,
-              0.651282051282051282051282051282,
-              0.6,
-              0.857142857142857142857142857142,
-              1.0,
-              1.0,
-              0.1,
-              0.2,
-              0.777777777777777777777777777778])
-
-A = np.zeros((N_STAGES_EXTENDED, N_STAGES_EXTENDED))
-A[1, 0] = 5.26001519587677318785587544488e-2
-
-A[2, 0] = 1.97250569845378994544595329183e-2
-A[2, 1] = 5.91751709536136983633785987549e-2
-
-A[3, 0] = 2.95875854768068491816892993775e-2
-A[3, 2] = 8.87627564304205475450678981324e-2
-
-A[4, 0] = 2.41365134159266685502369798665e-1
-A[4, 2] = -8.84549479328286085344864962717e-1
-A[4, 3] = 9.24834003261792003115737966543e-1
-
-A[5, 0] = 3.7037037037037037037037037037e-2
-A[5, 3] = 1.70828608729473871279604482173e-1
-A[5, 4] = 1.25467687566822425016691814123e-1
-
-A[6, 0] = 3.7109375e-2
-A[6, 3] = 1.70252211019544039314978060272e-1
-A[6, 4] = 6.02165389804559606850219397283e-2
-A[6, 5] = -1.7578125e-2
-
-A[7, 0] = 3.70920001185047927108779319836e-2
-A[7, 3] = 1.70383925712239993810214054705e-1
-A[7, 4] = 1.07262030446373284651809199168e-1
-A[7, 5] = -1.53194377486244017527936158236e-2
-A[7, 6] = 8.27378916381402288758473766002e-3
-
-A[8, 0] = 6.24110958716075717114429577812e-1
-A[8, 3] = -3.36089262944694129406857109825
-A[8, 4] = -8.68219346841726006818189891453e-1
-A[8, 5] = 2.75920996994467083049415600797e1
-A[8, 6] = 2.01540675504778934086186788979e1
-A[8, 7] = -4.34898841810699588477366255144e1
-
-A[9, 0] = 4.77662536438264365890433908527e-1
-A[9, 3] = -2.48811461997166764192642586468
-A[9, 4] = -5.90290826836842996371446475743e-1
-A[9, 5] = 2.12300514481811942347288949897e1
-A[9, 6] = 1.52792336328824235832596922938e1
-A[9, 7] = -3.32882109689848629194453265587e1
-A[9, 8] = -2.03312017085086261358222928593e-2
-
-A[10, 0] = -9.3714243008598732571704021658e-1
-A[10, 3] = 5.18637242884406370830023853209
-A[10, 4] = 1.09143734899672957818500254654
-A[10, 5] = -8.14978701074692612513997267357
-A[10, 6] = -1.85200656599969598641566180701e1
-A[10, 7] = 2.27394870993505042818970056734e1
-A[10, 8] = 2.49360555267965238987089396762
-A[10, 9] = -3.0467644718982195003823669022
-
-A[11, 0] = 2.27331014751653820792359768449
-A[11, 3] = -1.05344954667372501984066689879e1
-A[11, 4] = -2.00087205822486249909675718444
-A[11, 5] = -1.79589318631187989172765950534e1
-A[11, 6] = 2.79488845294199600508499808837e1
-A[11, 7] = -2.85899827713502369474065508674
-A[11, 8] = -8.87285693353062954433549289258
-A[11, 9] = 1.23605671757943030647266201528e1
-A[11, 10] = 6.43392746015763530355970484046e-1
-
-A[12, 0] = 5.42937341165687622380535766363e-2
-A[12, 5] = 4.45031289275240888144113950566
-A[12, 6] = 1.89151789931450038304281599044
-A[12, 7] = -5.8012039600105847814672114227
-A[12, 8] = 3.1116436695781989440891606237e-1
-A[12, 9] = -1.52160949662516078556178806805e-1
-A[12, 10] = 2.01365400804030348374776537501e-1
-A[12, 11] = 4.47106157277725905176885569043e-2
-
-A[13, 0] = 5.61675022830479523392909219681e-2
-A[13, 6] = 2.53500210216624811088794765333e-1
-A[13, 7] = -2.46239037470802489917441475441e-1
-A[13, 8] = -1.24191423263816360469010140626e-1
-A[13, 9] = 1.5329179827876569731206322685e-1
-A[13, 10] = 8.20105229563468988491666602057e-3
-A[13, 11] = 7.56789766054569976138603589584e-3
-A[13, 12] = -8.298e-3
-
-A[14, 0] = 3.18346481635021405060768473261e-2
-A[14, 5] = 2.83009096723667755288322961402e-2
-A[14, 6] = 5.35419883074385676223797384372e-2
-A[14, 7] = -5.49237485713909884646569340306e-2
-A[14, 10] = -1.08347328697249322858509316994e-4
-A[14, 11] = 3.82571090835658412954920192323e-4
-A[14, 12] = -3.40465008687404560802977114492e-4
-A[14, 13] = 1.41312443674632500278074618366e-1
-
-A[15, 0] = -4.28896301583791923408573538692e-1
-A[15, 5] = -4.69762141536116384314449447206
-A[15, 6] = 7.68342119606259904184240953878
-A[15, 7] = 4.06898981839711007970213554331
-A[15, 8] = 3.56727187455281109270669543021e-1
-A[15, 12] = -1.39902416515901462129418009734e-3
-A[15, 13] = 2.9475147891527723389556272149
-A[15, 14] = -9.15095847217987001081870187138
-
-
-B = A[N_STAGES, :N_STAGES]
-
-E3 = np.zeros(N_STAGES + 1)
-E3[:-1] = B.copy()
-E3[0] -= 0.244094488188976377952755905512
-E3[8] -= 0.733846688281611857341361741547
-E3[11] -= 0.220588235294117647058823529412e-1
-
-E5 = np.zeros(N_STAGES + 1)
-E5[0] = 0.1312004499419488073250102996e-1
-E5[5] = -0.1225156446376204440720569753e+1
-E5[6] = -0.4957589496572501915214079952
-E5[7] = 0.1664377182454986536961530415e+1
-E5[8] = -0.3503288487499736816886487290
-E5[9] = 0.3341791187130174790297318841
-E5[10] = 0.8192320648511571246570742613e-1
-E5[11] = -0.2235530786388629525884427845e-1
-
-# First 3 coefficients are computed separately.
-D = np.zeros((INTERPOLATOR_POWER - 3, N_STAGES_EXTENDED))
-D[0, 0] = -0.84289382761090128651353491142e+1
-D[0, 5] = 0.56671495351937776962531783590
-D[0, 6] = -0.30689499459498916912797304727e+1
-D[0, 7] = 0.23846676565120698287728149680e+1
-D[0, 8] = 0.21170345824450282767155149946e+1
-D[0, 9] = -0.87139158377797299206789907490
-D[0, 10] = 0.22404374302607882758541771650e+1
-D[0, 11] = 0.63157877876946881815570249290
-D[0, 12] = -0.88990336451333310820698117400e-1
-D[0, 13] = 0.18148505520854727256656404962e+2
-D[0, 14] = -0.91946323924783554000451984436e+1
-D[0, 15] = -0.44360363875948939664310572000e+1
-
-D[1, 0] = 0.10427508642579134603413151009e+2
-D[1, 5] = 0.24228349177525818288430175319e+3
-D[1, 6] = 0.16520045171727028198505394887e+3
-D[1, 7] = -0.37454675472269020279518312152e+3
-D[1, 8] = -0.22113666853125306036270938578e+2
-D[1, 9] = 0.77334326684722638389603898808e+1
-D[1, 10] = -0.30674084731089398182061213626e+2
-D[1, 11] = -0.93321305264302278729567221706e+1
-D[1, 12] = 0.15697238121770843886131091075e+2
-D[1, 13] = -0.31139403219565177677282850411e+2
-D[1, 14] = -0.93529243588444783865713862664e+1
-D[1, 15] = 0.35816841486394083752465898540e+2
-
-D[2, 0] = 0.19985053242002433820987653617e+2
-D[2, 5] = -0.38703730874935176555105901742e+3
-D[2, 6] = -0.18917813819516756882830838328e+3
-D[2, 7] = 0.52780815920542364900561016686e+3
-D[2, 8] = -0.11573902539959630126141871134e+2
-D[2, 9] = 0.68812326946963000169666922661e+1
-D[2, 10] = -0.10006050966910838403183860980e+1
-D[2, 11] = 0.77771377980534432092869265740
-D[2, 12] = -0.27782057523535084065932004339e+1
-D[2, 13] = -0.60196695231264120758267380846e+2
-D[2, 14] = 0.84320405506677161018159903784e+2
-D[2, 15] = 0.11992291136182789328035130030e+2
-
-D[3, 0] = -0.25693933462703749003312586129e+2
-D[3, 5] = -0.15418974869023643374053993627e+3
-D[3, 6] = -0.23152937917604549567536039109e+3
-D[3, 7] = 0.35763911791061412378285349910e+3
-D[3, 8] = 0.93405324183624310003907691704e+2
-D[3, 9] = -0.37458323136451633156875139351e+2
-D[3, 10] = 0.10409964950896230045147246184e+3
-D[3, 11] = 0.29840293426660503123344363579e+2
-D[3, 12] = -0.43533456590011143754432175058e+2
-D[3, 13] = 0.96324553959188282948394950600e+2
-D[3, 14] = -0.39177261675615439165231486172e+2
-D[3, 15] = -0.14972683625798562581422125276e+3
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/ivp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/ivp.py
deleted file mode 100644
index 13d4732bd644832857d31fde5cf33e2b169051e6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/ivp.py
+++ /dev/null
@@ -1,748 +0,0 @@
-import inspect
-import numpy as np
-from .bdf import BDF
-from .radau import Radau
-from .rk import RK23, RK45, DOP853
-from .lsoda import LSODA
-from scipy.optimize import OptimizeResult
-from .common import EPS, OdeSolution
-from .base import OdeSolver
-
-
-METHODS = {'RK23': RK23,
-           'RK45': RK45,
-           'DOP853': DOP853,
-           'Radau': Radau,
-           'BDF': BDF,
-           'LSODA': LSODA}
-
-
-MESSAGES = {0: "The solver successfully reached the end of the integration interval.",
-            1: "A termination event occurred."}
-
-
-class OdeResult(OptimizeResult):
-    pass
-
-
-def prepare_events(events):
-    """Standardize event functions and extract attributes."""
-    if callable(events):
-        events = (events,)
-
-    max_events = np.empty(len(events))
-    direction = np.empty(len(events))
-    for i, event in enumerate(events):
-        terminal = getattr(event, 'terminal', None)
-        direction[i] = getattr(event, 'direction', 0)
-
-        message = ('The `terminal` attribute of each event '
-                   'must be a boolean or positive integer.')
-        if terminal is None or terminal == 0:
-            max_events[i] = np.inf
-        elif int(terminal) == terminal and terminal > 0:
-            max_events[i] = terminal
-        else:
-            raise ValueError(message)
-
-    return events, max_events, direction
-
-
-def solve_event_equation(event, sol, t_old, t):
-    """Solve an equation corresponding to an ODE event.
-
-    The equation is ``event(t, y(t)) = 0``, here ``y(t)`` is known from an
-    ODE solver using some sort of interpolation. It is solved by
-    `scipy.optimize.brentq` with xtol=atol=4*EPS.
-
-    Parameters
-    ----------
-    event : callable
-        Function ``event(t, y)``.
-    sol : callable
-        Function ``sol(t)`` which evaluates an ODE solution between `t_old`
-        and  `t`.
-    t_old, t : float
-        Previous and new values of time. They will be used as a bracketing
-        interval.
-
-    Returns
-    -------
-    root : float
-        Found solution.
-    """
-    from scipy.optimize import brentq
-    return brentq(lambda t: event(t, sol(t)), t_old, t,
-                  xtol=4 * EPS, rtol=4 * EPS)
-
-
-def handle_events(sol, events, active_events, event_count, max_events,
-                  t_old, t):
-    """Helper function to handle events.
-
-    Parameters
-    ----------
-    sol : DenseOutput
-        Function ``sol(t)`` which evaluates an ODE solution between `t_old`
-        and  `t`.
-    events : list of callables, length n_events
-        Event functions with signatures ``event(t, y)``.
-    active_events : ndarray
-        Indices of events which occurred.
-    event_count : ndarray
-        Current number of occurrences for each event.
-    max_events : ndarray, shape (n_events,)
-        Number of occurrences allowed for each event before integration
-        termination is issued.
-    t_old, t : float
-        Previous and new values of time.
-
-    Returns
-    -------
-    root_indices : ndarray
-        Indices of events which take zero between `t_old` and `t` and before
-        a possible termination.
-    roots : ndarray
-        Values of t at which events occurred.
-    terminate : bool
-        Whether a terminal event occurred.
-    """
-    roots = [solve_event_equation(events[event_index], sol, t_old, t)
-             for event_index in active_events]
-
-    roots = np.asarray(roots)
-
-    if np.any(event_count[active_events] >= max_events[active_events]):
-        if t > t_old:
-            order = np.argsort(roots)
-        else:
-            order = np.argsort(-roots)
-        active_events = active_events[order]
-        roots = roots[order]
-        t = np.nonzero(event_count[active_events]
-                       >= max_events[active_events])[0][0]
-        active_events = active_events[:t + 1]
-        roots = roots[:t + 1]
-        terminate = True
-    else:
-        terminate = False
-
-    return active_events, roots, terminate
-
-
-def find_active_events(g, g_new, direction):
-    """Find which event occurred during an integration step.
-
-    Parameters
-    ----------
-    g, g_new : array_like, shape (n_events,)
-        Values of event functions at a current and next points.
-    direction : ndarray, shape (n_events,)
-        Event "direction" according to the definition in `solve_ivp`.
-
-    Returns
-    -------
-    active_events : ndarray
-        Indices of events which occurred during the step.
-    """
-    g, g_new = np.asarray(g), np.asarray(g_new)
-    up = (g <= 0) & (g_new >= 0)
-    down = (g >= 0) & (g_new <= 0)
-    either = up | down
-    mask = (up & (direction > 0) |
-            down & (direction < 0) |
-            either & (direction == 0))
-
-    return np.nonzero(mask)[0]
-
-
-def solve_ivp(fun, t_span, y0, method='RK45', t_eval=None, dense_output=False,
-              events=None, vectorized=False, args=None, **options):
-    """Solve an initial value problem for a system of ODEs.
-
-    This function numerically integrates a system of ordinary differential
-    equations given an initial value::
-
-        dy / dt = f(t, y)
-        y(t0) = y0
-
-    Here t is a 1-D independent variable (time), y(t) is an
-    N-D vector-valued function (state), and an N-D
-    vector-valued function f(t, y) determines the differential equations.
-    The goal is to find y(t) approximately satisfying the differential
-    equations, given an initial value y(t0)=y0.
-
-    Some of the solvers support integration in the complex domain, but note
-    that for stiff ODE solvers, the right-hand side must be
-    complex-differentiable (satisfy Cauchy-Riemann equations [11]_).
-    To solve a problem in the complex domain, pass y0 with a complex data type.
-    Another option always available is to rewrite your problem for real and
-    imaginary parts separately.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system: the time derivative of the state ``y``
-        at time ``t``. The calling signature is ``fun(t, y)``, where ``t`` is a
-        scalar and ``y`` is an ndarray with ``len(y) = len(y0)``. Additional
-        arguments need to be passed if ``args`` is used (see documentation of
-        ``args`` argument). ``fun`` must return an array of the same shape as
-        ``y``. See `vectorized` for more information.
-    t_span : 2-member sequence
-        Interval of integration (t0, tf). The solver starts with t=t0 and
-        integrates until it reaches t=tf. Both t0 and tf must be floats
-        or values interpretable by the float conversion function.
-    y0 : array_like, shape (n,)
-        Initial state. For problems in the complex domain, pass `y0` with a
-        complex data type (even if the initial value is purely real).
-    method : string or `OdeSolver`, optional
-        Integration method to use:
-
-            * 'RK45' (default): Explicit Runge-Kutta method of order 5(4) [1]_.
-              The error is controlled assuming accuracy of the fourth-order
-              method, but steps are taken using the fifth-order accurate
-              formula (local extrapolation is done). A quartic interpolation
-              polynomial is used for the dense output [2]_. Can be applied in
-              the complex domain.
-            * 'RK23': Explicit Runge-Kutta method of order 3(2) [3]_. The error
-              is controlled assuming accuracy of the second-order method, but
-              steps are taken using the third-order accurate formula (local
-              extrapolation is done). A cubic Hermite polynomial is used for the
-              dense output. Can be applied in the complex domain.
-            * 'DOP853': Explicit Runge-Kutta method of order 8 [13]_.
-              Python implementation of the "DOP853" algorithm originally
-              written in Fortran [14]_. A 7-th order interpolation polynomial
-              accurate to 7-th order is used for the dense output.
-              Can be applied in the complex domain.
-            * 'Radau': Implicit Runge-Kutta method of the Radau IIA family of
-              order 5 [4]_. The error is controlled with a third-order accurate
-              embedded formula. A cubic polynomial which satisfies the
-              collocation conditions is used for the dense output.
-            * 'BDF': Implicit multi-step variable-order (1 to 5) method based
-              on a backward differentiation formula for the derivative
-              approximation [5]_. The implementation follows the one described
-              in [6]_. A quasi-constant step scheme is used and accuracy is
-              enhanced using the NDF modification. Can be applied in the
-              complex domain.
-            * 'LSODA': Adams/BDF method with automatic stiffness detection and
-              switching [7]_, [8]_. This is a wrapper of the Fortran solver
-              from ODEPACK.
-
-        Explicit Runge-Kutta methods ('RK23', 'RK45', 'DOP853') should be used
-        for non-stiff problems and implicit methods ('Radau', 'BDF') for
-        stiff problems [9]_. Among Runge-Kutta methods, 'DOP853' is recommended
-        for solving with high precision (low values of `rtol` and `atol`).
-
-        If not sure, first try to run 'RK45'. If it makes unusually many
-        iterations, diverges, or fails, your problem is likely to be stiff and
-        you should use 'Radau' or 'BDF'. 'LSODA' can also be a good universal
-        choice, but it might be somewhat less convenient to work with as it
-        wraps old Fortran code.
-
-        You can also pass an arbitrary class derived from `OdeSolver` which
-        implements the solver.
-    t_eval : array_like or None, optional
-        Times at which to store the computed solution, must be sorted and lie
-        within `t_span`. If None (default), use points selected by the solver.
-    dense_output : bool, optional
-        Whether to compute a continuous solution. Default is False.
-    events : callable, or list of callables, optional
-        Events to track. If None (default), no events will be tracked.
-        Each event occurs at the zeros of a continuous function of time and
-        state. Each function must have the signature ``event(t, y)`` where
-        additional argument have to be passed if ``args`` is used (see
-        documentation of ``args`` argument). Each function must return a
-        float. The solver will find an accurate value of `t` at which
-        ``event(t, y(t)) = 0`` using a root-finding algorithm. By default,
-        all zeros will be found. The solver looks for a sign change over
-        each step, so if multiple zero crossings occur within one step,
-        events may be missed. Additionally each `event` function might
-        have the following attributes:
-
-            terminal: bool or int, optional
-                When boolean, whether to terminate integration if this event occurs.
-                When integral, termination occurs after the specified the number of
-                occurences of this event.
-                Implicitly False if not assigned.
-            direction: float, optional
-                Direction of a zero crossing. If `direction` is positive,
-                `event` will only trigger when going from negative to positive,
-                and vice versa if `direction` is negative. If 0, then either
-                direction will trigger event. Implicitly 0 if not assigned.
-
-        You can assign attributes like ``event.terminal = True`` to any
-        function in Python.
-    vectorized : bool, optional
-        Whether `fun` can be called in a vectorized fashion. Default is False.
-
-        If ``vectorized`` is False, `fun` will always be called with ``y`` of
-        shape ``(n,)``, where ``n = len(y0)``.
-
-        If ``vectorized`` is True, `fun` may be called with ``y`` of shape
-        ``(n, k)``, where ``k`` is an integer. In this case, `fun` must behave
-        such that ``fun(t, y)[:, i] == fun(t, y[:, i])`` (i.e. each column of
-        the returned array is the time derivative of the state corresponding
-        with a column of ``y``).
-
-        Setting ``vectorized=True`` allows for faster finite difference
-        approximation of the Jacobian by methods 'Radau' and 'BDF', but
-        will result in slower execution for other methods and for 'Radau' and
-        'BDF' in some circumstances (e.g. small ``len(y0)``).
-    args : tuple, optional
-        Additional arguments to pass to the user-defined functions.  If given,
-        the additional arguments are passed to all user-defined functions.
-        So if, for example, `fun` has the signature ``fun(t, y, a, b, c)``,
-        then `jac` (if given) and any event functions must have the same
-        signature, and `args` must be a tuple of length 3.
-    **options
-        Options passed to a chosen solver. All options available for already
-        implemented solvers are listed below.
-    first_step : float or None, optional
-        Initial step size. Default is `None` which means that the algorithm
-        should choose.
-    max_step : float, optional
-        Maximum allowed step size. Default is np.inf, i.e., the step size is not
-        bounded and determined solely by the solver.
-    rtol, atol : float or array_like, optional
-        Relative and absolute tolerances. The solver keeps the local error
-        estimates less than ``atol + rtol * abs(y)``. Here `rtol` controls a
-        relative accuracy (number of correct digits), while `atol` controls
-        absolute accuracy (number of correct decimal places). To achieve the
-        desired `rtol`, set `atol` to be smaller than the smallest value that
-        can be expected from ``rtol * abs(y)`` so that `rtol` dominates the
-        allowable error. If `atol` is larger than ``rtol * abs(y)`` the
-        number of correct digits is not guaranteed. Conversely, to achieve the
-        desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller
-        than `atol`. If components of y have different scales, it might be
-        beneficial to set different `atol` values for different components by
-        passing array_like with shape (n,) for `atol`. Default values are
-        1e-3 for `rtol` and 1e-6 for `atol`.
-    jac : array_like, sparse_matrix, callable or None, optional
-        Jacobian matrix of the right-hand side of the system with respect
-        to y, required by the 'Radau', 'BDF' and 'LSODA' method. The
-        Jacobian matrix has shape (n, n) and its element (i, j) is equal to
-        ``d f_i / d y_j``.  There are three ways to define the Jacobian:
-
-            * If array_like or sparse_matrix, the Jacobian is assumed to
-              be constant. Not supported by 'LSODA'.
-            * If callable, the Jacobian is assumed to depend on both
-              t and y; it will be called as ``jac(t, y)``, as necessary.
-              Additional arguments have to be passed if ``args`` is
-              used (see documentation of ``args`` argument).
-              For 'Radau' and 'BDF' methods, the return value might be a
-              sparse matrix.
-            * If None (default), the Jacobian will be approximated by
-              finite differences.
-
-        It is generally recommended to provide the Jacobian rather than
-        relying on a finite-difference approximation.
-    jac_sparsity : array_like, sparse matrix or None, optional
-        Defines a sparsity structure of the Jacobian matrix for a finite-
-        difference approximation. Its shape must be (n, n). This argument
-        is ignored if `jac` is not `None`. If the Jacobian has only few
-        non-zero elements in *each* row, providing the sparsity structure
-        will greatly speed up the computations [10]_. A zero entry means that
-        a corresponding element in the Jacobian is always zero. If None
-        (default), the Jacobian is assumed to be dense.
-        Not supported by 'LSODA', see `lband` and `uband` instead.
-    lband, uband : int or None, optional
-        Parameters defining the bandwidth of the Jacobian for the 'LSODA'
-        method, i.e., ``jac[i, j] != 0 only for i - lband <= j <= i + uband``.
-        Default is None. Setting these requires your jac routine to return the
-        Jacobian in the packed format: the returned array must have ``n``
-        columns and ``uband + lband + 1`` rows in which Jacobian diagonals are
-        written. Specifically ``jac_packed[uband + i - j , j] = jac[i, j]``.
-        The same format is used in `scipy.linalg.solve_banded` (check for an
-        illustration).  These parameters can be also used with ``jac=None`` to
-        reduce the number of Jacobian elements estimated by finite differences.
-    min_step : float, optional
-        The minimum allowed step size for 'LSODA' method.
-        By default `min_step` is zero.
-
-    Returns
-    -------
-    Bunch object with the following fields defined:
-    t : ndarray, shape (n_points,)
-        Time points.
-    y : ndarray, shape (n, n_points)
-        Values of the solution at `t`.
-    sol : `OdeSolution` or None
-        Found solution as `OdeSolution` instance; None if `dense_output` was
-        set to False.
-    t_events : list of ndarray or None
-        Contains for each event type a list of arrays at which an event of
-        that type event was detected. None if `events` was None.
-    y_events : list of ndarray or None
-        For each value of `t_events`, the corresponding value of the solution.
-        None if `events` was None.
-    nfev : int
-        Number of evaluations of the right-hand side.
-    njev : int
-        Number of evaluations of the Jacobian.
-    nlu : int
-        Number of LU decompositions.
-    status : int
-        Reason for algorithm termination:
-
-            * -1: Integration step failed.
-            *  0: The solver successfully reached the end of `tspan`.
-            *  1: A termination event occurred.
-
-    message : string
-        Human-readable description of the termination reason.
-    success : bool
-        True if the solver reached the interval end or a termination event
-        occurred (``status >= 0``).
-
-    References
-    ----------
-    .. [1] J. R. Dormand, P. J. Prince, "A family of embedded Runge-Kutta
-           formulae", Journal of Computational and Applied Mathematics, Vol. 6,
-           No. 1, pp. 19-26, 1980.
-    .. [2] L. W. Shampine, "Some Practical Runge-Kutta Formulas", Mathematics
-           of Computation,, Vol. 46, No. 173, pp. 135-150, 1986.
-    .. [3] P. Bogacki, L.F. Shampine, "A 3(2) Pair of Runge-Kutta Formulas",
-           Appl. Math. Lett. Vol. 2, No. 4. pp. 321-325, 1989.
-    .. [4] E. Hairer, G. Wanner, "Solving Ordinary Differential Equations II:
-           Stiff and Differential-Algebraic Problems", Sec. IV.8.
-    .. [5] `Backward Differentiation Formula
-            `_
-            on Wikipedia.
-    .. [6] L. F. Shampine, M. W. Reichelt, "THE MATLAB ODE SUITE", SIAM J. SCI.
-           COMPUTE., Vol. 18, No. 1, pp. 1-22, January 1997.
-    .. [7] A. C. Hindmarsh, "ODEPACK, A Systematized Collection of ODE
-           Solvers," IMACS Transactions on Scientific Computation, Vol 1.,
-           pp. 55-64, 1983.
-    .. [8] L. Petzold, "Automatic selection of methods for solving stiff and
-           nonstiff systems of ordinary differential equations", SIAM Journal
-           on Scientific and Statistical Computing, Vol. 4, No. 1, pp. 136-148,
-           1983.
-    .. [9] `Stiff equation `_ on
-           Wikipedia.
-    .. [10] A. Curtis, M. J. D. Powell, and J. Reid, "On the estimation of
-            sparse Jacobian matrices", Journal of the Institute of Mathematics
-            and its Applications, 13, pp. 117-120, 1974.
-    .. [11] `Cauchy-Riemann equations
-             `_ on
-             Wikipedia.
-    .. [12] `Lotka-Volterra equations
-            `_
-            on Wikipedia.
-    .. [13] E. Hairer, S. P. Norsett G. Wanner, "Solving Ordinary Differential
-            Equations I: Nonstiff Problems", Sec. II.
-    .. [14] `Page with original Fortran code of DOP853
-            `_.
-
-    Examples
-    --------
-    Basic exponential decay showing automatically chosen time points.
-
-    >>> import numpy as np
-    >>> from scipy.integrate import solve_ivp
-    >>> def exponential_decay(t, y): return -0.5 * y
-    >>> sol = solve_ivp(exponential_decay, [0, 10], [2, 4, 8])
-    >>> print(sol.t)
-    [ 0.          0.11487653  1.26364188  3.06061781  4.81611105  6.57445806
-      8.33328988 10.        ]
-    >>> print(sol.y)
-    [[2.         1.88836035 1.06327177 0.43319312 0.18017253 0.07483045
-      0.03107158 0.01350781]
-     [4.         3.7767207  2.12654355 0.86638624 0.36034507 0.14966091
-      0.06214316 0.02701561]
-     [8.         7.5534414  4.25308709 1.73277247 0.72069014 0.29932181
-      0.12428631 0.05403123]]
-
-    Specifying points where the solution is desired.
-
-    >>> sol = solve_ivp(exponential_decay, [0, 10], [2, 4, 8],
-    ...                 t_eval=[0, 1, 2, 4, 10])
-    >>> print(sol.t)
-    [ 0  1  2  4 10]
-    >>> print(sol.y)
-    [[2.         1.21305369 0.73534021 0.27066736 0.01350938]
-     [4.         2.42610739 1.47068043 0.54133472 0.02701876]
-     [8.         4.85221478 2.94136085 1.08266944 0.05403753]]
-
-    Cannon fired upward with terminal event upon impact. The ``terminal`` and
-    ``direction`` fields of an event are applied by monkey patching a function.
-    Here ``y[0]`` is position and ``y[1]`` is velocity. The projectile starts
-    at position 0 with velocity +10. Note that the integration never reaches
-    t=100 because the event is terminal.
-
-    >>> def upward_cannon(t, y): return [y[1], -0.5]
-    >>> def hit_ground(t, y): return y[0]
-    >>> hit_ground.terminal = True
-    >>> hit_ground.direction = -1
-    >>> sol = solve_ivp(upward_cannon, [0, 100], [0, 10], events=hit_ground)
-    >>> print(sol.t_events)
-    [array([40.])]
-    >>> print(sol.t)
-    [0.00000000e+00 9.99900010e-05 1.09989001e-03 1.10988901e-02
-     1.11088891e-01 1.11098890e+00 1.11099890e+01 4.00000000e+01]
-
-    Use `dense_output` and `events` to find position, which is 100, at the apex
-    of the cannonball's trajectory. Apex is not defined as terminal, so both
-    apex and hit_ground are found. There is no information at t=20, so the sol
-    attribute is used to evaluate the solution. The sol attribute is returned
-    by setting ``dense_output=True``. Alternatively, the `y_events` attribute
-    can be used to access the solution at the time of the event.
-
-    >>> def apex(t, y): return y[1]
-    >>> sol = solve_ivp(upward_cannon, [0, 100], [0, 10],
-    ...                 events=(hit_ground, apex), dense_output=True)
-    >>> print(sol.t_events)
-    [array([40.]), array([20.])]
-    >>> print(sol.t)
-    [0.00000000e+00 9.99900010e-05 1.09989001e-03 1.10988901e-02
-     1.11088891e-01 1.11098890e+00 1.11099890e+01 4.00000000e+01]
-    >>> print(sol.sol(sol.t_events[1][0]))
-    [100.   0.]
-    >>> print(sol.y_events)
-    [array([[-5.68434189e-14, -1.00000000e+01]]),
-     array([[1.00000000e+02, 1.77635684e-15]])]
-
-    As an example of a system with additional parameters, we'll implement
-    the Lotka-Volterra equations [12]_.
-
-    >>> def lotkavolterra(t, z, a, b, c, d):
-    ...     x, y = z
-    ...     return [a*x - b*x*y, -c*y + d*x*y]
-    ...
-
-    We pass in the parameter values a=1.5, b=1, c=3 and d=1 with the `args`
-    argument.
-
-    >>> sol = solve_ivp(lotkavolterra, [0, 15], [10, 5], args=(1.5, 1, 3, 1),
-    ...                 dense_output=True)
-
-    Compute a dense solution and plot it.
-
-    >>> t = np.linspace(0, 15, 300)
-    >>> z = sol.sol(t)
-    >>> import matplotlib.pyplot as plt
-    >>> plt.plot(t, z.T)
-    >>> plt.xlabel('t')
-    >>> plt.legend(['x', 'y'], shadow=True)
-    >>> plt.title('Lotka-Volterra System')
-    >>> plt.show()
-
-    A couple examples of using solve_ivp to solve the differential
-    equation ``y' = Ay`` with complex matrix ``A``.
-
-    >>> A = np.array([[-0.25 + 0.14j, 0, 0.33 + 0.44j],
-    ...               [0.25 + 0.58j, -0.2 + 0.14j, 0],
-    ...               [0, 0.2 + 0.4j, -0.1 + 0.97j]])
-
-    Solving an IVP with ``A`` from above and ``y`` as 3x1 vector:
-
-    >>> def deriv_vec(t, y):
-    ...     return A @ y
-    >>> result = solve_ivp(deriv_vec, [0, 25],
-    ...                    np.array([10 + 0j, 20 + 0j, 30 + 0j]),
-    ...                    t_eval=np.linspace(0, 25, 101))
-    >>> print(result.y[:, 0])
-    [10.+0.j 20.+0.j 30.+0.j]
-    >>> print(result.y[:, -1])
-    [18.46291039+45.25653651j 10.01569306+36.23293216j
-     -4.98662741+80.07360388j]
-
-    Solving an IVP with ``A`` from above with ``y`` as 3x3 matrix :
-
-    >>> def deriv_mat(t, y):
-    ...     return (A @ y.reshape(3, 3)).flatten()
-    >>> y0 = np.array([[2 + 0j, 3 + 0j, 4 + 0j],
-    ...                [5 + 0j, 6 + 0j, 7 + 0j],
-    ...                [9 + 0j, 34 + 0j, 78 + 0j]])
-
-    >>> result = solve_ivp(deriv_mat, [0, 25], y0.flatten(),
-    ...                    t_eval=np.linspace(0, 25, 101))
-    >>> print(result.y[:, 0].reshape(3, 3))
-    [[ 2.+0.j  3.+0.j  4.+0.j]
-     [ 5.+0.j  6.+0.j  7.+0.j]
-     [ 9.+0.j 34.+0.j 78.+0.j]]
-    >>> print(result.y[:, -1].reshape(3, 3))
-    [[  5.67451179 +12.07938445j  17.2888073  +31.03278837j
-        37.83405768 +63.25138759j]
-     [  3.39949503 +11.82123994j  21.32530996 +44.88668871j
-        53.17531184+103.80400411j]
-     [ -2.26105874 +22.19277664j -15.1255713  +70.19616341j
-       -38.34616845+153.29039931j]]
-
-
-    """
-    if method not in METHODS and not (
-            inspect.isclass(method) and issubclass(method, OdeSolver)):
-        raise ValueError(f"`method` must be one of {METHODS} or OdeSolver class.")
-
-    t0, tf = map(float, t_span)
-
-    if args is not None:
-        # Wrap the user's fun (and jac, if given) in lambdas to hide the
-        # additional parameters.  Pass in the original fun as a keyword
-        # argument to keep it in the scope of the lambda.
-        try:
-            _ = [*(args)]
-        except TypeError as exp:
-            suggestion_tuple = (
-                "Supplied 'args' cannot be unpacked. Please supply `args`"
-                f" as a tuple (e.g. `args=({args},)`)"
-            )
-            raise TypeError(suggestion_tuple) from exp
-
-        def fun(t, x, fun=fun):
-            return fun(t, x, *args)
-        jac = options.get('jac')
-        if callable(jac):
-            options['jac'] = lambda t, x: jac(t, x, *args)
-
-    if t_eval is not None:
-        t_eval = np.asarray(t_eval)
-        if t_eval.ndim != 1:
-            raise ValueError("`t_eval` must be 1-dimensional.")
-
-        if np.any(t_eval < min(t0, tf)) or np.any(t_eval > max(t0, tf)):
-            raise ValueError("Values in `t_eval` are not within `t_span`.")
-
-        d = np.diff(t_eval)
-        if tf > t0 and np.any(d <= 0) or tf < t0 and np.any(d >= 0):
-            raise ValueError("Values in `t_eval` are not properly sorted.")
-
-        if tf > t0:
-            t_eval_i = 0
-        else:
-            # Make order of t_eval decreasing to use np.searchsorted.
-            t_eval = t_eval[::-1]
-            # This will be an upper bound for slices.
-            t_eval_i = t_eval.shape[0]
-
-    if method in METHODS:
-        method = METHODS[method]
-
-    solver = method(fun, t0, y0, tf, vectorized=vectorized, **options)
-
-    if t_eval is None:
-        ts = [t0]
-        ys = [y0]
-    elif t_eval is not None and dense_output:
-        ts = []
-        ti = [t0]
-        ys = []
-    else:
-        ts = []
-        ys = []
-
-    interpolants = []
-
-    if events is not None:
-        events, max_events, event_dir = prepare_events(events)
-        event_count = np.zeros(len(events))
-        if args is not None:
-            # Wrap user functions in lambdas to hide the additional parameters.
-            # The original event function is passed as a keyword argument to the
-            # lambda to keep the original function in scope (i.e., avoid the
-            # late binding closure "gotcha").
-            events = [lambda t, x, event=event: event(t, x, *args)
-                      for event in events]
-        g = [event(t0, y0) for event in events]
-        t_events = [[] for _ in range(len(events))]
-        y_events = [[] for _ in range(len(events))]
-    else:
-        t_events = None
-        y_events = None
-
-    status = None
-    while status is None:
-        message = solver.step()
-
-        if solver.status == 'finished':
-            status = 0
-        elif solver.status == 'failed':
-            status = -1
-            break
-
-        t_old = solver.t_old
-        t = solver.t
-        y = solver.y
-
-        if dense_output:
-            sol = solver.dense_output()
-            interpolants.append(sol)
-        else:
-            sol = None
-
-        if events is not None:
-            g_new = [event(t, y) for event in events]
-            active_events = find_active_events(g, g_new, event_dir)
-            if active_events.size > 0:
-                if sol is None:
-                    sol = solver.dense_output()
-
-                event_count[active_events] += 1
-                root_indices, roots, terminate = handle_events(
-                    sol, events, active_events, event_count, max_events,
-                    t_old, t)
-
-                for e, te in zip(root_indices, roots):
-                    t_events[e].append(te)
-                    y_events[e].append(sol(te))
-
-                if terminate:
-                    status = 1
-                    t = roots[-1]
-                    y = sol(t)
-
-            g = g_new
-
-        if t_eval is None:
-            ts.append(t)
-            ys.append(y)
-        else:
-            # The value in t_eval equal to t will be included.
-            if solver.direction > 0:
-                t_eval_i_new = np.searchsorted(t_eval, t, side='right')
-                t_eval_step = t_eval[t_eval_i:t_eval_i_new]
-            else:
-                t_eval_i_new = np.searchsorted(t_eval, t, side='left')
-                # It has to be done with two slice operations, because
-                # you can't slice to 0th element inclusive using backward
-                # slicing.
-                t_eval_step = t_eval[t_eval_i_new:t_eval_i][::-1]
-
-            if t_eval_step.size > 0:
-                if sol is None:
-                    sol = solver.dense_output()
-                ts.append(t_eval_step)
-                ys.append(sol(t_eval_step))
-                t_eval_i = t_eval_i_new
-
-        if t_eval is not None and dense_output:
-            ti.append(t)
-
-    message = MESSAGES.get(status, message)
-
-    if t_events is not None:
-        t_events = [np.asarray(te) for te in t_events]
-        y_events = [np.asarray(ye) for ye in y_events]
-
-    if t_eval is None:
-        ts = np.array(ts)
-        ys = np.vstack(ys).T
-    elif ts:
-        ts = np.hstack(ts)
-        ys = np.hstack(ys)
-
-    if dense_output:
-        if t_eval is None:
-            sol = OdeSolution(
-                ts, interpolants, alt_segment=True if method in [BDF, LSODA] else False
-            )
-        else:
-            sol = OdeSolution(
-                ti, interpolants, alt_segment=True if method in [BDF, LSODA] else False
-            )
-    else:
-        sol = None
-
-    return OdeResult(t=ts, y=ys, sol=sol, t_events=t_events, y_events=y_events,
-                     nfev=solver.nfev, njev=solver.njev, nlu=solver.nlu,
-                     status=status, message=message, success=status >= 0)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/lsoda.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/lsoda.py
deleted file mode 100644
index 2a5a7c530c04eddc9beff44e2d4f6df439d5ef01..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/lsoda.py
+++ /dev/null
@@ -1,224 +0,0 @@
-import numpy as np
-from scipy.integrate import ode
-from .common import validate_tol, validate_first_step, warn_extraneous
-from .base import OdeSolver, DenseOutput
-
-
-class LSODA(OdeSolver):
-    """Adams/BDF method with automatic stiffness detection and switching.
-
-    This is a wrapper to the Fortran solver from ODEPACK [1]_. It switches
-    automatically between the nonstiff Adams method and the stiff BDF method.
-    The method was originally detailed in [2]_.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system: the time derivative of the state ``y``
-        at time ``t``. The calling signature is ``fun(t, y)``, where ``t`` is a
-        scalar and ``y`` is an ndarray with ``len(y) = len(y0)``. ``fun`` must
-        return an array of the same shape as ``y``. See `vectorized` for more
-        information.
-    t0 : float
-        Initial time.
-    y0 : array_like, shape (n,)
-        Initial state.
-    t_bound : float
-        Boundary time - the integration won't continue beyond it. It also
-        determines the direction of the integration.
-    first_step : float or None, optional
-        Initial step size. Default is ``None`` which means that the algorithm
-        should choose.
-    min_step : float, optional
-        Minimum allowed step size. Default is 0.0, i.e., the step size is not
-        bounded and determined solely by the solver.
-    max_step : float, optional
-        Maximum allowed step size. Default is np.inf, i.e., the step size is not
-        bounded and determined solely by the solver.
-    rtol, atol : float and array_like, optional
-        Relative and absolute tolerances. The solver keeps the local error
-        estimates less than ``atol + rtol * abs(y)``. Here `rtol` controls a
-        relative accuracy (number of correct digits), while `atol` controls
-        absolute accuracy (number of correct decimal places). To achieve the
-        desired `rtol`, set `atol` to be smaller than the smallest value that
-        can be expected from ``rtol * abs(y)`` so that `rtol` dominates the
-        allowable error. If `atol` is larger than ``rtol * abs(y)`` the
-        number of correct digits is not guaranteed. Conversely, to achieve the
-        desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller
-        than `atol`. If components of y have different scales, it might be
-        beneficial to set different `atol` values for different components by
-        passing array_like with shape (n,) for `atol`. Default values are
-        1e-3 for `rtol` and 1e-6 for `atol`.
-    jac : None or callable, optional
-        Jacobian matrix of the right-hand side of the system with respect to
-        ``y``. The Jacobian matrix has shape (n, n) and its element (i, j) is
-        equal to ``d f_i / d y_j``. The function will be called as
-        ``jac(t, y)``. If None (default), the Jacobian will be
-        approximated by finite differences. It is generally recommended to
-        provide the Jacobian rather than relying on a finite-difference
-        approximation.
-    lband, uband : int or None
-        Parameters defining the bandwidth of the Jacobian,
-        i.e., ``jac[i, j] != 0 only for i - lband <= j <= i + uband``. Setting
-        these requires your jac routine to return the Jacobian in the packed format:
-        the returned array must have ``n`` columns and ``uband + lband + 1``
-        rows in which Jacobian diagonals are written. Specifically
-        ``jac_packed[uband + i - j , j] = jac[i, j]``. The same format is used
-        in `scipy.linalg.solve_banded` (check for an illustration).
-        These parameters can be also used with ``jac=None`` to reduce the
-        number of Jacobian elements estimated by finite differences.
-    vectorized : bool, optional
-        Whether `fun` may be called in a vectorized fashion. False (default)
-        is recommended for this solver.
-
-        If ``vectorized`` is False, `fun` will always be called with ``y`` of
-        shape ``(n,)``, where ``n = len(y0)``.
-
-        If ``vectorized`` is True, `fun` may be called with ``y`` of shape
-        ``(n, k)``, where ``k`` is an integer. In this case, `fun` must behave
-        such that ``fun(t, y)[:, i] == fun(t, y[:, i])`` (i.e. each column of
-        the returned array is the time derivative of the state corresponding
-        with a column of ``y``).
-
-        Setting ``vectorized=True`` allows for faster finite difference
-        approximation of the Jacobian by methods 'Radau' and 'BDF', but
-        will result in slower execution for this solver.
-
-    Attributes
-    ----------
-    n : int
-        Number of equations.
-    status : string
-        Current status of the solver: 'running', 'finished' or 'failed'.
-    t_bound : float
-        Boundary time.
-    direction : float
-        Integration direction: +1 or -1.
-    t : float
-        Current time.
-    y : ndarray
-        Current state.
-    t_old : float
-        Previous time. None if no steps were made yet.
-    nfev : int
-        Number of evaluations of the right-hand side.
-    njev : int
-        Number of evaluations of the Jacobian.
-
-    References
-    ----------
-    .. [1] A. C. Hindmarsh, "ODEPACK, A Systematized Collection of ODE
-           Solvers," IMACS Transactions on Scientific Computation, Vol 1.,
-           pp. 55-64, 1983.
-    .. [2] L. Petzold, "Automatic selection of methods for solving stiff and
-           nonstiff systems of ordinary differential equations", SIAM Journal
-           on Scientific and Statistical Computing, Vol. 4, No. 1, pp. 136-148,
-           1983.
-    """
-    def __init__(self, fun, t0, y0, t_bound, first_step=None, min_step=0.0,
-                 max_step=np.inf, rtol=1e-3, atol=1e-6, jac=None, lband=None,
-                 uband=None, vectorized=False, **extraneous):
-        warn_extraneous(extraneous)
-        super().__init__(fun, t0, y0, t_bound, vectorized)
-
-        if first_step is None:
-            first_step = 0  # LSODA value for automatic selection.
-        else:
-            first_step = validate_first_step(first_step, t0, t_bound)
-
-        first_step *= self.direction
-
-        if max_step == np.inf:
-            max_step = 0  # LSODA value for infinity.
-        elif max_step <= 0:
-            raise ValueError("`max_step` must be positive.")
-
-        if min_step < 0:
-            raise ValueError("`min_step` must be nonnegative.")
-
-        rtol, atol = validate_tol(rtol, atol, self.n)
-
-        solver = ode(self.fun, jac)
-        solver.set_integrator('lsoda', rtol=rtol, atol=atol, max_step=max_step,
-                              min_step=min_step, first_step=first_step,
-                              lband=lband, uband=uband)
-        solver.set_initial_value(y0, t0)
-
-        # Inject t_bound into rwork array as needed for itask=5.
-        solver._integrator.rwork[0] = self.t_bound
-        solver._integrator.call_args[4] = solver._integrator.rwork
-
-        self._lsoda_solver = solver
-
-    def _step_impl(self):
-        solver = self._lsoda_solver
-        integrator = solver._integrator
-
-        # From lsoda.step and lsoda.integrate itask=5 means take a single
-        # step and do not go past t_bound.
-        itask = integrator.call_args[2]
-        integrator.call_args[2] = 5
-        solver._y, solver.t = integrator.run(
-            solver.f, solver.jac or (lambda: None), solver._y, solver.t,
-            self.t_bound, solver.f_params, solver.jac_params)
-        integrator.call_args[2] = itask
-
-        if solver.successful():
-            self.t = solver.t
-            self.y = solver._y
-            # From LSODA Fortran source njev is equal to nlu.
-            self.njev = integrator.iwork[12]
-            self.nlu = integrator.iwork[12]
-            return True, None
-        else:
-            return False, 'Unexpected istate in LSODA.'
-
-    def _dense_output_impl(self):
-        iwork = self._lsoda_solver._integrator.iwork
-        rwork = self._lsoda_solver._integrator.rwork
-
-        # We want to produce the Nordsieck history array, yh, up to the order
-        # used in the last successful iteration. The step size is unimportant
-        # because it will be scaled out in LsodaDenseOutput. Some additional
-        # work may be required because ODEPACK's LSODA implementation produces
-        # the Nordsieck history in the state needed for the next iteration.
-
-        # iwork[13] contains order from last successful iteration, while
-        # iwork[14] contains order to be attempted next.
-        order = iwork[13]
-
-        # rwork[11] contains the step size to be attempted next, while
-        # rwork[10] contains step size from last successful iteration.
-        h = rwork[11]
-
-        # rwork[20:20 + (iwork[14] + 1) * self.n] contains entries of the
-        # Nordsieck array in state needed for next iteration. We want
-        # the entries up to order for the last successful step so use the 
-        # following.
-        yh = np.reshape(rwork[20:20 + (order + 1) * self.n],
-                        (self.n, order + 1), order='F').copy()
-        if iwork[14] < order:
-            # If the order is set to decrease then the final column of yh
-            # has not been updated within ODEPACK's LSODA
-            # implementation because this column will not be used in the
-            # next iteration. We must rescale this column to make the
-            # associated step size consistent with the other columns.
-            yh[:, -1] *= (h / rwork[10]) ** order
-
-        return LsodaDenseOutput(self.t_old, self.t, h, order, yh)
-
-
-class LsodaDenseOutput(DenseOutput):
-    def __init__(self, t_old, t, h, order, yh):
-        super().__init__(t_old, t)
-        self.h = h
-        self.yh = yh
-        self.p = np.arange(order + 1)
-
-    def _call_impl(self, t):
-        if t.ndim == 0:
-            x = ((t - self.t) / self.h) ** self.p
-        else:
-            x = ((t - self.t) / self.h) ** self.p[:, None]
-
-        return np.dot(self.yh, x)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/radau.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/radau.py
deleted file mode 100644
index e13cb0f14c3c3e1102b828d4255609ab41d8d2a2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/radau.py
+++ /dev/null
@@ -1,574 +0,0 @@
-import numpy as np
-from scipy.linalg import lu_factor, lu_solve
-from scipy.sparse import csc_matrix, issparse, eye
-from scipy.sparse.linalg import splu
-from scipy.optimize._numdiff import group_columns
-from .common import (validate_max_step, validate_tol, select_initial_step,
-                     norm, num_jac, EPS, warn_extraneous,
-                     validate_first_step)
-from .base import OdeSolver, DenseOutput
-
-S6 = 6 ** 0.5
-
-# Butcher tableau. A is not used directly, see below.
-C = np.array([(4 - S6) / 10, (4 + S6) / 10, 1])
-E = np.array([-13 - 7 * S6, -13 + 7 * S6, -1]) / 3
-
-# Eigendecomposition of A is done: A = T L T**-1. There is 1 real eigenvalue
-# and a complex conjugate pair. They are written below.
-MU_REAL = 3 + 3 ** (2 / 3) - 3 ** (1 / 3)
-MU_COMPLEX = (3 + 0.5 * (3 ** (1 / 3) - 3 ** (2 / 3))
-              - 0.5j * (3 ** (5 / 6) + 3 ** (7 / 6)))
-
-# These are transformation matrices.
-T = np.array([
-    [0.09443876248897524, -0.14125529502095421, 0.03002919410514742],
-    [0.25021312296533332, 0.20412935229379994, -0.38294211275726192],
-    [1, 1, 0]])
-TI = np.array([
-    [4.17871859155190428, 0.32768282076106237, 0.52337644549944951],
-    [-4.17871859155190428, -0.32768282076106237, 0.47662355450055044],
-    [0.50287263494578682, -2.57192694985560522, 0.59603920482822492]])
-# These linear combinations are used in the algorithm.
-TI_REAL = TI[0]
-TI_COMPLEX = TI[1] + 1j * TI[2]
-
-# Interpolator coefficients.
-P = np.array([
-    [13/3 + 7*S6/3, -23/3 - 22*S6/3, 10/3 + 5 * S6],
-    [13/3 - 7*S6/3, -23/3 + 22*S6/3, 10/3 - 5 * S6],
-    [1/3, -8/3, 10/3]])
-
-
-NEWTON_MAXITER = 6  # Maximum number of Newton iterations.
-MIN_FACTOR = 0.2  # Minimum allowed decrease in a step size.
-MAX_FACTOR = 10  # Maximum allowed increase in a step size.
-
-
-def solve_collocation_system(fun, t, y, h, Z0, scale, tol,
-                             LU_real, LU_complex, solve_lu):
-    """Solve the collocation system.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system.
-    t : float
-        Current time.
-    y : ndarray, shape (n,)
-        Current state.
-    h : float
-        Step to try.
-    Z0 : ndarray, shape (3, n)
-        Initial guess for the solution. It determines new values of `y` at
-        ``t + h * C`` as ``y + Z0``, where ``C`` is the Radau method constants.
-    scale : ndarray, shape (n)
-        Problem tolerance scale, i.e. ``rtol * abs(y) + atol``.
-    tol : float
-        Tolerance to which solve the system. This value is compared with
-        the normalized by `scale` error.
-    LU_real, LU_complex
-        LU decompositions of the system Jacobians.
-    solve_lu : callable
-        Callable which solves a linear system given a LU decomposition. The
-        signature is ``solve_lu(LU, b)``.
-
-    Returns
-    -------
-    converged : bool
-        Whether iterations converged.
-    n_iter : int
-        Number of completed iterations.
-    Z : ndarray, shape (3, n)
-        Found solution.
-    rate : float
-        The rate of convergence.
-    """
-    n = y.shape[0]
-    M_real = MU_REAL / h
-    M_complex = MU_COMPLEX / h
-
-    W = TI.dot(Z0)
-    Z = Z0
-
-    F = np.empty((3, n))
-    ch = h * C
-
-    dW_norm_old = None
-    dW = np.empty_like(W)
-    converged = False
-    rate = None
-    for k in range(NEWTON_MAXITER):
-        for i in range(3):
-            F[i] = fun(t + ch[i], y + Z[i])
-
-        if not np.all(np.isfinite(F)):
-            break
-
-        f_real = F.T.dot(TI_REAL) - M_real * W[0]
-        f_complex = F.T.dot(TI_COMPLEX) - M_complex * (W[1] + 1j * W[2])
-
-        dW_real = solve_lu(LU_real, f_real)
-        dW_complex = solve_lu(LU_complex, f_complex)
-
-        dW[0] = dW_real
-        dW[1] = dW_complex.real
-        dW[2] = dW_complex.imag
-
-        dW_norm = norm(dW / scale)
-        if dW_norm_old is not None:
-            rate = dW_norm / dW_norm_old
-
-        if (rate is not None and (rate >= 1 or
-                rate ** (NEWTON_MAXITER - k) / (1 - rate) * dW_norm > tol)):
-            break
-
-        W += dW
-        Z = T.dot(W)
-
-        if (dW_norm == 0 or
-                rate is not None and rate / (1 - rate) * dW_norm < tol):
-            converged = True
-            break
-
-        dW_norm_old = dW_norm
-
-    return converged, k + 1, Z, rate
-
-
-def predict_factor(h_abs, h_abs_old, error_norm, error_norm_old):
-    """Predict by which factor to increase/decrease the step size.
-
-    The algorithm is described in [1]_.
-
-    Parameters
-    ----------
-    h_abs, h_abs_old : float
-        Current and previous values of the step size, `h_abs_old` can be None
-        (see Notes).
-    error_norm, error_norm_old : float
-        Current and previous values of the error norm, `error_norm_old` can
-        be None (see Notes).
-
-    Returns
-    -------
-    factor : float
-        Predicted factor.
-
-    Notes
-    -----
-    If `h_abs_old` and `error_norm_old` are both not None then a two-step
-    algorithm is used, otherwise a one-step algorithm is used.
-
-    References
-    ----------
-    .. [1] E. Hairer, S. P. Norsett G. Wanner, "Solving Ordinary Differential
-           Equations II: Stiff and Differential-Algebraic Problems", Sec. IV.8.
-    """
-    if error_norm_old is None or h_abs_old is None or error_norm == 0:
-        multiplier = 1
-    else:
-        multiplier = h_abs / h_abs_old * (error_norm_old / error_norm) ** 0.25
-
-    with np.errstate(divide='ignore'):
-        factor = min(1, multiplier) * error_norm ** -0.25
-
-    return factor
-
-
-class Radau(OdeSolver):
-    """Implicit Runge-Kutta method of Radau IIA family of order 5.
-
-    The implementation follows [1]_. The error is controlled with a
-    third-order accurate embedded formula. A cubic polynomial which satisfies
-    the collocation conditions is used for the dense output.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system: the time derivative of the state ``y``
-        at time ``t``. The calling signature is ``fun(t, y)``, where ``t`` is a
-        scalar and ``y`` is an ndarray with ``len(y) = len(y0)``. ``fun`` must
-        return an array of the same shape as ``y``. See `vectorized` for more
-        information.
-    t0 : float
-        Initial time.
-    y0 : array_like, shape (n,)
-        Initial state.
-    t_bound : float
-        Boundary time - the integration won't continue beyond it. It also
-        determines the direction of the integration.
-    first_step : float or None, optional
-        Initial step size. Default is ``None`` which means that the algorithm
-        should choose.
-    max_step : float, optional
-        Maximum allowed step size. Default is np.inf, i.e., the step size is not
-        bounded and determined solely by the solver.
-    rtol, atol : float and array_like, optional
-        Relative and absolute tolerances. The solver keeps the local error
-        estimates less than ``atol + rtol * abs(y)``. HHere `rtol` controls a
-        relative accuracy (number of correct digits), while `atol` controls
-        absolute accuracy (number of correct decimal places). To achieve the
-        desired `rtol`, set `atol` to be smaller than the smallest value that
-        can be expected from ``rtol * abs(y)`` so that `rtol` dominates the
-        allowable error. If `atol` is larger than ``rtol * abs(y)`` the
-        number of correct digits is not guaranteed. Conversely, to achieve the
-        desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller
-        than `atol`. If components of y have different scales, it might be
-        beneficial to set different `atol` values for different components by
-        passing array_like with shape (n,) for `atol`. Default values are
-        1e-3 for `rtol` and 1e-6 for `atol`.
-    jac : {None, array_like, sparse_matrix, callable}, optional
-        Jacobian matrix of the right-hand side of the system with respect to
-        y, required by this method. The Jacobian matrix has shape (n, n) and
-        its element (i, j) is equal to ``d f_i / d y_j``.
-        There are three ways to define the Jacobian:
-
-            * If array_like or sparse_matrix, the Jacobian is assumed to
-              be constant.
-            * If callable, the Jacobian is assumed to depend on both
-              t and y; it will be called as ``jac(t, y)`` as necessary.
-              For the 'Radau' and 'BDF' methods, the return value might be a
-              sparse matrix.
-            * If None (default), the Jacobian will be approximated by
-              finite differences.
-
-        It is generally recommended to provide the Jacobian rather than
-        relying on a finite-difference approximation.
-    jac_sparsity : {None, array_like, sparse matrix}, optional
-        Defines a sparsity structure of the Jacobian matrix for a
-        finite-difference approximation. Its shape must be (n, n). This argument
-        is ignored if `jac` is not `None`. If the Jacobian has only few non-zero
-        elements in *each* row, providing the sparsity structure will greatly
-        speed up the computations [2]_. A zero entry means that a corresponding
-        element in the Jacobian is always zero. If None (default), the Jacobian
-        is assumed to be dense.
-    vectorized : bool, optional
-        Whether `fun` can be called in a vectorized fashion. Default is False.
-
-        If ``vectorized`` is False, `fun` will always be called with ``y`` of
-        shape ``(n,)``, where ``n = len(y0)``.
-
-        If ``vectorized`` is True, `fun` may be called with ``y`` of shape
-        ``(n, k)``, where ``k`` is an integer. In this case, `fun` must behave
-        such that ``fun(t, y)[:, i] == fun(t, y[:, i])`` (i.e. each column of
-        the returned array is the time derivative of the state corresponding
-        with a column of ``y``).
-
-        Setting ``vectorized=True`` allows for faster finite difference
-        approximation of the Jacobian by this method, but may result in slower
-        execution overall in some circumstances (e.g. small ``len(y0)``).
-
-    Attributes
-    ----------
-    n : int
-        Number of equations.
-    status : string
-        Current status of the solver: 'running', 'finished' or 'failed'.
-    t_bound : float
-        Boundary time.
-    direction : float
-        Integration direction: +1 or -1.
-    t : float
-        Current time.
-    y : ndarray
-        Current state.
-    t_old : float
-        Previous time. None if no steps were made yet.
-    step_size : float
-        Size of the last successful step. None if no steps were made yet.
-    nfev : int
-        Number of evaluations of the right-hand side.
-    njev : int
-        Number of evaluations of the Jacobian.
-    nlu : int
-        Number of LU decompositions.
-
-    References
-    ----------
-    .. [1] E. Hairer, G. Wanner, "Solving Ordinary Differential Equations II:
-           Stiff and Differential-Algebraic Problems", Sec. IV.8.
-    .. [2] A. Curtis, M. J. D. Powell, and J. Reid, "On the estimation of
-           sparse Jacobian matrices", Journal of the Institute of Mathematics
-           and its Applications, 13, pp. 117-120, 1974.
-    """
-    def __init__(self, fun, t0, y0, t_bound, max_step=np.inf,
-                 rtol=1e-3, atol=1e-6, jac=None, jac_sparsity=None,
-                 vectorized=False, first_step=None, **extraneous):
-        warn_extraneous(extraneous)
-        super().__init__(fun, t0, y0, t_bound, vectorized)
-        self.y_old = None
-        self.max_step = validate_max_step(max_step)
-        self.rtol, self.atol = validate_tol(rtol, atol, self.n)
-        self.f = self.fun(self.t, self.y)
-        # Select initial step assuming the same order which is used to control
-        # the error.
-        if first_step is None:
-            self.h_abs = select_initial_step(
-                self.fun, self.t, self.y, t_bound, max_step, self.f, self.direction,
-                3, self.rtol, self.atol)
-        else:
-            self.h_abs = validate_first_step(first_step, t0, t_bound)
-        self.h_abs_old = None
-        self.error_norm_old = None
-
-        self.newton_tol = max(10 * EPS / rtol, min(0.03, rtol ** 0.5))
-        self.sol = None
-
-        self.jac_factor = None
-        self.jac, self.J = self._validate_jac(jac, jac_sparsity)
-        if issparse(self.J):
-            def lu(A):
-                self.nlu += 1
-                return splu(A)
-
-            def solve_lu(LU, b):
-                return LU.solve(b)
-
-            I = eye(self.n, format='csc')
-        else:
-            def lu(A):
-                self.nlu += 1
-                return lu_factor(A, overwrite_a=True)
-
-            def solve_lu(LU, b):
-                return lu_solve(LU, b, overwrite_b=True)
-
-            I = np.identity(self.n)
-
-        self.lu = lu
-        self.solve_lu = solve_lu
-        self.I = I
-
-        self.current_jac = True
-        self.LU_real = None
-        self.LU_complex = None
-        self.Z = None
-
-    def _validate_jac(self, jac, sparsity):
-        t0 = self.t
-        y0 = self.y
-
-        if jac is None:
-            if sparsity is not None:
-                if issparse(sparsity):
-                    sparsity = csc_matrix(sparsity)
-                groups = group_columns(sparsity)
-                sparsity = (sparsity, groups)
-
-            def jac_wrapped(t, y, f):
-                self.njev += 1
-                J, self.jac_factor = num_jac(self.fun_vectorized, t, y, f,
-                                             self.atol, self.jac_factor,
-                                             sparsity)
-                return J
-            J = jac_wrapped(t0, y0, self.f)
-        elif callable(jac):
-            J = jac(t0, y0)
-            self.njev = 1
-            if issparse(J):
-                J = csc_matrix(J)
-
-                def jac_wrapped(t, y, _=None):
-                    self.njev += 1
-                    return csc_matrix(jac(t, y), dtype=float)
-
-            else:
-                J = np.asarray(J, dtype=float)
-
-                def jac_wrapped(t, y, _=None):
-                    self.njev += 1
-                    return np.asarray(jac(t, y), dtype=float)
-
-            if J.shape != (self.n, self.n):
-                raise ValueError("`jac` is expected to have shape {}, but "
-                                 "actually has {}."
-                                 .format((self.n, self.n), J.shape))
-        else:
-            if issparse(jac):
-                J = csc_matrix(jac)
-            else:
-                J = np.asarray(jac, dtype=float)
-
-            if J.shape != (self.n, self.n):
-                raise ValueError("`jac` is expected to have shape {}, but "
-                                 "actually has {}."
-                                 .format((self.n, self.n), J.shape))
-            jac_wrapped = None
-
-        return jac_wrapped, J
-
-    def _step_impl(self):
-        t = self.t
-        y = self.y
-        f = self.f
-
-        max_step = self.max_step
-        atol = self.atol
-        rtol = self.rtol
-
-        min_step = 10 * np.abs(np.nextafter(t, self.direction * np.inf) - t)
-        if self.h_abs > max_step:
-            h_abs = max_step
-            h_abs_old = None
-            error_norm_old = None
-        elif self.h_abs < min_step:
-            h_abs = min_step
-            h_abs_old = None
-            error_norm_old = None
-        else:
-            h_abs = self.h_abs
-            h_abs_old = self.h_abs_old
-            error_norm_old = self.error_norm_old
-
-        J = self.J
-        LU_real = self.LU_real
-        LU_complex = self.LU_complex
-
-        current_jac = self.current_jac
-        jac = self.jac
-
-        rejected = False
-        step_accepted = False
-        message = None
-        while not step_accepted:
-            if h_abs < min_step:
-                return False, self.TOO_SMALL_STEP
-
-            h = h_abs * self.direction
-            t_new = t + h
-
-            if self.direction * (t_new - self.t_bound) > 0:
-                t_new = self.t_bound
-
-            h = t_new - t
-            h_abs = np.abs(h)
-
-            if self.sol is None:
-                Z0 = np.zeros((3, y.shape[0]))
-            else:
-                Z0 = self.sol(t + h * C).T - y
-
-            scale = atol + np.abs(y) * rtol
-
-            converged = False
-            while not converged:
-                if LU_real is None or LU_complex is None:
-                    LU_real = self.lu(MU_REAL / h * self.I - J)
-                    LU_complex = self.lu(MU_COMPLEX / h * self.I - J)
-
-                converged, n_iter, Z, rate = solve_collocation_system(
-                    self.fun, t, y, h, Z0, scale, self.newton_tol,
-                    LU_real, LU_complex, self.solve_lu)
-
-                if not converged:
-                    if current_jac:
-                        break
-
-                    J = self.jac(t, y, f)
-                    current_jac = True
-                    LU_real = None
-                    LU_complex = None
-
-            if not converged:
-                h_abs *= 0.5
-                LU_real = None
-                LU_complex = None
-                continue
-
-            y_new = y + Z[-1]
-            ZE = Z.T.dot(E) / h
-            error = self.solve_lu(LU_real, f + ZE)
-            scale = atol + np.maximum(np.abs(y), np.abs(y_new)) * rtol
-            error_norm = norm(error / scale)
-            safety = 0.9 * (2 * NEWTON_MAXITER + 1) / (2 * NEWTON_MAXITER
-                                                       + n_iter)
-
-            if rejected and error_norm > 1:
-                error = self.solve_lu(LU_real, self.fun(t, y + error) + ZE)
-                error_norm = norm(error / scale)
-
-            if error_norm > 1:
-                factor = predict_factor(h_abs, h_abs_old,
-                                        error_norm, error_norm_old)
-                h_abs *= max(MIN_FACTOR, safety * factor)
-
-                LU_real = None
-                LU_complex = None
-                rejected = True
-            else:
-                step_accepted = True
-
-        recompute_jac = jac is not None and n_iter > 2 and rate > 1e-3
-
-        factor = predict_factor(h_abs, h_abs_old, error_norm, error_norm_old)
-        factor = min(MAX_FACTOR, safety * factor)
-
-        if not recompute_jac and factor < 1.2:
-            factor = 1
-        else:
-            LU_real = None
-            LU_complex = None
-
-        f_new = self.fun(t_new, y_new)
-        if recompute_jac:
-            J = jac(t_new, y_new, f_new)
-            current_jac = True
-        elif jac is not None:
-            current_jac = False
-
-        self.h_abs_old = self.h_abs
-        self.error_norm_old = error_norm
-
-        self.h_abs = h_abs * factor
-
-        self.y_old = y
-
-        self.t = t_new
-        self.y = y_new
-        self.f = f_new
-
-        self.Z = Z
-
-        self.LU_real = LU_real
-        self.LU_complex = LU_complex
-        self.current_jac = current_jac
-        self.J = J
-
-        self.t_old = t
-        self.sol = self._compute_dense_output()
-
-        return step_accepted, message
-
-    def _compute_dense_output(self):
-        Q = np.dot(self.Z.T, P)
-        return RadauDenseOutput(self.t_old, self.t, self.y_old, Q)
-
-    def _dense_output_impl(self):
-        return self.sol
-
-
-class RadauDenseOutput(DenseOutput):
-    def __init__(self, t_old, t, y_old, Q):
-        super().__init__(t_old, t)
-        self.h = t - t_old
-        self.Q = Q
-        self.order = Q.shape[1] - 1
-        self.y_old = y_old
-
-    def _call_impl(self, t):
-        x = (t - self.t_old) / self.h
-        if t.ndim == 0:
-            p = np.tile(x, self.order + 1)
-            p = np.cumprod(p)
-        else:
-            p = np.tile(x, (self.order + 1, 1))
-            p = np.cumprod(p, axis=0)
-        # Here we don't multiply by h, not a mistake.
-        y = np.dot(self.Q, p)
-        if y.ndim == 2:
-            y += self.y_old[:, None]
-        else:
-            y += self.y_old
-
-        return y
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/rk.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/rk.py
deleted file mode 100644
index 62a5347ffe91afc754e9b818d0b34c010d0c4d12..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/rk.py
+++ /dev/null
@@ -1,601 +0,0 @@
-import numpy as np
-from .base import OdeSolver, DenseOutput
-from .common import (validate_max_step, validate_tol, select_initial_step,
-                     norm, warn_extraneous, validate_first_step)
-from . import dop853_coefficients
-
-# Multiply steps computed from asymptotic behaviour of errors by this.
-SAFETY = 0.9
-
-MIN_FACTOR = 0.2  # Minimum allowed decrease in a step size.
-MAX_FACTOR = 10  # Maximum allowed increase in a step size.
-
-
-def rk_step(fun, t, y, f, h, A, B, C, K):
-    """Perform a single Runge-Kutta step.
-
-    This function computes a prediction of an explicit Runge-Kutta method and
-    also estimates the error of a less accurate method.
-
-    Notation for Butcher tableau is as in [1]_.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system.
-    t : float
-        Current time.
-    y : ndarray, shape (n,)
-        Current state.
-    f : ndarray, shape (n,)
-        Current value of the derivative, i.e., ``fun(x, y)``.
-    h : float
-        Step to use.
-    A : ndarray, shape (n_stages, n_stages)
-        Coefficients for combining previous RK stages to compute the next
-        stage. For explicit methods the coefficients at and above the main
-        diagonal are zeros.
-    B : ndarray, shape (n_stages,)
-        Coefficients for combining RK stages for computing the final
-        prediction.
-    C : ndarray, shape (n_stages,)
-        Coefficients for incrementing time for consecutive RK stages.
-        The value for the first stage is always zero.
-    K : ndarray, shape (n_stages + 1, n)
-        Storage array for putting RK stages here. Stages are stored in rows.
-        The last row is a linear combination of the previous rows with
-        coefficients
-
-    Returns
-    -------
-    y_new : ndarray, shape (n,)
-        Solution at t + h computed with a higher accuracy.
-    f_new : ndarray, shape (n,)
-        Derivative ``fun(t + h, y_new)``.
-
-    References
-    ----------
-    .. [1] E. Hairer, S. P. Norsett G. Wanner, "Solving Ordinary Differential
-           Equations I: Nonstiff Problems", Sec. II.4.
-    """
-    K[0] = f
-    for s, (a, c) in enumerate(zip(A[1:], C[1:]), start=1):
-        dy = np.dot(K[:s].T, a[:s]) * h
-        K[s] = fun(t + c * h, y + dy)
-
-    y_new = y + h * np.dot(K[:-1].T, B)
-    f_new = fun(t + h, y_new)
-
-    K[-1] = f_new
-
-    return y_new, f_new
-
-
-class RungeKutta(OdeSolver):
-    """Base class for explicit Runge-Kutta methods."""
-    C: np.ndarray = NotImplemented
-    A: np.ndarray = NotImplemented
-    B: np.ndarray = NotImplemented
-    E: np.ndarray = NotImplemented
-    P: np.ndarray = NotImplemented
-    order: int = NotImplemented
-    error_estimator_order: int = NotImplemented
-    n_stages: int = NotImplemented
-
-    def __init__(self, fun, t0, y0, t_bound, max_step=np.inf,
-                 rtol=1e-3, atol=1e-6, vectorized=False,
-                 first_step=None, **extraneous):
-        warn_extraneous(extraneous)
-        super().__init__(fun, t0, y0, t_bound, vectorized,
-                         support_complex=True)
-        self.y_old = None
-        self.max_step = validate_max_step(max_step)
-        self.rtol, self.atol = validate_tol(rtol, atol, self.n)
-        self.f = self.fun(self.t, self.y)
-        if first_step is None:
-            self.h_abs = select_initial_step(
-                self.fun, self.t, self.y, t_bound, max_step, self.f, self.direction,
-                self.error_estimator_order, self.rtol, self.atol)
-        else:
-            self.h_abs = validate_first_step(first_step, t0, t_bound)
-        self.K = np.empty((self.n_stages + 1, self.n), dtype=self.y.dtype)
-        self.error_exponent = -1 / (self.error_estimator_order + 1)
-        self.h_previous = None
-
-    def _estimate_error(self, K, h):
-        return np.dot(K.T, self.E) * h
-
-    def _estimate_error_norm(self, K, h, scale):
-        return norm(self._estimate_error(K, h) / scale)
-
-    def _step_impl(self):
-        t = self.t
-        y = self.y
-
-        max_step = self.max_step
-        rtol = self.rtol
-        atol = self.atol
-
-        min_step = 10 * np.abs(np.nextafter(t, self.direction * np.inf) - t)
-
-        if self.h_abs > max_step:
-            h_abs = max_step
-        elif self.h_abs < min_step:
-            h_abs = min_step
-        else:
-            h_abs = self.h_abs
-
-        step_accepted = False
-        step_rejected = False
-
-        while not step_accepted:
-            if h_abs < min_step:
-                return False, self.TOO_SMALL_STEP
-
-            h = h_abs * self.direction
-            t_new = t + h
-
-            if self.direction * (t_new - self.t_bound) > 0:
-                t_new = self.t_bound
-
-            h = t_new - t
-            h_abs = np.abs(h)
-
-            y_new, f_new = rk_step(self.fun, t, y, self.f, h, self.A,
-                                   self.B, self.C, self.K)
-            scale = atol + np.maximum(np.abs(y), np.abs(y_new)) * rtol
-            error_norm = self._estimate_error_norm(self.K, h, scale)
-
-            if error_norm < 1:
-                if error_norm == 0:
-                    factor = MAX_FACTOR
-                else:
-                    factor = min(MAX_FACTOR,
-                                 SAFETY * error_norm ** self.error_exponent)
-
-                if step_rejected:
-                    factor = min(1, factor)
-
-                h_abs *= factor
-
-                step_accepted = True
-            else:
-                h_abs *= max(MIN_FACTOR,
-                             SAFETY * error_norm ** self.error_exponent)
-                step_rejected = True
-
-        self.h_previous = h
-        self.y_old = y
-
-        self.t = t_new
-        self.y = y_new
-
-        self.h_abs = h_abs
-        self.f = f_new
-
-        return True, None
-
-    def _dense_output_impl(self):
-        Q = self.K.T.dot(self.P)
-        return RkDenseOutput(self.t_old, self.t, self.y_old, Q)
-
-
-class RK23(RungeKutta):
-    """Explicit Runge-Kutta method of order 3(2).
-
-    This uses the Bogacki-Shampine pair of formulas [1]_. The error is controlled
-    assuming accuracy of the second-order method, but steps are taken using the
-    third-order accurate formula (local extrapolation is done). A cubic Hermite
-    polynomial is used for the dense output.
-
-    Can be applied in the complex domain.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system: the time derivative of the state ``y``
-        at time ``t``. The calling signature is ``fun(t, y)``, where ``t`` is a
-        scalar and ``y`` is an ndarray with ``len(y) = len(y0)``. ``fun`` must
-        return an array of the same shape as ``y``. See `vectorized` for more
-        information.
-    t0 : float
-        Initial time.
-    y0 : array_like, shape (n,)
-        Initial state.
-    t_bound : float
-        Boundary time - the integration won't continue beyond it. It also
-        determines the direction of the integration.
-    first_step : float or None, optional
-        Initial step size. Default is ``None`` which means that the algorithm
-        should choose.
-    max_step : float, optional
-        Maximum allowed step size. Default is np.inf, i.e., the step size is not
-        bounded and determined solely by the solver.
-    rtol, atol : float and array_like, optional
-        Relative and absolute tolerances. The solver keeps the local error
-        estimates less than ``atol + rtol * abs(y)``. Here `rtol` controls a
-        relative accuracy (number of correct digits), while `atol` controls
-        absolute accuracy (number of correct decimal places). To achieve the
-        desired `rtol`, set `atol` to be smaller than the smallest value that
-        can be expected from ``rtol * abs(y)`` so that `rtol` dominates the
-        allowable error. If `atol` is larger than ``rtol * abs(y)`` the
-        number of correct digits is not guaranteed. Conversely, to achieve the
-        desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller
-        than `atol`. If components of y have different scales, it might be
-        beneficial to set different `atol` values for different components by
-        passing array_like with shape (n,) for `atol`. Default values are
-        1e-3 for `rtol` and 1e-6 for `atol`.
-    vectorized : bool, optional
-        Whether `fun` may be called in a vectorized fashion. False (default)
-        is recommended for this solver.
-
-        If ``vectorized`` is False, `fun` will always be called with ``y`` of
-        shape ``(n,)``, where ``n = len(y0)``.
-
-        If ``vectorized`` is True, `fun` may be called with ``y`` of shape
-        ``(n, k)``, where ``k`` is an integer. In this case, `fun` must behave
-        such that ``fun(t, y)[:, i] == fun(t, y[:, i])`` (i.e. each column of
-        the returned array is the time derivative of the state corresponding
-        with a column of ``y``).
-
-        Setting ``vectorized=True`` allows for faster finite difference
-        approximation of the Jacobian by methods 'Radau' and 'BDF', but
-        will result in slower execution for this solver.
-
-    Attributes
-    ----------
-    n : int
-        Number of equations.
-    status : string
-        Current status of the solver: 'running', 'finished' or 'failed'.
-    t_bound : float
-        Boundary time.
-    direction : float
-        Integration direction: +1 or -1.
-    t : float
-        Current time.
-    y : ndarray
-        Current state.
-    t_old : float
-        Previous time. None if no steps were made yet.
-    step_size : float
-        Size of the last successful step. None if no steps were made yet.
-    nfev : int
-        Number evaluations of the system's right-hand side.
-    njev : int
-        Number of evaluations of the Jacobian.
-        Is always 0 for this solver as it does not use the Jacobian.
-    nlu : int
-        Number of LU decompositions. Is always 0 for this solver.
-
-    References
-    ----------
-    .. [1] P. Bogacki, L.F. Shampine, "A 3(2) Pair of Runge-Kutta Formulas",
-           Appl. Math. Lett. Vol. 2, No. 4. pp. 321-325, 1989.
-    """
-    order = 3
-    error_estimator_order = 2
-    n_stages = 3
-    C = np.array([0, 1/2, 3/4])
-    A = np.array([
-        [0, 0, 0],
-        [1/2, 0, 0],
-        [0, 3/4, 0]
-    ])
-    B = np.array([2/9, 1/3, 4/9])
-    E = np.array([5/72, -1/12, -1/9, 1/8])
-    P = np.array([[1, -4 / 3, 5 / 9],
-                  [0, 1, -2/3],
-                  [0, 4/3, -8/9],
-                  [0, -1, 1]])
-
-
-class RK45(RungeKutta):
-    """Explicit Runge-Kutta method of order 5(4).
-
-    This uses the Dormand-Prince pair of formulas [1]_. The error is controlled
-    assuming accuracy of the fourth-order method accuracy, but steps are taken
-    using the fifth-order accurate formula (local extrapolation is done).
-    A quartic interpolation polynomial is used for the dense output [2]_.
-
-    Can be applied in the complex domain.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system. The calling signature is ``fun(t, y)``.
-        Here ``t`` is a scalar, and there are two options for the ndarray ``y``:
-        It can either have shape (n,); then ``fun`` must return array_like with
-        shape (n,). Alternatively it can have shape (n, k); then ``fun``
-        must return an array_like with shape (n, k), i.e., each column
-        corresponds to a single column in ``y``. The choice between the two
-        options is determined by `vectorized` argument (see below).
-    t0 : float
-        Initial time.
-    y0 : array_like, shape (n,)
-        Initial state.
-    t_bound : float
-        Boundary time - the integration won't continue beyond it. It also
-        determines the direction of the integration.
-    first_step : float or None, optional
-        Initial step size. Default is ``None`` which means that the algorithm
-        should choose.
-    max_step : float, optional
-        Maximum allowed step size. Default is np.inf, i.e., the step size is not
-        bounded and determined solely by the solver.
-    rtol, atol : float and array_like, optional
-        Relative and absolute tolerances. The solver keeps the local error
-        estimates less than ``atol + rtol * abs(y)``. Here `rtol` controls a
-        relative accuracy (number of correct digits), while `atol` controls
-        absolute accuracy (number of correct decimal places). To achieve the
-        desired `rtol`, set `atol` to be smaller than the smallest value that
-        can be expected from ``rtol * abs(y)`` so that `rtol` dominates the
-        allowable error. If `atol` is larger than ``rtol * abs(y)`` the
-        number of correct digits is not guaranteed. Conversely, to achieve the
-        desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller
-        than `atol`. If components of y have different scales, it might be
-        beneficial to set different `atol` values for different components by
-        passing array_like with shape (n,) for `atol`. Default values are
-        1e-3 for `rtol` and 1e-6 for `atol`.
-    vectorized : bool, optional
-        Whether `fun` is implemented in a vectorized fashion. Default is False.
-
-    Attributes
-    ----------
-    n : int
-        Number of equations.
-    status : string
-        Current status of the solver: 'running', 'finished' or 'failed'.
-    t_bound : float
-        Boundary time.
-    direction : float
-        Integration direction: +1 or -1.
-    t : float
-        Current time.
-    y : ndarray
-        Current state.
-    t_old : float
-        Previous time. None if no steps were made yet.
-    step_size : float
-        Size of the last successful step. None if no steps were made yet.
-    nfev : int
-        Number evaluations of the system's right-hand side.
-    njev : int
-        Number of evaluations of the Jacobian.
-        Is always 0 for this solver as it does not use the Jacobian.
-    nlu : int
-        Number of LU decompositions. Is always 0 for this solver.
-
-    References
-    ----------
-    .. [1] J. R. Dormand, P. J. Prince, "A family of embedded Runge-Kutta
-           formulae", Journal of Computational and Applied Mathematics, Vol. 6,
-           No. 1, pp. 19-26, 1980.
-    .. [2] L. W. Shampine, "Some Practical Runge-Kutta Formulas", Mathematics
-           of Computation,, Vol. 46, No. 173, pp. 135-150, 1986.
-    """
-    order = 5
-    error_estimator_order = 4
-    n_stages = 6
-    C = np.array([0, 1/5, 3/10, 4/5, 8/9, 1])
-    A = np.array([
-        [0, 0, 0, 0, 0],
-        [1/5, 0, 0, 0, 0],
-        [3/40, 9/40, 0, 0, 0],
-        [44/45, -56/15, 32/9, 0, 0],
-        [19372/6561, -25360/2187, 64448/6561, -212/729, 0],
-        [9017/3168, -355/33, 46732/5247, 49/176, -5103/18656]
-    ])
-    B = np.array([35/384, 0, 500/1113, 125/192, -2187/6784, 11/84])
-    E = np.array([-71/57600, 0, 71/16695, -71/1920, 17253/339200, -22/525,
-                  1/40])
-    # Corresponds to the optimum value of c_6 from [2]_.
-    P = np.array([
-        [1, -8048581381/2820520608, 8663915743/2820520608,
-         -12715105075/11282082432],
-        [0, 0, 0, 0],
-        [0, 131558114200/32700410799, -68118460800/10900136933,
-         87487479700/32700410799],
-        [0, -1754552775/470086768, 14199869525/1410260304,
-         -10690763975/1880347072],
-        [0, 127303824393/49829197408, -318862633887/49829197408,
-         701980252875 / 199316789632],
-        [0, -282668133/205662961, 2019193451/616988883, -1453857185/822651844],
-        [0, 40617522/29380423, -110615467/29380423, 69997945/29380423]])
-
-
-class DOP853(RungeKutta):
-    """Explicit Runge-Kutta method of order 8.
-
-    This is a Python implementation of "DOP853" algorithm originally written
-    in Fortran [1]_, [2]_. Note that this is not a literal translation, but
-    the algorithmic core and coefficients are the same.
-
-    Can be applied in the complex domain.
-
-    Parameters
-    ----------
-    fun : callable
-        Right-hand side of the system. The calling signature is ``fun(t, y)``.
-        Here, ``t`` is a scalar, and there are two options for the ndarray ``y``:
-        It can either have shape (n,); then ``fun`` must return array_like with
-        shape (n,). Alternatively it can have shape (n, k); then ``fun``
-        must return an array_like with shape (n, k), i.e. each column
-        corresponds to a single column in ``y``. The choice between the two
-        options is determined by `vectorized` argument (see below).
-    t0 : float
-        Initial time.
-    y0 : array_like, shape (n,)
-        Initial state.
-    t_bound : float
-        Boundary time - the integration won't continue beyond it. It also
-        determines the direction of the integration.
-    first_step : float or None, optional
-        Initial step size. Default is ``None`` which means that the algorithm
-        should choose.
-    max_step : float, optional
-        Maximum allowed step size. Default is np.inf, i.e. the step size is not
-        bounded and determined solely by the solver.
-    rtol, atol : float and array_like, optional
-        Relative and absolute tolerances. The solver keeps the local error
-        estimates less than ``atol + rtol * abs(y)``. Here `rtol` controls a
-        relative accuracy (number of correct digits), while `atol` controls
-        absolute accuracy (number of correct decimal places). To achieve the
-        desired `rtol`, set `atol` to be smaller than the smallest value that
-        can be expected from ``rtol * abs(y)`` so that `rtol` dominates the
-        allowable error. If `atol` is larger than ``rtol * abs(y)`` the
-        number of correct digits is not guaranteed. Conversely, to achieve the
-        desired `atol` set `rtol` such that ``rtol * abs(y)`` is always smaller
-        than `atol`. If components of y have different scales, it might be
-        beneficial to set different `atol` values for different components by
-        passing array_like with shape (n,) for `atol`. Default values are
-        1e-3 for `rtol` and 1e-6 for `atol`.
-    vectorized : bool, optional
-        Whether `fun` is implemented in a vectorized fashion. Default is False.
-
-    Attributes
-    ----------
-    n : int
-        Number of equations.
-    status : string
-        Current status of the solver: 'running', 'finished' or 'failed'.
-    t_bound : float
-        Boundary time.
-    direction : float
-        Integration direction: +1 or -1.
-    t : float
-        Current time.
-    y : ndarray
-        Current state.
-    t_old : float
-        Previous time. None if no steps were made yet.
-    step_size : float
-        Size of the last successful step. None if no steps were made yet.
-    nfev : int
-        Number evaluations of the system's right-hand side.
-    njev : int
-        Number of evaluations of the Jacobian. Is always 0 for this solver
-        as it does not use the Jacobian.
-    nlu : int
-        Number of LU decompositions. Is always 0 for this solver.
-
-    References
-    ----------
-    .. [1] E. Hairer, S. P. Norsett G. Wanner, "Solving Ordinary Differential
-           Equations I: Nonstiff Problems", Sec. II.
-    .. [2] `Page with original Fortran code of DOP853
-            `_.
-    """
-    n_stages = dop853_coefficients.N_STAGES
-    order = 8
-    error_estimator_order = 7
-    A = dop853_coefficients.A[:n_stages, :n_stages]
-    B = dop853_coefficients.B
-    C = dop853_coefficients.C[:n_stages]
-    E3 = dop853_coefficients.E3
-    E5 = dop853_coefficients.E5
-    D = dop853_coefficients.D
-
-    A_EXTRA = dop853_coefficients.A[n_stages + 1:]
-    C_EXTRA = dop853_coefficients.C[n_stages + 1:]
-
-    def __init__(self, fun, t0, y0, t_bound, max_step=np.inf,
-                 rtol=1e-3, atol=1e-6, vectorized=False,
-                 first_step=None, **extraneous):
-        super().__init__(fun, t0, y0, t_bound, max_step, rtol, atol,
-                         vectorized, first_step, **extraneous)
-        self.K_extended = np.empty((dop853_coefficients.N_STAGES_EXTENDED,
-                                    self.n), dtype=self.y.dtype)
-        self.K = self.K_extended[:self.n_stages + 1]
-
-    def _estimate_error(self, K, h):  # Left for testing purposes.
-        err5 = np.dot(K.T, self.E5)
-        err3 = np.dot(K.T, self.E3)
-        denom = np.hypot(np.abs(err5), 0.1 * np.abs(err3))
-        correction_factor = np.ones_like(err5)
-        mask = denom > 0
-        correction_factor[mask] = np.abs(err5[mask]) / denom[mask]
-        return h * err5 * correction_factor
-
-    def _estimate_error_norm(self, K, h, scale):
-        err5 = np.dot(K.T, self.E5) / scale
-        err3 = np.dot(K.T, self.E3) / scale
-        err5_norm_2 = np.linalg.norm(err5)**2
-        err3_norm_2 = np.linalg.norm(err3)**2
-        if err5_norm_2 == 0 and err3_norm_2 == 0:
-            return 0.0
-        denom = err5_norm_2 + 0.01 * err3_norm_2
-        return np.abs(h) * err5_norm_2 / np.sqrt(denom * len(scale))
-
-    def _dense_output_impl(self):
-        K = self.K_extended
-        h = self.h_previous
-        for s, (a, c) in enumerate(zip(self.A_EXTRA, self.C_EXTRA),
-                                   start=self.n_stages + 1):
-            dy = np.dot(K[:s].T, a[:s]) * h
-            K[s] = self.fun(self.t_old + c * h, self.y_old + dy)
-
-        F = np.empty((dop853_coefficients.INTERPOLATOR_POWER, self.n),
-                     dtype=self.y_old.dtype)
-
-        f_old = K[0]
-        delta_y = self.y - self.y_old
-
-        F[0] = delta_y
-        F[1] = h * f_old - delta_y
-        F[2] = 2 * delta_y - h * (self.f + f_old)
-        F[3:] = h * np.dot(self.D, K)
-
-        return Dop853DenseOutput(self.t_old, self.t, self.y_old, F)
-
-
-class RkDenseOutput(DenseOutput):
-    def __init__(self, t_old, t, y_old, Q):
-        super().__init__(t_old, t)
-        self.h = t - t_old
-        self.Q = Q
-        self.order = Q.shape[1] - 1
-        self.y_old = y_old
-
-    def _call_impl(self, t):
-        x = (t - self.t_old) / self.h
-        if t.ndim == 0:
-            p = np.tile(x, self.order + 1)
-            p = np.cumprod(p)
-        else:
-            p = np.tile(x, (self.order + 1, 1))
-            p = np.cumprod(p, axis=0)
-        y = self.h * np.dot(self.Q, p)
-        if y.ndim == 2:
-            y += self.y_old[:, None]
-        else:
-            y += self.y_old
-
-        return y
-
-
-class Dop853DenseOutput(DenseOutput):
-    def __init__(self, t_old, t, y_old, F):
-        super().__init__(t_old, t)
-        self.h = t - t_old
-        self.F = F
-        self.y_old = y_old
-
-    def _call_impl(self, t):
-        x = (t - self.t_old) / self.h
-
-        if t.ndim == 0:
-            y = np.zeros_like(self.y_old)
-        else:
-            x = x[:, None]
-            y = np.zeros((len(x), len(self.y_old)), dtype=self.y_old.dtype)
-
-        for i, f in enumerate(reversed(self.F)):
-            y += f
-            if i % 2 == 0:
-                y *= x
-            else:
-                y *= 1 - x
-        y += self.y_old
-
-        return y.T
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 7d91a0a76cf12156e4b190d31d88e98d1ffdcd6e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__pycache__/test_ivp.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__pycache__/test_ivp.cpython-310.pyc
deleted file mode 100644
index 2abe16abb9b42be678f9c2fcb1b1b566e4591b83..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__pycache__/test_ivp.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__pycache__/test_rk.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__pycache__/test_rk.cpython-310.pyc
deleted file mode 100644
index ecee56ec3d5b3c11573574d907a47eb3f0dc6506..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/__pycache__/test_rk.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/test_ivp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/test_ivp.py
deleted file mode 100644
index 9c050b3e5bd49e8f222958edf7802f11d2c9bdda..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/test_ivp.py
+++ /dev/null
@@ -1,1244 +0,0 @@
-from itertools import product
-from numpy.testing import (assert_, assert_allclose, assert_array_less,
-                           assert_equal, assert_no_warnings, suppress_warnings)
-import pytest
-from pytest import raises as assert_raises
-import numpy as np
-from scipy.optimize._numdiff import group_columns
-from scipy.integrate import solve_ivp, RK23, RK45, DOP853, Radau, BDF, LSODA
-from scipy.integrate import OdeSolution
-from scipy.integrate._ivp.common import num_jac, select_initial_step
-from scipy.integrate._ivp.base import ConstantDenseOutput
-from scipy.sparse import coo_matrix, csc_matrix
-
-
-def fun_zero(t, y):
-    return np.zeros_like(y)
-
-
-def fun_linear(t, y):
-    return np.array([-y[0] - 5 * y[1], y[0] + y[1]])
-
-
-def jac_linear():
-    return np.array([[-1, -5], [1, 1]])
-
-
-def sol_linear(t):
-    return np.vstack((-5 * np.sin(2 * t),
-                      2 * np.cos(2 * t) + np.sin(2 * t)))
-
-
-def fun_rational(t, y):
-    return np.array([y[1] / t,
-                     y[1] * (y[0] + 2 * y[1] - 1) / (t * (y[0] - 1))])
-
-
-def fun_rational_vectorized(t, y):
-    return np.vstack((y[1] / t,
-                      y[1] * (y[0] + 2 * y[1] - 1) / (t * (y[0] - 1))))
-
-
-def jac_rational(t, y):
-    return np.array([
-        [0, 1 / t],
-        [-2 * y[1] ** 2 / (t * (y[0] - 1) ** 2),
-         (y[0] + 4 * y[1] - 1) / (t * (y[0] - 1))]
-    ])
-
-
-def jac_rational_sparse(t, y):
-    return csc_matrix([
-        [0, 1 / t],
-        [-2 * y[1] ** 2 / (t * (y[0] - 1) ** 2),
-         (y[0] + 4 * y[1] - 1) / (t * (y[0] - 1))]
-    ])
-
-
-def sol_rational(t):
-    return np.asarray((t / (t + 10), 10 * t / (t + 10) ** 2))
-
-
-def fun_medazko(t, y):
-    n = y.shape[0] // 2
-    k = 100
-    c = 4
-
-    phi = 2 if t <= 5 else 0
-    y = np.hstack((phi, 0, y, y[-2]))
-
-    d = 1 / n
-    j = np.arange(n) + 1
-    alpha = 2 * (j * d - 1) ** 3 / c ** 2
-    beta = (j * d - 1) ** 4 / c ** 2
-
-    j_2_p1 = 2 * j + 2
-    j_2_m3 = 2 * j - 2
-    j_2_m1 = 2 * j
-    j_2 = 2 * j + 1
-
-    f = np.empty(2 * n)
-    f[::2] = (alpha * (y[j_2_p1] - y[j_2_m3]) / (2 * d) +
-              beta * (y[j_2_m3] - 2 * y[j_2_m1] + y[j_2_p1]) / d ** 2 -
-              k * y[j_2_m1] * y[j_2])
-    f[1::2] = -k * y[j_2] * y[j_2_m1]
-
-    return f
-
-
-def medazko_sparsity(n):
-    cols = []
-    rows = []
-
-    i = np.arange(n) * 2
-
-    cols.append(i[1:])
-    rows.append(i[1:] - 2)
-
-    cols.append(i)
-    rows.append(i)
-
-    cols.append(i)
-    rows.append(i + 1)
-
-    cols.append(i[:-1])
-    rows.append(i[:-1] + 2)
-
-    i = np.arange(n) * 2 + 1
-
-    cols.append(i)
-    rows.append(i)
-
-    cols.append(i)
-    rows.append(i - 1)
-
-    cols = np.hstack(cols)
-    rows = np.hstack(rows)
-
-    return coo_matrix((np.ones_like(cols), (cols, rows)))
-
-
-def fun_complex(t, y):
-    return -y
-
-
-def jac_complex(t, y):
-    return -np.eye(y.shape[0])
-
-
-def jac_complex_sparse(t, y):
-    return csc_matrix(jac_complex(t, y))
-
-
-def sol_complex(t):
-    y = (0.5 + 1j) * np.exp(-t)
-    return y.reshape((1, -1))
-
-
-def fun_event_dense_output_LSODA(t, y):
-    return y * (t - 2)
-
-
-def jac_event_dense_output_LSODA(t, y):
-    return t - 2
-
-
-def sol_event_dense_output_LSODA(t):
-    return np.exp(t ** 2 / 2 - 2 * t + np.log(0.05) - 6)
-
-
-def compute_error(y, y_true, rtol, atol):
-    e = (y - y_true) / (atol + rtol * np.abs(y_true))
-    return np.linalg.norm(e, axis=0) / np.sqrt(e.shape[0])
-
-
-def test_integration():
-    rtol = 1e-3
-    atol = 1e-6
-    y0 = [1/3, 2/9]
-
-    for vectorized, method, t_span, jac in product(
-            [False, True],
-            ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF', 'LSODA'],
-            [[5, 9], [5, 1]],
-            [None, jac_rational, jac_rational_sparse]):
-
-        if vectorized:
-            fun = fun_rational_vectorized
-        else:
-            fun = fun_rational
-
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning,
-                       "The following arguments have no effect for a chosen "
-                       "solver: `jac`")
-            res = solve_ivp(fun, t_span, y0, rtol=rtol,
-                            atol=atol, method=method, dense_output=True,
-                            jac=jac, vectorized=vectorized)
-        assert_equal(res.t[0], t_span[0])
-        assert_(res.t_events is None)
-        assert_(res.y_events is None)
-        assert_(res.success)
-        assert_equal(res.status, 0)
-
-        if method == 'DOP853':
-            # DOP853 spends more functions evaluation because it doesn't
-            # have enough time to develop big enough step size.
-            assert_(res.nfev < 50)
-        else:
-            assert_(res.nfev < 40)
-
-        if method in ['RK23', 'RK45', 'DOP853', 'LSODA']:
-            assert_equal(res.njev, 0)
-            assert_equal(res.nlu, 0)
-        else:
-            assert_(0 < res.njev < 3)
-            assert_(0 < res.nlu < 10)
-
-        y_true = sol_rational(res.t)
-        e = compute_error(res.y, y_true, rtol, atol)
-        assert_(np.all(e < 5))
-
-        tc = np.linspace(*t_span)
-        yc_true = sol_rational(tc)
-        yc = res.sol(tc)
-
-        e = compute_error(yc, yc_true, rtol, atol)
-        assert_(np.all(e < 5))
-
-        tc = (t_span[0] + t_span[-1]) / 2
-        yc_true = sol_rational(tc)
-        yc = res.sol(tc)
-
-        e = compute_error(yc, yc_true, rtol, atol)
-        assert_(np.all(e < 5))
-
-        assert_allclose(res.sol(res.t), res.y, rtol=1e-15, atol=1e-15)
-
-
-def test_integration_complex():
-    rtol = 1e-3
-    atol = 1e-6
-    y0 = [0.5 + 1j]
-    t_span = [0, 1]
-    tc = np.linspace(t_span[0], t_span[1])
-    for method, jac in product(['RK23', 'RK45', 'DOP853', 'BDF'],
-                               [None, jac_complex, jac_complex_sparse]):
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning,
-                       "The following arguments have no effect for a chosen "
-                       "solver: `jac`")
-            res = solve_ivp(fun_complex, t_span, y0, method=method,
-                            dense_output=True, rtol=rtol, atol=atol, jac=jac)
-
-        assert_equal(res.t[0], t_span[0])
-        assert_(res.t_events is None)
-        assert_(res.y_events is None)
-        assert_(res.success)
-        assert_equal(res.status, 0)
-
-        if method == 'DOP853':
-            assert res.nfev < 35
-        else:
-            assert res.nfev < 25
-
-        if method == 'BDF':
-            assert_equal(res.njev, 1)
-            assert res.nlu < 6
-        else:
-            assert res.njev == 0
-            assert res.nlu == 0
-
-        y_true = sol_complex(res.t)
-        e = compute_error(res.y, y_true, rtol, atol)
-        assert np.all(e < 5)
-
-        yc_true = sol_complex(tc)
-        yc = res.sol(tc)
-        e = compute_error(yc, yc_true, rtol, atol)
-
-        assert np.all(e < 5)
-
-
-@pytest.mark.fail_slow(2)
-def test_integration_sparse_difference():
-    n = 200
-    t_span = [0, 20]
-    y0 = np.zeros(2 * n)
-    y0[1::2] = 1
-    sparsity = medazko_sparsity(n)
-
-    for method in ['BDF', 'Radau']:
-        res = solve_ivp(fun_medazko, t_span, y0, method=method,
-                        jac_sparsity=sparsity)
-
-        assert_equal(res.t[0], t_span[0])
-        assert_(res.t_events is None)
-        assert_(res.y_events is None)
-        assert_(res.success)
-        assert_equal(res.status, 0)
-
-        assert_allclose(res.y[78, -1], 0.233994e-3, rtol=1e-2)
-        assert_allclose(res.y[79, -1], 0, atol=1e-3)
-        assert_allclose(res.y[148, -1], 0.359561e-3, rtol=1e-2)
-        assert_allclose(res.y[149, -1], 0, atol=1e-3)
-        assert_allclose(res.y[198, -1], 0.117374129e-3, rtol=1e-2)
-        assert_allclose(res.y[199, -1], 0.6190807e-5, atol=1e-3)
-        assert_allclose(res.y[238, -1], 0, atol=1e-3)
-        assert_allclose(res.y[239, -1], 0.9999997, rtol=1e-2)
-
-
-def test_integration_const_jac():
-    rtol = 1e-3
-    atol = 1e-6
-    y0 = [0, 2]
-    t_span = [0, 2]
-    J = jac_linear()
-    J_sparse = csc_matrix(J)
-
-    for method, jac in product(['Radau', 'BDF'], [J, J_sparse]):
-        res = solve_ivp(fun_linear, t_span, y0, rtol=rtol, atol=atol,
-                        method=method, dense_output=True, jac=jac)
-        assert_equal(res.t[0], t_span[0])
-        assert_(res.t_events is None)
-        assert_(res.y_events is None)
-        assert_(res.success)
-        assert_equal(res.status, 0)
-
-        assert_(res.nfev < 100)
-        assert_equal(res.njev, 0)
-        assert_(0 < res.nlu < 15)
-
-        y_true = sol_linear(res.t)
-        e = compute_error(res.y, y_true, rtol, atol)
-        assert_(np.all(e < 10))
-
-        tc = np.linspace(*t_span)
-        yc_true = sol_linear(tc)
-        yc = res.sol(tc)
-
-        e = compute_error(yc, yc_true, rtol, atol)
-        assert_(np.all(e < 15))
-
-        assert_allclose(res.sol(res.t), res.y, rtol=1e-14, atol=1e-14)
-
-
-@pytest.mark.slow
-@pytest.mark.parametrize('method', ['Radau', 'BDF', 'LSODA'])
-def test_integration_stiff(method):
-    rtol = 1e-6
-    atol = 1e-6
-    y0 = [1e4, 0, 0]
-    tspan = [0, 1e8]
-
-    def fun_robertson(t, state):
-        x, y, z = state
-        return [
-            -0.04 * x + 1e4 * y * z,
-            0.04 * x - 1e4 * y * z - 3e7 * y * y,
-            3e7 * y * y,
-        ]
-
-    res = solve_ivp(fun_robertson, tspan, y0, rtol=rtol,
-                    atol=atol, method=method)
-
-    # If the stiff mode is not activated correctly, these numbers will be much bigger
-    assert res.nfev < 5000
-    assert res.njev < 200
-
-
-def test_events():
-    def event_rational_1(t, y):
-        return y[0] - y[1] ** 0.7
-
-    def event_rational_2(t, y):
-        return y[1] ** 0.6 - y[0]
-
-    def event_rational_3(t, y):
-        return t - 7.4
-
-    event_rational_3.terminal = True
-
-    for method in ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF', 'LSODA']:
-        res = solve_ivp(fun_rational, [5, 8], [1/3, 2/9], method=method,
-                        events=(event_rational_1, event_rational_2))
-        assert_equal(res.status, 0)
-        assert_equal(res.t_events[0].size, 1)
-        assert_equal(res.t_events[1].size, 1)
-        assert_(5.3 < res.t_events[0][0] < 5.7)
-        assert_(7.3 < res.t_events[1][0] < 7.7)
-
-        assert_equal(res.y_events[0].shape, (1, 2))
-        assert_equal(res.y_events[1].shape, (1, 2))
-        assert np.isclose(
-            event_rational_1(res.t_events[0][0], res.y_events[0][0]), 0)
-        assert np.isclose(
-            event_rational_2(res.t_events[1][0], res.y_events[1][0]), 0)
-
-        event_rational_1.direction = 1
-        event_rational_2.direction = 1
-        res = solve_ivp(fun_rational, [5, 8], [1 / 3, 2 / 9], method=method,
-                        events=(event_rational_1, event_rational_2))
-        assert_equal(res.status, 0)
-        assert_equal(res.t_events[0].size, 1)
-        assert_equal(res.t_events[1].size, 0)
-        assert_(5.3 < res.t_events[0][0] < 5.7)
-        assert_equal(res.y_events[0].shape, (1, 2))
-        assert_equal(res.y_events[1].shape, (0,))
-        assert np.isclose(
-            event_rational_1(res.t_events[0][0], res.y_events[0][0]), 0)
-
-        event_rational_1.direction = -1
-        event_rational_2.direction = -1
-        res = solve_ivp(fun_rational, [5, 8], [1 / 3, 2 / 9], method=method,
-                        events=(event_rational_1, event_rational_2))
-        assert_equal(res.status, 0)
-        assert_equal(res.t_events[0].size, 0)
-        assert_equal(res.t_events[1].size, 1)
-        assert_(7.3 < res.t_events[1][0] < 7.7)
-        assert_equal(res.y_events[0].shape, (0,))
-        assert_equal(res.y_events[1].shape, (1, 2))
-        assert np.isclose(
-            event_rational_2(res.t_events[1][0], res.y_events[1][0]), 0)
-
-        event_rational_1.direction = 0
-        event_rational_2.direction = 0
-
-        res = solve_ivp(fun_rational, [5, 8], [1 / 3, 2 / 9], method=method,
-                        events=(event_rational_1, event_rational_2,
-                                event_rational_3), dense_output=True)
-        assert_equal(res.status, 1)
-        assert_equal(res.t_events[0].size, 1)
-        assert_equal(res.t_events[1].size, 0)
-        assert_equal(res.t_events[2].size, 1)
-        assert_(5.3 < res.t_events[0][0] < 5.7)
-        assert_(7.3 < res.t_events[2][0] < 7.5)
-        assert_equal(res.y_events[0].shape, (1, 2))
-        assert_equal(res.y_events[1].shape, (0,))
-        assert_equal(res.y_events[2].shape, (1, 2))
-        assert np.isclose(
-            event_rational_1(res.t_events[0][0], res.y_events[0][0]), 0)
-        assert np.isclose(
-            event_rational_3(res.t_events[2][0], res.y_events[2][0]), 0)
-
-        res = solve_ivp(fun_rational, [5, 8], [1 / 3, 2 / 9], method=method,
-                        events=event_rational_1, dense_output=True)
-        assert_equal(res.status, 0)
-        assert_equal(res.t_events[0].size, 1)
-        assert_(5.3 < res.t_events[0][0] < 5.7)
-
-        assert_equal(res.y_events[0].shape, (1, 2))
-        assert np.isclose(
-            event_rational_1(res.t_events[0][0], res.y_events[0][0]), 0)
-
-        # Also test that termination by event doesn't break interpolants.
-        tc = np.linspace(res.t[0], res.t[-1])
-        yc_true = sol_rational(tc)
-        yc = res.sol(tc)
-        e = compute_error(yc, yc_true, 1e-3, 1e-6)
-        assert_(np.all(e < 5))
-
-        # Test that the y_event matches solution
-        assert np.allclose(sol_rational(res.t_events[0][0]), res.y_events[0][0],
-                           rtol=1e-3, atol=1e-6)
-
-    # Test in backward direction.
-    event_rational_1.direction = 0
-    event_rational_2.direction = 0
-    for method in ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF', 'LSODA']:
-        res = solve_ivp(fun_rational, [8, 5], [4/9, 20/81], method=method,
-                        events=(event_rational_1, event_rational_2))
-        assert_equal(res.status, 0)
-        assert_equal(res.t_events[0].size, 1)
-        assert_equal(res.t_events[1].size, 1)
-        assert_(5.3 < res.t_events[0][0] < 5.7)
-        assert_(7.3 < res.t_events[1][0] < 7.7)
-
-        assert_equal(res.y_events[0].shape, (1, 2))
-        assert_equal(res.y_events[1].shape, (1, 2))
-        assert np.isclose(
-            event_rational_1(res.t_events[0][0], res.y_events[0][0]), 0)
-        assert np.isclose(
-            event_rational_2(res.t_events[1][0], res.y_events[1][0]), 0)
-
-        event_rational_1.direction = -1
-        event_rational_2.direction = -1
-        res = solve_ivp(fun_rational, [8, 5], [4/9, 20/81], method=method,
-                        events=(event_rational_1, event_rational_2))
-        assert_equal(res.status, 0)
-        assert_equal(res.t_events[0].size, 1)
-        assert_equal(res.t_events[1].size, 0)
-        assert_(5.3 < res.t_events[0][0] < 5.7)
-
-        assert_equal(res.y_events[0].shape, (1, 2))
-        assert_equal(res.y_events[1].shape, (0,))
-        assert np.isclose(
-            event_rational_1(res.t_events[0][0], res.y_events[0][0]), 0)
-
-        event_rational_1.direction = 1
-        event_rational_2.direction = 1
-        res = solve_ivp(fun_rational, [8, 5], [4/9, 20/81], method=method,
-                        events=(event_rational_1, event_rational_2))
-        assert_equal(res.status, 0)
-        assert_equal(res.t_events[0].size, 0)
-        assert_equal(res.t_events[1].size, 1)
-        assert_(7.3 < res.t_events[1][0] < 7.7)
-
-        assert_equal(res.y_events[0].shape, (0,))
-        assert_equal(res.y_events[1].shape, (1, 2))
-        assert np.isclose(
-            event_rational_2(res.t_events[1][0], res.y_events[1][0]), 0)
-
-        event_rational_1.direction = 0
-        event_rational_2.direction = 0
-
-        res = solve_ivp(fun_rational, [8, 5], [4/9, 20/81], method=method,
-                        events=(event_rational_1, event_rational_2,
-                                event_rational_3), dense_output=True)
-        assert_equal(res.status, 1)
-        assert_equal(res.t_events[0].size, 0)
-        assert_equal(res.t_events[1].size, 1)
-        assert_equal(res.t_events[2].size, 1)
-        assert_(7.3 < res.t_events[1][0] < 7.7)
-        assert_(7.3 < res.t_events[2][0] < 7.5)
-
-        assert_equal(res.y_events[0].shape, (0,))
-        assert_equal(res.y_events[1].shape, (1, 2))
-        assert_equal(res.y_events[2].shape, (1, 2))
-        assert np.isclose(
-            event_rational_2(res.t_events[1][0], res.y_events[1][0]), 0)
-        assert np.isclose(
-            event_rational_3(res.t_events[2][0], res.y_events[2][0]), 0)
-
-        # Also test that termination by event doesn't break interpolants.
-        tc = np.linspace(res.t[-1], res.t[0])
-        yc_true = sol_rational(tc)
-        yc = res.sol(tc)
-        e = compute_error(yc, yc_true, 1e-3, 1e-6)
-        assert_(np.all(e < 5))
-
-        assert np.allclose(sol_rational(res.t_events[1][0]), res.y_events[1][0],
-                           rtol=1e-3, atol=1e-6)
-        assert np.allclose(sol_rational(res.t_events[2][0]), res.y_events[2][0],
-                           rtol=1e-3, atol=1e-6)
-
-
-def _get_harmonic_oscillator():
-    def f(t, y):
-        return [y[1], -y[0]]
-
-    def event(t, y):
-        return y[0]
-
-    return f, event
-
-
-@pytest.mark.parametrize('n_events', [3, 4])
-def test_event_terminal_integer(n_events):
-    f, event = _get_harmonic_oscillator()
-    event.terminal = n_events
-    res = solve_ivp(f, (0, 100), [1, 0], events=event)
-    assert len(res.t_events[0]) == n_events
-    assert len(res.y_events[0]) == n_events
-    assert_allclose(res.y_events[0][:, 0], 0, atol=1e-14)
-
-
-def test_event_terminal_iv():
-    f, event = _get_harmonic_oscillator()
-    args = (f, (0, 100), [1, 0])
-
-    event.terminal = None
-    res = solve_ivp(*args, events=event)
-    event.terminal = 0
-    ref = solve_ivp(*args, events=event)
-    assert_allclose(res.t_events, ref.t_events)
-
-    message = "The `terminal` attribute..."
-    event.terminal = -1
-    with pytest.raises(ValueError, match=message):
-        solve_ivp(*args, events=event)
-    event.terminal = 3.5
-    with pytest.raises(ValueError, match=message):
-        solve_ivp(*args, events=event)
-
-
-def test_max_step():
-    rtol = 1e-3
-    atol = 1e-6
-    y0 = [1/3, 2/9]
-    for method in [RK23, RK45, DOP853, Radau, BDF, LSODA]:
-        for t_span in ([5, 9], [5, 1]):
-            res = solve_ivp(fun_rational, t_span, y0, rtol=rtol,
-                            max_step=0.5, atol=atol, method=method,
-                            dense_output=True)
-            assert_equal(res.t[0], t_span[0])
-            assert_equal(res.t[-1], t_span[-1])
-            assert_(np.all(np.abs(np.diff(res.t)) <= 0.5 + 1e-15))
-            assert_(res.t_events is None)
-            assert_(res.success)
-            assert_equal(res.status, 0)
-
-            y_true = sol_rational(res.t)
-            e = compute_error(res.y, y_true, rtol, atol)
-            assert_(np.all(e < 5))
-
-            tc = np.linspace(*t_span)
-            yc_true = sol_rational(tc)
-            yc = res.sol(tc)
-
-            e = compute_error(yc, yc_true, rtol, atol)
-            assert_(np.all(e < 5))
-
-            assert_allclose(res.sol(res.t), res.y, rtol=1e-15, atol=1e-15)
-
-            assert_raises(ValueError, method, fun_rational, t_span[0], y0,
-                          t_span[1], max_step=-1)
-
-            if method is not LSODA:
-                solver = method(fun_rational, t_span[0], y0, t_span[1],
-                                rtol=rtol, atol=atol, max_step=1e-20)
-                message = solver.step()
-                message = solver.step()  # First step succeeds but second step fails.
-                assert_equal(solver.status, 'failed')
-                assert_("step size is less" in message)
-                assert_raises(RuntimeError, solver.step)
-
-
-def test_first_step():
-    rtol = 1e-3
-    atol = 1e-6
-    y0 = [1/3, 2/9]
-    first_step = 0.1
-    for method in [RK23, RK45, DOP853, Radau, BDF, LSODA]:
-        for t_span in ([5, 9], [5, 1]):
-            res = solve_ivp(fun_rational, t_span, y0, rtol=rtol,
-                            max_step=0.5, atol=atol, method=method,
-                            dense_output=True, first_step=first_step)
-
-            assert_equal(res.t[0], t_span[0])
-            assert_equal(res.t[-1], t_span[-1])
-            assert_allclose(first_step, np.abs(res.t[1] - 5))
-            assert_(res.t_events is None)
-            assert_(res.success)
-            assert_equal(res.status, 0)
-
-            y_true = sol_rational(res.t)
-            e = compute_error(res.y, y_true, rtol, atol)
-            assert_(np.all(e < 5))
-
-            tc = np.linspace(*t_span)
-            yc_true = sol_rational(tc)
-            yc = res.sol(tc)
-
-            e = compute_error(yc, yc_true, rtol, atol)
-            assert_(np.all(e < 5))
-
-            assert_allclose(res.sol(res.t), res.y, rtol=1e-15, atol=1e-15)
-
-            assert_raises(ValueError, method, fun_rational, t_span[0], y0,
-                          t_span[1], first_step=-1)
-            assert_raises(ValueError, method, fun_rational, t_span[0], y0,
-                          t_span[1], first_step=5)
-
-
-def test_t_eval():
-    rtol = 1e-3
-    atol = 1e-6
-    y0 = [1/3, 2/9]
-    for t_span in ([5, 9], [5, 1]):
-        t_eval = np.linspace(t_span[0], t_span[1], 10)
-        res = solve_ivp(fun_rational, t_span, y0, rtol=rtol, atol=atol,
-                        t_eval=t_eval)
-        assert_equal(res.t, t_eval)
-        assert_(res.t_events is None)
-        assert_(res.success)
-        assert_equal(res.status, 0)
-
-        y_true = sol_rational(res.t)
-        e = compute_error(res.y, y_true, rtol, atol)
-        assert_(np.all(e < 5))
-
-    t_eval = [5, 5.01, 7, 8, 8.01, 9]
-    res = solve_ivp(fun_rational, [5, 9], y0, rtol=rtol, atol=atol,
-                    t_eval=t_eval)
-    assert_equal(res.t, t_eval)
-    assert_(res.t_events is None)
-    assert_(res.success)
-    assert_equal(res.status, 0)
-
-    y_true = sol_rational(res.t)
-    e = compute_error(res.y, y_true, rtol, atol)
-    assert_(np.all(e < 5))
-
-    t_eval = [5, 4.99, 3, 1.5, 1.1, 1.01, 1]
-    res = solve_ivp(fun_rational, [5, 1], y0, rtol=rtol, atol=atol,
-                    t_eval=t_eval)
-    assert_equal(res.t, t_eval)
-    assert_(res.t_events is None)
-    assert_(res.success)
-    assert_equal(res.status, 0)
-
-    t_eval = [5.01, 7, 8, 8.01]
-    res = solve_ivp(fun_rational, [5, 9], y0, rtol=rtol, atol=atol,
-                    t_eval=t_eval)
-    assert_equal(res.t, t_eval)
-    assert_(res.t_events is None)
-    assert_(res.success)
-    assert_equal(res.status, 0)
-
-    y_true = sol_rational(res.t)
-    e = compute_error(res.y, y_true, rtol, atol)
-    assert_(np.all(e < 5))
-
-    t_eval = [4.99, 3, 1.5, 1.1, 1.01]
-    res = solve_ivp(fun_rational, [5, 1], y0, rtol=rtol, atol=atol,
-                    t_eval=t_eval)
-    assert_equal(res.t, t_eval)
-    assert_(res.t_events is None)
-    assert_(res.success)
-    assert_equal(res.status, 0)
-
-    t_eval = [4, 6]
-    assert_raises(ValueError, solve_ivp, fun_rational, [5, 9], y0,
-                  rtol=rtol, atol=atol, t_eval=t_eval)
-
-
-def test_t_eval_dense_output():
-    rtol = 1e-3
-    atol = 1e-6
-    y0 = [1/3, 2/9]
-    t_span = [5, 9]
-    t_eval = np.linspace(t_span[0], t_span[1], 10)
-    res = solve_ivp(fun_rational, t_span, y0, rtol=rtol, atol=atol,
-                    t_eval=t_eval)
-    res_d = solve_ivp(fun_rational, t_span, y0, rtol=rtol, atol=atol,
-                      t_eval=t_eval, dense_output=True)
-    assert_equal(res.t, t_eval)
-    assert_(res.t_events is None)
-    assert_(res.success)
-    assert_equal(res.status, 0)
-
-    assert_equal(res.t, res_d.t)
-    assert_equal(res.y, res_d.y)
-    assert_(res_d.t_events is None)
-    assert_(res_d.success)
-    assert_equal(res_d.status, 0)
-
-    # if t and y are equal only test values for one case
-    y_true = sol_rational(res.t)
-    e = compute_error(res.y, y_true, rtol, atol)
-    assert_(np.all(e < 5))
-
-
-def test_t_eval_early_event():
-    def early_event(t, y):
-        return t - 7
-
-    early_event.terminal = True
-
-    rtol = 1e-3
-    atol = 1e-6
-    y0 = [1/3, 2/9]
-    t_span = [5, 9]
-    t_eval = np.linspace(7.5, 9, 16)
-    for method in ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF', 'LSODA']:
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning,
-                       "The following arguments have no effect for a chosen "
-                       "solver: `jac`")
-            res = solve_ivp(fun_rational, t_span, y0, rtol=rtol, atol=atol,
-                            method=method, t_eval=t_eval, events=early_event,
-                            jac=jac_rational)
-        assert res.success
-        assert res.message == 'A termination event occurred.'
-        assert res.status == 1
-        assert not res.t and not res.y
-        assert len(res.t_events) == 1
-        assert res.t_events[0].size == 1
-        assert res.t_events[0][0] == 7
-
-
-def test_event_dense_output_LSODA():
-    def event_lsoda(t, y):
-        return y[0] - 2.02e-5
-
-    rtol = 1e-3
-    atol = 1e-6
-    y0 = [0.05]
-    t_span = [-2, 2]
-    first_step = 1e-3
-    res = solve_ivp(
-        fun_event_dense_output_LSODA,
-        t_span,
-        y0,
-        method="LSODA",
-        dense_output=True,
-        events=event_lsoda,
-        first_step=first_step,
-        max_step=1,
-        rtol=rtol,
-        atol=atol,
-        jac=jac_event_dense_output_LSODA,
-    )
-
-    assert_equal(res.t[0], t_span[0])
-    assert_equal(res.t[-1], t_span[-1])
-    assert_allclose(first_step, np.abs(res.t[1] - t_span[0]))
-    assert res.success
-    assert_equal(res.status, 0)
-
-    y_true = sol_event_dense_output_LSODA(res.t)
-    e = compute_error(res.y, y_true, rtol, atol)
-    assert_array_less(e, 5)
-
-    tc = np.linspace(*t_span)
-    yc_true = sol_event_dense_output_LSODA(tc)
-    yc = res.sol(tc)
-    e = compute_error(yc, yc_true, rtol, atol)
-    assert_array_less(e, 5)
-
-    assert_allclose(res.sol(res.t), res.y, rtol=1e-15, atol=1e-15)
-
-
-def test_no_integration():
-    for method in ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF', 'LSODA']:
-        sol = solve_ivp(lambda t, y: -y, [4, 4], [2, 3],
-                        method=method, dense_output=True)
-        assert_equal(sol.sol(4), [2, 3])
-        assert_equal(sol.sol([4, 5, 6]), [[2, 2, 2], [3, 3, 3]])
-
-
-def test_no_integration_class():
-    for method in [RK23, RK45, DOP853, Radau, BDF, LSODA]:
-        solver = method(lambda t, y: -y, 0.0, [10.0, 0.0], 0.0)
-        solver.step()
-        assert_equal(solver.status, 'finished')
-        sol = solver.dense_output()
-        assert_equal(sol(0.0), [10.0, 0.0])
-        assert_equal(sol([0, 1, 2]), [[10, 10, 10], [0, 0, 0]])
-
-        solver = method(lambda t, y: -y, 0.0, [], np.inf)
-        solver.step()
-        assert_equal(solver.status, 'finished')
-        sol = solver.dense_output()
-        assert_equal(sol(100.0), [])
-        assert_equal(sol([0, 1, 2]), np.empty((0, 3)))
-
-
-def test_empty():
-    def fun(t, y):
-        return np.zeros((0,))
-
-    y0 = np.zeros((0,))
-
-    for method in ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF', 'LSODA']:
-        sol = assert_no_warnings(solve_ivp, fun, [0, 10], y0,
-                                 method=method, dense_output=True)
-        assert_equal(sol.sol(10), np.zeros((0,)))
-        assert_equal(sol.sol([1, 2, 3]), np.zeros((0, 3)))
-
-    for method in ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF', 'LSODA']:
-        sol = assert_no_warnings(solve_ivp, fun, [0, np.inf], y0,
-                                 method=method, dense_output=True)
-        assert_equal(sol.sol(10), np.zeros((0,)))
-        assert_equal(sol.sol([1, 2, 3]), np.zeros((0, 3)))
-
-
-def test_ConstantDenseOutput():
-    sol = ConstantDenseOutput(0, 1, np.array([1, 2]))
-    assert_allclose(sol(1.5), [1, 2])
-    assert_allclose(sol([1, 1.5, 2]), [[1, 1, 1], [2, 2, 2]])
-
-    sol = ConstantDenseOutput(0, 1, np.array([]))
-    assert_allclose(sol(1.5), np.empty(0))
-    assert_allclose(sol([1, 1.5, 2]), np.empty((0, 3)))
-
-
-def test_classes():
-    y0 = [1 / 3, 2 / 9]
-    for cls in [RK23, RK45, DOP853, Radau, BDF, LSODA]:
-        solver = cls(fun_rational, 5, y0, np.inf)
-        assert_equal(solver.n, 2)
-        assert_equal(solver.status, 'running')
-        assert_equal(solver.t_bound, np.inf)
-        assert_equal(solver.direction, 1)
-        assert_equal(solver.t, 5)
-        assert_equal(solver.y, y0)
-        assert_(solver.step_size is None)
-        if cls is not LSODA:
-            assert_(solver.nfev > 0)
-            assert_(solver.njev >= 0)
-            assert_equal(solver.nlu, 0)
-        else:
-            assert_equal(solver.nfev, 0)
-            assert_equal(solver.njev, 0)
-            assert_equal(solver.nlu, 0)
-
-        assert_raises(RuntimeError, solver.dense_output)
-
-        message = solver.step()
-        assert_equal(solver.status, 'running')
-        assert_equal(message, None)
-        assert_equal(solver.n, 2)
-        assert_equal(solver.t_bound, np.inf)
-        assert_equal(solver.direction, 1)
-        assert_(solver.t > 5)
-        assert_(not np.all(np.equal(solver.y, y0)))
-        assert_(solver.step_size > 0)
-        assert_(solver.nfev > 0)
-        assert_(solver.njev >= 0)
-        assert_(solver.nlu >= 0)
-        sol = solver.dense_output()
-        assert_allclose(sol(5), y0, rtol=1e-15, atol=0)
-
-
-def test_OdeSolution():
-    ts = np.array([0, 2, 5], dtype=float)
-    s1 = ConstantDenseOutput(ts[0], ts[1], np.array([-1]))
-    s2 = ConstantDenseOutput(ts[1], ts[2], np.array([1]))
-
-    sol = OdeSolution(ts, [s1, s2])
-
-    assert_equal(sol(-1), [-1])
-    assert_equal(sol(1), [-1])
-    assert_equal(sol(2), [-1])
-    assert_equal(sol(3), [1])
-    assert_equal(sol(5), [1])
-    assert_equal(sol(6), [1])
-
-    assert_equal(sol([0, 6, -2, 1.5, 4.5, 2.5, 5, 5.5, 2]),
-                 np.array([[-1, 1, -1, -1, 1, 1, 1, 1, -1]]))
-
-    ts = np.array([10, 4, -3])
-    s1 = ConstantDenseOutput(ts[0], ts[1], np.array([-1]))
-    s2 = ConstantDenseOutput(ts[1], ts[2], np.array([1]))
-
-    sol = OdeSolution(ts, [s1, s2])
-    assert_equal(sol(11), [-1])
-    assert_equal(sol(10), [-1])
-    assert_equal(sol(5), [-1])
-    assert_equal(sol(4), [-1])
-    assert_equal(sol(0), [1])
-    assert_equal(sol(-3), [1])
-    assert_equal(sol(-4), [1])
-
-    assert_equal(sol([12, -5, 10, -3, 6, 1, 4]),
-                 np.array([[-1, 1, -1, 1, -1, 1, -1]]))
-
-    ts = np.array([1, 1])
-    s = ConstantDenseOutput(1, 1, np.array([10]))
-    sol = OdeSolution(ts, [s])
-    assert_equal(sol(0), [10])
-    assert_equal(sol(1), [10])
-    assert_equal(sol(2), [10])
-
-    assert_equal(sol([2, 1, 0]), np.array([[10, 10, 10]]))
-
-
-def test_num_jac():
-    def fun(t, y):
-        return np.vstack([
-            -0.04 * y[0] + 1e4 * y[1] * y[2],
-            0.04 * y[0] - 1e4 * y[1] * y[2] - 3e7 * y[1] ** 2,
-            3e7 * y[1] ** 2
-        ])
-
-    def jac(t, y):
-        return np.array([
-            [-0.04, 1e4 * y[2], 1e4 * y[1]],
-            [0.04, -1e4 * y[2] - 6e7 * y[1], -1e4 * y[1]],
-            [0, 6e7 * y[1], 0]
-        ])
-
-    t = 1
-    y = np.array([1, 0, 0])
-    J_true = jac(t, y)
-    threshold = 1e-5
-    f = fun(t, y).ravel()
-
-    J_num, factor = num_jac(fun, t, y, f, threshold, None)
-    assert_allclose(J_num, J_true, rtol=1e-5, atol=1e-5)
-
-    J_num, factor = num_jac(fun, t, y, f, threshold, factor)
-    assert_allclose(J_num, J_true, rtol=1e-5, atol=1e-5)
-
-
-def test_num_jac_sparse():
-    def fun(t, y):
-        e = y[1:]**3 - y[:-1]**2
-        z = np.zeros(y.shape[1])
-        return np.vstack((z, 3 * e)) + np.vstack((2 * e, z))
-
-    def structure(n):
-        A = np.zeros((n, n), dtype=int)
-        A[0, 0] = 1
-        A[0, 1] = 1
-        for i in range(1, n - 1):
-            A[i, i - 1: i + 2] = 1
-        A[-1, -1] = 1
-        A[-1, -2] = 1
-
-        return A
-
-    np.random.seed(0)
-    n = 20
-    y = np.random.randn(n)
-    A = structure(n)
-    groups = group_columns(A)
-
-    f = fun(0, y[:, None]).ravel()
-
-    # Compare dense and sparse results, assuming that dense implementation
-    # is correct (as it is straightforward).
-    J_num_sparse, factor_sparse = num_jac(fun, 0, y.ravel(), f, 1e-8, None,
-                                          sparsity=(A, groups))
-    J_num_dense, factor_dense = num_jac(fun, 0, y.ravel(), f, 1e-8, None)
-    assert_allclose(J_num_dense, J_num_sparse.toarray(),
-                    rtol=1e-12, atol=1e-14)
-    assert_allclose(factor_dense, factor_sparse, rtol=1e-12, atol=1e-14)
-
-    # Take small factors to trigger their recomputing inside.
-    factor = np.random.uniform(0, 1e-12, size=n)
-    J_num_sparse, factor_sparse = num_jac(fun, 0, y.ravel(), f, 1e-8, factor,
-                                          sparsity=(A, groups))
-    J_num_dense, factor_dense = num_jac(fun, 0, y.ravel(), f, 1e-8, factor)
-
-    assert_allclose(J_num_dense, J_num_sparse.toarray(),
-                    rtol=1e-12, atol=1e-14)
-    assert_allclose(factor_dense, factor_sparse, rtol=1e-12, atol=1e-14)
-
-
-def test_args():
-
-    # sys3 is actually two decoupled systems. (x, y) form a
-    # linear oscillator, while z is a nonlinear first order
-    # system with equilibria at z=0 and z=1. If k > 0, z=1
-    # is stable and z=0 is unstable.
-
-    def sys3(t, w, omega, k, zfinal):
-        x, y, z = w
-        return [-omega*y, omega*x, k*z*(1 - z)]
-
-    def sys3_jac(t, w, omega, k, zfinal):
-        x, y, z = w
-        J = np.array([[0, -omega, 0],
-                      [omega, 0, 0],
-                      [0, 0, k*(1 - 2*z)]])
-        return J
-
-    def sys3_x0decreasing(t, w, omega, k, zfinal):
-        x, y, z = w
-        return x
-
-    def sys3_y0increasing(t, w, omega, k, zfinal):
-        x, y, z = w
-        return y
-
-    def sys3_zfinal(t, w, omega, k, zfinal):
-        x, y, z = w
-        return z - zfinal
-
-    # Set the event flags for the event functions.
-    sys3_x0decreasing.direction = -1
-    sys3_y0increasing.direction = 1
-    sys3_zfinal.terminal = True
-
-    omega = 2
-    k = 4
-
-    tfinal = 5
-    zfinal = 0.99
-    # Find z0 such that when z(0) = z0, z(tfinal) = zfinal.
-    # The condition z(tfinal) = zfinal is the terminal event.
-    z0 = np.exp(-k*tfinal)/((1 - zfinal)/zfinal + np.exp(-k*tfinal))
-
-    w0 = [0, -1, z0]
-
-    # Provide the jac argument and use the Radau method to ensure that the use
-    # of the Jacobian function is exercised.
-    # If event handling is working, the solution will stop at tfinal, not tend.
-    tend = 2*tfinal
-    sol = solve_ivp(sys3, [0, tend], w0,
-                    events=[sys3_x0decreasing, sys3_y0increasing, sys3_zfinal],
-                    dense_output=True, args=(omega, k, zfinal),
-                    method='Radau', jac=sys3_jac,
-                    rtol=1e-10, atol=1e-13)
-
-    # Check that we got the expected events at the expected times.
-    x0events_t = sol.t_events[0]
-    y0events_t = sol.t_events[1]
-    zfinalevents_t = sol.t_events[2]
-    assert_allclose(x0events_t, [0.5*np.pi, 1.5*np.pi])
-    assert_allclose(y0events_t, [0.25*np.pi, 1.25*np.pi])
-    assert_allclose(zfinalevents_t, [tfinal])
-
-    # Check that the solution agrees with the known exact solution.
-    t = np.linspace(0, zfinalevents_t[0], 250)
-    w = sol.sol(t)
-    assert_allclose(w[0], np.sin(omega*t), rtol=1e-9, atol=1e-12)
-    assert_allclose(w[1], -np.cos(omega*t), rtol=1e-9, atol=1e-12)
-    assert_allclose(w[2], 1/(((1 - z0)/z0)*np.exp(-k*t) + 1),
-                    rtol=1e-9, atol=1e-12)
-
-    # Check that the state variables have the expected values at the events.
-    x0events = sol.sol(x0events_t)
-    y0events = sol.sol(y0events_t)
-    zfinalevents = sol.sol(zfinalevents_t)
-    assert_allclose(x0events[0], np.zeros_like(x0events[0]), atol=5e-14)
-    assert_allclose(x0events[1], np.ones_like(x0events[1]))
-    assert_allclose(y0events[0], np.ones_like(y0events[0]))
-    assert_allclose(y0events[1], np.zeros_like(y0events[1]), atol=5e-14)
-    assert_allclose(zfinalevents[2], [zfinal])
-
-
-def test_array_rtol():
-    # solve_ivp had a bug with array_like `rtol`; see gh-15482
-    # check that it's fixed
-    def f(t, y):
-        return y[0], y[1]
-
-    # no warning (or error) when `rtol` is array_like
-    sol = solve_ivp(f, (0, 1), [1., 1.], rtol=[1e-1, 1e-1])
-    err1 = np.abs(np.linalg.norm(sol.y[:, -1] - np.exp(1)))
-
-    # warning when an element of `rtol` is too small
-    with pytest.warns(UserWarning, match="At least one element..."):
-        sol = solve_ivp(f, (0, 1), [1., 1.], rtol=[1e-1, 1e-16])
-        err2 = np.abs(np.linalg.norm(sol.y[:, -1] - np.exp(1)))
-
-    # tighter rtol improves the error
-    assert err2 < err1
-
-@pytest.mark.parametrize('method', ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF', 'LSODA'])
-def test_integration_zero_rhs(method):
-    result = solve_ivp(fun_zero, [0, 10], np.ones(3), method=method)
-    assert_(result.success)
-    assert_equal(result.status, 0)
-    assert_allclose(result.y, 1.0, rtol=1e-15)
-
-
-def test_args_single_value():
-    def fun_with_arg(t, y, a):
-        return a*y
-
-    message = "Supplied 'args' cannot be unpacked."
-    with pytest.raises(TypeError, match=message):
-        solve_ivp(fun_with_arg, (0, 0.1), [1], args=-1)
-
-    sol = solve_ivp(fun_with_arg, (0, 0.1), [1], args=(-1,))
-    assert_allclose(sol.y[0, -1], np.exp(-0.1))
-
-
-@pytest.mark.parametrize("f0_fill", [np.nan, np.inf])
-def test_initial_state_finiteness(f0_fill):
-    # regression test for gh-17846
-    msg = "All components of the initial state `y0` must be finite."
-    with pytest.raises(ValueError, match=msg):
-        solve_ivp(fun_zero, [0, 10], np.full(3, f0_fill))
-
-
-@pytest.mark.parametrize('method', ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF'])
-def test_zero_interval(method):
-    # Case where upper and lower limits of integration are the same
-    # Result of integration should match initial state.
-    # f[y(t)] = 2y(t)
-    def f(t, y):
-        return 2 * y
-    res = solve_ivp(f, (0.0, 0.0), np.array([1.0]), method=method)
-    assert res.success
-    assert_allclose(res.y[0, -1], 1.0)
-    
-
-@pytest.mark.parametrize('method', ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF'])
-def test_tbound_respected_small_interval(method):
-    """Regression test for gh-17341"""
-    SMALL = 1e-4
-
-    # f[y(t)] = 2y(t) on t in [0,SMALL]
-    #           undefined otherwise 
-    def f(t, y):
-        if t > SMALL:
-            raise ValueError("Function was evaluated outside interval")
-        return 2 * y
-    res = solve_ivp(f, (0.0, SMALL), np.array([1]), method=method)
-    assert res.success
-
-
-@pytest.mark.parametrize('method', ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF'])
-def test_tbound_respected_larger_interval(method):
-    """Regression test for gh-8848"""
-    def V(r):
-        return -11/r + 10 * r / (0.05 + r**2)
-
-    def func(t, p):
-        if t < -17 or t > 2:
-            raise ValueError("Function was evaluated outside interval")
-        P = p[0]
-        Q = p[1]
-        r = np.exp(t)
-        dPdr = r * Q
-        dQdr = -2.0 * r * ((-0.2 - V(r)) * P + 1 / r * Q)
-        return np.array([dPdr, dQdr])
-
-    result = solve_ivp(func, 
-                       (-17, 2),
-                       y0=np.array([1, -11]),
-                       max_step=0.03,
-                       vectorized=False,
-                       t_eval=None,
-                       atol=1e-8, 
-                       rtol=1e-5)
-    assert result.success
-
-
-@pytest.mark.parametrize('method', ['RK23', 'RK45', 'DOP853', 'Radau', 'BDF'])
-def test_tbound_respected_oscillator(method):
-    "Regression test for gh-9198"
-    def reactions_func(t, y):
-        if (t > 205): 
-            raise ValueError("Called outside interval")
-        yprime = np.array([1.73307544e-02, 
-                           6.49376470e-06, 
-                           0.00000000e+00, 
-                           0.00000000e+00])
-        return yprime
-
-    def run_sim2(t_end, n_timepoints=10, shortest_delay_line=10000000):
-        init_state = np.array([134.08298555, 138.82348612, 100., 0.])
-        t0 = 100.0
-        t1 = 200.0
-        return solve_ivp(reactions_func,
-                         (t0, t1),
-                         init_state.copy(), 
-                         dense_output=True, 
-                         max_step=t1 - t0)
-    result = run_sim2(1000, 100, 100)
-    assert result.success
-
-
-def test_inital_maxstep():
-    """Verify that select_inital_step respects max_step"""
-    rtol = 1e-3
-    atol = 1e-6
-    y0 = np.array([1/3, 2/9])
-    for (t0, t_bound) in ((5, 9), (5, 1)):
-        for method_order in [RK23.error_estimator_order,
-                            RK45.error_estimator_order,
-                            DOP853.error_estimator_order,
-                            3, #RADAU
-                            1 #BDF
-                            ]:
-            step_no_max = select_initial_step(fun_rational, t0, y0, t_bound,
-                                            np.inf,
-                                            fun_rational(t0,y0), 
-                                            np.sign(t_bound - t0),
-                                            method_order,
-                                            rtol, atol)
-            max_step = step_no_max/2
-            step_with_max = select_initial_step(fun_rational, t0, y0, t_bound,
-                                            max_step,
-                                            fun_rational(t0, y0),
-                                            np.sign(t_bound - t0),
-                                            method_order, 
-                                            rtol, atol)
-            assert_equal(max_step, step_with_max)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/test_rk.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/test_rk.py
deleted file mode 100644
index 33cb27d0323d037c0937ab94b4de8f63b46be3d7..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ivp/tests/test_rk.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import pytest
-from numpy.testing import assert_allclose, assert_
-import numpy as np
-from scipy.integrate import RK23, RK45, DOP853
-from scipy.integrate._ivp import dop853_coefficients
-
-
-@pytest.mark.parametrize("solver", [RK23, RK45, DOP853])
-def test_coefficient_properties(solver):
-    assert_allclose(np.sum(solver.B), 1, rtol=1e-15)
-    assert_allclose(np.sum(solver.A, axis=1), solver.C, rtol=1e-14)
-
-
-def test_coefficient_properties_dop853():
-    assert_allclose(np.sum(dop853_coefficients.B), 1, rtol=1e-15)
-    assert_allclose(np.sum(dop853_coefficients.A, axis=1),
-                    dop853_coefficients.C,
-                    rtol=1e-14)
-
-
-@pytest.mark.parametrize("solver_class", [RK23, RK45, DOP853])
-def test_error_estimation(solver_class):
-    step = 0.2
-    solver = solver_class(lambda t, y: y, 0, [1], 1, first_step=step)
-    solver.step()
-    error_estimate = solver._estimate_error(solver.K, step)
-    error = solver.y - np.exp([step])
-    assert_(np.abs(error) < np.abs(error_estimate))
-
-
-@pytest.mark.parametrize("solver_class", [RK23, RK45, DOP853])
-def test_error_estimation_complex(solver_class):
-    h = 0.2
-    solver = solver_class(lambda t, y: 1j * y, 0, [1j], 1, first_step=h)
-    solver.step()
-    err_norm = solver._estimate_error_norm(solver.K, h, scale=[1])
-    assert np.isrealobj(err_norm)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ode.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ode.py
deleted file mode 100644
index 794a4dc6372164db4c4f1540649b20fd945cd81c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_ode.py
+++ /dev/null
@@ -1,1376 +0,0 @@
-# Authors: Pearu Peterson, Pauli Virtanen, John Travers
-"""
-First-order ODE integrators.
-
-User-friendly interface to various numerical integrators for solving a
-system of first order ODEs with prescribed initial conditions::
-
-    d y(t)[i]
-    ---------  = f(t,y(t))[i],
-       d t
-
-    y(t=0)[i] = y0[i],
-
-where::
-
-    i = 0, ..., len(y0) - 1
-
-class ode
----------
-
-A generic interface class to numeric integrators. It has the following
-methods::
-
-    integrator = ode(f, jac=None)
-    integrator = integrator.set_integrator(name, **params)
-    integrator = integrator.set_initial_value(y0, t0=0.0)
-    integrator = integrator.set_f_params(*args)
-    integrator = integrator.set_jac_params(*args)
-    y1 = integrator.integrate(t1, step=False, relax=False)
-    flag = integrator.successful()
-
-class complex_ode
------------------
-
-This class has the same generic interface as ode, except it can handle complex
-f, y and Jacobians by transparently translating them into the equivalent
-real-valued system. It supports the real-valued solvers (i.e., not zvode) and is
-an alternative to ode with the zvode solver, sometimes performing better.
-"""
-# XXX: Integrators must have:
-# ===========================
-# cvode - C version of vode and vodpk with many improvements.
-#   Get it from http://www.netlib.org/ode/cvode.tar.gz.
-#   To wrap cvode to Python, one must write the extension module by
-#   hand. Its interface is too much 'advanced C' that using f2py
-#   would be too complicated (or impossible).
-#
-# How to define a new integrator:
-# ===============================
-#
-# class myodeint(IntegratorBase):
-#
-#     runner =  or None
-#
-#     def __init__(self,...):                           # required
-#         
-#
-#     def reset(self,n,has_jac):                        # optional
-#         # n - the size of the problem (number of equations)
-#         # has_jac - whether user has supplied its own routine for Jacobian
-#         
-#
-#     def run(self,f,jac,y0,t0,t1,f_params,jac_params): # required
-#         # this method is called to integrate from t=t0 to t=t1
-#         # with initial condition y0. f and jac are user-supplied functions
-#         # that define the problem. f_params,jac_params are additional
-#         # arguments
-#         # to these functions.
-#         
-#         if :
-#             self.success = 0
-#         return t1,y1
-#
-#     # In addition, one can define step() and run_relax() methods (they
-#     # take the same arguments as run()) if the integrator can support
-#     # these features (see IntegratorBase doc strings).
-#
-# if myodeint.runner:
-#     IntegratorBase.integrator_classes.append(myodeint)
-
-__all__ = ['ode', 'complex_ode']
-
-import re
-import warnings
-
-from numpy import asarray, array, zeros, isscalar, real, imag, vstack
-
-from . import _vode
-from . import _dop
-from . import _lsoda
-
-
-_dop_int_dtype = _dop.types.intvar.dtype
-_vode_int_dtype = _vode.types.intvar.dtype
-_lsoda_int_dtype = _lsoda.types.intvar.dtype
-
-
-# ------------------------------------------------------------------------------
-# User interface
-# ------------------------------------------------------------------------------
-
-
-class ode:
-    """
-    A generic interface class to numeric integrators.
-
-    Solve an equation system :math:`y'(t) = f(t,y)` with (optional) ``jac = df/dy``.
-
-    *Note*: The first two arguments of ``f(t, y, ...)`` are in the
-    opposite order of the arguments in the system definition function used
-    by `scipy.integrate.odeint`.
-
-    Parameters
-    ----------
-    f : callable ``f(t, y, *f_args)``
-        Right-hand side of the differential equation. t is a scalar,
-        ``y.shape == (n,)``.
-        ``f_args`` is set by calling ``set_f_params(*args)``.
-        `f` should return a scalar, array or list (not a tuple).
-    jac : callable ``jac(t, y, *jac_args)``, optional
-        Jacobian of the right-hand side, ``jac[i,j] = d f[i] / d y[j]``.
-        ``jac_args`` is set by calling ``set_jac_params(*args)``.
-
-    Attributes
-    ----------
-    t : float
-        Current time.
-    y : ndarray
-        Current variable values.
-
-    See also
-    --------
-    odeint : an integrator with a simpler interface based on lsoda from ODEPACK
-    quad : for finding the area under a curve
-
-    Notes
-    -----
-    Available integrators are listed below. They can be selected using
-    the `set_integrator` method.
-
-    "vode"
-
-        Real-valued Variable-coefficient Ordinary Differential Equation
-        solver, with fixed-leading-coefficient implementation. It provides
-        implicit Adams method (for non-stiff problems) and a method based on
-        backward differentiation formulas (BDF) (for stiff problems).
-
-        Source: http://www.netlib.org/ode/vode.f
-
-        .. warning::
-
-           This integrator is not re-entrant. You cannot have two `ode`
-           instances using the "vode" integrator at the same time.
-
-        This integrator accepts the following parameters in `set_integrator`
-        method of the `ode` class:
-
-        - atol : float or sequence
-          absolute tolerance for solution
-        - rtol : float or sequence
-          relative tolerance for solution
-        - lband : None or int
-        - uband : None or int
-          Jacobian band width, jac[i,j] != 0 for i-lband <= j <= i+uband.
-          Setting these requires your jac routine to return the jacobian
-          in packed format, jac_packed[i-j+uband, j] = jac[i,j]. The
-          dimension of the matrix must be (lband+uband+1, len(y)).
-        - method: 'adams' or 'bdf'
-          Which solver to use, Adams (non-stiff) or BDF (stiff)
-        - with_jacobian : bool
-          This option is only considered when the user has not supplied a
-          Jacobian function and has not indicated (by setting either band)
-          that the Jacobian is banded. In this case, `with_jacobian` specifies
-          whether the iteration method of the ODE solver's correction step is
-          chord iteration with an internally generated full Jacobian or
-          functional iteration with no Jacobian.
-        - nsteps : int
-          Maximum number of (internally defined) steps allowed during one
-          call to the solver.
-        - first_step : float
-        - min_step : float
-        - max_step : float
-          Limits for the step sizes used by the integrator.
-        - order : int
-          Maximum order used by the integrator,
-          order <= 12 for Adams, <= 5 for BDF.
-
-    "zvode"
-
-        Complex-valued Variable-coefficient Ordinary Differential Equation
-        solver, with fixed-leading-coefficient implementation. It provides
-        implicit Adams method (for non-stiff problems) and a method based on
-        backward differentiation formulas (BDF) (for stiff problems).
-
-        Source: http://www.netlib.org/ode/zvode.f
-
-        .. warning::
-
-           This integrator is not re-entrant. You cannot have two `ode`
-           instances using the "zvode" integrator at the same time.
-
-        This integrator accepts the same parameters in `set_integrator`
-        as the "vode" solver.
-
-        .. note::
-
-            When using ZVODE for a stiff system, it should only be used for
-            the case in which the function f is analytic, that is, when each f(i)
-            is an analytic function of each y(j). Analyticity means that the
-            partial derivative df(i)/dy(j) is a unique complex number, and this
-            fact is critical in the way ZVODE solves the dense or banded linear
-            systems that arise in the stiff case. For a complex stiff ODE system
-            in which f is not analytic, ZVODE is likely to have convergence
-            failures, and for this problem one should instead use DVODE on the
-            equivalent real system (in the real and imaginary parts of y).
-
-    "lsoda"
-
-        Real-valued Variable-coefficient Ordinary Differential Equation
-        solver, with fixed-leading-coefficient implementation. It provides
-        automatic method switching between implicit Adams method (for non-stiff
-        problems) and a method based on backward differentiation formulas (BDF)
-        (for stiff problems).
-
-        Source: http://www.netlib.org/odepack
-
-        .. warning::
-
-           This integrator is not re-entrant. You cannot have two `ode`
-           instances using the "lsoda" integrator at the same time.
-
-        This integrator accepts the following parameters in `set_integrator`
-        method of the `ode` class:
-
-        - atol : float or sequence
-          absolute tolerance for solution
-        - rtol : float or sequence
-          relative tolerance for solution
-        - lband : None or int
-        - uband : None or int
-          Jacobian band width, jac[i,j] != 0 for i-lband <= j <= i+uband.
-          Setting these requires your jac routine to return the jacobian
-          in packed format, jac_packed[i-j+uband, j] = jac[i,j].
-        - with_jacobian : bool
-          *Not used.*
-        - nsteps : int
-          Maximum number of (internally defined) steps allowed during one
-          call to the solver.
-        - first_step : float
-        - min_step : float
-        - max_step : float
-          Limits for the step sizes used by the integrator.
-        - max_order_ns : int
-          Maximum order used in the nonstiff case (default 12).
-        - max_order_s : int
-          Maximum order used in the stiff case (default 5).
-        - max_hnil : int
-          Maximum number of messages reporting too small step size (t + h = t)
-          (default 0)
-        - ixpr : int
-          Whether to generate extra printing at method switches (default False).
-
-    "dopri5"
-
-        This is an explicit runge-kutta method of order (4)5 due to Dormand &
-        Prince (with stepsize control and dense output).
-
-        Authors:
-
-            E. Hairer and G. Wanner
-            Universite de Geneve, Dept. de Mathematiques
-            CH-1211 Geneve 24, Switzerland
-            e-mail:  ernst.hairer@math.unige.ch, gerhard.wanner@math.unige.ch
-
-        This code is described in [HNW93]_.
-
-        This integrator accepts the following parameters in set_integrator()
-        method of the ode class:
-
-        - atol : float or sequence
-          absolute tolerance for solution
-        - rtol : float or sequence
-          relative tolerance for solution
-        - nsteps : int
-          Maximum number of (internally defined) steps allowed during one
-          call to the solver.
-        - first_step : float
-        - max_step : float
-        - safety : float
-          Safety factor on new step selection (default 0.9)
-        - ifactor : float
-        - dfactor : float
-          Maximum factor to increase/decrease step size by in one step
-        - beta : float
-          Beta parameter for stabilised step size control.
-        - verbosity : int
-          Switch for printing messages (< 0 for no messages).
-
-    "dop853"
-
-        This is an explicit runge-kutta method of order 8(5,3) due to Dormand
-        & Prince (with stepsize control and dense output).
-
-        Options and references the same as "dopri5".
-
-    Examples
-    --------
-
-    A problem to integrate and the corresponding jacobian:
-
-    >>> from scipy.integrate import ode
-    >>>
-    >>> y0, t0 = [1.0j, 2.0], 0
-    >>>
-    >>> def f(t, y, arg1):
-    ...     return [1j*arg1*y[0] + y[1], -arg1*y[1]**2]
-    >>> def jac(t, y, arg1):
-    ...     return [[1j*arg1, 1], [0, -arg1*2*y[1]]]
-
-    The integration:
-
-    >>> r = ode(f, jac).set_integrator('zvode', method='bdf')
-    >>> r.set_initial_value(y0, t0).set_f_params(2.0).set_jac_params(2.0)
-    >>> t1 = 10
-    >>> dt = 1
-    >>> while r.successful() and r.t < t1:
-    ...     print(r.t+dt, r.integrate(r.t+dt))
-    1 [-0.71038232+0.23749653j  0.40000271+0.j        ]
-    2.0 [0.19098503-0.52359246j 0.22222356+0.j        ]
-    3.0 [0.47153208+0.52701229j 0.15384681+0.j        ]
-    4.0 [-0.61905937+0.30726255j  0.11764744+0.j        ]
-    5.0 [0.02340997-0.61418799j 0.09523835+0.j        ]
-    6.0 [0.58643071+0.339819j 0.08000018+0.j      ]
-    7.0 [-0.52070105+0.44525141j  0.06896565+0.j        ]
-    8.0 [-0.15986733-0.61234476j  0.06060616+0.j        ]
-    9.0 [0.64850462+0.15048982j 0.05405414+0.j        ]
-    10.0 [-0.38404699+0.56382299j  0.04878055+0.j        ]
-
-    References
-    ----------
-    .. [HNW93] E. Hairer, S.P. Norsett and G. Wanner, Solving Ordinary
-        Differential Equations i. Nonstiff Problems. 2nd edition.
-        Springer Series in Computational Mathematics,
-        Springer-Verlag (1993)
-
-    """
-
-    def __init__(self, f, jac=None):
-        self.stiff = 0
-        self.f = f
-        self.jac = jac
-        self.f_params = ()
-        self.jac_params = ()
-        self._y = []
-
-    @property
-    def y(self):
-        return self._y
-
-    def set_initial_value(self, y, t=0.0):
-        """Set initial conditions y(t) = y."""
-        if isscalar(y):
-            y = [y]
-        n_prev = len(self._y)
-        if not n_prev:
-            self.set_integrator('')  # find first available integrator
-        self._y = asarray(y, self._integrator.scalar)
-        self.t = t
-        self._integrator.reset(len(self._y), self.jac is not None)
-        return self
-
-    def set_integrator(self, name, **integrator_params):
-        """
-        Set integrator by name.
-
-        Parameters
-        ----------
-        name : str
-            Name of the integrator.
-        **integrator_params
-            Additional parameters for the integrator.
-        """
-        integrator = find_integrator(name)
-        if integrator is None:
-            # FIXME: this really should be raise an exception. Will that break
-            # any code?
-            message = f'No integrator name match with {name!r} or is not available.'
-            warnings.warn(message, stacklevel=2)
-        else:
-            self._integrator = integrator(**integrator_params)
-            if not len(self._y):
-                self.t = 0.0
-                self._y = array([0.0], self._integrator.scalar)
-            self._integrator.reset(len(self._y), self.jac is not None)
-        return self
-
-    def integrate(self, t, step=False, relax=False):
-        """Find y=y(t), set y as an initial condition, and return y.
-
-        Parameters
-        ----------
-        t : float
-            The endpoint of the integration step.
-        step : bool
-            If True, and if the integrator supports the step method,
-            then perform a single integration step and return.
-            This parameter is provided in order to expose internals of
-            the implementation, and should not be changed from its default
-            value in most cases.
-        relax : bool
-            If True and if the integrator supports the run_relax method,
-            then integrate until t_1 >= t and return. ``relax`` is not
-            referenced if ``step=True``.
-            This parameter is provided in order to expose internals of
-            the implementation, and should not be changed from its default
-            value in most cases.
-
-        Returns
-        -------
-        y : float
-            The integrated value at t
-        """
-        if step and self._integrator.supports_step:
-            mth = self._integrator.step
-        elif relax and self._integrator.supports_run_relax:
-            mth = self._integrator.run_relax
-        else:
-            mth = self._integrator.run
-
-        try:
-            self._y, self.t = mth(self.f, self.jac or (lambda: None),
-                                  self._y, self.t, t,
-                                  self.f_params, self.jac_params)
-        except SystemError as e:
-            # f2py issue with tuple returns, see ticket 1187.
-            raise ValueError(
-                'Function to integrate must not return a tuple.'
-            ) from e
-
-        return self._y
-
-    def successful(self):
-        """Check if integration was successful."""
-        try:
-            self._integrator
-        except AttributeError:
-            self.set_integrator('')
-        return self._integrator.success == 1
-
-    def get_return_code(self):
-        """Extracts the return code for the integration to enable better control
-        if the integration fails.
-
-        In general, a return code > 0 implies success, while a return code < 0
-        implies failure.
-
-        Notes
-        -----
-        This section describes possible return codes and their meaning, for available
-        integrators that can be selected by `set_integrator` method.
-
-        "vode"
-
-        ===========  =======
-        Return Code  Message
-        ===========  =======
-        2            Integration successful.
-        -1           Excess work done on this call. (Perhaps wrong MF.)
-        -2           Excess accuracy requested. (Tolerances too small.)
-        -3           Illegal input detected. (See printed message.)
-        -4           Repeated error test failures. (Check all input.)
-        -5           Repeated convergence failures. (Perhaps bad Jacobian
-                     supplied or wrong choice of MF or tolerances.)
-        -6           Error weight became zero during problem. (Solution
-                     component i vanished, and ATOL or ATOL(i) = 0.)
-        ===========  =======
-
-        "zvode"
-
-        ===========  =======
-        Return Code  Message
-        ===========  =======
-        2            Integration successful.
-        -1           Excess work done on this call. (Perhaps wrong MF.)
-        -2           Excess accuracy requested. (Tolerances too small.)
-        -3           Illegal input detected. (See printed message.)
-        -4           Repeated error test failures. (Check all input.)
-        -5           Repeated convergence failures. (Perhaps bad Jacobian
-                     supplied or wrong choice of MF or tolerances.)
-        -6           Error weight became zero during problem. (Solution
-                     component i vanished, and ATOL or ATOL(i) = 0.)
-        ===========  =======
-
-        "dopri5"
-
-        ===========  =======
-        Return Code  Message
-        ===========  =======
-        1            Integration successful.
-        2            Integration successful (interrupted by solout).
-        -1           Input is not consistent.
-        -2           Larger nsteps is needed.
-        -3           Step size becomes too small.
-        -4           Problem is probably stiff (interrupted).
-        ===========  =======
-
-        "dop853"
-
-        ===========  =======
-        Return Code  Message
-        ===========  =======
-        1            Integration successful.
-        2            Integration successful (interrupted by solout).
-        -1           Input is not consistent.
-        -2           Larger nsteps is needed.
-        -3           Step size becomes too small.
-        -4           Problem is probably stiff (interrupted).
-        ===========  =======
-
-        "lsoda"
-
-        ===========  =======
-        Return Code  Message
-        ===========  =======
-        2            Integration successful.
-        -1           Excess work done on this call (perhaps wrong Dfun type).
-        -2           Excess accuracy requested (tolerances too small).
-        -3           Illegal input detected (internal error).
-        -4           Repeated error test failures (internal error).
-        -5           Repeated convergence failures (perhaps bad Jacobian or tolerances).
-        -6           Error weight became zero during problem.
-        -7           Internal workspace insufficient to finish (internal error).
-        ===========  =======
-        """
-        try:
-            self._integrator
-        except AttributeError:
-            self.set_integrator('')
-        return self._integrator.istate
-
-    def set_f_params(self, *args):
-        """Set extra parameters for user-supplied function f."""
-        self.f_params = args
-        return self
-
-    def set_jac_params(self, *args):
-        """Set extra parameters for user-supplied function jac."""
-        self.jac_params = args
-        return self
-
-    def set_solout(self, solout):
-        """
-        Set callable to be called at every successful integration step.
-
-        Parameters
-        ----------
-        solout : callable
-            ``solout(t, y)`` is called at each internal integrator step,
-            t is a scalar providing the current independent position
-            y is the current solution ``y.shape == (n,)``
-            solout should return -1 to stop integration
-            otherwise it should return None or 0
-
-        """
-        if self._integrator.supports_solout:
-            self._integrator.set_solout(solout)
-            if self._y is not None:
-                self._integrator.reset(len(self._y), self.jac is not None)
-        else:
-            raise ValueError("selected integrator does not support solout,"
-                             " choose another one")
-
-
-def _transform_banded_jac(bjac):
-    """
-    Convert a real matrix of the form (for example)
-
-        [0 0 A B]        [0 0 0 B]
-        [0 0 C D]        [0 0 A D]
-        [E F G H]   to   [0 F C H]
-        [I J K L]        [E J G L]
-                         [I 0 K 0]
-
-    That is, every other column is shifted up one.
-    """
-    # Shift every other column.
-    newjac = zeros((bjac.shape[0] + 1, bjac.shape[1]))
-    newjac[1:, ::2] = bjac[:, ::2]
-    newjac[:-1, 1::2] = bjac[:, 1::2]
-    return newjac
-
-
-class complex_ode(ode):
-    """
-    A wrapper of ode for complex systems.
-
-    This functions similarly as `ode`, but re-maps a complex-valued
-    equation system to a real-valued one before using the integrators.
-
-    Parameters
-    ----------
-    f : callable ``f(t, y, *f_args)``
-        Rhs of the equation. t is a scalar, ``y.shape == (n,)``.
-        ``f_args`` is set by calling ``set_f_params(*args)``.
-    jac : callable ``jac(t, y, *jac_args)``
-        Jacobian of the rhs, ``jac[i,j] = d f[i] / d y[j]``.
-        ``jac_args`` is set by calling ``set_f_params(*args)``.
-
-    Attributes
-    ----------
-    t : float
-        Current time.
-    y : ndarray
-        Current variable values.
-
-    Examples
-    --------
-    For usage examples, see `ode`.
-
-    """
-
-    def __init__(self, f, jac=None):
-        self.cf = f
-        self.cjac = jac
-        if jac is None:
-            ode.__init__(self, self._wrap, None)
-        else:
-            ode.__init__(self, self._wrap, self._wrap_jac)
-
-    def _wrap(self, t, y, *f_args):
-        f = self.cf(*((t, y[::2] + 1j * y[1::2]) + f_args))
-        # self.tmp is a real-valued array containing the interleaved
-        # real and imaginary parts of f.
-        self.tmp[::2] = real(f)
-        self.tmp[1::2] = imag(f)
-        return self.tmp
-
-    def _wrap_jac(self, t, y, *jac_args):
-        # jac is the complex Jacobian computed by the user-defined function.
-        jac = self.cjac(*((t, y[::2] + 1j * y[1::2]) + jac_args))
-
-        # jac_tmp is the real version of the complex Jacobian.  Each complex
-        # entry in jac, say 2+3j, becomes a 2x2 block of the form
-        #     [2 -3]
-        #     [3  2]
-        jac_tmp = zeros((2 * jac.shape[0], 2 * jac.shape[1]))
-        jac_tmp[1::2, 1::2] = jac_tmp[::2, ::2] = real(jac)
-        jac_tmp[1::2, ::2] = imag(jac)
-        jac_tmp[::2, 1::2] = -jac_tmp[1::2, ::2]
-
-        ml = getattr(self._integrator, 'ml', None)
-        mu = getattr(self._integrator, 'mu', None)
-        if ml is not None or mu is not None:
-            # Jacobian is banded.  The user's Jacobian function has computed
-            # the complex Jacobian in packed format.  The corresponding
-            # real-valued version has every other column shifted up.
-            jac_tmp = _transform_banded_jac(jac_tmp)
-
-        return jac_tmp
-
-    @property
-    def y(self):
-        return self._y[::2] + 1j * self._y[1::2]
-
-    def set_integrator(self, name, **integrator_params):
-        """
-        Set integrator by name.
-
-        Parameters
-        ----------
-        name : str
-            Name of the integrator
-        **integrator_params
-            Additional parameters for the integrator.
-        """
-        if name == 'zvode':
-            raise ValueError("zvode must be used with ode, not complex_ode")
-
-        lband = integrator_params.get('lband')
-        uband = integrator_params.get('uband')
-        if lband is not None or uband is not None:
-            # The Jacobian is banded.  Override the user-supplied bandwidths
-            # (which are for the complex Jacobian) with the bandwidths of
-            # the corresponding real-valued Jacobian wrapper of the complex
-            # Jacobian.
-            integrator_params['lband'] = 2 * (lband or 0) + 1
-            integrator_params['uband'] = 2 * (uband or 0) + 1
-
-        return ode.set_integrator(self, name, **integrator_params)
-
-    def set_initial_value(self, y, t=0.0):
-        """Set initial conditions y(t) = y."""
-        y = asarray(y)
-        self.tmp = zeros(y.size * 2, 'float')
-        self.tmp[::2] = real(y)
-        self.tmp[1::2] = imag(y)
-        return ode.set_initial_value(self, self.tmp, t)
-
-    def integrate(self, t, step=False, relax=False):
-        """Find y=y(t), set y as an initial condition, and return y.
-
-        Parameters
-        ----------
-        t : float
-            The endpoint of the integration step.
-        step : bool
-            If True, and if the integrator supports the step method,
-            then perform a single integration step and return.
-            This parameter is provided in order to expose internals of
-            the implementation, and should not be changed from its default
-            value in most cases.
-        relax : bool
-            If True and if the integrator supports the run_relax method,
-            then integrate until t_1 >= t and return. ``relax`` is not
-            referenced if ``step=True``.
-            This parameter is provided in order to expose internals of
-            the implementation, and should not be changed from its default
-            value in most cases.
-
-        Returns
-        -------
-        y : float
-            The integrated value at t
-        """
-        y = ode.integrate(self, t, step, relax)
-        return y[::2] + 1j * y[1::2]
-
-    def set_solout(self, solout):
-        """
-        Set callable to be called at every successful integration step.
-
-        Parameters
-        ----------
-        solout : callable
-            ``solout(t, y)`` is called at each internal integrator step,
-            t is a scalar providing the current independent position
-            y is the current solution ``y.shape == (n,)``
-            solout should return -1 to stop integration
-            otherwise it should return None or 0
-
-        """
-        if self._integrator.supports_solout:
-            self._integrator.set_solout(solout, complex=True)
-        else:
-            raise TypeError("selected integrator does not support solouta, "
-                            "choose another one")
-
-
-# ------------------------------------------------------------------------------
-# ODE integrators
-# ------------------------------------------------------------------------------
-
-def find_integrator(name):
-    for cl in IntegratorBase.integrator_classes:
-        if re.match(name, cl.__name__, re.I):
-            return cl
-    return None
-
-
-class IntegratorConcurrencyError(RuntimeError):
-    """
-    Failure due to concurrent usage of an integrator that can be used
-    only for a single problem at a time.
-
-    """
-
-    def __init__(self, name):
-        msg = ("Integrator `%s` can be used to solve only a single problem "
-               "at a time. If you want to integrate multiple problems, "
-               "consider using a different integrator "
-               "(see `ode.set_integrator`)") % name
-        RuntimeError.__init__(self, msg)
-
-
-class IntegratorBase:
-    runner = None  # runner is None => integrator is not available
-    success = None  # success==1 if integrator was called successfully
-    istate = None  # istate > 0 means success, istate < 0 means failure
-    supports_run_relax = None
-    supports_step = None
-    supports_solout = False
-    integrator_classes = []
-    scalar = float
-
-    def acquire_new_handle(self):
-        # Some of the integrators have internal state (ancient
-        # Fortran...), and so only one instance can use them at a time.
-        # We keep track of this, and fail when concurrent usage is tried.
-        self.__class__.active_global_handle += 1
-        self.handle = self.__class__.active_global_handle
-
-    def check_handle(self):
-        if self.handle is not self.__class__.active_global_handle:
-            raise IntegratorConcurrencyError(self.__class__.__name__)
-
-    def reset(self, n, has_jac):
-        """Prepare integrator for call: allocate memory, set flags, etc.
-        n - number of equations.
-        has_jac - if user has supplied function for evaluating Jacobian.
-        """
-
-    def run(self, f, jac, y0, t0, t1, f_params, jac_params):
-        """Integrate from t=t0 to t=t1 using y0 as an initial condition.
-        Return 2-tuple (y1,t1) where y1 is the result and t=t1
-        defines the stoppage coordinate of the result.
-        """
-        raise NotImplementedError('all integrators must define '
-                                  'run(f, jac, t0, t1, y0, f_params, jac_params)')
-
-    def step(self, f, jac, y0, t0, t1, f_params, jac_params):
-        """Make one integration step and return (y1,t1)."""
-        raise NotImplementedError('%s does not support step() method' %
-                                  self.__class__.__name__)
-
-    def run_relax(self, f, jac, y0, t0, t1, f_params, jac_params):
-        """Integrate from t=t0 to t>=t1 and return (y1,t)."""
-        raise NotImplementedError('%s does not support run_relax() method' %
-                                  self.__class__.__name__)
-
-    # XXX: __str__ method for getting visual state of the integrator
-
-
-def _vode_banded_jac_wrapper(jacfunc, ml, jac_params):
-    """
-    Wrap a banded Jacobian function with a function that pads
-    the Jacobian with `ml` rows of zeros.
-    """
-
-    def jac_wrapper(t, y):
-        jac = asarray(jacfunc(t, y, *jac_params))
-        padded_jac = vstack((jac, zeros((ml, jac.shape[1]))))
-        return padded_jac
-
-    return jac_wrapper
-
-
-class vode(IntegratorBase):
-    runner = getattr(_vode, 'dvode', None)
-
-    messages = {-1: 'Excess work done on this call. (Perhaps wrong MF.)',
-                -2: 'Excess accuracy requested. (Tolerances too small.)',
-                -3: 'Illegal input detected. (See printed message.)',
-                -4: 'Repeated error test failures. (Check all input.)',
-                -5: 'Repeated convergence failures. (Perhaps bad'
-                    ' Jacobian supplied or wrong choice of MF or tolerances.)',
-                -6: 'Error weight became zero during problem. (Solution'
-                    ' component i vanished, and ATOL or ATOL(i) = 0.)'
-                }
-    supports_run_relax = 1
-    supports_step = 1
-    active_global_handle = 0
-
-    def __init__(self,
-                 method='adams',
-                 with_jacobian=False,
-                 rtol=1e-6, atol=1e-12,
-                 lband=None, uband=None,
-                 order=12,
-                 nsteps=500,
-                 max_step=0.0,  # corresponds to infinite
-                 min_step=0.0,
-                 first_step=0.0,  # determined by solver
-                 ):
-
-        if re.match(method, r'adams', re.I):
-            self.meth = 1
-        elif re.match(method, r'bdf', re.I):
-            self.meth = 2
-        else:
-            raise ValueError('Unknown integration method %s' % method)
-        self.with_jacobian = with_jacobian
-        self.rtol = rtol
-        self.atol = atol
-        self.mu = uband
-        self.ml = lband
-
-        self.order = order
-        self.nsteps = nsteps
-        self.max_step = max_step
-        self.min_step = min_step
-        self.first_step = first_step
-        self.success = 1
-
-        self.initialized = False
-
-    def _determine_mf_and_set_bands(self, has_jac):
-        """
-        Determine the `MF` parameter (Method Flag) for the Fortran subroutine `dvode`.
-
-        In the Fortran code, the legal values of `MF` are:
-            10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25,
-            -11, -12, -14, -15, -21, -22, -24, -25
-        but this Python wrapper does not use negative values.
-
-        Returns
-
-            mf  = 10*self.meth + miter
-
-        self.meth is the linear multistep method:
-            self.meth == 1:  method="adams"
-            self.meth == 2:  method="bdf"
-
-        miter is the correction iteration method:
-            miter == 0:  Functional iteration; no Jacobian involved.
-            miter == 1:  Chord iteration with user-supplied full Jacobian.
-            miter == 2:  Chord iteration with internally computed full Jacobian.
-            miter == 3:  Chord iteration with internally computed diagonal Jacobian.
-            miter == 4:  Chord iteration with user-supplied banded Jacobian.
-            miter == 5:  Chord iteration with internally computed banded Jacobian.
-
-        Side effects: If either self.mu or self.ml is not None and the other is None,
-        then the one that is None is set to 0.
-        """
-
-        jac_is_banded = self.mu is not None or self.ml is not None
-        if jac_is_banded:
-            if self.mu is None:
-                self.mu = 0
-            if self.ml is None:
-                self.ml = 0
-
-        # has_jac is True if the user provided a Jacobian function.
-        if has_jac:
-            if jac_is_banded:
-                miter = 4
-            else:
-                miter = 1
-        else:
-            if jac_is_banded:
-                if self.ml == self.mu == 0:
-                    miter = 3  # Chord iteration with internal diagonal Jacobian.
-                else:
-                    miter = 5  # Chord iteration with internal banded Jacobian.
-            else:
-                # self.with_jacobian is set by the user in
-                # the call to ode.set_integrator.
-                if self.with_jacobian:
-                    miter = 2  # Chord iteration with internal full Jacobian.
-                else:
-                    miter = 0  # Functional iteration; no Jacobian involved.
-
-        mf = 10 * self.meth + miter
-        return mf
-
-    def reset(self, n, has_jac):
-        mf = self._determine_mf_and_set_bands(has_jac)
-
-        if mf == 10:
-            lrw = 20 + 16 * n
-        elif mf in [11, 12]:
-            lrw = 22 + 16 * n + 2 * n * n
-        elif mf == 13:
-            lrw = 22 + 17 * n
-        elif mf in [14, 15]:
-            lrw = 22 + 18 * n + (3 * self.ml + 2 * self.mu) * n
-        elif mf == 20:
-            lrw = 20 + 9 * n
-        elif mf in [21, 22]:
-            lrw = 22 + 9 * n + 2 * n * n
-        elif mf == 23:
-            lrw = 22 + 10 * n
-        elif mf in [24, 25]:
-            lrw = 22 + 11 * n + (3 * self.ml + 2 * self.mu) * n
-        else:
-            raise ValueError('Unexpected mf=%s' % mf)
-
-        if mf % 10 in [0, 3]:
-            liw = 30
-        else:
-            liw = 30 + n
-
-        rwork = zeros((lrw,), float)
-        rwork[4] = self.first_step
-        rwork[5] = self.max_step
-        rwork[6] = self.min_step
-        self.rwork = rwork
-
-        iwork = zeros((liw,), _vode_int_dtype)
-        if self.ml is not None:
-            iwork[0] = self.ml
-        if self.mu is not None:
-            iwork[1] = self.mu
-        iwork[4] = self.order
-        iwork[5] = self.nsteps
-        iwork[6] = 2  # mxhnil
-        self.iwork = iwork
-
-        self.call_args = [self.rtol, self.atol, 1, 1,
-                          self.rwork, self.iwork, mf]
-        self.success = 1
-        self.initialized = False
-
-    def run(self, f, jac, y0, t0, t1, f_params, jac_params):
-        if self.initialized:
-            self.check_handle()
-        else:
-            self.initialized = True
-            self.acquire_new_handle()
-
-        if self.ml is not None and self.ml > 0:
-            # Banded Jacobian. Wrap the user-provided function with one
-            # that pads the Jacobian array with the extra `self.ml` rows
-            # required by the f2py-generated wrapper.
-            jac = _vode_banded_jac_wrapper(jac, self.ml, jac_params)
-
-        args = ((f, jac, y0, t0, t1) + tuple(self.call_args) +
-                (f_params, jac_params))
-        y1, t, istate = self.runner(*args)
-        self.istate = istate
-        if istate < 0:
-            unexpected_istate_msg = f'Unexpected istate={istate:d}'
-            warnings.warn('{:s}: {:s}'.format(self.__class__.__name__,
-                          self.messages.get(istate, unexpected_istate_msg)),
-                          stacklevel=2)
-            self.success = 0
-        else:
-            self.call_args[3] = 2  # upgrade istate from 1 to 2
-            self.istate = 2
-        return y1, t
-
-    def step(self, *args):
-        itask = self.call_args[2]
-        self.call_args[2] = 2
-        r = self.run(*args)
-        self.call_args[2] = itask
-        return r
-
-    def run_relax(self, *args):
-        itask = self.call_args[2]
-        self.call_args[2] = 3
-        r = self.run(*args)
-        self.call_args[2] = itask
-        return r
-
-
-if vode.runner is not None:
-    IntegratorBase.integrator_classes.append(vode)
-
-
-class zvode(vode):
-    runner = getattr(_vode, 'zvode', None)
-
-    supports_run_relax = 1
-    supports_step = 1
-    scalar = complex
-    active_global_handle = 0
-
-    def reset(self, n, has_jac):
-        mf = self._determine_mf_and_set_bands(has_jac)
-
-        if mf in (10,):
-            lzw = 15 * n
-        elif mf in (11, 12):
-            lzw = 15 * n + 2 * n ** 2
-        elif mf in (-11, -12):
-            lzw = 15 * n + n ** 2
-        elif mf in (13,):
-            lzw = 16 * n
-        elif mf in (14, 15):
-            lzw = 17 * n + (3 * self.ml + 2 * self.mu) * n
-        elif mf in (-14, -15):
-            lzw = 16 * n + (2 * self.ml + self.mu) * n
-        elif mf in (20,):
-            lzw = 8 * n
-        elif mf in (21, 22):
-            lzw = 8 * n + 2 * n ** 2
-        elif mf in (-21, -22):
-            lzw = 8 * n + n ** 2
-        elif mf in (23,):
-            lzw = 9 * n
-        elif mf in (24, 25):
-            lzw = 10 * n + (3 * self.ml + 2 * self.mu) * n
-        elif mf in (-24, -25):
-            lzw = 9 * n + (2 * self.ml + self.mu) * n
-
-        lrw = 20 + n
-
-        if mf % 10 in (0, 3):
-            liw = 30
-        else:
-            liw = 30 + n
-
-        zwork = zeros((lzw,), complex)
-        self.zwork = zwork
-
-        rwork = zeros((lrw,), float)
-        rwork[4] = self.first_step
-        rwork[5] = self.max_step
-        rwork[6] = self.min_step
-        self.rwork = rwork
-
-        iwork = zeros((liw,), _vode_int_dtype)
-        if self.ml is not None:
-            iwork[0] = self.ml
-        if self.mu is not None:
-            iwork[1] = self.mu
-        iwork[4] = self.order
-        iwork[5] = self.nsteps
-        iwork[6] = 2  # mxhnil
-        self.iwork = iwork
-
-        self.call_args = [self.rtol, self.atol, 1, 1,
-                          self.zwork, self.rwork, self.iwork, mf]
-        self.success = 1
-        self.initialized = False
-
-
-if zvode.runner is not None:
-    IntegratorBase.integrator_classes.append(zvode)
-
-
-class dopri5(IntegratorBase):
-    runner = getattr(_dop, 'dopri5', None)
-    name = 'dopri5'
-    supports_solout = True
-
-    messages = {1: 'computation successful',
-                2: 'computation successful (interrupted by solout)',
-                -1: 'input is not consistent',
-                -2: 'larger nsteps is needed',
-                -3: 'step size becomes too small',
-                -4: 'problem is probably stiff (interrupted)',
-                }
-
-    def __init__(self,
-                 rtol=1e-6, atol=1e-12,
-                 nsteps=500,
-                 max_step=0.0,
-                 first_step=0.0,  # determined by solver
-                 safety=0.9,
-                 ifactor=10.0,
-                 dfactor=0.2,
-                 beta=0.0,
-                 method=None,
-                 verbosity=-1,  # no messages if negative
-                 ):
-        self.rtol = rtol
-        self.atol = atol
-        self.nsteps = nsteps
-        self.max_step = max_step
-        self.first_step = first_step
-        self.safety = safety
-        self.ifactor = ifactor
-        self.dfactor = dfactor
-        self.beta = beta
-        self.verbosity = verbosity
-        self.success = 1
-        self.set_solout(None)
-
-    def set_solout(self, solout, complex=False):
-        self.solout = solout
-        self.solout_cmplx = complex
-        if solout is None:
-            self.iout = 0
-        else:
-            self.iout = 1
-
-    def reset(self, n, has_jac):
-        work = zeros((8 * n + 21,), float)
-        work[1] = self.safety
-        work[2] = self.dfactor
-        work[3] = self.ifactor
-        work[4] = self.beta
-        work[5] = self.max_step
-        work[6] = self.first_step
-        self.work = work
-        iwork = zeros((21,), _dop_int_dtype)
-        iwork[0] = self.nsteps
-        iwork[2] = self.verbosity
-        self.iwork = iwork
-        self.call_args = [self.rtol, self.atol, self._solout,
-                          self.iout, self.work, self.iwork]
-        self.success = 1
-
-    def run(self, f, jac, y0, t0, t1, f_params, jac_params):
-        x, y, iwork, istate = self.runner(*((f, t0, y0, t1) +
-                                          tuple(self.call_args) + (f_params,)))
-        self.istate = istate
-        if istate < 0:
-            unexpected_istate_msg = f'Unexpected istate={istate:d}'
-            warnings.warn('{:s}: {:s}'.format(self.__class__.__name__,
-                          self.messages.get(istate, unexpected_istate_msg)),
-                          stacklevel=2)
-            self.success = 0
-        return y, x
-
-    def _solout(self, nr, xold, x, y, nd, icomp, con):
-        if self.solout is not None:
-            if self.solout_cmplx:
-                y = y[::2] + 1j * y[1::2]
-            return self.solout(x, y)
-        else:
-            return 1
-
-
-if dopri5.runner is not None:
-    IntegratorBase.integrator_classes.append(dopri5)
-
-
-class dop853(dopri5):
-    runner = getattr(_dop, 'dop853', None)
-    name = 'dop853'
-
-    def __init__(self,
-                 rtol=1e-6, atol=1e-12,
-                 nsteps=500,
-                 max_step=0.0,
-                 first_step=0.0,  # determined by solver
-                 safety=0.9,
-                 ifactor=6.0,
-                 dfactor=0.3,
-                 beta=0.0,
-                 method=None,
-                 verbosity=-1,  # no messages if negative
-                 ):
-        super().__init__(rtol, atol, nsteps, max_step, first_step, safety,
-                         ifactor, dfactor, beta, method, verbosity)
-
-    def reset(self, n, has_jac):
-        work = zeros((11 * n + 21,), float)
-        work[1] = self.safety
-        work[2] = self.dfactor
-        work[3] = self.ifactor
-        work[4] = self.beta
-        work[5] = self.max_step
-        work[6] = self.first_step
-        self.work = work
-        iwork = zeros((21,), _dop_int_dtype)
-        iwork[0] = self.nsteps
-        iwork[2] = self.verbosity
-        self.iwork = iwork
-        self.call_args = [self.rtol, self.atol, self._solout,
-                          self.iout, self.work, self.iwork]
-        self.success = 1
-
-
-if dop853.runner is not None:
-    IntegratorBase.integrator_classes.append(dop853)
-
-
-class lsoda(IntegratorBase):
-    runner = getattr(_lsoda, 'lsoda', None)
-    active_global_handle = 0
-
-    messages = {
-        2: "Integration successful.",
-        -1: "Excess work done on this call (perhaps wrong Dfun type).",
-        -2: "Excess accuracy requested (tolerances too small).",
-        -3: "Illegal input detected (internal error).",
-        -4: "Repeated error test failures (internal error).",
-        -5: "Repeated convergence failures (perhaps bad Jacobian or tolerances).",
-        -6: "Error weight became zero during problem.",
-        -7: "Internal workspace insufficient to finish (internal error)."
-    }
-
-    def __init__(self,
-                 with_jacobian=False,
-                 rtol=1e-6, atol=1e-12,
-                 lband=None, uband=None,
-                 nsteps=500,
-                 max_step=0.0,  # corresponds to infinite
-                 min_step=0.0,
-                 first_step=0.0,  # determined by solver
-                 ixpr=0,
-                 max_hnil=0,
-                 max_order_ns=12,
-                 max_order_s=5,
-                 method=None
-                 ):
-
-        self.with_jacobian = with_jacobian
-        self.rtol = rtol
-        self.atol = atol
-        self.mu = uband
-        self.ml = lband
-
-        self.max_order_ns = max_order_ns
-        self.max_order_s = max_order_s
-        self.nsteps = nsteps
-        self.max_step = max_step
-        self.min_step = min_step
-        self.first_step = first_step
-        self.ixpr = ixpr
-        self.max_hnil = max_hnil
-        self.success = 1
-
-        self.initialized = False
-
-    def reset(self, n, has_jac):
-        # Calculate parameters for Fortran subroutine dvode.
-        if has_jac:
-            if self.mu is None and self.ml is None:
-                jt = 1
-            else:
-                if self.mu is None:
-                    self.mu = 0
-                if self.ml is None:
-                    self.ml = 0
-                jt = 4
-        else:
-            if self.mu is None and self.ml is None:
-                jt = 2
-            else:
-                if self.mu is None:
-                    self.mu = 0
-                if self.ml is None:
-                    self.ml = 0
-                jt = 5
-        lrn = 20 + (self.max_order_ns + 4) * n
-        if jt in [1, 2]:
-            lrs = 22 + (self.max_order_s + 4) * n + n * n
-        elif jt in [4, 5]:
-            lrs = 22 + (self.max_order_s + 5 + 2 * self.ml + self.mu) * n
-        else:
-            raise ValueError('Unexpected jt=%s' % jt)
-        lrw = max(lrn, lrs)
-        liw = 20 + n
-        rwork = zeros((lrw,), float)
-        rwork[4] = self.first_step
-        rwork[5] = self.max_step
-        rwork[6] = self.min_step
-        self.rwork = rwork
-        iwork = zeros((liw,), _lsoda_int_dtype)
-        if self.ml is not None:
-            iwork[0] = self.ml
-        if self.mu is not None:
-            iwork[1] = self.mu
-        iwork[4] = self.ixpr
-        iwork[5] = self.nsteps
-        iwork[6] = self.max_hnil
-        iwork[7] = self.max_order_ns
-        iwork[8] = self.max_order_s
-        self.iwork = iwork
-        self.call_args = [self.rtol, self.atol, 1, 1,
-                          self.rwork, self.iwork, jt]
-        self.success = 1
-        self.initialized = False
-
-    def run(self, f, jac, y0, t0, t1, f_params, jac_params):
-        if self.initialized:
-            self.check_handle()
-        else:
-            self.initialized = True
-            self.acquire_new_handle()
-        args = [f, y0, t0, t1] + self.call_args[:-1] + \
-               [jac, self.call_args[-1], f_params, 0, jac_params]
-        y1, t, istate = self.runner(*args)
-        self.istate = istate
-        if istate < 0:
-            unexpected_istate_msg = f'Unexpected istate={istate:d}'
-            warnings.warn('{:s}: {:s}'.format(self.__class__.__name__,
-                          self.messages.get(istate, unexpected_istate_msg)),
-                          stacklevel=2)
-            self.success = 0
-        else:
-            self.call_args[3] = 2  # upgrade istate from 1 to 2
-            self.istate = 2
-        return y1, t
-
-    def step(self, *args):
-        itask = self.call_args[2]
-        self.call_args[2] = 2
-        r = self.run(*args)
-        self.call_args[2] = itask
-        return r
-
-    def run_relax(self, *args):
-        itask = self.call_args[2]
-        self.call_args[2] = 3
-        r = self.run(*args)
-        self.call_args[2] = itask
-        return r
-
-
-if lsoda.runner:
-    IntegratorBase.integrator_classes.append(lsoda)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_odepack_py.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_odepack_py.py
deleted file mode 100644
index 20993e5bb516c9edbcb19699fb43063caac1a19f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_odepack_py.py
+++ /dev/null
@@ -1,266 +0,0 @@
-# Author: Travis Oliphant
-
-__all__ = ['odeint', 'ODEintWarning']
-
-import numpy as np
-from . import _odepack
-from copy import copy
-import warnings
-
-
-class ODEintWarning(Warning):
-    """Warning raised during the execution of `odeint`."""
-    pass
-
-
-_msgs = {2: "Integration successful.",
-         1: "Nothing was done; the integration time was 0.",
-         -1: "Excess work done on this call (perhaps wrong Dfun type).",
-         -2: "Excess accuracy requested (tolerances too small).",
-         -3: "Illegal input detected (internal error).",
-         -4: "Repeated error test failures (internal error).",
-         -5: "Repeated convergence failures (perhaps bad Jacobian or tolerances).",
-         -6: "Error weight became zero during problem.",
-         -7: "Internal workspace insufficient to finish (internal error).",
-         -8: "Run terminated (internal error)."
-         }
-
-
-def odeint(func, y0, t, args=(), Dfun=None, col_deriv=0, full_output=0,
-           ml=None, mu=None, rtol=None, atol=None, tcrit=None, h0=0.0,
-           hmax=0.0, hmin=0.0, ixpr=0, mxstep=0, mxhnil=0, mxordn=12,
-           mxords=5, printmessg=0, tfirst=False):
-    """
-    Integrate a system of ordinary differential equations.
-
-    .. note:: For new code, use `scipy.integrate.solve_ivp` to solve a
-              differential equation.
-
-    Solve a system of ordinary differential equations using lsoda from the
-    FORTRAN library odepack.
-
-    Solves the initial value problem for stiff or non-stiff systems
-    of first order ode-s::
-
-        dy/dt = func(y, t, ...)  [or func(t, y, ...)]
-
-    where y can be a vector.
-
-    .. note:: By default, the required order of the first two arguments of
-              `func` are in the opposite order of the arguments in the system
-              definition function used by the `scipy.integrate.ode` class and
-              the function `scipy.integrate.solve_ivp`. To use a function with
-              the signature ``func(t, y, ...)``, the argument `tfirst` must be
-              set to ``True``.
-
-    Parameters
-    ----------
-    func : callable(y, t, ...) or callable(t, y, ...)
-        Computes the derivative of y at t.
-        If the signature is ``callable(t, y, ...)``, then the argument
-        `tfirst` must be set ``True``.
-        `func` must not modify the data in `y`, as it is a
-        view of the data used internally by the ODE solver.
-    y0 : array
-        Initial condition on y (can be a vector).
-    t : array
-        A sequence of time points for which to solve for y. The initial
-        value point should be the first element of this sequence.
-        This sequence must be monotonically increasing or monotonically
-        decreasing; repeated values are allowed.
-    args : tuple, optional
-        Extra arguments to pass to function.
-    Dfun : callable(y, t, ...) or callable(t, y, ...)
-        Gradient (Jacobian) of `func`.
-        If the signature is ``callable(t, y, ...)``, then the argument
-        `tfirst` must be set ``True``.
-        `Dfun` must not modify the data in `y`, as it is a
-        view of the data used internally by the ODE solver.
-    col_deriv : bool, optional
-        True if `Dfun` defines derivatives down columns (faster),
-        otherwise `Dfun` should define derivatives across rows.
-    full_output : bool, optional
-        True if to return a dictionary of optional outputs as the second output
-    printmessg : bool, optional
-        Whether to print the convergence message
-    tfirst : bool, optional
-        If True, the first two arguments of `func` (and `Dfun`, if given)
-        must ``t, y`` instead of the default ``y, t``.
-
-        .. versionadded:: 1.1.0
-
-    Returns
-    -------
-    y : array, shape (len(t), len(y0))
-        Array containing the value of y for each desired time in t,
-        with the initial value `y0` in the first row.
-    infodict : dict, only returned if full_output == True
-        Dictionary containing additional output information
-
-        =======  ============================================================
-        key      meaning
-        =======  ============================================================
-        'hu'     vector of step sizes successfully used for each time step
-        'tcur'   vector with the value of t reached for each time step
-                 (will always be at least as large as the input times)
-        'tolsf'  vector of tolerance scale factors, greater than 1.0,
-                 computed when a request for too much accuracy was detected
-        'tsw'    value of t at the time of the last method switch
-                 (given for each time step)
-        'nst'    cumulative number of time steps
-        'nfe'    cumulative number of function evaluations for each time step
-        'nje'    cumulative number of jacobian evaluations for each time step
-        'nqu'    a vector of method orders for each successful step
-        'imxer'  index of the component of largest magnitude in the
-                 weighted local error vector (e / ewt) on an error return, -1
-                 otherwise
-        'lenrw'  the length of the double work array required
-        'leniw'  the length of integer work array required
-        'mused'  a vector of method indicators for each successful time step:
-                 1: adams (nonstiff), 2: bdf (stiff)
-        =======  ============================================================
-
-    Other Parameters
-    ----------------
-    ml, mu : int, optional
-        If either of these are not None or non-negative, then the
-        Jacobian is assumed to be banded. These give the number of
-        lower and upper non-zero diagonals in this banded matrix.
-        For the banded case, `Dfun` should return a matrix whose
-        rows contain the non-zero bands (starting with the lowest diagonal).
-        Thus, the return matrix `jac` from `Dfun` should have shape
-        ``(ml + mu + 1, len(y0))`` when ``ml >=0`` or ``mu >=0``.
-        The data in `jac` must be stored such that ``jac[i - j + mu, j]``
-        holds the derivative of the ``i``\\ th equation with respect to the
-        ``j``\\ th state variable.  If `col_deriv` is True, the transpose of
-        this `jac` must be returned.
-    rtol, atol : float, optional
-        The input parameters `rtol` and `atol` determine the error
-        control performed by the solver.  The solver will control the
-        vector, e, of estimated local errors in y, according to an
-        inequality of the form ``max-norm of (e / ewt) <= 1``,
-        where ewt is a vector of positive error weights computed as
-        ``ewt = rtol * abs(y) + atol``.
-        rtol and atol can be either vectors the same length as y or scalars.
-        Defaults to 1.49012e-8.
-    tcrit : ndarray, optional
-        Vector of critical points (e.g., singularities) where integration
-        care should be taken.
-    h0 : float, (0: solver-determined), optional
-        The step size to be attempted on the first step.
-    hmax : float, (0: solver-determined), optional
-        The maximum absolute step size allowed.
-    hmin : float, (0: solver-determined), optional
-        The minimum absolute step size allowed.
-    ixpr : bool, optional
-        Whether to generate extra printing at method switches.
-    mxstep : int, (0: solver-determined), optional
-        Maximum number of (internally defined) steps allowed for each
-        integration point in t.
-    mxhnil : int, (0: solver-determined), optional
-        Maximum number of messages printed.
-    mxordn : int, (0: solver-determined), optional
-        Maximum order to be allowed for the non-stiff (Adams) method.
-    mxords : int, (0: solver-determined), optional
-        Maximum order to be allowed for the stiff (BDF) method.
-
-    See Also
-    --------
-    solve_ivp : solve an initial value problem for a system of ODEs
-    ode : a more object-oriented integrator based on VODE
-    quad : for finding the area under a curve
-
-    Examples
-    --------
-    The second order differential equation for the angle `theta` of a
-    pendulum acted on by gravity with friction can be written::
-
-        theta''(t) + b*theta'(t) + c*sin(theta(t)) = 0
-
-    where `b` and `c` are positive constants, and a prime (') denotes a
-    derivative. To solve this equation with `odeint`, we must first convert
-    it to a system of first order equations. By defining the angular
-    velocity ``omega(t) = theta'(t)``, we obtain the system::
-
-        theta'(t) = omega(t)
-        omega'(t) = -b*omega(t) - c*sin(theta(t))
-
-    Let `y` be the vector [`theta`, `omega`]. We implement this system
-    in Python as:
-
-    >>> import numpy as np
-    >>> def pend(y, t, b, c):
-    ...     theta, omega = y
-    ...     dydt = [omega, -b*omega - c*np.sin(theta)]
-    ...     return dydt
-    ...
-
-    We assume the constants are `b` = 0.25 and `c` = 5.0:
-
-    >>> b = 0.25
-    >>> c = 5.0
-
-    For initial conditions, we assume the pendulum is nearly vertical
-    with `theta(0)` = `pi` - 0.1, and is initially at rest, so
-    `omega(0)` = 0.  Then the vector of initial conditions is
-
-    >>> y0 = [np.pi - 0.1, 0.0]
-
-    We will generate a solution at 101 evenly spaced samples in the interval
-    0 <= `t` <= 10.  So our array of times is:
-
-    >>> t = np.linspace(0, 10, 101)
-
-    Call `odeint` to generate the solution. To pass the parameters
-    `b` and `c` to `pend`, we give them to `odeint` using the `args`
-    argument.
-
-    >>> from scipy.integrate import odeint
-    >>> sol = odeint(pend, y0, t, args=(b, c))
-
-    The solution is an array with shape (101, 2). The first column
-    is `theta(t)`, and the second is `omega(t)`. The following code
-    plots both components.
-
-    >>> import matplotlib.pyplot as plt
-    >>> plt.plot(t, sol[:, 0], 'b', label='theta(t)')
-    >>> plt.plot(t, sol[:, 1], 'g', label='omega(t)')
-    >>> plt.legend(loc='best')
-    >>> plt.xlabel('t')
-    >>> plt.grid()
-    >>> plt.show()
-    """
-
-    if ml is None:
-        ml = -1  # changed to zero inside function call
-    if mu is None:
-        mu = -1  # changed to zero inside function call
-
-    dt = np.diff(t)
-    if not ((dt >= 0).all() or (dt <= 0).all()):
-        raise ValueError("The values in t must be monotonically increasing "
-                         "or monotonically decreasing; repeated values are "
-                         "allowed.")
-
-    t = copy(t)
-    y0 = copy(y0)
-    output = _odepack.odeint(func, y0, t, args, Dfun, col_deriv, ml, mu,
-                             full_output, rtol, atol, tcrit, h0, hmax, hmin,
-                             ixpr, mxstep, mxhnil, mxordn, mxords,
-                             int(bool(tfirst)))
-    if output[-1] < 0:
-        warning_msg = (f"{_msgs[output[-1]]} Run with full_output = 1 to "
-                       f"get quantitative information.")
-        warnings.warn(warning_msg, ODEintWarning, stacklevel=2)
-    elif printmessg:
-        warning_msg = _msgs[output[-1]]
-        warnings.warn(warning_msg, ODEintWarning, stacklevel=2)
-
-    if full_output:
-        output[1]['message'] = _msgs[output[-1]]
-
-    output = output[:-1]
-    if len(output) == 1:
-        return output[0]
-    else:
-        return output
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_quad_vec.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_quad_vec.py
deleted file mode 100644
index 19218d196eb31a9df71baca485e898577911c871..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_quad_vec.py
+++ /dev/null
@@ -1,663 +0,0 @@
-import sys
-import copy
-import heapq
-import collections
-import functools
-import warnings
-
-import numpy as np
-
-from scipy._lib._util import MapWrapper, _FunctionWrapper
-
-
-class LRUDict(collections.OrderedDict):
-    def __init__(self, max_size):
-        self.__max_size = max_size
-
-    def __setitem__(self, key, value):
-        existing_key = (key in self)
-        super().__setitem__(key, value)
-        if existing_key:
-            self.move_to_end(key)
-        elif len(self) > self.__max_size:
-            self.popitem(last=False)
-
-    def update(self, other):
-        # Not needed below
-        raise NotImplementedError()
-
-
-class SemiInfiniteFunc:
-    """
-    Argument transform from (start, +-oo) to (0, 1)
-    """
-    def __init__(self, func, start, infty):
-        self._func = func
-        self._start = start
-        self._sgn = -1 if infty < 0 else 1
-
-        # Overflow threshold for the 1/t**2 factor
-        self._tmin = sys.float_info.min**0.5
-
-    def get_t(self, x):
-        z = self._sgn * (x - self._start) + 1
-        if z == 0:
-            # Can happen only if point not in range
-            return np.inf
-        return 1 / z
-
-    def __call__(self, t):
-        if t < self._tmin:
-            return 0.0
-        else:
-            x = self._start + self._sgn * (1 - t) / t
-            f = self._func(x)
-            return self._sgn * (f / t) / t
-
-
-class DoubleInfiniteFunc:
-    """
-    Argument transform from (-oo, oo) to (-1, 1)
-    """
-    def __init__(self, func):
-        self._func = func
-
-        # Overflow threshold for the 1/t**2 factor
-        self._tmin = sys.float_info.min**0.5
-
-    def get_t(self, x):
-        s = -1 if x < 0 else 1
-        return s / (abs(x) + 1)
-
-    def __call__(self, t):
-        if abs(t) < self._tmin:
-            return 0.0
-        else:
-            x = (1 - abs(t)) / t
-            f = self._func(x)
-            return (f / t) / t
-
-
-def _max_norm(x):
-    return np.amax(abs(x))
-
-
-def _get_sizeof(obj):
-    try:
-        return sys.getsizeof(obj)
-    except TypeError:
-        # occurs on pypy
-        if hasattr(obj, '__sizeof__'):
-            return int(obj.__sizeof__())
-        return 64
-
-
-class _Bunch:
-    def __init__(self, **kwargs):
-        self.__keys = kwargs.keys()
-        self.__dict__.update(**kwargs)
-
-    def __repr__(self):
-        return "_Bunch({})".format(", ".join(f"{k}={repr(self.__dict__[k])}"
-                                             for k in self.__keys))
-
-
-def quad_vec(f, a, b, epsabs=1e-200, epsrel=1e-8, norm='2', cache_size=100e6,
-             limit=10000, workers=1, points=None, quadrature=None, full_output=False,
-             *, args=()):
-    r"""Adaptive integration of a vector-valued function.
-
-    Parameters
-    ----------
-    f : callable
-        Vector-valued function f(x) to integrate.
-    a : float
-        Initial point.
-    b : float
-        Final point.
-    epsabs : float, optional
-        Absolute tolerance.
-    epsrel : float, optional
-        Relative tolerance.
-    norm : {'max', '2'}, optional
-        Vector norm to use for error estimation.
-    cache_size : int, optional
-        Number of bytes to use for memoization.
-    limit : float or int, optional
-        An upper bound on the number of subintervals used in the adaptive
-        algorithm.
-    workers : int or map-like callable, optional
-        If `workers` is an integer, part of the computation is done in
-        parallel subdivided to this many tasks (using
-        :class:`python:multiprocessing.pool.Pool`).
-        Supply `-1` to use all cores available to the Process.
-        Alternatively, supply a map-like callable, such as
-        :meth:`python:multiprocessing.pool.Pool.map` for evaluating the
-        population in parallel.
-        This evaluation is carried out as ``workers(func, iterable)``.
-    points : list, optional
-        List of additional breakpoints.
-    quadrature : {'gk21', 'gk15', 'trapezoid'}, optional
-        Quadrature rule to use on subintervals.
-        Options: 'gk21' (Gauss-Kronrod 21-point rule),
-        'gk15' (Gauss-Kronrod 15-point rule),
-        'trapezoid' (composite trapezoid rule).
-        Default: 'gk21' for finite intervals and 'gk15' for (semi-)infinite
-    full_output : bool, optional
-        Return an additional ``info`` dictionary.
-    args : tuple, optional
-        Extra arguments to pass to function, if any.
-
-        .. versionadded:: 1.8.0
-
-    Returns
-    -------
-    res : {float, array-like}
-        Estimate for the result
-    err : float
-        Error estimate for the result in the given norm
-    info : dict
-        Returned only when ``full_output=True``.
-        Info dictionary. Is an object with the attributes:
-
-            success : bool
-                Whether integration reached target precision.
-            status : int
-                Indicator for convergence, success (0),
-                failure (1), and failure due to rounding error (2).
-            neval : int
-                Number of function evaluations.
-            intervals : ndarray, shape (num_intervals, 2)
-                Start and end points of subdivision intervals.
-            integrals : ndarray, shape (num_intervals, ...)
-                Integral for each interval.
-                Note that at most ``cache_size`` values are recorded,
-                and the array may contains *nan* for missing items.
-            errors : ndarray, shape (num_intervals,)
-                Estimated integration error for each interval.
-
-    Notes
-    -----
-    The algorithm mainly follows the implementation of QUADPACK's
-    DQAG* algorithms, implementing global error control and adaptive
-    subdivision.
-
-    The algorithm here has some differences to the QUADPACK approach:
-
-    Instead of subdividing one interval at a time, the algorithm
-    subdivides N intervals with largest errors at once. This enables
-    (partial) parallelization of the integration.
-
-    The logic of subdividing "next largest" intervals first is then
-    not implemented, and we rely on the above extension to avoid
-    concentrating on "small" intervals only.
-
-    The Wynn epsilon table extrapolation is not used (QUADPACK uses it
-    for infinite intervals). This is because the algorithm here is
-    supposed to work on vector-valued functions, in an user-specified
-    norm, and the extension of the epsilon algorithm to this case does
-    not appear to be widely agreed. For max-norm, using elementwise
-    Wynn epsilon could be possible, but we do not do this here with
-    the hope that the epsilon extrapolation is mainly useful in
-    special cases.
-
-    References
-    ----------
-    [1] R. Piessens, E. de Doncker, QUADPACK (1983).
-
-    Examples
-    --------
-    We can compute integrations of a vector-valued function:
-
-    >>> from scipy.integrate import quad_vec
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> alpha = np.linspace(0.0, 2.0, num=30)
-    >>> f = lambda x: x**alpha
-    >>> x0, x1 = 0, 2
-    >>> y, err = quad_vec(f, x0, x1)
-    >>> plt.plot(alpha, y)
-    >>> plt.xlabel(r"$\alpha$")
-    >>> plt.ylabel(r"$\int_{0}^{2} x^\alpha dx$")
-    >>> plt.show()
-
-    """
-    a = float(a)
-    b = float(b)
-
-    if args:
-        if not isinstance(args, tuple):
-            args = (args,)
-
-        # create a wrapped function to allow the use of map and Pool.map
-        f = _FunctionWrapper(f, args)
-
-    # Use simple transformations to deal with integrals over infinite
-    # intervals.
-    kwargs = dict(epsabs=epsabs,
-                  epsrel=epsrel,
-                  norm=norm,
-                  cache_size=cache_size,
-                  limit=limit,
-                  workers=workers,
-                  points=points,
-                  quadrature='gk15' if quadrature is None else quadrature,
-                  full_output=full_output)
-    if np.isfinite(a) and np.isinf(b):
-        f2 = SemiInfiniteFunc(f, start=a, infty=b)
-        if points is not None:
-            kwargs['points'] = tuple(f2.get_t(xp) for xp in points)
-        return quad_vec(f2, 0, 1, **kwargs)
-    elif np.isfinite(b) and np.isinf(a):
-        f2 = SemiInfiniteFunc(f, start=b, infty=a)
-        if points is not None:
-            kwargs['points'] = tuple(f2.get_t(xp) for xp in points)
-        res = quad_vec(f2, 0, 1, **kwargs)
-        return (-res[0],) + res[1:]
-    elif np.isinf(a) and np.isinf(b):
-        sgn = -1 if b < a else 1
-
-        # NB. explicitly split integral at t=0, which separates
-        # the positive and negative sides
-        f2 = DoubleInfiniteFunc(f)
-        if points is not None:
-            kwargs['points'] = (0,) + tuple(f2.get_t(xp) for xp in points)
-        else:
-            kwargs['points'] = (0,)
-
-        if a != b:
-            res = quad_vec(f2, -1, 1, **kwargs)
-        else:
-            res = quad_vec(f2, 1, 1, **kwargs)
-
-        return (res[0]*sgn,) + res[1:]
-    elif not (np.isfinite(a) and np.isfinite(b)):
-        raise ValueError(f"invalid integration bounds a={a}, b={b}")
-
-    norm_funcs = {
-        None: _max_norm,
-        'max': _max_norm,
-        '2': np.linalg.norm
-    }
-    if callable(norm):
-        norm_func = norm
-    else:
-        norm_func = norm_funcs[norm]
-
-    parallel_count = 128
-    min_intervals = 2
-
-    try:
-        _quadrature = {None: _quadrature_gk21,
-                       'gk21': _quadrature_gk21,
-                       'gk15': _quadrature_gk15,
-                       'trapz': _quadrature_trapezoid,  # alias for backcompat
-                       'trapezoid': _quadrature_trapezoid}[quadrature]
-    except KeyError as e:
-        raise ValueError(f"unknown quadrature {quadrature!r}") from e
-
-    if quadrature == "trapz":
-        msg = ("`quadrature='trapz'` is deprecated in favour of "
-               "`quadrature='trapezoid' and will raise an error from SciPy 1.16.0 "
-               "onwards.")
-        warnings.warn(msg, DeprecationWarning, stacklevel=2)
-
-    # Initial interval set
-    if points is None:
-        initial_intervals = [(a, b)]
-    else:
-        prev = a
-        initial_intervals = []
-        for p in sorted(points):
-            p = float(p)
-            if not (a < p < b) or p == prev:
-                continue
-            initial_intervals.append((prev, p))
-            prev = p
-        initial_intervals.append((prev, b))
-
-    global_integral = None
-    global_error = None
-    rounding_error = None
-    interval_cache = None
-    intervals = []
-    neval = 0
-
-    for x1, x2 in initial_intervals:
-        ig, err, rnd = _quadrature(x1, x2, f, norm_func)
-        neval += _quadrature.num_eval
-
-        if global_integral is None:
-            if isinstance(ig, (float, complex)):
-                # Specialize for scalars
-                if norm_func in (_max_norm, np.linalg.norm):
-                    norm_func = abs
-
-            global_integral = ig
-            global_error = float(err)
-            rounding_error = float(rnd)
-
-            cache_count = cache_size // _get_sizeof(ig)
-            interval_cache = LRUDict(cache_count)
-        else:
-            global_integral += ig
-            global_error += err
-            rounding_error += rnd
-
-        interval_cache[(x1, x2)] = copy.copy(ig)
-        intervals.append((-err, x1, x2))
-
-    heapq.heapify(intervals)
-
-    CONVERGED = 0
-    NOT_CONVERGED = 1
-    ROUNDING_ERROR = 2
-    NOT_A_NUMBER = 3
-
-    status_msg = {
-        CONVERGED: "Target precision reached.",
-        NOT_CONVERGED: "Target precision not reached.",
-        ROUNDING_ERROR: "Target precision could not be reached due to rounding error.",
-        NOT_A_NUMBER: "Non-finite values encountered."
-    }
-
-    # Process intervals
-    with MapWrapper(workers) as mapwrapper:
-        ier = NOT_CONVERGED
-
-        while intervals and len(intervals) < limit:
-            # Select intervals with largest errors for subdivision
-            tol = max(epsabs, epsrel*norm_func(global_integral))
-
-            to_process = []
-            err_sum = 0
-
-            for j in range(parallel_count):
-                if not intervals:
-                    break
-
-                if j > 0 and err_sum > global_error - tol/8:
-                    # avoid unnecessary parallel splitting
-                    break
-
-                interval = heapq.heappop(intervals)
-
-                neg_old_err, a, b = interval
-                old_int = interval_cache.pop((a, b), None)
-                to_process.append(
-                    ((-neg_old_err, a, b, old_int), f, norm_func, _quadrature)
-                )
-                err_sum += -neg_old_err
-
-            # Subdivide intervals
-            for parts in mapwrapper(_subdivide_interval, to_process):
-                dint, derr, dround_err, subint, dneval = parts
-                neval += dneval
-                global_integral += dint
-                global_error += derr
-                rounding_error += dround_err
-                for x in subint:
-                    x1, x2, ig, err = x
-                    interval_cache[(x1, x2)] = ig
-                    heapq.heappush(intervals, (-err, x1, x2))
-
-            # Termination check
-            if len(intervals) >= min_intervals:
-                tol = max(epsabs, epsrel*norm_func(global_integral))
-                if global_error < tol/8:
-                    ier = CONVERGED
-                    break
-                if global_error < rounding_error:
-                    ier = ROUNDING_ERROR
-                    break
-
-            if not (np.isfinite(global_error) and np.isfinite(rounding_error)):
-                ier = NOT_A_NUMBER
-                break
-
-    res = global_integral
-    err = global_error + rounding_error
-
-    if full_output:
-        res_arr = np.asarray(res)
-        dummy = np.full(res_arr.shape, np.nan, dtype=res_arr.dtype)
-        integrals = np.array([interval_cache.get((z[1], z[2]), dummy)
-                                      for z in intervals], dtype=res_arr.dtype)
-        errors = np.array([-z[0] for z in intervals])
-        intervals = np.array([[z[1], z[2]] for z in intervals])
-
-        info = _Bunch(neval=neval,
-                      success=(ier == CONVERGED),
-                      status=ier,
-                      message=status_msg[ier],
-                      intervals=intervals,
-                      integrals=integrals,
-                      errors=errors)
-        return (res, err, info)
-    else:
-        return (res, err)
-
-
-def _subdivide_interval(args):
-    interval, f, norm_func, _quadrature = args
-    old_err, a, b, old_int = interval
-
-    c = 0.5 * (a + b)
-
-    # Left-hand side
-    if getattr(_quadrature, 'cache_size', 0) > 0:
-        f = functools.lru_cache(_quadrature.cache_size)(f)
-
-    s1, err1, round1 = _quadrature(a, c, f, norm_func)
-    dneval = _quadrature.num_eval
-    s2, err2, round2 = _quadrature(c, b, f, norm_func)
-    dneval += _quadrature.num_eval
-    if old_int is None:
-        old_int, _, _ = _quadrature(a, b, f, norm_func)
-        dneval += _quadrature.num_eval
-
-    if getattr(_quadrature, 'cache_size', 0) > 0:
-        dneval = f.cache_info().misses
-
-    dint = s1 + s2 - old_int
-    derr = err1 + err2 - old_err
-    dround_err = round1 + round2
-
-    subintervals = ((a, c, s1, err1), (c, b, s2, err2))
-    return dint, derr, dround_err, subintervals, dneval
-
-
-def _quadrature_trapezoid(x1, x2, f, norm_func):
-    """
-    Composite trapezoid quadrature
-    """
-    x3 = 0.5*(x1 + x2)
-    f1 = f(x1)
-    f2 = f(x2)
-    f3 = f(x3)
-
-    s2 = 0.25 * (x2 - x1) * (f1 + 2*f3 + f2)
-
-    round_err = 0.25 * abs(x2 - x1) * (float(norm_func(f1))
-                                       + 2*float(norm_func(f3))
-                                       + float(norm_func(f2))) * 2e-16
-
-    s1 = 0.5 * (x2 - x1) * (f1 + f2)
-    err = 1/3 * float(norm_func(s1 - s2))
-    return s2, err, round_err
-
-
-_quadrature_trapezoid.cache_size = 3 * 3
-_quadrature_trapezoid.num_eval = 3
-
-
-def _quadrature_gk(a, b, f, norm_func, x, w, v):
-    """
-    Generic Gauss-Kronrod quadrature
-    """
-
-    fv = [0.0]*len(x)
-
-    c = 0.5 * (a + b)
-    h = 0.5 * (b - a)
-
-    # Gauss-Kronrod
-    s_k = 0.0
-    s_k_abs = 0.0
-    for i in range(len(x)):
-        ff = f(c + h*x[i])
-        fv[i] = ff
-
-        vv = v[i]
-
-        # \int f(x)
-        s_k += vv * ff
-        # \int |f(x)|
-        s_k_abs += vv * abs(ff)
-
-    # Gauss
-    s_g = 0.0
-    for i in range(len(w)):
-        s_g += w[i] * fv[2*i + 1]
-
-    # Quadrature of abs-deviation from average
-    s_k_dabs = 0.0
-    y0 = s_k / 2.0
-    for i in range(len(x)):
-        # \int |f(x) - y0|
-        s_k_dabs += v[i] * abs(fv[i] - y0)
-
-    # Use similar error estimation as quadpack
-    err = float(norm_func((s_k - s_g) * h))
-    dabs = float(norm_func(s_k_dabs * h))
-    if dabs != 0 and err != 0:
-        err = dabs * min(1.0, (200 * err / dabs)**1.5)
-
-    eps = sys.float_info.epsilon
-    round_err = float(norm_func(50 * eps * h * s_k_abs))
-
-    if round_err > sys.float_info.min:
-        err = max(err, round_err)
-
-    return h * s_k, err, round_err
-
-
-def _quadrature_gk21(a, b, f, norm_func):
-    """
-    Gauss-Kronrod 21 quadrature with error estimate
-    """
-    # Gauss-Kronrod points
-    x = (0.995657163025808080735527280689003,
-         0.973906528517171720077964012084452,
-         0.930157491355708226001207180059508,
-         0.865063366688984510732096688423493,
-         0.780817726586416897063717578345042,
-         0.679409568299024406234327365114874,
-         0.562757134668604683339000099272694,
-         0.433395394129247190799265943165784,
-         0.294392862701460198131126603103866,
-         0.148874338981631210884826001129720,
-         0,
-         -0.148874338981631210884826001129720,
-         -0.294392862701460198131126603103866,
-         -0.433395394129247190799265943165784,
-         -0.562757134668604683339000099272694,
-         -0.679409568299024406234327365114874,
-         -0.780817726586416897063717578345042,
-         -0.865063366688984510732096688423493,
-         -0.930157491355708226001207180059508,
-         -0.973906528517171720077964012084452,
-         -0.995657163025808080735527280689003)
-
-    # 10-point weights
-    w = (0.066671344308688137593568809893332,
-         0.149451349150580593145776339657697,
-         0.219086362515982043995534934228163,
-         0.269266719309996355091226921569469,
-         0.295524224714752870173892994651338,
-         0.295524224714752870173892994651338,
-         0.269266719309996355091226921569469,
-         0.219086362515982043995534934228163,
-         0.149451349150580593145776339657697,
-         0.066671344308688137593568809893332)
-
-    # 21-point weights
-    v = (0.011694638867371874278064396062192,
-         0.032558162307964727478818972459390,
-         0.054755896574351996031381300244580,
-         0.075039674810919952767043140916190,
-         0.093125454583697605535065465083366,
-         0.109387158802297641899210590325805,
-         0.123491976262065851077958109831074,
-         0.134709217311473325928054001771707,
-         0.142775938577060080797094273138717,
-         0.147739104901338491374841515972068,
-         0.149445554002916905664936468389821,
-         0.147739104901338491374841515972068,
-         0.142775938577060080797094273138717,
-         0.134709217311473325928054001771707,
-         0.123491976262065851077958109831074,
-         0.109387158802297641899210590325805,
-         0.093125454583697605535065465083366,
-         0.075039674810919952767043140916190,
-         0.054755896574351996031381300244580,
-         0.032558162307964727478818972459390,
-         0.011694638867371874278064396062192)
-
-    return _quadrature_gk(a, b, f, norm_func, x, w, v)
-
-
-_quadrature_gk21.num_eval = 21
-
-
-def _quadrature_gk15(a, b, f, norm_func):
-    """
-    Gauss-Kronrod 15 quadrature with error estimate
-    """
-    # Gauss-Kronrod points
-    x = (0.991455371120812639206854697526329,
-         0.949107912342758524526189684047851,
-         0.864864423359769072789712788640926,
-         0.741531185599394439863864773280788,
-         0.586087235467691130294144838258730,
-         0.405845151377397166906606412076961,
-         0.207784955007898467600689403773245,
-         0.000000000000000000000000000000000,
-         -0.207784955007898467600689403773245,
-         -0.405845151377397166906606412076961,
-         -0.586087235467691130294144838258730,
-         -0.741531185599394439863864773280788,
-         -0.864864423359769072789712788640926,
-         -0.949107912342758524526189684047851,
-         -0.991455371120812639206854697526329)
-
-    # 7-point weights
-    w = (0.129484966168869693270611432679082,
-         0.279705391489276667901467771423780,
-         0.381830050505118944950369775488975,
-         0.417959183673469387755102040816327,
-         0.381830050505118944950369775488975,
-         0.279705391489276667901467771423780,
-         0.129484966168869693270611432679082)
-
-    # 15-point weights
-    v = (0.022935322010529224963732008058970,
-         0.063092092629978553290700663189204,
-         0.104790010322250183839876322541518,
-         0.140653259715525918745189590510238,
-         0.169004726639267902826583426598550,
-         0.190350578064785409913256402421014,
-         0.204432940075298892414161999234649,
-         0.209482141084727828012999174891714,
-         0.204432940075298892414161999234649,
-         0.190350578064785409913256402421014,
-         0.169004726639267902826583426598550,
-         0.140653259715525918745189590510238,
-         0.104790010322250183839876322541518,
-         0.063092092629978553290700663189204,
-         0.022935322010529224963732008058970)
-
-    return _quadrature_gk(a, b, f, norm_func, x, w, v)
-
-
-_quadrature_gk15.num_eval = 15
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_quadpack_py.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_quadpack_py.py
deleted file mode 100644
index af7ed047c0c523608af4c36f1ae9ef71e9e0bfd3..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_quadpack_py.py
+++ /dev/null
@@ -1,1279 +0,0 @@
-# Author: Travis Oliphant 2001
-# Author: Nathan Woods 2013 (nquad &c)
-import sys
-import warnings
-from functools import partial
-
-from . import _quadpack
-import numpy as np
-
-__all__ = ["quad", "dblquad", "tplquad", "nquad", "IntegrationWarning"]
-
-
-class IntegrationWarning(UserWarning):
-    """
-    Warning on issues during integration.
-    """
-    pass
-
-
-def quad(func, a, b, args=(), full_output=0, epsabs=1.49e-8, epsrel=1.49e-8,
-         limit=50, points=None, weight=None, wvar=None, wopts=None, maxp1=50,
-         limlst=50, complex_func=False):
-    """
-    Compute a definite integral.
-
-    Integrate func from `a` to `b` (possibly infinite interval) using a
-    technique from the Fortran library QUADPACK.
-
-    Parameters
-    ----------
-    func : {function, scipy.LowLevelCallable}
-        A Python function or method to integrate. If `func` takes many
-        arguments, it is integrated along the axis corresponding to the
-        first argument.
-
-        If the user desires improved integration performance, then `f` may
-        be a `scipy.LowLevelCallable` with one of the signatures::
-
-            double func(double x)
-            double func(double x, void *user_data)
-            double func(int n, double *xx)
-            double func(int n, double *xx, void *user_data)
-
-        The ``user_data`` is the data contained in the `scipy.LowLevelCallable`.
-        In the call forms with ``xx``,  ``n`` is the length of the ``xx``
-        array which contains ``xx[0] == x`` and the rest of the items are
-        numbers contained in the ``args`` argument of quad.
-
-        In addition, certain ctypes call signatures are supported for
-        backward compatibility, but those should not be used in new code.
-    a : float
-        Lower limit of integration (use -numpy.inf for -infinity).
-    b : float
-        Upper limit of integration (use numpy.inf for +infinity).
-    args : tuple, optional
-        Extra arguments to pass to `func`.
-    full_output : int, optional
-        Non-zero to return a dictionary of integration information.
-        If non-zero, warning messages are also suppressed and the
-        message is appended to the output tuple.
-    complex_func : bool, optional
-        Indicate if the function's (`func`) return type is real
-        (``complex_func=False``: default) or complex (``complex_func=True``).
-        In both cases, the function's argument is real.
-        If full_output is also non-zero, the `infodict`, `message`, and
-        `explain` for the real and complex components are returned in
-        a dictionary with keys "real output" and "imag output".
-
-    Returns
-    -------
-    y : float
-        The integral of func from `a` to `b`.
-    abserr : float
-        An estimate of the absolute error in the result.
-    infodict : dict
-        A dictionary containing additional information.
-    message
-        A convergence message.
-    explain
-        Appended only with 'cos' or 'sin' weighting and infinite
-        integration limits, it contains an explanation of the codes in
-        infodict['ierlst']
-
-    Other Parameters
-    ----------------
-    epsabs : float or int, optional
-        Absolute error tolerance. Default is 1.49e-8. `quad` tries to obtain
-        an accuracy of ``abs(i-result) <= max(epsabs, epsrel*abs(i))``
-        where ``i`` = integral of `func` from `a` to `b`, and ``result`` is the
-        numerical approximation. See `epsrel` below.
-    epsrel : float or int, optional
-        Relative error tolerance. Default is 1.49e-8.
-        If ``epsabs <= 0``, `epsrel` must be greater than both 5e-29
-        and ``50 * (machine epsilon)``. See `epsabs` above.
-    limit : float or int, optional
-        An upper bound on the number of subintervals used in the adaptive
-        algorithm.
-    points : (sequence of floats,ints), optional
-        A sequence of break points in the bounded integration interval
-        where local difficulties of the integrand may occur (e.g.,
-        singularities, discontinuities). The sequence does not have
-        to be sorted. Note that this option cannot be used in conjunction
-        with ``weight``.
-    weight : float or int, optional
-        String indicating weighting function. Full explanation for this
-        and the remaining arguments can be found below.
-    wvar : optional
-        Variables for use with weighting functions.
-    wopts : optional
-        Optional input for reusing Chebyshev moments.
-    maxp1 : float or int, optional
-        An upper bound on the number of Chebyshev moments.
-    limlst : int, optional
-        Upper bound on the number of cycles (>=3) for use with a sinusoidal
-        weighting and an infinite end-point.
-
-    See Also
-    --------
-    dblquad : double integral
-    tplquad : triple integral
-    nquad : n-dimensional integrals (uses `quad` recursively)
-    fixed_quad : fixed-order Gaussian quadrature
-    simpson : integrator for sampled data
-    romb : integrator for sampled data
-    scipy.special : for coefficients and roots of orthogonal polynomials
-
-    Notes
-    -----
-    For valid results, the integral must converge; behavior for divergent
-    integrals is not guaranteed.
-
-    **Extra information for quad() inputs and outputs**
-
-    If full_output is non-zero, then the third output argument
-    (infodict) is a dictionary with entries as tabulated below. For
-    infinite limits, the range is transformed to (0,1) and the
-    optional outputs are given with respect to this transformed range.
-    Let M be the input argument limit and let K be infodict['last'].
-    The entries are:
-
-    'neval'
-        The number of function evaluations.
-    'last'
-        The number, K, of subintervals produced in the subdivision process.
-    'alist'
-        A rank-1 array of length M, the first K elements of which are the
-        left end points of the subintervals in the partition of the
-        integration range.
-    'blist'
-        A rank-1 array of length M, the first K elements of which are the
-        right end points of the subintervals.
-    'rlist'
-        A rank-1 array of length M, the first K elements of which are the
-        integral approximations on the subintervals.
-    'elist'
-        A rank-1 array of length M, the first K elements of which are the
-        moduli of the absolute error estimates on the subintervals.
-    'iord'
-        A rank-1 integer array of length M, the first L elements of
-        which are pointers to the error estimates over the subintervals
-        with ``L=K`` if ``K<=M/2+2`` or ``L=M+1-K`` otherwise. Let I be the
-        sequence ``infodict['iord']`` and let E be the sequence
-        ``infodict['elist']``.  Then ``E[I[1]], ..., E[I[L]]`` forms a
-        decreasing sequence.
-
-    If the input argument points is provided (i.e., it is not None),
-    the following additional outputs are placed in the output
-    dictionary. Assume the points sequence is of length P.
-
-    'pts'
-        A rank-1 array of length P+2 containing the integration limits
-        and the break points of the intervals in ascending order.
-        This is an array giving the subintervals over which integration
-        will occur.
-    'level'
-        A rank-1 integer array of length M (=limit), containing the
-        subdivision levels of the subintervals, i.e., if (aa,bb) is a
-        subinterval of ``(pts[1], pts[2])`` where ``pts[0]`` and ``pts[2]``
-        are adjacent elements of ``infodict['pts']``, then (aa,bb) has level l
-        if ``|bb-aa| = |pts[2]-pts[1]| * 2**(-l)``.
-    'ndin'
-        A rank-1 integer array of length P+2. After the first integration
-        over the intervals (pts[1], pts[2]), the error estimates over some
-        of the intervals may have been increased artificially in order to
-        put their subdivision forward. This array has ones in slots
-        corresponding to the subintervals for which this happens.
-
-    **Weighting the integrand**
-
-    The input variables, *weight* and *wvar*, are used to weight the
-    integrand by a select list of functions. Different integration
-    methods are used to compute the integral with these weighting
-    functions, and these do not support specifying break points. The
-    possible values of weight and the corresponding weighting functions are.
-
-    ==========  ===================================   =====================
-    ``weight``  Weight function used                  ``wvar``
-    ==========  ===================================   =====================
-    'cos'       cos(w*x)                              wvar = w
-    'sin'       sin(w*x)                              wvar = w
-    'alg'       g(x) = ((x-a)**alpha)*((b-x)**beta)   wvar = (alpha, beta)
-    'alg-loga'  g(x)*log(x-a)                         wvar = (alpha, beta)
-    'alg-logb'  g(x)*log(b-x)                         wvar = (alpha, beta)
-    'alg-log'   g(x)*log(x-a)*log(b-x)                wvar = (alpha, beta)
-    'cauchy'    1/(x-c)                               wvar = c
-    ==========  ===================================   =====================
-
-    wvar holds the parameter w, (alpha, beta), or c depending on the weight
-    selected. In these expressions, a and b are the integration limits.
-
-    For the 'cos' and 'sin' weighting, additional inputs and outputs are
-    available.
-
-    For finite integration limits, the integration is performed using a
-    Clenshaw-Curtis method which uses Chebyshev moments. For repeated
-    calculations, these moments are saved in the output dictionary:
-
-    'momcom'
-        The maximum level of Chebyshev moments that have been computed,
-        i.e., if ``M_c`` is ``infodict['momcom']`` then the moments have been
-        computed for intervals of length ``|b-a| * 2**(-l)``,
-        ``l=0,1,...,M_c``.
-    'nnlog'
-        A rank-1 integer array of length M(=limit), containing the
-        subdivision levels of the subintervals, i.e., an element of this
-        array is equal to l if the corresponding subinterval is
-        ``|b-a|* 2**(-l)``.
-    'chebmo'
-        A rank-2 array of shape (25, maxp1) containing the computed
-        Chebyshev moments. These can be passed on to an integration
-        over the same interval by passing this array as the second
-        element of the sequence wopts and passing infodict['momcom'] as
-        the first element.
-
-    If one of the integration limits is infinite, then a Fourier integral is
-    computed (assuming w neq 0). If full_output is 1 and a numerical error
-    is encountered, besides the error message attached to the output tuple,
-    a dictionary is also appended to the output tuple which translates the
-    error codes in the array ``info['ierlst']`` to English messages. The
-    output information dictionary contains the following entries instead of
-    'last', 'alist', 'blist', 'rlist', and 'elist':
-
-    'lst'
-        The number of subintervals needed for the integration (call it ``K_f``).
-    'rslst'
-        A rank-1 array of length M_f=limlst, whose first ``K_f`` elements
-        contain the integral contribution over the interval
-        ``(a+(k-1)c, a+kc)`` where ``c = (2*floor(|w|) + 1) * pi / |w|``
-        and ``k=1,2,...,K_f``.
-    'erlst'
-        A rank-1 array of length ``M_f`` containing the error estimate
-        corresponding to the interval in the same position in
-        ``infodict['rslist']``.
-    'ierlst'
-        A rank-1 integer array of length ``M_f`` containing an error flag
-        corresponding to the interval in the same position in
-        ``infodict['rslist']``.  See the explanation dictionary (last entry
-        in the output tuple) for the meaning of the codes.
-
-
-    **Details of QUADPACK level routines**
-
-    `quad` calls routines from the FORTRAN library QUADPACK. This section
-    provides details on the conditions for each routine to be called and a
-    short description of each routine. The routine called depends on
-    `weight`, `points` and the integration limits `a` and `b`.
-
-    ================  ==============  ==========  =====================
-    QUADPACK routine  `weight`        `points`    infinite bounds
-    ================  ==============  ==========  =====================
-    qagse             None            No          No
-    qagie             None            No          Yes
-    qagpe             None            Yes         No
-    qawoe             'sin', 'cos'    No          No
-    qawfe             'sin', 'cos'    No          either `a` or `b`
-    qawse             'alg*'          No          No
-    qawce             'cauchy'        No          No
-    ================  ==============  ==========  =====================
-
-    The following provides a short description from [1]_ for each
-    routine.
-
-    qagse
-        is an integrator based on globally adaptive interval
-        subdivision in connection with extrapolation, which will
-        eliminate the effects of integrand singularities of
-        several types.
-    qagie
-        handles integration over infinite intervals. The infinite range is
-        mapped onto a finite interval and subsequently the same strategy as
-        in ``QAGS`` is applied.
-    qagpe
-        serves the same purposes as QAGS, but also allows the
-        user to provide explicit information about the location
-        and type of trouble-spots i.e. the abscissae of internal
-        singularities, discontinuities and other difficulties of
-        the integrand function.
-    qawoe
-        is an integrator for the evaluation of
-        :math:`\\int^b_a \\cos(\\omega x)f(x)dx` or
-        :math:`\\int^b_a \\sin(\\omega x)f(x)dx`
-        over a finite interval [a,b], where :math:`\\omega` and :math:`f`
-        are specified by the user. The rule evaluation component is based
-        on the modified Clenshaw-Curtis technique
-
-        An adaptive subdivision scheme is used in connection
-        with an extrapolation procedure, which is a modification
-        of that in ``QAGS`` and allows the algorithm to deal with
-        singularities in :math:`f(x)`.
-    qawfe
-        calculates the Fourier transform
-        :math:`\\int^\\infty_a \\cos(\\omega x)f(x)dx` or
-        :math:`\\int^\\infty_a \\sin(\\omega x)f(x)dx`
-        for user-provided :math:`\\omega` and :math:`f`. The procedure of
-        ``QAWO`` is applied on successive finite intervals, and convergence
-        acceleration by means of the :math:`\\varepsilon`-algorithm is applied
-        to the series of integral approximations.
-    qawse
-        approximate :math:`\\int^b_a w(x)f(x)dx`, with :math:`a < b` where
-        :math:`w(x) = (x-a)^{\\alpha}(b-x)^{\\beta}v(x)` with
-        :math:`\\alpha,\\beta > -1`, where :math:`v(x)` may be one of the
-        following functions: :math:`1`, :math:`\\log(x-a)`, :math:`\\log(b-x)`,
-        :math:`\\log(x-a)\\log(b-x)`.
-
-        The user specifies :math:`\\alpha`, :math:`\\beta` and the type of the
-        function :math:`v`. A globally adaptive subdivision strategy is
-        applied, with modified Clenshaw-Curtis integration on those
-        subintervals which contain `a` or `b`.
-    qawce
-        compute :math:`\\int^b_a f(x) / (x-c)dx` where the integral must be
-        interpreted as a Cauchy principal value integral, for user specified
-        :math:`c` and :math:`f`. The strategy is globally adaptive. Modified
-        Clenshaw-Curtis integration is used on those intervals containing the
-        point :math:`x = c`.
-
-    **Integration of Complex Function of a Real Variable**
-
-    A complex valued function, :math:`f`, of a real variable can be written as
-    :math:`f = g + ih`.  Similarly, the integral of :math:`f` can be
-    written as
-
-    .. math::
-        \\int_a^b f(x) dx = \\int_a^b g(x) dx + i\\int_a^b h(x) dx
-
-    assuming that the integrals of :math:`g` and :math:`h` exist
-    over the interval :math:`[a,b]` [2]_. Therefore, ``quad`` integrates
-    complex-valued functions by integrating the real and imaginary components
-    separately.
-
-
-    References
-    ----------
-
-    .. [1] Piessens, Robert; de Doncker-Kapenga, Elise;
-           Überhuber, Christoph W.; Kahaner, David (1983).
-           QUADPACK: A subroutine package for automatic integration.
-           Springer-Verlag.
-           ISBN 978-3-540-12553-2.
-
-    .. [2] McCullough, Thomas; Phillips, Keith (1973).
-           Foundations of Analysis in the Complex Plane.
-           Holt Rinehart Winston.
-           ISBN 0-03-086370-8
-
-    Examples
-    --------
-    Calculate :math:`\\int^4_0 x^2 dx` and compare with an analytic result
-
-    >>> from scipy import integrate
-    >>> import numpy as np
-    >>> x2 = lambda x: x**2
-    >>> integrate.quad(x2, 0, 4)
-    (21.333333333333332, 2.3684757858670003e-13)
-    >>> print(4**3 / 3.)  # analytical result
-    21.3333333333
-
-    Calculate :math:`\\int^\\infty_0 e^{-x} dx`
-
-    >>> invexp = lambda x: np.exp(-x)
-    >>> integrate.quad(invexp, 0, np.inf)
-    (1.0, 5.842605999138044e-11)
-
-    Calculate :math:`\\int^1_0 a x \\,dx` for :math:`a = 1, 3`
-
-    >>> f = lambda x, a: a*x
-    >>> y, err = integrate.quad(f, 0, 1, args=(1,))
-    >>> y
-    0.5
-    >>> y, err = integrate.quad(f, 0, 1, args=(3,))
-    >>> y
-    1.5
-
-    Calculate :math:`\\int^1_0 x^2 + y^2 dx` with ctypes, holding
-    y parameter as 1::
-
-        testlib.c =>
-            double func(int n, double args[n]){
-                return args[0]*args[0] + args[1]*args[1];}
-        compile to library testlib.*
-
-    ::
-
-       from scipy import integrate
-       import ctypes
-       lib = ctypes.CDLL('/home/.../testlib.*') #use absolute path
-       lib.func.restype = ctypes.c_double
-       lib.func.argtypes = (ctypes.c_int,ctypes.c_double)
-       integrate.quad(lib.func,0,1,(1))
-       #(1.3333333333333333, 1.4802973661668752e-14)
-       print((1.0**3/3.0 + 1.0) - (0.0**3/3.0 + 0.0)) #Analytic result
-       # 1.3333333333333333
-
-    Be aware that pulse shapes and other sharp features as compared to the
-    size of the integration interval may not be integrated correctly using
-    this method. A simplified example of this limitation is integrating a
-    y-axis reflected step function with many zero values within the integrals
-    bounds.
-
-    >>> y = lambda x: 1 if x<=0 else 0
-    >>> integrate.quad(y, -1, 1)
-    (1.0, 1.1102230246251565e-14)
-    >>> integrate.quad(y, -1, 100)
-    (1.0000000002199108, 1.0189464580163188e-08)
-    >>> integrate.quad(y, -1, 10000)
-    (0.0, 0.0)
-
-    """
-    if not isinstance(args, tuple):
-        args = (args,)
-
-    # check the limits of integration: \int_a^b, expect a < b
-    flip, a, b = b < a, min(a, b), max(a, b)
-
-    if complex_func:
-        def imfunc(x, *args):
-            return func(x, *args).imag
-
-        def refunc(x, *args):
-            return func(x, *args).real
-
-        re_retval = quad(refunc, a, b, args, full_output, epsabs,
-                         epsrel, limit, points, weight, wvar, wopts,
-                         maxp1, limlst, complex_func=False)
-        im_retval = quad(imfunc, a, b, args, full_output, epsabs,
-                         epsrel, limit, points, weight, wvar, wopts,
-                         maxp1, limlst, complex_func=False)
-        integral = re_retval[0] + 1j*im_retval[0]
-        error_estimate = re_retval[1] + 1j*im_retval[1]
-        retval = integral, error_estimate
-        if full_output:
-            msgexp = {}
-            msgexp["real"] = re_retval[2:]
-            msgexp["imag"] = im_retval[2:]
-            retval = retval + (msgexp,)
-
-        return retval
-
-    if weight is None:
-        retval = _quad(func, a, b, args, full_output, epsabs, epsrel, limit,
-                       points)
-    else:
-        if points is not None:
-            msg = ("Break points cannot be specified when using weighted integrand.\n"
-                   "Continuing, ignoring specified points.")
-            warnings.warn(msg, IntegrationWarning, stacklevel=2)
-        retval = _quad_weight(func, a, b, args, full_output, epsabs, epsrel,
-                              limlst, limit, maxp1, weight, wvar, wopts)
-
-    if flip:
-        retval = (-retval[0],) + retval[1:]
-
-    ier = retval[-1]
-    if ier == 0:
-        return retval[:-1]
-
-    msgs = {80: "A Python error occurred possibly while calling the function.",
-             1: f"The maximum number of subdivisions ({limit}) has been achieved.\n  "
-                f"If increasing the limit yields no improvement it is advised to "
-                f"analyze \n  the integrand in order to determine the difficulties.  "
-                f"If the position of a \n  local difficulty can be determined "
-                f"(singularity, discontinuity) one will \n  probably gain from "
-                f"splitting up the interval and calling the integrator \n  on the "
-                f"subranges.  Perhaps a special-purpose integrator should be used.",
-             2: "The occurrence of roundoff error is detected, which prevents \n  "
-                "the requested tolerance from being achieved.  "
-                "The error may be \n  underestimated.",
-             3: "Extremely bad integrand behavior occurs at some points of the\n  "
-                "integration interval.",
-             4: "The algorithm does not converge.  Roundoff error is detected\n  "
-                "in the extrapolation table.  It is assumed that the requested "
-                "tolerance\n  cannot be achieved, and that the returned result "
-                "(if full_output = 1) is \n  the best which can be obtained.",
-             5: "The integral is probably divergent, or slowly convergent.",
-             6: "The input is invalid.",
-             7: "Abnormal termination of the routine.  The estimates for result\n  "
-                "and error are less reliable.  It is assumed that the requested "
-                "accuracy\n  has not been achieved.",
-            'unknown': "Unknown error."}
-
-    if weight in ['cos','sin'] and (b == np.inf or a == -np.inf):
-        msgs[1] = (
-            "The maximum number of cycles allowed has been achieved., e.e.\n  of "
-            "subintervals (a+(k-1)c, a+kc) where c = (2*int(abs(omega)+1))\n  "
-            "*pi/abs(omega), for k = 1, 2, ..., lst.  "
-            "One can allow more cycles by increasing the value of limlst.  "
-            "Look at info['ierlst'] with full_output=1."
-        )
-        msgs[4] = (
-            "The extrapolation table constructed for convergence acceleration\n  of "
-            "the series formed by the integral contributions over the cycles, \n  does "
-            "not converge to within the requested accuracy.  "
-            "Look at \n  info['ierlst'] with full_output=1."
-        )
-        msgs[7] = (
-            "Bad integrand behavior occurs within one or more of the cycles.\n  "
-            "Location and type of the difficulty involved can be determined from \n  "
-            "the vector info['ierlist'] obtained with full_output=1."
-        )
-        explain = {1: "The maximum number of subdivisions (= limit) has been \n  "
-                      "achieved on this cycle.",
-                   2: "The occurrence of roundoff error is detected and prevents\n  "
-                      "the tolerance imposed on this cycle from being achieved.",
-                   3: "Extremely bad integrand behavior occurs at some points of\n  "
-                      "this cycle.",
-                   4: "The integral over this cycle does not converge (to within the "
-                      "required accuracy) due to roundoff in the extrapolation "
-                      "procedure invoked on this cycle.  It is assumed that the result "
-                      "on this interval is the best which can be obtained.",
-                   5: "The integral over this cycle is probably divergent or "
-                      "slowly convergent."}
-
-    try:
-        msg = msgs[ier]
-    except KeyError:
-        msg = msgs['unknown']
-
-    if ier in [1,2,3,4,5,7]:
-        if full_output:
-            if weight in ['cos', 'sin'] and (b == np.inf or a == -np.inf):
-                return retval[:-1] + (msg, explain)
-            else:
-                return retval[:-1] + (msg,)
-        else:
-            warnings.warn(msg, IntegrationWarning, stacklevel=2)
-            return retval[:-1]
-
-    elif ier == 6:  # Forensic decision tree when QUADPACK throws ier=6
-        if epsabs <= 0:  # Small error tolerance - applies to all methods
-            if epsrel < max(50 * sys.float_info.epsilon, 5e-29):
-                msg = ("If 'epsabs'<=0, 'epsrel' must be greater than both"
-                       " 5e-29 and 50*(machine epsilon).")
-            elif weight in ['sin', 'cos'] and (abs(a) + abs(b) == np.inf):
-                msg = ("Sine or cosine weighted integrals with infinite domain"
-                       " must have 'epsabs'>0.")
-
-        elif weight is None:
-            if points is None:  # QAGSE/QAGIE
-                msg = ("Invalid 'limit' argument. There must be"
-                       " at least one subinterval")
-            else:  # QAGPE
-                if not (min(a, b) <= min(points) <= max(points) <= max(a, b)):
-                    msg = ("All break points in 'points' must lie within the"
-                           " integration limits.")
-                elif len(points) >= limit:
-                    msg = (f"Number of break points ({len(points):d}) "
-                           f"must be less than subinterval limit ({limit:d})")
-
-        else:
-            if maxp1 < 1:
-                msg = "Chebyshev moment limit maxp1 must be >=1."
-
-            elif weight in ('cos', 'sin') and abs(a+b) == np.inf:  # QAWFE
-                msg = "Cycle limit limlst must be >=3."
-
-            elif weight.startswith('alg'):  # QAWSE
-                if min(wvar) < -1:
-                    msg = "wvar parameters (alpha, beta) must both be >= -1."
-                if b < a:
-                    msg = "Integration limits a, b must satistfy a>> import numpy as np
-    >>> from scipy import integrate
-    >>> f = lambda y, x: x*y**2
-    >>> integrate.dblquad(f, 0, 2, 0, 1)
-        (0.6666666666666667, 7.401486830834377e-15)
-
-    Calculate :math:`\\int^{x=\\pi/4}_{x=0} \\int^{y=\\cos(x)}_{y=\\sin(x)} 1
-    \\,dy \\,dx`.
-
-    >>> f = lambda y, x: 1
-    >>> integrate.dblquad(f, 0, np.pi/4, np.sin, np.cos)
-        (0.41421356237309503, 1.1083280054755938e-14)
-
-    Calculate :math:`\\int^{x=1}_{x=0} \\int^{y=2-x}_{y=x} a x y \\,dy \\,dx`
-    for :math:`a=1, 3`.
-
-    >>> f = lambda y, x, a: a*x*y
-    >>> integrate.dblquad(f, 0, 1, lambda x: x, lambda x: 2-x, args=(1,))
-        (0.33333333333333337, 5.551115123125783e-15)
-    >>> integrate.dblquad(f, 0, 1, lambda x: x, lambda x: 2-x, args=(3,))
-        (0.9999999999999999, 1.6653345369377348e-14)
-
-    Compute the two-dimensional Gaussian Integral, which is the integral of the
-    Gaussian function :math:`f(x,y) = e^{-(x^{2} + y^{2})}`, over
-    :math:`(-\\infty,+\\infty)`. That is, compute the integral
-    :math:`\\iint^{+\\infty}_{-\\infty} e^{-(x^{2} + y^{2})} \\,dy\\,dx`.
-
-    >>> f = lambda x, y: np.exp(-(x ** 2 + y ** 2))
-    >>> integrate.dblquad(f, -np.inf, np.inf, -np.inf, np.inf)
-        (3.141592653589777, 2.5173086737433208e-08)
-
-    """
-
-    def temp_ranges(*args):
-        return [gfun(args[0]) if callable(gfun) else gfun,
-                hfun(args[0]) if callable(hfun) else hfun]
-
-    return nquad(func, [temp_ranges, [a, b]], args=args,
-            opts={"epsabs": epsabs, "epsrel": epsrel})
-
-
-def tplquad(func, a, b, gfun, hfun, qfun, rfun, args=(), epsabs=1.49e-8,
-            epsrel=1.49e-8):
-    """
-    Compute a triple (definite) integral.
-
-    Return the triple integral of ``func(z, y, x)`` from ``x = a..b``,
-    ``y = gfun(x)..hfun(x)``, and ``z = qfun(x,y)..rfun(x,y)``.
-
-    Parameters
-    ----------
-    func : function
-        A Python function or method of at least three variables in the
-        order (z, y, x).
-    a, b : float
-        The limits of integration in x: `a` < `b`
-    gfun : function or float
-        The lower boundary curve in y which is a function taking a single
-        floating point argument (x) and returning a floating point result
-        or a float indicating a constant boundary curve.
-    hfun : function or float
-        The upper boundary curve in y (same requirements as `gfun`).
-    qfun : function or float
-        The lower boundary surface in z.  It must be a function that takes
-        two floats in the order (x, y) and returns a float or a float
-        indicating a constant boundary surface.
-    rfun : function or float
-        The upper boundary surface in z. (Same requirements as `qfun`.)
-    args : tuple, optional
-        Extra arguments to pass to `func`.
-    epsabs : float, optional
-        Absolute tolerance passed directly to the innermost 1-D quadrature
-        integration. Default is 1.49e-8.
-    epsrel : float, optional
-        Relative tolerance of the innermost 1-D integrals. Default is 1.49e-8.
-
-    Returns
-    -------
-    y : float
-        The resultant integral.
-    abserr : float
-        An estimate of the error.
-
-    See Also
-    --------
-    quad : Adaptive quadrature using QUADPACK
-    fixed_quad : Fixed-order Gaussian quadrature
-    dblquad : Double integrals
-    nquad : N-dimensional integrals
-    romb : Integrators for sampled data
-    simpson : Integrators for sampled data
-    scipy.special : For coefficients and roots of orthogonal polynomials
-
-    Notes
-    -----
-    For valid results, the integral must converge; behavior for divergent
-    integrals is not guaranteed.
-
-    **Details of QUADPACK level routines**
-
-    `quad` calls routines from the FORTRAN library QUADPACK. This section
-    provides details on the conditions for each routine to be called and a
-    short description of each routine. For each level of integration, ``qagse``
-    is used for finite limits or ``qagie`` is used, if either limit (or both!)
-    are infinite. The following provides a short description from [1]_ for each
-    routine.
-
-    qagse
-        is an integrator based on globally adaptive interval
-        subdivision in connection with extrapolation, which will
-        eliminate the effects of integrand singularities of
-        several types.
-    qagie
-        handles integration over infinite intervals. The infinite range is
-        mapped onto a finite interval and subsequently the same strategy as
-        in ``QAGS`` is applied.
-
-    References
-    ----------
-
-    .. [1] Piessens, Robert; de Doncker-Kapenga, Elise;
-           Überhuber, Christoph W.; Kahaner, David (1983).
-           QUADPACK: A subroutine package for automatic integration.
-           Springer-Verlag.
-           ISBN 978-3-540-12553-2.
-
-    Examples
-    --------
-    Compute the triple integral of ``x * y * z``, over ``x`` ranging
-    from 1 to 2, ``y`` ranging from 2 to 3, ``z`` ranging from 0 to 1.
-    That is, :math:`\\int^{x=2}_{x=1} \\int^{y=3}_{y=2} \\int^{z=1}_{z=0} x y z
-    \\,dz \\,dy \\,dx`.
-
-    >>> import numpy as np
-    >>> from scipy import integrate
-    >>> f = lambda z, y, x: x*y*z
-    >>> integrate.tplquad(f, 1, 2, 2, 3, 0, 1)
-    (1.8749999999999998, 3.3246447942574074e-14)
-
-    Calculate :math:`\\int^{x=1}_{x=0} \\int^{y=1-2x}_{y=0}
-    \\int^{z=1-x-2y}_{z=0} x y z \\,dz \\,dy \\,dx`.
-    Note: `qfun`/`rfun` takes arguments in the order (x, y), even though ``f``
-    takes arguments in the order (z, y, x).
-
-    >>> f = lambda z, y, x: x*y*z
-    >>> integrate.tplquad(f, 0, 1, 0, lambda x: 1-2*x, 0, lambda x, y: 1-x-2*y)
-    (0.05416666666666668, 2.1774196738157757e-14)
-
-    Calculate :math:`\\int^{x=1}_{x=0} \\int^{y=1}_{y=0} \\int^{z=1}_{z=0}
-    a x y z \\,dz \\,dy \\,dx` for :math:`a=1, 3`.
-
-    >>> f = lambda z, y, x, a: a*x*y*z
-    >>> integrate.tplquad(f, 0, 1, 0, 1, 0, 1, args=(1,))
-        (0.125, 5.527033708952211e-15)
-    >>> integrate.tplquad(f, 0, 1, 0, 1, 0, 1, args=(3,))
-        (0.375, 1.6581101126856635e-14)
-
-    Compute the three-dimensional Gaussian Integral, which is the integral of
-    the Gaussian function :math:`f(x,y,z) = e^{-(x^{2} + y^{2} + z^{2})}`, over
-    :math:`(-\\infty,+\\infty)`. That is, compute the integral
-    :math:`\\iiint^{+\\infty}_{-\\infty} e^{-(x^{2} + y^{2} + z^{2})} \\,dz
-    \\,dy\\,dx`.
-
-    >>> f = lambda x, y, z: np.exp(-(x ** 2 + y ** 2 + z ** 2))
-    >>> integrate.tplquad(f, -np.inf, np.inf, -np.inf, np.inf, -np.inf, np.inf)
-        (5.568327996830833, 4.4619078828029765e-08)
-
-    """
-    # f(z, y, x)
-    # qfun/rfun(x, y)
-    # gfun/hfun(x)
-    # nquad will hand (y, x, t0, ...) to ranges0
-    # nquad will hand (x, t0, ...) to ranges1
-    # Only qfun / rfun is different API...
-
-    def ranges0(*args):
-        return [qfun(args[1], args[0]) if callable(qfun) else qfun,
-                rfun(args[1], args[0]) if callable(rfun) else rfun]
-
-    def ranges1(*args):
-        return [gfun(args[0]) if callable(gfun) else gfun,
-                hfun(args[0]) if callable(hfun) else hfun]
-
-    ranges = [ranges0, ranges1, [a, b]]
-    return nquad(func, ranges, args=args,
-            opts={"epsabs": epsabs, "epsrel": epsrel})
-
-
-def nquad(func, ranges, args=None, opts=None, full_output=False):
-    r"""
-    Integration over multiple variables.
-
-    Wraps `quad` to enable integration over multiple variables.
-    Various options allow improved integration of discontinuous functions, as
-    well as the use of weighted integration, and generally finer control of the
-    integration process.
-
-    Parameters
-    ----------
-    func : {callable, scipy.LowLevelCallable}
-        The function to be integrated. Has arguments of ``x0, ... xn``,
-        ``t0, ... tm``, where integration is carried out over ``x0, ... xn``,
-        which must be floats.  Where ``t0, ... tm`` are extra arguments
-        passed in args.
-        Function signature should be ``func(x0, x1, ..., xn, t0, t1, ..., tm)``.
-        Integration is carried out in order.  That is, integration over ``x0``
-        is the innermost integral, and ``xn`` is the outermost.
-
-        If the user desires improved integration performance, then `f` may
-        be a `scipy.LowLevelCallable` with one of the signatures::
-
-            double func(int n, double *xx)
-            double func(int n, double *xx, void *user_data)
-
-        where ``n`` is the number of variables and args.  The ``xx`` array
-        contains the coordinates and extra arguments. ``user_data`` is the data
-        contained in the `scipy.LowLevelCallable`.
-    ranges : iterable object
-        Each element of ranges may be either a sequence  of 2 numbers, or else
-        a callable that returns such a sequence. ``ranges[0]`` corresponds to
-        integration over x0, and so on. If an element of ranges is a callable,
-        then it will be called with all of the integration arguments available,
-        as well as any parametric arguments. e.g., if
-        ``func = f(x0, x1, x2, t0, t1)``, then ``ranges[0]`` may be defined as
-        either ``(a, b)`` or else as ``(a, b) = range0(x1, x2, t0, t1)``.
-    args : iterable object, optional
-        Additional arguments ``t0, ... tn``, required by ``func``, ``ranges``,
-        and ``opts``.
-    opts : iterable object or dict, optional
-        Options to be passed to `quad`. May be empty, a dict, or
-        a sequence of dicts or functions that return a dict. If empty, the
-        default options from scipy.integrate.quad are used. If a dict, the same
-        options are used for all levels of integraion. If a sequence, then each
-        element of the sequence corresponds to a particular integration. e.g.,
-        ``opts[0]`` corresponds to integration over ``x0``, and so on. If a
-        callable, the signature must be the same as for ``ranges``. The
-        available options together with their default values are:
-
-          - epsabs = 1.49e-08
-          - epsrel = 1.49e-08
-          - limit  = 50
-          - points = None
-          - weight = None
-          - wvar   = None
-          - wopts  = None
-
-        For more information on these options, see `quad`.
-
-    full_output : bool, optional
-        Partial implementation of ``full_output`` from scipy.integrate.quad.
-        The number of integrand function evaluations ``neval`` can be obtained
-        by setting ``full_output=True`` when calling nquad.
-
-    Returns
-    -------
-    result : float
-        The result of the integration.
-    abserr : float
-        The maximum of the estimates of the absolute error in the various
-        integration results.
-    out_dict : dict, optional
-        A dict containing additional information on the integration.
-
-    See Also
-    --------
-    quad : 1-D numerical integration
-    dblquad, tplquad : double and triple integrals
-    fixed_quad : fixed-order Gaussian quadrature
-
-    Notes
-    -----
-    For valid results, the integral must converge; behavior for divergent
-    integrals is not guaranteed.
-
-    **Details of QUADPACK level routines**
-
-    `nquad` calls routines from the FORTRAN library QUADPACK. This section
-    provides details on the conditions for each routine to be called and a
-    short description of each routine. The routine called depends on
-    `weight`, `points` and the integration limits `a` and `b`.
-
-    ================  ==============  ==========  =====================
-    QUADPACK routine  `weight`        `points`    infinite bounds
-    ================  ==============  ==========  =====================
-    qagse             None            No          No
-    qagie             None            No          Yes
-    qagpe             None            Yes         No
-    qawoe             'sin', 'cos'    No          No
-    qawfe             'sin', 'cos'    No          either `a` or `b`
-    qawse             'alg*'          No          No
-    qawce             'cauchy'        No          No
-    ================  ==============  ==========  =====================
-
-    The following provides a short description from [1]_ for each
-    routine.
-
-    qagse
-        is an integrator based on globally adaptive interval
-        subdivision in connection with extrapolation, which will
-        eliminate the effects of integrand singularities of
-        several types.
-    qagie
-        handles integration over infinite intervals. The infinite range is
-        mapped onto a finite interval and subsequently the same strategy as
-        in ``QAGS`` is applied.
-    qagpe
-        serves the same purposes as QAGS, but also allows the
-        user to provide explicit information about the location
-        and type of trouble-spots i.e. the abscissae of internal
-        singularities, discontinuities and other difficulties of
-        the integrand function.
-    qawoe
-        is an integrator for the evaluation of
-        :math:`\int^b_a \cos(\omega x)f(x)dx` or
-        :math:`\int^b_a \sin(\omega x)f(x)dx`
-        over a finite interval [a,b], where :math:`\omega` and :math:`f`
-        are specified by the user. The rule evaluation component is based
-        on the modified Clenshaw-Curtis technique
-
-        An adaptive subdivision scheme is used in connection
-        with an extrapolation procedure, which is a modification
-        of that in ``QAGS`` and allows the algorithm to deal with
-        singularities in :math:`f(x)`.
-    qawfe
-        calculates the Fourier transform
-        :math:`\int^\infty_a \cos(\omega x)f(x)dx` or
-        :math:`\int^\infty_a \sin(\omega x)f(x)dx`
-        for user-provided :math:`\omega` and :math:`f`. The procedure of
-        ``QAWO`` is applied on successive finite intervals, and convergence
-        acceleration by means of the :math:`\varepsilon`-algorithm is applied
-        to the series of integral approximations.
-    qawse
-        approximate :math:`\int^b_a w(x)f(x)dx`, with :math:`a < b` where
-        :math:`w(x) = (x-a)^{\alpha}(b-x)^{\beta}v(x)` with
-        :math:`\alpha,\beta > -1`, where :math:`v(x)` may be one of the
-        following functions: :math:`1`, :math:`\log(x-a)`, :math:`\log(b-x)`,
-        :math:`\log(x-a)\log(b-x)`.
-
-        The user specifies :math:`\alpha`, :math:`\beta` and the type of the
-        function :math:`v`. A globally adaptive subdivision strategy is
-        applied, with modified Clenshaw-Curtis integration on those
-        subintervals which contain `a` or `b`.
-    qawce
-        compute :math:`\int^b_a f(x) / (x-c)dx` where the integral must be
-        interpreted as a Cauchy principal value integral, for user specified
-        :math:`c` and :math:`f`. The strategy is globally adaptive. Modified
-        Clenshaw-Curtis integration is used on those intervals containing the
-        point :math:`x = c`.
-
-    References
-    ----------
-
-    .. [1] Piessens, Robert; de Doncker-Kapenga, Elise;
-           Überhuber, Christoph W.; Kahaner, David (1983).
-           QUADPACK: A subroutine package for automatic integration.
-           Springer-Verlag.
-           ISBN 978-3-540-12553-2.
-
-    Examples
-    --------
-    Calculate
-
-    .. math::
-
-        \int^{1}_{-0.15} \int^{0.8}_{0.13} \int^{1}_{-1} \int^{1}_{0}
-        f(x_0, x_1, x_2, x_3) \,dx_0 \,dx_1 \,dx_2 \,dx_3 ,
-
-    where
-
-    .. math::
-
-        f(x_0, x_1, x_2, x_3) = \begin{cases}
-          x_0^2+x_1 x_2-x_3^3+ \sin{x_0}+1 & (x_0-0.2 x_3-0.5-0.25 x_1 > 0) \\
-          x_0^2+x_1 x_2-x_3^3+ \sin{x_0}+0 & (x_0-0.2 x_3-0.5-0.25 x_1 \leq 0)
-        \end{cases} .
-
-    >>> import numpy as np
-    >>> from scipy import integrate
-    >>> func = lambda x0,x1,x2,x3 : x0**2 + x1*x2 - x3**3 + np.sin(x0) + (
-    ...                                 1 if (x0-.2*x3-.5-.25*x1>0) else 0)
-    >>> def opts0(*args, **kwargs):
-    ...     return {'points':[0.2*args[2] + 0.5 + 0.25*args[0]]}
-    >>> integrate.nquad(func, [[0,1], [-1,1], [.13,.8], [-.15,1]],
-    ...                 opts=[opts0,{},{},{}], full_output=True)
-    (1.5267454070738633, 2.9437360001402324e-14, {'neval': 388962})
-
-    Calculate
-
-    .. math::
-
-        \int^{t_0+t_1+1}_{t_0+t_1-1}
-        \int^{x_2+t_0^2 t_1^3+1}_{x_2+t_0^2 t_1^3-1}
-        \int^{t_0 x_1+t_1 x_2+1}_{t_0 x_1+t_1 x_2-1}
-        f(x_0,x_1, x_2,t_0,t_1)
-        \,dx_0 \,dx_1 \,dx_2,
-
-    where
-
-    .. math::
-
-        f(x_0, x_1, x_2, t_0, t_1) = \begin{cases}
-          x_0 x_2^2 + \sin{x_1}+2 & (x_0+t_1 x_1-t_0 > 0) \\
-          x_0 x_2^2 +\sin{x_1}+1 & (x_0+t_1 x_1-t_0 \leq 0)
-        \end{cases}
-
-    and :math:`(t_0, t_1) = (0, 1)` .
-
-    >>> def func2(x0, x1, x2, t0, t1):
-    ...     return x0*x2**2 + np.sin(x1) + 1 + (1 if x0+t1*x1-t0>0 else 0)
-    >>> def lim0(x1, x2, t0, t1):
-    ...     return [t0*x1 + t1*x2 - 1, t0*x1 + t1*x2 + 1]
-    >>> def lim1(x2, t0, t1):
-    ...     return [x2 + t0**2*t1**3 - 1, x2 + t0**2*t1**3 + 1]
-    >>> def lim2(t0, t1):
-    ...     return [t0 + t1 - 1, t0 + t1 + 1]
-    >>> def opts0(x1, x2, t0, t1):
-    ...     return {'points' : [t0 - t1*x1]}
-    >>> def opts1(x2, t0, t1):
-    ...     return {}
-    >>> def opts2(t0, t1):
-    ...     return {}
-    >>> integrate.nquad(func2, [lim0, lim1, lim2], args=(0,1),
-    ...                 opts=[opts0, opts1, opts2])
-    (36.099919226771625, 1.8546948553373528e-07)
-
-    """
-    depth = len(ranges)
-    ranges = [rng if callable(rng) else _RangeFunc(rng) for rng in ranges]
-    if args is None:
-        args = ()
-    if opts is None:
-        opts = [dict([])] * depth
-
-    if isinstance(opts, dict):
-        opts = [_OptFunc(opts)] * depth
-    else:
-        opts = [opt if callable(opt) else _OptFunc(opt) for opt in opts]
-    return _NQuad(func, ranges, opts, full_output).integrate(*args)
-
-
-class _RangeFunc:
-    def __init__(self, range_):
-        self.range_ = range_
-
-    def __call__(self, *args):
-        """Return stored value.
-
-        *args needed because range_ can be float or func, and is called with
-        variable number of parameters.
-        """
-        return self.range_
-
-
-class _OptFunc:
-    def __init__(self, opt):
-        self.opt = opt
-
-    def __call__(self, *args):
-        """Return stored dict."""
-        return self.opt
-
-
-class _NQuad:
-    def __init__(self, func, ranges, opts, full_output):
-        self.abserr = 0
-        self.func = func
-        self.ranges = ranges
-        self.opts = opts
-        self.maxdepth = len(ranges)
-        self.full_output = full_output
-        if self.full_output:
-            self.out_dict = {'neval': 0}
-
-    def integrate(self, *args, **kwargs):
-        depth = kwargs.pop('depth', 0)
-        if kwargs:
-            raise ValueError('unexpected kwargs')
-
-        # Get the integration range and options for this depth.
-        ind = -(depth + 1)
-        fn_range = self.ranges[ind]
-        low, high = fn_range(*args)
-        fn_opt = self.opts[ind]
-        opt = dict(fn_opt(*args))
-
-        if 'points' in opt:
-            opt['points'] = [x for x in opt['points'] if low <= x <= high]
-        if depth + 1 == self.maxdepth:
-            f = self.func
-        else:
-            f = partial(self.integrate, depth=depth+1)
-        quad_r = quad(f, low, high, args=args, full_output=self.full_output,
-                      **opt)
-        value = quad_r[0]
-        abserr = quad_r[1]
-        if self.full_output:
-            infodict = quad_r[2]
-            # The 'neval' parameter in full_output returns the total
-            # number of times the integrand function was evaluated.
-            # Therefore, only the innermost integration loop counts.
-            if depth + 1 == self.maxdepth:
-                self.out_dict['neval'] += infodict['neval']
-        self.abserr = max(self.abserr, abserr)
-        if depth > 0:
-            return value
-        else:
-            # Final result of N-D integration with error
-            if self.full_output:
-                return value, self.abserr, self.out_dict
-            else:
-                return value, self.abserr
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_quadrature.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_quadrature.py
deleted file mode 100644
index 7fe4ef9424eb1acb0e488f5600b2d83f8ca99090..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_quadrature.py
+++ /dev/null
@@ -1,1684 +0,0 @@
-from __future__ import annotations
-from typing import TYPE_CHECKING, Callable, Any, cast
-import numpy as np
-import numpy.typing as npt
-import math
-import warnings
-from collections import namedtuple
-
-from scipy.special import roots_legendre
-from scipy.special import gammaln, logsumexp
-from scipy._lib._util import _rng_spawn
-from scipy._lib.deprecation import _deprecated
-
-
-__all__ = ['fixed_quad', 'quadrature', 'romberg', 'romb',
-           'trapezoid', 'simpson',
-           'cumulative_trapezoid', 'newton_cotes',
-           'qmc_quad', 'AccuracyWarning', 'cumulative_simpson']
-
-
-def trapezoid(y, x=None, dx=1.0, axis=-1):
-    r"""
-    Integrate along the given axis using the composite trapezoidal rule.
-
-    If `x` is provided, the integration happens in sequence along its
-    elements - they are not sorted.
-
-    Integrate `y` (`x`) along each 1d slice on the given axis, compute
-    :math:`\int y(x) dx`.
-    When `x` is specified, this integrates along the parametric curve,
-    computing :math:`\int_t y(t) dt =
-    \int_t y(t) \left.\frac{dx}{dt}\right|_{x=x(t)} dt`.
-
-    Parameters
-    ----------
-    y : array_like
-        Input array to integrate.
-    x : array_like, optional
-        The sample points corresponding to the `y` values. If `x` is None,
-        the sample points are assumed to be evenly spaced `dx` apart. The
-        default is None.
-    dx : scalar, optional
-        The spacing between sample points when `x` is None. The default is 1.
-    axis : int, optional
-        The axis along which to integrate.
-
-    Returns
-    -------
-    trapezoid : float or ndarray
-        Definite integral of `y` = n-dimensional array as approximated along
-        a single axis by the trapezoidal rule. If `y` is a 1-dimensional array,
-        then the result is a float. If `n` is greater than 1, then the result
-        is an `n`-1 dimensional array.
-
-    See Also
-    --------
-    cumulative_trapezoid, simpson, romb
-
-    Notes
-    -----
-    Image [2]_ illustrates trapezoidal rule -- y-axis locations of points
-    will be taken from `y` array, by default x-axis distances between
-    points will be 1.0, alternatively they can be provided with `x` array
-    or with `dx` scalar.  Return value will be equal to combined area under
-    the red lines.
-
-    References
-    ----------
-    .. [1] Wikipedia page: https://en.wikipedia.org/wiki/Trapezoidal_rule
-
-    .. [2] Illustration image:
-           https://en.wikipedia.org/wiki/File:Composite_trapezoidal_rule_illustration.png
-
-    Examples
-    --------
-    Use the trapezoidal rule on evenly spaced points:
-
-    >>> import numpy as np
-    >>> from scipy import integrate
-    >>> integrate.trapezoid([1, 2, 3])
-    4.0
-
-    The spacing between sample points can be selected by either the
-    ``x`` or ``dx`` arguments:
-
-    >>> integrate.trapezoid([1, 2, 3], x=[4, 6, 8])
-    8.0
-    >>> integrate.trapezoid([1, 2, 3], dx=2)
-    8.0
-
-    Using a decreasing ``x`` corresponds to integrating in reverse:
-
-    >>> integrate.trapezoid([1, 2, 3], x=[8, 6, 4])
-    -8.0
-
-    More generally ``x`` is used to integrate along a parametric curve. We can
-    estimate the integral :math:`\int_0^1 x^2 = 1/3` using:
-
-    >>> x = np.linspace(0, 1, num=50)
-    >>> y = x**2
-    >>> integrate.trapezoid(y, x)
-    0.33340274885464394
-
-    Or estimate the area of a circle, noting we repeat the sample which closes
-    the curve:
-
-    >>> theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True)
-    >>> integrate.trapezoid(np.cos(theta), x=np.sin(theta))
-    3.141571941375841
-
-    ``trapezoid`` can be applied along a specified axis to do multiple
-    computations in one call:
-
-    >>> a = np.arange(6).reshape(2, 3)
-    >>> a
-    array([[0, 1, 2],
-           [3, 4, 5]])
-    >>> integrate.trapezoid(a, axis=0)
-    array([1.5, 2.5, 3.5])
-    >>> integrate.trapezoid(a, axis=1)
-    array([2.,  8.])
-    """
-    y = np.asanyarray(y)
-    if x is None:
-        d = dx
-    else:
-        x = np.asanyarray(x)
-        if x.ndim == 1:
-            d = np.diff(x)
-            # reshape to correct shape
-            shape = [1]*y.ndim
-            shape[axis] = d.shape[0]
-            d = d.reshape(shape)
-        else:
-            d = np.diff(x, axis=axis)
-    nd = y.ndim
-    slice1 = [slice(None)]*nd
-    slice2 = [slice(None)]*nd
-    slice1[axis] = slice(1, None)
-    slice2[axis] = slice(None, -1)
-    try:
-        ret = (d * (y[tuple(slice1)] + y[tuple(slice2)]) / 2.0).sum(axis)
-    except ValueError:
-        # Operations didn't work, cast to ndarray
-        d = np.asarray(d)
-        y = np.asarray(y)
-        ret = np.add.reduce(d * (y[tuple(slice1)]+y[tuple(slice2)])/2.0, axis)
-    return ret
-
-
-class AccuracyWarning(Warning):
-    pass
-
-
-if TYPE_CHECKING:
-    # workaround for mypy function attributes see:
-    # https://github.com/python/mypy/issues/2087#issuecomment-462726600
-    from typing import Protocol
-
-    class CacheAttributes(Protocol):
-        cache: dict[int, tuple[Any, Any]]
-else:
-    CacheAttributes = Callable
-
-
-def cache_decorator(func: Callable) -> CacheAttributes:
-    return cast(CacheAttributes, func)
-
-
-@cache_decorator
-def _cached_roots_legendre(n):
-    """
-    Cache roots_legendre results to speed up calls of the fixed_quad
-    function.
-    """
-    if n in _cached_roots_legendre.cache:
-        return _cached_roots_legendre.cache[n]
-
-    _cached_roots_legendre.cache[n] = roots_legendre(n)
-    return _cached_roots_legendre.cache[n]
-
-
-_cached_roots_legendre.cache = dict()
-
-
-def fixed_quad(func, a, b, args=(), n=5):
-    """
-    Compute a definite integral using fixed-order Gaussian quadrature.
-
-    Integrate `func` from `a` to `b` using Gaussian quadrature of
-    order `n`.
-
-    Parameters
-    ----------
-    func : callable
-        A Python function or method to integrate (must accept vector inputs).
-        If integrating a vector-valued function, the returned array must have
-        shape ``(..., len(x))``.
-    a : float
-        Lower limit of integration.
-    b : float
-        Upper limit of integration.
-    args : tuple, optional
-        Extra arguments to pass to function, if any.
-    n : int, optional
-        Order of quadrature integration. Default is 5.
-
-    Returns
-    -------
-    val : float
-        Gaussian quadrature approximation to the integral
-    none : None
-        Statically returned value of None
-
-    See Also
-    --------
-    quad : adaptive quadrature using QUADPACK
-    dblquad : double integrals
-    tplquad : triple integrals
-    romb : integrators for sampled data
-    simpson : integrators for sampled data
-    cumulative_trapezoid : cumulative integration for sampled data
-
-    Examples
-    --------
-    >>> from scipy import integrate
-    >>> import numpy as np
-    >>> f = lambda x: x**8
-    >>> integrate.fixed_quad(f, 0.0, 1.0, n=4)
-    (0.1110884353741496, None)
-    >>> integrate.fixed_quad(f, 0.0, 1.0, n=5)
-    (0.11111111111111102, None)
-    >>> print(1/9.0)  # analytical result
-    0.1111111111111111
-
-    >>> integrate.fixed_quad(np.cos, 0.0, np.pi/2, n=4)
-    (0.9999999771971152, None)
-    >>> integrate.fixed_quad(np.cos, 0.0, np.pi/2, n=5)
-    (1.000000000039565, None)
-    >>> np.sin(np.pi/2)-np.sin(0)  # analytical result
-    1.0
-
-    """
-    x, w = _cached_roots_legendre(n)
-    x = np.real(x)
-    if np.isinf(a) or np.isinf(b):
-        raise ValueError("Gaussian quadrature is only available for "
-                         "finite limits.")
-    y = (b-a)*(x+1)/2.0 + a
-    return (b-a)/2.0 * np.sum(w*func(y, *args), axis=-1), None
-
-
-def vectorize1(func, args=(), vec_func=False):
-    """Vectorize the call to a function.
-
-    This is an internal utility function used by `romberg` and
-    `quadrature` to create a vectorized version of a function.
-
-    If `vec_func` is True, the function `func` is assumed to take vector
-    arguments.
-
-    Parameters
-    ----------
-    func : callable
-        User defined function.
-    args : tuple, optional
-        Extra arguments for the function.
-    vec_func : bool, optional
-        True if the function func takes vector arguments.
-
-    Returns
-    -------
-    vfunc : callable
-        A function that will take a vector argument and return the
-        result.
-
-    """
-    if vec_func:
-        def vfunc(x):
-            return func(x, *args)
-    else:
-        def vfunc(x):
-            if np.isscalar(x):
-                return func(x, *args)
-            x = np.asarray(x)
-            # call with first point to get output type
-            y0 = func(x[0], *args)
-            n = len(x)
-            dtype = getattr(y0, 'dtype', type(y0))
-            output = np.empty((n,), dtype=dtype)
-            output[0] = y0
-            for i in range(1, n):
-                output[i] = func(x[i], *args)
-            return output
-    return vfunc
-
-
-@_deprecated("`scipy.integrate.quadrature` is deprecated as of SciPy 1.12.0"
-             "and will be removed in SciPy 1.15.0. Please use"
-             "`scipy.integrate.quad` instead.")
-def quadrature(func, a, b, args=(), tol=1.49e-8, rtol=1.49e-8, maxiter=50,
-               vec_func=True, miniter=1):
-    """
-    Compute a definite integral using fixed-tolerance Gaussian quadrature.
-
-    .. deprecated:: 1.12.0
-
-          This function is deprecated as of SciPy 1.12.0 and will be removed
-          in SciPy 1.15.0. Please use `scipy.integrate.quad` instead.
-
-    Integrate `func` from `a` to `b` using Gaussian quadrature
-    with absolute tolerance `tol`.
-
-    Parameters
-    ----------
-    func : function
-        A Python function or method to integrate.
-    a : float
-        Lower limit of integration.
-    b : float
-        Upper limit of integration.
-    args : tuple, optional
-        Extra arguments to pass to function.
-    tol, rtol : float, optional
-        Iteration stops when error between last two iterates is less than
-        `tol` OR the relative change is less than `rtol`.
-    maxiter : int, optional
-        Maximum order of Gaussian quadrature.
-    vec_func : bool, optional
-        True or False if func handles arrays as arguments (is
-        a "vector" function). Default is True.
-    miniter : int, optional
-        Minimum order of Gaussian quadrature.
-
-    Returns
-    -------
-    val : float
-        Gaussian quadrature approximation (within tolerance) to integral.
-    err : float
-        Difference between last two estimates of the integral.
-
-    See Also
-    --------
-    fixed_quad : fixed-order Gaussian quadrature
-    quad : adaptive quadrature using QUADPACK
-    dblquad : double integrals
-    tplquad : triple integrals
-    romb : integrator for sampled data
-    simpson : integrator for sampled data
-    cumulative_trapezoid : cumulative integration for sampled data
-
-    Examples
-    --------
-    >>> from scipy import integrate
-    >>> import numpy as np
-    >>> f = lambda x: x**8
-    >>> integrate.quadrature(f, 0.0, 1.0)
-    (0.11111111111111106, 4.163336342344337e-17)
-    >>> print(1/9.0)  # analytical result
-    0.1111111111111111
-
-    >>> integrate.quadrature(np.cos, 0.0, np.pi/2)
-    (0.9999999999999536, 3.9611425250996035e-11)
-    >>> np.sin(np.pi/2)-np.sin(0)  # analytical result
-    1.0
-
-    """
-    if not isinstance(args, tuple):
-        args = (args,)
-    vfunc = vectorize1(func, args, vec_func=vec_func)
-    val = np.inf
-    err = np.inf
-    maxiter = max(miniter+1, maxiter)
-    for n in range(miniter, maxiter+1):
-        newval = fixed_quad(vfunc, a, b, (), n)[0]
-        err = abs(newval-val)
-        val = newval
-
-        if err < tol or err < rtol*abs(val):
-            break
-    else:
-        warnings.warn(
-            "maxiter (%d) exceeded. Latest difference = %e" % (maxiter, err),
-            AccuracyWarning, stacklevel=2
-        )
-    return val, err
-
-
-def tupleset(t, i, value):
-    l = list(t)
-    l[i] = value
-    return tuple(l)
-
-
-def cumulative_trapezoid(y, x=None, dx=1.0, axis=-1, initial=None):
-    """
-    Cumulatively integrate y(x) using the composite trapezoidal rule.
-
-    Parameters
-    ----------
-    y : array_like
-        Values to integrate.
-    x : array_like, optional
-        The coordinate to integrate along. If None (default), use spacing `dx`
-        between consecutive elements in `y`.
-    dx : float, optional
-        Spacing between elements of `y`. Only used if `x` is None.
-    axis : int, optional
-        Specifies the axis to cumulate. Default is -1 (last axis).
-    initial : scalar, optional
-        If given, insert this value at the beginning of the returned result.
-        0 or None are the only values accepted. Default is None, which means
-        `res` has one element less than `y` along the axis of integration.
-
-        .. deprecated:: 1.12.0
-            The option for non-zero inputs for `initial` will be deprecated in
-            SciPy 1.15.0. After this time, a ValueError will be raised if
-            `initial` is not None or 0.
-
-    Returns
-    -------
-    res : ndarray
-        The result of cumulative integration of `y` along `axis`.
-        If `initial` is None, the shape is such that the axis of integration
-        has one less value than `y`. If `initial` is given, the shape is equal
-        to that of `y`.
-
-    See Also
-    --------
-    numpy.cumsum, numpy.cumprod
-    cumulative_simpson : cumulative integration using Simpson's 1/3 rule
-    quad : adaptive quadrature using QUADPACK
-    fixed_quad : fixed-order Gaussian quadrature
-    dblquad : double integrals
-    tplquad : triple integrals
-    romb : integrators for sampled data
-
-    Examples
-    --------
-    >>> from scipy import integrate
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-
-    >>> x = np.linspace(-2, 2, num=20)
-    >>> y = x
-    >>> y_int = integrate.cumulative_trapezoid(y, x, initial=0)
-    >>> plt.plot(x, y_int, 'ro', x, y[0] + 0.5 * x**2, 'b-')
-    >>> plt.show()
-
-    """
-    y = np.asarray(y)
-    if y.shape[axis] == 0:
-        raise ValueError("At least one point is required along `axis`.")
-    if x is None:
-        d = dx
-    else:
-        x = np.asarray(x)
-        if x.ndim == 1:
-            d = np.diff(x)
-            # reshape to correct shape
-            shape = [1] * y.ndim
-            shape[axis] = -1
-            d = d.reshape(shape)
-        elif len(x.shape) != len(y.shape):
-            raise ValueError("If given, shape of x must be 1-D or the "
-                             "same as y.")
-        else:
-            d = np.diff(x, axis=axis)
-
-        if d.shape[axis] != y.shape[axis] - 1:
-            raise ValueError("If given, length of x along axis must be the "
-                             "same as y.")
-
-    nd = len(y.shape)
-    slice1 = tupleset((slice(None),)*nd, axis, slice(1, None))
-    slice2 = tupleset((slice(None),)*nd, axis, slice(None, -1))
-    res = np.cumsum(d * (y[slice1] + y[slice2]) / 2.0, axis=axis)
-
-    if initial is not None:
-        if initial != 0:
-            warnings.warn(
-                "The option for values for `initial` other than None or 0 is "
-                "deprecated as of SciPy 1.12.0 and will raise a value error in"
-                " SciPy 1.15.0.",
-                DeprecationWarning, stacklevel=2
-            )
-        if not np.isscalar(initial):
-            raise ValueError("`initial` parameter should be a scalar.")
-
-        shape = list(res.shape)
-        shape[axis] = 1
-        res = np.concatenate([np.full(shape, initial, dtype=res.dtype), res],
-                             axis=axis)
-
-    return res
-
-
-def _basic_simpson(y, start, stop, x, dx, axis):
-    nd = len(y.shape)
-    if start is None:
-        start = 0
-    step = 2
-    slice_all = (slice(None),)*nd
-    slice0 = tupleset(slice_all, axis, slice(start, stop, step))
-    slice1 = tupleset(slice_all, axis, slice(start+1, stop+1, step))
-    slice2 = tupleset(slice_all, axis, slice(start+2, stop+2, step))
-
-    if x is None:  # Even-spaced Simpson's rule.
-        result = np.sum(y[slice0] + 4.0*y[slice1] + y[slice2], axis=axis)
-        result *= dx / 3.0
-    else:
-        # Account for possibly different spacings.
-        #    Simpson's rule changes a bit.
-        h = np.diff(x, axis=axis)
-        sl0 = tupleset(slice_all, axis, slice(start, stop, step))
-        sl1 = tupleset(slice_all, axis, slice(start+1, stop+1, step))
-        h0 = h[sl0].astype(float, copy=False)
-        h1 = h[sl1].astype(float, copy=False)
-        hsum = h0 + h1
-        hprod = h0 * h1
-        h0divh1 = np.true_divide(h0, h1, out=np.zeros_like(h0), where=h1 != 0)
-        tmp = hsum/6.0 * (y[slice0] *
-                          (2.0 - np.true_divide(1.0, h0divh1,
-                                                out=np.zeros_like(h0divh1),
-                                                where=h0divh1 != 0)) +
-                          y[slice1] * (hsum *
-                                       np.true_divide(hsum, hprod,
-                                                      out=np.zeros_like(hsum),
-                                                      where=hprod != 0)) +
-                          y[slice2] * (2.0 - h0divh1))
-        result = np.sum(tmp, axis=axis)
-    return result
-
-
-def simpson(y, *, x=None, dx=1.0, axis=-1):
-    """
-    Integrate y(x) using samples along the given axis and the composite
-    Simpson's rule. If x is None, spacing of dx is assumed.
-
-    If there are an even number of samples, N, then there are an odd
-    number of intervals (N-1), but Simpson's rule requires an even number
-    of intervals. The parameter 'even' controls how this is handled.
-
-    Parameters
-    ----------
-    y : array_like
-        Array to be integrated.
-    x : array_like, optional
-        If given, the points at which `y` is sampled.
-    dx : float, optional
-        Spacing of integration points along axis of `x`. Only used when
-        `x` is None. Default is 1.
-    axis : int, optional
-        Axis along which to integrate. Default is the last axis.
-
-    Returns
-    -------
-    float
-        The estimated integral computed with the composite Simpson's rule.
-
-    See Also
-    --------
-    quad : adaptive quadrature using QUADPACK
-    fixed_quad : fixed-order Gaussian quadrature
-    dblquad : double integrals
-    tplquad : triple integrals
-    romb : integrators for sampled data
-    cumulative_trapezoid : cumulative integration for sampled data
-    cumulative_simpson : cumulative integration using Simpson's 1/3 rule
-
-    Notes
-    -----
-    For an odd number of samples that are equally spaced the result is
-    exact if the function is a polynomial of order 3 or less. If
-    the samples are not equally spaced, then the result is exact only
-    if the function is a polynomial of order 2 or less.
-
-    References
-    ----------
-    .. [1] Cartwright, Kenneth V. Simpson's Rule Cumulative Integration with
-           MS Excel and Irregularly-spaced Data. Journal of Mathematical
-           Sciences and Mathematics Education. 12 (2): 1-9
-
-    Examples
-    --------
-    >>> from scipy import integrate
-    >>> import numpy as np
-    >>> x = np.arange(0, 10)
-    >>> y = np.arange(0, 10)
-
-    >>> integrate.simpson(y, x=x)
-    40.5
-
-    >>> y = np.power(x, 3)
-    >>> integrate.simpson(y, x=x)
-    1640.5
-    >>> integrate.quad(lambda x: x**3, 0, 9)[0]
-    1640.25
-
-    """
-    y = np.asarray(y)
-    nd = len(y.shape)
-    N = y.shape[axis]
-    last_dx = dx
-    returnshape = 0
-    if x is not None:
-        x = np.asarray(x)
-        if len(x.shape) == 1:
-            shapex = [1] * nd
-            shapex[axis] = x.shape[0]
-            saveshape = x.shape
-            returnshape = 1
-            x = x.reshape(tuple(shapex))
-        elif len(x.shape) != len(y.shape):
-            raise ValueError("If given, shape of x must be 1-D or the "
-                             "same as y.")
-        if x.shape[axis] != N:
-            raise ValueError("If given, length of x along axis must be the "
-                             "same as y.")
-
-    if N % 2 == 0:
-        val = 0.0
-        result = 0.0
-        slice_all = (slice(None),) * nd
-
-        if N == 2:
-            # need at least 3 points in integration axis to form parabolic
-            # segment. If there are two points then any of 'avg', 'first',
-            # 'last' should give the same result.
-            slice1 = tupleset(slice_all, axis, -1)
-            slice2 = tupleset(slice_all, axis, -2)
-            if x is not None:
-                last_dx = x[slice1] - x[slice2]
-            val += 0.5 * last_dx * (y[slice1] + y[slice2])
-        else:
-            # use Simpson's rule on first intervals
-            result = _basic_simpson(y, 0, N-3, x, dx, axis)
-
-            slice1 = tupleset(slice_all, axis, -1)
-            slice2 = tupleset(slice_all, axis, -2)
-            slice3 = tupleset(slice_all, axis, -3)
-
-            h = np.asarray([dx, dx], dtype=np.float64)
-            if x is not None:
-                # grab the last two spacings from the appropriate axis
-                hm2 = tupleset(slice_all, axis, slice(-2, -1, 1))
-                hm1 = tupleset(slice_all, axis, slice(-1, None, 1))
-
-                diffs = np.float64(np.diff(x, axis=axis))
-                h = [np.squeeze(diffs[hm2], axis=axis),
-                     np.squeeze(diffs[hm1], axis=axis)]
-
-            # This is the correction for the last interval according to
-            # Cartwright.
-            # However, I used the equations given at
-            # https://en.wikipedia.org/wiki/Simpson%27s_rule#Composite_Simpson's_rule_for_irregularly_spaced_data
-            # A footnote on Wikipedia says:
-            # Cartwright 2017, Equation 8. The equation in Cartwright is
-            # calculating the first interval whereas the equations in the
-            # Wikipedia article are adjusting for the last integral. If the
-            # proper algebraic substitutions are made, the equation results in
-            # the values shown.
-            num = 2 * h[1] ** 2 + 3 * h[0] * h[1]
-            den = 6 * (h[1] + h[0])
-            alpha = np.true_divide(
-                num,
-                den,
-                out=np.zeros_like(den),
-                where=den != 0
-            )
-
-            num = h[1] ** 2 + 3.0 * h[0] * h[1]
-            den = 6 * h[0]
-            beta = np.true_divide(
-                num,
-                den,
-                out=np.zeros_like(den),
-                where=den != 0
-            )
-
-            num = 1 * h[1] ** 3
-            den = 6 * h[0] * (h[0] + h[1])
-            eta = np.true_divide(
-                num,
-                den,
-                out=np.zeros_like(den),
-                where=den != 0
-            )
-
-            result += alpha*y[slice1] + beta*y[slice2] - eta*y[slice3]
-
-        result += val
-    else:
-        result = _basic_simpson(y, 0, N-2, x, dx, axis)
-    if returnshape:
-        x = x.reshape(saveshape)
-    return result
-
-
-def _cumulatively_sum_simpson_integrals(
-    y: np.ndarray, 
-    dx: np.ndarray, 
-    integration_func: Callable[[np.ndarray, np.ndarray], np.ndarray],
-) -> np.ndarray:
-    """Calculate cumulative sum of Simpson integrals.
-    Takes as input the integration function to be used. 
-    The integration_func is assumed to return the cumulative sum using
-    composite Simpson's rule. Assumes the axis of summation is -1.
-    """
-    sub_integrals_h1 = integration_func(y, dx)
-    sub_integrals_h2 = integration_func(y[..., ::-1], dx[..., ::-1])[..., ::-1]
-    
-    shape = list(sub_integrals_h1.shape)
-    shape[-1] += 1
-    sub_integrals = np.empty(shape)
-    sub_integrals[..., :-1:2] = sub_integrals_h1[..., ::2]
-    sub_integrals[..., 1::2] = sub_integrals_h2[..., ::2]
-    # Integral over last subinterval can only be calculated from 
-    # formula for h2
-    sub_integrals[..., -1] = sub_integrals_h2[..., -1]
-    res = np.cumsum(sub_integrals, axis=-1)
-    return res
-
-
-def _cumulative_simpson_equal_intervals(y: np.ndarray, dx: np.ndarray) -> np.ndarray:
-    """Calculate the Simpson integrals for all h1 intervals assuming equal interval
-    widths. The function can also be used to calculate the integral for all
-    h2 intervals by reversing the inputs, `y` and `dx`.
-    """
-    d = dx[..., :-1]
-    f1 = y[..., :-2]
-    f2 = y[..., 1:-1]
-    f3 = y[..., 2:]
-
-    # Calculate integral over the subintervals (eqn (10) of Reference [2])
-    return d / 3 * (5 * f1 / 4 + 2 * f2 - f3 / 4)
-
-
-def _cumulative_simpson_unequal_intervals(y: np.ndarray, dx: np.ndarray) -> np.ndarray:
-    """Calculate the Simpson integrals for all h1 intervals assuming unequal interval
-    widths. The function can also be used to calculate the integral for all
-    h2 intervals by reversing the inputs, `y` and `dx`.
-    """
-    x21 = dx[..., :-1]
-    x32 = dx[..., 1:]
-    f1 = y[..., :-2]
-    f2 = y[..., 1:-1]
-    f3 = y[..., 2:]
-
-    x31 = x21 + x32
-    x21_x31 = x21/x31
-    x21_x32 = x21/x32
-    x21x21_x31x32 = x21_x31 * x21_x32
-
-    # Calculate integral over the subintervals (eqn (8) of Reference [2])
-    coeff1 = 3 - x21_x31
-    coeff2 = 3 + x21x21_x31x32 + x21_x31
-    coeff3 = -x21x21_x31x32
-
-    return x21/6 * (coeff1*f1 + coeff2*f2 + coeff3*f3)
-
-
-def _ensure_float_array(arr: npt.ArrayLike) -> np.ndarray:
-    arr = np.asarray(arr)
-    if np.issubdtype(arr.dtype, np.integer):
-        arr = arr.astype(float, copy=False)
-    return arr
-
-
-def cumulative_simpson(y, *, x=None, dx=1.0, axis=-1, initial=None):
-    r"""
-    Cumulatively integrate y(x) using the composite Simpson's 1/3 rule.
-    The integral of the samples at every point is calculated by assuming a 
-    quadratic relationship between each point and the two adjacent points.
-
-    Parameters
-    ----------
-    y : array_like
-        Values to integrate. Requires at least one point along `axis`. If two or fewer
-        points are provided along `axis`, Simpson's integration is not possible and the
-        result is calculated with `cumulative_trapezoid`.
-    x : array_like, optional
-        The coordinate to integrate along. Must have the same shape as `y` or
-        must be 1D with the same length as `y` along `axis`. `x` must also be
-        strictly increasing along `axis`.
-        If `x` is None (default), integration is performed using spacing `dx`
-        between consecutive elements in `y`.
-    dx : scalar or array_like, optional
-        Spacing between elements of `y`. Only used if `x` is None. Can either 
-        be a float, or an array with the same shape as `y`, but of length one along
-        `axis`. Default is 1.0.
-    axis : int, optional
-        Specifies the axis to integrate along. Default is -1 (last axis).
-    initial : scalar or array_like, optional
-        If given, insert this value at the beginning of the returned result,
-        and add it to the rest of the result. Default is None, which means no
-        value at ``x[0]`` is returned and `res` has one element less than `y`
-        along the axis of integration. Can either be a float, or an array with
-        the same shape as `y`, but of length one along `axis`.
-
-    Returns
-    -------
-    res : ndarray
-        The result of cumulative integration of `y` along `axis`.
-        If `initial` is None, the shape is such that the axis of integration
-        has one less value than `y`. If `initial` is given, the shape is equal
-        to that of `y`.
-
-    See Also
-    --------
-    numpy.cumsum
-    cumulative_trapezoid : cumulative integration using the composite 
-        trapezoidal rule
-    simpson : integrator for sampled data using the Composite Simpson's Rule
-
-    Notes
-    -----
-
-    .. versionadded:: 1.12.0
-
-    The composite Simpson's 1/3 method can be used to approximate the definite 
-    integral of a sampled input function :math:`y(x)` [1]_. The method assumes 
-    a quadratic relationship over the interval containing any three consecutive
-    sampled points.
-
-    Consider three consecutive points: 
-    :math:`(x_1, y_1), (x_2, y_2), (x_3, y_3)`.
-
-    Assuming a quadratic relationship over the three points, the integral over
-    the subinterval between :math:`x_1` and :math:`x_2` is given by formula
-    (8) of [2]_:
-    
-    .. math::
-        \int_{x_1}^{x_2} y(x) dx\ &= \frac{x_2-x_1}{6}\left[\
-        \left\{3-\frac{x_2-x_1}{x_3-x_1}\right\} y_1 + \
-        \left\{3 + \frac{(x_2-x_1)^2}{(x_3-x_2)(x_3-x_1)} + \
-        \frac{x_2-x_1}{x_3-x_1}\right\} y_2\\
-        - \frac{(x_2-x_1)^2}{(x_3-x_2)(x_3-x_1)} y_3\right]
-
-    The integral between :math:`x_2` and :math:`x_3` is given by swapping
-    appearances of :math:`x_1` and :math:`x_3`. The integral is estimated
-    separately for each subinterval and then cumulatively summed to obtain
-    the final result.
-    
-    For samples that are equally spaced, the result is exact if the function
-    is a polynomial of order three or less [1]_ and the number of subintervals
-    is even. Otherwise, the integral is exact for polynomials of order two or
-    less. 
-
-    References
-    ----------
-    .. [1] Wikipedia page: https://en.wikipedia.org/wiki/Simpson's_rule
-    .. [2] Cartwright, Kenneth V. Simpson's Rule Cumulative Integration with
-            MS Excel and Irregularly-spaced Data. Journal of Mathematical
-            Sciences and Mathematics Education. 12 (2): 1-9
-
-    Examples
-    --------
-    >>> from scipy import integrate
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(-2, 2, num=20)
-    >>> y = x**2
-    >>> y_int = integrate.cumulative_simpson(y, x=x, initial=0)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, y_int, 'ro', x, x**3/3 - (x[0])**3/3, 'b-')
-    >>> ax.grid()
-    >>> plt.show()
-
-    The output of `cumulative_simpson` is similar to that of iteratively
-    calling `simpson` with successively higher upper limits of integration, but
-    not identical.
-
-    >>> def cumulative_simpson_reference(y, x):
-    ...     return np.asarray([integrate.simpson(y[:i], x=x[:i])
-    ...                        for i in range(2, len(y) + 1)])
-    >>>
-    >>> rng = np.random.default_rng(354673834679465)
-    >>> x, y = rng.random(size=(2, 10))
-    >>> x.sort()
-    >>>
-    >>> res = integrate.cumulative_simpson(y, x=x)
-    >>> ref = cumulative_simpson_reference(y, x)
-    >>> equal = np.abs(res - ref) < 1e-15
-    >>> equal  # not equal when `simpson` has even number of subintervals
-    array([False,  True, False,  True, False,  True, False,  True,  True])
-
-    This is expected: because `cumulative_simpson` has access to more
-    information than `simpson`, it can typically produce more accurate
-    estimates of the underlying integral over subintervals.
-
-    """
-    y = _ensure_float_array(y)
-
-    # validate `axis` and standardize to work along the last axis
-    original_y = y
-    original_shape = y.shape
-    try:
-        y = np.swapaxes(y, axis, -1)
-    except IndexError as e:
-        message = f"`axis={axis}` is not valid for `y` with `y.ndim={y.ndim}`."
-        raise ValueError(message) from e
-    if y.shape[-1] < 3:
-        res = cumulative_trapezoid(original_y, x, dx=dx, axis=axis, initial=None)
-        res = np.swapaxes(res, axis, -1)
-
-    elif x is not None:
-        x = _ensure_float_array(x)
-        message = ("If given, shape of `x` must be the same as `y` or 1-D with "
-                   "the same length as `y` along `axis`.")
-        if not (x.shape == original_shape
-                or (x.ndim == 1 and len(x) == original_shape[axis])):
-            raise ValueError(message)
-
-        x = np.broadcast_to(x, y.shape) if x.ndim == 1 else np.swapaxes(x, axis, -1)
-        dx = np.diff(x, axis=-1)
-        if np.any(dx <= 0):
-            raise ValueError("Input x must be strictly increasing.")
-        res = _cumulatively_sum_simpson_integrals(
-            y, dx, _cumulative_simpson_unequal_intervals
-        )
-
-    else:
-        dx = _ensure_float_array(dx)
-        final_dx_shape = tupleset(original_shape, axis, original_shape[axis] - 1)
-        alt_input_dx_shape = tupleset(original_shape, axis, 1)
-        message = ("If provided, `dx` must either be a scalar or have the same "
-                   "shape as `y` but with only 1 point along `axis`.")
-        if not (dx.ndim == 0 or dx.shape == alt_input_dx_shape):
-            raise ValueError(message)
-        dx = np.broadcast_to(dx, final_dx_shape)
-        dx = np.swapaxes(dx, axis, -1)
-        res = _cumulatively_sum_simpson_integrals(
-            y, dx, _cumulative_simpson_equal_intervals
-        )
-
-    if initial is not None:
-        initial = _ensure_float_array(initial)
-        alt_initial_input_shape = tupleset(original_shape, axis, 1)
-        message = ("If provided, `initial` must either be a scalar or have the "
-                   "same shape as `y` but with only 1 point along `axis`.")
-        if not (initial.ndim == 0 or initial.shape == alt_initial_input_shape):
-            raise ValueError(message)
-        initial = np.broadcast_to(initial, alt_initial_input_shape)
-        initial = np.swapaxes(initial, axis, -1)
-
-        res += initial
-        res = np.concatenate((initial, res), axis=-1)
-
-    res = np.swapaxes(res, -1, axis)
-    return res
-
-
-def romb(y, dx=1.0, axis=-1, show=False):
-    """
-    Romberg integration using samples of a function.
-
-    Parameters
-    ----------
-    y : array_like
-        A vector of ``2**k + 1`` equally-spaced samples of a function.
-    dx : float, optional
-        The sample spacing. Default is 1.
-    axis : int, optional
-        The axis along which to integrate. Default is -1 (last axis).
-    show : bool, optional
-        When `y` is a single 1-D array, then if this argument is True
-        print the table showing Richardson extrapolation from the
-        samples. Default is False.
-
-    Returns
-    -------
-    romb : ndarray
-        The integrated result for `axis`.
-
-    See Also
-    --------
-    quad : adaptive quadrature using QUADPACK
-    fixed_quad : fixed-order Gaussian quadrature
-    dblquad : double integrals
-    tplquad : triple integrals
-    simpson : integrators for sampled data
-    cumulative_trapezoid : cumulative integration for sampled data
-
-    Examples
-    --------
-    >>> from scipy import integrate
-    >>> import numpy as np
-    >>> x = np.arange(10, 14.25, 0.25)
-    >>> y = np.arange(3, 12)
-
-    >>> integrate.romb(y)
-    56.0
-
-    >>> y = np.sin(np.power(x, 2.5))
-    >>> integrate.romb(y)
-    -0.742561336672229
-
-    >>> integrate.romb(y, show=True)
-    Richardson Extrapolation Table for Romberg Integration
-    ======================================================
-    -0.81576
-     4.63862  6.45674
-    -1.10581 -3.02062 -3.65245
-    -2.57379 -3.06311 -3.06595 -3.05664
-    -1.34093 -0.92997 -0.78776 -0.75160 -0.74256
-    ======================================================
-    -0.742561336672229  # may vary
-
-    """
-    y = np.asarray(y)
-    nd = len(y.shape)
-    Nsamps = y.shape[axis]
-    Ninterv = Nsamps-1
-    n = 1
-    k = 0
-    while n < Ninterv:
-        n <<= 1
-        k += 1
-    if n != Ninterv:
-        raise ValueError("Number of samples must be one plus a "
-                         "non-negative power of 2.")
-
-    R = {}
-    slice_all = (slice(None),) * nd
-    slice0 = tupleset(slice_all, axis, 0)
-    slicem1 = tupleset(slice_all, axis, -1)
-    h = Ninterv * np.asarray(dx, dtype=float)
-    R[(0, 0)] = (y[slice0] + y[slicem1])/2.0*h
-    slice_R = slice_all
-    start = stop = step = Ninterv
-    for i in range(1, k+1):
-        start >>= 1
-        slice_R = tupleset(slice_R, axis, slice(start, stop, step))
-        step >>= 1
-        R[(i, 0)] = 0.5*(R[(i-1, 0)] + h*y[slice_R].sum(axis=axis))
-        for j in range(1, i+1):
-            prev = R[(i, j-1)]
-            R[(i, j)] = prev + (prev-R[(i-1, j-1)]) / ((1 << (2*j))-1)
-        h /= 2.0
-
-    if show:
-        if not np.isscalar(R[(0, 0)]):
-            print("*** Printing table only supported for integrals" +
-                  " of a single data set.")
-        else:
-            try:
-                precis = show[0]
-            except (TypeError, IndexError):
-                precis = 5
-            try:
-                width = show[1]
-            except (TypeError, IndexError):
-                width = 8
-            formstr = "%%%d.%df" % (width, precis)
-
-            title = "Richardson Extrapolation Table for Romberg Integration"
-            print(title, "=" * len(title), sep="\n", end="\n")
-            for i in range(k+1):
-                for j in range(i+1):
-                    print(formstr % R[(i, j)], end=" ")
-                print()
-            print("=" * len(title))
-
-    return R[(k, k)]
-
-# Romberg quadratures for numeric integration.
-#
-# Written by Scott M. Ransom 
-# last revision: 14 Nov 98
-#
-# Cosmetic changes by Konrad Hinsen 
-# last revision: 1999-7-21
-#
-# Adapted to SciPy by Travis Oliphant 
-# last revision: Dec 2001
-
-
-def _difftrap(function, interval, numtraps):
-    """
-    Perform part of the trapezoidal rule to integrate a function.
-    Assume that we had called difftrap with all lower powers-of-2
-    starting with 1. Calling difftrap only returns the summation
-    of the new ordinates. It does _not_ multiply by the width
-    of the trapezoids. This must be performed by the caller.
-        'function' is the function to evaluate (must accept vector arguments).
-        'interval' is a sequence with lower and upper limits
-                   of integration.
-        'numtraps' is the number of trapezoids to use (must be a
-                   power-of-2).
-    """
-    if numtraps <= 0:
-        raise ValueError("numtraps must be > 0 in difftrap().")
-    elif numtraps == 1:
-        return 0.5*(function(interval[0])+function(interval[1]))
-    else:
-        numtosum = numtraps/2
-        h = float(interval[1]-interval[0])/numtosum
-        lox = interval[0] + 0.5 * h
-        points = lox + h * np.arange(numtosum)
-        s = np.sum(function(points), axis=0)
-        return s
-
-
-def _romberg_diff(b, c, k):
-    """
-    Compute the differences for the Romberg quadrature corrections.
-    See Forman Acton's "Real Computing Made Real," p 143.
-    """
-    tmp = 4.0**k
-    return (tmp * c - b)/(tmp - 1.0)
-
-
-def _printresmat(function, interval, resmat):
-    # Print the Romberg result matrix.
-    i = j = 0
-    print('Romberg integration of', repr(function), end=' ')
-    print('from', interval)
-    print('')
-    print('%6s %9s %9s' % ('Steps', 'StepSize', 'Results'))
-    for i in range(len(resmat)):
-        print('%6d %9f' % (2**i, (interval[1]-interval[0])/(2.**i)), end=' ')
-        for j in range(i+1):
-            print('%9f' % (resmat[i][j]), end=' ')
-        print('')
-    print('')
-    print('The final result is', resmat[i][j], end=' ')
-    print('after', 2**(len(resmat)-1)+1, 'function evaluations.')
-
-
-@_deprecated("`scipy.integrate.romberg` is deprecated as of SciPy 1.12.0"
-             "and will be removed in SciPy 1.15.0. Please use"
-             "`scipy.integrate.quad` instead.")
-def romberg(function, a, b, args=(), tol=1.48e-8, rtol=1.48e-8, show=False,
-            divmax=10, vec_func=False):
-    """
-    Romberg integration of a callable function or method.
-
-    .. deprecated:: 1.12.0
-
-          This function is deprecated as of SciPy 1.12.0 and will be removed
-          in SciPy 1.15.0. Please use `scipy.integrate.quad` instead.
-
-    Returns the integral of `function` (a function of one variable)
-    over the interval (`a`, `b`).
-
-    If `show` is 1, the triangular array of the intermediate results
-    will be printed. If `vec_func` is True (default is False), then
-    `function` is assumed to support vector arguments.
-
-    Parameters
-    ----------
-    function : callable
-        Function to be integrated.
-    a : float
-        Lower limit of integration.
-    b : float
-        Upper limit of integration.
-
-    Returns
-    -------
-    results : float
-        Result of the integration.
-
-    Other Parameters
-    ----------------
-    args : tuple, optional
-        Extra arguments to pass to function. Each element of `args` will
-        be passed as a single argument to `func`. Default is to pass no
-        extra arguments.
-    tol, rtol : float, optional
-        The desired absolute and relative tolerances. Defaults are 1.48e-8.
-    show : bool, optional
-        Whether to print the results. Default is False.
-    divmax : int, optional
-        Maximum order of extrapolation. Default is 10.
-    vec_func : bool, optional
-        Whether `func` handles arrays as arguments (i.e., whether it is a
-        "vector" function). Default is False.
-
-    See Also
-    --------
-    fixed_quad : Fixed-order Gaussian quadrature.
-    quad : Adaptive quadrature using QUADPACK.
-    dblquad : Double integrals.
-    tplquad : Triple integrals.
-    romb : Integrators for sampled data.
-    simpson : Integrators for sampled data.
-    cumulative_trapezoid : Cumulative integration for sampled data.
-
-    References
-    ----------
-    .. [1] 'Romberg's method' https://en.wikipedia.org/wiki/Romberg%27s_method
-
-    Examples
-    --------
-    Integrate a gaussian from 0 to 1 and compare to the error function.
-
-    >>> from scipy import integrate
-    >>> from scipy.special import erf
-    >>> import numpy as np
-    >>> gaussian = lambda x: 1/np.sqrt(np.pi) * np.exp(-x**2)
-    >>> result = integrate.romberg(gaussian, 0, 1, show=True)
-    Romberg integration of  from [0, 1]
-
-    ::
-
-       Steps  StepSize  Results
-           1  1.000000  0.385872
-           2  0.500000  0.412631  0.421551
-           4  0.250000  0.419184  0.421368  0.421356
-           8  0.125000  0.420810  0.421352  0.421350  0.421350
-          16  0.062500  0.421215  0.421350  0.421350  0.421350  0.421350
-          32  0.031250  0.421317  0.421350  0.421350  0.421350  0.421350  0.421350
-
-    The final result is 0.421350396475 after 33 function evaluations.
-
-    >>> print("%g %g" % (2*result, erf(1)))
-    0.842701 0.842701
-
-    """
-    if np.isinf(a) or np.isinf(b):
-        raise ValueError("Romberg integration only available "
-                         "for finite limits.")
-    vfunc = vectorize1(function, args, vec_func=vec_func)
-    n = 1
-    interval = [a, b]
-    intrange = b - a
-    ordsum = _difftrap(vfunc, interval, n)
-    result = intrange * ordsum
-    resmat = [[result]]
-    err = np.inf
-    last_row = resmat[0]
-    for i in range(1, divmax+1):
-        n *= 2
-        ordsum += _difftrap(vfunc, interval, n)
-        row = [intrange * ordsum / n]
-        for k in range(i):
-            row.append(_romberg_diff(last_row[k], row[k], k+1))
-        result = row[i]
-        lastresult = last_row[i-1]
-        if show:
-            resmat.append(row)
-        err = abs(result - lastresult)
-        if err < tol or err < rtol * abs(result):
-            break
-        last_row = row
-    else:
-        warnings.warn(
-            "divmax (%d) exceeded. Latest difference = %e" % (divmax, err),
-            AccuracyWarning, stacklevel=2)
-
-    if show:
-        _printresmat(vfunc, interval, resmat)
-    return result
-
-
-# Coefficients for Newton-Cotes quadrature
-#
-# These are the points being used
-#  to construct the local interpolating polynomial
-#  a are the weights for Newton-Cotes integration
-#  B is the error coefficient.
-#  error in these coefficients grows as N gets larger.
-#  or as samples are closer and closer together
-
-# You can use maxima to find these rational coefficients
-#  for equally spaced data using the commands
-#  a(i,N) := (integrate(product(r-j,j,0,i-1) * product(r-j,j,i+1,N),r,0,N)
-#             / ((N-i)! * i!) * (-1)^(N-i));
-#  Be(N) := N^(N+2)/(N+2)! * (N/(N+3) - sum((i/N)^(N+2)*a(i,N),i,0,N));
-#  Bo(N) := N^(N+1)/(N+1)! * (N/(N+2) - sum((i/N)^(N+1)*a(i,N),i,0,N));
-#  B(N) := (if (mod(N,2)=0) then Be(N) else Bo(N));
-#
-# pre-computed for equally-spaced weights
-#
-# num_a, den_a, int_a, num_B, den_B = _builtincoeffs[N]
-#
-#  a = num_a*array(int_a)/den_a
-#  B = num_B*1.0 / den_B
-#
-#  integrate(f(x),x,x_0,x_N) = dx*sum(a*f(x_i)) + B*(dx)^(2k+3) f^(2k+2)(x*)
-#    where k = N // 2
-#
-_builtincoeffs = {
-    1: (1,2,[1,1],-1,12),
-    2: (1,3,[1,4,1],-1,90),
-    3: (3,8,[1,3,3,1],-3,80),
-    4: (2,45,[7,32,12,32,7],-8,945),
-    5: (5,288,[19,75,50,50,75,19],-275,12096),
-    6: (1,140,[41,216,27,272,27,216,41],-9,1400),
-    7: (7,17280,[751,3577,1323,2989,2989,1323,3577,751],-8183,518400),
-    8: (4,14175,[989,5888,-928,10496,-4540,10496,-928,5888,989],
-        -2368,467775),
-    9: (9,89600,[2857,15741,1080,19344,5778,5778,19344,1080,
-                 15741,2857], -4671, 394240),
-    10: (5,299376,[16067,106300,-48525,272400,-260550,427368,
-                   -260550,272400,-48525,106300,16067],
-         -673175, 163459296),
-    11: (11,87091200,[2171465,13486539,-3237113, 25226685,-9595542,
-                      15493566,15493566,-9595542,25226685,-3237113,
-                      13486539,2171465], -2224234463, 237758976000),
-    12: (1, 5255250, [1364651,9903168,-7587864,35725120,-51491295,
-                      87516288,-87797136,87516288,-51491295,35725120,
-                      -7587864,9903168,1364651], -3012, 875875),
-    13: (13, 402361344000,[8181904909, 56280729661, -31268252574,
-                           156074417954,-151659573325,206683437987,
-                           -43111992612,-43111992612,206683437987,
-                           -151659573325,156074417954,-31268252574,
-                           56280729661,8181904909], -2639651053,
-         344881152000),
-    14: (7, 2501928000, [90241897,710986864,-770720657,3501442784,
-                         -6625093363,12630121616,-16802270373,19534438464,
-                         -16802270373,12630121616,-6625093363,3501442784,
-                         -770720657,710986864,90241897], -3740727473,
-         1275983280000)
-    }
-
-
-def newton_cotes(rn, equal=0):
-    r"""
-    Return weights and error coefficient for Newton-Cotes integration.
-
-    Suppose we have (N+1) samples of f at the positions
-    x_0, x_1, ..., x_N. Then an N-point Newton-Cotes formula for the
-    integral between x_0 and x_N is:
-
-    :math:`\int_{x_0}^{x_N} f(x)dx = \Delta x \sum_{i=0}^{N} a_i f(x_i)
-    + B_N (\Delta x)^{N+2} f^{N+1} (\xi)`
-
-    where :math:`\xi \in [x_0,x_N]`
-    and :math:`\Delta x = \frac{x_N-x_0}{N}` is the average samples spacing.
-
-    If the samples are equally-spaced and N is even, then the error
-    term is :math:`B_N (\Delta x)^{N+3} f^{N+2}(\xi)`.
-
-    Parameters
-    ----------
-    rn : int
-        The integer order for equally-spaced data or the relative positions of
-        the samples with the first sample at 0 and the last at N, where N+1 is
-        the length of `rn`. N is the order of the Newton-Cotes integration.
-    equal : int, optional
-        Set to 1 to enforce equally spaced data.
-
-    Returns
-    -------
-    an : ndarray
-        1-D array of weights to apply to the function at the provided sample
-        positions.
-    B : float
-        Error coefficient.
-
-    Notes
-    -----
-    Normally, the Newton-Cotes rules are used on smaller integration
-    regions and a composite rule is used to return the total integral.
-
-    Examples
-    --------
-    Compute the integral of sin(x) in [0, :math:`\pi`]:
-
-    >>> from scipy.integrate import newton_cotes
-    >>> import numpy as np
-    >>> def f(x):
-    ...     return np.sin(x)
-    >>> a = 0
-    >>> b = np.pi
-    >>> exact = 2
-    >>> for N in [2, 4, 6, 8, 10]:
-    ...     x = np.linspace(a, b, N + 1)
-    ...     an, B = newton_cotes(N, 1)
-    ...     dx = (b - a) / N
-    ...     quad = dx * np.sum(an * f(x))
-    ...     error = abs(quad - exact)
-    ...     print('{:2d}  {:10.9f}  {:.5e}'.format(N, quad, error))
-    ...
-     2   2.094395102   9.43951e-02
-     4   1.998570732   1.42927e-03
-     6   2.000017814   1.78136e-05
-     8   1.999999835   1.64725e-07
-    10   2.000000001   1.14677e-09
-
-    """
-    try:
-        N = len(rn)-1
-        if equal:
-            rn = np.arange(N+1)
-        elif np.all(np.diff(rn) == 1):
-            equal = 1
-    except Exception:
-        N = rn
-        rn = np.arange(N+1)
-        equal = 1
-
-    if equal and N in _builtincoeffs:
-        na, da, vi, nb, db = _builtincoeffs[N]
-        an = na * np.array(vi, dtype=float) / da
-        return an, float(nb)/db
-
-    if (rn[0] != 0) or (rn[-1] != N):
-        raise ValueError("The sample positions must start at 0"
-                         " and end at N")
-    yi = rn / float(N)
-    ti = 2 * yi - 1
-    nvec = np.arange(N+1)
-    C = ti ** nvec[:, np.newaxis]
-    Cinv = np.linalg.inv(C)
-    # improve precision of result
-    for i in range(2):
-        Cinv = 2*Cinv - Cinv.dot(C).dot(Cinv)
-    vec = 2.0 / (nvec[::2]+1)
-    ai = Cinv[:, ::2].dot(vec) * (N / 2.)
-
-    if (N % 2 == 0) and equal:
-        BN = N/(N+3.)
-        power = N+2
-    else:
-        BN = N/(N+2.)
-        power = N+1
-
-    BN = BN - np.dot(yi**power, ai)
-    p1 = power+1
-    fac = power*math.log(N) - gammaln(p1)
-    fac = math.exp(fac)
-    return ai, BN*fac
-
-
-def _qmc_quad_iv(func, a, b, n_points, n_estimates, qrng, log):
-
-    # lazy import to avoid issues with partially-initialized submodule
-    if not hasattr(qmc_quad, 'qmc'):
-        from scipy import stats
-        qmc_quad.stats = stats
-    else:
-        stats = qmc_quad.stats
-
-    if not callable(func):
-        message = "`func` must be callable."
-        raise TypeError(message)
-
-    # a, b will be modified, so copy. Oh well if it's copied twice.
-    a = np.atleast_1d(a).copy()
-    b = np.atleast_1d(b).copy()
-    a, b = np.broadcast_arrays(a, b)
-    dim = a.shape[0]
-
-    try:
-        func((a + b) / 2)
-    except Exception as e:
-        message = ("`func` must evaluate the integrand at points within "
-                   "the integration range; e.g. `func( (a + b) / 2)` "
-                   "must return the integrand at the centroid of the "
-                   "integration volume.")
-        raise ValueError(message) from e
-
-    try:
-        func(np.array([a, b]).T)
-        vfunc = func
-    except Exception as e:
-        message = ("Exception encountered when attempting vectorized call to "
-                   f"`func`: {e}. For better performance, `func` should "
-                   "accept two-dimensional array `x` with shape `(len(a), "
-                   "n_points)` and return an array of the integrand value at "
-                   "each of the `n_points.")
-        warnings.warn(message, stacklevel=3)
-
-        def vfunc(x):
-            return np.apply_along_axis(func, axis=-1, arr=x)
-
-    n_points_int = np.int64(n_points)
-    if n_points != n_points_int:
-        message = "`n_points` must be an integer."
-        raise TypeError(message)
-
-    n_estimates_int = np.int64(n_estimates)
-    if n_estimates != n_estimates_int:
-        message = "`n_estimates` must be an integer."
-        raise TypeError(message)
-
-    if qrng is None:
-        qrng = stats.qmc.Halton(dim)
-    elif not isinstance(qrng, stats.qmc.QMCEngine):
-        message = "`qrng` must be an instance of scipy.stats.qmc.QMCEngine."
-        raise TypeError(message)
-
-    if qrng.d != a.shape[0]:
-        message = ("`qrng` must be initialized with dimensionality equal to "
-                   "the number of variables in `a`, i.e., "
-                   "`qrng.random().shape[-1]` must equal `a.shape[0]`.")
-        raise ValueError(message)
-
-    rng_seed = getattr(qrng, 'rng_seed', None)
-    rng = stats._qmc.check_random_state(rng_seed)
-
-    if log not in {True, False}:
-        message = "`log` must be boolean (`True` or `False`)."
-        raise TypeError(message)
-
-    return (vfunc, a, b, n_points_int, n_estimates_int, qrng, rng, log, stats)
-
-
-QMCQuadResult = namedtuple('QMCQuadResult', ['integral', 'standard_error'])
-
-
-def qmc_quad(func, a, b, *, n_estimates=8, n_points=1024, qrng=None,
-             log=False):
-    """
-    Compute an integral in N-dimensions using Quasi-Monte Carlo quadrature.
-
-    Parameters
-    ----------
-    func : callable
-        The integrand. Must accept a single argument ``x``, an array which
-        specifies the point(s) at which to evaluate the scalar-valued
-        integrand, and return the value(s) of the integrand.
-        For efficiency, the function should be vectorized to accept an array of
-        shape ``(d, n_points)``, where ``d`` is the number of variables (i.e.
-        the dimensionality of the function domain) and `n_points` is the number
-        of quadrature points, and return an array of shape ``(n_points,)``,
-        the integrand at each quadrature point.
-    a, b : array-like
-        One-dimensional arrays specifying the lower and upper integration
-        limits, respectively, of each of the ``d`` variables.
-    n_estimates, n_points : int, optional
-        `n_estimates` (default: 8) statistically independent QMC samples, each
-        of `n_points` (default: 1024) points, will be generated by `qrng`.
-        The total number of points at which the integrand `func` will be
-        evaluated is ``n_points * n_estimates``. See Notes for details.
-    qrng : `~scipy.stats.qmc.QMCEngine`, optional
-        An instance of the QMCEngine from which to sample QMC points.
-        The QMCEngine must be initialized to a number of dimensions ``d``
-        corresponding with the number of variables ``x1, ..., xd`` passed to
-        `func`.
-        The provided QMCEngine is used to produce the first integral estimate.
-        If `n_estimates` is greater than one, additional QMCEngines are
-        spawned from the first (with scrambling enabled, if it is an option.)
-        If a QMCEngine is not provided, the default `scipy.stats.qmc.Halton`
-        will be initialized with the number of dimensions determine from
-        the length of `a`.
-    log : boolean, default: False
-        When set to True, `func` returns the log of the integrand, and
-        the result object contains the log of the integral.
-
-    Returns
-    -------
-    result : object
-        A result object with attributes:
-
-        integral : float
-            The estimate of the integral.
-        standard_error :
-            The error estimate. See Notes for interpretation.
-
-    Notes
-    -----
-    Values of the integrand at each of the `n_points` points of a QMC sample
-    are used to produce an estimate of the integral. This estimate is drawn
-    from a population of possible estimates of the integral, the value of
-    which we obtain depends on the particular points at which the integral
-    was evaluated. We perform this process `n_estimates` times, each time
-    evaluating the integrand at different scrambled QMC points, effectively
-    drawing i.i.d. random samples from the population of integral estimates.
-    The sample mean :math:`m` of these integral estimates is an
-    unbiased estimator of the true value of the integral, and the standard
-    error of the mean :math:`s` of these estimates may be used to generate
-    confidence intervals using the t distribution with ``n_estimates - 1``
-    degrees of freedom. Perhaps counter-intuitively, increasing `n_points`
-    while keeping the total number of function evaluation points
-    ``n_points * n_estimates`` fixed tends to reduce the actual error, whereas
-    increasing `n_estimates` tends to decrease the error estimate.
-
-    Examples
-    --------
-    QMC quadrature is particularly useful for computing integrals in higher
-    dimensions. An example integrand is the probability density function
-    of a multivariate normal distribution.
-
-    >>> import numpy as np
-    >>> from scipy import stats
-    >>> dim = 8
-    >>> mean = np.zeros(dim)
-    >>> cov = np.eye(dim)
-    >>> def func(x):
-    ...     # `multivariate_normal` expects the _last_ axis to correspond with
-    ...     # the dimensionality of the space, so `x` must be transposed
-    ...     return stats.multivariate_normal.pdf(x.T, mean, cov)
-
-    To compute the integral over the unit hypercube:
-
-    >>> from scipy.integrate import qmc_quad
-    >>> a = np.zeros(dim)
-    >>> b = np.ones(dim)
-    >>> rng = np.random.default_rng()
-    >>> qrng = stats.qmc.Halton(d=dim, seed=rng)
-    >>> n_estimates = 8
-    >>> res = qmc_quad(func, a, b, n_estimates=n_estimates, qrng=qrng)
-    >>> res.integral, res.standard_error
-    (0.00018429555666024108, 1.0389431116001344e-07)
-
-    A two-sided, 99% confidence interval for the integral may be estimated
-    as:
-
-    >>> t = stats.t(df=n_estimates-1, loc=res.integral,
-    ...             scale=res.standard_error)
-    >>> t.interval(0.99)
-    (0.0001839319802536469, 0.00018465913306683527)
-
-    Indeed, the value reported by `scipy.stats.multivariate_normal` is
-    within this range.
-
-    >>> stats.multivariate_normal.cdf(b, mean, cov, lower_limit=a)
-    0.00018430867675187443
-
-    """
-    args = _qmc_quad_iv(func, a, b, n_points, n_estimates, qrng, log)
-    func, a, b, n_points, n_estimates, qrng, rng, log, stats = args
-
-    def sum_product(integrands, dA, log=False):
-        if log:
-            return logsumexp(integrands) + np.log(dA)
-        else:
-            return np.sum(integrands * dA)
-
-    def mean(estimates, log=False):
-        if log:
-            return logsumexp(estimates) - np.log(n_estimates)
-        else:
-            return np.mean(estimates)
-
-    def std(estimates, m=None, ddof=0, log=False):
-        m = m or mean(estimates, log)
-        if log:
-            estimates, m = np.broadcast_arrays(estimates, m)
-            temp = np.vstack((estimates, m + np.pi * 1j))
-            diff = logsumexp(temp, axis=0)
-            return np.real(0.5 * (logsumexp(2 * diff)
-                                  - np.log(n_estimates - ddof)))
-        else:
-            return np.std(estimates, ddof=ddof)
-
-    def sem(estimates, m=None, s=None, log=False):
-        m = m or mean(estimates, log)
-        s = s or std(estimates, m, ddof=1, log=log)
-        if log:
-            return s - 0.5*np.log(n_estimates)
-        else:
-            return s / np.sqrt(n_estimates)
-
-    # The sign of the integral depends on the order of the limits. Fix this by
-    # ensuring that lower bounds are indeed lower and setting sign of resulting
-    # integral manually
-    if np.any(a == b):
-        message = ("A lower limit was equal to an upper limit, so the value "
-                   "of the integral is zero by definition.")
-        warnings.warn(message, stacklevel=2)
-        return QMCQuadResult(-np.inf if log else 0, 0)
-
-    i_swap = b < a
-    sign = (-1)**(i_swap.sum(axis=-1))  # odd # of swaps -> negative
-    a[i_swap], b[i_swap] = b[i_swap], a[i_swap]
-
-    A = np.prod(b - a)
-    dA = A / n_points
-
-    estimates = np.zeros(n_estimates)
-    rngs = _rng_spawn(qrng.rng, n_estimates)
-    for i in range(n_estimates):
-        # Generate integral estimate
-        sample = qrng.random(n_points)
-        # The rationale for transposing is that this allows users to easily
-        # unpack `x` into separate variables, if desired. This is consistent
-        # with the `xx` array passed into the `scipy.integrate.nquad` `func`.
-        x = stats.qmc.scale(sample, a, b).T  # (n_dim, n_points)
-        integrands = func(x)
-        estimates[i] = sum_product(integrands, dA, log)
-
-        # Get a new, independently-scrambled QRNG for next time
-        qrng = type(qrng)(seed=rngs[i], **qrng._init_quad)
-
-    integral = mean(estimates, log)
-    standard_error = sem(estimates, m=integral, log=log)
-    integral = integral + np.pi*1j if (log and sign < 0) else integral*sign
-    return QMCQuadResult(integral, standard_error)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_tanhsinh.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_tanhsinh.py
deleted file mode 100644
index 28f17cc65bc561f389640805969de3eb7c36a784..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_tanhsinh.py
+++ /dev/null
@@ -1,1231 +0,0 @@
-# mypy: disable-error-code="attr-defined"
-import numpy as np
-from scipy import special
-import scipy._lib._elementwise_iterative_method as eim
-from scipy._lib._util import _RichResult
-
-# todo:
-#  figure out warning situation
-#  address https://github.com/scipy/scipy/pull/18650#discussion_r1233032521
-#  without `minweight`, we are also suppressing infinities within the interval.
-#    Is that OK? If so, we can probably get rid of `status=3`.
-#  Add heuristic to stop when improvement is too slow / antithrashing
-#  support singularities? interval subdivision? this feature will be added
-#    eventually, but do we adjust the interface now?
-#  When doing log-integration, should the tolerances control the error of the
-#    log-integral or the error of the integral?  The trouble is that `log`
-#    inherently looses some precision so it may not be possible to refine
-#    the integral further. Example: 7th moment of stats.f(15, 20)
-#  respect function evaluation limit?
-#  make public?
-
-
-def _tanhsinh(f, a, b, *, args=(), log=False, maxfun=None, maxlevel=None,
-              minlevel=2, atol=None, rtol=None, preserve_shape=False,
-              callback=None):
-    """Evaluate a convergent integral numerically using tanh-sinh quadrature.
-
-    In practice, tanh-sinh quadrature achieves quadratic convergence for
-    many integrands: the number of accurate *digits* scales roughly linearly
-    with the number of function evaluations [1]_.
-
-    Either or both of the limits of integration may be infinite, and
-    singularities at the endpoints are acceptable. Divergent integrals and
-    integrands with non-finite derivatives or singularities within an interval
-    are out of scope, but the latter may be evaluated be calling `_tanhsinh` on
-    each sub-interval separately.
-
-    Parameters
-    ----------
-    f : callable
-        The function to be integrated. The signature must be::
-            func(x: ndarray, *fargs) -> ndarray
-         where each element of ``x`` is a finite real and ``fargs`` is a tuple,
-         which may contain an arbitrary number of arrays that are broadcastable
-         with `x`. ``func`` must be an elementwise-scalar function; see
-         documentation of parameter `preserve_shape` for details.
-         If ``func`` returns a value with complex dtype when evaluated at
-         either endpoint, subsequent arguments ``x`` will have complex dtype
-         (but zero imaginary part).
-    a, b : array_like
-        Real lower and upper limits of integration. Must be broadcastable.
-        Elements may be infinite.
-    args : tuple, optional
-        Additional positional arguments to be passed to `func`. Must be arrays
-        broadcastable with `a` and `b`. If the callable to be integrated
-        requires arguments that are not broadcastable with `a` and `b`, wrap
-        that callable with `f`. See Examples.
-    log : bool, default: False
-        Setting to True indicates that `f` returns the log of the integrand
-        and that `atol` and `rtol` are expressed as the logs of the absolute
-        and relative errors. In this case, the result object will contain the
-        log of the integral and error. This is useful for integrands for which
-        numerical underflow or overflow would lead to inaccuracies.
-        When ``log=True``, the integrand (the exponential of `f`) must be real,
-        but it may be negative, in which case the log of the integrand is a
-        complex number with an imaginary part that is an odd multiple of π.
-    maxlevel : int, default: 10
-        The maximum refinement level of the algorithm.
-
-        At the zeroth level, `f` is called once, performing 16 function
-        evaluations. At each subsequent level, `f` is called once more,
-        approximately doubling the number of function evaluations that have
-        been performed. Accordingly, for many integrands, each successive level
-        will double the number of accurate digits in the result (up to the
-        limits of floating point precision).
-
-        The algorithm will terminate after completing level `maxlevel` or after
-        another termination condition is satisfied, whichever comes first.
-    minlevel : int, default: 2
-        The level at which to begin iteration (default: 2). This does not
-        change the total number of function evaluations or the abscissae at
-        which the function is evaluated; it changes only the *number of times*
-        `f` is called. If ``minlevel=k``, then the integrand is evaluated at
-        all abscissae from levels ``0`` through ``k`` in a single call.
-        Note that if `minlevel` exceeds `maxlevel`, the provided `minlevel` is
-        ignored, and `minlevel` is set equal to `maxlevel`.
-    atol, rtol : float, optional
-        Absolute termination tolerance (default: 0) and relative termination
-        tolerance (default: ``eps**0.75``, where ``eps`` is the precision of
-        the result dtype), respectively. The error estimate is as
-        described in [1]_ Section 5. While not theoretically rigorous or
-        conservative, it is said to work well in practice. Must be non-negative
-        and finite if `log` is False, and must be expressed as the log of a
-        non-negative and finite number if `log` is True.
-    preserve_shape : bool, default: False
-        In the following, "arguments of `f`" refers to the array ``x`` and
-        any arrays within ``fargs``. Let ``shape`` be the broadcasted shape
-        of `a`, `b`, and all elements of `args` (which is conceptually
-        distinct from ``fargs`` passed into `f`).
-
-        - When ``preserve_shape=False`` (default), `f` must accept arguments
-          of *any* broadcastable shapes.
-
-        - When ``preserve_shape=True``, `f` must accept arguments of shape
-          ``shape`` *or* ``shape + (n,)``, where ``(n,)`` is the number of
-          abscissae at which the function is being evaluated.
-
-        In either case, for each scalar element ``xi`` within `x`, the array
-        returned by `f` must include the scalar ``f(xi)`` at the same index.
-        Consequently, the shape of the output is always the shape of the input
-        ``x``.
-
-        See Examples.
-
-    callback : callable, optional
-        An optional user-supplied function to be called before the first
-        iteration and after each iteration.
-        Called as ``callback(res)``, where ``res`` is a ``_RichResult``
-        similar to that returned by `_differentiate` (but containing the
-        current iterate's values of all variables). If `callback` raises a
-        ``StopIteration``, the algorithm will terminate immediately and
-        `_tanhsinh` will return a result object.
-
-    Returns
-    -------
-    res : _RichResult
-        An instance of `scipy._lib._util._RichResult` with the following
-        attributes. (The descriptions are written as though the values will be
-        scalars; however, if `func` returns an array, the outputs will be
-        arrays of the same shape.)
-        success : bool
-            ``True`` when the algorithm terminated successfully (status ``0``).
-        status : int
-            An integer representing the exit status of the algorithm.
-            ``0`` : The algorithm converged to the specified tolerances.
-            ``-1`` : (unused)
-            ``-2`` : The maximum number of iterations was reached.
-            ``-3`` : A non-finite value was encountered.
-            ``-4`` : Iteration was terminated by `callback`.
-            ``1`` : The algorithm is proceeding normally (in `callback` only).
-        integral : float
-            An estimate of the integral
-        error : float
-            An estimate of the error. Only available if level two or higher
-            has been completed; otherwise NaN.
-        maxlevel : int
-            The maximum refinement level used.
-        nfev : int
-            The number of points at which `func` was evaluated.
-
-    See Also
-    --------
-    quad, quadrature
-
-    Notes
-    -----
-    Implements the algorithm as described in [1]_ with minor adaptations for
-    finite-precision arithmetic, including some described by [2]_ and [3]_. The
-    tanh-sinh scheme was originally introduced in [4]_.
-
-    Due to floating-point error in the abscissae, the function may be evaluated
-    at the endpoints of the interval during iterations. The values returned by
-    the function at the endpoints will be ignored.
-
-    References
-    ----------
-    [1] Bailey, David H., Karthik Jeyabalan, and Xiaoye S. Li. "A comparison of
-        three high-precision quadrature schemes." Experimental Mathematics 14.3
-        (2005): 317-329.
-    [2] Vanherck, Joren, Bart Sorée, and Wim Magnus. "Tanh-sinh quadrature for
-        single and multiple integration using floating-point arithmetic."
-        arXiv preprint arXiv:2007.15057 (2020).
-    [3] van Engelen, Robert A.  "Improving the Double Exponential Quadrature
-        Tanh-Sinh, Sinh-Sinh and Exp-Sinh Formulas."
-        https://www.genivia.com/files/qthsh.pdf
-    [4] Takahasi, Hidetosi, and Masatake Mori. "Double exponential formulas for
-        numerical integration." Publications of the Research Institute for
-        Mathematical Sciences 9.3 (1974): 721-741.
-
-    Example
-    -------
-    Evaluate the Gaussian integral:
-
-    >>> import numpy as np
-    >>> from scipy.integrate._tanhsinh import _tanhsinh
-    >>> def f(x):
-    ...     return np.exp(-x**2)
-    >>> res = _tanhsinh(f, -np.inf, np.inf)
-    >>> res.integral  # true value is np.sqrt(np.pi), 1.7724538509055159
-     1.7724538509055159
-    >>> res.error  # actual error is 0
-    4.0007963937534104e-16
-
-    The value of the Gaussian function (bell curve) is nearly zero for
-    arguments sufficiently far from zero, so the value of the integral
-    over a finite interval is nearly the same.
-
-    >>> _tanhsinh(f, -20, 20).integral
-    1.772453850905518
-
-    However, with unfavorable integration limits, the integration scheme
-    may not be able to find the important region.
-
-    >>> _tanhsinh(f, -np.inf, 1000).integral
-    4.500490856620352
-
-    In such cases, or when there are singularities within the interval,
-    break the integral into parts with endpoints at the important points.
-
-    >>> _tanhsinh(f, -np.inf, 0).integral + _tanhsinh(f, 0, 1000).integral
-    1.772453850905404
-
-    For integration involving very large or very small magnitudes, use
-    log-integration. (For illustrative purposes, the following example shows a
-    case in which both regular and log-integration work, but for more extreme
-    limits of integration, log-integration would avoid the underflow
-    experienced when evaluating the integral normally.)
-
-    >>> res = _tanhsinh(f, 20, 30, rtol=1e-10)
-    >>> res.integral, res.error
-    4.7819613911309014e-176, 4.670364401645202e-187
-    >>> def log_f(x):
-    ...     return -x**2
-    >>> np.exp(res.integral), np.exp(res.error)
-    4.7819613911306924e-176, 4.670364401645093e-187
-
-    The limits of integration and elements of `args` may be broadcastable
-    arrays, and integration is performed elementwise.
-
-    >>> from scipy import stats
-    >>> dist = stats.gausshyper(13.8, 3.12, 2.51, 5.18)
-    >>> a, b = dist.support()
-    >>> x = np.linspace(a, b, 100)
-    >>> res = _tanhsinh(dist.pdf, a, x)
-    >>> ref = dist.cdf(x)
-    >>> np.allclose(res.integral, ref)
-
-    By default, `preserve_shape` is False, and therefore the callable
-    `f` may be called with arrays of any broadcastable shapes.
-    For example:
-
-    >>> shapes = []
-    >>> def f(x, c):
-    ...    shape = np.broadcast_shapes(x.shape, c.shape)
-    ...    shapes.append(shape)
-    ...    return np.sin(c*x)
-    >>>
-    >>> c = [1, 10, 30, 100]
-    >>> res = _tanhsinh(f, 0, 1, args=(c,), minlevel=1)
-    >>> shapes
-    [(4,), (4, 66), (3, 64), (2, 128), (1, 256)]
-
-    To understand where these shapes are coming from - and to better
-    understand how `_tanhsinh` computes accurate results - note that
-    higher values of ``c`` correspond with higher frequency sinusoids.
-    The higher frequency sinusoids make the integrand more complicated,
-    so more function evaluations are required to achieve the target
-    accuracy:
-
-    >>> res.nfev
-    array([ 67, 131, 259, 515])
-
-    The initial ``shape``, ``(4,)``, corresponds with evaluating the
-    integrand at a single abscissa and all four frequencies; this is used
-    for input validation and to determine the size and dtype of the arrays
-    that store results. The next shape corresponds with evaluating the
-    integrand at an initial grid of abscissae and all four frequencies.
-    Successive calls to the function double the total number of abscissae at
-    which the function has been evaluated. However, in later function
-    evaluations, the integrand is evaluated at fewer frequencies because
-    the corresponding integral has already converged to the required
-    tolerance. This saves function evaluations to improve performance, but
-    it requires the function to accept arguments of any shape.
-
-    "Vector-valued" integrands, such as those written for use with
-    `scipy.integrate.quad_vec`, are unlikely to satisfy this requirement.
-    For example, consider
-
-    >>> def f(x):
-    ...    return [x, np.sin(10*x), np.cos(30*x), x*np.sin(100*x)**2]
-
-    This integrand is not compatible with `_tanhsinh` as written; for instance,
-    the shape of the output will not be the same as the shape of ``x``. Such a
-    function *could* be converted to a compatible form with the introduction of
-    additional parameters, but this would be inconvenient. In such cases,
-    a simpler solution would be to use `preserve_shape`.
-
-    >>> shapes = []
-    >>> def f(x):
-    ...     shapes.append(x.shape)
-    ...     x0, x1, x2, x3 = x
-    ...     return [x0, np.sin(10*x1), np.cos(30*x2), x3*np.sin(100*x3)]
-    >>>
-    >>> a = np.zeros(4)
-    >>> res = _tanhsinh(f, a, 1, preserve_shape=True)
-    >>> shapes
-    [(4,), (4, 66), (4, 64), (4, 128), (4, 256)]
-
-    Here, the broadcasted shape of `a` and `b` is ``(4,)``. With
-    ``preserve_shape=True``, the function may be called with argument
-    ``x`` of shape ``(4,)`` or ``(4, n)``, and this is what we observe.
-
-    """
-    (f, a, b, log, maxfun, maxlevel, minlevel,
-     atol, rtol, args, preserve_shape, callback) = _tanhsinh_iv(
-        f, a, b, log, maxfun, maxlevel, minlevel, atol,
-        rtol, args, preserve_shape, callback)
-
-    # Initialization
-    # `eim._initialize` does several important jobs, including
-    # ensuring that limits, each of the `args`, and the output of `f`
-    # broadcast correctly and are of consistent types. To save a function
-    # evaluation, I pass the midpoint of the integration interval. This comes
-    # at a cost of some gymnastics to ensure that the midpoint has the right
-    # shape and dtype. Did you know that 0d and >0d arrays follow different
-    # type promotion rules?
-    with np.errstate(over='ignore', invalid='ignore', divide='ignore'):
-        c = ((a.ravel() + b.ravel())/2).reshape(a.shape)
-        inf_a, inf_b = np.isinf(a), np.isinf(b)
-        c[inf_a] = b[inf_a] - 1  # takes care of infinite a
-        c[inf_b] = a[inf_b] + 1  # takes care of infinite b
-        c[inf_a & inf_b] = 0  # takes care of infinite a and b
-        temp = eim._initialize(f, (c,), args, complex_ok=True,
-                               preserve_shape=preserve_shape)
-    f, xs, fs, args, shape, dtype, xp = temp
-    a = np.broadcast_to(a, shape).astype(dtype).ravel()
-    b = np.broadcast_to(b, shape).astype(dtype).ravel()
-
-    # Transform improper integrals
-    a, b, a0, negative, abinf, ainf, binf = _transform_integrals(a, b)
-
-    # Define variables we'll need
-    nit, nfev = 0, 1  # one function evaluation performed above
-    zero = -np.inf if log else 0
-    pi = dtype.type(np.pi)
-    maxiter = maxlevel - minlevel + 1
-    eps = np.finfo(dtype).eps
-    if rtol is None:
-        rtol = 0.75*np.log(eps) if log else eps**0.75
-
-    Sn = np.full(shape, zero, dtype=dtype).ravel()  # latest integral estimate
-    Sn[np.isnan(a) | np.isnan(b) | np.isnan(fs[0])] = np.nan
-    Sk = np.empty_like(Sn).reshape(-1, 1)[:, 0:0]  # all integral estimates
-    aerr = np.full(shape, np.nan, dtype=dtype).ravel()  # absolute error
-    status = np.full(shape, eim._EINPROGRESS, dtype=int).ravel()
-    h0 = np.real(_get_base_step(dtype=dtype))  # base step
-
-    # For term `d4` of error estimate ([1] Section 5), we need to keep the
-    # most extreme abscissae and corresponding `fj`s, `wj`s in Euler-Maclaurin
-    # sum. Here, we initialize these variables.
-    xr0 = np.full(shape, -np.inf, dtype=dtype).ravel()
-    fr0 = np.full(shape, np.nan, dtype=dtype).ravel()
-    wr0 = np.zeros(shape, dtype=dtype).ravel()
-    xl0 = np.full(shape, np.inf, dtype=dtype).ravel()
-    fl0 = np.full(shape, np.nan, dtype=dtype).ravel()
-    wl0 = np.zeros(shape, dtype=dtype).ravel()
-    d4 = np.zeros(shape, dtype=dtype).ravel()
-
-    work = _RichResult(
-        Sn=Sn, Sk=Sk, aerr=aerr, h=h0, log=log, dtype=dtype, pi=pi, eps=eps,
-        a=a.reshape(-1, 1), b=b.reshape(-1, 1),  # integration limits
-        n=minlevel, nit=nit, nfev=nfev, status=status,  # iter/eval counts
-        xr0=xr0, fr0=fr0, wr0=wr0, xl0=xl0, fl0=fl0, wl0=wl0, d4=d4,  # err est
-        ainf=ainf, binf=binf, abinf=abinf, a0=a0.reshape(-1, 1))  # transforms
-    # Constant scalars don't need to be put in `work` unless they need to be
-    # passed outside `tanhsinh`. Examples: atol, rtol, h0, minlevel.
-
-    # Correspondence between terms in the `work` object and the result
-    res_work_pairs = [('status', 'status'), ('integral', 'Sn'),
-                      ('error', 'aerr'), ('nit', 'nit'), ('nfev', 'nfev')]
-
-    def pre_func_eval(work):
-        # Determine abscissae at which to evaluate `f`
-        work.h = h0 / 2**work.n
-        xjc, wj = _get_pairs(work.n, h0, dtype=work.dtype,
-                             inclusive=(work.n == minlevel))
-        work.xj, work.wj = _transform_to_limits(xjc, wj, work.a, work.b)
-
-        # Perform abscissae substitutions for infinite limits of integration
-        xj = work.xj.copy()
-        xj[work.abinf] = xj[work.abinf] / (1 - xj[work.abinf]**2)
-        xj[work.binf] = 1/xj[work.binf] - 1 + work.a0[work.binf]
-        xj[work.ainf] *= -1
-        return xj
-
-    def post_func_eval(x, fj, work):
-        # Weight integrand as required by substitutions for infinite limits
-        if work.log:
-            fj[work.abinf] += (np.log(1 + work.xj[work.abinf] ** 2)
-                               - 2*np.log(1 - work.xj[work.abinf] ** 2))
-            fj[work.binf] -= 2 * np.log(work.xj[work.binf])
-        else:
-            fj[work.abinf] *= ((1 + work.xj[work.abinf]**2) /
-                               (1 - work.xj[work.abinf]**2)**2)
-            fj[work.binf] *= work.xj[work.binf]**-2.
-
-        # Estimate integral with Euler-Maclaurin Sum
-        fjwj, Sn = _euler_maclaurin_sum(fj, work)
-        if work.Sk.shape[-1]:
-            Snm1 = work.Sk[:, -1]
-            Sn = (special.logsumexp([Snm1 - np.log(2), Sn], axis=0) if log
-                  else Snm1 / 2 + Sn)
-
-        work.fjwj = fjwj
-        work.Sn = Sn
-
-    def check_termination(work):
-        """Terminate due to convergence or encountering non-finite values"""
-        stop = np.zeros(work.Sn.shape, dtype=bool)
-
-        # Terminate before first iteration if integration limits are equal
-        if work.nit == 0:
-            i = (work.a == work.b).ravel()  # ravel singleton dimension
-            zero = -np.inf if log else 0
-            work.Sn[i] = zero
-            work.aerr[i] = zero
-            work.status[i] = eim._ECONVERGED
-            stop[i] = True
-        else:
-            # Terminate if convergence criterion is met
-            work.rerr, work.aerr = _estimate_error(work)
-            i = ((work.rerr < rtol) | (work.rerr + np.real(work.Sn) < atol) if log
-                 else (work.rerr < rtol) | (work.rerr * abs(work.Sn) < atol))
-            work.status[i] = eim._ECONVERGED
-            stop[i] = True
-
-        # Terminate if integral estimate becomes invalid
-        if log:
-            i = (np.isposinf(np.real(work.Sn)) | np.isnan(work.Sn)) & ~stop
-        else:
-            i = ~np.isfinite(work.Sn) & ~stop
-        work.status[i] = eim._EVALUEERR
-        stop[i] = True
-
-        return stop
-
-    def post_termination_check(work):
-        work.n += 1
-        work.Sk = np.concatenate((work.Sk, work.Sn[:, np.newaxis]), axis=-1)
-        return
-
-    def customize_result(res, shape):
-        # If the integration limits were such that b < a, we reversed them
-        # to perform the calculation, and the final result needs to be negated.
-        if log and np.any(negative):
-            pi = res['integral'].dtype.type(np.pi)
-            j = np.complex64(1j)  # minimum complex type
-            res['integral'] = res['integral'] + negative*pi*j
-        else:
-            res['integral'][negative] *= -1
-
-        # For this algorithm, it seems more appropriate to report the maximum
-        # level rather than the number of iterations in which it was performed.
-        res['maxlevel'] = minlevel + res['nit'] - 1
-        res['maxlevel'][res['nit'] == 0] = -1
-        del res['nit']
-        return shape
-
-    # Suppress all warnings initially, since there are many places in the code
-    # for which this is expected behavior.
-    with np.errstate(over='ignore', invalid='ignore', divide='ignore'):
-        res = eim._loop(work, callback, shape, maxiter, f, args, dtype, pre_func_eval,
-                        post_func_eval, check_termination, post_termination_check,
-                        customize_result, res_work_pairs, xp, preserve_shape)
-    return res
-
-
-def _get_base_step(dtype=np.float64):
-    # Compute the base step length for the provided dtype. Theoretically, the
-    # Euler-Maclaurin sum is infinite, but it gets cut off when either the
-    # weights underflow or the abscissae cannot be distinguished from the
-    # limits of integration. The latter happens to occur first for float32 and
-    # float64, and it occurs when `xjc` (the abscissa complement)
-    # in `_compute_pair` underflows. We can solve for the argument `tmax` at
-    # which it will underflow using [2] Eq. 13.
-    fmin = 4*np.finfo(dtype).tiny  # stay a little away from the limit
-    tmax = np.arcsinh(np.log(2/fmin - 1) / np.pi)
-
-    # Based on this, we can choose a base step size `h` for level 0.
-    # The number of function evaluations will be `2 + m*2^(k+1)`, where `k` is
-    # the level and `m` is an integer we get to choose. I choose
-    # m = _N_BASE_STEPS = `8` somewhat arbitrarily, but a rationale is that a
-    # power of 2 makes floating point arithmetic more predictable. It also
-    # results in a base step size close to `1`, which is what [1] uses (and I
-    # used here until I found [2] and these ideas settled).
-    h0 = tmax / _N_BASE_STEPS
-    return h0.astype(dtype)
-
-
-_N_BASE_STEPS = 8
-
-
-def _compute_pair(k, h0):
-    # Compute the abscissa-weight pairs for each level k. See [1] page 9.
-
-    # For now, we compute and store in 64-bit precision. If higher-precision
-    # data types become better supported, it would be good to compute these
-    # using the highest precision available. Or, once there is an Array API-
-    # compatible arbitrary precision array, we can compute at the required
-    # precision.
-
-    # "....each level k of abscissa-weight pairs uses h = 2 **-k"
-    # We adapt to floating point arithmetic using ideas of [2].
-    h = h0 / 2**k
-    max = _N_BASE_STEPS * 2**k
-
-    # For iterations after the first, "....the integrand function needs to be
-    # evaluated only at the odd-indexed abscissas at each level."
-    j = np.arange(max+1) if k == 0 else np.arange(1, max+1, 2)
-    jh = j * h
-
-    # "In this case... the weights wj = u1/cosh(u2)^2, where..."
-    pi_2 = np.pi / 2
-    u1 = pi_2*np.cosh(jh)
-    u2 = pi_2*np.sinh(jh)
-    # Denominators get big here. Overflow then underflow doesn't need warning.
-    # with np.errstate(under='ignore', over='ignore'):
-    wj = u1 / np.cosh(u2)**2
-    # "We actually store 1-xj = 1/(...)."
-    xjc = 1 / (np.exp(u2) * np.cosh(u2))  # complement of xj = np.tanh(u2)
-
-    # When level k == 0, the zeroth xj corresponds with xj = 0. To simplify
-    # code, the function will be evaluated there twice; each gets half weight.
-    wj[0] = wj[0] / 2 if k == 0 else wj[0]
-
-    return xjc, wj  # store at full precision
-
-
-def _pair_cache(k, h0):
-    # Cache the abscissa-weight pairs up to a specified level.
-    # Abscissae and weights of consecutive levels are concatenated.
-    # `index` records the indices that correspond with each level:
-    # `xjc[index[k]:index[k+1]` extracts the level `k` abscissae.
-    if h0 != _pair_cache.h0:
-        _pair_cache.xjc = np.empty(0)
-        _pair_cache.wj = np.empty(0)
-        _pair_cache.indices = [0]
-
-    xjcs = [_pair_cache.xjc]
-    wjs = [_pair_cache.wj]
-
-    for i in range(len(_pair_cache.indices)-1, k + 1):
-        xjc, wj = _compute_pair(i, h0)
-        xjcs.append(xjc)
-        wjs.append(wj)
-        _pair_cache.indices.append(_pair_cache.indices[-1] + len(xjc))
-
-    _pair_cache.xjc = np.concatenate(xjcs)
-    _pair_cache.wj = np.concatenate(wjs)
-    _pair_cache.h0 = h0
-
-_pair_cache.xjc = np.empty(0)
-_pair_cache.wj = np.empty(0)
-_pair_cache.indices = [0]
-_pair_cache.h0 = None
-
-
-def _get_pairs(k, h0, inclusive=False, dtype=np.float64):
-    # Retrieve the specified abscissa-weight pairs from the cache
-    # If `inclusive`, return all up to and including the specified level
-    if len(_pair_cache.indices) <= k+2 or h0 != _pair_cache.h0:
-        _pair_cache(k, h0)
-
-    xjc = _pair_cache.xjc
-    wj = _pair_cache.wj
-    indices = _pair_cache.indices
-
-    start = 0 if inclusive else indices[k]
-    end = indices[k+1]
-
-    return xjc[start:end].astype(dtype), wj[start:end].astype(dtype)
-
-
-def _transform_to_limits(xjc, wj, a, b):
-    # Transform integral according to user-specified limits. This is just
-    # math that follows from the fact that the standard limits are (-1, 1).
-    # Note: If we had stored xj instead of xjc, we would have
-    # xj = alpha * xj + beta, where beta = (a + b)/2
-    alpha = (b - a) / 2
-    xj = np.concatenate((-alpha * xjc + b, alpha * xjc + a), axis=-1)
-    wj = wj*alpha  # arguments get broadcasted, so we can't use *=
-    wj = np.concatenate((wj, wj), axis=-1)
-
-    # Points at the boundaries can be generated due to finite precision
-    # arithmetic, but these function values aren't supposed to be included in
-    # the Euler-Maclaurin sum. Ideally we wouldn't evaluate the function at
-    # these points; however, we can't easily filter out points since this
-    # function is vectorized. Instead, zero the weights.
-    invalid = (xj <= a) | (xj >= b)
-    wj[invalid] = 0
-    return xj, wj
-
-
-def _euler_maclaurin_sum(fj, work):
-    # Perform the Euler-Maclaurin Sum, [1] Section 4
-
-    # The error estimate needs to know the magnitude of the last term
-    # omitted from the Euler-Maclaurin sum. This is a bit involved because
-    # it may have been computed at a previous level. I sure hope it's worth
-    # all the trouble.
-    xr0, fr0, wr0 = work.xr0, work.fr0, work.wr0
-    xl0, fl0, wl0 = work.xl0, work.fl0, work.wl0
-
-    # It is much more convenient to work with the transposes of our work
-    # variables here.
-    xj, fj, wj = work.xj.T, fj.T, work.wj.T
-    n_x, n_active = xj.shape  # number of abscissae, number of active elements
-
-    # We'll work with the left and right sides separately
-    xr, xl = xj.reshape(2, n_x // 2, n_active).copy()  # this gets modified
-    fr, fl = fj.reshape(2, n_x // 2, n_active)
-    wr, wl = wj.reshape(2, n_x // 2, n_active)
-
-    invalid_r = ~np.isfinite(fr) | (wr == 0)
-    invalid_l = ~np.isfinite(fl) | (wl == 0)
-
-    # integer index of the maximum abscissa at this level
-    xr[invalid_r] = -np.inf
-    ir = np.argmax(xr, axis=0, keepdims=True)
-    # abscissa, function value, and weight at this index
-    xr_max = np.take_along_axis(xr, ir, axis=0)[0]
-    fr_max = np.take_along_axis(fr, ir, axis=0)[0]
-    wr_max = np.take_along_axis(wr, ir, axis=0)[0]
-    # boolean indices at which maximum abscissa at this level exceeds
-    # the incumbent maximum abscissa (from all previous levels)
-    j = xr_max > xr0
-    # Update record of the incumbent abscissa, function value, and weight
-    xr0[j] = xr_max[j]
-    fr0[j] = fr_max[j]
-    wr0[j] = wr_max[j]
-
-    # integer index of the minimum abscissa at this level
-    xl[invalid_l] = np.inf
-    il = np.argmin(xl, axis=0, keepdims=True)
-    # abscissa, function value, and weight at this index
-    xl_min = np.take_along_axis(xl, il, axis=0)[0]
-    fl_min = np.take_along_axis(fl, il, axis=0)[0]
-    wl_min = np.take_along_axis(wl, il, axis=0)[0]
-    # boolean indices at which minimum abscissa at this level is less than
-    # the incumbent minimum abscissa (from all previous levels)
-    j = xl_min < xl0
-    # Update record of the incumbent abscissa, function value, and weight
-    xl0[j] = xl_min[j]
-    fl0[j] = fl_min[j]
-    wl0[j] = wl_min[j]
-    fj = fj.T
-
-    # Compute the error estimate `d4` - the magnitude of the leftmost or
-    # rightmost term, whichever is greater.
-    flwl0 = fl0 + np.log(wl0) if work.log else fl0 * wl0  # leftmost term
-    frwr0 = fr0 + np.log(wr0) if work.log else fr0 * wr0  # rightmost term
-    magnitude = np.real if work.log else np.abs
-    work.d4 = np.maximum(magnitude(flwl0), magnitude(frwr0))
-
-    # There are two approaches to dealing with function values that are
-    # numerically infinite due to approaching a singularity - zero them, or
-    # replace them with the function value at the nearest non-infinite point.
-    # [3] pg. 22 suggests the latter, so let's do that given that we have the
-    # information.
-    fr0b = np.broadcast_to(fr0[np.newaxis, :], fr.shape)
-    fl0b = np.broadcast_to(fl0[np.newaxis, :], fl.shape)
-    fr[invalid_r] = fr0b[invalid_r]
-    fl[invalid_l] = fl0b[invalid_l]
-
-    # When wj is zero, log emits a warning
-    # with np.errstate(divide='ignore'):
-    fjwj = fj + np.log(work.wj) if work.log else fj * work.wj
-
-    # update integral estimate
-    Sn = (special.logsumexp(fjwj + np.log(work.h), axis=-1) if work.log
-          else np.sum(fjwj, axis=-1) * work.h)
-
-    work.xr0, work.fr0, work.wr0 = xr0, fr0, wr0
-    work.xl0, work.fl0, work.wl0 = xl0, fl0, wl0
-
-    return fjwj, Sn
-
-
-def _estimate_error(work):
-    # Estimate the error according to [1] Section 5
-
-    if work.n == 0 or work.nit == 0:
-        # The paper says to use "one" as the error before it can be calculated.
-        # NaN seems to be more appropriate.
-        nan = np.full_like(work.Sn, np.nan)
-        return nan, nan
-
-    indices = _pair_cache.indices
-
-    n_active = len(work.Sn)  # number of active elements
-    axis_kwargs = dict(axis=-1, keepdims=True)
-
-    # With a jump start (starting at level higher than 0), we haven't
-    # explicitly calculated the integral estimate at lower levels. But we have
-    # all the function value-weight products, so we can compute the
-    # lower-level estimates.
-    if work.Sk.shape[-1] == 0:
-        h = 2 * work.h  # step size at this level
-        n_x = indices[work.n]  # number of abscissa up to this level
-        # The right and left fjwj terms from all levels are concatenated along
-        # the last axis. Get out only the terms up to this level.
-        fjwj_rl = work.fjwj.reshape(n_active, 2, -1)
-        fjwj = fjwj_rl[:, :, :n_x].reshape(n_active, 2*n_x)
-        # Compute the Euler-Maclaurin sum at this level
-        Snm1 = (special.logsumexp(fjwj, **axis_kwargs) + np.log(h) if work.log
-                else np.sum(fjwj, **axis_kwargs) * h)
-        work.Sk = np.concatenate((Snm1, work.Sk), axis=-1)
-
-    if work.n == 1:
-        nan = np.full_like(work.Sn, np.nan)
-        return nan, nan
-
-    # The paper says not to calculate the error for n<=2, but it's not clear
-    # about whether it starts at level 0 or level 1. We start at level 0, so
-    # why not compute the error beginning in level 2?
-    if work.Sk.shape[-1] < 2:
-        h = 4 * work.h  # step size at this level
-        n_x = indices[work.n-1]  # number of abscissa up to this level
-        # The right and left fjwj terms from all levels are concatenated along
-        # the last axis. Get out only the terms up to this level.
-        fjwj_rl = work.fjwj.reshape(len(work.Sn), 2, -1)
-        fjwj = fjwj_rl[..., :n_x].reshape(n_active, 2*n_x)
-        # Compute the Euler-Maclaurin sum at this level
-        Snm2 = (special.logsumexp(fjwj, **axis_kwargs) + np.log(h) if work.log
-                else np.sum(fjwj, **axis_kwargs) * h)
-        work.Sk = np.concatenate((Snm2, work.Sk), axis=-1)
-
-    Snm2 = work.Sk[..., -2]
-    Snm1 = work.Sk[..., -1]
-
-    e1 = work.eps
-
-    if work.log:
-        log_e1 = np.log(e1)
-        # Currently, only real integrals are supported in log-scale. All
-        # complex values have imaginary part in increments of pi*j, which just
-        # carries sign information of the original integral, so use of
-        # `np.real` here is equivalent to absolute value in real scale.
-        d1 = np.real(special.logsumexp([work.Sn, Snm1 + work.pi*1j], axis=0))
-        d2 = np.real(special.logsumexp([work.Sn, Snm2 + work.pi*1j], axis=0))
-        d3 = log_e1 + np.max(np.real(work.fjwj), axis=-1)
-        d4 = work.d4
-        aerr = np.max([d1 ** 2 / d2, 2 * d1, d3, d4], axis=0)
-        rerr = np.maximum(log_e1, aerr - np.real(work.Sn))
-    else:
-        # Note: explicit computation of log10 of each of these is unnecessary.
-        d1 = np.abs(work.Sn - Snm1)
-        d2 = np.abs(work.Sn - Snm2)
-        d3 = e1 * np.max(np.abs(work.fjwj), axis=-1)
-        d4 = work.d4
-        # If `d1` is 0, no need to warn. This does the right thing.
-        # with np.errstate(divide='ignore'):
-        aerr = np.max([d1**(np.log(d1)/np.log(d2)), d1**2, d3, d4], axis=0)
-        rerr = np.maximum(e1, aerr/np.abs(work.Sn))
-    return rerr, aerr.reshape(work.Sn.shape)
-
-
-def _transform_integrals(a, b):
-    # Transform integrals to a form with finite a < b
-    # For b < a, we reverse the limits and will multiply the final result by -1
-    # For infinite limit on the right, we use the substitution x = 1/t - 1 + a
-    # For infinite limit on the left, we substitute x = -x and treat as above
-    # For infinite limits, we substitute x = t / (1-t**2)
-
-    negative = b < a
-    a[negative], b[negative] = b[negative], a[negative]
-
-    abinf = np.isinf(a) & np.isinf(b)
-    a[abinf], b[abinf] = -1, 1
-
-    ainf = np.isinf(a)
-    a[ainf], b[ainf] = -b[ainf], -a[ainf]
-
-    binf = np.isinf(b)
-    a0 = a.copy()
-    a[binf], b[binf] = 0, 1
-
-    return a, b, a0, negative, abinf, ainf, binf
-
-
-def _tanhsinh_iv(f, a, b, log, maxfun, maxlevel, minlevel,
-                 atol, rtol, args, preserve_shape, callback):
-    # Input validation and standardization
-
-    message = '`f` must be callable.'
-    if not callable(f):
-        raise ValueError(message)
-
-    message = 'All elements of `a` and `b` must be real numbers.'
-    a, b = np.broadcast_arrays(a, b)
-    if np.any(np.iscomplex(a)) or np.any(np.iscomplex(b)):
-        raise ValueError(message)
-
-    message = '`log` must be True or False.'
-    if log not in {True, False}:
-        raise ValueError(message)
-    log = bool(log)
-
-    if atol is None:
-        atol = -np.inf if log else 0
-
-    rtol_temp = rtol if rtol is not None else 0.
-
-    params = np.asarray([atol, rtol_temp, 0.])
-    message = "`atol` and `rtol` must be real numbers."
-    if not np.issubdtype(params.dtype, np.floating):
-        raise ValueError(message)
-
-    if log:
-        message = '`atol` and `rtol` may not be positive infinity.'
-        if np.any(np.isposinf(params)):
-            raise ValueError(message)
-    else:
-        message = '`atol` and `rtol` must be non-negative and finite.'
-        if np.any(params < 0) or np.any(np.isinf(params)):
-            raise ValueError(message)
-    atol = params[0]
-    rtol = rtol if rtol is None else params[1]
-
-    BIGINT = float(2**62)
-    if maxfun is None and maxlevel is None:
-        maxlevel = 10
-
-    maxfun = BIGINT if maxfun is None else maxfun
-    maxlevel = BIGINT if maxlevel is None else maxlevel
-
-    message = '`maxfun`, `maxlevel`, and `minlevel` must be integers.'
-    params = np.asarray([maxfun, maxlevel, minlevel])
-    if not (np.issubdtype(params.dtype, np.number)
-            and np.all(np.isreal(params))
-            and np.all(params.astype(np.int64) == params)):
-        raise ValueError(message)
-    message = '`maxfun`, `maxlevel`, and `minlevel` must be non-negative.'
-    if np.any(params < 0):
-        raise ValueError(message)
-    maxfun, maxlevel, minlevel = params.astype(np.int64)
-    minlevel = min(minlevel, maxlevel)
-
-    if not np.iterable(args):
-        args = (args,)
-
-    message = '`preserve_shape` must be True or False.'
-    if preserve_shape not in {True, False}:
-        raise ValueError(message)
-
-    if callback is not None and not callable(callback):
-        raise ValueError('`callback` must be callable.')
-
-    return (f, a, b, log, maxfun, maxlevel, minlevel,
-            atol, rtol, args, preserve_shape, callback)
-
-
-def _logsumexp(x, axis=0):
-    # logsumexp raises with empty array
-    x = np.asarray(x)
-    shape = list(x.shape)
-    if shape[axis] == 0:
-        shape.pop(axis)
-        return np.full(shape, fill_value=-np.inf, dtype=x.dtype)
-    else:
-        return special.logsumexp(x, axis=axis)
-
-
-def _nsum_iv(f, a, b, step, args, log, maxterms, atol, rtol):
-    # Input validation and standardization
-
-    message = '`f` must be callable.'
-    if not callable(f):
-        raise ValueError(message)
-
-    message = 'All elements of `a`, `b`, and `step` must be real numbers.'
-    a, b, step = np.broadcast_arrays(a, b, step)
-    dtype = np.result_type(a.dtype, b.dtype, step.dtype)
-    if not np.issubdtype(dtype, np.number) or np.issubdtype(dtype, np.complexfloating):
-        raise ValueError(message)
-
-    valid_a = np.isfinite(a)
-    valid_b = b >= a  # NaNs will be False
-    valid_step = np.isfinite(step) & (step > 0)
-    valid_abstep = valid_a & valid_b & valid_step
-
-    message = '`log` must be True or False.'
-    if log not in {True, False}:
-        raise ValueError(message)
-
-    if atol is None:
-        atol = -np.inf if log else 0
-
-    rtol_temp = rtol if rtol is not None else 0.
-
-    params = np.asarray([atol, rtol_temp, 0.])
-    message = "`atol` and `rtol` must be real numbers."
-    if not np.issubdtype(params.dtype, np.floating):
-        raise ValueError(message)
-
-    if log:
-        message = '`atol`, `rtol` may not be positive infinity or NaN.'
-        if np.any(np.isposinf(params) | np.isnan(params)):
-            raise ValueError(message)
-    else:
-        message = '`atol`, and `rtol` must be non-negative and finite.'
-        if np.any((params < 0) | (~np.isfinite(params))):
-            raise ValueError(message)
-    atol = params[0]
-    rtol = rtol if rtol is None else params[1]
-
-    maxterms_int = int(maxterms)
-    if maxterms_int != maxterms or maxterms < 0:
-        message = "`maxterms` must be a non-negative integer."
-        raise ValueError(message)
-
-    if not np.iterable(args):
-        args = (args,)
-
-    return f, a, b, step, valid_abstep, args, log, maxterms_int, atol, rtol
-
-
-def _nsum(f, a, b, step=1, args=(), log=False, maxterms=int(2**20), atol=None,
-          rtol=None):
-    r"""Evaluate a convergent sum.
-
-    For finite `b`, this evaluates::
-
-        f(a + np.arange(n)*step).sum()
-
-    where ``n = int((b - a) / step) + 1``. If `f` is smooth, positive, and
-    monotone decreasing, `b` may be infinite, in which case the infinite sum
-    is approximated using integration.
-
-    Parameters
-    ----------
-    f : callable
-        The function that evaluates terms to be summed. The signature must be::
-
-            f(x: ndarray, *args) -> ndarray
-
-         where each element of ``x`` is a finite real and ``args`` is a tuple,
-         which may contain an arbitrary number of arrays that are broadcastable
-         with `x`. `f` must represent a smooth, positive, and monotone decreasing
-         function of `x`; `_nsum` performs no checks to verify that these conditions
-         are met and may return erroneous results if they are violated.
-    a, b : array_like
-        Real lower and upper limits of summed terms. Must be broadcastable.
-        Each element of `a` must be finite and less than the corresponding
-        element in `b`, but elements of `b` may be infinite.
-    step : array_like
-        Finite, positive, real step between summed terms. Must be broadcastable
-        with `a` and `b`.
-    args : tuple, optional
-        Additional positional arguments to be passed to `f`. Must be arrays
-        broadcastable with `a`, `b`, and `step`. If the callable to be summed
-        requires arguments that are not broadcastable with `a`, `b`, and `step`,
-        wrap that callable with `f`. See Examples.
-    log : bool, default: False
-        Setting to True indicates that `f` returns the log of the terms
-        and that `atol` and `rtol` are expressed as the logs of the absolute
-        and relative errors. In this case, the result object will contain the
-        log of the sum and error. This is useful for summands for which
-        numerical underflow or overflow would lead to inaccuracies.
-    maxterms : int, default: 2**32
-        The maximum number of terms to evaluate when summing directly. 
-        Additional function evaluations may be performed for input
-        validation and integral evaluation. 
-    atol, rtol : float, optional
-        Absolute termination tolerance (default: 0) and relative termination
-        tolerance (default: ``eps**0.5``, where ``eps`` is the precision of
-        the result dtype), respectively. Must be non-negative
-        and finite if `log` is False, and must be expressed as the log of a
-        non-negative and finite number if `log` is True.
-
-    Returns
-    -------
-    res : _RichResult
-        An instance of `scipy._lib._util._RichResult` with the following
-        attributes. (The descriptions are written as though the values will be
-        scalars; however, if `func` returns an array, the outputs will be
-
-        arrays of the same shape.)
-        success : bool
-            ``True`` when the algorithm terminated successfully (status ``0``).
-        status : int
-            An integer representing the exit status of the algorithm.
-            ``0`` : The algorithm converged to the specified tolerances.
-            ``-1`` : Element(s) of `a`, `b`, or `step` are invalid
-            ``-2`` : Numerical integration reached its iteration limit; the sum may be divergent.
-            ``-3`` : A non-finite value was encountered.
-        sum : float
-            An estimate of the sum.
-        error : float
-            An estimate of the absolute error, assuming all terms are non-negative.
-        nfev : int
-            The number of points at which `func` was evaluated.
-
-    See Also
-    --------
-    tanhsinh
-
-    Notes
-    -----
-    The method implemented for infinite summation is related to the integral
-    test for convergence of an infinite series: assuming `step` size 1 for
-    simplicity of exposition, the sum of a monotone decreasing function is bounded by
-
-    .. math::
-
-        \int_u^\infty f(x) dx \leq \sum_{k=u}^\infty f(k) \leq \int_u^\infty f(x) dx + f(u)
-
-    Let :math:`a` represent  `a`, :math:`n` represent `maxterms`, :math:`\epsilon_a`
-    represent `atol`, and :math:`\epsilon_r` represent `rtol`.
-    The implementation first evaluates the integral :math:`S_l=\int_a^\infty f(x) dx`
-    as a lower bound of the infinite sum. Then, it seeks a value :math:`c > a` such
-    that :math:`f(c) < \epsilon_a + S_l \epsilon_r`, if it exists; otherwise,
-    let :math:`c = a + n`. Then the infinite sum is approximated as
-    
-    .. math::
-
-        \sum_{k=a}^{c-1} f(k) + \int_c^\infty f(x) dx + f(c)/2
-
-    and the reported error is :math:`f(c)/2` plus the error estimate of
-    numerical integration. The approach described above is generalized for non-unit
-    `step` and finite `b` that is too large for direct evaluation of the sum,
-    i.e. ``b - a + 1 > maxterms``.
-
-    References
-    ----------
-    [1] Wikipedia. "Integral test for convergence."
-    https://en.wikipedia.org/wiki/Integral_test_for_convergence
-
-    Examples
-    --------
-    Compute the infinite sum of the reciprocals of squared integers.
-    
-    >>> import numpy as np
-    >>> from scipy.integrate._tanhsinh import _nsum
-    >>> res = _nsum(lambda k: 1/k**2, 1, np.inf, maxterms=1e3)
-    >>> ref = np.pi**2/6  # true value
-    >>> res.error  # estimated error
-    4.990014980029223e-07
-    >>> (res.sum - ref)/ref  # true error
-    -1.0101760641302586e-10
-    >>> res.nfev  # number of points at which callable was evaluated
-    1142
-    
-    Compute the infinite sums of the reciprocals of integers raised to powers ``p``.
-    
-    >>> from scipy import special
-    >>> p = np.arange(2, 10)
-    >>> res = _nsum(lambda k, p: 1/k**p, 1, np.inf, maxterms=1e3, args=(p,))
-    >>> ref = special.zeta(p, 1)
-    >>> np.allclose(res.sum, ref)
-    True
-    
-    """ # noqa: E501
-    # Potential future work:
-    # - more careful testing of when `b` is slightly less than `a` plus an
-    #   integer multiple of step (needed before this is public)
-    # - improve error estimate of `_direct` sum
-    # - add other methods for convergence acceleration (Richardson, epsilon)
-    # - support infinite lower limit?
-    # - support negative monotone increasing functions?
-    # - b < a / negative step?
-    # - complex-valued function?
-    # - check for violations of monotonicity?
-
-    # Function-specific input validation / standardization
-    tmp = _nsum_iv(f, a, b, step, args, log, maxterms, atol, rtol)
-    f, a, b, step, valid_abstep, args, log, maxterms, atol, rtol = tmp
-
-    # Additional elementwise algorithm input validation / standardization
-    tmp = eim._initialize(f, (a,), args, complex_ok=False)
-    f, xs, fs, args, shape, dtype, xp = tmp
-
-    # Finish preparing `a`, `b`, and `step` arrays
-    a = xs[0]
-    b = np.broadcast_to(b, shape).ravel().astype(dtype)
-    step = np.broadcast_to(step, shape).ravel().astype(dtype)
-    valid_abstep = np.broadcast_to(valid_abstep, shape).ravel()
-    nterms = np.floor((b - a) / step)
-    b = a + nterms*step
-
-    # Define constants
-    eps = np.finfo(dtype).eps
-    zero = np.asarray(-np.inf if log else 0, dtype=dtype)[()]
-    if rtol is None:
-        rtol = 0.5*np.log(eps) if log else eps**0.5
-    constants = (dtype, log, eps, zero, rtol, atol, maxterms)
-
-    # Prepare result arrays
-    S = np.empty_like(a)
-    E = np.empty_like(a)
-    status = np.zeros(len(a), dtype=int)
-    nfev = np.ones(len(a), dtype=int)  # one function evaluation above
-
-    # Branch for direct sum evaluation / integral approximation / invalid input
-    i1 = (nterms + 1 <= maxterms) & valid_abstep
-    i2 = (nterms + 1 > maxterms) & valid_abstep
-    i3 = ~valid_abstep
-
-    if np.any(i1):
-        args_direct = [arg[i1] for arg in args]
-        tmp = _direct(f, a[i1], b[i1], step[i1], args_direct, constants)
-        S[i1], E[i1] = tmp[:-1]
-        nfev[i1] += tmp[-1]
-        status[i1] = -3 * (~np.isfinite(S[i1]))
-
-    if np.any(i2):
-        args_indirect = [arg[i2] for arg in args]
-        tmp = _integral_bound(f, a[i2], b[i2], step[i2], args_indirect, constants)
-        S[i2], E[i2], status[i2] = tmp[:-1]
-        nfev[i2] += tmp[-1]
-
-    if np.any(i3):
-        S[i3], E[i3] = np.nan, np.nan
-        status[i3] = -1
-
-    # Return results
-    S, E = S.reshape(shape)[()], E.reshape(shape)[()]
-    status, nfev = status.reshape(shape)[()], nfev.reshape(shape)[()]
-    return _RichResult(sum=S, error=E, status=status, success=status == 0,
-                       nfev=nfev)
-
-
-def _direct(f, a, b, step, args, constants, inclusive=True):
-    # Directly evaluate the sum.
-
-    # When used in the context of distributions, `args` would contain the
-    # distribution parameters. We have broadcasted for simplicity, but we could
-    # reduce function evaluations when distribution parameters are the same but
-    # sum limits differ. Roughly:
-    # - compute the function at all points between min(a) and max(b),
-    # - compute the cumulative sum,
-    # - take the difference between elements of the cumulative sum
-    #   corresponding with b and a.
-    # This is left to future enhancement
-
-    dtype, log, eps, zero, _, _, _ = constants
-
-    # To allow computation in a single vectorized call, find the maximum number
-    # of points (over all slices) at which the function needs to be evaluated.
-    # Note: if `inclusive` is `True`, then we want `1` more term in the sum.
-    # I didn't think it was great style to use `True` as `1` in Python, so I
-    # explicitly converted it to an `int` before using it.
-    inclusive_adjustment = int(inclusive)
-    steps = np.round((b - a) / step) + inclusive_adjustment
-    # Equivalently, steps = np.round((b - a) / step) + inclusive
-    max_steps = int(np.max(steps))
-
-    # In each slice, the function will be evaluated at the same number of points,
-    # but excessive points (those beyond the right sum limit `b`) are replaced
-    # with NaN to (potentially) reduce the time of these unnecessary calculations.
-    # Use a new last axis for these calculations for consistency with other
-    # elementwise algorithms.
-    a2, b2, step2 = a[:, np.newaxis], b[:, np.newaxis], step[:, np.newaxis]
-    args2 = [arg[:, np.newaxis] for arg in args]
-    ks = a2 + np.arange(max_steps, dtype=dtype) * step2
-    i_nan = ks >= (b2 + inclusive_adjustment*step2/2)
-    ks[i_nan] = np.nan
-    fs = f(ks, *args2)
-
-    # The function evaluated at NaN is NaN, and NaNs are zeroed in the sum.
-    # In some cases it may be faster to loop over slices than to vectorize
-    # like this. This is an optimization that can be added later.
-    fs[i_nan] = zero
-    nfev = max_steps - i_nan.sum(axis=-1)
-    S = _logsumexp(fs, axis=-1) if log else np.sum(fs, axis=-1)
-    # Rough, non-conservative error estimate. See gh-19667 for improvement ideas.
-    E = np.real(S) + np.log(eps) if log else eps * abs(S)
-    return S, E, nfev
-
-
-def _integral_bound(f, a, b, step, args, constants):
-    # Estimate the sum with integral approximation
-    dtype, log, _, _, rtol, atol, maxterms = constants
-    log2 = np.log(2, dtype=dtype)
-
-    # Get a lower bound on the sum and compute effective absolute tolerance
-    lb = _tanhsinh(f, a, b, args=args, atol=atol, rtol=rtol, log=log)
-    tol = np.broadcast_to(atol, lb.integral.shape)
-    tol = _logsumexp((tol, rtol + lb.integral)) if log else tol + rtol*lb.integral
-    i_skip = lb.status < 0  # avoid unnecessary f_evals if integral is divergent
-    tol[i_skip] = np.nan
-    status = lb.status
-
-    # As in `_direct`, we'll need a temporary new axis for points
-    # at which to evaluate the function. Append axis at the end for
-    # consistency with other elementwise algorithms.
-    a2 = a[..., np.newaxis]
-    step2 = step[..., np.newaxis]
-    args2 = [arg[..., np.newaxis] for arg in args]
-
-    # Find the location of a term that is less than the tolerance (if possible)
-    log2maxterms = np.floor(np.log2(maxterms)) if maxterms else 0
-    n_steps = np.concatenate([2**np.arange(0, log2maxterms), [maxterms]], dtype=dtype)
-    nfev = len(n_steps)
-    ks = a2 + n_steps * step2
-    fks = f(ks, *args2)
-    nt = np.minimum(np.sum(fks > tol[:, np.newaxis], axis=-1),  n_steps.shape[-1]-1)
-    n_steps = n_steps[nt]
-
-    # Directly evaluate the sum up to this term
-    k = a + n_steps * step
-    left, left_error, left_nfev = _direct(f, a, k, step, args,
-                                          constants, inclusive=False)
-    i_skip |= np.isposinf(left)  # if sum is not finite, no sense in continuing
-    status[np.isposinf(left)] = -3
-    k[i_skip] = np.nan
-
-    # Use integration to estimate the remaining sum
-    # Possible optimization for future work: if there were no terms less than
-    # the tolerance, there is no need to compute the integral to better accuracy.
-    # Something like:
-    # atol = np.maximum(atol, np.minimum(fk/2 - fb/2))
-    # rtol = np.maximum(rtol, np.minimum((fk/2 - fb/2)/left))
-    # where `fk`/`fb` are currently calculated below.
-    right = _tanhsinh(f, k, b, args=args, atol=atol, rtol=rtol, log=log)
-
-    # Calculate the full estimate and error from the pieces
-    fk = fks[np.arange(len(fks)), nt]
-    fb = f(b, *args)
-    nfev += 1
-    if log:
-        log_step = np.log(step)
-        S_terms = (left, right.integral - log_step, fk - log2, fb - log2)
-        S = _logsumexp(S_terms, axis=0)
-        E_terms = (left_error, right.error - log_step, fk-log2, fb-log2+np.pi*1j)
-        E = _logsumexp(E_terms, axis=0).real
-    else:
-        S = left + right.integral/step + fk/2 + fb/2
-        E = left_error + right.error/step + fk/2 - fb/2
-    status[~i_skip] = right.status[~i_skip]
-    return S, E, status, left_nfev + right.nfev + nfev + lb.nfev
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_test_multivariate.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_test_multivariate.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index fbe799fa8bfe4c5f1b2d2ed5edc07fe91db628ef..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/_test_multivariate.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/dop.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/dop.py
deleted file mode 100644
index bf67a9a35b7d2959c2617aadc5638b577a45b9b5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/dop.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__: list[str] = []
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="integrate", module="dop",
-                                   private_modules=["_dop"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/lsoda.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/lsoda.py
deleted file mode 100644
index 1bc1f1da3c4f0aefad9da73b6405b957ce9335b4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/lsoda.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = ['lsoda']  # noqa: F822
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="integrate", module="lsoda",
-                                   private_modules=["_lsoda"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/odepack.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/odepack.py
deleted file mode 100644
index 7bb4c1a8c9be375df855abe6e1b30ca9711f2607..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/odepack.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.integrate` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = ['odeint', 'ODEintWarning']  # noqa: F822
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="integrate", module="odepack",
-                                   private_modules=["_odepack_py"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/quadpack.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/quadpack.py
deleted file mode 100644
index 144584988095c8855da8c34253c045f1a3940572..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/quadpack.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.integrate` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = [  # noqa: F822
-    "quad",
-    "dblquad",
-    "tplquad",
-    "nquad",
-    "IntegrationWarning",
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="integrate", module="quadpack",
-                                   private_modules=["_quadpack_py"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index b803826b452161f0c85006dc020f3c26dd047937..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test__quad_vec.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test__quad_vec.cpython-310.pyc
deleted file mode 100644
index fbb6ad29aec81d186b9945056f842536860d4a0a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test__quad_vec.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_banded_ode_solvers.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_banded_ode_solvers.cpython-310.pyc
deleted file mode 100644
index f3752633bc030ccd3ea4be11b2d48ee68015f6a9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_banded_ode_solvers.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_bvp.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_bvp.cpython-310.pyc
deleted file mode 100644
index 7a622ba234232576260d7fcb73c3413a07602d33..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_bvp.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_integrate.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_integrate.cpython-310.pyc
deleted file mode 100644
index f12c4ce8e99e78407324321d9a8f5cf400a9e808..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_integrate.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_odeint_jac.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_odeint_jac.cpython-310.pyc
deleted file mode 100644
index adf996ed9e886471e7b8e53ec8bd00b668e321ff..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_odeint_jac.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_quadpack.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_quadpack.cpython-310.pyc
deleted file mode 100644
index 99b91815e22a5fcc8e252b4828bb09d7b97a2a0d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_quadpack.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_quadrature.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_quadrature.cpython-310.pyc
deleted file mode 100644
index 591e9b6985b3c7da8e905a6e9f9e7f392c32ccd3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_quadrature.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_tanhsinh.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_tanhsinh.cpython-310.pyc
deleted file mode 100644
index cb6c999b201c1565128d69c351d9b9c1ac5a4a6d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/__pycache__/test_tanhsinh.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test__quad_vec.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test__quad_vec.py
deleted file mode 100644
index c88650ca1010b3543f4577dbb6d24cdbba36f18e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test__quad_vec.py
+++ /dev/null
@@ -1,215 +0,0 @@
-import pytest
-
-import numpy as np
-from numpy.testing import assert_allclose
-
-from scipy.integrate import quad_vec
-
-from multiprocessing.dummy import Pool
-
-
-quadrature_params = pytest.mark.parametrize(
-    'quadrature', [None, "gk15", "gk21", "trapezoid"])
-
-
-@quadrature_params
-def test_quad_vec_simple(quadrature):
-    n = np.arange(10)
-    def f(x):
-        return x ** n
-    for epsabs in [0.1, 1e-3, 1e-6]:
-        if quadrature == 'trapezoid' and epsabs < 1e-4:
-            # slow: skip
-            continue
-
-        kwargs = dict(epsabs=epsabs, quadrature=quadrature)
-
-        exact = 2**(n+1)/(n + 1)
-
-        res, err = quad_vec(f, 0, 2, norm='max', **kwargs)
-        assert_allclose(res, exact, rtol=0, atol=epsabs)
-
-        res, err = quad_vec(f, 0, 2, norm='2', **kwargs)
-        assert np.linalg.norm(res - exact) < epsabs
-
-        res, err = quad_vec(f, 0, 2, norm='max', points=(0.5, 1.0), **kwargs)
-        assert_allclose(res, exact, rtol=0, atol=epsabs)
-
-        res, err, *rest = quad_vec(f, 0, 2, norm='max',
-                                   epsrel=1e-8,
-                                   full_output=True,
-                                   limit=10000,
-                                   **kwargs)
-        assert_allclose(res, exact, rtol=0, atol=epsabs)
-
-
-@quadrature_params
-def test_quad_vec_simple_inf(quadrature):
-    def f(x):
-        return 1 / (1 + np.float64(x) ** 2)
-
-    for epsabs in [0.1, 1e-3, 1e-6]:
-        if quadrature == 'trapezoid' and epsabs < 1e-4:
-            # slow: skip
-            continue
-
-        kwargs = dict(norm='max', epsabs=epsabs, quadrature=quadrature)
-
-        res, err = quad_vec(f, 0, np.inf, **kwargs)
-        assert_allclose(res, np.pi/2, rtol=0, atol=max(epsabs, err))
-
-        res, err = quad_vec(f, 0, -np.inf, **kwargs)
-        assert_allclose(res, -np.pi/2, rtol=0, atol=max(epsabs, err))
-
-        res, err = quad_vec(f, -np.inf, 0, **kwargs)
-        assert_allclose(res, np.pi/2, rtol=0, atol=max(epsabs, err))
-
-        res, err = quad_vec(f, np.inf, 0, **kwargs)
-        assert_allclose(res, -np.pi/2, rtol=0, atol=max(epsabs, err))
-
-        res, err = quad_vec(f, -np.inf, np.inf, **kwargs)
-        assert_allclose(res, np.pi, rtol=0, atol=max(epsabs, err))
-
-        res, err = quad_vec(f, np.inf, -np.inf, **kwargs)
-        assert_allclose(res, -np.pi, rtol=0, atol=max(epsabs, err))
-
-        res, err = quad_vec(f, np.inf, np.inf, **kwargs)
-        assert_allclose(res, 0, rtol=0, atol=max(epsabs, err))
-
-        res, err = quad_vec(f, -np.inf, -np.inf, **kwargs)
-        assert_allclose(res, 0, rtol=0, atol=max(epsabs, err))
-
-        res, err = quad_vec(f, 0, np.inf, points=(1.0, 2.0), **kwargs)
-        assert_allclose(res, np.pi/2, rtol=0, atol=max(epsabs, err))
-
-    def f(x):
-        return np.sin(x + 2) / (1 + x ** 2)
-    exact = np.pi / np.e * np.sin(2)
-    epsabs = 1e-5
-
-    res, err, info = quad_vec(f, -np.inf, np.inf, limit=1000, norm='max', epsabs=epsabs,
-                              quadrature=quadrature, full_output=True)
-    assert info.status == 1
-    assert_allclose(res, exact, rtol=0, atol=max(epsabs, 1.5 * err))
-
-
-def test_quad_vec_args():
-    def f(x, a):
-        return x * (x + a) * np.arange(3)
-    a = 2
-    exact = np.array([0, 4/3, 8/3])
-
-    res, err = quad_vec(f, 0, 1, args=(a,))
-    assert_allclose(res, exact, rtol=0, atol=1e-4)
-
-
-def _lorenzian(x):
-    return 1 / (1 + x**2)
-
-
-@pytest.mark.fail_slow(5)
-def test_quad_vec_pool():
-    f = _lorenzian
-    res, err = quad_vec(f, -np.inf, np.inf, norm='max', epsabs=1e-4, workers=4)
-    assert_allclose(res, np.pi, rtol=0, atol=1e-4)
-
-    with Pool(10) as pool:
-        def f(x):
-            return 1 / (1 + x ** 2)
-        res, _ = quad_vec(f, -np.inf, np.inf, norm='max', epsabs=1e-4, workers=pool.map)
-        assert_allclose(res, np.pi, rtol=0, atol=1e-4)
-
-
-def _func_with_args(x, a):
-    return x * (x + a) * np.arange(3)
-
-
-@pytest.mark.fail_slow(5)
-@pytest.mark.parametrize('extra_args', [2, (2,)])
-@pytest.mark.parametrize('workers', [1, 10])
-def test_quad_vec_pool_args(extra_args, workers):
-    f = _func_with_args
-    exact = np.array([0, 4/3, 8/3])
-
-    res, err = quad_vec(f, 0, 1, args=extra_args, workers=workers)
-    assert_allclose(res, exact, rtol=0, atol=1e-4)
-
-    with Pool(workers) as pool:
-        res, err = quad_vec(f, 0, 1, args=extra_args, workers=pool.map)
-        assert_allclose(res, exact, rtol=0, atol=1e-4)
-
-
-@quadrature_params
-def test_num_eval(quadrature):
-    def f(x):
-        count[0] += 1
-        return x**5
-
-    count = [0]
-    res = quad_vec(f, 0, 1, norm='max', full_output=True, quadrature=quadrature)
-    assert res[2].neval == count[0]
-
-
-def test_info():
-    def f(x):
-        return np.ones((3, 2, 1))
-
-    res, err, info = quad_vec(f, 0, 1, norm='max', full_output=True)
-
-    assert info.success is True
-    assert info.status == 0
-    assert info.message == 'Target precision reached.'
-    assert info.neval > 0
-    assert info.intervals.shape[1] == 2
-    assert info.integrals.shape == (info.intervals.shape[0], 3, 2, 1)
-    assert info.errors.shape == (info.intervals.shape[0],)
-
-
-def test_nan_inf():
-    def f_nan(x):
-        return np.nan
-
-    def f_inf(x):
-        return np.inf if x < 0.1 else 1/x
-
-    res, err, info = quad_vec(f_nan, 0, 1, full_output=True)
-    assert info.status == 3
-
-    res, err, info = quad_vec(f_inf, 0, 1, full_output=True)
-    assert info.status == 3
-
-
-@pytest.mark.parametrize('a,b', [(0, 1), (0, np.inf), (np.inf, 0),
-                                 (-np.inf, np.inf), (np.inf, -np.inf)])
-def test_points(a, b):
-    # Check that initial interval splitting is done according to
-    # `points`, by checking that consecutive sets of 15 point (for
-    # gk15) function evaluations lie between `points`
-
-    points = (0, 0.25, 0.5, 0.75, 1.0)
-    points += tuple(-x for x in points)
-
-    quadrature_points = 15
-    interval_sets = []
-    count = 0
-
-    def f(x):
-        nonlocal count
-
-        if count % quadrature_points == 0:
-            interval_sets.append(set())
-
-        count += 1
-        interval_sets[-1].add(float(x))
-        return 0.0
-
-    quad_vec(f, a, b, points=points, quadrature='gk15', limit=0)
-
-    # Check that all point sets lie in a single `points` interval
-    for p in interval_sets:
-        j = np.searchsorted(sorted(points), tuple(p))
-        assert np.all(j == j[0])
-
-def test_trapz_deprecation():
-    with pytest.deprecated_call(match="`quadrature='trapz'`"):
-        quad_vec(lambda x: x, 0, 1, quadrature="trapz")
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_banded_ode_solvers.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_banded_ode_solvers.py
deleted file mode 100644
index f34d45d94fd754bc8d2c90609ac308f6d3e4706b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_banded_ode_solvers.py
+++ /dev/null
@@ -1,218 +0,0 @@
-import itertools
-import numpy as np
-from numpy.testing import assert_allclose
-from scipy.integrate import ode
-
-
-def _band_count(a):
-    """Returns ml and mu, the lower and upper band sizes of a."""
-    nrows, ncols = a.shape
-    ml = 0
-    for k in range(-nrows+1, 0):
-        if np.diag(a, k).any():
-            ml = -k
-            break
-    mu = 0
-    for k in range(nrows-1, 0, -1):
-        if np.diag(a, k).any():
-            mu = k
-            break
-    return ml, mu
-
-
-def _linear_func(t, y, a):
-    """Linear system dy/dt = a * y"""
-    return a.dot(y)
-
-
-def _linear_jac(t, y, a):
-    """Jacobian of a * y is a."""
-    return a
-
-
-def _linear_banded_jac(t, y, a):
-    """Banded Jacobian."""
-    ml, mu = _band_count(a)
-    bjac = [np.r_[[0] * k, np.diag(a, k)] for k in range(mu, 0, -1)]
-    bjac.append(np.diag(a))
-    for k in range(-1, -ml-1, -1):
-        bjac.append(np.r_[np.diag(a, k), [0] * (-k)])
-    return bjac
-
-
-def _solve_linear_sys(a, y0, tend=1, dt=0.1,
-                      solver=None, method='bdf', use_jac=True,
-                      with_jacobian=False, banded=False):
-    """Use scipy.integrate.ode to solve a linear system of ODEs.
-
-    a : square ndarray
-        Matrix of the linear system to be solved.
-    y0 : ndarray
-        Initial condition
-    tend : float
-        Stop time.
-    dt : float
-        Step size of the output.
-    solver : str
-        If not None, this must be "vode", "lsoda" or "zvode".
-    method : str
-        Either "bdf" or "adams".
-    use_jac : bool
-        Determines if the jacobian function is passed to ode().
-    with_jacobian : bool
-        Passed to ode.set_integrator().
-    banded : bool
-        Determines whether a banded or full jacobian is used.
-        If `banded` is True, `lband` and `uband` are determined by the
-        values in `a`.
-    """
-    if banded:
-        lband, uband = _band_count(a)
-    else:
-        lband = None
-        uband = None
-
-    if use_jac:
-        if banded:
-            r = ode(_linear_func, _linear_banded_jac)
-        else:
-            r = ode(_linear_func, _linear_jac)
-    else:
-        r = ode(_linear_func)
-
-    if solver is None:
-        if np.iscomplexobj(a):
-            solver = "zvode"
-        else:
-            solver = "vode"
-
-    r.set_integrator(solver,
-                     with_jacobian=with_jacobian,
-                     method=method,
-                     lband=lband, uband=uband,
-                     rtol=1e-9, atol=1e-10,
-                     )
-    t0 = 0
-    r.set_initial_value(y0, t0)
-    r.set_f_params(a)
-    r.set_jac_params(a)
-
-    t = [t0]
-    y = [y0]
-    while r.successful() and r.t < tend:
-        r.integrate(r.t + dt)
-        t.append(r.t)
-        y.append(r.y)
-
-    t = np.array(t)
-    y = np.array(y)
-    return t, y
-
-
-def _analytical_solution(a, y0, t):
-    """
-    Analytical solution to the linear differential equations dy/dt = a*y.
-
-    The solution is only valid if `a` is diagonalizable.
-
-    Returns a 2-D array with shape (len(t), len(y0)).
-    """
-    lam, v = np.linalg.eig(a)
-    c = np.linalg.solve(v, y0)
-    e = c * np.exp(lam * t.reshape(-1, 1))
-    sol = e.dot(v.T)
-    return sol
-
-
-def test_banded_ode_solvers():
-    # Test the "lsoda", "vode" and "zvode" solvers of the `ode` class
-    # with a system that has a banded Jacobian matrix.
-
-    t_exact = np.linspace(0, 1.0, 5)
-
-    # --- Real arrays for testing the "lsoda" and "vode" solvers ---
-
-    # lband = 2, uband = 1:
-    a_real = np.array([[-0.6, 0.1, 0.0, 0.0, 0.0],
-                       [0.2, -0.5, 0.9, 0.0, 0.0],
-                       [0.1, 0.1, -0.4, 0.1, 0.0],
-                       [0.0, 0.3, -0.1, -0.9, -0.3],
-                       [0.0, 0.0, 0.1, 0.1, -0.7]])
-
-    # lband = 0, uband = 1:
-    a_real_upper = np.triu(a_real)
-
-    # lband = 2, uband = 0:
-    a_real_lower = np.tril(a_real)
-
-    # lband = 0, uband = 0:
-    a_real_diag = np.triu(a_real_lower)
-
-    real_matrices = [a_real, a_real_upper, a_real_lower, a_real_diag]
-    real_solutions = []
-
-    for a in real_matrices:
-        y0 = np.arange(1, a.shape[0] + 1)
-        y_exact = _analytical_solution(a, y0, t_exact)
-        real_solutions.append((y0, t_exact, y_exact))
-
-    def check_real(idx, solver, meth, use_jac, with_jac, banded):
-        a = real_matrices[idx]
-        y0, t_exact, y_exact = real_solutions[idx]
-        t, y = _solve_linear_sys(a, y0,
-                                 tend=t_exact[-1],
-                                 dt=t_exact[1] - t_exact[0],
-                                 solver=solver,
-                                 method=meth,
-                                 use_jac=use_jac,
-                                 with_jacobian=with_jac,
-                                 banded=banded)
-        assert_allclose(t, t_exact)
-        assert_allclose(y, y_exact)
-
-    for idx in range(len(real_matrices)):
-        p = [['vode', 'lsoda'],  # solver
-             ['bdf', 'adams'],   # method
-             [False, True],      # use_jac
-             [False, True],      # with_jacobian
-             [False, True]]      # banded
-        for solver, meth, use_jac, with_jac, banded in itertools.product(*p):
-            check_real(idx, solver, meth, use_jac, with_jac, banded)
-
-    # --- Complex arrays for testing the "zvode" solver ---
-
-    # complex, lband = 2, uband = 1:
-    a_complex = a_real - 0.5j * a_real
-
-    # complex, lband = 0, uband = 0:
-    a_complex_diag = np.diag(np.diag(a_complex))
-
-    complex_matrices = [a_complex, a_complex_diag]
-    complex_solutions = []
-
-    for a in complex_matrices:
-        y0 = np.arange(1, a.shape[0] + 1) + 1j
-        y_exact = _analytical_solution(a, y0, t_exact)
-        complex_solutions.append((y0, t_exact, y_exact))
-
-    def check_complex(idx, solver, meth, use_jac, with_jac, banded):
-        a = complex_matrices[idx]
-        y0, t_exact, y_exact = complex_solutions[idx]
-        t, y = _solve_linear_sys(a, y0,
-                                 tend=t_exact[-1],
-                                 dt=t_exact[1] - t_exact[0],
-                                 solver=solver,
-                                 method=meth,
-                                 use_jac=use_jac,
-                                 with_jacobian=with_jac,
-                                 banded=banded)
-        assert_allclose(t, t_exact)
-        assert_allclose(y, y_exact)
-
-    for idx in range(len(complex_matrices)):
-        p = [['bdf', 'adams'],   # method
-             [False, True],      # use_jac
-             [False, True],      # with_jacobian
-             [False, True]]      # banded
-        for meth, use_jac, with_jac, banded in itertools.product(*p):
-            check_complex(idx, "zvode", meth, use_jac, with_jac, banded)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_bvp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_bvp.py
deleted file mode 100644
index edaf80bec586831d255c6df48e2b953f40a563fa..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_bvp.py
+++ /dev/null
@@ -1,711 +0,0 @@
-import sys
-
-try:
-    from StringIO import StringIO
-except ImportError:
-    from io import StringIO
-
-import numpy as np
-from numpy.testing import (assert_, assert_array_equal, assert_allclose,
-                           assert_equal)
-from pytest import raises as assert_raises
-
-from scipy.sparse import coo_matrix
-from scipy.special import erf
-from scipy.integrate._bvp import (modify_mesh, estimate_fun_jac,
-                                  estimate_bc_jac, compute_jac_indices,
-                                  construct_global_jac, solve_bvp)
-
-
-def exp_fun(x, y):
-    return np.vstack((y[1], y[0]))
-
-
-def exp_fun_jac(x, y):
-    df_dy = np.empty((2, 2, x.shape[0]))
-    df_dy[0, 0] = 0
-    df_dy[0, 1] = 1
-    df_dy[1, 0] = 1
-    df_dy[1, 1] = 0
-    return df_dy
-
-
-def exp_bc(ya, yb):
-    return np.hstack((ya[0] - 1, yb[0]))
-
-
-def exp_bc_complex(ya, yb):
-    return np.hstack((ya[0] - 1 - 1j, yb[0]))
-
-
-def exp_bc_jac(ya, yb):
-    dbc_dya = np.array([
-        [1, 0],
-        [0, 0]
-    ])
-    dbc_dyb = np.array([
-        [0, 0],
-        [1, 0]
-    ])
-    return dbc_dya, dbc_dyb
-
-
-def exp_sol(x):
-    return (np.exp(-x) - np.exp(x - 2)) / (1 - np.exp(-2))
-
-
-def sl_fun(x, y, p):
-    return np.vstack((y[1], -p[0]**2 * y[0]))
-
-
-def sl_fun_jac(x, y, p):
-    n, m = y.shape
-    df_dy = np.empty((n, 2, m))
-    df_dy[0, 0] = 0
-    df_dy[0, 1] = 1
-    df_dy[1, 0] = -p[0]**2
-    df_dy[1, 1] = 0
-
-    df_dp = np.empty((n, 1, m))
-    df_dp[0, 0] = 0
-    df_dp[1, 0] = -2 * p[0] * y[0]
-
-    return df_dy, df_dp
-
-
-def sl_bc(ya, yb, p):
-    return np.hstack((ya[0], yb[0], ya[1] - p[0]))
-
-
-def sl_bc_jac(ya, yb, p):
-    dbc_dya = np.zeros((3, 2))
-    dbc_dya[0, 0] = 1
-    dbc_dya[2, 1] = 1
-
-    dbc_dyb = np.zeros((3, 2))
-    dbc_dyb[1, 0] = 1
-
-    dbc_dp = np.zeros((3, 1))
-    dbc_dp[2, 0] = -1
-
-    return dbc_dya, dbc_dyb, dbc_dp
-
-
-def sl_sol(x, p):
-    return np.sin(p[0] * x)
-
-
-def emden_fun(x, y):
-    return np.vstack((y[1], -y[0]**5))
-
-
-def emden_fun_jac(x, y):
-    df_dy = np.empty((2, 2, x.shape[0]))
-    df_dy[0, 0] = 0
-    df_dy[0, 1] = 1
-    df_dy[1, 0] = -5 * y[0]**4
-    df_dy[1, 1] = 0
-    return df_dy
-
-
-def emden_bc(ya, yb):
-    return np.array([ya[1], yb[0] - (3/4)**0.5])
-
-
-def emden_bc_jac(ya, yb):
-    dbc_dya = np.array([
-        [0, 1],
-        [0, 0]
-    ])
-    dbc_dyb = np.array([
-        [0, 0],
-        [1, 0]
-    ])
-    return dbc_dya, dbc_dyb
-
-
-def emden_sol(x):
-    return (1 + x**2/3)**-0.5
-
-
-def undefined_fun(x, y):
-    return np.zeros_like(y)
-
-
-def undefined_bc(ya, yb):
-    return np.array([ya[0], yb[0] - 1])
-
-
-def big_fun(x, y):
-    f = np.zeros_like(y)
-    f[::2] = y[1::2]
-    return f
-
-
-def big_bc(ya, yb):
-    return np.hstack((ya[::2], yb[::2] - 1))
-
-
-def big_sol(x, n):
-    y = np.ones((2 * n, x.size))
-    y[::2] = x
-    return x
-
-
-def big_fun_with_parameters(x, y, p):
-    """ Big version of sl_fun, with two parameters.
-
-    The two differential equations represented by sl_fun are broadcast to the
-    number of rows of y, rotating between the parameters p[0] and p[1].
-    Here are the differential equations:
-
-        dy[0]/dt = y[1]
-        dy[1]/dt = -p[0]**2 * y[0]
-        dy[2]/dt = y[3]
-        dy[3]/dt = -p[1]**2 * y[2]
-        dy[4]/dt = y[5]
-        dy[5]/dt = -p[0]**2 * y[4]
-        dy[6]/dt = y[7]
-        dy[7]/dt = -p[1]**2 * y[6]
-        .
-        .
-        .
-
-    """
-    f = np.zeros_like(y)
-    f[::2] = y[1::2]
-    f[1::4] = -p[0]**2 * y[::4]
-    f[3::4] = -p[1]**2 * y[2::4]
-    return f
-
-
-def big_fun_with_parameters_jac(x, y, p):
-    # big version of sl_fun_jac, with two parameters
-    n, m = y.shape
-    df_dy = np.zeros((n, n, m))
-    df_dy[range(0, n, 2), range(1, n, 2)] = 1
-    df_dy[range(1, n, 4), range(0, n, 4)] = -p[0]**2
-    df_dy[range(3, n, 4), range(2, n, 4)] = -p[1]**2
-
-    df_dp = np.zeros((n, 2, m))
-    df_dp[range(1, n, 4), 0] = -2 * p[0] * y[range(0, n, 4)]
-    df_dp[range(3, n, 4), 1] = -2 * p[1] * y[range(2, n, 4)]
-
-    return df_dy, df_dp
-
-
-def big_bc_with_parameters(ya, yb, p):
-    # big version of sl_bc, with two parameters
-    return np.hstack((ya[::2], yb[::2], ya[1] - p[0], ya[3] - p[1]))
-
-
-def big_bc_with_parameters_jac(ya, yb, p):
-    # big version of sl_bc_jac, with two parameters
-    n = ya.shape[0]
-    dbc_dya = np.zeros((n + 2, n))
-    dbc_dyb = np.zeros((n + 2, n))
-
-    dbc_dya[range(n // 2), range(0, n, 2)] = 1
-    dbc_dyb[range(n // 2, n), range(0, n, 2)] = 1
-
-    dbc_dp = np.zeros((n + 2, 2))
-    dbc_dp[n, 0] = -1
-    dbc_dya[n, 1] = 1
-    dbc_dp[n + 1, 1] = -1
-    dbc_dya[n + 1, 3] = 1
-
-    return dbc_dya, dbc_dyb, dbc_dp
-
-
-def big_sol_with_parameters(x, p):
-    # big version of sl_sol, with two parameters
-    return np.vstack((np.sin(p[0] * x), np.sin(p[1] * x)))
-
-
-def shock_fun(x, y):
-    eps = 1e-3
-    return np.vstack((
-        y[1],
-        -(x * y[1] + eps * np.pi**2 * np.cos(np.pi * x) +
-          np.pi * x * np.sin(np.pi * x)) / eps
-    ))
-
-
-def shock_bc(ya, yb):
-    return np.array([ya[0] + 2, yb[0]])
-
-
-def shock_sol(x):
-    eps = 1e-3
-    k = np.sqrt(2 * eps)
-    return np.cos(np.pi * x) + erf(x / k) / erf(1 / k)
-
-
-def nonlin_bc_fun(x, y):
-    # laplace eq.
-    return np.stack([y[1], np.zeros_like(x)])
-
-
-def nonlin_bc_bc(ya, yb):
-    phiA, phipA = ya
-    phiC, phipC = yb
-
-    kappa, ioA, ioC, V, f = 1.64, 0.01, 1.0e-4, 0.5, 38.9
-
-    # Butler-Volmer Kinetics at Anode
-    hA = 0.0-phiA-0.0
-    iA = ioA * (np.exp(f*hA) - np.exp(-f*hA))
-    res0 = iA + kappa * phipA
-
-    # Butler-Volmer Kinetics at Cathode
-    hC = V - phiC - 1.0
-    iC = ioC * (np.exp(f*hC) - np.exp(-f*hC))
-    res1 = iC - kappa*phipC
-
-    return np.array([res0, res1])
-
-
-def nonlin_bc_sol(x):
-    return -0.13426436116763119 - 1.1308709 * x
-
-
-def test_modify_mesh():
-    x = np.array([0, 1, 3, 9], dtype=float)
-    x_new = modify_mesh(x, np.array([0]), np.array([2]))
-    assert_array_equal(x_new, np.array([0, 0.5, 1, 3, 5, 7, 9]))
-
-    x = np.array([-6, -3, 0, 3, 6], dtype=float)
-    x_new = modify_mesh(x, np.array([1], dtype=int), np.array([0, 2, 3]))
-    assert_array_equal(x_new, [-6, -5, -4, -3, -1.5, 0, 1, 2, 3, 4, 5, 6])
-
-
-def test_compute_fun_jac():
-    x = np.linspace(0, 1, 5)
-    y = np.empty((2, x.shape[0]))
-    y[0] = 0.01
-    y[1] = 0.02
-    p = np.array([])
-    df_dy, df_dp = estimate_fun_jac(lambda x, y, p: exp_fun(x, y), x, y, p)
-    df_dy_an = exp_fun_jac(x, y)
-    assert_allclose(df_dy, df_dy_an)
-    assert_(df_dp is None)
-
-    x = np.linspace(0, np.pi, 5)
-    y = np.empty((2, x.shape[0]))
-    y[0] = np.sin(x)
-    y[1] = np.cos(x)
-    p = np.array([1.0])
-    df_dy, df_dp = estimate_fun_jac(sl_fun, x, y, p)
-    df_dy_an, df_dp_an = sl_fun_jac(x, y, p)
-    assert_allclose(df_dy, df_dy_an)
-    assert_allclose(df_dp, df_dp_an)
-
-    x = np.linspace(0, 1, 10)
-    y = np.empty((2, x.shape[0]))
-    y[0] = (3/4)**0.5
-    y[1] = 1e-4
-    p = np.array([])
-    df_dy, df_dp = estimate_fun_jac(lambda x, y, p: emden_fun(x, y), x, y, p)
-    df_dy_an = emden_fun_jac(x, y)
-    assert_allclose(df_dy, df_dy_an)
-    assert_(df_dp is None)
-
-
-def test_compute_bc_jac():
-    ya = np.array([-1.0, 2])
-    yb = np.array([0.5, 3])
-    p = np.array([])
-    dbc_dya, dbc_dyb, dbc_dp = estimate_bc_jac(
-        lambda ya, yb, p: exp_bc(ya, yb), ya, yb, p)
-    dbc_dya_an, dbc_dyb_an = exp_bc_jac(ya, yb)
-    assert_allclose(dbc_dya, dbc_dya_an)
-    assert_allclose(dbc_dyb, dbc_dyb_an)
-    assert_(dbc_dp is None)
-
-    ya = np.array([0.0, 1])
-    yb = np.array([0.0, -1])
-    p = np.array([0.5])
-    dbc_dya, dbc_dyb, dbc_dp = estimate_bc_jac(sl_bc, ya, yb, p)
-    dbc_dya_an, dbc_dyb_an, dbc_dp_an = sl_bc_jac(ya, yb, p)
-    assert_allclose(dbc_dya, dbc_dya_an)
-    assert_allclose(dbc_dyb, dbc_dyb_an)
-    assert_allclose(dbc_dp, dbc_dp_an)
-
-    ya = np.array([0.5, 100])
-    yb = np.array([-1000, 10.5])
-    p = np.array([])
-    dbc_dya, dbc_dyb, dbc_dp = estimate_bc_jac(
-        lambda ya, yb, p: emden_bc(ya, yb), ya, yb, p)
-    dbc_dya_an, dbc_dyb_an = emden_bc_jac(ya, yb)
-    assert_allclose(dbc_dya, dbc_dya_an)
-    assert_allclose(dbc_dyb, dbc_dyb_an)
-    assert_(dbc_dp is None)
-
-
-def test_compute_jac_indices():
-    n = 2
-    m = 4
-    k = 2
-    i, j = compute_jac_indices(n, m, k)
-    s = coo_matrix((np.ones_like(i), (i, j))).toarray()
-    s_true = np.array([
-        [1, 1, 1, 1, 0, 0, 0, 0, 1, 1],
-        [1, 1, 1, 1, 0, 0, 0, 0, 1, 1],
-        [0, 0, 1, 1, 1, 1, 0, 0, 1, 1],
-        [0, 0, 1, 1, 1, 1, 0, 0, 1, 1],
-        [0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
-        [0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
-        [1, 1, 0, 0, 0, 0, 1, 1, 1, 1],
-        [1, 1, 0, 0, 0, 0, 1, 1, 1, 1],
-        [1, 1, 0, 0, 0, 0, 1, 1, 1, 1],
-        [1, 1, 0, 0, 0, 0, 1, 1, 1, 1],
-    ])
-    assert_array_equal(s, s_true)
-
-
-def test_compute_global_jac():
-    n = 2
-    m = 5
-    k = 1
-    i_jac, j_jac = compute_jac_indices(2, 5, 1)
-    x = np.linspace(0, 1, 5)
-    h = np.diff(x)
-    y = np.vstack((np.sin(np.pi * x), np.pi * np.cos(np.pi * x)))
-    p = np.array([3.0])
-
-    f = sl_fun(x, y, p)
-
-    x_middle = x[:-1] + 0.5 * h
-    y_middle = 0.5 * (y[:, :-1] + y[:, 1:]) - h/8 * (f[:, 1:] - f[:, :-1])
-
-    df_dy, df_dp = sl_fun_jac(x, y, p)
-    df_dy_middle, df_dp_middle = sl_fun_jac(x_middle, y_middle, p)
-    dbc_dya, dbc_dyb, dbc_dp = sl_bc_jac(y[:, 0], y[:, -1], p)
-
-    J = construct_global_jac(n, m, k, i_jac, j_jac, h, df_dy, df_dy_middle,
-                             df_dp, df_dp_middle, dbc_dya, dbc_dyb, dbc_dp)
-    J = J.toarray()
-
-    def J_block(h, p):
-        return np.array([
-            [h**2*p**2/12 - 1, -0.5*h, -h**2*p**2/12 + 1, -0.5*h],
-            [0.5*h*p**2, h**2*p**2/12 - 1, 0.5*h*p**2, 1 - h**2*p**2/12]
-        ])
-
-    J_true = np.zeros((m * n + k, m * n + k))
-    for i in range(m - 1):
-        J_true[i * n: (i + 1) * n, i * n: (i + 2) * n] = J_block(h[i], p[0])
-
-    J_true[:(m - 1) * n:2, -1] = p * h**2/6 * (y[0, :-1] - y[0, 1:])
-    J_true[1:(m - 1) * n:2, -1] = p * (h * (y[0, :-1] + y[0, 1:]) +
-                                       h**2/6 * (y[1, :-1] - y[1, 1:]))
-
-    J_true[8, 0] = 1
-    J_true[9, 8] = 1
-    J_true[10, 1] = 1
-    J_true[10, 10] = -1
-
-    assert_allclose(J, J_true, rtol=1e-10)
-
-    df_dy, df_dp = estimate_fun_jac(sl_fun, x, y, p)
-    df_dy_middle, df_dp_middle = estimate_fun_jac(sl_fun, x_middle, y_middle, p)
-    dbc_dya, dbc_dyb, dbc_dp = estimate_bc_jac(sl_bc, y[:, 0], y[:, -1], p)
-    J = construct_global_jac(n, m, k, i_jac, j_jac, h, df_dy, df_dy_middle,
-                             df_dp, df_dp_middle, dbc_dya, dbc_dyb, dbc_dp)
-    J = J.toarray()
-    assert_allclose(J, J_true, rtol=2e-8, atol=2e-8)
-
-
-def test_parameter_validation():
-    x = [0, 1, 0.5]
-    y = np.zeros((2, 3))
-    assert_raises(ValueError, solve_bvp, exp_fun, exp_bc, x, y)
-
-    x = np.linspace(0, 1, 5)
-    y = np.zeros((2, 4))
-    assert_raises(ValueError, solve_bvp, exp_fun, exp_bc, x, y)
-
-    def fun(x, y, p):
-        return exp_fun(x, y)
-    def bc(ya, yb, p):
-        return exp_bc(ya, yb)
-
-    y = np.zeros((2, x.shape[0]))
-    assert_raises(ValueError, solve_bvp, fun, bc, x, y, p=[1])
-
-    def wrong_shape_fun(x, y):
-        return np.zeros(3)
-
-    assert_raises(ValueError, solve_bvp, wrong_shape_fun, bc, x, y)
-
-    S = np.array([[0, 0]])
-    assert_raises(ValueError, solve_bvp, exp_fun, exp_bc, x, y, S=S)
-
-
-def test_no_params():
-    x = np.linspace(0, 1, 5)
-    x_test = np.linspace(0, 1, 100)
-    y = np.zeros((2, x.shape[0]))
-    for fun_jac in [None, exp_fun_jac]:
-        for bc_jac in [None, exp_bc_jac]:
-            sol = solve_bvp(exp_fun, exp_bc, x, y, fun_jac=fun_jac,
-                            bc_jac=bc_jac)
-
-            assert_equal(sol.status, 0)
-            assert_(sol.success)
-
-            assert_equal(sol.x.size, 5)
-
-            sol_test = sol.sol(x_test)
-
-            assert_allclose(sol_test[0], exp_sol(x_test), atol=1e-5)
-
-            f_test = exp_fun(x_test, sol_test)
-            r = sol.sol(x_test, 1) - f_test
-            rel_res = r / (1 + np.abs(f_test))
-            norm_res = np.sum(rel_res**2, axis=0)**0.5
-            assert_(np.all(norm_res < 1e-3))
-
-            assert_(np.all(sol.rms_residuals < 1e-3))
-            assert_allclose(sol.sol(sol.x), sol.y, rtol=1e-10, atol=1e-10)
-            assert_allclose(sol.sol(sol.x, 1), sol.yp, rtol=1e-10, atol=1e-10)
-
-
-def test_with_params():
-    x = np.linspace(0, np.pi, 5)
-    x_test = np.linspace(0, np.pi, 100)
-    y = np.ones((2, x.shape[0]))
-
-    for fun_jac in [None, sl_fun_jac]:
-        for bc_jac in [None, sl_bc_jac]:
-            sol = solve_bvp(sl_fun, sl_bc, x, y, p=[0.5], fun_jac=fun_jac,
-                            bc_jac=bc_jac)
-
-            assert_equal(sol.status, 0)
-            assert_(sol.success)
-
-            assert_(sol.x.size < 10)
-
-            assert_allclose(sol.p, [1], rtol=1e-4)
-
-            sol_test = sol.sol(x_test)
-
-            assert_allclose(sol_test[0], sl_sol(x_test, [1]),
-                            rtol=1e-4, atol=1e-4)
-
-            f_test = sl_fun(x_test, sol_test, [1])
-            r = sol.sol(x_test, 1) - f_test
-            rel_res = r / (1 + np.abs(f_test))
-            norm_res = np.sum(rel_res ** 2, axis=0) ** 0.5
-            assert_(np.all(norm_res < 1e-3))
-
-            assert_(np.all(sol.rms_residuals < 1e-3))
-            assert_allclose(sol.sol(sol.x), sol.y, rtol=1e-10, atol=1e-10)
-            assert_allclose(sol.sol(sol.x, 1), sol.yp, rtol=1e-10, atol=1e-10)
-
-
-def test_singular_term():
-    x = np.linspace(0, 1, 10)
-    x_test = np.linspace(0.05, 1, 100)
-    y = np.empty((2, 10))
-    y[0] = (3/4)**0.5
-    y[1] = 1e-4
-    S = np.array([[0, 0], [0, -2]])
-
-    for fun_jac in [None, emden_fun_jac]:
-        for bc_jac in [None, emden_bc_jac]:
-            sol = solve_bvp(emden_fun, emden_bc, x, y, S=S, fun_jac=fun_jac,
-                            bc_jac=bc_jac)
-
-            assert_equal(sol.status, 0)
-            assert_(sol.success)
-
-            assert_equal(sol.x.size, 10)
-
-            sol_test = sol.sol(x_test)
-            assert_allclose(sol_test[0], emden_sol(x_test), atol=1e-5)
-
-            f_test = emden_fun(x_test, sol_test) + S.dot(sol_test) / x_test
-            r = sol.sol(x_test, 1) - f_test
-            rel_res = r / (1 + np.abs(f_test))
-            norm_res = np.sum(rel_res ** 2, axis=0) ** 0.5
-
-            assert_(np.all(norm_res < 1e-3))
-            assert_allclose(sol.sol(sol.x), sol.y, rtol=1e-10, atol=1e-10)
-            assert_allclose(sol.sol(sol.x, 1), sol.yp, rtol=1e-10, atol=1e-10)
-
-
-def test_complex():
-    # The test is essentially the same as test_no_params, but boundary
-    # conditions are turned into complex.
-    x = np.linspace(0, 1, 5)
-    x_test = np.linspace(0, 1, 100)
-    y = np.zeros((2, x.shape[0]), dtype=complex)
-    for fun_jac in [None, exp_fun_jac]:
-        for bc_jac in [None, exp_bc_jac]:
-            sol = solve_bvp(exp_fun, exp_bc_complex, x, y, fun_jac=fun_jac,
-                            bc_jac=bc_jac)
-
-            assert_equal(sol.status, 0)
-            assert_(sol.success)
-
-            sol_test = sol.sol(x_test)
-
-            assert_allclose(sol_test[0].real, exp_sol(x_test), atol=1e-5)
-            assert_allclose(sol_test[0].imag, exp_sol(x_test), atol=1e-5)
-
-            f_test = exp_fun(x_test, sol_test)
-            r = sol.sol(x_test, 1) - f_test
-            rel_res = r / (1 + np.abs(f_test))
-            norm_res = np.sum(np.real(rel_res * np.conj(rel_res)),
-                              axis=0) ** 0.5
-            assert_(np.all(norm_res < 1e-3))
-
-            assert_(np.all(sol.rms_residuals < 1e-3))
-            assert_allclose(sol.sol(sol.x), sol.y, rtol=1e-10, atol=1e-10)
-            assert_allclose(sol.sol(sol.x, 1), sol.yp, rtol=1e-10, atol=1e-10)
-
-
-def test_failures():
-    x = np.linspace(0, 1, 2)
-    y = np.zeros((2, x.size))
-    res = solve_bvp(exp_fun, exp_bc, x, y, tol=1e-5, max_nodes=5)
-    assert_equal(res.status, 1)
-    assert_(not res.success)
-
-    x = np.linspace(0, 1, 5)
-    y = np.zeros((2, x.size))
-    res = solve_bvp(undefined_fun, undefined_bc, x, y)
-    assert_equal(res.status, 2)
-    assert_(not res.success)
-
-
-def test_big_problem():
-    n = 30
-    x = np.linspace(0, 1, 5)
-    y = np.zeros((2 * n, x.size))
-    sol = solve_bvp(big_fun, big_bc, x, y)
-
-    assert_equal(sol.status, 0)
-    assert_(sol.success)
-
-    sol_test = sol.sol(x)
-
-    assert_allclose(sol_test[0], big_sol(x, n))
-
-    f_test = big_fun(x, sol_test)
-    r = sol.sol(x, 1) - f_test
-    rel_res = r / (1 + np.abs(f_test))
-    norm_res = np.sum(np.real(rel_res * np.conj(rel_res)), axis=0) ** 0.5
-    assert_(np.all(norm_res < 1e-3))
-
-    assert_(np.all(sol.rms_residuals < 1e-3))
-    assert_allclose(sol.sol(sol.x), sol.y, rtol=1e-10, atol=1e-10)
-    assert_allclose(sol.sol(sol.x, 1), sol.yp, rtol=1e-10, atol=1e-10)
-
-
-def test_big_problem_with_parameters():
-    n = 30
-    x = np.linspace(0, np.pi, 5)
-    x_test = np.linspace(0, np.pi, 100)
-    y = np.ones((2 * n, x.size))
-
-    for fun_jac in [None, big_fun_with_parameters_jac]:
-        for bc_jac in [None, big_bc_with_parameters_jac]:
-            sol = solve_bvp(big_fun_with_parameters, big_bc_with_parameters, x,
-                            y, p=[0.5, 0.5], fun_jac=fun_jac, bc_jac=bc_jac)
-
-            assert_equal(sol.status, 0)
-            assert_(sol.success)
-
-            assert_allclose(sol.p, [1, 1], rtol=1e-4)
-
-            sol_test = sol.sol(x_test)
-
-            for isol in range(0, n, 4):
-                assert_allclose(sol_test[isol],
-                                big_sol_with_parameters(x_test, [1, 1])[0],
-                                rtol=1e-4, atol=1e-4)
-                assert_allclose(sol_test[isol + 2],
-                                big_sol_with_parameters(x_test, [1, 1])[1],
-                                rtol=1e-4, atol=1e-4)
-
-            f_test = big_fun_with_parameters(x_test, sol_test, [1, 1])
-            r = sol.sol(x_test, 1) - f_test
-            rel_res = r / (1 + np.abs(f_test))
-            norm_res = np.sum(rel_res ** 2, axis=0) ** 0.5
-            assert_(np.all(norm_res < 1e-3))
-
-            assert_(np.all(sol.rms_residuals < 1e-3))
-            assert_allclose(sol.sol(sol.x), sol.y, rtol=1e-10, atol=1e-10)
-            assert_allclose(sol.sol(sol.x, 1), sol.yp, rtol=1e-10, atol=1e-10)
-
-
-def test_shock_layer():
-    x = np.linspace(-1, 1, 5)
-    x_test = np.linspace(-1, 1, 100)
-    y = np.zeros((2, x.size))
-    sol = solve_bvp(shock_fun, shock_bc, x, y)
-
-    assert_equal(sol.status, 0)
-    assert_(sol.success)
-
-    assert_(sol.x.size < 110)
-
-    sol_test = sol.sol(x_test)
-    assert_allclose(sol_test[0], shock_sol(x_test), rtol=1e-5, atol=1e-5)
-
-    f_test = shock_fun(x_test, sol_test)
-    r = sol.sol(x_test, 1) - f_test
-    rel_res = r / (1 + np.abs(f_test))
-    norm_res = np.sum(rel_res ** 2, axis=0) ** 0.5
-
-    assert_(np.all(norm_res < 1e-3))
-    assert_allclose(sol.sol(sol.x), sol.y, rtol=1e-10, atol=1e-10)
-    assert_allclose(sol.sol(sol.x, 1), sol.yp, rtol=1e-10, atol=1e-10)
-
-
-def test_nonlin_bc():
-    x = np.linspace(0, 0.1, 5)
-    x_test = x
-    y = np.zeros([2, x.size])
-    sol = solve_bvp(nonlin_bc_fun, nonlin_bc_bc, x, y)
-
-    assert_equal(sol.status, 0)
-    assert_(sol.success)
-
-    assert_(sol.x.size < 8)
-
-    sol_test = sol.sol(x_test)
-    assert_allclose(sol_test[0], nonlin_bc_sol(x_test), rtol=1e-5, atol=1e-5)
-
-    f_test = nonlin_bc_fun(x_test, sol_test)
-    r = sol.sol(x_test, 1) - f_test
-    rel_res = r / (1 + np.abs(f_test))
-    norm_res = np.sum(rel_res ** 2, axis=0) ** 0.5
-
-    assert_(np.all(norm_res < 1e-3))
-    assert_allclose(sol.sol(sol.x), sol.y, rtol=1e-10, atol=1e-10)
-    assert_allclose(sol.sol(sol.x, 1), sol.yp, rtol=1e-10, atol=1e-10)
-
-
-def test_verbose():
-    # Smoke test that checks the printing does something and does not crash
-    x = np.linspace(0, 1, 5)
-    y = np.zeros((2, x.shape[0]))
-    for verbose in [0, 1, 2]:
-        old_stdout = sys.stdout
-        sys.stdout = StringIO()
-        try:
-            sol = solve_bvp(exp_fun, exp_bc, x, y, verbose=verbose)
-            text = sys.stdout.getvalue()
-        finally:
-            sys.stdout = old_stdout
-
-        assert_(sol.success)
-        if verbose == 0:
-            assert_(not text, text)
-        if verbose >= 1:
-            assert_("Solved in" in text, text)
-        if verbose >= 2:
-            assert_("Max residual" in text, text)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_integrate.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_integrate.py
deleted file mode 100644
index ff228ed1719641b5b7013defef5e74dbfd0e07e5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_integrate.py
+++ /dev/null
@@ -1,834 +0,0 @@
-# Authors: Nils Wagner, Ed Schofield, Pauli Virtanen, John Travers
-"""
-Tests for numerical integration.
-"""
-import numpy as np
-from numpy import (arange, zeros, array, dot, sqrt, cos, sin, eye, pi, exp,
-                   allclose)
-
-from numpy.testing import (
-    assert_, assert_array_almost_equal,
-    assert_allclose, assert_array_equal, assert_equal, assert_warns)
-from pytest import raises as assert_raises
-from scipy.integrate import odeint, ode, complex_ode
-
-#------------------------------------------------------------------------------
-# Test ODE integrators
-#------------------------------------------------------------------------------
-
-
-class TestOdeint:
-    # Check integrate.odeint
-
-    def _do_problem(self, problem):
-        t = arange(0.0, problem.stop_t, 0.05)
-
-        # Basic case
-        z, infodict = odeint(problem.f, problem.z0, t, full_output=True)
-        assert_(problem.verify(z, t))
-
-        # Use tfirst=True
-        z, infodict = odeint(lambda t, y: problem.f(y, t), problem.z0, t,
-                             full_output=True, tfirst=True)
-        assert_(problem.verify(z, t))
-
-        if hasattr(problem, 'jac'):
-            # Use Dfun
-            z, infodict = odeint(problem.f, problem.z0, t, Dfun=problem.jac,
-                                 full_output=True)
-            assert_(problem.verify(z, t))
-
-            # Use Dfun and tfirst=True
-            z, infodict = odeint(lambda t, y: problem.f(y, t), problem.z0, t,
-                                 Dfun=lambda t, y: problem.jac(y, t),
-                                 full_output=True, tfirst=True)
-            assert_(problem.verify(z, t))
-
-    def test_odeint(self):
-        for problem_cls in PROBLEMS:
-            problem = problem_cls()
-            if problem.cmplx:
-                continue
-            self._do_problem(problem)
-
-
-class TestODEClass:
-
-    ode_class = None   # Set in subclass.
-
-    def _do_problem(self, problem, integrator, method='adams'):
-
-        # ode has callback arguments in different order than odeint
-        def f(t, z):
-            return problem.f(z, t)
-        jac = None
-        if hasattr(problem, 'jac'):
-            def jac(t, z):
-                return problem.jac(z, t)
-
-        integrator_params = {}
-        if problem.lband is not None or problem.uband is not None:
-            integrator_params['uband'] = problem.uband
-            integrator_params['lband'] = problem.lband
-
-        ig = self.ode_class(f, jac)
-        ig.set_integrator(integrator,
-                          atol=problem.atol/10,
-                          rtol=problem.rtol/10,
-                          method=method,
-                          **integrator_params)
-
-        ig.set_initial_value(problem.z0, t=0.0)
-        z = ig.integrate(problem.stop_t)
-
-        assert_array_equal(z, ig.y)
-        assert_(ig.successful(), (problem, method))
-        assert_(ig.get_return_code() > 0, (problem, method))
-        assert_(problem.verify(array([z]), problem.stop_t), (problem, method))
-
-
-class TestOde(TestODEClass):
-
-    ode_class = ode
-
-    def test_vode(self):
-        # Check the vode solver
-        for problem_cls in PROBLEMS:
-            problem = problem_cls()
-            if problem.cmplx:
-                continue
-            if not problem.stiff:
-                self._do_problem(problem, 'vode', 'adams')
-            self._do_problem(problem, 'vode', 'bdf')
-
-    def test_zvode(self):
-        # Check the zvode solver
-        for problem_cls in PROBLEMS:
-            problem = problem_cls()
-            if not problem.stiff:
-                self._do_problem(problem, 'zvode', 'adams')
-            self._do_problem(problem, 'zvode', 'bdf')
-
-    def test_lsoda(self):
-        # Check the lsoda solver
-        for problem_cls in PROBLEMS:
-            problem = problem_cls()
-            if problem.cmplx:
-                continue
-            self._do_problem(problem, 'lsoda')
-
-    def test_dopri5(self):
-        # Check the dopri5 solver
-        for problem_cls in PROBLEMS:
-            problem = problem_cls()
-            if problem.cmplx:
-                continue
-            if problem.stiff:
-                continue
-            if hasattr(problem, 'jac'):
-                continue
-            self._do_problem(problem, 'dopri5')
-
-    def test_dop853(self):
-        # Check the dop853 solver
-        for problem_cls in PROBLEMS:
-            problem = problem_cls()
-            if problem.cmplx:
-                continue
-            if problem.stiff:
-                continue
-            if hasattr(problem, 'jac'):
-                continue
-            self._do_problem(problem, 'dop853')
-
-    def test_concurrent_fail(self):
-        for sol in ('vode', 'zvode', 'lsoda'):
-            def f(t, y):
-                return 1.0
-
-            r = ode(f).set_integrator(sol)
-            r.set_initial_value(0, 0)
-
-            r2 = ode(f).set_integrator(sol)
-            r2.set_initial_value(0, 0)
-
-            r.integrate(r.t + 0.1)
-            r2.integrate(r2.t + 0.1)
-
-            assert_raises(RuntimeError, r.integrate, r.t + 0.1)
-
-    def test_concurrent_ok(self):
-        def f(t, y):
-            return 1.0
-
-        for k in range(3):
-            for sol in ('vode', 'zvode', 'lsoda', 'dopri5', 'dop853'):
-                r = ode(f).set_integrator(sol)
-                r.set_initial_value(0, 0)
-
-                r2 = ode(f).set_integrator(sol)
-                r2.set_initial_value(0, 0)
-
-                r.integrate(r.t + 0.1)
-                r2.integrate(r2.t + 0.1)
-                r2.integrate(r2.t + 0.1)
-
-                assert_allclose(r.y, 0.1)
-                assert_allclose(r2.y, 0.2)
-
-            for sol in ('dopri5', 'dop853'):
-                r = ode(f).set_integrator(sol)
-                r.set_initial_value(0, 0)
-
-                r2 = ode(f).set_integrator(sol)
-                r2.set_initial_value(0, 0)
-
-                r.integrate(r.t + 0.1)
-                r.integrate(r.t + 0.1)
-                r2.integrate(r2.t + 0.1)
-                r.integrate(r.t + 0.1)
-                r2.integrate(r2.t + 0.1)
-
-                assert_allclose(r.y, 0.3)
-                assert_allclose(r2.y, 0.2)
-
-
-class TestComplexOde(TestODEClass):
-
-    ode_class = complex_ode
-
-    def test_vode(self):
-        # Check the vode solver
-        for problem_cls in PROBLEMS:
-            problem = problem_cls()
-            if not problem.stiff:
-                self._do_problem(problem, 'vode', 'adams')
-            else:
-                self._do_problem(problem, 'vode', 'bdf')
-
-    def test_lsoda(self):
-        # Check the lsoda solver
-        for problem_cls in PROBLEMS:
-            problem = problem_cls()
-            self._do_problem(problem, 'lsoda')
-
-    def test_dopri5(self):
-        # Check the dopri5 solver
-        for problem_cls in PROBLEMS:
-            problem = problem_cls()
-            if problem.stiff:
-                continue
-            if hasattr(problem, 'jac'):
-                continue
-            self._do_problem(problem, 'dopri5')
-
-    def test_dop853(self):
-        # Check the dop853 solver
-        for problem_cls in PROBLEMS:
-            problem = problem_cls()
-            if problem.stiff:
-                continue
-            if hasattr(problem, 'jac'):
-                continue
-            self._do_problem(problem, 'dop853')
-
-
-class TestSolout:
-    # Check integrate.ode correctly handles solout for dopri5 and dop853
-    def _run_solout_test(self, integrator):
-        # Check correct usage of solout
-        ts = []
-        ys = []
-        t0 = 0.0
-        tend = 10.0
-        y0 = [1.0, 2.0]
-
-        def solout(t, y):
-            ts.append(t)
-            ys.append(y.copy())
-
-        def rhs(t, y):
-            return [y[0] + y[1], -y[1]**2]
-
-        ig = ode(rhs).set_integrator(integrator)
-        ig.set_solout(solout)
-        ig.set_initial_value(y0, t0)
-        ret = ig.integrate(tend)
-        assert_array_equal(ys[0], y0)
-        assert_array_equal(ys[-1], ret)
-        assert_equal(ts[0], t0)
-        assert_equal(ts[-1], tend)
-
-    def test_solout(self):
-        for integrator in ('dopri5', 'dop853'):
-            self._run_solout_test(integrator)
-
-    def _run_solout_after_initial_test(self, integrator):
-        # Check if solout works even if it is set after the initial value.
-        ts = []
-        ys = []
-        t0 = 0.0
-        tend = 10.0
-        y0 = [1.0, 2.0]
-
-        def solout(t, y):
-            ts.append(t)
-            ys.append(y.copy())
-
-        def rhs(t, y):
-            return [y[0] + y[1], -y[1]**2]
-
-        ig = ode(rhs).set_integrator(integrator)
-        ig.set_initial_value(y0, t0)
-        ig.set_solout(solout)
-        ret = ig.integrate(tend)
-        assert_array_equal(ys[0], y0)
-        assert_array_equal(ys[-1], ret)
-        assert_equal(ts[0], t0)
-        assert_equal(ts[-1], tend)
-
-    def test_solout_after_initial(self):
-        for integrator in ('dopri5', 'dop853'):
-            self._run_solout_after_initial_test(integrator)
-
-    def _run_solout_break_test(self, integrator):
-        # Check correct usage of stopping via solout
-        ts = []
-        ys = []
-        t0 = 0.0
-        tend = 10.0
-        y0 = [1.0, 2.0]
-
-        def solout(t, y):
-            ts.append(t)
-            ys.append(y.copy())
-            if t > tend/2.0:
-                return -1
-
-        def rhs(t, y):
-            return [y[0] + y[1], -y[1]**2]
-
-        ig = ode(rhs).set_integrator(integrator)
-        ig.set_solout(solout)
-        ig.set_initial_value(y0, t0)
-        ret = ig.integrate(tend)
-        assert_array_equal(ys[0], y0)
-        assert_array_equal(ys[-1], ret)
-        assert_equal(ts[0], t0)
-        assert_(ts[-1] > tend/2.0)
-        assert_(ts[-1] < tend)
-
-    def test_solout_break(self):
-        for integrator in ('dopri5', 'dop853'):
-            self._run_solout_break_test(integrator)
-
-
-class TestComplexSolout:
-    # Check integrate.ode correctly handles solout for dopri5 and dop853
-    def _run_solout_test(self, integrator):
-        # Check correct usage of solout
-        ts = []
-        ys = []
-        t0 = 0.0
-        tend = 20.0
-        y0 = [0.0]
-
-        def solout(t, y):
-            ts.append(t)
-            ys.append(y.copy())
-
-        def rhs(t, y):
-            return [1.0/(t - 10.0 - 1j)]
-
-        ig = complex_ode(rhs).set_integrator(integrator)
-        ig.set_solout(solout)
-        ig.set_initial_value(y0, t0)
-        ret = ig.integrate(tend)
-        assert_array_equal(ys[0], y0)
-        assert_array_equal(ys[-1], ret)
-        assert_equal(ts[0], t0)
-        assert_equal(ts[-1], tend)
-
-    def test_solout(self):
-        for integrator in ('dopri5', 'dop853'):
-            self._run_solout_test(integrator)
-
-    def _run_solout_break_test(self, integrator):
-        # Check correct usage of stopping via solout
-        ts = []
-        ys = []
-        t0 = 0.0
-        tend = 20.0
-        y0 = [0.0]
-
-        def solout(t, y):
-            ts.append(t)
-            ys.append(y.copy())
-            if t > tend/2.0:
-                return -1
-
-        def rhs(t, y):
-            return [1.0/(t - 10.0 - 1j)]
-
-        ig = complex_ode(rhs).set_integrator(integrator)
-        ig.set_solout(solout)
-        ig.set_initial_value(y0, t0)
-        ret = ig.integrate(tend)
-        assert_array_equal(ys[0], y0)
-        assert_array_equal(ys[-1], ret)
-        assert_equal(ts[0], t0)
-        assert_(ts[-1] > tend/2.0)
-        assert_(ts[-1] < tend)
-
-    def test_solout_break(self):
-        for integrator in ('dopri5', 'dop853'):
-            self._run_solout_break_test(integrator)
-
-
-#------------------------------------------------------------------------------
-# Test problems
-#------------------------------------------------------------------------------
-
-
-class ODE:
-    """
-    ODE problem
-    """
-    stiff = False
-    cmplx = False
-    stop_t = 1
-    z0 = []
-
-    lband = None
-    uband = None
-
-    atol = 1e-6
-    rtol = 1e-5
-
-
-class SimpleOscillator(ODE):
-    r"""
-    Free vibration of a simple oscillator::
-        m \ddot{u} + k u = 0, u(0) = u_0 \dot{u}(0) \dot{u}_0
-    Solution::
-        u(t) = u_0*cos(sqrt(k/m)*t)+\dot{u}_0*sin(sqrt(k/m)*t)/sqrt(k/m)
-    """
-    stop_t = 1 + 0.09
-    z0 = array([1.0, 0.1], float)
-
-    k = 4.0
-    m = 1.0
-
-    def f(self, z, t):
-        tmp = zeros((2, 2), float)
-        tmp[0, 1] = 1.0
-        tmp[1, 0] = -self.k / self.m
-        return dot(tmp, z)
-
-    def verify(self, zs, t):
-        omega = sqrt(self.k / self.m)
-        u = self.z0[0]*cos(omega*t) + self.z0[1]*sin(omega*t)/omega
-        return allclose(u, zs[:, 0], atol=self.atol, rtol=self.rtol)
-
-
-class ComplexExp(ODE):
-    r"""The equation :lm:`\dot u = i u`"""
-    stop_t = 1.23*pi
-    z0 = exp([1j, 2j, 3j, 4j, 5j])
-    cmplx = True
-
-    def f(self, z, t):
-        return 1j*z
-
-    def jac(self, z, t):
-        return 1j*eye(5)
-
-    def verify(self, zs, t):
-        u = self.z0 * exp(1j*t)
-        return allclose(u, zs, atol=self.atol, rtol=self.rtol)
-
-
-class Pi(ODE):
-    r"""Integrate 1/(t + 1j) from t=-10 to t=10"""
-    stop_t = 20
-    z0 = [0]
-    cmplx = True
-
-    def f(self, z, t):
-        return array([1./(t - 10 + 1j)])
-
-    def verify(self, zs, t):
-        u = -2j * np.arctan(10)
-        return allclose(u, zs[-1, :], atol=self.atol, rtol=self.rtol)
-
-
-class CoupledDecay(ODE):
-    r"""
-    3 coupled decays suited for banded treatment
-    (banded mode makes it necessary when N>>3)
-    """
-
-    stiff = True
-    stop_t = 0.5
-    z0 = [5.0, 7.0, 13.0]
-    lband = 1
-    uband = 0
-
-    lmbd = [0.17, 0.23, 0.29]  # fictitious decay constants
-
-    def f(self, z, t):
-        lmbd = self.lmbd
-        return np.array([-lmbd[0]*z[0],
-                         -lmbd[1]*z[1] + lmbd[0]*z[0],
-                         -lmbd[2]*z[2] + lmbd[1]*z[1]])
-
-    def jac(self, z, t):
-        # The full Jacobian is
-        #
-        #    [-lmbd[0]      0         0   ]
-        #    [ lmbd[0]  -lmbd[1]      0   ]
-        #    [    0      lmbd[1]  -lmbd[2]]
-        #
-        # The lower and upper bandwidths are lband=1 and uband=0, resp.
-        # The representation of this array in packed format is
-        #
-        #    [-lmbd[0]  -lmbd[1]  -lmbd[2]]
-        #    [ lmbd[0]   lmbd[1]      0   ]
-
-        lmbd = self.lmbd
-        j = np.zeros((self.lband + self.uband + 1, 3), order='F')
-
-        def set_j(ri, ci, val):
-            j[self.uband + ri - ci, ci] = val
-        set_j(0, 0, -lmbd[0])
-        set_j(1, 0, lmbd[0])
-        set_j(1, 1, -lmbd[1])
-        set_j(2, 1, lmbd[1])
-        set_j(2, 2, -lmbd[2])
-        return j
-
-    def verify(self, zs, t):
-        # Formulae derived by hand
-        lmbd = np.array(self.lmbd)
-        d10 = lmbd[1] - lmbd[0]
-        d21 = lmbd[2] - lmbd[1]
-        d20 = lmbd[2] - lmbd[0]
-        e0 = np.exp(-lmbd[0] * t)
-        e1 = np.exp(-lmbd[1] * t)
-        e2 = np.exp(-lmbd[2] * t)
-        u = np.vstack((
-            self.z0[0] * e0,
-            self.z0[1] * e1 + self.z0[0] * lmbd[0] / d10 * (e0 - e1),
-            self.z0[2] * e2 + self.z0[1] * lmbd[1] / d21 * (e1 - e2) +
-            lmbd[1] * lmbd[0] * self.z0[0] / d10 *
-            (1 / d20 * (e0 - e2) - 1 / d21 * (e1 - e2)))).transpose()
-        return allclose(u, zs, atol=self.atol, rtol=self.rtol)
-
-
-PROBLEMS = [SimpleOscillator, ComplexExp, Pi, CoupledDecay]
-
-#------------------------------------------------------------------------------
-
-
-def f(t, x):
-    dxdt = [x[1], -x[0]]
-    return dxdt
-
-
-def jac(t, x):
-    j = array([[0.0, 1.0],
-               [-1.0, 0.0]])
-    return j
-
-
-def f1(t, x, omega):
-    dxdt = [omega*x[1], -omega*x[0]]
-    return dxdt
-
-
-def jac1(t, x, omega):
-    j = array([[0.0, omega],
-               [-omega, 0.0]])
-    return j
-
-
-def f2(t, x, omega1, omega2):
-    dxdt = [omega1*x[1], -omega2*x[0]]
-    return dxdt
-
-
-def jac2(t, x, omega1, omega2):
-    j = array([[0.0, omega1],
-               [-omega2, 0.0]])
-    return j
-
-
-def fv(t, x, omega):
-    dxdt = [omega[0]*x[1], -omega[1]*x[0]]
-    return dxdt
-
-
-def jacv(t, x, omega):
-    j = array([[0.0, omega[0]],
-               [-omega[1], 0.0]])
-    return j
-
-
-class ODECheckParameterUse:
-    """Call an ode-class solver with several cases of parameter use."""
-
-    # solver_name must be set before tests can be run with this class.
-
-    # Set these in subclasses.
-    solver_name = ''
-    solver_uses_jac = False
-
-    def _get_solver(self, f, jac):
-        solver = ode(f, jac)
-        if self.solver_uses_jac:
-            solver.set_integrator(self.solver_name, atol=1e-9, rtol=1e-7,
-                                  with_jacobian=self.solver_uses_jac)
-        else:
-            # XXX Shouldn't set_integrator *always* accept the keyword arg
-            # 'with_jacobian', and perhaps raise an exception if it is set
-            # to True if the solver can't actually use it?
-            solver.set_integrator(self.solver_name, atol=1e-9, rtol=1e-7)
-        return solver
-
-    def _check_solver(self, solver):
-        ic = [1.0, 0.0]
-        solver.set_initial_value(ic, 0.0)
-        solver.integrate(pi)
-        assert_array_almost_equal(solver.y, [-1.0, 0.0])
-
-    def test_no_params(self):
-        solver = self._get_solver(f, jac)
-        self._check_solver(solver)
-
-    def test_one_scalar_param(self):
-        solver = self._get_solver(f1, jac1)
-        omega = 1.0
-        solver.set_f_params(omega)
-        if self.solver_uses_jac:
-            solver.set_jac_params(omega)
-        self._check_solver(solver)
-
-    def test_two_scalar_params(self):
-        solver = self._get_solver(f2, jac2)
-        omega1 = 1.0
-        omega2 = 1.0
-        solver.set_f_params(omega1, omega2)
-        if self.solver_uses_jac:
-            solver.set_jac_params(omega1, omega2)
-        self._check_solver(solver)
-
-    def test_vector_param(self):
-        solver = self._get_solver(fv, jacv)
-        omega = [1.0, 1.0]
-        solver.set_f_params(omega)
-        if self.solver_uses_jac:
-            solver.set_jac_params(omega)
-        self._check_solver(solver)
-
-    def test_warns_on_failure(self):
-        # Set nsteps small to ensure failure
-        solver = self._get_solver(f, jac)
-        solver.set_integrator(self.solver_name, nsteps=1)
-        ic = [1.0, 0.0]
-        solver.set_initial_value(ic, 0.0)
-        assert_warns(UserWarning, solver.integrate, pi)
-
-
-class TestDOPRI5CheckParameterUse(ODECheckParameterUse):
-    solver_name = 'dopri5'
-    solver_uses_jac = False
-
-
-class TestDOP853CheckParameterUse(ODECheckParameterUse):
-    solver_name = 'dop853'
-    solver_uses_jac = False
-
-
-class TestVODECheckParameterUse(ODECheckParameterUse):
-    solver_name = 'vode'
-    solver_uses_jac = True
-
-
-class TestZVODECheckParameterUse(ODECheckParameterUse):
-    solver_name = 'zvode'
-    solver_uses_jac = True
-
-
-class TestLSODACheckParameterUse(ODECheckParameterUse):
-    solver_name = 'lsoda'
-    solver_uses_jac = True
-
-
-def test_odeint_trivial_time():
-    # Test that odeint succeeds when given a single time point
-    # and full_output=True.  This is a regression test for gh-4282.
-    y0 = 1
-    t = [0]
-    y, info = odeint(lambda y, t: -y, y0, t, full_output=True)
-    assert_array_equal(y, np.array([[y0]]))
-
-
-def test_odeint_banded_jacobian():
-    # Test the use of the `Dfun`, `ml` and `mu` options of odeint.
-
-    def func(y, t, c):
-        return c.dot(y)
-
-    def jac(y, t, c):
-        return c
-
-    def jac_transpose(y, t, c):
-        return c.T.copy(order='C')
-
-    def bjac_rows(y, t, c):
-        jac = np.vstack((np.r_[0, np.diag(c, 1)],
-                            np.diag(c),
-                            np.r_[np.diag(c, -1), 0],
-                            np.r_[np.diag(c, -2), 0, 0]))
-        return jac
-
-    def bjac_cols(y, t, c):
-        return bjac_rows(y, t, c).T.copy(order='C')
-
-    c = array([[-205, 0.01, 0.00, 0.0],
-               [0.1, -2.50, 0.02, 0.0],
-               [1e-3, 0.01, -2.0, 0.01],
-               [0.00, 0.00, 0.1, -1.0]])
-
-    y0 = np.ones(4)
-    t = np.array([0, 5, 10, 100])
-
-    # Use the full Jacobian.
-    sol1, info1 = odeint(func, y0, t, args=(c,), full_output=True,
-                         atol=1e-13, rtol=1e-11, mxstep=10000,
-                         Dfun=jac)
-
-    # Use the transposed full Jacobian, with col_deriv=True.
-    sol2, info2 = odeint(func, y0, t, args=(c,), full_output=True,
-                         atol=1e-13, rtol=1e-11, mxstep=10000,
-                         Dfun=jac_transpose, col_deriv=True)
-
-    # Use the banded Jacobian.
-    sol3, info3 = odeint(func, y0, t, args=(c,), full_output=True,
-                         atol=1e-13, rtol=1e-11, mxstep=10000,
-                         Dfun=bjac_rows, ml=2, mu=1)
-
-    # Use the transposed banded Jacobian, with col_deriv=True.
-    sol4, info4 = odeint(func, y0, t, args=(c,), full_output=True,
-                         atol=1e-13, rtol=1e-11, mxstep=10000,
-                         Dfun=bjac_cols, ml=2, mu=1, col_deriv=True)
-
-    assert_allclose(sol1, sol2, err_msg="sol1 != sol2")
-    assert_allclose(sol1, sol3, atol=1e-12, err_msg="sol1 != sol3")
-    assert_allclose(sol3, sol4, err_msg="sol3 != sol4")
-
-    # Verify that the number of jacobian evaluations was the same for the
-    # calls of odeint with a full jacobian and with a banded jacobian. This is
-    # a regression test--there was a bug in the handling of banded jacobians
-    # that resulted in an incorrect jacobian matrix being passed to the LSODA
-    # code.  That would cause errors or excessive jacobian evaluations.
-    assert_array_equal(info1['nje'], info2['nje'])
-    assert_array_equal(info3['nje'], info4['nje'])
-
-    # Test the use of tfirst
-    sol1ty, info1ty = odeint(lambda t, y, c: func(y, t, c), y0, t, args=(c,),
-                             full_output=True, atol=1e-13, rtol=1e-11,
-                             mxstep=10000,
-                             Dfun=lambda t, y, c: jac(y, t, c), tfirst=True)
-    # The code should execute the exact same sequence of floating point
-    # calculations, so these should be exactly equal. We'll be safe and use
-    # a small tolerance.
-    assert_allclose(sol1, sol1ty, rtol=1e-12, err_msg="sol1 != sol1ty")
-
-
-def test_odeint_errors():
-    def sys1d(x, t):
-        return -100*x
-
-    def bad1(x, t):
-        return 1.0/0
-
-    def bad2(x, t):
-        return "foo"
-
-    def bad_jac1(x, t):
-        return 1.0/0
-
-    def bad_jac2(x, t):
-        return [["foo"]]
-
-    def sys2d(x, t):
-        return [-100*x[0], -0.1*x[1]]
-
-    def sys2d_bad_jac(x, t):
-        return [[1.0/0, 0], [0, -0.1]]
-
-    assert_raises(ZeroDivisionError, odeint, bad1, 1.0, [0, 1])
-    assert_raises(ValueError, odeint, bad2, 1.0, [0, 1])
-
-    assert_raises(ZeroDivisionError, odeint, sys1d, 1.0, [0, 1], Dfun=bad_jac1)
-    assert_raises(ValueError, odeint, sys1d, 1.0, [0, 1], Dfun=bad_jac2)
-
-    assert_raises(ZeroDivisionError, odeint, sys2d, [1.0, 1.0], [0, 1],
-                  Dfun=sys2d_bad_jac)
-
-
-def test_odeint_bad_shapes():
-    # Tests of some errors that can occur with odeint.
-
-    def badrhs(x, t):
-        return [1, -1]
-
-    def sys1(x, t):
-        return -100*x
-
-    def badjac(x, t):
-        return [[0, 0, 0]]
-
-    # y0 must be at most 1-d.
-    bad_y0 = [[0, 0], [0, 0]]
-    assert_raises(ValueError, odeint, sys1, bad_y0, [0, 1])
-
-    # t must be at most 1-d.
-    bad_t = [[0, 1], [2, 3]]
-    assert_raises(ValueError, odeint, sys1, [10.0], bad_t)
-
-    # y0 is 10, but badrhs(x, t) returns [1, -1].
-    assert_raises(RuntimeError, odeint, badrhs, 10, [0, 1])
-
-    # shape of array returned by badjac(x, t) is not correct.
-    assert_raises(RuntimeError, odeint, sys1, [10, 10], [0, 1], Dfun=badjac)
-
-
-def test_repeated_t_values():
-    """Regression test for gh-8217."""
-
-    def func(x, t):
-        return -0.25*x
-
-    t = np.zeros(10)
-    sol = odeint(func, [1.], t)
-    assert_array_equal(sol, np.ones((len(t), 1)))
-
-    tau = 4*np.log(2)
-    t = [0]*9 + [tau, 2*tau, 2*tau, 3*tau]
-    sol = odeint(func, [1, 2], t, rtol=1e-12, atol=1e-12)
-    expected_sol = np.array([[1.0, 2.0]]*9 +
-                            [[0.5, 1.0],
-                             [0.25, 0.5],
-                             [0.25, 0.5],
-                             [0.125, 0.25]])
-    assert_allclose(sol, expected_sol)
-
-    # Edge case: empty t sequence.
-    sol = odeint(func, [1.], [])
-    assert_array_equal(sol, np.array([], dtype=np.float64).reshape((0, 1)))
-
-    # t values are not monotonic.
-    assert_raises(ValueError, odeint, func, [1.], [0, 1, 0.5, 0])
-    assert_raises(ValueError, odeint, func, [1, 2, 3], [0, -1, -2, 3])
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_odeint_jac.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_odeint_jac.py
deleted file mode 100644
index 7d28ccc93f4444f3f2e0b71da01c573d4f903dbc..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_odeint_jac.py
+++ /dev/null
@@ -1,74 +0,0 @@
-import numpy as np
-from numpy.testing import assert_equal, assert_allclose
-from scipy.integrate import odeint
-import scipy.integrate._test_odeint_banded as banded5x5
-
-
-def rhs(y, t):
-    dydt = np.zeros_like(y)
-    banded5x5.banded5x5(t, y, dydt)
-    return dydt
-
-
-def jac(y, t):
-    n = len(y)
-    jac = np.zeros((n, n), order='F')
-    banded5x5.banded5x5_jac(t, y, 1, 1, jac)
-    return jac
-
-
-def bjac(y, t):
-    n = len(y)
-    bjac = np.zeros((4, n), order='F')
-    banded5x5.banded5x5_bjac(t, y, 1, 1, bjac)
-    return bjac
-
-
-JACTYPE_FULL = 1
-JACTYPE_BANDED = 4
-
-
-def check_odeint(jactype):
-    if jactype == JACTYPE_FULL:
-        ml = None
-        mu = None
-        jacobian = jac
-    elif jactype == JACTYPE_BANDED:
-        ml = 2
-        mu = 1
-        jacobian = bjac
-    else:
-        raise ValueError(f"invalid jactype: {jactype!r}")
-
-    y0 = np.arange(1.0, 6.0)
-    # These tolerances must match the tolerances used in banded5x5.f.
-    rtol = 1e-11
-    atol = 1e-13
-    dt = 0.125
-    nsteps = 64
-    t = dt * np.arange(nsteps+1)
-
-    sol, info = odeint(rhs, y0, t,
-                       Dfun=jacobian, ml=ml, mu=mu,
-                       atol=atol, rtol=rtol, full_output=True)
-    yfinal = sol[-1]
-    odeint_nst = info['nst'][-1]
-    odeint_nfe = info['nfe'][-1]
-    odeint_nje = info['nje'][-1]
-
-    y1 = y0.copy()
-    # Pure Fortran solution. y1 is modified in-place.
-    nst, nfe, nje = banded5x5.banded5x5_solve(y1, nsteps, dt, jactype)
-
-    # It is likely that yfinal and y1 are *exactly* the same, but
-    # we'll be cautious and use assert_allclose.
-    assert_allclose(yfinal, y1, rtol=1e-12)
-    assert_equal((odeint_nst, odeint_nfe, odeint_nje), (nst, nfe, nje))
-
-
-def test_odeint_full_jac():
-    check_odeint(JACTYPE_FULL)
-
-
-def test_odeint_banded_jac():
-    check_odeint(JACTYPE_BANDED)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_quadpack.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_quadpack.py
deleted file mode 100644
index a503cb54918b95c80d14ed5282c3c8d260a59c63..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_quadpack.py
+++ /dev/null
@@ -1,680 +0,0 @@
-import sys
-import math
-import numpy as np
-from numpy import sqrt, cos, sin, arctan, exp, log, pi
-from numpy.testing import (assert_,
-        assert_allclose, assert_array_less, assert_almost_equal)
-import pytest
-
-from scipy.integrate import quad, dblquad, tplquad, nquad
-from scipy.special import erf, erfc
-from scipy._lib._ccallback import LowLevelCallable
-
-import ctypes
-import ctypes.util
-from scipy._lib._ccallback_c import sine_ctypes
-
-import scipy.integrate._test_multivariate as clib_test
-
-
-def assert_quad(value_and_err, tabled_value, error_tolerance=1.5e-8):
-    value, err = value_and_err
-    assert_allclose(value, tabled_value, atol=err, rtol=0)
-    if error_tolerance is not None:
-        assert_array_less(err, error_tolerance)
-
-
-def get_clib_test_routine(name, restype, *argtypes):
-    ptr = getattr(clib_test, name)
-    return ctypes.cast(ptr, ctypes.CFUNCTYPE(restype, *argtypes))
-
-
-class TestCtypesQuad:
-    def setup_method(self):
-        if sys.platform == 'win32':
-            files = ['api-ms-win-crt-math-l1-1-0.dll']
-        elif sys.platform == 'darwin':
-            files = ['libm.dylib']
-        else:
-            files = ['libm.so', 'libm.so.6']
-
-        for file in files:
-            try:
-                self.lib = ctypes.CDLL(file)
-                break
-            except OSError:
-                pass
-        else:
-            # This test doesn't work on some Linux platforms (Fedora for
-            # example) that put an ld script in libm.so - see gh-5370
-            pytest.skip("Ctypes can't import libm.so")
-
-        restype = ctypes.c_double
-        argtypes = (ctypes.c_double,)
-        for name in ['sin', 'cos', 'tan']:
-            func = getattr(self.lib, name)
-            func.restype = restype
-            func.argtypes = argtypes
-
-    def test_typical(self):
-        assert_quad(quad(self.lib.sin, 0, 5), quad(math.sin, 0, 5)[0])
-        assert_quad(quad(self.lib.cos, 0, 5), quad(math.cos, 0, 5)[0])
-        assert_quad(quad(self.lib.tan, 0, 1), quad(math.tan, 0, 1)[0])
-
-    def test_ctypes_sine(self):
-        quad(LowLevelCallable(sine_ctypes), 0, 1)
-
-    def test_ctypes_variants(self):
-        sin_0 = get_clib_test_routine('_sin_0', ctypes.c_double,
-                                      ctypes.c_double, ctypes.c_void_p)
-
-        sin_1 = get_clib_test_routine('_sin_1', ctypes.c_double,
-                                      ctypes.c_int, ctypes.POINTER(ctypes.c_double),
-                                      ctypes.c_void_p)
-
-        sin_2 = get_clib_test_routine('_sin_2', ctypes.c_double,
-                                      ctypes.c_double)
-
-        sin_3 = get_clib_test_routine('_sin_3', ctypes.c_double,
-                                      ctypes.c_int, ctypes.POINTER(ctypes.c_double))
-
-        sin_4 = get_clib_test_routine('_sin_3', ctypes.c_double,
-                                      ctypes.c_int, ctypes.c_double)
-
-        all_sigs = [sin_0, sin_1, sin_2, sin_3, sin_4]
-        legacy_sigs = [sin_2, sin_4]
-        legacy_only_sigs = [sin_4]
-
-        # LowLevelCallables work for new signatures
-        for j, func in enumerate(all_sigs):
-            callback = LowLevelCallable(func)
-            if func in legacy_only_sigs:
-                pytest.raises(ValueError, quad, callback, 0, pi)
-            else:
-                assert_allclose(quad(callback, 0, pi)[0], 2.0)
-
-        # Plain ctypes items work only for legacy signatures
-        for j, func in enumerate(legacy_sigs):
-            if func in legacy_sigs:
-                assert_allclose(quad(func, 0, pi)[0], 2.0)
-            else:
-                pytest.raises(ValueError, quad, func, 0, pi)
-
-
-class TestMultivariateCtypesQuad:
-    def setup_method(self):
-        restype = ctypes.c_double
-        argtypes = (ctypes.c_int, ctypes.c_double)
-        for name in ['_multivariate_typical', '_multivariate_indefinite',
-                     '_multivariate_sin']:
-            func = get_clib_test_routine(name, restype, *argtypes)
-            setattr(self, name, func)
-
-    def test_typical(self):
-        # 1) Typical function with two extra arguments:
-        assert_quad(quad(self._multivariate_typical, 0, pi, (2, 1.8)),
-                    0.30614353532540296487)
-
-    def test_indefinite(self):
-        # 2) Infinite integration limits --- Euler's constant
-        assert_quad(quad(self._multivariate_indefinite, 0, np.inf),
-                    0.577215664901532860606512)
-
-    def test_threadsafety(self):
-        # Ensure multivariate ctypes are threadsafe
-        def threadsafety(y):
-            return y + quad(self._multivariate_sin, 0, 1)[0]
-        assert_quad(quad(threadsafety, 0, 1), 0.9596976941318602)
-
-
-class TestQuad:
-    def test_typical(self):
-        # 1) Typical function with two extra arguments:
-        def myfunc(x, n, z):       # Bessel function integrand
-            return cos(n*x-z*sin(x))/pi
-        assert_quad(quad(myfunc, 0, pi, (2, 1.8)), 0.30614353532540296487)
-
-    def test_indefinite(self):
-        # 2) Infinite integration limits --- Euler's constant
-        def myfunc(x):           # Euler's constant integrand
-            return -exp(-x)*log(x)
-        assert_quad(quad(myfunc, 0, np.inf), 0.577215664901532860606512)
-
-    def test_singular(self):
-        # 3) Singular points in region of integration.
-        def myfunc(x):
-            if 0 < x < 2.5:
-                return sin(x)
-            elif 2.5 <= x <= 5.0:
-                return exp(-x)
-            else:
-                return 0.0
-
-        assert_quad(quad(myfunc, 0, 10, points=[2.5, 5.0]),
-                    1 - cos(2.5) + exp(-2.5) - exp(-5.0))
-
-    def test_sine_weighted_finite(self):
-        # 4) Sine weighted integral (finite limits)
-        def myfunc(x, a):
-            return exp(a*(x-1))
-
-        ome = 2.0**3.4
-        assert_quad(quad(myfunc, 0, 1, args=20, weight='sin', wvar=ome),
-                    (20*sin(ome)-ome*cos(ome)+ome*exp(-20))/(20**2 + ome**2))
-
-    def test_sine_weighted_infinite(self):
-        # 5) Sine weighted integral (infinite limits)
-        def myfunc(x, a):
-            return exp(-x*a)
-
-        a = 4.0
-        ome = 3.0
-        assert_quad(quad(myfunc, 0, np.inf, args=a, weight='sin', wvar=ome),
-                    ome/(a**2 + ome**2))
-
-    def test_cosine_weighted_infinite(self):
-        # 6) Cosine weighted integral (negative infinite limits)
-        def myfunc(x, a):
-            return exp(x*a)
-
-        a = 2.5
-        ome = 2.3
-        assert_quad(quad(myfunc, -np.inf, 0, args=a, weight='cos', wvar=ome),
-                    a/(a**2 + ome**2))
-
-    def test_algebraic_log_weight(self):
-        # 6) Algebraic-logarithmic weight.
-        def myfunc(x, a):
-            return 1/(1+x+2**(-a))
-
-        a = 1.5
-        assert_quad(quad(myfunc, -1, 1, args=a, weight='alg',
-                         wvar=(-0.5, -0.5)),
-                    pi/sqrt((1+2**(-a))**2 - 1))
-
-    def test_cauchypv_weight(self):
-        # 7) Cauchy prinicpal value weighting w(x) = 1/(x-c)
-        def myfunc(x, a):
-            return 2.0**(-a)/((x-1)**2+4.0**(-a))
-
-        a = 0.4
-        tabledValue = ((2.0**(-0.4)*log(1.5) -
-                        2.0**(-1.4)*log((4.0**(-a)+16) / (4.0**(-a)+1)) -
-                        arctan(2.0**(a+2)) -
-                        arctan(2.0**a)) /
-                       (4.0**(-a) + 1))
-        assert_quad(quad(myfunc, 0, 5, args=0.4, weight='cauchy', wvar=2.0),
-                    tabledValue, error_tolerance=1.9e-8)
-
-    def test_b_less_than_a(self):
-        def f(x, p, q):
-            return p * np.exp(-q*x)
-
-        val_1, err_1 = quad(f, 0, np.inf, args=(2, 3))
-        val_2, err_2 = quad(f, np.inf, 0, args=(2, 3))
-        assert_allclose(val_1, -val_2, atol=max(err_1, err_2))
-
-    def test_b_less_than_a_2(self):
-        def f(x, s):
-            return np.exp(-x**2 / 2 / s) / np.sqrt(2.*s)
-
-        val_1, err_1 = quad(f, -np.inf, np.inf, args=(2,))
-        val_2, err_2 = quad(f, np.inf, -np.inf, args=(2,))
-        assert_allclose(val_1, -val_2, atol=max(err_1, err_2))
-
-    def test_b_less_than_a_3(self):
-        def f(x):
-            return 1.0
-
-        val_1, err_1 = quad(f, 0, 1, weight='alg', wvar=(0, 0))
-        val_2, err_2 = quad(f, 1, 0, weight='alg', wvar=(0, 0))
-        assert_allclose(val_1, -val_2, atol=max(err_1, err_2))
-
-    def test_b_less_than_a_full_output(self):
-        def f(x):
-            return 1.0
-
-        res_1 = quad(f, 0, 1, weight='alg', wvar=(0, 0), full_output=True)
-        res_2 = quad(f, 1, 0, weight='alg', wvar=(0, 0), full_output=True)
-        err = max(res_1[1], res_2[1])
-        assert_allclose(res_1[0], -res_2[0], atol=err)
-
-    def test_double_integral(self):
-        # 8) Double Integral test
-        def simpfunc(y, x):       # Note order of arguments.
-            return x+y
-
-        a, b = 1.0, 2.0
-        assert_quad(dblquad(simpfunc, a, b, lambda x: x, lambda x: 2*x),
-                    5/6.0 * (b**3.0-a**3.0))
-
-    def test_double_integral2(self):
-        def func(x0, x1, t0, t1):
-            return x0 + x1 + t0 + t1
-        def g(x):
-            return x
-        def h(x):
-            return 2 * x
-        args = 1, 2
-        assert_quad(dblquad(func, 1, 2, g, h, args=args),35./6 + 9*.5)
-
-    def test_double_integral3(self):
-        def func(x0, x1):
-            return x0 + x1 + 1 + 2
-        assert_quad(dblquad(func, 1, 2, 1, 2),6.)
-
-    @pytest.mark.parametrize(
-        "x_lower, x_upper, y_lower, y_upper, expected",
-        [
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [-inf, 0] for all n.
-            (-np.inf, 0, -np.inf, 0, np.pi / 4),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [-inf, -1] for each n (one at a time).
-            (-np.inf, -1, -np.inf, 0, np.pi / 4 * erfc(1)),
-            (-np.inf, 0, -np.inf, -1, np.pi / 4 * erfc(1)),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [-inf, -1] for all n.
-            (-np.inf, -1, -np.inf, -1, np.pi / 4 * (erfc(1) ** 2)),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [-inf, 1] for each n (one at a time).
-            (-np.inf, 1, -np.inf, 0, np.pi / 4 * (erf(1) + 1)),
-            (-np.inf, 0, -np.inf, 1, np.pi / 4 * (erf(1) + 1)),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [-inf, 1] for all n.
-            (-np.inf, 1, -np.inf, 1, np.pi / 4 * ((erf(1) + 1) ** 2)),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain Dx = [-inf, -1] and Dy = [-inf, 1].
-            (-np.inf, -1, -np.inf, 1, np.pi / 4 * ((erf(1) + 1) * erfc(1))),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain Dx = [-inf, 1] and Dy = [-inf, -1].
-            (-np.inf, 1, -np.inf, -1, np.pi / 4 * ((erf(1) + 1) * erfc(1))),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [0, inf] for all n.
-            (0, np.inf, 0, np.inf, np.pi / 4),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [1, inf] for each n (one at a time).
-            (1, np.inf, 0, np.inf, np.pi / 4 * erfc(1)),
-            (0, np.inf, 1, np.inf, np.pi / 4 * erfc(1)),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [1, inf] for all n.
-            (1, np.inf, 1, np.inf, np.pi / 4 * (erfc(1) ** 2)),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [-1, inf] for each n (one at a time).
-            (-1, np.inf, 0, np.inf, np.pi / 4 * (erf(1) + 1)),
-            (0, np.inf, -1, np.inf, np.pi / 4 * (erf(1) + 1)),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [-1, inf] for all n.
-            (-1, np.inf, -1, np.inf, np.pi / 4 * ((erf(1) + 1) ** 2)),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain Dx = [-1, inf] and Dy = [1, inf].
-            (-1, np.inf, 1, np.inf, np.pi / 4 * ((erf(1) + 1) * erfc(1))),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain Dx = [1, inf] and Dy = [-1, inf].
-            (1, np.inf, -1, np.inf, np.pi / 4 * ((erf(1) + 1) * erfc(1))),
-            # Multiple integration of a function in n = 2 variables: f(x, y, z)
-            # over domain D = [-inf, inf] for all n.
-            (-np.inf, np.inf, -np.inf, np.inf, np.pi)
-        ]
-    )
-    def test_double_integral_improper(
-            self, x_lower, x_upper, y_lower, y_upper, expected
-    ):
-        # The Gaussian Integral.
-        def f(x, y):
-            return np.exp(-x ** 2 - y ** 2)
-
-        assert_quad(
-            dblquad(f, x_lower, x_upper, y_lower, y_upper),
-            expected,
-            error_tolerance=3e-8
-        )
-
-    def test_triple_integral(self):
-        # 9) Triple Integral test
-        def simpfunc(z, y, x, t):      # Note order of arguments.
-            return (x+y+z)*t
-
-        a, b = 1.0, 2.0
-        assert_quad(tplquad(simpfunc, a, b,
-                            lambda x: x, lambda x: 2*x,
-                            lambda x, y: x - y, lambda x, y: x + y,
-                            (2.,)),
-                     2*8/3.0 * (b**4.0 - a**4.0))
-
-    @pytest.mark.xslow
-    @pytest.mark.parametrize(
-        "x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, expected",
-        [
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-inf, 0] for all n.
-            (-np.inf, 0, -np.inf, 0, -np.inf, 0, (np.pi ** (3 / 2)) / 8),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-inf, -1] for each n (one at a time).
-            (-np.inf, -1, -np.inf, 0, -np.inf, 0,
-             (np.pi ** (3 / 2)) / 8 * erfc(1)),
-            (-np.inf, 0, -np.inf, -1, -np.inf, 0,
-             (np.pi ** (3 / 2)) / 8 * erfc(1)),
-            (-np.inf, 0, -np.inf, 0, -np.inf, -1,
-             (np.pi ** (3 / 2)) / 8 * erfc(1)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-inf, -1] for each n (two at a time).
-            (-np.inf, -1, -np.inf, -1, -np.inf, 0,
-             (np.pi ** (3 / 2)) / 8 * (erfc(1) ** 2)),
-            (-np.inf, -1, -np.inf, 0, -np.inf, -1,
-             (np.pi ** (3 / 2)) / 8 * (erfc(1) ** 2)),
-            (-np.inf, 0, -np.inf, -1, -np.inf, -1,
-             (np.pi ** (3 / 2)) / 8 * (erfc(1) ** 2)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-inf, -1] for all n.
-            (-np.inf, -1, -np.inf, -1, -np.inf, -1,
-             (np.pi ** (3 / 2)) / 8 * (erfc(1) ** 3)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = [-inf, -1] and Dy = Dz = [-inf, 1].
-            (-np.inf, -1, -np.inf, 1, -np.inf, 1,
-             (np.pi ** (3 / 2)) / 8 * (((erf(1) + 1) ** 2) * erfc(1))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = Dy = [-inf, -1] and Dz = [-inf, 1].
-            (-np.inf, -1, -np.inf, -1, -np.inf, 1,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) * (erfc(1) ** 2))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = Dz = [-inf, -1] and Dy = [-inf, 1].
-            (-np.inf, -1, -np.inf, 1, -np.inf, -1,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) * (erfc(1) ** 2))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = [-inf, 1] and Dy = Dz = [-inf, -1].
-            (-np.inf, 1, -np.inf, -1, -np.inf, -1,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) * (erfc(1) ** 2))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = Dy = [-inf, 1] and Dz = [-inf, -1].
-            (-np.inf, 1, -np.inf, 1, -np.inf, -1,
-             (np.pi ** (3 / 2)) / 8 * (((erf(1) + 1) ** 2) * erfc(1))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = Dz = [-inf, 1] and Dy = [-inf, -1].
-            (-np.inf, 1, -np.inf, -1, -np.inf, 1,
-             (np.pi ** (3 / 2)) / 8 * (((erf(1) + 1) ** 2) * erfc(1))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-inf, 1] for each n (one at a time).
-            (-np.inf, 1, -np.inf, 0, -np.inf, 0,
-             (np.pi ** (3 / 2)) / 8 * (erf(1) + 1)),
-            (-np.inf, 0, -np.inf, 1, -np.inf, 0,
-             (np.pi ** (3 / 2)) / 8 * (erf(1) + 1)),
-            (-np.inf, 0, -np.inf, 0, -np.inf, 1,
-             (np.pi ** (3 / 2)) / 8 * (erf(1) + 1)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-inf, 1] for each n (two at a time).
-            (-np.inf, 1, -np.inf, 1, -np.inf, 0,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) ** 2)),
-            (-np.inf, 1, -np.inf, 0, -np.inf, 1,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) ** 2)),
-            (-np.inf, 0, -np.inf, 1, -np.inf, 1,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) ** 2)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-inf, 1] for all n.
-            (-np.inf, 1, -np.inf, 1, -np.inf, 1,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) ** 3)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [0, inf] for all n.
-            (0, np.inf, 0, np.inf, 0, np.inf, (np.pi ** (3 / 2)) / 8),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [1, inf] for each n (one at a time).
-            (1, np.inf, 0, np.inf, 0, np.inf,
-             (np.pi ** (3 / 2)) / 8 * erfc(1)),
-            (0, np.inf, 1, np.inf, 0, np.inf,
-             (np.pi ** (3 / 2)) / 8 * erfc(1)),
-            (0, np.inf, 0, np.inf, 1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * erfc(1)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [1, inf] for each n (two at a time).
-            (1, np.inf, 1, np.inf, 0, np.inf,
-             (np.pi ** (3 / 2)) / 8 * (erfc(1) ** 2)),
-            (1, np.inf, 0, np.inf, 1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * (erfc(1) ** 2)),
-            (0, np.inf, 1, np.inf, 1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * (erfc(1) ** 2)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [1, inf] for all n.
-            (1, np.inf, 1, np.inf, 1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * (erfc(1) ** 3)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-1, inf] for each n (one at a time).
-            (-1, np.inf, 0, np.inf, 0, np.inf,
-             (np.pi ** (3 / 2)) / 8 * (erf(1) + 1)),
-            (0, np.inf, -1, np.inf, 0, np.inf,
-             (np.pi ** (3 / 2)) / 8 * (erf(1) + 1)),
-            (0, np.inf, 0, np.inf, -1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * (erf(1) + 1)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-1, inf] for each n (two at a time).
-            (-1, np.inf, -1, np.inf, 0, np.inf,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) ** 2)),
-            (-1, np.inf, 0, np.inf, -1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) ** 2)),
-            (0, np.inf, -1, np.inf, -1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) ** 2)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-1, inf] for all n.
-            (-1, np.inf, -1, np.inf, -1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) ** 3)),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = [1, inf] and Dy = Dz = [-1, inf].
-            (1, np.inf, -1, np.inf, -1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * (((erf(1) + 1) ** 2) * erfc(1))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = Dy = [1, inf] and Dz = [-1, inf].
-            (1, np.inf, 1, np.inf, -1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) * (erfc(1) ** 2))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = Dz = [1, inf] and Dy = [-1, inf].
-            (1, np.inf, -1, np.inf, 1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) * (erfc(1) ** 2))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = [-1, inf] and Dy = Dz = [1, inf].
-            (-1, np.inf, 1, np.inf, 1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * ((erf(1) + 1) * (erfc(1) ** 2))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = Dy = [-1, inf] and Dz = [1, inf].
-            (-1, np.inf, -1, np.inf, 1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * (((erf(1) + 1) ** 2) * erfc(1))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain Dx = Dz = [-1, inf] and Dy = [1, inf].
-            (-1, np.inf, 1, np.inf, -1, np.inf,
-             (np.pi ** (3 / 2)) / 8 * (((erf(1) + 1) ** 2) * erfc(1))),
-            # Multiple integration of a function in n = 3 variables: f(x, y, z)
-            # over domain D = [-inf, inf] for all n.
-            (-np.inf, np.inf, -np.inf, np.inf, -np.inf, np.inf,
-             np.pi ** (3 / 2)),
-        ],
-    )
-    def test_triple_integral_improper(
-            self,
-            x_lower,
-            x_upper,
-            y_lower,
-            y_upper,
-            z_lower,
-            z_upper,
-            expected
-    ):
-        # The Gaussian Integral.
-        def f(x, y, z):
-            return np.exp(-x ** 2 - y ** 2 - z ** 2)
-
-        assert_quad(
-            tplquad(f, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper),
-            expected,
-            error_tolerance=6e-8
-        )
-
-    def test_complex(self):
-        def tfunc(x):
-            return np.exp(1j*x)
-
-        assert np.allclose(
-                    quad(tfunc, 0, np.pi/2, complex_func=True)[0],
-                    1+1j)
-
-        # We consider a divergent case in order to force quadpack
-        # to return an error message.  The output is compared
-        # against what is returned by explicit integration
-        # of the parts.
-        kwargs = {'a': 0, 'b': np.inf, 'full_output': True,
-                  'weight': 'cos', 'wvar': 1}
-        res_c = quad(tfunc, complex_func=True, **kwargs)
-        res_r = quad(lambda x: np.real(np.exp(1j*x)),
-                     complex_func=False,
-                     **kwargs)
-        res_i = quad(lambda x: np.imag(np.exp(1j*x)),
-                     complex_func=False,
-                     **kwargs)
-
-        np.testing.assert_equal(res_c[0], res_r[0] + 1j*res_i[0])
-        np.testing.assert_equal(res_c[1], res_r[1] + 1j*res_i[1])
-
-        assert len(res_c[2]['real']) == len(res_r[2:]) == 3
-        assert res_c[2]['real'][2] == res_r[4]
-        assert res_c[2]['real'][1] == res_r[3]
-        assert res_c[2]['real'][0]['lst'] == res_r[2]['lst']
-
-        assert len(res_c[2]['imag']) == len(res_i[2:]) == 1
-        assert res_c[2]['imag'][0]['lst'] == res_i[2]['lst']
-
-
-class TestNQuad:
-    @pytest.mark.fail_slow(2)
-    def test_fixed_limits(self):
-        def func1(x0, x1, x2, x3):
-            val = (x0**2 + x1*x2 - x3**3 + np.sin(x0) +
-                   (1 if (x0 - 0.2*x3 - 0.5 - 0.25*x1 > 0) else 0))
-            return val
-
-        def opts_basic(*args):
-            return {'points': [0.2*args[2] + 0.5 + 0.25*args[0]]}
-
-        res = nquad(func1, [[0, 1], [-1, 1], [.13, .8], [-.15, 1]],
-                    opts=[opts_basic, {}, {}, {}], full_output=True)
-        assert_quad(res[:-1], 1.5267454070738635)
-        assert_(res[-1]['neval'] > 0 and res[-1]['neval'] < 4e5)
-
-    @pytest.mark.fail_slow(2)
-    def test_variable_limits(self):
-        scale = .1
-
-        def func2(x0, x1, x2, x3, t0, t1):
-            val = (x0*x1*x3**2 + np.sin(x2) + 1 +
-                   (1 if x0 + t1*x1 - t0 > 0 else 0))
-            return val
-
-        def lim0(x1, x2, x3, t0, t1):
-            return [scale * (x1**2 + x2 + np.cos(x3)*t0*t1 + 1) - 1,
-                    scale * (x1**2 + x2 + np.cos(x3)*t0*t1 + 1) + 1]
-
-        def lim1(x2, x3, t0, t1):
-            return [scale * (t0*x2 + t1*x3) - 1,
-                    scale * (t0*x2 + t1*x3) + 1]
-
-        def lim2(x3, t0, t1):
-            return [scale * (x3 + t0**2*t1**3) - 1,
-                    scale * (x3 + t0**2*t1**3) + 1]
-
-        def lim3(t0, t1):
-            return [scale * (t0 + t1) - 1, scale * (t0 + t1) + 1]
-
-        def opts0(x1, x2, x3, t0, t1):
-            return {'points': [t0 - t1*x1]}
-
-        def opts1(x2, x3, t0, t1):
-            return {}
-
-        def opts2(x3, t0, t1):
-            return {}
-
-        def opts3(t0, t1):
-            return {}
-
-        res = nquad(func2, [lim0, lim1, lim2, lim3], args=(0, 0),
-                    opts=[opts0, opts1, opts2, opts3])
-        assert_quad(res, 25.066666666666663)
-
-    def test_square_separate_ranges_and_opts(self):
-        def f(y, x):
-            return 1.0
-
-        assert_quad(nquad(f, [[-1, 1], [-1, 1]], opts=[{}, {}]), 4.0)
-
-    def test_square_aliased_ranges_and_opts(self):
-        def f(y, x):
-            return 1.0
-
-        r = [-1, 1]
-        opt = {}
-        assert_quad(nquad(f, [r, r], opts=[opt, opt]), 4.0)
-
-    def test_square_separate_fn_ranges_and_opts(self):
-        def f(y, x):
-            return 1.0
-
-        def fn_range0(*args):
-            return (-1, 1)
-
-        def fn_range1(*args):
-            return (-1, 1)
-
-        def fn_opt0(*args):
-            return {}
-
-        def fn_opt1(*args):
-            return {}
-
-        ranges = [fn_range0, fn_range1]
-        opts = [fn_opt0, fn_opt1]
-        assert_quad(nquad(f, ranges, opts=opts), 4.0)
-
-    def test_square_aliased_fn_ranges_and_opts(self):
-        def f(y, x):
-            return 1.0
-
-        def fn_range(*args):
-            return (-1, 1)
-
-        def fn_opt(*args):
-            return {}
-
-        ranges = [fn_range, fn_range]
-        opts = [fn_opt, fn_opt]
-        assert_quad(nquad(f, ranges, opts=opts), 4.0)
-
-    def test_matching_quad(self):
-        def func(x):
-            return x**2 + 1
-
-        res, reserr = quad(func, 0, 4)
-        res2, reserr2 = nquad(func, ranges=[[0, 4]])
-        assert_almost_equal(res, res2)
-        assert_almost_equal(reserr, reserr2)
-
-    def test_matching_dblquad(self):
-        def func2d(x0, x1):
-            return x0**2 + x1**3 - x0 * x1 + 1
-
-        res, reserr = dblquad(func2d, -2, 2, lambda x: -3, lambda x: 3)
-        res2, reserr2 = nquad(func2d, [[-3, 3], (-2, 2)])
-        assert_almost_equal(res, res2)
-        assert_almost_equal(reserr, reserr2)
-
-    def test_matching_tplquad(self):
-        def func3d(x0, x1, x2, c0, c1):
-            return x0**2 + c0 * x1**3 - x0 * x1 + 1 + c1 * np.sin(x2)
-
-        res = tplquad(func3d, -1, 2, lambda x: -2, lambda x: 2,
-                      lambda x, y: -np.pi, lambda x, y: np.pi,
-                      args=(2, 3))
-        res2 = nquad(func3d, [[-np.pi, np.pi], [-2, 2], (-1, 2)], args=(2, 3))
-        assert_almost_equal(res, res2)
-
-    def test_dict_as_opts(self):
-        try:
-            nquad(lambda x, y: x * y, [[0, 1], [0, 1]], opts={'epsrel': 0.0001})
-        except TypeError:
-            assert False
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_quadrature.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_quadrature.py
deleted file mode 100644
index 9006fb4141529802731e33d50bb712686ee098ed..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_quadrature.py
+++ /dev/null
@@ -1,721 +0,0 @@
-# mypy: disable-error-code="attr-defined"
-import pytest
-import numpy as np
-from numpy import cos, sin, pi
-from numpy.testing import (assert_equal, assert_almost_equal, assert_allclose,
-                           assert_, suppress_warnings)
-from hypothesis import given
-import hypothesis.strategies as st
-import hypothesis.extra.numpy as hyp_num
-
-from scipy.integrate import (quadrature, romberg, romb, newton_cotes,
-                             cumulative_trapezoid, trapezoid,
-                             quad, simpson, fixed_quad, AccuracyWarning,
-                             qmc_quad, cumulative_simpson)
-from scipy.integrate._quadrature import _cumulative_simpson_unequal_intervals
-from scipy import stats, special
-
-
-class TestFixedQuad:
-    def test_scalar(self):
-        n = 4
-        expected = 1/(2*n)
-        got, _ = fixed_quad(lambda x: x**(2*n - 1), 0, 1, n=n)
-        # quadrature exact for this input
-        assert_allclose(got, expected, rtol=1e-12)
-
-    def test_vector(self):
-        n = 4
-        p = np.arange(1, 2*n)
-        expected = 1/(p + 1)
-        got, _ = fixed_quad(lambda x: x**p[:, None], 0, 1, n=n)
-        assert_allclose(got, expected, rtol=1e-12)
-
-
-@pytest.mark.filterwarnings('ignore::DeprecationWarning')
-class TestQuadrature:
-    def quad(self, x, a, b, args):
-        raise NotImplementedError
-
-    def test_quadrature(self):
-        # Typical function with two extra arguments:
-        def myfunc(x, n, z):       # Bessel function integrand
-            return cos(n*x-z*sin(x))/pi
-        val, err = quadrature(myfunc, 0, pi, (2, 1.8))
-        table_val = 0.30614353532540296487
-        assert_almost_equal(val, table_val, decimal=7)
-
-    def test_quadrature_rtol(self):
-        def myfunc(x, n, z):       # Bessel function integrand
-            return 1e90 * cos(n*x-z*sin(x))/pi
-        val, err = quadrature(myfunc, 0, pi, (2, 1.8), rtol=1e-10)
-        table_val = 1e90 * 0.30614353532540296487
-        assert_allclose(val, table_val, rtol=1e-10)
-
-    def test_quadrature_miniter(self):
-        # Typical function with two extra arguments:
-        def myfunc(x, n, z):       # Bessel function integrand
-            return cos(n*x-z*sin(x))/pi
-        table_val = 0.30614353532540296487
-        for miniter in [5, 52]:
-            val, err = quadrature(myfunc, 0, pi, (2, 1.8), miniter=miniter)
-            assert_almost_equal(val, table_val, decimal=7)
-            assert_(err < 1.0)
-
-    def test_quadrature_single_args(self):
-        def myfunc(x, n):
-            return 1e90 * cos(n*x-1.8*sin(x))/pi
-        val, err = quadrature(myfunc, 0, pi, args=2, rtol=1e-10)
-        table_val = 1e90 * 0.30614353532540296487
-        assert_allclose(val, table_val, rtol=1e-10)
-
-    def test_romberg(self):
-        # Typical function with two extra arguments:
-        def myfunc(x, n, z):       # Bessel function integrand
-            return cos(n*x-z*sin(x))/pi
-        val = romberg(myfunc, 0, pi, args=(2, 1.8))
-        table_val = 0.30614353532540296487
-        assert_almost_equal(val, table_val, decimal=7)
-
-    def test_romberg_rtol(self):
-        # Typical function with two extra arguments:
-        def myfunc(x, n, z):       # Bessel function integrand
-            return 1e19*cos(n*x-z*sin(x))/pi
-        val = romberg(myfunc, 0, pi, args=(2, 1.8), rtol=1e-10)
-        table_val = 1e19*0.30614353532540296487
-        assert_allclose(val, table_val, rtol=1e-10)
-
-    def test_romb(self):
-        assert_equal(romb(np.arange(17)), 128)
-
-    def test_romb_gh_3731(self):
-        # Check that romb makes maximal use of data points
-        x = np.arange(2**4+1)
-        y = np.cos(0.2*x)
-        val = romb(y)
-        val2, err = quad(lambda x: np.cos(0.2*x), x.min(), x.max())
-        assert_allclose(val, val2, rtol=1e-8, atol=0)
-
-        # should be equal to romb with 2**k+1 samples
-        with suppress_warnings() as sup:
-            sup.filter(AccuracyWarning, "divmax .4. exceeded")
-            val3 = romberg(lambda x: np.cos(0.2*x), x.min(), x.max(), divmax=4)
-        assert_allclose(val, val3, rtol=1e-12, atol=0)
-
-    def test_non_dtype(self):
-        # Check that we work fine with functions returning float
-        import math
-        valmath = romberg(math.sin, 0, 1)
-        expected_val = 0.45969769413185085
-        assert_almost_equal(valmath, expected_val, decimal=7)
-
-    def test_newton_cotes(self):
-        """Test the first few degrees, for evenly spaced points."""
-        n = 1
-        wts, errcoff = newton_cotes(n, 1)
-        assert_equal(wts, n*np.array([0.5, 0.5]))
-        assert_almost_equal(errcoff, -n**3/12.0)
-
-        n = 2
-        wts, errcoff = newton_cotes(n, 1)
-        assert_almost_equal(wts, n*np.array([1.0, 4.0, 1.0])/6.0)
-        assert_almost_equal(errcoff, -n**5/2880.0)
-
-        n = 3
-        wts, errcoff = newton_cotes(n, 1)
-        assert_almost_equal(wts, n*np.array([1.0, 3.0, 3.0, 1.0])/8.0)
-        assert_almost_equal(errcoff, -n**5/6480.0)
-
-        n = 4
-        wts, errcoff = newton_cotes(n, 1)
-        assert_almost_equal(wts, n*np.array([7.0, 32.0, 12.0, 32.0, 7.0])/90.0)
-        assert_almost_equal(errcoff, -n**7/1935360.0)
-
-    def test_newton_cotes2(self):
-        """Test newton_cotes with points that are not evenly spaced."""
-
-        x = np.array([0.0, 1.5, 2.0])
-        y = x**2
-        wts, errcoff = newton_cotes(x)
-        exact_integral = 8.0/3
-        numeric_integral = np.dot(wts, y)
-        assert_almost_equal(numeric_integral, exact_integral)
-
-        x = np.array([0.0, 1.4, 2.1, 3.0])
-        y = x**2
-        wts, errcoff = newton_cotes(x)
-        exact_integral = 9.0
-        numeric_integral = np.dot(wts, y)
-        assert_almost_equal(numeric_integral, exact_integral)
-
-    def test_simpson(self):
-        y = np.arange(17)
-        assert_equal(simpson(y), 128)
-        assert_equal(simpson(y, dx=0.5), 64)
-        assert_equal(simpson(y, x=np.linspace(0, 4, 17)), 32)
-
-        # integral should be exactly 21
-        x = np.linspace(1, 4, 4)
-        def f(x):
-            return x**2
-
-        assert_allclose(simpson(f(x), x=x), 21.0)
-
-        # integral should be exactly 114
-        x = np.linspace(1, 7, 4)
-        assert_allclose(simpson(f(x), dx=2.0), 114)
-
-        # test multi-axis behaviour
-        a = np.arange(16).reshape(4, 4)
-        x = np.arange(64.).reshape(4, 4, 4)
-        y = f(x)
-        for i in range(3):
-            r = simpson(y, x=x, axis=i)
-            it = np.nditer(a, flags=['multi_index'])
-            for _ in it:
-                idx = list(it.multi_index)
-                idx.insert(i, slice(None))
-                integral = x[tuple(idx)][-1]**3 / 3 - x[tuple(idx)][0]**3 / 3
-                assert_allclose(r[it.multi_index], integral)
-
-        # test when integration axis only has two points
-        x = np.arange(16).reshape(8, 2)
-        y = f(x)
-        r = simpson(y, x=x, axis=-1)
-
-        integral = 0.5 * (y[:, 1] + y[:, 0]) * (x[:, 1] - x[:, 0])
-        assert_allclose(r, integral)
-
-        # odd points, test multi-axis behaviour
-        a = np.arange(25).reshape(5, 5)
-        x = np.arange(125).reshape(5, 5, 5)
-        y = f(x)
-        for i in range(3):
-            r = simpson(y, x=x, axis=i)
-            it = np.nditer(a, flags=['multi_index'])
-            for _ in it:
-                idx = list(it.multi_index)
-                idx.insert(i, slice(None))
-                integral = x[tuple(idx)][-1]**3 / 3 - x[tuple(idx)][0]**3 / 3
-                assert_allclose(r[it.multi_index], integral)
-
-        # Tests for checking base case
-        x = np.array([3])
-        y = np.power(x, 2)
-        assert_allclose(simpson(y, x=x, axis=0), 0.0)
-        assert_allclose(simpson(y, x=x, axis=-1), 0.0)
-
-        x = np.array([3, 3, 3, 3])
-        y = np.power(x, 2)
-        assert_allclose(simpson(y, x=x, axis=0), 0.0)
-        assert_allclose(simpson(y, x=x, axis=-1), 0.0)
-
-        x = np.array([[1, 2, 4, 8], [1, 2, 4, 8], [1, 2, 4, 8]])
-        y = np.power(x, 2)
-        zero_axis = [0.0, 0.0, 0.0, 0.0]
-        default_axis = [170 + 1/3] * 3   # 8**3 / 3 - 1/3
-        assert_allclose(simpson(y, x=x, axis=0), zero_axis)
-        # the following should be exact
-        assert_allclose(simpson(y, x=x, axis=-1), default_axis)
-
-        x = np.array([[1, 2, 4, 8], [1, 2, 4, 8], [1, 8, 16, 32]])
-        y = np.power(x, 2)
-        zero_axis = [0.0, 136.0, 1088.0, 8704.0]
-        default_axis = [170 + 1/3, 170 + 1/3, 32**3 / 3 - 1/3]
-        assert_allclose(simpson(y, x=x, axis=0), zero_axis)
-        assert_allclose(simpson(y, x=x, axis=-1), default_axis)
-
-
-    @pytest.mark.parametrize('droplast', [False, True])
-    def test_simpson_2d_integer_no_x(self, droplast):
-        # The inputs are 2d integer arrays.  The results should be
-        # identical to the results when the inputs are floating point.
-        y = np.array([[2, 2, 4, 4, 8, 8, -4, 5],
-                      [4, 4, 2, -4, 10, 22, -2, 10]])
-        if droplast:
-            y = y[:, :-1]
-        result = simpson(y, axis=-1)
-        expected = simpson(np.array(y, dtype=np.float64), axis=-1)
-        assert_equal(result, expected)
-
-
-@pytest.mark.parametrize('func', [romberg, quadrature])
-def test_deprecate_integrator(func):
-    message = f"`scipy.integrate.{func.__name__}` is deprecated..."
-    with pytest.deprecated_call(match=message):
-        func(np.exp, 0, 1)
-
-
-class TestCumulative_trapezoid:
-    def test_1d(self):
-        x = np.linspace(-2, 2, num=5)
-        y = x
-        y_int = cumulative_trapezoid(y, x, initial=0)
-        y_expected = [0., -1.5, -2., -1.5, 0.]
-        assert_allclose(y_int, y_expected)
-
-        y_int = cumulative_trapezoid(y, x, initial=None)
-        assert_allclose(y_int, y_expected[1:])
-
-    def test_y_nd_x_nd(self):
-        x = np.arange(3 * 2 * 4).reshape(3, 2, 4)
-        y = x
-        y_int = cumulative_trapezoid(y, x, initial=0)
-        y_expected = np.array([[[0., 0.5, 2., 4.5],
-                                [0., 4.5, 10., 16.5]],
-                               [[0., 8.5, 18., 28.5],
-                                [0., 12.5, 26., 40.5]],
-                               [[0., 16.5, 34., 52.5],
-                                [0., 20.5, 42., 64.5]]])
-
-        assert_allclose(y_int, y_expected)
-
-        # Try with all axes
-        shapes = [(2, 2, 4), (3, 1, 4), (3, 2, 3)]
-        for axis, shape in zip([0, 1, 2], shapes):
-            y_int = cumulative_trapezoid(y, x, initial=0, axis=axis)
-            assert_equal(y_int.shape, (3, 2, 4))
-            y_int = cumulative_trapezoid(y, x, initial=None, axis=axis)
-            assert_equal(y_int.shape, shape)
-
-    def test_y_nd_x_1d(self):
-        y = np.arange(3 * 2 * 4).reshape(3, 2, 4)
-        x = np.arange(4)**2
-        # Try with all axes
-        ys_expected = (
-            np.array([[[4., 5., 6., 7.],
-                       [8., 9., 10., 11.]],
-                      [[40., 44., 48., 52.],
-                       [56., 60., 64., 68.]]]),
-            np.array([[[2., 3., 4., 5.]],
-                      [[10., 11., 12., 13.]],
-                      [[18., 19., 20., 21.]]]),
-            np.array([[[0.5, 5., 17.5],
-                       [4.5, 21., 53.5]],
-                      [[8.5, 37., 89.5],
-                       [12.5, 53., 125.5]],
-                      [[16.5, 69., 161.5],
-                       [20.5, 85., 197.5]]]))
-
-        for axis, y_expected in zip([0, 1, 2], ys_expected):
-            y_int = cumulative_trapezoid(y, x=x[:y.shape[axis]], axis=axis,
-                                         initial=None)
-            assert_allclose(y_int, y_expected)
-
-    def test_x_none(self):
-        y = np.linspace(-2, 2, num=5)
-
-        y_int = cumulative_trapezoid(y)
-        y_expected = [-1.5, -2., -1.5, 0.]
-        assert_allclose(y_int, y_expected)
-
-        y_int = cumulative_trapezoid(y, initial=0)
-        y_expected = [0, -1.5, -2., -1.5, 0.]
-        assert_allclose(y_int, y_expected)
-
-        y_int = cumulative_trapezoid(y, dx=3)
-        y_expected = [-4.5, -6., -4.5, 0.]
-        assert_allclose(y_int, y_expected)
-
-        y_int = cumulative_trapezoid(y, dx=3, initial=0)
-        y_expected = [0, -4.5, -6., -4.5, 0.]
-        assert_allclose(y_int, y_expected)
-
-    @pytest.mark.parametrize(
-        "initial", [1, 0.5]
-    )
-    def test_initial_warning(self, initial):
-        """If initial is not None or 0, a ValueError is raised."""
-        y = np.linspace(0, 10, num=10)
-        with pytest.deprecated_call(match="`initial`"):
-            res = cumulative_trapezoid(y, initial=initial)
-        assert_allclose(res, [initial, *np.cumsum(y[1:] + y[:-1])/2])
-
-    def test_zero_len_y(self):
-        with pytest.raises(ValueError, match="At least one point is required"):
-            cumulative_trapezoid(y=[])
-
-
-class TestTrapezoid:
-    def test_simple(self):
-        x = np.arange(-10, 10, .1)
-        r = trapezoid(np.exp(-.5 * x ** 2) / np.sqrt(2 * np.pi), dx=0.1)
-        # check integral of normal equals 1
-        assert_allclose(r, 1)
-
-    def test_ndim(self):
-        x = np.linspace(0, 1, 3)
-        y = np.linspace(0, 2, 8)
-        z = np.linspace(0, 3, 13)
-
-        wx = np.ones_like(x) * (x[1] - x[0])
-        wx[0] /= 2
-        wx[-1] /= 2
-        wy = np.ones_like(y) * (y[1] - y[0])
-        wy[0] /= 2
-        wy[-1] /= 2
-        wz = np.ones_like(z) * (z[1] - z[0])
-        wz[0] /= 2
-        wz[-1] /= 2
-
-        q = x[:, None, None] + y[None,:, None] + z[None, None,:]
-
-        qx = (q * wx[:, None, None]).sum(axis=0)
-        qy = (q * wy[None, :, None]).sum(axis=1)
-        qz = (q * wz[None, None, :]).sum(axis=2)
-
-        # n-d `x`
-        r = trapezoid(q, x=x[:, None, None], axis=0)
-        assert_allclose(r, qx)
-        r = trapezoid(q, x=y[None,:, None], axis=1)
-        assert_allclose(r, qy)
-        r = trapezoid(q, x=z[None, None,:], axis=2)
-        assert_allclose(r, qz)
-
-        # 1-d `x`
-        r = trapezoid(q, x=x, axis=0)
-        assert_allclose(r, qx)
-        r = trapezoid(q, x=y, axis=1)
-        assert_allclose(r, qy)
-        r = trapezoid(q, x=z, axis=2)
-        assert_allclose(r, qz)
-
-    def test_masked(self):
-        # Testing that masked arrays behave as if the function is 0 where
-        # masked
-        x = np.arange(5)
-        y = x * x
-        mask = x == 2
-        ym = np.ma.array(y, mask=mask)
-        r = 13.0  # sum(0.5 * (0 + 1) * 1.0 + 0.5 * (9 + 16))
-        assert_allclose(trapezoid(ym, x), r)
-
-        xm = np.ma.array(x, mask=mask)
-        assert_allclose(trapezoid(ym, xm), r)
-
-        xm = np.ma.array(x, mask=mask)
-        assert_allclose(trapezoid(y, xm), r)
-
-
-class TestQMCQuad:
-    def test_input_validation(self):
-        message = "`func` must be callable."
-        with pytest.raises(TypeError, match=message):
-            qmc_quad("a duck", [0, 0], [1, 1])
-
-        message = "`func` must evaluate the integrand at points..."
-        with pytest.raises(ValueError, match=message):
-            qmc_quad(lambda: 1, [0, 0], [1, 1])
-
-        def func(x):
-            assert x.ndim == 1
-            return np.sum(x)
-        message = "Exception encountered when attempting vectorized call..."
-        with pytest.warns(UserWarning, match=message):
-            qmc_quad(func, [0, 0], [1, 1])
-
-        message = "`n_points` must be an integer."
-        with pytest.raises(TypeError, match=message):
-            qmc_quad(lambda x: 1, [0, 0], [1, 1], n_points=1024.5)
-
-        message = "`n_estimates` must be an integer."
-        with pytest.raises(TypeError, match=message):
-            qmc_quad(lambda x: 1, [0, 0], [1, 1], n_estimates=8.5)
-
-        message = "`qrng` must be an instance of scipy.stats.qmc.QMCEngine."
-        with pytest.raises(TypeError, match=message):
-            qmc_quad(lambda x: 1, [0, 0], [1, 1], qrng="a duck")
-
-        message = "`qrng` must be initialized with dimensionality equal to "
-        with pytest.raises(ValueError, match=message):
-            qmc_quad(lambda x: 1, [0, 0], [1, 1], qrng=stats.qmc.Sobol(1))
-
-        message = r"`log` must be boolean \(`True` or `False`\)."
-        with pytest.raises(TypeError, match=message):
-            qmc_quad(lambda x: 1, [0, 0], [1, 1], log=10)
-
-    def basic_test(self, n_points=2**8, n_estimates=8, signs=np.ones(2)):
-
-        ndim = 2
-        mean = np.zeros(ndim)
-        cov = np.eye(ndim)
-
-        def func(x):
-            return stats.multivariate_normal.pdf(x.T, mean, cov)
-
-        rng = np.random.default_rng(2879434385674690281)
-        qrng = stats.qmc.Sobol(ndim, seed=rng)
-        a = np.zeros(ndim)
-        b = np.ones(ndim) * signs
-        res = qmc_quad(func, a, b, n_points=n_points,
-                       n_estimates=n_estimates, qrng=qrng)
-        ref = stats.multivariate_normal.cdf(b, mean, cov, lower_limit=a)
-        atol = special.stdtrit(n_estimates-1, 0.995) * res.standard_error  # 99% CI
-        assert_allclose(res.integral, ref, atol=atol)
-        assert np.prod(signs)*res.integral > 0
-
-        rng = np.random.default_rng(2879434385674690281)
-        qrng = stats.qmc.Sobol(ndim, seed=rng)
-        logres = qmc_quad(lambda *args: np.log(func(*args)), a, b,
-                          n_points=n_points, n_estimates=n_estimates,
-                          log=True, qrng=qrng)
-        assert_allclose(np.exp(logres.integral), res.integral, rtol=1e-14)
-        assert np.imag(logres.integral) == (np.pi if np.prod(signs) < 0 else 0)
-        assert_allclose(np.exp(logres.standard_error),
-                        res.standard_error, rtol=1e-14, atol=1e-16)
-
-    @pytest.mark.parametrize("n_points", [2**8, 2**12])
-    @pytest.mark.parametrize("n_estimates", [8, 16])
-    def test_basic(self, n_points, n_estimates):
-        self.basic_test(n_points, n_estimates)
-
-    @pytest.mark.parametrize("signs", [[1, 1], [-1, -1], [-1, 1], [1, -1]])
-    def test_sign(self, signs):
-        self.basic_test(signs=signs)
-
-    @pytest.mark.parametrize("log", [False, True])
-    def test_zero(self, log):
-        message = "A lower limit was equal to an upper limit, so"
-        with pytest.warns(UserWarning, match=message):
-            res = qmc_quad(lambda x: 1, [0, 0], [0, 1], log=log)
-        assert res.integral == (-np.inf if log else 0)
-        assert res.standard_error == 0
-
-    def test_flexible_input(self):
-        # check that qrng is not required
-        # also checks that for 1d problems, a and b can be scalars
-        def func(x):
-            return stats.norm.pdf(x, scale=2)
-
-        res = qmc_quad(func, 0, 1)
-        ref = stats.norm.cdf(1, scale=2) - stats.norm.cdf(0, scale=2)
-        assert_allclose(res.integral, ref, 1e-2)
-
-
-def cumulative_simpson_nd_reference(y, *, x=None, dx=None, initial=None, axis=-1):
-    # Use cumulative_trapezoid if length of y < 3
-    if y.shape[axis] < 3:
-        if initial is None:
-            return cumulative_trapezoid(y, x=x, dx=dx, axis=axis, initial=None)
-        else:
-            return initial + cumulative_trapezoid(y, x=x, dx=dx, axis=axis, initial=0)
-
-    # Ensure that working axis is last axis
-    y = np.moveaxis(y, axis, -1)
-    x = np.moveaxis(x, axis, -1) if np.ndim(x) > 1 else x
-    dx = np.moveaxis(dx, axis, -1) if np.ndim(dx) > 1 else dx
-    initial = np.moveaxis(initial, axis, -1) if np.ndim(initial) > 1 else initial
-
-    # If `x` is not present, create it from `dx`
-    n = y.shape[-1]
-    x = dx * np.arange(n) if dx is not None else x
-    # Similarly, if `initial` is not present, set it to 0
-    initial_was_none = initial is None
-    initial = 0 if initial_was_none else initial
-
-    # `np.apply_along_axis` accepts only one array, so concatenate arguments
-    x = np.broadcast_to(x, y.shape)
-    initial = np.broadcast_to(initial, y.shape[:-1] + (1,))
-    z = np.concatenate((y, x, initial), axis=-1)
-
-    # Use `np.apply_along_axis` to compute result
-    def f(z):
-        return cumulative_simpson(z[:n], x=z[n:2*n], initial=z[2*n:])
-    res = np.apply_along_axis(f, -1, z)
-
-    # Remove `initial` and undo axis move as needed
-    res = res[..., 1:] if initial_was_none else res
-    res = np.moveaxis(res, -1, axis)
-    return res
-
-
-class TestCumulativeSimpson:
-    x0 = np.arange(4)
-    y0 = x0**2
-
-    @pytest.mark.parametrize('use_dx', (False, True))
-    @pytest.mark.parametrize('use_initial', (False, True))
-    def test_1d(self, use_dx, use_initial):
-        # Test for exact agreement with polynomial of highest
-        # possible order (3 if `dx` is constant, 2 otherwise).
-        rng = np.random.default_rng(82456839535679456794)
-        n = 10
-
-        # Generate random polynomials and ground truth
-        # integral of appropriate order
-        order = 3 if use_dx else 2
-        dx = rng.random()
-        x = (np.sort(rng.random(n)) if order == 2
-             else np.arange(n)*dx + rng.random())
-        i = np.arange(order + 1)[:, np.newaxis]
-        c = rng.random(order + 1)[:, np.newaxis]
-        y = np.sum(c*x**i, axis=0)
-        Y = np.sum(c*x**(i + 1)/(i + 1), axis=0)
-        ref = Y if use_initial else (Y-Y[0])[1:]
-
-        # Integrate with `cumulative_simpson`
-        initial = Y[0] if use_initial else None
-        kwarg = {'dx': dx} if use_dx else {'x': x}
-        res = cumulative_simpson(y, **kwarg, initial=initial)
-
-        # Compare result against reference
-        if not use_dx:
-            assert_allclose(res, ref, rtol=2e-15)
-        else:
-            i0 = 0 if use_initial else 1
-            # all terms are "close"
-            assert_allclose(res, ref, rtol=0.0025)
-            # only even-interval terms are "exact"
-            assert_allclose(res[i0::2], ref[i0::2], rtol=2e-15)
-
-    @pytest.mark.parametrize('axis', np.arange(-3, 3))
-    @pytest.mark.parametrize('x_ndim', (1, 3))
-    @pytest.mark.parametrize('x_len', (1, 2, 7))
-    @pytest.mark.parametrize('i_ndim', (None, 0, 3,))
-    @pytest.mark.parametrize('dx', (None, True))
-    def test_nd(self, axis, x_ndim, x_len, i_ndim, dx):
-        # Test behavior of `cumulative_simpson` with N-D `y`
-        rng = np.random.default_rng(82456839535679456794)
-
-        # determine shapes
-        shape = [5, 6, x_len]
-        shape[axis], shape[-1] = shape[-1], shape[axis]
-        shape_len_1 = shape.copy()
-        shape_len_1[axis] = 1
-        i_shape = shape_len_1 if i_ndim == 3 else ()
-
-        # initialize arguments
-        y = rng.random(size=shape)
-        x, dx = None, None
-        if dx:
-            dx = rng.random(size=shape_len_1) if x_ndim > 1 else rng.random()
-        else:
-            x = (np.sort(rng.random(size=shape), axis=axis) if x_ndim > 1
-                 else np.sort(rng.random(size=shape[axis])))
-        initial = None if i_ndim is None else rng.random(size=i_shape)
-
-        # compare results
-        res = cumulative_simpson(y, x=x, dx=dx, initial=initial, axis=axis)
-        ref = cumulative_simpson_nd_reference(y, x=x, dx=dx, initial=initial, axis=axis)
-        np.testing.assert_allclose(res, ref, rtol=1e-15)
-
-    @pytest.mark.parametrize(('message', 'kwarg_update'), [
-        ("x must be strictly increasing", dict(x=[2, 2, 3, 4])),
-        ("x must be strictly increasing", dict(x=[x0, [2, 2, 4, 8]], y=[y0, y0])),
-        ("x must be strictly increasing", dict(x=[x0, x0, x0], y=[y0, y0, y0], axis=0)),
-        ("At least one point is required", dict(x=[], y=[])),
-        ("`axis=4` is not valid for `y` with `y.ndim=1`", dict(axis=4)),
-        ("shape of `x` must be the same as `y` or 1-D", dict(x=np.arange(5))),
-        ("`initial` must either be a scalar or...", dict(initial=np.arange(5))),
-        ("`dx` must either be a scalar or...", dict(x=None, dx=np.arange(5))),
-    ])
-    def test_simpson_exceptions(self, message, kwarg_update):
-        kwargs0 = dict(y=self.y0, x=self.x0, dx=None, initial=None, axis=-1)
-        with pytest.raises(ValueError, match=message):
-            cumulative_simpson(**dict(kwargs0, **kwarg_update))
-
-    def test_special_cases(self):
-        # Test special cases not checked elsewhere
-        rng = np.random.default_rng(82456839535679456794)
-        y = rng.random(size=10)
-        res = cumulative_simpson(y, dx=0)
-        assert_equal(res, 0)
-
-        # Should add tests of:
-        # - all elements of `x` identical
-        # These should work as they do for `simpson`
-
-    def _get_theoretical_diff_between_simps_and_cum_simps(self, y, x):
-        """`cumulative_simpson` and `simpson` can be tested against other to verify
-        they give consistent results. `simpson` will iteratively be called with
-        successively higher upper limits of integration. This function calculates
-        the theoretical correction required to `simpson` at even intervals to match
-        with `cumulative_simpson`.
-        """
-        d = np.diff(x, axis=-1)
-        sub_integrals_h1 = _cumulative_simpson_unequal_intervals(y, d)
-        sub_integrals_h2 = _cumulative_simpson_unequal_intervals(
-            y[..., ::-1], d[..., ::-1]
-        )[..., ::-1]
-
-        # Concatenate to build difference array
-        zeros_shape = (*y.shape[:-1], 1)
-        theoretical_difference = np.concatenate(
-            [
-                np.zeros(zeros_shape),
-                (sub_integrals_h1[..., 1:] - sub_integrals_h2[..., :-1]),
-                np.zeros(zeros_shape),
-            ],
-            axis=-1,
-        )
-        # Differences only expected at even intervals. Odd intervals will
-        # match exactly so there is no correction
-        theoretical_difference[..., 1::2] = 0.0
-        # Note: the first interval will not match from this correction as
-        # `simpson` uses the trapezoidal rule
-        return theoretical_difference
-
-    @pytest.mark.slow
-    @given(
-        y=hyp_num.arrays(
-            np.float64,
-            hyp_num.array_shapes(max_dims=4, min_side=3, max_side=10),
-            elements=st.floats(-10, 10, allow_nan=False).filter(lambda x: abs(x) > 1e-7)
-        )
-    )
-    def test_cumulative_simpson_against_simpson_with_default_dx(
-        self, y
-    ):
-        """Theoretically, the output of `cumulative_simpson` will be identical
-        to `simpson` at all even indices and in the last index. The first index
-        will not match as `simpson` uses the trapezoidal rule when there are only two
-        data points. Odd indices after the first index are shown to match with
-        a mathematically-derived correction."""
-        def simpson_reference(y):
-            return np.stack(
-                [simpson(y[..., :i], dx=1.0) for i in range(2, y.shape[-1]+1)], axis=-1,
-            )
-
-        res = cumulative_simpson(y, dx=1.0)
-        ref = simpson_reference(y)
-        theoretical_difference = self._get_theoretical_diff_between_simps_and_cum_simps(
-            y, x=np.arange(y.shape[-1])
-        )
-        np.testing.assert_allclose(
-            res[..., 1:], ref[..., 1:] + theoretical_difference[..., 1:]
-        )
-
-    @pytest.mark.slow
-    @given(
-        y=hyp_num.arrays(
-            np.float64,
-            hyp_num.array_shapes(max_dims=4, min_side=3, max_side=10),
-            elements=st.floats(-10, 10, allow_nan=False).filter(lambda x: abs(x) > 1e-7)
-        )
-    )
-    def test_cumulative_simpson_against_simpson(
-        self, y
-    ):
-        """Theoretically, the output of `cumulative_simpson` will be identical
-        to `simpson` at all even indices and in the last index. The first index
-        will not match as `simpson` uses the trapezoidal rule when there are only two
-        data points. Odd indices after the first index are shown to match with
-        a mathematically-derived correction."""
-        interval = 10/(y.shape[-1] - 1)
-        x = np.linspace(0, 10, num=y.shape[-1])
-        x[1:] = x[1:] + 0.2*interval*np.random.uniform(-1, 1, len(x) - 1)
-
-        def simpson_reference(y, x):
-            return np.stack(
-                [simpson(y[..., :i], x=x[..., :i]) for i in range(2, y.shape[-1]+1)],
-                axis=-1,
-            )
-
-        res = cumulative_simpson(y, x=x)
-        ref = simpson_reference(y, x)
-        theoretical_difference = self._get_theoretical_diff_between_simps_and_cum_simps(
-            y, x
-        )
-        np.testing.assert_allclose(
-            res[..., 1:], ref[..., 1:] + theoretical_difference[..., 1:]
-        )
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_tanhsinh.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_tanhsinh.py
deleted file mode 100644
index 084385cf9b4a0ddbb145aa99e9b22c381216ca33..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/tests/test_tanhsinh.py
+++ /dev/null
@@ -1,947 +0,0 @@
-# mypy: disable-error-code="attr-defined"
-import os
-import pytest
-
-import numpy as np
-from numpy.testing import assert_allclose, assert_equal
-
-import scipy._lib._elementwise_iterative_method as eim
-from scipy import special, stats
-from scipy.integrate import quad_vec
-from scipy.integrate._tanhsinh import _tanhsinh, _pair_cache, _nsum
-from scipy.stats._discrete_distns import _gen_harmonic_gt1
-
-class TestTanhSinh:
-
-    # Test problems from [1] Section 6
-    def f1(self, t):
-        return t * np.log(1 + t)
-
-    f1.ref = 0.25
-    f1.b = 1
-
-    def f2(self, t):
-        return t ** 2 * np.arctan(t)
-
-    f2.ref = (np.pi - 2 + 2 * np.log(2)) / 12
-    f2.b = 1
-
-    def f3(self, t):
-        return np.exp(t) * np.cos(t)
-
-    f3.ref = (np.exp(np.pi / 2) - 1) / 2
-    f3.b = np.pi / 2
-
-    def f4(self, t):
-        a = np.sqrt(2 + t ** 2)
-        return np.arctan(a) / ((1 + t ** 2) * a)
-
-    f4.ref = 5 * np.pi ** 2 / 96
-    f4.b = 1
-
-    def f5(self, t):
-        return np.sqrt(t) * np.log(t)
-
-    f5.ref = -4 / 9
-    f5.b = 1
-
-    def f6(self, t):
-        return np.sqrt(1 - t ** 2)
-
-    f6.ref = np.pi / 4
-    f6.b = 1
-
-    def f7(self, t):
-        return np.sqrt(t) / np.sqrt(1 - t ** 2)
-
-    f7.ref = 2 * np.sqrt(np.pi) * special.gamma(3 / 4) / special.gamma(1 / 4)
-    f7.b = 1
-
-    def f8(self, t):
-        return np.log(t) ** 2
-
-    f8.ref = 2
-    f8.b = 1
-
-    def f9(self, t):
-        return np.log(np.cos(t))
-
-    f9.ref = -np.pi * np.log(2) / 2
-    f9.b = np.pi / 2
-
-    def f10(self, t):
-        return np.sqrt(np.tan(t))
-
-    f10.ref = np.pi * np.sqrt(2) / 2
-    f10.b = np.pi / 2
-
-    def f11(self, t):
-        return 1 / (1 + t ** 2)
-
-    f11.ref = np.pi / 2
-    f11.b = np.inf
-
-    def f12(self, t):
-        return np.exp(-t) / np.sqrt(t)
-
-    f12.ref = np.sqrt(np.pi)
-    f12.b = np.inf
-
-    def f13(self, t):
-        return np.exp(-t ** 2 / 2)
-
-    f13.ref = np.sqrt(np.pi / 2)
-    f13.b = np.inf
-
-    def f14(self, t):
-        return np.exp(-t) * np.cos(t)
-
-    f14.ref = 0.5
-    f14.b = np.inf
-
-    def f15(self, t):
-        return np.sin(t) / t
-
-    f15.ref = np.pi / 2
-    f15.b = np.inf
-
-    def error(self, res, ref, log=False):
-        err = abs(res - ref)
-
-        if not log:
-            return err
-
-        with np.errstate(divide='ignore'):
-            return np.log10(err)
-
-    def test_input_validation(self):
-        f = self.f1
-
-        message = '`f` must be callable.'
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(42, 0, f.b)
-
-        message = '...must be True or False.'
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, log=2)
-
-        message = '...must be real numbers.'
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 1+1j, f.b)
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, atol='ekki')
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, rtol=pytest)
-
-        message = '...must be non-negative and finite.'
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, rtol=-1)
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, atol=np.inf)
-
-        message = '...may not be positive infinity.'
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, rtol=np.inf, log=True)
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, atol=np.inf, log=True)
-
-        message = '...must be integers.'
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, maxlevel=object())
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, maxfun=1+1j)
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, minlevel="migratory coconut")
-
-        message = '...must be non-negative.'
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, maxlevel=-1)
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, maxfun=-1)
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, minlevel=-1)
-
-        message = '...must be True or False.'
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, preserve_shape=2)
-
-        message = '...must be callable.'
-        with pytest.raises(ValueError, match=message):
-            _tanhsinh(f, 0, f.b, callback='elderberry')
-
-    @pytest.mark.parametrize("limits, ref", [
-        [(0, np.inf), 0.5],  # b infinite
-        [(-np.inf, 0), 0.5],  # a infinite
-        [(-np.inf, np.inf), 1],  # a and b infinite
-        [(np.inf, -np.inf), -1],  # flipped limits
-        [(1, -1), stats.norm.cdf(-1) -  stats.norm.cdf(1)],  # flipped limits
-    ])
-    def test_integral_transforms(self, limits, ref):
-        # Check that the integral transforms are behaving for both normal and
-        # log integration
-        dist = stats.norm()
-
-        res = _tanhsinh(dist.pdf, *limits)
-        assert_allclose(res.integral, ref)
-
-        logres = _tanhsinh(dist.logpdf, *limits, log=True)
-        assert_allclose(np.exp(logres.integral), ref)
-        # Transformation should not make the result complex unnecessarily
-        assert (np.issubdtype(logres.integral.dtype, np.floating) if ref > 0
-                else np.issubdtype(logres.integral.dtype, np.complexfloating))
-
-        assert_allclose(np.exp(logres.error), res.error, atol=1e-16)
-
-    # 15 skipped intentionally; it's very difficult numerically
-    @pytest.mark.parametrize('f_number', range(1, 15))
-    def test_basic(self, f_number):
-        f = getattr(self, f"f{f_number}")
-        rtol = 2e-8
-        res = _tanhsinh(f, 0, f.b, rtol=rtol)
-        assert_allclose(res.integral, f.ref, rtol=rtol)
-        if f_number not in {14}:  # mildly underestimates error here
-            true_error = abs(self.error(res.integral, f.ref)/res.integral)
-            assert true_error < res.error
-
-        if f_number in {7, 10, 12}:  # succeeds, but doesn't know it
-            return
-
-        assert res.success
-        assert res.status == 0
-
-    @pytest.mark.parametrize('ref', (0.5, [0.4, 0.6]))
-    @pytest.mark.parametrize('case', stats._distr_params.distcont)
-    def test_accuracy(self, ref, case):
-        distname, params = case
-        if distname in {'dgamma', 'dweibull', 'laplace', 'kstwo'}:
-            # should split up interval at first-derivative discontinuity
-            pytest.skip('tanh-sinh is not great for non-smooth integrands')
-        if (distname in {'studentized_range', 'levy_stable'}
-                and not int(os.getenv('SCIPY_XSLOW', 0))):
-            pytest.skip('This case passes, but it is too slow.')
-        dist = getattr(stats, distname)(*params)
-        x = dist.interval(ref)
-        res = _tanhsinh(dist.pdf, *x)
-        assert_allclose(res.integral, ref)
-
-    @pytest.mark.parametrize('shape', [tuple(), (12,), (3, 4), (3, 2, 2)])
-    def test_vectorization(self, shape):
-        # Test for correct functionality, output shapes, and dtypes for various
-        # input shapes.
-        rng = np.random.default_rng(82456839535679456794)
-        a = rng.random(shape)
-        b = rng.random(shape)
-        p = rng.random(shape)
-        n = np.prod(shape)
-
-        def f(x, p):
-            f.ncall += 1
-            f.feval += 1 if (x.size == n or x.ndim <=1) else x.shape[-1]
-            return x**p
-        f.ncall = 0
-        f.feval = 0
-
-        @np.vectorize
-        def _tanhsinh_single(a, b, p):
-            return _tanhsinh(lambda x: x**p, a, b)
-
-        res = _tanhsinh(f, a, b, args=(p,))
-        refs = _tanhsinh_single(a, b, p).ravel()
-
-        attrs = ['integral', 'error', 'success', 'status', 'nfev', 'maxlevel']
-        for attr in attrs:
-            ref_attr = [getattr(ref, attr) for ref in refs]
-            res_attr = getattr(res, attr)
-            assert_allclose(res_attr.ravel(), ref_attr, rtol=1e-15)
-            assert_equal(res_attr.shape, shape)
-
-        assert np.issubdtype(res.success.dtype, np.bool_)
-        assert np.issubdtype(res.status.dtype, np.integer)
-        assert np.issubdtype(res.nfev.dtype, np.integer)
-        assert np.issubdtype(res.maxlevel.dtype, np.integer)
-        assert_equal(np.max(res.nfev), f.feval)
-        # maxlevel = 2 -> 3 function calls (2 initialization, 1 work)
-        assert np.max(res.maxlevel) >= 2
-        assert_equal(np.max(res.maxlevel), f.ncall)
-
-    def test_flags(self):
-        # Test cases that should produce different status flags; show that all
-        # can be produced simultaneously.
-        def f(xs, js):
-            f.nit += 1
-            funcs = [lambda x: np.exp(-x**2),  # converges
-                     lambda x: np.exp(x),  # reaches maxiter due to order=2
-                     lambda x: np.full_like(x, np.nan)[()]]  # stops due to NaN
-            res = [funcs[j](x) for x, j in zip(xs, js.ravel())]
-            return res
-        f.nit = 0
-
-        args = (np.arange(3, dtype=np.int64),)
-        res = _tanhsinh(f, [np.inf]*3, [-np.inf]*3, maxlevel=5, args=args)
-        ref_flags = np.array([0, -2, -3])
-        assert_equal(res.status, ref_flags)
-
-    def test_flags_preserve_shape(self):
-        # Same test as above but using `preserve_shape` option to simplify.
-        def f(x):
-            return [np.exp(-x[0]**2),  # converges
-                    np.exp(x[1]),  # reaches maxiter due to order=2
-                    np.full_like(x[2], np.nan)[()]]  # stops due to NaN
-
-        res = _tanhsinh(f, [np.inf]*3, [-np.inf]*3, maxlevel=5, preserve_shape=True)
-        ref_flags = np.array([0, -2, -3])
-        assert_equal(res.status, ref_flags)
-
-    def test_preserve_shape(self):
-        # Test `preserve_shape` option
-        def f(x):
-            return np.asarray([[x, np.sin(10 * x)],
-                               [np.cos(30 * x), x * np.sin(100 * x)]])
-
-        ref = quad_vec(f, 0, 1)
-        res = _tanhsinh(f, 0, 1, preserve_shape=True)
-        assert_allclose(res.integral, ref[0])
-
-    def test_convergence(self):
-        # demonstrate that number of accurate digits doubles each iteration
-        f = self.f1
-        last_logerr = 0
-        for i in range(4):
-            res = _tanhsinh(f, 0, f.b, minlevel=0, maxlevel=i)
-            logerr = self.error(res.integral, f.ref, log=True)
-            assert (logerr < last_logerr * 2 or logerr < -15.5)
-            last_logerr = logerr
-
-    def test_options_and_result_attributes(self):
-        # demonstrate that options are behaving as advertised and status
-        # messages are as intended
-        def f(x):
-            f.calls += 1
-            f.feval += np.size(x)
-            return self.f2(x)
-        f.ref = self.f2.ref
-        f.b = self.f2.b
-        default_rtol = 1e-12
-        default_atol = f.ref * default_rtol  # effective default absolute tol
-
-        # Test default options
-        f.feval, f.calls = 0, 0
-        ref = _tanhsinh(f, 0, f.b)
-        assert self.error(ref.integral, f.ref) < ref.error < default_atol
-        assert ref.nfev == f.feval
-        ref.calls = f.calls  # reference number of function calls
-        assert ref.success
-        assert ref.status == 0
-
-        # Test `maxlevel` equal to required max level
-        # We should get all the same results
-        f.feval, f.calls = 0, 0
-        maxlevel = ref.maxlevel
-        res = _tanhsinh(f, 0, f.b, maxlevel=maxlevel)
-        res.calls = f.calls
-        assert res == ref
-
-        # Now reduce the maximum level. We won't meet tolerances.
-        f.feval, f.calls = 0, 0
-        maxlevel -= 1
-        assert maxlevel >= 2  # can't compare errors otherwise
-        res = _tanhsinh(f, 0, f.b, maxlevel=maxlevel)
-        assert self.error(res.integral, f.ref) < res.error > default_atol
-        assert res.nfev == f.feval < ref.nfev
-        assert f.calls == ref.calls - 1
-        assert not res.success
-        assert res.status == eim._ECONVERR
-
-        # `maxfun` is currently not enforced
-
-        # # Test `maxfun` equal to required number of function evaluations
-        # # We should get all the same results
-        # f.feval, f.calls = 0, 0
-        # maxfun = ref.nfev
-        # res = _tanhsinh(f, 0, f.b, maxfun = maxfun)
-        # assert res == ref
-        #
-        # # Now reduce `maxfun`. We won't meet tolerances.
-        # f.feval, f.calls = 0, 0
-        # maxfun -= 1
-        # res = _tanhsinh(f, 0, f.b, maxfun=maxfun)
-        # assert self.error(res.integral, f.ref) < res.error > default_atol
-        # assert res.nfev == f.feval < ref.nfev
-        # assert f.calls == ref.calls - 1
-        # assert not res.success
-        # assert res.status == 2
-
-        # Take this result to be the new reference
-        ref = res
-        ref.calls = f.calls
-
-        # Test `atol`
-        f.feval, f.calls = 0, 0
-        # With this tolerance, we should get the exact same result as ref
-        atol = np.nextafter(ref.error, np.inf)
-        res = _tanhsinh(f, 0, f.b, rtol=0, atol=atol)
-        assert res.integral == ref.integral
-        assert res.error == ref.error
-        assert res.nfev == f.feval == ref.nfev
-        assert f.calls == ref.calls
-        # Except the result is considered to be successful
-        assert res.success
-        assert res.status == 0
-
-        f.feval, f.calls = 0, 0
-        # With a tighter tolerance, we should get a more accurate result
-        atol = np.nextafter(ref.error, -np.inf)
-        res = _tanhsinh(f, 0, f.b, rtol=0, atol=atol)
-        assert self.error(res.integral, f.ref) < res.error < atol
-        assert res.nfev == f.feval > ref.nfev
-        assert f.calls > ref.calls
-        assert res.success
-        assert res.status == 0
-
-        # Test `rtol`
-        f.feval, f.calls = 0, 0
-        # With this tolerance, we should get the exact same result as ref
-        rtol = np.nextafter(ref.error/ref.integral, np.inf)
-        res = _tanhsinh(f, 0, f.b, rtol=rtol)
-        assert res.integral == ref.integral
-        assert res.error == ref.error
-        assert res.nfev == f.feval == ref.nfev
-        assert f.calls == ref.calls
-        # Except the result is considered to be successful
-        assert res.success
-        assert res.status == 0
-
-        f.feval, f.calls = 0, 0
-        # With a tighter tolerance, we should get a more accurate result
-        rtol = np.nextafter(ref.error/ref.integral, -np.inf)
-        res = _tanhsinh(f, 0, f.b, rtol=rtol)
-        assert self.error(res.integral, f.ref)/f.ref < res.error/res.integral < rtol
-        assert res.nfev == f.feval > ref.nfev
-        assert f.calls > ref.calls
-        assert res.success
-        assert res.status == 0
-
-    @pytest.mark.parametrize('rtol', [1e-4, 1e-14])
-    def test_log(self, rtol):
-        # Test equivalence of log-integration and regular integration
-        dist = stats.norm()
-
-        test_tols = dict(atol=1e-18, rtol=1e-15)
-
-        # Positive integrand (real log-integrand)
-        res = _tanhsinh(dist.logpdf, -1, 2, log=True, rtol=np.log(rtol))
-        ref = _tanhsinh(dist.pdf, -1, 2, rtol=rtol)
-        assert_allclose(np.exp(res.integral), ref.integral, **test_tols)
-        assert_allclose(np.exp(res.error), ref.error, **test_tols)
-        assert res.nfev == ref.nfev
-
-        # Real integrand (complex log-integrand)
-        def f(x):
-            return -dist.logpdf(x)*dist.pdf(x)
-
-        def logf(x):
-            return np.log(dist.logpdf(x) + 0j) + dist.logpdf(x) + np.pi * 1j
-
-        res = _tanhsinh(logf, -np.inf, np.inf, log=True)
-        ref = _tanhsinh(f, -np.inf, np.inf)
-        # In gh-19173, we saw `invalid` warnings on one CI platform.
-        # Silencing `all` because I can't reproduce locally and don't want
-        # to risk the need to run CI again.
-        with np.errstate(all='ignore'):
-            assert_allclose(np.exp(res.integral), ref.integral, **test_tols)
-            assert_allclose(np.exp(res.error), ref.error, **test_tols)
-        assert res.nfev == ref.nfev
-
-    def test_complex(self):
-        # Test integration of complex integrand
-        # Finite limits
-        def f(x):
-            return np.exp(1j * x)
-
-        res = _tanhsinh(f, 0, np.pi/4)
-        ref = np.sqrt(2)/2 + (1-np.sqrt(2)/2)*1j
-        assert_allclose(res.integral, ref)
-
-        # Infinite limits
-        dist1 = stats.norm(scale=1)
-        dist2 = stats.norm(scale=2)
-        def f(x):
-            return dist1.pdf(x) + 1j*dist2.pdf(x)
-
-        res = _tanhsinh(f, np.inf, -np.inf)
-        assert_allclose(res.integral, -(1+1j))
-
-    @pytest.mark.parametrize("maxlevel", range(4))
-    def test_minlevel(self, maxlevel):
-        # Verify that minlevel does not change the values at which the
-        # integrand is evaluated or the integral/error estimates, only the
-        # number of function calls
-        def f(x):
-            f.calls += 1
-            f.feval += np.size(x)
-            f.x = np.concatenate((f.x, x.ravel()))
-            return self.f2(x)
-        f.feval, f.calls, f.x = 0, 0, np.array([])
-
-        ref = _tanhsinh(f, 0, self.f2.b, minlevel=0, maxlevel=maxlevel)
-        ref_x = np.sort(f.x)
-
-        for minlevel in range(0, maxlevel + 1):
-            f.feval, f.calls, f.x = 0, 0, np.array([])
-            options = dict(minlevel=minlevel, maxlevel=maxlevel)
-            res = _tanhsinh(f, 0, self.f2.b, **options)
-            # Should be very close; all that has changed is the order of values
-            assert_allclose(res.integral, ref.integral, rtol=4e-16)
-            # Difference in absolute errors << magnitude of integral
-            assert_allclose(res.error, ref.error, atol=4e-16 * ref.integral)
-            assert res.nfev == f.feval == len(f.x)
-            assert f.calls == maxlevel - minlevel + 1 + 1  # 1 validation call
-            assert res.status == ref.status
-            assert_equal(ref_x, np.sort(f.x))
-
-    def test_improper_integrals(self):
-        # Test handling of infinite limits of integration (mixed with finite limits)
-        def f(x):
-            x[np.isinf(x)] = np.nan
-            return np.exp(-x**2)
-        a = [-np.inf, 0, -np.inf, np.inf, -20, -np.inf, -20]
-        b = [np.inf, np.inf, 0, -np.inf, 20, 20, np.inf]
-        ref = np.sqrt(np.pi)
-        res = _tanhsinh(f, a, b)
-        assert_allclose(res.integral, [ref, ref/2, ref/2, -ref, ref, ref, ref])
-
-    @pytest.mark.parametrize("limits", ((0, 3), ([-np.inf, 0], [3, 3])))
-    @pytest.mark.parametrize("dtype", (np.float32, np.float64))
-    def test_dtype(self, limits, dtype):
-        # Test that dtypes are preserved
-        a, b = np.asarray(limits, dtype=dtype)[()]
-
-        def f(x):
-            assert x.dtype == dtype
-            return np.exp(x)
-
-        rtol = 1e-12 if dtype == np.float64 else 1e-5
-        res = _tanhsinh(f, a, b, rtol=rtol)
-        assert res.integral.dtype == dtype
-        assert res.error.dtype == dtype
-        assert np.all(res.success)
-        assert_allclose(res.integral, np.exp(b)-np.exp(a), rtol=rtol)
-
-    def test_maxiter_callback(self):
-        # Test behavior of `maxiter` parameter and `callback` interface
-        a, b = -np.inf, np.inf
-        def f(x):
-            return np.exp(-x*x)
-
-        minlevel, maxlevel = 0, 2
-        maxiter = maxlevel - minlevel + 1
-        kwargs = dict(minlevel=minlevel, maxlevel=maxlevel, rtol=1e-15)
-        res = _tanhsinh(f, a, b, **kwargs)
-        assert not res.success
-        assert res.maxlevel == maxlevel
-
-        def callback(res):
-            callback.iter += 1
-            callback.res = res
-            assert hasattr(res, 'integral')
-            assert res.status == 1
-            if callback.iter == maxiter:
-                raise StopIteration
-        callback.iter = -1  # callback called once before first iteration
-        callback.res = None
-
-        del kwargs['maxlevel']
-        res2 = _tanhsinh(f, a, b, **kwargs, callback=callback)
-        # terminating with callback is identical to terminating due to maxiter
-        # (except for `status`)
-        for key in res.keys():
-            if key == 'status':
-                assert callback.res[key] == 1
-                assert res[key] == -2
-                assert res2[key] == -4
-            else:
-                assert res2[key] == callback.res[key] == res[key]
-
-    def test_jumpstart(self):
-        # The intermediate results at each level i should be the same as the
-        # final results when jumpstarting at level i; i.e. minlevel=maxlevel=i
-        a, b = -np.inf, np.inf
-        def f(x):
-            return np.exp(-x*x)
-
-        def callback(res):
-            callback.integrals.append(res.integral)
-            callback.errors.append(res.error)
-        callback.integrals = []
-        callback.errors = []
-
-        maxlevel = 4
-        _tanhsinh(f, a, b, minlevel=0, maxlevel=maxlevel, callback=callback)
-
-        integrals = []
-        errors = []
-        for i in range(maxlevel + 1):
-            res = _tanhsinh(f, a, b, minlevel=i, maxlevel=i)
-            integrals.append(res.integral)
-            errors.append(res.error)
-
-        assert_allclose(callback.integrals[1:], integrals, rtol=1e-15)
-        assert_allclose(callback.errors[1:], errors, rtol=1e-15, atol=1e-16)
-
-    def test_special_cases(self):
-        # Test edge cases and other special cases
-
-        # Test that integers are not passed to `f`
-        # (otherwise this would overflow)
-        def f(x):
-            assert np.issubdtype(x.dtype, np.floating)
-            return x ** 99
-
-        res = _tanhsinh(f, 0, 1)
-        assert res.success
-        assert_allclose(res.integral, 1/100)
-
-        # Test levels 0 and 1; error is NaN
-        res = _tanhsinh(f, 0, 1, maxlevel=0)
-        assert res.integral > 0
-        assert_equal(res.error, np.nan)
-        res = _tanhsinh(f, 0, 1, maxlevel=1)
-        assert res.integral > 0
-        assert_equal(res.error, np.nan)
-
-        # Tes equal left and right integration limits
-        res = _tanhsinh(f, 1, 1)
-        assert res.success
-        assert res.maxlevel == -1
-        assert_allclose(res.integral, 0)
-
-        # Test scalar `args` (not in tuple)
-        def f(x, c):
-            return x**c
-
-        res = _tanhsinh(f, 0, 1, args=99)
-        assert_allclose(res.integral, 1/100)
-
-        # Test NaNs
-        a = [np.nan, 0, 0, 0]
-        b = [1, np.nan, 1, 1]
-        c = [1, 1, np.nan, 1]
-        res = _tanhsinh(f, a, b, args=(c,))
-        assert_allclose(res.integral, [np.nan, np.nan, np.nan, 0.5])
-        assert_allclose(res.error[:3], np.nan)
-        assert_equal(res.status, [-3, -3, -3, 0])
-        assert_equal(res.success, [False, False, False, True])
-        assert_equal(res.nfev[:3], 1)
-
-        # Test complex integral followed by real integral
-        # Previously, h0 was of the result dtype. If the `dtype` were complex,
-        # this could lead to complex cached abscissae/weights. If these get
-        # cast to real dtype for a subsequent real integral, we would get a
-        # ComplexWarning. Check that this is avoided.
-        _pair_cache.xjc = np.empty(0)
-        _pair_cache.wj = np.empty(0)
-        _pair_cache.indices = [0]
-        _pair_cache.h0 = None
-        res = _tanhsinh(lambda x: x*1j, 0, 1)
-        assert_allclose(res.integral, 0.5*1j)
-        res = _tanhsinh(lambda x: x, 0, 1)
-        assert_allclose(res.integral, 0.5)
-
-        # Test zero-size
-        shape = (0, 3)
-        res = _tanhsinh(lambda x: x, 0, np.zeros(shape))
-        attrs = ['integral', 'error', 'success', 'status', 'nfev', 'maxlevel']
-        for attr in attrs:
-            assert_equal(res[attr].shape, shape)
-
-
-class TestNSum:
-    rng = np.random.default_rng(5895448232066142650)
-    p = rng.uniform(1, 10, size=10)
-
-    def f1(self, k):
-        # Integers are never passed to `f1`; if they were, we'd get
-        # integer to negative integer power error
-        return k**(-2)
-
-    f1.ref = np.pi**2/6
-    f1.a = 1
-    f1.b = np.inf
-    f1.args = tuple()
-
-    def f2(self, k, p):
-        return 1 / k**p
-
-    f2.ref = special.zeta(p, 1)
-    f2.a = 1
-    f2.b = np.inf
-    f2.args = (p,)
-
-    def f3(self, k, p):
-        return 1 / k**p
-
-    f3.a = 1
-    f3.b = rng.integers(5, 15, size=(3, 1))
-    f3.ref = _gen_harmonic_gt1(f3.b, p)
-    f3.args = (p,)
-
-    def test_input_validation(self):
-        f = self.f1
-
-        message = '`f` must be callable.'
-        with pytest.raises(ValueError, match=message):
-            _nsum(42, f.a, f.b)
-
-        message = '...must be True or False.'
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, f.b, log=2)
-
-        message = '...must be real numbers.'
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, 1+1j, f.b)
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, None)
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, f.b, step=object())
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, f.b, atol='ekki')
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, f.b, rtol=pytest)
-
-        with np.errstate(all='ignore'):
-            res = _nsum(f, [np.nan, -np.inf, np.inf], 1)
-            assert np.all((res.status == -1) & np.isnan(res.sum)
-                          & np.isnan(res.error) & ~res.success & res.nfev == 1)
-            res = _nsum(f, 10, [np.nan, 1])
-            assert np.all((res.status == -1) & np.isnan(res.sum)
-                          & np.isnan(res.error) & ~res.success & res.nfev == 1)
-            res = _nsum(f, 1, 10, step=[np.nan, -np.inf, np.inf, -1, 0])
-            assert np.all((res.status == -1) & np.isnan(res.sum)
-                          & np.isnan(res.error) & ~res.success & res.nfev == 1)
-
-        message = '...must be non-negative and finite.'
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, f.b, rtol=-1)
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, f.b, atol=np.inf)
-
-        message = '...may not be positive infinity.'
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, f.b, rtol=np.inf, log=True)
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, f.b, atol=np.inf, log=True)
-
-        message = '...must be a non-negative integer.'
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, f.b, maxterms=3.5)
-        with pytest.raises(ValueError, match=message):
-            _nsum(f, f.a, f.b, maxterms=-2)
-
-    @pytest.mark.parametrize('f_number', range(1, 4))
-    def test_basic(self, f_number):
-        f = getattr(self, f"f{f_number}")
-        res = _nsum(f, f.a, f.b, args=f.args)
-        assert_allclose(res.sum, f.ref)
-        assert_equal(res.status, 0)
-        assert_equal(res.success, True)
-
-        with np.errstate(divide='ignore'):
-            logres = _nsum(lambda *args: np.log(f(*args)),
-                           f.a, f.b, log=True, args=f.args)
-        assert_allclose(np.exp(logres.sum), res.sum)
-        assert_allclose(np.exp(logres.error), res.error)
-        assert_equal(logres.status, 0)
-        assert_equal(logres.success, True)
-
-    @pytest.mark.parametrize('maxterms', [0, 1, 10, 20, 100])
-    def test_integral(self, maxterms):
-        # test precise behavior of integral approximation
-        f = self.f1
-
-        def logf(x):
-            return -2*np.log(x)
-
-        def F(x):
-            return -1 / x
-
-        a = np.asarray([1, 5])[:, np.newaxis]
-        b = np.asarray([20, 100, np.inf])[:, np.newaxis, np.newaxis]
-        step = np.asarray([0.5, 1, 2]).reshape((-1, 1, 1, 1))
-        nsteps = np.floor((b - a)/step)
-        b_original = b
-        b = a + nsteps*step
-
-        k = a + maxterms*step
-        # partial sum
-        direct = f(a + np.arange(maxterms)*step).sum(axis=-1, keepdims=True)
-        integral = (F(b) - F(k))/step  # integral approximation of remainder
-        low = direct + integral + f(b)  # theoretical lower bound
-        high = direct + integral + f(k)  # theoretical upper bound
-        ref_sum = (low + high)/2  # _nsum uses average of the two
-        ref_err = (high - low)/2  # error (assuming perfect quadrature)
-
-        # correct reference values where number of terms < maxterms
-        a, b, step = np.broadcast_arrays(a, b, step)
-        for i in np.ndindex(a.shape):
-            ai, bi, stepi = a[i], b[i], step[i]
-            if (bi - ai)/stepi + 1 <= maxterms:
-                direct = f(np.arange(ai, bi+stepi, stepi)).sum()
-                ref_sum[i] = direct
-                ref_err[i] = direct * np.finfo(direct).eps
-
-        rtol = 1e-12
-        res = _nsum(f, a, b_original, step=step, maxterms=maxterms, rtol=rtol)
-        assert_allclose(res.sum, ref_sum, rtol=10*rtol)
-        assert_allclose(res.error, ref_err, rtol=100*rtol)
-        assert_equal(res.status, 0)
-        assert_equal(res.success, True)
-
-        i = ((b_original - a)/step + 1 <= maxterms)
-        assert_allclose(res.sum[i], ref_sum[i], rtol=1e-15)
-        assert_allclose(res.error[i], ref_err[i], rtol=1e-15)
-
-        logres = _nsum(logf, a, b_original, step=step, log=True,
-                       rtol=np.log(rtol), maxterms=maxterms)
-        assert_allclose(np.exp(logres.sum), res.sum)
-        assert_allclose(np.exp(logres.error), res.error)
-        assert_equal(logres.status, 0)
-        assert_equal(logres.success, True)
-
-    @pytest.mark.parametrize('shape', [tuple(), (12,), (3, 4), (3, 2, 2)])
-    def test_vectorization(self, shape):
-        # Test for correct functionality, output shapes, and dtypes for various
-        # input shapes.
-        rng = np.random.default_rng(82456839535679456794)
-        a = rng.integers(1, 10, size=shape)
-        # when the sum can be computed directly or `maxterms` is large enough
-        # to meet `atol`, there are slight differences (for good reason)
-        # between vectorized call and looping.
-        b = np.inf
-        p = rng.random(shape) + 1
-        n = np.prod(shape)
-
-        def f(x, p):
-            f.feval += 1 if (x.size == n or x.ndim <= 1) else x.shape[-1]
-            return 1 / x ** p
-
-        f.feval = 0
-
-        @np.vectorize
-        def _nsum_single(a, b, p, maxterms):
-            return _nsum(lambda x: 1 / x**p, a, b, maxterms=maxterms)
-
-        res = _nsum(f, a, b, maxterms=1000, args=(p,))
-        refs = _nsum_single(a, b, p, maxterms=1000).ravel()
-
-        attrs = ['sum', 'error', 'success', 'status', 'nfev']
-        for attr in attrs:
-            ref_attr = [getattr(ref, attr) for ref in refs]
-            res_attr = getattr(res, attr)
-            assert_allclose(res_attr.ravel(), ref_attr, rtol=1e-15)
-            assert_equal(res_attr.shape, shape)
-
-        assert np.issubdtype(res.success.dtype, np.bool_)
-        assert np.issubdtype(res.status.dtype, np.integer)
-        assert np.issubdtype(res.nfev.dtype, np.integer)
-        assert_equal(np.max(res.nfev), f.feval)
-
-    def test_status(self):
-        f = self.f2
-
-        p = [2, 2, 0.9, 1.1]
-        a = [0, 0, 1, 1]
-        b = [10, np.inf, np.inf, np.inf]
-        ref = special.zeta(p, 1)
-
-        with np.errstate(divide='ignore'):  # intentionally dividing by zero
-            res = _nsum(f, a, b, args=(p,))
-
-        assert_equal(res.success, [False, False, False, True])
-        assert_equal(res.status, [-3, -3, -2, 0])
-        assert_allclose(res.sum[res.success], ref[res.success])
-
-    def test_nfev(self):
-        def f(x):
-            f.nfev += np.size(x)
-            return 1 / x**2
-
-        f.nfev = 0
-        res = _nsum(f, 1, 10)
-        assert_equal(res.nfev, f.nfev)
-
-        f.nfev = 0
-        res = _nsum(f, 1, np.inf, atol=1e-6)
-        assert_equal(res.nfev, f.nfev)
-
-    def test_inclusive(self):
-        # There was an edge case off-by one bug when `_direct` was called with
-        # `inclusive=True`. Check that this is resolved.
-        res = _nsum(lambda k: 1 / k ** 2, [1, 4], np.inf, maxterms=500, atol=0.1)
-        ref = _nsum(lambda k: 1 / k ** 2, [1, 4], np.inf)
-        assert np.all(res.sum > (ref.sum - res.error))
-        assert np.all(res.sum < (ref.sum + res.error))
-
-    def test_special_case(self):
-        # test equal lower/upper limit
-        f = self.f1
-        a = b = 2
-        res = _nsum(f, a, b)
-        assert_equal(res.sum, f(a))
-
-        # Test scalar `args` (not in tuple)
-        res = _nsum(self.f2, 1, np.inf, args=2)
-        assert_allclose(res.sum, self.f1.ref)  # f1.ref is correct w/ args=2
-
-        # Test 0 size input
-        a = np.empty((3, 1, 1))  # arbitrary broadcastable shapes
-        b = np.empty((0, 1))  # could use Hypothesis
-        p = np.empty(4)  # but it's overkill
-        shape = np.broadcast_shapes(a.shape, b.shape, p.shape)
-        res = _nsum(self.f2, a, b, args=(p,))
-        assert res.sum.shape == shape
-        assert res.status.shape == shape
-        assert res.nfev.shape == shape
-
-        # Test maxterms=0
-        def f(x):
-            with np.errstate(divide='ignore'):
-                return 1 / x
-
-        res = _nsum(f, 0, 10, maxterms=0)
-        assert np.isnan(res.sum)
-        assert np.isnan(res.error)
-        assert res.status == -2
-
-        res = _nsum(f, 0, 10, maxterms=1)
-        assert np.isnan(res.sum)
-        assert np.isnan(res.error)
-        assert res.status == -3
-
-        # Test NaNs
-        # should skip both direct and integral methods if there are NaNs
-        a = [np.nan, 1, 1, 1]
-        b = [np.inf, np.nan, np.inf, np.inf]
-        p = [2, 2, np.nan, 2]
-        res = _nsum(self.f2, a, b, args=(p,))
-        assert_allclose(res.sum, [np.nan, np.nan, np.nan, self.f1.ref])
-        assert_allclose(res.error[:3], np.nan)
-        assert_equal(res.status, [-1, -1, -3, 0])
-        assert_equal(res.success, [False, False, False, True])
-        # Ideally res.nfev[2] would be 1, but `tanhsinh` has some function evals
-        assert_equal(res.nfev[:2], 1)
-
-    @pytest.mark.parametrize('dtype', [np.float32, np.float64])
-    def test_dtype(self, dtype):
-        def f(k):
-            assert k.dtype == dtype
-            return 1 / k ** np.asarray(2, dtype=dtype)[()]
-
-        a = np.asarray(1, dtype=dtype)
-        b = np.asarray([10, np.inf], dtype=dtype)
-        res = _nsum(f, a, b)
-        assert res.sum.dtype == dtype
-        assert res.error.dtype == dtype
-
-        rtol = 1e-12 if dtype == np.float64 else 1e-6
-        ref = _gen_harmonic_gt1(b, 2)
-        assert_allclose(res.sum, ref, rtol=rtol)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/vode.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/vode.py
deleted file mode 100644
index f92927901084ce33cdeb006057d85dd501b13aae..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/integrate/vode.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__: list[str] = []
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="integrate", module="vode",
-                                   private_modules=["_vode"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/linalg.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/linalg.pxd
deleted file mode 100644
index c7c49f9ad8f4c90ee93725fdcdbe73c2e7f5aacd..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/linalg.pxd
+++ /dev/null
@@ -1 +0,0 @@
-from scipy.linalg cimport cython_blas, cython_lapack
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__init__.py
deleted file mode 100644
index 4f619dded6615a284392c4273559f226a1c8c72c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__init__.py
+++ /dev/null
@@ -1,169 +0,0 @@
-"""
-=========================================================
-Multidimensional image processing (:mod:`scipy.ndimage`)
-=========================================================
-
-.. currentmodule:: scipy.ndimage
-
-This package contains various functions for multidimensional image
-processing.
-
-
-Filters
-=======
-
-.. autosummary::
-   :toctree: generated/
-
-   convolve - Multidimensional convolution
-   convolve1d - 1-D convolution along the given axis
-   correlate - Multidimensional correlation
-   correlate1d - 1-D correlation along the given axis
-   gaussian_filter
-   gaussian_filter1d
-   gaussian_gradient_magnitude
-   gaussian_laplace
-   generic_filter - Multidimensional filter using a given function
-   generic_filter1d - 1-D generic filter along the given axis
-   generic_gradient_magnitude
-   generic_laplace
-   laplace - N-D Laplace filter based on approximate second derivatives
-   maximum_filter
-   maximum_filter1d
-   median_filter - Calculates a multidimensional median filter
-   minimum_filter
-   minimum_filter1d
-   percentile_filter - Calculates a multidimensional percentile filter
-   prewitt
-   rank_filter - Calculates a multidimensional rank filter
-   sobel
-   uniform_filter - Multidimensional uniform filter
-   uniform_filter1d - 1-D uniform filter along the given axis
-
-Fourier filters
-===============
-
-.. autosummary::
-   :toctree: generated/
-
-   fourier_ellipsoid
-   fourier_gaussian
-   fourier_shift
-   fourier_uniform
-
-Interpolation
-=============
-
-.. autosummary::
-   :toctree: generated/
-
-   affine_transform - Apply an affine transformation
-   geometric_transform - Apply an arbitrary geometric transform
-   map_coordinates - Map input array to new coordinates by interpolation
-   rotate - Rotate an array
-   shift - Shift an array
-   spline_filter
-   spline_filter1d
-   zoom - Zoom an array
-
-Measurements
-============
-
-.. autosummary::
-   :toctree: generated/
-
-   center_of_mass - The center of mass of the values of an array at labels
-   extrema - Min's and max's of an array at labels, with their positions
-   find_objects - Find objects in a labeled array
-   histogram - Histogram of the values of an array, optionally at labels
-   label - Label features in an array
-   labeled_comprehension
-   maximum
-   maximum_position
-   mean - Mean of the values of an array at labels
-   median
-   minimum
-   minimum_position
-   standard_deviation - Standard deviation of an N-D image array
-   sum_labels - Sum of the values of the array
-   value_indices - Find indices of each distinct value in given array
-   variance - Variance of the values of an N-D image array
-   watershed_ift
-
-Morphology
-==========
-
-.. autosummary::
-   :toctree: generated/
-
-   binary_closing
-   binary_dilation
-   binary_erosion
-   binary_fill_holes
-   binary_hit_or_miss
-   binary_opening
-   binary_propagation
-   black_tophat
-   distance_transform_bf
-   distance_transform_cdt
-   distance_transform_edt
-   generate_binary_structure
-   grey_closing
-   grey_dilation
-   grey_erosion
-   grey_opening
-   iterate_structure
-   morphological_gradient
-   morphological_laplace
-   white_tophat
-
-"""
-
-# Copyright (C) 2003-2005 Peter J. Verveer
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-#    products derived from this software without specific prior
-#    written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-from ._filters import *
-from ._fourier import *
-from ._interpolation import *
-from ._measurements import *
-from ._morphology import *
-
-# Deprecated namespaces, to be removed in v2.0.0
-from . import filters
-from . import fourier
-from . import interpolation
-from . import measurements
-from . import morphology
-
-__all__ = [s for s in dir() if not s.startswith('_')]
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 866f67038ced550b3bbe9d2a468327c66fadb753..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_filters.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_filters.cpython-310.pyc
deleted file mode 100644
index 17a6b7f0db9f773d6b966b0fa274811da0e1355e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_filters.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_fourier.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_fourier.cpython-310.pyc
deleted file mode 100644
index f4c2e808e442ddf337e7bf86a3697eac3b2f319c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_fourier.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_interpolation.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_interpolation.cpython-310.pyc
deleted file mode 100644
index ba8ca85312afbc371e5901a14eaa8349861a2c9a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_interpolation.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_measurements.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_measurements.cpython-310.pyc
deleted file mode 100644
index f3b2ddfed0d89b5ec1014bc6d934688e57721b15..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_measurements.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_morphology.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_morphology.cpython-310.pyc
deleted file mode 100644
index e4aa9243f723128645d828ffb84f9c729ec773a8..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_morphology.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_ni_docstrings.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_ni_docstrings.cpython-310.pyc
deleted file mode 100644
index 2928206b103d7d1426445c172a3a5b5599e88094..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_ni_docstrings.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_ni_support.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_ni_support.cpython-310.pyc
deleted file mode 100644
index 999efde4bf910b24cb428f4d3d3ef1d679640753..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/_ni_support.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/filters.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/filters.cpython-310.pyc
deleted file mode 100644
index 00aa022ec8c7d969148b88dd0a5f022d30f2ef85..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/filters.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/fourier.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/fourier.cpython-310.pyc
deleted file mode 100644
index 77403c6061156082b8522e0097572a2e9b1757c4..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/fourier.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/interpolation.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/interpolation.cpython-310.pyc
deleted file mode 100644
index d3cd209eba813ebda488dc689f41849b3f19a762..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/interpolation.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/measurements.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/measurements.cpython-310.pyc
deleted file mode 100644
index 1f4fc88216c292b96202e149d6dd362ddefe0ac0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/measurements.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/morphology.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/morphology.cpython-310.pyc
deleted file mode 100644
index 5939f326757d4522937ee36f790d53d4ac4324c9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/__pycache__/morphology.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_ctest.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_ctest.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index 0d05e123ba1f7f45c1f37795e7ba5cd0257018b4..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_ctest.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_cytest.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_cytest.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index 69dd431440c7266e26056b61d7bae98be2550957..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_cytest.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_filters.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_filters.py
deleted file mode 100644
index 635b2d336b343ec832b0b411149063df505c5747..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_filters.py
+++ /dev/null
@@ -1,1858 +0,0 @@
-# Copyright (C) 2003-2005 Peter J. Verveer
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-#    products derived from this software without specific prior
-#    written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-from collections.abc import Iterable
-import numbers
-import warnings
-import numpy as np
-import operator
-
-from scipy._lib._util import normalize_axis_index
-from . import _ni_support
-from . import _nd_image
-from . import _ni_docstrings
-
-__all__ = ['correlate1d', 'convolve1d', 'gaussian_filter1d', 'gaussian_filter',
-           'prewitt', 'sobel', 'generic_laplace', 'laplace',
-           'gaussian_laplace', 'generic_gradient_magnitude',
-           'gaussian_gradient_magnitude', 'correlate', 'convolve',
-           'uniform_filter1d', 'uniform_filter', 'minimum_filter1d',
-           'maximum_filter1d', 'minimum_filter', 'maximum_filter',
-           'rank_filter', 'median_filter', 'percentile_filter',
-           'generic_filter1d', 'generic_filter']
-
-
-def _invalid_origin(origin, lenw):
-    return (origin < -(lenw // 2)) or (origin > (lenw - 1) // 2)
-
-
-def _complex_via_real_components(func, input, weights, output, cval, **kwargs):
-    """Complex convolution via a linear combination of real convolutions."""
-    complex_input = input.dtype.kind == 'c'
-    complex_weights = weights.dtype.kind == 'c'
-    if complex_input and complex_weights:
-        # real component of the output
-        func(input.real, weights.real, output=output.real,
-             cval=np.real(cval), **kwargs)
-        output.real -= func(input.imag, weights.imag, output=None,
-                            cval=np.imag(cval), **kwargs)
-        # imaginary component of the output
-        func(input.real, weights.imag, output=output.imag,
-             cval=np.real(cval), **kwargs)
-        output.imag += func(input.imag, weights.real, output=None,
-                            cval=np.imag(cval), **kwargs)
-    elif complex_input:
-        func(input.real, weights, output=output.real, cval=np.real(cval),
-             **kwargs)
-        func(input.imag, weights, output=output.imag, cval=np.imag(cval),
-             **kwargs)
-    else:
-        if np.iscomplexobj(cval):
-            raise ValueError("Cannot provide a complex-valued cval when the "
-                             "input is real.")
-        func(input, weights.real, output=output.real, cval=cval, **kwargs)
-        func(input, weights.imag, output=output.imag, cval=cval, **kwargs)
-    return output
-
-
-@_ni_docstrings.docfiller
-def correlate1d(input, weights, axis=-1, output=None, mode="reflect",
-                cval=0.0, origin=0):
-    """Calculate a 1-D correlation along the given axis.
-
-    The lines of the array along the given axis are correlated with the
-    given weights.
-
-    Parameters
-    ----------
-    %(input)s
-    weights : array
-        1-D sequence of numbers.
-    %(axis)s
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin)s
-
-    Returns
-    -------
-    result : ndarray
-        Correlation result. Has the same shape as `input`.
-
-    Examples
-    --------
-    >>> from scipy.ndimage import correlate1d
-    >>> correlate1d([2, 8, 0, 4, 1, 9, 9, 0], weights=[1, 3])
-    array([ 8, 26,  8, 12,  7, 28, 36,  9])
-    """
-    input = np.asarray(input)
-    weights = np.asarray(weights)
-    complex_input = input.dtype.kind == 'c'
-    complex_weights = weights.dtype.kind == 'c'
-    if complex_input or complex_weights:
-        if complex_weights:
-            weights = weights.conj()
-            weights = weights.astype(np.complex128, copy=False)
-        kwargs = dict(axis=axis, mode=mode, origin=origin)
-        output = _ni_support._get_output(output, input, complex_output=True)
-        return _complex_via_real_components(correlate1d, input, weights,
-                                            output, cval, **kwargs)
-
-    output = _ni_support._get_output(output, input)
-    weights = np.asarray(weights, dtype=np.float64)
-    if weights.ndim != 1 or weights.shape[0] < 1:
-        raise RuntimeError('no filter weights given')
-    if not weights.flags.contiguous:
-        weights = weights.copy()
-    axis = normalize_axis_index(axis, input.ndim)
-    if _invalid_origin(origin, len(weights)):
-        raise ValueError('Invalid origin; origin must satisfy '
-                         '-(len(weights) // 2) <= origin <= '
-                         '(len(weights)-1) // 2')
-    mode = _ni_support._extend_mode_to_code(mode)
-    _nd_image.correlate1d(input, weights, axis, output, mode, cval,
-                          origin)
-    return output
-
-
-@_ni_docstrings.docfiller
-def convolve1d(input, weights, axis=-1, output=None, mode="reflect",
-               cval=0.0, origin=0):
-    """Calculate a 1-D convolution along the given axis.
-
-    The lines of the array along the given axis are convolved with the
-    given weights.
-
-    Parameters
-    ----------
-    %(input)s
-    weights : ndarray
-        1-D sequence of numbers.
-    %(axis)s
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin)s
-
-    Returns
-    -------
-    convolve1d : ndarray
-        Convolved array with same shape as input
-
-    Examples
-    --------
-    >>> from scipy.ndimage import convolve1d
-    >>> convolve1d([2, 8, 0, 4, 1, 9, 9, 0], weights=[1, 3])
-    array([14, 24,  4, 13, 12, 36, 27,  0])
-    """
-    weights = weights[::-1]
-    origin = -origin
-    if not len(weights) & 1:
-        origin -= 1
-    weights = np.asarray(weights)
-    if weights.dtype.kind == 'c':
-        # pre-conjugate here to counteract the conjugation in correlate1d
-        weights = weights.conj()
-    return correlate1d(input, weights, axis, output, mode, cval, origin)
-
-
-def _gaussian_kernel1d(sigma, order, radius):
-    """
-    Computes a 1-D Gaussian convolution kernel.
-    """
-    if order < 0:
-        raise ValueError('order must be non-negative')
-    exponent_range = np.arange(order + 1)
-    sigma2 = sigma * sigma
-    x = np.arange(-radius, radius+1)
-    phi_x = np.exp(-0.5 / sigma2 * x ** 2)
-    phi_x = phi_x / phi_x.sum()
-
-    if order == 0:
-        return phi_x
-    else:
-        # f(x) = q(x) * phi(x) = q(x) * exp(p(x))
-        # f'(x) = (q'(x) + q(x) * p'(x)) * phi(x)
-        # p'(x) = -1 / sigma ** 2
-        # Implement q'(x) + q(x) * p'(x) as a matrix operator and apply to the
-        # coefficients of q(x)
-        q = np.zeros(order + 1)
-        q[0] = 1
-        D = np.diag(exponent_range[1:], 1)  # D @ q(x) = q'(x)
-        P = np.diag(np.ones(order)/-sigma2, -1)  # P @ q(x) = q(x) * p'(x)
-        Q_deriv = D + P
-        for _ in range(order):
-            q = Q_deriv.dot(q)
-        q = (x[:, None] ** exponent_range).dot(q)
-        return q * phi_x
-
-
-@_ni_docstrings.docfiller
-def gaussian_filter1d(input, sigma, axis=-1, order=0, output=None,
-                      mode="reflect", cval=0.0, truncate=4.0, *, radius=None):
-    """1-D Gaussian filter.
-
-    Parameters
-    ----------
-    %(input)s
-    sigma : scalar
-        standard deviation for Gaussian kernel
-    %(axis)s
-    order : int, optional
-        An order of 0 corresponds to convolution with a Gaussian
-        kernel. A positive order corresponds to convolution with
-        that derivative of a Gaussian.
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    truncate : float, optional
-        Truncate the filter at this many standard deviations.
-        Default is 4.0.
-    radius : None or int, optional
-        Radius of the Gaussian kernel. If specified, the size of
-        the kernel will be ``2*radius + 1``, and `truncate` is ignored.
-        Default is None.
-
-    Returns
-    -------
-    gaussian_filter1d : ndarray
-
-    Notes
-    -----
-    The Gaussian kernel will have size ``2*radius + 1`` along each axis. If
-    `radius` is None, a default ``radius = round(truncate * sigma)`` will be
-    used.
-
-    Examples
-    --------
-    >>> from scipy.ndimage import gaussian_filter1d
-    >>> import numpy as np
-    >>> gaussian_filter1d([1.0, 2.0, 3.0, 4.0, 5.0], 1)
-    array([ 1.42704095,  2.06782203,  3.        ,  3.93217797,  4.57295905])
-    >>> gaussian_filter1d([1.0, 2.0, 3.0, 4.0, 5.0], 4)
-    array([ 2.91948343,  2.95023502,  3.        ,  3.04976498,  3.08051657])
-    >>> import matplotlib.pyplot as plt
-    >>> rng = np.random.default_rng()
-    >>> x = rng.standard_normal(101).cumsum()
-    >>> y3 = gaussian_filter1d(x, 3)
-    >>> y6 = gaussian_filter1d(x, 6)
-    >>> plt.plot(x, 'k', label='original data')
-    >>> plt.plot(y3, '--', label='filtered, sigma=3')
-    >>> plt.plot(y6, ':', label='filtered, sigma=6')
-    >>> plt.legend()
-    >>> plt.grid()
-    >>> plt.show()
-
-    """
-    sd = float(sigma)
-    # make the radius of the filter equal to truncate standard deviations
-    lw = int(truncate * sd + 0.5)
-    if radius is not None:
-        lw = radius
-    if not isinstance(lw, numbers.Integral) or lw < 0:
-        raise ValueError('Radius must be a nonnegative integer.')
-    # Since we are calling correlate, not convolve, revert the kernel
-    weights = _gaussian_kernel1d(sigma, order, lw)[::-1]
-    return correlate1d(input, weights, axis, output, mode, cval, 0)
-
-
-@_ni_docstrings.docfiller
-def gaussian_filter(input, sigma, order=0, output=None,
-                    mode="reflect", cval=0.0, truncate=4.0, *, radius=None,
-                    axes=None):
-    """Multidimensional Gaussian filter.
-
-    Parameters
-    ----------
-    %(input)s
-    sigma : scalar or sequence of scalars
-        Standard deviation for Gaussian kernel. The standard
-        deviations of the Gaussian filter are given for each axis as a
-        sequence, or as a single number, in which case it is equal for
-        all axes.
-    order : int or sequence of ints, optional
-        The order of the filter along each axis is given as a sequence
-        of integers, or as a single number. An order of 0 corresponds
-        to convolution with a Gaussian kernel. A positive order
-        corresponds to convolution with that derivative of a Gaussian.
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-    truncate : float, optional
-        Truncate the filter at this many standard deviations.
-        Default is 4.0.
-    radius : None or int or sequence of ints, optional
-        Radius of the Gaussian kernel. The radius are given for each axis
-        as a sequence, or as a single number, in which case it is equal
-        for all axes. If specified, the size of the kernel along each axis
-        will be ``2*radius + 1``, and `truncate` is ignored.
-        Default is None.
-    axes : tuple of int or None, optional
-        If None, `input` is filtered along all axes. Otherwise,
-        `input` is filtered along the specified axes. When `axes` is
-        specified, any tuples used for `sigma`, `order`, `mode` and/or `radius`
-        must match the length of `axes`. The ith entry in any of these tuples
-        corresponds to the ith entry in `axes`.
-
-    Returns
-    -------
-    gaussian_filter : ndarray
-        Returned array of same shape as `input`.
-
-    Notes
-    -----
-    The multidimensional filter is implemented as a sequence of
-    1-D convolution filters. The intermediate arrays are
-    stored in the same data type as the output. Therefore, for output
-    types with a limited precision, the results may be imprecise
-    because intermediate results may be stored with insufficient
-    precision.
-
-    The Gaussian kernel will have size ``2*radius + 1`` along each axis. If
-    `radius` is None, the default ``radius = round(truncate * sigma)`` will be
-    used.
-
-    Examples
-    --------
-    >>> from scipy.ndimage import gaussian_filter
-    >>> import numpy as np
-    >>> a = np.arange(50, step=2).reshape((5,5))
-    >>> a
-    array([[ 0,  2,  4,  6,  8],
-           [10, 12, 14, 16, 18],
-           [20, 22, 24, 26, 28],
-           [30, 32, 34, 36, 38],
-           [40, 42, 44, 46, 48]])
-    >>> gaussian_filter(a, sigma=1)
-    array([[ 4,  6,  8,  9, 11],
-           [10, 12, 14, 15, 17],
-           [20, 22, 24, 25, 27],
-           [29, 31, 33, 34, 36],
-           [35, 37, 39, 40, 42]])
-
-    >>> from scipy import datasets
-    >>> import matplotlib.pyplot as plt
-    >>> fig = plt.figure()
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-    >>> ascent = datasets.ascent()
-    >>> result = gaussian_filter(ascent, sigma=5)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result)
-    >>> plt.show()
-    """
-    input = np.asarray(input)
-    output = _ni_support._get_output(output, input)
-
-    axes = _ni_support._check_axes(axes, input.ndim)
-    num_axes = len(axes)
-    orders = _ni_support._normalize_sequence(order, num_axes)
-    sigmas = _ni_support._normalize_sequence(sigma, num_axes)
-    modes = _ni_support._normalize_sequence(mode, num_axes)
-    radiuses = _ni_support._normalize_sequence(radius, num_axes)
-    axes = [(axes[ii], sigmas[ii], orders[ii], modes[ii], radiuses[ii])
-            for ii in range(num_axes) if sigmas[ii] > 1e-15]
-    if len(axes) > 0:
-        for axis, sigma, order, mode, radius in axes:
-            gaussian_filter1d(input, sigma, axis, order, output,
-                              mode, cval, truncate, radius=radius)
-            input = output
-    else:
-        output[...] = input[...]
-    return output
-
-
-@_ni_docstrings.docfiller
-def prewitt(input, axis=-1, output=None, mode="reflect", cval=0.0):
-    """Calculate a Prewitt filter.
-
-    Parameters
-    ----------
-    %(input)s
-    %(axis)s
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-
-    Returns
-    -------
-    prewitt : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    See Also
-    --------
-    sobel: Sobel filter
-
-    Notes
-    -----
-    This function computes the one-dimensional Prewitt filter.
-    Horizontal edges are emphasised with the horizontal transform (axis=0),
-    vertical edges with the vertical transform (axis=1), and so on for higher
-    dimensions. These can be combined to give the magnitude.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> import numpy as np
-    >>> ascent = datasets.ascent()
-    >>> prewitt_h = ndimage.prewitt(ascent, axis=0)
-    >>> prewitt_v = ndimage.prewitt(ascent, axis=1)
-    >>> magnitude = np.sqrt(prewitt_h ** 2 + prewitt_v ** 2)
-    >>> magnitude *= 255 / np.max(magnitude) # Normalization
-    >>> fig, axes = plt.subplots(2, 2, figsize = (8, 8))
-    >>> plt.gray()
-    >>> axes[0, 0].imshow(ascent)
-    >>> axes[0, 1].imshow(prewitt_h)
-    >>> axes[1, 0].imshow(prewitt_v)
-    >>> axes[1, 1].imshow(magnitude)
-    >>> titles = ["original", "horizontal", "vertical", "magnitude"]
-    >>> for i, ax in enumerate(axes.ravel()):
-    ...     ax.set_title(titles[i])
-    ...     ax.axis("off")
-    >>> plt.show()
-
-    """
-    input = np.asarray(input)
-    axis = normalize_axis_index(axis, input.ndim)
-    output = _ni_support._get_output(output, input)
-    modes = _ni_support._normalize_sequence(mode, input.ndim)
-    correlate1d(input, [-1, 0, 1], axis, output, modes[axis], cval, 0)
-    axes = [ii for ii in range(input.ndim) if ii != axis]
-    for ii in axes:
-        correlate1d(output, [1, 1, 1], ii, output, modes[ii], cval, 0,)
-    return output
-
-
-@_ni_docstrings.docfiller
-def sobel(input, axis=-1, output=None, mode="reflect", cval=0.0):
-    """Calculate a Sobel filter.
-
-    Parameters
-    ----------
-    %(input)s
-    %(axis)s
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-
-    Returns
-    -------
-    sobel : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Notes
-    -----
-    This function computes the axis-specific Sobel gradient.
-    The horizontal edges can be emphasised with the horizontal transform (axis=0),
-    the vertical edges with the vertical transform (axis=1) and so on for higher
-    dimensions. These can be combined to give the magnitude.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> import numpy as np
-    >>> ascent = datasets.ascent().astype('int32')
-    >>> sobel_h = ndimage.sobel(ascent, 0)  # horizontal gradient
-    >>> sobel_v = ndimage.sobel(ascent, 1)  # vertical gradient
-    >>> magnitude = np.sqrt(sobel_h**2 + sobel_v**2)
-    >>> magnitude *= 255.0 / np.max(magnitude)  # normalization
-    >>> fig, axs = plt.subplots(2, 2, figsize=(8, 8))
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> axs[0, 0].imshow(ascent)
-    >>> axs[0, 1].imshow(sobel_h)
-    >>> axs[1, 0].imshow(sobel_v)
-    >>> axs[1, 1].imshow(magnitude)
-    >>> titles = ["original", "horizontal", "vertical", "magnitude"]
-    >>> for i, ax in enumerate(axs.ravel()):
-    ...     ax.set_title(titles[i])
-    ...     ax.axis("off")
-    >>> plt.show()
-
-    """
-    input = np.asarray(input)
-    axis = normalize_axis_index(axis, input.ndim)
-    output = _ni_support._get_output(output, input)
-    modes = _ni_support._normalize_sequence(mode, input.ndim)
-    correlate1d(input, [-1, 0, 1], axis, output, modes[axis], cval, 0)
-    axes = [ii for ii in range(input.ndim) if ii != axis]
-    for ii in axes:
-        correlate1d(output, [1, 2, 1], ii, output, modes[ii], cval, 0)
-    return output
-
-
-@_ni_docstrings.docfiller
-def generic_laplace(input, derivative2, output=None, mode="reflect",
-                    cval=0.0,
-                    extra_arguments=(),
-                    extra_keywords=None):
-    """
-    N-D Laplace filter using a provided second derivative function.
-
-    Parameters
-    ----------
-    %(input)s
-    derivative2 : callable
-        Callable with the following signature::
-
-            derivative2(input, axis, output, mode, cval,
-                        *extra_arguments, **extra_keywords)
-
-        See `extra_arguments`, `extra_keywords` below.
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-    %(extra_keywords)s
-    %(extra_arguments)s
-
-    Returns
-    -------
-    generic_laplace : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    """
-    if extra_keywords is None:
-        extra_keywords = {}
-    input = np.asarray(input)
-    output = _ni_support._get_output(output, input)
-    axes = list(range(input.ndim))
-    if len(axes) > 0:
-        modes = _ni_support._normalize_sequence(mode, len(axes))
-        derivative2(input, axes[0], output, modes[0], cval,
-                    *extra_arguments, **extra_keywords)
-        for ii in range(1, len(axes)):
-            tmp = derivative2(input, axes[ii], output.dtype, modes[ii], cval,
-                              *extra_arguments, **extra_keywords)
-            output += tmp
-    else:
-        output[...] = input[...]
-    return output
-
-
-@_ni_docstrings.docfiller
-def laplace(input, output=None, mode="reflect", cval=0.0):
-    """N-D Laplace filter based on approximate second derivatives.
-
-    Parameters
-    ----------
-    %(input)s
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-
-    Returns
-    -------
-    laplace : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> fig = plt.figure()
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-    >>> ascent = datasets.ascent()
-    >>> result = ndimage.laplace(ascent)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result)
-    >>> plt.show()
-    """
-    def derivative2(input, axis, output, mode, cval):
-        return correlate1d(input, [1, -2, 1], axis, output, mode, cval, 0)
-    return generic_laplace(input, derivative2, output, mode, cval)
-
-
-@_ni_docstrings.docfiller
-def gaussian_laplace(input, sigma, output=None, mode="reflect",
-                     cval=0.0, **kwargs):
-    """Multidimensional Laplace filter using Gaussian second derivatives.
-
-    Parameters
-    ----------
-    %(input)s
-    sigma : scalar or sequence of scalars
-        The standard deviations of the Gaussian filter are given for
-        each axis as a sequence, or as a single number, in which case
-        it is equal for all axes.
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-    Extra keyword arguments will be passed to gaussian_filter().
-
-    Returns
-    -------
-    gaussian_laplace : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> ascent = datasets.ascent()
-
-    >>> fig = plt.figure()
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-
-    >>> result = ndimage.gaussian_laplace(ascent, sigma=1)
-    >>> ax1.imshow(result)
-
-    >>> result = ndimage.gaussian_laplace(ascent, sigma=3)
-    >>> ax2.imshow(result)
-    >>> plt.show()
-    """
-    input = np.asarray(input)
-
-    def derivative2(input, axis, output, mode, cval, sigma, **kwargs):
-        order = [0] * input.ndim
-        order[axis] = 2
-        return gaussian_filter(input, sigma, order, output, mode, cval,
-                               **kwargs)
-
-    return generic_laplace(input, derivative2, output, mode, cval,
-                           extra_arguments=(sigma,),
-                           extra_keywords=kwargs)
-
-
-@_ni_docstrings.docfiller
-def generic_gradient_magnitude(input, derivative, output=None,
-                               mode="reflect", cval=0.0,
-                               extra_arguments=(), extra_keywords=None):
-    """Gradient magnitude using a provided gradient function.
-
-    Parameters
-    ----------
-    %(input)s
-    derivative : callable
-        Callable with the following signature::
-
-            derivative(input, axis, output, mode, cval,
-                       *extra_arguments, **extra_keywords)
-
-        See `extra_arguments`, `extra_keywords` below.
-        `derivative` can assume that `input` and `output` are ndarrays.
-        Note that the output from `derivative` is modified inplace;
-        be careful to copy important inputs before returning them.
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-    %(extra_keywords)s
-    %(extra_arguments)s
-
-    Returns
-    -------
-    generic_gradient_matnitude : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    """
-    if extra_keywords is None:
-        extra_keywords = {}
-    input = np.asarray(input)
-    output = _ni_support._get_output(output, input)
-    axes = list(range(input.ndim))
-    if len(axes) > 0:
-        modes = _ni_support._normalize_sequence(mode, len(axes))
-        derivative(input, axes[0], output, modes[0], cval,
-                   *extra_arguments, **extra_keywords)
-        np.multiply(output, output, output)
-        for ii in range(1, len(axes)):
-            tmp = derivative(input, axes[ii], output.dtype, modes[ii], cval,
-                             *extra_arguments, **extra_keywords)
-            np.multiply(tmp, tmp, tmp)
-            output += tmp
-        # This allows the sqrt to work with a different default casting
-        np.sqrt(output, output, casting='unsafe')
-    else:
-        output[...] = input[...]
-    return output
-
-
-@_ni_docstrings.docfiller
-def gaussian_gradient_magnitude(input, sigma, output=None,
-                                mode="reflect", cval=0.0, **kwargs):
-    """Multidimensional gradient magnitude using Gaussian derivatives.
-
-    Parameters
-    ----------
-    %(input)s
-    sigma : scalar or sequence of scalars
-        The standard deviations of the Gaussian filter are given for
-        each axis as a sequence, or as a single number, in which case
-        it is equal for all axes.
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-    Extra keyword arguments will be passed to gaussian_filter().
-
-    Returns
-    -------
-    gaussian_gradient_magnitude : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> fig = plt.figure()
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-    >>> ascent = datasets.ascent()
-    >>> result = ndimage.gaussian_gradient_magnitude(ascent, sigma=5)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result)
-    >>> plt.show()
-    """
-    input = np.asarray(input)
-
-    def derivative(input, axis, output, mode, cval, sigma, **kwargs):
-        order = [0] * input.ndim
-        order[axis] = 1
-        return gaussian_filter(input, sigma, order, output, mode,
-                               cval, **kwargs)
-
-    return generic_gradient_magnitude(input, derivative, output, mode,
-                                      cval, extra_arguments=(sigma,),
-                                      extra_keywords=kwargs)
-
-
-def _correlate_or_convolve(input, weights, output, mode, cval, origin,
-                           convolution):
-    input = np.asarray(input)
-    weights = np.asarray(weights)
-    complex_input = input.dtype.kind == 'c'
-    complex_weights = weights.dtype.kind == 'c'
-    if complex_input or complex_weights:
-        if complex_weights and not convolution:
-            # As for np.correlate, conjugate weights rather than input.
-            weights = weights.conj()
-        kwargs = dict(
-            mode=mode, origin=origin, convolution=convolution
-        )
-        output = _ni_support._get_output(output, input, complex_output=True)
-
-        return _complex_via_real_components(_correlate_or_convolve, input,
-                                            weights, output, cval, **kwargs)
-
-    origins = _ni_support._normalize_sequence(origin, input.ndim)
-    weights = np.asarray(weights, dtype=np.float64)
-    wshape = [ii for ii in weights.shape if ii > 0]
-    if len(wshape) != input.ndim:
-        raise RuntimeError('filter weights array has incorrect shape.')
-    if convolution:
-        weights = weights[tuple([slice(None, None, -1)] * weights.ndim)]
-        for ii in range(len(origins)):
-            origins[ii] = -origins[ii]
-            if not weights.shape[ii] & 1:
-                origins[ii] -= 1
-    for origin, lenw in zip(origins, wshape):
-        if _invalid_origin(origin, lenw):
-            raise ValueError('Invalid origin; origin must satisfy '
-                             '-(weights.shape[k] // 2) <= origin[k] <= '
-                             '(weights.shape[k]-1) // 2')
-
-    if not weights.flags.contiguous:
-        weights = weights.copy()
-    output = _ni_support._get_output(output, input)
-    temp_needed = np.may_share_memory(input, output)
-    if temp_needed:
-        # input and output arrays cannot share memory
-        temp = output
-        output = _ni_support._get_output(output.dtype, input)
-    if not isinstance(mode, str) and isinstance(mode, Iterable):
-        raise RuntimeError("A sequence of modes is not supported")
-    mode = _ni_support._extend_mode_to_code(mode)
-    _nd_image.correlate(input, weights, output, mode, cval, origins)
-    if temp_needed:
-        temp[...] = output
-        output = temp
-    return output
-
-
-@_ni_docstrings.docfiller
-def correlate(input, weights, output=None, mode='reflect', cval=0.0,
-              origin=0):
-    """
-    Multidimensional correlation.
-
-    The array is correlated with the given kernel.
-
-    Parameters
-    ----------
-    %(input)s
-    weights : ndarray
-        array of weights, same number of dimensions as input
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin_multiple)s
-
-    Returns
-    -------
-    result : ndarray
-        The result of correlation of `input` with `weights`.
-
-    See Also
-    --------
-    convolve : Convolve an image with a kernel.
-
-    Examples
-    --------
-    Correlation is the process of moving a filter mask often referred to
-    as kernel over the image and computing the sum of products at each location.
-
-    >>> from scipy.ndimage import correlate
-    >>> import numpy as np
-    >>> input_img = np.arange(25).reshape(5,5)
-    >>> print(input_img)
-    [[ 0  1  2  3  4]
-    [ 5  6  7  8  9]
-    [10 11 12 13 14]
-    [15 16 17 18 19]
-    [20 21 22 23 24]]
-
-    Define a kernel (weights) for correlation. In this example, it is for sum of
-    center and up, down, left and right next elements.
-
-    >>> weights = [[0, 1, 0],
-    ...            [1, 1, 1],
-    ...            [0, 1, 0]]
-
-    We can calculate a correlation result:
-    For example, element ``[2,2]`` is ``7 + 11 + 12 + 13 + 17 = 60``.
-
-    >>> correlate(input_img, weights)
-    array([[  6,  10,  15,  20,  24],
-        [ 26,  30,  35,  40,  44],
-        [ 51,  55,  60,  65,  69],
-        [ 76,  80,  85,  90,  94],
-        [ 96, 100, 105, 110, 114]])
-
-    """
-    return _correlate_or_convolve(input, weights, output, mode, cval,
-                                  origin, False)
-
-
-@_ni_docstrings.docfiller
-def convolve(input, weights, output=None, mode='reflect', cval=0.0,
-             origin=0):
-    """
-    Multidimensional convolution.
-
-    The array is convolved with the given kernel.
-
-    Parameters
-    ----------
-    %(input)s
-    weights : array_like
-        Array of weights, same number of dimensions as input
-    %(output)s
-    %(mode_reflect)s
-    cval : scalar, optional
-        Value to fill past edges of input if `mode` is 'constant'. Default
-        is 0.0
-    origin : int, optional
-        Controls the origin of the input signal, which is where the
-        filter is centered to produce the first element of the output.
-        Positive values shift the filter to the right, and negative values
-        shift the filter to the left. Default is 0.
-
-    Returns
-    -------
-    result : ndarray
-        The result of convolution of `input` with `weights`.
-
-    See Also
-    --------
-    correlate : Correlate an image with a kernel.
-
-    Notes
-    -----
-    Each value in result is :math:`C_i = \\sum_j{I_{i+k-j} W_j}`, where
-    W is the `weights` kernel,
-    j is the N-D spatial index over :math:`W`,
-    I is the `input` and k is the coordinate of the center of
-    W, specified by `origin` in the input parameters.
-
-    Examples
-    --------
-    Perhaps the simplest case to understand is ``mode='constant', cval=0.0``,
-    because in this case borders (i.e., where the `weights` kernel, centered
-    on any one value, extends beyond an edge of `input`) are treated as zeros.
-
-    >>> import numpy as np
-    >>> a = np.array([[1, 2, 0, 0],
-    ...               [5, 3, 0, 4],
-    ...               [0, 0, 0, 7],
-    ...               [9, 3, 0, 0]])
-    >>> k = np.array([[1,1,1],[1,1,0],[1,0,0]])
-    >>> from scipy import ndimage
-    >>> ndimage.convolve(a, k, mode='constant', cval=0.0)
-    array([[11, 10,  7,  4],
-           [10,  3, 11, 11],
-           [15, 12, 14,  7],
-           [12,  3,  7,  0]])
-
-    Setting ``cval=1.0`` is equivalent to padding the outer edge of `input`
-    with 1.0's (and then extracting only the original region of the result).
-
-    >>> ndimage.convolve(a, k, mode='constant', cval=1.0)
-    array([[13, 11,  8,  7],
-           [11,  3, 11, 14],
-           [16, 12, 14, 10],
-           [15,  6, 10,  5]])
-
-    With ``mode='reflect'`` (the default), outer values are reflected at the
-    edge of `input` to fill in missing values.
-
-    >>> b = np.array([[2, 0, 0],
-    ...               [1, 0, 0],
-    ...               [0, 0, 0]])
-    >>> k = np.array([[0,1,0], [0,1,0], [0,1,0]])
-    >>> ndimage.convolve(b, k, mode='reflect')
-    array([[5, 0, 0],
-           [3, 0, 0],
-           [1, 0, 0]])
-
-    This includes diagonally at the corners.
-
-    >>> k = np.array([[1,0,0],[0,1,0],[0,0,1]])
-    >>> ndimage.convolve(b, k)
-    array([[4, 2, 0],
-           [3, 2, 0],
-           [1, 1, 0]])
-
-    With ``mode='nearest'``, the single nearest value in to an edge in
-    `input` is repeated as many times as needed to match the overlapping
-    `weights`.
-
-    >>> c = np.array([[2, 0, 1],
-    ...               [1, 0, 0],
-    ...               [0, 0, 0]])
-    >>> k = np.array([[0, 1, 0],
-    ...               [0, 1, 0],
-    ...               [0, 1, 0],
-    ...               [0, 1, 0],
-    ...               [0, 1, 0]])
-    >>> ndimage.convolve(c, k, mode='nearest')
-    array([[7, 0, 3],
-           [5, 0, 2],
-           [3, 0, 1]])
-
-    """
-    return _correlate_or_convolve(input, weights, output, mode, cval,
-                                  origin, True)
-
-
-@_ni_docstrings.docfiller
-def uniform_filter1d(input, size, axis=-1, output=None,
-                     mode="reflect", cval=0.0, origin=0):
-    """Calculate a 1-D uniform filter along the given axis.
-
-    The lines of the array along the given axis are filtered with a
-    uniform filter of given size.
-
-    Parameters
-    ----------
-    %(input)s
-    size : int
-        length of uniform filter
-    %(axis)s
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin)s
-
-    Returns
-    -------
-    result : ndarray
-        Filtered array. Has same shape as `input`.
-
-    Examples
-    --------
-    >>> from scipy.ndimage import uniform_filter1d
-    >>> uniform_filter1d([2, 8, 0, 4, 1, 9, 9, 0], size=3)
-    array([4, 3, 4, 1, 4, 6, 6, 3])
-    """
-    input = np.asarray(input)
-    axis = normalize_axis_index(axis, input.ndim)
-    if size < 1:
-        raise RuntimeError('incorrect filter size')
-    complex_output = input.dtype.kind == 'c'
-    output = _ni_support._get_output(output, input,
-                                     complex_output=complex_output)
-    if (size // 2 + origin < 0) or (size // 2 + origin >= size):
-        raise ValueError('invalid origin')
-    mode = _ni_support._extend_mode_to_code(mode)
-    if not complex_output:
-        _nd_image.uniform_filter1d(input, size, axis, output, mode, cval,
-                                   origin)
-    else:
-        _nd_image.uniform_filter1d(input.real, size, axis, output.real, mode,
-                                   np.real(cval), origin)
-        _nd_image.uniform_filter1d(input.imag, size, axis, output.imag, mode,
-                                   np.imag(cval), origin)
-    return output
-
-
-@_ni_docstrings.docfiller
-def uniform_filter(input, size=3, output=None, mode="reflect",
-                   cval=0.0, origin=0, *, axes=None):
-    """Multidimensional uniform filter.
-
-    Parameters
-    ----------
-    %(input)s
-    size : int or sequence of ints, optional
-        The sizes of the uniform filter are given for each axis as a
-        sequence, or as a single number, in which case the size is
-        equal for all axes.
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-    %(origin_multiple)s
-    axes : tuple of int or None, optional
-        If None, `input` is filtered along all axes. Otherwise,
-        `input` is filtered along the specified axes. When `axes` is
-        specified, any tuples used for `size`, `origin`, and/or `mode`
-        must match the length of `axes`. The ith entry in any of these tuples
-        corresponds to the ith entry in `axes`.
-
-    Returns
-    -------
-    uniform_filter : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Notes
-    -----
-    The multidimensional filter is implemented as a sequence of
-    1-D uniform filters. The intermediate arrays are stored
-    in the same data type as the output. Therefore, for output types
-    with a limited precision, the results may be imprecise because
-    intermediate results may be stored with insufficient precision.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> fig = plt.figure()
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-    >>> ascent = datasets.ascent()
-    >>> result = ndimage.uniform_filter(ascent, size=20)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result)
-    >>> plt.show()
-    """
-    input = np.asarray(input)
-    output = _ni_support._get_output(output, input,
-                                     complex_output=input.dtype.kind == 'c')
-    axes = _ni_support._check_axes(axes, input.ndim)
-    num_axes = len(axes)
-    sizes = _ni_support._normalize_sequence(size, num_axes)
-    origins = _ni_support._normalize_sequence(origin, num_axes)
-    modes = _ni_support._normalize_sequence(mode, num_axes)
-    axes = [(axes[ii], sizes[ii], origins[ii], modes[ii])
-            for ii in range(num_axes) if sizes[ii] > 1]
-    if len(axes) > 0:
-        for axis, size, origin, mode in axes:
-            uniform_filter1d(input, int(size), axis, output, mode,
-                             cval, origin)
-            input = output
-    else:
-        output[...] = input[...]
-    return output
-
-
-@_ni_docstrings.docfiller
-def minimum_filter1d(input, size, axis=-1, output=None,
-                     mode="reflect", cval=0.0, origin=0):
-    """Calculate a 1-D minimum filter along the given axis.
-
-    The lines of the array along the given axis are filtered with a
-    minimum filter of given size.
-
-    Parameters
-    ----------
-    %(input)s
-    size : int
-        length along which to calculate 1D minimum
-    %(axis)s
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin)s
-
-    Returns
-    -------
-    result : ndarray.
-        Filtered image. Has the same shape as `input`.
-
-    Notes
-    -----
-    This function implements the MINLIST algorithm [1]_, as described by
-    Richard Harter [2]_, and has a guaranteed O(n) performance, `n` being
-    the `input` length, regardless of filter size.
-
-    References
-    ----------
-    .. [1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.2777
-    .. [2] http://www.richardhartersworld.com/cri/2001/slidingmin.html
-
-
-    Examples
-    --------
-    >>> from scipy.ndimage import minimum_filter1d
-    >>> minimum_filter1d([2, 8, 0, 4, 1, 9, 9, 0], size=3)
-    array([2, 0, 0, 0, 1, 1, 0, 0])
-    """
-    input = np.asarray(input)
-    if np.iscomplexobj(input):
-        raise TypeError('Complex type not supported')
-    axis = normalize_axis_index(axis, input.ndim)
-    if size < 1:
-        raise RuntimeError('incorrect filter size')
-    output = _ni_support._get_output(output, input)
-    if (size // 2 + origin < 0) or (size // 2 + origin >= size):
-        raise ValueError('invalid origin')
-    mode = _ni_support._extend_mode_to_code(mode)
-    _nd_image.min_or_max_filter1d(input, size, axis, output, mode, cval,
-                                  origin, 1)
-    return output
-
-
-@_ni_docstrings.docfiller
-def maximum_filter1d(input, size, axis=-1, output=None,
-                     mode="reflect", cval=0.0, origin=0):
-    """Calculate a 1-D maximum filter along the given axis.
-
-    The lines of the array along the given axis are filtered with a
-    maximum filter of given size.
-
-    Parameters
-    ----------
-    %(input)s
-    size : int
-        Length along which to calculate the 1-D maximum.
-    %(axis)s
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin)s
-
-    Returns
-    -------
-    maximum1d : ndarray, None
-        Maximum-filtered array with same shape as input.
-        None if `output` is not None
-
-    Notes
-    -----
-    This function implements the MAXLIST algorithm [1]_, as described by
-    Richard Harter [2]_, and has a guaranteed O(n) performance, `n` being
-    the `input` length, regardless of filter size.
-
-    References
-    ----------
-    .. [1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.2777
-    .. [2] http://www.richardhartersworld.com/cri/2001/slidingmin.html
-
-    Examples
-    --------
-    >>> from scipy.ndimage import maximum_filter1d
-    >>> maximum_filter1d([2, 8, 0, 4, 1, 9, 9, 0], size=3)
-    array([8, 8, 8, 4, 9, 9, 9, 9])
-    """
-    input = np.asarray(input)
-    if np.iscomplexobj(input):
-        raise TypeError('Complex type not supported')
-    axis = normalize_axis_index(axis, input.ndim)
-    if size < 1:
-        raise RuntimeError('incorrect filter size')
-    output = _ni_support._get_output(output, input)
-    if (size // 2 + origin < 0) or (size // 2 + origin >= size):
-        raise ValueError('invalid origin')
-    mode = _ni_support._extend_mode_to_code(mode)
-    _nd_image.min_or_max_filter1d(input, size, axis, output, mode, cval,
-                                  origin, 0)
-    return output
-
-
-def _min_or_max_filter(input, size, footprint, structure, output, mode,
-                       cval, origin, minimum, axes=None):
-    if (size is not None) and (footprint is not None):
-        warnings.warn("ignoring size because footprint is set",
-                      UserWarning, stacklevel=3)
-    if structure is None:
-        if footprint is None:
-            if size is None:
-                raise RuntimeError("no footprint provided")
-            separable = True
-        else:
-            footprint = np.asarray(footprint, dtype=bool)
-            if not footprint.any():
-                raise ValueError("All-zero footprint is not supported.")
-            if footprint.all():
-                size = footprint.shape
-                footprint = None
-                separable = True
-            else:
-                separable = False
-    else:
-        structure = np.asarray(structure, dtype=np.float64)
-        separable = False
-        if footprint is None:
-            footprint = np.ones(structure.shape, bool)
-        else:
-            footprint = np.asarray(footprint, dtype=bool)
-    input = np.asarray(input)
-    if np.iscomplexobj(input):
-        raise TypeError("Complex type not supported")
-    output = _ni_support._get_output(output, input)
-    temp_needed = np.may_share_memory(input, output)
-    if temp_needed:
-        # input and output arrays cannot share memory
-        temp = output
-        output = _ni_support._get_output(output.dtype, input)
-    axes = _ni_support._check_axes(axes, input.ndim)
-    num_axes = len(axes)
-    if separable:
-        origins = _ni_support._normalize_sequence(origin, num_axes)
-        sizes = _ni_support._normalize_sequence(size, num_axes)
-        modes = _ni_support._normalize_sequence(mode, num_axes)
-        axes = [(axes[ii], sizes[ii], origins[ii], modes[ii])
-                for ii in range(len(axes)) if sizes[ii] > 1]
-        if minimum:
-            filter_ = minimum_filter1d
-        else:
-            filter_ = maximum_filter1d
-        if len(axes) > 0:
-            for axis, size, origin, mode in axes:
-                filter_(input, int(size), axis, output, mode, cval, origin)
-                input = output
-        else:
-            output[...] = input[...]
-    else:
-        origins = _ni_support._normalize_sequence(origin, num_axes)
-        if num_axes < input.ndim:
-            if footprint.ndim != num_axes:
-                raise RuntimeError("footprint array has incorrect shape")
-            footprint = np.expand_dims(
-                footprint,
-                tuple(ax for ax in range(input.ndim) if ax not in axes)
-            )
-            # set origin = 0 for any axes not being filtered
-            origins_temp = [0,] * input.ndim
-            for o, ax in zip(origins, axes):
-                origins_temp[ax] = o
-            origins = origins_temp
-
-        fshape = [ii for ii in footprint.shape if ii > 0]
-        if len(fshape) != input.ndim:
-            raise RuntimeError('footprint array has incorrect shape.')
-        for origin, lenf in zip(origins, fshape):
-            if (lenf // 2 + origin < 0) or (lenf // 2 + origin >= lenf):
-                raise ValueError("invalid origin")
-        if not footprint.flags.contiguous:
-            footprint = footprint.copy()
-        if structure is not None:
-            if len(structure.shape) != input.ndim:
-                raise RuntimeError("structure array has incorrect shape")
-            if num_axes != structure.ndim:
-                structure = np.expand_dims(
-                    structure,
-                    tuple(ax for ax in range(structure.ndim) if ax not in axes)
-                )
-            if not structure.flags.contiguous:
-                structure = structure.copy()
-        if not isinstance(mode, str) and isinstance(mode, Iterable):
-            raise RuntimeError(
-                "A sequence of modes is not supported for non-separable "
-                "footprints")
-        mode = _ni_support._extend_mode_to_code(mode)
-        _nd_image.min_or_max_filter(input, footprint, structure, output,
-                                    mode, cval, origins, minimum)
-    if temp_needed:
-        temp[...] = output
-        output = temp
-    return output
-
-
-@_ni_docstrings.docfiller
-def minimum_filter(input, size=None, footprint=None, output=None,
-                   mode="reflect", cval=0.0, origin=0, *, axes=None):
-    """Calculate a multidimensional minimum filter.
-
-    Parameters
-    ----------
-    %(input)s
-    %(size_foot)s
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-    %(origin_multiple)s
-    axes : tuple of int or None, optional
-        If None, `input` is filtered along all axes. Otherwise,
-        `input` is filtered along the specified axes. When `axes` is
-        specified, any tuples used for `size`, `origin`, and/or `mode`
-        must match the length of `axes`. The ith entry in any of these tuples
-        corresponds to the ith entry in `axes`.
-
-    Returns
-    -------
-    minimum_filter : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Notes
-    -----
-    A sequence of modes (one per axis) is only supported when the footprint is
-    separable. Otherwise, a single mode string must be provided.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> fig = plt.figure()
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-    >>> ascent = datasets.ascent()
-    >>> result = ndimage.minimum_filter(ascent, size=20)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result)
-    >>> plt.show()
-    """
-    return _min_or_max_filter(input, size, footprint, None, output, mode,
-                              cval, origin, 1, axes)
-
-
-@_ni_docstrings.docfiller
-def maximum_filter(input, size=None, footprint=None, output=None,
-                   mode="reflect", cval=0.0, origin=0, *, axes=None):
-    """Calculate a multidimensional maximum filter.
-
-    Parameters
-    ----------
-    %(input)s
-    %(size_foot)s
-    %(output)s
-    %(mode_multiple)s
-    %(cval)s
-    %(origin_multiple)s
-    axes : tuple of int or None, optional
-        If None, `input` is filtered along all axes. Otherwise,
-        `input` is filtered along the specified axes. When `axes` is
-        specified, any tuples used for `size`, `origin`, and/or `mode`
-        must match the length of `axes`. The ith entry in any of these tuples
-        corresponds to the ith entry in `axes`.
-
-    Returns
-    -------
-    maximum_filter : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Notes
-    -----
-    A sequence of modes (one per axis) is only supported when the footprint is
-    separable. Otherwise, a single mode string must be provided.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> fig = plt.figure()
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-    >>> ascent = datasets.ascent()
-    >>> result = ndimage.maximum_filter(ascent, size=20)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result)
-    >>> plt.show()
-    """
-    return _min_or_max_filter(input, size, footprint, None, output, mode,
-                              cval, origin, 0, axes)
-
-
-@_ni_docstrings.docfiller
-def _rank_filter(input, rank, size=None, footprint=None, output=None,
-                 mode="reflect", cval=0.0, origin=0, operation='rank',
-                 axes=None):
-    if (size is not None) and (footprint is not None):
-        warnings.warn("ignoring size because footprint is set",
-                      UserWarning, stacklevel=3)
-    input = np.asarray(input)
-    if np.iscomplexobj(input):
-        raise TypeError('Complex type not supported')
-    axes = _ni_support._check_axes(axes, input.ndim)
-    num_axes = len(axes)
-    origins = _ni_support._normalize_sequence(origin, num_axes)
-    if footprint is None:
-        if size is None:
-            raise RuntimeError("no footprint or filter size provided")
-        sizes = _ni_support._normalize_sequence(size, num_axes)
-        footprint = np.ones(sizes, dtype=bool)
-    else:
-        footprint = np.asarray(footprint, dtype=bool)
-    if num_axes < input.ndim:
-        # set origin = 0 for any axes not being filtered
-        origins_temp = [0,] * input.ndim
-        for o, ax in zip(origins, axes):
-            origins_temp[ax] = o
-        origins = origins_temp
-
-        if not isinstance(mode, str) and isinstance(mode, Iterable):
-            # set mode = 'constant' for any axes not being filtered
-            modes = _ni_support._normalize_sequence(mode, num_axes)
-            modes_temp = ['constant'] * input.ndim
-            for m, ax in zip(modes, axes):
-                modes_temp[ax] = m
-            mode = modes_temp
-
-        # insert singleton dimension along any non-filtered axes
-        if footprint.ndim != num_axes:
-            raise RuntimeError("footprint array has incorrect shape")
-        footprint = np.expand_dims(
-            footprint,
-            tuple(ax for ax in range(input.ndim) if ax not in axes)
-        )
-    fshape = [ii for ii in footprint.shape if ii > 0]
-    if len(fshape) != input.ndim:
-        raise RuntimeError('footprint array has incorrect shape.')
-    for origin, lenf in zip(origins, fshape):
-        if (lenf // 2 + origin < 0) or (lenf // 2 + origin >= lenf):
-            raise ValueError('invalid origin')
-    if not footprint.flags.contiguous:
-        footprint = footprint.copy()
-    filter_size = np.where(footprint, 1, 0).sum()
-    if operation == 'median':
-        rank = filter_size // 2
-    elif operation == 'percentile':
-        percentile = rank
-        if percentile < 0.0:
-            percentile += 100.0
-        if percentile < 0 or percentile > 100:
-            raise RuntimeError('invalid percentile')
-        if percentile == 100.0:
-            rank = filter_size - 1
-        else:
-            rank = int(float(filter_size) * percentile / 100.0)
-    if rank < 0:
-        rank += filter_size
-    if rank < 0 or rank >= filter_size:
-        raise RuntimeError('rank not within filter footprint size')
-    if rank == 0:
-        return minimum_filter(input, None, footprint, output, mode, cval,
-                              origins, axes=None)
-    elif rank == filter_size - 1:
-        return maximum_filter(input, None, footprint, output, mode, cval,
-                              origins, axes=None)
-    else:
-        output = _ni_support._get_output(output, input)
-        temp_needed = np.may_share_memory(input, output)
-        if temp_needed:
-            # input and output arrays cannot share memory
-            temp = output
-            output = _ni_support._get_output(output.dtype, input)
-        if not isinstance(mode, str) and isinstance(mode, Iterable):
-            raise RuntimeError(
-                "A sequence of modes is not supported by non-separable rank "
-                "filters")
-        mode = _ni_support._extend_mode_to_code(mode)
-        _nd_image.rank_filter(input, rank, footprint, output, mode, cval,
-                              origins)
-        if temp_needed:
-            temp[...] = output
-            output = temp
-        return output
-
-
-@_ni_docstrings.docfiller
-def rank_filter(input, rank, size=None, footprint=None, output=None,
-                mode="reflect", cval=0.0, origin=0, *, axes=None):
-    """Calculate a multidimensional rank filter.
-
-    Parameters
-    ----------
-    %(input)s
-    rank : int
-        The rank parameter may be less than zero, i.e., rank = -1
-        indicates the largest element.
-    %(size_foot)s
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin_multiple)s
-    axes : tuple of int or None, optional
-        If None, `input` is filtered along all axes. Otherwise,
-        `input` is filtered along the specified axes.
-
-    Returns
-    -------
-    rank_filter : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> fig = plt.figure()
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-    >>> ascent = datasets.ascent()
-    >>> result = ndimage.rank_filter(ascent, rank=42, size=20)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result)
-    >>> plt.show()
-    """
-    rank = operator.index(rank)
-    return _rank_filter(input, rank, size, footprint, output, mode, cval,
-                        origin, 'rank', axes=axes)
-
-
-@_ni_docstrings.docfiller
-def median_filter(input, size=None, footprint=None, output=None,
-                  mode="reflect", cval=0.0, origin=0, *, axes=None):
-    """
-    Calculate a multidimensional median filter.
-
-    Parameters
-    ----------
-    %(input)s
-    %(size_foot)s
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin_multiple)s
-    axes : tuple of int or None, optional
-        If None, `input` is filtered along all axes. Otherwise,
-        `input` is filtered along the specified axes.
-
-    Returns
-    -------
-    median_filter : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    See Also
-    --------
-    scipy.signal.medfilt2d
-
-    Notes
-    -----
-    For 2-dimensional images with ``uint8``, ``float32`` or ``float64`` dtypes
-    the specialised function `scipy.signal.medfilt2d` may be faster. It is
-    however limited to constant mode with ``cval=0``.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> fig = plt.figure()
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-    >>> ascent = datasets.ascent()
-    >>> result = ndimage.median_filter(ascent, size=20)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result)
-    >>> plt.show()
-    """
-    return _rank_filter(input, 0, size, footprint, output, mode, cval,
-                        origin, 'median', axes=axes)
-
-
-@_ni_docstrings.docfiller
-def percentile_filter(input, percentile, size=None, footprint=None,
-                      output=None, mode="reflect", cval=0.0, origin=0, *,
-                      axes=None):
-    """Calculate a multidimensional percentile filter.
-
-    Parameters
-    ----------
-    %(input)s
-    percentile : scalar
-        The percentile parameter may be less than zero, i.e.,
-        percentile = -20 equals percentile = 80
-    %(size_foot)s
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin_multiple)s
-    axes : tuple of int or None, optional
-        If None, `input` is filtered along all axes. Otherwise,
-        `input` is filtered along the specified axes.
-
-    Returns
-    -------
-    percentile_filter : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> fig = plt.figure()
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-    >>> ascent = datasets.ascent()
-    >>> result = ndimage.percentile_filter(ascent, percentile=20, size=20)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result)
-    >>> plt.show()
-    """
-    return _rank_filter(input, percentile, size, footprint, output, mode,
-                        cval, origin, 'percentile', axes=axes)
-
-
-@_ni_docstrings.docfiller
-def generic_filter1d(input, function, filter_size, axis=-1,
-                     output=None, mode="reflect", cval=0.0, origin=0,
-                     extra_arguments=(), extra_keywords=None):
-    """Calculate a 1-D filter along the given axis.
-
-    `generic_filter1d` iterates over the lines of the array, calling the
-    given function at each line. The arguments of the line are the
-    input line, and the output line. The input and output lines are 1-D
-    double arrays. The input line is extended appropriately according
-    to the filter size and origin. The output line must be modified
-    in-place with the result.
-
-    Parameters
-    ----------
-    %(input)s
-    function : {callable, scipy.LowLevelCallable}
-        Function to apply along given axis.
-    filter_size : scalar
-        Length of the filter.
-    %(axis)s
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin)s
-    %(extra_arguments)s
-    %(extra_keywords)s
-
-    Returns
-    -------
-    generic_filter1d : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Notes
-    -----
-    This function also accepts low-level callback functions with one of
-    the following signatures and wrapped in `scipy.LowLevelCallable`:
-
-    .. code:: c
-
-       int function(double *input_line, npy_intp input_length,
-                    double *output_line, npy_intp output_length,
-                    void *user_data)
-       int function(double *input_line, intptr_t input_length,
-                    double *output_line, intptr_t output_length,
-                    void *user_data)
-
-    The calling function iterates over the lines of the input and output
-    arrays, calling the callback function at each line. The current line
-    is extended according to the border conditions set by the calling
-    function, and the result is copied into the array that is passed
-    through ``input_line``. The length of the input line (after extension)
-    is passed through ``input_length``. The callback function should apply
-    the filter and store the result in the array passed through
-    ``output_line``. The length of the output line is passed through
-    ``output_length``. ``user_data`` is the data pointer provided
-    to `scipy.LowLevelCallable` as-is.
-
-    The callback function must return an integer error status that is zero
-    if something went wrong and one otherwise. If an error occurs, you should
-    normally set the python error status with an informative message
-    before returning, otherwise a default error message is set by the
-    calling function.
-
-    In addition, some other low-level function pointer specifications
-    are accepted, but these are for backward compatibility only and should
-    not be used in new code.
-
-    """
-    if extra_keywords is None:
-        extra_keywords = {}
-    input = np.asarray(input)
-    if np.iscomplexobj(input):
-        raise TypeError('Complex type not supported')
-    output = _ni_support._get_output(output, input)
-    if filter_size < 1:
-        raise RuntimeError('invalid filter size')
-    axis = normalize_axis_index(axis, input.ndim)
-    if (filter_size // 2 + origin < 0) or (filter_size // 2 + origin >=
-                                           filter_size):
-        raise ValueError('invalid origin')
-    mode = _ni_support._extend_mode_to_code(mode)
-    _nd_image.generic_filter1d(input, function, filter_size, axis, output,
-                               mode, cval, origin, extra_arguments,
-                               extra_keywords)
-    return output
-
-
-@_ni_docstrings.docfiller
-def generic_filter(input, function, size=None, footprint=None,
-                   output=None, mode="reflect", cval=0.0, origin=0,
-                   extra_arguments=(), extra_keywords=None):
-    """Calculate a multidimensional filter using the given function.
-
-    At each element the provided function is called. The input values
-    within the filter footprint at that element are passed to the function
-    as a 1-D array of double values.
-
-    Parameters
-    ----------
-    %(input)s
-    function : {callable, scipy.LowLevelCallable}
-        Function to apply at each element.
-    %(size_foot)s
-    %(output)s
-    %(mode_reflect)s
-    %(cval)s
-    %(origin_multiple)s
-    %(extra_arguments)s
-    %(extra_keywords)s
-
-    Returns
-    -------
-    generic_filter : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    Notes
-    -----
-    This function also accepts low-level callback functions with one of
-    the following signatures and wrapped in `scipy.LowLevelCallable`:
-
-    .. code:: c
-
-       int callback(double *buffer, npy_intp filter_size,
-                    double *return_value, void *user_data)
-       int callback(double *buffer, intptr_t filter_size,
-                    double *return_value, void *user_data)
-
-    The calling function iterates over the elements of the input and
-    output arrays, calling the callback function at each element. The
-    elements within the footprint of the filter at the current element are
-    passed through the ``buffer`` parameter, and the number of elements
-    within the footprint through ``filter_size``. The calculated value is
-    returned in ``return_value``. ``user_data`` is the data pointer provided
-    to `scipy.LowLevelCallable` as-is.
-
-    The callback function must return an integer error status that is zero
-    if something went wrong and one otherwise. If an error occurs, you should
-    normally set the python error status with an informative message
-    before returning, otherwise a default error message is set by the
-    calling function.
-
-    In addition, some other low-level function pointer specifications
-    are accepted, but these are for backward compatibility only and should
-    not be used in new code.
-
-    Examples
-    --------
-    Import the necessary modules and load the example image used for
-    filtering.
-
-    >>> import numpy as np
-    >>> from scipy import datasets
-    >>> from scipy.ndimage import zoom, generic_filter
-    >>> import matplotlib.pyplot as plt
-    >>> ascent = zoom(datasets.ascent(), 0.5)
-
-    Compute a maximum filter with kernel size 5 by passing a simple NumPy
-    aggregation function as argument to `function`.
-
-    >>> maximum_filter_result = generic_filter(ascent, np.amax, [5, 5])
-
-    While a maximmum filter could also directly be obtained using
-    `maximum_filter`, `generic_filter` allows generic Python function or
-    `scipy.LowLevelCallable` to be used as a filter. Here, we compute the
-    range between maximum and minimum value as an example for a kernel size
-    of 5.
-
-    >>> def custom_filter(image):
-    ...     return np.amax(image) - np.amin(image)
-    >>> custom_filter_result = generic_filter(ascent, custom_filter, [5, 5])
-
-    Plot the original and filtered images.
-
-    >>> fig, axes = plt.subplots(3, 1, figsize=(3, 9))
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> top, middle, bottom = axes
-    >>> for ax in axes:
-    ...     ax.set_axis_off()  # remove coordinate system
-    >>> top.imshow(ascent)
-    >>> top.set_title("Original image")
-    >>> middle.imshow(maximum_filter_result)
-    >>> middle.set_title("Maximum filter, Kernel: 5x5")
-    >>> bottom.imshow(custom_filter_result)
-    >>> bottom.set_title("Custom filter, Kernel: 5x5")
-    >>> fig.tight_layout()
-
-    """
-    if (size is not None) and (footprint is not None):
-        warnings.warn("ignoring size because footprint is set",
-                      UserWarning, stacklevel=2)
-    if extra_keywords is None:
-        extra_keywords = {}
-    input = np.asarray(input)
-    if np.iscomplexobj(input):
-        raise TypeError('Complex type not supported')
-    origins = _ni_support._normalize_sequence(origin, input.ndim)
-    if footprint is None:
-        if size is None:
-            raise RuntimeError("no footprint or filter size provided")
-        sizes = _ni_support._normalize_sequence(size, input.ndim)
-        footprint = np.ones(sizes, dtype=bool)
-    else:
-        footprint = np.asarray(footprint, dtype=bool)
-    fshape = [ii for ii in footprint.shape if ii > 0]
-    if len(fshape) != input.ndim:
-        raise RuntimeError('filter footprint array has incorrect shape.')
-    for origin, lenf in zip(origins, fshape):
-        if (lenf // 2 + origin < 0) or (lenf // 2 + origin >= lenf):
-            raise ValueError('invalid origin')
-    if not footprint.flags.contiguous:
-        footprint = footprint.copy()
-    output = _ni_support._get_output(output, input)
-    mode = _ni_support._extend_mode_to_code(mode)
-    _nd_image.generic_filter(input, function, footprint, output, mode,
-                             cval, origins, extra_arguments, extra_keywords)
-    return output
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_fourier.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_fourier.py
deleted file mode 100644
index bb5ffa6b9287cb740611aefba5f1f322011518cf..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_fourier.py
+++ /dev/null
@@ -1,306 +0,0 @@
-# Copyright (C) 2003-2005 Peter J. Verveer
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-#    products derived from this software without specific prior
-#    written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import numpy as np
-from scipy._lib._util import normalize_axis_index
-from . import _ni_support
-from . import _nd_image
-
-__all__ = ['fourier_gaussian', 'fourier_uniform', 'fourier_ellipsoid',
-           'fourier_shift']
-
-
-def _get_output_fourier(output, input):
-    if output is None:
-        if input.dtype.type in [np.complex64, np.complex128, np.float32]:
-            output = np.zeros(input.shape, dtype=input.dtype)
-        else:
-            output = np.zeros(input.shape, dtype=np.float64)
-    elif type(output) is type:
-        if output not in [np.complex64, np.complex128,
-                          np.float32, np.float64]:
-            raise RuntimeError("output type not supported")
-        output = np.zeros(input.shape, dtype=output)
-    elif output.shape != input.shape:
-        raise RuntimeError("output shape not correct")
-    return output
-
-
-def _get_output_fourier_complex(output, input):
-    if output is None:
-        if input.dtype.type in [np.complex64, np.complex128]:
-            output = np.zeros(input.shape, dtype=input.dtype)
-        else:
-            output = np.zeros(input.shape, dtype=np.complex128)
-    elif type(output) is type:
-        if output not in [np.complex64, np.complex128]:
-            raise RuntimeError("output type not supported")
-        output = np.zeros(input.shape, dtype=output)
-    elif output.shape != input.shape:
-        raise RuntimeError("output shape not correct")
-    return output
-
-
-def fourier_gaussian(input, sigma, n=-1, axis=-1, output=None):
-    """
-    Multidimensional Gaussian fourier filter.
-
-    The array is multiplied with the fourier transform of a Gaussian
-    kernel.
-
-    Parameters
-    ----------
-    input : array_like
-        The input array.
-    sigma : float or sequence
-        The sigma of the Gaussian kernel. If a float, `sigma` is the same for
-        all axes. If a sequence, `sigma` has to contain one value for each
-        axis.
-    n : int, optional
-        If `n` is negative (default), then the input is assumed to be the
-        result of a complex fft.
-        If `n` is larger than or equal to zero, the input is assumed to be the
-        result of a real fft, and `n` gives the length of the array before
-        transformation along the real transform direction.
-    axis : int, optional
-        The axis of the real transform.
-    output : ndarray, optional
-        If given, the result of filtering the input is placed in this array.
-
-    Returns
-    -------
-    fourier_gaussian : ndarray
-        The filtered input.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import numpy.fft
-    >>> import matplotlib.pyplot as plt
-    >>> fig, (ax1, ax2) = plt.subplots(1, 2)
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ascent = datasets.ascent()
-    >>> input_ = numpy.fft.fft2(ascent)
-    >>> result = ndimage.fourier_gaussian(input_, sigma=4)
-    >>> result = numpy.fft.ifft2(result)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result.real)  # the imaginary part is an artifact
-    >>> plt.show()
-    """
-    input = np.asarray(input)
-    output = _get_output_fourier(output, input)
-    axis = normalize_axis_index(axis, input.ndim)
-    sigmas = _ni_support._normalize_sequence(sigma, input.ndim)
-    sigmas = np.asarray(sigmas, dtype=np.float64)
-    if not sigmas.flags.contiguous:
-        sigmas = sigmas.copy()
-
-    _nd_image.fourier_filter(input, sigmas, n, axis, output, 0)
-    return output
-
-
-def fourier_uniform(input, size, n=-1, axis=-1, output=None):
-    """
-    Multidimensional uniform fourier filter.
-
-    The array is multiplied with the Fourier transform of a box of given
-    size.
-
-    Parameters
-    ----------
-    input : array_like
-        The input array.
-    size : float or sequence
-        The size of the box used for filtering.
-        If a float, `size` is the same for all axes. If a sequence, `size` has
-        to contain one value for each axis.
-    n : int, optional
-        If `n` is negative (default), then the input is assumed to be the
-        result of a complex fft.
-        If `n` is larger than or equal to zero, the input is assumed to be the
-        result of a real fft, and `n` gives the length of the array before
-        transformation along the real transform direction.
-    axis : int, optional
-        The axis of the real transform.
-    output : ndarray, optional
-        If given, the result of filtering the input is placed in this array.
-
-    Returns
-    -------
-    fourier_uniform : ndarray
-        The filtered input.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import numpy.fft
-    >>> import matplotlib.pyplot as plt
-    >>> fig, (ax1, ax2) = plt.subplots(1, 2)
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ascent = datasets.ascent()
-    >>> input_ = numpy.fft.fft2(ascent)
-    >>> result = ndimage.fourier_uniform(input_, size=20)
-    >>> result = numpy.fft.ifft2(result)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result.real)  # the imaginary part is an artifact
-    >>> plt.show()
-    """
-    input = np.asarray(input)
-    output = _get_output_fourier(output, input)
-    axis = normalize_axis_index(axis, input.ndim)
-    sizes = _ni_support._normalize_sequence(size, input.ndim)
-    sizes = np.asarray(sizes, dtype=np.float64)
-    if not sizes.flags.contiguous:
-        sizes = sizes.copy()
-    _nd_image.fourier_filter(input, sizes, n, axis, output, 1)
-    return output
-
-
-def fourier_ellipsoid(input, size, n=-1, axis=-1, output=None):
-    """
-    Multidimensional ellipsoid Fourier filter.
-
-    The array is multiplied with the fourier transform of an ellipsoid of
-    given sizes.
-
-    Parameters
-    ----------
-    input : array_like
-        The input array.
-    size : float or sequence
-        The size of the box used for filtering.
-        If a float, `size` is the same for all axes. If a sequence, `size` has
-        to contain one value for each axis.
-    n : int, optional
-        If `n` is negative (default), then the input is assumed to be the
-        result of a complex fft.
-        If `n` is larger than or equal to zero, the input is assumed to be the
-        result of a real fft, and `n` gives the length of the array before
-        transformation along the real transform direction.
-    axis : int, optional
-        The axis of the real transform.
-    output : ndarray, optional
-        If given, the result of filtering the input is placed in this array.
-
-    Returns
-    -------
-    fourier_ellipsoid : ndarray
-        The filtered input.
-
-    Notes
-    -----
-    This function is implemented for arrays of rank 1, 2, or 3.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import numpy.fft
-    >>> import matplotlib.pyplot as plt
-    >>> fig, (ax1, ax2) = plt.subplots(1, 2)
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ascent = datasets.ascent()
-    >>> input_ = numpy.fft.fft2(ascent)
-    >>> result = ndimage.fourier_ellipsoid(input_, size=20)
-    >>> result = numpy.fft.ifft2(result)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result.real)  # the imaginary part is an artifact
-    >>> plt.show()
-    """
-    input = np.asarray(input)
-    if input.ndim > 3:
-        raise NotImplementedError("Only 1d, 2d and 3d inputs are supported")
-    output = _get_output_fourier(output, input)
-    if output.size == 0:
-        # The C code has a bug that can result in a segfault with arrays
-        # that have size 0 (gh-17270), so check here.
-        return output
-    axis = normalize_axis_index(axis, input.ndim)
-    sizes = _ni_support._normalize_sequence(size, input.ndim)
-    sizes = np.asarray(sizes, dtype=np.float64)
-    if not sizes.flags.contiguous:
-        sizes = sizes.copy()
-    _nd_image.fourier_filter(input, sizes, n, axis, output, 2)
-    return output
-
-
-def fourier_shift(input, shift, n=-1, axis=-1, output=None):
-    """
-    Multidimensional Fourier shift filter.
-
-    The array is multiplied with the Fourier transform of a shift operation.
-
-    Parameters
-    ----------
-    input : array_like
-        The input array.
-    shift : float or sequence
-        The size of the box used for filtering.
-        If a float, `shift` is the same for all axes. If a sequence, `shift`
-        has to contain one value for each axis.
-    n : int, optional
-        If `n` is negative (default), then the input is assumed to be the
-        result of a complex fft.
-        If `n` is larger than or equal to zero, the input is assumed to be the
-        result of a real fft, and `n` gives the length of the array before
-        transformation along the real transform direction.
-    axis : int, optional
-        The axis of the real transform.
-    output : ndarray, optional
-        If given, the result of shifting the input is placed in this array.
-
-    Returns
-    -------
-    fourier_shift : ndarray
-        The shifted input.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> import numpy.fft
-    >>> fig, (ax1, ax2) = plt.subplots(1, 2)
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> ascent = datasets.ascent()
-    >>> input_ = numpy.fft.fft2(ascent)
-    >>> result = ndimage.fourier_shift(input_, shift=200)
-    >>> result = numpy.fft.ifft2(result)
-    >>> ax1.imshow(ascent)
-    >>> ax2.imshow(result.real)  # the imaginary part is an artifact
-    >>> plt.show()
-    """
-    input = np.asarray(input)
-    output = _get_output_fourier_complex(output, input)
-    axis = normalize_axis_index(axis, input.ndim)
-    shifts = _ni_support._normalize_sequence(shift, input.ndim)
-    shifts = np.asarray(shifts, dtype=np.float64)
-    if not shifts.flags.contiguous:
-        shifts = shifts.copy()
-    _nd_image.fourier_shift(input, shifts, n, axis, output)
-    return output
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_interpolation.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_interpolation.py
deleted file mode 100644
index 5b8827d66ece8c6f76c58b1889f1450e9db3e924..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_interpolation.py
+++ /dev/null
@@ -1,1001 +0,0 @@
-# Copyright (C) 2003-2005 Peter J. Verveer
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-#    products derived from this software without specific prior
-#    written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import itertools
-import warnings
-
-import numpy as np
-from scipy._lib._util import normalize_axis_index
-
-from scipy import special
-from . import _ni_support
-from . import _nd_image
-from ._ni_docstrings import docfiller
-
-
-__all__ = ['spline_filter1d', 'spline_filter', 'geometric_transform',
-           'map_coordinates', 'affine_transform', 'shift', 'zoom', 'rotate']
-
-
-@docfiller
-def spline_filter1d(input, order=3, axis=-1, output=np.float64,
-                    mode='mirror'):
-    """
-    Calculate a 1-D spline filter along the given axis.
-
-    The lines of the array along the given axis are filtered by a
-    spline filter. The order of the spline must be >= 2 and <= 5.
-
-    Parameters
-    ----------
-    %(input)s
-    order : int, optional
-        The order of the spline, default is 3.
-    axis : int, optional
-        The axis along which the spline filter is applied. Default is the last
-        axis.
-    output : ndarray or dtype, optional
-        The array in which to place the output, or the dtype of the returned
-        array. Default is ``numpy.float64``.
-    %(mode_interp_mirror)s
-
-    Returns
-    -------
-    spline_filter1d : ndarray
-        The filtered input.
-
-    See Also
-    --------
-    spline_filter : Multidimensional spline filter.
-
-    Notes
-    -----
-    All of the interpolation functions in `ndimage` do spline interpolation of
-    the input image. If using B-splines of `order > 1`, the input image
-    values have to be converted to B-spline coefficients first, which is
-    done by applying this 1-D filter sequentially along all
-    axes of the input. All functions that require B-spline coefficients
-    will automatically filter their inputs, a behavior controllable with
-    the `prefilter` keyword argument. For functions that accept a `mode`
-    parameter, the result will only be correct if it matches the `mode`
-    used when filtering.
-
-    For complex-valued `input`, this function processes the real and imaginary
-    components independently.
-
-    .. versionadded:: 1.6.0
-        Complex-valued support added.
-
-    Examples
-    --------
-    We can filter an image using 1-D spline along the given axis:
-
-    >>> from scipy.ndimage import spline_filter1d
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> orig_img = np.eye(20)  # create an image
-    >>> orig_img[10, :] = 1.0
-    >>> sp_filter_axis_0 = spline_filter1d(orig_img, axis=0)
-    >>> sp_filter_axis_1 = spline_filter1d(orig_img, axis=1)
-    >>> f, ax = plt.subplots(1, 3, sharex=True)
-    >>> for ind, data in enumerate([[orig_img, "original image"],
-    ...             [sp_filter_axis_0, "spline filter (axis=0)"],
-    ...             [sp_filter_axis_1, "spline filter (axis=1)"]]):
-    ...     ax[ind].imshow(data[0], cmap='gray_r')
-    ...     ax[ind].set_title(data[1])
-    >>> plt.tight_layout()
-    >>> plt.show()
-
-    """
-    if order < 0 or order > 5:
-        raise RuntimeError('spline order not supported')
-    input = np.asarray(input)
-    complex_output = np.iscomplexobj(input)
-    output = _ni_support._get_output(output, input,
-                                     complex_output=complex_output)
-    if complex_output:
-        spline_filter1d(input.real, order, axis, output.real, mode)
-        spline_filter1d(input.imag, order, axis, output.imag, mode)
-        return output
-    if order in [0, 1]:
-        output[...] = np.array(input)
-    else:
-        mode = _ni_support._extend_mode_to_code(mode)
-        axis = normalize_axis_index(axis, input.ndim)
-        _nd_image.spline_filter1d(input, order, axis, output, mode)
-    return output
-
-@docfiller
-def spline_filter(input, order=3, output=np.float64, mode='mirror'):
-    """
-    Multidimensional spline filter.
-
-    Parameters
-    ----------
-    %(input)s
-    order : int, optional
-        The order of the spline, default is 3.
-    output : ndarray or dtype, optional
-        The array in which to place the output, or the dtype of the returned
-        array. Default is ``numpy.float64``.
-    %(mode_interp_mirror)s
-
-    Returns
-    -------
-    spline_filter : ndarray
-        Filtered array. Has the same shape as `input`.
-
-    See Also
-    --------
-    spline_filter1d : Calculate a 1-D spline filter along the given axis.
-
-    Notes
-    -----
-    The multidimensional filter is implemented as a sequence of
-    1-D spline filters. The intermediate arrays are stored
-    in the same data type as the output. Therefore, for output types
-    with a limited precision, the results may be imprecise because
-    intermediate results may be stored with insufficient precision.
-
-    For complex-valued `input`, this function processes the real and imaginary
-    components independently.
-
-    .. versionadded:: 1.6.0
-        Complex-valued support added.
-
-    Examples
-    --------
-    We can filter an image using multidimentional splines:
-
-    >>> from scipy.ndimage import spline_filter
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> orig_img = np.eye(20)  # create an image
-    >>> orig_img[10, :] = 1.0
-    >>> sp_filter = spline_filter(orig_img, order=3)
-    >>> f, ax = plt.subplots(1, 2, sharex=True)
-    >>> for ind, data in enumerate([[orig_img, "original image"],
-    ...                             [sp_filter, "spline filter"]]):
-    ...     ax[ind].imshow(data[0], cmap='gray_r')
-    ...     ax[ind].set_title(data[1])
-    >>> plt.tight_layout()
-    >>> plt.show()
-
-    """
-    if order < 2 or order > 5:
-        raise RuntimeError('spline order not supported')
-    input = np.asarray(input)
-    complex_output = np.iscomplexobj(input)
-    output = _ni_support._get_output(output, input,
-                                     complex_output=complex_output)
-    if complex_output:
-        spline_filter(input.real, order, output.real, mode)
-        spline_filter(input.imag, order, output.imag, mode)
-        return output
-    if order not in [0, 1] and input.ndim > 0:
-        for axis in range(input.ndim):
-            spline_filter1d(input, order, axis, output=output, mode=mode)
-            input = output
-    else:
-        output[...] = input[...]
-    return output
-
-
-def _prepad_for_spline_filter(input, mode, cval):
-    if mode in ['nearest', 'grid-constant']:
-        npad = 12
-        if mode == 'grid-constant':
-            padded = np.pad(input, npad, mode='constant',
-                               constant_values=cval)
-        elif mode == 'nearest':
-            padded = np.pad(input, npad, mode='edge')
-    else:
-        # other modes have exact boundary conditions implemented so
-        # no prepadding is needed
-        npad = 0
-        padded = input
-    return padded, npad
-
-
-@docfiller
-def geometric_transform(input, mapping, output_shape=None,
-                        output=None, order=3,
-                        mode='constant', cval=0.0, prefilter=True,
-                        extra_arguments=(), extra_keywords={}):
-    """
-    Apply an arbitrary geometric transform.
-
-    The given mapping function is used to find, for each point in the
-    output, the corresponding coordinates in the input. The value of the
-    input at those coordinates is determined by spline interpolation of
-    the requested order.
-
-    Parameters
-    ----------
-    %(input)s
-    mapping : {callable, scipy.LowLevelCallable}
-        A callable object that accepts a tuple of length equal to the output
-        array rank, and returns the corresponding input coordinates as a tuple
-        of length equal to the input array rank.
-    output_shape : tuple of ints, optional
-        Shape tuple.
-    %(output)s
-    order : int, optional
-        The order of the spline interpolation, default is 3.
-        The order has to be in the range 0-5.
-    %(mode_interp_constant)s
-    %(cval)s
-    %(prefilter)s
-    extra_arguments : tuple, optional
-        Extra arguments passed to `mapping`.
-    extra_keywords : dict, optional
-        Extra keywords passed to `mapping`.
-
-    Returns
-    -------
-    output : ndarray
-        The filtered input.
-
-    See Also
-    --------
-    map_coordinates, affine_transform, spline_filter1d
-
-
-    Notes
-    -----
-    This function also accepts low-level callback functions with one
-    the following signatures and wrapped in `scipy.LowLevelCallable`:
-
-    .. code:: c
-
-       int mapping(npy_intp *output_coordinates, double *input_coordinates,
-                   int output_rank, int input_rank, void *user_data)
-       int mapping(intptr_t *output_coordinates, double *input_coordinates,
-                   int output_rank, int input_rank, void *user_data)
-
-    The calling function iterates over the elements of the output array,
-    calling the callback function at each element. The coordinates of the
-    current output element are passed through ``output_coordinates``. The
-    callback function must return the coordinates at which the input must
-    be interpolated in ``input_coordinates``. The rank of the input and
-    output arrays are given by ``input_rank`` and ``output_rank``
-    respectively. ``user_data`` is the data pointer provided
-    to `scipy.LowLevelCallable` as-is.
-
-    The callback function must return an integer error status that is zero
-    if something went wrong and one otherwise. If an error occurs, you should
-    normally set the Python error status with an informative message
-    before returning, otherwise a default error message is set by the
-    calling function.
-
-    In addition, some other low-level function pointer specifications
-    are accepted, but these are for backward compatibility only and should
-    not be used in new code.
-
-    For complex-valued `input`, this function transforms the real and imaginary
-    components independently.
-
-    .. versionadded:: 1.6.0
-        Complex-valued support added.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.ndimage import geometric_transform
-    >>> a = np.arange(12.).reshape((4, 3))
-    >>> def shift_func(output_coords):
-    ...     return (output_coords[0] - 0.5, output_coords[1] - 0.5)
-    ...
-    >>> geometric_transform(a, shift_func)
-    array([[ 0.   ,  0.   ,  0.   ],
-           [ 0.   ,  1.362,  2.738],
-           [ 0.   ,  4.812,  6.187],
-           [ 0.   ,  8.263,  9.637]])
-
-    >>> b = [1, 2, 3, 4, 5]
-    >>> def shift_func(output_coords):
-    ...     return (output_coords[0] - 3,)
-    ...
-    >>> geometric_transform(b, shift_func, mode='constant')
-    array([0, 0, 0, 1, 2])
-    >>> geometric_transform(b, shift_func, mode='nearest')
-    array([1, 1, 1, 1, 2])
-    >>> geometric_transform(b, shift_func, mode='reflect')
-    array([3, 2, 1, 1, 2])
-    >>> geometric_transform(b, shift_func, mode='wrap')
-    array([2, 3, 4, 1, 2])
-
-    """
-    if order < 0 or order > 5:
-        raise RuntimeError('spline order not supported')
-    input = np.asarray(input)
-    if output_shape is None:
-        output_shape = input.shape
-    if input.ndim < 1 or len(output_shape) < 1:
-        raise RuntimeError('input and output rank must be > 0')
-    complex_output = np.iscomplexobj(input)
-    output = _ni_support._get_output(output, input, shape=output_shape,
-                                     complex_output=complex_output)
-    if complex_output:
-        kwargs = dict(order=order, mode=mode, prefilter=prefilter,
-                      output_shape=output_shape,
-                      extra_arguments=extra_arguments,
-                      extra_keywords=extra_keywords)
-        geometric_transform(input.real, mapping, output=output.real,
-                            cval=np.real(cval), **kwargs)
-        geometric_transform(input.imag, mapping, output=output.imag,
-                            cval=np.imag(cval), **kwargs)
-        return output
-
-    if prefilter and order > 1:
-        padded, npad = _prepad_for_spline_filter(input, mode, cval)
-        filtered = spline_filter(padded, order, output=np.float64,
-                                 mode=mode)
-    else:
-        npad = 0
-        filtered = input
-    mode = _ni_support._extend_mode_to_code(mode)
-    _nd_image.geometric_transform(filtered, mapping, None, None, None, output,
-                                  order, mode, cval, npad, extra_arguments,
-                                  extra_keywords)
-    return output
-
-
-@docfiller
-def map_coordinates(input, coordinates, output=None, order=3,
-                    mode='constant', cval=0.0, prefilter=True):
-    """
-    Map the input array to new coordinates by interpolation.
-
-    The array of coordinates is used to find, for each point in the output,
-    the corresponding coordinates in the input. The value of the input at
-    those coordinates is determined by spline interpolation of the
-    requested order.
-
-    The shape of the output is derived from that of the coordinate
-    array by dropping the first axis. The values of the array along
-    the first axis are the coordinates in the input array at which the
-    output value is found.
-
-    Parameters
-    ----------
-    %(input)s
-    coordinates : array_like
-        The coordinates at which `input` is evaluated.
-    %(output)s
-    order : int, optional
-        The order of the spline interpolation, default is 3.
-        The order has to be in the range 0-5.
-    %(mode_interp_constant)s
-    %(cval)s
-    %(prefilter)s
-
-    Returns
-    -------
-    map_coordinates : ndarray
-        The result of transforming the input. The shape of the output is
-        derived from that of `coordinates` by dropping the first axis.
-
-    See Also
-    --------
-    spline_filter, geometric_transform, scipy.interpolate
-
-    Notes
-    -----
-    For complex-valued `input`, this function maps the real and imaginary
-    components independently.
-
-    .. versionadded:: 1.6.0
-        Complex-valued support added.
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.arange(12.).reshape((4, 3))
-    >>> a
-    array([[  0.,   1.,   2.],
-           [  3.,   4.,   5.],
-           [  6.,   7.,   8.],
-           [  9.,  10.,  11.]])
-    >>> ndimage.map_coordinates(a, [[0.5, 2], [0.5, 1]], order=1)
-    array([ 2.,  7.])
-
-    Above, the interpolated value of a[0.5, 0.5] gives output[0], while
-    a[2, 1] is output[1].
-
-    >>> inds = np.array([[0.5, 2], [0.5, 4]])
-    >>> ndimage.map_coordinates(a, inds, order=1, cval=-33.3)
-    array([  2. , -33.3])
-    >>> ndimage.map_coordinates(a, inds, order=1, mode='nearest')
-    array([ 2.,  8.])
-    >>> ndimage.map_coordinates(a, inds, order=1, cval=0, output=bool)
-    array([ True, False], dtype=bool)
-
-    """
-    if order < 0 or order > 5:
-        raise RuntimeError('spline order not supported')
-    input = np.asarray(input)
-    coordinates = np.asarray(coordinates)
-    if np.iscomplexobj(coordinates):
-        raise TypeError('Complex type not supported')
-    output_shape = coordinates.shape[1:]
-    if input.ndim < 1 or len(output_shape) < 1:
-        raise RuntimeError('input and output rank must be > 0')
-    if coordinates.shape[0] != input.ndim:
-        raise RuntimeError('invalid shape for coordinate array')
-    complex_output = np.iscomplexobj(input)
-    output = _ni_support._get_output(output, input, shape=output_shape,
-                                     complex_output=complex_output)
-    if complex_output:
-        kwargs = dict(order=order, mode=mode, prefilter=prefilter)
-        map_coordinates(input.real, coordinates, output=output.real,
-                        cval=np.real(cval), **kwargs)
-        map_coordinates(input.imag, coordinates, output=output.imag,
-                        cval=np.imag(cval), **kwargs)
-        return output
-    if prefilter and order > 1:
-        padded, npad = _prepad_for_spline_filter(input, mode, cval)
-        filtered = spline_filter(padded, order, output=np.float64, mode=mode)
-    else:
-        npad = 0
-        filtered = input
-    mode = _ni_support._extend_mode_to_code(mode)
-    _nd_image.geometric_transform(filtered, None, coordinates, None, None,
-                                  output, order, mode, cval, npad, None, None)
-    return output
-
-
-@docfiller
-def affine_transform(input, matrix, offset=0.0, output_shape=None,
-                     output=None, order=3,
-                     mode='constant', cval=0.0, prefilter=True):
-    """
-    Apply an affine transformation.
-
-    Given an output image pixel index vector ``o``, the pixel value
-    is determined from the input image at position
-    ``np.dot(matrix, o) + offset``.
-
-    This does 'pull' (or 'backward') resampling, transforming the output space
-    to the input to locate data. Affine transformations are often described in
-    the 'push' (or 'forward') direction, transforming input to output. If you
-    have a matrix for the 'push' transformation, use its inverse
-    (:func:`numpy.linalg.inv`) in this function.
-
-    Parameters
-    ----------
-    %(input)s
-    matrix : ndarray
-        The inverse coordinate transformation matrix, mapping output
-        coordinates to input coordinates. If ``ndim`` is the number of
-        dimensions of ``input``, the given matrix must have one of the
-        following shapes:
-
-            - ``(ndim, ndim)``: the linear transformation matrix for each
-              output coordinate.
-            - ``(ndim,)``: assume that the 2-D transformation matrix is
-              diagonal, with the diagonal specified by the given value. A more
-              efficient algorithm is then used that exploits the separability
-              of the problem.
-            - ``(ndim + 1, ndim + 1)``: assume that the transformation is
-              specified using homogeneous coordinates [1]_. In this case, any
-              value passed to ``offset`` is ignored.
-            - ``(ndim, ndim + 1)``: as above, but the bottom row of a
-              homogeneous transformation matrix is always ``[0, 0, ..., 1]``,
-              and may be omitted.
-
-    offset : float or sequence, optional
-        The offset into the array where the transform is applied. If a float,
-        `offset` is the same for each axis. If a sequence, `offset` should
-        contain one value for each axis.
-    output_shape : tuple of ints, optional
-        Shape tuple.
-    %(output)s
-    order : int, optional
-        The order of the spline interpolation, default is 3.
-        The order has to be in the range 0-5.
-    %(mode_interp_constant)s
-    %(cval)s
-    %(prefilter)s
-
-    Returns
-    -------
-    affine_transform : ndarray
-        The transformed input.
-
-    Notes
-    -----
-    The given matrix and offset are used to find for each point in the
-    output the corresponding coordinates in the input by an affine
-    transformation. The value of the input at those coordinates is
-    determined by spline interpolation of the requested order. Points
-    outside the boundaries of the input are filled according to the given
-    mode.
-
-    .. versionchanged:: 0.18.0
-        Previously, the exact interpretation of the affine transformation
-        depended on whether the matrix was supplied as a 1-D or a
-        2-D array. If a 1-D array was supplied
-        to the matrix parameter, the output pixel value at index ``o``
-        was determined from the input image at position
-        ``matrix * (o + offset)``.
-
-    For complex-valued `input`, this function transforms the real and imaginary
-    components independently.
-
-    .. versionadded:: 1.6.0
-        Complex-valued support added.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Homogeneous_coordinates
-    """
-    if order < 0 or order > 5:
-        raise RuntimeError('spline order not supported')
-    input = np.asarray(input)
-    if output_shape is None:
-        if isinstance(output, np.ndarray):
-            output_shape = output.shape
-        else:
-            output_shape = input.shape
-    if input.ndim < 1 or len(output_shape) < 1:
-        raise RuntimeError('input and output rank must be > 0')
-    complex_output = np.iscomplexobj(input)
-    output = _ni_support._get_output(output, input, shape=output_shape,
-                                     complex_output=complex_output)
-    if complex_output:
-        kwargs = dict(offset=offset, output_shape=output_shape, order=order,
-                      mode=mode, prefilter=prefilter)
-        affine_transform(input.real, matrix, output=output.real,
-                         cval=np.real(cval), **kwargs)
-        affine_transform(input.imag, matrix, output=output.imag,
-                         cval=np.imag(cval), **kwargs)
-        return output
-    if prefilter and order > 1:
-        padded, npad = _prepad_for_spline_filter(input, mode, cval)
-        filtered = spline_filter(padded, order, output=np.float64, mode=mode)
-    else:
-        npad = 0
-        filtered = input
-    mode = _ni_support._extend_mode_to_code(mode)
-    matrix = np.asarray(matrix, dtype=np.float64)
-    if matrix.ndim not in [1, 2] or matrix.shape[0] < 1:
-        raise RuntimeError('no proper affine matrix provided')
-    if (matrix.ndim == 2 and matrix.shape[1] == input.ndim + 1 and
-            (matrix.shape[0] in [input.ndim, input.ndim + 1])):
-        if matrix.shape[0] == input.ndim + 1:
-            exptd = [0] * input.ndim + [1]
-            if not np.all(matrix[input.ndim] == exptd):
-                msg = (f'Expected homogeneous transformation matrix with '
-                       f'shape {matrix.shape} for image shape {input.shape}, '
-                       f'but bottom row was not equal to {exptd}')
-                raise ValueError(msg)
-        # assume input is homogeneous coordinate transformation matrix
-        offset = matrix[:input.ndim, input.ndim]
-        matrix = matrix[:input.ndim, :input.ndim]
-    if matrix.shape[0] != input.ndim:
-        raise RuntimeError('affine matrix has wrong number of rows')
-    if matrix.ndim == 2 and matrix.shape[1] != output.ndim:
-        raise RuntimeError('affine matrix has wrong number of columns')
-    if not matrix.flags.contiguous:
-        matrix = matrix.copy()
-    offset = _ni_support._normalize_sequence(offset, input.ndim)
-    offset = np.asarray(offset, dtype=np.float64)
-    if offset.ndim != 1 or offset.shape[0] < 1:
-        raise RuntimeError('no proper offset provided')
-    if not offset.flags.contiguous:
-        offset = offset.copy()
-    if matrix.ndim == 1:
-        warnings.warn(
-            "The behavior of affine_transform with a 1-D "
-            "array supplied for the matrix parameter has changed in "
-            "SciPy 0.18.0.",
-            stacklevel=2
-        )
-        _nd_image.zoom_shift(filtered, matrix, offset/matrix, output, order,
-                             mode, cval, npad, False)
-    else:
-        _nd_image.geometric_transform(filtered, None, None, matrix, offset,
-                                      output, order, mode, cval, npad, None,
-                                      None)
-    return output
-
-
-@docfiller
-def shift(input, shift, output=None, order=3, mode='constant', cval=0.0,
-          prefilter=True):
-    """
-    Shift an array.
-
-    The array is shifted using spline interpolation of the requested order.
-    Points outside the boundaries of the input are filled according to the
-    given mode.
-
-    Parameters
-    ----------
-    %(input)s
-    shift : float or sequence
-        The shift along the axes. If a float, `shift` is the same for each
-        axis. If a sequence, `shift` should contain one value for each axis.
-    %(output)s
-    order : int, optional
-        The order of the spline interpolation, default is 3.
-        The order has to be in the range 0-5.
-    %(mode_interp_constant)s
-    %(cval)s
-    %(prefilter)s
-
-    Returns
-    -------
-    shift : ndarray
-        The shifted input.
-
-    See Also
-    --------
-    affine_transform : Affine transformations
-
-    Notes
-    -----
-    For complex-valued `input`, this function shifts the real and imaginary
-    components independently.
-
-    .. versionadded:: 1.6.0
-        Complex-valued support added.
-
-    Examples
-    --------
-    Import the necessary modules and an exemplary image.
-
-    >>> from scipy.ndimage import shift
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy import datasets
-    >>> image = datasets.ascent()
-
-    Shift the image vertically by 20 pixels.
-
-    >>> image_shifted_vertically = shift(image, (20, 0))
-
-    Shift the image vertically by -200 pixels and horizontally by 100 pixels.
-
-    >>> image_shifted_both_directions = shift(image, (-200, 100))
-
-    Plot the original and the shifted images.
-
-    >>> fig, axes = plt.subplots(3, 1, figsize=(4, 12))
-    >>> plt.gray()  # show the filtered result in grayscale
-    >>> top, middle, bottom = axes
-    >>> for ax in axes:
-    ...     ax.set_axis_off()  # remove coordinate system
-    >>> top.imshow(image)
-    >>> top.set_title("Original image")
-    >>> middle.imshow(image_shifted_vertically)
-    >>> middle.set_title("Vertically shifted image")
-    >>> bottom.imshow(image_shifted_both_directions)
-    >>> bottom.set_title("Image shifted in both directions")
-    >>> fig.tight_layout()
-    """
-    if order < 0 or order > 5:
-        raise RuntimeError('spline order not supported')
-    input = np.asarray(input)
-    if input.ndim < 1:
-        raise RuntimeError('input and output rank must be > 0')
-    complex_output = np.iscomplexobj(input)
-    output = _ni_support._get_output(output, input, complex_output=complex_output)
-    if complex_output:
-        # import under different name to avoid confusion with shift parameter
-        from scipy.ndimage._interpolation import shift as _shift
-
-        kwargs = dict(order=order, mode=mode, prefilter=prefilter)
-        _shift(input.real, shift, output=output.real, cval=np.real(cval), **kwargs)
-        _shift(input.imag, shift, output=output.imag, cval=np.imag(cval), **kwargs)
-        return output
-    if prefilter and order > 1:
-        padded, npad = _prepad_for_spline_filter(input, mode, cval)
-        filtered = spline_filter(padded, order, output=np.float64, mode=mode)
-    else:
-        npad = 0
-        filtered = input
-    mode = _ni_support._extend_mode_to_code(mode)
-    shift = _ni_support._normalize_sequence(shift, input.ndim)
-    shift = [-ii for ii in shift]
-    shift = np.asarray(shift, dtype=np.float64)
-    if not shift.flags.contiguous:
-        shift = shift.copy()
-    _nd_image.zoom_shift(filtered, None, shift, output, order, mode, cval,
-                         npad, False)
-    return output
-
-
-@docfiller
-def zoom(input, zoom, output=None, order=3, mode='constant', cval=0.0,
-         prefilter=True, *, grid_mode=False):
-    """
-    Zoom an array.
-
-    The array is zoomed using spline interpolation of the requested order.
-
-    Parameters
-    ----------
-    %(input)s
-    zoom : float or sequence
-        The zoom factor along the axes. If a float, `zoom` is the same for each
-        axis. If a sequence, `zoom` should contain one value for each axis.
-    %(output)s
-    order : int, optional
-        The order of the spline interpolation, default is 3.
-        The order has to be in the range 0-5.
-    %(mode_interp_constant)s
-    %(cval)s
-    %(prefilter)s
-    grid_mode : bool, optional
-        If False, the distance from the pixel centers is zoomed. Otherwise, the
-        distance including the full pixel extent is used. For example, a 1d
-        signal of length 5 is considered to have length 4 when `grid_mode` is
-        False, but length 5 when `grid_mode` is True. See the following
-        visual illustration:
-
-        .. code-block:: text
-
-                | pixel 1 | pixel 2 | pixel 3 | pixel 4 | pixel 5 |
-                     |<-------------------------------------->|
-                                        vs.
-                |<----------------------------------------------->|
-
-        The starting point of the arrow in the diagram above corresponds to
-        coordinate location 0 in each mode.
-
-    Returns
-    -------
-    zoom : ndarray
-        The zoomed input.
-
-    Notes
-    -----
-    For complex-valued `input`, this function zooms the real and imaginary
-    components independently.
-
-    .. versionadded:: 1.6.0
-        Complex-valued support added.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-
-    >>> fig = plt.figure()
-    >>> ax1 = fig.add_subplot(121)  # left side
-    >>> ax2 = fig.add_subplot(122)  # right side
-    >>> ascent = datasets.ascent()
-    >>> result = ndimage.zoom(ascent, 3.0)
-    >>> ax1.imshow(ascent, vmin=0, vmax=255)
-    >>> ax2.imshow(result, vmin=0, vmax=255)
-    >>> plt.show()
-
-    >>> print(ascent.shape)
-    (512, 512)
-
-    >>> print(result.shape)
-    (1536, 1536)
-    """
-    if order < 0 or order > 5:
-        raise RuntimeError('spline order not supported')
-    input = np.asarray(input)
-    if input.ndim < 1:
-        raise RuntimeError('input and output rank must be > 0')
-    zoom = _ni_support._normalize_sequence(zoom, input.ndim)
-    output_shape = tuple(
-            [int(round(ii * jj)) for ii, jj in zip(input.shape, zoom)])
-    complex_output = np.iscomplexobj(input)
-    output = _ni_support._get_output(output, input, shape=output_shape,
-                                     complex_output=complex_output)
-    if complex_output:
-        # import under different name to avoid confusion with zoom parameter
-        from scipy.ndimage._interpolation import zoom as _zoom
-
-        kwargs = dict(order=order, mode=mode, prefilter=prefilter)
-        _zoom(input.real, zoom, output=output.real, cval=np.real(cval), **kwargs)
-        _zoom(input.imag, zoom, output=output.imag, cval=np.imag(cval), **kwargs)
-        return output
-    if prefilter and order > 1:
-        padded, npad = _prepad_for_spline_filter(input, mode, cval)
-        filtered = spline_filter(padded, order, output=np.float64, mode=mode)
-    else:
-        npad = 0
-        filtered = input
-    if grid_mode:
-        # warn about modes that may have surprising behavior
-        suggest_mode = None
-        if mode == 'constant':
-            suggest_mode = 'grid-constant'
-        elif mode == 'wrap':
-            suggest_mode = 'grid-wrap'
-        if suggest_mode is not None:
-            warnings.warn(
-                (f"It is recommended to use mode = {suggest_mode} instead of {mode} "
-                 f"when grid_mode is True."),
-                stacklevel=2
-            )
-    mode = _ni_support._extend_mode_to_code(mode)
-
-    zoom_div = np.array(output_shape)
-    zoom_nominator = np.array(input.shape)
-    if not grid_mode:
-        zoom_div -= 1
-        zoom_nominator -= 1
-
-    # Zooming to infinite values is unpredictable, so just choose
-    # zoom factor 1 instead
-    zoom = np.divide(zoom_nominator, zoom_div,
-                     out=np.ones_like(input.shape, dtype=np.float64),
-                     where=zoom_div != 0)
-    zoom = np.ascontiguousarray(zoom)
-    _nd_image.zoom_shift(filtered, zoom, None, output, order, mode, cval, npad,
-                         grid_mode)
-    return output
-
-
-@docfiller
-def rotate(input, angle, axes=(1, 0), reshape=True, output=None, order=3,
-           mode='constant', cval=0.0, prefilter=True):
-    """
-    Rotate an array.
-
-    The array is rotated in the plane defined by the two axes given by the
-    `axes` parameter using spline interpolation of the requested order.
-
-    Parameters
-    ----------
-    %(input)s
-    angle : float
-        The rotation angle in degrees.
-    axes : tuple of 2 ints, optional
-        The two axes that define the plane of rotation. Default is the first
-        two axes.
-    reshape : bool, optional
-        If `reshape` is true, the output shape is adapted so that the input
-        array is contained completely in the output. Default is True.
-    %(output)s
-    order : int, optional
-        The order of the spline interpolation, default is 3.
-        The order has to be in the range 0-5.
-    %(mode_interp_constant)s
-    %(cval)s
-    %(prefilter)s
-
-    Returns
-    -------
-    rotate : ndarray
-        The rotated input.
-
-    Notes
-    -----
-    For complex-valued `input`, this function rotates the real and imaginary
-    components independently.
-
-    .. versionadded:: 1.6.0
-        Complex-valued support added.
-
-    Examples
-    --------
-    >>> from scipy import ndimage, datasets
-    >>> import matplotlib.pyplot as plt
-    >>> fig = plt.figure(figsize=(10, 3))
-    >>> ax1, ax2, ax3 = fig.subplots(1, 3)
-    >>> img = datasets.ascent()
-    >>> img_45 = ndimage.rotate(img, 45, reshape=False)
-    >>> full_img_45 = ndimage.rotate(img, 45, reshape=True)
-    >>> ax1.imshow(img, cmap='gray')
-    >>> ax1.set_axis_off()
-    >>> ax2.imshow(img_45, cmap='gray')
-    >>> ax2.set_axis_off()
-    >>> ax3.imshow(full_img_45, cmap='gray')
-    >>> ax3.set_axis_off()
-    >>> fig.set_layout_engine('tight')
-    >>> plt.show()
-    >>> print(img.shape)
-    (512, 512)
-    >>> print(img_45.shape)
-    (512, 512)
-    >>> print(full_img_45.shape)
-    (724, 724)
-
-    """
-    input_arr = np.asarray(input)
-    ndim = input_arr.ndim
-
-    if ndim < 2:
-        raise ValueError('input array should be at least 2D')
-
-    axes = list(axes)
-
-    if len(axes) != 2:
-        raise ValueError('axes should contain exactly two values')
-
-    if not all([float(ax).is_integer() for ax in axes]):
-        raise ValueError('axes should contain only integer values')
-
-    if axes[0] < 0:
-        axes[0] += ndim
-    if axes[1] < 0:
-        axes[1] += ndim
-    if axes[0] < 0 or axes[1] < 0 or axes[0] >= ndim or axes[1] >= ndim:
-        raise ValueError('invalid rotation plane specified')
-
-    axes.sort()
-
-    c, s = special.cosdg(angle), special.sindg(angle)
-
-    rot_matrix = np.array([[c, s],
-                           [-s, c]])
-
-    img_shape = np.asarray(input_arr.shape)
-    in_plane_shape = img_shape[axes]
-    if reshape:
-        # Compute transformed input bounds
-        iy, ix = in_plane_shape
-        out_bounds = rot_matrix @ [[0, 0, iy, iy],
-                                   [0, ix, 0, ix]]
-        # Compute the shape of the transformed input plane
-        out_plane_shape = (np.ptp(out_bounds, axis=1) + 0.5).astype(int)
-    else:
-        out_plane_shape = img_shape[axes]
-
-    out_center = rot_matrix @ ((out_plane_shape - 1) / 2)
-    in_center = (in_plane_shape - 1) / 2
-    offset = in_center - out_center
-
-    output_shape = img_shape
-    output_shape[axes] = out_plane_shape
-    output_shape = tuple(output_shape)
-
-    complex_output = np.iscomplexobj(input_arr)
-    output = _ni_support._get_output(output, input_arr, shape=output_shape,
-                                     complex_output=complex_output)
-
-    if ndim <= 2:
-        affine_transform(input_arr, rot_matrix, offset, output_shape, output,
-                         order, mode, cval, prefilter)
-    else:
-        # If ndim > 2, the rotation is applied over all the planes
-        # parallel to axes
-        planes_coord = itertools.product(
-            *[[slice(None)] if ax in axes else range(img_shape[ax])
-              for ax in range(ndim)])
-
-        out_plane_shape = tuple(out_plane_shape)
-
-        for coordinates in planes_coord:
-            ia = input_arr[coordinates]
-            oa = output[coordinates]
-            affine_transform(ia, rot_matrix, offset, out_plane_shape,
-                             oa, order, mode, cval, prefilter)
-
-    return output
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_measurements.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_measurements.py
deleted file mode 100644
index bcd83df42be3708231870cf5eff977a6388cc3a1..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_measurements.py
+++ /dev/null
@@ -1,1680 +0,0 @@
-# Copyright (C) 2003-2005 Peter J. Verveer
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-#    products derived from this software without specific prior
-#    written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import numpy as np
-from . import _ni_support
-from . import _ni_label
-from . import _nd_image
-from . import _morphology
-
-__all__ = ['label', 'find_objects', 'labeled_comprehension', 'sum', 'mean',
-           'variance', 'standard_deviation', 'minimum', 'maximum', 'median',
-           'minimum_position', 'maximum_position', 'extrema', 'center_of_mass',
-           'histogram', 'watershed_ift', 'sum_labels', 'value_indices']
-
-
-def label(input, structure=None, output=None):
-    """
-    Label features in an array.
-
-    Parameters
-    ----------
-    input : array_like
-        An array-like object to be labeled. Any non-zero values in `input` are
-        counted as features and zero values are considered the background.
-    structure : array_like, optional
-        A structuring element that defines feature connections.
-        `structure` must be centrosymmetric
-        (see Notes).
-        If no structuring element is provided,
-        one is automatically generated with a squared connectivity equal to
-        one.  That is, for a 2-D `input` array, the default structuring element
-        is::
-
-            [[0,1,0],
-             [1,1,1],
-             [0,1,0]]
-
-    output : (None, data-type, array_like), optional
-        If `output` is a data type, it specifies the type of the resulting
-        labeled feature array.
-        If `output` is an array-like object, then `output` will be updated
-        with the labeled features from this function.  This function can
-        operate in-place, by passing output=input.
-        Note that the output must be able to store the largest label, or this
-        function will raise an Exception.
-
-    Returns
-    -------
-    label : ndarray or int
-        An integer ndarray where each unique feature in `input` has a unique
-        label in the returned array.
-    num_features : int
-        How many objects were found.
-
-        If `output` is None, this function returns a tuple of
-        (`labeled_array`, `num_features`).
-
-        If `output` is a ndarray, then it will be updated with values in
-        `labeled_array` and only `num_features` will be returned by this
-        function.
-
-    See Also
-    --------
-    find_objects : generate a list of slices for the labeled features (or
-                   objects); useful for finding features' position or
-                   dimensions
-
-    Notes
-    -----
-    A centrosymmetric matrix is a matrix that is symmetric about the center.
-    See [1]_ for more information.
-
-    The `structure` matrix must be centrosymmetric to ensure
-    two-way connections.
-    For instance, if the `structure` matrix is not centrosymmetric
-    and is defined as::
-
-        [[0,1,0],
-         [1,1,0],
-         [0,0,0]]
-
-    and the `input` is::
-
-        [[1,2],
-         [0,3]]
-
-    then the structure matrix would indicate the
-    entry 2 in the input is connected to 1,
-    but 1 is not connected to 2.
-
-    References
-    ----------
-    .. [1] James R. Weaver, "Centrosymmetric (cross-symmetric)
-       matrices, their basic properties, eigenvalues, and
-       eigenvectors." The American Mathematical Monthly 92.10
-       (1985): 711-717.
-
-    Examples
-    --------
-    Create an image with some features, then label it using the default
-    (cross-shaped) structuring element:
-
-    >>> from scipy.ndimage import label, generate_binary_structure
-    >>> import numpy as np
-    >>> a = np.array([[0,0,1,1,0,0],
-    ...               [0,0,0,1,0,0],
-    ...               [1,1,0,0,1,0],
-    ...               [0,0,0,1,0,0]])
-    >>> labeled_array, num_features = label(a)
-
-    Each of the 4 features are labeled with a different integer:
-
-    >>> num_features
-    4
-    >>> labeled_array
-    array([[0, 0, 1, 1, 0, 0],
-           [0, 0, 0, 1, 0, 0],
-           [2, 2, 0, 0, 3, 0],
-           [0, 0, 0, 4, 0, 0]])
-
-    Generate a structuring element that will consider features connected even
-    if they touch diagonally:
-
-    >>> s = generate_binary_structure(2,2)
-
-    or,
-
-    >>> s = [[1,1,1],
-    ...      [1,1,1],
-    ...      [1,1,1]]
-
-    Label the image using the new structuring element:
-
-    >>> labeled_array, num_features = label(a, structure=s)
-
-    Show the 2 labeled features (note that features 1, 3, and 4 from above are
-    now considered a single feature):
-
-    >>> num_features
-    2
-    >>> labeled_array
-    array([[0, 0, 1, 1, 0, 0],
-           [0, 0, 0, 1, 0, 0],
-           [2, 2, 0, 0, 1, 0],
-           [0, 0, 0, 1, 0, 0]])
-
-    """
-    input = np.asarray(input)
-    if np.iscomplexobj(input):
-        raise TypeError('Complex type not supported')
-    if structure is None:
-        structure = _morphology.generate_binary_structure(input.ndim, 1)
-    structure = np.asarray(structure, dtype=bool)
-    if structure.ndim != input.ndim:
-        raise RuntimeError('structure and input must have equal rank')
-    for ii in structure.shape:
-        if ii != 3:
-            raise ValueError('structure dimensions must be equal to 3')
-
-    # Use 32 bits if it's large enough for this image.
-    # _ni_label.label() needs two entries for background and
-    # foreground tracking
-    need_64bits = input.size >= (2**31 - 2)
-
-    if isinstance(output, np.ndarray):
-        if output.shape != input.shape:
-            raise ValueError("output shape not correct")
-        caller_provided_output = True
-    else:
-        caller_provided_output = False
-        if output is None:
-            output = np.empty(input.shape, np.intp if need_64bits else np.int32)
-        else:
-            output = np.empty(input.shape, output)
-
-    # handle scalars, 0-D arrays
-    if input.ndim == 0 or input.size == 0:
-        if input.ndim == 0:
-            # scalar
-            maxlabel = 1 if (input != 0) else 0
-            output[...] = maxlabel
-        else:
-            # 0-D
-            maxlabel = 0
-        if caller_provided_output:
-            return maxlabel
-        else:
-            return output, maxlabel
-
-    try:
-        max_label = _ni_label._label(input, structure, output)
-    except _ni_label.NeedMoreBits as e:
-        # Make another attempt with enough bits, then try to cast to the
-        # new type.
-        tmp_output = np.empty(input.shape, np.intp if need_64bits else np.int32)
-        max_label = _ni_label._label(input, structure, tmp_output)
-        output[...] = tmp_output[...]
-        if not np.all(output == tmp_output):
-            # refuse to return bad results
-            raise RuntimeError(
-                "insufficient bit-depth in requested output type"
-            ) from e
-
-    if caller_provided_output:
-        # result was written in-place
-        return max_label
-    else:
-        return output, max_label
-
-
-def find_objects(input, max_label=0):
-    """
-    Find objects in a labeled array.
-
-    Parameters
-    ----------
-    input : ndarray of ints
-        Array containing objects defined by different labels. Labels with
-        value 0 are ignored.
-    max_label : int, optional
-        Maximum label to be searched for in `input`. If max_label is not
-        given, the positions of all objects are returned.
-
-    Returns
-    -------
-    object_slices : list of tuples
-        A list of tuples, with each tuple containing N slices (with N the
-        dimension of the input array). Slices correspond to the minimal
-        parallelepiped that contains the object. If a number is missing,
-        None is returned instead of a slice. The label ``l`` corresponds to
-        the index ``l-1`` in the returned list.
-
-    See Also
-    --------
-    label, center_of_mass
-
-    Notes
-    -----
-    This function is very useful for isolating a volume of interest inside
-    a 3-D array, that cannot be "seen through".
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.zeros((6,6), dtype=int)
-    >>> a[2:4, 2:4] = 1
-    >>> a[4, 4] = 1
-    >>> a[:2, :3] = 2
-    >>> a[0, 5] = 3
-    >>> a
-    array([[2, 2, 2, 0, 0, 3],
-           [2, 2, 2, 0, 0, 0],
-           [0, 0, 1, 1, 0, 0],
-           [0, 0, 1, 1, 0, 0],
-           [0, 0, 0, 0, 1, 0],
-           [0, 0, 0, 0, 0, 0]])
-    >>> ndimage.find_objects(a)
-    [(slice(2, 5, None), slice(2, 5, None)),
-     (slice(0, 2, None), slice(0, 3, None)),
-     (slice(0, 1, None), slice(5, 6, None))]
-    >>> ndimage.find_objects(a, max_label=2)
-    [(slice(2, 5, None), slice(2, 5, None)), (slice(0, 2, None), slice(0, 3, None))]
-    >>> ndimage.find_objects(a == 1, max_label=2)
-    [(slice(2, 5, None), slice(2, 5, None)), None]
-
-    >>> loc = ndimage.find_objects(a)[0]
-    >>> a[loc]
-    array([[1, 1, 0],
-           [1, 1, 0],
-           [0, 0, 1]])
-
-    """
-    input = np.asarray(input)
-    if np.iscomplexobj(input):
-        raise TypeError('Complex type not supported')
-
-    if max_label < 1:
-        max_label = input.max()
-
-    return _nd_image.find_objects(input, max_label)
-
-
-def value_indices(arr, *, ignore_value=None):
-    """
-    Find indices of each distinct value in given array.
-
-    Parameters
-    ----------
-    arr : ndarray of ints
-        Array containing integer values.
-    ignore_value : int, optional
-        This value will be ignored in searching the `arr` array. If not
-        given, all values found will be included in output. Default
-        is None.
-
-    Returns
-    -------
-    indices : dictionary
-        A Python dictionary of array indices for each distinct value. The
-        dictionary is keyed by the distinct values, the entries are array
-        index tuples covering all occurrences of the value within the
-        array.
-
-        This dictionary can occupy significant memory, usually several times
-        the size of the input array.
-
-    See Also
-    --------
-    label, maximum, median, minimum_position, extrema, sum, mean, variance,
-    standard_deviation, numpy.where, numpy.unique
-
-    Notes
-    -----
-    For a small array with few distinct values, one might use
-    `numpy.unique()` to find all possible values, and ``(arr == val)`` to
-    locate each value within that array. However, for large arrays,
-    with many distinct values, this can become extremely inefficient,
-    as locating each value would require a new search through the entire
-    array. Using this function, there is essentially one search, with
-    the indices saved for all distinct values.
-
-    This is useful when matching a categorical image (e.g. a segmentation
-    or classification) to an associated image of other data, allowing
-    any per-class statistic(s) to then be calculated. Provides a
-    more flexible alternative to functions like ``scipy.ndimage.mean()``
-    and ``scipy.ndimage.variance()``.
-
-    Some other closely related functionality, with different strengths and
-    weaknesses, can also be found in ``scipy.stats.binned_statistic()`` and
-    the `scikit-image `_ function
-    ``skimage.measure.regionprops()``.
-
-    Note for IDL users: this provides functionality equivalent to IDL's
-    REVERSE_INDICES option (as per the IDL documentation for the
-    `HISTOGRAM `_
-    function).
-
-    .. versionadded:: 1.10.0
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import ndimage
-    >>> a = np.zeros((6, 6), dtype=int)
-    >>> a[2:4, 2:4] = 1
-    >>> a[4, 4] = 1
-    >>> a[:2, :3] = 2
-    >>> a[0, 5] = 3
-    >>> a
-    array([[2, 2, 2, 0, 0, 3],
-           [2, 2, 2, 0, 0, 0],
-           [0, 0, 1, 1, 0, 0],
-           [0, 0, 1, 1, 0, 0],
-           [0, 0, 0, 0, 1, 0],
-           [0, 0, 0, 0, 0, 0]])
-    >>> val_indices = ndimage.value_indices(a)
-
-    The dictionary `val_indices` will have an entry for each distinct
-    value in the input array.
-
-    >>> val_indices.keys()
-    dict_keys([np.int64(0), np.int64(1), np.int64(2), np.int64(3)])
-
-    The entry for each value is an index tuple, locating the elements
-    with that value.
-
-    >>> ndx1 = val_indices[1]
-    >>> ndx1
-    (array([2, 2, 3, 3, 4]), array([2, 3, 2, 3, 4]))
-
-    This can be used to index into the original array, or any other
-    array with the same shape.
-
-    >>> a[ndx1]
-    array([1, 1, 1, 1, 1])
-
-    If the zeros were to be ignored, then the resulting dictionary
-    would no longer have an entry for zero.
-
-    >>> val_indices = ndimage.value_indices(a, ignore_value=0)
-    >>> val_indices.keys()
-    dict_keys([np.int64(1), np.int64(2), np.int64(3)])
-
-    """
-    # Cope with ignore_value being None, without too much extra complexity
-    # in the C code. If not None, the value is passed in as a numpy array
-    # with the same dtype as arr.
-    ignore_value_arr = np.zeros((1,), dtype=arr.dtype)
-    ignoreIsNone = (ignore_value is None)
-    if not ignoreIsNone:
-        ignore_value_arr[0] = ignore_value_arr.dtype.type(ignore_value)
-
-    val_indices = _nd_image.value_indices(arr, ignoreIsNone, ignore_value_arr)
-    return val_indices
-
-
-def labeled_comprehension(input, labels, index, func, out_dtype, default,
-                          pass_positions=False):
-    """
-    Roughly equivalent to [func(input[labels == i]) for i in index].
-
-    Sequentially applies an arbitrary function (that works on array_like input)
-    to subsets of an N-D image array specified by `labels` and `index`.
-    The option exists to provide the function with positional parameters as the
-    second argument.
-
-    Parameters
-    ----------
-    input : array_like
-        Data from which to select `labels` to process.
-    labels : array_like or None
-        Labels to objects in `input`.
-        If not None, array must be same shape as `input`.
-        If None, `func` is applied to raveled `input`.
-    index : int, sequence of ints or None
-        Subset of `labels` to which to apply `func`.
-        If a scalar, a single value is returned.
-        If None, `func` is applied to all non-zero values of `labels`.
-    func : callable
-        Python function to apply to `labels` from `input`.
-    out_dtype : dtype
-        Dtype to use for `result`.
-    default : int, float or None
-        Default return value when a element of `index` does not exist
-        in `labels`.
-    pass_positions : bool, optional
-        If True, pass linear indices to `func` as a second argument.
-        Default is False.
-
-    Returns
-    -------
-    result : ndarray
-        Result of applying `func` to each of `labels` to `input` in `index`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> a = np.array([[1, 2, 0, 0],
-    ...               [5, 3, 0, 4],
-    ...               [0, 0, 0, 7],
-    ...               [9, 3, 0, 0]])
-    >>> from scipy import ndimage
-    >>> lbl, nlbl = ndimage.label(a)
-    >>> lbls = np.arange(1, nlbl+1)
-    >>> ndimage.labeled_comprehension(a, lbl, lbls, np.mean, float, 0)
-    array([ 2.75,  5.5 ,  6.  ])
-
-    Falling back to `default`:
-
-    >>> lbls = np.arange(1, nlbl+2)
-    >>> ndimage.labeled_comprehension(a, lbl, lbls, np.mean, float, -1)
-    array([ 2.75,  5.5 ,  6.  , -1.  ])
-
-    Passing positions:
-
-    >>> def fn(val, pos):
-    ...     print("fn says: %s : %s" % (val, pos))
-    ...     return (val.sum()) if (pos.sum() % 2 == 0) else (-val.sum())
-    ...
-    >>> ndimage.labeled_comprehension(a, lbl, lbls, fn, float, 0, True)
-    fn says: [1 2 5 3] : [0 1 4 5]
-    fn says: [4 7] : [ 7 11]
-    fn says: [9 3] : [12 13]
-    array([ 11.,  11., -12.,   0.])
-
-    """
-
-    as_scalar = np.isscalar(index)
-    input = np.asarray(input)
-
-    if pass_positions:
-        positions = np.arange(input.size).reshape(input.shape)
-
-    if labels is None:
-        if index is not None:
-            raise ValueError("index without defined labels")
-        if not pass_positions:
-            return func(input.ravel())
-        else:
-            return func(input.ravel(), positions.ravel())
-
-    try:
-        input, labels = np.broadcast_arrays(input, labels)
-    except ValueError as e:
-        raise ValueError("input and labels must have the same shape "
-                            "(excepting dimensions with width 1)") from e
-
-    if index is None:
-        if not pass_positions:
-            return func(input[labels > 0])
-        else:
-            return func(input[labels > 0], positions[labels > 0])
-
-    index = np.atleast_1d(index)
-    if np.any(index.astype(labels.dtype).astype(index.dtype) != index):
-        raise ValueError(f"Cannot convert index values from <{index.dtype}> to "
-                         f"<{labels.dtype}> (labels' type) without loss of precision")
-
-    index = index.astype(labels.dtype)
-
-    # optimization: find min/max in index,
-    # and select those parts of labels, input, and positions
-    lo = index.min()
-    hi = index.max()
-    mask = (labels >= lo) & (labels <= hi)
-
-    # this also ravels the arrays
-    labels = labels[mask]
-    input = input[mask]
-    if pass_positions:
-        positions = positions[mask]
-
-    # sort everything by labels
-    label_order = labels.argsort()
-    labels = labels[label_order]
-    input = input[label_order]
-    if pass_positions:
-        positions = positions[label_order]
-
-    index_order = index.argsort()
-    sorted_index = index[index_order]
-
-    def do_map(inputs, output):
-        """labels must be sorted"""
-        nidx = sorted_index.size
-
-        # Find boundaries for each stretch of constant labels
-        # This could be faster, but we already paid N log N to sort labels.
-        lo = np.searchsorted(labels, sorted_index, side='left')
-        hi = np.searchsorted(labels, sorted_index, side='right')
-
-        for i, l, h in zip(range(nidx), lo, hi):
-            if l == h:
-                continue
-            output[i] = func(*[inp[l:h] for inp in inputs])
-
-    temp = np.empty(index.shape, out_dtype)
-    temp[:] = default
-    if not pass_positions:
-        do_map([input], temp)
-    else:
-        do_map([input, positions], temp)
-
-    output = np.zeros(index.shape, out_dtype)
-    output[index_order] = temp
-    if as_scalar:
-        output = output[0]
-
-    return output
-
-
-def _safely_castable_to_int(dt):
-    """Test whether the NumPy data type `dt` can be safely cast to an int."""
-    int_size = np.dtype(int).itemsize
-    safe = ((np.issubdtype(dt, np.signedinteger) and dt.itemsize <= int_size) or
-            (np.issubdtype(dt, np.unsignedinteger) and dt.itemsize < int_size))
-    return safe
-
-
-def _stats(input, labels=None, index=None, centered=False):
-    """Count, sum, and optionally compute (sum - centre)^2 of input by label
-
-    Parameters
-    ----------
-    input : array_like, N-D
-        The input data to be analyzed.
-    labels : array_like (N-D), optional
-        The labels of the data in `input`. This array must be broadcast
-        compatible with `input`; typically, it is the same shape as `input`.
-        If `labels` is None, all nonzero values in `input` are treated as
-        the single labeled group.
-    index : label or sequence of labels, optional
-        These are the labels of the groups for which the stats are computed.
-        If `index` is None, the stats are computed for the single group where
-        `labels` is greater than 0.
-    centered : bool, optional
-        If True, the centered sum of squares for each labeled group is
-        also returned. Default is False.
-
-    Returns
-    -------
-    counts : int or ndarray of ints
-        The number of elements in each labeled group.
-    sums : scalar or ndarray of scalars
-        The sums of the values in each labeled group.
-    sums_c : scalar or ndarray of scalars, optional
-        The sums of mean-centered squares of the values in each labeled group.
-        This is only returned if `centered` is True.
-
-    """
-    def single_group(vals):
-        if centered:
-            vals_c = vals - vals.mean()
-            return vals.size, vals.sum(), (vals_c * vals_c.conjugate()).sum()
-        else:
-            return vals.size, vals.sum()
-
-    if labels is None:
-        return single_group(input)
-
-    # ensure input and labels match sizes
-    input, labels = np.broadcast_arrays(input, labels)
-
-    if index is None:
-        return single_group(input[labels > 0])
-
-    if np.isscalar(index):
-        return single_group(input[labels == index])
-
-    def _sum_centered(labels):
-        # `labels` is expected to be an ndarray with the same shape as `input`.
-        # It must contain the label indices (which are not necessarily the labels
-        # themselves).
-        means = sums / counts
-        centered_input = input - means[labels]
-        # bincount expects 1-D inputs, so we ravel the arguments.
-        bc = np.bincount(labels.ravel(),
-                              weights=(centered_input *
-                                       centered_input.conjugate()).ravel())
-        return bc
-
-    # Remap labels to unique integers if necessary, or if the largest
-    # label is larger than the number of values.
-
-    if (not _safely_castable_to_int(labels.dtype) or
-            labels.min() < 0 or labels.max() > labels.size):
-        # Use np.unique to generate the label indices.  `new_labels` will
-        # be 1-D, but it should be interpreted as the flattened N-D array of
-        # label indices.
-        unique_labels, new_labels = np.unique(labels, return_inverse=True)
-        new_labels = np.reshape(new_labels, (-1,))  # flatten, since it may be >1-D
-        counts = np.bincount(new_labels)
-        sums = np.bincount(new_labels, weights=input.ravel())
-        if centered:
-            # Compute the sum of the mean-centered squares.
-            # We must reshape new_labels to the N-D shape of `input` before
-            # passing it _sum_centered.
-            sums_c = _sum_centered(new_labels.reshape(labels.shape))
-        idxs = np.searchsorted(unique_labels, index)
-        # make all of idxs valid
-        idxs[idxs >= unique_labels.size] = 0
-        found = (unique_labels[idxs] == index)
-    else:
-        # labels are an integer type allowed by bincount, and there aren't too
-        # many, so call bincount directly.
-        counts = np.bincount(labels.ravel())
-        sums = np.bincount(labels.ravel(), weights=input.ravel())
-        if centered:
-            sums_c = _sum_centered(labels)
-        # make sure all index values are valid
-        idxs = np.asanyarray(index, np.int_).copy()
-        found = (idxs >= 0) & (idxs < counts.size)
-        idxs[~found] = 0
-
-    counts = counts[idxs]
-    counts[~found] = 0
-    sums = sums[idxs]
-    sums[~found] = 0
-
-    if not centered:
-        return (counts, sums)
-    else:
-        sums_c = sums_c[idxs]
-        sums_c[~found] = 0
-        return (counts, sums, sums_c)
-
-
-def sum(input, labels=None, index=None):
-    """
-    Calculate the sum of the values of the array.
-
-    Notes
-    -----
-    This is an alias for `ndimage.sum_labels` kept for backwards compatibility
-    reasons, for new code please prefer `sum_labels`.  See the `sum_labels`
-    docstring for more details.
-
-    """
-    return sum_labels(input, labels, index)
-
-
-def sum_labels(input, labels=None, index=None):
-    """
-    Calculate the sum of the values of the array.
-
-    Parameters
-    ----------
-    input : array_like
-        Values of `input` inside the regions defined by `labels`
-        are summed together.
-    labels : array_like of ints, optional
-        Assign labels to the values of the array. Has to have the same shape as
-        `input`.
-    index : array_like, optional
-        A single label number or a sequence of label numbers of
-        the objects to be measured.
-
-    Returns
-    -------
-    sum : ndarray or scalar
-        An array of the sums of values of `input` inside the regions defined
-        by `labels` with the same shape as `index`. If 'index' is None or scalar,
-        a scalar is returned.
-
-    See Also
-    --------
-    mean, median
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> input =  [0,1,2,3]
-    >>> labels = [1,1,2,2]
-    >>> ndimage.sum_labels(input, labels, index=[1,2])
-    [1.0, 5.0]
-    >>> ndimage.sum_labels(input, labels, index=1)
-    1
-    >>> ndimage.sum_labels(input, labels)
-    6
-
-
-    """
-    count, sum = _stats(input, labels, index)
-    return sum
-
-
-def mean(input, labels=None, index=None):
-    """
-    Calculate the mean of the values of an array at labels.
-
-    Parameters
-    ----------
-    input : array_like
-        Array on which to compute the mean of elements over distinct
-        regions.
-    labels : array_like, optional
-        Array of labels of same shape, or broadcastable to the same shape as
-        `input`. All elements sharing the same label form one region over
-        which the mean of the elements is computed.
-    index : int or sequence of ints, optional
-        Labels of the objects over which the mean is to be computed.
-        Default is None, in which case the mean for all values where label is
-        greater than 0 is calculated.
-
-    Returns
-    -------
-    out : list
-        Sequence of same length as `index`, with the mean of the different
-        regions labeled by the labels in `index`.
-
-    See Also
-    --------
-    variance, standard_deviation, minimum, maximum, sum, label
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.arange(25).reshape((5,5))
-    >>> labels = np.zeros_like(a)
-    >>> labels[3:5,3:5] = 1
-    >>> index = np.unique(labels)
-    >>> labels
-    array([[0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0],
-           [0, 0, 0, 1, 1],
-           [0, 0, 0, 1, 1]])
-    >>> index
-    array([0, 1])
-    >>> ndimage.mean(a, labels=labels, index=index)
-    [10.285714285714286, 21.0]
-
-    """
-
-    count, sum = _stats(input, labels, index)
-    return sum / np.asanyarray(count).astype(np.float64)
-
-
-def variance(input, labels=None, index=None):
-    """
-    Calculate the variance of the values of an N-D image array, optionally at
-    specified sub-regions.
-
-    Parameters
-    ----------
-    input : array_like
-        Nd-image data to process.
-    labels : array_like, optional
-        Labels defining sub-regions in `input`.
-        If not None, must be same shape as `input`.
-    index : int or sequence of ints, optional
-        `labels` to include in output.  If None (default), all values where
-        `labels` is non-zero are used.
-
-    Returns
-    -------
-    variance : float or ndarray
-        Values of variance, for each sub-region if `labels` and `index` are
-        specified.
-
-    See Also
-    --------
-    label, standard_deviation, maximum, minimum, extrema
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> a = np.array([[1, 2, 0, 0],
-    ...               [5, 3, 0, 4],
-    ...               [0, 0, 0, 7],
-    ...               [9, 3, 0, 0]])
-    >>> from scipy import ndimage
-    >>> ndimage.variance(a)
-    7.609375
-
-    Features to process can be specified using `labels` and `index`:
-
-    >>> lbl, nlbl = ndimage.label(a)
-    >>> ndimage.variance(a, lbl, index=np.arange(1, nlbl+1))
-    array([ 2.1875,  2.25  ,  9.    ])
-
-    If no index is given, all non-zero `labels` are processed:
-
-    >>> ndimage.variance(a, lbl)
-    6.1875
-
-    """
-    count, sum, sum_c_sq = _stats(input, labels, index, centered=True)
-    return sum_c_sq / np.asanyarray(count).astype(float)
-
-
-def standard_deviation(input, labels=None, index=None):
-    """
-    Calculate the standard deviation of the values of an N-D image array,
-    optionally at specified sub-regions.
-
-    Parameters
-    ----------
-    input : array_like
-        N-D image data to process.
-    labels : array_like, optional
-        Labels to identify sub-regions in `input`.
-        If not None, must be same shape as `input`.
-    index : int or sequence of ints, optional
-        `labels` to include in output. If None (default), all values where
-        `labels` is non-zero are used.
-
-    Returns
-    -------
-    standard_deviation : float or ndarray
-        Values of standard deviation, for each sub-region if `labels` and
-        `index` are specified.
-
-    See Also
-    --------
-    label, variance, maximum, minimum, extrema
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> a = np.array([[1, 2, 0, 0],
-    ...               [5, 3, 0, 4],
-    ...               [0, 0, 0, 7],
-    ...               [9, 3, 0, 0]])
-    >>> from scipy import ndimage
-    >>> ndimage.standard_deviation(a)
-    2.7585095613392387
-
-    Features to process can be specified using `labels` and `index`:
-
-    >>> lbl, nlbl = ndimage.label(a)
-    >>> ndimage.standard_deviation(a, lbl, index=np.arange(1, nlbl+1))
-    array([ 1.479,  1.5  ,  3.   ])
-
-    If no index is given, non-zero `labels` are processed:
-
-    >>> ndimage.standard_deviation(a, lbl)
-    2.4874685927665499
-
-    """
-    return np.sqrt(variance(input, labels, index))
-
-
-def _select(input, labels=None, index=None, find_min=False, find_max=False,
-            find_min_positions=False, find_max_positions=False,
-            find_median=False):
-    """Returns min, max, or both, plus their positions (if requested), and
-    median."""
-
-    input = np.asanyarray(input)
-
-    find_positions = find_min_positions or find_max_positions
-    positions = None
-    if find_positions:
-        positions = np.arange(input.size).reshape(input.shape)
-
-    def single_group(vals, positions):
-        result = []
-        if find_min:
-            result += [vals.min()]
-        if find_min_positions:
-            result += [positions[vals == vals.min()][0]]
-        if find_max:
-            result += [vals.max()]
-        if find_max_positions:
-            result += [positions[vals == vals.max()][0]]
-        if find_median:
-            result += [np.median(vals)]
-        return result
-
-    if labels is None:
-        return single_group(input, positions)
-
-    # ensure input and labels match sizes
-    input, labels = np.broadcast_arrays(input, labels)
-
-    if index is None:
-        mask = (labels > 0)
-        masked_positions = None
-        if find_positions:
-            masked_positions = positions[mask]
-        return single_group(input[mask], masked_positions)
-
-    if np.isscalar(index):
-        mask = (labels == index)
-        masked_positions = None
-        if find_positions:
-            masked_positions = positions[mask]
-        return single_group(input[mask], masked_positions)
-
-    # remap labels to unique integers if necessary, or if the largest
-    # label is larger than the number of values.
-    if (not _safely_castable_to_int(labels.dtype) or
-            labels.min() < 0 or labels.max() > labels.size):
-        # remap labels, and indexes
-        unique_labels, labels = np.unique(labels, return_inverse=True)
-        idxs = np.searchsorted(unique_labels, index)
-
-        # make all of idxs valid
-        idxs[idxs >= unique_labels.size] = 0
-        found = (unique_labels[idxs] == index)
-    else:
-        # labels are an integer type, and there aren't too many
-        idxs = np.asanyarray(index, np.int_).copy()
-        found = (idxs >= 0) & (idxs <= labels.max())
-
-    idxs[~ found] = labels.max() + 1
-
-    if find_median:
-        order = np.lexsort((input.ravel(), labels.ravel()))
-    else:
-        order = input.ravel().argsort()
-    input = input.ravel()[order]
-    labels = labels.ravel()[order]
-    if find_positions:
-        positions = positions.ravel()[order]
-
-    result = []
-    if find_min:
-        mins = np.zeros(labels.max() + 2, input.dtype)
-        mins[labels[::-1]] = input[::-1]
-        result += [mins[idxs]]
-    if find_min_positions:
-        minpos = np.zeros(labels.max() + 2, int)
-        minpos[labels[::-1]] = positions[::-1]
-        result += [minpos[idxs]]
-    if find_max:
-        maxs = np.zeros(labels.max() + 2, input.dtype)
-        maxs[labels] = input
-        result += [maxs[idxs]]
-    if find_max_positions:
-        maxpos = np.zeros(labels.max() + 2, int)
-        maxpos[labels] = positions
-        result += [maxpos[idxs]]
-    if find_median:
-        locs = np.arange(len(labels))
-        lo = np.zeros(labels.max() + 2, np.int_)
-        lo[labels[::-1]] = locs[::-1]
-        hi = np.zeros(labels.max() + 2, np.int_)
-        hi[labels] = locs
-        lo = lo[idxs]
-        hi = hi[idxs]
-        # lo is an index to the lowest value in input for each label,
-        # hi is an index to the largest value.
-        # move them to be either the same ((hi - lo) % 2 == 0) or next
-        # to each other ((hi - lo) % 2 == 1), then average.
-        step = (hi - lo) // 2
-        lo += step
-        hi -= step
-        if (np.issubdtype(input.dtype, np.integer)
-                or np.issubdtype(input.dtype, np.bool_)):
-            # avoid integer overflow or boolean addition (gh-12836)
-            result += [(input[lo].astype('d') + input[hi].astype('d')) / 2.0]
-        else:
-            result += [(input[lo] + input[hi]) / 2.0]
-
-    return result
-
-
-def minimum(input, labels=None, index=None):
-    """
-    Calculate the minimum of the values of an array over labeled regions.
-
-    Parameters
-    ----------
-    input : array_like
-        Array_like of values. For each region specified by `labels`, the
-        minimal values of `input` over the region is computed.
-    labels : array_like, optional
-        An array_like of integers marking different regions over which the
-        minimum value of `input` is to be computed. `labels` must have the
-        same shape as `input`. If `labels` is not specified, the minimum
-        over the whole array is returned.
-    index : array_like, optional
-        A list of region labels that are taken into account for computing the
-        minima. If index is None, the minimum over all elements where `labels`
-        is non-zero is returned.
-
-    Returns
-    -------
-    minimum : float or list of floats
-        List of minima of `input` over the regions determined by `labels` and
-        whose index is in `index`. If `index` or `labels` are not specified, a
-        float is returned: the minimal value of `input` if `labels` is None,
-        and the minimal value of elements where `labels` is greater than zero
-        if `index` is None.
-
-    See Also
-    --------
-    label, maximum, median, minimum_position, extrema, sum, mean, variance,
-    standard_deviation
-
-    Notes
-    -----
-    The function returns a Python list and not a NumPy array, use
-    `np.array` to convert the list to an array.
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.array([[1, 2, 0, 0],
-    ...               [5, 3, 0, 4],
-    ...               [0, 0, 0, 7],
-    ...               [9, 3, 0, 0]])
-    >>> labels, labels_nb = ndimage.label(a)
-    >>> labels
-    array([[1, 1, 0, 0],
-           [1, 1, 0, 2],
-           [0, 0, 0, 2],
-           [3, 3, 0, 0]])
-    >>> ndimage.minimum(a, labels=labels, index=np.arange(1, labels_nb + 1))
-    [1.0, 4.0, 3.0]
-    >>> ndimage.minimum(a)
-    0.0
-    >>> ndimage.minimum(a, labels=labels)
-    1.0
-
-    """
-    return _select(input, labels, index, find_min=True)[0]
-
-
-def maximum(input, labels=None, index=None):
-    """
-    Calculate the maximum of the values of an array over labeled regions.
-
-    Parameters
-    ----------
-    input : array_like
-        Array_like of values. For each region specified by `labels`, the
-        maximal values of `input` over the region is computed.
-    labels : array_like, optional
-        An array of integers marking different regions over which the
-        maximum value of `input` is to be computed. `labels` must have the
-        same shape as `input`. If `labels` is not specified, the maximum
-        over the whole array is returned.
-    index : array_like, optional
-        A list of region labels that are taken into account for computing the
-        maxima. If index is None, the maximum over all elements where `labels`
-        is non-zero is returned.
-
-    Returns
-    -------
-    output : float or list of floats
-        List of maxima of `input` over the regions determined by `labels` and
-        whose index is in `index`. If `index` or `labels` are not specified, a
-        float is returned: the maximal value of `input` if `labels` is None,
-        and the maximal value of elements where `labels` is greater than zero
-        if `index` is None.
-
-    See Also
-    --------
-    label, minimum, median, maximum_position, extrema, sum, mean, variance,
-    standard_deviation
-
-    Notes
-    -----
-    The function returns a Python list and not a NumPy array, use
-    `np.array` to convert the list to an array.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> a = np.arange(16).reshape((4,4))
-    >>> a
-    array([[ 0,  1,  2,  3],
-           [ 4,  5,  6,  7],
-           [ 8,  9, 10, 11],
-           [12, 13, 14, 15]])
-    >>> labels = np.zeros_like(a)
-    >>> labels[:2,:2] = 1
-    >>> labels[2:, 1:3] = 2
-    >>> labels
-    array([[1, 1, 0, 0],
-           [1, 1, 0, 0],
-           [0, 2, 2, 0],
-           [0, 2, 2, 0]])
-    >>> from scipy import ndimage
-    >>> ndimage.maximum(a)
-    15.0
-    >>> ndimage.maximum(a, labels=labels, index=[1,2])
-    [5.0, 14.0]
-    >>> ndimage.maximum(a, labels=labels)
-    14.0
-
-    >>> b = np.array([[1, 2, 0, 0],
-    ...               [5, 3, 0, 4],
-    ...               [0, 0, 0, 7],
-    ...               [9, 3, 0, 0]])
-    >>> labels, labels_nb = ndimage.label(b)
-    >>> labels
-    array([[1, 1, 0, 0],
-           [1, 1, 0, 2],
-           [0, 0, 0, 2],
-           [3, 3, 0, 0]])
-    >>> ndimage.maximum(b, labels=labels, index=np.arange(1, labels_nb + 1))
-    [5.0, 7.0, 9.0]
-
-    """
-    return _select(input, labels, index, find_max=True)[0]
-
-
-def median(input, labels=None, index=None):
-    """
-    Calculate the median of the values of an array over labeled regions.
-
-    Parameters
-    ----------
-    input : array_like
-        Array_like of values. For each region specified by `labels`, the
-        median value of `input` over the region is computed.
-    labels : array_like, optional
-        An array_like of integers marking different regions over which the
-        median value of `input` is to be computed. `labels` must have the
-        same shape as `input`. If `labels` is not specified, the median
-        over the whole array is returned.
-    index : array_like, optional
-        A list of region labels that are taken into account for computing the
-        medians. If index is None, the median over all elements where `labels`
-        is non-zero is returned.
-
-    Returns
-    -------
-    median : float or list of floats
-        List of medians of `input` over the regions determined by `labels` and
-        whose index is in `index`. If `index` or `labels` are not specified, a
-        float is returned: the median value of `input` if `labels` is None,
-        and the median value of elements where `labels` is greater than zero
-        if `index` is None.
-
-    See Also
-    --------
-    label, minimum, maximum, extrema, sum, mean, variance, standard_deviation
-
-    Notes
-    -----
-    The function returns a Python list and not a NumPy array, use
-    `np.array` to convert the list to an array.
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.array([[1, 2, 0, 1],
-    ...               [5, 3, 0, 4],
-    ...               [0, 0, 0, 7],
-    ...               [9, 3, 0, 0]])
-    >>> labels, labels_nb = ndimage.label(a)
-    >>> labels
-    array([[1, 1, 0, 2],
-           [1, 1, 0, 2],
-           [0, 0, 0, 2],
-           [3, 3, 0, 0]])
-    >>> ndimage.median(a, labels=labels, index=np.arange(1, labels_nb + 1))
-    [2.5, 4.0, 6.0]
-    >>> ndimage.median(a)
-    1.0
-    >>> ndimage.median(a, labels=labels)
-    3.0
-
-    """
-    return _select(input, labels, index, find_median=True)[0]
-
-
-def minimum_position(input, labels=None, index=None):
-    """
-    Find the positions of the minimums of the values of an array at labels.
-
-    Parameters
-    ----------
-    input : array_like
-        Array_like of values.
-    labels : array_like, optional
-        An array of integers marking different regions over which the
-        position of the minimum value of `input` is to be computed.
-        `labels` must have the same shape as `input`. If `labels` is not
-        specified, the location of the first minimum over the whole
-        array is returned.
-
-        The `labels` argument only works when `index` is specified.
-    index : array_like, optional
-        A list of region labels that are taken into account for finding the
-        location of the minima. If `index` is None, the ``first`` minimum
-        over all elements where `labels` is non-zero is returned.
-
-        The `index` argument only works when `labels` is specified.
-
-    Returns
-    -------
-    output : list of tuples of ints
-        Tuple of ints or list of tuples of ints that specify the location
-        of minima of `input` over the regions determined by `labels` and
-        whose index is in `index`.
-
-        If `index` or `labels` are not specified, a tuple of ints is
-        returned specifying the location of the first minimal value of `input`.
-
-    See Also
-    --------
-    label, minimum, median, maximum_position, extrema, sum, mean, variance,
-    standard_deviation
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> a = np.array([[10, 20, 30],
-    ...               [40, 80, 100],
-    ...               [1, 100, 200]])
-    >>> b = np.array([[1, 2, 0, 1],
-    ...               [5, 3, 0, 4],
-    ...               [0, 0, 0, 7],
-    ...               [9, 3, 0, 0]])
-
-    >>> from scipy import ndimage
-
-    >>> ndimage.minimum_position(a)
-    (2, 0)
-    >>> ndimage.minimum_position(b)
-    (0, 2)
-
-    Features to process can be specified using `labels` and `index`:
-
-    >>> label, pos = ndimage.label(a)
-    >>> ndimage.minimum_position(a, label, index=np.arange(1, pos+1))
-    [(2, 0)]
-
-    >>> label, pos = ndimage.label(b)
-    >>> ndimage.minimum_position(b, label, index=np.arange(1, pos+1))
-    [(0, 0), (0, 3), (3, 1)]
-
-    """
-    dims = np.array(np.asarray(input).shape)
-    # see np.unravel_index to understand this line.
-    dim_prod = np.cumprod([1] + list(dims[:0:-1]))[::-1]
-
-    result = _select(input, labels, index, find_min_positions=True)[0]
-
-    if np.isscalar(result):
-        return tuple((result // dim_prod) % dims)
-
-    return [tuple(v) for v in (result.reshape(-1, 1) // dim_prod) % dims]
-
-
-def maximum_position(input, labels=None, index=None):
-    """
-    Find the positions of the maximums of the values of an array at labels.
-
-    For each region specified by `labels`, the position of the maximum
-    value of `input` within the region is returned.
-
-    Parameters
-    ----------
-    input : array_like
-        Array_like of values.
-    labels : array_like, optional
-        An array of integers marking different regions over which the
-        position of the maximum value of `input` is to be computed.
-        `labels` must have the same shape as `input`. If `labels` is not
-        specified, the location of the first maximum over the whole
-        array is returned.
-
-        The `labels` argument only works when `index` is specified.
-    index : array_like, optional
-        A list of region labels that are taken into account for finding the
-        location of the maxima. If `index` is None, the first maximum
-        over all elements where `labels` is non-zero is returned.
-
-        The `index` argument only works when `labels` is specified.
-
-    Returns
-    -------
-    output : list of tuples of ints
-        List of tuples of ints that specify the location of maxima of
-        `input` over the regions determined by `labels` and whose index
-        is in `index`.
-
-        If `index` or `labels` are not specified, a tuple of ints is
-        returned specifying the location of the ``first`` maximal value
-        of `input`.
-
-    See Also
-    --------
-    label, minimum, median, maximum_position, extrema, sum, mean, variance,
-    standard_deviation
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.array([[1, 2, 0, 0],
-    ...               [5, 3, 0, 4],
-    ...               [0, 0, 0, 7],
-    ...               [9, 3, 0, 0]])
-    >>> ndimage.maximum_position(a)
-    (3, 0)
-
-    Features to process can be specified using `labels` and `index`:
-
-    >>> lbl = np.array([[0, 1, 2, 3],
-    ...                 [0, 1, 2, 3],
-    ...                 [0, 1, 2, 3],
-    ...                 [0, 1, 2, 3]])
-    >>> ndimage.maximum_position(a, lbl, 1)
-    (1, 1)
-
-    If no index is given, non-zero `labels` are processed:
-
-    >>> ndimage.maximum_position(a, lbl)
-    (2, 3)
-
-    If there are no maxima, the position of the first element is returned:
-
-    >>> ndimage.maximum_position(a, lbl, 2)
-    (0, 2)
-
-    """
-    dims = np.array(np.asarray(input).shape)
-    # see np.unravel_index to understand this line.
-    dim_prod = np.cumprod([1] + list(dims[:0:-1]))[::-1]
-
-    result = _select(input, labels, index, find_max_positions=True)[0]
-
-    if np.isscalar(result):
-        return tuple((result // dim_prod) % dims)
-
-    return [tuple(v) for v in (result.reshape(-1, 1) // dim_prod) % dims]
-
-
-def extrema(input, labels=None, index=None):
-    """
-    Calculate the minimums and maximums of the values of an array
-    at labels, along with their positions.
-
-    Parameters
-    ----------
-    input : ndarray
-        N-D image data to process.
-    labels : ndarray, optional
-        Labels of features in input.
-        If not None, must be same shape as `input`.
-    index : int or sequence of ints, optional
-        Labels to include in output.  If None (default), all values where
-        non-zero `labels` are used.
-
-    Returns
-    -------
-    minimums, maximums : int or ndarray
-        Values of minimums and maximums in each feature.
-    min_positions, max_positions : tuple or list of tuples
-        Each tuple gives the N-D coordinates of the corresponding minimum
-        or maximum.
-
-    See Also
-    --------
-    maximum, minimum, maximum_position, minimum_position, center_of_mass
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> a = np.array([[1, 2, 0, 0],
-    ...               [5, 3, 0, 4],
-    ...               [0, 0, 0, 7],
-    ...               [9, 3, 0, 0]])
-    >>> from scipy import ndimage
-    >>> ndimage.extrema(a)
-    (0, 9, (0, 2), (3, 0))
-
-    Features to process can be specified using `labels` and `index`:
-
-    >>> lbl, nlbl = ndimage.label(a)
-    >>> ndimage.extrema(a, lbl, index=np.arange(1, nlbl+1))
-    (array([1, 4, 3]),
-     array([5, 7, 9]),
-     [(0, 0), (1, 3), (3, 1)],
-     [(1, 0), (2, 3), (3, 0)])
-
-    If no index is given, non-zero `labels` are processed:
-
-    >>> ndimage.extrema(a, lbl)
-    (1, 9, (0, 0), (3, 0))
-
-    """
-    dims = np.array(np.asarray(input).shape)
-    # see np.unravel_index to understand this line.
-    dim_prod = np.cumprod([1] + list(dims[:0:-1]))[::-1]
-
-    minimums, min_positions, maximums, max_positions = _select(input, labels,
-                                                               index,
-                                                               find_min=True,
-                                                               find_max=True,
-                                                               find_min_positions=True,
-                                                               find_max_positions=True)
-
-    if np.isscalar(minimums):
-        return (minimums, maximums, tuple((min_positions // dim_prod) % dims),
-                tuple((max_positions // dim_prod) % dims))
-
-    min_positions = [
-        tuple(v) for v in (min_positions.reshape(-1, 1) // dim_prod) % dims
-    ]
-    max_positions = [
-        tuple(v) for v in (max_positions.reshape(-1, 1) // dim_prod) % dims
-    ]
-
-    return minimums, maximums, min_positions, max_positions
-
-
-def center_of_mass(input, labels=None, index=None):
-    """
-    Calculate the center of mass of the values of an array at labels.
-
-    Parameters
-    ----------
-    input : ndarray
-        Data from which to calculate center-of-mass. The masses can either
-        be positive or negative.
-    labels : ndarray, optional
-        Labels for objects in `input`, as generated by `ndimage.label`.
-        Only used with `index`. Dimensions must be the same as `input`.
-    index : int or sequence of ints, optional
-        Labels for which to calculate centers-of-mass. If not specified,
-        the combined center of mass of all labels greater than zero
-        will be calculated. Only used with `labels`.
-
-    Returns
-    -------
-    center_of_mass : tuple, or list of tuples
-        Coordinates of centers-of-mass.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> a = np.array(([0,0,0,0],
-    ...               [0,1,1,0],
-    ...               [0,1,1,0],
-    ...               [0,1,1,0]))
-    >>> from scipy import ndimage
-    >>> ndimage.center_of_mass(a)
-    (2.0, 1.5)
-
-    Calculation of multiple objects in an image
-
-    >>> b = np.array(([0,1,1,0],
-    ...               [0,1,0,0],
-    ...               [0,0,0,0],
-    ...               [0,0,1,1],
-    ...               [0,0,1,1]))
-    >>> lbl = ndimage.label(b)[0]
-    >>> ndimage.center_of_mass(b, lbl, [1,2])
-    [(0.33333333333333331, 1.3333333333333333), (3.5, 2.5)]
-
-    Negative masses are also accepted, which can occur for example when
-    bias is removed from measured data due to random noise.
-
-    >>> c = np.array(([-1,0,0,0],
-    ...               [0,-1,-1,0],
-    ...               [0,1,-1,0],
-    ...               [0,1,1,0]))
-    >>> ndimage.center_of_mass(c)
-    (-4.0, 1.0)
-
-    If there are division by zero issues, the function does not raise an
-    error but rather issues a RuntimeWarning before returning inf and/or NaN.
-
-    >>> d = np.array([-1, 1])
-    >>> ndimage.center_of_mass(d)
-    (inf,)
-    """
-    normalizer = sum(input, labels, index)
-    grids = np.ogrid[[slice(0, i) for i in input.shape]]
-
-    results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
-               for dir in range(input.ndim)]
-
-    if np.isscalar(results[0]):
-        return tuple(results)
-
-    return [tuple(v) for v in np.array(results).T]
-
-
-def histogram(input, min, max, bins, labels=None, index=None):
-    """
-    Calculate the histogram of the values of an array, optionally at labels.
-
-    Histogram calculates the frequency of values in an array within bins
-    determined by `min`, `max`, and `bins`. The `labels` and `index`
-    keywords can limit the scope of the histogram to specified sub-regions
-    within the array.
-
-    Parameters
-    ----------
-    input : array_like
-        Data for which to calculate histogram.
-    min, max : int
-        Minimum and maximum values of range of histogram bins.
-    bins : int
-        Number of bins.
-    labels : array_like, optional
-        Labels for objects in `input`.
-        If not None, must be same shape as `input`.
-    index : int or sequence of ints, optional
-        Label or labels for which to calculate histogram. If None, all values
-        where label is greater than zero are used
-
-    Returns
-    -------
-    hist : ndarray
-        Histogram counts.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> a = np.array([[ 0.    ,  0.2146,  0.5962,  0.    ],
-    ...               [ 0.    ,  0.7778,  0.    ,  0.    ],
-    ...               [ 0.    ,  0.    ,  0.    ,  0.    ],
-    ...               [ 0.    ,  0.    ,  0.7181,  0.2787],
-    ...               [ 0.    ,  0.    ,  0.6573,  0.3094]])
-    >>> from scipy import ndimage
-    >>> ndimage.histogram(a, 0, 1, 10)
-    array([13,  0,  2,  1,  0,  1,  1,  2,  0,  0])
-
-    With labels and no indices, non-zero elements are counted:
-
-    >>> lbl, nlbl = ndimage.label(a)
-    >>> ndimage.histogram(a, 0, 1, 10, lbl)
-    array([0, 0, 2, 1, 0, 1, 1, 2, 0, 0])
-
-    Indices can be used to count only certain objects:
-
-    >>> ndimage.histogram(a, 0, 1, 10, lbl, 2)
-    array([0, 0, 1, 1, 0, 0, 1, 1, 0, 0])
-
-    """
-    _bins = np.linspace(min, max, bins + 1)
-
-    def _hist(vals):
-        return np.histogram(vals, _bins)[0]
-
-    return labeled_comprehension(input, labels, index, _hist, object, None,
-                                 pass_positions=False)
-
-
-def watershed_ift(input, markers, structure=None, output=None):
-    """
-    Apply watershed from markers using image foresting transform algorithm.
-
-    Parameters
-    ----------
-    input : array_like
-        Input.
-    markers : array_like
-        Markers are points within each watershed that form the beginning
-        of the process. Negative markers are considered background markers
-        which are processed after the other markers.
-    structure : structure element, optional
-        A structuring element defining the connectivity of the object can be
-        provided. If None, an element is generated with a squared
-        connectivity equal to one.
-    output : ndarray, optional
-        An output array can optionally be provided. The same shape as input.
-
-    Returns
-    -------
-    watershed_ift : ndarray
-        Output.  Same shape as `input`.
-
-    References
-    ----------
-    .. [1] A.X. Falcao, J. Stolfi and R. de Alencar Lotufo, "The image
-           foresting transform: theory, algorithms, and applications",
-           Pattern Analysis and Machine Intelligence, vol. 26, pp. 19-29, 2004.
-
-    """
-    input = np.asarray(input)
-    if input.dtype.type not in [np.uint8, np.uint16]:
-        raise TypeError('only 8 and 16 unsigned inputs are supported')
-
-    if structure is None:
-        structure = _morphology.generate_binary_structure(input.ndim, 1)
-    structure = np.asarray(structure, dtype=bool)
-    if structure.ndim != input.ndim:
-        raise RuntimeError('structure and input must have equal rank')
-    for ii in structure.shape:
-        if ii != 3:
-            raise RuntimeError('structure dimensions must be equal to 3')
-
-    if not structure.flags.contiguous:
-        structure = structure.copy()
-    markers = np.asarray(markers)
-    if input.shape != markers.shape:
-        raise RuntimeError('input and markers must have equal shape')
-
-    integral_types = [np.int8,
-                      np.int16,
-                      np.int32,
-                      np.int64,
-                      np.intc,
-                      np.intp]
-
-    if markers.dtype.type not in integral_types:
-        raise RuntimeError('marker should be of integer type')
-
-    if isinstance(output, np.ndarray):
-        if output.dtype.type not in integral_types:
-            raise RuntimeError('output should be of integer type')
-    else:
-        output = markers.dtype
-
-    output = _ni_support._get_output(output, input)
-    _nd_image.watershed_ift(input, markers, structure, output)
-    return output
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_morphology.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_morphology.py
deleted file mode 100644
index 22ada0b130f913021207250714ab860f483b3e1e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_morphology.py
+++ /dev/null
@@ -1,2537 +0,0 @@
-# Copyright (C) 2003-2005 Peter J. Verveer
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-#    products derived from this software without specific prior
-#    written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import warnings
-import operator
-
-import numpy as np
-from . import _ni_support
-from . import _nd_image
-from . import _filters
-
-__all__ = ['iterate_structure', 'generate_binary_structure', 'binary_erosion',
-           'binary_dilation', 'binary_opening', 'binary_closing',
-           'binary_hit_or_miss', 'binary_propagation', 'binary_fill_holes',
-           'grey_erosion', 'grey_dilation', 'grey_opening', 'grey_closing',
-           'morphological_gradient', 'morphological_laplace', 'white_tophat',
-           'black_tophat', 'distance_transform_bf', 'distance_transform_cdt',
-           'distance_transform_edt']
-
-
-def _center_is_true(structure, origin):
-    structure = np.asarray(structure)
-    coor = tuple([oo + ss // 2 for ss, oo in zip(structure.shape,
-                                                 origin)])
-    return bool(structure[coor])
-
-
-def iterate_structure(structure, iterations, origin=None):
-    """
-    Iterate a structure by dilating it with itself.
-
-    Parameters
-    ----------
-    structure : array_like
-       Structuring element (an array of bools, for example), to be dilated with
-       itself.
-    iterations : int
-       number of dilations performed on the structure with itself
-    origin : optional
-        If origin is None, only the iterated structure is returned. If
-        not, a tuple of the iterated structure and the modified origin is
-        returned.
-
-    Returns
-    -------
-    iterate_structure : ndarray of bools
-        A new structuring element obtained by dilating `structure`
-        (`iterations` - 1) times with itself.
-
-    See Also
-    --------
-    generate_binary_structure
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> struct = ndimage.generate_binary_structure(2, 1)
-    >>> struct.astype(int)
-    array([[0, 1, 0],
-           [1, 1, 1],
-           [0, 1, 0]])
-    >>> ndimage.iterate_structure(struct, 2).astype(int)
-    array([[0, 0, 1, 0, 0],
-           [0, 1, 1, 1, 0],
-           [1, 1, 1, 1, 1],
-           [0, 1, 1, 1, 0],
-           [0, 0, 1, 0, 0]])
-    >>> ndimage.iterate_structure(struct, 3).astype(int)
-    array([[0, 0, 0, 1, 0, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 1, 1, 1, 1, 1, 0],
-           [1, 1, 1, 1, 1, 1, 1],
-           [0, 1, 1, 1, 1, 1, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 0, 1, 0, 0, 0]])
-
-    """
-    structure = np.asarray(structure)
-    if iterations < 2:
-        return structure.copy()
-    ni = iterations - 1
-    shape = [ii + ni * (ii - 1) for ii in structure.shape]
-    pos = [ni * (structure.shape[ii] // 2) for ii in range(len(shape))]
-    slc = tuple(slice(pos[ii], pos[ii] + structure.shape[ii], None)
-                for ii in range(len(shape)))
-    out = np.zeros(shape, bool)
-    out[slc] = structure != 0
-    out = binary_dilation(out, structure, iterations=ni)
-    if origin is None:
-        return out
-    else:
-        origin = _ni_support._normalize_sequence(origin, structure.ndim)
-        origin = [iterations * o for o in origin]
-        return out, origin
-
-
-def generate_binary_structure(rank, connectivity):
-    """
-    Generate a binary structure for binary morphological operations.
-
-    Parameters
-    ----------
-    rank : int
-         Number of dimensions of the array to which the structuring element
-         will be applied, as returned by `np.ndim`.
-    connectivity : int
-         `connectivity` determines which elements of the output array belong
-         to the structure, i.e., are considered as neighbors of the central
-         element. Elements up to a squared distance of `connectivity` from
-         the center are considered neighbors. `connectivity` may range from 1
-         (no diagonal elements are neighbors) to `rank` (all elements are
-         neighbors).
-
-    Returns
-    -------
-    output : ndarray of bools
-         Structuring element which may be used for binary morphological
-         operations, with `rank` dimensions and all dimensions equal to 3.
-
-    See Also
-    --------
-    iterate_structure, binary_dilation, binary_erosion
-
-    Notes
-    -----
-    `generate_binary_structure` can only create structuring elements with
-    dimensions equal to 3, i.e., minimal dimensions. For larger structuring
-    elements, that are useful e.g., for eroding large objects, one may either
-    use `iterate_structure`, or create directly custom arrays with
-    numpy functions such as `numpy.ones`.
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> struct = ndimage.generate_binary_structure(2, 1)
-    >>> struct
-    array([[False,  True, False],
-           [ True,  True,  True],
-           [False,  True, False]], dtype=bool)
-    >>> a = np.zeros((5,5))
-    >>> a[2, 2] = 1
-    >>> a
-    array([[ 0.,  0.,  0.,  0.,  0.],
-           [ 0.,  0.,  0.,  0.,  0.],
-           [ 0.,  0.,  1.,  0.,  0.],
-           [ 0.,  0.,  0.,  0.,  0.],
-           [ 0.,  0.,  0.,  0.,  0.]])
-    >>> b = ndimage.binary_dilation(a, structure=struct).astype(a.dtype)
-    >>> b
-    array([[ 0.,  0.,  0.,  0.,  0.],
-           [ 0.,  0.,  1.,  0.,  0.],
-           [ 0.,  1.,  1.,  1.,  0.],
-           [ 0.,  0.,  1.,  0.,  0.],
-           [ 0.,  0.,  0.,  0.,  0.]])
-    >>> ndimage.binary_dilation(b, structure=struct).astype(a.dtype)
-    array([[ 0.,  0.,  1.,  0.,  0.],
-           [ 0.,  1.,  1.,  1.,  0.],
-           [ 1.,  1.,  1.,  1.,  1.],
-           [ 0.,  1.,  1.,  1.,  0.],
-           [ 0.,  0.,  1.,  0.,  0.]])
-    >>> struct = ndimage.generate_binary_structure(2, 2)
-    >>> struct
-    array([[ True,  True,  True],
-           [ True,  True,  True],
-           [ True,  True,  True]], dtype=bool)
-    >>> struct = ndimage.generate_binary_structure(3, 1)
-    >>> struct # no diagonal elements
-    array([[[False, False, False],
-            [False,  True, False],
-            [False, False, False]],
-           [[False,  True, False],
-            [ True,  True,  True],
-            [False,  True, False]],
-           [[False, False, False],
-            [False,  True, False],
-            [False, False, False]]], dtype=bool)
-
-    """
-    if connectivity < 1:
-        connectivity = 1
-    if rank < 1:
-        return np.array(True, dtype=bool)
-    output = np.fabs(np.indices([3] * rank) - 1)
-    output = np.add.reduce(output, 0)
-    return output <= connectivity
-
-
-def _binary_erosion(input, structure, iterations, mask, output,
-                    border_value, origin, invert, brute_force):
-    try:
-        iterations = operator.index(iterations)
-    except TypeError as e:
-        raise TypeError('iterations parameter should be an integer') from e
-
-    input = np.asarray(input)
-    if np.iscomplexobj(input):
-        raise TypeError('Complex type not supported')
-    if structure is None:
-        structure = generate_binary_structure(input.ndim, 1)
-    else:
-        structure = np.asarray(structure, dtype=bool)
-    if structure.ndim != input.ndim:
-        raise RuntimeError('structure and input must have same dimensionality')
-    if not structure.flags.contiguous:
-        structure = structure.copy()
-    if structure.size < 1:
-        raise RuntimeError('structure must not be empty')
-    if mask is not None:
-        mask = np.asarray(mask)
-        if mask.shape != input.shape:
-            raise RuntimeError('mask and input must have equal sizes')
-    origin = _ni_support._normalize_sequence(origin, input.ndim)
-    cit = _center_is_true(structure, origin)
-    if isinstance(output, np.ndarray):
-        if np.iscomplexobj(output):
-            raise TypeError('Complex output type not supported')
-    else:
-        output = bool
-    output = _ni_support._get_output(output, input)
-    temp_needed = np.may_share_memory(input, output)
-    if temp_needed:
-        # input and output arrays cannot share memory
-        temp = output
-        output = _ni_support._get_output(output.dtype, input)
-    if iterations == 1:
-        _nd_image.binary_erosion(input, structure, mask, output,
-                                 border_value, origin, invert, cit, 0)
-    elif cit and not brute_force:
-        changed, coordinate_list = _nd_image.binary_erosion(
-            input, structure, mask, output,
-            border_value, origin, invert, cit, 1)
-        structure = structure[tuple([slice(None, None, -1)] *
-                                    structure.ndim)]
-        for ii in range(len(origin)):
-            origin[ii] = -origin[ii]
-            if not structure.shape[ii] & 1:
-                origin[ii] -= 1
-        if mask is not None:
-            mask = np.asarray(mask, dtype=np.int8)
-        if not structure.flags.contiguous:
-            structure = structure.copy()
-        _nd_image.binary_erosion2(output, structure, mask, iterations - 1,
-                                  origin, invert, coordinate_list)
-    else:
-        tmp_in = np.empty_like(input, dtype=bool)
-        tmp_out = output
-        if iterations >= 1 and not iterations & 1:
-            tmp_in, tmp_out = tmp_out, tmp_in
-        changed = _nd_image.binary_erosion(
-            input, structure, mask, tmp_out,
-            border_value, origin, invert, cit, 0)
-        ii = 1
-        while ii < iterations or (iterations < 1 and changed):
-            tmp_in, tmp_out = tmp_out, tmp_in
-            changed = _nd_image.binary_erosion(
-                tmp_in, structure, mask, tmp_out,
-                border_value, origin, invert, cit, 0)
-            ii += 1
-    if temp_needed:
-        temp[...] = output
-        output = temp
-    return output
-
-
-def binary_erosion(input, structure=None, iterations=1, mask=None, output=None,
-                   border_value=0, origin=0, brute_force=False):
-    """
-    Multidimensional binary erosion with a given structuring element.
-
-    Binary erosion is a mathematical morphology operation used for image
-    processing.
-
-    Parameters
-    ----------
-    input : array_like
-        Binary image to be eroded. Non-zero (True) elements form
-        the subset to be eroded.
-    structure : array_like, optional
-        Structuring element used for the erosion. Non-zero elements are
-        considered True. If no structuring element is provided, an element
-        is generated with a square connectivity equal to one.
-    iterations : int, optional
-        The erosion is repeated `iterations` times (one, by default).
-        If iterations is less than 1, the erosion is repeated until the
-        result does not change anymore.
-    mask : array_like, optional
-        If a mask is given, only those elements with a True value at
-        the corresponding mask element are modified at each iteration.
-    output : ndarray, optional
-        Array of the same shape as input, into which the output is placed.
-        By default, a new array is created.
-    border_value : int (cast to 0 or 1), optional
-        Value at the border in the output array.
-    origin : int or tuple of ints, optional
-        Placement of the filter, by default 0.
-    brute_force : boolean, optional
-        Memory condition: if False, only the pixels whose value was changed in
-        the last iteration are tracked as candidates to be updated (eroded) in
-        the current iteration; if True all pixels are considered as candidates
-        for erosion, regardless of what happened in the previous iteration.
-        False by default.
-
-    Returns
-    -------
-    binary_erosion : ndarray of bools
-        Erosion of the input by the structuring element.
-
-    See Also
-    --------
-    grey_erosion, binary_dilation, binary_closing, binary_opening,
-    generate_binary_structure
-
-    Notes
-    -----
-    Erosion [1]_ is a mathematical morphology operation [2]_ that uses a
-    structuring element for shrinking the shapes in an image. The binary
-    erosion of an image by a structuring element is the locus of the points
-    where a superimposition of the structuring element centered on the point
-    is entirely contained in the set of non-zero elements of the image.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Erosion_%28morphology%29
-    .. [2] https://en.wikipedia.org/wiki/Mathematical_morphology
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.zeros((7,7), dtype=int)
-    >>> a[1:6, 2:5] = 1
-    >>> a
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> ndimage.binary_erosion(a).astype(a.dtype)
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 1, 0, 0, 0],
-           [0, 0, 0, 1, 0, 0, 0],
-           [0, 0, 0, 1, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> #Erosion removes objects smaller than the structure
-    >>> ndimage.binary_erosion(a, structure=np.ones((5,5))).astype(a.dtype)
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-
-    """
-    return _binary_erosion(input, structure, iterations, mask,
-                           output, border_value, origin, 0, brute_force)
-
-
-def binary_dilation(input, structure=None, iterations=1, mask=None,
-                    output=None, border_value=0, origin=0,
-                    brute_force=False):
-    """
-    Multidimensional binary dilation with the given structuring element.
-
-    Parameters
-    ----------
-    input : array_like
-        Binary array_like to be dilated. Non-zero (True) elements form
-        the subset to be dilated.
-    structure : array_like, optional
-        Structuring element used for the dilation. Non-zero elements are
-        considered True. If no structuring element is provided an element
-        is generated with a square connectivity equal to one.
-    iterations : int, optional
-        The dilation is repeated `iterations` times (one, by default).
-        If iterations is less than 1, the dilation is repeated until the
-        result does not change anymore. Only an integer of iterations is
-        accepted.
-    mask : array_like, optional
-        If a mask is given, only those elements with a True value at
-        the corresponding mask element are modified at each iteration.
-    output : ndarray, optional
-        Array of the same shape as input, into which the output is placed.
-        By default, a new array is created.
-    border_value : int (cast to 0 or 1), optional
-        Value at the border in the output array.
-    origin : int or tuple of ints, optional
-        Placement of the filter, by default 0.
-    brute_force : boolean, optional
-        Memory condition: if False, only the pixels whose value was changed in
-        the last iteration are tracked as candidates to be updated (dilated)
-        in the current iteration; if True all pixels are considered as
-        candidates for dilation, regardless of what happened in the previous
-        iteration. False by default.
-
-    Returns
-    -------
-    binary_dilation : ndarray of bools
-        Dilation of the input by the structuring element.
-
-    See Also
-    --------
-    grey_dilation, binary_erosion, binary_closing, binary_opening,
-    generate_binary_structure
-
-    Notes
-    -----
-    Dilation [1]_ is a mathematical morphology operation [2]_ that uses a
-    structuring element for expanding the shapes in an image. The binary
-    dilation of an image by a structuring element is the locus of the points
-    covered by the structuring element, when its center lies within the
-    non-zero points of the image.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Dilation_%28morphology%29
-    .. [2] https://en.wikipedia.org/wiki/Mathematical_morphology
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.zeros((5, 5))
-    >>> a[2, 2] = 1
-    >>> a
-    array([[ 0.,  0.,  0.,  0.,  0.],
-           [ 0.,  0.,  0.,  0.,  0.],
-           [ 0.,  0.,  1.,  0.,  0.],
-           [ 0.,  0.,  0.,  0.,  0.],
-           [ 0.,  0.,  0.,  0.,  0.]])
-    >>> ndimage.binary_dilation(a)
-    array([[False, False, False, False, False],
-           [False, False,  True, False, False],
-           [False,  True,  True,  True, False],
-           [False, False,  True, False, False],
-           [False, False, False, False, False]], dtype=bool)
-    >>> ndimage.binary_dilation(a).astype(a.dtype)
-    array([[ 0.,  0.,  0.,  0.,  0.],
-           [ 0.,  0.,  1.,  0.,  0.],
-           [ 0.,  1.,  1.,  1.,  0.],
-           [ 0.,  0.,  1.,  0.,  0.],
-           [ 0.,  0.,  0.,  0.,  0.]])
-    >>> # 3x3 structuring element with connectivity 1, used by default
-    >>> struct1 = ndimage.generate_binary_structure(2, 1)
-    >>> struct1
-    array([[False,  True, False],
-           [ True,  True,  True],
-           [False,  True, False]], dtype=bool)
-    >>> # 3x3 structuring element with connectivity 2
-    >>> struct2 = ndimage.generate_binary_structure(2, 2)
-    >>> struct2
-    array([[ True,  True,  True],
-           [ True,  True,  True],
-           [ True,  True,  True]], dtype=bool)
-    >>> ndimage.binary_dilation(a, structure=struct1).astype(a.dtype)
-    array([[ 0.,  0.,  0.,  0.,  0.],
-           [ 0.,  0.,  1.,  0.,  0.],
-           [ 0.,  1.,  1.,  1.,  0.],
-           [ 0.,  0.,  1.,  0.,  0.],
-           [ 0.,  0.,  0.,  0.,  0.]])
-    >>> ndimage.binary_dilation(a, structure=struct2).astype(a.dtype)
-    array([[ 0.,  0.,  0.,  0.,  0.],
-           [ 0.,  1.,  1.,  1.,  0.],
-           [ 0.,  1.,  1.,  1.,  0.],
-           [ 0.,  1.,  1.,  1.,  0.],
-           [ 0.,  0.,  0.,  0.,  0.]])
-    >>> ndimage.binary_dilation(a, structure=struct1,\\
-    ... iterations=2).astype(a.dtype)
-    array([[ 0.,  0.,  1.,  0.,  0.],
-           [ 0.,  1.,  1.,  1.,  0.],
-           [ 1.,  1.,  1.,  1.,  1.],
-           [ 0.,  1.,  1.,  1.,  0.],
-           [ 0.,  0.,  1.,  0.,  0.]])
-
-    """
-    input = np.asarray(input)
-    if structure is None:
-        structure = generate_binary_structure(input.ndim, 1)
-    origin = _ni_support._normalize_sequence(origin, input.ndim)
-    structure = np.asarray(structure)
-    structure = structure[tuple([slice(None, None, -1)] *
-                                structure.ndim)]
-    for ii in range(len(origin)):
-        origin[ii] = -origin[ii]
-        if not structure.shape[ii] & 1:
-            origin[ii] -= 1
-
-    return _binary_erosion(input, structure, iterations, mask,
-                           output, border_value, origin, 1, brute_force)
-
-
-def binary_opening(input, structure=None, iterations=1, output=None,
-                   origin=0, mask=None, border_value=0, brute_force=False):
-    """
-    Multidimensional binary opening with the given structuring element.
-
-    The *opening* of an input image by a structuring element is the
-    *dilation* of the *erosion* of the image by the structuring element.
-
-    Parameters
-    ----------
-    input : array_like
-        Binary array_like to be opened. Non-zero (True) elements form
-        the subset to be opened.
-    structure : array_like, optional
-        Structuring element used for the opening. Non-zero elements are
-        considered True. If no structuring element is provided an element
-        is generated with a square connectivity equal to one (i.e., only
-        nearest neighbors are connected to the center, diagonally-connected
-        elements are not considered neighbors).
-    iterations : int, optional
-        The erosion step of the opening, then the dilation step are each
-        repeated `iterations` times (one, by default). If `iterations` is
-        less than 1, each operation is repeated until the result does
-        not change anymore. Only an integer of iterations is accepted.
-    output : ndarray, optional
-        Array of the same shape as input, into which the output is placed.
-        By default, a new array is created.
-    origin : int or tuple of ints, optional
-        Placement of the filter, by default 0.
-    mask : array_like, optional
-        If a mask is given, only those elements with a True value at
-        the corresponding mask element are modified at each iteration.
-
-        .. versionadded:: 1.1.0
-    border_value : int (cast to 0 or 1), optional
-        Value at the border in the output array.
-
-        .. versionadded:: 1.1.0
-    brute_force : boolean, optional
-        Memory condition: if False, only the pixels whose value was changed in
-        the last iteration are tracked as candidates to be updated in the
-        current iteration; if true all pixels are considered as candidates for
-        update, regardless of what happened in the previous iteration.
-        False by default.
-
-        .. versionadded:: 1.1.0
-
-    Returns
-    -------
-    binary_opening : ndarray of bools
-        Opening of the input by the structuring element.
-
-    See Also
-    --------
-    grey_opening, binary_closing, binary_erosion, binary_dilation,
-    generate_binary_structure
-
-    Notes
-    -----
-    *Opening* [1]_ is a mathematical morphology operation [2]_ that
-    consists in the succession of an erosion and a dilation of the
-    input with the same structuring element. Opening, therefore, removes
-    objects smaller than the structuring element.
-
-    Together with *closing* (`binary_closing`), opening can be used for
-    noise removal.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Opening_%28morphology%29
-    .. [2] https://en.wikipedia.org/wiki/Mathematical_morphology
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.zeros((5,5), dtype=int)
-    >>> a[1:4, 1:4] = 1; a[4, 4] = 1
-    >>> a
-    array([[0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 0, 0, 0, 1]])
-    >>> # Opening removes small objects
-    >>> ndimage.binary_opening(a, structure=np.ones((3,3))).astype(int)
-    array([[0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0]])
-    >>> # Opening can also smooth corners
-    >>> ndimage.binary_opening(a).astype(int)
-    array([[0, 0, 0, 0, 0],
-           [0, 0, 1, 0, 0],
-           [0, 1, 1, 1, 0],
-           [0, 0, 1, 0, 0],
-           [0, 0, 0, 0, 0]])
-    >>> # Opening is the dilation of the erosion of the input
-    >>> ndimage.binary_erosion(a).astype(int)
-    array([[0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0],
-           [0, 0, 1, 0, 0],
-           [0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0]])
-    >>> ndimage.binary_dilation(ndimage.binary_erosion(a)).astype(int)
-    array([[0, 0, 0, 0, 0],
-           [0, 0, 1, 0, 0],
-           [0, 1, 1, 1, 0],
-           [0, 0, 1, 0, 0],
-           [0, 0, 0, 0, 0]])
-
-    """
-    input = np.asarray(input)
-    if structure is None:
-        rank = input.ndim
-        structure = generate_binary_structure(rank, 1)
-
-    tmp = binary_erosion(input, structure, iterations, mask, None,
-                         border_value, origin, brute_force)
-    return binary_dilation(tmp, structure, iterations, mask, output,
-                           border_value, origin, brute_force)
-
-
-def binary_closing(input, structure=None, iterations=1, output=None,
-                   origin=0, mask=None, border_value=0, brute_force=False):
-    """
-    Multidimensional binary closing with the given structuring element.
-
-    The *closing* of an input image by a structuring element is the
-    *erosion* of the *dilation* of the image by the structuring element.
-
-    Parameters
-    ----------
-    input : array_like
-        Binary array_like to be closed. Non-zero (True) elements form
-        the subset to be closed.
-    structure : array_like, optional
-        Structuring element used for the closing. Non-zero elements are
-        considered True. If no structuring element is provided an element
-        is generated with a square connectivity equal to one (i.e., only
-        nearest neighbors are connected to the center, diagonally-connected
-        elements are not considered neighbors).
-    iterations : int, optional
-        The dilation step of the closing, then the erosion step are each
-        repeated `iterations` times (one, by default). If iterations is
-        less than 1, each operations is repeated until the result does
-        not change anymore. Only an integer of iterations is accepted.
-    output : ndarray, optional
-        Array of the same shape as input, into which the output is placed.
-        By default, a new array is created.
-    origin : int or tuple of ints, optional
-        Placement of the filter, by default 0.
-    mask : array_like, optional
-        If a mask is given, only those elements with a True value at
-        the corresponding mask element are modified at each iteration.
-
-        .. versionadded:: 1.1.0
-    border_value : int (cast to 0 or 1), optional
-        Value at the border in the output array.
-
-        .. versionadded:: 1.1.0
-    brute_force : boolean, optional
-        Memory condition: if False, only the pixels whose value was changed in
-        the last iteration are tracked as candidates to be updated in the
-        current iteration; if true al pixels are considered as candidates for
-        update, regardless of what happened in the previous iteration.
-        False by default.
-
-        .. versionadded:: 1.1.0
-
-    Returns
-    -------
-    binary_closing : ndarray of bools
-        Closing of the input by the structuring element.
-
-    See Also
-    --------
-    grey_closing, binary_opening, binary_dilation, binary_erosion,
-    generate_binary_structure
-
-    Notes
-    -----
-    *Closing* [1]_ is a mathematical morphology operation [2]_ that
-    consists in the succession of a dilation and an erosion of the
-    input with the same structuring element. Closing therefore fills
-    holes smaller than the structuring element.
-
-    Together with *opening* (`binary_opening`), closing can be used for
-    noise removal.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Closing_%28morphology%29
-    .. [2] https://en.wikipedia.org/wiki/Mathematical_morphology
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.zeros((5,5), dtype=int)
-    >>> a[1:-1, 1:-1] = 1; a[2,2] = 0
-    >>> a
-    array([[0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 0, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0]])
-    >>> # Closing removes small holes
-    >>> ndimage.binary_closing(a).astype(int)
-    array([[0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0]])
-    >>> # Closing is the erosion of the dilation of the input
-    >>> ndimage.binary_dilation(a).astype(int)
-    array([[0, 1, 1, 1, 0],
-           [1, 1, 1, 1, 1],
-           [1, 1, 1, 1, 1],
-           [1, 1, 1, 1, 1],
-           [0, 1, 1, 1, 0]])
-    >>> ndimage.binary_erosion(ndimage.binary_dilation(a)).astype(int)
-    array([[0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0]])
-
-
-    >>> a = np.zeros((7,7), dtype=int)
-    >>> a[1:6, 2:5] = 1; a[1:3,3] = 0
-    >>> a
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 0, 1, 0, 0],
-           [0, 0, 1, 0, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> # In addition to removing holes, closing can also
-    >>> # coarsen boundaries with fine hollows.
-    >>> ndimage.binary_closing(a).astype(int)
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 0, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> ndimage.binary_closing(a, structure=np.ones((2,2))).astype(int)
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-
-    """
-    input = np.asarray(input)
-    if structure is None:
-        rank = input.ndim
-        structure = generate_binary_structure(rank, 1)
-
-    tmp = binary_dilation(input, structure, iterations, mask, None,
-                          border_value, origin, brute_force)
-    return binary_erosion(tmp, structure, iterations, mask, output,
-                          border_value, origin, brute_force)
-
-
-def binary_hit_or_miss(input, structure1=None, structure2=None,
-                       output=None, origin1=0, origin2=None):
-    """
-    Multidimensional binary hit-or-miss transform.
-
-    The hit-or-miss transform finds the locations of a given pattern
-    inside the input image.
-
-    Parameters
-    ----------
-    input : array_like (cast to booleans)
-        Binary image where a pattern is to be detected.
-    structure1 : array_like (cast to booleans), optional
-        Part of the structuring element to be fitted to the foreground
-        (non-zero elements) of `input`. If no value is provided, a
-        structure of square connectivity 1 is chosen.
-    structure2 : array_like (cast to booleans), optional
-        Second part of the structuring element that has to miss completely
-        the foreground. If no value is provided, the complementary of
-        `structure1` is taken.
-    output : ndarray, optional
-        Array of the same shape as input, into which the output is placed.
-        By default, a new array is created.
-    origin1 : int or tuple of ints, optional
-        Placement of the first part of the structuring element `structure1`,
-        by default 0 for a centered structure.
-    origin2 : int or tuple of ints, optional
-        Placement of the second part of the structuring element `structure2`,
-        by default 0 for a centered structure. If a value is provided for
-        `origin1` and not for `origin2`, then `origin2` is set to `origin1`.
-
-    Returns
-    -------
-    binary_hit_or_miss : ndarray
-        Hit-or-miss transform of `input` with the given structuring
-        element (`structure1`, `structure2`).
-
-    See Also
-    --------
-    binary_erosion
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Hit-or-miss_transform
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.zeros((7,7), dtype=int)
-    >>> a[1, 1] = 1; a[2:4, 2:4] = 1; a[4:6, 4:6] = 1
-    >>> a
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 1, 0, 0, 0, 0, 0],
-           [0, 0, 1, 1, 0, 0, 0],
-           [0, 0, 1, 1, 0, 0, 0],
-           [0, 0, 0, 0, 1, 1, 0],
-           [0, 0, 0, 0, 1, 1, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> structure1 = np.array([[1, 0, 0], [0, 1, 1], [0, 1, 1]])
-    >>> structure1
-    array([[1, 0, 0],
-           [0, 1, 1],
-           [0, 1, 1]])
-    >>> # Find the matches of structure1 in the array a
-    >>> ndimage.binary_hit_or_miss(a, structure1=structure1).astype(int)
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 1, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> # Change the origin of the filter
-    >>> # origin1=1 is equivalent to origin1=(1,1) here
-    >>> ndimage.binary_hit_or_miss(a, structure1=structure1,\\
-    ... origin1=1).astype(int)
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 1, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 1, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-
-    """
-    input = np.asarray(input)
-    if structure1 is None:
-        structure1 = generate_binary_structure(input.ndim, 1)
-    if structure2 is None:
-        structure2 = np.logical_not(structure1)
-    origin1 = _ni_support._normalize_sequence(origin1, input.ndim)
-    if origin2 is None:
-        origin2 = origin1
-    else:
-        origin2 = _ni_support._normalize_sequence(origin2, input.ndim)
-
-    tmp1 = _binary_erosion(input, structure1, 1, None, None, 0, origin1,
-                           0, False)
-    inplace = isinstance(output, np.ndarray)
-    result = _binary_erosion(input, structure2, 1, None, output, 0,
-                             origin2, 1, False)
-    if inplace:
-        np.logical_not(output, output)
-        np.logical_and(tmp1, output, output)
-    else:
-        np.logical_not(result, result)
-        return np.logical_and(tmp1, result)
-
-
-def binary_propagation(input, structure=None, mask=None,
-                       output=None, border_value=0, origin=0):
-    """
-    Multidimensional binary propagation with the given structuring element.
-
-    Parameters
-    ----------
-    input : array_like
-        Binary image to be propagated inside `mask`.
-    structure : array_like, optional
-        Structuring element used in the successive dilations. The output
-        may depend on the structuring element, especially if `mask` has
-        several connex components. If no structuring element is
-        provided, an element is generated with a squared connectivity equal
-        to one.
-    mask : array_like, optional
-        Binary mask defining the region into which `input` is allowed to
-        propagate.
-    output : ndarray, optional
-        Array of the same shape as input, into which the output is placed.
-        By default, a new array is created.
-    border_value : int (cast to 0 or 1), optional
-        Value at the border in the output array.
-    origin : int or tuple of ints, optional
-        Placement of the filter, by default 0.
-
-    Returns
-    -------
-    binary_propagation : ndarray
-        Binary propagation of `input` inside `mask`.
-
-    Notes
-    -----
-    This function is functionally equivalent to calling binary_dilation
-    with the number of iterations less than one: iterative dilation until
-    the result does not change anymore.
-
-    The succession of an erosion and propagation inside the original image
-    can be used instead of an *opening* for deleting small objects while
-    keeping the contours of larger objects untouched.
-
-    References
-    ----------
-    .. [1] http://cmm.ensmp.fr/~serra/cours/pdf/en/ch6en.pdf, slide 15.
-    .. [2] I.T. Young, J.J. Gerbrands, and L.J. van Vliet, "Fundamentals of
-        image processing", 1998
-        ftp://qiftp.tudelft.nl/DIPimage/docs/FIP2.3.pdf
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> input = np.zeros((8, 8), dtype=int)
-    >>> input[2, 2] = 1
-    >>> mask = np.zeros((8, 8), dtype=int)
-    >>> mask[1:4, 1:4] = mask[4, 4]  = mask[6:8, 6:8] = 1
-    >>> input
-    array([[0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0]])
-    >>> mask
-    array([[0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0, 0, 0, 0],
-           [0, 0, 0, 0, 1, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 1, 1],
-           [0, 0, 0, 0, 0, 0, 1, 1]])
-    >>> ndimage.binary_propagation(input, mask=mask).astype(int)
-    array([[0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0]])
-    >>> ndimage.binary_propagation(input, mask=mask,\\
-    ... structure=np.ones((3,3))).astype(int)
-    array([[0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0, 0, 0, 0],
-           [0, 0, 0, 0, 1, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0, 0]])
-
-    >>> # Comparison between opening and erosion+propagation
-    >>> a = np.zeros((6,6), dtype=int)
-    >>> a[2:5, 2:5] = 1; a[0, 0] = 1; a[5, 5] = 1
-    >>> a
-    array([[1, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 1, 1, 0],
-           [0, 0, 1, 1, 1, 0],
-           [0, 0, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0, 1]])
-    >>> ndimage.binary_opening(a).astype(int)
-    array([[0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0],
-           [0, 0, 0, 1, 0, 0],
-           [0, 0, 0, 0, 0, 0]])
-    >>> b = ndimage.binary_erosion(a)
-    >>> b.astype(int)
-    array([[0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 1, 0, 0],
-           [0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0]])
-    >>> ndimage.binary_propagation(b, mask=a).astype(int)
-    array([[0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 1, 1, 0],
-           [0, 0, 1, 1, 1, 0],
-           [0, 0, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0, 0]])
-
-    """
-    return binary_dilation(input, structure, -1, mask, output,
-                           border_value, origin)
-
-
-def binary_fill_holes(input, structure=None, output=None, origin=0):
-    """
-    Fill the holes in binary objects.
-
-
-    Parameters
-    ----------
-    input : array_like
-        N-D binary array with holes to be filled
-    structure : array_like, optional
-        Structuring element used in the computation; large-size elements
-        make computations faster but may miss holes separated from the
-        background by thin regions. The default element (with a square
-        connectivity equal to one) yields the intuitive result where all
-        holes in the input have been filled.
-    output : ndarray, optional
-        Array of the same shape as input, into which the output is placed.
-        By default, a new array is created.
-    origin : int, tuple of ints, optional
-        Position of the structuring element.
-
-    Returns
-    -------
-    out : ndarray
-        Transformation of the initial image `input` where holes have been
-        filled.
-
-    See Also
-    --------
-    binary_dilation, binary_propagation, label
-
-    Notes
-    -----
-    The algorithm used in this function consists in invading the complementary
-    of the shapes in `input` from the outer boundary of the image,
-    using binary dilations. Holes are not connected to the boundary and are
-    therefore not invaded. The result is the complementary subset of the
-    invaded region.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Mathematical_morphology
-
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.zeros((5, 5), dtype=int)
-    >>> a[1:4, 1:4] = 1
-    >>> a[2,2] = 0
-    >>> a
-    array([[0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 0, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0]])
-    >>> ndimage.binary_fill_holes(a).astype(int)
-    array([[0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0]])
-    >>> # Too big structuring element
-    >>> ndimage.binary_fill_holes(a, structure=np.ones((5,5))).astype(int)
-    array([[0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 0],
-           [0, 1, 0, 1, 0],
-           [0, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0]])
-
-    """
-    mask = np.logical_not(input)
-    tmp = np.zeros(mask.shape, bool)
-    inplace = isinstance(output, np.ndarray)
-    if inplace:
-        binary_dilation(tmp, structure, -1, mask, output, 1, origin)
-        np.logical_not(output, output)
-    else:
-        output = binary_dilation(tmp, structure, -1, mask, None, 1,
-                                 origin)
-        np.logical_not(output, output)
-        return output
-
-
-def grey_erosion(input, size=None, footprint=None, structure=None,
-                 output=None, mode="reflect", cval=0.0, origin=0):
-    """
-    Calculate a greyscale erosion, using either a structuring element,
-    or a footprint corresponding to a flat structuring element.
-
-    Grayscale erosion is a mathematical morphology operation. For the
-    simple case of a full and flat structuring element, it can be viewed
-    as a minimum filter over a sliding window.
-
-    Parameters
-    ----------
-    input : array_like
-        Array over which the grayscale erosion is to be computed.
-    size : tuple of ints
-        Shape of a flat and full structuring element used for the grayscale
-        erosion. Optional if `footprint` or `structure` is provided.
-    footprint : array of ints, optional
-        Positions of non-infinite elements of a flat structuring element
-        used for the grayscale erosion. Non-zero values give the set of
-        neighbors of the center over which the minimum is chosen.
-    structure : array of ints, optional
-        Structuring element used for the grayscale erosion. `structure`
-        may be a non-flat structuring element. The `structure` array applies a
-        subtractive offset for each pixel in the neighborhood.
-    output : array, optional
-        An array used for storing the output of the erosion may be provided.
-    mode : {'reflect','constant','nearest','mirror', 'wrap'}, optional
-        The `mode` parameter determines how the array borders are
-        handled, where `cval` is the value when mode is equal to
-        'constant'. Default is 'reflect'
-    cval : scalar, optional
-        Value to fill past edges of input if `mode` is 'constant'. Default
-        is 0.0.
-    origin : scalar, optional
-        The `origin` parameter controls the placement of the filter.
-        Default 0
-
-    Returns
-    -------
-    output : ndarray
-        Grayscale erosion of `input`.
-
-    See Also
-    --------
-    binary_erosion, grey_dilation, grey_opening, grey_closing
-    generate_binary_structure, minimum_filter
-
-    Notes
-    -----
-    The grayscale erosion of an image input by a structuring element s defined
-    over a domain E is given by:
-
-    (input+s)(x) = min {input(y) - s(x-y), for y in E}
-
-    In particular, for structuring elements defined as
-    s(y) = 0 for y in E, the grayscale erosion computes the minimum of the
-    input image inside a sliding window defined by E.
-
-    Grayscale erosion [1]_ is a *mathematical morphology* operation [2]_.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Erosion_%28morphology%29
-    .. [2] https://en.wikipedia.org/wiki/Mathematical_morphology
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.zeros((7,7), dtype=int)
-    >>> a[1:6, 1:6] = 3
-    >>> a[4,4] = 2; a[2,3] = 1
-    >>> a
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 3, 3, 3, 3, 3, 0],
-           [0, 3, 3, 1, 3, 3, 0],
-           [0, 3, 3, 3, 3, 3, 0],
-           [0, 3, 3, 3, 2, 3, 0],
-           [0, 3, 3, 3, 3, 3, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> ndimage.grey_erosion(a, size=(3,3))
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 3, 2, 2, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> footprint = ndimage.generate_binary_structure(2, 1)
-    >>> footprint
-    array([[False,  True, False],
-           [ True,  True,  True],
-           [False,  True, False]], dtype=bool)
-    >>> # Diagonally-connected elements are not considered neighbors
-    >>> ndimage.grey_erosion(a, footprint=footprint)
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 3, 1, 2, 0, 0],
-           [0, 0, 3, 2, 2, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-
-    """
-    if size is None and footprint is None and structure is None:
-        raise ValueError("size, footprint, or structure must be specified")
-
-    return _filters._min_or_max_filter(input, size, footprint, structure,
-                                       output, mode, cval, origin, 1)
-
-
-def grey_dilation(input, size=None, footprint=None, structure=None,
-                  output=None, mode="reflect", cval=0.0, origin=0):
-    """
-    Calculate a greyscale dilation, using either a structuring element,
-    or a footprint corresponding to a flat structuring element.
-
-    Grayscale dilation is a mathematical morphology operation. For the
-    simple case of a full and flat structuring element, it can be viewed
-    as a maximum filter over a sliding window.
-
-    Parameters
-    ----------
-    input : array_like
-        Array over which the grayscale dilation is to be computed.
-    size : tuple of ints
-        Shape of a flat and full structuring element used for the grayscale
-        dilation. Optional if `footprint` or `structure` is provided.
-    footprint : array of ints, optional
-        Positions of non-infinite elements of a flat structuring element
-        used for the grayscale dilation. Non-zero values give the set of
-        neighbors of the center over which the maximum is chosen.
-    structure : array of ints, optional
-        Structuring element used for the grayscale dilation. `structure`
-        may be a non-flat structuring element. The `structure` array applies an
-        additive offset for each pixel in the neighborhood.
-    output : array, optional
-        An array used for storing the output of the dilation may be provided.
-    mode : {'reflect','constant','nearest','mirror', 'wrap'}, optional
-        The `mode` parameter determines how the array borders are
-        handled, where `cval` is the value when mode is equal to
-        'constant'. Default is 'reflect'
-    cval : scalar, optional
-        Value to fill past edges of input if `mode` is 'constant'. Default
-        is 0.0.
-    origin : scalar, optional
-        The `origin` parameter controls the placement of the filter.
-        Default 0
-
-    Returns
-    -------
-    grey_dilation : ndarray
-        Grayscale dilation of `input`.
-
-    See Also
-    --------
-    binary_dilation, grey_erosion, grey_closing, grey_opening
-    generate_binary_structure, maximum_filter
-
-    Notes
-    -----
-    The grayscale dilation of an image input by a structuring element s defined
-    over a domain E is given by:
-
-    (input+s)(x) = max {input(y) + s(x-y), for y in E}
-
-    In particular, for structuring elements defined as
-    s(y) = 0 for y in E, the grayscale dilation computes the maximum of the
-    input image inside a sliding window defined by E.
-
-    Grayscale dilation [1]_ is a *mathematical morphology* operation [2]_.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Dilation_%28morphology%29
-    .. [2] https://en.wikipedia.org/wiki/Mathematical_morphology
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.zeros((7,7), dtype=int)
-    >>> a[2:5, 2:5] = 1
-    >>> a[4,4] = 2; a[2,3] = 3
-    >>> a
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 3, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 2, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> ndimage.grey_dilation(a, size=(3,3))
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 1, 3, 3, 3, 1, 0],
-           [0, 1, 3, 3, 3, 1, 0],
-           [0, 1, 3, 3, 3, 2, 0],
-           [0, 1, 1, 2, 2, 2, 0],
-           [0, 1, 1, 2, 2, 2, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> ndimage.grey_dilation(a, footprint=np.ones((3,3)))
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 1, 3, 3, 3, 1, 0],
-           [0, 1, 3, 3, 3, 1, 0],
-           [0, 1, 3, 3, 3, 2, 0],
-           [0, 1, 1, 2, 2, 2, 0],
-           [0, 1, 1, 2, 2, 2, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> s = ndimage.generate_binary_structure(2,1)
-    >>> s
-    array([[False,  True, False],
-           [ True,  True,  True],
-           [False,  True, False]], dtype=bool)
-    >>> ndimage.grey_dilation(a, footprint=s)
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 3, 1, 0, 0],
-           [0, 1, 3, 3, 3, 1, 0],
-           [0, 1, 1, 3, 2, 1, 0],
-           [0, 1, 1, 2, 2, 2, 0],
-           [0, 0, 1, 1, 2, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> ndimage.grey_dilation(a, size=(3,3), structure=np.ones((3,3)))
-    array([[1, 1, 1, 1, 1, 1, 1],
-           [1, 2, 4, 4, 4, 2, 1],
-           [1, 2, 4, 4, 4, 2, 1],
-           [1, 2, 4, 4, 4, 3, 1],
-           [1, 2, 2, 3, 3, 3, 1],
-           [1, 2, 2, 3, 3, 3, 1],
-           [1, 1, 1, 1, 1, 1, 1]])
-
-    """
-    if size is None and footprint is None and structure is None:
-        raise ValueError("size, footprint, or structure must be specified")
-    if structure is not None:
-        structure = np.asarray(structure)
-        structure = structure[tuple([slice(None, None, -1)] *
-                                    structure.ndim)]
-    if footprint is not None:
-        footprint = np.asarray(footprint)
-        footprint = footprint[tuple([slice(None, None, -1)] *
-                                    footprint.ndim)]
-
-    input = np.asarray(input)
-    origin = _ni_support._normalize_sequence(origin, input.ndim)
-    for ii in range(len(origin)):
-        origin[ii] = -origin[ii]
-        if footprint is not None:
-            sz = footprint.shape[ii]
-        elif structure is not None:
-            sz = structure.shape[ii]
-        elif np.isscalar(size):
-            sz = size
-        else:
-            sz = size[ii]
-        if not sz & 1:
-            origin[ii] -= 1
-
-    return _filters._min_or_max_filter(input, size, footprint, structure,
-                                       output, mode, cval, origin, 0)
-
-
-def grey_opening(input, size=None, footprint=None, structure=None,
-                 output=None, mode="reflect", cval=0.0, origin=0):
-    """
-    Multidimensional grayscale opening.
-
-    A grayscale opening consists in the succession of a grayscale erosion,
-    and a grayscale dilation.
-
-    Parameters
-    ----------
-    input : array_like
-        Array over which the grayscale opening is to be computed.
-    size : tuple of ints
-        Shape of a flat and full structuring element used for the grayscale
-        opening. Optional if `footprint` or `structure` is provided.
-    footprint : array of ints, optional
-        Positions of non-infinite elements of a flat structuring element
-        used for the grayscale opening.
-    structure : array of ints, optional
-        Structuring element used for the grayscale opening. `structure`
-        may be a non-flat structuring element. The `structure` array applies
-        offsets to the pixels in a neighborhood (the offset is additive during
-        dilation and subtractive during erosion).
-    output : array, optional
-        An array used for storing the output of the opening may be provided.
-    mode : {'reflect', 'constant', 'nearest', 'mirror', 'wrap'}, optional
-        The `mode` parameter determines how the array borders are
-        handled, where `cval` is the value when mode is equal to
-        'constant'. Default is 'reflect'
-    cval : scalar, optional
-        Value to fill past edges of input if `mode` is 'constant'. Default
-        is 0.0.
-    origin : scalar, optional
-        The `origin` parameter controls the placement of the filter.
-        Default 0
-
-    Returns
-    -------
-    grey_opening : ndarray
-        Result of the grayscale opening of `input` with `structure`.
-
-    See Also
-    --------
-    binary_opening, grey_dilation, grey_erosion, grey_closing
-    generate_binary_structure
-
-    Notes
-    -----
-    The action of a grayscale opening with a flat structuring element amounts
-    to smoothen high local maxima, whereas binary opening erases small objects.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Mathematical_morphology
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.arange(36).reshape((6,6))
-    >>> a[3, 3] = 50
-    >>> a
-    array([[ 0,  1,  2,  3,  4,  5],
-           [ 6,  7,  8,  9, 10, 11],
-           [12, 13, 14, 15, 16, 17],
-           [18, 19, 20, 50, 22, 23],
-           [24, 25, 26, 27, 28, 29],
-           [30, 31, 32, 33, 34, 35]])
-    >>> ndimage.grey_opening(a, size=(3,3))
-    array([[ 0,  1,  2,  3,  4,  4],
-           [ 6,  7,  8,  9, 10, 10],
-           [12, 13, 14, 15, 16, 16],
-           [18, 19, 20, 22, 22, 22],
-           [24, 25, 26, 27, 28, 28],
-           [24, 25, 26, 27, 28, 28]])
-    >>> # Note that the local maximum a[3,3] has disappeared
-
-    """
-    if (size is not None) and (footprint is not None):
-        warnings.warn("ignoring size because footprint is set",
-                      UserWarning, stacklevel=2)
-    tmp = grey_erosion(input, size, footprint, structure, None, mode,
-                       cval, origin)
-    return grey_dilation(tmp, size, footprint, structure, output, mode,
-                         cval, origin)
-
-
-def grey_closing(input, size=None, footprint=None, structure=None,
-                 output=None, mode="reflect", cval=0.0, origin=0):
-    """
-    Multidimensional grayscale closing.
-
-    A grayscale closing consists in the succession of a grayscale dilation,
-    and a grayscale erosion.
-
-    Parameters
-    ----------
-    input : array_like
-        Array over which the grayscale closing is to be computed.
-    size : tuple of ints
-        Shape of a flat and full structuring element used for the grayscale
-        closing. Optional if `footprint` or `structure` is provided.
-    footprint : array of ints, optional
-        Positions of non-infinite elements of a flat structuring element
-        used for the grayscale closing.
-    structure : array of ints, optional
-        Structuring element used for the grayscale closing. `structure`
-        may be a non-flat structuring element. The `structure` array applies
-        offsets to the pixels in a neighborhood (the offset is additive during
-        dilation and subtractive during erosion)
-    output : array, optional
-        An array used for storing the output of the closing may be provided.
-    mode : {'reflect', 'constant', 'nearest', 'mirror', 'wrap'}, optional
-        The `mode` parameter determines how the array borders are
-        handled, where `cval` is the value when mode is equal to
-        'constant'. Default is 'reflect'
-    cval : scalar, optional
-        Value to fill past edges of input if `mode` is 'constant'. Default
-        is 0.0.
-    origin : scalar, optional
-        The `origin` parameter controls the placement of the filter.
-        Default 0
-
-    Returns
-    -------
-    grey_closing : ndarray
-        Result of the grayscale closing of `input` with `structure`.
-
-    See Also
-    --------
-    binary_closing, grey_dilation, grey_erosion, grey_opening,
-    generate_binary_structure
-
-    Notes
-    -----
-    The action of a grayscale closing with a flat structuring element amounts
-    to smoothen deep local minima, whereas binary closing fills small holes.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Mathematical_morphology
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.arange(36).reshape((6,6))
-    >>> a[3,3] = 0
-    >>> a
-    array([[ 0,  1,  2,  3,  4,  5],
-           [ 6,  7,  8,  9, 10, 11],
-           [12, 13, 14, 15, 16, 17],
-           [18, 19, 20,  0, 22, 23],
-           [24, 25, 26, 27, 28, 29],
-           [30, 31, 32, 33, 34, 35]])
-    >>> ndimage.grey_closing(a, size=(3,3))
-    array([[ 7,  7,  8,  9, 10, 11],
-           [ 7,  7,  8,  9, 10, 11],
-           [13, 13, 14, 15, 16, 17],
-           [19, 19, 20, 20, 22, 23],
-           [25, 25, 26, 27, 28, 29],
-           [31, 31, 32, 33, 34, 35]])
-    >>> # Note that the local minimum a[3,3] has disappeared
-
-    """
-    if (size is not None) and (footprint is not None):
-        warnings.warn("ignoring size because footprint is set",
-                      UserWarning, stacklevel=2)
-    tmp = grey_dilation(input, size, footprint, structure, None, mode,
-                        cval, origin)
-    return grey_erosion(tmp, size, footprint, structure, output, mode,
-                        cval, origin)
-
-
-def morphological_gradient(input, size=None, footprint=None, structure=None,
-                           output=None, mode="reflect", cval=0.0, origin=0):
-    """
-    Multidimensional morphological gradient.
-
-    The morphological gradient is calculated as the difference between a
-    dilation and an erosion of the input with a given structuring element.
-
-    Parameters
-    ----------
-    input : array_like
-        Array over which to compute the morphlogical gradient.
-    size : tuple of ints
-        Shape of a flat and full structuring element used for the mathematical
-        morphology operations. Optional if `footprint` or `structure` is
-        provided. A larger `size` yields a more blurred gradient.
-    footprint : array of ints, optional
-        Positions of non-infinite elements of a flat structuring element
-        used for the morphology operations. Larger footprints
-        give a more blurred morphological gradient.
-    structure : array of ints, optional
-        Structuring element used for the morphology operations. `structure` may
-        be a non-flat structuring element. The `structure` array applies
-        offsets to the pixels in a neighborhood (the offset is additive during
-        dilation and subtractive during erosion)
-    output : array, optional
-        An array used for storing the output of the morphological gradient
-        may be provided.
-    mode : {'reflect', 'constant', 'nearest', 'mirror', 'wrap'}, optional
-        The `mode` parameter determines how the array borders are
-        handled, where `cval` is the value when mode is equal to
-        'constant'. Default is 'reflect'
-    cval : scalar, optional
-        Value to fill past edges of input if `mode` is 'constant'. Default
-        is 0.0.
-    origin : scalar, optional
-        The `origin` parameter controls the placement of the filter.
-        Default 0
-
-    Returns
-    -------
-    morphological_gradient : ndarray
-        Morphological gradient of `input`.
-
-    See Also
-    --------
-    grey_dilation, grey_erosion, gaussian_gradient_magnitude
-
-    Notes
-    -----
-    For a flat structuring element, the morphological gradient
-    computed at a given point corresponds to the maximal difference
-    between elements of the input among the elements covered by the
-    structuring element centered on the point.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Mathematical_morphology
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.zeros((7,7), dtype=int)
-    >>> a[2:5, 2:5] = 1
-    >>> ndimage.morphological_gradient(a, size=(3,3))
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 1, 1, 0],
-           [0, 1, 1, 1, 1, 1, 0],
-           [0, 1, 1, 0, 1, 1, 0],
-           [0, 1, 1, 1, 1, 1, 0],
-           [0, 1, 1, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> # The morphological gradient is computed as the difference
-    >>> # between a dilation and an erosion
-    >>> ndimage.grey_dilation(a, size=(3,3)) -\\
-    ...  ndimage.grey_erosion(a, size=(3,3))
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 1, 1, 1, 1, 1, 0],
-           [0, 1, 1, 1, 1, 1, 0],
-           [0, 1, 1, 0, 1, 1, 0],
-           [0, 1, 1, 1, 1, 1, 0],
-           [0, 1, 1, 1, 1, 1, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> a = np.zeros((7,7), dtype=int)
-    >>> a[2:5, 2:5] = 1
-    >>> a[4,4] = 2; a[2,3] = 3
-    >>> a
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 1, 3, 1, 0, 0],
-           [0, 0, 1, 1, 1, 0, 0],
-           [0, 0, 1, 1, 2, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-    >>> ndimage.morphological_gradient(a, size=(3,3))
-    array([[0, 0, 0, 0, 0, 0, 0],
-           [0, 1, 3, 3, 3, 1, 0],
-           [0, 1, 3, 3, 3, 1, 0],
-           [0, 1, 3, 2, 3, 2, 0],
-           [0, 1, 1, 2, 2, 2, 0],
-           [0, 1, 1, 2, 2, 2, 0],
-           [0, 0, 0, 0, 0, 0, 0]])
-
-    """
-    tmp = grey_dilation(input, size, footprint, structure, None, mode,
-                        cval, origin)
-    if isinstance(output, np.ndarray):
-        grey_erosion(input, size, footprint, structure, output, mode,
-                     cval, origin)
-        return np.subtract(tmp, output, output)
-    else:
-        return (tmp - grey_erosion(input, size, footprint, structure,
-                                   None, mode, cval, origin))
-
-
-def morphological_laplace(input, size=None, footprint=None,
-                          structure=None, output=None,
-                          mode="reflect", cval=0.0, origin=0):
-    """
-    Multidimensional morphological laplace.
-
-    Parameters
-    ----------
-    input : array_like
-        Input.
-    size : tuple of ints
-        Shape of a flat and full structuring element used for the mathematical
-        morphology operations. Optional if `footprint` or `structure` is
-        provided.
-    footprint : array of ints, optional
-        Positions of non-infinite elements of a flat structuring element
-        used for the morphology operations.
-    structure : array of ints, optional
-        Structuring element used for the morphology operations. `structure` may
-        be a non-flat structuring element. The `structure` array applies
-        offsets to the pixels in a neighborhood (the offset is additive during
-        dilation and subtractive during erosion)
-    output : ndarray, optional
-        An output array can optionally be provided.
-    mode : {'reflect','constant','nearest','mirror', 'wrap'}, optional
-        The mode parameter determines how the array borders are handled.
-        For 'constant' mode, values beyond borders are set to be `cval`.
-        Default is 'reflect'.
-    cval : scalar, optional
-        Value to fill past edges of input if mode is 'constant'.
-        Default is 0.0
-    origin : origin, optional
-        The origin parameter controls the placement of the filter.
-
-    Returns
-    -------
-    morphological_laplace : ndarray
-        Output
-
-    """
-    tmp1 = grey_dilation(input, size, footprint, structure, None, mode,
-                         cval, origin)
-    if isinstance(output, np.ndarray):
-        grey_erosion(input, size, footprint, structure, output, mode,
-                     cval, origin)
-        np.add(tmp1, output, output)
-        np.subtract(output, input, output)
-        return np.subtract(output, input, output)
-    else:
-        tmp2 = grey_erosion(input, size, footprint, structure, None, mode,
-                            cval, origin)
-        np.add(tmp1, tmp2, tmp2)
-        np.subtract(tmp2, input, tmp2)
-        np.subtract(tmp2, input, tmp2)
-        return tmp2
-
-
-def white_tophat(input, size=None, footprint=None, structure=None,
-                 output=None, mode="reflect", cval=0.0, origin=0):
-    """
-    Multidimensional white tophat filter.
-
-    Parameters
-    ----------
-    input : array_like
-        Input.
-    size : tuple of ints
-        Shape of a flat and full structuring element used for the filter.
-        Optional if `footprint` or `structure` is provided.
-    footprint : array of ints, optional
-        Positions of elements of a flat structuring element
-        used for the white tophat filter.
-    structure : array of ints, optional
-        Structuring element used for the filter. `structure` may be a non-flat
-        structuring element. The `structure` array applies offsets to the
-        pixels in a neighborhood (the offset is additive during dilation and
-        subtractive during erosion)
-    output : array, optional
-        An array used for storing the output of the filter may be provided.
-    mode : {'reflect', 'constant', 'nearest', 'mirror', 'wrap'}, optional
-        The `mode` parameter determines how the array borders are
-        handled, where `cval` is the value when mode is equal to
-        'constant'. Default is 'reflect'
-    cval : scalar, optional
-        Value to fill past edges of input if `mode` is 'constant'.
-        Default is 0.0.
-    origin : scalar, optional
-        The `origin` parameter controls the placement of the filter.
-        Default is 0.
-
-    Returns
-    -------
-    output : ndarray
-        Result of the filter of `input` with `structure`.
-
-    See Also
-    --------
-    black_tophat
-
-    Examples
-    --------
-    Subtract gray background from a bright peak.
-
-    >>> from scipy.ndimage import generate_binary_structure, white_tophat
-    >>> import numpy as np
-    >>> square = generate_binary_structure(rank=2, connectivity=3)
-    >>> bright_on_gray = np.array([[2, 3, 3, 3, 2],
-    ...                            [3, 4, 5, 4, 3],
-    ...                            [3, 5, 9, 5, 3],
-    ...                            [3, 4, 5, 4, 3],
-    ...                            [2, 3, 3, 3, 2]])
-    >>> white_tophat(input=bright_on_gray, structure=square)
-    array([[0, 0, 0, 0, 0],
-           [0, 0, 1, 0, 0],
-           [0, 1, 5, 1, 0],
-           [0, 0, 1, 0, 0],
-           [0, 0, 0, 0, 0]])
-
-    """
-    if (size is not None) and (footprint is not None):
-        warnings.warn("ignoring size because footprint is set",
-                      UserWarning, stacklevel=2)
-    tmp = grey_erosion(input, size, footprint, structure, None, mode,
-                       cval, origin)
-    tmp = grey_dilation(tmp, size, footprint, structure, output, mode,
-                        cval, origin)
-    if tmp is None:
-        tmp = output
-
-    if input.dtype == np.bool_ and tmp.dtype == np.bool_:
-        np.bitwise_xor(input, tmp, out=tmp)
-    else:
-        np.subtract(input, tmp, out=tmp)
-    return tmp
-
-
-def black_tophat(input, size=None, footprint=None,
-                 structure=None, output=None, mode="reflect",
-                 cval=0.0, origin=0):
-    """
-    Multidimensional black tophat filter.
-
-    Parameters
-    ----------
-    input : array_like
-        Input.
-    size : tuple of ints, optional
-        Shape of a flat and full structuring element used for the filter.
-        Optional if `footprint` or `structure` is provided.
-    footprint : array of ints, optional
-        Positions of non-infinite elements of a flat structuring element
-        used for the black tophat filter.
-    structure : array of ints, optional
-        Structuring element used for the filter. `structure` may be a non-flat
-        structuring element. The `structure` array applies offsets to the
-        pixels in a neighborhood (the offset is additive during dilation and
-        subtractive during erosion)
-    output : array, optional
-        An array used for storing the output of the filter may be provided.
-    mode : {'reflect', 'constant', 'nearest', 'mirror', 'wrap'}, optional
-        The `mode` parameter determines how the array borders are
-        handled, where `cval` is the value when mode is equal to
-        'constant'. Default is 'reflect'
-    cval : scalar, optional
-        Value to fill past edges of input if `mode` is 'constant'. Default
-        is 0.0.
-    origin : scalar, optional
-        The `origin` parameter controls the placement of the filter.
-        Default 0
-
-    Returns
-    -------
-    black_tophat : ndarray
-        Result of the filter of `input` with `structure`.
-
-    See Also
-    --------
-    white_tophat, grey_opening, grey_closing
-
-    Examples
-    --------
-    Change dark peak to bright peak and subtract background.
-
-    >>> from scipy.ndimage import generate_binary_structure, black_tophat
-    >>> import numpy as np
-    >>> square = generate_binary_structure(rank=2, connectivity=3)
-    >>> dark_on_gray = np.array([[7, 6, 6, 6, 7],
-    ...                          [6, 5, 4, 5, 6],
-    ...                          [6, 4, 0, 4, 6],
-    ...                          [6, 5, 4, 5, 6],
-    ...                          [7, 6, 6, 6, 7]])
-    >>> black_tophat(input=dark_on_gray, structure=square)
-    array([[0, 0, 0, 0, 0],
-           [0, 0, 1, 0, 0],
-           [0, 1, 5, 1, 0],
-           [0, 0, 1, 0, 0],
-           [0, 0, 0, 0, 0]])
-
-    """
-    if (size is not None) and (footprint is not None):
-        warnings.warn("ignoring size because footprint is set",
-                      UserWarning, stacklevel=2)
-    tmp = grey_dilation(input, size, footprint, structure, None, mode,
-                        cval, origin)
-    tmp = grey_erosion(tmp, size, footprint, structure, output, mode,
-                       cval, origin)
-    if tmp is None:
-        tmp = output
-
-    if input.dtype == np.bool_ and tmp.dtype == np.bool_:
-        np.bitwise_xor(tmp, input, out=tmp)
-    else:
-        np.subtract(tmp, input, out=tmp)
-    return tmp
-
-
-def distance_transform_bf(input, metric="euclidean", sampling=None,
-                          return_distances=True, return_indices=False,
-                          distances=None, indices=None):
-    """
-    Distance transform function by a brute force algorithm.
-
-    This function calculates the distance transform of the `input`, by
-    replacing each foreground (non-zero) element, with its
-    shortest distance to the background (any zero-valued element).
-
-    In addition to the distance transform, the feature transform can
-    be calculated. In this case the index of the closest background
-    element to each foreground element is returned in a separate array.
-
-    Parameters
-    ----------
-    input : array_like
-        Input
-    metric : {'euclidean', 'taxicab', 'chessboard'}, optional
-        'cityblock' and 'manhattan' are also valid, and map to 'taxicab'.
-        The default is 'euclidean'.
-    sampling : float, or sequence of float, optional
-        This parameter is only used when `metric` is 'euclidean'.
-        Spacing of elements along each dimension. If a sequence, must be of
-        length equal to the input rank; if a single number, this is used for
-        all axes. If not specified, a grid spacing of unity is implied.
-    return_distances : bool, optional
-        Whether to calculate the distance transform.
-        Default is True.
-    return_indices : bool, optional
-        Whether to calculate the feature transform.
-        Default is False.
-    distances : ndarray, optional
-        An output array to store the calculated distance transform, instead of
-        returning it.
-        `return_distances` must be True.
-        It must be the same shape as `input`, and of type float64 if `metric`
-        is 'euclidean', uint32 otherwise.
-    indices : int32 ndarray, optional
-        An output array to store the calculated feature transform, instead of
-        returning it.
-        `return_indicies` must be True.
-        Its shape must be `(input.ndim,) + input.shape`.
-
-    Returns
-    -------
-    distances : ndarray, optional
-        The calculated distance transform. Returned only when
-        `return_distances` is True and `distances` is not supplied.
-        It will have the same shape as the input array.
-    indices : int32 ndarray, optional
-        The calculated feature transform. It has an input-shaped array for each
-        dimension of the input. See distance_transform_edt documentation for an
-        example.
-        Returned only when `return_indices` is True and `indices` is not
-        supplied.
-
-    See Also
-    --------
-    distance_transform_cdt : Faster distance transform for taxicab and
-                             chessboard metrics
-    distance_transform_edt : Faster distance transform for euclidean metric
-
-    Notes
-    -----
-    This function employs a slow brute force algorithm. See also the
-    function `distance_transform_cdt` for more efficient taxicab [1]_ and
-    chessboard algorithms [2]_.
-
-    References
-    ----------
-    .. [1] Taxicab distance. Wikipedia, 2023.
-           https://en.wikipedia.org/wiki/Taxicab_geometry
-    .. [2] Chessboard distance. Wikipedia, 2023.
-           https://en.wikipedia.org/wiki/Chebyshev_distance
-
-    Examples
-    --------
-    Import the necessary modules.
-
-    >>> import numpy as np
-    >>> from scipy.ndimage import distance_transform_bf
-    >>> import matplotlib.pyplot as plt
-    >>> from mpl_toolkits.axes_grid1 import ImageGrid
-
-    First, we create a toy binary image.
-
-    >>> def add_circle(center_x, center_y, radius, image, fillvalue=1):
-    ...     # fill circular area with 1
-    ...     xx, yy = np.mgrid[:image.shape[0], :image.shape[1]]
-    ...     circle = (xx - center_x) ** 2 + (yy - center_y) ** 2
-    ...     circle_shape = np.sqrt(circle) < radius
-    ...     image[circle_shape] = fillvalue
-    ...     return image
-    >>> image = np.zeros((100, 100), dtype=np.uint8)
-    >>> image[35:65, 20:80] = 1
-    >>> image = add_circle(28, 65, 10, image)
-    >>> image = add_circle(37, 30, 10, image)
-    >>> image = add_circle(70, 45, 20, image)
-    >>> image = add_circle(45, 80, 10, image)
-
-    Next, we set up the figure.
-
-    >>> fig = plt.figure(figsize=(8, 8))  # set up the figure structure
-    >>> grid = ImageGrid(fig, 111, nrows_ncols=(2, 2), axes_pad=(0.4, 0.3),
-    ...                  label_mode="1", share_all=True,
-    ...                  cbar_location="right", cbar_mode="each",
-    ...                  cbar_size="7%", cbar_pad="2%")
-    >>> for ax in grid:
-    ...     ax.axis('off')  # remove axes from images
-
-    The top left image is the original binary image.
-
-    >>> binary_image = grid[0].imshow(image, cmap='gray')
-    >>> cbar_binary_image = grid.cbar_axes[0].colorbar(binary_image)
-    >>> cbar_binary_image.set_ticks([0, 1])
-    >>> grid[0].set_title("Binary image: foreground in white")
-
-    The distance transform calculates the distance between foreground pixels
-    and the image background according to a distance metric. Available metrics
-    in `distance_transform_bf` are: ``euclidean`` (default), ``taxicab``
-    and ``chessboard``. The top right image contains the distance transform
-    based on the ``euclidean`` metric.
-
-    >>> distance_transform_euclidean = distance_transform_bf(image)
-    >>> euclidean_transform = grid[1].imshow(distance_transform_euclidean,
-    ...                                      cmap='gray')
-    >>> cbar_euclidean = grid.cbar_axes[1].colorbar(euclidean_transform)
-    >>> colorbar_ticks = [0, 10, 20]
-    >>> cbar_euclidean.set_ticks(colorbar_ticks)
-    >>> grid[1].set_title("Euclidean distance")
-
-    The lower left image contains the distance transform using the ``taxicab``
-    metric.
-
-    >>> distance_transform_taxicab = distance_transform_bf(image,
-    ...                                                    metric='taxicab')
-    >>> taxicab_transformation = grid[2].imshow(distance_transform_taxicab,
-    ...                                         cmap='gray')
-    >>> cbar_taxicab = grid.cbar_axes[2].colorbar(taxicab_transformation)
-    >>> cbar_taxicab.set_ticks(colorbar_ticks)
-    >>> grid[2].set_title("Taxicab distance")
-
-    Finally, the lower right image contains the distance transform using the
-    ``chessboard`` metric.
-
-    >>> distance_transform_cb = distance_transform_bf(image,
-    ...                                               metric='chessboard')
-    >>> chessboard_transformation = grid[3].imshow(distance_transform_cb,
-    ...                                            cmap='gray')
-    >>> cbar_taxicab = grid.cbar_axes[3].colorbar(chessboard_transformation)
-    >>> cbar_taxicab.set_ticks(colorbar_ticks)
-    >>> grid[3].set_title("Chessboard distance")
-    >>> plt.show()
-
-    """
-    ft_inplace = isinstance(indices, np.ndarray)
-    dt_inplace = isinstance(distances, np.ndarray)
-    _distance_tranform_arg_check(
-        dt_inplace, ft_inplace, return_distances, return_indices
-    )
-
-    tmp1 = np.asarray(input) != 0
-    struct = generate_binary_structure(tmp1.ndim, tmp1.ndim)
-    tmp2 = binary_dilation(tmp1, struct)
-    tmp2 = np.logical_xor(tmp1, tmp2)
-    tmp1 = tmp1.astype(np.int8) - tmp2.astype(np.int8)
-    metric = metric.lower()
-    if metric == 'euclidean':
-        metric = 1
-    elif metric in ['taxicab', 'cityblock', 'manhattan']:
-        metric = 2
-    elif metric == 'chessboard':
-        metric = 3
-    else:
-        raise RuntimeError('distance metric not supported')
-    if sampling is not None:
-        sampling = _ni_support._normalize_sequence(sampling, tmp1.ndim)
-        sampling = np.asarray(sampling, dtype=np.float64)
-        if not sampling.flags.contiguous:
-            sampling = sampling.copy()
-    if return_indices:
-        ft = np.zeros(tmp1.shape, dtype=np.int32)
-    else:
-        ft = None
-    if return_distances:
-        if distances is None:
-            if metric == 1:
-                dt = np.zeros(tmp1.shape, dtype=np.float64)
-            else:
-                dt = np.zeros(tmp1.shape, dtype=np.uint32)
-        else:
-            if distances.shape != tmp1.shape:
-                raise RuntimeError('distances array has wrong shape')
-            if metric == 1:
-                if distances.dtype.type != np.float64:
-                    raise RuntimeError('distances array must be float64')
-            else:
-                if distances.dtype.type != np.uint32:
-                    raise RuntimeError('distances array must be uint32')
-            dt = distances
-    else:
-        dt = None
-
-    _nd_image.distance_transform_bf(tmp1, metric, sampling, dt, ft)
-    if return_indices:
-        if isinstance(indices, np.ndarray):
-            if indices.dtype.type != np.int32:
-                raise RuntimeError('indices array must be int32')
-            if indices.shape != (tmp1.ndim,) + tmp1.shape:
-                raise RuntimeError('indices array has wrong shape')
-            tmp2 = indices
-        else:
-            tmp2 = np.indices(tmp1.shape, dtype=np.int32)
-        ft = np.ravel(ft)
-        for ii in range(tmp2.shape[0]):
-            rtmp = np.ravel(tmp2[ii, ...])[ft]
-            rtmp.shape = tmp1.shape
-            tmp2[ii, ...] = rtmp
-        ft = tmp2
-
-    # construct and return the result
-    result = []
-    if return_distances and not dt_inplace:
-        result.append(dt)
-    if return_indices and not ft_inplace:
-        result.append(ft)
-
-    if len(result) == 2:
-        return tuple(result)
-    elif len(result) == 1:
-        return result[0]
-    else:
-        return None
-
-
-def distance_transform_cdt(input, metric='chessboard', return_distances=True,
-                           return_indices=False, distances=None, indices=None):
-    """
-    Distance transform for chamfer type of transforms.
-
-    This function calculates the distance transform of the `input`, by
-    replacing each foreground (non-zero) element, with its
-    shortest distance to the background (any zero-valued element).
-
-    In addition to the distance transform, the feature transform can
-    be calculated. In this case the index of the closest background
-    element to each foreground element is returned in a separate array.
-
-    Parameters
-    ----------
-    input : array_like
-        Input. Values of 0 are treated as background.
-    metric : {'chessboard', 'taxicab'} or array_like, optional
-        The `metric` determines the type of chamfering that is done. If the
-        `metric` is equal to 'taxicab' a structure is generated using
-        `generate_binary_structure` with a squared distance equal to 1. If
-        the `metric` is equal to 'chessboard', a `metric` is generated
-        using `generate_binary_structure` with a squared distance equal to
-        the dimensionality of the array. These choices correspond to the
-        common interpretations of the 'taxicab' and the 'chessboard'
-        distance metrics in two dimensions.
-        A custom metric may be provided, in the form of a matrix where
-        each dimension has a length of three.
-        'cityblock' and 'manhattan' are also valid, and map to 'taxicab'.
-        The default is 'chessboard'.
-    return_distances : bool, optional
-        Whether to calculate the distance transform.
-        Default is True.
-    return_indices : bool, optional
-        Whether to calculate the feature transform.
-        Default is False.
-    distances : int32 ndarray, optional
-        An output array to store the calculated distance transform, instead of
-        returning it.
-        `return_distances` must be True.
-        It must be the same shape as `input`.
-    indices : int32 ndarray, optional
-        An output array to store the calculated feature transform, instead of
-        returning it.
-        `return_indicies` must be True.
-        Its shape must be `(input.ndim,) + input.shape`.
-
-    Returns
-    -------
-    distances : int32 ndarray, optional
-        The calculated distance transform. Returned only when
-        `return_distances` is True, and `distances` is not supplied.
-        It will have the same shape as the input array.
-    indices : int32 ndarray, optional
-        The calculated feature transform. It has an input-shaped array for each
-        dimension of the input. See distance_transform_edt documentation for an
-        example.
-        Returned only when `return_indices` is True, and `indices` is not
-        supplied.
-
-    See Also
-    --------
-    distance_transform_edt : Fast distance transform for euclidean metric
-    distance_transform_bf : Distance transform for different metrics using
-                            a slower brute force algorithm
-
-    Examples
-    --------
-    Import the necessary modules.
-
-    >>> import numpy as np
-    >>> from scipy.ndimage import distance_transform_cdt
-    >>> import matplotlib.pyplot as plt
-    >>> from mpl_toolkits.axes_grid1 import ImageGrid
-
-    First, we create a toy binary image.
-
-    >>> def add_circle(center_x, center_y, radius, image, fillvalue=1):
-    ...     # fill circular area with 1
-    ...     xx, yy = np.mgrid[:image.shape[0], :image.shape[1]]
-    ...     circle = (xx - center_x) ** 2 + (yy - center_y) ** 2
-    ...     circle_shape = np.sqrt(circle) < radius
-    ...     image[circle_shape] = fillvalue
-    ...     return image
-    >>> image = np.zeros((100, 100), dtype=np.uint8)
-    >>> image[35:65, 20:80] = 1
-    >>> image = add_circle(28, 65, 10, image)
-    >>> image = add_circle(37, 30, 10, image)
-    >>> image = add_circle(70, 45, 20, image)
-    >>> image = add_circle(45, 80, 10, image)
-
-    Next, we set up the figure.
-
-    >>> fig = plt.figure(figsize=(5, 15))
-    >>> grid = ImageGrid(fig, 111, nrows_ncols=(3, 1), axes_pad=(0.5, 0.3),
-    ...                  label_mode="1", share_all=True,
-    ...                  cbar_location="right", cbar_mode="each",
-    ...                  cbar_size="7%", cbar_pad="2%")
-    >>> for ax in grid:
-    ...     ax.axis('off')
-    >>> top, middle, bottom = grid
-    >>> colorbar_ticks = [0, 10, 20]
-
-    The top image contains the original binary image.
-
-    >>> binary_image = top.imshow(image, cmap='gray')
-    >>> cbar_binary_image = top.cax.colorbar(binary_image)
-    >>> cbar_binary_image.set_ticks([0, 1])
-    >>> top.set_title("Binary image: foreground in white")
-
-    The middle image contains the distance transform using the ``taxicab``
-    metric.
-
-    >>> distance_taxicab = distance_transform_cdt(image, metric="taxicab")
-    >>> taxicab_transform = middle.imshow(distance_taxicab, cmap='gray')
-    >>> cbar_taxicab = middle.cax.colorbar(taxicab_transform)
-    >>> cbar_taxicab.set_ticks(colorbar_ticks)
-    >>> middle.set_title("Taxicab metric")
-
-    The bottom image contains the distance transform using the ``chessboard``
-    metric.
-
-    >>> distance_chessboard = distance_transform_cdt(image,
-    ...                                              metric="chessboard")
-    >>> chessboard_transform = bottom.imshow(distance_chessboard, cmap='gray')
-    >>> cbar_chessboard = bottom.cax.colorbar(chessboard_transform)
-    >>> cbar_chessboard.set_ticks(colorbar_ticks)
-    >>> bottom.set_title("Chessboard metric")
-    >>> plt.tight_layout()
-    >>> plt.show()
-
-    """
-    ft_inplace = isinstance(indices, np.ndarray)
-    dt_inplace = isinstance(distances, np.ndarray)
-    _distance_tranform_arg_check(
-        dt_inplace, ft_inplace, return_distances, return_indices
-    )
-    input = np.asarray(input)
-    if isinstance(metric, str):
-        if metric in ['taxicab', 'cityblock', 'manhattan']:
-            rank = input.ndim
-            metric = generate_binary_structure(rank, 1)
-        elif metric == 'chessboard':
-            rank = input.ndim
-            metric = generate_binary_structure(rank, rank)
-        else:
-            raise ValueError('invalid metric provided')
-    else:
-        try:
-            metric = np.asarray(metric)
-        except Exception as e:
-            raise ValueError('invalid metric provided') from e
-        for s in metric.shape:
-            if s != 3:
-                raise ValueError('metric sizes must be equal to 3')
-
-    if not metric.flags.contiguous:
-        metric = metric.copy()
-    if dt_inplace:
-        if distances.dtype.type != np.int32:
-            raise ValueError('distances must be of int32 type')
-        if distances.shape != input.shape:
-            raise ValueError('distances has wrong shape')
-        dt = distances
-        dt[...] = np.where(input, -1, 0).astype(np.int32)
-    else:
-        dt = np.where(input, -1, 0).astype(np.int32)
-
-    rank = dt.ndim
-    if return_indices:
-        ft = np.arange(dt.size, dtype=np.int32)
-        ft.shape = dt.shape
-    else:
-        ft = None
-
-    _nd_image.distance_transform_op(metric, dt, ft)
-    dt = dt[tuple([slice(None, None, -1)] * rank)]
-    if return_indices:
-        ft = ft[tuple([slice(None, None, -1)] * rank)]
-    _nd_image.distance_transform_op(metric, dt, ft)
-    dt = dt[tuple([slice(None, None, -1)] * rank)]
-    if return_indices:
-        ft = ft[tuple([slice(None, None, -1)] * rank)]
-        ft = np.ravel(ft)
-        if ft_inplace:
-            if indices.dtype.type != np.int32:
-                raise ValueError('indices array must be int32')
-            if indices.shape != (dt.ndim,) + dt.shape:
-                raise ValueError('indices array has wrong shape')
-            tmp = indices
-        else:
-            tmp = np.indices(dt.shape, dtype=np.int32)
-        for ii in range(tmp.shape[0]):
-            rtmp = np.ravel(tmp[ii, ...])[ft]
-            rtmp.shape = dt.shape
-            tmp[ii, ...] = rtmp
-        ft = tmp
-
-    # construct and return the result
-    result = []
-    if return_distances and not dt_inplace:
-        result.append(dt)
-    if return_indices and not ft_inplace:
-        result.append(ft)
-
-    if len(result) == 2:
-        return tuple(result)
-    elif len(result) == 1:
-        return result[0]
-    else:
-        return None
-
-
-def distance_transform_edt(input, sampling=None, return_distances=True,
-                           return_indices=False, distances=None, indices=None):
-    """
-    Exact Euclidean distance transform.
-
-    This function calculates the distance transform of the `input`, by
-    replacing each foreground (non-zero) element, with its
-    shortest distance to the background (any zero-valued element).
-
-    In addition to the distance transform, the feature transform can
-    be calculated. In this case the index of the closest background
-    element to each foreground element is returned in a separate array.
-
-    Parameters
-    ----------
-    input : array_like
-        Input data to transform. Can be any type but will be converted
-        into binary: 1 wherever input equates to True, 0 elsewhere.
-    sampling : float, or sequence of float, optional
-        Spacing of elements along each dimension. If a sequence, must be of
-        length equal to the input rank; if a single number, this is used for
-        all axes. If not specified, a grid spacing of unity is implied.
-    return_distances : bool, optional
-        Whether to calculate the distance transform.
-        Default is True.
-    return_indices : bool, optional
-        Whether to calculate the feature transform.
-        Default is False.
-    distances : float64 ndarray, optional
-        An output array to store the calculated distance transform, instead of
-        returning it.
-        `return_distances` must be True.
-        It must be the same shape as `input`.
-    indices : int32 ndarray, optional
-        An output array to store the calculated feature transform, instead of
-        returning it.
-        `return_indicies` must be True.
-        Its shape must be `(input.ndim,) + input.shape`.
-
-    Returns
-    -------
-    distances : float64 ndarray, optional
-        The calculated distance transform. Returned only when
-        `return_distances` is True and `distances` is not supplied.
-        It will have the same shape as the input array.
-    indices : int32 ndarray, optional
-        The calculated feature transform. It has an input-shaped array for each
-        dimension of the input. See example below.
-        Returned only when `return_indices` is True and `indices` is not
-        supplied.
-
-    Notes
-    -----
-    The Euclidean distance transform gives values of the Euclidean
-    distance::
-
-                    n
-      y_i = sqrt(sum (x[i]-b[i])**2)
-                    i
-
-    where b[i] is the background point (value 0) with the smallest
-    Euclidean distance to input points x[i], and n is the
-    number of dimensions.
-
-    Examples
-    --------
-    >>> from scipy import ndimage
-    >>> import numpy as np
-    >>> a = np.array(([0,1,1,1,1],
-    ...               [0,0,1,1,1],
-    ...               [0,1,1,1,1],
-    ...               [0,1,1,1,0],
-    ...               [0,1,1,0,0]))
-    >>> ndimage.distance_transform_edt(a)
-    array([[ 0.    ,  1.    ,  1.4142,  2.2361,  3.    ],
-           [ 0.    ,  0.    ,  1.    ,  2.    ,  2.    ],
-           [ 0.    ,  1.    ,  1.4142,  1.4142,  1.    ],
-           [ 0.    ,  1.    ,  1.4142,  1.    ,  0.    ],
-           [ 0.    ,  1.    ,  1.    ,  0.    ,  0.    ]])
-
-    With a sampling of 2 units along x, 1 along y:
-
-    >>> ndimage.distance_transform_edt(a, sampling=[2,1])
-    array([[ 0.    ,  1.    ,  2.    ,  2.8284,  3.6056],
-           [ 0.    ,  0.    ,  1.    ,  2.    ,  3.    ],
-           [ 0.    ,  1.    ,  2.    ,  2.2361,  2.    ],
-           [ 0.    ,  1.    ,  2.    ,  1.    ,  0.    ],
-           [ 0.    ,  1.    ,  1.    ,  0.    ,  0.    ]])
-
-    Asking for indices as well:
-
-    >>> edt, inds = ndimage.distance_transform_edt(a, return_indices=True)
-    >>> inds
-    array([[[0, 0, 1, 1, 3],
-            [1, 1, 1, 1, 3],
-            [2, 2, 1, 3, 3],
-            [3, 3, 4, 4, 3],
-            [4, 4, 4, 4, 4]],
-           [[0, 0, 1, 1, 4],
-            [0, 1, 1, 1, 4],
-            [0, 0, 1, 4, 4],
-            [0, 0, 3, 3, 4],
-            [0, 0, 3, 3, 4]]])
-
-    With arrays provided for inplace outputs:
-
-    >>> indices = np.zeros(((np.ndim(a),) + a.shape), dtype=np.int32)
-    >>> ndimage.distance_transform_edt(a, return_indices=True, indices=indices)
-    array([[ 0.    ,  1.    ,  1.4142,  2.2361,  3.    ],
-           [ 0.    ,  0.    ,  1.    ,  2.    ,  2.    ],
-           [ 0.    ,  1.    ,  1.4142,  1.4142,  1.    ],
-           [ 0.    ,  1.    ,  1.4142,  1.    ,  0.    ],
-           [ 0.    ,  1.    ,  1.    ,  0.    ,  0.    ]])
-    >>> indices
-    array([[[0, 0, 1, 1, 3],
-            [1, 1, 1, 1, 3],
-            [2, 2, 1, 3, 3],
-            [3, 3, 4, 4, 3],
-            [4, 4, 4, 4, 4]],
-           [[0, 0, 1, 1, 4],
-            [0, 1, 1, 1, 4],
-            [0, 0, 1, 4, 4],
-            [0, 0, 3, 3, 4],
-            [0, 0, 3, 3, 4]]])
-
-    """
-    ft_inplace = isinstance(indices, np.ndarray)
-    dt_inplace = isinstance(distances, np.ndarray)
-    _distance_tranform_arg_check(
-        dt_inplace, ft_inplace, return_distances, return_indices
-    )
-
-    # calculate the feature transform
-    input = np.atleast_1d(np.where(input, 1, 0).astype(np.int8))
-    if sampling is not None:
-        sampling = _ni_support._normalize_sequence(sampling, input.ndim)
-        sampling = np.asarray(sampling, dtype=np.float64)
-        if not sampling.flags.contiguous:
-            sampling = sampling.copy()
-
-    if ft_inplace:
-        ft = indices
-        if ft.shape != (input.ndim,) + input.shape:
-            raise RuntimeError('indices array has wrong shape')
-        if ft.dtype.type != np.int32:
-            raise RuntimeError('indices array must be int32')
-    else:
-        ft = np.zeros((input.ndim,) + input.shape, dtype=np.int32)
-
-    _nd_image.euclidean_feature_transform(input, sampling, ft)
-    # if requested, calculate the distance transform
-    if return_distances:
-        dt = ft - np.indices(input.shape, dtype=ft.dtype)
-        dt = dt.astype(np.float64)
-        if sampling is not None:
-            for ii in range(len(sampling)):
-                dt[ii, ...] *= sampling[ii]
-        np.multiply(dt, dt, dt)
-        if dt_inplace:
-            dt = np.add.reduce(dt, axis=0)
-            if distances.shape != dt.shape:
-                raise RuntimeError('distances array has wrong shape')
-            if distances.dtype.type != np.float64:
-                raise RuntimeError('distances array must be float64')
-            np.sqrt(dt, distances)
-        else:
-            dt = np.add.reduce(dt, axis=0)
-            dt = np.sqrt(dt)
-
-    # construct and return the result
-    result = []
-    if return_distances and not dt_inplace:
-        result.append(dt)
-    if return_indices and not ft_inplace:
-        result.append(ft)
-
-    if len(result) == 2:
-        return tuple(result)
-    elif len(result) == 1:
-        return result[0]
-    else:
-        return None
-
-
-def _distance_tranform_arg_check(distances_out, indices_out,
-                                 return_distances, return_indices):
-    """Raise a RuntimeError if the arguments are invalid"""
-    error_msgs = []
-    if (not return_distances) and (not return_indices):
-        error_msgs.append(
-            'at least one of return_distances/return_indices must be True')
-    if distances_out and not return_distances:
-        error_msgs.append(
-            'return_distances must be True if distances is supplied'
-        )
-    if indices_out and not return_indices:
-        error_msgs.append('return_indices must be True if indices is supplied')
-    if error_msgs:
-        raise RuntimeError(', '.join(error_msgs))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_ni_docstrings.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_ni_docstrings.py
deleted file mode 100644
index e6469f2c75fcee1f74dfbbe049df8ca05b074505..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_ni_docstrings.py
+++ /dev/null
@@ -1,208 +0,0 @@
-"""Docstring components common to several ndimage functions."""
-from scipy._lib import doccer
-
-__all__ = ['docfiller']
-
-
-_input_doc = (
-"""input : array_like
-    The input array.""")
-_axis_doc = (
-"""axis : int, optional
-    The axis of `input` along which to calculate. Default is -1.""")
-_output_doc = (
-"""output : array or dtype, optional
-    The array in which to place the output, or the dtype of the
-    returned array. By default an array of the same dtype as input
-    will be created.""")
-_size_foot_doc = (
-"""size : scalar or tuple, optional
-    See footprint, below. Ignored if footprint is given.
-footprint : array, optional
-    Either `size` or `footprint` must be defined. `size` gives
-    the shape that is taken from the input array, at every element
-    position, to define the input to the filter function.
-    `footprint` is a boolean array that specifies (implicitly) a
-    shape, but also which of the elements within this shape will get
-    passed to the filter function. Thus ``size=(n,m)`` is equivalent
-    to ``footprint=np.ones((n,m))``.  We adjust `size` to the number
-    of dimensions of the input array, so that, if the input array is
-    shape (10,10,10), and `size` is 2, then the actual size used is
-    (2,2,2). When `footprint` is given, `size` is ignored.""")
-_mode_reflect_doc = (
-"""mode : {'reflect', 'constant', 'nearest', 'mirror', 'wrap'}, optional
-    The `mode` parameter determines how the input array is extended
-    beyond its boundaries. Default is 'reflect'. Behavior for each valid
-    value is as follows:
-
-    'reflect' (`d c b a | a b c d | d c b a`)
-        The input is extended by reflecting about the edge of the last
-        pixel. This mode is also sometimes referred to as half-sample
-        symmetric.
-
-    'constant' (`k k k k | a b c d | k k k k`)
-        The input is extended by filling all values beyond the edge with
-        the same constant value, defined by the `cval` parameter.
-
-    'nearest' (`a a a a | a b c d | d d d d`)
-        The input is extended by replicating the last pixel.
-
-    'mirror' (`d c b | a b c d | c b a`)
-        The input is extended by reflecting about the center of the last
-        pixel. This mode is also sometimes referred to as whole-sample
-        symmetric.
-
-    'wrap' (`a b c d | a b c d | a b c d`)
-        The input is extended by wrapping around to the opposite edge.
-
-    For consistency with the interpolation functions, the following mode
-    names can also be used:
-
-    'grid-mirror'
-        This is a synonym for 'reflect'.
-
-    'grid-constant'
-        This is a synonym for 'constant'.
-
-    'grid-wrap'
-        This is a synonym for 'wrap'.""")
-
-_mode_interp_constant_doc = (
-"""mode : {'reflect', 'grid-mirror', 'constant', 'grid-constant', 'nearest', \
-'mirror', 'grid-wrap', 'wrap'}, optional
-    The `mode` parameter determines how the input array is extended
-    beyond its boundaries. Default is 'constant'. Behavior for each valid
-    value is as follows (see additional plots and details on
-    :ref:`boundary modes `):
-
-    'reflect' (`d c b a | a b c d | d c b a`)
-        The input is extended by reflecting about the edge of the last
-        pixel. This mode is also sometimes referred to as half-sample
-        symmetric.
-
-    'grid-mirror'
-        This is a synonym for 'reflect'.
-
-    'constant' (`k k k k | a b c d | k k k k`)
-        The input is extended by filling all values beyond the edge with
-        the same constant value, defined by the `cval` parameter. No
-        interpolation is performed beyond the edges of the input.
-
-    'grid-constant' (`k k k k | a b c d | k k k k`)
-        The input is extended by filling all values beyond the edge with
-        the same constant value, defined by the `cval` parameter. Interpolation
-        occurs for samples outside the input's extent  as well.
-
-    'nearest' (`a a a a | a b c d | d d d d`)
-        The input is extended by replicating the last pixel.
-
-    'mirror' (`d c b | a b c d | c b a`)
-        The input is extended by reflecting about the center of the last
-        pixel. This mode is also sometimes referred to as whole-sample
-        symmetric.
-
-    'grid-wrap' (`a b c d | a b c d | a b c d`)
-        The input is extended by wrapping around to the opposite edge.
-
-    'wrap' (`d b c d | a b c d | b c a b`)
-        The input is extended by wrapping around to the opposite edge, but in a
-        way such that the last point and initial point exactly overlap. In this
-        case it is not well defined which sample will be chosen at the point of
-        overlap.""")
-_mode_interp_mirror_doc = (
-    _mode_interp_constant_doc.replace("Default is 'constant'",
-                                      "Default is 'mirror'")
-)
-assert _mode_interp_mirror_doc != _mode_interp_constant_doc, \
-    'Default not replaced'
-
-_mode_multiple_doc = (
-"""mode : str or sequence, optional
-    The `mode` parameter determines how the input array is extended
-    when the filter overlaps a border. By passing a sequence of modes
-    with length equal to the number of dimensions of the input array,
-    different modes can be specified along each axis. Default value is
-    'reflect'. The valid values and their behavior is as follows:
-
-    'reflect' (`d c b a | a b c d | d c b a`)
-        The input is extended by reflecting about the edge of the last
-        pixel. This mode is also sometimes referred to as half-sample
-        symmetric.
-
-    'constant' (`k k k k | a b c d | k k k k`)
-        The input is extended by filling all values beyond the edge with
-        the same constant value, defined by the `cval` parameter.
-
-    'nearest' (`a a a a | a b c d | d d d d`)
-        The input is extended by replicating the last pixel.
-
-    'mirror' (`d c b | a b c d | c b a`)
-        The input is extended by reflecting about the center of the last
-        pixel. This mode is also sometimes referred to as whole-sample
-        symmetric.
-
-    'wrap' (`a b c d | a b c d | a b c d`)
-        The input is extended by wrapping around to the opposite edge.
-
-    For consistency with the interpolation functions, the following mode
-    names can also be used:
-
-    'grid-constant'
-        This is a synonym for 'constant'.
-
-    'grid-mirror'
-        This is a synonym for 'reflect'.
-
-    'grid-wrap'
-        This is a synonym for 'wrap'.""")
-_cval_doc = (
-"""cval : scalar, optional
-    Value to fill past edges of input if `mode` is 'constant'. Default
-    is 0.0.""")
-_origin_doc = (
-"""origin : int, optional
-    Controls the placement of the filter on the input array's pixels.
-    A value of 0 (the default) centers the filter over the pixel, with
-    positive values shifting the filter to the left, and negative ones
-    to the right.""")
-_origin_multiple_doc = (
-"""origin : int or sequence, optional
-    Controls the placement of the filter on the input array's pixels.
-    A value of 0 (the default) centers the filter over the pixel, with
-    positive values shifting the filter to the left, and negative ones
-    to the right. By passing a sequence of origins with length equal to
-    the number of dimensions of the input array, different shifts can
-    be specified along each axis.""")
-_extra_arguments_doc = (
-"""extra_arguments : sequence, optional
-    Sequence of extra positional arguments to pass to passed function.""")
-_extra_keywords_doc = (
-"""extra_keywords : dict, optional
-    dict of extra keyword arguments to pass to passed function.""")
-_prefilter_doc = (
-"""prefilter : bool, optional
-    Determines if the input array is prefiltered with `spline_filter`
-    before interpolation. The default is True, which will create a
-    temporary `float64` array of filtered values if `order > 1`. If
-    setting this to False, the output will be slightly blurred if
-    `order > 1`, unless the input is prefiltered, i.e. it is the result
-    of calling `spline_filter` on the original input.""")
-
-docdict = {
-    'input': _input_doc,
-    'axis': _axis_doc,
-    'output': _output_doc,
-    'size_foot': _size_foot_doc,
-    'mode_interp_constant': _mode_interp_constant_doc,
-    'mode_interp_mirror': _mode_interp_mirror_doc,
-    'mode_reflect': _mode_reflect_doc,
-    'mode_multiple': _mode_multiple_doc,
-    'cval': _cval_doc,
-    'origin': _origin_doc,
-    'origin_multiple': _origin_multiple_doc,
-    'extra_arguments': _extra_arguments_doc,
-    'extra_keywords': _extra_keywords_doc,
-    'prefilter': _prefilter_doc
-    }
-
-docfiller = doccer.filldoc(docdict)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_ni_support.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_ni_support.py
deleted file mode 100644
index ae8875f2ad20244604e02a0d8649a815956d4975..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/_ni_support.py
+++ /dev/null
@@ -1,119 +0,0 @@
-# Copyright (C) 2003-2005 Peter J. Verveer
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-#    products derived from this software without specific prior
-#    written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-from collections.abc import Iterable
-import operator
-import warnings
-import numpy as np
-
-
-def _extend_mode_to_code(mode):
-    """Convert an extension mode to the corresponding integer code.
-    """
-    if mode == 'nearest':
-        return 0
-    elif mode == 'wrap':
-        return 1
-    elif mode in ['reflect', 'grid-mirror']:
-        return 2
-    elif mode == 'mirror':
-        return 3
-    elif mode == 'constant':
-        return 4
-    elif mode == 'grid-wrap':
-        return 5
-    elif mode == 'grid-constant':
-        return 6
-    else:
-        raise RuntimeError('boundary mode not supported')
-
-
-def _normalize_sequence(input, rank):
-    """If input is a scalar, create a sequence of length equal to the
-    rank by duplicating the input. If input is a sequence,
-    check if its length is equal to the length of array.
-    """
-    is_str = isinstance(input, str)
-    if not is_str and isinstance(input, Iterable):
-        normalized = list(input)
-        if len(normalized) != rank:
-            err = "sequence argument must have length equal to input rank"
-            raise RuntimeError(err)
-    else:
-        normalized = [input] * rank
-    return normalized
-
-
-def _get_output(output, input, shape=None, complex_output=False):
-    if shape is None:
-        shape = input.shape
-    if output is None:
-        if not complex_output:
-            output = np.zeros(shape, dtype=input.dtype.name)
-        else:
-            complex_type = np.promote_types(input.dtype, np.complex64)
-            output = np.zeros(shape, dtype=complex_type)
-    elif isinstance(output, (type, np.dtype)):
-        # Classes (like `np.float32`) and dtypes are interpreted as dtype
-        if complex_output and np.dtype(output).kind != 'c':
-            warnings.warn("promoting specified output dtype to complex", stacklevel=3)
-            output = np.promote_types(output, np.complex64)
-        output = np.zeros(shape, dtype=output)
-    elif isinstance(output, str):
-        output = np.dtype(output)
-        if complex_output and output.kind != 'c':
-            raise RuntimeError("output must have complex dtype")
-        elif not issubclass(output.type, np.number):
-            raise RuntimeError("output must have numeric dtype")
-        output = np.zeros(shape, dtype=output)
-    elif output.shape != shape:
-        raise RuntimeError("output shape not correct")
-    elif complex_output and output.dtype.kind != 'c':
-        raise RuntimeError("output must have complex dtype")
-    return output
-
-
-def _check_axes(axes, ndim):
-    if axes is None:
-        return tuple(range(ndim))
-    elif np.isscalar(axes):
-        axes = (operator.index(axes),)
-    elif isinstance(axes, Iterable):
-        for ax in axes:
-            axes = tuple(operator.index(ax) for ax in axes)
-            if ax < -ndim or ax > ndim - 1:
-                raise ValueError(f"specified axis: {ax} is out of range")
-        axes = tuple(ax % ndim if ax < 0 else ax for ax in axes)
-    else:
-        message = "axes must be an integer, iterable of integers, or None"
-        raise ValueError(message)
-    if len(tuple(set(axes))) != len(axes):
-        raise ValueError("axes must be unique")
-    return axes
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/filters.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/filters.py
deleted file mode 100644
index e16d9d279a9585b2454c46ee09cf22143de833a6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/filters.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.ndimage` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'correlate1d', 'convolve1d', 'gaussian_filter1d',
-    'gaussian_filter', 'prewitt', 'sobel', 'generic_laplace',
-    'laplace', 'gaussian_laplace', 'generic_gradient_magnitude',
-    'gaussian_gradient_magnitude', 'correlate', 'convolve',
-    'uniform_filter1d', 'uniform_filter', 'minimum_filter1d',
-    'maximum_filter1d', 'minimum_filter', 'maximum_filter',
-    'rank_filter', 'median_filter', 'percentile_filter',
-    'generic_filter1d', 'generic_filter'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package='ndimage', module='filters',
-                                   private_modules=['_filters'], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/fourier.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/fourier.py
deleted file mode 100644
index 73c49bd52d9a446ce0fe25d9e15b8de68fbd46fb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/fourier.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.ndimage` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'fourier_gaussian', 'fourier_uniform',
-    'fourier_ellipsoid', 'fourier_shift'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package='ndimage', module='fourier',
-                                   private_modules=['_fourier'], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/interpolation.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/interpolation.py
deleted file mode 100644
index a2739c60c51037487ae8892c407e2f3d7870d5da..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/interpolation.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.ndimage` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'spline_filter1d', 'spline_filter',
-    'geometric_transform', 'map_coordinates',
-    'affine_transform', 'shift', 'zoom', 'rotate',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package='ndimage', module='interpolation',
-                                   private_modules=['_interpolation'], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/measurements.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/measurements.py
deleted file mode 100644
index 22f76b01840ffb829205bd1d28a7ad1f9ac5db61..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/measurements.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.ndimage` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'label', 'find_objects', 'labeled_comprehension',
-    'sum', 'mean', 'variance', 'standard_deviation',
-    'minimum', 'maximum', 'median', 'minimum_position',
-    'maximum_position', 'extrema', 'center_of_mass',
-    'histogram', 'watershed_ift', 'sum_labels'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package='ndimage', module='measurements',
-                                   private_modules=['_measurements'], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/morphology.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/morphology.py
deleted file mode 100644
index e522e7df3a4b06b7e04ed8c2d0ecaff2a98b951d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/morphology.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.ndimage` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'iterate_structure', 'generate_binary_structure',
-    'binary_erosion', 'binary_dilation', 'binary_opening',
-    'binary_closing', 'binary_hit_or_miss', 'binary_propagation',
-    'binary_fill_holes', 'grey_erosion', 'grey_dilation',
-    'grey_opening', 'grey_closing', 'morphological_gradient',
-    'morphological_laplace', 'white_tophat', 'black_tophat',
-    'distance_transform_bf', 'distance_transform_cdt',
-    'distance_transform_edt'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package='ndimage', module='morphology',
-                                   private_modules=['_morphology'], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__init__.py
deleted file mode 100644
index 1e40498b438bc7555960d68993447f901c3efbc8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__init__.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from __future__ import annotations
-import numpy as np
-
-# list of numarray data types
-integer_types: list[type] = [
-    np.int8, np.uint8, np.int16, np.uint16,
-    np.int32, np.uint32, np.int64, np.uint64]
-
-float_types: list[type] = [np.float32, np.float64]
-
-complex_types: list[type] = [np.complex64, np.complex128]
-
-types: list[type] = integer_types + float_types
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index fcdddbcaa5d8350040a488cba2390b984db9e3b7..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_c_api.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_c_api.cpython-310.pyc
deleted file mode 100644
index 9f4f1c9e20ea1b51057fa093425dbfbab7998e03..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_c_api.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_datatypes.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_datatypes.cpython-310.pyc
deleted file mode 100644
index b2ec2510f586d1561a633ed5519ac16fae7a37c0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_datatypes.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_filters.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_filters.cpython-310.pyc
deleted file mode 100644
index d30f8ad26a9c12a99451313fb85ef93be3fac03d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_filters.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_fourier.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_fourier.cpython-310.pyc
deleted file mode 100644
index 0b6ba34778271ce6adf201d2a1c43a2795a8daa6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_fourier.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_interpolation.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_interpolation.cpython-310.pyc
deleted file mode 100644
index a7c94cdbfe656dc16f84dd7bcaeaa9b4ce4a5c8a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_interpolation.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_measurements.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_measurements.cpython-310.pyc
deleted file mode 100644
index c4605e3a24678ec7f6d5a8d2bb50e8c0f541b1b5..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_measurements.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_morphology.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_morphology.cpython-310.pyc
deleted file mode 100644
index 44a296f06a0fc2e7499233cc02ca098997772835..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_morphology.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_ni_support.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_ni_support.cpython-310.pyc
deleted file mode 100644
index b0461024887ef55947ba962d80ca5233ff161dd3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_ni_support.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_splines.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_splines.cpython-310.pyc
deleted file mode 100644
index ad512109fdd8bbba8dc9caa4f11a7833d9cc4ea9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/__pycache__/test_splines.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/data/label_inputs.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/data/label_inputs.txt
deleted file mode 100644
index 6c3cff3b12cec4ad050b31cc5d5c327f32784447..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/data/label_inputs.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 0 1 1 1
-1 1 0 0 0 1 1
-1 0 1 0 1 0 1
-0 0 0 1 0 0 0
-1 0 1 0 1 0 1
-1 1 0 0 0 1 1
-1 1 1 0 1 1 1
-1 0 1 1 1 0 1
-0 0 0 1 0 0 0
-1 0 0 1 0 0 1
-1 1 1 1 1 1 1
-1 0 0 1 0 0 1
-0 0 0 1 0 0 0
-1 0 1 1 1 0 1
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/data/label_results.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/data/label_results.txt
deleted file mode 100644
index c239b0369c9df3e06df9a2fbf048faec2f84941f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/data/label_results.txt
+++ /dev/null
@@ -1,294 +0,0 @@
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-2 2 2 2 2 2 2
-3 3 3 3 3 3 3
-4 4 4 4 4 4 4
-5 5 5 5 5 5 5
-6 6 6 6 6 6 6
-7 7 7 7 7 7 7
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 2 3 4 5 6 7
-8 9 10 11 12 13 14
-15 16 17 18 19 20 21
-22 23 24 25 26 27 28
-29 30 31 32 33 34 35
-36 37 38 39 40 41 42
-43 44 45 46 47 48 49
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 2 3 4 5 6 7
-8 1 2 3 4 5 6
-9 8 1 2 3 4 5
-10 9 8 1 2 3 4
-11 10 9 8 1 2 3
-12 11 10 9 8 1 2
-13 12 11 10 9 8 1
-1 2 3 4 5 6 7
-1 2 3 4 5 6 7
-1 2 3 4 5 6 7
-1 2 3 4 5 6 7
-1 2 3 4 5 6 7
-1 2 3 4 5 6 7
-1 2 3 4 5 6 7
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 2 1 2 1 2 1
-2 1 2 1 2 1 2
-1 2 1 2 1 2 1
-2 1 2 1 2 1 2
-1 2 1 2 1 2 1
-2 1 2 1 2 1 2
-1 2 1 2 1 2 1
-1 2 3 4 5 6 7
-2 3 4 5 6 7 8
-3 4 5 6 7 8 9
-4 5 6 7 8 9 10
-5 6 7 8 9 10 11
-6 7 8 9 10 11 12
-7 8 9 10 11 12 13
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 1 1 1 1
-1 1 1 0 2 2 2
-1 1 0 0 0 2 2
-1 0 3 0 2 0 4
-0 0 0 2 0 0 0
-5 0 2 0 6 0 7
-2 2 0 0 0 7 7
-2 2 2 0 7 7 7
-1 1 1 0 2 2 2
-1 1 0 0 0 2 2
-3 0 1 0 4 0 2
-0 0 0 1 0 0 0
-5 0 6 0 1 0 7
-5 5 0 0 0 1 1
-5 5 5 0 1 1 1
-1 1 1 0 2 2 2
-3 3 0 0 0 4 4
-5 0 6 0 7 0 8
-0 0 0 9 0 0 0
-10 0 11 0 12 0 13
-14 14 0 0 0 15 15
-16 16 16 0 17 17 17
-1 1 1 0 2 3 3
-1 1 0 0 0 3 3
-1 0 4 0 3 0 3
-0 0 0 3 0 0 0
-3 0 3 0 5 0 6
-3 3 0 0 0 6 6
-3 3 7 0 6 6 6
-1 2 3 0 4 5 6
-7 8 0 0 0 9 10
-11 0 12 0 13 0 14
-0 0 0 15 0 0 0
-16 0 17 0 18 0 19
-20 21 0 0 0 22 23
-24 25 26 0 27 28 29
-1 1 1 0 2 2 2
-1 1 0 0 0 2 2
-1 0 3 0 2 0 2
-0 0 0 2 0 0 0
-2 0 2 0 4 0 5
-2 2 0 0 0 5 5
-2 2 2 0 5 5 5
-1 1 1 0 2 2 2
-1 1 0 0 0 2 2
-1 0 3 0 4 0 2
-0 0 0 5 0 0 0
-6 0 7 0 8 0 9
-6 6 0 0 0 9 9
-6 6 6 0 9 9 9
-1 2 3 0 4 5 6
-7 1 0 0 0 4 5
-8 0 1 0 9 0 4
-0 0 0 1 0 0 0
-10 0 11 0 1 0 12
-13 10 0 0 0 1 14
-15 13 10 0 16 17 1
-1 2 3 0 4 5 6
-1 2 0 0 0 5 6
-1 0 7 0 8 0 6
-0 0 0 9 0 0 0
-10 0 11 0 12 0 13
-10 14 0 0 0 15 13
-10 14 16 0 17 15 13
-1 1 1 0 1 1 1
-1 1 0 0 0 1 1
-1 0 1 0 1 0 1
-0 0 0 1 0 0 0
-1 0 1 0 1 0 1
-1 1 0 0 0 1 1
-1 1 1 0 1 1 1
-1 1 2 0 3 3 3
-1 1 0 0 0 3 3
-1 0 1 0 4 0 3
-0 0 0 1 0 0 0
-5 0 6 0 1 0 1
-5 5 0 0 0 1 1
-5 5 5 0 7 1 1
-1 2 1 0 1 3 1
-2 1 0 0 0 1 3
-1 0 1 0 1 0 1
-0 0 0 1 0 0 0
-1 0 1 0 1 0 1
-4 1 0 0 0 1 5
-1 4 1 0 1 5 1
-1 2 3 0 4 5 6
-2 3 0 0 0 6 7
-3 0 8 0 6 0 9
-0 0 0 6 0 0 0
-10 0 6 0 11 0 12
-13 6 0 0 0 12 14
-6 15 16 0 12 14 17
-1 1 1 0 2 2 2
-1 1 0 0 0 2 2
-1 0 1 0 3 0 2
-0 0 0 1 0 0 0
-4 0 5 0 1 0 1
-4 4 0 0 0 1 1
-4 4 4 0 1 1 1
-1 0 2 2 2 0 3
-0 0 0 2 0 0 0
-4 0 0 5 0 0 5
-5 5 5 5 5 5 5
-5 0 0 5 0 0 6
-0 0 0 7 0 0 0
-8 0 7 7 7 0 9
-1 0 2 2 2 0 3
-0 0 0 2 0 0 0
-4 0 0 4 0 0 5
-4 4 4 4 4 4 4
-6 0 0 4 0 0 4
-0 0 0 7 0 0 0
-8 0 7 7 7 0 9
-1 0 2 2 2 0 3
-0 0 0 4 0 0 0
-5 0 0 6 0 0 7
-8 8 8 8 8 8 8
-9 0 0 10 0 0 11
-0 0 0 12 0 0 0
-13 0 14 14 14 0 15
-1 0 2 3 3 0 4
-0 0 0 3 0 0 0
-5 0 0 3 0 0 6
-5 5 3 3 3 6 6
-5 0 0 3 0 0 6
-0 0 0 3 0 0 0
-7 0 3 3 8 0 9
-1 0 2 3 4 0 5
-0 0 0 6 0 0 0
-7 0 0 8 0 0 9
-10 11 12 13 14 15 16
-17 0 0 18 0 0 19
-0 0 0 20 0 0 0
-21 0 22 23 24 0 25
-1 0 2 2 2 0 3
-0 0 0 2 0 0 0
-2 0 0 2 0 0 2
-2 2 2 2 2 2 2
-2 0 0 2 0 0 2
-0 0 0 2 0 0 0
-4 0 2 2 2 0 5
-1 0 2 2 2 0 3
-0 0 0 2 0 0 0
-2 0 0 2 0 0 2
-2 2 2 2 2 2 2
-2 0 0 2 0 0 2
-0 0 0 2 0 0 0
-4 0 2 2 2 0 5
-1 0 2 3 4 0 5
-0 0 0 2 0 0 0
-6 0 0 7 0 0 8
-9 6 10 11 7 12 13
-14 0 0 10 0 0 12
-0 0 0 15 0 0 0
-16 0 17 18 15 0 19
-1 0 2 3 4 0 5
-0 0 0 3 0 0 0
-6 0 0 3 0 0 7
-6 8 9 3 10 11 7
-6 0 0 3 0 0 7
-0 0 0 3 0 0 0
-12 0 13 3 14 0 15
-1 0 2 2 2 0 3
-0 0 0 2 0 0 0
-2 0 0 2 0 0 2
-2 2 2 2 2 2 2
-2 0 0 2 0 0 2
-0 0 0 2 0 0 0
-4 0 2 2 2 0 5
-1 0 2 2 3 0 4
-0 0 0 2 0 0 0
-5 0 0 2 0 0 6
-5 5 2 2 2 6 6
-5 0 0 2 0 0 6
-0 0 0 2 0 0 0
-7 0 8 2 2 0 9
-1 0 2 3 2 0 4
-0 0 0 2 0 0 0
-5 0 0 6 0 0 7
-8 5 6 9 6 7 10
-5 0 0 6 0 0 7
-0 0 0 11 0 0 0
-12 0 11 13 11 0 14
-1 0 2 3 4 0 5
-0 0 0 4 0 0 0
-6 0 0 7 0 0 8
-9 10 7 11 12 8 13
-10 0 0 12 0 0 14
-0 0 0 15 0 0 0
-16 0 15 17 18 0 19
-1 0 2 2 2 0 3
-0 0 0 2 0 0 0
-2 0 0 2 0 0 2
-2 2 2 2 2 2 2
-2 0 0 2 0 0 2
-0 0 0 2 0 0 0
-4 0 2 2 2 0 5
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/data/label_strels.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/data/label_strels.txt
deleted file mode 100644
index 35ae8121364d4fb3292c11f2a72333f456fa9c0a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/data/label_strels.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-0 0 1
-1 1 1
-1 0 0
-1 0 0
-1 1 1
-0 0 1
-0 0 0
-1 1 1
-0 0 0
-0 1 1
-0 1 0
-1 1 0
-0 0 0
-0 0 0
-0 0 0
-0 1 1
-1 1 1
-1 1 0
-0 1 0
-1 1 1
-0 1 0
-1 0 0
-0 1 0
-0 0 1
-0 1 0
-0 1 0
-0 1 0
-1 1 1
-1 1 1
-1 1 1
-1 1 0
-0 1 0
-0 1 1
-1 0 1
-0 1 0
-1 0 1
-0 0 1
-0 1 0
-1 0 0
-1 1 0
-1 1 1
-0 1 1
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/dots.png b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/dots.png
deleted file mode 100644
index 640030ca1362bf0364ec2b180694ac6198b835c7..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/dots.png and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_c_api.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_c_api.py
deleted file mode 100644
index ed52ed8477056176e1f5aacbf681b12b0153fee6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_c_api.py
+++ /dev/null
@@ -1,102 +0,0 @@
-import numpy as np
-from numpy.testing import assert_allclose
-
-from scipy import ndimage
-from scipy.ndimage import _ctest
-from scipy.ndimage import _cytest
-from scipy._lib._ccallback import LowLevelCallable
-
-FILTER1D_FUNCTIONS = [
-    lambda filter_size: _ctest.filter1d(filter_size),
-    lambda filter_size: _cytest.filter1d(filter_size, with_signature=False),
-    lambda filter_size: LowLevelCallable(
-                            _cytest.filter1d(filter_size, with_signature=True)
-                        ),
-    lambda filter_size: LowLevelCallable.from_cython(
-                            _cytest, "_filter1d",
-                            _cytest.filter1d_capsule(filter_size),
-                        ),
-]
-
-FILTER2D_FUNCTIONS = [
-    lambda weights: _ctest.filter2d(weights),
-    lambda weights: _cytest.filter2d(weights, with_signature=False),
-    lambda weights: LowLevelCallable(_cytest.filter2d(weights, with_signature=True)),
-    lambda weights: LowLevelCallable.from_cython(_cytest,
-                                                 "_filter2d",
-                                                 _cytest.filter2d_capsule(weights),),
-]
-
-TRANSFORM_FUNCTIONS = [
-    lambda shift: _ctest.transform(shift),
-    lambda shift: _cytest.transform(shift, with_signature=False),
-    lambda shift: LowLevelCallable(_cytest.transform(shift, with_signature=True)),
-    lambda shift: LowLevelCallable.from_cython(_cytest,
-                                               "_transform",
-                                               _cytest.transform_capsule(shift),),
-]
-
-
-def test_generic_filter():
-    def filter2d(footprint_elements, weights):
-        return (weights*footprint_elements).sum()
-
-    def check(j):
-        func = FILTER2D_FUNCTIONS[j]
-
-        im = np.ones((20, 20))
-        im[:10,:10] = 0
-        footprint = np.array([[0, 1, 0], [1, 1, 1], [0, 1, 0]])
-        footprint_size = np.count_nonzero(footprint)
-        weights = np.ones(footprint_size)/footprint_size
-
-        res = ndimage.generic_filter(im, func(weights),
-                                     footprint=footprint)
-        std = ndimage.generic_filter(im, filter2d, footprint=footprint,
-                                     extra_arguments=(weights,))
-        assert_allclose(res, std, err_msg=f"#{j} failed")
-
-    for j, func in enumerate(FILTER2D_FUNCTIONS):
-        check(j)
-
-
-def test_generic_filter1d():
-    def filter1d(input_line, output_line, filter_size):
-        for i in range(output_line.size):
-            output_line[i] = 0
-            for j in range(filter_size):
-                output_line[i] += input_line[i+j]
-        output_line /= filter_size
-
-    def check(j):
-        func = FILTER1D_FUNCTIONS[j]
-
-        im = np.tile(np.hstack((np.zeros(10), np.ones(10))), (10, 1))
-        filter_size = 3
-
-        res = ndimage.generic_filter1d(im, func(filter_size),
-                                       filter_size)
-        std = ndimage.generic_filter1d(im, filter1d, filter_size,
-                                       extra_arguments=(filter_size,))
-        assert_allclose(res, std, err_msg=f"#{j} failed")
-
-    for j, func in enumerate(FILTER1D_FUNCTIONS):
-        check(j)
-
-
-def test_geometric_transform():
-    def transform(output_coordinates, shift):
-        return output_coordinates[0] - shift, output_coordinates[1] - shift
-
-    def check(j):
-        func = TRANSFORM_FUNCTIONS[j]
-
-        im = np.arange(12).reshape(4, 3).astype(np.float64)
-        shift = 0.5
-
-        res = ndimage.geometric_transform(im, func(shift))
-        std = ndimage.geometric_transform(im, transform, extra_arguments=(shift,))
-        assert_allclose(res, std, err_msg=f"#{j} failed")
-
-    for j, func in enumerate(TRANSFORM_FUNCTIONS):
-        check(j)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_datatypes.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_datatypes.py
deleted file mode 100644
index cd9382a16ada38a6d3059d54ad765c2e0f74b7c1..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_datatypes.py
+++ /dev/null
@@ -1,66 +0,0 @@
-""" Testing data types for ndimage calls
-"""
-import numpy as np
-from numpy.testing import assert_array_almost_equal, assert_
-import pytest
-
-from scipy import ndimage
-
-
-def test_map_coordinates_dts():
-    # check that ndimage accepts different data types for interpolation
-    data = np.array([[4, 1, 3, 2],
-                     [7, 6, 8, 5],
-                     [3, 5, 3, 6]])
-    shifted_data = np.array([[0, 0, 0, 0],
-                             [0, 4, 1, 3],
-                             [0, 7, 6, 8]])
-    idx = np.indices(data.shape)
-    dts = (np.uint8, np.uint16, np.uint32, np.uint64,
-           np.int8, np.int16, np.int32, np.int64,
-           np.intp, np.uintp, np.float32, np.float64)
-    for order in range(0, 6):
-        for data_dt in dts:
-            these_data = data.astype(data_dt)
-            for coord_dt in dts:
-                # affine mapping
-                mat = np.eye(2, dtype=coord_dt)
-                off = np.zeros((2,), dtype=coord_dt)
-                out = ndimage.affine_transform(these_data, mat, off)
-                assert_array_almost_equal(these_data, out)
-                # map coordinates
-                coords_m1 = idx.astype(coord_dt) - 1
-                coords_p10 = idx.astype(coord_dt) + 10
-                out = ndimage.map_coordinates(these_data, coords_m1, order=order)
-                assert_array_almost_equal(out, shifted_data)
-                # check constant fill works
-                out = ndimage.map_coordinates(these_data, coords_p10, order=order)
-                assert_array_almost_equal(out, np.zeros((3,4)))
-            # check shift and zoom
-            out = ndimage.shift(these_data, 1)
-            assert_array_almost_equal(out, shifted_data)
-            out = ndimage.zoom(these_data, 1)
-            assert_array_almost_equal(these_data, out)
-
-
-@pytest.mark.xfail(True, reason="Broken on many platforms")
-def test_uint64_max():
-    # Test interpolation respects uint64 max.  Reported to fail at least on
-    # win32 (due to the 32 bit visual C compiler using signed int64 when
-    # converting between uint64 to double) and Debian on s390x.
-    # Interpolation is always done in double precision floating point, so
-    # we use the largest uint64 value for which int(float(big)) still fits
-    # in a uint64.
-    # This test was last enabled on macOS only, and there it started failing
-    # on arm64 as well (see gh-19117).
-    big = 2**64 - 1025
-    arr = np.array([big, big, big], dtype=np.uint64)
-    # Tests geometric transform (map_coordinates, affine_transform)
-    inds = np.indices(arr.shape) - 0.1
-    x = ndimage.map_coordinates(arr, inds)
-    assert_(x[1] == int(float(big)))
-    assert_(x[2] == int(float(big)))
-    # Tests zoom / shift
-    x = ndimage.shift(arr, 0.1)
-    assert_(x[1] == int(float(big)))
-    assert_(x[2] == int(float(big)))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_filters.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_filters.py
deleted file mode 100644
index 6782cf463cfffa857be731bceb5d87377084864c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_filters.py
+++ /dev/null
@@ -1,2214 +0,0 @@
-''' Some tests for filters '''
-import functools
-import itertools
-import math
-import numpy as np
-
-from numpy.testing import (assert_equal, assert_allclose,
-                           assert_array_almost_equal,
-                           assert_array_equal, assert_almost_equal,
-                           suppress_warnings, assert_)
-import pytest
-from pytest import raises as assert_raises
-
-from scipy import ndimage
-from scipy.ndimage._filters import _gaussian_kernel1d
-
-from . import types, float_types, complex_types
-
-
-def sumsq(a, b):
-    return math.sqrt(((a - b)**2).sum())
-
-
-def _complex_correlate(array, kernel, real_dtype, convolve=False,
-                       mode="reflect", cval=0, ):
-    """Utility to perform a reference complex-valued convolutions.
-
-    When convolve==False, correlation is performed instead
-    """
-    array = np.asarray(array)
-    kernel = np.asarray(kernel)
-    complex_array = array.dtype.kind == 'c'
-    complex_kernel = kernel.dtype.kind == 'c'
-    if array.ndim == 1:
-        func = ndimage.convolve1d if convolve else ndimage.correlate1d
-    else:
-        func = ndimage.convolve if convolve else ndimage.correlate
-    if not convolve:
-        kernel = kernel.conj()
-    if complex_array and complex_kernel:
-        # use: real(cval) for array.real component
-        #      imag(cval) for array.imag component
-        output = (
-            func(array.real, kernel.real, output=real_dtype,
-                 mode=mode, cval=np.real(cval)) -
-            func(array.imag, kernel.imag, output=real_dtype,
-                 mode=mode, cval=np.imag(cval)) +
-            1j * func(array.imag, kernel.real, output=real_dtype,
-                      mode=mode, cval=np.imag(cval)) +
-            1j * func(array.real, kernel.imag, output=real_dtype,
-                      mode=mode, cval=np.real(cval))
-        )
-    elif complex_array:
-        output = (
-            func(array.real, kernel, output=real_dtype, mode=mode,
-                 cval=np.real(cval)) +
-            1j * func(array.imag, kernel, output=real_dtype, mode=mode,
-                      cval=np.imag(cval))
-        )
-    elif complex_kernel:
-        # real array so cval is real too
-        output = (
-            func(array, kernel.real, output=real_dtype, mode=mode, cval=cval) +
-            1j * func(array, kernel.imag, output=real_dtype, mode=mode,
-                      cval=cval)
-        )
-    return output
-
-
-def _cases_axes_tuple_length_mismatch():
-    # Generate combinations of filter function, valid kwargs, and
-    # keyword-value pairs for which the value will become with mismatched
-    # (invalid) size
-    filter_func = ndimage.gaussian_filter
-    kwargs = dict(radius=3, mode='constant', sigma=1.0, order=0)
-    for key, val in kwargs.items():
-        yield filter_func, kwargs, key, val
-
-    filter_funcs = [ndimage.uniform_filter, ndimage.minimum_filter,
-                    ndimage.maximum_filter]
-    kwargs = dict(size=3, mode='constant', origin=0)
-    for filter_func in filter_funcs:
-        for key, val in kwargs.items():
-            yield filter_func, kwargs, key, val
-
-
-class TestNdimageFilters:
-
-    def _validate_complex(self, array, kernel, type2, mode='reflect', cval=0):
-        # utility for validating complex-valued correlations
-        real_dtype = np.asarray([], dtype=type2).real.dtype
-        expected = _complex_correlate(
-            array, kernel, real_dtype, convolve=False, mode=mode, cval=cval
-        )
-
-        if array.ndim == 1:
-            correlate = functools.partial(ndimage.correlate1d, axis=-1,
-                                          mode=mode, cval=cval)
-            convolve = functools.partial(ndimage.convolve1d, axis=-1,
-                                         mode=mode, cval=cval)
-        else:
-            correlate = functools.partial(ndimage.correlate, mode=mode,
-                                          cval=cval)
-            convolve = functools.partial(ndimage.convolve, mode=mode,
-                                          cval=cval)
-
-        # test correlate output dtype
-        output = correlate(array, kernel, output=type2)
-        assert_array_almost_equal(expected, output)
-        assert_equal(output.dtype.type, type2)
-
-        # test correlate with pre-allocated output
-        output = np.zeros_like(array, dtype=type2)
-        correlate(array, kernel, output=output)
-        assert_array_almost_equal(expected, output)
-
-        # test convolve output dtype
-        output = convolve(array, kernel, output=type2)
-        expected = _complex_correlate(
-            array, kernel, real_dtype, convolve=True, mode=mode, cval=cval,
-        )
-        assert_array_almost_equal(expected, output)
-        assert_equal(output.dtype.type, type2)
-
-        # convolve with pre-allocated output
-        convolve(array, kernel, output=output)
-        assert_array_almost_equal(expected, output)
-        assert_equal(output.dtype.type, type2)
-
-        # warns if the output is not a complex dtype
-        with pytest.warns(UserWarning,
-                          match="promoting specified output dtype to complex"):
-            correlate(array, kernel, output=real_dtype)
-
-        with pytest.warns(UserWarning,
-                          match="promoting specified output dtype to complex"):
-            convolve(array, kernel, output=real_dtype)
-
-        # raises if output array is provided, but is not complex-valued
-        output_real = np.zeros_like(array, dtype=real_dtype)
-        with assert_raises(RuntimeError):
-            correlate(array, kernel, output=output_real)
-
-        with assert_raises(RuntimeError):
-            convolve(array, kernel, output=output_real)
-
-    def test_correlate01(self):
-        array = np.array([1, 2])
-        weights = np.array([2])
-        expected = [2, 4]
-
-        output = ndimage.correlate(array, weights)
-        assert_array_almost_equal(output, expected)
-
-        output = ndimage.convolve(array, weights)
-        assert_array_almost_equal(output, expected)
-
-        output = ndimage.correlate1d(array, weights)
-        assert_array_almost_equal(output, expected)
-
-        output = ndimage.convolve1d(array, weights)
-        assert_array_almost_equal(output, expected)
-
-    def test_correlate01_overlap(self):
-        array = np.arange(256).reshape(16, 16)
-        weights = np.array([2])
-        expected = 2 * array
-
-        ndimage.correlate1d(array, weights, output=array)
-        assert_array_almost_equal(array, expected)
-
-    def test_correlate02(self):
-        array = np.array([1, 2, 3])
-        kernel = np.array([1])
-
-        output = ndimage.correlate(array, kernel)
-        assert_array_almost_equal(array, output)
-
-        output = ndimage.convolve(array, kernel)
-        assert_array_almost_equal(array, output)
-
-        output = ndimage.correlate1d(array, kernel)
-        assert_array_almost_equal(array, output)
-
-        output = ndimage.convolve1d(array, kernel)
-        assert_array_almost_equal(array, output)
-
-    def test_correlate03(self):
-        array = np.array([1])
-        weights = np.array([1, 1])
-        expected = [2]
-
-        output = ndimage.correlate(array, weights)
-        assert_array_almost_equal(output, expected)
-
-        output = ndimage.convolve(array, weights)
-        assert_array_almost_equal(output, expected)
-
-        output = ndimage.correlate1d(array, weights)
-        assert_array_almost_equal(output, expected)
-
-        output = ndimage.convolve1d(array, weights)
-        assert_array_almost_equal(output, expected)
-
-    def test_correlate04(self):
-        array = np.array([1, 2])
-        tcor = [2, 3]
-        tcov = [3, 4]
-        weights = np.array([1, 1])
-        output = ndimage.correlate(array, weights)
-        assert_array_almost_equal(output, tcor)
-        output = ndimage.convolve(array, weights)
-        assert_array_almost_equal(output, tcov)
-        output = ndimage.correlate1d(array, weights)
-        assert_array_almost_equal(output, tcor)
-        output = ndimage.convolve1d(array, weights)
-        assert_array_almost_equal(output, tcov)
-
-    def test_correlate05(self):
-        array = np.array([1, 2, 3])
-        tcor = [2, 3, 5]
-        tcov = [3, 5, 6]
-        kernel = np.array([1, 1])
-        output = ndimage.correlate(array, kernel)
-        assert_array_almost_equal(tcor, output)
-        output = ndimage.convolve(array, kernel)
-        assert_array_almost_equal(tcov, output)
-        output = ndimage.correlate1d(array, kernel)
-        assert_array_almost_equal(tcor, output)
-        output = ndimage.convolve1d(array, kernel)
-        assert_array_almost_equal(tcov, output)
-
-    def test_correlate06(self):
-        array = np.array([1, 2, 3])
-        tcor = [9, 14, 17]
-        tcov = [7, 10, 15]
-        weights = np.array([1, 2, 3])
-        output = ndimage.correlate(array, weights)
-        assert_array_almost_equal(output, tcor)
-        output = ndimage.convolve(array, weights)
-        assert_array_almost_equal(output, tcov)
-        output = ndimage.correlate1d(array, weights)
-        assert_array_almost_equal(output, tcor)
-        output = ndimage.convolve1d(array, weights)
-        assert_array_almost_equal(output, tcov)
-
-    def test_correlate07(self):
-        array = np.array([1, 2, 3])
-        expected = [5, 8, 11]
-        weights = np.array([1, 2, 1])
-        output = ndimage.correlate(array, weights)
-        assert_array_almost_equal(output, expected)
-        output = ndimage.convolve(array, weights)
-        assert_array_almost_equal(output, expected)
-        output = ndimage.correlate1d(array, weights)
-        assert_array_almost_equal(output, expected)
-        output = ndimage.convolve1d(array, weights)
-        assert_array_almost_equal(output, expected)
-
-    def test_correlate08(self):
-        array = np.array([1, 2, 3])
-        tcor = [1, 2, 5]
-        tcov = [3, 6, 7]
-        weights = np.array([1, 2, -1])
-        output = ndimage.correlate(array, weights)
-        assert_array_almost_equal(output, tcor)
-        output = ndimage.convolve(array, weights)
-        assert_array_almost_equal(output, tcov)
-        output = ndimage.correlate1d(array, weights)
-        assert_array_almost_equal(output, tcor)
-        output = ndimage.convolve1d(array, weights)
-        assert_array_almost_equal(output, tcov)
-
-    def test_correlate09(self):
-        array = []
-        kernel = np.array([1, 1])
-        output = ndimage.correlate(array, kernel)
-        assert_array_almost_equal(array, output)
-        output = ndimage.convolve(array, kernel)
-        assert_array_almost_equal(array, output)
-        output = ndimage.correlate1d(array, kernel)
-        assert_array_almost_equal(array, output)
-        output = ndimage.convolve1d(array, kernel)
-        assert_array_almost_equal(array, output)
-
-    def test_correlate10(self):
-        array = [[]]
-        kernel = np.array([[1, 1]])
-        output = ndimage.correlate(array, kernel)
-        assert_array_almost_equal(array, output)
-        output = ndimage.convolve(array, kernel)
-        assert_array_almost_equal(array, output)
-
-    def test_correlate11(self):
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]])
-        kernel = np.array([[1, 1],
-                           [1, 1]])
-        output = ndimage.correlate(array, kernel)
-        assert_array_almost_equal([[4, 6, 10], [10, 12, 16]], output)
-        output = ndimage.convolve(array, kernel)
-        assert_array_almost_equal([[12, 16, 18], [18, 22, 24]], output)
-
-    def test_correlate12(self):
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]])
-        kernel = np.array([[1, 0],
-                           [0, 1]])
-        output = ndimage.correlate(array, kernel)
-        assert_array_almost_equal([[2, 3, 5], [5, 6, 8]], output)
-        output = ndimage.convolve(array, kernel)
-        assert_array_almost_equal([[6, 8, 9], [9, 11, 12]], output)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    @pytest.mark.parametrize('dtype_kernel', types)
-    def test_correlate13(self, dtype_array, dtype_kernel):
-        kernel = np.array([[1, 0],
-                              [0, 1]])
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]], dtype_array)
-        output = ndimage.correlate(array, kernel, output=dtype_kernel)
-        assert_array_almost_equal([[2, 3, 5], [5, 6, 8]], output)
-        assert_equal(output.dtype.type, dtype_kernel)
-
-        output = ndimage.convolve(array, kernel,
-                                  output=dtype_kernel)
-        assert_array_almost_equal([[6, 8, 9], [9, 11, 12]], output)
-        assert_equal(output.dtype.type, dtype_kernel)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    @pytest.mark.parametrize('dtype_output', types)
-    def test_correlate14(self, dtype_array, dtype_output):
-        kernel = np.array([[1, 0],
-                           [0, 1]])
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]], dtype_array)
-        output = np.zeros(array.shape, dtype_output)
-        ndimage.correlate(array, kernel, output=output)
-        assert_array_almost_equal([[2, 3, 5], [5, 6, 8]], output)
-        assert_equal(output.dtype.type, dtype_output)
-
-        ndimage.convolve(array, kernel, output=output)
-        assert_array_almost_equal([[6, 8, 9], [9, 11, 12]], output)
-        assert_equal(output.dtype.type, dtype_output)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    def test_correlate15(self, dtype_array):
-        kernel = np.array([[1, 0],
-                           [0, 1]])
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]], dtype_array)
-        output = ndimage.correlate(array, kernel, output=np.float32)
-        assert_array_almost_equal([[2, 3, 5], [5, 6, 8]], output)
-        assert_equal(output.dtype.type, np.float32)
-
-        output = ndimage.convolve(array, kernel, output=np.float32)
-        assert_array_almost_equal([[6, 8, 9], [9, 11, 12]], output)
-        assert_equal(output.dtype.type, np.float32)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    def test_correlate16(self, dtype_array):
-        kernel = np.array([[0.5, 0],
-                           [0, 0.5]])
-        array = np.array([[1, 2, 3], [4, 5, 6]], dtype_array)
-        output = ndimage.correlate(array, kernel, output=np.float32)
-        assert_array_almost_equal([[1, 1.5, 2.5], [2.5, 3, 4]], output)
-        assert_equal(output.dtype.type, np.float32)
-
-        output = ndimage.convolve(array, kernel, output=np.float32)
-        assert_array_almost_equal([[3, 4, 4.5], [4.5, 5.5, 6]], output)
-        assert_equal(output.dtype.type, np.float32)
-
-    def test_correlate17(self):
-        array = np.array([1, 2, 3])
-        tcor = [3, 5, 6]
-        tcov = [2, 3, 5]
-        kernel = np.array([1, 1])
-        output = ndimage.correlate(array, kernel, origin=-1)
-        assert_array_almost_equal(tcor, output)
-        output = ndimage.convolve(array, kernel, origin=-1)
-        assert_array_almost_equal(tcov, output)
-        output = ndimage.correlate1d(array, kernel, origin=-1)
-        assert_array_almost_equal(tcor, output)
-        output = ndimage.convolve1d(array, kernel, origin=-1)
-        assert_array_almost_equal(tcov, output)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    def test_correlate18(self, dtype_array):
-        kernel = np.array([[1, 0],
-                           [0, 1]])
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]], dtype_array)
-        output = ndimage.correlate(array, kernel,
-                                   output=np.float32,
-                                   mode='nearest', origin=-1)
-        assert_array_almost_equal([[6, 8, 9], [9, 11, 12]], output)
-        assert_equal(output.dtype.type, np.float32)
-
-        output = ndimage.convolve(array, kernel,
-                                  output=np.float32,
-                                  mode='nearest', origin=-1)
-        assert_array_almost_equal([[2, 3, 5], [5, 6, 8]], output)
-        assert_equal(output.dtype.type, np.float32)
-
-    def test_correlate_mode_sequence(self):
-        kernel = np.ones((2, 2))
-        array = np.ones((3, 3), float)
-        with assert_raises(RuntimeError):
-            ndimage.correlate(array, kernel, mode=['nearest', 'reflect'])
-        with assert_raises(RuntimeError):
-            ndimage.convolve(array, kernel, mode=['nearest', 'reflect'])
-
-    @pytest.mark.parametrize('dtype_array', types)
-    def test_correlate19(self, dtype_array):
-        kernel = np.array([[1, 0],
-                           [0, 1]])
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]], dtype_array)
-        output = ndimage.correlate(array, kernel,
-                                   output=np.float32,
-                                   mode='nearest', origin=[-1, 0])
-        assert_array_almost_equal([[5, 6, 8], [8, 9, 11]], output)
-        assert_equal(output.dtype.type, np.float32)
-
-        output = ndimage.convolve(array, kernel,
-                                  output=np.float32,
-                                  mode='nearest', origin=[-1, 0])
-        assert_array_almost_equal([[3, 5, 6], [6, 8, 9]], output)
-        assert_equal(output.dtype.type, np.float32)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    @pytest.mark.parametrize('dtype_output', types)
-    def test_correlate20(self, dtype_array, dtype_output):
-        weights = np.array([1, 2, 1])
-        expected = [[5, 10, 15], [7, 14, 21]]
-        array = np.array([[1, 2, 3],
-                          [2, 4, 6]], dtype_array)
-        output = np.zeros((2, 3), dtype_output)
-        ndimage.correlate1d(array, weights, axis=0, output=output)
-        assert_array_almost_equal(output, expected)
-        ndimage.convolve1d(array, weights, axis=0, output=output)
-        assert_array_almost_equal(output, expected)
-
-    def test_correlate21(self):
-        array = np.array([[1, 2, 3],
-                          [2, 4, 6]])
-        expected = [[5, 10, 15], [7, 14, 21]]
-        weights = np.array([1, 2, 1])
-        output = ndimage.correlate1d(array, weights, axis=0)
-        assert_array_almost_equal(output, expected)
-        output = ndimage.convolve1d(array, weights, axis=0)
-        assert_array_almost_equal(output, expected)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    @pytest.mark.parametrize('dtype_output', types)
-    def test_correlate22(self, dtype_array, dtype_output):
-        weights = np.array([1, 2, 1])
-        expected = [[6, 12, 18], [6, 12, 18]]
-        array = np.array([[1, 2, 3],
-                          [2, 4, 6]], dtype_array)
-        output = np.zeros((2, 3), dtype_output)
-        ndimage.correlate1d(array, weights, axis=0,
-                            mode='wrap', output=output)
-        assert_array_almost_equal(output, expected)
-        ndimage.convolve1d(array, weights, axis=0,
-                           mode='wrap', output=output)
-        assert_array_almost_equal(output, expected)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    @pytest.mark.parametrize('dtype_output', types)
-    def test_correlate23(self, dtype_array, dtype_output):
-        weights = np.array([1, 2, 1])
-        expected = [[5, 10, 15], [7, 14, 21]]
-        array = np.array([[1, 2, 3],
-                          [2, 4, 6]], dtype_array)
-        output = np.zeros((2, 3), dtype_output)
-        ndimage.correlate1d(array, weights, axis=0,
-                            mode='nearest', output=output)
-        assert_array_almost_equal(output, expected)
-        ndimage.convolve1d(array, weights, axis=0,
-                           mode='nearest', output=output)
-        assert_array_almost_equal(output, expected)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    @pytest.mark.parametrize('dtype_output', types)
-    def test_correlate24(self, dtype_array, dtype_output):
-        weights = np.array([1, 2, 1])
-        tcor = [[7, 14, 21], [8, 16, 24]]
-        tcov = [[4, 8, 12], [5, 10, 15]]
-        array = np.array([[1, 2, 3],
-                          [2, 4, 6]], dtype_array)
-        output = np.zeros((2, 3), dtype_output)
-        ndimage.correlate1d(array, weights, axis=0,
-                            mode='nearest', output=output, origin=-1)
-        assert_array_almost_equal(output, tcor)
-        ndimage.convolve1d(array, weights, axis=0,
-                           mode='nearest', output=output, origin=-1)
-        assert_array_almost_equal(output, tcov)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    @pytest.mark.parametrize('dtype_output', types)
-    def test_correlate25(self, dtype_array, dtype_output):
-        weights = np.array([1, 2, 1])
-        tcor = [[4, 8, 12], [5, 10, 15]]
-        tcov = [[7, 14, 21], [8, 16, 24]]
-        array = np.array([[1, 2, 3],
-                          [2, 4, 6]], dtype_array)
-        output = np.zeros((2, 3), dtype_output)
-        ndimage.correlate1d(array, weights, axis=0,
-                            mode='nearest', output=output, origin=1)
-        assert_array_almost_equal(output, tcor)
-        ndimage.convolve1d(array, weights, axis=0,
-                           mode='nearest', output=output, origin=1)
-        assert_array_almost_equal(output, tcov)
-
-    def test_correlate26(self):
-        # test fix for gh-11661 (mirror extension of a length 1 signal)
-        y = ndimage.convolve1d(np.ones(1), np.ones(5), mode='mirror')
-        assert_array_equal(y, np.array(5.))
-
-        y = ndimage.correlate1d(np.ones(1), np.ones(5), mode='mirror')
-        assert_array_equal(y, np.array(5.))
-
-    @pytest.mark.parametrize('dtype_kernel', complex_types)
-    @pytest.mark.parametrize('dtype_input', types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_correlate_complex_kernel(self, dtype_input, dtype_kernel,
-                                      dtype_output):
-        kernel = np.array([[1, 0],
-                           [0, 1 + 1j]], dtype_kernel)
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]], dtype_input)
-        self._validate_complex(array, kernel, dtype_output)
-
-    @pytest.mark.parametrize('dtype_kernel', complex_types)
-    @pytest.mark.parametrize('dtype_input', types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    @pytest.mark.parametrize('mode', ['grid-constant', 'constant'])
-    def test_correlate_complex_kernel_cval(self, dtype_input, dtype_kernel,
-                                           dtype_output, mode):
-        # test use of non-zero cval with complex inputs
-        # also verifies that mode 'grid-constant' does not segfault
-        kernel = np.array([[1, 0],
-                           [0, 1 + 1j]], dtype_kernel)
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]], dtype_input)
-        self._validate_complex(array, kernel, dtype_output, mode=mode,
-                               cval=5.0)
-
-    @pytest.mark.parametrize('dtype_kernel', complex_types)
-    @pytest.mark.parametrize('dtype_input', types)
-    def test_correlate_complex_kernel_invalid_cval(self, dtype_input,
-                                                   dtype_kernel):
-        # cannot give complex cval with a real image
-        kernel = np.array([[1, 0],
-                           [0, 1 + 1j]], dtype_kernel)
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]], dtype_input)
-        for func in [ndimage.convolve, ndimage.correlate, ndimage.convolve1d,
-                     ndimage.correlate1d]:
-            with pytest.raises(ValueError):
-                func(array, kernel, mode='constant', cval=5.0 + 1.0j,
-                     output=np.complex64)
-
-    @pytest.mark.parametrize('dtype_kernel', complex_types)
-    @pytest.mark.parametrize('dtype_input', types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_correlate1d_complex_kernel(self, dtype_input, dtype_kernel,
-                                        dtype_output):
-        kernel = np.array([1, 1 + 1j], dtype_kernel)
-        array = np.array([1, 2, 3, 4, 5, 6], dtype_input)
-        self._validate_complex(array, kernel, dtype_output)
-
-    @pytest.mark.parametrize('dtype_kernel', complex_types)
-    @pytest.mark.parametrize('dtype_input', types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_correlate1d_complex_kernel_cval(self, dtype_input, dtype_kernel,
-                                             dtype_output):
-        kernel = np.array([1, 1 + 1j], dtype_kernel)
-        array = np.array([1, 2, 3, 4, 5, 6], dtype_input)
-        self._validate_complex(array, kernel, dtype_output, mode='constant',
-                               cval=5.0)
-
-    @pytest.mark.parametrize('dtype_kernel', types)
-    @pytest.mark.parametrize('dtype_input', complex_types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_correlate_complex_input(self, dtype_input, dtype_kernel,
-                                     dtype_output):
-        kernel = np.array([[1, 0],
-                           [0, 1]], dtype_kernel)
-        array = np.array([[1, 2j, 3],
-                          [1 + 4j, 5, 6j]], dtype_input)
-        self._validate_complex(array, kernel, dtype_output)
-
-    @pytest.mark.parametrize('dtype_kernel', types)
-    @pytest.mark.parametrize('dtype_input', complex_types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_correlate1d_complex_input(self, dtype_input, dtype_kernel,
-                                       dtype_output):
-        kernel = np.array([1, 0, 1], dtype_kernel)
-        array = np.array([1, 2j, 3, 1 + 4j, 5, 6j], dtype_input)
-        self._validate_complex(array, kernel, dtype_output)
-
-    @pytest.mark.parametrize('dtype_kernel', types)
-    @pytest.mark.parametrize('dtype_input', complex_types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_correlate1d_complex_input_cval(self, dtype_input, dtype_kernel,
-                                            dtype_output):
-        kernel = np.array([1, 0, 1], dtype_kernel)
-        array = np.array([1, 2j, 3, 1 + 4j, 5, 6j], dtype_input)
-        self._validate_complex(array, kernel, dtype_output, mode='constant',
-                               cval=5 - 3j)
-
-    @pytest.mark.parametrize('dtype', complex_types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_correlate_complex_input_and_kernel(self, dtype, dtype_output):
-        kernel = np.array([[1, 0],
-                           [0, 1 + 1j]], dtype)
-        array = np.array([[1, 2j, 3],
-                          [1 + 4j, 5, 6j]], dtype)
-        self._validate_complex(array, kernel, dtype_output)
-
-    @pytest.mark.parametrize('dtype', complex_types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_correlate_complex_input_and_kernel_cval(self, dtype,
-                                                     dtype_output):
-        kernel = np.array([[1, 0],
-                           [0, 1 + 1j]], dtype)
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6]], dtype)
-        self._validate_complex(array, kernel, dtype_output, mode='constant',
-                               cval=5.0 + 2.0j)
-
-    @pytest.mark.parametrize('dtype', complex_types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_correlate1d_complex_input_and_kernel(self, dtype, dtype_output):
-        kernel = np.array([1, 1 + 1j], dtype)
-        array = np.array([1, 2j, 3, 1 + 4j, 5, 6j], dtype)
-        self._validate_complex(array, kernel, dtype_output)
-
-    @pytest.mark.parametrize('dtype', complex_types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_correlate1d_complex_input_and_kernel_cval(self, dtype,
-                                                       dtype_output):
-        kernel = np.array([1, 1 + 1j], dtype)
-        array = np.array([1, 2j, 3, 1 + 4j, 5, 6j], dtype)
-        self._validate_complex(array, kernel, dtype_output, mode='constant',
-                               cval=5.0 + 2.0j)
-
-    def test_gauss01(self):
-        input = np.array([[1, 2, 3],
-                          [2, 4, 6]], np.float32)
-        output = ndimage.gaussian_filter(input, 0)
-        assert_array_almost_equal(output, input)
-
-    def test_gauss02(self):
-        input = np.array([[1, 2, 3],
-                          [2, 4, 6]], np.float32)
-        output = ndimage.gaussian_filter(input, 1.0)
-        assert_equal(input.dtype, output.dtype)
-        assert_equal(input.shape, output.shape)
-
-    def test_gauss03(self):
-        # single precision data
-        input = np.arange(100 * 100).astype(np.float32)
-        input.shape = (100, 100)
-        output = ndimage.gaussian_filter(input, [1.0, 1.0])
-
-        assert_equal(input.dtype, output.dtype)
-        assert_equal(input.shape, output.shape)
-
-        # input.sum() is 49995000.0.  With single precision floats, we can't
-        # expect more than 8 digits of accuracy, so use decimal=0 in this test.
-        assert_almost_equal(output.sum(dtype='d'), input.sum(dtype='d'),
-                            decimal=0)
-        assert_(sumsq(input, output) > 1.0)
-
-    def test_gauss04(self):
-        input = np.arange(100 * 100).astype(np.float32)
-        input.shape = (100, 100)
-        otype = np.float64
-        output = ndimage.gaussian_filter(input, [1.0, 1.0], output=otype)
-        assert_equal(output.dtype.type, np.float64)
-        assert_equal(input.shape, output.shape)
-        assert_(sumsq(input, output) > 1.0)
-
-    def test_gauss05(self):
-        input = np.arange(100 * 100).astype(np.float32)
-        input.shape = (100, 100)
-        otype = np.float64
-        output = ndimage.gaussian_filter(input, [1.0, 1.0],
-                                         order=1, output=otype)
-        assert_equal(output.dtype.type, np.float64)
-        assert_equal(input.shape, output.shape)
-        assert_(sumsq(input, output) > 1.0)
-
-    def test_gauss06(self):
-        input = np.arange(100 * 100).astype(np.float32)
-        input.shape = (100, 100)
-        otype = np.float64
-        output1 = ndimage.gaussian_filter(input, [1.0, 1.0], output=otype)
-        output2 = ndimage.gaussian_filter(input, 1.0, output=otype)
-        assert_array_almost_equal(output1, output2)
-
-    def test_gauss_memory_overlap(self):
-        input = np.arange(100 * 100).astype(np.float32)
-        input.shape = (100, 100)
-        output1 = ndimage.gaussian_filter(input, 1.0)
-        ndimage.gaussian_filter(input, 1.0, output=input)
-        assert_array_almost_equal(output1, input)
-
-    @pytest.mark.parametrize(('filter_func', 'extra_args', 'size0', 'size'),
-                             [(ndimage.gaussian_filter, (), 0, 1.0),
-                              (ndimage.uniform_filter, (), 1, 3),
-                              (ndimage.minimum_filter, (), 1, 3),
-                              (ndimage.maximum_filter, (), 1, 3),
-                              (ndimage.median_filter, (), 1, 3),
-                              (ndimage.rank_filter, (1,), 1, 3),
-                              (ndimage.percentile_filter, (40,), 1, 3)])
-    @pytest.mark.parametrize(
-        'axes',
-        tuple(itertools.combinations(range(-3, 3), 1))
-        + tuple(itertools.combinations(range(-3, 3), 2))
-        + ((0, 1, 2),))
-    def test_filter_axes(self, filter_func, extra_args, size0, size, axes):
-        # Note: `size` is called `sigma` in `gaussian_filter`
-        array = np.arange(6 * 8 * 12, dtype=np.float64).reshape(6, 8, 12)
-        axes = np.array(axes)
-
-        if len(set(axes % array.ndim)) != len(axes):
-            # parametrized cases with duplicate axes raise an error
-            with pytest.raises(ValueError, match="axes must be unique"):
-                filter_func(array, *extra_args, size, axes=axes)
-            return
-        output = filter_func(array, *extra_args, size, axes=axes)
-
-        # result should be equivalent to sigma=0.0/size=1 on unfiltered axes
-        all_sizes = (size if ax in (axes % array.ndim) else size0
-                     for ax in range(array.ndim))
-        expected = filter_func(array, *extra_args, all_sizes)
-        assert_allclose(output, expected)
-
-    kwargs_gauss = dict(radius=[4, 2, 3], order=[0, 1, 2],
-                        mode=['reflect', 'nearest', 'constant'])
-    kwargs_other = dict(origin=(-1, 0, 1),
-                        mode=['reflect', 'nearest', 'constant'])
-    kwargs_rank = dict(origin=(-1, 0, 1))
-
-    @pytest.mark.parametrize("filter_func, size0, size, kwargs",
-                             [(ndimage.gaussian_filter, 0, 1.0, kwargs_gauss),
-                              (ndimage.uniform_filter, 1, 3, kwargs_other),
-                              (ndimage.maximum_filter, 1, 3, kwargs_other),
-                              (ndimage.minimum_filter, 1, 3, kwargs_other),
-                              (ndimage.median_filter, 1, 3, kwargs_rank),
-                              (ndimage.rank_filter, 1, 3, kwargs_rank),
-                              (ndimage.percentile_filter, 1, 3, kwargs_rank)])
-    @pytest.mark.parametrize('axes', itertools.combinations(range(-3, 3), 2))
-    def test_filter_axes_kwargs(self, filter_func, size0, size, kwargs, axes):
-        array = np.arange(6 * 8 * 12, dtype=np.float64).reshape(6, 8, 12)
-
-        kwargs = {key: np.array(val) for key, val in kwargs.items()}
-        axes = np.array(axes)
-        n_axes = axes.size
-
-        if filter_func == ndimage.rank_filter:
-            args = (2,)  # (rank,)
-        elif filter_func == ndimage.percentile_filter:
-            args = (30,)  # (percentile,)
-        else:
-            args = ()
-
-        # form kwargs that specify only the axes in `axes`
-        reduced_kwargs = {key: val[axes] for key, val in kwargs.items()}
-        if len(set(axes % array.ndim)) != len(axes):
-            # parametrized cases with duplicate axes raise an error
-            with pytest.raises(ValueError, match="axes must be unique"):
-                filter_func(array, *args, [size]*n_axes, axes=axes,
-                            **reduced_kwargs)
-            return
-
-        output = filter_func(array, *args, [size]*n_axes, axes=axes,
-                             **reduced_kwargs)
-
-        # result should be equivalent to sigma=0.0/size=1 on unfiltered axes
-        size_3d = np.full(array.ndim, fill_value=size0)
-        size_3d[axes] = size
-        if 'origin' in kwargs:
-            # origin should be zero on the axis that has size 0
-            origin = np.array([0, 0, 0])
-            origin[axes] = reduced_kwargs['origin']
-            kwargs['origin'] = origin
-        expected = filter_func(array, *args, size_3d, **kwargs)
-        assert_allclose(output, expected)
-
-    @pytest.mark.parametrize("filter_func, kwargs",
-                             [(ndimage.minimum_filter, {}),
-                              (ndimage.maximum_filter, {}),
-                              (ndimage.median_filter, {}),
-                              (ndimage.rank_filter, {"rank": 1}),
-                              (ndimage.percentile_filter, {"percentile": 30})])
-    def test_filter_weights_subset_axes_origins(self, filter_func, kwargs):
-        axes = (-2, -1)
-        origins = (0, 1)
-        array = np.arange(6 * 8 * 12, dtype=np.float64).reshape(6, 8, 12)
-        axes = np.array(axes)
-
-        # weights with ndim matching len(axes)
-        footprint = np.ones((3, 5), dtype=bool)
-        footprint[0, 1] = 0  # make non-separable
-
-        output = filter_func(
-            array, footprint=footprint, axes=axes, origin=origins, **kwargs)
-
-        output0 = filter_func(
-            array, footprint=footprint, axes=axes, origin=0, **kwargs)
-
-        # output has origin shift on last axis relative to output0, so
-        # expect shifted arrays to be equal.
-        np.testing.assert_array_equal(output[:, :, 1:], output0[:, :, :-1])
-
-    @pytest.mark.parametrize(
-        'filter_func, args',
-        [(ndimage.gaussian_filter, (1.0,)),      # args = (sigma,)
-         (ndimage.uniform_filter, (3,)),         # args = (size,)
-         (ndimage.minimum_filter, (3,)),         # args = (size,)
-         (ndimage.maximum_filter, (3,)),         # args = (size,)
-         (ndimage.median_filter, (3,)),          # args = (size,)
-         (ndimage.rank_filter, (2, 3)),          # args = (rank, size)
-         (ndimage.percentile_filter, (30, 3))])  # args = (percentile, size)
-    @pytest.mark.parametrize(
-        'axes', [(1.5,), (0, 1, 2, 3), (3,), (-4,)]
-    )
-    def test_filter_invalid_axes(self, filter_func, args, axes):
-        array = np.arange(6 * 8 * 12, dtype=np.float64).reshape(6, 8, 12)
-        if any(isinstance(ax, float) for ax in axes):
-            error_class = TypeError
-            match = "cannot be interpreted as an integer"
-        else:
-            error_class = ValueError
-            match = "out of range"
-        with pytest.raises(error_class, match=match):
-            filter_func(array, *args, axes=axes)
-
-    @pytest.mark.parametrize(
-        'filter_func, kwargs',
-        [(ndimage.minimum_filter, {}),
-         (ndimage.maximum_filter, {}),
-         (ndimage.median_filter, {}),
-         (ndimage.rank_filter, dict(rank=3)),
-         (ndimage.percentile_filter, dict(percentile=30))])
-    @pytest.mark.parametrize(
-        'axes', [(0, ), (1, 2), (0, 1, 2)]
-    )
-    @pytest.mark.parametrize('separable_footprint', [False, True])
-    def test_filter_invalid_footprint_ndim(self, filter_func, kwargs, axes,
-                                           separable_footprint):
-        array = np.arange(6 * 8 * 12, dtype=np.float64).reshape(6, 8, 12)
-        # create a footprint with one too many dimensions
-        footprint = np.ones((3,) * (len(axes) + 1))
-        if not separable_footprint:
-            footprint[(0,) * footprint.ndim] = 0
-        if (filter_func in [ndimage.minimum_filter, ndimage.maximum_filter]
-            and separable_footprint):
-            match = "sequence argument must have length equal to input rank"
-        else:
-            match = "footprint array has incorrect shape"
-        with pytest.raises(RuntimeError, match=match):
-            filter_func(array, **kwargs, footprint=footprint, axes=axes)
-
-    @pytest.mark.parametrize('n_mismatch', [1, 3])
-    @pytest.mark.parametrize('filter_func, kwargs, key, val',
-                             _cases_axes_tuple_length_mismatch())
-    def test_filter_tuple_length_mismatch(self, n_mismatch, filter_func,
-                                          kwargs, key, val):
-        # Test for the intended RuntimeError when a kwargs has an invalid size
-        array = np.arange(6 * 8 * 12, dtype=np.float64).reshape(6, 8, 12)
-        kwargs = dict(**kwargs, axes=(0, 1))
-        kwargs[key] = (val,) * n_mismatch
-        err_msg = "sequence argument must have length equal to input rank"
-        with pytest.raises(RuntimeError, match=err_msg):
-            filter_func(array, **kwargs)
-
-    @pytest.mark.parametrize('dtype', types + complex_types)
-    def test_prewitt01(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        t = ndimage.correlate1d(array, [-1.0, 0.0, 1.0], 0)
-        t = ndimage.correlate1d(t, [1.0, 1.0, 1.0], 1)
-        output = ndimage.prewitt(array, 0)
-        assert_array_almost_equal(t, output)
-
-    @pytest.mark.parametrize('dtype', types + complex_types)
-    def test_prewitt02(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        t = ndimage.correlate1d(array, [-1.0, 0.0, 1.0], 0)
-        t = ndimage.correlate1d(t, [1.0, 1.0, 1.0], 1)
-        output = np.zeros(array.shape, dtype)
-        ndimage.prewitt(array, 0, output)
-        assert_array_almost_equal(t, output)
-
-    @pytest.mark.parametrize('dtype', types + complex_types)
-    def test_prewitt03(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        t = ndimage.correlate1d(array, [-1.0, 0.0, 1.0], 1)
-        t = ndimage.correlate1d(t, [1.0, 1.0, 1.0], 0)
-        output = ndimage.prewitt(array, 1)
-        assert_array_almost_equal(t, output)
-
-    @pytest.mark.parametrize('dtype', types + complex_types)
-    def test_prewitt04(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        t = ndimage.prewitt(array, -1)
-        output = ndimage.prewitt(array, 1)
-        assert_array_almost_equal(t, output)
-
-    @pytest.mark.parametrize('dtype', types + complex_types)
-    def test_sobel01(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        t = ndimage.correlate1d(array, [-1.0, 0.0, 1.0], 0)
-        t = ndimage.correlate1d(t, [1.0, 2.0, 1.0], 1)
-        output = ndimage.sobel(array, 0)
-        assert_array_almost_equal(t, output)
-
-    @pytest.mark.parametrize('dtype', types + complex_types)
-    def test_sobel02(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        t = ndimage.correlate1d(array, [-1.0, 0.0, 1.0], 0)
-        t = ndimage.correlate1d(t, [1.0, 2.0, 1.0], 1)
-        output = np.zeros(array.shape, dtype)
-        ndimage.sobel(array, 0, output)
-        assert_array_almost_equal(t, output)
-
-    @pytest.mark.parametrize('dtype', types + complex_types)
-    def test_sobel03(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        t = ndimage.correlate1d(array, [-1.0, 0.0, 1.0], 1)
-        t = ndimage.correlate1d(t, [1.0, 2.0, 1.0], 0)
-        output = np.zeros(array.shape, dtype)
-        output = ndimage.sobel(array, 1)
-        assert_array_almost_equal(t, output)
-
-    @pytest.mark.parametrize('dtype', types + complex_types)
-    def test_sobel04(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        t = ndimage.sobel(array, -1)
-        output = ndimage.sobel(array, 1)
-        assert_array_almost_equal(t, output)
-
-    @pytest.mark.parametrize('dtype',
-                             [np.int32, np.float32, np.float64,
-                              np.complex64, np.complex128])
-    def test_laplace01(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype) * 100
-        tmp1 = ndimage.correlate1d(array, [1, -2, 1], 0)
-        tmp2 = ndimage.correlate1d(array, [1, -2, 1], 1)
-        output = ndimage.laplace(array)
-        assert_array_almost_equal(tmp1 + tmp2, output)
-
-    @pytest.mark.parametrize('dtype',
-                             [np.int32, np.float32, np.float64,
-                              np.complex64, np.complex128])
-    def test_laplace02(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype) * 100
-        tmp1 = ndimage.correlate1d(array, [1, -2, 1], 0)
-        tmp2 = ndimage.correlate1d(array, [1, -2, 1], 1)
-        output = np.zeros(array.shape, dtype)
-        ndimage.laplace(array, output=output)
-        assert_array_almost_equal(tmp1 + tmp2, output)
-
-    @pytest.mark.parametrize('dtype',
-                             [np.int32, np.float32, np.float64,
-                              np.complex64, np.complex128])
-    def test_gaussian_laplace01(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype) * 100
-        tmp1 = ndimage.gaussian_filter(array, 1.0, [2, 0])
-        tmp2 = ndimage.gaussian_filter(array, 1.0, [0, 2])
-        output = ndimage.gaussian_laplace(array, 1.0)
-        assert_array_almost_equal(tmp1 + tmp2, output)
-
-    @pytest.mark.parametrize('dtype',
-                             [np.int32, np.float32, np.float64,
-                              np.complex64, np.complex128])
-    def test_gaussian_laplace02(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype) * 100
-        tmp1 = ndimage.gaussian_filter(array, 1.0, [2, 0])
-        tmp2 = ndimage.gaussian_filter(array, 1.0, [0, 2])
-        output = np.zeros(array.shape, dtype)
-        ndimage.gaussian_laplace(array, 1.0, output)
-        assert_array_almost_equal(tmp1 + tmp2, output)
-
-    @pytest.mark.parametrize('dtype', types + complex_types)
-    def test_generic_laplace01(self, dtype):
-        def derivative2(input, axis, output, mode, cval, a, b):
-            sigma = [a, b / 2.0]
-            input = np.asarray(input)
-            order = [0] * input.ndim
-            order[axis] = 2
-            return ndimage.gaussian_filter(input, sigma, order,
-                                           output, mode, cval)
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        output = np.zeros(array.shape, dtype)
-        tmp = ndimage.generic_laplace(array, derivative2,
-                                      extra_arguments=(1.0,),
-                                      extra_keywords={'b': 2.0})
-        ndimage.gaussian_laplace(array, 1.0, output)
-        assert_array_almost_equal(tmp, output)
-
-    @pytest.mark.parametrize('dtype',
-                             [np.int32, np.float32, np.float64,
-                              np.complex64, np.complex128])
-    def test_gaussian_gradient_magnitude01(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype) * 100
-        tmp1 = ndimage.gaussian_filter(array, 1.0, [1, 0])
-        tmp2 = ndimage.gaussian_filter(array, 1.0, [0, 1])
-        output = ndimage.gaussian_gradient_magnitude(array, 1.0)
-        expected = tmp1 * tmp1 + tmp2 * tmp2
-        expected = np.sqrt(expected).astype(dtype)
-        assert_array_almost_equal(expected, output)
-
-    @pytest.mark.parametrize('dtype',
-                             [np.int32, np.float32, np.float64,
-                              np.complex64, np.complex128])
-    def test_gaussian_gradient_magnitude02(self, dtype):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype) * 100
-        tmp1 = ndimage.gaussian_filter(array, 1.0, [1, 0])
-        tmp2 = ndimage.gaussian_filter(array, 1.0, [0, 1])
-        output = np.zeros(array.shape, dtype)
-        ndimage.gaussian_gradient_magnitude(array, 1.0, output)
-        expected = tmp1 * tmp1 + tmp2 * tmp2
-        expected = np.sqrt(expected).astype(dtype)
-        assert_array_almost_equal(expected, output)
-
-    def test_generic_gradient_magnitude01(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], np.float64)
-
-        def derivative(input, axis, output, mode, cval, a, b):
-            sigma = [a, b / 2.0]
-            input = np.asarray(input)
-            order = [0] * input.ndim
-            order[axis] = 1
-            return ndimage.gaussian_filter(input, sigma, order,
-                                           output, mode, cval)
-        tmp1 = ndimage.gaussian_gradient_magnitude(array, 1.0)
-        tmp2 = ndimage.generic_gradient_magnitude(
-            array, derivative, extra_arguments=(1.0,),
-            extra_keywords={'b': 2.0})
-        assert_array_almost_equal(tmp1, tmp2)
-
-    def test_uniform01(self):
-        array = np.array([2, 4, 6])
-        size = 2
-        output = ndimage.uniform_filter1d(array, size, origin=-1)
-        assert_array_almost_equal([3, 5, 6], output)
-
-    def test_uniform01_complex(self):
-        array = np.array([2 + 1j, 4 + 2j, 6 + 3j], dtype=np.complex128)
-        size = 2
-        output = ndimage.uniform_filter1d(array, size, origin=-1)
-        assert_array_almost_equal([3, 5, 6], output.real)
-        assert_array_almost_equal([1.5, 2.5, 3], output.imag)
-
-    def test_uniform02(self):
-        array = np.array([1, 2, 3])
-        filter_shape = [0]
-        output = ndimage.uniform_filter(array, filter_shape)
-        assert_array_almost_equal(array, output)
-
-    def test_uniform03(self):
-        array = np.array([1, 2, 3])
-        filter_shape = [1]
-        output = ndimage.uniform_filter(array, filter_shape)
-        assert_array_almost_equal(array, output)
-
-    def test_uniform04(self):
-        array = np.array([2, 4, 6])
-        filter_shape = [2]
-        output = ndimage.uniform_filter(array, filter_shape)
-        assert_array_almost_equal([2, 3, 5], output)
-
-    def test_uniform05(self):
-        array = []
-        filter_shape = [1]
-        output = ndimage.uniform_filter(array, filter_shape)
-        assert_array_almost_equal([], output)
-
-    @pytest.mark.parametrize('dtype_array', types)
-    @pytest.mark.parametrize('dtype_output', types)
-    def test_uniform06(self, dtype_array, dtype_output):
-        filter_shape = [2, 2]
-        array = np.array([[4, 8, 12],
-                          [16, 20, 24]], dtype_array)
-        output = ndimage.uniform_filter(
-            array, filter_shape, output=dtype_output)
-        assert_array_almost_equal([[4, 6, 10], [10, 12, 16]], output)
-        assert_equal(output.dtype.type, dtype_output)
-
-    @pytest.mark.parametrize('dtype_array', complex_types)
-    @pytest.mark.parametrize('dtype_output', complex_types)
-    def test_uniform06_complex(self, dtype_array, dtype_output):
-        filter_shape = [2, 2]
-        array = np.array([[4, 8 + 5j, 12],
-                          [16, 20, 24]], dtype_array)
-        output = ndimage.uniform_filter(
-            array, filter_shape, output=dtype_output)
-        assert_array_almost_equal([[4, 6, 10], [10, 12, 16]], output.real)
-        assert_equal(output.dtype.type, dtype_output)
-
-    def test_minimum_filter01(self):
-        array = np.array([1, 2, 3, 4, 5])
-        filter_shape = np.array([2])
-        output = ndimage.minimum_filter(array, filter_shape)
-        assert_array_almost_equal([1, 1, 2, 3, 4], output)
-
-    def test_minimum_filter02(self):
-        array = np.array([1, 2, 3, 4, 5])
-        filter_shape = np.array([3])
-        output = ndimage.minimum_filter(array, filter_shape)
-        assert_array_almost_equal([1, 1, 2, 3, 4], output)
-
-    def test_minimum_filter03(self):
-        array = np.array([3, 2, 5, 1, 4])
-        filter_shape = np.array([2])
-        output = ndimage.minimum_filter(array, filter_shape)
-        assert_array_almost_equal([3, 2, 2, 1, 1], output)
-
-    def test_minimum_filter04(self):
-        array = np.array([3, 2, 5, 1, 4])
-        filter_shape = np.array([3])
-        output = ndimage.minimum_filter(array, filter_shape)
-        assert_array_almost_equal([2, 2, 1, 1, 1], output)
-
-    def test_minimum_filter05(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        filter_shape = np.array([2, 3])
-        output = ndimage.minimum_filter(array, filter_shape)
-        assert_array_almost_equal([[2, 2, 1, 1, 1],
-                                   [2, 2, 1, 1, 1],
-                                   [5, 3, 3, 1, 1]], output)
-
-    def test_minimum_filter05_overlap(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        filter_shape = np.array([2, 3])
-        ndimage.minimum_filter(array, filter_shape, output=array)
-        assert_array_almost_equal([[2, 2, 1, 1, 1],
-                                   [2, 2, 1, 1, 1],
-                                   [5, 3, 3, 1, 1]], array)
-
-    def test_minimum_filter06(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 1, 1], [1, 1, 1]]
-        output = ndimage.minimum_filter(array, footprint=footprint)
-        assert_array_almost_equal([[2, 2, 1, 1, 1],
-                                   [2, 2, 1, 1, 1],
-                                   [5, 3, 3, 1, 1]], output)
-        # separable footprint should allow mode sequence
-        output2 = ndimage.minimum_filter(array, footprint=footprint,
-                                         mode=['reflect', 'reflect'])
-        assert_array_almost_equal(output2, output)
-
-    def test_minimum_filter07(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        output = ndimage.minimum_filter(array, footprint=footprint)
-        assert_array_almost_equal([[2, 2, 1, 1, 1],
-                                   [2, 3, 1, 3, 1],
-                                   [5, 5, 3, 3, 1]], output)
-        with assert_raises(RuntimeError):
-            ndimage.minimum_filter(array, footprint=footprint,
-                                   mode=['reflect', 'constant'])
-
-    def test_minimum_filter08(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        output = ndimage.minimum_filter(array, footprint=footprint, origin=-1)
-        assert_array_almost_equal([[3, 1, 3, 1, 1],
-                                   [5, 3, 3, 1, 1],
-                                   [3, 3, 1, 1, 1]], output)
-
-    def test_minimum_filter09(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        output = ndimage.minimum_filter(array, footprint=footprint,
-                                        origin=[-1, 0])
-        assert_array_almost_equal([[2, 3, 1, 3, 1],
-                                   [5, 5, 3, 3, 1],
-                                   [5, 3, 3, 1, 1]], output)
-
-    def test_maximum_filter01(self):
-        array = np.array([1, 2, 3, 4, 5])
-        filter_shape = np.array([2])
-        output = ndimage.maximum_filter(array, filter_shape)
-        assert_array_almost_equal([1, 2, 3, 4, 5], output)
-
-    def test_maximum_filter02(self):
-        array = np.array([1, 2, 3, 4, 5])
-        filter_shape = np.array([3])
-        output = ndimage.maximum_filter(array, filter_shape)
-        assert_array_almost_equal([2, 3, 4, 5, 5], output)
-
-    def test_maximum_filter03(self):
-        array = np.array([3, 2, 5, 1, 4])
-        filter_shape = np.array([2])
-        output = ndimage.maximum_filter(array, filter_shape)
-        assert_array_almost_equal([3, 3, 5, 5, 4], output)
-
-    def test_maximum_filter04(self):
-        array = np.array([3, 2, 5, 1, 4])
-        filter_shape = np.array([3])
-        output = ndimage.maximum_filter(array, filter_shape)
-        assert_array_almost_equal([3, 5, 5, 5, 4], output)
-
-    def test_maximum_filter05(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        filter_shape = np.array([2, 3])
-        output = ndimage.maximum_filter(array, filter_shape)
-        assert_array_almost_equal([[3, 5, 5, 5, 4],
-                                   [7, 9, 9, 9, 5],
-                                   [8, 9, 9, 9, 7]], output)
-
-    def test_maximum_filter06(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 1, 1], [1, 1, 1]]
-        output = ndimage.maximum_filter(array, footprint=footprint)
-        assert_array_almost_equal([[3, 5, 5, 5, 4],
-                                   [7, 9, 9, 9, 5],
-                                   [8, 9, 9, 9, 7]], output)
-        # separable footprint should allow mode sequence
-        output2 = ndimage.maximum_filter(array, footprint=footprint,
-                                         mode=['reflect', 'reflect'])
-        assert_array_almost_equal(output2, output)
-
-    def test_maximum_filter07(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        output = ndimage.maximum_filter(array, footprint=footprint)
-        assert_array_almost_equal([[3, 5, 5, 5, 4],
-                                   [7, 7, 9, 9, 5],
-                                   [7, 9, 8, 9, 7]], output)
-        # non-separable footprint should not allow mode sequence
-        with assert_raises(RuntimeError):
-            ndimage.maximum_filter(array, footprint=footprint,
-                                   mode=['reflect', 'reflect'])
-
-    def test_maximum_filter08(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        output = ndimage.maximum_filter(array, footprint=footprint, origin=-1)
-        assert_array_almost_equal([[7, 9, 9, 5, 5],
-                                   [9, 8, 9, 7, 5],
-                                   [8, 8, 7, 7, 7]], output)
-
-    def test_maximum_filter09(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        output = ndimage.maximum_filter(array, footprint=footprint,
-                                        origin=[-1, 0])
-        assert_array_almost_equal([[7, 7, 9, 9, 5],
-                                   [7, 9, 8, 9, 7],
-                                   [8, 8, 8, 7, 7]], output)
-
-    @pytest.mark.parametrize(
-        'axes', tuple(itertools.combinations(range(-3, 3), 2))
-    )
-    @pytest.mark.parametrize(
-        'filter_func, kwargs',
-        [(ndimage.minimum_filter, {}),
-         (ndimage.maximum_filter, {}),
-         (ndimage.median_filter, {}),
-         (ndimage.rank_filter, dict(rank=3)),
-         (ndimage.percentile_filter, dict(percentile=60))]
-    )
-    def test_minmax_nonseparable_axes(self, filter_func, axes, kwargs):
-        array = np.arange(6 * 8 * 12, dtype=np.float32).reshape(6, 8, 12)
-        # use 2D triangular footprint because it is non-separable
-        footprint = np.tri(5)
-        axes = np.array(axes)
-
-        if len(set(axes % array.ndim)) != len(axes):
-            # parametrized cases with duplicate axes raise an error
-            with pytest.raises(ValueError):
-                filter_func(array, footprint=footprint, axes=axes, **kwargs)
-            return
-        output = filter_func(array, footprint=footprint, axes=axes, **kwargs)
-
-        missing_axis = tuple(set(range(3)) - set(axes % array.ndim))[0]
-        footprint_3d = np.expand_dims(footprint, missing_axis)
-        expected = filter_func(array, footprint=footprint_3d, **kwargs)
-        assert_allclose(output, expected)
-
-    def test_rank01(self):
-        array = np.array([1, 2, 3, 4, 5])
-        output = ndimage.rank_filter(array, 1, size=2)
-        assert_array_almost_equal(array, output)
-        output = ndimage.percentile_filter(array, 100, size=2)
-        assert_array_almost_equal(array, output)
-        output = ndimage.median_filter(array, 2)
-        assert_array_almost_equal(array, output)
-
-    def test_rank02(self):
-        array = np.array([1, 2, 3, 4, 5])
-        output = ndimage.rank_filter(array, 1, size=[3])
-        assert_array_almost_equal(array, output)
-        output = ndimage.percentile_filter(array, 50, size=3)
-        assert_array_almost_equal(array, output)
-        output = ndimage.median_filter(array, (3,))
-        assert_array_almost_equal(array, output)
-
-    def test_rank03(self):
-        array = np.array([3, 2, 5, 1, 4])
-        output = ndimage.rank_filter(array, 1, size=[2])
-        assert_array_almost_equal([3, 3, 5, 5, 4], output)
-        output = ndimage.percentile_filter(array, 100, size=2)
-        assert_array_almost_equal([3, 3, 5, 5, 4], output)
-
-    def test_rank04(self):
-        array = np.array([3, 2, 5, 1, 4])
-        expected = [3, 3, 2, 4, 4]
-        output = ndimage.rank_filter(array, 1, size=3)
-        assert_array_almost_equal(expected, output)
-        output = ndimage.percentile_filter(array, 50, size=3)
-        assert_array_almost_equal(expected, output)
-        output = ndimage.median_filter(array, size=3)
-        assert_array_almost_equal(expected, output)
-
-    def test_rank05(self):
-        array = np.array([3, 2, 5, 1, 4])
-        expected = [3, 3, 2, 4, 4]
-        output = ndimage.rank_filter(array, -2, size=3)
-        assert_array_almost_equal(expected, output)
-
-    def test_rank06(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]])
-        expected = [[2, 2, 1, 1, 1],
-                    [3, 3, 2, 1, 1],
-                    [5, 5, 3, 3, 1]]
-        output = ndimage.rank_filter(array, 1, size=[2, 3])
-        assert_array_almost_equal(expected, output)
-        output = ndimage.percentile_filter(array, 17, size=(2, 3))
-        assert_array_almost_equal(expected, output)
-
-    def test_rank06_overlap(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]])
-        array_copy = array.copy()
-        expected = [[2, 2, 1, 1, 1],
-                    [3, 3, 2, 1, 1],
-                    [5, 5, 3, 3, 1]]
-        ndimage.rank_filter(array, 1, size=[2, 3], output=array)
-        assert_array_almost_equal(expected, array)
-
-        ndimage.percentile_filter(array_copy, 17, size=(2, 3),
-                                  output=array_copy)
-        assert_array_almost_equal(expected, array_copy)
-
-    def test_rank07(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]])
-        expected = [[3, 5, 5, 5, 4],
-                    [5, 5, 7, 5, 4],
-                    [6, 8, 8, 7, 5]]
-        output = ndimage.rank_filter(array, -2, size=[2, 3])
-        assert_array_almost_equal(expected, output)
-
-    def test_rank08(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]])
-        expected = [[3, 3, 2, 4, 4],
-                    [5, 5, 5, 4, 4],
-                    [5, 6, 7, 5, 5]]
-        output = ndimage.percentile_filter(array, 50.0, size=(2, 3))
-        assert_array_almost_equal(expected, output)
-        output = ndimage.rank_filter(array, 3, size=(2, 3))
-        assert_array_almost_equal(expected, output)
-        output = ndimage.median_filter(array, size=(2, 3))
-        assert_array_almost_equal(expected, output)
-
-        # non-separable: does not allow mode sequence
-        with assert_raises(RuntimeError):
-            ndimage.percentile_filter(array, 50.0, size=(2, 3),
-                                      mode=['reflect', 'constant'])
-        with assert_raises(RuntimeError):
-            ndimage.rank_filter(array, 3, size=(2, 3), mode=['reflect']*2)
-        with assert_raises(RuntimeError):
-            ndimage.median_filter(array, size=(2, 3), mode=['reflect']*2)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_rank09(self, dtype):
-        expected = [[3, 3, 2, 4, 4],
-                    [3, 5, 2, 5, 1],
-                    [5, 5, 8, 3, 5]]
-        footprint = [[1, 0, 1], [0, 1, 0]]
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        output = ndimage.rank_filter(array, 1, footprint=footprint)
-        assert_array_almost_equal(expected, output)
-        output = ndimage.percentile_filter(array, 35, footprint=footprint)
-        assert_array_almost_equal(expected, output)
-
-    def test_rank10(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        expected = [[2, 2, 1, 1, 1],
-                    [2, 3, 1, 3, 1],
-                    [5, 5, 3, 3, 1]]
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        output = ndimage.rank_filter(array, 0, footprint=footprint)
-        assert_array_almost_equal(expected, output)
-        output = ndimage.percentile_filter(array, 0.0, footprint=footprint)
-        assert_array_almost_equal(expected, output)
-
-    def test_rank11(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        expected = [[3, 5, 5, 5, 4],
-                    [7, 7, 9, 9, 5],
-                    [7, 9, 8, 9, 7]]
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        output = ndimage.rank_filter(array, -1, footprint=footprint)
-        assert_array_almost_equal(expected, output)
-        output = ndimage.percentile_filter(array, 100.0, footprint=footprint)
-        assert_array_almost_equal(expected, output)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_rank12(self, dtype):
-        expected = [[3, 3, 2, 4, 4],
-                    [3, 5, 2, 5, 1],
-                    [5, 5, 8, 3, 5]]
-        footprint = [[1, 0, 1], [0, 1, 0]]
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        output = ndimage.rank_filter(array, 1, footprint=footprint)
-        assert_array_almost_equal(expected, output)
-        output = ndimage.percentile_filter(array, 50.0,
-                                           footprint=footprint)
-        assert_array_almost_equal(expected, output)
-        output = ndimage.median_filter(array, footprint=footprint)
-        assert_array_almost_equal(expected, output)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_rank13(self, dtype):
-        expected = [[5, 2, 5, 1, 1],
-                    [5, 8, 3, 5, 5],
-                    [6, 6, 5, 5, 5]]
-        footprint = [[1, 0, 1], [0, 1, 0]]
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        output = ndimage.rank_filter(array, 1, footprint=footprint,
-                                     origin=-1)
-        assert_array_almost_equal(expected, output)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_rank14(self, dtype):
-        expected = [[3, 5, 2, 5, 1],
-                    [5, 5, 8, 3, 5],
-                    [5, 6, 6, 5, 5]]
-        footprint = [[1, 0, 1], [0, 1, 0]]
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        output = ndimage.rank_filter(array, 1, footprint=footprint,
-                                     origin=[-1, 0])
-        assert_array_almost_equal(expected, output)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_rank15(self, dtype):
-        expected = [[2, 3, 1, 4, 1],
-                    [5, 3, 7, 1, 1],
-                    [5, 5, 3, 3, 3]]
-        footprint = [[1, 0, 1], [0, 1, 0]]
-        array = np.array([[3, 2, 5, 1, 4],
-                          [5, 8, 3, 7, 1],
-                          [5, 6, 9, 3, 5]], dtype)
-        output = ndimage.rank_filter(array, 0, footprint=footprint,
-                                     origin=[-1, 0])
-        assert_array_almost_equal(expected, output)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_generic_filter1d01(self, dtype):
-        weights = np.array([1.1, 2.2, 3.3])
-
-        def _filter_func(input, output, fltr, total):
-            fltr = fltr / total
-            for ii in range(input.shape[0] - 2):
-                output[ii] = input[ii] * fltr[0]
-                output[ii] += input[ii + 1] * fltr[1]
-                output[ii] += input[ii + 2] * fltr[2]
-        a = np.arange(12, dtype=dtype)
-        a.shape = (3, 4)
-        r1 = ndimage.correlate1d(a, weights / weights.sum(), 0, origin=-1)
-        r2 = ndimage.generic_filter1d(
-            a, _filter_func, 3, axis=0, origin=-1,
-            extra_arguments=(weights,),
-            extra_keywords={'total': weights.sum()})
-        assert_array_almost_equal(r1, r2)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_generic_filter01(self, dtype):
-        filter_ = np.array([[1.0, 2.0], [3.0, 4.0]])
-        footprint = np.array([[1, 0], [0, 1]])
-        cf = np.array([1., 4.])
-
-        def _filter_func(buffer, weights, total=1.0):
-            weights = cf / total
-            return (buffer * weights).sum()
-
-        a = np.arange(12, dtype=dtype)
-        a.shape = (3, 4)
-        r1 = ndimage.correlate(a, filter_ * footprint)
-        if dtype in float_types:
-            r1 /= 5
-        else:
-            r1 //= 5
-        r2 = ndimage.generic_filter(
-            a, _filter_func, footprint=footprint, extra_arguments=(cf,),
-            extra_keywords={'total': cf.sum()})
-        assert_array_almost_equal(r1, r2)
-
-        # generic_filter doesn't allow mode sequence
-        with assert_raises(RuntimeError):
-            r2 = ndimage.generic_filter(
-                a, _filter_func, mode=['reflect', 'reflect'],
-                footprint=footprint, extra_arguments=(cf,),
-                extra_keywords={'total': cf.sum()})
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [1, 1, 2]),
-         ('wrap', [3, 1, 2]),
-         ('reflect', [1, 1, 2]),
-         ('mirror', [2, 1, 2]),
-         ('constant', [0, 1, 2])]
-    )
-    def test_extend01(self, mode, expected_value):
-        array = np.array([1, 2, 3])
-        weights = np.array([1, 0])
-        output = ndimage.correlate1d(array, weights, 0, mode=mode, cval=0)
-        assert_array_equal(output, expected_value)
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [1, 1, 1]),
-         ('wrap', [3, 1, 2]),
-         ('reflect', [3, 3, 2]),
-         ('mirror', [1, 2, 3]),
-         ('constant', [0, 0, 0])]
-    )
-    def test_extend02(self, mode, expected_value):
-        array = np.array([1, 2, 3])
-        weights = np.array([1, 0, 0, 0, 0, 0, 0, 0])
-        output = ndimage.correlate1d(array, weights, 0, mode=mode, cval=0)
-        assert_array_equal(output, expected_value)
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [2, 3, 3]),
-         ('wrap', [2, 3, 1]),
-         ('reflect', [2, 3, 3]),
-         ('mirror', [2, 3, 2]),
-         ('constant', [2, 3, 0])]
-    )
-    def test_extend03(self, mode, expected_value):
-        array = np.array([1, 2, 3])
-        weights = np.array([0, 0, 1])
-        output = ndimage.correlate1d(array, weights, 0, mode=mode, cval=0)
-        assert_array_equal(output, expected_value)
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [3, 3, 3]),
-         ('wrap', [2, 3, 1]),
-         ('reflect', [2, 1, 1]),
-         ('mirror', [1, 2, 3]),
-         ('constant', [0, 0, 0])]
-    )
-    def test_extend04(self, mode, expected_value):
-        array = np.array([1, 2, 3])
-        weights = np.array([0, 0, 0, 0, 0, 0, 0, 0, 1])
-        output = ndimage.correlate1d(array, weights, 0, mode=mode, cval=0)
-        assert_array_equal(output, expected_value)
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [[1, 1, 2], [1, 1, 2], [4, 4, 5]]),
-         ('wrap', [[9, 7, 8], [3, 1, 2], [6, 4, 5]]),
-         ('reflect', [[1, 1, 2], [1, 1, 2], [4, 4, 5]]),
-         ('mirror', [[5, 4, 5], [2, 1, 2], [5, 4, 5]]),
-         ('constant', [[0, 0, 0], [0, 1, 2], [0, 4, 5]])]
-    )
-    def test_extend05(self, mode, expected_value):
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6],
-                          [7, 8, 9]])
-        weights = np.array([[1, 0], [0, 0]])
-        output = ndimage.correlate(array, weights, mode=mode, cval=0)
-        assert_array_equal(output, expected_value)
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [[5, 6, 6], [8, 9, 9], [8, 9, 9]]),
-         ('wrap', [[5, 6, 4], [8, 9, 7], [2, 3, 1]]),
-         ('reflect', [[5, 6, 6], [8, 9, 9], [8, 9, 9]]),
-         ('mirror', [[5, 6, 5], [8, 9, 8], [5, 6, 5]]),
-         ('constant', [[5, 6, 0], [8, 9, 0], [0, 0, 0]])]
-    )
-    def test_extend06(self, mode, expected_value):
-        array = np.array([[1, 2, 3],
-                          [4, 5, 6],
-                          [7, 8, 9]])
-        weights = np.array([[0, 0, 0], [0, 0, 0], [0, 0, 1]])
-        output = ndimage.correlate(array, weights, mode=mode, cval=0)
-        assert_array_equal(output, expected_value)
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [3, 3, 3]),
-         ('wrap', [2, 3, 1]),
-         ('reflect', [2, 1, 1]),
-         ('mirror', [1, 2, 3]),
-         ('constant', [0, 0, 0])]
-    )
-    def test_extend07(self, mode, expected_value):
-        array = np.array([1, 2, 3])
-        weights = np.array([0, 0, 0, 0, 0, 0, 0, 0, 1])
-        output = ndimage.correlate(array, weights, mode=mode, cval=0)
-        assert_array_equal(output, expected_value)
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [[3], [3], [3]]),
-         ('wrap', [[2], [3], [1]]),
-         ('reflect', [[2], [1], [1]]),
-         ('mirror', [[1], [2], [3]]),
-         ('constant', [[0], [0], [0]])]
-    )
-    def test_extend08(self, mode, expected_value):
-        array = np.array([[1], [2], [3]])
-        weights = np.array([[0], [0], [0], [0], [0], [0], [0], [0], [1]])
-        output = ndimage.correlate(array, weights, mode=mode, cval=0)
-        assert_array_equal(output, expected_value)
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [3, 3, 3]),
-         ('wrap', [2, 3, 1]),
-         ('reflect', [2, 1, 1]),
-         ('mirror', [1, 2, 3]),
-         ('constant', [0, 0, 0])]
-    )
-    def test_extend09(self, mode, expected_value):
-        array = np.array([1, 2, 3])
-        weights = np.array([0, 0, 0, 0, 0, 0, 0, 0, 1])
-        output = ndimage.correlate(array, weights, mode=mode, cval=0)
-        assert_array_equal(output, expected_value)
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [[3], [3], [3]]),
-         ('wrap', [[2], [3], [1]]),
-         ('reflect', [[2], [1], [1]]),
-         ('mirror', [[1], [2], [3]]),
-         ('constant', [[0], [0], [0]])]
-    )
-    def test_extend10(self, mode, expected_value):
-        array = np.array([[1], [2], [3]])
-        weights = np.array([[0], [0], [0], [0], [0], [0], [0], [0], [1]])
-        output = ndimage.correlate(array, weights, mode=mode, cval=0)
-        assert_array_equal(output, expected_value)
-
-
-def test_ticket_701():
-    # Test generic filter sizes
-    arr = np.arange(4).reshape((2, 2))
-    def func(x):
-        return np.min(x)
-    res = ndimage.generic_filter(arr, func, size=(1, 1))
-    # The following raises an error unless ticket 701 is fixed
-    res2 = ndimage.generic_filter(arr, func, size=1)
-    assert_equal(res, res2)
-
-
-def test_gh_5430():
-    # At least one of these raises an error unless gh-5430 is
-    # fixed. In py2k an int is implemented using a C long, so
-    # which one fails depends on your system. In py3k there is only
-    # one arbitrary precision integer type, so both should fail.
-    sigma = np.int32(1)
-    out = ndimage._ni_support._normalize_sequence(sigma, 1)
-    assert_equal(out, [sigma])
-    sigma = np.int64(1)
-    out = ndimage._ni_support._normalize_sequence(sigma, 1)
-    assert_equal(out, [sigma])
-    # This worked before; make sure it still works
-    sigma = 1
-    out = ndimage._ni_support._normalize_sequence(sigma, 1)
-    assert_equal(out, [sigma])
-    # This worked before; make sure it still works
-    sigma = [1, 1]
-    out = ndimage._ni_support._normalize_sequence(sigma, 2)
-    assert_equal(out, sigma)
-    # Also include the OPs original example to make sure we fixed the issue
-    x = np.random.normal(size=(256, 256))
-    perlin = np.zeros_like(x)
-    for i in 2**np.arange(6):
-        perlin += ndimage.gaussian_filter(x, i, mode="wrap") * i**2
-    # This also fixes gh-4106, show that the OPs example now runs.
-    x = np.int64(21)
-    ndimage._ni_support._normalize_sequence(x, 0)
-
-
-def test_gaussian_kernel1d():
-    radius = 10
-    sigma = 2
-    sigma2 = sigma * sigma
-    x = np.arange(-radius, radius + 1, dtype=np.double)
-    phi_x = np.exp(-0.5 * x * x / sigma2)
-    phi_x /= phi_x.sum()
-    assert_allclose(phi_x, _gaussian_kernel1d(sigma, 0, radius))
-    assert_allclose(-phi_x * x / sigma2, _gaussian_kernel1d(sigma, 1, radius))
-    assert_allclose(phi_x * (x * x / sigma2 - 1) / sigma2,
-                    _gaussian_kernel1d(sigma, 2, radius))
-    assert_allclose(phi_x * (3 - x * x / sigma2) * x / (sigma2 * sigma2),
-                    _gaussian_kernel1d(sigma, 3, radius))
-
-
-def test_orders_gauss():
-    # Check order inputs to Gaussians
-    arr = np.zeros((1,))
-    assert_equal(0, ndimage.gaussian_filter(arr, 1, order=0))
-    assert_equal(0, ndimage.gaussian_filter(arr, 1, order=3))
-    assert_raises(ValueError, ndimage.gaussian_filter, arr, 1, -1)
-    assert_equal(0, ndimage.gaussian_filter1d(arr, 1, axis=-1, order=0))
-    assert_equal(0, ndimage.gaussian_filter1d(arr, 1, axis=-1, order=3))
-    assert_raises(ValueError, ndimage.gaussian_filter1d, arr, 1, -1, -1)
-
-
-def test_valid_origins():
-    """Regression test for #1311."""
-    def func(x):
-        return np.mean(x)
-    data = np.array([1, 2, 3, 4, 5], dtype=np.float64)
-    assert_raises(ValueError, ndimage.generic_filter, data, func, size=3,
-                  origin=2)
-    assert_raises(ValueError, ndimage.generic_filter1d, data, func,
-                  filter_size=3, origin=2)
-    assert_raises(ValueError, ndimage.percentile_filter, data, 0.2, size=3,
-                  origin=2)
-
-    for filter in [ndimage.uniform_filter, ndimage.minimum_filter,
-                   ndimage.maximum_filter, ndimage.maximum_filter1d,
-                   ndimage.median_filter, ndimage.minimum_filter1d]:
-        # This should work, since for size == 3, the valid range for origin is
-        # -1 to 1.
-        list(filter(data, 3, origin=-1))
-        list(filter(data, 3, origin=1))
-        # Just check this raises an error instead of silently accepting or
-        # segfaulting.
-        assert_raises(ValueError, filter, data, 3, origin=2)
-
-
-def test_bad_convolve_and_correlate_origins():
-    """Regression test for gh-822."""
-    # Before gh-822 was fixed, these would generate seg. faults or
-    # other crashes on many system.
-    assert_raises(ValueError, ndimage.correlate1d,
-                  [0, 1, 2, 3, 4, 5], [1, 1, 2, 0], origin=2)
-    assert_raises(ValueError, ndimage.correlate,
-                  [0, 1, 2, 3, 4, 5], [0, 1, 2], origin=[2])
-    assert_raises(ValueError, ndimage.correlate,
-                  np.ones((3, 5)), np.ones((2, 2)), origin=[0, 1])
-
-    assert_raises(ValueError, ndimage.convolve1d,
-                  np.arange(10), np.ones(3), origin=-2)
-    assert_raises(ValueError, ndimage.convolve,
-                  np.arange(10), np.ones(3), origin=[-2])
-    assert_raises(ValueError, ndimage.convolve,
-                  np.ones((3, 5)), np.ones((2, 2)), origin=[0, -2])
-
-
-def test_multiple_modes():
-    # Test that the filters with multiple mode cababilities for different
-    # dimensions give the same result as applying a single mode.
-    arr = np.array([[1., 0., 0.],
-                       [1., 1., 0.],
-                       [0., 0., 0.]])
-
-    mode1 = 'reflect'
-    mode2 = ['reflect', 'reflect']
-
-    assert_equal(ndimage.gaussian_filter(arr, 1, mode=mode1),
-                 ndimage.gaussian_filter(arr, 1, mode=mode2))
-    assert_equal(ndimage.prewitt(arr, mode=mode1),
-                 ndimage.prewitt(arr, mode=mode2))
-    assert_equal(ndimage.sobel(arr, mode=mode1),
-                 ndimage.sobel(arr, mode=mode2))
-    assert_equal(ndimage.laplace(arr, mode=mode1),
-                 ndimage.laplace(arr, mode=mode2))
-    assert_equal(ndimage.gaussian_laplace(arr, 1, mode=mode1),
-                 ndimage.gaussian_laplace(arr, 1, mode=mode2))
-    assert_equal(ndimage.maximum_filter(arr, size=5, mode=mode1),
-                 ndimage.maximum_filter(arr, size=5, mode=mode2))
-    assert_equal(ndimage.minimum_filter(arr, size=5, mode=mode1),
-                 ndimage.minimum_filter(arr, size=5, mode=mode2))
-    assert_equal(ndimage.gaussian_gradient_magnitude(arr, 1, mode=mode1),
-                 ndimage.gaussian_gradient_magnitude(arr, 1, mode=mode2))
-    assert_equal(ndimage.uniform_filter(arr, 5, mode=mode1),
-                 ndimage.uniform_filter(arr, 5, mode=mode2))
-
-
-def test_multiple_modes_sequentially():
-    # Test that the filters with multiple mode cababilities for different
-    # dimensions give the same result as applying the filters with
-    # different modes sequentially
-    arr = np.array([[1., 0., 0.],
-                    [1., 1., 0.],
-                    [0., 0., 0.]])
-
-    modes = ['reflect', 'wrap']
-
-    expected = ndimage.gaussian_filter1d(arr, 1, axis=0, mode=modes[0])
-    expected = ndimage.gaussian_filter1d(expected, 1, axis=1, mode=modes[1])
-    assert_equal(expected,
-                 ndimage.gaussian_filter(arr, 1, mode=modes))
-
-    expected = ndimage.uniform_filter1d(arr, 5, axis=0, mode=modes[0])
-    expected = ndimage.uniform_filter1d(expected, 5, axis=1, mode=modes[1])
-    assert_equal(expected,
-                 ndimage.uniform_filter(arr, 5, mode=modes))
-
-    expected = ndimage.maximum_filter1d(arr, size=5, axis=0, mode=modes[0])
-    expected = ndimage.maximum_filter1d(expected, size=5, axis=1,
-                                        mode=modes[1])
-    assert_equal(expected,
-                 ndimage.maximum_filter(arr, size=5, mode=modes))
-
-    expected = ndimage.minimum_filter1d(arr, size=5, axis=0, mode=modes[0])
-    expected = ndimage.minimum_filter1d(expected, size=5, axis=1,
-                                        mode=modes[1])
-    assert_equal(expected,
-                 ndimage.minimum_filter(arr, size=5, mode=modes))
-
-
-def test_multiple_modes_prewitt():
-    # Test prewitt filter for multiple extrapolation modes
-    arr = np.array([[1., 0., 0.],
-                    [1., 1., 0.],
-                    [0., 0., 0.]])
-
-    expected = np.array([[1., -3., 2.],
-                         [1., -2., 1.],
-                         [1., -1., 0.]])
-
-    modes = ['reflect', 'wrap']
-
-    assert_equal(expected,
-                 ndimage.prewitt(arr, mode=modes))
-
-
-def test_multiple_modes_sobel():
-    # Test sobel filter for multiple extrapolation modes
-    arr = np.array([[1., 0., 0.],
-                    [1., 1., 0.],
-                    [0., 0., 0.]])
-
-    expected = np.array([[1., -4., 3.],
-                         [2., -3., 1.],
-                         [1., -1., 0.]])
-
-    modes = ['reflect', 'wrap']
-
-    assert_equal(expected,
-                 ndimage.sobel(arr, mode=modes))
-
-
-def test_multiple_modes_laplace():
-    # Test laplace filter for multiple extrapolation modes
-    arr = np.array([[1., 0., 0.],
-                    [1., 1., 0.],
-                    [0., 0., 0.]])
-
-    expected = np.array([[-2., 2., 1.],
-                         [-2., -3., 2.],
-                         [1., 1., 0.]])
-
-    modes = ['reflect', 'wrap']
-
-    assert_equal(expected,
-                 ndimage.laplace(arr, mode=modes))
-
-
-def test_multiple_modes_gaussian_laplace():
-    # Test gaussian_laplace filter for multiple extrapolation modes
-    arr = np.array([[1., 0., 0.],
-                    [1., 1., 0.],
-                    [0., 0., 0.]])
-
-    expected = np.array([[-0.28438687, 0.01559809, 0.19773499],
-                         [-0.36630503, -0.20069774, 0.07483620],
-                         [0.15849176, 0.18495566, 0.21934094]])
-
-    modes = ['reflect', 'wrap']
-
-    assert_almost_equal(expected,
-                        ndimage.gaussian_laplace(arr, 1, mode=modes))
-
-
-def test_multiple_modes_gaussian_gradient_magnitude():
-    # Test gaussian_gradient_magnitude filter for multiple
-    # extrapolation modes
-    arr = np.array([[1., 0., 0.],
-                    [1., 1., 0.],
-                    [0., 0., 0.]])
-
-    expected = np.array([[0.04928965, 0.09745625, 0.06405368],
-                         [0.23056905, 0.14025305, 0.04550846],
-                         [0.19894369, 0.14950060, 0.06796850]])
-
-    modes = ['reflect', 'wrap']
-
-    calculated = ndimage.gaussian_gradient_magnitude(arr, 1, mode=modes)
-
-    assert_almost_equal(expected, calculated)
-
-
-def test_multiple_modes_uniform():
-    # Test uniform filter for multiple extrapolation modes
-    arr = np.array([[1., 0., 0.],
-                    [1., 1., 0.],
-                    [0., 0., 0.]])
-
-    expected = np.array([[0.32, 0.40, 0.48],
-                         [0.20, 0.28, 0.32],
-                         [0.28, 0.32, 0.40]])
-
-    modes = ['reflect', 'wrap']
-
-    assert_almost_equal(expected,
-                        ndimage.uniform_filter(arr, 5, mode=modes))
-
-
-def test_gaussian_truncate():
-    # Test that Gaussian filters can be truncated at different widths.
-    # These tests only check that the result has the expected number
-    # of nonzero elements.
-    arr = np.zeros((100, 100), float)
-    arr[50, 50] = 1
-    num_nonzeros_2 = (ndimage.gaussian_filter(arr, 5, truncate=2) > 0).sum()
-    assert_equal(num_nonzeros_2, 21**2)
-    num_nonzeros_5 = (ndimage.gaussian_filter(arr, 5, truncate=5) > 0).sum()
-    assert_equal(num_nonzeros_5, 51**2)
-
-    # Test truncate when sigma is a sequence.
-    f = ndimage.gaussian_filter(arr, [0.5, 2.5], truncate=3.5)
-    fpos = f > 0
-    n0 = fpos.any(axis=0).sum()
-    # n0 should be 2*int(2.5*3.5 + 0.5) + 1
-    assert_equal(n0, 19)
-    n1 = fpos.any(axis=1).sum()
-    # n1 should be 2*int(0.5*3.5 + 0.5) + 1
-    assert_equal(n1, 5)
-
-    # Test gaussian_filter1d.
-    x = np.zeros(51)
-    x[25] = 1
-    f = ndimage.gaussian_filter1d(x, sigma=2, truncate=3.5)
-    n = (f > 0).sum()
-    assert_equal(n, 15)
-
-    # Test gaussian_laplace
-    y = ndimage.gaussian_laplace(x, sigma=2, truncate=3.5)
-    nonzero_indices = np.nonzero(y != 0)[0]
-    n = np.ptp(nonzero_indices) + 1
-    assert_equal(n, 15)
-
-    # Test gaussian_gradient_magnitude
-    y = ndimage.gaussian_gradient_magnitude(x, sigma=2, truncate=3.5)
-    nonzero_indices = np.nonzero(y != 0)[0]
-    n = np.ptp(nonzero_indices) + 1
-    assert_equal(n, 15)
-
-
-def test_gaussian_radius():
-    # Test that Gaussian filters with radius argument produce the same
-    # results as the filters with corresponding truncate argument.
-    # radius = int(truncate * sigma + 0.5)
-    # Test gaussian_filter1d
-    x = np.zeros(7)
-    x[3] = 1
-    f1 = ndimage.gaussian_filter1d(x, sigma=2, truncate=1.5)
-    f2 = ndimage.gaussian_filter1d(x, sigma=2, radius=3)
-    assert_equal(f1, f2)
-
-    # Test gaussian_filter when sigma is a number.
-    a = np.zeros((9, 9))
-    a[4, 4] = 1
-    f1 = ndimage.gaussian_filter(a, sigma=0.5, truncate=3.5)
-    f2 = ndimage.gaussian_filter(a, sigma=0.5, radius=2)
-    assert_equal(f1, f2)
-
-    # Test gaussian_filter when sigma is a sequence.
-    a = np.zeros((50, 50))
-    a[25, 25] = 1
-    f1 = ndimage.gaussian_filter(a, sigma=[0.5, 2.5], truncate=3.5)
-    f2 = ndimage.gaussian_filter(a, sigma=[0.5, 2.5], radius=[2, 9])
-    assert_equal(f1, f2)
-
-
-def test_gaussian_radius_invalid():
-    # radius must be a nonnegative integer
-    with assert_raises(ValueError):
-        ndimage.gaussian_filter1d(np.zeros(8), sigma=1, radius=-1)
-    with assert_raises(ValueError):
-        ndimage.gaussian_filter1d(np.zeros(8), sigma=1, radius=1.1)
-
-
-class TestThreading:
-    def check_func_thread(self, n, fun, args, out):
-        from threading import Thread
-        thrds = [Thread(target=fun, args=args, kwargs={'output': out[x]})
-                 for x in range(n)]
-        [t.start() for t in thrds]
-        [t.join() for t in thrds]
-
-    def check_func_serial(self, n, fun, args, out):
-        for i in range(n):
-            fun(*args, output=out[i])
-
-    def test_correlate1d(self):
-        d = np.random.randn(5000)
-        os = np.empty((4, d.size))
-        ot = np.empty_like(os)
-        k = np.arange(5)
-        self.check_func_serial(4, ndimage.correlate1d, (d, k), os)
-        self.check_func_thread(4, ndimage.correlate1d, (d, k), ot)
-        assert_array_equal(os, ot)
-
-    def test_correlate(self):
-        d = np.random.randn(500, 500)
-        k = np.random.randn(10, 10)
-        os = np.empty([4] + list(d.shape))
-        ot = np.empty_like(os)
-        self.check_func_serial(4, ndimage.correlate, (d, k), os)
-        self.check_func_thread(4, ndimage.correlate, (d, k), ot)
-        assert_array_equal(os, ot)
-
-    def test_median_filter(self):
-        d = np.random.randn(500, 500)
-        os = np.empty([4] + list(d.shape))
-        ot = np.empty_like(os)
-        self.check_func_serial(4, ndimage.median_filter, (d, 3), os)
-        self.check_func_thread(4, ndimage.median_filter, (d, 3), ot)
-        assert_array_equal(os, ot)
-
-    def test_uniform_filter1d(self):
-        d = np.random.randn(5000)
-        os = np.empty((4, d.size))
-        ot = np.empty_like(os)
-        self.check_func_serial(4, ndimage.uniform_filter1d, (d, 5), os)
-        self.check_func_thread(4, ndimage.uniform_filter1d, (d, 5), ot)
-        assert_array_equal(os, ot)
-
-    def test_minmax_filter(self):
-        d = np.random.randn(500, 500)
-        os = np.empty([4] + list(d.shape))
-        ot = np.empty_like(os)
-        self.check_func_serial(4, ndimage.maximum_filter, (d, 3), os)
-        self.check_func_thread(4, ndimage.maximum_filter, (d, 3), ot)
-        assert_array_equal(os, ot)
-        self.check_func_serial(4, ndimage.minimum_filter, (d, 3), os)
-        self.check_func_thread(4, ndimage.minimum_filter, (d, 3), ot)
-        assert_array_equal(os, ot)
-
-
-def test_minmaximum_filter1d():
-    # Regression gh-3898
-    in_ = np.arange(10)
-    out = ndimage.minimum_filter1d(in_, 1)
-    assert_equal(in_, out)
-    out = ndimage.maximum_filter1d(in_, 1)
-    assert_equal(in_, out)
-    # Test reflect
-    out = ndimage.minimum_filter1d(in_, 5, mode='reflect')
-    assert_equal([0, 0, 0, 1, 2, 3, 4, 5, 6, 7], out)
-    out = ndimage.maximum_filter1d(in_, 5, mode='reflect')
-    assert_equal([2, 3, 4, 5, 6, 7, 8, 9, 9, 9], out)
-    # Test constant
-    out = ndimage.minimum_filter1d(in_, 5, mode='constant', cval=-1)
-    assert_equal([-1, -1, 0, 1, 2, 3, 4, 5, -1, -1], out)
-    out = ndimage.maximum_filter1d(in_, 5, mode='constant', cval=10)
-    assert_equal([10, 10, 4, 5, 6, 7, 8, 9, 10, 10], out)
-    # Test nearest
-    out = ndimage.minimum_filter1d(in_, 5, mode='nearest')
-    assert_equal([0, 0, 0, 1, 2, 3, 4, 5, 6, 7], out)
-    out = ndimage.maximum_filter1d(in_, 5, mode='nearest')
-    assert_equal([2, 3, 4, 5, 6, 7, 8, 9, 9, 9], out)
-    # Test wrap
-    out = ndimage.minimum_filter1d(in_, 5, mode='wrap')
-    assert_equal([0, 0, 0, 1, 2, 3, 4, 5, 0, 0], out)
-    out = ndimage.maximum_filter1d(in_, 5, mode='wrap')
-    assert_equal([9, 9, 4, 5, 6, 7, 8, 9, 9, 9], out)
-
-
-def test_uniform_filter1d_roundoff_errors():
-    # gh-6930
-    in_ = np.repeat([0, 1, 0], [9, 9, 9])
-    for filter_size in range(3, 10):
-        out = ndimage.uniform_filter1d(in_, filter_size)
-        assert_equal(out.sum(), 10 - filter_size)
-
-
-def test_footprint_all_zeros():
-    # regression test for gh-6876: footprint of all zeros segfaults
-    arr = np.random.randint(0, 100, (100, 100))
-    kernel = np.zeros((3, 3), bool)
-    with assert_raises(ValueError):
-        ndimage.maximum_filter(arr, footprint=kernel)
-
-
-def test_gaussian_filter():
-    # Test gaussian filter with np.float16
-    # gh-8207
-    data = np.array([1], dtype=np.float16)
-    sigma = 1.0
-    with assert_raises(RuntimeError):
-        ndimage.gaussian_filter(data, sigma)
-
-
-def test_rank_filter_noninteger_rank():
-    # regression test for issue 9388: ValueError for
-    # non integer rank when performing rank_filter
-    arr = np.random.random((10, 20, 30))
-    assert_raises(TypeError, ndimage.rank_filter, arr, 0.5,
-                  footprint=np.ones((1, 1, 10), dtype=bool))
-
-
-def test_size_footprint_both_set():
-    # test for input validation, expect user warning when
-    # size and footprint is set
-    with suppress_warnings() as sup:
-        sup.filter(UserWarning,
-                   "ignoring size because footprint is set")
-        arr = np.random.random((10, 20, 30))
-        ndimage.rank_filter(arr, 5, size=2, footprint=np.ones((1, 1, 10), dtype=bool))
-
-
-def test_byte_order_median():
-    """Regression test for #413: median_filter does not handle bytes orders."""
-    a = np.arange(9, dtype=' 3 raise NotImplementedError
-        x = np.ones((4, 6, 8, 10), dtype=np.complex128)
-        with pytest.raises(NotImplementedError):
-            ndimage.fourier_ellipsoid(x, 3)
-
-    def test_fourier_ellipsoid_1d_complex(self):
-        # expected result of 1d ellipsoid is the same as for fourier_uniform
-        for shape in [(32, ), (31, )]:
-            for type_, dec in zip([np.complex64, np.complex128], [5, 14]):
-                x = np.ones(shape, dtype=type_)
-                a = ndimage.fourier_ellipsoid(x, 5, -1, 0)
-                b = ndimage.fourier_uniform(x, 5, -1, 0)
-                assert_array_almost_equal(a, b, decimal=dec)
-
-    @pytest.mark.parametrize('shape', [(0, ), (0, 10), (10, 0)])
-    @pytest.mark.parametrize('dtype', [np.float32, np.float64,
-                                       np.complex64, np.complex128])
-    @pytest.mark.parametrize('test_func',
-                             [ndimage.fourier_ellipsoid,
-                              ndimage.fourier_gaussian,
-                              ndimage.fourier_uniform])
-    def test_fourier_zero_length_dims(self, shape, dtype, test_func):
-        a = np.ones(shape, dtype)
-        b = test_func(a, 3)
-        assert_equal(a, b)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_interpolation.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_interpolation.py
deleted file mode 100644
index c92cfb558a0fafac3b881540afaf6b05165f5dc5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_interpolation.py
+++ /dev/null
@@ -1,1327 +0,0 @@
-import sys
-
-import numpy as np
-from numpy.testing import (assert_, assert_equal, assert_array_equal,
-                           assert_array_almost_equal, assert_allclose,
-                           suppress_warnings)
-import pytest
-from pytest import raises as assert_raises
-import scipy.ndimage as ndimage
-
-from . import types
-
-eps = 1e-12
-
-ndimage_to_numpy_mode = {
-    'mirror': 'reflect',
-    'reflect': 'symmetric',
-    'grid-mirror': 'symmetric',
-    'grid-wrap': 'wrap',
-    'nearest': 'edge',
-    'grid-constant': 'constant',
-}
-
-
-class TestNdimageInterpolation:
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [1.5, 2.5, 3.5, 4, 4, 4, 4]),
-         ('wrap', [1.5, 2.5, 3.5, 1.5, 2.5, 3.5, 1.5]),
-         ('grid-wrap', [1.5, 2.5, 3.5, 2.5, 1.5, 2.5, 3.5]),
-         ('mirror', [1.5, 2.5, 3.5, 3.5, 2.5, 1.5, 1.5]),
-         ('reflect', [1.5, 2.5, 3.5, 4, 3.5, 2.5, 1.5]),
-         ('constant', [1.5, 2.5, 3.5, -1, -1, -1, -1]),
-         ('grid-constant', [1.5, 2.5, 3.5, 1.5, -1, -1, -1])]
-    )
-    def test_boundaries(self, mode, expected_value):
-        def shift(x):
-            return (x[0] + 0.5,)
-
-        data = np.array([1, 2, 3, 4.])
-        assert_array_equal(
-            expected_value,
-            ndimage.geometric_transform(data, shift, cval=-1, mode=mode,
-                                        output_shape=(7,), order=1))
-
-    @pytest.mark.parametrize(
-        'mode, expected_value',
-        [('nearest', [1, 1, 2, 3]),
-         ('wrap', [3, 1, 2, 3]),
-         ('grid-wrap', [4, 1, 2, 3]),
-         ('mirror', [2, 1, 2, 3]),
-         ('reflect', [1, 1, 2, 3]),
-         ('constant', [-1, 1, 2, 3]),
-         ('grid-constant', [-1, 1, 2, 3])]
-    )
-    def test_boundaries2(self, mode, expected_value):
-        def shift(x):
-            return (x[0] - 0.9,)
-
-        data = np.array([1, 2, 3, 4])
-        assert_array_equal(
-            expected_value,
-            ndimage.geometric_transform(data, shift, cval=-1, mode=mode,
-                                        output_shape=(4,)))
-
-    @pytest.mark.parametrize('mode', ['mirror', 'reflect', 'grid-mirror',
-                                      'grid-wrap', 'grid-constant',
-                                      'nearest'])
-    @pytest.mark.parametrize('order', range(6))
-    def test_boundary_spline_accuracy(self, mode, order):
-        """Tests based on examples from gh-2640"""
-        data = np.arange(-6, 7, dtype=float)
-        x = np.linspace(-8, 15, num=1000)
-        y = ndimage.map_coordinates(data, [x], order=order, mode=mode)
-
-        # compute expected value using explicit padding via np.pad
-        npad = 32
-        pad_mode = ndimage_to_numpy_mode.get(mode)
-        padded = np.pad(data, npad, mode=pad_mode)
-        expected = ndimage.map_coordinates(padded, [npad + x], order=order,
-                                           mode=mode)
-
-        atol = 1e-5 if mode == 'grid-constant' else 1e-12
-        assert_allclose(y, expected, rtol=1e-7, atol=atol)
-
-    @pytest.mark.parametrize('order', range(2, 6))
-    @pytest.mark.parametrize('dtype', types)
-    def test_spline01(self, dtype, order):
-        data = np.ones([], dtype)
-        out = ndimage.spline_filter(data, order=order)
-        assert_array_almost_equal(out, 1)
-
-    @pytest.mark.parametrize('order', range(2, 6))
-    @pytest.mark.parametrize('dtype', types)
-    def test_spline02(self, dtype, order):
-        data = np.array([1], dtype)
-        out = ndimage.spline_filter(data, order=order)
-        assert_array_almost_equal(out, [1])
-
-    @pytest.mark.parametrize('order', range(2, 6))
-    @pytest.mark.parametrize('dtype', types)
-    def test_spline03(self, dtype, order):
-        data = np.ones([], dtype)
-        out = ndimage.spline_filter(data, order, output=dtype)
-        assert_array_almost_equal(out, 1)
-
-    @pytest.mark.parametrize('order', range(2, 6))
-    @pytest.mark.parametrize('dtype', types)
-    def test_spline04(self, dtype, order):
-        data = np.ones([4], dtype)
-        out = ndimage.spline_filter(data, order)
-        assert_array_almost_equal(out, [1, 1, 1, 1])
-
-    @pytest.mark.parametrize('order', range(2, 6))
-    @pytest.mark.parametrize('dtype', types)
-    def test_spline05(self, dtype, order):
-        data = np.ones([4, 4], dtype)
-        out = ndimage.spline_filter(data, order=order)
-        assert_array_almost_equal(out, [[1, 1, 1, 1],
-                                        [1, 1, 1, 1],
-                                        [1, 1, 1, 1],
-                                        [1, 1, 1, 1]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform01(self, order):
-        data = np.array([1])
-
-        def mapping(x):
-            return x
-
-        out = ndimage.geometric_transform(data, mapping, data.shape,
-                                          order=order)
-        assert_array_almost_equal(out, [1])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform02(self, order):
-        data = np.ones([4])
-
-        def mapping(x):
-            return x
-
-        out = ndimage.geometric_transform(data, mapping, data.shape,
-                                          order=order)
-        assert_array_almost_equal(out, [1, 1, 1, 1])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform03(self, order):
-        data = np.ones([4])
-
-        def mapping(x):
-            return (x[0] - 1,)
-
-        out = ndimage.geometric_transform(data, mapping, data.shape,
-                                          order=order)
-        assert_array_almost_equal(out, [0, 1, 1, 1])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform04(self, order):
-        data = np.array([4, 1, 3, 2])
-
-        def mapping(x):
-            return (x[0] - 1,)
-
-        out = ndimage.geometric_transform(data, mapping, data.shape,
-                                          order=order)
-        assert_array_almost_equal(out, [0, 4, 1, 3])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    @pytest.mark.parametrize('dtype', [np.float64, np.complex128])
-    def test_geometric_transform05(self, order, dtype):
-        data = np.array([[1, 1, 1, 1],
-                         [1, 1, 1, 1],
-                         [1, 1, 1, 1]], dtype=dtype)
-        expected = np.array([[0, 1, 1, 1],
-                             [0, 1, 1, 1],
-                             [0, 1, 1, 1]], dtype=dtype)
-        if data.dtype.kind == 'c':
-            data -= 1j * data
-            expected -= 1j * expected
-
-        def mapping(x):
-            return (x[0], x[1] - 1)
-
-        out = ndimage.geometric_transform(data, mapping, data.shape,
-                                          order=order)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform06(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-
-        def mapping(x):
-            return (x[0], x[1] - 1)
-
-        out = ndimage.geometric_transform(data, mapping, data.shape,
-                                          order=order)
-        assert_array_almost_equal(out, [[0, 4, 1, 3],
-                                        [0, 7, 6, 8],
-                                        [0, 3, 5, 3]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform07(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-
-        def mapping(x):
-            return (x[0] - 1, x[1])
-
-        out = ndimage.geometric_transform(data, mapping, data.shape,
-                                          order=order)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [4, 1, 3, 2],
-                                        [7, 6, 8, 5]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform08(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-
-        def mapping(x):
-            return (x[0] - 1, x[1] - 1)
-
-        out = ndimage.geometric_transform(data, mapping, data.shape,
-                                          order=order)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [0, 4, 1, 3],
-                                        [0, 7, 6, 8]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform10(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-
-        def mapping(x):
-            return (x[0] - 1, x[1] - 1)
-
-        if (order > 1):
-            filtered = ndimage.spline_filter(data, order=order)
-        else:
-            filtered = data
-        out = ndimage.geometric_transform(filtered, mapping, data.shape,
-                                          order=order, prefilter=False)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [0, 4, 1, 3],
-                                        [0, 7, 6, 8]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform13(self, order):
-        data = np.ones([2], np.float64)
-
-        def mapping(x):
-            return (x[0] // 2,)
-
-        out = ndimage.geometric_transform(data, mapping, [4], order=order)
-        assert_array_almost_equal(out, [1, 1, 1, 1])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform14(self, order):
-        data = [1, 5, 2, 6, 3, 7, 4, 4]
-
-        def mapping(x):
-            return (2 * x[0],)
-
-        out = ndimage.geometric_transform(data, mapping, [4], order=order)
-        assert_array_almost_equal(out, [1, 2, 3, 4])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform15(self, order):
-        data = [1, 2, 3, 4]
-
-        def mapping(x):
-            return (x[0] / 2,)
-
-        out = ndimage.geometric_transform(data, mapping, [8], order=order)
-        assert_array_almost_equal(out[::2], [1, 2, 3, 4])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform16(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9.0, 10, 11, 12]]
-
-        def mapping(x):
-            return (x[0], x[1] * 2)
-
-        out = ndimage.geometric_transform(data, mapping, (3, 2),
-                                          order=order)
-        assert_array_almost_equal(out, [[1, 3], [5, 7], [9, 11]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform17(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-
-        def mapping(x):
-            return (x[0] * 2, x[1])
-
-        out = ndimage.geometric_transform(data, mapping, (1, 4),
-                                          order=order)
-        assert_array_almost_equal(out, [[1, 2, 3, 4]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform18(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-
-        def mapping(x):
-            return (x[0] * 2, x[1] * 2)
-
-        out = ndimage.geometric_transform(data, mapping, (1, 2),
-                                          order=order)
-        assert_array_almost_equal(out, [[1, 3]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform19(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-
-        def mapping(x):
-            return (x[0], x[1] / 2)
-
-        out = ndimage.geometric_transform(data, mapping, (3, 8),
-                                          order=order)
-        assert_array_almost_equal(out[..., ::2], data)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform20(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-
-        def mapping(x):
-            return (x[0] / 2, x[1])
-
-        out = ndimage.geometric_transform(data, mapping, (6, 4),
-                                          order=order)
-        assert_array_almost_equal(out[::2, ...], data)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform21(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-
-        def mapping(x):
-            return (x[0] / 2, x[1] / 2)
-
-        out = ndimage.geometric_transform(data, mapping, (6, 8),
-                                          order=order)
-        assert_array_almost_equal(out[::2, ::2], data)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform22(self, order):
-        data = np.array([[1, 2, 3, 4],
-                         [5, 6, 7, 8],
-                         [9, 10, 11, 12]], np.float64)
-
-        def mapping1(x):
-            return (x[0] / 2, x[1] / 2)
-
-        def mapping2(x):
-            return (x[0] * 2, x[1] * 2)
-
-        out = ndimage.geometric_transform(data, mapping1,
-                                          (6, 8), order=order)
-        out = ndimage.geometric_transform(out, mapping2,
-                                          (3, 4), order=order)
-        assert_array_almost_equal(out, data)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform23(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-
-        def mapping(x):
-            return (1, x[0] * 2)
-
-        out = ndimage.geometric_transform(data, mapping, (2,), order=order)
-        out = out.astype(np.int32)
-        assert_array_almost_equal(out, [5, 7])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_geometric_transform24(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-
-        def mapping(x, a, b):
-            return (a, x[0] * b)
-
-        out = ndimage.geometric_transform(
-            data, mapping, (2,), order=order, extra_arguments=(1,),
-            extra_keywords={'b': 2})
-        assert_array_almost_equal(out, [5, 7])
-
-    def test_geometric_transform_grid_constant_order1(self):
-        # verify interpolation outside the original bounds
-        x = np.array([[1, 2, 3],
-                      [4, 5, 6]], dtype=float)
-
-        def mapping(x):
-            return (x[0] - 0.5), (x[1] - 0.5)
-
-        expected_result = np.array([[0.25, 0.75, 1.25],
-                                    [1.25, 3.00, 4.00]])
-        assert_array_almost_equal(
-            ndimage.geometric_transform(x, mapping, mode='grid-constant',
-                                        order=1),
-            expected_result,
-        )
-
-    @pytest.mark.parametrize('mode', ['grid-constant', 'grid-wrap', 'nearest',
-                                      'mirror', 'reflect'])
-    @pytest.mark.parametrize('order', range(6))
-    def test_geometric_transform_vs_padded(self, order, mode):
-        x = np.arange(144, dtype=float).reshape(12, 12)
-
-        def mapping(x):
-            return (x[0] - 0.4), (x[1] + 2.3)
-
-        # Manually pad and then extract center after the transform to get the
-        # expected result.
-        npad = 24
-        pad_mode = ndimage_to_numpy_mode.get(mode)
-        xp = np.pad(x, npad, mode=pad_mode)
-        center_slice = tuple([slice(npad, -npad)] * x.ndim)
-        expected_result = ndimage.geometric_transform(
-            xp, mapping, mode=mode, order=order)[center_slice]
-
-        assert_allclose(
-            ndimage.geometric_transform(x, mapping, mode=mode,
-                                        order=order),
-            expected_result,
-            rtol=1e-7,
-        )
-
-    def test_geometric_transform_endianness_with_output_parameter(self):
-        # geometric transform given output ndarray or dtype with
-        # non-native endianness. see issue #4127
-        data = np.array([1])
-
-        def mapping(x):
-            return x
-
-        for out in [data.dtype, data.dtype.newbyteorder(),
-                    np.empty_like(data),
-                    np.empty_like(data).astype(data.dtype.newbyteorder())]:
-            returned = ndimage.geometric_transform(data, mapping, data.shape,
-                                                   output=out)
-            result = out if returned is None else returned
-            assert_array_almost_equal(result, [1])
-
-    def test_geometric_transform_with_string_output(self):
-        data = np.array([1])
-
-        def mapping(x):
-            return x
-
-        out = ndimage.geometric_transform(data, mapping, output='f')
-        assert_(out.dtype is np.dtype('f'))
-        assert_array_almost_equal(out, [1])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    @pytest.mark.parametrize('dtype', [np.float64, np.complex128])
-    def test_map_coordinates01(self, order, dtype):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-        expected = np.array([[0, 0, 0, 0],
-                             [0, 4, 1, 3],
-                             [0, 7, 6, 8]])
-        if data.dtype.kind == 'c':
-            data = data - 1j * data
-            expected = expected - 1j * expected
-
-        idx = np.indices(data.shape)
-        idx -= 1
-
-        out = ndimage.map_coordinates(data, idx, order=order)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_map_coordinates02(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-        idx = np.indices(data.shape, np.float64)
-        idx -= 0.5
-
-        out1 = ndimage.shift(data, 0.5, order=order)
-        out2 = ndimage.map_coordinates(data, idx, order=order)
-        assert_array_almost_equal(out1, out2)
-
-    def test_map_coordinates03(self):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]], order='F')
-        idx = np.indices(data.shape) - 1
-        out = ndimage.map_coordinates(data, idx)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [0, 4, 1, 3],
-                                        [0, 7, 6, 8]])
-        assert_array_almost_equal(out, ndimage.shift(data, (1, 1)))
-        idx = np.indices(data[::2].shape) - 1
-        out = ndimage.map_coordinates(data[::2], idx)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [0, 4, 1, 3]])
-        assert_array_almost_equal(out, ndimage.shift(data[::2], (1, 1)))
-        idx = np.indices(data[:, ::2].shape) - 1
-        out = ndimage.map_coordinates(data[:, ::2], idx)
-        assert_array_almost_equal(out, [[0, 0], [0, 4], [0, 7]])
-        assert_array_almost_equal(out, ndimage.shift(data[:, ::2], (1, 1)))
-
-    def test_map_coordinates_endianness_with_output_parameter(self):
-        # output parameter given as array or dtype with either endianness
-        # see issue #4127
-        data = np.array([[1, 2], [7, 6]])
-        expected = np.array([[0, 0], [0, 1]])
-        idx = np.indices(data.shape)
-        idx -= 1
-        for out in [
-            data.dtype,
-            data.dtype.newbyteorder(),
-            np.empty_like(expected),
-            np.empty_like(expected).astype(expected.dtype.newbyteorder())
-        ]:
-            returned = ndimage.map_coordinates(data, idx, output=out)
-            result = out if returned is None else returned
-            assert_array_almost_equal(result, expected)
-
-    def test_map_coordinates_with_string_output(self):
-        data = np.array([[1]])
-        idx = np.indices(data.shape)
-        out = ndimage.map_coordinates(data, idx, output='f')
-        assert_(out.dtype is np.dtype('f'))
-        assert_array_almost_equal(out, [[1]])
-
-    @pytest.mark.skipif('win32' in sys.platform or np.intp(0).itemsize < 8,
-                        reason='do not run on 32 bit or windows '
-                               '(no sparse memory)')
-    def test_map_coordinates_large_data(self):
-        # check crash on large data
-        try:
-            n = 30000
-            a = np.empty(n**2, dtype=np.float32).reshape(n, n)
-            # fill the part we might read
-            a[n - 3:, n - 3:] = 0
-            ndimage.map_coordinates(a, [[n - 1.5], [n - 1.5]], order=1)
-        except MemoryError as e:
-            raise pytest.skip('Not enough memory available') from e
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform01(self, order):
-        data = np.array([1])
-        out = ndimage.affine_transform(data, [[1]], order=order)
-        assert_array_almost_equal(out, [1])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform02(self, order):
-        data = np.ones([4])
-        out = ndimage.affine_transform(data, [[1]], order=order)
-        assert_array_almost_equal(out, [1, 1, 1, 1])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform03(self, order):
-        data = np.ones([4])
-        out = ndimage.affine_transform(data, [[1]], -1, order=order)
-        assert_array_almost_equal(out, [0, 1, 1, 1])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform04(self, order):
-        data = np.array([4, 1, 3, 2])
-        out = ndimage.affine_transform(data, [[1]], -1, order=order)
-        assert_array_almost_equal(out, [0, 4, 1, 3])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    @pytest.mark.parametrize('dtype', [np.float64, np.complex128])
-    def test_affine_transform05(self, order, dtype):
-        data = np.array([[1, 1, 1, 1],
-                         [1, 1, 1, 1],
-                         [1, 1, 1, 1]], dtype=dtype)
-        expected = np.array([[0, 1, 1, 1],
-                             [0, 1, 1, 1],
-                             [0, 1, 1, 1]], dtype=dtype)
-        if data.dtype.kind == 'c':
-            data -= 1j * data
-            expected -= 1j * expected
-        out = ndimage.affine_transform(data, [[1, 0], [0, 1]],
-                                       [0, -1], order=order)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform06(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-        out = ndimage.affine_transform(data, [[1, 0], [0, 1]],
-                                       [0, -1], order=order)
-        assert_array_almost_equal(out, [[0, 4, 1, 3],
-                                        [0, 7, 6, 8],
-                                        [0, 3, 5, 3]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform07(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-        out = ndimage.affine_transform(data, [[1, 0], [0, 1]],
-                                       [-1, 0], order=order)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [4, 1, 3, 2],
-                                        [7, 6, 8, 5]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform08(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-        out = ndimage.affine_transform(data, [[1, 0], [0, 1]],
-                                       [-1, -1], order=order)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [0, 4, 1, 3],
-                                        [0, 7, 6, 8]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform09(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-        if (order > 1):
-            filtered = ndimage.spline_filter(data, order=order)
-        else:
-            filtered = data
-        out = ndimage.affine_transform(filtered, [[1, 0], [0, 1]],
-                                       [-1, -1], order=order,
-                                       prefilter=False)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [0, 4, 1, 3],
-                                        [0, 7, 6, 8]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform10(self, order):
-        data = np.ones([2], np.float64)
-        out = ndimage.affine_transform(data, [[0.5]], output_shape=(4,),
-                                       order=order)
-        assert_array_almost_equal(out, [1, 1, 1, 0])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform11(self, order):
-        data = [1, 5, 2, 6, 3, 7, 4, 4]
-        out = ndimage.affine_transform(data, [[2]], 0, (4,), order=order)
-        assert_array_almost_equal(out, [1, 2, 3, 4])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform12(self, order):
-        data = [1, 2, 3, 4]
-        out = ndimage.affine_transform(data, [[0.5]], 0, (8,), order=order)
-        assert_array_almost_equal(out[::2], [1, 2, 3, 4])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform13(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9.0, 10, 11, 12]]
-        out = ndimage.affine_transform(data, [[1, 0], [0, 2]], 0, (3, 2),
-                                       order=order)
-        assert_array_almost_equal(out, [[1, 3], [5, 7], [9, 11]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform14(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-        out = ndimage.affine_transform(data, [[2, 0], [0, 1]], 0, (1, 4),
-                                       order=order)
-        assert_array_almost_equal(out, [[1, 2, 3, 4]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform15(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-        out = ndimage.affine_transform(data, [[2, 0], [0, 2]], 0, (1, 2),
-                                       order=order)
-        assert_array_almost_equal(out, [[1, 3]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform16(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-        out = ndimage.affine_transform(data, [[1, 0.0], [0, 0.5]], 0,
-                                       (3, 8), order=order)
-        assert_array_almost_equal(out[..., ::2], data)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform17(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-        out = ndimage.affine_transform(data, [[0.5, 0], [0, 1]], 0,
-                                       (6, 4), order=order)
-        assert_array_almost_equal(out[::2, ...], data)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform18(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-        out = ndimage.affine_transform(data, [[0.5, 0], [0, 0.5]], 0,
-                                       (6, 8), order=order)
-        assert_array_almost_equal(out[::2, ::2], data)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform19(self, order):
-        data = np.array([[1, 2, 3, 4],
-                         [5, 6, 7, 8],
-                         [9, 10, 11, 12]], np.float64)
-        out = ndimage.affine_transform(data, [[0.5, 0], [0, 0.5]], 0,
-                                       (6, 8), order=order)
-        out = ndimage.affine_transform(out, [[2.0, 0], [0, 2.0]], 0,
-                                       (3, 4), order=order)
-        assert_array_almost_equal(out, data)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform20(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-        out = ndimage.affine_transform(data, [[0], [2]], 0, (2,),
-                                       order=order)
-        assert_array_almost_equal(out, [1, 3])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform21(self, order):
-        data = [[1, 2, 3, 4],
-                [5, 6, 7, 8],
-                [9, 10, 11, 12]]
-        out = ndimage.affine_transform(data, [[2], [0]], 0, (2,),
-                                       order=order)
-        assert_array_almost_equal(out, [1, 9])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform22(self, order):
-        # shift and offset interaction; see issue #1547
-        data = np.array([4, 1, 3, 2])
-        out = ndimage.affine_transform(data, [[2]], [-1], (3,),
-                                       order=order)
-        assert_array_almost_equal(out, [0, 1, 2])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform23(self, order):
-        # shift and offset interaction; see issue #1547
-        data = np.array([4, 1, 3, 2])
-        out = ndimage.affine_transform(data, [[0.5]], [-1], (8,),
-                                       order=order)
-        assert_array_almost_equal(out[::2], [0, 4, 1, 3])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform24(self, order):
-        # consistency between diagonal and non-diagonal case; see issue #1547
-        data = np.array([4, 1, 3, 2])
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning,
-                       'The behavior of affine_transform with a 1-D array .* '
-                       'has changed')
-            out1 = ndimage.affine_transform(data, [2], -1, order=order)
-        out2 = ndimage.affine_transform(data, [[2]], -1, order=order)
-        assert_array_almost_equal(out1, out2)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform25(self, order):
-        # consistency between diagonal and non-diagonal case; see issue #1547
-        data = np.array([4, 1, 3, 2])
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning,
-                       'The behavior of affine_transform with a 1-D array .* '
-                       'has changed')
-            out1 = ndimage.affine_transform(data, [0.5], -1, order=order)
-        out2 = ndimage.affine_transform(data, [[0.5]], -1, order=order)
-        assert_array_almost_equal(out1, out2)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform26(self, order):
-        # test homogeneous coordinates
-        data = np.array([[4, 1, 3, 2],
-                            [7, 6, 8, 5],
-                            [3, 5, 3, 6]])
-        if (order > 1):
-            filtered = ndimage.spline_filter(data, order=order)
-        else:
-            filtered = data
-        tform_original = np.eye(2)
-        offset_original = -np.ones((2, 1))
-        tform_h1 = np.hstack((tform_original, offset_original))
-        tform_h2 = np.vstack((tform_h1, [[0, 0, 1]]))
-        out1 = ndimage.affine_transform(filtered, tform_original,
-                                        offset_original.ravel(),
-                                        order=order, prefilter=False)
-        out2 = ndimage.affine_transform(filtered, tform_h1, order=order,
-                                        prefilter=False)
-        out3 = ndimage.affine_transform(filtered, tform_h2, order=order,
-                                        prefilter=False)
-        for out in [out1, out2, out3]:
-            assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                            [0, 4, 1, 3],
-                                            [0, 7, 6, 8]])
-
-    def test_affine_transform27(self):
-        # test valid homogeneous transformation matrix
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-        tform_h1 = np.hstack((np.eye(2), -np.ones((2, 1))))
-        tform_h2 = np.vstack((tform_h1, [[5, 2, 1]]))
-        assert_raises(ValueError, ndimage.affine_transform, data, tform_h2)
-
-    def test_affine_transform_1d_endianness_with_output_parameter(self):
-        # 1d affine transform given output ndarray or dtype with
-        # either endianness. see issue #7388
-        data = np.ones((2, 2))
-        for out in [np.empty_like(data),
-                    np.empty_like(data).astype(data.dtype.newbyteorder()),
-                    data.dtype, data.dtype.newbyteorder()]:
-            with suppress_warnings() as sup:
-                sup.filter(UserWarning,
-                           'The behavior of affine_transform with a 1-D array '
-                           '.* has changed')
-                returned = ndimage.affine_transform(data, [1, 1], output=out)
-            result = out if returned is None else returned
-            assert_array_almost_equal(result, [[1, 1], [1, 1]])
-
-    def test_affine_transform_multi_d_endianness_with_output_parameter(self):
-        # affine transform given output ndarray or dtype with either endianness
-        # see issue #4127
-        data = np.array([1])
-        for out in [data.dtype, data.dtype.newbyteorder(),
-                    np.empty_like(data),
-                    np.empty_like(data).astype(data.dtype.newbyteorder())]:
-            returned = ndimage.affine_transform(data, [[1]], output=out)
-            result = out if returned is None else returned
-            assert_array_almost_equal(result, [1])
-
-    def test_affine_transform_output_shape(self):
-        # don't require output_shape when out of a different size is given
-        data = np.arange(8, dtype=np.float64)
-        out = np.ones((16,))
-
-        ndimage.affine_transform(data, [[1]], output=out)
-        assert_array_almost_equal(out[:8], data)
-
-        # mismatched output shape raises an error
-        with pytest.raises(RuntimeError):
-            ndimage.affine_transform(
-                data, [[1]], output=out, output_shape=(12,))
-
-    def test_affine_transform_with_string_output(self):
-        data = np.array([1])
-        out = ndimage.affine_transform(data, [[1]], output='f')
-        assert_(out.dtype is np.dtype('f'))
-        assert_array_almost_equal(out, [1])
-
-    @pytest.mark.parametrize('shift',
-                             [(1, 0), (0, 1), (-1, 1), (3, -5), (2, 7)])
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform_shift_via_grid_wrap(self, shift, order):
-        # For mode 'grid-wrap', integer shifts should match np.roll
-        x = np.array([[0, 1],
-                      [2, 3]])
-        affine = np.zeros((2, 3))
-        affine[:2, :2] = np.eye(2)
-        affine[:, 2] = shift
-        assert_array_almost_equal(
-            ndimage.affine_transform(x, affine, mode='grid-wrap', order=order),
-            np.roll(x, shift, axis=(0, 1)),
-        )
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_affine_transform_shift_reflect(self, order):
-        # shift by x.shape results in reflection
-        x = np.array([[0, 1, 2],
-                      [3, 4, 5]])
-        affine = np.zeros((2, 3))
-        affine[:2, :2] = np.eye(2)
-        affine[:, 2] = x.shape
-        assert_array_almost_equal(
-            ndimage.affine_transform(x, affine, mode='reflect', order=order),
-            x[::-1, ::-1],
-        )
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift01(self, order):
-        data = np.array([1])
-        out = ndimage.shift(data, [1], order=order)
-        assert_array_almost_equal(out, [0])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift02(self, order):
-        data = np.ones([4])
-        out = ndimage.shift(data, [1], order=order)
-        assert_array_almost_equal(out, [0, 1, 1, 1])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift03(self, order):
-        data = np.ones([4])
-        out = ndimage.shift(data, -1, order=order)
-        assert_array_almost_equal(out, [1, 1, 1, 0])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift04(self, order):
-        data = np.array([4, 1, 3, 2])
-        out = ndimage.shift(data, 1, order=order)
-        assert_array_almost_equal(out, [0, 4, 1, 3])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    @pytest.mark.parametrize('dtype', [np.float64, np.complex128])
-    def test_shift05(self, order, dtype):
-        data = np.array([[1, 1, 1, 1],
-                         [1, 1, 1, 1],
-                         [1, 1, 1, 1]], dtype=dtype)
-        expected = np.array([[0, 1, 1, 1],
-                             [0, 1, 1, 1],
-                             [0, 1, 1, 1]], dtype=dtype)
-        if data.dtype.kind == 'c':
-            data -= 1j * data
-            expected -= 1j * expected
-        out = ndimage.shift(data, [0, 1], order=order)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    @pytest.mark.parametrize('mode', ['constant', 'grid-constant'])
-    @pytest.mark.parametrize('dtype', [np.float64, np.complex128])
-    def test_shift_with_nonzero_cval(self, order, mode, dtype):
-        data = np.array([[1, 1, 1, 1],
-                         [1, 1, 1, 1],
-                         [1, 1, 1, 1]], dtype=dtype)
-
-        expected = np.array([[0, 1, 1, 1],
-                             [0, 1, 1, 1],
-                             [0, 1, 1, 1]], dtype=dtype)
-
-        if data.dtype.kind == 'c':
-            data -= 1j * data
-            expected -= 1j * expected
-        cval = 5.0
-        expected[:, 0] = cval  # specific to shift of [0, 1] used below
-        out = ndimage.shift(data, [0, 1], order=order, mode=mode, cval=cval)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift06(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-        out = ndimage.shift(data, [0, 1], order=order)
-        assert_array_almost_equal(out, [[0, 4, 1, 3],
-                                        [0, 7, 6, 8],
-                                        [0, 3, 5, 3]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift07(self, order):
-        data = np.array([[4, 1, 3, 2],
-                            [7, 6, 8, 5],
-                            [3, 5, 3, 6]])
-        out = ndimage.shift(data, [1, 0], order=order)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [4, 1, 3, 2],
-                                        [7, 6, 8, 5]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift08(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-        out = ndimage.shift(data, [1, 1], order=order)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [0, 4, 1, 3],
-                                        [0, 7, 6, 8]])
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift09(self, order):
-        data = np.array([[4, 1, 3, 2],
-                         [7, 6, 8, 5],
-                         [3, 5, 3, 6]])
-        if (order > 1):
-            filtered = ndimage.spline_filter(data, order=order)
-        else:
-            filtered = data
-        out = ndimage.shift(filtered, [1, 1], order=order, prefilter=False)
-        assert_array_almost_equal(out, [[0, 0, 0, 0],
-                                        [0, 4, 1, 3],
-                                        [0, 7, 6, 8]])
-
-    @pytest.mark.parametrize('shift',
-                             [(1, 0), (0, 1), (-1, 1), (3, -5), (2, 7)])
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift_grid_wrap(self, shift, order):
-        # For mode 'grid-wrap', integer shifts should match np.roll
-        x = np.array([[0, 1],
-                      [2, 3]])
-        assert_array_almost_equal(
-            ndimage.shift(x, shift, mode='grid-wrap', order=order),
-            np.roll(x, shift, axis=(0, 1)),
-        )
-
-    @pytest.mark.parametrize('shift',
-                             [(1, 0), (0, 1), (-1, 1), (3, -5), (2, 7)])
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift_grid_constant1(self, shift, order):
-        # For integer shifts, 'constant' and 'grid-constant' should be equal
-        x = np.arange(20).reshape((5, 4))
-        assert_array_almost_equal(
-            ndimage.shift(x, shift, mode='grid-constant', order=order),
-            ndimage.shift(x, shift, mode='constant', order=order),
-        )
-
-    def test_shift_grid_constant_order1(self):
-        x = np.array([[1, 2, 3],
-                      [4, 5, 6]], dtype=float)
-        expected_result = np.array([[0.25, 0.75, 1.25],
-                                    [1.25, 3.00, 4.00]])
-        assert_array_almost_equal(
-            ndimage.shift(x, (0.5, 0.5), mode='grid-constant', order=1),
-            expected_result,
-        )
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_shift_reflect(self, order):
-        # shift by x.shape results in reflection
-        x = np.array([[0, 1, 2],
-                      [3, 4, 5]])
-        assert_array_almost_equal(
-            ndimage.shift(x, x.shape, mode='reflect', order=order),
-            x[::-1, ::-1],
-        )
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    @pytest.mark.parametrize('prefilter', [False, True])
-    def test_shift_nearest_boundary(self, order, prefilter):
-        # verify that shifting at least order // 2 beyond the end of the array
-        # gives a value equal to the edge value.
-        x = np.arange(16)
-        kwargs = dict(mode='nearest', order=order, prefilter=prefilter)
-        assert_array_almost_equal(
-            ndimage.shift(x, order // 2 + 1, **kwargs)[0], x[0],
-        )
-        assert_array_almost_equal(
-            ndimage.shift(x, -order // 2 - 1, **kwargs)[-1], x[-1],
-        )
-
-    @pytest.mark.parametrize('mode', ['grid-constant', 'grid-wrap', 'nearest',
-                                      'mirror', 'reflect'])
-    @pytest.mark.parametrize('order', range(6))
-    def test_shift_vs_padded(self, order, mode):
-        x = np.arange(144, dtype=float).reshape(12, 12)
-        shift = (0.4, -2.3)
-
-        # manually pad and then extract center to get expected result
-        npad = 32
-        pad_mode = ndimage_to_numpy_mode.get(mode)
-        xp = np.pad(x, npad, mode=pad_mode)
-        center_slice = tuple([slice(npad, -npad)] * x.ndim)
-        expected_result = ndimage.shift(
-            xp, shift, mode=mode, order=order)[center_slice]
-
-        assert_allclose(
-            ndimage.shift(x, shift, mode=mode, order=order),
-            expected_result,
-            rtol=1e-7,
-        )
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_zoom1(self, order):
-        for z in [2, [2, 2]]:
-            arr = np.array(list(range(25))).reshape((5, 5)).astype(float)
-            arr = ndimage.zoom(arr, z, order=order)
-            assert_equal(arr.shape, (10, 10))
-            assert_(np.all(arr[-1, :] != 0))
-            assert_(np.all(arr[-1, :] >= (20 - eps)))
-            assert_(np.all(arr[0, :] <= (5 + eps)))
-            assert_(np.all(arr >= (0 - eps)))
-            assert_(np.all(arr <= (24 + eps)))
-
-    def test_zoom2(self):
-        arr = np.arange(12).reshape((3, 4))
-        out = ndimage.zoom(ndimage.zoom(arr, 2), 0.5)
-        assert_array_equal(out, arr)
-
-    def test_zoom3(self):
-        arr = np.array([[1, 2]])
-        out1 = ndimage.zoom(arr, (2, 1))
-        out2 = ndimage.zoom(arr, (1, 2))
-
-        assert_array_almost_equal(out1, np.array([[1, 2], [1, 2]]))
-        assert_array_almost_equal(out2, np.array([[1, 1, 2, 2]]))
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    @pytest.mark.parametrize('dtype', [np.float64, np.complex128])
-    def test_zoom_affine01(self, order, dtype):
-        data = np.asarray([[1, 2, 3, 4],
-                              [5, 6, 7, 8],
-                              [9, 10, 11, 12]], dtype=dtype)
-        if data.dtype.kind == 'c':
-            data -= 1j * data
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning,
-                       'The behavior of affine_transform with a 1-D array .* '
-                       'has changed')
-            out = ndimage.affine_transform(data, [0.5, 0.5], 0,
-                                           (6, 8), order=order)
-        assert_array_almost_equal(out[::2, ::2], data)
-
-    def test_zoom_infinity(self):
-        # Ticket #1419 regression test
-        dim = 8
-        ndimage.zoom(np.zeros((dim, dim)), 1. / dim, mode='nearest')
-
-    def test_zoom_zoomfactor_one(self):
-        # Ticket #1122 regression test
-        arr = np.zeros((1, 5, 5))
-        zoom = (1.0, 2.0, 2.0)
-
-        out = ndimage.zoom(arr, zoom, cval=7)
-        ref = np.zeros((1, 10, 10))
-        assert_array_almost_equal(out, ref)
-
-    def test_zoom_output_shape_roundoff(self):
-        arr = np.zeros((3, 11, 25))
-        zoom = (4.0 / 3, 15.0 / 11, 29.0 / 25)
-        out = ndimage.zoom(arr, zoom)
-        assert_array_equal(out.shape, (4, 15, 29))
-
-    @pytest.mark.parametrize('zoom', [(1, 1), (3, 5), (8, 2), (8, 8)])
-    @pytest.mark.parametrize('mode', ['nearest', 'constant', 'wrap', 'reflect',
-                                      'mirror', 'grid-wrap', 'grid-mirror',
-                                      'grid-constant'])
-    def test_zoom_by_int_order0(self, zoom, mode):
-        # order 0 zoom should be the same as replication via np.kron
-        # Note: This is not True for general x shapes when grid_mode is False,
-        #       but works here for all modes because the size ratio happens to
-        #       always be an integer when x.shape = (2, 2).
-        x = np.array([[0, 1],
-                         [2, 3]], dtype=float)
-        # x = np.arange(16, dtype=float).reshape(4, 4)
-        assert_array_almost_equal(
-            ndimage.zoom(x, zoom, order=0, mode=mode),
-            np.kron(x, np.ones(zoom))
-        )
-
-    @pytest.mark.parametrize('shape', [(2, 3), (4, 4)])
-    @pytest.mark.parametrize('zoom', [(1, 1), (3, 5), (8, 2), (8, 8)])
-    @pytest.mark.parametrize('mode', ['nearest', 'reflect', 'mirror',
-                                      'grid-wrap', 'grid-constant'])
-    def test_zoom_grid_by_int_order0(self, shape, zoom, mode):
-        # When grid_mode is True,  order 0 zoom should be the same as
-        # replication via np.kron. The only exceptions to this are the
-        # non-grid modes 'constant' and 'wrap'.
-        x = np.arange(np.prod(shape), dtype=float).reshape(shape)
-        assert_array_almost_equal(
-            ndimage.zoom(x, zoom, order=0, mode=mode, grid_mode=True),
-            np.kron(x, np.ones(zoom))
-        )
-
-    @pytest.mark.parametrize('mode', ['constant', 'wrap'])
-    def test_zoom_grid_mode_warnings(self, mode):
-        # Warn on use of non-grid modes when grid_mode is True
-        x = np.arange(9, dtype=float).reshape((3, 3))
-        with pytest.warns(UserWarning,
-                          match="It is recommended to use mode"):
-            ndimage.zoom(x, 2, mode=mode, grid_mode=True),
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_rotate01(self, order):
-        data = np.array([[0, 0, 0, 0],
-                         [0, 1, 1, 0],
-                         [0, 0, 0, 0]], dtype=np.float64)
-        out = ndimage.rotate(data, 0, order=order)
-        assert_array_almost_equal(out, data)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_rotate02(self, order):
-        data = np.array([[0, 0, 0, 0],
-                         [0, 1, 0, 0],
-                         [0, 0, 0, 0]], dtype=np.float64)
-        expected = np.array([[0, 0, 0],
-                            [0, 0, 0],
-                            [0, 1, 0],
-                            [0, 0, 0]], dtype=np.float64)
-        out = ndimage.rotate(data, 90, order=order)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    @pytest.mark.parametrize('dtype', [np.float64, np.complex128])
-    def test_rotate03(self, order, dtype):
-        data = np.array([[0, 0, 0, 0, 0],
-                         [0, 1, 1, 0, 0],
-                         [0, 0, 0, 0, 0]], dtype=dtype)
-        expected = np.array([[0, 0, 0],
-                            [0, 0, 0],
-                            [0, 1, 0],
-                            [0, 1, 0],
-                            [0, 0, 0]], dtype=dtype)
-        if data.dtype.kind == 'c':
-            data -= 1j * data
-            expected -= 1j * expected
-        out = ndimage.rotate(data, 90, order=order)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_rotate04(self, order):
-        data = np.array([[0, 0, 0, 0, 0],
-                         [0, 1, 1, 0, 0],
-                         [0, 0, 0, 0, 0]], dtype=np.float64)
-        expected = np.array([[0, 0, 0, 0, 0],
-                             [0, 0, 1, 0, 0],
-                             [0, 0, 1, 0, 0]], dtype=np.float64)
-        out = ndimage.rotate(data, 90, reshape=False, order=order)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_rotate05(self, order):
-        data = np.empty((4, 3, 3))
-        for i in range(3):
-            data[:, :, i] = np.array([[0, 0, 0],
-                                      [0, 1, 0],
-                                      [0, 1, 0],
-                                      [0, 0, 0]], dtype=np.float64)
-        expected = np.array([[0, 0, 0, 0],
-                             [0, 1, 1, 0],
-                             [0, 0, 0, 0]], dtype=np.float64)
-        out = ndimage.rotate(data, 90, order=order)
-        for i in range(3):
-            assert_array_almost_equal(out[:, :, i], expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_rotate06(self, order):
-        data = np.empty((3, 4, 3))
-        for i in range(3):
-            data[:, :, i] = np.array([[0, 0, 0, 0],
-                                      [0, 1, 1, 0],
-                                      [0, 0, 0, 0]], dtype=np.float64)
-        expected = np.array([[0, 0, 0],
-                             [0, 1, 0],
-                             [0, 1, 0],
-                             [0, 0, 0]], dtype=np.float64)
-        out = ndimage.rotate(data, 90, order=order)
-        for i in range(3):
-            assert_array_almost_equal(out[:, :, i], expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_rotate07(self, order):
-        data = np.array([[[0, 0, 0, 0, 0],
-                          [0, 1, 1, 0, 0],
-                          [0, 0, 0, 0, 0]]] * 2, dtype=np.float64)
-        data = data.transpose()
-        expected = np.array([[[0, 0, 0],
-                              [0, 1, 0],
-                              [0, 1, 0],
-                              [0, 0, 0],
-                              [0, 0, 0]]] * 2, dtype=np.float64)
-        expected = expected.transpose([2, 1, 0])
-        out = ndimage.rotate(data, 90, axes=(0, 1), order=order)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('order', range(0, 6))
-    def test_rotate08(self, order):
-        data = np.array([[[0, 0, 0, 0, 0],
-                          [0, 1, 1, 0, 0],
-                          [0, 0, 0, 0, 0]]] * 2, dtype=np.float64)
-        data = data.transpose()
-        expected = np.array([[[0, 0, 1, 0, 0],
-                              [0, 0, 1, 0, 0],
-                              [0, 0, 0, 0, 0]]] * 2, dtype=np.float64)
-        expected = expected.transpose()
-        out = ndimage.rotate(data, 90, axes=(0, 1), reshape=False, order=order)
-        assert_array_almost_equal(out, expected)
-
-    def test_rotate09(self):
-        data = np.array([[0, 0, 0, 0, 0],
-                         [0, 1, 1, 0, 0],
-                         [0, 0, 0, 0, 0]] * 2, dtype=np.float64)
-        with assert_raises(ValueError):
-            ndimage.rotate(data, 90, axes=(0, data.ndim))
-
-    def test_rotate10(self):
-        data = np.arange(45, dtype=np.float64).reshape((3, 5, 3))
-
-        # The output of ndimage.rotate before refactoring
-        expected = np.array([[[0.0, 0.0, 0.0],
-                              [0.0, 0.0, 0.0],
-                              [6.54914793, 7.54914793, 8.54914793],
-                              [10.84520162, 11.84520162, 12.84520162],
-                              [0.0, 0.0, 0.0]],
-                             [[6.19286575, 7.19286575, 8.19286575],
-                              [13.4730712, 14.4730712, 15.4730712],
-                              [21.0, 22.0, 23.0],
-                              [28.5269288, 29.5269288, 30.5269288],
-                              [35.80713425, 36.80713425, 37.80713425]],
-                             [[0.0, 0.0, 0.0],
-                              [31.15479838, 32.15479838, 33.15479838],
-                              [35.45085207, 36.45085207, 37.45085207],
-                              [0.0, 0.0, 0.0],
-                              [0.0, 0.0, 0.0]]])
-
-        out = ndimage.rotate(data, angle=12, reshape=False)
-        assert_array_almost_equal(out, expected)
-
-    def test_rotate_exact_180(self):
-        a = np.tile(np.arange(5), (5, 1))
-        b = ndimage.rotate(ndimage.rotate(a, 180), -180)
-        assert_equal(a, b)
-
-
-def test_zoom_output_shape():
-    """Ticket #643"""
-    x = np.arange(12).reshape((3, 4))
-    ndimage.zoom(x, 2, output=np.zeros((6, 8)))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_measurements.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_measurements.py
deleted file mode 100644
index a55b1a6014348ba022f9982900a3cf5e1bcf62af..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_measurements.py
+++ /dev/null
@@ -1,1419 +0,0 @@
-import os.path
-
-import numpy as np
-from numpy.testing import (
-    assert_,
-    assert_allclose,
-    assert_almost_equal,
-    assert_array_almost_equal,
-    assert_array_equal,
-    assert_equal,
-    suppress_warnings,
-)
-import pytest
-from pytest import raises as assert_raises
-
-import scipy.ndimage as ndimage
-
-
-from . import types
-
-
-class Test_measurements_stats:
-    """ndimage._measurements._stats() is a utility used by other functions."""
-
-    def test_a(self):
-        x = [0, 1, 2, 6]
-        labels = [0, 0, 1, 1]
-        index = [0, 1]
-        for shp in [(4,), (2, 2)]:
-            x = np.array(x).reshape(shp)
-            labels = np.array(labels).reshape(shp)
-            counts, sums = ndimage._measurements._stats(
-                x, labels=labels, index=index)
-            assert_array_equal(counts, [2, 2])
-            assert_array_equal(sums, [1.0, 8.0])
-
-    def test_b(self):
-        # Same data as test_a, but different labels.  The label 9 exceeds the
-        # length of 'labels', so this test will follow a different code path.
-        x = [0, 1, 2, 6]
-        labels = [0, 0, 9, 9]
-        index = [0, 9]
-        for shp in [(4,), (2, 2)]:
-            x = np.array(x).reshape(shp)
-            labels = np.array(labels).reshape(shp)
-            counts, sums = ndimage._measurements._stats(
-                x, labels=labels, index=index)
-            assert_array_equal(counts, [2, 2])
-            assert_array_equal(sums, [1.0, 8.0])
-
-    def test_a_centered(self):
-        x = [0, 1, 2, 6]
-        labels = [0, 0, 1, 1]
-        index = [0, 1]
-        for shp in [(4,), (2, 2)]:
-            x = np.array(x).reshape(shp)
-            labels = np.array(labels).reshape(shp)
-            counts, sums, centers = ndimage._measurements._stats(
-                x, labels=labels, index=index, centered=True)
-            assert_array_equal(counts, [2, 2])
-            assert_array_equal(sums, [1.0, 8.0])
-            assert_array_equal(centers, [0.5, 8.0])
-
-    def test_b_centered(self):
-        x = [0, 1, 2, 6]
-        labels = [0, 0, 9, 9]
-        index = [0, 9]
-        for shp in [(4,), (2, 2)]:
-            x = np.array(x).reshape(shp)
-            labels = np.array(labels).reshape(shp)
-            counts, sums, centers = ndimage._measurements._stats(
-                x, labels=labels, index=index, centered=True)
-            assert_array_equal(counts, [2, 2])
-            assert_array_equal(sums, [1.0, 8.0])
-            assert_array_equal(centers, [0.5, 8.0])
-
-    def test_nonint_labels(self):
-        x = [0, 1, 2, 6]
-        labels = [0.0, 0.0, 9.0, 9.0]
-        index = [0.0, 9.0]
-        for shp in [(4,), (2, 2)]:
-            x = np.array(x).reshape(shp)
-            labels = np.array(labels).reshape(shp)
-            counts, sums, centers = ndimage._measurements._stats(
-                x, labels=labels, index=index, centered=True)
-            assert_array_equal(counts, [2, 2])
-            assert_array_equal(sums, [1.0, 8.0])
-            assert_array_equal(centers, [0.5, 8.0])
-
-
-class Test_measurements_select:
-    """ndimage._measurements._select() is a utility used by other functions."""
-
-    def test_basic(self):
-        x = [0, 1, 6, 2]
-        cases = [
-            ([0, 0, 1, 1], [0, 1]),           # "Small" integer labels
-            ([0, 0, 9, 9], [0, 9]),           # A label larger than len(labels)
-            ([0.0, 0.0, 7.0, 7.0], [0.0, 7.0]),   # Non-integer labels
-        ]
-        for labels, index in cases:
-            result = ndimage._measurements._select(
-                x, labels=labels, index=index)
-            assert_(len(result) == 0)
-            result = ndimage._measurements._select(
-                x, labels=labels, index=index, find_max=True)
-            assert_(len(result) == 1)
-            assert_array_equal(result[0], [1, 6])
-            result = ndimage._measurements._select(
-                x, labels=labels, index=index, find_min=True)
-            assert_(len(result) == 1)
-            assert_array_equal(result[0], [0, 2])
-            result = ndimage._measurements._select(
-                x, labels=labels, index=index, find_min=True,
-                find_min_positions=True)
-            assert_(len(result) == 2)
-            assert_array_equal(result[0], [0, 2])
-            assert_array_equal(result[1], [0, 3])
-            assert_equal(result[1].dtype.kind, 'i')
-            result = ndimage._measurements._select(
-                x, labels=labels, index=index, find_max=True,
-                find_max_positions=True)
-            assert_(len(result) == 2)
-            assert_array_equal(result[0], [1, 6])
-            assert_array_equal(result[1], [1, 2])
-            assert_equal(result[1].dtype.kind, 'i')
-
-
-def test_label01():
-    data = np.ones([])
-    out, n = ndimage.label(data)
-    assert_array_almost_equal(out, 1)
-    assert_equal(n, 1)
-
-
-def test_label02():
-    data = np.zeros([])
-    out, n = ndimage.label(data)
-    assert_array_almost_equal(out, 0)
-    assert_equal(n, 0)
-
-
-def test_label03():
-    data = np.ones([1])
-    out, n = ndimage.label(data)
-    assert_array_almost_equal(out, [1])
-    assert_equal(n, 1)
-
-
-def test_label04():
-    data = np.zeros([1])
-    out, n = ndimage.label(data)
-    assert_array_almost_equal(out, [0])
-    assert_equal(n, 0)
-
-
-def test_label05():
-    data = np.ones([5])
-    out, n = ndimage.label(data)
-    assert_array_almost_equal(out, [1, 1, 1, 1, 1])
-    assert_equal(n, 1)
-
-
-def test_label06():
-    data = np.array([1, 0, 1, 1, 0, 1])
-    out, n = ndimage.label(data)
-    assert_array_almost_equal(out, [1, 0, 2, 2, 0, 3])
-    assert_equal(n, 3)
-
-
-def test_label07():
-    data = np.array([[0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0]])
-    out, n = ndimage.label(data)
-    assert_array_almost_equal(out, [[0, 0, 0, 0, 0, 0],
-                                    [0, 0, 0, 0, 0, 0],
-                                    [0, 0, 0, 0, 0, 0],
-                                    [0, 0, 0, 0, 0, 0],
-                                    [0, 0, 0, 0, 0, 0],
-                                    [0, 0, 0, 0, 0, 0]])
-    assert_equal(n, 0)
-
-
-def test_label08():
-    data = np.array([[1, 0, 0, 0, 0, 0],
-                     [0, 0, 1, 1, 0, 0],
-                     [0, 0, 1, 1, 1, 0],
-                     [1, 1, 0, 0, 0, 0],
-                     [1, 1, 0, 0, 0, 0],
-                     [0, 0, 0, 1, 1, 0]])
-    out, n = ndimage.label(data)
-    assert_array_almost_equal(out, [[1, 0, 0, 0, 0, 0],
-                                    [0, 0, 2, 2, 0, 0],
-                                    [0, 0, 2, 2, 2, 0],
-                                    [3, 3, 0, 0, 0, 0],
-                                    [3, 3, 0, 0, 0, 0],
-                                    [0, 0, 0, 4, 4, 0]])
-    assert_equal(n, 4)
-
-
-def test_label09():
-    data = np.array([[1, 0, 0, 0, 0, 0],
-                     [0, 0, 1, 1, 0, 0],
-                     [0, 0, 1, 1, 1, 0],
-                     [1, 1, 0, 0, 0, 0],
-                     [1, 1, 0, 0, 0, 0],
-                     [0, 0, 0, 1, 1, 0]])
-    struct = ndimage.generate_binary_structure(2, 2)
-    out, n = ndimage.label(data, struct)
-    assert_array_almost_equal(out, [[1, 0, 0, 0, 0, 0],
-                                    [0, 0, 2, 2, 0, 0],
-                                    [0, 0, 2, 2, 2, 0],
-                                    [2, 2, 0, 0, 0, 0],
-                                    [2, 2, 0, 0, 0, 0],
-                                    [0, 0, 0, 3, 3, 0]])
-    assert_equal(n, 3)
-
-
-def test_label10():
-    data = np.array([[0, 0, 0, 0, 0, 0],
-                     [0, 1, 1, 0, 1, 0],
-                     [0, 1, 1, 1, 1, 0],
-                     [0, 0, 0, 0, 0, 0]])
-    struct = ndimage.generate_binary_structure(2, 2)
-    out, n = ndimage.label(data, struct)
-    assert_array_almost_equal(out, [[0, 0, 0, 0, 0, 0],
-                                    [0, 1, 1, 0, 1, 0],
-                                    [0, 1, 1, 1, 1, 0],
-                                    [0, 0, 0, 0, 0, 0]])
-    assert_equal(n, 1)
-
-
-def test_label11():
-    for type in types:
-        data = np.array([[1, 0, 0, 0, 0, 0],
-                         [0, 0, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 0],
-                         [1, 1, 0, 0, 0, 0],
-                         [1, 1, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 0]], type)
-        out, n = ndimage.label(data)
-        expected = [[1, 0, 0, 0, 0, 0],
-                    [0, 0, 2, 2, 0, 0],
-                    [0, 0, 2, 2, 2, 0],
-                    [3, 3, 0, 0, 0, 0],
-                    [3, 3, 0, 0, 0, 0],
-                    [0, 0, 0, 4, 4, 0]]
-        assert_array_almost_equal(out, expected)
-        assert_equal(n, 4)
-
-
-def test_label11_inplace():
-    for type in types:
-        data = np.array([[1, 0, 0, 0, 0, 0],
-                         [0, 0, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 0],
-                         [1, 1, 0, 0, 0, 0],
-                         [1, 1, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 0]], type)
-        n = ndimage.label(data, output=data)
-        expected = [[1, 0, 0, 0, 0, 0],
-                    [0, 0, 2, 2, 0, 0],
-                    [0, 0, 2, 2, 2, 0],
-                    [3, 3, 0, 0, 0, 0],
-                    [3, 3, 0, 0, 0, 0],
-                    [0, 0, 0, 4, 4, 0]]
-        assert_array_almost_equal(data, expected)
-        assert_equal(n, 4)
-
-
-def test_label12():
-    for type in types:
-        data = np.array([[0, 0, 0, 0, 1, 1],
-                         [0, 0, 0, 0, 0, 1],
-                         [0, 0, 1, 0, 1, 1],
-                         [0, 0, 1, 1, 1, 1],
-                         [0, 0, 0, 1, 1, 0]], type)
-        out, n = ndimage.label(data)
-        expected = [[0, 0, 0, 0, 1, 1],
-                    [0, 0, 0, 0, 0, 1],
-                    [0, 0, 1, 0, 1, 1],
-                    [0, 0, 1, 1, 1, 1],
-                    [0, 0, 0, 1, 1, 0]]
-        assert_array_almost_equal(out, expected)
-        assert_equal(n, 1)
-
-
-def test_label13():
-    for type in types:
-        data = np.array([[1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1],
-                         [1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1],
-                         [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
-                         [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]],
-                        type)
-        out, n = ndimage.label(data)
-        expected = [[1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1],
-                    [1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1],
-                    [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
-                    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
-        assert_array_almost_equal(out, expected)
-        assert_equal(n, 1)
-
-
-def test_label_output_typed():
-    data = np.ones([5])
-    for t in types:
-        output = np.zeros([5], dtype=t)
-        n = ndimage.label(data, output=output)
-        assert_array_almost_equal(output, 1)
-        assert_equal(n, 1)
-
-
-def test_label_output_dtype():
-    data = np.ones([5])
-    for t in types:
-        output, n = ndimage.label(data, output=t)
-        assert_array_almost_equal(output, 1)
-        assert output.dtype == t
-
-
-def test_label_output_wrong_size():
-    data = np.ones([5])
-    for t in types:
-        output = np.zeros([10], t)
-        assert_raises((RuntimeError, ValueError),
-                      ndimage.label, data, output=output)
-
-
-def test_label_structuring_elements():
-    data = np.loadtxt(os.path.join(os.path.dirname(
-        __file__), "data", "label_inputs.txt"))
-    strels = np.loadtxt(os.path.join(
-        os.path.dirname(__file__), "data", "label_strels.txt"))
-    results = np.loadtxt(os.path.join(
-        os.path.dirname(__file__), "data", "label_results.txt"))
-    data = data.reshape((-1, 7, 7))
-    strels = strels.reshape((-1, 3, 3))
-    results = results.reshape((-1, 7, 7))
-    r = 0
-    for i in range(data.shape[0]):
-        d = data[i, :, :]
-        for j in range(strels.shape[0]):
-            s = strels[j, :, :]
-            assert_equal(ndimage.label(d, s)[0], results[r, :, :])
-            r += 1
-
-
-def test_ticket_742():
-    def SE(img, thresh=.7, size=4):
-        mask = img > thresh
-        rank = len(mask.shape)
-        la, co = ndimage.label(mask,
-                               ndimage.generate_binary_structure(rank, rank))
-        _ = ndimage.find_objects(la)
-
-    if np.dtype(np.intp) != np.dtype('i'):
-        shape = (3, 1240, 1240)
-        a = np.random.rand(np.prod(shape)).reshape(shape)
-        # shouldn't crash
-        SE(a)
-
-
-def test_gh_issue_3025():
-    """Github issue #3025 - improper merging of labels"""
-    d = np.zeros((60, 320))
-    d[:, :257] = 1
-    d[:, 260:] = 1
-    d[36, 257] = 1
-    d[35, 258] = 1
-    d[35, 259] = 1
-    assert ndimage.label(d, np.ones((3, 3)))[1] == 1
-
-
-def test_label_default_dtype():
-    test_array = np.random.rand(10, 10)
-    label, no_features = ndimage.label(test_array > 0.5)
-    assert_(label.dtype in (np.int32, np.int64))
-    # Shouldn't raise an exception
-    ndimage.find_objects(label)
-
-
-def test_find_objects01():
-    data = np.ones([], dtype=int)
-    out = ndimage.find_objects(data)
-    assert_(out == [()])
-
-
-def test_find_objects02():
-    data = np.zeros([], dtype=int)
-    out = ndimage.find_objects(data)
-    assert_(out == [])
-
-
-def test_find_objects03():
-    data = np.ones([1], dtype=int)
-    out = ndimage.find_objects(data)
-    assert_equal(out, [(slice(0, 1, None),)])
-
-
-def test_find_objects04():
-    data = np.zeros([1], dtype=int)
-    out = ndimage.find_objects(data)
-    assert_equal(out, [])
-
-
-def test_find_objects05():
-    data = np.ones([5], dtype=int)
-    out = ndimage.find_objects(data)
-    assert_equal(out, [(slice(0, 5, None),)])
-
-
-def test_find_objects06():
-    data = np.array([1, 0, 2, 2, 0, 3])
-    out = ndimage.find_objects(data)
-    assert_equal(out, [(slice(0, 1, None),),
-                       (slice(2, 4, None),),
-                       (slice(5, 6, None),)])
-
-
-def test_find_objects07():
-    data = np.array([[0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0]])
-    out = ndimage.find_objects(data)
-    assert_equal(out, [])
-
-
-def test_find_objects08():
-    data = np.array([[1, 0, 0, 0, 0, 0],
-                     [0, 0, 2, 2, 0, 0],
-                     [0, 0, 2, 2, 2, 0],
-                     [3, 3, 0, 0, 0, 0],
-                     [3, 3, 0, 0, 0, 0],
-                     [0, 0, 0, 4, 4, 0]])
-    out = ndimage.find_objects(data)
-    assert_equal(out, [(slice(0, 1, None), slice(0, 1, None)),
-                       (slice(1, 3, None), slice(2, 5, None)),
-                       (slice(3, 5, None), slice(0, 2, None)),
-                       (slice(5, 6, None), slice(3, 5, None))])
-
-
-def test_find_objects09():
-    data = np.array([[1, 0, 0, 0, 0, 0],
-                     [0, 0, 2, 2, 0, 0],
-                     [0, 0, 2, 2, 2, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 4, 4, 0]])
-    out = ndimage.find_objects(data)
-    assert_equal(out, [(slice(0, 1, None), slice(0, 1, None)),
-                       (slice(1, 3, None), slice(2, 5, None)),
-                       None,
-                       (slice(5, 6, None), slice(3, 5, None))])
-
-
-def test_value_indices01():
-    "Test dictionary keys and entries"
-    data = np.array([[1, 0, 0, 0, 0, 0],
-                     [0, 0, 2, 2, 0, 0],
-                     [0, 0, 2, 2, 2, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 0, 0, 0],
-                     [0, 0, 0, 4, 4, 0]])
-    vi = ndimage.value_indices(data, ignore_value=0)
-    true_keys = [1, 2, 4]
-    assert_equal(list(vi.keys()), true_keys)
-
-    truevi = {}
-    for k in true_keys:
-        truevi[k] = np.where(data == k)
-
-    vi = ndimage.value_indices(data, ignore_value=0)
-    assert_equal(vi, truevi)
-
-
-def test_value_indices02():
-    "Test input checking"
-    data = np.zeros((5, 4), dtype=np.float32)
-    msg = "Parameter 'arr' must be an integer array"
-    with assert_raises(ValueError, match=msg):
-        ndimage.value_indices(data)
-
-
-def test_value_indices03():
-    "Test different input array shapes, from 1-D to 4-D"
-    for shape in [(36,), (18, 2), (3, 3, 4), (3, 3, 2, 2)]:
-        a = np.array((12*[1]+12*[2]+12*[3]), dtype=np.int32).reshape(shape)
-        trueKeys = np.unique(a)
-        vi = ndimage.value_indices(a)
-        assert_equal(list(vi.keys()), list(trueKeys))
-        for k in trueKeys:
-            trueNdx = np.where(a == k)
-            assert_equal(vi[k], trueNdx)
-
-
-def test_sum01():
-    for type in types:
-        input = np.array([], type)
-        output = ndimage.sum(input)
-        assert_equal(output, 0.0)
-
-
-def test_sum02():
-    for type in types:
-        input = np.zeros([0, 4], type)
-        output = ndimage.sum(input)
-        assert_equal(output, 0.0)
-
-
-def test_sum03():
-    for type in types:
-        input = np.ones([], type)
-        output = ndimage.sum(input)
-        assert_almost_equal(output, 1.0)
-
-
-def test_sum04():
-    for type in types:
-        input = np.array([1, 2], type)
-        output = ndimage.sum(input)
-        assert_almost_equal(output, 3.0)
-
-
-def test_sum05():
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.sum(input)
-        assert_almost_equal(output, 10.0)
-
-
-def test_sum06():
-    labels = np.array([], bool)
-    for type in types:
-        input = np.array([], type)
-        output = ndimage.sum(input, labels=labels)
-        assert_equal(output, 0.0)
-
-
-def test_sum07():
-    labels = np.ones([0, 4], bool)
-    for type in types:
-        input = np.zeros([0, 4], type)
-        output = ndimage.sum(input, labels=labels)
-        assert_equal(output, 0.0)
-
-
-def test_sum08():
-    labels = np.array([1, 0], bool)
-    for type in types:
-        input = np.array([1, 2], type)
-        output = ndimage.sum(input, labels=labels)
-        assert_equal(output, 1.0)
-
-
-def test_sum09():
-    labels = np.array([1, 0], bool)
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.sum(input, labels=labels)
-        assert_almost_equal(output, 4.0)
-
-
-def test_sum10():
-    labels = np.array([1, 0], bool)
-    input = np.array([[1, 2], [3, 4]], bool)
-    output = ndimage.sum(input, labels=labels)
-    assert_almost_equal(output, 2.0)
-
-
-def test_sum11():
-    labels = np.array([1, 2], np.int8)
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.sum(input, labels=labels,
-                             index=2)
-        assert_almost_equal(output, 6.0)
-
-
-def test_sum12():
-    labels = np.array([[1, 2], [2, 4]], np.int8)
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.sum(input, labels=labels, index=[4, 8, 2])
-        assert_array_almost_equal(output, [4.0, 0.0, 5.0])
-
-
-def test_sum_labels():
-    labels = np.array([[1, 2], [2, 4]], np.int8)
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output_sum = ndimage.sum(input, labels=labels, index=[4, 8, 2])
-        output_labels = ndimage.sum_labels(
-            input, labels=labels, index=[4, 8, 2])
-
-        assert (output_sum == output_labels).all()
-        assert_array_almost_equal(output_labels, [4.0, 0.0, 5.0])
-
-
-def test_mean01():
-    labels = np.array([1, 0], bool)
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.mean(input, labels=labels)
-        assert_almost_equal(output, 2.0)
-
-
-def test_mean02():
-    labels = np.array([1, 0], bool)
-    input = np.array([[1, 2], [3, 4]], bool)
-    output = ndimage.mean(input, labels=labels)
-    assert_almost_equal(output, 1.0)
-
-
-def test_mean03():
-    labels = np.array([1, 2])
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.mean(input, labels=labels,
-                              index=2)
-        assert_almost_equal(output, 3.0)
-
-
-def test_mean04():
-    labels = np.array([[1, 2], [2, 4]], np.int8)
-    with np.errstate(all='ignore'):
-        for type in types:
-            input = np.array([[1, 2], [3, 4]], type)
-            output = ndimage.mean(input, labels=labels,
-                                  index=[4, 8, 2])
-            assert_array_almost_equal(output[[0, 2]], [4.0, 2.5])
-            assert_(np.isnan(output[1]))
-
-
-def test_minimum01():
-    labels = np.array([1, 0], bool)
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.minimum(input, labels=labels)
-        assert_almost_equal(output, 1.0)
-
-
-def test_minimum02():
-    labels = np.array([1, 0], bool)
-    input = np.array([[2, 2], [2, 4]], bool)
-    output = ndimage.minimum(input, labels=labels)
-    assert_almost_equal(output, 1.0)
-
-
-def test_minimum03():
-    labels = np.array([1, 2])
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.minimum(input, labels=labels,
-                                 index=2)
-        assert_almost_equal(output, 2.0)
-
-
-def test_minimum04():
-    labels = np.array([[1, 2], [2, 3]])
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.minimum(input, labels=labels,
-                                 index=[2, 3, 8])
-        assert_array_almost_equal(output, [2.0, 4.0, 0.0])
-
-
-def test_maximum01():
-    labels = np.array([1, 0], bool)
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.maximum(input, labels=labels)
-        assert_almost_equal(output, 3.0)
-
-
-def test_maximum02():
-    labels = np.array([1, 0], bool)
-    input = np.array([[2, 2], [2, 4]], bool)
-    output = ndimage.maximum(input, labels=labels)
-    assert_almost_equal(output, 1.0)
-
-
-def test_maximum03():
-    labels = np.array([1, 2])
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.maximum(input, labels=labels,
-                                 index=2)
-        assert_almost_equal(output, 4.0)
-
-
-def test_maximum04():
-    labels = np.array([[1, 2], [2, 3]])
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.maximum(input, labels=labels,
-                                 index=[2, 3, 8])
-        assert_array_almost_equal(output, [3.0, 4.0, 0.0])
-
-
-def test_maximum05():
-    # Regression test for ticket #501 (Trac)
-    x = np.array([-3, -2, -1])
-    assert_equal(ndimage.maximum(x), -1)
-
-
-def test_median01():
-    a = np.array([[1, 2, 0, 1],
-                  [5, 3, 0, 4],
-                  [0, 0, 0, 7],
-                  [9, 3, 0, 0]])
-    labels = np.array([[1, 1, 0, 2],
-                       [1, 1, 0, 2],
-                       [0, 0, 0, 2],
-                       [3, 3, 0, 0]])
-    output = ndimage.median(a, labels=labels, index=[1, 2, 3])
-    assert_array_almost_equal(output, [2.5, 4.0, 6.0])
-
-
-def test_median02():
-    a = np.array([[1, 2, 0, 1],
-                  [5, 3, 0, 4],
-                  [0, 0, 0, 7],
-                  [9, 3, 0, 0]])
-    output = ndimage.median(a)
-    assert_almost_equal(output, 1.0)
-
-
-def test_median03():
-    a = np.array([[1, 2, 0, 1],
-                  [5, 3, 0, 4],
-                  [0, 0, 0, 7],
-                  [9, 3, 0, 0]])
-    labels = np.array([[1, 1, 0, 2],
-                       [1, 1, 0, 2],
-                       [0, 0, 0, 2],
-                       [3, 3, 0, 0]])
-    output = ndimage.median(a, labels=labels)
-    assert_almost_equal(output, 3.0)
-
-
-def test_median_gh12836_bool():
-    # test boolean addition fix on example from gh-12836
-    a = np.asarray([1, 1], dtype=bool)
-    output = ndimage.median(a, labels=np.ones((2,)), index=[1])
-    assert_array_almost_equal(output, [1.0])
-
-
-def test_median_no_int_overflow():
-    # test integer overflow fix on example from gh-12836
-    a = np.asarray([65, 70], dtype=np.int8)
-    output = ndimage.median(a, labels=np.ones((2,)), index=[1])
-    assert_array_almost_equal(output, [67.5])
-
-
-def test_variance01():
-    with np.errstate(all='ignore'):
-        for type in types:
-            input = np.array([], type)
-            with suppress_warnings() as sup:
-                sup.filter(RuntimeWarning, "Mean of empty slice")
-                output = ndimage.variance(input)
-            assert_(np.isnan(output))
-
-
-def test_variance02():
-    for type in types:
-        input = np.array([1], type)
-        output = ndimage.variance(input)
-        assert_almost_equal(output, 0.0)
-
-
-def test_variance03():
-    for type in types:
-        input = np.array([1, 3], type)
-        output = ndimage.variance(input)
-        assert_almost_equal(output, 1.0)
-
-
-def test_variance04():
-    input = np.array([1, 0], bool)
-    output = ndimage.variance(input)
-    assert_almost_equal(output, 0.25)
-
-
-def test_variance05():
-    labels = [2, 2, 3]
-    for type in types:
-        input = np.array([1, 3, 8], type)
-        output = ndimage.variance(input, labels, 2)
-        assert_almost_equal(output, 1.0)
-
-
-def test_variance06():
-    labels = [2, 2, 3, 3, 4]
-    with np.errstate(all='ignore'):
-        for type in types:
-            input = np.array([1, 3, 8, 10, 8], type)
-            output = ndimage.variance(input, labels, [2, 3, 4])
-            assert_array_almost_equal(output, [1.0, 1.0, 0.0])
-
-
-def test_standard_deviation01():
-    with np.errstate(all='ignore'):
-        for type in types:
-            input = np.array([], type)
-            with suppress_warnings() as sup:
-                sup.filter(RuntimeWarning, "Mean of empty slice")
-                output = ndimage.standard_deviation(input)
-            assert_(np.isnan(output))
-
-
-def test_standard_deviation02():
-    for type in types:
-        input = np.array([1], type)
-        output = ndimage.standard_deviation(input)
-        assert_almost_equal(output, 0.0)
-
-
-def test_standard_deviation03():
-    for type in types:
-        input = np.array([1, 3], type)
-        output = ndimage.standard_deviation(input)
-        assert_almost_equal(output, np.sqrt(1.0))
-
-
-def test_standard_deviation04():
-    input = np.array([1, 0], bool)
-    output = ndimage.standard_deviation(input)
-    assert_almost_equal(output, 0.5)
-
-
-def test_standard_deviation05():
-    labels = [2, 2, 3]
-    for type in types:
-        input = np.array([1, 3, 8], type)
-        output = ndimage.standard_deviation(input, labels, 2)
-        assert_almost_equal(output, 1.0)
-
-
-def test_standard_deviation06():
-    labels = [2, 2, 3, 3, 4]
-    with np.errstate(all='ignore'):
-        for type in types:
-            input = np.array([1, 3, 8, 10, 8], type)
-            output = ndimage.standard_deviation(input, labels, [2, 3, 4])
-            assert_array_almost_equal(output, [1.0, 1.0, 0.0])
-
-
-def test_standard_deviation07():
-    labels = [1]
-    with np.errstate(all='ignore'):
-        for type in types:
-            input = np.array([-0.00619519], type)
-            output = ndimage.standard_deviation(input, labels, [1])
-            assert_array_almost_equal(output, [0])
-
-
-def test_minimum_position01():
-    labels = np.array([1, 0], bool)
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.minimum_position(input, labels=labels)
-        assert_equal(output, (0, 0))
-
-
-def test_minimum_position02():
-    for type in types:
-        input = np.array([[5, 4, 2, 5],
-                          [3, 7, 0, 2],
-                          [1, 5, 1, 1]], type)
-        output = ndimage.minimum_position(input)
-        assert_equal(output, (1, 2))
-
-
-def test_minimum_position03():
-    input = np.array([[5, 4, 2, 5],
-                      [3, 7, 0, 2],
-                      [1, 5, 1, 1]], bool)
-    output = ndimage.minimum_position(input)
-    assert_equal(output, (1, 2))
-
-
-def test_minimum_position04():
-    input = np.array([[5, 4, 2, 5],
-                      [3, 7, 1, 2],
-                      [1, 5, 1, 1]], bool)
-    output = ndimage.minimum_position(input)
-    assert_equal(output, (0, 0))
-
-
-def test_minimum_position05():
-    labels = [1, 2, 0, 4]
-    for type in types:
-        input = np.array([[5, 4, 2, 5],
-                          [3, 7, 0, 2],
-                          [1, 5, 2, 3]], type)
-        output = ndimage.minimum_position(input, labels)
-        assert_equal(output, (2, 0))
-
-
-def test_minimum_position06():
-    labels = [1, 2, 3, 4]
-    for type in types:
-        input = np.array([[5, 4, 2, 5],
-                          [3, 7, 0, 2],
-                          [1, 5, 1, 1]], type)
-        output = ndimage.minimum_position(input, labels, 2)
-        assert_equal(output, (0, 1))
-
-
-def test_minimum_position07():
-    labels = [1, 2, 3, 4]
-    for type in types:
-        input = np.array([[5, 4, 2, 5],
-                          [3, 7, 0, 2],
-                          [1, 5, 1, 1]], type)
-        output = ndimage.minimum_position(input, labels,
-                                          [2, 3])
-        assert_equal(output[0], (0, 1))
-        assert_equal(output[1], (1, 2))
-
-
-def test_maximum_position01():
-    labels = np.array([1, 0], bool)
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output = ndimage.maximum_position(input,
-                                          labels=labels)
-        assert_equal(output, (1, 0))
-
-
-def test_maximum_position02():
-    for type in types:
-        input = np.array([[5, 4, 2, 5],
-                          [3, 7, 8, 2],
-                          [1, 5, 1, 1]], type)
-        output = ndimage.maximum_position(input)
-        assert_equal(output, (1, 2))
-
-
-def test_maximum_position03():
-    input = np.array([[5, 4, 2, 5],
-                      [3, 7, 8, 2],
-                      [1, 5, 1, 1]], bool)
-    output = ndimage.maximum_position(input)
-    assert_equal(output, (0, 0))
-
-
-def test_maximum_position04():
-    labels = [1, 2, 0, 4]
-    for type in types:
-        input = np.array([[5, 4, 2, 5],
-                          [3, 7, 8, 2],
-                          [1, 5, 1, 1]], type)
-        output = ndimage.maximum_position(input, labels)
-        assert_equal(output, (1, 1))
-
-
-def test_maximum_position05():
-    labels = [1, 2, 0, 4]
-    for type in types:
-        input = np.array([[5, 4, 2, 5],
-                          [3, 7, 8, 2],
-                          [1, 5, 1, 1]], type)
-        output = ndimage.maximum_position(input, labels, 1)
-        assert_equal(output, (0, 0))
-
-
-def test_maximum_position06():
-    labels = [1, 2, 0, 4]
-    for type in types:
-        input = np.array([[5, 4, 2, 5],
-                          [3, 7, 8, 2],
-                          [1, 5, 1, 1]], type)
-        output = ndimage.maximum_position(input, labels,
-                                          [1, 2])
-        assert_equal(output[0], (0, 0))
-        assert_equal(output[1], (1, 1))
-
-
-def test_maximum_position07():
-    # Test float labels
-    labels = np.array([1.0, 2.5, 0.0, 4.5])
-    for type in types:
-        input = np.array([[5, 4, 2, 5],
-                          [3, 7, 8, 2],
-                          [1, 5, 1, 1]], type)
-        output = ndimage.maximum_position(input, labels,
-                                          [1.0, 4.5])
-        assert_equal(output[0], (0, 0))
-        assert_equal(output[1], (0, 3))
-
-
-def test_extrema01():
-    labels = np.array([1, 0], bool)
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output1 = ndimage.extrema(input, labels=labels)
-        output2 = ndimage.minimum(input, labels=labels)
-        output3 = ndimage.maximum(input, labels=labels)
-        output4 = ndimage.minimum_position(input,
-                                           labels=labels)
-        output5 = ndimage.maximum_position(input,
-                                           labels=labels)
-        assert_equal(output1, (output2, output3, output4, output5))
-
-
-def test_extrema02():
-    labels = np.array([1, 2])
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output1 = ndimage.extrema(input, labels=labels,
-                                  index=2)
-        output2 = ndimage.minimum(input, labels=labels,
-                                  index=2)
-        output3 = ndimage.maximum(input, labels=labels,
-                                  index=2)
-        output4 = ndimage.minimum_position(input,
-                                           labels=labels, index=2)
-        output5 = ndimage.maximum_position(input,
-                                           labels=labels, index=2)
-        assert_equal(output1, (output2, output3, output4, output5))
-
-
-def test_extrema03():
-    labels = np.array([[1, 2], [2, 3]])
-    for type in types:
-        input = np.array([[1, 2], [3, 4]], type)
-        output1 = ndimage.extrema(input, labels=labels,
-                                  index=[2, 3, 8])
-        output2 = ndimage.minimum(input, labels=labels,
-                                  index=[2, 3, 8])
-        output3 = ndimage.maximum(input, labels=labels,
-                                  index=[2, 3, 8])
-        output4 = ndimage.minimum_position(input,
-                                           labels=labels, index=[2, 3, 8])
-        output5 = ndimage.maximum_position(input,
-                                           labels=labels, index=[2, 3, 8])
-        assert_array_almost_equal(output1[0], output2)
-        assert_array_almost_equal(output1[1], output3)
-        assert_array_almost_equal(output1[2], output4)
-        assert_array_almost_equal(output1[3], output5)
-
-
-def test_extrema04():
-    labels = [1, 2, 0, 4]
-    for type in types:
-        input = np.array([[5, 4, 2, 5],
-                          [3, 7, 8, 2],
-                          [1, 5, 1, 1]], type)
-        output1 = ndimage.extrema(input, labels, [1, 2])
-        output2 = ndimage.minimum(input, labels, [1, 2])
-        output3 = ndimage.maximum(input, labels, [1, 2])
-        output4 = ndimage.minimum_position(input, labels,
-                                           [1, 2])
-        output5 = ndimage.maximum_position(input, labels,
-                                           [1, 2])
-        assert_array_almost_equal(output1[0], output2)
-        assert_array_almost_equal(output1[1], output3)
-        assert_array_almost_equal(output1[2], output4)
-        assert_array_almost_equal(output1[3], output5)
-
-
-def test_center_of_mass01():
-    expected = [0.0, 0.0]
-    for type in types:
-        input = np.array([[1, 0], [0, 0]], type)
-        output = ndimage.center_of_mass(input)
-        assert_array_almost_equal(output, expected)
-
-
-def test_center_of_mass02():
-    expected = [1, 0]
-    for type in types:
-        input = np.array([[0, 0], [1, 0]], type)
-        output = ndimage.center_of_mass(input)
-        assert_array_almost_equal(output, expected)
-
-
-def test_center_of_mass03():
-    expected = [0, 1]
-    for type in types:
-        input = np.array([[0, 1], [0, 0]], type)
-        output = ndimage.center_of_mass(input)
-        assert_array_almost_equal(output, expected)
-
-
-def test_center_of_mass04():
-    expected = [1, 1]
-    for type in types:
-        input = np.array([[0, 0], [0, 1]], type)
-        output = ndimage.center_of_mass(input)
-        assert_array_almost_equal(output, expected)
-
-
-def test_center_of_mass05():
-    expected = [0.5, 0.5]
-    for type in types:
-        input = np.array([[1, 1], [1, 1]], type)
-        output = ndimage.center_of_mass(input)
-        assert_array_almost_equal(output, expected)
-
-
-def test_center_of_mass06():
-    expected = [0.5, 0.5]
-    input = np.array([[1, 2], [3, 1]], bool)
-    output = ndimage.center_of_mass(input)
-    assert_array_almost_equal(output, expected)
-
-
-def test_center_of_mass07():
-    labels = [1, 0]
-    expected = [0.5, 0.0]
-    input = np.array([[1, 2], [3, 1]], bool)
-    output = ndimage.center_of_mass(input, labels)
-    assert_array_almost_equal(output, expected)
-
-
-def test_center_of_mass08():
-    labels = [1, 2]
-    expected = [0.5, 1.0]
-    input = np.array([[5, 2], [3, 1]], bool)
-    output = ndimage.center_of_mass(input, labels, 2)
-    assert_array_almost_equal(output, expected)
-
-
-def test_center_of_mass09():
-    labels = [1, 2]
-    expected = [(0.5, 0.0), (0.5, 1.0)]
-    input = np.array([[1, 2], [1, 1]], bool)
-    output = ndimage.center_of_mass(input, labels, [1, 2])
-    assert_array_almost_equal(output, expected)
-
-
-def test_histogram01():
-    expected = np.ones(10)
-    input = np.arange(10)
-    output = ndimage.histogram(input, 0, 10, 10)
-    assert_array_almost_equal(output, expected)
-
-
-def test_histogram02():
-    labels = [1, 1, 1, 1, 2, 2, 2, 2]
-    expected = [0, 2, 0, 1, 1]
-    input = np.array([1, 1, 3, 4, 3, 3, 3, 3])
-    output = ndimage.histogram(input, 0, 4, 5, labels, 1)
-    assert_array_almost_equal(output, expected)
-
-
-def test_histogram03():
-    labels = [1, 0, 1, 1, 2, 2, 2, 2]
-    expected1 = [0, 1, 0, 1, 1]
-    expected2 = [0, 0, 0, 3, 0]
-    input = np.array([1, 1, 3, 4, 3, 5, 3, 3])
-    output = ndimage.histogram(input, 0, 4, 5, labels, (1, 2))
-
-    assert_array_almost_equal(output[0], expected1)
-    assert_array_almost_equal(output[1], expected2)
-
-
-def test_stat_funcs_2d():
-    a = np.array([[5, 6, 0, 0, 0], [8, 9, 0, 0, 0], [0, 0, 0, 3, 5]])
-    lbl = np.array([[1, 1, 0, 0, 0], [1, 1, 0, 0, 0], [0, 0, 0, 2, 2]])
-
-    mean = ndimage.mean(a, labels=lbl, index=[1, 2])
-    assert_array_equal(mean, [7.0, 4.0])
-
-    var = ndimage.variance(a, labels=lbl, index=[1, 2])
-    assert_array_equal(var, [2.5, 1.0])
-
-    std = ndimage.standard_deviation(a, labels=lbl, index=[1, 2])
-    assert_array_almost_equal(std, np.sqrt([2.5, 1.0]))
-
-    med = ndimage.median(a, labels=lbl, index=[1, 2])
-    assert_array_equal(med, [7.0, 4.0])
-
-    min = ndimage.minimum(a, labels=lbl, index=[1, 2])
-    assert_array_equal(min, [5, 3])
-
-    max = ndimage.maximum(a, labels=lbl, index=[1, 2])
-    assert_array_equal(max, [9, 5])
-
-
-class TestWatershedIft:
-
-    def test_watershed_ift01(self):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 0, 0, 0, 1, 0],
-                         [0, 1, 0, 0, 0, 1, 0],
-                         [0, 1, 0, 0, 0, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], np.uint8)
-        markers = np.array([[-1, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 1, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0]], np.int8)
-        out = ndimage.watershed_ift(data, markers, structure=[[1, 1, 1],
-                                                              [1, 1, 1],
-                                                              [1, 1, 1]])
-        expected = [[-1, -1, -1, -1, -1, -1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, -1, -1, -1, -1, -1, -1],
-                    [-1, -1, -1, -1, -1, -1, -1]]
-        assert_array_almost_equal(out, expected)
-
-    def test_watershed_ift02(self):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 0, 0, 0, 1, 0],
-                         [0, 1, 0, 0, 0, 1, 0],
-                         [0, 1, 0, 0, 0, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], np.uint8)
-        markers = np.array([[-1, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 1, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0]], np.int8)
-        out = ndimage.watershed_ift(data, markers)
-        expected = [[-1, -1, -1, -1, -1, -1, -1],
-                    [-1, -1, 1, 1, 1, -1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, -1, 1, 1, 1, -1, -1],
-                    [-1, -1, -1, -1, -1, -1, -1],
-                    [-1, -1, -1, -1, -1, -1, -1]]
-        assert_array_almost_equal(out, expected)
-
-    def test_watershed_ift03(self):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 0, 1, 0, 1, 0],
-                         [0, 1, 0, 1, 0, 1, 0],
-                         [0, 1, 0, 1, 0, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], np.uint8)
-        markers = np.array([[0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 2, 0, 3, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, -1]], np.int8)
-        out = ndimage.watershed_ift(data, markers)
-        expected = [[-1, -1, -1, -1, -1, -1, -1],
-                    [-1, -1, 2, -1, 3, -1, -1],
-                    [-1, 2, 2, 3, 3, 3, -1],
-                    [-1, 2, 2, 3, 3, 3, -1],
-                    [-1, 2, 2, 3, 3, 3, -1],
-                    [-1, -1, 2, -1, 3, -1, -1],
-                    [-1, -1, -1, -1, -1, -1, -1]]
-        assert_array_almost_equal(out, expected)
-
-    def test_watershed_ift04(self):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 0, 1, 0, 1, 0],
-                         [0, 1, 0, 1, 0, 1, 0],
-                         [0, 1, 0, 1, 0, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], np.uint8)
-        markers = np.array([[0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 2, 0, 3, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, -1]],
-                           np.int8)
-        out = ndimage.watershed_ift(data, markers,
-                                    structure=[[1, 1, 1],
-                                               [1, 1, 1],
-                                               [1, 1, 1]])
-        expected = [[-1, -1, -1, -1, -1, -1, -1],
-                    [-1, 2, 2, 3, 3, 3, -1],
-                    [-1, 2, 2, 3, 3, 3, -1],
-                    [-1, 2, 2, 3, 3, 3, -1],
-                    [-1, 2, 2, 3, 3, 3, -1],
-                    [-1, 2, 2, 3, 3, 3, -1],
-                    [-1, -1, -1, -1, -1, -1, -1]]
-        assert_array_almost_equal(out, expected)
-
-    def test_watershed_ift05(self):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 0, 1, 0, 1, 0],
-                         [0, 1, 0, 1, 0, 1, 0],
-                         [0, 1, 0, 1, 0, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], np.uint8)
-        markers = np.array([[0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 3, 0, 2, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, -1]],
-                           np.int8)
-        out = ndimage.watershed_ift(data, markers,
-                                    structure=[[1, 1, 1],
-                                               [1, 1, 1],
-                                               [1, 1, 1]])
-        expected = [[-1, -1, -1, -1, -1, -1, -1],
-                    [-1, 3, 3, 2, 2, 2, -1],
-                    [-1, 3, 3, 2, 2, 2, -1],
-                    [-1, 3, 3, 2, 2, 2, -1],
-                    [-1, 3, 3, 2, 2, 2, -1],
-                    [-1, 3, 3, 2, 2, 2, -1],
-                    [-1, -1, -1, -1, -1, -1, -1]]
-        assert_array_almost_equal(out, expected)
-
-    def test_watershed_ift06(self):
-        data = np.array([[0, 1, 0, 0, 0, 1, 0],
-                         [0, 1, 0, 0, 0, 1, 0],
-                         [0, 1, 0, 0, 0, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], np.uint8)
-        markers = np.array([[-1, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 1, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0]], np.int8)
-        out = ndimage.watershed_ift(data, markers,
-                                    structure=[[1, 1, 1],
-                                               [1, 1, 1],
-                                               [1, 1, 1]])
-        expected = [[-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, -1, -1, -1, -1, -1, -1],
-                    [-1, -1, -1, -1, -1, -1, -1]]
-        assert_array_almost_equal(out, expected)
-
-    def test_watershed_ift07(self):
-        shape = (7, 6)
-        data = np.zeros(shape, dtype=np.uint8)
-        data = data.transpose()
-        data[...] = np.array([[0, 1, 0, 0, 0, 1, 0],
-                              [0, 1, 0, 0, 0, 1, 0],
-                              [0, 1, 0, 0, 0, 1, 0],
-                              [0, 1, 1, 1, 1, 1, 0],
-                              [0, 0, 0, 0, 0, 0, 0],
-                              [0, 0, 0, 0, 0, 0, 0]], np.uint8)
-        markers = np.array([[-1, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 1, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0],
-                            [0, 0, 0, 0, 0, 0, 0]], np.int8)
-        out = np.zeros(shape, dtype=np.int16)
-        out = out.transpose()
-        ndimage.watershed_ift(data, markers,
-                              structure=[[1, 1, 1],
-                                         [1, 1, 1],
-                                         [1, 1, 1]],
-                              output=out)
-        expected = [[-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, 1, 1, 1, 1, 1, -1],
-                    [-1, -1, -1, -1, -1, -1, -1],
-                    [-1, -1, -1, -1, -1, -1, -1]]
-        assert_array_almost_equal(out, expected)
-
-    def test_watershed_ift08(self):
-        # Test cost larger than uint8. See gh-10069.
-        data = np.array([[256, 0],
-                         [0, 0]], np.uint16)
-        markers = np.array([[1, 0],
-                            [0, 0]], np.int8)
-        out = ndimage.watershed_ift(data, markers)
-        expected = [[1, 1],
-                    [1, 1]]
-        assert_array_almost_equal(out, expected)
-
-    def test_watershed_ift09(self):
-        # Test large cost. See gh-19575
-        data = np.array([[np.iinfo(np.uint16).max, 0],
-                         [0, 0]], np.uint16)
-        markers = np.array([[1, 0],
-                            [0, 0]], np.int8)
-        out = ndimage.watershed_ift(data, markers)
-        expected = [[1, 1],
-                    [1, 1]]
-        assert_allclose(out, expected)
-
-
-@pytest.mark.parametrize("dt", [np.intc, np.uintc])
-def test_gh_19423(dt):
-    rng = np.random.default_rng(123)
-    max_val = 8
-    image = rng.integers(low=0, high=max_val, size=(10, 12)).astype(dtype=dt)
-    val_idx = ndimage.value_indices(image)
-    assert len(val_idx.keys()) == max_val
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_morphology.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_morphology.py
deleted file mode 100644
index 29094d430edb282999108994297b6fd79003408f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_morphology.py
+++ /dev/null
@@ -1,2394 +0,0 @@
-import numpy as np
-from numpy.testing import (assert_, assert_equal, assert_array_equal,
-                           assert_array_almost_equal)
-import pytest
-from pytest import raises as assert_raises
-
-from scipy import ndimage
-
-from . import types
-
-
-class TestNdimageMorphology:
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_bf01(self, dtype):
-        # brute force (bf) distance transform
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out, ft = ndimage.distance_transform_bf(data, 'euclidean',
-                                                return_indices=True)
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                    [0, 0, 1, 2, 4, 2, 1, 0, 0],
-                    [0, 0, 1, 4, 8, 4, 1, 0, 0],
-                    [0, 0, 1, 2, 4, 2, 1, 0, 0],
-                    [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0]]
-        assert_array_almost_equal(out * out, expected)
-
-        expected = [[[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                     [1, 1, 1, 1, 1, 1, 1, 1, 1],
-                     [2, 2, 2, 2, 1, 2, 2, 2, 2],
-                     [3, 3, 3, 2, 1, 2, 3, 3, 3],
-                     [4, 4, 4, 4, 6, 4, 4, 4, 4],
-                     [5, 5, 6, 6, 7, 6, 6, 5, 5],
-                     [6, 6, 6, 7, 7, 7, 6, 6, 6],
-                     [7, 7, 7, 7, 7, 7, 7, 7, 7],
-                     [8, 8, 8, 8, 8, 8, 8, 8, 8]],
-                    [[0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 2, 4, 6, 6, 7, 8],
-                     [0, 1, 1, 2, 4, 6, 7, 7, 8],
-                     [0, 1, 1, 1, 6, 7, 7, 7, 8],
-                     [0, 1, 2, 2, 4, 6, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8]]]
-        assert_array_almost_equal(ft, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_bf02(self, dtype):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out, ft = ndimage.distance_transform_bf(data, 'cityblock',
-                                                return_indices=True)
-
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                    [0, 0, 1, 2, 2, 2, 1, 0, 0],
-                    [0, 0, 1, 2, 3, 2, 1, 0, 0],
-                    [0, 0, 1, 2, 2, 2, 1, 0, 0],
-                    [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0]]
-        assert_array_almost_equal(out, expected)
-
-        expected = [[[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                     [1, 1, 1, 1, 1, 1, 1, 1, 1],
-                     [2, 2, 2, 2, 1, 2, 2, 2, 2],
-                     [3, 3, 3, 3, 1, 3, 3, 3, 3],
-                     [4, 4, 4, 4, 7, 4, 4, 4, 4],
-                     [5, 5, 6, 7, 7, 7, 6, 5, 5],
-                     [6, 6, 6, 7, 7, 7, 6, 6, 6],
-                     [7, 7, 7, 7, 7, 7, 7, 7, 7],
-                     [8, 8, 8, 8, 8, 8, 8, 8, 8]],
-                    [[0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 2, 4, 6, 6, 7, 8],
-                     [0, 1, 1, 1, 4, 7, 7, 7, 8],
-                     [0, 1, 1, 1, 4, 7, 7, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8]]]
-        assert_array_almost_equal(expected, ft)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_bf03(self, dtype):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out, ft = ndimage.distance_transform_bf(data, 'chessboard',
-                                                return_indices=True)
-
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                    [0, 0, 1, 1, 2, 1, 1, 0, 0],
-                    [0, 0, 1, 2, 2, 2, 1, 0, 0],
-                    [0, 0, 1, 1, 2, 1, 1, 0, 0],
-                    [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0]]
-        assert_array_almost_equal(out, expected)
-
-        expected = [[[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                     [1, 1, 1, 1, 1, 1, 1, 1, 1],
-                     [2, 2, 2, 2, 1, 2, 2, 2, 2],
-                     [3, 3, 4, 2, 2, 2, 4, 3, 3],
-                     [4, 4, 5, 6, 6, 6, 5, 4, 4],
-                     [5, 5, 6, 6, 7, 6, 6, 5, 5],
-                     [6, 6, 6, 7, 7, 7, 6, 6, 6],
-                     [7, 7, 7, 7, 7, 7, 7, 7, 7],
-                     [8, 8, 8, 8, 8, 8, 8, 8, 8]],
-                    [[0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 2, 5, 6, 6, 7, 8],
-                     [0, 1, 1, 2, 6, 6, 7, 7, 8],
-                     [0, 1, 1, 2, 6, 7, 7, 7, 8],
-                     [0, 1, 2, 2, 6, 6, 7, 7, 8],
-                     [0, 1, 2, 4, 5, 6, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8]]]
-        assert_array_almost_equal(ft, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_bf04(self, dtype):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        tdt, tft = ndimage.distance_transform_bf(data, return_indices=1)
-        dts = []
-        fts = []
-        dt = np.zeros(data.shape, dtype=np.float64)
-        ndimage.distance_transform_bf(data, distances=dt)
-        dts.append(dt)
-        ft = ndimage.distance_transform_bf(
-            data, return_distances=False, return_indices=1)
-        fts.append(ft)
-        ft = np.indices(data.shape, dtype=np.int32)
-        ndimage.distance_transform_bf(
-            data, return_distances=False, return_indices=True, indices=ft)
-        fts.append(ft)
-        dt, ft = ndimage.distance_transform_bf(
-            data, return_indices=1)
-        dts.append(dt)
-        fts.append(ft)
-        dt = np.zeros(data.shape, dtype=np.float64)
-        ft = ndimage.distance_transform_bf(
-            data, distances=dt, return_indices=True)
-        dts.append(dt)
-        fts.append(ft)
-        ft = np.indices(data.shape, dtype=np.int32)
-        dt = ndimage.distance_transform_bf(
-            data, return_indices=True, indices=ft)
-        dts.append(dt)
-        fts.append(ft)
-        dt = np.zeros(data.shape, dtype=np.float64)
-        ft = np.indices(data.shape, dtype=np.int32)
-        ndimage.distance_transform_bf(
-            data, distances=dt, return_indices=True, indices=ft)
-        dts.append(dt)
-        fts.append(ft)
-        for dt in dts:
-            assert_array_almost_equal(tdt, dt)
-        for ft in fts:
-            assert_array_almost_equal(tft, ft)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_bf05(self, dtype):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out, ft = ndimage.distance_transform_bf(
-            data, 'euclidean', return_indices=True, sampling=[2, 2])
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 4, 4, 4, 0, 0, 0],
-                    [0, 0, 4, 8, 16, 8, 4, 0, 0],
-                    [0, 0, 4, 16, 32, 16, 4, 0, 0],
-                    [0, 0, 4, 8, 16, 8, 4, 0, 0],
-                    [0, 0, 0, 4, 4, 4, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0]]
-        assert_array_almost_equal(out * out, expected)
-
-        expected = [[[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                     [1, 1, 1, 1, 1, 1, 1, 1, 1],
-                     [2, 2, 2, 2, 1, 2, 2, 2, 2],
-                     [3, 3, 3, 2, 1, 2, 3, 3, 3],
-                     [4, 4, 4, 4, 6, 4, 4, 4, 4],
-                     [5, 5, 6, 6, 7, 6, 6, 5, 5],
-                     [6, 6, 6, 7, 7, 7, 6, 6, 6],
-                     [7, 7, 7, 7, 7, 7, 7, 7, 7],
-                     [8, 8, 8, 8, 8, 8, 8, 8, 8]],
-                    [[0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 2, 4, 6, 6, 7, 8],
-                     [0, 1, 1, 2, 4, 6, 7, 7, 8],
-                     [0, 1, 1, 1, 6, 7, 7, 7, 8],
-                     [0, 1, 2, 2, 4, 6, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8]]]
-        assert_array_almost_equal(ft, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_bf06(self, dtype):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out, ft = ndimage.distance_transform_bf(
-            data, 'euclidean', return_indices=True, sampling=[2, 1])
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 4, 1, 0, 0, 0],
-                    [0, 0, 1, 4, 8, 4, 1, 0, 0],
-                    [0, 0, 1, 4, 9, 4, 1, 0, 0],
-                    [0, 0, 1, 4, 8, 4, 1, 0, 0],
-                    [0, 0, 0, 1, 4, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0, 0]]
-        assert_array_almost_equal(out * out, expected)
-
-        expected = [[[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                     [1, 1, 1, 1, 1, 1, 1, 1, 1],
-                     [2, 2, 2, 2, 2, 2, 2, 2, 2],
-                     [3, 3, 3, 3, 2, 3, 3, 3, 3],
-                     [4, 4, 4, 4, 4, 4, 4, 4, 4],
-                     [5, 5, 5, 5, 6, 5, 5, 5, 5],
-                     [6, 6, 6, 6, 7, 6, 6, 6, 6],
-                     [7, 7, 7, 7, 7, 7, 7, 7, 7],
-                     [8, 8, 8, 8, 8, 8, 8, 8, 8]],
-                    [[0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 2, 6, 6, 6, 7, 8],
-                     [0, 1, 1, 1, 6, 7, 7, 7, 8],
-                     [0, 1, 1, 1, 7, 7, 7, 7, 8],
-                     [0, 1, 1, 1, 6, 7, 7, 7, 8],
-                     [0, 1, 2, 2, 4, 6, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8]]]
-        assert_array_almost_equal(ft, expected)
-
-    def test_distance_transform_bf07(self):
-        # test input validation per discussion on PR #13302
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]])
-        with assert_raises(RuntimeError):
-            ndimage.distance_transform_bf(
-                data, return_distances=False, return_indices=False
-            )
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_cdt01(self, dtype):
-        # chamfer type distance (cdt) transform
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out, ft = ndimage.distance_transform_cdt(
-            data, 'cityblock', return_indices=True)
-        bf = ndimage.distance_transform_bf(data, 'cityblock')
-        assert_array_almost_equal(bf, out)
-
-        expected = [[[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                     [1, 1, 1, 1, 1, 1, 1, 1, 1],
-                     [2, 2, 2, 1, 1, 1, 2, 2, 2],
-                     [3, 3, 2, 1, 1, 1, 2, 3, 3],
-                     [4, 4, 4, 4, 1, 4, 4, 4, 4],
-                     [5, 5, 5, 5, 7, 7, 6, 5, 5],
-                     [6, 6, 6, 6, 7, 7, 6, 6, 6],
-                     [7, 7, 7, 7, 7, 7, 7, 7, 7],
-                     [8, 8, 8, 8, 8, 8, 8, 8, 8]],
-                    [[0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 1, 1, 4, 7, 7, 7, 8],
-                     [0, 1, 1, 1, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 2, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8]]]
-        assert_array_almost_equal(ft, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_cdt02(self, dtype):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out, ft = ndimage.distance_transform_cdt(data, 'chessboard',
-                                                 return_indices=True)
-        bf = ndimage.distance_transform_bf(data, 'chessboard')
-        assert_array_almost_equal(bf, out)
-
-        expected = [[[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                     [1, 1, 1, 1, 1, 1, 1, 1, 1],
-                     [2, 2, 2, 1, 1, 1, 2, 2, 2],
-                     [3, 3, 2, 2, 1, 2, 2, 3, 3],
-                     [4, 4, 3, 2, 2, 2, 3, 4, 4],
-                     [5, 5, 4, 6, 7, 6, 4, 5, 5],
-                     [6, 6, 6, 6, 7, 7, 6, 6, 6],
-                     [7, 7, 7, 7, 7, 7, 7, 7, 7],
-                     [8, 8, 8, 8, 8, 8, 8, 8, 8]],
-                    [[0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 2, 3, 4, 6, 7, 8],
-                     [0, 1, 1, 2, 2, 6, 6, 7, 8],
-                     [0, 1, 1, 1, 2, 6, 7, 7, 8],
-                     [0, 1, 1, 2, 6, 6, 7, 7, 8],
-                     [0, 1, 2, 2, 5, 6, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8],
-                     [0, 1, 2, 3, 4, 5, 6, 7, 8]]]
-        assert_array_almost_equal(ft, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_cdt03(self, dtype):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        tdt, tft = ndimage.distance_transform_cdt(data, return_indices=True)
-        dts = []
-        fts = []
-        dt = np.zeros(data.shape, dtype=np.int32)
-        ndimage.distance_transform_cdt(data, distances=dt)
-        dts.append(dt)
-        ft = ndimage.distance_transform_cdt(
-            data, return_distances=False, return_indices=True)
-        fts.append(ft)
-        ft = np.indices(data.shape, dtype=np.int32)
-        ndimage.distance_transform_cdt(
-            data, return_distances=False, return_indices=True, indices=ft)
-        fts.append(ft)
-        dt, ft = ndimage.distance_transform_cdt(
-            data, return_indices=True)
-        dts.append(dt)
-        fts.append(ft)
-        dt = np.zeros(data.shape, dtype=np.int32)
-        ft = ndimage.distance_transform_cdt(
-            data, distances=dt, return_indices=True)
-        dts.append(dt)
-        fts.append(ft)
-        ft = np.indices(data.shape, dtype=np.int32)
-        dt = ndimage.distance_transform_cdt(
-            data, return_indices=True, indices=ft)
-        dts.append(dt)
-        fts.append(ft)
-        dt = np.zeros(data.shape, dtype=np.int32)
-        ft = np.indices(data.shape, dtype=np.int32)
-        ndimage.distance_transform_cdt(data, distances=dt,
-                                       return_indices=True, indices=ft)
-        dts.append(dt)
-        fts.append(ft)
-        for dt in dts:
-            assert_array_almost_equal(tdt, dt)
-        for ft in fts:
-            assert_array_almost_equal(tft, ft)
-
-    def test_distance_transform_cdt04(self):
-        # test input validation per discussion on PR #13302
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]])
-        indices_out = np.zeros((data.ndim,) + data.shape, dtype=np.int32)
-        with assert_raises(RuntimeError):
-            ndimage.distance_transform_bf(
-                data,
-                return_distances=True,
-                return_indices=False,
-                indices=indices_out
-            )
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_cdt05(self, dtype):
-        # test custom metric type per discussion on issue #17381
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        metric_arg = np.ones((3, 3))
-        actual = ndimage.distance_transform_cdt(data, metric=metric_arg)
-        assert actual.sum() == -21
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_edt01(self, dtype):
-        # euclidean distance transform (edt)
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out, ft = ndimage.distance_transform_edt(data, return_indices=True)
-        bf = ndimage.distance_transform_bf(data, 'euclidean')
-        assert_array_almost_equal(bf, out)
-
-        dt = ft - np.indices(ft.shape[1:], dtype=ft.dtype)
-        dt = dt.astype(np.float64)
-        np.multiply(dt, dt, dt)
-        dt = np.add.reduce(dt, axis=0)
-        np.sqrt(dt, dt)
-
-        assert_array_almost_equal(bf, dt)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_edt02(self, dtype):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        tdt, tft = ndimage.distance_transform_edt(data, return_indices=True)
-        dts = []
-        fts = []
-        dt = np.zeros(data.shape, dtype=np.float64)
-        ndimage.distance_transform_edt(data, distances=dt)
-        dts.append(dt)
-        ft = ndimage.distance_transform_edt(
-            data, return_distances=0, return_indices=True)
-        fts.append(ft)
-        ft = np.indices(data.shape, dtype=np.int32)
-        ndimage.distance_transform_edt(
-            data, return_distances=False, return_indices=True, indices=ft)
-        fts.append(ft)
-        dt, ft = ndimage.distance_transform_edt(
-            data, return_indices=True)
-        dts.append(dt)
-        fts.append(ft)
-        dt = np.zeros(data.shape, dtype=np.float64)
-        ft = ndimage.distance_transform_edt(
-            data, distances=dt, return_indices=True)
-        dts.append(dt)
-        fts.append(ft)
-        ft = np.indices(data.shape, dtype=np.int32)
-        dt = ndimage.distance_transform_edt(
-            data, return_indices=True, indices=ft)
-        dts.append(dt)
-        fts.append(ft)
-        dt = np.zeros(data.shape, dtype=np.float64)
-        ft = np.indices(data.shape, dtype=np.int32)
-        ndimage.distance_transform_edt(
-            data, distances=dt, return_indices=True, indices=ft)
-        dts.append(dt)
-        fts.append(ft)
-        for dt in dts:
-            assert_array_almost_equal(tdt, dt)
-        for ft in fts:
-            assert_array_almost_equal(tft, ft)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_edt03(self, dtype):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        ref = ndimage.distance_transform_bf(data, 'euclidean', sampling=[2, 2])
-        out = ndimage.distance_transform_edt(data, sampling=[2, 2])
-        assert_array_almost_equal(ref, out)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_distance_transform_edt4(self, dtype):
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        ref = ndimage.distance_transform_bf(data, 'euclidean', sampling=[2, 1])
-        out = ndimage.distance_transform_edt(data, sampling=[2, 1])
-        assert_array_almost_equal(ref, out)
-
-    def test_distance_transform_edt5(self):
-        # Ticket #954 regression test
-        out = ndimage.distance_transform_edt(False)
-        assert_array_almost_equal(out, [0.])
-
-    def test_distance_transform_edt6(self):
-        # test input validation per discussion on PR #13302
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0, 0]])
-        distances_out = np.zeros(data.shape, dtype=np.float64)
-        with assert_raises(RuntimeError):
-            ndimage.distance_transform_bf(
-                data,
-                return_indices=True,
-                return_distances=False,
-                distances=distances_out
-            )
-
-    def test_generate_structure01(self):
-        struct = ndimage.generate_binary_structure(0, 1)
-        assert_array_almost_equal(struct, 1)
-
-    def test_generate_structure02(self):
-        struct = ndimage.generate_binary_structure(1, 1)
-        assert_array_almost_equal(struct, [1, 1, 1])
-
-    def test_generate_structure03(self):
-        struct = ndimage.generate_binary_structure(2, 1)
-        assert_array_almost_equal(struct, [[0, 1, 0],
-                                           [1, 1, 1],
-                                           [0, 1, 0]])
-
-    def test_generate_structure04(self):
-        struct = ndimage.generate_binary_structure(2, 2)
-        assert_array_almost_equal(struct, [[1, 1, 1],
-                                           [1, 1, 1],
-                                           [1, 1, 1]])
-
-    def test_iterate_structure01(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        out = ndimage.iterate_structure(struct, 2)
-        assert_array_almost_equal(out, [[0, 0, 1, 0, 0],
-                                        [0, 1, 1, 1, 0],
-                                        [1, 1, 1, 1, 1],
-                                        [0, 1, 1, 1, 0],
-                                        [0, 0, 1, 0, 0]])
-
-    def test_iterate_structure02(self):
-        struct = [[0, 1],
-                  [1, 1],
-                  [0, 1]]
-        out = ndimage.iterate_structure(struct, 2)
-        assert_array_almost_equal(out, [[0, 0, 1],
-                                        [0, 1, 1],
-                                        [1, 1, 1],
-                                        [0, 1, 1],
-                                        [0, 0, 1]])
-
-    def test_iterate_structure03(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        out = ndimage.iterate_structure(struct, 2, 1)
-        expected = [[0, 0, 1, 0, 0],
-                    [0, 1, 1, 1, 0],
-                    [1, 1, 1, 1, 1],
-                    [0, 1, 1, 1, 0],
-                    [0, 0, 1, 0, 0]]
-        assert_array_almost_equal(out[0], expected)
-        assert_equal(out[1], [2, 2])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion01(self, dtype):
-        data = np.ones([], dtype)
-        out = ndimage.binary_erosion(data)
-        assert_array_almost_equal(out, 1)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion02(self, dtype):
-        data = np.ones([], dtype)
-        out = ndimage.binary_erosion(data, border_value=1)
-        assert_array_almost_equal(out, 1)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion03(self, dtype):
-        data = np.ones([1], dtype)
-        out = ndimage.binary_erosion(data)
-        assert_array_almost_equal(out, [0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion04(self, dtype):
-        data = np.ones([1], dtype)
-        out = ndimage.binary_erosion(data, border_value=1)
-        assert_array_almost_equal(out, [1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion05(self, dtype):
-        data = np.ones([3], dtype)
-        out = ndimage.binary_erosion(data)
-        assert_array_almost_equal(out, [0, 1, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion06(self, dtype):
-        data = np.ones([3], dtype)
-        out = ndimage.binary_erosion(data, border_value=1)
-        assert_array_almost_equal(out, [1, 1, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion07(self, dtype):
-        data = np.ones([5], dtype)
-        out = ndimage.binary_erosion(data)
-        assert_array_almost_equal(out, [0, 1, 1, 1, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion08(self, dtype):
-        data = np.ones([5], dtype)
-        out = ndimage.binary_erosion(data, border_value=1)
-        assert_array_almost_equal(out, [1, 1, 1, 1, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion09(self, dtype):
-        data = np.ones([5], dtype)
-        data[2] = 0
-        out = ndimage.binary_erosion(data)
-        assert_array_almost_equal(out, [0, 0, 0, 0, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion10(self, dtype):
-        data = np.ones([5], dtype)
-        data[2] = 0
-        out = ndimage.binary_erosion(data, border_value=1)
-        assert_array_almost_equal(out, [1, 0, 0, 0, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion11(self, dtype):
-        data = np.ones([5], dtype)
-        data[2] = 0
-        struct = [1, 0, 1]
-        out = ndimage.binary_erosion(data, struct, border_value=1)
-        assert_array_almost_equal(out, [1, 0, 1, 0, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion12(self, dtype):
-        data = np.ones([5], dtype)
-        data[2] = 0
-        struct = [1, 0, 1]
-        out = ndimage.binary_erosion(data, struct, border_value=1, origin=-1)
-        assert_array_almost_equal(out, [0, 1, 0, 1, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion13(self, dtype):
-        data = np.ones([5], dtype)
-        data[2] = 0
-        struct = [1, 0, 1]
-        out = ndimage.binary_erosion(data, struct, border_value=1, origin=1)
-        assert_array_almost_equal(out, [1, 1, 0, 1, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion14(self, dtype):
-        data = np.ones([5], dtype)
-        data[2] = 0
-        struct = [1, 1]
-        out = ndimage.binary_erosion(data, struct, border_value=1)
-        assert_array_almost_equal(out, [1, 1, 0, 0, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion15(self, dtype):
-        data = np.ones([5], dtype)
-        data[2] = 0
-        struct = [1, 1]
-        out = ndimage.binary_erosion(data, struct, border_value=1, origin=-1)
-        assert_array_almost_equal(out, [1, 0, 0, 1, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion16(self, dtype):
-        data = np.ones([1, 1], dtype)
-        out = ndimage.binary_erosion(data, border_value=1)
-        assert_array_almost_equal(out, [[1]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion17(self, dtype):
-        data = np.ones([1, 1], dtype)
-        out = ndimage.binary_erosion(data)
-        assert_array_almost_equal(out, [[0]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion18(self, dtype):
-        data = np.ones([1, 3], dtype)
-        out = ndimage.binary_erosion(data)
-        assert_array_almost_equal(out, [[0, 0, 0]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion19(self, dtype):
-        data = np.ones([1, 3], dtype)
-        out = ndimage.binary_erosion(data, border_value=1)
-        assert_array_almost_equal(out, [[1, 1, 1]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion20(self, dtype):
-        data = np.ones([3, 3], dtype)
-        out = ndimage.binary_erosion(data)
-        assert_array_almost_equal(out, [[0, 0, 0],
-                                        [0, 1, 0],
-                                        [0, 0, 0]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion21(self, dtype):
-        data = np.ones([3, 3], dtype)
-        out = ndimage.binary_erosion(data, border_value=1)
-        assert_array_almost_equal(out, [[1, 1, 1],
-                                        [1, 1, 1],
-                                        [1, 1, 1]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion22(self, dtype):
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 1, 1, 0, 0, 0],
-                    [0, 0, 1, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 1, 1],
-                         [0, 0, 1, 1, 1, 1, 1, 1],
-                         [0, 0, 1, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 0, 0, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_erosion(data, border_value=1)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion23(self, dtype):
-        struct = ndimage.generate_binary_structure(2, 2)
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 1, 1],
-                         [0, 0, 1, 1, 1, 1, 1, 1],
-                         [0, 0, 1, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 0, 0, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_erosion(data, struct, border_value=1)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion24(self, dtype):
-        struct = [[0, 1],
-                  [1, 1]]
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 1, 1, 1],
-                    [0, 0, 0, 1, 1, 1, 0, 0],
-                    [0, 0, 1, 1, 1, 1, 0, 0],
-                    [0, 0, 1, 0, 0, 0, 1, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 1, 1],
-                         [0, 0, 1, 1, 1, 1, 1, 1],
-                         [0, 0, 1, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 0, 0, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_erosion(data, struct, border_value=1)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion25(self, dtype):
-        struct = [[0, 1, 0],
-                  [1, 0, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0, 0],
-                    [0, 0, 1, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 1, 1],
-                         [0, 0, 1, 1, 1, 0, 1, 1],
-                         [0, 0, 1, 0, 1, 1, 0, 0],
-                         [0, 1, 0, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 0, 0, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_erosion(data, struct, border_value=1)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_erosion26(self, dtype):
-        struct = [[0, 1, 0],
-                  [1, 0, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 1],
-                    [0, 0, 0, 0, 1, 0, 0, 1],
-                    [0, 0, 1, 0, 0, 0, 0, 0],
-                    [0, 1, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 1]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 1, 1],
-                         [0, 0, 1, 1, 1, 0, 1, 1],
-                         [0, 0, 1, 0, 1, 1, 0, 0],
-                         [0, 1, 0, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 0, 0, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_erosion(data, struct, border_value=1,
-                                     origin=(-1, -1))
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion27(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], bool)
-        out = ndimage.binary_erosion(data, struct, border_value=1,
-                                     iterations=2)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion28(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], bool)
-        out = np.zeros(data.shape, bool)
-        ndimage.binary_erosion(data, struct, border_value=1,
-                               iterations=2, output=out)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion29(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [1, 1, 1, 1, 1, 1, 1],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0]], bool)
-        out = ndimage.binary_erosion(data, struct,
-                                     border_value=1, iterations=3)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion30(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [1, 1, 1, 1, 1, 1, 1],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0]], bool)
-        out = np.zeros(data.shape, bool)
-        ndimage.binary_erosion(data, struct, border_value=1,
-                               iterations=3, output=out)
-        assert_array_almost_equal(out, expected)
-
-        # test with output memory overlap
-        ndimage.binary_erosion(data, struct, border_value=1,
-                               iterations=3, output=data)
-        assert_array_almost_equal(data, expected)
-
-    def test_binary_erosion31(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 1, 0, 0, 0, 0],
-                    [0, 1, 1, 1, 0, 0, 0],
-                    [1, 1, 1, 1, 1, 0, 1],
-                    [0, 1, 1, 1, 0, 0, 0],
-                    [0, 0, 1, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 1, 0, 0, 0, 1]]
-        data = np.array([[0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [1, 1, 1, 1, 1, 1, 1],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0]], bool)
-        out = np.zeros(data.shape, bool)
-        ndimage.binary_erosion(data, struct, border_value=1,
-                               iterations=1, output=out, origin=(-1, -1))
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion32(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], bool)
-        out = ndimage.binary_erosion(data, struct,
-                                     border_value=1, iterations=2)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion33(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 1, 1],
-                    [0, 0, 0, 0, 0, 0, 1],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0]]
-        mask = [[1, 1, 1, 1, 1, 0, 0],
-                [1, 1, 1, 1, 1, 1, 0],
-                [1, 1, 1, 1, 1, 1, 1],
-                [1, 1, 1, 1, 1, 1, 1],
-                [1, 1, 1, 1, 1, 1, 1],
-                [1, 1, 1, 1, 1, 1, 1],
-                [1, 1, 1, 1, 1, 1, 1]]
-        data = np.array([[0, 0, 0, 0, 0, 1, 1],
-                         [0, 0, 0, 1, 0, 0, 1],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], bool)
-        out = ndimage.binary_erosion(data, struct,
-                                     border_value=1, mask=mask, iterations=-1)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion34(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 1, 1, 1, 1, 1, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0]]
-        mask = [[0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 1, 1, 1, 0, 0],
-                [0, 0, 1, 0, 1, 0, 0],
-                [0, 0, 1, 1, 1, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0]], bool)
-        out = ndimage.binary_erosion(data, struct,
-                                     border_value=1, mask=mask)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion35(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        mask = [[0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 1, 1, 1, 0, 0],
-                [0, 0, 1, 0, 1, 0, 0],
-                [0, 0, 1, 1, 1, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [1, 1, 1, 1, 1, 1, 1],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0]], bool)
-        tmp = [[0, 0, 1, 0, 0, 0, 0],
-               [0, 1, 1, 1, 0, 0, 0],
-               [1, 1, 1, 1, 1, 0, 1],
-               [0, 1, 1, 1, 0, 0, 0],
-               [0, 0, 1, 0, 0, 0, 0],
-               [0, 0, 0, 0, 0, 0, 0],
-               [0, 0, 1, 0, 0, 0, 1]]
-        expected = np.logical_and(tmp, mask)
-        tmp = np.logical_and(data, np.logical_not(mask))
-        expected = np.logical_or(expected, tmp)
-        out = np.zeros(data.shape, bool)
-        ndimage.binary_erosion(data, struct, border_value=1,
-                               iterations=1, output=out,
-                               origin=(-1, -1), mask=mask)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion36(self):
-        struct = [[0, 1, 0],
-                  [1, 0, 1],
-                  [0, 1, 0]]
-        mask = [[0, 0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 1, 1, 1, 0, 0, 0],
-                [0, 0, 1, 0, 1, 0, 0, 0],
-                [0, 0, 1, 1, 1, 0, 0, 0],
-                [0, 0, 1, 1, 1, 0, 0, 0],
-                [0, 0, 1, 1, 1, 0, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0, 0]]
-        tmp = [[0, 0, 0, 0, 0, 0, 0, 0],
-               [0, 0, 0, 0, 0, 0, 0, 1],
-               [0, 0, 0, 0, 1, 0, 0, 1],
-               [0, 0, 1, 0, 0, 0, 0, 0],
-               [0, 1, 0, 0, 1, 0, 0, 0],
-               [0, 0, 0, 0, 0, 0, 0, 0],
-               [0, 0, 0, 0, 0, 0, 0, 0],
-               [0, 0, 0, 0, 0, 0, 0, 1]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 1, 1],
-                         [0, 0, 1, 1, 1, 0, 1, 1],
-                         [0, 0, 1, 0, 1, 1, 0, 0],
-                         [0, 1, 0, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 0, 0, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]])
-        expected = np.logical_and(tmp, mask)
-        tmp = np.logical_and(data, np.logical_not(mask))
-        expected = np.logical_or(expected, tmp)
-        out = ndimage.binary_erosion(data, struct, mask=mask,
-                                     border_value=1, origin=(-1, -1))
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion37(self):
-        a = np.array([[1, 0, 1],
-                      [0, 1, 0],
-                      [1, 0, 1]], dtype=bool)
-        b = np.zeros_like(a)
-        out = ndimage.binary_erosion(a, structure=a, output=b, iterations=0,
-                                     border_value=True, brute_force=True)
-        assert_(out is b)
-        assert_array_equal(
-            ndimage.binary_erosion(a, structure=a, iterations=0,
-                                   border_value=True),
-            b)
-
-    def test_binary_erosion38(self):
-        data = np.array([[1, 0, 1],
-                        [0, 1, 0],
-                        [1, 0, 1]], dtype=bool)
-        iterations = 2.0
-        with assert_raises(TypeError):
-            _ = ndimage.binary_erosion(data, iterations=iterations)
-
-    def test_binary_erosion39(self):
-        iterations = np.int32(3)
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [1, 1, 1, 1, 1, 1, 1],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0]], bool)
-        out = np.zeros(data.shape, bool)
-        ndimage.binary_erosion(data, struct, border_value=1,
-                               iterations=iterations, output=out)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_erosion40(self):
-        iterations = np.int64(3)
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 1, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [1, 1, 1, 1, 1, 1, 1],
-                         [0, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 1, 0, 0, 0]], bool)
-        out = np.zeros(data.shape, bool)
-        ndimage.binary_erosion(data, struct, border_value=1,
-                               iterations=iterations, output=out)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation01(self, dtype):
-        data = np.ones([], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, 1)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation02(self, dtype):
-        data = np.zeros([], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, 0)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation03(self, dtype):
-        data = np.ones([1], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation04(self, dtype):
-        data = np.zeros([1], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation05(self, dtype):
-        data = np.ones([3], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [1, 1, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation06(self, dtype):
-        data = np.zeros([3], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [0, 0, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation07(self, dtype):
-        data = np.zeros([3], dtype)
-        data[1] = 1
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [1, 1, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation08(self, dtype):
-        data = np.zeros([5], dtype)
-        data[1] = 1
-        data[3] = 1
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [1, 1, 1, 1, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation09(self, dtype):
-        data = np.zeros([5], dtype)
-        data[1] = 1
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [1, 1, 1, 0, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation10(self, dtype):
-        data = np.zeros([5], dtype)
-        data[1] = 1
-        out = ndimage.binary_dilation(data, origin=-1)
-        assert_array_almost_equal(out, [0, 1, 1, 1, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation11(self, dtype):
-        data = np.zeros([5], dtype)
-        data[1] = 1
-        out = ndimage.binary_dilation(data, origin=1)
-        assert_array_almost_equal(out, [1, 1, 0, 0, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation12(self, dtype):
-        data = np.zeros([5], dtype)
-        data[1] = 1
-        struct = [1, 0, 1]
-        out = ndimage.binary_dilation(data, struct)
-        assert_array_almost_equal(out, [1, 0, 1, 0, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation13(self, dtype):
-        data = np.zeros([5], dtype)
-        data[1] = 1
-        struct = [1, 0, 1]
-        out = ndimage.binary_dilation(data, struct, border_value=1)
-        assert_array_almost_equal(out, [1, 0, 1, 0, 1])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation14(self, dtype):
-        data = np.zeros([5], dtype)
-        data[1] = 1
-        struct = [1, 0, 1]
-        out = ndimage.binary_dilation(data, struct, origin=-1)
-        assert_array_almost_equal(out, [0, 1, 0, 1, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation15(self, dtype):
-        data = np.zeros([5], dtype)
-        data[1] = 1
-        struct = [1, 0, 1]
-        out = ndimage.binary_dilation(data, struct,
-                                      origin=-1, border_value=1)
-        assert_array_almost_equal(out, [1, 1, 0, 1, 0])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation16(self, dtype):
-        data = np.ones([1, 1], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [[1]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation17(self, dtype):
-        data = np.zeros([1, 1], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [[0]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation18(self, dtype):
-        data = np.ones([1, 3], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [[1, 1, 1]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation19(self, dtype):
-        data = np.ones([3, 3], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [[1, 1, 1],
-                                        [1, 1, 1],
-                                        [1, 1, 1]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation20(self, dtype):
-        data = np.zeros([3, 3], dtype)
-        data[1, 1] = 1
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, [[0, 1, 0],
-                                        [1, 1, 1],
-                                        [0, 1, 0]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation21(self, dtype):
-        struct = ndimage.generate_binary_structure(2, 2)
-        data = np.zeros([3, 3], dtype)
-        data[1, 1] = 1
-        out = ndimage.binary_dilation(data, struct)
-        assert_array_almost_equal(out, [[1, 1, 1],
-                                        [1, 1, 1],
-                                        [1, 1, 1]])
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation22(self, dtype):
-        expected = [[0, 1, 0, 0, 0, 0, 0, 0],
-                    [1, 1, 1, 0, 0, 0, 0, 0],
-                    [0, 1, 0, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 1, 1, 1, 1, 0],
-                    [0, 0, 1, 1, 1, 1, 0, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 0, 1, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_dilation(data)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation23(self, dtype):
-        expected = [[1, 1, 1, 1, 1, 1, 1, 1],
-                    [1, 1, 1, 0, 0, 0, 0, 1],
-                    [1, 1, 0, 0, 0, 1, 0, 1],
-                    [1, 0, 0, 1, 1, 1, 1, 1],
-                    [1, 0, 1, 1, 1, 1, 0, 1],
-                    [1, 1, 1, 1, 1, 1, 1, 1],
-                    [1, 0, 1, 0, 0, 1, 0, 1],
-                    [1, 1, 1, 1, 1, 1, 1, 1]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_dilation(data, border_value=1)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation24(self, dtype):
-        expected = [[1, 1, 0, 0, 0, 0, 0, 0],
-                    [1, 0, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 1, 1, 1, 1, 0, 0],
-                    [0, 1, 1, 1, 1, 0, 0, 0],
-                    [1, 1, 1, 1, 1, 1, 0, 0],
-                    [0, 1, 0, 0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_dilation(data, origin=(1, 1))
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation25(self, dtype):
-        expected = [[1, 1, 0, 0, 0, 0, 1, 1],
-                    [1, 0, 0, 0, 1, 0, 1, 1],
-                    [0, 0, 1, 1, 1, 1, 1, 1],
-                    [0, 1, 1, 1, 1, 0, 1, 1],
-                    [1, 1, 1, 1, 1, 1, 1, 1],
-                    [0, 1, 0, 0, 1, 0, 1, 1],
-                    [1, 1, 1, 1, 1, 1, 1, 1],
-                    [1, 1, 1, 1, 1, 1, 1, 1]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_dilation(data, origin=(1, 1), border_value=1)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation26(self, dtype):
-        struct = ndimage.generate_binary_structure(2, 2)
-        expected = [[1, 1, 1, 0, 0, 0, 0, 0],
-                    [1, 1, 1, 0, 0, 0, 0, 0],
-                    [1, 1, 1, 0, 1, 1, 1, 0],
-                    [0, 0, 1, 1, 1, 1, 1, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_dilation(data, struct)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation27(self, dtype):
-        struct = [[0, 1],
-                  [1, 1]]
-        expected = [[0, 1, 0, 0, 0, 0, 0, 0],
-                    [1, 1, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 1, 1, 1, 0, 0],
-                    [0, 0, 1, 1, 1, 1, 0, 0],
-                    [0, 1, 1, 0, 1, 1, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_dilation(data, struct)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation28(self, dtype):
-        expected = [[1, 1, 1, 1],
-                    [1, 0, 0, 1],
-                    [1, 0, 0, 1],
-                    [1, 1, 1, 1]]
-        data = np.array([[0, 0, 0, 0],
-                         [0, 0, 0, 0],
-                         [0, 0, 0, 0],
-                         [0, 0, 0, 0]], dtype)
-        out = ndimage.binary_dilation(data, border_value=1)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_dilation29(self):
-        struct = [[0, 1],
-                  [1, 1]]
-        expected = [[0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 0],
-                    [0, 0, 1, 1, 0],
-                    [0, 1, 1, 1, 0],
-                    [0, 0, 0, 0, 0]]
-
-        data = np.array([[0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 0],
-                         [0, 0, 0, 0, 0]], bool)
-        out = ndimage.binary_dilation(data, struct, iterations=2)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_dilation30(self):
-        struct = [[0, 1],
-                  [1, 1]]
-        expected = [[0, 0, 0, 0, 0],
-                    [0, 0, 0, 1, 0],
-                    [0, 0, 1, 1, 0],
-                    [0, 1, 1, 1, 0],
-                    [0, 0, 0, 0, 0]]
-
-        data = np.array([[0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 0],
-                         [0, 0, 0, 0, 0]], bool)
-        out = np.zeros(data.shape, bool)
-        ndimage.binary_dilation(data, struct, iterations=2, output=out)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_dilation31(self):
-        struct = [[0, 1],
-                  [1, 1]]
-        expected = [[0, 0, 0, 1, 0],
-                    [0, 0, 1, 1, 0],
-                    [0, 1, 1, 1, 0],
-                    [1, 1, 1, 1, 0],
-                    [0, 0, 0, 0, 0]]
-
-        data = np.array([[0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 0],
-                         [0, 0, 0, 0, 0]], bool)
-        out = ndimage.binary_dilation(data, struct, iterations=3)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_dilation32(self):
-        struct = [[0, 1],
-                  [1, 1]]
-        expected = [[0, 0, 0, 1, 0],
-                    [0, 0, 1, 1, 0],
-                    [0, 1, 1, 1, 0],
-                    [1, 1, 1, 1, 0],
-                    [0, 0, 0, 0, 0]]
-
-        data = np.array([[0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 0],
-                         [0, 0, 0, 0, 0]], bool)
-        out = np.zeros(data.shape, bool)
-        ndimage.binary_dilation(data, struct, iterations=3, output=out)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_dilation33(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = np.array([[0, 1, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 0, 0, 1, 1, 0, 0],
-                             [0, 0, 1, 1, 1, 0, 0, 0],
-                             [0, 1, 1, 0, 1, 1, 0, 0],
-                             [0, 0, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        mask = np.array([[0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 1, 0],
-                         [0, 0, 0, 0, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 1, 1, 0, 1, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        data = np.array([[0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                           [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                           [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-
-        out = ndimage.binary_dilation(data, struct, iterations=-1,
-                                      mask=mask, border_value=0)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_dilation34(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 1, 0, 0, 0, 0, 0, 0],
-                    [0, 1, 1, 0, 0, 0, 0, 0],
-                    [0, 0, 1, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        mask = np.array([[0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 1, 0, 0, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        data = np.zeros(mask.shape, bool)
-        out = ndimage.binary_dilation(data, struct, iterations=-1,
-                                      mask=mask, border_value=1)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_dilation35(self, dtype):
-        tmp = [[1, 1, 0, 0, 0, 0, 1, 1],
-               [1, 0, 0, 0, 1, 0, 1, 1],
-               [0, 0, 1, 1, 1, 1, 1, 1],
-               [0, 1, 1, 1, 1, 0, 1, 1],
-               [1, 1, 1, 1, 1, 1, 1, 1],
-               [0, 1, 0, 0, 1, 0, 1, 1],
-               [1, 1, 1, 1, 1, 1, 1, 1],
-               [1, 1, 1, 1, 1, 1, 1, 1]]
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]])
-        mask = [[0, 0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 1, 1, 1, 1, 0, 0],
-                [0, 0, 1, 1, 1, 1, 0, 0],
-                [0, 0, 1, 1, 1, 1, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0, 0],
-                [0, 0, 0, 0, 0, 0, 0, 0]]
-        expected = np.logical_and(tmp, mask)
-        tmp = np.logical_and(data, np.logical_not(mask))
-        expected = np.logical_or(expected, tmp)
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_dilation(data, mask=mask,
-                                      origin=(1, 1), border_value=1)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_propagation01(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = np.array([[0, 1, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 0, 0, 1, 1, 0, 0],
-                             [0, 0, 1, 1, 1, 0, 0, 0],
-                             [0, 1, 1, 0, 1, 1, 0, 0],
-                             [0, 0, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        mask = np.array([[0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 1, 0],
-                         [0, 0, 0, 0, 1, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 0, 0, 0],
-                         [0, 1, 1, 0, 1, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        data = np.array([[0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-
-        out = ndimage.binary_propagation(data, struct,
-                                         mask=mask, border_value=0)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_propagation02(self):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 1, 0, 0, 0, 0, 0, 0],
-                    [0, 1, 1, 0, 0, 0, 0, 0],
-                    [0, 0, 1, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        mask = np.array([[0, 1, 0, 0, 0, 0, 0, 0],
-                         [0, 1, 1, 0, 0, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        data = np.zeros(mask.shape, bool)
-        out = ndimage.binary_propagation(data, struct,
-                                         mask=mask, border_value=1)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_opening01(self, dtype):
-        expected = [[0, 1, 0, 0, 0, 0, 0, 0],
-                    [1, 1, 1, 0, 0, 0, 0, 0],
-                    [0, 1, 0, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 0, 1, 1, 1, 0],
-                    [0, 0, 1, 0, 0, 1, 0, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 0, 1, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 1, 0, 0, 0, 0, 0, 0],
-                         [1, 1, 1, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 0, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_opening(data)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_opening02(self, dtype):
-        struct = ndimage.generate_binary_structure(2, 2)
-        expected = [[1, 1, 1, 0, 0, 0, 0, 0],
-                    [1, 1, 1, 0, 0, 0, 0, 0],
-                    [1, 1, 1, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 1, 1, 1, 0, 0, 0, 0],
-                    [0, 1, 1, 1, 0, 0, 0, 0],
-                    [0, 1, 1, 1, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[1, 1, 1, 0, 0, 0, 0, 0],
-                         [1, 1, 1, 0, 0, 0, 0, 0],
-                         [1, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 1, 0, 1, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_opening(data, struct)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_closing01(self, dtype):
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 1, 1, 0, 0, 0, 0, 0],
-                    [0, 1, 1, 1, 0, 1, 0, 0],
-                    [0, 0, 1, 1, 1, 1, 1, 0],
-                    [0, 0, 1, 1, 1, 1, 0, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 0, 1, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 1, 0, 0, 0, 0, 0, 0],
-                         [1, 1, 1, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 0, 1, 0, 0],
-                         [0, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_closing(data)
-        assert_array_almost_equal(out, expected)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_binary_closing02(self, dtype):
-        struct = ndimage.generate_binary_structure(2, 2)
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 1, 1, 0, 0, 0, 0, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 1, 1, 1, 1, 1, 1, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[1, 1, 1, 0, 0, 0, 0, 0],
-                         [1, 1, 1, 0, 0, 0, 0, 0],
-                         [1, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 1, 0, 1, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_closing(data, struct)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_fill_holes01(self):
-        expected = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 1, 1, 1, 1, 0, 0],
-                             [0, 0, 1, 1, 1, 1, 0, 0],
-                             [0, 0, 1, 1, 1, 1, 0, 0],
-                             [0, 0, 1, 1, 1, 1, 0, 0],
-                             [0, 0, 1, 1, 1, 1, 0, 0],
-                             [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 1, 1, 1, 1, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        out = ndimage.binary_fill_holes(data)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_fill_holes02(self):
-        expected = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 0, 1, 1, 0, 0, 0],
-                             [0, 0, 1, 1, 1, 1, 0, 0],
-                             [0, 0, 1, 1, 1, 1, 0, 0],
-                             [0, 0, 1, 1, 1, 1, 0, 0],
-                             [0, 0, 0, 1, 1, 0, 0, 0],
-                             [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 1, 0, 0, 1, 0, 0],
-                         [0, 0, 0, 1, 1, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        out = ndimage.binary_fill_holes(data)
-        assert_array_almost_equal(out, expected)
-
-    def test_binary_fill_holes03(self):
-        expected = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                             [0, 0, 1, 0, 0, 0, 0, 0],
-                             [0, 1, 1, 1, 0, 1, 1, 1],
-                             [0, 1, 1, 1, 0, 1, 1, 1],
-                             [0, 1, 1, 1, 0, 1, 1, 1],
-                             [0, 0, 1, 0, 0, 1, 1, 1],
-                             [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        data = np.array([[0, 0, 0, 0, 0, 0, 0, 0],
-                         [0, 0, 1, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 1, 0, 1, 1, 1],
-                         [0, 1, 0, 1, 0, 1, 0, 1],
-                         [0, 1, 0, 1, 0, 1, 0, 1],
-                         [0, 0, 1, 0, 0, 1, 1, 1],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], bool)
-        out = ndimage.binary_fill_holes(data)
-        assert_array_almost_equal(out, expected)
-
-    def test_grey_erosion01(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        output = ndimage.grey_erosion(array, footprint=footprint)
-        assert_array_almost_equal([[2, 2, 1, 1, 1],
-                                   [2, 3, 1, 3, 1],
-                                   [5, 5, 3, 3, 1]], output)
-
-    def test_grey_erosion01_overlap(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                           [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        ndimage.grey_erosion(array, footprint=footprint, output=array)
-        assert_array_almost_equal([[2, 2, 1, 1, 1],
-                                   [2, 3, 1, 3, 1],
-                                   [5, 5, 3, 3, 1]], array)
-
-    def test_grey_erosion02(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        output = ndimage.grey_erosion(array, footprint=footprint,
-                                      structure=structure)
-        assert_array_almost_equal([[2, 2, 1, 1, 1],
-                                   [2, 3, 1, 3, 1],
-                                   [5, 5, 3, 3, 1]], output)
-
-    def test_grey_erosion03(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[1, 1, 1], [1, 1, 1]]
-        output = ndimage.grey_erosion(array, footprint=footprint,
-                                      structure=structure)
-        assert_array_almost_equal([[1, 1, 0, 0, 0],
-                                   [1, 2, 0, 2, 0],
-                                   [4, 4, 2, 2, 0]], output)
-
-    def test_grey_dilation01(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[0, 1, 1], [1, 0, 1]]
-        output = ndimage.grey_dilation(array, footprint=footprint)
-        assert_array_almost_equal([[7, 7, 9, 9, 5],
-                                   [7, 9, 8, 9, 7],
-                                   [8, 8, 8, 7, 7]], output)
-
-    def test_grey_dilation02(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[0, 1, 1], [1, 0, 1]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        output = ndimage.grey_dilation(array, footprint=footprint,
-                                       structure=structure)
-        assert_array_almost_equal([[7, 7, 9, 9, 5],
-                                   [7, 9, 8, 9, 7],
-                                   [8, 8, 8, 7, 7]], output)
-
-    def test_grey_dilation03(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[0, 1, 1], [1, 0, 1]]
-        structure = [[1, 1, 1], [1, 1, 1]]
-        output = ndimage.grey_dilation(array, footprint=footprint,
-                                       structure=structure)
-        assert_array_almost_equal([[8, 8, 10, 10, 6],
-                                   [8, 10, 9, 10, 8],
-                                   [9, 9, 9, 8, 8]], output)
-
-    def test_grey_opening01(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        tmp = ndimage.grey_erosion(array, footprint=footprint)
-        expected = ndimage.grey_dilation(tmp, footprint=footprint)
-        output = ndimage.grey_opening(array, footprint=footprint)
-        assert_array_almost_equal(expected, output)
-
-    def test_grey_opening02(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        tmp = ndimage.grey_erosion(array, footprint=footprint,
-                                   structure=structure)
-        expected = ndimage.grey_dilation(tmp, footprint=footprint,
-                                         structure=structure)
-        output = ndimage.grey_opening(array, footprint=footprint,
-                                      structure=structure)
-        assert_array_almost_equal(expected, output)
-
-    def test_grey_closing01(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        tmp = ndimage.grey_dilation(array, footprint=footprint)
-        expected = ndimage.grey_erosion(tmp, footprint=footprint)
-        output = ndimage.grey_closing(array, footprint=footprint)
-        assert_array_almost_equal(expected, output)
-
-    def test_grey_closing02(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        tmp = ndimage.grey_dilation(array, footprint=footprint,
-                                    structure=structure)
-        expected = ndimage.grey_erosion(tmp, footprint=footprint,
-                                        structure=structure)
-        output = ndimage.grey_closing(array, footprint=footprint,
-                                      structure=structure)
-        assert_array_almost_equal(expected, output)
-
-    def test_morphological_gradient01(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        tmp1 = ndimage.grey_dilation(array, footprint=footprint,
-                                     structure=structure)
-        tmp2 = ndimage.grey_erosion(array, footprint=footprint,
-                                    structure=structure)
-        expected = tmp1 - tmp2
-        output = np.zeros(array.shape, array.dtype)
-        ndimage.morphological_gradient(array, footprint=footprint,
-                                       structure=structure, output=output)
-        assert_array_almost_equal(expected, output)
-
-    def test_morphological_gradient02(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        tmp1 = ndimage.grey_dilation(array, footprint=footprint,
-                                     structure=structure)
-        tmp2 = ndimage.grey_erosion(array, footprint=footprint,
-                                    structure=structure)
-        expected = tmp1 - tmp2
-        output = ndimage.morphological_gradient(array, footprint=footprint,
-                                                structure=structure)
-        assert_array_almost_equal(expected, output)
-
-    def test_morphological_laplace01(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        tmp1 = ndimage.grey_dilation(array, footprint=footprint,
-                                     structure=structure)
-        tmp2 = ndimage.grey_erosion(array, footprint=footprint,
-                                    structure=structure)
-        expected = tmp1 + tmp2 - 2 * array
-        output = np.zeros(array.shape, array.dtype)
-        ndimage.morphological_laplace(array, footprint=footprint,
-                                      structure=structure, output=output)
-        assert_array_almost_equal(expected, output)
-
-    def test_morphological_laplace02(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        tmp1 = ndimage.grey_dilation(array, footprint=footprint,
-                                     structure=structure)
-        tmp2 = ndimage.grey_erosion(array, footprint=footprint,
-                                    structure=structure)
-        expected = tmp1 + tmp2 - 2 * array
-        output = ndimage.morphological_laplace(array, footprint=footprint,
-                                               structure=structure)
-        assert_array_almost_equal(expected, output)
-
-    def test_white_tophat01(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        tmp = ndimage.grey_opening(array, footprint=footprint,
-                                   structure=structure)
-        expected = array - tmp
-        output = np.zeros(array.shape, array.dtype)
-        ndimage.white_tophat(array, footprint=footprint,
-                             structure=structure, output=output)
-        assert_array_almost_equal(expected, output)
-
-    def test_white_tophat02(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        tmp = ndimage.grey_opening(array, footprint=footprint,
-                                   structure=structure)
-        expected = array - tmp
-        output = ndimage.white_tophat(array, footprint=footprint,
-                                      structure=structure)
-        assert_array_almost_equal(expected, output)
-
-    def test_white_tophat03(self):
-        array = np.array([[1, 0, 0, 0, 0, 0, 0],
-                          [0, 1, 1, 1, 1, 1, 0],
-                          [0, 1, 1, 1, 1, 1, 0],
-                          [0, 1, 1, 1, 1, 1, 0],
-                          [0, 1, 1, 1, 0, 1, 0],
-                          [0, 1, 1, 1, 1, 1, 0],
-                          [0, 0, 0, 0, 0, 0, 1]], dtype=np.bool_)
-        structure = np.ones((3, 3), dtype=np.bool_)
-        expected = np.array([[0, 1, 1, 0, 0, 0, 0],
-                             [1, 0, 0, 1, 1, 1, 0],
-                             [1, 0, 0, 1, 1, 1, 0],
-                             [0, 1, 1, 0, 0, 0, 1],
-                             [0, 1, 1, 0, 1, 0, 1],
-                             [0, 1, 1, 0, 0, 0, 1],
-                             [0, 0, 0, 1, 1, 1, 1]], dtype=np.bool_)
-
-        output = ndimage.white_tophat(array, structure=structure)
-        assert_array_equal(expected, output)
-
-    def test_white_tophat04(self):
-        array = np.eye(5, dtype=np.bool_)
-        structure = np.ones((3, 3), dtype=np.bool_)
-
-        # Check that type mismatch is properly handled
-        output = np.empty_like(array, dtype=np.float64)
-        ndimage.white_tophat(array, structure=structure, output=output)
-
-    def test_black_tophat01(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        tmp = ndimage.grey_closing(array, footprint=footprint,
-                                   structure=structure)
-        expected = tmp - array
-        output = np.zeros(array.shape, array.dtype)
-        ndimage.black_tophat(array, footprint=footprint,
-                             structure=structure, output=output)
-        assert_array_almost_equal(expected, output)
-
-    def test_black_tophat02(self):
-        array = np.array([[3, 2, 5, 1, 4],
-                          [7, 6, 9, 3, 5],
-                          [5, 8, 3, 7, 1]])
-        footprint = [[1, 0, 1], [1, 1, 0]]
-        structure = [[0, 0, 0], [0, 0, 0]]
-        tmp = ndimage.grey_closing(array, footprint=footprint,
-                                   structure=structure)
-        expected = tmp - array
-        output = ndimage.black_tophat(array, footprint=footprint,
-                                      structure=structure)
-        assert_array_almost_equal(expected, output)
-
-    def test_black_tophat03(self):
-        array = np.array([[1, 0, 0, 0, 0, 0, 0],
-                          [0, 1, 1, 1, 1, 1, 0],
-                          [0, 1, 1, 1, 1, 1, 0],
-                          [0, 1, 1, 1, 1, 1, 0],
-                          [0, 1, 1, 1, 0, 1, 0],
-                          [0, 1, 1, 1, 1, 1, 0],
-                          [0, 0, 0, 0, 0, 0, 1]], dtype=np.bool_)
-        structure = np.ones((3, 3), dtype=np.bool_)
-        expected = np.array([[0, 1, 1, 1, 1, 1, 1],
-                             [1, 0, 0, 0, 0, 0, 1],
-                             [1, 0, 0, 0, 0, 0, 1],
-                             [1, 0, 0, 0, 0, 0, 1],
-                             [1, 0, 0, 0, 1, 0, 1],
-                             [1, 0, 0, 0, 0, 0, 1],
-                             [1, 1, 1, 1, 1, 1, 0]], dtype=np.bool_)
-
-        output = ndimage.black_tophat(array, structure=structure)
-        assert_array_equal(expected, output)
-
-    def test_black_tophat04(self):
-        array = np.eye(5, dtype=np.bool_)
-        structure = np.ones((3, 3), dtype=np.bool_)
-
-        # Check that type mismatch is properly handled
-        output = np.empty_like(array, dtype=np.float64)
-        ndimage.black_tophat(array, structure=structure, output=output)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_hit_or_miss01(self, dtype):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0],
-                    [0, 1, 0, 0, 0],
-                    [0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0]]
-        data = np.array([[0, 1, 0, 0, 0],
-                         [1, 1, 1, 0, 0],
-                         [0, 1, 0, 1, 1],
-                         [0, 0, 1, 1, 1],
-                         [0, 1, 1, 1, 0],
-                         [0, 1, 1, 1, 1],
-                         [0, 1, 1, 1, 1],
-                         [0, 0, 0, 0, 0]], dtype)
-        out = np.zeros(data.shape, bool)
-        ndimage.binary_hit_or_miss(data, struct, output=out)
-        assert_array_almost_equal(expected, out)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_hit_or_miss02(self, dtype):
-        struct = [[0, 1, 0],
-                  [1, 1, 1],
-                  [0, 1, 0]]
-        expected = [[0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 1, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 1, 0, 0, 1, 1, 1, 0],
-                         [1, 1, 1, 0, 0, 1, 0, 0],
-                         [0, 1, 0, 1, 1, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_hit_or_miss(data, struct)
-        assert_array_almost_equal(expected, out)
-
-    @pytest.mark.parametrize('dtype', types)
-    def test_hit_or_miss03(self, dtype):
-        struct1 = [[0, 0, 0],
-                   [1, 1, 1],
-                   [0, 0, 0]]
-        struct2 = [[1, 1, 1],
-                   [0, 0, 0],
-                   [1, 1, 1]]
-        expected = [[0, 0, 0, 0, 0, 1, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0],
-                    [0, 0, 1, 0, 0, 0, 0, 0],
-                    [0, 0, 0, 0, 0, 0, 0, 0]]
-        data = np.array([[0, 1, 0, 0, 1, 1, 1, 0],
-                         [1, 1, 1, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 1, 1, 1, 1, 0],
-                         [0, 0, 1, 1, 1, 1, 1, 0],
-                         [0, 1, 1, 1, 0, 1, 1, 0],
-                         [0, 0, 0, 0, 1, 1, 1, 0],
-                         [0, 1, 1, 1, 1, 1, 1, 0],
-                         [0, 0, 0, 0, 0, 0, 0, 0]], dtype)
-        out = ndimage.binary_hit_or_miss(data, struct1, struct2)
-        assert_array_almost_equal(expected, out)
-
-
-class TestDilateFix:
-
-    def setup_method(self):
-        # dilation related setup
-        self.array = np.array([[0, 0, 0, 0, 0],
-                               [0, 0, 0, 0, 0],
-                               [0, 0, 0, 1, 0],
-                               [0, 0, 1, 1, 0],
-                               [0, 0, 0, 0, 0]], dtype=np.uint8)
-
-        self.sq3x3 = np.ones((3, 3))
-        dilated3x3 = ndimage.binary_dilation(self.array, structure=self.sq3x3)
-        self.dilated3x3 = dilated3x3.view(np.uint8)
-
-    def test_dilation_square_structure(self):
-        result = ndimage.grey_dilation(self.array, structure=self.sq3x3)
-        # +1 accounts for difference between grey and binary dilation
-        assert_array_almost_equal(result, self.dilated3x3 + 1)
-
-    def test_dilation_scalar_size(self):
-        result = ndimage.grey_dilation(self.array, size=3)
-        assert_array_almost_equal(result, self.dilated3x3)
-
-
-class TestBinaryOpeningClosing:
-
-    def setup_method(self):
-        a = np.zeros((5, 5), dtype=bool)
-        a[1:4, 1:4] = True
-        a[4, 4] = True
-        self.array = a
-        self.sq3x3 = np.ones((3, 3))
-        self.opened_old = ndimage.binary_opening(self.array, self.sq3x3,
-                                                 1, None, 0)
-        self.closed_old = ndimage.binary_closing(self.array, self.sq3x3,
-                                                 1, None, 0)
-
-    def test_opening_new_arguments(self):
-        opened_new = ndimage.binary_opening(self.array, self.sq3x3, 1, None,
-                                            0, None, 0, False)
-        assert_array_equal(opened_new, self.opened_old)
-
-    def test_closing_new_arguments(self):
-        closed_new = ndimage.binary_closing(self.array, self.sq3x3, 1, None,
-                                            0, None, 0, False)
-        assert_array_equal(closed_new, self.closed_old)
-
-
-def test_binary_erosion_noninteger_iterations():
-    # regression test for gh-9905, gh-9909: ValueError for
-    # non integer iterations
-    data = np.ones([1])
-    assert_raises(TypeError, ndimage.binary_erosion, data, iterations=0.5)
-    assert_raises(TypeError, ndimage.binary_erosion, data, iterations=1.5)
-
-
-def test_binary_dilation_noninteger_iterations():
-    # regression test for gh-9905, gh-9909: ValueError for
-    # non integer iterations
-    data = np.ones([1])
-    assert_raises(TypeError, ndimage.binary_dilation, data, iterations=0.5)
-    assert_raises(TypeError, ndimage.binary_dilation, data, iterations=1.5)
-
-
-def test_binary_opening_noninteger_iterations():
-    # regression test for gh-9905, gh-9909: ValueError for
-    # non integer iterations
-    data = np.ones([1])
-    assert_raises(TypeError, ndimage.binary_opening, data, iterations=0.5)
-    assert_raises(TypeError, ndimage.binary_opening, data, iterations=1.5)
-
-
-def test_binary_closing_noninteger_iterations():
-    # regression test for gh-9905, gh-9909: ValueError for
-    # non integer iterations
-    data = np.ones([1])
-    assert_raises(TypeError, ndimage.binary_closing, data, iterations=0.5)
-    assert_raises(TypeError, ndimage.binary_closing, data, iterations=1.5)
-
-
-def test_binary_closing_noninteger_brute_force_passes_when_true():
-    # regression test for gh-9905, gh-9909: ValueError for
-    # non integer iterations
-    data = np.ones([1])
-
-    assert ndimage.binary_erosion(
-        data, iterations=2, brute_force=1.5
-    ) == ndimage.binary_erosion(data, iterations=2, brute_force=bool(1.5))
-    assert ndimage.binary_erosion(
-        data, iterations=2, brute_force=0.0
-    ) == ndimage.binary_erosion(data, iterations=2, brute_force=bool(0.0))
-
-
-@pytest.mark.parametrize(
-    'function',
-    ['binary_erosion', 'binary_dilation', 'binary_opening', 'binary_closing'],
-)
-@pytest.mark.parametrize('iterations', [1, 5])
-@pytest.mark.parametrize('brute_force', [False, True])
-def test_binary_input_as_output(function, iterations, brute_force):
-    rstate = np.random.RandomState(123)
-    data = rstate.randint(low=0, high=2, size=100).astype(bool)
-    ndi_func = getattr(ndimage, function)
-
-    # input data is not modified
-    data_orig = data.copy()
-    expected = ndi_func(data, brute_force=brute_force, iterations=iterations)
-    assert_array_equal(data, data_orig)
-
-    # data should now contain the expected result
-    ndi_func(data, brute_force=brute_force, iterations=iterations, output=data)
-    assert_array_equal(expected, data)
-
-
-def test_binary_hit_or_miss_input_as_output():
-    rstate = np.random.RandomState(123)
-    data = rstate.randint(low=0, high=2, size=100).astype(bool)
-
-    # input data is not modified
-    data_orig = data.copy()
-    expected = ndimage.binary_hit_or_miss(data)
-    assert_array_equal(data, data_orig)
-
-    # data should now contain the expected result
-    ndimage.binary_hit_or_miss(data, output=data)
-    assert_array_equal(expected, data)
-
-
-def test_distance_transform_cdt_invalid_metric():
-    msg = 'invalid metric provided'
-    with pytest.raises(ValueError, match=msg):
-        ndimage.distance_transform_cdt(np.ones((5, 5)),
-                                       metric="garbage")
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_ni_support.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_ni_support.py
deleted file mode 100644
index a25429eebc8b3739e00465b43fd28ba24b320b45..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_ni_support.py
+++ /dev/null
@@ -1,77 +0,0 @@
-import pytest
-
-import numpy as np
-from .._ni_support import _get_output
-
-
-@pytest.mark.parametrize(
-    'dtype',
-    [
-        # String specifiers
-        'f4', 'float32', 'complex64', 'complex128',
-        # Type and dtype specifiers
-        np.float32, float, np.dtype('f4'),
-        # Derive from input
-        None,
-    ],
-)
-def test_get_output_basic(dtype):
-    shape = (2, 3)
-
-    input_ = np.zeros(shape, 'float32')
-
-    # For None, derive dtype from input
-    expected_dtype = 'float32' if dtype is None else dtype
-
-    # Output is dtype-specifier, retrieve shape from input
-    result = _get_output(dtype, input_)
-    assert result.shape == shape
-    assert result.dtype == np.dtype(expected_dtype)
-
-    # Output is dtype specifier, with explicit shape, overriding input
-    result = _get_output(dtype, input_, shape=(3, 2))
-    assert result.shape == (3, 2)
-    assert result.dtype == np.dtype(expected_dtype)
-
-    # Output is pre-allocated array, return directly
-    output = np.zeros(shape, dtype)
-    result = _get_output(output, input_)
-    assert result is output
-
-
-def test_get_output_complex():
-    shape = (2, 3)
-
-    input_ = np.zeros(shape)
-
-    # None, promote input type to complex
-    result = _get_output(None, input_, complex_output=True)
-    assert result.shape == shape
-    assert result.dtype == np.dtype('complex128')
-
-    # Explicit type, promote type to complex
-    with pytest.warns(UserWarning, match='promoting specified output dtype to complex'):
-        result = _get_output(float, input_, complex_output=True)
-    assert result.shape == shape
-    assert result.dtype == np.dtype('complex128')
-
-    # String specifier, simply verify complex output
-    result = _get_output('complex64', input_, complex_output=True)
-    assert result.shape == shape
-    assert result.dtype == np.dtype('complex64')
-
-
-def test_get_output_error_cases():
-    input_ = np.zeros((2, 3), 'float32')
-
-    # Two separate paths can raise the same error
-    with pytest.raises(RuntimeError, match='output must have complex dtype'):
-        _get_output('float32', input_, complex_output=True)
-    with pytest.raises(RuntimeError, match='output must have complex dtype'):
-        _get_output(np.zeros((2, 3)), input_, complex_output=True)
-
-    with pytest.raises(RuntimeError, match='output must have numeric dtype'):
-        _get_output('void', input_)
-
-    with pytest.raises(RuntimeError, match='shape not correct'):
-        _get_output(np.zeros((3, 2)), input_)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_splines.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_splines.py
deleted file mode 100644
index a74e55111f8fac906f58a947db4a214da82a3cae..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/ndimage/tests/test_splines.py
+++ /dev/null
@@ -1,65 +0,0 @@
-"""Tests for spline filtering."""
-import numpy as np
-import pytest
-
-from numpy.testing import assert_almost_equal
-
-from scipy import ndimage
-
-
-def get_spline_knot_values(order):
-    """Knot values to the right of a B-spline's center."""
-    knot_values = {0: [1],
-                   1: [1],
-                   2: [6, 1],
-                   3: [4, 1],
-                   4: [230, 76, 1],
-                   5: [66, 26, 1]}
-
-    return knot_values[order]
-
-
-def make_spline_knot_matrix(n, order, mode='mirror'):
-    """Matrix to invert to find the spline coefficients."""
-    knot_values = get_spline_knot_values(order)
-
-    matrix = np.zeros((n, n))
-    for diag, knot_value in enumerate(knot_values):
-        indices = np.arange(diag, n)
-        if diag == 0:
-            matrix[indices, indices] = knot_value
-        else:
-            matrix[indices, indices - diag] = knot_value
-            matrix[indices - diag, indices] = knot_value
-
-    knot_values_sum = knot_values[0] + 2 * sum(knot_values[1:])
-
-    if mode == 'mirror':
-        start, step = 1, 1
-    elif mode == 'reflect':
-        start, step = 0, 1
-    elif mode == 'grid-wrap':
-        start, step = -1, -1
-    else:
-        raise ValueError(f'unsupported mode {mode}')
-
-    for row in range(len(knot_values) - 1):
-        for idx, knot_value in enumerate(knot_values[row + 1:]):
-            matrix[row, start + step*idx] += knot_value
-            matrix[-row - 1, -start - 1 - step*idx] += knot_value
-
-    return matrix / knot_values_sum
-
-
-@pytest.mark.parametrize('order', [0, 1, 2, 3, 4, 5])
-@pytest.mark.parametrize('mode', ['mirror', 'grid-wrap', 'reflect'])
-def test_spline_filter_vs_matrix_solution(order, mode):
-    n = 100
-    eye = np.eye(n, dtype=float)
-    spline_filter_axis_0 = ndimage.spline_filter1d(eye, axis=0, order=order,
-                                                   mode=mode)
-    spline_filter_axis_1 = ndimage.spline_filter1d(eye, axis=1, order=order,
-                                                   mode=mode)
-    matrix = make_spline_knot_matrix(n, order, mode=mode)
-    assert_almost_equal(eye, np.dot(spline_filter_axis_0, matrix))
-    assert_almost_equal(eye, np.dot(spline_filter_axis_1, matrix.T))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__init__.py
deleted file mode 100644
index a44a8c133b674aea416efeb4da469241b50a547f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__init__.py
+++ /dev/null
@@ -1,131 +0,0 @@
-"""
-=================================================
-Orthogonal distance regression (:mod:`scipy.odr`)
-=================================================
-
-.. currentmodule:: scipy.odr
-
-Package Content
-===============
-
-.. autosummary::
-   :toctree: generated/
-
-   Data          -- The data to fit.
-   RealData      -- Data with weights as actual std. dev.s and/or covariances.
-   Model         -- Stores information about the function to be fit.
-   ODR           -- Gathers all info & manages the main fitting routine.
-   Output        -- Result from the fit.
-   odr           -- Low-level function for ODR.
-
-   OdrWarning    -- Warning about potential problems when running ODR.
-   OdrError      -- Error exception.
-   OdrStop       -- Stop exception.
-
-   polynomial    -- Factory function for a general polynomial model.
-   exponential   -- Exponential model
-   multilinear   -- Arbitrary-dimensional linear model
-   unilinear     -- Univariate linear model
-   quadratic     -- Quadratic model
-
-Usage information
-=================
-
-Introduction
-------------
-
-Why Orthogonal Distance Regression (ODR)? Sometimes one has
-measurement errors in the explanatory (a.k.a., "independent")
-variable(s), not just the response (a.k.a., "dependent") variable(s).
-Ordinary Least Squares (OLS) fitting procedures treat the data for
-explanatory variables as fixed, i.e., not subject to error of any kind.
-Furthermore, OLS procedures require that the response variables be an
-explicit function of the explanatory variables; sometimes making the
-equation explicit is impractical and/or introduces errors.  ODR can
-handle both of these cases with ease, and can even reduce to the OLS
-case if that is sufficient for the problem.
-
-ODRPACK is a FORTRAN-77 library for performing ODR with possibly
-non-linear fitting functions. It uses a modified trust-region
-Levenberg-Marquardt-type algorithm [1]_ to estimate the function
-parameters.  The fitting functions are provided by Python functions
-operating on NumPy arrays. The required derivatives may be provided
-by Python functions as well, or may be estimated numerically. ODRPACK
-can do explicit or implicit ODR fits, or it can do OLS. Input and
-output variables may be multidimensional. Weights can be provided to
-account for different variances of the observations, and even
-covariances between dimensions of the variables.
-
-The `scipy.odr` package offers an object-oriented interface to
-ODRPACK, in addition to the low-level `odr` function.
-
-Additional background information about ODRPACK can be found in the
-`ODRPACK User's Guide
-`_, reading
-which is recommended.
-
-Basic usage
------------
-
-1. Define the function you want to fit against.::
-
-       def f(B, x):
-           '''Linear function y = m*x + b'''
-           # B is a vector of the parameters.
-           # x is an array of the current x values.
-           # x is in the same format as the x passed to Data or RealData.
-           #
-           # Return an array in the same format as y passed to Data or RealData.
-           return B[0]*x + B[1]
-
-2. Create a Model.::
-
-       linear = Model(f)
-
-3. Create a Data or RealData instance.::
-
-       mydata = Data(x, y, wd=1./power(sx,2), we=1./power(sy,2))
-
-   or, when the actual covariances are known::
-
-       mydata = RealData(x, y, sx=sx, sy=sy)
-
-4. Instantiate ODR with your data, model and initial parameter estimate.::
-
-       myodr = ODR(mydata, linear, beta0=[1., 2.])
-
-5. Run the fit.::
-
-       myoutput = myodr.run()
-
-6. Examine output.::
-
-       myoutput.pprint()
-
-
-References
-----------
-.. [1] P. T. Boggs and J. E. Rogers, "Orthogonal Distance Regression,"
-   in "Statistical analysis of measurement error models and
-   applications: proceedings of the AMS-IMS-SIAM joint summer research
-   conference held June 10-16, 1989," Contemporary Mathematics,
-   vol. 112, pg. 186, 1990.
-
-"""
-# version: 0.7
-# author: Robert Kern 
-# date: 2006-09-21
-
-from ._odrpack import *
-from ._models import *
-from . import _add_newdocs
-
-# Deprecated namespaces, to be removed in v2.0.0
-from . import models, odrpack
-
-__all__ = [s for s in dir()
-           if not (s.startswith('_') or s in ('odr_stop', 'odr_error'))]
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index d1c67b334563b6831df6910c7a6b9a6ce9f4e645..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/_add_newdocs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/_add_newdocs.cpython-310.pyc
deleted file mode 100644
index 36992ef2ca0ee85abec2e0b3067e32694d4f8138..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/_add_newdocs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/_models.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/_models.cpython-310.pyc
deleted file mode 100644
index 06ec1c9323cbc7fd6305aee6e999591fdc7c67b0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/_models.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/_odrpack.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/_odrpack.cpython-310.pyc
deleted file mode 100644
index 34768df8347998b6a26144c28feddb67ca61b008..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/_odrpack.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/models.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/models.cpython-310.pyc
deleted file mode 100644
index 678a3f20bb27a7b1f3b6b483f3179fa1b106990a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/models.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/odrpack.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/odrpack.cpython-310.pyc
deleted file mode 100644
index bd4e0fc2e48c0a8f1ad65a15c28962c722dabdaa..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/__pycache__/odrpack.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/_add_newdocs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/_add_newdocs.py
deleted file mode 100644
index e09fb6cc8c5f1523dfbeaef466a5b76bd22c01bb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/_add_newdocs.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from numpy.lib import add_newdoc
-
-add_newdoc('scipy.odr', 'odr',
-    """
-    odr(fcn, beta0, y, x, we=None, wd=None, fjacb=None, fjacd=None, extra_args=None,
-        ifixx=None, ifixb=None, job=0, iprint=0, errfile=None, rptfile=None, ndigit=0,
-        taufac=0.0, sstol=-1.0, partol=-1.0, maxit=-1, stpb=None, stpd=None, sclb=None,
-        scld=None, work=None, iwork=None, full_output=0)
-
-    Low-level function for ODR.
-
-    See Also
-    --------
-    ODR : The ODR class gathers all information and coordinates the running of the
-          main fitting routine.
-    Model : The Model class stores information about the function you wish to fit.
-    Data : The data to fit.
-    RealData : Data with weights as actual std. dev.s and/or covariances.
-
-    Notes
-    -----
-    This is a function performing the same operation as the `ODR`,
-    `Model`, and `Data` classes together. The parameters of this
-    function are explained in the class documentation.
-
-    """)
-
-add_newdoc('scipy.odr.__odrpack', '_set_exceptions',
-    """
-    _set_exceptions(odr_error, odr_stop)
-
-    Internal function: set exception classes.
-
-    """)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/_models.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/_models.py
deleted file mode 100644
index e0a8d2275dcc4698a9ea61be5871d62069be2599..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/_models.py
+++ /dev/null
@@ -1,315 +0,0 @@
-""" Collection of Model instances for use with the odrpack fitting package.
-"""
-import numpy as np
-from scipy.odr._odrpack import Model
-
-__all__ = ['Model', 'exponential', 'multilinear', 'unilinear', 'quadratic',
-           'polynomial']
-
-
-def _lin_fcn(B, x):
-    a, b = B[0], B[1:]
-    b.shape = (b.shape[0], 1)
-
-    return a + (x*b).sum(axis=0)
-
-
-def _lin_fjb(B, x):
-    a = np.ones(x.shape[-1], float)
-    res = np.concatenate((a, x.ravel()))
-    res.shape = (B.shape[-1], x.shape[-1])
-    return res
-
-
-def _lin_fjd(B, x):
-    b = B[1:]
-    b = np.repeat(b, (x.shape[-1],)*b.shape[-1], axis=0)
-    b.shape = x.shape
-    return b
-
-
-def _lin_est(data):
-    # Eh. The answer is analytical, so just return all ones.
-    # Don't return zeros since that will interfere with
-    # ODRPACK's auto-scaling procedures.
-
-    if len(data.x.shape) == 2:
-        m = data.x.shape[0]
-    else:
-        m = 1
-
-    return np.ones((m + 1,), float)
-
-
-def _poly_fcn(B, x, powers):
-    a, b = B[0], B[1:]
-    b.shape = (b.shape[0], 1)
-
-    return a + np.sum(b * np.power(x, powers), axis=0)
-
-
-def _poly_fjacb(B, x, powers):
-    res = np.concatenate((np.ones(x.shape[-1], float),
-                          np.power(x, powers).flat))
-    res.shape = (B.shape[-1], x.shape[-1])
-    return res
-
-
-def _poly_fjacd(B, x, powers):
-    b = B[1:]
-    b.shape = (b.shape[0], 1)
-
-    b = b * powers
-
-    return np.sum(b * np.power(x, powers-1), axis=0)
-
-
-def _exp_fcn(B, x):
-    return B[0] + np.exp(B[1] * x)
-
-
-def _exp_fjd(B, x):
-    return B[1] * np.exp(B[1] * x)
-
-
-def _exp_fjb(B, x):
-    res = np.concatenate((np.ones(x.shape[-1], float), x * np.exp(B[1] * x)))
-    res.shape = (2, x.shape[-1])
-    return res
-
-
-def _exp_est(data):
-    # Eh.
-    return np.array([1., 1.])
-
-
-class _MultilinearModel(Model):
-    r"""
-    Arbitrary-dimensional linear model
-
-    This model is defined by :math:`y=\beta_0 + \sum_{i=1}^m \beta_i x_i`
-
-    Examples
-    --------
-    We can calculate orthogonal distance regression with an arbitrary
-    dimensional linear model:
-
-    >>> from scipy import odr
-    >>> import numpy as np
-    >>> x = np.linspace(0.0, 5.0)
-    >>> y = 10.0 + 5.0 * x
-    >>> data = odr.Data(x, y)
-    >>> odr_obj = odr.ODR(data, odr.multilinear)
-    >>> output = odr_obj.run()
-    >>> print(output.beta)
-    [10.  5.]
-
-    """
-
-    def __init__(self):
-        super().__init__(
-            _lin_fcn, fjacb=_lin_fjb, fjacd=_lin_fjd, estimate=_lin_est,
-            meta={'name': 'Arbitrary-dimensional Linear',
-                  'equ': 'y = B_0 + Sum[i=1..m, B_i * x_i]',
-                  'TeXequ': r'$y=\beta_0 + \sum_{i=1}^m \beta_i x_i$'})
-
-
-multilinear = _MultilinearModel()
-
-
-def polynomial(order):
-    """
-    Factory function for a general polynomial model.
-
-    Parameters
-    ----------
-    order : int or sequence
-        If an integer, it becomes the order of the polynomial to fit. If
-        a sequence of numbers, then these are the explicit powers in the
-        polynomial.
-        A constant term (power 0) is always included, so don't include 0.
-        Thus, polynomial(n) is equivalent to polynomial(range(1, n+1)).
-
-    Returns
-    -------
-    polynomial : Model instance
-        Model instance.
-
-    Examples
-    --------
-    We can fit an input data using orthogonal distance regression (ODR) with
-    a polynomial model:
-
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy import odr
-    >>> x = np.linspace(0.0, 5.0)
-    >>> y = np.sin(x)
-    >>> poly_model = odr.polynomial(3)  # using third order polynomial model
-    >>> data = odr.Data(x, y)
-    >>> odr_obj = odr.ODR(data, poly_model)
-    >>> output = odr_obj.run()  # running ODR fitting
-    >>> poly = np.poly1d(output.beta[::-1])
-    >>> poly_y = poly(x)
-    >>> plt.plot(x, y, label="input data")
-    >>> plt.plot(x, poly_y, label="polynomial ODR")
-    >>> plt.legend()
-    >>> plt.show()
-
-    """
-
-    powers = np.asarray(order)
-    if powers.shape == ():
-        # Scalar.
-        powers = np.arange(1, powers + 1)
-
-    powers.shape = (len(powers), 1)
-    len_beta = len(powers) + 1
-
-    def _poly_est(data, len_beta=len_beta):
-        # Eh. Ignore data and return all ones.
-        return np.ones((len_beta,), float)
-
-    return Model(_poly_fcn, fjacd=_poly_fjacd, fjacb=_poly_fjacb,
-                 estimate=_poly_est, extra_args=(powers,),
-                 meta={'name': 'Sorta-general Polynomial',
-                 'equ': 'y = B_0 + Sum[i=1..%s, B_i * (x**i)]' % (len_beta-1),
-                 'TeXequ': r'$y=\beta_0 + \sum_{i=1}^{%s} \beta_i x^i$' %
-                        (len_beta-1)})
-
-
-class _ExponentialModel(Model):
-    r"""
-    Exponential model
-
-    This model is defined by :math:`y=\beta_0 + e^{\beta_1 x}`
-
-    Examples
-    --------
-    We can calculate orthogonal distance regression with an exponential model:
-
-    >>> from scipy import odr
-    >>> import numpy as np
-    >>> x = np.linspace(0.0, 5.0)
-    >>> y = -10.0 + np.exp(0.5*x)
-    >>> data = odr.Data(x, y)
-    >>> odr_obj = odr.ODR(data, odr.exponential)
-    >>> output = odr_obj.run()
-    >>> print(output.beta)
-    [-10.    0.5]
-
-    """
-
-    def __init__(self):
-        super().__init__(_exp_fcn, fjacd=_exp_fjd, fjacb=_exp_fjb,
-                         estimate=_exp_est,
-                         meta={'name': 'Exponential',
-                               'equ': 'y= B_0 + exp(B_1 * x)',
-                               'TeXequ': r'$y=\beta_0 + e^{\beta_1 x}$'})
-
-
-exponential = _ExponentialModel()
-
-
-def _unilin(B, x):
-    return x*B[0] + B[1]
-
-
-def _unilin_fjd(B, x):
-    return np.ones(x.shape, float) * B[0]
-
-
-def _unilin_fjb(B, x):
-    _ret = np.concatenate((x, np.ones(x.shape, float)))
-    _ret.shape = (2,) + x.shape
-
-    return _ret
-
-
-def _unilin_est(data):
-    return (1., 1.)
-
-
-def _quadratic(B, x):
-    return x*(x*B[0] + B[1]) + B[2]
-
-
-def _quad_fjd(B, x):
-    return 2*x*B[0] + B[1]
-
-
-def _quad_fjb(B, x):
-    _ret = np.concatenate((x*x, x, np.ones(x.shape, float)))
-    _ret.shape = (3,) + x.shape
-
-    return _ret
-
-
-def _quad_est(data):
-    return (1.,1.,1.)
-
-
-class _UnilinearModel(Model):
-    r"""
-    Univariate linear model
-
-    This model is defined by :math:`y = \beta_0 x + \beta_1`
-
-    Examples
-    --------
-    We can calculate orthogonal distance regression with an unilinear model:
-
-    >>> from scipy import odr
-    >>> import numpy as np
-    >>> x = np.linspace(0.0, 5.0)
-    >>> y = 1.0 * x + 2.0
-    >>> data = odr.Data(x, y)
-    >>> odr_obj = odr.ODR(data, odr.unilinear)
-    >>> output = odr_obj.run()
-    >>> print(output.beta)
-    [1. 2.]
-
-    """
-
-    def __init__(self):
-        super().__init__(_unilin, fjacd=_unilin_fjd, fjacb=_unilin_fjb,
-                         estimate=_unilin_est,
-                         meta={'name': 'Univariate Linear',
-                               'equ': 'y = B_0 * x + B_1',
-                               'TeXequ': '$y = \\beta_0 x + \\beta_1$'})
-
-
-unilinear = _UnilinearModel()
-
-
-class _QuadraticModel(Model):
-    r"""
-    Quadratic model
-
-    This model is defined by :math:`y = \beta_0 x^2 + \beta_1 x + \beta_2`
-
-    Examples
-    --------
-    We can calculate orthogonal distance regression with a quadratic model:
-
-    >>> from scipy import odr
-    >>> import numpy as np
-    >>> x = np.linspace(0.0, 5.0)
-    >>> y = 1.0 * x ** 2 + 2.0 * x + 3.0
-    >>> data = odr.Data(x, y)
-    >>> odr_obj = odr.ODR(data, odr.quadratic)
-    >>> output = odr_obj.run()
-    >>> print(output.beta)
-    [1. 2. 3.]
-
-    """
-
-    def __init__(self):
-        super().__init__(
-            _quadratic, fjacd=_quad_fjd, fjacb=_quad_fjb, estimate=_quad_est,
-            meta={'name': 'Quadratic',
-                  'equ': 'y = B_0*x**2 + B_1*x + B_2',
-                  'TeXequ': '$y = \\beta_0 x^2 + \\beta_1 x + \\beta_2'})
-
-
-quadratic = _QuadraticModel()
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/_odrpack.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/_odrpack.py
deleted file mode 100644
index 609c2c77835befa7e2edbc35357a8eef05c2d55c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/_odrpack.py
+++ /dev/null
@@ -1,1151 +0,0 @@
-"""
-Python wrappers for Orthogonal Distance Regression (ODRPACK).
-
-Notes
-=====
-
-* Array formats -- FORTRAN stores its arrays in memory column first, i.e., an
-  array element A(i, j, k) will be next to A(i+1, j, k). In C and, consequently,
-  NumPy, arrays are stored row first: A[i, j, k] is next to A[i, j, k+1]. For
-  efficiency and convenience, the input and output arrays of the fitting
-  function (and its Jacobians) are passed to FORTRAN without transposition.
-  Therefore, where the ODRPACK documentation says that the X array is of shape
-  (N, M), it will be passed to the Python function as an array of shape (M, N).
-  If M==1, the 1-D case, then nothing matters; if M>1, then your
-  Python functions will be dealing with arrays that are indexed in reverse of
-  the ODRPACK documentation. No real issue, but watch out for your indexing of
-  the Jacobians: the i,jth elements (@f_i/@x_j) evaluated at the nth
-  observation will be returned as jacd[j, i, n]. Except for the Jacobians, it
-  really is easier to deal with x[0] and x[1] than x[:,0] and x[:,1]. Of course,
-  you can always use the transpose() function from SciPy explicitly.
-
-* Examples -- See the accompanying file test/test.py for examples of how to set
-  up fits of your own. Some are taken from the User's Guide; some are from
-  other sources.
-
-* Models -- Some common models are instantiated in the accompanying module
-  models.py . Contributions are welcome.
-
-Credits
-=======
-
-* Thanks to Arnold Moene and Gerard Vermeulen for fixing some killer bugs.
-
-Robert Kern
-robert.kern@gmail.com
-
-"""
-import os
-
-import numpy as np
-from warnings import warn
-from scipy.odr import __odrpack
-
-__all__ = ['odr', 'OdrWarning', 'OdrError', 'OdrStop',
-           'Data', 'RealData', 'Model', 'Output', 'ODR',
-           'odr_error', 'odr_stop']
-
-odr = __odrpack.odr
-
-
-class OdrWarning(UserWarning):
-    """
-    Warning indicating that the data passed into
-    ODR will cause problems when passed into 'odr'
-    that the user should be aware of.
-    """
-    pass
-
-
-class OdrError(Exception):
-    """
-    Exception indicating an error in fitting.
-
-    This is raised by `~scipy.odr.odr` if an error occurs during fitting.
-    """
-    pass
-
-
-class OdrStop(Exception):
-    """
-    Exception stopping fitting.
-
-    You can raise this exception in your objective function to tell
-    `~scipy.odr.odr` to stop fitting.
-    """
-    pass
-
-
-# Backwards compatibility
-odr_error = OdrError
-odr_stop = OdrStop
-
-__odrpack._set_exceptions(OdrError, OdrStop)
-
-
-def _conv(obj, dtype=None):
-    """ Convert an object to the preferred form for input to the odr routine.
-    """
-
-    if obj is None:
-        return obj
-    else:
-        if dtype is None:
-            obj = np.asarray(obj)
-        else:
-            obj = np.asarray(obj, dtype)
-        if obj.shape == ():
-            # Scalar.
-            return obj.dtype.type(obj)
-        else:
-            return obj
-
-
-def _report_error(info):
-    """ Interprets the return code of the odr routine.
-
-    Parameters
-    ----------
-    info : int
-        The return code of the odr routine.
-
-    Returns
-    -------
-    problems : list(str)
-        A list of messages about why the odr() routine stopped.
-    """
-
-    stopreason = ('Blank',
-                  'Sum of squares convergence',
-                  'Parameter convergence',
-                  'Both sum of squares and parameter convergence',
-                  'Iteration limit reached')[info % 5]
-
-    if info >= 5:
-        # questionable results or fatal error
-
-        I = (info//10000 % 10,
-             info//1000 % 10,
-             info//100 % 10,
-             info//10 % 10,
-             info % 10)
-        problems = []
-
-        if I[0] == 0:
-            if I[1] != 0:
-                problems.append('Derivatives possibly not correct')
-            if I[2] != 0:
-                problems.append('Error occurred in callback')
-            if I[3] != 0:
-                problems.append('Problem is not full rank at solution')
-            problems.append(stopreason)
-        elif I[0] == 1:
-            if I[1] != 0:
-                problems.append('N < 1')
-            if I[2] != 0:
-                problems.append('M < 1')
-            if I[3] != 0:
-                problems.append('NP < 1 or NP > N')
-            if I[4] != 0:
-                problems.append('NQ < 1')
-        elif I[0] == 2:
-            if I[1] != 0:
-                problems.append('LDY and/or LDX incorrect')
-            if I[2] != 0:
-                problems.append('LDWE, LD2WE, LDWD, and/or LD2WD incorrect')
-            if I[3] != 0:
-                problems.append('LDIFX, LDSTPD, and/or LDSCLD incorrect')
-            if I[4] != 0:
-                problems.append('LWORK and/or LIWORK too small')
-        elif I[0] == 3:
-            if I[1] != 0:
-                problems.append('STPB and/or STPD incorrect')
-            if I[2] != 0:
-                problems.append('SCLB and/or SCLD incorrect')
-            if I[3] != 0:
-                problems.append('WE incorrect')
-            if I[4] != 0:
-                problems.append('WD incorrect')
-        elif I[0] == 4:
-            problems.append('Error in derivatives')
-        elif I[0] == 5:
-            problems.append('Error occurred in callback')
-        elif I[0] == 6:
-            problems.append('Numerical error detected')
-
-        return problems
-
-    else:
-        return [stopreason]
-
-
-class Data:
-    """
-    The data to fit.
-
-    Parameters
-    ----------
-    x : array_like
-        Observed data for the independent variable of the regression
-    y : array_like, optional
-        If array-like, observed data for the dependent variable of the
-        regression. A scalar input implies that the model to be used on
-        the data is implicit.
-    we : array_like, optional
-        If `we` is a scalar, then that value is used for all data points (and
-        all dimensions of the response variable).
-        If `we` is a rank-1 array of length q (the dimensionality of the
-        response variable), then this vector is the diagonal of the covariant
-        weighting matrix for all data points.
-        If `we` is a rank-1 array of length n (the number of data points), then
-        the i'th element is the weight for the i'th response variable
-        observation (single-dimensional only).
-        If `we` is a rank-2 array of shape (q, q), then this is the full
-        covariant weighting matrix broadcast to each observation.
-        If `we` is a rank-2 array of shape (q, n), then `we[:,i]` is the
-        diagonal of the covariant weighting matrix for the i'th observation.
-        If `we` is a rank-3 array of shape (q, q, n), then `we[:,:,i]` is the
-        full specification of the covariant weighting matrix for each
-        observation.
-        If the fit is implicit, then only a positive scalar value is used.
-    wd : array_like, optional
-        If `wd` is a scalar, then that value is used for all data points
-        (and all dimensions of the input variable). If `wd` = 0, then the
-        covariant weighting matrix for each observation is set to the identity
-        matrix (so each dimension of each observation has the same weight).
-        If `wd` is a rank-1 array of length m (the dimensionality of the input
-        variable), then this vector is the diagonal of the covariant weighting
-        matrix for all data points.
-        If `wd` is a rank-1 array of length n (the number of data points), then
-        the i'th element is the weight for the ith input variable observation
-        (single-dimensional only).
-        If `wd` is a rank-2 array of shape (m, m), then this is the full
-        covariant weighting matrix broadcast to each observation.
-        If `wd` is a rank-2 array of shape (m, n), then `wd[:,i]` is the
-        diagonal of the covariant weighting matrix for the ith observation.
-        If `wd` is a rank-3 array of shape (m, m, n), then `wd[:,:,i]` is the
-        full specification of the covariant weighting matrix for each
-        observation.
-    fix : array_like of ints, optional
-        The `fix` argument is the same as ifixx in the class ODR. It is an
-        array of integers with the same shape as data.x that determines which
-        input observations are treated as fixed. One can use a sequence of
-        length m (the dimensionality of the input observations) to fix some
-        dimensions for all observations. A value of 0 fixes the observation,
-        a value > 0 makes it free.
-    meta : dict, optional
-        Free-form dictionary for metadata.
-
-    Notes
-    -----
-    Each argument is attached to the member of the instance of the same name.
-    The structures of `x` and `y` are described in the Model class docstring.
-    If `y` is an integer, then the Data instance can only be used to fit with
-    implicit models where the dimensionality of the response is equal to the
-    specified value of `y`.
-
-    The `we` argument weights the effect a deviation in the response variable
-    has on the fit. The `wd` argument weights the effect a deviation in the
-    input variable has on the fit. To handle multidimensional inputs and
-    responses easily, the structure of these arguments has the n'th
-    dimensional axis first. These arguments heavily use the structured
-    arguments feature of ODRPACK to conveniently and flexibly support all
-    options. See the ODRPACK User's Guide for a full explanation of how these
-    weights are used in the algorithm. Basically, a higher value of the weight
-    for a particular data point makes a deviation at that point more
-    detrimental to the fit.
-
-    """
-
-    def __init__(self, x, y=None, we=None, wd=None, fix=None, meta=None):
-        self.x = _conv(x)
-
-        if not isinstance(self.x, np.ndarray):
-            raise ValueError("Expected an 'ndarray' of data for 'x', "
-                             f"but instead got data of type '{type(self.x).__name__}'")
-
-        self.y = _conv(y)
-        self.we = _conv(we)
-        self.wd = _conv(wd)
-        self.fix = _conv(fix)
-        self.meta = {} if meta is None else meta
-
-    def set_meta(self, **kwds):
-        """ Update the metadata dictionary with the keywords and data provided
-        by keywords.
-
-        Examples
-        --------
-        ::
-
-            data.set_meta(lab="Ph 7; Lab 26", title="Ag110 + Ag108 Decay")
-        """
-
-        self.meta.update(kwds)
-
-    def __getattr__(self, attr):
-        """ Dispatch attribute access to the metadata dictionary.
-        """
-        if attr != "meta" and attr in self.meta:
-            return self.meta[attr]
-        else:
-            raise AttributeError("'%s' not in metadata" % attr)
-
-
-class RealData(Data):
-    """
-    The data, with weightings as actual standard deviations and/or
-    covariances.
-
-    Parameters
-    ----------
-    x : array_like
-        Observed data for the independent variable of the regression
-    y : array_like, optional
-        If array-like, observed data for the dependent variable of the
-        regression. A scalar input implies that the model to be used on
-        the data is implicit.
-    sx : array_like, optional
-        Standard deviations of `x`.
-        `sx` are standard deviations of `x` and are converted to weights by
-        dividing 1.0 by their squares.
-    sy : array_like, optional
-        Standard deviations of `y`.
-        `sy` are standard deviations of `y` and are converted to weights by
-        dividing 1.0 by their squares.
-    covx : array_like, optional
-        Covariance of `x`
-        `covx` is an array of covariance matrices of `x` and are converted to
-        weights by performing a matrix inversion on each observation's
-        covariance matrix.
-    covy : array_like, optional
-        Covariance of `y`
-        `covy` is an array of covariance matrices and are converted to
-        weights by performing a matrix inversion on each observation's
-        covariance matrix.
-    fix : array_like, optional
-        The argument and member fix is the same as Data.fix and ODR.ifixx:
-        It is an array of integers with the same shape as `x` that
-        determines which input observations are treated as fixed. One can
-        use a sequence of length m (the dimensionality of the input
-        observations) to fix some dimensions for all observations. A value
-        of 0 fixes the observation, a value > 0 makes it free.
-    meta : dict, optional
-        Free-form dictionary for metadata.
-
-    Notes
-    -----
-    The weights `wd` and `we` are computed from provided values as follows:
-
-    `sx` and `sy` are converted to weights by dividing 1.0 by their squares.
-    For example, ``wd = 1./np.power(`sx`, 2)``.
-
-    `covx` and `covy` are arrays of covariance matrices and are converted to
-    weights by performing a matrix inversion on each observation's covariance
-    matrix. For example, ``we[i] = np.linalg.inv(covy[i])``.
-
-    These arguments follow the same structured argument conventions as wd and
-    we only restricted by their natures: `sx` and `sy` can't be rank-3, but
-    `covx` and `covy` can be.
-
-    Only set *either* `sx` or `covx` (not both). Setting both will raise an
-    exception. Same with `sy` and `covy`.
-
-    """
-
-    def __init__(self, x, y=None, sx=None, sy=None, covx=None, covy=None,
-                 fix=None, meta=None):
-        if (sx is not None) and (covx is not None):
-            raise ValueError("cannot set both sx and covx")
-        if (sy is not None) and (covy is not None):
-            raise ValueError("cannot set both sy and covy")
-
-        # Set flags for __getattr__
-        self._ga_flags = {}
-        if sx is not None:
-            self._ga_flags['wd'] = 'sx'
-        else:
-            self._ga_flags['wd'] = 'covx'
-        if sy is not None:
-            self._ga_flags['we'] = 'sy'
-        else:
-            self._ga_flags['we'] = 'covy'
-
-        self.x = _conv(x)
-
-        if not isinstance(self.x, np.ndarray):
-            raise ValueError("Expected an 'ndarray' of data for 'x', "
-                              f"but instead got data of type '{type(self.x).__name__}'")
-
-        self.y = _conv(y)
-        self.sx = _conv(sx)
-        self.sy = _conv(sy)
-        self.covx = _conv(covx)
-        self.covy = _conv(covy)
-        self.fix = _conv(fix)
-        self.meta = {} if meta is None else meta
-
-    def _sd2wt(self, sd):
-        """ Convert standard deviation to weights.
-        """
-
-        return 1./np.power(sd, 2)
-
-    def _cov2wt(self, cov):
-        """ Convert covariance matrix(-ices) to weights.
-        """
-
-        from scipy.linalg import inv
-
-        if len(cov.shape) == 2:
-            return inv(cov)
-        else:
-            weights = np.zeros(cov.shape, float)
-
-            for i in range(cov.shape[-1]):  # n
-                weights[:,:,i] = inv(cov[:,:,i])
-
-            return weights
-
-    def __getattr__(self, attr):
-    
-        if attr not in ('wd', 'we'):
-            if attr != "meta" and attr in self.meta:
-                return self.meta[attr]
-            else:
-                raise AttributeError("'%s' not in metadata" % attr)
-        else:
-            lookup_tbl = {('wd', 'sx'): (self._sd2wt, self.sx),
-                      ('wd', 'covx'): (self._cov2wt, self.covx),
-                      ('we', 'sy'): (self._sd2wt, self.sy),
-                      ('we', 'covy'): (self._cov2wt, self.covy)}
-            
-            func, arg = lookup_tbl[(attr, self._ga_flags[attr])]
-
-            if arg is not None:
-                return func(*(arg,))
-            else:
-                return None
-
-
-class Model:
-    """
-    The Model class stores information about the function you wish to fit.
-
-    It stores the function itself, at the least, and optionally stores
-    functions which compute the Jacobians used during fitting. Also, one
-    can provide a function that will provide reasonable starting values
-    for the fit parameters possibly given the set of data.
-
-    Parameters
-    ----------
-    fcn : function
-          fcn(beta, x) --> y
-    fjacb : function
-          Jacobian of fcn wrt the fit parameters beta.
-
-          fjacb(beta, x) --> @f_i(x,B)/@B_j
-    fjacd : function
-          Jacobian of fcn wrt the (possibly multidimensional) input
-          variable.
-
-          fjacd(beta, x) --> @f_i(x,B)/@x_j
-    extra_args : tuple, optional
-          If specified, `extra_args` should be a tuple of extra
-          arguments to pass to `fcn`, `fjacb`, and `fjacd`. Each will be called
-          by `apply(fcn, (beta, x) + extra_args)`
-    estimate : array_like of rank-1
-          Provides estimates of the fit parameters from the data
-
-          estimate(data) --> estbeta
-    implicit : boolean
-          If TRUE, specifies that the model
-          is implicit; i.e `fcn(beta, x)` ~= 0 and there is no y data to fit
-          against
-    meta : dict, optional
-          freeform dictionary of metadata for the model
-
-    Notes
-    -----
-    Note that the `fcn`, `fjacb`, and `fjacd` operate on NumPy arrays and
-    return a NumPy array. The `estimate` object takes an instance of the
-    Data class.
-
-    Here are the rules for the shapes of the argument and return
-    arrays of the callback functions:
-
-    `x`
-        if the input data is single-dimensional, then `x` is rank-1
-        array; i.e., ``x = array([1, 2, 3, ...]); x.shape = (n,)``
-        If the input data is multi-dimensional, then `x` is a rank-2 array;
-        i.e., ``x = array([[1, 2, ...], [2, 4, ...]]); x.shape = (m, n)``.
-        In all cases, it has the same shape as the input data array passed to
-        `~scipy.odr.odr`. `m` is the dimensionality of the input data,
-        `n` is the number of observations.
-    `y`
-        if the response variable is single-dimensional, then `y` is a
-        rank-1 array, i.e., ``y = array([2, 4, ...]); y.shape = (n,)``.
-        If the response variable is multi-dimensional, then `y` is a rank-2
-        array, i.e., ``y = array([[2, 4, ...], [3, 6, ...]]); y.shape =
-        (q, n)`` where `q` is the dimensionality of the response variable.
-    `beta`
-        rank-1 array of length `p` where `p` is the number of parameters;
-        i.e. ``beta = array([B_1, B_2, ..., B_p])``
-    `fjacb`
-        if the response variable is multi-dimensional, then the
-        return array's shape is `(q, p, n)` such that ``fjacb(x,beta)[l,k,i] =
-        d f_l(X,B)/d B_k`` evaluated at the ith data point.  If `q == 1`, then
-        the return array is only rank-2 and with shape `(p, n)`.
-    `fjacd`
-        as with fjacb, only the return array's shape is `(q, m, n)`
-        such that ``fjacd(x,beta)[l,j,i] = d f_l(X,B)/d X_j`` at the ith data
-        point.  If `q == 1`, then the return array's shape is `(m, n)`. If
-        `m == 1`, the shape is (q, n). If `m == q == 1`, the shape is `(n,)`.
-
-    """
-
-    def __init__(self, fcn, fjacb=None, fjacd=None,
-                 extra_args=None, estimate=None, implicit=0, meta=None):
-
-        self.fcn = fcn
-        self.fjacb = fjacb
-        self.fjacd = fjacd
-
-        if extra_args is not None:
-            extra_args = tuple(extra_args)
-
-        self.extra_args = extra_args
-        self.estimate = estimate
-        self.implicit = implicit
-        self.meta = meta if meta is not None else {}
-
-    def set_meta(self, **kwds):
-        """ Update the metadata dictionary with the keywords and data provided
-        here.
-
-        Examples
-        --------
-        set_meta(name="Exponential", equation="y = a exp(b x) + c")
-        """
-
-        self.meta.update(kwds)
-
-    def __getattr__(self, attr):
-        """ Dispatch attribute access to the metadata.
-        """
-
-        if attr != "meta" and attr in self.meta:
-            return self.meta[attr]
-        else:
-            raise AttributeError("'%s' not in metadata" % attr)
-
-
-class Output:
-    """
-    The Output class stores the output of an ODR run.
-
-    Attributes
-    ----------
-    beta : ndarray
-        Estimated parameter values, of shape (q,).
-    sd_beta : ndarray
-        Standard deviations of the estimated parameters, of shape (p,).
-    cov_beta : ndarray
-        Covariance matrix of the estimated parameters, of shape (p,p).
-        Note that this `cov_beta` is not scaled by the residual variance 
-        `res_var`, whereas `sd_beta` is. This means 
-        ``np.sqrt(np.diag(output.cov_beta * output.res_var))`` is the same 
-        result as `output.sd_beta`.
-    delta : ndarray, optional
-        Array of estimated errors in input variables, of same shape as `x`.
-    eps : ndarray, optional
-        Array of estimated errors in response variables, of same shape as `y`.
-    xplus : ndarray, optional
-        Array of ``x + delta``.
-    y : ndarray, optional
-        Array ``y = fcn(x + delta)``.
-    res_var : float, optional
-        Residual variance.
-    sum_square : float, optional
-        Sum of squares error.
-    sum_square_delta : float, optional
-        Sum of squares of delta error.
-    sum_square_eps : float, optional
-        Sum of squares of eps error.
-    inv_condnum : float, optional
-        Inverse condition number (cf. ODRPACK UG p. 77).
-    rel_error : float, optional
-        Relative error in function values computed within fcn.
-    work : ndarray, optional
-        Final work array.
-    work_ind : dict, optional
-        Indices into work for drawing out values (cf. ODRPACK UG p. 83).
-    info : int, optional
-        Reason for returning, as output by ODRPACK (cf. ODRPACK UG p. 38).
-    stopreason : list of str, optional
-        `info` interpreted into English.
-
-    Notes
-    -----
-    Takes one argument for initialization, the return value from the
-    function `~scipy.odr.odr`. The attributes listed as "optional" above are
-    only present if `~scipy.odr.odr` was run with ``full_output=1``.
-
-    """
-
-    def __init__(self, output):
-        self.beta = output[0]
-        self.sd_beta = output[1]
-        self.cov_beta = output[2]
-
-        if len(output) == 4:
-            # full output
-            self.__dict__.update(output[3])
-            self.stopreason = _report_error(self.info)
-
-    def pprint(self):
-        """ Pretty-print important results.
-        """
-
-        print('Beta:', self.beta)
-        print('Beta Std Error:', self.sd_beta)
-        print('Beta Covariance:', self.cov_beta)
-        if hasattr(self, 'info'):
-            print('Residual Variance:',self.res_var)
-            print('Inverse Condition #:', self.inv_condnum)
-            print('Reason(s) for Halting:')
-            for r in self.stopreason:
-                print('  %s' % r)
-
-
-class ODR:
-    """
-    The ODR class gathers all information and coordinates the running of the
-    main fitting routine.
-
-    Members of instances of the ODR class have the same names as the arguments
-    to the initialization routine.
-
-    Parameters
-    ----------
-    data : Data class instance
-        instance of the Data class
-    model : Model class instance
-        instance of the Model class
-
-    Other Parameters
-    ----------------
-    beta0 : array_like of rank-1
-        a rank-1 sequence of initial parameter values. Optional if
-        model provides an "estimate" function to estimate these values.
-    delta0 : array_like of floats of rank-1, optional
-        a (double-precision) float array to hold the initial values of
-        the errors in the input variables. Must be same shape as data.x
-    ifixb : array_like of ints of rank-1, optional
-        sequence of integers with the same length as beta0 that determines
-        which parameters are held fixed. A value of 0 fixes the parameter,
-        a value > 0 makes the parameter free.
-    ifixx : array_like of ints with same shape as data.x, optional
-        an array of integers with the same shape as data.x that determines
-        which input observations are treated as fixed. One can use a sequence
-        of length m (the dimensionality of the input observations) to fix some
-        dimensions for all observations. A value of 0 fixes the observation,
-        a value > 0 makes it free.
-    job : int, optional
-        an integer telling ODRPACK what tasks to perform. See p. 31 of the
-        ODRPACK User's Guide if you absolutely must set the value here. Use the
-        method set_job post-initialization for a more readable interface.
-    iprint : int, optional
-        an integer telling ODRPACK what to print. See pp. 33-34 of the
-        ODRPACK User's Guide if you absolutely must set the value here. Use the
-        method set_iprint post-initialization for a more readable interface.
-    errfile : str, optional
-        string with the filename to print ODRPACK errors to. If the file already
-        exists, an error will be thrown. The `overwrite` argument can be used to
-        prevent this. *Do Not Open This File Yourself!*
-    rptfile : str, optional
-        string with the filename to print ODRPACK summaries to. If the file
-        already exists, an error will be thrown. The `overwrite` argument can be
-        used to prevent this. *Do Not Open This File Yourself!*
-    ndigit : int, optional
-        integer specifying the number of reliable digits in the computation
-        of the function.
-    taufac : float, optional
-        float specifying the initial trust region. The default value is 1.
-        The initial trust region is equal to taufac times the length of the
-        first computed Gauss-Newton step. taufac must be less than 1.
-    sstol : float, optional
-        float specifying the tolerance for convergence based on the relative
-        change in the sum-of-squares. The default value is eps**(1/2) where eps
-        is the smallest value such that 1 + eps > 1 for double precision
-        computation on the machine. sstol must be less than 1.
-    partol : float, optional
-        float specifying the tolerance for convergence based on the relative
-        change in the estimated parameters. The default value is eps**(2/3) for
-        explicit models and ``eps**(1/3)`` for implicit models. partol must be less
-        than 1.
-    maxit : int, optional
-        integer specifying the maximum number of iterations to perform. For
-        first runs, maxit is the total number of iterations performed and
-        defaults to 50. For restarts, maxit is the number of additional
-        iterations to perform and defaults to 10.
-    stpb : array_like, optional
-        sequence (``len(stpb) == len(beta0)``) of relative step sizes to compute
-        finite difference derivatives wrt the parameters.
-    stpd : optional
-        array (``stpd.shape == data.x.shape`` or ``stpd.shape == (m,)``) of relative
-        step sizes to compute finite difference derivatives wrt the input
-        variable errors. If stpd is a rank-1 array with length m (the
-        dimensionality of the input variable), then the values are broadcast to
-        all observations.
-    sclb : array_like, optional
-        sequence (``len(stpb) == len(beta0)``) of scaling factors for the
-        parameters. The purpose of these scaling factors are to scale all of
-        the parameters to around unity. Normally appropriate scaling factors
-        are computed if this argument is not specified. Specify them yourself
-        if the automatic procedure goes awry.
-    scld : array_like, optional
-        array (scld.shape == data.x.shape or scld.shape == (m,)) of scaling
-        factors for the *errors* in the input variables. Again, these factors
-        are automatically computed if you do not provide them. If scld.shape ==
-        (m,), then the scaling factors are broadcast to all observations.
-    work : ndarray, optional
-        array to hold the double-valued working data for ODRPACK. When
-        restarting, takes the value of self.output.work.
-    iwork : ndarray, optional
-        array to hold the integer-valued working data for ODRPACK. When
-        restarting, takes the value of self.output.iwork.
-    overwrite : bool, optional
-        If it is True, output files defined by `errfile` and `rptfile` are
-        overwritten. The default is False.
-
-    Attributes
-    ----------
-    data : Data
-        The data for this fit
-    model : Model
-        The model used in fit
-    output : Output
-        An instance if the Output class containing all of the returned
-        data from an invocation of ODR.run() or ODR.restart()
-
-    """
-
-    def __init__(self, data, model, beta0=None, delta0=None, ifixb=None,
-        ifixx=None, job=None, iprint=None, errfile=None, rptfile=None,
-        ndigit=None, taufac=None, sstol=None, partol=None, maxit=None,
-        stpb=None, stpd=None, sclb=None, scld=None, work=None, iwork=None,
-        overwrite=False):
-
-        self.data = data
-        self.model = model
-
-        if beta0 is None:
-            if self.model.estimate is not None:
-                self.beta0 = _conv(self.model.estimate(self.data))
-            else:
-                raise ValueError(
-                  "must specify beta0 or provide an estimator with the model"
-                )
-        else:
-            self.beta0 = _conv(beta0)
-
-        if ifixx is None and data.fix is not None:
-            ifixx = data.fix
-
-        if overwrite:
-            # remove output files for overwriting.
-            if rptfile is not None and os.path.exists(rptfile):
-                os.remove(rptfile)
-            if errfile is not None and os.path.exists(errfile):
-                os.remove(errfile)
-
-        self.delta0 = _conv(delta0)
-        # These really are 32-bit integers in FORTRAN (gfortran), even on 64-bit
-        # platforms.
-        # XXX: some other FORTRAN compilers may not agree.
-        self.ifixx = _conv(ifixx, dtype=np.int32)
-        self.ifixb = _conv(ifixb, dtype=np.int32)
-        self.job = job
-        self.iprint = iprint
-        self.errfile = errfile
-        self.rptfile = rptfile
-        self.ndigit = ndigit
-        self.taufac = taufac
-        self.sstol = sstol
-        self.partol = partol
-        self.maxit = maxit
-        self.stpb = _conv(stpb)
-        self.stpd = _conv(stpd)
-        self.sclb = _conv(sclb)
-        self.scld = _conv(scld)
-        self.work = _conv(work)
-        self.iwork = _conv(iwork)
-
-        self.output = None
-
-        self._check()
-
-    def _check(self):
-        """ Check the inputs for consistency, but don't bother checking things
-        that the builtin function odr will check.
-        """
-
-        x_s = list(self.data.x.shape)
-
-        if isinstance(self.data.y, np.ndarray):
-            y_s = list(self.data.y.shape)
-            if self.model.implicit:
-                raise OdrError("an implicit model cannot use response data")
-        else:
-            # implicit model with q == self.data.y
-            y_s = [self.data.y, x_s[-1]]
-            if not self.model.implicit:
-                raise OdrError("an explicit model needs response data")
-            self.set_job(fit_type=1)
-
-        if x_s[-1] != y_s[-1]:
-            raise OdrError("number of observations do not match")
-
-        n = x_s[-1]
-
-        if len(x_s) == 2:
-            m = x_s[0]
-        else:
-            m = 1
-        if len(y_s) == 2:
-            q = y_s[0]
-        else:
-            q = 1
-
-        p = len(self.beta0)
-
-        # permissible output array shapes
-
-        fcn_perms = [(q, n)]
-        fjacd_perms = [(q, m, n)]
-        fjacb_perms = [(q, p, n)]
-
-        if q == 1:
-            fcn_perms.append((n,))
-            fjacd_perms.append((m, n))
-            fjacb_perms.append((p, n))
-        if m == 1:
-            fjacd_perms.append((q, n))
-        if p == 1:
-            fjacb_perms.append((q, n))
-        if m == q == 1:
-            fjacd_perms.append((n,))
-        if p == q == 1:
-            fjacb_perms.append((n,))
-
-        # try evaluating the supplied functions to make sure they provide
-        # sensible outputs
-
-        arglist = (self.beta0, self.data.x)
-        if self.model.extra_args is not None:
-            arglist = arglist + self.model.extra_args
-        res = self.model.fcn(*arglist)
-
-        if res.shape not in fcn_perms:
-            print(res.shape)
-            print(fcn_perms)
-            raise OdrError("fcn does not output %s-shaped array" % y_s)
-
-        if self.model.fjacd is not None:
-            res = self.model.fjacd(*arglist)
-            if res.shape not in fjacd_perms:
-                raise OdrError(
-                    "fjacd does not output %s-shaped array" % repr((q, m, n)))
-        if self.model.fjacb is not None:
-            res = self.model.fjacb(*arglist)
-            if res.shape not in fjacb_perms:
-                raise OdrError(
-                    "fjacb does not output %s-shaped array" % repr((q, p, n)))
-
-        # check shape of delta0
-
-        if self.delta0 is not None and self.delta0.shape != self.data.x.shape:
-            raise OdrError(
-                "delta0 is not a %s-shaped array" % repr(self.data.x.shape))
-
-        if self.data.x.size == 0:
-            warn("Empty data detected for ODR instance. "
-                 "Do not expect any fitting to occur",
-                 OdrWarning, stacklevel=3)
-
-    def _gen_work(self):
-        """ Generate a suitable work array if one does not already exist.
-        """
-
-        n = self.data.x.shape[-1]
-        p = self.beta0.shape[0]
-
-        if len(self.data.x.shape) == 2:
-            m = self.data.x.shape[0]
-        else:
-            m = 1
-
-        if self.model.implicit:
-            q = self.data.y
-        elif len(self.data.y.shape) == 2:
-            q = self.data.y.shape[0]
-        else:
-            q = 1
-
-        if self.data.we is None:
-            ldwe = ld2we = 1
-        elif len(self.data.we.shape) == 3:
-            ld2we, ldwe = self.data.we.shape[1:]
-        else:
-            we = self.data.we
-            ldwe = 1
-            ld2we = 1
-            if we.ndim == 1 and q == 1:
-                ldwe = n
-            elif we.ndim == 2:
-                if we.shape == (q, q):
-                    ld2we = q
-                elif we.shape == (q, n):
-                    ldwe = n
-
-        if self.job % 10 < 2:
-            # ODR not OLS
-            lwork = (18 + 11*p + p*p + m + m*m + 4*n*q + 6*n*m + 2*n*q*p +
-                     2*n*q*m + q*q + 5*q + q*(p+m) + ldwe*ld2we*q)
-        else:
-            # OLS not ODR
-            lwork = (18 + 11*p + p*p + m + m*m + 4*n*q + 2*n*m + 2*n*q*p +
-                     5*q + q*(p+m) + ldwe*ld2we*q)
-
-        if isinstance(self.work, np.ndarray) and self.work.shape == (lwork,)\
-                and self.work.dtype.str.endswith('f8'):
-            # the existing array is fine
-            return
-        else:
-            self.work = np.zeros((lwork,), float)
-
-    def set_job(self, fit_type=None, deriv=None, var_calc=None,
-        del_init=None, restart=None):
-        """
-        Sets the "job" parameter is a hopefully comprehensible way.
-
-        If an argument is not specified, then the value is left as is. The
-        default value from class initialization is for all of these options set
-        to 0.
-
-        Parameters
-        ----------
-        fit_type : {0, 1, 2} int
-            0 -> explicit ODR
-
-            1 -> implicit ODR
-
-            2 -> ordinary least-squares
-        deriv : {0, 1, 2, 3} int
-            0 -> forward finite differences
-
-            1 -> central finite differences
-
-            2 -> user-supplied derivatives (Jacobians) with results
-              checked by ODRPACK
-
-            3 -> user-supplied derivatives, no checking
-        var_calc : {0, 1, 2} int
-            0 -> calculate asymptotic covariance matrix and fit
-                 parameter uncertainties (V_B, s_B) using derivatives
-                 recomputed at the final solution
-
-            1 -> calculate V_B and s_B using derivatives from last iteration
-
-            2 -> do not calculate V_B and s_B
-        del_init : {0, 1} int
-            0 -> initial input variable offsets set to 0
-
-            1 -> initial offsets provided by user in variable "work"
-        restart : {0, 1} int
-            0 -> fit is not a restart
-
-            1 -> fit is a restart
-
-        Notes
-        -----
-        The permissible values are different from those given on pg. 31 of the
-        ODRPACK User's Guide only in that one cannot specify numbers greater than
-        the last value for each variable.
-
-        If one does not supply functions to compute the Jacobians, the fitting
-        procedure will change deriv to 0, finite differences, as a default. To
-        initialize the input variable offsets by yourself, set del_init to 1 and
-        put the offsets into the "work" variable correctly.
-
-        """
-
-        if self.job is None:
-            job_l = [0, 0, 0, 0, 0]
-        else:
-            job_l = [self.job // 10000 % 10,
-                     self.job // 1000 % 10,
-                     self.job // 100 % 10,
-                     self.job // 10 % 10,
-                     self.job % 10]
-
-        if fit_type in (0, 1, 2):
-            job_l[4] = fit_type
-        if deriv in (0, 1, 2, 3):
-            job_l[3] = deriv
-        if var_calc in (0, 1, 2):
-            job_l[2] = var_calc
-        if del_init in (0, 1):
-            job_l[1] = del_init
-        if restart in (0, 1):
-            job_l[0] = restart
-
-        self.job = (job_l[0]*10000 + job_l[1]*1000 +
-                    job_l[2]*100 + job_l[3]*10 + job_l[4])
-
-    def set_iprint(self, init=None, so_init=None,
-        iter=None, so_iter=None, iter_step=None, final=None, so_final=None):
-        """ Set the iprint parameter for the printing of computation reports.
-
-        If any of the arguments are specified here, then they are set in the
-        iprint member. If iprint is not set manually or with this method, then
-        ODRPACK defaults to no printing. If no filename is specified with the
-        member rptfile, then ODRPACK prints to stdout. One can tell ODRPACK to
-        print to stdout in addition to the specified filename by setting the
-        so_* arguments to this function, but one cannot specify to print to
-        stdout but not a file since one can do that by not specifying a rptfile
-        filename.
-
-        There are three reports: initialization, iteration, and final reports.
-        They are represented by the arguments init, iter, and final
-        respectively.  The permissible values are 0, 1, and 2 representing "no
-        report", "short report", and "long report" respectively.
-
-        The argument iter_step (0 <= iter_step <= 9) specifies how often to make
-        the iteration report; the report will be made for every iter_step'th
-        iteration starting with iteration one. If iter_step == 0, then no
-        iteration report is made, regardless of the other arguments.
-
-        If the rptfile is None, then any so_* arguments supplied will raise an
-        exception.
-        """
-        if self.iprint is None:
-            self.iprint = 0
-
-        ip = [self.iprint // 1000 % 10,
-              self.iprint // 100 % 10,
-              self.iprint // 10 % 10,
-              self.iprint % 10]
-
-        # make a list to convert iprint digits to/from argument inputs
-        #                   rptfile, stdout
-        ip2arg = [[0, 0],  # none,  none
-                  [1, 0],  # short, none
-                  [2, 0],  # long,  none
-                  [1, 1],  # short, short
-                  [2, 1],  # long,  short
-                  [1, 2],  # short, long
-                  [2, 2]]  # long,  long
-
-        if (self.rptfile is None and
-            (so_init is not None or
-             so_iter is not None or
-             so_final is not None)):
-            raise OdrError(
-                "no rptfile specified, cannot output to stdout twice")
-
-        iprint_l = ip2arg[ip[0]] + ip2arg[ip[1]] + ip2arg[ip[3]]
-
-        if init is not None:
-            iprint_l[0] = init
-        if so_init is not None:
-            iprint_l[1] = so_init
-        if iter is not None:
-            iprint_l[2] = iter
-        if so_iter is not None:
-            iprint_l[3] = so_iter
-        if final is not None:
-            iprint_l[4] = final
-        if so_final is not None:
-            iprint_l[5] = so_final
-
-        if iter_step in range(10):
-            # 0..9
-            ip[2] = iter_step
-
-        ip[0] = ip2arg.index(iprint_l[0:2])
-        ip[1] = ip2arg.index(iprint_l[2:4])
-        ip[3] = ip2arg.index(iprint_l[4:6])
-
-        self.iprint = ip[0]*1000 + ip[1]*100 + ip[2]*10 + ip[3]
-
-    def run(self):
-        """ Run the fitting routine with all of the information given and with ``full_output=1``.
-
-        Returns
-        -------
-        output : Output instance
-            This object is also assigned to the attribute .output .
-        """  # noqa: E501
-
-        args = (self.model.fcn, self.beta0, self.data.y, self.data.x)
-        kwds = {'full_output': 1}
-        kwd_l = ['ifixx', 'ifixb', 'job', 'iprint', 'errfile', 'rptfile',
-                 'ndigit', 'taufac', 'sstol', 'partol', 'maxit', 'stpb',
-                 'stpd', 'sclb', 'scld', 'work', 'iwork']
-
-        if self.delta0 is not None and (self.job // 10000) % 10 == 0:
-            # delta0 provided and fit is not a restart
-            self._gen_work()
-
-            d0 = np.ravel(self.delta0)
-
-            self.work[:len(d0)] = d0
-
-        # set the kwds from other objects explicitly
-        if self.model.fjacb is not None:
-            kwds['fjacb'] = self.model.fjacb
-        if self.model.fjacd is not None:
-            kwds['fjacd'] = self.model.fjacd
-        if self.data.we is not None:
-            kwds['we'] = self.data.we
-        if self.data.wd is not None:
-            kwds['wd'] = self.data.wd
-        if self.model.extra_args is not None:
-            kwds['extra_args'] = self.model.extra_args
-
-        # implicitly set kwds from self's members
-        for attr in kwd_l:
-            obj = getattr(self, attr)
-            if obj is not None:
-                kwds[attr] = obj
-
-        self.output = Output(odr(*args, **kwds))
-
-        return self.output
-
-    def restart(self, iter=None):
-        """ Restarts the run with iter more iterations.
-
-        Parameters
-        ----------
-        iter : int, optional
-            ODRPACK's default for the number of new iterations is 10.
-
-        Returns
-        -------
-        output : Output instance
-            This object is also assigned to the attribute .output .
-        """
-
-        if self.output is None:
-            raise OdrError("cannot restart: run() has not been called before")
-
-        self.set_job(restart=1)
-        self.work = self.output.work
-        self.iwork = self.output.iwork
-
-        self.maxit = iter
-
-        return self.run()
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/models.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/models.py
deleted file mode 100644
index 0289b59747bb68a4954e58732ac69d7df144f5f6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/models.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.odr` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = [  # noqa: F822
-    'Model', 'exponential', 'multilinear', 'unilinear',
-    'quadratic', 'polynomial'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="odr", module="models",
-                                   private_modules=["_models"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/odrpack.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/odrpack.py
deleted file mode 100644
index 192fb3342b7957703996957c882d44656706e41b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/odrpack.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.odr` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = [  # noqa: F822
-    'odr', 'OdrWarning', 'OdrError', 'OdrStop',
-    'Data', 'RealData', 'Model', 'Output', 'ODR',
-    'odr_error', 'odr_stop'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="odr", module="odrpack",
-                                   private_modules=["_odrpack"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 4200dcd12fa459ccb6c7e5656b472a9fc145027c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/__pycache__/test_odr.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/__pycache__/test_odr.cpython-310.pyc
deleted file mode 100644
index d14ca3c88d17e703a34b8b5e5d497f978a74765b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/__pycache__/test_odr.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/test_odr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/test_odr.py
deleted file mode 100644
index d3aa91595b7100d56bf0d9716017b0ef01a52aa5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/odr/tests/test_odr.py
+++ /dev/null
@@ -1,606 +0,0 @@
-import pickle
-import tempfile
-import shutil
-import os
-
-import numpy as np
-from numpy import pi
-from numpy.testing import (assert_array_almost_equal,
-                           assert_equal, assert_warns,
-                           assert_allclose)
-import pytest
-from pytest import raises as assert_raises
-
-from scipy.odr import (Data, Model, ODR, RealData, OdrStop, OdrWarning,
-                       multilinear, exponential, unilinear, quadratic,
-                       polynomial)
-
-
-class TestODR:
-
-    # Bad Data for 'x'
-
-    def test_bad_data(self):
-        assert_raises(ValueError, Data, 2, 1)
-        assert_raises(ValueError, RealData, 2, 1)
-
-    # Empty Data for 'x'
-    def empty_data_func(self, B, x):
-        return B[0]*x + B[1]
-
-    def test_empty_data(self):
-        beta0 = [0.02, 0.0]
-        linear = Model(self.empty_data_func)
-
-        empty_dat = Data([], [])
-        assert_warns(OdrWarning, ODR,
-                     empty_dat, linear, beta0=beta0)
-
-        empty_dat = RealData([], [])
-        assert_warns(OdrWarning, ODR,
-                     empty_dat, linear, beta0=beta0)
-
-    # Explicit Example
-
-    def explicit_fcn(self, B, x):
-        ret = B[0] + B[1] * np.power(np.exp(B[2]*x) - 1.0, 2)
-        return ret
-
-    def explicit_fjd(self, B, x):
-        eBx = np.exp(B[2]*x)
-        ret = B[1] * 2.0 * (eBx-1.0) * B[2] * eBx
-        return ret
-
-    def explicit_fjb(self, B, x):
-        eBx = np.exp(B[2]*x)
-        res = np.vstack([np.ones(x.shape[-1]),
-                         np.power(eBx-1.0, 2),
-                         B[1]*2.0*(eBx-1.0)*eBx*x])
-        return res
-
-    def test_explicit(self):
-        explicit_mod = Model(
-            self.explicit_fcn,
-            fjacb=self.explicit_fjb,
-            fjacd=self.explicit_fjd,
-            meta=dict(name='Sample Explicit Model',
-                      ref='ODRPACK UG, pg. 39'),
-        )
-        explicit_dat = Data([0.,0.,5.,7.,7.5,10.,16.,26.,30.,34.,34.5,100.],
-                        [1265.,1263.6,1258.,1254.,1253.,1249.8,1237.,1218.,1220.6,
-                         1213.8,1215.5,1212.])
-        explicit_odr = ODR(explicit_dat, explicit_mod, beta0=[1500.0, -50.0, -0.1],
-                       ifixx=[0,0,1,1,1,1,1,1,1,1,1,0])
-        explicit_odr.set_job(deriv=2)
-        explicit_odr.set_iprint(init=0, iter=0, final=0)
-
-        out = explicit_odr.run()
-        assert_array_almost_equal(
-            out.beta,
-            np.array([1.2646548050648876e+03, -5.4018409956678255e+01,
-                -8.7849712165253724e-02]),
-        )
-        assert_array_almost_equal(
-            out.sd_beta,
-            np.array([1.0349270280543437, 1.583997785262061, 0.0063321988657267]),
-        )
-        assert_array_almost_equal(
-            out.cov_beta,
-            np.array([[4.4949592379003039e-01, -3.7421976890364739e-01,
-                 -8.0978217468468912e-04],
-               [-3.7421976890364739e-01, 1.0529686462751804e+00,
-                 -1.9453521827942002e-03],
-               [-8.0978217468468912e-04, -1.9453521827942002e-03,
-                  1.6827336938454476e-05]]),
-        )
-
-    # Implicit Example
-
-    def implicit_fcn(self, B, x):
-        return (B[2]*np.power(x[0]-B[0], 2) +
-                2.0*B[3]*(x[0]-B[0])*(x[1]-B[1]) +
-                B[4]*np.power(x[1]-B[1], 2) - 1.0)
-
-    def test_implicit(self):
-        implicit_mod = Model(
-            self.implicit_fcn,
-            implicit=1,
-            meta=dict(name='Sample Implicit Model',
-                      ref='ODRPACK UG, pg. 49'),
-        )
-        implicit_dat = Data([
-            [0.5,1.2,1.6,1.86,2.12,2.36,2.44,2.36,2.06,1.74,1.34,0.9,-0.28,
-             -0.78,-1.36,-1.9,-2.5,-2.88,-3.18,-3.44],
-            [-0.12,-0.6,-1.,-1.4,-2.54,-3.36,-4.,-4.75,-5.25,-5.64,-5.97,-6.32,
-             -6.44,-6.44,-6.41,-6.25,-5.88,-5.5,-5.24,-4.86]],
-            1,
-        )
-        implicit_odr = ODR(implicit_dat, implicit_mod,
-            beta0=[-1.0, -3.0, 0.09, 0.02, 0.08])
-
-        out = implicit_odr.run()
-        assert_array_almost_equal(
-            out.beta,
-            np.array([-0.9993809167281279, -2.9310484652026476, 0.0875730502693354,
-                0.0162299708984738, 0.0797537982976416]),
-        )
-        assert_array_almost_equal(
-            out.sd_beta,
-            np.array([0.1113840353364371, 0.1097673310686467, 0.0041060738314314,
-                0.0027500347539902, 0.0034962501532468]),
-        )
-        assert_allclose(
-            out.cov_beta,
-            np.array([[2.1089274602333052e+00, -1.9437686411979040e+00,
-                  7.0263550868344446e-02, -4.7175267373474862e-02,
-                  5.2515575927380355e-02],
-               [-1.9437686411979040e+00, 2.0481509222414456e+00,
-                 -6.1600515853057307e-02, 4.6268827806232933e-02,
-                 -5.8822307501391467e-02],
-               [7.0263550868344446e-02, -6.1600515853057307e-02,
-                  2.8659542561579308e-03, -1.4628662260014491e-03,
-                  1.4528860663055824e-03],
-               [-4.7175267373474862e-02, 4.6268827806232933e-02,
-                 -1.4628662260014491e-03, 1.2855592885514335e-03,
-                 -1.2692942951415293e-03],
-               [5.2515575927380355e-02, -5.8822307501391467e-02,
-                  1.4528860663055824e-03, -1.2692942951415293e-03,
-                  2.0778813389755596e-03]]),
-            rtol=1e-6, atol=2e-6,
-        )
-
-    # Multi-variable Example
-
-    def multi_fcn(self, B, x):
-        if (x < 0.0).any():
-            raise OdrStop
-        theta = pi*B[3]/2.
-        ctheta = np.cos(theta)
-        stheta = np.sin(theta)
-        omega = np.power(2.*pi*x*np.exp(-B[2]), B[3])
-        phi = np.arctan2((omega*stheta), (1.0 + omega*ctheta))
-        r = (B[0] - B[1]) * np.power(np.sqrt(np.power(1.0 + omega*ctheta, 2) +
-             np.power(omega*stheta, 2)), -B[4])
-        ret = np.vstack([B[1] + r*np.cos(B[4]*phi),
-                         r*np.sin(B[4]*phi)])
-        return ret
-
-    def test_multi(self):
-        multi_mod = Model(
-            self.multi_fcn,
-            meta=dict(name='Sample Multi-Response Model',
-                      ref='ODRPACK UG, pg. 56'),
-        )
-
-        multi_x = np.array([30.0, 50.0, 70.0, 100.0, 150.0, 200.0, 300.0, 500.0,
-            700.0, 1000.0, 1500.0, 2000.0, 3000.0, 5000.0, 7000.0, 10000.0,
-            15000.0, 20000.0, 30000.0, 50000.0, 70000.0, 100000.0, 150000.0])
-        multi_y = np.array([
-            [4.22, 4.167, 4.132, 4.038, 4.019, 3.956, 3.884, 3.784, 3.713,
-             3.633, 3.54, 3.433, 3.358, 3.258, 3.193, 3.128, 3.059, 2.984,
-             2.934, 2.876, 2.838, 2.798, 2.759],
-            [0.136, 0.167, 0.188, 0.212, 0.236, 0.257, 0.276, 0.297, 0.309,
-             0.311, 0.314, 0.311, 0.305, 0.289, 0.277, 0.255, 0.24, 0.218,
-             0.202, 0.182, 0.168, 0.153, 0.139],
-        ])
-        n = len(multi_x)
-        multi_we = np.zeros((2, 2, n), dtype=float)
-        multi_ifixx = np.ones(n, dtype=int)
-        multi_delta = np.zeros(n, dtype=float)
-
-        multi_we[0,0,:] = 559.6
-        multi_we[1,0,:] = multi_we[0,1,:] = -1634.0
-        multi_we[1,1,:] = 8397.0
-
-        for i in range(n):
-            if multi_x[i] < 100.0:
-                multi_ifixx[i] = 0
-            elif multi_x[i] <= 150.0:
-                pass  # defaults are fine
-            elif multi_x[i] <= 1000.0:
-                multi_delta[i] = 25.0
-            elif multi_x[i] <= 10000.0:
-                multi_delta[i] = 560.0
-            elif multi_x[i] <= 100000.0:
-                multi_delta[i] = 9500.0
-            else:
-                multi_delta[i] = 144000.0
-            if multi_x[i] == 100.0 or multi_x[i] == 150.0:
-                multi_we[:,:,i] = 0.0
-
-        multi_dat = Data(multi_x, multi_y, wd=1e-4/np.power(multi_x, 2),
-            we=multi_we)
-        multi_odr = ODR(multi_dat, multi_mod, beta0=[4.,2.,7.,.4,.5],
-            delta0=multi_delta, ifixx=multi_ifixx)
-        multi_odr.set_job(deriv=1, del_init=1)
-
-        out = multi_odr.run()
-        assert_array_almost_equal(
-            out.beta,
-            np.array([4.3799880305938963, 2.4333057577497703, 8.0028845899503978,
-                0.5101147161764654, 0.5173902330489161]),
-        )
-        assert_array_almost_equal(
-            out.sd_beta,
-            np.array([0.0130625231081944, 0.0130499785273277, 0.1167085962217757,
-                0.0132642749596149, 0.0288529201353984]),
-        )
-        assert_array_almost_equal(
-            out.cov_beta,
-            np.array([[0.0064918418231375, 0.0036159705923791, 0.0438637051470406,
-                -0.0058700836512467, 0.011281212888768],
-               [0.0036159705923791, 0.0064793789429006, 0.0517610978353126,
-                -0.0051181304940204, 0.0130726943624117],
-               [0.0438637051470406, 0.0517610978353126, 0.5182263323095322,
-                -0.0563083340093696, 0.1269490939468611],
-               [-0.0058700836512467, -0.0051181304940204, -0.0563083340093696,
-                 0.0066939246261263, -0.0140184391377962],
-               [0.011281212888768, 0.0130726943624117, 0.1269490939468611,
-                -0.0140184391377962, 0.0316733013820852]]),
-        )
-
-    # Pearson's Data
-    # K. Pearson, Philosophical Magazine, 2, 559 (1901)
-
-    def pearson_fcn(self, B, x):
-        return B[0] + B[1]*x
-
-    def test_pearson(self):
-        p_x = np.array([0.,.9,1.8,2.6,3.3,4.4,5.2,6.1,6.5,7.4])
-        p_y = np.array([5.9,5.4,4.4,4.6,3.5,3.7,2.8,2.8,2.4,1.5])
-        p_sx = np.array([.03,.03,.04,.035,.07,.11,.13,.22,.74,1.])
-        p_sy = np.array([1.,.74,.5,.35,.22,.22,.12,.12,.1,.04])
-
-        p_dat = RealData(p_x, p_y, sx=p_sx, sy=p_sy)
-
-        # Reverse the data to test invariance of results
-        pr_dat = RealData(p_y, p_x, sx=p_sy, sy=p_sx)
-
-        p_mod = Model(self.pearson_fcn, meta=dict(name='Uni-linear Fit'))
-
-        p_odr = ODR(p_dat, p_mod, beta0=[1.,1.])
-        pr_odr = ODR(pr_dat, p_mod, beta0=[1.,1.])
-
-        out = p_odr.run()
-        assert_array_almost_equal(
-            out.beta,
-            np.array([5.4767400299231674, -0.4796082367610305]),
-        )
-        assert_array_almost_equal(
-            out.sd_beta,
-            np.array([0.3590121690702467, 0.0706291186037444]),
-        )
-        assert_array_almost_equal(
-            out.cov_beta,
-            np.array([[0.0854275622946333, -0.0161807025443155],
-               [-0.0161807025443155, 0.003306337993922]]),
-        )
-
-        rout = pr_odr.run()
-        assert_array_almost_equal(
-            rout.beta,
-            np.array([11.4192022410781231, -2.0850374506165474]),
-        )
-        assert_array_almost_equal(
-            rout.sd_beta,
-            np.array([0.9820231665657161, 0.3070515616198911]),
-        )
-        assert_array_almost_equal(
-            rout.cov_beta,
-            np.array([[0.6391799462548782, -0.1955657291119177],
-               [-0.1955657291119177, 0.0624888159223392]]),
-        )
-
-    # Lorentz Peak
-    # The data is taken from one of the undergraduate physics labs I performed.
-
-    def lorentz(self, beta, x):
-        return (beta[0]*beta[1]*beta[2] / np.sqrt(np.power(x*x -
-            beta[2]*beta[2], 2.0) + np.power(beta[1]*x, 2.0)))
-
-    def test_lorentz(self):
-        l_sy = np.array([.29]*18)
-        l_sx = np.array([.000972971,.000948268,.000707632,.000706679,
-            .000706074, .000703918,.000698955,.000456856,
-            .000455207,.000662717,.000654619,.000652694,
-            .000000859202,.00106589,.00106378,.00125483, .00140818,.00241839])
-
-        l_dat = RealData(
-            [3.9094, 3.85945, 3.84976, 3.84716, 3.84551, 3.83964, 3.82608,
-             3.78847, 3.78163, 3.72558, 3.70274, 3.6973, 3.67373, 3.65982,
-             3.6562, 3.62498, 3.55525, 3.41886],
-            [652, 910.5, 984, 1000, 1007.5, 1053, 1160.5, 1409.5, 1430, 1122,
-             957.5, 920, 777.5, 709.5, 698, 578.5, 418.5, 275.5],
-            sx=l_sx,
-            sy=l_sy,
-        )
-        l_mod = Model(self.lorentz, meta=dict(name='Lorentz Peak'))
-        l_odr = ODR(l_dat, l_mod, beta0=(1000., .1, 3.8))
-
-        out = l_odr.run()
-        assert_array_almost_equal(
-            out.beta,
-            np.array([1.4306780846149925e+03, 1.3390509034538309e-01,
-                 3.7798193600109009e+00]),
-        )
-        assert_array_almost_equal(
-            out.sd_beta,
-            np.array([7.3621186811330963e-01, 3.5068899941471650e-04,
-                 2.4451209281408992e-04]),
-        )
-        assert_array_almost_equal(
-            out.cov_beta,
-            np.array([[2.4714409064597873e-01, -6.9067261911110836e-05,
-                 -3.1236953270424990e-05],
-               [-6.9067261911110836e-05, 5.6077531517333009e-08,
-                  3.6133261832722601e-08],
-               [-3.1236953270424990e-05, 3.6133261832722601e-08,
-                  2.7261220025171730e-08]]),
-        )
-
-    def test_ticket_1253(self):
-        def linear(c, x):
-            return c[0]*x+c[1]
-
-        c = [2.0, 3.0]
-        x = np.linspace(0, 10)
-        y = linear(c, x)
-
-        model = Model(linear)
-        data = Data(x, y, wd=1.0, we=1.0)
-        job = ODR(data, model, beta0=[1.0, 1.0])
-        result = job.run()
-        assert_equal(result.info, 2)
-
-    # Verify fix for gh-9140
-
-    def test_ifixx(self):
-        x1 = [-2.01, -0.99, -0.001, 1.02, 1.98]
-        x2 = [3.98, 1.01, 0.001, 0.998, 4.01]
-        fix = np.vstack((np.zeros_like(x1, dtype=int), np.ones_like(x2, dtype=int)))
-        data = Data(np.vstack((x1, x2)), y=1, fix=fix)
-        model = Model(lambda beta, x: x[1, :] - beta[0] * x[0, :]**2., implicit=True)
-
-        odr1 = ODR(data, model, beta0=np.array([1.]))
-        sol1 = odr1.run()
-        odr2 = ODR(data, model, beta0=np.array([1.]), ifixx=fix)
-        sol2 = odr2.run()
-        assert_equal(sol1.beta, sol2.beta)
-
-    # verify bugfix for #11800 in #11802
-    def test_ticket_11800(self):
-        # parameters
-        beta_true = np.array([1.0, 2.3, 1.1, -1.0, 1.3, 0.5])
-        nr_measurements = 10
-
-        std_dev_x = 0.01
-        x_error = np.array([[0.00063445, 0.00515731, 0.00162719, 0.01022866,
-            -0.01624845, 0.00482652, 0.00275988, -0.00714734, -0.00929201, -0.00687301],
-            [-0.00831623, -0.00821211, -0.00203459, 0.00938266, -0.00701829,
-            0.0032169, 0.00259194, -0.00581017, -0.0030283, 0.01014164]])
-
-        std_dev_y = 0.05
-        y_error = np.array([[0.05275304, 0.04519563, -0.07524086, 0.03575642,
-            0.04745194, 0.03806645, 0.07061601, -0.00753604, -0.02592543, -0.02394929],
-            [0.03632366, 0.06642266, 0.08373122, 0.03988822, -0.0092536,
-            -0.03750469, -0.03198903, 0.01642066, 0.01293648, -0.05627085]])
-
-        beta_solution = np.array([
-            2.62920235756665876536e+00, -1.26608484996299608838e+02,
-            1.29703572775403074502e+02, -1.88560985401185465804e+00,
-            7.83834160771274923718e+01, -7.64124076838087091801e+01])
-
-        # model's function and Jacobians
-        def func(beta, x):
-            y0 = beta[0] + beta[1] * x[0, :] + beta[2] * x[1, :]
-            y1 = beta[3] + beta[4] * x[0, :] + beta[5] * x[1, :]
-
-            return np.vstack((y0, y1))
-
-        def df_dbeta_odr(beta, x):
-            nr_meas = np.shape(x)[1]
-            zeros = np.zeros(nr_meas)
-            ones = np.ones(nr_meas)
-
-            dy0 = np.array([ones, x[0, :], x[1, :], zeros, zeros, zeros])
-            dy1 = np.array([zeros, zeros, zeros, ones, x[0, :], x[1, :]])
-
-            return np.stack((dy0, dy1))
-
-        def df_dx_odr(beta, x):
-            nr_meas = np.shape(x)[1]
-            ones = np.ones(nr_meas)
-
-            dy0 = np.array([beta[1] * ones, beta[2] * ones])
-            dy1 = np.array([beta[4] * ones, beta[5] * ones])
-            return np.stack((dy0, dy1))
-
-        # do measurements with errors in independent and dependent variables
-        x0_true = np.linspace(1, 10, nr_measurements)
-        x1_true = np.linspace(1, 10, nr_measurements)
-        x_true = np.array([x0_true, x1_true])
-
-        y_true = func(beta_true, x_true)
-
-        x_meas = x_true + x_error
-        y_meas = y_true + y_error
-
-        # estimate model's parameters
-        model_f = Model(func, fjacb=df_dbeta_odr, fjacd=df_dx_odr)
-
-        data = RealData(x_meas, y_meas, sx=std_dev_x, sy=std_dev_y)
-
-        odr_obj = ODR(data, model_f, beta0=0.9 * beta_true, maxit=100)
-        #odr_obj.set_iprint(init=2, iter=0, iter_step=1, final=1)
-        odr_obj.set_job(deriv=3)
-
-        odr_out = odr_obj.run()
-
-        # check results
-        assert_equal(odr_out.info, 1)
-        assert_array_almost_equal(odr_out.beta, beta_solution)
-
-    def test_multilinear_model(self):
-        x = np.linspace(0.0, 5.0)
-        y = 10.0 + 5.0 * x
-        data = Data(x, y)
-        odr_obj = ODR(data, multilinear)
-        output = odr_obj.run()
-        assert_array_almost_equal(output.beta, [10.0, 5.0])
-
-    def test_exponential_model(self):
-        x = np.linspace(0.0, 5.0)
-        y = -10.0 + np.exp(0.5*x)
-        data = Data(x, y)
-        odr_obj = ODR(data, exponential)
-        output = odr_obj.run()
-        assert_array_almost_equal(output.beta, [-10.0, 0.5])
-
-    def test_polynomial_model(self):
-        x = np.linspace(0.0, 5.0)
-        y = 1.0 + 2.0 * x + 3.0 * x ** 2 + 4.0 * x ** 3
-        poly_model = polynomial(3)
-        data = Data(x, y)
-        odr_obj = ODR(data, poly_model)
-        output = odr_obj.run()
-        assert_array_almost_equal(output.beta, [1.0, 2.0, 3.0, 4.0])
-
-    def test_unilinear_model(self):
-        x = np.linspace(0.0, 5.0)
-        y = 1.0 * x + 2.0
-        data = Data(x, y)
-        odr_obj = ODR(data, unilinear)
-        output = odr_obj.run()
-        assert_array_almost_equal(output.beta, [1.0, 2.0])
-
-    def test_quadratic_model(self):
-        x = np.linspace(0.0, 5.0)
-        y = 1.0 * x ** 2 + 2.0 * x + 3.0
-        data = Data(x, y)
-        odr_obj = ODR(data, quadratic)
-        output = odr_obj.run()
-        assert_array_almost_equal(output.beta, [1.0, 2.0, 3.0])
-
-    def test_work_ind(self):
-
-        def func(par, x):
-            b0, b1 = par
-            return b0 + b1 * x
-
-        # generate some data
-        n_data = 4
-        x = np.arange(n_data)
-        y = np.where(x % 2, x + 0.1, x - 0.1)
-        x_err = np.full(n_data, 0.1)
-        y_err = np.full(n_data, 0.1)
-
-        # do the fitting
-        linear_model = Model(func)
-        real_data = RealData(x, y, sx=x_err, sy=y_err)
-        odr_obj = ODR(real_data, linear_model, beta0=[0.4, 0.4])
-        odr_obj.set_job(fit_type=0)
-        out = odr_obj.run()
-
-        sd_ind = out.work_ind['sd']
-        assert_array_almost_equal(out.sd_beta,
-                                  out.work[sd_ind:sd_ind + len(out.sd_beta)])
-
-    @pytest.mark.skipif(True, reason="Fortran I/O prone to crashing so better "
-                                     "not to run this test, see gh-13127")
-    def test_output_file_overwrite(self):
-        """
-        Verify fix for gh-1892
-        """
-        def func(b, x):
-            return b[0] + b[1] * x
-
-        p = Model(func)
-        data = Data(np.arange(10), 12 * np.arange(10))
-        tmp_dir = tempfile.mkdtemp()
-        error_file_path = os.path.join(tmp_dir, "error.dat")
-        report_file_path = os.path.join(tmp_dir, "report.dat")
-        try:
-            ODR(data, p, beta0=[0.1, 13], errfile=error_file_path,
-                rptfile=report_file_path).run()
-            ODR(data, p, beta0=[0.1, 13], errfile=error_file_path,
-                rptfile=report_file_path, overwrite=True).run()
-        finally:
-            # remove output files for clean up
-            shutil.rmtree(tmp_dir)
-
-    def test_odr_model_default_meta(self):
-        def func(b, x):
-            return b[0] + b[1] * x
-
-        p = Model(func)
-        p.set_meta(name='Sample Model Meta', ref='ODRPACK')
-        assert_equal(p.meta, {'name': 'Sample Model Meta', 'ref': 'ODRPACK'})
-
-    def test_work_array_del_init(self):
-        """
-        Verify fix for gh-18739 where del_init=1 fails.
-        """
-        def func(b, x):
-            return b[0] + b[1] * x
-
-        # generate some data
-        n_data = 4
-        x = np.arange(n_data)
-        y = np.where(x % 2, x + 0.1, x - 0.1)
-        x_err = np.full(n_data, 0.1)
-        y_err = np.full(n_data, 0.1)
-
-        linear_model = Model(func)
-        # Try various shapes of the `we` array from various `sy` and `covy`
-        rd0 = RealData(x, y, sx=x_err, sy=y_err)
-        rd1 = RealData(x, y, sx=x_err, sy=0.1)
-        rd2 = RealData(x, y, sx=x_err, sy=[0.1])
-        rd3 = RealData(x, y, sx=x_err, sy=np.full((1, n_data), 0.1))
-        rd4 = RealData(x, y, sx=x_err, covy=[[0.01]])
-        rd5 = RealData(x, y, sx=x_err, covy=np.full((1, 1, n_data), 0.01))
-        for rd in [rd0, rd1, rd2, rd3, rd4, rd5]:
-            odr_obj = ODR(rd, linear_model, beta0=[0.4, 0.4],
-                          delta0=np.full(n_data, -0.1))
-            odr_obj.set_job(fit_type=0, del_init=1)
-            # Just make sure that it runs without raising an exception.
-            odr_obj.run()
-
-    def test_pickling_data(self):
-        x = np.linspace(0.0, 5.0)
-        y = 1.0 * x + 2.0
-        data = Data(x, y)
-
-        obj_pickle = pickle.dumps(data)
-        del data
-        pickle.loads(obj_pickle)
-
-    def test_pickling_real_data(self):
-        x = np.linspace(0.0, 5.0)
-        y = 1.0 * x + 2.0
-        data = RealData(x, y)
-
-        obj_pickle = pickle.dumps(data)
-        del data
-        pickle.loads(obj_pickle)
-
-    def test_pickling_model(self):
-        obj_pickle = pickle.dumps(unilinear)
-        pickle.loads(obj_pickle)
-
-    def test_pickling_odr(self):
-        x = np.linspace(0.0, 5.0)
-        y = 1.0 * x + 2.0
-        odr_obj = ODR(Data(x, y), unilinear)
-
-        obj_pickle = pickle.dumps(odr_obj)
-        del odr_obj
-        pickle.loads(obj_pickle)
-
-    def test_pickling_output(self):
-        x = np.linspace(0.0, 5.0)
-        y = 1.0 * x + 2.0
-        output = ODR(Data(x, y), unilinear).run
-
-        obj_pickle = pickle.dumps(output)
-        del output
-        pickle.loads(obj_pickle)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize.pxd
deleted file mode 100644
index 2402eeb020d34ad8b82e287e32545423911ff66c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize.pxd
+++ /dev/null
@@ -1 +0,0 @@
-from .optimize cimport cython_optimize
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/README b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/README
deleted file mode 100644
index a355e0c447f2d36275877225fcbddd42f14636dd..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/README
+++ /dev/null
@@ -1,76 +0,0 @@
-From the website for the L-BFGS-B code (from at
-http://www.ece.northwestern.edu/~nocedal/lbfgsb.html):
-
-"""
-L-BFGS-B is a limited-memory quasi-Newton code for bound-constrained
-optimization, i.e. for problems where the only constraints are of the
-form l<= x <= u.
-"""
-
-This is a Python wrapper (using F2PY) written by David M. Cooke
- and released as version 0.9 on April 9, 2004.
-The wrapper was slightly modified by Joonas Paalasmaa for the 3.0 version
-in March 2012.
-
-License of L-BFGS-B (Fortran code)
-==================================
-
-The version included here (in lbfgsb.f) is 3.0 (released April 25, 2011). It was
-written by Ciyou Zhu, Richard Byrd, and Jorge Nocedal . It
-carries the following condition for use:
-
-  """
-  This software is freely available, but we expect that all publications
-  describing work using this software, or all commercial products using it,
-  quote at least one of the references given below. This software is released
-  under the BSD License.
-  
-  References
-    * R. H. Byrd, P. Lu and J. Nocedal. A Limited Memory Algorithm for Bound
-      Constrained Optimization, (1995), SIAM Journal on Scientific and
-      Statistical Computing, 16, 5, pp. 1190-1208.
-    * C. Zhu, R. H. Byrd and J. Nocedal. L-BFGS-B: Algorithm 778: L-BFGS-B,
-      FORTRAN routines for large scale bound constrained optimization (1997),
-      ACM Transactions on Mathematical Software, 23, 4, pp. 550 - 560.
-    * J.L. Morales and J. Nocedal. L-BFGS-B: Remark on Algorithm 778: L-BFGS-B,
-      FORTRAN routines for large scale bound constrained optimization (2011),
-      ACM Transactions on Mathematical Software, 38, 1.
-  """
-
-The Python wrapper
-==================
-
-This code uses F2PY (http://cens.ioc.ee/projects/f2py2e/) to generate
-the wrapper around the Fortran code.
-
-The Python code and wrapper are copyrighted 2004 by David M. Cooke
-.
-
-Example usage
-=============
-
-An example of the usage is given at the bottom of the lbfgsb.py file.
-Run it with 'python lbfgsb.py'.
-
-License for the Python wrapper
-==============================
-
-Copyright (c) 2004 David M. Cooke 
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__init__.py
deleted file mode 100644
index d41cb5033af15131fa7d5a8ab490648553dc544b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__init__.py
+++ /dev/null
@@ -1,452 +0,0 @@
-"""
-=====================================================
-Optimization and root finding (:mod:`scipy.optimize`)
-=====================================================
-
-.. currentmodule:: scipy.optimize
-
-.. toctree::
-   :hidden:
-
-   optimize.cython_optimize
-
-SciPy ``optimize`` provides functions for minimizing (or maximizing)
-objective functions, possibly subject to constraints. It includes
-solvers for nonlinear problems (with support for both local and global
-optimization algorithms), linear programming, constrained
-and nonlinear least-squares, root finding, and curve fitting.
-
-Common functions and objects, shared across different solvers, are:
-
-.. autosummary::
-   :toctree: generated/
-
-   show_options - Show specific options optimization solvers.
-   OptimizeResult - The optimization result returned by some optimizers.
-   OptimizeWarning - The optimization encountered problems.
-
-
-Optimization
-============
-
-Scalar functions optimization
------------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   minimize_scalar - Interface for minimizers of univariate functions
-
-The `minimize_scalar` function supports the following methods:
-
-.. toctree::
-
-   optimize.minimize_scalar-brent
-   optimize.minimize_scalar-bounded
-   optimize.minimize_scalar-golden
-
-Local (multivariate) optimization
----------------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   minimize - Interface for minimizers of multivariate functions.
-
-The `minimize` function supports the following methods:
-
-.. toctree::
-
-   optimize.minimize-neldermead
-   optimize.minimize-powell
-   optimize.minimize-cg
-   optimize.minimize-bfgs
-   optimize.minimize-newtoncg
-   optimize.minimize-lbfgsb
-   optimize.minimize-tnc
-   optimize.minimize-cobyla
-   optimize.minimize-cobyqa
-   optimize.minimize-slsqp
-   optimize.minimize-trustconstr
-   optimize.minimize-dogleg
-   optimize.minimize-trustncg
-   optimize.minimize-trustkrylov
-   optimize.minimize-trustexact
-
-Constraints are passed to `minimize` function as a single object or
-as a list of objects from the following classes:
-
-.. autosummary::
-   :toctree: generated/
-
-   NonlinearConstraint - Class defining general nonlinear constraints.
-   LinearConstraint - Class defining general linear constraints.
-
-Simple bound constraints are handled separately and there is a special class
-for them:
-
-.. autosummary::
-   :toctree: generated/
-
-   Bounds - Bound constraints.
-
-Quasi-Newton strategies implementing `HessianUpdateStrategy`
-interface can be used to approximate the Hessian in `minimize`
-function (available only for the 'trust-constr' method). Available
-quasi-Newton methods implementing this interface are:
-
-.. autosummary::
-   :toctree: generated/
-
-   BFGS - Broyden-Fletcher-Goldfarb-Shanno (BFGS) Hessian update strategy.
-   SR1 - Symmetric-rank-1 Hessian update strategy.
-
-.. _global_optimization:
-
-Global optimization
--------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   basinhopping - Basinhopping stochastic optimizer.
-   brute - Brute force searching optimizer.
-   differential_evolution - Stochastic optimizer using differential evolution.
-
-   shgo - Simplicial homology global optimizer.
-   dual_annealing - Dual annealing stochastic optimizer.
-   direct - DIRECT (Dividing Rectangles) optimizer.
-
-Least-squares and curve fitting
-===============================
-
-Nonlinear least-squares
------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   least_squares - Solve a nonlinear least-squares problem with bounds on the variables.
-
-Linear least-squares
---------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   nnls - Linear least-squares problem with non-negativity constraint.
-   lsq_linear - Linear least-squares problem with bound constraints.
-   isotonic_regression - Least squares problem of isotonic regression via PAVA.
-
-Curve fitting
--------------
-
-.. autosummary::
-   :toctree: generated/
-
-   curve_fit -- Fit curve to a set of points.
-
-Root finding
-============
-
-Scalar functions
-----------------
-.. autosummary::
-   :toctree: generated/
-
-   root_scalar - Unified interface for nonlinear solvers of scalar functions.
-   brentq - quadratic interpolation Brent method.
-   brenth - Brent method, modified by Harris with hyperbolic extrapolation.
-   ridder - Ridder's method.
-   bisect - Bisection method.
-   newton - Newton's method (also Secant and Halley's methods).
-   toms748 - Alefeld, Potra & Shi Algorithm 748.
-   RootResults - The root finding result returned by some root finders.
-
-The `root_scalar` function supports the following methods:
-
-.. toctree::
-
-   optimize.root_scalar-brentq
-   optimize.root_scalar-brenth
-   optimize.root_scalar-bisect
-   optimize.root_scalar-ridder
-   optimize.root_scalar-newton
-   optimize.root_scalar-toms748
-   optimize.root_scalar-secant
-   optimize.root_scalar-halley
-
-
-
-The table below lists situations and appropriate methods, along with
-*asymptotic* convergence rates per iteration (and per function evaluation)
-for successful convergence to a simple root(*).
-Bisection is the slowest of them all, adding one bit of accuracy for each
-function evaluation, but is guaranteed to converge.
-The other bracketing methods all (eventually) increase the number of accurate
-bits by about 50% for every function evaluation.
-The derivative-based methods, all built on `newton`, can converge quite quickly
-if the initial value is close to the root.  They can also be applied to
-functions defined on (a subset of) the complex plane.
-
-+-------------+----------+----------+-----------+-------------+-------------+----------------+
-| Domain of f | Bracket? |    Derivatives?      | Solvers     |        Convergence           |
-+             +          +----------+-----------+             +-------------+----------------+
-|             |          | `fprime` | `fprime2` |             | Guaranteed? |  Rate(s)(*)    |
-+=============+==========+==========+===========+=============+=============+================+
-| `R`         | Yes      | N/A      | N/A       | - bisection | - Yes       | - 1 "Linear"   |
-|             |          |          |           | - brentq    | - Yes       | - >=1, <= 1.62 |
-|             |          |          |           | - brenth    | - Yes       | - >=1, <= 1.62 |
-|             |          |          |           | - ridder    | - Yes       | - 2.0 (1.41)   |
-|             |          |          |           | - toms748   | - Yes       | - 2.7 (1.65)   |
-+-------------+----------+----------+-----------+-------------+-------------+----------------+
-| `R` or `C`  | No       | No       | No        | secant      | No          | 1.62 (1.62)    |
-+-------------+----------+----------+-----------+-------------+-------------+----------------+
-| `R` or `C`  | No       | Yes      | No        | newton      | No          | 2.00 (1.41)    |
-+-------------+----------+----------+-----------+-------------+-------------+----------------+
-| `R` or `C`  | No       | Yes      | Yes       | halley      | No          | 3.00 (1.44)    |
-+-------------+----------+----------+-----------+-------------+-------------+----------------+
-
-.. seealso::
-
-   `scipy.optimize.cython_optimize` -- Typed Cython versions of root finding functions
-
-Fixed point finding:
-
-.. autosummary::
-   :toctree: generated/
-
-   fixed_point - Single-variable fixed-point solver.
-
-Multidimensional
-----------------
-
-.. autosummary::
-   :toctree: generated/
-
-   root - Unified interface for nonlinear solvers of multivariate functions.
-
-The `root` function supports the following methods:
-
-.. toctree::
-
-   optimize.root-hybr
-   optimize.root-lm
-   optimize.root-broyden1
-   optimize.root-broyden2
-   optimize.root-anderson
-   optimize.root-linearmixing
-   optimize.root-diagbroyden
-   optimize.root-excitingmixing
-   optimize.root-krylov
-   optimize.root-dfsane
-
-Linear programming / MILP
-=========================
-
-.. autosummary::
-   :toctree: generated/
-
-   milp -- Mixed integer linear programming.
-   linprog -- Unified interface for minimizers of linear programming problems.
-
-The `linprog` function supports the following methods:
-
-.. toctree::
-
-   optimize.linprog-simplex
-   optimize.linprog-interior-point
-   optimize.linprog-revised_simplex
-   optimize.linprog-highs-ipm
-   optimize.linprog-highs-ds
-   optimize.linprog-highs
-
-The simplex, interior-point, and revised simplex methods support callback
-functions, such as:
-
-.. autosummary::
-   :toctree: generated/
-
-   linprog_verbose_callback -- Sample callback function for linprog (simplex).
-
-Assignment problems
-===================
-
-.. autosummary::
-   :toctree: generated/
-
-   linear_sum_assignment -- Solves the linear-sum assignment problem.
-   quadratic_assignment -- Solves the quadratic assignment problem.
-
-The `quadratic_assignment` function supports the following methods:
-
-.. toctree::
-
-   optimize.qap-faq
-   optimize.qap-2opt
-
-Utilities
-=========
-
-Finite-difference approximation
--------------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   approx_fprime - Approximate the gradient of a scalar function.
-   check_grad - Check the supplied derivative using finite differences.
-
-
-Line search
------------
-
-.. autosummary::
-   :toctree: generated/
-
-   bracket - Bracket a minimum, given two starting points.
-   line_search - Return a step that satisfies the strong Wolfe conditions.
-
-Hessian approximation
----------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   LbfgsInvHessProduct - Linear operator for L-BFGS approximate inverse Hessian.
-   HessianUpdateStrategy - Interface for implementing Hessian update strategies
-
-Benchmark problems
-------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   rosen - The Rosenbrock function.
-   rosen_der - The derivative of the Rosenbrock function.
-   rosen_hess - The Hessian matrix of the Rosenbrock function.
-   rosen_hess_prod - Product of the Rosenbrock Hessian with a vector.
-
-Legacy functions
-================
-
-The functions below are not recommended for use in new scripts;
-all of these methods are accessible via a newer, more consistent
-interfaces, provided by the interfaces above.
-
-Optimization
-------------
-
-General-purpose multivariate methods:
-
-.. autosummary::
-   :toctree: generated/
-
-   fmin - Nelder-Mead Simplex algorithm.
-   fmin_powell - Powell's (modified) conjugate direction method.
-   fmin_cg - Non-linear (Polak-Ribiere) conjugate gradient algorithm.
-   fmin_bfgs - Quasi-Newton method (Broydon-Fletcher-Goldfarb-Shanno).
-   fmin_ncg - Line-search Newton Conjugate Gradient.
-
-Constrained multivariate methods:
-
-.. autosummary::
-   :toctree: generated/
-
-   fmin_l_bfgs_b - Zhu, Byrd, and Nocedal's constrained optimizer.
-   fmin_tnc - Truncated Newton code.
-   fmin_cobyla - Constrained optimization by linear approximation.
-   fmin_slsqp - Minimization using sequential least-squares programming.
-
-Univariate (scalar) minimization methods:
-
-.. autosummary::
-   :toctree: generated/
-
-   fminbound - Bounded minimization of a scalar function.
-   brent - 1-D function minimization using Brent method.
-   golden - 1-D function minimization using Golden Section method.
-
-Least-squares
--------------
-
-.. autosummary::
-   :toctree: generated/
-
-   leastsq - Minimize the sum of squares of M equations in N unknowns.
-
-Root finding
-------------
-
-General nonlinear solvers:
-
-.. autosummary::
-   :toctree: generated/
-
-   fsolve - Non-linear multivariable equation solver.
-   broyden1 - Broyden's first method.
-   broyden2 - Broyden's second method.
-   NoConvergence -  Exception raised when nonlinear solver does not converge.
-
-Large-scale nonlinear solvers:
-
-.. autosummary::
-   :toctree: generated/
-
-   newton_krylov
-   anderson
-
-   BroydenFirst
-   InverseJacobian
-   KrylovJacobian
-
-Simple iteration solvers:
-
-.. autosummary::
-   :toctree: generated/
-
-   excitingmixing
-   linearmixing
-   diagbroyden
-
-"""  # noqa: E501
-
-from ._optimize import *
-from ._minimize import *
-from ._root import *
-from ._root_scalar import *
-from ._minpack_py import *
-from ._zeros_py import *
-from ._lbfgsb_py import fmin_l_bfgs_b, LbfgsInvHessProduct
-from ._tnc import fmin_tnc
-from ._cobyla_py import fmin_cobyla
-from ._nonlin import *
-from ._slsqp_py import fmin_slsqp
-from ._nnls import nnls
-from ._basinhopping import basinhopping
-from ._linprog import linprog, linprog_verbose_callback
-from ._lsap import linear_sum_assignment
-from ._differentialevolution import differential_evolution
-from ._lsq import least_squares, lsq_linear
-from ._isotonic import isotonic_regression
-from ._constraints import (NonlinearConstraint,
-                           LinearConstraint,
-                           Bounds)
-from ._hessian_update_strategy import HessianUpdateStrategy, BFGS, SR1
-from ._shgo import shgo
-from ._dual_annealing import dual_annealing
-from ._qap import quadratic_assignment
-from ._direct_py import direct
-from ._milp import milp
-
-# Deprecated namespaces, to be removed in v2.0.0
-from . import (
-    cobyla, lbfgsb, linesearch, minpack, minpack2, moduleTNC, nonlin, optimize,
-    slsqp, tnc, zeros
-)
-
-__all__ = [s for s in dir() if not s.startswith('_')]
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 8dfdafa42b40410359d8a2446c07cdb1273904ff..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_basinhopping.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_basinhopping.cpython-310.pyc
deleted file mode 100644
index e5fb39fedc14ba3b299082803c68cb5d99b75345..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_basinhopping.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_bracket.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_bracket.cpython-310.pyc
deleted file mode 100644
index dacd7914b7b521bd28e816ecf7c373c448001871..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_bracket.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_chandrupatla.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_chandrupatla.cpython-310.pyc
deleted file mode 100644
index 9d51470126385c520a5a8e6d1a291303c6c25663..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_chandrupatla.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_cobyla_py.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_cobyla_py.cpython-310.pyc
deleted file mode 100644
index fb76e503ae82907eb1c22603145bcf66e29778eb..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_cobyla_py.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_cobyqa_py.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_cobyqa_py.cpython-310.pyc
deleted file mode 100644
index 8405752de66a6807f8a9b97458ad32c63fad8d38..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_cobyqa_py.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_constraints.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_constraints.cpython-310.pyc
deleted file mode 100644
index 43c5d1cd19852013124dbe9b9e1b26afcb38a7c0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_constraints.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_dcsrch.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_dcsrch.cpython-310.pyc
deleted file mode 100644
index b6d05c8282f4178ceda1ee2c8b9877051a134fc9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_dcsrch.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_differentiable_functions.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_differentiable_functions.cpython-310.pyc
deleted file mode 100644
index 35dc64fc02cfc5667b046be57fefc3bb138d0e82..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_differentiable_functions.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_differentialevolution.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_differentialevolution.cpython-310.pyc
deleted file mode 100644
index 702a150d74741f4a0b4579ece678035f1e9a98a8..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_differentialevolution.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_differentiate.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_differentiate.cpython-310.pyc
deleted file mode 100644
index a86520666d32aae79735613d025699b4f3e74a0a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_differentiate.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_direct_py.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_direct_py.cpython-310.pyc
deleted file mode 100644
index 9310a7da2a6a1bea76b6c66f2bf41ff555d43c0f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_direct_py.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_dual_annealing.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_dual_annealing.cpython-310.pyc
deleted file mode 100644
index 552410fbf443a94955d7600298e6fb49f050b3b9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_dual_annealing.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_hessian_update_strategy.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_hessian_update_strategy.cpython-310.pyc
deleted file mode 100644
index 1557ad485c84dff112bfc8cab9135e26ef3d233d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_hessian_update_strategy.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_isotonic.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_isotonic.cpython-310.pyc
deleted file mode 100644
index 31f76e9acd1fbeb9d34ef3eb15871524e3d4c762..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_isotonic.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_lbfgsb_py.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_lbfgsb_py.cpython-310.pyc
deleted file mode 100644
index 99282b9ea1f3b952c230b16b18223583f3b1174d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_lbfgsb_py.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linesearch.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linesearch.cpython-310.pyc
deleted file mode 100644
index cbd491691e430119ed1d9a596d42c6464feae2ed..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linesearch.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog.cpython-310.pyc
deleted file mode 100644
index 6110e661ca804e44dabdbdfeae349dbdb2b0ff9a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_doc.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_doc.cpython-310.pyc
deleted file mode 100644
index 76d4e50c8aac0d0a0d7b720fe4219b5329b0b513..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_doc.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_highs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_highs.cpython-310.pyc
deleted file mode 100644
index c4fbeab003d6fa073796199c9c5b9206df6a74ca..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_highs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_ip.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_ip.cpython-310.pyc
deleted file mode 100644
index 09a856520a0f9ce17d6fdd8529da49cd996314f9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_ip.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_rs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_rs.cpython-310.pyc
deleted file mode 100644
index 33b237facefdefd36d052844d0b4782ec0545aa8..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_rs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_simplex.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_simplex.cpython-310.pyc
deleted file mode 100644
index f66e6c68a97469ca96e15695c1320fd1c76b8697..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_simplex.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_util.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_util.cpython-310.pyc
deleted file mode 100644
index 4da5bd7aeb001ba8a06c19c774d8d174db6167a2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_linprog_util.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_milp.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_milp.cpython-310.pyc
deleted file mode 100644
index 3a6ad27d3a1148fefa6cf45445f9058c530f704c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_milp.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_minimize.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_minimize.cpython-310.pyc
deleted file mode 100644
index 514e5e0383a589bd1c8d50fd82d90d7dbf66a379..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_minimize.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_minpack_py.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_minpack_py.cpython-310.pyc
deleted file mode 100644
index a2fb77f2c07ffbfeb868d7a27afcc25193a11652..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_minpack_py.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_nnls.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_nnls.cpython-310.pyc
deleted file mode 100644
index 7d5a91980eb871a943fe3cbfcbedf0efd22b0a43..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_nnls.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_nonlin.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_nonlin.cpython-310.pyc
deleted file mode 100644
index 87841e9657434fd712ad175ab9dfa9eb393dc8a2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_nonlin.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_numdiff.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_numdiff.cpython-310.pyc
deleted file mode 100644
index 05e4a29754d620b83b43b1ede57ace5aa413a95e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_numdiff.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_qap.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_qap.cpython-310.pyc
deleted file mode 100644
index 81bce330b128d6a4db0410b7369bca3e5576dfc9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_qap.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_remove_redundancy.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_remove_redundancy.cpython-310.pyc
deleted file mode 100644
index bb1a25fbd98979aa0139a518bb0549ef78d964a8..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_remove_redundancy.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_root.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_root.cpython-310.pyc
deleted file mode 100644
index 95afe07b0fd58dd871ff8674af9b8c606c47705a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_root.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_root_scalar.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_root_scalar.cpython-310.pyc
deleted file mode 100644
index feaf39fce5e2908875c697de6c85c25a6d622972..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_root_scalar.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_shgo.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_shgo.cpython-310.pyc
deleted file mode 100644
index 3f7789c4488c7a98b14d204e7471d82cfd68d4d9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_shgo.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_slsqp_py.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_slsqp_py.cpython-310.pyc
deleted file mode 100644
index e5fd1da9e8c4d965af80111b3debf5a47e308cf6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_slsqp_py.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_spectral.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_spectral.cpython-310.pyc
deleted file mode 100644
index 51cf34596c10cee500547f4b1bfb098aa51f732a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_spectral.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_tnc.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_tnc.cpython-310.pyc
deleted file mode 100644
index d1328744eb6cab031396a7b80ac2c2a6387bf713..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_tnc.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion.cpython-310.pyc
deleted file mode 100644
index 3cec9d896268bd1d0925a0f8ed9025420a7e4d2a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_dogleg.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_dogleg.cpython-310.pyc
deleted file mode 100644
index dcf03f34740915fd8ec3598fc9ca1e4f62d1a8fb..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_dogleg.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_exact.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_exact.cpython-310.pyc
deleted file mode 100644
index d475f23baa4b7a7666b627b875a558745088cbb4..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_exact.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_krylov.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_krylov.cpython-310.pyc
deleted file mode 100644
index 9887d034b259aff56ad86196f8856ce5c61ffe4b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_krylov.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_ncg.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_ncg.cpython-310.pyc
deleted file mode 100644
index b8b6791c164bebb030f6d7d63a71a4c85a58fee7..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_trustregion_ncg.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_tstutils.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_tstutils.cpython-310.pyc
deleted file mode 100644
index dfb6a16db62d01c3c4798dc3c060df732fb9280c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_tstutils.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_zeros_py.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_zeros_py.cpython-310.pyc
deleted file mode 100644
index 8de45fb9d40304c9ef8a6942acf878de402af1bc..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/_zeros_py.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/cobyla.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/cobyla.cpython-310.pyc
deleted file mode 100644
index e103eee7d23e8e254a36bf195fd4b36ff9fe3f06..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/cobyla.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/lbfgsb.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/lbfgsb.cpython-310.pyc
deleted file mode 100644
index f3da34dbba7bc0b4d1b2b39431e98773287dac52..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/lbfgsb.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/linesearch.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/linesearch.cpython-310.pyc
deleted file mode 100644
index b9e334dafceeaf98556aed11ffe8907f09d1807c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/linesearch.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/minpack.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/minpack.cpython-310.pyc
deleted file mode 100644
index 3e84b34872a46678e640fa461232984be97407fe..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/minpack.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/minpack2.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/minpack2.cpython-310.pyc
deleted file mode 100644
index 03964e372c2038b5ddcdb3664fcc52fc77b0a85e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/minpack2.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/moduleTNC.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/moduleTNC.cpython-310.pyc
deleted file mode 100644
index 31300c940c1109d5c8af4db21249f0bf3a5b6c91..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/moduleTNC.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/nonlin.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/nonlin.cpython-310.pyc
deleted file mode 100644
index 98e5dfbfa7537d6414db28dbcb552bf4f097400a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/nonlin.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/optimize.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/optimize.cpython-310.pyc
deleted file mode 100644
index c480641fc2210b20642a044ba6aa50443db5425a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/optimize.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/slsqp.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/slsqp.cpython-310.pyc
deleted file mode 100644
index 15a983a2fa72542501d345ba8d5e81142c52c29c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/slsqp.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/tnc.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/tnc.cpython-310.pyc
deleted file mode 100644
index 169eb4298ebb0bb9b85185fff18bf91a2fc47ebb..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/tnc.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/zeros.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/zeros.cpython-310.pyc
deleted file mode 100644
index 9d6bfaaaa63fa3833900b368355e896b2958d436..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/__pycache__/zeros.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_basinhopping.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_basinhopping.py
deleted file mode 100644
index 333a7af410de7ed84ecd46b1cbc8d2b0c4362f4b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_basinhopping.py
+++ /dev/null
@@ -1,753 +0,0 @@
-"""
-basinhopping: The basinhopping global optimization algorithm
-"""
-import numpy as np
-import math
-import inspect
-import scipy.optimize
-from scipy._lib._util import check_random_state
-
-__all__ = ['basinhopping']
-
-
-_params = (inspect.Parameter('res_new', kind=inspect.Parameter.KEYWORD_ONLY),
-           inspect.Parameter('res_old', kind=inspect.Parameter.KEYWORD_ONLY))
-_new_accept_test_signature = inspect.Signature(parameters=_params)
-
-
-class Storage:
-    """
-    Class used to store the lowest energy structure
-    """
-    def __init__(self, minres):
-        self._add(minres)
-
-    def _add(self, minres):
-        self.minres = minres
-        self.minres.x = np.copy(minres.x)
-
-    def update(self, minres):
-        if minres.success and (minres.fun < self.minres.fun
-                               or not self.minres.success):
-            self._add(minres)
-            return True
-        else:
-            return False
-
-    def get_lowest(self):
-        return self.minres
-
-
-class BasinHoppingRunner:
-    """This class implements the core of the basinhopping algorithm.
-
-    x0 : ndarray
-        The starting coordinates.
-    minimizer : callable
-        The local minimizer, with signature ``result = minimizer(x)``.
-        The return value is an `optimize.OptimizeResult` object.
-    step_taking : callable
-        This function displaces the coordinates randomly. Signature should
-        be ``x_new = step_taking(x)``. Note that `x` may be modified in-place.
-    accept_tests : list of callables
-        Each test is passed the kwargs `f_new`, `x_new`, `f_old` and
-        `x_old`. These tests will be used to judge whether or not to accept
-        the step. The acceptable return values are True, False, or ``"force
-        accept"``. If any of the tests return False then the step is rejected.
-        If ``"force accept"``, then this will override any other tests in
-        order to accept the step. This can be used, for example, to forcefully
-        escape from a local minimum that ``basinhopping`` is trapped in.
-    disp : bool, optional
-        Display status messages.
-
-    """
-    def __init__(self, x0, minimizer, step_taking, accept_tests, disp=False):
-        self.x = np.copy(x0)
-        self.minimizer = minimizer
-        self.step_taking = step_taking
-        self.accept_tests = accept_tests
-        self.disp = disp
-
-        self.nstep = 0
-
-        # initialize return object
-        self.res = scipy.optimize.OptimizeResult()
-        self.res.minimization_failures = 0
-
-        # do initial minimization
-        minres = minimizer(self.x)
-        if not minres.success:
-            self.res.minimization_failures += 1
-            if self.disp:
-                print("warning: basinhopping: local minimization failure")
-        self.x = np.copy(minres.x)
-        self.energy = minres.fun
-        self.incumbent_minres = minres  # best minimize result found so far
-        if self.disp:
-            print("basinhopping step %d: f %g" % (self.nstep, self.energy))
-
-        # initialize storage class
-        self.storage = Storage(minres)
-
-        if hasattr(minres, "nfev"):
-            self.res.nfev = minres.nfev
-        if hasattr(minres, "njev"):
-            self.res.njev = minres.njev
-        if hasattr(minres, "nhev"):
-            self.res.nhev = minres.nhev
-
-    def _monte_carlo_step(self):
-        """Do one Monte Carlo iteration
-
-        Randomly displace the coordinates, minimize, and decide whether
-        or not to accept the new coordinates.
-        """
-        # Take a random step.  Make a copy of x because the step_taking
-        # algorithm might change x in place
-        x_after_step = np.copy(self.x)
-        x_after_step = self.step_taking(x_after_step)
-
-        # do a local minimization
-        minres = self.minimizer(x_after_step)
-        x_after_quench = minres.x
-        energy_after_quench = minres.fun
-        if not minres.success:
-            self.res.minimization_failures += 1
-            if self.disp:
-                print("warning: basinhopping: local minimization failure")
-        if hasattr(minres, "nfev"):
-            self.res.nfev += minres.nfev
-        if hasattr(minres, "njev"):
-            self.res.njev += minres.njev
-        if hasattr(minres, "nhev"):
-            self.res.nhev += minres.nhev
-
-        # accept the move based on self.accept_tests. If any test is False,
-        # then reject the step.  If any test returns the special string
-        # 'force accept', then accept the step regardless. This can be used
-        # to forcefully escape from a local minimum if normal basin hopping
-        # steps are not sufficient.
-        accept = True
-        for test in self.accept_tests:
-            if inspect.signature(test) == _new_accept_test_signature:
-                testres = test(res_new=minres, res_old=self.incumbent_minres)
-            else:
-                testres = test(f_new=energy_after_quench, x_new=x_after_quench,
-                               f_old=self.energy, x_old=self.x)
-
-            if testres == 'force accept':
-                accept = True
-                break
-            elif testres is None:
-                raise ValueError("accept_tests must return True, False, or "
-                                 "'force accept'")
-            elif not testres:
-                accept = False
-
-        # Report the result of the acceptance test to the take step class.
-        # This is for adaptive step taking
-        if hasattr(self.step_taking, "report"):
-            self.step_taking.report(accept, f_new=energy_after_quench,
-                                    x_new=x_after_quench, f_old=self.energy,
-                                    x_old=self.x)
-
-        return accept, minres
-
-    def one_cycle(self):
-        """Do one cycle of the basinhopping algorithm
-        """
-        self.nstep += 1
-        new_global_min = False
-
-        accept, minres = self._monte_carlo_step()
-
-        if accept:
-            self.energy = minres.fun
-            self.x = np.copy(minres.x)
-            self.incumbent_minres = minres  # best minimize result found so far
-            new_global_min = self.storage.update(minres)
-
-        # print some information
-        if self.disp:
-            self.print_report(minres.fun, accept)
-            if new_global_min:
-                print("found new global minimum on step %d with function"
-                      " value %g" % (self.nstep, self.energy))
-
-        # save some variables as BasinHoppingRunner attributes
-        self.xtrial = minres.x
-        self.energy_trial = minres.fun
-        self.accept = accept
-
-        return new_global_min
-
-    def print_report(self, energy_trial, accept):
-        """print a status update"""
-        minres = self.storage.get_lowest()
-        print("basinhopping step %d: f %g trial_f %g accepted %d "
-              " lowest_f %g" % (self.nstep, self.energy, energy_trial,
-                                accept, minres.fun))
-
-
-class AdaptiveStepsize:
-    """
-    Class to implement adaptive stepsize.
-
-    This class wraps the step taking class and modifies the stepsize to
-    ensure the true acceptance rate is as close as possible to the target.
-
-    Parameters
-    ----------
-    takestep : callable
-        The step taking routine.  Must contain modifiable attribute
-        takestep.stepsize
-    accept_rate : float, optional
-        The target step acceptance rate
-    interval : int, optional
-        Interval for how often to update the stepsize
-    factor : float, optional
-        The step size is multiplied or divided by this factor upon each
-        update.
-    verbose : bool, optional
-        Print information about each update
-
-    """
-    def __init__(self, takestep, accept_rate=0.5, interval=50, factor=0.9,
-                 verbose=True):
-        self.takestep = takestep
-        self.target_accept_rate = accept_rate
-        self.interval = interval
-        self.factor = factor
-        self.verbose = verbose
-
-        self.nstep = 0
-        self.nstep_tot = 0
-        self.naccept = 0
-
-    def __call__(self, x):
-        return self.take_step(x)
-
-    def _adjust_step_size(self):
-        old_stepsize = self.takestep.stepsize
-        accept_rate = float(self.naccept) / self.nstep
-        if accept_rate > self.target_accept_rate:
-            # We're accepting too many steps. This generally means we're
-            # trapped in a basin. Take bigger steps.
-            self.takestep.stepsize /= self.factor
-        else:
-            # We're not accepting enough steps. Take smaller steps.
-            self.takestep.stepsize *= self.factor
-        if self.verbose:
-            print(f"adaptive stepsize: acceptance rate {accept_rate:f} target "
-                  f"{self.target_accept_rate:f} new stepsize "
-                  f"{self.takestep.stepsize:g} old stepsize {old_stepsize:g}")
-
-    def take_step(self, x):
-        self.nstep += 1
-        self.nstep_tot += 1
-        if self.nstep % self.interval == 0:
-            self._adjust_step_size()
-        return self.takestep(x)
-
-    def report(self, accept, **kwargs):
-        "called by basinhopping to report the result of the step"
-        if accept:
-            self.naccept += 1
-
-
-class RandomDisplacement:
-    """Add a random displacement of maximum size `stepsize` to each coordinate.
-
-    Calling this updates `x` in-place.
-
-    Parameters
-    ----------
-    stepsize : float, optional
-        Maximum stepsize in any dimension
-    random_gen : {None, int, `numpy.random.Generator`,
-                  `numpy.random.RandomState`}, optional
-
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-
-    """
-
-    def __init__(self, stepsize=0.5, random_gen=None):
-        self.stepsize = stepsize
-        self.random_gen = check_random_state(random_gen)
-
-    def __call__(self, x):
-        x += self.random_gen.uniform(-self.stepsize, self.stepsize,
-                                     np.shape(x))
-        return x
-
-
-class MinimizerWrapper:
-    """
-    wrap a minimizer function as a minimizer class
-    """
-    def __init__(self, minimizer, func=None, **kwargs):
-        self.minimizer = minimizer
-        self.func = func
-        self.kwargs = kwargs
-
-    def __call__(self, x0):
-        if self.func is None:
-            return self.minimizer(x0, **self.kwargs)
-        else:
-            return self.minimizer(self.func, x0, **self.kwargs)
-
-
-class Metropolis:
-    """Metropolis acceptance criterion.
-
-    Parameters
-    ----------
-    T : float
-        The "temperature" parameter for the accept or reject criterion.
-    random_gen : {None, int, `numpy.random.Generator`,
-                  `numpy.random.RandomState`}, optional
-
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-        Random number generator used for acceptance test.
-
-    """
-
-    def __init__(self, T, random_gen=None):
-        # Avoid ZeroDivisionError since "MBH can be regarded as a special case
-        # of the BH framework with the Metropolis criterion, where temperature
-        # T = 0." (Reject all steps that increase energy.)
-        self.beta = 1.0 / T if T != 0 else float('inf')
-        self.random_gen = check_random_state(random_gen)
-
-    def accept_reject(self, res_new, res_old):
-        """
-        Assuming the local search underlying res_new was successful:
-        If new energy is lower than old, it will always be accepted.
-        If new is higher than old, there is a chance it will be accepted,
-        less likely for larger differences.
-        """
-        with np.errstate(invalid='ignore'):
-            # The energy values being fed to Metropolis are 1-length arrays, and if
-            # they are equal, their difference is 0, which gets multiplied by beta,
-            # which is inf, and array([0]) * float('inf') causes
-            #
-            # RuntimeWarning: invalid value encountered in multiply
-            #
-            # Ignore this warning so when the algorithm is on a flat plane, it always
-            # accepts the step, to try to move off the plane.
-            prod = -(res_new.fun - res_old.fun) * self.beta
-            w = math.exp(min(0, prod))
-
-        rand = self.random_gen.uniform()
-        return w >= rand and (res_new.success or not res_old.success)
-
-    def __call__(self, *, res_new, res_old):
-        """
-        f_new and f_old are mandatory in kwargs
-        """
-        return bool(self.accept_reject(res_new, res_old))
-
-
-def basinhopping(func, x0, niter=100, T=1.0, stepsize=0.5,
-                 minimizer_kwargs=None, take_step=None, accept_test=None,
-                 callback=None, interval=50, disp=False, niter_success=None,
-                 seed=None, *, target_accept_rate=0.5, stepwise_factor=0.9):
-    """Find the global minimum of a function using the basin-hopping algorithm.
-
-    Basin-hopping is a two-phase method that combines a global stepping
-    algorithm with local minimization at each step. Designed to mimic
-    the natural process of energy minimization of clusters of atoms, it works
-    well for similar problems with "funnel-like, but rugged" energy landscapes
-    [5]_.
-
-    As the step-taking, step acceptance, and minimization methods are all
-    customizable, this function can also be used to implement other two-phase
-    methods.
-
-    Parameters
-    ----------
-    func : callable ``f(x, *args)``
-        Function to be optimized.  ``args`` can be passed as an optional item
-        in the dict `minimizer_kwargs`
-    x0 : array_like
-        Initial guess.
-    niter : integer, optional
-        The number of basin-hopping iterations. There will be a total of
-        ``niter + 1`` runs of the local minimizer.
-    T : float, optional
-        The "temperature" parameter for the acceptance or rejection criterion.
-        Higher "temperatures" mean that larger jumps in function value will be
-        accepted.  For best results `T` should be comparable to the
-        separation (in function value) between local minima.
-    stepsize : float, optional
-        Maximum step size for use in the random displacement.
-    minimizer_kwargs : dict, optional
-        Extra keyword arguments to be passed to the local minimizer
-        `scipy.optimize.minimize` Some important options could be:
-
-            method : str
-                The minimization method (e.g. ``"L-BFGS-B"``)
-            args : tuple
-                Extra arguments passed to the objective function (`func`) and
-                its derivatives (Jacobian, Hessian).
-
-    take_step : callable ``take_step(x)``, optional
-        Replace the default step-taking routine with this routine. The default
-        step-taking routine is a random displacement of the coordinates, but
-        other step-taking algorithms may be better for some systems.
-        `take_step` can optionally have the attribute ``take_step.stepsize``.
-        If this attribute exists, then `basinhopping` will adjust
-        ``take_step.stepsize`` in order to try to optimize the global minimum
-        search.
-    accept_test : callable, ``accept_test(f_new=f_new, x_new=x_new, f_old=fold, x_old=x_old)``, optional
-        Define a test which will be used to judge whether to accept the
-        step. This will be used in addition to the Metropolis test based on
-        "temperature" `T`. The acceptable return values are True,
-        False, or ``"force accept"``. If any of the tests return False
-        then the step is rejected. If the latter, then this will override any
-        other tests in order to accept the step. This can be used, for example,
-        to forcefully escape from a local minimum that `basinhopping` is
-        trapped in.
-    callback : callable, ``callback(x, f, accept)``, optional
-        A callback function which will be called for all minima found. ``x``
-        and ``f`` are the coordinates and function value of the trial minimum,
-        and ``accept`` is whether that minimum was accepted. This can
-        be used, for example, to save the lowest N minima found. Also,
-        `callback` can be used to specify a user defined stop criterion by
-        optionally returning True to stop the `basinhopping` routine.
-    interval : integer, optional
-        interval for how often to update the `stepsize`
-    disp : bool, optional
-        Set to True to print status messages
-    niter_success : integer, optional
-        Stop the run if the global minimum candidate remains the same for this
-        number of iterations.
-    seed : {None, int, `numpy.random.Generator`, `numpy.random.RandomState`}, optional
-
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-        Specify `seed` for repeatable minimizations. The random numbers
-        generated with this seed only affect the default Metropolis
-        `accept_test` and the default `take_step`. If you supply your own
-        `take_step` and `accept_test`, and these functions use random
-        number generation, then those functions are responsible for the state
-        of their random number generator.
-    target_accept_rate : float, optional
-        The target acceptance rate that is used to adjust the `stepsize`.
-        If the current acceptance rate is greater than the target,
-        then the `stepsize` is increased. Otherwise, it is decreased.
-        Range is (0, 1). Default is 0.5.
-
-        .. versionadded:: 1.8.0
-
-    stepwise_factor : float, optional
-        The `stepsize` is multiplied or divided by this stepwise factor upon
-        each update. Range is (0, 1). Default is 0.9.
-
-        .. versionadded:: 1.8.0
-
-    Returns
-    -------
-    res : OptimizeResult
-        The optimization result represented as a `OptimizeResult` object.
-        Important attributes are: ``x`` the solution array, ``fun`` the value
-        of the function at the solution, and ``message`` which describes the
-        cause of the termination. The ``OptimizeResult`` object returned by the
-        selected minimizer at the lowest minimum is also contained within this
-        object and can be accessed through the ``lowest_optimization_result``
-        attribute.  See `OptimizeResult` for a description of other attributes.
-
-    See Also
-    --------
-    minimize :
-        The local minimization function called once for each basinhopping step.
-        `minimizer_kwargs` is passed to this routine.
-
-    Notes
-    -----
-    Basin-hopping is a stochastic algorithm which attempts to find the global
-    minimum of a smooth scalar function of one or more variables [1]_ [2]_ [3]_
-    [4]_. The algorithm in its current form was described by David Wales and
-    Jonathan Doye [2]_ http://www-wales.ch.cam.ac.uk/.
-
-    The algorithm is iterative with each cycle composed of the following
-    features
-
-    1) random perturbation of the coordinates
-
-    2) local minimization
-
-    3) accept or reject the new coordinates based on the minimized function
-       value
-
-    The acceptance test used here is the Metropolis criterion of standard Monte
-    Carlo algorithms, although there are many other possibilities [3]_.
-
-    This global minimization method has been shown to be extremely efficient
-    for a wide variety of problems in physics and chemistry. It is
-    particularly useful when the function has many minima separated by large
-    barriers. See the `Cambridge Cluster Database
-    `_ for databases of molecular
-    systems that have been optimized primarily using basin-hopping. This
-    database includes minimization problems exceeding 300 degrees of freedom.
-
-    See the free software program `GMIN `_
-    for a Fortran implementation of basin-hopping. This implementation has many
-    variations of the procedure described above, including more
-    advanced step taking algorithms and alternate acceptance criterion.
-
-    For stochastic global optimization there is no way to determine if the true
-    global minimum has actually been found. Instead, as a consistency check,
-    the algorithm can be run from a number of different random starting points
-    to ensure the lowest minimum found in each example has converged to the
-    global minimum. For this reason, `basinhopping` will by default simply
-    run for the number of iterations `niter` and return the lowest minimum
-    found. It is left to the user to ensure that this is in fact the global
-    minimum.
-
-    Choosing `stepsize`:  This is a crucial parameter in `basinhopping` and
-    depends on the problem being solved. The step is chosen uniformly in the
-    region from x0-stepsize to x0+stepsize, in each dimension. Ideally, it
-    should be comparable to the typical separation (in argument values) between
-    local minima of the function being optimized. `basinhopping` will, by
-    default, adjust `stepsize` to find an optimal value, but this may take
-    many iterations. You will get quicker results if you set a sensible
-    initial value for ``stepsize``.
-
-    Choosing `T`: The parameter `T` is the "temperature" used in the
-    Metropolis criterion. Basinhopping steps are always accepted if
-    ``func(xnew) < func(xold)``. Otherwise, they are accepted with
-    probability::
-
-        exp( -(func(xnew) - func(xold)) / T )
-
-    So, for best results, `T` should to be comparable to the typical
-    difference (in function values) between local minima. (The height of
-    "walls" between local minima is irrelevant.)
-
-    If `T` is 0, the algorithm becomes Monotonic Basin-Hopping, in which all
-    steps that increase energy are rejected.
-
-    .. versionadded:: 0.12.0
-
-    References
-    ----------
-    .. [1] Wales, David J. 2003, Energy Landscapes, Cambridge University Press,
-        Cambridge, UK.
-    .. [2] Wales, D J, and Doye J P K, Global Optimization by Basin-Hopping and
-        the Lowest Energy Structures of Lennard-Jones Clusters Containing up to
-        110 Atoms.  Journal of Physical Chemistry A, 1997, 101, 5111.
-    .. [3] Li, Z. and Scheraga, H. A., Monte Carlo-minimization approach to the
-        multiple-minima problem in protein folding, Proc. Natl. Acad. Sci. USA,
-        1987, 84, 6611.
-    .. [4] Wales, D. J. and Scheraga, H. A., Global optimization of clusters,
-        crystals, and biomolecules, Science, 1999, 285, 1368.
-    .. [5] Olson, B., Hashmi, I., Molloy, K., and Shehu1, A., Basin Hopping as
-        a General and Versatile Optimization Framework for the Characterization
-        of Biological Macromolecules, Advances in Artificial Intelligence,
-        Volume 2012 (2012), Article ID 674832, :doi:`10.1155/2012/674832`
-
-    Examples
-    --------
-    The following example is a 1-D minimization problem, with many
-    local minima superimposed on a parabola.
-
-    >>> import numpy as np
-    >>> from scipy.optimize import basinhopping
-    >>> func = lambda x: np.cos(14.5 * x - 0.3) + (x + 0.2) * x
-    >>> x0 = [1.]
-
-    Basinhopping, internally, uses a local minimization algorithm. We will use
-    the parameter `minimizer_kwargs` to tell basinhopping which algorithm to
-    use and how to set up that minimizer. This parameter will be passed to
-    `scipy.optimize.minimize`.
-
-    >>> minimizer_kwargs = {"method": "BFGS"}
-    >>> ret = basinhopping(func, x0, minimizer_kwargs=minimizer_kwargs,
-    ...                    niter=200)
-    >>> # the global minimum is:
-    >>> ret.x, ret.fun
-    -0.1951, -1.0009
-
-    Next consider a 2-D minimization problem. Also, this time, we
-    will use gradient information to significantly speed up the search.
-
-    >>> def func2d(x):
-    ...     f = np.cos(14.5 * x[0] - 0.3) + (x[1] + 0.2) * x[1] + (x[0] +
-    ...                                                            0.2) * x[0]
-    ...     df = np.zeros(2)
-    ...     df[0] = -14.5 * np.sin(14.5 * x[0] - 0.3) + 2. * x[0] + 0.2
-    ...     df[1] = 2. * x[1] + 0.2
-    ...     return f, df
-
-    We'll also use a different local minimization algorithm. Also, we must tell
-    the minimizer that our function returns both energy and gradient (Jacobian).
-
-    >>> minimizer_kwargs = {"method":"L-BFGS-B", "jac":True}
-    >>> x0 = [1.0, 1.0]
-    >>> ret = basinhopping(func2d, x0, minimizer_kwargs=minimizer_kwargs,
-    ...                    niter=200)
-    >>> print("global minimum: x = [%.4f, %.4f], f(x) = %.4f" % (ret.x[0],
-    ...                                                           ret.x[1],
-    ...                                                           ret.fun))
-    global minimum: x = [-0.1951, -0.1000], f(x) = -1.0109
-
-    Here is an example using a custom step-taking routine. Imagine you want
-    the first coordinate to take larger steps than the rest of the coordinates.
-    This can be implemented like so:
-
-    >>> class MyTakeStep:
-    ...    def __init__(self, stepsize=0.5):
-    ...        self.stepsize = stepsize
-    ...        self.rng = np.random.default_rng()
-    ...    def __call__(self, x):
-    ...        s = self.stepsize
-    ...        x[0] += self.rng.uniform(-2.*s, 2.*s)
-    ...        x[1:] += self.rng.uniform(-s, s, x[1:].shape)
-    ...        return x
-
-    Since ``MyTakeStep.stepsize`` exists basinhopping will adjust the magnitude
-    of `stepsize` to optimize the search. We'll use the same 2-D function as
-    before
-
-    >>> mytakestep = MyTakeStep()
-    >>> ret = basinhopping(func2d, x0, minimizer_kwargs=minimizer_kwargs,
-    ...                    niter=200, take_step=mytakestep)
-    >>> print("global minimum: x = [%.4f, %.4f], f(x) = %.4f" % (ret.x[0],
-    ...                                                           ret.x[1],
-    ...                                                           ret.fun))
-    global minimum: x = [-0.1951, -0.1000], f(x) = -1.0109
-
-    Now, let's do an example using a custom callback function which prints the
-    value of every minimum found
-
-    >>> def print_fun(x, f, accepted):
-    ...         print("at minimum %.4f accepted %d" % (f, int(accepted)))
-
-    We'll run it for only 10 basinhopping steps this time.
-
-    >>> rng = np.random.default_rng()
-    >>> ret = basinhopping(func2d, x0, minimizer_kwargs=minimizer_kwargs,
-    ...                    niter=10, callback=print_fun, seed=rng)
-    at minimum 0.4159 accepted 1
-    at minimum -0.4317 accepted 1
-    at minimum -1.0109 accepted 1
-    at minimum -0.9073 accepted 1
-    at minimum -0.4317 accepted 0
-    at minimum -0.1021 accepted 1
-    at minimum -0.7425 accepted 1
-    at minimum -0.9073 accepted 1
-    at minimum -0.4317 accepted 0
-    at minimum -0.7425 accepted 1
-    at minimum -0.9073 accepted 1
-
-    The minimum at -1.0109 is actually the global minimum, found already on the
-    8th iteration.
-
-    """ # numpy/numpydoc#87  # noqa: E501
-    if target_accept_rate <= 0. or target_accept_rate >= 1.:
-        raise ValueError('target_accept_rate has to be in range (0, 1)')
-    if stepwise_factor <= 0. or stepwise_factor >= 1.:
-        raise ValueError('stepwise_factor has to be in range (0, 1)')
-
-    x0 = np.array(x0)
-
-    # set up the np.random generator
-    rng = check_random_state(seed)
-
-    # set up minimizer
-    if minimizer_kwargs is None:
-        minimizer_kwargs = dict()
-    wrapped_minimizer = MinimizerWrapper(scipy.optimize.minimize, func,
-                                         **minimizer_kwargs)
-
-    # set up step-taking algorithm
-    if take_step is not None:
-        if not callable(take_step):
-            raise TypeError("take_step must be callable")
-        # if take_step.stepsize exists then use AdaptiveStepsize to control
-        # take_step.stepsize
-        if hasattr(take_step, "stepsize"):
-            take_step_wrapped = AdaptiveStepsize(
-                take_step, interval=interval,
-                accept_rate=target_accept_rate,
-                factor=stepwise_factor,
-                verbose=disp)
-        else:
-            take_step_wrapped = take_step
-    else:
-        # use default
-        displace = RandomDisplacement(stepsize=stepsize, random_gen=rng)
-        take_step_wrapped = AdaptiveStepsize(displace, interval=interval,
-                                             accept_rate=target_accept_rate,
-                                             factor=stepwise_factor,
-                                             verbose=disp)
-
-    # set up accept tests
-    accept_tests = []
-    if accept_test is not None:
-        if not callable(accept_test):
-            raise TypeError("accept_test must be callable")
-        accept_tests = [accept_test]
-
-    # use default
-    metropolis = Metropolis(T, random_gen=rng)
-    accept_tests.append(metropolis)
-
-    if niter_success is None:
-        niter_success = niter + 2
-
-    bh = BasinHoppingRunner(x0, wrapped_minimizer, take_step_wrapped,
-                            accept_tests, disp=disp)
-
-    # The wrapped minimizer is called once during construction of
-    # BasinHoppingRunner, so run the callback
-    if callable(callback):
-        callback(bh.storage.minres.x, bh.storage.minres.fun, True)
-
-    # start main iteration loop
-    count, i = 0, 0
-    message = ["requested number of basinhopping iterations completed"
-               " successfully"]
-    for i in range(niter):
-        new_global_min = bh.one_cycle()
-
-        if callable(callback):
-            # should we pass a copy of x?
-            val = callback(bh.xtrial, bh.energy_trial, bh.accept)
-            if val is not None:
-                if val:
-                    message = ["callback function requested stop early by"
-                               "returning True"]
-                    break
-
-        count += 1
-        if new_global_min:
-            count = 0
-        elif count > niter_success:
-            message = ["success condition satisfied"]
-            break
-
-    # prepare return object
-    res = bh.res
-    res.lowest_optimization_result = bh.storage.get_lowest()
-    res.x = np.copy(res.lowest_optimization_result.x)
-    res.fun = res.lowest_optimization_result.fun
-    res.message = message
-    res.nit = i + 1
-    res.success = res.lowest_optimization_result.success
-    return res
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_bracket.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_bracket.py
deleted file mode 100644
index 6abfaaa94408ef2ec26b6932a023c6a8aa8ab6fd..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_bracket.py
+++ /dev/null
@@ -1,666 +0,0 @@
-import numpy as np
-import scipy._lib._elementwise_iterative_method as eim
-from scipy._lib._util import _RichResult
-
-_ELIMITS = -1  # used in _bracket_root
-_ESTOPONESIDE = 2  # used in _bracket_root
-
-def _bracket_root_iv(func, xl0, xr0, xmin, xmax, factor, args, maxiter):
-
-    if not callable(func):
-        raise ValueError('`func` must be callable.')
-
-    if not np.iterable(args):
-        args = (args,)
-
-    xl0 = np.asarray(xl0)[()]
-    if not np.issubdtype(xl0.dtype, np.number) or np.iscomplex(xl0).any():
-        raise ValueError('`xl0` must be numeric and real.')
-
-    xr0 = xl0 + 1 if xr0 is None else xr0
-    xmin = -np.inf if xmin is None else xmin
-    xmax = np.inf if xmax is None else xmax
-    factor = 2. if factor is None else factor
-    xl0, xr0, xmin, xmax, factor = np.broadcast_arrays(xl0, xr0, xmin, xmax, factor)
-
-    if not np.issubdtype(xr0.dtype, np.number) or np.iscomplex(xr0).any():
-        raise ValueError('`xr0` must be numeric and real.')
-
-    if not np.issubdtype(xmin.dtype, np.number) or np.iscomplex(xmin).any():
-        raise ValueError('`xmin` must be numeric and real.')
-
-    if not np.issubdtype(xmax.dtype, np.number) or np.iscomplex(xmax).any():
-        raise ValueError('`xmax` must be numeric and real.')
-
-    if not np.issubdtype(factor.dtype, np.number) or np.iscomplex(factor).any():
-        raise ValueError('`factor` must be numeric and real.')
-    if not np.all(factor > 1):
-        raise ValueError('All elements of `factor` must be greater than 1.')
-
-    maxiter = np.asarray(maxiter)
-    message = '`maxiter` must be a non-negative integer.'
-    if (not np.issubdtype(maxiter.dtype, np.number) or maxiter.shape != tuple()
-            or np.iscomplex(maxiter)):
-        raise ValueError(message)
-    maxiter_int = int(maxiter[()])
-    if not maxiter == maxiter_int or maxiter < 0:
-        raise ValueError(message)
-
-    return func, xl0, xr0, xmin, xmax, factor, args, maxiter
-
-
-def _bracket_root(func, xl0, xr0=None, *, xmin=None, xmax=None, factor=None,
-                  args=(), maxiter=1000):
-    """Bracket the root of a monotonic scalar function of one variable
-
-    This function works elementwise when `xl0`, `xr0`, `xmin`, `xmax`, `factor`, and
-    the elements of `args` are broadcastable arrays.
-
-    Parameters
-    ----------
-    func : callable
-        The function for which the root is to be bracketed.
-        The signature must be::
-
-            func(x: ndarray, *args) -> ndarray
-
-        where each element of ``x`` is a finite real and ``args`` is a tuple,
-        which may contain an arbitrary number of arrays that are broadcastable
-        with `x`. ``func`` must be an elementwise function: each element
-        ``func(x)[i]`` must equal ``func(x[i])`` for all indices ``i``.
-    xl0, xr0: float array_like
-        Starting guess of bracket, which need not contain a root. If `xr0` is
-        not provided, ``xr0 = xl0 + 1``. Must be broadcastable with one another.
-    xmin, xmax : float array_like, optional
-        Minimum and maximum allowable endpoints of the bracket, inclusive. Must
-        be broadcastable with `xl0` and `xr0`.
-    factor : float array_like, default: 2
-        The factor used to grow the bracket. See notes for details.
-    args : tuple, optional
-        Additional positional arguments to be passed to `func`.  Must be arrays
-        broadcastable with `xl0`, `xr0`, `xmin`, and `xmax`. If the callable to be
-        bracketed requires arguments that are not broadcastable with these
-        arrays, wrap that callable with `func` such that `func` accepts
-        only `x` and broadcastable arrays.
-    maxiter : int, optional
-        The maximum number of iterations of the algorithm to perform.
-
-    Returns
-    -------
-    res : _RichResult
-        An instance of `scipy._lib._util._RichResult` with the following
-        attributes. The descriptions are written as though the values will be
-        scalars; however, if `func` returns an array, the outputs will be
-        arrays of the same shape.
-
-        xl, xr : float
-            The lower and upper ends of the bracket, if the algorithm
-            terminated successfully.
-        fl, fr : float
-            The function value at the lower and upper ends of the bracket.
-        nfev : int
-            The number of function evaluations required to find the bracket.
-            This is distinct from the number of times `func` is *called*
-            because the function may evaluated at multiple points in a single
-            call.
-        nit : int
-            The number of iterations of the algorithm that were performed.
-        status : int
-            An integer representing the exit status of the algorithm.
-
-            - ``0`` : The algorithm produced a valid bracket.
-            - ``-1`` : The bracket expanded to the allowable limits without finding a bracket.
-            - ``-2`` : The maximum number of iterations was reached.
-            - ``-3`` : A non-finite value was encountered.
-            - ``-4`` : Iteration was terminated by `callback`.
-            - ``-5``: The initial bracket does not satisfy `xmin <= xl0 < xr0 < xmax`.
-            - ``1`` : The algorithm is proceeding normally (in `callback` only).
-            - ``2`` : A bracket was found in the opposite search direction (in `callback` only).
-
-        success : bool
-            ``True`` when the algorithm terminated successfully (status ``0``).
-
-    Notes
-    -----
-    This function generalizes an algorithm found in pieces throughout
-    `scipy.stats`. The strategy is to iteratively grow the bracket `(l, r)`
-     until ``func(l) < 0 < func(r)``. The bracket grows to the left as follows.
-
-    - If `xmin` is not provided, the distance between `xl0` and `l` is iteratively
-      increased by `factor`.
-    - If `xmin` is provided, the distance between `xmin` and `l` is iteratively
-      decreased by `factor`. Note that this also *increases* the bracket size.
-
-    Growth of the bracket to the right is analogous.
-
-    Growth of the bracket in one direction stops when the endpoint is no longer
-    finite, the function value at the endpoint is no longer finite, or the
-    endpoint reaches its limiting value (`xmin` or `xmax`). Iteration terminates
-    when the bracket stops growing in both directions, the bracket surrounds
-    the root, or a root is found (accidentally).
-
-    If two brackets are found - that is, a bracket is found on both sides in
-    the same iteration, the smaller of the two is returned.
-    If roots of the function are found, both `l` and `r` are set to the
-    leftmost root.
-
-    """  # noqa: E501
-    # Todo:
-    # - find bracket with sign change in specified direction
-    # - Add tolerance
-    # - allow factor < 1?
-
-    callback = None  # works; I just don't want to test it
-    temp = _bracket_root_iv(func, xl0, xr0, xmin, xmax, factor, args, maxiter)
-    func, xl0, xr0, xmin, xmax, factor, args, maxiter = temp
-
-    xs = (xl0, xr0)
-    temp = eim._initialize(func, xs, args)
-    func, xs, fs, args, shape, dtype, xp = temp  # line split for PEP8
-    xl0, xr0 = xs
-    xmin = np.broadcast_to(xmin, shape).astype(dtype, copy=False).ravel()
-    xmax = np.broadcast_to(xmax, shape).astype(dtype, copy=False).ravel()
-    invalid_bracket = ~((xmin <= xl0) & (xl0 < xr0) & (xr0 <= xmax))
-
-    # The approach is to treat the left and right searches as though they were
-    # (almost) totally independent one-sided bracket searches. (The interaction
-    # is considered when checking for termination and preparing the result
-    # object.)
-    # `x` is the "moving" end of the bracket
-    x = np.concatenate(xs)
-    f = np.concatenate(fs)
-    invalid_bracket = np.concatenate((invalid_bracket, invalid_bracket))
-    n = len(x) // 2
-
-    # `x_last` is the previous location of the moving end of the bracket. If
-    # the signs of `f` and `f_last` are different, `x` and `x_last` form a
-    # bracket.
-    x_last = np.concatenate((x[n:], x[:n]))
-    f_last = np.concatenate((f[n:], f[:n]))
-    # `x0` is the "fixed" end of the bracket.
-    x0 = x_last
-    # We don't need to retain the corresponding function value, since the
-    # fixed end of the bracket is only needed to compute the new value of the
-    # moving end; it is never returned.
-    limit = np.concatenate((xmin, xmax))
-
-    factor = np.broadcast_to(factor, shape).astype(dtype, copy=False).ravel()
-    factor = np.concatenate((factor, factor))
-
-    active = np.arange(2*n)
-    args = [np.concatenate((arg, arg)) for arg in args]
-
-    # This is needed due to inner workings of `eim._loop`.
-    # We're abusing it a tiny bit.
-    shape = shape + (2,)
-
-    # `d` is for "distance".
-    # For searches without a limit, the distance between the fixed end of the
-    # bracket `x0` and the moving end `x` will grow by `factor` each iteration.
-    # For searches with a limit, the distance between the `limit` and moving
-    # end of the bracket `x` will shrink by `factor` each iteration.
-    i = np.isinf(limit)
-    ni = ~i
-    d = np.zeros_like(x)
-    d[i] = x[i] - x0[i]
-    d[ni] = limit[ni] - x[ni]
-
-    status = np.full_like(x, eim._EINPROGRESS, dtype=int)  # in progress
-    status[invalid_bracket] = eim._EINPUTERR
-    nit, nfev = 0, 1  # one function evaluation per side performed above
-
-    work = _RichResult(x=x, x0=x0, f=f, limit=limit, factor=factor,
-                       active=active, d=d, x_last=x_last, f_last=f_last,
-                       nit=nit, nfev=nfev, status=status, args=args,
-                       xl=None, xr=None, fl=None, fr=None, n=n)
-    res_work_pairs = [('status', 'status'), ('xl', 'xl'), ('xr', 'xr'),
-                      ('nit', 'nit'), ('nfev', 'nfev'), ('fl', 'fl'),
-                      ('fr', 'fr'), ('x', 'x'), ('f', 'f'),
-                      ('x_last', 'x_last'), ('f_last', 'f_last')]
-
-    def pre_func_eval(work):
-        # Initialize moving end of bracket
-        x = np.zeros_like(work.x)
-
-        # Unlimited brackets grow by `factor` by increasing distance from fixed
-        # end to moving end.
-        i = np.isinf(work.limit)  # indices of unlimited brackets
-        work.d[i] *= work.factor[i]
-        x[i] = work.x0[i] + work.d[i]
-
-        # Limited brackets grow by decreasing the distance from the limit to
-        # the moving end.
-        ni = ~i  # indices of limited brackets
-        work.d[ni] /= work.factor[ni]
-        x[ni] = work.limit[ni] - work.d[ni]
-
-        return x
-
-    def post_func_eval(x, f, work):
-        # Keep track of the previous location of the moving end so that we can
-        # return a narrower bracket. (The alternative is to remember the
-        # original fixed end, but then the bracket would be wider than needed.)
-        work.x_last = work.x
-        work.f_last = work.f
-        work.x = x
-        work.f = f
-
-    def check_termination(work):
-        # Condition 0: initial bracket is invalid
-        stop = (work.status == eim._EINPUTERR)
-
-        # Condition 1: a valid bracket (or the root itself) has been found
-        sf = np.sign(work.f)
-        sf_last = np.sign(work.f_last)
-        i = ((sf_last == -sf) | (sf_last == 0) | (sf == 0)) & ~stop
-        work.status[i] = eim._ECONVERGED
-        stop[i] = True
-
-        # Condition 2: the other side's search found a valid bracket.
-        # (If we just found a bracket with the rightward search, we can stop
-        #  the leftward search, and vice-versa.)
-        # To do this, we need to set the status of the other side's search;
-        # this is tricky because `work.status` contains only the *active*
-        # elements, so we don't immediately know the index of the element we
-        # need to set - or even if it's still there. (That search may have
-        # terminated already, e.g. by reaching its `limit`.)
-        # To facilitate this, `work.active` contains a unit integer index of
-        # each search. Index `k` (`k < n)` and `k + n` correspond with a
-        # leftward and rightward search, respectively. Elements are removed
-        # from `work.active` just as they are removed from `work.status`, so
-        # we use `work.active` to help find the right location in
-        # `work.status`.
-        # Get the integer indices of the elements that can also stop
-        also_stop = (work.active[i] + work.n) % (2*work.n)
-        # Check whether they are still active.
-        # To start, we need to find out where in `work.active` they would
-        # appear if they are indeed there.
-        j = np.searchsorted(work.active, also_stop)
-        # If the location exceeds the length of the `work.active`, they are
-        # not there.
-        j = j[j < len(work.active)]
-        # Check whether they are still there.
-        j = j[also_stop == work.active[j]]
-        # Now convert these to boolean indices to use with `work.status`.
-        i = np.zeros_like(stop)
-        i[j] = True  # boolean indices of elements that can also stop
-        i = i & ~stop
-        work.status[i] = _ESTOPONESIDE
-        stop[i] = True
-
-        # Condition 3: moving end of bracket reaches limit
-        i = (work.x == work.limit) & ~stop
-        work.status[i] = _ELIMITS
-        stop[i] = True
-
-        # Condition 4: non-finite value encountered
-        i = ~(np.isfinite(work.x) & np.isfinite(work.f)) & ~stop
-        work.status[i] = eim._EVALUEERR
-        stop[i] = True
-
-        return stop
-
-    def post_termination_check(work):
-        pass
-
-    def customize_result(res, shape):
-        n = len(res['x']) // 2
-
-        # To avoid ambiguity, below we refer to `xl0`, the initial left endpoint
-        # as `a` and `xr0`, the initial right endpoint, as `b`.
-        # Because we treat the two one-sided searches as though they were
-        # independent, what we keep track of in `work` and what we want to
-        # return in `res` look quite different. Combine the results from the
-        # two one-sided searches before reporting the results to the user.
-        # - "a" refers to the leftward search (the moving end started at `a`)
-        # - "b" refers to the rightward search (the moving end started at `b`)
-        # - "l" refers to the left end of the bracket (closer to -oo)
-        # - "r" refers to the right end of the bracket (closer to +oo)
-        xal = res['x'][:n]
-        xar = res['x_last'][:n]
-        xbl = res['x_last'][n:]
-        xbr = res['x'][n:]
-
-        fal = res['f'][:n]
-        far = res['f_last'][:n]
-        fbl = res['f_last'][n:]
-        fbr = res['f'][n:]
-
-        # Initialize the brackets and corresponding function values to return
-        # to the user. Brackets may not be valid (e.g. there is no root,
-        # there weren't enough iterations, NaN encountered), but we still need
-        # to return something. One option would be all NaNs, but what I've
-        # chosen here is the left- and right-most points at which the function
-        # has been evaluated. This gives the user some information about what
-        # interval of the real line has been searched and shows that there is
-        # no sign change between the two ends.
-        xl = xal.copy()
-        fl = fal.copy()
-        xr = xbr.copy()
-        fr = fbr.copy()
-
-        # `status` indicates whether the bracket is valid or not. If so,
-        # we want to adjust the bracket we return to be the narrowest possible
-        # given the points at which we evaluated the function.
-        # For example if bracket "a" is valid and smaller than bracket "b" OR
-        # if bracket "a" is valid and bracket "b" is not valid, we want to
-        # return bracket "a" (and vice versa).
-        sa = res['status'][:n]
-        sb = res['status'][n:]
-
-        da = xar - xal
-        db = xbr - xbl
-
-        i1 = ((da <= db) & (sa == 0)) | ((sa == 0) & (sb != 0))
-        i2 = ((db <= da) & (sb == 0)) | ((sb == 0) & (sa != 0))
-
-        xr[i1] = xar[i1]
-        fr[i1] = far[i1]
-        xl[i2] = xbl[i2]
-        fl[i2] = fbl[i2]
-
-        # Finish assembling the result object
-        res['xl'] = xl
-        res['xr'] = xr
-        res['fl'] = fl
-        res['fr'] = fr
-
-        res['nit'] = np.maximum(res['nit'][:n], res['nit'][n:])
-        res['nfev'] = res['nfev'][:n] + res['nfev'][n:]
-        # If the status on one side is zero, the status is zero. In any case,
-        # report the status from one side only.
-        res['status'] = np.choose(sa == 0, (sb, sa))
-        res['success'] = (res['status'] == 0)
-
-        del res['x']
-        del res['f']
-        del res['x_last']
-        del res['f_last']
-
-        return shape[:-1]
-
-    return eim._loop(work, callback, shape, maxiter, func, args, dtype,
-                     pre_func_eval, post_func_eval, check_termination,
-                     post_termination_check, customize_result, res_work_pairs,
-                     xp)
-
-
-def _bracket_minimum_iv(func, xm0, xl0, xr0, xmin, xmax, factor, args, maxiter):
-
-    if not callable(func):
-        raise ValueError('`func` must be callable.')
-
-    if not np.iterable(args):
-        args = (args,)
-
-    xm0 = np.asarray(xm0)[()]
-    if not np.issubdtype(xm0.dtype, np.number) or np.iscomplex(xm0).any():
-        raise ValueError('`xm0` must be numeric and real.')
-
-    xmin = -np.inf if xmin is None else xmin
-    xmax = np.inf if xmax is None else xmax
-
-    # If xl0 (xr0) is not supplied, fill with a dummy value for the sake
-    # of broadcasting. We need to wait until xmin (xmax) has been validated
-    # to compute the default values.
-    xl0_not_supplied = False
-    if xl0 is None:
-        xl0 = np.nan
-        xl0_not_supplied = True
-
-    xr0_not_supplied = False
-    if xr0 is None:
-        xr0 = np.nan
-        xr0_not_supplied = True
-
-    factor = 2.0 if factor is None else factor
-    xl0, xm0, xr0, xmin, xmax, factor = np.broadcast_arrays(
-        xl0, xm0, xr0, xmin, xmax, factor
-    )
-
-    if not np.issubdtype(xl0.dtype, np.number) or np.iscomplex(xl0).any():
-        raise ValueError('`xl0` must be numeric and real.')
-
-    if not np.issubdtype(xr0.dtype, np.number) or np.iscomplex(xr0).any():
-        raise ValueError('`xr0` must be numeric and real.')
-
-    if not np.issubdtype(xmin.dtype, np.number) or np.iscomplex(xmin).any():
-        raise ValueError('`xmin` must be numeric and real.')
-
-    if not np.issubdtype(xmax.dtype, np.number) or np.iscomplex(xmax).any():
-        raise ValueError('`xmax` must be numeric and real.')
-
-    if not np.issubdtype(factor.dtype, np.number) or np.iscomplex(factor).any():
-        raise ValueError('`factor` must be numeric and real.')
-    if not np.all(factor > 1):
-        raise ValueError('All elements of `factor` must be greater than 1.')
-
-    # Calculate default values of xl0 and/or xr0 if they have not been supplied
-    # by the user. We need to be careful to ensure xl0 and xr0 are not outside
-    # of (xmin, xmax).
-    if xl0_not_supplied:
-        xl0 = xm0 - np.minimum((xm0 - xmin)/16, 0.5)
-    if xr0_not_supplied:
-        xr0 = xm0 + np.minimum((xmax - xm0)/16, 0.5)
-
-    maxiter = np.asarray(maxiter)
-    message = '`maxiter` must be a non-negative integer.'
-    if (not np.issubdtype(maxiter.dtype, np.number) or maxiter.shape != tuple()
-            or np.iscomplex(maxiter)):
-        raise ValueError(message)
-    maxiter_int = int(maxiter[()])
-    if not maxiter == maxiter_int or maxiter < 0:
-        raise ValueError(message)
-
-    return func, xm0, xl0, xr0, xmin, xmax, factor, args, maxiter
-
-
-def _bracket_minimum(func, xm0, *, xl0=None, xr0=None, xmin=None, xmax=None,
-                     factor=None, args=(), maxiter=1000):
-    """Bracket the minimum of a unimodal scalar function of one variable
-
-    This function works elementwise when `xm0`, `xl0`, `xr0`, `xmin`, `xmax`,
-    and the elements of `args` are broadcastable arrays.
-
-    Parameters
-    ----------
-    func : callable
-        The function for which the minimum is to be bracketed.
-        The signature must be::
-
-            func(x: ndarray, *args) -> ndarray
-
-        where each element of ``x`` is a finite real and ``args`` is a tuple,
-        which may contain an arbitrary number of arrays that are broadcastable
-        with ``x``. `func` must be an elementwise function: each element
-        ``func(x)[i]`` must equal ``func(x[i])`` for all indices `i`.
-    xm0: float array_like
-        Starting guess for middle point of bracket.
-    xl0, xr0: float array_like, optional
-        Starting guesses for left and right endpoints of the bracket. Must be
-        broadcastable with one another and with `xm0`.
-    xmin, xmax : float array_like, optional
-        Minimum and maximum allowable endpoints of the bracket, inclusive. Must
-        be broadcastable with `xl0`, `xm0`, and `xr0`.
-    factor : float array_like, optional
-        Controls expansion of bracket endpoint in downhill direction. Works
-        differently in the cases where a limit is set in the downhill direction
-        with `xmax` or `xmin`. See Notes.
-    args : tuple, optional
-        Additional positional arguments to be passed to `func`.  Must be arrays
-        broadcastable with `xl0`, `xm0`, `xr0`, `xmin`, and `xmax`. If the
-        callable to be bracketed requires arguments that are not broadcastable
-        with these arrays, wrap that callable with `func` such that `func`
-        accepts only ``x`` and broadcastable arrays.
-    maxiter : int, optional
-        The maximum number of iterations of the algorithm to perform. The number
-        of function evaluations is three greater than the number of iterations.
-
-    Returns
-    -------
-    res : _RichResult
-        An instance of `scipy._lib._util._RichResult` with the following
-        attributes. The descriptions are written as though the values will be
-        scalars; however, if `func` returns an array, the outputs will be
-        arrays of the same shape.
-
-        xl, xm, xr : float
-            The left, middle, and right points of the bracket, if the algorithm
-            terminated successfully.
-        fl, fm, fr : float
-            The function value at the left, middle, and right points of the bracket.
-        nfev : int
-            The number of function evaluations required to find the bracket.
-        nit : int
-            The number of iterations of the algorithm that were performed.
-        status : int
-            An integer representing the exit status of the algorithm.
-
-            - ``0`` : The algorithm produced a valid bracket.
-            - ``-1`` : The bracket expanded to the allowable limits. Assuming
-                       unimodality, this implies the endpoint at the limit is a
-                       minimizer.
-            - ``-2`` : The maximum number of iterations was reached.
-            - ``-3`` : A non-finite value was encountered.
-            - ``-4`` : ``None`` shall pass.
-            - ``-5`` : The initial bracket does not satisfy
-                       `xmin <= xl0 < xm0 < xr0 <= xmax`.
-
-        success : bool
-            ``True`` when the algorithm terminated successfully (status ``0``).
-
-    Notes
-    -----
-    Similar to `scipy.optimize.bracket`, this function seeks to find real
-    points ``xl < xm < xr`` such that ``f(xl) >= f(xm)`` and ``f(xr) >= f(xm)``,
-    where at least one of the inequalities is strict. Unlike `scipy.optimize.bracket`,
-    this function can operate in a vectorized manner on array input, so long as
-    the input arrays are broadcastable with each other. Also unlike
-    `scipy.optimize.bracket`, users may specify minimum and maximum endpoints
-    for the desired bracket.
-
-    Given an initial trio of points ``xl = xl0``, ``xm = xm0``, ``xr = xr0``,
-    the algorithm checks if these points already give a valid bracket. If not,
-    a new endpoint, ``w`` is chosen in the "downhill" direction, ``xm`` becomes the new
-    opposite endpoint, and either `xl` or `xr` becomes the new middle point,
-    depending on which direction is downhill. The algorithm repeats from here.
-
-    The new endpoint `w` is chosen differently depending on whether or not a
-    boundary `xmin` or `xmax` has been set in the downhill direction. Without
-    loss of generality, suppose the downhill direction is to the right, so that
-    ``f(xl) > f(xm) > f(xr)``. If there is no boundary to the right, then `w`
-    is chosen to be ``xr + factor * (xr - xm)`` where `factor` is controlled by
-    the user (defaults to 2.0) so that step sizes increase in geometric proportion.
-    If there is a boundary, `xmax` in this case, then `w` is chosen to be
-    ``xmax - (xmax - xr)/factor``, with steps slowing to a stop at
-    `xmax`. This cautious approach ensures that a minimum near but distinct from
-    the boundary isn't missed while also detecting whether or not the `xmax` is
-    a minimizer when `xmax` is reached after a finite number of steps.
-    """  # noqa: E501
-    callback = None  # works; I just don't want to test it
-
-    temp = _bracket_minimum_iv(func, xm0, xl0, xr0, xmin, xmax, factor, args, maxiter)
-    func, xm0, xl0, xr0, xmin, xmax, factor, args, maxiter = temp
-
-    xs = (xl0, xm0, xr0)
-    temp = eim._initialize(func, xs, args)
-    func, xs, fs, args, shape, dtype, xp = temp
-
-    xl0, xm0, xr0 = xs
-    fl0, fm0, fr0 = fs
-    xmin = np.broadcast_to(xmin, shape).astype(dtype, copy=False).ravel()
-    xmax = np.broadcast_to(xmax, shape).astype(dtype, copy=False).ravel()
-    invalid_bracket = ~((xmin <= xl0) & (xl0 < xm0) & (xm0 < xr0) & (xr0 <= xmax))
-    # We will modify factor later on so make a copy. np.broadcast_to returns
-    # a read-only view.
-    factor = np.broadcast_to(factor, shape).astype(dtype, copy=True).ravel()
-
-    # To simplify the logic, swap xl and xr if f(xl) < f(xr). We should always be
-    # marching downhill in the direction from xl to xr.
-    comp = fl0 < fr0
-    xl0[comp], xr0[comp] = xr0[comp], xl0[comp]
-    fl0[comp], fr0[comp] = fr0[comp], fl0[comp]
-    # We only need the boundary in the direction we're traveling.
-    limit = np.where(comp, xmin, xmax)
-
-    unlimited = np.isinf(limit)
-    limited = ~unlimited
-    step = np.empty_like(xl0)
-
-    step[unlimited] = (xr0[unlimited] - xm0[unlimited])
-    step[limited] = (limit[limited] - xr0[limited])
-
-    # Step size is divided by factor for case where there is a limit.
-    factor[limited] = 1 / factor[limited]
-
-    status = np.full_like(xl0, eim._EINPROGRESS, dtype=int)
-    status[invalid_bracket] = eim._EINPUTERR
-    nit, nfev = 0, 3
-
-    work = _RichResult(xl=xl0, xm=xm0, xr=xr0, xr0=xr0, fl=fl0, fm=fm0, fr=fr0,
-                       step=step, limit=limit, limited=limited, factor=factor, nit=nit,
-                       nfev=nfev, status=status, args=args)
-
-    res_work_pairs = [('status', 'status'), ('xl', 'xl'), ('xm', 'xm'), ('xr', 'xr'),
-                      ('nit', 'nit'), ('nfev', 'nfev'), ('fl', 'fl'), ('fm', 'fm'),
-                      ('fr', 'fr')]
-
-    def pre_func_eval(work):
-        work.step *= work.factor
-        x = np.empty_like(work.xr)
-        x[~work.limited] = work.xr0[~work.limited] + work.step[~work.limited]
-        x[work.limited] = work.limit[work.limited] - work.step[work.limited]
-        # Since the new bracket endpoint is calculated from an offset with the
-        # limit, it may be the case that the new endpoint equals the old endpoint,
-        # when the old endpoint is sufficiently close to the limit. We use the
-        # limit itself as the new endpoint in these cases.
-        x[work.limited] = np.where(
-            x[work.limited] == work.xr[work.limited],
-            work.limit[work.limited],
-            x[work.limited],
-        )
-        return x
-
-    def post_func_eval(x, f, work):
-        work.xl, work.xm, work.xr = work.xm, work.xr, x
-        work.fl, work.fm, work.fr = work.fm, work.fr, f
-
-    def check_termination(work):
-        # Condition 0: Initial bracket is invalid.
-        stop = (work.status == eim._EINPUTERR)
-
-        # Condition 1: A valid bracket has been found.
-        i = (
-            (work.fl >= work.fm) & (work.fr > work.fm)
-            | (work.fl > work.fm) & (work.fr >= work.fm)
-        ) & ~stop
-        work.status[i] = eim._ECONVERGED
-        stop[i] = True
-
-        # Condition 2: Moving end of bracket reaches limit.
-        i = (work.xr == work.limit) & ~stop
-        work.status[i] = _ELIMITS
-        stop[i] = True
-
-        # Condition 3: non-finite value encountered
-        i = ~(np.isfinite(work.xr) & np.isfinite(work.fr)) & ~stop
-        work.status[i] = eim._EVALUEERR
-        stop[i] = True
-
-        return stop
-
-    def post_termination_check(work):
-        pass
-
-    def customize_result(res, shape):
-        # Reorder entries of xl and xr if they were swapped due to f(xl0) < f(xr0).
-        comp = res['xl'] > res['xr']
-        res['xl'][comp], res['xr'][comp] = res['xr'][comp], res['xl'][comp]
-        res['fl'][comp], res['fr'][comp] = res['fr'][comp], res['fl'][comp]
-        return shape
-
-    return eim._loop(work, callback, shape,
-                     maxiter, func, args, dtype,
-                     pre_func_eval, post_func_eval,
-                     check_termination, post_termination_check,
-                     customize_result, res_work_pairs, xp)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_chandrupatla.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_chandrupatla.py
deleted file mode 100644
index f1759d6191db209d26bbabc6ebc81a951b43b884..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_chandrupatla.py
+++ /dev/null
@@ -1,549 +0,0 @@
-import math
-import numpy as np
-import scipy._lib._elementwise_iterative_method as eim
-from scipy._lib._util import _RichResult
-from scipy._lib._array_api import xp_clip, xp_minimum, xp_sign
-
-# TODO:
-# - (maybe?) don't use fancy indexing assignment
-# - figure out how to replace the new `try`/`except`s
-
-
-def _chandrupatla(func, a, b, *, args=(), xatol=None, xrtol=None,
-                  fatol=None, frtol=0, maxiter=None, callback=None):
-    """Find the root of an elementwise function using Chandrupatla's algorithm.
-
-    For each element of the output of `func`, `chandrupatla` seeks the scalar
-    root that makes the element 0. This function allows for `a`, `b`, and the
-    output of `func` to be of any broadcastable shapes.
-
-    Parameters
-    ----------
-    func : callable
-        The function whose root is desired. The signature must be::
-
-            func(x: ndarray, *args) -> ndarray
-
-         where each element of ``x`` is a finite real and ``args`` is a tuple,
-         which may contain an arbitrary number of components of any type(s).
-         ``func`` must be an elementwise function: each element ``func(x)[i]``
-         must equal ``func(x[i])`` for all indices ``i``. `_chandrupatla`
-         seeks an array ``x`` such that ``func(x)`` is an array of zeros.
-    a, b : array_like
-        The lower and upper bounds of the root of the function. Must be
-        broadcastable with one another.
-    args : tuple, optional
-        Additional positional arguments to be passed to `func`.
-    xatol, xrtol, fatol, frtol : float, optional
-        Absolute and relative tolerances on the root and function value.
-        See Notes for details.
-    maxiter : int, optional
-        The maximum number of iterations of the algorithm to perform.
-        The default is the maximum possible number of bisections within
-        the (normal) floating point numbers of the relevant dtype.
-    callback : callable, optional
-        An optional user-supplied function to be called before the first
-        iteration and after each iteration.
-        Called as ``callback(res)``, where ``res`` is a ``_RichResult``
-        similar to that returned by `_chandrupatla` (but containing the current
-        iterate's values of all variables). If `callback` raises a
-        ``StopIteration``, the algorithm will terminate immediately and
-        `_chandrupatla` will return a result.
-
-    Returns
-    -------
-    res : _RichResult
-        An instance of `scipy._lib._util._RichResult` with the following
-        attributes. The descriptions are written as though the values will be
-        scalars; however, if `func` returns an array, the outputs will be
-        arrays of the same shape.
-
-        x : float
-            The root of the function, if the algorithm terminated successfully.
-        nfev : int
-            The number of times the function was called to find the root.
-        nit : int
-            The number of iterations of Chandrupatla's algorithm performed.
-        status : int
-            An integer representing the exit status of the algorithm.
-            ``0`` : The algorithm converged to the specified tolerances.
-            ``-1`` : The algorithm encountered an invalid bracket.
-            ``-2`` : The maximum number of iterations was reached.
-            ``-3`` : A non-finite value was encountered.
-            ``-4`` : Iteration was terminated by `callback`.
-            ``1`` : The algorithm is proceeding normally (in `callback` only).
-        success : bool
-            ``True`` when the algorithm terminated successfully (status ``0``).
-        fun : float
-            The value of `func` evaluated at `x`.
-        xl, xr : float
-            The lower and upper ends of the bracket.
-        fl, fr : float
-            The function value at the lower and upper ends of the bracket.
-
-    Notes
-    -----
-    Implemented based on Chandrupatla's original paper [1]_.
-
-    If ``xl`` and ``xr`` are the left and right ends of the bracket,
-    ``xmin = xl if abs(func(xl)) <= abs(func(xr)) else xr``,
-    and ``fmin0 = min(func(a), func(b))``, then the algorithm is considered to
-    have converged when ``abs(xr - xl) < xatol + abs(xmin) * xrtol`` or
-    ``fun(xmin) <= fatol + abs(fmin0) * frtol``. This is equivalent to the
-    termination condition described in [1]_ with ``xrtol = 4e-10``,
-    ``xatol = 1e-5``, and ``fatol = frtol = 0``. The default values are
-    ``xatol = 4*tiny``, ``xrtol = 4*eps``, ``frtol = 0``, and ``fatol = tiny``,
-    where ``eps`` and ``tiny`` are the precision and smallest normal number
-    of the result ``dtype`` of function inputs and outputs.
-
-    References
-    ----------
-
-    .. [1] Chandrupatla, Tirupathi R.
-        "A new hybrid quadratic/bisection algorithm for finding the zero of a
-        nonlinear function without using derivatives".
-        Advances in Engineering Software, 28(3), 145-149.
-        https://doi.org/10.1016/s0965-9978(96)00051-8
-
-    See Also
-    --------
-    brentq, brenth, ridder, bisect, newton
-
-    Examples
-    --------
-    >>> from scipy import optimize
-    >>> def f(x, c):
-    ...     return x**3 - 2*x - c
-    >>> c = 5
-    >>> res = optimize._chandrupatla._chandrupatla(f, 0, 3, args=(c,))
-    >>> res.x
-    2.0945514818937463
-
-    >>> c = [3, 4, 5]
-    >>> res = optimize._chandrupatla._chandrupatla(f, 0, 3, args=(c,))
-    >>> res.x
-    array([1.8932892 , 2.        , 2.09455148])
-
-    """
-    res = _chandrupatla_iv(func, args, xatol, xrtol,
-                           fatol, frtol, maxiter, callback)
-    func, args, xatol, xrtol, fatol, frtol, maxiter, callback = res
-
-    # Initialization
-    temp = eim._initialize(func, (a, b), args)
-    func, xs, fs, args, shape, dtype, xp = temp
-    x1, x2 = xs
-    f1, f2 = fs
-    status = xp.full_like(x1, eim._EINPROGRESS, dtype=xp.int32)  # in progress
-    nit, nfev = 0, 2  # two function evaluations performed above
-    finfo = xp.finfo(dtype)
-    xatol = 4*finfo.smallest_normal if xatol is None else xatol
-    xrtol = 4*finfo.eps if xrtol is None else xrtol
-    fatol = finfo.smallest_normal if fatol is None else fatol
-    frtol = frtol * xp_minimum(xp.abs(f1), xp.abs(f2))
-    maxiter = (math.log2(finfo.max) - math.log2(finfo.smallest_normal)
-               if maxiter is None else maxiter)
-    work = _RichResult(x1=x1, f1=f1, x2=x2, f2=f2, x3=None, f3=None, t=0.5,
-                       xatol=xatol, xrtol=xrtol, fatol=fatol, frtol=frtol,
-                       nit=nit, nfev=nfev, status=status)
-    res_work_pairs = [('status', 'status'), ('x', 'xmin'), ('fun', 'fmin'),
-                      ('nit', 'nit'), ('nfev', 'nfev'), ('xl', 'x1'),
-                      ('fl', 'f1'), ('xr', 'x2'), ('fr', 'f2')]
-
-    def pre_func_eval(work):
-        # [1] Figure 1 (first box)
-        x = work.x1 + work.t * (work.x2 - work.x1)
-        return x
-
-    def post_func_eval(x, f, work):
-        # [1] Figure 1 (first diamond and boxes)
-        # Note: y/n are reversed in figure; compare to BASIC in appendix
-        work.x3, work.f3 = (xp.asarray(work.x2, copy=True),
-                            xp.asarray(work.f2, copy=True))
-        j = xp.sign(f) == xp.sign(work.f1)
-        nj = ~j
-        work.x3[j], work.f3[j] = work.x1[j], work.f1[j]
-        work.x2[nj], work.f2[nj] = work.x1[nj], work.f1[nj]
-        work.x1, work.f1 = x, f
-
-    def check_termination(work):
-        # [1] Figure 1 (second diamond)
-        # Check for all terminal conditions and record statuses.
-
-        # See [1] Section 4 (first two sentences)
-        i = xp.abs(work.f1) < xp.abs(work.f2)
-        work.xmin = xp.where(i, work.x1, work.x2)
-        work.fmin = xp.where(i, work.f1, work.f2)
-        stop = xp.zeros_like(work.x1, dtype=xp.bool)  # termination condition met
-
-        # If function value tolerance is met, report successful convergence,
-        # regardless of other conditions. Note that `frtol` has been redefined
-        # as `frtol = frtol * minimum(f1, f2)`, where `f1` and `f2` are the
-        # function evaluated at the original ends of the bracket.
-        i = xp.abs(work.fmin) <= work.fatol + work.frtol
-        work.status[i] = eim._ECONVERGED
-        stop[i] = True
-
-        # If the bracket is no longer valid, report failure (unless a function
-        # tolerance is met, as detected above).
-        i = (xp_sign(work.f1) == xp_sign(work.f2)) & ~stop
-        NaN = xp.asarray(xp.nan, dtype=work.xmin.dtype)
-        work.xmin[i], work.fmin[i], work.status[i] = NaN, NaN, eim._ESIGNERR
-        stop[i] = True
-
-        # If the abscissae are non-finite or either function value is NaN,
-        # report failure.
-        x_nonfinite = ~(xp.isfinite(work.x1) & xp.isfinite(work.x2))
-        f_nan = xp.isnan(work.f1) & xp.isnan(work.f2)
-        i = (x_nonfinite | f_nan) & ~stop
-        work.xmin[i], work.fmin[i], work.status[i] = NaN, NaN, eim._EVALUEERR
-        stop[i] = True
-
-        # This is the convergence criterion used in bisect. Chandrupatla's
-        # criterion is equivalent to this except with a factor of 4 on `xrtol`.
-        work.dx = xp.abs(work.x2 - work.x1)
-        work.tol = xp.abs(work.xmin) * work.xrtol + work.xatol
-        i = work.dx < work.tol
-        work.status[i] = eim._ECONVERGED
-        stop[i] = True
-
-        return stop
-
-    def post_termination_check(work):
-        # [1] Figure 1 (third diamond and boxes / Equation 1)
-        xi1 = (work.x1 - work.x2) / (work.x3 - work.x2)
-        phi1 = (work.f1 - work.f2) / (work.f3 - work.f2)
-        alpha = (work.x3 - work.x1) / (work.x2 - work.x1)
-        j = ((1 - xp.sqrt(1 - xi1)) < phi1) & (phi1 < xp.sqrt(xi1))
-
-        f1j, f2j, f3j, alphaj = work.f1[j], work.f2[j], work.f3[j], alpha[j]
-        t = xp.full_like(alpha, 0.5)
-        t[j] = (f1j / (f1j - f2j) * f3j / (f3j - f2j)
-                - alphaj * f1j / (f3j - f1j) * f2j / (f2j - f3j))
-
-        # [1] Figure 1 (last box; see also BASIC in appendix with comment
-        # "Adjust T Away from the Interval Boundary")
-        tl = 0.5 * work.tol / work.dx
-        work.t = xp_clip(t, tl, 1 - tl)
-
-    def customize_result(res, shape):
-        xl, xr, fl, fr = res['xl'], res['xr'], res['fl'], res['fr']
-        i = res['xl'] < res['xr']
-        res['xl'] = xp.where(i, xl, xr)
-        res['xr'] = xp.where(i, xr, xl)
-        res['fl'] = xp.where(i, fl, fr)
-        res['fr'] = xp.where(i, fr, fl)
-        return shape
-
-    return eim._loop(work, callback, shape, maxiter, func, args, dtype,
-                     pre_func_eval, post_func_eval, check_termination,
-                     post_termination_check, customize_result, res_work_pairs,
-                     xp=xp)
-
-
-def _chandrupatla_iv(func, args, xatol, xrtol,
-                     fatol, frtol, maxiter, callback):
-    # Input validation for `_chandrupatla`
-
-    if not callable(func):
-        raise ValueError('`func` must be callable.')
-
-    if not np.iterable(args):
-        args = (args,)
-
-    # tolerances are floats, not arrays; OK to use NumPy
-    tols = np.asarray([xatol if xatol is not None else 1,
-                       xrtol if xrtol is not None else 1,
-                       fatol if fatol is not None else 1,
-                       frtol if frtol is not None else 1])
-    if (not np.issubdtype(tols.dtype, np.number) or np.any(tols < 0)
-            or np.any(np.isnan(tols)) or tols.shape != (4,)):
-        raise ValueError('Tolerances must be non-negative scalars.')
-
-    if maxiter is not None:
-        maxiter_int = int(maxiter)
-        if maxiter != maxiter_int or maxiter < 0:
-            raise ValueError('`maxiter` must be a non-negative integer.')
-
-    if callback is not None and not callable(callback):
-        raise ValueError('`callback` must be callable.')
-
-    return func, args, xatol, xrtol, fatol, frtol, maxiter, callback
-
-
-def _chandrupatla_minimize(func, x1, x2, x3, *, args=(), xatol=None,
-                           xrtol=None, fatol=None, frtol=None, maxiter=100,
-                           callback=None):
-    """Find the minimizer of an elementwise function.
-
-    For each element of the output of `func`, `_chandrupatla_minimize` seeks
-    the scalar minimizer that minimizes the element. This function allows for
-    `x1`, `x2`, `x3`, and the elements of `args` to be arrays of any
-    broadcastable shapes.
-
-    Parameters
-    ----------
-    func : callable
-        The function whose minimizer is desired. The signature must be::
-
-            func(x: ndarray, *args) -> ndarray
-
-         where each element of ``x`` is a finite real and ``args`` is a tuple,
-         which may contain an arbitrary number of arrays that are broadcastable
-         with `x`. ``func`` must be an elementwise function: each element
-         ``func(x)[i]`` must equal ``func(x[i])`` for all indices ``i``.
-         `_chandrupatla` seeks an array ``x`` such that ``func(x)`` is an array
-         of minima.
-    x1, x2, x3 : array_like
-        The abscissae of a standard scalar minimization bracket. A bracket is
-        valid if ``x1 < x2 < x3`` and ``func(x1) > func(x2) <= func(x3)``.
-        Must be broadcastable with one another and `args`.
-    args : tuple, optional
-        Additional positional arguments to be passed to `func`.  Must be arrays
-        broadcastable with `x1`, `x2`, and `x3`. If the callable to be
-        differentiated requires arguments that are not broadcastable with `x`,
-        wrap that callable with `func` such that `func` accepts only `x` and
-        broadcastable arrays.
-    xatol, xrtol, fatol, frtol : float, optional
-        Absolute and relative tolerances on the minimizer and function value.
-        See Notes for details.
-    maxiter : int, optional
-        The maximum number of iterations of the algorithm to perform.
-    callback : callable, optional
-        An optional user-supplied function to be called before the first
-        iteration and after each iteration.
-        Called as ``callback(res)``, where ``res`` is a ``_RichResult``
-        similar to that returned by `_chandrupatla_minimize` (but containing
-        the current iterate's values of all variables). If `callback` raises a
-        ``StopIteration``, the algorithm will terminate immediately and
-        `_chandrupatla_minimize` will return a result.
-
-    Returns
-    -------
-    res : _RichResult
-        An instance of `scipy._lib._util._RichResult` with the following
-        attributes. (The descriptions are written as though the values will be
-        scalars; however, if `func` returns an array, the outputs will be
-        arrays of the same shape.)
-
-        success : bool
-            ``True`` when the algorithm terminated successfully (status ``0``).
-        status : int
-            An integer representing the exit status of the algorithm.
-            ``0`` : The algorithm converged to the specified tolerances.
-            ``-1`` : The algorithm encountered an invalid bracket.
-            ``-2`` : The maximum number of iterations was reached.
-            ``-3`` : A non-finite value was encountered.
-            ``-4`` : Iteration was terminated by `callback`.
-            ``1`` : The algorithm is proceeding normally (in `callback` only).
-        x : float
-            The minimizer of the function, if the algorithm terminated
-            successfully.
-        fun : float
-            The value of `func` evaluated at `x`.
-        nfev : int
-            The number of points at which `func` was evaluated.
-        nit : int
-            The number of iterations of the algorithm that were performed.
-        xl, xm, xr : float
-            The final three-point bracket.
-        fl, fm, fr : float
-            The function value at the bracket points.
-
-    Notes
-    -----
-    Implemented based on Chandrupatla's original paper [1]_.
-
-    If ``x1 < x2 < x3`` are the points of the bracket and ``f1 > f2 <= f3``
-    are the values of ``func`` at those points, then the algorithm is
-    considered to have converged when ``x3 - x1 <= abs(x2)*xrtol + xatol``
-    or ``(f1 - 2*f2 + f3)/2 <= abs(f2)*frtol + fatol``. Note that first of
-    these differs from the termination conditions described in [1]_. The
-    default values of `xrtol` is the square root of the precision of the
-    appropriate dtype, and ``xatol = fatol = frtol`` is the smallest normal
-    number of the appropriate dtype.
-
-    References
-    ----------
-    .. [1] Chandrupatla, Tirupathi R. (1998).
-        "An efficient quadratic fit-sectioning algorithm for minimization
-        without derivatives".
-        Computer Methods in Applied Mechanics and Engineering, 152 (1-2),
-        211-217. https://doi.org/10.1016/S0045-7825(97)00190-4
-
-    See Also
-    --------
-    golden, brent, bounded
-
-    Examples
-    --------
-    >>> from scipy.optimize._chandrupatla import _chandrupatla_minimize
-    >>> def f(x, args=1):
-    ...     return (x - args)**2
-    >>> res = _chandrupatla_minimize(f, -5, 0, 5)
-    >>> res.x
-    1.0
-    >>> c = [1, 1.5, 2]
-    >>> res = _chandrupatla_minimize(f, -5, 0, 5, args=(c,))
-    >>> res.x
-    array([1. , 1.5, 2. ])
-    """
-    res = _chandrupatla_iv(func, args, xatol, xrtol,
-                           fatol, frtol, maxiter, callback)
-    func, args, xatol, xrtol, fatol, frtol, maxiter, callback = res
-
-    # Initialization
-    xs = (x1, x2, x3)
-    temp = eim._initialize(func, xs, args)
-    func, xs, fs, args, shape, dtype, xp = temp  # line split for PEP8
-    x1, x2, x3 = xs
-    f1, f2, f3 = fs
-    phi = dtype.type(0.5 + 0.5*5**0.5)  # golden ratio
-    status = np.full_like(x1, eim._EINPROGRESS, dtype=int)  # in progress
-    nit, nfev = 0, 3  # three function evaluations performed above
-    fatol = np.finfo(dtype).tiny if fatol is None else fatol
-    frtol = np.finfo(dtype).tiny if frtol is None else frtol
-    xatol = np.finfo(dtype).tiny if xatol is None else xatol
-    xrtol = np.sqrt(np.finfo(dtype).eps) if xrtol is None else xrtol
-
-    # Ensure that x1 < x2 < x3 initially.
-    xs, fs = np.vstack((x1, x2, x3)), np.vstack((f1, f2, f3))
-    i = np.argsort(xs, axis=0)
-    x1, x2, x3 = np.take_along_axis(xs, i, axis=0)
-    f1, f2, f3 = np.take_along_axis(fs, i, axis=0)
-    q0 = x3.copy()  # "At the start, q0 is set at x3..." ([1] after (7))
-
-    work = _RichResult(x1=x1, f1=f1, x2=x2, f2=f2, x3=x3, f3=f3, phi=phi,
-                       xatol=xatol, xrtol=xrtol, fatol=fatol, frtol=frtol,
-                       nit=nit, nfev=nfev, status=status, q0=q0, args=args)
-    res_work_pairs = [('status', 'status'),
-                      ('x', 'x2'), ('fun', 'f2'),
-                      ('nit', 'nit'), ('nfev', 'nfev'),
-                      ('xl', 'x1'), ('xm', 'x2'), ('xr', 'x3'),
-                      ('fl', 'f1'), ('fm', 'f2'), ('fr', 'f3')]
-
-    def pre_func_eval(work):
-        # `_check_termination` is called first -> `x3 - x2 > x2 - x1`
-        # But let's calculate a few terms that we'll reuse
-        x21 = work.x2 - work.x1
-        x32 = work.x3 - work.x2
-
-        # [1] Section 3. "The quadratic minimum point Q1 is calculated using
-        # the relations developed in the previous section." [1] Section 2 (5/6)
-        A = x21 * (work.f3 - work.f2)
-        B = x32 * (work.f1 - work.f2)
-        C = A / (A + B)
-        # q1 = C * (work.x1 + work.x2) / 2 + (1 - C) * (work.x2 + work.x3) / 2
-        q1 = 0.5 * (C*(work.x1 - work.x3) + work.x2 + work.x3)  # much faster
-        # this is an array, so multiplying by 0.5 does not change dtype
-
-        # "If Q1 and Q0 are sufficiently close... Q1 is accepted if it is
-        # sufficiently away from the inside point x2"
-        i = abs(q1 - work.q0) < 0.5 * abs(x21)  # [1] (7)
-        xi = q1[i]
-        # Later, after (9), "If the point Q1 is in a +/- xtol neighborhood of
-        # x2, the new point is chosen in the larger interval at a distance
-        # tol away from x2."
-        # See also QBASIC code after "Accept Ql adjust if close to X2".
-        j = abs(q1[i] - work.x2[i]) <= work.xtol[i]
-        xi[j] = work.x2[i][j] + np.sign(x32[i][j]) * work.xtol[i][j]
-
-        # "If condition (7) is not satisfied, golden sectioning of the larger
-        # interval is carried out to introduce the new point."
-        # (For simplicity, we go ahead and calculate it for all points, but we
-        # change the elements for which the condition was satisfied.)
-        x = work.x2 + (2 - work.phi) * x32
-        x[i] = xi
-
-        # "We define Q0 as the value of Q1 at the previous iteration."
-        work.q0 = q1
-        return x
-
-    def post_func_eval(x, f, work):
-        # Standard logic for updating a three-point bracket based on a new
-        # point. In QBASIC code, see "IF SGN(X-X2) = SGN(X3-X2) THEN...".
-        # There is an awful lot of data copying going on here; this would
-        # probably benefit from code optimization or implementation in Pythran.
-        i = np.sign(x - work.x2) == np.sign(work.x3 - work.x2)
-        xi, x1i, x2i, x3i = x[i], work.x1[i], work.x2[i], work.x3[i],
-        fi, f1i, f2i, f3i = f[i], work.f1[i], work.f2[i], work.f3[i]
-        j = fi > f2i
-        x3i[j], f3i[j] = xi[j], fi[j]
-        j = ~j
-        x1i[j], f1i[j], x2i[j], f2i[j] = x2i[j], f2i[j], xi[j], fi[j]
-
-        ni = ~i
-        xni, x1ni, x2ni, x3ni = x[ni], work.x1[ni], work.x2[ni], work.x3[ni],
-        fni, f1ni, f2ni, f3ni = f[ni], work.f1[ni], work.f2[ni], work.f3[ni]
-        j = fni > f2ni
-        x1ni[j], f1ni[j] = xni[j], fni[j]
-        j = ~j
-        x3ni[j], f3ni[j], x2ni[j], f2ni[j] = x2ni[j], f2ni[j], xni[j], fni[j]
-
-        work.x1[i], work.x2[i], work.x3[i] = x1i, x2i, x3i
-        work.f1[i], work.f2[i], work.f3[i] = f1i, f2i, f3i
-        work.x1[ni], work.x2[ni], work.x3[ni] = x1ni, x2ni, x3ni,
-        work.f1[ni], work.f2[ni], work.f3[ni] = f1ni, f2ni, f3ni
-
-    def check_termination(work):
-        # Check for all terminal conditions and record statuses.
-        stop = np.zeros_like(work.x1, dtype=bool)  # termination condition met
-
-        # Bracket is invalid; stop and don't return minimizer/minimum
-        i = ((work.f2 > work.f1) | (work.f2 > work.f3))
-        work.x2[i], work.f2[i] = np.nan, np.nan
-        stop[i], work.status[i] = True, eim._ESIGNERR
-
-        # Non-finite values; stop and don't return minimizer/minimum
-        finite = np.isfinite(work.x1+work.x2+work.x3+work.f1+work.f2+work.f3)
-        i = ~(finite | stop)
-        work.x2[i], work.f2[i] = np.nan, np.nan
-        stop[i], work.status[i] = True, eim._EVALUEERR
-
-        # [1] Section 3 "Points 1 and 3 are interchanged if necessary to make
-        # the (x2, x3) the larger interval."
-        # Note: I had used np.choose; this is much faster. This would be a good
-        # place to save e.g. `work.x3 - work.x2` for reuse, but I tried and
-        # didn't notice a speed boost, so let's keep it simple.
-        i = abs(work.x3 - work.x2) < abs(work.x2 - work.x1)
-        temp = work.x1[i]
-        work.x1[i] = work.x3[i]
-        work.x3[i] = temp
-        temp = work.f1[i]
-        work.f1[i] = work.f3[i]
-        work.f3[i] = temp
-
-        # [1] Section 3 (bottom of page 212)
-        # "We set a tolerance value xtol..."
-        work.xtol = abs(work.x2) * work.xrtol + work.xatol  # [1] (8)
-        # "The convergence based on interval is achieved when..."
-        # Note: Equality allowed in case of `xtol=0`
-        i = abs(work.x3 - work.x2) <= 2 * work.xtol  # [1] (9)
-
-        # "We define ftol using..."
-        ftol = abs(work.f2) * work.frtol + work.fatol  # [1] (10)
-        # "The convergence based on function values is achieved when..."
-        # Note 1: modify in place to incorporate tolerance on function value.
-        # Note 2: factor of 2 is not in the text; see QBASIC start of DO loop
-        i |= (work.f1 - 2 * work.f2 + work.f3) <= 2*ftol  # [1] (11)
-        i &= ~stop
-        stop[i], work.status[i] = True, eim._ECONVERGED
-
-        return stop
-
-    def post_termination_check(work):
-        pass
-
-    def customize_result(res, shape):
-        xl, xr, fl, fr = res['xl'], res['xr'], res['fl'], res['fr']
-        i = res['xl'] < res['xr']
-        res['xl'] = np.choose(i, (xr, xl))
-        res['xr'] = np.choose(i, (xl, xr))
-        res['fl'] = np.choose(i, (fr, fl))
-        res['fr'] = np.choose(i, (fl, fr))
-        return shape
-
-    return eim._loop(work, callback, shape, maxiter, func, args, dtype,
-                     pre_func_eval, post_func_eval, check_termination,
-                     post_termination_check, customize_result, res_work_pairs,
-                     xp=xp)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_cobyla_py.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_cobyla_py.py
deleted file mode 100644
index 9007fe38a06a91fe456e64d74f4c0e37800f0607..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_cobyla_py.py
+++ /dev/null
@@ -1,316 +0,0 @@
-"""
-Interface to Constrained Optimization By Linear Approximation
-
-Functions
----------
-.. autosummary::
-   :toctree: generated/
-
-    fmin_cobyla
-
-"""
-
-import functools
-from threading import RLock
-
-import numpy as np
-from scipy.optimize import _cobyla as cobyla
-from ._optimize import (OptimizeResult, _check_unknown_options,
-    _prepare_scalar_function)
-try:
-    from itertools import izip
-except ImportError:
-    izip = zip
-
-__all__ = ['fmin_cobyla']
-
-# Workaround as _cobyla.minimize is not threadsafe
-# due to an unknown f2py bug and can segfault,
-# see gh-9658.
-_module_lock = RLock()
-def synchronized(func):
-    @functools.wraps(func)
-    def wrapper(*args, **kwargs):
-        with _module_lock:
-            return func(*args, **kwargs)
-    return wrapper
-
-@synchronized
-def fmin_cobyla(func, x0, cons, args=(), consargs=None, rhobeg=1.0,
-                rhoend=1e-4, maxfun=1000, disp=None, catol=2e-4,
-                *, callback=None):
-    """
-    Minimize a function using the Constrained Optimization By Linear
-    Approximation (COBYLA) method. This method wraps a FORTRAN
-    implementation of the algorithm.
-
-    Parameters
-    ----------
-    func : callable
-        Function to minimize. In the form func(x, \\*args).
-    x0 : ndarray
-        Initial guess.
-    cons : sequence
-        Constraint functions; must all be ``>=0`` (a single function
-        if only 1 constraint). Each function takes the parameters `x`
-        as its first argument, and it can return either a single number or
-        an array or list of numbers.
-    args : tuple, optional
-        Extra arguments to pass to function.
-    consargs : tuple, optional
-        Extra arguments to pass to constraint functions (default of None means
-        use same extra arguments as those passed to func).
-        Use ``()`` for no extra arguments.
-    rhobeg : float, optional
-        Reasonable initial changes to the variables.
-    rhoend : float, optional
-        Final accuracy in the optimization (not precisely guaranteed). This
-        is a lower bound on the size of the trust region.
-    disp : {0, 1, 2, 3}, optional
-        Controls the frequency of output; 0 implies no output.
-    maxfun : int, optional
-        Maximum number of function evaluations.
-    catol : float, optional
-        Absolute tolerance for constraint violations.
-    callback : callable, optional
-        Called after each iteration, as ``callback(x)``, where ``x`` is the
-        current parameter vector.
-
-    Returns
-    -------
-    x : ndarray
-        The argument that minimises `f`.
-
-    See also
-    --------
-    minimize: Interface to minimization algorithms for multivariate
-        functions. See the 'COBYLA' `method` in particular.
-
-    Notes
-    -----
-    This algorithm is based on linear approximations to the objective
-    function and each constraint. We briefly describe the algorithm.
-
-    Suppose the function is being minimized over k variables. At the
-    jth iteration the algorithm has k+1 points v_1, ..., v_(k+1),
-    an approximate solution x_j, and a radius RHO_j.
-    (i.e., linear plus a constant) approximations to the objective
-    function and constraint functions such that their function values
-    agree with the linear approximation on the k+1 points v_1,.., v_(k+1).
-    This gives a linear program to solve (where the linear approximations
-    of the constraint functions are constrained to be non-negative).
-
-    However, the linear approximations are likely only good
-    approximations near the current simplex, so the linear program is
-    given the further requirement that the solution, which
-    will become x_(j+1), must be within RHO_j from x_j. RHO_j only
-    decreases, never increases. The initial RHO_j is rhobeg and the
-    final RHO_j is rhoend. In this way COBYLA's iterations behave
-    like a trust region algorithm.
-
-    Additionally, the linear program may be inconsistent, or the
-    approximation may give poor improvement. For details about
-    how these issues are resolved, as well as how the points v_i are
-    updated, refer to the source code or the references below.
-
-
-    References
-    ----------
-    Powell M.J.D. (1994), "A direct search optimization method that models
-    the objective and constraint functions by linear interpolation.", in
-    Advances in Optimization and Numerical Analysis, eds. S. Gomez and
-    J-P Hennart, Kluwer Academic (Dordrecht), pp. 51-67
-
-    Powell M.J.D. (1998), "Direct search algorithms for optimization
-    calculations", Acta Numerica 7, 287-336
-
-    Powell M.J.D. (2007), "A view of algorithms for optimization without
-    derivatives", Cambridge University Technical Report DAMTP 2007/NA03
-
-
-    Examples
-    --------
-    Minimize the objective function f(x,y) = x*y subject
-    to the constraints x**2 + y**2 < 1 and y > 0::
-
-        >>> def objective(x):
-        ...     return x[0]*x[1]
-        ...
-        >>> def constr1(x):
-        ...     return 1 - (x[0]**2 + x[1]**2)
-        ...
-        >>> def constr2(x):
-        ...     return x[1]
-        ...
-        >>> from scipy.optimize import fmin_cobyla
-        >>> fmin_cobyla(objective, [0.0, 0.1], [constr1, constr2], rhoend=1e-7)
-        array([-0.70710685,  0.70710671])
-
-    The exact solution is (-sqrt(2)/2, sqrt(2)/2).
-
-
-
-    """
-    err = "cons must be a sequence of callable functions or a single"\
-          " callable function."
-    try:
-        len(cons)
-    except TypeError as e:
-        if callable(cons):
-            cons = [cons]
-        else:
-            raise TypeError(err) from e
-    else:
-        for thisfunc in cons:
-            if not callable(thisfunc):
-                raise TypeError(err)
-
-    if consargs is None:
-        consargs = args
-
-    # build constraints
-    con = tuple({'type': 'ineq', 'fun': c, 'args': consargs} for c in cons)
-
-    # options
-    opts = {'rhobeg': rhobeg,
-            'tol': rhoend,
-            'disp': disp,
-            'maxiter': maxfun,
-            'catol': catol,
-            'callback': callback}
-
-    sol = _minimize_cobyla(func, x0, args, constraints=con,
-                           **opts)
-    if disp and not sol['success']:
-        print(f"COBYLA failed to find a solution: {sol.message}")
-    return sol['x']
-
-
-@synchronized
-def _minimize_cobyla(fun, x0, args=(), constraints=(),
-                     rhobeg=1.0, tol=1e-4, maxiter=1000,
-                     disp=False, catol=2e-4, callback=None, bounds=None,
-                     **unknown_options):
-    """
-    Minimize a scalar function of one or more variables using the
-    Constrained Optimization BY Linear Approximation (COBYLA) algorithm.
-
-    Options
-    -------
-    rhobeg : float
-        Reasonable initial changes to the variables.
-    tol : float
-        Final accuracy in the optimization (not precisely guaranteed).
-        This is a lower bound on the size of the trust region.
-    disp : bool
-        Set to True to print convergence messages. If False,
-        `verbosity` is ignored as set to 0.
-    maxiter : int
-        Maximum number of function evaluations.
-    catol : float
-        Tolerance (absolute) for constraint violations
-
-    """
-    _check_unknown_options(unknown_options)
-    maxfun = maxiter
-    rhoend = tol
-    iprint = int(bool(disp))
-
-    # check constraints
-    if isinstance(constraints, dict):
-        constraints = (constraints, )
-
-    if bounds:
-        i_lb = np.isfinite(bounds.lb)
-        if np.any(i_lb):
-            def lb_constraint(x, *args, **kwargs):
-                return x[i_lb] - bounds.lb[i_lb]
-
-            constraints.append({'type': 'ineq', 'fun': lb_constraint})
-
-        i_ub = np.isfinite(bounds.ub)
-        if np.any(i_ub):
-            def ub_constraint(x):
-                return bounds.ub[i_ub] - x[i_ub]
-
-            constraints.append({'type': 'ineq', 'fun': ub_constraint})
-
-    for ic, con in enumerate(constraints):
-        # check type
-        try:
-            ctype = con['type'].lower()
-        except KeyError as e:
-            raise KeyError('Constraint %d has no type defined.' % ic) from e
-        except TypeError as e:
-            raise TypeError('Constraints must be defined using a '
-                            'dictionary.') from e
-        except AttributeError as e:
-            raise TypeError("Constraint's type must be a string.") from e
-        else:
-            if ctype != 'ineq':
-                raise ValueError("Constraints of type '%s' not handled by "
-                                 "COBYLA." % con['type'])
-
-        # check function
-        if 'fun' not in con:
-            raise KeyError('Constraint %d has no function defined.' % ic)
-
-        # check extra arguments
-        if 'args' not in con:
-            con['args'] = ()
-
-    # m is the total number of constraint values
-    # it takes into account that some constraints may be vector-valued
-    cons_lengths = []
-    for c in constraints:
-        f = c['fun'](x0, *c['args'])
-        try:
-            cons_length = len(f)
-        except TypeError:
-            cons_length = 1
-        cons_lengths.append(cons_length)
-    m = sum(cons_lengths)
-
-    # create the ScalarFunction, cobyla doesn't require derivative function
-    def _jac(x, *args):
-        return None
-
-    sf = _prepare_scalar_function(fun, x0, args=args, jac=_jac)
-
-    def calcfc(x, con):
-        f = sf.fun(x)
-        i = 0
-        for size, c in izip(cons_lengths, constraints):
-            con[i: i + size] = c['fun'](x, *c['args'])
-            i += size
-        return f
-
-    def wrapped_callback(x):
-        if callback is not None:
-            callback(np.copy(x))
-
-    info = np.zeros(4, np.float64)
-    xopt, info = cobyla.minimize(calcfc, m=m, x=np.copy(x0), rhobeg=rhobeg,
-                                  rhoend=rhoend, iprint=iprint, maxfun=maxfun,
-                                  dinfo=info, callback=wrapped_callback)
-
-    if info[3] > catol:
-        # Check constraint violation
-        info[0] = 4
-
-    return OptimizeResult(x=xopt,
-                          status=int(info[0]),
-                          success=info[0] == 1,
-                          message={1: 'Optimization terminated successfully.',
-                                   2: 'Maximum number of function evaluations '
-                                      'has been exceeded.',
-                                   3: 'Rounding errors are becoming damaging '
-                                      'in COBYLA subroutine.',
-                                   4: 'Did not converge to a solution '
-                                      'satisfying the constraints. See '
-                                      '`maxcv` for magnitude of violation.',
-                                   5: 'NaN result encountered.'
-                                   }.get(info[0], 'Unknown exit status.'),
-                          nfev=int(info[1]),
-                          fun=info[2],
-                          maxcv=info[3])
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_cobyqa_py.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_cobyqa_py.py
deleted file mode 100644
index 4928fca9c162fe1117451e3325e6a870b5933a6f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_cobyqa_py.py
+++ /dev/null
@@ -1,62 +0,0 @@
-import numpy as np
-
-from ._optimize import _check_unknown_options
-
-
-def _minimize_cobyqa(fun, x0, args=(), bounds=None, constraints=(),
-                     callback=None, disp=False, maxfev=None, maxiter=None,
-                     f_target=-np.inf, feasibility_tol=1e-8,
-                     initial_tr_radius=1.0, final_tr_radius=1e-6, scale=False,
-                     **unknown_options):
-    """
-    Minimize a scalar function of one or more variables using the
-    Constrained Optimization BY Quadratic Approximations (COBYQA) algorithm [1]_.
-
-    .. versionadded:: 1.14.0
-
-    Options
-    -------
-    disp : bool
-        Set to True to print information about the optimization procedure.
-    maxfev : int
-        Maximum number of function evaluations.
-    maxiter : int
-        Maximum number of iterations.
-    f_target : float
-        Target value for the objective function. The optimization procedure is
-        terminated when the objective function value of a feasible point (see
-        `feasibility_tol` below) is less than or equal to this target.
-    feasibility_tol : float
-        Absolute tolerance for the constraint violation.
-    initial_tr_radius : float
-        Initial trust-region radius. Typically, this value should be in the
-        order of one tenth of the greatest expected change to the variables.
-    final_tr_radius : float
-        Final trust-region radius. It should indicate the accuracy required in
-        the final values of the variables. If provided, this option overrides
-        the value of `tol` in the `minimize` function.
-    scale : bool
-        Set to True to scale the variables according to the bounds. If True and
-        if all the lower and upper bounds are finite, the variables are scaled
-        to be within the range :math:`[-1, 1]`. If any of the lower or upper
-        bounds is infinite, the variables are not scaled.
-
-    References
-    ----------
-    .. [1] COBYQA
-           https://www.cobyqa.com/stable/
-    """
-    from .._lib.cobyqa import minimize  # import here to avoid circular imports
-
-    _check_unknown_options(unknown_options)
-    options = {
-        'disp': bool(disp),
-        'maxfev': int(maxfev) if maxfev is not None else 500 * len(x0),
-        'maxiter': int(maxiter) if maxiter is not None else 1000 * len(x0),
-        'target': float(f_target),
-        'feasibility_tol': float(feasibility_tol),
-        'radius_init': float(initial_tr_radius),
-        'radius_final': float(final_tr_radius),
-        'scale': bool(scale),
-    }
-    return minimize(fun, x0, args, bounds, constraints, callback, options)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_constraints.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_constraints.py
deleted file mode 100644
index 1c7ff5e170b2eb518bc6be0c667ac9f89a073dcf..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_constraints.py
+++ /dev/null
@@ -1,590 +0,0 @@
-"""Constraints definition for minimize."""
-import numpy as np
-from ._hessian_update_strategy import BFGS
-from ._differentiable_functions import (
-    VectorFunction, LinearVectorFunction, IdentityVectorFunction)
-from ._optimize import OptimizeWarning
-from warnings import warn, catch_warnings, simplefilter, filterwarnings
-from scipy.sparse import issparse
-
-
-def _arr_to_scalar(x):
-    # If x is a numpy array, return x.item().  This will
-    # fail if the array has more than one element.
-    return x.item() if isinstance(x, np.ndarray) else x
-
-
-class NonlinearConstraint:
-    """Nonlinear constraint on the variables.
-
-    The constraint has the general inequality form::
-
-        lb <= fun(x) <= ub
-
-    Here the vector of independent variables x is passed as ndarray of shape
-    (n,) and ``fun`` returns a vector with m components.
-
-    It is possible to use equal bounds to represent an equality constraint or
-    infinite bounds to represent a one-sided constraint.
-
-    Parameters
-    ----------
-    fun : callable
-        The function defining the constraint.
-        The signature is ``fun(x) -> array_like, shape (m,)``.
-    lb, ub : array_like
-        Lower and upper bounds on the constraint. Each array must have the
-        shape (m,) or be a scalar, in the latter case a bound will be the same
-        for all components of the constraint. Use ``np.inf`` with an
-        appropriate sign to specify a one-sided constraint.
-        Set components of `lb` and `ub` equal to represent an equality
-        constraint. Note that you can mix constraints of different types:
-        interval, one-sided or equality, by setting different components of
-        `lb` and `ub` as  necessary.
-    jac : {callable,  '2-point', '3-point', 'cs'}, optional
-        Method of computing the Jacobian matrix (an m-by-n matrix,
-        where element (i, j) is the partial derivative of f[i] with
-        respect to x[j]).  The keywords {'2-point', '3-point',
-        'cs'} select a finite difference scheme for the numerical estimation.
-        A callable must have the following signature:
-        ``jac(x) -> {ndarray, sparse matrix}, shape (m, n)``.
-        Default is '2-point'.
-    hess : {callable, '2-point', '3-point', 'cs', HessianUpdateStrategy, None}, optional
-        Method for computing the Hessian matrix. The keywords
-        {'2-point', '3-point', 'cs'} select a finite difference scheme for
-        numerical  estimation.  Alternatively, objects implementing
-        `HessianUpdateStrategy` interface can be used to approximate the
-        Hessian. Currently available implementations are:
-
-            - `BFGS` (default option)
-            - `SR1`
-
-        A callable must return the Hessian matrix of ``dot(fun, v)`` and
-        must have the following signature:
-        ``hess(x, v) -> {LinearOperator, sparse matrix, array_like}, shape (n, n)``.
-        Here ``v`` is ndarray with shape (m,) containing Lagrange multipliers.
-    keep_feasible : array_like of bool, optional
-        Whether to keep the constraint components feasible throughout
-        iterations. A single value set this property for all components.
-        Default is False. Has no effect for equality constraints.
-    finite_diff_rel_step: None or array_like, optional
-        Relative step size for the finite difference approximation. Default is
-        None, which will select a reasonable value automatically depending
-        on a finite difference scheme.
-    finite_diff_jac_sparsity: {None, array_like, sparse matrix}, optional
-        Defines the sparsity structure of the Jacobian matrix for finite
-        difference estimation, its shape must be (m, n). If the Jacobian has
-        only few non-zero elements in *each* row, providing the sparsity
-        structure will greatly speed up the computations. A zero entry means
-        that a corresponding element in the Jacobian is identically zero.
-        If provided, forces the use of 'lsmr' trust-region solver.
-        If None (default) then dense differencing will be used.
-
-    Notes
-    -----
-    Finite difference schemes {'2-point', '3-point', 'cs'} may be used for
-    approximating either the Jacobian or the Hessian. We, however, do not allow
-    its use for approximating both simultaneously. Hence whenever the Jacobian
-    is estimated via finite-differences, we require the Hessian to be estimated
-    using one of the quasi-Newton strategies.
-
-    The scheme 'cs' is potentially the most accurate, but requires the function
-    to correctly handles complex inputs and be analytically continuable to the
-    complex plane. The scheme '3-point' is more accurate than '2-point' but
-    requires twice as many operations.
-
-    Examples
-    --------
-    Constrain ``x[0] < sin(x[1]) + 1.9``
-
-    >>> from scipy.optimize import NonlinearConstraint
-    >>> import numpy as np
-    >>> con = lambda x: x[0] - np.sin(x[1])
-    >>> nlc = NonlinearConstraint(con, -np.inf, 1.9)
-
-    """
-    def __init__(self, fun, lb, ub, jac='2-point', hess=BFGS(),
-                 keep_feasible=False, finite_diff_rel_step=None,
-                 finite_diff_jac_sparsity=None):
-        self.fun = fun
-        self.lb = lb
-        self.ub = ub
-        self.finite_diff_rel_step = finite_diff_rel_step
-        self.finite_diff_jac_sparsity = finite_diff_jac_sparsity
-        self.jac = jac
-        self.hess = hess
-        self.keep_feasible = keep_feasible
-
-
-class LinearConstraint:
-    """Linear constraint on the variables.
-
-    The constraint has the general inequality form::
-
-        lb <= A.dot(x) <= ub
-
-    Here the vector of independent variables x is passed as ndarray of shape
-    (n,) and the matrix A has shape (m, n).
-
-    It is possible to use equal bounds to represent an equality constraint or
-    infinite bounds to represent a one-sided constraint.
-
-    Parameters
-    ----------
-    A : {array_like, sparse matrix}, shape (m, n)
-        Matrix defining the constraint.
-    lb, ub : dense array_like, optional
-        Lower and upper limits on the constraint. Each array must have the
-        shape (m,) or be a scalar, in the latter case a bound will be the same
-        for all components of the constraint. Use ``np.inf`` with an
-        appropriate sign to specify a one-sided constraint.
-        Set components of `lb` and `ub` equal to represent an equality
-        constraint. Note that you can mix constraints of different types:
-        interval, one-sided or equality, by setting different components of
-        `lb` and `ub` as  necessary. Defaults to ``lb = -np.inf``
-        and ``ub = np.inf`` (no limits).
-    keep_feasible : dense array_like of bool, optional
-        Whether to keep the constraint components feasible throughout
-        iterations. A single value set this property for all components.
-        Default is False. Has no effect for equality constraints.
-    """
-    def _input_validation(self):
-        if self.A.ndim != 2:
-            message = "`A` must have exactly two dimensions."
-            raise ValueError(message)
-
-        try:
-            shape = self.A.shape[0:1]
-            self.lb = np.broadcast_to(self.lb, shape)
-            self.ub = np.broadcast_to(self.ub, shape)
-            self.keep_feasible = np.broadcast_to(self.keep_feasible, shape)
-        except ValueError:
-            message = ("`lb`, `ub`, and `keep_feasible` must be broadcastable "
-                       "to shape `A.shape[0:1]`")
-            raise ValueError(message)
-
-    def __init__(self, A, lb=-np.inf, ub=np.inf, keep_feasible=False):
-        if not issparse(A):
-            # In some cases, if the constraint is not valid, this emits a
-            # VisibleDeprecationWarning about ragged nested sequences
-            # before eventually causing an error. `scipy.optimize.milp` would
-            # prefer that this just error out immediately so it can handle it
-            # rather than concerning the user.
-            with catch_warnings():
-                simplefilter("error")
-                self.A = np.atleast_2d(A).astype(np.float64)
-        else:
-            self.A = A
-        if issparse(lb) or issparse(ub):
-            raise ValueError("Constraint limits must be dense arrays.")
-        self.lb = np.atleast_1d(lb).astype(np.float64)
-        self.ub = np.atleast_1d(ub).astype(np.float64)
-
-        if issparse(keep_feasible):
-            raise ValueError("`keep_feasible` must be a dense array.")
-        self.keep_feasible = np.atleast_1d(keep_feasible).astype(bool)
-        self._input_validation()
-
-    def residual(self, x):
-        """
-        Calculate the residual between the constraint function and the limits
-
-        For a linear constraint of the form::
-
-            lb <= A@x <= ub
-
-        the lower and upper residuals between ``A@x`` and the limits are values
-        ``sl`` and ``sb`` such that::
-
-            lb + sl == A@x == ub - sb
-
-        When all elements of ``sl`` and ``sb`` are positive, all elements of
-        the constraint are satisfied; a negative element in ``sl`` or ``sb``
-        indicates that the corresponding element of the constraint is not
-        satisfied.
-
-        Parameters
-        ----------
-        x: array_like
-            Vector of independent variables
-
-        Returns
-        -------
-        sl, sb : array-like
-            The lower and upper residuals
-        """
-        return self.A@x - self.lb, self.ub - self.A@x
-
-
-class Bounds:
-    """Bounds constraint on the variables.
-
-    The constraint has the general inequality form::
-
-        lb <= x <= ub
-
-    It is possible to use equal bounds to represent an equality constraint or
-    infinite bounds to represent a one-sided constraint.
-
-    Parameters
-    ----------
-    lb, ub : dense array_like, optional
-        Lower and upper bounds on independent variables. `lb`, `ub`, and
-        `keep_feasible` must be the same shape or broadcastable.
-        Set components of `lb` and `ub` equal
-        to fix a variable. Use ``np.inf`` with an appropriate sign to disable
-        bounds on all or some variables. Note that you can mix constraints of
-        different types: interval, one-sided or equality, by setting different
-        components of `lb` and `ub` as necessary. Defaults to ``lb = -np.inf``
-        and ``ub = np.inf`` (no bounds).
-    keep_feasible : dense array_like of bool, optional
-        Whether to keep the constraint components feasible throughout
-        iterations. Must be broadcastable with `lb` and `ub`.
-        Default is False. Has no effect for equality constraints.
-    """
-    def _input_validation(self):
-        try:
-            res = np.broadcast_arrays(self.lb, self.ub, self.keep_feasible)
-            self.lb, self.ub, self.keep_feasible = res
-        except ValueError:
-            message = "`lb`, `ub`, and `keep_feasible` must be broadcastable."
-            raise ValueError(message)
-
-    def __init__(self, lb=-np.inf, ub=np.inf, keep_feasible=False):
-        if issparse(lb) or issparse(ub):
-            raise ValueError("Lower and upper bounds must be dense arrays.")
-        self.lb = np.atleast_1d(lb)
-        self.ub = np.atleast_1d(ub)
-
-        if issparse(keep_feasible):
-            raise ValueError("`keep_feasible` must be a dense array.")
-        self.keep_feasible = np.atleast_1d(keep_feasible).astype(bool)
-        self._input_validation()
-
-    def __repr__(self):
-        start = f"{type(self).__name__}({self.lb!r}, {self.ub!r}"
-        if np.any(self.keep_feasible):
-            end = f", keep_feasible={self.keep_feasible!r})"
-        else:
-            end = ")"
-        return start + end
-
-    def residual(self, x):
-        """Calculate the residual (slack) between the input and the bounds
-
-        For a bound constraint of the form::
-
-            lb <= x <= ub
-
-        the lower and upper residuals between `x` and the bounds are values
-        ``sl`` and ``sb`` such that::
-
-            lb + sl == x == ub - sb
-
-        When all elements of ``sl`` and ``sb`` are positive, all elements of
-        ``x`` lie within the bounds; a negative element in ``sl`` or ``sb``
-        indicates that the corresponding element of ``x`` is out of bounds.
-
-        Parameters
-        ----------
-        x: array_like
-            Vector of independent variables
-
-        Returns
-        -------
-        sl, sb : array-like
-            The lower and upper residuals
-        """
-        return x - self.lb, self.ub - x
-
-
-class PreparedConstraint:
-    """Constraint prepared from a user defined constraint.
-
-    On creation it will check whether a constraint definition is valid and
-    the initial point is feasible. If created successfully, it will contain
-    the attributes listed below.
-
-    Parameters
-    ----------
-    constraint : {NonlinearConstraint, LinearConstraint`, Bounds}
-        Constraint to check and prepare.
-    x0 : array_like
-        Initial vector of independent variables.
-    sparse_jacobian : bool or None, optional
-        If bool, then the Jacobian of the constraint will be converted
-        to the corresponded format if necessary. If None (default), such
-        conversion is not made.
-    finite_diff_bounds : 2-tuple, optional
-        Lower and upper bounds on the independent variables for the finite
-        difference approximation, if applicable. Defaults to no bounds.
-
-    Attributes
-    ----------
-    fun : {VectorFunction, LinearVectorFunction, IdentityVectorFunction}
-        Function defining the constraint wrapped by one of the convenience
-        classes.
-    bounds : 2-tuple
-        Contains lower and upper bounds for the constraints --- lb and ub.
-        These are converted to ndarray and have a size equal to the number of
-        the constraints.
-    keep_feasible : ndarray
-         Array indicating which components must be kept feasible with a size
-         equal to the number of the constraints.
-    """
-    def __init__(self, constraint, x0, sparse_jacobian=None,
-                 finite_diff_bounds=(-np.inf, np.inf)):
-        if isinstance(constraint, NonlinearConstraint):
-            fun = VectorFunction(constraint.fun, x0,
-                                 constraint.jac, constraint.hess,
-                                 constraint.finite_diff_rel_step,
-                                 constraint.finite_diff_jac_sparsity,
-                                 finite_diff_bounds, sparse_jacobian)
-        elif isinstance(constraint, LinearConstraint):
-            fun = LinearVectorFunction(constraint.A, x0, sparse_jacobian)
-        elif isinstance(constraint, Bounds):
-            fun = IdentityVectorFunction(x0, sparse_jacobian)
-        else:
-            raise ValueError("`constraint` of an unknown type is passed.")
-
-        m = fun.m
-
-        lb = np.asarray(constraint.lb, dtype=float)
-        ub = np.asarray(constraint.ub, dtype=float)
-        keep_feasible = np.asarray(constraint.keep_feasible, dtype=bool)
-
-        lb = np.broadcast_to(lb, m)
-        ub = np.broadcast_to(ub, m)
-        keep_feasible = np.broadcast_to(keep_feasible, m)
-
-        if keep_feasible.shape != (m,):
-            raise ValueError("`keep_feasible` has a wrong shape.")
-
-        mask = keep_feasible & (lb != ub)
-        f0 = fun.f
-        if np.any(f0[mask] < lb[mask]) or np.any(f0[mask] > ub[mask]):
-            raise ValueError("`x0` is infeasible with respect to some "
-                             "inequality constraint with `keep_feasible` "
-                             "set to True.")
-
-        self.fun = fun
-        self.bounds = (lb, ub)
-        self.keep_feasible = keep_feasible
-
-    def violation(self, x):
-        """How much the constraint is exceeded by.
-
-        Parameters
-        ----------
-        x : array-like
-            Vector of independent variables
-
-        Returns
-        -------
-        excess : array-like
-            How much the constraint is exceeded by, for each of the
-            constraints specified by `PreparedConstraint.fun`.
-        """
-        with catch_warnings():
-            # Ignore the following warning, it's not important when
-            # figuring out total violation
-            # UserWarning: delta_grad == 0.0. Check if the approximated
-            # function is linear
-            filterwarnings("ignore", "delta_grad", UserWarning)
-            ev = self.fun.fun(np.asarray(x))
-
-        excess_lb = np.maximum(self.bounds[0] - ev, 0)
-        excess_ub = np.maximum(ev - self.bounds[1], 0)
-
-        return excess_lb + excess_ub
-
-
-def new_bounds_to_old(lb, ub, n):
-    """Convert the new bounds representation to the old one.
-
-    The new representation is a tuple (lb, ub) and the old one is a list
-    containing n tuples, ith containing lower and upper bound on a ith
-    variable.
-    If any of the entries in lb/ub are -np.inf/np.inf they are replaced by
-    None.
-    """
-    lb = np.broadcast_to(lb, n)
-    ub = np.broadcast_to(ub, n)
-
-    lb = [float(x) if x > -np.inf else None for x in lb]
-    ub = [float(x) if x < np.inf else None for x in ub]
-
-    return list(zip(lb, ub))
-
-
-def old_bound_to_new(bounds):
-    """Convert the old bounds representation to the new one.
-
-    The new representation is a tuple (lb, ub) and the old one is a list
-    containing n tuples, ith containing lower and upper bound on a ith
-    variable.
-    If any of the entries in lb/ub are None they are replaced by
-    -np.inf/np.inf.
-    """
-    lb, ub = zip(*bounds)
-
-    # Convert occurrences of None to -inf or inf, and replace occurrences of
-    # any numpy array x with x.item(). Then wrap the results in numpy arrays.
-    lb = np.array([float(_arr_to_scalar(x)) if x is not None else -np.inf
-                   for x in lb])
-    ub = np.array([float(_arr_to_scalar(x)) if x is not None else np.inf
-                   for x in ub])
-
-    return lb, ub
-
-
-def strict_bounds(lb, ub, keep_feasible, n_vars):
-    """Remove bounds which are not asked to be kept feasible."""
-    strict_lb = np.resize(lb, n_vars).astype(float)
-    strict_ub = np.resize(ub, n_vars).astype(float)
-    keep_feasible = np.resize(keep_feasible, n_vars)
-    strict_lb[~keep_feasible] = -np.inf
-    strict_ub[~keep_feasible] = np.inf
-    return strict_lb, strict_ub
-
-
-def new_constraint_to_old(con, x0):
-    """
-    Converts new-style constraint objects to old-style constraint dictionaries.
-    """
-    if isinstance(con, NonlinearConstraint):
-        if (con.finite_diff_jac_sparsity is not None or
-                con.finite_diff_rel_step is not None or
-                not isinstance(con.hess, BFGS) or  # misses user specified BFGS
-                con.keep_feasible):
-            warn("Constraint options `finite_diff_jac_sparsity`, "
-                 "`finite_diff_rel_step`, `keep_feasible`, and `hess`"
-                 "are ignored by this method.",
-                 OptimizeWarning, stacklevel=3)
-
-        fun = con.fun
-        if callable(con.jac):
-            jac = con.jac
-        else:
-            jac = None
-
-    else:  # LinearConstraint
-        if np.any(con.keep_feasible):
-            warn("Constraint option `keep_feasible` is ignored by this method.",
-                 OptimizeWarning, stacklevel=3)
-
-        A = con.A
-        if issparse(A):
-            A = A.toarray()
-        def fun(x):
-            return np.dot(A, x)
-        def jac(x):
-            return A
-
-    # FIXME: when bugs in VectorFunction/LinearVectorFunction are worked out,
-    # use pcon.fun.fun and pcon.fun.jac. Until then, get fun/jac above.
-    pcon = PreparedConstraint(con, x0)
-    lb, ub = pcon.bounds
-
-    i_eq = lb == ub
-    i_bound_below = np.logical_xor(lb != -np.inf, i_eq)
-    i_bound_above = np.logical_xor(ub != np.inf, i_eq)
-    i_unbounded = np.logical_and(lb == -np.inf, ub == np.inf)
-
-    if np.any(i_unbounded):
-        warn("At least one constraint is unbounded above and below. Such "
-             "constraints are ignored.",
-             OptimizeWarning, stacklevel=3)
-
-    ceq = []
-    if np.any(i_eq):
-        def f_eq(x):
-            y = np.array(fun(x)).flatten()
-            return y[i_eq] - lb[i_eq]
-        ceq = [{"type": "eq", "fun": f_eq}]
-
-        if jac is not None:
-            def j_eq(x):
-                dy = jac(x)
-                if issparse(dy):
-                    dy = dy.toarray()
-                dy = np.atleast_2d(dy)
-                return dy[i_eq, :]
-            ceq[0]["jac"] = j_eq
-
-    cineq = []
-    n_bound_below = np.sum(i_bound_below)
-    n_bound_above = np.sum(i_bound_above)
-    if n_bound_below + n_bound_above:
-        def f_ineq(x):
-            y = np.zeros(n_bound_below + n_bound_above)
-            y_all = np.array(fun(x)).flatten()
-            y[:n_bound_below] = y_all[i_bound_below] - lb[i_bound_below]
-            y[n_bound_below:] = -(y_all[i_bound_above] - ub[i_bound_above])
-            return y
-        cineq = [{"type": "ineq", "fun": f_ineq}]
-
-        if jac is not None:
-            def j_ineq(x):
-                dy = np.zeros((n_bound_below + n_bound_above, len(x0)))
-                dy_all = jac(x)
-                if issparse(dy_all):
-                    dy_all = dy_all.toarray()
-                dy_all = np.atleast_2d(dy_all)
-                dy[:n_bound_below, :] = dy_all[i_bound_below]
-                dy[n_bound_below:, :] = -dy_all[i_bound_above]
-                return dy
-            cineq[0]["jac"] = j_ineq
-
-    old_constraints = ceq + cineq
-
-    if len(old_constraints) > 1:
-        warn("Equality and inequality constraints are specified in the same "
-             "element of the constraint list. For efficient use with this "
-             "method, equality and inequality constraints should be specified "
-             "in separate elements of the constraint list. ",
-             OptimizeWarning, stacklevel=3)
-    return old_constraints
-
-
-def old_constraint_to_new(ic, con):
-    """
-    Converts old-style constraint dictionaries to new-style constraint objects.
-    """
-    # check type
-    try:
-        ctype = con['type'].lower()
-    except KeyError as e:
-        raise KeyError('Constraint %d has no type defined.' % ic) from e
-    except TypeError as e:
-        raise TypeError(
-            'Constraints must be a sequence of dictionaries.'
-        ) from e
-    except AttributeError as e:
-        raise TypeError("Constraint's type must be a string.") from e
-    else:
-        if ctype not in ['eq', 'ineq']:
-            raise ValueError("Unknown constraint type '%s'." % con['type'])
-    if 'fun' not in con:
-        raise ValueError('Constraint %d has no function defined.' % ic)
-
-    lb = 0
-    if ctype == 'eq':
-        ub = 0
-    else:
-        ub = np.inf
-
-    jac = '2-point'
-    if 'args' in con:
-        args = con['args']
-        def fun(x):
-            return con["fun"](x, *args)
-        if 'jac' in con:
-            def jac(x):
-                return con["jac"](x, *args)
-    else:
-        fun = con['fun']
-        if 'jac' in con:
-            jac = con['jac']
-
-    return NonlinearConstraint(fun, lb, ub, jac)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_dcsrch.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_dcsrch.py
deleted file mode 100644
index f8b4df4763ba4f699869431a0b6528383c2f0328..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_dcsrch.py
+++ /dev/null
@@ -1,728 +0,0 @@
-import numpy as np
-
-"""
-# 2023 - ported from minpack2.dcsrch, dcstep (Fortran) to Python
-c     MINPACK-1 Project. June 1983.
-c     Argonne National Laboratory.
-c     Jorge J. More' and David J. Thuente.
-c
-c     MINPACK-2 Project. November 1993.
-c     Argonne National Laboratory and University of Minnesota.
-c     Brett M. Averick, Richard G. Carter, and Jorge J. More'.
-"""
-
-# NOTE this file was linted by black on first commit, and can be kept that way.
-
-
-class DCSRCH:
-    """
-    Parameters
-    ----------
-    phi : callable phi(alpha)
-        Function at point `alpha`
-    derphi : callable phi'(alpha)
-        Objective function derivative. Returns a scalar.
-    ftol : float
-        A nonnegative tolerance for the sufficient decrease condition.
-    gtol : float
-        A nonnegative tolerance for the curvature condition.
-    xtol : float
-        A nonnegative relative tolerance for an acceptable step. The
-        subroutine exits with a warning if the relative difference between
-        sty and stx is less than xtol.
-    stpmin : float
-        A nonnegative lower bound for the step.
-    stpmax :
-        A nonnegative upper bound for the step.
-
-    Notes
-    -----
-
-    This subroutine finds a step that satisfies a sufficient
-    decrease condition and a curvature condition.
-
-    Each call of the subroutine updates an interval with
-    endpoints stx and sty. The interval is initially chosen
-    so that it contains a minimizer of the modified function
-
-           psi(stp) = f(stp) - f(0) - ftol*stp*f'(0).
-
-    If psi(stp) <= 0 and f'(stp) >= 0 for some step, then the
-    interval is chosen so that it contains a minimizer of f.
-
-    The algorithm is designed to find a step that satisfies
-    the sufficient decrease condition
-
-           f(stp) <= f(0) + ftol*stp*f'(0),
-
-    and the curvature condition
-
-           abs(f'(stp)) <= gtol*abs(f'(0)).
-
-    If ftol is less than gtol and if, for example, the function
-    is bounded below, then there is always a step which satisfies
-    both conditions.
-
-    If no step can be found that satisfies both conditions, then
-    the algorithm stops with a warning. In this case stp only
-    satisfies the sufficient decrease condition.
-
-    A typical invocation of dcsrch has the following outline:
-
-    Evaluate the function at stp = 0.0d0; store in f.
-    Evaluate the gradient at stp = 0.0d0; store in g.
-    Choose a starting step stp.
-
-    task = 'START'
-    10 continue
-        call dcsrch(stp,f,g,ftol,gtol,xtol,task,stpmin,stpmax,
-                   isave,dsave)
-        if (task .eq. 'FG') then
-           Evaluate the function and the gradient at stp
-           go to 10
-           end if
-
-    NOTE: The user must not alter work arrays between calls.
-
-    The subroutine statement is
-
-        subroutine dcsrch(f,g,stp,ftol,gtol,xtol,stpmin,stpmax,
-                         task,isave,dsave)
-        where
-
-    stp is a double precision variable.
-        On entry stp is the current estimate of a satisfactory
-            step. On initial entry, a positive initial estimate
-            must be provided.
-        On exit stp is the current estimate of a satisfactory step
-            if task = 'FG'. If task = 'CONV' then stp satisfies
-            the sufficient decrease and curvature condition.
-
-    f is a double precision variable.
-        On initial entry f is the value of the function at 0.
-        On subsequent entries f is the value of the
-            function at stp.
-        On exit f is the value of the function at stp.
-
-    g is a double precision variable.
-        On initial entry g is the derivative of the function at 0.
-        On subsequent entries g is the derivative of the
-           function at stp.
-        On exit g is the derivative of the function at stp.
-
-    ftol is a double precision variable.
-        On entry ftol specifies a nonnegative tolerance for the
-           sufficient decrease condition.
-        On exit ftol is unchanged.
-
-    gtol is a double precision variable.
-        On entry gtol specifies a nonnegative tolerance for the
-           curvature condition.
-        On exit gtol is unchanged.
-
-    xtol is a double precision variable.
-        On entry xtol specifies a nonnegative relative tolerance
-          for an acceptable step. The subroutine exits with a
-          warning if the relative difference between sty and stx
-          is less than xtol.
-
-        On exit xtol is unchanged.
-
-    task is a character variable of length at least 60.
-        On initial entry task must be set to 'START'.
-        On exit task indicates the required action:
-
-           If task(1:2) = 'FG' then evaluate the function and
-           derivative at stp and call dcsrch again.
-
-           If task(1:4) = 'CONV' then the search is successful.
-
-           If task(1:4) = 'WARN' then the subroutine is not able
-           to satisfy the convergence conditions. The exit value of
-           stp contains the best point found during the search.
-
-          If task(1:5) = 'ERROR' then there is an error in the
-          input arguments.
-
-        On exit with convergence, a warning or an error, the
-           variable task contains additional information.
-
-    stpmin is a double precision variable.
-        On entry stpmin is a nonnegative lower bound for the step.
-        On exit stpmin is unchanged.
-
-    stpmax is a double precision variable.
-        On entry stpmax is a nonnegative upper bound for the step.
-        On exit stpmax is unchanged.
-
-    isave is an integer work array of dimension 2.
-
-    dsave is a double precision work array of dimension 13.
-
-    Subprograms called
-
-      MINPACK-2 ... dcstep
-    MINPACK-1 Project. June 1983.
-    Argonne National Laboratory.
-    Jorge J. More' and David J. Thuente.
-
-    MINPACK-2 Project. November 1993.
-    Argonne National Laboratory and University of Minnesota.
-    Brett M. Averick, Richard G. Carter, and Jorge J. More'.
-    """
-
-    def __init__(self, phi, derphi, ftol, gtol, xtol, stpmin, stpmax):
-        self.stage = None
-        self.ginit = None
-        self.gtest = None
-        self.gx = None
-        self.gy = None
-        self.finit = None
-        self.fx = None
-        self.fy = None
-        self.stx = None
-        self.sty = None
-        self.stmin = None
-        self.stmax = None
-        self.width = None
-        self.width1 = None
-
-        # leave all assessment of tolerances/limits to the first call of
-        # this object
-        self.ftol = ftol
-        self.gtol = gtol
-        self.xtol = xtol
-        self.stpmin = stpmin
-        self.stpmax = stpmax
-
-        self.phi = phi
-        self.derphi = derphi
-
-    def __call__(self, alpha1, phi0=None, derphi0=None, maxiter=100):
-        """
-        Parameters
-        ----------
-        alpha1 : float
-            alpha1 is the current estimate of a satisfactory
-            step. A positive initial estimate must be provided.
-        phi0 : float
-            the value of `phi` at 0 (if known).
-        derphi0 : float
-            the derivative of `derphi` at 0 (if known).
-        maxiter : int
-
-        Returns
-        -------
-        alpha : float
-            Step size, or None if no suitable step was found.
-        phi : float
-            Value of `phi` at the new point `alpha`.
-        phi0 : float
-            Value of `phi` at `alpha=0`.
-        task : bytes
-            On exit task indicates status information.
-
-           If task[:4] == b'CONV' then the search is successful.
-
-           If task[:4] == b'WARN' then the subroutine is not able
-           to satisfy the convergence conditions. The exit value of
-           stp contains the best point found during the search.
-
-           If task[:5] == b'ERROR' then there is an error in the
-           input arguments.
-        """
-        if phi0 is None:
-            phi0 = self.phi(0.0)
-        if derphi0 is None:
-            derphi0 = self.derphi(0.0)
-
-        phi1 = phi0
-        derphi1 = derphi0
-
-        task = b"START"
-        for i in range(maxiter):
-            stp, phi1, derphi1, task = self._iterate(
-                alpha1, phi1, derphi1, task
-            )
-
-            if not np.isfinite(stp):
-                task = b"WARN"
-                stp = None
-                break
-
-            if task[:2] == b"FG":
-                alpha1 = stp
-                phi1 = self.phi(stp)
-                derphi1 = self.derphi(stp)
-            else:
-                break
-        else:
-            # maxiter reached, the line search did not converge
-            stp = None
-            task = b"WARNING: dcsrch did not converge within max iterations"
-
-        if task[:5] == b"ERROR" or task[:4] == b"WARN":
-            stp = None  # failed
-
-        return stp, phi1, phi0, task
-
-    def _iterate(self, stp, f, g, task):
-        """
-        Parameters
-        ----------
-        stp : float
-            The current estimate of a satisfactory step. On initial entry, a
-            positive initial estimate must be provided.
-        f : float
-            On first call f is the value of the function at 0. On subsequent
-            entries f should be the value of the function at stp.
-        g : float
-            On initial entry g is the derivative of the function at 0. On
-            subsequent entries g is the derivative of the function at stp.
-        task : bytes
-            On initial entry task must be set to 'START'.
-
-        On exit with convergence, a warning or an error, the
-           variable task contains additional information.
-
-
-        Returns
-        -------
-        stp, f, g, task: tuple
-
-            stp : float
-                the current estimate of a satisfactory step if task = 'FG'. If
-                task = 'CONV' then stp satisfies the sufficient decrease and
-                curvature condition.
-            f : float
-                the value of the function at stp.
-            g : float
-                the derivative of the function at stp.
-            task : bytes
-                On exit task indicates the required action:
-
-               If task(1:2) == b'FG' then evaluate the function and
-               derivative at stp and call dcsrch again.
-
-               If task(1:4) == b'CONV' then the search is successful.
-
-               If task(1:4) == b'WARN' then the subroutine is not able
-               to satisfy the convergence conditions. The exit value of
-               stp contains the best point found during the search.
-
-              If task(1:5) == b'ERROR' then there is an error in the
-              input arguments.
-        """
-        p5 = 0.5
-        p66 = 0.66
-        xtrapl = 1.1
-        xtrapu = 4.0
-
-        if task[:5] == b"START":
-            if stp < self.stpmin:
-                task = b"ERROR: STP .LT. STPMIN"
-            if stp > self.stpmax:
-                task = b"ERROR: STP .GT. STPMAX"
-            if g >= 0:
-                task = b"ERROR: INITIAL G .GE. ZERO"
-            if self.ftol < 0:
-                task = b"ERROR: FTOL .LT. ZERO"
-            if self.gtol < 0:
-                task = b"ERROR: GTOL .LT. ZERO"
-            if self.xtol < 0:
-                task = b"ERROR: XTOL .LT. ZERO"
-            if self.stpmin < 0:
-                task = b"ERROR: STPMIN .LT. ZERO"
-            if self.stpmax < self.stpmin:
-                task = b"ERROR: STPMAX .LT. STPMIN"
-
-            if task[:5] == b"ERROR":
-                return stp, f, g, task
-
-            # Initialize local variables.
-
-            self.brackt = False
-            self.stage = 1
-            self.finit = f
-            self.ginit = g
-            self.gtest = self.ftol * self.ginit
-            self.width = self.stpmax - self.stpmin
-            self.width1 = self.width / p5
-
-            # The variables stx, fx, gx contain the values of the step,
-            # function, and derivative at the best step.
-            # The variables sty, fy, gy contain the value of the step,
-            # function, and derivative at sty.
-            # The variables stp, f, g contain the values of the step,
-            # function, and derivative at stp.
-
-            self.stx = 0.0
-            self.fx = self.finit
-            self.gx = self.ginit
-            self.sty = 0.0
-            self.fy = self.finit
-            self.gy = self.ginit
-            self.stmin = 0
-            self.stmax = stp + xtrapu * stp
-            task = b"FG"
-            return stp, f, g, task
-
-        # in the original Fortran this was a location to restore variables
-        # we don't need to do that because they're attributes.
-
-        # If psi(stp) <= 0 and f'(stp) >= 0 for some step, then the
-        # algorithm enters the second stage.
-        ftest = self.finit + stp * self.gtest
-
-        if self.stage == 1 and f <= ftest and g >= 0:
-            self.stage = 2
-
-        # test for warnings
-        if self.brackt and (stp <= self.stmin or stp >= self.stmax):
-            task = b"WARNING: ROUNDING ERRORS PREVENT PROGRESS"
-        if self.brackt and self.stmax - self.stmin <= self.xtol * self.stmax:
-            task = b"WARNING: XTOL TEST SATISFIED"
-        if stp == self.stpmax and f <= ftest and g <= self.gtest:
-            task = b"WARNING: STP = STPMAX"
-        if stp == self.stpmin and (f > ftest or g >= self.gtest):
-            task = b"WARNING: STP = STPMIN"
-
-        # test for convergence
-        if f <= ftest and abs(g) <= self.gtol * -self.ginit:
-            task = b"CONVERGENCE"
-
-        # test for termination
-        if task[:4] == b"WARN" or task[:4] == b"CONV":
-            return stp, f, g, task
-
-        # A modified function is used to predict the step during the
-        # first stage if a lower function value has been obtained but
-        # the decrease is not sufficient.
-        if self.stage == 1 and f <= self.fx and f > ftest:
-            # Define the modified function and derivative values.
-            fm = f - stp * self.gtest
-            fxm = self.fx - self.stx * self.gtest
-            fym = self.fy - self.sty * self.gtest
-            gm = g - self.gtest
-            gxm = self.gx - self.gtest
-            gym = self.gy - self.gtest
-
-            # Call dcstep to update stx, sty, and to compute the new step.
-            # dcstep can have several operations which can produce NaN
-            # e.g. inf/inf. Filter these out.
-            with np.errstate(invalid="ignore", over="ignore"):
-                tup = dcstep(
-                    self.stx,
-                    fxm,
-                    gxm,
-                    self.sty,
-                    fym,
-                    gym,
-                    stp,
-                    fm,
-                    gm,
-                    self.brackt,
-                    self.stmin,
-                    self.stmax,
-                )
-                self.stx, fxm, gxm, self.sty, fym, gym, stp, self.brackt = tup
-
-            # Reset the function and derivative values for f
-            self.fx = fxm + self.stx * self.gtest
-            self.fy = fym + self.sty * self.gtest
-            self.gx = gxm + self.gtest
-            self.gy = gym + self.gtest
-
-        else:
-            # Call dcstep to update stx, sty, and to compute the new step.
-            # dcstep can have several operations which can produce NaN
-            # e.g. inf/inf. Filter these out.
-
-            with np.errstate(invalid="ignore", over="ignore"):
-                tup = dcstep(
-                    self.stx,
-                    self.fx,
-                    self.gx,
-                    self.sty,
-                    self.fy,
-                    self.gy,
-                    stp,
-                    f,
-                    g,
-                    self.brackt,
-                    self.stmin,
-                    self.stmax,
-                )
-            (
-                self.stx,
-                self.fx,
-                self.gx,
-                self.sty,
-                self.fy,
-                self.gy,
-                stp,
-                self.brackt,
-            ) = tup
-
-        # Decide if a bisection step is needed
-        if self.brackt:
-            if abs(self.sty - self.stx) >= p66 * self.width1:
-                stp = self.stx + p5 * (self.sty - self.stx)
-            self.width1 = self.width
-            self.width = abs(self.sty - self.stx)
-
-        # Set the minimum and maximum steps allowed for stp.
-        if self.brackt:
-            self.stmin = min(self.stx, self.sty)
-            self.stmax = max(self.stx, self.sty)
-        else:
-            self.stmin = stp + xtrapl * (stp - self.stx)
-            self.stmax = stp + xtrapu * (stp - self.stx)
-
-        # Force the step to be within the bounds stpmax and stpmin.
-        stp = np.clip(stp, self.stpmin, self.stpmax)
-
-        # If further progress is not possible, let stp be the best
-        # point obtained during the search.
-        if (
-            self.brackt
-            and (stp <= self.stmin or stp >= self.stmax)
-            or (
-                self.brackt
-                and self.stmax - self.stmin <= self.xtol * self.stmax
-            )
-        ):
-            stp = self.stx
-
-        # Obtain another function and derivative
-        task = b"FG"
-        return stp, f, g, task
-
-
-def dcstep(stx, fx, dx, sty, fy, dy, stp, fp, dp, brackt, stpmin, stpmax):
-    """
-    Subroutine dcstep
-
-    This subroutine computes a safeguarded step for a search
-    procedure and updates an interval that contains a step that
-    satisfies a sufficient decrease and a curvature condition.
-
-    The parameter stx contains the step with the least function
-    value. If brackt is set to .true. then a minimizer has
-    been bracketed in an interval with endpoints stx and sty.
-    The parameter stp contains the current step.
-    The subroutine assumes that if brackt is set to .true. then
-
-        min(stx,sty) < stp < max(stx,sty),
-
-    and that the derivative at stx is negative in the direction
-    of the step.
-
-    The subroutine statement is
-
-      subroutine dcstep(stx,fx,dx,sty,fy,dy,stp,fp,dp,brackt,
-                        stpmin,stpmax)
-
-    where
-
-    stx is a double precision variable.
-        On entry stx is the best step obtained so far and is an
-          endpoint of the interval that contains the minimizer.
-        On exit stx is the updated best step.
-
-    fx is a double precision variable.
-        On entry fx is the function at stx.
-        On exit fx is the function at stx.
-
-    dx is a double precision variable.
-        On entry dx is the derivative of the function at
-          stx. The derivative must be negative in the direction of
-          the step, that is, dx and stp - stx must have opposite
-          signs.
-        On exit dx is the derivative of the function at stx.
-
-    sty is a double precision variable.
-        On entry sty is the second endpoint of the interval that
-          contains the minimizer.
-        On exit sty is the updated endpoint of the interval that
-          contains the minimizer.
-
-    fy is a double precision variable.
-        On entry fy is the function at sty.
-        On exit fy is the function at sty.
-
-    dy is a double precision variable.
-        On entry dy is the derivative of the function at sty.
-        On exit dy is the derivative of the function at the exit sty.
-
-    stp is a double precision variable.
-        On entry stp is the current step. If brackt is set to .true.
-          then on input stp must be between stx and sty.
-        On exit stp is a new trial step.
-
-    fp is a double precision variable.
-        On entry fp is the function at stp
-        On exit fp is unchanged.
-
-    dp is a double precision variable.
-        On entry dp is the derivative of the function at stp.
-        On exit dp is unchanged.
-
-    brackt is an logical variable.
-        On entry brackt specifies if a minimizer has been bracketed.
-            Initially brackt must be set to .false.
-        On exit brackt specifies if a minimizer has been bracketed.
-            When a minimizer is bracketed brackt is set to .true.
-
-    stpmin is a double precision variable.
-        On entry stpmin is a lower bound for the step.
-        On exit stpmin is unchanged.
-
-    stpmax is a double precision variable.
-        On entry stpmax is an upper bound for the step.
-        On exit stpmax is unchanged.
-
-    MINPACK-1 Project. June 1983
-    Argonne National Laboratory.
-    Jorge J. More' and David J. Thuente.
-
-    MINPACK-2 Project. November 1993.
-    Argonne National Laboratory and University of Minnesota.
-    Brett M. Averick and Jorge J. More'.
-
-    """
-    sgn_dp = np.sign(dp)
-    sgn_dx = np.sign(dx)
-
-    # sgnd = dp * (dx / abs(dx))
-    sgnd = sgn_dp * sgn_dx
-
-    # First case: A higher function value. The minimum is bracketed.
-    # If the cubic step is closer to stx than the quadratic step, the
-    # cubic step is taken, otherwise the average of the cubic and
-    # quadratic steps is taken.
-    if fp > fx:
-        theta = 3.0 * (fx - fp) / (stp - stx) + dx + dp
-        s = max(abs(theta), abs(dx), abs(dp))
-        gamma = s * np.sqrt((theta / s) ** 2 - (dx / s) * (dp / s))
-        if stp < stx:
-            gamma *= -1
-        p = (gamma - dx) + theta
-        q = ((gamma - dx) + gamma) + dp
-        r = p / q
-        stpc = stx + r * (stp - stx)
-        stpq = stx + ((dx / ((fx - fp) / (stp - stx) + dx)) / 2.0) * (stp - stx)
-        if abs(stpc - stx) <= abs(stpq - stx):
-            stpf = stpc
-        else:
-            stpf = stpc + (stpq - stpc) / 2.0
-        brackt = True
-    elif sgnd < 0.0:
-        # Second case: A lower function value and derivatives of opposite
-        # sign. The minimum is bracketed. If the cubic step is farther from
-        # stp than the secant step, the cubic step is taken, otherwise the
-        # secant step is taken.
-        theta = 3 * (fx - fp) / (stp - stx) + dx + dp
-        s = max(abs(theta), abs(dx), abs(dp))
-        gamma = s * np.sqrt((theta / s) ** 2 - (dx / s) * (dp / s))
-        if stp > stx:
-            gamma *= -1
-        p = (gamma - dp) + theta
-        q = ((gamma - dp) + gamma) + dx
-        r = p / q
-        stpc = stp + r * (stx - stp)
-        stpq = stp + (dp / (dp - dx)) * (stx - stp)
-        if abs(stpc - stp) > abs(stpq - stp):
-            stpf = stpc
-        else:
-            stpf = stpq
-        brackt = True
-    elif abs(dp) < abs(dx):
-        # Third case: A lower function value, derivatives of the same sign,
-        # and the magnitude of the derivative decreases.
-
-        # The cubic step is computed only if the cubic tends to infinity
-        # in the direction of the step or if the minimum of the cubic
-        # is beyond stp. Otherwise the cubic step is defined to be the
-        # secant step.
-        theta = 3 * (fx - fp) / (stp - stx) + dx + dp
-        s = max(abs(theta), abs(dx), abs(dp))
-
-        # The case gamma = 0 only arises if the cubic does not tend
-        # to infinity in the direction of the step.
-        gamma = s * np.sqrt(max(0, (theta / s) ** 2 - (dx / s) * (dp / s)))
-        if stp > stx:
-            gamma = -gamma
-        p = (gamma - dp) + theta
-        q = (gamma + (dx - dp)) + gamma
-        r = p / q
-        if r < 0 and gamma != 0:
-            stpc = stp + r * (stx - stp)
-        elif stp > stx:
-            stpc = stpmax
-        else:
-            stpc = stpmin
-        stpq = stp + (dp / (dp - dx)) * (stx - stp)
-
-        if brackt:
-            # A minimizer has been bracketed. If the cubic step is
-            # closer to stp than the secant step, the cubic step is
-            # taken, otherwise the secant step is taken.
-            if abs(stpc - stp) < abs(stpq - stp):
-                stpf = stpc
-            else:
-                stpf = stpq
-
-            if stp > stx:
-                stpf = min(stp + 0.66 * (sty - stp), stpf)
-            else:
-                stpf = max(stp + 0.66 * (sty - stp), stpf)
-        else:
-            # A minimizer has not been bracketed. If the cubic step is
-            # farther from stp than the secant step, the cubic step is
-            # taken, otherwise the secant step is taken.
-            if abs(stpc - stp) > abs(stpq - stp):
-                stpf = stpc
-            else:
-                stpf = stpq
-            stpf = np.clip(stpf, stpmin, stpmax)
-
-    else:
-        # Fourth case: A lower function value, derivatives of the same sign,
-        # and the magnitude of the derivative does not decrease. If the
-        # minimum is not bracketed, the step is either stpmin or stpmax,
-        # otherwise the cubic step is taken.
-        if brackt:
-            theta = 3.0 * (fp - fy) / (sty - stp) + dy + dp
-            s = max(abs(theta), abs(dy), abs(dp))
-            gamma = s * np.sqrt((theta / s) ** 2 - (dy / s) * (dp / s))
-            if stp > sty:
-                gamma = -gamma
-            p = (gamma - dp) + theta
-            q = ((gamma - dp) + gamma) + dy
-            r = p / q
-            stpc = stp + r * (sty - stp)
-            stpf = stpc
-        elif stp > stx:
-            stpf = stpmax
-        else:
-            stpf = stpmin
-
-    # Update the interval which contains a minimizer.
-    if fp > fx:
-        sty = stp
-        fy = fp
-        dy = dp
-    else:
-        if sgnd < 0:
-            sty = stx
-            fy = fx
-            dy = dx
-        stx = stp
-        fx = fp
-        dx = dp
-
-    # Compute the new step.
-    stp = stpf
-
-    return stx, fx, dx, sty, fy, dy, stp, brackt
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_differentiable_functions.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_differentiable_functions.py
deleted file mode 100644
index 9370aff56f7dd428ecb56af31e21f8a5fa181bb4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_differentiable_functions.py
+++ /dev/null
@@ -1,693 +0,0 @@
-import numpy as np
-import scipy.sparse as sps
-from ._numdiff import approx_derivative, group_columns
-from ._hessian_update_strategy import HessianUpdateStrategy
-from scipy.sparse.linalg import LinearOperator
-from scipy._lib._array_api import atleast_nd, array_namespace
-
-
-FD_METHODS = ('2-point', '3-point', 'cs')
-
-
-def _wrapper_fun(fun, args=()):
-    ncalls = [0]
-
-    def wrapped(x):
-        ncalls[0] += 1
-        # Send a copy because the user may overwrite it.
-        # Overwriting results in undefined behaviour because
-        # fun(self.x) will change self.x, with the two no longer linked.
-        fx = fun(np.copy(x), *args)
-        # Make sure the function returns a true scalar
-        if not np.isscalar(fx):
-            try:
-                fx = np.asarray(fx).item()
-            except (TypeError, ValueError) as e:
-                raise ValueError(
-                    "The user-provided objective function "
-                    "must return a scalar value."
-                ) from e
-        return fx
-    return wrapped, ncalls
-
-
-def _wrapper_grad(grad, fun=None, args=(), finite_diff_options=None):
-    ncalls = [0]
-
-    if callable(grad):
-        def wrapped(x, **kwds):
-            # kwds present to give function same signature as numdiff variant
-            ncalls[0] += 1
-            return np.atleast_1d(grad(np.copy(x), *args))
-        return wrapped, ncalls
-
-    elif grad in FD_METHODS:
-        def wrapped1(x, f0=None):
-            ncalls[0] += 1
-            return approx_derivative(
-                fun, x, f0=f0, **finite_diff_options
-            )
-
-        return wrapped1, ncalls
-
-
-def _wrapper_hess(hess, grad=None, x0=None, args=(), finite_diff_options=None):
-    if callable(hess):
-        H = hess(np.copy(x0), *args)
-        ncalls = [1]
-
-        if sps.issparse(H):
-            def wrapped(x, **kwds):
-                ncalls[0] += 1
-                return sps.csr_matrix(hess(np.copy(x), *args))
-
-            H = sps.csr_matrix(H)
-
-        elif isinstance(H, LinearOperator):
-            def wrapped(x, **kwds):
-                ncalls[0] += 1
-                return hess(np.copy(x), *args)
-
-        else:  # dense
-            def wrapped(x, **kwds):
-                ncalls[0] += 1
-                return np.atleast_2d(np.asarray(hess(np.copy(x), *args)))
-
-            H = np.atleast_2d(np.asarray(H))
-
-        return wrapped, ncalls, H
-    elif hess in FD_METHODS:
-        ncalls = [0]
-
-        def wrapped1(x, f0=None):
-            return approx_derivative(
-                grad, x, f0=f0, **finite_diff_options
-            )
-
-        return wrapped1, ncalls, None
-
-
-class ScalarFunction:
-    """Scalar function and its derivatives.
-
-    This class defines a scalar function F: R^n->R and methods for
-    computing or approximating its first and second derivatives.
-
-    Parameters
-    ----------
-    fun : callable
-        evaluates the scalar function. Must be of the form ``fun(x, *args)``,
-        where ``x`` is the argument in the form of a 1-D array and ``args`` is
-        a tuple of any additional fixed parameters needed to completely specify
-        the function. Should return a scalar.
-    x0 : array-like
-        Provides an initial set of variables for evaluating fun. Array of real
-        elements of size (n,), where 'n' is the number of independent
-        variables.
-    args : tuple, optional
-        Any additional fixed parameters needed to completely specify the scalar
-        function.
-    grad : {callable, '2-point', '3-point', 'cs'}
-        Method for computing the gradient vector.
-        If it is a callable, it should be a function that returns the gradient
-        vector:
-
-            ``grad(x, *args) -> array_like, shape (n,)``
-
-        where ``x`` is an array with shape (n,) and ``args`` is a tuple with
-        the fixed parameters.
-        Alternatively, the keywords  {'2-point', '3-point', 'cs'} can be used
-        to select a finite difference scheme for numerical estimation of the
-        gradient with a relative step size. These finite difference schemes
-        obey any specified `bounds`.
-    hess : {callable, '2-point', '3-point', 'cs', HessianUpdateStrategy}
-        Method for computing the Hessian matrix. If it is callable, it should
-        return the  Hessian matrix:
-
-            ``hess(x, *args) -> {LinearOperator, spmatrix, array}, (n, n)``
-
-        where x is a (n,) ndarray and `args` is a tuple with the fixed
-        parameters. Alternatively, the keywords {'2-point', '3-point', 'cs'}
-        select a finite difference scheme for numerical estimation. Or, objects
-        implementing `HessianUpdateStrategy` interface can be used to
-        approximate the Hessian.
-        Whenever the gradient is estimated via finite-differences, the Hessian
-        cannot be estimated with options {'2-point', '3-point', 'cs'} and needs
-        to be estimated using one of the quasi-Newton strategies.
-    finite_diff_rel_step : None or array_like
-        Relative step size to use. The absolute step size is computed as
-        ``h = finite_diff_rel_step * sign(x0) * max(1, abs(x0))``, possibly
-        adjusted to fit into the bounds. For ``method='3-point'`` the sign
-        of `h` is ignored. If None then finite_diff_rel_step is selected
-        automatically,
-    finite_diff_bounds : tuple of array_like
-        Lower and upper bounds on independent variables. Defaults to no bounds,
-        (-np.inf, np.inf). Each bound must match the size of `x0` or be a
-        scalar, in the latter case the bound will be the same for all
-        variables. Use it to limit the range of function evaluation.
-    epsilon : None or array_like, optional
-        Absolute step size to use, possibly adjusted to fit into the bounds.
-        For ``method='3-point'`` the sign of `epsilon` is ignored. By default
-        relative steps are used, only if ``epsilon is not None`` are absolute
-        steps used.
-
-    Notes
-    -----
-    This class implements a memoization logic. There are methods `fun`,
-    `grad`, hess` and corresponding attributes `f`, `g` and `H`. The following
-    things should be considered:
-
-        1. Use only public methods `fun`, `grad` and `hess`.
-        2. After one of the methods is called, the corresponding attribute
-           will be set. However, a subsequent call with a different argument
-           of *any* of the methods may overwrite the attribute.
-    """
-    def __init__(self, fun, x0, args, grad, hess, finite_diff_rel_step,
-                 finite_diff_bounds, epsilon=None):
-        if not callable(grad) and grad not in FD_METHODS:
-            raise ValueError(
-                f"`grad` must be either callable or one of {FD_METHODS}."
-            )
-
-        if not (callable(hess) or hess in FD_METHODS
-                or isinstance(hess, HessianUpdateStrategy)):
-            raise ValueError(
-                f"`hess` must be either callable, HessianUpdateStrategy"
-                f" or one of {FD_METHODS}."
-            )
-
-        if grad in FD_METHODS and hess in FD_METHODS:
-            raise ValueError("Whenever the gradient is estimated via "
-                             "finite-differences, we require the Hessian "
-                             "to be estimated using one of the "
-                             "quasi-Newton strategies.")
-
-        self.xp = xp = array_namespace(x0)
-        _x = atleast_nd(x0, ndim=1, xp=xp)
-        _dtype = xp.float64
-        if xp.isdtype(_x.dtype, "real floating"):
-            _dtype = _x.dtype
-
-        # original arguments
-        self._wrapped_fun, self._nfev = _wrapper_fun(fun, args=args)
-        self._orig_fun = fun
-        self._orig_grad = grad
-        self._orig_hess = hess
-        self._args = args
-
-        # promotes to floating
-        self.x = xp.astype(_x, _dtype)
-        self.x_dtype = _dtype
-        self.n = self.x.size
-        self.f_updated = False
-        self.g_updated = False
-        self.H_updated = False
-
-        self._lowest_x = None
-        self._lowest_f = np.inf
-
-        finite_diff_options = {}
-        if grad in FD_METHODS:
-            finite_diff_options["method"] = grad
-            finite_diff_options["rel_step"] = finite_diff_rel_step
-            finite_diff_options["abs_step"] = epsilon
-            finite_diff_options["bounds"] = finite_diff_bounds
-        if hess in FD_METHODS:
-            finite_diff_options["method"] = hess
-            finite_diff_options["rel_step"] = finite_diff_rel_step
-            finite_diff_options["abs_step"] = epsilon
-            finite_diff_options["as_linear_operator"] = True
-
-        # Initial function evaluation
-        self._update_fun()
-
-        # Initial gradient evaluation
-        self._wrapped_grad, self._ngev = _wrapper_grad(
-            grad,
-            fun=self._wrapped_fun,
-            args=args,
-            finite_diff_options=finite_diff_options
-        )
-        self._update_grad()
-
-        # Hessian evaluation
-        if callable(hess):
-            self._wrapped_hess, self._nhev, self.H = _wrapper_hess(
-                hess, x0=x0, args=args
-            )
-            self.H_updated = True
-        elif hess in FD_METHODS:
-            self._wrapped_hess, self._nhev, self.H = _wrapper_hess(
-                hess,
-                grad=self._wrapped_grad,
-                x0=x0,
-                finite_diff_options=finite_diff_options
-            )
-            self._update_grad()
-            self.H = self._wrapped_hess(self.x, f0=self.g)
-            self.H_updated = True
-        elif isinstance(hess, HessianUpdateStrategy):
-            self.H = hess
-            self.H.initialize(self.n, 'hess')
-            self.H_updated = True
-            self.x_prev = None
-            self.g_prev = None
-            self._nhev = [0]
-
-    @property
-    def nfev(self):
-        return self._nfev[0]
-
-    @property
-    def ngev(self):
-        return self._ngev[0]
-
-    @property
-    def nhev(self):
-        return self._nhev[0]
-
-    def _update_x(self, x):
-        if isinstance(self._orig_hess, HessianUpdateStrategy):
-            self._update_grad()
-            self.x_prev = self.x
-            self.g_prev = self.g
-            # ensure that self.x is a copy of x. Don't store a reference
-            # otherwise the memoization doesn't work properly.
-
-            _x = atleast_nd(x, ndim=1, xp=self.xp)
-            self.x = self.xp.astype(_x, self.x_dtype)
-            self.f_updated = False
-            self.g_updated = False
-            self.H_updated = False
-            self._update_hess()
-        else:
-            # ensure that self.x is a copy of x. Don't store a reference
-            # otherwise the memoization doesn't work properly.
-            _x = atleast_nd(x, ndim=1, xp=self.xp)
-            self.x = self.xp.astype(_x, self.x_dtype)
-            self.f_updated = False
-            self.g_updated = False
-            self.H_updated = False
-
-    def _update_fun(self):
-        if not self.f_updated:
-            fx = self._wrapped_fun(self.x)
-            if fx < self._lowest_f:
-                self._lowest_x = self.x
-                self._lowest_f = fx
-
-            self.f = fx
-            self.f_updated = True
-
-    def _update_grad(self):
-        if not self.g_updated:
-            if self._orig_grad in FD_METHODS:
-                self._update_fun()
-            self.g = self._wrapped_grad(self.x, f0=self.f)
-            self.g_updated = True
-
-    def _update_hess(self):
-        if not self.H_updated:
-            if self._orig_hess in FD_METHODS:
-                self._update_grad()
-                self.H = self._wrapped_hess(self.x, f0=self.g)
-            elif isinstance(self._orig_hess, HessianUpdateStrategy):
-                self._update_grad()
-                self.H.update(self.x - self.x_prev, self.g - self.g_prev)
-            else:       # should be callable(hess)
-                self.H = self._wrapped_hess(self.x)
-
-            self.H_updated = True
-
-    def fun(self, x):
-        if not np.array_equal(x, self.x):
-            self._update_x(x)
-        self._update_fun()
-        return self.f
-
-    def grad(self, x):
-        if not np.array_equal(x, self.x):
-            self._update_x(x)
-        self._update_grad()
-        return self.g
-
-    def hess(self, x):
-        if not np.array_equal(x, self.x):
-            self._update_x(x)
-        self._update_hess()
-        return self.H
-
-    def fun_and_grad(self, x):
-        if not np.array_equal(x, self.x):
-            self._update_x(x)
-        self._update_fun()
-        self._update_grad()
-        return self.f, self.g
-
-
-class VectorFunction:
-    """Vector function and its derivatives.
-
-    This class defines a vector function F: R^n->R^m and methods for
-    computing or approximating its first and second derivatives.
-
-    Notes
-    -----
-    This class implements a memoization logic. There are methods `fun`,
-    `jac`, hess` and corresponding attributes `f`, `J` and `H`. The following
-    things should be considered:
-
-        1. Use only public methods `fun`, `jac` and `hess`.
-        2. After one of the methods is called, the corresponding attribute
-           will be set. However, a subsequent call with a different argument
-           of *any* of the methods may overwrite the attribute.
-    """
-    def __init__(self, fun, x0, jac, hess,
-                 finite_diff_rel_step, finite_diff_jac_sparsity,
-                 finite_diff_bounds, sparse_jacobian):
-        if not callable(jac) and jac not in FD_METHODS:
-            raise ValueError(f"`jac` must be either callable or one of {FD_METHODS}.")
-
-        if not (callable(hess) or hess in FD_METHODS
-                or isinstance(hess, HessianUpdateStrategy)):
-            raise ValueError("`hess` must be either callable,"
-                             f"HessianUpdateStrategy or one of {FD_METHODS}.")
-
-        if jac in FD_METHODS and hess in FD_METHODS:
-            raise ValueError("Whenever the Jacobian is estimated via "
-                             "finite-differences, we require the Hessian to "
-                             "be estimated using one of the quasi-Newton "
-                             "strategies.")
-
-        self.xp = xp = array_namespace(x0)
-        _x = atleast_nd(x0, ndim=1, xp=xp)
-        _dtype = xp.float64
-        if xp.isdtype(_x.dtype, "real floating"):
-            _dtype = _x.dtype
-
-        # promotes to floating
-        self.x = xp.astype(_x, _dtype)
-        self.x_dtype = _dtype
-
-        self.n = self.x.size
-        self.nfev = 0
-        self.njev = 0
-        self.nhev = 0
-        self.f_updated = False
-        self.J_updated = False
-        self.H_updated = False
-
-        finite_diff_options = {}
-        if jac in FD_METHODS:
-            finite_diff_options["method"] = jac
-            finite_diff_options["rel_step"] = finite_diff_rel_step
-            if finite_diff_jac_sparsity is not None:
-                sparsity_groups = group_columns(finite_diff_jac_sparsity)
-                finite_diff_options["sparsity"] = (finite_diff_jac_sparsity,
-                                                   sparsity_groups)
-            finite_diff_options["bounds"] = finite_diff_bounds
-            self.x_diff = np.copy(self.x)
-        if hess in FD_METHODS:
-            finite_diff_options["method"] = hess
-            finite_diff_options["rel_step"] = finite_diff_rel_step
-            finite_diff_options["as_linear_operator"] = True
-            self.x_diff = np.copy(self.x)
-        if jac in FD_METHODS and hess in FD_METHODS:
-            raise ValueError("Whenever the Jacobian is estimated via "
-                             "finite-differences, we require the Hessian to "
-                             "be estimated using one of the quasi-Newton "
-                             "strategies.")
-
-        # Function evaluation
-        def fun_wrapped(x):
-            self.nfev += 1
-            return np.atleast_1d(fun(x))
-
-        def update_fun():
-            self.f = fun_wrapped(self.x)
-
-        self._update_fun_impl = update_fun
-        update_fun()
-
-        self.v = np.zeros_like(self.f)
-        self.m = self.v.size
-
-        # Jacobian Evaluation
-        if callable(jac):
-            self.J = jac(self.x)
-            self.J_updated = True
-            self.njev += 1
-
-            if (sparse_jacobian or
-                    sparse_jacobian is None and sps.issparse(self.J)):
-                def jac_wrapped(x):
-                    self.njev += 1
-                    return sps.csr_matrix(jac(x))
-                self.J = sps.csr_matrix(self.J)
-                self.sparse_jacobian = True
-
-            elif sps.issparse(self.J):
-                def jac_wrapped(x):
-                    self.njev += 1
-                    return jac(x).toarray()
-                self.J = self.J.toarray()
-                self.sparse_jacobian = False
-
-            else:
-                def jac_wrapped(x):
-                    self.njev += 1
-                    return np.atleast_2d(jac(x))
-                self.J = np.atleast_2d(self.J)
-                self.sparse_jacobian = False
-
-            def update_jac():
-                self.J = jac_wrapped(self.x)
-
-        elif jac in FD_METHODS:
-            self.J = approx_derivative(fun_wrapped, self.x, f0=self.f,
-                                       **finite_diff_options)
-            self.J_updated = True
-
-            if (sparse_jacobian or
-                    sparse_jacobian is None and sps.issparse(self.J)):
-                def update_jac():
-                    self._update_fun()
-                    self.J = sps.csr_matrix(
-                        approx_derivative(fun_wrapped, self.x, f0=self.f,
-                                          **finite_diff_options))
-                self.J = sps.csr_matrix(self.J)
-                self.sparse_jacobian = True
-
-            elif sps.issparse(self.J):
-                def update_jac():
-                    self._update_fun()
-                    self.J = approx_derivative(fun_wrapped, self.x, f0=self.f,
-                                               **finite_diff_options).toarray()
-                self.J = self.J.toarray()
-                self.sparse_jacobian = False
-
-            else:
-                def update_jac():
-                    self._update_fun()
-                    self.J = np.atleast_2d(
-                        approx_derivative(fun_wrapped, self.x, f0=self.f,
-                                          **finite_diff_options))
-                self.J = np.atleast_2d(self.J)
-                self.sparse_jacobian = False
-
-        self._update_jac_impl = update_jac
-
-        # Define Hessian
-        if callable(hess):
-            self.H = hess(self.x, self.v)
-            self.H_updated = True
-            self.nhev += 1
-
-            if sps.issparse(self.H):
-                def hess_wrapped(x, v):
-                    self.nhev += 1
-                    return sps.csr_matrix(hess(x, v))
-                self.H = sps.csr_matrix(self.H)
-
-            elif isinstance(self.H, LinearOperator):
-                def hess_wrapped(x, v):
-                    self.nhev += 1
-                    return hess(x, v)
-
-            else:
-                def hess_wrapped(x, v):
-                    self.nhev += 1
-                    return np.atleast_2d(np.asarray(hess(x, v)))
-                self.H = np.atleast_2d(np.asarray(self.H))
-
-            def update_hess():
-                self.H = hess_wrapped(self.x, self.v)
-        elif hess in FD_METHODS:
-            def jac_dot_v(x, v):
-                return jac_wrapped(x).T.dot(v)
-
-            def update_hess():
-                self._update_jac()
-                self.H = approx_derivative(jac_dot_v, self.x,
-                                           f0=self.J.T.dot(self.v),
-                                           args=(self.v,),
-                                           **finite_diff_options)
-            update_hess()
-            self.H_updated = True
-        elif isinstance(hess, HessianUpdateStrategy):
-            self.H = hess
-            self.H.initialize(self.n, 'hess')
-            self.H_updated = True
-            self.x_prev = None
-            self.J_prev = None
-
-            def update_hess():
-                self._update_jac()
-                # When v is updated before x was updated, then x_prev and
-                # J_prev are None and we need this check.
-                if self.x_prev is not None and self.J_prev is not None:
-                    delta_x = self.x - self.x_prev
-                    delta_g = self.J.T.dot(self.v) - self.J_prev.T.dot(self.v)
-                    self.H.update(delta_x, delta_g)
-
-        self._update_hess_impl = update_hess
-
-        if isinstance(hess, HessianUpdateStrategy):
-            def update_x(x):
-                self._update_jac()
-                self.x_prev = self.x
-                self.J_prev = self.J
-                _x = atleast_nd(x, ndim=1, xp=self.xp)
-                self.x = self.xp.astype(_x, self.x_dtype)
-                self.f_updated = False
-                self.J_updated = False
-                self.H_updated = False
-                self._update_hess()
-        else:
-            def update_x(x):
-                _x = atleast_nd(x, ndim=1, xp=self.xp)
-                self.x = self.xp.astype(_x, self.x_dtype)
-                self.f_updated = False
-                self.J_updated = False
-                self.H_updated = False
-
-        self._update_x_impl = update_x
-
-    def _update_v(self, v):
-        if not np.array_equal(v, self.v):
-            self.v = v
-            self.H_updated = False
-
-    def _update_x(self, x):
-        if not np.array_equal(x, self.x):
-            self._update_x_impl(x)
-
-    def _update_fun(self):
-        if not self.f_updated:
-            self._update_fun_impl()
-            self.f_updated = True
-
-    def _update_jac(self):
-        if not self.J_updated:
-            self._update_jac_impl()
-            self.J_updated = True
-
-    def _update_hess(self):
-        if not self.H_updated:
-            self._update_hess_impl()
-            self.H_updated = True
-
-    def fun(self, x):
-        self._update_x(x)
-        self._update_fun()
-        return self.f
-
-    def jac(self, x):
-        self._update_x(x)
-        self._update_jac()
-        return self.J
-
-    def hess(self, x, v):
-        # v should be updated before x.
-        self._update_v(v)
-        self._update_x(x)
-        self._update_hess()
-        return self.H
-
-
-class LinearVectorFunction:
-    """Linear vector function and its derivatives.
-
-    Defines a linear function F = A x, where x is N-D vector and
-    A is m-by-n matrix. The Jacobian is constant and equals to A. The Hessian
-    is identically zero and it is returned as a csr matrix.
-    """
-    def __init__(self, A, x0, sparse_jacobian):
-        if sparse_jacobian or sparse_jacobian is None and sps.issparse(A):
-            self.J = sps.csr_matrix(A)
-            self.sparse_jacobian = True
-        elif sps.issparse(A):
-            self.J = A.toarray()
-            self.sparse_jacobian = False
-        else:
-            # np.asarray makes sure A is ndarray and not matrix
-            self.J = np.atleast_2d(np.asarray(A))
-            self.sparse_jacobian = False
-
-        self.m, self.n = self.J.shape
-
-        self.xp = xp = array_namespace(x0)
-        _x = atleast_nd(x0, ndim=1, xp=xp)
-        _dtype = xp.float64
-        if xp.isdtype(_x.dtype, "real floating"):
-            _dtype = _x.dtype
-
-        # promotes to floating
-        self.x = xp.astype(_x, _dtype)
-        self.x_dtype = _dtype
-
-        self.f = self.J.dot(self.x)
-        self.f_updated = True
-
-        self.v = np.zeros(self.m, dtype=float)
-        self.H = sps.csr_matrix((self.n, self.n))
-
-    def _update_x(self, x):
-        if not np.array_equal(x, self.x):
-            _x = atleast_nd(x, ndim=1, xp=self.xp)
-            self.x = self.xp.astype(_x, self.x_dtype)
-            self.f_updated = False
-
-    def fun(self, x):
-        self._update_x(x)
-        if not self.f_updated:
-            self.f = self.J.dot(x)
-            self.f_updated = True
-        return self.f
-
-    def jac(self, x):
-        self._update_x(x)
-        return self.J
-
-    def hess(self, x, v):
-        self._update_x(x)
-        self.v = v
-        return self.H
-
-
-class IdentityVectorFunction(LinearVectorFunction):
-    """Identity vector function and its derivatives.
-
-    The Jacobian is the identity matrix, returned as a dense array when
-    `sparse_jacobian=False` and as a csr matrix otherwise. The Hessian is
-    identically zero and it is returned as a csr matrix.
-    """
-    def __init__(self, x0, sparse_jacobian):
-        n = len(x0)
-        if sparse_jacobian or sparse_jacobian is None:
-            A = sps.eye(n, format='csr')
-            sparse_jacobian = True
-        else:
-            A = np.eye(n)
-            sparse_jacobian = False
-        super().__init__(A, x0, sparse_jacobian)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_differentialevolution.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_differentialevolution.py
deleted file mode 100644
index 815d27afd072cd7a114dbc8bb9447ffbc09285f4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_differentialevolution.py
+++ /dev/null
@@ -1,1951 +0,0 @@
-"""
-differential_evolution: The differential evolution global optimization algorithm
-Added by Andrew Nelson 2014
-"""
-import warnings
-
-import numpy as np
-from scipy.optimize import OptimizeResult, minimize
-from scipy.optimize._optimize import _status_message, _wrap_callback
-from scipy._lib._util import (check_random_state, MapWrapper, _FunctionWrapper,
-                              rng_integers)
-
-from scipy.optimize._constraints import (Bounds, new_bounds_to_old,
-                                         NonlinearConstraint, LinearConstraint)
-from scipy.sparse import issparse
-
-__all__ = ['differential_evolution']
-
-
-_MACHEPS = np.finfo(np.float64).eps
-
-
-def differential_evolution(func, bounds, args=(), strategy='best1bin',
-                           maxiter=1000, popsize=15, tol=0.01,
-                           mutation=(0.5, 1), recombination=0.7, seed=None,
-                           callback=None, disp=False, polish=True,
-                           init='latinhypercube', atol=0, updating='immediate',
-                           workers=1, constraints=(), x0=None, *,
-                           integrality=None, vectorized=False):
-    """Finds the global minimum of a multivariate function.
-
-    The differential evolution method [1]_ is stochastic in nature. It does
-    not use gradient methods to find the minimum, and can search large areas
-    of candidate space, but often requires larger numbers of function
-    evaluations than conventional gradient-based techniques.
-
-    The algorithm is due to Storn and Price [2]_.
-
-    Parameters
-    ----------
-    func : callable
-        The objective function to be minimized. Must be in the form
-        ``f(x, *args)``, where ``x`` is the argument in the form of a 1-D array
-        and ``args`` is a tuple of any additional fixed parameters needed to
-        completely specify the function. The number of parameters, N, is equal
-        to ``len(x)``.
-    bounds : sequence or `Bounds`
-        Bounds for variables. There are two ways to specify the bounds:
-
-            1. Instance of `Bounds` class.
-            2. ``(min, max)`` pairs for each element in ``x``, defining the
-               finite lower and upper bounds for the optimizing argument of
-               `func`.
-
-        The total number of bounds is used to determine the number of
-        parameters, N. If there are parameters whose bounds are equal the total
-        number of free parameters is ``N - N_equal``.
-
-    args : tuple, optional
-        Any additional fixed parameters needed to
-        completely specify the objective function.
-    strategy : {str, callable}, optional
-        The differential evolution strategy to use. Should be one of:
-
-            - 'best1bin'
-            - 'best1exp'
-            - 'rand1bin'
-            - 'rand1exp'
-            - 'rand2bin'
-            - 'rand2exp'
-            - 'randtobest1bin'
-            - 'randtobest1exp'
-            - 'currenttobest1bin'
-            - 'currenttobest1exp'
-            - 'best2exp'
-            - 'best2bin'
-
-        The default is 'best1bin'. Strategies that may be implemented are
-        outlined in 'Notes'.
-        Alternatively the differential evolution strategy can be customized by
-        providing a callable that constructs a trial vector. The callable must
-        have the form ``strategy(candidate: int, population: np.ndarray, rng=None)``,
-        where ``candidate`` is an integer specifying which entry of the
-        population is being evolved, ``population`` is an array of shape
-        ``(S, N)`` containing all the population members (where S is the
-        total population size), and ``rng`` is the random number generator
-        being used within the solver.
-        ``candidate`` will be in the range ``[0, S)``.
-        ``strategy`` must return a trial vector with shape `(N,)`. The
-        fitness of this trial vector is compared against the fitness of
-        ``population[candidate]``.
-
-        .. versionchanged:: 1.12.0
-            Customization of evolution strategy via a callable.
-
-    maxiter : int, optional
-        The maximum number of generations over which the entire population is
-        evolved. The maximum number of function evaluations (with no polishing)
-        is: ``(maxiter + 1) * popsize * (N - N_equal)``
-    popsize : int, optional
-        A multiplier for setting the total population size. The population has
-        ``popsize * (N - N_equal)`` individuals. This keyword is overridden if
-        an initial population is supplied via the `init` keyword. When using
-        ``init='sobol'`` the population size is calculated as the next power
-        of 2 after ``popsize * (N - N_equal)``.
-    tol : float, optional
-        Relative tolerance for convergence, the solving stops when
-        ``np.std(pop) <= atol + tol * np.abs(np.mean(population_energies))``,
-        where and `atol` and `tol` are the absolute and relative tolerance
-        respectively.
-    mutation : float or tuple(float, float), optional
-        The mutation constant. In the literature this is also known as
-        differential weight, being denoted by F.
-        If specified as a float it should be in the range [0, 2].
-        If specified as a tuple ``(min, max)`` dithering is employed. Dithering
-        randomly changes the mutation constant on a generation by generation
-        basis. The mutation constant for that generation is taken from
-        ``U[min, max)``. Dithering can help speed convergence significantly.
-        Increasing the mutation constant increases the search radius, but will
-        slow down convergence.
-    recombination : float, optional
-        The recombination constant, should be in the range [0, 1]. In the
-        literature this is also known as the crossover probability, being
-        denoted by CR. Increasing this value allows a larger number of mutants
-        to progress into the next generation, but at the risk of population
-        stability.
-    seed : {None, int, `numpy.random.Generator`, `numpy.random.RandomState`}, optional
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-        Specify `seed` for repeatable minimizations.
-    disp : bool, optional
-        Prints the evaluated `func` at every iteration.
-    callback : callable, optional
-        A callable called after each iteration. Has the signature:
-
-            ``callback(intermediate_result: OptimizeResult)``
-
-        where ``intermediate_result`` is a keyword parameter containing an
-        `OptimizeResult` with attributes ``x`` and ``fun``, the best solution
-        found so far and the objective function. Note that the name
-        of the parameter must be ``intermediate_result`` for the callback
-        to be passed an `OptimizeResult`.
-
-        The callback also supports a signature like:
-
-            ``callback(x, convergence: float=val)``
-
-        ``val`` represents the fractional value of the population convergence.
-        When ``val`` is greater than ``1.0``, the function halts.
-
-        Introspection is used to determine which of the signatures is invoked.
-
-        Global minimization will halt if the callback raises ``StopIteration``
-        or returns ``True``; any polishing is still carried out.
-
-        .. versionchanged:: 1.12.0
-            callback accepts the ``intermediate_result`` keyword.
-
-    polish : bool, optional
-        If True (default), then `scipy.optimize.minimize` with the `L-BFGS-B`
-        method is used to polish the best population member at the end, which
-        can improve the minimization slightly. If a constrained problem is
-        being studied then the `trust-constr` method is used instead. For large
-        problems with many constraints, polishing can take a long time due to
-        the Jacobian computations.
-    init : str or array-like, optional
-        Specify which type of population initialization is performed. Should be
-        one of:
-
-            - 'latinhypercube'
-            - 'sobol'
-            - 'halton'
-            - 'random'
-            - array specifying the initial population. The array should have
-              shape ``(S, N)``, where S is the total population size and N is
-              the number of parameters.
-              `init` is clipped to `bounds` before use.
-
-        The default is 'latinhypercube'. Latin Hypercube sampling tries to
-        maximize coverage of the available parameter space.
-
-        'sobol' and 'halton' are superior alternatives and maximize even more
-        the parameter space. 'sobol' will enforce an initial population
-        size which is calculated as the next power of 2 after
-        ``popsize * (N - N_equal)``. 'halton' has no requirements but is a bit
-        less efficient. See `scipy.stats.qmc` for more details.
-
-        'random' initializes the population randomly - this has the drawback
-        that clustering can occur, preventing the whole of parameter space
-        being covered. Use of an array to specify a population could be used,
-        for example, to create a tight bunch of initial guesses in an location
-        where the solution is known to exist, thereby reducing time for
-        convergence.
-    atol : float, optional
-        Absolute tolerance for convergence, the solving stops when
-        ``np.std(pop) <= atol + tol * np.abs(np.mean(population_energies))``,
-        where and `atol` and `tol` are the absolute and relative tolerance
-        respectively.
-    updating : {'immediate', 'deferred'}, optional
-        If ``'immediate'``, the best solution vector is continuously updated
-        within a single generation [4]_. This can lead to faster convergence as
-        trial vectors can take advantage of continuous improvements in the best
-        solution.
-        With ``'deferred'``, the best solution vector is updated once per
-        generation. Only ``'deferred'`` is compatible with parallelization or
-        vectorization, and the `workers` and `vectorized` keywords can
-        over-ride this option.
-
-        .. versionadded:: 1.2.0
-
-    workers : int or map-like callable, optional
-        If `workers` is an int the population is subdivided into `workers`
-        sections and evaluated in parallel
-        (uses `multiprocessing.Pool `).
-        Supply -1 to use all available CPU cores.
-        Alternatively supply a map-like callable, such as
-        `multiprocessing.Pool.map` for evaluating the population in parallel.
-        This evaluation is carried out as ``workers(func, iterable)``.
-        This option will override the `updating` keyword to
-        ``updating='deferred'`` if ``workers != 1``.
-        This option overrides the `vectorized` keyword if ``workers != 1``.
-        Requires that `func` be pickleable.
-
-        .. versionadded:: 1.2.0
-
-    constraints : {NonLinearConstraint, LinearConstraint, Bounds}
-        Constraints on the solver, over and above those applied by the `bounds`
-        kwd. Uses the approach by Lampinen [5]_.
-
-        .. versionadded:: 1.4.0
-
-    x0 : None or array-like, optional
-        Provides an initial guess to the minimization. Once the population has
-        been initialized this vector replaces the first (best) member. This
-        replacement is done even if `init` is given an initial population.
-        ``x0.shape == (N,)``.
-
-        .. versionadded:: 1.7.0
-
-    integrality : 1-D array, optional
-        For each decision variable, a boolean value indicating whether the
-        decision variable is constrained to integer values. The array is
-        broadcast to ``(N,)``.
-        If any decision variables are constrained to be integral, they will not
-        be changed during polishing.
-        Only integer values lying between the lower and upper bounds are used.
-        If there are no integer values lying between the bounds then a
-        `ValueError` is raised.
-
-        .. versionadded:: 1.9.0
-
-    vectorized : bool, optional
-        If ``vectorized is True``, `func` is sent an `x` array with
-        ``x.shape == (N, S)``, and is expected to return an array of shape
-        ``(S,)``, where `S` is the number of solution vectors to be calculated.
-        If constraints are applied, each of the functions used to construct
-        a `Constraint` object should accept an `x` array with
-        ``x.shape == (N, S)``, and return an array of shape ``(M, S)``, where
-        `M` is the number of constraint components.
-        This option is an alternative to the parallelization offered by
-        `workers`, and may help in optimization speed by reducing interpreter
-        overhead from multiple function calls. This keyword is ignored if
-        ``workers != 1``.
-        This option will override the `updating` keyword to
-        ``updating='deferred'``.
-        See the notes section for further discussion on when to use
-        ``'vectorized'``, and when to use ``'workers'``.
-
-        .. versionadded:: 1.9.0
-
-    Returns
-    -------
-    res : OptimizeResult
-        The optimization result represented as a `OptimizeResult` object.
-        Important attributes are: ``x`` the solution array, ``success`` a
-        Boolean flag indicating if the optimizer exited successfully,
-        ``message`` which describes the cause of the termination,
-        ``population`` the solution vectors present in the population, and
-        ``population_energies`` the value of the objective function for each
-        entry in ``population``.
-        See `OptimizeResult` for a description of other attributes. If `polish`
-        was employed, and a lower minimum was obtained by the polishing, then
-        OptimizeResult also contains the ``jac`` attribute.
-        If the eventual solution does not satisfy the applied constraints
-        ``success`` will be `False`.
-
-    Notes
-    -----
-    Differential evolution is a stochastic population based method that is
-    useful for global optimization problems. At each pass through the
-    population the algorithm mutates each candidate solution by mixing with
-    other candidate solutions to create a trial candidate. There are several
-    strategies [3]_ for creating trial candidates, which suit some problems
-    more than others. The 'best1bin' strategy is a good starting point for
-    many systems. In this strategy two members of the population are randomly
-    chosen. Their difference is used to mutate the best member (the 'best' in
-    'best1bin'), :math:`x_0`, so far:
-
-    .. math::
-
-        b' = x_0 + mutation * (x_{r_0} - x_{r_1})
-
-    A trial vector is then constructed. Starting with a randomly chosen ith
-    parameter the trial is sequentially filled (in modulo) with parameters
-    from ``b'`` or the original candidate. The choice of whether to use ``b'``
-    or the original candidate is made with a binomial distribution (the 'bin'
-    in 'best1bin') - a random number in [0, 1) is generated. If this number is
-    less than the `recombination` constant then the parameter is loaded from
-    ``b'``, otherwise it is loaded from the original candidate. The final
-    parameter is always loaded from ``b'``. Once the trial candidate is built
-    its fitness is assessed. If the trial is better than the original candidate
-    then it takes its place. If it is also better than the best overall
-    candidate it also replaces that.
-
-    The other strategies available are outlined in Qiang and
-    Mitchell (2014) [3]_.
-
-    .. math::
-            rand1* : b' = x_{r_0} + mutation*(x_{r_1} - x_{r_2})
-
-            rand2* : b' = x_{r_0} + mutation*(x_{r_1} + x_{r_2}
-                                                - x_{r_3} - x_{r_4})
-
-            best1* : b' = x_0 + mutation*(x_{r_0} - x_{r_1})
-
-            best2* : b' = x_0 + mutation*(x_{r_0} + x_{r_1}
-                                            - x_{r_2} - x_{r_3})
-
-            currenttobest1* : b' = x_i + mutation*(x_0 - x_i
-                                                     + x_{r_0} - x_{r_1})
-
-            randtobest1* : b' = x_{r_0} + mutation*(x_0 - x_{r_0}
-                                                      + x_{r_1} - x_{r_2})
-
-    where the integers :math:`r_0, r_1, r_2, r_3, r_4` are chosen randomly
-    from the interval [0, NP) with `NP` being the total population size and
-    the original candidate having index `i`. The user can fully customize the
-    generation of the trial candidates by supplying a callable to ``strategy``.
-
-    To improve your chances of finding a global minimum use higher `popsize`
-    values, with higher `mutation` and (dithering), but lower `recombination`
-    values. This has the effect of widening the search radius, but slowing
-    convergence.
-
-    By default the best solution vector is updated continuously within a single
-    iteration (``updating='immediate'``). This is a modification [4]_ of the
-    original differential evolution algorithm which can lead to faster
-    convergence as trial vectors can immediately benefit from improved
-    solutions. To use the original Storn and Price behaviour, updating the best
-    solution once per iteration, set ``updating='deferred'``.
-    The ``'deferred'`` approach is compatible with both parallelization and
-    vectorization (``'workers'`` and ``'vectorized'`` keywords). These may
-    improve minimization speed by using computer resources more efficiently.
-    The ``'workers'`` distribute calculations over multiple processors. By
-    default the Python `multiprocessing` module is used, but other approaches
-    are also possible, such as the Message Passing Interface (MPI) used on
-    clusters [6]_ [7]_. The overhead from these approaches (creating new
-    Processes, etc) may be significant, meaning that computational speed
-    doesn't necessarily scale with the number of processors used.
-    Parallelization is best suited to computationally expensive objective
-    functions. If the objective function is less expensive, then
-    ``'vectorized'`` may aid by only calling the objective function once per
-    iteration, rather than multiple times for all the population members; the
-    interpreter overhead is reduced.
-
-    .. versionadded:: 0.15.0
-
-    References
-    ----------
-    .. [1] Differential evolution, Wikipedia,
-           http://en.wikipedia.org/wiki/Differential_evolution
-    .. [2] Storn, R and Price, K, Differential Evolution - a Simple and
-           Efficient Heuristic for Global Optimization over Continuous Spaces,
-           Journal of Global Optimization, 1997, 11, 341 - 359.
-    .. [3] Qiang, J., Mitchell, C., A Unified Differential Evolution Algorithm
-            for Global Optimization, 2014, https://www.osti.gov/servlets/purl/1163659
-    .. [4] Wormington, M., Panaccione, C., Matney, K. M., Bowen, D. K., -
-           Characterization of structures from X-ray scattering data using
-           genetic algorithms, Phil. Trans. R. Soc. Lond. A, 1999, 357,
-           2827-2848
-    .. [5] Lampinen, J., A constraint handling approach for the differential
-           evolution algorithm. Proceedings of the 2002 Congress on
-           Evolutionary Computation. CEC'02 (Cat. No. 02TH8600). Vol. 2. IEEE,
-           2002.
-    .. [6] https://mpi4py.readthedocs.io/en/stable/
-    .. [7] https://schwimmbad.readthedocs.io/en/latest/
- 
-
-    Examples
-    --------
-    Let us consider the problem of minimizing the Rosenbrock function. This
-    function is implemented in `rosen` in `scipy.optimize`.
-
-    >>> import numpy as np
-    >>> from scipy.optimize import rosen, differential_evolution
-    >>> bounds = [(0,2), (0, 2), (0, 2), (0, 2), (0, 2)]
-    >>> result = differential_evolution(rosen, bounds)
-    >>> result.x, result.fun
-    (array([1., 1., 1., 1., 1.]), 1.9216496320061384e-19)
-
-    Now repeat, but with parallelization.
-
-    >>> result = differential_evolution(rosen, bounds, updating='deferred',
-    ...                                 workers=2)
-    >>> result.x, result.fun
-    (array([1., 1., 1., 1., 1.]), 1.9216496320061384e-19)
-
-    Let's do a constrained minimization.
-
-    >>> from scipy.optimize import LinearConstraint, Bounds
-
-    We add the constraint that the sum of ``x[0]`` and ``x[1]`` must be less
-    than or equal to 1.9.  This is a linear constraint, which may be written
-    ``A @ x <= 1.9``, where ``A = array([[1, 1]])``.  This can be encoded as
-    a `LinearConstraint` instance:
-
-    >>> lc = LinearConstraint([[1, 1]], -np.inf, 1.9)
-
-    Specify limits using a `Bounds` object.
-
-    >>> bounds = Bounds([0., 0.], [2., 2.])
-    >>> result = differential_evolution(rosen, bounds, constraints=lc,
-    ...                                 seed=1)
-    >>> result.x, result.fun
-    (array([0.96632622, 0.93367155]), 0.0011352416852625719)
-
-    Next find the minimum of the Ackley function
-    (https://en.wikipedia.org/wiki/Test_functions_for_optimization).
-
-    >>> def ackley(x):
-    ...     arg1 = -0.2 * np.sqrt(0.5 * (x[0] ** 2 + x[1] ** 2))
-    ...     arg2 = 0.5 * (np.cos(2. * np.pi * x[0]) + np.cos(2. * np.pi * x[1]))
-    ...     return -20. * np.exp(arg1) - np.exp(arg2) + 20. + np.e
-    >>> bounds = [(-5, 5), (-5, 5)]
-    >>> result = differential_evolution(ackley, bounds, seed=1)
-    >>> result.x, result.fun
-    (array([0., 0.]), 4.440892098500626e-16)
-
-    The Ackley function is written in a vectorized manner, so the
-    ``'vectorized'`` keyword can be employed. Note the reduced number of
-    function evaluations.
-
-    >>> result = differential_evolution(
-    ...     ackley, bounds, vectorized=True, updating='deferred', seed=1
-    ... )
-    >>> result.x, result.fun
-    (array([0., 0.]), 4.440892098500626e-16)
-
-    The following custom strategy function mimics 'best1bin':
-
-    >>> def custom_strategy_fn(candidate, population, rng=None):
-    ...     parameter_count = population.shape(-1)
-    ...     mutation, recombination = 0.7, 0.9
-    ...     trial = np.copy(population[candidate])
-    ...     fill_point = rng.choice(parameter_count)
-    ...
-    ...     pool = np.arange(len(population))
-    ...     rng.shuffle(pool)
-    ...
-    ...     # two unique random numbers that aren't the same, and
-    ...     # aren't equal to candidate.
-    ...     idxs = []
-    ...     while len(idxs) < 2 and len(pool) > 0:
-    ...         idx = pool[0]
-    ...         pool = pool[1:]
-    ...         if idx != candidate:
-    ...             idxs.append(idx)
-    ...
-    ...     r0, r1 = idxs[:2]
-    ...
-    ...     bprime = (population[0] + mutation *
-    ...               (population[r0] - population[r1]))
-    ...
-    ...     crossovers = rng.uniform(size=parameter_count)
-    ...     crossovers = crossovers < recombination
-    ...     crossovers[fill_point] = True
-    ...     trial = np.where(crossovers, bprime, trial)
-    ...     return trial
-
-    """
-
-    # using a context manager means that any created Pool objects are
-    # cleared up.
-    with DifferentialEvolutionSolver(func, bounds, args=args,
-                                     strategy=strategy,
-                                     maxiter=maxiter,
-                                     popsize=popsize, tol=tol,
-                                     mutation=mutation,
-                                     recombination=recombination,
-                                     seed=seed, polish=polish,
-                                     callback=callback,
-                                     disp=disp, init=init, atol=atol,
-                                     updating=updating,
-                                     workers=workers,
-                                     constraints=constraints,
-                                     x0=x0,
-                                     integrality=integrality,
-                                     vectorized=vectorized) as solver:
-        ret = solver.solve()
-
-    return ret
-
-
-class DifferentialEvolutionSolver:
-
-    """This class implements the differential evolution solver
-
-    Parameters
-    ----------
-    func : callable
-        The objective function to be minimized. Must be in the form
-        ``f(x, *args)``, where ``x`` is the argument in the form of a 1-D array
-        and ``args`` is a tuple of any additional fixed parameters needed to
-        completely specify the function. The number of parameters, N, is equal
-        to ``len(x)``.
-    bounds : sequence or `Bounds`
-        Bounds for variables. There are two ways to specify the bounds:
-
-            1. Instance of `Bounds` class.
-            2. ``(min, max)`` pairs for each element in ``x``, defining the
-               finite lower and upper bounds for the optimizing argument of
-               `func`.
-
-        The total number of bounds is used to determine the number of
-        parameters, N. If there are parameters whose bounds are equal the total
-        number of free parameters is ``N - N_equal``.
-    args : tuple, optional
-        Any additional fixed parameters needed to
-        completely specify the objective function.
-    strategy : {str, callable}, optional
-        The differential evolution strategy to use. Should be one of:
-
-            - 'best1bin'
-            - 'best1exp'
-            - 'rand1bin'
-            - 'rand1exp'
-            - 'rand2bin'
-            - 'rand2exp'
-            - 'randtobest1bin'
-            - 'randtobest1exp'
-            - 'currenttobest1bin'
-            - 'currenttobest1exp'
-            - 'best2exp'
-            - 'best2bin'
-
-        The default is 'best1bin'. Strategies that may be
-        implemented are outlined in 'Notes'.
-
-        Alternatively the differential evolution strategy can be customized
-        by providing a callable that constructs a trial vector. The callable
-        must have the form
-        ``strategy(candidate: int, population: np.ndarray, rng=None)``,
-        where ``candidate`` is an integer specifying which entry of the
-        population is being evolved, ``population`` is an array of shape
-        ``(S, N)`` containing all the population members (where S is the
-        total population size), and ``rng`` is the random number generator
-        being used within the solver.
-        ``candidate`` will be in the range ``[0, S)``.
-        ``strategy`` must return a trial vector with shape `(N,)`. The
-        fitness of this trial vector is compared against the fitness of
-        ``population[candidate]``.
-    maxiter : int, optional
-        The maximum number of generations over which the entire population is
-        evolved. The maximum number of function evaluations (with no polishing)
-        is: ``(maxiter + 1) * popsize * (N - N_equal)``
-    popsize : int, optional
-        A multiplier for setting the total population size. The population has
-        ``popsize * (N - N_equal)`` individuals. This keyword is overridden if
-        an initial population is supplied via the `init` keyword. When using
-        ``init='sobol'`` the population size is calculated as the next power
-        of 2 after ``popsize * (N - N_equal)``.
-    tol : float, optional
-        Relative tolerance for convergence, the solving stops when
-        ``np.std(pop) <= atol + tol * np.abs(np.mean(population_energies))``,
-        where and `atol` and `tol` are the absolute and relative tolerance
-        respectively.
-    mutation : float or tuple(float, float), optional
-        The mutation constant. In the literature this is also known as
-        differential weight, being denoted by F.
-        If specified as a float it should be in the range [0, 2].
-        If specified as a tuple ``(min, max)`` dithering is employed. Dithering
-        randomly changes the mutation constant on a generation by generation
-        basis. The mutation constant for that generation is taken from
-        U[min, max). Dithering can help speed convergence significantly.
-        Increasing the mutation constant increases the search radius, but will
-        slow down convergence.
-    recombination : float, optional
-        The recombination constant, should be in the range [0, 1]. In the
-        literature this is also known as the crossover probability, being
-        denoted by CR. Increasing this value allows a larger number of mutants
-        to progress into the next generation, but at the risk of population
-        stability.
-    seed : {None, int, `numpy.random.Generator`, `numpy.random.RandomState`}, optional
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-        Specify `seed` for repeatable minimizations.
-    disp : bool, optional
-        Prints the evaluated `func` at every iteration.
-    callback : callable, optional
-        A callable called after each iteration. Has the signature:
-
-            ``callback(intermediate_result: OptimizeResult)``
-
-        where ``intermediate_result`` is a keyword parameter containing an
-        `OptimizeResult` with attributes ``x`` and ``fun``, the best solution
-        found so far and the objective function. Note that the name
-        of the parameter must be ``intermediate_result`` for the callback
-        to be passed an `OptimizeResult`.
-
-        The callback also supports a signature like:
-
-            ``callback(x, convergence: float=val)``
-
-        ``val`` represents the fractional value of the population convergence.
-         When ``val`` is greater than ``1.0``, the function halts.
-
-        Introspection is used to determine which of the signatures is invoked.
-
-        Global minimization will halt if the callback raises ``StopIteration``
-        or returns ``True``; any polishing is still carried out.
-
-        .. versionchanged:: 1.12.0
-            callback accepts the ``intermediate_result`` keyword.
-
-    polish : bool, optional
-        If True (default), then `scipy.optimize.minimize` with the `L-BFGS-B`
-        method is used to polish the best population member at the end, which
-        can improve the minimization slightly. If a constrained problem is
-        being studied then the `trust-constr` method is used instead. For large
-        problems with many constraints, polishing can take a long time due to
-        the Jacobian computations.
-    maxfun : int, optional
-        Set the maximum number of function evaluations. However, it probably
-        makes more sense to set `maxiter` instead.
-    init : str or array-like, optional
-        Specify which type of population initialization is performed. Should be
-        one of:
-
-            - 'latinhypercube'
-            - 'sobol'
-            - 'halton'
-            - 'random'
-            - array specifying the initial population. The array should have
-              shape ``(S, N)``, where S is the total population size and
-              N is the number of parameters.
-              `init` is clipped to `bounds` before use.
-
-        The default is 'latinhypercube'. Latin Hypercube sampling tries to
-        maximize coverage of the available parameter space.
-
-        'sobol' and 'halton' are superior alternatives and maximize even more
-        the parameter space. 'sobol' will enforce an initial population
-        size which is calculated as the next power of 2 after
-        ``popsize * (N - N_equal)``. 'halton' has no requirements but is a bit
-        less efficient. See `scipy.stats.qmc` for more details.
-
-        'random' initializes the population randomly - this has the drawback
-        that clustering can occur, preventing the whole of parameter space
-        being covered. Use of an array to specify a population could be used,
-        for example, to create a tight bunch of initial guesses in an location
-        where the solution is known to exist, thereby reducing time for
-        convergence.
-    atol : float, optional
-        Absolute tolerance for convergence, the solving stops when
-        ``np.std(pop) <= atol + tol * np.abs(np.mean(population_energies))``,
-        where and `atol` and `tol` are the absolute and relative tolerance
-        respectively.
-    updating : {'immediate', 'deferred'}, optional
-        If ``'immediate'``, the best solution vector is continuously updated
-        within a single generation [4]_. This can lead to faster convergence as
-        trial vectors can take advantage of continuous improvements in the best
-        solution.
-        With ``'deferred'``, the best solution vector is updated once per
-        generation. Only ``'deferred'`` is compatible with parallelization or
-        vectorization, and the `workers` and `vectorized` keywords can
-        over-ride this option.
-    workers : int or map-like callable, optional
-        If `workers` is an int the population is subdivided into `workers`
-        sections and evaluated in parallel
-        (uses `multiprocessing.Pool `).
-        Supply `-1` to use all cores available to the Process.
-        Alternatively supply a map-like callable, such as
-        `multiprocessing.Pool.map` for evaluating the population in parallel.
-        This evaluation is carried out as ``workers(func, iterable)``.
-        This option will override the `updating` keyword to
-        `updating='deferred'` if `workers != 1`.
-        Requires that `func` be pickleable.
-    constraints : {NonLinearConstraint, LinearConstraint, Bounds}
-        Constraints on the solver, over and above those applied by the `bounds`
-        kwd. Uses the approach by Lampinen.
-    x0 : None or array-like, optional
-        Provides an initial guess to the minimization. Once the population has
-        been initialized this vector replaces the first (best) member. This
-        replacement is done even if `init` is given an initial population.
-        ``x0.shape == (N,)``.
-    integrality : 1-D array, optional
-        For each decision variable, a boolean value indicating whether the
-        decision variable is constrained to integer values. The array is
-        broadcast to ``(N,)``.
-        If any decision variables are constrained to be integral, they will not
-        be changed during polishing.
-        Only integer values lying between the lower and upper bounds are used.
-        If there are no integer values lying between the bounds then a
-        `ValueError` is raised.
-    vectorized : bool, optional
-        If ``vectorized is True``, `func` is sent an `x` array with
-        ``x.shape == (N, S)``, and is expected to return an array of shape
-        ``(S,)``, where `S` is the number of solution vectors to be calculated.
-        If constraints are applied, each of the functions used to construct
-        a `Constraint` object should accept an `x` array with
-        ``x.shape == (N, S)``, and return an array of shape ``(M, S)``, where
-        `M` is the number of constraint components.
-        This option is an alternative to the parallelization offered by
-        `workers`, and may help in optimization speed. This keyword is
-        ignored if ``workers != 1``.
-        This option will override the `updating` keyword to
-        ``updating='deferred'``.
-    """
-
-    # Dispatch of mutation strategy method (binomial or exponential).
-    _binomial = {'best1bin': '_best1',
-                 'randtobest1bin': '_randtobest1',
-                 'currenttobest1bin': '_currenttobest1',
-                 'best2bin': '_best2',
-                 'rand2bin': '_rand2',
-                 'rand1bin': '_rand1'}
-    _exponential = {'best1exp': '_best1',
-                    'rand1exp': '_rand1',
-                    'randtobest1exp': '_randtobest1',
-                    'currenttobest1exp': '_currenttobest1',
-                    'best2exp': '_best2',
-                    'rand2exp': '_rand2'}
-
-    __init_error_msg = ("The population initialization method must be one of "
-                        "'latinhypercube' or 'random', or an array of shape "
-                        "(S, N) where N is the number of parameters and S>5")
-
-    def __init__(self, func, bounds, args=(),
-                 strategy='best1bin', maxiter=1000, popsize=15,
-                 tol=0.01, mutation=(0.5, 1), recombination=0.7, seed=None,
-                 maxfun=np.inf, callback=None, disp=False, polish=True,
-                 init='latinhypercube', atol=0, updating='immediate',
-                 workers=1, constraints=(), x0=None, *, integrality=None,
-                 vectorized=False):
-
-        if callable(strategy):
-            # a callable strategy is going to be stored in self.strategy anyway
-            pass
-        elif strategy in self._binomial:
-            self.mutation_func = getattr(self, self._binomial[strategy])
-        elif strategy in self._exponential:
-            self.mutation_func = getattr(self, self._exponential[strategy])
-        else:
-            raise ValueError("Please select a valid mutation strategy")
-        self.strategy = strategy
-
-        self.callback = _wrap_callback(callback, "differential_evolution")
-        self.polish = polish
-
-        # set the updating / parallelisation options
-        if updating in ['immediate', 'deferred']:
-            self._updating = updating
-
-        self.vectorized = vectorized
-
-        # want to use parallelisation, but updating is immediate
-        if workers != 1 and updating == 'immediate':
-            warnings.warn("differential_evolution: the 'workers' keyword has"
-                          " overridden updating='immediate' to"
-                          " updating='deferred'", UserWarning, stacklevel=2)
-            self._updating = 'deferred'
-
-        if vectorized and workers != 1:
-            warnings.warn("differential_evolution: the 'workers' keyword"
-                          " overrides the 'vectorized' keyword", stacklevel=2)
-            self.vectorized = vectorized = False
-
-        if vectorized and updating == 'immediate':
-            warnings.warn("differential_evolution: the 'vectorized' keyword"
-                          " has overridden updating='immediate' to updating"
-                          "='deferred'", UserWarning, stacklevel=2)
-            self._updating = 'deferred'
-
-        # an object with a map method.
-        if vectorized:
-            def maplike_for_vectorized_func(func, x):
-                # send an array (N, S) to the user func,
-                # expect to receive (S,). Transposition is required because
-                # internally the population is held as (S, N)
-                return np.atleast_1d(func(x.T))
-            workers = maplike_for_vectorized_func
-
-        self._mapwrapper = MapWrapper(workers)
-
-        # relative and absolute tolerances for convergence
-        self.tol, self.atol = tol, atol
-
-        # Mutation constant should be in [0, 2). If specified as a sequence
-        # then dithering is performed.
-        self.scale = mutation
-        if (not np.all(np.isfinite(mutation)) or
-                np.any(np.array(mutation) >= 2) or
-                np.any(np.array(mutation) < 0)):
-            raise ValueError('The mutation constant must be a float in '
-                             'U[0, 2), or specified as a tuple(min, max)'
-                             ' where min < max and min, max are in U[0, 2).')
-
-        self.dither = None
-        if hasattr(mutation, '__iter__') and len(mutation) > 1:
-            self.dither = [mutation[0], mutation[1]]
-            self.dither.sort()
-
-        self.cross_over_probability = recombination
-
-        # we create a wrapped function to allow the use of map (and Pool.map
-        # in the future)
-        self.func = _FunctionWrapper(func, args)
-        self.args = args
-
-        # convert tuple of lower and upper bounds to limits
-        # [(low_0, high_0), ..., (low_n, high_n]
-        #     -> [[low_0, ..., low_n], [high_0, ..., high_n]]
-        if isinstance(bounds, Bounds):
-            self.limits = np.array(new_bounds_to_old(bounds.lb,
-                                                     bounds.ub,
-                                                     len(bounds.lb)),
-                                   dtype=float).T
-        else:
-            self.limits = np.array(bounds, dtype='float').T
-
-        if (np.size(self.limits, 0) != 2 or not
-                np.all(np.isfinite(self.limits))):
-            raise ValueError('bounds should be a sequence containing finite '
-                             'real valued (min, max) pairs for each value'
-                             ' in x')
-
-        if maxiter is None:  # the default used to be None
-            maxiter = 1000
-        self.maxiter = maxiter
-        if maxfun is None:  # the default used to be None
-            maxfun = np.inf
-        self.maxfun = maxfun
-
-        # population is scaled to between [0, 1].
-        # We have to scale between parameter <-> population
-        # save these arguments for _scale_parameter and
-        # _unscale_parameter. This is an optimization
-        self.__scale_arg1 = 0.5 * (self.limits[0] + self.limits[1])
-        self.__scale_arg2 = np.fabs(self.limits[0] - self.limits[1])
-        with np.errstate(divide='ignore'):
-            # if lb == ub then the following line will be 1/0, which is why
-            # we ignore the divide by zero warning. The result from 1/0 is
-            # inf, so replace those values by 0.
-            self.__recip_scale_arg2 = 1 / self.__scale_arg2
-            self.__recip_scale_arg2[~np.isfinite(self.__recip_scale_arg2)] = 0
-
-        self.parameter_count = np.size(self.limits, 1)
-
-        self.random_number_generator = check_random_state(seed)
-
-        # Which parameters are going to be integers?
-        if np.any(integrality):
-            # # user has provided a truth value for integer constraints
-            integrality = np.broadcast_to(
-                integrality,
-                self.parameter_count
-            )
-            integrality = np.asarray(integrality, bool)
-            # For integrality parameters change the limits to only allow
-            # integer values lying between the limits.
-            lb, ub = np.copy(self.limits)
-
-            lb = np.ceil(lb)
-            ub = np.floor(ub)
-            if not (lb[integrality] <= ub[integrality]).all():
-                # there's a parameter that doesn't have an integer value
-                # lying between the limits
-                raise ValueError("One of the integrality constraints does not"
-                                 " have any possible integer values between"
-                                 " the lower/upper bounds.")
-            nlb = np.nextafter(lb[integrality] - 0.5, np.inf)
-            nub = np.nextafter(ub[integrality] + 0.5, -np.inf)
-
-            self.integrality = integrality
-            self.limits[0, self.integrality] = nlb
-            self.limits[1, self.integrality] = nub
-        else:
-            self.integrality = False
-
-        # check for equal bounds
-        eb = self.limits[0] == self.limits[1]
-        eb_count = np.count_nonzero(eb)
-
-        # default population initialization is a latin hypercube design, but
-        # there are other population initializations possible.
-        # the minimum is 5 because 'best2bin' requires a population that's at
-        # least 5 long
-        # 202301 - reduced population size to account for parameters with
-        # equal bounds. If there are no varying parameters set N to at least 1
-        self.num_population_members = max(
-            5,
-            popsize * max(1, self.parameter_count - eb_count)
-        )
-        self.population_shape = (self.num_population_members,
-                                 self.parameter_count)
-
-        self._nfev = 0
-        # check first str otherwise will fail to compare str with array
-        if isinstance(init, str):
-            if init == 'latinhypercube':
-                self.init_population_lhs()
-            elif init == 'sobol':
-                # must be Ns = 2**m for Sobol'
-                n_s = int(2 ** np.ceil(np.log2(self.num_population_members)))
-                self.num_population_members = n_s
-                self.population_shape = (self.num_population_members,
-                                         self.parameter_count)
-                self.init_population_qmc(qmc_engine='sobol')
-            elif init == 'halton':
-                self.init_population_qmc(qmc_engine='halton')
-            elif init == 'random':
-                self.init_population_random()
-            else:
-                raise ValueError(self.__init_error_msg)
-        else:
-            self.init_population_array(init)
-
-        if x0 is not None:
-            # scale to within unit interval and
-            # ensure parameters are within bounds.
-            x0_scaled = self._unscale_parameters(np.asarray(x0))
-            if ((x0_scaled > 1.0) | (x0_scaled < 0.0)).any():
-                raise ValueError(
-                    "Some entries in x0 lay outside the specified bounds"
-                )
-            self.population[0] = x0_scaled
-
-        # infrastructure for constraints
-        self.constraints = constraints
-        self._wrapped_constraints = []
-
-        if hasattr(constraints, '__len__'):
-            # sequence of constraints, this will also deal with default
-            # keyword parameter
-            for c in constraints:
-                self._wrapped_constraints.append(
-                    _ConstraintWrapper(c, self.x)
-                )
-        else:
-            self._wrapped_constraints = [
-                _ConstraintWrapper(constraints, self.x)
-            ]
-        self.total_constraints = np.sum(
-            [c.num_constr for c in self._wrapped_constraints]
-        )
-        self.constraint_violation = np.zeros((self.num_population_members, 1))
-        self.feasible = np.ones(self.num_population_members, bool)
-
-        # an array to shuffle when selecting candidates. Create it here
-        # rather than repeatedly creating it in _select_samples.
-        self._random_population_index = np.arange(self.num_population_members)
-        self.disp = disp
-
-    def init_population_lhs(self):
-        """
-        Initializes the population with Latin Hypercube Sampling.
-        Latin Hypercube Sampling ensures that each parameter is uniformly
-        sampled over its range.
-        """
-        rng = self.random_number_generator
-
-        # Each parameter range needs to be sampled uniformly. The scaled
-        # parameter range ([0, 1)) needs to be split into
-        # `self.num_population_members` segments, each of which has the following
-        # size:
-        segsize = 1.0 / self.num_population_members
-
-        # Within each segment we sample from a uniform random distribution.
-        # We need to do this sampling for each parameter.
-        samples = (segsize * rng.uniform(size=self.population_shape)
-
-        # Offset each segment to cover the entire parameter range [0, 1)
-                   + np.linspace(0., 1., self.num_population_members,
-                                 endpoint=False)[:, np.newaxis])
-
-        # Create an array for population of candidate solutions.
-        self.population = np.zeros_like(samples)
-
-        # Initialize population of candidate solutions by permutation of the
-        # random samples.
-        for j in range(self.parameter_count):
-            order = rng.permutation(range(self.num_population_members))
-            self.population[:, j] = samples[order, j]
-
-        # reset population energies
-        self.population_energies = np.full(self.num_population_members,
-                                           np.inf)
-
-        # reset number of function evaluations counter
-        self._nfev = 0
-
-    def init_population_qmc(self, qmc_engine):
-        """Initializes the population with a QMC method.
-
-        QMC methods ensures that each parameter is uniformly
-        sampled over its range.
-
-        Parameters
-        ----------
-        qmc_engine : str
-            The QMC method to use for initialization. Can be one of
-            ``latinhypercube``, ``sobol`` or ``halton``.
-
-        """
-        from scipy.stats import qmc
-
-        rng = self.random_number_generator
-
-        # Create an array for population of candidate solutions.
-        if qmc_engine == 'latinhypercube':
-            sampler = qmc.LatinHypercube(d=self.parameter_count, seed=rng)
-        elif qmc_engine == 'sobol':
-            sampler = qmc.Sobol(d=self.parameter_count, seed=rng)
-        elif qmc_engine == 'halton':
-            sampler = qmc.Halton(d=self.parameter_count, seed=rng)
-        else:
-            raise ValueError(self.__init_error_msg)
-
-        self.population = sampler.random(n=self.num_population_members)
-
-        # reset population energies
-        self.population_energies = np.full(self.num_population_members,
-                                           np.inf)
-
-        # reset number of function evaluations counter
-        self._nfev = 0
-
-    def init_population_random(self):
-        """
-        Initializes the population at random. This type of initialization
-        can possess clustering, Latin Hypercube sampling is generally better.
-        """
-        rng = self.random_number_generator
-        self.population = rng.uniform(size=self.population_shape)
-
-        # reset population energies
-        self.population_energies = np.full(self.num_population_members,
-                                           np.inf)
-
-        # reset number of function evaluations counter
-        self._nfev = 0
-
-    def init_population_array(self, init):
-        """
-        Initializes the population with a user specified population.
-
-        Parameters
-        ----------
-        init : np.ndarray
-            Array specifying subset of the initial population. The array should
-            have shape (S, N), where N is the number of parameters.
-            The population is clipped to the lower and upper bounds.
-        """
-        # make sure you're using a float array
-        popn = np.asarray(init, dtype=np.float64)
-
-        if (np.size(popn, 0) < 5 or
-                popn.shape[1] != self.parameter_count or
-                len(popn.shape) != 2):
-            raise ValueError("The population supplied needs to have shape"
-                             " (S, len(x)), where S > 4.")
-
-        # scale values and clip to bounds, assigning to population
-        self.population = np.clip(self._unscale_parameters(popn), 0, 1)
-
-        self.num_population_members = np.size(self.population, 0)
-
-        self.population_shape = (self.num_population_members,
-                                 self.parameter_count)
-
-        # reset population energies
-        self.population_energies = np.full(self.num_population_members,
-                                           np.inf)
-
-        # reset number of function evaluations counter
-        self._nfev = 0
-
-    @property
-    def x(self):
-        """
-        The best solution from the solver
-        """
-        return self._scale_parameters(self.population[0])
-
-    @property
-    def convergence(self):
-        """
-        The standard deviation of the population energies divided by their
-        mean.
-        """
-        if np.any(np.isinf(self.population_energies)):
-            return np.inf
-        return (np.std(self.population_energies) /
-                (np.abs(np.mean(self.population_energies)) + _MACHEPS))
-
-    def converged(self):
-        """
-        Return True if the solver has converged.
-        """
-        if np.any(np.isinf(self.population_energies)):
-            return False
-
-        return (np.std(self.population_energies) <=
-                self.atol +
-                self.tol * np.abs(np.mean(self.population_energies)))
-
-    def solve(self):
-        """
-        Runs the DifferentialEvolutionSolver.
-
-        Returns
-        -------
-        res : OptimizeResult
-            The optimization result represented as a `OptimizeResult` object.
-            Important attributes are: ``x`` the solution array, ``success`` a
-            Boolean flag indicating if the optimizer exited successfully,
-            ``message`` which describes the cause of the termination,
-            ``population`` the solution vectors present in the population, and
-            ``population_energies`` the value of the objective function for
-            each entry in ``population``.
-            See `OptimizeResult` for a description of other attributes. If
-            `polish` was employed, and a lower minimum was obtained by the
-            polishing, then OptimizeResult also contains the ``jac`` attribute.
-            If the eventual solution does not satisfy the applied constraints
-            ``success`` will be `False`.
-        """
-        nit, warning_flag = 0, False
-        status_message = _status_message['success']
-
-        # The population may have just been initialized (all entries are
-        # np.inf). If it has you have to calculate the initial energies.
-        # Although this is also done in the evolve generator it's possible
-        # that someone can set maxiter=0, at which point we still want the
-        # initial energies to be calculated (the following loop isn't run).
-        if np.all(np.isinf(self.population_energies)):
-            self.feasible, self.constraint_violation = (
-                self._calculate_population_feasibilities(self.population))
-
-            # only work out population energies for feasible solutions
-            self.population_energies[self.feasible] = (
-                self._calculate_population_energies(
-                    self.population[self.feasible]))
-
-            self._promote_lowest_energy()
-
-        # do the optimization.
-        for nit in range(1, self.maxiter + 1):
-            # evolve the population by a generation
-            try:
-                next(self)
-            except StopIteration:
-                warning_flag = True
-                if self._nfev > self.maxfun:
-                    status_message = _status_message['maxfev']
-                elif self._nfev == self.maxfun:
-                    status_message = ('Maximum number of function evaluations'
-                                      ' has been reached.')
-                break
-
-            if self.disp:
-                print(f"differential_evolution step {nit}: f(x)="
-                      f" {self.population_energies[0]}"
-                      )
-
-            if self.callback:
-                c = self.tol / (self.convergence + _MACHEPS)
-                res = self._result(nit=nit, message="in progress")
-                res.convergence = c
-                try:
-                    warning_flag = bool(self.callback(res))
-                except StopIteration:
-                    warning_flag = True
-
-                if warning_flag:
-                    status_message = 'callback function requested stop early'
-
-            # should the solver terminate?
-            if warning_flag or self.converged():
-                break
-
-        else:
-            status_message = _status_message['maxiter']
-            warning_flag = True
-
-        DE_result = self._result(
-            nit=nit, message=status_message, warning_flag=warning_flag
-        )
-
-        if self.polish and not np.all(self.integrality):
-            # can't polish if all the parameters are integers
-            if np.any(self.integrality):
-                # set the lower/upper bounds equal so that any integrality
-                # constraints work.
-                limits, integrality = self.limits, self.integrality
-                limits[0, integrality] = DE_result.x[integrality]
-                limits[1, integrality] = DE_result.x[integrality]
-
-            polish_method = 'L-BFGS-B'
-
-            if self._wrapped_constraints:
-                polish_method = 'trust-constr'
-
-                constr_violation = self._constraint_violation_fn(DE_result.x)
-                if np.any(constr_violation > 0.):
-                    warnings.warn("differential evolution didn't find a "
-                                  "solution satisfying the constraints, "
-                                  "attempting to polish from the least "
-                                  "infeasible solution",
-                                  UserWarning, stacklevel=2)
-            if self.disp:
-                print(f"Polishing solution with '{polish_method}'")
-            result = minimize(self.func,
-                              np.copy(DE_result.x),
-                              method=polish_method,
-                              bounds=self.limits.T,
-                              constraints=self.constraints)
-
-            self._nfev += result.nfev
-            DE_result.nfev = self._nfev
-
-            # Polishing solution is only accepted if there is an improvement in
-            # cost function, the polishing was successful and the solution lies
-            # within the bounds.
-            if (result.fun < DE_result.fun and
-                    result.success and
-                    np.all(result.x <= self.limits[1]) and
-                    np.all(self.limits[0] <= result.x)):
-                DE_result.fun = result.fun
-                DE_result.x = result.x
-                DE_result.jac = result.jac
-                # to keep internal state consistent
-                self.population_energies[0] = result.fun
-                self.population[0] = self._unscale_parameters(result.x)
-
-        if self._wrapped_constraints:
-            DE_result.constr = [c.violation(DE_result.x) for
-                                c in self._wrapped_constraints]
-            DE_result.constr_violation = np.max(
-                np.concatenate(DE_result.constr))
-            DE_result.maxcv = DE_result.constr_violation
-            if DE_result.maxcv > 0:
-                # if the result is infeasible then success must be False
-                DE_result.success = False
-                DE_result.message = ("The solution does not satisfy the "
-                                     f"constraints, MAXCV = {DE_result.maxcv}")
-
-        return DE_result
-
-    def _result(self, **kwds):
-        # form an intermediate OptimizeResult
-        nit = kwds.get('nit', None)
-        message = kwds.get('message', None)
-        warning_flag = kwds.get('warning_flag', False)
-        result = OptimizeResult(
-            x=self.x,
-            fun=self.population_energies[0],
-            nfev=self._nfev,
-            nit=nit,
-            message=message,
-            success=(warning_flag is not True),
-            population=self._scale_parameters(self.population),
-            population_energies=self.population_energies
-        )
-        if self._wrapped_constraints:
-            result.constr = [c.violation(result.x)
-                             for c in self._wrapped_constraints]
-            result.constr_violation = np.max(np.concatenate(result.constr))
-            result.maxcv = result.constr_violation
-            if result.maxcv > 0:
-                result.success = False
-
-        return result
-
-    def _calculate_population_energies(self, population):
-        """
-        Calculate the energies of a population.
-
-        Parameters
-        ----------
-        population : ndarray
-            An array of parameter vectors normalised to [0, 1] using lower
-            and upper limits. Has shape ``(np.size(population, 0), N)``.
-
-        Returns
-        -------
-        energies : ndarray
-            An array of energies corresponding to each population member. If
-            maxfun will be exceeded during this call, then the number of
-            function evaluations will be reduced and energies will be
-            right-padded with np.inf. Has shape ``(np.size(population, 0),)``
-        """
-        num_members = np.size(population, 0)
-        # S is the number of function evals left to stay under the
-        # maxfun budget
-        S = min(num_members, self.maxfun - self._nfev)
-
-        energies = np.full(num_members, np.inf)
-
-        parameters_pop = self._scale_parameters(population)
-        try:
-            calc_energies = list(
-                self._mapwrapper(self.func, parameters_pop[0:S])
-            )
-            calc_energies = np.squeeze(calc_energies)
-        except (TypeError, ValueError) as e:
-            # wrong number of arguments for _mapwrapper
-            # or wrong length returned from the mapper
-            raise RuntimeError(
-                "The map-like callable must be of the form f(func, iterable), "
-                "returning a sequence of numbers the same length as 'iterable'"
-            ) from e
-
-        if calc_energies.size != S:
-            if self.vectorized:
-                raise RuntimeError("The vectorized function must return an"
-                                   " array of shape (S,) when given an array"
-                                   " of shape (len(x), S)")
-            raise RuntimeError("func(x, *args) must return a scalar value")
-
-        energies[0:S] = calc_energies
-
-        if self.vectorized:
-            self._nfev += 1
-        else:
-            self._nfev += S
-
-        return energies
-
-    def _promote_lowest_energy(self):
-        # swaps 'best solution' into first population entry
-
-        idx = np.arange(self.num_population_members)
-        feasible_solutions = idx[self.feasible]
-        if feasible_solutions.size:
-            # find the best feasible solution
-            idx_t = np.argmin(self.population_energies[feasible_solutions])
-            l = feasible_solutions[idx_t]
-        else:
-            # no solution was feasible, use 'best' infeasible solution, which
-            # will violate constraints the least
-            l = np.argmin(np.sum(self.constraint_violation, axis=1))
-
-        self.population_energies[[0, l]] = self.population_energies[[l, 0]]
-        self.population[[0, l], :] = self.population[[l, 0], :]
-        self.feasible[[0, l]] = self.feasible[[l, 0]]
-        self.constraint_violation[[0, l], :] = (
-        self.constraint_violation[[l, 0], :])
-
-    def _constraint_violation_fn(self, x):
-        """
-        Calculates total constraint violation for all the constraints, for a
-        set of solutions.
-
-        Parameters
-        ----------
-        x : ndarray
-            Solution vector(s). Has shape (S, N), or (N,), where S is the
-            number of solutions to investigate and N is the number of
-            parameters.
-
-        Returns
-        -------
-        cv : ndarray
-            Total violation of constraints. Has shape ``(S, M)``, where M is
-            the total number of constraint components (which is not necessarily
-            equal to len(self._wrapped_constraints)).
-        """
-        # how many solution vectors you're calculating constraint violations
-        # for
-        S = np.size(x) // self.parameter_count
-        _out = np.zeros((S, self.total_constraints))
-        offset = 0
-        for con in self._wrapped_constraints:
-            # the input/output of the (vectorized) constraint function is
-            # {(N, S), (N,)} --> (M, S)
-            # The input to _constraint_violation_fn is (S, N) or (N,), so
-            # transpose to pass it to the constraint. The output is transposed
-            # from (M, S) to (S, M) for further use.
-            c = con.violation(x.T).T
-
-            # The shape of c should be (M,), (1, M), or (S, M). Check for
-            # those shapes, as an incorrect shape indicates that the
-            # user constraint function didn't return the right thing, and
-            # the reshape operation will fail. Intercept the wrong shape
-            # to give a reasonable error message. I'm not sure what failure
-            # modes an inventive user will come up with.
-            if c.shape[-1] != con.num_constr or (S > 1 and c.shape[0] != S):
-                raise RuntimeError("An array returned from a Constraint has"
-                                   " the wrong shape. If `vectorized is False`"
-                                   " the Constraint should return an array of"
-                                   " shape (M,). If `vectorized is True` then"
-                                   " the Constraint must return an array of"
-                                   " shape (M, S), where S is the number of"
-                                   " solution vectors and M is the number of"
-                                   " constraint components in a given"
-                                   " Constraint object.")
-
-            # the violation function may return a 1D array, but is it a
-            # sequence of constraints for one solution (S=1, M>=1), or the
-            # value of a single constraint for a sequence of solutions
-            # (S>=1, M=1)
-            c = np.reshape(c, (S, con.num_constr))
-            _out[:, offset:offset + con.num_constr] = c
-            offset += con.num_constr
-
-        return _out
-
-    def _calculate_population_feasibilities(self, population):
-        """
-        Calculate the feasibilities of a population.
-
-        Parameters
-        ----------
-        population : ndarray
-            An array of parameter vectors normalised to [0, 1] using lower
-            and upper limits. Has shape ``(np.size(population, 0), N)``.
-
-        Returns
-        -------
-        feasible, constraint_violation : ndarray, ndarray
-            Boolean array of feasibility for each population member, and an
-            array of the constraint violation for each population member.
-            constraint_violation has shape ``(np.size(population, 0), M)``,
-            where M is the number of constraints.
-        """
-        num_members = np.size(population, 0)
-        if not self._wrapped_constraints:
-            # shortcut for no constraints
-            return np.ones(num_members, bool), np.zeros((num_members, 1))
-
-        # (S, N)
-        parameters_pop = self._scale_parameters(population)
-
-        if self.vectorized:
-            # (S, M)
-            constraint_violation = np.array(
-                self._constraint_violation_fn(parameters_pop)
-            )
-        else:
-            # (S, 1, M)
-            constraint_violation = np.array([self._constraint_violation_fn(x)
-                                             for x in parameters_pop])
-            # if you use the list comprehension in the line above it will
-            # create an array of shape (S, 1, M), because each iteration
-            # generates an array of (1, M). In comparison the vectorized
-            # version returns (S, M). It's therefore necessary to remove axis 1
-            constraint_violation = constraint_violation[:, 0]
-
-        feasible = ~(np.sum(constraint_violation, axis=1) > 0)
-
-        return feasible, constraint_violation
-
-    def __iter__(self):
-        return self
-
-    def __enter__(self):
-        return self
-
-    def __exit__(self, *args):
-        return self._mapwrapper.__exit__(*args)
-
-    def _accept_trial(self, energy_trial, feasible_trial, cv_trial,
-                      energy_orig, feasible_orig, cv_orig):
-        """
-        Trial is accepted if:
-        * it satisfies all constraints and provides a lower or equal objective
-          function value, while both the compared solutions are feasible
-        - or -
-        * it is feasible while the original solution is infeasible,
-        - or -
-        * it is infeasible, but provides a lower or equal constraint violation
-          for all constraint functions.
-
-        This test corresponds to section III of Lampinen [1]_.
-
-        Parameters
-        ----------
-        energy_trial : float
-            Energy of the trial solution
-        feasible_trial : float
-            Feasibility of trial solution
-        cv_trial : array-like
-            Excess constraint violation for the trial solution
-        energy_orig : float
-            Energy of the original solution
-        feasible_orig : float
-            Feasibility of original solution
-        cv_orig : array-like
-            Excess constraint violation for the original solution
-
-        Returns
-        -------
-        accepted : bool
-
-        """
-        if feasible_orig and feasible_trial:
-            return energy_trial <= energy_orig
-        elif feasible_trial and not feasible_orig:
-            return True
-        elif not feasible_trial and (cv_trial <= cv_orig).all():
-            # cv_trial < cv_orig would imply that both trial and orig are not
-            # feasible
-            return True
-
-        return False
-
-    def __next__(self):
-        """
-        Evolve the population by a single generation
-
-        Returns
-        -------
-        x : ndarray
-            The best solution from the solver.
-        fun : float
-            Value of objective function obtained from the best solution.
-        """
-        # the population may have just been initialized (all entries are
-        # np.inf). If it has you have to calculate the initial energies
-        if np.all(np.isinf(self.population_energies)):
-            self.feasible, self.constraint_violation = (
-                self._calculate_population_feasibilities(self.population))
-
-            # only need to work out population energies for those that are
-            # feasible
-            self.population_energies[self.feasible] = (
-                self._calculate_population_energies(
-                    self.population[self.feasible]))
-
-            self._promote_lowest_energy()
-
-        if self.dither is not None:
-            self.scale = self.random_number_generator.uniform(self.dither[0],
-                                                              self.dither[1])
-
-        if self._updating == 'immediate':
-            # update best solution immediately
-            for candidate in range(self.num_population_members):
-                if self._nfev > self.maxfun:
-                    raise StopIteration
-
-                # create a trial solution
-                trial = self._mutate(candidate)
-
-                # ensuring that it's in the range [0, 1)
-                self._ensure_constraint(trial)
-
-                # scale from [0, 1) to the actual parameter value
-                parameters = self._scale_parameters(trial)
-
-                # determine the energy of the objective function
-                if self._wrapped_constraints:
-                    cv = self._constraint_violation_fn(parameters)
-                    feasible = False
-                    energy = np.inf
-                    if not np.sum(cv) > 0:
-                        # solution is feasible
-                        feasible = True
-                        energy = self.func(parameters)
-                        self._nfev += 1
-                else:
-                    feasible = True
-                    cv = np.atleast_2d([0.])
-                    energy = self.func(parameters)
-                    self._nfev += 1
-
-                # compare trial and population member
-                if self._accept_trial(energy, feasible, cv,
-                                      self.population_energies[candidate],
-                                      self.feasible[candidate],
-                                      self.constraint_violation[candidate]):
-                    self.population[candidate] = trial
-                    self.population_energies[candidate] = np.squeeze(energy)
-                    self.feasible[candidate] = feasible
-                    self.constraint_violation[candidate] = cv
-
-                    # if the trial candidate is also better than the best
-                    # solution then promote it.
-                    if self._accept_trial(energy, feasible, cv,
-                                          self.population_energies[0],
-                                          self.feasible[0],
-                                          self.constraint_violation[0]):
-                        self._promote_lowest_energy()
-
-        elif self._updating == 'deferred':
-            # update best solution once per generation
-            if self._nfev >= self.maxfun:
-                raise StopIteration
-
-            # 'deferred' approach, vectorised form.
-            # create trial solutions
-            trial_pop = self._mutate_many(
-                np.arange(self.num_population_members)
-            )
-
-            # enforce bounds
-            self._ensure_constraint(trial_pop)
-
-            # determine the energies of the objective function, but only for
-            # feasible trials
-            feasible, cv = self._calculate_population_feasibilities(trial_pop)
-            trial_energies = np.full(self.num_population_members, np.inf)
-
-            # only calculate for feasible entries
-            trial_energies[feasible] = self._calculate_population_energies(
-                trial_pop[feasible])
-
-            # which solutions are 'improved'?
-            loc = [self._accept_trial(*val) for val in
-                   zip(trial_energies, feasible, cv, self.population_energies,
-                       self.feasible, self.constraint_violation)]
-            loc = np.array(loc)
-            self.population = np.where(loc[:, np.newaxis],
-                                       trial_pop,
-                                       self.population)
-            self.population_energies = np.where(loc,
-                                                trial_energies,
-                                                self.population_energies)
-            self.feasible = np.where(loc,
-                                     feasible,
-                                     self.feasible)
-            self.constraint_violation = np.where(loc[:, np.newaxis],
-                                                 cv,
-                                                 self.constraint_violation)
-
-            # make sure the best solution is updated if updating='deferred'.
-            # put the lowest energy into the best solution position.
-            self._promote_lowest_energy()
-
-        return self.x, self.population_energies[0]
-
-    def _scale_parameters(self, trial):
-        """Scale from a number between 0 and 1 to parameters."""
-        # trial either has shape (N, ) or (L, N), where L is the number of
-        # solutions being scaled
-        scaled = self.__scale_arg1 + (trial - 0.5) * self.__scale_arg2
-        if np.count_nonzero(self.integrality):
-            i = np.broadcast_to(self.integrality, scaled.shape)
-            scaled[i] = np.round(scaled[i])
-        return scaled
-
-    def _unscale_parameters(self, parameters):
-        """Scale from parameters to a number between 0 and 1."""
-        return (parameters - self.__scale_arg1) * self.__recip_scale_arg2 + 0.5
-
-    def _ensure_constraint(self, trial):
-        """Make sure the parameters lie between the limits."""
-        mask = np.bitwise_or(trial > 1, trial < 0)
-        if oob := np.count_nonzero(mask):
-            trial[mask] = self.random_number_generator.uniform(size=oob)
-
-    def _mutate_custom(self, candidate):
-        rng = self.random_number_generator
-        msg = (
-            "strategy must have signature"
-            " f(candidate: int, population: np.ndarray, rng=None) returning an"
-            " array of shape (N,)"
-        )
-        _population = self._scale_parameters(self.population)
-        if not len(np.shape(candidate)):
-            # single entry in population
-            trial = self.strategy(candidate, _population, rng=rng)
-            if trial.shape != (self.parameter_count,):
-                raise RuntimeError(msg)
-        else:
-            S = candidate.shape[0]
-            trial = np.array(
-                [self.strategy(c, _population, rng=rng) for c in candidate],
-                dtype=float
-            )
-            if trial.shape != (S, self.parameter_count):
-                raise RuntimeError(msg)
-        return self._unscale_parameters(trial)
-
-    def _mutate_many(self, candidates):
-        """Create trial vectors based on a mutation strategy."""
-        rng = self.random_number_generator
-
-        S = len(candidates)
-        if callable(self.strategy):
-            return self._mutate_custom(candidates)
-
-        trial = np.copy(self.population[candidates])
-        samples = np.array([self._select_samples(c, 5) for c in candidates])
-
-        if self.strategy in ['currenttobest1exp', 'currenttobest1bin']:
-            bprime = self.mutation_func(candidates, samples)
-        else:
-            bprime = self.mutation_func(samples)
-
-        fill_point = rng_integers(rng, self.parameter_count, size=S)
-        crossovers = rng.uniform(size=(S, self.parameter_count))
-        crossovers = crossovers < self.cross_over_probability
-        if self.strategy in self._binomial:
-            # the last one is always from the bprime vector for binomial
-            # If you fill in modulo with a loop you have to set the last one to
-            # true. If you don't use a loop then you can have any random entry
-            # be True.
-            i = np.arange(S)
-            crossovers[i, fill_point[i]] = True
-            trial = np.where(crossovers, bprime, trial)
-            return trial
-
-        elif self.strategy in self._exponential:
-            crossovers[..., 0] = True
-            for j in range(S):
-                i = 0
-                init_fill = fill_point[j]
-                while (i < self.parameter_count and crossovers[j, i]):
-                    trial[j, init_fill] = bprime[j, init_fill]
-                    init_fill = (init_fill + 1) % self.parameter_count
-                    i += 1
-
-            return trial
-
-    def _mutate(self, candidate):
-        """Create a trial vector based on a mutation strategy."""
-        rng = self.random_number_generator
-
-        if callable(self.strategy):
-            return self._mutate_custom(candidate)
-
-        fill_point = rng_integers(rng, self.parameter_count)
-        samples = self._select_samples(candidate, 5)
-
-        trial = np.copy(self.population[candidate])
-
-        if self.strategy in ['currenttobest1exp', 'currenttobest1bin']:
-            bprime = self.mutation_func(candidate, samples)
-        else:
-            bprime = self.mutation_func(samples)
-
-        crossovers = rng.uniform(size=self.parameter_count)
-        crossovers = crossovers < self.cross_over_probability
-        if self.strategy in self._binomial:
-            # the last one is always from the bprime vector for binomial
-            # If you fill in modulo with a loop you have to set the last one to
-            # true. If you don't use a loop then you can have any random entry
-            # be True.
-            crossovers[fill_point] = True
-            trial = np.where(crossovers, bprime, trial)
-            return trial
-
-        elif self.strategy in self._exponential:
-            i = 0
-            crossovers[0] = True
-            while i < self.parameter_count and crossovers[i]:
-                trial[fill_point] = bprime[fill_point]
-                fill_point = (fill_point + 1) % self.parameter_count
-                i += 1
-
-            return trial
-
-    def _best1(self, samples):
-        """best1bin, best1exp"""
-        # samples.shape == (S, 5)
-        # or
-        # samples.shape(5,)
-        r0, r1 = samples[..., :2].T
-        return (self.population[0] + self.scale *
-                (self.population[r0] - self.population[r1]))
-
-    def _rand1(self, samples):
-        """rand1bin, rand1exp"""
-        r0, r1, r2 = samples[..., :3].T
-        return (self.population[r0] + self.scale *
-                (self.population[r1] - self.population[r2]))
-
-    def _randtobest1(self, samples):
-        """randtobest1bin, randtobest1exp"""
-        r0, r1, r2 = samples[..., :3].T
-        bprime = np.copy(self.population[r0])
-        bprime += self.scale * (self.population[0] - bprime)
-        bprime += self.scale * (self.population[r1] -
-                                self.population[r2])
-        return bprime
-
-    def _currenttobest1(self, candidate, samples):
-        """currenttobest1bin, currenttobest1exp"""
-        r0, r1 = samples[..., :2].T
-        bprime = (self.population[candidate] + self.scale *
-                  (self.population[0] - self.population[candidate] +
-                   self.population[r0] - self.population[r1]))
-        return bprime
-
-    def _best2(self, samples):
-        """best2bin, best2exp"""
-        r0, r1, r2, r3 = samples[..., :4].T
-        bprime = (self.population[0] + self.scale *
-                  (self.population[r0] + self.population[r1] -
-                   self.population[r2] - self.population[r3]))
-
-        return bprime
-
-    def _rand2(self, samples):
-        """rand2bin, rand2exp"""
-        r0, r1, r2, r3, r4 = samples[..., :5].T
-        bprime = (self.population[r0] + self.scale *
-                  (self.population[r1] + self.population[r2] -
-                   self.population[r3] - self.population[r4]))
-
-        return bprime
-
-    def _select_samples(self, candidate, number_samples):
-        """
-        obtain random integers from range(self.num_population_members),
-        without replacement. You can't have the original candidate either.
-        """
-        self.random_number_generator.shuffle(self._random_population_index)
-        idxs = self._random_population_index[:number_samples + 1]
-        return idxs[idxs != candidate][:number_samples]
-
-
-class _ConstraintWrapper:
-    """Object to wrap/evaluate user defined constraints.
-
-    Very similar in practice to `PreparedConstraint`, except that no evaluation
-    of jac/hess is performed (explicit or implicit).
-
-    If created successfully, it will contain the attributes listed below.
-
-    Parameters
-    ----------
-    constraint : {`NonlinearConstraint`, `LinearConstraint`, `Bounds`}
-        Constraint to check and prepare.
-    x0 : array_like
-        Initial vector of independent variables, shape (N,)
-
-    Attributes
-    ----------
-    fun : callable
-        Function defining the constraint wrapped by one of the convenience
-        classes.
-    bounds : 2-tuple
-        Contains lower and upper bounds for the constraints --- lb and ub.
-        These are converted to ndarray and have a size equal to the number of
-        the constraints.
-
-    Notes
-    -----
-    _ConstraintWrapper.fun and _ConstraintWrapper.violation can get sent
-    arrays of shape (N, S) or (N,), where S is the number of vectors of shape
-    (N,) to consider constraints for.
-    """
-    def __init__(self, constraint, x0):
-        self.constraint = constraint
-
-        if isinstance(constraint, NonlinearConstraint):
-            def fun(x):
-                x = np.asarray(x)
-                return np.atleast_1d(constraint.fun(x))
-        elif isinstance(constraint, LinearConstraint):
-            def fun(x):
-                if issparse(constraint.A):
-                    A = constraint.A
-                else:
-                    A = np.atleast_2d(constraint.A)
-
-                res = A.dot(x)
-                # x either has shape (N, S) or (N)
-                # (M, N) x (N, S) --> (M, S)
-                # (M, N) x (N,)   --> (M,)
-                # However, if (M, N) is a matrix then:
-                # (M, N) * (N,)   --> (M, 1), we need this to be (M,)
-                if x.ndim == 1 and res.ndim == 2:
-                    # deal with case that constraint.A is an np.matrix
-                    # see gh20041
-                    res = np.asarray(res)[:, 0]
-
-                return res
-        elif isinstance(constraint, Bounds):
-            def fun(x):
-                return np.asarray(x)
-        else:
-            raise ValueError("`constraint` of an unknown type is passed.")
-
-        self.fun = fun
-
-        lb = np.asarray(constraint.lb, dtype=float)
-        ub = np.asarray(constraint.ub, dtype=float)
-
-        x0 = np.asarray(x0)
-
-        # find out the number of constraints
-        f0 = fun(x0)
-        self.num_constr = m = f0.size
-        self.parameter_count = x0.size
-
-        if lb.ndim == 0:
-            lb = np.resize(lb, m)
-        if ub.ndim == 0:
-            ub = np.resize(ub, m)
-
-        self.bounds = (lb, ub)
-
-    def __call__(self, x):
-        return np.atleast_1d(self.fun(x))
-
-    def violation(self, x):
-        """How much the constraint is exceeded by.
-
-        Parameters
-        ----------
-        x : array-like
-            Vector of independent variables, (N, S), where N is number of
-            parameters and S is the number of solutions to be investigated.
-
-        Returns
-        -------
-        excess : array-like
-            How much the constraint is exceeded by, for each of the
-            constraints specified by `_ConstraintWrapper.fun`.
-            Has shape (M, S) where M is the number of constraint components.
-        """
-        # expect ev to have shape (num_constr, S) or (num_constr,)
-        ev = self.fun(np.asarray(x))
-
-        try:
-            excess_lb = np.maximum(self.bounds[0] - ev.T, 0)
-            excess_ub = np.maximum(ev.T - self.bounds[1], 0)
-        except ValueError as e:
-            raise RuntimeError("An array returned from a Constraint has"
-                               " the wrong shape. If `vectorized is False`"
-                               " the Constraint should return an array of"
-                               " shape (M,). If `vectorized is True` then"
-                               " the Constraint must return an array of"
-                               " shape (M, S), where S is the number of"
-                               " solution vectors and M is the number of"
-                               " constraint components in a given"
-                               " Constraint object.") from e
-
-        v = (excess_lb + excess_ub).T
-        return v
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_differentiate.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_differentiate.py
deleted file mode 100644
index 959c17e3ffaedf960ebffe7984aa25aa32d9eb6c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_differentiate.py
+++ /dev/null
@@ -1,856 +0,0 @@
-# mypy: disable-error-code="attr-defined"
-import numpy as np
-import scipy._lib._elementwise_iterative_method as eim
-from scipy._lib._util import _RichResult
-
-_EERRORINCREASE = -1  # used in _differentiate
-
-def _differentiate_iv(func, x, args, atol, rtol, maxiter, order, initial_step,
-                      step_factor, step_direction, preserve_shape, callback):
-    # Input validation for `_differentiate`
-
-    if not callable(func):
-        raise ValueError('`func` must be callable.')
-
-    # x has more complex IV that is taken care of during initialization
-    x = np.asarray(x)
-    dtype = x.dtype if np.issubdtype(x.dtype, np.inexact) else np.float64
-
-    if not np.iterable(args):
-        args = (args,)
-
-    if atol is None:
-        atol = np.finfo(dtype).tiny
-
-    if rtol is None:
-        rtol = np.sqrt(np.finfo(dtype).eps)
-
-    message = 'Tolerances and step parameters must be non-negative scalars.'
-    tols = np.asarray([atol, rtol, initial_step, step_factor])
-    if (not np.issubdtype(tols.dtype, np.number)
-            or np.any(tols < 0)
-            or tols.shape != (4,)):
-        raise ValueError(message)
-    initial_step, step_factor = tols[2:].astype(dtype)
-
-    maxiter_int = int(maxiter)
-    if maxiter != maxiter_int or maxiter <= 0:
-        raise ValueError('`maxiter` must be a positive integer.')
-
-    order_int = int(order)
-    if order_int != order or order <= 0:
-        raise ValueError('`order` must be a positive integer.')
-
-    step_direction = np.sign(step_direction).astype(dtype)
-    x, step_direction = np.broadcast_arrays(x, step_direction)
-    x, step_direction = x[()], step_direction[()]
-
-    message = '`preserve_shape` must be True or False.'
-    if preserve_shape not in {True, False}:
-        raise ValueError(message)
-
-    if callback is not None and not callable(callback):
-        raise ValueError('`callback` must be callable.')
-
-    return (func, x, args, atol, rtol, maxiter_int, order_int, initial_step,
-            step_factor, step_direction, preserve_shape, callback)
-
-
-def _differentiate(func, x, *, args=(), atol=None, rtol=None, maxiter=10,
-                   order=8, initial_step=0.5, step_factor=2.0,
-                   step_direction=0, preserve_shape=False, callback=None):
-    """Evaluate the derivative of an elementwise scalar function numerically.
-
-    Parameters
-    ----------
-    func : callable
-        The function whose derivative is desired. The signature must be::
-
-            func(x: ndarray, *fargs) -> ndarray
-
-         where each element of ``x`` is a finite real number and ``fargs`` is a tuple,
-         which may contain an arbitrary number of arrays that are broadcastable
-         with `x`. ``func`` must be an elementwise function: each element
-         ``func(x)[i]`` must equal ``func(x[i])`` for all indices ``i``.
-    x : array_like
-        Abscissae at which to evaluate the derivative.
-    args : tuple, optional
-        Additional positional arguments to be passed to `func`. Must be arrays
-        broadcastable with `x`. If the callable to be differentiated requires
-        arguments that are not broadcastable with `x`, wrap that callable with
-        `func`. See Examples.
-    atol, rtol : float, optional
-        Absolute and relative tolerances for the stopping condition: iteration
-        will stop when ``res.error < atol + rtol * abs(res.df)``. The default
-        `atol` is the smallest normal number of the appropriate dtype, and
-        the default `rtol` is the square root of the precision of the
-        appropriate dtype.
-    order : int, default: 8
-        The (positive integer) order of the finite difference formula to be
-        used. Odd integers will be rounded up to the next even integer.
-    initial_step : float, default: 0.5
-        The (absolute) initial step size for the finite difference derivative
-        approximation.
-    step_factor : float, default: 2.0
-        The factor by which the step size is *reduced* in each iteration; i.e.
-        the step size in iteration 1 is ``initial_step/step_factor``. If
-        ``step_factor < 1``, subsequent steps will be greater than the initial
-        step; this may be useful if steps smaller than some threshold are
-        undesirable (e.g. due to subtractive cancellation error).
-    maxiter : int, default: 10
-        The maximum number of iterations of the algorithm to perform. See
-        notes.
-    step_direction : array_like
-        An array representing the direction of the finite difference steps (for
-        use when `x` lies near to the boundary of the domain of the function.)
-        Must be broadcastable with `x` and all `args`.
-        Where 0 (default), central differences are used; where negative (e.g.
-        -1), steps are non-positive; and where positive (e.g. 1), all steps are
-        non-negative.
-    preserve_shape : bool, default: False
-        In the following, "arguments of `func`" refers to the array ``x`` and
-        any arrays within ``fargs``. Let ``shape`` be the broadcasted shape
-        of `x` and all elements of `args` (which is conceptually
-        distinct from ``fargs`` passed into `f`).
-
-        - When ``preserve_shape=False`` (default), `f` must accept arguments
-          of *any* broadcastable shapes.
-
-        - When ``preserve_shape=True``, `f` must accept arguments of shape
-          ``shape`` *or* ``shape + (n,)``, where ``(n,)`` is the number of
-          abscissae at which the function is being evaluated.
-
-        In either case, for each scalar element ``xi`` within `x`, the array
-        returned by `f` must include the scalar ``f(xi)`` at the same index.
-        Consequently, the shape of the output is always the shape of the input
-        ``x``.
-
-        See Examples.
-    callback : callable, optional
-        An optional user-supplied function to be called before the first
-        iteration and after each iteration.
-        Called as ``callback(res)``, where ``res`` is a ``_RichResult``
-        similar to that returned by `_differentiate` (but containing the
-        current iterate's values of all variables). If `callback` raises a
-        ``StopIteration``, the algorithm will terminate immediately and
-        `_differentiate` will return a result.
-
-    Returns
-    -------
-    res : _RichResult
-        An instance of `scipy._lib._util._RichResult` with the following
-        attributes. (The descriptions are written as though the values will be
-        scalars; however, if `func` returns an array, the outputs will be
-        arrays of the same shape.)
-
-        success : bool
-            ``True`` when the algorithm terminated successfully (status ``0``).
-        status : int
-            An integer representing the exit status of the algorithm.
-            ``0`` : The algorithm converged to the specified tolerances.
-            ``-1`` : The error estimate increased, so iteration was terminated.
-            ``-2`` : The maximum number of iterations was reached.
-            ``-3`` : A non-finite value was encountered.
-            ``-4`` : Iteration was terminated by `callback`.
-            ``1`` : The algorithm is proceeding normally (in `callback` only).
-        df : float
-            The derivative of `func` at `x`, if the algorithm terminated
-            successfully.
-        error : float
-            An estimate of the error: the magnitude of the difference between
-            the current estimate of the derivative and the estimate in the
-            previous iteration.
-        nit : int
-            The number of iterations performed.
-        nfev : int
-            The number of points at which `func` was evaluated.
-        x : float
-            The value at which the derivative of `func` was evaluated
-            (after broadcasting with `args` and `step_direction`).
-
-    Notes
-    -----
-    The implementation was inspired by jacobi [1]_, numdifftools [2]_, and
-    DERIVEST [3]_, but the implementation follows the theory of Taylor series
-    more straightforwardly (and arguably naively so).
-    In the first iteration, the derivative is estimated using a finite
-    difference formula of order `order` with maximum step size `initial_step`.
-    Each subsequent iteration, the maximum step size is reduced by
-    `step_factor`, and the derivative is estimated again until a termination
-    condition is reached. The error estimate is the magnitude of the difference
-    between the current derivative approximation and that of the previous
-    iteration.
-
-    The stencils of the finite difference formulae are designed such that
-    abscissae are "nested": after `func` is evaluated at ``order + 1``
-    points in the first iteration, `func` is evaluated at only two new points
-    in each subsequent iteration; ``order - 1`` previously evaluated function
-    values required by the finite difference formula are reused, and two
-    function values (evaluations at the points furthest from `x`) are unused.
-
-    Step sizes are absolute. When the step size is small relative to the
-    magnitude of `x`, precision is lost; for example, if `x` is ``1e20``, the
-    default initial step size of ``0.5`` cannot be resolved. Accordingly,
-    consider using larger initial step sizes for large magnitudes of `x`.
-
-    The default tolerances are challenging to satisfy at points where the
-    true derivative is exactly zero. If the derivative may be exactly zero,
-    consider specifying an absolute tolerance (e.g. ``atol=1e-16``) to
-    improve convergence.
-
-    References
-    ----------
-    [1]_ Hans Dembinski (@HDembinski). jacobi.
-         https://github.com/HDembinski/jacobi
-    [2]_ Per A. Brodtkorb and John D'Errico. numdifftools.
-         https://numdifftools.readthedocs.io/en/latest/
-    [3]_ John D'Errico. DERIVEST: Adaptive Robust Numerical Differentiation.
-         https://www.mathworks.com/matlabcentral/fileexchange/13490-adaptive-robust-numerical-differentiation
-    [4]_ Numerical Differentition. Wikipedia.
-         https://en.wikipedia.org/wiki/Numerical_differentiation
-
-    Examples
-    --------
-    Evaluate the derivative of ``np.exp`` at several points ``x``.
-
-    >>> import numpy as np
-    >>> from scipy.optimize._differentiate import _differentiate
-    >>> f = np.exp
-    >>> df = np.exp  # true derivative
-    >>> x = np.linspace(1, 2, 5)
-    >>> res = _differentiate(f, x)
-    >>> res.df  # approximation of the derivative
-    array([2.71828183, 3.49034296, 4.48168907, 5.75460268, 7.3890561 ])
-    >>> res.error  # estimate of the error
-    array(
-        [7.12940817e-12, 9.16688947e-12, 1.17594823e-11, 1.50972568e-11, 1.93942640e-11]
-    )
-    >>> abs(res.df - df(x))  # true error
-    array(
-        [3.06421555e-14, 3.01980663e-14, 5.06261699e-14, 6.30606678e-14, 8.34887715e-14]
-    )
-
-    Show the convergence of the approximation as the step size is reduced.
-    Each iteration, the step size is reduced by `step_factor`, so for
-    sufficiently small initial step, each iteration reduces the error by a
-    factor of ``1/step_factor**order`` until finite precision arithmetic
-    inhibits further improvement.
-
-    >>> iter = list(range(1, 12))  # maximum iterations
-    >>> hfac = 2  # step size reduction per iteration
-    >>> hdir = [-1, 0, 1]  # compare left-, central-, and right- steps
-    >>> order = 4  # order of differentiation formula
-    >>> x = 1
-    >>> ref = df(x)
-    >>> errors = []  # true error
-    >>> for i in iter:
-    ...     res = _differentiate(f, x, maxiter=i, step_factor=hfac,
-    ...                          step_direction=hdir, order=order,
-    ...                          atol=0, rtol=0)  # prevent early termination
-    ...     errors.append(abs(res.df - ref))
-    >>> errors = np.array(errors)
-    >>> plt.semilogy(iter, errors[:, 0], label='left differences')
-    >>> plt.semilogy(iter, errors[:, 1], label='central differences')
-    >>> plt.semilogy(iter, errors[:, 2], label='right differences')
-    >>> plt.xlabel('iteration')
-    >>> plt.ylabel('error')
-    >>> plt.legend()
-    >>> plt.show()
-    >>> (errors[1, 1] / errors[0, 1], 1 / hfac**order)
-    (0.06215223140159822, 0.0625)
-
-    The implementation is vectorized over `x`, `step_direction`, and `args`.
-    The function is evaluated once before the first iteration to perform input
-    validation and standardization, and once per iteration thereafter.
-
-    >>> def f(x, p):
-    ...     print('here')
-    ...     f.nit += 1
-    ...     return x**p
-    >>> f.nit = 0
-    >>> def df(x, p):
-    ...     return p*x**(p-1)
-    >>> x = np.arange(1, 5)
-    >>> p = np.arange(1, 6).reshape((-1, 1))
-    >>> hdir = np.arange(-1, 2).reshape((-1, 1, 1))
-    >>> res = _differentiate(f, x, args=(p,), step_direction=hdir, maxiter=1)
-    >>> np.allclose(res.df, df(x, p))
-    True
-    >>> res.df.shape
-    (3, 5, 4)
-    >>> f.nit
-    2
-
-    By default, `preserve_shape` is False, and therefore the callable
-    `f` may be called with arrays of any broadcastable shapes.
-    For example:
-
-    >>> shapes = []
-    >>> def f(x, c):
-    ...    shape = np.broadcast_shapes(x.shape, c.shape)
-    ...    shapes.append(shape)
-    ...    return np.sin(c*x)
-    >>>
-    >>> c = [1, 5, 10, 20]
-    >>> res = _differentiate(f, 0, args=(c,))
-    >>> shapes
-    [(4,), (4, 8), (4, 2), (3, 2), (2, 2), (1, 2)]
-
-    To understand where these shapes are coming from - and to better
-    understand how `_differentiate` computes accurate results - note that
-    higher values of ``c`` correspond with higher frequency sinusoids.
-    The higher frequency sinusoids make the function's derivative change
-    faster, so more function evaluations are required to achieve the target
-    accuracy:
-
-    >>> res.nfev
-    array([11, 13, 15, 17])
-
-    The initial ``shape``, ``(4,)``, corresponds with evaluating the
-    function at a single abscissa and all four frequencies; this is used
-    for input validation and to determine the size and dtype of the arrays
-    that store results. The next shape corresponds with evaluating the
-    function at an initial grid of abscissae and all four frequencies.
-    Successive calls to the function evaluate the function at two more
-    abscissae, increasing the effective order of the approximation by two.
-    However, in later function evaluations, the function is evaluated at
-    fewer frequencies because the corresponding derivative has already
-    converged to the required tolerance. This saves function evaluations to
-    improve performance, but it requires the function to accept arguments of
-    any shape.
-
-    "Vector-valued" functions are unlikely to satisfy this requirement.
-    For example, consider
-
-    >>> def f(x):
-    ...    return [x, np.sin(3*x), x+np.sin(10*x), np.sin(20*x)*(x-1)**2]
-
-    This integrand is not compatible with `_differentiate` as written; for instance,
-    the shape of the output will not be the same as the shape of ``x``. Such a
-    function *could* be converted to a compatible form with the introduction of
-    additional parameters, but this would be inconvenient. In such cases,
-    a simpler solution would be to use `preserve_shape`.
-
-    >>> shapes = []
-    >>> def f(x):
-    ...     shapes.append(x.shape)
-    ...     x0, x1, x2, x3 = x
-    ...     return [x0, np.sin(3*x1), x2+np.sin(10*x2), np.sin(20*x3)*(x3-1)**2]
-    >>>
-    >>> x = np.zeros(4)
-    >>> res = _differentiate(f, x, preserve_shape=True)
-    >>> shapes
-    [(4,), (4, 8), (4, 2), (4, 2), (4, 2), (4, 2)]
-
-    Here, the shape of ``x`` is ``(4,)``. With ``preserve_shape=True``, the
-    function may be called with argument ``x`` of shape ``(4,)`` or ``(4, n)``,
-    and this is what we observe.
-
-    """
-    # TODO (followup):
-    #  - investigate behavior at saddle points
-    #  - array initial_step / step_factor?
-    #  - multivariate functions?
-
-    res = _differentiate_iv(func, x, args, atol, rtol, maxiter, order, initial_step,
-                            step_factor, step_direction, preserve_shape, callback)
-    (func, x, args, atol, rtol, maxiter, order,
-     h0, fac, hdir, preserve_shape, callback) = res
-
-    # Initialization
-    # Since f(x) (no step) is not needed for central differences, it may be
-    # possible to eliminate this function evaluation. However, it's useful for
-    # input validation and standardization, and everything else is designed to
-    # reduce function calls, so let's keep it simple.
-    temp = eim._initialize(func, (x,), args, preserve_shape=preserve_shape)
-    func, xs, fs, args, shape, dtype, xp = temp
-    x, f = xs[0], fs[0]
-    df = np.full_like(f, np.nan)
-    # Ideally we'd broadcast the shape of `hdir` in `_elementwise_algo_init`, but
-    # it's simpler to do it here than to generalize `_elementwise_algo_init` further.
-    # `hdir` and `x` are already broadcasted in `_differentiate_iv`, so we know
-    # that `hdir` can be broadcasted to the final shape.
-    hdir = np.broadcast_to(hdir, shape).flatten()
-
-    status = np.full_like(x, eim._EINPROGRESS, dtype=int)  # in progress
-    nit, nfev = 0, 1  # one function evaluations performed above
-    # Boolean indices of left, central, right, and (all) one-sided steps
-    il = hdir < 0
-    ic = hdir == 0
-    ir = hdir > 0
-    io = il | ir
-
-    # Most of these attributes are reasonably obvious, but:
-    # - `fs` holds all the function values of all active `x`. The zeroth
-    #   axis corresponds with active points `x`, the first axis corresponds
-    #   with the different steps (in the order described in
-    #   `_differentiate_weights`).
-    # - `terms` (which could probably use a better name) is half the `order`,
-    #   which is always even.
-    work = _RichResult(x=x, df=df, fs=f[:, np.newaxis], error=np.nan, h=h0,
-                       df_last=np.nan, error_last=np.nan, h0=h0, fac=fac,
-                       atol=atol, rtol=rtol, nit=nit, nfev=nfev,
-                       status=status, dtype=dtype, terms=(order+1)//2,
-                       hdir=hdir, il=il, ic=ic, ir=ir, io=io)
-    # This is the correspondence between terms in the `work` object and the
-    # final result. In this case, the mapping is trivial. Note that `success`
-    # is prepended automatically.
-    res_work_pairs = [('status', 'status'), ('df', 'df'), ('error', 'error'),
-                      ('nit', 'nit'), ('nfev', 'nfev'), ('x', 'x')]
-
-    def pre_func_eval(work):
-        """Determine the abscissae at which the function needs to be evaluated.
-
-        See `_differentiate_weights` for a description of the stencil (pattern
-        of the abscissae).
-
-        In the first iteration, there is only one stored function value in
-        `work.fs`, `f(x)`, so we need to evaluate at `order` new points. In
-        subsequent iterations, we evaluate at two new points. Note that
-        `work.x` is always flattened into a 1D array after broadcasting with
-        all `args`, so we add a new axis at the end and evaluate all point
-        in one call to the function.
-
-        For improvement:
-        - Consider measuring the step size actually taken, since `(x + h) - x`
-          is not identically equal to `h` with floating point arithmetic.
-        - Adjust the step size automatically if `x` is too big to resolve the
-          step.
-        - We could probably save some work if there are no central difference
-          steps or no one-sided steps.
-        """
-        n = work.terms  # half the order
-        h = work.h  # step size
-        c = work.fac  # step reduction factor
-        d = c**0.5  # square root of step reduction factor (one-sided stencil)
-        # Note - no need to be careful about dtypes until we allocate `x_eval`
-
-        if work.nit == 0:
-            hc = h / c**np.arange(n)
-            hc = np.concatenate((-hc[::-1], hc))
-        else:
-            hc = np.asarray([-h, h]) / c**(n-1)
-
-        if work.nit == 0:
-            hr = h / d**np.arange(2*n)
-        else:
-            hr = np.asarray([h, h/d]) / c**(n-1)
-
-        n_new = 2*n if work.nit == 0 else 2  # number of new abscissae
-        x_eval = np.zeros((len(work.hdir), n_new), dtype=work.dtype)
-        il, ic, ir = work.il, work.ic, work.ir
-        x_eval[ir] = work.x[ir, np.newaxis] + hr
-        x_eval[ic] = work.x[ic, np.newaxis] + hc
-        x_eval[il] = work.x[il, np.newaxis] - hr
-        return x_eval
-
-    def post_func_eval(x, f, work):
-        """ Estimate the derivative and error from the function evaluations
-
-        As in `pre_func_eval`: in the first iteration, there is only one stored
-        function value in `work.fs`, `f(x)`, so we need to add the `order` new
-        points. In subsequent iterations, we add two new points. The tricky
-        part is getting the order to match that of the weights, which is
-        described in `_differentiate_weights`.
-
-        For improvement:
-        - Change the order of the weights (and steps in `pre_func_eval`) to
-          simplify `work_fc` concatenation and eliminate `fc` concatenation.
-        - It would be simple to do one-step Richardson extrapolation with `df`
-          and `df_last` to increase the order of the estimate and/or improve
-          the error estimate.
-        - Process the function evaluations in a more numerically favorable
-          way. For instance, combining the pairs of central difference evals
-          into a second-order approximation and using Richardson extrapolation
-          to produce a higher order approximation seemed to retain accuracy up
-          to very high order.
-        - Alternatively, we could use `polyfit` like Jacobi. An advantage of
-          fitting polynomial to more points than necessary is improved noise
-          tolerance.
-        """
-        n = work.terms
-        n_new = n if work.nit == 0 else 1
-        il, ic, io = work.il, work.ic, work.io
-
-        # Central difference
-        # `work_fc` is *all* the points at which the function has been evaluated
-        # `fc` is the points we're using *this iteration* to produce the estimate
-        work_fc = (f[ic, :n_new], work.fs[ic, :], f[ic, -n_new:])
-        work_fc = np.concatenate(work_fc, axis=-1)
-        if work.nit == 0:
-            fc = work_fc
-        else:
-            fc = (work_fc[:, :n], work_fc[:, n:n+1], work_fc[:, -n:])
-            fc = np.concatenate(fc, axis=-1)
-
-        # One-sided difference
-        work_fo = np.concatenate((work.fs[io, :], f[io, :]), axis=-1)
-        if work.nit == 0:
-            fo = work_fo
-        else:
-            fo = np.concatenate((work_fo[:, 0:1], work_fo[:, -2*n:]), axis=-1)
-
-        work.fs = np.zeros((len(ic), work.fs.shape[-1] + 2*n_new))
-        work.fs[ic] = work_fc
-        work.fs[io] = work_fo
-
-        wc, wo = _differentiate_weights(work, n)
-        work.df_last = work.df.copy()
-        work.df[ic] = fc @ wc / work.h
-        work.df[io] = fo @ wo / work.h
-        work.df[il] *= -1
-
-        work.h /= work.fac
-        work.error_last = work.error
-        # Simple error estimate - the difference in derivative estimates between
-        # this iteration and the last. This is typically conservative because if
-        # convergence has begin, the true error is much closer to the difference
-        # between the current estimate and the *next* error estimate. However,
-        # we could use Richarson extrapolation to produce an error estimate that
-        # is one order higher, and take the difference between that and
-        # `work.df` (which would just be constant factor that depends on `fac`.)
-        work.error = abs(work.df - work.df_last)
-
-    def check_termination(work):
-        """Terminate due to convergence, non-finite values, or error increase"""
-        stop = np.zeros_like(work.df).astype(bool)
-
-        i = work.error < work.atol + work.rtol*abs(work.df)
-        work.status[i] = eim._ECONVERGED
-        stop[i] = True
-
-        if work.nit > 0:
-            i = ~((np.isfinite(work.x) & np.isfinite(work.df)) | stop)
-            work.df[i], work.status[i] = np.nan, eim._EVALUEERR
-            stop[i] = True
-
-        # With infinite precision, there is a step size below which
-        # all smaller step sizes will reduce the error. But in floating point
-        # arithmetic, catastrophic cancellation will begin to cause the error
-        # to increase again. This heuristic tries to avoid step sizes that are
-        # too small. There may be more theoretically sound approaches for
-        # detecting a step size that minimizes the total error, but this
-        # heuristic seems simple and effective.
-        i = (work.error > work.error_last*10) & ~stop
-        work.status[i] = _EERRORINCREASE
-        stop[i] = True
-
-        return stop
-
-    def post_termination_check(work):
-        return
-
-    def customize_result(res, shape):
-        return shape
-
-    return eim._loop(work, callback, shape, maxiter, func, args, dtype,
-                     pre_func_eval, post_func_eval, check_termination,
-                     post_termination_check, customize_result, res_work_pairs,
-                     xp, preserve_shape)
-
-
-def _differentiate_weights(work, n):
-    # This produces the weights of the finite difference formula for a given
-    # stencil. In experiments, use of a second-order central difference formula
-    # with Richardson extrapolation was more accurate numerically, but it was
-    # more complicated, and it would have become even more complicated when
-    # adding support for one-sided differences. However, now that all the
-    # function evaluation values are stored, they can be processed in whatever
-    # way is desired to produce the derivative estimate. We leave alternative
-    # approaches to future work. To be more self-contained, here is the theory
-    # for deriving the weights below.
-    #
-    # Recall that the Taylor expansion of a univariate, scalar-values function
-    # about a point `x` may be expressed as:
-    #      f(x + h)  =     f(x) + f'(x)*h + f''(x)/2!*h**2  + O(h**3)
-    # Suppose we evaluate f(x), f(x+h), and f(x-h).  We have:
-    #      f(x)      =     f(x)
-    #      f(x + h)  =     f(x) + f'(x)*h + f''(x)/2!*h**2  + O(h**3)
-    #      f(x - h)  =     f(x) - f'(x)*h + f''(x)/2!*h**2  + O(h**3)
-    # We can solve for weights `wi` such that:
-    #   w1*f(x)      = w1*(f(x))
-    # + w2*f(x + h)  = w2*(f(x) + f'(x)*h + f''(x)/2!*h**2) + O(h**3)
-    # + w3*f(x - h)  = w3*(f(x) - f'(x)*h + f''(x)/2!*h**2) + O(h**3)
-    #                =     0    + f'(x)*h + 0               + O(h**3)
-    # Then
-    #     f'(x) ~ (w1*f(x) + w2*f(x+h) + w3*f(x-h))/h
-    # is a finite difference derivative approximation with error O(h**2),
-    # and so it is said to be a "second-order" approximation. Under certain
-    # conditions (e.g. well-behaved function, `h` sufficiently small), the
-    # error in the approximation will decrease with h**2; that is, if `h` is
-    # reduced by a factor of 2, the error is reduced by a factor of 4.
-    #
-    # By default, we use eighth-order formulae. Our central-difference formula
-    # uses abscissae:
-    #   x-h/c**3, x-h/c**2, x-h/c, x-h, x, x+h, x+h/c, x+h/c**2, x+h/c**3
-    # where `c` is the step factor. (Typically, the step factor is greater than
-    # one, so the outermost points - as written above - are actually closest to
-    # `x`.) This "stencil" is chosen so that each iteration, the step can be
-    # reduced by the factor `c`, and most of the function evaluations can be
-    # reused with the new step size. For example, in the next iteration, we
-    # will have:
-    #   x-h/c**4, x-h/c**3, x-h/c**2, x-h/c, x, x+h/c, x+h/c**2, x+h/c**3, x+h/c**4
-    # We do not reuse `x-h` and `x+h` for the new derivative estimate.
-    # While this would increase the order of the formula and thus the
-    # theoretical convergence rate, it is also less stable numerically.
-    # (As noted above, there are other ways of processing the values that are
-    # more stable. Thus, even now we store `f(x-h)` and `f(x+h)` in `work.fs`
-    # to simplify future development of this sort of improvement.)
-    #
-    # The (right) one-sided formula is produced similarly using abscissae
-    #   x, x+h, x+h/d, x+h/d**2, ..., x+h/d**6, x+h/d**7, x+h/d**7
-    # where `d` is the square root of `c`. (The left one-sided formula simply
-    # uses -h.) When the step size is reduced by factor `c = d**2`, we have
-    # abscissae:
-    #   x, x+h/d**2, x+h/d**3..., x+h/d**8, x+h/d**9, x+h/d**9
-    # `d` is chosen as the square root of `c` so that the rate of the step-size
-    # reduction is the same per iteration as in the central difference case.
-    # Note that because the central difference formulas are inherently of even
-    # order, for simplicity, we use only even-order formulas for one-sided
-    # differences, too.
-
-    # It's possible for the user to specify `fac` in, say, double precision but
-    # `x` and `args` in single precision. `fac` gets converted to single
-    # precision, but we should always use double precision for the intermediate
-    # calculations here to avoid additional error in the weights.
-    fac = work.fac.astype(np.float64)
-
-    # Note that if the user switches back to floating point precision with
-    # `x` and `args`, then `fac` will not necessarily equal the (lower
-    # precision) cached `_differentiate_weights.fac`, and the weights will
-    # need to be recalculated. This could be fixed, but it's late, and of
-    # low consequence.
-    if fac != _differentiate_weights.fac:
-        _differentiate_weights.central = []
-        _differentiate_weights.right = []
-        _differentiate_weights.fac = fac
-
-    if len(_differentiate_weights.central) != 2*n + 1:
-        # Central difference weights. Consider refactoring this; it could
-        # probably be more compact.
-        i = np.arange(-n, n + 1)
-        p = np.abs(i) - 1.  # center point has power `p` -1, but sign `s` is 0
-        s = np.sign(i)
-
-        h = s / fac ** p
-        A = np.vander(h, increasing=True).T
-        b = np.zeros(2*n + 1)
-        b[1] = 1
-        weights = np.linalg.solve(A, b)
-
-        # Enforce identities to improve accuracy
-        weights[n] = 0
-        for i in range(n):
-            weights[-i-1] = -weights[i]
-
-        # Cache the weights. We only need to calculate them once unless
-        # the step factor changes.
-        _differentiate_weights.central = weights
-
-        # One-sided difference weights. The left one-sided weights (with
-        # negative steps) are simply the negative of the right one-sided
-        # weights, so no need to compute them separately.
-        i = np.arange(2*n + 1)
-        p = i - 1.
-        s = np.sign(i)
-
-        h = s / np.sqrt(fac) ** p
-        A = np.vander(h, increasing=True).T
-        b = np.zeros(2 * n + 1)
-        b[1] = 1
-        weights = np.linalg.solve(A, b)
-
-        _differentiate_weights.right = weights
-
-    return (_differentiate_weights.central.astype(work.dtype, copy=False),
-            _differentiate_weights.right.astype(work.dtype, copy=False))
-_differentiate_weights.central = []
-_differentiate_weights.right = []
-_differentiate_weights.fac = None
-
-
-def _jacobian(func, x, *, atol=None, rtol=None, maxiter=10,
-              order=8, initial_step=0.5, step_factor=2.0):
-    r"""Evaluate the Jacobian of a function numerically.
-
-    Parameters
-    ----------
-    func : callable
-        The function whose Jacobian is desired. The signature must be::
-
-            func(x: ndarray) -> ndarray
-
-         where each element of ``x`` is a finite real. If the function to be
-         differentiated accepts additional, arguments wrap it (e.g. using
-         `functools.partial` or ``lambda``) and pass the wrapped callable
-         into `_jacobian`. See Notes regarding vectorization and the dimensionality
-         of the input and output.
-    x : array_like
-        Points at which to evaluate the Jacobian. Must have at least one dimension.
-        See Notes regarding the dimensionality and vectorization.
-    atol, rtol : float, optional
-        Absolute and relative tolerances for the stopping condition: iteration
-        will stop for each element of the Jacobian when
-        ``res.error < atol + rtol * abs(res.df)``. The default `atol` is the
-        smallest normal number of the appropriate dtype, and the default `rtol`
-        is the square root of the precision of the appropriate dtype.
-    order : int, default: 8
-        The (positive integer) order of the finite difference formula to be
-        used. Odd integers will be rounded up to the next even integer.
-    initial_step : float, default: 0.5
-        The (absolute) initial step size for the finite difference derivative
-        approximation.
-    step_factor : float, default: 2.0
-        The factor by which the step size is *reduced* in each iteration; i.e.
-        the step size in iteration 1 is ``initial_step/step_factor``. If
-        ``step_factor < 1``, subsequent steps will be greater than the initial
-        step; this may be useful if steps smaller than some threshold are
-        undesirable (e.g. due to subtractive cancellation error).
-    maxiter : int, default: 10
-        The maximum number of iterations of the algorithm to perform.
-
-    Returns
-    -------
-    res : _RichResult
-        An instance of `scipy._lib._util._RichResult` with the following
-        attributes.
-
-        success : bool array
-            ``True`` when the algorithm terminated successfully (status ``0``).
-        status : int array
-            An integer representing the exit status of the algorithm.
-            ``0`` : The algorithm converged to the specified tolerances.
-            ``-1`` : The error estimate increased, so iteration was terminated.
-            ``-2`` : The maximum number of iterations was reached.
-            ``-3`` : A non-finite value was encountered.
-            ``-4`` : Iteration was terminated by `callback`.
-            ``1`` : The algorithm is proceeding normally (in `callback` only).
-        df : float array
-            The Jacobian of `func` at `x`, if the algorithm terminated
-            successfully.
-        error : float array
-            An estimate of the error: the magnitude of the difference between
-            the current estimate of the derivative and the estimate in the
-            previous iteration.
-        nit : int array
-            The number of iterations performed.
-        nfev : int array
-            The number of points at which `func` was evaluated.
-        x : float array
-            The value at which the derivative of `func` was evaluated.
-
-    See Also
-    --------
-    _differentiate
-
-    Notes
-    -----
-    Suppose we wish to evaluate the Jacobian of a function
-    :math:`f: \mathbf{R^m} \rightarrow \mathbf{R^n}`, and assign to variables
-    ``m`` and ``n`` the positive integer values of :math:`m` and :math:`n`,
-    respectively. If we wish to evaluate the Jacobian at a single point,
-    then:
-
-    - argument `x` must be an array of shape ``(m,)``
-    - argument `func` must be vectorized to accept an array of shape ``(m, p)``.
-      The first axis represents the :math:`m` inputs of :math:`f`; the second
-      is for evaluating the function at multiple points in a single call.
-    - argument `func` must return an array of shape ``(n, p)``. The first
-      axis represents the :math:`n` outputs of :math:`f`; the second
-      is for the result of evaluating the function at multiple points.
-    - attribute ``df`` of the result object will be an array of shape ``(n, m)``,
-      the Jacobian.
-
-    This function is also vectorized in the sense that the Jacobian can be
-    evaluated at ``k`` points in a single call. In this case, `x` would be an
-    array of shape ``(m, k)``, `func` would accept an array of shape
-    ``(m, k, p)`` and return an array of shape ``(n, k, p)``, and the ``df``
-    attribute of the result would have shape ``(n, m, k)``.
-
-    References
-    ----------
-    .. [1] Jacobian matrix and determinant, *Wikipedia*,
-           https://en.wikipedia.org/wiki/Jacobian_matrix_and_determinant
-
-    Examples
-    --------
-    The Rosenbrock function maps from :math:`\mathbf{R}^m \righarrow \mathbf{R}`;
-    the SciPy implementation `scipy.optimize.rosen` is vectorized to accept an
-    array of shape ``(m, p)`` and return an array of shape ``m``. Suppose we wish
-    to evaluate the Jacobian (AKA the gradient because the function returns a scalar)
-    at ``[0.5, 0.5, 0.5]``.
-
-    >>> import numpy as np
-    >>> from scipy.optimize._differentiate import _jacobian as jacobian
-    >>> from scipy.optimize import rosen, rosen_der
-    >>> m = 3
-    >>> x = np.full(m, 0.5)
-    >>> res = jacobian(rosen, x)
-    >>> ref = rosen_der(x)  # reference value of the gradient
-    >>> res.df, ref
-    (array([-51.,  -1.,  50.]), array([-51.,  -1.,  50.]))
-
-    As an example of a function with multiple outputs, consider Example 4
-    from [1]_.
-
-    >>> def f(x):
-    ...     x1, x2, x3 = x    ...
-    ...     return [x1, 5*x3, 4*x2**2 - 2*x3, x3*np.sin(x1)]
-
-    The true Jacobian is given by:
-
-    >>> def df(x):
-    ...         x1, x2, x3 = x
-    ...         one = np.ones_like(x1)
-    ...         return [[one, 0*one, 0*one],
-    ...                 [0*one, 0*one, 5*one],
-    ...                 [0*one, 8*x2, -2*one],
-    ...                 [x3*np.cos(x1), 0*one, np.sin(x1)]]
-
-    Evaluate the Jacobian at an arbitrary point.
-
-    >>> rng = np.random.default_rng(389252938452)
-    >>> x = rng.random(size=3)
-    >>> res = jacobian(f, x)
-    >>> ref = df(x)
-    >>> res.df.shape == (4, 3)
-    True
-    >>> np.allclose(res.df, ref)
-    True
-
-    Evaluate the Jacobian at 10 arbitrary points in a single call.
-
-    >>> x = rng.random(size=(3, 10))
-    >>> res = jacobian(f, x)
-    >>> ref = df(x)
-    >>> res.df.shape == (4, 3, 10)
-    True
-    >>> np.allclose(res.df, ref)
-    True
-
-    """
-    x = np.asarray(x)
-    int_dtype = np.issubdtype(x.dtype, np.integer)
-    x0 = np.asarray(x, dtype=float) if int_dtype else x
-
-    if x0.ndim < 1:
-        message = "Argument `x` must be at least 1-D."
-        raise ValueError(message)
-
-    m = x0.shape[0]
-    i = np.arange(m)
-
-    def wrapped(x):
-        p = () if x.ndim == x0.ndim else (x.shape[-1],)  # number of abscissae
-        new_dims = (1,) if x.ndim == x0.ndim else (1, -1)
-        new_shape = (m, m) + x0.shape[1:] + p
-        xph = np.expand_dims(x0, new_dims)
-        xph = np.broadcast_to(xph, new_shape).copy()
-        xph[i, i] = x
-        return func(xph)
-
-    res = _differentiate(wrapped, x, atol=atol, rtol=rtol,
-                         maxiter=maxiter, order=order, initial_step=initial_step,
-                         step_factor=step_factor, preserve_shape=True)
-    del res.x  # the user knows `x`, and the way it gets broadcasted is meaningless here
-    return res
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_direct.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_direct.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index fe89bac4a6f6b828def53da54b5eac17d45a4019..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_direct.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_direct_py.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_direct_py.py
deleted file mode 100644
index 440cbb5ae866462b6299b1e12d4a6ba1e407fd62..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_direct_py.py
+++ /dev/null
@@ -1,278 +0,0 @@
-from __future__ import annotations
-from typing import (  # noqa: UP035
-    Any, Callable, Iterable, TYPE_CHECKING
-)
-
-import numpy as np
-from scipy.optimize import OptimizeResult
-from ._constraints import old_bound_to_new, Bounds
-from ._direct import direct as _direct  # type: ignore
-
-if TYPE_CHECKING:
-    import numpy.typing as npt
-
-__all__ = ['direct']
-
-ERROR_MESSAGES = (
-    "Number of function evaluations done is larger than maxfun={}",
-    "Number of iterations is larger than maxiter={}",
-    "u[i] < l[i] for some i",
-    "maxfun is too large",
-    "Initialization failed",
-    "There was an error in the creation of the sample points",
-    "An error occurred while the function was sampled",
-    "Maximum number of levels has been reached.",
-    "Forced stop",
-    "Invalid arguments",
-    "Out of memory",
-)
-
-SUCCESS_MESSAGES = (
-    ("The best function value found is within a relative error={} "
-     "of the (known) global optimum f_min"),
-    ("The volume of the hyperrectangle containing the lowest function value "
-     "found is below vol_tol={}"),
-    ("The side length measure of the hyperrectangle containing the lowest "
-     "function value found is below len_tol={}"),
-)
-
-
-def direct(
-    func: Callable[[npt.ArrayLike, tuple[Any]], float],
-    bounds: Iterable | Bounds,
-    *,
-    args: tuple = (),
-    eps: float = 1e-4,
-    maxfun: int | None = None,
-    maxiter: int = 1000,
-    locally_biased: bool = True,
-    f_min: float = -np.inf,
-    f_min_rtol: float = 1e-4,
-    vol_tol: float = 1e-16,
-    len_tol: float = 1e-6,
-    callback: Callable[[npt.ArrayLike], None] | None = None
-) -> OptimizeResult:
-    """
-    Finds the global minimum of a function using the
-    DIRECT algorithm.
-
-    Parameters
-    ----------
-    func : callable
-        The objective function to be minimized.
-        ``func(x, *args) -> float``
-        where ``x`` is an 1-D array with shape (n,) and ``args`` is a tuple of
-        the fixed parameters needed to completely specify the function.
-    bounds : sequence or `Bounds`
-        Bounds for variables. There are two ways to specify the bounds:
-
-        1. Instance of `Bounds` class.
-        2. ``(min, max)`` pairs for each element in ``x``.
-
-    args : tuple, optional
-        Any additional fixed parameters needed to
-        completely specify the objective function.
-    eps : float, optional
-        Minimal required difference of the objective function values
-        between the current best hyperrectangle and the next potentially
-        optimal hyperrectangle to be divided. In consequence, `eps` serves as a
-        tradeoff between local and global search: the smaller, the more local
-        the search becomes. Default is 1e-4.
-    maxfun : int or None, optional
-        Approximate upper bound on objective function evaluations.
-        If `None`, will be automatically set to ``1000 * N`` where ``N``
-        represents the number of dimensions. Will be capped if necessary to
-        limit DIRECT's RAM usage to app. 1GiB. This will only occur for very
-        high dimensional problems and excessive `max_fun`. Default is `None`.
-    maxiter : int, optional
-        Maximum number of iterations. Default is 1000.
-    locally_biased : bool, optional
-        If `True` (default), use the locally biased variant of the
-        algorithm known as DIRECT_L. If `False`, use the original unbiased
-        DIRECT algorithm. For hard problems with many local minima,
-        `False` is recommended.
-    f_min : float, optional
-        Function value of the global optimum. Set this value only if the
-        global optimum is known. Default is ``-np.inf``, so that this
-        termination criterion is deactivated.
-    f_min_rtol : float, optional
-        Terminate the optimization once the relative error between the
-        current best minimum `f` and the supplied global minimum `f_min`
-        is smaller than `f_min_rtol`. This parameter is only used if
-        `f_min` is also set. Must lie between 0 and 1. Default is 1e-4.
-    vol_tol : float, optional
-        Terminate the optimization once the volume of the hyperrectangle
-        containing the lowest function value is smaller than `vol_tol`
-        of the complete search space. Must lie between 0 and 1.
-        Default is 1e-16.
-    len_tol : float, optional
-        If `locally_biased=True`, terminate the optimization once half of
-        the normalized maximal side length of the hyperrectangle containing
-        the lowest function value is smaller than `len_tol`.
-        If `locally_biased=False`, terminate the optimization once half of
-        the normalized diagonal of the hyperrectangle containing the lowest
-        function value is smaller than `len_tol`. Must lie between 0 and 1.
-        Default is 1e-6.
-    callback : callable, optional
-        A callback function with signature ``callback(xk)`` where ``xk``
-        represents the best function value found so far.
-
-    Returns
-    -------
-    res : OptimizeResult
-        The optimization result represented as a ``OptimizeResult`` object.
-        Important attributes are: ``x`` the solution array, ``success`` a
-        Boolean flag indicating if the optimizer exited successfully and
-        ``message`` which describes the cause of the termination. See
-        `OptimizeResult` for a description of other attributes.
-
-    Notes
-    -----
-    DIviding RECTangles (DIRECT) is a deterministic global
-    optimization algorithm capable of minimizing a black box function with
-    its variables subject to lower and upper bound constraints by sampling
-    potential solutions in the search space [1]_. The algorithm starts by
-    normalising the search space to an n-dimensional unit hypercube.
-    It samples the function at the center of this hypercube and at 2n
-    (n is the number of variables) more points, 2 in each coordinate
-    direction. Using these function values, DIRECT then divides the
-    domain into hyperrectangles, each having exactly one of the sampling
-    points as its center. In each iteration, DIRECT chooses, using the `eps`
-    parameter which defaults to 1e-4, some of the existing hyperrectangles
-    to be further divided. This division process continues until either the
-    maximum number of iterations or maximum function evaluations allowed
-    are exceeded, or the hyperrectangle containing the minimal value found
-    so far becomes small enough. If `f_min` is specified, the optimization
-    will stop once this function value is reached within a relative tolerance.
-    The locally biased variant of DIRECT (originally called DIRECT_L) [2]_ is
-    used by default. It makes the search more locally biased and more
-    efficient for cases with only a few local minima.
-
-    A note about termination criteria: `vol_tol` refers to the volume of the
-    hyperrectangle containing the lowest function value found so far. This
-    volume decreases exponentially with increasing dimensionality of the
-    problem. Therefore `vol_tol` should be decreased to avoid premature
-    termination of the algorithm for higher dimensions. This does not hold
-    for `len_tol`: it refers either to half of the maximal side length
-    (for ``locally_biased=True``) or half of the diagonal of the
-    hyperrectangle (for ``locally_biased=False``).
-
-    This code is based on the DIRECT 2.0.4 Fortran code by Gablonsky et al. at
-    https://ctk.math.ncsu.edu/SOFTWARE/DIRECTv204.tar.gz .
-    This original version was initially converted via f2c and then cleaned up
-    and reorganized by Steven G. Johnson, August 2007, for the NLopt project.
-    The `direct` function wraps the C implementation.
-
-    .. versionadded:: 1.9.0
-
-    References
-    ----------
-    .. [1] Jones, D.R., Perttunen, C.D. & Stuckman, B.E. Lipschitzian
-        optimization without the Lipschitz constant. J Optim Theory Appl
-        79, 157-181 (1993).
-    .. [2] Gablonsky, J., Kelley, C. A Locally-Biased form of the DIRECT
-        Algorithm. Journal of Global Optimization 21, 27-37 (2001).
-
-    Examples
-    --------
-    The following example is a 2-D problem with four local minima: minimizing
-    the Styblinski-Tang function
-    (https://en.wikipedia.org/wiki/Test_functions_for_optimization).
-
-    >>> from scipy.optimize import direct, Bounds
-    >>> def styblinski_tang(pos):
-    ...     x, y = pos
-    ...     return 0.5 * (x**4 - 16*x**2 + 5*x + y**4 - 16*y**2 + 5*y)
-    >>> bounds = Bounds([-4., -4.], [4., 4.])
-    >>> result = direct(styblinski_tang, bounds)
-    >>> result.x, result.fun, result.nfev
-    array([-2.90321597, -2.90321597]), -78.3323279095383, 2011
-
-    The correct global minimum was found but with a huge number of function
-    evaluations (2011). Loosening the termination tolerances `vol_tol` and
-    `len_tol` can be used to stop DIRECT earlier.
-
-    >>> result = direct(styblinski_tang, bounds, len_tol=1e-3)
-    >>> result.x, result.fun, result.nfev
-    array([-2.9044353, -2.9044353]), -78.33230330754142, 207
-
-    """
-    # convert bounds to new Bounds class if necessary
-    if not isinstance(bounds, Bounds):
-        if isinstance(bounds, list) or isinstance(bounds, tuple):
-            lb, ub = old_bound_to_new(bounds)
-            bounds = Bounds(lb, ub)
-        else:
-            message = ("bounds must be a sequence or "
-                       "instance of Bounds class")
-            raise ValueError(message)
-
-    lb = np.ascontiguousarray(bounds.lb, dtype=np.float64)
-    ub = np.ascontiguousarray(bounds.ub, dtype=np.float64)
-
-    # validate bounds
-    # check that lower bounds are smaller than upper bounds
-    if not np.all(lb < ub):
-        raise ValueError('Bounds are not consistent min < max')
-    # check for infs
-    if (np.any(np.isinf(lb)) or np.any(np.isinf(ub))):
-        raise ValueError("Bounds must not be inf.")
-
-    # validate tolerances
-    if (vol_tol < 0 or vol_tol > 1):
-        raise ValueError("vol_tol must be between 0 and 1.")
-    if (len_tol < 0 or len_tol > 1):
-        raise ValueError("len_tol must be between 0 and 1.")
-    if (f_min_rtol < 0 or f_min_rtol > 1):
-        raise ValueError("f_min_rtol must be between 0 and 1.")
-
-    # validate maxfun and maxiter
-    if maxfun is None:
-        maxfun = 1000 * lb.shape[0]
-    if not isinstance(maxfun, int):
-        raise ValueError("maxfun must be of type int.")
-    if maxfun < 0:
-        raise ValueError("maxfun must be > 0.")
-    if not isinstance(maxiter, int):
-        raise ValueError("maxiter must be of type int.")
-    if maxiter < 0:
-        raise ValueError("maxiter must be > 0.")
-
-    # validate boolean parameters
-    if not isinstance(locally_biased, bool):
-        raise ValueError("locally_biased must be True or False.")
-
-    def _func_wrap(x, args=None):
-        x = np.asarray(x)
-        if args is None:
-            f = func(x)
-        else:
-            f = func(x, *args)
-        # always return a float
-        return np.asarray(f).item()
-
-    # TODO: fix disp argument
-    x, fun, ret_code, nfev, nit = _direct(
-        _func_wrap,
-        np.asarray(lb), np.asarray(ub),
-        args,
-        False, eps, maxfun, maxiter,
-        locally_biased,
-        f_min, f_min_rtol,
-        vol_tol, len_tol, callback
-    )
-
-    format_val = (maxfun, maxiter, f_min_rtol, vol_tol, len_tol)
-    if ret_code > 2:
-        message = SUCCESS_MESSAGES[ret_code - 3].format(
-                    format_val[ret_code - 1])
-    elif 0 < ret_code <= 2:
-        message = ERROR_MESSAGES[ret_code - 1].format(format_val[ret_code - 1])
-    elif 0 > ret_code > -100:
-        message = ERROR_MESSAGES[abs(ret_code) + 1]
-    else:
-        message = ERROR_MESSAGES[ret_code + 99]
-
-    return OptimizeResult(x=np.asarray(x), fun=fun, status=ret_code,
-                          success=ret_code > 2, message=message,
-                          nfev=nfev, nit=nit)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_dual_annealing.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_dual_annealing.py
deleted file mode 100644
index 9645c7967b96772463d4cbe41e905195273ba1ae..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_dual_annealing.py
+++ /dev/null
@@ -1,732 +0,0 @@
-# Dual Annealing implementation.
-# Copyright (c) 2018 Sylvain Gubian ,
-# Yang Xiang 
-# Author: Sylvain Gubian, Yang Xiang, PMP S.A.
-
-"""
-A Dual Annealing global optimization algorithm
-"""
-
-import numpy as np
-from scipy.optimize import OptimizeResult
-from scipy.optimize import minimize, Bounds
-from scipy.special import gammaln
-from scipy._lib._util import check_random_state
-from scipy.optimize._constraints import new_bounds_to_old
-
-__all__ = ['dual_annealing']
-
-
-class VisitingDistribution:
-    """
-    Class used to generate new coordinates based on the distorted
-    Cauchy-Lorentz distribution. Depending on the steps within the strategy
-    chain, the class implements the strategy for generating new location
-    changes.
-
-    Parameters
-    ----------
-    lb : array_like
-        A 1-D NumPy ndarray containing lower bounds of the generated
-        components. Neither NaN or inf are allowed.
-    ub : array_like
-        A 1-D NumPy ndarray containing upper bounds for the generated
-        components. Neither NaN or inf are allowed.
-    visiting_param : float
-        Parameter for visiting distribution. Default value is 2.62.
-        Higher values give the visiting distribution a heavier tail, this
-        makes the algorithm jump to a more distant region.
-        The value range is (1, 3]. Its value is fixed for the life of the
-        object.
-    rand_gen : {`~numpy.random.RandomState`, `~numpy.random.Generator`}
-        A `~numpy.random.RandomState`, `~numpy.random.Generator` object
-        for using the current state of the created random generator container.
-
-    """
-    TAIL_LIMIT = 1.e8
-    MIN_VISIT_BOUND = 1.e-10
-
-    def __init__(self, lb, ub, visiting_param, rand_gen):
-        # if you wish to make _visiting_param adjustable during the life of
-        # the object then _factor2, _factor3, _factor5, _d1, _factor6 will
-        # have to be dynamically calculated in `visit_fn`. They're factored
-        # out here so they don't need to be recalculated all the time.
-        self._visiting_param = visiting_param
-        self.rand_gen = rand_gen
-        self.lower = lb
-        self.upper = ub
-        self.bound_range = ub - lb
-
-        # these are invariant numbers unless visiting_param changes
-        self._factor2 = np.exp((4.0 - self._visiting_param) * np.log(
-            self._visiting_param - 1.0))
-        self._factor3 = np.exp((2.0 - self._visiting_param) * np.log(2.0)
-                               / (self._visiting_param - 1.0))
-        self._factor4_p = np.sqrt(np.pi) * self._factor2 / (self._factor3 * (
-            3.0 - self._visiting_param))
-
-        self._factor5 = 1.0 / (self._visiting_param - 1.0) - 0.5
-        self._d1 = 2.0 - self._factor5
-        self._factor6 = np.pi * (1.0 - self._factor5) / np.sin(
-            np.pi * (1.0 - self._factor5)) / np.exp(gammaln(self._d1))
-
-    def visiting(self, x, step, temperature):
-        """ Based on the step in the strategy chain, new coordinates are
-        generated by changing all components is the same time or only
-        one of them, the new values are computed with visit_fn method
-        """
-        dim = x.size
-        if step < dim:
-            # Changing all coordinates with a new visiting value
-            visits = self.visit_fn(temperature, dim)
-            upper_sample, lower_sample = self.rand_gen.uniform(size=2)
-            visits[visits > self.TAIL_LIMIT] = self.TAIL_LIMIT * upper_sample
-            visits[visits < -self.TAIL_LIMIT] = -self.TAIL_LIMIT * lower_sample
-            x_visit = visits + x
-            a = x_visit - self.lower
-            b = np.fmod(a, self.bound_range) + self.bound_range
-            x_visit = np.fmod(b, self.bound_range) + self.lower
-            x_visit[np.fabs(
-                x_visit - self.lower) < self.MIN_VISIT_BOUND] += 1.e-10
-        else:
-            # Changing only one coordinate at a time based on strategy
-            # chain step
-            x_visit = np.copy(x)
-            visit = self.visit_fn(temperature, 1)[0]
-            if visit > self.TAIL_LIMIT:
-                visit = self.TAIL_LIMIT * self.rand_gen.uniform()
-            elif visit < -self.TAIL_LIMIT:
-                visit = -self.TAIL_LIMIT * self.rand_gen.uniform()
-            index = step - dim
-            x_visit[index] = visit + x[index]
-            a = x_visit[index] - self.lower[index]
-            b = np.fmod(a, self.bound_range[index]) + self.bound_range[index]
-            x_visit[index] = np.fmod(b, self.bound_range[
-                index]) + self.lower[index]
-            if np.fabs(x_visit[index] - self.lower[
-                    index]) < self.MIN_VISIT_BOUND:
-                x_visit[index] += self.MIN_VISIT_BOUND
-        return x_visit
-
-    def visit_fn(self, temperature, dim):
-        """ Formula Visita from p. 405 of reference [2] """
-        x, y = self.rand_gen.normal(size=(dim, 2)).T
-
-        factor1 = np.exp(np.log(temperature) / (self._visiting_param - 1.0))
-        factor4 = self._factor4_p * factor1
-
-        # sigmax
-        x *= np.exp(-(self._visiting_param - 1.0) * np.log(
-            self._factor6 / factor4) / (3.0 - self._visiting_param))
-
-        den = np.exp((self._visiting_param - 1.0) * np.log(np.fabs(y)) /
-                     (3.0 - self._visiting_param))
-
-        return x / den
-
-
-class EnergyState:
-    """
-    Class used to record the energy state. At any time, it knows what is the
-    currently used coordinates and the most recent best location.
-
-    Parameters
-    ----------
-    lower : array_like
-        A 1-D NumPy ndarray containing lower bounds for generating an initial
-        random components in the `reset` method.
-    upper : array_like
-        A 1-D NumPy ndarray containing upper bounds for generating an initial
-        random components in the `reset` method
-        components. Neither NaN or inf are allowed.
-    callback : callable, ``callback(x, f, context)``, optional
-        A callback function which will be called for all minima found.
-        ``x`` and ``f`` are the coordinates and function value of the
-        latest minimum found, and `context` has value in [0, 1, 2]
-    """
-    # Maximum number of trials for generating a valid starting point
-    MAX_REINIT_COUNT = 1000
-
-    def __init__(self, lower, upper, callback=None):
-        self.ebest = None
-        self.current_energy = None
-        self.current_location = None
-        self.xbest = None
-        self.lower = lower
-        self.upper = upper
-        self.callback = callback
-
-    def reset(self, func_wrapper, rand_gen, x0=None):
-        """
-        Initialize current location is the search domain. If `x0` is not
-        provided, a random location within the bounds is generated.
-        """
-        if x0 is None:
-            self.current_location = rand_gen.uniform(self.lower, self.upper,
-                                                     size=len(self.lower))
-        else:
-            self.current_location = np.copy(x0)
-        init_error = True
-        reinit_counter = 0
-        while init_error:
-            self.current_energy = func_wrapper.fun(self.current_location)
-            if self.current_energy is None:
-                raise ValueError('Objective function is returning None')
-            if (not np.isfinite(self.current_energy) or np.isnan(
-                    self.current_energy)):
-                if reinit_counter >= EnergyState.MAX_REINIT_COUNT:
-                    init_error = False
-                    message = (
-                        'Stopping algorithm because function '
-                        'create NaN or (+/-) infinity values even with '
-                        'trying new random parameters'
-                    )
-                    raise ValueError(message)
-                self.current_location = rand_gen.uniform(self.lower,
-                                                         self.upper,
-                                                         size=self.lower.size)
-                reinit_counter += 1
-            else:
-                init_error = False
-            # If first time reset, initialize ebest and xbest
-            if self.ebest is None and self.xbest is None:
-                self.ebest = self.current_energy
-                self.xbest = np.copy(self.current_location)
-            # Otherwise, we keep them in case of reannealing reset
-
-    def update_best(self, e, x, context):
-        self.ebest = e
-        self.xbest = np.copy(x)
-        if self.callback is not None:
-            val = self.callback(x, e, context)
-            if val is not None:
-                if val:
-                    return ('Callback function requested to stop early by '
-                           'returning True')
-
-    def update_current(self, e, x):
-        self.current_energy = e
-        self.current_location = np.copy(x)
-
-
-class StrategyChain:
-    """
-    Class that implements within a Markov chain the strategy for location
-    acceptance and local search decision making.
-
-    Parameters
-    ----------
-    acceptance_param : float
-        Parameter for acceptance distribution. It is used to control the
-        probability of acceptance. The lower the acceptance parameter, the
-        smaller the probability of acceptance. Default value is -5.0 with
-        a range (-1e4, -5].
-    visit_dist : VisitingDistribution
-        Instance of `VisitingDistribution` class.
-    func_wrapper : ObjectiveFunWrapper
-        Instance of `ObjectiveFunWrapper` class.
-    minimizer_wrapper: LocalSearchWrapper
-        Instance of `LocalSearchWrapper` class.
-    rand_gen : {None, int, `numpy.random.Generator`,
-                `numpy.random.RandomState`}, optional
-
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-    energy_state: EnergyState
-        Instance of `EnergyState` class.
-
-    """
-
-    def __init__(self, acceptance_param, visit_dist, func_wrapper,
-                 minimizer_wrapper, rand_gen, energy_state):
-        # Local strategy chain minimum energy and location
-        self.emin = energy_state.current_energy
-        self.xmin = np.array(energy_state.current_location)
-        # Global optimizer state
-        self.energy_state = energy_state
-        # Acceptance parameter
-        self.acceptance_param = acceptance_param
-        # Visiting distribution instance
-        self.visit_dist = visit_dist
-        # Wrapper to objective function
-        self.func_wrapper = func_wrapper
-        # Wrapper to the local minimizer
-        self.minimizer_wrapper = minimizer_wrapper
-        self.not_improved_idx = 0
-        self.not_improved_max_idx = 1000
-        self._rand_gen = rand_gen
-        self.temperature_step = 0
-        self.K = 100 * len(energy_state.current_location)
-
-    def accept_reject(self, j, e, x_visit):
-        r = self._rand_gen.uniform()
-        pqv_temp = 1.0 - ((1.0 - self.acceptance_param) *
-            (e - self.energy_state.current_energy) / self.temperature_step)
-        if pqv_temp <= 0.:
-            pqv = 0.
-        else:
-            pqv = np.exp(np.log(pqv_temp) / (
-                1. - self.acceptance_param))
-
-        if r <= pqv:
-            # We accept the new location and update state
-            self.energy_state.update_current(e, x_visit)
-            self.xmin = np.copy(self.energy_state.current_location)
-
-        # No improvement for a long time
-        if self.not_improved_idx >= self.not_improved_max_idx:
-            if j == 0 or self.energy_state.current_energy < self.emin:
-                self.emin = self.energy_state.current_energy
-                self.xmin = np.copy(self.energy_state.current_location)
-
-    def run(self, step, temperature):
-        self.temperature_step = temperature / float(step + 1)
-        self.not_improved_idx += 1
-        for j in range(self.energy_state.current_location.size * 2):
-            if j == 0:
-                if step == 0:
-                    self.energy_state_improved = True
-                else:
-                    self.energy_state_improved = False
-            x_visit = self.visit_dist.visiting(
-                self.energy_state.current_location, j, temperature)
-            # Calling the objective function
-            e = self.func_wrapper.fun(x_visit)
-            if e < self.energy_state.current_energy:
-                # We have got a better energy value
-                self.energy_state.update_current(e, x_visit)
-                if e < self.energy_state.ebest:
-                    val = self.energy_state.update_best(e, x_visit, 0)
-                    if val is not None:
-                        if val:
-                            return val
-                    self.energy_state_improved = True
-                    self.not_improved_idx = 0
-            else:
-                # We have not improved but do we accept the new location?
-                self.accept_reject(j, e, x_visit)
-            if self.func_wrapper.nfev >= self.func_wrapper.maxfun:
-                return ('Maximum number of function call reached '
-                        'during annealing')
-        # End of StrategyChain loop
-
-    def local_search(self):
-        # Decision making for performing a local search
-        # based on strategy chain results
-        # If energy has been improved or no improvement since too long,
-        # performing a local search with the best strategy chain location
-        if self.energy_state_improved:
-            # Global energy has improved, let's see if LS improves further
-            e, x = self.minimizer_wrapper.local_search(self.energy_state.xbest,
-                                                       self.energy_state.ebest)
-            if e < self.energy_state.ebest:
-                self.not_improved_idx = 0
-                val = self.energy_state.update_best(e, x, 1)
-                if val is not None:
-                    if val:
-                        return val
-                self.energy_state.update_current(e, x)
-            if self.func_wrapper.nfev >= self.func_wrapper.maxfun:
-                return ('Maximum number of function call reached '
-                        'during local search')
-        # Check probability of a need to perform a LS even if no improvement
-        do_ls = False
-        if self.K < 90 * len(self.energy_state.current_location):
-            pls = np.exp(self.K * (
-                self.energy_state.ebest - self.energy_state.current_energy) /
-                self.temperature_step)
-            if pls >= self._rand_gen.uniform():
-                do_ls = True
-        # Global energy not improved, let's see what LS gives
-        # on the best strategy chain location
-        if self.not_improved_idx >= self.not_improved_max_idx:
-            do_ls = True
-        if do_ls:
-            e, x = self.minimizer_wrapper.local_search(self.xmin, self.emin)
-            self.xmin = np.copy(x)
-            self.emin = e
-            self.not_improved_idx = 0
-            self.not_improved_max_idx = self.energy_state.current_location.size
-            if e < self.energy_state.ebest:
-                val = self.energy_state.update_best(
-                    self.emin, self.xmin, 2)
-                if val is not None:
-                    if val:
-                        return val
-                self.energy_state.update_current(e, x)
-            if self.func_wrapper.nfev >= self.func_wrapper.maxfun:
-                return ('Maximum number of function call reached '
-                        'during dual annealing')
-
-
-class ObjectiveFunWrapper:
-
-    def __init__(self, func, maxfun=1e7, *args):
-        self.func = func
-        self.args = args
-        # Number of objective function evaluations
-        self.nfev = 0
-        # Number of gradient function evaluation if used
-        self.ngev = 0
-        # Number of hessian of the objective function if used
-        self.nhev = 0
-        self.maxfun = maxfun
-
-    def fun(self, x):
-        self.nfev += 1
-        return self.func(x, *self.args)
-
-
-class LocalSearchWrapper:
-    """
-    Class used to wrap around the minimizer used for local search
-    Default local minimizer is SciPy minimizer L-BFGS-B
-    """
-
-    LS_MAXITER_RATIO = 6
-    LS_MAXITER_MIN = 100
-    LS_MAXITER_MAX = 1000
-
-    def __init__(self, search_bounds, func_wrapper, *args, **kwargs):
-        self.func_wrapper = func_wrapper
-        self.kwargs = kwargs
-        self.jac = self.kwargs.get('jac', None)
-        self.hess = self.kwargs.get('hess', None)
-        self.hessp = self.kwargs.get('hessp', None)
-        self.kwargs.pop("args", None)
-        self.minimizer = minimize
-        bounds_list = list(zip(*search_bounds))
-        self.lower = np.array(bounds_list[0])
-        self.upper = np.array(bounds_list[1])
-
-        # If no minimizer specified, use SciPy minimize with 'L-BFGS-B' method
-        if not self.kwargs:
-            n = len(self.lower)
-            ls_max_iter = min(max(n * self.LS_MAXITER_RATIO,
-                                  self.LS_MAXITER_MIN),
-                              self.LS_MAXITER_MAX)
-            self.kwargs['method'] = 'L-BFGS-B'
-            self.kwargs['options'] = {
-                'maxiter': ls_max_iter,
-            }
-            self.kwargs['bounds'] = list(zip(self.lower, self.upper))
-        else:
-            if callable(self.jac):
-                def wrapped_jac(x):
-                    return self.jac(x, *args)
-                self.kwargs['jac'] = wrapped_jac
-            if callable(self.hess):
-                def wrapped_hess(x):
-                    return self.hess(x, *args)
-                self.kwargs['hess'] = wrapped_hess
-            if callable(self.hessp):
-                def wrapped_hessp(x, p):
-                    return self.hessp(x, p, *args)
-                self.kwargs['hessp'] = wrapped_hessp
-
-    def local_search(self, x, e):
-        # Run local search from the given x location where energy value is e
-        x_tmp = np.copy(x)
-        mres = self.minimizer(self.func_wrapper.fun, x, **self.kwargs)
-        if 'njev' in mres:
-            self.func_wrapper.ngev += mres.njev
-        if 'nhev' in mres:
-            self.func_wrapper.nhev += mres.nhev
-        # Check if is valid value
-        is_finite = np.all(np.isfinite(mres.x)) and np.isfinite(mres.fun)
-        in_bounds = np.all(mres.x >= self.lower) and np.all(
-            mres.x <= self.upper)
-        is_valid = is_finite and in_bounds
-
-        # Use the new point only if it is valid and return a better results
-        if is_valid and mres.fun < e:
-            return mres.fun, mres.x
-        else:
-            return e, x_tmp
-
-
-def dual_annealing(func, bounds, args=(), maxiter=1000,
-                   minimizer_kwargs=None, initial_temp=5230.,
-                   restart_temp_ratio=2.e-5, visit=2.62, accept=-5.0,
-                   maxfun=1e7, seed=None, no_local_search=False,
-                   callback=None, x0=None):
-    """
-    Find the global minimum of a function using Dual Annealing.
-
-    Parameters
-    ----------
-    func : callable
-        The objective function to be minimized. Must be in the form
-        ``f(x, *args)``, where ``x`` is the argument in the form of a 1-D array
-        and ``args`` is a  tuple of any additional fixed parameters needed to
-        completely specify the function.
-    bounds : sequence or `Bounds`
-        Bounds for variables. There are two ways to specify the bounds:
-
-        1. Instance of `Bounds` class.
-        2. Sequence of ``(min, max)`` pairs for each element in `x`.
-
-    args : tuple, optional
-        Any additional fixed parameters needed to completely specify the
-        objective function.
-    maxiter : int, optional
-        The maximum number of global search iterations. Default value is 1000.
-    minimizer_kwargs : dict, optional
-        Keyword arguments to be passed to the local minimizer
-        (`minimize`). An important option could be ``method`` for the minimizer
-        method to use.
-        If no keyword arguments are provided, the local minimizer defaults to
-        'L-BFGS-B' and uses the already supplied bounds. If `minimizer_kwargs`
-        is specified, then the dict must contain all parameters required to
-        control the local minimization. `args` is ignored in this dict, as it is
-        passed automatically. `bounds` is not automatically passed on to the
-        local minimizer as the method may not support them.
-    initial_temp : float, optional
-        The initial temperature, use higher values to facilitates a wider
-        search of the energy landscape, allowing dual_annealing to escape
-        local minima that it is trapped in. Default value is 5230. Range is
-        (0.01, 5.e4].
-    restart_temp_ratio : float, optional
-        During the annealing process, temperature is decreasing, when it
-        reaches ``initial_temp * restart_temp_ratio``, the reannealing process
-        is triggered. Default value of the ratio is 2e-5. Range is (0, 1).
-    visit : float, optional
-        Parameter for visiting distribution. Default value is 2.62. Higher
-        values give the visiting distribution a heavier tail, this makes
-        the algorithm jump to a more distant region. The value range is (1, 3].
-    accept : float, optional
-        Parameter for acceptance distribution. It is used to control the
-        probability of acceptance. The lower the acceptance parameter, the
-        smaller the probability of acceptance. Default value is -5.0 with
-        a range (-1e4, -5].
-    maxfun : int, optional
-        Soft limit for the number of objective function calls. If the
-        algorithm is in the middle of a local search, this number will be
-        exceeded, the algorithm will stop just after the local search is
-        done. Default value is 1e7.
-    seed : {None, int, `numpy.random.Generator`, `numpy.random.RandomState`}, optional
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-        Specify `seed` for repeatable minimizations. The random numbers
-        generated with this seed only affect the visiting distribution function
-        and new coordinates generation.
-    no_local_search : bool, optional
-        If `no_local_search` is set to True, a traditional Generalized
-        Simulated Annealing will be performed with no local search
-        strategy applied.
-    callback : callable, optional
-        A callback function with signature ``callback(x, f, context)``,
-        which will be called for all minima found.
-        ``x`` and ``f`` are the coordinates and function value of the
-        latest minimum found, and ``context`` has value in [0, 1, 2], with the
-        following meaning:
-
-            - 0: minimum detected in the annealing process.
-            - 1: detection occurred in the local search process.
-            - 2: detection done in the dual annealing process.
-
-        If the callback implementation returns True, the algorithm will stop.
-    x0 : ndarray, shape(n,), optional
-        Coordinates of a single N-D starting point.
-
-    Returns
-    -------
-    res : OptimizeResult
-        The optimization result represented as a `OptimizeResult` object.
-        Important attributes are: ``x`` the solution array, ``fun`` the value
-        of the function at the solution, and ``message`` which describes the
-        cause of the termination.
-        See `OptimizeResult` for a description of other attributes.
-
-    Notes
-    -----
-    This function implements the Dual Annealing optimization. This stochastic
-    approach derived from [3]_ combines the generalization of CSA (Classical
-    Simulated Annealing) and FSA (Fast Simulated Annealing) [1]_ [2]_ coupled
-    to a strategy for applying a local search on accepted locations [4]_.
-    An alternative implementation of this same algorithm is described in [5]_
-    and benchmarks are presented in [6]_. This approach introduces an advanced
-    method to refine the solution found by the generalized annealing
-    process. This algorithm uses a distorted Cauchy-Lorentz visiting
-    distribution, with its shape controlled by the parameter :math:`q_{v}`
-
-    .. math::
-
-        g_{q_{v}}(\\Delta x(t)) \\propto \\frac{ \\
-        \\left[T_{q_{v}}(t) \\right]^{-\\frac{D}{3-q_{v}}}}{ \\
-        \\left[{1+(q_{v}-1)\\frac{(\\Delta x(t))^{2}} { \\
-        \\left[T_{q_{v}}(t)\\right]^{\\frac{2}{3-q_{v}}}}}\\right]^{ \\
-        \\frac{1}{q_{v}-1}+\\frac{D-1}{2}}}
-
-    Where :math:`t` is the artificial time. This visiting distribution is used
-    to generate a trial jump distance :math:`\\Delta x(t)` of variable
-    :math:`x(t)` under artificial temperature :math:`T_{q_{v}}(t)`.
-
-    From the starting point, after calling the visiting distribution
-    function, the acceptance probability is computed as follows:
-
-    .. math::
-
-        p_{q_{a}} = \\min{\\{1,\\left[1-(1-q_{a}) \\beta \\Delta E \\right]^{ \\
-        \\frac{1}{1-q_{a}}}\\}}
-
-    Where :math:`q_{a}` is a acceptance parameter. For :math:`q_{a}<1`, zero
-    acceptance probability is assigned to the cases where
-
-    .. math::
-
-        [1-(1-q_{a}) \\beta \\Delta E] < 0
-
-    The artificial temperature :math:`T_{q_{v}}(t)` is decreased according to
-
-    .. math::
-
-        T_{q_{v}}(t) = T_{q_{v}}(1) \\frac{2^{q_{v}-1}-1}{\\left( \\
-        1 + t\\right)^{q_{v}-1}-1}
-
-    Where :math:`q_{v}` is the visiting parameter.
-
-    .. versionadded:: 1.2.0
-
-    References
-    ----------
-    .. [1] Tsallis C. Possible generalization of Boltzmann-Gibbs
-        statistics. Journal of Statistical Physics, 52, 479-487 (1998).
-    .. [2] Tsallis C, Stariolo DA. Generalized Simulated Annealing.
-        Physica A, 233, 395-406 (1996).
-    .. [3] Xiang Y, Sun DY, Fan W, Gong XG. Generalized Simulated
-        Annealing Algorithm and Its Application to the Thomson Model.
-        Physics Letters A, 233, 216-220 (1997).
-    .. [4] Xiang Y, Gong XG. Efficiency of Generalized Simulated
-        Annealing. Physical Review E, 62, 4473 (2000).
-    .. [5] Xiang Y, Gubian S, Suomela B, Hoeng J. Generalized
-        Simulated Annealing for Efficient Global Optimization: the GenSA
-        Package for R. The R Journal, Volume 5/1 (2013).
-    .. [6] Mullen, K. Continuous Global Optimization in R. Journal of
-        Statistical Software, 60(6), 1 - 45, (2014).
-        :doi:`10.18637/jss.v060.i06`
-
-    Examples
-    --------
-    The following example is a 10-D problem, with many local minima.
-    The function involved is called Rastrigin
-    (https://en.wikipedia.org/wiki/Rastrigin_function)
-
-    >>> import numpy as np
-    >>> from scipy.optimize import dual_annealing
-    >>> func = lambda x: np.sum(x*x - 10*np.cos(2*np.pi*x)) + 10*np.size(x)
-    >>> lw = [-5.12] * 10
-    >>> up = [5.12] * 10
-    >>> ret = dual_annealing(func, bounds=list(zip(lw, up)))
-    >>> ret.x
-    array([-4.26437714e-09, -3.91699361e-09, -1.86149218e-09, -3.97165720e-09,
-           -6.29151648e-09, -6.53145322e-09, -3.93616815e-09, -6.55623025e-09,
-           -6.05775280e-09, -5.00668935e-09]) # random
-    >>> ret.fun
-    0.000000
-
-    """
-
-    if isinstance(bounds, Bounds):
-        bounds = new_bounds_to_old(bounds.lb, bounds.ub, len(bounds.lb))
-
-    if x0 is not None and not len(x0) == len(bounds):
-        raise ValueError('Bounds size does not match x0')
-
-    lu = list(zip(*bounds))
-    lower = np.array(lu[0])
-    upper = np.array(lu[1])
-    # Check that restart temperature ratio is correct
-    if restart_temp_ratio <= 0. or restart_temp_ratio >= 1.:
-        raise ValueError('Restart temperature ratio has to be in range (0, 1)')
-    # Checking bounds are valid
-    if (np.any(np.isinf(lower)) or np.any(np.isinf(upper)) or np.any(
-            np.isnan(lower)) or np.any(np.isnan(upper))):
-        raise ValueError('Some bounds values are inf values or nan values')
-    # Checking that bounds are consistent
-    if not np.all(lower < upper):
-        raise ValueError('Bounds are not consistent min < max')
-    # Checking that bounds are the same length
-    if not len(lower) == len(upper):
-        raise ValueError('Bounds do not have the same dimensions')
-
-    # Wrapper for the objective function
-    func_wrapper = ObjectiveFunWrapper(func, maxfun, *args)
-
-    # minimizer_kwargs has to be a dict, not None
-    minimizer_kwargs = minimizer_kwargs or {}
-
-    minimizer_wrapper = LocalSearchWrapper(
-        bounds, func_wrapper, *args, **minimizer_kwargs)
-
-    # Initialization of random Generator for reproducible runs if seed provided
-    rand_state = check_random_state(seed)
-    # Initialization of the energy state
-    energy_state = EnergyState(lower, upper, callback)
-    energy_state.reset(func_wrapper, rand_state, x0)
-    # Minimum value of annealing temperature reached to perform
-    # re-annealing
-    temperature_restart = initial_temp * restart_temp_ratio
-    # VisitingDistribution instance
-    visit_dist = VisitingDistribution(lower, upper, visit, rand_state)
-    # Strategy chain instance
-    strategy_chain = StrategyChain(accept, visit_dist, func_wrapper,
-                                   minimizer_wrapper, rand_state, energy_state)
-    need_to_stop = False
-    iteration = 0
-    message = []
-    # OptimizeResult object to be returned
-    optimize_res = OptimizeResult()
-    optimize_res.success = True
-    optimize_res.status = 0
-
-    t1 = np.exp((visit - 1) * np.log(2.0)) - 1.0
-    # Run the search loop
-    while not need_to_stop:
-        for i in range(maxiter):
-            # Compute temperature for this step
-            s = float(i) + 2.0
-            t2 = np.exp((visit - 1) * np.log(s)) - 1.0
-            temperature = initial_temp * t1 / t2
-            if iteration >= maxiter:
-                message.append("Maximum number of iteration reached")
-                need_to_stop = True
-                break
-            # Need a re-annealing process?
-            if temperature < temperature_restart:
-                energy_state.reset(func_wrapper, rand_state)
-                break
-            # starting strategy chain
-            val = strategy_chain.run(i, temperature)
-            if val is not None:
-                message.append(val)
-                need_to_stop = True
-                optimize_res.success = False
-                break
-            # Possible local search at the end of the strategy chain
-            if not no_local_search:
-                val = strategy_chain.local_search()
-                if val is not None:
-                    message.append(val)
-                    need_to_stop = True
-                    optimize_res.success = False
-                    break
-            iteration += 1
-
-    # Setting the OptimizeResult values
-    optimize_res.x = energy_state.xbest
-    optimize_res.fun = energy_state.ebest
-    optimize_res.nit = iteration
-    optimize_res.nfev = func_wrapper.nfev
-    optimize_res.njev = func_wrapper.ngev
-    optimize_res.nhev = func_wrapper.nhev
-    optimize_res.message = message
-    return optimize_res
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_group_columns.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_group_columns.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index 6bf365e82423d10a4e2fe926977e1e1167aab4e5..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_group_columns.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_hessian_update_strategy.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_hessian_update_strategy.py
deleted file mode 100644
index c72d1159314e0ea449085df44ef80d1d0dbb1ebb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_hessian_update_strategy.py
+++ /dev/null
@@ -1,475 +0,0 @@
-"""Hessian update strategies for quasi-Newton optimization methods."""
-import numpy as np
-from numpy.linalg import norm
-from scipy.linalg import get_blas_funcs, issymmetric
-from warnings import warn
-
-
-__all__ = ['HessianUpdateStrategy', 'BFGS', 'SR1']
-
-
-class HessianUpdateStrategy:
-    """Interface for implementing Hessian update strategies.
-
-    Many optimization methods make use of Hessian (or inverse Hessian)
-    approximations, such as the quasi-Newton methods BFGS, SR1, L-BFGS.
-    Some of these  approximations, however, do not actually need to store
-    the entire matrix or can compute the internal matrix product with a
-    given vector in a very efficiently manner. This class serves as an
-    abstract interface between the optimization algorithm and the
-    quasi-Newton update strategies, giving freedom of implementation
-    to store and update the internal matrix as efficiently as possible.
-    Different choices of initialization and update procedure will result
-    in different quasi-Newton strategies.
-
-    Four methods should be implemented in derived classes: ``initialize``,
-    ``update``, ``dot`` and ``get_matrix``.
-
-    Notes
-    -----
-    Any instance of a class that implements this interface,
-    can be accepted by the method ``minimize`` and used by
-    the compatible solvers to approximate the Hessian (or
-    inverse Hessian) used by the optimization algorithms.
-    """
-
-    def initialize(self, n, approx_type):
-        """Initialize internal matrix.
-
-        Allocate internal memory for storing and updating
-        the Hessian or its inverse.
-
-        Parameters
-        ----------
-        n : int
-            Problem dimension.
-        approx_type : {'hess', 'inv_hess'}
-            Selects either the Hessian or the inverse Hessian.
-            When set to 'hess' the Hessian will be stored and updated.
-            When set to 'inv_hess' its inverse will be used instead.
-        """
-        raise NotImplementedError("The method ``initialize(n, approx_type)``"
-                                  " is not implemented.")
-
-    def update(self, delta_x, delta_grad):
-        """Update internal matrix.
-
-        Update Hessian matrix or its inverse (depending on how 'approx_type'
-        is defined) using information about the last evaluated points.
-
-        Parameters
-        ----------
-        delta_x : ndarray
-            The difference between two points the gradient
-            function have been evaluated at: ``delta_x = x2 - x1``.
-        delta_grad : ndarray
-            The difference between the gradients:
-            ``delta_grad = grad(x2) - grad(x1)``.
-        """
-        raise NotImplementedError("The method ``update(delta_x, delta_grad)``"
-                                  " is not implemented.")
-
-    def dot(self, p):
-        """Compute the product of the internal matrix with the given vector.
-
-        Parameters
-        ----------
-        p : array_like
-            1-D array representing a vector.
-
-        Returns
-        -------
-        Hp : array
-            1-D represents the result of multiplying the approximation matrix
-            by vector p.
-        """
-        raise NotImplementedError("The method ``dot(p)``"
-                                  " is not implemented.")
-
-    def get_matrix(self):
-        """Return current internal matrix.
-
-        Returns
-        -------
-        H : ndarray, shape (n, n)
-            Dense matrix containing either the Hessian
-            or its inverse (depending on how 'approx_type'
-            is defined).
-        """
-        raise NotImplementedError("The method ``get_matrix(p)``"
-                                  " is not implemented.")
-
-
-class FullHessianUpdateStrategy(HessianUpdateStrategy):
-    """Hessian update strategy with full dimensional internal representation.
-    """
-    _syr = get_blas_funcs('syr', dtype='d')  # Symmetric rank 1 update
-    _syr2 = get_blas_funcs('syr2', dtype='d')  # Symmetric rank 2 update
-    # Symmetric matrix-vector product
-    _symv = get_blas_funcs('symv', dtype='d')
-
-    def __init__(self, init_scale='auto'):
-        self.init_scale = init_scale
-        # Until initialize is called we can't really use the class,
-        # so it makes sense to set everything to None.
-        self.first_iteration = None
-        self.approx_type = None
-        self.B = None
-        self.H = None
-
-    def initialize(self, n, approx_type):
-        """Initialize internal matrix.
-
-        Allocate internal memory for storing and updating
-        the Hessian or its inverse.
-
-        Parameters
-        ----------
-        n : int
-            Problem dimension.
-        approx_type : {'hess', 'inv_hess'}
-            Selects either the Hessian or the inverse Hessian.
-            When set to 'hess' the Hessian will be stored and updated.
-            When set to 'inv_hess' its inverse will be used instead.
-        """
-        self.first_iteration = True
-        self.n = n
-        self.approx_type = approx_type
-        if approx_type not in ('hess', 'inv_hess'):
-            raise ValueError("`approx_type` must be 'hess' or 'inv_hess'.")
-        # Create matrix
-        if self.approx_type == 'hess':
-            self.B = np.eye(n, dtype=float)
-        else:
-            self.H = np.eye(n, dtype=float)
-
-    def _auto_scale(self, delta_x, delta_grad):
-        # Heuristic to scale matrix at first iteration.
-        # Described in Nocedal and Wright "Numerical Optimization"
-        # p.143 formula (6.20).
-        s_norm2 = np.dot(delta_x, delta_x)
-        y_norm2 = np.dot(delta_grad, delta_grad)
-        ys = np.abs(np.dot(delta_grad, delta_x))
-        if ys == 0.0 or y_norm2 == 0 or s_norm2 == 0:
-            return 1
-        if self.approx_type == 'hess':
-            return y_norm2 / ys
-        else:
-            return ys / y_norm2
-
-    def _update_implementation(self, delta_x, delta_grad):
-        raise NotImplementedError("The method ``_update_implementation``"
-                                  " is not implemented.")
-
-    def update(self, delta_x, delta_grad):
-        """Update internal matrix.
-
-        Update Hessian matrix or its inverse (depending on how 'approx_type'
-        is defined) using information about the last evaluated points.
-
-        Parameters
-        ----------
-        delta_x : ndarray
-            The difference between two points the gradient
-            function have been evaluated at: ``delta_x = x2 - x1``.
-        delta_grad : ndarray
-            The difference between the gradients:
-            ``delta_grad = grad(x2) - grad(x1)``.
-        """
-        if np.all(delta_x == 0.0):
-            return
-        if np.all(delta_grad == 0.0):
-            warn('delta_grad == 0.0. Check if the approximated '
-                 'function is linear. If the function is linear '
-                 'better results can be obtained by defining the '
-                 'Hessian as zero instead of using quasi-Newton '
-                 'approximations.',
-                 UserWarning, stacklevel=2)
-            return
-        if self.first_iteration:
-            # Get user specific scale
-            if isinstance(self.init_scale, str) and self.init_scale == "auto":
-                scale = self._auto_scale(delta_x, delta_grad)
-            else:
-                scale = self.init_scale
-
-            # Check for complex: numpy will silently cast a complex array to
-            # a real one but not so for scalar as it raises a TypeError.
-            # Checking here brings a consistent behavior.
-            replace = False
-            if np.size(scale) == 1:
-                # to account for the legacy behavior having the exact same cast
-                scale = float(scale)
-            elif np.iscomplexobj(scale):
-                raise TypeError("init_scale contains complex elements, "
-                                "must be real.")
-            else:  # test explicitly for allowed shapes and values
-                replace = True
-                if self.approx_type == 'hess':
-                    shape = np.shape(self.B)
-                    dtype = self.B.dtype
-                else:
-                    shape = np.shape(self.H)
-                    dtype = self.H.dtype
-                # copy, will replace the original
-                scale = np.array(scale, dtype=dtype, copy=True)
-
-                # it has to match the shape of the matrix for the multiplication,
-                # no implicit broadcasting is allowed
-                if shape != (init_shape := np.shape(scale)):
-                    raise ValueError("If init_scale is an array, it must have the "
-                                     f"dimensions of the hess/inv_hess: {shape}."
-                                     f" Got {init_shape}.")
-                if not issymmetric(scale):
-                    raise ValueError("If init_scale is an array, it must be"
-                                     " symmetric (passing scipy.linalg.issymmetric)"
-                                     " to be an approximation of a hess/inv_hess.")
-
-            # Scale initial matrix with ``scale * np.eye(n)`` or replace
-            # This is not ideal, we could assign the scale directly in
-            # initialize, but we would need to
-            if self.approx_type == 'hess':
-                if replace:
-                    self.B = scale
-                else:
-                    self.B *= scale
-            else:
-                if replace:
-                    self.H = scale
-                else:
-                    self.H *= scale
-            self.first_iteration = False
-        self._update_implementation(delta_x, delta_grad)
-
-    def dot(self, p):
-        """Compute the product of the internal matrix with the given vector.
-
-        Parameters
-        ----------
-        p : array_like
-            1-D array representing a vector.
-
-        Returns
-        -------
-        Hp : array
-            1-D represents the result of multiplying the approximation matrix
-            by vector p.
-        """
-        if self.approx_type == 'hess':
-            return self._symv(1, self.B, p)
-        else:
-            return self._symv(1, self.H, p)
-
-    def get_matrix(self):
-        """Return the current internal matrix.
-
-        Returns
-        -------
-        M : ndarray, shape (n, n)
-            Dense matrix containing either the Hessian or its inverse
-            (depending on how `approx_type` was defined).
-        """
-        if self.approx_type == 'hess':
-            M = np.copy(self.B)
-        else:
-            M = np.copy(self.H)
-        li = np.tril_indices_from(M, k=-1)
-        M[li] = M.T[li]
-        return M
-
-
-class BFGS(FullHessianUpdateStrategy):
-    """Broyden-Fletcher-Goldfarb-Shanno (BFGS) Hessian update strategy.
-
-    Parameters
-    ----------
-    exception_strategy : {'skip_update', 'damp_update'}, optional
-        Define how to proceed when the curvature condition is violated.
-        Set it to 'skip_update' to just skip the update. Or, alternatively,
-        set it to 'damp_update' to interpolate between the actual BFGS
-        result and the unmodified matrix. Both exceptions strategies
-        are explained  in [1]_, p.536-537.
-    min_curvature : float
-        This number, scaled by a normalization factor, defines the
-        minimum curvature ``dot(delta_grad, delta_x)`` allowed to go
-        unaffected by the exception strategy. By default is equal to
-        1e-8 when ``exception_strategy = 'skip_update'`` and equal
-        to 0.2 when ``exception_strategy = 'damp_update'``.
-    init_scale : {float, np.array, 'auto'}
-        This parameter can be used to initialize the Hessian or its
-        inverse. When a float is given, the relevant array is initialized
-        to ``np.eye(n) * init_scale``, where ``n`` is the problem dimension.
-        Alternatively, if a precisely ``(n, n)`` shaped, symmetric array is given,
-        this array will be used. Otherwise an error is generated.
-        Set it to 'auto' in order to use an automatic heuristic for choosing
-        the initial scale. The heuristic is described in [1]_, p.143.
-        The default is 'auto'.
-
-    Notes
-    -----
-    The update is based on the description in [1]_, p.140.
-
-    References
-    ----------
-    .. [1] Nocedal, Jorge, and Stephen J. Wright. "Numerical optimization"
-           Second Edition (2006).
-    """
-
-    def __init__(self, exception_strategy='skip_update', min_curvature=None,
-                 init_scale='auto'):
-        if exception_strategy == 'skip_update':
-            if min_curvature is not None:
-                self.min_curvature = min_curvature
-            else:
-                self.min_curvature = 1e-8
-        elif exception_strategy == 'damp_update':
-            if min_curvature is not None:
-                self.min_curvature = min_curvature
-            else:
-                self.min_curvature = 0.2
-        else:
-            raise ValueError("`exception_strategy` must be 'skip_update' "
-                             "or 'damp_update'.")
-
-        super().__init__(init_scale)
-        self.exception_strategy = exception_strategy
-
-    def _update_inverse_hessian(self, ys, Hy, yHy, s):
-        """Update the inverse Hessian matrix.
-
-        BFGS update using the formula:
-
-            ``H <- H + ((H*y).T*y + s.T*y)/(s.T*y)^2 * (s*s.T)
-                     - 1/(s.T*y) * ((H*y)*s.T + s*(H*y).T)``
-
-        where ``s = delta_x`` and ``y = delta_grad``. This formula is
-        equivalent to (6.17) in [1]_ written in a more efficient way
-        for implementation.
-
-        References
-        ----------
-        .. [1] Nocedal, Jorge, and Stephen J. Wright. "Numerical optimization"
-               Second Edition (2006).
-        """
-        self.H = self._syr2(-1.0 / ys, s, Hy, a=self.H)
-        self.H = self._syr((ys + yHy) / ys ** 2, s, a=self.H)
-
-    def _update_hessian(self, ys, Bs, sBs, y):
-        """Update the Hessian matrix.
-
-        BFGS update using the formula:
-
-            ``B <- B - (B*s)*(B*s).T/s.T*(B*s) + y*y^T/s.T*y``
-
-        where ``s`` is short for ``delta_x`` and ``y`` is short
-        for ``delta_grad``. Formula (6.19) in [1]_.
-
-        References
-        ----------
-        .. [1] Nocedal, Jorge, and Stephen J. Wright. "Numerical optimization"
-               Second Edition (2006).
-        """
-        self.B = self._syr(1.0 / ys, y, a=self.B)
-        self.B = self._syr(-1.0 / sBs, Bs, a=self.B)
-
-    def _update_implementation(self, delta_x, delta_grad):
-        # Auxiliary variables w and z
-        if self.approx_type == 'hess':
-            w = delta_x
-            z = delta_grad
-        else:
-            w = delta_grad
-            z = delta_x
-        # Do some common operations
-        wz = np.dot(w, z)
-        Mw = self.dot(w)
-        wMw = Mw.dot(w)
-        # Guarantee that wMw > 0 by reinitializing matrix.
-        # While this is always true in exact arithmetic,
-        # indefinite matrix may appear due to roundoff errors.
-        if wMw <= 0.0:
-            scale = self._auto_scale(delta_x, delta_grad)
-            # Reinitialize matrix
-            if self.approx_type == 'hess':
-                self.B = scale * np.eye(self.n, dtype=float)
-            else:
-                self.H = scale * np.eye(self.n, dtype=float)
-            # Do common operations for new matrix
-            Mw = self.dot(w)
-            wMw = Mw.dot(w)
-        # Check if curvature condition is violated
-        if wz <= self.min_curvature * wMw:
-            # If the option 'skip_update' is set
-            # we just skip the update when the condition
-            # is violated.
-            if self.exception_strategy == 'skip_update':
-                return
-            # If the option 'damp_update' is set we
-            # interpolate between the actual BFGS
-            # result and the unmodified matrix.
-            elif self.exception_strategy == 'damp_update':
-                update_factor = (1-self.min_curvature) / (1 - wz/wMw)
-                z = update_factor*z + (1-update_factor)*Mw
-                wz = np.dot(w, z)
-        # Update matrix
-        if self.approx_type == 'hess':
-            self._update_hessian(wz, Mw, wMw, z)
-        else:
-            self._update_inverse_hessian(wz, Mw, wMw, z)
-
-
-class SR1(FullHessianUpdateStrategy):
-    """Symmetric-rank-1 Hessian update strategy.
-
-    Parameters
-    ----------
-    min_denominator : float
-        This number, scaled by a normalization factor,
-        defines the minimum denominator magnitude allowed
-        in the update. When the condition is violated we skip
-        the update. By default uses ``1e-8``.
-    init_scale : {float, np.array, 'auto'}, optional
-        This parameter can be used to initialize the Hessian or its
-        inverse. When a float is given, the relevant array is initialized
-        to ``np.eye(n) * init_scale``, where ``n`` is the problem dimension.
-        Alternatively, if a precisely ``(n, n)`` shaped, symmetric array is given,
-        this array will be used. Otherwise an error is generated.
-        Set it to 'auto' in order to use an automatic heuristic for choosing
-        the initial scale. The heuristic is described in [1]_, p.143.
-        The default is 'auto'.
-
-    Notes
-    -----
-    The update is based on the description in [1]_, p.144-146.
-
-    References
-    ----------
-    .. [1] Nocedal, Jorge, and Stephen J. Wright. "Numerical optimization"
-           Second Edition (2006).
-    """
-
-    def __init__(self, min_denominator=1e-8, init_scale='auto'):
-        self.min_denominator = min_denominator
-        super().__init__(init_scale)
-
-    def _update_implementation(self, delta_x, delta_grad):
-        # Auxiliary variables w and z
-        if self.approx_type == 'hess':
-            w = delta_x
-            z = delta_grad
-        else:
-            w = delta_grad
-            z = delta_x
-        # Do some common operations
-        Mw = self.dot(w)
-        z_minus_Mw = z - Mw
-        denominator = np.dot(w, z_minus_Mw)
-        # If the denominator is too small
-        # we just skip the update.
-        if np.abs(denominator) <= self.min_denominator*norm(w)*norm(z_minus_Mw):
-            return
-        # Update matrix
-        if self.approx_type == 'hess':
-            self.B = self._syr(1/denominator, z_minus_Mw, a=self.B)
-        else:
-            self.H = self._syr(1/denominator, z_minus_Mw, a=self.H)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 43b2c01c877847bccb4b4df9c75ef020fcbd77a8..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/_highs_constants.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/_highs_constants.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index b3160b97e9bdd8a9bd31565c57e754e7b580b82f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/_highs_constants.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HConst.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HConst.pxd
deleted file mode 100644
index 503d9e74a2636d2ee192491214102b84b3c67277..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HConst.pxd
+++ /dev/null
@@ -1,106 +0,0 @@
-# cython: language_level=3
-
-from libcpp cimport bool
-from libcpp.string cimport string
-
-cdef extern from "HConst.h" nogil:
-
-    const int HIGHS_CONST_I_INF "kHighsIInf"
-    const double HIGHS_CONST_INF "kHighsInf"
-    const double kHighsTiny
-    const double kHighsZero
-    const int kHighsThreadLimit
-
-    cdef enum HighsDebugLevel:
-      HighsDebugLevel_kHighsDebugLevelNone "kHighsDebugLevelNone" = 0
-      HighsDebugLevel_kHighsDebugLevelCheap "kHighsDebugLevelCheap"
-      HighsDebugLevel_kHighsDebugLevelCostly "kHighsDebugLevelCostly"
-      HighsDebugLevel_kHighsDebugLevelExpensive "kHighsDebugLevelExpensive"
-      HighsDebugLevel_kHighsDebugLevelMin "kHighsDebugLevelMin" = HighsDebugLevel_kHighsDebugLevelNone
-      HighsDebugLevel_kHighsDebugLevelMax "kHighsDebugLevelMax" = HighsDebugLevel_kHighsDebugLevelExpensive
-
-    ctypedef enum HighsModelStatus:
-        HighsModelStatusNOTSET "HighsModelStatus::kNotset" = 0
-        HighsModelStatusLOAD_ERROR "HighsModelStatus::kLoadError"
-        HighsModelStatusMODEL_ERROR "HighsModelStatus::kModelError"
-        HighsModelStatusPRESOLVE_ERROR "HighsModelStatus::kPresolveError"
-        HighsModelStatusSOLVE_ERROR "HighsModelStatus::kSolveError"
-        HighsModelStatusPOSTSOLVE_ERROR "HighsModelStatus::kPostsolveError"
-        HighsModelStatusMODEL_EMPTY "HighsModelStatus::kModelEmpty"
-        HighsModelStatusOPTIMAL "HighsModelStatus::kOptimal"
-        HighsModelStatusINFEASIBLE "HighsModelStatus::kInfeasible"
-        HighsModelStatus_UNBOUNDED_OR_INFEASIBLE "HighsModelStatus::kUnboundedOrInfeasible"
-        HighsModelStatusUNBOUNDED "HighsModelStatus::kUnbounded"
-        HighsModelStatusREACHED_DUAL_OBJECTIVE_VALUE_UPPER_BOUND "HighsModelStatus::kObjectiveBound"
-        HighsModelStatusREACHED_OBJECTIVE_TARGET "HighsModelStatus::kObjectiveTarget"
-        HighsModelStatusREACHED_TIME_LIMIT "HighsModelStatus::kTimeLimit"
-        HighsModelStatusREACHED_ITERATION_LIMIT "HighsModelStatus::kIterationLimit"
-        HighsModelStatusUNKNOWN "HighsModelStatus::kUnknown"
-        HighsModelStatusHIGHS_MODEL_STATUS_MIN "HighsModelStatus::kMin" = HighsModelStatusNOTSET
-        HighsModelStatusHIGHS_MODEL_STATUS_MAX "HighsModelStatus::kMax" = HighsModelStatusUNKNOWN
-
-    cdef enum HighsBasisStatus:
-        HighsBasisStatusLOWER "HighsBasisStatus::kLower" = 0, # (slack) variable is at its lower bound [including fixed variables]
-        HighsBasisStatusBASIC "HighsBasisStatus::kBasic" # (slack) variable is basic
-        HighsBasisStatusUPPER "HighsBasisStatus::kUpper" # (slack) variable is at its upper bound
-        HighsBasisStatusZERO "HighsBasisStatus::kZero" # free variable is non-basic and set to zero
-        HighsBasisStatusNONBASIC "HighsBasisStatus::kNonbasic" # nonbasic with no specific bound information - useful for users and postsolve
-
-    cdef enum SolverOption:
-        SOLVER_OPTION_SIMPLEX "SolverOption::SOLVER_OPTION_SIMPLEX" = -1
-        SOLVER_OPTION_CHOOSE "SolverOption::SOLVER_OPTION_CHOOSE"
-        SOLVER_OPTION_IPM "SolverOption::SOLVER_OPTION_IPM"
-
-    cdef enum PrimalDualStatus:
-        PrimalDualStatusSTATUS_NOT_SET "PrimalDualStatus::STATUS_NOT_SET" = -1
-        PrimalDualStatusSTATUS_MIN "PrimalDualStatus::STATUS_MIN" = PrimalDualStatusSTATUS_NOT_SET
-        PrimalDualStatusSTATUS_NO_SOLUTION "PrimalDualStatus::STATUS_NO_SOLUTION"
-        PrimalDualStatusSTATUS_UNKNOWN "PrimalDualStatus::STATUS_UNKNOWN"
-        PrimalDualStatusSTATUS_INFEASIBLE_POINT "PrimalDualStatus::STATUS_INFEASIBLE_POINT"
-        PrimalDualStatusSTATUS_FEASIBLE_POINT "PrimalDualStatus::STATUS_FEASIBLE_POINT"
-        PrimalDualStatusSTATUS_MAX "PrimalDualStatus::STATUS_MAX" = PrimalDualStatusSTATUS_FEASIBLE_POINT
-
-    cdef enum HighsOptionType:
-        HighsOptionTypeBOOL "HighsOptionType::kBool" = 0
-        HighsOptionTypeINT "HighsOptionType::kInt"
-        HighsOptionTypeDOUBLE "HighsOptionType::kDouble"
-        HighsOptionTypeSTRING "HighsOptionType::kString"
-
-    # workaround for lack of enum class support in Cython < 3.x
-    # cdef enum class ObjSense(int):
-    #     ObjSenseMINIMIZE "ObjSense::kMinimize" = 1
-    #     ObjSenseMAXIMIZE "ObjSense::kMaximize" = -1
-
-    cdef cppclass ObjSense:
-        pass
-
-    cdef ObjSense ObjSenseMINIMIZE "ObjSense::kMinimize"
-    cdef ObjSense ObjSenseMAXIMIZE "ObjSense::kMaximize"
-
-    # cdef enum class MatrixFormat(int):
-    #     MatrixFormatkColwise "MatrixFormat::kColwise" = 1
-    #     MatrixFormatkRowwise "MatrixFormat::kRowwise"
-    #     MatrixFormatkRowwisePartitioned "MatrixFormat::kRowwisePartitioned"
-
-    cdef cppclass MatrixFormat:
-        pass
-
-    cdef MatrixFormat MatrixFormatkColwise "MatrixFormat::kColwise"
-    cdef MatrixFormat MatrixFormatkRowwise "MatrixFormat::kRowwise"
-    cdef MatrixFormat MatrixFormatkRowwisePartitioned "MatrixFormat::kRowwisePartitioned"
-
-    # cdef enum class HighsVarType(int):
-    #     kContinuous "HighsVarType::kContinuous"
-    #     kInteger "HighsVarType::kInteger"
-    #     kSemiContinuous "HighsVarType::kSemiContinuous"
-    #     kSemiInteger "HighsVarType::kSemiInteger"
-    #     kImplicitInteger "HighsVarType::kImplicitInteger"
-
-    cdef cppclass HighsVarType:
-        pass
-
-    cdef HighsVarType kContinuous "HighsVarType::kContinuous"
-    cdef HighsVarType kInteger "HighsVarType::kInteger"
-    cdef HighsVarType kSemiContinuous "HighsVarType::kSemiContinuous"
-    cdef HighsVarType kSemiInteger "HighsVarType::kSemiInteger"
-    cdef HighsVarType kImplicitInteger "HighsVarType::kImplicitInteger"
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/Highs.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/Highs.pxd
deleted file mode 100644
index 7139908d034127430b81f667548a055404ac033a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/Highs.pxd
+++ /dev/null
@@ -1,56 +0,0 @@
-# cython: language_level=3
-
-from libc.stdio cimport FILE
-
-from libcpp cimport bool
-from libcpp.string cimport string
-
-from .HighsStatus cimport HighsStatus
-from .HighsOptions cimport HighsOptions
-from .HighsInfo cimport HighsInfo
-from .HighsLp cimport (
-    HighsLp,
-    HighsSolution,
-    HighsBasis,
-    ObjSense,
-)
-from .HConst cimport HighsModelStatus
-
-cdef extern from "Highs.h":
-    # From HiGHS/src/Highs.h
-    cdef cppclass Highs:
-        HighsStatus passHighsOptions(const HighsOptions& options)
-        HighsStatus passModel(const HighsLp& lp)
-        HighsStatus run()
-        HighsStatus setHighsLogfile(FILE* logfile)
-        HighsStatus setHighsOutput(FILE* output)
-        HighsStatus writeHighsOptions(const string filename, const bool report_only_non_default_values = true)
-
-        # split up for cython below
-        #const HighsModelStatus& getModelStatus(const bool scaled_model = False) const
-        const HighsModelStatus & getModelStatus() const
-
-        const HighsInfo& getHighsInfo "getInfo" () const
-        string modelStatusToString(const HighsModelStatus model_status) const
-        #HighsStatus getHighsInfoValue(const string& info, int& value)
-        HighsStatus getHighsInfoValue(const string& info, double& value) const
-        const HighsOptions& getHighsOptions() const
-
-        const HighsLp& getLp() const
-
-        HighsStatus writeSolution(const string filename, const bool pretty) const
-
-        HighsStatus setBasis()
-        const HighsSolution& getSolution() const
-        const HighsBasis& getBasis() const
-
-        bool changeObjectiveSense(const ObjSense sense)
-
-        HighsStatus setHighsOptionValueBool "setOptionValue" (const string & option, const bool value)
-        HighsStatus setHighsOptionValueInt "setOptionValue" (const string & option, const int value)
-        HighsStatus setHighsOptionValueStr "setOptionValue" (const string & option, const string & value)
-        HighsStatus setHighsOptionValueDbl "setOptionValue" (const string & option, const double value)
-
-        string primalDualStatusToString(const int primal_dual_status)
-
-        void resetGlobalScheduler(bool blocking)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsIO.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsIO.pxd
deleted file mode 100644
index 82b80ae643f10be9c0e40c43f8ff0693c649052c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsIO.pxd
+++ /dev/null
@@ -1,20 +0,0 @@
-# cython: language_level=3
-
-
-cdef extern from "HighsIO.h" nogil:
-    # workaround for lack of enum class support in Cython < 3.x
-    # cdef enum class HighsLogType(int):
-    #     kInfo "HighsLogType::kInfo" = 1
-    #     kDetailed "HighsLogType::kDetailed"
-    #     kVerbose "HighsLogType::kVerbose"
-    #     kWarning "HighsLogType::kWarning"
-    #     kError "HighsLogType::kError"
-
-    cdef cppclass HighsLogType:
-        pass
-
-    cdef HighsLogType kInfo "HighsLogType::kInfo"
-    cdef HighsLogType kDetailed "HighsLogType::kDetailed"
-    cdef HighsLogType kVerbose "HighsLogType::kVerbose"
-    cdef HighsLogType kWarning "HighsLogType::kWarning"
-    cdef HighsLogType kError "HighsLogType::kError"
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsInfo.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsInfo.pxd
deleted file mode 100644
index 789b510898967499b1f04129b742cf505f4af75a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsInfo.pxd
+++ /dev/null
@@ -1,22 +0,0 @@
-# cython: language_level=3
-
-cdef extern from "HighsInfo.h" nogil:
-    # From HiGHS/src/lp_data/HighsInfo.h
-    cdef cppclass HighsInfo:
-        # Inherited from HighsInfoStruct:
-        int mip_node_count
-        int simplex_iteration_count
-        int ipm_iteration_count
-        int crossover_iteration_count
-        int primal_solution_status
-        int dual_solution_status
-        int basis_validity
-        double objective_function_value
-        double mip_dual_bound
-        double mip_gap
-        int num_primal_infeasibilities
-        double max_primal_infeasibility
-        double sum_primal_infeasibilities
-        int num_dual_infeasibilities
-        double max_dual_infeasibility
-        double sum_dual_infeasibilities
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsLp.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsLp.pxd
deleted file mode 100644
index 0944f083743f1c34847c3060278f5b7c40869251..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsLp.pxd
+++ /dev/null
@@ -1,46 +0,0 @@
-# cython: language_level=3
-
-from libcpp cimport bool
-from libcpp.string cimport string
-from libcpp.vector cimport vector
-
-from .HConst cimport HighsBasisStatus, ObjSense, HighsVarType
-from .HighsSparseMatrix cimport HighsSparseMatrix
-
-
-cdef extern from "HighsLp.h" nogil:
-    # From HiGHS/src/lp_data/HighsLp.h
-    cdef cppclass HighsLp:
-        int num_col_
-        int num_row_
-
-        vector[double] col_cost_
-        vector[double] col_lower_
-        vector[double] col_upper_
-        vector[double] row_lower_
-        vector[double] row_upper_
-
-        HighsSparseMatrix a_matrix_
-
-        ObjSense sense_
-        double offset_
-
-        string model_name_
-
-        vector[string] row_names_
-        vector[string] col_names_
-
-        vector[HighsVarType] integrality_
-
-        bool isMip() const
-
-    cdef cppclass HighsSolution:
-        vector[double] col_value
-        vector[double] col_dual
-        vector[double] row_value
-        vector[double] row_dual
-
-    cdef cppclass HighsBasis:
-        bool valid_
-        vector[HighsBasisStatus] col_status
-        vector[HighsBasisStatus] row_status
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsLpUtils.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsLpUtils.pxd
deleted file mode 100644
index 18ede36c146acb395754fef33e888c7434ed307f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsLpUtils.pxd
+++ /dev/null
@@ -1,9 +0,0 @@
-# cython: language_level=3
-
-from .HighsStatus cimport HighsStatus
-from .HighsLp cimport HighsLp
-from .HighsOptions cimport HighsOptions
-
-cdef extern from "HighsLpUtils.h" nogil:
-    # From HiGHS/src/lp_data/HighsLpUtils.h
-    HighsStatus assessLp(HighsLp& lp, const HighsOptions& options)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsModelUtils.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsModelUtils.pxd
deleted file mode 100644
index 4fccc2e80046d0cee3011eaef7510802b226a85e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsModelUtils.pxd
+++ /dev/null
@@ -1,10 +0,0 @@
-# cython: language_level=3
-
-from libcpp.string cimport string
-
-from .HConst cimport HighsModelStatus
-
-cdef extern from "HighsModelUtils.h" nogil:
-    # From HiGHS/src/lp_data/HighsModelUtils.h
-    string utilHighsModelStatusToString(const HighsModelStatus model_status)
-    string utilBasisStatusToString(const int primal_dual_status)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsOptions.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsOptions.pxd
deleted file mode 100644
index 920c10c19e30cad9229ce98bfa1e73970feb9f1e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsOptions.pxd
+++ /dev/null
@@ -1,110 +0,0 @@
-# cython: language_level=3
-
-from libc.stdio cimport FILE
-
-from libcpp cimport bool
-from libcpp.string cimport string
-from libcpp.vector cimport vector
-
-from .HConst cimport HighsOptionType
-
-cdef extern from "HighsOptions.h" nogil:
-
-    cdef cppclass OptionRecord:
-        HighsOptionType type
-        string name
-        string description
-        bool advanced
-
-    cdef cppclass OptionRecordBool(OptionRecord):
-        bool* value
-        bool default_value
-
-    cdef cppclass OptionRecordInt(OptionRecord):
-        int* value
-        int lower_bound
-        int default_value
-        int upper_bound
-
-    cdef cppclass OptionRecordDouble(OptionRecord):
-        double* value
-        double lower_bound
-        double default_value
-        double upper_bound
-
-    cdef cppclass OptionRecordString(OptionRecord):
-        string* value
-        string default_value
-
-    cdef cppclass HighsOptions:
-        # From HighsOptionsStruct:
-
-        # Options read from the command line
-        string model_file
-        string presolve
-        string solver
-        string parallel
-        double time_limit
-        string options_file
-
-        # Options read from the file
-        double infinite_cost
-        double infinite_bound
-        double small_matrix_value
-        double large_matrix_value
-        double primal_feasibility_tolerance
-        double dual_feasibility_tolerance
-        double ipm_optimality_tolerance
-        double dual_objective_value_upper_bound
-        int highs_debug_level
-        int simplex_strategy
-        int simplex_scale_strategy
-        int simplex_crash_strategy
-        int simplex_dual_edge_weight_strategy
-        int simplex_primal_edge_weight_strategy
-        int simplex_iteration_limit
-        int simplex_update_limit
-        int ipm_iteration_limit
-        int highs_min_threads
-        int highs_max_threads
-        int message_level
-        string solution_file
-        bool write_solution_to_file
-        bool write_solution_pretty
-
-        # Advanced options
-        bool run_crossover
-        bool mps_parser_type_free
-        int keep_n_rows
-        int allowed_simplex_matrix_scale_factor
-        int allowed_simplex_cost_scale_factor
-        int simplex_dualise_strategy
-        int simplex_permute_strategy
-        int dual_simplex_cleanup_strategy
-        int simplex_price_strategy
-        int dual_chuzc_sort_strategy
-        bool simplex_initial_condition_check
-        double simplex_initial_condition_tolerance
-        double dual_steepest_edge_weight_log_error_threshhold
-        double dual_simplex_cost_perturbation_multiplier
-        double start_crossover_tolerance
-        bool less_infeasible_DSE_check
-        bool less_infeasible_DSE_choose_row
-        bool use_original_HFactor_logic
-
-        # Options for MIP solver
-        int mip_max_nodes
-        int mip_report_level
-
-        # Switch for MIP solver
-        bool mip
-
-        # Options for HighsPrintMessage and HighsLogMessage
-        FILE* logfile
-        FILE* output
-        int message_level
-        string solution_file
-        bool write_solution_to_file
-        bool write_solution_pretty
-
-        vector[OptionRecord*] records
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsRuntimeOptions.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsRuntimeOptions.pxd
deleted file mode 100644
index 3e227b7a44f797469bab9ad8521c7c0273eca7d2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsRuntimeOptions.pxd
+++ /dev/null
@@ -1,9 +0,0 @@
-# cython: language_level=3
-
-from libcpp cimport bool
-
-from .HighsOptions cimport HighsOptions
-
-cdef extern from "HighsRuntimeOptions.h" nogil:
-    # From HiGHS/src/lp_data/HighsRuntimeOptions.h
-    bool loadOptions(int argc, char** argv, HighsOptions& options)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsStatus.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsStatus.pxd
deleted file mode 100644
index b47813b5d3917c3734476980e26b532dfc37aac4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/HighsStatus.pxd
+++ /dev/null
@@ -1,12 +0,0 @@
-# cython: language_level=3
-
-from libcpp.string cimport string
-
-cdef extern from "HighsStatus.h" nogil:
-    ctypedef enum HighsStatus:
-        HighsStatusError "HighsStatus::kError" = -1
-        HighsStatusOK "HighsStatus::kOk" = 0
-        HighsStatusWarning "HighsStatus::kWarning" = 1
-
-
-    string highsStatusToString(HighsStatus status)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/SimplexConst.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/SimplexConst.pxd
deleted file mode 100644
index 77e7b96320d6fab81009e6a80e784c722e036b4f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/SimplexConst.pxd
+++ /dev/null
@@ -1,95 +0,0 @@
-# cython: language_level=3
-
-from libcpp cimport bool
-
-cdef extern from "SimplexConst.h" nogil:
-
-    cdef enum SimplexAlgorithm:
-        PRIMAL "SimplexAlgorithm::kPrimal" = 0
-        DUAL "SimplexAlgorithm::kDual"
-
-    cdef enum SimplexStrategy:
-        SIMPLEX_STRATEGY_MIN "SimplexStrategy::kSimplexStrategyMin" = 0
-        SIMPLEX_STRATEGY_CHOOSE "SimplexStrategy::kSimplexStrategyChoose" = SIMPLEX_STRATEGY_MIN
-        SIMPLEX_STRATEGY_DUAL "SimplexStrategy::kSimplexStrategyDual"
-        SIMPLEX_STRATEGY_DUAL_PLAIN "SimplexStrategy::kSimplexStrategyDualPlain" = SIMPLEX_STRATEGY_DUAL
-        SIMPLEX_STRATEGY_DUAL_TASKS "SimplexStrategy::kSimplexStrategyDualTasks"
-        SIMPLEX_STRATEGY_DUAL_MULTI "SimplexStrategy::kSimplexStrategyDualMulti"
-        SIMPLEX_STRATEGY_PRIMAL "SimplexStrategy::kSimplexStrategyPrimal"
-        SIMPLEX_STRATEGY_MAX "SimplexStrategy::kSimplexStrategyMax" = SIMPLEX_STRATEGY_PRIMAL
-        SIMPLEX_STRATEGY_NUM "SimplexStrategy::kSimplexStrategyNum"
-
-    cdef enum SimplexCrashStrategy:
-        SIMPLEX_CRASH_STRATEGY_MIN "SimplexCrashStrategy::kSimplexCrashStrategyMin" = 0
-        SIMPLEX_CRASH_STRATEGY_OFF "SimplexCrashStrategy::kSimplexCrashStrategyOff" = SIMPLEX_CRASH_STRATEGY_MIN
-        SIMPLEX_CRASH_STRATEGY_LTSSF_K "SimplexCrashStrategy::kSimplexCrashStrategyLtssfK"
-        SIMPLEX_CRASH_STRATEGY_LTSSF "SimplexCrashStrategy::kSimplexCrashStrategyLtssf" = SIMPLEX_CRASH_STRATEGY_LTSSF_K
-        SIMPLEX_CRASH_STRATEGY_BIXBY "SimplexCrashStrategy::kSimplexCrashStrategyBixby"
-        SIMPLEX_CRASH_STRATEGY_LTSSF_PRI "SimplexCrashStrategy::kSimplexCrashStrategyLtssfPri"
-        SIMPLEX_CRASH_STRATEGY_LTSF_K "SimplexCrashStrategy::kSimplexCrashStrategyLtsfK"
-        SIMPLEX_CRASH_STRATEGY_LTSF_PRI "SimplexCrashStrategy::kSimplexCrashStrategyLtsfPri"
-        SIMPLEX_CRASH_STRATEGY_LTSF "SimplexCrashStrategy::kSimplexCrashStrategyLtsf"
-        SIMPLEX_CRASH_STRATEGY_BIXBY_NO_NONZERO_COL_COSTS "SimplexCrashStrategy::kSimplexCrashStrategyBixbyNoNonzeroColCosts"
-        SIMPLEX_CRASH_STRATEGY_BASIC "SimplexCrashStrategy::kSimplexCrashStrategyBasic"
-        SIMPLEX_CRASH_STRATEGY_TEST_SING "SimplexCrashStrategy::kSimplexCrashStrategyTestSing"
-        SIMPLEX_CRASH_STRATEGY_MAX "SimplexCrashStrategy::kSimplexCrashStrategyMax" = SIMPLEX_CRASH_STRATEGY_TEST_SING
-
-    cdef enum SimplexEdgeWeightStrategy:
-        SIMPLEX_EDGE_WEIGHT_STRATEGY_MIN "SimplexEdgeWeightStrategy::kSimplexEdgeWeightStrategyMin" = -1
-        SIMPLEX_EDGE_WEIGHT_STRATEGY_CHOOSE "SimplexEdgeWeightStrategy::kSimplexEdgeWeightStrategyChoose" = SIMPLEX_EDGE_WEIGHT_STRATEGY_MIN
-        SIMPLEX_EDGE_WEIGHT_STRATEGY_DANTZIG "SimplexEdgeWeightStrategy::kSimplexEdgeWeightStrategyDantzig"
-        SIMPLEX_EDGE_WEIGHT_STRATEGY_DEVEX "SimplexEdgeWeightStrategy::kSimplexEdgeWeightStrategyDevex"
-        SIMPLEX_EDGE_WEIGHT_STRATEGY_STEEPEST_EDGE "SimplexEdgeWeightStrategy::kSimplexEdgeWeightStrategySteepestEdge"
-        SIMPLEX_EDGE_WEIGHT_STRATEGY_STEEPEST_EDGE_UNIT_INITIAL "SimplexEdgeWeightStrategy::kSimplexEdgeWeightStrategySteepestEdgeUnitInitial"
-        SIMPLEX_EDGE_WEIGHT_STRATEGY_MAX "SimplexEdgeWeightStrategy::kSimplexEdgeWeightStrategyMax" = SIMPLEX_EDGE_WEIGHT_STRATEGY_STEEPEST_EDGE_UNIT_INITIAL
-
-    cdef enum SimplexPriceStrategy:
-        SIMPLEX_PRICE_STRATEGY_MIN = 0
-        SIMPLEX_PRICE_STRATEGY_COL = SIMPLEX_PRICE_STRATEGY_MIN
-        SIMPLEX_PRICE_STRATEGY_ROW
-        SIMPLEX_PRICE_STRATEGY_ROW_SWITCH
-        SIMPLEX_PRICE_STRATEGY_ROW_SWITCH_COL_SWITCH
-        SIMPLEX_PRICE_STRATEGY_MAX = SIMPLEX_PRICE_STRATEGY_ROW_SWITCH_COL_SWITCH
-
-    cdef enum SimplexDualChuzcStrategy:
-        SIMPLEX_DUAL_CHUZC_STRATEGY_MIN = 0
-        SIMPLEX_DUAL_CHUZC_STRATEGY_CHOOSE = SIMPLEX_DUAL_CHUZC_STRATEGY_MIN
-        SIMPLEX_DUAL_CHUZC_STRATEGY_QUAD
-        SIMPLEX_DUAL_CHUZC_STRATEGY_HEAP
-        SIMPLEX_DUAL_CHUZC_STRATEGY_BOTH
-        SIMPLEX_DUAL_CHUZC_STRATEGY_MAX = SIMPLEX_DUAL_CHUZC_STRATEGY_BOTH
-
-    cdef enum InvertHint:
-        INVERT_HINT_NO = 0
-        INVERT_HINT_UPDATE_LIMIT_REACHED
-        INVERT_HINT_SYNTHETIC_CLOCK_SAYS_INVERT
-        INVERT_HINT_POSSIBLY_OPTIMAL
-        INVERT_HINT_POSSIBLY_PRIMAL_UNBOUNDED
-        INVERT_HINT_POSSIBLY_DUAL_UNBOUNDED
-        INVERT_HINT_POSSIBLY_SINGULAR_BASIS
-        INVERT_HINT_PRIMAL_INFEASIBLE_IN_PRIMAL_SIMPLEX
-        INVERT_HINT_CHOOSE_COLUMN_FAIL
-        INVERT_HINT_Count
-
-    cdef enum DualEdgeWeightMode:
-        DANTZIG "DualEdgeWeightMode::DANTZIG" = 0
-        DEVEX "DualEdgeWeightMode::DEVEX"
-        STEEPEST_EDGE "DualEdgeWeightMode::STEEPEST_EDGE"
-        Count "DualEdgeWeightMode::Count"
-
-    cdef enum PriceMode:
-        ROW "PriceMode::ROW" = 0
-        COL "PriceMode::COL"
-
-    const int PARALLEL_THREADS_DEFAULT
-    const int DUAL_TASKS_MIN_THREADS
-    const int DUAL_MULTI_MIN_THREADS
-
-    const bool invert_if_row_out_negative
-
-    const int NONBASIC_FLAG_TRUE
-    const int NONBASIC_FLAG_FALSE
-
-    const int NONBASIC_MOVE_UP
-    const int NONBASIC_MOVE_DN
-    const int NONBASIC_MOVE_ZE
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/highs_c_api.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/highs_c_api.pxd
deleted file mode 100644
index b7097caf30bcd298bd11f11fd8911f841eefbdde..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_highs/src/cython/highs_c_api.pxd
+++ /dev/null
@@ -1,7 +0,0 @@
-# cython: language_level=3
-
-cdef extern from "highs_c_api.h" nogil:
-    int Highs_passLp(void* highs, int numcol, int numrow, int numnz,
-                     double* colcost, double* collower, double* colupper,
-                     double* rowlower, double* rowupper,
-                     int* astart, int* aindex,  double* avalue)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_isotonic.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_isotonic.py
deleted file mode 100644
index bbbce625a7e5f9befd53bd4b5a1d043e71537bee..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_isotonic.py
+++ /dev/null
@@ -1,158 +0,0 @@
-from __future__ import annotations
-from typing import TYPE_CHECKING
-
-import numpy as np
-
-from ._optimize import OptimizeResult
-from ._pava_pybind import pava
-
-if TYPE_CHECKING:
-    import numpy.typing as npt
-
-
-__all__ = ["isotonic_regression"]
-
-
-def isotonic_regression(
-    y: npt.ArrayLike,
-    *,
-    weights: npt.ArrayLike | None = None,
-    increasing: bool = True,
-) -> OptimizeResult:
-    r"""Nonparametric isotonic regression.
-
-    A (not strictly) monotonically increasing array `x` with the same length
-    as `y` is calculated by the pool adjacent violators algorithm (PAVA), see
-    [1]_. See the Notes section for more details.
-
-    Parameters
-    ----------
-    y : (N,) array_like
-        Response variable.
-    weights : (N,) array_like or None
-        Case weights.
-    increasing : bool
-        If True, fit monotonic increasing, i.e. isotonic, regression.
-        If False, fit a monotonic decreasing, i.e. antitonic, regression.
-        Default is True.
-
-    Returns
-    -------
-    res : OptimizeResult
-        The optimization result represented as a ``OptimizeResult`` object.
-        Important attributes are:
-
-        - ``x``: The isotonic regression solution, i.e. an increasing (or
-          decreasing) array of the same length than y, with elements in the
-          range from min(y) to max(y).
-        - ``weights`` : Array with the sum of case weights for each block
-          (or pool) B.
-        - ``blocks``: Array of length B+1 with the indices of the start
-          positions of each block (or pool) B. The j-th block is given by
-          ``x[blocks[j]:blocks[j+1]]`` for which all values are the same.
-
-    Notes
-    -----
-    Given data :math:`y` and case weights :math:`w`, the isotonic regression
-    solves the following optimization problem:
-
-    .. math::
-
-        \operatorname{argmin}_{x_i} \sum_i w_i (y_i - x_i)^2 \quad
-        \text{subject to } x_i \leq x_j \text{ whenever } i \leq j \,.
-
-    For every input value :math:`y_i`, it generates a value :math:`x_i` such
-    that :math:`x` is increasing (but not strictly), i.e.
-    :math:`x_i \leq x_{i+1}`. This is accomplished by the PAVA.
-    The solution consists of pools or blocks, i.e. neighboring elements of
-    :math:`x`, e.g. :math:`x_i` and :math:`x_{i+1}`, that all have the same
-    value.
-
-    Most interestingly, the solution stays the same if the squared loss is
-    replaced by the wide class of Bregman functions which are the unique
-    class of strictly consistent scoring functions for the mean, see [2]_
-    and references therein.
-
-    The implemented version of PAVA according to [1]_ has a computational
-    complexity of O(N) with input size N.
-
-    References
-    ----------
-    .. [1] Busing, F. M. T. A. (2022).
-           Monotone Regression: A Simple and Fast O(n) PAVA Implementation.
-           Journal of Statistical Software, Code Snippets, 102(1), 1-25.
-           :doi:`10.18637/jss.v102.c01`
-    .. [2] Jordan, A.I., Mühlemann, A. & Ziegel, J.F.
-           Characterizing the optimal solutions to the isotonic regression
-           problem for identifiable functionals.
-           Ann Inst Stat Math 74, 489-514 (2022).
-           :doi:`10.1007/s10463-021-00808-0`
-
-    Examples
-    --------
-    This example demonstrates that ``isotonic_regression`` really solves a
-    constrained optimization problem.
-
-    >>> import numpy as np
-    >>> from scipy.optimize import isotonic_regression, minimize
-    >>> y = [1.5, 1.0, 4.0, 6.0, 5.7, 5.0, 7.8, 9.0, 7.5, 9.5, 9.0]
-    >>> def objective(yhat, y):
-    ...     return np.sum((yhat - y)**2)
-    >>> def constraint(yhat, y):
-    ...     # This is for a monotonically increasing regression.
-    ...     return np.diff(yhat)
-    >>> result = minimize(objective, x0=y, args=(y,),
-    ...                   constraints=[{'type': 'ineq',
-    ...                                 'fun': lambda x: constraint(x, y)}])
-    >>> result.x
-    array([1.25      , 1.25      , 4.        , 5.56666667, 5.56666667,
-           5.56666667, 7.8       , 8.25      , 8.25      , 9.25      ,
-           9.25      ])
-    >>> result = isotonic_regression(y)
-    >>> result.x
-    array([1.25      , 1.25      , 4.        , 5.56666667, 5.56666667,
-           5.56666667, 7.8       , 8.25      , 8.25      , 9.25      ,
-           9.25      ])
-
-    The big advantage of ``isotonic_regression`` compared to calling
-    ``minimize`` is that it is more user friendly, i.e. one does not need to
-    define objective and constraint functions, and that it is orders of
-    magnitudes faster. On commodity hardware (in 2023), for normal distributed
-    input y of length 1000, the minimizer takes about 4 seconds, while
-    ``isotonic_regression`` takes about 200 microseconds.
-    """
-    yarr = np.atleast_1d(y)  # Check yarr.ndim == 1 is implicit (pybind11) in pava.
-    order = slice(None) if increasing else slice(None, None, -1)
-    x = np.array(yarr[order], order="C", dtype=np.float64, copy=True)
-    if weights is None:
-        wx = np.ones_like(yarr, dtype=np.float64)
-    else:
-        warr = np.atleast_1d(weights)
-
-        if not (yarr.ndim == warr.ndim == 1 and yarr.shape[0] == warr.shape[0]):
-            raise ValueError(
-                "Input arrays y and w must have one dimension of equal length."
-            )
-        if np.any(warr <= 0):
-            raise ValueError("Weights w must be strictly positive.")
-
-        wx = np.array(warr[order], order="C", dtype=np.float64, copy=True)
-    n = x.shape[0]
-    r = np.full(shape=n + 1, fill_value=-1, dtype=np.intp)
-    x, wx, r, b = pava(x, wx, r)
-    # Now that we know the number of blocks b, we only keep the relevant part
-    # of r and wx.
-    # As information: Due to the pava implementation, after the last block
-    # index, there might be smaller numbers appended to r, e.g.
-    # r = [0, 10, 8, 7] which in the end should be r = [0, 10].
-    r = r[:b + 1]
-    wx = wx[:b]
-    if not increasing:
-        x = x[::-1]
-        wx = wx[::-1]
-        r = r[-1] - r[::-1]
-    return OptimizeResult(
-        x=x,
-        weights=wx,
-        blocks=r,
-    )
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lbfgsb_py.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lbfgsb_py.py
deleted file mode 100644
index 42ad9038ef0ce4c29b0cf22c5c9d2a1c029827c3..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lbfgsb_py.py
+++ /dev/null
@@ -1,543 +0,0 @@
-"""
-Functions
----------
-.. autosummary::
-   :toctree: generated/
-
-    fmin_l_bfgs_b
-
-"""
-
-## License for the Python wrapper
-## ==============================
-
-## Copyright (c) 2004 David M. Cooke 
-
-## Permission is hereby granted, free of charge, to any person obtaining a
-## copy of this software and associated documentation files (the "Software"),
-## to deal in the Software without restriction, including without limitation
-## the rights to use, copy, modify, merge, publish, distribute, sublicense,
-## and/or sell copies of the Software, and to permit persons to whom the
-## Software is furnished to do so, subject to the following conditions:
-
-## The above copyright notice and this permission notice shall be included in
-## all copies or substantial portions of the Software.
-
-## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-## FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-## DEALINGS IN THE SOFTWARE.
-
-## Modifications by Travis Oliphant and Enthought, Inc. for inclusion in SciPy
-
-import numpy as np
-from numpy import array, asarray, float64, zeros
-from . import _lbfgsb
-from ._optimize import (MemoizeJac, OptimizeResult, _call_callback_maybe_halt,
-                        _wrap_callback, _check_unknown_options,
-                        _prepare_scalar_function)
-from ._constraints import old_bound_to_new
-
-from scipy.sparse.linalg import LinearOperator
-
-__all__ = ['fmin_l_bfgs_b', 'LbfgsInvHessProduct']
-
-
-def fmin_l_bfgs_b(func, x0, fprime=None, args=(),
-                  approx_grad=0,
-                  bounds=None, m=10, factr=1e7, pgtol=1e-5,
-                  epsilon=1e-8,
-                  iprint=-1, maxfun=15000, maxiter=15000, disp=None,
-                  callback=None, maxls=20):
-    """
-    Minimize a function func using the L-BFGS-B algorithm.
-
-    Parameters
-    ----------
-    func : callable f(x,*args)
-        Function to minimize.
-    x0 : ndarray
-        Initial guess.
-    fprime : callable fprime(x,*args), optional
-        The gradient of `func`. If None, then `func` returns the function
-        value and the gradient (``f, g = func(x, *args)``), unless
-        `approx_grad` is True in which case `func` returns only ``f``.
-    args : sequence, optional
-        Arguments to pass to `func` and `fprime`.
-    approx_grad : bool, optional
-        Whether to approximate the gradient numerically (in which case
-        `func` returns only the function value).
-    bounds : list, optional
-        ``(min, max)`` pairs for each element in ``x``, defining
-        the bounds on that parameter. Use None or +-inf for one of ``min`` or
-        ``max`` when there is no bound in that direction.
-    m : int, optional
-        The maximum number of variable metric corrections
-        used to define the limited memory matrix. (The limited memory BFGS
-        method does not store the full hessian but uses this many terms in an
-        approximation to it.)
-    factr : float, optional
-        The iteration stops when
-        ``(f^k - f^{k+1})/max{|f^k|,|f^{k+1}|,1} <= factr * eps``,
-        where ``eps`` is the machine precision, which is automatically
-        generated by the code. Typical values for `factr` are: 1e12 for
-        low accuracy; 1e7 for moderate accuracy; 10.0 for extremely
-        high accuracy. See Notes for relationship to `ftol`, which is exposed
-        (instead of `factr`) by the `scipy.optimize.minimize` interface to
-        L-BFGS-B.
-    pgtol : float, optional
-        The iteration will stop when
-        ``max{|proj g_i | i = 1, ..., n} <= pgtol``
-        where ``proj g_i`` is the i-th component of the projected gradient.
-    epsilon : float, optional
-        Step size used when `approx_grad` is True, for numerically
-        calculating the gradient
-    iprint : int, optional
-        Controls the frequency of output. ``iprint < 0`` means no output;
-        ``iprint = 0``    print only one line at the last iteration;
-        ``0 < iprint < 99`` print also f and ``|proj g|`` every iprint iterations;
-        ``iprint = 99``   print details of every iteration except n-vectors;
-        ``iprint = 100``  print also the changes of active set and final x;
-        ``iprint > 100``  print details of every iteration including x and g.
-    disp : int, optional
-        If zero, then no output. If a positive number, then this over-rides
-        `iprint` (i.e., `iprint` gets the value of `disp`).
-    maxfun : int, optional
-        Maximum number of function evaluations. Note that this function
-        may violate the limit because of evaluating gradients by numerical
-        differentiation.
-    maxiter : int, optional
-        Maximum number of iterations.
-    callback : callable, optional
-        Called after each iteration, as ``callback(xk)``, where ``xk`` is the
-        current parameter vector.
-    maxls : int, optional
-        Maximum number of line search steps (per iteration). Default is 20.
-
-    Returns
-    -------
-    x : array_like
-        Estimated position of the minimum.
-    f : float
-        Value of `func` at the minimum.
-    d : dict
-        Information dictionary.
-
-        * d['warnflag'] is
-
-          - 0 if converged,
-          - 1 if too many function evaluations or too many iterations,
-          - 2 if stopped for another reason, given in d['task']
-
-        * d['grad'] is the gradient at the minimum (should be 0 ish)
-        * d['funcalls'] is the number of function calls made.
-        * d['nit'] is the number of iterations.
-
-    See also
-    --------
-    minimize: Interface to minimization algorithms for multivariate
-        functions. See the 'L-BFGS-B' `method` in particular. Note that the
-        `ftol` option is made available via that interface, while `factr` is
-        provided via this interface, where `factr` is the factor multiplying
-        the default machine floating-point precision to arrive at `ftol`:
-        ``ftol = factr * numpy.finfo(float).eps``.
-
-    Notes
-    -----
-    License of L-BFGS-B (FORTRAN code):
-
-    The version included here (in fortran code) is 3.0
-    (released April 25, 2011). It was written by Ciyou Zhu, Richard Byrd,
-    and Jorge Nocedal . It carries the following
-    condition for use:
-
-    This software is freely available, but we expect that all publications
-    describing work using this software, or all commercial products using it,
-    quote at least one of the references given below. This software is released
-    under the BSD License.
-
-    References
-    ----------
-    * R. H. Byrd, P. Lu and J. Nocedal. A Limited Memory Algorithm for Bound
-      Constrained Optimization, (1995), SIAM Journal on Scientific and
-      Statistical Computing, 16, 5, pp. 1190-1208.
-    * C. Zhu, R. H. Byrd and J. Nocedal. L-BFGS-B: Algorithm 778: L-BFGS-B,
-      FORTRAN routines for large scale bound constrained optimization (1997),
-      ACM Transactions on Mathematical Software, 23, 4, pp. 550 - 560.
-    * J.L. Morales and J. Nocedal. L-BFGS-B: Remark on Algorithm 778: L-BFGS-B,
-      FORTRAN routines for large scale bound constrained optimization (2011),
-      ACM Transactions on Mathematical Software, 38, 1.
-
-    Examples
-    --------
-    Solve a linear regression problem via `fmin_l_bfgs_b`. To do this, first we define
-    an objective function ``f(m, b) = (y - y_model)**2``, where `y` describes the
-    observations and `y_model` the prediction of the linear model as
-    ``y_model = m*x + b``. The bounds for the parameters, ``m`` and ``b``, are arbitrarily
-    chosen as ``(0,5)`` and ``(5,10)`` for this example.
-
-    >>> import numpy as np
-    >>> from scipy.optimize import fmin_l_bfgs_b
-    >>> X = np.arange(0, 10, 1)
-    >>> M = 2
-    >>> B = 3
-    >>> Y = M * X + B
-    >>> def func(parameters, *args):
-    ...     x = args[0]
-    ...     y = args[1]
-    ...     m, b = parameters
-    ...     y_model = m*x + b
-    ...     error = sum(np.power((y - y_model), 2))
-    ...     return error
-
-    >>> initial_values = np.array([0.0, 1.0])
-
-    >>> x_opt, f_opt, info = fmin_l_bfgs_b(func, x0=initial_values, args=(X, Y),
-    ...                                    approx_grad=True)
-    >>> x_opt, f_opt
-    array([1.99999999, 3.00000006]), 1.7746231151323805e-14  # may vary
-
-    The optimized parameters in ``x_opt`` agree with the ground truth parameters
-    ``m`` and ``b``. Next, let us perform a bound contrained optimization using the `bounds`
-    parameter. 
-
-    >>> bounds = [(0, 5), (5, 10)]
-    >>> x_opt, f_op, info = fmin_l_bfgs_b(func, x0=initial_values, args=(X, Y),
-    ...                                   approx_grad=True, bounds=bounds)
-    >>> x_opt, f_opt
-    array([1.65990508, 5.31649385]), 15.721334516453945  # may vary    
-    """
-    # handle fprime/approx_grad
-    if approx_grad:
-        fun = func
-        jac = None
-    elif fprime is None:
-        fun = MemoizeJac(func)
-        jac = fun.derivative
-    else:
-        fun = func
-        jac = fprime
-
-    # build options
-    callback = _wrap_callback(callback)
-    opts = {'disp': disp,
-            'iprint': iprint,
-            'maxcor': m,
-            'ftol': factr * np.finfo(float).eps,
-            'gtol': pgtol,
-            'eps': epsilon,
-            'maxfun': maxfun,
-            'maxiter': maxiter,
-            'callback': callback,
-            'maxls': maxls}
-
-    res = _minimize_lbfgsb(fun, x0, args=args, jac=jac, bounds=bounds,
-                           **opts)
-    d = {'grad': res['jac'],
-         'task': res['message'],
-         'funcalls': res['nfev'],
-         'nit': res['nit'],
-         'warnflag': res['status']}
-    f = res['fun']
-    x = res['x']
-
-    return x, f, d
-
-
-def _minimize_lbfgsb(fun, x0, args=(), jac=None, bounds=None,
-                     disp=None, maxcor=10, ftol=2.2204460492503131e-09,
-                     gtol=1e-5, eps=1e-8, maxfun=15000, maxiter=15000,
-                     iprint=-1, callback=None, maxls=20,
-                     finite_diff_rel_step=None, **unknown_options):
-    """
-    Minimize a scalar function of one or more variables using the L-BFGS-B
-    algorithm.
-
-    Options
-    -------
-    disp : None or int
-        If `disp is None` (the default), then the supplied version of `iprint`
-        is used. If `disp is not None`, then it overrides the supplied version
-        of `iprint` with the behaviour you outlined.
-    maxcor : int
-        The maximum number of variable metric corrections used to
-        define the limited memory matrix. (The limited memory BFGS
-        method does not store the full hessian but uses this many terms
-        in an approximation to it.)
-    ftol : float
-        The iteration stops when ``(f^k -
-        f^{k+1})/max{|f^k|,|f^{k+1}|,1} <= ftol``.
-    gtol : float
-        The iteration will stop when ``max{|proj g_i | i = 1, ..., n}
-        <= gtol`` where ``proj g_i`` is the i-th component of the
-        projected gradient.
-    eps : float or ndarray
-        If `jac is None` the absolute step size used for numerical
-        approximation of the jacobian via forward differences.
-    maxfun : int
-        Maximum number of function evaluations. Note that this function
-        may violate the limit because of evaluating gradients by numerical
-        differentiation.
-    maxiter : int
-        Maximum number of iterations.
-    iprint : int, optional
-        Controls the frequency of output. ``iprint < 0`` means no output;
-        ``iprint = 0``    print only one line at the last iteration;
-        ``0 < iprint < 99`` print also f and ``|proj g|`` every iprint iterations;
-        ``iprint = 99``   print details of every iteration except n-vectors;
-        ``iprint = 100``  print also the changes of active set and final x;
-        ``iprint > 100``  print details of every iteration including x and g.
-    maxls : int, optional
-        Maximum number of line search steps (per iteration). Default is 20.
-    finite_diff_rel_step : None or array_like, optional
-        If `jac in ['2-point', '3-point', 'cs']` the relative step size to
-        use for numerical approximation of the jacobian. The absolute step
-        size is computed as ``h = rel_step * sign(x) * max(1, abs(x))``,
-        possibly adjusted to fit into the bounds. For ``method='3-point'``
-        the sign of `h` is ignored. If None (default) then step is selected
-        automatically.
-
-    Notes
-    -----
-    The option `ftol` is exposed via the `scipy.optimize.minimize` interface,
-    but calling `scipy.optimize.fmin_l_bfgs_b` directly exposes `factr`. The
-    relationship between the two is ``ftol = factr * numpy.finfo(float).eps``.
-    I.e., `factr` multiplies the default machine floating-point precision to
-    arrive at `ftol`.
-
-    """
-    _check_unknown_options(unknown_options)
-    m = maxcor
-    pgtol = gtol
-    factr = ftol / np.finfo(float).eps
-
-    x0 = asarray(x0).ravel()
-    n, = x0.shape
-
-    # historically old-style bounds were/are expected by lbfgsb.
-    # That's still the case but we'll deal with new-style from here on,
-    # it's easier
-    if bounds is None:
-        pass
-    elif len(bounds) != n:
-        raise ValueError('length of x0 != length of bounds')
-    else:
-        bounds = np.array(old_bound_to_new(bounds))
-
-        # check bounds
-        if (bounds[0] > bounds[1]).any():
-            raise ValueError(
-                "LBFGSB - one of the lower bounds is greater than an upper bound."
-            )
-
-        # initial vector must lie within the bounds. Otherwise ScalarFunction and
-        # approx_derivative will cause problems
-        x0 = np.clip(x0, bounds[0], bounds[1])
-
-    if disp is not None:
-        if disp == 0:
-            iprint = -1
-        else:
-            iprint = disp
-
-    # _prepare_scalar_function can use bounds=None to represent no bounds
-    sf = _prepare_scalar_function(fun, x0, jac=jac, args=args, epsilon=eps,
-                                  bounds=bounds,
-                                  finite_diff_rel_step=finite_diff_rel_step)
-
-    func_and_grad = sf.fun_and_grad
-
-    fortran_int = _lbfgsb.types.intvar.dtype
-
-    nbd = zeros(n, fortran_int)
-    low_bnd = zeros(n, float64)
-    upper_bnd = zeros(n, float64)
-    bounds_map = {(-np.inf, np.inf): 0,
-                  (1, np.inf): 1,
-                  (1, 1): 2,
-                  (-np.inf, 1): 3}
-
-    if bounds is not None:
-        for i in range(0, n):
-            l, u = bounds[0, i], bounds[1, i]
-            if not np.isinf(l):
-                low_bnd[i] = l
-                l = 1
-            if not np.isinf(u):
-                upper_bnd[i] = u
-                u = 1
-            nbd[i] = bounds_map[l, u]
-
-    if not maxls > 0:
-        raise ValueError('maxls must be positive.')
-
-    x = array(x0, float64)
-    f = array(0.0, float64)
-    g = zeros((n,), float64)
-    wa = zeros(2*m*n + 5*n + 11*m*m + 8*m, float64)
-    iwa = zeros(3*n, fortran_int)
-    task = zeros(1, 'S60')
-    csave = zeros(1, 'S60')
-    lsave = zeros(4, fortran_int)
-    isave = zeros(44, fortran_int)
-    dsave = zeros(29, float64)
-
-    task[:] = 'START'
-
-    n_iterations = 0
-
-    while 1:
-        # g may become float32 if a user provides a function that calculates
-        # the Jacobian in float32 (see gh-18730). The underlying Fortran code
-        # expects float64, so upcast it
-        g = g.astype(np.float64)
-        # x, f, g, wa, iwa, task, csave, lsave, isave, dsave = \
-        _lbfgsb.setulb(m, x, low_bnd, upper_bnd, nbd, f, g, factr,
-                       pgtol, wa, iwa, task, iprint, csave, lsave,
-                       isave, dsave, maxls)
-        task_str = task.tobytes()
-        if task_str.startswith(b'FG'):
-            # The minimization routine wants f and g at the current x.
-            # Note that interruptions due to maxfun are postponed
-            # until the completion of the current minimization iteration.
-            # Overwrite f and g:
-            f, g = func_and_grad(x)
-        elif task_str.startswith(b'NEW_X'):
-            # new iteration
-            n_iterations += 1
-
-            intermediate_result = OptimizeResult(x=x, fun=f)
-            if _call_callback_maybe_halt(callback, intermediate_result):
-                task[:] = 'STOP: CALLBACK REQUESTED HALT'
-            if n_iterations >= maxiter:
-                task[:] = 'STOP: TOTAL NO. of ITERATIONS REACHED LIMIT'
-            elif sf.nfev > maxfun:
-                task[:] = ('STOP: TOTAL NO. of f AND g EVALUATIONS '
-                           'EXCEEDS LIMIT')
-        else:
-            break
-
-    task_str = task.tobytes().strip(b'\x00').strip()
-    if task_str.startswith(b'CONV'):
-        warnflag = 0
-    elif sf.nfev > maxfun or n_iterations >= maxiter:
-        warnflag = 1
-    else:
-        warnflag = 2
-
-    # These two portions of the workspace are described in the mainlb
-    # subroutine in lbfgsb.f. See line 363.
-    s = wa[0: m*n].reshape(m, n)
-    y = wa[m*n: 2*m*n].reshape(m, n)
-
-    # See lbfgsb.f line 160 for this portion of the workspace.
-    # isave(31) = the total number of BFGS updates prior the current iteration;
-    n_bfgs_updates = isave[30]
-
-    n_corrs = min(n_bfgs_updates, maxcor)
-    hess_inv = LbfgsInvHessProduct(s[:n_corrs], y[:n_corrs])
-
-    task_str = task_str.decode()
-    return OptimizeResult(fun=f, jac=g, nfev=sf.nfev,
-                          njev=sf.ngev,
-                          nit=n_iterations, status=warnflag, message=task_str,
-                          x=x, success=(warnflag == 0), hess_inv=hess_inv)
-
-
-class LbfgsInvHessProduct(LinearOperator):
-    """Linear operator for the L-BFGS approximate inverse Hessian.
-
-    This operator computes the product of a vector with the approximate inverse
-    of the Hessian of the objective function, using the L-BFGS limited
-    memory approximation to the inverse Hessian, accumulated during the
-    optimization.
-
-    Objects of this class implement the ``scipy.sparse.linalg.LinearOperator``
-    interface.
-
-    Parameters
-    ----------
-    sk : array_like, shape=(n_corr, n)
-        Array of `n_corr` most recent updates to the solution vector.
-        (See [1]).
-    yk : array_like, shape=(n_corr, n)
-        Array of `n_corr` most recent updates to the gradient. (See [1]).
-
-    References
-    ----------
-    .. [1] Nocedal, Jorge. "Updating quasi-Newton matrices with limited
-       storage." Mathematics of computation 35.151 (1980): 773-782.
-
-    """
-
-    def __init__(self, sk, yk):
-        """Construct the operator."""
-        if sk.shape != yk.shape or sk.ndim != 2:
-            raise ValueError('sk and yk must have matching shape, (n_corrs, n)')
-        n_corrs, n = sk.shape
-
-        super().__init__(dtype=np.float64, shape=(n, n))
-
-        self.sk = sk
-        self.yk = yk
-        self.n_corrs = n_corrs
-        self.rho = 1 / np.einsum('ij,ij->i', sk, yk)
-
-    def _matvec(self, x):
-        """Efficient matrix-vector multiply with the BFGS matrices.
-
-        This calculation is described in Section (4) of [1].
-
-        Parameters
-        ----------
-        x : ndarray
-            An array with shape (n,) or (n,1).
-
-        Returns
-        -------
-        y : ndarray
-            The matrix-vector product
-
-        """
-        s, y, n_corrs, rho = self.sk, self.yk, self.n_corrs, self.rho
-        q = np.array(x, dtype=self.dtype, copy=True)
-        if q.ndim == 2 and q.shape[1] == 1:
-            q = q.reshape(-1)
-
-        alpha = np.empty(n_corrs)
-
-        for i in range(n_corrs-1, -1, -1):
-            alpha[i] = rho[i] * np.dot(s[i], q)
-            q = q - alpha[i]*y[i]
-
-        r = q
-        for i in range(n_corrs):
-            beta = rho[i] * np.dot(y[i], r)
-            r = r + s[i] * (alpha[i] - beta)
-
-        return r
-
-    def todense(self):
-        """Return a dense array representation of this operator.
-
-        Returns
-        -------
-        arr : ndarray, shape=(n, n)
-            An array with the same shape and containing
-            the same data represented by this `LinearOperator`.
-
-        """
-        s, y, n_corrs, rho = self.sk, self.yk, self.n_corrs, self.rho
-        I = np.eye(*self.shape, dtype=self.dtype)
-        Hk = I
-
-        for i in range(n_corrs):
-            A1 = I - s[i][:, np.newaxis] * y[i][np.newaxis, :] * rho[i]
-            A2 = I - y[i][:, np.newaxis] * s[i][np.newaxis, :] * rho[i]
-
-            Hk = np.dot(A1, np.dot(Hk, A2)) + (rho[i] * s[i][:, np.newaxis] *
-                                                        s[i][np.newaxis, :])
-        return Hk
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linesearch.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linesearch.py
deleted file mode 100644
index 39e0b3826d5f2cb6390e01cb0f8b2f63ee8cf77e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linesearch.py
+++ /dev/null
@@ -1,896 +0,0 @@
-"""
-Functions
----------
-.. autosummary::
-   :toctree: generated/
-
-    line_search_armijo
-    line_search_wolfe1
-    line_search_wolfe2
-    scalar_search_wolfe1
-    scalar_search_wolfe2
-
-"""
-from warnings import warn
-
-from ._dcsrch import DCSRCH
-import numpy as np
-
-__all__ = ['LineSearchWarning', 'line_search_wolfe1', 'line_search_wolfe2',
-           'scalar_search_wolfe1', 'scalar_search_wolfe2',
-           'line_search_armijo']
-
-class LineSearchWarning(RuntimeWarning):
-    pass
-
-
-def _check_c1_c2(c1, c2):
-    if not (0 < c1 < c2 < 1):
-        raise ValueError("'c1' and 'c2' do not satisfy"
-                         "'0 < c1 < c2 < 1'.")
-
-
-#------------------------------------------------------------------------------
-# Minpack's Wolfe line and scalar searches
-#------------------------------------------------------------------------------
-
-def line_search_wolfe1(f, fprime, xk, pk, gfk=None,
-                       old_fval=None, old_old_fval=None,
-                       args=(), c1=1e-4, c2=0.9, amax=50, amin=1e-8,
-                       xtol=1e-14):
-    """
-    As `scalar_search_wolfe1` but do a line search to direction `pk`
-
-    Parameters
-    ----------
-    f : callable
-        Function `f(x)`
-    fprime : callable
-        Gradient of `f`
-    xk : array_like
-        Current point
-    pk : array_like
-        Search direction
-    gfk : array_like, optional
-        Gradient of `f` at point `xk`
-    old_fval : float, optional
-        Value of `f` at point `xk`
-    old_old_fval : float, optional
-        Value of `f` at point preceding `xk`
-
-    The rest of the parameters are the same as for `scalar_search_wolfe1`.
-
-    Returns
-    -------
-    stp, f_count, g_count, fval, old_fval
-        As in `line_search_wolfe1`
-    gval : array
-        Gradient of `f` at the final point
-
-    Notes
-    -----
-    Parameters `c1` and `c2` must satisfy ``0 < c1 < c2 < 1``.
-
-    """
-    if gfk is None:
-        gfk = fprime(xk, *args)
-
-    gval = [gfk]
-    gc = [0]
-    fc = [0]
-
-    def phi(s):
-        fc[0] += 1
-        return f(xk + s*pk, *args)
-
-    def derphi(s):
-        gval[0] = fprime(xk + s*pk, *args)
-        gc[0] += 1
-        return np.dot(gval[0], pk)
-
-    derphi0 = np.dot(gfk, pk)
-
-    stp, fval, old_fval = scalar_search_wolfe1(
-            phi, derphi, old_fval, old_old_fval, derphi0,
-            c1=c1, c2=c2, amax=amax, amin=amin, xtol=xtol)
-
-    return stp, fc[0], gc[0], fval, old_fval, gval[0]
-
-
-def scalar_search_wolfe1(phi, derphi, phi0=None, old_phi0=None, derphi0=None,
-                         c1=1e-4, c2=0.9,
-                         amax=50, amin=1e-8, xtol=1e-14):
-    """
-    Scalar function search for alpha that satisfies strong Wolfe conditions
-
-    alpha > 0 is assumed to be a descent direction.
-
-    Parameters
-    ----------
-    phi : callable phi(alpha)
-        Function at point `alpha`
-    derphi : callable phi'(alpha)
-        Objective function derivative. Returns a scalar.
-    phi0 : float, optional
-        Value of phi at 0
-    old_phi0 : float, optional
-        Value of phi at previous point
-    derphi0 : float, optional
-        Value derphi at 0
-    c1 : float, optional
-        Parameter for Armijo condition rule.
-    c2 : float, optional
-        Parameter for curvature condition rule.
-    amax, amin : float, optional
-        Maximum and minimum step size
-    xtol : float, optional
-        Relative tolerance for an acceptable step.
-
-    Returns
-    -------
-    alpha : float
-        Step size, or None if no suitable step was found
-    phi : float
-        Value of `phi` at the new point `alpha`
-    phi0 : float
-        Value of `phi` at `alpha=0`
-
-    Notes
-    -----
-    Uses routine DCSRCH from MINPACK.
-    
-    Parameters `c1` and `c2` must satisfy ``0 < c1 < c2 < 1`` as described in [1]_.
-
-    References
-    ----------
-    
-    .. [1] Nocedal, J., & Wright, S. J. (2006). Numerical optimization.
-       In Springer Series in Operations Research and Financial Engineering.
-       (Springer Series in Operations Research and Financial Engineering).
-       Springer Nature.
-
-    """
-    _check_c1_c2(c1, c2)
-
-    if phi0 is None:
-        phi0 = phi(0.)
-    if derphi0 is None:
-        derphi0 = derphi(0.)
-
-    if old_phi0 is not None and derphi0 != 0:
-        alpha1 = min(1.0, 1.01*2*(phi0 - old_phi0)/derphi0)
-        if alpha1 < 0:
-            alpha1 = 1.0
-    else:
-        alpha1 = 1.0
-
-    maxiter = 100
-
-    dcsrch = DCSRCH(phi, derphi, c1, c2, xtol, amin, amax)
-    stp, phi1, phi0, task = dcsrch(
-        alpha1, phi0=phi0, derphi0=derphi0, maxiter=maxiter
-    )
-
-    return stp, phi1, phi0
-
-
-line_search = line_search_wolfe1
-
-
-#------------------------------------------------------------------------------
-# Pure-Python Wolfe line and scalar searches
-#------------------------------------------------------------------------------
-
-# Note: `line_search_wolfe2` is the public `scipy.optimize.line_search`
-
-def line_search_wolfe2(f, myfprime, xk, pk, gfk=None, old_fval=None,
-                       old_old_fval=None, args=(), c1=1e-4, c2=0.9, amax=None,
-                       extra_condition=None, maxiter=10):
-    """Find alpha that satisfies strong Wolfe conditions.
-
-    Parameters
-    ----------
-    f : callable f(x,*args)
-        Objective function.
-    myfprime : callable f'(x,*args)
-        Objective function gradient.
-    xk : ndarray
-        Starting point.
-    pk : ndarray
-        Search direction. The search direction must be a descent direction
-        for the algorithm to converge.
-    gfk : ndarray, optional
-        Gradient value for x=xk (xk being the current parameter
-        estimate). Will be recomputed if omitted.
-    old_fval : float, optional
-        Function value for x=xk. Will be recomputed if omitted.
-    old_old_fval : float, optional
-        Function value for the point preceding x=xk.
-    args : tuple, optional
-        Additional arguments passed to objective function.
-    c1 : float, optional
-        Parameter for Armijo condition rule.
-    c2 : float, optional
-        Parameter for curvature condition rule.
-    amax : float, optional
-        Maximum step size
-    extra_condition : callable, optional
-        A callable of the form ``extra_condition(alpha, x, f, g)``
-        returning a boolean. Arguments are the proposed step ``alpha``
-        and the corresponding ``x``, ``f`` and ``g`` values. The line search
-        accepts the value of ``alpha`` only if this
-        callable returns ``True``. If the callable returns ``False``
-        for the step length, the algorithm will continue with
-        new iterates. The callable is only called for iterates
-        satisfying the strong Wolfe conditions.
-    maxiter : int, optional
-        Maximum number of iterations to perform.
-
-    Returns
-    -------
-    alpha : float or None
-        Alpha for which ``x_new = x0 + alpha * pk``,
-        or None if the line search algorithm did not converge.
-    fc : int
-        Number of function evaluations made.
-    gc : int
-        Number of gradient evaluations made.
-    new_fval : float or None
-        New function value ``f(x_new)=f(x0+alpha*pk)``,
-        or None if the line search algorithm did not converge.
-    old_fval : float
-        Old function value ``f(x0)``.
-    new_slope : float or None
-        The local slope along the search direction at the
-        new value ````,
-        or None if the line search algorithm did not converge.
-
-
-    Notes
-    -----
-    Uses the line search algorithm to enforce strong Wolfe
-    conditions. See Wright and Nocedal, 'Numerical Optimization',
-    1999, pp. 59-61.
-
-    The search direction `pk` must be a descent direction (e.g.
-    ``-myfprime(xk)``) to find a step length that satisfies the strong Wolfe
-    conditions. If the search direction is not a descent direction (e.g.
-    ``myfprime(xk)``), then `alpha`, `new_fval`, and `new_slope` will be None.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.optimize import line_search
-
-    A objective function and its gradient are defined.
-
-    >>> def obj_func(x):
-    ...     return (x[0])**2+(x[1])**2
-    >>> def obj_grad(x):
-    ...     return [2*x[0], 2*x[1]]
-
-    We can find alpha that satisfies strong Wolfe conditions.
-
-    >>> start_point = np.array([1.8, 1.7])
-    >>> search_gradient = np.array([-1.0, -1.0])
-    >>> line_search(obj_func, obj_grad, start_point, search_gradient)
-    (1.0, 2, 1, 1.1300000000000001, 6.13, [1.6, 1.4])
-
-    """
-    fc = [0]
-    gc = [0]
-    gval = [None]
-    gval_alpha = [None]
-
-    def phi(alpha):
-        fc[0] += 1
-        return f(xk + alpha * pk, *args)
-
-    fprime = myfprime
-
-    def derphi(alpha):
-        gc[0] += 1
-        gval[0] = fprime(xk + alpha * pk, *args)  # store for later use
-        gval_alpha[0] = alpha
-        return np.dot(gval[0], pk)
-
-    if gfk is None:
-        gfk = fprime(xk, *args)
-    derphi0 = np.dot(gfk, pk)
-
-    if extra_condition is not None:
-        # Add the current gradient as argument, to avoid needless
-        # re-evaluation
-        def extra_condition2(alpha, phi):
-            if gval_alpha[0] != alpha:
-                derphi(alpha)
-            x = xk + alpha * pk
-            return extra_condition(alpha, x, phi, gval[0])
-    else:
-        extra_condition2 = None
-
-    alpha_star, phi_star, old_fval, derphi_star = scalar_search_wolfe2(
-            phi, derphi, old_fval, old_old_fval, derphi0, c1, c2, amax,
-            extra_condition2, maxiter=maxiter)
-
-    if derphi_star is None:
-        warn('The line search algorithm did not converge',
-             LineSearchWarning, stacklevel=2)
-    else:
-        # derphi_star is a number (derphi) -- so use the most recently
-        # calculated gradient used in computing it derphi = gfk*pk
-        # this is the gradient at the next step no need to compute it
-        # again in the outer loop.
-        derphi_star = gval[0]
-
-    return alpha_star, fc[0], gc[0], phi_star, old_fval, derphi_star
-
-
-def scalar_search_wolfe2(phi, derphi, phi0=None,
-                         old_phi0=None, derphi0=None,
-                         c1=1e-4, c2=0.9, amax=None,
-                         extra_condition=None, maxiter=10):
-    """Find alpha that satisfies strong Wolfe conditions.
-
-    alpha > 0 is assumed to be a descent direction.
-
-    Parameters
-    ----------
-    phi : callable phi(alpha)
-        Objective scalar function.
-    derphi : callable phi'(alpha)
-        Objective function derivative. Returns a scalar.
-    phi0 : float, optional
-        Value of phi at 0.
-    old_phi0 : float, optional
-        Value of phi at previous point.
-    derphi0 : float, optional
-        Value of derphi at 0
-    c1 : float, optional
-        Parameter for Armijo condition rule.
-    c2 : float, optional
-        Parameter for curvature condition rule.
-    amax : float, optional
-        Maximum step size.
-    extra_condition : callable, optional
-        A callable of the form ``extra_condition(alpha, phi_value)``
-        returning a boolean. The line search accepts the value
-        of ``alpha`` only if this callable returns ``True``.
-        If the callable returns ``False`` for the step length,
-        the algorithm will continue with new iterates.
-        The callable is only called for iterates satisfying
-        the strong Wolfe conditions.
-    maxiter : int, optional
-        Maximum number of iterations to perform.
-
-    Returns
-    -------
-    alpha_star : float or None
-        Best alpha, or None if the line search algorithm did not converge.
-    phi_star : float
-        phi at alpha_star.
-    phi0 : float
-        phi at 0.
-    derphi_star : float or None
-        derphi at alpha_star, or None if the line search algorithm
-        did not converge.
-
-    Notes
-    -----
-    Uses the line search algorithm to enforce strong Wolfe
-    conditions. See Wright and Nocedal, 'Numerical Optimization',
-    1999, pp. 59-61.
-
-    """
-    _check_c1_c2(c1, c2)
-
-    if phi0 is None:
-        phi0 = phi(0.)
-
-    if derphi0 is None:
-        derphi0 = derphi(0.)
-
-    alpha0 = 0
-    if old_phi0 is not None and derphi0 != 0:
-        alpha1 = min(1.0, 1.01*2*(phi0 - old_phi0)/derphi0)
-    else:
-        alpha1 = 1.0
-
-    if alpha1 < 0:
-        alpha1 = 1.0
-
-    if amax is not None:
-        alpha1 = min(alpha1, amax)
-
-    phi_a1 = phi(alpha1)
-    #derphi_a1 = derphi(alpha1) evaluated below
-
-    phi_a0 = phi0
-    derphi_a0 = derphi0
-
-    if extra_condition is None:
-        def extra_condition(alpha, phi):
-            return True
-
-    for i in range(maxiter):
-        if alpha1 == 0 or (amax is not None and alpha0 > amax):
-            # alpha1 == 0: This shouldn't happen. Perhaps the increment has
-            # slipped below machine precision?
-            alpha_star = None
-            phi_star = phi0
-            phi0 = old_phi0
-            derphi_star = None
-
-            if alpha1 == 0:
-                msg = 'Rounding errors prevent the line search from converging'
-            else:
-                msg = "The line search algorithm could not find a solution " + \
-                      "less than or equal to amax: %s" % amax
-
-            warn(msg, LineSearchWarning, stacklevel=2)
-            break
-
-        not_first_iteration = i > 0
-        if (phi_a1 > phi0 + c1 * alpha1 * derphi0) or \
-           ((phi_a1 >= phi_a0) and not_first_iteration):
-            alpha_star, phi_star, derphi_star = \
-                        _zoom(alpha0, alpha1, phi_a0,
-                              phi_a1, derphi_a0, phi, derphi,
-                              phi0, derphi0, c1, c2, extra_condition)
-            break
-
-        derphi_a1 = derphi(alpha1)
-        if (abs(derphi_a1) <= -c2*derphi0):
-            if extra_condition(alpha1, phi_a1):
-                alpha_star = alpha1
-                phi_star = phi_a1
-                derphi_star = derphi_a1
-                break
-
-        if (derphi_a1 >= 0):
-            alpha_star, phi_star, derphi_star = \
-                        _zoom(alpha1, alpha0, phi_a1,
-                              phi_a0, derphi_a1, phi, derphi,
-                              phi0, derphi0, c1, c2, extra_condition)
-            break
-
-        alpha2 = 2 * alpha1  # increase by factor of two on each iteration
-        if amax is not None:
-            alpha2 = min(alpha2, amax)
-        alpha0 = alpha1
-        alpha1 = alpha2
-        phi_a0 = phi_a1
-        phi_a1 = phi(alpha1)
-        derphi_a0 = derphi_a1
-
-    else:
-        # stopping test maxiter reached
-        alpha_star = alpha1
-        phi_star = phi_a1
-        derphi_star = None
-        warn('The line search algorithm did not converge',
-             LineSearchWarning, stacklevel=2)
-
-    return alpha_star, phi_star, phi0, derphi_star
-
-
-def _cubicmin(a, fa, fpa, b, fb, c, fc):
-    """
-    Finds the minimizer for a cubic polynomial that goes through the
-    points (a,fa), (b,fb), and (c,fc) with derivative at a of fpa.
-
-    If no minimizer can be found, return None.
-
-    """
-    # f(x) = A *(x-a)^3 + B*(x-a)^2 + C*(x-a) + D
-
-    with np.errstate(divide='raise', over='raise', invalid='raise'):
-        try:
-            C = fpa
-            db = b - a
-            dc = c - a
-            denom = (db * dc) ** 2 * (db - dc)
-            d1 = np.empty((2, 2))
-            d1[0, 0] = dc ** 2
-            d1[0, 1] = -db ** 2
-            d1[1, 0] = -dc ** 3
-            d1[1, 1] = db ** 3
-            [A, B] = np.dot(d1, np.asarray([fb - fa - C * db,
-                                            fc - fa - C * dc]).flatten())
-            A /= denom
-            B /= denom
-            radical = B * B - 3 * A * C
-            xmin = a + (-B + np.sqrt(radical)) / (3 * A)
-        except ArithmeticError:
-            return None
-    if not np.isfinite(xmin):
-        return None
-    return xmin
-
-
-def _quadmin(a, fa, fpa, b, fb):
-    """
-    Finds the minimizer for a quadratic polynomial that goes through
-    the points (a,fa), (b,fb) with derivative at a of fpa.
-
-    """
-    # f(x) = B*(x-a)^2 + C*(x-a) + D
-    with np.errstate(divide='raise', over='raise', invalid='raise'):
-        try:
-            D = fa
-            C = fpa
-            db = b - a * 1.0
-            B = (fb - D - C * db) / (db * db)
-            xmin = a - C / (2.0 * B)
-        except ArithmeticError:
-            return None
-    if not np.isfinite(xmin):
-        return None
-    return xmin
-
-
-def _zoom(a_lo, a_hi, phi_lo, phi_hi, derphi_lo,
-          phi, derphi, phi0, derphi0, c1, c2, extra_condition):
-    """Zoom stage of approximate linesearch satisfying strong Wolfe conditions.
-
-    Part of the optimization algorithm in `scalar_search_wolfe2`.
-
-    Notes
-    -----
-    Implements Algorithm 3.6 (zoom) in Wright and Nocedal,
-    'Numerical Optimization', 1999, pp. 61.
-
-    """
-
-    maxiter = 10
-    i = 0
-    delta1 = 0.2  # cubic interpolant check
-    delta2 = 0.1  # quadratic interpolant check
-    phi_rec = phi0
-    a_rec = 0
-    while True:
-        # interpolate to find a trial step length between a_lo and
-        # a_hi Need to choose interpolation here. Use cubic
-        # interpolation and then if the result is within delta *
-        # dalpha or outside of the interval bounded by a_lo or a_hi
-        # then use quadratic interpolation, if the result is still too
-        # close, then use bisection
-
-        dalpha = a_hi - a_lo
-        if dalpha < 0:
-            a, b = a_hi, a_lo
-        else:
-            a, b = a_lo, a_hi
-
-        # minimizer of cubic interpolant
-        # (uses phi_lo, derphi_lo, phi_hi, and the most recent value of phi)
-        #
-        # if the result is too close to the end points (or out of the
-        # interval), then use quadratic interpolation with phi_lo,
-        # derphi_lo and phi_hi if the result is still too close to the
-        # end points (or out of the interval) then use bisection
-
-        if (i > 0):
-            cchk = delta1 * dalpha
-            a_j = _cubicmin(a_lo, phi_lo, derphi_lo, a_hi, phi_hi,
-                            a_rec, phi_rec)
-        if (i == 0) or (a_j is None) or (a_j > b - cchk) or (a_j < a + cchk):
-            qchk = delta2 * dalpha
-            a_j = _quadmin(a_lo, phi_lo, derphi_lo, a_hi, phi_hi)
-            if (a_j is None) or (a_j > b-qchk) or (a_j < a+qchk):
-                a_j = a_lo + 0.5*dalpha
-
-        # Check new value of a_j
-
-        phi_aj = phi(a_j)
-        if (phi_aj > phi0 + c1*a_j*derphi0) or (phi_aj >= phi_lo):
-            phi_rec = phi_hi
-            a_rec = a_hi
-            a_hi = a_j
-            phi_hi = phi_aj
-        else:
-            derphi_aj = derphi(a_j)
-            if abs(derphi_aj) <= -c2*derphi0 and extra_condition(a_j, phi_aj):
-                a_star = a_j
-                val_star = phi_aj
-                valprime_star = derphi_aj
-                break
-            if derphi_aj*(a_hi - a_lo) >= 0:
-                phi_rec = phi_hi
-                a_rec = a_hi
-                a_hi = a_lo
-                phi_hi = phi_lo
-            else:
-                phi_rec = phi_lo
-                a_rec = a_lo
-            a_lo = a_j
-            phi_lo = phi_aj
-            derphi_lo = derphi_aj
-        i += 1
-        if (i > maxiter):
-            # Failed to find a conforming step size
-            a_star = None
-            val_star = None
-            valprime_star = None
-            break
-    return a_star, val_star, valprime_star
-
-
-#------------------------------------------------------------------------------
-# Armijo line and scalar searches
-#------------------------------------------------------------------------------
-
-def line_search_armijo(f, xk, pk, gfk, old_fval, args=(), c1=1e-4, alpha0=1):
-    """Minimize over alpha, the function ``f(xk+alpha pk)``.
-
-    Parameters
-    ----------
-    f : callable
-        Function to be minimized.
-    xk : array_like
-        Current point.
-    pk : array_like
-        Search direction.
-    gfk : array_like
-        Gradient of `f` at point `xk`.
-    old_fval : float
-        Value of `f` at point `xk`.
-    args : tuple, optional
-        Optional arguments.
-    c1 : float, optional
-        Value to control stopping criterion.
-    alpha0 : scalar, optional
-        Value of `alpha` at start of the optimization.
-
-    Returns
-    -------
-    alpha
-    f_count
-    f_val_at_alpha
-
-    Notes
-    -----
-    Uses the interpolation algorithm (Armijo backtracking) as suggested by
-    Wright and Nocedal in 'Numerical Optimization', 1999, pp. 56-57
-
-    """
-    xk = np.atleast_1d(xk)
-    fc = [0]
-
-    def phi(alpha1):
-        fc[0] += 1
-        return f(xk + alpha1*pk, *args)
-
-    if old_fval is None:
-        phi0 = phi(0.)
-    else:
-        phi0 = old_fval  # compute f(xk) -- done in past loop
-
-    derphi0 = np.dot(gfk, pk)
-    alpha, phi1 = scalar_search_armijo(phi, phi0, derphi0, c1=c1,
-                                       alpha0=alpha0)
-    return alpha, fc[0], phi1
-
-
-def line_search_BFGS(f, xk, pk, gfk, old_fval, args=(), c1=1e-4, alpha0=1):
-    """
-    Compatibility wrapper for `line_search_armijo`
-    """
-    r = line_search_armijo(f, xk, pk, gfk, old_fval, args=args, c1=c1,
-                           alpha0=alpha0)
-    return r[0], r[1], 0, r[2]
-
-
-def scalar_search_armijo(phi, phi0, derphi0, c1=1e-4, alpha0=1, amin=0):
-    """Minimize over alpha, the function ``phi(alpha)``.
-
-    Uses the interpolation algorithm (Armijo backtracking) as suggested by
-    Wright and Nocedal in 'Numerical Optimization', 1999, pp. 56-57
-
-    alpha > 0 is assumed to be a descent direction.
-
-    Returns
-    -------
-    alpha
-    phi1
-
-    """
-    phi_a0 = phi(alpha0)
-    if phi_a0 <= phi0 + c1*alpha0*derphi0:
-        return alpha0, phi_a0
-
-    # Otherwise, compute the minimizer of a quadratic interpolant:
-
-    alpha1 = -(derphi0) * alpha0**2 / 2.0 / (phi_a0 - phi0 - derphi0 * alpha0)
-    phi_a1 = phi(alpha1)
-
-    if (phi_a1 <= phi0 + c1*alpha1*derphi0):
-        return alpha1, phi_a1
-
-    # Otherwise, loop with cubic interpolation until we find an alpha which
-    # satisfies the first Wolfe condition (since we are backtracking, we will
-    # assume that the value of alpha is not too small and satisfies the second
-    # condition.
-
-    while alpha1 > amin:       # we are assuming alpha>0 is a descent direction
-        factor = alpha0**2 * alpha1**2 * (alpha1-alpha0)
-        a = alpha0**2 * (phi_a1 - phi0 - derphi0*alpha1) - \
-            alpha1**2 * (phi_a0 - phi0 - derphi0*alpha0)
-        a = a / factor
-        b = -alpha0**3 * (phi_a1 - phi0 - derphi0*alpha1) + \
-            alpha1**3 * (phi_a0 - phi0 - derphi0*alpha0)
-        b = b / factor
-
-        alpha2 = (-b + np.sqrt(abs(b**2 - 3 * a * derphi0))) / (3.0*a)
-        phi_a2 = phi(alpha2)
-
-        if (phi_a2 <= phi0 + c1*alpha2*derphi0):
-            return alpha2, phi_a2
-
-        if (alpha1 - alpha2) > alpha1 / 2.0 or (1 - alpha2/alpha1) < 0.96:
-            alpha2 = alpha1 / 2.0
-
-        alpha0 = alpha1
-        alpha1 = alpha2
-        phi_a0 = phi_a1
-        phi_a1 = phi_a2
-
-    # Failed to find a suitable step length
-    return None, phi_a1
-
-
-#------------------------------------------------------------------------------
-# Non-monotone line search for DF-SANE
-#------------------------------------------------------------------------------
-
-def _nonmonotone_line_search_cruz(f, x_k, d, prev_fs, eta,
-                                  gamma=1e-4, tau_min=0.1, tau_max=0.5):
-    """
-    Nonmonotone backtracking line search as described in [1]_
-
-    Parameters
-    ----------
-    f : callable
-        Function returning a tuple ``(f, F)`` where ``f`` is the value
-        of a merit function and ``F`` the residual.
-    x_k : ndarray
-        Initial position.
-    d : ndarray
-        Search direction.
-    prev_fs : float
-        List of previous merit function values. Should have ``len(prev_fs) <= M``
-        where ``M`` is the nonmonotonicity window parameter.
-    eta : float
-        Allowed merit function increase, see [1]_
-    gamma, tau_min, tau_max : float, optional
-        Search parameters, see [1]_
-
-    Returns
-    -------
-    alpha : float
-        Step length
-    xp : ndarray
-        Next position
-    fp : float
-        Merit function value at next position
-    Fp : ndarray
-        Residual at next position
-
-    References
-    ----------
-    [1] "Spectral residual method without gradient information for solving
-        large-scale nonlinear systems of equations." W. La Cruz,
-        J.M. Martinez, M. Raydan. Math. Comp. **75**, 1429 (2006).
-
-    """
-    f_k = prev_fs[-1]
-    f_bar = max(prev_fs)
-
-    alpha_p = 1
-    alpha_m = 1
-    alpha = 1
-
-    while True:
-        xp = x_k + alpha_p * d
-        fp, Fp = f(xp)
-
-        if fp <= f_bar + eta - gamma * alpha_p**2 * f_k:
-            alpha = alpha_p
-            break
-
-        alpha_tp = alpha_p**2 * f_k / (fp + (2*alpha_p - 1)*f_k)
-
-        xp = x_k - alpha_m * d
-        fp, Fp = f(xp)
-
-        if fp <= f_bar + eta - gamma * alpha_m**2 * f_k:
-            alpha = -alpha_m
-            break
-
-        alpha_tm = alpha_m**2 * f_k / (fp + (2*alpha_m - 1)*f_k)
-
-        alpha_p = np.clip(alpha_tp, tau_min * alpha_p, tau_max * alpha_p)
-        alpha_m = np.clip(alpha_tm, tau_min * alpha_m, tau_max * alpha_m)
-
-    return alpha, xp, fp, Fp
-
-
-def _nonmonotone_line_search_cheng(f, x_k, d, f_k, C, Q, eta,
-                                   gamma=1e-4, tau_min=0.1, tau_max=0.5,
-                                   nu=0.85):
-    """
-    Nonmonotone line search from [1]
-
-    Parameters
-    ----------
-    f : callable
-        Function returning a tuple ``(f, F)`` where ``f`` is the value
-        of a merit function and ``F`` the residual.
-    x_k : ndarray
-        Initial position.
-    d : ndarray
-        Search direction.
-    f_k : float
-        Initial merit function value.
-    C, Q : float
-        Control parameters. On the first iteration, give values
-        Q=1.0, C=f_k
-    eta : float
-        Allowed merit function increase, see [1]_
-    nu, gamma, tau_min, tau_max : float, optional
-        Search parameters, see [1]_
-
-    Returns
-    -------
-    alpha : float
-        Step length
-    xp : ndarray
-        Next position
-    fp : float
-        Merit function value at next position
-    Fp : ndarray
-        Residual at next position
-    C : float
-        New value for the control parameter C
-    Q : float
-        New value for the control parameter Q
-
-    References
-    ----------
-    .. [1] W. Cheng & D.-H. Li, ''A derivative-free nonmonotone line
-           search and its application to the spectral residual
-           method'', IMA J. Numer. Anal. 29, 814 (2009).
-
-    """
-    alpha_p = 1
-    alpha_m = 1
-    alpha = 1
-
-    while True:
-        xp = x_k + alpha_p * d
-        fp, Fp = f(xp)
-
-        if fp <= C + eta - gamma * alpha_p**2 * f_k:
-            alpha = alpha_p
-            break
-
-        alpha_tp = alpha_p**2 * f_k / (fp + (2*alpha_p - 1)*f_k)
-
-        xp = x_k - alpha_m * d
-        fp, Fp = f(xp)
-
-        if fp <= C + eta - gamma * alpha_m**2 * f_k:
-            alpha = -alpha_m
-            break
-
-        alpha_tm = alpha_m**2 * f_k / (fp + (2*alpha_m - 1)*f_k)
-
-        alpha_p = np.clip(alpha_tp, tau_min * alpha_p, tau_max * alpha_p)
-        alpha_m = np.clip(alpha_tm, tau_min * alpha_m, tau_max * alpha_m)
-
-    # Update C and Q
-    Q_next = nu * Q + 1
-    C = (nu * Q * (C + eta) + fp) / Q_next
-    Q = Q_next
-
-    return alpha, xp, fp, Fp, C, Q
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog.py
deleted file mode 100644
index 1812182171961f16f69fe85f40d07bf0ae790e03..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog.py
+++ /dev/null
@@ -1,716 +0,0 @@
-"""
-A top-level linear programming interface.
-
-.. versionadded:: 0.15.0
-
-Functions
----------
-.. autosummary::
-   :toctree: generated/
-
-    linprog
-    linprog_verbose_callback
-    linprog_terse_callback
-
-"""
-
-import numpy as np
-
-from ._optimize import OptimizeResult, OptimizeWarning
-from warnings import warn
-from ._linprog_highs import _linprog_highs
-from ._linprog_ip import _linprog_ip
-from ._linprog_simplex import _linprog_simplex
-from ._linprog_rs import _linprog_rs
-from ._linprog_doc import (_linprog_highs_doc, _linprog_ip_doc,  # noqa: F401
-                           _linprog_rs_doc, _linprog_simplex_doc,
-                           _linprog_highs_ipm_doc, _linprog_highs_ds_doc)
-from ._linprog_util import (
-    _parse_linprog, _presolve, _get_Abc, _LPProblem, _autoscale,
-    _postsolve, _check_result, _display_summary)
-from copy import deepcopy
-
-__all__ = ['linprog', 'linprog_verbose_callback', 'linprog_terse_callback']
-
-__docformat__ = "restructuredtext en"
-
-LINPROG_METHODS = [
-    'simplex', 'revised simplex', 'interior-point', 'highs', 'highs-ds', 'highs-ipm'
-]
-
-
-def linprog_verbose_callback(res):
-    """
-    A sample callback function demonstrating the linprog callback interface.
-    This callback produces detailed output to sys.stdout before each iteration
-    and after the final iteration of the simplex algorithm.
-
-    Parameters
-    ----------
-    res : A `scipy.optimize.OptimizeResult` consisting of the following fields:
-
-        x : 1-D array
-            The independent variable vector which optimizes the linear
-            programming problem.
-        fun : float
-            Value of the objective function.
-        success : bool
-            True if the algorithm succeeded in finding an optimal solution.
-        slack : 1-D array
-            The values of the slack variables. Each slack variable corresponds
-            to an inequality constraint. If the slack is zero, then the
-            corresponding constraint is active.
-        con : 1-D array
-            The (nominally zero) residuals of the equality constraints, that is,
-            ``b - A_eq @ x``
-        phase : int
-            The phase of the optimization being executed. In phase 1 a basic
-            feasible solution is sought and the T has an additional row
-            representing an alternate objective function.
-        status : int
-            An integer representing the exit status of the optimization::
-
-                 0 : Optimization terminated successfully
-                 1 : Iteration limit reached
-                 2 : Problem appears to be infeasible
-                 3 : Problem appears to be unbounded
-                 4 : Serious numerical difficulties encountered
-
-        nit : int
-            The number of iterations performed.
-        message : str
-            A string descriptor of the exit status of the optimization.
-    """
-    x = res['x']
-    fun = res['fun']
-    phase = res['phase']
-    status = res['status']
-    nit = res['nit']
-    message = res['message']
-    complete = res['complete']
-
-    saved_printoptions = np.get_printoptions()
-    np.set_printoptions(linewidth=500,
-                        formatter={'float': lambda x: f"{x: 12.4f}"})
-    if status:
-        print('--------- Simplex Early Exit -------\n')
-        print(f'The simplex method exited early with status {status:d}')
-        print(message)
-    elif complete:
-        print('--------- Simplex Complete --------\n')
-        print(f'Iterations required: {nit}')
-    else:
-        print(f'--------- Iteration {nit:d}  ---------\n')
-
-    if nit > 0:
-        if phase == 1:
-            print('Current Pseudo-Objective Value:')
-        else:
-            print('Current Objective Value:')
-        print('f = ', fun)
-        print()
-        print('Current Solution Vector:')
-        print('x = ', x)
-        print()
-
-    np.set_printoptions(**saved_printoptions)
-
-
-def linprog_terse_callback(res):
-    """
-    A sample callback function demonstrating the linprog callback interface.
-    This callback produces brief output to sys.stdout before each iteration
-    and after the final iteration of the simplex algorithm.
-
-    Parameters
-    ----------
-    res : A `scipy.optimize.OptimizeResult` consisting of the following fields:
-
-        x : 1-D array
-            The independent variable vector which optimizes the linear
-            programming problem.
-        fun : float
-            Value of the objective function.
-        success : bool
-            True if the algorithm succeeded in finding an optimal solution.
-        slack : 1-D array
-            The values of the slack variables. Each slack variable corresponds
-            to an inequality constraint. If the slack is zero, then the
-            corresponding constraint is active.
-        con : 1-D array
-            The (nominally zero) residuals of the equality constraints, that is,
-            ``b - A_eq @ x``.
-        phase : int
-            The phase of the optimization being executed. In phase 1 a basic
-            feasible solution is sought and the T has an additional row
-            representing an alternate objective function.
-        status : int
-            An integer representing the exit status of the optimization::
-
-                 0 : Optimization terminated successfully
-                 1 : Iteration limit reached
-                 2 : Problem appears to be infeasible
-                 3 : Problem appears to be unbounded
-                 4 : Serious numerical difficulties encountered
-
-        nit : int
-            The number of iterations performed.
-        message : str
-            A string descriptor of the exit status of the optimization.
-    """
-    nit = res['nit']
-    x = res['x']
-
-    if nit == 0:
-        print("Iter:   X:")
-    print(f"{nit: <5d}   ", end="")
-    print(x)
-
-
-def linprog(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
-            bounds=(0, None), method='highs', callback=None,
-            options=None, x0=None, integrality=None):
-    r"""
-    Linear programming: minimize a linear objective function subject to linear
-    equality and inequality constraints.
-
-    Linear programming solves problems of the following form:
-
-    .. math::
-
-        \min_x \ & c^T x \\
-        \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
-        & A_{eq} x = b_{eq},\\
-        & l \leq x \leq u ,
-
-    where :math:`x` is a vector of decision variables; :math:`c`,
-    :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
-    :math:`A_{ub}` and :math:`A_{eq}` are matrices.
-
-    Alternatively, that's:
-
-        - minimize ::
-
-            c @ x
-
-        - such that ::
-
-            A_ub @ x <= b_ub
-            A_eq @ x == b_eq
-            lb <= x <= ub
-
-    Note that by default ``lb = 0`` and ``ub = None``. Other bounds can be
-    specified with ``bounds``.
-
-    Parameters
-    ----------
-    c : 1-D array
-        The coefficients of the linear objective function to be minimized.
-    A_ub : 2-D array, optional
-        The inequality constraint matrix. Each row of ``A_ub`` specifies the
-        coefficients of a linear inequality constraint on ``x``.
-    b_ub : 1-D array, optional
-        The inequality constraint vector. Each element represents an
-        upper bound on the corresponding value of ``A_ub @ x``.
-    A_eq : 2-D array, optional
-        The equality constraint matrix. Each row of ``A_eq`` specifies the
-        coefficients of a linear equality constraint on ``x``.
-    b_eq : 1-D array, optional
-        The equality constraint vector. Each element of ``A_eq @ x`` must equal
-        the corresponding element of ``b_eq``.
-    bounds : sequence, optional
-        A sequence of ``(min, max)`` pairs for each element in ``x``, defining
-        the minimum and maximum values of that decision variable.
-        If a single tuple ``(min, max)`` is provided, then ``min`` and ``max``
-        will serve as bounds for all decision variables.
-        Use ``None`` to indicate that there is no bound. For instance, the
-        default bound ``(0, None)`` means that all decision variables are
-        non-negative, and the pair ``(None, None)`` means no bounds at all,
-        i.e. all variables are allowed to be any real.
-    method : str, optional
-        The algorithm used to solve the standard form problem.
-        :ref:`'highs' ` (default),
-        :ref:`'highs-ds' `,
-        :ref:`'highs-ipm' `,
-        :ref:`'interior-point' ` (legacy),
-        :ref:`'revised simplex' ` (legacy),
-        and
-        :ref:`'simplex' ` (legacy) are supported.
-        The legacy methods are deprecated and will be removed in SciPy 1.11.0.
-    callback : callable, optional
-        If a callback function is provided, it will be called at least once per
-        iteration of the algorithm. The callback function must accept a single
-        `scipy.optimize.OptimizeResult` consisting of the following fields:
-
-        x : 1-D array
-            The current solution vector.
-        fun : float
-            The current value of the objective function ``c @ x``.
-        success : bool
-            ``True`` when the algorithm has completed successfully.
-        slack : 1-D array
-            The (nominally positive) values of the slack,
-            ``b_ub - A_ub @ x``.
-        con : 1-D array
-            The (nominally zero) residuals of the equality constraints,
-            ``b_eq - A_eq @ x``.
-        phase : int
-            The phase of the algorithm being executed.
-        status : int
-            An integer representing the status of the algorithm.
-
-            ``0`` : Optimization proceeding nominally.
-
-            ``1`` : Iteration limit reached.
-
-            ``2`` : Problem appears to be infeasible.
-
-            ``3`` : Problem appears to be unbounded.
-
-            ``4`` : Numerical difficulties encountered.
-
-            nit : int
-                The current iteration number.
-            message : str
-                A string descriptor of the algorithm status.
-
-        Callback functions are not currently supported by the HiGHS methods.
-
-    options : dict, optional
-        A dictionary of solver options. All methods accept the following
-        options:
-
-        maxiter : int
-            Maximum number of iterations to perform.
-            Default: see method-specific documentation.
-        disp : bool
-            Set to ``True`` to print convergence messages.
-            Default: ``False``.
-        presolve : bool
-            Set to ``False`` to disable automatic presolve.
-            Default: ``True``.
-
-        All methods except the HiGHS solvers also accept:
-
-        tol : float
-            A tolerance which determines when a residual is "close enough" to
-            zero to be considered exactly zero.
-        autoscale : bool
-            Set to ``True`` to automatically perform equilibration.
-            Consider using this option if the numerical values in the
-            constraints are separated by several orders of magnitude.
-            Default: ``False``.
-        rr : bool
-            Set to ``False`` to disable automatic redundancy removal.
-            Default: ``True``.
-        rr_method : string
-            Method used to identify and remove redundant rows from the
-            equality constraint matrix after presolve. For problems with
-            dense input, the available methods for redundancy removal are:
-
-            "SVD":
-                Repeatedly performs singular value decomposition on
-                the matrix, detecting redundant rows based on nonzeros
-                in the left singular vectors that correspond with
-                zero singular values. May be fast when the matrix is
-                nearly full rank.
-            "pivot":
-                Uses the algorithm presented in [5]_ to identify
-                redundant rows.
-            "ID":
-                Uses a randomized interpolative decomposition.
-                Identifies columns of the matrix transpose not used in
-                a full-rank interpolative decomposition of the matrix.
-            None:
-                Uses "svd" if the matrix is nearly full rank, that is,
-                the difference between the matrix rank and the number
-                of rows is less than five. If not, uses "pivot". The
-                behavior of this default is subject to change without
-                prior notice.
-
-            Default: None.
-            For problems with sparse input, this option is ignored, and the
-            pivot-based algorithm presented in [5]_ is used.
-
-        For method-specific options, see
-        :func:`show_options('linprog') `.
-
-    x0 : 1-D array, optional
-        Guess values of the decision variables, which will be refined by
-        the optimization algorithm. This argument is currently used only by the
-        'revised simplex' method, and can only be used if `x0` represents a
-        basic feasible solution.
-
-    integrality : 1-D array or int, optional
-        Indicates the type of integrality constraint on each decision variable.
-
-        ``0`` : Continuous variable; no integrality constraint.
-
-        ``1`` : Integer variable; decision variable must be an integer
-        within `bounds`.
-
-        ``2`` : Semi-continuous variable; decision variable must be within
-        `bounds` or take value ``0``.
-
-        ``3`` : Semi-integer variable; decision variable must be an integer
-        within `bounds` or take value ``0``.
-
-        By default, all variables are continuous.
-
-        For mixed integrality constraints, supply an array of shape `c.shape`.
-        To infer a constraint on each decision variable from shorter inputs,
-        the argument will be broadcasted to `c.shape` using `np.broadcast_to`.
-
-        This argument is currently used only by the ``'highs'`` method and
-        ignored otherwise.
-
-    Returns
-    -------
-    res : OptimizeResult
-        A :class:`scipy.optimize.OptimizeResult` consisting of the fields
-        below. Note that the return types of the fields may depend on whether
-        the optimization was successful, therefore it is recommended to check
-        `OptimizeResult.status` before relying on the other fields:
-
-        x : 1-D array
-            The values of the decision variables that minimizes the
-            objective function while satisfying the constraints.
-        fun : float
-            The optimal value of the objective function ``c @ x``.
-        slack : 1-D array
-            The (nominally positive) values of the slack variables,
-            ``b_ub - A_ub @ x``.
-        con : 1-D array
-            The (nominally zero) residuals of the equality constraints,
-            ``b_eq - A_eq @ x``.
-        success : bool
-            ``True`` when the algorithm succeeds in finding an optimal
-            solution.
-        status : int
-            An integer representing the exit status of the algorithm.
-
-            ``0`` : Optimization terminated successfully.
-
-            ``1`` : Iteration limit reached.
-
-            ``2`` : Problem appears to be infeasible.
-
-            ``3`` : Problem appears to be unbounded.
-
-            ``4`` : Numerical difficulties encountered.
-
-        nit : int
-            The total number of iterations performed in all phases.
-        message : str
-            A string descriptor of the exit status of the algorithm.
-
-    See Also
-    --------
-    show_options : Additional options accepted by the solvers.
-
-    Notes
-    -----
-    This section describes the available solvers that can be selected by the
-    'method' parameter.
-
-    `'highs-ds'` and
-    `'highs-ipm'` are interfaces to the
-    HiGHS simplex and interior-point method solvers [13]_, respectively.
-    `'highs'` (default) chooses between
-    the two automatically. These are the fastest linear
-    programming solvers in SciPy, especially for large, sparse problems;
-    which of these two is faster is problem-dependent.
-    The other solvers (`'interior-point'`, `'revised simplex'`, and
-    `'simplex'`) are legacy methods and will be removed in SciPy 1.11.0.
-
-    Method *highs-ds* is a wrapper of the C++ high performance dual
-    revised simplex implementation (HSOL) [13]_, [14]_. Method *highs-ipm*
-    is a wrapper of a C++ implementation of an **i**\ nterior-\ **p**\ oint
-    **m**\ ethod [13]_; it features a crossover routine, so it is as accurate
-    as a simplex solver. Method *highs* chooses between the two automatically.
-    For new code involving `linprog`, we recommend explicitly choosing one of
-    these three method values.
-
-    .. versionadded:: 1.6.0
-
-    Method *interior-point* uses the primal-dual path following algorithm
-    as outlined in [4]_. This algorithm supports sparse constraint matrices and
-    is typically faster than the simplex methods, especially for large, sparse
-    problems. Note, however, that the solution returned may be slightly less
-    accurate than those of the simplex methods and will not, in general,
-    correspond with a vertex of the polytope defined by the constraints.
-
-    .. versionadded:: 1.0.0
-
-    Method *revised simplex* uses the revised simplex method as described in
-    [9]_, except that a factorization [11]_ of the basis matrix, rather than
-    its inverse, is efficiently maintained and used to solve the linear systems
-    at each iteration of the algorithm.
-
-    .. versionadded:: 1.3.0
-
-    Method *simplex* uses a traditional, full-tableau implementation of
-    Dantzig's simplex algorithm [1]_, [2]_ (*not* the
-    Nelder-Mead simplex). This algorithm is included for backwards
-    compatibility and educational purposes.
-
-    .. versionadded:: 0.15.0
-
-    Before applying *interior-point*, *revised simplex*, or *simplex*,
-    a presolve procedure based on [8]_ attempts
-    to identify trivial infeasibilities, trivial unboundedness, and potential
-    problem simplifications. Specifically, it checks for:
-
-    - rows of zeros in ``A_eq`` or ``A_ub``, representing trivial constraints;
-    - columns of zeros in ``A_eq`` `and` ``A_ub``, representing unconstrained
-      variables;
-    - column singletons in ``A_eq``, representing fixed variables; and
-    - column singletons in ``A_ub``, representing simple bounds.
-
-    If presolve reveals that the problem is unbounded (e.g. an unconstrained
-    and unbounded variable has negative cost) or infeasible (e.g., a row of
-    zeros in ``A_eq`` corresponds with a nonzero in ``b_eq``), the solver
-    terminates with the appropriate status code. Note that presolve terminates
-    as soon as any sign of unboundedness is detected; consequently, a problem
-    may be reported as unbounded when in reality the problem is infeasible
-    (but infeasibility has not been detected yet). Therefore, if it is
-    important to know whether the problem is actually infeasible, solve the
-    problem again with option ``presolve=False``.
-
-    If neither infeasibility nor unboundedness are detected in a single pass
-    of the presolve, bounds are tightened where possible and fixed
-    variables are removed from the problem. Then, linearly dependent rows
-    of the ``A_eq`` matrix are removed, (unless they represent an
-    infeasibility) to avoid numerical difficulties in the primary solve
-    routine. Note that rows that are nearly linearly dependent (within a
-    prescribed tolerance) may also be removed, which can change the optimal
-    solution in rare cases. If this is a concern, eliminate redundancy from
-    your problem formulation and run with option ``rr=False`` or
-    ``presolve=False``.
-
-    Several potential improvements can be made here: additional presolve
-    checks outlined in [8]_ should be implemented, the presolve routine should
-    be run multiple times (until no further simplifications can be made), and
-    more of the efficiency improvements from [5]_ should be implemented in the
-    redundancy removal routines.
-
-    After presolve, the problem is transformed to standard form by converting
-    the (tightened) simple bounds to upper bound constraints, introducing
-    non-negative slack variables for inequality constraints, and expressing
-    unbounded variables as the difference between two non-negative variables.
-    Optionally, the problem is automatically scaled via equilibration [12]_.
-    The selected algorithm solves the standard form problem, and a
-    postprocessing routine converts the result to a solution to the original
-    problem.
-
-    References
-    ----------
-    .. [1] Dantzig, George B., Linear programming and extensions. Rand
-           Corporation Research Study Princeton Univ. Press, Princeton, NJ,
-           1963
-    .. [2] Hillier, S.H. and Lieberman, G.J. (1995), "Introduction to
-           Mathematical Programming", McGraw-Hill, Chapter 4.
-    .. [3] Bland, Robert G. New finite pivoting rules for the simplex method.
-           Mathematics of Operations Research (2), 1977: pp. 103-107.
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-    .. [5] Andersen, Erling D. "Finding all linearly dependent rows in
-           large-scale linear programming." Optimization Methods and Software
-           6.3 (1995): 219-227.
-    .. [6] Freund, Robert M. "Primal-Dual Interior-Point Methods for Linear
-           Programming based on Newton's Method." Unpublished Course Notes,
-           March 2004. Available 2/25/2017 at
-           https://ocw.mit.edu/courses/sloan-school-of-management/15-084j-nonlinear-programming-spring-2004/lecture-notes/lec14_int_pt_mthd.pdf
-    .. [7] Fourer, Robert. "Solving Linear Programs by Interior-Point Methods."
-           Unpublished Course Notes, August 26, 2005. Available 2/25/2017 at
-           http://www.4er.org/CourseNotes/Book%20B/B-III.pdf
-    .. [8] Andersen, Erling D., and Knud D. Andersen. "Presolving in linear
-           programming." Mathematical Programming 71.2 (1995): 221-245.
-    .. [9] Bertsimas, Dimitris, and J. Tsitsiklis. "Introduction to linear
-           programming." Athena Scientific 1 (1997): 997.
-    .. [10] Andersen, Erling D., et al. Implementation of interior point
-            methods for large scale linear programming. HEC/Universite de
-            Geneve, 1996.
-    .. [11] Bartels, Richard H. "A stabilization of the simplex method."
-            Journal in  Numerische Mathematik 16.5 (1971): 414-434.
-    .. [12] Tomlin, J. A. "On scaling linear programming problems."
-            Mathematical Programming Study 4 (1975): 146-166.
-    .. [13] Huangfu, Q., Galabova, I., Feldmeier, M., and Hall, J. A. J.
-            "HiGHS - high performance software for linear optimization."
-            https://highs.dev/
-    .. [14] Huangfu, Q. and Hall, J. A. J. "Parallelizing the dual revised
-            simplex method." Mathematical Programming Computation, 10 (1),
-            119-142, 2018. DOI: 10.1007/s12532-017-0130-5
-
-    Examples
-    --------
-    Consider the following problem:
-
-    .. math::
-
-        \min_{x_0, x_1} \ -x_0 + 4x_1 & \\
-        \mbox{such that} \ -3x_0 + x_1 & \leq 6,\\
-        -x_0 - 2x_1 & \geq -4,\\
-        x_1 & \geq -3.
-
-    The problem is not presented in the form accepted by `linprog`. This is
-    easily remedied by converting the "greater than" inequality
-    constraint to a "less than" inequality constraint by
-    multiplying both sides by a factor of :math:`-1`. Note also that the last
-    constraint is really the simple bound :math:`-3 \leq x_1 \leq \infty`.
-    Finally, since there are no bounds on :math:`x_0`, we must explicitly
-    specify the bounds :math:`-\infty \leq x_0 \leq \infty`, as the
-    default is for variables to be non-negative. After collecting coeffecients
-    into arrays and tuples, the input for this problem is:
-
-    >>> from scipy.optimize import linprog
-    >>> c = [-1, 4]
-    >>> A = [[-3, 1], [1, 2]]
-    >>> b = [6, 4]
-    >>> x0_bounds = (None, None)
-    >>> x1_bounds = (-3, None)
-    >>> res = linprog(c, A_ub=A, b_ub=b, bounds=[x0_bounds, x1_bounds])
-    >>> res.fun
-    -22.0
-    >>> res.x
-    array([10., -3.])
-    >>> res.message
-    'Optimization terminated successfully. (HiGHS Status 7: Optimal)'
-
-    The marginals (AKA dual values / shadow prices / Lagrange multipliers)
-    and residuals (slacks) are also available.
-
-    >>> res.ineqlin
-      residual: [ 3.900e+01  0.000e+00]
-     marginals: [-0.000e+00 -1.000e+00]
-
-    For example, because the marginal associated with the second inequality
-    constraint is -1, we expect the optimal value of the objective function
-    to decrease by ``eps`` if we add a small amount ``eps`` to the right hand
-    side of the second inequality constraint:
-
-    >>> eps = 0.05
-    >>> b[1] += eps
-    >>> linprog(c, A_ub=A, b_ub=b, bounds=[x0_bounds, x1_bounds]).fun
-    -22.05
-
-    Also, because the residual on the first inequality constraint is 39, we
-    can decrease the right hand side of the first constraint by 39 without
-    affecting the optimal solution.
-
-    >>> b = [6, 4]  # reset to original values
-    >>> b[0] -= 39
-    >>> linprog(c, A_ub=A, b_ub=b, bounds=[x0_bounds, x1_bounds]).fun
-    -22.0
-
-    """
-
-    meth = method.lower()
-    methods = {"highs", "highs-ds", "highs-ipm",
-               "simplex", "revised simplex", "interior-point"}
-
-    if meth not in methods:
-        raise ValueError(f"Unknown solver '{method}'")
-
-    if x0 is not None and meth != "revised simplex":
-        warning_message = "x0 is used only when method is 'revised simplex'. "
-        warn(warning_message, OptimizeWarning, stacklevel=2)
-
-    if np.any(integrality) and not meth == "highs":
-        integrality = None
-        warning_message = ("Only `method='highs'` supports integer "
-                           "constraints. Ignoring `integrality`.")
-        warn(warning_message, OptimizeWarning, stacklevel=2)
-    elif np.any(integrality):
-        integrality = np.broadcast_to(integrality, np.shape(c))
-    else:
-        integrality = None
-
-    lp = _LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds, x0, integrality)
-    lp, solver_options = _parse_linprog(lp, options, meth)
-    tol = solver_options.get('tol', 1e-9)
-
-    # Give unmodified problem to HiGHS
-    if meth.startswith('highs'):
-        if callback is not None:
-            raise NotImplementedError("HiGHS solvers do not support the "
-                                      "callback interface.")
-        highs_solvers = {'highs-ipm': 'ipm', 'highs-ds': 'simplex',
-                         'highs': None}
-
-        sol = _linprog_highs(lp, solver=highs_solvers[meth],
-                             **solver_options)
-        sol['status'], sol['message'] = (
-            _check_result(sol['x'], sol['fun'], sol['status'], sol['slack'],
-                          sol['con'], lp.bounds, tol, sol['message'],
-                          integrality))
-        sol['success'] = sol['status'] == 0
-        return OptimizeResult(sol)
-
-    warn(f"`method='{meth}'` is deprecated and will be removed in SciPy "
-         "1.11.0. Please use one of the HiGHS solvers (e.g. "
-         "`method='highs'`) in new code.", DeprecationWarning, stacklevel=2)
-
-    iteration = 0
-    complete = False  # will become True if solved in presolve
-    undo = []
-
-    # Keep the original arrays to calculate slack/residuals for original
-    # problem.
-    lp_o = deepcopy(lp)
-
-    # Solve trivial problem, eliminate variables, tighten bounds, etc.
-    rr_method = solver_options.pop('rr_method', None)  # need to pop these;
-    rr = solver_options.pop('rr', True)  # they're not passed to methods
-    c0 = 0  # we might get a constant term in the objective
-    if solver_options.pop('presolve', True):
-        (lp, c0, x, undo, complete, status, message) = _presolve(lp, rr,
-                                                                 rr_method,
-                                                                 tol)
-
-    C, b_scale = 1, 1  # for trivial unscaling if autoscale is not used
-    postsolve_args = (lp_o._replace(bounds=lp.bounds), undo, C, b_scale)
-
-    if not complete:
-        A, b, c, c0, x0 = _get_Abc(lp, c0)
-        if solver_options.pop('autoscale', False):
-            A, b, c, x0, C, b_scale = _autoscale(A, b, c, x0)
-            postsolve_args = postsolve_args[:-2] + (C, b_scale)
-
-        if meth == 'simplex':
-            x, status, message, iteration = _linprog_simplex(
-                c, c0=c0, A=A, b=b, callback=callback,
-                postsolve_args=postsolve_args, **solver_options)
-        elif meth == 'interior-point':
-            x, status, message, iteration = _linprog_ip(
-                c, c0=c0, A=A, b=b, callback=callback,
-                postsolve_args=postsolve_args, **solver_options)
-        elif meth == 'revised simplex':
-            x, status, message, iteration = _linprog_rs(
-                c, c0=c0, A=A, b=b, x0=x0, callback=callback,
-                postsolve_args=postsolve_args, **solver_options)
-
-    # Eliminate artificial variables, re-introduce presolved variables, etc.
-    disp = solver_options.get('disp', False)
-
-    x, fun, slack, con = _postsolve(x, postsolve_args, complete)
-
-    status, message = _check_result(x, fun, status, slack, con, lp_o.bounds,
-                                    tol, message, integrality)
-
-    if disp:
-        _display_summary(message, status, fun, iteration)
-
-    sol = {
-        'x': x,
-        'fun': fun,
-        'slack': slack,
-        'con': con,
-        'status': status,
-        'message': message,
-        'nit': iteration,
-        'success': status == 0}
-
-    return OptimizeResult(sol)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_doc.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_doc.py
deleted file mode 100644
index 56c914134bdef816c8eb00eb4ab011475cd5b4ea..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_doc.py
+++ /dev/null
@@ -1,1434 +0,0 @@
-"""
-Created on Sat Aug 22 19:49:17 2020
-
-@author: matth
-"""
-
-
-def _linprog_highs_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
-                       bounds=None, method='highs', callback=None,
-                       maxiter=None, disp=False, presolve=True,
-                       time_limit=None,
-                       dual_feasibility_tolerance=None,
-                       primal_feasibility_tolerance=None,
-                       ipm_optimality_tolerance=None,
-                       simplex_dual_edge_weight_strategy=None,
-                       mip_rel_gap=None,
-                       **unknown_options):
-    r"""
-    Linear programming: minimize a linear objective function subject to linear
-    equality and inequality constraints using one of the HiGHS solvers.
-
-    Linear programming solves problems of the following form:
-
-    .. math::
-
-        \min_x \ & c^T x \\
-        \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
-        & A_{eq} x = b_{eq},\\
-        & l \leq x \leq u ,
-
-    where :math:`x` is a vector of decision variables; :math:`c`,
-    :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
-    :math:`A_{ub}` and :math:`A_{eq}` are matrices.
-
-    Alternatively, that's:
-
-    minimize::
-
-        c @ x
-
-    such that::
-
-        A_ub @ x <= b_ub
-        A_eq @ x == b_eq
-        lb <= x <= ub
-
-    Note that by default ``lb = 0`` and ``ub = None`` unless specified with
-    ``bounds``.
-
-    Parameters
-    ----------
-    c : 1-D array
-        The coefficients of the linear objective function to be minimized.
-    A_ub : 2-D array, optional
-        The inequality constraint matrix. Each row of ``A_ub`` specifies the
-        coefficients of a linear inequality constraint on ``x``.
-    b_ub : 1-D array, optional
-        The inequality constraint vector. Each element represents an
-        upper bound on the corresponding value of ``A_ub @ x``.
-    A_eq : 2-D array, optional
-        The equality constraint matrix. Each row of ``A_eq`` specifies the
-        coefficients of a linear equality constraint on ``x``.
-    b_eq : 1-D array, optional
-        The equality constraint vector. Each element of ``A_eq @ x`` must equal
-        the corresponding element of ``b_eq``.
-    bounds : sequence, optional
-        A sequence of ``(min, max)`` pairs for each element in ``x``, defining
-        the minimum and maximum values of that decision variable. Use ``None``
-        to indicate that there is no bound. By default, bounds are
-        ``(0, None)`` (all decision variables are non-negative).
-        If a single tuple ``(min, max)`` is provided, then ``min`` and
-        ``max`` will serve as bounds for all decision variables.
-    method : str
-
-        This is the method-specific documentation for 'highs', which chooses
-        automatically between
-        :ref:`'highs-ds' ` and
-        :ref:`'highs-ipm' `.
-        :ref:`'interior-point' ` (default),
-        :ref:`'revised simplex' `, and
-        :ref:`'simplex' ` (legacy)
-        are also available.
-    integrality : 1-D array or int, optional
-        Indicates the type of integrality constraint on each decision variable.
-
-        ``0`` : Continuous variable; no integrality constraint.
-
-        ``1`` : Integer variable; decision variable must be an integer
-        within `bounds`.
-
-        ``2`` : Semi-continuous variable; decision variable must be within
-        `bounds` or take value ``0``.
-
-        ``3`` : Semi-integer variable; decision variable must be an integer
-        within `bounds` or take value ``0``.
-
-        By default, all variables are continuous.
-
-        For mixed integrality constraints, supply an array of shape `c.shape`.
-        To infer a constraint on each decision variable from shorter inputs,
-        the argument will be broadcasted to `c.shape` using `np.broadcast_to`.
-
-        This argument is currently used only by the ``'highs'`` method and
-        ignored otherwise.
-
-    Options
-    -------
-    maxiter : int
-        The maximum number of iterations to perform in either phase.
-        For :ref:`'highs-ipm' `, this does not
-        include the number of crossover iterations. Default is the largest
-        possible value for an ``int`` on the platform.
-    disp : bool (default: ``False``)
-        Set to ``True`` if indicators of optimization status are to be
-        printed to the console during optimization.
-    presolve : bool (default: ``True``)
-        Presolve attempts to identify trivial infeasibilities,
-        identify trivial unboundedness, and simplify the problem before
-        sending it to the main solver. It is generally recommended
-        to keep the default setting ``True``; set to ``False`` if
-        presolve is to be disabled.
-    time_limit : float
-        The maximum time in seconds allotted to solve the problem;
-        default is the largest possible value for a ``double`` on the
-        platform.
-    dual_feasibility_tolerance : double (default: 1e-07)
-        Dual feasibility tolerance for
-        :ref:`'highs-ds' `.
-        The minimum of this and ``primal_feasibility_tolerance``
-        is used for the feasibility tolerance of
-        :ref:`'highs-ipm' `.
-    primal_feasibility_tolerance : double (default: 1e-07)
-        Primal feasibility tolerance for
-        :ref:`'highs-ds' `.
-        The minimum of this and ``dual_feasibility_tolerance``
-        is used for the feasibility tolerance of
-        :ref:`'highs-ipm' `.
-    ipm_optimality_tolerance : double (default: ``1e-08``)
-        Optimality tolerance for
-        :ref:`'highs-ipm' `.
-        Minimum allowable value is 1e-12.
-    simplex_dual_edge_weight_strategy : str (default: None)
-        Strategy for simplex dual edge weights. The default, ``None``,
-        automatically selects one of the following.
-
-        ``'dantzig'`` uses Dantzig's original strategy of choosing the most
-        negative reduced cost.
-
-        ``'devex'`` uses the strategy described in [15]_.
-
-        ``steepest`` uses the exact steepest edge strategy as described in
-        [16]_.
-
-        ``'steepest-devex'`` begins with the exact steepest edge strategy
-        until the computation is too costly or inexact and then switches to
-        the devex method.
-
-        Currently, ``None`` always selects ``'steepest-devex'``, but this
-        may change as new options become available.
-    mip_rel_gap : double (default: None)
-        Termination criterion for MIP solver: solver will terminate when the
-        gap between the primal objective value and the dual objective bound,
-        scaled by the primal objective value, is <= mip_rel_gap.
-    unknown_options : dict
-        Optional arguments not used by this particular solver. If
-        ``unknown_options`` is non-empty, a warning is issued listing
-        all unused options.
-
-    Returns
-    -------
-    res : OptimizeResult
-        A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
-
-        x : 1D array
-            The values of the decision variables that minimizes the
-            objective function while satisfying the constraints.
-        fun : float
-            The optimal value of the objective function ``c @ x``.
-        slack : 1D array
-            The (nominally positive) values of the slack,
-            ``b_ub - A_ub @ x``.
-        con : 1D array
-            The (nominally zero) residuals of the equality constraints,
-            ``b_eq - A_eq @ x``.
-        success : bool
-            ``True`` when the algorithm succeeds in finding an optimal
-            solution.
-        status : int
-            An integer representing the exit status of the algorithm.
-
-            ``0`` : Optimization terminated successfully.
-
-            ``1`` : Iteration or time limit reached.
-
-            ``2`` : Problem appears to be infeasible.
-
-            ``3`` : Problem appears to be unbounded.
-
-            ``4`` : The HiGHS solver ran into a problem.
-
-        message : str
-            A string descriptor of the exit status of the algorithm.
-        nit : int
-            The total number of iterations performed.
-            For the HiGHS simplex method, this includes iterations in all
-            phases. For the HiGHS interior-point method, this does not include
-            crossover iterations.
-        crossover_nit : int
-            The number of primal/dual pushes performed during the
-            crossover routine for the HiGHS interior-point method.
-            This is ``0`` for the HiGHS simplex method.
-        ineqlin : OptimizeResult
-            Solution and sensitivity information corresponding to the
-            inequality constraints, `b_ub`. A dictionary consisting of the
-            fields:
-
-            residual : np.ndnarray
-                The (nominally positive) values of the slack variables,
-                ``b_ub - A_ub @ x``.  This quantity is also commonly
-                referred to as "slack".
-
-            marginals : np.ndarray
-                The sensitivity (partial derivative) of the objective
-                function with respect to the right-hand side of the
-                inequality constraints, `b_ub`.
-
-        eqlin : OptimizeResult
-            Solution and sensitivity information corresponding to the
-            equality constraints, `b_eq`.  A dictionary consisting of the
-            fields:
-
-            residual : np.ndarray
-                The (nominally zero) residuals of the equality constraints,
-                ``b_eq - A_eq @ x``.
-
-            marginals : np.ndarray
-                The sensitivity (partial derivative) of the objective
-                function with respect to the right-hand side of the
-                equality constraints, `b_eq`.
-
-        lower, upper : OptimizeResult
-            Solution and sensitivity information corresponding to the
-            lower and upper bounds on decision variables, `bounds`.
-
-            residual : np.ndarray
-                The (nominally positive) values of the quantity
-                ``x - lb`` (lower) or ``ub - x`` (upper).
-
-            marginals : np.ndarray
-                The sensitivity (partial derivative) of the objective
-                function with respect to the lower and upper
-                `bounds`.
-
-    Notes
-    -----
-
-    Method :ref:`'highs-ds' ` is a wrapper
-    of the C++ high performance dual revised simplex implementation (HSOL)
-    [13]_, [14]_. Method :ref:`'highs-ipm' `
-    is a wrapper of a C++ implementation of an **i**\ nterior-\ **p**\ oint
-    **m**\ ethod [13]_; it features a crossover routine, so it is as accurate
-    as a simplex solver. Method :ref:`'highs' ` chooses
-    between the two automatically. For new code involving `linprog`, we
-    recommend explicitly choosing one of these three method values instead of
-    :ref:`'interior-point' ` (default),
-    :ref:`'revised simplex' `, and
-    :ref:`'simplex' ` (legacy).
-
-    The result fields `ineqlin`, `eqlin`, `lower`, and `upper` all contain
-    `marginals`, or partial derivatives of the objective function with respect
-    to the right-hand side of each constraint. These partial derivatives are
-    also referred to as "Lagrange multipliers", "dual values", and
-    "shadow prices". The sign convention of `marginals` is opposite that
-    of Lagrange multipliers produced by many nonlinear solvers.
-
-    References
-    ----------
-    .. [13] Huangfu, Q., Galabova, I., Feldmeier, M., and Hall, J. A. J.
-           "HiGHS - high performance software for linear optimization."
-           https://highs.dev/
-    .. [14] Huangfu, Q. and Hall, J. A. J. "Parallelizing the dual revised
-           simplex method." Mathematical Programming Computation, 10 (1),
-           119-142, 2018. DOI: 10.1007/s12532-017-0130-5
-    .. [15] Harris, Paula MJ. "Pivot selection methods of the Devex LP code."
-            Mathematical programming 5.1 (1973): 1-28.
-    .. [16] Goldfarb, Donald, and John Ker Reid. "A practicable steepest-edge
-            simplex algorithm." Mathematical Programming 12.1 (1977): 361-371.
-    """
-    pass
-
-
-def _linprog_highs_ds_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
-                          bounds=None, method='highs-ds', callback=None,
-                          maxiter=None, disp=False, presolve=True,
-                          time_limit=None,
-                          dual_feasibility_tolerance=None,
-                          primal_feasibility_tolerance=None,
-                          simplex_dual_edge_weight_strategy=None,
-                          **unknown_options):
-    r"""
-    Linear programming: minimize a linear objective function subject to linear
-    equality and inequality constraints using the HiGHS dual simplex solver.
-
-    Linear programming solves problems of the following form:
-
-    .. math::
-
-        \min_x \ & c^T x \\
-        \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
-        & A_{eq} x = b_{eq},\\
-        & l \leq x \leq u ,
-
-    where :math:`x` is a vector of decision variables; :math:`c`,
-    :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
-    :math:`A_{ub}` and :math:`A_{eq}` are matrices.
-
-    Alternatively, that's:
-
-    minimize::
-
-        c @ x
-
-    such that::
-
-        A_ub @ x <= b_ub
-        A_eq @ x == b_eq
-        lb <= x <= ub
-
-    Note that by default ``lb = 0`` and ``ub = None`` unless specified with
-    ``bounds``.
-
-    Parameters
-    ----------
-    c : 1-D array
-        The coefficients of the linear objective function to be minimized.
-    A_ub : 2-D array, optional
-        The inequality constraint matrix. Each row of ``A_ub`` specifies the
-        coefficients of a linear inequality constraint on ``x``.
-    b_ub : 1-D array, optional
-        The inequality constraint vector. Each element represents an
-        upper bound on the corresponding value of ``A_ub @ x``.
-    A_eq : 2-D array, optional
-        The equality constraint matrix. Each row of ``A_eq`` specifies the
-        coefficients of a linear equality constraint on ``x``.
-    b_eq : 1-D array, optional
-        The equality constraint vector. Each element of ``A_eq @ x`` must equal
-        the corresponding element of ``b_eq``.
-    bounds : sequence, optional
-        A sequence of ``(min, max)`` pairs for each element in ``x``, defining
-        the minimum and maximum values of that decision variable. Use ``None``
-        to indicate that there is no bound. By default, bounds are
-        ``(0, None)`` (all decision variables are non-negative).
-        If a single tuple ``(min, max)`` is provided, then ``min`` and
-        ``max`` will serve as bounds for all decision variables.
-    method : str
-
-        This is the method-specific documentation for 'highs-ds'.
-        :ref:`'highs' `,
-        :ref:`'highs-ipm' `,
-        :ref:`'interior-point' ` (default),
-        :ref:`'revised simplex' `, and
-        :ref:`'simplex' ` (legacy)
-        are also available.
-
-    Options
-    -------
-    maxiter : int
-        The maximum number of iterations to perform in either phase.
-        Default is the largest possible value for an ``int`` on the platform.
-    disp : bool (default: ``False``)
-        Set to ``True`` if indicators of optimization status are to be
-        printed to the console during optimization.
-    presolve : bool (default: ``True``)
-        Presolve attempts to identify trivial infeasibilities,
-        identify trivial unboundedness, and simplify the problem before
-        sending it to the main solver. It is generally recommended
-        to keep the default setting ``True``; set to ``False`` if
-        presolve is to be disabled.
-    time_limit : float
-        The maximum time in seconds allotted to solve the problem;
-        default is the largest possible value for a ``double`` on the
-        platform.
-    dual_feasibility_tolerance : double (default: 1e-07)
-        Dual feasibility tolerance for
-        :ref:`'highs-ds' `.
-    primal_feasibility_tolerance : double (default: 1e-07)
-        Primal feasibility tolerance for
-        :ref:`'highs-ds' `.
-    simplex_dual_edge_weight_strategy : str (default: None)
-        Strategy for simplex dual edge weights. The default, ``None``,
-        automatically selects one of the following.
-
-        ``'dantzig'`` uses Dantzig's original strategy of choosing the most
-        negative reduced cost.
-
-        ``'devex'`` uses the strategy described in [15]_.
-
-        ``steepest`` uses the exact steepest edge strategy as described in
-        [16]_.
-
-        ``'steepest-devex'`` begins with the exact steepest edge strategy
-        until the computation is too costly or inexact and then switches to
-        the devex method.
-
-        Currently, ``None`` always selects ``'steepest-devex'``, but this
-        may change as new options become available.
-    unknown_options : dict
-        Optional arguments not used by this particular solver. If
-        ``unknown_options`` is non-empty, a warning is issued listing
-        all unused options.
-
-    Returns
-    -------
-    res : OptimizeResult
-        A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
-
-        x : 1D array
-            The values of the decision variables that minimizes the
-            objective function while satisfying the constraints.
-        fun : float
-            The optimal value of the objective function ``c @ x``.
-        slack : 1D array
-            The (nominally positive) values of the slack,
-            ``b_ub - A_ub @ x``.
-        con : 1D array
-            The (nominally zero) residuals of the equality constraints,
-            ``b_eq - A_eq @ x``.
-        success : bool
-            ``True`` when the algorithm succeeds in finding an optimal
-            solution.
-        status : int
-            An integer representing the exit status of the algorithm.
-
-            ``0`` : Optimization terminated successfully.
-
-            ``1`` : Iteration or time limit reached.
-
-            ``2`` : Problem appears to be infeasible.
-
-            ``3`` : Problem appears to be unbounded.
-
-            ``4`` : The HiGHS solver ran into a problem.
-
-        message : str
-            A string descriptor of the exit status of the algorithm.
-        nit : int
-            The total number of iterations performed. This includes iterations
-            in all phases.
-        crossover_nit : int
-            This is always ``0`` for the HiGHS simplex method.
-            For the HiGHS interior-point method, this is the number of
-            primal/dual pushes performed during the crossover routine.
-        ineqlin : OptimizeResult
-            Solution and sensitivity information corresponding to the
-            inequality constraints, `b_ub`. A dictionary consisting of the
-            fields:
-
-            residual : np.ndnarray
-                The (nominally positive) values of the slack variables,
-                ``b_ub - A_ub @ x``.  This quantity is also commonly
-                referred to as "slack".
-
-            marginals : np.ndarray
-                The sensitivity (partial derivative) of the objective
-                function with respect to the right-hand side of the
-                inequality constraints, `b_ub`.
-
-        eqlin : OptimizeResult
-            Solution and sensitivity information corresponding to the
-            equality constraints, `b_eq`.  A dictionary consisting of the
-            fields:
-
-            residual : np.ndarray
-                The (nominally zero) residuals of the equality constraints,
-                ``b_eq - A_eq @ x``.
-
-            marginals : np.ndarray
-                The sensitivity (partial derivative) of the objective
-                function with respect to the right-hand side of the
-                equality constraints, `b_eq`.
-
-        lower, upper : OptimizeResult
-            Solution and sensitivity information corresponding to the
-            lower and upper bounds on decision variables, `bounds`.
-
-            residual : np.ndarray
-                The (nominally positive) values of the quantity
-                ``x - lb`` (lower) or ``ub - x`` (upper).
-
-            marginals : np.ndarray
-                The sensitivity (partial derivative) of the objective
-                function with respect to the lower and upper
-                `bounds`.
-
-    Notes
-    -----
-
-    Method :ref:`'highs-ds' ` is a wrapper
-    of the C++ high performance dual revised simplex implementation (HSOL)
-    [13]_, [14]_. Method :ref:`'highs-ipm' `
-    is a wrapper of a C++ implementation of an **i**\ nterior-\ **p**\ oint
-    **m**\ ethod [13]_; it features a crossover routine, so it is as accurate
-    as a simplex solver. Method :ref:`'highs' ` chooses
-    between the two automatically. For new code involving `linprog`, we
-    recommend explicitly choosing one of these three method values instead of
-    :ref:`'interior-point' ` (default),
-    :ref:`'revised simplex' `, and
-    :ref:`'simplex' ` (legacy).
-
-    The result fields `ineqlin`, `eqlin`, `lower`, and `upper` all contain
-    `marginals`, or partial derivatives of the objective function with respect
-    to the right-hand side of each constraint. These partial derivatives are
-    also referred to as "Lagrange multipliers", "dual values", and
-    "shadow prices". The sign convention of `marginals` is opposite that
-    of Lagrange multipliers produced by many nonlinear solvers.
-
-    References
-    ----------
-    .. [13] Huangfu, Q., Galabova, I., Feldmeier, M., and Hall, J. A. J.
-           "HiGHS - high performance software for linear optimization."
-           https://highs.dev/
-    .. [14] Huangfu, Q. and Hall, J. A. J. "Parallelizing the dual revised
-           simplex method." Mathematical Programming Computation, 10 (1),
-           119-142, 2018. DOI: 10.1007/s12532-017-0130-5
-    .. [15] Harris, Paula MJ. "Pivot selection methods of the Devex LP code."
-            Mathematical programming 5.1 (1973): 1-28.
-    .. [16] Goldfarb, Donald, and John Ker Reid. "A practicable steepest-edge
-            simplex algorithm." Mathematical Programming 12.1 (1977): 361-371.
-    """
-    pass
-
-
-def _linprog_highs_ipm_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
-                           bounds=None, method='highs-ipm', callback=None,
-                           maxiter=None, disp=False, presolve=True,
-                           time_limit=None,
-                           dual_feasibility_tolerance=None,
-                           primal_feasibility_tolerance=None,
-                           ipm_optimality_tolerance=None,
-                           **unknown_options):
-    r"""
-    Linear programming: minimize a linear objective function subject to linear
-    equality and inequality constraints using the HiGHS interior point solver.
-
-    Linear programming solves problems of the following form:
-
-    .. math::
-
-        \min_x \ & c^T x \\
-        \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
-        & A_{eq} x = b_{eq},\\
-        & l \leq x \leq u ,
-
-    where :math:`x` is a vector of decision variables; :math:`c`,
-    :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
-    :math:`A_{ub}` and :math:`A_{eq}` are matrices.
-
-    Alternatively, that's:
-
-    minimize::
-
-        c @ x
-
-    such that::
-
-        A_ub @ x <= b_ub
-        A_eq @ x == b_eq
-        lb <= x <= ub
-
-    Note that by default ``lb = 0`` and ``ub = None`` unless specified with
-    ``bounds``.
-
-    Parameters
-    ----------
-    c : 1-D array
-        The coefficients of the linear objective function to be minimized.
-    A_ub : 2-D array, optional
-        The inequality constraint matrix. Each row of ``A_ub`` specifies the
-        coefficients of a linear inequality constraint on ``x``.
-    b_ub : 1-D array, optional
-        The inequality constraint vector. Each element represents an
-        upper bound on the corresponding value of ``A_ub @ x``.
-    A_eq : 2-D array, optional
-        The equality constraint matrix. Each row of ``A_eq`` specifies the
-        coefficients of a linear equality constraint on ``x``.
-    b_eq : 1-D array, optional
-        The equality constraint vector. Each element of ``A_eq @ x`` must equal
-        the corresponding element of ``b_eq``.
-    bounds : sequence, optional
-        A sequence of ``(min, max)`` pairs for each element in ``x``, defining
-        the minimum and maximum values of that decision variable. Use ``None``
-        to indicate that there is no bound. By default, bounds are
-        ``(0, None)`` (all decision variables are non-negative).
-        If a single tuple ``(min, max)`` is provided, then ``min`` and
-        ``max`` will serve as bounds for all decision variables.
-    method : str
-
-        This is the method-specific documentation for 'highs-ipm'.
-        :ref:`'highs-ipm' `,
-        :ref:`'highs-ds' `,
-        :ref:`'interior-point' ` (default),
-        :ref:`'revised simplex' `, and
-        :ref:`'simplex' ` (legacy)
-        are also available.
-
-    Options
-    -------
-    maxiter : int
-        The maximum number of iterations to perform in either phase.
-        For :ref:`'highs-ipm' `, this does not
-        include the number of crossover iterations. Default is the largest
-        possible value for an ``int`` on the platform.
-    disp : bool (default: ``False``)
-        Set to ``True`` if indicators of optimization status are to be
-        printed to the console during optimization.
-    presolve : bool (default: ``True``)
-        Presolve attempts to identify trivial infeasibilities,
-        identify trivial unboundedness, and simplify the problem before
-        sending it to the main solver. It is generally recommended
-        to keep the default setting ``True``; set to ``False`` if
-        presolve is to be disabled.
-    time_limit : float
-        The maximum time in seconds allotted to solve the problem;
-        default is the largest possible value for a ``double`` on the
-        platform.
-    dual_feasibility_tolerance : double (default: 1e-07)
-        The minimum of this and ``primal_feasibility_tolerance``
-        is used for the feasibility tolerance of
-        :ref:`'highs-ipm' `.
-    primal_feasibility_tolerance : double (default: 1e-07)
-        The minimum of this and ``dual_feasibility_tolerance``
-        is used for the feasibility tolerance of
-        :ref:`'highs-ipm' `.
-    ipm_optimality_tolerance : double (default: ``1e-08``)
-        Optimality tolerance for
-        :ref:`'highs-ipm' `.
-        Minimum allowable value is 1e-12.
-    unknown_options : dict
-        Optional arguments not used by this particular solver. If
-        ``unknown_options`` is non-empty, a warning is issued listing
-        all unused options.
-
-    Returns
-    -------
-    res : OptimizeResult
-        A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
-
-        x : 1D array
-            The values of the decision variables that minimizes the
-            objective function while satisfying the constraints.
-        fun : float
-            The optimal value of the objective function ``c @ x``.
-        slack : 1D array
-            The (nominally positive) values of the slack,
-            ``b_ub - A_ub @ x``.
-        con : 1D array
-            The (nominally zero) residuals of the equality constraints,
-            ``b_eq - A_eq @ x``.
-        success : bool
-            ``True`` when the algorithm succeeds in finding an optimal
-            solution.
-        status : int
-            An integer representing the exit status of the algorithm.
-
-            ``0`` : Optimization terminated successfully.
-
-            ``1`` : Iteration or time limit reached.
-
-            ``2`` : Problem appears to be infeasible.
-
-            ``3`` : Problem appears to be unbounded.
-
-            ``4`` : The HiGHS solver ran into a problem.
-
-        message : str
-            A string descriptor of the exit status of the algorithm.
-        nit : int
-            The total number of iterations performed.
-            For the HiGHS interior-point method, this does not include
-            crossover iterations.
-        crossover_nit : int
-            The number of primal/dual pushes performed during the
-            crossover routine for the HiGHS interior-point method.
-        ineqlin : OptimizeResult
-            Solution and sensitivity information corresponding to the
-            inequality constraints, `b_ub`. A dictionary consisting of the
-            fields:
-
-            residual : np.ndnarray
-                The (nominally positive) values of the slack variables,
-                ``b_ub - A_ub @ x``.  This quantity is also commonly
-                referred to as "slack".
-
-            marginals : np.ndarray
-                The sensitivity (partial derivative) of the objective
-                function with respect to the right-hand side of the
-                inequality constraints, `b_ub`.
-
-        eqlin : OptimizeResult
-            Solution and sensitivity information corresponding to the
-            equality constraints, `b_eq`.  A dictionary consisting of the
-            fields:
-
-            residual : np.ndarray
-                The (nominally zero) residuals of the equality constraints,
-                ``b_eq - A_eq @ x``.
-
-            marginals : np.ndarray
-                The sensitivity (partial derivative) of the objective
-                function with respect to the right-hand side of the
-                equality constraints, `b_eq`.
-
-        lower, upper : OptimizeResult
-            Solution and sensitivity information corresponding to the
-            lower and upper bounds on decision variables, `bounds`.
-
-            residual : np.ndarray
-                The (nominally positive) values of the quantity
-                ``x - lb`` (lower) or ``ub - x`` (upper).
-
-            marginals : np.ndarray
-                The sensitivity (partial derivative) of the objective
-                function with respect to the lower and upper
-                `bounds`.
-
-    Notes
-    -----
-
-    Method :ref:`'highs-ipm' `
-    is a wrapper of a C++ implementation of an **i**\ nterior-\ **p**\ oint
-    **m**\ ethod [13]_; it features a crossover routine, so it is as accurate
-    as a simplex solver.
-    Method :ref:`'highs-ds' ` is a wrapper
-    of the C++ high performance dual revised simplex implementation (HSOL)
-    [13]_, [14]_. Method :ref:`'highs' ` chooses
-    between the two automatically. For new code involving `linprog`, we
-    recommend explicitly choosing one of these three method values instead of
-    :ref:`'interior-point' ` (default),
-    :ref:`'revised simplex' `, and
-    :ref:`'simplex' ` (legacy).
-
-    The result fields `ineqlin`, `eqlin`, `lower`, and `upper` all contain
-    `marginals`, or partial derivatives of the objective function with respect
-    to the right-hand side of each constraint. These partial derivatives are
-    also referred to as "Lagrange multipliers", "dual values", and
-    "shadow prices". The sign convention of `marginals` is opposite that
-    of Lagrange multipliers produced by many nonlinear solvers.
-
-    References
-    ----------
-    .. [13] Huangfu, Q., Galabova, I., Feldmeier, M., and Hall, J. A. J.
-           "HiGHS - high performance software for linear optimization."
-           https://highs.dev/
-    .. [14] Huangfu, Q. and Hall, J. A. J. "Parallelizing the dual revised
-           simplex method." Mathematical Programming Computation, 10 (1),
-           119-142, 2018. DOI: 10.1007/s12532-017-0130-5
-    """
-    pass
-
-
-def _linprog_ip_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
-                    bounds=None, method='interior-point', callback=None,
-                    maxiter=1000, disp=False, presolve=True,
-                    tol=1e-8, autoscale=False, rr=True,
-                    alpha0=.99995, beta=0.1, sparse=False,
-                    lstsq=False, sym_pos=True, cholesky=True, pc=True,
-                    ip=False, permc_spec='MMD_AT_PLUS_A', **unknown_options):
-    r"""
-    Linear programming: minimize a linear objective function subject to linear
-    equality and inequality constraints using the interior-point method of
-    [4]_.
-
-    .. deprecated:: 1.9.0
-        `method='interior-point'` will be removed in SciPy 1.11.0.
-        It is replaced by `method='highs'` because the latter is
-        faster and more robust.
-
-    Linear programming solves problems of the following form:
-
-    .. math::
-
-        \min_x \ & c^T x \\
-        \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
-        & A_{eq} x = b_{eq},\\
-        & l \leq x \leq u ,
-
-    where :math:`x` is a vector of decision variables; :math:`c`,
-    :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
-    :math:`A_{ub}` and :math:`A_{eq}` are matrices.
-
-    Alternatively, that's:
-
-    minimize::
-
-        c @ x
-
-    such that::
-
-        A_ub @ x <= b_ub
-        A_eq @ x == b_eq
-        lb <= x <= ub
-
-    Note that by default ``lb = 0`` and ``ub = None`` unless specified with
-    ``bounds``.
-
-    Parameters
-    ----------
-    c : 1-D array
-        The coefficients of the linear objective function to be minimized.
-    A_ub : 2-D array, optional
-        The inequality constraint matrix. Each row of ``A_ub`` specifies the
-        coefficients of a linear inequality constraint on ``x``.
-    b_ub : 1-D array, optional
-        The inequality constraint vector. Each element represents an
-        upper bound on the corresponding value of ``A_ub @ x``.
-    A_eq : 2-D array, optional
-        The equality constraint matrix. Each row of ``A_eq`` specifies the
-        coefficients of a linear equality constraint on ``x``.
-    b_eq : 1-D array, optional
-        The equality constraint vector. Each element of ``A_eq @ x`` must equal
-        the corresponding element of ``b_eq``.
-    bounds : sequence, optional
-        A sequence of ``(min, max)`` pairs for each element in ``x``, defining
-        the minimum and maximum values of that decision variable. Use ``None``
-        to indicate that there is no bound. By default, bounds are
-        ``(0, None)`` (all decision variables are non-negative).
-        If a single tuple ``(min, max)`` is provided, then ``min`` and
-        ``max`` will serve as bounds for all decision variables.
-    method : str
-        This is the method-specific documentation for 'interior-point'.
-        :ref:`'highs' `,
-        :ref:`'highs-ds' `,
-        :ref:`'highs-ipm' `,
-        :ref:`'revised simplex' `, and
-        :ref:`'simplex' ` (legacy)
-        are also available.
-    callback : callable, optional
-        Callback function to be executed once per iteration.
-
-    Options
-    -------
-    maxiter : int (default: 1000)
-        The maximum number of iterations of the algorithm.
-    disp : bool (default: False)
-        Set to ``True`` if indicators of optimization status are to be printed
-        to the console each iteration.
-    presolve : bool (default: True)
-        Presolve attempts to identify trivial infeasibilities,
-        identify trivial unboundedness, and simplify the problem before
-        sending it to the main solver. It is generally recommended
-        to keep the default setting ``True``; set to ``False`` if
-        presolve is to be disabled.
-    tol : float (default: 1e-8)
-        Termination tolerance to be used for all termination criteria;
-        see [4]_ Section 4.5.
-    autoscale : bool (default: False)
-        Set to ``True`` to automatically perform equilibration.
-        Consider using this option if the numerical values in the
-        constraints are separated by several orders of magnitude.
-    rr : bool (default: True)
-        Set to ``False`` to disable automatic redundancy removal.
-    alpha0 : float (default: 0.99995)
-        The maximal step size for Mehrota's predictor-corrector search
-        direction; see :math:`\beta_{3}` of [4]_ Table 8.1.
-    beta : float (default: 0.1)
-        The desired reduction of the path parameter :math:`\mu` (see [6]_)
-        when Mehrota's predictor-corrector is not in use (uncommon).
-    sparse : bool (default: False)
-        Set to ``True`` if the problem is to be treated as sparse after
-        presolve. If either ``A_eq`` or ``A_ub`` is a sparse matrix,
-        this option will automatically be set ``True``, and the problem
-        will be treated as sparse even during presolve. If your constraint
-        matrices contain mostly zeros and the problem is not very small (less
-        than about 100 constraints or variables), consider setting ``True``
-        or providing ``A_eq`` and ``A_ub`` as sparse matrices.
-    lstsq : bool (default: ``False``)
-        Set to ``True`` if the problem is expected to be very poorly
-        conditioned. This should always be left ``False`` unless severe
-        numerical difficulties are encountered. Leave this at the default
-        unless you receive a warning message suggesting otherwise.
-    sym_pos : bool (default: True)
-        Leave ``True`` if the problem is expected to yield a well conditioned
-        symmetric positive definite normal equation matrix
-        (almost always). Leave this at the default unless you receive
-        a warning message suggesting otherwise.
-    cholesky : bool (default: True)
-        Set to ``True`` if the normal equations are to be solved by explicit
-        Cholesky decomposition followed by explicit forward/backward
-        substitution. This is typically faster for problems
-        that are numerically well-behaved.
-    pc : bool (default: True)
-        Leave ``True`` if the predictor-corrector method of Mehrota is to be
-        used. This is almost always (if not always) beneficial.
-    ip : bool (default: False)
-        Set to ``True`` if the improved initial point suggestion due to [4]_
-        Section 4.3 is desired. Whether this is beneficial or not
-        depends on the problem.
-    permc_spec : str (default: 'MMD_AT_PLUS_A')
-        (Has effect only with ``sparse = True``, ``lstsq = False``, ``sym_pos =
-        True``, and no SuiteSparse.)
-        A matrix is factorized in each iteration of the algorithm.
-        This option specifies how to permute the columns of the matrix for
-        sparsity preservation. Acceptable values are:
-
-        - ``NATURAL``: natural ordering.
-        - ``MMD_ATA``: minimum degree ordering on the structure of A^T A.
-        - ``MMD_AT_PLUS_A``: minimum degree ordering on the structure of A^T+A.
-        - ``COLAMD``: approximate minimum degree column ordering.
-
-        This option can impact the convergence of the
-        interior point algorithm; test different values to determine which
-        performs best for your problem. For more information, refer to
-        ``scipy.sparse.linalg.splu``.
-    unknown_options : dict
-        Optional arguments not used by this particular solver. If
-        `unknown_options` is non-empty a warning is issued listing all
-        unused options.
-
-    Returns
-    -------
-    res : OptimizeResult
-        A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
-
-        x : 1-D array
-            The values of the decision variables that minimizes the
-            objective function while satisfying the constraints.
-        fun : float
-            The optimal value of the objective function ``c @ x``.
-        slack : 1-D array
-            The (nominally positive) values of the slack variables,
-            ``b_ub - A_ub @ x``.
-        con : 1-D array
-            The (nominally zero) residuals of the equality constraints,
-            ``b_eq - A_eq @ x``.
-        success : bool
-            ``True`` when the algorithm succeeds in finding an optimal
-            solution.
-        status : int
-            An integer representing the exit status of the algorithm.
-
-            ``0`` : Optimization terminated successfully.
-
-            ``1`` : Iteration limit reached.
-
-            ``2`` : Problem appears to be infeasible.
-
-            ``3`` : Problem appears to be unbounded.
-
-            ``4`` : Numerical difficulties encountered.
-
-        message : str
-            A string descriptor of the exit status of the algorithm.
-        nit : int
-            The total number of iterations performed in all phases.
-
-
-    Notes
-    -----
-    This method implements the algorithm outlined in [4]_ with ideas from [8]_
-    and a structure inspired by the simpler methods of [6]_.
-
-    The primal-dual path following method begins with initial 'guesses' of
-    the primal and dual variables of the standard form problem and iteratively
-    attempts to solve the (nonlinear) Karush-Kuhn-Tucker conditions for the
-    problem with a gradually reduced logarithmic barrier term added to the
-    objective. This particular implementation uses a homogeneous self-dual
-    formulation, which provides certificates of infeasibility or unboundedness
-    where applicable.
-
-    The default initial point for the primal and dual variables is that
-    defined in [4]_ Section 4.4 Equation 8.22. Optionally (by setting initial
-    point option ``ip=True``), an alternate (potentially improved) starting
-    point can be calculated according to the additional recommendations of
-    [4]_ Section 4.4.
-
-    A search direction is calculated using the predictor-corrector method
-    (single correction) proposed by Mehrota and detailed in [4]_ Section 4.1.
-    (A potential improvement would be to implement the method of multiple
-    corrections described in [4]_ Section 4.2.) In practice, this is
-    accomplished by solving the normal equations, [4]_ Section 5.1 Equations
-    8.31 and 8.32, derived from the Newton equations [4]_ Section 5 Equations
-    8.25 (compare to [4]_ Section 4 Equations 8.6-8.8). The advantage of
-    solving the normal equations rather than 8.25 directly is that the
-    matrices involved are symmetric positive definite, so Cholesky
-    decomposition can be used rather than the more expensive LU factorization.
-
-    With default options, the solver used to perform the factorization depends
-    on third-party software availability and the conditioning of the problem.
-
-    For dense problems, solvers are tried in the following order:
-
-    1. ``scipy.linalg.cho_factor``
-
-    2. ``scipy.linalg.solve`` with option ``sym_pos=True``
-
-    3. ``scipy.linalg.solve`` with option ``sym_pos=False``
-
-    4. ``scipy.linalg.lstsq``
-
-    For sparse problems:
-
-    1. ``sksparse.cholmod.cholesky`` (if scikit-sparse and SuiteSparse are
-       installed)
-
-    2. ``scipy.sparse.linalg.factorized`` (if scikit-umfpack and SuiteSparse
-       are installed)
-
-    3. ``scipy.sparse.linalg.splu`` (which uses SuperLU distributed with SciPy)
-
-    4. ``scipy.sparse.linalg.lsqr``
-
-    If the solver fails for any reason, successively more robust (but slower)
-    solvers are attempted in the order indicated. Attempting, failing, and
-    re-starting factorization can be time consuming, so if the problem is
-    numerically challenging, options can be set to  bypass solvers that are
-    failing. Setting ``cholesky=False`` skips to solver 2,
-    ``sym_pos=False`` skips to solver 3, and ``lstsq=True`` skips
-    to solver 4 for both sparse and dense problems.
-
-    Potential improvements for combatting issues associated with dense
-    columns in otherwise sparse problems are outlined in [4]_ Section 5.3 and
-    [10]_ Section 4.1-4.2; the latter also discusses the alleviation of
-    accuracy issues associated with the substitution approach to free
-    variables.
-
-    After calculating the search direction, the maximum possible step size
-    that does not activate the non-negativity constraints is calculated, and
-    the smaller of this step size and unity is applied (as in [4]_ Section
-    4.1.) [4]_ Section 4.3 suggests improvements for choosing the step size.
-
-    The new point is tested according to the termination conditions of [4]_
-    Section 4.5. The same tolerance, which can be set using the ``tol`` option,
-    is used for all checks. (A potential improvement would be to expose
-    the different tolerances to be set independently.) If optimality,
-    unboundedness, or infeasibility is detected, the solve procedure
-    terminates; otherwise it repeats.
-
-    Whereas the top level ``linprog`` module expects a problem of form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A_ub @ x <= b_ub
-        A_eq @ x == b_eq
-         lb <= x <= ub
-
-    where ``lb = 0`` and ``ub = None`` unless set in ``bounds``. The problem
-    is automatically converted to the form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A @ x == b
-            x >= 0
-
-    for solution. That is, the original problem contains equality, upper-bound
-    and variable constraints whereas the method specific solver requires
-    equality constraints and variable non-negativity. ``linprog`` converts the
-    original problem to standard form by converting the simple bounds to upper
-    bound constraints, introducing non-negative slack variables for inequality
-    constraints, and expressing unbounded variables as the difference between
-    two non-negative variables. The problem is converted back to the original
-    form before results are reported.
-
-    References
-    ----------
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-    .. [6] Freund, Robert M. "Primal-Dual Interior-Point Methods for Linear
-           Programming based on Newton's Method." Unpublished Course Notes,
-           March 2004. Available 2/25/2017 at
-           https://ocw.mit.edu/courses/sloan-school-of-management/15-084j-nonlinear-programming-spring-2004/lecture-notes/lec14_int_pt_mthd.pdf
-    .. [8] Andersen, Erling D., and Knud D. Andersen. "Presolving in linear
-           programming." Mathematical Programming 71.2 (1995): 221-245.
-    .. [9] Bertsimas, Dimitris, and J. Tsitsiklis. "Introduction to linear
-           programming." Athena Scientific 1 (1997): 997.
-    .. [10] Andersen, Erling D., et al. Implementation of interior point
-            methods for large scale linear programming. HEC/Universite de
-            Geneve, 1996.
-    """
-    pass
-
-
-def _linprog_rs_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
-                    bounds=None, method='interior-point', callback=None,
-                    x0=None, maxiter=5000, disp=False, presolve=True,
-                    tol=1e-12, autoscale=False, rr=True, maxupdate=10,
-                    mast=False, pivot="mrc", **unknown_options):
-    r"""
-    Linear programming: minimize a linear objective function subject to linear
-    equality and inequality constraints using the revised simplex method.
-
-    .. deprecated:: 1.9.0
-        `method='revised simplex'` will be removed in SciPy 1.11.0.
-        It is replaced by `method='highs'` because the latter is
-        faster and more robust.
-
-    Linear programming solves problems of the following form:
-
-    .. math::
-
-        \min_x \ & c^T x \\
-        \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
-        & A_{eq} x = b_{eq},\\
-        & l \leq x \leq u ,
-
-    where :math:`x` is a vector of decision variables; :math:`c`,
-    :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
-    :math:`A_{ub}` and :math:`A_{eq}` are matrices.
-
-    Alternatively, that's:
-
-    minimize::
-
-        c @ x
-
-    such that::
-
-        A_ub @ x <= b_ub
-        A_eq @ x == b_eq
-        lb <= x <= ub
-
-    Note that by default ``lb = 0`` and ``ub = None`` unless specified with
-    ``bounds``.
-
-    Parameters
-    ----------
-    c : 1-D array
-        The coefficients of the linear objective function to be minimized.
-    A_ub : 2-D array, optional
-        The inequality constraint matrix. Each row of ``A_ub`` specifies the
-        coefficients of a linear inequality constraint on ``x``.
-    b_ub : 1-D array, optional
-        The inequality constraint vector. Each element represents an
-        upper bound on the corresponding value of ``A_ub @ x``.
-    A_eq : 2-D array, optional
-        The equality constraint matrix. Each row of ``A_eq`` specifies the
-        coefficients of a linear equality constraint on ``x``.
-    b_eq : 1-D array, optional
-        The equality constraint vector. Each element of ``A_eq @ x`` must equal
-        the corresponding element of ``b_eq``.
-    bounds : sequence, optional
-        A sequence of ``(min, max)`` pairs for each element in ``x``, defining
-        the minimum and maximum values of that decision variable. Use ``None``
-        to indicate that there is no bound. By default, bounds are
-        ``(0, None)`` (all decision variables are non-negative).
-        If a single tuple ``(min, max)`` is provided, then ``min`` and
-        ``max`` will serve as bounds for all decision variables.
-    method : str
-        This is the method-specific documentation for 'revised simplex'.
-        :ref:`'highs' `,
-        :ref:`'highs-ds' `,
-        :ref:`'highs-ipm' `,
-        :ref:`'interior-point' ` (default),
-        and :ref:`'simplex' ` (legacy)
-        are also available.
-    callback : callable, optional
-        Callback function to be executed once per iteration.
-    x0 : 1-D array, optional
-        Guess values of the decision variables, which will be refined by
-        the optimization algorithm. This argument is currently used only by the
-        'revised simplex' method, and can only be used if `x0` represents a
-        basic feasible solution.
-
-    Options
-    -------
-    maxiter : int (default: 5000)
-       The maximum number of iterations to perform in either phase.
-    disp : bool (default: False)
-        Set to ``True`` if indicators of optimization status are to be printed
-        to the console each iteration.
-    presolve : bool (default: True)
-        Presolve attempts to identify trivial infeasibilities,
-        identify trivial unboundedness, and simplify the problem before
-        sending it to the main solver. It is generally recommended
-        to keep the default setting ``True``; set to ``False`` if
-        presolve is to be disabled.
-    tol : float (default: 1e-12)
-        The tolerance which determines when a solution is "close enough" to
-        zero in Phase 1 to be considered a basic feasible solution or close
-        enough to positive to serve as an optimal solution.
-    autoscale : bool (default: False)
-        Set to ``True`` to automatically perform equilibration.
-        Consider using this option if the numerical values in the
-        constraints are separated by several orders of magnitude.
-    rr : bool (default: True)
-        Set to ``False`` to disable automatic redundancy removal.
-    maxupdate : int (default: 10)
-        The maximum number of updates performed on the LU factorization.
-        After this many updates is reached, the basis matrix is factorized
-        from scratch.
-    mast : bool (default: False)
-        Minimize Amortized Solve Time. If enabled, the average time to solve
-        a linear system using the basis factorization is measured. Typically,
-        the average solve time will decrease with each successive solve after
-        initial factorization, as factorization takes much more time than the
-        solve operation (and updates). Eventually, however, the updated
-        factorization becomes sufficiently complex that the average solve time
-        begins to increase. When this is detected, the basis is refactorized
-        from scratch. Enable this option to maximize speed at the risk of
-        nondeterministic behavior. Ignored if ``maxupdate`` is 0.
-    pivot : "mrc" or "bland" (default: "mrc")
-        Pivot rule: Minimum Reduced Cost ("mrc") or Bland's rule ("bland").
-        Choose Bland's rule if iteration limit is reached and cycling is
-        suspected.
-    unknown_options : dict
-        Optional arguments not used by this particular solver. If
-        `unknown_options` is non-empty a warning is issued listing all
-        unused options.
-
-    Returns
-    -------
-    res : OptimizeResult
-        A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
-
-        x : 1-D array
-            The values of the decision variables that minimizes the
-            objective function while satisfying the constraints.
-        fun : float
-            The optimal value of the objective function ``c @ x``.
-        slack : 1-D array
-            The (nominally positive) values of the slack variables,
-            ``b_ub - A_ub @ x``.
-        con : 1-D array
-            The (nominally zero) residuals of the equality constraints,
-            ``b_eq - A_eq @ x``.
-        success : bool
-            ``True`` when the algorithm succeeds in finding an optimal
-            solution.
-        status : int
-            An integer representing the exit status of the algorithm.
-
-            ``0`` : Optimization terminated successfully.
-
-            ``1`` : Iteration limit reached.
-
-            ``2`` : Problem appears to be infeasible.
-
-            ``3`` : Problem appears to be unbounded.
-
-            ``4`` : Numerical difficulties encountered.
-
-            ``5`` : Problem has no constraints; turn presolve on.
-
-            ``6`` : Invalid guess provided.
-
-        message : str
-            A string descriptor of the exit status of the algorithm.
-        nit : int
-            The total number of iterations performed in all phases.
-
-
-    Notes
-    -----
-    Method *revised simplex* uses the revised simplex method as described in
-    [9]_, except that a factorization [11]_ of the basis matrix, rather than
-    its inverse, is efficiently maintained and used to solve the linear systems
-    at each iteration of the algorithm.
-
-    References
-    ----------
-    .. [9] Bertsimas, Dimitris, and J. Tsitsiklis. "Introduction to linear
-           programming." Athena Scientific 1 (1997): 997.
-    .. [11] Bartels, Richard H. "A stabilization of the simplex method."
-            Journal in  Numerische Mathematik 16.5 (1971): 414-434.
-    """
-    pass
-
-
-def _linprog_simplex_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
-                         bounds=None, method='interior-point', callback=None,
-                         maxiter=5000, disp=False, presolve=True,
-                         tol=1e-12, autoscale=False, rr=True, bland=False,
-                         **unknown_options):
-    r"""
-    Linear programming: minimize a linear objective function subject to linear
-    equality and inequality constraints using the tableau-based simplex method.
-
-    .. deprecated:: 1.9.0
-        `method='simplex'` will be removed in SciPy 1.11.0.
-        It is replaced by `method='highs'` because the latter is
-        faster and more robust.
-
-    Linear programming solves problems of the following form:
-
-    .. math::
-
-        \min_x \ & c^T x \\
-        \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
-        & A_{eq} x = b_{eq},\\
-        & l \leq x \leq u ,
-
-    where :math:`x` is a vector of decision variables; :math:`c`,
-    :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
-    :math:`A_{ub}` and :math:`A_{eq}` are matrices.
-
-    Alternatively, that's:
-
-    minimize::
-
-        c @ x
-
-    such that::
-
-        A_ub @ x <= b_ub
-        A_eq @ x == b_eq
-        lb <= x <= ub
-
-    Note that by default ``lb = 0`` and ``ub = None`` unless specified with
-    ``bounds``.
-
-    Parameters
-    ----------
-    c : 1-D array
-        The coefficients of the linear objective function to be minimized.
-    A_ub : 2-D array, optional
-        The inequality constraint matrix. Each row of ``A_ub`` specifies the
-        coefficients of a linear inequality constraint on ``x``.
-    b_ub : 1-D array, optional
-        The inequality constraint vector. Each element represents an
-        upper bound on the corresponding value of ``A_ub @ x``.
-    A_eq : 2-D array, optional
-        The equality constraint matrix. Each row of ``A_eq`` specifies the
-        coefficients of a linear equality constraint on ``x``.
-    b_eq : 1-D array, optional
-        The equality constraint vector. Each element of ``A_eq @ x`` must equal
-        the corresponding element of ``b_eq``.
-    bounds : sequence, optional
-        A sequence of ``(min, max)`` pairs for each element in ``x``, defining
-        the minimum and maximum values of that decision variable. Use ``None``
-        to indicate that there is no bound. By default, bounds are
-        ``(0, None)`` (all decision variables are non-negative).
-        If a single tuple ``(min, max)`` is provided, then ``min`` and
-        ``max`` will serve as bounds for all decision variables.
-    method : str
-        This is the method-specific documentation for 'simplex'.
-        :ref:`'highs' `,
-        :ref:`'highs-ds' `,
-        :ref:`'highs-ipm' `,
-        :ref:`'interior-point' ` (default),
-        and :ref:`'revised simplex' `
-        are also available.
-    callback : callable, optional
-        Callback function to be executed once per iteration.
-
-    Options
-    -------
-    maxiter : int (default: 5000)
-       The maximum number of iterations to perform in either phase.
-    disp : bool (default: False)
-        Set to ``True`` if indicators of optimization status are to be printed
-        to the console each iteration.
-    presolve : bool (default: True)
-        Presolve attempts to identify trivial infeasibilities,
-        identify trivial unboundedness, and simplify the problem before
-        sending it to the main solver. It is generally recommended
-        to keep the default setting ``True``; set to ``False`` if
-        presolve is to be disabled.
-    tol : float (default: 1e-12)
-        The tolerance which determines when a solution is "close enough" to
-        zero in Phase 1 to be considered a basic feasible solution or close
-        enough to positive to serve as an optimal solution.
-    autoscale : bool (default: False)
-        Set to ``True`` to automatically perform equilibration.
-        Consider using this option if the numerical values in the
-        constraints are separated by several orders of magnitude.
-    rr : bool (default: True)
-        Set to ``False`` to disable automatic redundancy removal.
-    bland : bool
-        If True, use Bland's anti-cycling rule [3]_ to choose pivots to
-        prevent cycling. If False, choose pivots which should lead to a
-        converged solution more quickly. The latter method is subject to
-        cycling (non-convergence) in rare instances.
-    unknown_options : dict
-        Optional arguments not used by this particular solver. If
-        `unknown_options` is non-empty a warning is issued listing all
-        unused options.
-
-    Returns
-    -------
-    res : OptimizeResult
-        A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
-
-        x : 1-D array
-            The values of the decision variables that minimizes the
-            objective function while satisfying the constraints.
-        fun : float
-            The optimal value of the objective function ``c @ x``.
-        slack : 1-D array
-            The (nominally positive) values of the slack variables,
-            ``b_ub - A_ub @ x``.
-        con : 1-D array
-            The (nominally zero) residuals of the equality constraints,
-            ``b_eq - A_eq @ x``.
-        success : bool
-            ``True`` when the algorithm succeeds in finding an optimal
-            solution.
-        status : int
-            An integer representing the exit status of the algorithm.
-
-            ``0`` : Optimization terminated successfully.
-
-            ``1`` : Iteration limit reached.
-
-            ``2`` : Problem appears to be infeasible.
-
-            ``3`` : Problem appears to be unbounded.
-
-            ``4`` : Numerical difficulties encountered.
-
-        message : str
-            A string descriptor of the exit status of the algorithm.
-        nit : int
-            The total number of iterations performed in all phases.
-
-    References
-    ----------
-    .. [1] Dantzig, George B., Linear programming and extensions. Rand
-           Corporation Research Study Princeton Univ. Press, Princeton, NJ,
-           1963
-    .. [2] Hillier, S.H. and Lieberman, G.J. (1995), "Introduction to
-           Mathematical Programming", McGraw-Hill, Chapter 4.
-    .. [3] Bland, Robert G. New finite pivoting rules for the simplex method.
-           Mathematics of Operations Research (2), 1977: pp. 103-107.
-    """
-    pass
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_highs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_highs.py
deleted file mode 100644
index eb07443bb255471e6e0ac487bd6749253bf5d133..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_highs.py
+++ /dev/null
@@ -1,440 +0,0 @@
-"""HiGHS Linear Optimization Methods
-
-Interface to HiGHS linear optimization software.
-https://highs.dev/
-
-.. versionadded:: 1.5.0
-
-References
-----------
-.. [1] Q. Huangfu and J.A.J. Hall. "Parallelizing the dual revised simplex
-           method." Mathematical Programming Computation, 10 (1), 119-142,
-           2018. DOI: 10.1007/s12532-017-0130-5
-
-"""
-
-import inspect
-import numpy as np
-from ._optimize import OptimizeWarning, OptimizeResult
-from warnings import warn
-from ._highs._highs_wrapper import _highs_wrapper
-from ._highs._highs_constants import (
-    CONST_INF,
-    MESSAGE_LEVEL_NONE,
-    HIGHS_OBJECTIVE_SENSE_MINIMIZE,
-
-    MODEL_STATUS_NOTSET,
-    MODEL_STATUS_LOAD_ERROR,
-    MODEL_STATUS_MODEL_ERROR,
-    MODEL_STATUS_PRESOLVE_ERROR,
-    MODEL_STATUS_SOLVE_ERROR,
-    MODEL_STATUS_POSTSOLVE_ERROR,
-    MODEL_STATUS_MODEL_EMPTY,
-    MODEL_STATUS_OPTIMAL,
-    MODEL_STATUS_INFEASIBLE,
-    MODEL_STATUS_UNBOUNDED_OR_INFEASIBLE,
-    MODEL_STATUS_UNBOUNDED,
-    MODEL_STATUS_REACHED_DUAL_OBJECTIVE_VALUE_UPPER_BOUND
-    as MODEL_STATUS_RDOVUB,
-    MODEL_STATUS_REACHED_OBJECTIVE_TARGET,
-    MODEL_STATUS_REACHED_TIME_LIMIT,
-    MODEL_STATUS_REACHED_ITERATION_LIMIT,
-
-    HIGHS_SIMPLEX_STRATEGY_DUAL,
-
-    HIGHS_SIMPLEX_CRASH_STRATEGY_OFF,
-
-    HIGHS_SIMPLEX_EDGE_WEIGHT_STRATEGY_CHOOSE,
-    HIGHS_SIMPLEX_EDGE_WEIGHT_STRATEGY_DANTZIG,
-    HIGHS_SIMPLEX_EDGE_WEIGHT_STRATEGY_DEVEX,
-    HIGHS_SIMPLEX_EDGE_WEIGHT_STRATEGY_STEEPEST_EDGE,
-)
-from scipy.sparse import csc_matrix, vstack, issparse
-
-
-def _highs_to_scipy_status_message(highs_status, highs_message):
-    """Converts HiGHS status number/message to SciPy status number/message"""
-
-    scipy_statuses_messages = {
-        None: (4, "HiGHS did not provide a status code. "),
-        MODEL_STATUS_NOTSET: (4, ""),
-        MODEL_STATUS_LOAD_ERROR: (4, ""),
-        MODEL_STATUS_MODEL_ERROR: (2, ""),
-        MODEL_STATUS_PRESOLVE_ERROR: (4, ""),
-        MODEL_STATUS_SOLVE_ERROR: (4, ""),
-        MODEL_STATUS_POSTSOLVE_ERROR: (4, ""),
-        MODEL_STATUS_MODEL_EMPTY: (4, ""),
-        MODEL_STATUS_RDOVUB: (4, ""),
-        MODEL_STATUS_REACHED_OBJECTIVE_TARGET: (4, ""),
-        MODEL_STATUS_OPTIMAL: (0, "Optimization terminated successfully. "),
-        MODEL_STATUS_REACHED_TIME_LIMIT: (1, "Time limit reached. "),
-        MODEL_STATUS_REACHED_ITERATION_LIMIT: (1, "Iteration limit reached. "),
-        MODEL_STATUS_INFEASIBLE: (2, "The problem is infeasible. "),
-        MODEL_STATUS_UNBOUNDED: (3, "The problem is unbounded. "),
-        MODEL_STATUS_UNBOUNDED_OR_INFEASIBLE: (4, "The problem is unbounded "
-                                               "or infeasible. ")}
-    unrecognized = (4, "The HiGHS status code was not recognized. ")
-    scipy_status, scipy_message = (
-        scipy_statuses_messages.get(highs_status, unrecognized))
-    scipy_message = (f"{scipy_message}"
-                     f"(HiGHS Status {highs_status}: {highs_message})")
-    return scipy_status, scipy_message
-
-
-def _replace_inf(x):
-    # Replace `np.inf` with CONST_INF
-    infs = np.isinf(x)
-    with np.errstate(invalid="ignore"):
-        x[infs] = np.sign(x[infs])*CONST_INF
-    return x
-
-
-def _convert_to_highs_enum(option, option_str, choices):
-    # If option is in the choices we can look it up, if not use
-    # the default value taken from function signature and warn:
-    try:
-        return choices[option.lower()]
-    except AttributeError:
-        return choices[option]
-    except KeyError:
-        sig = inspect.signature(_linprog_highs)
-        default_str = sig.parameters[option_str].default
-        warn(f"Option {option_str} is {option}, but only values in "
-             f"{set(choices.keys())} are allowed. Using default: "
-             f"{default_str}.",
-             OptimizeWarning, stacklevel=3)
-        return choices[default_str]
-
-
-def _linprog_highs(lp, solver, time_limit=None, presolve=True,
-                   disp=False, maxiter=None,
-                   dual_feasibility_tolerance=None,
-                   primal_feasibility_tolerance=None,
-                   ipm_optimality_tolerance=None,
-                   simplex_dual_edge_weight_strategy=None,
-                   mip_rel_gap=None,
-                   mip_max_nodes=None,
-                   **unknown_options):
-    r"""
-    Solve the following linear programming problem using one of the HiGHS
-    solvers:
-
-    User-facing documentation is in _linprog_doc.py.
-
-    Parameters
-    ----------
-    lp :  _LPProblem
-        A ``scipy.optimize._linprog_util._LPProblem`` ``namedtuple``.
-    solver : "ipm" or "simplex" or None
-        Which HiGHS solver to use.  If ``None``, "simplex" will be used.
-
-    Options
-    -------
-    maxiter : int
-        The maximum number of iterations to perform in either phase. For
-        ``solver='ipm'``, this does not include the number of crossover
-        iterations.  Default is the largest possible value for an ``int``
-        on the platform.
-    disp : bool
-        Set to ``True`` if indicators of optimization status are to be printed
-        to the console each iteration; default ``False``.
-    time_limit : float
-        The maximum time in seconds allotted to solve the problem; default is
-        the largest possible value for a ``double`` on the platform.
-    presolve : bool
-        Presolve attempts to identify trivial infeasibilities,
-        identify trivial unboundedness, and simplify the problem before
-        sending it to the main solver. It is generally recommended
-        to keep the default setting ``True``; set to ``False`` if presolve is
-        to be disabled.
-    dual_feasibility_tolerance : double
-        Dual feasibility tolerance.  Default is 1e-07.
-        The minimum of this and ``primal_feasibility_tolerance``
-        is used for the feasibility tolerance when ``solver='ipm'``.
-    primal_feasibility_tolerance : double
-        Primal feasibility tolerance.  Default is 1e-07.
-        The minimum of this and ``dual_feasibility_tolerance``
-        is used for the feasibility tolerance when ``solver='ipm'``.
-    ipm_optimality_tolerance : double
-        Optimality tolerance for ``solver='ipm'``.  Default is 1e-08.
-        Minimum possible value is 1e-12 and must be smaller than the largest
-        possible value for a ``double`` on the platform.
-    simplex_dual_edge_weight_strategy : str (default: None)
-        Strategy for simplex dual edge weights. The default, ``None``,
-        automatically selects one of the following.
-
-        ``'dantzig'`` uses Dantzig's original strategy of choosing the most
-        negative reduced cost.
-
-        ``'devex'`` uses the strategy described in [15]_.
-
-        ``steepest`` uses the exact steepest edge strategy as described in
-        [16]_.
-
-        ``'steepest-devex'`` begins with the exact steepest edge strategy
-        until the computation is too costly or inexact and then switches to
-        the devex method.
-
-        Currently, using ``None`` always selects ``'steepest-devex'``, but this
-        may change as new options become available.
-
-    mip_max_nodes : int
-        The maximum number of nodes allotted to solve the problem; default is
-        the largest possible value for a ``HighsInt`` on the platform.
-        Ignored if not using the MIP solver.
-    unknown_options : dict
-        Optional arguments not used by this particular solver. If
-        ``unknown_options`` is non-empty, a warning is issued listing all
-        unused options.
-
-    Returns
-    -------
-    sol : dict
-        A dictionary consisting of the fields:
-
-            x : 1D array
-                The values of the decision variables that minimizes the
-                objective function while satisfying the constraints.
-            fun : float
-                The optimal value of the objective function ``c @ x``.
-            slack : 1D array
-                The (nominally positive) values of the slack,
-                ``b_ub - A_ub @ x``.
-            con : 1D array
-                The (nominally zero) residuals of the equality constraints,
-                ``b_eq - A_eq @ x``.
-            success : bool
-                ``True`` when the algorithm succeeds in finding an optimal
-                solution.
-            status : int
-                An integer representing the exit status of the algorithm.
-
-                ``0`` : Optimization terminated successfully.
-
-                ``1`` : Iteration or time limit reached.
-
-                ``2`` : Problem appears to be infeasible.
-
-                ``3`` : Problem appears to be unbounded.
-
-                ``4`` : The HiGHS solver ran into a problem.
-
-            message : str
-                A string descriptor of the exit status of the algorithm.
-            nit : int
-                The total number of iterations performed.
-                For ``solver='simplex'``, this includes iterations in all
-                phases. For ``solver='ipm'``, this does not include
-                crossover iterations.
-            crossover_nit : int
-                The number of primal/dual pushes performed during the
-                crossover routine for ``solver='ipm'``.  This is ``0``
-                for ``solver='simplex'``.
-            ineqlin : OptimizeResult
-                Solution and sensitivity information corresponding to the
-                inequality constraints, `b_ub`. A dictionary consisting of the
-                fields:
-
-                residual : np.ndnarray
-                    The (nominally positive) values of the slack variables,
-                    ``b_ub - A_ub @ x``.  This quantity is also commonly
-                    referred to as "slack".
-
-                marginals : np.ndarray
-                    The sensitivity (partial derivative) of the objective
-                    function with respect to the right-hand side of the
-                    inequality constraints, `b_ub`.
-
-            eqlin : OptimizeResult
-                Solution and sensitivity information corresponding to the
-                equality constraints, `b_eq`.  A dictionary consisting of the
-                fields:
-
-                residual : np.ndarray
-                    The (nominally zero) residuals of the equality constraints,
-                    ``b_eq - A_eq @ x``.
-
-                marginals : np.ndarray
-                    The sensitivity (partial derivative) of the objective
-                    function with respect to the right-hand side of the
-                    equality constraints, `b_eq`.
-
-            lower, upper : OptimizeResult
-                Solution and sensitivity information corresponding to the
-                lower and upper bounds on decision variables, `bounds`.
-
-                residual : np.ndarray
-                    The (nominally positive) values of the quantity
-                    ``x - lb`` (lower) or ``ub - x`` (upper).
-
-                marginals : np.ndarray
-                    The sensitivity (partial derivative) of the objective
-                    function with respect to the lower and upper
-                    `bounds`.
-
-            mip_node_count : int
-                The number of subproblems or "nodes" solved by the MILP
-                solver. Only present when `integrality` is not `None`.
-
-            mip_dual_bound : float
-                The MILP solver's final estimate of the lower bound on the
-                optimal solution. Only present when `integrality` is not
-                `None`.
-
-            mip_gap : float
-                The difference between the final objective function value
-                and the final dual bound, scaled by the final objective
-                function value. Only present when `integrality` is not
-                `None`.
-
-    Notes
-    -----
-    The result fields `ineqlin`, `eqlin`, `lower`, and `upper` all contain
-    `marginals`, or partial derivatives of the objective function with respect
-    to the right-hand side of each constraint. These partial derivatives are
-    also referred to as "Lagrange multipliers", "dual values", and
-    "shadow prices". The sign convention of `marginals` is opposite that
-    of Lagrange multipliers produced by many nonlinear solvers.
-
-    References
-    ----------
-    .. [15] Harris, Paula MJ. "Pivot selection methods of the Devex LP code."
-            Mathematical programming 5.1 (1973): 1-28.
-    .. [16] Goldfarb, Donald, and John Ker Reid. "A practicable steepest-edge
-            simplex algorithm." Mathematical Programming 12.1 (1977): 361-371.
-    """
-    if unknown_options:
-        message = (f"Unrecognized options detected: {unknown_options}. "
-                   "These will be passed to HiGHS verbatim.")
-        warn(message, OptimizeWarning, stacklevel=3)
-
-    # Map options to HiGHS enum values
-    simplex_dual_edge_weight_strategy_enum = _convert_to_highs_enum(
-        simplex_dual_edge_weight_strategy,
-        'simplex_dual_edge_weight_strategy',
-        choices={'dantzig': HIGHS_SIMPLEX_EDGE_WEIGHT_STRATEGY_DANTZIG,
-                 'devex': HIGHS_SIMPLEX_EDGE_WEIGHT_STRATEGY_DEVEX,
-                 'steepest-devex': HIGHS_SIMPLEX_EDGE_WEIGHT_STRATEGY_CHOOSE,
-                 'steepest':
-                 HIGHS_SIMPLEX_EDGE_WEIGHT_STRATEGY_STEEPEST_EDGE,
-                 None: None})
-
-    c, A_ub, b_ub, A_eq, b_eq, bounds, x0, integrality = lp
-
-    lb, ub = bounds.T.copy()  # separate bounds, copy->C-cntgs
-    # highs_wrapper solves LHS <= A*x <= RHS, not equality constraints
-    with np.errstate(invalid="ignore"):
-        lhs_ub = -np.ones_like(b_ub)*np.inf  # LHS of UB constraints is -inf
-    rhs_ub = b_ub  # RHS of UB constraints is b_ub
-    lhs_eq = b_eq  # Equality constraint is inequality
-    rhs_eq = b_eq  # constraint with LHS=RHS
-    lhs = np.concatenate((lhs_ub, lhs_eq))
-    rhs = np.concatenate((rhs_ub, rhs_eq))
-
-    if issparse(A_ub) or issparse(A_eq):
-        A = vstack((A_ub, A_eq))
-    else:
-        A = np.vstack((A_ub, A_eq))
-    A = csc_matrix(A)
-
-    options = {
-        'presolve': presolve,
-        'sense': HIGHS_OBJECTIVE_SENSE_MINIMIZE,
-        'solver': solver,
-        'time_limit': time_limit,
-        'highs_debug_level': MESSAGE_LEVEL_NONE,
-        'dual_feasibility_tolerance': dual_feasibility_tolerance,
-        'ipm_optimality_tolerance': ipm_optimality_tolerance,
-        'log_to_console': disp,
-        'mip_max_nodes': mip_max_nodes,
-        'output_flag': disp,
-        'primal_feasibility_tolerance': primal_feasibility_tolerance,
-        'simplex_dual_edge_weight_strategy':
-            simplex_dual_edge_weight_strategy_enum,
-        'simplex_strategy': HIGHS_SIMPLEX_STRATEGY_DUAL,
-        'simplex_crash_strategy': HIGHS_SIMPLEX_CRASH_STRATEGY_OFF,
-        'ipm_iteration_limit': maxiter,
-        'simplex_iteration_limit': maxiter,
-        'mip_rel_gap': mip_rel_gap,
-    }
-    options.update(unknown_options)
-
-    # np.inf doesn't work; use very large constant
-    rhs = _replace_inf(rhs)
-    lhs = _replace_inf(lhs)
-    lb = _replace_inf(lb)
-    ub = _replace_inf(ub)
-
-    if integrality is None or np.sum(integrality) == 0:
-        integrality = np.empty(0)
-    else:
-        integrality = np.array(integrality)
-
-    res = _highs_wrapper(c, A.indptr, A.indices, A.data, lhs, rhs,
-                         lb, ub, integrality.astype(np.uint8), options)
-
-    # HiGHS represents constraints as lhs/rhs, so
-    # Ax + s = b => Ax = b - s
-    # and we need to split up s by A_ub and A_eq
-    if 'slack' in res:
-        slack = res['slack']
-        con = np.array(slack[len(b_ub):])
-        slack = np.array(slack[:len(b_ub)])
-    else:
-        slack, con = None, None
-
-    # lagrange multipliers for equalities/inequalities and upper/lower bounds
-    if 'lambda' in res:
-        lamda = res['lambda']
-        marg_ineqlin = np.array(lamda[:len(b_ub)])
-        marg_eqlin = np.array(lamda[len(b_ub):])
-        marg_upper = np.array(res['marg_bnds'][1, :])
-        marg_lower = np.array(res['marg_bnds'][0, :])
-    else:
-        marg_ineqlin, marg_eqlin = None, None
-        marg_upper, marg_lower = None, None
-
-    # this needs to be updated if we start choosing the solver intelligently
-
-    # Convert to scipy-style status and message
-    highs_status = res.get('status', None)
-    highs_message = res.get('message', None)
-    status, message = _highs_to_scipy_status_message(highs_status,
-                                                     highs_message)
-
-    x = np.array(res['x']) if 'x' in res else None
-    sol = {'x': x,
-           'slack': slack,
-           'con': con,
-           'ineqlin': OptimizeResult({
-               'residual': slack,
-               'marginals': marg_ineqlin,
-           }),
-           'eqlin': OptimizeResult({
-               'residual': con,
-               'marginals': marg_eqlin,
-           }),
-           'lower': OptimizeResult({
-               'residual': None if x is None else x - lb,
-               'marginals': marg_lower,
-           }),
-           'upper': OptimizeResult({
-               'residual': None if x is None else ub - x,
-               'marginals': marg_upper
-            }),
-           'fun': res.get('fun'),
-           'status': status,
-           'success': res['status'] == MODEL_STATUS_OPTIMAL,
-           'message': message,
-           'nit': res.get('simplex_nit', 0) or res.get('ipm_nit', 0),
-           'crossover_nit': res.get('crossover_nit'),
-           }
-
-    if np.any(x) and integrality is not None:
-        sol.update({
-            'mip_node_count': res.get('mip_node_count', 0),
-            'mip_dual_bound': res.get('mip_dual_bound', 0.0),
-            'mip_gap': res.get('mip_gap', 0.0),
-        })
-
-    return sol
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_ip.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_ip.py
deleted file mode 100644
index 73bca3037f0e548f2420ba6be220446e94ddeb69..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_ip.py
+++ /dev/null
@@ -1,1126 +0,0 @@
-"""Interior-point method for linear programming
-
-The *interior-point* method uses the primal-dual path following algorithm
-outlined in [1]_. This algorithm supports sparse constraint matrices and
-is typically faster than the simplex methods, especially for large, sparse
-problems. Note, however, that the solution returned may be slightly less
-accurate than those of the simplex methods and will not, in general,
-correspond with a vertex of the polytope defined by the constraints.
-
-    .. versionadded:: 1.0.0
-
-References
-----------
-.. [1] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-       optimizer for linear programming: an implementation of the
-       homogeneous algorithm." High performance optimization. Springer US,
-       2000. 197-232.
-"""
-# Author: Matt Haberland
-
-import numpy as np
-import scipy as sp
-import scipy.sparse as sps
-from warnings import warn
-from scipy.linalg import LinAlgError
-from ._optimize import OptimizeWarning, OptimizeResult, _check_unknown_options
-from ._linprog_util import _postsolve
-has_umfpack = True
-has_cholmod = True
-try:
-    import sksparse  # noqa: F401
-    from sksparse.cholmod import cholesky as cholmod  # noqa: F401
-    from sksparse.cholmod import analyze as cholmod_analyze
-except ImportError:
-    has_cholmod = False
-try:
-    import scikits.umfpack  # test whether to use factorized  # noqa: F401
-except ImportError:
-    has_umfpack = False
-
-
-def _get_solver(M, sparse=False, lstsq=False, sym_pos=True,
-                cholesky=True, permc_spec='MMD_AT_PLUS_A'):
-    """
-    Given solver options, return a handle to the appropriate linear system
-    solver.
-
-    Parameters
-    ----------
-    M : 2-D array
-        As defined in [4] Equation 8.31
-    sparse : bool (default = False)
-        True if the system to be solved is sparse. This is typically set
-        True when the original ``A_ub`` and ``A_eq`` arrays are sparse.
-    lstsq : bool (default = False)
-        True if the system is ill-conditioned and/or (nearly) singular and
-        thus a more robust least-squares solver is desired. This is sometimes
-        needed as the solution is approached.
-    sym_pos : bool (default = True)
-        True if the system matrix is symmetric positive definite
-        Sometimes this needs to be set false as the solution is approached,
-        even when the system should be symmetric positive definite, due to
-        numerical difficulties.
-    cholesky : bool (default = True)
-        True if the system is to be solved by Cholesky, rather than LU,
-        decomposition. This is typically faster unless the problem is very
-        small or prone to numerical difficulties.
-    permc_spec : str (default = 'MMD_AT_PLUS_A')
-        Sparsity preservation strategy used by SuperLU. Acceptable values are:
-
-        - ``NATURAL``: natural ordering.
-        - ``MMD_ATA``: minimum degree ordering on the structure of A^T A.
-        - ``MMD_AT_PLUS_A``: minimum degree ordering on the structure of A^T+A.
-        - ``COLAMD``: approximate minimum degree column ordering.
-
-        See SuperLU documentation.
-
-    Returns
-    -------
-    solve : function
-        Handle to the appropriate solver function
-
-    """
-    try:
-        if sparse:
-            if lstsq:
-                def solve(r, sym_pos=False):
-                    return sps.linalg.lsqr(M, r)[0]
-            elif cholesky:
-                try:
-                    # Will raise an exception in the first call,
-                    # or when the matrix changes due to a new problem
-                    _get_solver.cholmod_factor.cholesky_inplace(M)
-                except Exception:
-                    _get_solver.cholmod_factor = cholmod_analyze(M)
-                    _get_solver.cholmod_factor.cholesky_inplace(M)
-                solve = _get_solver.cholmod_factor
-            else:
-                if has_umfpack and sym_pos:
-                    solve = sps.linalg.factorized(M)
-                else:  # factorized doesn't pass permc_spec
-                    solve = sps.linalg.splu(M, permc_spec=permc_spec).solve
-
-        else:
-            if lstsq:  # sometimes necessary as solution is approached
-                def solve(r):
-                    return sp.linalg.lstsq(M, r)[0]
-            elif cholesky:
-                L = sp.linalg.cho_factor(M)
-
-                def solve(r):
-                    return sp.linalg.cho_solve(L, r)
-            else:
-                # this seems to cache the matrix factorization, so solving
-                # with multiple right hand sides is much faster
-                def solve(r, sym_pos=sym_pos):
-                    if sym_pos:
-                        return sp.linalg.solve(M, r, assume_a="pos")
-                    else:
-                        return sp.linalg.solve(M, r)
-    # There are many things that can go wrong here, and it's hard to say
-    # what all of them are. It doesn't really matter: if the matrix can't be
-    # factorized, return None. get_solver will be called again with different
-    # inputs, and a new routine will try to factorize the matrix.
-    except KeyboardInterrupt:
-        raise
-    except Exception:
-        return None
-    return solve
-
-
-def _get_delta(A, b, c, x, y, z, tau, kappa, gamma, eta, sparse=False,
-               lstsq=False, sym_pos=True, cholesky=True, pc=True, ip=False,
-               permc_spec='MMD_AT_PLUS_A'):
-    """
-    Given standard form problem defined by ``A``, ``b``, and ``c``;
-    current variable estimates ``x``, ``y``, ``z``, ``tau``, and ``kappa``;
-    algorithmic parameters ``gamma and ``eta;
-    and options ``sparse``, ``lstsq``, ``sym_pos``, ``cholesky``, ``pc``
-    (predictor-corrector), and ``ip`` (initial point improvement),
-    get the search direction for increments to the variable estimates.
-
-    Parameters
-    ----------
-    As defined in [4], except:
-    sparse : bool
-        True if the system to be solved is sparse. This is typically set
-        True when the original ``A_ub`` and ``A_eq`` arrays are sparse.
-    lstsq : bool
-        True if the system is ill-conditioned and/or (nearly) singular and
-        thus a more robust least-squares solver is desired. This is sometimes
-        needed as the solution is approached.
-    sym_pos : bool
-        True if the system matrix is symmetric positive definite
-        Sometimes this needs to be set false as the solution is approached,
-        even when the system should be symmetric positive definite, due to
-        numerical difficulties.
-    cholesky : bool
-        True if the system is to be solved by Cholesky, rather than LU,
-        decomposition. This is typically faster unless the problem is very
-        small or prone to numerical difficulties.
-    pc : bool
-        True if the predictor-corrector method of Mehrota is to be used. This
-        is almost always (if not always) beneficial. Even though it requires
-        the solution of an additional linear system, the factorization
-        is typically (implicitly) reused so solution is efficient, and the
-        number of algorithm iterations is typically reduced.
-    ip : bool
-        True if the improved initial point suggestion due to [4] section 4.3
-        is desired. It's unclear whether this is beneficial.
-    permc_spec : str (default = 'MMD_AT_PLUS_A')
-        (Has effect only with ``sparse = True``, ``lstsq = False``, ``sym_pos =
-        True``.) A matrix is factorized in each iteration of the algorithm.
-        This option specifies how to permute the columns of the matrix for
-        sparsity preservation. Acceptable values are:
-
-        - ``NATURAL``: natural ordering.
-        - ``MMD_ATA``: minimum degree ordering on the structure of A^T A.
-        - ``MMD_AT_PLUS_A``: minimum degree ordering on the structure of A^T+A.
-        - ``COLAMD``: approximate minimum degree column ordering.
-
-        This option can impact the convergence of the
-        interior point algorithm; test different values to determine which
-        performs best for your problem. For more information, refer to
-        ``scipy.sparse.linalg.splu``.
-
-    Returns
-    -------
-    Search directions as defined in [4]
-
-    References
-    ----------
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-
-    """
-    if A.shape[0] == 0:
-        # If there are no constraints, some solvers fail (understandably)
-        # rather than returning empty solution. This gets the job done.
-        sparse, lstsq, sym_pos, cholesky = False, False, True, False
-    n_x = len(x)
-
-    # [4] Equation 8.8
-    r_P = b * tau - A.dot(x)
-    r_D = c * tau - A.T.dot(y) - z
-    r_G = c.dot(x) - b.transpose().dot(y) + kappa
-    mu = (x.dot(z) + tau * kappa) / (n_x + 1)
-
-    #  Assemble M from [4] Equation 8.31
-    Dinv = x / z
-
-    if sparse:
-        M = A.dot(sps.diags(Dinv, 0, format="csc").dot(A.T))
-    else:
-        M = A.dot(Dinv.reshape(-1, 1) * A.T)
-    solve = _get_solver(M, sparse, lstsq, sym_pos, cholesky, permc_spec)
-
-    # pc: "predictor-corrector" [4] Section 4.1
-    # In development this option could be turned off
-    # but it always seems to improve performance substantially
-    n_corrections = 1 if pc else 0
-
-    i = 0
-    alpha, d_x, d_z, d_tau, d_kappa = 0, 0, 0, 0, 0
-    while i <= n_corrections:
-        # Reference [4] Eq. 8.6
-        rhatp = eta(gamma) * r_P
-        rhatd = eta(gamma) * r_D
-        rhatg = eta(gamma) * r_G
-
-        # Reference [4] Eq. 8.7
-        rhatxs = gamma * mu - x * z
-        rhattk = gamma * mu - tau * kappa
-
-        if i == 1:
-            if ip:  # if the correction is to get "initial point"
-                # Reference [4] Eq. 8.23
-                rhatxs = ((1 - alpha) * gamma * mu -
-                          x * z - alpha**2 * d_x * d_z)
-                rhattk = ((1 - alpha) * gamma * mu -
-                    tau * kappa -
-                    alpha**2 * d_tau * d_kappa)
-            else:  # if the correction is for "predictor-corrector"
-                # Reference [4] Eq. 8.13
-                rhatxs -= d_x * d_z
-                rhattk -= d_tau * d_kappa
-
-        # sometimes numerical difficulties arise as the solution is approached
-        # this loop tries to solve the equations using a sequence of functions
-        # for solve. For dense systems, the order is:
-        # 1. scipy.linalg.cho_factor/scipy.linalg.cho_solve,
-        # 2. scipy.linalg.solve w/ sym_pos = True,
-        # 3. scipy.linalg.solve w/ sym_pos = False, and if all else fails
-        # 4. scipy.linalg.lstsq
-        # For sparse systems, the order is:
-        # 1. sksparse.cholmod.cholesky (if available)
-        # 2. scipy.sparse.linalg.factorized (if umfpack available)
-        # 3. scipy.sparse.linalg.splu
-        # 4. scipy.sparse.linalg.lsqr
-        solved = False
-        while not solved:
-            try:
-                # [4] Equation 8.28
-                p, q = _sym_solve(Dinv, A, c, b, solve)
-                # [4] Equation 8.29
-                u, v = _sym_solve(Dinv, A, rhatd -
-                                  (1 / x) * rhatxs, rhatp, solve)
-                if np.any(np.isnan(p)) or np.any(np.isnan(q)):
-                    raise LinAlgError
-                solved = True
-            except (LinAlgError, ValueError, TypeError) as e:
-                # Usually this doesn't happen. If it does, it happens when
-                # there are redundant constraints or when approaching the
-                # solution. If so, change solver.
-                if cholesky:
-                    cholesky = False
-                    warn(
-                        "Solving system with option 'cholesky':True "
-                        "failed. It is normal for this to happen "
-                        "occasionally, especially as the solution is "
-                        "approached. However, if you see this frequently, "
-                        "consider setting option 'cholesky' to False.",
-                        OptimizeWarning, stacklevel=5)
-                elif sym_pos:
-                    sym_pos = False
-                    warn(
-                        "Solving system with option 'sym_pos':True "
-                        "failed. It is normal for this to happen "
-                        "occasionally, especially as the solution is "
-                        "approached. However, if you see this frequently, "
-                        "consider setting option 'sym_pos' to False.",
-                        OptimizeWarning, stacklevel=5)
-                elif not lstsq:
-                    lstsq = True
-                    warn(
-                        "Solving system with option 'sym_pos':False "
-                        "failed. This may happen occasionally, "
-                        "especially as the solution is "
-                        "approached. However, if you see this frequently, "
-                        "your problem may be numerically challenging. "
-                        "If you cannot improve the formulation, consider "
-                        "setting 'lstsq' to True. Consider also setting "
-                        "`presolve` to True, if it is not already.",
-                        OptimizeWarning, stacklevel=5)
-                else:
-                    raise e
-                solve = _get_solver(M, sparse, lstsq, sym_pos,
-                                    cholesky, permc_spec)
-        # [4] Results after 8.29
-        d_tau = ((rhatg + 1 / tau * rhattk - (-c.dot(u) + b.dot(v))) /
-                 (1 / tau * kappa + (-c.dot(p) + b.dot(q))))
-        d_x = u + p * d_tau
-        d_y = v + q * d_tau
-
-        # [4] Relations between  after 8.25 and 8.26
-        d_z = (1 / x) * (rhatxs - z * d_x)
-        d_kappa = 1 / tau * (rhattk - kappa * d_tau)
-
-        # [4] 8.12 and "Let alpha be the maximal possible step..." before 8.23
-        alpha = _get_step(x, d_x, z, d_z, tau, d_tau, kappa, d_kappa, 1)
-        if ip:  # initial point - see [4] 4.4
-            gamma = 10
-        else:  # predictor-corrector, [4] definition after 8.12
-            beta1 = 0.1  # [4] pg. 220 (Table 8.1)
-            gamma = (1 - alpha)**2 * min(beta1, (1 - alpha))
-        i += 1
-
-    return d_x, d_y, d_z, d_tau, d_kappa
-
-
-def _sym_solve(Dinv, A, r1, r2, solve):
-    """
-    An implementation of [4] equation 8.31 and 8.32
-
-    References
-    ----------
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-
-    """
-    # [4] 8.31
-    r = r2 + A.dot(Dinv * r1)
-    v = solve(r)
-    # [4] 8.32
-    u = Dinv * (A.T.dot(v) - r1)
-    return u, v
-
-
-def _get_step(x, d_x, z, d_z, tau, d_tau, kappa, d_kappa, alpha0):
-    """
-    An implementation of [4] equation 8.21
-
-    References
-    ----------
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-
-    """
-    # [4] 4.3 Equation 8.21, ignoring 8.20 requirement
-    # same step is taken in primal and dual spaces
-    # alpha0 is basically beta3 from [4] Table 8.1, but instead of beta3
-    # the value 1 is used in Mehrota corrector and initial point correction
-    i_x = d_x < 0
-    i_z = d_z < 0
-    alpha_x = alpha0 * np.min(x[i_x] / -d_x[i_x]) if np.any(i_x) else 1
-    alpha_tau = alpha0 * tau / -d_tau if d_tau < 0 else 1
-    alpha_z = alpha0 * np.min(z[i_z] / -d_z[i_z]) if np.any(i_z) else 1
-    alpha_kappa = alpha0 * kappa / -d_kappa if d_kappa < 0 else 1
-    alpha = np.min([1, alpha_x, alpha_tau, alpha_z, alpha_kappa])
-    return alpha
-
-
-def _get_message(status):
-    """
-    Given problem status code, return a more detailed message.
-
-    Parameters
-    ----------
-    status : int
-        An integer representing the exit status of the optimization::
-
-         0 : Optimization terminated successfully
-         1 : Iteration limit reached
-         2 : Problem appears to be infeasible
-         3 : Problem appears to be unbounded
-         4 : Serious numerical difficulties encountered
-
-    Returns
-    -------
-    message : str
-        A string descriptor of the exit status of the optimization.
-
-    """
-    messages = (
-        ["Optimization terminated successfully.",
-         "The iteration limit was reached before the algorithm converged.",
-         "The algorithm terminated successfully and determined that the "
-         "problem is infeasible.",
-         "The algorithm terminated successfully and determined that the "
-         "problem is unbounded.",
-         "Numerical difficulties were encountered before the problem "
-         "converged. Please check your problem formulation for errors, "
-         "independence of linear equality constraints, and reasonable "
-         "scaling and matrix condition numbers. If you continue to "
-         "encounter this error, please submit a bug report."
-         ])
-    return messages[status]
-
-
-def _do_step(x, y, z, tau, kappa, d_x, d_y, d_z, d_tau, d_kappa, alpha):
-    """
-    An implementation of [4] Equation 8.9
-
-    References
-    ----------
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-
-    """
-    x = x + alpha * d_x
-    tau = tau + alpha * d_tau
-    z = z + alpha * d_z
-    kappa = kappa + alpha * d_kappa
-    y = y + alpha * d_y
-    return x, y, z, tau, kappa
-
-
-def _get_blind_start(shape):
-    """
-    Return the starting point from [4] 4.4
-
-    References
-    ----------
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-
-    """
-    m, n = shape
-    x0 = np.ones(n)
-    y0 = np.zeros(m)
-    z0 = np.ones(n)
-    tau0 = 1
-    kappa0 = 1
-    return x0, y0, z0, tau0, kappa0
-
-
-def _indicators(A, b, c, c0, x, y, z, tau, kappa):
-    """
-    Implementation of several equations from [4] used as indicators of
-    the status of optimization.
-
-    References
-    ----------
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-
-    """
-
-    # residuals for termination are relative to initial values
-    x0, y0, z0, tau0, kappa0 = _get_blind_start(A.shape)
-
-    # See [4], Section 4 - The Homogeneous Algorithm, Equation 8.8
-    def r_p(x, tau):
-        return b * tau - A.dot(x)
-
-    def r_d(y, z, tau):
-        return c * tau - A.T.dot(y) - z
-
-    def r_g(x, y, kappa):
-        return kappa + c.dot(x) - b.dot(y)
-
-    # np.dot unpacks if they are arrays of size one
-    def mu(x, tau, z, kappa):
-        return (x.dot(z) + np.dot(tau, kappa)) / (len(x) + 1)
-
-    obj = c.dot(x / tau) + c0
-
-    def norm(a):
-        return np.linalg.norm(a)
-
-    # See [4], Section 4.5 - The Stopping Criteria
-    r_p0 = r_p(x0, tau0)
-    r_d0 = r_d(y0, z0, tau0)
-    r_g0 = r_g(x0, y0, kappa0)
-    mu_0 = mu(x0, tau0, z0, kappa0)
-    rho_A = norm(c.T.dot(x) - b.T.dot(y)) / (tau + norm(b.T.dot(y)))
-    rho_p = norm(r_p(x, tau)) / max(1, norm(r_p0))
-    rho_d = norm(r_d(y, z, tau)) / max(1, norm(r_d0))
-    rho_g = norm(r_g(x, y, kappa)) / max(1, norm(r_g0))
-    rho_mu = mu(x, tau, z, kappa) / mu_0
-    return rho_p, rho_d, rho_A, rho_g, rho_mu, obj
-
-
-def _display_iter(rho_p, rho_d, rho_g, alpha, rho_mu, obj, header=False):
-    """
-    Print indicators of optimization status to the console.
-
-    Parameters
-    ----------
-    rho_p : float
-        The (normalized) primal feasibility, see [4] 4.5
-    rho_d : float
-        The (normalized) dual feasibility, see [4] 4.5
-    rho_g : float
-        The (normalized) duality gap, see [4] 4.5
-    alpha : float
-        The step size, see [4] 4.3
-    rho_mu : float
-        The (normalized) path parameter, see [4] 4.5
-    obj : float
-        The objective function value of the current iterate
-    header : bool
-        True if a header is to be printed
-
-    References
-    ----------
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-
-    """
-    if header:
-        print("Primal Feasibility ",
-              "Dual Feasibility   ",
-              "Duality Gap        ",
-              "Step            ",
-              "Path Parameter     ",
-              "Objective          ")
-
-    # no clue why this works
-    fmt = '{0:<20.13}{1:<20.13}{2:<20.13}{3:<17.13}{4:<20.13}{5:<20.13}'
-    print(fmt.format(
-        float(rho_p),
-        float(rho_d),
-        float(rho_g),
-        alpha if isinstance(alpha, str) else float(alpha),
-        float(rho_mu),
-        float(obj)))
-
-
-def _ip_hsd(A, b, c, c0, alpha0, beta, maxiter, disp, tol, sparse, lstsq,
-            sym_pos, cholesky, pc, ip, permc_spec, callback, postsolve_args):
-    r"""
-    Solve a linear programming problem in standard form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A @ x == b
-            x >= 0
-
-    using the interior point method of [4].
-
-    Parameters
-    ----------
-    A : 2-D array
-        2-D array such that ``A @ x``, gives the values of the equality
-        constraints at ``x``.
-    b : 1-D array
-        1-D array of values representing the RHS of each equality constraint
-        (row) in ``A`` (for standard form problem).
-    c : 1-D array
-        Coefficients of the linear objective function to be minimized (for
-        standard form problem).
-    c0 : float
-        Constant term in objective function due to fixed (and eliminated)
-        variables. (Purely for display.)
-    alpha0 : float
-        The maximal step size for Mehrota's predictor-corrector search
-        direction; see :math:`\beta_3`of [4] Table 8.1
-    beta : float
-        The desired reduction of the path parameter :math:`\mu` (see  [6]_)
-    maxiter : int
-        The maximum number of iterations of the algorithm.
-    disp : bool
-        Set to ``True`` if indicators of optimization status are to be printed
-        to the console each iteration.
-    tol : float
-        Termination tolerance; see [4]_ Section 4.5.
-    sparse : bool
-        Set to ``True`` if the problem is to be treated as sparse. However,
-        the inputs ``A_eq`` and ``A_ub`` should nonetheless be provided as
-        (dense) arrays rather than sparse matrices.
-    lstsq : bool
-        Set to ``True`` if the problem is expected to be very poorly
-        conditioned. This should always be left as ``False`` unless severe
-        numerical difficulties are frequently encountered, and a better option
-        would be to improve the formulation of the problem.
-    sym_pos : bool
-        Leave ``True`` if the problem is expected to yield a well conditioned
-        symmetric positive definite normal equation matrix (almost always).
-    cholesky : bool
-        Set to ``True`` if the normal equations are to be solved by explicit
-        Cholesky decomposition followed by explicit forward/backward
-        substitution. This is typically faster for moderate, dense problems
-        that are numerically well-behaved.
-    pc : bool
-        Leave ``True`` if the predictor-corrector method of Mehrota is to be
-        used. This is almost always (if not always) beneficial.
-    ip : bool
-        Set to ``True`` if the improved initial point suggestion due to [4]_
-        Section 4.3 is desired. It's unclear whether this is beneficial.
-    permc_spec : str (default = 'MMD_AT_PLUS_A')
-        (Has effect only with ``sparse = True``, ``lstsq = False``, ``sym_pos =
-        True``.) A matrix is factorized in each iteration of the algorithm.
-        This option specifies how to permute the columns of the matrix for
-        sparsity preservation. Acceptable values are:
-
-        - ``NATURAL``: natural ordering.
-        - ``MMD_ATA``: minimum degree ordering on the structure of A^T A.
-        - ``MMD_AT_PLUS_A``: minimum degree ordering on the structure of A^T+A.
-        - ``COLAMD``: approximate minimum degree column ordering.
-
-        This option can impact the convergence of the
-        interior point algorithm; test different values to determine which
-        performs best for your problem. For more information, refer to
-        ``scipy.sparse.linalg.splu``.
-    callback : callable, optional
-        If a callback function is provided, it will be called within each
-        iteration of the algorithm. The callback function must accept a single
-        `scipy.optimize.OptimizeResult` consisting of the following fields:
-
-            x : 1-D array
-                Current solution vector
-            fun : float
-                Current value of the objective function
-            success : bool
-                True only when an algorithm has completed successfully,
-                so this is always False as the callback function is called
-                only while the algorithm is still iterating.
-            slack : 1-D array
-                The values of the slack variables. Each slack variable
-                corresponds to an inequality constraint. If the slack is zero,
-                the corresponding constraint is active.
-            con : 1-D array
-                The (nominally zero) residuals of the equality constraints,
-                that is, ``b - A_eq @ x``
-            phase : int
-                The phase of the algorithm being executed. This is always
-                1 for the interior-point method because it has only one phase.
-            status : int
-                For revised simplex, this is always 0 because if a different
-                status is detected, the algorithm terminates.
-            nit : int
-                The number of iterations performed.
-            message : str
-                A string descriptor of the exit status of the optimization.
-    postsolve_args : tuple
-        Data needed by _postsolve to convert the solution to the standard-form
-        problem into the solution to the original problem.
-
-    Returns
-    -------
-    x_hat : float
-        Solution vector (for standard form problem).
-    status : int
-        An integer representing the exit status of the optimization::
-
-         0 : Optimization terminated successfully
-         1 : Iteration limit reached
-         2 : Problem appears to be infeasible
-         3 : Problem appears to be unbounded
-         4 : Serious numerical difficulties encountered
-
-    message : str
-        A string descriptor of the exit status of the optimization.
-    iteration : int
-        The number of iterations taken to solve the problem
-
-    References
-    ----------
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-    .. [6] Freund, Robert M. "Primal-Dual Interior-Point Methods for Linear
-           Programming based on Newton's Method." Unpublished Course Notes,
-           March 2004. Available 2/25/2017 at:
-           https://ocw.mit.edu/courses/sloan-school-of-management/15-084j-nonlinear-programming-spring-2004/lecture-notes/lec14_int_pt_mthd.pdf
-
-    """
-
-    iteration = 0
-
-    # default initial point
-    x, y, z, tau, kappa = _get_blind_start(A.shape)
-
-    # first iteration is special improvement of initial point
-    ip = ip if pc else False
-
-    # [4] 4.5
-    rho_p, rho_d, rho_A, rho_g, rho_mu, obj = _indicators(
-        A, b, c, c0, x, y, z, tau, kappa)
-    go = rho_p > tol or rho_d > tol or rho_A > tol  # we might get lucky : )
-
-    if disp:
-        _display_iter(rho_p, rho_d, rho_g, "-", rho_mu, obj, header=True)
-    if callback is not None:
-        x_o, fun, slack, con = _postsolve(x/tau, postsolve_args)
-        res = OptimizeResult({'x': x_o, 'fun': fun, 'slack': slack,
-                              'con': con, 'nit': iteration, 'phase': 1,
-                              'complete': False, 'status': 0,
-                              'message': "", 'success': False})
-        callback(res)
-
-    status = 0
-    message = "Optimization terminated successfully."
-
-    if sparse:
-        A = sps.csc_matrix(A)
-
-    while go:
-
-        iteration += 1
-
-        if ip:  # initial point
-            # [4] Section 4.4
-            gamma = 1
-
-            def eta(g):
-                return 1
-        else:
-            # gamma = 0 in predictor step according to [4] 4.1
-            # if predictor/corrector is off, use mean of complementarity [6]
-            # 5.1 / [4] Below Figure 10-4
-            gamma = 0 if pc else beta * np.mean(z * x)
-            # [4] Section 4.1
-
-            def eta(g=gamma):
-                return 1 - g
-
-        try:
-            # Solve [4] 8.6 and 8.7/8.13/8.23
-            d_x, d_y, d_z, d_tau, d_kappa = _get_delta(
-                A, b, c, x, y, z, tau, kappa, gamma, eta,
-                sparse, lstsq, sym_pos, cholesky, pc, ip, permc_spec)
-
-            if ip:  # initial point
-                # [4] 4.4
-                # Formula after 8.23 takes a full step regardless if this will
-                # take it negative
-                alpha = 1.0
-                x, y, z, tau, kappa = _do_step(
-                    x, y, z, tau, kappa, d_x, d_y,
-                    d_z, d_tau, d_kappa, alpha)
-                x[x < 1] = 1
-                z[z < 1] = 1
-                tau = max(1, tau)
-                kappa = max(1, kappa)
-                ip = False  # done with initial point
-            else:
-                # [4] Section 4.3
-                alpha = _get_step(x, d_x, z, d_z, tau,
-                                  d_tau, kappa, d_kappa, alpha0)
-                # [4] Equation 8.9
-                x, y, z, tau, kappa = _do_step(
-                    x, y, z, tau, kappa, d_x, d_y, d_z, d_tau, d_kappa, alpha)
-
-        except (LinAlgError, FloatingPointError,
-                ValueError, ZeroDivisionError):
-            # this can happen when sparse solver is used and presolve
-            # is turned off. Also observed ValueError in AppVeyor Python 3.6
-            # Win32 build (PR #8676). I've never seen it otherwise.
-            status = 4
-            message = _get_message(status)
-            break
-
-        # [4] 4.5
-        rho_p, rho_d, rho_A, rho_g, rho_mu, obj = _indicators(
-            A, b, c, c0, x, y, z, tau, kappa)
-        go = rho_p > tol or rho_d > tol or rho_A > tol
-
-        if disp:
-            _display_iter(rho_p, rho_d, rho_g, alpha, rho_mu, obj)
-        if callback is not None:
-            x_o, fun, slack, con = _postsolve(x/tau, postsolve_args)
-            res = OptimizeResult({'x': x_o, 'fun': fun, 'slack': slack,
-                                  'con': con, 'nit': iteration, 'phase': 1,
-                                  'complete': False, 'status': 0,
-                                  'message': "", 'success': False})
-            callback(res)
-
-        # [4] 4.5
-        inf1 = (rho_p < tol and rho_d < tol and rho_g < tol and tau < tol *
-                max(1, kappa))
-        inf2 = rho_mu < tol and tau < tol * min(1, kappa)
-        if inf1 or inf2:
-            # [4] Lemma 8.4 / Theorem 8.3
-            if b.transpose().dot(y) > tol:
-                status = 2
-            else:  # elif c.T.dot(x) < tol: ? Probably not necessary.
-                status = 3
-            message = _get_message(status)
-            break
-        elif iteration >= maxiter:
-            status = 1
-            message = _get_message(status)
-            break
-
-    x_hat = x / tau
-    # [4] Statement after Theorem 8.2
-    return x_hat, status, message, iteration
-
-
-def _linprog_ip(c, c0, A, b, callback, postsolve_args, maxiter=1000, tol=1e-8,
-                disp=False, alpha0=.99995, beta=0.1, sparse=False, lstsq=False,
-                sym_pos=True, cholesky=None, pc=True, ip=False,
-                permc_spec='MMD_AT_PLUS_A', **unknown_options):
-    r"""
-    Minimize a linear objective function subject to linear
-    equality and non-negativity constraints using the interior point method
-    of [4]_. Linear programming is intended to solve problems
-    of the following form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A @ x == b
-            x >= 0
-
-    User-facing documentation is in _linprog_doc.py.
-
-    Parameters
-    ----------
-    c : 1-D array
-        Coefficients of the linear objective function to be minimized.
-    c0 : float
-        Constant term in objective function due to fixed (and eliminated)
-        variables. (Purely for display.)
-    A : 2-D array
-        2-D array such that ``A @ x``, gives the values of the equality
-        constraints at ``x``.
-    b : 1-D array
-        1-D array of values representing the right hand side of each equality
-        constraint (row) in ``A``.
-    callback : callable, optional
-        Callback function to be executed once per iteration.
-    postsolve_args : tuple
-        Data needed by _postsolve to convert the solution to the standard-form
-        problem into the solution to the original problem.
-
-    Options
-    -------
-    maxiter : int (default = 1000)
-        The maximum number of iterations of the algorithm.
-    tol : float (default = 1e-8)
-        Termination tolerance to be used for all termination criteria;
-        see [4]_ Section 4.5.
-    disp : bool (default = False)
-        Set to ``True`` if indicators of optimization status are to be printed
-        to the console each iteration.
-    alpha0 : float (default = 0.99995)
-        The maximal step size for Mehrota's predictor-corrector search
-        direction; see :math:`\beta_{3}` of [4]_ Table 8.1.
-    beta : float (default = 0.1)
-        The desired reduction of the path parameter :math:`\mu` (see [6]_)
-        when Mehrota's predictor-corrector is not in use (uncommon).
-    sparse : bool (default = False)
-        Set to ``True`` if the problem is to be treated as sparse after
-        presolve. If either ``A_eq`` or ``A_ub`` is a sparse matrix,
-        this option will automatically be set ``True``, and the problem
-        will be treated as sparse even during presolve. If your constraint
-        matrices contain mostly zeros and the problem is not very small (less
-        than about 100 constraints or variables), consider setting ``True``
-        or providing ``A_eq`` and ``A_ub`` as sparse matrices.
-    lstsq : bool (default = False)
-        Set to ``True`` if the problem is expected to be very poorly
-        conditioned. This should always be left ``False`` unless severe
-        numerical difficulties are encountered. Leave this at the default
-        unless you receive a warning message suggesting otherwise.
-    sym_pos : bool (default = True)
-        Leave ``True`` if the problem is expected to yield a well conditioned
-        symmetric positive definite normal equation matrix
-        (almost always). Leave this at the default unless you receive
-        a warning message suggesting otherwise.
-    cholesky : bool (default = True)
-        Set to ``True`` if the normal equations are to be solved by explicit
-        Cholesky decomposition followed by explicit forward/backward
-        substitution. This is typically faster for problems
-        that are numerically well-behaved.
-    pc : bool (default = True)
-        Leave ``True`` if the predictor-corrector method of Mehrota is to be
-        used. This is almost always (if not always) beneficial.
-    ip : bool (default = False)
-        Set to ``True`` if the improved initial point suggestion due to [4]_
-        Section 4.3 is desired. Whether this is beneficial or not
-        depends on the problem.
-    permc_spec : str (default = 'MMD_AT_PLUS_A')
-        (Has effect only with ``sparse = True``, ``lstsq = False``, ``sym_pos =
-        True``, and no SuiteSparse.)
-        A matrix is factorized in each iteration of the algorithm.
-        This option specifies how to permute the columns of the matrix for
-        sparsity preservation. Acceptable values are:
-
-        - ``NATURAL``: natural ordering.
-        - ``MMD_ATA``: minimum degree ordering on the structure of A^T A.
-        - ``MMD_AT_PLUS_A``: minimum degree ordering on the structure of A^T+A.
-        - ``COLAMD``: approximate minimum degree column ordering.
-
-        This option can impact the convergence of the
-        interior point algorithm; test different values to determine which
-        performs best for your problem. For more information, refer to
-        ``scipy.sparse.linalg.splu``.
-    unknown_options : dict
-        Optional arguments not used by this particular solver. If
-        `unknown_options` is non-empty a warning is issued listing all
-        unused options.
-
-    Returns
-    -------
-    x : 1-D array
-        Solution vector.
-    status : int
-        An integer representing the exit status of the optimization::
-
-         0 : Optimization terminated successfully
-         1 : Iteration limit reached
-         2 : Problem appears to be infeasible
-         3 : Problem appears to be unbounded
-         4 : Serious numerical difficulties encountered
-
-    message : str
-        A string descriptor of the exit status of the optimization.
-    iteration : int
-        The number of iterations taken to solve the problem.
-
-    Notes
-    -----
-    This method implements the algorithm outlined in [4]_ with ideas from [8]_
-    and a structure inspired by the simpler methods of [6]_.
-
-    The primal-dual path following method begins with initial 'guesses' of
-    the primal and dual variables of the standard form problem and iteratively
-    attempts to solve the (nonlinear) Karush-Kuhn-Tucker conditions for the
-    problem with a gradually reduced logarithmic barrier term added to the
-    objective. This particular implementation uses a homogeneous self-dual
-    formulation, which provides certificates of infeasibility or unboundedness
-    where applicable.
-
-    The default initial point for the primal and dual variables is that
-    defined in [4]_ Section 4.4 Equation 8.22. Optionally (by setting initial
-    point option ``ip=True``), an alternate (potentially improved) starting
-    point can be calculated according to the additional recommendations of
-    [4]_ Section 4.4.
-
-    A search direction is calculated using the predictor-corrector method
-    (single correction) proposed by Mehrota and detailed in [4]_ Section 4.1.
-    (A potential improvement would be to implement the method of multiple
-    corrections described in [4]_ Section 4.2.) In practice, this is
-    accomplished by solving the normal equations, [4]_ Section 5.1 Equations
-    8.31 and 8.32, derived from the Newton equations [4]_ Section 5 Equations
-    8.25 (compare to [4]_ Section 4 Equations 8.6-8.8). The advantage of
-    solving the normal equations rather than 8.25 directly is that the
-    matrices involved are symmetric positive definite, so Cholesky
-    decomposition can be used rather than the more expensive LU factorization.
-
-    With default options, the solver used to perform the factorization depends
-    on third-party software availability and the conditioning of the problem.
-
-    For dense problems, solvers are tried in the following order:
-
-    1. ``scipy.linalg.cho_factor``
-
-    2. ``scipy.linalg.solve`` with option ``sym_pos=True``
-
-    3. ``scipy.linalg.solve`` with option ``sym_pos=False``
-
-    4. ``scipy.linalg.lstsq``
-
-    For sparse problems:
-
-    1. ``sksparse.cholmod.cholesky`` (if scikit-sparse and SuiteSparse are installed)
-
-    2. ``scipy.sparse.linalg.factorized``
-        (if scikit-umfpack and SuiteSparse are installed)
-
-    3. ``scipy.sparse.linalg.splu`` (which uses SuperLU distributed with SciPy)
-
-    4. ``scipy.sparse.linalg.lsqr``
-
-    If the solver fails for any reason, successively more robust (but slower)
-    solvers are attempted in the order indicated. Attempting, failing, and
-    re-starting factorization can be time consuming, so if the problem is
-    numerically challenging, options can be set to  bypass solvers that are
-    failing. Setting ``cholesky=False`` skips to solver 2,
-    ``sym_pos=False`` skips to solver 3, and ``lstsq=True`` skips
-    to solver 4 for both sparse and dense problems.
-
-    Potential improvements for combatting issues associated with dense
-    columns in otherwise sparse problems are outlined in [4]_ Section 5.3 and
-    [10]_ Section 4.1-4.2; the latter also discusses the alleviation of
-    accuracy issues associated with the substitution approach to free
-    variables.
-
-    After calculating the search direction, the maximum possible step size
-    that does not activate the non-negativity constraints is calculated, and
-    the smaller of this step size and unity is applied (as in [4]_ Section
-    4.1.) [4]_ Section 4.3 suggests improvements for choosing the step size.
-
-    The new point is tested according to the termination conditions of [4]_
-    Section 4.5. The same tolerance, which can be set using the ``tol`` option,
-    is used for all checks. (A potential improvement would be to expose
-    the different tolerances to be set independently.) If optimality,
-    unboundedness, or infeasibility is detected, the solve procedure
-    terminates; otherwise it repeats.
-
-    The expected problem formulation differs between the top level ``linprog``
-    module and the method specific solvers. The method specific solvers expect a
-    problem in standard form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A @ x == b
-            x >= 0
-
-    Whereas the top level ``linprog`` module expects a problem of form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A_ub @ x <= b_ub
-        A_eq @ x == b_eq
-         lb <= x <= ub
-
-    where ``lb = 0`` and ``ub = None`` unless set in ``bounds``.
-
-    The original problem contains equality, upper-bound and variable constraints
-    whereas the method specific solver requires equality constraints and
-    variable non-negativity.
-
-    ``linprog`` module converts the original problem to standard form by
-    converting the simple bounds to upper bound constraints, introducing
-    non-negative slack variables for inequality constraints, and expressing
-    unbounded variables as the difference between two non-negative variables.
-
-
-    References
-    ----------
-    .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
-           optimizer for linear programming: an implementation of the
-           homogeneous algorithm." High performance optimization. Springer US,
-           2000. 197-232.
-    .. [6] Freund, Robert M. "Primal-Dual Interior-Point Methods for Linear
-           Programming based on Newton's Method." Unpublished Course Notes,
-           March 2004. Available 2/25/2017 at
-           https://ocw.mit.edu/courses/sloan-school-of-management/15-084j-nonlinear-programming-spring-2004/lecture-notes/lec14_int_pt_mthd.pdf
-    .. [8] Andersen, Erling D., and Knud D. Andersen. "Presolving in linear
-           programming." Mathematical Programming 71.2 (1995): 221-245.
-    .. [9] Bertsimas, Dimitris, and J. Tsitsiklis. "Introduction to linear
-           programming." Athena Scientific 1 (1997): 997.
-    .. [10] Andersen, Erling D., et al. Implementation of interior point methods
-            for large scale linear programming. HEC/Universite de Geneve, 1996.
-
-    """
-
-    _check_unknown_options(unknown_options)
-
-    # These should be warnings, not errors
-    if (cholesky or cholesky is None) and sparse and not has_cholmod:
-        if cholesky:
-            warn("Sparse cholesky is only available with scikit-sparse. "
-                 "Setting `cholesky = False`",
-                 OptimizeWarning, stacklevel=3)
-        cholesky = False
-
-    if sparse and lstsq:
-        warn("Option combination 'sparse':True and 'lstsq':True "
-             "is not recommended.",
-             OptimizeWarning, stacklevel=3)
-
-    if lstsq and cholesky:
-        warn("Invalid option combination 'lstsq':True "
-             "and 'cholesky':True; option 'cholesky' has no effect when "
-             "'lstsq' is set True.",
-             OptimizeWarning, stacklevel=3)
-
-    valid_permc_spec = ('NATURAL', 'MMD_ATA', 'MMD_AT_PLUS_A', 'COLAMD')
-    if permc_spec.upper() not in valid_permc_spec:
-        warn("Invalid permc_spec option: '" + str(permc_spec) + "'. "
-             "Acceptable values are 'NATURAL', 'MMD_ATA', 'MMD_AT_PLUS_A', "
-             "and 'COLAMD'. Reverting to default.",
-             OptimizeWarning, stacklevel=3)
-        permc_spec = 'MMD_AT_PLUS_A'
-
-    # This can be an error
-    if not sym_pos and cholesky:
-        raise ValueError(
-            "Invalid option combination 'sym_pos':False "
-            "and 'cholesky':True: Cholesky decomposition is only possible "
-            "for symmetric positive definite matrices.")
-
-    cholesky = cholesky or (cholesky is None and sym_pos and not lstsq)
-
-    x, status, message, iteration = _ip_hsd(A, b, c, c0, alpha0, beta,
-                                            maxiter, disp, tol, sparse,
-                                            lstsq, sym_pos, cholesky,
-                                            pc, ip, permc_spec, callback,
-                                            postsolve_args)
-
-    return x, status, message, iteration
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_rs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_rs.py
deleted file mode 100644
index 826ceffce398a6f58bdfcd6264e2f14fc5f6f8ee..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_rs.py
+++ /dev/null
@@ -1,572 +0,0 @@
-"""Revised simplex method for linear programming
-
-The *revised simplex* method uses the method described in [1]_, except
-that a factorization [2]_ of the basis matrix, rather than its inverse,
-is efficiently maintained and used to solve the linear systems at each
-iteration of the algorithm.
-
-.. versionadded:: 1.3.0
-
-References
-----------
-.. [1] Bertsimas, Dimitris, and J. Tsitsiklis. "Introduction to linear
-           programming." Athena Scientific 1 (1997): 997.
-.. [2] Bartels, Richard H. "A stabilization of the simplex method."
-            Journal in  Numerische Mathematik 16.5 (1971): 414-434.
-
-"""
-# Author: Matt Haberland
-
-import numpy as np
-from numpy.linalg import LinAlgError
-
-from scipy.linalg import solve
-from ._optimize import _check_unknown_options
-from ._bglu_dense import LU
-from ._bglu_dense import BGLU as BGLU
-from ._linprog_util import _postsolve
-from ._optimize import OptimizeResult
-
-
-def _phase_one(A, b, x0, callback, postsolve_args, maxiter, tol, disp,
-               maxupdate, mast, pivot):
-    """
-    The purpose of phase one is to find an initial basic feasible solution
-    (BFS) to the original problem.
-
-    Generates an auxiliary problem with a trivial BFS and an objective that
-    minimizes infeasibility of the original problem. Solves the auxiliary
-    problem using the main simplex routine (phase two). This either yields
-    a BFS to the original problem or determines that the original problem is
-    infeasible. If feasible, phase one detects redundant rows in the original
-    constraint matrix and removes them, then chooses additional indices as
-    necessary to complete a basis/BFS for the original problem.
-    """
-
-    m, n = A.shape
-    status = 0
-
-    # generate auxiliary problem to get initial BFS
-    A, b, c, basis, x, status = _generate_auxiliary_problem(A, b, x0, tol)
-
-    if status == 6:
-        residual = c.dot(x)
-        iter_k = 0
-        return x, basis, A, b, residual, status, iter_k
-
-    # solve auxiliary problem
-    phase_one_n = n
-    iter_k = 0
-    x, basis, status, iter_k = _phase_two(c, A, x, basis, callback,
-                                          postsolve_args,
-                                          maxiter, tol, disp,
-                                          maxupdate, mast, pivot,
-                                          iter_k, phase_one_n)
-
-    # check for infeasibility
-    residual = c.dot(x)
-    if status == 0 and residual > tol:
-        status = 2
-
-    # drive artificial variables out of basis
-    # TODO: test redundant row removal better
-    # TODO: make solve more efficient with BGLU? This could take a while.
-    keep_rows = np.ones(m, dtype=bool)
-    for basis_column in basis[basis >= n]:
-        B = A[:, basis]
-        try:
-            basis_finder = np.abs(solve(B, A))  # inefficient
-            pertinent_row = np.argmax(basis_finder[:, basis_column])
-            eligible_columns = np.ones(n, dtype=bool)
-            eligible_columns[basis[basis < n]] = 0
-            eligible_column_indices = np.where(eligible_columns)[0]
-            index = np.argmax(basis_finder[:, :n]
-                              [pertinent_row, eligible_columns])
-            new_basis_column = eligible_column_indices[index]
-            if basis_finder[pertinent_row, new_basis_column] < tol:
-                keep_rows[pertinent_row] = False
-            else:
-                basis[basis == basis_column] = new_basis_column
-        except LinAlgError:
-            status = 4
-
-    # form solution to original problem
-    A = A[keep_rows, :n]
-    basis = basis[keep_rows]
-    x = x[:n]
-    m = A.shape[0]
-    return x, basis, A, b, residual, status, iter_k
-
-
-def _get_more_basis_columns(A, basis):
-    """
-    Called when the auxiliary problem terminates with artificial columns in
-    the basis, which must be removed and replaced with non-artificial
-    columns. Finds additional columns that do not make the matrix singular.
-    """
-    m, n = A.shape
-
-    # options for inclusion are those that aren't already in the basis
-    a = np.arange(m+n)
-    bl = np.zeros(len(a), dtype=bool)
-    bl[basis] = 1
-    options = a[~bl]
-    options = options[options < n]  # and they have to be non-artificial
-
-    # form basis matrix
-    B = np.zeros((m, m))
-    B[:, 0:len(basis)] = A[:, basis]
-
-    if (basis.size > 0 and
-            np.linalg.matrix_rank(B[:, :len(basis)]) < len(basis)):
-        raise Exception("Basis has dependent columns")
-
-    rank = 0  # just enter the loop
-    for i in range(n):  # somewhat arbitrary, but we need another way out
-        # permute the options, and take as many as needed
-        new_basis = np.random.permutation(options)[:m-len(basis)]
-        B[:, len(basis):] = A[:, new_basis]  # update the basis matrix
-        rank = np.linalg.matrix_rank(B)      # check the rank
-        if rank == m:
-            break
-
-    return np.concatenate((basis, new_basis))
-
-
-def _generate_auxiliary_problem(A, b, x0, tol):
-    """
-    Modifies original problem to create an auxiliary problem with a trivial
-    initial basic feasible solution and an objective that minimizes
-    infeasibility in the original problem.
-
-    Conceptually, this is done by stacking an identity matrix on the right of
-    the original constraint matrix, adding artificial variables to correspond
-    with each of these new columns, and generating a cost vector that is all
-    zeros except for ones corresponding with each of the new variables.
-
-    A initial basic feasible solution is trivial: all variables are zero
-    except for the artificial variables, which are set equal to the
-    corresponding element of the right hand side `b`.
-
-    Running the simplex method on this auxiliary problem drives all of the
-    artificial variables - and thus the cost - to zero if the original problem
-    is feasible. The original problem is declared infeasible otherwise.
-
-    Much of the complexity below is to improve efficiency by using singleton
-    columns in the original problem where possible, thus generating artificial
-    variables only as necessary, and using an initial 'guess' basic feasible
-    solution.
-    """
-    status = 0
-    m, n = A.shape
-
-    if x0 is not None:
-        x = x0
-    else:
-        x = np.zeros(n)
-
-    r = b - A@x  # residual; this must be all zeros for feasibility
-
-    A[r < 0] = -A[r < 0]  # express problem with RHS positive for trivial BFS
-    b[r < 0] = -b[r < 0]  # to the auxiliary problem
-    r[r < 0] *= -1
-
-    # Rows which we will need to find a trivial way to zero.
-    # This should just be the rows where there is a nonzero residual.
-    # But then we would not necessarily have a column singleton in every row.
-    # This makes it difficult to find an initial basis.
-    if x0 is None:
-        nonzero_constraints = np.arange(m)
-    else:
-        nonzero_constraints = np.where(r > tol)[0]
-
-    # these are (at least some of) the initial basis columns
-    basis = np.where(np.abs(x) > tol)[0]
-
-    if len(nonzero_constraints) == 0 and len(basis) <= m:  # already a BFS
-        c = np.zeros(n)
-        basis = _get_more_basis_columns(A, basis)
-        return A, b, c, basis, x, status
-    elif (len(nonzero_constraints) > m - len(basis) or
-          np.any(x < 0)):  # can't get trivial BFS
-        c = np.zeros(n)
-        status = 6
-        return A, b, c, basis, x, status
-
-    # chooses existing columns appropriate for inclusion in initial basis
-    cols, rows = _select_singleton_columns(A, r)
-
-    # find the rows we need to zero that we _can_ zero with column singletons
-    i_tofix = np.isin(rows, nonzero_constraints)
-    # these columns can't already be in the basis, though
-    # we are going to add them to the basis and change the corresponding x val
-    i_notinbasis = np.logical_not(np.isin(cols, basis))
-    i_fix_without_aux = np.logical_and(i_tofix, i_notinbasis)
-    rows = rows[i_fix_without_aux]
-    cols = cols[i_fix_without_aux]
-
-    # indices of the rows we can only zero with auxiliary variable
-    # these rows will get a one in each auxiliary column
-    arows = nonzero_constraints[np.logical_not(
-                                np.isin(nonzero_constraints, rows))]
-    n_aux = len(arows)
-    acols = n + np.arange(n_aux)          # indices of auxiliary columns
-
-    basis_ng = np.concatenate((cols, acols))   # basis columns not from guess
-    basis_ng_rows = np.concatenate((rows, arows))  # rows we need to zero
-
-    # add auxiliary singleton columns
-    A = np.hstack((A, np.zeros((m, n_aux))))
-    A[arows, acols] = 1
-
-    # generate initial BFS
-    x = np.concatenate((x, np.zeros(n_aux)))
-    x[basis_ng] = r[basis_ng_rows]/A[basis_ng_rows, basis_ng]
-
-    # generate costs to minimize infeasibility
-    c = np.zeros(n_aux + n)
-    c[acols] = 1
-
-    # basis columns correspond with nonzeros in guess, those with column
-    # singletons we used to zero remaining constraints, and any additional
-    # columns to get a full set (m columns)
-    basis = np.concatenate((basis, basis_ng))
-    basis = _get_more_basis_columns(A, basis)  # add columns as needed
-
-    return A, b, c, basis, x, status
-
-
-def _select_singleton_columns(A, b):
-    """
-    Finds singleton columns for which the singleton entry is of the same sign
-    as the right-hand side; these columns are eligible for inclusion in an
-    initial basis. Determines the rows in which the singleton entries are
-    located. For each of these rows, returns the indices of the one singleton
-    column and its corresponding row.
-    """
-    # find indices of all singleton columns and corresponding row indices
-    column_indices = np.nonzero(np.sum(np.abs(A) != 0, axis=0) == 1)[0]
-    columns = A[:, column_indices]          # array of singleton columns
-    row_indices = np.zeros(len(column_indices), dtype=int)
-    nonzero_rows, nonzero_columns = np.nonzero(columns)
-    row_indices[nonzero_columns] = nonzero_rows   # corresponding row indices
-
-    # keep only singletons with entries that have same sign as RHS
-    # this is necessary because all elements of BFS must be non-negative
-    same_sign = A[row_indices, column_indices]*b[row_indices] >= 0
-    column_indices = column_indices[same_sign][::-1]
-    row_indices = row_indices[same_sign][::-1]
-    # Reversing the order so that steps below select rightmost columns
-    # for initial basis, which will tend to be slack variables. (If the
-    # guess corresponds with a basic feasible solution but a constraint
-    # is not satisfied with the corresponding slack variable zero, the slack
-    # variable must be basic.)
-
-    # for each row, keep rightmost singleton column with an entry in that row
-    unique_row_indices, first_columns = np.unique(row_indices,
-                                                  return_index=True)
-    return column_indices[first_columns], unique_row_indices
-
-
-def _find_nonzero_rows(A, tol):
-    """
-    Returns logical array indicating the locations of rows with at least
-    one nonzero element.
-    """
-    return np.any(np.abs(A) > tol, axis=1)
-
-
-def _select_enter_pivot(c_hat, bl, a, rule="bland", tol=1e-12):
-    """
-    Selects a pivot to enter the basis. Currently Bland's rule - the smallest
-    index that has a negative reduced cost - is the default.
-    """
-    if rule.lower() == "mrc":  # index with minimum reduced cost
-        return a[~bl][np.argmin(c_hat)]
-    else:  # smallest index w/ negative reduced cost
-        return a[~bl][c_hat < -tol][0]
-
-
-def _display_iter(phase, iteration, slack, con, fun):
-    """
-    Print indicators of optimization status to the console.
-    """
-    header = True if not iteration % 20 else False
-
-    if header:
-        print("Phase",
-              "Iteration",
-              "Minimum Slack      ",
-              "Constraint Residual",
-              "Objective          ")
-
-    # := -tol):  # all reduced costs positive -> terminate
-            break
-
-        j = _select_enter_pivot(c_hat, bl, a, rule=pivot, tol=tol)
-        u = B.solve(A[:, j])        # similar to u = solve(B, A[:, j])
-
-        i = u > tol                 # if none of the u are positive, unbounded
-        if not np.any(i):
-            status = 3
-            break
-
-        th = xb[i]/u[i]
-        l = np.argmin(th)           # implicitly selects smallest subscript
-        th_star = th[l]             # step size
-
-        x[b] = x[b] - th_star*u     # take step
-        x[j] = th_star
-        B.update(ab[i][l], j)       # modify basis
-        b = B.b                     # similar to b[ab[i][l]] =
-
-    else:
-        # If the end of the for loop is reached (without a break statement),
-        # then another step has been taken, so the iteration counter should
-        # increment, info should be displayed, and callback should be called.
-        iteration += 1
-        status = 1
-        if disp or callback is not None:
-            _display_and_callback(phase_one_n, x, postsolve_args, status,
-                                  iteration, disp, callback)
-
-    return x, b, status, iteration
-
-
-def _linprog_rs(c, c0, A, b, x0, callback, postsolve_args,
-                maxiter=5000, tol=1e-12, disp=False,
-                maxupdate=10, mast=False, pivot="mrc",
-                **unknown_options):
-    """
-    Solve the following linear programming problem via a two-phase
-    revised simplex algorithm.::
-
-        minimize:     c @ x
-
-        subject to:  A @ x == b
-                     0 <= x < oo
-
-    User-facing documentation is in _linprog_doc.py.
-
-    Parameters
-    ----------
-    c : 1-D array
-        Coefficients of the linear objective function to be minimized.
-    c0 : float
-        Constant term in objective function due to fixed (and eliminated)
-        variables. (Currently unused.)
-    A : 2-D array
-        2-D array which, when matrix-multiplied by ``x``, gives the values of
-        the equality constraints at ``x``.
-    b : 1-D array
-        1-D array of values representing the RHS of each equality constraint
-        (row) in ``A_eq``.
-    x0 : 1-D array, optional
-        Starting values of the independent variables, which will be refined by
-        the optimization algorithm. For the revised simplex method, these must
-        correspond with a basic feasible solution.
-    callback : callable, optional
-        If a callback function is provided, it will be called within each
-        iteration of the algorithm. The callback function must accept a single
-        `scipy.optimize.OptimizeResult` consisting of the following fields:
-
-            x : 1-D array
-                Current solution vector.
-            fun : float
-                Current value of the objective function ``c @ x``.
-            success : bool
-                True only when an algorithm has completed successfully,
-                so this is always False as the callback function is called
-                only while the algorithm is still iterating.
-            slack : 1-D array
-                The values of the slack variables. Each slack variable
-                corresponds to an inequality constraint. If the slack is zero,
-                the corresponding constraint is active.
-            con : 1-D array
-                The (nominally zero) residuals of the equality constraints,
-                that is, ``b - A_eq @ x``.
-            phase : int
-                The phase of the algorithm being executed.
-            status : int
-                For revised simplex, this is always 0 because if a different
-                status is detected, the algorithm terminates.
-            nit : int
-                The number of iterations performed.
-            message : str
-                A string descriptor of the exit status of the optimization.
-    postsolve_args : tuple
-        Data needed by _postsolve to convert the solution to the standard-form
-        problem into the solution to the original problem.
-
-    Options
-    -------
-    maxiter : int
-       The maximum number of iterations to perform in either phase.
-    tol : float
-        The tolerance which determines when a solution is "close enough" to
-        zero in Phase 1 to be considered a basic feasible solution or close
-        enough to positive to serve as an optimal solution.
-    disp : bool
-        Set to ``True`` if indicators of optimization status are to be printed
-        to the console each iteration.
-    maxupdate : int
-        The maximum number of updates performed on the LU factorization.
-        After this many updates is reached, the basis matrix is factorized
-        from scratch.
-    mast : bool
-        Minimize Amortized Solve Time. If enabled, the average time to solve
-        a linear system using the basis factorization is measured. Typically,
-        the average solve time will decrease with each successive solve after
-        initial factorization, as factorization takes much more time than the
-        solve operation (and updates). Eventually, however, the updated
-        factorization becomes sufficiently complex that the average solve time
-        begins to increase. When this is detected, the basis is refactorized
-        from scratch. Enable this option to maximize speed at the risk of
-        nondeterministic behavior. Ignored if ``maxupdate`` is 0.
-    pivot : "mrc" or "bland"
-        Pivot rule: Minimum Reduced Cost (default) or Bland's rule. Choose
-        Bland's rule if iteration limit is reached and cycling is suspected.
-    unknown_options : dict
-        Optional arguments not used by this particular solver. If
-        `unknown_options` is non-empty a warning is issued listing all
-        unused options.
-
-    Returns
-    -------
-    x : 1-D array
-        Solution vector.
-    status : int
-        An integer representing the exit status of the optimization::
-
-         0 : Optimization terminated successfully
-         1 : Iteration limit reached
-         2 : Problem appears to be infeasible
-         3 : Problem appears to be unbounded
-         4 : Numerical difficulties encountered
-         5 : No constraints; turn presolve on
-         6 : Guess x0 cannot be converted to a basic feasible solution
-
-    message : str
-        A string descriptor of the exit status of the optimization.
-    iteration : int
-        The number of iterations taken to solve the problem.
-    """
-
-    _check_unknown_options(unknown_options)
-
-    messages = ["Optimization terminated successfully.",
-                "Iteration limit reached.",
-                "The problem appears infeasible, as the phase one auxiliary "
-                "problem terminated successfully with a residual of {0:.1e}, "
-                "greater than the tolerance {1} required for the solution to "
-                "be considered feasible. Consider increasing the tolerance to "
-                "be greater than {0:.1e}. If this tolerance is unnaceptably "
-                "large, the problem is likely infeasible.",
-                "The problem is unbounded, as the simplex algorithm found "
-                "a basic feasible solution from which there is a direction "
-                "with negative reduced cost in which all decision variables "
-                "increase.",
-                "Numerical difficulties encountered; consider trying "
-                "method='interior-point'.",
-                "Problems with no constraints are trivially solved; please "
-                "turn presolve on.",
-                "The guess x0 cannot be converted to a basic feasible "
-                "solution. "
-                ]
-
-    if A.size == 0:  # address test_unbounded_below_no_presolve_corrected
-        return np.zeros(c.shape), 5, messages[5], 0
-
-    x, basis, A, b, residual, status, iteration = (
-        _phase_one(A, b, x0, callback, postsolve_args,
-                   maxiter, tol, disp, maxupdate, mast, pivot))
-
-    if status == 0:
-        x, basis, status, iteration = _phase_two(c, A, x, basis, callback,
-                                                 postsolve_args,
-                                                 maxiter, tol, disp,
-                                                 maxupdate, mast, pivot,
-                                                 iteration)
-
-    return x, status, messages[status].format(residual, tol), iteration
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_simplex.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_simplex.py
deleted file mode 100644
index b13418c369864ca528efe76d9f45c07da2bcf680..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_simplex.py
+++ /dev/null
@@ -1,661 +0,0 @@
-"""Simplex method for  linear programming
-
-The *simplex* method uses a traditional, full-tableau implementation of
-Dantzig's simplex algorithm [1]_, [2]_ (*not* the Nelder-Mead simplex).
-This algorithm is included for backwards compatibility and educational
-purposes.
-
-    .. versionadded:: 0.15.0
-
-Warnings
---------
-
-The simplex method may encounter numerical difficulties when pivot
-values are close to the specified tolerance. If encountered try
-remove any redundant constraints, change the pivot strategy to Bland's
-rule or increase the tolerance value.
-
-Alternatively, more robust methods maybe be used. See
-:ref:`'interior-point' ` and
-:ref:`'revised simplex' `.
-
-References
-----------
-.. [1] Dantzig, George B., Linear programming and extensions. Rand
-       Corporation Research Study Princeton Univ. Press, Princeton, NJ,
-       1963
-.. [2] Hillier, S.H. and Lieberman, G.J. (1995), "Introduction to
-       Mathematical Programming", McGraw-Hill, Chapter 4.
-"""
-
-import numpy as np
-from warnings import warn
-from ._optimize import OptimizeResult, OptimizeWarning, _check_unknown_options
-from ._linprog_util import _postsolve
-
-
-def _pivot_col(T, tol=1e-9, bland=False):
-    """
-    Given a linear programming simplex tableau, determine the column
-    of the variable to enter the basis.
-
-    Parameters
-    ----------
-    T : 2-D array
-        A 2-D array representing the simplex tableau, T, corresponding to the
-        linear programming problem. It should have the form:
-
-        [[A[0, 0], A[0, 1], ..., A[0, n_total], b[0]],
-         [A[1, 0], A[1, 1], ..., A[1, n_total], b[1]],
-         .
-         .
-         .
-         [A[m, 0], A[m, 1], ..., A[m, n_total], b[m]],
-         [c[0],   c[1], ...,   c[n_total],    0]]
-
-        for a Phase 2 problem, or the form:
-
-        [[A[0, 0], A[0, 1], ..., A[0, n_total], b[0]],
-         [A[1, 0], A[1, 1], ..., A[1, n_total], b[1]],
-         .
-         .
-         .
-         [A[m, 0], A[m, 1], ..., A[m, n_total], b[m]],
-         [c[0],   c[1], ...,   c[n_total],   0],
-         [c'[0],  c'[1], ...,  c'[n_total],  0]]
-
-         for a Phase 1 problem (a problem in which a basic feasible solution is
-         sought prior to maximizing the actual objective. ``T`` is modified in
-         place by ``_solve_simplex``.
-    tol : float
-        Elements in the objective row larger than -tol will not be considered
-        for pivoting. Nominally this value is zero, but numerical issues
-        cause a tolerance about zero to be necessary.
-    bland : bool
-        If True, use Bland's rule for selection of the column (select the
-        first column with a negative coefficient in the objective row,
-        regardless of magnitude).
-
-    Returns
-    -------
-    status: bool
-        True if a suitable pivot column was found, otherwise False.
-        A return of False indicates that the linear programming simplex
-        algorithm is complete.
-    col: int
-        The index of the column of the pivot element.
-        If status is False, col will be returned as nan.
-    """
-    ma = np.ma.masked_where(T[-1, :-1] >= -tol, T[-1, :-1], copy=False)
-    if ma.count() == 0:
-        return False, np.nan
-    if bland:
-        # ma.mask is sometimes 0d
-        return True, np.nonzero(np.logical_not(np.atleast_1d(ma.mask)))[0][0]
-    return True, np.ma.nonzero(ma == ma.min())[0][0]
-
-
-def _pivot_row(T, basis, pivcol, phase, tol=1e-9, bland=False):
-    """
-    Given a linear programming simplex tableau, determine the row for the
-    pivot operation.
-
-    Parameters
-    ----------
-    T : 2-D array
-        A 2-D array representing the simplex tableau, T, corresponding to the
-        linear programming problem. It should have the form:
-
-        [[A[0, 0], A[0, 1], ..., A[0, n_total], b[0]],
-         [A[1, 0], A[1, 1], ..., A[1, n_total], b[1]],
-         .
-         .
-         .
-         [A[m, 0], A[m, 1], ..., A[m, n_total], b[m]],
-         [c[0],   c[1], ...,   c[n_total],    0]]
-
-        for a Phase 2 problem, or the form:
-
-        [[A[0, 0], A[0, 1], ..., A[0, n_total], b[0]],
-         [A[1, 0], A[1, 1], ..., A[1, n_total], b[1]],
-         .
-         .
-         .
-         [A[m, 0], A[m, 1], ..., A[m, n_total], b[m]],
-         [c[0],   c[1], ...,   c[n_total],   0],
-         [c'[0],  c'[1], ...,  c'[n_total],  0]]
-
-         for a Phase 1 problem (a Problem in which a basic feasible solution is
-         sought prior to maximizing the actual objective. ``T`` is modified in
-         place by ``_solve_simplex``.
-    basis : array
-        A list of the current basic variables.
-    pivcol : int
-        The index of the pivot column.
-    phase : int
-        The phase of the simplex algorithm (1 or 2).
-    tol : float
-        Elements in the pivot column smaller than tol will not be considered
-        for pivoting. Nominally this value is zero, but numerical issues
-        cause a tolerance about zero to be necessary.
-    bland : bool
-        If True, use Bland's rule for selection of the row (if more than one
-        row can be used, choose the one with the lowest variable index).
-
-    Returns
-    -------
-    status: bool
-        True if a suitable pivot row was found, otherwise False. A return
-        of False indicates that the linear programming problem is unbounded.
-    row: int
-        The index of the row of the pivot element. If status is False, row
-        will be returned as nan.
-    """
-    if phase == 1:
-        k = 2
-    else:
-        k = 1
-    ma = np.ma.masked_where(T[:-k, pivcol] <= tol, T[:-k, pivcol], copy=False)
-    if ma.count() == 0:
-        return False, np.nan
-    mb = np.ma.masked_where(T[:-k, pivcol] <= tol, T[:-k, -1], copy=False)
-    q = mb / ma
-    min_rows = np.ma.nonzero(q == q.min())[0]
-    if bland:
-        return True, min_rows[np.argmin(np.take(basis, min_rows))]
-    return True, min_rows[0]
-
-
-def _apply_pivot(T, basis, pivrow, pivcol, tol=1e-9):
-    """
-    Pivot the simplex tableau inplace on the element given by (pivrow, pivol).
-    The entering variable corresponds to the column given by pivcol forcing
-    the variable basis[pivrow] to leave the basis.
-
-    Parameters
-    ----------
-    T : 2-D array
-        A 2-D array representing the simplex tableau, T, corresponding to the
-        linear programming problem. It should have the form:
-
-        [[A[0, 0], A[0, 1], ..., A[0, n_total], b[0]],
-         [A[1, 0], A[1, 1], ..., A[1, n_total], b[1]],
-         .
-         .
-         .
-         [A[m, 0], A[m, 1], ..., A[m, n_total], b[m]],
-         [c[0],   c[1], ...,   c[n_total],    0]]
-
-        for a Phase 2 problem, or the form:
-
-        [[A[0, 0], A[0, 1], ..., A[0, n_total], b[0]],
-         [A[1, 0], A[1, 1], ..., A[1, n_total], b[1]],
-         .
-         .
-         .
-         [A[m, 0], A[m, 1], ..., A[m, n_total], b[m]],
-         [c[0],   c[1], ...,   c[n_total],   0],
-         [c'[0],  c'[1], ...,  c'[n_total],  0]]
-
-         for a Phase 1 problem (a problem in which a basic feasible solution is
-         sought prior to maximizing the actual objective. ``T`` is modified in
-         place by ``_solve_simplex``.
-    basis : 1-D array
-        An array of the indices of the basic variables, such that basis[i]
-        contains the column corresponding to the basic variable for row i.
-        Basis is modified in place by _apply_pivot.
-    pivrow : int
-        Row index of the pivot.
-    pivcol : int
-        Column index of the pivot.
-    """
-    basis[pivrow] = pivcol
-    pivval = T[pivrow, pivcol]
-    T[pivrow] = T[pivrow] / pivval
-    for irow in range(T.shape[0]):
-        if irow != pivrow:
-            T[irow] = T[irow] - T[pivrow] * T[irow, pivcol]
-
-    # The selected pivot should never lead to a pivot value less than the tol.
-    if np.isclose(pivval, tol, atol=0, rtol=1e4):
-        message = (
-            f"The pivot operation produces a pivot value of:{pivval: .1e}, "
-            "which is only slightly greater than the specified "
-            f"tolerance{tol: .1e}. This may lead to issues regarding the "
-            "numerical stability of the simplex method. "
-            "Removing redundant constraints, changing the pivot strategy "
-            "via Bland's rule or increasing the tolerance may "
-            "help reduce the issue.")
-        warn(message, OptimizeWarning, stacklevel=5)
-
-
-def _solve_simplex(T, n, basis, callback, postsolve_args,
-                   maxiter=1000, tol=1e-9, phase=2, bland=False, nit0=0,
-                   ):
-    """
-    Solve a linear programming problem in "standard form" using the Simplex
-    Method. Linear Programming is intended to solve the following problem form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A @ x == b
-            x >= 0
-
-    Parameters
-    ----------
-    T : 2-D array
-        A 2-D array representing the simplex tableau, T, corresponding to the
-        linear programming problem. It should have the form:
-
-        [[A[0, 0], A[0, 1], ..., A[0, n_total], b[0]],
-         [A[1, 0], A[1, 1], ..., A[1, n_total], b[1]],
-         .
-         .
-         .
-         [A[m, 0], A[m, 1], ..., A[m, n_total], b[m]],
-         [c[0],   c[1], ...,   c[n_total],    0]]
-
-        for a Phase 2 problem, or the form:
-
-        [[A[0, 0], A[0, 1], ..., A[0, n_total], b[0]],
-         [A[1, 0], A[1, 1], ..., A[1, n_total], b[1]],
-         .
-         .
-         .
-         [A[m, 0], A[m, 1], ..., A[m, n_total], b[m]],
-         [c[0],   c[1], ...,   c[n_total],   0],
-         [c'[0],  c'[1], ...,  c'[n_total],  0]]
-
-         for a Phase 1 problem (a problem in which a basic feasible solution is
-         sought prior to maximizing the actual objective. ``T`` is modified in
-         place by ``_solve_simplex``.
-    n : int
-        The number of true variables in the problem.
-    basis : 1-D array
-        An array of the indices of the basic variables, such that basis[i]
-        contains the column corresponding to the basic variable for row i.
-        Basis is modified in place by _solve_simplex
-    callback : callable, optional
-        If a callback function is provided, it will be called within each
-        iteration of the algorithm. The callback must accept a
-        `scipy.optimize.OptimizeResult` consisting of the following fields:
-
-            x : 1-D array
-                Current solution vector
-            fun : float
-                Current value of the objective function
-            success : bool
-                True only when a phase has completed successfully. This
-                will be False for most iterations.
-            slack : 1-D array
-                The values of the slack variables. Each slack variable
-                corresponds to an inequality constraint. If the slack is zero,
-                the corresponding constraint is active.
-            con : 1-D array
-                The (nominally zero) residuals of the equality constraints,
-                that is, ``b - A_eq @ x``
-            phase : int
-                The phase of the optimization being executed. In phase 1 a basic
-                feasible solution is sought and the T has an additional row
-                representing an alternate objective function.
-            status : int
-                An integer representing the exit status of the optimization::
-
-                     0 : Optimization terminated successfully
-                     1 : Iteration limit reached
-                     2 : Problem appears to be infeasible
-                     3 : Problem appears to be unbounded
-                     4 : Serious numerical difficulties encountered
-
-            nit : int
-                The number of iterations performed.
-            message : str
-                A string descriptor of the exit status of the optimization.
-    postsolve_args : tuple
-        Data needed by _postsolve to convert the solution to the standard-form
-        problem into the solution to the original problem.
-    maxiter : int
-        The maximum number of iterations to perform before aborting the
-        optimization.
-    tol : float
-        The tolerance which determines when a solution is "close enough" to
-        zero in Phase 1 to be considered a basic feasible solution or close
-        enough to positive to serve as an optimal solution.
-    phase : int
-        The phase of the optimization being executed. In phase 1 a basic
-        feasible solution is sought and the T has an additional row
-        representing an alternate objective function.
-    bland : bool
-        If True, choose pivots using Bland's rule [3]_. In problems which
-        fail to converge due to cycling, using Bland's rule can provide
-        convergence at the expense of a less optimal path about the simplex.
-    nit0 : int
-        The initial iteration number used to keep an accurate iteration total
-        in a two-phase problem.
-
-    Returns
-    -------
-    nit : int
-        The number of iterations. Used to keep an accurate iteration total
-        in the two-phase problem.
-    status : int
-        An integer representing the exit status of the optimization::
-
-         0 : Optimization terminated successfully
-         1 : Iteration limit reached
-         2 : Problem appears to be infeasible
-         3 : Problem appears to be unbounded
-         4 : Serious numerical difficulties encountered
-
-    """
-    nit = nit0
-    status = 0
-    message = ''
-    complete = False
-
-    if phase == 1:
-        m = T.shape[1]-2
-    elif phase == 2:
-        m = T.shape[1]-1
-    else:
-        raise ValueError("Argument 'phase' to _solve_simplex must be 1 or 2")
-
-    if phase == 2:
-        # Check if any artificial variables are still in the basis.
-        # If yes, check if any coefficients from this row and a column
-        # corresponding to one of the non-artificial variable is non-zero.
-        # If found, pivot at this term. If not, start phase 2.
-        # Do this for all artificial variables in the basis.
-        # Ref: "An Introduction to Linear Programming and Game Theory"
-        # by Paul R. Thie, Gerard E. Keough, 3rd Ed,
-        # Chapter 3.7 Redundant Systems (pag 102)
-        for pivrow in [row for row in range(basis.size)
-                       if basis[row] > T.shape[1] - 2]:
-            non_zero_row = [col for col in range(T.shape[1] - 1)
-                            if abs(T[pivrow, col]) > tol]
-            if len(non_zero_row) > 0:
-                pivcol = non_zero_row[0]
-                _apply_pivot(T, basis, pivrow, pivcol, tol)
-                nit += 1
-
-    if len(basis[:m]) == 0:
-        solution = np.empty(T.shape[1] - 1, dtype=np.float64)
-    else:
-        solution = np.empty(max(T.shape[1] - 1, max(basis[:m]) + 1),
-                            dtype=np.float64)
-
-    while not complete:
-        # Find the pivot column
-        pivcol_found, pivcol = _pivot_col(T, tol, bland)
-        if not pivcol_found:
-            pivcol = np.nan
-            pivrow = np.nan
-            status = 0
-            complete = True
-        else:
-            # Find the pivot row
-            pivrow_found, pivrow = _pivot_row(T, basis, pivcol, phase, tol, bland)
-            if not pivrow_found:
-                status = 3
-                complete = True
-
-        if callback is not None:
-            solution[:] = 0
-            solution[basis[:n]] = T[:n, -1]
-            x = solution[:m]
-            x, fun, slack, con = _postsolve(
-                x, postsolve_args
-            )
-            res = OptimizeResult({
-                'x': x,
-                'fun': fun,
-                'slack': slack,
-                'con': con,
-                'status': status,
-                'message': message,
-                'nit': nit,
-                'success': status == 0 and complete,
-                'phase': phase,
-                'complete': complete,
-                })
-            callback(res)
-
-        if not complete:
-            if nit >= maxiter:
-                # Iteration limit exceeded
-                status = 1
-                complete = True
-            else:
-                _apply_pivot(T, basis, pivrow, pivcol, tol)
-                nit += 1
-    return nit, status
-
-
-def _linprog_simplex(c, c0, A, b, callback, postsolve_args,
-                     maxiter=1000, tol=1e-9, disp=False, bland=False,
-                     **unknown_options):
-    """
-    Minimize a linear objective function subject to linear equality and
-    non-negativity constraints using the two phase simplex method.
-    Linear programming is intended to solve problems of the following form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A @ x == b
-            x >= 0
-
-    User-facing documentation is in _linprog_doc.py.
-
-    Parameters
-    ----------
-    c : 1-D array
-        Coefficients of the linear objective function to be minimized.
-    c0 : float
-        Constant term in objective function due to fixed (and eliminated)
-        variables. (Purely for display.)
-    A : 2-D array
-        2-D array such that ``A @ x``, gives the values of the equality
-        constraints at ``x``.
-    b : 1-D array
-        1-D array of values representing the right hand side of each equality
-        constraint (row) in ``A``.
-    callback : callable, optional
-        If a callback function is provided, it will be called within each
-        iteration of the algorithm. The callback function must accept a single
-        `scipy.optimize.OptimizeResult` consisting of the following fields:
-
-            x : 1-D array
-                Current solution vector
-            fun : float
-                Current value of the objective function
-            success : bool
-                True when an algorithm has completed successfully.
-            slack : 1-D array
-                The values of the slack variables. Each slack variable
-                corresponds to an inequality constraint. If the slack is zero,
-                the corresponding constraint is active.
-            con : 1-D array
-                The (nominally zero) residuals of the equality constraints,
-                that is, ``b - A_eq @ x``
-            phase : int
-                The phase of the algorithm being executed.
-            status : int
-                An integer representing the status of the optimization::
-
-                     0 : Algorithm proceeding nominally
-                     1 : Iteration limit reached
-                     2 : Problem appears to be infeasible
-                     3 : Problem appears to be unbounded
-                     4 : Serious numerical difficulties encountered
-            nit : int
-                The number of iterations performed.
-            message : str
-                A string descriptor of the exit status of the optimization.
-    postsolve_args : tuple
-        Data needed by _postsolve to convert the solution to the standard-form
-        problem into the solution to the original problem.
-
-    Options
-    -------
-    maxiter : int
-       The maximum number of iterations to perform.
-    disp : bool
-        If True, print exit status message to sys.stdout
-    tol : float
-        The tolerance which determines when a solution is "close enough" to
-        zero in Phase 1 to be considered a basic feasible solution or close
-        enough to positive to serve as an optimal solution.
-    bland : bool
-        If True, use Bland's anti-cycling rule [3]_ to choose pivots to
-        prevent cycling. If False, choose pivots which should lead to a
-        converged solution more quickly. The latter method is subject to
-        cycling (non-convergence) in rare instances.
-    unknown_options : dict
-        Optional arguments not used by this particular solver. If
-        `unknown_options` is non-empty a warning is issued listing all
-        unused options.
-
-    Returns
-    -------
-    x : 1-D array
-        Solution vector.
-    status : int
-        An integer representing the exit status of the optimization::
-
-         0 : Optimization terminated successfully
-         1 : Iteration limit reached
-         2 : Problem appears to be infeasible
-         3 : Problem appears to be unbounded
-         4 : Serious numerical difficulties encountered
-
-    message : str
-        A string descriptor of the exit status of the optimization.
-    iteration : int
-        The number of iterations taken to solve the problem.
-
-    References
-    ----------
-    .. [1] Dantzig, George B., Linear programming and extensions. Rand
-           Corporation Research Study Princeton Univ. Press, Princeton, NJ,
-           1963
-    .. [2] Hillier, S.H. and Lieberman, G.J. (1995), "Introduction to
-           Mathematical Programming", McGraw-Hill, Chapter 4.
-    .. [3] Bland, Robert G. New finite pivoting rules for the simplex method.
-           Mathematics of Operations Research (2), 1977: pp. 103-107.
-
-
-    Notes
-    -----
-    The expected problem formulation differs between the top level ``linprog``
-    module and the method specific solvers. The method specific solvers expect a
-    problem in standard form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A @ x == b
-            x >= 0
-
-    Whereas the top level ``linprog`` module expects a problem of form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A_ub @ x <= b_ub
-        A_eq @ x == b_eq
-         lb <= x <= ub
-
-    where ``lb = 0`` and ``ub = None`` unless set in ``bounds``.
-
-    The original problem contains equality, upper-bound and variable constraints
-    whereas the method specific solver requires equality constraints and
-    variable non-negativity.
-
-    ``linprog`` module converts the original problem to standard form by
-    converting the simple bounds to upper bound constraints, introducing
-    non-negative slack variables for inequality constraints, and expressing
-    unbounded variables as the difference between two non-negative variables.
-    """
-    _check_unknown_options(unknown_options)
-
-    status = 0
-    messages = {0: "Optimization terminated successfully.",
-                1: "Iteration limit reached.",
-                2: "Optimization failed. Unable to find a feasible"
-                   " starting point.",
-                3: "Optimization failed. The problem appears to be unbounded.",
-                4: "Optimization failed. Singular matrix encountered."}
-
-    n, m = A.shape
-
-    # All constraints must have b >= 0.
-    is_negative_constraint = np.less(b, 0)
-    A[is_negative_constraint] *= -1
-    b[is_negative_constraint] *= -1
-
-    # As all constraints are equality constraints the artificial variables
-    # will also be basic variables.
-    av = np.arange(n) + m
-    basis = av.copy()
-
-    # Format the phase one tableau by adding artificial variables and stacking
-    # the constraints, the objective row and pseudo-objective row.
-    row_constraints = np.hstack((A, np.eye(n), b[:, np.newaxis]))
-    row_objective = np.hstack((c, np.zeros(n), c0))
-    row_pseudo_objective = -row_constraints.sum(axis=0)
-    row_pseudo_objective[av] = 0
-    T = np.vstack((row_constraints, row_objective, row_pseudo_objective))
-
-    nit1, status = _solve_simplex(T, n, basis, callback=callback,
-                                  postsolve_args=postsolve_args,
-                                  maxiter=maxiter, tol=tol, phase=1,
-                                  bland=bland
-                                  )
-    # if pseudo objective is zero, remove the last row from the tableau and
-    # proceed to phase 2
-    nit2 = nit1
-    if abs(T[-1, -1]) < tol:
-        # Remove the pseudo-objective row from the tableau
-        T = T[:-1, :]
-        # Remove the artificial variable columns from the tableau
-        T = np.delete(T, av, 1)
-    else:
-        # Failure to find a feasible starting point
-        status = 2
-        messages[status] = (
-            "Phase 1 of the simplex method failed to find a feasible "
-            "solution. The pseudo-objective function evaluates to {0:.1e} "
-            "which exceeds the required tolerance of {1} for a solution to be "
-            "considered 'close enough' to zero to be a basic solution. "
-            "Consider increasing the tolerance to be greater than {0:.1e}. "
-            "If this tolerance is unacceptably  large the problem may be "
-            "infeasible.".format(abs(T[-1, -1]), tol)
-        )
-
-    if status == 0:
-        # Phase 2
-        nit2, status = _solve_simplex(T, n, basis, callback=callback,
-                                      postsolve_args=postsolve_args,
-                                      maxiter=maxiter, tol=tol, phase=2,
-                                      bland=bland, nit0=nit1
-                                      )
-
-    solution = np.zeros(n + m)
-    solution[basis[:n]] = T[:n, -1]
-    x = solution[:m]
-
-    return x, status, messages[status], int(nit2)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_util.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_util.py
deleted file mode 100644
index 3d25cee4d9ce6b1c5a40cc474d97ec13474ebafc..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_linprog_util.py
+++ /dev/null
@@ -1,1522 +0,0 @@
-"""
-Method agnostic utility functions for linear programming
-"""
-
-import numpy as np
-import scipy.sparse as sps
-from warnings import warn
-from ._optimize import OptimizeWarning
-from scipy.optimize._remove_redundancy import (
-    _remove_redundancy_svd, _remove_redundancy_pivot_sparse,
-    _remove_redundancy_pivot_dense, _remove_redundancy_id
-    )
-from collections import namedtuple
-
-_LPProblem = namedtuple('_LPProblem',
-                        'c A_ub b_ub A_eq b_eq bounds x0 integrality')
-_LPProblem.__new__.__defaults__ = (None,) * 7  # make c the only required arg
-_LPProblem.__doc__ = \
-    """ Represents a linear-programming problem.
-
-    Attributes
-    ----------
-    c : 1D array
-        The coefficients of the linear objective function to be minimized.
-    A_ub : 2D array, optional
-        The inequality constraint matrix. Each row of ``A_ub`` specifies the
-        coefficients of a linear inequality constraint on ``x``.
-    b_ub : 1D array, optional
-        The inequality constraint vector. Each element represents an
-        upper bound on the corresponding value of ``A_ub @ x``.
-    A_eq : 2D array, optional
-        The equality constraint matrix. Each row of ``A_eq`` specifies the
-        coefficients of a linear equality constraint on ``x``.
-    b_eq : 1D array, optional
-        The equality constraint vector. Each element of ``A_eq @ x`` must equal
-        the corresponding element of ``b_eq``.
-    bounds : various valid formats, optional
-        The bounds of ``x``, as ``min`` and ``max`` pairs.
-        If bounds are specified for all N variables separately, valid formats
-        are:
-        * a 2D array (N x 2);
-        * a sequence of N sequences, each with 2 values.
-        If all variables have the same bounds, the bounds can be specified as
-        a 1-D or 2-D array or sequence with 2 scalar values.
-        If all variables have a lower bound of 0 and no upper bound, the bounds
-        parameter can be omitted (or given as None).
-        Absent lower and/or upper bounds can be specified as -numpy.inf (no
-        lower bound), numpy.inf (no upper bound) or None (both).
-    x0 : 1D array, optional
-        Guess values of the decision variables, which will be refined by
-        the optimization algorithm. This argument is currently used only by the
-        'revised simplex' method, and can only be used if `x0` represents a
-        basic feasible solution.
-    integrality : 1-D array or int, optional
-        Indicates the type of integrality constraint on each decision variable.
-
-        ``0`` : Continuous variable; no integrality constraint.
-
-        ``1`` : Integer variable; decision variable must be an integer
-        within `bounds`.
-
-        ``2`` : Semi-continuous variable; decision variable must be within
-        `bounds` or take value ``0``.
-
-        ``3`` : Semi-integer variable; decision variable must be an integer
-        within `bounds` or take value ``0``.
-
-        By default, all variables are continuous.
-
-        For mixed integrality constraints, supply an array of shape `c.shape`.
-        To infer a constraint on each decision variable from shorter inputs,
-        the argument will be broadcasted to `c.shape` using `np.broadcast_to`.
-
-        This argument is currently used only by the ``'highs'`` method and
-        ignored otherwise.
-
-    Notes
-    -----
-    This namedtuple supports 2 ways of initialization:
-    >>> lp1 = _LPProblem(c=[-1, 4], A_ub=[[-3, 1], [1, 2]], b_ub=[6, 4])
-    >>> lp2 = _LPProblem([-1, 4], [[-3, 1], [1, 2]], [6, 4])
-
-    Note that only ``c`` is a required argument here, whereas all other arguments
-    ``A_ub``, ``b_ub``, ``A_eq``, ``b_eq``, ``bounds``, ``x0`` are optional with
-    default values of None.
-    For example, ``A_eq`` and ``b_eq`` can be set without ``A_ub`` or ``b_ub``:
-    >>> lp3 = _LPProblem(c=[-1, 4], A_eq=[[2, 1]], b_eq=[10])
-    """
-
-
-def _check_sparse_inputs(options, meth, A_ub, A_eq):
-    """
-    Check the provided ``A_ub`` and ``A_eq`` matrices conform to the specified
-    optional sparsity variables.
-
-    Parameters
-    ----------
-    A_ub : 2-D array, optional
-        2-D array such that ``A_ub @ x`` gives the values of the upper-bound
-        inequality constraints at ``x``.
-    A_eq : 2-D array, optional
-        2-D array such that ``A_eq @ x`` gives the values of the equality
-        constraints at ``x``.
-    options : dict
-        A dictionary of solver options. All methods accept the following
-        generic options:
-
-            maxiter : int
-                Maximum number of iterations to perform.
-            disp : bool
-                Set to True to print convergence messages.
-
-        For method-specific options, see :func:`show_options('linprog')`.
-    method : str, optional
-        The algorithm used to solve the standard form problem.
-
-    Returns
-    -------
-    A_ub : 2-D array, optional
-        2-D array such that ``A_ub @ x`` gives the values of the upper-bound
-        inequality constraints at ``x``.
-    A_eq : 2-D array, optional
-        2-D array such that ``A_eq @ x`` gives the values of the equality
-        constraints at ``x``.
-    options : dict
-        A dictionary of solver options. All methods accept the following
-        generic options:
-
-            maxiter : int
-                Maximum number of iterations to perform.
-            disp : bool
-                Set to True to print convergence messages.
-
-        For method-specific options, see :func:`show_options('linprog')`.
-    """
-    # This is an undocumented option for unit testing sparse presolve
-    _sparse_presolve = options.pop('_sparse_presolve', False)
-    if _sparse_presolve and A_eq is not None:
-        A_eq = sps.coo_matrix(A_eq)
-    if _sparse_presolve and A_ub is not None:
-        A_ub = sps.coo_matrix(A_ub)
-
-    sparse_constraint = sps.issparse(A_eq) or sps.issparse(A_ub)
-
-    preferred_methods = {"highs", "highs-ds", "highs-ipm"}
-    dense_methods = {"simplex", "revised simplex"}
-    if meth in dense_methods and sparse_constraint:
-        raise ValueError(f"Method '{meth}' does not support sparse "
-                         "constraint matrices. Please consider using one of "
-                         f"{preferred_methods}.")
-
-    sparse = options.get('sparse', False)
-    if not sparse and sparse_constraint and meth == 'interior-point':
-        options['sparse'] = True
-        warn("Sparse constraint matrix detected; setting 'sparse':True.",
-             OptimizeWarning, stacklevel=4)
-    return options, A_ub, A_eq
-
-
-def _format_A_constraints(A, n_x, sparse_lhs=False):
-    """Format the left hand side of the constraints to a 2-D array
-
-    Parameters
-    ----------
-    A : 2-D array
-        2-D array such that ``A @ x`` gives the values of the upper-bound
-        (in)equality constraints at ``x``.
-    n_x : int
-        The number of variables in the linear programming problem.
-    sparse_lhs : bool
-        Whether either of `A_ub` or `A_eq` are sparse. If true return a
-        coo_matrix instead of a numpy array.
-
-    Returns
-    -------
-    np.ndarray or sparse.coo_matrix
-        2-D array such that ``A @ x`` gives the values of the upper-bound
-        (in)equality constraints at ``x``.
-
-    """
-    if sparse_lhs:
-        return sps.coo_matrix(
-            (0, n_x) if A is None else A, dtype=float, copy=True
-        )
-    elif A is None:
-        return np.zeros((0, n_x), dtype=float)
-    else:
-        return np.array(A, dtype=float, copy=True)
-
-
-def _format_b_constraints(b):
-    """Format the upper bounds of the constraints to a 1-D array
-
-    Parameters
-    ----------
-    b : 1-D array
-        1-D array of values representing the upper-bound of each (in)equality
-        constraint (row) in ``A``.
-
-    Returns
-    -------
-    1-D np.array
-        1-D array of values representing the upper-bound of each (in)equality
-        constraint (row) in ``A``.
-
-    """
-    if b is None:
-        return np.array([], dtype=float)
-    b = np.array(b, dtype=float, copy=True).squeeze()
-    return b if b.size != 1 else b.reshape(-1)
-
-
-def _clean_inputs(lp):
-    """
-    Given user inputs for a linear programming problem, return the
-    objective vector, upper bound constraints, equality constraints,
-    and simple bounds in a preferred format.
-
-    Parameters
-    ----------
-    lp : A `scipy.optimize._linprog_util._LPProblem` consisting of the following fields:
-
-        c : 1D array
-            The coefficients of the linear objective function to be minimized.
-        A_ub : 2D array, optional
-            The inequality constraint matrix. Each row of ``A_ub`` specifies the
-            coefficients of a linear inequality constraint on ``x``.
-        b_ub : 1D array, optional
-            The inequality constraint vector. Each element represents an
-            upper bound on the corresponding value of ``A_ub @ x``.
-        A_eq : 2D array, optional
-            The equality constraint matrix. Each row of ``A_eq`` specifies the
-            coefficients of a linear equality constraint on ``x``.
-        b_eq : 1D array, optional
-            The equality constraint vector. Each element of ``A_eq @ x`` must equal
-            the corresponding element of ``b_eq``.
-        bounds : various valid formats, optional
-            The bounds of ``x``, as ``min`` and ``max`` pairs.
-            If bounds are specified for all N variables separately, valid formats are:
-            * a 2D array (2 x N or N x 2);
-            * a sequence of N sequences, each with 2 values.
-            If all variables have the same bounds, a single pair of values can
-            be specified. Valid formats are:
-            * a sequence with 2 scalar values;
-            * a sequence with a single element containing 2 scalar values.
-            If all variables have a lower bound of 0 and no upper bound, the bounds
-            parameter can be omitted (or given as None).
-        x0 : 1D array, optional
-            Guess values of the decision variables, which will be refined by
-            the optimization algorithm. This argument is currently used only by the
-            'revised simplex' method, and can only be used if `x0` represents a
-            basic feasible solution.
-
-    Returns
-    -------
-    lp : A `scipy.optimize._linprog_util._LPProblem` consisting of the following fields:
-
-        c : 1D array
-            The coefficients of the linear objective function to be minimized.
-        A_ub : 2D array, optional
-            The inequality constraint matrix. Each row of ``A_ub`` specifies the
-            coefficients of a linear inequality constraint on ``x``.
-        b_ub : 1D array, optional
-            The inequality constraint vector. Each element represents an
-            upper bound on the corresponding value of ``A_ub @ x``.
-        A_eq : 2D array, optional
-            The equality constraint matrix. Each row of ``A_eq`` specifies the
-            coefficients of a linear equality constraint on ``x``.
-        b_eq : 1D array, optional
-            The equality constraint vector. Each element of ``A_eq @ x`` must equal
-            the corresponding element of ``b_eq``.
-        bounds : 2D array
-            The bounds of ``x``, as ``min`` and ``max`` pairs, one for each of the N
-            elements of ``x``. The N x 2 array contains lower bounds in the first
-            column and upper bounds in the 2nd. Unbounded variables have lower
-            bound -np.inf and/or upper bound np.inf.
-        x0 : 1D array, optional
-            Guess values of the decision variables, which will be refined by
-            the optimization algorithm. This argument is currently used only by the
-            'revised simplex' method, and can only be used if `x0` represents a
-            basic feasible solution.
-
-    """
-    c, A_ub, b_ub, A_eq, b_eq, bounds, x0, integrality = lp
-
-    if c is None:
-        raise TypeError
-
-    try:
-        c = np.array(c, dtype=np.float64, copy=True).squeeze()
-    except ValueError as e:
-        raise TypeError(
-            "Invalid input for linprog: c must be a 1-D array of numerical "
-            "coefficients") from e
-    else:
-        # If c is a single value, convert it to a 1-D array.
-        if c.size == 1:
-            c = c.reshape(-1)
-
-        n_x = len(c)
-        if n_x == 0 or len(c.shape) != 1:
-            raise ValueError(
-                "Invalid input for linprog: c must be a 1-D array and must "
-                "not have more than one non-singleton dimension")
-        if not np.isfinite(c).all():
-            raise ValueError(
-                "Invalid input for linprog: c must not contain values "
-                "inf, nan, or None")
-
-    sparse_lhs = sps.issparse(A_eq) or sps.issparse(A_ub)
-    try:
-        A_ub = _format_A_constraints(A_ub, n_x, sparse_lhs=sparse_lhs)
-    except ValueError as e:
-        raise TypeError(
-            "Invalid input for linprog: A_ub must be a 2-D array "
-            "of numerical values") from e
-    else:
-        n_ub = A_ub.shape[0]
-        if len(A_ub.shape) != 2 or A_ub.shape[1] != n_x:
-            raise ValueError(
-                "Invalid input for linprog: A_ub must have exactly two "
-                "dimensions, and the number of columns in A_ub must be "
-                "equal to the size of c")
-        if (sps.issparse(A_ub) and not np.isfinite(A_ub.data).all()
-                or not sps.issparse(A_ub) and not np.isfinite(A_ub).all()):
-            raise ValueError(
-                "Invalid input for linprog: A_ub must not contain values "
-                "inf, nan, or None")
-
-    try:
-        b_ub = _format_b_constraints(b_ub)
-    except ValueError as e:
-        raise TypeError(
-            "Invalid input for linprog: b_ub must be a 1-D array of "
-            "numerical values, each representing the upper bound of an "
-            "inequality constraint (row) in A_ub") from e
-    else:
-        if b_ub.shape != (n_ub,):
-            raise ValueError(
-                "Invalid input for linprog: b_ub must be a 1-D array; b_ub "
-                "must not have more than one non-singleton dimension and "
-                "the number of rows in A_ub must equal the number of values "
-                "in b_ub")
-        if not np.isfinite(b_ub).all():
-            raise ValueError(
-                "Invalid input for linprog: b_ub must not contain values "
-                "inf, nan, or None")
-
-    try:
-        A_eq = _format_A_constraints(A_eq, n_x, sparse_lhs=sparse_lhs)
-    except ValueError as e:
-        raise TypeError(
-            "Invalid input for linprog: A_eq must be a 2-D array "
-            "of numerical values") from e
-    else:
-        n_eq = A_eq.shape[0]
-        if len(A_eq.shape) != 2 or A_eq.shape[1] != n_x:
-            raise ValueError(
-                "Invalid input for linprog: A_eq must have exactly two "
-                "dimensions, and the number of columns in A_eq must be "
-                "equal to the size of c")
-
-        if (sps.issparse(A_eq) and not np.isfinite(A_eq.data).all()
-                or not sps.issparse(A_eq) and not np.isfinite(A_eq).all()):
-            raise ValueError(
-                "Invalid input for linprog: A_eq must not contain values "
-                "inf, nan, or None")
-
-    try:
-        b_eq = _format_b_constraints(b_eq)
-    except ValueError as e:
-        raise TypeError(
-            "Invalid input for linprog: b_eq must be a dense, 1-D array of "
-            "numerical values, each representing the right hand side of an "
-            "equality constraint (row) in A_eq") from e
-    else:
-        if b_eq.shape != (n_eq,):
-            raise ValueError(
-                "Invalid input for linprog: b_eq must be a 1-D array; b_eq "
-                "must not have more than one non-singleton dimension and "
-                "the number of rows in A_eq must equal the number of values "
-                "in b_eq")
-        if not np.isfinite(b_eq).all():
-            raise ValueError(
-                "Invalid input for linprog: b_eq must not contain values "
-                "inf, nan, or None")
-
-    # x0 gives a (optional) starting solution to the solver. If x0 is None,
-    # skip the checks. Initial solution will be generated automatically.
-    if x0 is not None:
-        try:
-            x0 = np.array(x0, dtype=float, copy=True).squeeze()
-        except ValueError as e:
-            raise TypeError(
-                "Invalid input for linprog: x0 must be a 1-D array of "
-                "numerical coefficients") from e
-        if x0.ndim == 0:
-            x0 = x0.reshape(-1)
-        if len(x0) == 0 or x0.ndim != 1:
-            raise ValueError(
-                "Invalid input for linprog: x0 should be a 1-D array; it "
-                "must not have more than one non-singleton dimension")
-        if not x0.size == c.size:
-            raise ValueError(
-                "Invalid input for linprog: x0 and c should contain the "
-                "same number of elements")
-        if not np.isfinite(x0).all():
-            raise ValueError(
-                "Invalid input for linprog: x0 must not contain values "
-                "inf, nan, or None")
-
-    # Bounds can be one of these formats:
-    # (1) a 2-D array or sequence, with shape N x 2
-    # (2) a 1-D or 2-D sequence or array with 2 scalars
-    # (3) None (or an empty sequence or array)
-    # Unspecified bounds can be represented by None or (-)np.inf.
-    # All formats are converted into a N x 2 np.array with (-)np.inf where
-    # bounds are unspecified.
-
-    # Prepare clean bounds array
-    bounds_clean = np.zeros((n_x, 2), dtype=float)
-
-    # Convert to a numpy array.
-    # np.array(..,dtype=float) raises an error if dimensions are inconsistent
-    # or if there are invalid data types in bounds. Just add a linprog prefix
-    # to the error and re-raise.
-    # Creating at least a 2-D array simplifies the cases to distinguish below.
-    if bounds is None or np.array_equal(bounds, []) or np.array_equal(bounds, [[]]):
-        bounds = (0, np.inf)
-    try:
-        bounds_conv = np.atleast_2d(np.array(bounds, dtype=float))
-    except ValueError as e:
-        raise ValueError(
-            "Invalid input for linprog: unable to interpret bounds, "
-            "check values and dimensions: " + e.args[0]) from e
-    except TypeError as e:
-        raise TypeError(
-            "Invalid input for linprog: unable to interpret bounds, "
-            "check values and dimensions: " + e.args[0]) from e
-
-    # Check bounds options
-    bsh = bounds_conv.shape
-    if len(bsh) > 2:
-        # Do not try to handle multidimensional bounds input
-        raise ValueError(
-            "Invalid input for linprog: provide a 2-D array for bounds, "
-            f"not a {len(bsh):d}-D array.")
-    elif np.all(bsh == (n_x, 2)):
-        # Regular N x 2 array
-        bounds_clean = bounds_conv
-    elif (np.all(bsh == (2, 1)) or np.all(bsh == (1, 2))):
-        # 2 values: interpret as overall lower and upper bound
-        bounds_flat = bounds_conv.flatten()
-        bounds_clean[:, 0] = bounds_flat[0]
-        bounds_clean[:, 1] = bounds_flat[1]
-    elif np.all(bsh == (2, n_x)):
-        # Reject a 2 x N array
-        raise ValueError(
-            f"Invalid input for linprog: provide a {n_x:d} x 2 array for bounds, "
-            f"not a 2 x {n_x:d} array.")
-    else:
-        raise ValueError(
-            "Invalid input for linprog: unable to interpret bounds with this "
-            f"dimension tuple: {bsh}.")
-
-    # The process above creates nan-s where the input specified None
-    # Convert the nan-s in the 1st column to -np.inf and in the 2nd column
-    # to np.inf
-    i_none = np.isnan(bounds_clean[:, 0])
-    bounds_clean[i_none, 0] = -np.inf
-    i_none = np.isnan(bounds_clean[:, 1])
-    bounds_clean[i_none, 1] = np.inf
-
-    return _LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds_clean, x0, integrality)
-
-
-def _presolve(lp, rr, rr_method, tol=1e-9):
-    """
-    Given inputs for a linear programming problem in preferred format,
-    presolve the problem: identify trivial infeasibilities, redundancies,
-    and unboundedness, tighten bounds where possible, and eliminate fixed
-    variables.
-
-    Parameters
-    ----------
-    lp : A `scipy.optimize._linprog_util._LPProblem` consisting of the following fields:
-
-        c : 1D array
-            The coefficients of the linear objective function to be minimized.
-        A_ub : 2D array, optional
-            The inequality constraint matrix. Each row of ``A_ub`` specifies the
-            coefficients of a linear inequality constraint on ``x``.
-        b_ub : 1D array, optional
-            The inequality constraint vector. Each element represents an
-            upper bound on the corresponding value of ``A_ub @ x``.
-        A_eq : 2D array, optional
-            The equality constraint matrix. Each row of ``A_eq`` specifies the
-            coefficients of a linear equality constraint on ``x``.
-        b_eq : 1D array, optional
-            The equality constraint vector. Each element of ``A_eq @ x`` must equal
-            the corresponding element of ``b_eq``.
-        bounds : 2D array
-            The bounds of ``x``, as ``min`` and ``max`` pairs, one for each of the N
-            elements of ``x``. The N x 2 array contains lower bounds in the first
-            column and upper bounds in the 2nd. Unbounded variables have lower
-            bound -np.inf and/or upper bound np.inf.
-        x0 : 1D array, optional
-            Guess values of the decision variables, which will be refined by
-            the optimization algorithm. This argument is currently used only by the
-            'revised simplex' method, and can only be used if `x0` represents a
-            basic feasible solution.
-
-    rr : bool
-        If ``True`` attempts to eliminate any redundant rows in ``A_eq``.
-        Set False if ``A_eq`` is known to be of full row rank, or if you are
-        looking for a potential speedup (at the expense of reliability).
-    rr_method : string
-        Method used to identify and remove redundant rows from the
-        equality constraint matrix after presolve.
-    tol : float
-        The tolerance which determines when a solution is "close enough" to
-        zero in Phase 1 to be considered a basic feasible solution or close
-        enough to positive to serve as an optimal solution.
-
-    Returns
-    -------
-    lp : A `scipy.optimize._linprog_util._LPProblem` consisting of the following fields:
-
-        c : 1D array
-            The coefficients of the linear objective function to be minimized.
-        A_ub : 2D array, optional
-            The inequality constraint matrix. Each row of ``A_ub`` specifies the
-            coefficients of a linear inequality constraint on ``x``.
-        b_ub : 1D array, optional
-            The inequality constraint vector. Each element represents an
-            upper bound on the corresponding value of ``A_ub @ x``.
-        A_eq : 2D array, optional
-            The equality constraint matrix. Each row of ``A_eq`` specifies the
-            coefficients of a linear equality constraint on ``x``.
-        b_eq : 1D array, optional
-            The equality constraint vector. Each element of ``A_eq @ x`` must equal
-            the corresponding element of ``b_eq``.
-        bounds : 2D array
-            The bounds of ``x``, as ``min`` and ``max`` pairs, possibly tightened.
-        x0 : 1D array, optional
-            Guess values of the decision variables, which will be refined by
-            the optimization algorithm. This argument is currently used only by the
-            'revised simplex' method, and can only be used if `x0` represents a
-            basic feasible solution.
-
-    c0 : 1D array
-        Constant term in objective function due to fixed (and eliminated)
-        variables.
-    x : 1D array
-        Solution vector (when the solution is trivial and can be determined
-        in presolve)
-    revstack: list of functions
-        the functions in the list reverse the operations of _presolve()
-        the function signature is x_org = f(x_mod), where x_mod is the result
-        of a presolve step and x_org the value at the start of the step
-        (currently, the revstack contains only one function)
-    complete: bool
-        Whether the solution is complete (solved or determined to be infeasible
-        or unbounded in presolve)
-    status : int
-        An integer representing the exit status of the optimization::
-
-         0 : Optimization terminated successfully
-         1 : Iteration limit reached
-         2 : Problem appears to be infeasible
-         3 : Problem appears to be unbounded
-         4 : Serious numerical difficulties encountered
-
-    message : str
-        A string descriptor of the exit status of the optimization.
-
-    References
-    ----------
-    .. [5] Andersen, Erling D. "Finding all linearly dependent rows in
-           large-scale linear programming." Optimization Methods and Software
-           6.3 (1995): 219-227.
-    .. [8] Andersen, Erling D., and Knud D. Andersen. "Presolving in linear
-           programming." Mathematical Programming 71.2 (1995): 221-245.
-
-    """
-    # ideas from Reference [5] by Andersen and Andersen
-    # however, unlike the reference, this is performed before converting
-    # problem to standard form
-    # There are a few advantages:
-    #  * artificial variables have not been added, so matrices are smaller
-    #  * bounds have not been converted to constraints yet. (It is better to
-    #    do that after presolve because presolve may adjust the simple bounds.)
-    # There are many improvements that can be made, namely:
-    #  * implement remaining checks from [5]
-    #  * loop presolve until no additional changes are made
-    #  * implement additional efficiency improvements in redundancy removal [2]
-
-    c, A_ub, b_ub, A_eq, b_eq, bounds, x0, _ = lp
-
-    revstack = []               # record of variables eliminated from problem
-    # constant term in cost function may be added if variables are eliminated
-    c0 = 0
-    complete = False        # complete is True if detected infeasible/unbounded
-    x = np.zeros(c.shape)   # this is solution vector if completed in presolve
-
-    status = 0              # all OK unless determined otherwise
-    message = ""
-
-    # Lower and upper bounds. Copy to prevent feedback.
-    lb = bounds[:, 0].copy()
-    ub = bounds[:, 1].copy()
-
-    m_eq, n = A_eq.shape
-    m_ub, n = A_ub.shape
-
-    if (rr_method is not None
-            and rr_method.lower() not in {"svd", "pivot", "id"}):
-        message = ("'" + str(rr_method) + "' is not a valid option "
-                   "for redundancy removal. Valid options are 'SVD', "
-                   "'pivot', and 'ID'.")
-        raise ValueError(message)
-
-    if sps.issparse(A_eq):
-        A_eq = A_eq.tocsr()
-        A_ub = A_ub.tocsr()
-
-        def where(A):
-            return A.nonzero()
-
-        vstack = sps.vstack
-    else:
-        where = np.where
-        vstack = np.vstack
-
-    # upper bounds > lower bounds
-    if np.any(ub < lb) or np.any(lb == np.inf) or np.any(ub == -np.inf):
-        status = 2
-        message = ("The problem is (trivially) infeasible since one "
-                   "or more upper bounds are smaller than the corresponding "
-                   "lower bounds, a lower bound is np.inf or an upper bound "
-                   "is -np.inf.")
-        complete = True
-        return (_LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds, x0),
-                c0, x, revstack, complete, status, message)
-
-    # zero row in equality constraints
-    zero_row = np.array(np.sum(A_eq != 0, axis=1) == 0).flatten()
-    if np.any(zero_row):
-        if np.any(
-            np.logical_and(
-                zero_row,
-                np.abs(b_eq) > tol)):  # test_zero_row_1
-            # infeasible if RHS is not zero
-            status = 2
-            message = ("The problem is (trivially) infeasible due to a row "
-                       "of zeros in the equality constraint matrix with a "
-                       "nonzero corresponding constraint value.")
-            complete = True
-            return (_LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds, x0),
-                    c0, x, revstack, complete, status, message)
-        else:  # test_zero_row_2
-            # if RHS is zero, we can eliminate this equation entirely
-            A_eq = A_eq[np.logical_not(zero_row), :]
-            b_eq = b_eq[np.logical_not(zero_row)]
-
-    # zero row in inequality constraints
-    zero_row = np.array(np.sum(A_ub != 0, axis=1) == 0).flatten()
-    if np.any(zero_row):
-        if np.any(np.logical_and(zero_row, b_ub < -tol)):  # test_zero_row_1
-            # infeasible if RHS is less than zero (because LHS is zero)
-            status = 2
-            message = ("The problem is (trivially) infeasible due to a row "
-                       "of zeros in the equality constraint matrix with a "
-                       "nonzero corresponding  constraint value.")
-            complete = True
-            return (_LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds, x0),
-                    c0, x, revstack, complete, status, message)
-        else:  # test_zero_row_2
-            # if LHS is >= 0, we can eliminate this constraint entirely
-            A_ub = A_ub[np.logical_not(zero_row), :]
-            b_ub = b_ub[np.logical_not(zero_row)]
-
-    # zero column in (both) constraints
-    # this indicates that a variable isn't constrained and can be removed
-    A = vstack((A_eq, A_ub))
-    if A.shape[0] > 0:
-        zero_col = np.array(np.sum(A != 0, axis=0) == 0).flatten()
-        # variable will be at upper or lower bound, depending on objective
-        x[np.logical_and(zero_col, c < 0)] = ub[
-            np.logical_and(zero_col, c < 0)]
-        x[np.logical_and(zero_col, c > 0)] = lb[
-            np.logical_and(zero_col, c > 0)]
-        if np.any(np.isinf(x)):  # if an unconstrained variable has no bound
-            status = 3
-            message = ("If feasible, the problem is (trivially) unbounded "
-                       "due  to a zero column in the constraint matrices. If "
-                       "you wish to check whether the problem is infeasible, "
-                       "turn presolve off.")
-            complete = True
-            return (_LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds, x0),
-                    c0, x, revstack, complete, status, message)
-        # variables will equal upper/lower bounds will be removed later
-        lb[np.logical_and(zero_col, c < 0)] = ub[
-            np.logical_and(zero_col, c < 0)]
-        ub[np.logical_and(zero_col, c > 0)] = lb[
-            np.logical_and(zero_col, c > 0)]
-
-    # row singleton in equality constraints
-    # this fixes a variable and removes the constraint
-    singleton_row = np.array(np.sum(A_eq != 0, axis=1) == 1).flatten()
-    rows = where(singleton_row)[0]
-    cols = where(A_eq[rows, :])[1]
-    if len(rows) > 0:
-        for row, col in zip(rows, cols):
-            val = b_eq[row] / A_eq[row, col]
-            if not lb[col] - tol <= val <= ub[col] + tol:
-                # infeasible if fixed value is not within bounds
-                status = 2
-                message = ("The problem is (trivially) infeasible because a "
-                           "singleton row in the equality constraints is "
-                           "inconsistent with the bounds.")
-                complete = True
-                return (_LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds, x0),
-                        c0, x, revstack, complete, status, message)
-            else:
-                # sets upper and lower bounds at that fixed value - variable
-                # will be removed later
-                lb[col] = val
-                ub[col] = val
-        A_eq = A_eq[np.logical_not(singleton_row), :]
-        b_eq = b_eq[np.logical_not(singleton_row)]
-
-    # row singleton in inequality constraints
-    # this indicates a simple bound and the constraint can be removed
-    # simple bounds may be adjusted here
-    # After all of the simple bound information is combined here, get_Abc will
-    # turn the simple bounds into constraints
-    singleton_row = np.array(np.sum(A_ub != 0, axis=1) == 1).flatten()
-    cols = where(A_ub[singleton_row, :])[1]
-    rows = where(singleton_row)[0]
-    if len(rows) > 0:
-        for row, col in zip(rows, cols):
-            val = b_ub[row] / A_ub[row, col]
-            if A_ub[row, col] > 0:  # upper bound
-                if val < lb[col] - tol:  # infeasible
-                    complete = True
-                elif val < ub[col]:  # new upper bound
-                    ub[col] = val
-            else:  # lower bound
-                if val > ub[col] + tol:  # infeasible
-                    complete = True
-                elif val > lb[col]:  # new lower bound
-                    lb[col] = val
-            if complete:
-                status = 2
-                message = ("The problem is (trivially) infeasible because a "
-                           "singleton row in the upper bound constraints is "
-                           "inconsistent with the bounds.")
-                return (_LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds, x0),
-                        c0, x, revstack, complete, status, message)
-        A_ub = A_ub[np.logical_not(singleton_row), :]
-        b_ub = b_ub[np.logical_not(singleton_row)]
-
-    # identical bounds indicate that variable can be removed
-    i_f = np.abs(lb - ub) < tol   # indices of "fixed" variables
-    i_nf = np.logical_not(i_f)  # indices of "not fixed" variables
-
-    # test_bounds_equal_but_infeasible
-    if np.all(i_f):  # if bounds define solution, check for consistency
-        residual = b_eq - A_eq.dot(lb)
-        slack = b_ub - A_ub.dot(lb)
-        if ((A_ub.size > 0 and np.any(slack < 0)) or
-                (A_eq.size > 0 and not np.allclose(residual, 0))):
-            status = 2
-            message = ("The problem is (trivially) infeasible because the "
-                       "bounds fix all variables to values inconsistent with "
-                       "the constraints")
-            complete = True
-            return (_LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds, x0),
-                    c0, x, revstack, complete, status, message)
-
-    ub_mod = ub
-    lb_mod = lb
-    if np.any(i_f):
-        c0 += c[i_f].dot(lb[i_f])
-        b_eq = b_eq - A_eq[:, i_f].dot(lb[i_f])
-        b_ub = b_ub - A_ub[:, i_f].dot(lb[i_f])
-        c = c[i_nf]
-        x_undo = lb[i_f]  # not x[i_f], x is just zeroes
-        x = x[i_nf]
-        # user guess x0 stays separate from presolve solution x
-        if x0 is not None:
-            x0 = x0[i_nf]
-        A_eq = A_eq[:, i_nf]
-        A_ub = A_ub[:, i_nf]
-        # modify bounds
-        lb_mod = lb[i_nf]
-        ub_mod = ub[i_nf]
-
-        def rev(x_mod):
-            # Function to restore x: insert x_undo into x_mod.
-            # When elements have been removed at positions k1, k2, k3, ...
-            # then these must be replaced at (after) positions k1-1, k2-2,
-            # k3-3, ... in the modified array to recreate the original
-            i = np.flatnonzero(i_f)
-            # Number of variables to restore
-            N = len(i)
-            index_offset = np.arange(N)
-            # Create insert indices
-            insert_indices = i - index_offset
-            x_rev = np.insert(x_mod.astype(float), insert_indices, x_undo)
-            return x_rev
-
-        # Use revstack as a list of functions, currently just this one.
-        revstack.append(rev)
-
-    # no constraints indicates that problem is trivial
-    if A_eq.size == 0 and A_ub.size == 0:
-        b_eq = np.array([])
-        b_ub = np.array([])
-        # test_empty_constraint_1
-        if c.size == 0:
-            status = 0
-            message = ("The solution was determined in presolve as there are "
-                       "no non-trivial constraints.")
-        elif (np.any(np.logical_and(c < 0, ub_mod == np.inf)) or
-              np.any(np.logical_and(c > 0, lb_mod == -np.inf))):
-            # test_no_constraints()
-            # test_unbounded_no_nontrivial_constraints_1
-            # test_unbounded_no_nontrivial_constraints_2
-            status = 3
-            message = ("The problem is (trivially) unbounded "
-                       "because there are no non-trivial constraints and "
-                       "a) at least one decision variable is unbounded "
-                       "above and its corresponding cost is negative, or "
-                       "b) at least one decision variable is unbounded below "
-                       "and its corresponding cost is positive. ")
-        else:  # test_empty_constraint_2
-            status = 0
-            message = ("The solution was determined in presolve as there are "
-                       "no non-trivial constraints.")
-        complete = True
-        x[c < 0] = ub_mod[c < 0]
-        x[c > 0] = lb_mod[c > 0]
-        # where c is zero, set x to a finite bound or zero
-        x_zero_c = ub_mod[c == 0]
-        x_zero_c[np.isinf(x_zero_c)] = ub_mod[c == 0][np.isinf(x_zero_c)]
-        x_zero_c[np.isinf(x_zero_c)] = 0
-        x[c == 0] = x_zero_c
-        # if this is not the last step of presolve, should convert bounds back
-        # to array and return here
-
-    # Convert modified lb and ub back into N x 2 bounds
-    bounds = np.hstack((lb_mod[:, np.newaxis], ub_mod[:, np.newaxis]))
-
-    # remove redundant (linearly dependent) rows from equality constraints
-    n_rows_A = A_eq.shape[0]
-    redundancy_warning = ("A_eq does not appear to be of full row rank. To "
-                          "improve performance, check the problem formulation "
-                          "for redundant equality constraints.")
-    if (sps.issparse(A_eq)):
-        if rr and A_eq.size > 0:  # TODO: Fast sparse rank check?
-            rr_res = _remove_redundancy_pivot_sparse(A_eq, b_eq)
-            A_eq, b_eq, status, message = rr_res
-            if A_eq.shape[0] < n_rows_A:
-                warn(redundancy_warning, OptimizeWarning, stacklevel=1)
-            if status != 0:
-                complete = True
-        return (_LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds, x0),
-                c0, x, revstack, complete, status, message)
-
-    # This is a wild guess for which redundancy removal algorithm will be
-    # faster. More testing would be good.
-    small_nullspace = 5
-    if rr and A_eq.size > 0:
-        try:  # TODO: use results of first SVD in _remove_redundancy_svd
-            rank = np.linalg.matrix_rank(A_eq)
-        # oh well, we'll have to go with _remove_redundancy_pivot_dense
-        except Exception:
-            rank = 0
-    if rr and A_eq.size > 0 and rank < A_eq.shape[0]:
-        warn(redundancy_warning, OptimizeWarning, stacklevel=3)
-        dim_row_nullspace = A_eq.shape[0]-rank
-        if rr_method is None:
-            if dim_row_nullspace <= small_nullspace:
-                rr_res = _remove_redundancy_svd(A_eq, b_eq)
-                A_eq, b_eq, status, message = rr_res
-            if dim_row_nullspace > small_nullspace or status == 4:
-                rr_res = _remove_redundancy_pivot_dense(A_eq, b_eq)
-                A_eq, b_eq, status, message = rr_res
-
-        else:
-            rr_method = rr_method.lower()
-            if rr_method == "svd":
-                rr_res = _remove_redundancy_svd(A_eq, b_eq)
-                A_eq, b_eq, status, message = rr_res
-            elif rr_method == "pivot":
-                rr_res = _remove_redundancy_pivot_dense(A_eq, b_eq)
-                A_eq, b_eq, status, message = rr_res
-            elif rr_method == "id":
-                rr_res = _remove_redundancy_id(A_eq, b_eq, rank)
-                A_eq, b_eq, status, message = rr_res
-            else:  # shouldn't get here; option validity checked above
-                pass
-        if A_eq.shape[0] < rank:
-            message = ("Due to numerical issues, redundant equality "
-                       "constraints could not be removed automatically. "
-                       "Try providing your constraint matrices as sparse "
-                       "matrices to activate sparse presolve, try turning "
-                       "off redundancy removal, or try turning off presolve "
-                       "altogether.")
-            status = 4
-        if status != 0:
-            complete = True
-    return (_LPProblem(c, A_ub, b_ub, A_eq, b_eq, bounds, x0),
-            c0, x, revstack, complete, status, message)
-
-
-def _parse_linprog(lp, options, meth):
-    """
-    Parse the provided linear programming problem
-
-    ``_parse_linprog`` employs two main steps ``_check_sparse_inputs`` and
-    ``_clean_inputs``. ``_check_sparse_inputs`` checks for sparsity in the
-    provided constraints (``A_ub`` and ``A_eq) and if these match the provided
-    sparsity optional values.
-
-    ``_clean inputs`` checks of the provided inputs. If no violations are
-    identified the objective vector, upper bound constraints, equality
-    constraints, and simple bounds are returned in the expected format.
-
-    Parameters
-    ----------
-    lp : A `scipy.optimize._linprog_util._LPProblem` consisting of the following fields:
-
-        c : 1D array
-            The coefficients of the linear objective function to be minimized.
-        A_ub : 2D array, optional
-            The inequality constraint matrix. Each row of ``A_ub`` specifies the
-            coefficients of a linear inequality constraint on ``x``.
-        b_ub : 1D array, optional
-            The inequality constraint vector. Each element represents an
-            upper bound on the corresponding value of ``A_ub @ x``.
-        A_eq : 2D array, optional
-            The equality constraint matrix. Each row of ``A_eq`` specifies the
-            coefficients of a linear equality constraint on ``x``.
-        b_eq : 1D array, optional
-            The equality constraint vector. Each element of ``A_eq @ x`` must equal
-            the corresponding element of ``b_eq``.
-        bounds : various valid formats, optional
-            The bounds of ``x``, as ``min`` and ``max`` pairs.
-            If bounds are specified for all N variables separately, valid formats are:
-            * a 2D array (2 x N or N x 2);
-            * a sequence of N sequences, each with 2 values.
-            If all variables have the same bounds, a single pair of values can
-            be specified. Valid formats are:
-            * a sequence with 2 scalar values;
-            * a sequence with a single element containing 2 scalar values.
-            If all variables have a lower bound of 0 and no upper bound, the bounds
-            parameter can be omitted (or given as None).
-        x0 : 1D array, optional
-            Guess values of the decision variables, which will be refined by
-            the optimization algorithm. This argument is currently used only by the
-            'revised simplex' method, and can only be used if `x0` represents a
-            basic feasible solution.
-
-    options : dict
-        A dictionary of solver options. All methods accept the following
-        generic options:
-
-            maxiter : int
-                Maximum number of iterations to perform.
-            disp : bool
-                Set to True to print convergence messages.
-
-        For method-specific options, see :func:`show_options('linprog')`.
-
-    Returns
-    -------
-    lp : A `scipy.optimize._linprog_util._LPProblem` consisting of the following fields:
-
-        c : 1D array
-            The coefficients of the linear objective function to be minimized.
-        A_ub : 2D array, optional
-            The inequality constraint matrix. Each row of ``A_ub`` specifies the
-            coefficients of a linear inequality constraint on ``x``.
-        b_ub : 1D array, optional
-            The inequality constraint vector. Each element represents an
-            upper bound on the corresponding value of ``A_ub @ x``.
-        A_eq : 2D array, optional
-            The equality constraint matrix. Each row of ``A_eq`` specifies the
-            coefficients of a linear equality constraint on ``x``.
-        b_eq : 1D array, optional
-            The equality constraint vector. Each element of ``A_eq @ x`` must equal
-            the corresponding element of ``b_eq``.
-        bounds : 2D array
-            The bounds of ``x``, as ``min`` and ``max`` pairs, one for each of the N
-            elements of ``x``. The N x 2 array contains lower bounds in the first
-            column and upper bounds in the 2nd. Unbounded variables have lower
-            bound -np.inf and/or upper bound np.inf.
-        x0 : 1D array, optional
-            Guess values of the decision variables, which will be refined by
-            the optimization algorithm. This argument is currently used only by the
-            'revised simplex' method, and can only be used if `x0` represents a
-            basic feasible solution.
-
-    options : dict, optional
-        A dictionary of solver options. All methods accept the following
-        generic options:
-
-            maxiter : int
-                Maximum number of iterations to perform.
-            disp : bool
-                Set to True to print convergence messages.
-
-        For method-specific options, see :func:`show_options('linprog')`.
-
-    """
-    if options is None:
-        options = {}
-
-    solver_options = {k: v for k, v in options.items()}
-    solver_options, A_ub, A_eq = _check_sparse_inputs(solver_options, meth,
-                                                      lp.A_ub, lp.A_eq)
-    # Convert lists to numpy arrays, etc...
-    lp = _clean_inputs(lp._replace(A_ub=A_ub, A_eq=A_eq))
-    return lp, solver_options
-
-
-def _get_Abc(lp, c0):
-    """
-    Given a linear programming problem of the form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A_ub @ x <= b_ub
-        A_eq @ x == b_eq
-         lb <= x <= ub
-
-    where ``lb = 0`` and ``ub = None`` unless set in ``bounds``.
-
-    Return the problem in standard form:
-
-    Minimize::
-
-        c @ x
-
-    Subject to::
-
-        A @ x == b
-            x >= 0
-
-    by adding slack variables and making variable substitutions as necessary.
-
-    Parameters
-    ----------
-    lp : A `scipy.optimize._linprog_util._LPProblem` consisting of the following fields:
-
-        c : 1D array
-            The coefficients of the linear objective function to be minimized.
-        A_ub : 2D array, optional
-            The inequality constraint matrix. Each row of ``A_ub`` specifies the
-            coefficients of a linear inequality constraint on ``x``.
-        b_ub : 1D array, optional
-            The inequality constraint vector. Each element represents an
-            upper bound on the corresponding value of ``A_ub @ x``.
-        A_eq : 2D array, optional
-            The equality constraint matrix. Each row of ``A_eq`` specifies the
-            coefficients of a linear equality constraint on ``x``.
-        b_eq : 1D array, optional
-            The equality constraint vector. Each element of ``A_eq @ x`` must equal
-            the corresponding element of ``b_eq``.
-        bounds : 2D array
-            The bounds of ``x``, lower bounds in the 1st column, upper
-            bounds in the 2nd column. The bounds are possibly tightened
-            by the presolve procedure.
-        x0 : 1D array, optional
-            Guess values of the decision variables, which will be refined by
-            the optimization algorithm. This argument is currently used only by the
-            'revised simplex' method, and can only be used if `x0` represents a
-            basic feasible solution.
-
-    c0 : float
-        Constant term in objective function due to fixed (and eliminated)
-        variables.
-
-    Returns
-    -------
-    A : 2-D array
-        2-D array such that ``A`` @ ``x``, gives the values of the equality
-        constraints at ``x``.
-    b : 1-D array
-        1-D array of values representing the RHS of each equality constraint
-        (row) in A (for standard form problem).
-    c : 1-D array
-        Coefficients of the linear objective function to be minimized (for
-        standard form problem).
-    c0 : float
-        Constant term in objective function due to fixed (and eliminated)
-        variables.
-    x0 : 1-D array
-        Starting values of the independent variables, which will be refined by
-        the optimization algorithm
-
-    References
-    ----------
-    .. [9] Bertsimas, Dimitris, and J. Tsitsiklis. "Introduction to linear
-           programming." Athena Scientific 1 (1997): 997.
-
-    """
-    c, A_ub, b_ub, A_eq, b_eq, bounds, x0, integrality = lp
-
-    if sps.issparse(A_eq):
-        sparse = True
-        A_eq = sps.csr_matrix(A_eq)
-        A_ub = sps.csr_matrix(A_ub)
-
-        def hstack(blocks):
-            return sps.hstack(blocks, format="csr")
-
-        def vstack(blocks):
-            return sps.vstack(blocks, format="csr")
-
-        zeros = sps.csr_matrix
-        eye = sps.eye
-    else:
-        sparse = False
-        hstack = np.hstack
-        vstack = np.vstack
-        zeros = np.zeros
-        eye = np.eye
-
-    # Variables lbs and ubs (see below) may be changed, which feeds back into
-    # bounds, so copy.
-    bounds = np.array(bounds, copy=True)
-
-    # modify problem such that all variables have only non-negativity bounds
-    lbs = bounds[:, 0]
-    ubs = bounds[:, 1]
-    m_ub, n_ub = A_ub.shape
-
-    lb_none = np.equal(lbs, -np.inf)
-    ub_none = np.equal(ubs, np.inf)
-    lb_some = np.logical_not(lb_none)
-    ub_some = np.logical_not(ub_none)
-
-    # unbounded below: substitute xi = -xi' (unbounded above)
-    # if -inf <= xi <= ub, then -ub <= -xi <= inf, so swap and invert bounds
-    l_nolb_someub = np.logical_and(lb_none, ub_some)
-    i_nolb = np.nonzero(l_nolb_someub)[0]
-    lbs[l_nolb_someub], ubs[l_nolb_someub] = (
-        -ubs[l_nolb_someub], -lbs[l_nolb_someub])
-    lb_none = np.equal(lbs, -np.inf)
-    ub_none = np.equal(ubs, np.inf)
-    lb_some = np.logical_not(lb_none)
-    ub_some = np.logical_not(ub_none)
-    c[i_nolb] *= -1
-    if x0 is not None:
-        x0[i_nolb] *= -1
-    if len(i_nolb) > 0:
-        if A_ub.shape[0] > 0:  # sometimes needed for sparse arrays... weird
-            A_ub[:, i_nolb] *= -1
-        if A_eq.shape[0] > 0:
-            A_eq[:, i_nolb] *= -1
-
-    # upper bound: add inequality constraint
-    i_newub, = ub_some.nonzero()
-    ub_newub = ubs[ub_some]
-    n_bounds = len(i_newub)
-    if n_bounds > 0:
-        shape = (n_bounds, A_ub.shape[1])
-        if sparse:
-            idxs = (np.arange(n_bounds), i_newub)
-            A_ub = vstack((A_ub, sps.csr_matrix((np.ones(n_bounds), idxs),
-                                                shape=shape)))
-        else:
-            A_ub = vstack((A_ub, np.zeros(shape)))
-            A_ub[np.arange(m_ub, A_ub.shape[0]), i_newub] = 1
-        b_ub = np.concatenate((b_ub, np.zeros(n_bounds)))
-        b_ub[m_ub:] = ub_newub
-
-    A1 = vstack((A_ub, A_eq))
-    b = np.concatenate((b_ub, b_eq))
-    c = np.concatenate((c, np.zeros((A_ub.shape[0],))))
-    if x0 is not None:
-        x0 = np.concatenate((x0, np.zeros((A_ub.shape[0],))))
-    # unbounded: substitute xi = xi+ + xi-
-    l_free = np.logical_and(lb_none, ub_none)
-    i_free = np.nonzero(l_free)[0]
-    n_free = len(i_free)
-    c = np.concatenate((c, np.zeros(n_free)))
-    if x0 is not None:
-        x0 = np.concatenate((x0, np.zeros(n_free)))
-    A1 = hstack((A1[:, :n_ub], -A1[:, i_free]))
-    c[n_ub:n_ub+n_free] = -c[i_free]
-    if x0 is not None:
-        i_free_neg = x0[i_free] < 0
-        x0[np.arange(n_ub, A1.shape[1])[i_free_neg]] = -x0[i_free[i_free_neg]]
-        x0[i_free[i_free_neg]] = 0
-
-    # add slack variables
-    A2 = vstack([eye(A_ub.shape[0]), zeros((A_eq.shape[0], A_ub.shape[0]))])
-
-    A = hstack([A1, A2])
-
-    # lower bound: substitute xi = xi' + lb
-    # now there is a constant term in objective
-    i_shift = np.nonzero(lb_some)[0]
-    lb_shift = lbs[lb_some].astype(float)
-    c0 += np.sum(lb_shift * c[i_shift])
-    if sparse:
-        b = b.reshape(-1, 1)
-        A = A.tocsc()
-        b -= (A[:, i_shift] * sps.diags(lb_shift)).sum(axis=1)
-        b = b.ravel()
-    else:
-        b -= (A[:, i_shift] * lb_shift).sum(axis=1)
-    if x0 is not None:
-        x0[i_shift] -= lb_shift
-
-    return A, b, c, c0, x0
-
-
-def _round_to_power_of_two(x):
-    """
-    Round elements of the array to the nearest power of two.
-    """
-    return 2**np.around(np.log2(x))
-
-
-def _autoscale(A, b, c, x0):
-    """
-    Scales the problem according to equilibration from [12].
-    Also normalizes the right hand side vector by its maximum element.
-    """
-    m, n = A.shape
-
-    C = 1
-    R = 1
-
-    if A.size > 0:
-
-        R = np.max(np.abs(A), axis=1)
-        if sps.issparse(A):
-            R = R.toarray().flatten()
-        R[R == 0] = 1
-        R = 1/_round_to_power_of_two(R)
-        A = sps.diags(R)*A if sps.issparse(A) else A*R.reshape(m, 1)
-        b = b*R
-
-        C = np.max(np.abs(A), axis=0)
-        if sps.issparse(A):
-            C = C.toarray().flatten()
-        C[C == 0] = 1
-        C = 1/_round_to_power_of_two(C)
-        A = A*sps.diags(C) if sps.issparse(A) else A*C
-        c = c*C
-
-    b_scale = np.max(np.abs(b)) if b.size > 0 else 1
-    if b_scale == 0:
-        b_scale = 1.
-    b = b/b_scale
-
-    if x0 is not None:
-        x0 = x0/b_scale*(1/C)
-    return A, b, c, x0, C, b_scale
-
-
-def _unscale(x, C, b_scale):
-    """
-    Converts solution to _autoscale problem -> solution to original problem.
-    """
-
-    try:
-        n = len(C)
-        # fails if sparse or scalar; that's OK.
-        # this is only needed for original simplex (never sparse)
-    except TypeError:
-        n = len(x)
-
-    return x[:n]*b_scale*C
-
-
-def _display_summary(message, status, fun, iteration):
-    """
-    Print the termination summary of the linear program
-
-    Parameters
-    ----------
-    message : str
-            A string descriptor of the exit status of the optimization.
-    status : int
-        An integer representing the exit status of the optimization::
-
-                0 : Optimization terminated successfully
-                1 : Iteration limit reached
-                2 : Problem appears to be infeasible
-                3 : Problem appears to be unbounded
-                4 : Serious numerical difficulties encountered
-
-    fun : float
-        Value of the objective function.
-    iteration : iteration
-        The number of iterations performed.
-    """
-    print(message)
-    if status in (0, 1):
-        print(f"         Current function value: {fun: <12.6f}")
-    print(f"         Iterations: {iteration:d}")
-
-
-def _postsolve(x, postsolve_args, complete=False):
-    """
-    Given solution x to presolved, standard form linear program x, add
-    fixed variables back into the problem and undo the variable substitutions
-    to get solution to original linear program. Also, calculate the objective
-    function value, slack in original upper bound constraints, and residuals
-    in original equality constraints.
-
-    Parameters
-    ----------
-    x : 1-D array
-        Solution vector to the standard-form problem.
-    postsolve_args : tuple
-        Data needed by _postsolve to convert the solution to the standard-form
-        problem into the solution to the original problem, including:
-
-    lp : A `scipy.optimize._linprog_util._LPProblem` consisting of the following fields:
-
-        c : 1D array
-            The coefficients of the linear objective function to be minimized.
-        A_ub : 2D array, optional
-            The inequality constraint matrix. Each row of ``A_ub`` specifies the
-            coefficients of a linear inequality constraint on ``x``.
-        b_ub : 1D array, optional
-            The inequality constraint vector. Each element represents an
-            upper bound on the corresponding value of ``A_ub @ x``.
-        A_eq : 2D array, optional
-            The equality constraint matrix. Each row of ``A_eq`` specifies the
-            coefficients of a linear equality constraint on ``x``.
-        b_eq : 1D array, optional
-            The equality constraint vector. Each element of ``A_eq @ x`` must equal
-            the corresponding element of ``b_eq``.
-        bounds : 2D array
-            The bounds of ``x``, lower bounds in the 1st column, upper
-            bounds in the 2nd column. The bounds are possibly tightened
-            by the presolve procedure.
-        x0 : 1D array, optional
-            Guess values of the decision variables, which will be refined by
-            the optimization algorithm. This argument is currently used only by the
-            'revised simplex' method, and can only be used if `x0` represents a
-            basic feasible solution.
-
-    revstack: list of functions
-        the functions in the list reverse the operations of _presolve()
-        the function signature is x_org = f(x_mod), where x_mod is the result
-        of a presolve step and x_org the value at the start of the step
-    complete : bool
-        Whether the solution is was determined in presolve (``True`` if so)
-
-    Returns
-    -------
-    x : 1-D array
-        Solution vector to original linear programming problem
-    fun: float
-        optimal objective value for original problem
-    slack : 1-D array
-        The (non-negative) slack in the upper bound constraints, that is,
-        ``b_ub - A_ub @ x``
-    con : 1-D array
-        The (nominally zero) residuals of the equality constraints, that is,
-        ``b - A_eq @ x``
-    """
-    # note that all the inputs are the ORIGINAL, unmodified versions
-    # no rows, columns have been removed
-
-    c, A_ub, b_ub, A_eq, b_eq, bounds, x0, integrality = postsolve_args[0]
-    revstack, C, b_scale = postsolve_args[1:]
-
-    x = _unscale(x, C, b_scale)
-
-    # Undo variable substitutions of _get_Abc()
-    # if "complete", problem was solved in presolve; don't do anything here
-    n_x = bounds.shape[0]
-    if not complete and bounds is not None:  # bounds are never none, probably
-        n_unbounded = 0
-        for i, bi in enumerate(bounds):
-            lbi = bi[0]
-            ubi = bi[1]
-            if lbi == -np.inf and ubi == np.inf:
-                n_unbounded += 1
-                x[i] = x[i] - x[n_x + n_unbounded - 1]
-            else:
-                if lbi == -np.inf:
-                    x[i] = ubi - x[i]
-                else:
-                    x[i] += lbi
-    # all the rest of the variables were artificial
-    x = x[:n_x]
-
-    # If there were variables removed from the problem, add them back into the
-    # solution vector
-    # Apply the functions in revstack (reverse direction)
-    for rev in reversed(revstack):
-        x = rev(x)
-
-    fun = x.dot(c)
-    slack = b_ub - A_ub.dot(x)  # report slack for ORIGINAL UB constraints
-    # report residuals of ORIGINAL EQ constraints
-    con = b_eq - A_eq.dot(x)
-
-    return x, fun, slack, con
-
-
-def _check_result(x, fun, status, slack, con, bounds, tol, message,
-                  integrality):
-    """
-    Check the validity of the provided solution.
-
-    A valid (optimal) solution satisfies all bounds, all slack variables are
-    negative and all equality constraint residuals are strictly non-zero.
-    Further, the lower-bounds, upper-bounds, slack and residuals contain
-    no nan values.
-
-    Parameters
-    ----------
-    x : 1-D array
-        Solution vector to original linear programming problem
-    fun: float
-        optimal objective value for original problem
-    status : int
-        An integer representing the exit status of the optimization::
-
-             0 : Optimization terminated successfully
-             1 : Iteration limit reached
-             2 : Problem appears to be infeasible
-             3 : Problem appears to be unbounded
-             4 : Serious numerical difficulties encountered
-
-    slack : 1-D array
-        The (non-negative) slack in the upper bound constraints, that is,
-        ``b_ub - A_ub @ x``
-    con : 1-D array
-        The (nominally zero) residuals of the equality constraints, that is,
-        ``b - A_eq @ x``
-    bounds : 2D array
-        The bounds on the original variables ``x``
-    message : str
-        A string descriptor of the exit status of the optimization.
-    tol : float
-        Termination tolerance; see [1]_ Section 4.5.
-
-    Returns
-    -------
-    status : int
-        An integer representing the exit status of the optimization::
-
-             0 : Optimization terminated successfully
-             1 : Iteration limit reached
-             2 : Problem appears to be infeasible
-             3 : Problem appears to be unbounded
-             4 : Serious numerical difficulties encountered
-
-    message : str
-        A string descriptor of the exit status of the optimization.
-    """
-    # Somewhat arbitrary
-    tol = np.sqrt(tol) * 10
-
-    if x is None:
-        # HiGHS does not provide x if infeasible/unbounded
-        if status == 0:  # Observed with HiGHS Simplex Primal
-            status = 4
-            message = ("The solver did not provide a solution nor did it "
-                       "report a failure. Please submit a bug report.")
-        return status, message
-
-    contains_nans = (
-        np.isnan(x).any()
-        or np.isnan(fun)
-        or np.isnan(slack).any()
-        or np.isnan(con).any()
-    )
-
-    if contains_nans:
-        is_feasible = False
-    else:
-        if integrality is None:
-            integrality = 0
-        valid_bounds = (x >= bounds[:, 0] - tol) & (x <= bounds[:, 1] + tol)
-        # When integrality is 2 or 3, x must be within bounds OR take value 0
-        valid_bounds |= (integrality > 1) & np.isclose(x, 0, atol=tol)
-        invalid_bounds = not np.all(valid_bounds)
-
-        invalid_slack = status != 3 and (slack < -tol).any()
-        invalid_con = status != 3 and (np.abs(con) > tol).any()
-        is_feasible = not (invalid_bounds or invalid_slack or invalid_con)
-
-    if status == 0 and not is_feasible:
-        status = 4
-        message = ("The solution does not satisfy the constraints within the "
-                   "required tolerance of " + f"{tol:.2E}" + ", yet "
-                   "no errors were raised and there is no certificate of "
-                   "infeasibility or unboundedness. Check whether "
-                   "the slack and constraint residuals are acceptable; "
-                   "if not, consider enabling presolve, adjusting the "
-                   "tolerance option(s), and/or using a different method. "
-                   "Please consider submitting a bug report.")
-    elif status == 2 and is_feasible:
-        # Occurs if the simplex method exits after phase one with a very
-        # nearly basic feasible solution. Postsolving can make the solution
-        # basic, however, this solution is NOT optimal
-        status = 4
-        message = ("The solution is feasible, but the solver did not report "
-                   "that the solution was optimal. Please try a different "
-                   "method.")
-
-    return status, message
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsap.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsap.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index b2ea39a10549d1346bada989f573981804d22006..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsap.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__init__.py
deleted file mode 100644
index f60adcc891304e34ac9d85d108b6a232b4bf0c93..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-"""This module contains least-squares algorithms."""
-from .least_squares import least_squares
-from .lsq_linear import lsq_linear
-
-__all__ = ['least_squares', 'lsq_linear']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index a4708b3ea7f87b238c8e06a7f6ce3fb8205d75a9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/bvls.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/bvls.cpython-310.pyc
deleted file mode 100644
index e5875f76a64af1d5640d03f11afb778fee6cd014..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/bvls.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/common.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/common.cpython-310.pyc
deleted file mode 100644
index 7fd44c9e01235b592617b6775097802789cf03c9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/common.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/dogbox.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/dogbox.cpython-310.pyc
deleted file mode 100644
index b879e6286d96fa4d52a734af1e8870bf872107c7..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/dogbox.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/least_squares.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/least_squares.cpython-310.pyc
deleted file mode 100644
index 276442acc066b4f594a9a6a2ed22d72b914e8743..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/least_squares.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/lsq_linear.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/lsq_linear.cpython-310.pyc
deleted file mode 100644
index 339034b2cb554bb83260d8d0f7434b5cdcb27398..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/lsq_linear.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/trf.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/trf.cpython-310.pyc
deleted file mode 100644
index 3f39d66a23e2d8e3038825e638f9c48aad4fdcec..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/trf.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/trf_linear.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/trf_linear.cpython-310.pyc
deleted file mode 100644
index 5caff3e4fadd73d47c5dcfbc8b97e18e6e2e8cb2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/__pycache__/trf_linear.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/bvls.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/bvls.py
deleted file mode 100644
index 8f34ead4a1fc4edbb3c2ab50a204aa9a3cc21cff..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/bvls.py
+++ /dev/null
@@ -1,183 +0,0 @@
-"""Bounded-variable least-squares algorithm."""
-import numpy as np
-from numpy.linalg import norm, lstsq
-from scipy.optimize import OptimizeResult
-
-from .common import print_header_linear, print_iteration_linear
-
-
-def compute_kkt_optimality(g, on_bound):
-    """Compute the maximum violation of KKT conditions."""
-    g_kkt = g * on_bound
-    free_set = on_bound == 0
-    g_kkt[free_set] = np.abs(g[free_set])
-    return np.max(g_kkt)
-
-
-def bvls(A, b, x_lsq, lb, ub, tol, max_iter, verbose, rcond=None):
-    m, n = A.shape
-
-    x = x_lsq.copy()
-    on_bound = np.zeros(n)
-
-    mask = x <= lb
-    x[mask] = lb[mask]
-    on_bound[mask] = -1
-
-    mask = x >= ub
-    x[mask] = ub[mask]
-    on_bound[mask] = 1
-
-    free_set = on_bound == 0
-    active_set = ~free_set
-    free_set, = np.nonzero(free_set)
-
-    r = A.dot(x) - b
-    cost = 0.5 * np.dot(r, r)
-    initial_cost = cost
-    g = A.T.dot(r)
-
-    cost_change = None
-    step_norm = None
-    iteration = 0
-
-    if verbose == 2:
-        print_header_linear()
-
-    # This is the initialization loop. The requirement is that the
-    # least-squares solution on free variables is feasible before BVLS starts.
-    # One possible initialization is to set all variables to lower or upper
-    # bounds, but many iterations may be required from this state later on.
-    # The implemented ad-hoc procedure which intuitively should give a better
-    # initial state: find the least-squares solution on current free variables,
-    # if its feasible then stop, otherwise, set violating variables to
-    # corresponding bounds and continue on the reduced set of free variables.
-
-    while free_set.size > 0:
-        if verbose == 2:
-            optimality = compute_kkt_optimality(g, on_bound)
-            print_iteration_linear(iteration, cost, cost_change, step_norm,
-                                   optimality)
-
-        iteration += 1
-        x_free_old = x[free_set].copy()
-
-        A_free = A[:, free_set]
-        b_free = b - A.dot(x * active_set)
-        z = lstsq(A_free, b_free, rcond=rcond)[0]
-
-        lbv = z < lb[free_set]
-        ubv = z > ub[free_set]
-        v = lbv | ubv
-
-        if np.any(lbv):
-            ind = free_set[lbv]
-            x[ind] = lb[ind]
-            active_set[ind] = True
-            on_bound[ind] = -1
-
-        if np.any(ubv):
-            ind = free_set[ubv]
-            x[ind] = ub[ind]
-            active_set[ind] = True
-            on_bound[ind] = 1
-
-        ind = free_set[~v]
-        x[ind] = z[~v]
-
-        r = A.dot(x) - b
-        cost_new = 0.5 * np.dot(r, r)
-        cost_change = cost - cost_new
-        cost = cost_new
-        g = A.T.dot(r)
-        step_norm = norm(x[free_set] - x_free_old)
-
-        if np.any(v):
-            free_set = free_set[~v]
-        else:
-            break
-
-    if max_iter is None:
-        max_iter = n
-    max_iter += iteration
-
-    termination_status = None
-
-    # Main BVLS loop.
-
-    optimality = compute_kkt_optimality(g, on_bound)
-    for iteration in range(iteration, max_iter):  # BVLS Loop A
-        if verbose == 2:
-            print_iteration_linear(iteration, cost, cost_change,
-                                   step_norm, optimality)
-
-        if optimality < tol:
-            termination_status = 1
-
-        if termination_status is not None:
-            break
-
-        move_to_free = np.argmax(g * on_bound)
-        on_bound[move_to_free] = 0
-        
-        while True:   # BVLS Loop B
-
-            free_set = on_bound == 0
-            active_set = ~free_set
-            free_set, = np.nonzero(free_set)
-    
-            x_free = x[free_set]
-            x_free_old = x_free.copy()
-            lb_free = lb[free_set]
-            ub_free = ub[free_set]
-
-            A_free = A[:, free_set]
-            b_free = b - A.dot(x * active_set)
-            z = lstsq(A_free, b_free, rcond=rcond)[0]
-
-            lbv, = np.nonzero(z < lb_free)
-            ubv, = np.nonzero(z > ub_free)
-            v = np.hstack((lbv, ubv))
-
-            if v.size > 0:
-                alphas = np.hstack((
-                    lb_free[lbv] - x_free[lbv],
-                    ub_free[ubv] - x_free[ubv])) / (z[v] - x_free[v])
-
-                i = np.argmin(alphas)
-                i_free = v[i]
-                alpha = alphas[i]
-
-                x_free *= 1 - alpha
-                x_free += alpha * z
-                x[free_set] = x_free
-
-                if i < lbv.size:
-                    on_bound[free_set[i_free]] = -1
-                else:
-                    on_bound[free_set[i_free]] = 1
-            else:
-                x_free = z
-                x[free_set] = x_free
-                break
-
-        step_norm = norm(x_free - x_free_old)
-
-        r = A.dot(x) - b
-        cost_new = 0.5 * np.dot(r, r)
-        cost_change = cost - cost_new
-
-        if cost_change < tol * cost:
-            termination_status = 2
-        cost = cost_new
-
-        g = A.T.dot(r)
-        optimality = compute_kkt_optimality(g, on_bound)
-
-    if termination_status is None:
-        termination_status = 0
-
-    return OptimizeResult(
-        x=x, fun=r, cost=cost, optimality=optimality, active_mask=on_bound,
-        nit=iteration + 1, status=termination_status,
-        initial_cost=initial_cost)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/common.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/common.py
deleted file mode 100644
index 995c3b64ea64670463083ae41ba038f61338cdef..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/common.py
+++ /dev/null
@@ -1,733 +0,0 @@
-"""Functions used by least-squares algorithms."""
-from math import copysign
-
-import numpy as np
-from numpy.linalg import norm
-
-from scipy.linalg import cho_factor, cho_solve, LinAlgError
-from scipy.sparse import issparse
-from scipy.sparse.linalg import LinearOperator, aslinearoperator
-
-
-EPS = np.finfo(float).eps
-
-
-# Functions related to a trust-region problem.
-
-
-def intersect_trust_region(x, s, Delta):
-    """Find the intersection of a line with the boundary of a trust region.
-
-    This function solves the quadratic equation with respect to t
-    ||(x + s*t)||**2 = Delta**2.
-
-    Returns
-    -------
-    t_neg, t_pos : tuple of float
-        Negative and positive roots.
-
-    Raises
-    ------
-    ValueError
-        If `s` is zero or `x` is not within the trust region.
-    """
-    a = np.dot(s, s)
-    if a == 0:
-        raise ValueError("`s` is zero.")
-
-    b = np.dot(x, s)
-
-    c = np.dot(x, x) - Delta**2
-    if c > 0:
-        raise ValueError("`x` is not within the trust region.")
-
-    d = np.sqrt(b*b - a*c)  # Root from one fourth of the discriminant.
-
-    # Computations below avoid loss of significance, see "Numerical Recipes".
-    q = -(b + copysign(d, b))
-    t1 = q / a
-    t2 = c / q
-
-    if t1 < t2:
-        return t1, t2
-    else:
-        return t2, t1
-
-
-def solve_lsq_trust_region(n, m, uf, s, V, Delta, initial_alpha=None,
-                           rtol=0.01, max_iter=10):
-    """Solve a trust-region problem arising in least-squares minimization.
-
-    This function implements a method described by J. J. More [1]_ and used
-    in MINPACK, but it relies on a single SVD of Jacobian instead of series
-    of Cholesky decompositions. Before running this function, compute:
-    ``U, s, VT = svd(J, full_matrices=False)``.
-
-    Parameters
-    ----------
-    n : int
-        Number of variables.
-    m : int
-        Number of residuals.
-    uf : ndarray
-        Computed as U.T.dot(f).
-    s : ndarray
-        Singular values of J.
-    V : ndarray
-        Transpose of VT.
-    Delta : float
-        Radius of a trust region.
-    initial_alpha : float, optional
-        Initial guess for alpha, which might be available from a previous
-        iteration. If None, determined automatically.
-    rtol : float, optional
-        Stopping tolerance for the root-finding procedure. Namely, the
-        solution ``p`` will satisfy ``abs(norm(p) - Delta) < rtol * Delta``.
-    max_iter : int, optional
-        Maximum allowed number of iterations for the root-finding procedure.
-
-    Returns
-    -------
-    p : ndarray, shape (n,)
-        Found solution of a trust-region problem.
-    alpha : float
-        Positive value such that (J.T*J + alpha*I)*p = -J.T*f.
-        Sometimes called Levenberg-Marquardt parameter.
-    n_iter : int
-        Number of iterations made by root-finding procedure. Zero means
-        that Gauss-Newton step was selected as the solution.
-
-    References
-    ----------
-    .. [1] More, J. J., "The Levenberg-Marquardt Algorithm: Implementation
-           and Theory," Numerical Analysis, ed. G. A. Watson, Lecture Notes
-           in Mathematics 630, Springer Verlag, pp. 105-116, 1977.
-    """
-    def phi_and_derivative(alpha, suf, s, Delta):
-        """Function of which to find zero.
-
-        It is defined as "norm of regularized (by alpha) least-squares
-        solution minus `Delta`". Refer to [1]_.
-        """
-        denom = s**2 + alpha
-        p_norm = norm(suf / denom)
-        phi = p_norm - Delta
-        phi_prime = -np.sum(suf ** 2 / denom**3) / p_norm
-        return phi, phi_prime
-
-    suf = s * uf
-
-    # Check if J has full rank and try Gauss-Newton step.
-    if m >= n:
-        threshold = EPS * m * s[0]
-        full_rank = s[-1] > threshold
-    else:
-        full_rank = False
-
-    if full_rank:
-        p = -V.dot(uf / s)
-        if norm(p) <= Delta:
-            return p, 0.0, 0
-
-    alpha_upper = norm(suf) / Delta
-
-    if full_rank:
-        phi, phi_prime = phi_and_derivative(0.0, suf, s, Delta)
-        alpha_lower = -phi / phi_prime
-    else:
-        alpha_lower = 0.0
-
-    if initial_alpha is None or not full_rank and initial_alpha == 0:
-        alpha = max(0.001 * alpha_upper, (alpha_lower * alpha_upper)**0.5)
-    else:
-        alpha = initial_alpha
-
-    for it in range(max_iter):
-        if alpha < alpha_lower or alpha > alpha_upper:
-            alpha = max(0.001 * alpha_upper, (alpha_lower * alpha_upper)**0.5)
-
-        phi, phi_prime = phi_and_derivative(alpha, suf, s, Delta)
-
-        if phi < 0:
-            alpha_upper = alpha
-
-        ratio = phi / phi_prime
-        alpha_lower = max(alpha_lower, alpha - ratio)
-        alpha -= (phi + Delta) * ratio / Delta
-
-        if np.abs(phi) < rtol * Delta:
-            break
-
-    p = -V.dot(suf / (s**2 + alpha))
-
-    # Make the norm of p equal to Delta, p is changed only slightly during
-    # this. It is done to prevent p lie outside the trust region (which can
-    # cause problems later).
-    p *= Delta / norm(p)
-
-    return p, alpha, it + 1
-
-
-def solve_trust_region_2d(B, g, Delta):
-    """Solve a general trust-region problem in 2 dimensions.
-
-    The problem is reformulated as a 4th order algebraic equation,
-    the solution of which is found by numpy.roots.
-
-    Parameters
-    ----------
-    B : ndarray, shape (2, 2)
-        Symmetric matrix, defines a quadratic term of the function.
-    g : ndarray, shape (2,)
-        Defines a linear term of the function.
-    Delta : float
-        Radius of a trust region.
-
-    Returns
-    -------
-    p : ndarray, shape (2,)
-        Found solution.
-    newton_step : bool
-        Whether the returned solution is the Newton step which lies within
-        the trust region.
-    """
-    try:
-        R, lower = cho_factor(B)
-        p = -cho_solve((R, lower), g)
-        if np.dot(p, p) <= Delta**2:
-            return p, True
-    except LinAlgError:
-        pass
-
-    a = B[0, 0] * Delta**2
-    b = B[0, 1] * Delta**2
-    c = B[1, 1] * Delta**2
-
-    d = g[0] * Delta
-    f = g[1] * Delta
-
-    coeffs = np.array(
-        [-b + d, 2 * (a - c + f), 6 * b, 2 * (-a + c + f), -b - d])
-    t = np.roots(coeffs)  # Can handle leading zeros.
-    t = np.real(t[np.isreal(t)])
-
-    p = Delta * np.vstack((2 * t / (1 + t**2), (1 - t**2) / (1 + t**2)))
-    value = 0.5 * np.sum(p * B.dot(p), axis=0) + np.dot(g, p)
-    i = np.argmin(value)
-    p = p[:, i]
-
-    return p, False
-
-
-def update_tr_radius(Delta, actual_reduction, predicted_reduction,
-                     step_norm, bound_hit):
-    """Update the radius of a trust region based on the cost reduction.
-
-    Returns
-    -------
-    Delta : float
-        New radius.
-    ratio : float
-        Ratio between actual and predicted reductions.
-    """
-    if predicted_reduction > 0:
-        ratio = actual_reduction / predicted_reduction
-    elif predicted_reduction == actual_reduction == 0:
-        ratio = 1
-    else:
-        ratio = 0
-
-    if ratio < 0.25:
-        Delta = 0.25 * step_norm
-    elif ratio > 0.75 and bound_hit:
-        Delta *= 2.0
-
-    return Delta, ratio
-
-
-# Construction and minimization of quadratic functions.
-
-
-def build_quadratic_1d(J, g, s, diag=None, s0=None):
-    """Parameterize a multivariate quadratic function along a line.
-
-    The resulting univariate quadratic function is given as follows::
-
-        f(t) = 0.5 * (s0 + s*t).T * (J.T*J + diag) * (s0 + s*t) +
-               g.T * (s0 + s*t)
-
-    Parameters
-    ----------
-    J : ndarray, sparse matrix or LinearOperator shape (m, n)
-        Jacobian matrix, affects the quadratic term.
-    g : ndarray, shape (n,)
-        Gradient, defines the linear term.
-    s : ndarray, shape (n,)
-        Direction vector of a line.
-    diag : None or ndarray with shape (n,), optional
-        Addition diagonal part, affects the quadratic term.
-        If None, assumed to be 0.
-    s0 : None or ndarray with shape (n,), optional
-        Initial point. If None, assumed to be 0.
-
-    Returns
-    -------
-    a : float
-        Coefficient for t**2.
-    b : float
-        Coefficient for t.
-    c : float
-        Free term. Returned only if `s0` is provided.
-    """
-    v = J.dot(s)
-    a = np.dot(v, v)
-    if diag is not None:
-        a += np.dot(s * diag, s)
-    a *= 0.5
-
-    b = np.dot(g, s)
-
-    if s0 is not None:
-        u = J.dot(s0)
-        b += np.dot(u, v)
-        c = 0.5 * np.dot(u, u) + np.dot(g, s0)
-        if diag is not None:
-            b += np.dot(s0 * diag, s)
-            c += 0.5 * np.dot(s0 * diag, s0)
-        return a, b, c
-    else:
-        return a, b
-
-
-def minimize_quadratic_1d(a, b, lb, ub, c=0):
-    """Minimize a 1-D quadratic function subject to bounds.
-
-    The free term `c` is 0 by default. Bounds must be finite.
-
-    Returns
-    -------
-    t : float
-        Minimum point.
-    y : float
-        Minimum value.
-    """
-    t = [lb, ub]
-    if a != 0:
-        extremum = -0.5 * b / a
-        if lb < extremum < ub:
-            t.append(extremum)
-    t = np.asarray(t)
-    y = t * (a * t + b) + c
-    min_index = np.argmin(y)
-    return t[min_index], y[min_index]
-
-
-def evaluate_quadratic(J, g, s, diag=None):
-    """Compute values of a quadratic function arising in least squares.
-
-    The function is 0.5 * s.T * (J.T * J + diag) * s + g.T * s.
-
-    Parameters
-    ----------
-    J : ndarray, sparse matrix or LinearOperator, shape (m, n)
-        Jacobian matrix, affects the quadratic term.
-    g : ndarray, shape (n,)
-        Gradient, defines the linear term.
-    s : ndarray, shape (k, n) or (n,)
-        Array containing steps as rows.
-    diag : ndarray, shape (n,), optional
-        Addition diagonal part, affects the quadratic term.
-        If None, assumed to be 0.
-
-    Returns
-    -------
-    values : ndarray with shape (k,) or float
-        Values of the function. If `s` was 2-D, then ndarray is
-        returned, otherwise, float is returned.
-    """
-    if s.ndim == 1:
-        Js = J.dot(s)
-        q = np.dot(Js, Js)
-        if diag is not None:
-            q += np.dot(s * diag, s)
-    else:
-        Js = J.dot(s.T)
-        q = np.sum(Js**2, axis=0)
-        if diag is not None:
-            q += np.sum(diag * s**2, axis=1)
-
-    l = np.dot(s, g)
-
-    return 0.5 * q + l
-
-
-# Utility functions to work with bound constraints.
-
-
-def in_bounds(x, lb, ub):
-    """Check if a point lies within bounds."""
-    return np.all((x >= lb) & (x <= ub))
-
-
-def step_size_to_bound(x, s, lb, ub):
-    """Compute a min_step size required to reach a bound.
-
-    The function computes a positive scalar t, such that x + s * t is on
-    the bound.
-
-    Returns
-    -------
-    step : float
-        Computed step. Non-negative value.
-    hits : ndarray of int with shape of x
-        Each element indicates whether a corresponding variable reaches the
-        bound:
-
-             *  0 - the bound was not hit.
-             * -1 - the lower bound was hit.
-             *  1 - the upper bound was hit.
-    """
-    non_zero = np.nonzero(s)
-    s_non_zero = s[non_zero]
-    steps = np.empty_like(x)
-    steps.fill(np.inf)
-    with np.errstate(over='ignore'):
-        steps[non_zero] = np.maximum((lb - x)[non_zero] / s_non_zero,
-                                     (ub - x)[non_zero] / s_non_zero)
-    min_step = np.min(steps)
-    return min_step, np.equal(steps, min_step) * np.sign(s).astype(int)
-
-
-def find_active_constraints(x, lb, ub, rtol=1e-10):
-    """Determine which constraints are active in a given point.
-
-    The threshold is computed using `rtol` and the absolute value of the
-    closest bound.
-
-    Returns
-    -------
-    active : ndarray of int with shape of x
-        Each component shows whether the corresponding constraint is active:
-
-             *  0 - a constraint is not active.
-             * -1 - a lower bound is active.
-             *  1 - a upper bound is active.
-    """
-    active = np.zeros_like(x, dtype=int)
-
-    if rtol == 0:
-        active[x <= lb] = -1
-        active[x >= ub] = 1
-        return active
-
-    lower_dist = x - lb
-    upper_dist = ub - x
-
-    lower_threshold = rtol * np.maximum(1, np.abs(lb))
-    upper_threshold = rtol * np.maximum(1, np.abs(ub))
-
-    lower_active = (np.isfinite(lb) &
-                    (lower_dist <= np.minimum(upper_dist, lower_threshold)))
-    active[lower_active] = -1
-
-    upper_active = (np.isfinite(ub) &
-                    (upper_dist <= np.minimum(lower_dist, upper_threshold)))
-    active[upper_active] = 1
-
-    return active
-
-
-def make_strictly_feasible(x, lb, ub, rstep=1e-10):
-    """Shift a point to the interior of a feasible region.
-
-    Each element of the returned vector is at least at a relative distance
-    `rstep` from the closest bound. If ``rstep=0`` then `np.nextafter` is used.
-    """
-    x_new = x.copy()
-
-    active = find_active_constraints(x, lb, ub, rstep)
-    lower_mask = np.equal(active, -1)
-    upper_mask = np.equal(active, 1)
-
-    if rstep == 0:
-        x_new[lower_mask] = np.nextafter(lb[lower_mask], ub[lower_mask])
-        x_new[upper_mask] = np.nextafter(ub[upper_mask], lb[upper_mask])
-    else:
-        x_new[lower_mask] = (lb[lower_mask] +
-                             rstep * np.maximum(1, np.abs(lb[lower_mask])))
-        x_new[upper_mask] = (ub[upper_mask] -
-                             rstep * np.maximum(1, np.abs(ub[upper_mask])))
-
-    tight_bounds = (x_new < lb) | (x_new > ub)
-    x_new[tight_bounds] = 0.5 * (lb[tight_bounds] + ub[tight_bounds])
-
-    return x_new
-
-
-def CL_scaling_vector(x, g, lb, ub):
-    """Compute Coleman-Li scaling vector and its derivatives.
-
-    Components of a vector v are defined as follows::
-
-               | ub[i] - x[i], if g[i] < 0 and ub[i] < np.inf
-        v[i] = | x[i] - lb[i], if g[i] > 0 and lb[i] > -np.inf
-               | 1,           otherwise
-
-    According to this definition v[i] >= 0 for all i. It differs from the
-    definition in paper [1]_ (eq. (2.2)), where the absolute value of v is
-    used. Both definitions are equivalent down the line.
-    Derivatives of v with respect to x take value 1, -1 or 0 depending on a
-    case.
-
-    Returns
-    -------
-    v : ndarray with shape of x
-        Scaling vector.
-    dv : ndarray with shape of x
-        Derivatives of v[i] with respect to x[i], diagonal elements of v's
-        Jacobian.
-
-    References
-    ----------
-    .. [1] M.A. Branch, T.F. Coleman, and Y. Li, "A Subspace, Interior,
-           and Conjugate Gradient Method for Large-Scale Bound-Constrained
-           Minimization Problems," SIAM Journal on Scientific Computing,
-           Vol. 21, Number 1, pp 1-23, 1999.
-    """
-    v = np.ones_like(x)
-    dv = np.zeros_like(x)
-
-    mask = (g < 0) & np.isfinite(ub)
-    v[mask] = ub[mask] - x[mask]
-    dv[mask] = -1
-
-    mask = (g > 0) & np.isfinite(lb)
-    v[mask] = x[mask] - lb[mask]
-    dv[mask] = 1
-
-    return v, dv
-
-
-def reflective_transformation(y, lb, ub):
-    """Compute reflective transformation and its gradient."""
-    if in_bounds(y, lb, ub):
-        return y, np.ones_like(y)
-
-    lb_finite = np.isfinite(lb)
-    ub_finite = np.isfinite(ub)
-
-    x = y.copy()
-    g_negative = np.zeros_like(y, dtype=bool)
-
-    mask = lb_finite & ~ub_finite
-    x[mask] = np.maximum(y[mask], 2 * lb[mask] - y[mask])
-    g_negative[mask] = y[mask] < lb[mask]
-
-    mask = ~lb_finite & ub_finite
-    x[mask] = np.minimum(y[mask], 2 * ub[mask] - y[mask])
-    g_negative[mask] = y[mask] > ub[mask]
-
-    mask = lb_finite & ub_finite
-    d = ub - lb
-    t = np.remainder(y[mask] - lb[mask], 2 * d[mask])
-    x[mask] = lb[mask] + np.minimum(t, 2 * d[mask] - t)
-    g_negative[mask] = t > d[mask]
-
-    g = np.ones_like(y)
-    g[g_negative] = -1
-
-    return x, g
-
-
-# Functions to display algorithm's progress.
-
-
-def print_header_nonlinear():
-    print("{:^15}{:^15}{:^15}{:^15}{:^15}{:^15}"
-          .format("Iteration", "Total nfev", "Cost", "Cost reduction",
-                  "Step norm", "Optimality"))
-
-
-def print_iteration_nonlinear(iteration, nfev, cost, cost_reduction,
-                              step_norm, optimality):
-    if cost_reduction is None:
-        cost_reduction = " " * 15
-    else:
-        cost_reduction = f"{cost_reduction:^15.2e}"
-
-    if step_norm is None:
-        step_norm = " " * 15
-    else:
-        step_norm = f"{step_norm:^15.2e}"
-
-    print("{:^15}{:^15}{:^15.4e}{}{}{:^15.2e}"
-          .format(iteration, nfev, cost, cost_reduction,
-                  step_norm, optimality))
-
-
-def print_header_linear():
-    print("{:^15}{:^15}{:^15}{:^15}{:^15}"
-          .format("Iteration", "Cost", "Cost reduction", "Step norm",
-                  "Optimality"))
-
-
-def print_iteration_linear(iteration, cost, cost_reduction, step_norm,
-                           optimality):
-    if cost_reduction is None:
-        cost_reduction = " " * 15
-    else:
-        cost_reduction = f"{cost_reduction:^15.2e}"
-
-    if step_norm is None:
-        step_norm = " " * 15
-    else:
-        step_norm = f"{step_norm:^15.2e}"
-
-    print(f"{iteration:^15}{cost:^15.4e}{cost_reduction}{step_norm}{optimality:^15.2e}")
-
-
-# Simple helper functions.
-
-
-def compute_grad(J, f):
-    """Compute gradient of the least-squares cost function."""
-    if isinstance(J, LinearOperator):
-        return J.rmatvec(f)
-    else:
-        return J.T.dot(f)
-
-
-def compute_jac_scale(J, scale_inv_old=None):
-    """Compute variables scale based on the Jacobian matrix."""
-    if issparse(J):
-        scale_inv = np.asarray(J.power(2).sum(axis=0)).ravel()**0.5
-    else:
-        scale_inv = np.sum(J**2, axis=0)**0.5
-
-    if scale_inv_old is None:
-        scale_inv[scale_inv == 0] = 1
-    else:
-        scale_inv = np.maximum(scale_inv, scale_inv_old)
-
-    return 1 / scale_inv, scale_inv
-
-
-def left_multiplied_operator(J, d):
-    """Return diag(d) J as LinearOperator."""
-    J = aslinearoperator(J)
-
-    def matvec(x):
-        return d * J.matvec(x)
-
-    def matmat(X):
-        return d[:, np.newaxis] * J.matmat(X)
-
-    def rmatvec(x):
-        return J.rmatvec(x.ravel() * d)
-
-    return LinearOperator(J.shape, matvec=matvec, matmat=matmat,
-                          rmatvec=rmatvec)
-
-
-def right_multiplied_operator(J, d):
-    """Return J diag(d) as LinearOperator."""
-    J = aslinearoperator(J)
-
-    def matvec(x):
-        return J.matvec(np.ravel(x) * d)
-
-    def matmat(X):
-        return J.matmat(X * d[:, np.newaxis])
-
-    def rmatvec(x):
-        return d * J.rmatvec(x)
-
-    return LinearOperator(J.shape, matvec=matvec, matmat=matmat,
-                          rmatvec=rmatvec)
-
-
-def regularized_lsq_operator(J, diag):
-    """Return a matrix arising in regularized least squares as LinearOperator.
-
-    The matrix is
-        [ J ]
-        [ D ]
-    where D is diagonal matrix with elements from `diag`.
-    """
-    J = aslinearoperator(J)
-    m, n = J.shape
-
-    def matvec(x):
-        return np.hstack((J.matvec(x), diag * x))
-
-    def rmatvec(x):
-        x1 = x[:m]
-        x2 = x[m:]
-        return J.rmatvec(x1) + diag * x2
-
-    return LinearOperator((m + n, n), matvec=matvec, rmatvec=rmatvec)
-
-
-def right_multiply(J, d, copy=True):
-    """Compute J diag(d).
-
-    If `copy` is False, `J` is modified in place (unless being LinearOperator).
-    """
-    if copy and not isinstance(J, LinearOperator):
-        J = J.copy()
-
-    if issparse(J):
-        J.data *= d.take(J.indices, mode='clip')  # scikit-learn recipe.
-    elif isinstance(J, LinearOperator):
-        J = right_multiplied_operator(J, d)
-    else:
-        J *= d
-
-    return J
-
-
-def left_multiply(J, d, copy=True):
-    """Compute diag(d) J.
-
-    If `copy` is False, `J` is modified in place (unless being LinearOperator).
-    """
-    if copy and not isinstance(J, LinearOperator):
-        J = J.copy()
-
-    if issparse(J):
-        J.data *= np.repeat(d, np.diff(J.indptr))  # scikit-learn recipe.
-    elif isinstance(J, LinearOperator):
-        J = left_multiplied_operator(J, d)
-    else:
-        J *= d[:, np.newaxis]
-
-    return J
-
-
-def check_termination(dF, F, dx_norm, x_norm, ratio, ftol, xtol):
-    """Check termination condition for nonlinear least squares."""
-    ftol_satisfied = dF < ftol * F and ratio > 0.25
-    xtol_satisfied = dx_norm < xtol * (xtol + x_norm)
-
-    if ftol_satisfied and xtol_satisfied:
-        return 4
-    elif ftol_satisfied:
-        return 2
-    elif xtol_satisfied:
-        return 3
-    else:
-        return None
-
-
-def scale_for_robust_loss_function(J, f, rho):
-    """Scale Jacobian and residuals for a robust loss function.
-
-    Arrays are modified in place.
-    """
-    J_scale = rho[1] + 2 * rho[2] * f**2
-    J_scale[J_scale < EPS] = EPS
-    J_scale **= 0.5
-
-    f *= rho[1] / J_scale
-
-    return left_multiply(J, J_scale, copy=False), f
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/dogbox.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/dogbox.py
deleted file mode 100644
index 6bb5abbe79028afed7b110603a0d5dfd6affae7f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/dogbox.py
+++ /dev/null
@@ -1,331 +0,0 @@
-"""
-Dogleg algorithm with rectangular trust regions for least-squares minimization.
-
-The description of the algorithm can be found in [Voglis]_. The algorithm does
-trust-region iterations, but the shape of trust regions is rectangular as
-opposed to conventional elliptical. The intersection of a trust region and
-an initial feasible region is again some rectangle. Thus, on each iteration a
-bound-constrained quadratic optimization problem is solved.
-
-A quadratic problem is solved by well-known dogleg approach, where the
-function is minimized along piecewise-linear "dogleg" path [NumOpt]_,
-Chapter 4. If Jacobian is not rank-deficient then the function is decreasing
-along this path, and optimization amounts to simply following along this
-path as long as a point stays within the bounds. A constrained Cauchy step
-(along the anti-gradient) is considered for safety in rank deficient cases,
-in this situations the convergence might be slow.
-
-If during iterations some variable hit the initial bound and the component
-of anti-gradient points outside the feasible region, then a next dogleg step
-won't make any progress. At this state such variables satisfy first-order
-optimality conditions and they are excluded before computing a next dogleg
-step.
-
-Gauss-Newton step can be computed exactly by `numpy.linalg.lstsq` (for dense
-Jacobian matrices) or by iterative procedure `scipy.sparse.linalg.lsmr` (for
-dense and sparse matrices, or Jacobian being LinearOperator). The second
-option allows to solve very large problems (up to couple of millions of
-residuals on a regular PC), provided the Jacobian matrix is sufficiently
-sparse. But note that dogbox is not very good for solving problems with
-large number of constraints, because of variables exclusion-inclusion on each
-iteration (a required number of function evaluations might be high or accuracy
-of a solution will be poor), thus its large-scale usage is probably limited
-to unconstrained problems.
-
-References
-----------
-.. [Voglis] C. Voglis and I. E. Lagaris, "A Rectangular Trust Region Dogleg
-            Approach for Unconstrained and Bound Constrained Nonlinear
-            Optimization", WSEAS International Conference on Applied
-            Mathematics, Corfu, Greece, 2004.
-.. [NumOpt] J. Nocedal and S. J. Wright, "Numerical optimization, 2nd edition".
-"""
-import numpy as np
-from numpy.linalg import lstsq, norm
-
-from scipy.sparse.linalg import LinearOperator, aslinearoperator, lsmr
-from scipy.optimize import OptimizeResult
-
-from .common import (
-    step_size_to_bound, in_bounds, update_tr_radius, evaluate_quadratic,
-    build_quadratic_1d, minimize_quadratic_1d, compute_grad,
-    compute_jac_scale, check_termination, scale_for_robust_loss_function,
-    print_header_nonlinear, print_iteration_nonlinear)
-
-
-def lsmr_operator(Jop, d, active_set):
-    """Compute LinearOperator to use in LSMR by dogbox algorithm.
-
-    `active_set` mask is used to excluded active variables from computations
-    of matrix-vector products.
-    """
-    m, n = Jop.shape
-
-    def matvec(x):
-        x_free = x.ravel().copy()
-        x_free[active_set] = 0
-        return Jop.matvec(x * d)
-
-    def rmatvec(x):
-        r = d * Jop.rmatvec(x)
-        r[active_set] = 0
-        return r
-
-    return LinearOperator((m, n), matvec=matvec, rmatvec=rmatvec, dtype=float)
-
-
-def find_intersection(x, tr_bounds, lb, ub):
-    """Find intersection of trust-region bounds and initial bounds.
-
-    Returns
-    -------
-    lb_total, ub_total : ndarray with shape of x
-        Lower and upper bounds of the intersection region.
-    orig_l, orig_u : ndarray of bool with shape of x
-        True means that an original bound is taken as a corresponding bound
-        in the intersection region.
-    tr_l, tr_u : ndarray of bool with shape of x
-        True means that a trust-region bound is taken as a corresponding bound
-        in the intersection region.
-    """
-    lb_centered = lb - x
-    ub_centered = ub - x
-
-    lb_total = np.maximum(lb_centered, -tr_bounds)
-    ub_total = np.minimum(ub_centered, tr_bounds)
-
-    orig_l = np.equal(lb_total, lb_centered)
-    orig_u = np.equal(ub_total, ub_centered)
-
-    tr_l = np.equal(lb_total, -tr_bounds)
-    tr_u = np.equal(ub_total, tr_bounds)
-
-    return lb_total, ub_total, orig_l, orig_u, tr_l, tr_u
-
-
-def dogleg_step(x, newton_step, g, a, b, tr_bounds, lb, ub):
-    """Find dogleg step in a rectangular region.
-
-    Returns
-    -------
-    step : ndarray, shape (n,)
-        Computed dogleg step.
-    bound_hits : ndarray of int, shape (n,)
-        Each component shows whether a corresponding variable hits the
-        initial bound after the step is taken:
-            *  0 - a variable doesn't hit the bound.
-            * -1 - lower bound is hit.
-            *  1 - upper bound is hit.
-    tr_hit : bool
-        Whether the step hit the boundary of the trust-region.
-    """
-    lb_total, ub_total, orig_l, orig_u, tr_l, tr_u = find_intersection(
-        x, tr_bounds, lb, ub
-    )
-    bound_hits = np.zeros_like(x, dtype=int)
-
-    if in_bounds(newton_step, lb_total, ub_total):
-        return newton_step, bound_hits, False
-
-    to_bounds, _ = step_size_to_bound(np.zeros_like(x), -g, lb_total, ub_total)
-
-    # The classical dogleg algorithm would check if Cauchy step fits into
-    # the bounds, and just return it constrained version if not. But in a
-    # rectangular trust region it makes sense to try to improve constrained
-    # Cauchy step too. Thus, we don't distinguish these two cases.
-
-    cauchy_step = -minimize_quadratic_1d(a, b, 0, to_bounds)[0] * g
-
-    step_diff = newton_step - cauchy_step
-    step_size, hits = step_size_to_bound(cauchy_step, step_diff,
-                                         lb_total, ub_total)
-    bound_hits[(hits < 0) & orig_l] = -1
-    bound_hits[(hits > 0) & orig_u] = 1
-    tr_hit = np.any((hits < 0) & tr_l | (hits > 0) & tr_u)
-
-    return cauchy_step + step_size * step_diff, bound_hits, tr_hit
-
-
-def dogbox(fun, jac, x0, f0, J0, lb, ub, ftol, xtol, gtol, max_nfev, x_scale,
-           loss_function, tr_solver, tr_options, verbose):
-    f = f0
-    f_true = f.copy()
-    nfev = 1
-
-    J = J0
-    njev = 1
-
-    if loss_function is not None:
-        rho = loss_function(f)
-        cost = 0.5 * np.sum(rho[0])
-        J, f = scale_for_robust_loss_function(J, f, rho)
-    else:
-        cost = 0.5 * np.dot(f, f)
-
-    g = compute_grad(J, f)
-
-    jac_scale = isinstance(x_scale, str) and x_scale == 'jac'
-    if jac_scale:
-        scale, scale_inv = compute_jac_scale(J)
-    else:
-        scale, scale_inv = x_scale, 1 / x_scale
-
-    Delta = norm(x0 * scale_inv, ord=np.inf)
-    if Delta == 0:
-        Delta = 1.0
-
-    on_bound = np.zeros_like(x0, dtype=int)
-    on_bound[np.equal(x0, lb)] = -1
-    on_bound[np.equal(x0, ub)] = 1
-
-    x = x0
-    step = np.empty_like(x0)
-
-    if max_nfev is None:
-        max_nfev = x0.size * 100
-
-    termination_status = None
-    iteration = 0
-    step_norm = None
-    actual_reduction = None
-
-    if verbose == 2:
-        print_header_nonlinear()
-
-    while True:
-        active_set = on_bound * g < 0
-        free_set = ~active_set
-
-        g_free = g[free_set]
-        g_full = g.copy()
-        g[active_set] = 0
-
-        g_norm = norm(g, ord=np.inf)
-        if g_norm < gtol:
-            termination_status = 1
-
-        if verbose == 2:
-            print_iteration_nonlinear(iteration, nfev, cost, actual_reduction,
-                                      step_norm, g_norm)
-
-        if termination_status is not None or nfev == max_nfev:
-            break
-
-        x_free = x[free_set]
-        lb_free = lb[free_set]
-        ub_free = ub[free_set]
-        scale_free = scale[free_set]
-
-        # Compute (Gauss-)Newton and build quadratic model for Cauchy step.
-        if tr_solver == 'exact':
-            J_free = J[:, free_set]
-            newton_step = lstsq(J_free, -f, rcond=-1)[0]
-
-            # Coefficients for the quadratic model along the anti-gradient.
-            a, b = build_quadratic_1d(J_free, g_free, -g_free)
-        elif tr_solver == 'lsmr':
-            Jop = aslinearoperator(J)
-
-            # We compute lsmr step in scaled variables and then
-            # transform back to normal variables, if lsmr would give exact lsq
-            # solution, this would be equivalent to not doing any
-            # transformations, but from experience it's better this way.
-
-            # We pass active_set to make computations as if we selected
-            # the free subset of J columns, but without actually doing any
-            # slicing, which is expensive for sparse matrices and impossible
-            # for LinearOperator.
-
-            lsmr_op = lsmr_operator(Jop, scale, active_set)
-            newton_step = -lsmr(lsmr_op, f, **tr_options)[0][free_set]
-            newton_step *= scale_free
-
-            # Components of g for active variables were zeroed, so this call
-            # is correct and equivalent to using J_free and g_free.
-            a, b = build_quadratic_1d(Jop, g, -g)
-
-        actual_reduction = -1.0
-        while actual_reduction <= 0 and nfev < max_nfev:
-            tr_bounds = Delta * scale_free
-
-            step_free, on_bound_free, tr_hit = dogleg_step(
-                x_free, newton_step, g_free, a, b, tr_bounds, lb_free, ub_free)
-
-            step.fill(0.0)
-            step[free_set] = step_free
-
-            if tr_solver == 'exact':
-                predicted_reduction = -evaluate_quadratic(J_free, g_free,
-                                                          step_free)
-            elif tr_solver == 'lsmr':
-                predicted_reduction = -evaluate_quadratic(Jop, g, step)
-
-            # gh11403 ensure that solution is fully within bounds.
-            x_new = np.clip(x + step, lb, ub)
-
-            f_new = fun(x_new)
-            nfev += 1
-
-            step_h_norm = norm(step * scale_inv, ord=np.inf)
-
-            if not np.all(np.isfinite(f_new)):
-                Delta = 0.25 * step_h_norm
-                continue
-
-            # Usual trust-region step quality estimation.
-            if loss_function is not None:
-                cost_new = loss_function(f_new, cost_only=True)
-            else:
-                cost_new = 0.5 * np.dot(f_new, f_new)
-            actual_reduction = cost - cost_new
-
-            Delta, ratio = update_tr_radius(
-                Delta, actual_reduction, predicted_reduction,
-                step_h_norm, tr_hit
-            )
-
-            step_norm = norm(step)
-            termination_status = check_termination(
-                actual_reduction, cost, step_norm, norm(x), ratio, ftol, xtol)
-
-            if termination_status is not None:
-                break
-
-        if actual_reduction > 0:
-            on_bound[free_set] = on_bound_free
-
-            x = x_new
-            # Set variables exactly at the boundary.
-            mask = on_bound == -1
-            x[mask] = lb[mask]
-            mask = on_bound == 1
-            x[mask] = ub[mask]
-
-            f = f_new
-            f_true = f.copy()
-
-            cost = cost_new
-
-            J = jac(x, f)
-            njev += 1
-
-            if loss_function is not None:
-                rho = loss_function(f)
-                J, f = scale_for_robust_loss_function(J, f, rho)
-
-            g = compute_grad(J, f)
-
-            if jac_scale:
-                scale, scale_inv = compute_jac_scale(J, scale_inv)
-        else:
-            step_norm = 0
-            actual_reduction = 0
-
-        iteration += 1
-
-    if termination_status is None:
-        termination_status = 0
-
-    return OptimizeResult(
-        x=x, cost=cost, fun=f_true, jac=J, grad=g_full, optimality=g_norm,
-        active_mask=on_bound, nfev=nfev, njev=njev, status=termination_status)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/least_squares.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/least_squares.py
deleted file mode 100644
index db8bb31c7b1530fd48ac7ae58cf501e2b0081a91..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/least_squares.py
+++ /dev/null
@@ -1,967 +0,0 @@
-"""Generic interface for least-squares minimization."""
-from warnings import warn
-
-import numpy as np
-from numpy.linalg import norm
-
-from scipy.sparse import issparse
-from scipy.sparse.linalg import LinearOperator
-from scipy.optimize import _minpack, OptimizeResult
-from scipy.optimize._numdiff import approx_derivative, group_columns
-from scipy.optimize._minimize import Bounds
-
-from .trf import trf
-from .dogbox import dogbox
-from .common import EPS, in_bounds, make_strictly_feasible
-
-
-TERMINATION_MESSAGES = {
-    -1: "Improper input parameters status returned from `leastsq`",
-    0: "The maximum number of function evaluations is exceeded.",
-    1: "`gtol` termination condition is satisfied.",
-    2: "`ftol` termination condition is satisfied.",
-    3: "`xtol` termination condition is satisfied.",
-    4: "Both `ftol` and `xtol` termination conditions are satisfied."
-}
-
-
-FROM_MINPACK_TO_COMMON = {
-    0: -1,  # Improper input parameters from MINPACK.
-    1: 2,
-    2: 3,
-    3: 4,
-    4: 1,
-    5: 0
-    # There are 6, 7, 8 for too small tolerance parameters,
-    # but we guard against it by checking ftol, xtol, gtol beforehand.
-}
-
-
-def call_minpack(fun, x0, jac, ftol, xtol, gtol, max_nfev, x_scale, diff_step):
-    n = x0.size
-
-    if diff_step is None:
-        epsfcn = EPS
-    else:
-        epsfcn = diff_step**2
-
-    # Compute MINPACK's `diag`, which is inverse of our `x_scale` and
-    # ``x_scale='jac'`` corresponds to ``diag=None``.
-    if isinstance(x_scale, str) and x_scale == 'jac':
-        diag = None
-    else:
-        diag = 1 / x_scale
-
-    full_output = True
-    col_deriv = False
-    factor = 100.0
-
-    if jac is None:
-        if max_nfev is None:
-            # n squared to account for Jacobian evaluations.
-            max_nfev = 100 * n * (n + 1)
-        x, info, status = _minpack._lmdif(
-            fun, x0, (), full_output, ftol, xtol, gtol,
-            max_nfev, epsfcn, factor, diag)
-    else:
-        if max_nfev is None:
-            max_nfev = 100 * n
-        x, info, status = _minpack._lmder(
-            fun, jac, x0, (), full_output, col_deriv,
-            ftol, xtol, gtol, max_nfev, factor, diag)
-
-    f = info['fvec']
-
-    if callable(jac):
-        J = jac(x)
-    else:
-        J = np.atleast_2d(approx_derivative(fun, x))
-
-    cost = 0.5 * np.dot(f, f)
-    g = J.T.dot(f)
-    g_norm = norm(g, ord=np.inf)
-
-    nfev = info['nfev']
-    njev = info.get('njev', None)
-
-    status = FROM_MINPACK_TO_COMMON[status]
-    active_mask = np.zeros_like(x0, dtype=int)
-
-    return OptimizeResult(
-        x=x, cost=cost, fun=f, jac=J, grad=g, optimality=g_norm,
-        active_mask=active_mask, nfev=nfev, njev=njev, status=status)
-
-
-def prepare_bounds(bounds, n):
-    lb, ub = (np.asarray(b, dtype=float) for b in bounds)
-    if lb.ndim == 0:
-        lb = np.resize(lb, n)
-
-    if ub.ndim == 0:
-        ub = np.resize(ub, n)
-
-    return lb, ub
-
-
-def check_tolerance(ftol, xtol, gtol, method):
-    def check(tol, name):
-        if tol is None:
-            tol = 0
-        elif tol < EPS:
-            warn(f"Setting `{name}` below the machine epsilon ({EPS:.2e}) effectively "
-                 f"disables the corresponding termination condition.",
-                 stacklevel=3)
-        return tol
-
-    ftol = check(ftol, "ftol")
-    xtol = check(xtol, "xtol")
-    gtol = check(gtol, "gtol")
-
-    if method == "lm" and (ftol < EPS or xtol < EPS or gtol < EPS):
-        raise ValueError("All tolerances must be higher than machine epsilon "
-                         f"({EPS:.2e}) for method 'lm'.")
-    elif ftol < EPS and xtol < EPS and gtol < EPS:
-        raise ValueError("At least one of the tolerances must be higher than "
-                         f"machine epsilon ({EPS:.2e}).")
-
-    return ftol, xtol, gtol
-
-
-def check_x_scale(x_scale, x0):
-    if isinstance(x_scale, str) and x_scale == 'jac':
-        return x_scale
-
-    try:
-        x_scale = np.asarray(x_scale, dtype=float)
-        valid = np.all(np.isfinite(x_scale)) and np.all(x_scale > 0)
-    except (ValueError, TypeError):
-        valid = False
-
-    if not valid:
-        raise ValueError("`x_scale` must be 'jac' or array_like with "
-                         "positive numbers.")
-
-    if x_scale.ndim == 0:
-        x_scale = np.resize(x_scale, x0.shape)
-
-    if x_scale.shape != x0.shape:
-        raise ValueError("Inconsistent shapes between `x_scale` and `x0`.")
-
-    return x_scale
-
-
-def check_jac_sparsity(jac_sparsity, m, n):
-    if jac_sparsity is None:
-        return None
-
-    if not issparse(jac_sparsity):
-        jac_sparsity = np.atleast_2d(jac_sparsity)
-
-    if jac_sparsity.shape != (m, n):
-        raise ValueError("`jac_sparsity` has wrong shape.")
-
-    return jac_sparsity, group_columns(jac_sparsity)
-
-
-# Loss functions.
-
-
-def huber(z, rho, cost_only):
-    mask = z <= 1
-    rho[0, mask] = z[mask]
-    rho[0, ~mask] = 2 * z[~mask]**0.5 - 1
-    if cost_only:
-        return
-    rho[1, mask] = 1
-    rho[1, ~mask] = z[~mask]**-0.5
-    rho[2, mask] = 0
-    rho[2, ~mask] = -0.5 * z[~mask]**-1.5
-
-
-def soft_l1(z, rho, cost_only):
-    t = 1 + z
-    rho[0] = 2 * (t**0.5 - 1)
-    if cost_only:
-        return
-    rho[1] = t**-0.5
-    rho[2] = -0.5 * t**-1.5
-
-
-def cauchy(z, rho, cost_only):
-    rho[0] = np.log1p(z)
-    if cost_only:
-        return
-    t = 1 + z
-    rho[1] = 1 / t
-    rho[2] = -1 / t**2
-
-
-def arctan(z, rho, cost_only):
-    rho[0] = np.arctan(z)
-    if cost_only:
-        return
-    t = 1 + z**2
-    rho[1] = 1 / t
-    rho[2] = -2 * z / t**2
-
-
-IMPLEMENTED_LOSSES = dict(linear=None, huber=huber, soft_l1=soft_l1,
-                          cauchy=cauchy, arctan=arctan)
-
-
-def construct_loss_function(m, loss, f_scale):
-    if loss == 'linear':
-        return None
-
-    if not callable(loss):
-        loss = IMPLEMENTED_LOSSES[loss]
-        rho = np.empty((3, m))
-
-        def loss_function(f, cost_only=False):
-            z = (f / f_scale) ** 2
-            loss(z, rho, cost_only=cost_only)
-            if cost_only:
-                return 0.5 * f_scale ** 2 * np.sum(rho[0])
-            rho[0] *= f_scale ** 2
-            rho[2] /= f_scale ** 2
-            return rho
-    else:
-        def loss_function(f, cost_only=False):
-            z = (f / f_scale) ** 2
-            rho = loss(z)
-            if cost_only:
-                return 0.5 * f_scale ** 2 * np.sum(rho[0])
-            rho[0] *= f_scale ** 2
-            rho[2] /= f_scale ** 2
-            return rho
-
-    return loss_function
-
-
-def least_squares(
-        fun, x0, jac='2-point', bounds=(-np.inf, np.inf), method='trf',
-        ftol=1e-8, xtol=1e-8, gtol=1e-8, x_scale=1.0, loss='linear',
-        f_scale=1.0, diff_step=None, tr_solver=None, tr_options={},
-        jac_sparsity=None, max_nfev=None, verbose=0, args=(), kwargs={}):
-    """Solve a nonlinear least-squares problem with bounds on the variables.
-
-    Given the residuals f(x) (an m-D real function of n real
-    variables) and the loss function rho(s) (a scalar function), `least_squares`
-    finds a local minimum of the cost function F(x)::
-
-        minimize F(x) = 0.5 * sum(rho(f_i(x)**2), i = 0, ..., m - 1)
-        subject to lb <= x <= ub
-
-    The purpose of the loss function rho(s) is to reduce the influence of
-    outliers on the solution.
-
-    Parameters
-    ----------
-    fun : callable
-        Function which computes the vector of residuals, with the signature
-        ``fun(x, *args, **kwargs)``, i.e., the minimization proceeds with
-        respect to its first argument. The argument ``x`` passed to this
-        function is an ndarray of shape (n,) (never a scalar, even for n=1).
-        It must allocate and return a 1-D array_like of shape (m,) or a scalar.
-        If the argument ``x`` is complex or the function ``fun`` returns
-        complex residuals, it must be wrapped in a real function of real
-        arguments, as shown at the end of the Examples section.
-    x0 : array_like with shape (n,) or float
-        Initial guess on independent variables. If float, it will be treated
-        as a 1-D array with one element. When `method` is 'trf', the initial
-        guess might be slightly adjusted to lie sufficiently within the given
-        `bounds`.
-    jac : {'2-point', '3-point', 'cs', callable}, optional
-        Method of computing the Jacobian matrix (an m-by-n matrix, where
-        element (i, j) is the partial derivative of f[i] with respect to
-        x[j]). The keywords select a finite difference scheme for numerical
-        estimation. The scheme '3-point' is more accurate, but requires
-        twice as many operations as '2-point' (default). The scheme 'cs'
-        uses complex steps, and while potentially the most accurate, it is
-        applicable only when `fun` correctly handles complex inputs and
-        can be analytically continued to the complex plane. Method 'lm'
-        always uses the '2-point' scheme. If callable, it is used as
-        ``jac(x, *args, **kwargs)`` and should return a good approximation
-        (or the exact value) for the Jacobian as an array_like (np.atleast_2d
-        is applied), a sparse matrix (csr_matrix preferred for performance) or
-        a `scipy.sparse.linalg.LinearOperator`.
-    bounds : 2-tuple of array_like or `Bounds`, optional
-        There are two ways to specify bounds:
-
-            1. Instance of `Bounds` class
-            2. Lower and upper bounds on independent variables. Defaults to no
-               bounds. Each array must match the size of `x0` or be a scalar,
-               in the latter case a bound will be the same for all variables.
-               Use ``np.inf`` with an appropriate sign to disable bounds on all
-               or some variables.
-    method : {'trf', 'dogbox', 'lm'}, optional
-        Algorithm to perform minimization.
-
-            * 'trf' : Trust Region Reflective algorithm, particularly suitable
-              for large sparse problems with bounds. Generally robust method.
-            * 'dogbox' : dogleg algorithm with rectangular trust regions,
-              typical use case is small problems with bounds. Not recommended
-              for problems with rank-deficient Jacobian.
-            * 'lm' : Levenberg-Marquardt algorithm as implemented in MINPACK.
-              Doesn't handle bounds and sparse Jacobians. Usually the most
-              efficient method for small unconstrained problems.
-
-        Default is 'trf'. See Notes for more information.
-    ftol : float or None, optional
-        Tolerance for termination by the change of the cost function. Default
-        is 1e-8. The optimization process is stopped when ``dF < ftol * F``,
-        and there was an adequate agreement between a local quadratic model and
-        the true model in the last step.
-
-        If None and 'method' is not 'lm', the termination by this condition is
-        disabled. If 'method' is 'lm', this tolerance must be higher than
-        machine epsilon.
-    xtol : float or None, optional
-        Tolerance for termination by the change of the independent variables.
-        Default is 1e-8. The exact condition depends on the `method` used:
-
-            * For 'trf' and 'dogbox' : ``norm(dx) < xtol * (xtol + norm(x))``.
-            * For 'lm' : ``Delta < xtol * norm(xs)``, where ``Delta`` is
-              a trust-region radius and ``xs`` is the value of ``x``
-              scaled according to `x_scale` parameter (see below).
-
-        If None and 'method' is not 'lm', the termination by this condition is
-        disabled. If 'method' is 'lm', this tolerance must be higher than
-        machine epsilon.
-    gtol : float or None, optional
-        Tolerance for termination by the norm of the gradient. Default is 1e-8.
-        The exact condition depends on a `method` used:
-
-            * For 'trf' : ``norm(g_scaled, ord=np.inf) < gtol``, where
-              ``g_scaled`` is the value of the gradient scaled to account for
-              the presence of the bounds [STIR]_.
-            * For 'dogbox' : ``norm(g_free, ord=np.inf) < gtol``, where
-              ``g_free`` is the gradient with respect to the variables which
-              are not in the optimal state on the boundary.
-            * For 'lm' : the maximum absolute value of the cosine of angles
-              between columns of the Jacobian and the residual vector is less
-              than `gtol`, or the residual vector is zero.
-
-        If None and 'method' is not 'lm', the termination by this condition is
-        disabled. If 'method' is 'lm', this tolerance must be higher than
-        machine epsilon.
-    x_scale : array_like or 'jac', optional
-        Characteristic scale of each variable. Setting `x_scale` is equivalent
-        to reformulating the problem in scaled variables ``xs = x / x_scale``.
-        An alternative view is that the size of a trust region along jth
-        dimension is proportional to ``x_scale[j]``. Improved convergence may
-        be achieved by setting `x_scale` such that a step of a given size
-        along any of the scaled variables has a similar effect on the cost
-        function. If set to 'jac', the scale is iteratively updated using the
-        inverse norms of the columns of the Jacobian matrix (as described in
-        [JJMore]_).
-    loss : str or callable, optional
-        Determines the loss function. The following keyword values are allowed:
-
-            * 'linear' (default) : ``rho(z) = z``. Gives a standard
-              least-squares problem.
-            * 'soft_l1' : ``rho(z) = 2 * ((1 + z)**0.5 - 1)``. The smooth
-              approximation of l1 (absolute value) loss. Usually a good
-              choice for robust least squares.
-            * 'huber' : ``rho(z) = z if z <= 1 else 2*z**0.5 - 1``. Works
-              similarly to 'soft_l1'.
-            * 'cauchy' : ``rho(z) = ln(1 + z)``. Severely weakens outliers
-              influence, but may cause difficulties in optimization process.
-            * 'arctan' : ``rho(z) = arctan(z)``. Limits a maximum loss on
-              a single residual, has properties similar to 'cauchy'.
-
-        If callable, it must take a 1-D ndarray ``z=f**2`` and return an
-        array_like with shape (3, m) where row 0 contains function values,
-        row 1 contains first derivatives and row 2 contains second
-        derivatives. Method 'lm' supports only 'linear' loss.
-    f_scale : float, optional
-        Value of soft margin between inlier and outlier residuals, default
-        is 1.0. The loss function is evaluated as follows
-        ``rho_(f**2) = C**2 * rho(f**2 / C**2)``, where ``C`` is `f_scale`,
-        and ``rho`` is determined by `loss` parameter. This parameter has
-        no effect with ``loss='linear'``, but for other `loss` values it is
-        of crucial importance.
-    max_nfev : None or int, optional
-        Maximum number of function evaluations before the termination.
-        If None (default), the value is chosen automatically:
-
-            * For 'trf' and 'dogbox' : 100 * n.
-            * For 'lm' :  100 * n if `jac` is callable and 100 * n * (n + 1)
-              otherwise (because 'lm' counts function calls in Jacobian
-              estimation).
-
-    diff_step : None or array_like, optional
-        Determines the relative step size for the finite difference
-        approximation of the Jacobian. The actual step is computed as
-        ``x * diff_step``. If None (default), then `diff_step` is taken to be
-        a conventional "optimal" power of machine epsilon for the finite
-        difference scheme used [NR]_.
-    tr_solver : {None, 'exact', 'lsmr'}, optional
-        Method for solving trust-region subproblems, relevant only for 'trf'
-        and 'dogbox' methods.
-
-            * 'exact' is suitable for not very large problems with dense
-              Jacobian matrices. The computational complexity per iteration is
-              comparable to a singular value decomposition of the Jacobian
-              matrix.
-            * 'lsmr' is suitable for problems with sparse and large Jacobian
-              matrices. It uses the iterative procedure
-              `scipy.sparse.linalg.lsmr` for finding a solution of a linear
-              least-squares problem and only requires matrix-vector product
-              evaluations.
-
-        If None (default), the solver is chosen based on the type of Jacobian
-        returned on the first iteration.
-    tr_options : dict, optional
-        Keyword options passed to trust-region solver.
-
-            * ``tr_solver='exact'``: `tr_options` are ignored.
-            * ``tr_solver='lsmr'``: options for `scipy.sparse.linalg.lsmr`.
-              Additionally,  ``method='trf'`` supports  'regularize' option
-              (bool, default is True), which adds a regularization term to the
-              normal equation, which improves convergence if the Jacobian is
-              rank-deficient [Byrd]_ (eq. 3.4).
-
-    jac_sparsity : {None, array_like, sparse matrix}, optional
-        Defines the sparsity structure of the Jacobian matrix for finite
-        difference estimation, its shape must be (m, n). If the Jacobian has
-        only few non-zero elements in *each* row, providing the sparsity
-        structure will greatly speed up the computations [Curtis]_. A zero
-        entry means that a corresponding element in the Jacobian is identically
-        zero. If provided, forces the use of 'lsmr' trust-region solver.
-        If None (default), then dense differencing will be used. Has no effect
-        for 'lm' method.
-    verbose : {0, 1, 2}, optional
-        Level of algorithm's verbosity:
-
-            * 0 (default) : work silently.
-            * 1 : display a termination report.
-            * 2 : display progress during iterations (not supported by 'lm'
-              method).
-
-    args, kwargs : tuple and dict, optional
-        Additional arguments passed to `fun` and `jac`. Both empty by default.
-        The calling signature is ``fun(x, *args, **kwargs)`` and the same for
-        `jac`.
-
-    Returns
-    -------
-    result : OptimizeResult
-        `OptimizeResult` with the following fields defined:
-
-            x : ndarray, shape (n,)
-                Solution found.
-            cost : float
-                Value of the cost function at the solution.
-            fun : ndarray, shape (m,)
-                Vector of residuals at the solution.
-            jac : ndarray, sparse matrix or LinearOperator, shape (m, n)
-                Modified Jacobian matrix at the solution, in the sense that J^T J
-                is a Gauss-Newton approximation of the Hessian of the cost function.
-                The type is the same as the one used by the algorithm.
-            grad : ndarray, shape (m,)
-                Gradient of the cost function at the solution.
-            optimality : float
-                First-order optimality measure. In unconstrained problems, it is
-                always the uniform norm of the gradient. In constrained problems,
-                it is the quantity which was compared with `gtol` during iterations.
-            active_mask : ndarray of int, shape (n,)
-                Each component shows whether a corresponding constraint is active
-                (that is, whether a variable is at the bound):
-
-                    *  0 : a constraint is not active.
-                    * -1 : a lower bound is active.
-                    *  1 : an upper bound is active.
-
-                Might be somewhat arbitrary for 'trf' method as it generates a
-                sequence of strictly feasible iterates and `active_mask` is
-                determined within a tolerance threshold.
-            nfev : int
-                Number of function evaluations done. Methods 'trf' and 'dogbox' do
-                not count function calls for numerical Jacobian approximation, as
-                opposed to 'lm' method.
-            njev : int or None
-                Number of Jacobian evaluations done. If numerical Jacobian
-                approximation is used in 'lm' method, it is set to None.
-            status : int
-                The reason for algorithm termination:
-
-                    * -1 : improper input parameters status returned from MINPACK.
-                    *  0 : the maximum number of function evaluations is exceeded.
-                    *  1 : `gtol` termination condition is satisfied.
-                    *  2 : `ftol` termination condition is satisfied.
-                    *  3 : `xtol` termination condition is satisfied.
-                    *  4 : Both `ftol` and `xtol` termination conditions are satisfied.
-
-            message : str
-                Verbal description of the termination reason.
-            success : bool
-                True if one of the convergence criteria is satisfied (`status` > 0).
-
-    See Also
-    --------
-    leastsq : A legacy wrapper for the MINPACK implementation of the
-              Levenberg-Marquadt algorithm.
-    curve_fit : Least-squares minimization applied to a curve-fitting problem.
-
-    Notes
-    -----
-    Method 'lm' (Levenberg-Marquardt) calls a wrapper over least-squares
-    algorithms implemented in MINPACK (lmder, lmdif). It runs the
-    Levenberg-Marquardt algorithm formulated as a trust-region type algorithm.
-    The implementation is based on paper [JJMore]_, it is very robust and
-    efficient with a lot of smart tricks. It should be your first choice
-    for unconstrained problems. Note that it doesn't support bounds. Also,
-    it doesn't work when m < n.
-
-    Method 'trf' (Trust Region Reflective) is motivated by the process of
-    solving a system of equations, which constitute the first-order optimality
-    condition for a bound-constrained minimization problem as formulated in
-    [STIR]_. The algorithm iteratively solves trust-region subproblems
-    augmented by a special diagonal quadratic term and with trust-region shape
-    determined by the distance from the bounds and the direction of the
-    gradient. This enhancements help to avoid making steps directly into bounds
-    and efficiently explore the whole space of variables. To further improve
-    convergence, the algorithm considers search directions reflected from the
-    bounds. To obey theoretical requirements, the algorithm keeps iterates
-    strictly feasible. With dense Jacobians trust-region subproblems are
-    solved by an exact method very similar to the one described in [JJMore]_
-    (and implemented in MINPACK). The difference from the MINPACK
-    implementation is that a singular value decomposition of a Jacobian
-    matrix is done once per iteration, instead of a QR decomposition and series
-    of Givens rotation eliminations. For large sparse Jacobians a 2-D subspace
-    approach of solving trust-region subproblems is used [STIR]_, [Byrd]_.
-    The subspace is spanned by a scaled gradient and an approximate
-    Gauss-Newton solution delivered by `scipy.sparse.linalg.lsmr`. When no
-    constraints are imposed the algorithm is very similar to MINPACK and has
-    generally comparable performance. The algorithm works quite robust in
-    unbounded and bounded problems, thus it is chosen as a default algorithm.
-
-    Method 'dogbox' operates in a trust-region framework, but considers
-    rectangular trust regions as opposed to conventional ellipsoids [Voglis]_.
-    The intersection of a current trust region and initial bounds is again
-    rectangular, so on each iteration a quadratic minimization problem subject
-    to bound constraints is solved approximately by Powell's dogleg method
-    [NumOpt]_. The required Gauss-Newton step can be computed exactly for
-    dense Jacobians or approximately by `scipy.sparse.linalg.lsmr` for large
-    sparse Jacobians. The algorithm is likely to exhibit slow convergence when
-    the rank of Jacobian is less than the number of variables. The algorithm
-    often outperforms 'trf' in bounded problems with a small number of
-    variables.
-
-    Robust loss functions are implemented as described in [BA]_. The idea
-    is to modify a residual vector and a Jacobian matrix on each iteration
-    such that computed gradient and Gauss-Newton Hessian approximation match
-    the true gradient and Hessian approximation of the cost function. Then
-    the algorithm proceeds in a normal way, i.e., robust loss functions are
-    implemented as a simple wrapper over standard least-squares algorithms.
-
-    .. versionadded:: 0.17.0
-
-    References
-    ----------
-    .. [STIR] M. A. Branch, T. F. Coleman, and Y. Li, "A Subspace, Interior,
-              and Conjugate Gradient Method for Large-Scale Bound-Constrained
-              Minimization Problems," SIAM Journal on Scientific Computing,
-              Vol. 21, Number 1, pp 1-23, 1999.
-    .. [NR] William H. Press et. al., "Numerical Recipes. The Art of Scientific
-            Computing. 3rd edition", Sec. 5.7.
-    .. [Byrd] R. H. Byrd, R. B. Schnabel and G. A. Shultz, "Approximate
-              solution of the trust region problem by minimization over
-              two-dimensional subspaces", Math. Programming, 40, pp. 247-263,
-              1988.
-    .. [Curtis] A. Curtis, M. J. D. Powell, and J. Reid, "On the estimation of
-                sparse Jacobian matrices", Journal of the Institute of
-                Mathematics and its Applications, 13, pp. 117-120, 1974.
-    .. [JJMore] J. J. More, "The Levenberg-Marquardt Algorithm: Implementation
-                and Theory," Numerical Analysis, ed. G. A. Watson, Lecture
-                Notes in Mathematics 630, Springer Verlag, pp. 105-116, 1977.
-    .. [Voglis] C. Voglis and I. E. Lagaris, "A Rectangular Trust Region
-                Dogleg Approach for Unconstrained and Bound Constrained
-                Nonlinear Optimization", WSEAS International Conference on
-                Applied Mathematics, Corfu, Greece, 2004.
-    .. [NumOpt] J. Nocedal and S. J. Wright, "Numerical optimization,
-                2nd edition", Chapter 4.
-    .. [BA] B. Triggs et. al., "Bundle Adjustment - A Modern Synthesis",
-            Proceedings of the International Workshop on Vision Algorithms:
-            Theory and Practice, pp. 298-372, 1999.
-
-    Examples
-    --------
-    In this example we find a minimum of the Rosenbrock function without bounds
-    on independent variables.
-
-    >>> import numpy as np
-    >>> def fun_rosenbrock(x):
-    ...     return np.array([10 * (x[1] - x[0]**2), (1 - x[0])])
-
-    Notice that we only provide the vector of the residuals. The algorithm
-    constructs the cost function as a sum of squares of the residuals, which
-    gives the Rosenbrock function. The exact minimum is at ``x = [1.0, 1.0]``.
-
-    >>> from scipy.optimize import least_squares
-    >>> x0_rosenbrock = np.array([2, 2])
-    >>> res_1 = least_squares(fun_rosenbrock, x0_rosenbrock)
-    >>> res_1.x
-    array([ 1.,  1.])
-    >>> res_1.cost
-    9.8669242910846867e-30
-    >>> res_1.optimality
-    8.8928864934219529e-14
-
-    We now constrain the variables, in such a way that the previous solution
-    becomes infeasible. Specifically, we require that ``x[1] >= 1.5``, and
-    ``x[0]`` left unconstrained. To this end, we specify the `bounds` parameter
-    to `least_squares` in the form ``bounds=([-np.inf, 1.5], np.inf)``.
-
-    We also provide the analytic Jacobian:
-
-    >>> def jac_rosenbrock(x):
-    ...     return np.array([
-    ...         [-20 * x[0], 10],
-    ...         [-1, 0]])
-
-    Putting this all together, we see that the new solution lies on the bound:
-
-    >>> res_2 = least_squares(fun_rosenbrock, x0_rosenbrock, jac_rosenbrock,
-    ...                       bounds=([-np.inf, 1.5], np.inf))
-    >>> res_2.x
-    array([ 1.22437075,  1.5       ])
-    >>> res_2.cost
-    0.025213093946805685
-    >>> res_2.optimality
-    1.5885401433157753e-07
-
-    Now we solve a system of equations (i.e., the cost function should be zero
-    at a minimum) for a Broyden tridiagonal vector-valued function of 100000
-    variables:
-
-    >>> def fun_broyden(x):
-    ...     f = (3 - x) * x + 1
-    ...     f[1:] -= x[:-1]
-    ...     f[:-1] -= 2 * x[1:]
-    ...     return f
-
-    The corresponding Jacobian matrix is sparse. We tell the algorithm to
-    estimate it by finite differences and provide the sparsity structure of
-    Jacobian to significantly speed up this process.
-
-    >>> from scipy.sparse import lil_matrix
-    >>> def sparsity_broyden(n):
-    ...     sparsity = lil_matrix((n, n), dtype=int)
-    ...     i = np.arange(n)
-    ...     sparsity[i, i] = 1
-    ...     i = np.arange(1, n)
-    ...     sparsity[i, i - 1] = 1
-    ...     i = np.arange(n - 1)
-    ...     sparsity[i, i + 1] = 1
-    ...     return sparsity
-    ...
-    >>> n = 100000
-    >>> x0_broyden = -np.ones(n)
-    ...
-    >>> res_3 = least_squares(fun_broyden, x0_broyden,
-    ...                       jac_sparsity=sparsity_broyden(n))
-    >>> res_3.cost
-    4.5687069299604613e-23
-    >>> res_3.optimality
-    1.1650454296851518e-11
-
-    Let's also solve a curve fitting problem using robust loss function to
-    take care of outliers in the data. Define the model function as
-    ``y = a + b * exp(c * t)``, where t is a predictor variable, y is an
-    observation and a, b, c are parameters to estimate.
-
-    First, define the function which generates the data with noise and
-    outliers, define the model parameters, and generate data:
-
-    >>> from numpy.random import default_rng
-    >>> rng = default_rng()
-    >>> def gen_data(t, a, b, c, noise=0., n_outliers=0, seed=None):
-    ...     rng = default_rng(seed)
-    ...
-    ...     y = a + b * np.exp(t * c)
-    ...
-    ...     error = noise * rng.standard_normal(t.size)
-    ...     outliers = rng.integers(0, t.size, n_outliers)
-    ...     error[outliers] *= 10
-    ...
-    ...     return y + error
-    ...
-    >>> a = 0.5
-    >>> b = 2.0
-    >>> c = -1
-    >>> t_min = 0
-    >>> t_max = 10
-    >>> n_points = 15
-    ...
-    >>> t_train = np.linspace(t_min, t_max, n_points)
-    >>> y_train = gen_data(t_train, a, b, c, noise=0.1, n_outliers=3)
-
-    Define function for computing residuals and initial estimate of
-    parameters.
-
-    >>> def fun(x, t, y):
-    ...     return x[0] + x[1] * np.exp(x[2] * t) - y
-    ...
-    >>> x0 = np.array([1.0, 1.0, 0.0])
-
-    Compute a standard least-squares solution:
-
-    >>> res_lsq = least_squares(fun, x0, args=(t_train, y_train))
-
-    Now compute two solutions with two different robust loss functions. The
-    parameter `f_scale` is set to 0.1, meaning that inlier residuals should
-    not significantly exceed 0.1 (the noise level used).
-
-    >>> res_soft_l1 = least_squares(fun, x0, loss='soft_l1', f_scale=0.1,
-    ...                             args=(t_train, y_train))
-    >>> res_log = least_squares(fun, x0, loss='cauchy', f_scale=0.1,
-    ...                         args=(t_train, y_train))
-
-    And, finally, plot all the curves. We see that by selecting an appropriate
-    `loss`  we can get estimates close to optimal even in the presence of
-    strong outliers. But keep in mind that generally it is recommended to try
-    'soft_l1' or 'huber' losses first (if at all necessary) as the other two
-    options may cause difficulties in optimization process.
-
-    >>> t_test = np.linspace(t_min, t_max, n_points * 10)
-    >>> y_true = gen_data(t_test, a, b, c)
-    >>> y_lsq = gen_data(t_test, *res_lsq.x)
-    >>> y_soft_l1 = gen_data(t_test, *res_soft_l1.x)
-    >>> y_log = gen_data(t_test, *res_log.x)
-    ...
-    >>> import matplotlib.pyplot as plt
-    >>> plt.plot(t_train, y_train, 'o')
-    >>> plt.plot(t_test, y_true, 'k', linewidth=2, label='true')
-    >>> plt.plot(t_test, y_lsq, label='linear loss')
-    >>> plt.plot(t_test, y_soft_l1, label='soft_l1 loss')
-    >>> plt.plot(t_test, y_log, label='cauchy loss')
-    >>> plt.xlabel("t")
-    >>> plt.ylabel("y")
-    >>> plt.legend()
-    >>> plt.show()
-
-    In the next example, we show how complex-valued residual functions of
-    complex variables can be optimized with ``least_squares()``. Consider the
-    following function:
-
-    >>> def f(z):
-    ...     return z - (0.5 + 0.5j)
-
-    We wrap it into a function of real variables that returns real residuals
-    by simply handling the real and imaginary parts as independent variables:
-
-    >>> def f_wrap(x):
-    ...     fx = f(x[0] + 1j*x[1])
-    ...     return np.array([fx.real, fx.imag])
-
-    Thus, instead of the original m-D complex function of n complex
-    variables we optimize a 2m-D real function of 2n real variables:
-
-    >>> from scipy.optimize import least_squares
-    >>> res_wrapped = least_squares(f_wrap, (0.1, 0.1), bounds=([0, 0], [1, 1]))
-    >>> z = res_wrapped.x[0] + res_wrapped.x[1]*1j
-    >>> z
-    (0.49999999999925893+0.49999999999925893j)
-
-    """
-    if method not in ['trf', 'dogbox', 'lm']:
-        raise ValueError("`method` must be 'trf', 'dogbox' or 'lm'.")
-
-    if jac not in ['2-point', '3-point', 'cs'] and not callable(jac):
-        raise ValueError("`jac` must be '2-point', '3-point', 'cs' or "
-                         "callable.")
-
-    if tr_solver not in [None, 'exact', 'lsmr']:
-        raise ValueError("`tr_solver` must be None, 'exact' or 'lsmr'.")
-
-    if loss not in IMPLEMENTED_LOSSES and not callable(loss):
-        raise ValueError("`loss` must be one of {} or a callable."
-                         .format(IMPLEMENTED_LOSSES.keys()))
-
-    if method == 'lm' and loss != 'linear':
-        raise ValueError("method='lm' supports only 'linear' loss function.")
-
-    if verbose not in [0, 1, 2]:
-        raise ValueError("`verbose` must be in [0, 1, 2].")
-
-    if max_nfev is not None and max_nfev <= 0:
-        raise ValueError("`max_nfev` must be None or positive integer.")
-
-    if np.iscomplexobj(x0):
-        raise ValueError("`x0` must be real.")
-
-    x0 = np.atleast_1d(x0).astype(float)
-
-    if x0.ndim > 1:
-        raise ValueError("`x0` must have at most 1 dimension.")
-
-    if isinstance(bounds, Bounds):
-        lb, ub = bounds.lb, bounds.ub
-        bounds = (lb, ub)
-    else:
-        if len(bounds) == 2:
-            lb, ub = prepare_bounds(bounds, x0.shape[0])
-        else:
-            raise ValueError("`bounds` must contain 2 elements.")
-
-    if method == 'lm' and not np.all((lb == -np.inf) & (ub == np.inf)):
-        raise ValueError("Method 'lm' doesn't support bounds.")
-
-    if lb.shape != x0.shape or ub.shape != x0.shape:
-        raise ValueError("Inconsistent shapes between bounds and `x0`.")
-
-    if np.any(lb >= ub):
-        raise ValueError("Each lower bound must be strictly less than each "
-                         "upper bound.")
-
-    if not in_bounds(x0, lb, ub):
-        raise ValueError("`x0` is infeasible.")
-
-    x_scale = check_x_scale(x_scale, x0)
-
-    ftol, xtol, gtol = check_tolerance(ftol, xtol, gtol, method)
-
-    if method == 'trf':
-        x0 = make_strictly_feasible(x0, lb, ub)
-
-    def fun_wrapped(x):
-        return np.atleast_1d(fun(x, *args, **kwargs))
-
-    f0 = fun_wrapped(x0)
-
-    if f0.ndim != 1:
-        raise ValueError("`fun` must return at most 1-d array_like. "
-                         f"f0.shape: {f0.shape}")
-
-    if not np.all(np.isfinite(f0)):
-        raise ValueError("Residuals are not finite in the initial point.")
-
-    n = x0.size
-    m = f0.size
-
-    if method == 'lm' and m < n:
-        raise ValueError("Method 'lm' doesn't work when the number of "
-                         "residuals is less than the number of variables.")
-
-    loss_function = construct_loss_function(m, loss, f_scale)
-    if callable(loss):
-        rho = loss_function(f0)
-        if rho.shape != (3, m):
-            raise ValueError("The return value of `loss` callable has wrong "
-                             "shape.")
-        initial_cost = 0.5 * np.sum(rho[0])
-    elif loss_function is not None:
-        initial_cost = loss_function(f0, cost_only=True)
-    else:
-        initial_cost = 0.5 * np.dot(f0, f0)
-
-    if callable(jac):
-        J0 = jac(x0, *args, **kwargs)
-
-        if issparse(J0):
-            J0 = J0.tocsr()
-
-            def jac_wrapped(x, _=None):
-                return jac(x, *args, **kwargs).tocsr()
-
-        elif isinstance(J0, LinearOperator):
-            def jac_wrapped(x, _=None):
-                return jac(x, *args, **kwargs)
-
-        else:
-            J0 = np.atleast_2d(J0)
-
-            def jac_wrapped(x, _=None):
-                return np.atleast_2d(jac(x, *args, **kwargs))
-
-    else:  # Estimate Jacobian by finite differences.
-        if method == 'lm':
-            if jac_sparsity is not None:
-                raise ValueError("method='lm' does not support "
-                                 "`jac_sparsity`.")
-
-            if jac != '2-point':
-                warn(f"jac='{jac}' works equivalently to '2-point' for method='lm'.",
-                     stacklevel=2)
-
-            J0 = jac_wrapped = None
-        else:
-            if jac_sparsity is not None and tr_solver == 'exact':
-                raise ValueError("tr_solver='exact' is incompatible "
-                                 "with `jac_sparsity`.")
-
-            jac_sparsity = check_jac_sparsity(jac_sparsity, m, n)
-
-            def jac_wrapped(x, f):
-                J = approx_derivative(fun, x, rel_step=diff_step, method=jac,
-                                      f0=f, bounds=bounds, args=args,
-                                      kwargs=kwargs, sparsity=jac_sparsity)
-                if J.ndim != 2:  # J is guaranteed not sparse.
-                    J = np.atleast_2d(J)
-
-                return J
-
-            J0 = jac_wrapped(x0, f0)
-
-    if J0 is not None:
-        if J0.shape != (m, n):
-            raise ValueError(
-                f"The return value of `jac` has wrong shape: expected {(m, n)}, "
-                f"actual {J0.shape}."
-            )
-
-        if not isinstance(J0, np.ndarray):
-            if method == 'lm':
-                raise ValueError("method='lm' works only with dense "
-                                 "Jacobian matrices.")
-
-            if tr_solver == 'exact':
-                raise ValueError(
-                    "tr_solver='exact' works only with dense "
-                    "Jacobian matrices.")
-
-        jac_scale = isinstance(x_scale, str) and x_scale == 'jac'
-        if isinstance(J0, LinearOperator) and jac_scale:
-            raise ValueError("x_scale='jac' can't be used when `jac` "
-                             "returns LinearOperator.")
-
-        if tr_solver is None:
-            if isinstance(J0, np.ndarray):
-                tr_solver = 'exact'
-            else:
-                tr_solver = 'lsmr'
-
-    if method == 'lm':
-        result = call_minpack(fun_wrapped, x0, jac_wrapped, ftol, xtol, gtol,
-                              max_nfev, x_scale, diff_step)
-
-    elif method == 'trf':
-        result = trf(fun_wrapped, jac_wrapped, x0, f0, J0, lb, ub, ftol, xtol,
-                     gtol, max_nfev, x_scale, loss_function, tr_solver,
-                     tr_options.copy(), verbose)
-
-    elif method == 'dogbox':
-        if tr_solver == 'lsmr' and 'regularize' in tr_options:
-            warn("The keyword 'regularize' in `tr_options` is not relevant "
-                 "for 'dogbox' method.",
-                 stacklevel=2)
-            tr_options = tr_options.copy()
-            del tr_options['regularize']
-
-        result = dogbox(fun_wrapped, jac_wrapped, x0, f0, J0, lb, ub, ftol,
-                        xtol, gtol, max_nfev, x_scale, loss_function,
-                        tr_solver, tr_options, verbose)
-
-    result.message = TERMINATION_MESSAGES[result.status]
-    result.success = result.status > 0
-
-    if verbose >= 1:
-        print(result.message)
-        print("Function evaluations {}, initial cost {:.4e}, final cost "
-              "{:.4e}, first-order optimality {:.2e}."
-              .format(result.nfev, initial_cost, result.cost,
-                      result.optimality))
-
-    return result
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/lsq_linear.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/lsq_linear.py
deleted file mode 100644
index fdf4d26020109d55a6aea2be3009181a388c722d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/lsq_linear.py
+++ /dev/null
@@ -1,362 +0,0 @@
-"""Linear least squares with bound constraints on independent variables."""
-import numpy as np
-from numpy.linalg import norm
-from scipy.sparse import issparse, csr_matrix
-from scipy.sparse.linalg import LinearOperator, lsmr
-from scipy.optimize import OptimizeResult
-from scipy.optimize._minimize import Bounds
-
-from .common import in_bounds, compute_grad
-from .trf_linear import trf_linear
-from .bvls import bvls
-
-
-def prepare_bounds(bounds, n):
-    if len(bounds) != 2:
-        raise ValueError("`bounds` must contain 2 elements.")
-    lb, ub = (np.asarray(b, dtype=float) for b in bounds)
-
-    if lb.ndim == 0:
-        lb = np.resize(lb, n)
-
-    if ub.ndim == 0:
-        ub = np.resize(ub, n)
-
-    return lb, ub
-
-
-TERMINATION_MESSAGES = {
-    -1: "The algorithm was not able to make progress on the last iteration.",
-    0: "The maximum number of iterations is exceeded.",
-    1: "The first-order optimality measure is less than `tol`.",
-    2: "The relative change of the cost function is less than `tol`.",
-    3: "The unconstrained solution is optimal."
-}
-
-
-def lsq_linear(A, b, bounds=(-np.inf, np.inf), method='trf', tol=1e-10,
-               lsq_solver=None, lsmr_tol=None, max_iter=None,
-               verbose=0, *, lsmr_maxiter=None,):
-    r"""Solve a linear least-squares problem with bounds on the variables.
-
-    Given a m-by-n design matrix A and a target vector b with m elements,
-    `lsq_linear` solves the following optimization problem::
-
-        minimize 0.5 * ||A x - b||**2
-        subject to lb <= x <= ub
-
-    This optimization problem is convex, hence a found minimum (if iterations
-    have converged) is guaranteed to be global.
-
-    Parameters
-    ----------
-    A : array_like, sparse matrix of LinearOperator, shape (m, n)
-        Design matrix. Can be `scipy.sparse.linalg.LinearOperator`.
-    b : array_like, shape (m,)
-        Target vector.
-    bounds : 2-tuple of array_like or `Bounds`, optional
-        Lower and upper bounds on parameters. Defaults to no bounds.
-        There are two ways to specify the bounds:
-
-            - Instance of `Bounds` class.
-
-            - 2-tuple of array_like: Each element of the tuple must be either
-              an array with the length equal to the number of parameters, or a
-              scalar (in which case the bound is taken to be the same for all
-              parameters). Use ``np.inf`` with an appropriate sign to disable
-              bounds on all or some parameters.
-
-    method : 'trf' or 'bvls', optional
-        Method to perform minimization.
-
-            * 'trf' : Trust Region Reflective algorithm adapted for a linear
-              least-squares problem. This is an interior-point-like method
-              and the required number of iterations is weakly correlated with
-              the number of variables.
-            * 'bvls' : Bounded-variable least-squares algorithm. This is
-              an active set method, which requires the number of iterations
-              comparable to the number of variables. Can't be used when `A` is
-              sparse or LinearOperator.
-
-        Default is 'trf'.
-    tol : float, optional
-        Tolerance parameter. The algorithm terminates if a relative change
-        of the cost function is less than `tol` on the last iteration.
-        Additionally, the first-order optimality measure is considered:
-
-            * ``method='trf'`` terminates if the uniform norm of the gradient,
-              scaled to account for the presence of the bounds, is less than
-              `tol`.
-            * ``method='bvls'`` terminates if Karush-Kuhn-Tucker conditions
-              are satisfied within `tol` tolerance.
-
-    lsq_solver : {None, 'exact', 'lsmr'}, optional
-        Method of solving unbounded least-squares problems throughout
-        iterations:
-
-            * 'exact' : Use dense QR or SVD decomposition approach. Can't be
-              used when `A` is sparse or LinearOperator.
-            * 'lsmr' : Use `scipy.sparse.linalg.lsmr` iterative procedure
-              which requires only matrix-vector product evaluations. Can't
-              be used with ``method='bvls'``.
-
-        If None (default), the solver is chosen based on type of `A`.
-    lsmr_tol : None, float or 'auto', optional
-        Tolerance parameters 'atol' and 'btol' for `scipy.sparse.linalg.lsmr`
-        If None (default), it is set to ``1e-2 * tol``. If 'auto', the
-        tolerance will be adjusted based on the optimality of the current
-        iterate, which can speed up the optimization process, but is not always
-        reliable.
-    max_iter : None or int, optional
-        Maximum number of iterations before termination. If None (default), it
-        is set to 100 for ``method='trf'`` or to the number of variables for
-        ``method='bvls'`` (not counting iterations for 'bvls' initialization).
-    verbose : {0, 1, 2}, optional
-        Level of algorithm's verbosity:
-
-            * 0 : work silently (default).
-            * 1 : display a termination report.
-            * 2 : display progress during iterations.
-    lsmr_maxiter : None or int, optional
-        Maximum number of iterations for the lsmr least squares solver,
-        if it is used (by setting ``lsq_solver='lsmr'``). If None (default), it
-        uses lsmr's default of ``min(m, n)`` where ``m`` and ``n`` are the
-        number of rows and columns of `A`, respectively. Has no effect if
-        ``lsq_solver='exact'``.
-
-    Returns
-    -------
-    OptimizeResult with the following fields defined:
-    x : ndarray, shape (n,)
-        Solution found.
-    cost : float
-        Value of the cost function at the solution.
-    fun : ndarray, shape (m,)
-        Vector of residuals at the solution.
-    optimality : float
-        First-order optimality measure. The exact meaning depends on `method`,
-        refer to the description of `tol` parameter.
-    active_mask : ndarray of int, shape (n,)
-        Each component shows whether a corresponding constraint is active
-        (that is, whether a variable is at the bound):
-
-            *  0 : a constraint is not active.
-            * -1 : a lower bound is active.
-            *  1 : an upper bound is active.
-
-        Might be somewhat arbitrary for the `trf` method as it generates a
-        sequence of strictly feasible iterates and active_mask is determined
-        within a tolerance threshold.
-    unbounded_sol : tuple
-        Unbounded least squares solution tuple returned by the least squares
-        solver (set with `lsq_solver` option). If `lsq_solver` is not set or is
-        set to ``'exact'``, the tuple contains an ndarray of shape (n,) with
-        the unbounded solution, an ndarray with the sum of squared residuals,
-        an int with the rank of `A`, and an ndarray with the singular values
-        of `A` (see NumPy's ``linalg.lstsq`` for more information). If
-        `lsq_solver` is set to ``'lsmr'``, the tuple contains an ndarray of
-        shape (n,) with the unbounded solution, an int with the exit code,
-        an int with the number of iterations, and five floats with
-        various norms and the condition number of `A` (see SciPy's
-        ``sparse.linalg.lsmr`` for more information). This output can be
-        useful for determining the convergence of the least squares solver,
-        particularly the iterative ``'lsmr'`` solver. The unbounded least
-        squares problem is to minimize ``0.5 * ||A x - b||**2``.
-    nit : int
-        Number of iterations. Zero if the unconstrained solution is optimal.
-    status : int
-        Reason for algorithm termination:
-
-            * -1 : the algorithm was not able to make progress on the last
-              iteration.
-            *  0 : the maximum number of iterations is exceeded.
-            *  1 : the first-order optimality measure is less than `tol`.
-            *  2 : the relative change of the cost function is less than `tol`.
-            *  3 : the unconstrained solution is optimal.
-
-    message : str
-        Verbal description of the termination reason.
-    success : bool
-        True if one of the convergence criteria is satisfied (`status` > 0).
-
-    See Also
-    --------
-    nnls : Linear least squares with non-negativity constraint.
-    least_squares : Nonlinear least squares with bounds on the variables.
-
-    Notes
-    -----
-    The algorithm first computes the unconstrained least-squares solution by
-    `numpy.linalg.lstsq` or `scipy.sparse.linalg.lsmr` depending on
-    `lsq_solver`. This solution is returned as optimal if it lies within the
-    bounds.
-
-    Method 'trf' runs the adaptation of the algorithm described in [STIR]_ for
-    a linear least-squares problem. The iterations are essentially the same as
-    in the nonlinear least-squares algorithm, but as the quadratic function
-    model is always accurate, we don't need to track or modify the radius of
-    a trust region. The line search (backtracking) is used as a safety net
-    when a selected step does not decrease the cost function. Read more
-    detailed description of the algorithm in `scipy.optimize.least_squares`.
-
-    Method 'bvls' runs a Python implementation of the algorithm described in
-    [BVLS]_. The algorithm maintains active and free sets of variables, on
-    each iteration chooses a new variable to move from the active set to the
-    free set and then solves the unconstrained least-squares problem on free
-    variables. This algorithm is guaranteed to give an accurate solution
-    eventually, but may require up to n iterations for a problem with n
-    variables. Additionally, an ad-hoc initialization procedure is
-    implemented, that determines which variables to set free or active
-    initially. It takes some number of iterations before actual BVLS starts,
-    but can significantly reduce the number of further iterations.
-
-    References
-    ----------
-    .. [STIR] M. A. Branch, T. F. Coleman, and Y. Li, "A Subspace, Interior,
-              and Conjugate Gradient Method for Large-Scale Bound-Constrained
-              Minimization Problems," SIAM Journal on Scientific Computing,
-              Vol. 21, Number 1, pp 1-23, 1999.
-    .. [BVLS] P. B. Start and R. L. Parker, "Bounded-Variable Least-Squares:
-              an Algorithm and Applications", Computational Statistics, 10,
-              129-141, 1995.
-
-    Examples
-    --------
-    In this example, a problem with a large sparse matrix and bounds on the
-    variables is solved.
-
-    >>> import numpy as np
-    >>> from scipy.sparse import rand
-    >>> from scipy.optimize import lsq_linear
-    >>> rng = np.random.default_rng()
-    ...
-    >>> m = 20000
-    >>> n = 10000
-    ...
-    >>> A = rand(m, n, density=1e-4, random_state=rng)
-    >>> b = rng.standard_normal(m)
-    ...
-    >>> lb = rng.standard_normal(n)
-    >>> ub = lb + 1
-    ...
-    >>> res = lsq_linear(A, b, bounds=(lb, ub), lsmr_tol='auto', verbose=1)
-    # may vary
-    The relative change of the cost function is less than `tol`.
-    Number of iterations 16, initial cost 1.5039e+04, final cost 1.1112e+04,
-    first-order optimality 4.66e-08.
-    """
-    if method not in ['trf', 'bvls']:
-        raise ValueError("`method` must be 'trf' or 'bvls'")
-
-    if lsq_solver not in [None, 'exact', 'lsmr']:
-        raise ValueError("`solver` must be None, 'exact' or 'lsmr'.")
-
-    if verbose not in [0, 1, 2]:
-        raise ValueError("`verbose` must be in [0, 1, 2].")
-
-    if issparse(A):
-        A = csr_matrix(A)
-    elif not isinstance(A, LinearOperator):
-        A = np.atleast_2d(np.asarray(A))
-
-    if method == 'bvls':
-        if lsq_solver == 'lsmr':
-            raise ValueError("method='bvls' can't be used with "
-                             "lsq_solver='lsmr'")
-
-        if not isinstance(A, np.ndarray):
-            raise ValueError("method='bvls' can't be used with `A` being "
-                             "sparse or LinearOperator.")
-
-    if lsq_solver is None:
-        if isinstance(A, np.ndarray):
-            lsq_solver = 'exact'
-        else:
-            lsq_solver = 'lsmr'
-    elif lsq_solver == 'exact' and not isinstance(A, np.ndarray):
-        raise ValueError("`exact` solver can't be used when `A` is "
-                         "sparse or LinearOperator.")
-
-    if len(A.shape) != 2:  # No ndim for LinearOperator.
-        raise ValueError("`A` must have at most 2 dimensions.")
-
-    if max_iter is not None and max_iter <= 0:
-        raise ValueError("`max_iter` must be None or positive integer.")
-
-    m, n = A.shape
-
-    b = np.atleast_1d(b)
-    if b.ndim != 1:
-        raise ValueError("`b` must have at most 1 dimension.")
-
-    if b.size != m:
-        raise ValueError("Inconsistent shapes between `A` and `b`.")
-
-    if isinstance(bounds, Bounds):
-        lb = bounds.lb
-        ub = bounds.ub
-    else:
-        lb, ub = prepare_bounds(bounds, n)
-
-    if lb.shape != (n,) and ub.shape != (n,):
-        raise ValueError("Bounds have wrong shape.")
-
-    if np.any(lb >= ub):
-        raise ValueError("Each lower bound must be strictly less than each "
-                         "upper bound.")
-
-    if lsmr_maxiter is not None and lsmr_maxiter < 1:
-        raise ValueError("`lsmr_maxiter` must be None or positive integer.")
-
-    if not ((isinstance(lsmr_tol, float) and lsmr_tol > 0) or
-            lsmr_tol in ('auto', None)):
-        raise ValueError("`lsmr_tol` must be None, 'auto', or positive float.")
-
-    if lsq_solver == 'exact':
-        unbd_lsq = np.linalg.lstsq(A, b, rcond=-1)
-    elif lsq_solver == 'lsmr':
-        first_lsmr_tol = lsmr_tol  # tol of first call to lsmr
-        if lsmr_tol is None or lsmr_tol == 'auto':
-            first_lsmr_tol = 1e-2 * tol  # default if lsmr_tol not defined
-        unbd_lsq = lsmr(A, b, maxiter=lsmr_maxiter,
-                        atol=first_lsmr_tol, btol=first_lsmr_tol)
-    x_lsq = unbd_lsq[0]  # extract the solution from the least squares solver
-
-    if in_bounds(x_lsq, lb, ub):
-        r = A @ x_lsq - b
-        cost = 0.5 * np.dot(r, r)
-        termination_status = 3
-        termination_message = TERMINATION_MESSAGES[termination_status]
-        g = compute_grad(A, r)
-        g_norm = norm(g, ord=np.inf)
-
-        if verbose > 0:
-            print(termination_message)
-            print(f"Final cost {cost:.4e}, first-order optimality {g_norm:.2e}")
-
-        return OptimizeResult(
-            x=x_lsq, fun=r, cost=cost, optimality=g_norm,
-            active_mask=np.zeros(n), unbounded_sol=unbd_lsq,
-            nit=0, status=termination_status,
-            message=termination_message, success=True)
-
-    if method == 'trf':
-        res = trf_linear(A, b, x_lsq, lb, ub, tol, lsq_solver, lsmr_tol,
-                         max_iter, verbose, lsmr_maxiter=lsmr_maxiter)
-    elif method == 'bvls':
-        res = bvls(A, b, x_lsq, lb, ub, tol, max_iter, verbose)
-
-    res.unbounded_sol = unbd_lsq
-    res.message = TERMINATION_MESSAGES[res.status]
-    res.success = res.status > 0
-
-    if verbose > 0:
-        print(res.message)
-        print(
-            f"Number of iterations {res.nit}, initial cost {res.initial_cost:.4e}, "
-            f"final cost {res.cost:.4e}, first-order optimality {res.optimality:.2e}."
-        )
-
-    del res.initial_cost
-
-    return res
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/trf.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/trf.py
deleted file mode 100644
index 9154bdba5b2cc41883811ba1820dfc251e515d6c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/trf.py
+++ /dev/null
@@ -1,560 +0,0 @@
-"""Trust Region Reflective algorithm for least-squares optimization.
-
-The algorithm is based on ideas from paper [STIR]_. The main idea is to
-account for the presence of the bounds by appropriate scaling of the variables (or,
-equivalently, changing a trust-region shape). Let's introduce a vector v:
-
-           | ub[i] - x[i], if g[i] < 0 and ub[i] < np.inf
-    v[i] = | x[i] - lb[i], if g[i] > 0 and lb[i] > -np.inf
-           | 1,           otherwise
-
-where g is the gradient of a cost function and lb, ub are the bounds. Its
-components are distances to the bounds at which the anti-gradient points (if
-this distance is finite). Define a scaling matrix D = diag(v**0.5).
-First-order optimality conditions can be stated as
-
-    D^2 g(x) = 0.
-
-Meaning that components of the gradient should be zero for strictly interior
-variables, and components must point inside the feasible region for variables
-on the bound.
-
-Now consider this system of equations as a new optimization problem. If the
-point x is strictly interior (not on the bound), then the left-hand side is
-differentiable and the Newton step for it satisfies
-
-    (D^2 H + diag(g) Jv) p = -D^2 g
-
-where H is the Hessian matrix (or its J^T J approximation in least squares),
-Jv is the Jacobian matrix of v with components -1, 1 or 0, such that all
-elements of matrix C = diag(g) Jv are non-negative. Introduce the change
-of the variables x = D x_h (_h would be "hat" in LaTeX). In the new variables,
-we have a Newton step satisfying
-
-    B_h p_h = -g_h,
-
-where B_h = D H D + C, g_h = D g. In least squares B_h = J_h^T J_h, where
-J_h = J D. Note that J_h and g_h are proper Jacobian and gradient with respect
-to "hat" variables. To guarantee global convergence we formulate a
-trust-region problem based on the Newton step in the new variables:
-
-    0.5 * p_h^T B_h p + g_h^T p_h -> min, ||p_h|| <= Delta
-
-In the original space B = H + D^{-1} C D^{-1}, and the equivalent trust-region
-problem is
-
-    0.5 * p^T B p + g^T p -> min, ||D^{-1} p|| <= Delta
-
-Here, the meaning of the matrix D becomes more clear: it alters the shape
-of a trust-region, such that large steps towards the bounds are not allowed.
-In the implementation, the trust-region problem is solved in "hat" space,
-but handling of the bounds is done in the original space (see below and read
-the code).
-
-The introduction of the matrix D doesn't allow to ignore bounds, the algorithm
-must keep iterates strictly feasible (to satisfy aforementioned
-differentiability), the parameter theta controls step back from the boundary
-(see the code for details).
-
-The algorithm does another important trick. If the trust-region solution
-doesn't fit into the bounds, then a reflected (from a firstly encountered
-bound) search direction is considered. For motivation and analysis refer to
-[STIR]_ paper (and other papers of the authors). In practice, it doesn't need
-a lot of justifications, the algorithm simply chooses the best step among
-three: a constrained trust-region step, a reflected step and a constrained
-Cauchy step (a minimizer along -g_h in "hat" space, or -D^2 g in the original
-space).
-
-Another feature is that a trust-region radius control strategy is modified to
-account for appearance of the diagonal C matrix (called diag_h in the code).
-
-Note that all described peculiarities are completely gone as we consider
-problems without bounds (the algorithm becomes a standard trust-region type
-algorithm very similar to ones implemented in MINPACK).
-
-The implementation supports two methods of solving the trust-region problem.
-The first, called 'exact', applies SVD on Jacobian and then solves the problem
-very accurately using the algorithm described in [JJMore]_. It is not
-applicable to large problem. The second, called 'lsmr', uses the 2-D subspace
-approach (sometimes called "indefinite dogleg"), where the problem is solved
-in a subspace spanned by the gradient and the approximate Gauss-Newton step
-found by ``scipy.sparse.linalg.lsmr``. A 2-D trust-region problem is
-reformulated as a 4th order algebraic equation and solved very accurately by
-``numpy.roots``. The subspace approach allows to solve very large problems
-(up to couple of millions of residuals on a regular PC), provided the Jacobian
-matrix is sufficiently sparse.
-
-References
-----------
-.. [STIR] Branch, M.A., T.F. Coleman, and Y. Li, "A Subspace, Interior,
-      and Conjugate Gradient Method for Large-Scale Bound-Constrained
-      Minimization Problems," SIAM Journal on Scientific Computing,
-      Vol. 21, Number 1, pp 1-23, 1999.
-.. [JJMore] More, J. J., "The Levenberg-Marquardt Algorithm: Implementation
-    and Theory," Numerical Analysis, ed. G. A. Watson, Lecture
-"""
-import numpy as np
-from numpy.linalg import norm
-from scipy.linalg import svd, qr
-from scipy.sparse.linalg import lsmr
-from scipy.optimize import OptimizeResult
-
-from .common import (
-    step_size_to_bound, find_active_constraints, in_bounds,
-    make_strictly_feasible, intersect_trust_region, solve_lsq_trust_region,
-    solve_trust_region_2d, minimize_quadratic_1d, build_quadratic_1d,
-    evaluate_quadratic, right_multiplied_operator, regularized_lsq_operator,
-    CL_scaling_vector, compute_grad, compute_jac_scale, check_termination,
-    update_tr_radius, scale_for_robust_loss_function, print_header_nonlinear,
-    print_iteration_nonlinear)
-
-
-def trf(fun, jac, x0, f0, J0, lb, ub, ftol, xtol, gtol, max_nfev, x_scale,
-        loss_function, tr_solver, tr_options, verbose):
-    # For efficiency, it makes sense to run the simplified version of the
-    # algorithm when no bounds are imposed. We decided to write the two
-    # separate functions. It violates the DRY principle, but the individual
-    # functions are kept the most readable.
-    if np.all(lb == -np.inf) and np.all(ub == np.inf):
-        return trf_no_bounds(
-            fun, jac, x0, f0, J0, ftol, xtol, gtol, max_nfev, x_scale,
-            loss_function, tr_solver, tr_options, verbose)
-    else:
-        return trf_bounds(
-            fun, jac, x0, f0, J0, lb, ub, ftol, xtol, gtol, max_nfev, x_scale,
-            loss_function, tr_solver, tr_options, verbose)
-
-
-def select_step(x, J_h, diag_h, g_h, p, p_h, d, Delta, lb, ub, theta):
-    """Select the best step according to Trust Region Reflective algorithm."""
-    if in_bounds(x + p, lb, ub):
-        p_value = evaluate_quadratic(J_h, g_h, p_h, diag=diag_h)
-        return p, p_h, -p_value
-
-    p_stride, hits = step_size_to_bound(x, p, lb, ub)
-
-    # Compute the reflected direction.
-    r_h = np.copy(p_h)
-    r_h[hits.astype(bool)] *= -1
-    r = d * r_h
-
-    # Restrict trust-region step, such that it hits the bound.
-    p *= p_stride
-    p_h *= p_stride
-    x_on_bound = x + p
-
-    # Reflected direction will cross first either feasible region or trust
-    # region boundary.
-    _, to_tr = intersect_trust_region(p_h, r_h, Delta)
-    to_bound, _ = step_size_to_bound(x_on_bound, r, lb, ub)
-
-    # Find lower and upper bounds on a step size along the reflected
-    # direction, considering the strict feasibility requirement. There is no
-    # single correct way to do that, the chosen approach seems to work best
-    # on test problems.
-    r_stride = min(to_bound, to_tr)
-    if r_stride > 0:
-        r_stride_l = (1 - theta) * p_stride / r_stride
-        if r_stride == to_bound:
-            r_stride_u = theta * to_bound
-        else:
-            r_stride_u = to_tr
-    else:
-        r_stride_l = 0
-        r_stride_u = -1
-
-    # Check if reflection step is available.
-    if r_stride_l <= r_stride_u:
-        a, b, c = build_quadratic_1d(J_h, g_h, r_h, s0=p_h, diag=diag_h)
-        r_stride, r_value = minimize_quadratic_1d(
-            a, b, r_stride_l, r_stride_u, c=c)
-        r_h *= r_stride
-        r_h += p_h
-        r = r_h * d
-    else:
-        r_value = np.inf
-
-    # Now correct p_h to make it strictly interior.
-    p *= theta
-    p_h *= theta
-    p_value = evaluate_quadratic(J_h, g_h, p_h, diag=diag_h)
-
-    ag_h = -g_h
-    ag = d * ag_h
-
-    to_tr = Delta / norm(ag_h)
-    to_bound, _ = step_size_to_bound(x, ag, lb, ub)
-    if to_bound < to_tr:
-        ag_stride = theta * to_bound
-    else:
-        ag_stride = to_tr
-
-    a, b = build_quadratic_1d(J_h, g_h, ag_h, diag=diag_h)
-    ag_stride, ag_value = minimize_quadratic_1d(a, b, 0, ag_stride)
-    ag_h *= ag_stride
-    ag *= ag_stride
-
-    if p_value < r_value and p_value < ag_value:
-        return p, p_h, -p_value
-    elif r_value < p_value and r_value < ag_value:
-        return r, r_h, -r_value
-    else:
-        return ag, ag_h, -ag_value
-
-
-def trf_bounds(fun, jac, x0, f0, J0, lb, ub, ftol, xtol, gtol, max_nfev,
-               x_scale, loss_function, tr_solver, tr_options, verbose):
-    x = x0.copy()
-
-    f = f0
-    f_true = f.copy()
-    nfev = 1
-
-    J = J0
-    njev = 1
-    m, n = J.shape
-
-    if loss_function is not None:
-        rho = loss_function(f)
-        cost = 0.5 * np.sum(rho[0])
-        J, f = scale_for_robust_loss_function(J, f, rho)
-    else:
-        cost = 0.5 * np.dot(f, f)
-
-    g = compute_grad(J, f)
-
-    jac_scale = isinstance(x_scale, str) and x_scale == 'jac'
-    if jac_scale:
-        scale, scale_inv = compute_jac_scale(J)
-    else:
-        scale, scale_inv = x_scale, 1 / x_scale
-
-    v, dv = CL_scaling_vector(x, g, lb, ub)
-    v[dv != 0] *= scale_inv[dv != 0]
-    Delta = norm(x0 * scale_inv / v**0.5)
-    if Delta == 0:
-        Delta = 1.0
-
-    g_norm = norm(g * v, ord=np.inf)
-
-    f_augmented = np.zeros(m + n)
-    if tr_solver == 'exact':
-        J_augmented = np.empty((m + n, n))
-    elif tr_solver == 'lsmr':
-        reg_term = 0.0
-        regularize = tr_options.pop('regularize', True)
-
-    if max_nfev is None:
-        max_nfev = x0.size * 100
-
-    alpha = 0.0  # "Levenberg-Marquardt" parameter
-
-    termination_status = None
-    iteration = 0
-    step_norm = None
-    actual_reduction = None
-
-    if verbose == 2:
-        print_header_nonlinear()
-
-    while True:
-        v, dv = CL_scaling_vector(x, g, lb, ub)
-
-        g_norm = norm(g * v, ord=np.inf)
-        if g_norm < gtol:
-            termination_status = 1
-
-        if verbose == 2:
-            print_iteration_nonlinear(iteration, nfev, cost, actual_reduction,
-                                      step_norm, g_norm)
-
-        if termination_status is not None or nfev == max_nfev:
-            break
-
-        # Now compute variables in "hat" space. Here, we also account for
-        # scaling introduced by `x_scale` parameter. This part is a bit tricky,
-        # you have to write down the formulas and see how the trust-region
-        # problem is formulated when the two types of scaling are applied.
-        # The idea is that first we apply `x_scale` and then apply Coleman-Li
-        # approach in the new variables.
-
-        # v is recomputed in the variables after applying `x_scale`, note that
-        # components which were identically 1 not affected.
-        v[dv != 0] *= scale_inv[dv != 0]
-
-        # Here, we apply two types of scaling.
-        d = v**0.5 * scale
-
-        # C = diag(g * scale) Jv
-        diag_h = g * dv * scale
-
-        # After all this has been done, we continue normally.
-
-        # "hat" gradient.
-        g_h = d * g
-
-        f_augmented[:m] = f
-        if tr_solver == 'exact':
-            J_augmented[:m] = J * d
-            J_h = J_augmented[:m]  # Memory view.
-            J_augmented[m:] = np.diag(diag_h**0.5)
-            U, s, V = svd(J_augmented, full_matrices=False)
-            V = V.T
-            uf = U.T.dot(f_augmented)
-        elif tr_solver == 'lsmr':
-            J_h = right_multiplied_operator(J, d)
-
-            if regularize:
-                a, b = build_quadratic_1d(J_h, g_h, -g_h, diag=diag_h)
-                to_tr = Delta / norm(g_h)
-                ag_value = minimize_quadratic_1d(a, b, 0, to_tr)[1]
-                reg_term = -ag_value / Delta**2
-
-            lsmr_op = regularized_lsq_operator(J_h, (diag_h + reg_term)**0.5)
-            gn_h = lsmr(lsmr_op, f_augmented, **tr_options)[0]
-            S = np.vstack((g_h, gn_h)).T
-            S, _ = qr(S, mode='economic')
-            JS = J_h.dot(S)  # LinearOperator does dot too.
-            B_S = np.dot(JS.T, JS) + np.dot(S.T * diag_h, S)
-            g_S = S.T.dot(g_h)
-
-        # theta controls step back step ratio from the bounds.
-        theta = max(0.995, 1 - g_norm)
-
-        actual_reduction = -1
-        while actual_reduction <= 0 and nfev < max_nfev:
-            if tr_solver == 'exact':
-                p_h, alpha, n_iter = solve_lsq_trust_region(
-                    n, m, uf, s, V, Delta, initial_alpha=alpha)
-            elif tr_solver == 'lsmr':
-                p_S, _ = solve_trust_region_2d(B_S, g_S, Delta)
-                p_h = S.dot(p_S)
-
-            p = d * p_h  # Trust-region solution in the original space.
-            step, step_h, predicted_reduction = select_step(
-                x, J_h, diag_h, g_h, p, p_h, d, Delta, lb, ub, theta)
-
-            x_new = make_strictly_feasible(x + step, lb, ub, rstep=0)
-            f_new = fun(x_new)
-            nfev += 1
-
-            step_h_norm = norm(step_h)
-
-            if not np.all(np.isfinite(f_new)):
-                Delta = 0.25 * step_h_norm
-                continue
-
-            # Usual trust-region step quality estimation.
-            if loss_function is not None:
-                cost_new = loss_function(f_new, cost_only=True)
-            else:
-                cost_new = 0.5 * np.dot(f_new, f_new)
-            actual_reduction = cost - cost_new
-            Delta_new, ratio = update_tr_radius(
-                Delta, actual_reduction, predicted_reduction,
-                step_h_norm, step_h_norm > 0.95 * Delta)
-
-            step_norm = norm(step)
-            termination_status = check_termination(
-                actual_reduction, cost, step_norm, norm(x), ratio, ftol, xtol)
-            if termination_status is not None:
-                break
-
-            alpha *= Delta / Delta_new
-            Delta = Delta_new
-
-        if actual_reduction > 0:
-            x = x_new
-
-            f = f_new
-            f_true = f.copy()
-
-            cost = cost_new
-
-            J = jac(x, f)
-            njev += 1
-
-            if loss_function is not None:
-                rho = loss_function(f)
-                J, f = scale_for_robust_loss_function(J, f, rho)
-
-            g = compute_grad(J, f)
-
-            if jac_scale:
-                scale, scale_inv = compute_jac_scale(J, scale_inv)
-        else:
-            step_norm = 0
-            actual_reduction = 0
-
-        iteration += 1
-
-    if termination_status is None:
-        termination_status = 0
-
-    active_mask = find_active_constraints(x, lb, ub, rtol=xtol)
-    return OptimizeResult(
-        x=x, cost=cost, fun=f_true, jac=J, grad=g, optimality=g_norm,
-        active_mask=active_mask, nfev=nfev, njev=njev,
-        status=termination_status)
-
-
-def trf_no_bounds(fun, jac, x0, f0, J0, ftol, xtol, gtol, max_nfev,
-                  x_scale, loss_function, tr_solver, tr_options, verbose):
-    x = x0.copy()
-
-    f = f0
-    f_true = f.copy()
-    nfev = 1
-
-    J = J0
-    njev = 1
-    m, n = J.shape
-
-    if loss_function is not None:
-        rho = loss_function(f)
-        cost = 0.5 * np.sum(rho[0])
-        J, f = scale_for_robust_loss_function(J, f, rho)
-    else:
-        cost = 0.5 * np.dot(f, f)
-
-    g = compute_grad(J, f)
-
-    jac_scale = isinstance(x_scale, str) and x_scale == 'jac'
-    if jac_scale:
-        scale, scale_inv = compute_jac_scale(J)
-    else:
-        scale, scale_inv = x_scale, 1 / x_scale
-
-    Delta = norm(x0 * scale_inv)
-    if Delta == 0:
-        Delta = 1.0
-
-    if tr_solver == 'lsmr':
-        reg_term = 0
-        damp = tr_options.pop('damp', 0.0)
-        regularize = tr_options.pop('regularize', True)
-
-    if max_nfev is None:
-        max_nfev = x0.size * 100
-
-    alpha = 0.0  # "Levenberg-Marquardt" parameter
-
-    termination_status = None
-    iteration = 0
-    step_norm = None
-    actual_reduction = None
-
-    if verbose == 2:
-        print_header_nonlinear()
-
-    while True:
-        g_norm = norm(g, ord=np.inf)
-        if g_norm < gtol:
-            termination_status = 1
-
-        if verbose == 2:
-            print_iteration_nonlinear(iteration, nfev, cost, actual_reduction,
-                                      step_norm, g_norm)
-
-        if termination_status is not None or nfev == max_nfev:
-            break
-
-        d = scale
-        g_h = d * g
-
-        if tr_solver == 'exact':
-            J_h = J * d
-            U, s, V = svd(J_h, full_matrices=False)
-            V = V.T
-            uf = U.T.dot(f)
-        elif tr_solver == 'lsmr':
-            J_h = right_multiplied_operator(J, d)
-
-            if regularize:
-                a, b = build_quadratic_1d(J_h, g_h, -g_h)
-                to_tr = Delta / norm(g_h)
-                ag_value = minimize_quadratic_1d(a, b, 0, to_tr)[1]
-                reg_term = -ag_value / Delta**2
-
-            damp_full = (damp**2 + reg_term)**0.5
-            gn_h = lsmr(J_h, f, damp=damp_full, **tr_options)[0]
-            S = np.vstack((g_h, gn_h)).T
-            S, _ = qr(S, mode='economic')
-            JS = J_h.dot(S)
-            B_S = np.dot(JS.T, JS)
-            g_S = S.T.dot(g_h)
-
-        actual_reduction = -1
-        while actual_reduction <= 0 and nfev < max_nfev:
-            if tr_solver == 'exact':
-                step_h, alpha, n_iter = solve_lsq_trust_region(
-                    n, m, uf, s, V, Delta, initial_alpha=alpha)
-            elif tr_solver == 'lsmr':
-                p_S, _ = solve_trust_region_2d(B_S, g_S, Delta)
-                step_h = S.dot(p_S)
-
-            predicted_reduction = -evaluate_quadratic(J_h, g_h, step_h)
-            step = d * step_h
-            x_new = x + step
-            f_new = fun(x_new)
-            nfev += 1
-
-            step_h_norm = norm(step_h)
-
-            if not np.all(np.isfinite(f_new)):
-                Delta = 0.25 * step_h_norm
-                continue
-
-            # Usual trust-region step quality estimation.
-            if loss_function is not None:
-                cost_new = loss_function(f_new, cost_only=True)
-            else:
-                cost_new = 0.5 * np.dot(f_new, f_new)
-            actual_reduction = cost - cost_new
-
-            Delta_new, ratio = update_tr_radius(
-                Delta, actual_reduction, predicted_reduction,
-                step_h_norm, step_h_norm > 0.95 * Delta)
-
-            step_norm = norm(step)
-            termination_status = check_termination(
-                actual_reduction, cost, step_norm, norm(x), ratio, ftol, xtol)
-            if termination_status is not None:
-                break
-
-            alpha *= Delta / Delta_new
-            Delta = Delta_new
-
-        if actual_reduction > 0:
-            x = x_new
-
-            f = f_new
-            f_true = f.copy()
-
-            cost = cost_new
-
-            J = jac(x, f)
-            njev += 1
-
-            if loss_function is not None:
-                rho = loss_function(f)
-                J, f = scale_for_robust_loss_function(J, f, rho)
-
-            g = compute_grad(J, f)
-
-            if jac_scale:
-                scale, scale_inv = compute_jac_scale(J, scale_inv)
-        else:
-            step_norm = 0
-            actual_reduction = 0
-
-        iteration += 1
-
-    if termination_status is None:
-        termination_status = 0
-
-    active_mask = np.zeros_like(x)
-    return OptimizeResult(
-        x=x, cost=cost, fun=f_true, jac=J, grad=g, optimality=g_norm,
-        active_mask=active_mask, nfev=nfev, njev=njev,
-        status=termination_status)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/trf_linear.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/trf_linear.py
deleted file mode 100644
index dd752763179bcf97945c7f34ce6a9e49e85c819e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_lsq/trf_linear.py
+++ /dev/null
@@ -1,249 +0,0 @@
-"""The adaptation of Trust Region Reflective algorithm for a linear
-least-squares problem."""
-import numpy as np
-from numpy.linalg import norm
-from scipy.linalg import qr, solve_triangular
-from scipy.sparse.linalg import lsmr
-from scipy.optimize import OptimizeResult
-
-from .givens_elimination import givens_elimination
-from .common import (
-    EPS, step_size_to_bound, find_active_constraints, in_bounds,
-    make_strictly_feasible, build_quadratic_1d, evaluate_quadratic,
-    minimize_quadratic_1d, CL_scaling_vector, reflective_transformation,
-    print_header_linear, print_iteration_linear, compute_grad,
-    regularized_lsq_operator, right_multiplied_operator)
-
-
-def regularized_lsq_with_qr(m, n, R, QTb, perm, diag, copy_R=True):
-    """Solve regularized least squares using information from QR-decomposition.
-
-    The initial problem is to solve the following system in a least-squares
-    sense::
-
-        A x = b
-        D x = 0
-
-    where D is diagonal matrix. The method is based on QR decomposition
-    of the form A P = Q R, where P is a column permutation matrix, Q is an
-    orthogonal matrix and R is an upper triangular matrix.
-
-    Parameters
-    ----------
-    m, n : int
-        Initial shape of A.
-    R : ndarray, shape (n, n)
-        Upper triangular matrix from QR decomposition of A.
-    QTb : ndarray, shape (n,)
-        First n components of Q^T b.
-    perm : ndarray, shape (n,)
-        Array defining column permutation of A, such that ith column of
-        P is perm[i]-th column of identity matrix.
-    diag : ndarray, shape (n,)
-        Array containing diagonal elements of D.
-
-    Returns
-    -------
-    x : ndarray, shape (n,)
-        Found least-squares solution.
-    """
-    if copy_R:
-        R = R.copy()
-    v = QTb.copy()
-
-    givens_elimination(R, v, diag[perm])
-
-    abs_diag_R = np.abs(np.diag(R))
-    threshold = EPS * max(m, n) * np.max(abs_diag_R)
-    nns, = np.nonzero(abs_diag_R > threshold)
-
-    R = R[np.ix_(nns, nns)]
-    v = v[nns]
-
-    x = np.zeros(n)
-    x[perm[nns]] = solve_triangular(R, v)
-
-    return x
-
-
-def backtracking(A, g, x, p, theta, p_dot_g, lb, ub):
-    """Find an appropriate step size using backtracking line search."""
-    alpha = 1
-    while True:
-        x_new, _ = reflective_transformation(x + alpha * p, lb, ub)
-        step = x_new - x
-        cost_change = -evaluate_quadratic(A, g, step)
-        if cost_change > -0.1 * alpha * p_dot_g:
-            break
-        alpha *= 0.5
-
-    active = find_active_constraints(x_new, lb, ub)
-    if np.any(active != 0):
-        x_new, _ = reflective_transformation(x + theta * alpha * p, lb, ub)
-        x_new = make_strictly_feasible(x_new, lb, ub, rstep=0)
-        step = x_new - x
-        cost_change = -evaluate_quadratic(A, g, step)
-
-    return x, step, cost_change
-
-
-def select_step(x, A_h, g_h, c_h, p, p_h, d, lb, ub, theta):
-    """Select the best step according to Trust Region Reflective algorithm."""
-    if in_bounds(x + p, lb, ub):
-        return p
-
-    p_stride, hits = step_size_to_bound(x, p, lb, ub)
-    r_h = np.copy(p_h)
-    r_h[hits.astype(bool)] *= -1
-    r = d * r_h
-
-    # Restrict step, such that it hits the bound.
-    p *= p_stride
-    p_h *= p_stride
-    x_on_bound = x + p
-
-    # Find the step size along reflected direction.
-    r_stride_u, _ = step_size_to_bound(x_on_bound, r, lb, ub)
-
-    # Stay interior.
-    r_stride_l = (1 - theta) * r_stride_u
-    r_stride_u *= theta
-
-    if r_stride_u > 0:
-        a, b, c = build_quadratic_1d(A_h, g_h, r_h, s0=p_h, diag=c_h)
-        r_stride, r_value = minimize_quadratic_1d(
-            a, b, r_stride_l, r_stride_u, c=c)
-        r_h = p_h + r_h * r_stride
-        r = d * r_h
-    else:
-        r_value = np.inf
-
-    # Now correct p_h to make it strictly interior.
-    p_h *= theta
-    p *= theta
-    p_value = evaluate_quadratic(A_h, g_h, p_h, diag=c_h)
-
-    ag_h = -g_h
-    ag = d * ag_h
-    ag_stride_u, _ = step_size_to_bound(x, ag, lb, ub)
-    ag_stride_u *= theta
-    a, b = build_quadratic_1d(A_h, g_h, ag_h, diag=c_h)
-    ag_stride, ag_value = minimize_quadratic_1d(a, b, 0, ag_stride_u)
-    ag *= ag_stride
-
-    if p_value < r_value and p_value < ag_value:
-        return p
-    elif r_value < p_value and r_value < ag_value:
-        return r
-    else:
-        return ag
-
-
-def trf_linear(A, b, x_lsq, lb, ub, tol, lsq_solver, lsmr_tol,
-               max_iter, verbose, *, lsmr_maxiter=None):
-    m, n = A.shape
-    x, _ = reflective_transformation(x_lsq, lb, ub)
-    x = make_strictly_feasible(x, lb, ub, rstep=0.1)
-
-    if lsq_solver == 'exact':
-        QT, R, perm = qr(A, mode='economic', pivoting=True)
-        QT = QT.T
-
-        if m < n:
-            R = np.vstack((R, np.zeros((n - m, n))))
-
-        QTr = np.zeros(n)
-        k = min(m, n)
-    elif lsq_solver == 'lsmr':
-        r_aug = np.zeros(m + n)
-        auto_lsmr_tol = False
-        if lsmr_tol is None:
-            lsmr_tol = 1e-2 * tol
-        elif lsmr_tol == 'auto':
-            auto_lsmr_tol = True
-
-    r = A.dot(x) - b
-    g = compute_grad(A, r)
-    cost = 0.5 * np.dot(r, r)
-    initial_cost = cost
-
-    termination_status = None
-    step_norm = None
-    cost_change = None
-
-    if max_iter is None:
-        max_iter = 100
-
-    if verbose == 2:
-        print_header_linear()
-
-    for iteration in range(max_iter):
-        v, dv = CL_scaling_vector(x, g, lb, ub)
-        g_scaled = g * v
-        g_norm = norm(g_scaled, ord=np.inf)
-        if g_norm < tol:
-            termination_status = 1
-
-        if verbose == 2:
-            print_iteration_linear(iteration, cost, cost_change,
-                                   step_norm, g_norm)
-
-        if termination_status is not None:
-            break
-
-        diag_h = g * dv
-        diag_root_h = diag_h ** 0.5
-        d = v ** 0.5
-        g_h = d * g
-
-        A_h = right_multiplied_operator(A, d)
-        if lsq_solver == 'exact':
-            QTr[:k] = QT.dot(r)
-            p_h = -regularized_lsq_with_qr(m, n, R * d[perm], QTr, perm,
-                                           diag_root_h, copy_R=False)
-        elif lsq_solver == 'lsmr':
-            lsmr_op = regularized_lsq_operator(A_h, diag_root_h)
-            r_aug[:m] = r
-            if auto_lsmr_tol:
-                eta = 1e-2 * min(0.5, g_norm)
-                lsmr_tol = max(EPS, min(0.1, eta * g_norm))
-            p_h = -lsmr(lsmr_op, r_aug, maxiter=lsmr_maxiter,
-                        atol=lsmr_tol, btol=lsmr_tol)[0]
-
-        p = d * p_h
-
-        p_dot_g = np.dot(p, g)
-        if p_dot_g > 0:
-            termination_status = -1
-
-        theta = 1 - min(0.005, g_norm)
-        step = select_step(x, A_h, g_h, diag_h, p, p_h, d, lb, ub, theta)
-        cost_change = -evaluate_quadratic(A, g, step)
-
-        # Perhaps almost never executed, the idea is that `p` is descent
-        # direction thus we must find acceptable cost decrease using simple
-        # "backtracking", otherwise the algorithm's logic would break.
-        if cost_change < 0:
-            x, step, cost_change = backtracking(
-                A, g, x, p, theta, p_dot_g, lb, ub)
-        else:
-            x = make_strictly_feasible(x + step, lb, ub, rstep=0)
-
-        step_norm = norm(step)
-        r = A.dot(x) - b
-        g = compute_grad(A, r)
-
-        if cost_change < tol * cost:
-            termination_status = 2
-
-        cost = 0.5 * np.dot(r, r)
-
-    if termination_status is None:
-        termination_status = 0
-
-    active_mask = find_active_constraints(x, lb, ub, rtol=tol)
-
-    return OptimizeResult(
-        x=x, fun=r, cost=cost, optimality=g_norm, active_mask=active_mask,
-        nit=iteration + 1, status=termination_status,
-        initial_cost=initial_cost)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_milp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_milp.py
deleted file mode 100644
index 5ec771eba471e37aac5aa3008b642f68167fbafb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_milp.py
+++ /dev/null
@@ -1,392 +0,0 @@
-import warnings
-import numpy as np
-from scipy.sparse import csc_array, vstack, issparse
-from scipy._lib._util import VisibleDeprecationWarning
-from ._highs._highs_wrapper import _highs_wrapper  # type: ignore[import-not-found,import-untyped]
-from ._constraints import LinearConstraint, Bounds
-from ._optimize import OptimizeResult
-from ._linprog_highs import _highs_to_scipy_status_message
-
-
-def _constraints_to_components(constraints):
-    """
-    Convert sequence of constraints to a single set of components A, b_l, b_u.
-
-    `constraints` could be
-
-    1. A LinearConstraint
-    2. A tuple representing a LinearConstraint
-    3. An invalid object
-    4. A sequence of composed entirely of objects of type 1/2
-    5. A sequence containing at least one object of type 3
-
-    We want to accept 1, 2, and 4 and reject 3 and 5.
-    """
-    message = ("`constraints` (or each element within `constraints`) must be "
-               "convertible into an instance of "
-               "`scipy.optimize.LinearConstraint`.")
-    As = []
-    b_ls = []
-    b_us = []
-
-    # Accept case 1 by standardizing as case 4
-    if isinstance(constraints, LinearConstraint):
-        constraints = [constraints]
-    else:
-        # Reject case 3
-        try:
-            iter(constraints)
-        except TypeError as exc:
-            raise ValueError(message) from exc
-
-        # Accept case 2 by standardizing as case 4
-        if len(constraints) == 3:
-            # argument could be a single tuple representing a LinearConstraint
-            try:
-                constraints = [LinearConstraint(*constraints)]
-            except (TypeError, ValueError, VisibleDeprecationWarning):
-                # argument was not a tuple representing a LinearConstraint
-                pass
-
-    # Address cases 4/5
-    for constraint in constraints:
-        # if it's not a LinearConstraint or something that represents a
-        # LinearConstraint at this point, it's invalid
-        if not isinstance(constraint, LinearConstraint):
-            try:
-                constraint = LinearConstraint(*constraint)
-            except TypeError as exc:
-                raise ValueError(message) from exc
-        As.append(csc_array(constraint.A))
-        b_ls.append(np.atleast_1d(constraint.lb).astype(np.float64))
-        b_us.append(np.atleast_1d(constraint.ub).astype(np.float64))
-
-    if len(As) > 1:
-        A = vstack(As, format="csc")
-        b_l = np.concatenate(b_ls)
-        b_u = np.concatenate(b_us)
-    else:  # avoid unnecessary copying
-        A = As[0]
-        b_l = b_ls[0]
-        b_u = b_us[0]
-
-    return A, b_l, b_u
-
-
-def _milp_iv(c, integrality, bounds, constraints, options):
-    # objective IV
-    if issparse(c):
-        raise ValueError("`c` must be a dense array.")
-    c = np.atleast_1d(c).astype(np.float64)
-    if c.ndim != 1 or c.size == 0 or not np.all(np.isfinite(c)):
-        message = ("`c` must be a one-dimensional array of finite numbers "
-                   "with at least one element.")
-        raise ValueError(message)
-
-    # integrality IV
-    if issparse(integrality):
-        raise ValueError("`integrality` must be a dense array.")
-    message = ("`integrality` must contain integers 0-3 and be broadcastable "
-               "to `c.shape`.")
-    if integrality is None:
-        integrality = 0
-    try:
-        integrality = np.broadcast_to(integrality, c.shape).astype(np.uint8)
-    except ValueError:
-        raise ValueError(message)
-    if integrality.min() < 0 or integrality.max() > 3:
-        raise ValueError(message)
-
-    # bounds IV
-    if bounds is None:
-        bounds = Bounds(0, np.inf)
-    elif not isinstance(bounds, Bounds):
-        message = ("`bounds` must be convertible into an instance of "
-                   "`scipy.optimize.Bounds`.")
-        try:
-            bounds = Bounds(*bounds)
-        except TypeError as exc:
-            raise ValueError(message) from exc
-
-    try:
-        lb = np.broadcast_to(bounds.lb, c.shape).astype(np.float64)
-        ub = np.broadcast_to(bounds.ub, c.shape).astype(np.float64)
-    except (ValueError, TypeError) as exc:
-        message = ("`bounds.lb` and `bounds.ub` must contain reals and "
-                   "be broadcastable to `c.shape`.")
-        raise ValueError(message) from exc
-
-    # constraints IV
-    if not constraints:
-        constraints = [LinearConstraint(np.empty((0, c.size)),
-                                        np.empty((0,)), np.empty((0,)))]
-    try:
-        A, b_l, b_u = _constraints_to_components(constraints)
-    except ValueError as exc:
-        message = ("`constraints` (or each element within `constraints`) must "
-                   "be convertible into an instance of "
-                   "`scipy.optimize.LinearConstraint`.")
-        raise ValueError(message) from exc
-
-    if A.shape != (b_l.size, c.size):
-        message = "The shape of `A` must be (len(b_l), len(c))."
-        raise ValueError(message)
-    indptr, indices, data = A.indptr, A.indices, A.data.astype(np.float64)
-
-    # options IV
-    options = options or {}
-    supported_options = {'disp', 'presolve', 'time_limit', 'node_limit',
-                         'mip_rel_gap'}
-    unsupported_options = set(options).difference(supported_options)
-    if unsupported_options:
-        message = (f"Unrecognized options detected: {unsupported_options}. "
-                   "These will be passed to HiGHS verbatim.")
-        warnings.warn(message, RuntimeWarning, stacklevel=3)
-    options_iv = {'log_to_console': options.pop("disp", False),
-                  'mip_max_nodes': options.pop("node_limit", None)}
-    options_iv.update(options)
-
-    return c, integrality, lb, ub, indptr, indices, data, b_l, b_u, options_iv
-
-
-def milp(c, *, integrality=None, bounds=None, constraints=None, options=None):
-    r"""
-    Mixed-integer linear programming
-
-    Solves problems of the following form:
-
-    .. math::
-
-        \min_x \ & c^T x \\
-        \mbox{such that} \ & b_l \leq A x \leq b_u,\\
-        & l \leq x \leq u, \\
-        & x_i \in \mathbb{Z}, i \in X_i
-
-    where :math:`x` is a vector of decision variables;
-    :math:`c`, :math:`b_l`, :math:`b_u`, :math:`l`, and :math:`u` are vectors;
-    :math:`A` is a matrix, and :math:`X_i` is the set of indices of
-    decision variables that must be integral. (In this context, a
-    variable that can assume only integer values is said to be "integral";
-    it has an "integrality" constraint.)
-
-    Alternatively, that's:
-
-    minimize::
-
-        c @ x
-
-    such that::
-
-        b_l <= A @ x <= b_u
-        l <= x <= u
-        Specified elements of x must be integers
-
-    By default, ``l = 0`` and ``u = np.inf`` unless specified with
-    ``bounds``.
-
-    Parameters
-    ----------
-    c : 1D dense array_like
-        The coefficients of the linear objective function to be minimized.
-        `c` is converted to a double precision array before the problem is
-        solved.
-    integrality : 1D dense array_like, optional
-        Indicates the type of integrality constraint on each decision variable.
-
-        ``0`` : Continuous variable; no integrality constraint.
-
-        ``1`` : Integer variable; decision variable must be an integer
-        within `bounds`.
-
-        ``2`` : Semi-continuous variable; decision variable must be within
-        `bounds` or take value ``0``.
-
-        ``3`` : Semi-integer variable; decision variable must be an integer
-        within `bounds` or take value ``0``.
-
-        By default, all variables are continuous. `integrality` is converted
-        to an array of integers before the problem is solved.
-
-    bounds : scipy.optimize.Bounds, optional
-        Bounds on the decision variables. Lower and upper bounds are converted
-        to double precision arrays before the problem is solved. The
-        ``keep_feasible`` parameter of the `Bounds` object is ignored. If
-        not specified, all decision variables are constrained to be
-        non-negative.
-    constraints : sequence of scipy.optimize.LinearConstraint, optional
-        Linear constraints of the optimization problem. Arguments may be
-        one of the following:
-
-        1. A single `LinearConstraint` object
-        2. A single tuple that can be converted to a `LinearConstraint` object
-           as ``LinearConstraint(*constraints)``
-        3. A sequence composed entirely of objects of type 1. and 2.
-
-        Before the problem is solved, all values are converted to double
-        precision, and the matrices of constraint coefficients are converted to
-        instances of `scipy.sparse.csc_array`. The ``keep_feasible`` parameter
-        of `LinearConstraint` objects is ignored.
-    options : dict, optional
-        A dictionary of solver options. The following keys are recognized.
-
-        disp : bool (default: ``False``)
-            Set to ``True`` if indicators of optimization status are to be
-            printed to the console during optimization.
-        node_limit : int, optional
-            The maximum number of nodes (linear program relaxations) to solve
-            before stopping. Default is no maximum number of nodes.
-        presolve : bool (default: ``True``)
-            Presolve attempts to identify trivial infeasibilities,
-            identify trivial unboundedness, and simplify the problem before
-            sending it to the main solver.
-        time_limit : float, optional
-            The maximum number of seconds allotted to solve the problem.
-            Default is no time limit.
-        mip_rel_gap : float, optional
-            Termination criterion for MIP solver: solver will terminate when
-            the gap between the primal objective value and the dual objective
-            bound, scaled by the primal objective value, is <= mip_rel_gap.
-
-    Returns
-    -------
-    res : OptimizeResult
-        An instance of :class:`scipy.optimize.OptimizeResult`. The object
-        is guaranteed to have the following attributes.
-
-        status : int
-            An integer representing the exit status of the algorithm.
-
-            ``0`` : Optimal solution found.
-
-            ``1`` : Iteration or time limit reached.
-
-            ``2`` : Problem is infeasible.
-
-            ``3`` : Problem is unbounded.
-
-            ``4`` : Other; see message for details.
-
-        success : bool
-            ``True`` when an optimal solution is found and ``False`` otherwise.
-
-        message : str
-            A string descriptor of the exit status of the algorithm.
-
-        The following attributes will also be present, but the values may be
-        ``None``, depending on the solution status.
-
-        x : ndarray
-            The values of the decision variables that minimize the
-            objective function while satisfying the constraints.
-        fun : float
-            The optimal value of the objective function ``c @ x``.
-        mip_node_count : int
-            The number of subproblems or "nodes" solved by the MILP solver.
-        mip_dual_bound : float
-            The MILP solver's final estimate of the lower bound on the optimal
-            solution.
-        mip_gap : float
-            The difference between the primal objective value and the dual
-            objective bound, scaled by the primal objective value.
-
-    Notes
-    -----
-    `milp` is a wrapper of the HiGHS linear optimization software [1]_. The
-    algorithm is deterministic, and it typically finds the global optimum of
-    moderately challenging mixed-integer linear programs (when it exists).
-
-    References
-    ----------
-    .. [1] Huangfu, Q., Galabova, I., Feldmeier, M., and Hall, J. A. J.
-           "HiGHS - high performance software for linear optimization."
-           https://highs.dev/
-    .. [2] Huangfu, Q. and Hall, J. A. J. "Parallelizing the dual revised
-           simplex method." Mathematical Programming Computation, 10 (1),
-           119-142, 2018. DOI: 10.1007/s12532-017-0130-5
-
-    Examples
-    --------
-    Consider the problem at
-    https://en.wikipedia.org/wiki/Integer_programming#Example, which is
-    expressed as a maximization problem of two variables. Since `milp` requires
-    that the problem be expressed as a minimization problem, the objective
-    function coefficients on the decision variables are:
-
-    >>> import numpy as np
-    >>> c = -np.array([0, 1])
-
-    Note the negative sign: we maximize the original objective function
-    by minimizing the negative of the objective function.
-
-    We collect the coefficients of the constraints into arrays like:
-
-    >>> A = np.array([[-1, 1], [3, 2], [2, 3]])
-    >>> b_u = np.array([1, 12, 12])
-    >>> b_l = np.full_like(b_u, -np.inf, dtype=float)
-
-    Because there is no lower limit on these constraints, we have defined a
-    variable ``b_l`` full of values representing negative infinity. This may
-    be unfamiliar to users of `scipy.optimize.linprog`, which only accepts
-    "less than" (or "upper bound") inequality constraints of the form
-    ``A_ub @ x <= b_u``. By accepting both ``b_l`` and ``b_u`` of constraints
-    ``b_l <= A_ub @ x <= b_u``, `milp` makes it easy to specify "greater than"
-    inequality constraints, "less than" inequality constraints, and equality
-    constraints concisely.
-
-    These arrays are collected into a single `LinearConstraint` object like:
-
-    >>> from scipy.optimize import LinearConstraint
-    >>> constraints = LinearConstraint(A, b_l, b_u)
-
-    The non-negativity bounds on the decision variables are enforced by
-    default, so we do not need to provide an argument for `bounds`.
-
-    Finally, the problem states that both decision variables must be integers:
-
-    >>> integrality = np.ones_like(c)
-
-    We solve the problem like:
-
-    >>> from scipy.optimize import milp
-    >>> res = milp(c=c, constraints=constraints, integrality=integrality)
-    >>> res.x
-    [2.0, 2.0]
-
-    Note that had we solved the relaxed problem (without integrality
-    constraints):
-
-    >>> res = milp(c=c, constraints=constraints)  # OR:
-    >>> # from scipy.optimize import linprog; res = linprog(c, A, b_u)
-    >>> res.x
-    [1.8, 2.8]
-
-    we would not have obtained the correct solution by rounding to the nearest
-    integers.
-
-    Other examples are given :ref:`in the tutorial `.
-
-    """
-    args_iv = _milp_iv(c, integrality, bounds, constraints, options)
-    c, integrality, lb, ub, indptr, indices, data, b_l, b_u, options = args_iv
-
-    highs_res = _highs_wrapper(c, indptr, indices, data, b_l, b_u,
-                               lb, ub, integrality, options)
-
-    res = {}
-
-    # Convert to scipy-style status and message
-    highs_status = highs_res.get('status', None)
-    highs_message = highs_res.get('message', None)
-    status, message = _highs_to_scipy_status_message(highs_status,
-                                                     highs_message)
-    res['status'] = status
-    res['message'] = message
-    res['success'] = (status == 0)
-    x = highs_res.get('x', None)
-    res['x'] = np.array(x) if x is not None else None
-    res['fun'] = highs_res.get('fun', None)
-    res['mip_node_count'] = highs_res.get('mip_node_count', None)
-    res['mip_dual_bound'] = highs_res.get('mip_dual_bound', None)
-    res['mip_gap'] = highs_res.get('mip_gap', None)
-
-    return OptimizeResult(res)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minimize.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minimize.py
deleted file mode 100644
index 195e31f23e227155040c6c54d7552e11bba7b1c0..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minimize.py
+++ /dev/null
@@ -1,1116 +0,0 @@
-"""
-Unified interfaces to minimization algorithms.
-
-Functions
----------
-- minimize : minimization of a function of several variables.
-- minimize_scalar : minimization of a function of one variable.
-"""
-
-__all__ = ['minimize', 'minimize_scalar']
-
-
-from warnings import warn
-
-import numpy as np
-
-# unconstrained minimization
-from ._optimize import (_minimize_neldermead, _minimize_powell, _minimize_cg,
-                        _minimize_bfgs, _minimize_newtoncg,
-                        _minimize_scalar_brent, _minimize_scalar_bounded,
-                        _minimize_scalar_golden, MemoizeJac, OptimizeResult,
-                        _wrap_callback, _recover_from_bracket_error)
-from ._trustregion_dogleg import _minimize_dogleg
-from ._trustregion_ncg import _minimize_trust_ncg
-from ._trustregion_krylov import _minimize_trust_krylov
-from ._trustregion_exact import _minimize_trustregion_exact
-from ._trustregion_constr import _minimize_trustregion_constr
-
-# constrained minimization
-from ._lbfgsb_py import _minimize_lbfgsb
-from ._tnc import _minimize_tnc
-from ._cobyla_py import _minimize_cobyla
-from ._cobyqa_py import _minimize_cobyqa
-from ._slsqp_py import _minimize_slsqp
-from ._constraints import (old_bound_to_new, new_bounds_to_old,
-                           old_constraint_to_new, new_constraint_to_old,
-                           NonlinearConstraint, LinearConstraint, Bounds,
-                           PreparedConstraint)
-from ._differentiable_functions import FD_METHODS
-
-MINIMIZE_METHODS = ['nelder-mead', 'powell', 'cg', 'bfgs', 'newton-cg',
-                    'l-bfgs-b', 'tnc', 'cobyla', 'cobyqa', 'slsqp',
-                    'trust-constr', 'dogleg', 'trust-ncg', 'trust-exact',
-                    'trust-krylov']
-
-# These methods support the new callback interface (passed an OptimizeResult)
-MINIMIZE_METHODS_NEW_CB = ['nelder-mead', 'powell', 'cg', 'bfgs', 'newton-cg',
-                           'l-bfgs-b', 'trust-constr', 'dogleg', 'trust-ncg',
-                           'trust-exact', 'trust-krylov', 'cobyqa']
-
-MINIMIZE_SCALAR_METHODS = ['brent', 'bounded', 'golden']
-
-def minimize(fun, x0, args=(), method=None, jac=None, hess=None,
-             hessp=None, bounds=None, constraints=(), tol=None,
-             callback=None, options=None):
-    """Minimization of scalar function of one or more variables.
-
-    Parameters
-    ----------
-    fun : callable
-        The objective function to be minimized.
-
-            ``fun(x, *args) -> float``
-
-        where ``x`` is a 1-D array with shape (n,) and ``args``
-        is a tuple of the fixed parameters needed to completely
-        specify the function.
-    x0 : ndarray, shape (n,)
-        Initial guess. Array of real elements of size (n,),
-        where ``n`` is the number of independent variables.
-    args : tuple, optional
-        Extra arguments passed to the objective function and its
-        derivatives (`fun`, `jac` and `hess` functions).
-    method : str or callable, optional
-        Type of solver.  Should be one of
-
-            - 'Nelder-Mead' :ref:`(see here) `
-            - 'Powell'      :ref:`(see here) `
-            - 'CG'          :ref:`(see here) `
-            - 'BFGS'        :ref:`(see here) `
-            - 'Newton-CG'   :ref:`(see here) `
-            - 'L-BFGS-B'    :ref:`(see here) `
-            - 'TNC'         :ref:`(see here) `
-            - 'COBYLA'      :ref:`(see here) `
-            - 'COBYQA'      :ref:`(see here) `
-            - 'SLSQP'       :ref:`(see here) `
-            - 'trust-constr':ref:`(see here) `
-            - 'dogleg'      :ref:`(see here) `
-            - 'trust-ncg'   :ref:`(see here) `
-            - 'trust-exact' :ref:`(see here) `
-            - 'trust-krylov' :ref:`(see here) `
-            - custom - a callable object, see below for description.
-
-        If not given, chosen to be one of ``BFGS``, ``L-BFGS-B``, ``SLSQP``,
-        depending on whether or not the problem has constraints or bounds.
-    jac : {callable,  '2-point', '3-point', 'cs', bool}, optional
-        Method for computing the gradient vector. Only for CG, BFGS,
-        Newton-CG, L-BFGS-B, TNC, SLSQP, dogleg, trust-ncg, trust-krylov,
-        trust-exact and trust-constr.
-        If it is a callable, it should be a function that returns the gradient
-        vector:
-
-            ``jac(x, *args) -> array_like, shape (n,)``
-
-        where ``x`` is an array with shape (n,) and ``args`` is a tuple with
-        the fixed parameters. If `jac` is a Boolean and is True, `fun` is
-        assumed to return a tuple ``(f, g)`` containing the objective
-        function and the gradient.
-        Methods 'Newton-CG', 'trust-ncg', 'dogleg', 'trust-exact', and
-        'trust-krylov' require that either a callable be supplied, or that
-        `fun` return the objective and gradient.
-        If None or False, the gradient will be estimated using 2-point finite
-        difference estimation with an absolute step size.
-        Alternatively, the keywords  {'2-point', '3-point', 'cs'} can be used
-        to select a finite difference scheme for numerical estimation of the
-        gradient with a relative step size. These finite difference schemes
-        obey any specified `bounds`.
-    hess : {callable, '2-point', '3-point', 'cs', HessianUpdateStrategy}, optional
-        Method for computing the Hessian matrix. Only for Newton-CG, dogleg,
-        trust-ncg, trust-krylov, trust-exact and trust-constr.
-        If it is callable, it should return the Hessian matrix:
-
-            ``hess(x, *args) -> {LinearOperator, spmatrix, array}, (n, n)``
-
-        where ``x`` is a (n,) ndarray and ``args`` is a tuple with the fixed
-        parameters.
-        The keywords {'2-point', '3-point', 'cs'} can also be used to select
-        a finite difference scheme for numerical estimation of the hessian.
-        Alternatively, objects implementing the `HessianUpdateStrategy`
-        interface can be used to approximate the Hessian. Available
-        quasi-Newton methods implementing this interface are:
-
-            - `BFGS`;
-            - `SR1`.
-
-        Not all of the options are available for each of the methods; for
-        availability refer to the notes.
-    hessp : callable, optional
-        Hessian of objective function times an arbitrary vector p. Only for
-        Newton-CG, trust-ncg, trust-krylov, trust-constr.
-        Only one of `hessp` or `hess` needs to be given. If `hess` is
-        provided, then `hessp` will be ignored. `hessp` must compute the
-        Hessian times an arbitrary vector:
-
-            ``hessp(x, p, *args) ->  ndarray shape (n,)``
-
-        where ``x`` is a (n,) ndarray, ``p`` is an arbitrary vector with
-        dimension (n,) and ``args`` is a tuple with the fixed
-        parameters.
-    bounds : sequence or `Bounds`, optional
-        Bounds on variables for Nelder-Mead, L-BFGS-B, TNC, SLSQP, Powell,
-        trust-constr, COBYLA, and COBYQA methods. There are two ways to specify
-        the bounds:
-
-            1. Instance of `Bounds` class.
-            2. Sequence of ``(min, max)`` pairs for each element in `x`. None
-               is used to specify no bound.
-
-    constraints : {Constraint, dict} or List of {Constraint, dict}, optional
-        Constraints definition. Only for COBYLA, COBYQA, SLSQP and trust-constr.
-
-        Constraints for 'trust-constr' and 'cobyqa' are defined as a single object
-        or a list of objects specifying constraints to the optimization problem.
-        Available constraints are:
-
-            - `LinearConstraint`
-            - `NonlinearConstraint`
-
-        Constraints for COBYLA, SLSQP are defined as a list of dictionaries.
-        Each dictionary with fields:
-
-            type : str
-                Constraint type: 'eq' for equality, 'ineq' for inequality.
-            fun : callable
-                The function defining the constraint.
-            jac : callable, optional
-                The Jacobian of `fun` (only for SLSQP).
-            args : sequence, optional
-                Extra arguments to be passed to the function and Jacobian.
-
-        Equality constraint means that the constraint function result is to
-        be zero whereas inequality means that it is to be non-negative.
-        Note that COBYLA only supports inequality constraints.
-
-    tol : float, optional
-        Tolerance for termination. When `tol` is specified, the selected
-        minimization algorithm sets some relevant solver-specific tolerance(s)
-        equal to `tol`. For detailed control, use solver-specific
-        options.
-    options : dict, optional
-        A dictionary of solver options. All methods except `TNC` accept the
-        following generic options:
-
-            maxiter : int
-                Maximum number of iterations to perform. Depending on the
-                method each iteration may use several function evaluations.
-
-                For `TNC` use `maxfun` instead of `maxiter`.
-            disp : bool
-                Set to True to print convergence messages.
-
-        For method-specific options, see :func:`show_options()`.
-    callback : callable, optional
-        A callable called after each iteration.
-
-        All methods except TNC, SLSQP, and COBYLA support a callable with
-        the signature:
-
-            ``callback(intermediate_result: OptimizeResult)``
-
-        where ``intermediate_result`` is a keyword parameter containing an
-        `OptimizeResult` with attributes ``x`` and ``fun``, the present values
-        of the parameter vector and objective function. Note that the name
-        of the parameter must be ``intermediate_result`` for the callback
-        to be passed an `OptimizeResult`. These methods will also terminate if
-        the callback raises ``StopIteration``.
-
-        All methods except trust-constr (also) support a signature like:
-
-            ``callback(xk)``
-
-        where ``xk`` is the current parameter vector.
-
-        Introspection is used to determine which of the signatures above to
-        invoke.
-
-    Returns
-    -------
-    res : OptimizeResult
-        The optimization result represented as a ``OptimizeResult`` object.
-        Important attributes are: ``x`` the solution array, ``success`` a
-        Boolean flag indicating if the optimizer exited successfully and
-        ``message`` which describes the cause of the termination. See
-        `OptimizeResult` for a description of other attributes.
-
-    See also
-    --------
-    minimize_scalar : Interface to minimization algorithms for scalar
-        univariate functions
-    show_options : Additional options accepted by the solvers
-
-    Notes
-    -----
-    This section describes the available solvers that can be selected by the
-    'method' parameter. The default method is *BFGS*.
-
-    **Unconstrained minimization**
-
-    Method :ref:`CG ` uses a nonlinear conjugate
-    gradient algorithm by Polak and Ribiere, a variant of the
-    Fletcher-Reeves method described in [5]_ pp.120-122. Only the
-    first derivatives are used.
-
-    Method :ref:`BFGS ` uses the quasi-Newton
-    method of Broyden, Fletcher, Goldfarb, and Shanno (BFGS) [5]_
-    pp. 136. It uses the first derivatives only. BFGS has proven good
-    performance even for non-smooth optimizations. This method also
-    returns an approximation of the Hessian inverse, stored as
-    `hess_inv` in the OptimizeResult object.
-
-    Method :ref:`Newton-CG ` uses a
-    Newton-CG algorithm [5]_ pp. 168 (also known as the truncated
-    Newton method). It uses a CG method to the compute the search
-    direction. See also *TNC* method for a box-constrained
-    minimization with a similar algorithm. Suitable for large-scale
-    problems.
-
-    Method :ref:`dogleg ` uses the dog-leg
-    trust-region algorithm [5]_ for unconstrained minimization. This
-    algorithm requires the gradient and Hessian; furthermore the
-    Hessian is required to be positive definite.
-
-    Method :ref:`trust-ncg ` uses the
-    Newton conjugate gradient trust-region algorithm [5]_ for
-    unconstrained minimization. This algorithm requires the gradient
-    and either the Hessian or a function that computes the product of
-    the Hessian with a given vector. Suitable for large-scale problems.
-
-    Method :ref:`trust-krylov ` uses
-    the Newton GLTR trust-region algorithm [14]_, [15]_ for unconstrained
-    minimization. This algorithm requires the gradient
-    and either the Hessian or a function that computes the product of
-    the Hessian with a given vector. Suitable for large-scale problems.
-    On indefinite problems it requires usually less iterations than the
-    `trust-ncg` method and is recommended for medium and large-scale problems.
-
-    Method :ref:`trust-exact `
-    is a trust-region method for unconstrained minimization in which
-    quadratic subproblems are solved almost exactly [13]_. This
-    algorithm requires the gradient and the Hessian (which is
-    *not* required to be positive definite). It is, in many
-    situations, the Newton method to converge in fewer iterations
-    and the most recommended for small and medium-size problems.
-
-    **Bound-Constrained minimization**
-
-    Method :ref:`Nelder-Mead ` uses the
-    Simplex algorithm [1]_, [2]_. This algorithm is robust in many
-    applications. However, if numerical computation of derivative can be
-    trusted, other algorithms using the first and/or second derivatives
-    information might be preferred for their better performance in
-    general.
-
-    Method :ref:`L-BFGS-B ` uses the L-BFGS-B
-    algorithm [6]_, [7]_ for bound constrained minimization.
-
-    Method :ref:`Powell ` is a modification
-    of Powell's method [3]_, [4]_ which is a conjugate direction
-    method. It performs sequential one-dimensional minimizations along
-    each vector of the directions set (`direc` field in `options` and
-    `info`), which is updated at each iteration of the main
-    minimization loop. The function need not be differentiable, and no
-    derivatives are taken. If bounds are not provided, then an
-    unbounded line search will be used. If bounds are provided and
-    the initial guess is within the bounds, then every function
-    evaluation throughout the minimization procedure will be within
-    the bounds. If bounds are provided, the initial guess is outside
-    the bounds, and `direc` is full rank (default has full rank), then
-    some function evaluations during the first iteration may be
-    outside the bounds, but every function evaluation after the first
-    iteration will be within the bounds. If `direc` is not full rank,
-    then some parameters may not be optimized and the solution is not
-    guaranteed to be within the bounds.
-
-    Method :ref:`TNC ` uses a truncated Newton
-    algorithm [5]_, [8]_ to minimize a function with variables subject
-    to bounds. This algorithm uses gradient information; it is also
-    called Newton Conjugate-Gradient. It differs from the *Newton-CG*
-    method described above as it wraps a C implementation and allows
-    each variable to be given upper and lower bounds.
-
-    **Constrained Minimization**
-
-    Method :ref:`COBYLA ` uses the
-    Constrained Optimization BY Linear Approximation (COBYLA) method
-    [9]_, [10]_, [11]_. The algorithm is based on linear
-    approximations to the objective function and each constraint. The
-    method wraps a FORTRAN implementation of the algorithm. The
-    constraints functions 'fun' may return either a single number
-    or an array or list of numbers.
-
-    Method :ref:`COBYQA ` uses the Constrained
-    Optimization BY Quadratic Approximations (COBYQA) method [18]_. The
-    algorithm is a derivative-free trust-region SQP method based on quadratic
-    approximations to the objective function and each nonlinear constraint. The
-    bounds are treated as unrelaxable constraints, in the sense that the
-    algorithm always respects them throughout the optimization process.
-
-    Method :ref:`SLSQP ` uses Sequential
-    Least SQuares Programming to minimize a function of several
-    variables with any combination of bounds, equality and inequality
-    constraints. The method wraps the SLSQP Optimization subroutine
-    originally implemented by Dieter Kraft [12]_. Note that the
-    wrapper handles infinite values in bounds by converting them into
-    large floating values.
-
-    Method :ref:`trust-constr ` is a
-    trust-region algorithm for constrained optimization. It switches
-    between two implementations depending on the problem definition.
-    It is the most versatile constrained minimization algorithm
-    implemented in SciPy and the most appropriate for large-scale problems.
-    For equality constrained problems it is an implementation of Byrd-Omojokun
-    Trust-Region SQP method described in [17]_ and in [5]_, p. 549. When
-    inequality constraints are imposed as well, it switches to the trust-region
-    interior point method described in [16]_. This interior point algorithm,
-    in turn, solves inequality constraints by introducing slack variables
-    and solving a sequence of equality-constrained barrier problems
-    for progressively smaller values of the barrier parameter.
-    The previously described equality constrained SQP method is
-    used to solve the subproblems with increasing levels of accuracy
-    as the iterate gets closer to a solution.
-
-    **Finite-Difference Options**
-
-    For Method :ref:`trust-constr `
-    the gradient and the Hessian may be approximated using
-    three finite-difference schemes: {'2-point', '3-point', 'cs'}.
-    The scheme 'cs' is, potentially, the most accurate but it
-    requires the function to correctly handle complex inputs and to
-    be differentiable in the complex plane. The scheme '3-point' is more
-    accurate than '2-point' but requires twice as many operations. If the
-    gradient is estimated via finite-differences the Hessian must be
-    estimated using one of the quasi-Newton strategies.
-
-    **Method specific options for the** `hess` **keyword**
-
-    +--------------+------+----------+-------------------------+-----+
-    | method/Hess  | None | callable | '2-point/'3-point'/'cs' | HUS |
-    +==============+======+==========+=========================+=====+
-    | Newton-CG    | x    | (n, n)   | x                       | x   |
-    |              |      | LO       |                         |     |
-    +--------------+------+----------+-------------------------+-----+
-    | dogleg       |      | (n, n)   |                         |     |
-    +--------------+------+----------+-------------------------+-----+
-    | trust-ncg    |      | (n, n)   | x                       | x   |
-    +--------------+------+----------+-------------------------+-----+
-    | trust-krylov |      | (n, n)   | x                       | x   |
-    +--------------+------+----------+-------------------------+-----+
-    | trust-exact  |      | (n, n)   |                         |     |
-    +--------------+------+----------+-------------------------+-----+
-    | trust-constr | x    | (n, n)   |  x                      | x   |
-    |              |      | LO       |                         |     |
-    |              |      | sp       |                         |     |
-    +--------------+------+----------+-------------------------+-----+
-
-    where LO=LinearOperator, sp=Sparse matrix, HUS=HessianUpdateStrategy
-
-    **Custom minimizers**
-
-    It may be useful to pass a custom minimization method, for example
-    when using a frontend to this method such as `scipy.optimize.basinhopping`
-    or a different library.  You can simply pass a callable as the ``method``
-    parameter.
-
-    The callable is called as ``method(fun, x0, args, **kwargs, **options)``
-    where ``kwargs`` corresponds to any other parameters passed to `minimize`
-    (such as `callback`, `hess`, etc.), except the `options` dict, which has
-    its contents also passed as `method` parameters pair by pair.  Also, if
-    `jac` has been passed as a bool type, `jac` and `fun` are mangled so that
-    `fun` returns just the function values and `jac` is converted to a function
-    returning the Jacobian.  The method shall return an `OptimizeResult`
-    object.
-
-    The provided `method` callable must be able to accept (and possibly ignore)
-    arbitrary parameters; the set of parameters accepted by `minimize` may
-    expand in future versions and then these parameters will be passed to
-    the method.  You can find an example in the scipy.optimize tutorial.
-
-    References
-    ----------
-    .. [1] Nelder, J A, and R Mead. 1965. A Simplex Method for Function
-        Minimization. The Computer Journal 7: 308-13.
-    .. [2] Wright M H. 1996. Direct search methods: Once scorned, now
-        respectable, in Numerical Analysis 1995: Proceedings of the 1995
-        Dundee Biennial Conference in Numerical Analysis (Eds. D F
-        Griffiths and G A Watson). Addison Wesley Longman, Harlow, UK.
-        191-208.
-    .. [3] Powell, M J D. 1964. An efficient method for finding the minimum of
-       a function of several variables without calculating derivatives. The
-       Computer Journal 7: 155-162.
-    .. [4] Press W, S A Teukolsky, W T Vetterling and B P Flannery.
-       Numerical Recipes (any edition), Cambridge University Press.
-    .. [5] Nocedal, J, and S J Wright. 2006. Numerical Optimization.
-       Springer New York.
-    .. [6] Byrd, R H and P Lu and J. Nocedal. 1995. A Limited Memory
-       Algorithm for Bound Constrained Optimization. SIAM Journal on
-       Scientific and Statistical Computing 16 (5): 1190-1208.
-    .. [7] Zhu, C and R H Byrd and J Nocedal. 1997. L-BFGS-B: Algorithm
-       778: L-BFGS-B, FORTRAN routines for large scale bound constrained
-       optimization. ACM Transactions on Mathematical Software 23 (4):
-       550-560.
-    .. [8] Nash, S G. Newton-Type Minimization Via the Lanczos Method.
-       1984. SIAM Journal of Numerical Analysis 21: 770-778.
-    .. [9] Powell, M J D. A direct search optimization method that models
-       the objective and constraint functions by linear interpolation.
-       1994. Advances in Optimization and Numerical Analysis, eds. S. Gomez
-       and J-P Hennart, Kluwer Academic (Dordrecht), 51-67.
-    .. [10] Powell M J D. Direct search algorithms for optimization
-       calculations. 1998. Acta Numerica 7: 287-336.
-    .. [11] Powell M J D. A view of algorithms for optimization without
-       derivatives. 2007.Cambridge University Technical Report DAMTP
-       2007/NA03
-    .. [12] Kraft, D. A software package for sequential quadratic
-       programming. 1988. Tech. Rep. DFVLR-FB 88-28, DLR German Aerospace
-       Center -- Institute for Flight Mechanics, Koln, Germany.
-    .. [13] Conn, A. R., Gould, N. I., and Toint, P. L.
-       Trust region methods. 2000. Siam. pp. 169-200.
-    .. [14] F. Lenders, C. Kirches, A. Potschka: "trlib: A vector-free
-       implementation of the GLTR method for iterative solution of
-       the trust region problem", :arxiv:`1611.04718`
-    .. [15] N. Gould, S. Lucidi, M. Roma, P. Toint: "Solving the
-       Trust-Region Subproblem using the Lanczos Method",
-       SIAM J. Optim., 9(2), 504--525, (1999).
-    .. [16] Byrd, Richard H., Mary E. Hribar, and Jorge Nocedal. 1999.
-        An interior point algorithm for large-scale nonlinear  programming.
-        SIAM Journal on Optimization 9.4: 877-900.
-    .. [17] Lalee, Marucha, Jorge Nocedal, and Todd Plantega. 1998. On the
-        implementation of an algorithm for large-scale equality constrained
-        optimization. SIAM Journal on Optimization 8.3: 682-706.
-    .. [18] Ragonneau, T. M. *Model-Based Derivative-Free Optimization Methods
-        and Software*. PhD thesis, Department of Applied Mathematics, The Hong
-        Kong Polytechnic University, Hong Kong, China, 2022. URL:
-        https://theses.lib.polyu.edu.hk/handle/200/12294.
-
-    Examples
-    --------
-    Let us consider the problem of minimizing the Rosenbrock function. This
-    function (and its respective derivatives) is implemented in `rosen`
-    (resp. `rosen_der`, `rosen_hess`) in the `scipy.optimize`.
-
-    >>> from scipy.optimize import minimize, rosen, rosen_der
-
-    A simple application of the *Nelder-Mead* method is:
-
-    >>> x0 = [1.3, 0.7, 0.8, 1.9, 1.2]
-    >>> res = minimize(rosen, x0, method='Nelder-Mead', tol=1e-6)
-    >>> res.x
-    array([ 1.,  1.,  1.,  1.,  1.])
-
-    Now using the *BFGS* algorithm, using the first derivative and a few
-    options:
-
-    >>> res = minimize(rosen, x0, method='BFGS', jac=rosen_der,
-    ...                options={'gtol': 1e-6, 'disp': True})
-    Optimization terminated successfully.
-             Current function value: 0.000000
-             Iterations: 26
-             Function evaluations: 31
-             Gradient evaluations: 31
-    >>> res.x
-    array([ 1.,  1.,  1.,  1.,  1.])
-    >>> print(res.message)
-    Optimization terminated successfully.
-    >>> res.hess_inv
-    array([
-        [ 0.00749589,  0.01255155,  0.02396251,  0.04750988,  0.09495377],  # may vary
-        [ 0.01255155,  0.02510441,  0.04794055,  0.09502834,  0.18996269],
-        [ 0.02396251,  0.04794055,  0.09631614,  0.19092151,  0.38165151],
-        [ 0.04750988,  0.09502834,  0.19092151,  0.38341252,  0.7664427 ],
-        [ 0.09495377,  0.18996269,  0.38165151,  0.7664427,   1.53713523]
-    ])
-
-
-    Next, consider a minimization problem with several constraints (namely
-    Example 16.4 from [5]_). The objective function is:
-
-    >>> fun = lambda x: (x[0] - 1)**2 + (x[1] - 2.5)**2
-
-    There are three constraints defined as:
-
-    >>> cons = ({'type': 'ineq', 'fun': lambda x:  x[0] - 2 * x[1] + 2},
-    ...         {'type': 'ineq', 'fun': lambda x: -x[0] - 2 * x[1] + 6},
-    ...         {'type': 'ineq', 'fun': lambda x: -x[0] + 2 * x[1] + 2})
-
-    And variables must be positive, hence the following bounds:
-
-    >>> bnds = ((0, None), (0, None))
-
-    The optimization problem is solved using the SLSQP method as:
-
-    >>> res = minimize(fun, (2, 0), method='SLSQP', bounds=bnds,
-    ...                constraints=cons)
-
-    It should converge to the theoretical solution (1.4 ,1.7).
-
-    """
-    x0 = np.atleast_1d(np.asarray(x0))
-
-    if x0.ndim != 1:
-        raise ValueError("'x0' must only have one dimension.")
-
-    if x0.dtype.kind in np.typecodes["AllInteger"]:
-        x0 = np.asarray(x0, dtype=float)
-
-    if not isinstance(args, tuple):
-        args = (args,)
-
-    if method is None:
-        # Select automatically
-        if constraints:
-            method = 'SLSQP'
-        elif bounds is not None:
-            method = 'L-BFGS-B'
-        else:
-            method = 'BFGS'
-
-    if callable(method):
-        meth = "_custom"
-    else:
-        meth = method.lower()
-
-    if options is None:
-        options = {}
-    # check if optional parameters are supported by the selected method
-    # - jac
-    if meth in ('nelder-mead', 'powell', 'cobyla', 'cobyqa') and bool(jac):
-        warn('Method %s does not use gradient information (jac).' % method,
-             RuntimeWarning, stacklevel=2)
-    # - hess
-    if meth not in ('newton-cg', 'dogleg', 'trust-ncg', 'trust-constr',
-                    'trust-krylov', 'trust-exact', '_custom') and hess is not None:
-        warn('Method %s does not use Hessian information (hess).' % method,
-             RuntimeWarning, stacklevel=2)
-    # - hessp
-    if meth not in ('newton-cg', 'trust-ncg', 'trust-constr',
-                    'trust-krylov', '_custom') \
-       and hessp is not None:
-        warn('Method %s does not use Hessian-vector product '
-             'information (hessp).' % method,
-             RuntimeWarning, stacklevel=2)
-    # - constraints or bounds
-    if (meth not in ('cobyla', 'cobyqa', 'slsqp', 'trust-constr', '_custom') and
-            np.any(constraints)):
-        warn('Method %s cannot handle constraints.' % method,
-             RuntimeWarning, stacklevel=2)
-    if meth not in (
-            'nelder-mead', 'powell', 'l-bfgs-b', 'cobyla', 'cobyqa', 'slsqp',
-            'tnc', 'trust-constr', '_custom') and bounds is not None:
-        warn('Method %s cannot handle bounds.' % method,
-             RuntimeWarning, stacklevel=2)
-    # - return_all
-    if (meth in ('l-bfgs-b', 'tnc', 'cobyla', 'cobyqa', 'slsqp') and
-            options.get('return_all', False)):
-        warn('Method %s does not support the return_all option.' % method,
-             RuntimeWarning, stacklevel=2)
-
-    # check gradient vector
-    if callable(jac):
-        pass
-    elif jac is True:
-        # fun returns func and grad
-        fun = MemoizeJac(fun)
-        jac = fun.derivative
-    elif (jac in FD_METHODS and
-          meth in ['trust-constr', 'bfgs', 'cg', 'l-bfgs-b', 'tnc', 'slsqp']):
-        # finite differences with relative step
-        pass
-    elif meth in ['trust-constr']:
-        # default jac calculation for this method
-        jac = '2-point'
-    elif jac is None or bool(jac) is False:
-        # this will cause e.g. LBFGS to use forward difference, absolute step
-        jac = None
-    else:
-        # default if jac option is not understood
-        jac = None
-
-    # set default tolerances
-    if tol is not None:
-        options = dict(options)
-        if meth == 'nelder-mead':
-            options.setdefault('xatol', tol)
-            options.setdefault('fatol', tol)
-        if meth in ('newton-cg', 'powell', 'tnc'):
-            options.setdefault('xtol', tol)
-        if meth in ('powell', 'l-bfgs-b', 'tnc', 'slsqp'):
-            options.setdefault('ftol', tol)
-        if meth in ('bfgs', 'cg', 'l-bfgs-b', 'tnc', 'dogleg',
-                    'trust-ncg', 'trust-exact', 'trust-krylov'):
-            options.setdefault('gtol', tol)
-        if meth in ('cobyla', '_custom'):
-            options.setdefault('tol', tol)
-        if meth == 'cobyqa':
-            options.setdefault('final_tr_radius', tol)
-        if meth == 'trust-constr':
-            options.setdefault('xtol', tol)
-            options.setdefault('gtol', tol)
-            options.setdefault('barrier_tol', tol)
-
-    if meth == '_custom':
-        # custom method called before bounds and constraints are 'standardised'
-        # custom method should be able to accept whatever bounds/constraints
-        # are provided to it.
-        return method(fun, x0, args=args, jac=jac, hess=hess, hessp=hessp,
-                      bounds=bounds, constraints=constraints,
-                      callback=callback, **options)
-
-    constraints = standardize_constraints(constraints, x0, meth)
-
-    remove_vars = False
-    if bounds is not None:
-        # convert to new-style bounds so we only have to consider one case
-        bounds = standardize_bounds(bounds, x0, 'new')
-        bounds = _validate_bounds(bounds, x0, meth)
-
-        if meth in {"tnc", "slsqp", "l-bfgs-b"}:
-            # These methods can't take the finite-difference derivatives they
-            # need when a variable is fixed by the bounds. To avoid this issue,
-            # remove fixed variables from the problem.
-            # NOTE: if this list is expanded, then be sure to update the
-            # accompanying tests and test_optimize.eb_data. Consider also if
-            # default OptimizeResult will need updating.
-
-            # determine whether any variables are fixed
-            i_fixed = (bounds.lb == bounds.ub)
-
-            if np.all(i_fixed):
-                # all the parameters are fixed, a minimizer is not able to do
-                # anything
-                return _optimize_result_for_equal_bounds(
-                    fun, bounds, meth, args=args, constraints=constraints
-                )
-
-            # determine whether finite differences are needed for any grad/jac
-            fd_needed = (not callable(jac))
-            for con in constraints:
-                if not callable(con.get('jac', None)):
-                    fd_needed = True
-
-            # If finite differences are ever used, remove all fixed variables
-            # Always remove fixed variables for TNC; see gh-14565
-            remove_vars = i_fixed.any() and (fd_needed or meth == "tnc")
-            if remove_vars:
-                x_fixed = (bounds.lb)[i_fixed]
-                x0 = x0[~i_fixed]
-                bounds = _remove_from_bounds(bounds, i_fixed)
-                fun = _remove_from_func(fun, i_fixed, x_fixed)
-                if callable(callback):
-                    callback = _remove_from_func(callback, i_fixed, x_fixed)
-                if callable(jac):
-                    jac = _remove_from_func(jac, i_fixed, x_fixed, remove=1)
-
-                # make a copy of the constraints so the user's version doesn't
-                # get changed. (Shallow copy is ok)
-                constraints = [con.copy() for con in constraints]
-                for con in constraints:  # yes, guaranteed to be a list
-                    con['fun'] = _remove_from_func(con['fun'], i_fixed,
-                                                   x_fixed, min_dim=1,
-                                                   remove=0)
-                    if callable(con.get('jac', None)):
-                        con['jac'] = _remove_from_func(con['jac'], i_fixed,
-                                                       x_fixed, min_dim=2,
-                                                       remove=1)
-        bounds = standardize_bounds(bounds, x0, meth)
-
-    callback = _wrap_callback(callback, meth)
-
-    if meth == 'nelder-mead':
-        res = _minimize_neldermead(fun, x0, args, callback, bounds=bounds,
-                                   **options)
-    elif meth == 'powell':
-        res = _minimize_powell(fun, x0, args, callback, bounds, **options)
-    elif meth == 'cg':
-        res = _minimize_cg(fun, x0, args, jac, callback, **options)
-    elif meth == 'bfgs':
-        res = _minimize_bfgs(fun, x0, args, jac, callback, **options)
-    elif meth == 'newton-cg':
-        res = _minimize_newtoncg(fun, x0, args, jac, hess, hessp, callback,
-                                 **options)
-    elif meth == 'l-bfgs-b':
-        res = _minimize_lbfgsb(fun, x0, args, jac, bounds,
-                               callback=callback, **options)
-    elif meth == 'tnc':
-        res = _minimize_tnc(fun, x0, args, jac, bounds, callback=callback,
-                            **options)
-    elif meth == 'cobyla':
-        res = _minimize_cobyla(fun, x0, args, constraints, callback=callback,
-                               bounds=bounds, **options)
-    elif meth == 'cobyqa':
-        res = _minimize_cobyqa(fun, x0, args, bounds, constraints, callback,
-                               **options)
-    elif meth == 'slsqp':
-        res = _minimize_slsqp(fun, x0, args, jac, bounds,
-                              constraints, callback=callback, **options)
-    elif meth == 'trust-constr':
-        res = _minimize_trustregion_constr(fun, x0, args, jac, hess, hessp,
-                                           bounds, constraints,
-                                           callback=callback, **options)
-    elif meth == 'dogleg':
-        res = _minimize_dogleg(fun, x0, args, jac, hess,
-                               callback=callback, **options)
-    elif meth == 'trust-ncg':
-        res = _minimize_trust_ncg(fun, x0, args, jac, hess, hessp,
-                                  callback=callback, **options)
-    elif meth == 'trust-krylov':
-        res = _minimize_trust_krylov(fun, x0, args, jac, hess, hessp,
-                                     callback=callback, **options)
-    elif meth == 'trust-exact':
-        res = _minimize_trustregion_exact(fun, x0, args, jac, hess,
-                                          callback=callback, **options)
-    else:
-        raise ValueError('Unknown solver %s' % method)
-
-    if remove_vars:
-        res.x = _add_to_array(res.x, i_fixed, x_fixed)
-        res.jac = _add_to_array(res.jac, i_fixed, np.nan)
-        if "hess_inv" in res:
-            res.hess_inv = None  # unknown
-
-    if getattr(callback, 'stop_iteration', False):
-        res.success = False
-        res.status = 99
-        res.message = "`callback` raised `StopIteration`."
-
-    return res
-
-
-def minimize_scalar(fun, bracket=None, bounds=None, args=(),
-                    method=None, tol=None, options=None):
-    """Local minimization of scalar function of one variable.
-
-    Parameters
-    ----------
-    fun : callable
-        Objective function.
-        Scalar function, must return a scalar.
-    bracket : sequence, optional
-        For methods 'brent' and 'golden', `bracket` defines the bracketing
-        interval and is required.
-        Either a triple ``(xa, xb, xc)`` satisfying ``xa < xb < xc`` and
-        ``func(xb) < func(xa) and  func(xb) < func(xc)``, or a pair
-        ``(xa, xb)`` to be used as initial points for a downhill bracket search
-        (see `scipy.optimize.bracket`).
-        The minimizer ``res.x`` will not necessarily satisfy
-        ``xa <= res.x <= xb``.
-    bounds : sequence, optional
-        For method 'bounded', `bounds` is mandatory and must have two finite
-        items corresponding to the optimization bounds.
-    args : tuple, optional
-        Extra arguments passed to the objective function.
-    method : str or callable, optional
-        Type of solver.  Should be one of:
-
-            - :ref:`Brent `
-            - :ref:`Bounded `
-            - :ref:`Golden `
-            - custom - a callable object (added in version 0.14.0), see below
-
-        Default is "Bounded" if bounds are provided and "Brent" otherwise.
-        See the 'Notes' section for details of each solver.
-
-    tol : float, optional
-        Tolerance for termination. For detailed control, use solver-specific
-        options.
-    options : dict, optional
-        A dictionary of solver options.
-
-            maxiter : int
-                Maximum number of iterations to perform.
-            disp : bool
-                Set to True to print convergence messages.
-
-        See :func:`show_options()` for solver-specific options.
-
-    Returns
-    -------
-    res : OptimizeResult
-        The optimization result represented as a ``OptimizeResult`` object.
-        Important attributes are: ``x`` the solution array, ``success`` a
-        Boolean flag indicating if the optimizer exited successfully and
-        ``message`` which describes the cause of the termination. See
-        `OptimizeResult` for a description of other attributes.
-
-    See also
-    --------
-    minimize : Interface to minimization algorithms for scalar multivariate
-        functions
-    show_options : Additional options accepted by the solvers
-
-    Notes
-    -----
-    This section describes the available solvers that can be selected by the
-    'method' parameter. The default method is the ``"Bounded"`` Brent method if
-    `bounds` are passed and unbounded ``"Brent"`` otherwise.
-
-    Method :ref:`Brent ` uses Brent's
-    algorithm [1]_ to find a local minimum.  The algorithm uses inverse
-    parabolic interpolation when possible to speed up convergence of
-    the golden section method.
-
-    Method :ref:`Golden ` uses the
-    golden section search technique [1]_. It uses analog of the bisection
-    method to decrease the bracketed interval. It is usually
-    preferable to use the *Brent* method.
-
-    Method :ref:`Bounded ` can
-    perform bounded minimization [2]_ [3]_. It uses the Brent method to find a
-    local minimum in the interval x1 < xopt < x2.
-
-    Note that the Brent and Golden methods do not guarantee success unless a
-    valid ``bracket`` triple is provided. If a three-point bracket cannot be
-    found, consider `scipy.optimize.minimize`. Also, all methods are intended
-    only for local minimization. When the function of interest has more than
-    one local minimum, consider :ref:`global_optimization`.
-
-    **Custom minimizers**
-
-    It may be useful to pass a custom minimization method, for example
-    when using some library frontend to minimize_scalar. You can simply
-    pass a callable as the ``method`` parameter.
-
-    The callable is called as ``method(fun, args, **kwargs, **options)``
-    where ``kwargs`` corresponds to any other parameters passed to `minimize`
-    (such as `bracket`, `tol`, etc.), except the `options` dict, which has
-    its contents also passed as `method` parameters pair by pair.  The method
-    shall return an `OptimizeResult` object.
-
-    The provided `method` callable must be able to accept (and possibly ignore)
-    arbitrary parameters; the set of parameters accepted by `minimize` may
-    expand in future versions and then these parameters will be passed to
-    the method. You can find an example in the scipy.optimize tutorial.
-
-    .. versionadded:: 0.11.0
-
-    References
-    ----------
-    .. [1] Press, W., S.A. Teukolsky, W.T. Vetterling, and B.P. Flannery.
-           Numerical Recipes in C. Cambridge University Press.
-    .. [2] Forsythe, G.E., M. A. Malcolm, and C. B. Moler. "Computer Methods
-           for Mathematical Computations." Prentice-Hall Series in Automatic
-           Computation 259 (1977).
-    .. [3] Brent, Richard P. Algorithms for Minimization Without Derivatives.
-           Courier Corporation, 2013.
-
-    Examples
-    --------
-    Consider the problem of minimizing the following function.
-
-    >>> def f(x):
-    ...     return (x - 2) * x * (x + 2)**2
-
-    Using the *Brent* method, we find the local minimum as:
-
-    >>> from scipy.optimize import minimize_scalar
-    >>> res = minimize_scalar(f)
-    >>> res.fun
-    -9.9149495908
-
-    The minimizer is:
-
-    >>> res.x
-    1.28077640403
-
-    Using the *Bounded* method, we find a local minimum with specified
-    bounds as:
-
-    >>> res = minimize_scalar(f, bounds=(-3, -1), method='bounded')
-    >>> res.fun  # minimum
-    3.28365179850e-13
-    >>> res.x  # minimizer
-    -2.0000002026
-
-    """
-    if not isinstance(args, tuple):
-        args = (args,)
-
-    if callable(method):
-        meth = "_custom"
-    elif method is None:
-        meth = 'brent' if bounds is None else 'bounded'
-    else:
-        meth = method.lower()
-    if options is None:
-        options = {}
-
-    if bounds is not None and meth in {'brent', 'golden'}:
-        message = f"Use of `bounds` is incompatible with 'method={method}'."
-        raise ValueError(message)
-
-    if tol is not None:
-        options = dict(options)
-        if meth == 'bounded' and 'xatol' not in options:
-            warn("Method 'bounded' does not support relative tolerance in x; "
-                 "defaulting to absolute tolerance.",
-                 RuntimeWarning, stacklevel=2)
-            options['xatol'] = tol
-        elif meth == '_custom':
-            options.setdefault('tol', tol)
-        else:
-            options.setdefault('xtol', tol)
-
-    # replace boolean "disp" option, if specified, by an integer value.
-    disp = options.get('disp')
-    if isinstance(disp, bool):
-        options['disp'] = 2 * int(disp)
-
-    if meth == '_custom':
-        res = method(fun, args=args, bracket=bracket, bounds=bounds, **options)
-    elif meth == 'brent':
-        res = _recover_from_bracket_error(_minimize_scalar_brent,
-                                          fun, bracket, args, **options)
-    elif meth == 'bounded':
-        if bounds is None:
-            raise ValueError('The `bounds` parameter is mandatory for '
-                             'method `bounded`.')
-        res = _minimize_scalar_bounded(fun, bounds, args, **options)
-    elif meth == 'golden':
-        res = _recover_from_bracket_error(_minimize_scalar_golden,
-                                          fun, bracket, args, **options)
-    else:
-        raise ValueError('Unknown solver %s' % method)
-
-    # gh-16196 reported inconsistencies in the output shape of `res.x`. While
-    # fixing this, future-proof it for when the function is vectorized:
-    # the shape of `res.x` should match that of `res.fun`.
-    res.fun = np.asarray(res.fun)[()]
-    res.x = np.reshape(res.x, res.fun.shape)[()]
-    return res
-
-
-def _remove_from_bounds(bounds, i_fixed):
-    """Removes fixed variables from a `Bounds` instance"""
-    lb = bounds.lb[~i_fixed]
-    ub = bounds.ub[~i_fixed]
-    return Bounds(lb, ub)  # don't mutate original Bounds object
-
-
-def _remove_from_func(fun_in, i_fixed, x_fixed, min_dim=None, remove=0):
-    """Wraps a function such that fixed variables need not be passed in"""
-    def fun_out(x_in, *args, **kwargs):
-        x_out = np.zeros_like(i_fixed, dtype=x_in.dtype)
-        x_out[i_fixed] = x_fixed
-        x_out[~i_fixed] = x_in
-        y_out = fun_in(x_out, *args, **kwargs)
-        y_out = np.array(y_out)
-
-        if min_dim == 1:
-            y_out = np.atleast_1d(y_out)
-        elif min_dim == 2:
-            y_out = np.atleast_2d(y_out)
-
-        if remove == 1:
-            y_out = y_out[..., ~i_fixed]
-        elif remove == 2:
-            y_out = y_out[~i_fixed, ~i_fixed]
-
-        return y_out
-    return fun_out
-
-
-def _add_to_array(x_in, i_fixed, x_fixed):
-    """Adds fixed variables back to an array"""
-    i_free = ~i_fixed
-    if x_in.ndim == 2:
-        i_free = i_free[:, None] @ i_free[None, :]
-    x_out = np.zeros_like(i_free, dtype=x_in.dtype)
-    x_out[~i_free] = x_fixed
-    x_out[i_free] = x_in.ravel()
-    return x_out
-
-
-def _validate_bounds(bounds, x0, meth):
-    """Check that bounds are valid."""
-
-    msg = "An upper bound is less than the corresponding lower bound."
-    if np.any(bounds.ub < bounds.lb):
-        raise ValueError(msg)
-
-    msg = "The number of bounds is not compatible with the length of `x0`."
-    try:
-        bounds.lb = np.broadcast_to(bounds.lb, x0.shape)
-        bounds.ub = np.broadcast_to(bounds.ub, x0.shape)
-    except Exception as e:
-        raise ValueError(msg) from e
-
-    return bounds
-
-def standardize_bounds(bounds, x0, meth):
-    """Converts bounds to the form required by the solver."""
-    if meth in {'trust-constr', 'powell', 'nelder-mead', 'cobyla', 'cobyqa',
-                'new'}:
-        if not isinstance(bounds, Bounds):
-            lb, ub = old_bound_to_new(bounds)
-            bounds = Bounds(lb, ub)
-    elif meth in ('l-bfgs-b', 'tnc', 'slsqp', 'old'):
-        if isinstance(bounds, Bounds):
-            bounds = new_bounds_to_old(bounds.lb, bounds.ub, x0.shape[0])
-    return bounds
-
-
-def standardize_constraints(constraints, x0, meth):
-    """Converts constraints to the form required by the solver."""
-    all_constraint_types = (NonlinearConstraint, LinearConstraint, dict)
-    new_constraint_types = all_constraint_types[:-1]
-    if constraints is None:
-        constraints = []
-    elif isinstance(constraints, all_constraint_types):
-        constraints = [constraints]
-    else:
-        constraints = list(constraints)  # ensure it's a mutable sequence
-
-    if meth in ['trust-constr', 'cobyqa', 'new']:
-        for i, con in enumerate(constraints):
-            if not isinstance(con, new_constraint_types):
-                constraints[i] = old_constraint_to_new(i, con)
-    else:
-        # iterate over copy, changing original
-        for i, con in enumerate(list(constraints)):
-            if isinstance(con, new_constraint_types):
-                old_constraints = new_constraint_to_old(con, x0)
-                constraints[i] = old_constraints[0]
-                constraints.extend(old_constraints[1:])  # appends 1 if present
-
-    return constraints
-
-
-def _optimize_result_for_equal_bounds(
-        fun, bounds, method, args=(), constraints=()
-):
-    """
-    Provides a default OptimizeResult for when a bounded minimization method
-    has (lb == ub).all().
-
-    Parameters
-    ----------
-    fun: callable
-    bounds: Bounds
-    method: str
-    constraints: Constraint
-    """
-    success = True
-    message = 'All independent variables were fixed by bounds.'
-
-    # bounds is new-style
-    x0 = bounds.lb
-
-    if constraints:
-        message = ("All independent variables were fixed by bounds at values"
-                   " that satisfy the constraints.")
-        constraints = standardize_constraints(constraints, x0, 'new')
-
-    maxcv = 0
-    for c in constraints:
-        pc = PreparedConstraint(c, x0)
-        violation = pc.violation(x0)
-        if np.sum(violation):
-            maxcv = max(maxcv, np.max(violation))
-            success = False
-            message = (f"All independent variables were fixed by bounds, but "
-                       f"the independent variables do not satisfy the "
-                       f"constraints exactly. (Maximum violation: {maxcv}).")
-
-    return OptimizeResult(
-        x=x0, fun=fun(x0, *args), success=success, message=message, nfev=1,
-        njev=0, nhev=0,
-    )
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minpack.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minpack.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index f747929147c24b2502a9738995f0a74f8753db99..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minpack.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minpack2.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minpack2.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index f816e37ac89a947c5086a2a48830b8e73956382b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minpack2.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py
deleted file mode 100644
index b67a17ae41b4db6633918aa0b318fae88d56d5f7..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py
+++ /dev/null
@@ -1,1164 +0,0 @@
-import warnings
-from . import _minpack
-
-import numpy as np
-from numpy import (atleast_1d, triu, shape, transpose, zeros, prod, greater,
-                   asarray, inf,
-                   finfo, inexact, issubdtype, dtype)
-from scipy import linalg
-from scipy.linalg import svd, cholesky, solve_triangular, LinAlgError
-from scipy._lib._util import _asarray_validated, _lazywhere, _contains_nan
-from scipy._lib._util import getfullargspec_no_self as _getfullargspec
-from ._optimize import OptimizeResult, _check_unknown_options, OptimizeWarning
-from ._lsq import least_squares
-# from ._lsq.common import make_strictly_feasible
-from ._lsq.least_squares import prepare_bounds
-from scipy.optimize._minimize import Bounds
-
-__all__ = ['fsolve', 'leastsq', 'fixed_point', 'curve_fit']
-
-
-def _check_func(checker, argname, thefunc, x0, args, numinputs,
-                output_shape=None):
-    res = atleast_1d(thefunc(*((x0[:numinputs],) + args)))
-    if (output_shape is not None) and (shape(res) != output_shape):
-        if (output_shape[0] != 1):
-            if len(output_shape) > 1:
-                if output_shape[1] == 1:
-                    return shape(res)
-            msg = f"{checker}: there is a mismatch between the input and output " \
-                  f"shape of the '{argname}' argument"
-            func_name = getattr(thefunc, '__name__', None)
-            if func_name:
-                msg += " '%s'." % func_name
-            else:
-                msg += "."
-            msg += f'Shape should be {output_shape} but it is {shape(res)}.'
-            raise TypeError(msg)
-    if issubdtype(res.dtype, inexact):
-        dt = res.dtype
-    else:
-        dt = dtype(float)
-    return shape(res), dt
-
-
-def fsolve(func, x0, args=(), fprime=None, full_output=0,
-           col_deriv=0, xtol=1.49012e-8, maxfev=0, band=None,
-           epsfcn=None, factor=100, diag=None):
-    """
-    Find the roots of a function.
-
-    Return the roots of the (non-linear) equations defined by
-    ``func(x) = 0`` given a starting estimate.
-
-    Parameters
-    ----------
-    func : callable ``f(x, *args)``
-        A function that takes at least one (possibly vector) argument,
-        and returns a value of the same length.
-    x0 : ndarray
-        The starting estimate for the roots of ``func(x) = 0``.
-    args : tuple, optional
-        Any extra arguments to `func`.
-    fprime : callable ``f(x, *args)``, optional
-        A function to compute the Jacobian of `func` with derivatives
-        across the rows. By default, the Jacobian will be estimated.
-    full_output : bool, optional
-        If True, return optional outputs.
-    col_deriv : bool, optional
-        Specify whether the Jacobian function computes derivatives down
-        the columns (faster, because there is no transpose operation).
-    xtol : float, optional
-        The calculation will terminate if the relative error between two
-        consecutive iterates is at most `xtol`.
-    maxfev : int, optional
-        The maximum number of calls to the function. If zero, then
-        ``100*(N+1)`` is the maximum where N is the number of elements
-        in `x0`.
-    band : tuple, optional
-        If set to a two-sequence containing the number of sub- and
-        super-diagonals within the band of the Jacobi matrix, the
-        Jacobi matrix is considered banded (only for ``fprime=None``).
-    epsfcn : float, optional
-        A suitable step length for the forward-difference
-        approximation of the Jacobian (for ``fprime=None``). If
-        `epsfcn` is less than the machine precision, it is assumed
-        that the relative errors in the functions are of the order of
-        the machine precision.
-    factor : float, optional
-        A parameter determining the initial step bound
-        (``factor * || diag * x||``). Should be in the interval
-        ``(0.1, 100)``.
-    diag : sequence, optional
-        N positive entries that serve as a scale factors for the
-        variables.
-
-    Returns
-    -------
-    x : ndarray
-        The solution (or the result of the last iteration for
-        an unsuccessful call).
-    infodict : dict
-        A dictionary of optional outputs with the keys:
-
-        ``nfev``
-            number of function calls
-        ``njev``
-            number of Jacobian calls
-        ``fvec``
-            function evaluated at the output
-        ``fjac``
-            the orthogonal matrix, q, produced by the QR
-            factorization of the final approximate Jacobian
-            matrix, stored column wise
-        ``r``
-            upper triangular matrix produced by QR factorization
-            of the same matrix
-        ``qtf``
-            the vector ``(transpose(q) * fvec)``
-
-    ier : int
-        An integer flag.  Set to 1 if a solution was found, otherwise refer
-        to `mesg` for more information.
-    mesg : str
-        If no solution is found, `mesg` details the cause of failure.
-
-    See Also
-    --------
-    root : Interface to root finding algorithms for multivariate
-           functions. See the ``method='hybr'`` in particular.
-
-    Notes
-    -----
-    ``fsolve`` is a wrapper around MINPACK's hybrd and hybrj algorithms.
-
-    Examples
-    --------
-    Find a solution to the system of equations:
-    ``x0*cos(x1) = 4,  x1*x0 - x1 = 5``.
-
-    >>> import numpy as np
-    >>> from scipy.optimize import fsolve
-    >>> def func(x):
-    ...     return [x[0] * np.cos(x[1]) - 4,
-    ...             x[1] * x[0] - x[1] - 5]
-    >>> root = fsolve(func, [1, 1])
-    >>> root
-    array([6.50409711, 0.90841421])
-    >>> np.isclose(func(root), [0.0, 0.0])  # func(root) should be almost 0.0.
-    array([ True,  True])
-
-    """
-    def _wrapped_func(*fargs):
-        """
-        Wrapped `func` to track the number of times
-        the function has been called.
-        """
-        _wrapped_func.nfev += 1
-        return func(*fargs)
-
-    _wrapped_func.nfev = 0
-
-    options = {'col_deriv': col_deriv,
-               'xtol': xtol,
-               'maxfev': maxfev,
-               'band': band,
-               'eps': epsfcn,
-               'factor': factor,
-               'diag': diag}
-
-    res = _root_hybr(_wrapped_func, x0, args, jac=fprime, **options)
-    res.nfev = _wrapped_func.nfev
-
-    if full_output:
-        x = res['x']
-        info = {k: res.get(k)
-                    for k in ('nfev', 'njev', 'fjac', 'r', 'qtf') if k in res}
-        info['fvec'] = res['fun']
-        return x, info, res['status'], res['message']
-    else:
-        status = res['status']
-        msg = res['message']
-        if status == 0:
-            raise TypeError(msg)
-        elif status == 1:
-            pass
-        elif status in [2, 3, 4, 5]:
-            warnings.warn(msg, RuntimeWarning, stacklevel=2)
-        else:
-            raise TypeError(msg)
-        return res['x']
-
-
-def _root_hybr(func, x0, args=(), jac=None,
-               col_deriv=0, xtol=1.49012e-08, maxfev=0, band=None, eps=None,
-               factor=100, diag=None, **unknown_options):
-    """
-    Find the roots of a multivariate function using MINPACK's hybrd and
-    hybrj routines (modified Powell method).
-
-    Options
-    -------
-    col_deriv : bool
-        Specify whether the Jacobian function computes derivatives down
-        the columns (faster, because there is no transpose operation).
-    xtol : float
-        The calculation will terminate if the relative error between two
-        consecutive iterates is at most `xtol`.
-    maxfev : int
-        The maximum number of calls to the function. If zero, then
-        ``100*(N+1)`` is the maximum where N is the number of elements
-        in `x0`.
-    band : tuple
-        If set to a two-sequence containing the number of sub- and
-        super-diagonals within the band of the Jacobi matrix, the
-        Jacobi matrix is considered banded (only for ``fprime=None``).
-    eps : float
-        A suitable step length for the forward-difference
-        approximation of the Jacobian (for ``fprime=None``). If
-        `eps` is less than the machine precision, it is assumed
-        that the relative errors in the functions are of the order of
-        the machine precision.
-    factor : float
-        A parameter determining the initial step bound
-        (``factor * || diag * x||``). Should be in the interval
-        ``(0.1, 100)``.
-    diag : sequence
-        N positive entries that serve as a scale factors for the
-        variables.
-
-    """
-    _check_unknown_options(unknown_options)
-    epsfcn = eps
-
-    x0 = asarray(x0).flatten()
-    n = len(x0)
-    if not isinstance(args, tuple):
-        args = (args,)
-    shape, dtype = _check_func('fsolve', 'func', func, x0, args, n, (n,))
-    if epsfcn is None:
-        epsfcn = finfo(dtype).eps
-    Dfun = jac
-    if Dfun is None:
-        if band is None:
-            ml, mu = -10, -10
-        else:
-            ml, mu = band[:2]
-        if maxfev == 0:
-            maxfev = 200 * (n + 1)
-        retval = _minpack._hybrd(func, x0, args, 1, xtol, maxfev,
-                                 ml, mu, epsfcn, factor, diag)
-    else:
-        _check_func('fsolve', 'fprime', Dfun, x0, args, n, (n, n))
-        if (maxfev == 0):
-            maxfev = 100 * (n + 1)
-        retval = _minpack._hybrj(func, Dfun, x0, args, 1,
-                                 col_deriv, xtol, maxfev, factor, diag)
-
-    x, status = retval[0], retval[-1]
-
-    errors = {0: "Improper input parameters were entered.",
-              1: "The solution converged.",
-              2: "The number of calls to function has "
-                  "reached maxfev = %d." % maxfev,
-              3: "xtol=%f is too small, no further improvement "
-                  "in the approximate\n  solution "
-                  "is possible." % xtol,
-              4: "The iteration is not making good progress, as measured "
-                  "by the \n  improvement from the last five "
-                  "Jacobian evaluations.",
-              5: "The iteration is not making good progress, "
-                  "as measured by the \n  improvement from the last "
-                  "ten iterations.",
-              'unknown': "An error occurred."}
-
-    info = retval[1]
-    info['fun'] = info.pop('fvec')
-    sol = OptimizeResult(x=x, success=(status == 1), status=status,
-                         method="hybr")
-    sol.update(info)
-    try:
-        sol['message'] = errors[status]
-    except KeyError:
-        sol['message'] = errors['unknown']
-
-    return sol
-
-
-LEASTSQ_SUCCESS = [1, 2, 3, 4]
-LEASTSQ_FAILURE = [5, 6, 7, 8]
-
-
-def leastsq(func, x0, args=(), Dfun=None, full_output=False,
-            col_deriv=False, ftol=1.49012e-8, xtol=1.49012e-8,
-            gtol=0.0, maxfev=0, epsfcn=None, factor=100, diag=None):
-    """
-    Minimize the sum of squares of a set of equations.
-
-    ::
-
-        x = arg min(sum(func(y)**2,axis=0))
-                 y
-
-    Parameters
-    ----------
-    func : callable
-        Should take at least one (possibly length ``N`` vector) argument and
-        returns ``M`` floating point numbers. It must not return NaNs or
-        fitting might fail. ``M`` must be greater than or equal to ``N``.
-    x0 : ndarray
-        The starting estimate for the minimization.
-    args : tuple, optional
-        Any extra arguments to func are placed in this tuple.
-    Dfun : callable, optional
-        A function or method to compute the Jacobian of func with derivatives
-        across the rows. If this is None, the Jacobian will be estimated.
-    full_output : bool, optional
-        If ``True``, return all optional outputs (not just `x` and `ier`).
-    col_deriv : bool, optional
-        If ``True``, specify that the Jacobian function computes derivatives
-        down the columns (faster, because there is no transpose operation).
-    ftol : float, optional
-        Relative error desired in the sum of squares.
-    xtol : float, optional
-        Relative error desired in the approximate solution.
-    gtol : float, optional
-        Orthogonality desired between the function vector and the columns of
-        the Jacobian.
-    maxfev : int, optional
-        The maximum number of calls to the function. If `Dfun` is provided,
-        then the default `maxfev` is 100*(N+1) where N is the number of elements
-        in x0, otherwise the default `maxfev` is 200*(N+1).
-    epsfcn : float, optional
-        A variable used in determining a suitable step length for the forward-
-        difference approximation of the Jacobian (for Dfun=None).
-        Normally the actual step length will be sqrt(epsfcn)*x
-        If epsfcn is less than the machine precision, it is assumed that the
-        relative errors are of the order of the machine precision.
-    factor : float, optional
-        A parameter determining the initial step bound
-        (``factor * || diag * x||``). Should be in interval ``(0.1, 100)``.
-    diag : sequence, optional
-        N positive entries that serve as a scale factors for the variables.
-
-    Returns
-    -------
-    x : ndarray
-        The solution (or the result of the last iteration for an unsuccessful
-        call).
-    cov_x : ndarray
-        The inverse of the Hessian. `fjac` and `ipvt` are used to construct an
-        estimate of the Hessian. A value of None indicates a singular matrix,
-        which means the curvature in parameters `x` is numerically flat. To
-        obtain the covariance matrix of the parameters `x`, `cov_x` must be
-        multiplied by the variance of the residuals -- see curve_fit. Only
-        returned if `full_output` is ``True``.
-    infodict : dict
-        a dictionary of optional outputs with the keys:
-
-        ``nfev``
-            The number of function calls
-        ``fvec``
-            The function evaluated at the output
-        ``fjac``
-            A permutation of the R matrix of a QR
-            factorization of the final approximate
-            Jacobian matrix, stored column wise.
-            Together with ipvt, the covariance of the
-            estimate can be approximated.
-        ``ipvt``
-            An integer array of length N which defines
-            a permutation matrix, p, such that
-            fjac*p = q*r, where r is upper triangular
-            with diagonal elements of nonincreasing
-            magnitude. Column j of p is column ipvt(j)
-            of the identity matrix.
-        ``qtf``
-            The vector (transpose(q) * fvec).
-
-        Only returned if `full_output` is ``True``.
-    mesg : str
-        A string message giving information about the cause of failure.
-        Only returned if `full_output` is ``True``.
-    ier : int
-        An integer flag. If it is equal to 1, 2, 3 or 4, the solution was
-        found. Otherwise, the solution was not found. In either case, the
-        optional output variable 'mesg' gives more information.
-
-    See Also
-    --------
-    least_squares : Newer interface to solve nonlinear least-squares problems
-        with bounds on the variables. See ``method='lm'`` in particular.
-
-    Notes
-    -----
-    "leastsq" is a wrapper around MINPACK's lmdif and lmder algorithms.
-
-    cov_x is a Jacobian approximation to the Hessian of the least squares
-    objective function.
-    This approximation assumes that the objective function is based on the
-    difference between some observed target data (ydata) and a (non-linear)
-    function of the parameters `f(xdata, params)` ::
-
-           func(params) = ydata - f(xdata, params)
-
-    so that the objective function is ::
-
-           min   sum((ydata - f(xdata, params))**2, axis=0)
-         params
-
-    The solution, `x`, is always a 1-D array, regardless of the shape of `x0`,
-    or whether `x0` is a scalar.
-
-    Examples
-    --------
-    >>> from scipy.optimize import leastsq
-    >>> def func(x):
-    ...     return 2*(x-3)**2+1
-    >>> leastsq(func, 0)
-    (array([2.99999999]), 1)
-
-    """
-    x0 = asarray(x0).flatten()
-    n = len(x0)
-    if not isinstance(args, tuple):
-        args = (args,)
-    shape, dtype = _check_func('leastsq', 'func', func, x0, args, n)
-    m = shape[0]
-
-    if n > m:
-        raise TypeError(f"Improper input: func input vector length N={n} must"
-                        f" not exceed func output vector length M={m}")
-
-    if epsfcn is None:
-        epsfcn = finfo(dtype).eps
-
-    if Dfun is None:
-        if maxfev == 0:
-            maxfev = 200*(n + 1)
-        retval = _minpack._lmdif(func, x0, args, full_output, ftol, xtol,
-                                 gtol, maxfev, epsfcn, factor, diag)
-    else:
-        if col_deriv:
-            _check_func('leastsq', 'Dfun', Dfun, x0, args, n, (n, m))
-        else:
-            _check_func('leastsq', 'Dfun', Dfun, x0, args, n, (m, n))
-        if maxfev == 0:
-            maxfev = 100 * (n + 1)
-        retval = _minpack._lmder(func, Dfun, x0, args, full_output,
-                                 col_deriv, ftol, xtol, gtol, maxfev,
-                                 factor, diag)
-
-    errors = {0: ["Improper input parameters.", TypeError],
-              1: ["Both actual and predicted relative reductions "
-                  "in the sum of squares\n  are at most %f" % ftol, None],
-              2: ["The relative error between two consecutive "
-                  "iterates is at most %f" % xtol, None],
-              3: ["Both actual and predicted relative reductions in "
-                  f"the sum of squares\n  are at most {ftol:f} and the "
-                  "relative error between two consecutive "
-                  f"iterates is at \n  most {xtol:f}", None],
-              4: ["The cosine of the angle between func(x) and any "
-                  "column of the\n  Jacobian is at most %f in "
-                  "absolute value" % gtol, None],
-              5: ["Number of calls to function has reached "
-                  "maxfev = %d." % maxfev, ValueError],
-              6: ["ftol=%f is too small, no further reduction "
-                  "in the sum of squares\n  is possible." % ftol,
-                  ValueError],
-              7: ["xtol=%f is too small, no further improvement in "
-                  "the approximate\n  solution is possible." % xtol,
-                  ValueError],
-              8: ["gtol=%f is too small, func(x) is orthogonal to the "
-                  "columns of\n  the Jacobian to machine "
-                  "precision." % gtol, ValueError]}
-
-    # The FORTRAN return value (possible return values are >= 0 and <= 8)
-    info = retval[-1]
-
-    if full_output:
-        cov_x = None
-        if info in LEASTSQ_SUCCESS:
-            # This was
-            # perm = take(eye(n), retval[1]['ipvt'] - 1, 0)
-            # r = triu(transpose(retval[1]['fjac'])[:n, :])
-            # R = dot(r, perm)
-            # cov_x = inv(dot(transpose(R), R))
-            # but the explicit dot product was not necessary and sometimes
-            # the result was not symmetric positive definite. See gh-4555.
-            perm = retval[1]['ipvt'] - 1
-            n = len(perm)
-            r = triu(transpose(retval[1]['fjac'])[:n, :])
-            inv_triu = linalg.get_lapack_funcs('trtri', (r,))
-            try:
-                # inverse of permuted matrix is a permutation of matrix inverse
-                invR, trtri_info = inv_triu(r)  # default: upper, non-unit diag
-                if trtri_info != 0:  # explicit comparison for readability
-                    raise LinAlgError(f'trtri returned info {trtri_info}')
-                invR[perm] = invR.copy()
-                cov_x = invR @ invR.T
-            except (LinAlgError, ValueError):
-                pass
-        return (retval[0], cov_x) + retval[1:-1] + (errors[info][0], info)
-    else:
-        if info in LEASTSQ_FAILURE:
-            warnings.warn(errors[info][0], RuntimeWarning, stacklevel=2)
-        elif info == 0:
-            raise errors[info][1](errors[info][0])
-        return retval[0], info
-
-
-def _lightweight_memoizer(f):
-    # very shallow memoization to address gh-13670: only remember the first set
-    # of parameters and corresponding function value, and only attempt to use
-    # them twice (the number of times the function is evaluated at x0).
-    def _memoized_func(params):
-        if _memoized_func.skip_lookup:
-            return f(params)
-
-        if np.all(_memoized_func.last_params == params):
-            return _memoized_func.last_val
-        elif _memoized_func.last_params is not None:
-            _memoized_func.skip_lookup = True
-
-        val = f(params)
-
-        if _memoized_func.last_params is None:
-            _memoized_func.last_params = np.copy(params)
-            _memoized_func.last_val = val
-
-        return val
-
-    _memoized_func.last_params = None
-    _memoized_func.last_val = None
-    _memoized_func.skip_lookup = False
-    return _memoized_func
-
-
-def _wrap_func(func, xdata, ydata, transform):
-    if transform is None:
-        def func_wrapped(params):
-            return func(xdata, *params) - ydata
-    elif transform.size == 1 or transform.ndim == 1:
-        def func_wrapped(params):
-            return transform * (func(xdata, *params) - ydata)
-    else:
-        # Chisq = (y - yd)^T C^{-1} (y-yd)
-        # transform = L such that C = L L^T
-        # C^{-1} = L^{-T} L^{-1}
-        # Chisq = (y - yd)^T L^{-T} L^{-1} (y-yd)
-        # Define (y-yd)' = L^{-1} (y-yd)
-        # by solving
-        # L (y-yd)' = (y-yd)
-        # and minimize (y-yd)'^T (y-yd)'
-        def func_wrapped(params):
-            return solve_triangular(transform, func(xdata, *params) - ydata, lower=True)
-    return func_wrapped
-
-
-def _wrap_jac(jac, xdata, transform):
-    if transform is None:
-        def jac_wrapped(params):
-            return jac(xdata, *params)
-    elif transform.ndim == 1:
-        def jac_wrapped(params):
-            return transform[:, np.newaxis] * np.asarray(jac(xdata, *params))
-    else:
-        def jac_wrapped(params):
-            return solve_triangular(transform,
-                                    np.asarray(jac(xdata, *params)),
-                                    lower=True)
-    return jac_wrapped
-
-
-def _initialize_feasible(lb, ub):
-    p0 = np.ones_like(lb)
-    lb_finite = np.isfinite(lb)
-    ub_finite = np.isfinite(ub)
-
-    mask = lb_finite & ub_finite
-    p0[mask] = 0.5 * (lb[mask] + ub[mask])
-
-    mask = lb_finite & ~ub_finite
-    p0[mask] = lb[mask] + 1
-
-    mask = ~lb_finite & ub_finite
-    p0[mask] = ub[mask] - 1
-
-    return p0
-
-
-def curve_fit(f, xdata, ydata, p0=None, sigma=None, absolute_sigma=False,
-              check_finite=None, bounds=(-np.inf, np.inf), method=None,
-              jac=None, *, full_output=False, nan_policy=None,
-              **kwargs):
-    """
-    Use non-linear least squares to fit a function, f, to data.
-
-    Assumes ``ydata = f(xdata, *params) + eps``.
-
-    Parameters
-    ----------
-    f : callable
-        The model function, f(x, ...). It must take the independent
-        variable as the first argument and the parameters to fit as
-        separate remaining arguments.
-    xdata : array_like
-        The independent variable where the data is measured.
-        Should usually be an M-length sequence or an (k,M)-shaped array for
-        functions with k predictors, and each element should be float
-        convertible if it is an array like object.
-    ydata : array_like
-        The dependent data, a length M array - nominally ``f(xdata, ...)``.
-    p0 : array_like, optional
-        Initial guess for the parameters (length N). If None, then the
-        initial values will all be 1 (if the number of parameters for the
-        function can be determined using introspection, otherwise a
-        ValueError is raised).
-    sigma : None or scalar or M-length sequence or MxM array, optional
-        Determines the uncertainty in `ydata`. If we define residuals as
-        ``r = ydata - f(xdata, *popt)``, then the interpretation of `sigma`
-        depends on its number of dimensions:
-
-            - A scalar or 1-D `sigma` should contain values of standard deviations of
-              errors in `ydata`. In this case, the optimized function is
-              ``chisq = sum((r / sigma) ** 2)``.
-
-            - A 2-D `sigma` should contain the covariance matrix of
-              errors in `ydata`. In this case, the optimized function is
-              ``chisq = r.T @ inv(sigma) @ r``.
-
-              .. versionadded:: 0.19
-
-        None (default) is equivalent of 1-D `sigma` filled with ones.
-    absolute_sigma : bool, optional
-        If True, `sigma` is used in an absolute sense and the estimated parameter
-        covariance `pcov` reflects these absolute values.
-
-        If False (default), only the relative magnitudes of the `sigma` values matter.
-        The returned parameter covariance matrix `pcov` is based on scaling
-        `sigma` by a constant factor. This constant is set by demanding that the
-        reduced `chisq` for the optimal parameters `popt` when using the
-        *scaled* `sigma` equals unity. In other words, `sigma` is scaled to
-        match the sample variance of the residuals after the fit. Default is False.
-        Mathematically,
-        ``pcov(absolute_sigma=False) = pcov(absolute_sigma=True) * chisq(popt)/(M-N)``
-    check_finite : bool, optional
-        If True, check that the input arrays do not contain nans of infs,
-        and raise a ValueError if they do. Setting this parameter to
-        False may silently produce nonsensical results if the input arrays
-        do contain nans. Default is True if `nan_policy` is not specified
-        explicitly and False otherwise.
-    bounds : 2-tuple of array_like or `Bounds`, optional
-        Lower and upper bounds on parameters. Defaults to no bounds.
-        There are two ways to specify the bounds:
-
-            - Instance of `Bounds` class.
-
-            - 2-tuple of array_like: Each element of the tuple must be either
-              an array with the length equal to the number of parameters, or a
-              scalar (in which case the bound is taken to be the same for all
-              parameters). Use ``np.inf`` with an appropriate sign to disable
-              bounds on all or some parameters.
-
-    method : {'lm', 'trf', 'dogbox'}, optional
-        Method to use for optimization. See `least_squares` for more details.
-        Default is 'lm' for unconstrained problems and 'trf' if `bounds` are
-        provided. The method 'lm' won't work when the number of observations
-        is less than the number of variables, use 'trf' or 'dogbox' in this
-        case.
-
-        .. versionadded:: 0.17
-    jac : callable, string or None, optional
-        Function with signature ``jac(x, ...)`` which computes the Jacobian
-        matrix of the model function with respect to parameters as a dense
-        array_like structure. It will be scaled according to provided `sigma`.
-        If None (default), the Jacobian will be estimated numerically.
-        String keywords for 'trf' and 'dogbox' methods can be used to select
-        a finite difference scheme, see `least_squares`.
-
-        .. versionadded:: 0.18
-    full_output : boolean, optional
-        If True, this function returns additioal information: `infodict`,
-        `mesg`, and `ier`.
-
-        .. versionadded:: 1.9
-    nan_policy : {'raise', 'omit', None}, optional
-        Defines how to handle when input contains nan.
-        The following options are available (default is None):
-
-          * 'raise': throws an error
-          * 'omit': performs the calculations ignoring nan values
-          * None: no special handling of NaNs is performed
-            (except what is done by check_finite); the behavior when NaNs
-            are present is implementation-dependent and may change.
-
-        Note that if this value is specified explicitly (not None),
-        `check_finite` will be set as False.
-
-        .. versionadded:: 1.11
-    **kwargs
-        Keyword arguments passed to `leastsq` for ``method='lm'`` or
-        `least_squares` otherwise.
-
-    Returns
-    -------
-    popt : array
-        Optimal values for the parameters so that the sum of the squared
-        residuals of ``f(xdata, *popt) - ydata`` is minimized.
-    pcov : 2-D array
-        The estimated approximate covariance of popt. The diagonals provide
-        the variance of the parameter estimate. To compute one standard
-        deviation errors on the parameters, use
-        ``perr = np.sqrt(np.diag(pcov))``. Note that the relationship between
-        `cov` and parameter error estimates is derived based on a linear
-        approximation to the model function around the optimum [1].
-        When this approximation becomes inaccurate, `cov` may not provide an
-        accurate measure of uncertainty.
-
-        How the `sigma` parameter affects the estimated covariance
-        depends on `absolute_sigma` argument, as described above.
-
-        If the Jacobian matrix at the solution doesn't have a full rank, then
-        'lm' method returns a matrix filled with ``np.inf``, on the other hand
-        'trf'  and 'dogbox' methods use Moore-Penrose pseudoinverse to compute
-        the covariance matrix. Covariance matrices with large condition numbers
-        (e.g. computed with `numpy.linalg.cond`) may indicate that results are
-        unreliable.
-    infodict : dict (returned only if `full_output` is True)
-        a dictionary of optional outputs with the keys:
-
-        ``nfev``
-            The number of function calls. Methods 'trf' and 'dogbox' do not
-            count function calls for numerical Jacobian approximation,
-            as opposed to 'lm' method.
-        ``fvec``
-            The residual values evaluated at the solution, for a 1-D `sigma`
-            this is ``(f(x, *popt) - ydata)/sigma``.
-        ``fjac``
-            A permutation of the R matrix of a QR
-            factorization of the final approximate
-            Jacobian matrix, stored column wise.
-            Together with ipvt, the covariance of the
-            estimate can be approximated.
-            Method 'lm' only provides this information.
-        ``ipvt``
-            An integer array of length N which defines
-            a permutation matrix, p, such that
-            fjac*p = q*r, where r is upper triangular
-            with diagonal elements of nonincreasing
-            magnitude. Column j of p is column ipvt(j)
-            of the identity matrix.
-            Method 'lm' only provides this information.
-        ``qtf``
-            The vector (transpose(q) * fvec).
-            Method 'lm' only provides this information.
-
-        .. versionadded:: 1.9
-    mesg : str (returned only if `full_output` is True)
-        A string message giving information about the solution.
-
-        .. versionadded:: 1.9
-    ier : int (returned only if `full_output` is True)
-        An integer flag. If it is equal to 1, 2, 3 or 4, the solution was
-        found. Otherwise, the solution was not found. In either case, the
-        optional output variable `mesg` gives more information.
-
-        .. versionadded:: 1.9
-
-    Raises
-    ------
-    ValueError
-        if either `ydata` or `xdata` contain NaNs, or if incompatible options
-        are used.
-
-    RuntimeError
-        if the least-squares minimization fails.
-
-    OptimizeWarning
-        if covariance of the parameters can not be estimated.
-
-    See Also
-    --------
-    least_squares : Minimize the sum of squares of nonlinear functions.
-    scipy.stats.linregress : Calculate a linear least squares regression for
-                             two sets of measurements.
-
-    Notes
-    -----
-    Users should ensure that inputs `xdata`, `ydata`, and the output of `f`
-    are ``float64``, or else the optimization may return incorrect results.
-
-    With ``method='lm'``, the algorithm uses the Levenberg-Marquardt algorithm
-    through `leastsq`. Note that this algorithm can only deal with
-    unconstrained problems.
-
-    Box constraints can be handled by methods 'trf' and 'dogbox'. Refer to
-    the docstring of `least_squares` for more information.
-
-    Parameters to be fitted must have similar scale. Differences of multiple
-    orders of magnitude can lead to incorrect results. For the 'trf' and
-    'dogbox' methods, the `x_scale` keyword argument can be used to scale
-    the parameters.
-
-    References
-    ----------
-    [1] K. Vugrin et al. Confidence region estimation techniques for nonlinear
-        regression in groundwater flow: Three case studies. Water Resources
-        Research, Vol. 43, W03423, :doi:`10.1029/2005WR004804`
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.optimize import curve_fit
-
-    >>> def func(x, a, b, c):
-    ...     return a * np.exp(-b * x) + c
-
-    Define the data to be fit with some noise:
-
-    >>> xdata = np.linspace(0, 4, 50)
-    >>> y = func(xdata, 2.5, 1.3, 0.5)
-    >>> rng = np.random.default_rng()
-    >>> y_noise = 0.2 * rng.normal(size=xdata.size)
-    >>> ydata = y + y_noise
-    >>> plt.plot(xdata, ydata, 'b-', label='data')
-
-    Fit for the parameters a, b, c of the function `func`:
-
-    >>> popt, pcov = curve_fit(func, xdata, ydata)
-    >>> popt
-    array([2.56274217, 1.37268521, 0.47427475])
-    >>> plt.plot(xdata, func(xdata, *popt), 'r-',
-    ...          label='fit: a=%5.3f, b=%5.3f, c=%5.3f' % tuple(popt))
-
-    Constrain the optimization to the region of ``0 <= a <= 3``,
-    ``0 <= b <= 1`` and ``0 <= c <= 0.5``:
-
-    >>> popt, pcov = curve_fit(func, xdata, ydata, bounds=(0, [3., 1., 0.5]))
-    >>> popt
-    array([2.43736712, 1.        , 0.34463856])
-    >>> plt.plot(xdata, func(xdata, *popt), 'g--',
-    ...          label='fit: a=%5.3f, b=%5.3f, c=%5.3f' % tuple(popt))
-
-    >>> plt.xlabel('x')
-    >>> plt.ylabel('y')
-    >>> plt.legend()
-    >>> plt.show()
-
-    For reliable results, the model `func` should not be overparametrized;
-    redundant parameters can cause unreliable covariance matrices and, in some
-    cases, poorer quality fits. As a quick check of whether the model may be
-    overparameterized, calculate the condition number of the covariance matrix:
-
-    >>> np.linalg.cond(pcov)
-    34.571092161547405  # may vary
-
-    The value is small, so it does not raise much concern. If, however, we were
-    to add a fourth parameter ``d`` to `func` with the same effect as ``a``:
-
-    >>> def func2(x, a, b, c, d):
-    ...     return a * d * np.exp(-b * x) + c  # a and d are redundant
-    >>> popt, pcov = curve_fit(func2, xdata, ydata)
-    >>> np.linalg.cond(pcov)
-    1.13250718925596e+32  # may vary
-
-    Such a large value is cause for concern. The diagonal elements of the
-    covariance matrix, which is related to uncertainty of the fit, gives more
-    information:
-
-    >>> np.diag(pcov)
-    array([1.48814742e+29, 3.78596560e-02, 5.39253738e-03, 2.76417220e+28])  # may vary
-
-    Note that the first and last terms are much larger than the other elements,
-    suggesting that the optimal values of these parameters are ambiguous and
-    that only one of these parameters is needed in the model.
-
-    If the optimal parameters of `f` differ by multiple orders of magnitude, the
-    resulting fit can be inaccurate. Sometimes, `curve_fit` can fail to find any
-    results:
-
-    >>> ydata = func(xdata, 500000, 0.01, 15)
-    >>> try:
-    ...     popt, pcov = curve_fit(func, xdata, ydata, method = 'trf')
-    ... except RuntimeError as e:
-    ...     print(e)
-    Optimal parameters not found: The maximum number of function evaluations is
-    exceeded.
-
-    If parameter scale is roughly known beforehand, it can be defined in
-    `x_scale` argument:
-
-    >>> popt, pcov = curve_fit(func, xdata, ydata, method = 'trf',
-    ...                        x_scale = [1000, 1, 1])
-    >>> popt
-    array([5.00000000e+05, 1.00000000e-02, 1.49999999e+01])
-    """
-    if p0 is None:
-        # determine number of parameters by inspecting the function
-        sig = _getfullargspec(f)
-        args = sig.args
-        if len(args) < 2:
-            raise ValueError("Unable to determine number of fit parameters.")
-        n = len(args) - 1
-    else:
-        p0 = np.atleast_1d(p0)
-        n = p0.size
-
-    if isinstance(bounds, Bounds):
-        lb, ub = bounds.lb, bounds.ub
-    else:
-        lb, ub = prepare_bounds(bounds, n)
-    if p0 is None:
-        p0 = _initialize_feasible(lb, ub)
-
-    bounded_problem = np.any((lb > -np.inf) | (ub < np.inf))
-    if method is None:
-        if bounded_problem:
-            method = 'trf'
-        else:
-            method = 'lm'
-
-    if method == 'lm' and bounded_problem:
-        raise ValueError("Method 'lm' only works for unconstrained problems. "
-                         "Use 'trf' or 'dogbox' instead.")
-
-    if check_finite is None:
-        check_finite = True if nan_policy is None else False
-
-    # optimization may produce garbage for float32 inputs, cast them to float64
-    if check_finite:
-        ydata = np.asarray_chkfinite(ydata, float)
-    else:
-        ydata = np.asarray(ydata, float)
-
-    if isinstance(xdata, (list, tuple, np.ndarray)):
-        # `xdata` is passed straight to the user-defined `f`, so allow
-        # non-array_like `xdata`.
-        if check_finite:
-            xdata = np.asarray_chkfinite(xdata, float)
-        else:
-            xdata = np.asarray(xdata, float)
-
-    if ydata.size == 0:
-        raise ValueError("`ydata` must not be empty!")
-
-    # nan handling is needed only if check_finite is False because if True,
-    # the x-y data are already checked, and they don't contain nans.
-    if not check_finite and nan_policy is not None:
-        if nan_policy == "propagate":
-            raise ValueError("`nan_policy='propagate'` is not supported "
-                             "by this function.")
-
-        policies = [None, 'raise', 'omit']
-        x_contains_nan, nan_policy = _contains_nan(xdata, nan_policy,
-                                                   policies=policies)
-        y_contains_nan, nan_policy = _contains_nan(ydata, nan_policy,
-                                                   policies=policies)
-
-        if (x_contains_nan or y_contains_nan) and nan_policy == 'omit':
-            # ignore NaNs for N dimensional arrays
-            has_nan = np.isnan(xdata)
-            has_nan = has_nan.any(axis=tuple(range(has_nan.ndim-1)))
-            has_nan |= np.isnan(ydata)
-
-            xdata = xdata[..., ~has_nan]
-            ydata = ydata[~has_nan]
-
-    # Determine type of sigma
-    if sigma is not None:
-        sigma = np.asarray(sigma)
-
-        # if 1-D or a scalar, sigma are errors, define transform = 1/sigma
-        if sigma.size == 1 or sigma.shape == (ydata.size, ):
-            transform = 1.0 / sigma
-        # if 2-D, sigma is the covariance matrix,
-        # define transform = L such that L L^T = C
-        elif sigma.shape == (ydata.size, ydata.size):
-            try:
-                # scipy.linalg.cholesky requires lower=True to return L L^T = A
-                transform = cholesky(sigma, lower=True)
-            except LinAlgError as e:
-                raise ValueError("`sigma` must be positive definite.") from e
-        else:
-            raise ValueError("`sigma` has incorrect shape.")
-    else:
-        transform = None
-
-    func = _lightweight_memoizer(_wrap_func(f, xdata, ydata, transform))
-
-    if callable(jac):
-        jac = _lightweight_memoizer(_wrap_jac(jac, xdata, transform))
-    elif jac is None and method != 'lm':
-        jac = '2-point'
-
-    if 'args' in kwargs:
-        # The specification for the model function `f` does not support
-        # additional arguments. Refer to the `curve_fit` docstring for
-        # acceptable call signatures of `f`.
-        raise ValueError("'args' is not a supported keyword argument.")
-
-    if method == 'lm':
-        # if ydata.size == 1, this might be used for broadcast.
-        if ydata.size != 1 and n > ydata.size:
-            raise TypeError(f"The number of func parameters={n} must not"
-                            f" exceed the number of data points={ydata.size}")
-        res = leastsq(func, p0, Dfun=jac, full_output=1, **kwargs)
-        popt, pcov, infodict, errmsg, ier = res
-        ysize = len(infodict['fvec'])
-        cost = np.sum(infodict['fvec'] ** 2)
-        if ier not in [1, 2, 3, 4]:
-            raise RuntimeError("Optimal parameters not found: " + errmsg)
-    else:
-        # Rename maxfev (leastsq) to max_nfev (least_squares), if specified.
-        if 'max_nfev' not in kwargs:
-            kwargs['max_nfev'] = kwargs.pop('maxfev', None)
-
-        res = least_squares(func, p0, jac=jac, bounds=bounds, method=method,
-                            **kwargs)
-
-        if not res.success:
-            raise RuntimeError("Optimal parameters not found: " + res.message)
-
-        infodict = dict(nfev=res.nfev, fvec=res.fun)
-        ier = res.status
-        errmsg = res.message
-
-        ysize = len(res.fun)
-        cost = 2 * res.cost  # res.cost is half sum of squares!
-        popt = res.x
-
-        # Do Moore-Penrose inverse discarding zero singular values.
-        _, s, VT = svd(res.jac, full_matrices=False)
-        threshold = np.finfo(float).eps * max(res.jac.shape) * s[0]
-        s = s[s > threshold]
-        VT = VT[:s.size]
-        pcov = np.dot(VT.T / s**2, VT)
-
-    warn_cov = False
-    if pcov is None or np.isnan(pcov).any():
-        # indeterminate covariance
-        pcov = zeros((len(popt), len(popt)), dtype=float)
-        pcov.fill(inf)
-        warn_cov = True
-    elif not absolute_sigma:
-        if ysize > p0.size:
-            s_sq = cost / (ysize - p0.size)
-            pcov = pcov * s_sq
-        else:
-            pcov.fill(inf)
-            warn_cov = True
-
-    if warn_cov:
-        warnings.warn('Covariance of the parameters could not be estimated',
-                      category=OptimizeWarning, stacklevel=2)
-
-    if full_output:
-        return popt, pcov, infodict, errmsg, ier
-    else:
-        return popt, pcov
-
-
-def check_gradient(fcn, Dfcn, x0, args=(), col_deriv=0):
-    """Perform a simple check on the gradient for correctness.
-
-    """
-
-    x = atleast_1d(x0)
-    n = len(x)
-    x = x.reshape((n,))
-    fvec = atleast_1d(fcn(x, *args))
-    m = len(fvec)
-    fvec = fvec.reshape((m,))
-    ldfjac = m
-    fjac = atleast_1d(Dfcn(x, *args))
-    fjac = fjac.reshape((m, n))
-    if col_deriv == 0:
-        fjac = transpose(fjac)
-
-    xp = zeros((n,), float)
-    err = zeros((m,), float)
-    fvecp = None
-    _minpack._chkder(m, n, x, fvec, fjac, ldfjac, xp, fvecp, 1, err)
-
-    fvecp = atleast_1d(fcn(xp, *args))
-    fvecp = fvecp.reshape((m,))
-    _minpack._chkder(m, n, x, fvec, fjac, ldfjac, xp, fvecp, 2, err)
-
-    good = (prod(greater(err, 0.5), axis=0))
-
-    return (good, err)
-
-
-def _del2(p0, p1, d):
-    return p0 - np.square(p1 - p0) / d
-
-
-def _relerr(actual, desired):
-    return (actual - desired) / desired
-
-
-def _fixed_point_helper(func, x0, args, xtol, maxiter, use_accel):
-    p0 = x0
-    for i in range(maxiter):
-        p1 = func(p0, *args)
-        if use_accel:
-            p2 = func(p1, *args)
-            d = p2 - 2.0 * p1 + p0
-            p = _lazywhere(d != 0, (p0, p1, d), f=_del2, fillvalue=p2)
-        else:
-            p = p1
-        relerr = _lazywhere(p0 != 0, (p, p0), f=_relerr, fillvalue=p)
-        if np.all(np.abs(relerr) < xtol):
-            return p
-        p0 = p
-    msg = "Failed to converge after %d iterations, value is %s" % (maxiter, p)
-    raise RuntimeError(msg)
-
-
-def fixed_point(func, x0, args=(), xtol=1e-8, maxiter=500, method='del2'):
-    """
-    Find a fixed point of the function.
-
-    Given a function of one or more variables and a starting point, find a
-    fixed point of the function: i.e., where ``func(x0) == x0``.
-
-    Parameters
-    ----------
-    func : function
-        Function to evaluate.
-    x0 : array_like
-        Fixed point of function.
-    args : tuple, optional
-        Extra arguments to `func`.
-    xtol : float, optional
-        Convergence tolerance, defaults to 1e-08.
-    maxiter : int, optional
-        Maximum number of iterations, defaults to 500.
-    method : {"del2", "iteration"}, optional
-        Method of finding the fixed-point, defaults to "del2",
-        which uses Steffensen's Method with Aitken's ``Del^2``
-        convergence acceleration [1]_. The "iteration" method simply iterates
-        the function until convergence is detected, without attempting to
-        accelerate the convergence.
-
-    References
-    ----------
-    .. [1] Burden, Faires, "Numerical Analysis", 5th edition, pg. 80
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import optimize
-    >>> def func(x, c1, c2):
-    ...    return np.sqrt(c1/(x+c2))
-    >>> c1 = np.array([10,12.])
-    >>> c2 = np.array([3, 5.])
-    >>> optimize.fixed_point(func, [1.2, 1.3], args=(c1,c2))
-    array([ 1.4920333 ,  1.37228132])
-
-    """
-    use_accel = {'del2': True, 'iteration': False}[method]
-    x0 = _asarray_validated(x0, as_inexact=True)
-    return _fixed_point_helper(func, x0, args, xtol, maxiter, use_accel)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_nnls.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_nnls.py
deleted file mode 100644
index 17fcdc9e4cc52b1839cd938f21a78256cfb19436..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_nnls.py
+++ /dev/null
@@ -1,164 +0,0 @@
-import numpy as np
-from scipy.linalg import solve, LinAlgWarning
-import warnings
-
-__all__ = ['nnls']
-
-
-def nnls(A, b, maxiter=None, *, atol=None):
-    """
-    Solve ``argmin_x || Ax - b ||_2`` for ``x>=0``.
-
-    This problem, often called as NonNegative Least Squares, is a convex
-    optimization problem with convex constraints. It typically arises when
-    the ``x`` models quantities for which only nonnegative values are
-    attainable; weight of ingredients, component costs and so on.
-
-    Parameters
-    ----------
-    A : (m, n) ndarray
-        Coefficient array
-    b : (m,) ndarray, float
-        Right-hand side vector.
-    maxiter: int, optional
-        Maximum number of iterations, optional. Default value is ``3 * n``.
-    atol: float
-        Tolerance value used in the algorithm to assess closeness to zero in
-        the projected residual ``(A.T @ (A x - b)`` entries. Increasing this
-        value relaxes the solution constraints. A typical relaxation value can
-        be selected as ``max(m, n) * np.linalg.norm(a, 1) * np.spacing(1.)``.
-        This value is not set as default since the norm operation becomes
-        expensive for large problems hence can be used only when necessary.
-
-    Returns
-    -------
-    x : ndarray
-        Solution vector.
-    rnorm : float
-        The 2-norm of the residual, ``|| Ax-b ||_2``.
-
-    See Also
-    --------
-    lsq_linear : Linear least squares with bounds on the variables
-
-    Notes
-    -----
-    The code is based on [2]_ which is an improved version of the classical
-    algorithm of [1]_. It utilizes an active set method and solves the KKT
-    (Karush-Kuhn-Tucker) conditions for the non-negative least squares problem.
-
-    References
-    ----------
-    .. [1] : Lawson C., Hanson R.J., "Solving Least Squares Problems", SIAM,
-       1995, :doi:`10.1137/1.9781611971217`
-    .. [2] : Bro, Rasmus and de Jong, Sijmen, "A Fast Non-Negativity-
-       Constrained Least Squares Algorithm", Journal Of Chemometrics, 1997,
-       :doi:`10.1002/(SICI)1099-128X(199709/10)11:5<393::AID-CEM483>3.0.CO;2-L`
-
-     Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.optimize import nnls
-    ...
-    >>> A = np.array([[1, 0], [1, 0], [0, 1]])
-    >>> b = np.array([2, 1, 1])
-    >>> nnls(A, b)
-    (array([1.5, 1. ]), 0.7071067811865475)
-
-    >>> b = np.array([-1, -1, -1])
-    >>> nnls(A, b)
-    (array([0., 0.]), 1.7320508075688772)
-
-    """
-
-    A = np.asarray_chkfinite(A)
-    b = np.asarray_chkfinite(b)
-
-    if len(A.shape) != 2:
-        raise ValueError("Expected a two-dimensional array (matrix)" +
-                         f", but the shape of A is {A.shape}")
-    if len(b.shape) != 1:
-        raise ValueError("Expected a one-dimensional array (vector)" +
-                         f", but the shape of b is {b.shape}")
-
-    m, n = A.shape
-
-    if m != b.shape[0]:
-        raise ValueError(
-                "Incompatible dimensions. The first dimension of " +
-                f"A is {m}, while the shape of b is {(b.shape[0], )}")
-
-    x, rnorm, mode = _nnls(A, b, maxiter, tol=atol)
-    if mode != 1:
-        raise RuntimeError("Maximum number of iterations reached.")
-
-    return x, rnorm
-
-
-def _nnls(A, b, maxiter=None, tol=None):
-    """
-    This is a single RHS algorithm from ref [2] above. For multiple RHS
-    support, the algorithm is given in  :doi:`10.1002/cem.889`
-    """
-    m, n = A.shape
-
-    AtA = A.T @ A
-    Atb = b @ A  # Result is 1D - let NumPy figure it out
-
-    if not maxiter:
-        maxiter = 3*n
-    if tol is None:
-        tol = 10 * max(m, n) * np.spacing(1.)
-
-    # Initialize vars
-    x = np.zeros(n, dtype=np.float64)
-    s = np.zeros(n, dtype=np.float64)
-    # Inactive constraint switches
-    P = np.zeros(n, dtype=bool)
-
-    # Projected residual
-    w = Atb.copy().astype(np.float64)  # x=0. Skip (-AtA @ x) term
-
-    # Overall iteration counter
-    # Outer loop is not counted, inner iter is counted across outer spins
-    iter = 0
-
-    while (not P.all()) and (w[~P] > tol).any():  # B
-        # Get the "most" active coeff index and move to inactive set
-        k = np.argmax(w * (~P))  # B.2
-        P[k] = True  # B.3
-
-        # Iteration solution
-        s[:] = 0.
-        # B.4
-        with warnings.catch_warnings():
-            warnings.filterwarnings('ignore', message='Ill-conditioned matrix',
-                                    category=LinAlgWarning)
-            s[P] = solve(AtA[np.ix_(P, P)], Atb[P], assume_a='sym', check_finite=False)
-
-        # Inner loop
-        while (iter < maxiter) and (s[P].min() < 0):  # C.1
-            iter += 1
-            inds = P * (s < 0)
-            alpha = (x[inds] / (x[inds] - s[inds])).min()  # C.2
-            x *= (1 - alpha)
-            x += alpha*s
-            P[x <= tol] = False
-            with warnings.catch_warnings():
-                warnings.filterwarnings('ignore', message='Ill-conditioned matrix',
-                                        category=LinAlgWarning)
-                s[P] = solve(AtA[np.ix_(P, P)], Atb[P], assume_a='sym',
-                             check_finite=False)
-            s[~P] = 0  # C.6
-
-        x[:] = s[:]
-        w[:] = Atb - AtA @ x
-
-        if iter == maxiter:
-            # Typically following line should return
-            # return x, np.linalg.norm(A@x - b), -1
-            # however at the top level, -1 raises an exception wasting norm
-            # Instead return dummy number 0.
-            return x, 0., -1
-
-    return x, np.linalg.norm(A@x - b), 1
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_nonlin.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_nonlin.py
deleted file mode 100644
index cbaa3d4ced448df492e965cffe39e99f593c8895..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_nonlin.py
+++ /dev/null
@@ -1,1585 +0,0 @@
-# Copyright (C) 2009, Pauli Virtanen 
-# Distributed under the same license as SciPy.
-
-import inspect
-import sys
-import warnings
-
-import numpy as np
-from numpy import asarray, dot, vdot
-
-from scipy.linalg import norm, solve, inv, qr, svd, LinAlgError
-import scipy.sparse.linalg
-import scipy.sparse
-from scipy.linalg import get_blas_funcs
-from scipy._lib._util import copy_if_needed
-from scipy._lib._util import getfullargspec_no_self as _getfullargspec
-from ._linesearch import scalar_search_wolfe1, scalar_search_armijo
-
-
-__all__ = [
-    'broyden1', 'broyden2', 'anderson', 'linearmixing',
-    'diagbroyden', 'excitingmixing', 'newton_krylov',
-    'BroydenFirst', 'KrylovJacobian', 'InverseJacobian', 'NoConvergence']
-
-#------------------------------------------------------------------------------
-# Utility functions
-#------------------------------------------------------------------------------
-
-
-class NoConvergence(Exception):
-    """Exception raised when nonlinear solver fails to converge within the specified
-    `maxiter`."""
-    pass
-
-
-def maxnorm(x):
-    return np.absolute(x).max()
-
-
-def _as_inexact(x):
-    """Return `x` as an array, of either floats or complex floats"""
-    x = asarray(x)
-    if not np.issubdtype(x.dtype, np.inexact):
-        return asarray(x, dtype=np.float64)
-    return x
-
-
-def _array_like(x, x0):
-    """Return ndarray `x` as same array subclass and shape as `x0`"""
-    x = np.reshape(x, np.shape(x0))
-    wrap = getattr(x0, '__array_wrap__', x.__array_wrap__)
-    return wrap(x)
-
-
-def _safe_norm(v):
-    if not np.isfinite(v).all():
-        return np.array(np.inf)
-    return norm(v)
-
-#------------------------------------------------------------------------------
-# Generic nonlinear solver machinery
-#------------------------------------------------------------------------------
-
-
-_doc_parts = dict(
-    params_basic="""
-    F : function(x) -> f
-        Function whose root to find; should take and return an array-like
-        object.
-    xin : array_like
-        Initial guess for the solution
-    """.strip(),
-    params_extra="""
-    iter : int, optional
-        Number of iterations to make. If omitted (default), make as many
-        as required to meet tolerances.
-    verbose : bool, optional
-        Print status to stdout on every iteration.
-    maxiter : int, optional
-        Maximum number of iterations to make. If more are needed to
-        meet convergence, `NoConvergence` is raised.
-    f_tol : float, optional
-        Absolute tolerance (in max-norm) for the residual.
-        If omitted, default is 6e-6.
-    f_rtol : float, optional
-        Relative tolerance for the residual. If omitted, not used.
-    x_tol : float, optional
-        Absolute minimum step size, as determined from the Jacobian
-        approximation. If the step size is smaller than this, optimization
-        is terminated as successful. If omitted, not used.
-    x_rtol : float, optional
-        Relative minimum step size. If omitted, not used.
-    tol_norm : function(vector) -> scalar, optional
-        Norm to use in convergence check. Default is the maximum norm.
-    line_search : {None, 'armijo' (default), 'wolfe'}, optional
-        Which type of a line search to use to determine the step size in the
-        direction given by the Jacobian approximation. Defaults to 'armijo'.
-    callback : function, optional
-        Optional callback function. It is called on every iteration as
-        ``callback(x, f)`` where `x` is the current solution and `f`
-        the corresponding residual.
-
-    Returns
-    -------
-    sol : ndarray
-        An array (of similar array type as `x0`) containing the final solution.
-
-    Raises
-    ------
-    NoConvergence
-        When a solution was not found.
-
-    """.strip()
-)
-
-
-def _set_doc(obj):
-    if obj.__doc__:
-        obj.__doc__ = obj.__doc__ % _doc_parts
-
-
-def nonlin_solve(F, x0, jacobian='krylov', iter=None, verbose=False,
-                 maxiter=None, f_tol=None, f_rtol=None, x_tol=None, x_rtol=None,
-                 tol_norm=None, line_search='armijo', callback=None,
-                 full_output=False, raise_exception=True):
-    """
-    Find a root of a function, in a way suitable for large-scale problems.
-
-    Parameters
-    ----------
-    %(params_basic)s
-    jacobian : Jacobian
-        A Jacobian approximation: `Jacobian` object or something that
-        `asjacobian` can transform to one. Alternatively, a string specifying
-        which of the builtin Jacobian approximations to use:
-
-            krylov, broyden1, broyden2, anderson
-            diagbroyden, linearmixing, excitingmixing
-
-    %(params_extra)s
-    full_output : bool
-        If true, returns a dictionary `info` containing convergence
-        information.
-    raise_exception : bool
-        If True, a `NoConvergence` exception is raise if no solution is found.
-
-    See Also
-    --------
-    asjacobian, Jacobian
-
-    Notes
-    -----
-    This algorithm implements the inexact Newton method, with
-    backtracking or full line searches. Several Jacobian
-    approximations are available, including Krylov and Quasi-Newton
-    methods.
-
-    References
-    ----------
-    .. [KIM] C. T. Kelley, \"Iterative Methods for Linear and Nonlinear
-       Equations\". Society for Industrial and Applied Mathematics. (1995)
-       https://archive.siam.org/books/kelley/fr16/
-
-    """
-    # Can't use default parameters because it's being explicitly passed as None
-    # from the calling function, so we need to set it here.
-    tol_norm = maxnorm if tol_norm is None else tol_norm
-    condition = TerminationCondition(f_tol=f_tol, f_rtol=f_rtol,
-                                     x_tol=x_tol, x_rtol=x_rtol,
-                                     iter=iter, norm=tol_norm)
-
-    x0 = _as_inexact(x0)
-    def func(z):
-        return _as_inexact(F(_array_like(z, x0))).flatten()
-    x = x0.flatten()
-
-    dx = np.full_like(x, np.inf)
-    Fx = func(x)
-    Fx_norm = norm(Fx)
-
-    jacobian = asjacobian(jacobian)
-    jacobian.setup(x.copy(), Fx, func)
-
-    if maxiter is None:
-        if iter is not None:
-            maxiter = iter + 1
-        else:
-            maxiter = 100*(x.size+1)
-
-    if line_search is True:
-        line_search = 'armijo'
-    elif line_search is False:
-        line_search = None
-
-    if line_search not in (None, 'armijo', 'wolfe'):
-        raise ValueError("Invalid line search")
-
-    # Solver tolerance selection
-    gamma = 0.9
-    eta_max = 0.9999
-    eta_treshold = 0.1
-    eta = 1e-3
-
-    for n in range(maxiter):
-        status = condition.check(Fx, x, dx)
-        if status:
-            break
-
-        # The tolerance, as computed for scipy.sparse.linalg.* routines
-        tol = min(eta, eta*Fx_norm)
-        dx = -jacobian.solve(Fx, tol=tol)
-
-        if norm(dx) == 0:
-            raise ValueError("Jacobian inversion yielded zero vector. "
-                             "This indicates a bug in the Jacobian "
-                             "approximation.")
-
-        # Line search, or Newton step
-        if line_search:
-            s, x, Fx, Fx_norm_new = _nonlin_line_search(func, x, Fx, dx,
-                                                        line_search)
-        else:
-            s = 1.0
-            x = x + dx
-            Fx = func(x)
-            Fx_norm_new = norm(Fx)
-
-        jacobian.update(x.copy(), Fx)
-
-        if callback:
-            callback(x, Fx)
-
-        # Adjust forcing parameters for inexact methods
-        eta_A = gamma * Fx_norm_new**2 / Fx_norm**2
-        if gamma * eta**2 < eta_treshold:
-            eta = min(eta_max, eta_A)
-        else:
-            eta = min(eta_max, max(eta_A, gamma*eta**2))
-
-        Fx_norm = Fx_norm_new
-
-        # Print status
-        if verbose:
-            sys.stdout.write("%d:  |F(x)| = %g; step %g\n" % (
-                n, tol_norm(Fx), s))
-            sys.stdout.flush()
-    else:
-        if raise_exception:
-            raise NoConvergence(_array_like(x, x0))
-        else:
-            status = 2
-
-    if full_output:
-        info = {'nit': condition.iteration,
-                'fun': Fx,
-                'status': status,
-                'success': status == 1,
-                'message': {1: 'A solution was found at the specified '
-                               'tolerance.',
-                            2: 'The maximum number of iterations allowed '
-                               'has been reached.'
-                            }[status]
-                }
-        return _array_like(x, x0), info
-    else:
-        return _array_like(x, x0)
-
-
-_set_doc(nonlin_solve)
-
-
-def _nonlin_line_search(func, x, Fx, dx, search_type='armijo', rdiff=1e-8,
-                        smin=1e-2):
-    tmp_s = [0]
-    tmp_Fx = [Fx]
-    tmp_phi = [norm(Fx)**2]
-    s_norm = norm(x) / norm(dx)
-
-    def phi(s, store=True):
-        if s == tmp_s[0]:
-            return tmp_phi[0]
-        xt = x + s*dx
-        v = func(xt)
-        p = _safe_norm(v)**2
-        if store:
-            tmp_s[0] = s
-            tmp_phi[0] = p
-            tmp_Fx[0] = v
-        return p
-
-    def derphi(s):
-        ds = (abs(s) + s_norm + 1) * rdiff
-        return (phi(s+ds, store=False) - phi(s)) / ds
-
-    if search_type == 'wolfe':
-        s, phi1, phi0 = scalar_search_wolfe1(phi, derphi, tmp_phi[0],
-                                             xtol=1e-2, amin=smin)
-    elif search_type == 'armijo':
-        s, phi1 = scalar_search_armijo(phi, tmp_phi[0], -tmp_phi[0],
-                                       amin=smin)
-
-    if s is None:
-        # XXX: No suitable step length found. Take the full Newton step,
-        #      and hope for the best.
-        s = 1.0
-
-    x = x + s*dx
-    if s == tmp_s[0]:
-        Fx = tmp_Fx[0]
-    else:
-        Fx = func(x)
-    Fx_norm = norm(Fx)
-
-    return s, x, Fx, Fx_norm
-
-
-class TerminationCondition:
-    """
-    Termination condition for an iteration. It is terminated if
-
-    - |F| < f_rtol*|F_0|, AND
-    - |F| < f_tol
-
-    AND
-
-    - |dx| < x_rtol*|x|, AND
-    - |dx| < x_tol
-
-    """
-    def __init__(self, f_tol=None, f_rtol=None, x_tol=None, x_rtol=None,
-                 iter=None, norm=maxnorm):
-
-        if f_tol is None:
-            f_tol = np.finfo(np.float64).eps ** (1./3)
-        if f_rtol is None:
-            f_rtol = np.inf
-        if x_tol is None:
-            x_tol = np.inf
-        if x_rtol is None:
-            x_rtol = np.inf
-
-        self.x_tol = x_tol
-        self.x_rtol = x_rtol
-        self.f_tol = f_tol
-        self.f_rtol = f_rtol
-
-        self.norm = norm
-
-        self.iter = iter
-
-        self.f0_norm = None
-        self.iteration = 0
-
-    def check(self, f, x, dx):
-        self.iteration += 1
-        f_norm = self.norm(f)
-        x_norm = self.norm(x)
-        dx_norm = self.norm(dx)
-
-        if self.f0_norm is None:
-            self.f0_norm = f_norm
-
-        if f_norm == 0:
-            return 1
-
-        if self.iter is not None:
-            # backwards compatibility with SciPy 0.6.0
-            return 2 * (self.iteration > self.iter)
-
-        # NB: condition must succeed for rtol=inf even if norm == 0
-        return int((f_norm <= self.f_tol
-                    and f_norm/self.f_rtol <= self.f0_norm)
-                   and (dx_norm <= self.x_tol
-                        and dx_norm/self.x_rtol <= x_norm))
-
-
-#------------------------------------------------------------------------------
-# Generic Jacobian approximation
-#------------------------------------------------------------------------------
-
-class Jacobian:
-    """
-    Common interface for Jacobians or Jacobian approximations.
-
-    The optional methods come useful when implementing trust region
-    etc., algorithms that often require evaluating transposes of the
-    Jacobian.
-
-    Methods
-    -------
-    solve
-        Returns J^-1 * v
-    update
-        Updates Jacobian to point `x` (where the function has residual `Fx`)
-
-    matvec : optional
-        Returns J * v
-    rmatvec : optional
-        Returns A^H * v
-    rsolve : optional
-        Returns A^-H * v
-    matmat : optional
-        Returns A * V, where V is a dense matrix with dimensions (N,K).
-    todense : optional
-        Form the dense Jacobian matrix. Necessary for dense trust region
-        algorithms, and useful for testing.
-
-    Attributes
-    ----------
-    shape
-        Matrix dimensions (M, N)
-    dtype
-        Data type of the matrix.
-    func : callable, optional
-        Function the Jacobian corresponds to
-
-    """
-
-    def __init__(self, **kw):
-        names = ["solve", "update", "matvec", "rmatvec", "rsolve",
-                 "matmat", "todense", "shape", "dtype"]
-        for name, value in kw.items():
-            if name not in names:
-                raise ValueError("Unknown keyword argument %s" % name)
-            if value is not None:
-                setattr(self, name, kw[name])
-
-
-        if hasattr(self, "todense"):
-            def __array__(self, dtype=None, copy=None):
-                if dtype is not None:
-                    raise ValueError(f"`dtype` must be None, was {dtype}")
-                return self.todense()
-
-    def aspreconditioner(self):
-        return InverseJacobian(self)
-
-    def solve(self, v, tol=0):
-        raise NotImplementedError
-
-    def update(self, x, F):
-        pass
-
-    def setup(self, x, F, func):
-        self.func = func
-        self.shape = (F.size, x.size)
-        self.dtype = F.dtype
-        if self.__class__.setup is Jacobian.setup:
-            # Call on the first point unless overridden
-            self.update(x, F)
-
-
-class InverseJacobian:
-    def __init__(self, jacobian):
-        self.jacobian = jacobian
-        self.matvec = jacobian.solve
-        self.update = jacobian.update
-        if hasattr(jacobian, 'setup'):
-            self.setup = jacobian.setup
-        if hasattr(jacobian, 'rsolve'):
-            self.rmatvec = jacobian.rsolve
-
-    @property
-    def shape(self):
-        return self.jacobian.shape
-
-    @property
-    def dtype(self):
-        return self.jacobian.dtype
-
-
-def asjacobian(J):
-    """
-    Convert given object to one suitable for use as a Jacobian.
-    """
-    spsolve = scipy.sparse.linalg.spsolve
-    if isinstance(J, Jacobian):
-        return J
-    elif inspect.isclass(J) and issubclass(J, Jacobian):
-        return J()
-    elif isinstance(J, np.ndarray):
-        if J.ndim > 2:
-            raise ValueError('array must have rank <= 2')
-        J = np.atleast_2d(np.asarray(J))
-        if J.shape[0] != J.shape[1]:
-            raise ValueError('array must be square')
-
-        return Jacobian(matvec=lambda v: dot(J, v),
-                        rmatvec=lambda v: dot(J.conj().T, v),
-                        solve=lambda v, tol=0: solve(J, v),
-                        rsolve=lambda v, tol=0: solve(J.conj().T, v),
-                        dtype=J.dtype, shape=J.shape)
-    elif scipy.sparse.issparse(J):
-        if J.shape[0] != J.shape[1]:
-            raise ValueError('matrix must be square')
-        return Jacobian(matvec=lambda v: J @ v,
-                        rmatvec=lambda v: J.conj().T @ v,
-                        solve=lambda v, tol=0: spsolve(J, v),
-                        rsolve=lambda v, tol=0: spsolve(J.conj().T, v),
-                        dtype=J.dtype, shape=J.shape)
-    elif hasattr(J, 'shape') and hasattr(J, 'dtype') and hasattr(J, 'solve'):
-        return Jacobian(matvec=getattr(J, 'matvec'),
-                        rmatvec=getattr(J, 'rmatvec'),
-                        solve=J.solve,
-                        rsolve=getattr(J, 'rsolve'),
-                        update=getattr(J, 'update'),
-                        setup=getattr(J, 'setup'),
-                        dtype=J.dtype,
-                        shape=J.shape)
-    elif callable(J):
-        # Assume it's a function J(x) that returns the Jacobian
-        class Jac(Jacobian):
-            def update(self, x, F):
-                self.x = x
-
-            def solve(self, v, tol=0):
-                m = J(self.x)
-                if isinstance(m, np.ndarray):
-                    return solve(m, v)
-                elif scipy.sparse.issparse(m):
-                    return spsolve(m, v)
-                else:
-                    raise ValueError("Unknown matrix type")
-
-            def matvec(self, v):
-                m = J(self.x)
-                if isinstance(m, np.ndarray):
-                    return dot(m, v)
-                elif scipy.sparse.issparse(m):
-                    return m @ v
-                else:
-                    raise ValueError("Unknown matrix type")
-
-            def rsolve(self, v, tol=0):
-                m = J(self.x)
-                if isinstance(m, np.ndarray):
-                    return solve(m.conj().T, v)
-                elif scipy.sparse.issparse(m):
-                    return spsolve(m.conj().T, v)
-                else:
-                    raise ValueError("Unknown matrix type")
-
-            def rmatvec(self, v):
-                m = J(self.x)
-                if isinstance(m, np.ndarray):
-                    return dot(m.conj().T, v)
-                elif scipy.sparse.issparse(m):
-                    return m.conj().T @ v
-                else:
-                    raise ValueError("Unknown matrix type")
-        return Jac()
-    elif isinstance(J, str):
-        return dict(broyden1=BroydenFirst,
-                    broyden2=BroydenSecond,
-                    anderson=Anderson,
-                    diagbroyden=DiagBroyden,
-                    linearmixing=LinearMixing,
-                    excitingmixing=ExcitingMixing,
-                    krylov=KrylovJacobian)[J]()
-    else:
-        raise TypeError('Cannot convert object to a Jacobian')
-
-
-#------------------------------------------------------------------------------
-# Broyden
-#------------------------------------------------------------------------------
-
-class GenericBroyden(Jacobian):
-    def setup(self, x0, f0, func):
-        Jacobian.setup(self, x0, f0, func)
-        self.last_f = f0
-        self.last_x = x0
-
-        if hasattr(self, 'alpha') and self.alpha is None:
-            # Autoscale the initial Jacobian parameter
-            # unless we have already guessed the solution.
-            normf0 = norm(f0)
-            if normf0:
-                self.alpha = 0.5*max(norm(x0), 1) / normf0
-            else:
-                self.alpha = 1.0
-
-    def _update(self, x, f, dx, df, dx_norm, df_norm):
-        raise NotImplementedError
-
-    def update(self, x, f):
-        df = f - self.last_f
-        dx = x - self.last_x
-        self._update(x, f, dx, df, norm(dx), norm(df))
-        self.last_f = f
-        self.last_x = x
-
-
-class LowRankMatrix:
-    r"""
-    A matrix represented as
-
-    .. math:: \alpha I + \sum_{n=0}^{n=M} c_n d_n^\dagger
-
-    However, if the rank of the matrix reaches the dimension of the vectors,
-    full matrix representation will be used thereon.
-
-    """
-
-    def __init__(self, alpha, n, dtype):
-        self.alpha = alpha
-        self.cs = []
-        self.ds = []
-        self.n = n
-        self.dtype = dtype
-        self.collapsed = None
-
-    @staticmethod
-    def _matvec(v, alpha, cs, ds):
-        axpy, scal, dotc = get_blas_funcs(['axpy', 'scal', 'dotc'],
-                                          cs[:1] + [v])
-        w = alpha * v
-        for c, d in zip(cs, ds):
-            a = dotc(d, v)
-            w = axpy(c, w, w.size, a)
-        return w
-
-    @staticmethod
-    def _solve(v, alpha, cs, ds):
-        """Evaluate w = M^-1 v"""
-        if len(cs) == 0:
-            return v/alpha
-
-        # (B + C D^H)^-1 = B^-1 - B^-1 C (I + D^H B^-1 C)^-1 D^H B^-1
-
-        axpy, dotc = get_blas_funcs(['axpy', 'dotc'], cs[:1] + [v])
-
-        c0 = cs[0]
-        A = alpha * np.identity(len(cs), dtype=c0.dtype)
-        for i, d in enumerate(ds):
-            for j, c in enumerate(cs):
-                A[i,j] += dotc(d, c)
-
-        q = np.zeros(len(cs), dtype=c0.dtype)
-        for j, d in enumerate(ds):
-            q[j] = dotc(d, v)
-        q /= alpha
-        q = solve(A, q)
-
-        w = v/alpha
-        for c, qc in zip(cs, q):
-            w = axpy(c, w, w.size, -qc)
-
-        return w
-
-    def matvec(self, v):
-        """Evaluate w = M v"""
-        if self.collapsed is not None:
-            return np.dot(self.collapsed, v)
-        return LowRankMatrix._matvec(v, self.alpha, self.cs, self.ds)
-
-    def rmatvec(self, v):
-        """Evaluate w = M^H v"""
-        if self.collapsed is not None:
-            return np.dot(self.collapsed.T.conj(), v)
-        return LowRankMatrix._matvec(v, np.conj(self.alpha), self.ds, self.cs)
-
-    def solve(self, v, tol=0):
-        """Evaluate w = M^-1 v"""
-        if self.collapsed is not None:
-            return solve(self.collapsed, v)
-        return LowRankMatrix._solve(v, self.alpha, self.cs, self.ds)
-
-    def rsolve(self, v, tol=0):
-        """Evaluate w = M^-H v"""
-        if self.collapsed is not None:
-            return solve(self.collapsed.T.conj(), v)
-        return LowRankMatrix._solve(v, np.conj(self.alpha), self.ds, self.cs)
-
-    def append(self, c, d):
-        if self.collapsed is not None:
-            self.collapsed += c[:,None] * d[None,:].conj()
-            return
-
-        self.cs.append(c)
-        self.ds.append(d)
-
-        if len(self.cs) > c.size:
-            self.collapse()
-
-    def __array__(self, dtype=None, copy=None):
-        if dtype is not None:
-            warnings.warn("LowRankMatrix is scipy-internal code, `dtype` "
-                          f"should only be None but was {dtype} (not handled)",
-                          stacklevel=3)
-        if copy is not None:
-            warnings.warn("LowRankMatrix is scipy-internal code, `copy` "
-                          f"should only be None but was {copy} (not handled)",
-                          stacklevel=3)
-        if self.collapsed is not None:
-            return self.collapsed
-
-        Gm = self.alpha*np.identity(self.n, dtype=self.dtype)
-        for c, d in zip(self.cs, self.ds):
-            Gm += c[:,None]*d[None,:].conj()
-        return Gm
-
-    def collapse(self):
-        """Collapse the low-rank matrix to a full-rank one."""
-        self.collapsed = np.array(self, copy=copy_if_needed)
-        self.cs = None
-        self.ds = None
-        self.alpha = None
-
-    def restart_reduce(self, rank):
-        """
-        Reduce the rank of the matrix by dropping all vectors.
-        """
-        if self.collapsed is not None:
-            return
-        assert rank > 0
-        if len(self.cs) > rank:
-            del self.cs[:]
-            del self.ds[:]
-
-    def simple_reduce(self, rank):
-        """
-        Reduce the rank of the matrix by dropping oldest vectors.
-        """
-        if self.collapsed is not None:
-            return
-        assert rank > 0
-        while len(self.cs) > rank:
-            del self.cs[0]
-            del self.ds[0]
-
-    def svd_reduce(self, max_rank, to_retain=None):
-        """
-        Reduce the rank of the matrix by retaining some SVD components.
-
-        This corresponds to the \"Broyden Rank Reduction Inverse\"
-        algorithm described in [1]_.
-
-        Note that the SVD decomposition can be done by solving only a
-        problem whose size is the effective rank of this matrix, which
-        is viable even for large problems.
-
-        Parameters
-        ----------
-        max_rank : int
-            Maximum rank of this matrix after reduction.
-        to_retain : int, optional
-            Number of SVD components to retain when reduction is done
-            (ie. rank > max_rank). Default is ``max_rank - 2``.
-
-        References
-        ----------
-        .. [1] B.A. van der Rotten, PhD thesis,
-           \"A limited memory Broyden method to solve high-dimensional
-           systems of nonlinear equations\". Mathematisch Instituut,
-           Universiteit Leiden, The Netherlands (2003).
-
-           https://web.archive.org/web/20161022015821/http://www.math.leidenuniv.nl/scripties/Rotten.pdf
-
-        """
-        if self.collapsed is not None:
-            return
-
-        p = max_rank
-        if to_retain is not None:
-            q = to_retain
-        else:
-            q = p - 2
-
-        if self.cs:
-            p = min(p, len(self.cs[0]))
-        q = max(0, min(q, p-1))
-
-        m = len(self.cs)
-        if m < p:
-            # nothing to do
-            return
-
-        C = np.array(self.cs).T
-        D = np.array(self.ds).T
-
-        D, R = qr(D, mode='economic')
-        C = dot(C, R.T.conj())
-
-        U, S, WH = svd(C, full_matrices=False)
-
-        C = dot(C, inv(WH))
-        D = dot(D, WH.T.conj())
-
-        for k in range(q):
-            self.cs[k] = C[:,k].copy()
-            self.ds[k] = D[:,k].copy()
-
-        del self.cs[q:]
-        del self.ds[q:]
-
-
-_doc_parts['broyden_params'] = """
-    alpha : float, optional
-        Initial guess for the Jacobian is ``(-1/alpha)``.
-    reduction_method : str or tuple, optional
-        Method used in ensuring that the rank of the Broyden matrix
-        stays low. Can either be a string giving the name of the method,
-        or a tuple of the form ``(method, param1, param2, ...)``
-        that gives the name of the method and values for additional parameters.
-
-        Methods available:
-
-            - ``restart``: drop all matrix columns. Has no extra parameters.
-            - ``simple``: drop oldest matrix column. Has no extra parameters.
-            - ``svd``: keep only the most significant SVD components.
-              Takes an extra parameter, ``to_retain``, which determines the
-              number of SVD components to retain when rank reduction is done.
-              Default is ``max_rank - 2``.
-
-    max_rank : int, optional
-        Maximum rank for the Broyden matrix.
-        Default is infinity (i.e., no rank reduction).
-    """.strip()
-
-
-class BroydenFirst(GenericBroyden):
-    r"""
-    Find a root of a function, using Broyden's first Jacobian approximation.
-
-    This method is also known as \"Broyden's good method\".
-
-    Parameters
-    ----------
-    %(params_basic)s
-    %(broyden_params)s
-    %(params_extra)s
-
-    See Also
-    --------
-    root : Interface to root finding algorithms for multivariate
-           functions. See ``method='broyden1'`` in particular.
-
-    Notes
-    -----
-    This algorithm implements the inverse Jacobian Quasi-Newton update
-
-    .. math:: H_+ = H + (dx - H df) dx^\dagger H / ( dx^\dagger H df)
-
-    which corresponds to Broyden's first Jacobian update
-
-    .. math:: J_+ = J + (df - J dx) dx^\dagger / dx^\dagger dx
-
-
-    References
-    ----------
-    .. [1] B.A. van der Rotten, PhD thesis,
-       \"A limited memory Broyden method to solve high-dimensional
-       systems of nonlinear equations\". Mathematisch Instituut,
-       Universiteit Leiden, The Netherlands (2003).
-
-       https://web.archive.org/web/20161022015821/http://www.math.leidenuniv.nl/scripties/Rotten.pdf
-
-    Examples
-    --------
-    The following functions define a system of nonlinear equations
-
-    >>> def fun(x):
-    ...     return [x[0]  + 0.5 * (x[0] - x[1])**3 - 1.0,
-    ...             0.5 * (x[1] - x[0])**3 + x[1]]
-
-    A solution can be obtained as follows.
-
-    >>> from scipy import optimize
-    >>> sol = optimize.broyden1(fun, [0, 0])
-    >>> sol
-    array([0.84116396, 0.15883641])
-
-    """
-
-    def __init__(self, alpha=None, reduction_method='restart', max_rank=None):
-        GenericBroyden.__init__(self)
-        self.alpha = alpha
-        self.Gm = None
-
-        if max_rank is None:
-            max_rank = np.inf
-        self.max_rank = max_rank
-
-        if isinstance(reduction_method, str):
-            reduce_params = ()
-        else:
-            reduce_params = reduction_method[1:]
-            reduction_method = reduction_method[0]
-        reduce_params = (max_rank - 1,) + reduce_params
-
-        if reduction_method == 'svd':
-            self._reduce = lambda: self.Gm.svd_reduce(*reduce_params)
-        elif reduction_method == 'simple':
-            self._reduce = lambda: self.Gm.simple_reduce(*reduce_params)
-        elif reduction_method == 'restart':
-            self._reduce = lambda: self.Gm.restart_reduce(*reduce_params)
-        else:
-            raise ValueError("Unknown rank reduction method '%s'" %
-                             reduction_method)
-
-    def setup(self, x, F, func):
-        GenericBroyden.setup(self, x, F, func)
-        self.Gm = LowRankMatrix(-self.alpha, self.shape[0], self.dtype)
-
-    def todense(self):
-        return inv(self.Gm)
-
-    def solve(self, f, tol=0):
-        r = self.Gm.matvec(f)
-        if not np.isfinite(r).all():
-            # singular; reset the Jacobian approximation
-            self.setup(self.last_x, self.last_f, self.func)
-            return self.Gm.matvec(f)
-        return r
-
-    def matvec(self, f):
-        return self.Gm.solve(f)
-
-    def rsolve(self, f, tol=0):
-        return self.Gm.rmatvec(f)
-
-    def rmatvec(self, f):
-        return self.Gm.rsolve(f)
-
-    def _update(self, x, f, dx, df, dx_norm, df_norm):
-        self._reduce()  # reduce first to preserve secant condition
-
-        v = self.Gm.rmatvec(dx)
-        c = dx - self.Gm.matvec(df)
-        d = v / vdot(df, v)
-
-        self.Gm.append(c, d)
-
-
-class BroydenSecond(BroydenFirst):
-    """
-    Find a root of a function, using Broyden\'s second Jacobian approximation.
-
-    This method is also known as \"Broyden's bad method\".
-
-    Parameters
-    ----------
-    %(params_basic)s
-    %(broyden_params)s
-    %(params_extra)s
-
-    See Also
-    --------
-    root : Interface to root finding algorithms for multivariate
-           functions. See ``method='broyden2'`` in particular.
-
-    Notes
-    -----
-    This algorithm implements the inverse Jacobian Quasi-Newton update
-
-    .. math:: H_+ = H + (dx - H df) df^\\dagger / ( df^\\dagger df)
-
-    corresponding to Broyden's second method.
-
-    References
-    ----------
-    .. [1] B.A. van der Rotten, PhD thesis,
-       \"A limited memory Broyden method to solve high-dimensional
-       systems of nonlinear equations\". Mathematisch Instituut,
-       Universiteit Leiden, The Netherlands (2003).
-
-       https://web.archive.org/web/20161022015821/http://www.math.leidenuniv.nl/scripties/Rotten.pdf
-
-    Examples
-    --------
-    The following functions define a system of nonlinear equations
-
-    >>> def fun(x):
-    ...     return [x[0]  + 0.5 * (x[0] - x[1])**3 - 1.0,
-    ...             0.5 * (x[1] - x[0])**3 + x[1]]
-
-    A solution can be obtained as follows.
-
-    >>> from scipy import optimize
-    >>> sol = optimize.broyden2(fun, [0, 0])
-    >>> sol
-    array([0.84116365, 0.15883529])
-
-    """
-
-    def _update(self, x, f, dx, df, dx_norm, df_norm):
-        self._reduce()  # reduce first to preserve secant condition
-
-        v = df
-        c = dx - self.Gm.matvec(df)
-        d = v / df_norm**2
-        self.Gm.append(c, d)
-
-
-#------------------------------------------------------------------------------
-# Broyden-like (restricted memory)
-#------------------------------------------------------------------------------
-
-class Anderson(GenericBroyden):
-    """
-    Find a root of a function, using (extended) Anderson mixing.
-
-    The Jacobian is formed by for a 'best' solution in the space
-    spanned by last `M` vectors. As a result, only a MxM matrix
-    inversions and MxN multiplications are required. [Ey]_
-
-    Parameters
-    ----------
-    %(params_basic)s
-    alpha : float, optional
-        Initial guess for the Jacobian is (-1/alpha).
-    M : float, optional
-        Number of previous vectors to retain. Defaults to 5.
-    w0 : float, optional
-        Regularization parameter for numerical stability.
-        Compared to unity, good values of the order of 0.01.
-    %(params_extra)s
-
-    See Also
-    --------
-    root : Interface to root finding algorithms for multivariate
-           functions. See ``method='anderson'`` in particular.
-
-    References
-    ----------
-    .. [Ey] V. Eyert, J. Comp. Phys., 124, 271 (1996).
-
-    Examples
-    --------
-    The following functions define a system of nonlinear equations
-
-    >>> def fun(x):
-    ...     return [x[0]  + 0.5 * (x[0] - x[1])**3 - 1.0,
-    ...             0.5 * (x[1] - x[0])**3 + x[1]]
-
-    A solution can be obtained as follows.
-
-    >>> from scipy import optimize
-    >>> sol = optimize.anderson(fun, [0, 0])
-    >>> sol
-    array([0.84116588, 0.15883789])
-
-    """
-
-    # Note:
-    #
-    # Anderson method maintains a rank M approximation of the inverse Jacobian,
-    #
-    #     J^-1 v ~ -v*alpha + (dX + alpha dF) A^-1 dF^H v
-    #     A      = W + dF^H dF
-    #     W      = w0^2 diag(dF^H dF)
-    #
-    # so that for w0 = 0 the secant condition applies for last M iterates, i.e.,
-    #
-    #     J^-1 df_j = dx_j
-    #
-    # for all j = 0 ... M-1.
-    #
-    # Moreover, (from Sherman-Morrison-Woodbury formula)
-    #
-    #    J v ~ [ b I - b^2 C (I + b dF^H A^-1 C)^-1 dF^H ] v
-    #    C   = (dX + alpha dF) A^-1
-    #    b   = -1/alpha
-    #
-    # and after simplification
-    #
-    #    J v ~ -v/alpha + (dX/alpha + dF) (dF^H dX - alpha W)^-1 dF^H v
-    #
-
-    def __init__(self, alpha=None, w0=0.01, M=5):
-        GenericBroyden.__init__(self)
-        self.alpha = alpha
-        self.M = M
-        self.dx = []
-        self.df = []
-        self.gamma = None
-        self.w0 = w0
-
-    def solve(self, f, tol=0):
-        dx = -self.alpha*f
-
-        n = len(self.dx)
-        if n == 0:
-            return dx
-
-        df_f = np.empty(n, dtype=f.dtype)
-        for k in range(n):
-            df_f[k] = vdot(self.df[k], f)
-
-        try:
-            gamma = solve(self.a, df_f)
-        except LinAlgError:
-            # singular; reset the Jacobian approximation
-            del self.dx[:]
-            del self.df[:]
-            return dx
-
-        for m in range(n):
-            dx += gamma[m]*(self.dx[m] + self.alpha*self.df[m])
-        return dx
-
-    def matvec(self, f):
-        dx = -f/self.alpha
-
-        n = len(self.dx)
-        if n == 0:
-            return dx
-
-        df_f = np.empty(n, dtype=f.dtype)
-        for k in range(n):
-            df_f[k] = vdot(self.df[k], f)
-
-        b = np.empty((n, n), dtype=f.dtype)
-        for i in range(n):
-            for j in range(n):
-                b[i,j] = vdot(self.df[i], self.dx[j])
-                if i == j and self.w0 != 0:
-                    b[i,j] -= vdot(self.df[i], self.df[i])*self.w0**2*self.alpha
-        gamma = solve(b, df_f)
-
-        for m in range(n):
-            dx += gamma[m]*(self.df[m] + self.dx[m]/self.alpha)
-        return dx
-
-    def _update(self, x, f, dx, df, dx_norm, df_norm):
-        if self.M == 0:
-            return
-
-        self.dx.append(dx)
-        self.df.append(df)
-
-        while len(self.dx) > self.M:
-            self.dx.pop(0)
-            self.df.pop(0)
-
-        n = len(self.dx)
-        a = np.zeros((n, n), dtype=f.dtype)
-
-        for i in range(n):
-            for j in range(i, n):
-                if i == j:
-                    wd = self.w0**2
-                else:
-                    wd = 0
-                a[i,j] = (1+wd)*vdot(self.df[i], self.df[j])
-
-        a += np.triu(a, 1).T.conj()
-        self.a = a
-
-#------------------------------------------------------------------------------
-# Simple iterations
-#------------------------------------------------------------------------------
-
-
-class DiagBroyden(GenericBroyden):
-    """
-    Find a root of a function, using diagonal Broyden Jacobian approximation.
-
-    The Jacobian approximation is derived from previous iterations, by
-    retaining only the diagonal of Broyden matrices.
-
-    .. warning::
-
-       This algorithm may be useful for specific problems, but whether
-       it will work may depend strongly on the problem.
-
-    Parameters
-    ----------
-    %(params_basic)s
-    alpha : float, optional
-        Initial guess for the Jacobian is (-1/alpha).
-    %(params_extra)s
-
-    See Also
-    --------
-    root : Interface to root finding algorithms for multivariate
-           functions. See ``method='diagbroyden'`` in particular.
-
-    Examples
-    --------
-    The following functions define a system of nonlinear equations
-
-    >>> def fun(x):
-    ...     return [x[0]  + 0.5 * (x[0] - x[1])**3 - 1.0,
-    ...             0.5 * (x[1] - x[0])**3 + x[1]]
-
-    A solution can be obtained as follows.
-
-    >>> from scipy import optimize
-    >>> sol = optimize.diagbroyden(fun, [0, 0])
-    >>> sol
-    array([0.84116403, 0.15883384])
-
-    """
-
-    def __init__(self, alpha=None):
-        GenericBroyden.__init__(self)
-        self.alpha = alpha
-
-    def setup(self, x, F, func):
-        GenericBroyden.setup(self, x, F, func)
-        self.d = np.full((self.shape[0],), 1 / self.alpha, dtype=self.dtype)
-
-    def solve(self, f, tol=0):
-        return -f / self.d
-
-    def matvec(self, f):
-        return -f * self.d
-
-    def rsolve(self, f, tol=0):
-        return -f / self.d.conj()
-
-    def rmatvec(self, f):
-        return -f * self.d.conj()
-
-    def todense(self):
-        return np.diag(-self.d)
-
-    def _update(self, x, f, dx, df, dx_norm, df_norm):
-        self.d -= (df + self.d*dx)*dx/dx_norm**2
-
-
-class LinearMixing(GenericBroyden):
-    """
-    Find a root of a function, using a scalar Jacobian approximation.
-
-    .. warning::
-
-       This algorithm may be useful for specific problems, but whether
-       it will work may depend strongly on the problem.
-
-    Parameters
-    ----------
-    %(params_basic)s
-    alpha : float, optional
-        The Jacobian approximation is (-1/alpha).
-    %(params_extra)s
-
-    See Also
-    --------
-    root : Interface to root finding algorithms for multivariate
-           functions. See ``method='linearmixing'`` in particular.
-
-    """
-
-    def __init__(self, alpha=None):
-        GenericBroyden.__init__(self)
-        self.alpha = alpha
-
-    def solve(self, f, tol=0):
-        return -f*self.alpha
-
-    def matvec(self, f):
-        return -f/self.alpha
-
-    def rsolve(self, f, tol=0):
-        return -f*np.conj(self.alpha)
-
-    def rmatvec(self, f):
-        return -f/np.conj(self.alpha)
-
-    def todense(self):
-        return np.diag(np.full(self.shape[0], -1/self.alpha))
-
-    def _update(self, x, f, dx, df, dx_norm, df_norm):
-        pass
-
-
-class ExcitingMixing(GenericBroyden):
-    """
-    Find a root of a function, using a tuned diagonal Jacobian approximation.
-
-    The Jacobian matrix is diagonal and is tuned on each iteration.
-
-    .. warning::
-
-       This algorithm may be useful for specific problems, but whether
-       it will work may depend strongly on the problem.
-
-    See Also
-    --------
-    root : Interface to root finding algorithms for multivariate
-           functions. See ``method='excitingmixing'`` in particular.
-
-    Parameters
-    ----------
-    %(params_basic)s
-    alpha : float, optional
-        Initial Jacobian approximation is (-1/alpha).
-    alphamax : float, optional
-        The entries of the diagonal Jacobian are kept in the range
-        ``[alpha, alphamax]``.
-    %(params_extra)s
-    """
-
-    def __init__(self, alpha=None, alphamax=1.0):
-        GenericBroyden.__init__(self)
-        self.alpha = alpha
-        self.alphamax = alphamax
-        self.beta = None
-
-    def setup(self, x, F, func):
-        GenericBroyden.setup(self, x, F, func)
-        self.beta = np.full((self.shape[0],), self.alpha, dtype=self.dtype)
-
-    def solve(self, f, tol=0):
-        return -f*self.beta
-
-    def matvec(self, f):
-        return -f/self.beta
-
-    def rsolve(self, f, tol=0):
-        return -f*self.beta.conj()
-
-    def rmatvec(self, f):
-        return -f/self.beta.conj()
-
-    def todense(self):
-        return np.diag(-1/self.beta)
-
-    def _update(self, x, f, dx, df, dx_norm, df_norm):
-        incr = f*self.last_f > 0
-        self.beta[incr] += self.alpha
-        self.beta[~incr] = self.alpha
-        np.clip(self.beta, 0, self.alphamax, out=self.beta)
-
-
-#------------------------------------------------------------------------------
-# Iterative/Krylov approximated Jacobians
-#------------------------------------------------------------------------------
-
-class KrylovJacobian(Jacobian):
-    r"""
-    Find a root of a function, using Krylov approximation for inverse Jacobian.
-
-    This method is suitable for solving large-scale problems.
-
-    Parameters
-    ----------
-    %(params_basic)s
-    rdiff : float, optional
-        Relative step size to use in numerical differentiation.
-    method : str or callable, optional
-        Krylov method to use to approximate the Jacobian.  Can be a string,
-        or a function implementing the same interface as the iterative
-        solvers in `scipy.sparse.linalg`. If a string, needs to be one of:
-        ``'lgmres'``, ``'gmres'``, ``'bicgstab'``, ``'cgs'``, ``'minres'``,
-        ``'tfqmr'``.
-
-        The default is `scipy.sparse.linalg.lgmres`.
-    inner_maxiter : int, optional
-        Parameter to pass to the "inner" Krylov solver: maximum number of
-        iterations. Iteration will stop after maxiter steps even if the
-        specified tolerance has not been achieved.
-    inner_M : LinearOperator or InverseJacobian
-        Preconditioner for the inner Krylov iteration.
-        Note that you can use also inverse Jacobians as (adaptive)
-        preconditioners. For example,
-
-        >>> from scipy.optimize import BroydenFirst, KrylovJacobian
-        >>> from scipy.optimize import InverseJacobian
-        >>> jac = BroydenFirst()
-        >>> kjac = KrylovJacobian(inner_M=InverseJacobian(jac))
-
-        If the preconditioner has a method named 'update', it will be called
-        as ``update(x, f)`` after each nonlinear step, with ``x`` giving
-        the current point, and ``f`` the current function value.
-    outer_k : int, optional
-        Size of the subspace kept across LGMRES nonlinear iterations.
-        See `scipy.sparse.linalg.lgmres` for details.
-    inner_kwargs : kwargs
-        Keyword parameters for the "inner" Krylov solver
-        (defined with `method`). Parameter names must start with
-        the `inner_` prefix which will be stripped before passing on
-        the inner method. See, e.g., `scipy.sparse.linalg.gmres` for details.
-    %(params_extra)s
-
-    See Also
-    --------
-    root : Interface to root finding algorithms for multivariate
-           functions. See ``method='krylov'`` in particular.
-    scipy.sparse.linalg.gmres
-    scipy.sparse.linalg.lgmres
-
-    Notes
-    -----
-    This function implements a Newton-Krylov solver. The basic idea is
-    to compute the inverse of the Jacobian with an iterative Krylov
-    method. These methods require only evaluating the Jacobian-vector
-    products, which are conveniently approximated by a finite difference:
-
-    .. math:: J v \approx (f(x + \omega*v/|v|) - f(x)) / \omega
-
-    Due to the use of iterative matrix inverses, these methods can
-    deal with large nonlinear problems.
-
-    SciPy's `scipy.sparse.linalg` module offers a selection of Krylov
-    solvers to choose from. The default here is `lgmres`, which is a
-    variant of restarted GMRES iteration that reuses some of the
-    information obtained in the previous Newton steps to invert
-    Jacobians in subsequent steps.
-
-    For a review on Newton-Krylov methods, see for example [1]_,
-    and for the LGMRES sparse inverse method, see [2]_.
-
-    References
-    ----------
-    .. [1] C. T. Kelley, Solving Nonlinear Equations with Newton's Method,
-           SIAM, pp.57-83, 2003.
-           :doi:`10.1137/1.9780898718898.ch3`
-    .. [2] D.A. Knoll and D.E. Keyes, J. Comp. Phys. 193, 357 (2004).
-           :doi:`10.1016/j.jcp.2003.08.010`
-    .. [3] A.H. Baker and E.R. Jessup and T. Manteuffel,
-           SIAM J. Matrix Anal. Appl. 26, 962 (2005).
-           :doi:`10.1137/S0895479803422014`
-
-    Examples
-    --------
-    The following functions define a system of nonlinear equations
-
-    >>> def fun(x):
-    ...     return [x[0] + 0.5 * x[1] - 1.0,
-    ...             0.5 * (x[1] - x[0]) ** 2]
-
-    A solution can be obtained as follows.
-
-    >>> from scipy import optimize
-    >>> sol = optimize.newton_krylov(fun, [0, 0])
-    >>> sol
-    array([0.66731771, 0.66536458])
-
-    """
-
-    def __init__(self, rdiff=None, method='lgmres', inner_maxiter=20,
-                 inner_M=None, outer_k=10, **kw):
-        self.preconditioner = inner_M
-        self.rdiff = rdiff
-        # Note that this retrieves one of the named functions, or otherwise
-        # uses `method` as is (i.e., for a user-provided callable).
-        self.method = dict(
-            bicgstab=scipy.sparse.linalg.bicgstab,
-            gmres=scipy.sparse.linalg.gmres,
-            lgmres=scipy.sparse.linalg.lgmres,
-            cgs=scipy.sparse.linalg.cgs,
-            minres=scipy.sparse.linalg.minres,
-            tfqmr=scipy.sparse.linalg.tfqmr,
-            ).get(method, method)
-
-        self.method_kw = dict(maxiter=inner_maxiter, M=self.preconditioner)
-
-        if self.method is scipy.sparse.linalg.gmres:
-            # Replace GMRES's outer iteration with Newton steps
-            self.method_kw['restart'] = inner_maxiter
-            self.method_kw['maxiter'] = 1
-            self.method_kw.setdefault('atol', 0)
-        elif self.method in (scipy.sparse.linalg.gcrotmk,
-                             scipy.sparse.linalg.bicgstab,
-                             scipy.sparse.linalg.cgs):
-            self.method_kw.setdefault('atol', 0)
-        elif self.method is scipy.sparse.linalg.lgmres:
-            self.method_kw['outer_k'] = outer_k
-            # Replace LGMRES's outer iteration with Newton steps
-            self.method_kw['maxiter'] = 1
-            # Carry LGMRES's `outer_v` vectors across nonlinear iterations
-            self.method_kw.setdefault('outer_v', [])
-            self.method_kw.setdefault('prepend_outer_v', True)
-            # But don't carry the corresponding Jacobian*v products, in case
-            # the Jacobian changes a lot in the nonlinear step
-            #
-            # XXX: some trust-region inspired ideas might be more efficient...
-            #      See e.g., Brown & Saad. But needs to be implemented separately
-            #      since it's not an inexact Newton method.
-            self.method_kw.setdefault('store_outer_Av', False)
-            self.method_kw.setdefault('atol', 0)
-
-        for key, value in kw.items():
-            if not key.startswith('inner_'):
-                raise ValueError("Unknown parameter %s" % key)
-            self.method_kw[key[6:]] = value
-
-    def _update_diff_step(self):
-        mx = abs(self.x0).max()
-        mf = abs(self.f0).max()
-        self.omega = self.rdiff * max(1, mx) / max(1, mf)
-
-    def matvec(self, v):
-        nv = norm(v)
-        if nv == 0:
-            return 0*v
-        sc = self.omega / nv
-        r = (self.func(self.x0 + sc*v) - self.f0) / sc
-        if not np.all(np.isfinite(r)) and np.all(np.isfinite(v)):
-            raise ValueError('Function returned non-finite results')
-        return r
-
-    def solve(self, rhs, tol=0):
-        if 'rtol' in self.method_kw:
-            sol, info = self.method(self.op, rhs, **self.method_kw)
-        else:
-            sol, info = self.method(self.op, rhs, rtol=tol, **self.method_kw)
-        return sol
-
-    def update(self, x, f):
-        self.x0 = x
-        self.f0 = f
-        self._update_diff_step()
-
-        # Update also the preconditioner, if possible
-        if self.preconditioner is not None:
-            if hasattr(self.preconditioner, 'update'):
-                self.preconditioner.update(x, f)
-
-    def setup(self, x, f, func):
-        Jacobian.setup(self, x, f, func)
-        self.x0 = x
-        self.f0 = f
-        self.op = scipy.sparse.linalg.aslinearoperator(self)
-
-        if self.rdiff is None:
-            self.rdiff = np.finfo(x.dtype).eps ** (1./2)
-
-        self._update_diff_step()
-
-        # Setup also the preconditioner, if possible
-        if self.preconditioner is not None:
-            if hasattr(self.preconditioner, 'setup'):
-                self.preconditioner.setup(x, f, func)
-
-
-#------------------------------------------------------------------------------
-# Wrapper functions
-#------------------------------------------------------------------------------
-
-def _nonlin_wrapper(name, jac):
-    """
-    Construct a solver wrapper with given name and Jacobian approx.
-
-    It inspects the keyword arguments of ``jac.__init__``, and allows to
-    use the same arguments in the wrapper function, in addition to the
-    keyword arguments of `nonlin_solve`
-
-    """
-    signature = _getfullargspec(jac.__init__)
-    args, varargs, varkw, defaults, kwonlyargs, kwdefaults, _ = signature
-    kwargs = list(zip(args[-len(defaults):], defaults))
-    kw_str = ", ".join([f"{k}={v!r}" for k, v in kwargs])
-    if kw_str:
-        kw_str = ", " + kw_str
-    kwkw_str = ", ".join([f"{k}={k}" for k, v in kwargs])
-    if kwkw_str:
-        kwkw_str = kwkw_str + ", "
-    if kwonlyargs:
-        raise ValueError('Unexpected signature %s' % signature)
-
-    # Construct the wrapper function so that its keyword arguments
-    # are visible in pydoc.help etc.
-    wrapper = """
-def %(name)s(F, xin, iter=None %(kw)s, verbose=False, maxiter=None,
-             f_tol=None, f_rtol=None, x_tol=None, x_rtol=None,
-             tol_norm=None, line_search='armijo', callback=None, **kw):
-    jac = %(jac)s(%(kwkw)s **kw)
-    return nonlin_solve(F, xin, jac, iter, verbose, maxiter,
-                        f_tol, f_rtol, x_tol, x_rtol, tol_norm, line_search,
-                        callback)
-"""
-
-    wrapper = wrapper % dict(name=name, kw=kw_str, jac=jac.__name__,
-                             kwkw=kwkw_str)
-    ns = {}
-    ns.update(globals())
-    exec(wrapper, ns)
-    func = ns[name]
-    func.__doc__ = jac.__doc__
-    _set_doc(func)
-    return func
-
-
-broyden1 = _nonlin_wrapper('broyden1', BroydenFirst)
-broyden2 = _nonlin_wrapper('broyden2', BroydenSecond)
-anderson = _nonlin_wrapper('anderson', Anderson)
-linearmixing = _nonlin_wrapper('linearmixing', LinearMixing)
-diagbroyden = _nonlin_wrapper('diagbroyden', DiagBroyden)
-excitingmixing = _nonlin_wrapper('excitingmixing', ExcitingMixing)
-newton_krylov = _nonlin_wrapper('newton_krylov', KrylovJacobian)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_numdiff.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_numdiff.py
deleted file mode 100644
index b5cb5724d8636bd149906a6356ac97bae169e289..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_numdiff.py
+++ /dev/null
@@ -1,779 +0,0 @@
-"""Routines for numerical differentiation."""
-import functools
-import numpy as np
-from numpy.linalg import norm
-
-from scipy.sparse.linalg import LinearOperator
-from ..sparse import issparse, csc_matrix, csr_matrix, coo_matrix, find
-from ._group_columns import group_dense, group_sparse
-from scipy._lib._array_api import atleast_nd, array_namespace
-
-
-def _adjust_scheme_to_bounds(x0, h, num_steps, scheme, lb, ub):
-    """Adjust final difference scheme to the presence of bounds.
-
-    Parameters
-    ----------
-    x0 : ndarray, shape (n,)
-        Point at which we wish to estimate derivative.
-    h : ndarray, shape (n,)
-        Desired absolute finite difference steps.
-    num_steps : int
-        Number of `h` steps in one direction required to implement finite
-        difference scheme. For example, 2 means that we need to evaluate
-        f(x0 + 2 * h) or f(x0 - 2 * h)
-    scheme : {'1-sided', '2-sided'}
-        Whether steps in one or both directions are required. In other
-        words '1-sided' applies to forward and backward schemes, '2-sided'
-        applies to center schemes.
-    lb : ndarray, shape (n,)
-        Lower bounds on independent variables.
-    ub : ndarray, shape (n,)
-        Upper bounds on independent variables.
-
-    Returns
-    -------
-    h_adjusted : ndarray, shape (n,)
-        Adjusted absolute step sizes. Step size decreases only if a sign flip
-        or switching to one-sided scheme doesn't allow to take a full step.
-    use_one_sided : ndarray of bool, shape (n,)
-        Whether to switch to one-sided scheme. Informative only for
-        ``scheme='2-sided'``.
-    """
-    if scheme == '1-sided':
-        use_one_sided = np.ones_like(h, dtype=bool)
-    elif scheme == '2-sided':
-        h = np.abs(h)
-        use_one_sided = np.zeros_like(h, dtype=bool)
-    else:
-        raise ValueError("`scheme` must be '1-sided' or '2-sided'.")
-
-    if np.all((lb == -np.inf) & (ub == np.inf)):
-        return h, use_one_sided
-
-    h_total = h * num_steps
-    h_adjusted = h.copy()
-
-    lower_dist = x0 - lb
-    upper_dist = ub - x0
-
-    if scheme == '1-sided':
-        x = x0 + h_total
-        violated = (x < lb) | (x > ub)
-        fitting = np.abs(h_total) <= np.maximum(lower_dist, upper_dist)
-        h_adjusted[violated & fitting] *= -1
-
-        forward = (upper_dist >= lower_dist) & ~fitting
-        h_adjusted[forward] = upper_dist[forward] / num_steps
-        backward = (upper_dist < lower_dist) & ~fitting
-        h_adjusted[backward] = -lower_dist[backward] / num_steps
-    elif scheme == '2-sided':
-        central = (lower_dist >= h_total) & (upper_dist >= h_total)
-
-        forward = (upper_dist >= lower_dist) & ~central
-        h_adjusted[forward] = np.minimum(
-            h[forward], 0.5 * upper_dist[forward] / num_steps)
-        use_one_sided[forward] = True
-
-        backward = (upper_dist < lower_dist) & ~central
-        h_adjusted[backward] = -np.minimum(
-            h[backward], 0.5 * lower_dist[backward] / num_steps)
-        use_one_sided[backward] = True
-
-        min_dist = np.minimum(upper_dist, lower_dist) / num_steps
-        adjusted_central = (~central & (np.abs(h_adjusted) <= min_dist))
-        h_adjusted[adjusted_central] = min_dist[adjusted_central]
-        use_one_sided[adjusted_central] = False
-
-    return h_adjusted, use_one_sided
-
-
-@functools.lru_cache
-def _eps_for_method(x0_dtype, f0_dtype, method):
-    """
-    Calculates relative EPS step to use for a given data type
-    and numdiff step method.
-
-    Progressively smaller steps are used for larger floating point types.
-
-    Parameters
-    ----------
-    f0_dtype: np.dtype
-        dtype of function evaluation
-
-    x0_dtype: np.dtype
-        dtype of parameter vector
-
-    method: {'2-point', '3-point', 'cs'}
-
-    Returns
-    -------
-    EPS: float
-        relative step size. May be np.float16, np.float32, np.float64
-
-    Notes
-    -----
-    The default relative step will be np.float64. However, if x0 or f0 are
-    smaller floating point types (np.float16, np.float32), then the smallest
-    floating point type is chosen.
-    """
-    # the default EPS value
-    EPS = np.finfo(np.float64).eps
-
-    x0_is_fp = False
-    if np.issubdtype(x0_dtype, np.inexact):
-        # if you're a floating point type then over-ride the default EPS
-        EPS = np.finfo(x0_dtype).eps
-        x0_itemsize = np.dtype(x0_dtype).itemsize
-        x0_is_fp = True
-
-    if np.issubdtype(f0_dtype, np.inexact):
-        f0_itemsize = np.dtype(f0_dtype).itemsize
-        # choose the smallest itemsize between x0 and f0
-        if x0_is_fp and f0_itemsize < x0_itemsize:
-            EPS = np.finfo(f0_dtype).eps
-
-    if method in ["2-point", "cs"]:
-        return EPS**0.5
-    elif method in ["3-point"]:
-        return EPS**(1/3)
-    else:
-        raise RuntimeError("Unknown step method, should be one of "
-                           "{'2-point', '3-point', 'cs'}")
-
-
-def _compute_absolute_step(rel_step, x0, f0, method):
-    """
-    Computes an absolute step from a relative step for finite difference
-    calculation.
-
-    Parameters
-    ----------
-    rel_step: None or array-like
-        Relative step for the finite difference calculation
-    x0 : np.ndarray
-        Parameter vector
-    f0 : np.ndarray or scalar
-    method : {'2-point', '3-point', 'cs'}
-
-    Returns
-    -------
-    h : float
-        The absolute step size
-
-    Notes
-    -----
-    `h` will always be np.float64. However, if `x0` or `f0` are
-    smaller floating point dtypes (e.g. np.float32), then the absolute
-    step size will be calculated from the smallest floating point size.
-    """
-    # this is used instead of np.sign(x0) because we need
-    # sign_x0 to be 1 when x0 == 0.
-    sign_x0 = (x0 >= 0).astype(float) * 2 - 1
-
-    rstep = _eps_for_method(x0.dtype, f0.dtype, method)
-
-    if rel_step is None:
-        abs_step = rstep * sign_x0 * np.maximum(1.0, np.abs(x0))
-    else:
-        # User has requested specific relative steps.
-        # Don't multiply by max(1, abs(x0) because if x0 < 1 then their
-        # requested step is not used.
-        abs_step = rel_step * sign_x0 * np.abs(x0)
-
-        # however we don't want an abs_step of 0, which can happen if
-        # rel_step is 0, or x0 is 0. Instead, substitute a realistic step
-        dx = ((x0 + abs_step) - x0)
-        abs_step = np.where(dx == 0,
-                            rstep * sign_x0 * np.maximum(1.0, np.abs(x0)),
-                            abs_step)
-
-    return abs_step
-
-
-def _prepare_bounds(bounds, x0):
-    """
-    Prepares new-style bounds from a two-tuple specifying the lower and upper
-    limits for values in x0. If a value is not bound then the lower/upper bound
-    will be expected to be -np.inf/np.inf.
-
-    Examples
-    --------
-    >>> _prepare_bounds([(0, 1, 2), (1, 2, np.inf)], [0.5, 1.5, 2.5])
-    (array([0., 1., 2.]), array([ 1.,  2., inf]))
-    """
-    lb, ub = (np.asarray(b, dtype=float) for b in bounds)
-    if lb.ndim == 0:
-        lb = np.resize(lb, x0.shape)
-
-    if ub.ndim == 0:
-        ub = np.resize(ub, x0.shape)
-
-    return lb, ub
-
-
-def group_columns(A, order=0):
-    """Group columns of a 2-D matrix for sparse finite differencing [1]_.
-
-    Two columns are in the same group if in each row at least one of them
-    has zero. A greedy sequential algorithm is used to construct groups.
-
-    Parameters
-    ----------
-    A : array_like or sparse matrix, shape (m, n)
-        Matrix of which to group columns.
-    order : int, iterable of int with shape (n,) or None
-        Permutation array which defines the order of columns enumeration.
-        If int or None, a random permutation is used with `order` used as
-        a random seed. Default is 0, that is use a random permutation but
-        guarantee repeatability.
-
-    Returns
-    -------
-    groups : ndarray of int, shape (n,)
-        Contains values from 0 to n_groups-1, where n_groups is the number
-        of found groups. Each value ``groups[i]`` is an index of a group to
-        which ith column assigned. The procedure was helpful only if
-        n_groups is significantly less than n.
-
-    References
-    ----------
-    .. [1] A. Curtis, M. J. D. Powell, and J. Reid, "On the estimation of
-           sparse Jacobian matrices", Journal of the Institute of Mathematics
-           and its Applications, 13 (1974), pp. 117-120.
-    """
-    if issparse(A):
-        A = csc_matrix(A)
-    else:
-        A = np.atleast_2d(A)
-        A = (A != 0).astype(np.int32)
-
-    if A.ndim != 2:
-        raise ValueError("`A` must be 2-dimensional.")
-
-    m, n = A.shape
-
-    if order is None or np.isscalar(order):
-        rng = np.random.RandomState(order)
-        order = rng.permutation(n)
-    else:
-        order = np.asarray(order)
-        if order.shape != (n,):
-            raise ValueError("`order` has incorrect shape.")
-
-    A = A[:, order]
-
-    if issparse(A):
-        groups = group_sparse(m, n, A.indices, A.indptr)
-    else:
-        groups = group_dense(m, n, A)
-
-    groups[order] = groups.copy()
-
-    return groups
-
-
-def approx_derivative(fun, x0, method='3-point', rel_step=None, abs_step=None,
-                      f0=None, bounds=(-np.inf, np.inf), sparsity=None,
-                      as_linear_operator=False, args=(), kwargs={}):
-    """Compute finite difference approximation of the derivatives of a
-    vector-valued function.
-
-    If a function maps from R^n to R^m, its derivatives form m-by-n matrix
-    called the Jacobian, where an element (i, j) is a partial derivative of
-    f[i] with respect to x[j].
-
-    Parameters
-    ----------
-    fun : callable
-        Function of which to estimate the derivatives. The argument x
-        passed to this function is ndarray of shape (n,) (never a scalar
-        even if n=1). It must return 1-D array_like of shape (m,) or a scalar.
-    x0 : array_like of shape (n,) or float
-        Point at which to estimate the derivatives. Float will be converted
-        to a 1-D array.
-    method : {'3-point', '2-point', 'cs'}, optional
-        Finite difference method to use:
-            - '2-point' - use the first order accuracy forward or backward
-                          difference.
-            - '3-point' - use central difference in interior points and the
-                          second order accuracy forward or backward difference
-                          near the boundary.
-            - 'cs' - use a complex-step finite difference scheme. This assumes
-                     that the user function is real-valued and can be
-                     analytically continued to the complex plane. Otherwise,
-                     produces bogus results.
-    rel_step : None or array_like, optional
-        Relative step size to use. If None (default) the absolute step size is
-        computed as ``h = rel_step * sign(x0) * max(1, abs(x0))``, with
-        `rel_step` being selected automatically, see Notes. Otherwise
-        ``h = rel_step * sign(x0) * abs(x0)``. For ``method='3-point'`` the
-        sign of `h` is ignored. The calculated step size is possibly adjusted
-        to fit into the bounds.
-    abs_step : array_like, optional
-        Absolute step size to use, possibly adjusted to fit into the bounds.
-        For ``method='3-point'`` the sign of `abs_step` is ignored. By default
-        relative steps are used, only if ``abs_step is not None`` are absolute
-        steps used.
-    f0 : None or array_like, optional
-        If not None it is assumed to be equal to ``fun(x0)``, in this case
-        the ``fun(x0)`` is not called. Default is None.
-    bounds : tuple of array_like, optional
-        Lower and upper bounds on independent variables. Defaults to no bounds.
-        Each bound must match the size of `x0` or be a scalar, in the latter
-        case the bound will be the same for all variables. Use it to limit the
-        range of function evaluation. Bounds checking is not implemented
-        when `as_linear_operator` is True.
-    sparsity : {None, array_like, sparse matrix, 2-tuple}, optional
-        Defines a sparsity structure of the Jacobian matrix. If the Jacobian
-        matrix is known to have only few non-zero elements in each row, then
-        it's possible to estimate its several columns by a single function
-        evaluation [3]_. To perform such economic computations two ingredients
-        are required:
-
-        * structure : array_like or sparse matrix of shape (m, n). A zero
-          element means that a corresponding element of the Jacobian
-          identically equals to zero.
-        * groups : array_like of shape (n,). A column grouping for a given
-          sparsity structure, use `group_columns` to obtain it.
-
-        A single array or a sparse matrix is interpreted as a sparsity
-        structure, and groups are computed inside the function. A tuple is
-        interpreted as (structure, groups). If None (default), a standard
-        dense differencing will be used.
-
-        Note, that sparse differencing makes sense only for large Jacobian
-        matrices where each row contains few non-zero elements.
-    as_linear_operator : bool, optional
-        When True the function returns an `scipy.sparse.linalg.LinearOperator`.
-        Otherwise it returns a dense array or a sparse matrix depending on
-        `sparsity`. The linear operator provides an efficient way of computing
-        ``J.dot(p)`` for any vector ``p`` of shape (n,), but does not allow
-        direct access to individual elements of the matrix. By default
-        `as_linear_operator` is False.
-    args, kwargs : tuple and dict, optional
-        Additional arguments passed to `fun`. Both empty by default.
-        The calling signature is ``fun(x, *args, **kwargs)``.
-
-    Returns
-    -------
-    J : {ndarray, sparse matrix, LinearOperator}
-        Finite difference approximation of the Jacobian matrix.
-        If `as_linear_operator` is True returns a LinearOperator
-        with shape (m, n). Otherwise it returns a dense array or sparse
-        matrix depending on how `sparsity` is defined. If `sparsity`
-        is None then a ndarray with shape (m, n) is returned. If
-        `sparsity` is not None returns a csr_matrix with shape (m, n).
-        For sparse matrices and linear operators it is always returned as
-        a 2-D structure, for ndarrays, if m=1 it is returned
-        as a 1-D gradient array with shape (n,).
-
-    See Also
-    --------
-    check_derivative : Check correctness of a function computing derivatives.
-
-    Notes
-    -----
-    If `rel_step` is not provided, it assigned as ``EPS**(1/s)``, where EPS is
-    determined from the smallest floating point dtype of `x0` or `fun(x0)`,
-    ``np.finfo(x0.dtype).eps``, s=2 for '2-point' method and
-    s=3 for '3-point' method. Such relative step approximately minimizes a sum
-    of truncation and round-off errors, see [1]_. Relative steps are used by
-    default. However, absolute steps are used when ``abs_step is not None``.
-    If any of the absolute or relative steps produces an indistinguishable
-    difference from the original `x0`, ``(x0 + dx) - x0 == 0``, then a
-    automatic step size is substituted for that particular entry.
-
-    A finite difference scheme for '3-point' method is selected automatically.
-    The well-known central difference scheme is used for points sufficiently
-    far from the boundary, and 3-point forward or backward scheme is used for
-    points near the boundary. Both schemes have the second-order accuracy in
-    terms of Taylor expansion. Refer to [2]_ for the formulas of 3-point
-    forward and backward difference schemes.
-
-    For dense differencing when m=1 Jacobian is returned with a shape (n,),
-    on the other hand when n=1 Jacobian is returned with a shape (m, 1).
-    Our motivation is the following: a) It handles a case of gradient
-    computation (m=1) in a conventional way. b) It clearly separates these two
-    different cases. b) In all cases np.atleast_2d can be called to get 2-D
-    Jacobian with correct dimensions.
-
-    References
-    ----------
-    .. [1] W. H. Press et. al. "Numerical Recipes. The Art of Scientific
-           Computing. 3rd edition", sec. 5.7.
-
-    .. [2] A. Curtis, M. J. D. Powell, and J. Reid, "On the estimation of
-           sparse Jacobian matrices", Journal of the Institute of Mathematics
-           and its Applications, 13 (1974), pp. 117-120.
-
-    .. [3] B. Fornberg, "Generation of Finite Difference Formulas on
-           Arbitrarily Spaced Grids", Mathematics of Computation 51, 1988.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.optimize._numdiff import approx_derivative
-    >>>
-    >>> def f(x, c1, c2):
-    ...     return np.array([x[0] * np.sin(c1 * x[1]),
-    ...                      x[0] * np.cos(c2 * x[1])])
-    ...
-    >>> x0 = np.array([1.0, 0.5 * np.pi])
-    >>> approx_derivative(f, x0, args=(1, 2))
-    array([[ 1.,  0.],
-           [-1.,  0.]])
-
-    Bounds can be used to limit the region of function evaluation.
-    In the example below we compute left and right derivative at point 1.0.
-
-    >>> def g(x):
-    ...     return x**2 if x >= 1 else x
-    ...
-    >>> x0 = 1.0
-    >>> approx_derivative(g, x0, bounds=(-np.inf, 1.0))
-    array([ 1.])
-    >>> approx_derivative(g, x0, bounds=(1.0, np.inf))
-    array([ 2.])
-    """
-    if method not in ['2-point', '3-point', 'cs']:
-        raise ValueError("Unknown method '%s'. " % method)
-
-    xp = array_namespace(x0)
-    _x = atleast_nd(x0, ndim=1, xp=xp)
-    _dtype = xp.float64
-    if xp.isdtype(_x.dtype, "real floating"):
-        _dtype = _x.dtype
-
-    # promotes to floating
-    x0 = xp.astype(_x, _dtype)
-
-    if x0.ndim > 1:
-        raise ValueError("`x0` must have at most 1 dimension.")
-
-    lb, ub = _prepare_bounds(bounds, x0)
-
-    if lb.shape != x0.shape or ub.shape != x0.shape:
-        raise ValueError("Inconsistent shapes between bounds and `x0`.")
-
-    if as_linear_operator and not (np.all(np.isinf(lb))
-                                   and np.all(np.isinf(ub))):
-        raise ValueError("Bounds not supported when "
-                         "`as_linear_operator` is True.")
-
-    def fun_wrapped(x):
-        # send user function same fp type as x0. (but only if cs is not being
-        # used
-        if xp.isdtype(x.dtype, "real floating"):
-            x = xp.astype(x, x0.dtype)
-
-        f = np.atleast_1d(fun(x, *args, **kwargs))
-        if f.ndim > 1:
-            raise RuntimeError("`fun` return value has "
-                               "more than 1 dimension.")
-        return f
-
-    if f0 is None:
-        f0 = fun_wrapped(x0)
-    else:
-        f0 = np.atleast_1d(f0)
-        if f0.ndim > 1:
-            raise ValueError("`f0` passed has more than 1 dimension.")
-
-    if np.any((x0 < lb) | (x0 > ub)):
-        raise ValueError("`x0` violates bound constraints.")
-
-    if as_linear_operator:
-        if rel_step is None:
-            rel_step = _eps_for_method(x0.dtype, f0.dtype, method)
-
-        return _linear_operator_difference(fun_wrapped, x0,
-                                           f0, rel_step, method)
-    else:
-        # by default we use rel_step
-        if abs_step is None:
-            h = _compute_absolute_step(rel_step, x0, f0, method)
-        else:
-            # user specifies an absolute step
-            sign_x0 = (x0 >= 0).astype(float) * 2 - 1
-            h = abs_step
-
-            # cannot have a zero step. This might happen if x0 is very large
-            # or small. In which case fall back to relative step.
-            dx = ((x0 + h) - x0)
-            h = np.where(dx == 0,
-                         _eps_for_method(x0.dtype, f0.dtype, method) *
-                         sign_x0 * np.maximum(1.0, np.abs(x0)),
-                         h)
-
-        if method == '2-point':
-            h, use_one_sided = _adjust_scheme_to_bounds(
-                x0, h, 1, '1-sided', lb, ub)
-        elif method == '3-point':
-            h, use_one_sided = _adjust_scheme_to_bounds(
-                x0, h, 1, '2-sided', lb, ub)
-        elif method == 'cs':
-            use_one_sided = False
-
-        if sparsity is None:
-            return _dense_difference(fun_wrapped, x0, f0, h,
-                                     use_one_sided, method)
-        else:
-            if not issparse(sparsity) and len(sparsity) == 2:
-                structure, groups = sparsity
-            else:
-                structure = sparsity
-                groups = group_columns(sparsity)
-
-            if issparse(structure):
-                structure = csc_matrix(structure)
-            else:
-                structure = np.atleast_2d(structure)
-
-            groups = np.atleast_1d(groups)
-            return _sparse_difference(fun_wrapped, x0, f0, h,
-                                      use_one_sided, structure,
-                                      groups, method)
-
-
-def _linear_operator_difference(fun, x0, f0, h, method):
-    m = f0.size
-    n = x0.size
-
-    if method == '2-point':
-        def matvec(p):
-            if np.array_equal(p, np.zeros_like(p)):
-                return np.zeros(m)
-            dx = h / norm(p)
-            x = x0 + dx*p
-            df = fun(x) - f0
-            return df / dx
-
-    elif method == '3-point':
-        def matvec(p):
-            if np.array_equal(p, np.zeros_like(p)):
-                return np.zeros(m)
-            dx = 2*h / norm(p)
-            x1 = x0 - (dx/2)*p
-            x2 = x0 + (dx/2)*p
-            f1 = fun(x1)
-            f2 = fun(x2)
-            df = f2 - f1
-            return df / dx
-
-    elif method == 'cs':
-        def matvec(p):
-            if np.array_equal(p, np.zeros_like(p)):
-                return np.zeros(m)
-            dx = h / norm(p)
-            x = x0 + dx*p*1.j
-            f1 = fun(x)
-            df = f1.imag
-            return df / dx
-
-    else:
-        raise RuntimeError("Never be here.")
-
-    return LinearOperator((m, n), matvec)
-
-
-def _dense_difference(fun, x0, f0, h, use_one_sided, method):
-    m = f0.size
-    n = x0.size
-    J_transposed = np.empty((n, m))
-    x1 = x0.copy()
-    x2 = x0.copy()
-    xc = x0.astype(complex, copy=True)
-
-    for i in range(h.size):
-        if method == '2-point':
-            x1[i] += h[i]
-            dx = x1[i] - x0[i]  # Recompute dx as exactly representable number.
-            df = fun(x1) - f0
-        elif method == '3-point' and use_one_sided[i]:
-            x1[i] += h[i]
-            x2[i] += 2 * h[i]
-            dx = x2[i] - x0[i]
-            f1 = fun(x1)
-            f2 = fun(x2)
-            df = -3.0 * f0 + 4 * f1 - f2
-        elif method == '3-point' and not use_one_sided[i]:
-            x1[i] -= h[i]
-            x2[i] += h[i]
-            dx = x2[i] - x1[i]
-            f1 = fun(x1)
-            f2 = fun(x2)
-            df = f2 - f1
-        elif method == 'cs':
-            xc[i] += h[i] * 1.j
-            f1 = fun(xc)
-            df = f1.imag
-            dx = h[i]
-        else:
-            raise RuntimeError("Never be here.")
-
-        J_transposed[i] = df / dx
-        x1[i] = x2[i] = xc[i] = x0[i]
-
-    if m == 1:
-        J_transposed = np.ravel(J_transposed)
-
-    return J_transposed.T
-
-
-def _sparse_difference(fun, x0, f0, h, use_one_sided,
-                       structure, groups, method):
-    m = f0.size
-    n = x0.size
-    row_indices = []
-    col_indices = []
-    fractions = []
-
-    n_groups = np.max(groups) + 1
-    for group in range(n_groups):
-        # Perturb variables which are in the same group simultaneously.
-        e = np.equal(group, groups)
-        h_vec = h * e
-        if method == '2-point':
-            x = x0 + h_vec
-            dx = x - x0
-            df = fun(x) - f0
-            # The result is  written to columns which correspond to perturbed
-            # variables.
-            cols, = np.nonzero(e)
-            # Find all non-zero elements in selected columns of Jacobian.
-            i, j, _ = find(structure[:, cols])
-            # Restore column indices in the full array.
-            j = cols[j]
-        elif method == '3-point':
-            # Here we do conceptually the same but separate one-sided
-            # and two-sided schemes.
-            x1 = x0.copy()
-            x2 = x0.copy()
-
-            mask_1 = use_one_sided & e
-            x1[mask_1] += h_vec[mask_1]
-            x2[mask_1] += 2 * h_vec[mask_1]
-
-            mask_2 = ~use_one_sided & e
-            x1[mask_2] -= h_vec[mask_2]
-            x2[mask_2] += h_vec[mask_2]
-
-            dx = np.zeros(n)
-            dx[mask_1] = x2[mask_1] - x0[mask_1]
-            dx[mask_2] = x2[mask_2] - x1[mask_2]
-
-            f1 = fun(x1)
-            f2 = fun(x2)
-
-            cols, = np.nonzero(e)
-            i, j, _ = find(structure[:, cols])
-            j = cols[j]
-
-            mask = use_one_sided[j]
-            df = np.empty(m)
-
-            rows = i[mask]
-            df[rows] = -3 * f0[rows] + 4 * f1[rows] - f2[rows]
-
-            rows = i[~mask]
-            df[rows] = f2[rows] - f1[rows]
-        elif method == 'cs':
-            f1 = fun(x0 + h_vec*1.j)
-            df = f1.imag
-            dx = h_vec
-            cols, = np.nonzero(e)
-            i, j, _ = find(structure[:, cols])
-            j = cols[j]
-        else:
-            raise ValueError("Never be here.")
-
-        # All that's left is to compute the fraction. We store i, j and
-        # fractions as separate arrays and later construct coo_matrix.
-        row_indices.append(i)
-        col_indices.append(j)
-        fractions.append(df[i] / dx[j])
-
-    row_indices = np.hstack(row_indices)
-    col_indices = np.hstack(col_indices)
-    fractions = np.hstack(fractions)
-    J = coo_matrix((fractions, (row_indices, col_indices)), shape=(m, n))
-    return csr_matrix(J)
-
-
-def check_derivative(fun, jac, x0, bounds=(-np.inf, np.inf), args=(),
-                     kwargs={}):
-    """Check correctness of a function computing derivatives (Jacobian or
-    gradient) by comparison with a finite difference approximation.
-
-    Parameters
-    ----------
-    fun : callable
-        Function of which to estimate the derivatives. The argument x
-        passed to this function is ndarray of shape (n,) (never a scalar
-        even if n=1). It must return 1-D array_like of shape (m,) or a scalar.
-    jac : callable
-        Function which computes Jacobian matrix of `fun`. It must work with
-        argument x the same way as `fun`. The return value must be array_like
-        or sparse matrix with an appropriate shape.
-    x0 : array_like of shape (n,) or float
-        Point at which to estimate the derivatives. Float will be converted
-        to 1-D array.
-    bounds : 2-tuple of array_like, optional
-        Lower and upper bounds on independent variables. Defaults to no bounds.
-        Each bound must match the size of `x0` or be a scalar, in the latter
-        case the bound will be the same for all variables. Use it to limit the
-        range of function evaluation.
-    args, kwargs : tuple and dict, optional
-        Additional arguments passed to `fun` and `jac`. Both empty by default.
-        The calling signature is ``fun(x, *args, **kwargs)`` and the same
-        for `jac`.
-
-    Returns
-    -------
-    accuracy : float
-        The maximum among all relative errors for elements with absolute values
-        higher than 1 and absolute errors for elements with absolute values
-        less or equal than 1. If `accuracy` is on the order of 1e-6 or lower,
-        then it is likely that your `jac` implementation is correct.
-
-    See Also
-    --------
-    approx_derivative : Compute finite difference approximation of derivative.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.optimize._numdiff import check_derivative
-    >>>
-    >>>
-    >>> def f(x, c1, c2):
-    ...     return np.array([x[0] * np.sin(c1 * x[1]),
-    ...                      x[0] * np.cos(c2 * x[1])])
-    ...
-    >>> def jac(x, c1, c2):
-    ...     return np.array([
-    ...         [np.sin(c1 * x[1]),  c1 * x[0] * np.cos(c1 * x[1])],
-    ...         [np.cos(c2 * x[1]), -c2 * x[0] * np.sin(c2 * x[1])]
-    ...     ])
-    ...
-    >>>
-    >>> x0 = np.array([1.0, 0.5 * np.pi])
-    >>> check_derivative(f, jac, x0, args=(1, 2))
-    2.4492935982947064e-16
-    """
-    J_to_test = jac(x0, *args, **kwargs)
-    if issparse(J_to_test):
-        J_diff = approx_derivative(fun, x0, bounds=bounds, sparsity=J_to_test,
-                                   args=args, kwargs=kwargs)
-        J_to_test = csr_matrix(J_to_test)
-        abs_err = J_to_test - J_diff
-        i, j, abs_err_data = find(abs_err)
-        J_diff_data = np.asarray(J_diff[i, j]).ravel()
-        return np.max(np.abs(abs_err_data) /
-                      np.maximum(1, np.abs(J_diff_data)))
-    else:
-        J_diff = approx_derivative(fun, x0, bounds=bounds,
-                                   args=args, kwargs=kwargs)
-        abs_err = np.abs(J_to_test - J_diff)
-        return np.max(abs_err / np.maximum(1, np.abs(J_diff)))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_optimize.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_optimize.py
deleted file mode 100644
index 37472486fd53ca6ae6bb6c64a3fc0a36eb6fac7e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_optimize.py
+++ /dev/null
@@ -1,4093 +0,0 @@
-#__docformat__ = "restructuredtext en"
-# ******NOTICE***************
-# optimize.py module by Travis E. Oliphant
-#
-# You may copy and use this module as you see fit with no
-# guarantee implied provided you keep this notice in all copies.
-# *****END NOTICE************
-
-# A collection of optimization algorithms. Version 0.5
-# CHANGES
-#  Added fminbound (July 2001)
-#  Added brute (Aug. 2002)
-#  Finished line search satisfying strong Wolfe conditions (Mar. 2004)
-#  Updated strong Wolfe conditions line search to use
-#  cubic-interpolation (Mar. 2004)
-
-
-# Minimization routines
-
-__all__ = ['fmin', 'fmin_powell', 'fmin_bfgs', 'fmin_ncg', 'fmin_cg',
-           'fminbound', 'brent', 'golden', 'bracket', 'rosen', 'rosen_der',
-           'rosen_hess', 'rosen_hess_prod', 'brute', 'approx_fprime',
-           'line_search', 'check_grad', 'OptimizeResult', 'show_options',
-           'OptimizeWarning']
-
-__docformat__ = "restructuredtext en"
-
-import math
-import warnings
-import sys
-import inspect
-from numpy import (atleast_1d, eye, argmin, zeros, shape, squeeze,
-                   asarray, sqrt)
-import numpy as np
-from scipy.linalg import cholesky, issymmetric, LinAlgError
-from scipy.sparse.linalg import LinearOperator
-from ._linesearch import (line_search_wolfe1, line_search_wolfe2,
-                          line_search_wolfe2 as line_search,
-                          LineSearchWarning)
-from ._numdiff import approx_derivative
-from scipy._lib._util import getfullargspec_no_self as _getfullargspec
-from scipy._lib._util import (MapWrapper, check_random_state, _RichResult,
-                              _call_callback_maybe_halt)
-from scipy.optimize._differentiable_functions import ScalarFunction, FD_METHODS
-
-
-# standard status messages of optimizers
-_status_message = {'success': 'Optimization terminated successfully.',
-                   'maxfev': 'Maximum number of function evaluations has '
-                              'been exceeded.',
-                   'maxiter': 'Maximum number of iterations has been '
-                              'exceeded.',
-                   'pr_loss': 'Desired error not necessarily achieved due '
-                              'to precision loss.',
-                   'nan': 'NaN result encountered.',
-                   'out_of_bounds': 'The result is outside of the provided '
-                                    'bounds.'}
-
-
-class MemoizeJac:
-    """ Decorator that caches the return values of a function returning `(fun, grad)`
-        each time it is called. """
-
-    def __init__(self, fun):
-        self.fun = fun
-        self.jac = None
-        self._value = None
-        self.x = None
-
-    def _compute_if_needed(self, x, *args):
-        if not np.all(x == self.x) or self._value is None or self.jac is None:
-            self.x = np.asarray(x).copy()
-            fg = self.fun(x, *args)
-            self.jac = fg[1]
-            self._value = fg[0]
-
-    def __call__(self, x, *args):
-        """ returns the function value """
-        self._compute_if_needed(x, *args)
-        return self._value
-
-    def derivative(self, x, *args):
-        self._compute_if_needed(x, *args)
-        return self.jac
-
-
-def _wrap_callback(callback, method=None):
-    """Wrap a user-provided callback so that attributes can be attached."""
-    if callback is None or method in {'tnc', 'slsqp', 'cobyla', 'cobyqa'}:
-        return callback  # don't wrap
-
-    sig = inspect.signature(callback)
-
-    if set(sig.parameters) == {'intermediate_result'}:
-        def wrapped_callback(res):
-            return callback(intermediate_result=res)
-    elif method == 'trust-constr':
-        def wrapped_callback(res):
-            return callback(np.copy(res.x), res)
-    elif method == 'differential_evolution':
-        def wrapped_callback(res):
-            return callback(np.copy(res.x), res.convergence)
-    else:
-        def wrapped_callback(res):
-            return callback(np.copy(res.x))
-
-    wrapped_callback.stop_iteration = False
-    return wrapped_callback
-
-
-class OptimizeResult(_RichResult):
-    """
-    Represents the optimization result.
-
-    Attributes
-    ----------
-    x : ndarray
-        The solution of the optimization.
-    success : bool
-        Whether or not the optimizer exited successfully.
-    status : int
-        Termination status of the optimizer. Its value depends on the
-        underlying solver. Refer to `message` for details.
-    message : str
-        Description of the cause of the termination.
-    fun, jac, hess: ndarray
-        Values of objective function, its Jacobian and its Hessian (if
-        available). The Hessians may be approximations, see the documentation
-        of the function in question.
-    hess_inv : object
-        Inverse of the objective function's Hessian; may be an approximation.
-        Not available for all solvers. The type of this attribute may be
-        either np.ndarray or scipy.sparse.linalg.LinearOperator.
-    nfev, njev, nhev : int
-        Number of evaluations of the objective functions and of its
-        Jacobian and Hessian.
-    nit : int
-        Number of iterations performed by the optimizer.
-    maxcv : float
-        The maximum constraint violation.
-
-    Notes
-    -----
-    Depending on the specific solver being used, `OptimizeResult` may
-    not have all attributes listed here, and they may have additional
-    attributes not listed here. Since this class is essentially a
-    subclass of dict with attribute accessors, one can see which
-    attributes are available using the `OptimizeResult.keys` method.
-
-    """
-    pass
-
-
-class OptimizeWarning(UserWarning):
-    pass
-
-def _check_positive_definite(Hk):
-    def is_pos_def(A):
-        if issymmetric(A):
-            try:
-                cholesky(A)
-                return True
-            except LinAlgError:
-                return False
-        else:
-            return False
-    if Hk is not None:
-        if not is_pos_def(Hk):
-            raise ValueError("'hess_inv0' matrix isn't positive definite.")
-
-
-def _check_unknown_options(unknown_options):
-    if unknown_options:
-        msg = ", ".join(map(str, unknown_options.keys()))
-        # Stack level 4: this is called from _minimize_*, which is
-        # called from another function in SciPy. Level 4 is the first
-        # level in user code.
-        warnings.warn("Unknown solver options: %s" % msg, OptimizeWarning, stacklevel=4)
-
-
-def is_finite_scalar(x):
-    """Test whether `x` is either a finite scalar or a finite array scalar.
-
-    """
-    return np.size(x) == 1 and np.isfinite(x)
-
-
-_epsilon = sqrt(np.finfo(float).eps)
-
-
-def vecnorm(x, ord=2):
-    if ord == np.inf:
-        return np.amax(np.abs(x))
-    elif ord == -np.inf:
-        return np.amin(np.abs(x))
-    else:
-        return np.sum(np.abs(x)**ord, axis=0)**(1.0 / ord)
-
-
-def _prepare_scalar_function(fun, x0, jac=None, args=(), bounds=None,
-                             epsilon=None, finite_diff_rel_step=None,
-                             hess=None):
-    """
-    Creates a ScalarFunction object for use with scalar minimizers
-    (BFGS/LBFGSB/SLSQP/TNC/CG/etc).
-
-    Parameters
-    ----------
-    fun : callable
-        The objective function to be minimized.
-
-            ``fun(x, *args) -> float``
-
-        where ``x`` is an 1-D array with shape (n,) and ``args``
-        is a tuple of the fixed parameters needed to completely
-        specify the function.
-    x0 : ndarray, shape (n,)
-        Initial guess. Array of real elements of size (n,),
-        where 'n' is the number of independent variables.
-    jac : {callable,  '2-point', '3-point', 'cs', None}, optional
-        Method for computing the gradient vector. If it is a callable, it
-        should be a function that returns the gradient vector:
-
-            ``jac(x, *args) -> array_like, shape (n,)``
-
-        If one of `{'2-point', '3-point', 'cs'}` is selected then the gradient
-        is calculated with a relative step for finite differences. If `None`,
-        then two-point finite differences with an absolute step is used.
-    args : tuple, optional
-        Extra arguments passed to the objective function and its
-        derivatives (`fun`, `jac` functions).
-    bounds : sequence, optional
-        Bounds on variables. 'new-style' bounds are required.
-    eps : float or ndarray
-        If `jac is None` the absolute step size used for numerical
-        approximation of the jacobian via forward differences.
-    finite_diff_rel_step : None or array_like, optional
-        If `jac in ['2-point', '3-point', 'cs']` the relative step size to
-        use for numerical approximation of the jacobian. The absolute step
-        size is computed as ``h = rel_step * sign(x0) * max(1, abs(x0))``,
-        possibly adjusted to fit into the bounds. For ``jac='3-point'``
-        the sign of `h` is ignored. If None (default) then step is selected
-        automatically.
-    hess : {callable,  '2-point', '3-point', 'cs', None}
-        Computes the Hessian matrix. If it is callable, it should return the
-        Hessian matrix:
-
-            ``hess(x, *args) -> {LinearOperator, spmatrix, array}, (n, n)``
-
-        Alternatively, the keywords {'2-point', '3-point', 'cs'} select a
-        finite difference scheme for numerical estimation.
-        Whenever the gradient is estimated via finite-differences, the Hessian
-        cannot be estimated with options {'2-point', '3-point', 'cs'} and needs
-        to be estimated using one of the quasi-Newton strategies.
-
-    Returns
-    -------
-    sf : ScalarFunction
-    """
-    if callable(jac):
-        grad = jac
-    elif jac in FD_METHODS:
-        # epsilon is set to None so that ScalarFunction is made to use
-        # rel_step
-        epsilon = None
-        grad = jac
-    else:
-        # default (jac is None) is to do 2-point finite differences with
-        # absolute step size. ScalarFunction has to be provided an
-        # epsilon value that is not None to use absolute steps. This is
-        # normally the case from most _minimize* methods.
-        grad = '2-point'
-        epsilon = epsilon
-
-    if hess is None:
-        # ScalarFunction requires something for hess, so we give a dummy
-        # implementation here if nothing is provided, return a value of None
-        # so that downstream minimisers halt. The results of `fun.hess`
-        # should not be used.
-        def hess(x, *args):
-            return None
-
-    if bounds is None:
-        bounds = (-np.inf, np.inf)
-
-    # ScalarFunction caches. Reuse of fun(x) during grad
-    # calculation reduces overall function evaluations.
-    sf = ScalarFunction(fun, x0, args, grad, hess,
-                        finite_diff_rel_step, bounds, epsilon=epsilon)
-
-    return sf
-
-
-def _clip_x_for_func(func, bounds):
-    # ensures that x values sent to func are clipped to bounds
-
-    # this is used as a mitigation for gh11403, slsqp/tnc sometimes
-    # suggest a move that is outside the limits by 1 or 2 ULP. This
-    # unclean fix makes sure x is strictly within bounds.
-    def eval(x):
-        x = _check_clip_x(x, bounds)
-        return func(x)
-
-    return eval
-
-
-def _check_clip_x(x, bounds):
-    if (x < bounds[0]).any() or (x > bounds[1]).any():
-        warnings.warn("Values in x were outside bounds during a "
-                      "minimize step, clipping to bounds",
-                      RuntimeWarning, stacklevel=3)
-        x = np.clip(x, bounds[0], bounds[1])
-        return x
-
-    return x
-
-
-def rosen(x):
-    """
-    The Rosenbrock function.
-
-    The function computed is::
-
-        sum(100.0*(x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0)
-
-    Parameters
-    ----------
-    x : array_like
-        1-D array of points at which the Rosenbrock function is to be computed.
-
-    Returns
-    -------
-    f : float
-        The value of the Rosenbrock function.
-
-    See Also
-    --------
-    rosen_der, rosen_hess, rosen_hess_prod
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.optimize import rosen
-    >>> X = 0.1 * np.arange(10)
-    >>> rosen(X)
-    76.56
-
-    For higher-dimensional input ``rosen`` broadcasts.
-    In the following example, we use this to plot a 2D landscape.
-    Note that ``rosen_hess`` does not broadcast in this manner.
-
-    >>> import matplotlib.pyplot as plt
-    >>> from mpl_toolkits.mplot3d import Axes3D
-    >>> x = np.linspace(-1, 1, 50)
-    >>> X, Y = np.meshgrid(x, x)
-    >>> ax = plt.subplot(111, projection='3d')
-    >>> ax.plot_surface(X, Y, rosen([X, Y]))
-    >>> plt.show()
-    """
-    x = asarray(x)
-    r = np.sum(100.0 * (x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0,
-                  axis=0)
-    return r
-
-
-def rosen_der(x):
-    """
-    The derivative (i.e. gradient) of the Rosenbrock function.
-
-    Parameters
-    ----------
-    x : array_like
-        1-D array of points at which the derivative is to be computed.
-
-    Returns
-    -------
-    rosen_der : (N,) ndarray
-        The gradient of the Rosenbrock function at `x`.
-
-    See Also
-    --------
-    rosen, rosen_hess, rosen_hess_prod
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.optimize import rosen_der
-    >>> X = 0.1 * np.arange(9)
-    >>> rosen_der(X)
-    array([ -2. ,  10.6,  15.6,  13.4,   6.4,  -3. , -12.4, -19.4,  62. ])
-
-    """
-    x = asarray(x)
-    xm = x[1:-1]
-    xm_m1 = x[:-2]
-    xm_p1 = x[2:]
-    der = np.zeros_like(x)
-    der[1:-1] = (200 * (xm - xm_m1**2) -
-                 400 * (xm_p1 - xm**2) * xm - 2 * (1 - xm))
-    der[0] = -400 * x[0] * (x[1] - x[0]**2) - 2 * (1 - x[0])
-    der[-1] = 200 * (x[-1] - x[-2]**2)
-    return der
-
-
-def rosen_hess(x):
-    """
-    The Hessian matrix of the Rosenbrock function.
-
-    Parameters
-    ----------
-    x : array_like
-        1-D array of points at which the Hessian matrix is to be computed.
-
-    Returns
-    -------
-    rosen_hess : ndarray
-        The Hessian matrix of the Rosenbrock function at `x`.
-
-    See Also
-    --------
-    rosen, rosen_der, rosen_hess_prod
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.optimize import rosen_hess
-    >>> X = 0.1 * np.arange(4)
-    >>> rosen_hess(X)
-    array([[-38.,   0.,   0.,   0.],
-           [  0., 134., -40.,   0.],
-           [  0., -40., 130., -80.],
-           [  0.,   0., -80., 200.]])
-
-    """
-    x = atleast_1d(x)
-    H = np.diag(-400 * x[:-1], 1) - np.diag(400 * x[:-1], -1)
-    diagonal = np.zeros(len(x), dtype=x.dtype)
-    diagonal[0] = 1200 * x[0]**2 - 400 * x[1] + 2
-    diagonal[-1] = 200
-    diagonal[1:-1] = 202 + 1200 * x[1:-1]**2 - 400 * x[2:]
-    H = H + np.diag(diagonal)
-    return H
-
-
-def rosen_hess_prod(x, p):
-    """
-    Product of the Hessian matrix of the Rosenbrock function with a vector.
-
-    Parameters
-    ----------
-    x : array_like
-        1-D array of points at which the Hessian matrix is to be computed.
-    p : array_like
-        1-D array, the vector to be multiplied by the Hessian matrix.
-
-    Returns
-    -------
-    rosen_hess_prod : ndarray
-        The Hessian matrix of the Rosenbrock function at `x` multiplied
-        by the vector `p`.
-
-    See Also
-    --------
-    rosen, rosen_der, rosen_hess
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.optimize import rosen_hess_prod
-    >>> X = 0.1 * np.arange(9)
-    >>> p = 0.5 * np.arange(9)
-    >>> rosen_hess_prod(X, p)
-    array([  -0.,   27.,  -10.,  -95., -192., -265., -278., -195., -180.])
-
-    """
-    x = atleast_1d(x)
-    Hp = np.zeros(len(x), dtype=x.dtype)
-    Hp[0] = (1200 * x[0]**2 - 400 * x[1] + 2) * p[0] - 400 * x[0] * p[1]
-    Hp[1:-1] = (-400 * x[:-2] * p[:-2] +
-                (202 + 1200 * x[1:-1]**2 - 400 * x[2:]) * p[1:-1] -
-                400 * x[1:-1] * p[2:])
-    Hp[-1] = -400 * x[-2] * p[-2] + 200*p[-1]
-    return Hp
-
-
-def _wrap_scalar_function(function, args):
-    # wraps a minimizer function to count number of evaluations
-    # and to easily provide an args kwd.
-    ncalls = [0]
-    if function is None:
-        return ncalls, None
-
-    def function_wrapper(x, *wrapper_args):
-        ncalls[0] += 1
-        # A copy of x is sent to the user function (gh13740)
-        fx = function(np.copy(x), *(wrapper_args + args))
-        # Ideally, we'd like to a have a true scalar returned from f(x). For
-        # backwards-compatibility, also allow np.array([1.3]), np.array([[1.3]]) etc.
-        if not np.isscalar(fx):
-            try:
-                fx = np.asarray(fx).item()
-            except (TypeError, ValueError) as e:
-                raise ValueError("The user-provided objective function "
-                                 "must return a scalar value.") from e
-        return fx
-
-    return ncalls, function_wrapper
-
-
-class _MaxFuncCallError(RuntimeError):
-    pass
-
-
-def _wrap_scalar_function_maxfun_validation(function, args, maxfun):
-    # wraps a minimizer function to count number of evaluations
-    # and to easily provide an args kwd.
-    ncalls = [0]
-    if function is None:
-        return ncalls, None
-
-    def function_wrapper(x, *wrapper_args):
-        if ncalls[0] >= maxfun:
-            raise _MaxFuncCallError("Too many function calls")
-        ncalls[0] += 1
-        # A copy of x is sent to the user function (gh13740)
-        fx = function(np.copy(x), *(wrapper_args + args))
-        # Ideally, we'd like to a have a true scalar returned from f(x). For
-        # backwards-compatibility, also allow np.array([1.3]),
-        # np.array([[1.3]]) etc.
-        if not np.isscalar(fx):
-            try:
-                fx = np.asarray(fx).item()
-            except (TypeError, ValueError) as e:
-                raise ValueError("The user-provided objective function "
-                                 "must return a scalar value.") from e
-        return fx
-
-    return ncalls, function_wrapper
-
-
-def fmin(func, x0, args=(), xtol=1e-4, ftol=1e-4, maxiter=None, maxfun=None,
-         full_output=0, disp=1, retall=0, callback=None, initial_simplex=None):
-    """
-    Minimize a function using the downhill simplex algorithm.
-
-    This algorithm only uses function values, not derivatives or second
-    derivatives.
-
-    Parameters
-    ----------
-    func : callable func(x,*args)
-        The objective function to be minimized.
-    x0 : ndarray
-        Initial guess.
-    args : tuple, optional
-        Extra arguments passed to func, i.e., ``f(x,*args)``.
-    xtol : float, optional
-        Absolute error in xopt between iterations that is acceptable for
-        convergence.
-    ftol : number, optional
-        Absolute error in func(xopt) between iterations that is acceptable for
-        convergence.
-    maxiter : int, optional
-        Maximum number of iterations to perform.
-    maxfun : number, optional
-        Maximum number of function evaluations to make.
-    full_output : bool, optional
-        Set to True if fopt and warnflag outputs are desired.
-    disp : bool, optional
-        Set to True to print convergence messages.
-    retall : bool, optional
-        Set to True to return list of solutions at each iteration.
-    callback : callable, optional
-        Called after each iteration, as callback(xk), where xk is the
-        current parameter vector.
-    initial_simplex : array_like of shape (N + 1, N), optional
-        Initial simplex. If given, overrides `x0`.
-        ``initial_simplex[j,:]`` should contain the coordinates of
-        the jth vertex of the ``N+1`` vertices in the simplex, where
-        ``N`` is the dimension.
-
-    Returns
-    -------
-    xopt : ndarray
-        Parameter that minimizes function.
-    fopt : float
-        Value of function at minimum: ``fopt = func(xopt)``.
-    iter : int
-        Number of iterations performed.
-    funcalls : int
-        Number of function calls made.
-    warnflag : int
-        1 : Maximum number of function evaluations made.
-        2 : Maximum number of iterations reached.
-    allvecs : list
-        Solution at each iteration.
-
-    See also
-    --------
-    minimize: Interface to minimization algorithms for multivariate
-        functions. See the 'Nelder-Mead' `method` in particular.
-
-    Notes
-    -----
-    Uses a Nelder-Mead simplex algorithm to find the minimum of function of
-    one or more variables.
-
-    This algorithm has a long history of successful use in applications.
-    But it will usually be slower than an algorithm that uses first or
-    second derivative information. In practice, it can have poor
-    performance in high-dimensional problems and is not robust to
-    minimizing complicated functions. Additionally, there currently is no
-    complete theory describing when the algorithm will successfully
-    converge to the minimum, or how fast it will if it does. Both the ftol and
-    xtol criteria must be met for convergence.
-
-    Examples
-    --------
-    >>> def f(x):
-    ...     return x**2
-
-    >>> from scipy import optimize
-
-    >>> minimum = optimize.fmin(f, 1)
-    Optimization terminated successfully.
-             Current function value: 0.000000
-             Iterations: 17
-             Function evaluations: 34
-    >>> minimum[0]
-    -8.8817841970012523e-16
-
-    References
-    ----------
-    .. [1] Nelder, J.A. and Mead, R. (1965), "A simplex method for function
-           minimization", The Computer Journal, 7, pp. 308-313
-
-    .. [2] Wright, M.H. (1996), "Direct Search Methods: Once Scorned, Now
-           Respectable", in Numerical Analysis 1995, Proceedings of the
-           1995 Dundee Biennial Conference in Numerical Analysis, D.F.
-           Griffiths and G.A. Watson (Eds.), Addison Wesley Longman,
-           Harlow, UK, pp. 191-208.
-
-    """
-    opts = {'xatol': xtol,
-            'fatol': ftol,
-            'maxiter': maxiter,
-            'maxfev': maxfun,
-            'disp': disp,
-            'return_all': retall,
-            'initial_simplex': initial_simplex}
-
-    callback = _wrap_callback(callback)
-    res = _minimize_neldermead(func, x0, args, callback=callback, **opts)
-    if full_output:
-        retlist = res['x'], res['fun'], res['nit'], res['nfev'], res['status']
-        if retall:
-            retlist += (res['allvecs'], )
-        return retlist
-    else:
-        if retall:
-            return res['x'], res['allvecs']
-        else:
-            return res['x']
-
-
-def _minimize_neldermead(func, x0, args=(), callback=None,
-                         maxiter=None, maxfev=None, disp=False,
-                         return_all=False, initial_simplex=None,
-                         xatol=1e-4, fatol=1e-4, adaptive=False, bounds=None,
-                         **unknown_options):
-    """
-    Minimization of scalar function of one or more variables using the
-    Nelder-Mead algorithm.
-
-    Options
-    -------
-    disp : bool
-        Set to True to print convergence messages.
-    maxiter, maxfev : int
-        Maximum allowed number of iterations and function evaluations.
-        Will default to ``N*200``, where ``N`` is the number of
-        variables, if neither `maxiter` or `maxfev` is set. If both
-        `maxiter` and `maxfev` are set, minimization will stop at the
-        first reached.
-    return_all : bool, optional
-        Set to True to return a list of the best solution at each of the
-        iterations.
-    initial_simplex : array_like of shape (N + 1, N)
-        Initial simplex. If given, overrides `x0`.
-        ``initial_simplex[j,:]`` should contain the coordinates of
-        the jth vertex of the ``N+1`` vertices in the simplex, where
-        ``N`` is the dimension.
-    xatol : float, optional
-        Absolute error in xopt between iterations that is acceptable for
-        convergence.
-    fatol : number, optional
-        Absolute error in func(xopt) between iterations that is acceptable for
-        convergence.
-    adaptive : bool, optional
-        Adapt algorithm parameters to dimensionality of problem. Useful for
-        high-dimensional minimization [1]_.
-    bounds : sequence or `Bounds`, optional
-        Bounds on variables. There are two ways to specify the bounds:
-
-            1. Instance of `Bounds` class.
-            2. Sequence of ``(min, max)`` pairs for each element in `x`. None
-               is used to specify no bound.
-
-        Note that this just clips all vertices in simplex based on
-        the bounds.
-
-    References
-    ----------
-    .. [1] Gao, F. and Han, L.
-       Implementing the Nelder-Mead simplex algorithm with adaptive
-       parameters. 2012. Computational Optimization and Applications.
-       51:1, pp. 259-277
-
-    """
-    _check_unknown_options(unknown_options)
-    maxfun = maxfev
-    retall = return_all
-
-    x0 = np.atleast_1d(x0).flatten()
-    dtype = x0.dtype if np.issubdtype(x0.dtype, np.inexact) else np.float64
-    x0 = np.asarray(x0, dtype=dtype)
-
-    if adaptive:
-        dim = float(len(x0))
-        rho = 1
-        chi = 1 + 2/dim
-        psi = 0.75 - 1/(2*dim)
-        sigma = 1 - 1/dim
-    else:
-        rho = 1
-        chi = 2
-        psi = 0.5
-        sigma = 0.5
-
-    nonzdelt = 0.05
-    zdelt = 0.00025
-
-    if bounds is not None:
-        lower_bound, upper_bound = bounds.lb, bounds.ub
-        # check bounds
-        if (lower_bound > upper_bound).any():
-            raise ValueError("Nelder Mead - one of the lower bounds "
-                             "is greater than an upper bound.")
-        if np.any(lower_bound > x0) or np.any(x0 > upper_bound):
-            warnings.warn("Initial guess is not within the specified bounds",
-                          OptimizeWarning, stacklevel=3)
-
-    if bounds is not None:
-        x0 = np.clip(x0, lower_bound, upper_bound)
-
-    if initial_simplex is None:
-        N = len(x0)
-
-        sim = np.empty((N + 1, N), dtype=x0.dtype)
-        sim[0] = x0
-        for k in range(N):
-            y = np.array(x0, copy=True)
-            if y[k] != 0:
-                y[k] = (1 + nonzdelt)*y[k]
-            else:
-                y[k] = zdelt
-            sim[k + 1] = y
-    else:
-        sim = np.atleast_2d(initial_simplex).copy()
-        dtype = sim.dtype if np.issubdtype(sim.dtype, np.inexact) else np.float64
-        sim = np.asarray(sim, dtype=dtype)
-        if sim.ndim != 2 or sim.shape[0] != sim.shape[1] + 1:
-            raise ValueError("`initial_simplex` should be an array of shape (N+1,N)")
-        if len(x0) != sim.shape[1]:
-            raise ValueError("Size of `initial_simplex` is not consistent with `x0`")
-        N = sim.shape[1]
-
-    if retall:
-        allvecs = [sim[0]]
-
-    # If neither are set, then set both to default
-    if maxiter is None and maxfun is None:
-        maxiter = N * 200
-        maxfun = N * 200
-    elif maxiter is None:
-        # Convert remaining Nones, to np.inf, unless the other is np.inf, in
-        # which case use the default to avoid unbounded iteration
-        if maxfun == np.inf:
-            maxiter = N * 200
-        else:
-            maxiter = np.inf
-    elif maxfun is None:
-        if maxiter == np.inf:
-            maxfun = N * 200
-        else:
-            maxfun = np.inf
-
-    if bounds is not None:
-        # The default simplex construction may make all entries (for a given
-        # parameter) greater than an upper bound if x0 is very close to the
-        # upper bound. If one simply clips the simplex to the bounds this could
-        # make the simplex entries degenerate. If that occurs reflect into the
-        # interior.
-        msk = sim > upper_bound
-        # reflect into the interior
-        sim = np.where(msk, 2*upper_bound - sim, sim)
-        # but make sure the reflection is no less than the lower_bound
-        sim = np.clip(sim, lower_bound, upper_bound)
-
-    one2np1 = list(range(1, N + 1))
-    fsim = np.full((N + 1,), np.inf, dtype=float)
-
-    fcalls, func = _wrap_scalar_function_maxfun_validation(func, args, maxfun)
-
-    try:
-        for k in range(N + 1):
-            fsim[k] = func(sim[k])
-    except _MaxFuncCallError:
-        pass
-    finally:
-        ind = np.argsort(fsim)
-        sim = np.take(sim, ind, 0)
-        fsim = np.take(fsim, ind, 0)
-
-    ind = np.argsort(fsim)
-    fsim = np.take(fsim, ind, 0)
-    # sort so sim[0,:] has the lowest function value
-    sim = np.take(sim, ind, 0)
-
-    iterations = 1
-
-    while (fcalls[0] < maxfun and iterations < maxiter):
-        try:
-            if (np.max(np.ravel(np.abs(sim[1:] - sim[0]))) <= xatol and
-                    np.max(np.abs(fsim[0] - fsim[1:])) <= fatol):
-                break
-
-            xbar = np.add.reduce(sim[:-1], 0) / N
-            xr = (1 + rho) * xbar - rho * sim[-1]
-            if bounds is not None:
-                xr = np.clip(xr, lower_bound, upper_bound)
-            fxr = func(xr)
-            doshrink = 0
-
-            if fxr < fsim[0]:
-                xe = (1 + rho * chi) * xbar - rho * chi * sim[-1]
-                if bounds is not None:
-                    xe = np.clip(xe, lower_bound, upper_bound)
-                fxe = func(xe)
-
-                if fxe < fxr:
-                    sim[-1] = xe
-                    fsim[-1] = fxe
-                else:
-                    sim[-1] = xr
-                    fsim[-1] = fxr
-            else:  # fsim[0] <= fxr
-                if fxr < fsim[-2]:
-                    sim[-1] = xr
-                    fsim[-1] = fxr
-                else:  # fxr >= fsim[-2]
-                    # Perform contraction
-                    if fxr < fsim[-1]:
-                        xc = (1 + psi * rho) * xbar - psi * rho * sim[-1]
-                        if bounds is not None:
-                            xc = np.clip(xc, lower_bound, upper_bound)
-                        fxc = func(xc)
-
-                        if fxc <= fxr:
-                            sim[-1] = xc
-                            fsim[-1] = fxc
-                        else:
-                            doshrink = 1
-                    else:
-                        # Perform an inside contraction
-                        xcc = (1 - psi) * xbar + psi * sim[-1]
-                        if bounds is not None:
-                            xcc = np.clip(xcc, lower_bound, upper_bound)
-                        fxcc = func(xcc)
-
-                        if fxcc < fsim[-1]:
-                            sim[-1] = xcc
-                            fsim[-1] = fxcc
-                        else:
-                            doshrink = 1
-
-                    if doshrink:
-                        for j in one2np1:
-                            sim[j] = sim[0] + sigma * (sim[j] - sim[0])
-                            if bounds is not None:
-                                sim[j] = np.clip(
-                                    sim[j], lower_bound, upper_bound)
-                            fsim[j] = func(sim[j])
-            iterations += 1
-        except _MaxFuncCallError:
-            pass
-        finally:
-            ind = np.argsort(fsim)
-            sim = np.take(sim, ind, 0)
-            fsim = np.take(fsim, ind, 0)
-            if retall:
-                allvecs.append(sim[0])
-            intermediate_result = OptimizeResult(x=sim[0], fun=fsim[0])
-            if _call_callback_maybe_halt(callback, intermediate_result):
-                break
-
-    x = sim[0]
-    fval = np.min(fsim)
-    warnflag = 0
-
-    if fcalls[0] >= maxfun:
-        warnflag = 1
-        msg = _status_message['maxfev']
-        if disp:
-            warnings.warn(msg, RuntimeWarning, stacklevel=3)
-    elif iterations >= maxiter:
-        warnflag = 2
-        msg = _status_message['maxiter']
-        if disp:
-            warnings.warn(msg, RuntimeWarning, stacklevel=3)
-    else:
-        msg = _status_message['success']
-        if disp:
-            print(msg)
-            print("         Current function value: %f" % fval)
-            print("         Iterations: %d" % iterations)
-            print("         Function evaluations: %d" % fcalls[0])
-
-    result = OptimizeResult(fun=fval, nit=iterations, nfev=fcalls[0],
-                            status=warnflag, success=(warnflag == 0),
-                            message=msg, x=x, final_simplex=(sim, fsim))
-    if retall:
-        result['allvecs'] = allvecs
-    return result
-
-
-def approx_fprime(xk, f, epsilon=_epsilon, *args):
-    """Finite difference approximation of the derivatives of a
-    scalar or vector-valued function.
-
-    If a function maps from :math:`R^n` to :math:`R^m`, its derivatives form
-    an m-by-n matrix
-    called the Jacobian, where an element :math:`(i, j)` is a partial
-    derivative of f[i] with respect to ``xk[j]``.
-
-    Parameters
-    ----------
-    xk : array_like
-        The coordinate vector at which to determine the gradient of `f`.
-    f : callable
-        Function of which to estimate the derivatives of. Has the signature
-        ``f(xk, *args)`` where `xk` is the argument in the form of a 1-D array
-        and `args` is a tuple of any additional fixed parameters needed to
-        completely specify the function. The argument `xk` passed to this
-        function is an ndarray of shape (n,) (never a scalar even if n=1).
-        It must return a 1-D array_like of shape (m,) or a scalar.
-
-        .. versionchanged:: 1.9.0
-            `f` is now able to return a 1-D array-like, with the :math:`(m, n)`
-            Jacobian being estimated.
-
-    epsilon : {float, array_like}, optional
-        Increment to `xk` to use for determining the function gradient.
-        If a scalar, uses the same finite difference delta for all partial
-        derivatives. If an array, should contain one value per element of
-        `xk`. Defaults to ``sqrt(np.finfo(float).eps)``, which is approximately
-        1.49e-08.
-    \\*args : args, optional
-        Any other arguments that are to be passed to `f`.
-
-    Returns
-    -------
-    jac : ndarray
-        The partial derivatives of `f` to `xk`.
-
-    See Also
-    --------
-    check_grad : Check correctness of gradient function against approx_fprime.
-
-    Notes
-    -----
-    The function gradient is determined by the forward finite difference
-    formula::
-
-                 f(xk[i] + epsilon[i]) - f(xk[i])
-        f'[i] = ---------------------------------
-                            epsilon[i]
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import optimize
-    >>> def func(x, c0, c1):
-    ...     "Coordinate vector `x` should be an array of size two."
-    ...     return c0 * x[0]**2 + c1*x[1]**2
-
-    >>> x = np.ones(2)
-    >>> c0, c1 = (1, 200)
-    >>> eps = np.sqrt(np.finfo(float).eps)
-    >>> optimize.approx_fprime(x, func, [eps, np.sqrt(200) * eps], c0, c1)
-    array([   2.        ,  400.00004208])
-
-    """
-    xk = np.asarray(xk, float)
-    f0 = f(xk, *args)
-
-    return approx_derivative(f, xk, method='2-point', abs_step=epsilon,
-                             args=args, f0=f0)
-
-
-def check_grad(func, grad, x0, *args, epsilon=_epsilon,
-                direction='all', seed=None):
-    """Check the correctness of a gradient function by comparing it against a
-    (forward) finite-difference approximation of the gradient.
-
-    Parameters
-    ----------
-    func : callable ``func(x0, *args)``
-        Function whose derivative is to be checked.
-    grad : callable ``grad(x0, *args)``
-        Jacobian of `func`.
-    x0 : ndarray
-        Points to check `grad` against forward difference approximation of grad
-        using `func`.
-    args : \\*args, optional
-        Extra arguments passed to `func` and `grad`.
-    epsilon : float, optional
-        Step size used for the finite difference approximation. It defaults to
-        ``sqrt(np.finfo(float).eps)``, which is approximately 1.49e-08.
-    direction : str, optional
-        If set to ``'random'``, then gradients along a random vector
-        are used to check `grad` against forward difference approximation
-        using `func`. By default it is ``'all'``, in which case, all
-        the one hot direction vectors are considered to check `grad`.
-        If `func` is a vector valued function then only ``'all'`` can be used.
-    seed : {None, int, `numpy.random.Generator`, `numpy.random.RandomState`}, optional
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-        Specify `seed` for reproducing the return value from this function.
-        The random numbers generated with this seed affect the random vector
-        along which gradients are computed to check ``grad``. Note that `seed`
-        is only used when `direction` argument is set to `'random'`.
-
-    Returns
-    -------
-    err : float
-        The square root of the sum of squares (i.e., the 2-norm) of the
-        difference between ``grad(x0, *args)`` and the finite difference
-        approximation of `grad` using func at the points `x0`.
-
-    See Also
-    --------
-    approx_fprime
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> def func(x):
-    ...     return x[0]**2 - 0.5 * x[1]**3
-    >>> def grad(x):
-    ...     return [2 * x[0], -1.5 * x[1]**2]
-    >>> from scipy.optimize import check_grad
-    >>> check_grad(func, grad, [1.5, -1.5])
-    2.9802322387695312e-08  # may vary
-    >>> rng = np.random.default_rng()
-    >>> check_grad(func, grad, [1.5, -1.5],
-    ...             direction='random', seed=rng)
-    2.9802322387695312e-08
-
-    """
-    step = epsilon
-    x0 = np.asarray(x0)
-
-    def g(w, func, x0, v, *args):
-        return func(x0 + w*v, *args)
-
-    if direction == 'random':
-        _grad = np.asanyarray(grad(x0, *args))
-        if _grad.ndim > 1:
-            raise ValueError("'random' can only be used with scalar valued"
-                             " func")
-        random_state = check_random_state(seed)
-        v = random_state.normal(0, 1, size=(x0.shape))
-        _args = (func, x0, v) + args
-        _func = g
-        vars = np.zeros((1,))
-        analytical_grad = np.dot(_grad, v)
-    elif direction == 'all':
-        _args = args
-        _func = func
-        vars = x0
-        analytical_grad = grad(x0, *args)
-    else:
-        raise ValueError(f"{direction} is not a valid string for "
-                         "``direction`` argument")
-
-    return np.sqrt(np.sum(np.abs(
-        (analytical_grad - approx_fprime(vars, _func, step, *_args))**2
-    )))
-
-
-def approx_fhess_p(x0, p, fprime, epsilon, *args):
-    # calculate fprime(x0) first, as this may be cached by ScalarFunction
-    f1 = fprime(*((x0,) + args))
-    f2 = fprime(*((x0 + epsilon*p,) + args))
-    return (f2 - f1) / epsilon
-
-
-class _LineSearchError(RuntimeError):
-    pass
-
-
-def _line_search_wolfe12(f, fprime, xk, pk, gfk, old_fval, old_old_fval,
-                         **kwargs):
-    """
-    Same as line_search_wolfe1, but fall back to line_search_wolfe2 if
-    suitable step length is not found, and raise an exception if a
-    suitable step length is not found.
-
-    Raises
-    ------
-    _LineSearchError
-        If no suitable step size is found
-
-    """
-
-    extra_condition = kwargs.pop('extra_condition', None)
-
-    ret = line_search_wolfe1(f, fprime, xk, pk, gfk,
-                             old_fval, old_old_fval,
-                             **kwargs)
-
-    if ret[0] is not None and extra_condition is not None:
-        xp1 = xk + ret[0] * pk
-        if not extra_condition(ret[0], xp1, ret[3], ret[5]):
-            # Reject step if extra_condition fails
-            ret = (None,)
-
-    if ret[0] is None:
-        # line search failed: try different one.
-        with warnings.catch_warnings():
-            warnings.simplefilter('ignore', LineSearchWarning)
-            kwargs2 = {}
-            for key in ('c1', 'c2', 'amax'):
-                if key in kwargs:
-                    kwargs2[key] = kwargs[key]
-            ret = line_search_wolfe2(f, fprime, xk, pk, gfk,
-                                     old_fval, old_old_fval,
-                                     extra_condition=extra_condition,
-                                     **kwargs2)
-
-    if ret[0] is None:
-        raise _LineSearchError()
-
-    return ret
-
-
-def fmin_bfgs(f, x0, fprime=None, args=(), gtol=1e-5, norm=np.inf,
-              epsilon=_epsilon, maxiter=None, full_output=0, disp=1,
-              retall=0, callback=None, xrtol=0, c1=1e-4, c2=0.9,
-              hess_inv0=None):
-    """
-    Minimize a function using the BFGS algorithm.
-
-    Parameters
-    ----------
-    f : callable ``f(x,*args)``
-        Objective function to be minimized.
-    x0 : ndarray
-        Initial guess, shape (n,)
-    fprime : callable ``f'(x,*args)``, optional
-        Gradient of f.
-    args : tuple, optional
-        Extra arguments passed to f and fprime.
-    gtol : float, optional
-        Terminate successfully if gradient norm is less than `gtol`
-    norm : float, optional
-        Order of norm (Inf is max, -Inf is min)
-    epsilon : int or ndarray, optional
-        If `fprime` is approximated, use this value for the step size.
-    callback : callable, optional
-        An optional user-supplied function to call after each
-        iteration. Called as ``callback(xk)``, where ``xk`` is the
-        current parameter vector.
-    maxiter : int, optional
-        Maximum number of iterations to perform.
-    full_output : bool, optional
-        If True, return ``fopt``, ``func_calls``, ``grad_calls``, and
-        ``warnflag`` in addition to ``xopt``.
-    disp : bool, optional
-        Print convergence message if True.
-    retall : bool, optional
-        Return a list of results at each iteration if True.
-    xrtol : float, default: 0
-        Relative tolerance for `x`. Terminate successfully if step
-        size is less than ``xk * xrtol`` where ``xk`` is the current
-        parameter vector.
-    c1 : float, default: 1e-4
-        Parameter for Armijo condition rule.
-    c2 : float, default: 0.9
-        Parameter for curvature condition rule.
-    hess_inv0 : None or ndarray, optional``
-        Initial inverse hessian estimate, shape (n, n). If None (default) then
-        the identity matrix is used.
-
-    Returns
-    -------
-    xopt : ndarray
-        Parameters which minimize f, i.e., ``f(xopt) == fopt``.
-    fopt : float
-        Minimum value.
-    gopt : ndarray
-        Value of gradient at minimum, f'(xopt), which should be near 0.
-    Bopt : ndarray
-        Value of 1/f''(xopt), i.e., the inverse Hessian matrix.
-    func_calls : int
-        Number of function_calls made.
-    grad_calls : int
-        Number of gradient calls made.
-    warnflag : integer
-        1 : Maximum number of iterations exceeded.
-        2 : Gradient and/or function calls not changing.
-        3 : NaN result encountered.
-    allvecs : list
-        The value of `xopt` at each iteration. Only returned if `retall` is
-        True.
-
-    Notes
-    -----
-    Optimize the function, `f`, whose gradient is given by `fprime`
-    using the quasi-Newton method of Broyden, Fletcher, Goldfarb,
-    and Shanno (BFGS).
-
-    Parameters `c1` and `c2` must satisfy ``0 < c1 < c2 < 1``.
-
-    See Also
-    --------
-    minimize: Interface to minimization algorithms for multivariate
-        functions. See ``method='BFGS'`` in particular.
-
-    References
-    ----------
-    Wright, and Nocedal 'Numerical Optimization', 1999, p. 198.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.optimize import fmin_bfgs
-    >>> def quadratic_cost(x, Q):
-    ...     return x @ Q @ x
-    ...
-    >>> x0 = np.array([-3, -4])
-    >>> cost_weight =  np.diag([1., 10.])
-    >>> # Note that a trailing comma is necessary for a tuple with single element
-    >>> fmin_bfgs(quadratic_cost, x0, args=(cost_weight,))
-    Optimization terminated successfully.
-            Current function value: 0.000000
-            Iterations: 7                   # may vary
-            Function evaluations: 24        # may vary
-            Gradient evaluations: 8         # may vary
-    array([ 2.85169950e-06, -4.61820139e-07])
-
-    >>> def quadratic_cost_grad(x, Q):
-    ...     return 2 * Q @ x
-    ...
-    >>> fmin_bfgs(quadratic_cost, x0, quadratic_cost_grad, args=(cost_weight,))
-    Optimization terminated successfully.
-            Current function value: 0.000000
-            Iterations: 7
-            Function evaluations: 8
-            Gradient evaluations: 8
-    array([ 2.85916637e-06, -4.54371951e-07])
-
-    """
-    opts = {'gtol': gtol,
-            'norm': norm,
-            'eps': epsilon,
-            'disp': disp,
-            'maxiter': maxiter,
-            'return_all': retall,
-            'xrtol': xrtol,
-            'c1': c1,
-            'c2': c2,
-            'hess_inv0': hess_inv0}
-
-    callback = _wrap_callback(callback)
-    res = _minimize_bfgs(f, x0, args, fprime, callback=callback, **opts)
-
-    if full_output:
-        retlist = (res['x'], res['fun'], res['jac'], res['hess_inv'],
-                   res['nfev'], res['njev'], res['status'])
-        if retall:
-            retlist += (res['allvecs'], )
-        return retlist
-    else:
-        if retall:
-            return res['x'], res['allvecs']
-        else:
-            return res['x']
-
-
-def _minimize_bfgs(fun, x0, args=(), jac=None, callback=None,
-                   gtol=1e-5, norm=np.inf, eps=_epsilon, maxiter=None,
-                   disp=False, return_all=False, finite_diff_rel_step=None,
-                   xrtol=0, c1=1e-4, c2=0.9,
-                   hess_inv0=None, **unknown_options):
-    """
-    Minimization of scalar function of one or more variables using the
-    BFGS algorithm.
-
-    Options
-    -------
-    disp : bool
-        Set to True to print convergence messages.
-    maxiter : int
-        Maximum number of iterations to perform.
-    gtol : float
-        Terminate successfully if gradient norm is less than `gtol`.
-    norm : float
-        Order of norm (Inf is max, -Inf is min).
-    eps : float or ndarray
-        If `jac is None` the absolute step size used for numerical
-        approximation of the jacobian via forward differences.
-    return_all : bool, optional
-        Set to True to return a list of the best solution at each of the
-        iterations.
-    finite_diff_rel_step : None or array_like, optional
-        If `jac in ['2-point', '3-point', 'cs']` the relative step size to
-        use for numerical approximation of the jacobian. The absolute step
-        size is computed as ``h = rel_step * sign(x) * max(1, abs(x))``,
-        possibly adjusted to fit into the bounds. For ``jac='3-point'``
-        the sign of `h` is ignored. If None (default) then step is selected
-        automatically.
-    xrtol : float, default: 0
-        Relative tolerance for `x`. Terminate successfully if step size is
-        less than ``xk * xrtol`` where ``xk`` is the current parameter vector.
-    c1 : float, default: 1e-4
-        Parameter for Armijo condition rule.
-    c2 : float, default: 0.9
-        Parameter for curvature condition rule.
-    hess_inv0 : None or ndarray, optional
-        Initial inverse hessian estimate, shape (n, n). If None (default) then
-        the identity matrix is used.
-
-    Notes
-    -----
-    Parameters `c1` and `c2` must satisfy ``0 < c1 < c2 < 1``.
-
-    If minimization doesn't complete successfully, with an error message of
-    ``Desired error not necessarily achieved due to precision loss``, then
-    consider setting `gtol` to a higher value. This precision loss typically
-    occurs when the (finite difference) numerical differentiation cannot provide
-    sufficient precision to satisfy the `gtol` termination criterion.
-    This can happen when working in single precision and a callable jac is not
-    provided. For single precision problems a `gtol` of 1e-3 seems to work.
-    """
-    _check_unknown_options(unknown_options)
-    _check_positive_definite(hess_inv0)
-    retall = return_all
-
-    x0 = asarray(x0).flatten()
-    if x0.ndim == 0:
-        x0.shape = (1,)
-    if maxiter is None:
-        maxiter = len(x0) * 200
-
-    sf = _prepare_scalar_function(fun, x0, jac, args=args, epsilon=eps,
-                                  finite_diff_rel_step=finite_diff_rel_step)
-
-    f = sf.fun
-    myfprime = sf.grad
-
-    old_fval = f(x0)
-    gfk = myfprime(x0)
-
-    k = 0
-    N = len(x0)
-    I = np.eye(N, dtype=int)
-    Hk = I if hess_inv0 is None else hess_inv0
-
-    # Sets the initial step guess to dx ~ 1
-    old_old_fval = old_fval + np.linalg.norm(gfk) / 2
-
-    xk = x0
-    if retall:
-        allvecs = [x0]
-    warnflag = 0
-    gnorm = vecnorm(gfk, ord=norm)
-    while (gnorm > gtol) and (k < maxiter):
-        pk = -np.dot(Hk, gfk)
-        try:
-            alpha_k, fc, gc, old_fval, old_old_fval, gfkp1 = \
-                     _line_search_wolfe12(f, myfprime, xk, pk, gfk,
-                                          old_fval, old_old_fval, amin=1e-100,
-                                          amax=1e100, c1=c1, c2=c2)
-        except _LineSearchError:
-            # Line search failed to find a better solution.
-            warnflag = 2
-            break
-
-        sk = alpha_k * pk
-        xkp1 = xk + sk
-
-        if retall:
-            allvecs.append(xkp1)
-        xk = xkp1
-        if gfkp1 is None:
-            gfkp1 = myfprime(xkp1)
-
-        yk = gfkp1 - gfk
-        gfk = gfkp1
-        k += 1
-        intermediate_result = OptimizeResult(x=xk, fun=old_fval)
-        if _call_callback_maybe_halt(callback, intermediate_result):
-            break
-        gnorm = vecnorm(gfk, ord=norm)
-        if (gnorm <= gtol):
-            break
-
-        #  See Chapter 5 in  P.E. Frandsen, K. Jonasson, H.B. Nielsen,
-        #  O. Tingleff: "Unconstrained Optimization", IMM, DTU.  1999.
-        #  These notes are available here:
-        #  http://www2.imm.dtu.dk/documents/ftp/publlec.html
-        if (alpha_k*vecnorm(pk) <= xrtol*(xrtol + vecnorm(xk))):
-            break
-
-        if not np.isfinite(old_fval):
-            # We correctly found +-Inf as optimal value, or something went
-            # wrong.
-            warnflag = 2
-            break
-
-        rhok_inv = np.dot(yk, sk)
-        # this was handled in numeric, let it remains for more safety
-        # Cryptic comment above is preserved for posterity. Future reader:
-        # consider change to condition below proposed in gh-1261/gh-17345.
-        if rhok_inv == 0.:
-            rhok = 1000.0
-            if disp:
-                msg = "Divide-by-zero encountered: rhok assumed large"
-                _print_success_message_or_warn(True, msg)
-        else:
-            rhok = 1. / rhok_inv
-
-        A1 = I - sk[:, np.newaxis] * yk[np.newaxis, :] * rhok
-        A2 = I - yk[:, np.newaxis] * sk[np.newaxis, :] * rhok
-        Hk = np.dot(A1, np.dot(Hk, A2)) + (rhok * sk[:, np.newaxis] *
-                                                 sk[np.newaxis, :])
-
-    fval = old_fval
-
-    if warnflag == 2:
-        msg = _status_message['pr_loss']
-    elif k >= maxiter:
-        warnflag = 1
-        msg = _status_message['maxiter']
-    elif np.isnan(gnorm) or np.isnan(fval) or np.isnan(xk).any():
-        warnflag = 3
-        msg = _status_message['nan']
-    else:
-        msg = _status_message['success']
-
-    if disp:
-        _print_success_message_or_warn(warnflag, msg)
-        print("         Current function value: %f" % fval)
-        print("         Iterations: %d" % k)
-        print("         Function evaluations: %d" % sf.nfev)
-        print("         Gradient evaluations: %d" % sf.ngev)
-
-    result = OptimizeResult(fun=fval, jac=gfk, hess_inv=Hk, nfev=sf.nfev,
-                            njev=sf.ngev, status=warnflag,
-                            success=(warnflag == 0), message=msg, x=xk,
-                            nit=k)
-    if retall:
-        result['allvecs'] = allvecs
-    return result
-
-
-def _print_success_message_or_warn(warnflag, message, warntype=None):
-    if not warnflag:
-        print(message)
-    else:
-        warnings.warn(message, warntype or OptimizeWarning, stacklevel=3)
-
-
-def fmin_cg(f, x0, fprime=None, args=(), gtol=1e-5, norm=np.inf,
-            epsilon=_epsilon, maxiter=None, full_output=0, disp=1, retall=0,
-            callback=None, c1=1e-4, c2=0.4):
-    """
-    Minimize a function using a nonlinear conjugate gradient algorithm.
-
-    Parameters
-    ----------
-    f : callable, ``f(x, *args)``
-        Objective function to be minimized. Here `x` must be a 1-D array of
-        the variables that are to be changed in the search for a minimum, and
-        `args` are the other (fixed) parameters of `f`.
-    x0 : ndarray
-        A user-supplied initial estimate of `xopt`, the optimal value of `x`.
-        It must be a 1-D array of values.
-    fprime : callable, ``fprime(x, *args)``, optional
-        A function that returns the gradient of `f` at `x`. Here `x` and `args`
-        are as described above for `f`. The returned value must be a 1-D array.
-        Defaults to None, in which case the gradient is approximated
-        numerically (see `epsilon`, below).
-    args : tuple, optional
-        Parameter values passed to `f` and `fprime`. Must be supplied whenever
-        additional fixed parameters are needed to completely specify the
-        functions `f` and `fprime`.
-    gtol : float, optional
-        Stop when the norm of the gradient is less than `gtol`.
-    norm : float, optional
-        Order to use for the norm of the gradient
-        (``-np.inf`` is min, ``np.inf`` is max).
-    epsilon : float or ndarray, optional
-        Step size(s) to use when `fprime` is approximated numerically. Can be a
-        scalar or a 1-D array. Defaults to ``sqrt(eps)``, with eps the
-        floating point machine precision.  Usually ``sqrt(eps)`` is about
-        1.5e-8.
-    maxiter : int, optional
-        Maximum number of iterations to perform. Default is ``200 * len(x0)``.
-    full_output : bool, optional
-        If True, return `fopt`, `func_calls`, `grad_calls`, and `warnflag` in
-        addition to `xopt`.  See the Returns section below for additional
-        information on optional return values.
-    disp : bool, optional
-        If True, return a convergence message, followed by `xopt`.
-    retall : bool, optional
-        If True, add to the returned values the results of each iteration.
-    callback : callable, optional
-        An optional user-supplied function, called after each iteration.
-        Called as ``callback(xk)``, where ``xk`` is the current value of `x0`.
-    c1 : float, default: 1e-4
-        Parameter for Armijo condition rule.
-    c2 : float, default: 0.4
-        Parameter for curvature condition rule.
-
-    Returns
-    -------
-    xopt : ndarray
-        Parameters which minimize f, i.e., ``f(xopt) == fopt``.
-    fopt : float, optional
-        Minimum value found, f(xopt). Only returned if `full_output` is True.
-    func_calls : int, optional
-        The number of function_calls made. Only returned if `full_output`
-        is True.
-    grad_calls : int, optional
-        The number of gradient calls made. Only returned if `full_output` is
-        True.
-    warnflag : int, optional
-        Integer value with warning status, only returned if `full_output` is
-        True.
-
-        0 : Success.
-
-        1 : The maximum number of iterations was exceeded.
-
-        2 : Gradient and/or function calls were not changing. May indicate
-            that precision was lost, i.e., the routine did not converge.
-
-        3 : NaN result encountered.
-
-    allvecs : list of ndarray, optional
-        List of arrays, containing the results at each iteration.
-        Only returned if `retall` is True.
-
-    See Also
-    --------
-    minimize : common interface to all `scipy.optimize` algorithms for
-               unconstrained and constrained minimization of multivariate
-               functions. It provides an alternative way to call
-               ``fmin_cg``, by specifying ``method='CG'``.
-
-    Notes
-    -----
-    This conjugate gradient algorithm is based on that of Polak and Ribiere
-    [1]_.
-
-    Conjugate gradient methods tend to work better when:
-
-    1. `f` has a unique global minimizing point, and no local minima or
-       other stationary points,
-    2. `f` is, at least locally, reasonably well approximated by a
-       quadratic function of the variables,
-    3. `f` is continuous and has a continuous gradient,
-    4. `fprime` is not too large, e.g., has a norm less than 1000,
-    5. The initial guess, `x0`, is reasonably close to `f` 's global
-       minimizing point, `xopt`.
-
-    Parameters `c1` and `c2` must satisfy ``0 < c1 < c2 < 1``.
-
-    References
-    ----------
-    .. [1] Wright & Nocedal, "Numerical Optimization", 1999, pp. 120-122.
-
-    Examples
-    --------
-    Example 1: seek the minimum value of the expression
-    ``a*u**2 + b*u*v + c*v**2 + d*u + e*v + f`` for given values
-    of the parameters and an initial guess ``(u, v) = (0, 0)``.
-
-    >>> import numpy as np
-    >>> args = (2, 3, 7, 8, 9, 10)  # parameter values
-    >>> def f(x, *args):
-    ...     u, v = x
-    ...     a, b, c, d, e, f = args
-    ...     return a*u**2 + b*u*v + c*v**2 + d*u + e*v + f
-    >>> def gradf(x, *args):
-    ...     u, v = x
-    ...     a, b, c, d, e, f = args
-    ...     gu = 2*a*u + b*v + d     # u-component of the gradient
-    ...     gv = b*u + 2*c*v + e     # v-component of the gradient
-    ...     return np.asarray((gu, gv))
-    >>> x0 = np.asarray((0, 0))  # Initial guess.
-    >>> from scipy import optimize
-    >>> res1 = optimize.fmin_cg(f, x0, fprime=gradf, args=args)
-    Optimization terminated successfully.
-             Current function value: 1.617021
-             Iterations: 4
-             Function evaluations: 8
-             Gradient evaluations: 8
-    >>> res1
-    array([-1.80851064, -0.25531915])
-
-    Example 2: solve the same problem using the `minimize` function.
-    (This `myopts` dictionary shows all of the available options,
-    although in practice only non-default values would be needed.
-    The returned value will be a dictionary.)
-
-    >>> opts = {'maxiter' : None,    # default value.
-    ...         'disp' : True,    # non-default value.
-    ...         'gtol' : 1e-5,    # default value.
-    ...         'norm' : np.inf,  # default value.
-    ...         'eps' : 1.4901161193847656e-08}  # default value.
-    >>> res2 = optimize.minimize(f, x0, jac=gradf, args=args,
-    ...                          method='CG', options=opts)
-    Optimization terminated successfully.
-            Current function value: 1.617021
-            Iterations: 4
-            Function evaluations: 8
-            Gradient evaluations: 8
-    >>> res2.x  # minimum found
-    array([-1.80851064, -0.25531915])
-
-    """
-    opts = {'gtol': gtol,
-            'norm': norm,
-            'eps': epsilon,
-            'disp': disp,
-            'maxiter': maxiter,
-            'return_all': retall}
-
-    callback = _wrap_callback(callback)
-    res = _minimize_cg(f, x0, args, fprime, callback=callback, c1=c1, c2=c2,
-                       **opts)
-
-    if full_output:
-        retlist = res['x'], res['fun'], res['nfev'], res['njev'], res['status']
-        if retall:
-            retlist += (res['allvecs'], )
-        return retlist
-    else:
-        if retall:
-            return res['x'], res['allvecs']
-        else:
-            return res['x']
-
-
-def _minimize_cg(fun, x0, args=(), jac=None, callback=None,
-                 gtol=1e-5, norm=np.inf, eps=_epsilon, maxiter=None,
-                 disp=False, return_all=False, finite_diff_rel_step=None,
-                 c1=1e-4, c2=0.4, **unknown_options):
-    """
-    Minimization of scalar function of one or more variables using the
-    conjugate gradient algorithm.
-
-    Options
-    -------
-    disp : bool
-        Set to True to print convergence messages.
-    maxiter : int
-        Maximum number of iterations to perform.
-    gtol : float
-        Gradient norm must be less than `gtol` before successful
-        termination.
-    norm : float
-        Order of norm (Inf is max, -Inf is min).
-    eps : float or ndarray
-        If `jac is None` the absolute step size used for numerical
-        approximation of the jacobian via forward differences.
-    return_all : bool, optional
-        Set to True to return a list of the best solution at each of the
-        iterations.
-    finite_diff_rel_step : None or array_like, optional
-        If `jac in ['2-point', '3-point', 'cs']` the relative step size to
-        use for numerical approximation of the jacobian. The absolute step
-        size is computed as ``h = rel_step * sign(x) * max(1, abs(x))``,
-        possibly adjusted to fit into the bounds. For ``jac='3-point'``
-        the sign of `h` is ignored. If None (default) then step is selected
-        automatically.
-    c1 : float, default: 1e-4
-        Parameter for Armijo condition rule.
-    c2 : float, default: 0.4
-        Parameter for curvature condition rule.
-
-    Notes
-    -----
-    Parameters `c1` and `c2` must satisfy ``0 < c1 < c2 < 1``.
-    """
-    _check_unknown_options(unknown_options)
-
-    retall = return_all
-
-    x0 = asarray(x0).flatten()
-    if maxiter is None:
-        maxiter = len(x0) * 200
-
-    sf = _prepare_scalar_function(fun, x0, jac=jac, args=args, epsilon=eps,
-                                  finite_diff_rel_step=finite_diff_rel_step)
-
-    f = sf.fun
-    myfprime = sf.grad
-
-    old_fval = f(x0)
-    gfk = myfprime(x0)
-
-    k = 0
-    xk = x0
-    # Sets the initial step guess to dx ~ 1
-    old_old_fval = old_fval + np.linalg.norm(gfk) / 2
-
-    if retall:
-        allvecs = [xk]
-    warnflag = 0
-    pk = -gfk
-    gnorm = vecnorm(gfk, ord=norm)
-
-    sigma_3 = 0.01
-
-    while (gnorm > gtol) and (k < maxiter):
-        deltak = np.dot(gfk, gfk)
-
-        cached_step = [None]
-
-        def polak_ribiere_powell_step(alpha, gfkp1=None):
-            xkp1 = xk + alpha * pk
-            if gfkp1 is None:
-                gfkp1 = myfprime(xkp1)
-            yk = gfkp1 - gfk
-            beta_k = max(0, np.dot(yk, gfkp1) / deltak)
-            pkp1 = -gfkp1 + beta_k * pk
-            gnorm = vecnorm(gfkp1, ord=norm)
-            return (alpha, xkp1, pkp1, gfkp1, gnorm)
-
-        def descent_condition(alpha, xkp1, fp1, gfkp1):
-            # Polak-Ribiere+ needs an explicit check of a sufficient
-            # descent condition, which is not guaranteed by strong Wolfe.
-            #
-            # See Gilbert & Nocedal, "Global convergence properties of
-            # conjugate gradient methods for optimization",
-            # SIAM J. Optimization 2, 21 (1992).
-            cached_step[:] = polak_ribiere_powell_step(alpha, gfkp1)
-            alpha, xk, pk, gfk, gnorm = cached_step
-
-            # Accept step if it leads to convergence.
-            if gnorm <= gtol:
-                return True
-
-            # Accept step if sufficient descent condition applies.
-            return np.dot(pk, gfk) <= -sigma_3 * np.dot(gfk, gfk)
-
-        try:
-            alpha_k, fc, gc, old_fval, old_old_fval, gfkp1 = \
-                     _line_search_wolfe12(f, myfprime, xk, pk, gfk, old_fval,
-                                          old_old_fval, c1=c1, c2=c2, amin=1e-100,
-                                          amax=1e100, extra_condition=descent_condition)
-        except _LineSearchError:
-            # Line search failed to find a better solution.
-            warnflag = 2
-            break
-
-        # Reuse already computed results if possible
-        if alpha_k == cached_step[0]:
-            alpha_k, xk, pk, gfk, gnorm = cached_step
-        else:
-            alpha_k, xk, pk, gfk, gnorm = polak_ribiere_powell_step(alpha_k, gfkp1)
-
-        if retall:
-            allvecs.append(xk)
-        k += 1
-        intermediate_result = OptimizeResult(x=xk, fun=old_fval)
-        if _call_callback_maybe_halt(callback, intermediate_result):
-            break
-
-    fval = old_fval
-    if warnflag == 2:
-        msg = _status_message['pr_loss']
-    elif k >= maxiter:
-        warnflag = 1
-        msg = _status_message['maxiter']
-    elif np.isnan(gnorm) or np.isnan(fval) or np.isnan(xk).any():
-        warnflag = 3
-        msg = _status_message['nan']
-    else:
-        msg = _status_message['success']
-
-    if disp:
-        _print_success_message_or_warn(warnflag, msg)
-        print("         Current function value: %f" % fval)
-        print("         Iterations: %d" % k)
-        print("         Function evaluations: %d" % sf.nfev)
-        print("         Gradient evaluations: %d" % sf.ngev)
-
-    result = OptimizeResult(fun=fval, jac=gfk, nfev=sf.nfev,
-                            njev=sf.ngev, status=warnflag,
-                            success=(warnflag == 0), message=msg, x=xk,
-                            nit=k)
-    if retall:
-        result['allvecs'] = allvecs
-    return result
-
-
-def fmin_ncg(f, x0, fprime, fhess_p=None, fhess=None, args=(), avextol=1e-5,
-             epsilon=_epsilon, maxiter=None, full_output=0, disp=1, retall=0,
-             callback=None, c1=1e-4, c2=0.9):
-    """
-    Unconstrained minimization of a function using the Newton-CG method.
-
-    Parameters
-    ----------
-    f : callable ``f(x, *args)``
-        Objective function to be minimized.
-    x0 : ndarray
-        Initial guess.
-    fprime : callable ``f'(x, *args)``
-        Gradient of f.
-    fhess_p : callable ``fhess_p(x, p, *args)``, optional
-        Function which computes the Hessian of f times an
-        arbitrary vector, p.
-    fhess : callable ``fhess(x, *args)``, optional
-        Function to compute the Hessian matrix of f.
-    args : tuple, optional
-        Extra arguments passed to f, fprime, fhess_p, and fhess
-        (the same set of extra arguments is supplied to all of
-        these functions).
-    epsilon : float or ndarray, optional
-        If fhess is approximated, use this value for the step size.
-    callback : callable, optional
-        An optional user-supplied function which is called after
-        each iteration. Called as callback(xk), where xk is the
-        current parameter vector.
-    avextol : float, optional
-        Convergence is assumed when the average relative error in
-        the minimizer falls below this amount.
-    maxiter : int, optional
-        Maximum number of iterations to perform.
-    full_output : bool, optional
-        If True, return the optional outputs.
-    disp : bool, optional
-        If True, print convergence message.
-    retall : bool, optional
-        If True, return a list of results at each iteration.
-    c1 : float, default: 1e-4
-        Parameter for Armijo condition rule.
-    c2 : float, default: 0.9
-        Parameter for curvature condition rule
-
-    Returns
-    -------
-    xopt : ndarray
-        Parameters which minimize f, i.e., ``f(xopt) == fopt``.
-    fopt : float
-        Value of the function at xopt, i.e., ``fopt = f(xopt)``.
-    fcalls : int
-        Number of function calls made.
-    gcalls : int
-        Number of gradient calls made.
-    hcalls : int
-        Number of Hessian calls made.
-    warnflag : int
-        Warnings generated by the algorithm.
-        1 : Maximum number of iterations exceeded.
-        2 : Line search failure (precision loss).
-        3 : NaN result encountered.
-    allvecs : list
-        The result at each iteration, if retall is True (see below).
-
-    See also
-    --------
-    minimize: Interface to minimization algorithms for multivariate
-        functions. See the 'Newton-CG' `method` in particular.
-
-    Notes
-    -----
-    Only one of `fhess_p` or `fhess` need to be given.  If `fhess`
-    is provided, then `fhess_p` will be ignored. If neither `fhess`
-    nor `fhess_p` is provided, then the hessian product will be
-    approximated using finite differences on `fprime`. `fhess_p`
-    must compute the hessian times an arbitrary vector. If it is not
-    given, finite-differences on `fprime` are used to compute
-    it.
-
-    Newton-CG methods are also called truncated Newton methods. This
-    function differs from scipy.optimize.fmin_tnc because
-
-    1. scipy.optimize.fmin_ncg is written purely in Python using NumPy
-        and scipy while scipy.optimize.fmin_tnc calls a C function.
-    2. scipy.optimize.fmin_ncg is only for unconstrained minimization
-        while scipy.optimize.fmin_tnc is for unconstrained minimization
-        or box constrained minimization. (Box constraints give
-        lower and upper bounds for each variable separately.)
-
-    Parameters `c1` and `c2` must satisfy ``0 < c1 < c2 < 1``.
-
-    References
-    ----------
-    Wright & Nocedal, 'Numerical Optimization', 1999, p. 140.
-
-    """
-    opts = {'xtol': avextol,
-            'eps': epsilon,
-            'maxiter': maxiter,
-            'disp': disp,
-            'return_all': retall}
-
-    callback = _wrap_callback(callback)
-    res = _minimize_newtoncg(f, x0, args, fprime, fhess, fhess_p,
-                             callback=callback, c1=c1, c2=c2, **opts)
-
-    if full_output:
-        retlist = (res['x'], res['fun'], res['nfev'], res['njev'],
-                   res['nhev'], res['status'])
-        if retall:
-            retlist += (res['allvecs'], )
-        return retlist
-    else:
-        if retall:
-            return res['x'], res['allvecs']
-        else:
-            return res['x']
-
-
-def _minimize_newtoncg(fun, x0, args=(), jac=None, hess=None, hessp=None,
-                       callback=None, xtol=1e-5, eps=_epsilon, maxiter=None,
-                       disp=False, return_all=False, c1=1e-4, c2=0.9,
-                       **unknown_options):
-    """
-    Minimization of scalar function of one or more variables using the
-    Newton-CG algorithm.
-
-    Note that the `jac` parameter (Jacobian) is required.
-
-    Options
-    -------
-    disp : bool
-        Set to True to print convergence messages.
-    xtol : float
-        Average relative error in solution `xopt` acceptable for
-        convergence.
-    maxiter : int
-        Maximum number of iterations to perform.
-    eps : float or ndarray
-        If `hessp` is approximated, use this value for the step size.
-    return_all : bool, optional
-        Set to True to return a list of the best solution at each of the
-        iterations.
-    c1 : float, default: 1e-4
-        Parameter for Armijo condition rule.
-    c2 : float, default: 0.9
-        Parameter for curvature condition rule.
-
-    Notes
-    -----
-    Parameters `c1` and `c2` must satisfy ``0 < c1 < c2 < 1``.
-    """
-    _check_unknown_options(unknown_options)
-    if jac is None:
-        raise ValueError('Jacobian is required for Newton-CG method')
-    fhess_p = hessp
-    fhess = hess
-    avextol = xtol
-    epsilon = eps
-    retall = return_all
-
-    x0 = asarray(x0).flatten()
-    # TODO: add hessp (callable or FD) to ScalarFunction?
-    sf = _prepare_scalar_function(
-        fun, x0, jac, args=args, epsilon=eps, hess=hess
-    )
-    f = sf.fun
-    fprime = sf.grad
-    _h = sf.hess(x0)
-
-    # Logic for hess/hessp
-    # - If a callable(hess) is provided, then use that
-    # - If hess is a FD_METHOD, or the output from hess(x) is a LinearOperator
-    #   then create a hessp function using those.
-    # - If hess is None but you have callable(hessp) then use the hessp.
-    # - If hess and hessp are None then approximate hessp using the grad/jac.
-
-    if (hess in FD_METHODS or isinstance(_h, LinearOperator)):
-        fhess = None
-
-        def _hessp(x, p, *args):
-            return sf.hess(x).dot(p)
-
-        fhess_p = _hessp
-
-    def terminate(warnflag, msg):
-        if disp:
-            _print_success_message_or_warn(warnflag, msg)
-            print("         Current function value: %f" % old_fval)
-            print("         Iterations: %d" % k)
-            print("         Function evaluations: %d" % sf.nfev)
-            print("         Gradient evaluations: %d" % sf.ngev)
-            print("         Hessian evaluations: %d" % hcalls)
-        fval = old_fval
-        result = OptimizeResult(fun=fval, jac=gfk, nfev=sf.nfev,
-                                njev=sf.ngev, nhev=hcalls, status=warnflag,
-                                success=(warnflag == 0), message=msg, x=xk,
-                                nit=k)
-        if retall:
-            result['allvecs'] = allvecs
-        return result
-
-    hcalls = 0
-    if maxiter is None:
-        maxiter = len(x0)*200
-    cg_maxiter = 20*len(x0)
-
-    xtol = len(x0) * avextol
-    # Make sure we enter the while loop.
-    update_l1norm = np.finfo(float).max
-    xk = np.copy(x0)
-    if retall:
-        allvecs = [xk]
-    k = 0
-    gfk = None
-    old_fval = f(x0)
-    old_old_fval = None
-    float64eps = np.finfo(np.float64).eps
-    while update_l1norm > xtol:
-        if k >= maxiter:
-            msg = "Warning: " + _status_message['maxiter']
-            return terminate(1, msg)
-        # Compute a search direction pk by applying the CG method to
-        #  del2 f(xk) p = - grad f(xk) starting from 0.
-        b = -fprime(xk)
-        maggrad = np.linalg.norm(b, ord=1)
-        eta = min(0.5, math.sqrt(maggrad))
-        termcond = eta * maggrad
-        xsupi = zeros(len(x0), dtype=x0.dtype)
-        ri = -b
-        psupi = -ri
-        i = 0
-        dri0 = np.dot(ri, ri)
-
-        if fhess is not None:             # you want to compute hessian once.
-            A = sf.hess(xk)
-            hcalls += 1
-
-        for k2 in range(cg_maxiter):
-            if np.add.reduce(np.abs(ri)) <= termcond:
-                break
-            if fhess is None:
-                if fhess_p is None:
-                    Ap = approx_fhess_p(xk, psupi, fprime, epsilon)
-                else:
-                    Ap = fhess_p(xk, psupi, *args)
-                    hcalls += 1
-            else:
-                # hess was supplied as a callable or hessian update strategy, so
-                # A is a dense numpy array or sparse matrix
-                Ap = A.dot(psupi)
-            # check curvature
-            Ap = asarray(Ap).squeeze()  # get rid of matrices...
-            curv = np.dot(psupi, Ap)
-            if 0 <= curv <= 3 * float64eps:
-                break
-            elif curv < 0:
-                if (i > 0):
-                    break
-                else:
-                    # fall back to steepest descent direction
-                    xsupi = dri0 / (-curv) * b
-                    break
-            alphai = dri0 / curv
-            xsupi += alphai * psupi
-            ri += alphai * Ap
-            dri1 = np.dot(ri, ri)
-            betai = dri1 / dri0
-            psupi = -ri + betai * psupi
-            i += 1
-            dri0 = dri1          # update np.dot(ri,ri) for next time.
-        else:
-            # curvature keeps increasing, bail out
-            msg = ("Warning: CG iterations didn't converge. The Hessian is not "
-                   "positive definite.")
-            return terminate(3, msg)
-
-        pk = xsupi  # search direction is solution to system.
-        gfk = -b    # gradient at xk
-
-        try:
-            alphak, fc, gc, old_fval, old_old_fval, gfkp1 = \
-                     _line_search_wolfe12(f, fprime, xk, pk, gfk,
-                                          old_fval, old_old_fval, c1=c1, c2=c2)
-        except _LineSearchError:
-            # Line search failed to find a better solution.
-            msg = "Warning: " + _status_message['pr_loss']
-            return terminate(2, msg)
-
-        update = alphak * pk
-        xk += update        # upcast if necessary
-        if retall:
-            allvecs.append(xk)
-        k += 1
-        intermediate_result = OptimizeResult(x=xk, fun=old_fval)
-        if _call_callback_maybe_halt(callback, intermediate_result):
-            return terminate(5, "")
-        update_l1norm = np.linalg.norm(update, ord=1)
-
-    else:
-        if np.isnan(old_fval) or np.isnan(update_l1norm):
-            return terminate(3, _status_message['nan'])
-
-        msg = _status_message['success']
-        return terminate(0, msg)
-
-
-def fminbound(func, x1, x2, args=(), xtol=1e-5, maxfun=500,
-              full_output=0, disp=1):
-    """Bounded minimization for scalar functions.
-
-    Parameters
-    ----------
-    func : callable f(x,*args)
-        Objective function to be minimized (must accept and return scalars).
-    x1, x2 : float or array scalar
-        Finite optimization bounds.
-    args : tuple, optional
-        Extra arguments passed to function.
-    xtol : float, optional
-        The convergence tolerance.
-    maxfun : int, optional
-        Maximum number of function evaluations allowed.
-    full_output : bool, optional
-        If True, return optional outputs.
-    disp : int, optional
-        If non-zero, print messages.
-            0 : no message printing.
-            1 : non-convergence notification messages only.
-            2 : print a message on convergence too.
-            3 : print iteration results.
-
-
-    Returns
-    -------
-    xopt : ndarray
-        Parameters (over given interval) which minimize the
-        objective function.
-    fval : number
-        (Optional output) The function value evaluated at the minimizer.
-    ierr : int
-        (Optional output) An error flag (0 if converged, 1 if maximum number of
-        function calls reached).
-    numfunc : int
-        (Optional output) The number of function calls made.
-
-    See also
-    --------
-    minimize_scalar: Interface to minimization algorithms for scalar
-        univariate functions. See the 'Bounded' `method` in particular.
-
-    Notes
-    -----
-    Finds a local minimizer of the scalar function `func` in the
-    interval x1 < xopt < x2 using Brent's method. (See `brent`
-    for auto-bracketing.)
-
-    References
-    ----------
-    .. [1] Forsythe, G.E., M. A. Malcolm, and C. B. Moler. "Computer Methods
-           for Mathematical Computations." Prentice-Hall Series in Automatic
-           Computation 259 (1977).
-    .. [2] Brent, Richard P. Algorithms for Minimization Without Derivatives.
-           Courier Corporation, 2013.
-
-    Examples
-    --------
-    `fminbound` finds the minimizer of the function in the given range.
-    The following examples illustrate this.
-
-    >>> from scipy import optimize
-    >>> def f(x):
-    ...     return (x-1)**2
-    >>> minimizer = optimize.fminbound(f, -4, 4)
-    >>> minimizer
-    1.0
-    >>> minimum = f(minimizer)
-    >>> minimum
-    0.0
-    >>> res = optimize.fminbound(f, 3, 4, full_output=True)
-    >>> minimizer, fval, ierr, numfunc = res
-    >>> minimizer
-    3.000005960860986
-    >>> minimum = f(minimizer)
-    >>> minimum, fval
-    (4.000023843479476, 4.000023843479476)
-    """
-    options = {'xatol': xtol,
-               'maxiter': maxfun,
-               'disp': disp}
-
-    res = _minimize_scalar_bounded(func, (x1, x2), args, **options)
-    if full_output:
-        return res['x'], res['fun'], res['status'], res['nfev']
-    else:
-        return res['x']
-
-
-def _minimize_scalar_bounded(func, bounds, args=(),
-                             xatol=1e-5, maxiter=500, disp=0,
-                             **unknown_options):
-    """
-    Options
-    -------
-    maxiter : int
-        Maximum number of iterations to perform.
-    disp: int, optional
-        If non-zero, print messages.
-            0 : no message printing.
-            1 : non-convergence notification messages only.
-            2 : print a message on convergence too.
-            3 : print iteration results.
-    xatol : float
-        Absolute error in solution `xopt` acceptable for convergence.
-
-    """
-    _check_unknown_options(unknown_options)
-    maxfun = maxiter
-    # Test bounds are of correct form
-    if len(bounds) != 2:
-        raise ValueError('bounds must have two elements.')
-    x1, x2 = bounds
-
-    if not (is_finite_scalar(x1) and is_finite_scalar(x2)):
-        raise ValueError("Optimization bounds must be finite scalars.")
-
-    if x1 > x2:
-        raise ValueError("The lower bound exceeds the upper bound.")
-
-    flag = 0
-    header = ' Func-count     x          f(x)          Procedure'
-    step = '       initial'
-
-    sqrt_eps = sqrt(2.2e-16)
-    golden_mean = 0.5 * (3.0 - sqrt(5.0))
-    a, b = x1, x2
-    fulc = a + golden_mean * (b - a)
-    nfc, xf = fulc, fulc
-    rat = e = 0.0
-    x = xf
-    fx = func(x, *args)
-    num = 1
-    fmin_data = (1, xf, fx)
-    fu = np.inf
-
-    ffulc = fnfc = fx
-    xm = 0.5 * (a + b)
-    tol1 = sqrt_eps * np.abs(xf) + xatol / 3.0
-    tol2 = 2.0 * tol1
-
-    if disp > 2:
-        print(" ")
-        print(header)
-        print("%5.0f   %12.6g %12.6g %s" % (fmin_data + (step,)))
-
-    while (np.abs(xf - xm) > (tol2 - 0.5 * (b - a))):
-        golden = 1
-        # Check for parabolic fit
-        if np.abs(e) > tol1:
-            golden = 0
-            r = (xf - nfc) * (fx - ffulc)
-            q = (xf - fulc) * (fx - fnfc)
-            p = (xf - fulc) * q - (xf - nfc) * r
-            q = 2.0 * (q - r)
-            if q > 0.0:
-                p = -p
-            q = np.abs(q)
-            r = e
-            e = rat
-
-            # Check for acceptability of parabola
-            if ((np.abs(p) < np.abs(0.5*q*r)) and (p > q*(a - xf)) and
-                    (p < q * (b - xf))):
-                rat = (p + 0.0) / q
-                x = xf + rat
-                step = '       parabolic'
-
-                if ((x - a) < tol2) or ((b - x) < tol2):
-                    si = np.sign(xm - xf) + ((xm - xf) == 0)
-                    rat = tol1 * si
-            else:      # do a golden-section step
-                golden = 1
-
-        if golden:  # do a golden-section step
-            if xf >= xm:
-                e = a - xf
-            else:
-                e = b - xf
-            rat = golden_mean*e
-            step = '       golden'
-
-        si = np.sign(rat) + (rat == 0)
-        x = xf + si * np.maximum(np.abs(rat), tol1)
-        fu = func(x, *args)
-        num += 1
-        fmin_data = (num, x, fu)
-        if disp > 2:
-            print("%5.0f   %12.6g %12.6g %s" % (fmin_data + (step,)))
-
-        if fu <= fx:
-            if x >= xf:
-                a = xf
-            else:
-                b = xf
-            fulc, ffulc = nfc, fnfc
-            nfc, fnfc = xf, fx
-            xf, fx = x, fu
-        else:
-            if x < xf:
-                a = x
-            else:
-                b = x
-            if (fu <= fnfc) or (nfc == xf):
-                fulc, ffulc = nfc, fnfc
-                nfc, fnfc = x, fu
-            elif (fu <= ffulc) or (fulc == xf) or (fulc == nfc):
-                fulc, ffulc = x, fu
-
-        xm = 0.5 * (a + b)
-        tol1 = sqrt_eps * np.abs(xf) + xatol / 3.0
-        tol2 = 2.0 * tol1
-
-        if num >= maxfun:
-            flag = 1
-            break
-
-    if np.isnan(xf) or np.isnan(fx) or np.isnan(fu):
-        flag = 2
-
-    fval = fx
-    if disp > 0:
-        _endprint(x, flag, fval, maxfun, xatol, disp)
-
-    result = OptimizeResult(fun=fval, status=flag, success=(flag == 0),
-                            message={0: 'Solution found.',
-                                     1: 'Maximum number of function calls '
-                                        'reached.',
-                                     2: _status_message['nan']}.get(flag, ''),
-                            x=xf, nfev=num, nit=num)
-
-    return result
-
-
-class Brent:
-    #need to rethink design of __init__
-    def __init__(self, func, args=(), tol=1.48e-8, maxiter=500,
-                 full_output=0, disp=0):
-        self.func = func
-        self.args = args
-        self.tol = tol
-        self.maxiter = maxiter
-        self._mintol = 1.0e-11
-        self._cg = 0.3819660
-        self.xmin = None
-        self.fval = None
-        self.iter = 0
-        self.funcalls = 0
-        self.disp = disp
-
-    # need to rethink design of set_bracket (new options, etc.)
-    def set_bracket(self, brack=None):
-        self.brack = brack
-
-    def get_bracket_info(self):
-        #set up
-        func = self.func
-        args = self.args
-        brack = self.brack
-        ### BEGIN core bracket_info code ###
-        ### carefully DOCUMENT any CHANGES in core ##
-        if brack is None:
-            xa, xb, xc, fa, fb, fc, funcalls = bracket(func, args=args)
-        elif len(brack) == 2:
-            xa, xb, xc, fa, fb, fc, funcalls = bracket(func, xa=brack[0],
-                                                       xb=brack[1], args=args)
-        elif len(brack) == 3:
-            xa, xb, xc = brack
-            if (xa > xc):  # swap so xa < xc can be assumed
-                xc, xa = xa, xc
-            if not ((xa < xb) and (xb < xc)):
-                raise ValueError(
-                    "Bracketing values (xa, xb, xc) do not"
-                    " fulfill this requirement: (xa < xb) and (xb < xc)"
-                )
-            fa = func(*((xa,) + args))
-            fb = func(*((xb,) + args))
-            fc = func(*((xc,) + args))
-            if not ((fb < fa) and (fb < fc)):
-                raise ValueError(
-                    "Bracketing values (xa, xb, xc) do not fulfill"
-                    " this requirement: (f(xb) < f(xa)) and (f(xb) < f(xc))"
-                )
-
-            funcalls = 3
-        else:
-            raise ValueError("Bracketing interval must be "
-                             "length 2 or 3 sequence.")
-        ### END core bracket_info code ###
-
-        return xa, xb, xc, fa, fb, fc, funcalls
-
-    def optimize(self):
-        # set up for optimization
-        func = self.func
-        xa, xb, xc, fa, fb, fc, funcalls = self.get_bracket_info()
-        _mintol = self._mintol
-        _cg = self._cg
-        #################################
-        #BEGIN CORE ALGORITHM
-        #################################
-        x = w = v = xb
-        fw = fv = fx = fb
-        if (xa < xc):
-            a = xa
-            b = xc
-        else:
-            a = xc
-            b = xa
-        deltax = 0.0
-        iter = 0
-
-        if self.disp > 2:
-            print(" ")
-            print(f"{'Func-count':^12} {'x':^12} {'f(x)': ^12}")
-            print(f"{funcalls:^12g} {x:^12.6g} {fx:^12.6g}")
-
-        while (iter < self.maxiter):
-            tol1 = self.tol * np.abs(x) + _mintol
-            tol2 = 2.0 * tol1
-            xmid = 0.5 * (a + b)
-            # check for convergence
-            if np.abs(x - xmid) < (tol2 - 0.5 * (b - a)):
-                break
-            # XXX In the first iteration, rat is only bound in the true case
-            # of this conditional. This used to cause an UnboundLocalError
-            # (gh-4140). It should be set before the if (but to what?).
-            if (np.abs(deltax) <= tol1):
-                if (x >= xmid):
-                    deltax = a - x       # do a golden section step
-                else:
-                    deltax = b - x
-                rat = _cg * deltax
-            else:                              # do a parabolic step
-                tmp1 = (x - w) * (fx - fv)
-                tmp2 = (x - v) * (fx - fw)
-                p = (x - v) * tmp2 - (x - w) * tmp1
-                tmp2 = 2.0 * (tmp2 - tmp1)
-                if (tmp2 > 0.0):
-                    p = -p
-                tmp2 = np.abs(tmp2)
-                dx_temp = deltax
-                deltax = rat
-                # check parabolic fit
-                if ((p > tmp2 * (a - x)) and (p < tmp2 * (b - x)) and
-                        (np.abs(p) < np.abs(0.5 * tmp2 * dx_temp))):
-                    rat = p * 1.0 / tmp2        # if parabolic step is useful.
-                    u = x + rat
-                    if ((u - a) < tol2 or (b - u) < tol2):
-                        if xmid - x >= 0:
-                            rat = tol1
-                        else:
-                            rat = -tol1
-                else:
-                    if (x >= xmid):
-                        deltax = a - x  # if it's not do a golden section step
-                    else:
-                        deltax = b - x
-                    rat = _cg * deltax
-
-            if (np.abs(rat) < tol1):            # update by at least tol1
-                if rat >= 0:
-                    u = x + tol1
-                else:
-                    u = x - tol1
-            else:
-                u = x + rat
-            fu = func(*((u,) + self.args))      # calculate new output value
-            funcalls += 1
-
-            if (fu > fx):                 # if it's bigger than current
-                if (u < x):
-                    a = u
-                else:
-                    b = u
-                if (fu <= fw) or (w == x):
-                    v = w
-                    w = u
-                    fv = fw
-                    fw = fu
-                elif (fu <= fv) or (v == x) or (v == w):
-                    v = u
-                    fv = fu
-            else:
-                if (u >= x):
-                    a = x
-                else:
-                    b = x
-                v = w
-                w = x
-                x = u
-                fv = fw
-                fw = fx
-                fx = fu
-
-            if self.disp > 2:
-                print(f"{funcalls:^12g} {x:^12.6g} {fx:^12.6g}")
-
-            iter += 1
-        #################################
-        #END CORE ALGORITHM
-        #################################
-
-        self.xmin = x
-        self.fval = fx
-        self.iter = iter
-        self.funcalls = funcalls
-
-    def get_result(self, full_output=False):
-        if full_output:
-            return self.xmin, self.fval, self.iter, self.funcalls
-        else:
-            return self.xmin
-
-
-def brent(func, args=(), brack=None, tol=1.48e-8, full_output=0, maxiter=500):
-    """
-    Given a function of one variable and a possible bracket, return
-    a local minimizer of the function isolated to a fractional precision
-    of tol.
-
-    Parameters
-    ----------
-    func : callable f(x,*args)
-        Objective function.
-    args : tuple, optional
-        Additional arguments (if present).
-    brack : tuple, optional
-        Either a triple ``(xa, xb, xc)`` satisfying ``xa < xb < xc`` and
-        ``func(xb) < func(xa) and  func(xb) < func(xc)``, or a pair
-        ``(xa, xb)`` to be used as initial points for a downhill bracket search
-        (see `scipy.optimize.bracket`).
-        The minimizer ``x`` will not necessarily satisfy ``xa <= x <= xb``.
-    tol : float, optional
-        Relative error in solution `xopt` acceptable for convergence.
-    full_output : bool, optional
-        If True, return all output args (xmin, fval, iter,
-        funcalls).
-    maxiter : int, optional
-        Maximum number of iterations in solution.
-
-    Returns
-    -------
-    xmin : ndarray
-        Optimum point.
-    fval : float
-        (Optional output) Optimum function value.
-    iter : int
-        (Optional output) Number of iterations.
-    funcalls : int
-        (Optional output) Number of objective function evaluations made.
-
-    See also
-    --------
-    minimize_scalar: Interface to minimization algorithms for scalar
-        univariate functions. See the 'Brent' `method` in particular.
-
-    Notes
-    -----
-    Uses inverse parabolic interpolation when possible to speed up
-    convergence of golden section method.
-
-    Does not ensure that the minimum lies in the range specified by
-    `brack`. See `scipy.optimize.fminbound`.
-
-    Examples
-    --------
-    We illustrate the behaviour of the function when `brack` is of
-    size 2 and 3 respectively. In the case where `brack` is of the
-    form ``(xa, xb)``, we can see for the given values, the output does
-    not necessarily lie in the range ``(xa, xb)``.
-
-    >>> def f(x):
-    ...     return (x-1)**2
-
-    >>> from scipy import optimize
-
-    >>> minimizer = optimize.brent(f, brack=(1, 2))
-    >>> minimizer
-    1
-    >>> res = optimize.brent(f, brack=(-1, 0.5, 2), full_output=True)
-    >>> xmin, fval, iter, funcalls = res
-    >>> f(xmin), fval
-    (0.0, 0.0)
-
-    """
-    options = {'xtol': tol,
-               'maxiter': maxiter}
-    res = _minimize_scalar_brent(func, brack, args, **options)
-    if full_output:
-        return res['x'], res['fun'], res['nit'], res['nfev']
-    else:
-        return res['x']
-
-
-def _minimize_scalar_brent(func, brack=None, args=(), xtol=1.48e-8,
-                           maxiter=500, disp=0,
-                           **unknown_options):
-    """
-    Options
-    -------
-    maxiter : int
-        Maximum number of iterations to perform.
-    xtol : float
-        Relative error in solution `xopt` acceptable for convergence.
-    disp: int, optional
-        If non-zero, print messages.
-            0 : no message printing.
-            1 : non-convergence notification messages only.
-            2 : print a message on convergence too.
-            3 : print iteration results.
-    Notes
-    -----
-    Uses inverse parabolic interpolation when possible to speed up
-    convergence of golden section method.
-
-    """
-    _check_unknown_options(unknown_options)
-    tol = xtol
-    if tol < 0:
-        raise ValueError('tolerance should be >= 0, got %r' % tol)
-
-    brent = Brent(func=func, args=args, tol=tol,
-                  full_output=True, maxiter=maxiter, disp=disp)
-    brent.set_bracket(brack)
-    brent.optimize()
-    x, fval, nit, nfev = brent.get_result(full_output=True)
-
-    success = nit < maxiter and not (np.isnan(x) or np.isnan(fval))
-
-    if success:
-        message = ("\nOptimization terminated successfully;\n"
-                   "The returned value satisfies the termination criteria\n"
-                   f"(using xtol = {xtol} )")
-    else:
-        if nit >= maxiter:
-            message = "\nMaximum number of iterations exceeded"
-        if np.isnan(x) or np.isnan(fval):
-            message = f"{_status_message['nan']}"
-
-    if disp:
-        _print_success_message_or_warn(not success, message)
-
-    return OptimizeResult(fun=fval, x=x, nit=nit, nfev=nfev,
-                          success=success, message=message)
-
-
-def golden(func, args=(), brack=None, tol=_epsilon,
-           full_output=0, maxiter=5000):
-    """
-    Return the minimizer of a function of one variable using the golden section
-    method.
-
-    Given a function of one variable and a possible bracketing interval,
-    return a minimizer of the function isolated to a fractional precision of
-    tol.
-
-    Parameters
-    ----------
-    func : callable func(x,*args)
-        Objective function to minimize.
-    args : tuple, optional
-        Additional arguments (if present), passed to func.
-    brack : tuple, optional
-        Either a triple ``(xa, xb, xc)`` where ``xa < xb < xc`` and
-        ``func(xb) < func(xa) and  func(xb) < func(xc)``, or a pair (xa, xb)
-        to be used as initial points for a downhill bracket search (see
-        `scipy.optimize.bracket`).
-        The minimizer ``x`` will not necessarily satisfy ``xa <= x <= xb``.
-    tol : float, optional
-        x tolerance stop criterion
-    full_output : bool, optional
-        If True, return optional outputs.
-    maxiter : int
-        Maximum number of iterations to perform.
-
-    Returns
-    -------
-    xmin : ndarray
-        Optimum point.
-    fval : float
-        (Optional output) Optimum function value.
-    funcalls : int
-        (Optional output) Number of objective function evaluations made.
-
-    See also
-    --------
-    minimize_scalar: Interface to minimization algorithms for scalar
-        univariate functions. See the 'Golden' `method` in particular.
-
-    Notes
-    -----
-    Uses analog of bisection method to decrease the bracketed
-    interval.
-
-    Examples
-    --------
-    We illustrate the behaviour of the function when `brack` is of
-    size 2 and 3, respectively. In the case where `brack` is of the
-    form (xa,xb), we can see for the given values, the output need
-    not necessarily lie in the range ``(xa, xb)``.
-
-    >>> def f(x):
-    ...     return (x-1)**2
-
-    >>> from scipy import optimize
-
-    >>> minimizer = optimize.golden(f, brack=(1, 2))
-    >>> minimizer
-    1
-    >>> res = optimize.golden(f, brack=(-1, 0.5, 2), full_output=True)
-    >>> xmin, fval, funcalls = res
-    >>> f(xmin), fval
-    (9.925165290385052e-18, 9.925165290385052e-18)
-
-    """
-    options = {'xtol': tol, 'maxiter': maxiter}
-    res = _minimize_scalar_golden(func, brack, args, **options)
-    if full_output:
-        return res['x'], res['fun'], res['nfev']
-    else:
-        return res['x']
-
-
-def _minimize_scalar_golden(func, brack=None, args=(),
-                            xtol=_epsilon, maxiter=5000, disp=0,
-                            **unknown_options):
-    """
-    Options
-    -------
-    xtol : float
-        Relative error in solution `xopt` acceptable for convergence.
-    maxiter : int
-        Maximum number of iterations to perform.
-    disp: int, optional
-        If non-zero, print messages.
-            0 : no message printing.
-            1 : non-convergence notification messages only.
-            2 : print a message on convergence too.
-            3 : print iteration results.
-    """
-    _check_unknown_options(unknown_options)
-    tol = xtol
-    if brack is None:
-        xa, xb, xc, fa, fb, fc, funcalls = bracket(func, args=args)
-    elif len(brack) == 2:
-        xa, xb, xc, fa, fb, fc, funcalls = bracket(func, xa=brack[0],
-                                                   xb=brack[1], args=args)
-    elif len(brack) == 3:
-        xa, xb, xc = brack
-        if (xa > xc):  # swap so xa < xc can be assumed
-            xc, xa = xa, xc
-        if not ((xa < xb) and (xb < xc)):
-            raise ValueError(
-                "Bracketing values (xa, xb, xc) do not"
-                " fulfill this requirement: (xa < xb) and (xb < xc)"
-            )
-        fa = func(*((xa,) + args))
-        fb = func(*((xb,) + args))
-        fc = func(*((xc,) + args))
-        if not ((fb < fa) and (fb < fc)):
-            raise ValueError(
-                "Bracketing values (xa, xb, xc) do not fulfill"
-                " this requirement: (f(xb) < f(xa)) and (f(xb) < f(xc))"
-            )
-        funcalls = 3
-    else:
-        raise ValueError("Bracketing interval must be length 2 or 3 sequence.")
-
-    _gR = 0.61803399  # golden ratio conjugate: 2.0/(1.0+sqrt(5.0))
-    _gC = 1.0 - _gR
-    x3 = xc
-    x0 = xa
-    if (np.abs(xc - xb) > np.abs(xb - xa)):
-        x1 = xb
-        x2 = xb + _gC * (xc - xb)
-    else:
-        x2 = xb
-        x1 = xb - _gC * (xb - xa)
-    f1 = func(*((x1,) + args))
-    f2 = func(*((x2,) + args))
-    funcalls += 2
-    nit = 0
-
-    if disp > 2:
-        print(" ")
-        print(f"{'Func-count':^12} {'x':^12} {'f(x)': ^12}")
-
-    for i in range(maxiter):
-        if np.abs(x3 - x0) <= tol * (np.abs(x1) + np.abs(x2)):
-            break
-        if (f2 < f1):
-            x0 = x1
-            x1 = x2
-            x2 = _gR * x1 + _gC * x3
-            f1 = f2
-            f2 = func(*((x2,) + args))
-        else:
-            x3 = x2
-            x2 = x1
-            x1 = _gR * x2 + _gC * x0
-            f2 = f1
-            f1 = func(*((x1,) + args))
-        funcalls += 1
-        if disp > 2:
-            if (f1 < f2):
-                xmin, fval = x1, f1
-            else:
-                xmin, fval = x2, f2
-            print(f"{funcalls:^12g} {xmin:^12.6g} {fval:^12.6g}")
-
-        nit += 1
-    # end of iteration loop
-
-    if (f1 < f2):
-        xmin = x1
-        fval = f1
-    else:
-        xmin = x2
-        fval = f2
-
-    success = nit < maxiter and not (np.isnan(fval) or np.isnan(xmin))
-
-    if success:
-        message = ("\nOptimization terminated successfully;\n"
-                   "The returned value satisfies the termination criteria\n"
-                   f"(using xtol = {xtol} )")
-    else:
-        if nit >= maxiter:
-            message = "\nMaximum number of iterations exceeded"
-        if np.isnan(xmin) or np.isnan(fval):
-            message = f"{_status_message['nan']}"
-
-    if disp:
-        _print_success_message_or_warn(not success, message)
-
-    return OptimizeResult(fun=fval, nfev=funcalls, x=xmin, nit=nit,
-                          success=success, message=message)
-
-
-def bracket(func, xa=0.0, xb=1.0, args=(), grow_limit=110.0, maxiter=1000):
-    """
-    Bracket the minimum of a function.
-
-    Given a function and distinct initial points, search in the
-    downhill direction (as defined by the initial points) and return
-    three points that bracket the minimum of the function.
-
-    Parameters
-    ----------
-    func : callable f(x,*args)
-        Objective function to minimize.
-    xa, xb : float, optional
-        Initial points. Defaults `xa` to 0.0, and `xb` to 1.0.
-        A local minimum need not be contained within this interval.
-    args : tuple, optional
-        Additional arguments (if present), passed to `func`.
-    grow_limit : float, optional
-        Maximum grow limit.  Defaults to 110.0
-    maxiter : int, optional
-        Maximum number of iterations to perform. Defaults to 1000.
-
-    Returns
-    -------
-    xa, xb, xc : float
-        Final points of the bracket.
-    fa, fb, fc : float
-        Objective function values at the bracket points.
-    funcalls : int
-        Number of function evaluations made.
-
-    Raises
-    ------
-    BracketError
-        If no valid bracket is found before the algorithm terminates.
-        See notes for conditions of a valid bracket.
-
-    Notes
-    -----
-    The algorithm attempts to find three strictly ordered points (i.e.
-    :math:`x_a < x_b < x_c` or :math:`x_c < x_b < x_a`) satisfying
-    :math:`f(x_b) ≤ f(x_a)` and :math:`f(x_b) ≤ f(x_c)`, where one of the
-    inequalities must be satistfied strictly and all :math:`x_i` must be
-    finite.
-
-    Examples
-    --------
-    This function can find a downward convex region of a function:
-
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.optimize import bracket
-    >>> def f(x):
-    ...     return 10*x**2 + 3*x + 5
-    >>> x = np.linspace(-2, 2)
-    >>> y = f(x)
-    >>> init_xa, init_xb = 0.1, 1
-    >>> xa, xb, xc, fa, fb, fc, funcalls = bracket(f, xa=init_xa, xb=init_xb)
-    >>> plt.axvline(x=init_xa, color="k", linestyle="--")
-    >>> plt.axvline(x=init_xb, color="k", linestyle="--")
-    >>> plt.plot(x, y, "-k")
-    >>> plt.plot(xa, fa, "bx")
-    >>> plt.plot(xb, fb, "rx")
-    >>> plt.plot(xc, fc, "bx")
-    >>> plt.show()
-
-    Note that both initial points were to the right of the minimum, and the
-    third point was found in the "downhill" direction: the direction
-    in which the function appeared to be decreasing (to the left).
-    The final points are strictly ordered, and the function value
-    at the middle point is less than the function values at the endpoints;
-    it follows that a minimum must lie within the bracket.
-
-    """
-    _gold = 1.618034  # golden ratio: (1.0+sqrt(5.0))/2.0
-    _verysmall_num = 1e-21
-    # convert to numpy floats if not already
-    xa, xb = np.asarray([xa, xb])
-    fa = func(*(xa,) + args)
-    fb = func(*(xb,) + args)
-    if (fa < fb):                      # Switch so fa > fb
-        xa, xb = xb, xa
-        fa, fb = fb, fa
-    xc = xb + _gold * (xb - xa)
-    fc = func(*((xc,) + args))
-    funcalls = 3
-    iter = 0
-    while (fc < fb):
-        tmp1 = (xb - xa) * (fb - fc)
-        tmp2 = (xb - xc) * (fb - fa)
-        val = tmp2 - tmp1
-        if np.abs(val) < _verysmall_num:
-            denom = 2.0 * _verysmall_num
-        else:
-            denom = 2.0 * val
-        w = xb - ((xb - xc) * tmp2 - (xb - xa) * tmp1) / denom
-        wlim = xb + grow_limit * (xc - xb)
-        msg = ("No valid bracket was found before the iteration limit was "
-               "reached. Consider trying different initial points or "
-               "increasing `maxiter`.")
-        if iter > maxiter:
-            raise RuntimeError(msg)
-        iter += 1
-        if (w - xc) * (xb - w) > 0.0:
-            fw = func(*((w,) + args))
-            funcalls += 1
-            if (fw < fc):
-                xa = xb
-                xb = w
-                fa = fb
-                fb = fw
-                break
-            elif (fw > fb):
-                xc = w
-                fc = fw
-                break
-            w = xc + _gold * (xc - xb)
-            fw = func(*((w,) + args))
-            funcalls += 1
-        elif (w - wlim)*(wlim - xc) >= 0.0:
-            w = wlim
-            fw = func(*((w,) + args))
-            funcalls += 1
-        elif (w - wlim)*(xc - w) > 0.0:
-            fw = func(*((w,) + args))
-            funcalls += 1
-            if (fw < fc):
-                xb = xc
-                xc = w
-                w = xc + _gold * (xc - xb)
-                fb = fc
-                fc = fw
-                fw = func(*((w,) + args))
-                funcalls += 1
-        else:
-            w = xc + _gold * (xc - xb)
-            fw = func(*((w,) + args))
-            funcalls += 1
-        xa = xb
-        xb = xc
-        xc = w
-        fa = fb
-        fb = fc
-        fc = fw
-
-    # three conditions for a valid bracket
-    cond1 = (fb < fc and fb <= fa) or (fb < fa and fb <= fc)
-    cond2 = (xa < xb < xc or xc < xb < xa)
-    cond3 = np.isfinite(xa) and np.isfinite(xb) and np.isfinite(xc)
-    msg = ("The algorithm terminated without finding a valid bracket. "
-           "Consider trying different initial points.")
-    if not (cond1 and cond2 and cond3):
-        e = BracketError(msg)
-        e.data = (xa, xb, xc, fa, fb, fc, funcalls)
-        raise e
-
-    return xa, xb, xc, fa, fb, fc, funcalls
-
-
-class BracketError(RuntimeError):
-    pass
-
-
-def _recover_from_bracket_error(solver, fun, bracket, args, **options):
-    # `bracket` was originally written without checking whether the resulting
-    # bracket is valid. `brent` and `golden` built on top of it without
-    # checking the returned bracket for validity, and their output can be
-    # incorrect without warning/error if the original bracket is invalid.
-    # gh-14858 noticed the problem, and the following is the desired
-    # behavior:
-    # - `scipy.optimize.bracket`, `scipy.optimize.brent`, and
-    #   `scipy.optimize.golden` should raise an error if the bracket is
-    #   invalid, as opposed to silently returning garbage
-    # - `scipy.optimize.minimize_scalar` should return with `success=False`
-    #   and other information
-    # The changes that would be required to achieve this the traditional
-    # way (`return`ing all the required information from bracket all the way
-    # up to `minimizer_scalar`) are extensive and invasive. (See a6aa40d.)
-    # We can achieve the same thing by raising the error in `bracket`, but
-    # storing the information needed by `minimize_scalar` in the error object,
-    # and intercepting it here.
-    try:
-        res = solver(fun, bracket, args, **options)
-    except BracketError as e:
-        msg = str(e)
-        xa, xb, xc, fa, fb, fc, funcalls = e.data
-        xs, fs = [xa, xb, xc], [fa, fb, fc]
-        if np.any(np.isnan([xs, fs])):
-            x, fun = np.nan, np.nan
-        else:
-            imin = np.argmin(fs)
-            x, fun = xs[imin], fs[imin]
-        return OptimizeResult(fun=fun, nfev=funcalls, x=x,
-                              nit=0, success=False, message=msg)
-    return res
-
-
-def _line_for_search(x0, alpha, lower_bound, upper_bound):
-    """
-    Given a parameter vector ``x0`` with length ``n`` and a direction
-    vector ``alpha`` with length ``n``, and lower and upper bounds on
-    each of the ``n`` parameters, what are the bounds on a scalar
-    ``l`` such that ``lower_bound <= x0 + alpha * l <= upper_bound``.
-
-
-    Parameters
-    ----------
-    x0 : np.array.
-        The vector representing the current location.
-        Note ``np.shape(x0) == (n,)``.
-    alpha : np.array.
-        The vector representing the direction.
-        Note ``np.shape(alpha) == (n,)``.
-    lower_bound : np.array.
-        The lower bounds for each parameter in ``x0``. If the ``i``th
-        parameter in ``x0`` is unbounded below, then ``lower_bound[i]``
-        should be ``-np.inf``.
-        Note ``np.shape(lower_bound) == (n,)``.
-    upper_bound : np.array.
-        The upper bounds for each parameter in ``x0``. If the ``i``th
-        parameter in ``x0`` is unbounded above, then ``upper_bound[i]``
-        should be ``np.inf``.
-        Note ``np.shape(upper_bound) == (n,)``.
-
-    Returns
-    -------
-    res : tuple ``(lmin, lmax)``
-        The bounds for ``l`` such that
-            ``lower_bound[i] <= x0[i] + alpha[i] * l <= upper_bound[i]``
-        for all ``i``.
-
-    """
-    # get nonzero indices of alpha so we don't get any zero division errors.
-    # alpha will not be all zero, since it is called from _linesearch_powell
-    # where we have a check for this.
-    nonzero, = alpha.nonzero()
-    lower_bound, upper_bound = lower_bound[nonzero], upper_bound[nonzero]
-    x0, alpha = x0[nonzero], alpha[nonzero]
-    low = (lower_bound - x0) / alpha
-    high = (upper_bound - x0) / alpha
-
-    # positive and negative indices
-    pos = alpha > 0
-
-    lmin_pos = np.where(pos, low, 0)
-    lmin_neg = np.where(pos, 0, high)
-    lmax_pos = np.where(pos, high, 0)
-    lmax_neg = np.where(pos, 0, low)
-
-    lmin = np.max(lmin_pos + lmin_neg)
-    lmax = np.min(lmax_pos + lmax_neg)
-
-    # if x0 is outside the bounds, then it is possible that there is
-    # no way to get back in the bounds for the parameters being updated
-    # with the current direction alpha.
-    # when this happens, lmax < lmin.
-    # If this is the case, then we can just return (0, 0)
-    return (lmin, lmax) if lmax >= lmin else (0, 0)
-
-
-def _linesearch_powell(func, p, xi, tol=1e-3,
-                       lower_bound=None, upper_bound=None, fval=None):
-    """Line-search algorithm using fminbound.
-
-    Find the minimum of the function ``func(x0 + alpha*direc)``.
-
-    lower_bound : np.array.
-        The lower bounds for each parameter in ``x0``. If the ``i``th
-        parameter in ``x0`` is unbounded below, then ``lower_bound[i]``
-        should be ``-np.inf``.
-        Note ``np.shape(lower_bound) == (n,)``.
-    upper_bound : np.array.
-        The upper bounds for each parameter in ``x0``. If the ``i``th
-        parameter in ``x0`` is unbounded above, then ``upper_bound[i]``
-        should be ``np.inf``.
-        Note ``np.shape(upper_bound) == (n,)``.
-    fval : number.
-        ``fval`` is equal to ``func(p)``, the idea is just to avoid
-        recomputing it so we can limit the ``fevals``.
-
-    """
-    def myfunc(alpha):
-        return func(p + alpha*xi)
-
-    # if xi is zero, then don't optimize
-    if not np.any(xi):
-        return ((fval, p, xi) if fval is not None else (func(p), p, xi))
-    elif lower_bound is None and upper_bound is None:
-        # non-bounded minimization
-        res = _recover_from_bracket_error(_minimize_scalar_brent,
-                                          myfunc, None, tuple(), xtol=tol)
-        alpha_min, fret = res.x, res.fun
-        xi = alpha_min * xi
-        return squeeze(fret), p + xi, xi
-    else:
-        bound = _line_for_search(p, xi, lower_bound, upper_bound)
-        if np.isneginf(bound[0]) and np.isposinf(bound[1]):
-            # equivalent to unbounded
-            return _linesearch_powell(func, p, xi, fval=fval, tol=tol)
-        elif not np.isneginf(bound[0]) and not np.isposinf(bound[1]):
-            # we can use a bounded scalar minimization
-            res = _minimize_scalar_bounded(myfunc, bound, xatol=tol / 100)
-            xi = res.x * xi
-            return squeeze(res.fun), p + xi, xi
-        else:
-            # only bounded on one side. use the tangent function to convert
-            # the infinity bound to a finite bound. The new bounded region
-            # is a subregion of the region bounded by -np.pi/2 and np.pi/2.
-            bound = np.arctan(bound[0]), np.arctan(bound[1])
-            res = _minimize_scalar_bounded(
-                lambda x: myfunc(np.tan(x)),
-                bound,
-                xatol=tol / 100)
-            xi = np.tan(res.x) * xi
-            return squeeze(res.fun), p + xi, xi
-
-
-def fmin_powell(func, x0, args=(), xtol=1e-4, ftol=1e-4, maxiter=None,
-                maxfun=None, full_output=0, disp=1, retall=0, callback=None,
-                direc=None):
-    """
-    Minimize a function using modified Powell's method.
-
-    This method only uses function values, not derivatives.
-
-    Parameters
-    ----------
-    func : callable f(x,*args)
-        Objective function to be minimized.
-    x0 : ndarray
-        Initial guess.
-    args : tuple, optional
-        Extra arguments passed to func.
-    xtol : float, optional
-        Line-search error tolerance.
-    ftol : float, optional
-        Relative error in ``func(xopt)`` acceptable for convergence.
-    maxiter : int, optional
-        Maximum number of iterations to perform.
-    maxfun : int, optional
-        Maximum number of function evaluations to make.
-    full_output : bool, optional
-        If True, ``fopt``, ``xi``, ``direc``, ``iter``, ``funcalls``, and
-        ``warnflag`` are returned.
-    disp : bool, optional
-        If True, print convergence messages.
-    retall : bool, optional
-        If True, return a list of the solution at each iteration.
-    callback : callable, optional
-        An optional user-supplied function, called after each
-        iteration.  Called as ``callback(xk)``, where ``xk`` is the
-        current parameter vector.
-    direc : ndarray, optional
-        Initial fitting step and parameter order set as an (N, N) array, where N
-        is the number of fitting parameters in `x0`. Defaults to step size 1.0
-        fitting all parameters simultaneously (``np.eye((N, N))``). To
-        prevent initial consideration of values in a step or to change initial
-        step size, set to 0 or desired step size in the Jth position in the Mth
-        block, where J is the position in `x0` and M is the desired evaluation
-        step, with steps being evaluated in index order. Step size and ordering
-        will change freely as minimization proceeds.
-
-    Returns
-    -------
-    xopt : ndarray
-        Parameter which minimizes `func`.
-    fopt : number
-        Value of function at minimum: ``fopt = func(xopt)``.
-    direc : ndarray
-        Current direction set.
-    iter : int
-        Number of iterations.
-    funcalls : int
-        Number of function calls made.
-    warnflag : int
-        Integer warning flag:
-            1 : Maximum number of function evaluations.
-            2 : Maximum number of iterations.
-            3 : NaN result encountered.
-            4 : The result is out of the provided bounds.
-    allvecs : list
-        List of solutions at each iteration.
-
-    See also
-    --------
-    minimize: Interface to unconstrained minimization algorithms for
-        multivariate functions. See the 'Powell' method in particular.
-
-    Notes
-    -----
-    Uses a modification of Powell's method to find the minimum of
-    a function of N variables. Powell's method is a conjugate
-    direction method.
-
-    The algorithm has two loops. The outer loop merely iterates over the inner
-    loop. The inner loop minimizes over each current direction in the direction
-    set. At the end of the inner loop, if certain conditions are met, the
-    direction that gave the largest decrease is dropped and replaced with the
-    difference between the current estimated x and the estimated x from the
-    beginning of the inner-loop.
-
-    The technical conditions for replacing the direction of greatest
-    increase amount to checking that
-
-    1. No further gain can be made along the direction of greatest increase
-       from that iteration.
-    2. The direction of greatest increase accounted for a large sufficient
-       fraction of the decrease in the function value from that iteration of
-       the inner loop.
-
-    References
-    ----------
-    Powell M.J.D. (1964) An efficient method for finding the minimum of a
-    function of several variables without calculating derivatives,
-    Computer Journal, 7 (2):155-162.
-
-    Press W., Teukolsky S.A., Vetterling W.T., and Flannery B.P.:
-    Numerical Recipes (any edition), Cambridge University Press
-
-    Examples
-    --------
-    >>> def f(x):
-    ...     return x**2
-
-    >>> from scipy import optimize
-
-    >>> minimum = optimize.fmin_powell(f, -1)
-    Optimization terminated successfully.
-             Current function value: 0.000000
-             Iterations: 2
-             Function evaluations: 16
-    >>> minimum
-    array(0.0)
-
-    """
-    opts = {'xtol': xtol,
-            'ftol': ftol,
-            'maxiter': maxiter,
-            'maxfev': maxfun,
-            'disp': disp,
-            'direc': direc,
-            'return_all': retall}
-
-    callback = _wrap_callback(callback)
-    res = _minimize_powell(func, x0, args, callback=callback, **opts)
-
-    if full_output:
-        retlist = (res['x'], res['fun'], res['direc'], res['nit'],
-                   res['nfev'], res['status'])
-        if retall:
-            retlist += (res['allvecs'], )
-        return retlist
-    else:
-        if retall:
-            return res['x'], res['allvecs']
-        else:
-            return res['x']
-
-
-def _minimize_powell(func, x0, args=(), callback=None, bounds=None,
-                     xtol=1e-4, ftol=1e-4, maxiter=None, maxfev=None,
-                     disp=False, direc=None, return_all=False,
-                     **unknown_options):
-    """
-    Minimization of scalar function of one or more variables using the
-    modified Powell algorithm.
-
-    Parameters
-    ----------
-    fun : callable
-        The objective function to be minimized.
-
-            ``fun(x, *args) -> float``
-
-        where ``x`` is a 1-D array with shape (n,) and ``args``
-        is a tuple of the fixed parameters needed to completely
-        specify the function.
-    x0 : ndarray, shape (n,)
-        Initial guess. Array of real elements of size (n,),
-        where ``n`` is the number of independent variables.
-    args : tuple, optional
-        Extra arguments passed to the objective function and its
-        derivatives (`fun`, `jac` and `hess` functions).
-    method : str or callable, optional
-        The present documentation is specific to ``method='powell'``, but other
-        options are available. See documentation for `scipy.optimize.minimize`.
-    bounds : sequence or `Bounds`, optional
-        Bounds on decision variables. There are two ways to specify the bounds:
-
-            1. Instance of `Bounds` class.
-            2. Sequence of ``(min, max)`` pairs for each element in `x`. None
-               is used to specify no bound.
-
-        If bounds are not provided, then an unbounded line search will be used.
-        If bounds are provided and the initial guess is within the bounds, then
-        every function evaluation throughout the minimization procedure will be
-        within the bounds. If bounds are provided, the initial guess is outside
-        the bounds, and `direc` is full rank (or left to default), then some
-        function evaluations during the first iteration may be outside the
-        bounds, but every function evaluation after the first iteration will be
-        within the bounds. If `direc` is not full rank, then some parameters
-        may not be optimized and the solution is not guaranteed to be within
-        the bounds.
-
-    options : dict, optional
-        A dictionary of solver options. All methods accept the following
-        generic options:
-
-            maxiter : int
-                Maximum number of iterations to perform. Depending on the
-                method each iteration may use several function evaluations.
-            disp : bool
-                Set to True to print convergence messages.
-
-        See method-specific options for ``method='powell'`` below.
-    callback : callable, optional
-        Called after each iteration. The signature is:
-
-            ``callback(xk)``
-
-        where ``xk`` is the current parameter vector.
-
-    Returns
-    -------
-    res : OptimizeResult
-        The optimization result represented as a ``OptimizeResult`` object.
-        Important attributes are: ``x`` the solution array, ``success`` a
-        Boolean flag indicating if the optimizer exited successfully and
-        ``message`` which describes the cause of the termination. See
-        `OptimizeResult` for a description of other attributes.
-
-    Options
-    -------
-    disp : bool
-        Set to True to print convergence messages.
-    xtol : float
-        Relative error in solution `xopt` acceptable for convergence.
-    ftol : float
-        Relative error in ``fun(xopt)`` acceptable for convergence.
-    maxiter, maxfev : int
-        Maximum allowed number of iterations and function evaluations.
-        Will default to ``N*1000``, where ``N`` is the number of
-        variables, if neither `maxiter` or `maxfev` is set. If both
-        `maxiter` and `maxfev` are set, minimization will stop at the
-        first reached.
-    direc : ndarray
-        Initial set of direction vectors for the Powell method.
-    return_all : bool, optional
-        Set to True to return a list of the best solution at each of the
-        iterations.
-    """
-    _check_unknown_options(unknown_options)
-    maxfun = maxfev
-    retall = return_all
-
-    x = asarray(x0).flatten()
-    if retall:
-        allvecs = [x]
-    N = len(x)
-    # If neither are set, then set both to default
-    if maxiter is None and maxfun is None:
-        maxiter = N * 1000
-        maxfun = N * 1000
-    elif maxiter is None:
-        # Convert remaining Nones, to np.inf, unless the other is np.inf, in
-        # which case use the default to avoid unbounded iteration
-        if maxfun == np.inf:
-            maxiter = N * 1000
-        else:
-            maxiter = np.inf
-    elif maxfun is None:
-        if maxiter == np.inf:
-            maxfun = N * 1000
-        else:
-            maxfun = np.inf
-
-    # we need to use a mutable object here that we can update in the
-    # wrapper function
-    fcalls, func = _wrap_scalar_function_maxfun_validation(func, args, maxfun)
-
-    if direc is None:
-        direc = eye(N, dtype=float)
-    else:
-        direc = asarray(direc, dtype=float)
-        if np.linalg.matrix_rank(direc) != direc.shape[0]:
-            warnings.warn("direc input is not full rank, some parameters may "
-                          "not be optimized",
-                          OptimizeWarning, stacklevel=3)
-
-    if bounds is None:
-        # don't make these arrays of all +/- inf. because
-        # _linesearch_powell will do an unnecessary check of all the elements.
-        # just keep them None, _linesearch_powell will not have to check
-        # all the elements.
-        lower_bound, upper_bound = None, None
-    else:
-        # bounds is standardized in _minimize.py.
-        lower_bound, upper_bound = bounds.lb, bounds.ub
-        if np.any(lower_bound > x0) or np.any(x0 > upper_bound):
-            warnings.warn("Initial guess is not within the specified bounds",
-                          OptimizeWarning, stacklevel=3)
-
-    fval = squeeze(func(x))
-    x1 = x.copy()
-    iter = 0
-    while True:
-        try:
-            fx = fval
-            bigind = 0
-            delta = 0.0
-            for i in range(N):
-                direc1 = direc[i]
-                fx2 = fval
-                fval, x, direc1 = _linesearch_powell(func, x, direc1,
-                                                     tol=xtol * 100,
-                                                     lower_bound=lower_bound,
-                                                     upper_bound=upper_bound,
-                                                     fval=fval)
-                if (fx2 - fval) > delta:
-                    delta = fx2 - fval
-                    bigind = i
-            iter += 1
-            if retall:
-                allvecs.append(x)
-            intermediate_result = OptimizeResult(x=x, fun=fval)
-            if _call_callback_maybe_halt(callback, intermediate_result):
-                break
-            bnd = ftol * (np.abs(fx) + np.abs(fval)) + 1e-20
-            if 2.0 * (fx - fval) <= bnd:
-                break
-            if fcalls[0] >= maxfun:
-                break
-            if iter >= maxiter:
-                break
-            if np.isnan(fx) and np.isnan(fval):
-                # Ended up in a nan-region: bail out
-                break
-
-            # Construct the extrapolated point
-            direc1 = x - x1
-            x1 = x.copy()
-            # make sure that we don't go outside the bounds when extrapolating
-            if lower_bound is None and upper_bound is None:
-                lmax = 1
-            else:
-                _, lmax = _line_for_search(x, direc1, lower_bound, upper_bound)
-            x2 = x + min(lmax, 1) * direc1
-            fx2 = squeeze(func(x2))
-
-            if (fx > fx2):
-                t = 2.0*(fx + fx2 - 2.0*fval)
-                temp = (fx - fval - delta)
-                t *= temp*temp
-                temp = fx - fx2
-                t -= delta*temp*temp
-                if t < 0.0:
-                    fval, x, direc1 = _linesearch_powell(
-                        func, x, direc1,
-                        tol=xtol * 100,
-                        lower_bound=lower_bound,
-                        upper_bound=upper_bound,
-                        fval=fval
-                    )
-                    if np.any(direc1):
-                        direc[bigind] = direc[-1]
-                        direc[-1] = direc1
-        except _MaxFuncCallError:
-            break
-
-    warnflag = 0
-    msg = _status_message['success']
-    # out of bounds is more urgent than exceeding function evals or iters,
-    # but I don't want to cause inconsistencies by changing the
-    # established warning flags for maxfev and maxiter, so the out of bounds
-    # warning flag becomes 3, but is checked for first.
-    if bounds and (np.any(lower_bound > x) or np.any(x > upper_bound)):
-        warnflag = 4
-        msg = _status_message['out_of_bounds']
-    elif fcalls[0] >= maxfun:
-        warnflag = 1
-        msg = _status_message['maxfev']
-    elif iter >= maxiter:
-        warnflag = 2
-        msg = _status_message['maxiter']
-    elif np.isnan(fval) or np.isnan(x).any():
-        warnflag = 3
-        msg = _status_message['nan']
-
-    if disp:
-        _print_success_message_or_warn(warnflag, msg, RuntimeWarning)
-        print("         Current function value: %f" % fval)
-        print("         Iterations: %d" % iter)
-        print("         Function evaluations: %d" % fcalls[0])
-
-    result = OptimizeResult(fun=fval, direc=direc, nit=iter, nfev=fcalls[0],
-                            status=warnflag, success=(warnflag == 0),
-                            message=msg, x=x)
-    if retall:
-        result['allvecs'] = allvecs
-    return result
-
-
-def _endprint(x, flag, fval, maxfun, xtol, disp):
-    if flag == 0:
-        if disp > 1:
-            print("\nOptimization terminated successfully;\n"
-                  "The returned value satisfies the termination criteria\n"
-                  "(using xtol = ", xtol, ")")
-        return
-
-    if flag == 1:
-        msg = ("\nMaximum number of function evaluations exceeded --- "
-               "increase maxfun argument.\n")
-    elif flag == 2:
-        msg = "\n{}".format(_status_message['nan'])
-
-    _print_success_message_or_warn(flag, msg)
-    return
-
-
-def brute(func, ranges, args=(), Ns=20, full_output=0, finish=fmin,
-          disp=False, workers=1):
-    """Minimize a function over a given range by brute force.
-
-    Uses the "brute force" method, i.e., computes the function's value
-    at each point of a multidimensional grid of points, to find the global
-    minimum of the function.
-
-    The function is evaluated everywhere in the range with the datatype of the
-    first call to the function, as enforced by the ``vectorize`` NumPy
-    function. The value and type of the function evaluation returned when
-    ``full_output=True`` are affected in addition by the ``finish`` argument
-    (see Notes).
-
-    The brute force approach is inefficient because the number of grid points
-    increases exponentially - the number of grid points to evaluate is
-    ``Ns ** len(x)``. Consequently, even with coarse grid spacing, even
-    moderately sized problems can take a long time to run, and/or run into
-    memory limitations.
-
-    Parameters
-    ----------
-    func : callable
-        The objective function to be minimized. Must be in the
-        form ``f(x, *args)``, where ``x`` is the argument in
-        the form of a 1-D array and ``args`` is a tuple of any
-        additional fixed parameters needed to completely specify
-        the function.
-    ranges : tuple
-        Each component of the `ranges` tuple must be either a
-        "slice object" or a range tuple of the form ``(low, high)``.
-        The program uses these to create the grid of points on which
-        the objective function will be computed. See `Note 2` for
-        more detail.
-    args : tuple, optional
-        Any additional fixed parameters needed to completely specify
-        the function.
-    Ns : int, optional
-        Number of grid points along the axes, if not otherwise
-        specified. See `Note2`.
-    full_output : bool, optional
-        If True, return the evaluation grid and the objective function's
-        values on it.
-    finish : callable, optional
-        An optimization function that is called with the result of brute force
-        minimization as initial guess. `finish` should take `func` and
-        the initial guess as positional arguments, and take `args` as
-        keyword arguments. It may additionally take `full_output`
-        and/or `disp` as keyword arguments. Use None if no "polishing"
-        function is to be used. See Notes for more details.
-    disp : bool, optional
-        Set to True to print convergence messages from the `finish` callable.
-    workers : int or map-like callable, optional
-        If `workers` is an int the grid is subdivided into `workers`
-        sections and evaluated in parallel (uses
-        `multiprocessing.Pool `).
-        Supply `-1` to use all cores available to the Process.
-        Alternatively supply a map-like callable, such as
-        `multiprocessing.Pool.map` for evaluating the grid in parallel.
-        This evaluation is carried out as ``workers(func, iterable)``.
-        Requires that `func` be pickleable.
-
-        .. versionadded:: 1.3.0
-
-    Returns
-    -------
-    x0 : ndarray
-        A 1-D array containing the coordinates of a point at which the
-        objective function had its minimum value. (See `Note 1` for
-        which point is returned.)
-    fval : float
-        Function value at the point `x0`. (Returned when `full_output` is
-        True.)
-    grid : tuple
-        Representation of the evaluation grid. It has the same
-        length as `x0`. (Returned when `full_output` is True.)
-    Jout : ndarray
-        Function values at each point of the evaluation
-        grid, i.e., ``Jout = func(*grid)``. (Returned
-        when `full_output` is True.)
-
-    See Also
-    --------
-    basinhopping, differential_evolution
-
-    Notes
-    -----
-    *Note 1*: The program finds the gridpoint at which the lowest value
-    of the objective function occurs. If `finish` is None, that is the
-    point returned. When the global minimum occurs within (or not very far
-    outside) the grid's boundaries, and the grid is fine enough, that
-    point will be in the neighborhood of the global minimum.
-
-    However, users often employ some other optimization program to
-    "polish" the gridpoint values, i.e., to seek a more precise
-    (local) minimum near `brute's` best gridpoint.
-    The `brute` function's `finish` option provides a convenient way to do
-    that. Any polishing program used must take `brute's` output as its
-    initial guess as a positional argument, and take `brute's` input values
-    for `args` as keyword arguments, otherwise an error will be raised.
-    It may additionally take `full_output` and/or `disp` as keyword arguments.
-
-    `brute` assumes that the `finish` function returns either an
-    `OptimizeResult` object or a tuple in the form:
-    ``(xmin, Jmin, ... , statuscode)``, where ``xmin`` is the minimizing
-    value of the argument, ``Jmin`` is the minimum value of the objective
-    function, "..." may be some other returned values (which are not used
-    by `brute`), and ``statuscode`` is the status code of the `finish` program.
-
-    Note that when `finish` is not None, the values returned are those
-    of the `finish` program, *not* the gridpoint ones. Consequently,
-    while `brute` confines its search to the input grid points,
-    the `finish` program's results usually will not coincide with any
-    gridpoint, and may fall outside the grid's boundary. Thus, if a
-    minimum only needs to be found over the provided grid points, make
-    sure to pass in `finish=None`.
-
-    *Note 2*: The grid of points is a `numpy.mgrid` object.
-    For `brute` the `ranges` and `Ns` inputs have the following effect.
-    Each component of the `ranges` tuple can be either a slice object or a
-    two-tuple giving a range of values, such as (0, 5). If the component is a
-    slice object, `brute` uses it directly. If the component is a two-tuple
-    range, `brute` internally converts it to a slice object that interpolates
-    `Ns` points from its low-value to its high-value, inclusive.
-
-    Examples
-    --------
-    We illustrate the use of `brute` to seek the global minimum of a function
-    of two variables that is given as the sum of a positive-definite
-    quadratic and two deep "Gaussian-shaped" craters. Specifically, define
-    the objective function `f` as the sum of three other functions,
-    ``f = f1 + f2 + f3``. We suppose each of these has a signature
-    ``(z, *params)``, where ``z = (x, y)``,  and ``params`` and the functions
-    are as defined below.
-
-    >>> import numpy as np
-    >>> params = (2, 3, 7, 8, 9, 10, 44, -1, 2, 26, 1, -2, 0.5)
-    >>> def f1(z, *params):
-    ...     x, y = z
-    ...     a, b, c, d, e, f, g, h, i, j, k, l, scale = params
-    ...     return (a * x**2 + b * x * y + c * y**2 + d*x + e*y + f)
-
-    >>> def f2(z, *params):
-    ...     x, y = z
-    ...     a, b, c, d, e, f, g, h, i, j, k, l, scale = params
-    ...     return (-g*np.exp(-((x-h)**2 + (y-i)**2) / scale))
-
-    >>> def f3(z, *params):
-    ...     x, y = z
-    ...     a, b, c, d, e, f, g, h, i, j, k, l, scale = params
-    ...     return (-j*np.exp(-((x-k)**2 + (y-l)**2) / scale))
-
-    >>> def f(z, *params):
-    ...     return f1(z, *params) + f2(z, *params) + f3(z, *params)
-
-    Thus, the objective function may have local minima near the minimum
-    of each of the three functions of which it is composed. To
-    use `fmin` to polish its gridpoint result, we may then continue as
-    follows:
-
-    >>> rranges = (slice(-4, 4, 0.25), slice(-4, 4, 0.25))
-    >>> from scipy import optimize
-    >>> resbrute = optimize.brute(f, rranges, args=params, full_output=True,
-    ...                           finish=optimize.fmin)
-    >>> resbrute[0]  # global minimum
-    array([-1.05665192,  1.80834843])
-    >>> resbrute[1]  # function value at global minimum
-    -3.4085818767
-
-    Note that if `finish` had been set to None, we would have gotten the
-    gridpoint [-1.0 1.75] where the rounded function value is -2.892.
-
-    """
-    N = len(ranges)
-    if N > 40:
-        raise ValueError("Brute Force not possible with more "
-                         "than 40 variables.")
-    lrange = list(ranges)
-    for k in range(N):
-        if not isinstance(lrange[k], slice):
-            if len(lrange[k]) < 3:
-                lrange[k] = tuple(lrange[k]) + (complex(Ns),)
-            lrange[k] = slice(*lrange[k])
-    if (N == 1):
-        lrange = lrange[0]
-
-    grid = np.mgrid[lrange]
-
-    # obtain an array of parameters that is iterable by a map-like callable
-    inpt_shape = grid.shape
-    if (N > 1):
-        grid = np.reshape(grid, (inpt_shape[0], np.prod(inpt_shape[1:]))).T
-
-    if not np.iterable(args):
-        args = (args,)
-
-    wrapped_func = _Brute_Wrapper(func, args)
-
-    # iterate over input arrays, possibly in parallel
-    with MapWrapper(pool=workers) as mapper:
-        Jout = np.array(list(mapper(wrapped_func, grid)))
-        if (N == 1):
-            grid = (grid,)
-            Jout = np.squeeze(Jout)
-        elif (N > 1):
-            Jout = np.reshape(Jout, inpt_shape[1:])
-            grid = np.reshape(grid.T, inpt_shape)
-
-    Nshape = shape(Jout)
-
-    indx = argmin(Jout.ravel(), axis=-1)
-    Nindx = np.empty(N, int)
-    xmin = np.empty(N, float)
-    for k in range(N - 1, -1, -1):
-        thisN = Nshape[k]
-        Nindx[k] = indx % Nshape[k]
-        indx = indx // thisN
-    for k in range(N):
-        xmin[k] = grid[k][tuple(Nindx)]
-
-    Jmin = Jout[tuple(Nindx)]
-    if (N == 1):
-        grid = grid[0]
-        xmin = xmin[0]
-
-    if callable(finish):
-        # set up kwargs for `finish` function
-        finish_args = _getfullargspec(finish).args
-        finish_kwargs = dict()
-        if 'full_output' in finish_args:
-            finish_kwargs['full_output'] = 1
-        if 'disp' in finish_args:
-            finish_kwargs['disp'] = disp
-        elif 'options' in finish_args:
-            # pass 'disp' as `options`
-            # (e.g., if `finish` is `minimize`)
-            finish_kwargs['options'] = {'disp': disp}
-
-        # run minimizer
-        res = finish(func, xmin, args=args, **finish_kwargs)
-
-        if isinstance(res, OptimizeResult):
-            xmin = res.x
-            Jmin = res.fun
-            success = res.success
-        else:
-            xmin = res[0]
-            Jmin = res[1]
-            success = res[-1] == 0
-        if not success:
-            if disp:
-                warnings.warn("Either final optimization did not succeed or `finish` "
-                              "does not return `statuscode` as its last argument.",
-                              RuntimeWarning, stacklevel=2)
-
-    if full_output:
-        return xmin, Jmin, grid, Jout
-    else:
-        return xmin
-
-
-class _Brute_Wrapper:
-    """
-    Object to wrap user cost function for optimize.brute, allowing picklability
-    """
-
-    def __init__(self, f, args):
-        self.f = f
-        self.args = [] if args is None else args
-
-    def __call__(self, x):
-        # flatten needed for one dimensional case.
-        return self.f(np.asarray(x).flatten(), *self.args)
-
-
-def show_options(solver=None, method=None, disp=True):
-    """
-    Show documentation for additional options of optimization solvers.
-
-    These are method-specific options that can be supplied through the
-    ``options`` dict.
-
-    Parameters
-    ----------
-    solver : str
-        Type of optimization solver. One of 'minimize', 'minimize_scalar',
-        'root', 'root_scalar', 'linprog', or 'quadratic_assignment'.
-    method : str, optional
-        If not given, shows all methods of the specified solver. Otherwise,
-        show only the options for the specified method. Valid values
-        corresponds to methods' names of respective solver (e.g., 'BFGS' for
-        'minimize').
-    disp : bool, optional
-        Whether to print the result rather than returning it.
-
-    Returns
-    -------
-    text
-        Either None (for disp=True) or the text string (disp=False)
-
-    Notes
-    -----
-    The solver-specific methods are:
-
-    `scipy.optimize.minimize`
-
-    - :ref:`Nelder-Mead `
-    - :ref:`Powell      `
-    - :ref:`CG          `
-    - :ref:`BFGS        `
-    - :ref:`Newton-CG   `
-    - :ref:`L-BFGS-B    `
-    - :ref:`TNC         `
-    - :ref:`COBYLA      `
-    - :ref:`COBYQA      `
-    - :ref:`SLSQP       `
-    - :ref:`dogleg      `
-    - :ref:`trust-ncg   `
-
-    `scipy.optimize.root`
-
-    - :ref:`hybr              `
-    - :ref:`lm                `
-    - :ref:`broyden1          `
-    - :ref:`broyden2          `
-    - :ref:`anderson          `
-    - :ref:`linearmixing      `
-    - :ref:`diagbroyden       `
-    - :ref:`excitingmixing    `
-    - :ref:`krylov            `
-    - :ref:`df-sane           `
-
-    `scipy.optimize.minimize_scalar`
-
-    - :ref:`brent       `
-    - :ref:`golden      `
-    - :ref:`bounded     `
-
-    `scipy.optimize.root_scalar`
-
-    - :ref:`bisect  `
-    - :ref:`brentq  `
-    - :ref:`brenth  `
-    - :ref:`ridder  `
-    - :ref:`toms748 `
-    - :ref:`newton  `
-    - :ref:`secant  `
-    - :ref:`halley  `
-
-    `scipy.optimize.linprog`
-
-    - :ref:`simplex           `
-    - :ref:`interior-point    `
-    - :ref:`revised simplex   `
-    - :ref:`highs             `
-    - :ref:`highs-ds          `
-    - :ref:`highs-ipm         `
-
-    `scipy.optimize.quadratic_assignment`
-
-    - :ref:`faq             `
-    - :ref:`2opt            `
-
-    Examples
-    --------
-    We can print documentations of a solver in stdout:
-
-    >>> from scipy.optimize import show_options
-    >>> show_options(solver="minimize")
-    ...
-
-    Specifying a method is possible:
-
-    >>> show_options(solver="minimize", method="Nelder-Mead")
-    ...
-
-    We can also get the documentations as a string:
-
-    >>> show_options(solver="minimize", method="Nelder-Mead", disp=False)
-    Minimization of scalar function of one or more variables using the ...
-
-    """
-    import textwrap
-
-    doc_routines = {
-        'minimize': (
-            ('bfgs', 'scipy.optimize._optimize._minimize_bfgs'),
-            ('cg', 'scipy.optimize._optimize._minimize_cg'),
-            ('cobyla', 'scipy.optimize._cobyla_py._minimize_cobyla'),
-            ('cobyqa', 'scipy.optimize._cobyqa_py._minimize_cobyqa'),
-            ('dogleg', 'scipy.optimize._trustregion_dogleg._minimize_dogleg'),
-            ('l-bfgs-b', 'scipy.optimize._lbfgsb_py._minimize_lbfgsb'),
-            ('nelder-mead', 'scipy.optimize._optimize._minimize_neldermead'),
-            ('newton-cg', 'scipy.optimize._optimize._minimize_newtoncg'),
-            ('powell', 'scipy.optimize._optimize._minimize_powell'),
-            ('slsqp', 'scipy.optimize._slsqp_py._minimize_slsqp'),
-            ('tnc', 'scipy.optimize._tnc._minimize_tnc'),
-            ('trust-ncg',
-             'scipy.optimize._trustregion_ncg._minimize_trust_ncg'),
-            ('trust-constr',
-             'scipy.optimize._trustregion_constr.'
-             '_minimize_trustregion_constr'),
-            ('trust-exact',
-             'scipy.optimize._trustregion_exact._minimize_trustregion_exact'),
-            ('trust-krylov',
-             'scipy.optimize._trustregion_krylov._minimize_trust_krylov'),
-        ),
-        'root': (
-            ('hybr', 'scipy.optimize._minpack_py._root_hybr'),
-            ('lm', 'scipy.optimize._root._root_leastsq'),
-            ('broyden1', 'scipy.optimize._root._root_broyden1_doc'),
-            ('broyden2', 'scipy.optimize._root._root_broyden2_doc'),
-            ('anderson', 'scipy.optimize._root._root_anderson_doc'),
-            ('diagbroyden', 'scipy.optimize._root._root_diagbroyden_doc'),
-            ('excitingmixing', 'scipy.optimize._root._root_excitingmixing_doc'),
-            ('linearmixing', 'scipy.optimize._root._root_linearmixing_doc'),
-            ('krylov', 'scipy.optimize._root._root_krylov_doc'),
-            ('df-sane', 'scipy.optimize._spectral._root_df_sane'),
-        ),
-        'root_scalar': (
-            ('bisect', 'scipy.optimize._root_scalar._root_scalar_bisect_doc'),
-            ('brentq', 'scipy.optimize._root_scalar._root_scalar_brentq_doc'),
-            ('brenth', 'scipy.optimize._root_scalar._root_scalar_brenth_doc'),
-            ('ridder', 'scipy.optimize._root_scalar._root_scalar_ridder_doc'),
-            ('toms748', 'scipy.optimize._root_scalar._root_scalar_toms748_doc'),
-            ('secant', 'scipy.optimize._root_scalar._root_scalar_secant_doc'),
-            ('newton', 'scipy.optimize._root_scalar._root_scalar_newton_doc'),
-            ('halley', 'scipy.optimize._root_scalar._root_scalar_halley_doc'),
-        ),
-        'linprog': (
-            ('simplex', 'scipy.optimize._linprog._linprog_simplex_doc'),
-            ('interior-point', 'scipy.optimize._linprog._linprog_ip_doc'),
-            ('revised simplex', 'scipy.optimize._linprog._linprog_rs_doc'),
-            ('highs-ipm', 'scipy.optimize._linprog._linprog_highs_ipm_doc'),
-            ('highs-ds', 'scipy.optimize._linprog._linprog_highs_ds_doc'),
-            ('highs', 'scipy.optimize._linprog._linprog_highs_doc'),
-        ),
-        'quadratic_assignment': (
-            ('faq', 'scipy.optimize._qap._quadratic_assignment_faq'),
-            ('2opt', 'scipy.optimize._qap._quadratic_assignment_2opt'),
-        ),
-        'minimize_scalar': (
-            ('brent', 'scipy.optimize._optimize._minimize_scalar_brent'),
-            ('bounded', 'scipy.optimize._optimize._minimize_scalar_bounded'),
-            ('golden', 'scipy.optimize._optimize._minimize_scalar_golden'),
-        ),
-    }
-
-    if solver is None:
-        text = ["\n\n\n========\n", "minimize\n", "========\n"]
-        text.append(show_options('minimize', disp=False))
-        text.extend(["\n\n===============\n", "minimize_scalar\n",
-                     "===============\n"])
-        text.append(show_options('minimize_scalar', disp=False))
-        text.extend(["\n\n\n====\n", "root\n",
-                     "====\n"])
-        text.append(show_options('root', disp=False))
-        text.extend(['\n\n\n=======\n', 'linprog\n',
-                     '=======\n'])
-        text.append(show_options('linprog', disp=False))
-        text = "".join(text)
-    else:
-        solver = solver.lower()
-        if solver not in doc_routines:
-            raise ValueError(f'Unknown solver {solver!r}')
-
-        if method is None:
-            text = []
-            for name, _ in doc_routines[solver]:
-                text.extend(["\n\n" + name, "\n" + "="*len(name) + "\n\n"])
-                text.append(show_options(solver, name, disp=False))
-            text = "".join(text)
-        else:
-            method = method.lower()
-            methods = dict(doc_routines[solver])
-            if method not in methods:
-                raise ValueError(f"Unknown method {method!r}")
-            name = methods[method]
-
-            # Import function object
-            parts = name.split('.')
-            mod_name = ".".join(parts[:-1])
-            __import__(mod_name)
-            obj = getattr(sys.modules[mod_name], parts[-1])
-
-            # Get doc
-            doc = obj.__doc__
-            if doc is not None:
-                text = textwrap.dedent(doc).strip()
-            else:
-                text = ""
-
-    if disp:
-        print(text)
-        return
-    else:
-        return text
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_qap.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_qap.py
deleted file mode 100644
index 094119c0ad6c1e4bba72978390c7273f10ac7fff..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_qap.py
+++ /dev/null
@@ -1,731 +0,0 @@
-import numpy as np
-import operator
-from . import (linear_sum_assignment, OptimizeResult)
-from ._optimize import _check_unknown_options
-
-from scipy._lib._util import check_random_state
-import itertools
-
-QUADRATIC_ASSIGNMENT_METHODS = ['faq', '2opt']
-
-def quadratic_assignment(A, B, method="faq", options=None):
-    r"""
-    Approximates solution to the quadratic assignment problem and
-    the graph matching problem.
-
-    Quadratic assignment solves problems of the following form:
-
-    .. math::
-
-        \min_P & \ {\ \text{trace}(A^T P B P^T)}\\
-        \mbox{s.t. } & {P \ \epsilon \ \mathcal{P}}\\
-
-    where :math:`\mathcal{P}` is the set of all permutation matrices,
-    and :math:`A` and :math:`B` are square matrices.
-
-    Graph matching tries to *maximize* the same objective function.
-    This algorithm can be thought of as finding the alignment of the
-    nodes of two graphs that minimizes the number of induced edge
-    disagreements, or, in the case of weighted graphs, the sum of squared
-    edge weight differences.
-
-    Note that the quadratic assignment problem is NP-hard. The results given
-    here are approximations and are not guaranteed to be optimal.
-
-
-    Parameters
-    ----------
-    A : 2-D array, square
-        The square matrix :math:`A` in the objective function above.
-
-    B : 2-D array, square
-        The square matrix :math:`B` in the objective function above.
-
-    method :  str in {'faq', '2opt'} (default: 'faq')
-        The algorithm used to solve the problem.
-        :ref:`'faq' ` (default) and
-        :ref:`'2opt' ` are available.
-
-    options : dict, optional
-        A dictionary of solver options. All solvers support the following:
-
-        maximize : bool (default: False)
-            Maximizes the objective function if ``True``.
-
-        partial_match : 2-D array of integers, optional (default: None)
-            Fixes part of the matching. Also known as a "seed" [2]_.
-
-            Each row of `partial_match` specifies a pair of matched nodes:
-            node ``partial_match[i, 0]`` of `A` is matched to node
-            ``partial_match[i, 1]`` of `B`. The array has shape ``(m, 2)``,
-            where ``m`` is not greater than the number of nodes, :math:`n`.
-
-        rng : {None, int, `numpy.random.Generator`,
-               `numpy.random.RandomState`}, optional
-
-            If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-            singleton is used.
-            If `seed` is an int, a new ``RandomState`` instance is used,
-            seeded with `seed`.
-            If `seed` is already a ``Generator`` or ``RandomState`` instance then
-            that instance is used.
-
-        For method-specific options, see
-        :func:`show_options('quadratic_assignment') `.
-
-    Returns
-    -------
-    res : OptimizeResult
-        `OptimizeResult` containing the following fields.
-
-        col_ind : 1-D array
-            Column indices corresponding to the best permutation found of the
-            nodes of `B`.
-        fun : float
-            The objective value of the solution.
-        nit : int
-            The number of iterations performed during optimization.
-
-    Notes
-    -----
-    The default method :ref:`'faq' ` uses the Fast
-    Approximate QAP algorithm [1]_; it typically offers the best combination of
-    speed and accuracy.
-    Method :ref:`'2opt' ` can be computationally expensive,
-    but may be a useful alternative, or it can be used to refine the solution
-    returned by another method.
-
-    References
-    ----------
-    .. [1] J.T. Vogelstein, J.M. Conroy, V. Lyzinski, L.J. Podrazik,
-           S.G. Kratzer, E.T. Harley, D.E. Fishkind, R.J. Vogelstein, and
-           C.E. Priebe, "Fast approximate quadratic programming for graph
-           matching," PLOS one, vol. 10, no. 4, p. e0121002, 2015,
-           :doi:`10.1371/journal.pone.0121002`
-
-    .. [2] D. Fishkind, S. Adali, H. Patsolic, L. Meng, D. Singh, V. Lyzinski,
-           C. Priebe, "Seeded graph matching", Pattern Recognit. 87 (2019):
-           203-215, :doi:`10.1016/j.patcog.2018.09.014`
-
-    .. [3] "2-opt," Wikipedia.
-           https://en.wikipedia.org/wiki/2-opt
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.optimize import quadratic_assignment
-    >>> A = np.array([[0, 80, 150, 170], [80, 0, 130, 100],
-    ...               [150, 130, 0, 120], [170, 100, 120, 0]])
-    >>> B = np.array([[0, 5, 2, 7], [0, 0, 3, 8],
-    ...               [0, 0, 0, 3], [0, 0, 0, 0]])
-    >>> res = quadratic_assignment(A, B)
-    >>> print(res)
-         fun: 3260
-     col_ind: [0 3 2 1]
-         nit: 9
-
-    The see the relationship between the returned ``col_ind`` and ``fun``,
-    use ``col_ind`` to form the best permutation matrix found, then evaluate
-    the objective function :math:`f(P) = trace(A^T P B P^T )`.
-
-    >>> perm = res['col_ind']
-    >>> P = np.eye(len(A), dtype=int)[perm]
-    >>> fun = np.trace(A.T @ P @ B @ P.T)
-    >>> print(fun)
-    3260
-
-    Alternatively, to avoid constructing the permutation matrix explicitly,
-    directly permute the rows and columns of the distance matrix.
-
-    >>> fun = np.trace(A.T @ B[perm][:, perm])
-    >>> print(fun)
-    3260
-
-    Although not guaranteed in general, ``quadratic_assignment`` happens to
-    have found the globally optimal solution.
-
-    >>> from itertools import permutations
-    >>> perm_opt, fun_opt = None, np.inf
-    >>> for perm in permutations([0, 1, 2, 3]):
-    ...     perm = np.array(perm)
-    ...     fun = np.trace(A.T @ B[perm][:, perm])
-    ...     if fun < fun_opt:
-    ...         fun_opt, perm_opt = fun, perm
-    >>> print(np.array_equal(perm_opt, res['col_ind']))
-    True
-
-    Here is an example for which the default method,
-    :ref:`'faq' `, does not find the global optimum.
-
-    >>> A = np.array([[0, 5, 8, 6], [5, 0, 5, 1],
-    ...               [8, 5, 0, 2], [6, 1, 2, 0]])
-    >>> B = np.array([[0, 1, 8, 4], [1, 0, 5, 2],
-    ...               [8, 5, 0, 5], [4, 2, 5, 0]])
-    >>> res = quadratic_assignment(A, B)
-    >>> print(res)
-         fun: 178
-     col_ind: [1 0 3 2]
-         nit: 13
-
-    If accuracy is important, consider using  :ref:`'2opt' `
-    to refine the solution.
-
-    >>> guess = np.array([np.arange(len(A)), res.col_ind]).T
-    >>> res = quadratic_assignment(A, B, method="2opt",
-    ...                            options = {'partial_guess': guess})
-    >>> print(res)
-         fun: 176
-     col_ind: [1 2 3 0]
-         nit: 17
-
-    """
-
-    if options is None:
-        options = {}
-
-    method = method.lower()
-    methods = {"faq": _quadratic_assignment_faq,
-               "2opt": _quadratic_assignment_2opt}
-    if method not in methods:
-        raise ValueError(f"method {method} must be in {methods}.")
-    res = methods[method](A, B, **options)
-    return res
-
-
-def _calc_score(A, B, perm):
-    # equivalent to objective function but avoids matmul
-    return np.sum(A * B[perm][:, perm])
-
-
-def _common_input_validation(A, B, partial_match):
-    A = np.atleast_2d(A)
-    B = np.atleast_2d(B)
-
-    if partial_match is None:
-        partial_match = np.array([[], []]).T
-    partial_match = np.atleast_2d(partial_match).astype(int)
-
-    msg = None
-    if A.shape[0] != A.shape[1]:
-        msg = "`A` must be square"
-    elif B.shape[0] != B.shape[1]:
-        msg = "`B` must be square"
-    elif A.ndim != 2 or B.ndim != 2:
-        msg = "`A` and `B` must have exactly two dimensions"
-    elif A.shape != B.shape:
-        msg = "`A` and `B` matrices must be of equal size"
-    elif partial_match.shape[0] > A.shape[0]:
-        msg = "`partial_match` can have only as many seeds as there are nodes"
-    elif partial_match.shape[1] != 2:
-        msg = "`partial_match` must have two columns"
-    elif partial_match.ndim != 2:
-        msg = "`partial_match` must have exactly two dimensions"
-    elif (partial_match < 0).any():
-        msg = "`partial_match` must contain only positive indices"
-    elif (partial_match >= len(A)).any():
-        msg = "`partial_match` entries must be less than number of nodes"
-    elif (not len(set(partial_match[:, 0])) == len(partial_match[:, 0]) or
-          not len(set(partial_match[:, 1])) == len(partial_match[:, 1])):
-        msg = "`partial_match` column entries must be unique"
-
-    if msg is not None:
-        raise ValueError(msg)
-
-    return A, B, partial_match
-
-
-def _quadratic_assignment_faq(A, B,
-                              maximize=False, partial_match=None, rng=None,
-                              P0="barycenter", shuffle_input=False, maxiter=30,
-                              tol=0.03, **unknown_options):
-    r"""Solve the quadratic assignment problem (approximately).
-
-    This function solves the Quadratic Assignment Problem (QAP) and the
-    Graph Matching Problem (GMP) using the Fast Approximate QAP Algorithm
-    (FAQ) [1]_.
-
-    Quadratic assignment solves problems of the following form:
-
-    .. math::
-
-        \min_P & \ {\ \text{trace}(A^T P B P^T)}\\
-        \mbox{s.t. } & {P \ \epsilon \ \mathcal{P}}\\
-
-    where :math:`\mathcal{P}` is the set of all permutation matrices,
-    and :math:`A` and :math:`B` are square matrices.
-
-    Graph matching tries to *maximize* the same objective function.
-    This algorithm can be thought of as finding the alignment of the
-    nodes of two graphs that minimizes the number of induced edge
-    disagreements, or, in the case of weighted graphs, the sum of squared
-    edge weight differences.
-
-    Note that the quadratic assignment problem is NP-hard. The results given
-    here are approximations and are not guaranteed to be optimal.
-
-    Parameters
-    ----------
-    A : 2-D array, square
-        The square matrix :math:`A` in the objective function above.
-    B : 2-D array, square
-        The square matrix :math:`B` in the objective function above.
-    method :  str in {'faq', '2opt'} (default: 'faq')
-        The algorithm used to solve the problem. This is the method-specific
-        documentation for 'faq'.
-        :ref:`'2opt' ` is also available.
-
-    Options
-    -------
-    maximize : bool (default: False)
-        Maximizes the objective function if ``True``.
-    partial_match : 2-D array of integers, optional (default: None)
-        Fixes part of the matching. Also known as a "seed" [2]_.
-
-        Each row of `partial_match` specifies a pair of matched nodes:
-        node ``partial_match[i, 0]`` of `A` is matched to node
-        ``partial_match[i, 1]`` of `B`. The array has shape ``(m, 2)``, where
-        ``m`` is not greater than the number of nodes, :math:`n`.
-
-    rng : {None, int, `numpy.random.Generator`,
-           `numpy.random.RandomState`}, optional
-
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-    P0 : 2-D array, "barycenter", or "randomized" (default: "barycenter")
-        Initial position. Must be a doubly-stochastic matrix [3]_.
-
-        If the initial position is an array, it must be a doubly stochastic
-        matrix of size :math:`m' \times m'` where :math:`m' = n - m`.
-
-        If ``"barycenter"`` (default), the initial position is the barycenter
-        of the Birkhoff polytope (the space of doubly stochastic matrices).
-        This is a :math:`m' \times m'` matrix with all entries equal to
-        :math:`1 / m'`.
-
-        If ``"randomized"`` the initial search position is
-        :math:`P_0 = (J + K) / 2`, where :math:`J` is the barycenter and
-        :math:`K` is a random doubly stochastic matrix.
-    shuffle_input : bool (default: False)
-        Set to `True` to resolve degenerate gradients randomly. For
-        non-degenerate gradients this option has no effect.
-    maxiter : int, positive (default: 30)
-        Integer specifying the max number of Frank-Wolfe iterations performed.
-    tol : float (default: 0.03)
-        Tolerance for termination. Frank-Wolfe iteration terminates when
-        :math:`\frac{||P_{i}-P_{i+1}||_F}{\sqrt{m')}} \leq tol`,
-        where :math:`i` is the iteration number.
-
-    Returns
-    -------
-    res : OptimizeResult
-        `OptimizeResult` containing the following fields.
-
-        col_ind : 1-D array
-            Column indices corresponding to the best permutation found of the
-            nodes of `B`.
-        fun : float
-            The objective value of the solution.
-        nit : int
-            The number of Frank-Wolfe iterations performed.
-
-    Notes
-    -----
-    The algorithm may be sensitive to the initial permutation matrix (or
-    search "position") due to the possibility of several local minima
-    within the feasible region. A barycenter initialization is more likely to
-    result in a better solution than a single random initialization. However,
-    calling ``quadratic_assignment`` several times with different random
-    initializations may result in a better optimum at the cost of longer
-    total execution time.
-
-    Examples
-    --------
-    As mentioned above, a barycenter initialization often results in a better
-    solution than a single random initialization.
-
-    >>> from numpy.random import default_rng
-    >>> rng = default_rng()
-    >>> n = 15
-    >>> A = rng.random((n, n))
-    >>> B = rng.random((n, n))
-    >>> res = quadratic_assignment(A, B)  # FAQ is default method
-    >>> print(res.fun)
-    46.871483385480545  # may vary
-
-    >>> options = {"P0": "randomized"}  # use randomized initialization
-    >>> res = quadratic_assignment(A, B, options=options)
-    >>> print(res.fun)
-    47.224831071310625 # may vary
-
-    However, consider running from several randomized initializations and
-    keeping the best result.
-
-    >>> res = min([quadratic_assignment(A, B, options=options)
-    ...            for i in range(30)], key=lambda x: x.fun)
-    >>> print(res.fun)
-    46.671852533681516 # may vary
-
-    The '2-opt' method can be used to further refine the results.
-
-    >>> options = {"partial_guess": np.array([np.arange(n), res.col_ind]).T}
-    >>> res = quadratic_assignment(A, B, method="2opt", options=options)
-    >>> print(res.fun)
-    46.47160735721583 # may vary
-
-    References
-    ----------
-    .. [1] J.T. Vogelstein, J.M. Conroy, V. Lyzinski, L.J. Podrazik,
-           S.G. Kratzer, E.T. Harley, D.E. Fishkind, R.J. Vogelstein, and
-           C.E. Priebe, "Fast approximate quadratic programming for graph
-           matching," PLOS one, vol. 10, no. 4, p. e0121002, 2015,
-           :doi:`10.1371/journal.pone.0121002`
-
-    .. [2] D. Fishkind, S. Adali, H. Patsolic, L. Meng, D. Singh, V. Lyzinski,
-           C. Priebe, "Seeded graph matching", Pattern Recognit. 87 (2019):
-           203-215, :doi:`10.1016/j.patcog.2018.09.014`
-
-    .. [3] "Doubly stochastic Matrix," Wikipedia.
-           https://en.wikipedia.org/wiki/Doubly_stochastic_matrix
-
-    """
-
-    _check_unknown_options(unknown_options)
-
-    maxiter = operator.index(maxiter)
-
-    # ValueError check
-    A, B, partial_match = _common_input_validation(A, B, partial_match)
-
-    msg = None
-    if isinstance(P0, str) and P0 not in {'barycenter', 'randomized'}:
-        msg = "Invalid 'P0' parameter string"
-    elif maxiter <= 0:
-        msg = "'maxiter' must be a positive integer"
-    elif tol <= 0:
-        msg = "'tol' must be a positive float"
-    if msg is not None:
-        raise ValueError(msg)
-
-    rng = check_random_state(rng)
-    n = len(A)  # number of vertices in graphs
-    n_seeds = len(partial_match)  # number of seeds
-    n_unseed = n - n_seeds
-
-    # [1] Algorithm 1 Line 1 - choose initialization
-    if not isinstance(P0, str):
-        P0 = np.atleast_2d(P0)
-        if P0.shape != (n_unseed, n_unseed):
-            msg = "`P0` matrix must have shape m' x m', where m'=n-m"
-        elif ((P0 < 0).any() or not np.allclose(np.sum(P0, axis=0), 1)
-              or not np.allclose(np.sum(P0, axis=1), 1)):
-            msg = "`P0` matrix must be doubly stochastic"
-        if msg is not None:
-            raise ValueError(msg)
-    elif P0 == 'barycenter':
-        P0 = np.ones((n_unseed, n_unseed)) / n_unseed
-    elif P0 == 'randomized':
-        J = np.ones((n_unseed, n_unseed)) / n_unseed
-        # generate a nxn matrix where each entry is a random number [0, 1]
-        # would use rand, but Generators don't have it
-        # would use random, but old mtrand.RandomStates don't have it
-        K = _doubly_stochastic(rng.uniform(size=(n_unseed, n_unseed)))
-        P0 = (J + K) / 2
-
-    # check trivial cases
-    if n == 0 or n_seeds == n:
-        score = _calc_score(A, B, partial_match[:, 1])
-        res = {"col_ind": partial_match[:, 1], "fun": score, "nit": 0}
-        return OptimizeResult(res)
-
-    obj_func_scalar = 1
-    if maximize:
-        obj_func_scalar = -1
-
-    nonseed_B = np.setdiff1d(range(n), partial_match[:, 1])
-    if shuffle_input:
-        nonseed_B = rng.permutation(nonseed_B)
-
-    nonseed_A = np.setdiff1d(range(n), partial_match[:, 0])
-    perm_A = np.concatenate([partial_match[:, 0], nonseed_A])
-    perm_B = np.concatenate([partial_match[:, 1], nonseed_B])
-
-    # definitions according to Seeded Graph Matching [2].
-    A11, A12, A21, A22 = _split_matrix(A[perm_A][:, perm_A], n_seeds)
-    B11, B12, B21, B22 = _split_matrix(B[perm_B][:, perm_B], n_seeds)
-    const_sum = A21 @ B21.T + A12.T @ B12
-
-    P = P0
-    # [1] Algorithm 1 Line 2 - loop while stopping criteria not met
-    for n_iter in range(1, maxiter+1):
-        # [1] Algorithm 1 Line 3 - compute the gradient of f(P) = -tr(APB^tP^t)
-        grad_fp = (const_sum + A22 @ P @ B22.T + A22.T @ P @ B22)
-        # [1] Algorithm 1 Line 4 - get direction Q by solving Eq. 8
-        _, cols = linear_sum_assignment(grad_fp, maximize=maximize)
-        Q = np.eye(n_unseed)[cols]
-
-        # [1] Algorithm 1 Line 5 - compute the step size
-        # Noting that e.g. trace(Ax) = trace(A)*x, expand and re-collect
-        # terms as ax**2 + bx + c. c does not affect location of minimum
-        # and can be ignored. Also, note that trace(A@B) = (A.T*B).sum();
-        # apply where possible for efficiency.
-        R = P - Q
-        b21 = ((R.T @ A21) * B21).sum()
-        b12 = ((R.T @ A12.T) * B12.T).sum()
-        AR22 = A22.T @ R
-        BR22 = B22 @ R.T
-        b22a = (AR22 * B22.T[cols]).sum()
-        b22b = (A22 * BR22[cols]).sum()
-        a = (AR22.T * BR22).sum()
-        b = b21 + b12 + b22a + b22b
-        # critical point of ax^2 + bx + c is at x = -d/(2*e)
-        # if a * obj_func_scalar > 0, it is a minimum
-        # if minimum is not in [0, 1], only endpoints need to be considered
-        if a*obj_func_scalar > 0 and 0 <= -b/(2*a) <= 1:
-            alpha = -b/(2*a)
-        else:
-            alpha = np.argmin([0, (b + a)*obj_func_scalar])
-
-        # [1] Algorithm 1 Line 6 - Update P
-        P_i1 = alpha * P + (1 - alpha) * Q
-        if np.linalg.norm(P - P_i1) / np.sqrt(n_unseed) < tol:
-            P = P_i1
-            break
-        P = P_i1
-    # [1] Algorithm 1 Line 7 - end main loop
-
-    # [1] Algorithm 1 Line 8 - project onto the set of permutation matrices
-    _, col = linear_sum_assignment(P, maximize=True)
-    perm = np.concatenate((np.arange(n_seeds), col + n_seeds))
-
-    unshuffled_perm = np.zeros(n, dtype=int)
-    unshuffled_perm[perm_A] = perm_B[perm]
-
-    score = _calc_score(A, B, unshuffled_perm)
-    res = {"col_ind": unshuffled_perm, "fun": score, "nit": n_iter}
-    return OptimizeResult(res)
-
-
-def _split_matrix(X, n):
-    # definitions according to Seeded Graph Matching [2].
-    upper, lower = X[:n], X[n:]
-    return upper[:, :n], upper[:, n:], lower[:, :n], lower[:, n:]
-
-
-def _doubly_stochastic(P, tol=1e-3):
-    # Adapted from @btaba implementation
-    # https://github.com/btaba/sinkhorn_knopp
-    # of Sinkhorn-Knopp algorithm
-    # https://projecteuclid.org/euclid.pjm/1102992505
-
-    max_iter = 1000
-    c = 1 / P.sum(axis=0)
-    r = 1 / (P @ c)
-    P_eps = P
-
-    for it in range(max_iter):
-        if ((np.abs(P_eps.sum(axis=1) - 1) < tol).all() and
-                (np.abs(P_eps.sum(axis=0) - 1) < tol).all()):
-            # All column/row sums ~= 1 within threshold
-            break
-
-        c = 1 / (r @ P)
-        r = 1 / (P @ c)
-        P_eps = r[:, None] * P * c
-
-    return P_eps
-
-
-def _quadratic_assignment_2opt(A, B, maximize=False, rng=None,
-                               partial_match=None,
-                               partial_guess=None,
-                               **unknown_options):
-    r"""Solve the quadratic assignment problem (approximately).
-
-    This function solves the Quadratic Assignment Problem (QAP) and the
-    Graph Matching Problem (GMP) using the 2-opt algorithm [1]_.
-
-    Quadratic assignment solves problems of the following form:
-
-    .. math::
-
-        \min_P & \ {\ \text{trace}(A^T P B P^T)}\\
-        \mbox{s.t. } & {P \ \epsilon \ \mathcal{P}}\\
-
-    where :math:`\mathcal{P}` is the set of all permutation matrices,
-    and :math:`A` and :math:`B` are square matrices.
-
-    Graph matching tries to *maximize* the same objective function.
-    This algorithm can be thought of as finding the alignment of the
-    nodes of two graphs that minimizes the number of induced edge
-    disagreements, or, in the case of weighted graphs, the sum of squared
-    edge weight differences.
-
-    Note that the quadratic assignment problem is NP-hard. The results given
-    here are approximations and are not guaranteed to be optimal.
-
-    Parameters
-    ----------
-    A : 2-D array, square
-        The square matrix :math:`A` in the objective function above.
-    B : 2-D array, square
-        The square matrix :math:`B` in the objective function above.
-    method :  str in {'faq', '2opt'} (default: 'faq')
-        The algorithm used to solve the problem. This is the method-specific
-        documentation for '2opt'.
-        :ref:`'faq' ` is also available.
-
-    Options
-    -------
-    maximize : bool (default: False)
-        Maximizes the objective function if ``True``.
-    rng : {None, int, `numpy.random.Generator`,
-           `numpy.random.RandomState`}, optional
-
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-    partial_match : 2-D array of integers, optional (default: None)
-        Fixes part of the matching. Also known as a "seed" [2]_.
-
-        Each row of `partial_match` specifies a pair of matched nodes: node
-        ``partial_match[i, 0]`` of `A` is matched to node
-        ``partial_match[i, 1]`` of `B`. The array has shape ``(m, 2)``,
-        where ``m`` is not greater than the number of nodes, :math:`n`.
-
-        .. note::
-             `partial_match` must be sorted by the first column.
-
-    partial_guess : 2-D array of integers, optional (default: None)
-        A guess for the matching between the two matrices. Unlike
-        `partial_match`, `partial_guess` does not fix the indices; they are
-        still free to be optimized.
-
-        Each row of `partial_guess` specifies a pair of matched nodes: node
-        ``partial_guess[i, 0]`` of `A` is matched to node
-        ``partial_guess[i, 1]`` of `B`. The array has shape ``(m, 2)``,
-        where ``m`` is not greater than the number of nodes, :math:`n`.
-
-        .. note:: 
-                `partial_guess` must be sorted by the first column.
-
-    Returns
-    -------
-    res : OptimizeResult
-        `OptimizeResult` containing the following fields.
-
-        col_ind : 1-D array
-            Column indices corresponding to the best permutation found of the
-            nodes of `B`.
-        fun : float
-            The objective value of the solution.
-        nit : int
-            The number of iterations performed during optimization.
-
-    Notes
-    -----
-    This is a greedy algorithm that works similarly to bubble sort: beginning
-    with an initial permutation, it iteratively swaps pairs of indices to
-    improve the objective function until no such improvements are possible.
-
-    References
-    ----------
-    .. [1] "2-opt," Wikipedia.
-           https://en.wikipedia.org/wiki/2-opt
-
-    .. [2] D. Fishkind, S. Adali, H. Patsolic, L. Meng, D. Singh, V. Lyzinski,
-           C. Priebe, "Seeded graph matching", Pattern Recognit. 87 (2019):
-           203-215, https://doi.org/10.1016/j.patcog.2018.09.014
-
-    """
-    _check_unknown_options(unknown_options)
-    rng = check_random_state(rng)
-    A, B, partial_match = _common_input_validation(A, B, partial_match)
-
-    N = len(A)
-    # check trivial cases
-    if N == 0 or partial_match.shape[0] == N:
-        score = _calc_score(A, B, partial_match[:, 1])
-        res = {"col_ind": partial_match[:, 1], "fun": score, "nit": 0}
-        return OptimizeResult(res)
-
-    if partial_guess is None:
-        partial_guess = np.array([[], []]).T
-    partial_guess = np.atleast_2d(partial_guess).astype(int)
-
-    msg = None
-    if partial_guess.shape[0] > A.shape[0]:
-        msg = ("`partial_guess` can have only as "
-               "many entries as there are nodes")
-    elif partial_guess.shape[1] != 2:
-        msg = "`partial_guess` must have two columns"
-    elif partial_guess.ndim != 2:
-        msg = "`partial_guess` must have exactly two dimensions"
-    elif (partial_guess < 0).any():
-        msg = "`partial_guess` must contain only positive indices"
-    elif (partial_guess >= len(A)).any():
-        msg = "`partial_guess` entries must be less than number of nodes"
-    elif (not len(set(partial_guess[:, 0])) == len(partial_guess[:, 0]) or
-          not len(set(partial_guess[:, 1])) == len(partial_guess[:, 1])):
-        msg = "`partial_guess` column entries must be unique"
-    if msg is not None:
-        raise ValueError(msg)
-
-    fixed_rows = None
-    if partial_match.size or partial_guess.size:
-        # use partial_match and partial_guess for initial permutation,
-        # but randomly permute the rest.
-        guess_rows = np.zeros(N, dtype=bool)
-        guess_cols = np.zeros(N, dtype=bool)
-        fixed_rows = np.zeros(N, dtype=bool)
-        fixed_cols = np.zeros(N, dtype=bool)
-        perm = np.zeros(N, dtype=int)
-
-        rg, cg = partial_guess.T
-        guess_rows[rg] = True
-        guess_cols[cg] = True
-        perm[guess_rows] = cg
-
-        # match overrides guess
-        rf, cf = partial_match.T
-        fixed_rows[rf] = True
-        fixed_cols[cf] = True
-        perm[fixed_rows] = cf
-
-        random_rows = ~fixed_rows & ~guess_rows
-        random_cols = ~fixed_cols & ~guess_cols
-        perm[random_rows] = rng.permutation(np.arange(N)[random_cols])
-    else:
-        perm = rng.permutation(np.arange(N))
-
-    best_score = _calc_score(A, B, perm)
-
-    i_free = np.arange(N)
-    if fixed_rows is not None:
-        i_free = i_free[~fixed_rows]
-
-    better = operator.gt if maximize else operator.lt
-    n_iter = 0
-    done = False
-    while not done:
-        # equivalent to nested for loops i in range(N), j in range(i, N)
-        for i, j in itertools.combinations_with_replacement(i_free, 2):
-            n_iter += 1
-            perm[i], perm[j] = perm[j], perm[i]
-            score = _calc_score(A, B, perm)
-            if better(score, best_score):
-                best_score = score
-                break
-            # faster to swap back than to create a new list every time
-            perm[i], perm[j] = perm[j], perm[i]
-        else:  # no swaps made
-            done = True
-
-    res = {"col_ind": perm, "fun": best_score, "nit": n_iter}
-    return OptimizeResult(res)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_remove_redundancy.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_remove_redundancy.py
deleted file mode 100644
index cb81ad1696b768d2304b2fc42a80cc9678cbde00..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_remove_redundancy.py
+++ /dev/null
@@ -1,522 +0,0 @@
-"""
-Routines for removing redundant (linearly dependent) equations from linear
-programming equality constraints.
-"""
-# Author: Matt Haberland
-
-import numpy as np
-from scipy.linalg import svd
-from scipy.linalg.interpolative import interp_decomp
-import scipy
-from scipy.linalg.blas import dtrsm
-
-
-def _row_count(A):
-    """
-    Counts the number of nonzeros in each row of input array A.
-    Nonzeros are defined as any element with absolute value greater than
-    tol = 1e-13. This value should probably be an input to the function.
-
-    Parameters
-    ----------
-    A : 2-D array
-        An array representing a matrix
-
-    Returns
-    -------
-    rowcount : 1-D array
-        Number of nonzeros in each row of A
-
-    """
-    tol = 1e-13
-    return np.array((abs(A) > tol).sum(axis=1)).flatten()
-
-
-def _get_densest(A, eligibleRows):
-    """
-    Returns the index of the densest row of A. Ignores rows that are not
-    eligible for consideration.
-
-    Parameters
-    ----------
-    A : 2-D array
-        An array representing a matrix
-    eligibleRows : 1-D logical array
-        Values indicate whether the corresponding row of A is eligible
-        to be considered
-
-    Returns
-    -------
-    i_densest : int
-        Index of the densest row in A eligible for consideration
-
-    """
-    rowCounts = _row_count(A)
-    return np.argmax(rowCounts * eligibleRows)
-
-
-def _remove_zero_rows(A, b):
-    """
-    Eliminates trivial equations from system of equations defined by Ax = b
-   and identifies trivial infeasibilities
-
-    Parameters
-    ----------
-    A : 2-D array
-        An array representing the left-hand side of a system of equations
-    b : 1-D array
-        An array representing the right-hand side of a system of equations
-
-    Returns
-    -------
-    A : 2-D array
-        An array representing the left-hand side of a system of equations
-    b : 1-D array
-        An array representing the right-hand side of a system of equations
-    status: int
-        An integer indicating the status of the removal operation
-        0: No infeasibility identified
-        2: Trivially infeasible
-    message : str
-        A string descriptor of the exit status of the optimization.
-
-    """
-    status = 0
-    message = ""
-    i_zero = _row_count(A) == 0
-    A = A[np.logical_not(i_zero), :]
-    if not np.allclose(b[i_zero], 0):
-        status = 2
-        message = "There is a zero row in A_eq with a nonzero corresponding " \
-                  "entry in b_eq. The problem is infeasible."
-    b = b[np.logical_not(i_zero)]
-    return A, b, status, message
-
-
-def bg_update_dense(plu, perm_r, v, j):
-    LU, p = plu
-
-    vperm = v[perm_r]
-    u = dtrsm(1, LU, vperm, lower=1, diag=1)
-    LU[:j+1, j] = u[:j+1]
-    l = u[j+1:]
-    piv = LU[j, j]
-    LU[j+1:, j] += (l/piv)
-    return LU, p
-
-
-def _remove_redundancy_pivot_dense(A, rhs, true_rank=None):
-    """
-    Eliminates redundant equations from system of equations defined by Ax = b
-    and identifies infeasibilities.
-
-    Parameters
-    ----------
-    A : 2-D sparse matrix
-        An matrix representing the left-hand side of a system of equations
-    rhs : 1-D array
-        An array representing the right-hand side of a system of equations
-
-    Returns
-    -------
-    A : 2-D sparse matrix
-        A matrix representing the left-hand side of a system of equations
-    rhs : 1-D array
-        An array representing the right-hand side of a system of equations
-    status: int
-        An integer indicating the status of the system
-        0: No infeasibility identified
-        2: Trivially infeasible
-    message : str
-        A string descriptor of the exit status of the optimization.
-
-    References
-    ----------
-    .. [2] Andersen, Erling D. "Finding all linearly dependent rows in
-           large-scale linear programming." Optimization Methods and Software
-           6.3 (1995): 219-227.
-
-    """
-    tolapiv = 1e-8
-    tolprimal = 1e-8
-    status = 0
-    message = ""
-    inconsistent = ("There is a linear combination of rows of A_eq that "
-                    "results in zero, suggesting a redundant constraint. "
-                    "However the same linear combination of b_eq is "
-                    "nonzero, suggesting that the constraints conflict "
-                    "and the problem is infeasible.")
-    A, rhs, status, message = _remove_zero_rows(A, rhs)
-
-    if status != 0:
-        return A, rhs, status, message
-
-    m, n = A.shape
-
-    v = list(range(m))      # Artificial column indices.
-    b = list(v)             # Basis column indices.
-    # This is better as a list than a set because column order of basis matrix
-    # needs to be consistent.
-    d = []                  # Indices of dependent rows
-    perm_r = None
-
-    A_orig = A
-    A = np.zeros((m, m + n), order='F')
-    np.fill_diagonal(A, 1)
-    A[:, m:] = A_orig
-    e = np.zeros(m)
-
-    js_candidates = np.arange(m, m+n, dtype=int)  # candidate columns for basis
-    # manual masking was faster than masked array
-    js_mask = np.ones(js_candidates.shape, dtype=bool)
-
-    # Implements basic algorithm from [2]
-    # Uses some of the suggested improvements (removing zero rows and
-    # Bartels-Golub update idea).
-    # Removing column singletons would be easy, but it is not as important
-    # because the procedure is performed only on the equality constraint
-    # matrix from the original problem - not on the canonical form matrix,
-    # which would have many more column singletons due to slack variables
-    # from the inequality constraints.
-    # The thoughts on "crashing" the initial basis are only really useful if
-    # the matrix is sparse.
-
-    lu = np.eye(m, order='F'), np.arange(m)  # initial LU is trivial
-    perm_r = lu[1]
-    for i in v:
-
-        e[i] = 1
-        if i > 0:
-            e[i-1] = 0
-
-        try:  # fails for i==0 and any time it gets ill-conditioned
-            j = b[i-1]
-            lu = bg_update_dense(lu, perm_r, A[:, j], i-1)
-        except Exception:
-            lu = scipy.linalg.lu_factor(A[:, b])
-            LU, p = lu
-            perm_r = list(range(m))
-            for i1, i2 in enumerate(p):
-                perm_r[i1], perm_r[i2] = perm_r[i2], perm_r[i1]
-
-        pi = scipy.linalg.lu_solve(lu, e, trans=1)
-
-        js = js_candidates[js_mask]
-        batch = 50
-
-        # This is a tiny bit faster than looping over columns individually,
-        # like for j in js: if abs(A[:,j].transpose().dot(pi)) > tolapiv:
-        for j_index in range(0, len(js), batch):
-            j_indices = js[j_index: min(j_index+batch, len(js))]
-
-            c = abs(A[:, j_indices].transpose().dot(pi))
-            if (c > tolapiv).any():
-                j = js[j_index + np.argmax(c)]  # very independent column
-                b[i] = j
-                js_mask[j-m] = False
-                break
-        else:
-            bibar = pi.T.dot(rhs.reshape(-1, 1))
-            bnorm = np.linalg.norm(rhs)
-            if abs(bibar)/(1+bnorm) > tolprimal:  # inconsistent
-                status = 2
-                message = inconsistent
-                return A_orig, rhs, status, message
-            else:  # dependent
-                d.append(i)
-                if true_rank is not None and len(d) == m - true_rank:
-                    break   # found all redundancies
-
-    keep = set(range(m))
-    keep = list(keep - set(d))
-    return A_orig[keep, :], rhs[keep], status, message
-
-
-def _remove_redundancy_pivot_sparse(A, rhs):
-    """
-    Eliminates redundant equations from system of equations defined by Ax = b
-    and identifies infeasibilities.
-
-    Parameters
-    ----------
-    A : 2-D sparse matrix
-        An matrix representing the left-hand side of a system of equations
-    rhs : 1-D array
-        An array representing the right-hand side of a system of equations
-
-    Returns
-    -------
-    A : 2-D sparse matrix
-        A matrix representing the left-hand side of a system of equations
-    rhs : 1-D array
-        An array representing the right-hand side of a system of equations
-    status: int
-        An integer indicating the status of the system
-        0: No infeasibility identified
-        2: Trivially infeasible
-    message : str
-        A string descriptor of the exit status of the optimization.
-
-    References
-    ----------
-    .. [2] Andersen, Erling D. "Finding all linearly dependent rows in
-           large-scale linear programming." Optimization Methods and Software
-           6.3 (1995): 219-227.
-
-    """
-
-    tolapiv = 1e-8
-    tolprimal = 1e-8
-    status = 0
-    message = ""
-    inconsistent = ("There is a linear combination of rows of A_eq that "
-                    "results in zero, suggesting a redundant constraint. "
-                    "However the same linear combination of b_eq is "
-                    "nonzero, suggesting that the constraints conflict "
-                    "and the problem is infeasible.")
-    A, rhs, status, message = _remove_zero_rows(A, rhs)
-
-    if status != 0:
-        return A, rhs, status, message
-
-    m, n = A.shape
-
-    v = list(range(m))      # Artificial column indices.
-    b = list(v)             # Basis column indices.
-    # This is better as a list than a set because column order of basis matrix
-    # needs to be consistent.
-    k = set(range(m, m+n))  # Structural column indices.
-    d = []                  # Indices of dependent rows
-
-    A_orig = A
-    A = scipy.sparse.hstack((scipy.sparse.eye(m), A)).tocsc()
-    e = np.zeros(m)
-
-    # Implements basic algorithm from [2]
-    # Uses only one of the suggested improvements (removing zero rows).
-    # Removing column singletons would be easy, but it is not as important
-    # because the procedure is performed only on the equality constraint
-    # matrix from the original problem - not on the canonical form matrix,
-    # which would have many more column singletons due to slack variables
-    # from the inequality constraints.
-    # The thoughts on "crashing" the initial basis sound useful, but the
-    # description of the procedure seems to assume a lot of familiarity with
-    # the subject; it is not very explicit. I already went through enough
-    # trouble getting the basic algorithm working, so I was not interested in
-    # trying to decipher this, too. (Overall, the paper is fraught with
-    # mistakes and ambiguities - which is strange, because the rest of
-    # Andersen's papers are quite good.)
-    # I tried and tried and tried to improve performance using the
-    # Bartels-Golub update. It works, but it's only practical if the LU
-    # factorization can be specialized as described, and that is not possible
-    # until the SciPy SuperLU interface permits control over column
-    # permutation - see issue #7700.
-
-    for i in v:
-        B = A[:, b]
-
-        e[i] = 1
-        if i > 0:
-            e[i-1] = 0
-
-        pi = scipy.sparse.linalg.spsolve(B.transpose(), e).reshape(-1, 1)
-
-        js = list(k-set(b))  # not efficient, but this is not the time sink...
-
-        # Due to overhead, it tends to be faster (for problems tested) to
-        # compute the full matrix-vector product rather than individual
-        # vector-vector products (with the chance of terminating as soon
-        # as any are nonzero). For very large matrices, it might be worth
-        # it to compute, say, 100 or 1000 at a time and stop when a nonzero
-        # is found.
-
-        c = (np.abs(A[:, js].transpose().dot(pi)) > tolapiv).nonzero()[0]
-        if len(c) > 0:  # independent
-            j = js[c[0]]
-            # in a previous commit, the previous line was changed to choose
-            # index j corresponding with the maximum dot product.
-            # While this avoided issues with almost
-            # singular matrices, it slowed the routine in most NETLIB tests.
-            # I think this is because these columns were denser than the
-            # first column with nonzero dot product (c[0]).
-            # It would be nice to have a heuristic that balances sparsity with
-            # high dot product, but I don't think it's worth the time to
-            # develop one right now. Bartels-Golub update is a much higher
-            # priority.
-            b[i] = j  # replace artificial column
-        else:
-            bibar = pi.T.dot(rhs.reshape(-1, 1))
-            bnorm = np.linalg.norm(rhs)
-            if abs(bibar)/(1 + bnorm) > tolprimal:
-                status = 2
-                message = inconsistent
-                return A_orig, rhs, status, message
-            else:  # dependent
-                d.append(i)
-
-    keep = set(range(m))
-    keep = list(keep - set(d))
-    return A_orig[keep, :], rhs[keep], status, message
-
-
-def _remove_redundancy_svd(A, b):
-    """
-    Eliminates redundant equations from system of equations defined by Ax = b
-    and identifies infeasibilities.
-
-    Parameters
-    ----------
-    A : 2-D array
-        An array representing the left-hand side of a system of equations
-    b : 1-D array
-        An array representing the right-hand side of a system of equations
-
-    Returns
-    -------
-    A : 2-D array
-        An array representing the left-hand side of a system of equations
-    b : 1-D array
-        An array representing the right-hand side of a system of equations
-    status: int
-        An integer indicating the status of the system
-        0: No infeasibility identified
-        2: Trivially infeasible
-    message : str
-        A string descriptor of the exit status of the optimization.
-
-    References
-    ----------
-    .. [2] Andersen, Erling D. "Finding all linearly dependent rows in
-           large-scale linear programming." Optimization Methods and Software
-           6.3 (1995): 219-227.
-
-    """
-
-    A, b, status, message = _remove_zero_rows(A, b)
-
-    if status != 0:
-        return A, b, status, message
-
-    U, s, Vh = svd(A)
-    eps = np.finfo(float).eps
-    tol = s.max() * max(A.shape) * eps
-
-    m, n = A.shape
-    s_min = s[-1] if m <= n else 0
-
-    # this algorithm is faster than that of [2] when the nullspace is small
-    # but it could probably be improvement by randomized algorithms and with
-    # a sparse implementation.
-    # it relies on repeated singular value decomposition to find linearly
-    # dependent rows (as identified by columns of U that correspond with zero
-    # singular values). Unfortunately, only one row can be removed per
-    # decomposition (I tried otherwise; doing so can cause problems.)
-    # It would be nice if we could do truncated SVD like sp.sparse.linalg.svds
-    # but that function is unreliable at finding singular values near zero.
-    # Finding max eigenvalue L of A A^T, then largest eigenvalue (and
-    # associated eigenvector) of -A A^T + L I (I is identity) via power
-    # iteration would also work in theory, but is only efficient if the
-    # smallest nonzero eigenvalue of A A^T is close to the largest nonzero
-    # eigenvalue.
-
-    while abs(s_min) < tol:
-        v = U[:, -1]  # TODO: return these so user can eliminate from problem?
-        # rows need to be represented in significant amount
-        eligibleRows = np.abs(v) > tol * 10e6
-        if not np.any(eligibleRows) or np.any(np.abs(v.dot(A)) > tol):
-            status = 4
-            message = ("Due to numerical issues, redundant equality "
-                       "constraints could not be removed automatically. "
-                       "Try providing your constraint matrices as sparse "
-                       "matrices to activate sparse presolve, try turning "
-                       "off redundancy removal, or try turning off presolve "
-                       "altogether.")
-            break
-        if np.any(np.abs(v.dot(b)) > tol * 100):  # factor of 100 to fix 10038 and 10349
-            status = 2
-            message = ("There is a linear combination of rows of A_eq that "
-                       "results in zero, suggesting a redundant constraint. "
-                       "However the same linear combination of b_eq is "
-                       "nonzero, suggesting that the constraints conflict "
-                       "and the problem is infeasible.")
-            break
-
-        i_remove = _get_densest(A, eligibleRows)
-        A = np.delete(A, i_remove, axis=0)
-        b = np.delete(b, i_remove)
-        U, s, Vh = svd(A)
-        m, n = A.shape
-        s_min = s[-1] if m <= n else 0
-
-    return A, b, status, message
-
-
-def _remove_redundancy_id(A, rhs, rank=None, randomized=True):
-    """Eliminates redundant equations from a system of equations.
-
-    Eliminates redundant equations from system of equations defined by Ax = b
-    and identifies infeasibilities.
-
-    Parameters
-    ----------
-    A : 2-D array
-        An array representing the left-hand side of a system of equations
-    rhs : 1-D array
-        An array representing the right-hand side of a system of equations
-    rank : int, optional
-        The rank of A
-    randomized: bool, optional
-        True for randomized interpolative decomposition
-
-    Returns
-    -------
-    A : 2-D array
-        An array representing the left-hand side of a system of equations
-    rhs : 1-D array
-        An array representing the right-hand side of a system of equations
-    status: int
-        An integer indicating the status of the system
-        0: No infeasibility identified
-        2: Trivially infeasible
-    message : str
-        A string descriptor of the exit status of the optimization.
-
-    """
-
-    status = 0
-    message = ""
-    inconsistent = ("There is a linear combination of rows of A_eq that "
-                    "results in zero, suggesting a redundant constraint. "
-                    "However the same linear combination of b_eq is "
-                    "nonzero, suggesting that the constraints conflict "
-                    "and the problem is infeasible.")
-
-    A, rhs, status, message = _remove_zero_rows(A, rhs)
-
-    if status != 0:
-        return A, rhs, status, message
-
-    m, n = A.shape
-
-    k = rank
-    if rank is None:
-        k = np.linalg.matrix_rank(A)
-
-    idx, proj = interp_decomp(A.T, k, rand=randomized)
-
-    # first k entries in idx are indices of the independent rows
-    # remaining entries are the indices of the m-k dependent rows
-    # proj provides a linear combinations of rows of A2 that form the
-    # remaining m-k (dependent) rows. The same linear combination of entries
-    # in rhs2 must give the remaining m-k entries. If not, the system is
-    # inconsistent, and the problem is infeasible.
-    if not np.allclose(rhs[idx[:k]] @ proj, rhs[idx[k:]]):
-        status = 2
-        message = inconsistent
-
-    # sort indices because the other redundancy removal routines leave rows
-    # in original order and tests were written with that in mind
-    idx = sorted(idx[:k])
-    A2 = A[idx, :]
-    rhs2 = rhs[idx]
-    return A2, rhs2, status, message
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_root.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_root.py
deleted file mode 100644
index 2847619bb8039af0c3f96ce5b3347a082ad449e2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_root.py
+++ /dev/null
@@ -1,732 +0,0 @@
-"""
-Unified interfaces to root finding algorithms.
-
-Functions
----------
-- root : find a root of a vector function.
-"""
-__all__ = ['root']
-
-import numpy as np
-
-from warnings import warn
-
-from ._optimize import MemoizeJac, OptimizeResult, _check_unknown_options
-from ._minpack_py import _root_hybr, leastsq
-from ._spectral import _root_df_sane
-from . import _nonlin as nonlin
-
-
-ROOT_METHODS = ['hybr', 'lm', 'broyden1', 'broyden2', 'anderson',
-                'linearmixing', 'diagbroyden', 'excitingmixing', 'krylov',
-                'df-sane']
-
-
-def root(fun, x0, args=(), method='hybr', jac=None, tol=None, callback=None,
-         options=None):
-    r"""
-    Find a root of a vector function.
-
-    Parameters
-    ----------
-    fun : callable
-        A vector function to find a root of.
-    x0 : ndarray
-        Initial guess.
-    args : tuple, optional
-        Extra arguments passed to the objective function and its Jacobian.
-    method : str, optional
-        Type of solver. Should be one of
-
-            - 'hybr'             :ref:`(see here) `
-            - 'lm'               :ref:`(see here) `
-            - 'broyden1'         :ref:`(see here) `
-            - 'broyden2'         :ref:`(see here) `
-            - 'anderson'         :ref:`(see here) `
-            - 'linearmixing'     :ref:`(see here) `
-            - 'diagbroyden'      :ref:`(see here) `
-            - 'excitingmixing'   :ref:`(see here) `
-            - 'krylov'           :ref:`(see here) `
-            - 'df-sane'          :ref:`(see here) `
-
-    jac : bool or callable, optional
-        If `jac` is a Boolean and is True, `fun` is assumed to return the
-        value of Jacobian along with the objective function. If False, the
-        Jacobian will be estimated numerically.
-        `jac` can also be a callable returning the Jacobian of `fun`. In
-        this case, it must accept the same arguments as `fun`.
-    tol : float, optional
-        Tolerance for termination. For detailed control, use solver-specific
-        options.
-    callback : function, optional
-        Optional callback function. It is called on every iteration as
-        ``callback(x, f)`` where `x` is the current solution and `f`
-        the corresponding residual. For all methods but 'hybr' and 'lm'.
-    options : dict, optional
-        A dictionary of solver options. E.g., `xtol` or `maxiter`, see
-        :obj:`show_options()` for details.
-
-    Returns
-    -------
-    sol : OptimizeResult
-        The solution represented as a ``OptimizeResult`` object.
-        Important attributes are: ``x`` the solution array, ``success`` a
-        Boolean flag indicating if the algorithm exited successfully and
-        ``message`` which describes the cause of the termination. See
-        `OptimizeResult` for a description of other attributes.
-
-    See also
-    --------
-    show_options : Additional options accepted by the solvers
-
-    Notes
-    -----
-    This section describes the available solvers that can be selected by the
-    'method' parameter. The default method is *hybr*.
-
-    Method *hybr* uses a modification of the Powell hybrid method as
-    implemented in MINPACK [1]_.
-
-    Method *lm* solves the system of nonlinear equations in a least squares
-    sense using a modification of the Levenberg-Marquardt algorithm as
-    implemented in MINPACK [1]_.
-
-    Method *df-sane* is a derivative-free spectral method. [3]_
-
-    Methods *broyden1*, *broyden2*, *anderson*, *linearmixing*,
-    *diagbroyden*, *excitingmixing*, *krylov* are inexact Newton methods,
-    with backtracking or full line searches [2]_. Each method corresponds
-    to a particular Jacobian approximations.
-
-    - Method *broyden1* uses Broyden's first Jacobian approximation, it is
-      known as Broyden's good method.
-    - Method *broyden2* uses Broyden's second Jacobian approximation, it
-      is known as Broyden's bad method.
-    - Method *anderson* uses (extended) Anderson mixing.
-    - Method *Krylov* uses Krylov approximation for inverse Jacobian. It
-      is suitable for large-scale problem.
-    - Method *diagbroyden* uses diagonal Broyden Jacobian approximation.
-    - Method *linearmixing* uses a scalar Jacobian approximation.
-    - Method *excitingmixing* uses a tuned diagonal Jacobian
-      approximation.
-
-    .. warning::
-
-        The algorithms implemented for methods *diagbroyden*,
-        *linearmixing* and *excitingmixing* may be useful for specific
-        problems, but whether they will work may depend strongly on the
-        problem.
-
-    .. versionadded:: 0.11.0
-
-    References
-    ----------
-    .. [1] More, Jorge J., Burton S. Garbow, and Kenneth E. Hillstrom.
-       1980. User Guide for MINPACK-1.
-    .. [2] C. T. Kelley. 1995. Iterative Methods for Linear and Nonlinear
-       Equations. Society for Industrial and Applied Mathematics.
-       
-    .. [3] W. La Cruz, J.M. Martinez, M. Raydan. Math. Comp. 75, 1429 (2006).
-
-    Examples
-    --------
-    The following functions define a system of nonlinear equations and its
-    jacobian.
-
-    >>> import numpy as np
-    >>> def fun(x):
-    ...     return [x[0]  + 0.5 * (x[0] - x[1])**3 - 1.0,
-    ...             0.5 * (x[1] - x[0])**3 + x[1]]
-
-    >>> def jac(x):
-    ...     return np.array([[1 + 1.5 * (x[0] - x[1])**2,
-    ...                       -1.5 * (x[0] - x[1])**2],
-    ...                      [-1.5 * (x[1] - x[0])**2,
-    ...                       1 + 1.5 * (x[1] - x[0])**2]])
-
-    A solution can be obtained as follows.
-
-    >>> from scipy import optimize
-    >>> sol = optimize.root(fun, [0, 0], jac=jac, method='hybr')
-    >>> sol.x
-    array([ 0.8411639,  0.1588361])
-
-    **Large problem**
-
-    Suppose that we needed to solve the following integrodifferential
-    equation on the square :math:`[0,1]\times[0,1]`:
-
-    .. math::
-
-       \nabla^2 P = 10 \left(\int_0^1\int_0^1\cosh(P)\,dx\,dy\right)^2
-
-    with :math:`P(x,1) = 1` and :math:`P=0` elsewhere on the boundary of
-    the square.
-
-    The solution can be found using the ``method='krylov'`` solver:
-
-    >>> from scipy import optimize
-    >>> # parameters
-    >>> nx, ny = 75, 75
-    >>> hx, hy = 1./(nx-1), 1./(ny-1)
-
-    >>> P_left, P_right = 0, 0
-    >>> P_top, P_bottom = 1, 0
-
-    >>> def residual(P):
-    ...    d2x = np.zeros_like(P)
-    ...    d2y = np.zeros_like(P)
-    ...
-    ...    d2x[1:-1] = (P[2:]   - 2*P[1:-1] + P[:-2]) / hx/hx
-    ...    d2x[0]    = (P[1]    - 2*P[0]    + P_left)/hx/hx
-    ...    d2x[-1]   = (P_right - 2*P[-1]   + P[-2])/hx/hx
-    ...
-    ...    d2y[:,1:-1] = (P[:,2:] - 2*P[:,1:-1] + P[:,:-2])/hy/hy
-    ...    d2y[:,0]    = (P[:,1]  - 2*P[:,0]    + P_bottom)/hy/hy
-    ...    d2y[:,-1]   = (P_top   - 2*P[:,-1]   + P[:,-2])/hy/hy
-    ...
-    ...    return d2x + d2y - 10*np.cosh(P).mean()**2
-
-    >>> guess = np.zeros((nx, ny), float)
-    >>> sol = optimize.root(residual, guess, method='krylov')
-    >>> print('Residual: %g' % abs(residual(sol.x)).max())
-    Residual: 5.7972e-06  # may vary
-
-    >>> import matplotlib.pyplot as plt
-    >>> x, y = np.mgrid[0:1:(nx*1j), 0:1:(ny*1j)]
-    >>> plt.pcolormesh(x, y, sol.x, shading='gouraud')
-    >>> plt.colorbar()
-    >>> plt.show()
-
-    """
-    def _wrapped_fun(*fargs):
-        """
-        Wrapped `func` to track the number of times
-        the function has been called.
-        """
-        _wrapped_fun.nfev += 1
-        return fun(*fargs)
-
-    _wrapped_fun.nfev = 0
-
-    if not isinstance(args, tuple):
-        args = (args,)
-
-    meth = method.lower()
-    if options is None:
-        options = {}
-
-    if callback is not None and meth in ('hybr', 'lm'):
-        warn('Method %s does not accept callback.' % method,
-             RuntimeWarning, stacklevel=2)
-
-    # fun also returns the Jacobian
-    if not callable(jac) and meth in ('hybr', 'lm'):
-        if bool(jac):
-            fun = MemoizeJac(fun)
-            jac = fun.derivative
-        else:
-            jac = None
-
-    # set default tolerances
-    if tol is not None:
-        options = dict(options)
-        if meth in ('hybr', 'lm'):
-            options.setdefault('xtol', tol)
-        elif meth in ('df-sane',):
-            options.setdefault('ftol', tol)
-        elif meth in ('broyden1', 'broyden2', 'anderson', 'linearmixing',
-                      'diagbroyden', 'excitingmixing', 'krylov'):
-            options.setdefault('xtol', tol)
-            options.setdefault('xatol', np.inf)
-            options.setdefault('ftol', np.inf)
-            options.setdefault('fatol', np.inf)
-
-    if meth == 'hybr':
-        sol = _root_hybr(_wrapped_fun, x0, args=args, jac=jac, **options)
-    elif meth == 'lm':
-        sol = _root_leastsq(_wrapped_fun, x0, args=args, jac=jac, **options)
-    elif meth == 'df-sane':
-        _warn_jac_unused(jac, method)
-        sol = _root_df_sane(_wrapped_fun, x0, args=args, callback=callback,
-                            **options)
-    elif meth in ('broyden1', 'broyden2', 'anderson', 'linearmixing',
-                  'diagbroyden', 'excitingmixing', 'krylov'):
-        _warn_jac_unused(jac, method)
-        sol = _root_nonlin_solve(_wrapped_fun, x0, args=args, jac=jac,
-                                 _method=meth, _callback=callback,
-                                 **options)
-    else:
-        raise ValueError('Unknown solver %s' % method)
-
-    sol.nfev = _wrapped_fun.nfev
-    return sol
-
-
-def _warn_jac_unused(jac, method):
-    if jac is not None:
-        warn(f'Method {method} does not use the jacobian (jac).',
-             RuntimeWarning, stacklevel=2)
-
-
-def _root_leastsq(fun, x0, args=(), jac=None,
-                  col_deriv=0, xtol=1.49012e-08, ftol=1.49012e-08,
-                  gtol=0.0, maxiter=0, eps=0.0, factor=100, diag=None,
-                  **unknown_options):
-    """
-    Solve for least squares with Levenberg-Marquardt
-
-    Options
-    -------
-    col_deriv : bool
-        non-zero to specify that the Jacobian function computes derivatives
-        down the columns (faster, because there is no transpose operation).
-    ftol : float
-        Relative error desired in the sum of squares.
-    xtol : float
-        Relative error desired in the approximate solution.
-    gtol : float
-        Orthogonality desired between the function vector and the columns
-        of the Jacobian.
-    maxiter : int
-        The maximum number of calls to the function. If zero, then
-        100*(N+1) is the maximum where N is the number of elements in x0.
-    eps : float
-        A suitable step length for the forward-difference approximation of
-        the Jacobian (for Dfun=None). If `eps` is less than the machine
-        precision, it is assumed that the relative errors in the functions
-        are of the order of the machine precision.
-    factor : float
-        A parameter determining the initial step bound
-        (``factor * || diag * x||``). Should be in interval ``(0.1, 100)``.
-    diag : sequence
-        N positive entries that serve as a scale factors for the variables.
-    """
-    nfev = 0
-    def _wrapped_fun(*fargs):
-        """
-        Wrapped `func` to track the number of times
-        the function has been called.
-        """
-        nonlocal nfev
-        nfev += 1
-        return fun(*fargs)
-
-    _check_unknown_options(unknown_options)
-    x, cov_x, info, msg, ier = leastsq(_wrapped_fun, x0, args=args,
-                                       Dfun=jac, full_output=True,
-                                       col_deriv=col_deriv, xtol=xtol,
-                                       ftol=ftol, gtol=gtol,
-                                       maxfev=maxiter, epsfcn=eps,
-                                       factor=factor, diag=diag)
-    sol = OptimizeResult(x=x, message=msg, status=ier,
-                         success=ier in (1, 2, 3, 4), cov_x=cov_x,
-                         fun=info.pop('fvec'), method="lm")
-    sol.update(info)
-    sol.nfev = nfev
-    return sol
-
-
-def _root_nonlin_solve(fun, x0, args=(), jac=None,
-                       _callback=None, _method=None,
-                       nit=None, disp=False, maxiter=None,
-                       ftol=None, fatol=None, xtol=None, xatol=None,
-                       tol_norm=None, line_search='armijo', jac_options=None,
-                       **unknown_options):
-    _check_unknown_options(unknown_options)
-
-    f_tol = fatol
-    f_rtol = ftol
-    x_tol = xatol
-    x_rtol = xtol
-    verbose = disp
-    if jac_options is None:
-        jac_options = dict()
-
-    jacobian = {'broyden1': nonlin.BroydenFirst,
-                'broyden2': nonlin.BroydenSecond,
-                'anderson': nonlin.Anderson,
-                'linearmixing': nonlin.LinearMixing,
-                'diagbroyden': nonlin.DiagBroyden,
-                'excitingmixing': nonlin.ExcitingMixing,
-                'krylov': nonlin.KrylovJacobian
-                }[_method]
-
-    if args:
-        if jac is True:
-            def f(x):
-                return fun(x, *args)[0]
-        else:
-            def f(x):
-                return fun(x, *args)
-    else:
-        f = fun
-
-    x, info = nonlin.nonlin_solve(f, x0, jacobian=jacobian(**jac_options),
-                                  iter=nit, verbose=verbose,
-                                  maxiter=maxiter, f_tol=f_tol,
-                                  f_rtol=f_rtol, x_tol=x_tol,
-                                  x_rtol=x_rtol, tol_norm=tol_norm,
-                                  line_search=line_search,
-                                  callback=_callback, full_output=True,
-                                  raise_exception=False)
-    sol = OptimizeResult(x=x, method=_method)
-    sol.update(info)
-    return sol
-
-def _root_broyden1_doc():
-    """
-    Options
-    -------
-    nit : int, optional
-        Number of iterations to make. If omitted (default), make as many
-        as required to meet tolerances.
-    disp : bool, optional
-        Print status to stdout on every iteration.
-    maxiter : int, optional
-        Maximum number of iterations to make.
-    ftol : float, optional
-        Relative tolerance for the residual. If omitted, not used.
-    fatol : float, optional
-        Absolute tolerance (in max-norm) for the residual.
-        If omitted, default is 6e-6.
-    xtol : float, optional
-        Relative minimum step size. If omitted, not used.
-    xatol : float, optional
-        Absolute minimum step size, as determined from the Jacobian
-        approximation. If the step size is smaller than this, optimization
-        is terminated as successful. If omitted, not used.
-    tol_norm : function(vector) -> scalar, optional
-        Norm to use in convergence check. Default is the maximum norm.
-    line_search : {None, 'armijo' (default), 'wolfe'}, optional
-        Which type of a line search to use to determine the step size in
-        the direction given by the Jacobian approximation. Defaults to
-        'armijo'.
-    jac_options : dict, optional
-        Options for the respective Jacobian approximation.
-            alpha : float, optional
-                Initial guess for the Jacobian is (-1/alpha).
-            reduction_method : str or tuple, optional
-                Method used in ensuring that the rank of the Broyden
-                matrix stays low. Can either be a string giving the
-                name of the method, or a tuple of the form ``(method,
-                param1, param2, ...)`` that gives the name of the
-                method and values for additional parameters.
-
-                Methods available:
-
-                    - ``restart``
-                        Drop all matrix columns. Has no
-                        extra parameters.
-                    - ``simple``
-                        Drop oldest matrix column. Has no
-                        extra parameters.
-                    - ``svd``
-                        Keep only the most significant SVD
-                        components.
-
-                        Extra parameters:
-
-                            - ``to_retain``
-                                Number of SVD components to
-                                retain when rank reduction is done.
-                                Default is ``max_rank - 2``.
-            max_rank : int, optional
-                Maximum rank for the Broyden matrix.
-                Default is infinity (i.e., no rank reduction).
-
-    Examples
-    --------
-    >>> def func(x):
-    ...     return np.cos(x) + x[::-1] - [1, 2, 3, 4]
-    ...
-    >>> from scipy import optimize
-    >>> res = optimize.root(func, [1, 1, 1, 1], method='broyden1', tol=1e-14)
-    >>> x = res.x
-    >>> x
-    array([4.04674914, 3.91158389, 2.71791677, 1.61756251])
-    >>> np.cos(x) + x[::-1]
-    array([1., 2., 3., 4.])
-
-    """
-    pass
-
-def _root_broyden2_doc():
-    """
-    Options
-    -------
-    nit : int, optional
-        Number of iterations to make. If omitted (default), make as many
-        as required to meet tolerances.
-    disp : bool, optional
-        Print status to stdout on every iteration.
-    maxiter : int, optional
-        Maximum number of iterations to make.
-    ftol : float, optional
-        Relative tolerance for the residual. If omitted, not used.
-    fatol : float, optional
-        Absolute tolerance (in max-norm) for the residual.
-        If omitted, default is 6e-6.
-    xtol : float, optional
-        Relative minimum step size. If omitted, not used.
-    xatol : float, optional
-        Absolute minimum step size, as determined from the Jacobian
-        approximation. If the step size is smaller than this, optimization
-        is terminated as successful. If omitted, not used.
-    tol_norm : function(vector) -> scalar, optional
-        Norm to use in convergence check. Default is the maximum norm.
-    line_search : {None, 'armijo' (default), 'wolfe'}, optional
-        Which type of a line search to use to determine the step size in
-        the direction given by the Jacobian approximation. Defaults to
-        'armijo'.
-    jac_options : dict, optional
-        Options for the respective Jacobian approximation.
-
-        alpha : float, optional
-            Initial guess for the Jacobian is (-1/alpha).
-        reduction_method : str or tuple, optional
-            Method used in ensuring that the rank of the Broyden
-            matrix stays low. Can either be a string giving the
-            name of the method, or a tuple of the form ``(method,
-            param1, param2, ...)`` that gives the name of the
-            method and values for additional parameters.
-
-            Methods available:
-
-                - ``restart``
-                    Drop all matrix columns. Has no
-                    extra parameters.
-                - ``simple``
-                    Drop oldest matrix column. Has no
-                    extra parameters.
-                - ``svd``
-                    Keep only the most significant SVD
-                    components.
-
-                    Extra parameters:
-
-                        - ``to_retain``
-                            Number of SVD components to
-                            retain when rank reduction is done.
-                            Default is ``max_rank - 2``.
-        max_rank : int, optional
-            Maximum rank for the Broyden matrix.
-            Default is infinity (i.e., no rank reduction).
-    """
-    pass
-
-def _root_anderson_doc():
-    """
-    Options
-    -------
-    nit : int, optional
-        Number of iterations to make. If omitted (default), make as many
-        as required to meet tolerances.
-    disp : bool, optional
-        Print status to stdout on every iteration.
-    maxiter : int, optional
-        Maximum number of iterations to make.
-    ftol : float, optional
-        Relative tolerance for the residual. If omitted, not used.
-    fatol : float, optional
-        Absolute tolerance (in max-norm) for the residual.
-        If omitted, default is 6e-6.
-    xtol : float, optional
-        Relative minimum step size. If omitted, not used.
-    xatol : float, optional
-        Absolute minimum step size, as determined from the Jacobian
-        approximation. If the step size is smaller than this, optimization
-        is terminated as successful. If omitted, not used.
-    tol_norm : function(vector) -> scalar, optional
-        Norm to use in convergence check. Default is the maximum norm.
-    line_search : {None, 'armijo' (default), 'wolfe'}, optional
-        Which type of a line search to use to determine the step size in
-        the direction given by the Jacobian approximation. Defaults to
-        'armijo'.
-    jac_options : dict, optional
-        Options for the respective Jacobian approximation.
-
-        alpha : float, optional
-            Initial guess for the Jacobian is (-1/alpha).
-        M : float, optional
-            Number of previous vectors to retain. Defaults to 5.
-        w0 : float, optional
-            Regularization parameter for numerical stability.
-            Compared to unity, good values of the order of 0.01.
-    """
-    pass
-
-def _root_linearmixing_doc():
-    """
-    Options
-    -------
-    nit : int, optional
-        Number of iterations to make. If omitted (default), make as many
-        as required to meet tolerances.
-    disp : bool, optional
-        Print status to stdout on every iteration.
-    maxiter : int, optional
-        Maximum number of iterations to make.
-    ftol : float, optional
-        Relative tolerance for the residual. If omitted, not used.
-    fatol : float, optional
-        Absolute tolerance (in max-norm) for the residual.
-        If omitted, default is 6e-6.
-    xtol : float, optional
-        Relative minimum step size. If omitted, not used.
-    xatol : float, optional
-        Absolute minimum step size, as determined from the Jacobian
-        approximation. If the step size is smaller than this, optimization
-        is terminated as successful. If omitted, not used.
-    tol_norm : function(vector) -> scalar, optional
-        Norm to use in convergence check. Default is the maximum norm.
-    line_search : {None, 'armijo' (default), 'wolfe'}, optional
-        Which type of a line search to use to determine the step size in
-        the direction given by the Jacobian approximation. Defaults to
-        'armijo'.
-    jac_options : dict, optional
-        Options for the respective Jacobian approximation.
-
-        alpha : float, optional
-            initial guess for the jacobian is (-1/alpha).
-    """
-    pass
-
-def _root_diagbroyden_doc():
-    """
-    Options
-    -------
-    nit : int, optional
-        Number of iterations to make. If omitted (default), make as many
-        as required to meet tolerances.
-    disp : bool, optional
-        Print status to stdout on every iteration.
-    maxiter : int, optional
-        Maximum number of iterations to make.
-    ftol : float, optional
-        Relative tolerance for the residual. If omitted, not used.
-    fatol : float, optional
-        Absolute tolerance (in max-norm) for the residual.
-        If omitted, default is 6e-6.
-    xtol : float, optional
-        Relative minimum step size. If omitted, not used.
-    xatol : float, optional
-        Absolute minimum step size, as determined from the Jacobian
-        approximation. If the step size is smaller than this, optimization
-        is terminated as successful. If omitted, not used.
-    tol_norm : function(vector) -> scalar, optional
-        Norm to use in convergence check. Default is the maximum norm.
-    line_search : {None, 'armijo' (default), 'wolfe'}, optional
-        Which type of a line search to use to determine the step size in
-        the direction given by the Jacobian approximation. Defaults to
-        'armijo'.
-    jac_options : dict, optional
-        Options for the respective Jacobian approximation.
-
-        alpha : float, optional
-            initial guess for the jacobian is (-1/alpha).
-    """
-    pass
-
-def _root_excitingmixing_doc():
-    """
-    Options
-    -------
-    nit : int, optional
-        Number of iterations to make. If omitted (default), make as many
-        as required to meet tolerances.
-    disp : bool, optional
-        Print status to stdout on every iteration.
-    maxiter : int, optional
-        Maximum number of iterations to make.
-    ftol : float, optional
-        Relative tolerance for the residual. If omitted, not used.
-    fatol : float, optional
-        Absolute tolerance (in max-norm) for the residual.
-        If omitted, default is 6e-6.
-    xtol : float, optional
-        Relative minimum step size. If omitted, not used.
-    xatol : float, optional
-        Absolute minimum step size, as determined from the Jacobian
-        approximation. If the step size is smaller than this, optimization
-        is terminated as successful. If omitted, not used.
-    tol_norm : function(vector) -> scalar, optional
-        Norm to use in convergence check. Default is the maximum norm.
-    line_search : {None, 'armijo' (default), 'wolfe'}, optional
-        Which type of a line search to use to determine the step size in
-        the direction given by the Jacobian approximation. Defaults to
-        'armijo'.
-    jac_options : dict, optional
-        Options for the respective Jacobian approximation.
-
-        alpha : float, optional
-            Initial Jacobian approximation is (-1/alpha).
-        alphamax : float, optional
-            The entries of the diagonal Jacobian are kept in the range
-            ``[alpha, alphamax]``.
-    """
-    pass
-
-def _root_krylov_doc():
-    """
-    Options
-    -------
-    nit : int, optional
-        Number of iterations to make. If omitted (default), make as many
-        as required to meet tolerances.
-    disp : bool, optional
-        Print status to stdout on every iteration.
-    maxiter : int, optional
-        Maximum number of iterations to make.
-    ftol : float, optional
-        Relative tolerance for the residual. If omitted, not used.
-    fatol : float, optional
-        Absolute tolerance (in max-norm) for the residual.
-        If omitted, default is 6e-6.
-    xtol : float, optional
-        Relative minimum step size. If omitted, not used.
-    xatol : float, optional
-        Absolute minimum step size, as determined from the Jacobian
-        approximation. If the step size is smaller than this, optimization
-        is terminated as successful. If omitted, not used.
-    tol_norm : function(vector) -> scalar, optional
-        Norm to use in convergence check. Default is the maximum norm.
-    line_search : {None, 'armijo' (default), 'wolfe'}, optional
-        Which type of a line search to use to determine the step size in
-        the direction given by the Jacobian approximation. Defaults to
-        'armijo'.
-    jac_options : dict, optional
-        Options for the respective Jacobian approximation.
-
-        rdiff : float, optional
-            Relative step size to use in numerical differentiation.
-        method : str or callable, optional
-            Krylov method to use to approximate the Jacobian.  Can be a string,
-            or a function implementing the same interface as the iterative
-            solvers in `scipy.sparse.linalg`. If a string, needs to be one of:
-            ``'lgmres'``, ``'gmres'``, ``'bicgstab'``, ``'cgs'``, ``'minres'``,
-            ``'tfqmr'``.
-
-            The default is `scipy.sparse.linalg.lgmres`.
-        inner_M : LinearOperator or InverseJacobian
-            Preconditioner for the inner Krylov iteration.
-            Note that you can use also inverse Jacobians as (adaptive)
-            preconditioners. For example,
-
-            >>> jac = BroydenFirst()
-            >>> kjac = KrylovJacobian(inner_M=jac.inverse).
-
-            If the preconditioner has a method named 'update', it will
-            be called as ``update(x, f)`` after each nonlinear step,
-            with ``x`` giving the current point, and ``f`` the current
-            function value.
-        inner_tol, inner_maxiter, ...
-            Parameters to pass on to the "inner" Krylov solver.
-            See `scipy.sparse.linalg.gmres` for details.
-        outer_k : int, optional
-            Size of the subspace kept across LGMRES nonlinear
-            iterations.
-
-            See `scipy.sparse.linalg.lgmres` for details.
-    """
-    pass
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_root_scalar.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_root_scalar.py
deleted file mode 100644
index 550098bbe677825b34e19aec29e340143b3522cc..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_root_scalar.py
+++ /dev/null
@@ -1,525 +0,0 @@
-"""
-Unified interfaces to root finding algorithms for real or complex
-scalar functions.
-
-Functions
----------
-- root : find a root of a scalar function.
-"""
-import numpy as np
-
-from . import _zeros_py as optzeros
-from ._numdiff import approx_derivative
-
-__all__ = ['root_scalar']
-
-ROOT_SCALAR_METHODS = ['bisect', 'brentq', 'brenth', 'ridder', 'toms748',
-                       'newton', 'secant', 'halley']
-
-
-class MemoizeDer:
-    """Decorator that caches the value and derivative(s) of function each
-    time it is called.
-
-    This is a simplistic memoizer that calls and caches a single value
-    of `f(x, *args)`.
-    It assumes that `args` does not change between invocations.
-    It supports the use case of a root-finder where `args` is fixed,
-    `x` changes, and only rarely, if at all, does x assume the same value
-    more than once."""
-    def __init__(self, fun):
-        self.fun = fun
-        self.vals = None
-        self.x = None
-        self.n_calls = 0
-
-    def __call__(self, x, *args):
-        r"""Calculate f or use cached value if available"""
-        # Derivative may be requested before the function itself, always check
-        if self.vals is None or x != self.x:
-            fg = self.fun(x, *args)
-            self.x = x
-            self.n_calls += 1
-            self.vals = fg[:]
-        return self.vals[0]
-
-    def fprime(self, x, *args):
-        r"""Calculate f' or use a cached value if available"""
-        if self.vals is None or x != self.x:
-            self(x, *args)
-        return self.vals[1]
-
-    def fprime2(self, x, *args):
-        r"""Calculate f'' or use a cached value if available"""
-        if self.vals is None or x != self.x:
-            self(x, *args)
-        return self.vals[2]
-
-    def ncalls(self):
-        return self.n_calls
-
-
-def root_scalar(f, args=(), method=None, bracket=None,
-                fprime=None, fprime2=None,
-                x0=None, x1=None,
-                xtol=None, rtol=None, maxiter=None,
-                options=None):
-    """
-    Find a root of a scalar function.
-
-    Parameters
-    ----------
-    f : callable
-        A function to find a root of.
-    args : tuple, optional
-        Extra arguments passed to the objective function and its derivative(s).
-    method : str, optional
-        Type of solver.  Should be one of
-
-            - 'bisect'    :ref:`(see here) `
-            - 'brentq'    :ref:`(see here) `
-            - 'brenth'    :ref:`(see here) `
-            - 'ridder'    :ref:`(see here) `
-            - 'toms748'    :ref:`(see here) `
-            - 'newton'    :ref:`(see here) `
-            - 'secant'    :ref:`(see here) `
-            - 'halley'    :ref:`(see here) `
-
-    bracket: A sequence of 2 floats, optional
-        An interval bracketing a root.  `f(x, *args)` must have different
-        signs at the two endpoints.
-    x0 : float, optional
-        Initial guess.
-    x1 : float, optional
-        A second guess.
-    fprime : bool or callable, optional
-        If `fprime` is a boolean and is True, `f` is assumed to return the
-        value of the objective function and of the derivative.
-        `fprime` can also be a callable returning the derivative of `f`. In
-        this case, it must accept the same arguments as `f`.
-    fprime2 : bool or callable, optional
-        If `fprime2` is a boolean and is True, `f` is assumed to return the
-        value of the objective function and of the
-        first and second derivatives.
-        `fprime2` can also be a callable returning the second derivative of `f`.
-        In this case, it must accept the same arguments as `f`.
-    xtol : float, optional
-        Tolerance (absolute) for termination.
-    rtol : float, optional
-        Tolerance (relative) for termination.
-    maxiter : int, optional
-        Maximum number of iterations.
-    options : dict, optional
-        A dictionary of solver options. E.g., ``k``, see
-        :obj:`show_options()` for details.
-
-    Returns
-    -------
-    sol : RootResults
-        The solution represented as a ``RootResults`` object.
-        Important attributes are: ``root`` the solution , ``converged`` a
-        boolean flag indicating if the algorithm exited successfully and
-        ``flag`` which describes the cause of the termination. See
-        `RootResults` for a description of other attributes.
-
-    See also
-    --------
-    show_options : Additional options accepted by the solvers
-    root : Find a root of a vector function.
-
-    Notes
-    -----
-    This section describes the available solvers that can be selected by the
-    'method' parameter.
-
-    The default is to use the best method available for the situation
-    presented.
-    If a bracket is provided, it may use one of the bracketing methods.
-    If a derivative and an initial value are specified, it may
-    select one of the derivative-based methods.
-    If no method is judged applicable, it will raise an Exception.
-
-    Arguments for each method are as follows (x=required, o=optional).
-
-    +-----------------------------------------------+---+------+---------+----+----+--------+---------+------+------+---------+---------+
-    |                    method                     | f | args | bracket | x0 | x1 | fprime | fprime2 | xtol | rtol | maxiter | options |
-    +===============================================+===+======+=========+====+====+========+=========+======+======+=========+=========+
-    | :ref:`bisect `   | x |  o   |    x    |    |    |        |         |  o   |  o   |    o    |   o     |
-    +-----------------------------------------------+---+------+---------+----+----+--------+---------+------+------+---------+---------+
-    | :ref:`brentq `   | x |  o   |    x    |    |    |        |         |  o   |  o   |    o    |   o     |
-    +-----------------------------------------------+---+------+---------+----+----+--------+---------+------+------+---------+---------+
-    | :ref:`brenth `   | x |  o   |    x    |    |    |        |         |  o   |  o   |    o    |   o     |
-    +-----------------------------------------------+---+------+---------+----+----+--------+---------+------+------+---------+---------+
-    | :ref:`ridder `   | x |  o   |    x    |    |    |        |         |  o   |  o   |    o    |   o     |
-    +-----------------------------------------------+---+------+---------+----+----+--------+---------+------+------+---------+---------+
-    | :ref:`toms748 ` | x |  o   |    x    |    |    |        |         |  o   |  o   |    o    |   o     |
-    +-----------------------------------------------+---+------+---------+----+----+--------+---------+------+------+---------+---------+
-    | :ref:`secant `   | x |  o   |         | x  | o  |        |         |  o   |  o   |    o    |   o     |
-    +-----------------------------------------------+---+------+---------+----+----+--------+---------+------+------+---------+---------+
-    | :ref:`newton `   | x |  o   |         | x  |    |   o    |         |  o   |  o   |    o    |   o     |
-    +-----------------------------------------------+---+------+---------+----+----+--------+---------+------+------+---------+---------+
-    | :ref:`halley `   | x |  o   |         | x  |    |   x    |    x    |  o   |  o   |    o    |   o     |
-    +-----------------------------------------------+---+------+---------+----+----+--------+---------+------+------+---------+---------+
-
-    Examples
-    --------
-
-    Find the root of a simple cubic
-
-    >>> from scipy import optimize
-    >>> def f(x):
-    ...     return (x**3 - 1)  # only one real root at x = 1
-
-    >>> def fprime(x):
-    ...     return 3*x**2
-
-    The `brentq` method takes as input a bracket
-
-    >>> sol = optimize.root_scalar(f, bracket=[0, 3], method='brentq')
-    >>> sol.root, sol.iterations, sol.function_calls
-    (1.0, 10, 11)
-
-    The `newton` method takes as input a single point and uses the
-    derivative(s).
-
-    >>> sol = optimize.root_scalar(f, x0=0.2, fprime=fprime, method='newton')
-    >>> sol.root, sol.iterations, sol.function_calls
-    (1.0, 11, 22)
-
-    The function can provide the value and derivative(s) in a single call.
-
-    >>> def f_p_pp(x):
-    ...     return (x**3 - 1), 3*x**2, 6*x
-
-    >>> sol = optimize.root_scalar(
-    ...     f_p_pp, x0=0.2, fprime=True, method='newton'
-    ... )
-    >>> sol.root, sol.iterations, sol.function_calls
-    (1.0, 11, 11)
-
-    >>> sol = optimize.root_scalar(
-    ...     f_p_pp, x0=0.2, fprime=True, fprime2=True, method='halley'
-    ... )
-    >>> sol.root, sol.iterations, sol.function_calls
-    (1.0, 7, 8)
-
-
-    """  # noqa: E501
-    if not isinstance(args, tuple):
-        args = (args,)
-
-    if options is None:
-        options = {}
-
-    # fun also returns the derivative(s)
-    is_memoized = False
-    if fprime2 is not None and not callable(fprime2):
-        if bool(fprime2):
-            f = MemoizeDer(f)
-            is_memoized = True
-            fprime2 = f.fprime2
-            fprime = f.fprime
-        else:
-            fprime2 = None
-    if fprime is not None and not callable(fprime):
-        if bool(fprime):
-            f = MemoizeDer(f)
-            is_memoized = True
-            fprime = f.fprime
-        else:
-            fprime = None
-
-    # respect solver-specific default tolerances - only pass in if actually set
-    kwargs = {}
-    for k in ['xtol', 'rtol', 'maxiter']:
-        v = locals().get(k)
-        if v is not None:
-            kwargs[k] = v
-
-    # Set any solver-specific options
-    if options:
-        kwargs.update(options)
-    # Always request full_output from the underlying method as _root_scalar
-    # always returns a RootResults object
-    kwargs.update(full_output=True, disp=False)
-
-    # Pick a method if not specified.
-    # Use the "best" method available for the situation.
-    if not method:
-        if bracket:
-            method = 'brentq'
-        elif x0 is not None:
-            if fprime:
-                if fprime2:
-                    method = 'halley'
-                else:
-                    method = 'newton'
-            elif x1 is not None:
-                method = 'secant'
-            else:
-                method = 'newton'
-    if not method:
-        raise ValueError('Unable to select a solver as neither bracket '
-                         'nor starting point provided.')
-
-    meth = method.lower()
-    map2underlying = {'halley': 'newton', 'secant': 'newton'}
-
-    try:
-        methodc = getattr(optzeros, map2underlying.get(meth, meth))
-    except AttributeError as e:
-        raise ValueError('Unknown solver %s' % meth) from e
-
-    if meth in ['bisect', 'ridder', 'brentq', 'brenth', 'toms748']:
-        if not isinstance(bracket, (list, tuple, np.ndarray)):
-            raise ValueError('Bracket needed for %s' % method)
-
-        a, b = bracket[:2]
-        try:
-            r, sol = methodc(f, a, b, args=args, **kwargs)
-        except ValueError as e:
-            # gh-17622 fixed some bugs in low-level solvers by raising an error
-            # (rather than returning incorrect results) when the callable
-            # returns a NaN. It did so by wrapping the callable rather than
-            # modifying compiled code, so the iteration count is not available.
-            if hasattr(e, "_x"):
-                sol = optzeros.RootResults(root=e._x,
-                                           iterations=np.nan,
-                                           function_calls=e._function_calls,
-                                           flag=str(e), method=method)
-            else:
-                raise
-
-    elif meth in ['secant']:
-        if x0 is None:
-            raise ValueError('x0 must not be None for %s' % method)
-        if 'xtol' in kwargs:
-            kwargs['tol'] = kwargs.pop('xtol')
-        r, sol = methodc(f, x0, args=args, fprime=None, fprime2=None,
-                         x1=x1, **kwargs)
-    elif meth in ['newton']:
-        if x0 is None:
-            raise ValueError('x0 must not be None for %s' % method)
-        if not fprime:
-            # approximate fprime with finite differences
-
-            def fprime(x, *args):
-                # `root_scalar` doesn't actually seem to support vectorized
-                # use of `newton`. In that case, `approx_derivative` will
-                # always get scalar input. Nonetheless, it always returns an
-                # array, so we extract the element to produce scalar output.
-                return approx_derivative(f, x, method='2-point', args=args)[0]
-
-        if 'xtol' in kwargs:
-            kwargs['tol'] = kwargs.pop('xtol')
-        r, sol = methodc(f, x0, args=args, fprime=fprime, fprime2=None,
-                         **kwargs)
-    elif meth in ['halley']:
-        if x0 is None:
-            raise ValueError('x0 must not be None for %s' % method)
-        if not fprime:
-            raise ValueError('fprime must be specified for %s' % method)
-        if not fprime2:
-            raise ValueError('fprime2 must be specified for %s' % method)
-        if 'xtol' in kwargs:
-            kwargs['tol'] = kwargs.pop('xtol')
-        r, sol = methodc(f, x0, args=args, fprime=fprime, fprime2=fprime2, **kwargs)
-    else:
-        raise ValueError('Unknown solver %s' % method)
-
-    if is_memoized:
-        # Replace the function_calls count with the memoized count.
-        # Avoids double and triple-counting.
-        n_calls = f.n_calls
-        sol.function_calls = n_calls
-
-    return sol
-
-
-def _root_scalar_brentq_doc():
-    r"""
-    Options
-    -------
-    args : tuple, optional
-        Extra arguments passed to the objective function.
-    bracket: A sequence of 2 floats, optional
-        An interval bracketing a root.  `f(x, *args)` must have different
-        signs at the two endpoints.
-    xtol : float, optional
-        Tolerance (absolute) for termination.
-    rtol : float, optional
-        Tolerance (relative) for termination.
-    maxiter : int, optional
-        Maximum number of iterations.
-    options: dict, optional
-        Specifies any method-specific options not covered above
-
-    """
-    pass
-
-
-def _root_scalar_brenth_doc():
-    r"""
-    Options
-    -------
-    args : tuple, optional
-        Extra arguments passed to the objective function.
-    bracket: A sequence of 2 floats, optional
-        An interval bracketing a root.  `f(x, *args)` must have different
-        signs at the two endpoints.
-    xtol : float, optional
-        Tolerance (absolute) for termination.
-    rtol : float, optional
-        Tolerance (relative) for termination.
-    maxiter : int, optional
-        Maximum number of iterations.
-    options: dict, optional
-        Specifies any method-specific options not covered above.
-
-    """
-    pass
-
-def _root_scalar_toms748_doc():
-    r"""
-    Options
-    -------
-    args : tuple, optional
-        Extra arguments passed to the objective function.
-    bracket: A sequence of 2 floats, optional
-        An interval bracketing a root.  `f(x, *args)` must have different
-        signs at the two endpoints.
-    xtol : float, optional
-        Tolerance (absolute) for termination.
-    rtol : float, optional
-        Tolerance (relative) for termination.
-    maxiter : int, optional
-        Maximum number of iterations.
-    options: dict, optional
-        Specifies any method-specific options not covered above.
-
-    """
-    pass
-
-
-def _root_scalar_secant_doc():
-    r"""
-    Options
-    -------
-    args : tuple, optional
-        Extra arguments passed to the objective function.
-    xtol : float, optional
-        Tolerance (absolute) for termination.
-    rtol : float, optional
-        Tolerance (relative) for termination.
-    maxiter : int, optional
-        Maximum number of iterations.
-    x0 : float, required
-        Initial guess.
-    x1 : float, required
-        A second guess.
-    options: dict, optional
-        Specifies any method-specific options not covered above.
-
-    """
-    pass
-
-
-def _root_scalar_newton_doc():
-    r"""
-    Options
-    -------
-    args : tuple, optional
-        Extra arguments passed to the objective function and its derivative.
-    xtol : float, optional
-        Tolerance (absolute) for termination.
-    rtol : float, optional
-        Tolerance (relative) for termination.
-    maxiter : int, optional
-        Maximum number of iterations.
-    x0 : float, required
-        Initial guess.
-    fprime : bool or callable, optional
-        If `fprime` is a boolean and is True, `f` is assumed to return the
-        value of derivative along with the objective function.
-        `fprime` can also be a callable returning the derivative of `f`. In
-        this case, it must accept the same arguments as `f`.
-    options: dict, optional
-        Specifies any method-specific options not covered above.
-
-    """
-    pass
-
-
-def _root_scalar_halley_doc():
-    r"""
-    Options
-    -------
-    args : tuple, optional
-        Extra arguments passed to the objective function and its derivatives.
-    xtol : float, optional
-        Tolerance (absolute) for termination.
-    rtol : float, optional
-        Tolerance (relative) for termination.
-    maxiter : int, optional
-        Maximum number of iterations.
-    x0 : float, required
-        Initial guess.
-    fprime : bool or callable, required
-        If `fprime` is a boolean and is True, `f` is assumed to return the
-        value of derivative along with the objective function.
-        `fprime` can also be a callable returning the derivative of `f`. In
-        this case, it must accept the same arguments as `f`.
-    fprime2 : bool or callable, required
-        If `fprime2` is a boolean and is True, `f` is assumed to return the
-        value of 1st and 2nd derivatives along with the objective function.
-        `fprime2` can also be a callable returning the 2nd derivative of `f`.
-        In this case, it must accept the same arguments as `f`.
-    options: dict, optional
-        Specifies any method-specific options not covered above.
-
-    """
-    pass
-
-
-def _root_scalar_ridder_doc():
-    r"""
-    Options
-    -------
-    args : tuple, optional
-        Extra arguments passed to the objective function.
-    bracket: A sequence of 2 floats, optional
-        An interval bracketing a root.  `f(x, *args)` must have different
-        signs at the two endpoints.
-    xtol : float, optional
-        Tolerance (absolute) for termination.
-    rtol : float, optional
-        Tolerance (relative) for termination.
-    maxiter : int, optional
-        Maximum number of iterations.
-    options: dict, optional
-        Specifies any method-specific options not covered above.
-
-    """
-    pass
-
-
-def _root_scalar_bisect_doc():
-    r"""
-    Options
-    -------
-    args : tuple, optional
-        Extra arguments passed to the objective function.
-    bracket: A sequence of 2 floats, optional
-        An interval bracketing a root.  `f(x, *args)` must have different
-        signs at the two endpoints.
-    xtol : float, optional
-        Tolerance (absolute) for termination.
-    rtol : float, optional
-        Tolerance (relative) for termination.
-    maxiter : int, optional
-        Maximum number of iterations.
-    options: dict, optional
-        Specifies any method-specific options not covered above.
-
-    """
-    pass
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo.py
deleted file mode 100644
index 4dce006dcbcac78513451441e067f027016b6f5b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo.py
+++ /dev/null
@@ -1,1598 +0,0 @@
-"""shgo: The simplicial homology global optimisation algorithm."""
-from collections import namedtuple
-import time
-import logging
-import warnings
-import sys
-
-import numpy as np
-
-from scipy import spatial
-from scipy.optimize import OptimizeResult, minimize, Bounds
-from scipy.optimize._optimize import MemoizeJac
-from scipy.optimize._constraints import new_bounds_to_old
-from scipy.optimize._minimize import standardize_constraints
-from scipy._lib._util import _FunctionWrapper
-
-from scipy.optimize._shgo_lib._complex import Complex
-
-__all__ = ['shgo']
-
-
-def shgo(
-    func, bounds, args=(), constraints=None, n=100, iters=1, callback=None,
-    minimizer_kwargs=None, options=None, sampling_method='simplicial', *,
-    workers=1
-):
-    """
-    Finds the global minimum of a function using SHG optimization.
-
-    SHGO stands for "simplicial homology global optimization".
-
-    Parameters
-    ----------
-    func : callable
-        The objective function to be minimized.  Must be in the form
-        ``f(x, *args)``, where ``x`` is the argument in the form of a 1-D array
-        and ``args`` is a tuple of any additional fixed parameters needed to
-        completely specify the function.
-    bounds : sequence or `Bounds`
-        Bounds for variables. There are two ways to specify the bounds:
-
-        1. Instance of `Bounds` class.
-        2. Sequence of ``(min, max)`` pairs for each element in `x`.
-
-    args : tuple, optional
-        Any additional fixed parameters needed to completely specify the
-        objective function.
-    constraints : {Constraint, dict} or List of {Constraint, dict}, optional
-        Constraints definition. Only for COBYLA, COBYQA, SLSQP and trust-constr.
-        See the tutorial [5]_ for further details on specifying constraints.
-
-        .. note::
-
-           Only COBYLA, COBYQA, SLSQP, and trust-constr local minimize methods
-           currently support constraint arguments. If the ``constraints``
-           sequence used in the local optimization problem is not defined in
-           ``minimizer_kwargs`` and a constrained method is used then the
-           global ``constraints`` will be used.
-           (Defining a ``constraints`` sequence in ``minimizer_kwargs``
-           means that ``constraints`` will not be added so if equality
-           constraints and so forth need to be added then the inequality
-           functions in ``constraints`` need to be added to
-           ``minimizer_kwargs`` too).
-           COBYLA only supports inequality constraints.
-
-        .. versionchanged:: 1.11.0
-
-           ``constraints`` accepts `NonlinearConstraint`, `LinearConstraint`.
-
-    n : int, optional
-        Number of sampling points used in the construction of the simplicial
-        complex. For the default ``simplicial`` sampling method 2**dim + 1
-        sampling points are generated instead of the default `n=100`. For all
-        other specified values `n` sampling points are generated. For
-        ``sobol``, ``halton`` and other arbitrary `sampling_methods` `n=100` or
-        another specified number of sampling points are generated.
-    iters : int, optional
-        Number of iterations used in the construction of the simplicial
-        complex. Default is 1.
-    callback : callable, optional
-        Called after each iteration, as ``callback(xk)``, where ``xk`` is the
-        current parameter vector.
-    minimizer_kwargs : dict, optional
-        Extra keyword arguments to be passed to the minimizer
-        ``scipy.optimize.minimize`` Some important options could be:
-
-            * method : str
-                The minimization method. If not given, chosen to be one of
-                BFGS, L-BFGS-B, SLSQP, depending on whether or not the
-                problem has constraints or bounds.
-            * args : tuple
-                Extra arguments passed to the objective function (``func``) and
-                its derivatives (Jacobian, Hessian).
-            * options : dict, optional
-                Note that by default the tolerance is specified as
-                ``{ftol: 1e-12}``
-
-    options : dict, optional
-        A dictionary of solver options. Many of the options specified for the
-        global routine are also passed to the scipy.optimize.minimize routine.
-        The options that are also passed to the local routine are marked with
-        "(L)".
-
-        Stopping criteria, the algorithm will terminate if any of the specified
-        criteria are met. However, the default algorithm does not require any
-        to be specified:
-
-        * maxfev : int (L)
-            Maximum number of function evaluations in the feasible domain.
-            (Note only methods that support this option will terminate
-            the routine at precisely exact specified value. Otherwise the
-            criterion will only terminate during a global iteration)
-        * f_min
-            Specify the minimum objective function value, if it is known.
-        * f_tol : float
-            Precision goal for the value of f in the stopping
-            criterion. Note that the global routine will also
-            terminate if a sampling point in the global routine is
-            within this tolerance.
-        * maxiter : int
-            Maximum number of iterations to perform.
-        * maxev : int
-            Maximum number of sampling evaluations to perform (includes
-            searching in infeasible points).
-        * maxtime : float
-            Maximum processing runtime allowed
-        * minhgrd : int
-            Minimum homology group rank differential. The homology group of the
-            objective function is calculated (approximately) during every
-            iteration. The rank of this group has a one-to-one correspondence
-            with the number of locally convex subdomains in the objective
-            function (after adequate sampling points each of these subdomains
-            contain a unique global minimum). If the difference in the hgr is 0
-            between iterations for ``maxhgrd`` specified iterations the
-            algorithm will terminate.
-
-        Objective function knowledge:
-
-        * symmetry : list or bool
-            Specify if the objective function contains symmetric variables.
-            The search space (and therefore performance) is decreased by up to
-            O(n!) times in the fully symmetric case. If `True` is specified
-            then all variables will be set symmetric to the first variable.
-            Default
-            is set to False.
-
-            E.g.  f(x) = (x_1 + x_2 + x_3) + (x_4)**2 + (x_5)**2 + (x_6)**2
-
-            In this equation x_2 and x_3 are symmetric to x_1, while x_5 and
-            x_6 are symmetric to x_4, this can be specified to the solver as:
-
-            symmetry = [0,  # Variable 1
-                        0,  # symmetric to variable 1
-                        0,  # symmetric to variable 1
-                        3,  # Variable 4
-                        3,  # symmetric to variable 4
-                        3,  # symmetric to variable 4
-                        ]
-
-        * jac : bool or callable, optional
-            Jacobian (gradient) of objective function. Only for CG, BFGS,
-            Newton-CG, L-BFGS-B, TNC, SLSQP, dogleg, trust-ncg. If ``jac`` is a
-            boolean and is True, ``fun`` is assumed to return the gradient
-            along with the objective function. If False, the gradient will be
-            estimated numerically. ``jac`` can also be a callable returning the
-            gradient of the objective. In this case, it must accept the same
-            arguments as ``fun``. (Passed to `scipy.optimize.minimize`
-            automatically)
-
-        * hess, hessp : callable, optional
-            Hessian (matrix of second-order derivatives) of objective function
-            or Hessian of objective function times an arbitrary vector p.
-            Only for Newton-CG, dogleg, trust-ncg. Only one of ``hessp`` or
-            ``hess`` needs to be given. If ``hess`` is provided, then
-            ``hessp`` will be ignored. If neither ``hess`` nor ``hessp`` is
-            provided, then the Hessian product will be approximated using
-            finite differences on ``jac``. ``hessp`` must compute the Hessian
-            times an arbitrary vector. (Passed to `scipy.optimize.minimize`
-            automatically)
-
-        Algorithm settings:
-
-        * minimize_every_iter : bool
-            If True then promising global sampling points will be passed to a
-            local minimization routine every iteration. If True then only the
-            final minimizer pool will be run. Defaults to True.
-        * local_iter : int
-            Only evaluate a few of the best minimizer pool candidates every
-            iteration. If False all potential points are passed to the local
-            minimization routine.
-        * infty_constraints : bool
-            If True then any sampling points generated which are outside will
-            the feasible domain will be saved and given an objective function
-            value of ``inf``. If False then these points will be discarded.
-            Using this functionality could lead to higher performance with
-            respect to function evaluations before the global minimum is found,
-            specifying False will use less memory at the cost of a slight
-            decrease in performance. Defaults to True.
-
-        Feedback:
-
-        * disp : bool (L)
-            Set to True to print convergence messages.
-
-    sampling_method : str or function, optional
-        Current built in sampling method options are ``halton``, ``sobol`` and
-        ``simplicial``. The default ``simplicial`` provides
-        the theoretical guarantee of convergence to the global minimum in
-        finite time. ``halton`` and ``sobol`` method are faster in terms of
-        sampling point generation at the cost of the loss of
-        guaranteed convergence. It is more appropriate for most "easier"
-        problems where the convergence is relatively fast.
-        User defined sampling functions must accept two arguments of ``n``
-        sampling points of dimension ``dim`` per call and output an array of
-        sampling points with shape `n x dim`.
-
-    workers : int or map-like callable, optional
-        Sample and run the local serial minimizations in parallel.
-        Supply -1 to use all available CPU cores, or an int to use
-        that many Processes (uses `multiprocessing.Pool `).
-
-        Alternatively supply a map-like callable, such as
-        `multiprocessing.Pool.map` for parallel evaluation.
-        This evaluation is carried out as ``workers(func, iterable)``.
-        Requires that `func` be pickleable.
-
-        .. versionadded:: 1.11.0
-
-    Returns
-    -------
-    res : OptimizeResult
-        The optimization result represented as a `OptimizeResult` object.
-        Important attributes are:
-        ``x`` the solution array corresponding to the global minimum,
-        ``fun`` the function output at the global solution,
-        ``xl`` an ordered list of local minima solutions,
-        ``funl`` the function output at the corresponding local solutions,
-        ``success`` a Boolean flag indicating if the optimizer exited
-        successfully,
-        ``message`` which describes the cause of the termination,
-        ``nfev`` the total number of objective function evaluations including
-        the sampling calls,
-        ``nlfev`` the total number of objective function evaluations
-        culminating from all local search optimizations,
-        ``nit`` number of iterations performed by the global routine.
-
-    Notes
-    -----
-    Global optimization using simplicial homology global optimization [1]_.
-    Appropriate for solving general purpose NLP and blackbox optimization
-    problems to global optimality (low-dimensional problems).
-
-    In general, the optimization problems are of the form::
-
-        minimize f(x) subject to
-
-        g_i(x) >= 0,  i = 1,...,m
-        h_j(x)  = 0,  j = 1,...,p
-
-    where x is a vector of one or more variables. ``f(x)`` is the objective
-    function ``R^n -> R``, ``g_i(x)`` are the inequality constraints, and
-    ``h_j(x)`` are the equality constraints.
-
-    Optionally, the lower and upper bounds for each element in x can also be
-    specified using the `bounds` argument.
-
-    While most of the theoretical advantages of SHGO are only proven for when
-    ``f(x)`` is a Lipschitz smooth function, the algorithm is also proven to
-    converge to the global optimum for the more general case where ``f(x)`` is
-    non-continuous, non-convex and non-smooth, if the default sampling method
-    is used [1]_.
-
-    The local search method may be specified using the ``minimizer_kwargs``
-    parameter which is passed on to ``scipy.optimize.minimize``. By default,
-    the ``SLSQP`` method is used. In general, it is recommended to use the
-    ``SLSQP``, ``COBYLA``, or ``COBYQA`` local minimization if inequality
-    constraints are defined for the problem since the other methods do not use
-    constraints.
-
-    The ``halton`` and ``sobol`` method points are generated using
-    `scipy.stats.qmc`. Any other QMC method could be used.
-
-    References
-    ----------
-    .. [1] Endres, SC, Sandrock, C, Focke, WW (2018) "A simplicial homology
-           algorithm for lipschitz optimisation", Journal of Global
-           Optimization.
-    .. [2] Joe, SW and Kuo, FY (2008) "Constructing Sobol' sequences with
-           better  two-dimensional projections", SIAM J. Sci. Comput. 30,
-           2635-2654.
-    .. [3] Hock, W and Schittkowski, K (1981) "Test examples for nonlinear
-           programming codes", Lecture Notes in Economics and Mathematical
-           Systems, 187. Springer-Verlag, New York.
-           http://www.ai7.uni-bayreuth.de/test_problem_coll.pdf
-    .. [4] Wales, DJ (2015) "Perspective: Insight into reaction coordinates and
-           dynamics from the potential energy landscape",
-           Journal of Chemical Physics, 142(13), 2015.
-    .. [5] https://docs.scipy.org/doc/scipy/tutorial/optimize.html#constrained-minimization-of-multivariate-scalar-functions-minimize
-
-    Examples
-    --------
-    First consider the problem of minimizing the Rosenbrock function, `rosen`:
-
-    >>> from scipy.optimize import rosen, shgo
-    >>> bounds = [(0,2), (0, 2), (0, 2), (0, 2), (0, 2)]
-    >>> result = shgo(rosen, bounds)
-    >>> result.x, result.fun
-    (array([1., 1., 1., 1., 1.]), 2.920392374190081e-18)
-
-    Note that bounds determine the dimensionality of the objective
-    function and is therefore a required input, however you can specify
-    empty bounds using ``None`` or objects like ``np.inf`` which will be
-    converted to large float numbers.
-
-    >>> bounds = [(None, None), ]*4
-    >>> result = shgo(rosen, bounds)
-    >>> result.x
-    array([0.99999851, 0.99999704, 0.99999411, 0.9999882 ])
-
-    Next, we consider the Eggholder function, a problem with several local
-    minima and one global minimum. We will demonstrate the use of arguments and
-    the capabilities of `shgo`.
-    (https://en.wikipedia.org/wiki/Test_functions_for_optimization)
-
-    >>> import numpy as np
-    >>> def eggholder(x):
-    ...     return (-(x[1] + 47.0)
-    ...             * np.sin(np.sqrt(abs(x[0]/2.0 + (x[1] + 47.0))))
-    ...             - x[0] * np.sin(np.sqrt(abs(x[0] - (x[1] + 47.0))))
-    ...             )
-    ...
-    >>> bounds = [(-512, 512), (-512, 512)]
-
-    `shgo` has built-in low discrepancy sampling sequences. First, we will
-    input 64 initial sampling points of the *Sobol'* sequence:
-
-    >>> result = shgo(eggholder, bounds, n=64, sampling_method='sobol')
-    >>> result.x, result.fun
-    (array([512.        , 404.23180824]), -959.6406627208397)
-
-    `shgo` also has a return for any other local minima that was found, these
-    can be called using:
-
-    >>> result.xl
-    array([[ 512.        ,  404.23180824],
-           [ 283.0759062 , -487.12565635],
-           [-294.66820039, -462.01964031],
-           [-105.87688911,  423.15323845],
-           [-242.97926   ,  274.38030925],
-           [-506.25823477,    6.3131022 ],
-           [-408.71980731, -156.10116949],
-           [ 150.23207937,  301.31376595],
-           [  91.00920901, -391.283763  ],
-           [ 202.89662724, -269.38043241],
-           [ 361.66623976, -106.96493868],
-           [-219.40612786, -244.06020508]])
-
-    >>> result.funl
-    array([-959.64066272, -718.16745962, -704.80659592, -565.99778097,
-           -559.78685655, -557.36868733, -507.87385942, -493.9605115 ,
-           -426.48799655, -421.15571437, -419.31194957, -410.98477763])
-
-    These results are useful in applications where there are many global minima
-    and the values of other global minima are desired or where the local minima
-    can provide insight into the system (for example morphologies
-    in physical chemistry [4]_).
-
-    If we want to find a larger number of local minima, we can increase the
-    number of sampling points or the number of iterations. We'll increase the
-    number of sampling points to 64 and the number of iterations from the
-    default of 1 to 3. Using ``simplicial`` this would have given us
-    64 x 3 = 192 initial sampling points.
-
-    >>> result_2 = shgo(eggholder,
-    ...                 bounds, n=64, iters=3, sampling_method='sobol')
-    >>> len(result.xl), len(result_2.xl)
-    (12, 23)
-
-    Note the difference between, e.g., ``n=192, iters=1`` and ``n=64,
-    iters=3``.
-    In the first case the promising points contained in the minimiser pool
-    are processed only once. In the latter case it is processed every 64
-    sampling points for a total of 3 times.
-
-    To demonstrate solving problems with non-linear constraints consider the
-    following example from Hock and Schittkowski problem 73 (cattle-feed)
-    [3]_::
-
-        minimize: f = 24.55 * x_1 + 26.75 * x_2 + 39 * x_3 + 40.50 * x_4
-
-        subject to: 2.3 * x_1 + 5.6 * x_2 + 11.1 * x_3 + 1.3 * x_4 - 5    >= 0,
-
-                    12 * x_1 + 11.9 * x_2 + 41.8 * x_3 + 52.1 * x_4 - 21
-                        -1.645 * sqrt(0.28 * x_1**2 + 0.19 * x_2**2 +
-                                      20.5 * x_3**2 + 0.62 * x_4**2)      >= 0,
-
-                    x_1 + x_2 + x_3 + x_4 - 1                             == 0,
-
-                    1 >= x_i >= 0 for all i
-
-    The approximate answer given in [3]_ is::
-
-        f([0.6355216, -0.12e-11, 0.3127019, 0.05177655]) = 29.894378
-
-    >>> def f(x):  # (cattle-feed)
-    ...     return 24.55*x[0] + 26.75*x[1] + 39*x[2] + 40.50*x[3]
-    ...
-    >>> def g1(x):
-    ...     return 2.3*x[0] + 5.6*x[1] + 11.1*x[2] + 1.3*x[3] - 5  # >=0
-    ...
-    >>> def g2(x):
-    ...     return (12*x[0] + 11.9*x[1] +41.8*x[2] + 52.1*x[3] - 21
-    ...             - 1.645 * np.sqrt(0.28*x[0]**2 + 0.19*x[1]**2
-    ...                             + 20.5*x[2]**2 + 0.62*x[3]**2)
-    ...             ) # >=0
-    ...
-    >>> def h1(x):
-    ...     return x[0] + x[1] + x[2] + x[3] - 1  # == 0
-    ...
-    >>> cons = ({'type': 'ineq', 'fun': g1},
-    ...         {'type': 'ineq', 'fun': g2},
-    ...         {'type': 'eq', 'fun': h1})
-    >>> bounds = [(0, 1.0),]*4
-    >>> res = shgo(f, bounds, n=150, constraints=cons)
-    >>> res
-     message: Optimization terminated successfully.
-     success: True
-         fun: 29.894378159142136
-        funl: [ 2.989e+01]
-           x: [ 6.355e-01  1.137e-13  3.127e-01  5.178e-02] # may vary
-          xl: [[ 6.355e-01  1.137e-13  3.127e-01  5.178e-02]] # may vary
-         nit: 1
-        nfev: 142 # may vary
-       nlfev: 35 # may vary
-       nljev: 5
-       nlhev: 0
-
-    >>> g1(res.x), g2(res.x), h1(res.x)
-    (-5.062616992290714e-14, -2.9594104944408173e-12, 0.0)
-
-    """
-    # if necessary, convert bounds class to old bounds
-    if isinstance(bounds, Bounds):
-        bounds = new_bounds_to_old(bounds.lb, bounds.ub, len(bounds.lb))
-
-    # Initiate SHGO class
-    # use in context manager to make sure that any parallelization
-    # resources are freed.
-    with SHGO(func, bounds, args=args, constraints=constraints, n=n,
-               iters=iters, callback=callback,
-               minimizer_kwargs=minimizer_kwargs,
-               options=options, sampling_method=sampling_method,
-               workers=workers) as shc:
-        # Run the algorithm, process results and test success
-        shc.iterate_all()
-
-    if not shc.break_routine:
-        if shc.disp:
-            logging.info("Successfully completed construction of complex.")
-
-    # Test post iterations success
-    if len(shc.LMC.xl_maps) == 0:
-        # If sampling failed to find pool, return lowest sampled point
-        # with a warning
-        shc.find_lowest_vertex()
-        shc.break_routine = True
-        shc.fail_routine(mes="Failed to find a feasible minimizer point. "
-                             f"Lowest sampling point = {shc.f_lowest}")
-        shc.res.fun = shc.f_lowest
-        shc.res.x = shc.x_lowest
-        shc.res.nfev = shc.fn
-        shc.res.tnev = shc.n_sampled
-    else:
-        # Test that the optimal solutions do not violate any constraints
-        pass  # TODO
-
-    # Confirm the routine ran successfully
-    if not shc.break_routine:
-        shc.res.message = 'Optimization terminated successfully.'
-        shc.res.success = True
-
-    # Return the final results
-    return shc.res
-
-
-class SHGO:
-    def __init__(self, func, bounds, args=(), constraints=None, n=None,
-                 iters=None, callback=None, minimizer_kwargs=None,
-                 options=None, sampling_method='simplicial', workers=1):
-        from scipy.stats import qmc
-        # Input checks
-        methods = ['halton', 'sobol', 'simplicial']
-        if isinstance(sampling_method, str) and sampling_method not in methods:
-            raise ValueError(("Unknown sampling_method specified."
-                              " Valid methods: {}").format(', '.join(methods)))
-
-        # Split obj func if given with Jac
-        try:
-            if ((minimizer_kwargs['jac'] is True) and
-                    (not callable(minimizer_kwargs['jac']))):
-                self.func = MemoizeJac(func)
-                jac = self.func.derivative
-                minimizer_kwargs['jac'] = jac
-                func = self.func  # .fun
-            else:
-                self.func = func  # Normal definition of objective function
-        except (TypeError, KeyError):
-            self.func = func  # Normal definition of objective function
-
-        # Initiate class
-        self.func = _FunctionWrapper(func, args)
-        self.bounds = bounds
-        self.args = args
-        self.callback = callback
-
-        # Bounds
-        abound = np.array(bounds, float)
-        self.dim = np.shape(abound)[0]  # Dimensionality of problem
-
-        # Set none finite values to large floats
-        infind = ~np.isfinite(abound)
-        abound[infind[:, 0], 0] = -1e50
-        abound[infind[:, 1], 1] = 1e50
-
-        # Check if bounds are correctly specified
-        bnderr = abound[:, 0] > abound[:, 1]
-        if bnderr.any():
-            raise ValueError('Error: lb > ub in bounds {}.'
-                             .format(', '.join(str(b) for b in bnderr)))
-
-        self.bounds = abound
-
-        # Constraints
-        # Process constraint dict sequence:
-        self.constraints = constraints
-        if constraints is not None:
-            self.min_cons = constraints
-            self.g_cons = []
-            self.g_args = []
-
-            # shgo internals deals with old-style constraints
-            # self.constraints is used to create Complex, so need
-            # to be stored internally in old-style.
-            # `minimize` takes care of normalising these constraints
-            # for slsqp/cobyla/cobyqa/trust-constr.
-            self.constraints = standardize_constraints(
-                constraints,
-                np.empty(self.dim, float),
-                'old'
-            )
-            for cons in self.constraints:
-                if cons['type'] in ('ineq'):
-                    self.g_cons.append(cons['fun'])
-                    try:
-                        self.g_args.append(cons['args'])
-                    except KeyError:
-                        self.g_args.append(())
-            self.g_cons = tuple(self.g_cons)
-            self.g_args = tuple(self.g_args)
-        else:
-            self.g_cons = None
-            self.g_args = None
-
-        # Define local minimization keyword arguments
-        # Start with defaults
-        self.minimizer_kwargs = {'method': 'SLSQP',
-                                 'bounds': self.bounds,
-                                 'options': {},
-                                 'callback': self.callback
-                                 }
-        if minimizer_kwargs is not None:
-            # Overwrite with supplied values
-            self.minimizer_kwargs.update(minimizer_kwargs)
-
-        else:
-            self.minimizer_kwargs['options'] = {'ftol': 1e-12}
-
-        if (
-            self.minimizer_kwargs['method'].lower() in ('slsqp', 'cobyla',
-                                                        'cobyqa',
-                                                        'trust-constr')
-            and (
-                minimizer_kwargs is not None and
-                'constraints' not in minimizer_kwargs and
-                constraints is not None
-            ) or
-            (self.g_cons is not None)
-        ):
-            self.minimizer_kwargs['constraints'] = self.min_cons
-
-        # Process options dict
-        if options is not None:
-            self.init_options(options)
-        else:  # Default settings:
-            self.f_min_true = None
-            self.minimize_every_iter = True
-
-            # Algorithm limits
-            self.maxiter = None
-            self.maxfev = None
-            self.maxev = None
-            self.maxtime = None
-            self.f_min_true = None
-            self.minhgrd = None
-
-            # Objective function knowledge
-            self.symmetry = None
-
-            # Algorithm functionality
-            self.infty_cons_sampl = True
-            self.local_iter = False
-
-            # Feedback
-            self.disp = False
-
-        # Remove unknown arguments in self.minimizer_kwargs
-        # Start with arguments all the solvers have in common
-        self.min_solver_args = ['fun', 'x0', 'args',
-                                'callback', 'options', 'method']
-        # then add the ones unique to specific solvers
-        solver_args = {
-            '_custom': ['jac', 'hess', 'hessp', 'bounds', 'constraints'],
-            'nelder-mead': [],
-            'powell': [],
-            'cg': ['jac'],
-            'bfgs': ['jac'],
-            'newton-cg': ['jac', 'hess', 'hessp'],
-            'l-bfgs-b': ['jac', 'bounds'],
-            'tnc': ['jac', 'bounds'],
-            'cobyla': ['constraints', 'catol'],
-            'cobyqa': ['bounds', 'constraints', 'feasibility_tol'],
-            'slsqp': ['jac', 'bounds', 'constraints'],
-            'dogleg': ['jac', 'hess'],
-            'trust-ncg': ['jac', 'hess', 'hessp'],
-            'trust-krylov': ['jac', 'hess', 'hessp'],
-            'trust-exact': ['jac', 'hess'],
-            'trust-constr': ['jac', 'hess', 'hessp', 'constraints'],
-        }
-        method = self.minimizer_kwargs['method']
-        self.min_solver_args += solver_args[method.lower()]
-
-        # Only retain the known arguments
-        def _restrict_to_keys(dictionary, goodkeys):
-            """Remove keys from dictionary if not in goodkeys - inplace"""
-            existingkeys = set(dictionary)
-            for key in existingkeys - set(goodkeys):
-                dictionary.pop(key, None)
-
-        _restrict_to_keys(self.minimizer_kwargs, self.min_solver_args)
-        _restrict_to_keys(self.minimizer_kwargs['options'],
-                          self.min_solver_args + ['ftol'])
-
-        # Algorithm controls
-        # Global controls
-        self.stop_global = False  # Used in the stopping_criteria method
-        self.break_routine = False  # Break the algorithm globally
-        self.iters = iters  # Iterations to be ran
-        self.iters_done = 0  # Iterations completed
-        self.n = n  # Sampling points per iteration
-        self.nc = 0  # n  # Sampling points to sample in current iteration
-        self.n_prc = 0  # Processed points (used to track Delaunay iters)
-        self.n_sampled = 0  # To track no. of sampling points already generated
-        self.fn = 0  # Number of feasible sampling points evaluations performed
-        self.hgr = 0  # Homology group rank
-        # Initially attempt to build the triangulation incrementally:
-        self.qhull_incremental = True
-
-        # Default settings if no sampling criteria.
-        if (self.n is None) and (self.iters is None) \
-                and (sampling_method == 'simplicial'):
-            self.n = 2 ** self.dim + 1
-            self.nc = 0  # self.n
-        if self.iters is None:
-            self.iters = 1
-        if (self.n is None) and not (sampling_method == 'simplicial'):
-            self.n = self.n = 100
-            self.nc = 0  # self.n
-        if (self.n == 100) and (sampling_method == 'simplicial'):
-            self.n = 2 ** self.dim + 1
-
-        if not ((self.maxiter is None) and (self.maxfev is None) and (
-                self.maxev is None)
-                and (self.minhgrd is None) and (self.f_min_true is None)):
-            self.iters = None
-
-        # Set complex construction mode based on a provided stopping criteria:
-        # Initialise sampling Complex and function cache
-        # Note that sfield_args=() since args are already wrapped in self.func
-        # using the_FunctionWrapper class.
-        self.HC = Complex(dim=self.dim, domain=self.bounds,
-                          sfield=self.func, sfield_args=(),
-                          symmetry=self.symmetry,
-                          constraints=self.constraints,
-                          workers=workers)
-
-        # Choose complex constructor
-        if sampling_method == 'simplicial':
-            self.iterate_complex = self.iterate_hypercube
-            self.sampling_method = sampling_method
-
-        elif sampling_method in ['halton', 'sobol'] or \
-                not isinstance(sampling_method, str):
-            self.iterate_complex = self.iterate_delaunay
-            # Sampling method used
-            if sampling_method in ['halton', 'sobol']:
-                if sampling_method == 'sobol':
-                    self.n = int(2 ** np.ceil(np.log2(self.n)))
-                    # self.n #TODO: Should always be self.n, this is
-                    # unacceptable for shgo, check that nfev behaves as
-                    # expected.
-                    self.nc = 0
-                    self.sampling_method = 'sobol'
-                    self.qmc_engine = qmc.Sobol(d=self.dim, scramble=False,
-                                                seed=0)
-                else:
-                    self.sampling_method = 'halton'
-                    self.qmc_engine = qmc.Halton(d=self.dim, scramble=True,
-                                                 seed=0)
-
-                def sampling_method(n, d):
-                    return self.qmc_engine.random(n)
-
-            else:
-                # A user defined sampling method:
-                self.sampling_method = 'custom'
-
-            self.sampling = self.sampling_custom
-            self.sampling_function = sampling_method  # F(n, d)
-
-        # Local controls
-        self.stop_l_iter = False  # Local minimisation iterations
-        self.stop_complex_iter = False  # Sampling iterations
-
-        # Initiate storage objects used in algorithm classes
-        self.minimizer_pool = []
-
-        # Cache of local minimizers mapped
-        self.LMC = LMapCache()
-
-        # Initialize return object
-        self.res = OptimizeResult()  # scipy.optimize.OptimizeResult object
-        self.res.nfev = 0  # Includes each sampling point as func evaluation
-        self.res.nlfev = 0  # Local function evals for all minimisers
-        self.res.nljev = 0  # Local Jacobian evals for all minimisers
-        self.res.nlhev = 0  # Local Hessian evals for all minimisers
-
-    # Initiation aids
-    def init_options(self, options):
-        """
-        Initiates the options.
-
-        Can also be useful to change parameters after class initiation.
-
-        Parameters
-        ----------
-        options : dict
-
-        Returns
-        -------
-        None
-
-        """
-        # Update 'options' dict passed to optimize.minimize
-        # Do this first so we don't mutate `options` below.
-        self.minimizer_kwargs['options'].update(options)
-
-        # Ensure that 'jac', 'hess', and 'hessp' are passed directly to
-        # `minimize` as keywords, not as part of its 'options' dictionary.
-        for opt in ['jac', 'hess', 'hessp']:
-            if opt in self.minimizer_kwargs['options']:
-                self.minimizer_kwargs[opt] = (
-                    self.minimizer_kwargs['options'].pop(opt))
-
-        # Default settings:
-        self.minimize_every_iter = options.get('minimize_every_iter', True)
-
-        # Algorithm limits
-        # Maximum number of iterations to perform.
-        self.maxiter = options.get('maxiter', None)
-        # Maximum number of function evaluations in the feasible domain
-        self.maxfev = options.get('maxfev', None)
-        # Maximum number of sampling evaluations (includes searching in
-        # infeasible points
-        self.maxev = options.get('maxev', None)
-        # Maximum processing runtime allowed
-        self.init = time.time()
-        self.maxtime = options.get('maxtime', None)
-        if 'f_min' in options:
-            # Specify the minimum objective function value, if it is known.
-            self.f_min_true = options['f_min']
-            self.f_tol = options.get('f_tol', 1e-4)
-        else:
-            self.f_min_true = None
-
-        self.minhgrd = options.get('minhgrd', None)
-
-        # Objective function knowledge
-        self.symmetry = options.get('symmetry', False)
-        if self.symmetry:
-            self.symmetry = [0, ]*len(self.bounds)
-        else:
-            self.symmetry = None
-        # Algorithm functionality
-        # Only evaluate a few of the best candidates
-        self.local_iter = options.get('local_iter', False)
-        self.infty_cons_sampl = options.get('infty_constraints', True)
-
-        # Feedback
-        self.disp = options.get('disp', False)
-
-    def __enter__(self):
-        return self
-
-    def __exit__(self, *args):
-        return self.HC.V._mapwrapper.__exit__(*args)
-
-    # Iteration properties
-    # Main construction loop:
-    def iterate_all(self):
-        """
-        Construct for `iters` iterations.
-
-        If uniform sampling is used, every iteration adds 'n' sampling points.
-
-        Iterations if a stopping criteria (e.g., sampling points or
-        processing time) has been met.
-
-        """
-        if self.disp:
-            logging.info('Splitting first generation')
-
-        while not self.stop_global:
-            if self.break_routine:
-                break
-            # Iterate complex, process minimisers
-            self.iterate()
-            self.stopping_criteria()
-
-        # Build minimiser pool
-        # Final iteration only needed if pools weren't minimised every
-        # iteration
-        if not self.minimize_every_iter:
-            if not self.break_routine:
-                self.find_minima()
-
-        self.res.nit = self.iters_done  # + 1
-        self.fn = self.HC.V.nfev
-
-    def find_minima(self):
-        """
-        Construct the minimizer pool, map the minimizers to local minima
-        and sort the results into a global return object.
-        """
-        if self.disp:
-            logging.info('Searching for minimizer pool...')
-
-        self.minimizers()
-
-        if len(self.X_min) != 0:
-            # Minimize the pool of minimizers with local minimization methods
-            # Note that if Options['local_iter'] is an `int` instead of default
-            # value False then only that number of candidates will be minimized
-            self.minimise_pool(self.local_iter)
-            # Sort results and build the global return object
-            self.sort_result()
-
-            # Lowest values used to report in case of failures
-            self.f_lowest = self.res.fun
-            self.x_lowest = self.res.x
-        else:
-            self.find_lowest_vertex()
-
-        if self.disp:
-            logging.info(f"Minimiser pool = SHGO.X_min = {self.X_min}")
-
-    def find_lowest_vertex(self):
-        # Find the lowest objective function value on one of
-        # the vertices of the simplicial complex
-        self.f_lowest = np.inf
-        for x in self.HC.V.cache:
-            if self.HC.V[x].f < self.f_lowest:
-                if self.disp:
-                    logging.info(f'self.HC.V[x].f = {self.HC.V[x].f}')
-                self.f_lowest = self.HC.V[x].f
-                self.x_lowest = self.HC.V[x].x_a
-        for lmc in self.LMC.cache:
-            if self.LMC[lmc].f_min < self.f_lowest:
-                self.f_lowest = self.LMC[lmc].f_min
-                self.x_lowest = self.LMC[lmc].x_l
-
-        if self.f_lowest == np.inf:  # no feasible point
-            self.f_lowest = None
-            self.x_lowest = None
-
-    # Stopping criteria functions:
-    def finite_iterations(self):
-        mi = min(x for x in [self.iters, self.maxiter] if x is not None)
-        if self.disp:
-            logging.info(f'Iterations done = {self.iters_done} / {mi}')
-        if self.iters is not None:
-            if self.iters_done >= (self.iters):
-                self.stop_global = True
-
-        if self.maxiter is not None:  # Stop for infeasible sampling
-            if self.iters_done >= (self.maxiter):
-                self.stop_global = True
-        return self.stop_global
-
-    def finite_fev(self):
-        # Finite function evals in the feasible domain
-        if self.disp:
-            logging.info(f'Function evaluations done = {self.fn} / {self.maxfev}')
-        if self.fn >= self.maxfev:
-            self.stop_global = True
-        return self.stop_global
-
-    def finite_ev(self):
-        # Finite evaluations including infeasible sampling points
-        if self.disp:
-            logging.info(f'Sampling evaluations done = {self.n_sampled} '
-                         f'/ {self.maxev}')
-        if self.n_sampled >= self.maxev:
-            self.stop_global = True
-
-    def finite_time(self):
-        if self.disp:
-            logging.info(f'Time elapsed = {time.time() - self.init} '
-                         f'/ {self.maxtime}')
-        if (time.time() - self.init) >= self.maxtime:
-            self.stop_global = True
-
-    def finite_precision(self):
-        """
-        Stop the algorithm if the final function value is known
-
-        Specify in options (with ``self.f_min_true = options['f_min']``)
-        and the tolerance with ``f_tol = options['f_tol']``
-        """
-        # If no minimizer has been found use the lowest sampling value
-        self.find_lowest_vertex()
-        if self.disp:
-            logging.info(f'Lowest function evaluation = {self.f_lowest}')
-            logging.info(f'Specified minimum = {self.f_min_true}')
-        # If no feasible point was return from test
-        if self.f_lowest is None:
-            return self.stop_global
-
-        # Function to stop algorithm at specified percentage error:
-        if self.f_min_true == 0.0:
-            if self.f_lowest <= self.f_tol:
-                self.stop_global = True
-        else:
-            pe = (self.f_lowest - self.f_min_true) / abs(self.f_min_true)
-            if self.f_lowest <= self.f_min_true:
-                self.stop_global = True
-                # 2if (pe - self.f_tol) <= abs(1.0 / abs(self.f_min_true)):
-                if abs(pe) >= 2 * self.f_tol:
-                    warnings.warn(
-                        f"A much lower value than expected f* = {self.f_min_true} "
-                        f"was found f_lowest = {self.f_lowest}",
-                        stacklevel=3
-                    )
-            if pe <= self.f_tol:
-                self.stop_global = True
-
-        return self.stop_global
-
-    def finite_homology_growth(self):
-        """
-        Stop the algorithm if homology group rank did not grow in iteration.
-        """
-        if self.LMC.size == 0:
-            return  # pass on no reason to stop yet.
-        self.hgrd = self.LMC.size - self.hgr
-
-        self.hgr = self.LMC.size
-        if self.hgrd <= self.minhgrd:
-            self.stop_global = True
-        if self.disp:
-            logging.info(f'Current homology growth = {self.hgrd} '
-                         f' (minimum growth = {self.minhgrd})')
-        return self.stop_global
-
-    def stopping_criteria(self):
-        """
-        Various stopping criteria ran every iteration
-
-        Returns
-        -------
-        stop : bool
-        """
-        if self.maxiter is not None:
-            self.finite_iterations()
-        if self.iters is not None:
-            self.finite_iterations()
-        if self.maxfev is not None:
-            self.finite_fev()
-        if self.maxev is not None:
-            self.finite_ev()
-        if self.maxtime is not None:
-            self.finite_time()
-        if self.f_min_true is not None:
-            self.finite_precision()
-        if self.minhgrd is not None:
-            self.finite_homology_growth()
-        return self.stop_global
-
-    def iterate(self):
-        self.iterate_complex()
-
-        # Build minimizer pool
-        if self.minimize_every_iter:
-            if not self.break_routine:
-                self.find_minima()  # Process minimizer pool
-
-        # Algorithm updates
-        self.iters_done += 1
-
-    def iterate_hypercube(self):
-        """
-        Iterate a subdivision of the complex
-
-        Note: called with ``self.iterate_complex()`` after class initiation
-        """
-        # Iterate the complex
-        if self.disp:
-            logging.info('Constructing and refining simplicial complex graph '
-                         'structure')
-        if self.n is None:
-            self.HC.refine_all()
-            self.n_sampled = self.HC.V.size()  # nevs counted
-        else:
-            self.HC.refine(self.n)
-            self.n_sampled += self.n
-
-        if self.disp:
-            logging.info('Triangulation completed, evaluating all constraints '
-                         'and objective function values.')
-
-        # Re-add minimisers to complex
-        if len(self.LMC.xl_maps) > 0:
-            for xl in self.LMC.cache:
-                v = self.HC.V[xl]
-                v_near = v.star()
-                for v in v.nn:
-                    v_near = v_near.union(v.nn)
-                # Reconnect vertices to complex
-                # if self.HC.connect_vertex_non_symm(tuple(self.LMC[xl].x_l),
-                #                                   near=v_near):
-                #    continue
-                # else:
-                    # If failure to find in v_near, then search all vertices
-                    # (very expensive operation:
-                #    self.HC.connect_vertex_non_symm(tuple(self.LMC[xl].x_l)
-                #                                    )
-
-        # Evaluate all constraints and functions
-        self.HC.V.process_pools()
-        if self.disp:
-            logging.info('Evaluations completed.')
-
-        # feasible sampling points counted by the triangulation.py routines
-        self.fn = self.HC.V.nfev
-        return
-
-    def iterate_delaunay(self):
-        """
-        Build a complex of Delaunay triangulated points
-
-        Note: called with ``self.iterate_complex()`` after class initiation
-        """
-        self.nc += self.n
-        self.sampled_surface(infty_cons_sampl=self.infty_cons_sampl)
-
-        # Add sampled points to a triangulation, construct self.Tri
-        if self.disp:
-            logging.info(f'self.n = {self.n}')
-            logging.info(f'self.nc = {self.nc}')
-            logging.info('Constructing and refining simplicial complex graph '
-                         'structure from sampling points.')
-
-        if self.dim < 2:
-            self.Ind_sorted = np.argsort(self.C, axis=0)
-            self.Ind_sorted = self.Ind_sorted.flatten()
-            tris = []
-            for ind, ind_s in enumerate(self.Ind_sorted):
-                if ind > 0:
-                    tris.append(self.Ind_sorted[ind - 1:ind + 1])
-
-            tris = np.array(tris)
-            # Store 1D triangulation:
-            self.Tri = namedtuple('Tri', ['points', 'simplices'])(self.C, tris)
-            self.points = {}
-        else:
-            if self.C.shape[0] > self.dim + 1:  # Ensure a simplex can be built
-                self.delaunay_triangulation(n_prc=self.n_prc)
-            self.n_prc = self.C.shape[0]
-
-        if self.disp:
-            logging.info('Triangulation completed, evaluating all '
-                         'constraints and objective function values.')
-
-        if hasattr(self, 'Tri'):
-            self.HC.vf_to_vv(self.Tri.points, self.Tri.simplices)
-
-        # Process all pools
-        # Evaluate all constraints and functions
-        if self.disp:
-            logging.info('Triangulation completed, evaluating all constraints '
-                         'and objective function values.')
-
-        # Evaluate all constraints and functions
-        self.HC.V.process_pools()
-        if self.disp:
-            logging.info('Evaluations completed.')
-
-        # feasible sampling points counted by the triangulation.py routines
-        self.fn = self.HC.V.nfev
-        self.n_sampled = self.nc  # nevs counted in triangulation
-        return
-
-    # Hypercube minimizers
-    def minimizers(self):
-        """
-        Returns the indexes of all minimizers
-        """
-        self.minimizer_pool = []
-        # Note: Can implement parallelization here
-        for x in self.HC.V.cache:
-            in_LMC = False
-            if len(self.LMC.xl_maps) > 0:
-                for xlmi in self.LMC.xl_maps:
-                    if np.all(np.array(x) == np.array(xlmi)):
-                        in_LMC = True
-            if in_LMC:
-                continue
-
-            if self.HC.V[x].minimiser():
-                if self.disp:
-                    logging.info('=' * 60)
-                    logging.info(f'v.x = {self.HC.V[x].x_a} is minimizer')
-                    logging.info(f'v.f = {self.HC.V[x].f} is minimizer')
-                    logging.info('=' * 30)
-
-                if self.HC.V[x] not in self.minimizer_pool:
-                    self.minimizer_pool.append(self.HC.V[x])
-
-                if self.disp:
-                    logging.info('Neighbors:')
-                    logging.info('=' * 30)
-                    for vn in self.HC.V[x].nn:
-                        logging.info(f'x = {vn.x} || f = {vn.f}')
-
-                    logging.info('=' * 60)
-        self.minimizer_pool_F = []
-        self.X_min = []
-        # normalized tuple in the Vertex cache
-        self.X_min_cache = {}  # Cache used in hypercube sampling
-
-        for v in self.minimizer_pool:
-            self.X_min.append(v.x_a)
-            self.minimizer_pool_F.append(v.f)
-            self.X_min_cache[tuple(v.x_a)] = v.x
-
-        self.minimizer_pool_F = np.array(self.minimizer_pool_F)
-        self.X_min = np.array(self.X_min)
-
-        # TODO: Only do this if global mode
-        self.sort_min_pool()
-
-        return self.X_min
-
-    # Local minimisation
-    # Minimiser pool processing
-    def minimise_pool(self, force_iter=False):
-        """
-        This processing method can optionally minimise only the best candidate
-        solutions in the minimiser pool
-
-        Parameters
-        ----------
-        force_iter : int
-                     Number of starting minimizers to process (can be specified
-                     globally or locally)
-
-        """
-        # Find first local minimum
-        # NOTE: Since we always minimize this value regardless it is a waste to
-        # build the topograph first before minimizing
-        lres_f_min = self.minimize(self.X_min[0], ind=self.minimizer_pool[0])
-
-        # Trim minimized point from current minimizer set
-        self.trim_min_pool(0)
-
-        while not self.stop_l_iter:
-            # Global stopping criteria:
-            self.stopping_criteria()
-
-            # Note first iteration is outside loop:
-            if force_iter:
-                force_iter -= 1
-                if force_iter == 0:
-                    self.stop_l_iter = True
-                    break
-
-            if np.shape(self.X_min)[0] == 0:
-                self.stop_l_iter = True
-                break
-
-            # Construct topograph from current minimizer set
-            # (NOTE: This is a very small topograph using only the minizer pool
-            #        , it might be worth using some graph theory tools instead.
-            self.g_topograph(lres_f_min.x, self.X_min)
-
-            # Find local minimum at the miniser with the greatest Euclidean
-            # distance from the current solution
-            ind_xmin_l = self.Z[:, -1]
-            lres_f_min = self.minimize(self.Ss[-1, :], self.minimizer_pool[-1])
-
-            # Trim minimised point from current minimizer set
-            self.trim_min_pool(ind_xmin_l)
-
-        # Reset controls
-        self.stop_l_iter = False
-        return
-
-    def sort_min_pool(self):
-        # Sort to find minimum func value in min_pool
-        self.ind_f_min = np.argsort(self.minimizer_pool_F)
-        self.minimizer_pool = np.array(self.minimizer_pool)[self.ind_f_min]
-        self.minimizer_pool_F = np.array(self.minimizer_pool_F)[
-            self.ind_f_min]
-        return
-
-    def trim_min_pool(self, trim_ind):
-        self.X_min = np.delete(self.X_min, trim_ind, axis=0)
-        self.minimizer_pool_F = np.delete(self.minimizer_pool_F, trim_ind)
-        self.minimizer_pool = np.delete(self.minimizer_pool, trim_ind)
-        return
-
-    def g_topograph(self, x_min, X_min):
-        """
-        Returns the topographical vector stemming from the specified value
-        ``x_min`` for the current feasible set ``X_min`` with True boolean
-        values indicating positive entries and False values indicating
-        negative entries.
-
-        """
-        x_min = np.array([x_min])
-        self.Y = spatial.distance.cdist(x_min, X_min, 'euclidean')
-        # Find sorted indexes of spatial distances:
-        self.Z = np.argsort(self.Y, axis=-1)
-
-        self.Ss = X_min[self.Z][0]
-        self.minimizer_pool = self.minimizer_pool[self.Z]
-        self.minimizer_pool = self.minimizer_pool[0]
-        return self.Ss
-
-    # Local bound functions
-    def construct_lcb_simplicial(self, v_min):
-        """
-        Construct locally (approximately) convex bounds
-
-        Parameters
-        ----------
-        v_min : Vertex object
-                The minimizer vertex
-
-        Returns
-        -------
-        cbounds : list of lists
-            List of size dimension with length-2 list of bounds for each
-            dimension.
-
-        """
-        cbounds = [[x_b_i[0], x_b_i[1]] for x_b_i in self.bounds]
-        # Loop over all bounds
-        for vn in v_min.nn:
-            for i, x_i in enumerate(vn.x_a):
-                # Lower bound
-                if (x_i < v_min.x_a[i]) and (x_i > cbounds[i][0]):
-                    cbounds[i][0] = x_i
-
-                # Upper bound
-                if (x_i > v_min.x_a[i]) and (x_i < cbounds[i][1]):
-                    cbounds[i][1] = x_i
-
-        if self.disp:
-            logging.info(f'cbounds found for v_min.x_a = {v_min.x_a}')
-            logging.info(f'cbounds = {cbounds}')
-
-        return cbounds
-
-    def construct_lcb_delaunay(self, v_min, ind=None):
-        """
-        Construct locally (approximately) convex bounds
-
-        Parameters
-        ----------
-        v_min : Vertex object
-                The minimizer vertex
-
-        Returns
-        -------
-        cbounds : list of lists
-            List of size dimension with length-2 list of bounds for each
-            dimension.
-        """
-        cbounds = [[x_b_i[0], x_b_i[1]] for x_b_i in self.bounds]
-
-        return cbounds
-
-    # Minimize a starting point locally
-    def minimize(self, x_min, ind=None):
-        """
-        This function is used to calculate the local minima using the specified
-        sampling point as a starting value.
-
-        Parameters
-        ----------
-        x_min : vector of floats
-            Current starting point to minimize.
-
-        Returns
-        -------
-        lres : OptimizeResult
-            The local optimization result represented as a `OptimizeResult`
-            object.
-        """
-        # Use minima maps if vertex was already run
-        if self.disp:
-            logging.info(f'Vertex minimiser maps = {self.LMC.v_maps}')
-
-        if self.LMC[x_min].lres is not None:
-            logging.info(f'Found self.LMC[x_min].lres = '
-                         f'{self.LMC[x_min].lres}')
-            return self.LMC[x_min].lres
-
-        if self.callback is not None:
-            logging.info(f'Callback for minimizer starting at {x_min}:')
-
-        if self.disp:
-            logging.info(f'Starting minimization at {x_min}...')
-
-        if self.sampling_method == 'simplicial':
-            x_min_t = tuple(x_min)
-            # Find the normalized tuple in the Vertex cache:
-            x_min_t_norm = self.X_min_cache[tuple(x_min_t)]
-            x_min_t_norm = tuple(x_min_t_norm)
-            g_bounds = self.construct_lcb_simplicial(self.HC.V[x_min_t_norm])
-            if 'bounds' in self.min_solver_args:
-                self.minimizer_kwargs['bounds'] = g_bounds
-                logging.info(self.minimizer_kwargs['bounds'])
-
-        else:
-            g_bounds = self.construct_lcb_delaunay(x_min, ind=ind)
-            if 'bounds' in self.min_solver_args:
-                self.minimizer_kwargs['bounds'] = g_bounds
-                logging.info(self.minimizer_kwargs['bounds'])
-
-        if self.disp and 'bounds' in self.minimizer_kwargs:
-            logging.info('bounds in kwarg:')
-            logging.info(self.minimizer_kwargs['bounds'])
-
-        # Local minimization using scipy.optimize.minimize:
-        lres = minimize(self.func, x_min, **self.minimizer_kwargs)
-
-        if self.disp:
-            logging.info(f'lres = {lres}')
-
-        # Local function evals for all minimizers
-        self.res.nlfev += lres.nfev
-        if 'njev' in lres:
-            self.res.nljev += lres.njev
-        if 'nhev' in lres:
-            self.res.nlhev += lres.nhev
-
-        try:  # Needed because of the brain dead 1x1 NumPy arrays
-            lres.fun = lres.fun[0]
-        except (IndexError, TypeError):
-            lres.fun
-
-        # Append minima maps
-        self.LMC[x_min]
-        self.LMC.add_res(x_min, lres, bounds=g_bounds)
-
-        return lres
-
-    # Post local minimization processing
-    def sort_result(self):
-        """
-        Sort results and build the global return object
-        """
-        # Sort results in local minima cache
-        results = self.LMC.sort_cache_result()
-        self.res.xl = results['xl']
-        self.res.funl = results['funl']
-        self.res.x = results['x']
-        self.res.fun = results['fun']
-
-        # Add local func evals to sampling func evals
-        # Count the number of feasible vertices and add to local func evals:
-        self.res.nfev = self.fn + self.res.nlfev
-        return self.res
-
-    # Algorithm controls
-    def fail_routine(self, mes=("Failed to converge")):
-        self.break_routine = True
-        self.res.success = False
-        self.X_min = [None]
-        self.res.message = mes
-
-    def sampled_surface(self, infty_cons_sampl=False):
-        """
-        Sample the function surface.
-
-        There are 2 modes, if ``infty_cons_sampl`` is True then the sampled
-        points that are generated outside the feasible domain will be
-        assigned an ``inf`` value in accordance with SHGO rules.
-        This guarantees convergence and usually requires less objective
-        function evaluations at the computational costs of more Delaunay
-        triangulation points.
-
-        If ``infty_cons_sampl`` is False, then the infeasible points are
-        discarded and only a subspace of the sampled points are used. This
-        comes at the cost of the loss of guaranteed convergence and usually
-        requires more objective function evaluations.
-        """
-        # Generate sampling points
-        if self.disp:
-            logging.info('Generating sampling points')
-        self.sampling(self.nc, self.dim)
-        if len(self.LMC.xl_maps) > 0:
-            self.C = np.vstack((self.C, np.array(self.LMC.xl_maps)))
-        if not infty_cons_sampl:
-            # Find subspace of feasible points
-            if self.g_cons is not None:
-                self.sampling_subspace()
-
-        # Sort remaining samples
-        self.sorted_samples()
-
-        # Find objective function references
-        self.n_sampled = self.nc
-
-    def sampling_custom(self, n, dim):
-        """
-        Generates uniform sampling points in a hypercube and scales the points
-        to the bound limits.
-        """
-        # Generate sampling points.
-        # Generate uniform sample points in [0, 1]^m \subset R^m
-        if self.n_sampled == 0:
-            self.C = self.sampling_function(n, dim)
-        else:
-            self.C = self.sampling_function(n, dim)
-        # Distribute over bounds
-        for i in range(len(self.bounds)):
-            self.C[:, i] = (self.C[:, i] *
-                            (self.bounds[i][1] - self.bounds[i][0])
-                            + self.bounds[i][0])
-        return self.C
-
-    def sampling_subspace(self):
-        """Find subspace of feasible points from g_func definition"""
-        # Subspace of feasible points.
-        for ind, g in enumerate(self.g_cons):
-            # C.shape = (Z, dim) where Z is the number of sampling points to
-            # evaluate and dim is the dimensionality of the problem.
-            # the constraint function may not be vectorised so have to step
-            # through each sampling point sequentially.
-            feasible = np.array(
-                [np.all(g(x_C, *self.g_args[ind]) >= 0.0) for x_C in self.C],
-                dtype=bool
-            )
-            self.C = self.C[feasible]
-
-            if self.C.size == 0:
-                self.res.message = ('No sampling point found within the '
-                                    + 'feasible set. Increasing sampling '
-                                    + 'size.')
-                # sampling correctly for both 1-D and >1-D cases
-                if self.disp:
-                    logging.info(self.res.message)
-
-    def sorted_samples(self):  # Validated
-        """Find indexes of the sorted sampling points"""
-        self.Ind_sorted = np.argsort(self.C, axis=0)
-        self.Xs = self.C[self.Ind_sorted]
-        return self.Ind_sorted, self.Xs
-
-    def delaunay_triangulation(self, n_prc=0):
-        if hasattr(self, 'Tri') and self.qhull_incremental:
-            # TODO: Uncertain if n_prc needs to add len(self.LMC.xl_maps)
-            # in self.sampled_surface
-            self.Tri.add_points(self.C[n_prc:, :])
-        else:
-            try:
-                self.Tri = spatial.Delaunay(self.C,
-                                            incremental=self.qhull_incremental,
-                                            )
-            except spatial.QhullError:
-                if str(sys.exc_info()[1])[:6] == 'QH6239':
-                    logging.warning('QH6239 Qhull precision error detected, '
-                                    'this usually occurs when no bounds are '
-                                    'specified, Qhull can only run with '
-                                    'handling cocircular/cospherical points'
-                                    ' and in this case incremental mode is '
-                                    'switched off. The performance of shgo '
-                                    'will be reduced in this mode.')
-                    self.qhull_incremental = False
-                    self.Tri = spatial.Delaunay(self.C,
-                                                incremental=
-                                                self.qhull_incremental)
-                else:
-                    raise
-
-        return self.Tri
-
-
-class LMap:
-    def __init__(self, v):
-        self.v = v
-        self.x_l = None
-        self.lres = None
-        self.f_min = None
-        self.lbounds = []
-
-
-class LMapCache:
-    def __init__(self):
-        self.cache = {}
-
-        # Lists for search queries
-        self.v_maps = []
-        self.xl_maps = []
-        self.xl_maps_set = set()
-        self.f_maps = []
-        self.lbound_maps = []
-        self.size = 0
-
-    def __getitem__(self, v):
-        try:
-            v = np.ndarray.tolist(v)
-        except TypeError:
-            pass
-        v = tuple(v)
-        try:
-            return self.cache[v]
-        except KeyError:
-            xval = LMap(v)
-            self.cache[v] = xval
-
-            return self.cache[v]
-
-    def add_res(self, v, lres, bounds=None):
-        v = np.ndarray.tolist(v)
-        v = tuple(v)
-        self.cache[v].x_l = lres.x
-        self.cache[v].lres = lres
-        self.cache[v].f_min = lres.fun
-        self.cache[v].lbounds = bounds
-
-        # Update cache size
-        self.size += 1
-
-        # Cache lists for search queries
-        self.v_maps.append(v)
-        self.xl_maps.append(lres.x)
-        self.xl_maps_set.add(tuple(lres.x))
-        self.f_maps.append(lres.fun)
-        self.lbound_maps.append(bounds)
-
-    def sort_cache_result(self):
-        """
-        Sort results and build the global return object
-        """
-        results = {}
-        # Sort results and save
-        self.xl_maps = np.array(self.xl_maps)
-        self.f_maps = np.array(self.f_maps)
-
-        # Sorted indexes in Func_min
-        ind_sorted = np.argsort(self.f_maps)
-
-        # Save ordered list of minima
-        results['xl'] = self.xl_maps[ind_sorted]  # Ordered x vals
-        self.f_maps = np.array(self.f_maps)
-        results['funl'] = self.f_maps[ind_sorted]
-        results['funl'] = results['funl'].T
-
-        # Find global of all minimizers
-        results['x'] = self.xl_maps[ind_sorted[0]]  # Save global minima
-        results['fun'] = self.f_maps[ind_sorted[0]]  # Save global fun value
-
-        self.xl_maps = np.ndarray.tolist(self.xl_maps)
-        self.f_maps = np.ndarray.tolist(self.f_maps)
-        return results
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 8f6964335bb598261ca3fb6d6b9de4d8b2d43a59..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__pycache__/_complex.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__pycache__/_complex.cpython-310.pyc
deleted file mode 100644
index 24e54ef2afcb2c5594027446c9fb5cfac2e9d94c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__pycache__/_complex.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__pycache__/_vertex.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__pycache__/_vertex.cpython-310.pyc
deleted file mode 100644
index 7f0f1449bb4ee99fcf814feb036619686531715c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/__pycache__/_vertex.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/_complex.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/_complex.py
deleted file mode 100644
index 1e4d1ac1beea5e38b1b89cc9a0d6e1453ddd7174..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/_complex.py
+++ /dev/null
@@ -1,1225 +0,0 @@
-"""Base classes for low memory simplicial complex structures."""
-import copy
-import logging
-import itertools
-import decimal
-from functools import cache
-
-import numpy as np
-
-from ._vertex import (VertexCacheField, VertexCacheIndex)
-
-
-class Complex:
-    """
-    Base class for a simplicial complex described as a cache of vertices
-    together with their connections.
-
-    Important methods:
-        Domain triangulation:
-                Complex.triangulate, Complex.split_generation
-        Triangulating arbitrary points (must be traingulable,
-            may exist outside domain):
-                Complex.triangulate(sample_set)
-        Converting another simplicial complex structure data type to the
-            structure used in Complex (ex. OBJ wavefront)
-                Complex.convert(datatype, data)
-
-    Important objects:
-        HC.V: The cache of vertices and their connection
-        HC.H: Storage structure of all vertex groups
-
-    Parameters
-    ----------
-    dim : int
-        Spatial dimensionality of the complex R^dim
-    domain : list of tuples, optional
-        The bounds [x_l, x_u]^dim of the hyperrectangle space
-        ex. The default domain is the hyperrectangle [0, 1]^dim
-        Note: The domain must be convex, non-convex spaces can be cut
-              away from this domain using the non-linear
-              g_cons functions to define any arbitrary domain
-              (these domains may also be disconnected from each other)
-    sfield :
-        A scalar function defined in the associated domain f: R^dim --> R
-    sfield_args : tuple
-        Additional arguments to be passed to `sfield`
-    vfield :
-        A scalar function defined in the associated domain
-                       f: R^dim --> R^m
-                   (for example a gradient function of the scalar field)
-    vfield_args : tuple
-        Additional arguments to be passed to vfield
-    symmetry : None or list
-            Specify if the objective function contains symmetric variables.
-            The search space (and therefore performance) is decreased by up to
-            O(n!) times in the fully symmetric case.
-
-            E.g.  f(x) = (x_1 + x_2 + x_3) + (x_4)**2 + (x_5)**2 + (x_6)**2
-
-            In this equation x_2 and x_3 are symmetric to x_1, while x_5 and
-             x_6 are symmetric to x_4, this can be specified to the solver as:
-
-            symmetry = [0,  # Variable 1
-                        0,  # symmetric to variable 1
-                        0,  # symmetric to variable 1
-                        3,  # Variable 4
-                        3,  # symmetric to variable 4
-                        3,  # symmetric to variable 4
-                        ]
-
-    constraints : dict or sequence of dict, optional
-        Constraints definition.
-        Function(s) ``R**n`` in the form::
-
-            g(x) <= 0 applied as g : R^n -> R^m
-            h(x) == 0 applied as h : R^n -> R^p
-
-        Each constraint is defined in a dictionary with fields:
-
-            type : str
-                Constraint type: 'eq' for equality, 'ineq' for inequality.
-            fun : callable
-                The function defining the constraint.
-            jac : callable, optional
-                The Jacobian of `fun` (only for SLSQP).
-            args : sequence, optional
-                Extra arguments to be passed to the function and Jacobian.
-
-        Equality constraint means that the constraint function result is to
-        be zero whereas inequality means that it is to be
-        non-negative.constraints : dict or sequence of dict, optional
-        Constraints definition.
-        Function(s) ``R**n`` in the form::
-
-            g(x) <= 0 applied as g : R^n -> R^m
-            h(x) == 0 applied as h : R^n -> R^p
-
-        Each constraint is defined in a dictionary with fields:
-
-            type : str
-                Constraint type: 'eq' for equality, 'ineq' for inequality.
-            fun : callable
-                The function defining the constraint.
-            jac : callable, optional
-                The Jacobian of `fun` (unused).
-            args : sequence, optional
-                Extra arguments to be passed to the function and Jacobian.
-
-        Equality constraint means that the constraint function result is to
-        be zero whereas inequality means that it is to be non-negative.
-
-    workers : int  optional
-        Uses `multiprocessing.Pool `) to compute the field
-         functions in parallel.
-    """
-    def __init__(self, dim, domain=None, sfield=None, sfield_args=(),
-                 symmetry=None, constraints=None, workers=1):
-        self.dim = dim
-
-        # Domains
-        self.domain = domain
-        if domain is None:
-            self.bounds = [(0.0, 1.0), ] * dim
-        else:
-            self.bounds = domain
-        self.symmetry = symmetry
-        #      here in init to avoid if checks
-
-        # Field functions
-        self.sfield = sfield
-        self.sfield_args = sfield_args
-
-        # Process constraints
-        # Constraints
-        # Process constraint dict sequence:
-        if constraints is not None:
-            self.min_cons = constraints
-            self.g_cons = []
-            self.g_args = []
-            if not isinstance(constraints, (tuple, list)):
-                constraints = (constraints,)
-
-            for cons in constraints:
-                if cons['type'] in ('ineq'):
-                    self.g_cons.append(cons['fun'])
-                    try:
-                        self.g_args.append(cons['args'])
-                    except KeyError:
-                        self.g_args.append(())
-            self.g_cons = tuple(self.g_cons)
-            self.g_args = tuple(self.g_args)
-        else:
-            self.g_cons = None
-            self.g_args = None
-
-        # Homology properties
-        self.gen = 0
-        self.perm_cycle = 0
-
-        # Every cell is stored in a list of its generation,
-        # ex. the initial cell is stored in self.H[0]
-        # 1st get new cells are stored in self.H[1] etc.
-        # When a cell is sub-generated it is removed from this list
-
-        self.H = []  # Storage structure of vertex groups
-
-        # Cache of all vertices
-        if (sfield is not None) or (self.g_cons is not None):
-            # Initiate a vertex cache and an associated field cache, note that
-            # the field case is always initiated inside the vertex cache if an
-            # associated field scalar field is defined:
-            if sfield is not None:
-                self.V = VertexCacheField(field=sfield, field_args=sfield_args,
-                                          g_cons=self.g_cons,
-                                          g_cons_args=self.g_args,
-                                          workers=workers)
-            elif self.g_cons is not None:
-                self.V = VertexCacheField(field=sfield, field_args=sfield_args,
-                                          g_cons=self.g_cons,
-                                          g_cons_args=self.g_args,
-                                          workers=workers)
-        else:
-            self.V = VertexCacheIndex()
-
-        self.V_non_symm = []  # List of non-symmetric vertices
-
-    def __call__(self):
-        return self.H
-
-    # %% Triangulation methods
-    def cyclic_product(self, bounds, origin, supremum, centroid=True):
-        """Generate initial triangulation using cyclic product"""
-        # Define current hyperrectangle
-        vot = tuple(origin)
-        vut = tuple(supremum)  # Hyperrectangle supremum
-        self.V[vot]
-        vo = self.V[vot]
-        yield vo.x
-        self.V[vut].connect(self.V[vot])
-        yield vut
-        # Cyclic group approach with second x_l --- x_u operation.
-
-        # These containers store the "lower" and "upper" vertices
-        # corresponding to the origin or supremum of every C2 group.
-        # It has the structure of `dim` times embedded lists each containing
-        # these vertices as the entire complex grows. Bounds[0] has to be done
-        # outside the loops before we have symmetric containers.
-        # NOTE: This means that bounds[0][1] must always exist
-        C0x = [[self.V[vot]]]
-        a_vo = copy.copy(list(origin))
-        a_vo[0] = vut[0]  # Update aN Origin
-        a_vo = self.V[tuple(a_vo)]
-        # self.V[vot].connect(self.V[tuple(a_vo)])
-        self.V[vot].connect(a_vo)
-        yield a_vo.x
-        C1x = [[a_vo]]
-        # C1x = [[self.V[tuple(a_vo)]]]
-        ab_C = []  # Container for a + b operations
-
-        # Loop over remaining bounds
-        for i, x in enumerate(bounds[1:]):
-            # Update lower and upper containers
-            C0x.append([])
-            C1x.append([])
-            # try to access a second bound (if not, C1 is symmetric)
-            try:
-                # Early try so that we don't have to copy the cache before
-                # moving on to next C1/C2: Try to add the operation of a new
-                # C2 product by accessing the upper bound
-                x[1]
-                # Copy lists for iteration
-                cC0x = [x[:] for x in C0x[:i + 1]]
-                cC1x = [x[:] for x in C1x[:i + 1]]
-                for j, (VL, VU) in enumerate(zip(cC0x, cC1x)):
-                    for k, (vl, vu) in enumerate(zip(VL, VU)):
-                        # Build aN vertices for each lower-upper pair in N:
-                        a_vl = list(vl.x)
-                        a_vu = list(vu.x)
-                        a_vl[i + 1] = vut[i + 1]
-                        a_vu[i + 1] = vut[i + 1]
-                        a_vl = self.V[tuple(a_vl)]
-
-                        # Connect vertices in N to corresponding vertices
-                        # in aN:
-                        vl.connect(a_vl)
-
-                        yield a_vl.x
-
-                        a_vu = self.V[tuple(a_vu)]
-                        # Connect vertices in N to corresponding vertices
-                        # in aN:
-                        vu.connect(a_vu)
-
-                        # Connect new vertex pair in aN:
-                        a_vl.connect(a_vu)
-
-                        # Connect lower pair to upper (triangulation
-                        # operation of a + b (two arbitrary operations):
-                        vl.connect(a_vu)
-                        ab_C.append((vl, a_vu))
-
-                        # Update the containers
-                        C0x[i + 1].append(vl)
-                        C0x[i + 1].append(vu)
-                        C1x[i + 1].append(a_vl)
-                        C1x[i + 1].append(a_vu)
-
-                        # Update old containers
-                        C0x[j].append(a_vl)
-                        C1x[j].append(a_vu)
-
-                        # Yield new points
-                        yield a_vu.x
-
-                # Try to connect aN lower source of previous a + b
-                # operation with a aN vertex
-                ab_Cc = copy.copy(ab_C)
-
-                for vp in ab_Cc:
-                    b_v = list(vp[0].x)
-                    ab_v = list(vp[1].x)
-                    b_v[i + 1] = vut[i + 1]
-                    ab_v[i + 1] = vut[i + 1]
-                    b_v = self.V[tuple(b_v)]  # b + vl
-                    ab_v = self.V[tuple(ab_v)]  # b + a_vl
-                    # Note o---o is already connected
-                    vp[0].connect(ab_v)  # o-s
-                    b_v.connect(ab_v)  # s-s
-
-                    # Add new list of cross pairs
-                    ab_C.append((vp[0], ab_v))
-                    ab_C.append((b_v, ab_v))
-
-            except IndexError:
-                cC0x = C0x[i]
-                cC1x = C1x[i]
-                VL, VU = cC0x, cC1x
-                for k, (vl, vu) in enumerate(zip(VL, VU)):
-                    # Build aN vertices for each lower-upper pair in N:
-                    a_vu = list(vu.x)
-                    a_vu[i + 1] = vut[i + 1]
-                    # Connect vertices in N to corresponding vertices
-                    # in aN:
-                    a_vu = self.V[tuple(a_vu)]
-                    # Connect vertices in N to corresponding vertices
-                    # in aN:
-                    vu.connect(a_vu)
-                    # Connect new vertex pair in aN:
-                    # a_vl.connect(a_vu)
-                    # Connect lower pair to upper (triangulation
-                    # operation of a + b (two arbitrary operations):
-                    vl.connect(a_vu)
-                    ab_C.append((vl, a_vu))
-                    C0x[i + 1].append(vu)
-                    C1x[i + 1].append(a_vu)
-                    # Yield new points
-                    a_vu.connect(self.V[vut])
-                    yield a_vu.x
-                    ab_Cc = copy.copy(ab_C)
-                    for vp in ab_Cc:
-                        if vp[1].x[i] == vut[i]:
-                            ab_v = list(vp[1].x)
-                            ab_v[i + 1] = vut[i + 1]
-                            ab_v = self.V[tuple(ab_v)]  # b + a_vl
-                            # Note o---o is already connected
-                            vp[0].connect(ab_v)  # o-s
-
-                            # Add new list of cross pairs
-                            ab_C.append((vp[0], ab_v))
-
-        # Clean class trash
-        try:
-            del C0x
-            del cC0x
-            del C1x
-            del cC1x
-            del ab_C
-            del ab_Cc
-        except UnboundLocalError:
-            pass
-
-        # Extra yield to ensure that the triangulation is completed
-        if centroid:
-            vo = self.V[vot]
-            vs = self.V[vut]
-            # Disconnect the origin and supremum
-            vo.disconnect(vs)
-            # Build centroid
-            vc = self.split_edge(vot, vut)
-            for v in vo.nn:
-                v.connect(vc)
-            yield vc.x
-            return vc.x
-        else:
-            yield vut
-            return vut
-
-    def triangulate(self, n=None, symmetry=None, centroid=True,
-                    printout=False):
-        """
-        Triangulate the initial domain, if n is not None then a limited number
-        of points will be generated
-
-        Parameters
-        ----------
-        n : int, Number of points to be sampled.
-        symmetry :
-
-            Ex. Dictionary/hashtable
-            f(x) = (x_1 + x_2 + x_3) + (x_4)**2 + (x_5)**2 + (x_6)**2
-
-            symmetry = symmetry[0]: 0,  # Variable 1
-                       symmetry[1]: 0,  # symmetric to variable 1
-                       symmetry[2]: 0,  # symmetric to variable 1
-                       symmetry[3]: 3,  # Variable 4
-                       symmetry[4]: 3,  # symmetric to variable 4
-                       symmetry[5]: 3,  # symmetric to variable 4
-                        }
-        centroid : bool, if True add a central point to the hypercube
-        printout : bool, if True print out results
-
-        NOTES:
-        ------
-        Rather than using the combinatorial algorithm to connect vertices we
-        make the following observation:
-
-        The bound pairs are similar a C2 cyclic group and the structure is
-        formed using the cartesian product:
-
-        H = C2 x C2 x C2 ... x C2 (dim times)
-
-        So construct any normal subgroup N and consider H/N first, we connect
-        all vertices within N (ex. N is C2 (the first dimension), then we move
-        to a left coset aN (an operation moving around the defined H/N group by
-        for example moving from the lower bound in C2 (dimension 2) to the
-        higher bound in C2. During this operation connection all the vertices.
-        Now repeat the N connections. Note that these elements can be connected
-        in parallel.
-        """
-        # Inherit class arguments
-        if symmetry is None:
-            symmetry = self.symmetry
-        # Build origin and supremum vectors
-        origin = [i[0] for i in self.bounds]
-        self.origin = origin
-        supremum = [i[1] for i in self.bounds]
-
-        self.supremum = supremum
-
-        if symmetry is None:
-            cbounds = self.bounds
-        else:
-            cbounds = copy.copy(self.bounds)
-            for i, j in enumerate(symmetry):
-                if i is not j:
-                    # pop second entry on second symmetry vars
-                    cbounds[i] = [self.bounds[symmetry[i]][0]]
-                    # Sole (first) entry is the sup value and there is no
-                    # origin:
-                    cbounds[i] = [self.bounds[symmetry[i]][1]]
-                    if (self.bounds[symmetry[i]] is not
-                            self.bounds[symmetry[j]]):
-                        logging.warning(f"Variable {i} was specified as "
-                                        f"symmetetric to variable {j}, however"
-                                        f", the bounds {i} ="
-                                        f" {self.bounds[symmetry[i]]} and {j}"
-                                        f" ="
-                                        f" {self.bounds[symmetry[j]]} do not "
-                                        f"match, the mismatch was ignored in "
-                                        f"the initial triangulation.")
-                        cbounds[i] = self.bounds[symmetry[j]]
-
-        if n is None:
-            # Build generator
-            self.cp = self.cyclic_product(cbounds, origin, supremum, centroid)
-            for i in self.cp:
-                i
-
-            try:
-                self.triangulated_vectors.append((tuple(self.origin),
-                                                  tuple(self.supremum)))
-            except (AttributeError, KeyError):
-                self.triangulated_vectors = [(tuple(self.origin),
-                                              tuple(self.supremum))]
-
-        else:
-            # Check if generator already exists
-            try:
-                self.cp
-            except (AttributeError, KeyError):
-                self.cp = self.cyclic_product(cbounds, origin, supremum,
-                                              centroid)
-
-            try:
-                while len(self.V.cache) < n:
-                    next(self.cp)
-            except StopIteration:
-                try:
-                    self.triangulated_vectors.append((tuple(self.origin),
-                                                      tuple(self.supremum)))
-                except (AttributeError, KeyError):
-                    self.triangulated_vectors = [(tuple(self.origin),
-                                                  tuple(self.supremum))]
-
-        if printout:
-            # for v in self.C0():
-            #   v.print_out()
-            for v in self.V.cache:
-                self.V[v].print_out()
-
-        return
-
-    def refine(self, n=1):
-        if n is None:
-            try:
-                self.triangulated_vectors
-                self.refine_all()
-                return
-            except AttributeError as ae:
-                if str(ae) == "'Complex' object has no attribute " \
-                              "'triangulated_vectors'":
-                    self.triangulate(symmetry=self.symmetry)
-                    return
-                else:
-                    raise
-
-        nt = len(self.V.cache) + n  # Target number of total vertices
-        # In the outer while loop we iterate until we have added an extra `n`
-        # vertices to the complex:
-        while len(self.V.cache) < nt:  # while loop 1
-            try:  # try 1
-                # Try to access triangulated_vectors, this should only be
-                # defined if an initial triangulation has already been
-                # performed:
-                self.triangulated_vectors
-                # Try a usual iteration of the current generator, if it
-                # does not exist or is exhausted then produce a new generator
-                try:  # try 2
-                    next(self.rls)
-                except (AttributeError, StopIteration, KeyError):
-                    vp = self.triangulated_vectors[0]
-                    self.rls = self.refine_local_space(*vp, bounds=self.bounds)
-                    next(self.rls)
-
-            except (AttributeError, KeyError):
-                # If an initial triangulation has not been completed, then
-                # we start/continue the initial triangulation targeting `nt`
-                # vertices, if nt is greater than the initial number of
-                # vertices then the `refine` routine will move back to try 1.
-                self.triangulate(nt, self.symmetry)
-        return
-
-    def refine_all(self, centroids=True):
-        """Refine the entire domain of the current complex."""
-        try:
-            self.triangulated_vectors
-            tvs = copy.copy(self.triangulated_vectors)
-            for i, vp in enumerate(tvs):
-                self.rls = self.refine_local_space(*vp, bounds=self.bounds)
-                for i in self.rls:
-                    i
-        except AttributeError as ae:
-            if str(ae) == "'Complex' object has no attribute " \
-                          "'triangulated_vectors'":
-                self.triangulate(symmetry=self.symmetry, centroid=centroids)
-            else:
-                raise
-
-        # This adds a centroid to every new sub-domain generated and defined
-        # by self.triangulated_vectors, in addition the vertices ! to complete
-        # the triangulation
-        return
-
-    def refine_local_space(self, origin, supremum, bounds, centroid=1):
-        # Copy for later removal
-        origin_c = copy.copy(origin)
-        supremum_c = copy.copy(supremum)
-
-        # Initiate local variables redefined in later inner `for` loop:
-        vl, vu, a_vu = None, None, None
-
-        # Change the vector orientation so that it is only increasing
-        s_ov = list(origin)
-        s_origin = list(origin)
-        s_sv = list(supremum)
-        s_supremum = list(supremum)
-        for i, vi in enumerate(s_origin):
-            if s_ov[i] > s_sv[i]:
-                s_origin[i] = s_sv[i]
-                s_supremum[i] = s_ov[i]
-
-        vot = tuple(s_origin)
-        vut = tuple(s_supremum)  # Hyperrectangle supremum
-
-        vo = self.V[vot]  # initiate if doesn't exist yet
-        vs = self.V[vut]
-        # Start by finding the old centroid of the new space:
-        vco = self.split_edge(vo.x, vs.x)  # Split in case not centroid arg
-
-        # Find set of extreme vertices in current local space
-        sup_set = copy.copy(vco.nn)
-        # Cyclic group approach with second x_l --- x_u operation.
-
-        # These containers store the "lower" and "upper" vertices
-        # corresponding to the origin or supremum of every C2 group.
-        # It has the structure of `dim` times embedded lists each containing
-        # these vertices as the entire complex grows. Bounds[0] has to be done
-        # outside the loops before we have symmetric containers.
-        # NOTE: This means that bounds[0][1] must always exist
-
-        a_vl = copy.copy(list(vot))
-        a_vl[0] = vut[0]  # Update aN Origin
-        if tuple(a_vl) not in self.V.cache:
-            vo = self.V[vot]  # initiate if doesn't exist yet
-            vs = self.V[vut]
-            # Start by finding the old centroid of the new space:
-            vco = self.split_edge(vo.x, vs.x)  # Split in case not centroid arg
-
-            # Find set of extreme vertices in current local space
-            sup_set = copy.copy(vco.nn)
-            a_vl = copy.copy(list(vot))
-            a_vl[0] = vut[0]  # Update aN Origin
-            a_vl = self.V[tuple(a_vl)]
-        else:
-            a_vl = self.V[tuple(a_vl)]
-
-        c_v = self.split_edge(vo.x, a_vl.x)
-        c_v.connect(vco)
-        yield c_v.x
-        Cox = [[vo]]
-        Ccx = [[c_v]]
-        Cux = [[a_vl]]
-        ab_C = []  # Container for a + b operations
-        s_ab_C = []  # Container for symmetric a + b operations
-
-        # Loop over remaining bounds
-        for i, x in enumerate(bounds[1:]):
-            # Update lower and upper containers
-            Cox.append([])
-            Ccx.append([])
-            Cux.append([])
-            # try to access a second bound (if not, C1 is symmetric)
-            try:
-                t_a_vl = list(vot)
-                t_a_vl[i + 1] = vut[i + 1]
-
-                # New: lists are used anyway, so copy all
-                # %%
-                # Copy lists for iteration
-                cCox = [x[:] for x in Cox[:i + 1]]
-                cCcx = [x[:] for x in Ccx[:i + 1]]
-                cCux = [x[:] for x in Cux[:i + 1]]
-                # Try to connect aN lower source of previous a + b
-                # operation with a aN vertex
-                ab_Cc = copy.copy(ab_C)  # NOTE: We append ab_C in the
-                # (VL, VC, VU) for-loop, but we use the copy of the list in the
-                # ab_Cc for-loop.
-                s_ab_Cc = copy.copy(s_ab_C)
-
-                # Early try so that we don't have to copy the cache before
-                # moving on to next C1/C2: Try to add the operation of a new
-                # C2 product by accessing the upper bound
-                if tuple(t_a_vl) not in self.V.cache:
-                    # Raise error to continue symmetric refine
-                    raise IndexError
-                t_a_vu = list(vut)
-                t_a_vu[i + 1] = vut[i + 1]
-                if tuple(t_a_vu) not in self.V.cache:
-                    # Raise error to continue symmetric refine:
-                    raise IndexError
-
-                for vectors in s_ab_Cc:
-                    # s_ab_C.append([c_vc, vl, vu, a_vu])
-                    bc_vc = list(vectors[0].x)
-                    b_vl = list(vectors[1].x)
-                    b_vu = list(vectors[2].x)
-                    ba_vu = list(vectors[3].x)
-
-                    bc_vc[i + 1] = vut[i + 1]
-                    b_vl[i + 1] = vut[i + 1]
-                    b_vu[i + 1] = vut[i + 1]
-                    ba_vu[i + 1] = vut[i + 1]
-
-                    bc_vc = self.V[tuple(bc_vc)]
-                    bc_vc.connect(vco)  # NOTE: Unneeded?
-                    yield bc_vc
-
-                    # Split to centre, call this centre group "d = 0.5*a"
-                    d_bc_vc = self.split_edge(vectors[0].x, bc_vc.x)
-                    d_bc_vc.connect(bc_vc)
-                    d_bc_vc.connect(vectors[1])  # Connect all to centroid
-                    d_bc_vc.connect(vectors[2])  # Connect all to centroid
-                    d_bc_vc.connect(vectors[3])  # Connect all to centroid
-                    yield d_bc_vc.x
-                    b_vl = self.V[tuple(b_vl)]
-                    bc_vc.connect(b_vl)  # Connect aN cross pairs
-                    d_bc_vc.connect(b_vl)  # Connect all to centroid
-
-                    yield b_vl
-                    b_vu = self.V[tuple(b_vu)]
-                    bc_vc.connect(b_vu)  # Connect aN cross pairs
-                    d_bc_vc.connect(b_vu)  # Connect all to centroid
-
-                    b_vl_c = self.split_edge(b_vu.x, b_vl.x)
-                    bc_vc.connect(b_vl_c)
-
-                    yield b_vu
-                    ba_vu = self.V[tuple(ba_vu)]
-                    bc_vc.connect(ba_vu)  # Connect aN cross pairs
-                    d_bc_vc.connect(ba_vu)  # Connect all to centroid
-
-                    # Split the a + b edge of the initial triangulation:
-                    os_v = self.split_edge(vectors[1].x, ba_vu.x)  # o-s
-                    ss_v = self.split_edge(b_vl.x, ba_vu.x)  # s-s
-                    b_vu_c = self.split_edge(b_vu.x, ba_vu.x)
-                    bc_vc.connect(b_vu_c)
-                    yield os_v.x  # often equal to vco, but not always
-                    yield ss_v.x  # often equal to bc_vu, but not always
-                    yield ba_vu
-                    # Split remaining to centre, call this centre group
-                    # "d = 0.5*a"
-                    d_bc_vc = self.split_edge(vectors[0].x, bc_vc.x)
-                    d_bc_vc.connect(vco)  # NOTE: Unneeded?
-                    yield d_bc_vc.x
-                    d_b_vl = self.split_edge(vectors[1].x, b_vl.x)
-                    d_bc_vc.connect(vco)  # NOTE: Unneeded?
-                    d_bc_vc.connect(d_b_vl)  # Connect dN cross pairs
-                    yield d_b_vl.x
-                    d_b_vu = self.split_edge(vectors[2].x, b_vu.x)
-                    d_bc_vc.connect(vco)  # NOTE: Unneeded?
-                    d_bc_vc.connect(d_b_vu)  # Connect dN cross pairs
-                    yield d_b_vu.x
-                    d_ba_vu = self.split_edge(vectors[3].x, ba_vu.x)
-                    d_bc_vc.connect(vco)  # NOTE: Unneeded?
-                    d_bc_vc.connect(d_ba_vu)  # Connect dN cross pairs
-                    yield d_ba_vu
-
-                    # comb = [c_vc, vl, vu, a_vl, a_vu,
-                    #       bc_vc, b_vl, b_vu, ba_vl, ba_vu]
-                    comb = [vl, vu, a_vu,
-                            b_vl, b_vu, ba_vu]
-                    comb_iter = itertools.combinations(comb, 2)
-                    for vecs in comb_iter:
-                        self.split_edge(vecs[0].x, vecs[1].x)
-                    # Add new list of cross pairs
-                    ab_C.append((d_bc_vc, vectors[1], b_vl, a_vu, ba_vu))
-                    ab_C.append((d_bc_vc, vl, b_vl, a_vu, ba_vu))  # = prev
-
-                for vectors in ab_Cc:
-                    bc_vc = list(vectors[0].x)
-                    b_vl = list(vectors[1].x)
-                    b_vu = list(vectors[2].x)
-                    ba_vl = list(vectors[3].x)
-                    ba_vu = list(vectors[4].x)
-                    bc_vc[i + 1] = vut[i + 1]
-                    b_vl[i + 1] = vut[i + 1]
-                    b_vu[i + 1] = vut[i + 1]
-                    ba_vl[i + 1] = vut[i + 1]
-                    ba_vu[i + 1] = vut[i + 1]
-                    bc_vc = self.V[tuple(bc_vc)]
-                    bc_vc.connect(vco)  # NOTE: Unneeded?
-                    yield bc_vc
-
-                    # Split to centre, call this centre group "d = 0.5*a"
-                    d_bc_vc = self.split_edge(vectors[0].x, bc_vc.x)
-                    d_bc_vc.connect(bc_vc)
-                    d_bc_vc.connect(vectors[1])  # Connect all to centroid
-                    d_bc_vc.connect(vectors[2])  # Connect all to centroid
-                    d_bc_vc.connect(vectors[3])  # Connect all to centroid
-                    d_bc_vc.connect(vectors[4])  # Connect all to centroid
-                    yield d_bc_vc.x
-                    b_vl = self.V[tuple(b_vl)]
-                    bc_vc.connect(b_vl)  # Connect aN cross pairs
-                    d_bc_vc.connect(b_vl)  # Connect all to centroid
-                    yield b_vl
-                    b_vu = self.V[tuple(b_vu)]
-                    bc_vc.connect(b_vu)  # Connect aN cross pairs
-                    d_bc_vc.connect(b_vu)  # Connect all to centroid
-                    yield b_vu
-                    ba_vl = self.V[tuple(ba_vl)]
-                    bc_vc.connect(ba_vl)  # Connect aN cross pairs
-                    d_bc_vc.connect(ba_vl)  # Connect all to centroid
-                    self.split_edge(b_vu.x, ba_vl.x)
-                    yield ba_vl
-                    ba_vu = self.V[tuple(ba_vu)]
-                    bc_vc.connect(ba_vu)  # Connect aN cross pairs
-                    d_bc_vc.connect(ba_vu)  # Connect all to centroid
-                    # Split the a + b edge of the initial triangulation:
-                    os_v = self.split_edge(vectors[1].x, ba_vu.x)  # o-s
-                    ss_v = self.split_edge(b_vl.x, ba_vu.x)  # s-s
-                    yield os_v.x  # often equal to vco, but not always
-                    yield ss_v.x  # often equal to bc_vu, but not always
-                    yield ba_vu
-                    # Split remaining to centre, call this centre group
-                    # "d = 0.5*a"
-                    d_bc_vc = self.split_edge(vectors[0].x, bc_vc.x)
-                    d_bc_vc.connect(vco)  # NOTE: Unneeded?
-                    yield d_bc_vc.x
-                    d_b_vl = self.split_edge(vectors[1].x, b_vl.x)
-                    d_bc_vc.connect(vco)  # NOTE: Unneeded?
-                    d_bc_vc.connect(d_b_vl)  # Connect dN cross pairs
-                    yield d_b_vl.x
-                    d_b_vu = self.split_edge(vectors[2].x, b_vu.x)
-                    d_bc_vc.connect(vco)  # NOTE: Unneeded?
-                    d_bc_vc.connect(d_b_vu)  # Connect dN cross pairs
-                    yield d_b_vu.x
-                    d_ba_vl = self.split_edge(vectors[3].x, ba_vl.x)
-                    d_bc_vc.connect(vco)  # NOTE: Unneeded?
-                    d_bc_vc.connect(d_ba_vl)  # Connect dN cross pairs
-                    yield d_ba_vl
-                    d_ba_vu = self.split_edge(vectors[4].x, ba_vu.x)
-                    d_bc_vc.connect(vco)  # NOTE: Unneeded?
-                    d_bc_vc.connect(d_ba_vu)  # Connect dN cross pairs
-                    yield d_ba_vu
-                    c_vc, vl, vu, a_vl, a_vu = vectors
-
-                    comb = [vl, vu, a_vl, a_vu,
-                            b_vl, b_vu, ba_vl, ba_vu]
-                    comb_iter = itertools.combinations(comb, 2)
-                    for vecs in comb_iter:
-                        self.split_edge(vecs[0].x, vecs[1].x)
-
-                    # Add new list of cross pairs
-                    ab_C.append((bc_vc, b_vl, b_vu, ba_vl, ba_vu))
-                    ab_C.append((d_bc_vc, d_b_vl, d_b_vu, d_ba_vl, d_ba_vu))
-                    ab_C.append((d_bc_vc, vectors[1], b_vl, a_vu, ba_vu))
-                    ab_C.append((d_bc_vc, vu, b_vu, a_vl, ba_vl))
-
-                for j, (VL, VC, VU) in enumerate(zip(cCox, cCcx, cCux)):
-                    for k, (vl, vc, vu) in enumerate(zip(VL, VC, VU)):
-                        # Build aN vertices for each lower-upper C3 group in N:
-                        a_vl = list(vl.x)
-                        a_vu = list(vu.x)
-                        a_vl[i + 1] = vut[i + 1]
-                        a_vu[i + 1] = vut[i + 1]
-                        a_vl = self.V[tuple(a_vl)]
-                        a_vu = self.V[tuple(a_vu)]
-                        # Note, build (a + vc) later for consistent yields
-                        # Split the a + b edge of the initial triangulation:
-                        c_vc = self.split_edge(vl.x, a_vu.x)
-                        self.split_edge(vl.x, vu.x)  # Equal to vc
-                        # Build cN vertices for each lower-upper C3 group in N:
-                        c_vc.connect(vco)
-                        c_vc.connect(vc)
-                        c_vc.connect(vl)  # Connect c + ac operations
-                        c_vc.connect(vu)  # Connect c + ac operations
-                        c_vc.connect(a_vl)  # Connect c + ac operations
-                        c_vc.connect(a_vu)  # Connect c + ac operations
-                        yield c_vc.x
-                        c_vl = self.split_edge(vl.x, a_vl.x)
-                        c_vl.connect(vco)
-                        c_vc.connect(c_vl)  # Connect cN group vertices
-                        yield c_vl.x
-                        # yield at end of loop:
-                        c_vu = self.split_edge(vu.x, a_vu.x)
-                        c_vu.connect(vco)
-                        # Connect remaining cN group vertices
-                        c_vc.connect(c_vu)  # Connect cN group vertices
-                        yield c_vu.x
-
-                        a_vc = self.split_edge(a_vl.x, a_vu.x)  # is (a + vc) ?
-                        a_vc.connect(vco)
-                        a_vc.connect(c_vc)
-
-                        # Storage for connecting c + ac operations:
-                        ab_C.append((c_vc, vl, vu, a_vl, a_vu))
-
-                        # Update the containers
-                        Cox[i + 1].append(vl)
-                        Cox[i + 1].append(vc)
-                        Cox[i + 1].append(vu)
-                        Ccx[i + 1].append(c_vl)
-                        Ccx[i + 1].append(c_vc)
-                        Ccx[i + 1].append(c_vu)
-                        Cux[i + 1].append(a_vl)
-                        Cux[i + 1].append(a_vc)
-                        Cux[i + 1].append(a_vu)
-
-                        # Update old containers
-                        Cox[j].append(c_vl)  # !
-                        Cox[j].append(a_vl)
-                        Ccx[j].append(c_vc)  # !
-                        Ccx[j].append(a_vc)  # !
-                        Cux[j].append(c_vu)  # !
-                        Cux[j].append(a_vu)
-
-                        # Yield new points
-                        yield a_vc.x
-
-            except IndexError:
-                for vectors in ab_Cc:
-                    ba_vl = list(vectors[3].x)
-                    ba_vu = list(vectors[4].x)
-                    ba_vl[i + 1] = vut[i + 1]
-                    ba_vu[i + 1] = vut[i + 1]
-                    ba_vu = self.V[tuple(ba_vu)]
-                    yield ba_vu
-                    d_bc_vc = self.split_edge(vectors[1].x, ba_vu.x)  # o-s
-                    yield ba_vu
-                    d_bc_vc.connect(vectors[1])  # Connect all to centroid
-                    d_bc_vc.connect(vectors[2])  # Connect all to centroid
-                    d_bc_vc.connect(vectors[3])  # Connect all to centroid
-                    d_bc_vc.connect(vectors[4])  # Connect all to centroid
-                    yield d_bc_vc.x
-                    ba_vl = self.V[tuple(ba_vl)]
-                    yield ba_vl
-                    d_ba_vl = self.split_edge(vectors[3].x, ba_vl.x)
-                    d_ba_vu = self.split_edge(vectors[4].x, ba_vu.x)
-                    d_ba_vc = self.split_edge(d_ba_vl.x, d_ba_vu.x)
-                    yield d_ba_vl
-                    yield d_ba_vu
-                    yield d_ba_vc
-                    c_vc, vl, vu, a_vl, a_vu = vectors
-                    comb = [vl, vu, a_vl, a_vu,
-                            ba_vl,
-                            ba_vu]
-                    comb_iter = itertools.combinations(comb, 2)
-                    for vecs in comb_iter:
-                        self.split_edge(vecs[0].x, vecs[1].x)
-
-                # Copy lists for iteration
-                cCox = Cox[i]
-                cCcx = Ccx[i]
-                cCux = Cux[i]
-                VL, VC, VU = cCox, cCcx, cCux
-                for k, (vl, vc, vu) in enumerate(zip(VL, VC, VU)):
-                    # Build aN vertices for each lower-upper pair in N:
-                    a_vu = list(vu.x)
-                    a_vu[i + 1] = vut[i + 1]
-
-                    # Connect vertices in N to corresponding vertices
-                    # in aN:
-                    a_vu = self.V[tuple(a_vu)]
-                    yield a_vl.x
-                    # Split the a + b edge of the initial triangulation:
-                    c_vc = self.split_edge(vl.x, a_vu.x)
-                    self.split_edge(vl.x, vu.x)  # Equal to vc
-                    c_vc.connect(vco)
-                    c_vc.connect(vc)
-                    c_vc.connect(vl)  # Connect c + ac operations
-                    c_vc.connect(vu)  # Connect c + ac operations
-                    c_vc.connect(a_vu)  # Connect c + ac operations
-                    yield (c_vc.x)
-                    c_vu = self.split_edge(vu.x,
-                                           a_vu.x)  # yield at end of loop
-                    c_vu.connect(vco)
-                    # Connect remaining cN group vertices
-                    c_vc.connect(c_vu)  # Connect cN group vertices
-                    yield (c_vu.x)
-
-                    # Update the containers
-                    Cox[i + 1].append(vu)
-                    Ccx[i + 1].append(c_vu)
-                    Cux[i + 1].append(a_vu)
-
-                    # Update old containers
-                    s_ab_C.append([c_vc, vl, vu, a_vu])
-
-                    yield a_vu.x
-
-        # Clean class trash
-        try:
-            del Cox
-            del Ccx
-            del Cux
-            del ab_C
-            del ab_Cc
-        except UnboundLocalError:
-            pass
-
-        try:
-            self.triangulated_vectors.remove((tuple(origin_c),
-                                              tuple(supremum_c)))
-        except ValueError:
-            # Turn this into a logging warning?
-            pass
-        # Add newly triangulated vectors:
-        for vs in sup_set:
-            self.triangulated_vectors.append((tuple(vco.x), tuple(vs.x)))
-
-        # Extra yield to ensure that the triangulation is completed
-        if centroid:
-            vcn_set = set()
-            c_nn_lists = []
-            for vs in sup_set:
-                # Build centroid
-                c_nn = self.vpool(vco.x, vs.x)
-                try:
-                    c_nn.remove(vcn_set)
-                except KeyError:
-                    pass
-                c_nn_lists.append(c_nn)
-
-            for c_nn in c_nn_lists:
-                try:
-                    c_nn.remove(vcn_set)
-                except KeyError:
-                    pass
-
-            for vs, c_nn in zip(sup_set, c_nn_lists):
-                # Build centroid
-                vcn = self.split_edge(vco.x, vs.x)
-                vcn_set.add(vcn)
-                try:  # Shouldn't be needed?
-                    c_nn.remove(vcn_set)
-                except KeyError:
-                    pass
-                for vnn in c_nn:
-                    vcn.connect(vnn)
-                yield vcn.x
-        else:
-            pass
-
-        yield vut
-        return
-
-    def refine_star(self, v):
-        """Refine the star domain of a vertex `v`."""
-        # Copy lists before iteration
-        vnn = copy.copy(v.nn)
-        v1nn = []
-        d_v0v1_set = set()
-        for v1 in vnn:
-            v1nn.append(copy.copy(v1.nn))
-
-        for v1, v1nn in zip(vnn, v1nn):
-            vnnu = v1nn.intersection(vnn)
-
-            d_v0v1 = self.split_edge(v.x, v1.x)
-            for o_d_v0v1 in d_v0v1_set:
-                d_v0v1.connect(o_d_v0v1)
-            d_v0v1_set.add(d_v0v1)
-            for v2 in vnnu:
-                d_v1v2 = self.split_edge(v1.x, v2.x)
-                d_v0v1.connect(d_v1v2)
-        return
-
-    @cache
-    def split_edge(self, v1, v2):
-        v1 = self.V[v1]
-        v2 = self.V[v2]
-        # Destroy original edge, if it exists:
-        v1.disconnect(v2)
-        # Compute vertex on centre of edge:
-        try:
-            vct = (v2.x_a - v1.x_a) / 2.0 + v1.x_a
-        except TypeError:  # Allow for decimal operations
-            vct = (v2.x_a - v1.x_a) / decimal.Decimal(2.0) + v1.x_a
-
-        vc = self.V[tuple(vct)]
-        # Connect to original 2 vertices to the new centre vertex
-        vc.connect(v1)
-        vc.connect(v2)
-        return vc
-
-    def vpool(self, origin, supremum):
-        vot = tuple(origin)
-        vst = tuple(supremum)
-        # Initiate vertices in case they don't exist
-        vo = self.V[vot]
-        vs = self.V[vst]
-
-        # Remove origin - supremum disconnect
-
-        # Find the lower/upper bounds of the refinement hyperrectangle
-        bl = list(vot)
-        bu = list(vst)
-        for i, (voi, vsi) in enumerate(zip(vot, vst)):
-            if bl[i] > vsi:
-                bl[i] = vsi
-            if bu[i] < voi:
-                bu[i] = voi
-
-        #      NOTE: This is mostly done with sets/lists because we aren't sure
-        #            how well the numpy arrays will scale to thousands of
-        #             dimensions.
-        vn_pool = set()
-        vn_pool.update(vo.nn)
-        vn_pool.update(vs.nn)
-        cvn_pool = copy.copy(vn_pool)
-        for vn in cvn_pool:
-            for i, xi in enumerate(vn.x):
-                if bl[i] <= xi <= bu[i]:
-                    pass
-                else:
-                    try:
-                        vn_pool.remove(vn)
-                    except KeyError:
-                        pass  # NOTE: Not all neigbouds are in initial pool
-        return vn_pool
-
-    def vf_to_vv(self, vertices, simplices):
-        """
-        Convert a vertex-face mesh to a vertex-vertex mesh used by this class
-
-        Parameters
-        ----------
-        vertices : list
-            Vertices
-        simplices : list
-            Simplices
-        """
-        if self.dim > 1:
-            for s in simplices:
-                edges = itertools.combinations(s, self.dim)
-                for e in edges:
-                    self.V[tuple(vertices[e[0]])].connect(
-                        self.V[tuple(vertices[e[1]])])
-        else:
-            for e in simplices:
-                self.V[tuple(vertices[e[0]])].connect(
-                    self.V[tuple(vertices[e[1]])])
-        return
-
-    def connect_vertex_non_symm(self, v_x, near=None):
-        """
-        Adds a vertex at coords v_x to the complex that is not symmetric to the
-        initial triangulation and sub-triangulation.
-
-        If near is specified (for example; a star domain or collections of
-        cells known to contain v) then only those simplices containd in near
-        will be searched, this greatly speeds up the process.
-
-        If near is not specified this method will search the entire simplicial
-        complex structure.
-
-        Parameters
-        ----------
-        v_x : tuple
-            Coordinates of non-symmetric vertex
-        near : set or list
-            List of vertices, these are points near v to check for
-        """
-        if near is None:
-            star = self.V
-        else:
-            star = near
-        # Create the vertex origin
-        if tuple(v_x) in self.V.cache:
-            if self.V[v_x] in self.V_non_symm:
-                pass
-            else:
-                return
-
-        self.V[v_x]
-        found_nn = False
-        S_rows = []
-        for v in star:
-            S_rows.append(v.x)
-
-        S_rows = np.array(S_rows)
-        A = np.array(S_rows) - np.array(v_x)
-        # Iterate through all the possible simplices of S_rows
-        for s_i in itertools.combinations(range(S_rows.shape[0]),
-                                          r=self.dim + 1):
-            # Check if connected, else s_i is not a simplex
-            valid_simplex = True
-            for i in itertools.combinations(s_i, r=2):
-                # Every combination of vertices must be connected, we check of
-                # the current iteration of all combinations of s_i are
-                # connected we break the loop if it is not.
-                if ((self.V[tuple(S_rows[i[1]])] not in
-                        self.V[tuple(S_rows[i[0]])].nn)
-                    and (self.V[tuple(S_rows[i[0]])] not in
-                         self.V[tuple(S_rows[i[1]])].nn)):
-                    valid_simplex = False
-                    break
-
-            S = S_rows[tuple([s_i])]
-            if valid_simplex:
-                if self.deg_simplex(S, proj=None):
-                    valid_simplex = False
-
-            # If s_i is a valid simplex we can test if v_x is inside si
-            if valid_simplex:
-                # Find the A_j0 value from the precalculated values
-                A_j0 = A[tuple([s_i])]
-                if self.in_simplex(S, v_x, A_j0):
-                    found_nn = True
-                    # breaks the main for loop, s_i is the target simplex:
-                    break
-
-        # Connect the simplex to point
-        if found_nn:
-            for i in s_i:
-                self.V[v_x].connect(self.V[tuple(S_rows[i])])
-        # Attached the simplex to storage for all non-symmetric vertices
-        self.V_non_symm.append(self.V[v_x])
-        # this bool value indicates a successful connection if True:
-        return found_nn
-
-    def in_simplex(self, S, v_x, A_j0=None):
-        """Check if a vector v_x is in simplex `S`.
-
-        Parameters
-        ----------
-        S : array_like
-            Array containing simplex entries of vertices as rows
-        v_x :
-            A candidate vertex
-        A_j0 : array, optional,
-            Allows for A_j0 to be pre-calculated
-
-        Returns
-        -------
-        res : boolean
-            True if `v_x` is in `S`
-        """
-        A_11 = np.delete(S, 0, 0) - S[0]
-
-        sign_det_A_11 = np.sign(np.linalg.det(A_11))
-        if sign_det_A_11 == 0:
-            # NOTE: We keep the variable A_11, but we loop through A_jj
-            # ind=
-            # while sign_det_A_11 == 0:
-            #    A_11 = np.delete(S, ind, 0) - S[ind]
-            #    sign_det_A_11 = np.sign(np.linalg.det(A_11))
-
-            sign_det_A_11 = -1  # TODO: Choose another det of j instead?
-            # TODO: Unlikely to work in many cases
-
-        if A_j0 is None:
-            A_j0 = S - v_x
-
-        for d in range(self.dim + 1):
-            det_A_jj = (-1)**d * sign_det_A_11
-            # TODO: Note that scipy might be faster to add as an optional
-            #       dependency
-            sign_det_A_j0 = np.sign(np.linalg.det(np.delete(A_j0, d,
-                                                                     0)))
-            # TODO: Note if sign_det_A_j0 == then the point is coplanar to the
-            #       current simplex facet, so perhaps return True and attach?
-            if det_A_jj == sign_det_A_j0:
-                continue
-            else:
-                return False
-
-        return True
-
-    def deg_simplex(self, S, proj=None):
-        """Test a simplex S for degeneracy (linear dependence in R^dim).
-
-        Parameters
-        ----------
-        S : np.array
-            Simplex with rows as vertex vectors
-        proj : array, optional,
-            If the projection S[1:] - S[0] is already
-            computed it can be added as an optional argument.
-        """
-        # Strategy: we test all combination of faces, if any of the
-        # determinants are zero then the vectors lie on the same face and is
-        # therefore linearly dependent in the space of R^dim
-        if proj is None:
-            proj = S[1:] - S[0]
-
-        # TODO: Is checking the projection of one vertex against faces of other
-        #       vertices sufficient? Or do we need to check more vertices in
-        #       dimensions higher than 2?
-        # TODO: Literature seems to suggest using proj.T, but why is this
-        #       needed?
-        if np.linalg.det(proj) == 0.0:  # TODO: Repalace with tolerance?
-            return True  # Simplex is degenerate
-        else:
-            return False  # Simplex is not degenerate
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/_vertex.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/_vertex.py
deleted file mode 100644
index e47558ee7b9a181638841c34bb63603b5d37e221..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_shgo_lib/_vertex.py
+++ /dev/null
@@ -1,460 +0,0 @@
-import collections
-from abc import ABC, abstractmethod
-
-import numpy as np
-
-from scipy._lib._util import MapWrapper
-
-
-class VertexBase(ABC):
-    """
-    Base class for a vertex.
-    """
-    def __init__(self, x, nn=None, index=None):
-        """
-        Initiation of a vertex object.
-
-        Parameters
-        ----------
-        x : tuple or vector
-            The geometric location (domain).
-        nn : list, optional
-            Nearest neighbour list.
-        index : int, optional
-            Index of vertex.
-        """
-        self.x = x
-        self.hash = hash(self.x)  # Save precomputed hash
-
-        if nn is not None:
-            self.nn = set(nn)  # can use .indexupdate to add a new list
-        else:
-            self.nn = set()
-
-        self.index = index
-
-    def __hash__(self):
-        return self.hash
-
-    def __getattr__(self, item):
-        if item not in ['x_a']:
-            raise AttributeError(f"{type(self)} object has no attribute "
-                                 f"'{item}'")
-        if item == 'x_a':
-            self.x_a = np.array(self.x)
-            return self.x_a
-
-    @abstractmethod
-    def connect(self, v):
-        raise NotImplementedError("This method is only implemented with an "
-                                  "associated child of the base class.")
-
-    @abstractmethod
-    def disconnect(self, v):
-        raise NotImplementedError("This method is only implemented with an "
-                                  "associated child of the base class.")
-
-    def star(self):
-        """Returns the star domain ``st(v)`` of the vertex.
-
-        Parameters
-        ----------
-        v :
-            The vertex ``v`` in ``st(v)``
-
-        Returns
-        -------
-        st : set
-            A set containing all the vertices in ``st(v)``
-        """
-        self.st = self.nn
-        self.st.add(self)
-        return self.st
-
-
-class VertexScalarField(VertexBase):
-    """
-    Add homology properties of a scalar field f: R^n --> R associated with
-    the geometry built from the VertexBase class
-    """
-
-    def __init__(self, x, field=None, nn=None, index=None, field_args=(),
-                 g_cons=None, g_cons_args=()):
-        """
-        Parameters
-        ----------
-        x : tuple,
-            vector of vertex coordinates
-        field : callable, optional
-            a scalar field f: R^n --> R associated with the geometry
-        nn : list, optional
-            list of nearest neighbours
-        index : int, optional
-            index of the vertex
-        field_args : tuple, optional
-            additional arguments to be passed to field
-        g_cons : callable, optional
-            constraints on the vertex
-        g_cons_args : tuple, optional
-            additional arguments to be passed to g_cons
-
-        """
-        super().__init__(x, nn=nn, index=index)
-
-        # Note Vertex is only initiated once for all x so only
-        # evaluated once
-        # self.feasible = None
-
-        # self.f is externally defined by the cache to allow parallel
-        # processing
-        # None type that will break arithmetic operations unless defined
-        # self.f = None
-
-        self.check_min = True
-        self.check_max = True
-
-    def connect(self, v):
-        """Connects self to another vertex object v.
-
-        Parameters
-        ----------
-        v : VertexBase or VertexScalarField object
-        """
-        if v is not self and v not in self.nn:
-            self.nn.add(v)
-            v.nn.add(self)
-
-            # Flags for checking homology properties:
-            self.check_min = True
-            self.check_max = True
-            v.check_min = True
-            v.check_max = True
-
-    def disconnect(self, v):
-        if v in self.nn:
-            self.nn.remove(v)
-            v.nn.remove(self)
-
-            # Flags for checking homology properties:
-            self.check_min = True
-            self.check_max = True
-            v.check_min = True
-            v.check_max = True
-
-    def minimiser(self):
-        """Check whether this vertex is strictly less than all its
-           neighbours"""
-        if self.check_min:
-            self._min = all(self.f < v.f for v in self.nn)
-            self.check_min = False
-
-        return self._min
-
-    def maximiser(self):
-        """
-        Check whether this vertex is strictly greater than all its
-        neighbours.
-        """
-        if self.check_max:
-            self._max = all(self.f > v.f for v in self.nn)
-            self.check_max = False
-
-        return self._max
-
-
-class VertexVectorField(VertexBase):
-    """
-    Add homology properties of a scalar field f: R^n --> R^m associated with
-    the geometry built from the VertexBase class.
-    """
-
-    def __init__(self, x, sfield=None, vfield=None, field_args=(),
-                 vfield_args=(), g_cons=None,
-                 g_cons_args=(), nn=None, index=None):
-        super().__init__(x, nn=nn, index=index)
-
-        raise NotImplementedError("This class is still a work in progress")
-
-
-class VertexCacheBase:
-    """Base class for a vertex cache for a simplicial complex."""
-    def __init__(self):
-
-        self.cache = collections.OrderedDict()
-        self.nfev = 0  # Feasible points
-        self.index = -1
-
-    def __iter__(self):
-        for v in self.cache:
-            yield self.cache[v]
-        return
-
-    def size(self):
-        """Returns the size of the vertex cache."""
-        return self.index + 1
-
-    def print_out(self):
-        headlen = len(f"Vertex cache of size: {len(self.cache)}:")
-        print('=' * headlen)
-        print(f"Vertex cache of size: {len(self.cache)}:")
-        print('=' * headlen)
-        for v in self.cache:
-            self.cache[v].print_out()
-
-
-class VertexCube(VertexBase):
-    """Vertex class to be used for a pure simplicial complex with no associated
-    differential geometry (single level domain that exists in R^n)"""
-    def __init__(self, x, nn=None, index=None):
-        super().__init__(x, nn=nn, index=index)
-
-    def connect(self, v):
-        if v is not self and v not in self.nn:
-            self.nn.add(v)
-            v.nn.add(self)
-
-    def disconnect(self, v):
-        if v in self.nn:
-            self.nn.remove(v)
-            v.nn.remove(self)
-
-
-class VertexCacheIndex(VertexCacheBase):
-    def __init__(self):
-        """
-        Class for a vertex cache for a simplicial complex without an associated
-        field. Useful only for building and visualising a domain complex.
-
-        Parameters
-        ----------
-        """
-        super().__init__()
-        self.Vertex = VertexCube
-
-    def __getitem__(self, x, nn=None):
-        try:
-            return self.cache[x]
-        except KeyError:
-            self.index += 1
-            xval = self.Vertex(x, index=self.index)
-            # logging.info("New generated vertex at x = {}".format(x))
-            # NOTE: Surprisingly high performance increase if logging
-            # is commented out
-            self.cache[x] = xval
-            return self.cache[x]
-
-
-class VertexCacheField(VertexCacheBase):
-    def __init__(self, field=None, field_args=(), g_cons=None, g_cons_args=(),
-                 workers=1):
-        """
-        Class for a vertex cache for a simplicial complex with an associated
-        field.
-
-        Parameters
-        ----------
-        field : callable
-            Scalar or vector field callable.
-        field_args : tuple, optional
-            Any additional fixed parameters needed to completely specify the
-            field function
-        g_cons : dict or sequence of dict, optional
-            Constraints definition.
-            Function(s) ``R**n`` in the form::
-        g_cons_args : tuple, optional
-            Any additional fixed parameters needed to completely specify the
-            constraint functions
-        workers : int  optional
-            Uses `multiprocessing.Pool `) to compute the field
-             functions in parallel.
-
-        """
-        super().__init__()
-        self.index = -1
-        self.Vertex = VertexScalarField
-        self.field = field
-        self.field_args = field_args
-        self.wfield = FieldWrapper(field, field_args)  # if workers is not 1
-
-        self.g_cons = g_cons
-        self.g_cons_args = g_cons_args
-        self.wgcons = ConstraintWrapper(g_cons, g_cons_args)
-        self.gpool = set()  # A set of tuples to process for feasibility
-
-        # Field processing objects
-        self.fpool = set()  # A set of tuples to process for scalar function
-        self.sfc_lock = False  # True if self.fpool is non-Empty
-
-        self.workers = workers
-        self._mapwrapper = MapWrapper(workers)
-
-        if workers == 1:
-            self.process_gpool = self.proc_gpool
-            if g_cons is None:
-                self.process_fpool = self.proc_fpool_nog
-            else:
-                self.process_fpool = self.proc_fpool_g
-        else:
-            self.process_gpool = self.pproc_gpool
-            if g_cons is None:
-                self.process_fpool = self.pproc_fpool_nog
-            else:
-                self.process_fpool = self.pproc_fpool_g
-
-    def __getitem__(self, x, nn=None):
-        try:
-            return self.cache[x]
-        except KeyError:
-            self.index += 1
-            xval = self.Vertex(x, field=self.field, nn=nn, index=self.index,
-                               field_args=self.field_args,
-                               g_cons=self.g_cons,
-                               g_cons_args=self.g_cons_args)
-
-            self.cache[x] = xval  # Define in cache
-            self.gpool.add(xval)  # Add to pool for processing feasibility
-            self.fpool.add(xval)  # Add to pool for processing field values
-            return self.cache[x]
-
-    def __getstate__(self):
-        self_dict = self.__dict__.copy()
-        del self_dict['pool']
-        return self_dict
-
-    def process_pools(self):
-        if self.g_cons is not None:
-            self.process_gpool()
-        self.process_fpool()
-        self.proc_minimisers()
-
-    def feasibility_check(self, v):
-        v.feasible = True
-        for g, args in zip(self.g_cons, self.g_cons_args):
-            # constraint may return more than 1 value.
-            if np.any(g(v.x_a, *args) < 0.0):
-                v.f = np.inf
-                v.feasible = False
-                break
-
-    def compute_sfield(self, v):
-        """Compute the scalar field values of a vertex object `v`.
-
-        Parameters
-        ----------
-        v : VertexBase or VertexScalarField object
-        """
-        try:
-            v.f = self.field(v.x_a, *self.field_args)
-            self.nfev += 1
-        except AttributeError:
-            v.f = np.inf
-            # logging.warning(f"Field function not found at x = {self.x_a}")
-        if np.isnan(v.f):
-            v.f = np.inf
-
-    def proc_gpool(self):
-        """Process all constraints."""
-        if self.g_cons is not None:
-            for v in self.gpool:
-                self.feasibility_check(v)
-        # Clean the pool
-        self.gpool = set()
-
-    def pproc_gpool(self):
-        """Process all constraints in parallel."""
-        gpool_l = []
-        for v in self.gpool:
-            gpool_l.append(v.x_a)
-
-        G = self._mapwrapper(self.wgcons.gcons, gpool_l)
-        for v, g in zip(self.gpool, G):
-            v.feasible = g  # set vertex object attribute v.feasible = g (bool)
-
-    def proc_fpool_g(self):
-        """Process all field functions with constraints supplied."""
-        for v in self.fpool:
-            if v.feasible:
-                self.compute_sfield(v)
-        # Clean the pool
-        self.fpool = set()
-
-    def proc_fpool_nog(self):
-        """Process all field functions with no constraints supplied."""
-        for v in self.fpool:
-            self.compute_sfield(v)
-        # Clean the pool
-        self.fpool = set()
-
-    def pproc_fpool_g(self):
-        """
-        Process all field functions with constraints supplied in parallel.
-        """
-        self.wfield.func
-        fpool_l = []
-        for v in self.fpool:
-            if v.feasible:
-                fpool_l.append(v.x_a)
-            else:
-                v.f = np.inf
-        F = self._mapwrapper(self.wfield.func, fpool_l)
-        for va, f in zip(fpool_l, F):
-            vt = tuple(va)
-            self[vt].f = f  # set vertex object attribute v.f = f
-            self.nfev += 1
-        # Clean the pool
-        self.fpool = set()
-
-    def pproc_fpool_nog(self):
-        """
-        Process all field functions with no constraints supplied in parallel.
-        """
-        self.wfield.func
-        fpool_l = []
-        for v in self.fpool:
-            fpool_l.append(v.x_a)
-        F = self._mapwrapper(self.wfield.func, fpool_l)
-        for va, f in zip(fpool_l, F):
-            vt = tuple(va)
-            self[vt].f = f  # set vertex object attribute v.f = f
-            self.nfev += 1
-        # Clean the pool
-        self.fpool = set()
-
-    def proc_minimisers(self):
-        """Check for minimisers."""
-        for v in self:
-            v.minimiser()
-            v.maximiser()
-
-
-class ConstraintWrapper:
-    """Object to wrap constraints to pass to `multiprocessing.Pool`."""
-    def __init__(self, g_cons, g_cons_args):
-        self.g_cons = g_cons
-        self.g_cons_args = g_cons_args
-
-    def gcons(self, v_x_a):
-        vfeasible = True
-        for g, args in zip(self.g_cons, self.g_cons_args):
-            # constraint may return more than 1 value.
-            if np.any(g(v_x_a, *args) < 0.0):
-                vfeasible = False
-                break
-        return vfeasible
-
-
-class FieldWrapper:
-    """Object to wrap field to pass to `multiprocessing.Pool`."""
-    def __init__(self, field, field_args):
-        self.field = field
-        self.field_args = field_args
-
-    def func(self, v_x_a):
-        try:
-            v_f = self.field(v_x_a, *self.field_args)
-        except Exception:
-            v_f = np.inf
-        if np.isnan(v_f):
-            v_f = np.inf
-
-        return v_f
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_slsqp.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_slsqp.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index 4ce2e585afa3c7b8ad9e88af2ad2a5dcd73d11fc..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_slsqp.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_slsqp_py.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_slsqp_py.py
deleted file mode 100644
index b6b78aafdd2c13ac58b392e8c520f6caaa730d3f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_slsqp_py.py
+++ /dev/null
@@ -1,510 +0,0 @@
-"""
-This module implements the Sequential Least Squares Programming optimization
-algorithm (SLSQP), originally developed by Dieter Kraft.
-See http://www.netlib.org/toms/733
-
-Functions
----------
-.. autosummary::
-   :toctree: generated/
-
-    approx_jacobian
-    fmin_slsqp
-
-"""
-
-__all__ = ['approx_jacobian', 'fmin_slsqp']
-
-import numpy as np
-from scipy.optimize._slsqp import slsqp
-from numpy import (zeros, array, linalg, append, concatenate, finfo,
-                   sqrt, vstack, isfinite, atleast_1d)
-from ._optimize import (OptimizeResult, _check_unknown_options,
-                        _prepare_scalar_function, _clip_x_for_func,
-                        _check_clip_x)
-from ._numdiff import approx_derivative
-from ._constraints import old_bound_to_new, _arr_to_scalar
-from scipy._lib._array_api import atleast_nd, array_namespace
-
-
-__docformat__ = "restructuredtext en"
-
-_epsilon = sqrt(finfo(float).eps)
-
-
-def approx_jacobian(x, func, epsilon, *args):
-    """
-    Approximate the Jacobian matrix of a callable function.
-
-    Parameters
-    ----------
-    x : array_like
-        The state vector at which to compute the Jacobian matrix.
-    func : callable f(x,*args)
-        The vector-valued function.
-    epsilon : float
-        The perturbation used to determine the partial derivatives.
-    args : sequence
-        Additional arguments passed to func.
-
-    Returns
-    -------
-    An array of dimensions ``(lenf, lenx)`` where ``lenf`` is the length
-    of the outputs of `func`, and ``lenx`` is the number of elements in
-    `x`.
-
-    Notes
-    -----
-    The approximation is done using forward differences.
-
-    """
-    # approx_derivative returns (m, n) == (lenf, lenx)
-    jac = approx_derivative(func, x, method='2-point', abs_step=epsilon,
-                            args=args)
-    # if func returns a scalar jac.shape will be (lenx,). Make sure
-    # it's at least a 2D array.
-    return np.atleast_2d(jac)
-
-
-def fmin_slsqp(func, x0, eqcons=(), f_eqcons=None, ieqcons=(), f_ieqcons=None,
-               bounds=(), fprime=None, fprime_eqcons=None,
-               fprime_ieqcons=None, args=(), iter=100, acc=1.0E-6,
-               iprint=1, disp=None, full_output=0, epsilon=_epsilon,
-               callback=None):
-    """
-    Minimize a function using Sequential Least Squares Programming
-
-    Python interface function for the SLSQP Optimization subroutine
-    originally implemented by Dieter Kraft.
-
-    Parameters
-    ----------
-    func : callable f(x,*args)
-        Objective function.  Must return a scalar.
-    x0 : 1-D ndarray of float
-        Initial guess for the independent variable(s).
-    eqcons : list, optional
-        A list of functions of length n such that
-        eqcons[j](x,*args) == 0.0 in a successfully optimized
-        problem.
-    f_eqcons : callable f(x,*args), optional
-        Returns a 1-D array in which each element must equal 0.0 in a
-        successfully optimized problem. If f_eqcons is specified,
-        eqcons is ignored.
-    ieqcons : list, optional
-        A list of functions of length n such that
-        ieqcons[j](x,*args) >= 0.0 in a successfully optimized
-        problem.
-    f_ieqcons : callable f(x,*args), optional
-        Returns a 1-D ndarray in which each element must be greater or
-        equal to 0.0 in a successfully optimized problem. If
-        f_ieqcons is specified, ieqcons is ignored.
-    bounds : list, optional
-        A list of tuples specifying the lower and upper bound
-        for each independent variable [(xl0, xu0),(xl1, xu1),...]
-        Infinite values will be interpreted as large floating values.
-    fprime : callable `f(x,*args)`, optional
-        A function that evaluates the partial derivatives of func.
-    fprime_eqcons : callable `f(x,*args)`, optional
-        A function of the form `f(x, *args)` that returns the m by n
-        array of equality constraint normals. If not provided,
-        the normals will be approximated. The array returned by
-        fprime_eqcons should be sized as ( len(eqcons), len(x0) ).
-    fprime_ieqcons : callable `f(x,*args)`, optional
-        A function of the form `f(x, *args)` that returns the m by n
-        array of inequality constraint normals. If not provided,
-        the normals will be approximated. The array returned by
-        fprime_ieqcons should be sized as ( len(ieqcons), len(x0) ).
-    args : sequence, optional
-        Additional arguments passed to func and fprime.
-    iter : int, optional
-        The maximum number of iterations.
-    acc : float, optional
-        Requested accuracy.
-    iprint : int, optional
-        The verbosity of fmin_slsqp :
-
-        * iprint <= 0 : Silent operation
-        * iprint == 1 : Print summary upon completion (default)
-        * iprint >= 2 : Print status of each iterate and summary
-    disp : int, optional
-        Overrides the iprint interface (preferred).
-    full_output : bool, optional
-        If False, return only the minimizer of func (default).
-        Otherwise, output final objective function and summary
-        information.
-    epsilon : float, optional
-        The step size for finite-difference derivative estimates.
-    callback : callable, optional
-        Called after each iteration, as ``callback(x)``, where ``x`` is the
-        current parameter vector.
-
-    Returns
-    -------
-    out : ndarray of float
-        The final minimizer of func.
-    fx : ndarray of float, if full_output is true
-        The final value of the objective function.
-    its : int, if full_output is true
-        The number of iterations.
-    imode : int, if full_output is true
-        The exit mode from the optimizer (see below).
-    smode : string, if full_output is true
-        Message describing the exit mode from the optimizer.
-
-    See also
-    --------
-    minimize: Interface to minimization algorithms for multivariate
-        functions. See the 'SLSQP' `method` in particular.
-
-    Notes
-    -----
-    Exit modes are defined as follows ::
-
-        -1 : Gradient evaluation required (g & a)
-         0 : Optimization terminated successfully
-         1 : Function evaluation required (f & c)
-         2 : More equality constraints than independent variables
-         3 : More than 3*n iterations in LSQ subproblem
-         4 : Inequality constraints incompatible
-         5 : Singular matrix E in LSQ subproblem
-         6 : Singular matrix C in LSQ subproblem
-         7 : Rank-deficient equality constraint subproblem HFTI
-         8 : Positive directional derivative for linesearch
-         9 : Iteration limit reached
-
-    Examples
-    --------
-    Examples are given :ref:`in the tutorial `.
-
-    """
-    if disp is not None:
-        iprint = disp
-
-    opts = {'maxiter': iter,
-            'ftol': acc,
-            'iprint': iprint,
-            'disp': iprint != 0,
-            'eps': epsilon,
-            'callback': callback}
-
-    # Build the constraints as a tuple of dictionaries
-    cons = ()
-    # 1. constraints of the 1st kind (eqcons, ieqcons); no Jacobian; take
-    #    the same extra arguments as the objective function.
-    cons += tuple({'type': 'eq', 'fun': c, 'args': args} for c in eqcons)
-    cons += tuple({'type': 'ineq', 'fun': c, 'args': args} for c in ieqcons)
-    # 2. constraints of the 2nd kind (f_eqcons, f_ieqcons) and their Jacobian
-    #    (fprime_eqcons, fprime_ieqcons); also take the same extra arguments
-    #    as the objective function.
-    if f_eqcons:
-        cons += ({'type': 'eq', 'fun': f_eqcons, 'jac': fprime_eqcons,
-                  'args': args}, )
-    if f_ieqcons:
-        cons += ({'type': 'ineq', 'fun': f_ieqcons, 'jac': fprime_ieqcons,
-                  'args': args}, )
-
-    res = _minimize_slsqp(func, x0, args, jac=fprime, bounds=bounds,
-                          constraints=cons, **opts)
-    if full_output:
-        return res['x'], res['fun'], res['nit'], res['status'], res['message']
-    else:
-        return res['x']
-
-
-def _minimize_slsqp(func, x0, args=(), jac=None, bounds=None,
-                    constraints=(),
-                    maxiter=100, ftol=1.0E-6, iprint=1, disp=False,
-                    eps=_epsilon, callback=None, finite_diff_rel_step=None,
-                    **unknown_options):
-    """
-    Minimize a scalar function of one or more variables using Sequential
-    Least Squares Programming (SLSQP).
-
-    Options
-    -------
-    ftol : float
-        Precision goal for the value of f in the stopping criterion.
-    eps : float
-        Step size used for numerical approximation of the Jacobian.
-    disp : bool
-        Set to True to print convergence messages. If False,
-        `verbosity` is ignored and set to 0.
-    maxiter : int
-        Maximum number of iterations.
-    finite_diff_rel_step : None or array_like, optional
-        If `jac in ['2-point', '3-point', 'cs']` the relative step size to
-        use for numerical approximation of `jac`. The absolute step
-        size is computed as ``h = rel_step * sign(x) * max(1, abs(x))``,
-        possibly adjusted to fit into the bounds. For ``method='3-point'``
-        the sign of `h` is ignored. If None (default) then step is selected
-        automatically.
-    """
-    _check_unknown_options(unknown_options)
-    iter = maxiter - 1
-    acc = ftol
-    epsilon = eps
-
-    if not disp:
-        iprint = 0
-
-    # Transform x0 into an array.
-    xp = array_namespace(x0)
-    x0 = atleast_nd(x0, ndim=1, xp=xp)
-    dtype = xp.float64
-    if xp.isdtype(x0.dtype, "real floating"):
-        dtype = x0.dtype
-    x = xp.reshape(xp.astype(x0, dtype), -1)
-
-    # SLSQP is sent 'old-style' bounds, 'new-style' bounds are required by
-    # ScalarFunction
-    if bounds is None or len(bounds) == 0:
-        new_bounds = (-np.inf, np.inf)
-    else:
-        new_bounds = old_bound_to_new(bounds)
-
-    # clip the initial guess to bounds, otherwise ScalarFunction doesn't work
-    x = np.clip(x, new_bounds[0], new_bounds[1])
-
-    # Constraints are triaged per type into a dictionary of tuples
-    if isinstance(constraints, dict):
-        constraints = (constraints, )
-
-    cons = {'eq': (), 'ineq': ()}
-    for ic, con in enumerate(constraints):
-        # check type
-        try:
-            ctype = con['type'].lower()
-        except KeyError as e:
-            raise KeyError('Constraint %d has no type defined.' % ic) from e
-        except TypeError as e:
-            raise TypeError('Constraints must be defined using a '
-                            'dictionary.') from e
-        except AttributeError as e:
-            raise TypeError("Constraint's type must be a string.") from e
-        else:
-            if ctype not in ['eq', 'ineq']:
-                raise ValueError("Unknown constraint type '%s'." % con['type'])
-
-        # check function
-        if 'fun' not in con:
-            raise ValueError('Constraint %d has no function defined.' % ic)
-
-        # check Jacobian
-        cjac = con.get('jac')
-        if cjac is None:
-            # approximate Jacobian function. The factory function is needed
-            # to keep a reference to `fun`, see gh-4240.
-            def cjac_factory(fun):
-                def cjac(x, *args):
-                    x = _check_clip_x(x, new_bounds)
-
-                    if jac in ['2-point', '3-point', 'cs']:
-                        return approx_derivative(fun, x, method=jac, args=args,
-                                                 rel_step=finite_diff_rel_step,
-                                                 bounds=new_bounds)
-                    else:
-                        return approx_derivative(fun, x, method='2-point',
-                                                 abs_step=epsilon, args=args,
-                                                 bounds=new_bounds)
-
-                return cjac
-            cjac = cjac_factory(con['fun'])
-
-        # update constraints' dictionary
-        cons[ctype] += ({'fun': con['fun'],
-                         'jac': cjac,
-                         'args': con.get('args', ())}, )
-
-    exit_modes = {-1: "Gradient evaluation required (g & a)",
-                   0: "Optimization terminated successfully",
-                   1: "Function evaluation required (f & c)",
-                   2: "More equality constraints than independent variables",
-                   3: "More than 3*n iterations in LSQ subproblem",
-                   4: "Inequality constraints incompatible",
-                   5: "Singular matrix E in LSQ subproblem",
-                   6: "Singular matrix C in LSQ subproblem",
-                   7: "Rank-deficient equality constraint subproblem HFTI",
-                   8: "Positive directional derivative for linesearch",
-                   9: "Iteration limit reached"}
-
-    # Set the parameters that SLSQP will need
-    # meq, mieq: number of equality and inequality constraints
-    meq = sum(map(len, [atleast_1d(c['fun'](x, *c['args']))
-              for c in cons['eq']]))
-    mieq = sum(map(len, [atleast_1d(c['fun'](x, *c['args']))
-               for c in cons['ineq']]))
-    # m = The total number of constraints
-    m = meq + mieq
-    # la = The number of constraints, or 1 if there are no constraints
-    la = array([1, m]).max()
-    # n = The number of independent variables
-    n = len(x)
-
-    # Define the workspaces for SLSQP
-    n1 = n + 1
-    mineq = m - meq + n1 + n1
-    len_w = (3*n1+m)*(n1+1)+(n1-meq+1)*(mineq+2) + 2*mineq+(n1+mineq)*(n1-meq) \
-            + 2*meq + n1 + ((n+1)*n)//2 + 2*m + 3*n + 3*n1 + 1
-    len_jw = mineq
-    w = zeros(len_w)
-    jw = zeros(len_jw)
-
-    # Decompose bounds into xl and xu
-    if bounds is None or len(bounds) == 0:
-        xl = np.empty(n, dtype=float)
-        xu = np.empty(n, dtype=float)
-        xl.fill(np.nan)
-        xu.fill(np.nan)
-    else:
-        bnds = array([(_arr_to_scalar(l), _arr_to_scalar(u))
-                      for (l, u) in bounds], float)
-        if bnds.shape[0] != n:
-            raise IndexError('SLSQP Error: the length of bounds is not '
-                             'compatible with that of x0.')
-
-        with np.errstate(invalid='ignore'):
-            bnderr = bnds[:, 0] > bnds[:, 1]
-
-        if bnderr.any():
-            raise ValueError('SLSQP Error: lb > ub in bounds %s.' %
-                             ', '.join(str(b) for b in bnderr))
-        xl, xu = bnds[:, 0], bnds[:, 1]
-
-        # Mark infinite bounds with nans; the Fortran code understands this
-        infbnd = ~isfinite(bnds)
-        xl[infbnd[:, 0]] = np.nan
-        xu[infbnd[:, 1]] = np.nan
-
-    # ScalarFunction provides function and gradient evaluation
-    sf = _prepare_scalar_function(func, x, jac=jac, args=args, epsilon=eps,
-                                  finite_diff_rel_step=finite_diff_rel_step,
-                                  bounds=new_bounds)
-    # gh11403 SLSQP sometimes exceeds bounds by 1 or 2 ULP, make sure this
-    # doesn't get sent to the func/grad evaluator.
-    wrapped_fun = _clip_x_for_func(sf.fun, new_bounds)
-    wrapped_grad = _clip_x_for_func(sf.grad, new_bounds)
-
-    # Initialize the iteration counter and the mode value
-    mode = array(0, int)
-    acc = array(acc, float)
-    majiter = array(iter, int)
-    majiter_prev = 0
-
-    # Initialize internal SLSQP state variables
-    alpha = array(0, float)
-    f0 = array(0, float)
-    gs = array(0, float)
-    h1 = array(0, float)
-    h2 = array(0, float)
-    h3 = array(0, float)
-    h4 = array(0, float)
-    t = array(0, float)
-    t0 = array(0, float)
-    tol = array(0, float)
-    iexact = array(0, int)
-    incons = array(0, int)
-    ireset = array(0, int)
-    itermx = array(0, int)
-    line = array(0, int)
-    n1 = array(0, int)
-    n2 = array(0, int)
-    n3 = array(0, int)
-
-    # Print the header if iprint >= 2
-    if iprint >= 2:
-        print("%5s %5s %16s %16s" % ("NIT", "FC", "OBJFUN", "GNORM"))
-
-    # mode is zero on entry, so call objective, constraints and gradients
-    # there should be no func evaluations here because it's cached from
-    # ScalarFunction
-    fx = wrapped_fun(x)
-    g = append(wrapped_grad(x), 0.0)
-    c = _eval_constraint(x, cons)
-    a = _eval_con_normals(x, cons, la, n, m, meq, mieq)
-
-    while 1:
-        # Call SLSQP
-        slsqp(m, meq, x, xl, xu, fx, c, g, a, acc, majiter, mode, w, jw,
-              alpha, f0, gs, h1, h2, h3, h4, t, t0, tol,
-              iexact, incons, ireset, itermx, line,
-              n1, n2, n3)
-
-        if mode == 1:  # objective and constraint evaluation required
-            fx = wrapped_fun(x)
-            c = _eval_constraint(x, cons)
-
-        if mode == -1:  # gradient evaluation required
-            g = append(wrapped_grad(x), 0.0)
-            a = _eval_con_normals(x, cons, la, n, m, meq, mieq)
-
-        if majiter > majiter_prev:
-            # call callback if major iteration has incremented
-            if callback is not None:
-                callback(np.copy(x))
-
-            # Print the status of the current iterate if iprint > 2
-            if iprint >= 2:
-                print("%5i %5i % 16.6E % 16.6E" % (majiter, sf.nfev,
-                                                   fx, linalg.norm(g)))
-
-        # If exit mode is not -1 or 1, slsqp has completed
-        if abs(mode) != 1:
-            break
-
-        majiter_prev = int(majiter)
-
-    # Optimization loop complete. Print status if requested
-    if iprint >= 1:
-        print(exit_modes[int(mode)] + "    (Exit mode " + str(mode) + ')')
-        print("            Current function value:", fx)
-        print("            Iterations:", majiter)
-        print("            Function evaluations:", sf.nfev)
-        print("            Gradient evaluations:", sf.ngev)
-
-    return OptimizeResult(x=x, fun=fx, jac=g[:-1], nit=int(majiter),
-                          nfev=sf.nfev, njev=sf.ngev, status=int(mode),
-                          message=exit_modes[int(mode)], success=(mode == 0))
-
-
-def _eval_constraint(x, cons):
-    # Compute constraints
-    if cons['eq']:
-        c_eq = concatenate([atleast_1d(con['fun'](x, *con['args']))
-                            for con in cons['eq']])
-    else:
-        c_eq = zeros(0)
-
-    if cons['ineq']:
-        c_ieq = concatenate([atleast_1d(con['fun'](x, *con['args']))
-                             for con in cons['ineq']])
-    else:
-        c_ieq = zeros(0)
-
-    # Now combine c_eq and c_ieq into a single matrix
-    c = concatenate((c_eq, c_ieq))
-    return c
-
-
-def _eval_con_normals(x, cons, la, n, m, meq, mieq):
-    # Compute the normals of the constraints
-    if cons['eq']:
-        a_eq = vstack([con['jac'](x, *con['args'])
-                       for con in cons['eq']])
-    else:  # no equality constraint
-        a_eq = zeros((meq, n))
-
-    if cons['ineq']:
-        a_ieq = vstack([con['jac'](x, *con['args'])
-                        for con in cons['ineq']])
-    else:  # no inequality constraint
-        a_ieq = zeros((mieq, n))
-
-    # Now combine a_eq and a_ieq into a single a matrix
-    if m == 0:  # no constraints
-        a = zeros((la, n))
-    else:
-        a = vstack((a_eq, a_ieq))
-    a = concatenate((a, zeros([la, 1])), 1)
-
-    return a
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_spectral.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_spectral.py
deleted file mode 100644
index 5ff5bef0283b2d6b6c018c1c8b98cd46a335d7cb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_spectral.py
+++ /dev/null
@@ -1,260 +0,0 @@
-"""
-Spectral Algorithm for Nonlinear Equations
-"""
-import collections
-
-import numpy as np
-from scipy.optimize import OptimizeResult
-from scipy.optimize._optimize import _check_unknown_options
-from ._linesearch import _nonmonotone_line_search_cruz, _nonmonotone_line_search_cheng
-
-class _NoConvergence(Exception):
-    pass
-
-
-def _root_df_sane(func, x0, args=(), ftol=1e-8, fatol=1e-300, maxfev=1000,
-                  fnorm=None, callback=None, disp=False, M=10, eta_strategy=None,
-                  sigma_eps=1e-10, sigma_0=1.0, line_search='cruz', **unknown_options):
-    r"""
-    Solve nonlinear equation with the DF-SANE method
-
-    Options
-    -------
-    ftol : float, optional
-        Relative norm tolerance.
-    fatol : float, optional
-        Absolute norm tolerance.
-        Algorithm terminates when ``||func(x)|| < fatol + ftol ||func(x_0)||``.
-    fnorm : callable, optional
-        Norm to use in the convergence check. If None, 2-norm is used.
-    maxfev : int, optional
-        Maximum number of function evaluations.
-    disp : bool, optional
-        Whether to print convergence process to stdout.
-    eta_strategy : callable, optional
-        Choice of the ``eta_k`` parameter, which gives slack for growth
-        of ``||F||**2``.  Called as ``eta_k = eta_strategy(k, x, F)`` with
-        `k` the iteration number, `x` the current iterate and `F` the current
-        residual. Should satisfy ``eta_k > 0`` and ``sum(eta, k=0..inf) < inf``.
-        Default: ``||F||**2 / (1 + k)**2``.
-    sigma_eps : float, optional
-        The spectral coefficient is constrained to ``sigma_eps < sigma < 1/sigma_eps``.
-        Default: 1e-10
-    sigma_0 : float, optional
-        Initial spectral coefficient.
-        Default: 1.0
-    M : int, optional
-        Number of iterates to include in the nonmonotonic line search.
-        Default: 10
-    line_search : {'cruz', 'cheng'}
-        Type of line search to employ. 'cruz' is the original one defined in
-        [Martinez & Raydan. Math. Comp. 75, 1429 (2006)], 'cheng' is
-        a modified search defined in [Cheng & Li. IMA J. Numer. Anal. 29, 814 (2009)].
-        Default: 'cruz'
-
-    References
-    ----------
-    .. [1] "Spectral residual method without gradient information for solving
-           large-scale nonlinear systems of equations." W. La Cruz,
-           J.M. Martinez, M. Raydan. Math. Comp. **75**, 1429 (2006).
-    .. [2] W. La Cruz, Opt. Meth. Software, 29, 24 (2014).
-    .. [3] W. Cheng, D.-H. Li. IMA J. Numer. Anal. **29**, 814 (2009).
-
-    """
-    _check_unknown_options(unknown_options)
-
-    if line_search not in ('cheng', 'cruz'):
-        raise ValueError(f"Invalid value {line_search!r} for 'line_search'")
-
-    nexp = 2
-
-    if eta_strategy is None:
-        # Different choice from [1], as their eta is not invariant
-        # vs. scaling of F.
-        def eta_strategy(k, x, F):
-            # Obtain squared 2-norm of the initial residual from the outer scope
-            return f_0 / (1 + k)**2
-
-    if fnorm is None:
-        def fnorm(F):
-            # Obtain squared 2-norm of the current residual from the outer scope
-            return f_k**(1.0/nexp)
-
-    def fmerit(F):
-        return np.linalg.norm(F)**nexp
-
-    nfev = [0]
-    f, x_k, x_shape, f_k, F_k, is_complex = _wrap_func(func, x0, fmerit,
-                                                       nfev, maxfev, args)
-
-    k = 0
-    f_0 = f_k
-    sigma_k = sigma_0
-
-    F_0_norm = fnorm(F_k)
-
-    # For the 'cruz' line search
-    prev_fs = collections.deque([f_k], M)
-
-    # For the 'cheng' line search
-    Q = 1.0
-    C = f_0
-
-    converged = False
-    message = "too many function evaluations required"
-
-    while True:
-        F_k_norm = fnorm(F_k)
-
-        if disp:
-            print("iter %d: ||F|| = %g, sigma = %g" % (k, F_k_norm, sigma_k))
-
-        if callback is not None:
-            callback(x_k, F_k)
-
-        if F_k_norm < ftol * F_0_norm + fatol:
-            # Converged!
-            message = "successful convergence"
-            converged = True
-            break
-
-        # Control spectral parameter, from [2]
-        if abs(sigma_k) > 1/sigma_eps:
-            sigma_k = 1/sigma_eps * np.sign(sigma_k)
-        elif abs(sigma_k) < sigma_eps:
-            sigma_k = sigma_eps
-
-        # Line search direction
-        d = -sigma_k * F_k
-
-        # Nonmonotone line search
-        eta = eta_strategy(k, x_k, F_k)
-        try:
-            if line_search == 'cruz':
-                alpha, xp, fp, Fp = _nonmonotone_line_search_cruz(f, x_k, d, prev_fs,
-                                                                  eta=eta)
-            elif line_search == 'cheng':
-                alpha, xp, fp, Fp, C, Q = _nonmonotone_line_search_cheng(f, x_k, d, f_k,
-                                                                         C, Q, eta=eta)
-        except _NoConvergence:
-            break
-
-        # Update spectral parameter
-        s_k = xp - x_k
-        y_k = Fp - F_k
-        sigma_k = np.vdot(s_k, s_k) / np.vdot(s_k, y_k)
-
-        # Take step
-        x_k = xp
-        F_k = Fp
-        f_k = fp
-
-        # Store function value
-        if line_search == 'cruz':
-            prev_fs.append(fp)
-
-        k += 1
-
-    x = _wrap_result(x_k, is_complex, shape=x_shape)
-    F = _wrap_result(F_k, is_complex)
-
-    result = OptimizeResult(x=x, success=converged,
-                            message=message,
-                            fun=F, nfev=nfev[0], nit=k, method="df-sane")
-
-    return result
-
-
-def _wrap_func(func, x0, fmerit, nfev_list, maxfev, args=()):
-    """
-    Wrap a function and an initial value so that (i) complex values
-    are wrapped to reals, and (ii) value for a merit function
-    fmerit(x, f) is computed at the same time, (iii) iteration count
-    is maintained and an exception is raised if it is exceeded.
-
-    Parameters
-    ----------
-    func : callable
-        Function to wrap
-    x0 : ndarray
-        Initial value
-    fmerit : callable
-        Merit function fmerit(f) for computing merit value from residual.
-    nfev_list : list
-        List to store number of evaluations in. Should be [0] in the beginning.
-    maxfev : int
-        Maximum number of evaluations before _NoConvergence is raised.
-    args : tuple
-        Extra arguments to func
-
-    Returns
-    -------
-    wrap_func : callable
-        Wrapped function, to be called as
-        ``F, fp = wrap_func(x0)``
-    x0_wrap : ndarray of float
-        Wrapped initial value; raveled to 1-D and complex
-        values mapped to reals.
-    x0_shape : tuple
-        Shape of the initial value array
-    f : float
-        Merit function at F
-    F : ndarray of float
-        Residual at x0_wrap
-    is_complex : bool
-        Whether complex values were mapped to reals
-
-    """
-    x0 = np.asarray(x0)
-    x0_shape = x0.shape
-    F = np.asarray(func(x0, *args)).ravel()
-    is_complex = np.iscomplexobj(x0) or np.iscomplexobj(F)
-    x0 = x0.ravel()
-
-    nfev_list[0] = 1
-
-    if is_complex:
-        def wrap_func(x):
-            if nfev_list[0] >= maxfev:
-                raise _NoConvergence()
-            nfev_list[0] += 1
-            z = _real2complex(x).reshape(x0_shape)
-            v = np.asarray(func(z, *args)).ravel()
-            F = _complex2real(v)
-            f = fmerit(F)
-            return f, F
-
-        x0 = _complex2real(x0)
-        F = _complex2real(F)
-    else:
-        def wrap_func(x):
-            if nfev_list[0] >= maxfev:
-                raise _NoConvergence()
-            nfev_list[0] += 1
-            x = x.reshape(x0_shape)
-            F = np.asarray(func(x, *args)).ravel()
-            f = fmerit(F)
-            return f, F
-
-    return wrap_func, x0, x0_shape, fmerit(F), F, is_complex
-
-
-def _wrap_result(result, is_complex, shape=None):
-    """
-    Convert from real to complex and reshape result arrays.
-    """
-    if is_complex:
-        z = _real2complex(result)
-    else:
-        z = result
-    if shape is not None:
-        z = z.reshape(shape)
-    return z
-
-
-def _real2complex(x):
-    return np.ascontiguousarray(x, dtype=float).view(np.complex128)
-
-
-def _complex2real(z):
-    return np.ascontiguousarray(z, dtype=complex).view(np.float64)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_tnc.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_tnc.py
deleted file mode 100644
index 0f0b3be740368eb759d608b541930dbb88ec042b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_tnc.py
+++ /dev/null
@@ -1,430 +0,0 @@
-# TNC Python interface
-# @(#) $Jeannot: tnc.py,v 1.11 2005/01/28 18:27:31 js Exp $
-
-# Copyright (c) 2004-2005, Jean-Sebastien Roy (js@jeannot.org)
-
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-"""
-TNC: A Python interface to the TNC non-linear optimizer
-
-TNC is a non-linear optimizer. To use it, you must provide a function to
-minimize. The function must take one argument: the list of coordinates where to
-evaluate the function; and it must return either a tuple, whose first element is the
-value of the function, and whose second argument is the gradient of the function
-(as a list of values); or None, to abort the minimization.
-"""
-
-from scipy.optimize import _moduleTNC as moduleTNC
-from ._optimize import (MemoizeJac, OptimizeResult, _check_unknown_options,
-                       _prepare_scalar_function)
-from ._constraints import old_bound_to_new
-from scipy._lib._array_api import atleast_nd, array_namespace
-
-from numpy import inf, array, zeros
-
-__all__ = ['fmin_tnc']
-
-
-MSG_NONE = 0  # No messages
-MSG_ITER = 1  # One line per iteration
-MSG_INFO = 2  # Informational messages
-MSG_VERS = 4  # Version info
-MSG_EXIT = 8  # Exit reasons
-MSG_ALL = MSG_ITER + MSG_INFO + MSG_VERS + MSG_EXIT
-
-MSGS = {
-        MSG_NONE: "No messages",
-        MSG_ITER: "One line per iteration",
-        MSG_INFO: "Informational messages",
-        MSG_VERS: "Version info",
-        MSG_EXIT: "Exit reasons",
-        MSG_ALL: "All messages"
-}
-
-INFEASIBLE = -1  # Infeasible (lower bound > upper bound)
-LOCALMINIMUM = 0  # Local minimum reached (|pg| ~= 0)
-FCONVERGED = 1  # Converged (|f_n-f_(n-1)| ~= 0)
-XCONVERGED = 2  # Converged (|x_n-x_(n-1)| ~= 0)
-MAXFUN = 3  # Max. number of function evaluations reached
-LSFAIL = 4  # Linear search failed
-CONSTANT = 5  # All lower bounds are equal to the upper bounds
-NOPROGRESS = 6  # Unable to progress
-USERABORT = 7  # User requested end of minimization
-
-RCSTRINGS = {
-        INFEASIBLE: "Infeasible (lower bound > upper bound)",
-        LOCALMINIMUM: "Local minimum reached (|pg| ~= 0)",
-        FCONVERGED: "Converged (|f_n-f_(n-1)| ~= 0)",
-        XCONVERGED: "Converged (|x_n-x_(n-1)| ~= 0)",
-        MAXFUN: "Max. number of function evaluations reached",
-        LSFAIL: "Linear search failed",
-        CONSTANT: "All lower bounds are equal to the upper bounds",
-        NOPROGRESS: "Unable to progress",
-        USERABORT: "User requested end of minimization"
-}
-
-# Changes to interface made by Travis Oliphant, Apr. 2004 for inclusion in
-#  SciPy
-
-
-def fmin_tnc(func, x0, fprime=None, args=(), approx_grad=0,
-             bounds=None, epsilon=1e-8, scale=None, offset=None,
-             messages=MSG_ALL, maxCGit=-1, maxfun=None, eta=-1,
-             stepmx=0, accuracy=0, fmin=0, ftol=-1, xtol=-1, pgtol=-1,
-             rescale=-1, disp=None, callback=None):
-    """
-    Minimize a function with variables subject to bounds, using
-    gradient information in a truncated Newton algorithm. This
-    method wraps a C implementation of the algorithm.
-
-    Parameters
-    ----------
-    func : callable ``func(x, *args)``
-        Function to minimize.  Must do one of:
-
-        1. Return f and g, where f is the value of the function and g its
-           gradient (a list of floats).
-
-        2. Return the function value but supply gradient function
-           separately as `fprime`.
-
-        3. Return the function value and set ``approx_grad=True``.
-
-        If the function returns None, the minimization
-        is aborted.
-    x0 : array_like
-        Initial estimate of minimum.
-    fprime : callable ``fprime(x, *args)``, optional
-        Gradient of `func`. If None, then either `func` must return the
-        function value and the gradient (``f,g = func(x, *args)``)
-        or `approx_grad` must be True.
-    args : tuple, optional
-        Arguments to pass to function.
-    approx_grad : bool, optional
-        If true, approximate the gradient numerically.
-    bounds : list, optional
-        (min, max) pairs for each element in x0, defining the
-        bounds on that parameter. Use None or +/-inf for one of
-        min or max when there is no bound in that direction.
-    epsilon : float, optional
-        Used if approx_grad is True. The stepsize in a finite
-        difference approximation for fprime.
-    scale : array_like, optional
-        Scaling factors to apply to each variable. If None, the
-        factors are up-low for interval bounded variables and
-        1+|x| for the others. Defaults to None.
-    offset : array_like, optional
-        Value to subtract from each variable. If None, the
-        offsets are (up+low)/2 for interval bounded variables
-        and x for the others.
-    messages : int, optional
-        Bit mask used to select messages display during
-        minimization values defined in the MSGS dict. Defaults to
-        MGS_ALL.
-    disp : int, optional
-        Integer interface to messages. 0 = no message, 5 = all messages
-    maxCGit : int, optional
-        Maximum number of hessian*vector evaluations per main
-        iteration. If maxCGit == 0, the direction chosen is
-        -gradient if maxCGit < 0, maxCGit is set to
-        max(1,min(50,n/2)). Defaults to -1.
-    maxfun : int, optional
-        Maximum number of function evaluation. If None, maxfun is
-        set to max(100, 10*len(x0)). Defaults to None. Note that this function
-        may violate the limit because of evaluating gradients by numerical
-        differentiation.
-    eta : float, optional
-        Severity of the line search. If < 0 or > 1, set to 0.25.
-        Defaults to -1.
-    stepmx : float, optional
-        Maximum step for the line search. May be increased during
-        call. If too small, it will be set to 10.0. Defaults to 0.
-    accuracy : float, optional
-        Relative precision for finite difference calculations. If
-        <= machine_precision, set to sqrt(machine_precision).
-        Defaults to 0.
-    fmin : float, optional
-        Minimum function value estimate. Defaults to 0.
-    ftol : float, optional
-        Precision goal for the value of f in the stopping criterion.
-        If ftol < 0.0, ftol is set to 0.0 defaults to -1.
-    xtol : float, optional
-        Precision goal for the value of x in the stopping
-        criterion (after applying x scaling factors). If xtol <
-        0.0, xtol is set to sqrt(machine_precision). Defaults to
-        -1.
-    pgtol : float, optional
-        Precision goal for the value of the projected gradient in
-        the stopping criterion (after applying x scaling factors).
-        If pgtol < 0.0, pgtol is set to 1e-2 * sqrt(accuracy).
-        Setting it to 0.0 is not recommended. Defaults to -1.
-    rescale : float, optional
-        Scaling factor (in log10) used to trigger f value
-        rescaling. If 0, rescale at each iteration. If a large
-        value, never rescale. If < 0, rescale is set to 1.3.
-    callback : callable, optional
-        Called after each iteration, as callback(xk), where xk is the
-        current parameter vector.
-
-    Returns
-    -------
-    x : ndarray
-        The solution.
-    nfeval : int
-        The number of function evaluations.
-    rc : int
-        Return code, see below
-
-    See also
-    --------
-    minimize: Interface to minimization algorithms for multivariate
-        functions. See the 'TNC' `method` in particular.
-
-    Notes
-    -----
-    The underlying algorithm is truncated Newton, also called
-    Newton Conjugate-Gradient. This method differs from
-    scipy.optimize.fmin_ncg in that
-
-    1. it wraps a C implementation of the algorithm
-    2. it allows each variable to be given an upper and lower bound.
-
-    The algorithm incorporates the bound constraints by determining
-    the descent direction as in an unconstrained truncated Newton,
-    but never taking a step-size large enough to leave the space
-    of feasible x's. The algorithm keeps track of a set of
-    currently active constraints, and ignores them when computing
-    the minimum allowable step size. (The x's associated with the
-    active constraint are kept fixed.) If the maximum allowable
-    step size is zero then a new constraint is added. At the end
-    of each iteration one of the constraints may be deemed no
-    longer active and removed. A constraint is considered
-    no longer active is if it is currently active
-    but the gradient for that variable points inward from the
-    constraint. The specific constraint removed is the one
-    associated with the variable of largest index whose
-    constraint is no longer active.
-
-    Return codes are defined as follows::
-
-        -1 : Infeasible (lower bound > upper bound)
-         0 : Local minimum reached (|pg| ~= 0)
-         1 : Converged (|f_n-f_(n-1)| ~= 0)
-         2 : Converged (|x_n-x_(n-1)| ~= 0)
-         3 : Max. number of function evaluations reached
-         4 : Linear search failed
-         5 : All lower bounds are equal to the upper bounds
-         6 : Unable to progress
-         7 : User requested end of minimization
-
-    References
-    ----------
-    Wright S., Nocedal J. (2006), 'Numerical Optimization'
-
-    Nash S.G. (1984), "Newton-Type Minimization Via the Lanczos Method",
-    SIAM Journal of Numerical Analysis 21, pp. 770-778
-
-    """
-    # handle fprime/approx_grad
-    if approx_grad:
-        fun = func
-        jac = None
-    elif fprime is None:
-        fun = MemoizeJac(func)
-        jac = fun.derivative
-    else:
-        fun = func
-        jac = fprime
-
-    if disp is not None:  # disp takes precedence over messages
-        mesg_num = disp
-    else:
-        mesg_num = {0:MSG_NONE, 1:MSG_ITER, 2:MSG_INFO, 3:MSG_VERS,
-                    4:MSG_EXIT, 5:MSG_ALL}.get(messages, MSG_ALL)
-    # build options
-    opts = {'eps': epsilon,
-            'scale': scale,
-            'offset': offset,
-            'mesg_num': mesg_num,
-            'maxCGit': maxCGit,
-            'maxfun': maxfun,
-            'eta': eta,
-            'stepmx': stepmx,
-            'accuracy': accuracy,
-            'minfev': fmin,
-            'ftol': ftol,
-            'xtol': xtol,
-            'gtol': pgtol,
-            'rescale': rescale,
-            'disp': False}
-
-    res = _minimize_tnc(fun, x0, args, jac, bounds, callback=callback, **opts)
-
-    return res['x'], res['nfev'], res['status']
-
-
-def _minimize_tnc(fun, x0, args=(), jac=None, bounds=None,
-                  eps=1e-8, scale=None, offset=None, mesg_num=None,
-                  maxCGit=-1, eta=-1, stepmx=0, accuracy=0,
-                  minfev=0, ftol=-1, xtol=-1, gtol=-1, rescale=-1, disp=False,
-                  callback=None, finite_diff_rel_step=None, maxfun=None,
-                  **unknown_options):
-    """
-    Minimize a scalar function of one or more variables using a truncated
-    Newton (TNC) algorithm.
-
-    Options
-    -------
-    eps : float or ndarray
-        If `jac is None` the absolute step size used for numerical
-        approximation of the jacobian via forward differences.
-    scale : list of floats
-        Scaling factors to apply to each variable. If None, the
-        factors are up-low for interval bounded variables and
-        1+|x] for the others. Defaults to None.
-    offset : float
-        Value to subtract from each variable. If None, the
-        offsets are (up+low)/2 for interval bounded variables
-        and x for the others.
-    disp : bool
-       Set to True to print convergence messages.
-    maxCGit : int
-        Maximum number of hessian*vector evaluations per main
-        iteration. If maxCGit == 0, the direction chosen is
-        -gradient if maxCGit < 0, maxCGit is set to
-        max(1,min(50,n/2)). Defaults to -1.
-    eta : float
-        Severity of the line search. If < 0 or > 1, set to 0.25.
-        Defaults to -1.
-    stepmx : float
-        Maximum step for the line search. May be increased during
-        call. If too small, it will be set to 10.0. Defaults to 0.
-    accuracy : float
-        Relative precision for finite difference calculations. If
-        <= machine_precision, set to sqrt(machine_precision).
-        Defaults to 0.
-    minfev : float
-        Minimum function value estimate. Defaults to 0.
-    ftol : float
-        Precision goal for the value of f in the stopping criterion.
-        If ftol < 0.0, ftol is set to 0.0 defaults to -1.
-    xtol : float
-        Precision goal for the value of x in the stopping
-        criterion (after applying x scaling factors). If xtol <
-        0.0, xtol is set to sqrt(machine_precision). Defaults to
-        -1.
-    gtol : float
-        Precision goal for the value of the projected gradient in
-        the stopping criterion (after applying x scaling factors).
-        If gtol < 0.0, gtol is set to 1e-2 * sqrt(accuracy).
-        Setting it to 0.0 is not recommended. Defaults to -1.
-    rescale : float
-        Scaling factor (in log10) used to trigger f value
-        rescaling.  If 0, rescale at each iteration.  If a large
-        value, never rescale.  If < 0, rescale is set to 1.3.
-    finite_diff_rel_step : None or array_like, optional
-        If `jac in ['2-point', '3-point', 'cs']` the relative step size to
-        use for numerical approximation of the jacobian. The absolute step
-        size is computed as ``h = rel_step * sign(x) * max(1, abs(x))``,
-        possibly adjusted to fit into the bounds. For ``method='3-point'``
-        the sign of `h` is ignored. If None (default) then step is selected
-        automatically.
-    maxfun : int
-        Maximum number of function evaluations. If None, `maxfun` is
-        set to max(100, 10*len(x0)). Defaults to None.
-    """
-    _check_unknown_options(unknown_options)
-    fmin = minfev
-    pgtol = gtol
-
-    xp = array_namespace(x0)
-    x0 = atleast_nd(x0, ndim=1, xp=xp)
-    dtype = xp.float64
-    if xp.isdtype(x0.dtype, "real floating"):
-        dtype = x0.dtype
-    x0 = xp.reshape(xp.astype(x0, dtype), -1)
-
-    n = len(x0)
-
-    if bounds is None:
-        bounds = [(None,None)] * n
-    if len(bounds) != n:
-        raise ValueError('length of x0 != length of bounds')
-    new_bounds = old_bound_to_new(bounds)
-
-    if mesg_num is not None:
-        messages = {0:MSG_NONE, 1:MSG_ITER, 2:MSG_INFO, 3:MSG_VERS,
-                    4:MSG_EXIT, 5:MSG_ALL}.get(mesg_num, MSG_ALL)
-    elif disp:
-        messages = MSG_ALL
-    else:
-        messages = MSG_NONE
-
-    sf = _prepare_scalar_function(fun, x0, jac=jac, args=args, epsilon=eps,
-                                  finite_diff_rel_step=finite_diff_rel_step,
-                                  bounds=new_bounds)
-    func_and_grad = sf.fun_and_grad
-
-    """
-    low, up   : the bounds (lists of floats)
-                if low is None, the lower bounds are removed.
-                if up is None, the upper bounds are removed.
-                low and up defaults to None
-    """
-    low = zeros(n)
-    up = zeros(n)
-    for i in range(n):
-        if bounds[i] is None:
-            l, u = -inf, inf
-        else:
-            l,u = bounds[i]
-            if l is None:
-                low[i] = -inf
-            else:
-                low[i] = l
-            if u is None:
-                up[i] = inf
-            else:
-                up[i] = u
-
-    if scale is None:
-        scale = array([])
-
-    if offset is None:
-        offset = array([])
-
-    if maxfun is None:
-        maxfun = max(100, 10*len(x0))
-
-    rc, nf, nit, x, funv, jacv = moduleTNC.tnc_minimize(
-        func_and_grad, x0, low, up, scale,
-        offset, messages, maxCGit, maxfun,
-        eta, stepmx, accuracy, fmin, ftol,
-        xtol, pgtol, rescale, callback
-    )
-    # the TNC documentation states: "On output, x, f and g may be very
-    # slightly out of sync because of scaling". Therefore re-evaluate
-    # func_and_grad so they are synced.
-    funv, jacv = func_and_grad(x)
-
-    return OptimizeResult(x=x, fun=funv, jac=jacv, nfev=sf.nfev,
-                          nit=nit, status=rc, message=RCSTRINGS[rc],
-                          success=(-1 < rc < 3))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trlib/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trlib/__init__.py
deleted file mode 100644
index 537b73b3aeb36df09863a0cd24957e5612deb030..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trlib/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from ._trlib import TRLIBQuadraticSubproblem
-
-__all__ = ['TRLIBQuadraticSubproblem', 'get_trlib_quadratic_subproblem']
-
-
-def get_trlib_quadratic_subproblem(tol_rel_i=-2.0, tol_rel_b=-3.0, disp=False):
-    def subproblem_factory(x, fun, jac, hess, hessp):
-        return TRLIBQuadraticSubproblem(x, fun, jac, hess, hessp,
-                                        tol_rel_i=tol_rel_i,
-                                        tol_rel_b=tol_rel_b,
-                                        disp=disp)
-    return subproblem_factory
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trlib/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trlib/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index c6c3de150f5ed629cd33b41f1d976911c324bab4..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trlib/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion.py
deleted file mode 100644
index f2355cf68ac8e1cac7e2688a9b91364ff2b2dcee..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion.py
+++ /dev/null
@@ -1,304 +0,0 @@
-"""Trust-region optimization."""
-import math
-import warnings
-
-import numpy as np
-import scipy.linalg
-from ._optimize import (_check_unknown_options, _status_message,
-                        OptimizeResult, _prepare_scalar_function,
-                        _call_callback_maybe_halt)
-from scipy.optimize._hessian_update_strategy import HessianUpdateStrategy
-from scipy.optimize._differentiable_functions import FD_METHODS
-__all__ = []
-
-
-def _wrap_function(function, args):
-    # wraps a minimizer function to count number of evaluations
-    # and to easily provide an args kwd.
-    ncalls = [0]
-    if function is None:
-        return ncalls, None
-
-    def function_wrapper(x, *wrapper_args):
-        ncalls[0] += 1
-        # A copy of x is sent to the user function (gh13740)
-        return function(np.copy(x), *(wrapper_args + args))
-
-    return ncalls, function_wrapper
-
-
-class BaseQuadraticSubproblem:
-    """
-    Base/abstract class defining the quadratic model for trust-region
-    minimization. Child classes must implement the ``solve`` method.
-
-    Values of the objective function, Jacobian and Hessian (if provided) at
-    the current iterate ``x`` are evaluated on demand and then stored as
-    attributes ``fun``, ``jac``, ``hess``.
-    """
-
-    def __init__(self, x, fun, jac, hess=None, hessp=None):
-        self._x = x
-        self._f = None
-        self._g = None
-        self._h = None
-        self._g_mag = None
-        self._cauchy_point = None
-        self._newton_point = None
-        self._fun = fun
-        self._jac = jac
-        self._hess = hess
-        self._hessp = hessp
-
-    def __call__(self, p):
-        return self.fun + np.dot(self.jac, p) + 0.5 * np.dot(p, self.hessp(p))
-
-    @property
-    def fun(self):
-        """Value of objective function at current iteration."""
-        if self._f is None:
-            self._f = self._fun(self._x)
-        return self._f
-
-    @property
-    def jac(self):
-        """Value of Jacobian of objective function at current iteration."""
-        if self._g is None:
-            self._g = self._jac(self._x)
-        return self._g
-
-    @property
-    def hess(self):
-        """Value of Hessian of objective function at current iteration."""
-        if self._h is None:
-            self._h = self._hess(self._x)
-        return self._h
-
-    def hessp(self, p):
-        if self._hessp is not None:
-            return self._hessp(self._x, p)
-        else:
-            return np.dot(self.hess, p)
-
-    @property
-    def jac_mag(self):
-        """Magnitude of jacobian of objective function at current iteration."""
-        if self._g_mag is None:
-            self._g_mag = scipy.linalg.norm(self.jac)
-        return self._g_mag
-
-    def get_boundaries_intersections(self, z, d, trust_radius):
-        """
-        Solve the scalar quadratic equation ``||z + t d|| == trust_radius``.
-        This is like a line-sphere intersection.
-        Return the two values of t, sorted from low to high.
-        """
-        a = np.dot(d, d)
-        b = 2 * np.dot(z, d)
-        c = np.dot(z, z) - trust_radius**2
-        sqrt_discriminant = math.sqrt(b*b - 4*a*c)
-
-        # The following calculation is mathematically
-        # equivalent to:
-        # ta = (-b - sqrt_discriminant) / (2*a)
-        # tb = (-b + sqrt_discriminant) / (2*a)
-        # but produce smaller round off errors.
-        # Look at Matrix Computation p.97
-        # for a better justification.
-        aux = b + math.copysign(sqrt_discriminant, b)
-        ta = -aux / (2*a)
-        tb = -2*c / aux
-        return sorted([ta, tb])
-
-    def solve(self, trust_radius):
-        raise NotImplementedError('The solve method should be implemented by '
-                                  'the child class')
-
-
-def _minimize_trust_region(fun, x0, args=(), jac=None, hess=None, hessp=None,
-                           subproblem=None, initial_trust_radius=1.0,
-                           max_trust_radius=1000.0, eta=0.15, gtol=1e-4,
-                           maxiter=None, disp=False, return_all=False,
-                           callback=None, inexact=True, **unknown_options):
-    """
-    Minimization of scalar function of one or more variables using a
-    trust-region algorithm.
-
-    Options for the trust-region algorithm are:
-        initial_trust_radius : float
-            Initial trust radius.
-        max_trust_radius : float
-            Never propose steps that are longer than this value.
-        eta : float
-            Trust region related acceptance stringency for proposed steps.
-        gtol : float
-            Gradient norm must be less than `gtol`
-            before successful termination.
-        maxiter : int
-            Maximum number of iterations to perform.
-        disp : bool
-            If True, print convergence message.
-        inexact : bool
-            Accuracy to solve subproblems. If True requires less nonlinear
-            iterations, but more vector products. Only effective for method
-            trust-krylov.
-
-    This function is called by the `minimize` function.
-    It is not supposed to be called directly.
-    """
-    _check_unknown_options(unknown_options)
-
-    if jac is None:
-        raise ValueError('Jacobian is currently required for trust-region '
-                         'methods')
-    if hess is None and hessp is None:
-        raise ValueError('Either the Hessian or the Hessian-vector product '
-                         'is currently required for trust-region methods')
-    if subproblem is None:
-        raise ValueError('A subproblem solving strategy is required for '
-                         'trust-region methods')
-    if not (0 <= eta < 0.25):
-        raise Exception('invalid acceptance stringency')
-    if max_trust_radius <= 0:
-        raise Exception('the max trust radius must be positive')
-    if initial_trust_radius <= 0:
-        raise ValueError('the initial trust radius must be positive')
-    if initial_trust_radius >= max_trust_radius:
-        raise ValueError('the initial trust radius must be less than the '
-                         'max trust radius')
-
-    # force the initial guess into a nice format
-    x0 = np.asarray(x0).flatten()
-
-    # A ScalarFunction representing the problem. This caches calls to fun, jac,
-    # hess.
-    sf = _prepare_scalar_function(fun, x0, jac=jac, hess=hess, args=args)
-    fun = sf.fun
-    jac = sf.grad
-    if callable(hess):
-        hess = sf.hess
-    elif callable(hessp):
-        # this elif statement must come before examining whether hess
-        # is estimated by FD methods or a HessianUpdateStrategy
-        pass
-    elif (hess in FD_METHODS or isinstance(hess, HessianUpdateStrategy)):
-        # If the Hessian is being estimated by finite differences or a
-        # Hessian update strategy then ScalarFunction.hess returns a
-        # LinearOperator or a HessianUpdateStrategy. This enables the
-        # calculation/creation of a hessp. BUT you only want to do this
-        # if the user *hasn't* provided a callable(hessp) function.
-        hess = None
-
-        def hessp(x, p, *args):
-            return sf.hess(x).dot(p)
-    else:
-        raise ValueError('Either the Hessian or the Hessian-vector product '
-                         'is currently required for trust-region methods')
-
-    # ScalarFunction doesn't represent hessp
-    nhessp, hessp = _wrap_function(hessp, args)
-
-    # limit the number of iterations
-    if maxiter is None:
-        maxiter = len(x0)*200
-
-    # init the search status
-    warnflag = 0
-
-    # initialize the search
-    trust_radius = initial_trust_radius
-    x = x0
-    if return_all:
-        allvecs = [x]
-    m = subproblem(x, fun, jac, hess, hessp)
-    k = 0
-
-    # search for the function min
-    # do not even start if the gradient is small enough
-    while m.jac_mag >= gtol:
-
-        # Solve the sub-problem.
-        # This gives us the proposed step relative to the current position
-        # and it tells us whether the proposed step
-        # has reached the trust region boundary or not.
-        try:
-            p, hits_boundary = m.solve(trust_radius)
-        except np.linalg.LinAlgError:
-            warnflag = 3
-            break
-
-        # calculate the predicted value at the proposed point
-        predicted_value = m(p)
-
-        # define the local approximation at the proposed point
-        x_proposed = x + p
-        m_proposed = subproblem(x_proposed, fun, jac, hess, hessp)
-
-        # evaluate the ratio defined in equation (4.4)
-        actual_reduction = m.fun - m_proposed.fun
-        predicted_reduction = m.fun - predicted_value
-        if predicted_reduction <= 0:
-            warnflag = 2
-            break
-        rho = actual_reduction / predicted_reduction
-
-        # update the trust radius according to the actual/predicted ratio
-        if rho < 0.25:
-            trust_radius *= 0.25
-        elif rho > 0.75 and hits_boundary:
-            trust_radius = min(2*trust_radius, max_trust_radius)
-
-        # if the ratio is high enough then accept the proposed step
-        if rho > eta:
-            x = x_proposed
-            m = m_proposed
-
-        # append the best guess, call back, increment the iteration count
-        if return_all:
-            allvecs.append(np.copy(x))
-        k += 1
-
-        intermediate_result = OptimizeResult(x=x, fun=m.fun)
-        if _call_callback_maybe_halt(callback, intermediate_result):
-            break
-
-        # check if the gradient is small enough to stop
-        if m.jac_mag < gtol:
-            warnflag = 0
-            break
-
-        # check if we have looked at enough iterations
-        if k >= maxiter:
-            warnflag = 1
-            break
-
-    # print some stuff if requested
-    status_messages = (
-            _status_message['success'],
-            _status_message['maxiter'],
-            'A bad approximation caused failure to predict improvement.',
-            'A linalg error occurred, such as a non-psd Hessian.',
-            )
-    if disp:
-        if warnflag == 0:
-            print(status_messages[warnflag])
-        else:
-            warnings.warn(status_messages[warnflag], RuntimeWarning, stacklevel=3)
-        print("         Current function value: %f" % m.fun)
-        print("         Iterations: %d" % k)
-        print("         Function evaluations: %d" % sf.nfev)
-        print("         Gradient evaluations: %d" % sf.ngev)
-        print("         Hessian evaluations: %d" % (sf.nhev + nhessp[0]))
-
-    result = OptimizeResult(x=x, success=(warnflag == 0), status=warnflag,
-                            fun=m.fun, jac=m.jac, nfev=sf.nfev, njev=sf.ngev,
-                            nhev=sf.nhev + nhessp[0], nit=k,
-                            message=status_messages[warnflag])
-
-    if hess is not None:
-        result['hess'] = m.hess
-
-    if return_all:
-        result['allvecs'] = allvecs
-
-    return result
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__init__.py
deleted file mode 100644
index 549cfb9760dda474cb858b7b36d236af48111067..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__init__.py
+++ /dev/null
@@ -1,6 +0,0 @@
-"""This module contains the equality constrained SQP solver."""
-
-
-from .minimize_trustregion_constr import _minimize_trustregion_constr
-
-__all__ = ['_minimize_trustregion_constr']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 64912268855dcd699e82c848c028ea953b6db3de..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/canonical_constraint.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/canonical_constraint.cpython-310.pyc
deleted file mode 100644
index dcce9fb6d07e10a67a54a9a0ead228da6c0ec631..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/canonical_constraint.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/equality_constrained_sqp.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/equality_constrained_sqp.cpython-310.pyc
deleted file mode 100644
index 87c7b27facdd4cfe50a42b76283a95e5b7054823..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/equality_constrained_sqp.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/minimize_trustregion_constr.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/minimize_trustregion_constr.cpython-310.pyc
deleted file mode 100644
index 30d0fc2615e9856bd99745c2a52bd09ed57e843f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/minimize_trustregion_constr.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/projections.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/projections.cpython-310.pyc
deleted file mode 100644
index b813ad3e9a6f7c3950b4b018855db13d034af0c3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/projections.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/qp_subproblem.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/qp_subproblem.cpython-310.pyc
deleted file mode 100644
index cf809220861d98cc42e0978b03044aa740fa5acd..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/qp_subproblem.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/report.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/report.cpython-310.pyc
deleted file mode 100644
index dd13a59db07f5991ddae7ff78daeca9e9bed6f64..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/report.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/tr_interior_point.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/tr_interior_point.cpython-310.pyc
deleted file mode 100644
index 124ab835e9f2338b1fda49326d52ce0807687963..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/__pycache__/tr_interior_point.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/canonical_constraint.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/canonical_constraint.py
deleted file mode 100644
index e1ad583bb8eee524d35c2e5bb16934f78629cd69..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/canonical_constraint.py
+++ /dev/null
@@ -1,390 +0,0 @@
-import numpy as np
-import scipy.sparse as sps
-
-
-class CanonicalConstraint:
-    """Canonical constraint to use with trust-constr algorithm.
-
-    It represents the set of constraints of the form::
-
-        f_eq(x) = 0
-        f_ineq(x) <= 0
-
-    where ``f_eq`` and ``f_ineq`` are evaluated by a single function, see
-    below.
-
-    The class is supposed to be instantiated by factory methods, which
-    should prepare the parameters listed below.
-
-    Parameters
-    ----------
-    n_eq, n_ineq : int
-        Number of equality and inequality constraints respectively.
-    fun : callable
-        Function defining the constraints. The signature is
-        ``fun(x) -> c_eq, c_ineq``, where ``c_eq`` is ndarray with `n_eq`
-        components and ``c_ineq`` is ndarray with `n_ineq` components.
-    jac : callable
-        Function to evaluate the Jacobian of the constraint. The signature
-        is ``jac(x) -> J_eq, J_ineq``, where ``J_eq`` and ``J_ineq`` are
-        either ndarray of csr_matrix of shapes (n_eq, n) and (n_ineq, n),
-        respectively.
-    hess : callable
-        Function to evaluate the Hessian of the constraints multiplied
-        by Lagrange multipliers, that is
-        ``dot(f_eq, v_eq) + dot(f_ineq, v_ineq)``. The signature is
-        ``hess(x, v_eq, v_ineq) -> H``, where ``H`` has an implied
-        shape (n, n) and provide a matrix-vector product operation
-        ``H.dot(p)``.
-    keep_feasible : ndarray, shape (n_ineq,)
-        Mask indicating which inequality constraints should be kept feasible.
-    """
-    def __init__(self, n_eq, n_ineq, fun, jac, hess, keep_feasible):
-        self.n_eq = n_eq
-        self.n_ineq = n_ineq
-        self.fun = fun
-        self.jac = jac
-        self.hess = hess
-        self.keep_feasible = keep_feasible
-
-    @classmethod
-    def from_PreparedConstraint(cls, constraint):
-        """Create an instance from `PreparedConstrained` object."""
-        lb, ub = constraint.bounds
-        cfun = constraint.fun
-        keep_feasible = constraint.keep_feasible
-
-        if np.all(lb == -np.inf) and np.all(ub == np.inf):
-            return cls.empty(cfun.n)
-
-        if np.all(lb == -np.inf) and np.all(ub == np.inf):
-            return cls.empty(cfun.n)
-        elif np.all(lb == ub):
-            return cls._equal_to_canonical(cfun, lb)
-        elif np.all(lb == -np.inf):
-            return cls._less_to_canonical(cfun, ub, keep_feasible)
-        elif np.all(ub == np.inf):
-            return cls._greater_to_canonical(cfun, lb, keep_feasible)
-        else:
-            return cls._interval_to_canonical(cfun, lb, ub, keep_feasible)
-
-    @classmethod
-    def empty(cls, n):
-        """Create an "empty" instance.
-
-        This "empty" instance is required to allow working with unconstrained
-        problems as if they have some constraints.
-        """
-        empty_fun = np.empty(0)
-        empty_jac = np.empty((0, n))
-        empty_hess = sps.csr_matrix((n, n))
-
-        def fun(x):
-            return empty_fun, empty_fun
-
-        def jac(x):
-            return empty_jac, empty_jac
-
-        def hess(x, v_eq, v_ineq):
-            return empty_hess
-
-        return cls(0, 0, fun, jac, hess, np.empty(0, dtype=np.bool_))
-
-    @classmethod
-    def concatenate(cls, canonical_constraints, sparse_jacobian):
-        """Concatenate multiple `CanonicalConstraint` into one.
-
-        `sparse_jacobian` (bool) determines the Jacobian format of the
-        concatenated constraint. Note that items in `canonical_constraints`
-        must have their Jacobians in the same format.
-        """
-        def fun(x):
-            if canonical_constraints:
-                eq_all, ineq_all = zip(
-                        *[c.fun(x) for c in canonical_constraints])
-            else:
-                eq_all, ineq_all = [], []
-
-            return np.hstack(eq_all), np.hstack(ineq_all)
-
-        if sparse_jacobian:
-            vstack = sps.vstack
-        else:
-            vstack = np.vstack
-
-        def jac(x):
-            if canonical_constraints:
-                eq_all, ineq_all = zip(
-                        *[c.jac(x) for c in canonical_constraints])
-            else:
-                eq_all, ineq_all = [], []
-
-            return vstack(eq_all), vstack(ineq_all)
-
-        def hess(x, v_eq, v_ineq):
-            hess_all = []
-            index_eq = 0
-            index_ineq = 0
-            for c in canonical_constraints:
-                vc_eq = v_eq[index_eq:index_eq + c.n_eq]
-                vc_ineq = v_ineq[index_ineq:index_ineq + c.n_ineq]
-                hess_all.append(c.hess(x, vc_eq, vc_ineq))
-                index_eq += c.n_eq
-                index_ineq += c.n_ineq
-
-            def matvec(p):
-                result = np.zeros_like(p)
-                for h in hess_all:
-                    result += h.dot(p)
-                return result
-
-            n = x.shape[0]
-            return sps.linalg.LinearOperator((n, n), matvec, dtype=float)
-
-        n_eq = sum(c.n_eq for c in canonical_constraints)
-        n_ineq = sum(c.n_ineq for c in canonical_constraints)
-        keep_feasible = np.hstack([c.keep_feasible for c in
-                                   canonical_constraints])
-
-        return cls(n_eq, n_ineq, fun, jac, hess, keep_feasible)
-
-    @classmethod
-    def _equal_to_canonical(cls, cfun, value):
-        empty_fun = np.empty(0)
-        n = cfun.n
-
-        n_eq = value.shape[0]
-        n_ineq = 0
-        keep_feasible = np.empty(0, dtype=bool)
-
-        if cfun.sparse_jacobian:
-            empty_jac = sps.csr_matrix((0, n))
-        else:
-            empty_jac = np.empty((0, n))
-
-        def fun(x):
-            return cfun.fun(x) - value, empty_fun
-
-        def jac(x):
-            return cfun.jac(x), empty_jac
-
-        def hess(x, v_eq, v_ineq):
-            return cfun.hess(x, v_eq)
-
-        empty_fun = np.empty(0)
-        n = cfun.n
-        if cfun.sparse_jacobian:
-            empty_jac = sps.csr_matrix((0, n))
-        else:
-            empty_jac = np.empty((0, n))
-
-        return cls(n_eq, n_ineq, fun, jac, hess, keep_feasible)
-
-    @classmethod
-    def _less_to_canonical(cls, cfun, ub, keep_feasible):
-        empty_fun = np.empty(0)
-        n = cfun.n
-        if cfun.sparse_jacobian:
-            empty_jac = sps.csr_matrix((0, n))
-        else:
-            empty_jac = np.empty((0, n))
-
-        finite_ub = ub < np.inf
-        n_eq = 0
-        n_ineq = np.sum(finite_ub)
-
-        if np.all(finite_ub):
-            def fun(x):
-                return empty_fun, cfun.fun(x) - ub
-
-            def jac(x):
-                return empty_jac, cfun.jac(x)
-
-            def hess(x, v_eq, v_ineq):
-                return cfun.hess(x, v_ineq)
-        else:
-            finite_ub = np.nonzero(finite_ub)[0]
-            keep_feasible = keep_feasible[finite_ub]
-            ub = ub[finite_ub]
-
-            def fun(x):
-                return empty_fun, cfun.fun(x)[finite_ub] - ub
-
-            def jac(x):
-                return empty_jac, cfun.jac(x)[finite_ub]
-
-            def hess(x, v_eq, v_ineq):
-                v = np.zeros(cfun.m)
-                v[finite_ub] = v_ineq
-                return cfun.hess(x, v)
-
-        return cls(n_eq, n_ineq, fun, jac, hess, keep_feasible)
-
-    @classmethod
-    def _greater_to_canonical(cls, cfun, lb, keep_feasible):
-        empty_fun = np.empty(0)
-        n = cfun.n
-        if cfun.sparse_jacobian:
-            empty_jac = sps.csr_matrix((0, n))
-        else:
-            empty_jac = np.empty((0, n))
-
-        finite_lb = lb > -np.inf
-        n_eq = 0
-        n_ineq = np.sum(finite_lb)
-
-        if np.all(finite_lb):
-            def fun(x):
-                return empty_fun, lb - cfun.fun(x)
-
-            def jac(x):
-                return empty_jac, -cfun.jac(x)
-
-            def hess(x, v_eq, v_ineq):
-                return cfun.hess(x, -v_ineq)
-        else:
-            finite_lb = np.nonzero(finite_lb)[0]
-            keep_feasible = keep_feasible[finite_lb]
-            lb = lb[finite_lb]
-
-            def fun(x):
-                return empty_fun, lb - cfun.fun(x)[finite_lb]
-
-            def jac(x):
-                return empty_jac, -cfun.jac(x)[finite_lb]
-
-            def hess(x, v_eq, v_ineq):
-                v = np.zeros(cfun.m)
-                v[finite_lb] = -v_ineq
-                return cfun.hess(x, v)
-
-        return cls(n_eq, n_ineq, fun, jac, hess, keep_feasible)
-
-    @classmethod
-    def _interval_to_canonical(cls, cfun, lb, ub, keep_feasible):
-        lb_inf = lb == -np.inf
-        ub_inf = ub == np.inf
-        equal = lb == ub
-        less = lb_inf & ~ub_inf
-        greater = ub_inf & ~lb_inf
-        interval = ~equal & ~lb_inf & ~ub_inf
-
-        equal = np.nonzero(equal)[0]
-        less = np.nonzero(less)[0]
-        greater = np.nonzero(greater)[0]
-        interval = np.nonzero(interval)[0]
-        n_less = less.shape[0]
-        n_greater = greater.shape[0]
-        n_interval = interval.shape[0]
-        n_ineq = n_less + n_greater + 2 * n_interval
-        n_eq = equal.shape[0]
-
-        keep_feasible = np.hstack((keep_feasible[less],
-                                   keep_feasible[greater],
-                                   keep_feasible[interval],
-                                   keep_feasible[interval]))
-
-        def fun(x):
-            f = cfun.fun(x)
-            eq = f[equal] - lb[equal]
-            le = f[less] - ub[less]
-            ge = lb[greater] - f[greater]
-            il = f[interval] - ub[interval]
-            ig = lb[interval] - f[interval]
-            return eq, np.hstack((le, ge, il, ig))
-
-        def jac(x):
-            J = cfun.jac(x)
-            eq = J[equal]
-            le = J[less]
-            ge = -J[greater]
-            il = J[interval]
-            ig = -il
-            if sps.issparse(J):
-                ineq = sps.vstack((le, ge, il, ig))
-            else:
-                ineq = np.vstack((le, ge, il, ig))
-            return eq, ineq
-
-        def hess(x, v_eq, v_ineq):
-            n_start = 0
-            v_l = v_ineq[n_start:n_start + n_less]
-            n_start += n_less
-            v_g = v_ineq[n_start:n_start + n_greater]
-            n_start += n_greater
-            v_il = v_ineq[n_start:n_start + n_interval]
-            n_start += n_interval
-            v_ig = v_ineq[n_start:n_start + n_interval]
-
-            v = np.zeros_like(lb)
-            v[equal] = v_eq
-            v[less] = v_l
-            v[greater] = -v_g
-            v[interval] = v_il - v_ig
-
-            return cfun.hess(x, v)
-
-        return cls(n_eq, n_ineq, fun, jac, hess, keep_feasible)
-
-
-def initial_constraints_as_canonical(n, prepared_constraints, sparse_jacobian):
-    """Convert initial values of the constraints to the canonical format.
-
-    The purpose to avoid one additional call to the constraints at the initial
-    point. It takes saved values in `PreparedConstraint`, modififies and
-    concatenates them to the canonical constraint format.
-    """
-    c_eq = []
-    c_ineq = []
-    J_eq = []
-    J_ineq = []
-
-    for c in prepared_constraints:
-        f = c.fun.f
-        J = c.fun.J
-        lb, ub = c.bounds
-        if np.all(lb == ub):
-            c_eq.append(f - lb)
-            J_eq.append(J)
-        elif np.all(lb == -np.inf):
-            finite_ub = ub < np.inf
-            c_ineq.append(f[finite_ub] - ub[finite_ub])
-            J_ineq.append(J[finite_ub])
-        elif np.all(ub == np.inf):
-            finite_lb = lb > -np.inf
-            c_ineq.append(lb[finite_lb] - f[finite_lb])
-            J_ineq.append(-J[finite_lb])
-        else:
-            lb_inf = lb == -np.inf
-            ub_inf = ub == np.inf
-            equal = lb == ub
-            less = lb_inf & ~ub_inf
-            greater = ub_inf & ~lb_inf
-            interval = ~equal & ~lb_inf & ~ub_inf
-
-            c_eq.append(f[equal] - lb[equal])
-            c_ineq.append(f[less] - ub[less])
-            c_ineq.append(lb[greater] - f[greater])
-            c_ineq.append(f[interval] - ub[interval])
-            c_ineq.append(lb[interval] - f[interval])
-
-            J_eq.append(J[equal])
-            J_ineq.append(J[less])
-            J_ineq.append(-J[greater])
-            J_ineq.append(J[interval])
-            J_ineq.append(-J[interval])
-
-    c_eq = np.hstack(c_eq) if c_eq else np.empty(0)
-    c_ineq = np.hstack(c_ineq) if c_ineq else np.empty(0)
-
-    if sparse_jacobian:
-        vstack = sps.vstack
-        empty = sps.csr_matrix((0, n))
-    else:
-        vstack = np.vstack
-        empty = np.empty((0, n))
-
-    J_eq = vstack(J_eq) if J_eq else empty
-    J_ineq = vstack(J_ineq) if J_ineq else empty
-
-    return c_eq, c_ineq, J_eq, J_ineq
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/equality_constrained_sqp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/equality_constrained_sqp.py
deleted file mode 100644
index fb4c05dcdd03fb990d3418220a398e249ef581ee..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/equality_constrained_sqp.py
+++ /dev/null
@@ -1,231 +0,0 @@
-"""Byrd-Omojokun Trust-Region SQP method."""
-
-from scipy.sparse import eye as speye
-from .projections import projections
-from .qp_subproblem import modified_dogleg, projected_cg, box_intersections
-import numpy as np
-from numpy.linalg import norm
-
-__all__ = ['equality_constrained_sqp']
-
-
-def default_scaling(x):
-    n, = np.shape(x)
-    return speye(n)
-
-
-def equality_constrained_sqp(fun_and_constr, grad_and_jac, lagr_hess,
-                             x0, fun0, grad0, constr0,
-                             jac0, stop_criteria,
-                             state,
-                             initial_penalty,
-                             initial_trust_radius,
-                             factorization_method,
-                             trust_lb=None,
-                             trust_ub=None,
-                             scaling=default_scaling):
-    """Solve nonlinear equality-constrained problem using trust-region SQP.
-
-    Solve optimization problem:
-
-        minimize fun(x)
-        subject to: constr(x) = 0
-
-    using Byrd-Omojokun Trust-Region SQP method described in [1]_. Several
-    implementation details are based on [2]_ and [3]_, p. 549.
-
-    References
-    ----------
-    .. [1] Lalee, Marucha, Jorge Nocedal, and Todd Plantenga. "On the
-           implementation of an algorithm for large-scale equality
-           constrained optimization." SIAM Journal on
-           Optimization 8.3 (1998): 682-706.
-    .. [2] Byrd, Richard H., Mary E. Hribar, and Jorge Nocedal.
-           "An interior point algorithm for large-scale nonlinear
-           programming." SIAM Journal on Optimization 9.4 (1999): 877-900.
-    .. [3] Nocedal, Jorge, and Stephen J. Wright. "Numerical optimization"
-           Second Edition (2006).
-    """
-    PENALTY_FACTOR = 0.3  # Rho from formula (3.51), reference [2]_, p.891.
-    LARGE_REDUCTION_RATIO = 0.9
-    INTERMEDIARY_REDUCTION_RATIO = 0.3
-    SUFFICIENT_REDUCTION_RATIO = 1e-8  # Eta from reference [2]_, p.892.
-    TRUST_ENLARGEMENT_FACTOR_L = 7.0
-    TRUST_ENLARGEMENT_FACTOR_S = 2.0
-    MAX_TRUST_REDUCTION = 0.5
-    MIN_TRUST_REDUCTION = 0.1
-    SOC_THRESHOLD = 0.1
-    TR_FACTOR = 0.8  # Zeta from formula (3.21), reference [2]_, p.885.
-    BOX_FACTOR = 0.5
-
-    n, = np.shape(x0)  # Number of parameters
-
-    # Set default lower and upper bounds.
-    if trust_lb is None:
-        trust_lb = np.full(n, -np.inf)
-    if trust_ub is None:
-        trust_ub = np.full(n, np.inf)
-
-    # Initial values
-    x = np.copy(x0)
-    trust_radius = initial_trust_radius
-    penalty = initial_penalty
-    # Compute Values
-    f = fun0
-    c = grad0
-    b = constr0
-    A = jac0
-    S = scaling(x)
-    # Get projections
-    try:
-        Z, LS, Y = projections(A, factorization_method)
-    except ValueError as e:
-        if str(e) == "expected square matrix":
-            # can be the case if there are more equality
-            # constraints than independent variables
-            raise ValueError(
-                "The 'expected square matrix' error can occur if there are"
-                " more equality constraints than independent variables."
-                " Consider how your constraints are set up, or use"
-                " factorization_method='SVDFactorization'."
-            ) from e
-        else:
-            raise e
-
-    # Compute least-square lagrange multipliers
-    v = -LS.dot(c)
-    # Compute Hessian
-    H = lagr_hess(x, v)
-
-    # Update state parameters
-    optimality = norm(c + A.T.dot(v), np.inf)
-    constr_violation = norm(b, np.inf) if len(b) > 0 else 0
-    cg_info = {'niter': 0, 'stop_cond': 0,
-               'hits_boundary': False}
-
-    last_iteration_failed = False
-    while not stop_criteria(state, x, last_iteration_failed,
-                            optimality, constr_violation,
-                            trust_radius, penalty, cg_info):
-        # Normal Step - `dn`
-        # minimize 1/2*||A dn + b||^2
-        # subject to:
-        # ||dn|| <= TR_FACTOR * trust_radius
-        # BOX_FACTOR * lb <= dn <= BOX_FACTOR * ub.
-        dn = modified_dogleg(A, Y, b,
-                             TR_FACTOR*trust_radius,
-                             BOX_FACTOR*trust_lb,
-                             BOX_FACTOR*trust_ub)
-
-        # Tangential Step - `dt`
-        # Solve the QP problem:
-        # minimize 1/2 dt.T H dt + dt.T (H dn + c)
-        # subject to:
-        # A dt = 0
-        # ||dt|| <= sqrt(trust_radius**2 - ||dn||**2)
-        # lb - dn <= dt <= ub - dn
-        c_t = H.dot(dn) + c
-        b_t = np.zeros_like(b)
-        trust_radius_t = np.sqrt(trust_radius**2 - np.linalg.norm(dn)**2)
-        lb_t = trust_lb - dn
-        ub_t = trust_ub - dn
-        dt, cg_info = projected_cg(H, c_t, Z, Y, b_t,
-                                   trust_radius_t,
-                                   lb_t, ub_t)
-
-        # Compute update (normal + tangential steps).
-        d = dn + dt
-
-        # Compute second order model: 1/2 d H d + c.T d + f.
-        quadratic_model = 1/2*(H.dot(d)).dot(d) + c.T.dot(d)
-        # Compute linearized constraint: l = A d + b.
-        linearized_constr = A.dot(d)+b
-        # Compute new penalty parameter according to formula (3.52),
-        # reference [2]_, p.891.
-        vpred = norm(b) - norm(linearized_constr)
-        # Guarantee `vpred` always positive,
-        # regardless of roundoff errors.
-        vpred = max(1e-16, vpred)
-        previous_penalty = penalty
-        if quadratic_model > 0:
-            new_penalty = quadratic_model / ((1-PENALTY_FACTOR)*vpred)
-            penalty = max(penalty, new_penalty)
-        # Compute predicted reduction according to formula (3.52),
-        # reference [2]_, p.891.
-        predicted_reduction = -quadratic_model + penalty*vpred
-
-        # Compute merit function at current point
-        merit_function = f + penalty*norm(b)
-        # Evaluate function and constraints at trial point
-        x_next = x + S.dot(d)
-        f_next, b_next = fun_and_constr(x_next)
-        # Compute merit function at trial point
-        merit_function_next = f_next + penalty*norm(b_next)
-        # Compute actual reduction according to formula (3.54),
-        # reference [2]_, p.892.
-        actual_reduction = merit_function - merit_function_next
-        # Compute reduction ratio
-        reduction_ratio = actual_reduction / predicted_reduction
-
-        # Second order correction (SOC), reference [2]_, p.892.
-        if reduction_ratio < SUFFICIENT_REDUCTION_RATIO and \
-           norm(dn) <= SOC_THRESHOLD * norm(dt):
-            # Compute second order correction
-            y = -Y.dot(b_next)
-            # Make sure increment is inside box constraints
-            _, t, intersect = box_intersections(d, y, trust_lb, trust_ub)
-            # Compute tentative point
-            x_soc = x + S.dot(d + t*y)
-            f_soc, b_soc = fun_and_constr(x_soc)
-            # Recompute actual reduction
-            merit_function_soc = f_soc + penalty*norm(b_soc)
-            actual_reduction_soc = merit_function - merit_function_soc
-            # Recompute reduction ratio
-            reduction_ratio_soc = actual_reduction_soc / predicted_reduction
-            if intersect and reduction_ratio_soc >= SUFFICIENT_REDUCTION_RATIO:
-                x_next = x_soc
-                f_next = f_soc
-                b_next = b_soc
-                reduction_ratio = reduction_ratio_soc
-
-        # Readjust trust region step, formula (3.55), reference [2]_, p.892.
-        if reduction_ratio >= LARGE_REDUCTION_RATIO:
-            trust_radius = max(TRUST_ENLARGEMENT_FACTOR_L * norm(d),
-                               trust_radius)
-        elif reduction_ratio >= INTERMEDIARY_REDUCTION_RATIO:
-            trust_radius = max(TRUST_ENLARGEMENT_FACTOR_S * norm(d),
-                               trust_radius)
-        # Reduce trust region step, according to reference [3]_, p.696.
-        elif reduction_ratio < SUFFICIENT_REDUCTION_RATIO:
-            trust_reduction = ((1-SUFFICIENT_REDUCTION_RATIO) /
-                               (1-reduction_ratio))
-            new_trust_radius = trust_reduction * norm(d)
-            if new_trust_radius >= MAX_TRUST_REDUCTION * trust_radius:
-                trust_radius *= MAX_TRUST_REDUCTION
-            elif new_trust_radius >= MIN_TRUST_REDUCTION * trust_radius:
-                trust_radius = new_trust_radius
-            else:
-                trust_radius *= MIN_TRUST_REDUCTION
-
-        # Update iteration
-        if reduction_ratio >= SUFFICIENT_REDUCTION_RATIO:
-            x = x_next
-            f, b = f_next, b_next
-            c, A = grad_and_jac(x)
-            S = scaling(x)
-            # Get projections
-            Z, LS, Y = projections(A, factorization_method)
-            # Compute least-square lagrange multipliers
-            v = -LS.dot(c)
-            # Compute Hessian
-            H = lagr_hess(x, v)
-            # Set Flag
-            last_iteration_failed = False
-            # Otimality values
-            optimality = norm(c + A.T.dot(v), np.inf)
-            constr_violation = norm(b, np.inf) if len(b) > 0 else 0
-        else:
-            penalty = previous_penalty
-            last_iteration_failed = True
-
-    return x, state
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py
deleted file mode 100644
index 2835ea5445c0eafc303f0cb1ab8543f48b7e3bb9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py
+++ /dev/null
@@ -1,564 +0,0 @@
-import time
-import numpy as np
-from scipy.sparse.linalg import LinearOperator
-from .._differentiable_functions import VectorFunction
-from .._constraints import (
-    NonlinearConstraint, LinearConstraint, PreparedConstraint, Bounds, strict_bounds)
-from .._hessian_update_strategy import BFGS
-from .._optimize import OptimizeResult
-from .._differentiable_functions import ScalarFunction
-from .equality_constrained_sqp import equality_constrained_sqp
-from .canonical_constraint import (CanonicalConstraint,
-                                   initial_constraints_as_canonical)
-from .tr_interior_point import tr_interior_point
-from .report import BasicReport, SQPReport, IPReport
-
-
-TERMINATION_MESSAGES = {
-    0: "The maximum number of function evaluations is exceeded.",
-    1: "`gtol` termination condition is satisfied.",
-    2: "`xtol` termination condition is satisfied.",
-    3: "`callback` function requested termination."
-}
-
-
-class HessianLinearOperator:
-    """Build LinearOperator from hessp"""
-    def __init__(self, hessp, n):
-        self.hessp = hessp
-        self.n = n
-
-    def __call__(self, x, *args):
-        def matvec(p):
-            return self.hessp(x, p, *args)
-
-        return LinearOperator((self.n, self.n), matvec=matvec)
-
-
-class LagrangianHessian:
-    """The Hessian of the Lagrangian as LinearOperator.
-
-    The Lagrangian is computed as the objective function plus all the
-    constraints multiplied with some numbers (Lagrange multipliers).
-    """
-    def __init__(self, n, objective_hess, constraints_hess):
-        self.n = n
-        self.objective_hess = objective_hess
-        self.constraints_hess = constraints_hess
-
-    def __call__(self, x, v_eq=np.empty(0), v_ineq=np.empty(0)):
-        H_objective = self.objective_hess(x)
-        H_constraints = self.constraints_hess(x, v_eq, v_ineq)
-
-        def matvec(p):
-            return H_objective.dot(p) + H_constraints.dot(p)
-
-        return LinearOperator((self.n, self.n), matvec)
-
-
-def update_state_sqp(state, x, last_iteration_failed, objective, prepared_constraints,
-                     start_time, tr_radius, constr_penalty, cg_info):
-    state.nit += 1
-    state.nfev = objective.nfev
-    state.njev = objective.ngev
-    state.nhev = objective.nhev
-    state.constr_nfev = [c.fun.nfev if isinstance(c.fun, VectorFunction) else 0
-                         for c in prepared_constraints]
-    state.constr_njev = [c.fun.njev if isinstance(c.fun, VectorFunction) else 0
-                         for c in prepared_constraints]
-    state.constr_nhev = [c.fun.nhev if isinstance(c.fun, VectorFunction) else 0
-                         for c in prepared_constraints]
-
-    if not last_iteration_failed:
-        state.x = x
-        state.fun = objective.f
-        state.grad = objective.g
-        state.v = [c.fun.v for c in prepared_constraints]
-        state.constr = [c.fun.f for c in prepared_constraints]
-        state.jac = [c.fun.J for c in prepared_constraints]
-        # Compute Lagrangian Gradient
-        state.lagrangian_grad = np.copy(state.grad)
-        for c in prepared_constraints:
-            state.lagrangian_grad += c.fun.J.T.dot(c.fun.v)
-        state.optimality = np.linalg.norm(state.lagrangian_grad, np.inf)
-        # Compute maximum constraint violation
-        state.constr_violation = 0
-        for i in range(len(prepared_constraints)):
-            lb, ub = prepared_constraints[i].bounds
-            c = state.constr[i]
-            state.constr_violation = np.max([state.constr_violation,
-                                             np.max(lb - c),
-                                             np.max(c - ub)])
-
-    state.execution_time = time.time() - start_time
-    state.tr_radius = tr_radius
-    state.constr_penalty = constr_penalty
-    state.cg_niter += cg_info["niter"]
-    state.cg_stop_cond = cg_info["stop_cond"]
-
-    return state
-
-
-def update_state_ip(state, x, last_iteration_failed, objective,
-                    prepared_constraints, start_time,
-                    tr_radius, constr_penalty, cg_info,
-                    barrier_parameter, barrier_tolerance):
-    state = update_state_sqp(state, x, last_iteration_failed, objective,
-                             prepared_constraints, start_time, tr_radius,
-                             constr_penalty, cg_info)
-    state.barrier_parameter = barrier_parameter
-    state.barrier_tolerance = barrier_tolerance
-    return state
-
-
-def _minimize_trustregion_constr(fun, x0, args, grad,
-                                 hess, hessp, bounds, constraints,
-                                 xtol=1e-8, gtol=1e-8,
-                                 barrier_tol=1e-8,
-                                 sparse_jacobian=None,
-                                 callback=None, maxiter=1000,
-                                 verbose=0, finite_diff_rel_step=None,
-                                 initial_constr_penalty=1.0, initial_tr_radius=1.0,
-                                 initial_barrier_parameter=0.1,
-                                 initial_barrier_tolerance=0.1,
-                                 factorization_method=None,
-                                 disp=False):
-    """Minimize a scalar function subject to constraints.
-
-    Parameters
-    ----------
-    gtol : float, optional
-        Tolerance for termination by the norm of the Lagrangian gradient.
-        The algorithm will terminate when both the infinity norm (i.e., max
-        abs value) of the Lagrangian gradient and the constraint violation
-        are smaller than ``gtol``. Default is 1e-8.
-    xtol : float, optional
-        Tolerance for termination by the change of the independent variable.
-        The algorithm will terminate when ``tr_radius < xtol``, where
-        ``tr_radius`` is the radius of the trust region used in the algorithm.
-        Default is 1e-8.
-    barrier_tol : float, optional
-        Threshold on the barrier parameter for the algorithm termination.
-        When inequality constraints are present, the algorithm will terminate
-        only when the barrier parameter is less than `barrier_tol`.
-        Default is 1e-8.
-    sparse_jacobian : {bool, None}, optional
-        Determines how to represent Jacobians of the constraints. If bool,
-        then Jacobians of all the constraints will be converted to the
-        corresponding format. If None (default), then Jacobians won't be
-        converted, but the algorithm can proceed only if they all have the
-        same format.
-    initial_tr_radius: float, optional
-        Initial trust radius. The trust radius gives the maximum distance
-        between solution points in consecutive iterations. It reflects the
-        trust the algorithm puts in the local approximation of the optimization
-        problem. For an accurate local approximation the trust-region should be
-        large and for an  approximation valid only close to the current point it
-        should be a small one. The trust radius is automatically updated throughout
-        the optimization process, with ``initial_tr_radius`` being its initial value.
-        Default is 1 (recommended in [1]_, p. 19).
-    initial_constr_penalty : float, optional
-        Initial constraints penalty parameter. The penalty parameter is used for
-        balancing the requirements of decreasing the objective function
-        and satisfying the constraints. It is used for defining the merit function:
-        ``merit_function(x) = fun(x) + constr_penalty * constr_norm_l2(x)``,
-        where ``constr_norm_l2(x)`` is the l2 norm of a vector containing all
-        the constraints. The merit function is used for accepting or rejecting
-        trial points and ``constr_penalty`` weights the two conflicting goals
-        of reducing objective function and constraints. The penalty is automatically
-        updated throughout the optimization  process, with
-        ``initial_constr_penalty`` being its  initial value. Default is 1
-        (recommended in [1]_, p 19).
-    initial_barrier_parameter, initial_barrier_tolerance: float, optional
-        Initial barrier parameter and initial tolerance for the barrier subproblem.
-        Both are used only when inequality constraints are present. For dealing with
-        optimization problems ``min_x f(x)`` subject to inequality constraints
-        ``c(x) <= 0`` the algorithm introduces slack variables, solving the problem
-        ``min_(x,s) f(x) + barrier_parameter*sum(ln(s))`` subject to the equality
-        constraints  ``c(x) + s = 0`` instead of the original problem. This subproblem
-        is solved for decreasing values of ``barrier_parameter`` and with decreasing
-        tolerances for the termination, starting with ``initial_barrier_parameter``
-        for the barrier parameter and ``initial_barrier_tolerance`` for the
-        barrier tolerance. Default is 0.1 for both values (recommended in [1]_ p. 19).
-        Also note that ``barrier_parameter`` and ``barrier_tolerance`` are updated
-        with the same prefactor.
-    factorization_method : string or None, optional
-        Method to factorize the Jacobian of the constraints. Use None (default)
-        for the auto selection or one of:
-
-            - 'NormalEquation' (requires scikit-sparse)
-            - 'AugmentedSystem'
-            - 'QRFactorization'
-            - 'SVDFactorization'
-
-        The methods 'NormalEquation' and 'AugmentedSystem' can be used only
-        with sparse constraints. The projections required by the algorithm
-        will be computed using, respectively, the normal equation  and the
-        augmented system approaches explained in [1]_. 'NormalEquation'
-        computes the Cholesky factorization of ``A A.T`` and 'AugmentedSystem'
-        performs the LU factorization of an augmented system. They usually
-        provide similar results. 'AugmentedSystem' is used by default for
-        sparse matrices.
-
-        The methods 'QRFactorization' and 'SVDFactorization' can be used
-        only with dense constraints. They compute the required projections
-        using, respectively, QR and SVD factorizations. The 'SVDFactorization'
-        method can cope with Jacobian matrices with deficient row rank and will
-        be used whenever other factorization methods fail (which may imply the
-        conversion of sparse matrices to a dense format when required).
-        By default, 'QRFactorization' is used for dense matrices.
-    finite_diff_rel_step : None or array_like, optional
-        Relative step size for the finite difference approximation.
-    maxiter : int, optional
-        Maximum number of algorithm iterations. Default is 1000.
-    verbose : {0, 1, 2}, optional
-        Level of algorithm's verbosity:
-
-            * 0 (default) : work silently.
-            * 1 : display a termination report.
-            * 2 : display progress during iterations.
-            * 3 : display progress during iterations (more complete report).
-
-    disp : bool, optional
-        If True (default), then `verbose` will be set to 1 if it was 0.
-
-    Returns
-    -------
-    `OptimizeResult` with the fields documented below. Note the following:
-
-        1. All values corresponding to the constraints are ordered as they
-           were passed to the solver. And values corresponding to `bounds`
-           constraints are put *after* other constraints.
-        2. All numbers of function, Jacobian or Hessian evaluations correspond
-           to numbers of actual Python function calls. It means, for example,
-           that if a Jacobian is estimated by finite differences, then the
-           number of Jacobian evaluations will be zero and the number of
-           function evaluations will be incremented by all calls during the
-           finite difference estimation.
-
-    x : ndarray, shape (n,)
-        Solution found.
-    optimality : float
-        Infinity norm of the Lagrangian gradient at the solution.
-    constr_violation : float
-        Maximum constraint violation at the solution.
-    fun : float
-        Objective function at the solution.
-    grad : ndarray, shape (n,)
-        Gradient of the objective function at the solution.
-    lagrangian_grad : ndarray, shape (n,)
-        Gradient of the Lagrangian function at the solution.
-    nit : int
-        Total number of iterations.
-    nfev : integer
-        Number of the objective function evaluations.
-    njev : integer
-        Number of the objective function gradient evaluations.
-    nhev : integer
-        Number of the objective function Hessian evaluations.
-    cg_niter : int
-        Total number of the conjugate gradient method iterations.
-    method : {'equality_constrained_sqp', 'tr_interior_point'}
-        Optimization method used.
-    constr : list of ndarray
-        List of constraint values at the solution.
-    jac : list of {ndarray, sparse matrix}
-        List of the Jacobian matrices of the constraints at the solution.
-    v : list of ndarray
-        List of the Lagrange multipliers for the constraints at the solution.
-        For an inequality constraint a positive multiplier means that the upper
-        bound is active, a negative multiplier means that the lower bound is
-        active and if a multiplier is zero it means the constraint is not
-        active.
-    constr_nfev : list of int
-        Number of constraint evaluations for each of the constraints.
-    constr_njev : list of int
-        Number of Jacobian matrix evaluations for each of the constraints.
-    constr_nhev : list of int
-        Number of Hessian evaluations for each of the constraints.
-    tr_radius : float
-        Radius of the trust region at the last iteration.
-    constr_penalty : float
-        Penalty parameter at the last iteration, see `initial_constr_penalty`.
-    barrier_tolerance : float
-        Tolerance for the barrier subproblem at the last iteration.
-        Only for problems with inequality constraints.
-    barrier_parameter : float
-        Barrier parameter at the last iteration. Only for problems
-        with inequality constraints.
-    execution_time : float
-        Total execution time.
-    message : str
-        Termination message.
-    status : {0, 1, 2, 3}
-        Termination status:
-
-            * 0 : The maximum number of function evaluations is exceeded.
-            * 1 : `gtol` termination condition is satisfied.
-            * 2 : `xtol` termination condition is satisfied.
-            * 3 : `callback` function requested termination.
-
-    cg_stop_cond : int
-        Reason for CG subproblem termination at the last iteration:
-
-            * 0 : CG subproblem not evaluated.
-            * 1 : Iteration limit was reached.
-            * 2 : Reached the trust-region boundary.
-            * 3 : Negative curvature detected.
-            * 4 : Tolerance was satisfied.
-
-    References
-    ----------
-    .. [1] Conn, A. R., Gould, N. I., & Toint, P. L.
-           Trust region methods. 2000. Siam. pp. 19.
-    """
-    x0 = np.atleast_1d(x0).astype(float)
-    n_vars = np.size(x0)
-    if hess is None:
-        if callable(hessp):
-            hess = HessianLinearOperator(hessp, n_vars)
-        else:
-            hess = BFGS()
-    if disp and verbose == 0:
-        verbose = 1
-
-    if bounds is not None:
-        modified_lb = np.nextafter(bounds.lb, -np.inf, where=bounds.lb > -np.inf)
-        modified_ub = np.nextafter(bounds.ub, np.inf, where=bounds.ub < np.inf)
-        modified_lb = np.where(np.isfinite(bounds.lb), modified_lb, bounds.lb)
-        modified_ub = np.where(np.isfinite(bounds.ub), modified_ub, bounds.ub)
-        bounds = Bounds(modified_lb, modified_ub, keep_feasible=bounds.keep_feasible)
-        finite_diff_bounds = strict_bounds(bounds.lb, bounds.ub,
-                                           bounds.keep_feasible, n_vars)
-    else:
-        finite_diff_bounds = (-np.inf, np.inf)
-
-    # Define Objective Function
-    objective = ScalarFunction(fun, x0, args, grad, hess,
-                               finite_diff_rel_step, finite_diff_bounds)
-
-    # Put constraints in list format when needed.
-    if isinstance(constraints, (NonlinearConstraint, LinearConstraint)):
-        constraints = [constraints]
-
-    # Prepare constraints.
-    prepared_constraints = [
-        PreparedConstraint(c, x0, sparse_jacobian, finite_diff_bounds)
-        for c in constraints]
-
-    # Check that all constraints are either sparse or dense.
-    n_sparse = sum(c.fun.sparse_jacobian for c in prepared_constraints)
-    if 0 < n_sparse < len(prepared_constraints):
-        raise ValueError("All constraints must have the same kind of the "
-                         "Jacobian --- either all sparse or all dense. "
-                         "You can set the sparsity globally by setting "
-                         "`sparse_jacobian` to either True of False.")
-    if prepared_constraints:
-        sparse_jacobian = n_sparse > 0
-
-    if bounds is not None:
-        if sparse_jacobian is None:
-            sparse_jacobian = True
-        prepared_constraints.append(PreparedConstraint(bounds, x0,
-                                                       sparse_jacobian))
-
-    # Concatenate initial constraints to the canonical form.
-    c_eq0, c_ineq0, J_eq0, J_ineq0 = initial_constraints_as_canonical(
-        n_vars, prepared_constraints, sparse_jacobian)
-
-    # Prepare all canonical constraints and concatenate it into one.
-    canonical_all = [CanonicalConstraint.from_PreparedConstraint(c)
-                     for c in prepared_constraints]
-
-    if len(canonical_all) == 0:
-        canonical = CanonicalConstraint.empty(n_vars)
-    elif len(canonical_all) == 1:
-        canonical = canonical_all[0]
-    else:
-        canonical = CanonicalConstraint.concatenate(canonical_all,
-                                                    sparse_jacobian)
-
-    # Generate the Hessian of the Lagrangian.
-    lagrangian_hess = LagrangianHessian(n_vars, objective.hess, canonical.hess)
-
-    # Choose appropriate method
-    if canonical.n_ineq == 0:
-        method = 'equality_constrained_sqp'
-    else:
-        method = 'tr_interior_point'
-
-    # Construct OptimizeResult
-    state = OptimizeResult(
-        nit=0, nfev=0, njev=0, nhev=0,
-        cg_niter=0, cg_stop_cond=0,
-        fun=objective.f, grad=objective.g,
-        lagrangian_grad=np.copy(objective.g),
-        constr=[c.fun.f for c in prepared_constraints],
-        jac=[c.fun.J for c in prepared_constraints],
-        constr_nfev=[0 for c in prepared_constraints],
-        constr_njev=[0 for c in prepared_constraints],
-        constr_nhev=[0 for c in prepared_constraints],
-        v=[c.fun.v for c in prepared_constraints],
-        method=method)
-
-    # Start counting
-    start_time = time.time()
-
-    # Define stop criteria
-    if method == 'equality_constrained_sqp':
-        def stop_criteria(state, x, last_iteration_failed,
-                          optimality, constr_violation,
-                          tr_radius, constr_penalty, cg_info):
-            state = update_state_sqp(state, x, last_iteration_failed,
-                                     objective, prepared_constraints,
-                                     start_time, tr_radius, constr_penalty,
-                                     cg_info)
-            if verbose == 2:
-                BasicReport.print_iteration(state.nit,
-                                            state.nfev,
-                                            state.cg_niter,
-                                            state.fun,
-                                            state.tr_radius,
-                                            state.optimality,
-                                            state.constr_violation)
-            elif verbose > 2:
-                SQPReport.print_iteration(state.nit,
-                                          state.nfev,
-                                          state.cg_niter,
-                                          state.fun,
-                                          state.tr_radius,
-                                          state.optimality,
-                                          state.constr_violation,
-                                          state.constr_penalty,
-                                          state.cg_stop_cond)
-            state.status = None
-            state.niter = state.nit  # Alias for callback (backward-compatibility)
-            if callback is not None:
-                callback_stop = False
-                try:
-                    callback_stop = callback(state)
-                except StopIteration:
-                    callback_stop = True
-                if callback_stop:
-                    state.status = 3
-                    return True
-            if state.optimality < gtol and state.constr_violation < gtol:
-                state.status = 1
-            elif state.tr_radius < xtol:
-                state.status = 2
-            elif state.nit >= maxiter:
-                state.status = 0
-            return state.status in (0, 1, 2, 3)
-    elif method == 'tr_interior_point':
-        def stop_criteria(state, x, last_iteration_failed, tr_radius,
-                          constr_penalty, cg_info, barrier_parameter,
-                          barrier_tolerance):
-            state = update_state_ip(state, x, last_iteration_failed,
-                                    objective, prepared_constraints,
-                                    start_time, tr_radius, constr_penalty,
-                                    cg_info, barrier_parameter, barrier_tolerance)
-            if verbose == 2:
-                BasicReport.print_iteration(state.nit,
-                                            state.nfev,
-                                            state.cg_niter,
-                                            state.fun,
-                                            state.tr_radius,
-                                            state.optimality,
-                                            state.constr_violation)
-            elif verbose > 2:
-                IPReport.print_iteration(state.nit,
-                                         state.nfev,
-                                         state.cg_niter,
-                                         state.fun,
-                                         state.tr_radius,
-                                         state.optimality,
-                                         state.constr_violation,
-                                         state.constr_penalty,
-                                         state.barrier_parameter,
-                                         state.cg_stop_cond)
-            state.status = None
-            state.niter = state.nit  # Alias for callback (backward compatibility)
-            if callback is not None:
-                callback_stop = False
-                try:
-                    callback_stop = callback(state)
-                except StopIteration:
-                    callback_stop = True
-                if callback_stop:
-                    state.status = 3
-                    return True
-            if state.optimality < gtol and state.constr_violation < gtol:
-                state.status = 1
-            elif (state.tr_radius < xtol
-                  and state.barrier_parameter < barrier_tol):
-                state.status = 2
-            elif state.nit >= maxiter:
-                state.status = 0
-            return state.status in (0, 1, 2, 3)
-
-    if verbose == 2:
-        BasicReport.print_header()
-    elif verbose > 2:
-        if method == 'equality_constrained_sqp':
-            SQPReport.print_header()
-        elif method == 'tr_interior_point':
-            IPReport.print_header()
-
-    # Call inferior function to do the optimization
-    if method == 'equality_constrained_sqp':
-        def fun_and_constr(x):
-            f = objective.fun(x)
-            c_eq, _ = canonical.fun(x)
-            return f, c_eq
-
-        def grad_and_jac(x):
-            g = objective.grad(x)
-            J_eq, _ = canonical.jac(x)
-            return g, J_eq
-
-        _, result = equality_constrained_sqp(
-            fun_and_constr, grad_and_jac, lagrangian_hess,
-            x0, objective.f, objective.g,
-            c_eq0, J_eq0,
-            stop_criteria, state,
-            initial_constr_penalty, initial_tr_radius,
-            factorization_method)
-
-    elif method == 'tr_interior_point':
-        _, result = tr_interior_point(
-            objective.fun, objective.grad, lagrangian_hess,
-            n_vars, canonical.n_ineq, canonical.n_eq,
-            canonical.fun, canonical.jac,
-            x0, objective.f, objective.g,
-            c_ineq0, J_ineq0, c_eq0, J_eq0,
-            stop_criteria,
-            canonical.keep_feasible,
-            xtol, state, initial_barrier_parameter,
-            initial_barrier_tolerance,
-            initial_constr_penalty, initial_tr_radius,
-            factorization_method)
-
-    # Status 3 occurs when the callback function requests termination,
-    # this is assumed to not be a success.
-    result.success = True if result.status in (1, 2) else False
-    result.message = TERMINATION_MESSAGES[result.status]
-
-    # Alias (for backward compatibility with 1.1.0)
-    result.niter = result.nit
-
-    if verbose == 2:
-        BasicReport.print_footer()
-    elif verbose > 2:
-        if method == 'equality_constrained_sqp':
-            SQPReport.print_footer()
-        elif method == 'tr_interior_point':
-            IPReport.print_footer()
-    if verbose >= 1:
-        print(result.message)
-        print("Number of iterations: {}, function evaluations: {}, "
-              "CG iterations: {}, optimality: {:.2e}, "
-              "constraint violation: {:.2e}, execution time: {:4.2} s."
-              .format(result.nit, result.nfev, result.cg_niter,
-                      result.optimality, result.constr_violation,
-                      result.execution_time))
-    return result
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/projections.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/projections.py
deleted file mode 100644
index a07b836bdbad688a265ae34ce91a361fd5050eb1..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/projections.py
+++ /dev/null
@@ -1,407 +0,0 @@
-"""Basic linear factorizations needed by the solver."""
-
-from scipy.sparse import (bmat, csc_matrix, eye, issparse)
-from scipy.sparse.linalg import LinearOperator
-import scipy.linalg
-import scipy.sparse.linalg
-try:
-    from sksparse.cholmod import cholesky_AAt
-    sksparse_available = True
-except ImportError:
-    import warnings
-    sksparse_available = False
-import numpy as np
-from warnings import warn
-
-__all__ = [
-    'orthogonality',
-    'projections',
-]
-
-
-def orthogonality(A, g):
-    """Measure orthogonality between a vector and the null space of a matrix.
-
-    Compute a measure of orthogonality between the null space
-    of the (possibly sparse) matrix ``A`` and a given vector ``g``.
-
-    The formula is a simplified (and cheaper) version of formula (3.13)
-    from [1]_.
-    ``orth =  norm(A g, ord=2)/(norm(A, ord='fro')*norm(g, ord=2))``.
-
-    References
-    ----------
-    .. [1] Gould, Nicholas IM, Mary E. Hribar, and Jorge Nocedal.
-           "On the solution of equality constrained quadratic
-            programming problems arising in optimization."
-            SIAM Journal on Scientific Computing 23.4 (2001): 1376-1395.
-    """
-    # Compute vector norms
-    norm_g = np.linalg.norm(g)
-    # Compute Froebnius norm of the matrix A
-    if issparse(A):
-        norm_A = scipy.sparse.linalg.norm(A, ord='fro')
-    else:
-        norm_A = np.linalg.norm(A, ord='fro')
-
-    # Check if norms are zero
-    if norm_g == 0 or norm_A == 0:
-        return 0
-
-    norm_A_g = np.linalg.norm(A.dot(g))
-    # Orthogonality measure
-    orth = norm_A_g / (norm_A*norm_g)
-    return orth
-
-
-def normal_equation_projections(A, m, n, orth_tol, max_refin, tol):
-    """Return linear operators for matrix A using ``NormalEquation`` approach.
-    """
-    # Cholesky factorization
-    factor = cholesky_AAt(A)
-
-    # z = x - A.T inv(A A.T) A x
-    def null_space(x):
-        v = factor(A.dot(x))
-        z = x - A.T.dot(v)
-
-        # Iterative refinement to improve roundoff
-        # errors described in [2]_, algorithm 5.1.
-        k = 0
-        while orthogonality(A, z) > orth_tol:
-            if k >= max_refin:
-                break
-            # z_next = z - A.T inv(A A.T) A z
-            v = factor(A.dot(z))
-            z = z - A.T.dot(v)
-            k += 1
-
-        return z
-
-    # z = inv(A A.T) A x
-    def least_squares(x):
-        return factor(A.dot(x))
-
-    # z = A.T inv(A A.T) x
-    def row_space(x):
-        return A.T.dot(factor(x))
-
-    return null_space, least_squares, row_space
-
-
-def augmented_system_projections(A, m, n, orth_tol, max_refin, tol):
-    """Return linear operators for matrix A - ``AugmentedSystem``."""
-    # Form augmented system
-    K = csc_matrix(bmat([[eye(n), A.T], [A, None]]))
-    # LU factorization
-    # TODO: Use a symmetric indefinite factorization
-    #       to solve the system twice as fast (because
-    #       of the symmetry).
-    try:
-        solve = scipy.sparse.linalg.factorized(K)
-    except RuntimeError:
-        warn("Singular Jacobian matrix. Using dense SVD decomposition to "
-             "perform the factorizations.",
-             stacklevel=3)
-        return svd_factorization_projections(A.toarray(),
-                                             m, n, orth_tol,
-                                             max_refin, tol)
-
-    # z = x - A.T inv(A A.T) A x
-    # is computed solving the extended system:
-    # [I A.T] * [ z ] = [x]
-    # [A  O ]   [aux]   [0]
-    def null_space(x):
-        # v = [x]
-        #     [0]
-        v = np.hstack([x, np.zeros(m)])
-        # lu_sol = [ z ]
-        #          [aux]
-        lu_sol = solve(v)
-        z = lu_sol[:n]
-
-        # Iterative refinement to improve roundoff
-        # errors described in [2]_, algorithm 5.2.
-        k = 0
-        while orthogonality(A, z) > orth_tol:
-            if k >= max_refin:
-                break
-            # new_v = [x] - [I A.T] * [ z ]
-            #         [0]   [A  O ]   [aux]
-            new_v = v - K.dot(lu_sol)
-            # [I A.T] * [delta  z ] = new_v
-            # [A  O ]   [delta aux]
-            lu_update = solve(new_v)
-            #  [ z ] += [delta  z ]
-            #  [aux]    [delta aux]
-            lu_sol += lu_update
-            z = lu_sol[:n]
-            k += 1
-
-        # return z = x - A.T inv(A A.T) A x
-        return z
-
-    # z = inv(A A.T) A x
-    # is computed solving the extended system:
-    # [I A.T] * [aux] = [x]
-    # [A  O ]   [ z ]   [0]
-    def least_squares(x):
-        # v = [x]
-        #     [0]
-        v = np.hstack([x, np.zeros(m)])
-        # lu_sol = [aux]
-        #          [ z ]
-        lu_sol = solve(v)
-        # return z = inv(A A.T) A x
-        return lu_sol[n:m+n]
-
-    # z = A.T inv(A A.T) x
-    # is computed solving the extended system:
-    # [I A.T] * [ z ] = [0]
-    # [A  O ]   [aux]   [x]
-    def row_space(x):
-        # v = [0]
-        #     [x]
-        v = np.hstack([np.zeros(n), x])
-        # lu_sol = [ z ]
-        #          [aux]
-        lu_sol = solve(v)
-        # return z = A.T inv(A A.T) x
-        return lu_sol[:n]
-
-    return null_space, least_squares, row_space
-
-
-def qr_factorization_projections(A, m, n, orth_tol, max_refin, tol):
-    """Return linear operators for matrix A using ``QRFactorization`` approach.
-    """
-    # QRFactorization
-    Q, R, P = scipy.linalg.qr(A.T, pivoting=True, mode='economic')
-
-    if np.linalg.norm(R[-1, :], np.inf) < tol:
-        warn('Singular Jacobian matrix. Using SVD decomposition to ' +
-             'perform the factorizations.',
-             stacklevel=3)
-        return svd_factorization_projections(A, m, n,
-                                             orth_tol,
-                                             max_refin,
-                                             tol)
-
-    # z = x - A.T inv(A A.T) A x
-    def null_space(x):
-        # v = P inv(R) Q.T x
-        aux1 = Q.T.dot(x)
-        aux2 = scipy.linalg.solve_triangular(R, aux1, lower=False)
-        v = np.zeros(m)
-        v[P] = aux2
-        z = x - A.T.dot(v)
-
-        # Iterative refinement to improve roundoff
-        # errors described in [2]_, algorithm 5.1.
-        k = 0
-        while orthogonality(A, z) > orth_tol:
-            if k >= max_refin:
-                break
-            # v = P inv(R) Q.T x
-            aux1 = Q.T.dot(z)
-            aux2 = scipy.linalg.solve_triangular(R, aux1, lower=False)
-            v[P] = aux2
-            # z_next = z - A.T v
-            z = z - A.T.dot(v)
-            k += 1
-
-        return z
-
-    # z = inv(A A.T) A x
-    def least_squares(x):
-        # z = P inv(R) Q.T x
-        aux1 = Q.T.dot(x)
-        aux2 = scipy.linalg.solve_triangular(R, aux1, lower=False)
-        z = np.zeros(m)
-        z[P] = aux2
-        return z
-
-    # z = A.T inv(A A.T) x
-    def row_space(x):
-        # z = Q inv(R.T) P.T x
-        aux1 = x[P]
-        aux2 = scipy.linalg.solve_triangular(R, aux1,
-                                             lower=False,
-                                             trans='T')
-        z = Q.dot(aux2)
-        return z
-
-    return null_space, least_squares, row_space
-
-
-def svd_factorization_projections(A, m, n, orth_tol, max_refin, tol):
-    """Return linear operators for matrix A using ``SVDFactorization`` approach.
-    """
-    # SVD Factorization
-    U, s, Vt = scipy.linalg.svd(A, full_matrices=False)
-
-    # Remove dimensions related with very small singular values
-    U = U[:, s > tol]
-    Vt = Vt[s > tol, :]
-    s = s[s > tol]
-
-    # z = x - A.T inv(A A.T) A x
-    def null_space(x):
-        # v = U 1/s V.T x = inv(A A.T) A x
-        aux1 = Vt.dot(x)
-        aux2 = 1/s*aux1
-        v = U.dot(aux2)
-        z = x - A.T.dot(v)
-
-        # Iterative refinement to improve roundoff
-        # errors described in [2]_, algorithm 5.1.
-        k = 0
-        while orthogonality(A, z) > orth_tol:
-            if k >= max_refin:
-                break
-            # v = U 1/s V.T x = inv(A A.T) A x
-            aux1 = Vt.dot(z)
-            aux2 = 1/s*aux1
-            v = U.dot(aux2)
-            # z_next = z - A.T v
-            z = z - A.T.dot(v)
-            k += 1
-
-        return z
-
-    # z = inv(A A.T) A x
-    def least_squares(x):
-        # z = U 1/s V.T x = inv(A A.T) A x
-        aux1 = Vt.dot(x)
-        aux2 = 1/s*aux1
-        z = U.dot(aux2)
-        return z
-
-    # z = A.T inv(A A.T) x
-    def row_space(x):
-        # z = V 1/s U.T x
-        aux1 = U.T.dot(x)
-        aux2 = 1/s*aux1
-        z = Vt.T.dot(aux2)
-        return z
-
-    return null_space, least_squares, row_space
-
-
-def projections(A, method=None, orth_tol=1e-12, max_refin=3, tol=1e-15):
-    """Return three linear operators related with a given matrix A.
-
-    Parameters
-    ----------
-    A : sparse matrix (or ndarray), shape (m, n)
-        Matrix ``A`` used in the projection.
-    method : string, optional
-        Method used for compute the given linear
-        operators. Should be one of:
-
-            - 'NormalEquation': The operators
-               will be computed using the
-               so-called normal equation approach
-               explained in [1]_. In order to do
-               so the Cholesky factorization of
-               ``(A A.T)`` is computed. Exclusive
-               for sparse matrices.
-            - 'AugmentedSystem': The operators
-               will be computed using the
-               so-called augmented system approach
-               explained in [1]_. Exclusive
-               for sparse matrices.
-            - 'QRFactorization': Compute projections
-               using QR factorization. Exclusive for
-               dense matrices.
-            - 'SVDFactorization': Compute projections
-               using SVD factorization. Exclusive for
-               dense matrices.
-
-    orth_tol : float, optional
-        Tolerance for iterative refinements.
-    max_refin : int, optional
-        Maximum number of iterative refinements.
-    tol : float, optional
-        Tolerance for singular values.
-
-    Returns
-    -------
-    Z : LinearOperator, shape (n, n)
-        Null-space operator. For a given vector ``x``,
-        the null space operator is equivalent to apply
-        a projection matrix ``P = I - A.T inv(A A.T) A``
-        to the vector. It can be shown that this is
-        equivalent to project ``x`` into the null space
-        of A.
-    LS : LinearOperator, shape (m, n)
-        Least-squares operator. For a given vector ``x``,
-        the least-squares operator is equivalent to apply a
-        pseudoinverse matrix ``pinv(A.T) = inv(A A.T) A``
-        to the vector. It can be shown that this vector
-        ``pinv(A.T) x`` is the least_square solution to
-        ``A.T y = x``.
-    Y : LinearOperator, shape (n, m)
-        Row-space operator. For a given vector ``x``,
-        the row-space operator is equivalent to apply a
-        projection matrix ``Q = A.T inv(A A.T)``
-        to the vector.  It can be shown that this
-        vector ``y = Q x``  the minimum norm solution
-        of ``A y = x``.
-
-    Notes
-    -----
-    Uses iterative refinements described in [1]
-    during the computation of ``Z`` in order to
-    cope with the possibility of large roundoff errors.
-
-    References
-    ----------
-    .. [1] Gould, Nicholas IM, Mary E. Hribar, and Jorge Nocedal.
-        "On the solution of equality constrained quadratic
-        programming problems arising in optimization."
-        SIAM Journal on Scientific Computing 23.4 (2001): 1376-1395.
-    """
-    m, n = np.shape(A)
-
-    # The factorization of an empty matrix
-    # only works for the sparse representation.
-    if m*n == 0:
-        A = csc_matrix(A)
-
-    # Check Argument
-    if issparse(A):
-        if method is None:
-            method = "AugmentedSystem"
-        if method not in ("NormalEquation", "AugmentedSystem"):
-            raise ValueError("Method not allowed for sparse matrix.")
-        if method == "NormalEquation" and not sksparse_available:
-            warnings.warn("Only accepts 'NormalEquation' option when "
-                          "scikit-sparse is available. Using "
-                          "'AugmentedSystem' option instead.",
-                          ImportWarning, stacklevel=3)
-            method = 'AugmentedSystem'
-    else:
-        if method is None:
-            method = "QRFactorization"
-        if method not in ("QRFactorization", "SVDFactorization"):
-            raise ValueError("Method not allowed for dense array.")
-
-    if method == 'NormalEquation':
-        null_space, least_squares, row_space \
-            = normal_equation_projections(A, m, n, orth_tol, max_refin, tol)
-    elif method == 'AugmentedSystem':
-        null_space, least_squares, row_space \
-            = augmented_system_projections(A, m, n, orth_tol, max_refin, tol)
-    elif method == "QRFactorization":
-        null_space, least_squares, row_space \
-            = qr_factorization_projections(A, m, n, orth_tol, max_refin, tol)
-    elif method == "SVDFactorization":
-        null_space, least_squares, row_space \
-            = svd_factorization_projections(A, m, n, orth_tol, max_refin, tol)
-
-    Z = LinearOperator((n, n), null_space)
-    LS = LinearOperator((m, n), least_squares)
-    Y = LinearOperator((n, m), row_space)
-
-    return Z, LS, Y
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/qp_subproblem.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/qp_subproblem.py
deleted file mode 100644
index a039a7738c283f90f30fd7c4583bf9e1a8f559d5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/qp_subproblem.py
+++ /dev/null
@@ -1,637 +0,0 @@
-"""Equality-constrained quadratic programming solvers."""
-
-from scipy.sparse import (linalg, bmat, csc_matrix)
-from math import copysign
-import numpy as np
-from numpy.linalg import norm
-
-__all__ = [
-    'eqp_kktfact',
-    'sphere_intersections',
-    'box_intersections',
-    'box_sphere_intersections',
-    'inside_box_boundaries',
-    'modified_dogleg',
-    'projected_cg'
-]
-
-
-# For comparison with the projected CG
-def eqp_kktfact(H, c, A, b):
-    """Solve equality-constrained quadratic programming (EQP) problem.
-
-    Solve ``min 1/2 x.T H x + x.t c`` subject to ``A x + b = 0``
-    using direct factorization of the KKT system.
-
-    Parameters
-    ----------
-    H : sparse matrix, shape (n, n)
-        Hessian matrix of the EQP problem.
-    c : array_like, shape (n,)
-        Gradient of the quadratic objective function.
-    A : sparse matrix
-        Jacobian matrix of the EQP problem.
-    b : array_like, shape (m,)
-        Right-hand side of the constraint equation.
-
-    Returns
-    -------
-    x : array_like, shape (n,)
-        Solution of the KKT problem.
-    lagrange_multipliers : ndarray, shape (m,)
-        Lagrange multipliers of the KKT problem.
-    """
-    n, = np.shape(c)  # Number of parameters
-    m, = np.shape(b)  # Number of constraints
-
-    # Karush-Kuhn-Tucker matrix of coefficients.
-    # Defined as in Nocedal/Wright "Numerical
-    # Optimization" p.452 in Eq. (16.4).
-    kkt_matrix = csc_matrix(bmat([[H, A.T], [A, None]]))
-    # Vector of coefficients.
-    kkt_vec = np.hstack([-c, -b])
-
-    # TODO: Use a symmetric indefinite factorization
-    #       to solve the system twice as fast (because
-    #       of the symmetry).
-    lu = linalg.splu(kkt_matrix)
-    kkt_sol = lu.solve(kkt_vec)
-    x = kkt_sol[:n]
-    lagrange_multipliers = -kkt_sol[n:n+m]
-
-    return x, lagrange_multipliers
-
-
-def sphere_intersections(z, d, trust_radius,
-                         entire_line=False):
-    """Find the intersection between segment (or line) and spherical constraints.
-
-    Find the intersection between the segment (or line) defined by the
-    parametric  equation ``x(t) = z + t*d`` and the ball
-    ``||x|| <= trust_radius``.
-
-    Parameters
-    ----------
-    z : array_like, shape (n,)
-        Initial point.
-    d : array_like, shape (n,)
-        Direction.
-    trust_radius : float
-        Ball radius.
-    entire_line : bool, optional
-        When ``True``, the function returns the intersection between the line
-        ``x(t) = z + t*d`` (``t`` can assume any value) and the ball
-        ``||x|| <= trust_radius``. When ``False``, the function returns the intersection
-        between the segment ``x(t) = z + t*d``, ``0 <= t <= 1``, and the ball.
-
-    Returns
-    -------
-    ta, tb : float
-        The line/segment ``x(t) = z + t*d`` is inside the ball for
-        for ``ta <= t <= tb``.
-    intersect : bool
-        When ``True``, there is a intersection between the line/segment
-        and the sphere. On the other hand, when ``False``, there is no
-        intersection.
-    """
-    # Special case when d=0
-    if norm(d) == 0:
-        return 0, 0, False
-    # Check for inf trust_radius
-    if np.isinf(trust_radius):
-        if entire_line:
-            ta = -np.inf
-            tb = np.inf
-        else:
-            ta = 0
-            tb = 1
-        intersect = True
-        return ta, tb, intersect
-
-    a = np.dot(d, d)
-    b = 2 * np.dot(z, d)
-    c = np.dot(z, z) - trust_radius**2
-    discriminant = b*b - 4*a*c
-    if discriminant < 0:
-        intersect = False
-        return 0, 0, intersect
-    sqrt_discriminant = np.sqrt(discriminant)
-
-    # The following calculation is mathematically
-    # equivalent to:
-    # ta = (-b - sqrt_discriminant) / (2*a)
-    # tb = (-b + sqrt_discriminant) / (2*a)
-    # but produce smaller round off errors.
-    # Look at Matrix Computation p.97
-    # for a better justification.
-    aux = b + copysign(sqrt_discriminant, b)
-    ta = -aux / (2*a)
-    tb = -2*c / aux
-    ta, tb = sorted([ta, tb])
-
-    if entire_line:
-        intersect = True
-    else:
-        # Checks to see if intersection happens
-        # within vectors length.
-        if tb < 0 or ta > 1:
-            intersect = False
-            ta = 0
-            tb = 0
-        else:
-            intersect = True
-            # Restrict intersection interval
-            # between 0 and 1.
-            ta = max(0, ta)
-            tb = min(1, tb)
-
-    return ta, tb, intersect
-
-
-def box_intersections(z, d, lb, ub,
-                      entire_line=False):
-    """Find the intersection between segment (or line) and box constraints.
-
-    Find the intersection between the segment (or line) defined by the
-    parametric  equation ``x(t) = z + t*d`` and the rectangular box
-    ``lb <= x <= ub``.
-
-    Parameters
-    ----------
-    z : array_like, shape (n,)
-        Initial point.
-    d : array_like, shape (n,)
-        Direction.
-    lb : array_like, shape (n,)
-        Lower bounds to each one of the components of ``x``. Used
-        to delimit the rectangular box.
-    ub : array_like, shape (n, )
-        Upper bounds to each one of the components of ``x``. Used
-        to delimit the rectangular box.
-    entire_line : bool, optional
-        When ``True``, the function returns the intersection between the line
-        ``x(t) = z + t*d`` (``t`` can assume any value) and the rectangular
-        box. When ``False``, the function returns the intersection between the segment
-        ``x(t) = z + t*d``, ``0 <= t <= 1``, and the rectangular box.
-
-    Returns
-    -------
-    ta, tb : float
-        The line/segment ``x(t) = z + t*d`` is inside the box for
-        for ``ta <= t <= tb``.
-    intersect : bool
-        When ``True``, there is a intersection between the line (or segment)
-        and the rectangular box. On the other hand, when ``False``, there is no
-        intersection.
-    """
-    # Make sure it is a numpy array
-    z = np.asarray(z)
-    d = np.asarray(d)
-    lb = np.asarray(lb)
-    ub = np.asarray(ub)
-    # Special case when d=0
-    if norm(d) == 0:
-        return 0, 0, False
-
-    # Get values for which d==0
-    zero_d = (d == 0)
-    # If the boundaries are not satisfied for some coordinate
-    # for which "d" is zero, there is no box-line intersection.
-    if (z[zero_d] < lb[zero_d]).any() or (z[zero_d] > ub[zero_d]).any():
-        intersect = False
-        return 0, 0, intersect
-    # Remove values for which d is zero
-    not_zero_d = np.logical_not(zero_d)
-    z = z[not_zero_d]
-    d = d[not_zero_d]
-    lb = lb[not_zero_d]
-    ub = ub[not_zero_d]
-
-    # Find a series of intervals (t_lb[i], t_ub[i]).
-    t_lb = (lb-z) / d
-    t_ub = (ub-z) / d
-    # Get the intersection of all those intervals.
-    ta = max(np.minimum(t_lb, t_ub))
-    tb = min(np.maximum(t_lb, t_ub))
-
-    # Check if intersection is feasible
-    if ta <= tb:
-        intersect = True
-    else:
-        intersect = False
-    # Checks to see if intersection happens within vectors length.
-    if not entire_line:
-        if tb < 0 or ta > 1:
-            intersect = False
-            ta = 0
-            tb = 0
-        else:
-            # Restrict intersection interval between 0 and 1.
-            ta = max(0, ta)
-            tb = min(1, tb)
-
-    return ta, tb, intersect
-
-
-def box_sphere_intersections(z, d, lb, ub, trust_radius,
-                             entire_line=False,
-                             extra_info=False):
-    """Find the intersection between segment (or line) and box/sphere constraints.
-
-    Find the intersection between the segment (or line) defined by the
-    parametric  equation ``x(t) = z + t*d``, the rectangular box
-    ``lb <= x <= ub`` and the ball ``||x|| <= trust_radius``.
-
-    Parameters
-    ----------
-    z : array_like, shape (n,)
-        Initial point.
-    d : array_like, shape (n,)
-        Direction.
-    lb : array_like, shape (n,)
-        Lower bounds to each one of the components of ``x``. Used
-        to delimit the rectangular box.
-    ub : array_like, shape (n, )
-        Upper bounds to each one of the components of ``x``. Used
-        to delimit the rectangular box.
-    trust_radius : float
-        Ball radius.
-    entire_line : bool, optional
-        When ``True``, the function returns the intersection between the line
-        ``x(t) = z + t*d`` (``t`` can assume any value) and the constraints.
-        When ``False``, the function returns the intersection between the segment
-        ``x(t) = z + t*d``, ``0 <= t <= 1`` and the constraints.
-    extra_info : bool, optional
-        When ``True``, the function returns ``intersect_sphere`` and ``intersect_box``.
-
-    Returns
-    -------
-    ta, tb : float
-        The line/segment ``x(t) = z + t*d`` is inside the rectangular box and
-        inside the ball for ``ta <= t <= tb``.
-    intersect : bool
-        When ``True``, there is a intersection between the line (or segment)
-        and both constraints. On the other hand, when ``False``, there is no
-        intersection.
-    sphere_info : dict, optional
-        Dictionary ``{ta, tb, intersect}`` containing the interval ``[ta, tb]``
-        for which the line intercepts the ball. And a boolean value indicating
-        whether the sphere is intersected by the line.
-    box_info : dict, optional
-        Dictionary ``{ta, tb, intersect}`` containing the interval ``[ta, tb]``
-        for which the line intercepts the box. And a boolean value indicating
-        whether the box is intersected by the line.
-    """
-    ta_b, tb_b, intersect_b = box_intersections(z, d, lb, ub,
-                                                entire_line)
-    ta_s, tb_s, intersect_s = sphere_intersections(z, d,
-                                                   trust_radius,
-                                                   entire_line)
-    ta = np.maximum(ta_b, ta_s)
-    tb = np.minimum(tb_b, tb_s)
-    if intersect_b and intersect_s and ta <= tb:
-        intersect = True
-    else:
-        intersect = False
-
-    if extra_info:
-        sphere_info = {'ta': ta_s, 'tb': tb_s, 'intersect': intersect_s}
-        box_info = {'ta': ta_b, 'tb': tb_b, 'intersect': intersect_b}
-        return ta, tb, intersect, sphere_info, box_info
-    else:
-        return ta, tb, intersect
-
-
-def inside_box_boundaries(x, lb, ub):
-    """Check if lb <= x <= ub."""
-    return (lb <= x).all() and (x <= ub).all()
-
-
-def reinforce_box_boundaries(x, lb, ub):
-    """Return clipped value of x"""
-    return np.minimum(np.maximum(x, lb), ub)
-
-
-def modified_dogleg(A, Y, b, trust_radius, lb, ub):
-    """Approximately  minimize ``1/2*|| A x + b ||^2`` inside trust-region.
-
-    Approximately solve the problem of minimizing ``1/2*|| A x + b ||^2``
-    subject to ``||x|| < Delta`` and ``lb <= x <= ub`` using a modification
-    of the classical dogleg approach.
-
-    Parameters
-    ----------
-    A : LinearOperator (or sparse matrix or ndarray), shape (m, n)
-        Matrix ``A`` in the minimization problem. It should have
-        dimension ``(m, n)`` such that ``m < n``.
-    Y : LinearOperator (or sparse matrix or ndarray), shape (n, m)
-        LinearOperator that apply the projection matrix
-        ``Q = A.T inv(A A.T)`` to the vector. The obtained vector
-        ``y = Q x`` being the minimum norm solution of ``A y = x``.
-    b : array_like, shape (m,)
-        Vector ``b``in the minimization problem.
-    trust_radius: float
-        Trust radius to be considered. Delimits a sphere boundary
-        to the problem.
-    lb : array_like, shape (n,)
-        Lower bounds to each one of the components of ``x``.
-        It is expected that ``lb <= 0``, otherwise the algorithm
-        may fail. If ``lb[i] = -Inf``, the lower
-        bound for the ith component is just ignored.
-    ub : array_like, shape (n, )
-        Upper bounds to each one of the components of ``x``.
-        It is expected that ``ub >= 0``, otherwise the algorithm
-        may fail. If ``ub[i] = Inf``, the upper bound for the ith
-        component is just ignored.
-
-    Returns
-    -------
-    x : array_like, shape (n,)
-        Solution to the problem.
-
-    Notes
-    -----
-    Based on implementations described in pp. 885-886 from [1]_.
-
-    References
-    ----------
-    .. [1] Byrd, Richard H., Mary E. Hribar, and Jorge Nocedal.
-           "An interior point algorithm for large-scale nonlinear
-           programming." SIAM Journal on Optimization 9.4 (1999): 877-900.
-    """
-    # Compute minimum norm minimizer of 1/2*|| A x + b ||^2.
-    newton_point = -Y.dot(b)
-    # Check for interior point
-    if inside_box_boundaries(newton_point, lb, ub)  \
-       and norm(newton_point) <= trust_radius:
-        x = newton_point
-        return x
-
-    # Compute gradient vector ``g = A.T b``
-    g = A.T.dot(b)
-    # Compute Cauchy point
-    # `cauchy_point = g.T g / (g.T A.T A g)``.
-    A_g = A.dot(g)
-    cauchy_point = -np.dot(g, g) / np.dot(A_g, A_g) * g
-    # Origin
-    origin_point = np.zeros_like(cauchy_point)
-
-    # Check the segment between cauchy_point and newton_point
-    # for a possible solution.
-    z = cauchy_point
-    p = newton_point - cauchy_point
-    _, alpha, intersect = box_sphere_intersections(z, p, lb, ub,
-                                                   trust_radius)
-    if intersect:
-        x1 = z + alpha*p
-    else:
-        # Check the segment between the origin and cauchy_point
-        # for a possible solution.
-        z = origin_point
-        p = cauchy_point
-        _, alpha, _ = box_sphere_intersections(z, p, lb, ub,
-                                               trust_radius)
-        x1 = z + alpha*p
-
-    # Check the segment between origin and newton_point
-    # for a possible solution.
-    z = origin_point
-    p = newton_point
-    _, alpha, _ = box_sphere_intersections(z, p, lb, ub,
-                                           trust_radius)
-    x2 = z + alpha*p
-
-    # Return the best solution among x1 and x2.
-    if norm(A.dot(x1) + b) < norm(A.dot(x2) + b):
-        return x1
-    else:
-        return x2
-
-
-def projected_cg(H, c, Z, Y, b, trust_radius=np.inf,
-                 lb=None, ub=None, tol=None,
-                 max_iter=None, max_infeasible_iter=None,
-                 return_all=False):
-    """Solve EQP problem with projected CG method.
-
-    Solve equality-constrained quadratic programming problem
-    ``min 1/2 x.T H x + x.t c``  subject to ``A x + b = 0`` and,
-    possibly, to trust region constraints ``||x|| < trust_radius``
-    and box constraints ``lb <= x <= ub``.
-
-    Parameters
-    ----------
-    H : LinearOperator (or sparse matrix or ndarray), shape (n, n)
-        Operator for computing ``H v``.
-    c : array_like, shape (n,)
-        Gradient of the quadratic objective function.
-    Z : LinearOperator (or sparse matrix or ndarray), shape (n, n)
-        Operator for projecting ``x`` into the null space of A.
-    Y : LinearOperator,  sparse matrix, ndarray, shape (n, m)
-        Operator that, for a given a vector ``b``, compute smallest
-        norm solution of ``A x + b = 0``.
-    b : array_like, shape (m,)
-        Right-hand side of the constraint equation.
-    trust_radius : float, optional
-        Trust radius to be considered. By default, uses ``trust_radius=inf``,
-        which means no trust radius at all.
-    lb : array_like, shape (n,), optional
-        Lower bounds to each one of the components of ``x``.
-        If ``lb[i] = -Inf`` the lower bound for the i-th
-        component is just ignored (default).
-    ub : array_like, shape (n, ), optional
-        Upper bounds to each one of the components of ``x``.
-        If ``ub[i] = Inf`` the upper bound for the i-th
-        component is just ignored (default).
-    tol : float, optional
-        Tolerance used to interrupt the algorithm.
-    max_iter : int, optional
-        Maximum algorithm iterations. Where ``max_inter <= n-m``.
-        By default, uses ``max_iter = n-m``.
-    max_infeasible_iter : int, optional
-        Maximum infeasible (regarding box constraints) iterations the
-        algorithm is allowed to take.
-        By default, uses ``max_infeasible_iter = n-m``.
-    return_all : bool, optional
-        When ``true``, return the list of all vectors through the iterations.
-
-    Returns
-    -------
-    x : array_like, shape (n,)
-        Solution of the EQP problem.
-    info : Dict
-        Dictionary containing the following:
-
-            - niter : Number of iterations.
-            - stop_cond : Reason for algorithm termination:
-                1. Iteration limit was reached;
-                2. Reached the trust-region boundary;
-                3. Negative curvature detected;
-                4. Tolerance was satisfied.
-            - allvecs : List containing all intermediary vectors (optional).
-            - hits_boundary : True if the proposed step is on the boundary
-              of the trust region.
-
-    Notes
-    -----
-    Implementation of Algorithm 6.2 on [1]_.
-
-    In the absence of spherical and box constraints, for sufficient
-    iterations, the method returns a truly optimal result.
-    In the presence of those constraints, the value returned is only
-    a inexpensive approximation of the optimal value.
-
-    References
-    ----------
-    .. [1] Gould, Nicholas IM, Mary E. Hribar, and Jorge Nocedal.
-           "On the solution of equality constrained quadratic
-            programming problems arising in optimization."
-            SIAM Journal on Scientific Computing 23.4 (2001): 1376-1395.
-    """
-    CLOSE_TO_ZERO = 1e-25
-
-    n, = np.shape(c)  # Number of parameters
-    m, = np.shape(b)  # Number of constraints
-
-    # Initial Values
-    x = Y.dot(-b)
-    r = Z.dot(H.dot(x) + c)
-    g = Z.dot(r)
-    p = -g
-
-    # Store ``x`` value
-    if return_all:
-        allvecs = [x]
-    # Values for the first iteration
-    H_p = H.dot(p)
-    rt_g = norm(g)**2  # g.T g = r.T Z g = r.T g (ref [1]_ p.1389)
-
-    # If x > trust-region the problem does not have a solution.
-    tr_distance = trust_radius - norm(x)
-    if tr_distance < 0:
-        raise ValueError("Trust region problem does not have a solution.")
-    # If x == trust_radius, then x is the solution
-    # to the optimization problem, since x is the
-    # minimum norm solution to Ax=b.
-    elif tr_distance < CLOSE_TO_ZERO:
-        info = {'niter': 0, 'stop_cond': 2, 'hits_boundary': True}
-        if return_all:
-            allvecs.append(x)
-            info['allvecs'] = allvecs
-        return x, info
-
-    # Set default tolerance
-    if tol is None:
-        tol = max(min(0.01 * np.sqrt(rt_g), 0.1 * rt_g), CLOSE_TO_ZERO)
-    # Set default lower and upper bounds
-    if lb is None:
-        lb = np.full(n, -np.inf)
-    if ub is None:
-        ub = np.full(n, np.inf)
-    # Set maximum iterations
-    if max_iter is None:
-        max_iter = n-m
-    max_iter = min(max_iter, n-m)
-    # Set maximum infeasible iterations
-    if max_infeasible_iter is None:
-        max_infeasible_iter = n-m
-
-    hits_boundary = False
-    stop_cond = 1
-    counter = 0
-    last_feasible_x = np.zeros_like(x)
-    k = 0
-    for i in range(max_iter):
-        # Stop criteria - Tolerance : r.T g < tol
-        if rt_g < tol:
-            stop_cond = 4
-            break
-        k += 1
-        # Compute curvature
-        pt_H_p = H_p.dot(p)
-        # Stop criteria - Negative curvature
-        if pt_H_p <= 0:
-            if np.isinf(trust_radius):
-                raise ValueError("Negative curvature not allowed "
-                                 "for unrestricted problems.")
-            else:
-                # Find intersection with constraints
-                _, alpha, intersect = box_sphere_intersections(
-                    x, p, lb, ub, trust_radius, entire_line=True)
-                # Update solution
-                if intersect:
-                    x = x + alpha*p
-                # Reinforce variables are inside box constraints.
-                # This is only necessary because of roundoff errors.
-                x = reinforce_box_boundaries(x, lb, ub)
-                # Attribute information
-                stop_cond = 3
-                hits_boundary = True
-                break
-
-        # Get next step
-        alpha = rt_g / pt_H_p
-        x_next = x + alpha*p
-
-        # Stop criteria - Hits boundary
-        if np.linalg.norm(x_next) >= trust_radius:
-            # Find intersection with box constraints
-            _, theta, intersect = box_sphere_intersections(x, alpha*p, lb, ub,
-                                                           trust_radius)
-            # Update solution
-            if intersect:
-                x = x + theta*alpha*p
-            # Reinforce variables are inside box constraints.
-            # This is only necessary because of roundoff errors.
-            x = reinforce_box_boundaries(x, lb, ub)
-            # Attribute information
-            stop_cond = 2
-            hits_boundary = True
-            break
-
-        # Check if ``x`` is inside the box and start counter if it is not.
-        if inside_box_boundaries(x_next, lb, ub):
-            counter = 0
-        else:
-            counter += 1
-        # Whenever outside box constraints keep looking for intersections.
-        if counter > 0:
-            _, theta, intersect = box_sphere_intersections(x, alpha*p, lb, ub,
-                                                           trust_radius)
-            if intersect:
-                last_feasible_x = x + theta*alpha*p
-                # Reinforce variables are inside box constraints.
-                # This is only necessary because of roundoff errors.
-                last_feasible_x = reinforce_box_boundaries(last_feasible_x,
-                                                           lb, ub)
-                counter = 0
-        # Stop after too many infeasible (regarding box constraints) iteration.
-        if counter > max_infeasible_iter:
-            break
-        # Store ``x_next`` value
-        if return_all:
-            allvecs.append(x_next)
-
-        # Update residual
-        r_next = r + alpha*H_p
-        # Project residual g+ = Z r+
-        g_next = Z.dot(r_next)
-        # Compute conjugate direction step d
-        rt_g_next = norm(g_next)**2  # g.T g = r.T g (ref [1]_ p.1389)
-        beta = rt_g_next / rt_g
-        p = - g_next + beta*p
-        # Prepare for next iteration
-        x = x_next
-        g = g_next
-        r = g_next
-        rt_g = norm(g)**2  # g.T g = r.T Z g = r.T g (ref [1]_ p.1389)
-        H_p = H.dot(p)
-
-    if not inside_box_boundaries(x, lb, ub):
-        x = last_feasible_x
-        hits_boundary = True
-    info = {'niter': k, 'stop_cond': stop_cond,
-            'hits_boundary': hits_boundary}
-    if return_all:
-        info['allvecs'] = allvecs
-    return x, info
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/report.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/report.py
deleted file mode 100644
index 5c3b2fb4ef5c90da78ae3f181159140e87393dcf..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/report.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""Progress report printers."""
-
-from __future__ import annotations
-
-class ReportBase:
-    COLUMN_NAMES: list[str] = NotImplemented
-    COLUMN_WIDTHS: list[int] = NotImplemented
-    ITERATION_FORMATS: list[str] = NotImplemented
-
-    @classmethod
-    def print_header(cls):
-        fmt = ("|"
-               + "|".join([f"{{:^{x}}}" for x in cls.COLUMN_WIDTHS])
-               + "|")
-        separators = ['-' * x for x in cls.COLUMN_WIDTHS]
-        print(fmt.format(*cls.COLUMN_NAMES))
-        print(fmt.format(*separators))
-
-    @classmethod
-    def print_iteration(cls, *args):
-        iteration_format = [f"{{:{x}}}" for x in cls.ITERATION_FORMATS]
-        fmt = "|" + "|".join(iteration_format) + "|"
-        print(fmt.format(*args))
-
-    @classmethod
-    def print_footer(cls):
-        print()
-
-
-class BasicReport(ReportBase):
-    COLUMN_NAMES = ["niter", "f evals", "CG iter", "obj func", "tr radius",
-                    "opt", "c viol"]
-    COLUMN_WIDTHS = [7, 7, 7, 13, 10, 10, 10]
-    ITERATION_FORMATS = ["^7", "^7", "^7", "^+13.4e",
-                         "^10.2e", "^10.2e", "^10.2e"]
-
-
-class SQPReport(ReportBase):
-    COLUMN_NAMES = ["niter", "f evals", "CG iter", "obj func", "tr radius",
-                    "opt", "c viol", "penalty", "CG stop"]
-    COLUMN_WIDTHS = [7, 7, 7, 13, 10, 10, 10, 10, 7]
-    ITERATION_FORMATS = ["^7", "^7", "^7", "^+13.4e", "^10.2e", "^10.2e",
-                         "^10.2e", "^10.2e", "^7"]
-
-
-class IPReport(ReportBase):
-    COLUMN_NAMES = ["niter", "f evals", "CG iter", "obj func", "tr radius",
-                    "opt", "c viol", "penalty", "barrier param", "CG stop"]
-    COLUMN_WIDTHS = [7, 7, 7, 13, 10, 10, 10, 10, 13, 7]
-    ITERATION_FORMATS = ["^7", "^7", "^7", "^+13.4e", "^10.2e", "^10.2e",
-                         "^10.2e", "^10.2e", "^13.2e", "^7"]
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index b45250fdab37107215d8effd1f20e9e245c0f378..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_canonical_constraint.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_canonical_constraint.cpython-310.pyc
deleted file mode 100644
index 539dded3988715395182c155eca4bd74e4922715..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_canonical_constraint.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_projections.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_projections.cpython-310.pyc
deleted file mode 100644
index 6bca5222d97ab6fc7906cc158a9a916304611c48..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_projections.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_qp_subproblem.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_qp_subproblem.cpython-310.pyc
deleted file mode 100644
index fca2021a9fe1a1458e14fe4c1b3aef10dd40874b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_qp_subproblem.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_report.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_report.cpython-310.pyc
deleted file mode 100644
index 15f713b1d7e24fa56a325fb73ab91058223de9f6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/__pycache__/test_report.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_canonical_constraint.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_canonical_constraint.py
deleted file mode 100644
index 452b327d02da3b3bd3fab9592bdef4d56d6aff57..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_canonical_constraint.py
+++ /dev/null
@@ -1,296 +0,0 @@
-import numpy as np
-from numpy.testing import assert_array_equal, assert_equal
-from scipy.optimize._constraints import (NonlinearConstraint, Bounds,
-                                         PreparedConstraint)
-from scipy.optimize._trustregion_constr.canonical_constraint \
-    import CanonicalConstraint, initial_constraints_as_canonical
-
-
-def create_quadratic_function(n, m, rng):
-    a = rng.rand(m)
-    A = rng.rand(m, n)
-    H = rng.rand(m, n, n)
-    HT = np.transpose(H, (1, 2, 0))
-
-    def fun(x):
-        return a + A.dot(x) + 0.5 * H.dot(x).dot(x)
-
-    def jac(x):
-        return A + H.dot(x)
-
-    def hess(x, v):
-        return HT.dot(v)
-
-    return fun, jac, hess
-
-
-def test_bounds_cases():
-    # Test 1: no constraints.
-    user_constraint = Bounds(-np.inf, np.inf)
-    x0 = np.array([-1, 2])
-    prepared_constraint = PreparedConstraint(user_constraint, x0, False)
-    c = CanonicalConstraint.from_PreparedConstraint(prepared_constraint)
-
-    assert_equal(c.n_eq, 0)
-    assert_equal(c.n_ineq, 0)
-
-    c_eq, c_ineq = c.fun(x0)
-    assert_array_equal(c_eq, [])
-    assert_array_equal(c_ineq, [])
-
-    J_eq, J_ineq = c.jac(x0)
-    assert_array_equal(J_eq, np.empty((0, 2)))
-    assert_array_equal(J_ineq, np.empty((0, 2)))
-
-    assert_array_equal(c.keep_feasible, [])
-
-    # Test 2: infinite lower bound.
-    user_constraint = Bounds(-np.inf, [0, np.inf, 1], [False, True, True])
-    x0 = np.array([-1, -2, -3], dtype=float)
-    prepared_constraint = PreparedConstraint(user_constraint, x0, False)
-    c = CanonicalConstraint.from_PreparedConstraint(prepared_constraint)
-
-    assert_equal(c.n_eq, 0)
-    assert_equal(c.n_ineq, 2)
-
-    c_eq, c_ineq = c.fun(x0)
-    assert_array_equal(c_eq, [])
-    assert_array_equal(c_ineq, [-1, -4])
-
-    J_eq, J_ineq = c.jac(x0)
-    assert_array_equal(J_eq, np.empty((0, 3)))
-    assert_array_equal(J_ineq, np.array([[1, 0, 0], [0, 0, 1]]))
-
-    assert_array_equal(c.keep_feasible, [False, True])
-
-    # Test 3: infinite upper bound.
-    user_constraint = Bounds([0, 1, -np.inf], np.inf, [True, False, True])
-    x0 = np.array([1, 2, 3], dtype=float)
-    prepared_constraint = PreparedConstraint(user_constraint, x0, False)
-    c = CanonicalConstraint.from_PreparedConstraint(prepared_constraint)
-
-    assert_equal(c.n_eq, 0)
-    assert_equal(c.n_ineq, 2)
-
-    c_eq, c_ineq = c.fun(x0)
-    assert_array_equal(c_eq, [])
-    assert_array_equal(c_ineq, [-1, -1])
-
-    J_eq, J_ineq = c.jac(x0)
-    assert_array_equal(J_eq, np.empty((0, 3)))
-    assert_array_equal(J_ineq, np.array([[-1, 0, 0], [0, -1, 0]]))
-
-    assert_array_equal(c.keep_feasible, [True, False])
-
-    # Test 4: interval constraint.
-    user_constraint = Bounds([-1, -np.inf, 2, 3], [1, np.inf, 10, 3],
-                             [False, True, True, True])
-    x0 = np.array([0, 10, 8, 5])
-    prepared_constraint = PreparedConstraint(user_constraint, x0, False)
-    c = CanonicalConstraint.from_PreparedConstraint(prepared_constraint)
-
-    assert_equal(c.n_eq, 1)
-    assert_equal(c.n_ineq, 4)
-
-    c_eq, c_ineq = c.fun(x0)
-    assert_array_equal(c_eq, [2])
-    assert_array_equal(c_ineq, [-1, -2, -1, -6])
-
-    J_eq, J_ineq = c.jac(x0)
-    assert_array_equal(J_eq, [[0, 0, 0, 1]])
-    assert_array_equal(J_ineq, [[1, 0, 0, 0],
-                                [0, 0, 1, 0],
-                                [-1, 0, 0, 0],
-                                [0, 0, -1, 0]])
-
-    assert_array_equal(c.keep_feasible, [False, True, False, True])
-
-
-def test_nonlinear_constraint():
-    n = 3
-    m = 5
-    rng = np.random.RandomState(0)
-    x0 = rng.rand(n)
-
-    fun, jac, hess = create_quadratic_function(n, m, rng)
-    f = fun(x0)
-    J = jac(x0)
-
-    lb = [-10, 3, -np.inf, -np.inf, -5]
-    ub = [10, 3, np.inf, 3, np.inf]
-    user_constraint = NonlinearConstraint(
-        fun, lb, ub, jac, hess, [True, False, False, True, False])
-
-    for sparse_jacobian in [False, True]:
-        prepared_constraint = PreparedConstraint(user_constraint, x0,
-                                                 sparse_jacobian)
-        c = CanonicalConstraint.from_PreparedConstraint(prepared_constraint)
-
-        assert_array_equal(c.n_eq, 1)
-        assert_array_equal(c.n_ineq, 4)
-
-        c_eq, c_ineq = c.fun(x0)
-        assert_array_equal(c_eq, [f[1] - lb[1]])
-        assert_array_equal(c_ineq, [f[3] - ub[3], lb[4] - f[4],
-                                    f[0] - ub[0], lb[0] - f[0]])
-
-        J_eq, J_ineq = c.jac(x0)
-        if sparse_jacobian:
-            J_eq = J_eq.toarray()
-            J_ineq = J_ineq.toarray()
-
-        assert_array_equal(J_eq, J[1, None])
-        assert_array_equal(J_ineq, np.vstack((J[3], -J[4], J[0], -J[0])))
-
-        v_eq = rng.rand(c.n_eq)
-        v_ineq = rng.rand(c.n_ineq)
-        v = np.zeros(m)
-        v[1] = v_eq[0]
-        v[3] = v_ineq[0]
-        v[4] = -v_ineq[1]
-        v[0] = v_ineq[2] - v_ineq[3]
-        assert_array_equal(c.hess(x0, v_eq, v_ineq), hess(x0, v))
-
-        assert_array_equal(c.keep_feasible, [True, False, True, True])
-
-
-def test_concatenation():
-    rng = np.random.RandomState(0)
-    n = 4
-    x0 = rng.rand(n)
-
-    f1 = x0
-    J1 = np.eye(n)
-    lb1 = [-1, -np.inf, -2, 3]
-    ub1 = [1, np.inf, np.inf, 3]
-    bounds = Bounds(lb1, ub1, [False, False, True, False])
-
-    fun, jac, hess = create_quadratic_function(n, 5, rng)
-    f2 = fun(x0)
-    J2 = jac(x0)
-    lb2 = [-10, 3, -np.inf, -np.inf, -5]
-    ub2 = [10, 3, np.inf, 5, np.inf]
-    nonlinear = NonlinearConstraint(
-        fun, lb2, ub2, jac, hess, [True, False, False, True, False])
-
-    for sparse_jacobian in [False, True]:
-        bounds_prepared = PreparedConstraint(bounds, x0, sparse_jacobian)
-        nonlinear_prepared = PreparedConstraint(nonlinear, x0, sparse_jacobian)
-
-        c1 = CanonicalConstraint.from_PreparedConstraint(bounds_prepared)
-        c2 = CanonicalConstraint.from_PreparedConstraint(nonlinear_prepared)
-        c = CanonicalConstraint.concatenate([c1, c2], sparse_jacobian)
-
-        assert_equal(c.n_eq, 2)
-        assert_equal(c.n_ineq, 7)
-
-        c_eq, c_ineq = c.fun(x0)
-        assert_array_equal(c_eq, [f1[3] - lb1[3], f2[1] - lb2[1]])
-        assert_array_equal(c_ineq, [lb1[2] - f1[2], f1[0] - ub1[0],
-                                    lb1[0] - f1[0], f2[3] - ub2[3],
-                                    lb2[4] - f2[4], f2[0] - ub2[0],
-                                    lb2[0] - f2[0]])
-
-        J_eq, J_ineq = c.jac(x0)
-        if sparse_jacobian:
-            J_eq = J_eq.toarray()
-            J_ineq = J_ineq.toarray()
-
-        assert_array_equal(J_eq, np.vstack((J1[3], J2[1])))
-        assert_array_equal(J_ineq, np.vstack((-J1[2], J1[0], -J1[0], J2[3],
-                                              -J2[4], J2[0], -J2[0])))
-
-        v_eq = rng.rand(c.n_eq)
-        v_ineq = rng.rand(c.n_ineq)
-        v = np.zeros(5)
-        v[1] = v_eq[1]
-        v[3] = v_ineq[3]
-        v[4] = -v_ineq[4]
-        v[0] = v_ineq[5] - v_ineq[6]
-        H = c.hess(x0, v_eq, v_ineq).dot(np.eye(n))
-        assert_array_equal(H, hess(x0, v))
-
-        assert_array_equal(c.keep_feasible,
-                           [True, False, False, True, False, True, True])
-
-
-def test_empty():
-    x = np.array([1, 2, 3])
-    c = CanonicalConstraint.empty(3)
-    assert_equal(c.n_eq, 0)
-    assert_equal(c.n_ineq, 0)
-
-    c_eq, c_ineq = c.fun(x)
-    assert_array_equal(c_eq, [])
-    assert_array_equal(c_ineq, [])
-
-    J_eq, J_ineq = c.jac(x)
-    assert_array_equal(J_eq, np.empty((0, 3)))
-    assert_array_equal(J_ineq, np.empty((0, 3)))
-
-    H = c.hess(x, None, None).toarray()
-    assert_array_equal(H, np.zeros((3, 3)))
-
-
-def test_initial_constraints_as_canonical():
-    # rng is only used to generate the coefficients of the quadratic
-    # function that is used by the nonlinear constraint.
-    rng = np.random.RandomState(0)
-
-    x0 = np.array([0.5, 0.4, 0.3, 0.2])
-    n = len(x0)
-
-    lb1 = [-1, -np.inf, -2, 3]
-    ub1 = [1, np.inf, np.inf, 3]
-    bounds = Bounds(lb1, ub1, [False, False, True, False])
-
-    fun, jac, hess = create_quadratic_function(n, 5, rng)
-    lb2 = [-10, 3, -np.inf, -np.inf, -5]
-    ub2 = [10, 3, np.inf, 5, np.inf]
-    nonlinear = NonlinearConstraint(
-        fun, lb2, ub2, jac, hess, [True, False, False, True, False])
-
-    for sparse_jacobian in [False, True]:
-        bounds_prepared = PreparedConstraint(bounds, x0, sparse_jacobian)
-        nonlinear_prepared = PreparedConstraint(nonlinear, x0, sparse_jacobian)
-
-        f1 = bounds_prepared.fun.f
-        J1 = bounds_prepared.fun.J
-        f2 = nonlinear_prepared.fun.f
-        J2 = nonlinear_prepared.fun.J
-
-        c_eq, c_ineq, J_eq, J_ineq = initial_constraints_as_canonical(
-            n, [bounds_prepared, nonlinear_prepared], sparse_jacobian)
-
-        assert_array_equal(c_eq, [f1[3] - lb1[3], f2[1] - lb2[1]])
-        assert_array_equal(c_ineq, [lb1[2] - f1[2], f1[0] - ub1[0],
-                                    lb1[0] - f1[0], f2[3] - ub2[3],
-                                    lb2[4] - f2[4], f2[0] - ub2[0],
-                                    lb2[0] - f2[0]])
-
-        if sparse_jacobian:
-            J1 = J1.toarray()
-            J2 = J2.toarray()
-            J_eq = J_eq.toarray()
-            J_ineq = J_ineq.toarray()
-
-        assert_array_equal(J_eq, np.vstack((J1[3], J2[1])))
-        assert_array_equal(J_ineq, np.vstack((-J1[2], J1[0], -J1[0], J2[3],
-                                              -J2[4], J2[0], -J2[0])))
-
-
-def test_initial_constraints_as_canonical_empty():
-    n = 3
-    for sparse_jacobian in [False, True]:
-        c_eq, c_ineq, J_eq, J_ineq = initial_constraints_as_canonical(
-            n, [], sparse_jacobian)
-
-        assert_array_equal(c_eq, [])
-        assert_array_equal(c_ineq, [])
-
-        if sparse_jacobian:
-            J_eq = J_eq.toarray()
-            J_ineq = J_ineq.toarray()
-
-        assert_array_equal(J_eq, np.empty((0, n)))
-        assert_array_equal(J_ineq, np.empty((0, n)))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_projections.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_projections.py
deleted file mode 100644
index 6ff3c39d649d0ac663d9b71bb906f1daac021118..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_projections.py
+++ /dev/null
@@ -1,214 +0,0 @@
-import numpy as np
-import scipy.linalg
-from scipy.sparse import csc_matrix
-from scipy.optimize._trustregion_constr.projections \
-    import projections, orthogonality
-from numpy.testing import (TestCase, assert_array_almost_equal,
-                           assert_equal, assert_allclose)
-
-try:
-    from sksparse.cholmod import cholesky_AAt  # noqa: F401
-    sksparse_available = True
-    available_sparse_methods = ("NormalEquation", "AugmentedSystem")
-except ImportError:
-    sksparse_available = False
-    available_sparse_methods = ("AugmentedSystem",)
-available_dense_methods = ('QRFactorization', 'SVDFactorization')
-
-
-class TestProjections(TestCase):
-
-    def test_nullspace_and_least_squares_sparse(self):
-        A_dense = np.array([[1, 2, 3, 4, 0, 5, 0, 7],
-                            [0, 8, 7, 0, 1, 5, 9, 0],
-                            [1, 0, 0, 0, 0, 1, 2, 3]])
-        At_dense = A_dense.T
-        A = csc_matrix(A_dense)
-        test_points = ([1, 2, 3, 4, 5, 6, 7, 8],
-                       [1, 10, 3, 0, 1, 6, 7, 8],
-                       [1.12, 10, 0, 0, 100000, 6, 0.7, 8])
-
-        for method in available_sparse_methods:
-            Z, LS, _ = projections(A, method)
-            for z in test_points:
-                # Test if x is in the null_space
-                x = Z.matvec(z)
-                assert_array_almost_equal(A.dot(x), 0)
-                # Test orthogonality
-                assert_array_almost_equal(orthogonality(A, x), 0)
-                # Test if x is the least square solution
-                x = LS.matvec(z)
-                x2 = scipy.linalg.lstsq(At_dense, z)[0]
-                assert_array_almost_equal(x, x2)
-
-    def test_iterative_refinements_sparse(self):
-        A_dense = np.array([[1, 2, 3, 4, 0, 5, 0, 7],
-                            [0, 8, 7, 0, 1, 5, 9, 0],
-                            [1, 0, 0, 0, 0, 1, 2, 3]])
-        A = csc_matrix(A_dense)
-        test_points = ([1, 2, 3, 4, 5, 6, 7, 8],
-                       [1, 10, 3, 0, 1, 6, 7, 8],
-                       [1.12, 10, 0, 0, 100000, 6, 0.7, 8],
-                       [1, 0, 0, 0, 0, 1, 2, 3+1e-10])
-
-        for method in available_sparse_methods:
-            Z, LS, _ = projections(A, method, orth_tol=1e-18, max_refin=100)
-            for z in test_points:
-                # Test if x is in the null_space
-                x = Z.matvec(z)
-                atol = 1e-13 * abs(x).max()
-                assert_allclose(A.dot(x), 0, atol=atol)
-                # Test orthogonality
-                assert_allclose(orthogonality(A, x), 0, atol=1e-13)
-
-    def test_rowspace_sparse(self):
-        A_dense = np.array([[1, 2, 3, 4, 0, 5, 0, 7],
-                            [0, 8, 7, 0, 1, 5, 9, 0],
-                            [1, 0, 0, 0, 0, 1, 2, 3]])
-        A = csc_matrix(A_dense)
-        test_points = ([1, 2, 3],
-                       [1, 10, 3],
-                       [1.12, 10, 0])
-
-        for method in available_sparse_methods:
-            _, _, Y = projections(A, method)
-            for z in test_points:
-                # Test if x is solution of A x = z
-                x = Y.matvec(z)
-                assert_array_almost_equal(A.dot(x), z)
-                # Test if x is in the return row space of A
-                A_ext = np.vstack((A_dense, x))
-                assert_equal(np.linalg.matrix_rank(A_dense),
-                             np.linalg.matrix_rank(A_ext))
-
-    def test_nullspace_and_least_squares_dense(self):
-        A = np.array([[1, 2, 3, 4, 0, 5, 0, 7],
-                      [0, 8, 7, 0, 1, 5, 9, 0],
-                      [1, 0, 0, 0, 0, 1, 2, 3]])
-        At = A.T
-        test_points = ([1, 2, 3, 4, 5, 6, 7, 8],
-                       [1, 10, 3, 0, 1, 6, 7, 8],
-                       [1.12, 10, 0, 0, 100000, 6, 0.7, 8])
-
-        for method in available_dense_methods:
-            Z, LS, _ = projections(A, method)
-            for z in test_points:
-                # Test if x is in the null_space
-                x = Z.matvec(z)
-                assert_array_almost_equal(A.dot(x), 0)
-                # Test orthogonality
-                assert_array_almost_equal(orthogonality(A, x), 0)
-                # Test if x is the least square solution
-                x = LS.matvec(z)
-                x2 = scipy.linalg.lstsq(At, z)[0]
-                assert_array_almost_equal(x, x2)
-
-    def test_compare_dense_and_sparse(self):
-        D = np.diag(range(1, 101))
-        A = np.hstack([D, D, D, D])
-        A_sparse = csc_matrix(A)
-        np.random.seed(0)
-
-        Z, LS, Y = projections(A)
-        Z_sparse, LS_sparse, Y_sparse = projections(A_sparse)
-        for k in range(20):
-            z = np.random.normal(size=(400,))
-            assert_array_almost_equal(Z.dot(z), Z_sparse.dot(z))
-            assert_array_almost_equal(LS.dot(z), LS_sparse.dot(z))
-            x = np.random.normal(size=(100,))
-            assert_array_almost_equal(Y.dot(x), Y_sparse.dot(x))
-
-    def test_compare_dense_and_sparse2(self):
-        D1 = np.diag([-1.7, 1, 0.5])
-        D2 = np.diag([1, -0.6, -0.3])
-        D3 = np.diag([-0.3, -1.5, 2])
-        A = np.hstack([D1, D2, D3])
-        A_sparse = csc_matrix(A)
-        np.random.seed(0)
-
-        Z, LS, Y = projections(A)
-        Z_sparse, LS_sparse, Y_sparse = projections(A_sparse)
-        for k in range(1):
-            z = np.random.normal(size=(9,))
-            assert_array_almost_equal(Z.dot(z), Z_sparse.dot(z))
-            assert_array_almost_equal(LS.dot(z), LS_sparse.dot(z))
-            x = np.random.normal(size=(3,))
-            assert_array_almost_equal(Y.dot(x), Y_sparse.dot(x))
-
-    def test_iterative_refinements_dense(self):
-        A = np.array([[1, 2, 3, 4, 0, 5, 0, 7],
-                            [0, 8, 7, 0, 1, 5, 9, 0],
-                            [1, 0, 0, 0, 0, 1, 2, 3]])
-        test_points = ([1, 2, 3, 4, 5, 6, 7, 8],
-                       [1, 10, 3, 0, 1, 6, 7, 8],
-                       [1, 0, 0, 0, 0, 1, 2, 3+1e-10])
-
-        for method in available_dense_methods:
-            Z, LS, _ = projections(A, method, orth_tol=1e-18, max_refin=10)
-            for z in test_points:
-                # Test if x is in the null_space
-                x = Z.matvec(z)
-                assert_allclose(A.dot(x), 0, rtol=0, atol=2.5e-14)
-                # Test orthogonality
-                assert_allclose(orthogonality(A, x), 0, rtol=0, atol=5e-16)
-
-    def test_rowspace_dense(self):
-        A = np.array([[1, 2, 3, 4, 0, 5, 0, 7],
-                      [0, 8, 7, 0, 1, 5, 9, 0],
-                      [1, 0, 0, 0, 0, 1, 2, 3]])
-        test_points = ([1, 2, 3],
-                       [1, 10, 3],
-                       [1.12, 10, 0])
-
-        for method in available_dense_methods:
-            _, _, Y = projections(A, method)
-            for z in test_points:
-                # Test if x is solution of A x = z
-                x = Y.matvec(z)
-                assert_array_almost_equal(A.dot(x), z)
-                # Test if x is in the return row space of A
-                A_ext = np.vstack((A, x))
-                assert_equal(np.linalg.matrix_rank(A),
-                             np.linalg.matrix_rank(A_ext))
-
-
-class TestOrthogonality(TestCase):
-
-    def test_dense_matrix(self):
-        A = np.array([[1, 2, 3, 4, 0, 5, 0, 7],
-                      [0, 8, 7, 0, 1, 5, 9, 0],
-                      [1, 0, 0, 0, 0, 1, 2, 3]])
-        test_vectors = ([-1.98931144, -1.56363389,
-                         -0.84115584, 2.2864762,
-                         5.599141, 0.09286976,
-                         1.37040802, -0.28145812],
-                        [697.92794044, -4091.65114008,
-                         -3327.42316335, 836.86906951,
-                         99434.98929065, -1285.37653682,
-                         -4109.21503806, 2935.29289083])
-        test_expected_orth = (0, 0)
-
-        for i in range(len(test_vectors)):
-            x = test_vectors[i]
-            orth = test_expected_orth[i]
-            assert_array_almost_equal(orthogonality(A, x), orth)
-
-    def test_sparse_matrix(self):
-        A = np.array([[1, 2, 3, 4, 0, 5, 0, 7],
-                      [0, 8, 7, 0, 1, 5, 9, 0],
-                      [1, 0, 0, 0, 0, 1, 2, 3]])
-        A = csc_matrix(A)
-        test_vectors = ([-1.98931144, -1.56363389,
-                         -0.84115584, 2.2864762,
-                         5.599141, 0.09286976,
-                         1.37040802, -0.28145812],
-                        [697.92794044, -4091.65114008,
-                         -3327.42316335, 836.86906951,
-                         99434.98929065, -1285.37653682,
-                         -4109.21503806, 2935.29289083])
-        test_expected_orth = (0, 0)
-
-        for i in range(len(test_vectors)):
-            x = test_vectors[i]
-            orth = test_expected_orth[i]
-            assert_array_almost_equal(orthogonality(A, x), orth)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py
deleted file mode 100644
index e0235caace6c19563efc31fdf4b8e41d9d81819b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py
+++ /dev/null
@@ -1,645 +0,0 @@
-import numpy as np
-from scipy.sparse import csc_matrix
-from scipy.optimize._trustregion_constr.qp_subproblem \
-    import (eqp_kktfact,
-            projected_cg,
-            box_intersections,
-            sphere_intersections,
-            box_sphere_intersections,
-            modified_dogleg)
-from scipy.optimize._trustregion_constr.projections \
-    import projections
-from numpy.testing import TestCase, assert_array_almost_equal, assert_equal
-import pytest
-
-
-class TestEQPDirectFactorization(TestCase):
-
-    # From Example 16.2 Nocedal/Wright "Numerical
-    # Optimization" p.452.
-    def test_nocedal_example(self):
-        H = csc_matrix([[6, 2, 1],
-                        [2, 5, 2],
-                        [1, 2, 4]])
-        A = csc_matrix([[1, 0, 1],
-                        [0, 1, 1]])
-        c = np.array([-8, -3, -3])
-        b = -np.array([3, 0])
-        x, lagrange_multipliers = eqp_kktfact(H, c, A, b)
-        assert_array_almost_equal(x, [2, -1, 1])
-        assert_array_almost_equal(lagrange_multipliers, [3, -2])
-
-
-class TestSphericalBoundariesIntersections(TestCase):
-
-    def test_2d_sphere_constraints(self):
-        # Interior inicial point
-        ta, tb, intersect = sphere_intersections([0, 0],
-                                                 [1, 0], 0.5)
-        assert_array_almost_equal([ta, tb], [0, 0.5])
-        assert_equal(intersect, True)
-
-        # No intersection between line and circle
-        ta, tb, intersect = sphere_intersections([2, 0],
-                                                 [0, 1], 1)
-        assert_equal(intersect, False)
-
-        # Outside initial point pointing toward outside the circle
-        ta, tb, intersect = sphere_intersections([2, 0],
-                                                 [1, 0], 1)
-        assert_equal(intersect, False)
-
-        # Outside initial point pointing toward inside the circle
-        ta, tb, intersect = sphere_intersections([2, 0],
-                                                 [-1, 0], 1.5)
-        assert_array_almost_equal([ta, tb], [0.5, 1])
-        assert_equal(intersect, True)
-
-        # Initial point on the boundary
-        ta, tb, intersect = sphere_intersections([2, 0],
-                                                 [1, 0], 2)
-        assert_array_almost_equal([ta, tb], [0, 0])
-        assert_equal(intersect, True)
-
-    def test_2d_sphere_constraints_line_intersections(self):
-        # Interior initial point
-        ta, tb, intersect = sphere_intersections([0, 0],
-                                                 [1, 0], 0.5,
-                                                 entire_line=True)
-        assert_array_almost_equal([ta, tb], [-0.5, 0.5])
-        assert_equal(intersect, True)
-
-        # No intersection between line and circle
-        ta, tb, intersect = sphere_intersections([2, 0],
-                                                 [0, 1], 1,
-                                                 entire_line=True)
-        assert_equal(intersect, False)
-
-        # Outside initial point pointing toward outside the circle
-        ta, tb, intersect = sphere_intersections([2, 0],
-                                                 [1, 0], 1,
-                                                 entire_line=True)
-        assert_array_almost_equal([ta, tb], [-3, -1])
-        assert_equal(intersect, True)
-
-        # Outside initial point pointing toward inside the circle
-        ta, tb, intersect = sphere_intersections([2, 0],
-                                                 [-1, 0], 1.5,
-                                                 entire_line=True)
-        assert_array_almost_equal([ta, tb], [0.5, 3.5])
-        assert_equal(intersect, True)
-
-        # Initial point on the boundary
-        ta, tb, intersect = sphere_intersections([2, 0],
-                                                 [1, 0], 2,
-                                                 entire_line=True)
-        assert_array_almost_equal([ta, tb], [-4, 0])
-        assert_equal(intersect, True)
-
-
-class TestBoxBoundariesIntersections(TestCase):
-
-    def test_2d_box_constraints(self):
-        # Box constraint in the direction of vector d
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [1, 1], [3, 3])
-        assert_array_almost_equal([ta, tb], [0.5, 1])
-        assert_equal(intersect, True)
-
-        # Negative direction
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [1, -3], [3, -1])
-        assert_equal(intersect, False)
-
-        # Some constraints are absent (set to +/- inf)
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [-np.inf, 1],
-                                              [np.inf, np.inf])
-        assert_array_almost_equal([ta, tb], [0.5, 1])
-        assert_equal(intersect, True)
-
-        # Intersect on the face of the box
-        ta, tb, intersect = box_intersections([1, 0], [0, 1],
-                                              [1, 1], [3, 3])
-        assert_array_almost_equal([ta, tb], [1, 1])
-        assert_equal(intersect, True)
-
-        # Interior initial point
-        ta, tb, intersect = box_intersections([0, 0], [4, 4],
-                                              [-2, -3], [3, 2])
-        assert_array_almost_equal([ta, tb], [0, 0.5])
-        assert_equal(intersect, True)
-
-        # No intersection between line and box constraints
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [-3, -3], [-1, -1])
-        assert_equal(intersect, False)
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [-3, 3], [-1, 1])
-        assert_equal(intersect, False)
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [-3, -np.inf],
-                                              [-1, np.inf])
-        assert_equal(intersect, False)
-        ta, tb, intersect = box_intersections([0, 0], [1, 100],
-                                              [1, 1], [3, 3])
-        assert_equal(intersect, False)
-        ta, tb, intersect = box_intersections([0.99, 0], [0, 2],
-                                                         [1, 1], [3, 3])
-        assert_equal(intersect, False)
-
-        # Initial point on the boundary
-        ta, tb, intersect = box_intersections([2, 2], [0, 1],
-                                              [-2, -2], [2, 2])
-        assert_array_almost_equal([ta, tb], [0, 0])
-        assert_equal(intersect, True)
-
-    def test_2d_box_constraints_entire_line(self):
-        # Box constraint in the direction of vector d
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [1, 1], [3, 3],
-                                              entire_line=True)
-        assert_array_almost_equal([ta, tb], [0.5, 1.5])
-        assert_equal(intersect, True)
-
-        # Negative direction
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [1, -3], [3, -1],
-                                              entire_line=True)
-        assert_array_almost_equal([ta, tb], [-1.5, -0.5])
-        assert_equal(intersect, True)
-
-        # Some constraints are absent (set to +/- inf)
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [-np.inf, 1],
-                                              [np.inf, np.inf],
-                                              entire_line=True)
-        assert_array_almost_equal([ta, tb], [0.5, np.inf])
-        assert_equal(intersect, True)
-
-        # Intersect on the face of the box
-        ta, tb, intersect = box_intersections([1, 0], [0, 1],
-                                              [1, 1], [3, 3],
-                                              entire_line=True)
-        assert_array_almost_equal([ta, tb], [1, 3])
-        assert_equal(intersect, True)
-
-        # Interior initial pointoint
-        ta, tb, intersect = box_intersections([0, 0], [4, 4],
-                                              [-2, -3], [3, 2],
-                                              entire_line=True)
-        assert_array_almost_equal([ta, tb], [-0.5, 0.5])
-        assert_equal(intersect, True)
-
-        # No intersection between line and box constraints
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [-3, -3], [-1, -1],
-                                              entire_line=True)
-        assert_equal(intersect, False)
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [-3, 3], [-1, 1],
-                                              entire_line=True)
-        assert_equal(intersect, False)
-        ta, tb, intersect = box_intersections([2, 0], [0, 2],
-                                              [-3, -np.inf],
-                                              [-1, np.inf],
-                                              entire_line=True)
-        assert_equal(intersect, False)
-        ta, tb, intersect = box_intersections([0, 0], [1, 100],
-                                              [1, 1], [3, 3],
-                                              entire_line=True)
-        assert_equal(intersect, False)
-        ta, tb, intersect = box_intersections([0.99, 0], [0, 2],
-                                              [1, 1], [3, 3],
-                                              entire_line=True)
-        assert_equal(intersect, False)
-
-        # Initial point on the boundary
-        ta, tb, intersect = box_intersections([2, 2], [0, 1],
-                                              [-2, -2], [2, 2],
-                                              entire_line=True)
-        assert_array_almost_equal([ta, tb], [-4, 0])
-        assert_equal(intersect, True)
-
-    def test_3d_box_constraints(self):
-        # Simple case
-        ta, tb, intersect = box_intersections([1, 1, 0], [0, 0, 1],
-                                              [1, 1, 1], [3, 3, 3])
-        assert_array_almost_equal([ta, tb], [1, 1])
-        assert_equal(intersect, True)
-
-        # Negative direction
-        ta, tb, intersect = box_intersections([1, 1, 0], [0, 0, -1],
-                                              [1, 1, 1], [3, 3, 3])
-        assert_equal(intersect, False)
-
-        # Interior point
-        ta, tb, intersect = box_intersections([2, 2, 2], [0, -1, 1],
-                                              [1, 1, 1], [3, 3, 3])
-        assert_array_almost_equal([ta, tb], [0, 1])
-        assert_equal(intersect, True)
-
-    def test_3d_box_constraints_entire_line(self):
-        # Simple case
-        ta, tb, intersect = box_intersections([1, 1, 0], [0, 0, 1],
-                                              [1, 1, 1], [3, 3, 3],
-                                              entire_line=True)
-        assert_array_almost_equal([ta, tb], [1, 3])
-        assert_equal(intersect, True)
-
-        # Negative direction
-        ta, tb, intersect = box_intersections([1, 1, 0], [0, 0, -1],
-                                              [1, 1, 1], [3, 3, 3],
-                                              entire_line=True)
-        assert_array_almost_equal([ta, tb], [-3, -1])
-        assert_equal(intersect, True)
-
-        # Interior point
-        ta, tb, intersect = box_intersections([2, 2, 2], [0, -1, 1],
-                                              [1, 1, 1], [3, 3, 3],
-                                              entire_line=True)
-        assert_array_almost_equal([ta, tb], [-1, 1])
-        assert_equal(intersect, True)
-
-
-class TestBoxSphereBoundariesIntersections(TestCase):
-
-    def test_2d_box_constraints(self):
-        # Both constraints are active
-        ta, tb, intersect = box_sphere_intersections([1, 1], [-2, 2],
-                                                     [-1, -2], [1, 2], 2,
-                                                     entire_line=False)
-        assert_array_almost_equal([ta, tb], [0, 0.5])
-        assert_equal(intersect, True)
-
-        # None of the constraints are active
-        ta, tb, intersect = box_sphere_intersections([1, 1], [-1, 1],
-                                                     [-1, -3], [1, 3], 10,
-                                                     entire_line=False)
-        assert_array_almost_equal([ta, tb], [0, 1])
-        assert_equal(intersect, True)
-
-        # Box constraints are active
-        ta, tb, intersect = box_sphere_intersections([1, 1], [-4, 4],
-                                                     [-1, -3], [1, 3], 10,
-                                                     entire_line=False)
-        assert_array_almost_equal([ta, tb], [0, 0.5])
-        assert_equal(intersect, True)
-
-        # Spherical constraints are active
-        ta, tb, intersect = box_sphere_intersections([1, 1], [-4, 4],
-                                                     [-1, -3], [1, 3], 2,
-                                                     entire_line=False)
-        assert_array_almost_equal([ta, tb], [0, 0.25])
-        assert_equal(intersect, True)
-
-        # Infeasible problems
-        ta, tb, intersect = box_sphere_intersections([2, 2], [-4, 4],
-                                                     [-1, -3], [1, 3], 2,
-                                                     entire_line=False)
-        assert_equal(intersect, False)
-        ta, tb, intersect = box_sphere_intersections([1, 1], [-4, 4],
-                                                     [2, 4], [2, 4], 2,
-                                                     entire_line=False)
-        assert_equal(intersect, False)
-
-    def test_2d_box_constraints_entire_line(self):
-        # Both constraints are active
-        ta, tb, intersect = box_sphere_intersections([1, 1], [-2, 2],
-                                                     [-1, -2], [1, 2], 2,
-                                                     entire_line=True)
-        assert_array_almost_equal([ta, tb], [0, 0.5])
-        assert_equal(intersect, True)
-
-        # None of the constraints are active
-        ta, tb, intersect = box_sphere_intersections([1, 1], [-1, 1],
-                                                     [-1, -3], [1, 3], 10,
-                                                     entire_line=True)
-        assert_array_almost_equal([ta, tb], [0, 2])
-        assert_equal(intersect, True)
-
-        # Box constraints are active
-        ta, tb, intersect = box_sphere_intersections([1, 1], [-4, 4],
-                                                     [-1, -3], [1, 3], 10,
-                                                     entire_line=True)
-        assert_array_almost_equal([ta, tb], [0, 0.5])
-        assert_equal(intersect, True)
-
-        # Spherical constraints are active
-        ta, tb, intersect = box_sphere_intersections([1, 1], [-4, 4],
-                                                     [-1, -3], [1, 3], 2,
-                                                     entire_line=True)
-        assert_array_almost_equal([ta, tb], [0, 0.25])
-        assert_equal(intersect, True)
-
-        # Infeasible problems
-        ta, tb, intersect = box_sphere_intersections([2, 2], [-4, 4],
-                                                     [-1, -3], [1, 3], 2,
-                                                     entire_line=True)
-        assert_equal(intersect, False)
-        ta, tb, intersect = box_sphere_intersections([1, 1], [-4, 4],
-                                                     [2, 4], [2, 4], 2,
-                                                     entire_line=True)
-        assert_equal(intersect, False)
-
-
-class TestModifiedDogleg(TestCase):
-
-    def test_cauchypoint_equalsto_newtonpoint(self):
-        A = np.array([[1, 8]])
-        b = np.array([-16])
-        _, _, Y = projections(A)
-        newton_point = np.array([0.24615385, 1.96923077])
-
-        # Newton point inside boundaries
-        x = modified_dogleg(A, Y, b, 2, [-np.inf, -np.inf], [np.inf, np.inf])
-        assert_array_almost_equal(x, newton_point)
-
-        # Spherical constraint active
-        x = modified_dogleg(A, Y, b, 1, [-np.inf, -np.inf], [np.inf, np.inf])
-        assert_array_almost_equal(x, newton_point/np.linalg.norm(newton_point))
-
-        # Box constraints active
-        x = modified_dogleg(A, Y, b, 2, [-np.inf, -np.inf], [0.1, np.inf])
-        assert_array_almost_equal(x, (newton_point/newton_point[0]) * 0.1)
-
-    def test_3d_example(self):
-        A = np.array([[1, 8, 1],
-                      [4, 2, 2]])
-        b = np.array([-16, 2])
-        Z, LS, Y = projections(A)
-
-        newton_point = np.array([-1.37090909, 2.23272727, -0.49090909])
-        cauchy_point = np.array([0.11165723, 1.73068711, 0.16748585])
-        origin = np.zeros_like(newton_point)
-
-        # newton_point inside boundaries
-        x = modified_dogleg(A, Y, b, 3, [-np.inf, -np.inf, -np.inf],
-                            [np.inf, np.inf, np.inf])
-        assert_array_almost_equal(x, newton_point)
-
-        # line between cauchy_point and newton_point contains best point
-        # (spherical constraint is active).
-        x = modified_dogleg(A, Y, b, 2, [-np.inf, -np.inf, -np.inf],
-                            [np.inf, np.inf, np.inf])
-        z = cauchy_point
-        d = newton_point-cauchy_point
-        t = ((x-z)/(d))
-        assert_array_almost_equal(t, np.full(3, 0.40807330))
-        assert_array_almost_equal(np.linalg.norm(x), 2)
-
-        # line between cauchy_point and newton_point contains best point
-        # (box constraint is active).
-        x = modified_dogleg(A, Y, b, 5, [-1, -np.inf, -np.inf],
-                            [np.inf, np.inf, np.inf])
-        z = cauchy_point
-        d = newton_point-cauchy_point
-        t = ((x-z)/(d))
-        assert_array_almost_equal(t, np.full(3, 0.7498195))
-        assert_array_almost_equal(x[0], -1)
-
-        # line between origin and cauchy_point contains best point
-        # (spherical constraint is active).
-        x = modified_dogleg(A, Y, b, 1, [-np.inf, -np.inf, -np.inf],
-                            [np.inf, np.inf, np.inf])
-        z = origin
-        d = cauchy_point
-        t = ((x-z)/(d))
-        assert_array_almost_equal(t, np.full(3, 0.573936265))
-        assert_array_almost_equal(np.linalg.norm(x), 1)
-
-        # line between origin and newton_point contains best point
-        # (box constraint is active).
-        x = modified_dogleg(A, Y, b, 2, [-np.inf, -np.inf, -np.inf],
-                            [np.inf, 1, np.inf])
-        z = origin
-        d = newton_point
-        t = ((x-z)/(d))
-        assert_array_almost_equal(t, np.full(3, 0.4478827364))
-        assert_array_almost_equal(x[1], 1)
-
-
-class TestProjectCG(TestCase):
-
-    # From Example 16.2 Nocedal/Wright "Numerical
-    # Optimization" p.452.
-    def test_nocedal_example(self):
-        H = csc_matrix([[6, 2, 1],
-                        [2, 5, 2],
-                        [1, 2, 4]])
-        A = csc_matrix([[1, 0, 1],
-                        [0, 1, 1]])
-        c = np.array([-8, -3, -3])
-        b = -np.array([3, 0])
-        Z, _, Y = projections(A)
-        x, info = projected_cg(H, c, Z, Y, b)
-        assert_equal(info["stop_cond"], 4)
-        assert_equal(info["hits_boundary"], False)
-        assert_array_almost_equal(x, [2, -1, 1])
-
-    def test_compare_with_direct_fact(self):
-        H = csc_matrix([[6, 2, 1, 3],
-                        [2, 5, 2, 4],
-                        [1, 2, 4, 5],
-                        [3, 4, 5, 7]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 1, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        Z, _, Y = projections(A)
-        x, info = projected_cg(H, c, Z, Y, b, tol=0)
-        x_kkt, _ = eqp_kktfact(H, c, A, b)
-        assert_equal(info["stop_cond"], 1)
-        assert_equal(info["hits_boundary"], False)
-        assert_array_almost_equal(x, x_kkt)
-
-    def test_trust_region_infeasible(self):
-        H = csc_matrix([[6, 2, 1, 3],
-                        [2, 5, 2, 4],
-                        [1, 2, 4, 5],
-                        [3, 4, 5, 7]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 1, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        trust_radius = 1
-        Z, _, Y = projections(A)
-        with pytest.raises(ValueError):
-            projected_cg(H, c, Z, Y, b, trust_radius=trust_radius)
-
-    def test_trust_region_barely_feasible(self):
-        H = csc_matrix([[6, 2, 1, 3],
-                        [2, 5, 2, 4],
-                        [1, 2, 4, 5],
-                        [3, 4, 5, 7]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 1, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        trust_radius = 2.32379000772445021283
-        Z, _, Y = projections(A)
-        x, info = projected_cg(H, c, Z, Y, b,
-                               tol=0,
-                               trust_radius=trust_radius)
-        assert_equal(info["stop_cond"], 2)
-        assert_equal(info["hits_boundary"], True)
-        assert_array_almost_equal(np.linalg.norm(x), trust_radius)
-        assert_array_almost_equal(x, -Y.dot(b))
-
-    def test_hits_boundary(self):
-        H = csc_matrix([[6, 2, 1, 3],
-                        [2, 5, 2, 4],
-                        [1, 2, 4, 5],
-                        [3, 4, 5, 7]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 1, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        trust_radius = 3
-        Z, _, Y = projections(A)
-        x, info = projected_cg(H, c, Z, Y, b,
-                               tol=0,
-                               trust_radius=trust_radius)
-        assert_equal(info["stop_cond"], 2)
-        assert_equal(info["hits_boundary"], True)
-        assert_array_almost_equal(np.linalg.norm(x), trust_radius)
-
-    def test_negative_curvature_unconstrained(self):
-        H = csc_matrix([[1, 2, 1, 3],
-                        [2, 0, 2, 4],
-                        [1, 2, 0, 2],
-                        [3, 4, 2, 0]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 0, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        Z, _, Y = projections(A)
-        with pytest.raises(ValueError):
-            projected_cg(H, c, Z, Y, b, tol=0)
-
-    def test_negative_curvature(self):
-        H = csc_matrix([[1, 2, 1, 3],
-                        [2, 0, 2, 4],
-                        [1, 2, 0, 2],
-                        [3, 4, 2, 0]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 0, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        Z, _, Y = projections(A)
-        trust_radius = 1000
-        x, info = projected_cg(H, c, Z, Y, b,
-                               tol=0,
-                               trust_radius=trust_radius)
-        assert_equal(info["stop_cond"], 3)
-        assert_equal(info["hits_boundary"], True)
-        assert_array_almost_equal(np.linalg.norm(x), trust_radius)
-
-    # The box constraints are inactive at the solution but
-    # are active during the iterations.
-    def test_inactive_box_constraints(self):
-        H = csc_matrix([[6, 2, 1, 3],
-                        [2, 5, 2, 4],
-                        [1, 2, 4, 5],
-                        [3, 4, 5, 7]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 1, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        Z, _, Y = projections(A)
-        x, info = projected_cg(H, c, Z, Y, b,
-                               tol=0,
-                               lb=[0.5, -np.inf,
-                                   -np.inf, -np.inf],
-                               return_all=True)
-        x_kkt, _ = eqp_kktfact(H, c, A, b)
-        assert_equal(info["stop_cond"], 1)
-        assert_equal(info["hits_boundary"], False)
-        assert_array_almost_equal(x, x_kkt)
-
-    # The box constraints active and the termination is
-    # by maximum iterations (infeasible interaction).
-    def test_active_box_constraints_maximum_iterations_reached(self):
-        H = csc_matrix([[6, 2, 1, 3],
-                        [2, 5, 2, 4],
-                        [1, 2, 4, 5],
-                        [3, 4, 5, 7]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 1, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        Z, _, Y = projections(A)
-        x, info = projected_cg(H, c, Z, Y, b,
-                               tol=0,
-                               lb=[0.8, -np.inf,
-                                   -np.inf, -np.inf],
-                               return_all=True)
-        assert_equal(info["stop_cond"], 1)
-        assert_equal(info["hits_boundary"], True)
-        assert_array_almost_equal(A.dot(x), -b)
-        assert_array_almost_equal(x[0], 0.8)
-
-    # The box constraints are active and the termination is
-    # because it hits boundary (without infeasible interaction).
-    def test_active_box_constraints_hits_boundaries(self):
-        H = csc_matrix([[6, 2, 1, 3],
-                        [2, 5, 2, 4],
-                        [1, 2, 4, 5],
-                        [3, 4, 5, 7]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 1, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        trust_radius = 3
-        Z, _, Y = projections(A)
-        x, info = projected_cg(H, c, Z, Y, b,
-                               tol=0,
-                               ub=[np.inf, np.inf, 1.6, np.inf],
-                               trust_radius=trust_radius,
-                               return_all=True)
-        assert_equal(info["stop_cond"], 2)
-        assert_equal(info["hits_boundary"], True)
-        assert_array_almost_equal(x[2], 1.6)
-
-    # The box constraints are active and the termination is
-    # because it hits boundary (infeasible interaction).
-    def test_active_box_constraints_hits_boundaries_infeasible_iter(self):
-        H = csc_matrix([[6, 2, 1, 3],
-                        [2, 5, 2, 4],
-                        [1, 2, 4, 5],
-                        [3, 4, 5, 7]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 1, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        trust_radius = 4
-        Z, _, Y = projections(A)
-        x, info = projected_cg(H, c, Z, Y, b,
-                               tol=0,
-                               ub=[np.inf, 0.1, np.inf, np.inf],
-                               trust_radius=trust_radius,
-                               return_all=True)
-        assert_equal(info["stop_cond"], 2)
-        assert_equal(info["hits_boundary"], True)
-        assert_array_almost_equal(x[1], 0.1)
-
-    # The box constraints are active and the termination is
-    # because it hits boundary (no infeasible interaction).
-    def test_active_box_constraints_negative_curvature(self):
-        H = csc_matrix([[1, 2, 1, 3],
-                        [2, 0, 2, 4],
-                        [1, 2, 0, 2],
-                        [3, 4, 2, 0]])
-        A = csc_matrix([[1, 0, 1, 0],
-                        [0, 1, 0, 1]])
-        c = np.array([-2, -3, -3, 1])
-        b = -np.array([3, 0])
-        Z, _, Y = projections(A)
-        trust_radius = 1000
-        x, info = projected_cg(H, c, Z, Y, b,
-                               tol=0,
-                               ub=[np.inf, np.inf, 100, np.inf],
-                               trust_radius=trust_radius)
-        assert_equal(info["stop_cond"], 3)
-        assert_equal(info["hits_boundary"], True)
-        assert_array_almost_equal(x[2], 100)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_report.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_report.py
deleted file mode 100644
index c82796fea723ab043971564306d4b76bdf9f0380..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tests/test_report.py
+++ /dev/null
@@ -1,34 +0,0 @@
-import pytest
-import numpy as np
-from scipy.optimize import minimize, Bounds
-
-def test_gh10880():
-    # checks that verbose reporting works with trust-constr for
-    # bound-contrained problems
-    bnds = Bounds(1, 2)
-    opts = {'maxiter': 1000, 'verbose': 2}
-    minimize(lambda x: x**2, x0=2., method='trust-constr',
-             bounds=bnds, options=opts)
-
-    opts = {'maxiter': 1000, 'verbose': 3}
-    minimize(lambda x: x**2, x0=2., method='trust-constr',
-             bounds=bnds, options=opts)
-
-@pytest.mark.xslow
-def test_gh12922():
-    # checks that verbose reporting works with trust-constr for
-    # general constraints
-    def objective(x):
-        return np.array([(np.sum((x+1)**4))])
-
-    cons = {'type': 'ineq', 'fun': lambda x: -x[0]**2}
-    n = 25
-    x0 = np.linspace(-5, 5, n)
-
-    opts = {'maxiter': 1000, 'verbose': 2}
-    minimize(objective, x0=x0, method='trust-constr',
-                      constraints=cons, options=opts)
-
-    opts = {'maxiter': 1000, 'verbose': 3}
-    minimize(objective, x0=x0, method='trust-constr',
-                      constraints=cons, options=opts)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tr_interior_point.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tr_interior_point.py
deleted file mode 100644
index 121143fad2a8df3a8986beffc5043622d9ace993..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_constr/tr_interior_point.py
+++ /dev/null
@@ -1,346 +0,0 @@
-"""Trust-region interior point method.
-
-References
-----------
-.. [1] Byrd, Richard H., Mary E. Hribar, and Jorge Nocedal.
-       "An interior point algorithm for large-scale nonlinear
-       programming." SIAM Journal on Optimization 9.4 (1999): 877-900.
-.. [2] Byrd, Richard H., Guanghui Liu, and Jorge Nocedal.
-       "On the local behavior of an interior point method for
-       nonlinear programming." Numerical analysis 1997 (1997): 37-56.
-.. [3] Nocedal, Jorge, and Stephen J. Wright. "Numerical optimization"
-       Second Edition (2006).
-"""
-
-import scipy.sparse as sps
-import numpy as np
-from .equality_constrained_sqp import equality_constrained_sqp
-from scipy.sparse.linalg import LinearOperator
-
-__all__ = ['tr_interior_point']
-
-
-class BarrierSubproblem:
-    """
-    Barrier optimization problem:
-        minimize fun(x) - barrier_parameter*sum(log(s))
-        subject to: constr_eq(x)     = 0
-                  constr_ineq(x) + s = 0
-    """
-
-    def __init__(self, x0, s0, fun, grad, lagr_hess, n_vars, n_ineq, n_eq,
-                 constr, jac, barrier_parameter, tolerance,
-                 enforce_feasibility, global_stop_criteria,
-                 xtol, fun0, grad0, constr_ineq0, jac_ineq0, constr_eq0,
-                 jac_eq0):
-        # Store parameters
-        self.n_vars = n_vars
-        self.x0 = x0
-        self.s0 = s0
-        self.fun = fun
-        self.grad = grad
-        self.lagr_hess = lagr_hess
-        self.constr = constr
-        self.jac = jac
-        self.barrier_parameter = barrier_parameter
-        self.tolerance = tolerance
-        self.n_eq = n_eq
-        self.n_ineq = n_ineq
-        self.enforce_feasibility = enforce_feasibility
-        self.global_stop_criteria = global_stop_criteria
-        self.xtol = xtol
-        self.fun0 = self._compute_function(fun0, constr_ineq0, s0)
-        self.grad0 = self._compute_gradient(grad0)
-        self.constr0 = self._compute_constr(constr_ineq0, constr_eq0, s0)
-        self.jac0 = self._compute_jacobian(jac_eq0, jac_ineq0, s0)
-        self.terminate = False
-
-    def update(self, barrier_parameter, tolerance):
-        self.barrier_parameter = barrier_parameter
-        self.tolerance = tolerance
-
-    def get_slack(self, z):
-        return z[self.n_vars:self.n_vars+self.n_ineq]
-
-    def get_variables(self, z):
-        return z[:self.n_vars]
-
-    def function_and_constraints(self, z):
-        """Returns barrier function and constraints at given point.
-
-        For z = [x, s], returns barrier function:
-            function(z) = fun(x) - barrier_parameter*sum(log(s))
-        and barrier constraints:
-            constraints(z) = [   constr_eq(x)     ]
-                             [ constr_ineq(x) + s ]
-
-        """
-        # Get variables and slack variables
-        x = self.get_variables(z)
-        s = self.get_slack(z)
-        # Compute function and constraints
-        f = self.fun(x)
-        c_eq, c_ineq = self.constr(x)
-        # Return objective function and constraints
-        return (self._compute_function(f, c_ineq, s),
-                self._compute_constr(c_ineq, c_eq, s))
-
-    def _compute_function(self, f, c_ineq, s):
-        # Use technique from Nocedal and Wright book, ref [3]_, p.576,
-        # to guarantee constraints from `enforce_feasibility`
-        # stay feasible along iterations.
-        s[self.enforce_feasibility] = -c_ineq[self.enforce_feasibility]
-        log_s = [np.log(s_i) if s_i > 0 else -np.inf for s_i in s]
-        # Compute barrier objective function
-        return f - self.barrier_parameter*np.sum(log_s)
-
-    def _compute_constr(self, c_ineq, c_eq, s):
-        # Compute barrier constraint
-        return np.hstack((c_eq,
-                          c_ineq + s))
-
-    def scaling(self, z):
-        """Returns scaling vector.
-        Given by:
-            scaling = [ones(n_vars), s]
-        """
-        s = self.get_slack(z)
-        diag_elements = np.hstack((np.ones(self.n_vars), s))
-
-        # Diagonal matrix
-        def matvec(vec):
-            return diag_elements*vec
-        return LinearOperator((self.n_vars+self.n_ineq,
-                               self.n_vars+self.n_ineq),
-                              matvec)
-
-    def gradient_and_jacobian(self, z):
-        """Returns scaled gradient.
-
-        Return scaled gradient:
-            gradient = [             grad(x)             ]
-                       [ -barrier_parameter*ones(n_ineq) ]
-        and scaled Jacobian matrix:
-            jacobian = [  jac_eq(x)  0  ]
-                       [ jac_ineq(x) S  ]
-        Both of them scaled by the previously defined scaling factor.
-        """
-        # Get variables and slack variables
-        x = self.get_variables(z)
-        s = self.get_slack(z)
-        # Compute first derivatives
-        g = self.grad(x)
-        J_eq, J_ineq = self.jac(x)
-        # Return gradient and Jacobian
-        return (self._compute_gradient(g),
-                self._compute_jacobian(J_eq, J_ineq, s))
-
-    def _compute_gradient(self, g):
-        return np.hstack((g, -self.barrier_parameter*np.ones(self.n_ineq)))
-
-    def _compute_jacobian(self, J_eq, J_ineq, s):
-        if self.n_ineq == 0:
-            return J_eq
-        else:
-            if sps.issparse(J_eq) or sps.issparse(J_ineq):
-                # It is expected that J_eq and J_ineq
-                # are already `csr_matrix` because of
-                # the way ``BoxConstraint``, ``NonlinearConstraint``
-                # and ``LinearConstraint`` are defined.
-                J_eq = sps.csr_matrix(J_eq)
-                J_ineq = sps.csr_matrix(J_ineq)
-                return self._assemble_sparse_jacobian(J_eq, J_ineq, s)
-            else:
-                S = np.diag(s)
-                zeros = np.zeros((self.n_eq, self.n_ineq))
-                # Convert to matrix
-                if sps.issparse(J_ineq):
-                    J_ineq = J_ineq.toarray()
-                if sps.issparse(J_eq):
-                    J_eq = J_eq.toarray()
-                # Concatenate matrices
-                return np.block([[J_eq, zeros],
-                                 [J_ineq, S]])
-
-    def _assemble_sparse_jacobian(self, J_eq, J_ineq, s):
-        """Assemble sparse Jacobian given its components.
-
-        Given ``J_eq``, ``J_ineq`` and ``s`` returns:
-            jacobian = [ J_eq,     0     ]
-                       [ J_ineq, diag(s) ]
-
-        It is equivalent to:
-            sps.bmat([[ J_eq,   None    ],
-                      [ J_ineq, diag(s) ]], "csr")
-        but significantly more efficient for this
-        given structure.
-        """
-        n_vars, n_ineq, n_eq = self.n_vars, self.n_ineq, self.n_eq
-        J_aux = sps.vstack([J_eq, J_ineq], "csr")
-        indptr, indices, data = J_aux.indptr, J_aux.indices, J_aux.data
-        new_indptr = indptr + np.hstack((np.zeros(n_eq, dtype=int),
-                                         np.arange(n_ineq+1, dtype=int)))
-        size = indices.size+n_ineq
-        new_indices = np.empty(size)
-        new_data = np.empty(size)
-        mask = np.full(size, False, bool)
-        mask[new_indptr[-n_ineq:]-1] = True
-        new_indices[mask] = n_vars+np.arange(n_ineq)
-        new_indices[~mask] = indices
-        new_data[mask] = s
-        new_data[~mask] = data
-        J = sps.csr_matrix((new_data, new_indices, new_indptr),
-                           (n_eq + n_ineq, n_vars + n_ineq))
-        return J
-
-    def lagrangian_hessian_x(self, z, v):
-        """Returns Lagrangian Hessian (in relation to `x`) -> Hx"""
-        x = self.get_variables(z)
-        # Get lagrange multipliers related to nonlinear equality constraints
-        v_eq = v[:self.n_eq]
-        # Get lagrange multipliers related to nonlinear ineq. constraints
-        v_ineq = v[self.n_eq:self.n_eq+self.n_ineq]
-        lagr_hess = self.lagr_hess
-        return lagr_hess(x, v_eq, v_ineq)
-
-    def lagrangian_hessian_s(self, z, v):
-        """Returns scaled Lagrangian Hessian (in relation to`s`) -> S Hs S"""
-        s = self.get_slack(z)
-        # Using the primal formulation:
-        #     S Hs S = diag(s)*diag(barrier_parameter/s**2)*diag(s).
-        # Reference [1]_ p. 882, formula (3.1)
-        primal = self.barrier_parameter
-        # Using the primal-dual formulation
-        #     S Hs S = diag(s)*diag(v/s)*diag(s)
-        # Reference [1]_ p. 883, formula (3.11)
-        primal_dual = v[-self.n_ineq:]*s
-        # Uses the primal-dual formulation for
-        # positives values of v_ineq, and primal
-        # formulation for the remaining ones.
-        return np.where(v[-self.n_ineq:] > 0, primal_dual, primal)
-
-    def lagrangian_hessian(self, z, v):
-        """Returns scaled Lagrangian Hessian"""
-        # Compute Hessian in relation to x and s
-        Hx = self.lagrangian_hessian_x(z, v)
-        if self.n_ineq > 0:
-            S_Hs_S = self.lagrangian_hessian_s(z, v)
-
-        # The scaled Lagragian Hessian is:
-        #     [ Hx    0    ]
-        #     [ 0   S Hs S ]
-        def matvec(vec):
-            vec_x = self.get_variables(vec)
-            vec_s = self.get_slack(vec)
-            if self.n_ineq > 0:
-                return np.hstack((Hx.dot(vec_x), S_Hs_S*vec_s))
-            else:
-                return Hx.dot(vec_x)
-        return LinearOperator((self.n_vars+self.n_ineq,
-                               self.n_vars+self.n_ineq),
-                              matvec)
-
-    def stop_criteria(self, state, z, last_iteration_failed,
-                      optimality, constr_violation,
-                      trust_radius, penalty, cg_info):
-        """Stop criteria to the barrier problem.
-        The criteria here proposed is similar to formula (2.3)
-        from [1]_, p.879.
-        """
-        x = self.get_variables(z)
-        if self.global_stop_criteria(state, x,
-                                     last_iteration_failed,
-                                     trust_radius, penalty,
-                                     cg_info,
-                                     self.barrier_parameter,
-                                     self.tolerance):
-            self.terminate = True
-            return True
-        else:
-            g_cond = (optimality < self.tolerance and
-                      constr_violation < self.tolerance)
-            x_cond = trust_radius < self.xtol
-            return g_cond or x_cond
-
-
-def tr_interior_point(fun, grad, lagr_hess, n_vars, n_ineq, n_eq,
-                      constr, jac, x0, fun0, grad0,
-                      constr_ineq0, jac_ineq0, constr_eq0,
-                      jac_eq0, stop_criteria,
-                      enforce_feasibility, xtol, state,
-                      initial_barrier_parameter,
-                      initial_tolerance,
-                      initial_penalty,
-                      initial_trust_radius,
-                      factorization_method):
-    """Trust-region interior points method.
-
-    Solve problem:
-        minimize fun(x)
-        subject to: constr_ineq(x) <= 0
-                    constr_eq(x) = 0
-    using trust-region interior point method described in [1]_.
-    """
-    # BOUNDARY_PARAMETER controls the decrease on the slack
-    # variables. Represents ``tau`` from [1]_ p.885, formula (3.18).
-    BOUNDARY_PARAMETER = 0.995
-    # BARRIER_DECAY_RATIO controls the decay of the barrier parameter
-    # and of the subproblem toloerance. Represents ``theta`` from [1]_ p.879.
-    BARRIER_DECAY_RATIO = 0.2
-    # TRUST_ENLARGEMENT controls the enlargement on trust radius
-    # after each iteration
-    TRUST_ENLARGEMENT = 5
-
-    # Default enforce_feasibility
-    if enforce_feasibility is None:
-        enforce_feasibility = np.zeros(n_ineq, bool)
-    # Initial Values
-    barrier_parameter = initial_barrier_parameter
-    tolerance = initial_tolerance
-    trust_radius = initial_trust_radius
-    # Define initial value for the slack variables
-    s0 = np.maximum(-1.5*constr_ineq0, np.ones(n_ineq))
-    # Define barrier subproblem
-    subprob = BarrierSubproblem(
-        x0, s0, fun, grad, lagr_hess, n_vars, n_ineq, n_eq, constr, jac,
-        barrier_parameter, tolerance, enforce_feasibility,
-        stop_criteria, xtol, fun0, grad0, constr_ineq0, jac_ineq0,
-        constr_eq0, jac_eq0)
-    # Define initial parameter for the first iteration.
-    z = np.hstack((x0, s0))
-    fun0_subprob, constr0_subprob = subprob.fun0, subprob.constr0
-    grad0_subprob, jac0_subprob = subprob.grad0, subprob.jac0
-    # Define trust region bounds
-    trust_lb = np.hstack((np.full(subprob.n_vars, -np.inf),
-                          np.full(subprob.n_ineq, -BOUNDARY_PARAMETER)))
-    trust_ub = np.full(subprob.n_vars+subprob.n_ineq, np.inf)
-
-    # Solves a sequence of barrier problems
-    while True:
-        # Solve SQP subproblem
-        z, state = equality_constrained_sqp(
-            subprob.function_and_constraints,
-            subprob.gradient_and_jacobian,
-            subprob.lagrangian_hessian,
-            z, fun0_subprob, grad0_subprob,
-            constr0_subprob, jac0_subprob, subprob.stop_criteria,
-            state, initial_penalty, trust_radius,
-            factorization_method, trust_lb, trust_ub, subprob.scaling)
-        if subprob.terminate:
-            break
-        # Update parameters
-        trust_radius = max(initial_trust_radius,
-                           TRUST_ENLARGEMENT*state.tr_radius)
-        # TODO: Use more advanced strategies from [2]_
-        # to update this parameters.
-        barrier_parameter *= BARRIER_DECAY_RATIO
-        tolerance *= BARRIER_DECAY_RATIO
-        # Update Barrier Problem
-        subprob.update(barrier_parameter, tolerance)
-        # Compute initial values for next iteration
-        fun0_subprob, constr0_subprob = subprob.function_and_constraints(z)
-        grad0_subprob, jac0_subprob = subprob.gradient_and_jacobian(z)
-
-    # Get x and s
-    x = subprob.get_variables(z)
-    return x, state
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_dogleg.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_dogleg.py
deleted file mode 100644
index a54abd60c703408d6c87cb5020d6781fdf0213c7..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_dogleg.py
+++ /dev/null
@@ -1,122 +0,0 @@
-"""Dog-leg trust-region optimization."""
-import numpy as np
-import scipy.linalg
-from ._trustregion import (_minimize_trust_region, BaseQuadraticSubproblem)
-
-__all__ = []
-
-
-def _minimize_dogleg(fun, x0, args=(), jac=None, hess=None,
-                     **trust_region_options):
-    """
-    Minimization of scalar function of one or more variables using
-    the dog-leg trust-region algorithm.
-
-    Options
-    -------
-    initial_trust_radius : float
-        Initial trust-region radius.
-    max_trust_radius : float
-        Maximum value of the trust-region radius. No steps that are longer
-        than this value will be proposed.
-    eta : float
-        Trust region related acceptance stringency for proposed steps.
-    gtol : float
-        Gradient norm must be less than `gtol` before successful
-        termination.
-
-    """
-    if jac is None:
-        raise ValueError('Jacobian is required for dogleg minimization')
-    if not callable(hess):
-        raise ValueError('Hessian is required for dogleg minimization')
-    return _minimize_trust_region(fun, x0, args=args, jac=jac, hess=hess,
-                                  subproblem=DoglegSubproblem,
-                                  **trust_region_options)
-
-
-class DoglegSubproblem(BaseQuadraticSubproblem):
-    """Quadratic subproblem solved by the dogleg method"""
-
-    def cauchy_point(self):
-        """
-        The Cauchy point is minimal along the direction of steepest descent.
-        """
-        if self._cauchy_point is None:
-            g = self.jac
-            Bg = self.hessp(g)
-            self._cauchy_point = -(np.dot(g, g) / np.dot(g, Bg)) * g
-        return self._cauchy_point
-
-    def newton_point(self):
-        """
-        The Newton point is a global minimum of the approximate function.
-        """
-        if self._newton_point is None:
-            g = self.jac
-            B = self.hess
-            cho_info = scipy.linalg.cho_factor(B)
-            self._newton_point = -scipy.linalg.cho_solve(cho_info, g)
-        return self._newton_point
-
-    def solve(self, trust_radius):
-        """
-        Minimize a function using the dog-leg trust-region algorithm.
-
-        This algorithm requires function values and first and second derivatives.
-        It also performs a costly Hessian decomposition for most iterations,
-        and the Hessian is required to be positive definite.
-
-        Parameters
-        ----------
-        trust_radius : float
-            We are allowed to wander only this far away from the origin.
-
-        Returns
-        -------
-        p : ndarray
-            The proposed step.
-        hits_boundary : bool
-            True if the proposed step is on the boundary of the trust region.
-
-        Notes
-        -----
-        The Hessian is required to be positive definite.
-
-        References
-        ----------
-        .. [1] Jorge Nocedal and Stephen Wright,
-               Numerical Optimization, second edition,
-               Springer-Verlag, 2006, page 73.
-        """
-
-        # Compute the Newton point.
-        # This is the optimum for the quadratic model function.
-        # If it is inside the trust radius then return this point.
-        p_best = self.newton_point()
-        if scipy.linalg.norm(p_best) < trust_radius:
-            hits_boundary = False
-            return p_best, hits_boundary
-
-        # Compute the Cauchy point.
-        # This is the predicted optimum along the direction of steepest descent.
-        p_u = self.cauchy_point()
-
-        # If the Cauchy point is outside the trust region,
-        # then return the point where the path intersects the boundary.
-        p_u_norm = scipy.linalg.norm(p_u)
-        if p_u_norm >= trust_radius:
-            p_boundary = p_u * (trust_radius / p_u_norm)
-            hits_boundary = True
-            return p_boundary, hits_boundary
-
-        # Compute the intersection of the trust region boundary
-        # and the line segment connecting the Cauchy and Newton points.
-        # This requires solving a quadratic equation.
-        # ||p_u + t*(p_best - p_u)||**2 == trust_radius**2
-        # Solve this for positive time t using the quadratic formula.
-        _, tb = self.get_boundaries_intersections(p_u, p_best - p_u,
-                                                  trust_radius)
-        p_boundary = p_u + tb * (p_best - p_u)
-        hits_boundary = True
-        return p_boundary, hits_boundary
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_exact.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_exact.py
deleted file mode 100644
index 21fc3d5609d2b41eb5b5ad840ef464522565054c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_exact.py
+++ /dev/null
@@ -1,438 +0,0 @@
-"""Nearly exact trust-region optimization subproblem."""
-import numpy as np
-from scipy.linalg import (norm, get_lapack_funcs, solve_triangular,
-                          cho_solve)
-from ._trustregion import (_minimize_trust_region, BaseQuadraticSubproblem)
-
-__all__ = ['_minimize_trustregion_exact',
-           'estimate_smallest_singular_value',
-           'singular_leading_submatrix',
-           'IterativeSubproblem']
-
-
-def _minimize_trustregion_exact(fun, x0, args=(), jac=None, hess=None,
-                                **trust_region_options):
-    """
-    Minimization of scalar function of one or more variables using
-    a nearly exact trust-region algorithm.
-
-    Options
-    -------
-    initial_trust_radius : float
-        Initial trust-region radius.
-    max_trust_radius : float
-        Maximum value of the trust-region radius. No steps that are longer
-        than this value will be proposed.
-    eta : float
-        Trust region related acceptance stringency for proposed steps.
-    gtol : float
-        Gradient norm must be less than ``gtol`` before successful
-        termination.
-    """
-
-    if jac is None:
-        raise ValueError('Jacobian is required for trust region '
-                         'exact minimization.')
-    if not callable(hess):
-        raise ValueError('Hessian matrix is required for trust region '
-                         'exact minimization.')
-    return _minimize_trust_region(fun, x0, args=args, jac=jac, hess=hess,
-                                  subproblem=IterativeSubproblem,
-                                  **trust_region_options)
-
-
-def estimate_smallest_singular_value(U):
-    """Given upper triangular matrix ``U`` estimate the smallest singular
-    value and the correspondent right singular vector in O(n**2) operations.
-
-    Parameters
-    ----------
-    U : ndarray
-        Square upper triangular matrix.
-
-    Returns
-    -------
-    s_min : float
-        Estimated smallest singular value of the provided matrix.
-    z_min : ndarray
-        Estimatied right singular vector.
-
-    Notes
-    -----
-    The procedure is based on [1]_ and is done in two steps. First, it finds
-    a vector ``e`` with components selected from {+1, -1} such that the
-    solution ``w`` from the system ``U.T w = e`` is as large as possible.
-    Next it estimate ``U v = w``. The smallest singular value is close
-    to ``norm(w)/norm(v)`` and the right singular vector is close
-    to ``v/norm(v)``.
-
-    The estimation will be better more ill-conditioned is the matrix.
-
-    References
-    ----------
-    .. [1] Cline, A. K., Moler, C. B., Stewart, G. W., Wilkinson, J. H.
-           An estimate for the condition number of a matrix.  1979.
-           SIAM Journal on Numerical Analysis, 16(2), 368-375.
-    """
-
-    U = np.atleast_2d(U)
-    m, n = U.shape
-
-    if m != n:
-        raise ValueError("A square triangular matrix should be provided.")
-
-    # A vector `e` with components selected from {+1, -1}
-    # is selected so that the solution `w` to the system
-    # `U.T w = e` is as large as possible. Implementation
-    # based on algorithm 3.5.1, p. 142, from reference [2]
-    # adapted for lower triangular matrix.
-
-    p = np.zeros(n)
-    w = np.empty(n)
-
-    # Implemented according to:  Golub, G. H., Van Loan, C. F. (2013).
-    # "Matrix computations". Forth Edition. JHU press. pp. 140-142.
-    for k in range(n):
-        wp = (1-p[k]) / U.T[k, k]
-        wm = (-1-p[k]) / U.T[k, k]
-        pp = p[k+1:] + U.T[k+1:, k]*wp
-        pm = p[k+1:] + U.T[k+1:, k]*wm
-
-        if abs(wp) + norm(pp, 1) >= abs(wm) + norm(pm, 1):
-            w[k] = wp
-            p[k+1:] = pp
-        else:
-            w[k] = wm
-            p[k+1:] = pm
-
-    # The system `U v = w` is solved using backward substitution.
-    v = solve_triangular(U, w)
-
-    v_norm = norm(v)
-    w_norm = norm(w)
-
-    # Smallest singular value
-    s_min = w_norm / v_norm
-
-    # Associated vector
-    z_min = v / v_norm
-
-    return s_min, z_min
-
-
-def gershgorin_bounds(H):
-    """
-    Given a square matrix ``H`` compute upper
-    and lower bounds for its eigenvalues (Gregoshgorin Bounds).
-    Defined ref. [1].
-
-    References
-    ----------
-    .. [1] Conn, A. R., Gould, N. I., & Toint, P. L.
-           Trust region methods. 2000. Siam. pp. 19.
-    """
-
-    H_diag = np.diag(H)
-    H_diag_abs = np.abs(H_diag)
-    H_row_sums = np.sum(np.abs(H), axis=1)
-    lb = np.min(H_diag + H_diag_abs - H_row_sums)
-    ub = np.max(H_diag - H_diag_abs + H_row_sums)
-
-    return lb, ub
-
-
-def singular_leading_submatrix(A, U, k):
-    """
-    Compute term that makes the leading ``k`` by ``k``
-    submatrix from ``A`` singular.
-
-    Parameters
-    ----------
-    A : ndarray
-        Symmetric matrix that is not positive definite.
-    U : ndarray
-        Upper triangular matrix resulting of an incomplete
-        Cholesky decomposition of matrix ``A``.
-    k : int
-        Positive integer such that the leading k by k submatrix from
-        `A` is the first non-positive definite leading submatrix.
-
-    Returns
-    -------
-    delta : float
-        Amount that should be added to the element (k, k) of the
-        leading k by k submatrix of ``A`` to make it singular.
-    v : ndarray
-        A vector such that ``v.T B v = 0``. Where B is the matrix A after
-        ``delta`` is added to its element (k, k).
-    """
-
-    # Compute delta
-    delta = np.sum(U[:k-1, k-1]**2) - A[k-1, k-1]
-
-    n = len(A)
-
-    # Inicialize v
-    v = np.zeros(n)
-    v[k-1] = 1
-
-    # Compute the remaining values of v by solving a triangular system.
-    if k != 1:
-        v[:k-1] = solve_triangular(U[:k-1, :k-1], -U[:k-1, k-1])
-
-    return delta, v
-
-
-class IterativeSubproblem(BaseQuadraticSubproblem):
-    """Quadratic subproblem solved by nearly exact iterative method.
-
-    Notes
-    -----
-    This subproblem solver was based on [1]_, [2]_ and [3]_,
-    which implement similar algorithms. The algorithm is basically
-    that of [1]_ but ideas from [2]_ and [3]_ were also used.
-
-    References
-    ----------
-    .. [1] A.R. Conn, N.I. Gould, and P.L. Toint, "Trust region methods",
-           Siam, pp. 169-200, 2000.
-    .. [2] J. Nocedal and  S. Wright, "Numerical optimization",
-           Springer Science & Business Media. pp. 83-91, 2006.
-    .. [3] J.J. More and D.C. Sorensen, "Computing a trust region step",
-           SIAM Journal on Scientific and Statistical Computing, vol. 4(3),
-           pp. 553-572, 1983.
-    """
-
-    # UPDATE_COEFF appears in reference [1]_
-    # in formula 7.3.14 (p. 190) named as "theta".
-    # As recommended there it value is fixed in 0.01.
-    UPDATE_COEFF = 0.01
-
-    EPS = np.finfo(float).eps
-
-    def __init__(self, x, fun, jac, hess, hessp=None,
-                 k_easy=0.1, k_hard=0.2):
-
-        super().__init__(x, fun, jac, hess)
-
-        # When the trust-region shrinks in two consecutive
-        # calculations (``tr_radius < previous_tr_radius``)
-        # the lower bound ``lambda_lb`` may be reused,
-        # facilitating  the convergence. To indicate no
-        # previous value is known at first ``previous_tr_radius``
-        # is set to -1  and ``lambda_lb`` to None.
-        self.previous_tr_radius = -1
-        self.lambda_lb = None
-
-        self.niter = 0
-
-        # ``k_easy`` and ``k_hard`` are parameters used
-        # to determine the stop criteria to the iterative
-        # subproblem solver. Take a look at pp. 194-197
-        # from reference _[1] for a more detailed description.
-        self.k_easy = k_easy
-        self.k_hard = k_hard
-
-        # Get Lapack function for cholesky decomposition.
-        # The implemented SciPy wrapper does not return
-        # the incomplete factorization needed by the method.
-        self.cholesky, = get_lapack_funcs(('potrf',), (self.hess,))
-
-        # Get info about Hessian
-        self.dimension = len(self.hess)
-        self.hess_gershgorin_lb,\
-            self.hess_gershgorin_ub = gershgorin_bounds(self.hess)
-        self.hess_inf = norm(self.hess, np.inf)
-        self.hess_fro = norm(self.hess, 'fro')
-
-        # A constant such that for vectors smaller than that
-        # backward substituition is not reliable. It was stabilished
-        # based on Golub, G. H., Van Loan, C. F. (2013).
-        # "Matrix computations". Forth Edition. JHU press., p.165.
-        self.CLOSE_TO_ZERO = self.dimension * self.EPS * self.hess_inf
-
-    def _initial_values(self, tr_radius):
-        """Given a trust radius, return a good initial guess for
-        the damping factor, the lower bound and the upper bound.
-        The values were chosen accordingly to the guidelines on
-        section 7.3.8 (p. 192) from [1]_.
-        """
-
-        # Upper bound for the damping factor
-        lambda_ub = max(0, self.jac_mag/tr_radius + min(-self.hess_gershgorin_lb,
-                                                        self.hess_fro,
-                                                        self.hess_inf))
-
-        # Lower bound for the damping factor
-        lambda_lb = max(0, -min(self.hess.diagonal()),
-                        self.jac_mag/tr_radius - min(self.hess_gershgorin_ub,
-                                                     self.hess_fro,
-                                                     self.hess_inf))
-
-        # Improve bounds with previous info
-        if tr_radius < self.previous_tr_radius:
-            lambda_lb = max(self.lambda_lb, lambda_lb)
-
-        # Initial guess for the damping factor
-        if lambda_lb == 0:
-            lambda_initial = 0
-        else:
-            lambda_initial = max(np.sqrt(lambda_lb * lambda_ub),
-                                 lambda_lb + self.UPDATE_COEFF*(lambda_ub-lambda_lb))
-
-        return lambda_initial, lambda_lb, lambda_ub
-
-    def solve(self, tr_radius):
-        """Solve quadratic subproblem"""
-
-        lambda_current, lambda_lb, lambda_ub = self._initial_values(tr_radius)
-        n = self.dimension
-        hits_boundary = True
-        already_factorized = False
-        self.niter = 0
-
-        while True:
-
-            # Compute Cholesky factorization
-            if already_factorized:
-                already_factorized = False
-            else:
-                H = self.hess+lambda_current*np.eye(n)
-                U, info = self.cholesky(H, lower=False,
-                                        overwrite_a=False,
-                                        clean=True)
-
-            self.niter += 1
-
-            # Check if factorization succeeded
-            if info == 0 and self.jac_mag > self.CLOSE_TO_ZERO:
-                # Successful factorization
-
-                # Solve `U.T U p = s`
-                p = cho_solve((U, False), -self.jac)
-
-                p_norm = norm(p)
-
-                # Check for interior convergence
-                if p_norm <= tr_radius and lambda_current == 0:
-                    hits_boundary = False
-                    break
-
-                # Solve `U.T w = p`
-                w = solve_triangular(U, p, trans='T')
-
-                w_norm = norm(w)
-
-                # Compute Newton step accordingly to
-                # formula (4.44) p.87 from ref [2]_.
-                delta_lambda = (p_norm/w_norm)**2 * (p_norm-tr_radius)/tr_radius
-                lambda_new = lambda_current + delta_lambda
-
-                if p_norm < tr_radius:  # Inside boundary
-                    s_min, z_min = estimate_smallest_singular_value(U)
-
-                    ta, tb = self.get_boundaries_intersections(p, z_min,
-                                                               tr_radius)
-
-                    # Choose `step_len` with the smallest magnitude.
-                    # The reason for this choice is explained at
-                    # ref [3]_, p. 6 (Immediately before the formula
-                    # for `tau`).
-                    step_len = min([ta, tb], key=abs)
-
-                    # Compute the quadratic term  (p.T*H*p)
-                    quadratic_term = np.dot(p, np.dot(H, p))
-
-                    # Check stop criteria
-                    relative_error = ((step_len**2 * s_min**2)
-                                      / (quadratic_term + lambda_current*tr_radius**2))
-                    if relative_error <= self.k_hard:
-                        p += step_len * z_min
-                        break
-
-                    # Update uncertanty bounds
-                    lambda_ub = lambda_current
-                    lambda_lb = max(lambda_lb, lambda_current - s_min**2)
-
-                    # Compute Cholesky factorization
-                    H = self.hess + lambda_new*np.eye(n)
-                    c, info = self.cholesky(H, lower=False,
-                                            overwrite_a=False,
-                                            clean=True)
-
-                    # Check if the factorization have succeeded
-                    #
-                    if info == 0:  # Successful factorization
-                        # Update damping factor
-                        lambda_current = lambda_new
-                        already_factorized = True
-                    else:  # Unsuccessful factorization
-                        # Update uncertanty bounds
-                        lambda_lb = max(lambda_lb, lambda_new)
-
-                        # Update damping factor
-                        lambda_current = max(
-                            np.sqrt(lambda_lb * lambda_ub),
-                            lambda_lb + self.UPDATE_COEFF*(lambda_ub-lambda_lb)
-                        )
-
-                else:  # Outside boundary
-                    # Check stop criteria
-                    relative_error = abs(p_norm - tr_radius) / tr_radius
-                    if relative_error <= self.k_easy:
-                        break
-
-                    # Update uncertanty bounds
-                    lambda_lb = lambda_current
-
-                    # Update damping factor
-                    lambda_current = lambda_new
-
-            elif info == 0 and self.jac_mag <= self.CLOSE_TO_ZERO:
-                # jac_mag very close to zero
-
-                # Check for interior convergence
-                if lambda_current == 0:
-                    p = np.zeros(n)
-                    hits_boundary = False
-                    break
-
-                s_min, z_min = estimate_smallest_singular_value(U)
-                step_len = tr_radius
-
-                # Check stop criteria
-                if (step_len**2 * s_min**2
-                    <= self.k_hard * lambda_current * tr_radius**2):
-                    p = step_len * z_min
-                    break
-
-                # Update uncertanty bounds
-                lambda_ub = lambda_current
-                lambda_lb = max(lambda_lb, lambda_current - s_min**2)
-
-                # Update damping factor
-                lambda_current = max(
-                    np.sqrt(lambda_lb * lambda_ub),
-                    lambda_lb + self.UPDATE_COEFF*(lambda_ub-lambda_lb)
-                )
-
-            else:  # Unsuccessful factorization
-
-                # Compute auxiliary terms
-                delta, v = singular_leading_submatrix(H, U, info)
-                v_norm = norm(v)
-
-                # Update uncertanty interval
-                lambda_lb = max(lambda_lb, lambda_current + delta/v_norm**2)
-
-                # Update damping factor
-                lambda_current = max(
-                    np.sqrt(lambda_lb * lambda_ub),
-                    lambda_lb + self.UPDATE_COEFF*(lambda_ub-lambda_lb)
-                )
-
-        self.lambda_lb = lambda_lb
-        self.lambda_current = lambda_current
-        self.previous_tr_radius = tr_radius
-
-        return p, hits_boundary
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_krylov.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_krylov.py
deleted file mode 100644
index 54e861ae2de02164966a33c437e5fdb08ba3006c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_krylov.py
+++ /dev/null
@@ -1,65 +0,0 @@
-from ._trustregion import (_minimize_trust_region)
-from ._trlib import (get_trlib_quadratic_subproblem)
-
-__all__ = ['_minimize_trust_krylov']
-
-def _minimize_trust_krylov(fun, x0, args=(), jac=None, hess=None, hessp=None,
-                           inexact=True, **trust_region_options):
-    """
-    Minimization of a scalar function of one or more variables using
-    a nearly exact trust-region algorithm that only requires matrix
-    vector products with the hessian matrix.
-
-    .. versionadded:: 1.0.0
-
-    Options
-    -------
-    inexact : bool, optional
-        Accuracy to solve subproblems. If True requires less nonlinear
-        iterations, but more vector products.
-    """
-
-    if jac is None:
-        raise ValueError('Jacobian is required for trust region ',
-                         'exact minimization.')
-    if hess is None and hessp is None:
-        raise ValueError('Either the Hessian or the Hessian-vector product '
-                         'is required for Krylov trust-region minimization')
-
-    # tol_rel specifies the termination tolerance relative to the initial
-    # gradient norm in the Krylov subspace iteration.
-
-    # - tol_rel_i specifies the tolerance for interior convergence.
-    # - tol_rel_b specifies the tolerance for boundary convergence.
-    #   in nonlinear programming applications it is not necessary to solve
-    #   the boundary case as exact as the interior case.
-
-    # - setting tol_rel_i=-2 leads to a forcing sequence in the Krylov
-    #   subspace iteration leading to quadratic convergence if eventually
-    #   the trust region stays inactive.
-    # - setting tol_rel_b=-3 leads to a forcing sequence in the Krylov
-    #   subspace iteration leading to superlinear convergence as long
-    #   as the iterates hit the trust region boundary.
-
-    # For details consult the documentation of trlib_krylov_min
-    # in _trlib/trlib_krylov.h
-    #
-    # Optimality of this choice of parameters among a range of possibilities
-    # has been tested on the unconstrained subset of the CUTEst library.
-
-    if inexact:
-        return _minimize_trust_region(fun, x0, args=args, jac=jac,
-                                      hess=hess, hessp=hessp,
-                                      subproblem=get_trlib_quadratic_subproblem(
-                                          tol_rel_i=-2.0, tol_rel_b=-3.0,
-                                          disp=trust_region_options.get('disp', False)
-                                          ),
-                                      **trust_region_options)
-    else:
-        return _minimize_trust_region(fun, x0, args=args, jac=jac,
-                                      hess=hess, hessp=hessp,
-                                      subproblem=get_trlib_quadratic_subproblem(
-                                          tol_rel_i=1e-8, tol_rel_b=1e-6,
-                                          disp=trust_region_options.get('disp', False)
-                                          ),
-                                      **trust_region_options)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_ncg.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_ncg.py
deleted file mode 100644
index fed17ff8b84eaf019c0ad69a03f260ca674477ad..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_trustregion_ncg.py
+++ /dev/null
@@ -1,126 +0,0 @@
-"""Newton-CG trust-region optimization."""
-import math
-
-import numpy as np
-import scipy.linalg
-from ._trustregion import (_minimize_trust_region, BaseQuadraticSubproblem)
-
-__all__ = []
-
-
-def _minimize_trust_ncg(fun, x0, args=(), jac=None, hess=None, hessp=None,
-                        **trust_region_options):
-    """
-    Minimization of scalar function of one or more variables using
-    the Newton conjugate gradient trust-region algorithm.
-
-    Options
-    -------
-    initial_trust_radius : float
-        Initial trust-region radius.
-    max_trust_radius : float
-        Maximum value of the trust-region radius. No steps that are longer
-        than this value will be proposed.
-    eta : float
-        Trust region related acceptance stringency for proposed steps.
-    gtol : float
-        Gradient norm must be less than `gtol` before successful
-        termination.
-
-    """
-    if jac is None:
-        raise ValueError('Jacobian is required for Newton-CG trust-region '
-                         'minimization')
-    if hess is None and hessp is None:
-        raise ValueError('Either the Hessian or the Hessian-vector product '
-                         'is required for Newton-CG trust-region minimization')
-    return _minimize_trust_region(fun, x0, args=args, jac=jac, hess=hess,
-                                  hessp=hessp, subproblem=CGSteihaugSubproblem,
-                                  **trust_region_options)
-
-
-class CGSteihaugSubproblem(BaseQuadraticSubproblem):
-    """Quadratic subproblem solved by a conjugate gradient method"""
-    def solve(self, trust_radius):
-        """
-        Solve the subproblem using a conjugate gradient method.
-
-        Parameters
-        ----------
-        trust_radius : float
-            We are allowed to wander only this far away from the origin.
-
-        Returns
-        -------
-        p : ndarray
-            The proposed step.
-        hits_boundary : bool
-            True if the proposed step is on the boundary of the trust region.
-
-        Notes
-        -----
-        This is algorithm (7.2) of Nocedal and Wright 2nd edition.
-        Only the function that computes the Hessian-vector product is required.
-        The Hessian itself is not required, and the Hessian does
-        not need to be positive semidefinite.
-        """
-
-        # get the norm of jacobian and define the origin
-        p_origin = np.zeros_like(self.jac)
-
-        # define a default tolerance
-        tolerance = min(0.5, math.sqrt(self.jac_mag)) * self.jac_mag
-
-        # Stop the method if the search direction
-        # is a direction of nonpositive curvature.
-        if self.jac_mag < tolerance:
-            hits_boundary = False
-            return p_origin, hits_boundary
-
-        # init the state for the first iteration
-        z = p_origin
-        r = self.jac
-        d = -r
-
-        # Search for the min of the approximation of the objective function.
-        while True:
-
-            # do an iteration
-            Bd = self.hessp(d)
-            dBd = np.dot(d, Bd)
-            if dBd <= 0:
-                # Look at the two boundary points.
-                # Find both values of t to get the boundary points such that
-                # ||z + t d|| == trust_radius
-                # and then choose the one with the predicted min value.
-                ta, tb = self.get_boundaries_intersections(z, d, trust_radius)
-                pa = z + ta * d
-                pb = z + tb * d
-                if self(pa) < self(pb):
-                    p_boundary = pa
-                else:
-                    p_boundary = pb
-                hits_boundary = True
-                return p_boundary, hits_boundary
-            r_squared = np.dot(r, r)
-            alpha = r_squared / dBd
-            z_next = z + alpha * d
-            if scipy.linalg.norm(z_next) >= trust_radius:
-                # Find t >= 0 to get the boundary point such that
-                # ||z + t d|| == trust_radius
-                ta, tb = self.get_boundaries_intersections(z, d, trust_radius)
-                p_boundary = z + tb * d
-                hits_boundary = True
-                return p_boundary, hits_boundary
-            r_next = r + alpha * Bd
-            r_next_squared = np.dot(r_next, r_next)
-            if math.sqrt(r_next_squared) < tolerance:
-                hits_boundary = False
-                return z_next, hits_boundary
-            beta_next = r_next_squared / r_squared
-            d_next = -r_next + beta_next * d
-
-            # update the state for the next iteration
-            z = z_next
-            r = r_next
-            d = d_next
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_tstutils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_tstutils.py
deleted file mode 100644
index f56e835e345d66023efae81114a45ed29269f18d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_tstutils.py
+++ /dev/null
@@ -1,972 +0,0 @@
-r"""
-Parameters used in test and benchmark methods.
-
-Collections of test cases suitable for testing 1-D root-finders
-  'original': The original benchmarking functions.
-     Real-valued functions of real-valued inputs on an interval
-     with a zero.
-     f1, .., f3 are continuous and infinitely differentiable
-     f4 has a left- and right- discontinuity at the root
-     f5 has a root at 1 replacing a 1st order pole
-     f6 is randomly positive on one side of the root,
-     randomly negative on the other.
-     f4 - f6 are not continuous at the root.
-
-  'aps': The test problems in the 1995 paper
-     TOMS "Algorithm 748: Enclosing Zeros of Continuous Functions"
-     by Alefeld, Potra and Shi. Real-valued functions of
-     real-valued inputs on an interval with a zero.
-     Suitable for methods which start with an enclosing interval, and
-     derivatives up to 2nd order.
-
-  'complex': Some complex-valued functions of complex-valued inputs.
-     No enclosing bracket is provided.
-     Suitable for methods which use one or more starting values, and
-     derivatives up to 2nd order.
-
-  The test cases are provided as a list of dictionaries. The dictionary
-  keys will be a subset of:
-  ["f", "fprime", "fprime2", "args", "bracket", "smoothness",
-  "a", "b", "x0", "x1", "root", "ID"]
-"""
-
-# Sources:
-#  [1] Alefeld, G. E. and Potra, F. A. and Shi, Yixun,
-#      "Algorithm 748: Enclosing Zeros of Continuous Functions",
-#      ACM Trans. Math. Softw. Volume 221(1995)
-#       doi = {10.1145/210089.210111},
-#  [2] Chandrupatla, Tirupathi R. "A new hybrid quadratic/bisection algorithm
-#      for finding the zero of a nonlinear function without using derivatives."
-#      Advances in Engineering Software 28.3 (1997): 145-149.
-
-from random import random
-
-import numpy as np
-
-from scipy.optimize import _zeros_py as cc
-from scipy._lib._array_api import array_namespace
-
-# "description" refers to the original functions
-description = """
-f2 is a symmetric parabola, x**2 - 1
-f3 is a quartic polynomial with large hump in interval
-f4 is step function with a discontinuity at 1
-f5 is a hyperbola with vertical asymptote at 1
-f6 has random values positive to left of 1, negative to right
-
-Of course, these are not real problems. They just test how the
-'good' solvers behave in bad circumstances where bisection is
-really the best. A good solver should not be much worse than
-bisection in such circumstance, while being faster for smooth
-monotone sorts of functions.
-"""
-
-
-def f1(x):
-    r"""f1 is a quadratic with roots at 0 and 1"""
-    return x * (x - 1.)
-
-
-def f1_fp(x):
-    return 2 * x - 1
-
-
-def f1_fpp(x):
-    return 2
-
-
-def f2(x):
-    r"""f2 is a symmetric parabola, x**2 - 1"""
-    return x**2 - 1
-
-
-def f2_fp(x):
-    return 2 * x
-
-
-def f2_fpp(x):
-    return 2
-
-
-def f3(x):
-    r"""A quartic with roots at 0, 1, 2 and 3"""
-    return x * (x - 1.) * (x - 2.) * (x - 3.)  # x**4 - 6x**3 + 11x**2 - 6x
-
-
-def f3_fp(x):
-    return 4 * x**3 - 18 * x**2 + 22 * x - 6
-
-
-def f3_fpp(x):
-    return 12 * x**2 - 36 * x + 22
-
-
-def f4(x):
-    r"""Piecewise linear, left- and right- discontinuous at x=1, the root."""
-    if x > 1:
-        return 1.0 + .1 * x
-    if x < 1:
-        return -1.0 + .1 * x
-    return 0
-
-
-def f5(x):
-    r"""
-    Hyperbola with a pole at x=1, but pole replaced with 0. Not continuous at root.
-    """
-    if x != 1:
-        return 1.0 / (1. - x)
-    return 0
-
-
-# f6(x) returns random value. Without memoization, calling twice with the
-# same x returns different values, hence a "random value", not a
-# "function with random values"
-_f6_cache = {}
-def f6(x):
-    v = _f6_cache.get(x, None)
-    if v is None:
-        if x > 1:
-            v = random()
-        elif x < 1:
-            v = -random()
-        else:
-            v = 0
-        _f6_cache[x] = v
-    return v
-
-
-# Each Original test case has
-# - a function and its two derivatives,
-# - additional arguments,
-# - a bracket enclosing a root,
-# - the order of differentiability (smoothness) on this interval
-# - a starting value for methods which don't require a bracket
-# - the root (inside the bracket)
-# - an Identifier of the test case
-
-_ORIGINAL_TESTS_KEYS = [
-    "f", "fprime", "fprime2", "args", "bracket", "smoothness", "x0", "root", "ID"
-]
-_ORIGINAL_TESTS = [
-    [f1, f1_fp, f1_fpp, (), [0.5, np.sqrt(3)], np.inf, 0.6, 1.0, "original.01.00"],
-    [f2, f2_fp, f2_fpp, (), [0.5, np.sqrt(3)], np.inf, 0.6, 1.0, "original.02.00"],
-    [f3, f3_fp, f3_fpp, (), [0.5, np.sqrt(3)], np.inf, 0.6, 1.0, "original.03.00"],
-    [f4, None, None, (), [0.5, np.sqrt(3)], -1, 0.6, 1.0, "original.04.00"],
-    [f5, None, None, (), [0.5, np.sqrt(3)], -1, 0.6, 1.0, "original.05.00"],
-    [f6, None, None, (), [0.5, np.sqrt(3)], -np.inf, 0.6, 1.0, "original.05.00"]
-]
-
-_ORIGINAL_TESTS_DICTS = [
-    dict(zip(_ORIGINAL_TESTS_KEYS, testcase)) for testcase in _ORIGINAL_TESTS
-]
-
-#   ##################
-#   "APS" test cases
-#   Functions and test cases that appear in [1]
-
-
-def aps01_f(x):
-    r"""Straightforward sum of trigonometric function and polynomial"""
-    return np.sin(x) - x / 2
-
-
-def aps01_fp(x):
-    return np.cos(x) - 1.0 / 2
-
-
-def aps01_fpp(x):
-    return -np.sin(x)
-
-
-def aps02_f(x):
-    r"""poles at x=n**2, 1st and 2nd derivatives at root are also close to 0"""
-    ii = np.arange(1, 21)
-    return -2 * np.sum((2 * ii - 5)**2 / (x - ii**2)**3)
-
-
-def aps02_fp(x):
-    ii = np.arange(1, 21)
-    return 6 * np.sum((2 * ii - 5)**2 / (x - ii**2)**4)
-
-
-def aps02_fpp(x):
-    ii = np.arange(1, 21)
-    return 24 * np.sum((2 * ii - 5)**2 / (x - ii**2)**5)
-
-
-def aps03_f(x, a, b):
-    r"""Rapidly changing at the root"""
-    return a * x * np.exp(b * x)
-
-
-def aps03_fp(x, a, b):
-    return a * (b * x + 1) * np.exp(b * x)
-
-
-def aps03_fpp(x, a, b):
-    return a * (b * (b * x + 1) + b) * np.exp(b * x)
-
-
-def aps04_f(x, n, a):
-    r"""Medium-degree polynomial"""
-    return x**n - a
-
-
-def aps04_fp(x, n, a):
-    return n * x**(n - 1)
-
-
-def aps04_fpp(x, n, a):
-    return n * (n - 1) * x**(n - 2)
-
-
-def aps05_f(x):
-    r"""Simple Trigonometric function"""
-    return np.sin(x) - 1.0 / 2
-
-
-def aps05_fp(x):
-    return np.cos(x)
-
-
-def aps05_fpp(x):
-    return -np.sin(x)
-
-
-def aps06_f(x, n):
-    r"""Exponential rapidly changing from -1 to 1 at x=0"""
-    return 2 * x * np.exp(-n) - 2 * np.exp(-n * x) + 1
-
-
-def aps06_fp(x, n):
-    return 2 * np.exp(-n) + 2 * n * np.exp(-n * x)
-
-
-def aps06_fpp(x, n):
-    return -2 * n * n * np.exp(-n * x)
-
-
-def aps07_f(x, n):
-    r"""Upside down parabola with parametrizable height"""
-    return (1 + (1 - n)**2) * x - (1 - n * x)**2
-
-
-def aps07_fp(x, n):
-    return (1 + (1 - n)**2) + 2 * n * (1 - n * x)
-
-
-def aps07_fpp(x, n):
-    return -2 * n * n
-
-
-def aps08_f(x, n):
-    r"""Degree n polynomial"""
-    return x * x - (1 - x)**n
-
-
-def aps08_fp(x, n):
-    return 2 * x + n * (1 - x)**(n - 1)
-
-
-def aps08_fpp(x, n):
-    return 2 - n * (n - 1) * (1 - x)**(n - 2)
-
-
-def aps09_f(x, n):
-    r"""Upside down quartic with parametrizable height"""
-    return (1 + (1 - n)**4) * x - (1 - n * x)**4
-
-
-def aps09_fp(x, n):
-    return (1 + (1 - n)**4) + 4 * n * (1 - n * x)**3
-
-
-def aps09_fpp(x, n):
-    return -12 * n * (1 - n * x)**2
-
-
-def aps10_f(x, n):
-    r"""Exponential plus a polynomial"""
-    return np.exp(-n * x) * (x - 1) + x**n
-
-
-def aps10_fp(x, n):
-    return np.exp(-n * x) * (-n * (x - 1) + 1) + n * x**(n - 1)
-
-
-def aps10_fpp(x, n):
-    return (np.exp(-n * x) * (-n * (-n * (x - 1) + 1) + -n * x)
-            + n * (n - 1) * x**(n - 2))
-
-
-def aps11_f(x, n):
-    r"""Rational function with a zero at x=1/n and a pole at x=0"""
-    return (n * x - 1) / ((n - 1) * x)
-
-
-def aps11_fp(x, n):
-    return 1 / (n - 1) / x**2
-
-
-def aps11_fpp(x, n):
-    return -2 / (n - 1) / x**3
-
-
-def aps12_f(x, n):
-    r"""nth root of x, with a zero at x=n"""
-    return np.power(x, 1.0 / n) - np.power(n, 1.0 / n)
-
-
-def aps12_fp(x, n):
-    return np.power(x, (1.0 - n) / n) / n
-
-
-def aps12_fpp(x, n):
-    return np.power(x, (1.0 - 2 * n) / n) * (1.0 / n) * (1.0 - n) / n
-
-
-_MAX_EXPABLE = np.log(np.finfo(float).max)
-
-
-def aps13_f(x):
-    r"""Function with *all* derivatives 0 at the root"""
-    if x == 0:
-        return 0
-    # x2 = 1.0/x**2
-    # if x2 > 708:
-    #     return 0
-    y = 1 / x**2
-    if y > _MAX_EXPABLE:
-        return 0
-    return x / np.exp(y)
-
-
-def aps13_fp(x):
-    if x == 0:
-        return 0
-    y = 1 / x**2
-    if y > _MAX_EXPABLE:
-        return 0
-    return (1 + 2 / x**2) / np.exp(y)
-
-
-def aps13_fpp(x):
-    if x == 0:
-        return 0
-    y = 1 / x**2
-    if y > _MAX_EXPABLE:
-        return 0
-    return 2 * (2 - x**2) / x**5 / np.exp(y)
-
-
-def aps14_f(x, n):
-    r"""0 for negative x-values, trigonometric+linear for x positive"""
-    if x <= 0:
-        return -n / 20.0
-    return n / 20.0 * (x / 1.5 + np.sin(x) - 1)
-
-
-def aps14_fp(x, n):
-    if x <= 0:
-        return 0
-    return n / 20.0 * (1.0 / 1.5 + np.cos(x))
-
-
-def aps14_fpp(x, n):
-    if x <= 0:
-        return 0
-    return -n / 20.0 * (np.sin(x))
-
-
-def aps15_f(x, n):
-    r"""piecewise linear, constant outside of [0, 0.002/(1+n)]"""
-    if x < 0:
-        return -0.859
-    if x > 2 * 1e-3 / (1 + n):
-        return np.e - 1.859
-    return np.exp((n + 1) * x / 2 * 1000) - 1.859
-
-
-def aps15_fp(x, n):
-    if not 0 <= x <= 2 * 1e-3 / (1 + n):
-        return np.e - 1.859
-    return np.exp((n + 1) * x / 2 * 1000) * (n + 1) / 2 * 1000
-
-
-def aps15_fpp(x, n):
-    if not 0 <= x <= 2 * 1e-3 / (1 + n):
-        return np.e - 1.859
-    return np.exp((n + 1) * x / 2 * 1000) * (n + 1) / 2 * 1000 * (n + 1) / 2 * 1000
-
-
-# Each APS test case has
-# - a function and its two derivatives,
-# - additional arguments,
-# - a bracket enclosing a root,
-# - the order of differentiability of the function on this interval
-# - a starting value for methods which don't require a bracket
-# - the root (inside the bracket)
-# - an Identifier of the test case
-#
-# Algorithm 748 is a bracketing algorithm so a bracketing interval was provided
-# in [1] for each test case. Newton and Halley methods need a single
-# starting point x0, which was chosen to be near the middle of the interval,
-# unless that would have made the problem too easy.
-
-_APS_TESTS_KEYS = [
-    "f", "fprime", "fprime2", "args", "bracket", "smoothness", "x0", "root", "ID"
-]
-_APS_TESTS = [
-    [aps01_f, aps01_fp, aps01_fpp, (), [np.pi / 2, np.pi], np.inf,
-     3, 1.89549426703398094e+00, "aps.01.00"],
-    [aps02_f, aps02_fp, aps02_fpp, (), [1 + 1e-9, 4 - 1e-9], np.inf,
-     2, 3.02291534727305677e+00, "aps.02.00"],
-    [aps02_f, aps02_fp, aps02_fpp, (), [4 + 1e-9, 9 - 1e-9], np.inf,
-     5, 6.68375356080807848e+00, "aps.02.01"],
-    [aps02_f, aps02_fp, aps02_fpp, (), [9 + 1e-9, 16 - 1e-9], np.inf,
-     10, 1.12387016550022114e+01, "aps.02.02"],
-    [aps02_f, aps02_fp, aps02_fpp, (), [16 + 1e-9, 25 - 1e-9], np.inf,
-     17, 1.96760000806234103e+01, "aps.02.03"],
-    [aps02_f, aps02_fp, aps02_fpp, (), [25 + 1e-9, 36 - 1e-9], np.inf,
-     26, 2.98282273265047557e+01, "aps.02.04"],
-    [aps02_f, aps02_fp, aps02_fpp, (), [36 + 1e-9, 49 - 1e-9], np.inf,
-     37, 4.19061161952894139e+01, "aps.02.05"],
-    [aps02_f, aps02_fp, aps02_fpp, (), [49 + 1e-9, 64 - 1e-9], np.inf,
-     50, 5.59535958001430913e+01, "aps.02.06"],
-    [aps02_f, aps02_fp, aps02_fpp, (), [64 + 1e-9, 81 - 1e-9], np.inf,
-     65, 7.19856655865877997e+01, "aps.02.07"],
-    [aps02_f, aps02_fp, aps02_fpp, (), [81 + 1e-9, 100 - 1e-9], np.inf,
-     82, 9.00088685391666701e+01, "aps.02.08"],
-    [aps02_f, aps02_fp, aps02_fpp, (), [100 + 1e-9, 121 - 1e-9], np.inf,
-     101, 1.10026532748330197e+02, "aps.02.09"],
-    [aps03_f, aps03_fp, aps03_fpp, (-40, -1), [-9, 31], np.inf,
-     -2, 0, "aps.03.00"],
-    [aps03_f, aps03_fp, aps03_fpp, (-100, -2), [-9, 31], np.inf,
-     -2, 0, "aps.03.01"],
-    [aps03_f, aps03_fp, aps03_fpp, (-200, -3), [-9, 31], np.inf,
-     -2, 0, "aps.03.02"],
-    [aps04_f, aps04_fp, aps04_fpp, (4, 0.2), [0, 5], np.inf,
-     2.5, 6.68740304976422006e-01, "aps.04.00"],
-    [aps04_f, aps04_fp, aps04_fpp, (6, 0.2), [0, 5], np.inf,
-     2.5, 7.64724491331730039e-01, "aps.04.01"],
-    [aps04_f, aps04_fp, aps04_fpp, (8, 0.2), [0, 5], np.inf,
-     2.5, 8.17765433957942545e-01, "aps.04.02"],
-    [aps04_f, aps04_fp, aps04_fpp, (10, 0.2), [0, 5], np.inf,
-     2.5, 8.51339922520784609e-01, "aps.04.03"],
-    [aps04_f, aps04_fp, aps04_fpp, (12, 0.2), [0, 5], np.inf,
-     2.5, 8.74485272221167897e-01, "aps.04.04"],
-    [aps04_f, aps04_fp, aps04_fpp, (4, 1), [0, 5], np.inf,
-     2.5, 1, "aps.04.05"],
-    [aps04_f, aps04_fp, aps04_fpp, (6, 1), [0, 5], np.inf,
-     2.5, 1, "aps.04.06"],
-    [aps04_f, aps04_fp, aps04_fpp, (8, 1), [0, 5], np.inf,
-     2.5, 1, "aps.04.07"],
-    [aps04_f, aps04_fp, aps04_fpp, (10, 1), [0, 5], np.inf,
-     2.5, 1, "aps.04.08"],
-    [aps04_f, aps04_fp, aps04_fpp, (12, 1), [0, 5], np.inf,
-     2.5, 1, "aps.04.09"],
-    [aps04_f, aps04_fp, aps04_fpp, (8, 1), [-0.95, 4.05], np.inf,
-     1.5, 1, "aps.04.10"],
-    [aps04_f, aps04_fp, aps04_fpp, (10, 1), [-0.95, 4.05], np.inf,
-     1.5, 1, "aps.04.11"],
-    [aps04_f, aps04_fp, aps04_fpp, (12, 1), [-0.95, 4.05], np.inf,
-     1.5, 1, "aps.04.12"],
-    [aps04_f, aps04_fp, aps04_fpp, (14, 1), [-0.95, 4.05], np.inf,
-     1.5, 1, "aps.04.13"],
-    [aps05_f, aps05_fp, aps05_fpp, (), [0, 1.5], np.inf,
-     1.3, np.pi / 6, "aps.05.00"],
-    [aps06_f, aps06_fp, aps06_fpp, (1,), [0, 1], np.inf,
-     0.5, 4.22477709641236709e-01, "aps.06.00"],
-    [aps06_f, aps06_fp, aps06_fpp, (2,), [0, 1], np.inf,
-     0.5, 3.06699410483203705e-01, "aps.06.01"],
-    [aps06_f, aps06_fp, aps06_fpp, (3,), [0, 1], np.inf,
-     0.5, 2.23705457654662959e-01, "aps.06.02"],
-    [aps06_f, aps06_fp, aps06_fpp, (4,), [0, 1], np.inf,
-     0.5, 1.71719147519508369e-01, "aps.06.03"],
-    [aps06_f, aps06_fp, aps06_fpp, (5,), [0, 1], np.inf,
-     0.4, 1.38257155056824066e-01, "aps.06.04"],
-    [aps06_f, aps06_fp, aps06_fpp, (20,), [0, 1], np.inf,
-     0.1, 3.46573590208538521e-02, "aps.06.05"],
-    [aps06_f, aps06_fp, aps06_fpp, (40,), [0, 1], np.inf,
-     5e-02, 1.73286795139986315e-02, "aps.06.06"],
-    [aps06_f, aps06_fp, aps06_fpp, (60,), [0, 1], np.inf,
-     1.0 / 30, 1.15524530093324210e-02, "aps.06.07"],
-    [aps06_f, aps06_fp, aps06_fpp, (80,), [0, 1], np.inf,
-     2.5e-02, 8.66433975699931573e-03, "aps.06.08"],
-    [aps06_f, aps06_fp, aps06_fpp, (100,), [0, 1], np.inf,
-     2e-02, 6.93147180559945415e-03, "aps.06.09"],
-    [aps07_f, aps07_fp, aps07_fpp, (5,), [0, 1], np.inf,
-     0.4, 3.84025518406218985e-02, "aps.07.00"],
-    [aps07_f, aps07_fp, aps07_fpp, (10,), [0, 1], np.inf,
-     0.4, 9.90000999800049949e-03, "aps.07.01"],
-    [aps07_f, aps07_fp, aps07_fpp, (20,), [0, 1], np.inf,
-     0.4, 2.49375003906201174e-03, "aps.07.02"],
-    [aps08_f, aps08_fp, aps08_fpp, (2,), [0, 1], np.inf,
-     0.9, 0.5, "aps.08.00"],
-    [aps08_f, aps08_fp, aps08_fpp, (5,), [0, 1], np.inf,
-     0.9, 3.45954815848242059e-01, "aps.08.01"],
-    [aps08_f, aps08_fp, aps08_fpp, (10,), [0, 1], np.inf,
-     0.9, 2.45122333753307220e-01, "aps.08.02"],
-    [aps08_f, aps08_fp, aps08_fpp, (15,), [0, 1], np.inf,
-     0.9, 1.95547623536565629e-01, "aps.08.03"],
-    [aps08_f, aps08_fp, aps08_fpp, (20,), [0, 1], np.inf,
-     0.9, 1.64920957276440960e-01, "aps.08.04"],
-    [aps09_f, aps09_fp, aps09_fpp, (1,), [0, 1], np.inf,
-     0.5, 2.75508040999484394e-01, "aps.09.00"],
-    [aps09_f, aps09_fp, aps09_fpp, (2,), [0, 1], np.inf,
-     0.5, 1.37754020499742197e-01, "aps.09.01"],
-    [aps09_f, aps09_fp, aps09_fpp, (4,), [0, 1], np.inf,
-     0.5, 1.03052837781564422e-02, "aps.09.02"],
-    [aps09_f, aps09_fp, aps09_fpp, (5,), [0, 1], np.inf,
-     0.5, 3.61710817890406339e-03, "aps.09.03"],
-    [aps09_f, aps09_fp, aps09_fpp, (8,), [0, 1], np.inf,
-     0.5, 4.10872918496395375e-04, "aps.09.04"],
-    [aps09_f, aps09_fp, aps09_fpp, (15,), [0, 1], np.inf,
-     0.5, 2.59895758929076292e-05, "aps.09.05"],
-    [aps09_f, aps09_fp, aps09_fpp, (20,), [0, 1], np.inf,
-     0.5, 7.66859512218533719e-06, "aps.09.06"],
-    [aps10_f, aps10_fp, aps10_fpp, (1,), [0, 1], np.inf,
-     0.9, 4.01058137541547011e-01, "aps.10.00"],
-    [aps10_f, aps10_fp, aps10_fpp, (5,), [0, 1], np.inf,
-     0.9, 5.16153518757933583e-01, "aps.10.01"],
-    [aps10_f, aps10_fp, aps10_fpp, (10,), [0, 1], np.inf,
-     0.9, 5.39522226908415781e-01, "aps.10.02"],
-    [aps10_f, aps10_fp, aps10_fpp, (15,), [0, 1], np.inf,
-     0.9, 5.48182294340655241e-01, "aps.10.03"],
-    [aps10_f, aps10_fp, aps10_fpp, (20,), [0, 1], np.inf,
-     0.9, 5.52704666678487833e-01, "aps.10.04"],
-    [aps11_f, aps11_fp, aps11_fpp, (2,), [0.01, 1], np.inf,
-     1e-02, 1.0 / 2, "aps.11.00"],
-    [aps11_f, aps11_fp, aps11_fpp, (5,), [0.01, 1], np.inf,
-     1e-02, 1.0 / 5, "aps.11.01"],
-    [aps11_f, aps11_fp, aps11_fpp, (15,), [0.01, 1], np.inf,
-     1e-02, 1.0 / 15, "aps.11.02"],
-    [aps11_f, aps11_fp, aps11_fpp, (20,), [0.01, 1], np.inf,
-     1e-02, 1.0 / 20, "aps.11.03"],
-    [aps12_f, aps12_fp, aps12_fpp, (2,), [1, 100], np.inf,
-     1.1, 2, "aps.12.00"],
-    [aps12_f, aps12_fp, aps12_fpp, (3,), [1, 100], np.inf,
-     1.1, 3, "aps.12.01"],
-    [aps12_f, aps12_fp, aps12_fpp, (4,), [1, 100], np.inf,
-     1.1, 4, "aps.12.02"],
-    [aps12_f, aps12_fp, aps12_fpp, (5,), [1, 100], np.inf,
-     1.1, 5, "aps.12.03"],
-    [aps12_f, aps12_fp, aps12_fpp, (6,), [1, 100], np.inf,
-     1.1, 6, "aps.12.04"],
-    [aps12_f, aps12_fp, aps12_fpp, (7,), [1, 100], np.inf,
-     1.1, 7, "aps.12.05"],
-    [aps12_f, aps12_fp, aps12_fpp, (9,), [1, 100], np.inf,
-     1.1, 9, "aps.12.06"],
-    [aps12_f, aps12_fp, aps12_fpp, (11,), [1, 100], np.inf,
-     1.1, 11, "aps.12.07"],
-    [aps12_f, aps12_fp, aps12_fpp, (13,), [1, 100], np.inf,
-     1.1, 13, "aps.12.08"],
-    [aps12_f, aps12_fp, aps12_fpp, (15,), [1, 100], np.inf,
-     1.1, 15, "aps.12.09"],
-    [aps12_f, aps12_fp, aps12_fpp, (17,), [1, 100], np.inf,
-     1.1, 17, "aps.12.10"],
-    [aps12_f, aps12_fp, aps12_fpp, (19,), [1, 100], np.inf,
-     1.1, 19, "aps.12.11"],
-    [aps12_f, aps12_fp, aps12_fpp, (21,), [1, 100], np.inf,
-     1.1, 21, "aps.12.12"],
-    [aps12_f, aps12_fp, aps12_fpp, (23,), [1, 100], np.inf,
-     1.1, 23, "aps.12.13"],
-    [aps12_f, aps12_fp, aps12_fpp, (25,), [1, 100], np.inf,
-     1.1, 25, "aps.12.14"],
-    [aps12_f, aps12_fp, aps12_fpp, (27,), [1, 100], np.inf,
-     1.1, 27, "aps.12.15"],
-    [aps12_f, aps12_fp, aps12_fpp, (29,), [1, 100], np.inf,
-     1.1, 29, "aps.12.16"],
-    [aps12_f, aps12_fp, aps12_fpp, (31,), [1, 100], np.inf,
-     1.1, 31, "aps.12.17"],
-    [aps12_f, aps12_fp, aps12_fpp, (33,), [1, 100], np.inf,
-     1.1, 33, "aps.12.18"],
-    [aps13_f, aps13_fp, aps13_fpp, (), [-1, 4], np.inf,
-     1.5, 0, "aps.13.00"],
-    [aps14_f, aps14_fp, aps14_fpp, (1,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.00"],
-    [aps14_f, aps14_fp, aps14_fpp, (2,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.01"],
-    [aps14_f, aps14_fp, aps14_fpp, (3,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.02"],
-    [aps14_f, aps14_fp, aps14_fpp, (4,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.03"],
-    [aps14_f, aps14_fp, aps14_fpp, (5,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.04"],
-    [aps14_f, aps14_fp, aps14_fpp, (6,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.05"],
-    [aps14_f, aps14_fp, aps14_fpp, (7,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.06"],
-    [aps14_f, aps14_fp, aps14_fpp, (8,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.07"],
-    [aps14_f, aps14_fp, aps14_fpp, (9,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.08"],
-    [aps14_f, aps14_fp, aps14_fpp, (10,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.09"],
-    [aps14_f, aps14_fp, aps14_fpp, (11,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.10"],
-    [aps14_f, aps14_fp, aps14_fpp, (12,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.11"],
-    [aps14_f, aps14_fp, aps14_fpp, (13,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.12"],
-    [aps14_f, aps14_fp, aps14_fpp, (14,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.13"],
-    [aps14_f, aps14_fp, aps14_fpp, (15,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.14"],
-    [aps14_f, aps14_fp, aps14_fpp, (16,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.15"],
-    [aps14_f, aps14_fp, aps14_fpp, (17,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.16"],
-    [aps14_f, aps14_fp, aps14_fpp, (18,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.17"],
-    [aps14_f, aps14_fp, aps14_fpp, (19,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.18"],
-    [aps14_f, aps14_fp, aps14_fpp, (20,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.19"],
-    [aps14_f, aps14_fp, aps14_fpp, (21,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.20"],
-    [aps14_f, aps14_fp, aps14_fpp, (22,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.21"],
-    [aps14_f, aps14_fp, aps14_fpp, (23,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.22"],
-    [aps14_f, aps14_fp, aps14_fpp, (24,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.23"],
-    [aps14_f, aps14_fp, aps14_fpp, (25,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.24"],
-    [aps14_f, aps14_fp, aps14_fpp, (26,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.25"],
-    [aps14_f, aps14_fp, aps14_fpp, (27,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.26"],
-    [aps14_f, aps14_fp, aps14_fpp, (28,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.27"],
-    [aps14_f, aps14_fp, aps14_fpp, (29,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.28"],
-    [aps14_f, aps14_fp, aps14_fpp, (30,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.29"],
-    [aps14_f, aps14_fp, aps14_fpp, (31,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.30"],
-    [aps14_f, aps14_fp, aps14_fpp, (32,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.31"],
-    [aps14_f, aps14_fp, aps14_fpp, (33,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.32"],
-    [aps14_f, aps14_fp, aps14_fpp, (34,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.33"],
-    [aps14_f, aps14_fp, aps14_fpp, (35,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.34"],
-    [aps14_f, aps14_fp, aps14_fpp, (36,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.35"],
-    [aps14_f, aps14_fp, aps14_fpp, (37,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.36"],
-    [aps14_f, aps14_fp, aps14_fpp, (38,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.37"],
-    [aps14_f, aps14_fp, aps14_fpp, (39,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.38"],
-    [aps14_f, aps14_fp, aps14_fpp, (40,), [-1000, np.pi / 2], 0,
-     1, 6.23806518961612433e-01, "aps.14.39"],
-    [aps15_f, aps15_fp, aps15_fpp, (20,), [-1000, 1e-4], 0,
-     -2, 5.90513055942197166e-05, "aps.15.00"],
-    [aps15_f, aps15_fp, aps15_fpp, (21,), [-1000, 1e-4], 0,
-     -2, 5.63671553399369967e-05, "aps.15.01"],
-    [aps15_f, aps15_fp, aps15_fpp, (22,), [-1000, 1e-4], 0,
-     -2, 5.39164094555919196e-05, "aps.15.02"],
-    [aps15_f, aps15_fp, aps15_fpp, (23,), [-1000, 1e-4], 0,
-     -2, 5.16698923949422470e-05, "aps.15.03"],
-    [aps15_f, aps15_fp, aps15_fpp, (24,), [-1000, 1e-4], 0,
-     -2, 4.96030966991445609e-05, "aps.15.04"],
-    [aps15_f, aps15_fp, aps15_fpp, (25,), [-1000, 1e-4], 0,
-     -2, 4.76952852876389951e-05, "aps.15.05"],
-    [aps15_f, aps15_fp, aps15_fpp, (26,), [-1000, 1e-4], 0,
-     -2, 4.59287932399486662e-05, "aps.15.06"],
-    [aps15_f, aps15_fp, aps15_fpp, (27,), [-1000, 1e-4], 0,
-     -2, 4.42884791956647841e-05, "aps.15.07"],
-    [aps15_f, aps15_fp, aps15_fpp, (28,), [-1000, 1e-4], 0,
-     -2, 4.27612902578832391e-05, "aps.15.08"],
-    [aps15_f, aps15_fp, aps15_fpp, (29,), [-1000, 1e-4], 0,
-     -2, 4.13359139159538030e-05, "aps.15.09"],
-    [aps15_f, aps15_fp, aps15_fpp, (30,), [-1000, 1e-4], 0,
-     -2, 4.00024973380198076e-05, "aps.15.10"],
-    [aps15_f, aps15_fp, aps15_fpp, (31,), [-1000, 1e-4], 0,
-     -2, 3.87524192962066869e-05, "aps.15.11"],
-    [aps15_f, aps15_fp, aps15_fpp, (32,), [-1000, 1e-4], 0,
-     -2, 3.75781035599579910e-05, "aps.15.12"],
-    [aps15_f, aps15_fp, aps15_fpp, (33,), [-1000, 1e-4], 0,
-     -2, 3.64728652199592355e-05, "aps.15.13"],
-    [aps15_f, aps15_fp, aps15_fpp, (34,), [-1000, 1e-4], 0,
-     -2, 3.54307833565318273e-05, "aps.15.14"],
-    [aps15_f, aps15_fp, aps15_fpp, (35,), [-1000, 1e-4], 0,
-     -2, 3.44465949299614980e-05, "aps.15.15"],
-    [aps15_f, aps15_fp, aps15_fpp, (36,), [-1000, 1e-4], 0,
-     -2, 3.35156058778003705e-05, "aps.15.16"],
-    [aps15_f, aps15_fp, aps15_fpp, (37,), [-1000, 1e-4], 0,
-     -2, 3.26336162494372125e-05, "aps.15.17"],
-    [aps15_f, aps15_fp, aps15_fpp, (38,), [-1000, 1e-4], 0,
-     -2, 3.17968568584260013e-05, "aps.15.18"],
-    [aps15_f, aps15_fp, aps15_fpp, (39,), [-1000, 1e-4], 0,
-     -2, 3.10019354369653455e-05, "aps.15.19"],
-    [aps15_f, aps15_fp, aps15_fpp, (40,), [-1000, 1e-4], 0,
-     -2, 3.02457906702100968e-05, "aps.15.20"],
-    [aps15_f, aps15_fp, aps15_fpp, (100,), [-1000, 1e-4], 0,
-     -2, 1.22779942324615231e-05, "aps.15.21"],
-    [aps15_f, aps15_fp, aps15_fpp, (200,), [-1000, 1e-4], 0,
-     -2, 6.16953939044086617e-06, "aps.15.22"],
-    [aps15_f, aps15_fp, aps15_fpp, (300,), [-1000, 1e-4], 0,
-     -2, 4.11985852982928163e-06, "aps.15.23"],
-    [aps15_f, aps15_fp, aps15_fpp, (400,), [-1000, 1e-4], 0,
-     -2, 3.09246238772721682e-06, "aps.15.24"],
-    [aps15_f, aps15_fp, aps15_fpp, (500,), [-1000, 1e-4], 0,
-     -2, 2.47520442610501789e-06, "aps.15.25"],
-    [aps15_f, aps15_fp, aps15_fpp, (600,), [-1000, 1e-4], 0,
-     -2, 2.06335676785127107e-06, "aps.15.26"],
-    [aps15_f, aps15_fp, aps15_fpp, (700,), [-1000, 1e-4], 0,
-     -2, 1.76901200781542651e-06, "aps.15.27"],
-    [aps15_f, aps15_fp, aps15_fpp, (800,), [-1000, 1e-4], 0,
-     -2, 1.54816156988591016e-06, "aps.15.28"],
-    [aps15_f, aps15_fp, aps15_fpp, (900,), [-1000, 1e-4], 0,
-     -2, 1.37633453660223511e-06, "aps.15.29"],
-    [aps15_f, aps15_fp, aps15_fpp, (1000,), [-1000, 1e-4], 0,
-     -2, 1.23883857889971403e-06, "aps.15.30"]
-]
-
-_APS_TESTS_DICTS = [dict(zip(_APS_TESTS_KEYS, testcase)) for testcase in _APS_TESTS]
-
-
-#   ##################
-#   "complex" test cases
-#   A few simple, complex-valued, functions, defined on the complex plane.
-
-
-def cplx01_f(z, n, a):
-    r"""z**n-a:  Use to find the nth root of a"""
-    return z**n - a
-
-
-def cplx01_fp(z, n, a):
-    return n * z**(n - 1)
-
-
-def cplx01_fpp(z, n, a):
-    return n * (n - 1) * z**(n - 2)
-
-
-def cplx02_f(z, a):
-    r"""e**z - a: Use to find the log of a"""
-    return np.exp(z) - a
-
-
-def cplx02_fp(z, a):
-    return np.exp(z)
-
-
-def cplx02_fpp(z, a):
-    return np.exp(z)
-
-
-# Each "complex" test case has
-# - a function and its two derivatives,
-# - additional arguments,
-# - the order of differentiability of the function on this interval
-# - two starting values x0 and x1
-# - the root
-# - an Identifier of the test case
-#
-# Algorithm 748 is a bracketing algorithm so a bracketing interval was provided
-# in [1] for each test case. Newton and Halley need a single starting point
-# x0, which was chosen to be near the middle of the interval, unless that
-# would make the problem too easy.
-
-
-_COMPLEX_TESTS_KEYS = [
-    "f", "fprime", "fprime2", "args", "smoothness", "x0", "x1", "root", "ID"
-]
-_COMPLEX_TESTS = [
-    [cplx01_f, cplx01_fp, cplx01_fpp, (2, -1), np.inf,
-     (1 + 1j), (0.5 + 0.5j), 1j, "complex.01.00"],
-    [cplx01_f, cplx01_fp, cplx01_fpp, (3, 1), np.inf,
-     (-1 + 1j), (-0.5 + 2.0j), (-0.5 + np.sqrt(3) / 2 * 1.0j),
-     "complex.01.01"],
-    [cplx01_f, cplx01_fp, cplx01_fpp, (3, -1), np.inf,
-     1j, (0.5 + 0.5j), (0.5 + np.sqrt(3) / 2 * 1.0j),
-     "complex.01.02"],
-    [cplx01_f, cplx01_fp, cplx01_fpp, (3, 8), np.inf,
-     5, 4, 2, "complex.01.03"],
-    [cplx02_f, cplx02_fp, cplx02_fpp, (-1,), np.inf,
-     (1 + 2j), (0.5 + 0.5j), np.pi * 1.0j, "complex.02.00"],
-    [cplx02_f, cplx02_fp, cplx02_fpp, (1j,), np.inf,
-     (1 + 2j), (0.5 + 0.5j), np.pi * 0.5j, "complex.02.01"],
-]
-
-_COMPLEX_TESTS_DICTS = [
-    dict(zip(_COMPLEX_TESTS_KEYS, testcase)) for testcase in _COMPLEX_TESTS
-]
-
-
-def _add_a_b(tests):
-    r"""Add "a" and "b" keys to each test from the "bracket" value"""
-    for d in tests:
-        for k, v in zip(['a', 'b'], d.get('bracket', [])):
-            d[k] = v
-
-
-_add_a_b(_ORIGINAL_TESTS_DICTS)
-_add_a_b(_APS_TESTS_DICTS)
-_add_a_b(_COMPLEX_TESTS_DICTS)
-
-
-def get_tests(collection='original', smoothness=None):
-    r"""Return the requested collection of test cases, as an array of dicts with subset-specific keys
-
-    Allowed values of collection:
-    'original': The original benchmarking functions.
-         Real-valued functions of real-valued inputs on an interval with a zero.
-         f1, .., f3 are continuous and infinitely differentiable
-         f4 has a single discontinuity at the root
-         f5 has a root at 1 replacing a 1st order pole
-         f6 is randomly positive on one side of the root, randomly negative on the other
-    'aps': The test problems in the TOMS "Algorithm 748: Enclosing Zeros of Continuous Functions"
-         paper by Alefeld, Potra and Shi. Real-valued functions of
-         real-valued inputs on an interval with a zero.
-         Suitable for methods which start with an enclosing interval, and
-         derivatives up to 2nd order.
-    'complex': Some complex-valued functions of complex-valued inputs.
-         No enclosing bracket is provided.
-         Suitable for methods which use one or more starting values, and
-         derivatives up to 2nd order.
-
-    The dictionary keys will be a subset of
-    ["f", "fprime", "fprime2", "args", "bracket", "a", b", "smoothness", "x0", "x1", "root", "ID"]
-    """  # noqa: E501
-    collection = collection or "original"
-    subsets = {"aps": _APS_TESTS_DICTS,
-               "complex": _COMPLEX_TESTS_DICTS,
-               "original": _ORIGINAL_TESTS_DICTS,
-               "chandrupatla": _CHANDRUPATLA_TESTS_DICTS}
-    tests = subsets.get(collection, [])
-    if smoothness is not None:
-        tests = [tc for tc in tests if tc['smoothness'] >= smoothness]
-    return tests
-
-
-# Backwards compatibility
-methods = [cc.bisect, cc.ridder, cc.brenth, cc.brentq]
-mstrings = ['cc.bisect', 'cc.ridder', 'cc.brenth', 'cc.brentq']
-functions = [f2, f3, f4, f5, f6]
-fstrings = ['f2', 'f3', 'f4', 'f5', 'f6']
-
-#   ##################
-#   "Chandrupatla" test cases
-#   Functions and test cases that appear in [2]
-
-def fun1(x):
-    return x**3 - 2*x - 5
-fun1.root = 2.0945514815423265  # additional precision using mpmath.findroot
-
-
-def fun2(x):
-    return 1 - 1/x**2
-fun2.root = 1
-
-
-def fun3(x):
-    return (x-3)**3
-fun3.root = 3
-
-
-def fun4(x):
-    return 6*(x-2)**5
-fun4.root = 2
-
-
-def fun5(x):
-    return x**9
-fun5.root = 0
-
-
-def fun6(x):
-    return x**19
-fun6.root = 0
-
-
-def fun7(x):
-    xp = array_namespace(x)
-    return 0 if xp.abs(x) < 3.8e-4 else x*xp.exp(-x**(-2))
-fun7.root = 0
-
-
-def fun8(x):
-    xp = array_namespace(x)
-    xi = 0.61489
-    return -(3062*(1-xi)*xp.exp(-x))/(xi + (1-xi)*xp.exp(-x)) - 1013 + 1628/x
-fun8.root = 1.0375360332870405
-
-
-def fun9(x):
-    xp = array_namespace(x)
-    return xp.exp(x) - 2 - 0.01/x**2 + .000002/x**3
-fun9.root = 0.7032048403631358
-
-# Each "chandropatla" test case has
-# - a function,
-# - two starting values x0 and x1
-# - the root
-# - the number of function evaluations required by Chandrupatla's algorithm
-# - an Identifier of the test case
-#
-# Chandrupatla's is a bracketing algorithm, so a bracketing interval was
-# provided in [2] for each test case. No special support for testing with
-# secant/Newton/Halley is provided.
-
-_CHANDRUPATLA_TESTS_KEYS = ["f", "bracket", "root", "nfeval", "ID"]
-_CHANDRUPATLA_TESTS = [
-    [fun1, [2, 3], fun1.root, 7],
-    [fun1, [1, 10], fun1.root, 11],
-    [fun1, [1, 100], fun1.root, 14],
-    [fun1, [-1e4, 1e4], fun1.root, 23],
-    [fun1, [-1e10, 1e10], fun1.root, 43],
-    [fun2, [0.5, 1.51], fun2.root, 8],
-    [fun2, [1e-4, 1e4], fun2.root, 22],
-    [fun2, [1e-6, 1e6], fun2.root, 28],
-    [fun2, [1e-10, 1e10], fun2.root, 41],
-    [fun2, [1e-12, 1e12], fun2.root, 48],
-    [fun3, [0, 5], fun3.root, 21],
-    [fun3, [-10, 10], fun3.root, 23],
-    [fun3, [-1e4, 1e4], fun3.root, 36],
-    [fun3, [-1e6, 1e6], fun3.root, 45],
-    [fun3, [-1e10, 1e10], fun3.root, 55],
-    [fun4, [0, 5], fun4.root, 21],
-    [fun4, [-10, 10], fun4.root, 23],
-    [fun4, [-1e4, 1e4], fun4.root, 33],
-    [fun4, [-1e6, 1e6], fun4.root, 43],
-    [fun4, [-1e10, 1e10], fun4.root, 54],
-    [fun5, [-1, 4], fun5.root, 21],
-    [fun5, [-2, 5], fun5.root, 22],
-    [fun5, [-1, 10], fun5.root, 23],
-    [fun5, [-5, 50], fun5.root, 25],
-    [fun5, [-10, 100], fun5.root, 26],
-    [fun6, [-1., 4.], fun6.root, 21],
-    [fun6, [-2., 5.], fun6.root, 22],
-    [fun6, [-1., 10.], fun6.root, 23],
-    [fun6, [-5., 50.], fun6.root, 25],
-    [fun6, [-10., 100.], fun6.root, 26],
-    [fun7, [-1, 4], fun7.root, 8],
-    [fun7, [-2, 5], fun7.root, 8],
-    [fun7, [-1, 10], fun7.root, 11],
-    [fun7, [-5, 50], fun7.root, 18],
-    [fun7, [-10, 100], fun7.root, 19],
-    [fun8, [2e-4, 2], fun8.root, 9],
-    [fun8, [2e-4, 3], fun8.root, 10],
-    [fun8, [2e-4, 9], fun8.root, 11],
-    [fun8, [2e-4, 27], fun8.root, 12],
-    [fun8, [2e-4, 81], fun8.root, 14],
-    [fun9, [2e-4, 1], fun9.root, 7],
-    [fun9, [2e-4, 3], fun9.root, 8],
-    [fun9, [2e-4, 9], fun9.root, 10],
-    [fun9, [2e-4, 27], fun9.root, 11],
-    [fun9, [2e-4, 81], fun9.root, 13],
-]
-_CHANDRUPATLA_TESTS = [test + [f'{test[0].__name__}.{i%5+1}']
-                       for i, test in enumerate(_CHANDRUPATLA_TESTS)]
-
-_CHANDRUPATLA_TESTS_DICTS = [dict(zip(_CHANDRUPATLA_TESTS_KEYS, testcase))
-                             for testcase in _CHANDRUPATLA_TESTS]
-_add_a_b(_CHANDRUPATLA_TESTS_DICTS)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_zeros.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_zeros.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index 7af3971d3d8f44903d9da2be40e4e414cbf6463d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_zeros.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_zeros_py.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_zeros_py.py
deleted file mode 100644
index 986031920d69578c1c7c470b03deae5b3d24c309..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/_zeros_py.py
+++ /dev/null
@@ -1,1403 +0,0 @@
-import warnings
-from collections import namedtuple
-import operator
-from . import _zeros
-from ._optimize import OptimizeResult
-import numpy as np
-
-
-_iter = 100
-_xtol = 2e-12
-_rtol = 4 * np.finfo(float).eps
-
-__all__ = ['newton', 'bisect', 'ridder', 'brentq', 'brenth', 'toms748',
-           'RootResults']
-
-# Must agree with CONVERGED, SIGNERR, CONVERR, ...  in zeros.h
-_ECONVERGED = 0
-_ESIGNERR = -1  # used in _chandrupatla
-_ECONVERR = -2
-_EVALUEERR = -3
-_ECALLBACK = -4
-_EINPROGRESS = 1
-
-CONVERGED = 'converged'
-SIGNERR = 'sign error'
-CONVERR = 'convergence error'
-VALUEERR = 'value error'
-INPROGRESS = 'No error'
-
-
-flag_map = {_ECONVERGED: CONVERGED, _ESIGNERR: SIGNERR, _ECONVERR: CONVERR,
-            _EVALUEERR: VALUEERR, _EINPROGRESS: INPROGRESS}
-
-
-class RootResults(OptimizeResult):
-    """Represents the root finding result.
-
-    Attributes
-    ----------
-    root : float
-        Estimated root location.
-    iterations : int
-        Number of iterations needed to find the root.
-    function_calls : int
-        Number of times the function was called.
-    converged : bool
-        True if the routine converged.
-    flag : str
-        Description of the cause of termination.
-    method : str
-        Root finding method used.
-
-    """
-
-    def __init__(self, root, iterations, function_calls, flag, method):
-        self.root = root
-        self.iterations = iterations
-        self.function_calls = function_calls
-        self.converged = flag == _ECONVERGED
-        if flag in flag_map:
-            self.flag = flag_map[flag]
-        else:
-            self.flag = flag
-        self.method = method
-
-
-def results_c(full_output, r, method):
-    if full_output:
-        x, funcalls, iterations, flag = r
-        results = RootResults(root=x,
-                              iterations=iterations,
-                              function_calls=funcalls,
-                              flag=flag, method=method)
-        return x, results
-    else:
-        return r
-
-
-def _results_select(full_output, r, method):
-    """Select from a tuple of (root, funccalls, iterations, flag)"""
-    x, funcalls, iterations, flag = r
-    if full_output:
-        results = RootResults(root=x,
-                              iterations=iterations,
-                              function_calls=funcalls,
-                              flag=flag, method=method)
-        return x, results
-    return x
-
-
-def _wrap_nan_raise(f):
-
-    def f_raise(x, *args):
-        fx = f(x, *args)
-        f_raise._function_calls += 1
-        if np.isnan(fx):
-            msg = (f'The function value at x={x} is NaN; '
-                   'solver cannot continue.')
-            err = ValueError(msg)
-            err._x = x
-            err._function_calls = f_raise._function_calls
-            raise err
-        return fx
-
-    f_raise._function_calls = 0
-    return f_raise
-
-
-def newton(func, x0, fprime=None, args=(), tol=1.48e-8, maxiter=50,
-           fprime2=None, x1=None, rtol=0.0,
-           full_output=False, disp=True):
-    """
-    Find a root of a real or complex function using the Newton-Raphson
-    (or secant or Halley's) method.
-
-    Find a root of the scalar-valued function `func` given a nearby scalar
-    starting point `x0`.
-    The Newton-Raphson method is used if the derivative `fprime` of `func`
-    is provided, otherwise the secant method is used. If the second order
-    derivative `fprime2` of `func` is also provided, then Halley's method is
-    used.
-
-    If `x0` is a sequence with more than one item, `newton` returns an array:
-    the roots of the function from each (scalar) starting point in `x0`.
-    In this case, `func` must be vectorized to return a sequence or array of
-    the same shape as its first argument. If `fprime` (`fprime2`) is given,
-    then its return must also have the same shape: each element is the first
-    (second) derivative of `func` with respect to its only variable evaluated
-    at each element of its first argument.
-
-    `newton` is for finding roots of a scalar-valued functions of a single
-    variable. For problems involving several variables, see `root`.
-
-    Parameters
-    ----------
-    func : callable
-        The function whose root is wanted. It must be a function of a
-        single variable of the form ``f(x,a,b,c...)``, where ``a,b,c...``
-        are extra arguments that can be passed in the `args` parameter.
-    x0 : float, sequence, or ndarray
-        An initial estimate of the root that should be somewhere near the
-        actual root. If not scalar, then `func` must be vectorized and return
-        a sequence or array of the same shape as its first argument.
-    fprime : callable, optional
-        The derivative of the function when available and convenient. If it
-        is None (default), then the secant method is used.
-    args : tuple, optional
-        Extra arguments to be used in the function call.
-    tol : float, optional
-        The allowable error of the root's value. If `func` is complex-valued,
-        a larger `tol` is recommended as both the real and imaginary parts
-        of `x` contribute to ``|x - x0|``.
-    maxiter : int, optional
-        Maximum number of iterations.
-    fprime2 : callable, optional
-        The second order derivative of the function when available and
-        convenient. If it is None (default), then the normal Newton-Raphson
-        or the secant method is used. If it is not None, then Halley's method
-        is used.
-    x1 : float, optional
-        Another estimate of the root that should be somewhere near the
-        actual root. Used if `fprime` is not provided.
-    rtol : float, optional
-        Tolerance (relative) for termination.
-    full_output : bool, optional
-        If `full_output` is False (default), the root is returned.
-        If True and `x0` is scalar, the return value is ``(x, r)``, where ``x``
-        is the root and ``r`` is a `RootResults` object.
-        If True and `x0` is non-scalar, the return value is ``(x, converged,
-        zero_der)`` (see Returns section for details).
-    disp : bool, optional
-        If True, raise a RuntimeError if the algorithm didn't converge, with
-        the error message containing the number of iterations and current
-        function value. Otherwise, the convergence status is recorded in a
-        `RootResults` return object.
-        Ignored if `x0` is not scalar.
-        *Note: this has little to do with displaying, however,
-        the `disp` keyword cannot be renamed for backwards compatibility.*
-
-    Returns
-    -------
-    root : float, sequence, or ndarray
-        Estimated location where function is zero.
-    r : `RootResults`, optional
-        Present if ``full_output=True`` and `x0` is scalar.
-        Object containing information about the convergence. In particular,
-        ``r.converged`` is True if the routine converged.
-    converged : ndarray of bool, optional
-        Present if ``full_output=True`` and `x0` is non-scalar.
-        For vector functions, indicates which elements converged successfully.
-    zero_der : ndarray of bool, optional
-        Present if ``full_output=True`` and `x0` is non-scalar.
-        For vector functions, indicates which elements had a zero derivative.
-
-    See Also
-    --------
-    root_scalar : interface to root solvers for scalar functions
-    root : interface to root solvers for multi-input, multi-output functions
-
-    Notes
-    -----
-    The convergence rate of the Newton-Raphson method is quadratic,
-    the Halley method is cubic, and the secant method is
-    sub-quadratic. This means that if the function is well-behaved
-    the actual error in the estimated root after the nth iteration
-    is approximately the square (cube for Halley) of the error
-    after the (n-1)th step. However, the stopping criterion used
-    here is the step size and there is no guarantee that a root
-    has been found. Consequently, the result should be verified.
-    Safer algorithms are brentq, brenth, ridder, and bisect,
-    but they all require that the root first be bracketed in an
-    interval where the function changes sign. The brentq algorithm
-    is recommended for general use in one dimensional problems
-    when such an interval has been found.
-
-    When `newton` is used with arrays, it is best suited for the following
-    types of problems:
-
-    * The initial guesses, `x0`, are all relatively the same distance from
-      the roots.
-    * Some or all of the extra arguments, `args`, are also arrays so that a
-      class of similar problems can be solved together.
-    * The size of the initial guesses, `x0`, is larger than O(100) elements.
-      Otherwise, a naive loop may perform as well or better than a vector.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy import optimize
-
-    >>> def f(x):
-    ...     return (x**3 - 1)  # only one real root at x = 1
-
-    ``fprime`` is not provided, use the secant method:
-
-    >>> root = optimize.newton(f, 1.5)
-    >>> root
-    1.0000000000000016
-    >>> root = optimize.newton(f, 1.5, fprime2=lambda x: 6 * x)
-    >>> root
-    1.0000000000000016
-
-    Only ``fprime`` is provided, use the Newton-Raphson method:
-
-    >>> root = optimize.newton(f, 1.5, fprime=lambda x: 3 * x**2)
-    >>> root
-    1.0
-
-    Both ``fprime2`` and ``fprime`` are provided, use Halley's method:
-
-    >>> root = optimize.newton(f, 1.5, fprime=lambda x: 3 * x**2,
-    ...                        fprime2=lambda x: 6 * x)
-    >>> root
-    1.0
-
-    When we want to find roots for a set of related starting values and/or
-    function parameters, we can provide both of those as an array of inputs:
-
-    >>> f = lambda x, a: x**3 - a
-    >>> fder = lambda x, a: 3 * x**2
-    >>> rng = np.random.default_rng()
-    >>> x = rng.standard_normal(100)
-    >>> a = np.arange(-50, 50)
-    >>> vec_res = optimize.newton(f, x, fprime=fder, args=(a, ), maxiter=200)
-
-    The above is the equivalent of solving for each value in ``(x, a)``
-    separately in a for-loop, just faster:
-
-    >>> loop_res = [optimize.newton(f, x0, fprime=fder, args=(a0,),
-    ...                             maxiter=200)
-    ...             for x0, a0 in zip(x, a)]
-    >>> np.allclose(vec_res, loop_res)
-    True
-
-    Plot the results found for all values of ``a``:
-
-    >>> analytical_result = np.sign(a) * np.abs(a)**(1/3)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(a, analytical_result, 'o')
-    >>> ax.plot(a, vec_res, '.')
-    >>> ax.set_xlabel('$a$')
-    >>> ax.set_ylabel('$x$ where $f(x, a)=0$')
-    >>> plt.show()
-
-    """
-    if tol <= 0:
-        raise ValueError("tol too small (%g <= 0)" % tol)
-    maxiter = operator.index(maxiter)
-    if maxiter < 1:
-        raise ValueError("maxiter must be greater than 0")
-    if np.size(x0) > 1:
-        return _array_newton(func, x0, fprime, args, tol, maxiter, fprime2,
-                             full_output)
-
-    # Convert to float (don't use float(x0); this works also for complex x0)
-    # Use np.asarray because we want x0 to be a numpy object, not a Python
-    # object. e.g. np.complex(1+1j) > 0 is possible, but (1 + 1j) > 0 raises
-    # a TypeError
-    x0 = np.asarray(x0)[()] * 1.0
-    p0 = x0
-    funcalls = 0
-    if fprime is not None:
-        # Newton-Raphson method
-        method = "newton"
-        for itr in range(maxiter):
-            # first evaluate fval
-            fval = func(p0, *args)
-            funcalls += 1
-            # If fval is 0, a root has been found, then terminate
-            if fval == 0:
-                return _results_select(
-                    full_output, (p0, funcalls, itr, _ECONVERGED), method)
-            fder = fprime(p0, *args)
-            funcalls += 1
-            if fder == 0:
-                msg = "Derivative was zero."
-                if disp:
-                    msg += (
-                        " Failed to converge after %d iterations, value is %s."
-                        % (itr + 1, p0))
-                    raise RuntimeError(msg)
-                warnings.warn(msg, RuntimeWarning, stacklevel=2)
-                return _results_select(
-                    full_output, (p0, funcalls, itr + 1, _ECONVERR), method)
-            newton_step = fval / fder
-            if fprime2:
-                fder2 = fprime2(p0, *args)
-                funcalls += 1
-                method = "halley"
-                # Halley's method:
-                #   newton_step /= (1.0 - 0.5 * newton_step * fder2 / fder)
-                # Only do it if denominator stays close enough to 1
-                # Rationale: If 1-adj < 0, then Halley sends x in the
-                # opposite direction to Newton. Doesn't happen if x is close
-                # enough to root.
-                adj = newton_step * fder2 / fder / 2
-                if np.abs(adj) < 1:
-                    newton_step /= 1.0 - adj
-            p = p0 - newton_step
-            if np.isclose(p, p0, rtol=rtol, atol=tol):
-                return _results_select(
-                    full_output, (p, funcalls, itr + 1, _ECONVERGED), method)
-            p0 = p
-    else:
-        # Secant method
-        method = "secant"
-        if x1 is not None:
-            if x1 == x0:
-                raise ValueError("x1 and x0 must be different")
-            p1 = x1
-        else:
-            eps = 1e-4
-            p1 = x0 * (1 + eps)
-            p1 += (eps if p1 >= 0 else -eps)
-        q0 = func(p0, *args)
-        funcalls += 1
-        q1 = func(p1, *args)
-        funcalls += 1
-        if abs(q1) < abs(q0):
-            p0, p1, q0, q1 = p1, p0, q1, q0
-        for itr in range(maxiter):
-            if q1 == q0:
-                if p1 != p0:
-                    msg = "Tolerance of %s reached." % (p1 - p0)
-                    if disp:
-                        msg += (
-                            " Failed to converge after %d iterations, value is %s."
-                            % (itr + 1, p1))
-                        raise RuntimeError(msg)
-                    warnings.warn(msg, RuntimeWarning, stacklevel=2)
-                p = (p1 + p0) / 2.0
-                return _results_select(
-                    full_output, (p, funcalls, itr + 1, _ECONVERR), method)
-            else:
-                if abs(q1) > abs(q0):
-                    p = (-q0 / q1 * p1 + p0) / (1 - q0 / q1)
-                else:
-                    p = (-q1 / q0 * p0 + p1) / (1 - q1 / q0)
-            if np.isclose(p, p1, rtol=rtol, atol=tol):
-                return _results_select(
-                    full_output, (p, funcalls, itr + 1, _ECONVERGED), method)
-            p0, q0 = p1, q1
-            p1 = p
-            q1 = func(p1, *args)
-            funcalls += 1
-
-    if disp:
-        msg = ("Failed to converge after %d iterations, value is %s."
-               % (itr + 1, p))
-        raise RuntimeError(msg)
-
-    return _results_select(full_output, (p, funcalls, itr + 1, _ECONVERR), method)
-
-
-def _array_newton(func, x0, fprime, args, tol, maxiter, fprime2, full_output):
-    """
-    A vectorized version of Newton, Halley, and secant methods for arrays.
-
-    Do not use this method directly. This method is called from `newton`
-    when ``np.size(x0) > 1`` is ``True``. For docstring, see `newton`.
-    """
-    # Explicitly copy `x0` as `p` will be modified inplace, but the
-    # user's array should not be altered.
-    p = np.array(x0, copy=True)
-
-    failures = np.ones_like(p, dtype=bool)
-    nz_der = np.ones_like(failures)
-    if fprime is not None:
-        # Newton-Raphson method
-        for iteration in range(maxiter):
-            # first evaluate fval
-            fval = np.asarray(func(p, *args))
-            # If all fval are 0, all roots have been found, then terminate
-            if not fval.any():
-                failures = fval.astype(bool)
-                break
-            fder = np.asarray(fprime(p, *args))
-            nz_der = (fder != 0)
-            # stop iterating if all derivatives are zero
-            if not nz_der.any():
-                break
-            # Newton step
-            dp = fval[nz_der] / fder[nz_der]
-            if fprime2 is not None:
-                fder2 = np.asarray(fprime2(p, *args))
-                dp = dp / (1.0 - 0.5 * dp * fder2[nz_der] / fder[nz_der])
-            # only update nonzero derivatives
-            p = np.asarray(p, dtype=np.result_type(p, dp, np.float64))
-            p[nz_der] -= dp
-            failures[nz_der] = np.abs(dp) >= tol  # items not yet converged
-            # stop iterating if there aren't any failures, not incl zero der
-            if not failures[nz_der].any():
-                break
-    else:
-        # Secant method
-        dx = np.finfo(float).eps**0.33
-        p1 = p * (1 + dx) + np.where(p >= 0, dx, -dx)
-        q0 = np.asarray(func(p, *args))
-        q1 = np.asarray(func(p1, *args))
-        active = np.ones_like(p, dtype=bool)
-        for iteration in range(maxiter):
-            nz_der = (q1 != q0)
-            # stop iterating if all derivatives are zero
-            if not nz_der.any():
-                p = (p1 + p) / 2.0
-                break
-            # Secant Step
-            dp = (q1 * (p1 - p))[nz_der] / (q1 - q0)[nz_der]
-            # only update nonzero derivatives
-            p = np.asarray(p, dtype=np.result_type(p, p1, dp, np.float64))
-            p[nz_der] = p1[nz_der] - dp
-            active_zero_der = ~nz_der & active
-            p[active_zero_der] = (p1 + p)[active_zero_der] / 2.0
-            active &= nz_der  # don't assign zero derivatives again
-            failures[nz_der] = np.abs(dp) >= tol  # not yet converged
-            # stop iterating if there aren't any failures, not incl zero der
-            if not failures[nz_der].any():
-                break
-            p1, p = p, p1
-            q0 = q1
-            q1 = np.asarray(func(p1, *args))
-
-    zero_der = ~nz_der & failures  # don't include converged with zero-ders
-    if zero_der.any():
-        # Secant warnings
-        if fprime is None:
-            nonzero_dp = (p1 != p)
-            # non-zero dp, but infinite newton step
-            zero_der_nz_dp = (zero_der & nonzero_dp)
-            if zero_der_nz_dp.any():
-                rms = np.sqrt(
-                    sum((p1[zero_der_nz_dp] - p[zero_der_nz_dp]) ** 2)
-                )
-                warnings.warn(f'RMS of {rms:g} reached', RuntimeWarning, stacklevel=3)
-        # Newton or Halley warnings
-        else:
-            all_or_some = 'all' if zero_der.all() else 'some'
-            msg = f'{all_or_some:s} derivatives were zero'
-            warnings.warn(msg, RuntimeWarning, stacklevel=3)
-    elif failures.any():
-        all_or_some = 'all' if failures.all() else 'some'
-        msg = f'{all_or_some:s} failed to converge after {maxiter:d} iterations'
-        if failures.all():
-            raise RuntimeError(msg)
-        warnings.warn(msg, RuntimeWarning, stacklevel=3)
-
-    if full_output:
-        result = namedtuple('result', ('root', 'converged', 'zero_der'))
-        p = result(p, ~failures, zero_der)
-
-    return p
-
-
-def bisect(f, a, b, args=(),
-           xtol=_xtol, rtol=_rtol, maxiter=_iter,
-           full_output=False, disp=True):
-    """
-    Find root of a function within an interval using bisection.
-
-    Basic bisection routine to find a root of the function `f` between the
-    arguments `a` and `b`. `f(a)` and `f(b)` cannot have the same signs.
-    Slow but sure.
-
-    Parameters
-    ----------
-    f : function
-        Python function returning a number.  `f` must be continuous, and
-        f(a) and f(b) must have opposite signs.
-    a : scalar
-        One end of the bracketing interval [a,b].
-    b : scalar
-        The other end of the bracketing interval [a,b].
-    xtol : number, optional
-        The computed root ``x0`` will satisfy ``np.allclose(x, x0,
-        atol=xtol, rtol=rtol)``, where ``x`` is the exact root. The
-        parameter must be positive.
-    rtol : number, optional
-        The computed root ``x0`` will satisfy ``np.allclose(x, x0,
-        atol=xtol, rtol=rtol)``, where ``x`` is the exact root. The
-        parameter cannot be smaller than its default value of
-        ``4*np.finfo(float).eps``.
-    maxiter : int, optional
-        If convergence is not achieved in `maxiter` iterations, an error is
-        raised. Must be >= 0.
-    args : tuple, optional
-        Containing extra arguments for the function `f`.
-        `f` is called by ``apply(f, (x)+args)``.
-    full_output : bool, optional
-        If `full_output` is False, the root is returned. If `full_output` is
-        True, the return value is ``(x, r)``, where x is the root, and r is
-        a `RootResults` object.
-    disp : bool, optional
-        If True, raise RuntimeError if the algorithm didn't converge.
-        Otherwise, the convergence status is recorded in a `RootResults`
-        return object.
-
-    Returns
-    -------
-    root : float
-        Root of `f` between `a` and `b`.
-    r : `RootResults` (present if ``full_output = True``)
-        Object containing information about the convergence. In particular,
-        ``r.converged`` is True if the routine converged.
-
-    Examples
-    --------
-
-    >>> def f(x):
-    ...     return (x**2 - 1)
-
-    >>> from scipy import optimize
-
-    >>> root = optimize.bisect(f, 0, 2)
-    >>> root
-    1.0
-
-    >>> root = optimize.bisect(f, -2, 0)
-    >>> root
-    -1.0
-
-    See Also
-    --------
-    brentq, brenth, bisect, newton
-    fixed_point : scalar fixed-point finder
-    fsolve : n-dimensional root-finding
-
-    """
-    if not isinstance(args, tuple):
-        args = (args,)
-    maxiter = operator.index(maxiter)
-    if xtol <= 0:
-        raise ValueError("xtol too small (%g <= 0)" % xtol)
-    if rtol < _rtol:
-        raise ValueError(f"rtol too small ({rtol:g} < {_rtol:g})")
-    f = _wrap_nan_raise(f)
-    r = _zeros._bisect(f, a, b, xtol, rtol, maxiter, args, full_output, disp)
-    return results_c(full_output, r, "bisect")
-
-
-def ridder(f, a, b, args=(),
-           xtol=_xtol, rtol=_rtol, maxiter=_iter,
-           full_output=False, disp=True):
-    """
-    Find a root of a function in an interval using Ridder's method.
-
-    Parameters
-    ----------
-    f : function
-        Python function returning a number. f must be continuous, and f(a) and
-        f(b) must have opposite signs.
-    a : scalar
-        One end of the bracketing interval [a,b].
-    b : scalar
-        The other end of the bracketing interval [a,b].
-    xtol : number, optional
-        The computed root ``x0`` will satisfy ``np.allclose(x, x0,
-        atol=xtol, rtol=rtol)``, where ``x`` is the exact root. The
-        parameter must be positive.
-    rtol : number, optional
-        The computed root ``x0`` will satisfy ``np.allclose(x, x0,
-        atol=xtol, rtol=rtol)``, where ``x`` is the exact root. The
-        parameter cannot be smaller than its default value of
-        ``4*np.finfo(float).eps``.
-    maxiter : int, optional
-        If convergence is not achieved in `maxiter` iterations, an error is
-        raised. Must be >= 0.
-    args : tuple, optional
-        Containing extra arguments for the function `f`.
-        `f` is called by ``apply(f, (x)+args)``.
-    full_output : bool, optional
-        If `full_output` is False, the root is returned. If `full_output` is
-        True, the return value is ``(x, r)``, where `x` is the root, and `r` is
-        a `RootResults` object.
-    disp : bool, optional
-        If True, raise RuntimeError if the algorithm didn't converge.
-        Otherwise, the convergence status is recorded in any `RootResults`
-        return object.
-
-    Returns
-    -------
-    root : float
-        Root of `f` between `a` and `b`.
-    r : `RootResults` (present if ``full_output = True``)
-        Object containing information about the convergence.
-        In particular, ``r.converged`` is True if the routine converged.
-
-    See Also
-    --------
-    brentq, brenth, bisect, newton : 1-D root-finding
-    fixed_point : scalar fixed-point finder
-
-    Notes
-    -----
-    Uses [Ridders1979]_ method to find a root of the function `f` between the
-    arguments `a` and `b`. Ridders' method is faster than bisection, but not
-    generally as fast as the Brent routines. [Ridders1979]_ provides the
-    classic description and source of the algorithm. A description can also be
-    found in any recent edition of Numerical Recipes.
-
-    The routine used here diverges slightly from standard presentations in
-    order to be a bit more careful of tolerance.
-
-    References
-    ----------
-    .. [Ridders1979]
-       Ridders, C. F. J. "A New Algorithm for Computing a
-       Single Root of a Real Continuous Function."
-       IEEE Trans. Circuits Systems 26, 979-980, 1979.
-
-    Examples
-    --------
-
-    >>> def f(x):
-    ...     return (x**2 - 1)
-
-    >>> from scipy import optimize
-
-    >>> root = optimize.ridder(f, 0, 2)
-    >>> root
-    1.0
-
-    >>> root = optimize.ridder(f, -2, 0)
-    >>> root
-    -1.0
-    """
-    if not isinstance(args, tuple):
-        args = (args,)
-    maxiter = operator.index(maxiter)
-    if xtol <= 0:
-        raise ValueError("xtol too small (%g <= 0)" % xtol)
-    if rtol < _rtol:
-        raise ValueError(f"rtol too small ({rtol:g} < {_rtol:g})")
-    f = _wrap_nan_raise(f)
-    r = _zeros._ridder(f, a, b, xtol, rtol, maxiter, args, full_output, disp)
-    return results_c(full_output, r, "ridder")
-
-
-def brentq(f, a, b, args=(),
-           xtol=_xtol, rtol=_rtol, maxiter=_iter,
-           full_output=False, disp=True):
-    """
-    Find a root of a function in a bracketing interval using Brent's method.
-
-    Uses the classic Brent's method to find a root of the function `f` on
-    the sign changing interval [a , b]. Generally considered the best of the
-    rootfinding routines here. It is a safe version of the secant method that
-    uses inverse quadratic extrapolation. Brent's method combines root
-    bracketing, interval bisection, and inverse quadratic interpolation. It is
-    sometimes known as the van Wijngaarden-Dekker-Brent method. Brent (1973)
-    claims convergence is guaranteed for functions computable within [a,b].
-
-    [Brent1973]_ provides the classic description of the algorithm. Another
-    description can be found in a recent edition of Numerical Recipes, including
-    [PressEtal1992]_. A third description is at
-    http://mathworld.wolfram.com/BrentsMethod.html. It should be easy to
-    understand the algorithm just by reading our code. Our code diverges a bit
-    from standard presentations: we choose a different formula for the
-    extrapolation step.
-
-    Parameters
-    ----------
-    f : function
-        Python function returning a number. The function :math:`f`
-        must be continuous, and :math:`f(a)` and :math:`f(b)` must
-        have opposite signs.
-    a : scalar
-        One end of the bracketing interval :math:`[a, b]`.
-    b : scalar
-        The other end of the bracketing interval :math:`[a, b]`.
-    xtol : number, optional
-        The computed root ``x0`` will satisfy ``np.allclose(x, x0,
-        atol=xtol, rtol=rtol)``, where ``x`` is the exact root. The
-        parameter must be positive. For nice functions, Brent's
-        method will often satisfy the above condition with ``xtol/2``
-        and ``rtol/2``. [Brent1973]_
-    rtol : number, optional
-        The computed root ``x0`` will satisfy ``np.allclose(x, x0,
-        atol=xtol, rtol=rtol)``, where ``x`` is the exact root. The
-        parameter cannot be smaller than its default value of
-        ``4*np.finfo(float).eps``. For nice functions, Brent's
-        method will often satisfy the above condition with ``xtol/2``
-        and ``rtol/2``. [Brent1973]_
-    maxiter : int, optional
-        If convergence is not achieved in `maxiter` iterations, an error is
-        raised. Must be >= 0.
-    args : tuple, optional
-        Containing extra arguments for the function `f`.
-        `f` is called by ``apply(f, (x)+args)``.
-    full_output : bool, optional
-        If `full_output` is False, the root is returned. If `full_output` is
-        True, the return value is ``(x, r)``, where `x` is the root, and `r` is
-        a `RootResults` object.
-    disp : bool, optional
-        If True, raise RuntimeError if the algorithm didn't converge.
-        Otherwise, the convergence status is recorded in any `RootResults`
-        return object.
-
-    Returns
-    -------
-    root : float
-        Root of `f` between `a` and `b`.
-    r : `RootResults` (present if ``full_output = True``)
-        Object containing information about the convergence. In particular,
-        ``r.converged`` is True if the routine converged.
-
-    Notes
-    -----
-    `f` must be continuous.  f(a) and f(b) must have opposite signs.
-
-    Related functions fall into several classes:
-
-    multivariate local optimizers
-      `fmin`, `fmin_powell`, `fmin_cg`, `fmin_bfgs`, `fmin_ncg`
-    nonlinear least squares minimizer
-      `leastsq`
-    constrained multivariate optimizers
-      `fmin_l_bfgs_b`, `fmin_tnc`, `fmin_cobyla`
-    global optimizers
-      `basinhopping`, `brute`, `differential_evolution`
-    local scalar minimizers
-      `fminbound`, `brent`, `golden`, `bracket`
-    N-D root-finding
-      `fsolve`
-    1-D root-finding
-      `brenth`, `ridder`, `bisect`, `newton`
-    scalar fixed-point finder
-      `fixed_point`
-
-    References
-    ----------
-    .. [Brent1973]
-       Brent, R. P.,
-       *Algorithms for Minimization Without Derivatives*.
-       Englewood Cliffs, NJ: Prentice-Hall, 1973. Ch. 3-4.
-
-    .. [PressEtal1992]
-       Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; and Vetterling, W. T.
-       *Numerical Recipes in FORTRAN: The Art of Scientific Computing*, 2nd ed.
-       Cambridge, England: Cambridge University Press, pp. 352-355, 1992.
-       Section 9.3:  "Van Wijngaarden-Dekker-Brent Method."
-
-    Examples
-    --------
-    >>> def f(x):
-    ...     return (x**2 - 1)
-
-    >>> from scipy import optimize
-
-    >>> root = optimize.brentq(f, -2, 0)
-    >>> root
-    -1.0
-
-    >>> root = optimize.brentq(f, 0, 2)
-    >>> root
-    1.0
-    """
-    if not isinstance(args, tuple):
-        args = (args,)
-    maxiter = operator.index(maxiter)
-    if xtol <= 0:
-        raise ValueError("xtol too small (%g <= 0)" % xtol)
-    if rtol < _rtol:
-        raise ValueError(f"rtol too small ({rtol:g} < {_rtol:g})")
-    f = _wrap_nan_raise(f)
-    r = _zeros._brentq(f, a, b, xtol, rtol, maxiter, args, full_output, disp)
-    return results_c(full_output, r, "brentq")
-
-
-def brenth(f, a, b, args=(),
-           xtol=_xtol, rtol=_rtol, maxiter=_iter,
-           full_output=False, disp=True):
-    """Find a root of a function in a bracketing interval using Brent's
-    method with hyperbolic extrapolation.
-
-    A variation on the classic Brent routine to find a root of the function f
-    between the arguments a and b that uses hyperbolic extrapolation instead of
-    inverse quadratic extrapolation. Bus & Dekker (1975) guarantee convergence
-    for this method, claiming that the upper bound of function evaluations here
-    is 4 or 5 times that of bisection.
-    f(a) and f(b) cannot have the same signs. Generally, on a par with the
-    brent routine, but not as heavily tested. It is a safe version of the
-    secant method that uses hyperbolic extrapolation.
-    The version here is by Chuck Harris, and implements Algorithm M of
-    [BusAndDekker1975]_, where further details (convergence properties,
-    additional remarks and such) can be found
-
-    Parameters
-    ----------
-    f : function
-        Python function returning a number. f must be continuous, and f(a) and
-        f(b) must have opposite signs.
-    a : scalar
-        One end of the bracketing interval [a,b].
-    b : scalar
-        The other end of the bracketing interval [a,b].
-    xtol : number, optional
-        The computed root ``x0`` will satisfy ``np.allclose(x, x0,
-        atol=xtol, rtol=rtol)``, where ``x`` is the exact root. The
-        parameter must be positive. As with `brentq`, for nice
-        functions the method will often satisfy the above condition
-        with ``xtol/2`` and ``rtol/2``.
-    rtol : number, optional
-        The computed root ``x0`` will satisfy ``np.allclose(x, x0,
-        atol=xtol, rtol=rtol)``, where ``x`` is the exact root. The
-        parameter cannot be smaller than its default value of
-        ``4*np.finfo(float).eps``. As with `brentq`, for nice functions
-        the method will often satisfy the above condition with
-        ``xtol/2`` and ``rtol/2``.
-    maxiter : int, optional
-        If convergence is not achieved in `maxiter` iterations, an error is
-        raised. Must be >= 0.
-    args : tuple, optional
-        Containing extra arguments for the function `f`.
-        `f` is called by ``apply(f, (x)+args)``.
-    full_output : bool, optional
-        If `full_output` is False, the root is returned. If `full_output` is
-        True, the return value is ``(x, r)``, where `x` is the root, and `r` is
-        a `RootResults` object.
-    disp : bool, optional
-        If True, raise RuntimeError if the algorithm didn't converge.
-        Otherwise, the convergence status is recorded in any `RootResults`
-        return object.
-
-    Returns
-    -------
-    root : float
-        Root of `f` between `a` and `b`.
-    r : `RootResults` (present if ``full_output = True``)
-        Object containing information about the convergence. In particular,
-        ``r.converged`` is True if the routine converged.
-
-    See Also
-    --------
-    fmin, fmin_powell, fmin_cg, fmin_bfgs, fmin_ncg : multivariate local optimizers
-    leastsq : nonlinear least squares minimizer
-    fmin_l_bfgs_b, fmin_tnc, fmin_cobyla : constrained multivariate optimizers
-    basinhopping, differential_evolution, brute : global optimizers
-    fminbound, brent, golden, bracket : local scalar minimizers
-    fsolve : N-D root-finding
-    brentq, brenth, ridder, bisect, newton : 1-D root-finding
-    fixed_point : scalar fixed-point finder
-
-    References
-    ----------
-    .. [BusAndDekker1975]
-       Bus, J. C. P., Dekker, T. J.,
-       "Two Efficient Algorithms with Guaranteed Convergence for Finding a Zero
-       of a Function", ACM Transactions on Mathematical Software, Vol. 1, Issue
-       4, Dec. 1975, pp. 330-345. Section 3: "Algorithm M".
-       :doi:`10.1145/355656.355659`
-
-    Examples
-    --------
-    >>> def f(x):
-    ...     return (x**2 - 1)
-
-    >>> from scipy import optimize
-
-    >>> root = optimize.brenth(f, -2, 0)
-    >>> root
-    -1.0
-
-    >>> root = optimize.brenth(f, 0, 2)
-    >>> root
-    1.0
-
-    """
-    if not isinstance(args, tuple):
-        args = (args,)
-    maxiter = operator.index(maxiter)
-    if xtol <= 0:
-        raise ValueError("xtol too small (%g <= 0)" % xtol)
-    if rtol < _rtol:
-        raise ValueError(f"rtol too small ({rtol:g} < {_rtol:g})")
-    f = _wrap_nan_raise(f)
-    r = _zeros._brenth(f, a, b, xtol, rtol, maxiter, args, full_output, disp)
-    return results_c(full_output, r, "brenth")
-
-
-################################
-# TOMS "Algorithm 748: Enclosing Zeros of Continuous Functions", by
-#  Alefeld, G. E. and Potra, F. A. and Shi, Yixun,
-#  See [1]
-
-
-def _notclose(fs, rtol=_rtol, atol=_xtol):
-    # Ensure not None, not 0, all finite, and not very close to each other
-    notclosefvals = (
-            all(fs) and all(np.isfinite(fs)) and
-            not any(any(np.isclose(_f, fs[i + 1:], rtol=rtol, atol=atol))
-                    for i, _f in enumerate(fs[:-1])))
-    return notclosefvals
-
-
-def _secant(xvals, fvals):
-    """Perform a secant step, taking a little care"""
-    # Secant has many "mathematically" equivalent formulations
-    # x2 = x0 - (x1 - x0)/(f1 - f0) * f0
-    #    = x1 - (x1 - x0)/(f1 - f0) * f1
-    #    = (-x1 * f0 + x0 * f1) / (f1 - f0)
-    #    = (-f0 / f1 * x1 + x0) / (1 - f0 / f1)
-    #    = (-f1 / f0 * x0 + x1) / (1 - f1 / f0)
-    x0, x1 = xvals[:2]
-    f0, f1 = fvals[:2]
-    if f0 == f1:
-        return np.nan
-    if np.abs(f1) > np.abs(f0):
-        x2 = (-f0 / f1 * x1 + x0) / (1 - f0 / f1)
-    else:
-        x2 = (-f1 / f0 * x0 + x1) / (1 - f1 / f0)
-    return x2
-
-
-def _update_bracket(ab, fab, c, fc):
-    """Update a bracket given (c, fc), return the discarded endpoints."""
-    fa, fb = fab
-    idx = (0 if np.sign(fa) * np.sign(fc) > 0 else 1)
-    rx, rfx = ab[idx], fab[idx]
-    fab[idx] = fc
-    ab[idx] = c
-    return rx, rfx
-
-
-def _compute_divided_differences(xvals, fvals, N=None, full=True,
-                                 forward=True):
-    """Return a matrix of divided differences for the xvals, fvals pairs
-
-    DD[i, j] = f[x_{i-j}, ..., x_i] for 0 <= j <= i
-
-    If full is False, just return the main diagonal(or last row):
-      f[a], f[a, b] and f[a, b, c].
-    If forward is False, return f[c], f[b, c], f[a, b, c]."""
-    if full:
-        if forward:
-            xvals = np.asarray(xvals)
-        else:
-            xvals = np.array(xvals)[::-1]
-        M = len(xvals)
-        N = M if N is None else min(N, M)
-        DD = np.zeros([M, N])
-        DD[:, 0] = fvals[:]
-        for i in range(1, N):
-            DD[i:, i] = (np.diff(DD[i - 1:, i - 1]) /
-                         (xvals[i:] - xvals[:M - i]))
-        return DD
-
-    xvals = np.asarray(xvals)
-    dd = np.array(fvals)
-    row = np.array(fvals)
-    idx2Use = (0 if forward else -1)
-    dd[0] = fvals[idx2Use]
-    for i in range(1, len(xvals)):
-        denom = xvals[i:i + len(row) - 1] - xvals[:len(row) - 1]
-        row = np.diff(row)[:] / denom
-        dd[i] = row[idx2Use]
-    return dd
-
-
-def _interpolated_poly(xvals, fvals, x):
-    """Compute p(x) for the polynomial passing through the specified locations.
-
-    Use Neville's algorithm to compute p(x) where p is the minimal degree
-    polynomial passing through the points xvals, fvals"""
-    xvals = np.asarray(xvals)
-    N = len(xvals)
-    Q = np.zeros([N, N])
-    D = np.zeros([N, N])
-    Q[:, 0] = fvals[:]
-    D[:, 0] = fvals[:]
-    for k in range(1, N):
-        alpha = D[k:, k - 1] - Q[k - 1:N - 1, k - 1]
-        diffik = xvals[0:N - k] - xvals[k:N]
-        Q[k:, k] = (xvals[k:] - x) / diffik * alpha
-        D[k:, k] = (xvals[:N - k] - x) / diffik * alpha
-    # Expect Q[-1, 1:] to be small relative to Q[-1, 0] as x approaches a root
-    return np.sum(Q[-1, 1:]) + Q[-1, 0]
-
-
-def _inverse_poly_zero(a, b, c, d, fa, fb, fc, fd):
-    """Inverse cubic interpolation f-values -> x-values
-
-    Given four points (fa, a), (fb, b), (fc, c), (fd, d) with
-    fa, fb, fc, fd all distinct, find poly IP(y) through the 4 points
-    and compute x=IP(0).
-    """
-    return _interpolated_poly([fa, fb, fc, fd], [a, b, c, d], 0)
-
-
-def _newton_quadratic(ab, fab, d, fd, k):
-    """Apply Newton-Raphson like steps, using divided differences to approximate f'
-
-    ab is a real interval [a, b] containing a root,
-    fab holds the real values of f(a), f(b)
-    d is a real number outside [ab, b]
-    k is the number of steps to apply
-    """
-    a, b = ab
-    fa, fb = fab
-    _, B, A = _compute_divided_differences([a, b, d], [fa, fb, fd],
-                                           forward=True, full=False)
-
-    # _P  is the quadratic polynomial through the 3 points
-    def _P(x):
-        # Horner evaluation of fa + B * (x - a) + A * (x - a) * (x - b)
-        return (A * (x - b) + B) * (x - a) + fa
-
-    if A == 0:
-        r = a - fa / B
-    else:
-        r = (a if np.sign(A) * np.sign(fa) > 0 else b)
-        # Apply k Newton-Raphson steps to _P(x), starting from x=r
-        for i in range(k):
-            r1 = r - _P(r) / (B + A * (2 * r - a - b))
-            if not (ab[0] < r1 < ab[1]):
-                if (ab[0] < r < ab[1]):
-                    return r
-                r = sum(ab) / 2.0
-                break
-            r = r1
-
-    return r
-
-
-class TOMS748Solver:
-    """Solve f(x, *args) == 0 using Algorithm748 of Alefeld, Potro & Shi.
-    """
-    _MU = 0.5
-    _K_MIN = 1
-    _K_MAX = 100  # A very high value for real usage. Expect 1, 2, maybe 3.
-
-    def __init__(self):
-        self.f = None
-        self.args = None
-        self.function_calls = 0
-        self.iterations = 0
-        self.k = 2
-        # ab=[a,b] is a global interval containing a root
-        self.ab = [np.nan, np.nan]
-        # fab is function values at a, b
-        self.fab = [np.nan, np.nan]
-        self.d = None
-        self.fd = None
-        self.e = None
-        self.fe = None
-        self.disp = False
-        self.xtol = _xtol
-        self.rtol = _rtol
-        self.maxiter = _iter
-
-    def configure(self, xtol, rtol, maxiter, disp, k):
-        self.disp = disp
-        self.xtol = xtol
-        self.rtol = rtol
-        self.maxiter = maxiter
-        # Silently replace a low value of k with 1
-        self.k = max(k, self._K_MIN)
-        # Noisily replace a high value of k with self._K_MAX
-        if self.k > self._K_MAX:
-            msg = "toms748: Overriding k: ->%d" % self._K_MAX
-            warnings.warn(msg, RuntimeWarning, stacklevel=3)
-            self.k = self._K_MAX
-
-    def _callf(self, x, error=True):
-        """Call the user-supplied function, update book-keeping"""
-        fx = self.f(x, *self.args)
-        self.function_calls += 1
-        if not np.isfinite(fx) and error:
-            raise ValueError(f"Invalid function value: f({x:f}) -> {fx} ")
-        return fx
-
-    def get_result(self, x, flag=_ECONVERGED):
-        r"""Package the result and statistics into a tuple."""
-        return (x, self.function_calls, self.iterations, flag)
-
-    def _update_bracket(self, c, fc):
-        return _update_bracket(self.ab, self.fab, c, fc)
-
-    def start(self, f, a, b, args=()):
-        r"""Prepare for the iterations."""
-        self.function_calls = 0
-        self.iterations = 0
-
-        self.f = f
-        self.args = args
-        self.ab[:] = [a, b]
-        if not np.isfinite(a) or np.imag(a) != 0:
-            raise ValueError("Invalid x value: %s " % (a))
-        if not np.isfinite(b) or np.imag(b) != 0:
-            raise ValueError("Invalid x value: %s " % (b))
-
-        fa = self._callf(a)
-        if not np.isfinite(fa) or np.imag(fa) != 0:
-            raise ValueError(f"Invalid function value: f({a:f}) -> {fa} ")
-        if fa == 0:
-            return _ECONVERGED, a
-        fb = self._callf(b)
-        if not np.isfinite(fb) or np.imag(fb) != 0:
-            raise ValueError(f"Invalid function value: f({b:f}) -> {fb} ")
-        if fb == 0:
-            return _ECONVERGED, b
-
-        if np.sign(fb) * np.sign(fa) > 0:
-            raise ValueError("f(a) and f(b) must have different signs, but "
-                             f"f({a:e})={fa:e}, f({b:e})={fb:e} ")
-        self.fab[:] = [fa, fb]
-
-        return _EINPROGRESS, sum(self.ab) / 2.0
-
-    def get_status(self):
-        """Determine the current status."""
-        a, b = self.ab[:2]
-        if np.isclose(a, b, rtol=self.rtol, atol=self.xtol):
-            return _ECONVERGED, sum(self.ab) / 2.0
-        if self.iterations >= self.maxiter:
-            return _ECONVERR, sum(self.ab) / 2.0
-        return _EINPROGRESS, sum(self.ab) / 2.0
-
-    def iterate(self):
-        """Perform one step in the algorithm.
-
-        Implements Algorithm 4.1(k=1) or 4.2(k=2) in [APS1995]
-        """
-        self.iterations += 1
-        eps = np.finfo(float).eps
-        d, fd, e, fe = self.d, self.fd, self.e, self.fe
-        ab_width = self.ab[1] - self.ab[0]  # Need the start width below
-        c = None
-
-        for nsteps in range(2, self.k+2):
-            # If the f-values are sufficiently separated, perform an inverse
-            # polynomial interpolation step. Otherwise, nsteps repeats of
-            # an approximate Newton-Raphson step.
-            if _notclose(self.fab + [fd, fe], rtol=0, atol=32*eps):
-                c0 = _inverse_poly_zero(self.ab[0], self.ab[1], d, e,
-                                        self.fab[0], self.fab[1], fd, fe)
-                if self.ab[0] < c0 < self.ab[1]:
-                    c = c0
-            if c is None:
-                c = _newton_quadratic(self.ab, self.fab, d, fd, nsteps)
-
-            fc = self._callf(c)
-            if fc == 0:
-                return _ECONVERGED, c
-
-            # re-bracket
-            e, fe = d, fd
-            d, fd = self._update_bracket(c, fc)
-
-        # u is the endpoint with the smallest f-value
-        uix = (0 if np.abs(self.fab[0]) < np.abs(self.fab[1]) else 1)
-        u, fu = self.ab[uix], self.fab[uix]
-
-        _, A = _compute_divided_differences(self.ab, self.fab,
-                                            forward=(uix == 0), full=False)
-        c = u - 2 * fu / A
-        if np.abs(c - u) > 0.5 * (self.ab[1] - self.ab[0]):
-            c = sum(self.ab) / 2.0
-        else:
-            if np.isclose(c, u, rtol=eps, atol=0):
-                # c didn't change (much).
-                # Either because the f-values at the endpoints have vastly
-                # differing magnitudes, or because the root is very close to
-                # that endpoint
-                frs = np.frexp(self.fab)[1]
-                if frs[uix] < frs[1 - uix] - 50:  # Differ by more than 2**50
-                    c = (31 * self.ab[uix] + self.ab[1 - uix]) / 32
-                else:
-                    # Make a bigger adjustment, about the
-                    # size of the requested tolerance.
-                    mm = (1 if uix == 0 else -1)
-                    adj = mm * np.abs(c) * self.rtol + mm * self.xtol
-                    c = u + adj
-                if not self.ab[0] < c < self.ab[1]:
-                    c = sum(self.ab) / 2.0
-
-        fc = self._callf(c)
-        if fc == 0:
-            return _ECONVERGED, c
-
-        e, fe = d, fd
-        d, fd = self._update_bracket(c, fc)
-
-        # If the width of the new interval did not decrease enough, bisect
-        if self.ab[1] - self.ab[0] > self._MU * ab_width:
-            e, fe = d, fd
-            z = sum(self.ab) / 2.0
-            fz = self._callf(z)
-            if fz == 0:
-                return _ECONVERGED, z
-            d, fd = self._update_bracket(z, fz)
-
-        # Record d and e for next iteration
-        self.d, self.fd = d, fd
-        self.e, self.fe = e, fe
-
-        status, xn = self.get_status()
-        return status, xn
-
-    def solve(self, f, a, b, args=(),
-              xtol=_xtol, rtol=_rtol, k=2, maxiter=_iter, disp=True):
-        r"""Solve f(x) = 0 given an interval containing a root."""
-        self.configure(xtol=xtol, rtol=rtol, maxiter=maxiter, disp=disp, k=k)
-        status, xn = self.start(f, a, b, args)
-        if status == _ECONVERGED:
-            return self.get_result(xn)
-
-        # The first step only has two x-values.
-        c = _secant(self.ab, self.fab)
-        if not self.ab[0] < c < self.ab[1]:
-            c = sum(self.ab) / 2.0
-        fc = self._callf(c)
-        if fc == 0:
-            return self.get_result(c)
-
-        self.d, self.fd = self._update_bracket(c, fc)
-        self.e, self.fe = None, None
-        self.iterations += 1
-
-        while True:
-            status, xn = self.iterate()
-            if status == _ECONVERGED:
-                return self.get_result(xn)
-            if status == _ECONVERR:
-                fmt = "Failed to converge after %d iterations, bracket is %s"
-                if disp:
-                    msg = fmt % (self.iterations + 1, self.ab)
-                    raise RuntimeError(msg)
-                return self.get_result(xn, _ECONVERR)
-
-
-def toms748(f, a, b, args=(), k=1,
-            xtol=_xtol, rtol=_rtol, maxiter=_iter,
-            full_output=False, disp=True):
-    """
-    Find a root using TOMS Algorithm 748 method.
-
-    Implements the Algorithm 748 method of Alefeld, Potro and Shi to find a
-    root of the function `f` on the interval `[a , b]`, where `f(a)` and
-    `f(b)` must have opposite signs.
-
-    It uses a mixture of inverse cubic interpolation and
-    "Newton-quadratic" steps. [APS1995].
-
-    Parameters
-    ----------
-    f : function
-        Python function returning a scalar. The function :math:`f`
-        must be continuous, and :math:`f(a)` and :math:`f(b)`
-        have opposite signs.
-    a : scalar,
-        lower boundary of the search interval
-    b : scalar,
-        upper boundary of the search interval
-    args : tuple, optional
-        containing extra arguments for the function `f`.
-        `f` is called by ``f(x, *args)``.
-    k : int, optional
-        The number of Newton quadratic steps to perform each
-        iteration. ``k>=1``.
-    xtol : scalar, optional
-        The computed root ``x0`` will satisfy ``np.allclose(x, x0,
-        atol=xtol, rtol=rtol)``, where ``x`` is the exact root. The
-        parameter must be positive.
-    rtol : scalar, optional
-        The computed root ``x0`` will satisfy ``np.allclose(x, x0,
-        atol=xtol, rtol=rtol)``, where ``x`` is the exact root.
-    maxiter : int, optional
-        If convergence is not achieved in `maxiter` iterations, an error is
-        raised. Must be >= 0.
-    full_output : bool, optional
-        If `full_output` is False, the root is returned. If `full_output` is
-        True, the return value is ``(x, r)``, where `x` is the root, and `r` is
-        a `RootResults` object.
-    disp : bool, optional
-        If True, raise RuntimeError if the algorithm didn't converge.
-        Otherwise, the convergence status is recorded in the `RootResults`
-        return object.
-
-    Returns
-    -------
-    root : float
-        Approximate root of `f`
-    r : `RootResults` (present if ``full_output = True``)
-        Object containing information about the convergence. In particular,
-        ``r.converged`` is True if the routine converged.
-
-    See Also
-    --------
-    brentq, brenth, ridder, bisect, newton
-    fsolve : find roots in N dimensions.
-
-    Notes
-    -----
-    `f` must be continuous.
-    Algorithm 748 with ``k=2`` is asymptotically the most efficient
-    algorithm known for finding roots of a four times continuously
-    differentiable function.
-    In contrast with Brent's algorithm, which may only decrease the length of
-    the enclosing bracket on the last step, Algorithm 748 decreases it each
-    iteration with the same asymptotic efficiency as it finds the root.
-
-    For easy statement of efficiency indices, assume that `f` has 4
-    continuouous deriviatives.
-    For ``k=1``, the convergence order is at least 2.7, and with about
-    asymptotically 2 function evaluations per iteration, the efficiency
-    index is approximately 1.65.
-    For ``k=2``, the order is about 4.6 with asymptotically 3 function
-    evaluations per iteration, and the efficiency index 1.66.
-    For higher values of `k`, the efficiency index approaches
-    the kth root of ``(3k-2)``, hence ``k=1`` or ``k=2`` are
-    usually appropriate.
-
-    References
-    ----------
-    .. [APS1995]
-       Alefeld, G. E. and Potra, F. A. and Shi, Yixun,
-       *Algorithm 748: Enclosing Zeros of Continuous Functions*,
-       ACM Trans. Math. Softw. Volume 221(1995)
-       doi = {10.1145/210089.210111}
-
-    Examples
-    --------
-    >>> def f(x):
-    ...     return (x**3 - 1)  # only one real root at x = 1
-
-    >>> from scipy import optimize
-    >>> root, results = optimize.toms748(f, 0, 2, full_output=True)
-    >>> root
-    1.0
-    >>> results
-          converged: True
-               flag: converged
-     function_calls: 11
-         iterations: 5
-               root: 1.0
-             method: toms748
-    """
-    if xtol <= 0:
-        raise ValueError("xtol too small (%g <= 0)" % xtol)
-    if rtol < _rtol / 4:
-        raise ValueError(f"rtol too small ({rtol:g} < {_rtol/4:g})")
-    maxiter = operator.index(maxiter)
-    if maxiter < 1:
-        raise ValueError("maxiter must be greater than 0")
-    if not np.isfinite(a):
-        raise ValueError("a is not finite %s" % a)
-    if not np.isfinite(b):
-        raise ValueError("b is not finite %s" % b)
-    if a >= b:
-        raise ValueError(f"a and b are not an interval [{a}, {b}]")
-    if not k >= 1:
-        raise ValueError("k too small (%s < 1)" % k)
-
-    if not isinstance(args, tuple):
-        args = (args,)
-    f = _wrap_nan_raise(f)
-    solver = TOMS748Solver()
-    result = solver.solve(f, a, b, args=args, k=k, xtol=xtol, rtol=rtol,
-                          maxiter=maxiter, disp=disp)
-    x, function_calls, iterations, flag = result
-    return _results_select(full_output, (x, function_calls, iterations, flag),
-                           "toms748")
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cobyla.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cobyla.py
deleted file mode 100644
index 87d111d8fc1634e54d3766a3f1c58abd37ac58cb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cobyla.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'OptimizeResult',
-    'fmin_cobyla',
-]
-
-def __dir__():
-    return __all__
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="cobyla",
-                                   private_modules=["_cobyla_py"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize.pxd
deleted file mode 100644
index d35f8da68b34d3a587f3a99326770d8550a2135c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize.pxd
+++ /dev/null
@@ -1,11 +0,0 @@
-# Public Cython API declarations
-#
-# See doc/source/dev/contributor/public_cython_api.rst for guidelines
-
-
-# The following cimport statement provides legacy ABI
-# support. Changing it causes an ABI forward-compatibility break
-# (gh-11793), so we currently leave it as is (no further cimport
-# statements should be used in this file).
-from scipy.optimize.cython_optimize._zeros cimport (
-    brentq, brenth, ridder, bisect, zeros_full_output)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/__init__.py
deleted file mode 100644
index a07250bbeb06542721480c42005307992558fced..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/__init__.py
+++ /dev/null
@@ -1,133 +0,0 @@
-"""
-Cython optimize root finding API
-================================
-The underlying C functions for the following root finders can be accessed
-directly using Cython:
-
-- `~scipy.optimize.bisect`
-- `~scipy.optimize.ridder`
-- `~scipy.optimize.brenth`
-- `~scipy.optimize.brentq`
-
-The Cython API for the root finding functions is similar except there is no
-``disp`` argument. Import the root finding functions using ``cimport`` from
-`scipy.optimize.cython_optimize`. ::
-
-    from scipy.optimize.cython_optimize cimport bisect, ridder, brentq, brenth
-
-
-Callback signature
-------------------
-The zeros functions in `~scipy.optimize.cython_optimize` expect a callback that
-takes a double for the scalar independent variable as the 1st argument and a
-user defined ``struct`` with any extra parameters as the 2nd argument. ::
-
-    double (*callback_type)(double, void*) noexcept
-
-
-Examples
---------
-Usage of `~scipy.optimize.cython_optimize` requires Cython to write callbacks
-that are compiled into C. For more information on compiling Cython, see the
-`Cython Documentation `_.
-
-These are the basic steps:
-
-1. Create a Cython ``.pyx`` file, for example: ``myexample.pyx``.
-2. Import the desired root finder from `~scipy.optimize.cython_optimize`.
-3. Write the callback function, and call the selected root finding function
-   passing the callback, any extra arguments, and the other solver
-   parameters. ::
-
-       from scipy.optimize.cython_optimize cimport brentq
-
-       # import math from Cython
-       from libc cimport math
-
-       myargs = {'C0': 1.0, 'C1': 0.7}  # a dictionary of extra arguments
-       XLO, XHI = 0.5, 1.0  # lower and upper search boundaries
-       XTOL, RTOL, MITR = 1e-3, 1e-3, 10  # other solver parameters
-
-       # user-defined struct for extra parameters
-       ctypedef struct test_params:
-           double C0
-           double C1
-
-
-       # user-defined callback
-       cdef double f(double x, void *args) noexcept:
-           cdef test_params *myargs =  args
-           return myargs.C0 - math.exp(-(x - myargs.C1))
-
-
-       # Cython wrapper function
-       cdef double brentq_wrapper_example(dict args, double xa, double xb,
-                                          double xtol, double rtol, int mitr):
-           # Cython automatically casts dictionary to struct
-           cdef test_params myargs = args
-           return brentq(
-               f, xa, xb,  &myargs, xtol, rtol, mitr, NULL)
-
-
-       # Python function
-       def brentq_example(args=myargs, xa=XLO, xb=XHI, xtol=XTOL, rtol=RTOL,
-                          mitr=MITR):
-           '''Calls Cython wrapper from Python.'''
-           return brentq_wrapper_example(args, xa, xb, xtol, rtol, mitr)
-
-4. If you want to call your function from Python, create a Cython wrapper, and
-   a Python function that calls the wrapper, or use ``cpdef``. Then, in Python,
-   you can import and run the example. ::
-
-       from myexample import brentq_example
-
-       x = brentq_example()
-       # 0.6999942848231314
-
-5. Create a Cython ``.pxd`` file if you need to export any Cython functions.
-
-
-Full output
------------
-The  functions in `~scipy.optimize.cython_optimize` can also copy the full
-output from the solver to a C ``struct`` that is passed as its last argument.
-If you don't want the full output, just pass ``NULL``. The full output
-``struct`` must be type ``zeros_full_output``, which is defined in
-`scipy.optimize.cython_optimize` with the following fields:
-
-- ``int funcalls``: number of function calls
-- ``int iterations``: number of iterations
-- ``int error_num``: error number
-- ``double root``: root of function
-
-The root is copied by `~scipy.optimize.cython_optimize` to the full output
-``struct``. An error number of -1 means a sign error, -2 means a convergence
-error, and 0 means the solver converged. Continuing from the previous example::
-
-    from scipy.optimize.cython_optimize cimport zeros_full_output
-
-
-    # cython brentq solver with full output
-    cdef zeros_full_output brentq_full_output_wrapper_example(
-            dict args, double xa, double xb, double xtol, double rtol,
-            int mitr):
-        cdef test_params myargs = args
-        cdef zeros_full_output my_full_output
-        # use my_full_output instead of NULL
-        brentq(f, xa, xb, &myargs, xtol, rtol, mitr, &my_full_output)
-        return my_full_output
-
-
-    # Python function
-    def brent_full_output_example(args=myargs, xa=XLO, xb=XHI, xtol=XTOL,
-                                  rtol=RTOL, mitr=MITR):
-        '''Returns full output'''
-        return brentq_full_output_wrapper_example(args, xa, xb, xtol, rtol,
-                                                  mitr)
-
-    result = brent_full_output_example()
-    # {'error_num': 0,
-    #  'funcalls': 6,
-    #  'iterations': 5,
-    #  'root': 0.6999942848231314}
-"""
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 0451d4b244039137df49b9bc1ab7fe134d3707a4..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/_zeros.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/_zeros.pxd
deleted file mode 100644
index d3c9e98f0a24d80d15d1f7052f690d608f66dd80..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/_zeros.pxd
+++ /dev/null
@@ -1,33 +0,0 @@
-# Legacy public Cython API declarations
-#
-# NOTE: due to the way Cython ABI compatibility works, **no changes
-# should be made to this file** --- any API additions/changes should be
-# done in `cython_optimize.pxd` (see gh-11793).
-
-ctypedef double (*callback_type)(double, void*) noexcept
-
-ctypedef struct zeros_parameters:
-    callback_type function
-    void* args
-
-ctypedef struct zeros_full_output:
-    int funcalls
-    int iterations
-    int error_num
-    double root
-
-cdef double bisect(callback_type f, double xa, double xb, void* args,
-                   double xtol, double rtol, int iter,
-                   zeros_full_output *full_output) noexcept nogil
-
-cdef double ridder(callback_type f, double xa, double xb, void* args,
-                   double xtol, double rtol, int iter,
-                   zeros_full_output *full_output) noexcept nogil
-
-cdef double brenth(callback_type f, double xa, double xb, void* args,
-                   double xtol, double rtol, int iter,
-                   zeros_full_output *full_output) noexcept nogil
-
-cdef double brentq(callback_type f, double xa, double xb, void* args,
-                   double xtol, double rtol, int iter,
-                   zeros_full_output *full_output) noexcept nogil
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/c_zeros.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/c_zeros.pxd
deleted file mode 100644
index 0d83c80eb886846ddbbd6927e37e05812911f856..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/cython_optimize/c_zeros.pxd
+++ /dev/null
@@ -1,26 +0,0 @@
-cdef extern from "../Zeros/zeros.h":
-    ctypedef double (*callback_type)(double, void*) noexcept
-    ctypedef struct scipy_zeros_info:
-        int funcalls
-        int iterations
-        int error_num
-
-cdef extern from "../Zeros/bisect.c" nogil:
-    double bisect(callback_type f, double xa, double xb, double xtol,
-                  double rtol, int iter, void *func_data_param,
-                  scipy_zeros_info *solver_stats)
-
-cdef extern from "../Zeros/ridder.c" nogil:
-    double ridder(callback_type f, double xa, double xb, double xtol,
-                  double rtol, int iter, void *func_data_param,
-                  scipy_zeros_info *solver_stats)
-
-cdef extern from "../Zeros/brenth.c" nogil:
-    double brenth(callback_type f, double xa, double xb, double xtol,
-                  double rtol, int iter, void *func_data_param,
-                  scipy_zeros_info *solver_stats)
-
-cdef extern from "../Zeros/brentq.c" nogil:
-    double brentq(callback_type f, double xa, double xb, double xtol,
-                  double rtol, int iter, void *func_data_param,
-                  scipy_zeros_info *solver_stats)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/lbfgsb.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/lbfgsb.py
deleted file mode 100644
index 866407cabb3decf0ff72239e6fd372f69f7550c0..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/lbfgsb.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'LbfgsInvHessProduct',
-    'OptimizeResult',
-    'fmin_l_bfgs_b',
-    'zeros',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="lbfgsb",
-                                   private_modules=["_lbfgsb_py"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/linesearch.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/linesearch.py
deleted file mode 100644
index cb34b25092da34991c868683da3d6a894d1a7f80..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/linesearch.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = ["line_search"]  # noqa: F822
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="linesearch",
-                                   private_modules=["_linesearch"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/minpack.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/minpack.py
deleted file mode 100644
index 29fddef537361d8508e6343d23b2c3c7d6d12ec6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/minpack.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'OptimizeResult',
-    'OptimizeWarning',
-    'curve_fit',
-    'fixed_point',
-    'fsolve',
-    'least_squares',
-    'leastsq',
-    'zeros',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="minpack",
-                                   private_modules=["_minpack_py"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/minpack2.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/minpack2.py
deleted file mode 100644
index cdb3503e0e1e4c886c89bfb62e6a2efc3ba54549..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/minpack2.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__: list[str] = []
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="minpack2",
-                                   private_modules=["_minpack2"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/moduleTNC.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/moduleTNC.py
deleted file mode 100644
index 3fc5884ed5c39437b7681395419d641443a1fdb8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/moduleTNC.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = []
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="moduleTNC",
-                                   private_modules=["_moduleTNC"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/nonlin.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/nonlin.py
deleted file mode 100644
index 20b490b40ef790a2943d539790b45fc378df2c76..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/nonlin.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'BroydenFirst',
-    'InverseJacobian',
-    'KrylovJacobian',
-    'anderson',
-    'broyden1',
-    'broyden2',
-    'diagbroyden',
-    'excitingmixing',
-    'linearmixing',
-    'newton_krylov',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="nonlin",
-                                   private_modules=["_nonlin"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/optimize.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/optimize.py
deleted file mode 100644
index 4db770e5f6e921906c916f2650003d92f5507791..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/optimize.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'OptimizeResult',
-    'OptimizeWarning',
-    'approx_fprime',
-    'bracket',
-    'brent',
-    'brute',
-    'check_grad',
-    'fmin',
-    'fmin_bfgs',
-    'fmin_cg',
-    'fmin_ncg',
-    'fmin_powell',
-    'fminbound',
-    'golden',
-    'line_search',
-    'rosen',
-    'rosen_der',
-    'rosen_hess',
-    'rosen_hess_prod',
-    'show_options',
-    'zeros',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="optimize",
-                                   private_modules=["_optimize"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/slsqp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/slsqp.py
deleted file mode 100644
index c2b77d2eb447527cd91e92907e06ad53dd1ad3d8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/slsqp.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'OptimizeResult',
-    'fmin_slsqp',
-    'slsqp',
-    'zeros',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="slsqp",
-                                   private_modules=["_slsqp_py"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index db60b89b70ac0048b6945b6ee69f80fe58af461a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__basinhopping.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__basinhopping.cpython-310.pyc
deleted file mode 100644
index db8fe4eef133bb28c8fa981461fa12230049c76c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__basinhopping.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__differential_evolution.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__differential_evolution.cpython-310.pyc
deleted file mode 100644
index 144125afadceb39d3d7d4b68ec1b083674c9dd1b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__differential_evolution.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__dual_annealing.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__dual_annealing.cpython-310.pyc
deleted file mode 100644
index a8681bfdb2b5a5e6a2757053020cf511f54d42e6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__dual_annealing.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__linprog_clean_inputs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__linprog_clean_inputs.cpython-310.pyc
deleted file mode 100644
index ba7ac446051be93d49d0b77398c5c70fd9b25502..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__linprog_clean_inputs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__numdiff.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__numdiff.cpython-310.pyc
deleted file mode 100644
index 9a5ec63f010e9db4cd9e920c4adc4bea80c15cf0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__numdiff.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__remove_redundancy.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__remove_redundancy.cpython-310.pyc
deleted file mode 100644
index 12d7a5380f2d22618b9b79cd2bff47aebd2df815..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__remove_redundancy.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__root.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__root.cpython-310.pyc
deleted file mode 100644
index a96fe0a3d39aa0e7286cf55ff10b07a2b761aefc..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__root.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__shgo.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__shgo.cpython-310.pyc
deleted file mode 100644
index f21a2551b80d3463e2a267518666dd2f73b20438..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__shgo.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__spectral.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__spectral.cpython-310.pyc
deleted file mode 100644
index 7b31b06bd6366ad925f3fb8fbb9741f0b2ffd297..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test__spectral.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_bracket.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_bracket.cpython-310.pyc
deleted file mode 100644
index 0337b4b57329ca6edcd9ca527c52d4e432cd8ae9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_bracket.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_chandrupatla.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_chandrupatla.cpython-310.pyc
deleted file mode 100644
index 826139afc7d92cd2a8a9343f1d24d3c9a15638c9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_chandrupatla.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_cobyla.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_cobyla.cpython-310.pyc
deleted file mode 100644
index 1e2ba45ba754993d870e4e2130d4f28ae58c8762..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_cobyla.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_cobyqa.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_cobyqa.cpython-310.pyc
deleted file mode 100644
index 86f36275297f198ac6997e7ece48e99b156c7054..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_cobyqa.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_constraint_conversion.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_constraint_conversion.cpython-310.pyc
deleted file mode 100644
index 0135a4b1be99031c6028ba11b3c426fe675987b2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_constraint_conversion.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_constraints.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_constraints.cpython-310.pyc
deleted file mode 100644
index 81a9cef9557180d900f55657cba2a99d3c21cc25..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_constraints.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_cython_optimize.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_cython_optimize.cpython-310.pyc
deleted file mode 100644
index 864b689de0c6a564ca35f73ab0893df9b74a8e69..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_cython_optimize.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_differentiable_functions.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_differentiable_functions.cpython-310.pyc
deleted file mode 100644
index 401bebb9603e17186d9311e2848d72f59e9bca5e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_differentiable_functions.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_differentiate.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_differentiate.cpython-310.pyc
deleted file mode 100644
index 8bacbe6cfbd6847e00d0cae45fdf1ba956ccfc02..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_differentiate.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_direct.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_direct.cpython-310.pyc
deleted file mode 100644
index 86ef6646668c15a0c92c27bdadfeafcfc2edde5b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_direct.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_extending.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_extending.cpython-310.pyc
deleted file mode 100644
index 87c0f05bada377322ca2930bd8b1f18bf30321db..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_extending.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_hessian_update_strategy.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_hessian_update_strategy.cpython-310.pyc
deleted file mode 100644
index 8d5e3b07a9ed9d80858183e35fd104be34b4bafe..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_hessian_update_strategy.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_isotonic_regression.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_isotonic_regression.cpython-310.pyc
deleted file mode 100644
index f46db760650a04930bbe6655fa65cfb31ebdc83f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_isotonic_regression.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lbfgsb_hessinv.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lbfgsb_hessinv.cpython-310.pyc
deleted file mode 100644
index 962ed38004d14aa37c6b2a418d69c4929928a8bb..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lbfgsb_hessinv.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lbfgsb_setulb.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lbfgsb_setulb.cpython-310.pyc
deleted file mode 100644
index 102670e58e3f52a38486d80b6135fcc8a6f76ebf..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lbfgsb_setulb.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_least_squares.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_least_squares.cpython-310.pyc
deleted file mode 100644
index 5c18fdf3a851c9ee930334d5cdbcd4d1014b86de..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_least_squares.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_linear_assignment.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_linear_assignment.cpython-310.pyc
deleted file mode 100644
index f9feea6a2ad9f9136b994b968871986a9fd41a12..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_linear_assignment.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_linesearch.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_linesearch.cpython-310.pyc
deleted file mode 100644
index 5241ee5af44fb032fe51a3339ce3cd3bbfc6fa8b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_linesearch.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_linprog.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_linprog.cpython-310.pyc
deleted file mode 100644
index 62273d613c2ffa27d08efd46c23e30f515d18b24..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_linprog.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lsq_common.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lsq_common.cpython-310.pyc
deleted file mode 100644
index 50d58fe4d824668431a48c65fe84e3a6116d43c1..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lsq_common.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lsq_linear.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lsq_linear.cpython-310.pyc
deleted file mode 100644
index 370c2136296ae121373aa3cfdd0e3b6219d74ba2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_lsq_linear.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_milp.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_milp.cpython-310.pyc
deleted file mode 100644
index b01fcd0695bb3d9265863ef9f666feff2581166a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_milp.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_minimize_constrained.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_minimize_constrained.cpython-310.pyc
deleted file mode 100644
index 2b45f80932aecf191d4b23068c24139586a83f3c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_minimize_constrained.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_minpack.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_minpack.cpython-310.pyc
deleted file mode 100644
index b7d93abbdad0d7f06c6ad2138d1371a274f17a54..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_minpack.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_nnls.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_nnls.cpython-310.pyc
deleted file mode 100644
index 93d0d1ff9811d4fd9511a9d3908161bd8818dfb7..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_nnls.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_nonlin.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_nonlin.cpython-310.pyc
deleted file mode 100644
index 9cbbbfa9e3d6c44b2917a5ccd356380de3f39103..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_nonlin.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_optimize.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_optimize.cpython-310.pyc
deleted file mode 100644
index c710aeda26e31af45054cce40fcd4708e951e937..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_optimize.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_quadratic_assignment.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_quadratic_assignment.cpython-310.pyc
deleted file mode 100644
index ead7498921cb48ee1b433a039df00140ae6a48da..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_quadratic_assignment.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_regression.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_regression.cpython-310.pyc
deleted file mode 100644
index 4c4dad4944874e7fc84fbba8b93ec94341961f51..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_regression.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_slsqp.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_slsqp.cpython-310.pyc
deleted file mode 100644
index f6ace0779f952891358b0e7b47281d7bc2cd74cb..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_slsqp.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_tnc.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_tnc.cpython-310.pyc
deleted file mode 100644
index 3b6d2cbfbb10442e05047e36323a6847a7054495..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_tnc.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_trustregion.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_trustregion.cpython-310.pyc
deleted file mode 100644
index bc3621d82382286c2984b6bd4e1d0429d52f7810..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_trustregion.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_trustregion_exact.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_trustregion_exact.cpython-310.pyc
deleted file mode 100644
index d26a456628fe5b6d9c41912c341082692f8f298a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_trustregion_exact.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_trustregion_krylov.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_trustregion_krylov.cpython-310.pyc
deleted file mode 100644
index 60bbd12e526deb91b2b6f0e95b1f3e3471e74f65..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_trustregion_krylov.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_zeros.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_zeros.cpython-310.pyc
deleted file mode 100644
index bb11471f67d415f8058fbd6aa0aae2caf6d193cb..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/__pycache__/test_zeros.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/_cython_examples/extending.pyx b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/_cython_examples/extending.pyx
deleted file mode 100644
index d831b3c7f5dcaee71371027c7ee95aa9ee51d157..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/_cython_examples/extending.pyx
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python3
-#cython: language_level=3
-#cython: boundscheck=False
-#cython: wraparound=False
-"""
-Taken from docstring for scipy.optimize.cython_optimize module.
-"""
-
-from scipy.optimize.cython_optimize cimport brentq
-
-# import math from Cython
-from libc cimport math
-
-myargs = {'C0': 1.0, 'C1': 0.7}  # a dictionary of extra arguments
-XLO, XHI = 0.5, 1.0  # lower and upper search boundaries
-XTOL, RTOL, MITR = 1e-3, 1e-3, 10  # other solver parameters
-
-# user-defined struct for extra parameters
-ctypedef struct test_params:
-    double C0
-    double C1
-
-
-# user-defined callback
-cdef double f(double x, void *args) noexcept:
-    cdef test_params *myargs =  args
-    return myargs.C0 - math.exp(-(x - myargs.C1))
-
-
-# Cython wrapper function
-cdef double brentq_wrapper_example(dict args, double xa, double xb,
-                                    double xtol, double rtol, int mitr):
-    # Cython automatically casts dictionary to struct
-    cdef test_params myargs = args
-    return brentq(
-        f, xa, xb,  &myargs, xtol, rtol, mitr, NULL)
-
-
-# Python function
-def brentq_example(args=myargs, xa=XLO, xb=XHI, xtol=XTOL, rtol=RTOL,
-                    mitr=MITR):
-    '''Calls Cython wrapper from Python.'''
-    return brentq_wrapper_example(args, xa, xb, xtol, rtol, mitr)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/_cython_examples/meson.build b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/_cython_examples/meson.build
deleted file mode 100644
index 2a5e1535a16f840f31ca0207513e7c060767ea12..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/_cython_examples/meson.build
+++ /dev/null
@@ -1,25 +0,0 @@
-project('random-build-examples', 'c', 'cpp', 'cython')
-
-fs = import('fs')
-
-py3 = import('python').find_installation(pure: false)
-
-cy = meson.get_compiler('cython')
-
-if not cy.version().version_compare('>=3.0.8')
-  error('tests requires Cython >= 3.0.8')
-endif
-
-py3.extension_module(
-  'extending',
-  'extending.pyx',
-  install: false,
-)
-
-extending_cpp = fs.copyfile('extending.pyx', 'extending_cpp.pyx')
-py3.extension_module(
-  'extending_cpp',
-  extending_cpp,
-  install: false,
-  override_options : ['cython_language=cpp']
-)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__basinhopping.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__basinhopping.py
deleted file mode 100644
index 4fbd376ac2c1387546a4134cbd34a9a3ac888835..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__basinhopping.py
+++ /dev/null
@@ -1,529 +0,0 @@
-"""
-Unit tests for the basin hopping global minimization algorithm.
-"""
-import copy
-
-from numpy.testing import (assert_almost_equal, assert_equal, assert_,
-                           assert_allclose)
-import pytest
-from pytest import raises as assert_raises
-import numpy as np
-from numpy import cos, sin
-
-from scipy.optimize import basinhopping, OptimizeResult
-from scipy.optimize._basinhopping import (
-    Storage, RandomDisplacement, Metropolis, AdaptiveStepsize)
-
-
-def func1d(x):
-    f = cos(14.5 * x - 0.3) + (x + 0.2) * x
-    df = np.array(-14.5 * sin(14.5 * x - 0.3) + 2. * x + 0.2)
-    return f, df
-
-
-def func2d_nograd(x):
-    f = cos(14.5 * x[0] - 0.3) + (x[1] + 0.2) * x[1] + (x[0] + 0.2) * x[0]
-    return f
-
-
-def func2d(x):
-    f = cos(14.5 * x[0] - 0.3) + (x[1] + 0.2) * x[1] + (x[0] + 0.2) * x[0]
-    df = np.zeros(2)
-    df[0] = -14.5 * sin(14.5 * x[0] - 0.3) + 2. * x[0] + 0.2
-    df[1] = 2. * x[1] + 0.2
-    return f, df
-
-
-def func2d_easyderiv(x):
-    f = 2.0*x[0]**2 + 2.0*x[0]*x[1] + 2.0*x[1]**2 - 6.0*x[0]
-    df = np.zeros(2)
-    df[0] = 4.0*x[0] + 2.0*x[1] - 6.0
-    df[1] = 2.0*x[0] + 4.0*x[1]
-
-    return f, df
-
-
-class MyTakeStep1(RandomDisplacement):
-    """use a copy of displace, but have it set a special parameter to
-    make sure it's actually being used."""
-    def __init__(self):
-        self.been_called = False
-        super().__init__()
-
-    def __call__(self, x):
-        self.been_called = True
-        return super().__call__(x)
-
-
-def myTakeStep2(x):
-    """redo RandomDisplacement in function form without the attribute stepsize
-    to make sure everything still works ok
-    """
-    s = 0.5
-    x += np.random.uniform(-s, s, np.shape(x))
-    return x
-
-
-class MyAcceptTest:
-    """pass a custom accept test
-
-    This does nothing but make sure it's being used and ensure all the
-    possible return values are accepted
-    """
-    def __init__(self):
-        self.been_called = False
-        self.ncalls = 0
-        self.testres = [False, 'force accept', True, np.bool_(True),
-                        np.bool_(False), [], {}, 0, 1]
-
-    def __call__(self, **kwargs):
-        self.been_called = True
-        self.ncalls += 1
-        if self.ncalls - 1 < len(self.testres):
-            return self.testres[self.ncalls - 1]
-        else:
-            return True
-
-
-class MyCallBack:
-    """pass a custom callback function
-
-    This makes sure it's being used. It also returns True after 10
-    steps to ensure that it's stopping early.
-
-    """
-    def __init__(self):
-        self.been_called = False
-        self.ncalls = 0
-
-    def __call__(self, x, f, accepted):
-        self.been_called = True
-        self.ncalls += 1
-        if self.ncalls == 10:
-            return True
-
-
-class TestBasinHopping:
-
-    def setup_method(self):
-        """ Tests setup.
-
-        Run tests based on the 1-D and 2-D functions described above.
-        """
-        self.x0 = (1.0, [1.0, 1.0])
-        self.sol = (-0.195, np.array([-0.195, -0.1]))
-
-        self.tol = 3  # number of decimal places
-
-        self.niter = 100
-        self.disp = False
-
-        # fix random seed
-        np.random.seed(1234)
-
-        self.kwargs = {"method": "L-BFGS-B", "jac": True}
-        self.kwargs_nograd = {"method": "L-BFGS-B"}
-
-    def test_TypeError(self):
-        # test the TypeErrors are raised on bad input
-        i = 1
-        # if take_step is passed, it must be callable
-        assert_raises(TypeError, basinhopping, func2d, self.x0[i],
-                      take_step=1)
-        # if accept_test is passed, it must be callable
-        assert_raises(TypeError, basinhopping, func2d, self.x0[i],
-                      accept_test=1)
-
-    def test_input_validation(self):
-        msg = 'target_accept_rate has to be in range \\(0, 1\\)'
-        with assert_raises(ValueError, match=msg):
-            basinhopping(func1d, self.x0[0], target_accept_rate=0.)
-        with assert_raises(ValueError, match=msg):
-            basinhopping(func1d, self.x0[0], target_accept_rate=1.)
-
-        msg = 'stepwise_factor has to be in range \\(0, 1\\)'
-        with assert_raises(ValueError, match=msg):
-            basinhopping(func1d, self.x0[0], stepwise_factor=0.)
-        with assert_raises(ValueError, match=msg):
-            basinhopping(func1d, self.x0[0], stepwise_factor=1.)
-
-    def test_1d_grad(self):
-        # test 1-D minimizations with gradient
-        i = 0
-        res = basinhopping(func1d, self.x0[i], minimizer_kwargs=self.kwargs,
-                           niter=self.niter, disp=self.disp)
-        assert_almost_equal(res.x, self.sol[i], self.tol)
-
-    def test_2d(self):
-        # test 2d minimizations with gradient
-        i = 1
-        res = basinhopping(func2d, self.x0[i], minimizer_kwargs=self.kwargs,
-                           niter=self.niter, disp=self.disp)
-        assert_almost_equal(res.x, self.sol[i], self.tol)
-        assert_(res.nfev > 0)
-
-    def test_njev(self):
-        # test njev is returned correctly
-        i = 1
-        minimizer_kwargs = self.kwargs.copy()
-        # L-BFGS-B doesn't use njev, but BFGS does
-        minimizer_kwargs["method"] = "BFGS"
-        res = basinhopping(func2d, self.x0[i],
-                           minimizer_kwargs=minimizer_kwargs, niter=self.niter,
-                           disp=self.disp)
-        assert_(res.nfev > 0)
-        assert_equal(res.nfev, res.njev)
-
-    def test_jac(self):
-        # test Jacobian returned
-        minimizer_kwargs = self.kwargs.copy()
-        # BFGS returns a Jacobian
-        minimizer_kwargs["method"] = "BFGS"
-
-        res = basinhopping(func2d_easyderiv, [0.0, 0.0],
-                           minimizer_kwargs=minimizer_kwargs, niter=self.niter,
-                           disp=self.disp)
-
-        assert_(hasattr(res.lowest_optimization_result, "jac"))
-
-        # in this case, the Jacobian is just [df/dx, df/dy]
-        _, jacobian = func2d_easyderiv(res.x)
-        assert_almost_equal(res.lowest_optimization_result.jac, jacobian,
-                            self.tol)
-
-    def test_2d_nograd(self):
-        # test 2-D minimizations without gradient
-        i = 1
-        res = basinhopping(func2d_nograd, self.x0[i],
-                           minimizer_kwargs=self.kwargs_nograd,
-                           niter=self.niter, disp=self.disp)
-        assert_almost_equal(res.x, self.sol[i], self.tol)
-
-    @pytest.mark.fail_slow(5)
-    def test_all_minimizers(self):
-        # Test 2-D minimizations with gradient. Nelder-Mead, Powell, COBYLA, and
-        # COBYQA don't accept jac=True, so aren't included here.
-        i = 1
-        methods = ['CG', 'BFGS', 'Newton-CG', 'L-BFGS-B', 'TNC', 'SLSQP']
-        minimizer_kwargs = copy.copy(self.kwargs)
-        for method in methods:
-            minimizer_kwargs["method"] = method
-            res = basinhopping(func2d, self.x0[i],
-                               minimizer_kwargs=minimizer_kwargs,
-                               niter=self.niter, disp=self.disp)
-            assert_almost_equal(res.x, self.sol[i], self.tol)
-
-    @pytest.mark.fail_slow(10)
-    def test_all_nograd_minimizers(self):
-        # Test 2-D minimizations without gradient. Newton-CG requires jac=True,
-        # so not included here.
-        i = 1
-        methods = ['CG', 'BFGS', 'L-BFGS-B', 'TNC', 'SLSQP',
-                   'Nelder-Mead', 'Powell', 'COBYLA', 'COBYQA']
-        minimizer_kwargs = copy.copy(self.kwargs_nograd)
-        for method in methods:
-            # COBYQA takes extensive amount of time on this problem
-            niter = 10 if method == 'COBYQA' else self.niter
-            minimizer_kwargs["method"] = method
-            res = basinhopping(func2d_nograd, self.x0[i],
-                               minimizer_kwargs=minimizer_kwargs,
-                               niter=niter, disp=self.disp)
-            tol = self.tol
-            if method == 'COBYLA':
-                tol = 2
-            assert_almost_equal(res.x, self.sol[i], decimal=tol)
-
-    def test_pass_takestep(self):
-        # test that passing a custom takestep works
-        # also test that the stepsize is being adjusted
-        takestep = MyTakeStep1()
-        initial_step_size = takestep.stepsize
-        i = 1
-        res = basinhopping(func2d, self.x0[i], minimizer_kwargs=self.kwargs,
-                           niter=self.niter, disp=self.disp,
-                           take_step=takestep)
-        assert_almost_equal(res.x, self.sol[i], self.tol)
-        assert_(takestep.been_called)
-        # make sure that the build in adaptive step size has been used
-        assert_(initial_step_size != takestep.stepsize)
-
-    def test_pass_simple_takestep(self):
-        # test that passing a custom takestep without attribute stepsize
-        takestep = myTakeStep2
-        i = 1
-        res = basinhopping(func2d_nograd, self.x0[i],
-                           minimizer_kwargs=self.kwargs_nograd,
-                           niter=self.niter, disp=self.disp,
-                           take_step=takestep)
-        assert_almost_equal(res.x, self.sol[i], self.tol)
-
-    def test_pass_accept_test(self):
-        # test passing a custom accept test
-        # makes sure it's being used and ensures all the possible return values
-        # are accepted.
-        accept_test = MyAcceptTest()
-        i = 1
-        # there's no point in running it more than a few steps.
-        basinhopping(func2d, self.x0[i], minimizer_kwargs=self.kwargs,
-                     niter=10, disp=self.disp, accept_test=accept_test)
-        assert_(accept_test.been_called)
-
-    def test_pass_callback(self):
-        # test passing a custom callback function
-        # This makes sure it's being used. It also returns True after 10 steps
-        # to ensure that it's stopping early.
-        callback = MyCallBack()
-        i = 1
-        # there's no point in running it more than a few steps.
-        res = basinhopping(func2d, self.x0[i], minimizer_kwargs=self.kwargs,
-                           niter=30, disp=self.disp, callback=callback)
-        assert_(callback.been_called)
-        assert_("callback" in res.message[0])
-        # One of the calls of MyCallBack is during BasinHoppingRunner
-        # construction, so there are only 9 remaining before MyCallBack stops
-        # the minimization.
-        assert_equal(res.nit, 9)
-
-    def test_minimizer_fail(self):
-        # test if a minimizer fails
-        i = 1
-        self.kwargs["options"] = dict(maxiter=0)
-        self.niter = 10
-        res = basinhopping(func2d, self.x0[i], minimizer_kwargs=self.kwargs,
-                           niter=self.niter, disp=self.disp)
-        # the number of failed minimizations should be the number of
-        # iterations + 1
-        assert_equal(res.nit + 1, res.minimization_failures)
-
-    def test_niter_zero(self):
-        # gh5915, what happens if you call basinhopping with niter=0
-        i = 0
-        basinhopping(func1d, self.x0[i], minimizer_kwargs=self.kwargs,
-                     niter=0, disp=self.disp)
-
-    def test_seed_reproducibility(self):
-        # seed should ensure reproducibility between runs
-        minimizer_kwargs = {"method": "L-BFGS-B", "jac": True}
-
-        f_1 = []
-
-        def callback(x, f, accepted):
-            f_1.append(f)
-
-        basinhopping(func2d, [1.0, 1.0], minimizer_kwargs=minimizer_kwargs,
-                     niter=10, callback=callback, seed=10)
-
-        f_2 = []
-
-        def callback2(x, f, accepted):
-            f_2.append(f)
-
-        basinhopping(func2d, [1.0, 1.0], minimizer_kwargs=minimizer_kwargs,
-                     niter=10, callback=callback2, seed=10)
-        assert_equal(np.array(f_1), np.array(f_2))
-
-    def test_random_gen(self):
-        # check that np.random.Generator can be used (numpy >= 1.17)
-        rng = np.random.default_rng(1)
-
-        minimizer_kwargs = {"method": "L-BFGS-B", "jac": True}
-
-        res1 = basinhopping(func2d, [1.0, 1.0],
-                            minimizer_kwargs=minimizer_kwargs,
-                            niter=10, seed=rng)
-
-        rng = np.random.default_rng(1)
-        res2 = basinhopping(func2d, [1.0, 1.0],
-                            minimizer_kwargs=minimizer_kwargs,
-                            niter=10, seed=rng)
-        assert_equal(res1.x, res2.x)
-
-    def test_monotonic_basin_hopping(self):
-        # test 1-D minimizations with gradient and T=0
-        i = 0
-        res = basinhopping(func1d, self.x0[i], minimizer_kwargs=self.kwargs,
-                           niter=self.niter, disp=self.disp, T=0)
-        assert_almost_equal(res.x, self.sol[i], self.tol)
-
-
-class Test_Storage:
-    def setup_method(self):
-        self.x0 = np.array(1)
-        self.f0 = 0
-
-        minres = OptimizeResult(success=True)
-        minres.x = self.x0
-        minres.fun = self.f0
-
-        self.storage = Storage(minres)
-
-    def test_higher_f_rejected(self):
-        new_minres = OptimizeResult(success=True)
-        new_minres.x = self.x0 + 1
-        new_minres.fun = self.f0 + 1
-
-        ret = self.storage.update(new_minres)
-        minres = self.storage.get_lowest()
-        assert_equal(self.x0, minres.x)
-        assert_equal(self.f0, minres.fun)
-        assert_(not ret)
-
-    @pytest.mark.parametrize('success', [True, False])
-    def test_lower_f_accepted(self, success):
-        new_minres = OptimizeResult(success=success)
-        new_minres.x = self.x0 + 1
-        new_minres.fun = self.f0 - 1
-
-        ret = self.storage.update(new_minres)
-        minres = self.storage.get_lowest()
-        assert (self.x0 != minres.x) == success  # can't use `is`
-        assert (self.f0 != minres.fun) == success  # left side is NumPy bool
-        assert ret is success
-
-
-class Test_RandomDisplacement:
-    def setup_method(self):
-        self.stepsize = 1.0
-        self.displace = RandomDisplacement(stepsize=self.stepsize)
-        self.N = 300000
-        self.x0 = np.zeros([self.N])
-
-    def test_random(self):
-        # the mean should be 0
-        # the variance should be (2*stepsize)**2 / 12
-        # note these tests are random, they will fail from time to time
-        x = self.displace(self.x0)
-        v = (2. * self.stepsize) ** 2 / 12
-        assert_almost_equal(np.mean(x), 0., 1)
-        assert_almost_equal(np.var(x), v, 1)
-
-
-class Test_Metropolis:
-    def setup_method(self):
-        self.T = 2.
-        self.met = Metropolis(self.T)
-        self.res_new = OptimizeResult(success=True, fun=0.)
-        self.res_old = OptimizeResult(success=True, fun=1.)
-
-    def test_boolean_return(self):
-        # the return must be a bool, else an error will be raised in
-        # basinhopping
-        ret = self.met(res_new=self.res_new, res_old=self.res_old)
-        assert isinstance(ret, bool)
-
-    def test_lower_f_accepted(self):
-        assert_(self.met(res_new=self.res_new, res_old=self.res_old))
-
-    def test_accept(self):
-        # test that steps are randomly accepted for f_new > f_old
-        one_accept = False
-        one_reject = False
-        for i in range(1000):
-            if one_accept and one_reject:
-                break
-            res_new = OptimizeResult(success=True, fun=1.)
-            res_old = OptimizeResult(success=True, fun=0.5)
-            ret = self.met(res_new=res_new, res_old=res_old)
-            if ret:
-                one_accept = True
-            else:
-                one_reject = True
-        assert_(one_accept)
-        assert_(one_reject)
-
-    def test_GH7495(self):
-        # an overflow in exp was producing a RuntimeWarning
-        # create own object here in case someone changes self.T
-        met = Metropolis(2)
-        res_new = OptimizeResult(success=True, fun=0.)
-        res_old = OptimizeResult(success=True, fun=2000)
-        with np.errstate(over='raise'):
-            met.accept_reject(res_new=res_new, res_old=res_old)
-
-    def test_gh7799(self):
-        # gh-7799 reported a problem in which local search was successful but
-        # basinhopping returned an invalid solution. Show that this is fixed.
-        def func(x):
-            return (x**2-8)**2+(x+2)**2
-
-        x0 = -4
-        limit = 50  # Constrain to func value >= 50
-        con = {'type': 'ineq', 'fun': lambda x: func(x) - limit},
-        res = basinhopping(func, x0, 30, minimizer_kwargs={'constraints': con})
-        assert res.success
-        assert_allclose(res.fun, limit, rtol=1e-6)
-
-    def test_accept_gh7799(self):
-        # Metropolis should not accept the result of an unsuccessful new local
-        # search if the old local search was successful
-
-        met = Metropolis(0)  # monotonic basin hopping
-        res_new = OptimizeResult(success=True, fun=0.)
-        res_old = OptimizeResult(success=True, fun=1.)
-
-        # if new local search was successful and energy is lower, accept
-        assert met(res_new=res_new, res_old=res_old)
-        # if new res is unsuccessful, don't accept - even if energy is lower
-        res_new.success = False
-        assert not met(res_new=res_new, res_old=res_old)
-        # ...unless the old res was unsuccessful, too. In that case, why not?
-        res_old.success = False
-        assert met(res_new=res_new, res_old=res_old)
-
-    def test_reject_all_gh7799(self):
-        # Test the behavior when there is no feasible solution
-        def fun(x):
-            return x@x
-
-        def constraint(x):
-            return x + 1
-
-        kwargs = {'constraints': {'type': 'eq', 'fun': constraint},
-                  'bounds': [(0, 1), (0, 1)], 'method': 'slsqp'}
-        res = basinhopping(fun, x0=[2, 3], niter=10, minimizer_kwargs=kwargs)
-        assert not res.success
-
-
-class Test_AdaptiveStepsize:
-    def setup_method(self):
-        self.stepsize = 1.
-        self.ts = RandomDisplacement(stepsize=self.stepsize)
-        self.target_accept_rate = 0.5
-        self.takestep = AdaptiveStepsize(takestep=self.ts, verbose=False,
-                                         accept_rate=self.target_accept_rate)
-
-    def test_adaptive_increase(self):
-        # if few steps are rejected, the stepsize should increase
-        x = 0.
-        self.takestep(x)
-        self.takestep.report(False)
-        for i in range(self.takestep.interval):
-            self.takestep(x)
-            self.takestep.report(True)
-        assert_(self.ts.stepsize > self.stepsize)
-
-    def test_adaptive_decrease(self):
-        # if few steps are rejected, the stepsize should increase
-        x = 0.
-        self.takestep(x)
-        self.takestep.report(True)
-        for i in range(self.takestep.interval):
-            self.takestep(x)
-            self.takestep.report(False)
-        assert_(self.ts.stepsize < self.stepsize)
-
-    def test_all_accepted(self):
-        # test that everything works OK if all steps were accepted
-        x = 0.
-        for i in range(self.takestep.interval + 1):
-            self.takestep(x)
-            self.takestep.report(True)
-        assert_(self.ts.stepsize > self.stepsize)
-
-    def test_all_rejected(self):
-        # test that everything works OK if all steps were rejected
-        x = 0.
-        for i in range(self.takestep.interval + 1):
-            self.takestep(x)
-            self.takestep.report(False)
-        assert_(self.ts.stepsize < self.stepsize)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__differential_evolution.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__differential_evolution.py
deleted file mode 100644
index 536f928a8480fefd918c64f523baf4800b352e3c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__differential_evolution.py
+++ /dev/null
@@ -1,1699 +0,0 @@
-"""
-Unit tests for the differential global minimization algorithm.
-"""
-import multiprocessing
-from multiprocessing.dummy import Pool as ThreadPool
-import platform
-
-from scipy.optimize._differentialevolution import (DifferentialEvolutionSolver,
-                                                   _ConstraintWrapper)
-from scipy.optimize import differential_evolution, OptimizeResult
-from scipy.optimize._constraints import (Bounds, NonlinearConstraint,
-                                         LinearConstraint)
-from scipy.optimize import rosen, minimize
-from scipy.sparse import csr_matrix
-from scipy import stats
-
-import numpy as np
-from numpy.testing import (assert_equal, assert_allclose, assert_almost_equal,
-                           assert_string_equal, assert_, suppress_warnings)
-from pytest import raises as assert_raises, warns
-import pytest
-
-
-class TestDifferentialEvolutionSolver:
-
-    def setup_method(self):
-        self.old_seterr = np.seterr(invalid='raise')
-        self.limits = np.array([[0., 0.],
-                                [2., 2.]])
-        self.bounds = [(0., 2.), (0., 2.)]
-
-        self.dummy_solver = DifferentialEvolutionSolver(self.quadratic,
-                                                        [(0, 100)])
-
-        # dummy_solver2 will be used to test mutation strategies
-        self.dummy_solver2 = DifferentialEvolutionSolver(self.quadratic,
-                                                         [(0, 1)],
-                                                         popsize=7,
-                                                         mutation=0.5)
-        # create a population that's only 7 members long
-        # [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7]
-        population = np.atleast_2d(np.arange(0.1, 0.8, 0.1)).T
-        self.dummy_solver2.population = population
-
-    def teardown_method(self):
-        np.seterr(**self.old_seterr)
-
-    def quadratic(self, x):
-        return x[0]**2
-
-    def test__strategy_resolves(self):
-        # test that the correct mutation function is resolved by
-        # different requested strategy arguments
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='best1exp')
-        assert_equal(solver.strategy, 'best1exp')
-        assert_equal(solver.mutation_func.__name__, '_best1')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='best1bin')
-        assert_equal(solver.strategy, 'best1bin')
-        assert_equal(solver.mutation_func.__name__, '_best1')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='rand1bin')
-        assert_equal(solver.strategy, 'rand1bin')
-        assert_equal(solver.mutation_func.__name__, '_rand1')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='rand1exp')
-        assert_equal(solver.strategy, 'rand1exp')
-        assert_equal(solver.mutation_func.__name__, '_rand1')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='rand2exp')
-        assert_equal(solver.strategy, 'rand2exp')
-        assert_equal(solver.mutation_func.__name__, '_rand2')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='best2bin')
-        assert_equal(solver.strategy, 'best2bin')
-        assert_equal(solver.mutation_func.__name__, '_best2')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='rand2bin')
-        assert_equal(solver.strategy, 'rand2bin')
-        assert_equal(solver.mutation_func.__name__, '_rand2')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='rand2exp')
-        assert_equal(solver.strategy, 'rand2exp')
-        assert_equal(solver.mutation_func.__name__, '_rand2')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='randtobest1bin')
-        assert_equal(solver.strategy, 'randtobest1bin')
-        assert_equal(solver.mutation_func.__name__, '_randtobest1')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='randtobest1exp')
-        assert_equal(solver.strategy, 'randtobest1exp')
-        assert_equal(solver.mutation_func.__name__, '_randtobest1')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='currenttobest1bin')
-        assert_equal(solver.strategy, 'currenttobest1bin')
-        assert_equal(solver.mutation_func.__name__, '_currenttobest1')
-
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='currenttobest1exp')
-        assert_equal(solver.strategy, 'currenttobest1exp')
-        assert_equal(solver.mutation_func.__name__, '_currenttobest1')
-
-    def test__mutate1(self):
-        # strategies */1/*, i.e. rand/1/bin, best/1/exp, etc.
-        result = np.array([0.05])
-        trial = self.dummy_solver2._best1(np.array([2, 3, 4, 5, 6]))
-        assert_allclose(trial, result)
-
-        result = np.array([0.25])
-        trial = self.dummy_solver2._rand1(np.array([2, 3, 4, 5, 6]))
-        assert_allclose(trial, result)
-
-    def test__mutate2(self):
-        # strategies */2/*, i.e. rand/2/bin, best/2/exp, etc.
-        # [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7]
-
-        result = np.array([-0.1])
-        trial = self.dummy_solver2._best2(np.array([2, 3, 4, 5, 6]))
-        assert_allclose(trial, result)
-
-        result = np.array([0.1])
-        trial = self.dummy_solver2._rand2(np.array([2, 3, 4, 5, 6]))
-        assert_allclose(trial, result)
-
-    def test__randtobest1(self):
-        # strategies randtobest/1/*
-        result = np.array([0.15])
-        trial = self.dummy_solver2._randtobest1(np.array([2, 3, 4, 5, 6]))
-        assert_allclose(trial, result)
-
-    def test__currenttobest1(self):
-        # strategies currenttobest/1/*
-        result = np.array([0.1])
-        trial = self.dummy_solver2._currenttobest1(
-            1,
-            np.array([2, 3, 4, 5, 6])
-        )
-        assert_allclose(trial, result)
-
-    def test_can_init_with_dithering(self):
-        mutation = (0.5, 1)
-        solver = DifferentialEvolutionSolver(self.quadratic,
-                                             self.bounds,
-                                             mutation=mutation)
-
-        assert_equal(solver.dither, list(mutation))
-
-    def test_invalid_mutation_values_arent_accepted(self):
-        func = rosen
-        mutation = (0.5, 3)
-        assert_raises(ValueError,
-                          DifferentialEvolutionSolver,
-                          func,
-                          self.bounds,
-                          mutation=mutation)
-
-        mutation = (-1, 1)
-        assert_raises(ValueError,
-                          DifferentialEvolutionSolver,
-                          func,
-                          self.bounds,
-                          mutation=mutation)
-
-        mutation = (0.1, np.nan)
-        assert_raises(ValueError,
-                          DifferentialEvolutionSolver,
-                          func,
-                          self.bounds,
-                          mutation=mutation)
-
-        mutation = 0.5
-        solver = DifferentialEvolutionSolver(func,
-                                             self.bounds,
-                                             mutation=mutation)
-        assert_equal(0.5, solver.scale)
-        assert_equal(None, solver.dither)
-
-    def test_invalid_functional(self):
-        def func(x):
-            return np.array([np.sum(x ** 2), np.sum(x)])
-
-        with assert_raises(
-                RuntimeError,
-                match=r"func\(x, \*args\) must return a scalar value"):
-            differential_evolution(func, [(-2, 2), (-2, 2)])
-
-    def test__scale_parameters(self):
-        trial = np.array([0.3])
-        assert_equal(30, self.dummy_solver._scale_parameters(trial))
-
-        # it should also work with the limits reversed
-        self.dummy_solver.limits = np.array([[100], [0.]])
-        assert_equal(30, self.dummy_solver._scale_parameters(trial))
-
-    def test__unscale_parameters(self):
-        trial = np.array([30])
-        assert_equal(0.3, self.dummy_solver._unscale_parameters(trial))
-
-        # it should also work with the limits reversed
-        self.dummy_solver.limits = np.array([[100], [0.]])
-        assert_equal(0.3, self.dummy_solver._unscale_parameters(trial))
-
-    def test_equal_bounds(self):
-        with np.errstate(invalid='raise'):
-            solver = DifferentialEvolutionSolver(
-                self.quadratic,
-                bounds=[(2.0, 2.0), (1.0, 3.0)]
-            )
-            v = solver._unscale_parameters([2.0, 2.0])
-            assert_allclose(v, 0.5)
-
-        res = differential_evolution(self.quadratic, [(2.0, 2.0), (3.0, 3.0)])
-        assert_equal(res.x, [2.0, 3.0])
-
-    def test__ensure_constraint(self):
-        trial = np.array([1.1, -100, 0.9, 2., 300., -0.00001])
-        self.dummy_solver._ensure_constraint(trial)
-
-        assert_equal(trial[2], 0.9)
-        assert_(np.logical_and(trial >= 0, trial <= 1).all())
-
-    def test_differential_evolution(self):
-        # test that the Jmin of DifferentialEvolutionSolver
-        # is the same as the function evaluation
-        solver = DifferentialEvolutionSolver(
-            self.quadratic, [(-2, 2)], maxiter=1, polish=False
-        )
-        result = solver.solve()
-        assert_equal(result.fun, self.quadratic(result.x))
-
-        solver = DifferentialEvolutionSolver(
-            self.quadratic, [(-2, 2)], maxiter=1, polish=True
-        )
-        result = solver.solve()
-        assert_equal(result.fun, self.quadratic(result.x))
-
-    def test_best_solution_retrieval(self):
-        # test that the getter property method for the best solution works.
-        solver = DifferentialEvolutionSolver(self.quadratic, [(-2, 2)])
-        result = solver.solve()
-        assert_equal(result.x, solver.x)
-
-    def test_intermediate_result(self):
-        # Check that intermediate result object passed into the callback
-        # function contains the expected information and that raising
-        # `StopIteration` causes the expected behavior.
-        maxiter = 10
-
-        def func(x):
-            val = rosen(x)
-            if val < func.val:
-                func.x = x
-                func.val = val
-            return val
-        func.x = None
-        func.val = np.inf
-
-        def callback(intermediate_result):
-            callback.nit += 1
-            callback.intermediate_result = intermediate_result
-            assert intermediate_result.population.ndim == 2
-            assert intermediate_result.population.shape[1] == 2
-            assert intermediate_result.nit == callback.nit
-
-            # Check that `x` and `fun` attributes are the best found so far
-            assert_equal(intermediate_result.x, callback.func.x)
-            assert_equal(intermediate_result.fun, callback.func.val)
-
-            # Check for consistency between `fun`, `population_energies`,
-            # `x`, and `population`
-            assert_equal(intermediate_result.fun, rosen(intermediate_result.x))
-            for i in range(len(intermediate_result.population_energies)):
-                res = intermediate_result.population_energies[i]
-                ref = rosen(intermediate_result.population[i])
-                assert_equal(res, ref)
-            assert_equal(intermediate_result.x,
-                         intermediate_result.population[0])
-            assert_equal(intermediate_result.fun,
-                         intermediate_result.population_energies[0])
-
-            assert intermediate_result.message == 'in progress'
-            assert intermediate_result.success is True
-            assert isinstance(intermediate_result, OptimizeResult)
-            if callback.nit == maxiter:
-                raise StopIteration
-        callback.nit = 0
-        callback.intermediate_result = None
-        callback.func = func
-
-        bounds = [(0, 2), (0, 2)]
-        kwargs = dict(func=func, bounds=bounds, seed=838245, polish=False)
-        res = differential_evolution(**kwargs, callback=callback)
-        ref = differential_evolution(**kwargs, maxiter=maxiter)
-
-        # Check that final `intermediate_result` is equivalent to returned
-        # result object and that terminating with callback `StopIteration`
-        # after `maxiter` iterations is equivalent to terminating with
-        # `maxiter` parameter.
-        assert res.success is ref.success is False
-        assert callback.nit == res.nit == maxiter
-        assert res.message == 'callback function requested stop early'
-        assert ref.message == 'Maximum number of iterations has been exceeded.'
-        for field, val in ref.items():
-            if field in {'message', 'success'}:  # checked separately
-                continue
-            assert_equal(callback.intermediate_result[field], val)
-            assert_equal(res[field], val)
-
-        # Check that polish occurs after `StopIteration` as advertised
-        callback.nit = 0
-        func.val = np.inf
-        kwargs['polish'] = True
-        res = differential_evolution(**kwargs, callback=callback)
-        assert res.fun < ref.fun
-
-    def test_callback_terminates(self):
-        # test that if the callback returns true, then the minimization halts
-        bounds = [(0, 2), (0, 2)]
-        expected_msg = 'callback function requested stop early'
-        def callback_python_true(param, convergence=0.):
-            return True
-
-        result = differential_evolution(
-            rosen, bounds, callback=callback_python_true
-        )
-        assert_string_equal(result.message, expected_msg)
-
-        # if callback raises StopIteration then solve should be interrupted
-        def callback_stop(intermediate_result):
-            raise StopIteration
-
-        result = differential_evolution(rosen, bounds, callback=callback_stop)
-        assert not result.success
-
-        def callback_evaluates_true(param, convergence=0.):
-            # DE should stop if bool(self.callback) is True
-            return [10]
-
-        result = differential_evolution(rosen, bounds, callback=callback_evaluates_true)
-        assert_string_equal(result.message, expected_msg)
-        assert not result.success
-
-        def callback_evaluates_false(param, convergence=0.):
-            return []
-
-        result = differential_evolution(rosen, bounds,
-                                        callback=callback_evaluates_false)
-        assert result.success
-
-    def test_args_tuple_is_passed(self):
-        # test that the args tuple is passed to the cost function properly.
-        bounds = [(-10, 10)]
-        args = (1., 2., 3.)
-
-        def quadratic(x, *args):
-            if type(args) != tuple:
-                raise ValueError('args should be a tuple')
-            return args[0] + args[1] * x + args[2] * x**2.
-
-        result = differential_evolution(quadratic,
-                                        bounds,
-                                        args=args,
-                                        polish=True)
-        assert_almost_equal(result.fun, 2 / 3.)
-
-    def test_init_with_invalid_strategy(self):
-        # test that passing an invalid strategy raises ValueError
-        func = rosen
-        bounds = [(-3, 3)]
-        assert_raises(ValueError,
-                          differential_evolution,
-                          func,
-                          bounds,
-                          strategy='abc')
-
-    def test_bounds_checking(self):
-        # test that the bounds checking works
-        func = rosen
-        bounds = [(-3)]
-        assert_raises(ValueError,
-                          differential_evolution,
-                          func,
-                          bounds)
-        bounds = [(-3, 3), (3, 4, 5)]
-        assert_raises(ValueError,
-                          differential_evolution,
-                          func,
-                          bounds)
-
-        # test that we can use a new-type Bounds object
-        result = differential_evolution(rosen, Bounds([0, 0], [2, 2]))
-        assert_almost_equal(result.x, (1., 1.))
-
-    def test_select_samples(self):
-        # select_samples should return 5 separate random numbers.
-        limits = np.arange(12., dtype='float64').reshape(2, 6)
-        bounds = list(zip(limits[0, :], limits[1, :]))
-        solver = DifferentialEvolutionSolver(None, bounds, popsize=1)
-        candidate = 0
-        r1, r2, r3, r4, r5 = solver._select_samples(candidate, 5)
-        assert_equal(
-            len(np.unique(np.array([candidate, r1, r2, r3, r4, r5]))), 6)
-
-    def test_maxiter_stops_solve(self):
-        # test that if the maximum number of iterations is exceeded
-        # the solver stops.
-        solver = DifferentialEvolutionSolver(rosen, self.bounds, maxiter=1)
-        result = solver.solve()
-        assert_equal(result.success, False)
-        assert_equal(result.message,
-                        'Maximum number of iterations has been exceeded.')
-
-    def test_maxfun_stops_solve(self):
-        # test that if the maximum number of function evaluations is exceeded
-        # during initialisation the solver stops
-        solver = DifferentialEvolutionSolver(rosen, self.bounds, maxfun=1,
-                                             polish=False)
-        result = solver.solve()
-
-        assert_equal(result.nfev, 2)
-        assert_equal(result.success, False)
-        assert_equal(result.message,
-                     'Maximum number of function evaluations has '
-                     'been exceeded.')
-
-        # test that if the maximum number of function evaluations is exceeded
-        # during the actual minimisation, then the solver stops.
-        # Have to turn polishing off, as this will still occur even if maxfun
-        # is reached. For popsize=5 and len(bounds)=2, then there are only 10
-        # function evaluations during initialisation.
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             popsize=5,
-                                             polish=False,
-                                             maxfun=40)
-        result = solver.solve()
-
-        assert_equal(result.nfev, 41)
-        assert_equal(result.success, False)
-        assert_equal(result.message,
-                     'Maximum number of function evaluations has '
-                     'been exceeded.')
-
-        # now repeat for updating='deferred version
-        # 47 function evaluations is not a multiple of the population size,
-        # so maxfun is reached partway through a population evaluation.
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             popsize=5,
-                                             polish=False,
-                                             maxfun=47,
-                                             updating='deferred')
-        result = solver.solve()
-
-        assert_equal(result.nfev, 47)
-        assert_equal(result.success, False)
-        assert_equal(result.message,
-                     'Maximum number of function evaluations has '
-                     'been reached.')
-
-    def test_quadratic(self):
-        # test the quadratic function from object
-        solver = DifferentialEvolutionSolver(self.quadratic,
-                                             [(-100, 100)],
-                                             tol=0.02)
-        solver.solve()
-        assert_equal(np.argmin(solver.population_energies), 0)
-
-    def test_quadratic_from_diff_ev(self):
-        # test the quadratic function from differential_evolution function
-        differential_evolution(self.quadratic,
-                               [(-100, 100)],
-                               tol=0.02)
-
-    def test_seed_gives_repeatability(self):
-        result = differential_evolution(self.quadratic,
-                                        [(-100, 100)],
-                                        polish=False,
-                                        seed=1,
-                                        tol=0.5)
-        result2 = differential_evolution(self.quadratic,
-                                        [(-100, 100)],
-                                        polish=False,
-                                        seed=1,
-                                        tol=0.5)
-        assert_equal(result.x, result2.x)
-        assert_equal(result.nfev, result2.nfev)
-
-    def test_random_generator(self):
-        # check that np.random.Generator can be used (numpy >= 1.17)
-        # obtain a np.random.Generator object
-        rng = np.random.default_rng()
-
-        inits = ['random', 'latinhypercube', 'sobol', 'halton']
-        for init in inits:
-            differential_evolution(self.quadratic,
-                                   [(-100, 100)],
-                                   polish=False,
-                                   seed=rng,
-                                   tol=0.5,
-                                   init=init)
-
-    def test_exp_runs(self):
-        # test whether exponential mutation loop runs
-        solver = DifferentialEvolutionSolver(rosen,
-                                             self.bounds,
-                                             strategy='best1exp',
-                                             maxiter=1)
-
-        solver.solve()
-
-    def test_gh_4511_regression(self):
-        # This modification of the differential evolution docstring example
-        # uses a custom popsize that had triggered an off-by-one error.
-        # Because we do not care about solving the optimization problem in
-        # this test, we use maxiter=1 to reduce the testing time.
-        bounds = [(-5, 5), (-5, 5)]
-        # result = differential_evolution(rosen, bounds, popsize=1815,
-        #                                 maxiter=1)
-
-        # the original issue arose because of rounding error in arange, with
-        # linspace being a much better solution. 1815 is quite a large popsize
-        # to use and results in a long test time (~13s). I used the original
-        # issue to figure out the lowest number of samples that would cause
-        # this rounding error to occur, 49.
-        differential_evolution(rosen, bounds, popsize=49, maxiter=1)
-
-    def test_calculate_population_energies(self):
-        # if popsize is 3, then the overall generation has size (6,)
-        solver = DifferentialEvolutionSolver(rosen, self.bounds, popsize=3)
-        solver._calculate_population_energies(solver.population)
-        solver._promote_lowest_energy()
-        assert_equal(np.argmin(solver.population_energies), 0)
-
-        # initial calculation of the energies should require 6 nfev.
-        assert_equal(solver._nfev, 6)
-
-    def test_iteration(self):
-        # test that DifferentialEvolutionSolver is iterable
-        # if popsize is 3, then the overall generation has size (6,)
-        solver = DifferentialEvolutionSolver(rosen, self.bounds, popsize=3,
-                                             maxfun=12)
-        x, fun = next(solver)
-        assert_equal(np.size(x, 0), 2)
-
-        # 6 nfev are required for initial calculation of energies, 6 nfev are
-        # required for the evolution of the 6 population members.
-        assert_equal(solver._nfev, 12)
-
-        # the next generation should halt because it exceeds maxfun
-        assert_raises(StopIteration, next, solver)
-
-        # check a proper minimisation can be done by an iterable solver
-        solver = DifferentialEvolutionSolver(rosen, self.bounds)
-        _, fun_prev = next(solver)
-        for i, soln in enumerate(solver):
-            x_current, fun_current = soln
-            assert fun_prev >= fun_current
-            _, fun_prev = x_current, fun_current
-            # need to have this otherwise the solver would never stop.
-            if i == 50:
-                break
-
-    def test_convergence(self):
-        solver = DifferentialEvolutionSolver(rosen, self.bounds, tol=0.2,
-                                             polish=False)
-        solver.solve()
-        assert_(solver.convergence < 0.2)
-
-    def test_maxiter_none_GH5731(self):
-        # Pre 0.17 the previous default for maxiter and maxfun was None.
-        # the numerical defaults are now 1000 and np.inf. However, some scripts
-        # will still supply None for both of those, this will raise a TypeError
-        # in the solve method.
-        solver = DifferentialEvolutionSolver(rosen, self.bounds, maxiter=None,
-                                             maxfun=None)
-        solver.solve()
-
-    def test_population_initiation(self):
-        # test the different modes of population initiation
-
-        # init must be either 'latinhypercube' or 'random'
-        # raising ValueError is something else is passed in
-        assert_raises(ValueError,
-                      DifferentialEvolutionSolver,
-                      *(rosen, self.bounds),
-                      **{'init': 'rubbish'})
-
-        solver = DifferentialEvolutionSolver(rosen, self.bounds)
-
-        # check that population initiation:
-        # 1) resets _nfev to 0
-        # 2) all population energies are np.inf
-        solver.init_population_random()
-        assert_equal(solver._nfev, 0)
-        assert_(np.all(np.isinf(solver.population_energies)))
-
-        solver.init_population_lhs()
-        assert_equal(solver._nfev, 0)
-        assert_(np.all(np.isinf(solver.population_energies)))
-
-        solver.init_population_qmc(qmc_engine='halton')
-        assert_equal(solver._nfev, 0)
-        assert_(np.all(np.isinf(solver.population_energies)))
-
-        solver = DifferentialEvolutionSolver(rosen, self.bounds, init='sobol')
-        solver.init_population_qmc(qmc_engine='sobol')
-        assert_equal(solver._nfev, 0)
-        assert_(np.all(np.isinf(solver.population_energies)))
-
-        # we should be able to initialize with our own array
-        population = np.linspace(-1, 3, 10).reshape(5, 2)
-        solver = DifferentialEvolutionSolver(rosen, self.bounds,
-                                             init=population,
-                                             strategy='best2bin',
-                                             atol=0.01, seed=1, popsize=5)
-
-        assert_equal(solver._nfev, 0)
-        assert_(np.all(np.isinf(solver.population_energies)))
-        assert_(solver.num_population_members == 5)
-        assert_(solver.population_shape == (5, 2))
-
-        # check that the population was initialized correctly
-        unscaled_population = np.clip(solver._unscale_parameters(population),
-                                      0, 1)
-        assert_almost_equal(solver.population[:5], unscaled_population)
-
-        # population values need to be clipped to bounds
-        assert_almost_equal(np.min(solver.population[:5]), 0)
-        assert_almost_equal(np.max(solver.population[:5]), 1)
-
-        # shouldn't be able to initialize with an array if it's the wrong shape
-        # this would have too many parameters
-        population = np.linspace(-1, 3, 15).reshape(5, 3)
-        assert_raises(ValueError,
-                      DifferentialEvolutionSolver,
-                      *(rosen, self.bounds),
-                      **{'init': population})
-
-        # provide an initial solution
-        # bounds are [(0, 2), (0, 2)]
-        x0 = np.random.uniform(low=0.0, high=2.0, size=2)
-        solver = DifferentialEvolutionSolver(
-            rosen, self.bounds, x0=x0
-        )
-        # parameters are scaled to unit interval
-        assert_allclose(solver.population[0], x0 / 2.0)
-
-    def test_x0(self):
-        # smoke test that checks that x0 is usable.
-        res = differential_evolution(rosen, self.bounds, x0=[0.2, 0.8])
-        assert res.success
-
-        # check what happens if some of the x0 lay outside the bounds
-        with assert_raises(ValueError):
-            differential_evolution(rosen, self.bounds, x0=[0.2, 2.1])
-
-    def test_infinite_objective_function(self):
-        # Test that there are no problems if the objective function
-        # returns inf on some runs
-        def sometimes_inf(x):
-            if x[0] < .5:
-                return np.inf
-            return x[1]
-        bounds = [(0, 1), (0, 1)]
-        differential_evolution(sometimes_inf, bounds=bounds, disp=False)
-
-    def test_deferred_updating(self):
-        # check setting of deferred updating, with default workers
-        bounds = [(0., 2.), (0., 2.)]
-        solver = DifferentialEvolutionSolver(rosen, bounds, updating='deferred')
-        assert_(solver._updating == 'deferred')
-        assert_(solver._mapwrapper._mapfunc is map)
-        res = solver.solve()
-        assert res.success
-
-        # check that deferred updating works with an exponential crossover
-        res = differential_evolution(
-            rosen, bounds, updating='deferred', strategy='best1exp'
-        )
-        assert res.success
-
-    def test_immediate_updating(self):
-        # check setting of immediate updating, with default workers
-        bounds = [(0., 2.), (0., 2.)]
-        solver = DifferentialEvolutionSolver(rosen, bounds)
-        assert_(solver._updating == 'immediate')
-
-        # Safely forking from a multithreaded process is
-        # problematic, and deprecated in Python 3.12, so
-        # we use a slower but portable alternative
-        # see gh-19848
-        ctx = multiprocessing.get_context("spawn")
-        with ctx.Pool(2) as p:
-            # should raise a UserWarning because the updating='immediate'
-            # is being overridden by the workers keyword
-            with warns(UserWarning):
-                with DifferentialEvolutionSolver(rosen, bounds, workers=p.map) as s:
-                    pass
-            assert s._updating == 'deferred'
-
-    @pytest.mark.fail_slow(5)
-    def test_parallel(self):
-        # smoke test for parallelization with deferred updating
-        bounds = [(0., 2.), (0., 2.)]
-        # use threads instead of Process to speed things up for this simple example
-        with ThreadPool(2) as p, DifferentialEvolutionSolver(
-            rosen, bounds, updating='deferred', workers=p.map, tol=0.1, popsize=3
-        ) as solver:
-            assert solver._mapwrapper.pool is not None
-            assert solver._updating == 'deferred'
-            solver.solve()
-
-        with DifferentialEvolutionSolver(
-            rosen, bounds, updating='deferred', workers=2, popsize=3, tol=0.1
-        ) as solver:
-            assert solver._mapwrapper.pool is not None
-            assert solver._updating == 'deferred'
-            solver.solve()
-
-    def test_converged(self):
-        solver = DifferentialEvolutionSolver(rosen, [(0, 2), (0, 2)])
-        solver.solve()
-        assert_(solver.converged())
-
-    def test_constraint_violation_fn(self):
-        def constr_f(x):
-            return [x[0] + x[1]]
-
-        def constr_f2(x):
-            return np.array([x[0]**2 + x[1], x[0] - x[1]])
-
-        nlc = NonlinearConstraint(constr_f, -np.inf, 1.9)
-
-        solver = DifferentialEvolutionSolver(rosen, [(0, 2), (0, 2)],
-                                             constraints=(nlc,))
-
-        cv = solver._constraint_violation_fn(np.array([1.0, 1.0]))
-        assert_almost_equal(cv, 0.1)
-
-        nlc2 = NonlinearConstraint(constr_f2, -np.inf, 1.8)
-        solver = DifferentialEvolutionSolver(rosen, [(0, 2), (0, 2)],
-                                             constraints=(nlc, nlc2))
-
-        # for multiple constraints the constraint violations should
-        # be concatenated.
-        xs = [(1.2, 1), (2.0, 2.0), (0.5, 0.5)]
-        vs = [(0.3, 0.64, 0.0), (2.1, 4.2, 0.0), (0, 0, 0)]
-
-        for x, v in zip(xs, vs):
-            cv = solver._constraint_violation_fn(np.array(x))
-            assert_allclose(cv, np.atleast_2d(v))
-
-        # vectorized calculation of a series of solutions
-        assert_allclose(
-            solver._constraint_violation_fn(np.array(xs)), np.array(vs)
-        )
-
-        # the following line is used in _calculate_population_feasibilities.
-        # _constraint_violation_fn returns an (1, M) array when
-        # x.shape == (N,), i.e. a single solution. Therefore this list
-        # comprehension should generate (S, 1, M) array.
-        constraint_violation = np.array([solver._constraint_violation_fn(x)
-                                         for x in np.array(xs)])
-        assert constraint_violation.shape == (3, 1, 3)
-
-        # we need reasonable error messages if the constraint function doesn't
-        # return the right thing
-        def constr_f3(x):
-            # returns (S, M), rather than (M, S)
-            return constr_f2(x).T
-
-        nlc2 = NonlinearConstraint(constr_f3, -np.inf, 1.8)
-        solver = DifferentialEvolutionSolver(rosen, [(0, 2), (0, 2)],
-                                             constraints=(nlc, nlc2),
-                                             vectorized=False)
-        solver.vectorized = True
-        with pytest.raises(
-                RuntimeError, match="An array returned from a Constraint"
-        ):
-            solver._constraint_violation_fn(np.array(xs))
-
-    def test_constraint_population_feasibilities(self):
-        def constr_f(x):
-            return [x[0] + x[1]]
-
-        def constr_f2(x):
-            return [x[0]**2 + x[1], x[0] - x[1]]
-
-        nlc = NonlinearConstraint(constr_f, -np.inf, 1.9)
-
-        solver = DifferentialEvolutionSolver(rosen, [(0, 2), (0, 2)],
-                                             constraints=(nlc,))
-
-        # are population feasibilities correct
-        # [0.5, 0.5] corresponds to scaled values of [1., 1.]
-        feas, cv = solver._calculate_population_feasibilities(
-            np.array([[0.5, 0.5], [1., 1.]]))
-        assert_equal(feas, [False, False])
-        assert_almost_equal(cv, np.array([[0.1], [2.1]]))
-        assert cv.shape == (2, 1)
-
-        nlc2 = NonlinearConstraint(constr_f2, -np.inf, 1.8)
-
-        for vectorize in [False, True]:
-            solver = DifferentialEvolutionSolver(rosen, [(0, 2), (0, 2)],
-                                                 constraints=(nlc, nlc2),
-                                                 vectorized=vectorize,
-                                                 updating='deferred')
-
-            feas, cv = solver._calculate_population_feasibilities(
-                np.array([[0.5, 0.5], [0.6, 0.5]]))
-            assert_equal(feas, [False, False])
-            assert_almost_equal(cv, np.array([[0.1, 0.2, 0], [0.3, 0.64, 0]]))
-
-            feas, cv = solver._calculate_population_feasibilities(
-                np.array([[0.5, 0.5], [1., 1.]]))
-            assert_equal(feas, [False, False])
-            assert_almost_equal(cv, np.array([[0.1, 0.2, 0], [2.1, 4.2, 0]]))
-            assert cv.shape == (2, 3)
-
-            feas, cv = solver._calculate_population_feasibilities(
-                np.array([[0.25, 0.25], [1., 1.]]))
-            assert_equal(feas, [True, False])
-            assert_almost_equal(cv, np.array([[0.0, 0.0, 0.], [2.1, 4.2, 0]]))
-            assert cv.shape == (2, 3)
-
-    def test_constraint_solve(self):
-        def constr_f(x):
-            return np.array([x[0] + x[1]])
-
-        nlc = NonlinearConstraint(constr_f, -np.inf, 1.9)
-
-        solver = DifferentialEvolutionSolver(rosen, [(0, 2), (0, 2)],
-                                             constraints=(nlc,))
-
-        # trust-constr warns if the constraint function is linear
-        with warns(UserWarning):
-            res = solver.solve()
-
-        assert constr_f(res.x) <= 1.9
-        assert res.success
-
-    @pytest.mark.fail_slow(5)
-    def test_impossible_constraint(self):
-        def constr_f(x):
-            return np.array([x[0] + x[1]])
-
-        nlc = NonlinearConstraint(constr_f, -np.inf, -1)
-
-        solver = DifferentialEvolutionSolver(
-            rosen, [(0, 2), (0, 2)], constraints=(nlc,), popsize=1, seed=1, maxiter=100
-        )
-
-        # a UserWarning is issued because the 'trust-constr' polishing is
-        # attempted on the least infeasible solution found.
-        with warns(UserWarning):
-            res = solver.solve()
-
-        assert res.maxcv > 0
-        assert not res.success
-
-        # test _promote_lowest_energy works when none of the population is
-        # feasible. In this case, the solution with the lowest constraint
-        # violation should be promoted.
-        solver = DifferentialEvolutionSolver(
-            rosen, [(0, 2), (0, 2)], constraints=(nlc,), polish=False)
-        next(solver)
-        assert not solver.feasible.all()
-        assert not np.isfinite(solver.population_energies).all()
-
-        # now swap two of the entries in the population
-        l = 20
-        cv = solver.constraint_violation[0]
-
-        solver.population_energies[[0, l]] = solver.population_energies[[l, 0]]
-        solver.population[[0, l], :] = solver.population[[l, 0], :]
-        solver.constraint_violation[[0, l], :] = (
-            solver.constraint_violation[[l, 0], :])
-
-        solver._promote_lowest_energy()
-        assert_equal(solver.constraint_violation[0], cv)
-
-    def test_accept_trial(self):
-        # _accept_trial(self, energy_trial, feasible_trial, cv_trial,
-        #               energy_orig, feasible_orig, cv_orig)
-        def constr_f(x):
-            return [x[0] + x[1]]
-        nlc = NonlinearConstraint(constr_f, -np.inf, 1.9)
-        solver = DifferentialEvolutionSolver(rosen, [(0, 2), (0, 2)],
-                                             constraints=(nlc,))
-        fn = solver._accept_trial
-        # both solutions are feasible, select lower energy
-        assert fn(0.1, True, np.array([0.]), 1.0, True, np.array([0.]))
-        assert (fn(1.0, True, np.array([0.0]), 0.1, True, np.array([0.0])) is False)
-        assert fn(0.1, True, np.array([0.]), 0.1, True, np.array([0.]))
-
-        # trial is feasible, original is not
-        assert fn(9.9, True, np.array([0.]), 1.0, False, np.array([1.]))
-
-        # trial and original are infeasible
-        # cv_trial have to be <= cv_original to be better
-        assert (fn(0.1, False, np.array([0.5, 0.5]),
-                   1.0, False, np.array([1., 1.0])))
-        assert (fn(0.1, False, np.array([0.5, 0.5]),
-                   1.0, False, np.array([1., 0.50])))
-        assert not (fn(1.0, False, np.array([0.5, 0.5]),
-                       1.0, False, np.array([1.0, 0.4])))
-
-    def test_constraint_wrapper(self):
-        lb = np.array([0, 20, 30])
-        ub = np.array([0.5, np.inf, 70])
-        x0 = np.array([1, 2, 3])
-        pc = _ConstraintWrapper(Bounds(lb, ub), x0)
-        assert (pc.violation(x0) > 0).any()
-        assert (pc.violation([0.25, 21, 31]) == 0).all()
-
-        # check vectorized Bounds constraint
-        xs = np.arange(1, 16).reshape(5, 3)
-        violations = []
-        for x in xs:
-            violations.append(pc.violation(x))
-        np.testing.assert_allclose(pc.violation(xs.T), np.array(violations).T)
-
-        x0 = np.array([1, 2, 3, 4])
-        A = np.array([[1, 2, 3, 4], [5, 0, 0, 6], [7, 0, 8, 0]])
-        pc = _ConstraintWrapper(LinearConstraint(A, -np.inf, 0), x0)
-        assert (pc.violation(x0) > 0).any()
-        assert (pc.violation([-10, 2, -10, 4]) == 0).all()
-
-        # check vectorized LinearConstraint, for 7 lots of parameter vectors
-        # with each parameter vector being 4 long, with 3 constraints
-        # xs is the same shape as stored in the differential evolution
-        # population, but it's sent to the violation function as (len(x), M)
-        xs = np.arange(1, 29).reshape(7, 4)
-        violations = []
-        for x in xs:
-            violations.append(pc.violation(x))
-        np.testing.assert_allclose(pc.violation(xs.T), np.array(violations).T)
-
-        pc = _ConstraintWrapper(LinearConstraint(csr_matrix(A), -np.inf, 0),
-                                x0)
-        assert (pc.violation(x0) > 0).any()
-        assert (pc.violation([-10, 2, -10, 4]) == 0).all()
-
-        def fun(x):
-            return A.dot(x)
-
-        nonlinear = NonlinearConstraint(fun, -np.inf, 0)
-        pc = _ConstraintWrapper(nonlinear, [-10, 2, -10, 4])
-        assert (pc.violation(x0) > 0).any()
-        assert (pc.violation([-10, 2, -10, 4]) == 0).all()
-
-    def test_constraint_wrapper_violation(self):
-        def cons_f(x):
-            # written in vectorised form to accept an array of (N, S)
-            # returning (M, S)
-            # where N is the number of parameters,
-            # S is the number of solution vectors to be examined,
-            # and M is the number of constraint components
-            return np.array([x[0] ** 2 + x[1],
-                             x[0] ** 2 - x[1]])
-
-        nlc = NonlinearConstraint(cons_f, [-1, -0.8500], [2, 2])
-        pc = _ConstraintWrapper(nlc, [0.5, 1])
-        assert np.size(pc.bounds[0]) == 2
-
-        xs = [(0.5, 1), (0.5, 1.2), (1.2, 1.2), (0.1, -1.2), (0.1, 2.0)]
-        vs = [(0, 0), (0, 0.1), (0.64, 0), (0.19, 0), (0.01, 1.14)]
-
-        for x, v in zip(xs, vs):
-            assert_allclose(pc.violation(x), v)
-
-        # now check that we can vectorize the constraint wrapper
-        assert_allclose(pc.violation(np.array(xs).T),
-                        np.array(vs).T)
-        assert pc.fun(np.array(xs).T).shape == (2, len(xs))
-        assert pc.violation(np.array(xs).T).shape == (2, len(xs))
-        assert pc.num_constr == 2
-        assert pc.parameter_count == 2
-
-    def test_matrix_linear_constraint(self):
-        # gh20041 supplying an np.matrix to construct a LinearConstraint caused
-        # _ConstraintWrapper to start returning constraint violations of the
-        # wrong shape.
-        with suppress_warnings() as sup:
-            sup.filter(PendingDeprecationWarning)
-            matrix = np.matrix([[1, 1, 1, 1.],
-                                [2, 2, 2, 2.]])
-        lc = LinearConstraint(matrix, 0, 1)
-        x0 = np.ones(4)
-        cw = _ConstraintWrapper(lc, x0)
-        # the shape of the constraint violation should be the same as the number
-        # of constraints applied.
-        assert cw.violation(x0).shape == (2,)
-
-        # let's try a vectorised violation call.
-        xtrial = np.arange(4 * 5).reshape(4, 5)
-        assert cw.violation(xtrial).shape == (2, 5)
-
-    @pytest.mark.fail_slow(10)
-    def test_L1(self):
-        # Lampinen ([5]) test problem 1
-
-        def f(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            fun = np.sum(5*x[1:5]) - 5*x[1:5]@x[1:5] - np.sum(x[5:])
-            return fun
-
-        A = np.zeros((10, 14))  # 1-indexed to match reference
-        A[1, [1, 2, 10, 11]] = 2, 2, 1, 1
-        A[2, [1, 10]] = -8, 1
-        A[3, [4, 5, 10]] = -2, -1, 1
-        A[4, [1, 3, 10, 11]] = 2, 2, 1, 1
-        A[5, [2, 11]] = -8, 1
-        A[6, [6, 7, 11]] = -2, -1, 1
-        A[7, [2, 3, 11, 12]] = 2, 2, 1, 1
-        A[8, [3, 12]] = -8, 1
-        A[9, [8, 9, 12]] = -2, -1, 1
-        A = A[1:, 1:]
-
-        b = np.array([10, 0, 0, 10, 0, 0, 10, 0, 0])
-
-        L = LinearConstraint(A, -np.inf, b)
-
-        bounds = [(0, 1)]*9 + [(0, 100)]*3 + [(0, 1)]
-
-        # using a lower popsize to speed the test up
-        res = differential_evolution(
-            f, bounds, strategy='best1bin', seed=1234, constraints=(L,),
-            popsize=2, tol=0.05
-        )
-
-        x_opt = (1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1)
-        f_opt = -15
-
-        assert_allclose(f(x_opt), f_opt, atol=6e-4)
-        assert res.success
-        assert_allclose(res.x, x_opt, atol=6e-4)
-        assert_allclose(res.fun, f_opt, atol=5e-3)
-        assert_(np.all(A@res.x <= b))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-        # now repeat the same solve, using the same overall constraints,
-        # but using a sparse matrix for the LinearConstraint instead of an
-        # array
-
-        L = LinearConstraint(csr_matrix(A), -np.inf, b)
-
-        # using a lower popsize to speed the test up
-        res = differential_evolution(
-            f, bounds, strategy='best1bin', seed=1234, constraints=(L,),
-            popsize=2, tol=0.05
-        )
-
-        assert_allclose(f(x_opt), f_opt)
-        assert res.success
-        assert_allclose(res.x, x_opt, atol=5e-4)
-        assert_allclose(res.fun, f_opt, atol=5e-3)
-        assert_(np.all(A@res.x <= b))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-        # now repeat the same solve, using the same overall constraints,
-        # but specify half the constraints in terms of LinearConstraint,
-        # and the other half by NonlinearConstraint
-        def c1(x):
-            x = np.hstack(([0], x))
-            return [2*x[2] + 2*x[3] + x[11] + x[12],
-                    -8*x[3] + x[12]]
-
-        def c2(x):
-            x = np.hstack(([0], x))
-            return -2*x[8] - x[9] + x[12]
-
-        L = LinearConstraint(A[:5, :], -np.inf, b[:5])
-        L2 = LinearConstraint(A[5:6, :], -np.inf, b[5:6])
-        N = NonlinearConstraint(c1, -np.inf, b[6:8])
-        N2 = NonlinearConstraint(c2, -np.inf, b[8:9])
-        constraints = (L, N, L2, N2)
-
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning)
-            res = differential_evolution(
-                f, bounds, strategy='best1bin', seed=1234,
-                constraints=constraints, popsize=2, tol=0.05
-            )
-
-        assert_allclose(res.x, x_opt, atol=6e-4)
-        assert_allclose(res.fun, f_opt, atol=5e-3)
-        assert_(np.all(A@res.x <= b))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-    @pytest.mark.fail_slow(5)
-    def test_L2(self):
-        # Lampinen ([5]) test problem 2
-
-        def f(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            fun = ((x[1]-10)**2 + 5*(x[2]-12)**2 + x[3]**4 + 3*(x[4]-11)**2 +
-                   10*x[5]**6 + 7*x[6]**2 + x[7]**4 - 4*x[6]*x[7] - 10*x[6] -
-                   8*x[7])
-            return fun
-
-        def c1(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            return [127 - 2*x[1]**2 - 3*x[2]**4 - x[3] - 4*x[4]**2 - 5*x[5],
-                    196 - 23*x[1] - x[2]**2 - 6*x[6]**2 + 8*x[7],
-                    282 - 7*x[1] - 3*x[2] - 10*x[3]**2 - x[4] + x[5],
-                    -4*x[1]**2 - x[2]**2 + 3*x[1]*x[2] - 2*x[3]**2 -
-                    5*x[6] + 11*x[7]]
-
-        N = NonlinearConstraint(c1, 0, np.inf)
-        bounds = [(-10, 10)]*7
-        constraints = (N)
-
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning)
-            res = differential_evolution(f, bounds, strategy='best1bin',
-                                         seed=1234, constraints=constraints)
-
-        f_opt = 680.6300599487869
-        x_opt = (2.330499, 1.951372, -0.4775414, 4.365726,
-                 -0.6244870, 1.038131, 1.594227)
-
-        assert_allclose(f(x_opt), f_opt)
-        assert_allclose(res.fun, f_opt)
-        assert_allclose(res.x, x_opt, atol=1e-5)
-        assert res.success
-        assert_(np.all(np.array(c1(res.x)) >= 0))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-    @pytest.mark.fail_slow(5)
-    def test_L3(self):
-        # Lampinen ([5]) test problem 3
-
-        def f(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            fun = (x[1]**2 + x[2]**2 + x[1]*x[2] - 14*x[1] - 16*x[2] +
-                   (x[3]-10)**2 + 4*(x[4]-5)**2 + (x[5]-3)**2 + 2*(x[6]-1)**2 +
-                   5*x[7]**2 + 7*(x[8]-11)**2 + 2*(x[9]-10)**2 +
-                   (x[10] - 7)**2 + 45
-                   )
-            return fun  # maximize
-
-        A = np.zeros((4, 11))
-        A[1, [1, 2, 7, 8]] = -4, -5, 3, -9
-        A[2, [1, 2, 7, 8]] = -10, 8, 17, -2
-        A[3, [1, 2, 9, 10]] = 8, -2, -5, 2
-        A = A[1:, 1:]
-        b = np.array([-105, 0, -12])
-
-        def c1(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            return [3*x[1] - 6*x[2] - 12*(x[9]-8)**2 + 7*x[10],
-                    -3*(x[1]-2)**2 - 4*(x[2]-3)**2 - 2*x[3]**2 + 7*x[4] + 120,
-                    -x[1]**2 - 2*(x[2]-2)**2 + 2*x[1]*x[2] - 14*x[5] + 6*x[6],
-                    -5*x[1]**2 - 8*x[2] - (x[3]-6)**2 + 2*x[4] + 40,
-                    -0.5*(x[1]-8)**2 - 2*(x[2]-4)**2 - 3*x[5]**2 + x[6] + 30]
-
-        L = LinearConstraint(A, b, np.inf)
-        N = NonlinearConstraint(c1, 0, np.inf)
-        bounds = [(-10, 10)]*10
-        constraints = (L, N)
-
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning)
-            res = differential_evolution(f, bounds, seed=1234,
-                                         constraints=constraints, popsize=3)
-
-        x_opt = (2.171996, 2.363683, 8.773926, 5.095984, 0.9906548,
-                 1.430574, 1.321644, 9.828726, 8.280092, 8.375927)
-        f_opt = 24.3062091
-
-        assert_allclose(f(x_opt), f_opt, atol=1e-5)
-        assert_allclose(res.x, x_opt, atol=1e-6)
-        assert_allclose(res.fun, f_opt, atol=1e-5)
-        assert res.success
-        assert_(np.all(A @ res.x >= b))
-        assert_(np.all(np.array(c1(res.x)) >= 0))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-    @pytest.mark.fail_slow(5)
-    def test_L4(self):
-        # Lampinen ([5]) test problem 4
-        def f(x):
-            return np.sum(x[:3])
-
-        A = np.zeros((4, 9))
-        A[1, [4, 6]] = 0.0025, 0.0025
-        A[2, [5, 7, 4]] = 0.0025, 0.0025, -0.0025
-        A[3, [8, 5]] = 0.01, -0.01
-        A = A[1:, 1:]
-        b = np.array([1, 1, 1])
-
-        def c1(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            return [x[1]*x[6] - 833.33252*x[4] - 100*x[1] + 83333.333,
-                    x[2]*x[7] - 1250*x[5] - x[2]*x[4] + 1250*x[4],
-                    x[3]*x[8] - 1250000 - x[3]*x[5] + 2500*x[5]]
-
-        L = LinearConstraint(A, -np.inf, 1)
-        N = NonlinearConstraint(c1, 0, np.inf)
-
-        bounds = [(100, 10000)] + [(1000, 10000)]*2 + [(10, 1000)]*5
-        constraints = (L, N)
-
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning)
-            res = differential_evolution(
-                f, bounds, strategy='best1bin', seed=1234,
-                constraints=constraints, popsize=3, tol=0.05
-            )
-
-        f_opt = 7049.248
-
-        x_opt = [579.306692, 1359.97063, 5109.9707, 182.0177, 295.601172,
-                217.9823, 286.416528, 395.601172]
-
-        assert_allclose(f(x_opt), f_opt, atol=0.001)
-        assert_allclose(res.fun, f_opt, atol=0.001)
-
-        # use higher tol here for 32-bit Windows, see gh-11693
-        if (platform.system() == 'Windows' and np.dtype(np.intp).itemsize < 8):
-            assert_allclose(res.x, x_opt, rtol=2.4e-6, atol=0.0035)
-        else:
-            # tolerance determined from macOS + MKL failure, see gh-12701
-            assert_allclose(res.x, x_opt, rtol=5e-6, atol=0.0024)
-
-        assert res.success
-        assert_(np.all(A @ res.x <= b))
-        assert_(np.all(np.array(c1(res.x)) >= 0))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-    @pytest.mark.fail_slow(5)
-    def test_L5(self):
-        # Lampinen ([5]) test problem 5
-
-        def f(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            fun = (np.sin(2*np.pi*x[1])**3*np.sin(2*np.pi*x[2]) /
-                   (x[1]**3*(x[1]+x[2])))
-            return -fun  # maximize
-
-        def c1(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            return [x[1]**2 - x[2] + 1,
-                    1 - x[1] + (x[2]-4)**2]
-
-        N = NonlinearConstraint(c1, -np.inf, 0)
-        bounds = [(0, 10)]*2
-        constraints = (N)
-
-        res = differential_evolution(f, bounds, strategy='rand1bin', seed=1234,
-                                     constraints=constraints)
-
-        x_opt = (1.22797135, 4.24537337)
-        f_opt = -0.095825
-        assert_allclose(f(x_opt), f_opt, atol=2e-5)
-        assert_allclose(res.fun, f_opt, atol=1e-4)
-        assert res.success
-        assert_(np.all(np.array(c1(res.x)) <= 0))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-    @pytest.mark.fail_slow(5)
-    def test_L6(self):
-        # Lampinen ([5]) test problem 6
-        def f(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            fun = (x[1]-10)**3 + (x[2] - 20)**3
-            return fun
-
-        def c1(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            return [(x[1]-5)**2 + (x[2] - 5)**2 - 100,
-                    -(x[1]-6)**2 - (x[2] - 5)**2 + 82.81]
-
-        N = NonlinearConstraint(c1, 0, np.inf)
-        bounds = [(13, 100), (0, 100)]
-        constraints = (N)
-        res = differential_evolution(f, bounds, strategy='rand1bin', seed=1234,
-                                     constraints=constraints, tol=1e-7)
-        x_opt = (14.095, 0.84296)
-        f_opt = -6961.814744
-
-        assert_allclose(f(x_opt), f_opt, atol=1e-6)
-        assert_allclose(res.fun, f_opt, atol=0.001)
-        assert_allclose(res.x, x_opt, atol=1e-4)
-        assert res.success
-        assert_(np.all(np.array(c1(res.x)) >= 0))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-    def test_L7(self):
-        # Lampinen ([5]) test problem 7
-        def f(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            fun = (5.3578547*x[3]**2 + 0.8356891*x[1]*x[5] +
-                   37.293239*x[1] - 40792.141)
-            return fun
-
-        def c1(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            return [
-                    85.334407 + 0.0056858*x[2]*x[5] + 0.0006262*x[1]*x[4] -
-                    0.0022053*x[3]*x[5],
-
-                    80.51249 + 0.0071317*x[2]*x[5] + 0.0029955*x[1]*x[2] +
-                    0.0021813*x[3]**2,
-
-                    9.300961 + 0.0047026*x[3]*x[5] + 0.0012547*x[1]*x[3] +
-                    0.0019085*x[3]*x[4]
-                    ]
-
-        N = NonlinearConstraint(c1, [0, 90, 20], [92, 110, 25])
-
-        bounds = [(78, 102), (33, 45)] + [(27, 45)]*3
-        constraints = (N)
-
-        res = differential_evolution(f, bounds, strategy='rand1bin', seed=1234,
-                                     constraints=constraints)
-
-        # using our best solution, rather than Lampinen/Koziel. Koziel solution
-        # doesn't satisfy constraints, Lampinen f_opt just plain wrong.
-        x_opt = [78.00000686, 33.00000362, 29.99526064, 44.99999971,
-                 36.77579979]
-
-        f_opt = -30665.537578
-
-        assert_allclose(f(x_opt), f_opt)
-        assert_allclose(res.x, x_opt, atol=1e-3)
-        assert_allclose(res.fun, f_opt, atol=1e-3)
-
-        assert res.success
-        assert_(np.all(np.array(c1(res.x)) >= np.array([0, 90, 20])))
-        assert_(np.all(np.array(c1(res.x)) <= np.array([92, 110, 25])))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-    @pytest.mark.xslow
-    @pytest.mark.xfail(platform.machine() == 'ppc64le',
-                       reason="fails on ppc64le")
-    def test_L8(self):
-        def f(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            fun = 3*x[1] + 0.000001*x[1]**3 + 2*x[2] + 0.000002/3*x[2]**3
-            return fun
-
-        A = np.zeros((3, 5))
-        A[1, [4, 3]] = 1, -1
-        A[2, [3, 4]] = 1, -1
-        A = A[1:, 1:]
-        b = np.array([-.55, -.55])
-
-        def c1(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            return [
-                    1000*np.sin(-x[3]-0.25) + 1000*np.sin(-x[4]-0.25) +
-                    894.8 - x[1],
-                    1000*np.sin(x[3]-0.25) + 1000*np.sin(x[3]-x[4]-0.25) +
-                    894.8 - x[2],
-                    1000*np.sin(x[4]-0.25) + 1000*np.sin(x[4]-x[3]-0.25) +
-                    1294.8
-                    ]
-        L = LinearConstraint(A, b, np.inf)
-        N = NonlinearConstraint(c1, np.full(3, -0.001), np.full(3, 0.001))
-
-        bounds = [(0, 1200)]*2+[(-.55, .55)]*2
-        constraints = (L, N)
-
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning)
-            # original Lampinen test was with rand1bin, but that takes a
-            # huge amount of CPU time. Changing strategy to best1bin speeds
-            # things up a lot
-            res = differential_evolution(f, bounds, strategy='best1bin',
-                                         seed=1234, constraints=constraints,
-                                         maxiter=5000)
-
-        x_opt = (679.9453, 1026.067, 0.1188764, -0.3962336)
-        f_opt = 5126.4981
-
-        assert_allclose(f(x_opt), f_opt, atol=1e-3)
-        assert_allclose(res.x[:2], x_opt[:2], atol=2e-3)
-        assert_allclose(res.x[2:], x_opt[2:], atol=2e-3)
-        assert_allclose(res.fun, f_opt, atol=2e-2)
-        assert res.success
-        assert_(np.all(A@res.x >= b))
-        assert_(np.all(np.array(c1(res.x)) >= -0.001))
-        assert_(np.all(np.array(c1(res.x)) <= 0.001))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-    @pytest.mark.fail_slow(5)
-    def test_L9(self):
-        # Lampinen ([5]) test problem 9
-
-        def f(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            return x[1]**2 + (x[2]-1)**2
-
-        def c1(x):
-            x = np.hstack(([0], x))  # 1-indexed to match reference
-            return [x[2] - x[1]**2]
-
-        N = NonlinearConstraint(c1, [-.001], [0.001])
-
-        bounds = [(-1, 1)]*2
-        constraints = (N)
-        res = differential_evolution(f, bounds, strategy='rand1bin', seed=1234,
-                                     constraints=constraints)
-
-        x_opt = [np.sqrt(2)/2, 0.5]
-        f_opt = 0.75
-
-        assert_allclose(f(x_opt), f_opt)
-        assert_allclose(np.abs(res.x), x_opt, atol=1e-3)
-        assert_allclose(res.fun, f_opt, atol=1e-3)
-        assert res.success
-        assert_(np.all(np.array(c1(res.x)) >= -0.001))
-        assert_(np.all(np.array(c1(res.x)) <= 0.001))
-        assert_(np.all(res.x >= np.array(bounds)[:, 0]))
-        assert_(np.all(res.x <= np.array(bounds)[:, 1]))
-
-    @pytest.mark.fail_slow(5)
-    def test_integrality(self):
-        # test fitting discrete distribution to data
-        rng = np.random.default_rng(6519843218105)
-        dist = stats.nbinom
-        shapes = (5, 0.5)
-        x = dist.rvs(*shapes, size=10000, random_state=rng)
-
-        def func(p, *args):
-            dist, x = args
-            # negative log-likelihood function
-            ll = -np.log(dist.pmf(x, *p)).sum(axis=-1)
-            if np.isnan(ll):  # occurs when x is outside of support
-                ll = np.inf  # we don't want that
-            return ll
-
-        integrality = [True, False]
-        bounds = [(1, 18), (0, 0.95)]
-
-        res = differential_evolution(func, bounds, args=(dist, x),
-                                     integrality=integrality, polish=False,
-                                     seed=rng)
-        # tolerance has to be fairly relaxed for the second parameter
-        # because we're fitting a distribution to random variates.
-        assert res.x[0] == 5
-        assert_allclose(res.x, shapes, rtol=0.025)
-
-        # check that we can still use integrality constraints with polishing
-        res2 = differential_evolution(func, bounds, args=(dist, x),
-                                      integrality=integrality, polish=True,
-                                      seed=rng)
-
-        def func2(p, *args):
-            n, dist, x = args
-            return func(np.array([n, p[0]]), dist, x)
-
-        # compare the DE derived solution to an LBFGSB solution (that doesn't
-        # have to find the integral values). Note we're setting x0 to be the
-        # output from the first DE result, thereby making the polishing step
-        # and this minimisation pretty much equivalent.
-        LBFGSB = minimize(func2, res2.x[1], args=(5, dist, x),
-                          bounds=[(0, 0.95)])
-        assert_allclose(res2.x[1], LBFGSB.x)
-        assert res2.fun <= res.fun
-
-    def test_integrality_limits(self):
-        def f(x):
-            return x
-
-        integrality = [True, False, True]
-        bounds = [(0.2, 1.1), (0.9, 2.2), (3.3, 4.9)]
-
-        # no integrality constraints
-        solver = DifferentialEvolutionSolver(f, bounds=bounds, polish=False,
-                                             integrality=False)
-        assert_allclose(solver.limits[0], [0.2, 0.9, 3.3])
-        assert_allclose(solver.limits[1], [1.1, 2.2, 4.9])
-
-        # with integrality constraints
-        solver = DifferentialEvolutionSolver(f, bounds=bounds, polish=False,
-                                             integrality=integrality)
-        assert_allclose(solver.limits[0], [0.5, 0.9, 3.5])
-        assert_allclose(solver.limits[1], [1.5, 2.2, 4.5])
-        assert_equal(solver.integrality, [True, False, True])
-        assert solver.polish is False
-
-        bounds = [(-1.2, -0.9), (0.9, 2.2), (-10.3, 4.1)]
-        solver = DifferentialEvolutionSolver(f, bounds=bounds, polish=False,
-                                             integrality=integrality)
-        assert_allclose(solver.limits[0], [-1.5, 0.9, -10.5])
-        assert_allclose(solver.limits[1], [-0.5, 2.2, 4.5])
-
-        # A lower bound of -1.2 is converted to
-        # np.nextafter(np.ceil(-1.2) - 0.5, np.inf)
-        # with a similar process to the upper bound. Check that the
-        # conversions work
-        assert_allclose(np.round(solver.limits[0]), [-1.0, 1.0, -10.0])
-        assert_allclose(np.round(solver.limits[1]), [-1.0, 2.0, 4.0])
-
-        bounds = [(-10.2, -8.1), (0.9, 2.2), (-10.9, -9.9999)]
-        solver = DifferentialEvolutionSolver(f, bounds=bounds, polish=False,
-                                             integrality=integrality)
-        assert_allclose(solver.limits[0], [-10.5, 0.9, -10.5])
-        assert_allclose(solver.limits[1], [-8.5, 2.2, -9.5])
-
-        bounds = [(-10.2, -10.1), (0.9, 2.2), (-10.9, -9.9999)]
-        with pytest.raises(ValueError, match='One of the integrality'):
-            DifferentialEvolutionSolver(f, bounds=bounds, polish=False,
-                                        integrality=integrality)
-
-    @pytest.mark.fail_slow(5)
-    def test_vectorized(self):
-        def quadratic(x):
-            return np.sum(x**2)
-
-        def quadratic_vec(x):
-            return np.sum(x**2, axis=0)
-
-        # A vectorized function needs to accept (len(x), S) and return (S,)
-        with pytest.raises(RuntimeError, match='The vectorized function'):
-            differential_evolution(quadratic, self.bounds,
-                                   vectorized=True, updating='deferred')
-
-        # vectorized overrides the updating keyword, check for warning
-        with warns(UserWarning, match="differential_evolution: the 'vector"):
-            differential_evolution(quadratic_vec, self.bounds,
-                                   vectorized=True)
-
-        # vectorized defers to the workers keyword, check for warning
-        with warns(UserWarning, match="differential_evolution: the 'workers"):
-            differential_evolution(quadratic_vec, self.bounds,
-                                   vectorized=True, workers=map,
-                                   updating='deferred')
-
-        ncalls = [0]
-
-        def rosen_vec(x):
-            ncalls[0] += 1
-            return rosen(x)
-
-        bounds = [(0, 10), (0, 10)]
-        res1 = differential_evolution(rosen, bounds, updating='deferred',
-                                      seed=1)
-        res2 = differential_evolution(rosen_vec, bounds, vectorized=True,
-                                      updating='deferred', seed=1)
-
-        # the two minimisation runs should be functionally equivalent
-        assert_allclose(res1.x, res2.x)
-        assert ncalls[0] == res2.nfev
-        assert res1.nit == res2.nit
-
-    def test_vectorized_constraints(self):
-        def constr_f(x):
-            return np.array([x[0] + x[1]])
-
-        def constr_f2(x):
-            return np.array([x[0]**2 + x[1], x[0] - x[1]])
-
-        nlc1 = NonlinearConstraint(constr_f, -np.inf, 1.9)
-        nlc2 = NonlinearConstraint(constr_f2, (0.9, 0.5), (2.0, 2.0))
-
-        def rosen_vec(x):
-            # accept an (len(x0), S) array, returning a (S,) array
-            v = 100 * (x[1:] - x[:-1]**2.0)**2.0
-            v += (1 - x[:-1])**2.0
-            return np.squeeze(v)
-
-        bounds = [(0, 10), (0, 10)]
-
-        res1 = differential_evolution(rosen, bounds, updating='deferred',
-                                      seed=1, constraints=[nlc1, nlc2],
-                                      polish=False)
-        res2 = differential_evolution(rosen_vec, bounds, vectorized=True,
-                                      updating='deferred', seed=1,
-                                      constraints=[nlc1, nlc2],
-                                      polish=False)
-        # the two minimisation runs should be functionally equivalent
-        assert_allclose(res1.x, res2.x)
-
-    def test_constraint_violation_error_message(self):
-
-        def func(x):
-            return np.cos(x[0]) + np.sin(x[1])
-
-        # Intentionally infeasible constraints.
-        c0 = NonlinearConstraint(lambda x: x[1] - (x[0]-1)**2, 0, np.inf)
-        c1 = NonlinearConstraint(lambda x: x[1] + x[0]**2, -np.inf, 0)
-
-        result = differential_evolution(func,
-                                        bounds=[(-1, 2), (-1, 1)],
-                                        constraints=[c0, c1],
-                                        maxiter=10,
-                                        polish=False,
-                                        seed=864197532)
-        assert result.success is False
-        # The numerical value in the error message might be sensitive to
-        # changes in the implementation.  It can be updated if the code is
-        # changed.  The essential part of the test is that there is a number
-        # after the '=', so if necessary, the text could be reduced to, say,
-        # "MAXCV = 0.".
-        assert "MAXCV = 0.4" in result.message
-
-    @pytest.mark.fail_slow(10)  # fail-slow exception by request - see gh-20806
-    def test_strategy_fn(self):
-        # examines ability to customize strategy by mimicking one of the
-        # in-built strategies
-        parameter_count = 4
-        popsize = 10
-        bounds = [(0, 10.)] * parameter_count
-        total_popsize = parameter_count * popsize
-        mutation = 0.8
-        recombination = 0.7
-
-        calls = [0]
-        def custom_strategy_fn(candidate, population, rng=None):
-            calls[0] += 1
-            trial = np.copy(population[candidate])
-            fill_point = rng.choice(parameter_count)
-
-            pool = np.arange(total_popsize)
-            rng.shuffle(pool)
-            idxs = pool[:2 + 1]
-            idxs = idxs[idxs != candidate][:2]
-
-            r0, r1 = idxs[:2]
-
-            bprime = (population[0] + mutation *
-                    (population[r0] - population[r1]))
-
-            crossovers = rng.uniform(size=parameter_count)
-            crossovers = crossovers < recombination
-            crossovers[fill_point] = True
-            trial = np.where(crossovers, bprime, trial)
-            return trial
-
-        solver = DifferentialEvolutionSolver(
-            rosen,
-            bounds,
-            popsize=popsize,
-            recombination=recombination,
-            mutation=mutation,
-            maxiter=2,
-            strategy=custom_strategy_fn,
-            seed=10,
-            polish=False
-        )
-        assert solver.strategy is custom_strategy_fn
-        solver.solve()
-        assert calls[0] > 0
-
-        # check custom strategy works with updating='deferred'
-        res = differential_evolution(
-            rosen, bounds, strategy=custom_strategy_fn, updating='deferred'
-        )
-        assert res.success
-
-        def custom_strategy_fn(candidate, population, rng=None):
-            return np.array([1.0, 2.0])
-
-        with pytest.raises(RuntimeError, match="strategy*"):
-            differential_evolution(
-                rosen,
-                bounds,
-                strategy=custom_strategy_fn
-            )
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__dual_annealing.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__dual_annealing.py
deleted file mode 100644
index 041dffc5b5096c89e96eac19847ec02c31d29de0..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__dual_annealing.py
+++ /dev/null
@@ -1,406 +0,0 @@
-# Dual annealing unit tests implementation.
-# Copyright (c) 2018 Sylvain Gubian ,
-# Yang Xiang 
-# Author: Sylvain Gubian, PMP S.A.
-"""
-Unit tests for the dual annealing global optimizer
-"""
-from scipy.optimize import dual_annealing, Bounds
-
-from scipy.optimize._dual_annealing import EnergyState
-from scipy.optimize._dual_annealing import LocalSearchWrapper
-from scipy.optimize._dual_annealing import ObjectiveFunWrapper
-from scipy.optimize._dual_annealing import StrategyChain
-from scipy.optimize._dual_annealing import VisitingDistribution
-from scipy.optimize import rosen, rosen_der
-import pytest
-import numpy as np
-from numpy.testing import assert_equal, assert_allclose, assert_array_less
-from pytest import raises as assert_raises
-from scipy._lib._util import check_random_state
-
-
-class TestDualAnnealing:
-
-    def setup_method(self):
-        # A function that returns always infinity for initialization tests
-        self.weirdfunc = lambda x: np.inf
-        # 2-D bounds for testing function
-        self.ld_bounds = [(-5.12, 5.12)] * 2
-        # 4-D bounds for testing function
-        self.hd_bounds = self.ld_bounds * 4
-        # Number of values to be generated for testing visit function
-        self.nbtestvalues = 5000
-        self.high_temperature = 5230
-        self.low_temperature = 0.1
-        self.qv = 2.62
-        self.seed = 1234
-        self.rs = check_random_state(self.seed)
-        self.nb_fun_call = 0
-        self.ngev = 0
-
-    def callback(self, x, f, context):
-        # For testing callback mechanism. Should stop for e <= 1 as
-        # the callback function returns True
-        if f <= 1.0:
-            return True
-
-    def func(self, x, args=()):
-        # Using Rastrigin function for performing tests
-        if args:
-            shift = args
-        else:
-            shift = 0
-        y = np.sum((x - shift) ** 2 - 10 * np.cos(2 * np.pi * (
-            x - shift))) + 10 * np.size(x) + shift
-        self.nb_fun_call += 1
-        return y
-
-    def rosen_der_wrapper(self, x, args=()):
-        self.ngev += 1
-        return rosen_der(x, *args)
-
-    # FIXME: there are some discontinuities in behaviour as a function of `qv`,
-    #        this needs investigating - see gh-12384
-    @pytest.mark.parametrize('qv', [1.1, 1.41, 2, 2.62, 2.9])
-    def test_visiting_stepping(self, qv):
-        lu = list(zip(*self.ld_bounds))
-        lower = np.array(lu[0])
-        upper = np.array(lu[1])
-        dim = lower.size
-        vd = VisitingDistribution(lower, upper, qv, self.rs)
-        values = np.zeros(dim)
-        x_step_low = vd.visiting(values, 0, self.high_temperature)
-        # Make sure that only the first component is changed
-        assert_equal(np.not_equal(x_step_low, 0), True)
-        values = np.zeros(dim)
-        x_step_high = vd.visiting(values, dim, self.high_temperature)
-        # Make sure that component other than at dim has changed
-        assert_equal(np.not_equal(x_step_high[0], 0), True)
-
-    @pytest.mark.parametrize('qv', [2.25, 2.62, 2.9])
-    def test_visiting_dist_high_temperature(self, qv):
-        lu = list(zip(*self.ld_bounds))
-        lower = np.array(lu[0])
-        upper = np.array(lu[1])
-        vd = VisitingDistribution(lower, upper, qv, self.rs)
-        # values = np.zeros(self.nbtestvalues)
-        # for i in np.arange(self.nbtestvalues):
-        #     values[i] = vd.visit_fn(self.high_temperature)
-        values = vd.visit_fn(self.high_temperature, self.nbtestvalues)
-
-        # Visiting distribution is a distorted version of Cauchy-Lorentz
-        # distribution, and as no 1st and higher moments (no mean defined,
-        # no variance defined).
-        # Check that big tails values are generated
-        assert_array_less(np.min(values), 1e-10)
-        assert_array_less(1e+10, np.max(values))
-
-    def test_reset(self):
-        owf = ObjectiveFunWrapper(self.weirdfunc)
-        lu = list(zip(*self.ld_bounds))
-        lower = np.array(lu[0])
-        upper = np.array(lu[1])
-        es = EnergyState(lower, upper)
-        assert_raises(ValueError, es.reset, owf, check_random_state(None))
-
-    def test_low_dim(self):
-        ret = dual_annealing(
-            self.func, self.ld_bounds, seed=self.seed)
-        assert_allclose(ret.fun, 0., atol=1e-12)
-        assert ret.success
-
-    @pytest.mark.fail_slow(5)
-    def test_high_dim(self):
-        ret = dual_annealing(self.func, self.hd_bounds, seed=self.seed)
-        assert_allclose(ret.fun, 0., atol=1e-12)
-        assert ret.success
-
-    def test_low_dim_no_ls(self):
-        ret = dual_annealing(self.func, self.ld_bounds,
-                             no_local_search=True, seed=self.seed)
-        assert_allclose(ret.fun, 0., atol=1e-4)
-
-    @pytest.mark.fail_slow(5)
-    def test_high_dim_no_ls(self):
-        ret = dual_annealing(self.func, self.hd_bounds,
-                             no_local_search=True, seed=self.seed)
-        assert_allclose(ret.fun, 0., atol=1e-4)
-
-    def test_nb_fun_call(self):
-        ret = dual_annealing(self.func, self.ld_bounds, seed=self.seed)
-        assert_equal(self.nb_fun_call, ret.nfev)
-
-    def test_nb_fun_call_no_ls(self):
-        ret = dual_annealing(self.func, self.ld_bounds,
-                             no_local_search=True, seed=self.seed)
-        assert_equal(self.nb_fun_call, ret.nfev)
-
-    def test_max_reinit(self):
-        assert_raises(ValueError, dual_annealing, self.weirdfunc,
-                      self.ld_bounds)
-
-    @pytest.mark.fail_slow(5)
-    def test_reproduce(self):
-        res1 = dual_annealing(self.func, self.ld_bounds, seed=self.seed)
-        res2 = dual_annealing(self.func, self.ld_bounds, seed=self.seed)
-        res3 = dual_annealing(self.func, self.ld_bounds, seed=self.seed)
-        # If we have reproducible results, x components found has to
-        # be exactly the same, which is not the case with no seeding
-        assert_equal(res1.x, res2.x)
-        assert_equal(res1.x, res3.x)
-
-    def test_rand_gen(self):
-        # check that np.random.Generator can be used (numpy >= 1.17)
-        # obtain a np.random.Generator object
-        rng = np.random.default_rng(1)
-
-        res1 = dual_annealing(self.func, self.ld_bounds, seed=rng)
-        # seed again
-        rng = np.random.default_rng(1)
-        res2 = dual_annealing(self.func, self.ld_bounds, seed=rng)
-        # If we have reproducible results, x components found has to
-        # be exactly the same, which is not the case with no seeding
-        assert_equal(res1.x, res2.x)
-
-    def test_bounds_integrity(self):
-        wrong_bounds = [(-5.12, 5.12), (1, 0), (5.12, 5.12)]
-        assert_raises(ValueError, dual_annealing, self.func,
-                      wrong_bounds)
-
-    def test_bound_validity(self):
-        invalid_bounds = [(-5, 5), (-np.inf, 0), (-5, 5)]
-        assert_raises(ValueError, dual_annealing, self.func,
-                      invalid_bounds)
-        invalid_bounds = [(-5, 5), (0, np.inf), (-5, 5)]
-        assert_raises(ValueError, dual_annealing, self.func,
-                      invalid_bounds)
-        invalid_bounds = [(-5, 5), (0, np.nan), (-5, 5)]
-        assert_raises(ValueError, dual_annealing, self.func,
-                      invalid_bounds)
-
-    def test_deprecated_local_search_options_bounds(self):
-        def func(x):
-            return np.sum((x - 5) * (x - 1))
-        bounds = list(zip([-6, -5], [6, 5]))
-        # Test bounds can be passed (see gh-10831)
-
-        with pytest.warns(RuntimeWarning, match=r"Method CG cannot handle "):
-            dual_annealing(
-                func,
-                bounds=bounds,
-                minimizer_kwargs={"method": "CG", "bounds": bounds})
-
-    def test_minimizer_kwargs_bounds(self):
-        def func(x):
-            return np.sum((x - 5) * (x - 1))
-        bounds = list(zip([-6, -5], [6, 5]))
-        # Test bounds can be passed (see gh-10831)
-        dual_annealing(
-            func,
-            bounds=bounds,
-            minimizer_kwargs={"method": "SLSQP", "bounds": bounds})
-
-        with pytest.warns(RuntimeWarning, match=r"Method CG cannot handle "):
-            dual_annealing(
-                func,
-                bounds=bounds,
-                minimizer_kwargs={"method": "CG", "bounds": bounds})
-
-    def test_max_fun_ls(self):
-        ret = dual_annealing(self.func, self.ld_bounds, maxfun=100,
-                             seed=self.seed)
-
-        ls_max_iter = min(max(
-            len(self.ld_bounds) * LocalSearchWrapper.LS_MAXITER_RATIO,
-            LocalSearchWrapper.LS_MAXITER_MIN),
-            LocalSearchWrapper.LS_MAXITER_MAX)
-        assert ret.nfev <= 100 + ls_max_iter
-        assert not ret.success
-
-    def test_max_fun_no_ls(self):
-        ret = dual_annealing(self.func, self.ld_bounds,
-                             no_local_search=True, maxfun=500, seed=self.seed)
-        assert ret.nfev <= 500
-        assert not ret.success
-
-    def test_maxiter(self):
-        ret = dual_annealing(self.func, self.ld_bounds, maxiter=700,
-                             seed=self.seed)
-        assert ret.nit <= 700
-
-    # Testing that args are passed correctly for dual_annealing
-    def test_fun_args_ls(self):
-        ret = dual_annealing(self.func, self.ld_bounds,
-                             args=((3.14159,)), seed=self.seed)
-        assert_allclose(ret.fun, 3.14159, atol=1e-6)
-
-    # Testing that args are passed correctly for pure simulated annealing
-    def test_fun_args_no_ls(self):
-        ret = dual_annealing(self.func, self.ld_bounds,
-                             args=((3.14159, )), no_local_search=True,
-                             seed=self.seed)
-        assert_allclose(ret.fun, 3.14159, atol=1e-4)
-
-    def test_callback_stop(self):
-        # Testing that callback make the algorithm stop for
-        # fun value <= 1.0 (see callback method)
-        ret = dual_annealing(self.func, self.ld_bounds,
-                             callback=self.callback, seed=self.seed)
-        assert ret.fun <= 1.0
-        assert 'stop early' in ret.message[0]
-        assert not ret.success
-
-    @pytest.mark.parametrize('method, atol', [
-        ('Nelder-Mead', 2e-5),
-        ('COBYLA', 1e-5),
-        ('COBYQA', 1e-8),
-        ('Powell', 1e-8),
-        ('CG', 1e-8),
-        ('BFGS', 1e-8),
-        ('TNC', 1e-8),
-        ('SLSQP', 2e-7),
-    ])
-    def test_multi_ls_minimizer(self, method, atol):
-        ret = dual_annealing(self.func, self.ld_bounds,
-                             minimizer_kwargs=dict(method=method),
-                             seed=self.seed)
-        assert_allclose(ret.fun, 0., atol=atol)
-
-    def test_wrong_restart_temp(self):
-        assert_raises(ValueError, dual_annealing, self.func,
-                      self.ld_bounds, restart_temp_ratio=1)
-        assert_raises(ValueError, dual_annealing, self.func,
-                      self.ld_bounds, restart_temp_ratio=0)
-
-    def test_gradient_gnev(self):
-        minimizer_opts = {
-            'jac': self.rosen_der_wrapper,
-        }
-        ret = dual_annealing(rosen, self.ld_bounds,
-                             minimizer_kwargs=minimizer_opts,
-                             seed=self.seed)
-        assert ret.njev == self.ngev
-
-    @pytest.mark.fail_slow(5)
-    def test_from_docstring(self):
-        def func(x):
-            return np.sum(x * x - 10 * np.cos(2 * np.pi * x)) + 10 * np.size(x)
-        lw = [-5.12] * 10
-        up = [5.12] * 10
-        ret = dual_annealing(func, bounds=list(zip(lw, up)), seed=1234)
-        assert_allclose(ret.x,
-                        [-4.26437714e-09, -3.91699361e-09, -1.86149218e-09,
-                         -3.97165720e-09, -6.29151648e-09, -6.53145322e-09,
-                         -3.93616815e-09, -6.55623025e-09, -6.05775280e-09,
-                         -5.00668935e-09], atol=4e-8)
-        assert_allclose(ret.fun, 0.000000, atol=5e-13)
-
-    @pytest.mark.parametrize('new_e, temp_step, accepted, accept_rate', [
-        (0, 100, 1000, 1.0097587941791923),
-        (0, 2, 1000, 1.2599210498948732),
-        (10, 100, 878, 0.8786035869128718),
-        (10, 60, 695, 0.6812920690579612),
-        (2, 100, 990, 0.9897404249173424),
-    ])
-    def test_accept_reject_probabilistic(
-            self, new_e, temp_step, accepted, accept_rate):
-        # Test accepts unconditionally with e < current_energy and
-        # probabilistically with e > current_energy
-
-        rs = check_random_state(123)
-
-        count_accepted = 0
-        iterations = 1000
-
-        accept_param = -5
-        current_energy = 1
-        for _ in range(iterations):
-            energy_state = EnergyState(lower=None, upper=None)
-            # Set energy state with current_energy, any location.
-            energy_state.update_current(current_energy, [0])
-
-            chain = StrategyChain(
-                accept_param, None, None, None, rs, energy_state)
-            # Normally this is set in run()
-            chain.temperature_step = temp_step
-
-            # Check if update is accepted.
-            chain.accept_reject(j=1, e=new_e, x_visit=[2])
-            if energy_state.current_energy == new_e:
-                count_accepted += 1
-
-        assert count_accepted == accepted
-
-        # Check accept rate
-        pqv = 1 - (1 - accept_param) * (new_e - current_energy) / temp_step
-        rate = 0 if pqv <= 0 else np.exp(np.log(pqv) / (1 - accept_param))
-
-        assert_allclose(rate, accept_rate)
-
-    @pytest.mark.fail_slow(5)
-    def test_bounds_class(self):
-        # test that result does not depend on the bounds type
-        def func(x):
-            f = np.sum(x * x - 10 * np.cos(2 * np.pi * x)) + 10 * np.size(x)
-            return f
-        lw = [-5.12] * 5
-        up = [5.12] * 5
-
-        # Unbounded global minimum is all zeros. Most bounds below will force
-        # a DV away from unbounded minimum and be active at solution.
-        up[0] = -2.0
-        up[1] = -1.0
-        lw[3] = 1.0
-        lw[4] = 2.0
-
-        # run optimizations
-        bounds = Bounds(lw, up)
-        ret_bounds_class = dual_annealing(func, bounds=bounds, seed=1234)
-
-        bounds_old = list(zip(lw, up))
-        ret_bounds_list = dual_annealing(func, bounds=bounds_old, seed=1234)
-
-        # test that found minima, function evaluations and iterations match
-        assert_allclose(ret_bounds_class.x, ret_bounds_list.x, atol=1e-8)
-        assert_allclose(ret_bounds_class.x, np.arange(-2, 3), atol=1e-7)
-        assert_allclose(ret_bounds_list.fun, ret_bounds_class.fun, atol=1e-9)
-        assert ret_bounds_list.nfev == ret_bounds_class.nfev
-
-    @pytest.mark.fail_slow(5)
-    def test_callable_jac_hess_with_args_gh11052(self):
-        # dual_annealing used to fail when `jac` was callable and `args` were
-        # used; check that this is resolved. Example is from gh-11052.
-
-        # extended to hess as part of closing gh20614
-        rng = np.random.default_rng(94253637693657847462)
-        def f(x, power):
-            return np.sum(np.exp(x ** power))
-
-        def jac(x, power):
-            return np.exp(x ** power) * power * x ** (power - 1)
-
-        def hess(x, power):
-            # calculated using WolframAlpha as d^2/dx^2 e^(x^p)
-            return np.diag(
-                power * np.exp(x ** power) * x ** (power - 2) *
-                (power * x ** power + power - 1)
-            )
-
-        def hessp(x, p, power):
-            return hess(x, power) @ p
-
-        res1 = dual_annealing(f, args=(2, ), bounds=[[0, 1], [0, 1]], seed=rng,
-                              minimizer_kwargs=dict(method='L-BFGS-B'))
-        res2 = dual_annealing(f, args=(2, ), bounds=[[0, 1], [0, 1]], seed=rng,
-                              minimizer_kwargs=dict(method='L-BFGS-B',
-                                                    jac=jac))
-        res3 = dual_annealing(f, args=(2, ), bounds=[[0, 1], [0, 1]], seed=rng,
-                              minimizer_kwargs=dict(method='newton-cg',
-                                                    jac=jac, hess=hess))
-        res4 = dual_annealing(f, args=(2, ), bounds=[[0, 1], [0, 1]], seed=rng,
-                              minimizer_kwargs=dict(method='newton-cg',
-                                                    jac=jac, hessp=hessp))
-        assert_allclose(res1.fun, res2.fun, rtol=1e-6)
-        assert_allclose(res3.fun, res2.fun, rtol=1e-6)
-        assert_allclose(res4.fun, res2.fun, rtol=1e-6)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__linprog_clean_inputs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__linprog_clean_inputs.py
deleted file mode 100644
index 3b0e4097bc9aadbfd3335aa3a86d063216f2c69a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__linprog_clean_inputs.py
+++ /dev/null
@@ -1,310 +0,0 @@
-"""
-Unit test for Linear Programming via Simplex Algorithm.
-"""
-import numpy as np
-from numpy.testing import assert_, assert_allclose, assert_equal
-from pytest import raises as assert_raises
-from scipy.optimize._linprog_util import _clean_inputs, _LPProblem
-from scipy._lib._util import VisibleDeprecationWarning
-from copy import deepcopy
-from datetime import date
-
-
-def test_aliasing():
-    """
-    Test for ensuring that no objects referred to by `lp` attributes,
-    `c`, `A_ub`, `b_ub`, `A_eq`, `b_eq`, `bounds`, have been modified
-    by `_clean_inputs` as a side effect.
-    """
-    lp = _LPProblem(
-        c=1,
-        A_ub=[[1]],
-        b_ub=[1],
-        A_eq=[[1]],
-        b_eq=[1],
-        bounds=(-np.inf, np.inf)
-    )
-    lp_copy = deepcopy(lp)
-
-    _clean_inputs(lp)
-
-    assert_(lp.c == lp_copy.c, "c modified by _clean_inputs")
-    assert_(lp.A_ub == lp_copy.A_ub, "A_ub modified by _clean_inputs")
-    assert_(lp.b_ub == lp_copy.b_ub, "b_ub modified by _clean_inputs")
-    assert_(lp.A_eq == lp_copy.A_eq, "A_eq modified by _clean_inputs")
-    assert_(lp.b_eq == lp_copy.b_eq, "b_eq modified by _clean_inputs")
-    assert_(lp.bounds == lp_copy.bounds, "bounds modified by _clean_inputs")
-
-
-def test_aliasing2():
-    """
-    Similar purpose as `test_aliasing` above.
-    """
-    lp = _LPProblem(
-        c=np.array([1, 1]),
-        A_ub=np.array([[1, 1], [2, 2]]),
-        b_ub=np.array([[1], [1]]),
-        A_eq=np.array([[1, 1]]),
-        b_eq=np.array([1]),
-        bounds=[(-np.inf, np.inf), (None, 1)]
-    )
-    lp_copy = deepcopy(lp)
-
-    _clean_inputs(lp)
-
-    assert_allclose(lp.c, lp_copy.c, err_msg="c modified by _clean_inputs")
-    assert_allclose(lp.A_ub, lp_copy.A_ub, err_msg="A_ub modified by _clean_inputs")
-    assert_allclose(lp.b_ub, lp_copy.b_ub, err_msg="b_ub modified by _clean_inputs")
-    assert_allclose(lp.A_eq, lp_copy.A_eq, err_msg="A_eq modified by _clean_inputs")
-    assert_allclose(lp.b_eq, lp_copy.b_eq, err_msg="b_eq modified by _clean_inputs")
-    assert_(lp.bounds == lp_copy.bounds, "bounds modified by _clean_inputs")
-
-
-def test_missing_inputs():
-    c = [1, 2]
-    A_ub = np.array([[1, 1], [2, 2]])
-    b_ub = np.array([1, 1])
-    A_eq = np.array([[1, 1], [2, 2]])
-    b_eq = np.array([1, 1])
-
-    assert_raises(TypeError, _clean_inputs)
-    assert_raises(TypeError, _clean_inputs, _LPProblem(c=None))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, A_ub=A_ub))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, A_ub=A_ub, b_ub=None))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, b_ub=b_ub))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, A_ub=None, b_ub=b_ub))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, A_eq=A_eq))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, A_eq=A_eq, b_eq=None))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, b_eq=b_eq))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, A_eq=None, b_eq=b_eq))
-
-
-def test_too_many_dimensions():
-    cb = [1, 2, 3, 4]
-    A = np.random.rand(4, 4)
-    bad2D = [[1, 2], [3, 4]]
-    bad3D = np.random.rand(4, 4, 4)
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=bad2D, A_ub=A, b_ub=cb))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=cb, A_ub=bad3D, b_ub=cb))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=cb, A_ub=A, b_ub=bad2D))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=cb, A_eq=bad3D, b_eq=cb))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=cb, A_eq=A, b_eq=bad2D))
-
-
-def test_too_few_dimensions():
-    bad = np.random.rand(4, 4).ravel()
-    cb = np.random.rand(4)
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=cb, A_ub=bad, b_ub=cb))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=cb, A_eq=bad, b_eq=cb))
-
-
-def test_inconsistent_dimensions():
-    m = 2
-    n = 4
-    c = [1, 2, 3, 4]
-
-    Agood = np.random.rand(m, n)
-    Abad = np.random.rand(m, n + 1)
-    bgood = np.random.rand(m)
-    bbad = np.random.rand(m + 1)
-    boundsbad = [(0, 1)] * (n + 1)
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, A_ub=Abad, b_ub=bgood))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, A_ub=Agood, b_ub=bbad))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, A_eq=Abad, b_eq=bgood))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, A_eq=Agood, b_eq=bbad))
-    assert_raises(ValueError, _clean_inputs, _LPProblem(c=c, bounds=boundsbad))
-    with np.testing.suppress_warnings() as sup:
-        sup.filter(VisibleDeprecationWarning, "Creating an ndarray from ragged")
-        assert_raises(ValueError, _clean_inputs,
-                      _LPProblem(c=c, bounds=[[1, 2], [2, 3], [3, 4], [4, 5, 6]]))
-
-
-def test_type_errors():
-    lp = _LPProblem(
-        c=[1, 2],
-        A_ub=np.array([[1, 1], [2, 2]]),
-        b_ub=np.array([1, 1]),
-        A_eq=np.array([[1, 1], [2, 2]]),
-        b_eq=np.array([1, 1]),
-        bounds=[(0, 1)]
-    )
-    bad = "hello"
-
-    assert_raises(TypeError, _clean_inputs, lp._replace(c=bad))
-    assert_raises(TypeError, _clean_inputs, lp._replace(A_ub=bad))
-    assert_raises(TypeError, _clean_inputs, lp._replace(b_ub=bad))
-    assert_raises(TypeError, _clean_inputs, lp._replace(A_eq=bad))
-    assert_raises(TypeError, _clean_inputs, lp._replace(b_eq=bad))
-
-    assert_raises(ValueError, _clean_inputs, lp._replace(bounds=bad))
-    assert_raises(ValueError, _clean_inputs, lp._replace(bounds="hi"))
-    assert_raises(ValueError, _clean_inputs, lp._replace(bounds=["hi"]))
-    assert_raises(ValueError, _clean_inputs, lp._replace(bounds=[("hi")]))
-    assert_raises(ValueError, _clean_inputs, lp._replace(bounds=[(1, "")]))
-    assert_raises(ValueError, _clean_inputs, lp._replace(bounds=[(1, 2), (1, "")]))
-    assert_raises(TypeError, _clean_inputs,
-                  lp._replace(bounds=[(1, date(2020, 2, 29))]))
-    assert_raises(ValueError, _clean_inputs, lp._replace(bounds=[[[1, 2]]]))
-
-
-def test_non_finite_errors():
-    lp = _LPProblem(
-        c=[1, 2],
-        A_ub=np.array([[1, 1], [2, 2]]),
-        b_ub=np.array([1, 1]),
-        A_eq=np.array([[1, 1], [2, 2]]),
-        b_eq=np.array([1, 1]),
-        bounds=[(0, 1)]
-    )
-    assert_raises(ValueError, _clean_inputs, lp._replace(c=[0, None]))
-    assert_raises(ValueError, _clean_inputs, lp._replace(c=[np.inf, 0]))
-    assert_raises(ValueError, _clean_inputs, lp._replace(c=[0, -np.inf]))
-    assert_raises(ValueError, _clean_inputs, lp._replace(c=[np.nan, 0]))
-
-    assert_raises(ValueError, _clean_inputs, lp._replace(A_ub=[[1, 2], [None, 1]]))
-    assert_raises(ValueError, _clean_inputs, lp._replace(b_ub=[np.inf, 1]))
-    assert_raises(ValueError, _clean_inputs, lp._replace(A_eq=[[1, 2], [1, -np.inf]]))
-    assert_raises(ValueError, _clean_inputs, lp._replace(b_eq=[1, np.nan]))
-
-
-def test__clean_inputs1():
-    lp = _LPProblem(
-        c=[1, 2],
-        A_ub=[[1, 1], [2, 2]],
-        b_ub=[1, 1],
-        A_eq=[[1, 1], [2, 2]],
-        b_eq=[1, 1],
-        bounds=None
-    )
-
-    lp_cleaned = _clean_inputs(lp)
-
-    assert_allclose(lp_cleaned.c, np.array(lp.c))
-    assert_allclose(lp_cleaned.A_ub, np.array(lp.A_ub))
-    assert_allclose(lp_cleaned.b_ub, np.array(lp.b_ub))
-    assert_allclose(lp_cleaned.A_eq, np.array(lp.A_eq))
-    assert_allclose(lp_cleaned.b_eq, np.array(lp.b_eq))
-    assert_equal(lp_cleaned.bounds, [(0, np.inf)] * 2)
-
-    assert_(lp_cleaned.c.shape == (2,), "")
-    assert_(lp_cleaned.A_ub.shape == (2, 2), "")
-    assert_(lp_cleaned.b_ub.shape == (2,), "")
-    assert_(lp_cleaned.A_eq.shape == (2, 2), "")
-    assert_(lp_cleaned.b_eq.shape == (2,), "")
-
-
-def test__clean_inputs2():
-    lp = _LPProblem(
-        c=1,
-        A_ub=[[1]],
-        b_ub=1,
-        A_eq=[[1]],
-        b_eq=1,
-        bounds=(0, 1)
-    )
-
-    lp_cleaned = _clean_inputs(lp)
-
-    assert_allclose(lp_cleaned.c, np.array(lp.c))
-    assert_allclose(lp_cleaned.A_ub, np.array(lp.A_ub))
-    assert_allclose(lp_cleaned.b_ub, np.array(lp.b_ub))
-    assert_allclose(lp_cleaned.A_eq, np.array(lp.A_eq))
-    assert_allclose(lp_cleaned.b_eq, np.array(lp.b_eq))
-    assert_equal(lp_cleaned.bounds, [(0, 1)])
-
-    assert_(lp_cleaned.c.shape == (1,), "")
-    assert_(lp_cleaned.A_ub.shape == (1, 1), "")
-    assert_(lp_cleaned.b_ub.shape == (1,), "")
-    assert_(lp_cleaned.A_eq.shape == (1, 1), "")
-    assert_(lp_cleaned.b_eq.shape == (1,), "")
-
-
-def test__clean_inputs3():
-    lp = _LPProblem(
-        c=[[1, 2]],
-        A_ub=np.random.rand(2, 2),
-        b_ub=[[1], [2]],
-        A_eq=np.random.rand(2, 2),
-        b_eq=[[1], [2]],
-        bounds=[(0, 1)]
-    )
-
-    lp_cleaned = _clean_inputs(lp)
-
-    assert_allclose(lp_cleaned.c, np.array([1, 2]))
-    assert_allclose(lp_cleaned.b_ub, np.array([1, 2]))
-    assert_allclose(lp_cleaned.b_eq, np.array([1, 2]))
-    assert_equal(lp_cleaned.bounds, [(0, 1)] * 2)
-
-    assert_(lp_cleaned.c.shape == (2,), "")
-    assert_(lp_cleaned.b_ub.shape == (2,), "")
-    assert_(lp_cleaned.b_eq.shape == (2,), "")
-
-
-def test_bad_bounds():
-    lp = _LPProblem(c=[1, 2])
-
-    assert_raises(ValueError, _clean_inputs, lp._replace(bounds=(1, 2, 2)))
-    assert_raises(ValueError, _clean_inputs, lp._replace(bounds=[(1, 2, 2)]))
-    with np.testing.suppress_warnings() as sup:
-        sup.filter(VisibleDeprecationWarning, "Creating an ndarray from ragged")
-        assert_raises(ValueError, _clean_inputs,
-                      lp._replace(bounds=[(1, 2), (1, 2, 2)]))
-    assert_raises(ValueError, _clean_inputs,
-                  lp._replace(bounds=[(1, 2), (1, 2), (1, 2)]))
-
-    lp = _LPProblem(c=[1, 2, 3, 4])
-
-    assert_raises(ValueError, _clean_inputs,
-                  lp._replace(bounds=[(1, 2, 3, 4), (1, 2, 3, 4)]))
-
-
-def test_good_bounds():
-    lp = _LPProblem(c=[1, 2])
-
-    lp_cleaned = _clean_inputs(lp)  # lp.bounds is None by default
-    assert_equal(lp_cleaned.bounds, [(0, np.inf)] * 2)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=[]))
-    assert_equal(lp_cleaned.bounds, [(0, np.inf)] * 2)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=[[]]))
-    assert_equal(lp_cleaned.bounds, [(0, np.inf)] * 2)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=(1, 2)))
-    assert_equal(lp_cleaned.bounds, [(1, 2)] * 2)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=[(1, 2)]))
-    assert_equal(lp_cleaned.bounds, [(1, 2)] * 2)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=[(1, None)]))
-    assert_equal(lp_cleaned.bounds, [(1, np.inf)] * 2)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=[(None, 1)]))
-    assert_equal(lp_cleaned.bounds, [(-np.inf, 1)] * 2)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=[(None, None), (-np.inf, None)]))
-    assert_equal(lp_cleaned.bounds, [(-np.inf, np.inf)] * 2)
-
-    lp = _LPProblem(c=[1, 2, 3, 4])
-
-    lp_cleaned = _clean_inputs(lp)  # lp.bounds is None by default
-    assert_equal(lp_cleaned.bounds, [(0, np.inf)] * 4)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=(1, 2)))
-    assert_equal(lp_cleaned.bounds, [(1, 2)] * 4)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=[(1, 2)]))
-    assert_equal(lp_cleaned.bounds, [(1, 2)] * 4)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=[(1, None)]))
-    assert_equal(lp_cleaned.bounds, [(1, np.inf)] * 4)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=[(None, 1)]))
-    assert_equal(lp_cleaned.bounds, [(-np.inf, 1)] * 4)
-
-    lp_cleaned = _clean_inputs(lp._replace(bounds=[(None, None),
-                                                   (-np.inf, None),
-                                                   (None, np.inf),
-                                                   (-np.inf, np.inf)]))
-    assert_equal(lp_cleaned.bounds, [(-np.inf, np.inf)] * 4)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__numdiff.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__numdiff.py
deleted file mode 100644
index 7f695d94569438233afd1c3b3d2db2e390654f01..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__numdiff.py
+++ /dev/null
@@ -1,815 +0,0 @@
-import math
-from itertools import product
-
-import numpy as np
-from numpy.testing import assert_allclose, assert_equal, assert_
-from pytest import raises as assert_raises
-
-from scipy.sparse import csr_matrix, csc_matrix, lil_matrix
-
-from scipy.optimize._numdiff import (
-    _adjust_scheme_to_bounds, approx_derivative, check_derivative,
-    group_columns, _eps_for_method, _compute_absolute_step)
-
-
-def test_group_columns():
-    structure = [
-        [1, 1, 0, 0, 0, 0],
-        [1, 1, 1, 0, 0, 0],
-        [0, 1, 1, 1, 0, 0],
-        [0, 0, 1, 1, 1, 0],
-        [0, 0, 0, 1, 1, 1],
-        [0, 0, 0, 0, 1, 1],
-        [0, 0, 0, 0, 0, 0]
-    ]
-    for transform in [np.asarray, csr_matrix, csc_matrix, lil_matrix]:
-        A = transform(structure)
-        order = np.arange(6)
-        groups_true = np.array([0, 1, 2, 0, 1, 2])
-        groups = group_columns(A, order)
-        assert_equal(groups, groups_true)
-
-        order = [1, 2, 4, 3, 5, 0]
-        groups_true = np.array([2, 0, 1, 2, 0, 1])
-        groups = group_columns(A, order)
-        assert_equal(groups, groups_true)
-
-    # Test repeatability.
-    groups_1 = group_columns(A)
-    groups_2 = group_columns(A)
-    assert_equal(groups_1, groups_2)
-
-
-def test_correct_fp_eps():
-    # check that relative step size is correct for FP size
-    EPS = np.finfo(np.float64).eps
-    relative_step = {"2-point": EPS**0.5,
-                    "3-point": EPS**(1/3),
-                     "cs": EPS**0.5}
-    for method in ['2-point', '3-point', 'cs']:
-        assert_allclose(
-            _eps_for_method(np.float64, np.float64, method),
-            relative_step[method])
-        assert_allclose(
-            _eps_for_method(np.complex128, np.complex128, method),
-            relative_step[method]
-        )
-
-    # check another FP size
-    EPS = np.finfo(np.float32).eps
-    relative_step = {"2-point": EPS**0.5,
-                    "3-point": EPS**(1/3),
-                     "cs": EPS**0.5}
-
-    for method in ['2-point', '3-point', 'cs']:
-        assert_allclose(
-            _eps_for_method(np.float64, np.float32, method),
-            relative_step[method]
-        )
-        assert_allclose(
-            _eps_for_method(np.float32, np.float64, method),
-            relative_step[method]
-        )
-        assert_allclose(
-            _eps_for_method(np.float32, np.float32, method),
-            relative_step[method]
-        )
-
-
-class TestAdjustSchemeToBounds:
-    def test_no_bounds(self):
-        x0 = np.zeros(3)
-        h = np.full(3, 1e-2)
-        inf_lower = np.empty_like(x0)
-        inf_upper = np.empty_like(x0)
-        inf_lower.fill(-np.inf)
-        inf_upper.fill(np.inf)
-
-        h_adjusted, one_sided = _adjust_scheme_to_bounds(
-            x0, h, 1, '1-sided', inf_lower, inf_upper)
-        assert_allclose(h_adjusted, h)
-        assert_(np.all(one_sided))
-
-        h_adjusted, one_sided = _adjust_scheme_to_bounds(
-            x0, h, 2, '1-sided', inf_lower, inf_upper)
-        assert_allclose(h_adjusted, h)
-        assert_(np.all(one_sided))
-
-        h_adjusted, one_sided = _adjust_scheme_to_bounds(
-            x0, h, 1, '2-sided', inf_lower, inf_upper)
-        assert_allclose(h_adjusted, h)
-        assert_(np.all(~one_sided))
-
-        h_adjusted, one_sided = _adjust_scheme_to_bounds(
-            x0, h, 2, '2-sided', inf_lower, inf_upper)
-        assert_allclose(h_adjusted, h)
-        assert_(np.all(~one_sided))
-
-    def test_with_bound(self):
-        x0 = np.array([0.0, 0.85, -0.85])
-        lb = -np.ones(3)
-        ub = np.ones(3)
-        h = np.array([1, 1, -1]) * 1e-1
-
-        h_adjusted, _ = _adjust_scheme_to_bounds(x0, h, 1, '1-sided', lb, ub)
-        assert_allclose(h_adjusted, h)
-
-        h_adjusted, _ = _adjust_scheme_to_bounds(x0, h, 2, '1-sided', lb, ub)
-        assert_allclose(h_adjusted, np.array([1, -1, 1]) * 1e-1)
-
-        h_adjusted, one_sided = _adjust_scheme_to_bounds(
-            x0, h, 1, '2-sided', lb, ub)
-        assert_allclose(h_adjusted, np.abs(h))
-        assert_(np.all(~one_sided))
-
-        h_adjusted, one_sided = _adjust_scheme_to_bounds(
-            x0, h, 2, '2-sided', lb, ub)
-        assert_allclose(h_adjusted, np.array([1, -1, 1]) * 1e-1)
-        assert_equal(one_sided, np.array([False, True, True]))
-
-    def test_tight_bounds(self):
-        lb = np.array([-0.03, -0.03])
-        ub = np.array([0.05, 0.05])
-        x0 = np.array([0.0, 0.03])
-        h = np.array([-0.1, -0.1])
-
-        h_adjusted, _ = _adjust_scheme_to_bounds(x0, h, 1, '1-sided', lb, ub)
-        assert_allclose(h_adjusted, np.array([0.05, -0.06]))
-
-        h_adjusted, _ = _adjust_scheme_to_bounds(x0, h, 2, '1-sided', lb, ub)
-        assert_allclose(h_adjusted, np.array([0.025, -0.03]))
-
-        h_adjusted, one_sided = _adjust_scheme_to_bounds(
-            x0, h, 1, '2-sided', lb, ub)
-        assert_allclose(h_adjusted, np.array([0.03, -0.03]))
-        assert_equal(one_sided, np.array([False, True]))
-
-        h_adjusted, one_sided = _adjust_scheme_to_bounds(
-            x0, h, 2, '2-sided', lb, ub)
-        assert_allclose(h_adjusted, np.array([0.015, -0.015]))
-        assert_equal(one_sided, np.array([False, True]))
-
-
-class TestApproxDerivativesDense:
-    def fun_scalar_scalar(self, x):
-        return np.sinh(x)
-
-    def jac_scalar_scalar(self, x):
-        return np.cosh(x)
-
-    def fun_scalar_vector(self, x):
-        return np.array([x[0]**2, np.tan(x[0]), np.exp(x[0])])
-
-    def jac_scalar_vector(self, x):
-        return np.array(
-            [2 * x[0], np.cos(x[0]) ** -2, np.exp(x[0])]).reshape(-1, 1)
-
-    def fun_vector_scalar(self, x):
-        return np.sin(x[0] * x[1]) * np.log(x[0])
-
-    def wrong_dimensions_fun(self, x):
-        return np.array([x**2, np.tan(x), np.exp(x)])
-
-    def jac_vector_scalar(self, x):
-        return np.array([
-            x[1] * np.cos(x[0] * x[1]) * np.log(x[0]) +
-            np.sin(x[0] * x[1]) / x[0],
-            x[0] * np.cos(x[0] * x[1]) * np.log(x[0])
-        ])
-
-    def fun_vector_vector(self, x):
-        return np.array([
-            x[0] * np.sin(x[1]),
-            x[1] * np.cos(x[0]),
-            x[0] ** 3 * x[1] ** -0.5
-        ])
-
-    def jac_vector_vector(self, x):
-        return np.array([
-            [np.sin(x[1]), x[0] * np.cos(x[1])],
-            [-x[1] * np.sin(x[0]), np.cos(x[0])],
-            [3 * x[0] ** 2 * x[1] ** -0.5, -0.5 * x[0] ** 3 * x[1] ** -1.5]
-        ])
-
-    def fun_parametrized(self, x, c0, c1=1.0):
-        return np.array([np.exp(c0 * x[0]), np.exp(c1 * x[1])])
-
-    def jac_parametrized(self, x, c0, c1=0.1):
-        return np.array([
-            [c0 * np.exp(c0 * x[0]), 0],
-            [0, c1 * np.exp(c1 * x[1])]
-        ])
-
-    def fun_with_nan(self, x):
-        return x if np.abs(x) <= 1e-8 else np.nan
-
-    def jac_with_nan(self, x):
-        return 1.0 if np.abs(x) <= 1e-8 else np.nan
-
-    def fun_zero_jacobian(self, x):
-        return np.array([x[0] * x[1], np.cos(x[0] * x[1])])
-
-    def jac_zero_jacobian(self, x):
-        return np.array([
-            [x[1], x[0]],
-            [-x[1] * np.sin(x[0] * x[1]), -x[0] * np.sin(x[0] * x[1])]
-        ])
-
-    def jac_non_numpy(self, x):
-        # x can be a scalar or an array [val].
-        # Cast to true scalar before handing over to math.exp
-        xp = np.asarray(x).item()
-        return math.exp(xp)
-
-    def test_scalar_scalar(self):
-        x0 = 1.0
-        jac_diff_2 = approx_derivative(self.fun_scalar_scalar, x0,
-                                       method='2-point')
-        jac_diff_3 = approx_derivative(self.fun_scalar_scalar, x0)
-        jac_diff_4 = approx_derivative(self.fun_scalar_scalar, x0,
-                                       method='cs')
-        jac_true = self.jac_scalar_scalar(x0)
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-6)
-        assert_allclose(jac_diff_3, jac_true, rtol=1e-9)
-        assert_allclose(jac_diff_4, jac_true, rtol=1e-12)
-
-    def test_scalar_scalar_abs_step(self):
-        # can approx_derivative use abs_step?
-        x0 = 1.0
-        jac_diff_2 = approx_derivative(self.fun_scalar_scalar, x0,
-                                       method='2-point', abs_step=1.49e-8)
-        jac_diff_3 = approx_derivative(self.fun_scalar_scalar, x0,
-                                       abs_step=1.49e-8)
-        jac_diff_4 = approx_derivative(self.fun_scalar_scalar, x0,
-                                       method='cs', abs_step=1.49e-8)
-        jac_true = self.jac_scalar_scalar(x0)
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-6)
-        assert_allclose(jac_diff_3, jac_true, rtol=1e-9)
-        assert_allclose(jac_diff_4, jac_true, rtol=1e-12)
-
-    def test_scalar_vector(self):
-        x0 = 0.5
-        jac_diff_2 = approx_derivative(self.fun_scalar_vector, x0,
-                                       method='2-point')
-        jac_diff_3 = approx_derivative(self.fun_scalar_vector, x0)
-        jac_diff_4 = approx_derivative(self.fun_scalar_vector, x0,
-                                       method='cs')
-        jac_true = self.jac_scalar_vector(np.atleast_1d(x0))
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-6)
-        assert_allclose(jac_diff_3, jac_true, rtol=1e-9)
-        assert_allclose(jac_diff_4, jac_true, rtol=1e-12)
-
-    def test_vector_scalar(self):
-        x0 = np.array([100.0, -0.5])
-        jac_diff_2 = approx_derivative(self.fun_vector_scalar, x0,
-                                       method='2-point')
-        jac_diff_3 = approx_derivative(self.fun_vector_scalar, x0)
-        jac_diff_4 = approx_derivative(self.fun_vector_scalar, x0,
-                                       method='cs')
-        jac_true = self.jac_vector_scalar(x0)
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-6)
-        assert_allclose(jac_diff_3, jac_true, rtol=1e-7)
-        assert_allclose(jac_diff_4, jac_true, rtol=1e-12)
-
-    def test_vector_scalar_abs_step(self):
-        # can approx_derivative use abs_step?
-        x0 = np.array([100.0, -0.5])
-        jac_diff_2 = approx_derivative(self.fun_vector_scalar, x0,
-                                       method='2-point', abs_step=1.49e-8)
-        jac_diff_3 = approx_derivative(self.fun_vector_scalar, x0,
-                                       abs_step=1.49e-8, rel_step=np.inf)
-        jac_diff_4 = approx_derivative(self.fun_vector_scalar, x0,
-                                       method='cs', abs_step=1.49e-8)
-        jac_true = self.jac_vector_scalar(x0)
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-6)
-        assert_allclose(jac_diff_3, jac_true, rtol=3e-9)
-        assert_allclose(jac_diff_4, jac_true, rtol=1e-12)
-
-    def test_vector_vector(self):
-        x0 = np.array([-100.0, 0.2])
-        jac_diff_2 = approx_derivative(self.fun_vector_vector, x0,
-                                       method='2-point')
-        jac_diff_3 = approx_derivative(self.fun_vector_vector, x0)
-        jac_diff_4 = approx_derivative(self.fun_vector_vector, x0,
-                                       method='cs')
-        jac_true = self.jac_vector_vector(x0)
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-5)
-        assert_allclose(jac_diff_3, jac_true, rtol=1e-6)
-        assert_allclose(jac_diff_4, jac_true, rtol=1e-12)
-
-    def test_wrong_dimensions(self):
-        x0 = 1.0
-        assert_raises(RuntimeError, approx_derivative,
-                      self.wrong_dimensions_fun, x0)
-        f0 = self.wrong_dimensions_fun(np.atleast_1d(x0))
-        assert_raises(ValueError, approx_derivative,
-                      self.wrong_dimensions_fun, x0, f0=f0)
-
-    def test_custom_rel_step(self):
-        x0 = np.array([-0.1, 0.1])
-        jac_diff_2 = approx_derivative(self.fun_vector_vector, x0,
-                                       method='2-point', rel_step=1e-4)
-        jac_diff_3 = approx_derivative(self.fun_vector_vector, x0,
-                                       rel_step=1e-4)
-        jac_true = self.jac_vector_vector(x0)
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-2)
-        assert_allclose(jac_diff_3, jac_true, rtol=1e-4)
-
-    def test_options(self):
-        x0 = np.array([1.0, 1.0])
-        c0 = -1.0
-        c1 = 1.0
-        lb = 0.0
-        ub = 2.0
-        f0 = self.fun_parametrized(x0, c0, c1=c1)
-        rel_step = np.array([-1e-6, 1e-7])
-        jac_true = self.jac_parametrized(x0, c0, c1)
-        jac_diff_2 = approx_derivative(
-            self.fun_parametrized, x0, method='2-point', rel_step=rel_step,
-            f0=f0, args=(c0,), kwargs=dict(c1=c1), bounds=(lb, ub))
-        jac_diff_3 = approx_derivative(
-            self.fun_parametrized, x0, rel_step=rel_step,
-            f0=f0, args=(c0,), kwargs=dict(c1=c1), bounds=(lb, ub))
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-6)
-        assert_allclose(jac_diff_3, jac_true, rtol=1e-9)
-
-    def test_with_bounds_2_point(self):
-        lb = -np.ones(2)
-        ub = np.ones(2)
-
-        x0 = np.array([-2.0, 0.2])
-        assert_raises(ValueError, approx_derivative,
-                      self.fun_vector_vector, x0, bounds=(lb, ub))
-
-        x0 = np.array([-1.0, 1.0])
-        jac_diff = approx_derivative(self.fun_vector_vector, x0,
-                                     method='2-point', bounds=(lb, ub))
-        jac_true = self.jac_vector_vector(x0)
-        assert_allclose(jac_diff, jac_true, rtol=1e-6)
-
-    def test_with_bounds_3_point(self):
-        lb = np.array([1.0, 1.0])
-        ub = np.array([2.0, 2.0])
-
-        x0 = np.array([1.0, 2.0])
-        jac_true = self.jac_vector_vector(x0)
-
-        jac_diff = approx_derivative(self.fun_vector_vector, x0)
-        assert_allclose(jac_diff, jac_true, rtol=1e-9)
-
-        jac_diff = approx_derivative(self.fun_vector_vector, x0,
-                                     bounds=(lb, np.inf))
-        assert_allclose(jac_diff, jac_true, rtol=1e-9)
-
-        jac_diff = approx_derivative(self.fun_vector_vector, x0,
-                                     bounds=(-np.inf, ub))
-        assert_allclose(jac_diff, jac_true, rtol=1e-9)
-
-        jac_diff = approx_derivative(self.fun_vector_vector, x0,
-                                     bounds=(lb, ub))
-        assert_allclose(jac_diff, jac_true, rtol=1e-9)
-
-    def test_tight_bounds(self):
-        x0 = np.array([10.0, 10.0])
-        lb = x0 - 3e-9
-        ub = x0 + 2e-9
-        jac_true = self.jac_vector_vector(x0)
-        jac_diff = approx_derivative(
-            self.fun_vector_vector, x0, method='2-point', bounds=(lb, ub))
-        assert_allclose(jac_diff, jac_true, rtol=1e-6)
-        jac_diff = approx_derivative(
-            self.fun_vector_vector, x0, method='2-point',
-            rel_step=1e-6, bounds=(lb, ub))
-        assert_allclose(jac_diff, jac_true, rtol=1e-6)
-
-        jac_diff = approx_derivative(
-            self.fun_vector_vector, x0, bounds=(lb, ub))
-        assert_allclose(jac_diff, jac_true, rtol=1e-6)
-        jac_diff = approx_derivative(
-            self.fun_vector_vector, x0, rel_step=1e-6, bounds=(lb, ub))
-        assert_allclose(jac_true, jac_diff, rtol=1e-6)
-
-    def test_bound_switches(self):
-        lb = -1e-8
-        ub = 1e-8
-        x0 = 0.0
-        jac_true = self.jac_with_nan(x0)
-        jac_diff_2 = approx_derivative(
-            self.fun_with_nan, x0, method='2-point', rel_step=1e-6,
-            bounds=(lb, ub))
-        jac_diff_3 = approx_derivative(
-            self.fun_with_nan, x0, rel_step=1e-6, bounds=(lb, ub))
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-6)
-        assert_allclose(jac_diff_3, jac_true, rtol=1e-9)
-
-        x0 = 1e-8
-        jac_true = self.jac_with_nan(x0)
-        jac_diff_2 = approx_derivative(
-            self.fun_with_nan, x0, method='2-point', rel_step=1e-6,
-            bounds=(lb, ub))
-        jac_diff_3 = approx_derivative(
-            self.fun_with_nan, x0, rel_step=1e-6, bounds=(lb, ub))
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-6)
-        assert_allclose(jac_diff_3, jac_true, rtol=1e-9)
-
-    def test_non_numpy(self):
-        x0 = 1.0
-        jac_true = self.jac_non_numpy(x0)
-        jac_diff_2 = approx_derivative(self.jac_non_numpy, x0,
-                                       method='2-point')
-        jac_diff_3 = approx_derivative(self.jac_non_numpy, x0)
-        assert_allclose(jac_diff_2, jac_true, rtol=1e-6)
-        assert_allclose(jac_diff_3, jac_true, rtol=1e-8)
-
-        # math.exp cannot handle complex arguments, hence this raises
-        assert_raises(TypeError, approx_derivative, self.jac_non_numpy, x0,
-                      **dict(method='cs'))
-
-    def test_fp(self):
-        # checks that approx_derivative works for FP size other than 64.
-        # Example is derived from the minimal working example in gh12991.
-        np.random.seed(1)
-
-        def func(p, x):
-            return p[0] + p[1] * x
-
-        def err(p, x, y):
-            return func(p, x) - y
-
-        x = np.linspace(0, 1, 100, dtype=np.float64)
-        y = np.random.random(100).astype(np.float64)
-        p0 = np.array([-1.0, -1.0])
-
-        jac_fp64 = approx_derivative(err, p0, method='2-point', args=(x, y))
-
-        # parameter vector is float32, func output is float64
-        jac_fp = approx_derivative(err, p0.astype(np.float32),
-                                   method='2-point', args=(x, y))
-        assert err(p0, x, y).dtype == np.float64
-        assert_allclose(jac_fp, jac_fp64, atol=1e-3)
-
-        # parameter vector is float64, func output is float32
-        def err_fp32(p):
-            assert p.dtype == np.float32
-            return err(p, x, y).astype(np.float32)
-
-        jac_fp = approx_derivative(err_fp32, p0.astype(np.float32),
-                                   method='2-point')
-        assert_allclose(jac_fp, jac_fp64, atol=1e-3)
-
-        # check upper bound of error on the derivative for 2-point
-        def f(x):
-            return np.sin(x)
-        def g(x):
-            return np.cos(x)
-        def hess(x):
-            return -np.sin(x)
-
-        def calc_atol(h, x0, f, hess, EPS):
-            # truncation error
-            t0 = h / 2 * max(np.abs(hess(x0)), np.abs(hess(x0 + h)))
-            # roundoff error. There may be a divisor (>1) missing from
-            # the following line, so this contribution is possibly
-            # overestimated
-            t1 = EPS / h * max(np.abs(f(x0)), np.abs(f(x0 + h)))
-            return t0 + t1
-
-        for dtype in [np.float16, np.float32, np.float64]:
-            EPS = np.finfo(dtype).eps
-            x0 = np.array(1.0).astype(dtype)
-            h = _compute_absolute_step(None, x0, f(x0), '2-point')
-            atol = calc_atol(h, x0, f, hess, EPS)
-            err = approx_derivative(f, x0, method='2-point',
-                                    abs_step=h) - g(x0)
-            assert abs(err) < atol
-
-    def test_check_derivative(self):
-        x0 = np.array([-10.0, 10])
-        accuracy = check_derivative(self.fun_vector_vector,
-                                    self.jac_vector_vector, x0)
-        assert_(accuracy < 1e-9)
-        accuracy = check_derivative(self.fun_vector_vector,
-                                    self.jac_vector_vector, x0)
-        assert_(accuracy < 1e-6)
-
-        x0 = np.array([0.0, 0.0])
-        accuracy = check_derivative(self.fun_zero_jacobian,
-                                    self.jac_zero_jacobian, x0)
-        assert_(accuracy == 0)
-        accuracy = check_derivative(self.fun_zero_jacobian,
-                                    self.jac_zero_jacobian, x0)
-        assert_(accuracy == 0)
-
-
-class TestApproxDerivativeSparse:
-    # Example from Numerical Optimization 2nd edition, p. 198.
-    def setup_method(self):
-        np.random.seed(0)
-        self.n = 50
-        self.lb = -0.1 * (1 + np.arange(self.n))
-        self.ub = 0.1 * (1 + np.arange(self.n))
-        self.x0 = np.empty(self.n)
-        self.x0[::2] = (1 - 1e-7) * self.lb[::2]
-        self.x0[1::2] = (1 - 1e-7) * self.ub[1::2]
-
-        self.J_true = self.jac(self.x0)
-
-    def fun(self, x):
-        e = x[1:]**3 - x[:-1]**2
-        return np.hstack((0, 3 * e)) + np.hstack((2 * e, 0))
-
-    def jac(self, x):
-        n = x.size
-        J = np.zeros((n, n))
-        J[0, 0] = -4 * x[0]
-        J[0, 1] = 6 * x[1]**2
-        for i in range(1, n - 1):
-            J[i, i - 1] = -6 * x[i-1]
-            J[i, i] = 9 * x[i]**2 - 4 * x[i]
-            J[i, i + 1] = 6 * x[i+1]**2
-        J[-1, -1] = 9 * x[-1]**2
-        J[-1, -2] = -6 * x[-2]
-
-        return J
-
-    def structure(self, n):
-        A = np.zeros((n, n), dtype=int)
-        A[0, 0] = 1
-        A[0, 1] = 1
-        for i in range(1, n - 1):
-            A[i, i - 1: i + 2] = 1
-        A[-1, -1] = 1
-        A[-1, -2] = 1
-
-        return A
-
-    def test_all(self):
-        A = self.structure(self.n)
-        order = np.arange(self.n)
-        groups_1 = group_columns(A, order)
-        np.random.shuffle(order)
-        groups_2 = group_columns(A, order)
-
-        for method, groups, l, u in product(
-                ['2-point', '3-point', 'cs'], [groups_1, groups_2],
-                [-np.inf, self.lb], [np.inf, self.ub]):
-            J = approx_derivative(self.fun, self.x0, method=method,
-                                  bounds=(l, u), sparsity=(A, groups))
-            assert_(isinstance(J, csr_matrix))
-            assert_allclose(J.toarray(), self.J_true, rtol=1e-6)
-
-            rel_step = np.full_like(self.x0, 1e-8)
-            rel_step[::2] *= -1
-            J = approx_derivative(self.fun, self.x0, method=method,
-                                  rel_step=rel_step, sparsity=(A, groups))
-            assert_allclose(J.toarray(), self.J_true, rtol=1e-5)
-
-    def test_no_precomputed_groups(self):
-        A = self.structure(self.n)
-        J = approx_derivative(self.fun, self.x0, sparsity=A)
-        assert_allclose(J.toarray(), self.J_true, rtol=1e-6)
-
-    def test_equivalence(self):
-        structure = np.ones((self.n, self.n), dtype=int)
-        groups = np.arange(self.n)
-        for method in ['2-point', '3-point', 'cs']:
-            J_dense = approx_derivative(self.fun, self.x0, method=method)
-            J_sparse = approx_derivative(
-                self.fun, self.x0, sparsity=(structure, groups), method=method)
-            assert_allclose(J_dense, J_sparse.toarray(),
-                            rtol=5e-16, atol=7e-15)
-
-    def test_check_derivative(self):
-        def jac(x):
-            return csr_matrix(self.jac(x))
-
-        accuracy = check_derivative(self.fun, jac, self.x0,
-                                    bounds=(self.lb, self.ub))
-        assert_(accuracy < 1e-9)
-
-        accuracy = check_derivative(self.fun, jac, self.x0,
-                                    bounds=(self.lb, self.ub))
-        assert_(accuracy < 1e-9)
-
-
-class TestApproxDerivativeLinearOperator:
-
-    def fun_scalar_scalar(self, x):
-        return np.sinh(x)
-
-    def jac_scalar_scalar(self, x):
-        return np.cosh(x)
-
-    def fun_scalar_vector(self, x):
-        return np.array([x[0]**2, np.tan(x[0]), np.exp(x[0])])
-
-    def jac_scalar_vector(self, x):
-        return np.array(
-            [2 * x[0], np.cos(x[0]) ** -2, np.exp(x[0])]).reshape(-1, 1)
-
-    def fun_vector_scalar(self, x):
-        return np.sin(x[0] * x[1]) * np.log(x[0])
-
-    def jac_vector_scalar(self, x):
-        return np.array([
-            x[1] * np.cos(x[0] * x[1]) * np.log(x[0]) +
-            np.sin(x[0] * x[1]) / x[0],
-            x[0] * np.cos(x[0] * x[1]) * np.log(x[0])
-        ])
-
-    def fun_vector_vector(self, x):
-        return np.array([
-            x[0] * np.sin(x[1]),
-            x[1] * np.cos(x[0]),
-            x[0] ** 3 * x[1] ** -0.5
-        ])
-
-    def jac_vector_vector(self, x):
-        return np.array([
-            [np.sin(x[1]), x[0] * np.cos(x[1])],
-            [-x[1] * np.sin(x[0]), np.cos(x[0])],
-            [3 * x[0] ** 2 * x[1] ** -0.5, -0.5 * x[0] ** 3 * x[1] ** -1.5]
-        ])
-
-    def test_scalar_scalar(self):
-        x0 = 1.0
-        jac_diff_2 = approx_derivative(self.fun_scalar_scalar, x0,
-                                       method='2-point',
-                                       as_linear_operator=True)
-        jac_diff_3 = approx_derivative(self.fun_scalar_scalar, x0,
-                                       as_linear_operator=True)
-        jac_diff_4 = approx_derivative(self.fun_scalar_scalar, x0,
-                                       method='cs',
-                                       as_linear_operator=True)
-        jac_true = self.jac_scalar_scalar(x0)
-        np.random.seed(1)
-        for i in range(10):
-            p = np.random.uniform(-10, 10, size=(1,))
-            assert_allclose(jac_diff_2.dot(p), jac_true*p,
-                            rtol=1e-5)
-            assert_allclose(jac_diff_3.dot(p), jac_true*p,
-                            rtol=5e-6)
-            assert_allclose(jac_diff_4.dot(p), jac_true*p,
-                            rtol=5e-6)
-
-    def test_scalar_vector(self):
-        x0 = 0.5
-        jac_diff_2 = approx_derivative(self.fun_scalar_vector, x0,
-                                       method='2-point',
-                                       as_linear_operator=True)
-        jac_diff_3 = approx_derivative(self.fun_scalar_vector, x0,
-                                       as_linear_operator=True)
-        jac_diff_4 = approx_derivative(self.fun_scalar_vector, x0,
-                                       method='cs',
-                                       as_linear_operator=True)
-        jac_true = self.jac_scalar_vector(np.atleast_1d(x0))
-        np.random.seed(1)
-        for i in range(10):
-            p = np.random.uniform(-10, 10, size=(1,))
-            assert_allclose(jac_diff_2.dot(p), jac_true.dot(p),
-                            rtol=1e-5)
-            assert_allclose(jac_diff_3.dot(p), jac_true.dot(p),
-                            rtol=5e-6)
-            assert_allclose(jac_diff_4.dot(p), jac_true.dot(p),
-                            rtol=5e-6)
-
-    def test_vector_scalar(self):
-        x0 = np.array([100.0, -0.5])
-        jac_diff_2 = approx_derivative(self.fun_vector_scalar, x0,
-                                       method='2-point',
-                                       as_linear_operator=True)
-        jac_diff_3 = approx_derivative(self.fun_vector_scalar, x0,
-                                       as_linear_operator=True)
-        jac_diff_4 = approx_derivative(self.fun_vector_scalar, x0,
-                                       method='cs',
-                                       as_linear_operator=True)
-        jac_true = self.jac_vector_scalar(x0)
-        np.random.seed(1)
-        for i in range(10):
-            p = np.random.uniform(-10, 10, size=x0.shape)
-            assert_allclose(jac_diff_2.dot(p), np.atleast_1d(jac_true.dot(p)),
-                            rtol=1e-5)
-            assert_allclose(jac_diff_3.dot(p), np.atleast_1d(jac_true.dot(p)),
-                            rtol=5e-6)
-            assert_allclose(jac_diff_4.dot(p), np.atleast_1d(jac_true.dot(p)),
-                            rtol=1e-7)
-
-    def test_vector_vector(self):
-        x0 = np.array([-100.0, 0.2])
-        jac_diff_2 = approx_derivative(self.fun_vector_vector, x0,
-                                       method='2-point',
-                                       as_linear_operator=True)
-        jac_diff_3 = approx_derivative(self.fun_vector_vector, x0,
-                                       as_linear_operator=True)
-        jac_diff_4 = approx_derivative(self.fun_vector_vector, x0,
-                                       method='cs',
-                                       as_linear_operator=True)
-        jac_true = self.jac_vector_vector(x0)
-        np.random.seed(1)
-        for i in range(10):
-            p = np.random.uniform(-10, 10, size=x0.shape)
-            assert_allclose(jac_diff_2.dot(p), jac_true.dot(p), rtol=1e-5)
-            assert_allclose(jac_diff_3.dot(p), jac_true.dot(p), rtol=1e-6)
-            assert_allclose(jac_diff_4.dot(p), jac_true.dot(p), rtol=1e-7)
-
-    def test_exception(self):
-        x0 = np.array([-100.0, 0.2])
-        assert_raises(ValueError, approx_derivative,
-                      self.fun_vector_vector, x0,
-                      method='2-point', bounds=(1, np.inf))
-
-
-def test_absolute_step_sign():
-    # test for gh12487
-    # if an absolute step is specified for 2-point differences make sure that
-    # the side corresponds to the step. i.e. if step is positive then forward
-    # differences should be used, if step is negative then backwards
-    # differences should be used.
-
-    # function has double discontinuity at x = [-1, -1]
-    # first component is \/, second component is /\
-    def f(x):
-        return -np.abs(x[0] + 1) + np.abs(x[1] + 1)
-
-    # check that the forward difference is used
-    grad = approx_derivative(f, [-1, -1], method='2-point', abs_step=1e-8)
-    assert_allclose(grad, [-1.0, 1.0])
-
-    # check that the backwards difference is used
-    grad = approx_derivative(f, [-1, -1], method='2-point', abs_step=-1e-8)
-    assert_allclose(grad, [1.0, -1.0])
-
-    # check that the forwards difference is used with a step for both
-    # parameters
-    grad = approx_derivative(
-        f, [-1, -1], method='2-point', abs_step=[1e-8, 1e-8]
-    )
-    assert_allclose(grad, [-1.0, 1.0])
-
-    # check that we can mix forward/backwards steps.
-    grad = approx_derivative(
-        f, [-1, -1], method='2-point', abs_step=[1e-8, -1e-8]
-     )
-    assert_allclose(grad, [-1.0, -1.0])
-    grad = approx_derivative(
-        f, [-1, -1], method='2-point', abs_step=[-1e-8, 1e-8]
-    )
-    assert_allclose(grad, [1.0, 1.0])
-
-    # the forward step should reverse to a backwards step if it runs into a
-    # bound
-    # This is kind of tested in TestAdjustSchemeToBounds, but only for a lower level
-    # function.
-    grad = approx_derivative(
-        f, [-1, -1], method='2-point', abs_step=1e-8,
-        bounds=(-np.inf, -1)
-    )
-    assert_allclose(grad, [1.0, -1.0])
-
-    grad = approx_derivative(
-        f, [-1, -1], method='2-point', abs_step=-1e-8, bounds=(-1, np.inf)
-    )
-    assert_allclose(grad, [-1.0, 1.0])
-
-
-def test__compute_absolute_step():
-    # tests calculation of absolute step from rel_step
-    methods = ['2-point', '3-point', 'cs']
-
-    x0 = np.array([1e-5, 0, 1, 1e5])
-
-    EPS = np.finfo(np.float64).eps
-    relative_step = {
-        "2-point": EPS**0.5,
-        "3-point": EPS**(1/3),
-        "cs": EPS**0.5
-    }
-    f0 = np.array(1.0)
-
-    for method in methods:
-        rel_step = relative_step[method]
-        correct_step = np.array([rel_step,
-                                 rel_step * 1.,
-                                 rel_step * 1.,
-                                 rel_step * np.abs(x0[3])])
-
-        abs_step = _compute_absolute_step(None, x0, f0, method)
-        assert_allclose(abs_step, correct_step)
-
-        sign_x0 = (-x0 >= 0).astype(float) * 2 - 1
-        abs_step = _compute_absolute_step(None, -x0, f0, method)
-        assert_allclose(abs_step, sign_x0 * correct_step)
-
-    # if a relative step is provided it should be used
-    rel_step = np.array([0.1, 1, 10, 100])
-    correct_step = np.array([rel_step[0] * x0[0],
-                             relative_step['2-point'],
-                             rel_step[2] * 1.,
-                             rel_step[3] * np.abs(x0[3])])
-
-    abs_step = _compute_absolute_step(rel_step, x0, f0, '2-point')
-    assert_allclose(abs_step, correct_step)
-
-    sign_x0 = (-x0 >= 0).astype(float) * 2 - 1
-    abs_step = _compute_absolute_step(rel_step, -x0, f0, '2-point')
-    assert_allclose(abs_step, sign_x0 * correct_step)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__remove_redundancy.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__remove_redundancy.py
deleted file mode 100644
index 817282011699dea333042a4173f65c999a2925fc..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__remove_redundancy.py
+++ /dev/null
@@ -1,228 +0,0 @@
-"""
-Unit test for Linear Programming via Simplex Algorithm.
-"""
-
-# TODO: add tests for:
-# https://github.com/scipy/scipy/issues/5400
-# https://github.com/scipy/scipy/issues/6690
-
-import numpy as np
-from numpy.testing import (
-    assert_,
-    assert_allclose,
-    assert_equal)
-
-from .test_linprog import magic_square
-from scipy.optimize._remove_redundancy import _remove_redundancy_svd
-from scipy.optimize._remove_redundancy import _remove_redundancy_pivot_dense
-from scipy.optimize._remove_redundancy import _remove_redundancy_pivot_sparse
-from scipy.optimize._remove_redundancy import _remove_redundancy_id
-
-from scipy.sparse import csc_matrix
-
-
-def setup_module():
-    np.random.seed(2017)
-
-
-def redundancy_removed(A, B):
-    """Checks whether a matrix contains only independent rows of another"""
-    for rowA in A:
-        # `rowA in B` is not a reliable check
-        for rowB in B:
-            if np.all(rowA == rowB):
-                break
-        else:
-            return False
-    return A.shape[0] == np.linalg.matrix_rank(A) == np.linalg.matrix_rank(B)
-
-
-class RRCommonTests:
-    def test_no_redundancy(self):
-        m, n = 10, 10
-        A0 = np.random.rand(m, n)
-        b0 = np.random.rand(m)
-        A1, b1, status, message = self.rr(A0, b0)
-        assert_allclose(A0, A1)
-        assert_allclose(b0, b1)
-        assert_equal(status, 0)
-
-    def test_infeasible_zero_row(self):
-        A = np.eye(3)
-        A[1, :] = 0
-        b = np.random.rand(3)
-        A1, b1, status, message = self.rr(A, b)
-        assert_equal(status, 2)
-
-    def test_remove_zero_row(self):
-        A = np.eye(3)
-        A[1, :] = 0
-        b = np.random.rand(3)
-        b[1] = 0
-        A1, b1, status, message = self.rr(A, b)
-        assert_equal(status, 0)
-        assert_allclose(A1, A[[0, 2], :])
-        assert_allclose(b1, b[[0, 2]])
-
-    def test_infeasible_m_gt_n(self):
-        m, n = 20, 10
-        A0 = np.random.rand(m, n)
-        b0 = np.random.rand(m)
-        A1, b1, status, message = self.rr(A0, b0)
-        assert_equal(status, 2)
-
-    def test_infeasible_m_eq_n(self):
-        m, n = 10, 10
-        A0 = np.random.rand(m, n)
-        b0 = np.random.rand(m)
-        A0[-1, :] = 2 * A0[-2, :]
-        A1, b1, status, message = self.rr(A0, b0)
-        assert_equal(status, 2)
-
-    def test_infeasible_m_lt_n(self):
-        m, n = 9, 10
-        A0 = np.random.rand(m, n)
-        b0 = np.random.rand(m)
-        A0[-1, :] = np.arange(m - 1).dot(A0[:-1])
-        A1, b1, status, message = self.rr(A0, b0)
-        assert_equal(status, 2)
-
-    def test_m_gt_n(self):
-        np.random.seed(2032)
-        m, n = 20, 10
-        A0 = np.random.rand(m, n)
-        b0 = np.random.rand(m)
-        x = np.linalg.solve(A0[:n, :], b0[:n])
-        b0[n:] = A0[n:, :].dot(x)
-        A1, b1, status, message = self.rr(A0, b0)
-        assert_equal(status, 0)
-        assert_equal(A1.shape[0], n)
-        assert_equal(np.linalg.matrix_rank(A1), n)
-
-    def test_m_gt_n_rank_deficient(self):
-        m, n = 20, 10
-        A0 = np.zeros((m, n))
-        A0[:, 0] = 1
-        b0 = np.ones(m)
-        A1, b1, status, message = self.rr(A0, b0)
-        assert_equal(status, 0)
-        assert_allclose(A1, A0[0:1, :])
-        assert_allclose(b1, b0[0])
-
-    def test_m_lt_n_rank_deficient(self):
-        m, n = 9, 10
-        A0 = np.random.rand(m, n)
-        b0 = np.random.rand(m)
-        A0[-1, :] = np.arange(m - 1).dot(A0[:-1])
-        b0[-1] = np.arange(m - 1).dot(b0[:-1])
-        A1, b1, status, message = self.rr(A0, b0)
-        assert_equal(status, 0)
-        assert_equal(A1.shape[0], 8)
-        assert_equal(np.linalg.matrix_rank(A1), 8)
-
-    def test_dense1(self):
-        A = np.ones((6, 6))
-        A[0, :3] = 0
-        A[1, 3:] = 0
-        A[3:, ::2] = -1
-        A[3, :2] = 0
-        A[4, 2:] = 0
-        b = np.zeros(A.shape[0])
-
-        A1, b1, status, message = self.rr(A, b)
-        assert_(redundancy_removed(A1, A))
-        assert_equal(status, 0)
-
-    def test_dense2(self):
-        A = np.eye(6)
-        A[-2, -1] = 1
-        A[-1, :] = 1
-        b = np.zeros(A.shape[0])
-        A1, b1, status, message = self.rr(A, b)
-        assert_(redundancy_removed(A1, A))
-        assert_equal(status, 0)
-
-    def test_dense3(self):
-        A = np.eye(6)
-        A[-2, -1] = 1
-        A[-1, :] = 1
-        b = np.random.rand(A.shape[0])
-        b[-1] = np.sum(b[:-1])
-        A1, b1, status, message = self.rr(A, b)
-        assert_(redundancy_removed(A1, A))
-        assert_equal(status, 0)
-
-    def test_m_gt_n_sparse(self):
-        np.random.seed(2013)
-        m, n = 20, 5
-        p = 0.1
-        A = np.random.rand(m, n)
-        A[np.random.rand(m, n) > p] = 0
-        rank = np.linalg.matrix_rank(A)
-        b = np.zeros(A.shape[0])
-        A1, b1, status, message = self.rr(A, b)
-        assert_equal(status, 0)
-        assert_equal(A1.shape[0], rank)
-        assert_equal(np.linalg.matrix_rank(A1), rank)
-
-    def test_m_lt_n_sparse(self):
-        np.random.seed(2017)
-        m, n = 20, 50
-        p = 0.05
-        A = np.random.rand(m, n)
-        A[np.random.rand(m, n) > p] = 0
-        rank = np.linalg.matrix_rank(A)
-        b = np.zeros(A.shape[0])
-        A1, b1, status, message = self.rr(A, b)
-        assert_equal(status, 0)
-        assert_equal(A1.shape[0], rank)
-        assert_equal(np.linalg.matrix_rank(A1), rank)
-
-    def test_m_eq_n_sparse(self):
-        np.random.seed(2017)
-        m, n = 100, 100
-        p = 0.01
-        A = np.random.rand(m, n)
-        A[np.random.rand(m, n) > p] = 0
-        rank = np.linalg.matrix_rank(A)
-        b = np.zeros(A.shape[0])
-        A1, b1, status, message = self.rr(A, b)
-        assert_equal(status, 0)
-        assert_equal(A1.shape[0], rank)
-        assert_equal(np.linalg.matrix_rank(A1), rank)
-
-    def test_magic_square(self):
-        A, b, c, numbers, _ = magic_square(3)
-        A1, b1, status, message = self.rr(A, b)
-        assert_equal(status, 0)
-        assert_equal(A1.shape[0], 23)
-        assert_equal(np.linalg.matrix_rank(A1), 23)
-
-    def test_magic_square2(self):
-        A, b, c, numbers, _ = magic_square(4)
-        A1, b1, status, message = self.rr(A, b)
-        assert_equal(status, 0)
-        assert_equal(A1.shape[0], 39)
-        assert_equal(np.linalg.matrix_rank(A1), 39)
-
-
-class TestRRSVD(RRCommonTests):
-    def rr(self, A, b):
-        return _remove_redundancy_svd(A, b)
-
-
-class TestRRPivotDense(RRCommonTests):
-    def rr(self, A, b):
-        return _remove_redundancy_pivot_dense(A, b)
-
-
-class TestRRID(RRCommonTests):
-    def rr(self, A, b):
-        return _remove_redundancy_id(A, b)
-
-
-class TestRRPivotSparse(RRCommonTests):
-    def rr(self, A, b):
-        rr_res = _remove_redundancy_pivot_sparse(csc_matrix(A), b)
-        A1, b1, status, message = rr_res
-        return A1.toarray(), b1, status, message
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__root.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__root.py
deleted file mode 100644
index 3827651a8e513f9543a2b0af3fbbc49cd82915a1..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__root.py
+++ /dev/null
@@ -1,123 +0,0 @@
-"""
-Unit tests for optimization routines from _root.py.
-"""
-from numpy.testing import assert_, assert_equal
-import pytest
-from pytest import raises as assert_raises, warns as assert_warns
-import numpy as np
-
-from scipy.optimize import root
-
-
-class TestRoot:
-    def test_tol_parameter(self):
-        # Check that the minimize() tol= argument does something
-        def func(z):
-            x, y = z
-            return np.array([x**3 - 1, y**3 - 1])
-
-        def dfunc(z):
-            x, y = z
-            return np.array([[3*x**2, 0], [0, 3*y**2]])
-
-        for method in ['hybr', 'lm', 'broyden1', 'broyden2', 'anderson',
-                       'diagbroyden', 'krylov']:
-            if method in ('linearmixing', 'excitingmixing'):
-                # doesn't converge
-                continue
-
-            if method in ('hybr', 'lm'):
-                jac = dfunc
-            else:
-                jac = None
-
-            sol1 = root(func, [1.1,1.1], jac=jac, tol=1e-4, method=method)
-            sol2 = root(func, [1.1,1.1], jac=jac, tol=0.5, method=method)
-            msg = f"{method}: {func(sol1.x)} vs. {func(sol2.x)}"
-            assert_(sol1.success, msg)
-            assert_(sol2.success, msg)
-            assert_(abs(func(sol1.x)).max() < abs(func(sol2.x)).max(),
-                    msg)
-
-    def test_tol_norm(self):
-
-        def norm(x):
-            return abs(x[0])
-
-        for method in ['excitingmixing',
-                       'diagbroyden',
-                       'linearmixing',
-                       'anderson',
-                       'broyden1',
-                       'broyden2',
-                       'krylov']:
-
-            root(np.zeros_like, np.zeros(2), method=method,
-                options={"tol_norm": norm})
-
-    def test_minimize_scalar_coerce_args_param(self):
-        # github issue #3503
-        def func(z, f=1):
-            x, y = z
-            return np.array([x**3 - 1, y**3 - f])
-        root(func, [1.1, 1.1], args=1.5)
-
-    def test_f_size(self):
-        # gh8320
-        # check that decreasing the size of the returned array raises an error
-        # and doesn't segfault
-        class fun:
-            def __init__(self):
-                self.count = 0
-
-            def __call__(self, x):
-                self.count += 1
-
-                if not (self.count % 5):
-                    ret = x[0] + 0.5 * (x[0] - x[1]) ** 3 - 1.0
-                else:
-                    ret = ([x[0] + 0.5 * (x[0] - x[1]) ** 3 - 1.0,
-                           0.5 * (x[1] - x[0]) ** 3 + x[1]])
-
-                return ret
-
-        F = fun()
-        with assert_raises(ValueError):
-            root(F, [0.1, 0.0], method='lm')
-
-    def test_gh_10370(self):
-        # gh-10370 reported that passing both `args` and `jac` to `root` with
-        # `method='krylov'` caused a failure. Ensure that this is fixed whether
-        # the gradient is passed via `jac` or as a second output of `fun`.
-        def fun(x, ignored):
-            return [3*x[0] - 0.25*x[1]**2 + 10, 0.1*x[0]**2 + 5*x[1] - 2]
-
-        def grad(x, ignored):
-            return [[3, 0.5 * x[1]], [0.2 * x[0], 5]]
-
-        def fun_grad(x, ignored):
-            return fun(x, ignored), grad(x, ignored)
-
-        x0 = np.zeros(2)
-
-        ref = root(fun, x0, args=(1,), method='krylov')
-        message = 'Method krylov does not use the jacobian'
-        with assert_warns(RuntimeWarning, match=message):
-            res1 = root(fun, x0, args=(1,), method='krylov', jac=grad)
-        with assert_warns(RuntimeWarning, match=message):
-            res2 = root(fun_grad, x0, args=(1,), method='krylov', jac=True)
-
-        assert_equal(res1.x, ref.x)
-        assert_equal(res2.x, ref.x)
-        assert res1.success is res2.success is ref.success is True
-    
-    @pytest.mark.parametrize("method", ["hybr", "lm", "broyden1", "broyden2",
-                                        "anderson", "linearmixing",
-                                        "diagbroyden", "excitingmixing",
-                                        "krylov", "df-sane"])
-    def test_method_in_result(self, method):
-        def func(x):
-            return x - 1
-        
-        res = root(func, x0=[1], method=method)
-        assert res.method == method
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__shgo.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__shgo.py
deleted file mode 100644
index fea1fb70fbdaf98bc081c8d6c9b8726b89e74043..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__shgo.py
+++ /dev/null
@@ -1,1155 +0,0 @@
-import logging
-import sys
-
-import numpy as np
-import time
-from multiprocessing import Pool
-from numpy.testing import assert_allclose, IS_PYPY
-import pytest
-from pytest import raises as assert_raises, warns
-from scipy.optimize import (shgo, Bounds, minimize_scalar, minimize, rosen,
-                            rosen_der, rosen_hess, NonlinearConstraint)
-from scipy.optimize._constraints import new_constraint_to_old
-from scipy.optimize._shgo import SHGO
-
-
-class StructTestFunction:
-    def __init__(self, bounds, expected_x, expected_fun=None,
-                 expected_xl=None, expected_funl=None):
-        self.bounds = bounds
-        self.expected_x = expected_x
-        self.expected_fun = expected_fun
-        self.expected_xl = expected_xl
-        self.expected_funl = expected_funl
-
-
-def wrap_constraints(g):
-    cons = []
-    if g is not None:
-        if not isinstance(g, (tuple, list)):
-            g = (g,)
-        else:
-            pass
-        for g in g:
-            cons.append({'type': 'ineq',
-                         'fun': g})
-        cons = tuple(cons)
-    else:
-        cons = None
-    return cons
-
-
-class StructTest1(StructTestFunction):
-    def f(self, x):
-        return x[0] ** 2 + x[1] ** 2
-
-    def g(x):
-        return -(np.sum(x, axis=0) - 6.0)
-
-    cons = wrap_constraints(g)
-
-
-test1_1 = StructTest1(bounds=[(-1, 6), (-1, 6)],
-                      expected_x=[0, 0])
-test1_2 = StructTest1(bounds=[(0, 1), (0, 1)],
-                      expected_x=[0, 0])
-test1_3 = StructTest1(bounds=[(None, None), (None, None)],
-                      expected_x=[0, 0])
-
-
-class StructTest2(StructTestFunction):
-    """
-    Scalar function with several minima to test all minimiser retrievals
-    """
-
-    def f(self, x):
-        return (x - 30) * np.sin(x)
-
-    def g(x):
-        return 58 - np.sum(x, axis=0)
-
-    cons = wrap_constraints(g)
-
-
-test2_1 = StructTest2(bounds=[(0, 60)],
-                      expected_x=[1.53567906],
-                      expected_fun=-28.44677132,
-                      # Important: test that funl return is in the correct
-                      # order
-                      expected_xl=np.array([[1.53567906],
-                                            [55.01782167],
-                                            [7.80894889],
-                                            [48.74797493],
-                                            [14.07445705],
-                                            [42.4913859],
-                                            [20.31743841],
-                                            [36.28607535],
-                                            [26.43039605],
-                                            [30.76371366]]),
-
-                      expected_funl=np.array([-28.44677132, -24.99785984,
-                                              -22.16855376, -18.72136195,
-                                              -15.89423937, -12.45154942,
-                                              -9.63133158, -6.20801301,
-                                              -3.43727232, -0.46353338])
-                      )
-
-test2_2 = StructTest2(bounds=[(0, 4.5)],
-                      expected_x=[1.53567906],
-                      expected_fun=[-28.44677132],
-                      expected_xl=np.array([[1.53567906]]),
-                      expected_funl=np.array([-28.44677132])
-                      )
-
-
-class StructTest3(StructTestFunction):
-    """
-    Hock and Schittkowski 18 problem (HS18). Hoch and Schittkowski (1981)
-    http://www.ai7.uni-bayreuth.de/test_problem_coll.pdf
-    Minimize: f = 0.01 * (x_1)**2 + (x_2)**2
-
-    Subject to: x_1 * x_2 - 25.0 >= 0,
-                (x_1)**2 + (x_2)**2 - 25.0 >= 0,
-                2 <= x_1 <= 50,
-                0 <= x_2 <= 50.
-
-    Approx. Answer:
-        f([(250)**0.5 , (2.5)**0.5]) = 5.0
-
-
-    """
-
-    # amended to test vectorisation of constraints
-    def f(self, x):
-        return 0.01 * (x[0]) ** 2 + (x[1]) ** 2
-
-    def g1(x):
-        return x[0] * x[1] - 25.0
-
-    def g2(x):
-        return x[0] ** 2 + x[1] ** 2 - 25.0
-
-    # g = (g1, g2)
-    # cons = wrap_constraints(g)
-
-    def g(x):
-        return x[0] * x[1] - 25.0, x[0] ** 2 + x[1] ** 2 - 25.0
-
-    # this checks that shgo can be sent new-style constraints
-    __nlc = NonlinearConstraint(g, 0, np.inf)
-    cons = (__nlc,)
-
-test3_1 = StructTest3(bounds=[(2, 50), (0, 50)],
-                      expected_x=[250 ** 0.5, 2.5 ** 0.5],
-                      expected_fun=5.0
-                      )
-
-
-class StructTest4(StructTestFunction):
-    """
-    Hock and Schittkowski 11 problem (HS11). Hoch and Schittkowski (1981)
-
-    NOTE: Did not find in original reference to HS collection, refer to
-          Henderson (2015) problem 7 instead. 02.03.2016
-    """
-
-    def f(self, x):
-        return ((x[0] - 10) ** 2 + 5 * (x[1] - 12) ** 2 + x[2] ** 4
-                + 3 * (x[3] - 11) ** 2 + 10 * x[4] ** 6 + 7 * x[5] ** 2 + x[
-                    6] ** 4
-                - 4 * x[5] * x[6] - 10 * x[5] - 8 * x[6]
-                )
-
-    def g1(x):
-        return -(2 * x[0] ** 2 + 3 * x[1] ** 4 + x[2] + 4 * x[3] ** 2
-                 + 5 * x[4] - 127)
-
-    def g2(x):
-        return -(7 * x[0] + 3 * x[1] + 10 * x[2] ** 2 + x[3] - x[4] - 282.0)
-
-    def g3(x):
-        return -(23 * x[0] + x[1] ** 2 + 6 * x[5] ** 2 - 8 * x[6] - 196)
-
-    def g4(x):
-        return -(4 * x[0] ** 2 + x[1] ** 2 - 3 * x[0] * x[1] + 2 * x[2] ** 2
-                 + 5 * x[5] - 11 * x[6])
-
-    g = (g1, g2, g3, g4)
-
-    cons = wrap_constraints(g)
-
-
-test4_1 = StructTest4(bounds=[(-10, 10), ] * 7,
-                      expected_x=[2.330499, 1.951372, -0.4775414,
-                                  4.365726, -0.6244870, 1.038131, 1.594227],
-                      expected_fun=680.6300573
-                      )
-
-
-class StructTest5(StructTestFunction):
-    def f(self, x):
-        return (
-            -(x[1] + 47.0)*np.sin(np.sqrt(abs(x[0]/2.0 + (x[1] + 47.0))))
-            - x[0]*np.sin(np.sqrt(abs(x[0] - (x[1] + 47.0))))
-        )
-
-    g = None
-    cons = wrap_constraints(g)
-
-
-test5_1 = StructTest5(bounds=[(-512, 512), (-512, 512)],
-                      expected_fun=[-959.64066272085051],
-                      expected_x=[512., 404.23180542])
-
-
-class StructTestLJ(StructTestFunction):
-    """
-    LennardJones objective function. Used to test symmetry constraints
-    settings.
-    """
-
-    def f(self, x, *args):
-        print(f'x = {x}')
-        self.N = args[0]
-        k = int(self.N / 3)
-        s = 0.0
-
-        for i in range(k - 1):
-            for j in range(i + 1, k):
-                a = 3 * i
-                b = 3 * j
-                xd = x[a] - x[b]
-                yd = x[a + 1] - x[b + 1]
-                zd = x[a + 2] - x[b + 2]
-                ed = xd * xd + yd * yd + zd * zd
-                ud = ed * ed * ed
-                if ed > 0.0:
-                    s += (1.0 / ud - 2.0) / ud
-
-        return s
-
-    g = None
-    cons = wrap_constraints(g)
-
-
-N = 6
-boundsLJ = list(zip([-4.0] * 6, [4.0] * 6))
-
-testLJ = StructTestLJ(bounds=boundsLJ,
-                      expected_fun=[-1.0],
-                      expected_x=None,
-                      # expected_x=[-2.71247337e-08,
-                      #            -2.71247337e-08,
-                      #            -2.50000222e+00,
-                      #            -2.71247337e-08,
-                      #            -2.71247337e-08,
-                      #            -1.50000222e+00]
-                      )
-
-
-class StructTestS(StructTestFunction):
-    def f(self, x):
-        return ((x[0] - 0.5) ** 2 + (x[1] - 0.5) ** 2
-                + (x[2] - 0.5) ** 2 + (x[3] - 0.5) ** 2)
-
-    g = None
-    cons = wrap_constraints(g)
-
-
-test_s = StructTestS(bounds=[(0, 2.0), ] * 4,
-                     expected_fun=0.0,
-                     expected_x=np.ones(4) - 0.5
-                     )
-
-
-class StructTestTable(StructTestFunction):
-    def f(self, x):
-        if x[0] == 3.0 and x[1] == 3.0:
-            return 50
-        else:
-            return 100
-
-    g = None
-    cons = wrap_constraints(g)
-
-
-test_table = StructTestTable(bounds=[(-10, 10), (-10, 10)],
-                             expected_fun=[50],
-                             expected_x=[3.0, 3.0])
-
-
-class StructTestInfeasible(StructTestFunction):
-    """
-    Test function with no feasible domain.
-    """
-
-    def f(self, x, *args):
-        return x[0] ** 2 + x[1] ** 2
-
-    def g1(x):
-        return x[0] + x[1] - 1
-
-    def g2(x):
-        return -(x[0] + x[1] - 1)
-
-    def g3(x):
-        return -x[0] + x[1] - 1
-
-    def g4(x):
-        return -(-x[0] + x[1] - 1)
-
-    g = (g1, g2, g3, g4)
-    cons = wrap_constraints(g)
-
-
-test_infeasible = StructTestInfeasible(bounds=[(2, 50), (-1, 1)],
-                                       expected_fun=None,
-                                       expected_x=None
-                                       )
-
-
-@pytest.mark.skip("Not a test")
-def run_test(test, args=(), test_atol=1e-5, n=100, iters=None,
-             callback=None, minimizer_kwargs=None, options=None,
-             sampling_method='sobol', workers=1):
-    res = shgo(test.f, test.bounds, args=args, constraints=test.cons,
-               n=n, iters=iters, callback=callback,
-               minimizer_kwargs=minimizer_kwargs, options=options,
-               sampling_method=sampling_method, workers=workers)
-
-    print(f'res = {res}')
-    logging.info(f'res = {res}')
-    if test.expected_x is not None:
-        np.testing.assert_allclose(res.x, test.expected_x,
-                                   rtol=test_atol,
-                                   atol=test_atol)
-
-    # (Optional tests)
-    if test.expected_fun is not None:
-        np.testing.assert_allclose(res.fun,
-                                   test.expected_fun,
-                                   atol=test_atol)
-
-    if test.expected_xl is not None:
-        np.testing.assert_allclose(res.xl,
-                                   test.expected_xl,
-                                   atol=test_atol)
-
-    if test.expected_funl is not None:
-        np.testing.assert_allclose(res.funl,
-                                   test.expected_funl,
-                                   atol=test_atol)
-    return
-
-
-# Base test functions:
-class TestShgoSobolTestFunctions:
-    """
-    Global optimisation tests with Sobol sampling:
-    """
-
-    # Sobol algorithm
-    def test_f1_1_sobol(self):
-        """Multivariate test function 1:
-        x[0]**2 + x[1]**2 with bounds=[(-1, 6), (-1, 6)]"""
-        run_test(test1_1)
-
-    def test_f1_2_sobol(self):
-        """Multivariate test function 1:
-         x[0]**2 + x[1]**2 with bounds=[(0, 1), (0, 1)]"""
-        run_test(test1_2)
-
-    def test_f1_3_sobol(self):
-        """Multivariate test function 1:
-        x[0]**2 + x[1]**2 with bounds=[(None, None),(None, None)]"""
-        options = {'disp': True}
-        run_test(test1_3, options=options)
-
-    def test_f2_1_sobol(self):
-        """Univariate test function on
-        f(x) = (x - 30) * sin(x) with bounds=[(0, 60)]"""
-        run_test(test2_1)
-
-    def test_f2_2_sobol(self):
-        """Univariate test function on
-        f(x) = (x - 30) * sin(x) bounds=[(0, 4.5)]"""
-        run_test(test2_2)
-
-    def test_f3_sobol(self):
-        """NLP: Hock and Schittkowski problem 18"""
-        run_test(test3_1)
-
-    @pytest.mark.slow
-    def test_f4_sobol(self):
-        """NLP: (High dimensional) Hock and Schittkowski 11 problem (HS11)"""
-        options = {'infty_constraints': False}
-        # run_test(test4_1, n=990, options=options)
-        run_test(test4_1, n=990 * 2, options=options)
-
-    def test_f5_1_sobol(self):
-        """NLP: Eggholder, multimodal"""
-        # run_test(test5_1, n=30)
-        run_test(test5_1, n=60)
-
-    def test_f5_2_sobol(self):
-        """NLP: Eggholder, multimodal"""
-        # run_test(test5_1, n=60, iters=5)
-        run_test(test5_1, n=60, iters=5)
-
-        # def test_t911(self):
-        #    """1D tabletop function"""
-        #    run_test(test11_1)
-
-
-class TestShgoSimplicialTestFunctions:
-    """
-    Global optimisation tests with Simplicial sampling:
-    """
-
-    def test_f1_1_simplicial(self):
-        """Multivariate test function 1:
-        x[0]**2 + x[1]**2 with bounds=[(-1, 6), (-1, 6)]"""
-        run_test(test1_1, n=1, sampling_method='simplicial')
-
-    def test_f1_2_simplicial(self):
-        """Multivariate test function 1:
-        x[0]**2 + x[1]**2 with bounds=[(0, 1), (0, 1)]"""
-        run_test(test1_2, n=1, sampling_method='simplicial')
-
-    def test_f1_3_simplicial(self):
-        """Multivariate test function 1: x[0]**2 + x[1]**2
-        with bounds=[(None, None),(None, None)]"""
-        run_test(test1_3, n=5, sampling_method='simplicial')
-
-    def test_f2_1_simplicial(self):
-        """Univariate test function on
-        f(x) = (x - 30) * sin(x) with bounds=[(0, 60)]"""
-        options = {'minimize_every_iter': False}
-        run_test(test2_1, n=200, iters=7, options=options,
-                 sampling_method='simplicial')
-
-    def test_f2_2_simplicial(self):
-        """Univariate test function on
-        f(x) = (x - 30) * sin(x) bounds=[(0, 4.5)]"""
-        run_test(test2_2, n=1, sampling_method='simplicial')
-
-    def test_f3_simplicial(self):
-        """NLP: Hock and Schittkowski problem 18"""
-        run_test(test3_1, n=1, sampling_method='simplicial')
-
-    @pytest.mark.slow
-    def test_f4_simplicial(self):
-        """NLP: (High dimensional) Hock and Schittkowski 11 problem (HS11)"""
-        run_test(test4_1, n=1, sampling_method='simplicial')
-
-    def test_lj_symmetry_old(self):
-        """LJ: Symmetry-constrained test function"""
-        options = {'symmetry': True,
-                   'disp': True}
-        args = (6,)  # Number of atoms
-        run_test(testLJ, args=args, n=300,
-                 options=options, iters=1,
-                 sampling_method='simplicial')
-
-    def test_f5_1_lj_symmetry(self):
-        """LJ: Symmetry constrained test function"""
-        options = {'symmetry': [0, ] * 6,
-                   'disp': True}
-        args = (6,)  # No. of atoms
-
-        run_test(testLJ, args=args, n=300,
-                 options=options, iters=1,
-                 sampling_method='simplicial')
-
-    def test_f5_2_cons_symmetry(self):
-        """Symmetry constrained test function"""
-        options = {'symmetry': [0, 0],
-                   'disp': True}
-
-        run_test(test1_1, n=200,
-                 options=options, iters=1,
-                 sampling_method='simplicial')
-
-    @pytest.mark.fail_slow(5)
-    def test_f5_3_cons_symmetry(self):
-        """Assymmetrically constrained test function"""
-        options = {'symmetry': [0, 0, 0, 3],
-                   'disp': True}
-
-        run_test(test_s, n=10000,
-                 options=options,
-                 iters=1,
-                 sampling_method='simplicial')
-
-    @pytest.mark.skip("Not a test")
-    def test_f0_min_variance(self):
-        """Return a minimum on a perfectly symmetric problem, based on
-            gh10429"""
-        avg = 0.5  # Given average value of x
-        cons = {'type': 'eq', 'fun': lambda x: np.mean(x) - avg}
-
-        # Minimize the variance of x under the given constraint
-        res = shgo(np.var, bounds=6 * [(0, 1)], constraints=cons)
-        assert res.success
-        assert_allclose(res.fun, 0, atol=1e-15)
-        assert_allclose(res.x, 0.5)
-
-    @pytest.mark.skip("Not a test")
-    def test_f0_min_variance_1D(self):
-        """Return a minimum on a perfectly symmetric 1D problem, based on
-            gh10538"""
-
-        def fun(x):
-            return x * (x - 1.0) * (x - 0.5)
-
-        bounds = [(0, 1)]
-        res = shgo(fun, bounds=bounds)
-        ref = minimize_scalar(fun, bounds=bounds[0])
-        assert res.success
-        assert_allclose(res.fun, ref.fun)
-        assert_allclose(res.x, ref.x, rtol=1e-6)
-
-# Argument test functions
-class TestShgoArguments:
-    def test_1_1_simpl_iter(self):
-        """Iterative simplicial sampling on TestFunction 1 (multivariate)"""
-        run_test(test1_2, n=None, iters=2, sampling_method='simplicial')
-
-    def test_1_2_simpl_iter(self):
-        """Iterative simplicial on TestFunction 2 (univariate)"""
-        options = {'minimize_every_iter': False}
-        run_test(test2_1, n=None, iters=9, options=options,
-                 sampling_method='simplicial')
-
-    def test_2_1_sobol_iter(self):
-        """Iterative Sobol sampling on TestFunction 1 (multivariate)"""
-        run_test(test1_2, n=None, iters=1, sampling_method='sobol')
-
-    def test_2_2_sobol_iter(self):
-        """Iterative Sobol sampling on TestFunction 2 (univariate)"""
-        res = shgo(test2_1.f, test2_1.bounds, constraints=test2_1.cons,
-                   n=None, iters=1, sampling_method='sobol')
-
-        np.testing.assert_allclose(res.x, test2_1.expected_x, rtol=1e-5, atol=1e-5)
-        np.testing.assert_allclose(res.fun, test2_1.expected_fun, atol=1e-5)
-
-    def test_3_1_disp_simplicial(self):
-        """Iterative sampling on TestFunction 1 and 2  (multi and univariate)
-        """
-
-        def callback_func(x):
-            print("Local minimization callback test")
-
-        for test in [test1_1, test2_1]:
-            shgo(test.f, test.bounds, iters=1,
-                 sampling_method='simplicial',
-                 callback=callback_func, options={'disp': True})
-            shgo(test.f, test.bounds, n=1, sampling_method='simplicial',
-                 callback=callback_func, options={'disp': True})
-
-    def test_3_2_disp_sobol(self):
-        """Iterative sampling on TestFunction 1 and 2 (multi and univariate)"""
-
-        def callback_func(x):
-            print("Local minimization callback test")
-
-        for test in [test1_1, test2_1]:
-            shgo(test.f, test.bounds, iters=1, sampling_method='sobol',
-                 callback=callback_func, options={'disp': True})
-
-            shgo(test.f, test.bounds, n=1, sampling_method='simplicial',
-                 callback=callback_func, options={'disp': True})
-
-    def test_args_gh14589(self):
-        """Using `args` used to cause `shgo` to fail; see #14589, #15986,
-        #16506"""
-        res = shgo(func=lambda x, y, z: x * z + y, bounds=[(0, 3)], args=(1, 2)
-                   )
-        ref = shgo(func=lambda x: 2 * x + 1, bounds=[(0, 3)])
-        assert_allclose(res.fun, ref.fun)
-        assert_allclose(res.x, ref.x)
-
-    @pytest.mark.slow
-    def test_4_1_known_f_min(self):
-        """Test known function minima stopping criteria"""
-        # Specify known function value
-        options = {'f_min': test4_1.expected_fun,
-                   'f_tol': 1e-6,
-                   'minimize_every_iter': True}
-        # TODO: Make default n higher for faster tests
-        run_test(test4_1, n=None, test_atol=1e-5, options=options,
-                 sampling_method='simplicial')
-
-    @pytest.mark.slow
-    def test_4_2_known_f_min(self):
-        """Test Global mode limiting local evaluations"""
-        options = {  # Specify known function value
-            'f_min': test4_1.expected_fun,
-            'f_tol': 1e-6,
-            # Specify number of local iterations to perform
-            'minimize_every_iter': True,
-            'local_iter': 1}
-
-        run_test(test4_1, n=None, test_atol=1e-5, options=options,
-                 sampling_method='simplicial')
-
-    def test_4_4_known_f_min(self):
-        """Test Global mode limiting local evaluations for 1D funcs"""
-        options = {  # Specify known function value
-            'f_min': test2_1.expected_fun,
-            'f_tol': 1e-6,
-            # Specify number of local iterations to perform+
-            'minimize_every_iter': True,
-            'local_iter': 1,
-            'infty_constraints': False}
-
-        res = shgo(test2_1.f, test2_1.bounds, constraints=test2_1.cons,
-                   n=None, iters=None, options=options,
-                   sampling_method='sobol')
-        np.testing.assert_allclose(res.x, test2_1.expected_x, rtol=1e-5, atol=1e-5)
-
-    def test_5_1_simplicial_argless(self):
-        """Test Default simplicial sampling settings on TestFunction 1"""
-        res = shgo(test1_1.f, test1_1.bounds, constraints=test1_1.cons)
-        np.testing.assert_allclose(res.x, test1_1.expected_x, rtol=1e-5, atol=1e-5)
-
-    def test_5_2_sobol_argless(self):
-        """Test Default sobol sampling settings on TestFunction 1"""
-        res = shgo(test1_1.f, test1_1.bounds, constraints=test1_1.cons,
-                   sampling_method='sobol')
-        np.testing.assert_allclose(res.x, test1_1.expected_x, rtol=1e-5, atol=1e-5)
-
-    def test_6_1_simplicial_max_iter(self):
-        """Test that maximum iteration option works on TestFunction 3"""
-        options = {'max_iter': 2}
-        res = shgo(test3_1.f, test3_1.bounds, constraints=test3_1.cons,
-                   options=options, sampling_method='simplicial')
-        np.testing.assert_allclose(res.x, test3_1.expected_x, rtol=1e-5, atol=1e-5)
-        np.testing.assert_allclose(res.fun, test3_1.expected_fun, atol=1e-5)
-
-    def test_6_2_simplicial_min_iter(self):
-        """Test that maximum iteration option works on TestFunction 3"""
-        options = {'min_iter': 2}
-        res = shgo(test3_1.f, test3_1.bounds, constraints=test3_1.cons,
-                   options=options, sampling_method='simplicial')
-        np.testing.assert_allclose(res.x, test3_1.expected_x, rtol=1e-5, atol=1e-5)
-        np.testing.assert_allclose(res.fun, test3_1.expected_fun, atol=1e-5)
-
-    def test_7_1_minkwargs(self):
-        """Test the minimizer_kwargs arguments for solvers with constraints"""
-        # Test solvers
-        for solver in ['COBYLA', 'COBYQA', 'SLSQP']:
-            # Note that passing global constraints to SLSQP is tested in other
-            # unittests which run test4_1 normally
-            minimizer_kwargs = {'method': solver,
-                                'constraints': test3_1.cons}
-            run_test(test3_1, n=100, test_atol=1e-3,
-                     minimizer_kwargs=minimizer_kwargs,
-                     sampling_method='sobol')
-
-    def test_7_2_minkwargs(self):
-        """Test the minimizer_kwargs default inits"""
-        minimizer_kwargs = {'ftol': 1e-5}
-        options = {'disp': True}  # For coverage purposes
-        SHGO(test3_1.f, test3_1.bounds, constraints=test3_1.cons[0],
-             minimizer_kwargs=minimizer_kwargs, options=options)
-
-    def test_7_3_minkwargs(self):
-        """Test minimizer_kwargs arguments for solvers without constraints"""
-        for solver in ['Nelder-Mead', 'Powell', 'CG', 'BFGS', 'Newton-CG',
-                       'L-BFGS-B', 'TNC', 'dogleg', 'trust-ncg', 'trust-exact',
-                       'trust-krylov']:
-            def jac(x):
-                return np.array([2 * x[0], 2 * x[1]]).T
-
-            def hess(x):
-                return np.array([[2, 0], [0, 2]])
-
-            minimizer_kwargs = {'method': solver,
-                                'jac': jac,
-                                'hess': hess}
-            logging.info(f"Solver = {solver}")
-            logging.info("=" * 100)
-            run_test(test1_1, n=100, test_atol=1e-3,
-                     minimizer_kwargs=minimizer_kwargs,
-                     sampling_method='sobol')
-
-    def test_8_homology_group_diff(self):
-        options = {'minhgrd': 1,
-                   'minimize_every_iter': True}
-
-        run_test(test1_1, n=None, iters=None, options=options,
-                 sampling_method='simplicial')
-
-    def test_9_cons_g(self):
-        """Test single function constraint passing"""
-        SHGO(test3_1.f, test3_1.bounds, constraints=test3_1.cons[0])
-
-    @pytest.mark.xfail(IS_PYPY and sys.platform == 'win32',
-            reason="Failing and fix in PyPy not planned (see gh-18632)")
-    def test_10_finite_time(self):
-        """Test single function constraint passing"""
-        options = {'maxtime': 1e-15}
-
-        def f(x):
-            time.sleep(1e-14)
-            return 0.0
-
-        res = shgo(f, test1_1.bounds, iters=5, options=options)
-        # Assert that only 1 rather than 5 requested iterations ran:
-        assert res.nit == 1
-
-    def test_11_f_min_0(self):
-        """Test to cover the case where f_lowest == 0"""
-        options = {'f_min': 0.0,
-                   'disp': True}
-        res = shgo(test1_2.f, test1_2.bounds, n=10, iters=None,
-                   options=options, sampling_method='sobol')
-        np.testing.assert_equal(0, res.x[0])
-        np.testing.assert_equal(0, res.x[1])
-
-    # @nottest
-    @pytest.mark.skip(reason="no way of currently testing this")
-    def test_12_sobol_inf_cons(self):
-        """Test to cover the case where f_lowest == 0"""
-        # TODO: This test doesn't cover anything new, it is unknown what the
-        # original test was intended for as it was never complete. Delete or
-        # replace in the future.
-        options = {'maxtime': 1e-15,
-                   'f_min': 0.0}
-        res = shgo(test1_2.f, test1_2.bounds, n=1, iters=None,
-                   options=options, sampling_method='sobol')
-        np.testing.assert_equal(0.0, res.fun)
-
-    def test_13_high_sobol(self):
-        """Test init of high-dimensional sobol sequences"""
-
-        def f(x):
-            return 0
-
-        bounds = [(None, None), ] * 41
-        SHGOc = SHGO(f, bounds, sampling_method='sobol')
-        # SHGOc.sobol_points(2, 50)
-        SHGOc.sampling_function(2, 50)
-
-    def test_14_local_iter(self):
-        """Test limited local iterations for a pseudo-global mode"""
-        options = {'local_iter': 4}
-        run_test(test5_1, n=60, options=options)
-
-    def test_15_min_every_iter(self):
-        """Test minimize every iter options and cover function cache"""
-        options = {'minimize_every_iter': True}
-        run_test(test1_1, n=1, iters=7, options=options,
-                 sampling_method='sobol')
-
-    def test_16_disp_bounds_minimizer(self, capsys):
-        """Test disp=True with minimizers that do not support bounds """
-        options = {'disp': True}
-        minimizer_kwargs = {'method': 'nelder-mead'}
-        run_test(test1_2, sampling_method='simplicial',
-                 options=options, minimizer_kwargs=minimizer_kwargs)
-
-    def test_17_custom_sampling(self):
-        """Test the functionality to add custom sampling methods to shgo"""
-
-        def sample(n, d):
-            return np.random.uniform(size=(n, d))
-
-        run_test(test1_1, n=30, sampling_method=sample)
-
-    def test_18_bounds_class(self):
-        # test that new and old bounds yield same result
-        def f(x):
-            return np.square(x).sum()
-
-        lb = [-6., 1., -5.]
-        ub = [-1., 3., 5.]
-        bounds_old = list(zip(lb, ub))
-        bounds_new = Bounds(lb, ub)
-
-        res_old_bounds = shgo(f, bounds_old)
-        res_new_bounds = shgo(f, bounds_new)
-
-        assert res_new_bounds.nfev == res_old_bounds.nfev
-        assert res_new_bounds.message == res_old_bounds.message
-        assert res_new_bounds.success == res_old_bounds.success
-        x_opt = np.array([-1., 1., 0.])
-        np.testing.assert_allclose(res_new_bounds.x, x_opt)
-        np.testing.assert_allclose(res_new_bounds.x, res_old_bounds.x)
-
-    @pytest.mark.fail_slow(5)
-    def test_19_parallelization(self):
-        """Test the functionality to add custom sampling methods to shgo"""
-
-        with Pool(2) as p:
-            run_test(test1_1, n=30, workers=p.map)  # Constrained
-        run_test(test1_1, n=30, workers=map)  # Constrained
-        with Pool(2) as p:
-            run_test(test_s, n=30, workers=p.map)  # Unconstrained
-        run_test(test_s, n=30, workers=map)  # Unconstrained
-
-    def test_20_constrained_args(self):
-        """Test that constraints can be passed to arguments"""
-
-        def eggholder(x):
-            return (
-                -(x[1] + 47.0)*np.sin(np.sqrt(abs(x[0] / 2.0 + (x[1] + 47.0))))
-                - x[0]*np.sin(np.sqrt(abs(x[0] - (x[1] + 47.0))))
-            )
-
-        def f(x):  # (cattle-feed)
-            return 24.55 * x[0] + 26.75 * x[1] + 39 * x[2] + 40.50 * x[3]
-
-        bounds = [(0, 1.0), ] * 4
-
-        def g1_modified(x, i):
-            return i * 2.3 * x[0] + i * 5.6 * x[1] + 11.1 * x[2] + 1.3 * x[
-                3] - 5  # >=0
-
-        def g2(x):
-            return (
-                12*x[0] + 11.9*x[1] + 41.8*x[2] + 52.1*x[3] - 21
-                - 1.645*np.sqrt(
-                    0.28*x[0]**2 + 0.19*x[1]**2 + 20.5*x[2]**2 + 0.62*x[3]**2
-                )
-            )  # >=0
-
-        def h1(x):
-            return x[0] + x[1] + x[2] + x[3] - 1  # == 0
-
-        cons = ({'type': 'ineq', 'fun': g1_modified, "args": (0,)},
-                {'type': 'ineq', 'fun': g2},
-                {'type': 'eq', 'fun': h1})
-
-        shgo(f, bounds, n=300, iters=1, constraints=cons)
-        # using constrain with arguments AND sampling method sobol
-        shgo(f, bounds, n=300, iters=1, constraints=cons,
-             sampling_method='sobol')
-
-    def test_21_1_jac_true(self):
-        """Test that shgo can handle objective functions that return the
-        gradient alongside the objective value. Fixes gh-13547"""
-        # previous
-        def func(x):
-            return np.sum(np.power(x, 2)), 2 * x
-
-        shgo(
-            func,
-            bounds=[[-1, 1], [1, 2]],
-            n=100, iters=5,
-            sampling_method="sobol",
-            minimizer_kwargs={'method': 'SLSQP', 'jac': True}
-        )
-
-        # new
-        def func(x):
-            return np.sum(x ** 2), 2 * x
-
-        bounds = [[-1, 1], [1, 2], [-1, 1], [1, 2], [0, 3]]
-
-        res = shgo(func, bounds=bounds, sampling_method="sobol",
-                   minimizer_kwargs={'method': 'SLSQP', 'jac': True})
-        ref = minimize(func, x0=[1, 1, 1, 1, 1], bounds=bounds,
-                       jac=True)
-        assert res.success
-        assert_allclose(res.fun, ref.fun)
-        assert_allclose(res.x, ref.x, atol=1e-15)
-
-    @pytest.mark.parametrize('derivative', ['jac', 'hess', 'hessp'])
-    def test_21_2_derivative_options(self, derivative):
-        """shgo used to raise an error when passing `options` with 'jac'
-        # see gh-12963. check that this is resolved
-        """
-
-        def objective(x):
-            return 3 * x[0] * x[0] + 2 * x[0] + 5
-
-        def gradient(x):
-            return 6 * x[0] + 2
-
-        def hess(x):
-            return 6
-
-        def hessp(x, p):
-            return 6 * p
-
-        derivative_funcs = {'jac': gradient, 'hess': hess, 'hessp': hessp}
-        options = {derivative: derivative_funcs[derivative]}
-        minimizer_kwargs = {'method': 'trust-constr'}
-
-        bounds = [(-100, 100)]
-        res = shgo(objective, bounds, minimizer_kwargs=minimizer_kwargs,
-                   options=options)
-        ref = minimize(objective, x0=[0], bounds=bounds, **minimizer_kwargs,
-                       **options)
-
-        assert res.success
-        np.testing.assert_allclose(res.fun, ref.fun)
-        np.testing.assert_allclose(res.x, ref.x)
-
-    def test_21_3_hess_options_rosen(self):
-        """Ensure the Hessian gets passed correctly to the local minimizer
-        routine. Previous report gh-14533.
-        """
-        bounds = [(0, 1.6), (0, 1.6), (0, 1.4), (0, 1.4), (0, 1.4)]
-        options = {'jac': rosen_der, 'hess': rosen_hess}
-        minimizer_kwargs = {'method': 'Newton-CG'}
-        res = shgo(rosen, bounds, minimizer_kwargs=minimizer_kwargs,
-                   options=options)
-        ref = minimize(rosen, np.zeros(5), method='Newton-CG',
-                       **options)
-        assert res.success
-        assert_allclose(res.fun, ref.fun)
-        assert_allclose(res.x, ref.x, atol=1e-15)
-
-    def test_21_arg_tuple_sobol(self):
-        """shgo used to raise an error when passing `args` with Sobol sampling
-        # see gh-12114. check that this is resolved"""
-
-        def fun(x, k):
-            return x[0] ** k
-
-        constraints = ({'type': 'ineq', 'fun': lambda x: x[0] - 1})
-
-        bounds = [(0, 10)]
-        res = shgo(fun, bounds, args=(1,), constraints=constraints,
-                   sampling_method='sobol')
-        ref = minimize(fun, np.zeros(1), bounds=bounds, args=(1,),
-                       constraints=constraints)
-        assert res.success
-        assert_allclose(res.fun, ref.fun)
-        assert_allclose(res.x, ref.x)
-
-
-# Failure test functions
-class TestShgoFailures:
-    def test_1_maxiter(self):
-        """Test failure on insufficient iterations"""
-        options = {'maxiter': 2}
-        res = shgo(test4_1.f, test4_1.bounds, n=2, iters=None,
-                   options=options, sampling_method='sobol')
-
-        np.testing.assert_equal(False, res.success)
-        # np.testing.assert_equal(4, res.nfev)
-        np.testing.assert_equal(4, res.tnev)
-
-    def test_2_sampling(self):
-        """Rejection of unknown sampling method"""
-        assert_raises(ValueError, shgo, test1_1.f, test1_1.bounds,
-                      sampling_method='not_Sobol')
-
-    def test_3_1_no_min_pool_sobol(self):
-        """Check that the routine stops when no minimiser is found
-           after maximum specified function evaluations"""
-        options = {'maxfev': 10,
-                   # 'maxev': 10,
-                   'disp': True}
-        res = shgo(test_table.f, test_table.bounds, n=3, options=options,
-                   sampling_method='sobol')
-        np.testing.assert_equal(False, res.success)
-        # np.testing.assert_equal(9, res.nfev)
-        np.testing.assert_equal(12, res.nfev)
-
-    def test_3_2_no_min_pool_simplicial(self):
-        """Check that the routine stops when no minimiser is found
-           after maximum specified sampling evaluations"""
-        options = {'maxev': 10,
-                   'disp': True}
-        res = shgo(test_table.f, test_table.bounds, n=3, options=options,
-                   sampling_method='simplicial')
-        np.testing.assert_equal(False, res.success)
-
-    def test_4_1_bound_err(self):
-        """Specified bounds ub > lb"""
-        bounds = [(6, 3), (3, 5)]
-        assert_raises(ValueError, shgo, test1_1.f, bounds)
-
-    def test_4_2_bound_err(self):
-        """Specified bounds are of the form (lb, ub)"""
-        bounds = [(3, 5, 5), (3, 5)]
-        assert_raises(ValueError, shgo, test1_1.f, bounds)
-
-    def test_5_1_1_infeasible_sobol(self):
-        """Ensures the algorithm terminates on infeasible problems
-           after maxev is exceeded. Use infty constraints option"""
-        options = {'maxev': 100,
-                   'disp': True}
-
-        res = shgo(test_infeasible.f, test_infeasible.bounds,
-                   constraints=test_infeasible.cons, n=100, options=options,
-                   sampling_method='sobol')
-
-        np.testing.assert_equal(False, res.success)
-
-    def test_5_1_2_infeasible_sobol(self):
-        """Ensures the algorithm terminates on infeasible problems
-           after maxev is exceeded. Do not use infty constraints option"""
-        options = {'maxev': 100,
-                   'disp': True,
-                   'infty_constraints': False}
-
-        res = shgo(test_infeasible.f, test_infeasible.bounds,
-                   constraints=test_infeasible.cons, n=100, options=options,
-                   sampling_method='sobol')
-
-        np.testing.assert_equal(False, res.success)
-
-    def test_5_2_infeasible_simplicial(self):
-        """Ensures the algorithm terminates on infeasible problems
-           after maxev is exceeded."""
-        options = {'maxev': 1000,
-                   'disp': False}
-
-        res = shgo(test_infeasible.f, test_infeasible.bounds,
-                   constraints=test_infeasible.cons, n=100, options=options,
-                   sampling_method='simplicial')
-
-        np.testing.assert_equal(False, res.success)
-
-    def test_6_1_lower_known_f_min(self):
-        """Test Global mode limiting local evaluations with f* too high"""
-        options = {  # Specify known function value
-            'f_min': test2_1.expected_fun + 2.0,
-            'f_tol': 1e-6,
-            # Specify number of local iterations to perform+
-            'minimize_every_iter': True,
-            'local_iter': 1,
-            'infty_constraints': False}
-        args = (test2_1.f, test2_1.bounds)
-        kwargs = {'constraints': test2_1.cons,
-                  'n': None,
-                  'iters': None,
-                  'options': options,
-                  'sampling_method': 'sobol'
-                  }
-        warns(UserWarning, shgo, *args, **kwargs)
-
-    def test(self):
-        from scipy.optimize import rosen, shgo
-        bounds = [(0, 2), (0, 2), (0, 2), (0, 2), (0, 2)]
-
-        def fun(x):
-            fun.nfev += 1
-            return rosen(x)
-
-        fun.nfev = 0
-
-        result = shgo(fun, bounds)
-        print(result.x, result.fun, fun.nfev)  # 50
-
-
-# Returns
-class TestShgoReturns:
-    def test_1_nfev_simplicial(self):
-        bounds = [(0, 2), (0, 2), (0, 2), (0, 2), (0, 2)]
-
-        def fun(x):
-            fun.nfev += 1
-            return rosen(x)
-
-        fun.nfev = 0
-
-        result = shgo(fun, bounds)
-        np.testing.assert_equal(fun.nfev, result.nfev)
-
-    def test_1_nfev_sobol(self):
-        bounds = [(0, 2), (0, 2), (0, 2), (0, 2), (0, 2)]
-
-        def fun(x):
-            fun.nfev += 1
-            return rosen(x)
-
-        fun.nfev = 0
-
-        result = shgo(fun, bounds, sampling_method='sobol')
-        np.testing.assert_equal(fun.nfev, result.nfev)
-
-
-def test_vector_constraint():
-    # gh15514
-    def quad(x):
-        x = np.asarray(x)
-        return [np.sum(x ** 2)]
-
-    nlc = NonlinearConstraint(quad, [2.2], [3])
-    oldc = new_constraint_to_old(nlc, np.array([1.0, 1.0]))
-
-    res = shgo(rosen, [(0, 10), (0, 10)], constraints=oldc, sampling_method='sobol')
-    assert np.all(np.sum((res.x)**2) >= 2.2)
-    assert np.all(np.sum((res.x) ** 2) <= 3.0)
-    assert res.success
-
-
-@pytest.mark.filterwarnings("ignore:delta_grad")
-def test_trust_constr():
-    def quad(x):
-        x = np.asarray(x)
-        return [np.sum(x ** 2)]
-
-    nlc = NonlinearConstraint(quad, [2.6], [3])
-    minimizer_kwargs = {'method': 'trust-constr'}
-    # note that we don't supply the constraints in minimizer_kwargs,
-    # so if the final result obeys the constraints we know that shgo
-    # passed them on to 'trust-constr'
-    res = shgo(
-        rosen,
-        [(0, 10), (0, 10)],
-        constraints=nlc,
-        sampling_method='sobol',
-        minimizer_kwargs=minimizer_kwargs
-    )
-    assert np.all(np.sum((res.x)**2) >= 2.6)
-    assert np.all(np.sum((res.x) ** 2) <= 3.0)
-    assert res.success
-
-
-def test_equality_constraints():
-    # gh16260
-    bounds = [(0.9, 4.0)] * 2  # Constrain probabilities to 0 and 1.
-
-    def faulty(x):
-        return x[0] + x[1]
-
-    nlc = NonlinearConstraint(faulty, 3.9, 3.9)
-    res = shgo(rosen, bounds=bounds, constraints=nlc)
-    assert_allclose(np.sum(res.x), 3.9)
-
-    def faulty(x):
-        return x[0] + x[1] - 3.9
-
-    constraints = {'type': 'eq', 'fun': faulty}
-    res = shgo(rosen, bounds=bounds, constraints=constraints)
-    assert_allclose(np.sum(res.x), 3.9)
-
-    bounds = [(0, 1.0)] * 4
-    # sum of variable should equal 1.
-    def faulty(x):
-        return x[0] + x[1] + x[2] + x[3] - 1
-
-    # options = {'minimize_every_iter': True, 'local_iter':10}
-    constraints = {'type': 'eq', 'fun': faulty}
-    res = shgo(
-        lambda x: - np.prod(x),
-        bounds=bounds,
-        constraints=constraints,
-        sampling_method='sobol'
-    )
-    assert_allclose(np.sum(res.x), 1.0)
-
-def test_gh16971():
-    def cons(x):
-        return np.sum(x**2) - 0
-
-    c = {'fun': cons, 'type': 'ineq'}
-    minimizer_kwargs = {
-        'method': 'COBYLA',
-        'options': {'rhobeg': 5, 'tol': 5e-1, 'catol': 0.05}
-    }
-
-    s = SHGO(
-        rosen, [(0, 10)]*2, constraints=c, minimizer_kwargs=minimizer_kwargs
-    )
-
-    assert s.minimizer_kwargs['method'].lower() == 'cobyla'
-    assert s.minimizer_kwargs['options']['catol'] == 0.05
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__spectral.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__spectral.py
deleted file mode 100644
index 7b4dc52cc20caf0206fe53933d4dfc6d0fbb2c34..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test__spectral.py
+++ /dev/null
@@ -1,226 +0,0 @@
-import itertools
-
-import numpy as np
-from numpy import exp
-from numpy.testing import assert_, assert_equal
-
-from scipy.optimize import root
-
-
-def test_performance():
-    # Compare performance results to those listed in
-    # [Cheng & Li, IMA J. Num. An. 29, 814 (2008)]
-    # and
-    # [W. La Cruz, J.M. Martinez, M. Raydan, Math. Comp. 75, 1429 (2006)].
-    # and those produced by dfsane.f from M. Raydan's website.
-    #
-    # Where the results disagree, the largest limits are taken.
-
-    e_a = 1e-5
-    e_r = 1e-4
-
-    table_1 = [
-        dict(F=F_1, x0=x0_1, n=1000, nit=5, nfev=5),
-        dict(F=F_1, x0=x0_1, n=10000, nit=2, nfev=2),
-        dict(F=F_2, x0=x0_2, n=500, nit=11, nfev=11),
-        dict(F=F_2, x0=x0_2, n=2000, nit=11, nfev=11),
-        # dict(F=F_4, x0=x0_4, n=999, nit=243, nfev=1188) removed:
-        # too sensitive to rounding errors
-        # Results from dfsane.f; papers list nit=3, nfev=3
-        dict(F=F_6, x0=x0_6, n=100, nit=6, nfev=6),
-        # Must have n%3==0, typo in papers?
-        dict(F=F_7, x0=x0_7, n=99, nit=23, nfev=29),
-        # Must have n%3==0, typo in papers?
-        dict(F=F_7, x0=x0_7, n=999, nit=23, nfev=29),
-        # Results from dfsane.f; papers list nit=nfev=6?
-        dict(F=F_9, x0=x0_9, n=100, nit=12, nfev=18),
-        dict(F=F_9, x0=x0_9, n=1000, nit=12, nfev=18),
-        # Results from dfsane.f; papers list nit=2, nfev=12
-        dict(F=F_10, x0=x0_10, n=1000, nit=5, nfev=5),
-    ]
-
-    # Check also scaling invariance
-    for xscale, yscale, line_search in itertools.product(
-        [1.0, 1e-10, 1e10], [1.0, 1e-10, 1e10], ['cruz', 'cheng']
-    ):
-        for problem in table_1:
-            n = problem['n']
-            def func(x, n):
-                return yscale * problem['F'](x / xscale, n)
-            args = (n,)
-            x0 = problem['x0'](n) * xscale
-
-            fatol = np.sqrt(n) * e_a * yscale + e_r * np.linalg.norm(func(x0, n))
-
-            sigma_eps = 1e-10 * min(yscale/xscale, xscale/yscale)
-            sigma_0 = xscale/yscale
-
-            with np.errstate(over='ignore'):
-                sol = root(func, x0, args=args,
-                           options=dict(ftol=0, fatol=fatol, maxfev=problem['nfev'] + 1,
-                                        sigma_0=sigma_0, sigma_eps=sigma_eps,
-                                        line_search=line_search),
-                           method='DF-SANE')
-
-            err_msg = repr(
-                [xscale, yscale, line_search, problem, np.linalg.norm(func(sol.x, n)),
-                 fatol, sol.success, sol.nit, sol.nfev]
-            )
-            assert sol.success, err_msg
-            # nfev+1: dfsane.f doesn't count first eval
-            assert sol.nfev <= problem['nfev'] + 1, err_msg
-            assert sol.nit <= problem['nit'], err_msg
-            assert np.linalg.norm(func(sol.x, n)) <= fatol, err_msg
-
-
-def test_complex():
-    def func(z):
-        return z**2 - 1 + 2j
-    x0 = 2.0j
-
-    ftol = 1e-4
-    sol = root(func, x0, tol=ftol, method='DF-SANE')
-
-    assert_(sol.success)
-
-    f0 = np.linalg.norm(func(x0))
-    fx = np.linalg.norm(func(sol.x))
-    assert_(fx <= ftol*f0)
-
-
-def test_linear_definite():
-    # The DF-SANE paper proves convergence for "strongly isolated"
-    # solutions.
-    #
-    # For linear systems F(x) = A x - b = 0, with A positive or
-    # negative definite, the solution is strongly isolated.
-
-    def check_solvability(A, b, line_search='cruz'):
-        def func(x):
-            return A.dot(x) - b
-        xp = np.linalg.solve(A, b)
-        eps = np.linalg.norm(func(xp)) * 1e3
-        sol = root(
-            func, b,
-            options=dict(fatol=eps, ftol=0, maxfev=17523, line_search=line_search),
-            method='DF-SANE',
-        )
-        assert_(sol.success)
-        assert_(np.linalg.norm(func(sol.x)) <= eps)
-
-    n = 90
-
-    # Test linear pos.def. system
-    np.random.seed(1234)
-    A = np.arange(n*n).reshape(n, n)
-    A = A + n*n * np.diag(1 + np.arange(n))
-    assert_(np.linalg.eigvals(A).min() > 0)
-    b = np.arange(n) * 1.0
-    check_solvability(A, b, 'cruz')
-    check_solvability(A, b, 'cheng')
-
-    # Test linear neg.def. system
-    check_solvability(-A, b, 'cruz')
-    check_solvability(-A, b, 'cheng')
-
-
-def test_shape():
-    def f(x, arg):
-        return x - arg
-
-    for dt in [float, complex]:
-        x = np.zeros([2,2])
-        arg = np.ones([2,2], dtype=dt)
-
-        sol = root(f, x, args=(arg,), method='DF-SANE')
-        assert_(sol.success)
-        assert_equal(sol.x.shape, x.shape)
-
-
-# Some of the test functions and initial guesses listed in
-# [W. La Cruz, M. Raydan. Optimization Methods and Software, 18, 583 (2003)]
-
-def F_1(x, n):
-    g = np.zeros([n])
-    i = np.arange(2, n+1)
-    g[0] = exp(x[0] - 1) - 1
-    g[1:] = i*(exp(x[1:] - 1) - x[1:])
-    return g
-
-def x0_1(n):
-    x0 = np.empty([n])
-    x0.fill(n/(n-1))
-    return x0
-
-def F_2(x, n):
-    g = np.zeros([n])
-    i = np.arange(2, n+1)
-    g[0] = exp(x[0]) - 1
-    g[1:] = 0.1*i*(exp(x[1:]) + x[:-1] - 1)
-    return g
-
-def x0_2(n):
-    x0 = np.empty([n])
-    x0.fill(1/n**2)
-    return x0
-
-
-def F_4(x, n):  # skip name check
-    assert_equal(n % 3, 0)
-    g = np.zeros([n])
-    # Note: the first line is typoed in some of the references;
-    # correct in original [Gasparo, Optimization Meth. 13, 79 (2000)]
-    g[::3] = 0.6 * x[::3] + 1.6 * x[1::3]**3 - 7.2 * x[1::3]**2 + 9.6 * x[1::3] - 4.8
-    g[1::3] = (0.48 * x[::3] - 0.72 * x[1::3]**3 + 3.24 * x[1::3]**2 - 4.32 * x[1::3]
-               - x[2::3] + 0.2 * x[2::3]**3 + 2.16)
-    g[2::3] = 1.25 * x[2::3] - 0.25*x[2::3]**3
-    return g
-
-
-def x0_4(n):  # skip name check
-    assert_equal(n % 3, 0)
-    x0 = np.array([-1, 1/2, -1] * (n//3))
-    return x0
-
-def F_6(x, n):
-    c = 0.9
-    mu = (np.arange(1, n+1) - 0.5)/n
-    return x - 1/(1 - c/(2*n) * (mu[:,None]*x / (mu[:,None] + mu)).sum(axis=1))
-
-def x0_6(n):
-    return np.ones([n])
-
-def F_7(x, n):
-    assert_equal(n % 3, 0)
-
-    def phi(t):
-        v = 0.5*t - 2
-        v[t > -1] = ((-592*t**3 + 888*t**2 + 4551*t - 1924)/1998)[t > -1]
-        v[t >= 2] = (0.5*t + 2)[t >= 2]
-        return v
-    g = np.zeros([n])
-    g[::3] = 1e4 * x[1::3]**2 - 1
-    g[1::3] = exp(-x[::3]) + exp(-x[1::3]) - 1.0001
-    g[2::3] = phi(x[2::3])
-    return g
-
-def x0_7(n):
-    assert_equal(n % 3, 0)
-    return np.array([1e-3, 18, 1] * (n//3))
-
-def F_9(x, n):
-    g = np.zeros([n])
-    i = np.arange(2, n)
-    g[0] = x[0]**3/3 + x[1]**2/2
-    g[1:-1] = -x[1:-1]**2/2 + i*x[1:-1]**3/3 + x[2:]**2/2
-    g[-1] = -x[-1]**2/2 + n*x[-1]**3/3
-    return g
-
-def x0_9(n):
-    return np.ones([n])
-
-def F_10(x, n):
-    return np.log(1 + x) - x/n
-
-def x0_10(n):
-    return np.ones([n])
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_bracket.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_bracket.py
deleted file mode 100644
index dc39b5fe52862a757d509e3c639016f90129e6d4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_bracket.py
+++ /dev/null
@@ -1,793 +0,0 @@
-import pytest
-
-import numpy as np
-from numpy.testing import assert_array_less, assert_allclose, assert_equal
-
-from scipy.optimize._bracket import _bracket_root, _bracket_minimum, _ELIMITS
-import scipy._lib._elementwise_iterative_method as eim
-from scipy import stats
-
-class TestBracketRoot:
-    @pytest.mark.parametrize("seed", (615655101, 3141866013, 238075752))
-    @pytest.mark.parametrize("use_xmin", (False, True))
-    @pytest.mark.parametrize("other_side", (False, True))
-    @pytest.mark.parametrize("fix_one_side", (False, True))
-    def test_nfev_expected(self, seed, use_xmin, other_side, fix_one_side):
-        # Property-based test to confirm that _bracket_root is behaving as
-        # expected. The basic case is when root < a < b.
-        # The number of times bracket expands (per side) can be found by
-        # setting the expression for the left endpoint of the bracket to the
-        # root of f (x=0), solving for i, and rounding up. The corresponding
-        # lower and upper ends of the bracket are found by plugging this back
-        # into the expression for the ends of the bracket.
-        # `other_side=True` is the case that a < b < root
-        # Special cases like a < root < b are tested separately
-
-        rng = np.random.default_rng(seed)
-        xl0, d, factor = rng.random(size=3) * [1e5, 10, 5]
-        factor = 1 + factor  # factor must be greater than 1
-        xr0 = xl0 + d  # xr0 must be greater than a in basic case
-
-        def f(x):
-            f.count += 1
-            return x  # root is 0
-
-        if use_xmin:
-            xmin = -rng.random()
-            n = np.ceil(np.log(-(xl0 - xmin) / xmin) / np.log(factor))
-            l, u = xmin + (xl0 - xmin)*factor**-n, xmin + (xl0 - xmin)*factor**-(n - 1)
-            kwargs = dict(xl0=xl0, xr0=xr0, factor=factor, xmin=xmin)
-        else:
-            n = np.ceil(np.log(xr0/d) / np.log(factor))
-            l, u = xr0 - d*factor**n, xr0 - d*factor**(n-1)
-            kwargs = dict(xl0=xl0, xr0=xr0, factor=factor)
-
-        if other_side:
-            kwargs['xl0'], kwargs['xr0'] = -kwargs['xr0'], -kwargs['xl0']
-            l, u = -u, -l
-            if 'xmin' in kwargs:
-                kwargs['xmax'] = -kwargs.pop('xmin')
-
-        if fix_one_side:
-            if other_side:
-                kwargs['xmin'] = -xr0
-            else:
-                kwargs['xmax'] = xr0
-
-        f.count = 0
-        res = _bracket_root(f, **kwargs)
-
-        # Compare reported number of function evaluations `nfev` against
-        # reported `nit`, actual function call count `f.count`, and theoretical
-        # number of expansions `n`.
-        # When both sides are free, these get multiplied by 2 because function
-        # is evaluated on the left and the right each iteration.
-        # When one side is fixed, however, we add one: on the right side, the
-        # function gets evaluated once at b.
-        # Add 1 to `n` and `res.nit` because function evaluations occur at
-        # iterations *0*, 1, ..., `n`. Subtract 1 from `f.count` because
-        # function is called separately for left and right in iteration 0.
-        if not fix_one_side:
-            assert res.nfev == 2*(res.nit+1) == 2*(f.count-1) == 2*(n + 1)
-        else:
-            assert res.nfev == (res.nit+1)+1 == (f.count-1)+1 == (n+1)+1
-
-        # Compare reported bracket to theoretical bracket and reported function
-        # values to function evaluated at bracket.
-        bracket = np.asarray([res.xl, res.xr])
-        assert_allclose(bracket, (l, u))
-        f_bracket = np.asarray([res.fl, res.fr])
-        assert_allclose(f_bracket, f(bracket))
-
-        # Check that bracket is valid and that status and success are correct
-        assert res.xr > res.xl
-        signs = np.sign(f_bracket)
-        assert signs[0] == -signs[1]
-        assert res.status == 0
-        assert res.success
-
-    def f(self, q, p):
-        return stats.norm.cdf(q) - p
-
-    @pytest.mark.parametrize('p', [0.6, np.linspace(0.05, 0.95, 10)])
-    @pytest.mark.parametrize('xmin', [-5, None])
-    @pytest.mark.parametrize('xmax', [5, None])
-    @pytest.mark.parametrize('factor', [1.2, 2])
-    def test_basic(self, p, xmin, xmax, factor):
-        # Test basic functionality to bracket root (distribution PPF)
-        res = _bracket_root(self.f, -0.01, 0.01, xmin=xmin, xmax=xmax,
-                            factor=factor, args=(p,))
-        assert_equal(-np.sign(res.fl), np.sign(res.fr))
-
-    @pytest.mark.parametrize('shape', [tuple(), (12,), (3, 4), (3, 2, 2)])
-    def test_vectorization(self, shape):
-        # Test for correct functionality, output shapes, and dtypes for various
-        # input shapes.
-        p = np.linspace(-0.05, 1.05, 12).reshape(shape) if shape else 0.6
-        args = (p,)
-        maxiter = 10
-
-        @np.vectorize
-        def bracket_root_single(xl0, xr0, xmin, xmax, factor, p):
-            return _bracket_root(self.f, xl0, xr0, xmin=xmin, xmax=xmax,
-                                 factor=factor, args=(p,),
-                                 maxiter=maxiter)
-
-        def f(*args, **kwargs):
-            f.f_evals += 1
-            return self.f(*args, **kwargs)
-        f.f_evals = 0
-
-        rng = np.random.default_rng(2348234)
-        xl0 = -rng.random(size=shape)
-        xr0 = rng.random(size=shape)
-        xmin, xmax = 1e3*xl0, 1e3*xr0
-        if shape:  # make some elements un
-            i = rng.random(size=shape) > 0.5
-            xmin[i], xmax[i] = -np.inf, np.inf
-        factor = rng.random(size=shape) + 1.5
-        res = _bracket_root(f, xl0, xr0, xmin=xmin, xmax=xmax, factor=factor,
-                            args=args, maxiter=maxiter)
-        refs = bracket_root_single(xl0, xr0, xmin, xmax, factor, p).ravel()
-
-        attrs = ['xl', 'xr', 'fl', 'fr', 'success', 'nfev', 'nit']
-        for attr in attrs:
-            ref_attr = [getattr(ref, attr) for ref in refs]
-            res_attr = getattr(res, attr)
-            assert_allclose(res_attr.ravel(), ref_attr)
-            assert_equal(res_attr.shape, shape)
-
-        assert np.issubdtype(res.success.dtype, np.bool_)
-        if shape:
-            assert np.all(res.success[1:-1])
-        assert np.issubdtype(res.status.dtype, np.integer)
-        assert np.issubdtype(res.nfev.dtype, np.integer)
-        assert np.issubdtype(res.nit.dtype, np.integer)
-        assert_equal(np.max(res.nit), f.f_evals - 2)
-        assert_array_less(res.xl, res.xr)
-        assert_allclose(res.fl, self.f(res.xl, *args))
-        assert_allclose(res.fr, self.f(res.xr, *args))
-
-    def test_flags(self):
-        # Test cases that should produce different status flags; show that all
-        # can be produced simultaneously.
-        def f(xs, js):
-            funcs = [lambda x: x - 1.5,
-                     lambda x: x - 1000,
-                     lambda x: x - 1000,
-                     lambda x: np.nan,
-                     lambda x: x]
-
-            return [funcs[j](x) for x, j in zip(xs, js)]
-
-        args = (np.arange(5, dtype=np.int64),)
-        res = _bracket_root(f,
-                            xl0=[-1, -1, -1, -1, 4],
-                            xr0=[1, 1, 1, 1, -4],
-                            xmin=[-np.inf, -1, -np.inf, -np.inf, 6],
-                            xmax=[np.inf, 1, np.inf, np.inf, 2],
-                            args=args, maxiter=3)
-
-        ref_flags = np.array([eim._ECONVERGED,
-                              _ELIMITS,
-                              eim._ECONVERR,
-                              eim._EVALUEERR,
-                              eim._EINPUTERR])
-
-        assert_equal(res.status, ref_flags)
-
-    @pytest.mark.parametrize("root", (0.622, [0.622, 0.623]))
-    @pytest.mark.parametrize('xmin', [-5, None])
-    @pytest.mark.parametrize('xmax', [5, None])
-    @pytest.mark.parametrize("dtype", (np.float16, np.float32, np.float64))
-    def test_dtype(self, root, xmin, xmax, dtype):
-        # Test that dtypes are preserved
-
-        xmin = xmin if xmin is None else dtype(xmin)
-        xmax = xmax if xmax is None else dtype(xmax)
-        root = dtype(root)
-        def f(x, root):
-            return ((x - root) ** 3).astype(dtype)
-
-        bracket = np.asarray([-0.01, 0.01], dtype=dtype)
-        res = _bracket_root(f, *bracket, xmin=xmin, xmax=xmax, args=(root,))
-        assert np.all(res.success)
-        assert res.xl.dtype == res.xr.dtype == dtype
-        assert res.fl.dtype == res.fr.dtype == dtype
-
-    def test_input_validation(self):
-        # Test input validation for appropriate error messages
-
-        message = '`func` must be callable.'
-        with pytest.raises(ValueError, match=message):
-            _bracket_root(None, -4, 4)
-
-        message = '...must be numeric and real.'
-        with pytest.raises(ValueError, match=message):
-            _bracket_root(lambda x: x, -4+1j, 4)
-        with pytest.raises(ValueError, match=message):
-            _bracket_root(lambda x: x, -4, 'hello')
-        with pytest.raises(ValueError, match=message):
-            _bracket_root(lambda x: x, -4, 4, xmin=np)
-        with pytest.raises(ValueError, match=message):
-            _bracket_root(lambda x: x, -4, 4, xmax=object())
-        with pytest.raises(ValueError, match=message):
-            _bracket_root(lambda x: x, -4, 4, factor=sum)
-
-        message = "All elements of `factor` must be greater than 1."
-        with pytest.raises(ValueError, match=message):
-            _bracket_root(lambda x: x, -4, 4, factor=0.5)
-
-        message = "shape mismatch: objects cannot be broadcast"
-        # raised by `np.broadcast, but the traceback is readable IMO
-        with pytest.raises(ValueError, match=message):
-            _bracket_root(lambda x: x, [-2, -3], [3, 4, 5])
-        # Consider making this give a more readable error message
-        # with pytest.raises(ValueError, match=message):
-        #     _bracket_root(lambda x: [x[0], x[1], x[1]], [-3, -3], [5, 5])
-
-        message = '`maxiter` must be a non-negative integer.'
-        with pytest.raises(ValueError, match=message):
-            _bracket_root(lambda x: x, -4, 4, maxiter=1.5)
-        with pytest.raises(ValueError, match=message):
-            _bracket_root(lambda x: x, -4, 4, maxiter=-1)
-
-    def test_special_cases(self):
-        # Test edge cases and other special cases
-
-        # Test that integers are not passed to `f`
-        # (otherwise this would overflow)
-        def f(x):
-            assert np.issubdtype(x.dtype, np.floating)
-            return x ** 99 - 1
-
-        res = _bracket_root(f, -7, 5)
-        assert res.success
-
-        # Test maxiter = 0. Should do nothing to bracket.
-        def f(x):
-            return x - 10
-
-        bracket = (-3, 5)
-        res = _bracket_root(f, *bracket, maxiter=0)
-        assert res.xl, res.xr == bracket
-        assert res.nit == 0
-        assert res.nfev == 2
-        assert res.status == -2
-
-        # Test scalar `args` (not in tuple)
-        def f(x, c):
-            return c*x - 1
-
-        res = _bracket_root(f, -1, 1, args=3)
-        assert res.success
-        assert_allclose(res.fl, f(res.xl, 3))
-
-        # Test other edge cases
-
-        def f(x):
-            f.count += 1
-            return x
-
-        # 1. root lies within guess of bracket
-        f.count = 0
-        _bracket_root(f, -10, 20)
-        assert_equal(f.count, 2)
-
-        # 2. bracket endpoint hits root exactly
-        f.count = 0
-        res = _bracket_root(f, 5, 10, factor=2)
-        bracket = (res.xl, res.xr)
-        assert_equal(res.nfev, 4)
-        assert_allclose(bracket, (0, 5), atol=1e-15)
-
-        # 3. bracket limit hits root exactly
-        with np.errstate(over='ignore'):
-            res = _bracket_root(f, 5, 10, xmin=0)
-        bracket = (res.xl, res.xr)
-        assert_allclose(bracket[0], 0, atol=1e-15)
-        with np.errstate(over='ignore'):
-            res = _bracket_root(f, -10, -5, xmax=0)
-        bracket = (res.xl, res.xr)
-        assert_allclose(bracket[1], 0, atol=1e-15)
-
-        # 4. bracket not within min, max
-        with np.errstate(over='ignore'):
-            res = _bracket_root(f, 5, 10, xmin=1)
-        assert not res.success
-
-
-class TestBracketMinimum:
-    def init_f(self):
-        def f(x, a, b):
-            f.count += 1
-            return (x - a)**2 + b
-        f.count = 0
-        return f
-
-    def assert_valid_bracket(self, result):
-        assert np.all(
-            (result.xl < result.xm) & (result.xm < result.xr)
-        )
-        assert np.all(
-            (result.fl >= result.fm) & (result.fr > result.fm)
-            | (result.fl > result.fm) & (result.fr > result.fm)
-        )
-
-    def get_kwargs(
-            self, *, xl0=None, xr0=None, factor=None, xmin=None, xmax=None, args=()
-    ):
-        names = ("xl0", "xr0", "xmin", "xmax", "factor", "args")
-        return {
-            name: val for name, val in zip(names, (xl0, xr0, xmin, xmax, factor, args))
-            if isinstance(val, np.ndarray) or np.isscalar(val)
-            or val not in [None, ()]
-        }
-
-    @pytest.mark.parametrize(
-        "seed",
-        (
-            307448016549685229886351382450158984917,
-            11650702770735516532954347931959000479,
-            113767103358505514764278732330028568336,
-        )
-    )
-    @pytest.mark.parametrize("use_xmin", (False, True))
-    @pytest.mark.parametrize("other_side", (False, True))
-    def test_nfev_expected(self, seed, use_xmin, other_side):
-        rng = np.random.default_rng(seed)
-        args = (0, 0)  # f(x) = x^2 with minimum at 0
-        # xl0, xm0, xr0 are chosen such that the initial bracket is to
-        # the right of the minimum, and the bracket will expand
-        # downhill towards zero.
-        xl0, d1, d2, factor = rng.random(size=4) * [1e5, 10, 10, 5]
-        xm0 = xl0 + d1
-        xr0 = xm0 + d2
-        # Factor should be greater than one.
-        factor += 1
-
-        if use_xmin:
-            xmin = -rng.random() * 5
-            n = int(np.ceil(np.log(-(xl0 - xmin) / xmin) / np.log(factor)))
-            lower = xmin + (xl0 - xmin)*factor**-n
-            middle = xmin + (xl0 - xmin)*factor**-(n-1)
-            upper = xmin + (xl0 - xmin)*factor**-(n-2) if n > 1 else xm0
-            # It may be the case the lower is below the minimum, but we still
-            # don't have a valid bracket.
-            if middle**2 > lower**2:
-                n += 1
-                lower, middle, upper = (
-                    xmin + (xl0 - xmin)*factor**-n, lower, middle
-                )
-        else:
-            xmin = None
-            n = int(np.ceil(np.log(xl0 / d1) / np.log(factor)))
-            lower = xl0 - d1*factor**n
-            middle = xl0 - d1*factor**(n-1) if n > 1 else xl0
-            upper = xl0 - d1*factor**(n-2) if n > 1 else xm0
-            # It may be the case the lower is below the minimum, but we still
-            # don't have a valid bracket.
-            if middle**2 > lower**2:
-                n += 1
-                lower, middle, upper = (
-                    xl0 - d1*factor**n, lower, middle
-                )
-        f = self.init_f()
-
-        xmax = None
-        if other_side:
-            xl0, xm0, xr0 = -xr0, -xm0, -xl0
-            xmin, xmax = None, -xmin if xmin is not None else None
-            lower, middle, upper = -upper, -middle, -lower
-
-        kwargs = self.get_kwargs(
-            xl0=xl0, xr0=xr0, xmin=xmin, xmax=xmax, factor=factor, args=args
-        )
-        result = _bracket_minimum(f, xm0, **kwargs)
-
-        # Check that `nfev` and `nit` have the correct relationship
-        assert result.nfev == result.nit + 3
-        # Check that `nfev` reports the correct number of function evaluations.
-        assert result.nfev == f.count
-        # Check that the number of iterations matches the theoretical value.
-        assert result.nit == n
-
-        # Compare reported bracket to theoretical bracket and reported function
-        # values to function evaluated at bracket.
-        bracket = np.asarray([result.xl, result.xm, result.xr])
-        assert_allclose(bracket, (lower, middle, upper))
-        f_bracket = np.asarray([result.fl, result.fm, result.fr])
-        assert_allclose(f_bracket, f(bracket, *args))
-
-        self.assert_valid_bracket(result)
-        assert result.status == 0
-        assert result.success
-
-    def test_flags(self):
-        # Test cases that should produce different status flags; show that all
-        # can be produced simultaneously
-        def f(xs, js):
-            funcs = [lambda x: (x - 1.5)**2,
-                     lambda x: x,
-                     lambda x: x,
-                     lambda x: np.nan,
-                     lambda x: x**2]
-
-            return [funcs[j](x) for x, j in zip(xs, js)]
-
-        args = (np.arange(5, dtype=np.int64),)
-        xl0 = [-1.0, -1.0, -1.0, -1.0, 6.0]
-        xm0 = [0.0, 0.0, 0.0, 0.0, 4.0]
-        xr0 = [1.0, 1.0, 1.0, 1.0, 2.0]
-        xmin=[-np.inf, -1.0, -np.inf, -np.inf, 8.0]
-
-        result = _bracket_minimum(f, xm0, xl0=xl0, xr0=xr0, xmin=xmin,
-                                  args=args, maxiter=3)
-
-        reference_flags = np.array([eim._ECONVERGED, _ELIMITS,
-                                    eim._ECONVERR, eim._EVALUEERR,
-                                    eim._EINPUTERR])
-        assert_equal(result.status, reference_flags)
-
-    @pytest.mark.parametrize("minimum", (0.622, [0.622, 0.623]))
-    @pytest.mark.parametrize("dtype", (np.float16, np.float32, np.float64))
-    @pytest.mark.parametrize("xmin", [-5, None])
-    @pytest.mark.parametrize("xmax", [5, None])
-    def test_dtypes(self, minimum, xmin, xmax, dtype):
-        xmin = xmin if xmin is None else dtype(xmin)
-        xmax = xmax if xmax is None else dtype(xmax)
-        minimum = dtype(minimum)
-
-        def f(x, minimum):
-            return ((x - minimum)**2).astype(dtype)
-
-        xl0, xm0, xr0 = np.array([-0.01, 0.0, 0.01], dtype=dtype)
-        result = _bracket_minimum(
-            f, xm0, xl0=xl0, xr0=xr0, xmin=xmin, xmax=xmax, args=(minimum, )
-        )
-        assert np.all(result.success)
-        assert result.xl.dtype == result.xm.dtype == result.xr.dtype == dtype
-        assert result.fl.dtype == result.fm.dtype == result.fr.dtype == dtype
-
-    def test_input_validation(self):
-        # Test input validation for appropriate error messages
-
-        message = '`func` must be callable.'
-        with pytest.raises(ValueError, match=message):
-            _bracket_minimum(None, -4, xl0=4)
-
-        message = '...must be numeric and real.'
-        with pytest.raises(ValueError, match=message):
-            _bracket_minimum(lambda x: x**2, 4+1j)
-        with pytest.raises(ValueError, match=message):
-            _bracket_minimum(lambda x: x**2, -4, xl0='hello')
-        with pytest.raises(ValueError, match=message):
-            _bracket_minimum(lambda x: x**2, -4, xmin=np)
-        with pytest.raises(ValueError, match=message):
-            _bracket_minimum(lambda x: x**2, -4, xmax=object())
-        with pytest.raises(ValueError, match=message):
-            _bracket_minimum(lambda x: x**2, -4, factor=sum)
-
-        message = "All elements of `factor` must be greater than 1."
-        with pytest.raises(ValueError, match=message):
-            _bracket_minimum(lambda x: x, -4, factor=0.5)
-
-        message = "shape mismatch: objects cannot be broadcast"
-        # raised by `np.broadcast, but the traceback is readable IMO
-        with pytest.raises(ValueError, match=message):
-            _bracket_minimum(lambda x: x**2, [-2, -3], xl0=[-3, -4, -5])
-
-        message = '`maxiter` must be a non-negative integer.'
-        with pytest.raises(ValueError, match=message):
-            _bracket_minimum(lambda x: x**2, -4, xr0=4, maxiter=1.5)
-        with pytest.raises(ValueError, match=message):
-            _bracket_minimum(lambda x: x**2, -4, xr0=4, maxiter=-1)
-
-    @pytest.mark.parametrize("xl0", [0.0, None])
-    @pytest.mark.parametrize("xm0", (0.05, 0.1, 0.15))
-    @pytest.mark.parametrize("xr0", (0.2, 0.4, 0.6, None))
-    # Minimum is ``a`` for each tuple ``(a, b)`` below. Tests cases where minimum
-    # is within, or at varying disances to the left or right of the initial
-    # bracket.
-    @pytest.mark.parametrize(
-        "args",
-        (
-            (1.2, 0), (-0.5, 0), (0.1, 0), (0.2, 0), (3.6, 0), (21.4, 0),
-            (121.6, 0), (5764.1, 0), (-6.4, 0), (-12.9, 0), (-146.2, 0)
-        )
-    )
-    def test_scalar_no_limits(self, xl0, xm0, xr0, args):
-        f = self.init_f()
-        kwargs = self.get_kwargs(xl0=xl0, xr0=xr0, args=args)
-        result = _bracket_minimum(f, xm0, **kwargs)
-        self.assert_valid_bracket(result)
-        assert result.status == 0
-        assert result.success
-        assert result.nfev == f.count
-
-    @pytest.mark.parametrize(
-        # xmin is set at 0.0 in all cases.
-        "xl0,xm0,xr0,xmin",
-        (
-            # Initial bracket at varying distances from the xmin.
-            (0.5, 0.75, 1.0, 0.0),
-            (1.0, 2.5, 4.0, 0.0),
-            (2.0, 4.0, 6.0, 0.0),
-            (12.0, 16.0, 20.0, 0.0),
-            # Test default initial left endpoint selection. It should not
-            # be below xmin.
-            (None, 0.75, 1.0, 0.0),
-            (None, 2.5, 4.0, 0.0),
-            (None, 4.0, 6.0, 0.0),
-            (None, 16.0, 20.0, 0.0),
-        )
-    )
-    @pytest.mark.parametrize(
-        "args", (
-            (0.0, 0.0), # Minimum is directly at xmin.
-            (1e-300, 0.0), # Minimum is extremely close to xmin.
-            (1e-20, 0.0), # Minimum is very close to xmin.
-            # Minimum at varying distances from xmin.
-            (0.1, 0.0),
-            (0.2, 0.0),
-            (0.4, 0.0)
-        )
-    )
-    def test_scalar_with_limit_left(self, xl0, xm0, xr0, xmin, args):
-        f = self.init_f()
-        kwargs = self.get_kwargs(xl0=xl0, xr0=xr0, xmin=xmin, args=args)
-        result = _bracket_minimum(f, xm0, **kwargs)
-        self.assert_valid_bracket(result)
-        assert result.status == 0
-        assert result.success
-        assert result.nfev == f.count
-
-    @pytest.mark.parametrize(
-        #xmax is set to 1.0 in all cases.
-        "xl0,xm0,xr0,xmax",
-        (
-            # Bracket at varying distances from xmax.
-            (0.2, 0.3, 0.4, 1.0),
-            (0.05, 0.075, 0.1, 1.0),
-            (-0.2, -0.1, 0.0, 1.0),
-            (-21.2, -17.7, -14.2, 1.0),
-            # Test default right endpoint selection. It should not exceed xmax.
-            (0.2, 0.3, None, 1.0),
-            (0.05, 0.075, None, 1.0),
-            (-0.2, -0.1, None, 1.0),
-            (-21.2, -17.7, None, 1.0),
-        )
-    )
-    @pytest.mark.parametrize(
-        "args", (
-            (0.9999999999999999, 0.0), # Minimum very close to xmax.
-            # Minimum at varying distances from xmax.
-            (0.9, 0.0),
-            (0.7, 0.0),
-            (0.5, 0.0)
-        )
-    )
-    def test_scalar_with_limit_right(self, xl0, xm0, xr0, xmax, args):
-        f = self.init_f()
-        kwargs = self.get_kwargs(xl0=xl0, xr0=xr0, xmax=xmax, args=args)
-        result = _bracket_minimum(f, xm0, **kwargs)
-        self.assert_valid_bracket(result)
-        assert result.status == 0
-        assert result.success
-        assert result.nfev == f.count
-
-    @pytest.mark.parametrize(
-        "xl0,xm0,xr0,xmin,xmax,args",
-        (
-            (   # Case 1:
-                # Initial bracket.
-                0.2, 
-                0.3,
-                0.4,
-                # Function slopes down to the right from the bracket to a minimum
-                # at 1.0. xmax is also at 1.0
-                None, 
-                1.0,
-                (1.0, 0.0)
-            ),
-            (   # Case 2:
-                # Initial bracket.
-                1.4,
-                1.95,
-                2.5,
-                # Function slopes down to the left from the bracket to a minimum at
-                # 0.3 with xmin set to 0.3.
-                0.3,
-                None,
-                (0.3, 0.0)
-            ),
-            (
-                # Case 3:
-                # Initial bracket.
-                2.6,
-                3.25,
-                3.9,
-                # Function slopes down and to the right to a minimum at 99.4 with xmax
-                # at 99.4. Tests case where minimum is at xmax relatively further from
-                # the bracket.
-                None,
-                99.4,
-                (99.4, 0)
-            ),
-            (
-                # Case 4:
-                # Initial bracket.
-                4,
-                4.5,
-                5,
-                # Function slopes down and to the left away from the bracket with a
-                # minimum at -26.3 with xmin set to -26.3. Tests case where minimum is
-                # at xmin relatively far from the bracket.
-                -26.3,
-                None,
-                (-26.3, 0)
-            ),
-            (
-                # Case 5:
-                # Similar to Case 1 above, but tests default values of xl0 and xr0.
-                None,
-                0.3,
-                None,
-                None,
-                1.0,
-                (1.0, 0.0)
-            ),
-            (   # Case 6:
-                # Similar to Case 2 above, but tests default values of xl0 and xr0.
-                None,
-                1.95,
-                None,
-                0.3,
-                None,
-                (0.3, 0.0)
-            ),
-            (
-                # Case 7:
-                # Similar to Case 3 above, but tests default values of xl0 and xr0.
-                None,
-                3.25,
-                None,
-                None,
-                99.4,
-                (99.4, 0)
-            ),
-            (
-                # Case 8:
-                # Similar to Case 4 above, but tests default values of xl0 and xr0.
-                None,
-                4.5,
-                None,
-                -26.3,
-                None,
-                (-26.3, 0)
-            ),
-        )
-    )
-    def test_minimum_at_boundary_point(self, xl0, xm0, xr0, xmin, xmax, args):
-        f = self.init_f()
-        kwargs = self.get_kwargs(xr0=xr0, xmin=xmin, xmax=xmax, args=args)
-        result = _bracket_minimum(f, xm0, **kwargs)
-        assert result.status == -1
-        assert args[0] in (result.xl, result.xr)
-        assert result.nfev == f.count
-
-    @pytest.mark.parametrize('shape', [tuple(), (12, ), (3, 4), (3, 2, 2)])
-    def test_vectorization(self, shape):
-        # Test for correct functionality, output shapes, and dtypes for
-        # various input shapes.
-        a = np.linspace(-0.05, 1.05, 12).reshape(shape) if shape else 0.6
-        args = (a, 0.0)
-        maxiter = 10
-
-        @np.vectorize
-        def bracket_minimum_single(xm0, xl0, xr0, xmin, xmax, factor, a):
-            return _bracket_minimum(self.init_f(), xm0, xl0=xl0, xr0=xr0, xmin=xmin,
-                                    xmax=xmax, factor=factor, maxiter=maxiter,
-                                    args=(a, 0.0))
-
-        f = self.init_f()
-
-        rng = np.random.default_rng(2348234)
-        xl0 = -rng.random(size=shape)
-        xr0 = rng.random(size=shape)
-        xm0 = xl0 + rng.random(size=shape) * (xr0 - xl0)
-        xmin, xmax = 1e3*xl0, 1e3*xr0
-        if shape:  # make some elements un
-            i = rng.random(size=shape) > 0.5
-            xmin[i], xmax[i] = -np.inf, np.inf
-        factor = rng.random(size=shape) + 1.5
-        res = _bracket_minimum(f, xm0, xl0=xl0, xr0=xr0, xmin=xmin, xmax=xmax,
-                               factor=factor, args=args, maxiter=maxiter)
-        refs = bracket_minimum_single(xm0, xl0, xr0, xmin, xmax, factor, a).ravel()
-
-        attrs = ['xl', 'xm', 'xr', 'fl', 'fm', 'fr', 'success', 'nfev', 'nit']
-        for attr in attrs:
-            ref_attr = [getattr(ref, attr) for ref in refs]
-            res_attr = getattr(res, attr)
-            assert_allclose(res_attr.ravel(), ref_attr)
-            assert_equal(res_attr.shape, shape)
-
-        assert np.issubdtype(res.success.dtype, np.bool_)
-        if shape:
-            assert np.all(res.success[1:-1])
-        assert np.issubdtype(res.status.dtype, np.integer)
-        assert np.issubdtype(res.nfev.dtype, np.integer)
-        assert np.issubdtype(res.nit.dtype, np.integer)
-        assert_equal(np.max(res.nit), f.count - 3)
-        self.assert_valid_bracket(res)
-        assert_allclose(res.fl, f(res.xl, *args))
-        assert_allclose(res.fm, f(res.xm, *args))
-        assert_allclose(res.fr, f(res.xr, *args))
-
-    def test_special_cases(self):
-        # Test edge cases and other special cases.
-
-        # Test that integers are not passed to `f`
-        # (otherwise this would overflow)
-        def f(x):
-            assert np.issubdtype(x.dtype, np.floating)
-            return x ** 98 - 1
-
-        result = _bracket_minimum(f, -7, xr0=5)
-        assert result.success
-
-        # Test maxiter = 0. Should do nothing to bracket.
-        def f(x):
-            return x**2 - 10
-
-        xl0, xm0, xr0 = -3, -1, 2
-        result = _bracket_minimum(f, xm0, xl0=xl0, xr0=xr0, maxiter=0)
-        assert_equal([result.xl, result.xm, result.xr], [xl0, xm0, xr0])
-
-        # Test scalar `args` (not in tuple)
-        def f(x, c):
-            return c*x**2 - 1
-
-        result = _bracket_minimum(f, -1, args=3)
-        assert result.success
-        assert_allclose(result.fl, f(result.xl, 3))
-
-        # Initial bracket is valid.
-        f = self.init_f()
-        xl0, xm0, xr0 = [-1.0, -0.2, 1.0]
-        args = (0, 0)
-        result = _bracket_minimum(f, xm0, xl0=xl0, xr0=xr0, args=args)
-        assert f.count == 3
-
-        assert_equal(
-            [result.xl, result.xm, result.xr],
-            [xl0, xm0, xr0],
-        )
-        assert_equal(
-            [result.fl, result.fm, result.fr],
-            [f(xl0, *args), f(xm0, *args), f(xr0, *args)],
-        )
-
-    def test_gh_20562_left(self):
-        # Regression test for https://github.com/scipy/scipy/issues/20562
-        # minimum of f in [xmin, xmax] is at xmin.
-        xmin, xmax = 0.21933608, 1.39713606
-
-        def f(x):
-            log_a, log_b = np.log([xmin, xmax])
-            return -((log_b - log_a)*x)**-1
-
-        result = _bracket_minimum(f, 0.5535723499480897, xmin=xmin, xmax=xmax)
-        assert xmin == result.xl
-
-    def test_gh_20562_right(self):
-        # Regression test for https://github.com/scipy/scipy/issues/20562
-        # minimum of f in [xmin, xmax] is at xmax.
-        xmin, xmax = -1.39713606, -0.21933608,
-
-        def f(x):
-            log_a, log_b = np.log([-xmax, -xmin])
-            return ((log_b - log_a)*x)**-1
-
-        result = _bracket_minimum(f, -0.5535723499480897, xmin=xmin, xmax=xmax)
-        assert xmax == result.xr
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_chandrupatla.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_chandrupatla.py
deleted file mode 100644
index 1300c08784b5056d5bde9798bd57d2e1dd75f635..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_chandrupatla.py
+++ /dev/null
@@ -1,906 +0,0 @@
-import pytest
-import numpy as np
-from numpy.testing import assert_allclose, assert_equal, assert_array_less
-
-from scipy import stats, special
-import scipy._lib._elementwise_iterative_method as eim
-from scipy.conftest import array_api_compatible
-from scipy._lib._array_api import (array_namespace, xp_assert_close, xp_assert_equal,
-                                   xp_assert_less, xp_minimum, is_numpy, is_cupy)
-
-from scipy.optimize._chandrupatla import (_chandrupatla_minimize,
-                                          _chandrupatla as _chandrupatla_root)
-from scipy.optimize._tstutils import _CHANDRUPATLA_TESTS
-
-from itertools import permutations
-from .test_zeros import TestScalarRootFinders
-
-def f1(x):
-    return 100*(1 - x**3.)**2 + (1-x**2.) + 2*(1-x)**2.
-
-
-def f2(x):
-    return 5 + (x - 2.)**6
-
-
-def f3(x):
-    return np.exp(x) - 5*x
-
-
-def f4(x):
-    return x**5. - 5*x**3. - 20.*x + 5.
-
-
-def f5(x):
-    return 8*x**3 - 2*x**2 - 7*x + 3
-
-
-def _bracket_minimum(func, x1, x2):
-    phi = 1.61803398875
-    maxiter = 100
-    f1 = func(x1)
-    f2 = func(x2)
-    step = x2 - x1
-    x1, x2, f1, f2, step = ((x2, x1, f2, f1, -step) if f2 > f1
-                            else (x1, x2, f1, f2, step))
-
-    for i in range(maxiter):
-        step *= phi
-        x3 = x2 + step
-        f3 = func(x3)
-        if f3 < f2:
-            x1, x2, f1, f2 = x2, x3, f2, f3
-        else:
-            break
-    return x1, x2, x3, f1, f2, f3
-
-
-cases = [
-    (f1, -1, 11),
-    (f1, -2, 13),
-    (f1, -4, 13),
-    (f1, -8, 15),
-    (f1, -16, 16),
-    (f1, -32, 19),
-    (f1, -64, 20),
-    (f1, -128, 21),
-    (f1, -256, 21),
-    (f1, -512, 19),
-    (f1, -1024, 24),
-    (f2, -1, 8),
-    (f2, -2, 6),
-    (f2, -4, 6),
-    (f2, -8, 7),
-    (f2, -16, 8),
-    (f2, -32, 8),
-    (f2, -64, 9),
-    (f2, -128, 11),
-    (f2, -256, 13),
-    (f2, -512, 12),
-    (f2, -1024, 13),
-    (f3, -1, 11),
-    (f3, -2, 11),
-    (f3, -4, 11),
-    (f3, -8, 10),
-    (f3, -16, 14),
-    (f3, -32, 12),
-    (f3, -64, 15),
-    (f3, -128, 18),
-    (f3, -256, 18),
-    (f3, -512, 19),
-    (f3, -1024, 19),
-    (f4, -0.05, 9),
-    (f4, -0.10, 11),
-    (f4, -0.15, 11),
-    (f4, -0.20, 11),
-    (f4, -0.25, 11),
-    (f4, -0.30, 9),
-    (f4, -0.35, 9),
-    (f4, -0.40, 9),
-    (f4, -0.45, 10),
-    (f4, -0.50, 10),
-    (f4, -0.55, 10),
-    (f5, -0.05, 6),
-    (f5, -0.10, 7),
-    (f5, -0.15, 8),
-    (f5, -0.20, 10),
-    (f5, -0.25, 9),
-    (f5, -0.30, 8),
-    (f5, -0.35, 7),
-    (f5, -0.40, 7),
-    (f5, -0.45, 9),
-    (f5, -0.50, 9),
-    (f5, -0.55, 8)
-]
-
-
-class TestChandrupatlaMinimize:
-
-    def f(self, x, loc):
-        dist = stats.norm()
-        return -dist.pdf(x - loc)
-
-    @pytest.mark.parametrize('loc', [0.6, np.linspace(-1.05, 1.05, 10)])
-    def test_basic(self, loc):
-        # Find mode of normal distribution. Compare mode against location
-        # parameter and value of pdf at mode against expected pdf.
-        res = _chandrupatla_minimize(self.f, -5, 0, 5, args=(loc,))
-        ref = loc
-        np.testing.assert_allclose(res.x, ref, rtol=1e-6)
-        np.testing.assert_allclose(res.fun, -stats.norm.pdf(0), atol=0, rtol=0)
-        assert res.x.shape == np.shape(ref)
-
-    @pytest.mark.parametrize('shape', [tuple(), (12,), (3, 4), (3, 2, 2)])
-    def test_vectorization(self, shape):
-        # Test for correct functionality, output shapes, and dtypes for various
-        # input shapes.
-        loc = np.linspace(-0.05, 1.05, 12).reshape(shape) if shape else 0.6
-        args = (loc,)
-
-        @np.vectorize
-        def chandrupatla_single(loc_single):
-            return _chandrupatla_minimize(self.f, -5, 0, 5, args=(loc_single,))
-
-        def f(*args, **kwargs):
-            f.f_evals += 1
-            return self.f(*args, **kwargs)
-        f.f_evals = 0
-
-        res = _chandrupatla_minimize(f, -5, 0, 5, args=args)
-        refs = chandrupatla_single(loc).ravel()
-
-        ref_x = [ref.x for ref in refs]
-        assert_allclose(res.x.ravel(), ref_x)
-        assert_equal(res.x.shape, shape)
-
-        ref_fun = [ref.fun for ref in refs]
-        assert_allclose(res.fun.ravel(), ref_fun)
-        assert_equal(res.fun.shape, shape)
-        assert_equal(res.fun, self.f(res.x, *args))
-
-        ref_success = [ref.success for ref in refs]
-        assert_equal(res.success.ravel(), ref_success)
-        assert_equal(res.success.shape, shape)
-        assert np.issubdtype(res.success.dtype, np.bool_)
-
-        ref_flag = [ref.status for ref in refs]
-        assert_equal(res.status.ravel(), ref_flag)
-        assert_equal(res.status.shape, shape)
-        assert np.issubdtype(res.status.dtype, np.integer)
-
-        ref_nfev = [ref.nfev for ref in refs]
-        assert_equal(res.nfev.ravel(), ref_nfev)
-        assert_equal(np.max(res.nfev), f.f_evals)
-        assert_equal(res.nfev.shape, res.fun.shape)
-        assert np.issubdtype(res.nfev.dtype, np.integer)
-
-        ref_nit = [ref.nit for ref in refs]
-        assert_equal(res.nit.ravel(), ref_nit)
-        assert_equal(np.max(res.nit), f.f_evals-3)
-        assert_equal(res.nit.shape, res.fun.shape)
-        assert np.issubdtype(res.nit.dtype, np.integer)
-
-        ref_xl = [ref.xl for ref in refs]
-        assert_allclose(res.xl.ravel(), ref_xl)
-        assert_equal(res.xl.shape, shape)
-
-        ref_xm = [ref.xm for ref in refs]
-        assert_allclose(res.xm.ravel(), ref_xm)
-        assert_equal(res.xm.shape, shape)
-
-        ref_xr = [ref.xr for ref in refs]
-        assert_allclose(res.xr.ravel(), ref_xr)
-        assert_equal(res.xr.shape, shape)
-
-        ref_fl = [ref.fl for ref in refs]
-        assert_allclose(res.fl.ravel(), ref_fl)
-        assert_equal(res.fl.shape, shape)
-        assert_allclose(res.fl, self.f(res.xl, *args))
-
-        ref_fm = [ref.fm for ref in refs]
-        assert_allclose(res.fm.ravel(), ref_fm)
-        assert_equal(res.fm.shape, shape)
-        assert_allclose(res.fm, self.f(res.xm, *args))
-
-        ref_fr = [ref.fr for ref in refs]
-        assert_allclose(res.fr.ravel(), ref_fr)
-        assert_equal(res.fr.shape, shape)
-        assert_allclose(res.fr, self.f(res.xr, *args))
-
-    def test_flags(self):
-        # Test cases that should produce different status flags; show that all
-        # can be produced simultaneously.
-        def f(xs, js):
-            funcs = [lambda x: (x - 2.5) ** 2,
-                     lambda x: x - 10,
-                     lambda x: (x - 2.5) ** 4,
-                     lambda x: np.nan]
-
-            return [funcs[j](x) for x, j in zip(xs, js)]
-
-        args = (np.arange(4, dtype=np.int64),)
-
-        res = _chandrupatla_minimize(f, [0]*4, [2]*4, [np.pi]*4, args=args,
-                                     maxiter=10)
-
-        ref_flags = np.array([eim._ECONVERGED,
-                              eim._ESIGNERR,
-                              eim._ECONVERR,
-                              eim._EVALUEERR])
-        assert_equal(res.status, ref_flags)
-
-    def test_convergence(self):
-        # Test that the convergence tolerances behave as expected
-        rng = np.random.default_rng(2585255913088665241)
-        p = rng.random(size=3)
-        bracket = (-5, 0, 5)
-        args = (p,)
-        kwargs0 = dict(args=args, xatol=0, xrtol=0, fatol=0, frtol=0)
-
-        kwargs = kwargs0.copy()
-        kwargs['xatol'] = 1e-3
-        res1 = _chandrupatla_minimize(self.f, *bracket, **kwargs)
-        j1 = abs(res1.xr - res1.xl)
-        assert_array_less(j1, 4*kwargs['xatol'])
-        kwargs['xatol'] = 1e-6
-        res2 = _chandrupatla_minimize(self.f, *bracket, **kwargs)
-        j2 = abs(res2.xr - res2.xl)
-        assert_array_less(j2, 4*kwargs['xatol'])
-        assert_array_less(j2, j1)
-
-        kwargs = kwargs0.copy()
-        kwargs['xrtol'] = 1e-3
-        res1 = _chandrupatla_minimize(self.f, *bracket, **kwargs)
-        j1 = abs(res1.xr - res1.xl)
-        assert_array_less(j1, 4*kwargs['xrtol']*abs(res1.x))
-        kwargs['xrtol'] = 1e-6
-        res2 = _chandrupatla_minimize(self.f, *bracket, **kwargs)
-        j2 = abs(res2.xr - res2.xl)
-        assert_array_less(j2, 4*kwargs['xrtol']*abs(res2.x))
-        assert_array_less(j2, j1)
-
-        kwargs = kwargs0.copy()
-        kwargs['fatol'] = 1e-3
-        res1 = _chandrupatla_minimize(self.f, *bracket, **kwargs)
-        h1 = abs(res1.fl - 2 * res1.fm + res1.fr)
-        assert_array_less(h1, 2*kwargs['fatol'])
-        kwargs['fatol'] = 1e-6
-        res2 = _chandrupatla_minimize(self.f, *bracket, **kwargs)
-        h2 = abs(res2.fl - 2 * res2.fm + res2.fr)
-        assert_array_less(h2, 2*kwargs['fatol'])
-        assert_array_less(h2, h1)
-
-        kwargs = kwargs0.copy()
-        kwargs['frtol'] = 1e-3
-        res1 = _chandrupatla_minimize(self.f, *bracket, **kwargs)
-        h1 = abs(res1.fl - 2 * res1.fm + res1.fr)
-        assert_array_less(h1, 2*kwargs['frtol']*abs(res1.fun))
-        kwargs['frtol'] = 1e-6
-        res2 = _chandrupatla_minimize(self.f, *bracket, **kwargs)
-        h2 = abs(res2.fl - 2 * res2.fm + res2.fr)
-        assert_array_less(h2, 2*kwargs['frtol']*abs(res2.fun))
-        assert_array_less(h2, h1)
-
-    def test_maxiter_callback(self):
-        # Test behavior of `maxiter` parameter and `callback` interface
-        loc = 0.612814
-        bracket = (-5, 0, 5)
-        maxiter = 5
-
-        res = _chandrupatla_minimize(self.f, *bracket, args=(loc,),
-                                     maxiter=maxiter)
-        assert not np.any(res.success)
-        assert np.all(res.nfev == maxiter+3)
-        assert np.all(res.nit == maxiter)
-
-        def callback(res):
-            callback.iter += 1
-            callback.res = res
-            assert hasattr(res, 'x')
-            if callback.iter == 0:
-                # callback is called once with initial bracket
-                assert (res.xl, res.xm, res.xr) == bracket
-            else:
-                changed_xr = (res.xl == callback.xl) & (res.xr != callback.xr)
-                changed_xl = (res.xl != callback.xl) & (res.xr == callback.xr)
-                assert np.all(changed_xr | changed_xl)
-
-            callback.xl = res.xl
-            callback.xr = res.xr
-            assert res.status == eim._EINPROGRESS
-            assert_equal(self.f(res.xl, loc), res.fl)
-            assert_equal(self.f(res.xm, loc), res.fm)
-            assert_equal(self.f(res.xr, loc), res.fr)
-            assert_equal(self.f(res.x, loc), res.fun)
-            if callback.iter == maxiter:
-                raise StopIteration
-
-        callback.xl = np.nan
-        callback.xr = np.nan
-        callback.iter = -1  # callback called once before first iteration
-        callback.res = None
-
-        res2 = _chandrupatla_minimize(self.f, *bracket, args=(loc,),
-                                      callback=callback)
-
-        # terminating with callback is identical to terminating due to maxiter
-        # (except for `status`)
-        for key in res.keys():
-            if key == 'status':
-                assert res[key] == eim._ECONVERR
-                assert callback.res[key] == eim._EINPROGRESS
-                assert res2[key] == eim._ECALLBACK
-            else:
-                assert res2[key] == callback.res[key] == res[key]
-
-    @pytest.mark.parametrize('case', cases)
-    def test_nit_expected(self, case):
-        # Test that `_chandrupatla` implements Chandrupatla's algorithm:
-        # in all 55 test cases, the number of iterations performed
-        # matches the number reported in the original paper.
-        func, x1, nit = case
-
-        # Find bracket using the algorithm in the paper
-        step = 0.2
-        x2 = x1 + step
-        x1, x2, x3, f1, f2, f3 = _bracket_minimum(func, x1, x2)
-
-        # Use tolerances from original paper
-        xatol = 0.0001
-        fatol = 0.000001
-        xrtol = 1e-16
-        frtol = 1e-16
-
-        res = _chandrupatla_minimize(func, x1, x2, x3, xatol=xatol,
-                                     fatol=fatol, xrtol=xrtol, frtol=frtol)
-        assert_equal(res.nit, nit)
-
-    @pytest.mark.parametrize("loc", (0.65, [0.65, 0.7]))
-    @pytest.mark.parametrize("dtype", (np.float16, np.float32, np.float64))
-    def test_dtype(self, loc, dtype):
-        # Test that dtypes are preserved
-
-        loc = dtype(loc)
-
-        def f(x, loc):
-            assert x.dtype == dtype
-            return ((x - loc) ** 2).astype(dtype)
-
-        res = _chandrupatla_minimize(f, dtype(-3), dtype(1), dtype(5),
-                                     args=(loc,))
-        assert res.x.dtype == dtype
-        assert_allclose(res.x, loc, rtol=np.sqrt(np.finfo(dtype).eps))
-
-    def test_input_validation(self):
-        # Test input validation for appropriate error messages
-
-        message = '`func` must be callable.'
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(None, -4, 0, 4)
-
-        message = 'Abscissae and function output must be real numbers.'
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(lambda x: x, -4+1j, 0, 4)
-
-        message = "shape mismatch: objects cannot be broadcast"
-        # raised by `np.broadcast, but the traceback is readable IMO
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(lambda x: x, [-2, -3], [0, 0], [3, 4, 5])
-
-        message = "The shape of the array returned by `func` must be the same"
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(lambda x: [x[0], x[1], x[1]], [-3, -3],
-                                   [0, 0], [5, 5])
-
-        message = 'Tolerances must be non-negative scalars.'
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(lambda x: x, -4, 0, 4, xatol=-1)
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(lambda x: x, -4, 0, 4, xrtol=np.nan)
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(lambda x: x, -4, 0, 4, fatol='ekki')
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(lambda x: x, -4, 0, 4, frtol=np.nan)
-
-        message = '`maxiter` must be a non-negative integer.'
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(lambda x: x, -4, 0, 4, maxiter=1.5)
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(lambda x: x, -4, 0, 4, maxiter=-1)
-
-        message = '`callback` must be callable.'
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_minimize(lambda x: x, -4, 0, 4, callback='shrubbery')
-
-    def test_bracket_order(self):
-        # Confirm that order of points in bracket doesn't matter
-        loc = np.linspace(-1, 1, 6)[:, np.newaxis]
-        brackets = np.array(list(permutations([-5, 0, 5]))).T
-        res = _chandrupatla_minimize(self.f, *brackets, args=(loc,))
-        assert np.all(np.isclose(res.x, loc) | (res.fun == self.f(loc, loc)))
-        ref = res.x[:, 0]  # all columns should be the same
-        assert_allclose(*np.broadcast_arrays(res.x.T, ref), rtol=1e-15)
-
-    def test_special_cases(self):
-        # Test edge cases and other special cases
-
-        # Test that integers are not passed to `f`
-        # (otherwise this would overflow)
-        def f(x):
-            assert np.issubdtype(x.dtype, np.floating)
-            return (x-1) ** 100
-
-        with np.errstate(invalid='ignore'):
-            res = _chandrupatla_minimize(f, -7, 0, 8, fatol=0, frtol=0)
-        assert res.success
-        assert_allclose(res.x, 1, rtol=1e-3)
-        assert_equal(res.fun, 0)
-
-        # Test that if all elements of bracket equal minimizer, algorithm
-        # reports convergence
-        def f(x):
-            return (x-1)**2
-
-        res = _chandrupatla_minimize(f, 1, 1, 1)
-        assert res.success
-        assert_equal(res.x, 1)
-
-        # Test maxiter = 0. Should do nothing to bracket.
-        def f(x):
-            return (x-1)**2
-
-        bracket = (-3, 1.1, 5)
-        res = _chandrupatla_minimize(f, *bracket, maxiter=0)
-        assert res.xl, res.xr == bracket
-        assert res.nit == 0
-        assert res.nfev == 3
-        assert res.status == -2
-        assert res.x == 1.1  # best so far
-
-        # Test scalar `args` (not in tuple)
-        def f(x, c):
-            return (x-c)**2 - 1
-
-        res = _chandrupatla_minimize(f, -1, 0, 1, args=1/3)
-        assert_allclose(res.x, 1/3)
-
-        # Test zero tolerances
-        # TODO: fatol/frtol = 0?
-        def f(x):
-            return -np.sin(x)
-
-        res = _chandrupatla_minimize(f, 0, 1, np.pi, xatol=0, xrtol=0,
-                                     fatol=0, frtol=0)
-        assert res.success
-        # found a minimum exactly (according to floating point arithmetic)
-        assert res.xl < res.xm < res.xr
-        assert f(res.xl) == f(res.xm) == f(res.xr)
-
-
-@array_api_compatible
-@pytest.mark.usefixtures("skip_xp_backends")
-@pytest.mark.skip_xp_backends('array_api_strict', 'jax.numpy',
-                              reasons=['Currently uses fancy indexing assignment.',
-                                       'JAX arrays do not support item assignment.'])
-class TestChandrupatla(TestScalarRootFinders):
-
-    def f(self, q, p):
-        return special.ndtr(q) - p
-
-    @pytest.mark.parametrize('p', [0.6, np.linspace(-0.05, 1.05, 10)])
-    def test_basic(self, p, xp):
-        # Invert distribution CDF and compare against distrtibution `ppf`
-        a, b = xp.asarray(-5.), xp.asarray(5.)
-        res = _chandrupatla_root(self.f, a, b, args=(xp.asarray(p),))
-        ref = xp.asarray(stats.norm().ppf(p), dtype=xp.asarray(p).dtype)
-        xp_assert_close(res.x, ref)
-
-    @pytest.mark.parametrize('shape', [tuple(), (12,), (3, 4), (3, 2, 2)])
-    def test_vectorization(self, shape, xp):
-        # Test for correct functionality, output shapes, and dtypes for various
-        # input shapes.
-        p = (np.linspace(-0.05, 1.05, 12).reshape(shape) if shape
-             else np.float64(0.6))
-        p_xp = xp.asarray(p)
-        args_xp = (p_xp,)
-        dtype = p_xp.dtype
-        xp_test = array_namespace(p_xp)  # need xp.bool
-
-        @np.vectorize
-        def chandrupatla_single(p):
-            return _chandrupatla_root(self.f, -5, 5, args=(p,))
-
-        def f(*args, **kwargs):
-            f.f_evals += 1
-            return self.f(*args, **kwargs)
-        f.f_evals = 0
-
-        res = _chandrupatla_root(f, xp.asarray(-5.), xp.asarray(5.), args=args_xp)
-        refs = chandrupatla_single(p).ravel()
-
-        ref_x = [ref.x for ref in refs]
-        ref_x = xp.reshape(xp.asarray(ref_x, dtype=dtype), shape)
-        xp_assert_close(res.x, ref_x)
-
-        ref_fun = [ref.fun for ref in refs]
-        ref_fun = xp.reshape(xp.asarray(ref_fun, dtype=dtype), shape)
-        xp_assert_close(res.fun, ref_fun, atol=1e-15)
-        xp_assert_equal(res.fun, self.f(res.x, *args_xp))
-
-        ref_success = [bool(ref.success) for ref in refs]
-        ref_success = xp.reshape(xp.asarray(ref_success, dtype=xp_test.bool), shape)
-        xp_assert_equal(res.success, ref_success)
-
-        ref_flag = [ref.status for ref in refs]
-        ref_flag = xp.reshape(xp.asarray(ref_flag, dtype=xp.int32), shape)
-        xp_assert_equal(res.status, ref_flag)
-
-        ref_nfev = [ref.nfev for ref in refs]
-        ref_nfev = xp.reshape(xp.asarray(ref_nfev, dtype=xp.int32), shape)
-        if is_numpy(xp):
-            xp_assert_equal(res.nfev, ref_nfev)
-            assert xp.max(res.nfev) == f.f_evals
-        else:  # different backend may lead to different nfev
-            assert res.nfev.shape == shape
-            assert res.nfev.dtype == xp.int32
-
-        ref_nit = [ref.nit for ref in refs]
-        ref_nit = xp.reshape(xp.asarray(ref_nit, dtype=xp.int32), shape)
-        if is_numpy(xp):
-            xp_assert_equal(res.nit, ref_nit)
-            assert xp.max(res.nit) == f.f_evals-2
-        else:
-            assert res.nit.shape == shape
-            assert res.nit.dtype == xp.int32
-
-        ref_xl = [ref.xl for ref in refs]
-        ref_xl = xp.reshape(xp.asarray(ref_xl, dtype=dtype), shape)
-        xp_assert_close(res.xl, ref_xl)
-
-        ref_xr = [ref.xr for ref in refs]
-        ref_xr = xp.reshape(xp.asarray(ref_xr, dtype=dtype), shape)
-        xp_assert_close(res.xr, ref_xr)
-
-        xp_assert_less(res.xl, res.xr)
-        finite = xp.isfinite(res.x)
-        assert xp.all((res.x[finite] == res.xl[finite])
-                      | (res.x[finite] == res.xr[finite]))
-
-        # PyTorch and CuPy don't solve to the same accuracy as NumPy - that's OK.
-        atol = 1e-15 if is_numpy(xp) else 1e-9
-
-        ref_fl = [ref.fl for ref in refs]
-        ref_fl = xp.reshape(xp.asarray(ref_fl, dtype=dtype), shape)
-        xp_assert_close(res.fl, ref_fl, atol=atol)
-        xp_assert_equal(res.fl, self.f(res.xl, *args_xp))
-
-        ref_fr = [ref.fr for ref in refs]
-        ref_fr = xp.reshape(xp.asarray(ref_fr, dtype=dtype), shape)
-        xp_assert_close(res.fr, ref_fr, atol=atol)
-        xp_assert_equal(res.fr, self.f(res.xr, *args_xp))
-
-        assert xp.all(xp.abs(res.fun[finite]) ==
-                      xp_minimum(xp.abs(res.fl[finite]),
-                                 xp.abs(res.fr[finite])))
-
-    def test_flags(self, xp):
-        # Test cases that should produce different status flags; show that all
-        # can be produced simultaneously.
-        def f(xs, js):
-            # Note that full_like and int(j) shouldn't really be required. CuPy
-            # is just really picky here, so I'm making it a special case to
-            # make sure the other backends work when the user is less careful.
-            assert js.dtype == xp.int64
-            if is_cupy(xp):
-                funcs = [lambda x: x - 2.5,
-                         lambda x: x - 10,
-                         lambda x: (x - 0.1)**3,
-                         lambda x: xp.full_like(x, xp.nan)]
-                return [funcs[int(j)](x) for x, j in zip(xs, js)]
-
-            funcs = [lambda x: x - 2.5,
-                     lambda x: x - 10,
-                     lambda x: (x - 0.1) ** 3,
-                     lambda x: xp.nan]
-            return [funcs[j](x) for x, j in zip(xs, js)]
-
-        args = (xp.arange(4, dtype=xp.int64),)
-        a, b = xp.asarray([0.]*4), xp.asarray([xp.pi]*4)
-        res = _chandrupatla_root(f, a, b, args=args, maxiter=2)
-
-        ref_flags = xp.asarray([eim._ECONVERGED,
-                                eim._ESIGNERR,
-                                eim._ECONVERR,
-                                eim._EVALUEERR], dtype=xp.int32)
-        xp_assert_equal(res.status, ref_flags)
-
-    def test_convergence(self, xp):
-        # Test that the convergence tolerances behave as expected
-        rng = np.random.default_rng(2585255913088665241)
-        p = xp.asarray(rng.random(size=3))
-        bracket = (-xp.asarray(5.), xp.asarray(5.))
-        args = (p,)
-        kwargs0 = dict(args=args, xatol=0, xrtol=0, fatol=0, frtol=0)
-
-        kwargs = kwargs0.copy()
-        kwargs['xatol'] = 1e-3
-        res1 = _chandrupatla_root(self.f, *bracket, **kwargs)
-        xp_assert_less(res1.xr - res1.xl, xp.full_like(p, 1e-3))
-        kwargs['xatol'] = 1e-6
-        res2 = _chandrupatla_root(self.f, *bracket, **kwargs)
-        xp_assert_less(res2.xr - res2.xl, xp.full_like(p, 1e-6))
-        xp_assert_less(res2.xr - res2.xl, res1.xr - res1.xl)
-
-        kwargs = kwargs0.copy()
-        kwargs['xrtol'] = 1e-3
-        res1 = _chandrupatla_root(self.f, *bracket, **kwargs)
-        xp_assert_less(res1.xr - res1.xl, 1e-3 * xp.abs(res1.x))
-        kwargs['xrtol'] = 1e-6
-        res2 = _chandrupatla_root(self.f, *bracket, **kwargs)
-        xp_assert_less(res2.xr - res2.xl, 1e-6 * xp.abs(res2.x))
-        xp_assert_less(res2.xr - res2.xl, res1.xr - res1.xl)
-
-        kwargs = kwargs0.copy()
-        kwargs['fatol'] = 1e-3
-        res1 = _chandrupatla_root(self.f, *bracket, **kwargs)
-        xp_assert_less(xp.abs(res1.fun), xp.full_like(p, 1e-3))
-        kwargs['fatol'] = 1e-6
-        res2 = _chandrupatla_root(self.f, *bracket, **kwargs)
-        xp_assert_less(xp.abs(res2.fun), xp.full_like(p, 1e-6))
-        xp_assert_less(xp.abs(res2.fun), xp.abs(res1.fun))
-
-        kwargs = kwargs0.copy()
-        kwargs['frtol'] = 1e-3
-        x1, x2 = bracket
-        f0 = xp_minimum(xp.abs(self.f(x1, *args)), xp.abs(self.f(x2, *args)))
-        res1 = _chandrupatla_root(self.f, *bracket, **kwargs)
-        xp_assert_less(xp.abs(res1.fun), 1e-3*f0)
-        kwargs['frtol'] = 1e-6
-        res2 = _chandrupatla_root(self.f, *bracket, **kwargs)
-        xp_assert_less(xp.abs(res2.fun), 1e-6*f0)
-        xp_assert_less(xp.abs(res2.fun), xp.abs(res1.fun))
-
-    def test_maxiter_callback(self, xp):
-        # Test behavior of `maxiter` parameter and `callback` interface
-        p = xp.asarray(0.612814)
-        bracket = (xp.asarray(-5.), xp.asarray(5.))
-        maxiter = 5
-
-        def f(q, p):
-            res = special.ndtr(q) - p
-            f.x = q
-            f.fun = res
-            return res
-        f.x = None
-        f.fun = None
-
-        res = _chandrupatla_root(f, *bracket, args=(p,), maxiter=maxiter)
-        assert not xp.any(res.success)
-        assert xp.all(res.nfev == maxiter+2)
-        assert xp.all(res.nit == maxiter)
-
-        def callback(res):
-            callback.iter += 1
-            callback.res = res
-            assert hasattr(res, 'x')
-            if callback.iter == 0:
-                # callback is called once with initial bracket
-                assert (res.xl, res.xr) == bracket
-            else:
-                changed = (((res.xl == callback.xl) & (res.xr != callback.xr))
-                           | ((res.xl != callback.xl) & (res.xr == callback.xr)))
-                assert xp.all(changed)
-
-            callback.xl = res.xl
-            callback.xr = res.xr
-            assert res.status == eim._EINPROGRESS
-            xp_assert_equal(self.f(res.xl, p), res.fl)
-            xp_assert_equal(self.f(res.xr, p), res.fr)
-            xp_assert_equal(self.f(res.x, p), res.fun)
-            if callback.iter == maxiter:
-                raise StopIteration
-        callback.iter = -1  # callback called once before first iteration
-        callback.res = None
-        callback.xl = None
-        callback.xr = None
-
-        res2 = _chandrupatla_root(f, *bracket, args=(p,), callback=callback)
-
-        # terminating with callback is identical to terminating due to maxiter
-        # (except for `status`)
-        for key in res.keys():
-            if key == 'status':
-                xp_assert_equal(res[key], xp.asarray(eim._ECONVERR, dtype=xp.int32))
-                xp_assert_equal(res2[key], xp.asarray(eim._ECALLBACK, dtype=xp.int32))
-            elif key.startswith('_'):
-                continue
-            else:
-                xp_assert_equal(res2[key], res[key])
-
-    @pytest.mark.parametrize('case', _CHANDRUPATLA_TESTS)
-    def test_nit_expected(self, case, xp):
-        # Test that `_chandrupatla` implements Chandrupatla's algorithm:
-        # in all 40 test cases, the number of iterations performed
-        # matches the number reported in the original paper.
-        f, bracket, root, nfeval, id = case
-        # Chandrupatla's criterion is equivalent to
-        # abs(x2-x1) < 4*abs(xmin)*xrtol + xatol, but we use the more standard
-        # abs(x2-x1) < abs(xmin)*xrtol + xatol. Therefore, set xrtol to 4x
-        # that used by Chandrupatla in tests.
-        bracket = (xp.asarray(bracket[0], dtype=xp.float64),
-                   xp.asarray(bracket[1], dtype=xp.float64))
-        root = xp.asarray(root, dtype=xp.float64)
-
-        res = _chandrupatla_root(f, *bracket, xrtol=4e-10, xatol=1e-5)
-        xp_assert_close(res.fun, xp.asarray(f(root), dtype=xp.float64),
-                        rtol=1e-8, atol=2e-3)
-        xp_assert_equal(res.nfev, xp.asarray(nfeval, dtype=xp.int32))
-
-    @pytest.mark.parametrize("root", (0.622, [0.622, 0.623]))
-    @pytest.mark.parametrize("dtype", ('float16', 'float32', 'float64'))
-    def test_dtype(self, root, dtype, xp):
-        # Test that dtypes are preserved
-        not_numpy = not is_numpy(xp)
-        if not_numpy and dtype == 'float16':
-            pytest.skip("`float16` dtype only supported for NumPy arrays.")
-
-        dtype = getattr(xp, dtype, None)
-        if dtype is None:
-            pytest.skip(f"{xp} does not support {dtype}")
-
-        def f(x, root):
-            res = (x - root) ** 3.
-            if is_numpy(xp):  # NumPy does not preserve dtype
-                return xp.asarray(res, dtype=dtype)
-            return res
-
-        a, b = xp.asarray(-3, dtype=dtype), xp.asarray(3, dtype=dtype)
-        root = xp.asarray(root, dtype=dtype)
-        res = _chandrupatla_root(f, a, b, args=(root,), xatol=1e-3)
-        try:
-            xp_assert_close(res.x, root, atol=1e-3)
-        except AssertionError:
-            assert res.x.dtype == dtype
-            xp.all(res.fun == 0)
-
-    def test_input_validation(self, xp):
-        # Test input validation for appropriate error messages
-
-        def func(x):
-            return x
-
-        message = '`func` must be callable.'
-        with pytest.raises(ValueError, match=message):
-            bracket = xp.asarray(-4), xp.asarray(4)
-            _chandrupatla_root(None, *bracket)
-
-        message = 'Abscissae and function output must be real numbers.'
-        with pytest.raises(ValueError, match=message):
-            bracket = xp.asarray(-4+1j), xp.asarray(4)
-            _chandrupatla_root(func, *bracket)
-
-        # raised by `np.broadcast, but the traceback is readable IMO
-        message = "...not be broadcast..."  # all messages include this part
-        with pytest.raises((ValueError, RuntimeError), match=message):
-            bracket = xp.asarray([-2, -3]), xp.asarray([3, 4, 5])
-            _chandrupatla_root(func, *bracket)
-
-        message = "The shape of the array returned by `func`..."
-        with pytest.raises(ValueError, match=message):
-            bracket = xp.asarray([-3, -3]), xp.asarray([5, 5])
-            _chandrupatla_root(lambda x: [x[0], x[1], x[1]], *bracket)
-
-        message = 'Tolerances must be non-negative scalars.'
-        bracket = xp.asarray(-4), xp.asarray(4)
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_root(func, *bracket, xatol=-1)
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_root(func, *bracket, xrtol=xp.nan)
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_root(func, *bracket, fatol='ekki')
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_root(func, *bracket, frtol=xp.nan)
-
-        message = '`maxiter` must be a non-negative integer.'
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_root(func, *bracket, maxiter=1.5)
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_root(func, *bracket, maxiter=-1)
-
-        message = '`callback` must be callable.'
-        with pytest.raises(ValueError, match=message):
-            _chandrupatla_root(func, *bracket, callback='shrubbery')
-
-    def test_special_cases(self, xp):
-        # Test edge cases and other special cases
-
-        # Test infinite function values
-        def f(x):
-            return 1 / x + 1 - 1 / (-x + 1)
-
-        a, b = xp.asarray([0.1, 0., 0., 0.1]),  xp.asarray([0.9, 1.0, 0.9, 1.0])
-
-        with np.errstate(divide='ignore', invalid='ignore'):
-            res = _chandrupatla_root(f, a, b)
-
-        assert xp.all(res.success)
-        xp_assert_close(res.x[1:], xp.full((3,), res.x[0]))
-
-        # Test that integers are not passed to `f`
-        # (otherwise this would overflow)
-        xp_test = array_namespace(a)  # need isdtype
-        def f(x):
-            assert xp_test.isdtype(x.dtype, "real floating")
-            # this would overflow if x were an xp integer dtype
-            return x ** 31 - 1
-
-        # note that all inputs are integer type; result is automatically default float
-        res = _chandrupatla_root(f, xp.asarray(-7), xp.asarray(5))
-        assert res.success
-        xp_assert_close(res.x, xp.asarray(1.))
-
-        # Test that if both ends of bracket equal root, algorithm reports
-        # convergence.
-        def f(x, root):
-            return x**2 - root
-
-        root = xp.asarray([0, 1])
-        res = _chandrupatla_root(f, xp.asarray(1), xp.asarray(1), args=(root,))
-        xp_assert_equal(res.success, xp.asarray([False, True]))
-        xp_assert_equal(res.x, xp.asarray([np.nan, 1.]))
-
-        def f(x):
-            return 1/x
-
-        with np.errstate(invalid='ignore'):
-            inf = xp.asarray(xp.inf)
-            res = _chandrupatla_root(f, inf, inf)
-        assert res.success
-        xp_assert_equal(res.x, xp.asarray(np.inf))
-
-        # Test maxiter = 0. Should do nothing to bracket.
-        def f(x):
-            return x**3 - 1
-
-        a, b = xp.asarray(-3.), xp.asarray(5.)
-        res = _chandrupatla_root(f, a, b, maxiter=0)
-        xp_assert_equal(res.success, xp.asarray(False))
-        xp_assert_equal(res.status, xp.asarray(-2, dtype=xp.int32))
-        xp_assert_equal(res.nit, xp.asarray(0, dtype=xp.int32))
-        xp_assert_equal(res.nfev, xp.asarray(2, dtype=xp.int32))
-        xp_assert_equal(res.xl, a)
-        xp_assert_equal(res.xr, b)
-        # The `x` attribute is the one with the smaller function value
-        xp_assert_equal(res.x, a)
-        # Reverse bracket; check that this is still true
-        res = _chandrupatla_root(f, -b, -a, maxiter=0)
-        xp_assert_equal(res.x, -a)
-
-        # Test maxiter = 1
-        res = _chandrupatla_root(f, a, b, maxiter=1)
-        xp_assert_equal(res.success, xp.asarray(True))
-        xp_assert_equal(res.status, xp.asarray(0, dtype=xp.int32))
-        xp_assert_equal(res.nit, xp.asarray(1, dtype=xp.int32))
-        xp_assert_equal(res.nfev, xp.asarray(3, dtype=xp.int32))
-        xp_assert_close(res.x, xp.asarray(1.))
-
-        # Test scalar `args` (not in tuple)
-        def f(x, c):
-            return c*x - 1
-
-        res = _chandrupatla_root(f, xp.asarray(-1), xp.asarray(1), args=xp.asarray(3))
-        xp_assert_close(res.x, xp.asarray(1/3))
-
-        # # TODO: Test zero tolerance
-        # # ~~What's going on here - why are iterations repeated?~~
-        # # tl goes to zero when xatol=xrtol=0. When function is nearly linear,
-        # # this causes convergence issues.
-        # def f(x):
-        #     return np.cos(x)
-        #
-        # res = _chandrupatla_root(f, 0, np.pi, xatol=0, xrtol=0)
-        # assert res.nit < 100
-        # xp = np.nextafter(res.x, np.inf)
-        # xm = np.nextafter(res.x, -np.inf)
-        # assert np.abs(res.fun) < np.abs(f(xp))
-        # assert np.abs(res.fun) < np.abs(f(xm))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_cobyla.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_cobyla.py
deleted file mode 100644
index 11663ce778beb7e1046143b93fe2508f469727c1..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_cobyla.py
+++ /dev/null
@@ -1,166 +0,0 @@
-import math
-
-import numpy as np
-from numpy.testing import assert_allclose, assert_, assert_array_equal
-import pytest
-
-from scipy.optimize import fmin_cobyla, minimize, Bounds
-
-
-class TestCobyla:
-    def setup_method(self):
-        self.x0 = [4.95, 0.66]
-        self.solution = [math.sqrt(25 - (2.0/3)**2), 2.0/3]
-        self.opts = {'disp': False, 'rhobeg': 1, 'tol': 1e-5,
-                     'maxiter': 100}
-
-    def fun(self, x):
-        return x[0]**2 + abs(x[1])**3
-
-    def con1(self, x):
-        return x[0]**2 + x[1]**2 - 25
-
-    def con2(self, x):
-        return -self.con1(x)
-
-    @pytest.mark.xslow(True, reason='not slow, but noisy so only run rarely')
-    def test_simple(self, capfd):
-        # use disp=True as smoke test for gh-8118
-        x = fmin_cobyla(self.fun, self.x0, [self.con1, self.con2], rhobeg=1,
-                        rhoend=1e-5, maxfun=100, disp=True)
-        assert_allclose(x, self.solution, atol=1e-4)
-
-    def test_minimize_simple(self):
-        class Callback:
-            def __init__(self):
-                self.n_calls = 0
-                self.last_x = None
-
-            def __call__(self, x):
-                self.n_calls += 1
-                self.last_x = x
-
-        callback = Callback()
-
-        # Minimize with method='COBYLA'
-        cons = ({'type': 'ineq', 'fun': self.con1},
-                {'type': 'ineq', 'fun': self.con2})
-        sol = minimize(self.fun, self.x0, method='cobyla', constraints=cons,
-                       callback=callback, options=self.opts)
-        assert_allclose(sol.x, self.solution, atol=1e-4)
-        assert_(sol.success, sol.message)
-        assert_(sol.maxcv < 1e-5, sol)
-        assert_(sol.nfev < 70, sol)
-        assert_(sol.fun < self.fun(self.solution) + 1e-3, sol)
-        assert_(sol.nfev == callback.n_calls,
-                "Callback is not called exactly once for every function eval.")
-        assert_array_equal(
-            sol.x,
-            callback.last_x,
-            "Last design vector sent to the callback is not equal to returned value.",
-        )
-
-    def test_minimize_constraint_violation(self):
-        np.random.seed(1234)
-        pb = np.random.rand(10, 10)
-        spread = np.random.rand(10)
-
-        def p(w):
-            return pb.dot(w)
-
-        def f(w):
-            return -(w * spread).sum()
-
-        def c1(w):
-            return 500 - abs(p(w)).sum()
-
-        def c2(w):
-            return 5 - abs(p(w).sum())
-
-        def c3(w):
-            return 5 - abs(p(w)).max()
-
-        cons = ({'type': 'ineq', 'fun': c1},
-                {'type': 'ineq', 'fun': c2},
-                {'type': 'ineq', 'fun': c3})
-        w0 = np.zeros((10,))
-        sol = minimize(f, w0, method='cobyla', constraints=cons,
-                       options={'catol': 1e-6})
-        assert_(sol.maxcv > 1e-6)
-        assert_(not sol.success)
-
-
-def test_vector_constraints():
-    # test that fmin_cobyla and minimize can take a combination
-    # of constraints, some returning a number and others an array
-    def fun(x):
-        return (x[0] - 1)**2 + (x[1] - 2.5)**2
-
-    def fmin(x):
-        return fun(x) - 1
-
-    def cons1(x):
-        a = np.array([[1, -2, 2], [-1, -2, 6], [-1, 2, 2]])
-        return np.array([a[i, 0] * x[0] + a[i, 1] * x[1] +
-                         a[i, 2] for i in range(len(a))])
-
-    def cons2(x):
-        return x     # identity, acts as bounds x > 0
-
-    x0 = np.array([2, 0])
-    cons_list = [fun, cons1, cons2]
-
-    xsol = [1.4, 1.7]
-    fsol = 0.8
-
-    # testing fmin_cobyla
-    sol = fmin_cobyla(fun, x0, cons_list, rhoend=1e-5)
-    assert_allclose(sol, xsol, atol=1e-4)
-
-    sol = fmin_cobyla(fun, x0, fmin, rhoend=1e-5)
-    assert_allclose(fun(sol), 1, atol=1e-4)
-
-    # testing minimize
-    constraints = [{'type': 'ineq', 'fun': cons} for cons in cons_list]
-    sol = minimize(fun, x0, constraints=constraints, tol=1e-5)
-    assert_allclose(sol.x, xsol, atol=1e-4)
-    assert_(sol.success, sol.message)
-    assert_allclose(sol.fun, fsol, atol=1e-4)
-
-    constraints = {'type': 'ineq', 'fun': fmin}
-    sol = minimize(fun, x0, constraints=constraints, tol=1e-5)
-    assert_allclose(sol.fun, 1, atol=1e-4)
-
-
-class TestBounds:
-    # Test cobyla support for bounds (only when used via `minimize`)
-    # Invalid bounds is tested in
-    # test_optimize.TestOptimizeSimple.test_minimize_invalid_bounds
-
-    def test_basic(self):
-        def f(x):
-            return np.sum(x**2)
-
-        lb = [-1, None, 1, None, -0.5]
-        ub = [-0.5, -0.5, None, None, -0.5]
-        bounds = [(a, b) for a, b in zip(lb, ub)]
-        # these are converted to Bounds internally
-
-        res = minimize(f, x0=[1, 2, 3, 4, 5], method='cobyla', bounds=bounds)
-        ref = [-0.5, -0.5, 1, 0, -0.5]
-        assert res.success
-        assert_allclose(res.x, ref, atol=1e-3)
-
-    def test_unbounded(self):
-        def f(x):
-            return np.sum(x**2)
-
-        bounds = Bounds([-np.inf, -np.inf], [np.inf, np.inf])
-        res = minimize(f, x0=[1, 2], method='cobyla', bounds=bounds)
-        assert res.success
-        assert_allclose(res.x, 0, atol=1e-3)
-
-        bounds = Bounds([1, -np.inf], [np.inf, np.inf])
-        res = minimize(f, x0=[1, 2], method='cobyla', bounds=bounds)
-        assert res.success
-        assert_allclose(res.x, [1, 0], atol=1e-3)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_cobyqa.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_cobyqa.py
deleted file mode 100644
index a77cca135849d015dfa1be25d6b1752b731776c5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_cobyqa.py
+++ /dev/null
@@ -1,246 +0,0 @@
-import numpy as np
-import pytest
-from numpy.testing import assert_allclose, assert_equal
-
-from scipy.optimize import (
-    Bounds,
-    LinearConstraint,
-    NonlinearConstraint,
-    OptimizeResult,
-    minimize,
-)
-
-
-class TestCOBYQA:
-
-    def setup_method(self):
-        self.x0 = [4.95, 0.66]
-        self.options = {'maxfev': 100}
-
-    @staticmethod
-    def fun(x, c=1.0):
-        return x[0]**2 + c * abs(x[1])**3
-
-    @staticmethod
-    def con(x):
-        return x[0]**2 + x[1]**2 - 25.0
-
-    def test_minimize_simple(self):
-        class Callback:
-            def __init__(self):
-                self.n_calls = 0
-
-            def __call__(self, x):
-                assert isinstance(x, np.ndarray)
-                self.n_calls += 1
-
-        class CallbackNewSyntax:
-            def __init__(self):
-                self.n_calls = 0
-
-            def __call__(self, intermediate_result):
-                assert isinstance(intermediate_result, OptimizeResult)
-                self.n_calls += 1
-
-        callback = Callback()
-        callback_new_syntax = CallbackNewSyntax()
-
-        # Minimize with method='cobyqa'.
-        constraints = NonlinearConstraint(self.con, 0.0, 0.0)
-        sol = minimize(
-            self.fun,
-            self.x0,
-            method='cobyqa',
-            constraints=constraints,
-            callback=callback,
-            options=self.options,
-        )
-        sol_new = minimize(
-            self.fun,
-            self.x0,
-            method='cobyqa',
-            constraints=constraints,
-            callback=callback_new_syntax,
-            options=self.options,
-        )
-        solution = [np.sqrt(25.0 - 4.0 / 9.0), 2.0 / 3.0]
-        assert_allclose(sol.x, solution, atol=1e-4)
-        assert sol.success, sol.message
-        assert sol.maxcv < 1e-8, sol
-        assert sol.nfev <= 100, sol
-        assert sol.fun < self.fun(solution) + 1e-3, sol
-        assert sol.nfev == callback.n_calls, \
-            "Callback is not called exactly once for every function eval."
-        assert_equal(sol.x, sol_new.x)
-        assert sol_new.success, sol_new.message
-        assert sol.fun == sol_new.fun
-        assert sol.maxcv == sol_new.maxcv
-        assert sol.nfev == sol_new.nfev
-        assert sol.nit == sol_new.nit
-        assert sol_new.nfev == callback_new_syntax.n_calls, \
-            "Callback is not called exactly once for every function eval."
-
-    def test_minimize_bounds(self):
-        def fun_check_bounds(x):
-            assert np.all(bounds.lb <= x) and np.all(x <= bounds.ub)
-            return self.fun(x)
-
-        # Case where the bounds are not active at the solution.
-        bounds = Bounds([4.5, 0.6], [5.0, 0.7])
-        constraints = NonlinearConstraint(self.con, 0.0, 0.0)
-        sol = minimize(
-            fun_check_bounds,
-            self.x0,
-            method='cobyqa',
-            bounds=bounds,
-            constraints=constraints,
-            options=self.options,
-        )
-        solution = [np.sqrt(25.0 - 4.0 / 9.0), 2.0 / 3.0]
-        assert_allclose(sol.x, solution, atol=1e-4)
-        assert sol.success, sol.message
-        assert sol.maxcv < 1e-8, sol
-        assert np.all(bounds.lb <= sol.x) and np.all(sol.x <= bounds.ub), sol
-        assert sol.nfev <= 100, sol
-        assert sol.fun < self.fun(solution) + 1e-3, sol
-
-        # Case where the bounds are active at the solution.
-        bounds = Bounds([5.0, 0.6], [5.5, 0.65])
-        sol = minimize(
-            fun_check_bounds,
-            self.x0,
-            method='cobyqa',
-            bounds=bounds,
-            constraints=constraints,
-            options=self.options,
-        )
-        assert not sol.success, sol.message
-        assert sol.maxcv > 0.35, sol
-        assert np.all(bounds.lb <= sol.x) and np.all(sol.x <= bounds.ub), sol
-        assert sol.nfev <= 100, sol
-
-    def test_minimize_linear_constraints(self):
-        constraints = LinearConstraint([1.0, 1.0], 1.0, 1.0)
-        sol = minimize(
-            self.fun,
-            self.x0,
-            method='cobyqa',
-            constraints=constraints,
-            options=self.options,
-        )
-        solution = [(4 - np.sqrt(7)) / 3, (np.sqrt(7) - 1) / 3]
-        assert_allclose(sol.x, solution, atol=1e-4)
-        assert sol.success, sol.message
-        assert sol.maxcv < 1e-8, sol
-        assert sol.nfev <= 100, sol
-        assert sol.fun < self.fun(solution) + 1e-3, sol
-
-    def test_minimize_args(self):
-        constraints = NonlinearConstraint(self.con, 0.0, 0.0)
-        sol = minimize(
-            self.fun,
-            self.x0,
-            args=(2.0,),
-            method='cobyqa',
-            constraints=constraints,
-            options=self.options,
-        )
-        solution = [np.sqrt(25.0 - 4.0 / 36.0), 2.0 / 6.0]
-        assert_allclose(sol.x, solution, atol=1e-4)
-        assert sol.success, sol.message
-        assert sol.maxcv < 1e-8, sol
-        assert sol.nfev <= 100, sol
-        assert sol.fun < self.fun(solution, 2.0) + 1e-3, sol
-
-    def test_minimize_array(self):
-        def fun_array(x, dim):
-            f = np.array(self.fun(x))
-            return np.reshape(f, (1,) * dim)
-
-        # The argument fun can return an array with a single element.
-        bounds = Bounds([4.5, 0.6], [5.0, 0.7])
-        constraints = NonlinearConstraint(self.con, 0.0, 0.0)
-        sol = minimize(
-            self.fun,
-            self.x0,
-            method='cobyqa',
-            bounds=bounds,
-            constraints=constraints,
-            options=self.options,
-        )
-        for dim in [0, 1, 2]:
-            sol_array = minimize(
-                fun_array,
-                self.x0,
-                args=(dim,),
-                method='cobyqa',
-                bounds=bounds,
-                constraints=constraints,
-                options=self.options,
-            )
-            assert_equal(sol.x, sol_array.x)
-            assert sol_array.success, sol_array.message
-            assert sol.fun == sol_array.fun
-            assert sol.maxcv == sol_array.maxcv
-            assert sol.nfev == sol_array.nfev
-            assert sol.nit == sol_array.nit
-
-        # The argument fun cannot return an array with more than one element.
-        with pytest.raises(TypeError):
-            minimize(
-                lambda x: np.array([self.fun(x), self.fun(x)]),
-                self.x0,
-                method='cobyqa',
-                bounds=bounds,
-                constraints=constraints,
-                options=self.options,
-            )
-
-    def test_minimize_maxfev(self):
-        constraints = NonlinearConstraint(self.con, 0.0, 0.0)
-        options = {'maxfev': 2}
-        sol = minimize(
-            self.fun,
-            self.x0,
-            method='cobyqa',
-            constraints=constraints,
-            options=options,
-        )
-        assert not sol.success, sol.message
-        assert sol.nfev <= 2, sol
-
-    def test_minimize_maxiter(self):
-        constraints = NonlinearConstraint(self.con, 0.0, 0.0)
-        options = {'maxiter': 2}
-        sol = minimize(
-            self.fun,
-            self.x0,
-            method='cobyqa',
-            constraints=constraints,
-            options=options,
-        )
-        assert not sol.success, sol.message
-        assert sol.nit <= 2, sol
-
-    def test_minimize_f_target(self):
-        constraints = NonlinearConstraint(self.con, 0.0, 0.0)
-        sol_ref = minimize(
-            self.fun,
-            self.x0,
-            method='cobyqa',
-            constraints=constraints,
-            options=self.options,
-        )
-        options = dict(self.options)
-        options['f_target'] = sol_ref.fun
-        sol = minimize(
-            self.fun,
-            self.x0,
-            method='cobyqa',
-            constraints=constraints,
-            options=options,
-        )
-        assert sol.success, sol.message
-        assert sol.maxcv < 1e-8, sol
-        assert sol.nfev <= sol_ref.nfev, sol
-        assert sol.fun <= sol_ref.fun, sol
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_constraint_conversion.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_constraint_conversion.py
deleted file mode 100644
index df5ab6dee478742ba7fef2eaaa503fe6781b83a8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_constraint_conversion.py
+++ /dev/null
@@ -1,278 +0,0 @@
-"""
-Unit test for constraint conversion
-"""
-
-import numpy as np
-from numpy.testing import (assert_array_almost_equal,
-                           assert_allclose, assert_warns, suppress_warnings)
-import pytest
-from scipy.optimize import (NonlinearConstraint, LinearConstraint,
-                            OptimizeWarning, minimize, BFGS)
-from .test_minimize_constrained import (Maratos, HyperbolicIneq, Rosenbrock,
-                                        IneqRosenbrock, EqIneqRosenbrock,
-                                        BoundedRosenbrock, Elec)
-
-
-class TestOldToNew:
-    x0 = (2, 0)
-    bnds = ((0, None), (0, None))
-    method = "trust-constr"
-
-    def test_constraint_dictionary_1(self):
-        def fun(x):
-            return (x[0] - 1) ** 2 + (x[1] - 2.5) ** 2
-        cons = ({'type': 'ineq', 'fun': lambda x: x[0] - 2 * x[1] + 2},
-                {'type': 'ineq', 'fun': lambda x: -x[0] - 2 * x[1] + 6},
-                {'type': 'ineq', 'fun': lambda x: -x[0] + 2 * x[1] + 2})
-
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "delta_grad == 0.0")
-            res = minimize(fun, self.x0, method=self.method,
-                           bounds=self.bnds, constraints=cons)
-        assert_allclose(res.x, [1.4, 1.7], rtol=1e-4)
-        assert_allclose(res.fun, 0.8, rtol=1e-4)
-
-    def test_constraint_dictionary_2(self):
-        def fun(x):
-            return (x[0] - 1) ** 2 + (x[1] - 2.5) ** 2
-        cons = {'type': 'eq',
-                'fun': lambda x, p1, p2: p1*x[0] - p2*x[1],
-                'args': (1, 1.1),
-                'jac': lambda x, p1, p2: np.array([[p1, -p2]])}
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "delta_grad == 0.0")
-            res = minimize(fun, self.x0, method=self.method,
-                           bounds=self.bnds, constraints=cons)
-        assert_allclose(res.x, [1.7918552, 1.62895927])
-        assert_allclose(res.fun, 1.3857466063348418)
-
-    def test_constraint_dictionary_3(self):
-        def fun(x):
-            return (x[0] - 1) ** 2 + (x[1] - 2.5) ** 2
-        cons = [{'type': 'ineq', 'fun': lambda x: x[0] - 2 * x[1] + 2},
-                NonlinearConstraint(lambda x: x[0] - x[1], 0, 0)]
-
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "delta_grad == 0.0")
-            res = minimize(fun, self.x0, method=self.method,
-                           bounds=self.bnds, constraints=cons)
-        assert_allclose(res.x, [1.75, 1.75], rtol=1e-4)
-        assert_allclose(res.fun, 1.125, rtol=1e-4)
-
-
-class TestNewToOld:
-
-    def test_multiple_constraint_objects(self):
-        def fun(x):
-            return (x[0] - 1) ** 2 + (x[1] - 2.5) ** 2 + (x[2] - 0.75) ** 2
-        x0 = [2, 0, 1]
-        coni = []  # only inequality constraints (can use cobyla)
-        methods = ["slsqp", "cobyla", "cobyqa", "trust-constr"]
-
-        # mixed old and new
-        coni.append([{'type': 'ineq', 'fun': lambda x: x[0] - 2 * x[1] + 2},
-                     NonlinearConstraint(lambda x: x[0] - x[1], -1, 1)])
-
-        coni.append([LinearConstraint([1, -2, 0], -2, np.inf),
-                     NonlinearConstraint(lambda x: x[0] - x[1], -1, 1)])
-
-        coni.append([NonlinearConstraint(lambda x: x[0] - 2 * x[1] + 2, 0, np.inf),
-                     NonlinearConstraint(lambda x: x[0] - x[1], -1, 1)])
-
-        for con in coni:
-            funs = {}
-            for method in methods:
-                with suppress_warnings() as sup:
-                    sup.filter(UserWarning)
-                    result = minimize(fun, x0, method=method, constraints=con)
-                    funs[method] = result.fun
-            assert_allclose(funs['slsqp'], funs['trust-constr'], rtol=1e-4)
-            assert_allclose(funs['cobyla'], funs['trust-constr'], rtol=1e-4)
-            assert_allclose(funs['cobyqa'], funs['trust-constr'], rtol=1e-4)
-
-    @pytest.mark.fail_slow(10)
-    def test_individual_constraint_objects(self):
-        def fun(x):
-            return (x[0] - 1) ** 2 + (x[1] - 2.5) ** 2 + (x[2] - 0.75) ** 2
-        x0 = [2, 0, 1]
-
-        cone = []  # with equality constraints (can't use cobyla)
-        coni = []  # only inequality constraints (can use cobyla)
-        methods = ["slsqp", "cobyla", "cobyqa", "trust-constr"]
-
-        # nonstandard data types for constraint equality bounds
-        cone.append(NonlinearConstraint(lambda x: x[0] - x[1], 1, 1))
-        cone.append(NonlinearConstraint(lambda x: x[0] - x[1], [1.21], [1.21]))
-        cone.append(NonlinearConstraint(lambda x: x[0] - x[1],
-                                        1.21, np.array([1.21])))
-
-        # multiple equalities
-        cone.append(NonlinearConstraint(
-                    lambda x: [x[0] - x[1], x[1] - x[2]],
-                    1.21, 1.21))  # two same equalities
-        cone.append(NonlinearConstraint(
-                    lambda x: [x[0] - x[1], x[1] - x[2]],
-                    [1.21, 1.4], [1.21, 1.4]))  # two different equalities
-        cone.append(NonlinearConstraint(
-                    lambda x: [x[0] - x[1], x[1] - x[2]],
-                    [1.21, 1.21], 1.21))  # equality specified two ways
-        cone.append(NonlinearConstraint(
-                    lambda x: [x[0] - x[1], x[1] - x[2]],
-                    [1.21, -np.inf], [1.21, np.inf]))  # equality + unbounded
-
-        # nonstandard data types for constraint inequality bounds
-        coni.append(NonlinearConstraint(lambda x: x[0] - x[1], 1.21, np.inf))
-        coni.append(NonlinearConstraint(lambda x: x[0] - x[1], [1.21], np.inf))
-        coni.append(NonlinearConstraint(lambda x: x[0] - x[1],
-                                        1.21, np.array([np.inf])))
-        coni.append(NonlinearConstraint(lambda x: x[0] - x[1], -np.inf, -3))
-        coni.append(NonlinearConstraint(lambda x: x[0] - x[1],
-                                        np.array(-np.inf), -3))
-
-        # multiple inequalities/equalities
-        coni.append(NonlinearConstraint(
-                    lambda x: [x[0] - x[1], x[1] - x[2]],
-                    1.21, np.inf))  # two same inequalities
-        cone.append(NonlinearConstraint(
-                    lambda x: [x[0] - x[1], x[1] - x[2]],
-                    [1.21, -np.inf], [1.21, 1.4]))  # mixed equality/inequality
-        coni.append(NonlinearConstraint(
-                    lambda x: [x[0] - x[1], x[1] - x[2]],
-                    [1.1, .8], [1.2, 1.4]))  # bounded above and below
-        coni.append(NonlinearConstraint(
-                    lambda x: [x[0] - x[1], x[1] - x[2]],
-                    [-1.2, -1.4], [-1.1, -.8]))  # - bounded above and below
-
-        # quick check of LinearConstraint class (very little new code to test)
-        cone.append(LinearConstraint([1, -1, 0], 1.21, 1.21))
-        cone.append(LinearConstraint([[1, -1, 0], [0, 1, -1]], 1.21, 1.21))
-        cone.append(LinearConstraint([[1, -1, 0], [0, 1, -1]],
-                                     [1.21, -np.inf], [1.21, 1.4]))
-
-        for con in coni:
-            funs = {}
-            for method in methods:
-                with suppress_warnings() as sup:
-                    sup.filter(UserWarning)
-                    result = minimize(fun, x0, method=method, constraints=con)
-                    funs[method] = result.fun
-            assert_allclose(funs['slsqp'], funs['trust-constr'], rtol=1e-3)
-            assert_allclose(funs['cobyla'], funs['trust-constr'], rtol=1e-3)
-            assert_allclose(funs['cobyqa'], funs['trust-constr'], rtol=1e-3)
-
-        for con in cone:
-            funs = {}
-            for method in [method for method in methods if method != 'cobyla']:
-                with suppress_warnings() as sup:
-                    sup.filter(UserWarning)
-                    result = minimize(fun, x0, method=method, constraints=con)
-                    funs[method] = result.fun
-            assert_allclose(funs['slsqp'], funs['trust-constr'], rtol=1e-3)
-            assert_allclose(funs['cobyqa'], funs['trust-constr'], rtol=1e-3)
-
-
-class TestNewToOldSLSQP:
-    method = 'slsqp'
-    elec = Elec(n_electrons=2)
-    elec.x_opt = np.array([-0.58438468, 0.58438466, 0.73597047,
-                           -0.73597044, 0.34180668, -0.34180667])
-    brock = BoundedRosenbrock()
-    brock.x_opt = [0, 0]
-    list_of_problems = [Maratos(),
-                        HyperbolicIneq(),
-                        Rosenbrock(),
-                        IneqRosenbrock(),
-                        EqIneqRosenbrock(),
-                        elec,
-                        brock
-                        ]
-
-    def test_list_of_problems(self):
-
-        for prob in self.list_of_problems:
-
-            with suppress_warnings() as sup:
-                sup.filter(UserWarning)
-                result = minimize(prob.fun, prob.x0,
-                                  method=self.method,
-                                  bounds=prob.bounds,
-                                  constraints=prob.constr)
-
-            assert_array_almost_equal(result.x, prob.x_opt, decimal=3)
-
-    def test_warn_mixed_constraints(self):
-        # warns about inefficiency of mixed equality/inequality constraints
-        def fun(x):
-            return (x[0] - 1) ** 2 + (x[1] - 2.5) ** 2 + (x[2] - 0.75) ** 2
-        cons = NonlinearConstraint(lambda x: [x[0]**2 - x[1], x[1] - x[2]],
-                                   [1.1, .8], [1.1, 1.4])
-        bnds = ((0, None), (0, None), (0, None))
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "delta_grad == 0.0")
-            assert_warns(OptimizeWarning, minimize, fun, (2, 0, 1),
-                         method=self.method, bounds=bnds, constraints=cons)
-
-    def test_warn_ignored_options(self):
-        # warns about constraint options being ignored
-        def fun(x):
-            return (x[0] - 1) ** 2 + (x[1] - 2.5) ** 2 + (x[2] - 0.75) ** 2
-        x0 = (2, 0, 1)
-
-        if self.method == "slsqp":
-            bnds = ((0, None), (0, None), (0, None))
-        else:
-            bnds = None
-
-        cons = NonlinearConstraint(lambda x: x[0], 2, np.inf)
-        res = minimize(fun, x0, method=self.method,
-                       bounds=bnds, constraints=cons)
-        # no warnings without constraint options
-        assert_allclose(res.fun, 1)
-
-        cons = LinearConstraint([1, 0, 0], 2, np.inf)
-        res = minimize(fun, x0, method=self.method,
-                       bounds=bnds, constraints=cons)
-        # no warnings without constraint options
-        assert_allclose(res.fun, 1)
-
-        cons = []
-        cons.append(NonlinearConstraint(lambda x: x[0]**2, 2, np.inf,
-                                        keep_feasible=True))
-        cons.append(NonlinearConstraint(lambda x: x[0]**2, 2, np.inf,
-                                        hess=BFGS()))
-        cons.append(NonlinearConstraint(lambda x: x[0]**2, 2, np.inf,
-                                        finite_diff_jac_sparsity=42))
-        cons.append(NonlinearConstraint(lambda x: x[0]**2, 2, np.inf,
-                                        finite_diff_rel_step=42))
-        cons.append(LinearConstraint([1, 0, 0], 2, np.inf,
-                                     keep_feasible=True))
-        for con in cons:
-            assert_warns(OptimizeWarning, minimize, fun, x0,
-                         method=self.method, bounds=bnds, constraints=cons)
-
-
-class TestNewToOldCobyla:
-    method = 'cobyla'
-
-    list_of_problems = [
-                        Elec(n_electrons=2),
-                        Elec(n_electrons=4),
-                        ]
-
-    @pytest.mark.slow
-    def test_list_of_problems(self):
-
-        for prob in self.list_of_problems:
-
-            with suppress_warnings() as sup:
-                sup.filter(UserWarning)
-                truth = minimize(prob.fun, prob.x0,
-                                 method='trust-constr',
-                                 bounds=prob.bounds,
-                                 constraints=prob.constr)
-                result = minimize(prob.fun, prob.x0,
-                                  method=self.method,
-                                  bounds=prob.bounds,
-                                  constraints=prob.constr)
-
-            assert_allclose(result.fun, truth.fun, rtol=1e-3)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_constraints.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_constraints.py
deleted file mode 100644
index 4c4186ba7b6dd6f56b89e2f39add9eb16e6beccb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_constraints.py
+++ /dev/null
@@ -1,255 +0,0 @@
-import pytest
-import numpy as np
-from numpy.testing import TestCase, assert_array_equal
-import scipy.sparse as sps
-from scipy.optimize._constraints import (
-    Bounds, LinearConstraint, NonlinearConstraint, PreparedConstraint,
-    new_bounds_to_old, old_bound_to_new, strict_bounds)
-
-
-class TestStrictBounds(TestCase):
-    def test_scalarvalue_unique_enforce_feasibility(self):
-        m = 3
-        lb = 2
-        ub = 4
-        enforce_feasibility = False
-        strict_lb, strict_ub = strict_bounds(lb, ub,
-                                             enforce_feasibility,
-                                             m)
-        assert_array_equal(strict_lb, [-np.inf, -np.inf, -np.inf])
-        assert_array_equal(strict_ub, [np.inf, np.inf, np.inf])
-
-        enforce_feasibility = True
-        strict_lb, strict_ub = strict_bounds(lb, ub,
-                                             enforce_feasibility,
-                                             m)
-        assert_array_equal(strict_lb, [2, 2, 2])
-        assert_array_equal(strict_ub, [4, 4, 4])
-
-    def test_vectorvalue_unique_enforce_feasibility(self):
-        m = 3
-        lb = [1, 2, 3]
-        ub = [4, 5, 6]
-        enforce_feasibility = False
-        strict_lb, strict_ub = strict_bounds(lb, ub,
-                                              enforce_feasibility,
-                                              m)
-        assert_array_equal(strict_lb, [-np.inf, -np.inf, -np.inf])
-        assert_array_equal(strict_ub, [np.inf, np.inf, np.inf])
-
-        enforce_feasibility = True
-        strict_lb, strict_ub = strict_bounds(lb, ub,
-                                              enforce_feasibility,
-                                              m)
-        assert_array_equal(strict_lb, [1, 2, 3])
-        assert_array_equal(strict_ub, [4, 5, 6])
-
-    def test_scalarvalue_vector_enforce_feasibility(self):
-        m = 3
-        lb = 2
-        ub = 4
-        enforce_feasibility = [False, True, False]
-        strict_lb, strict_ub = strict_bounds(lb, ub,
-                                             enforce_feasibility,
-                                             m)
-        assert_array_equal(strict_lb, [-np.inf, 2, -np.inf])
-        assert_array_equal(strict_ub, [np.inf, 4, np.inf])
-
-    def test_vectorvalue_vector_enforce_feasibility(self):
-        m = 3
-        lb = [1, 2, 3]
-        ub = [4, 6, np.inf]
-        enforce_feasibility = [True, False, True]
-        strict_lb, strict_ub = strict_bounds(lb, ub,
-                                             enforce_feasibility,
-                                             m)
-        assert_array_equal(strict_lb, [1, -np.inf, 3])
-        assert_array_equal(strict_ub, [4, np.inf, np.inf])
-
-
-def test_prepare_constraint_infeasible_x0():
-    lb = np.array([0, 20, 30])
-    ub = np.array([0.5, np.inf, 70])
-    x0 = np.array([1, 2, 3])
-    enforce_feasibility = np.array([False, True, True], dtype=bool)
-    bounds = Bounds(lb, ub, enforce_feasibility)
-    pytest.raises(ValueError, PreparedConstraint, bounds, x0)
-
-    pc = PreparedConstraint(Bounds(lb, ub), [1, 2, 3])
-    assert (pc.violation([1, 2, 3]) > 0).any()
-    assert (pc.violation([0.25, 21, 31]) == 0).all()
-
-    x0 = np.array([1, 2, 3, 4])
-    A = np.array([[1, 2, 3, 4], [5, 0, 0, 6], [7, 0, 8, 0]])
-    enforce_feasibility = np.array([True, True, True], dtype=bool)
-    linear = LinearConstraint(A, -np.inf, 0, enforce_feasibility)
-    pytest.raises(ValueError, PreparedConstraint, linear, x0)
-
-    pc = PreparedConstraint(LinearConstraint(A, -np.inf, 0),
-                            [1, 2, 3, 4])
-    assert (pc.violation([1, 2, 3, 4]) > 0).any()
-    assert (pc.violation([-10, 2, -10, 4]) == 0).all()
-
-    def fun(x):
-        return A.dot(x)
-
-    def jac(x):
-        return A
-
-    def hess(x, v):
-        return sps.csr_matrix((4, 4))
-
-    nonlinear = NonlinearConstraint(fun, -np.inf, 0, jac, hess,
-                                    enforce_feasibility)
-    pytest.raises(ValueError, PreparedConstraint, nonlinear, x0)
-
-    pc = PreparedConstraint(nonlinear, [-10, 2, -10, 4])
-    assert (pc.violation([1, 2, 3, 4]) > 0).any()
-    assert (pc.violation([-10, 2, -10, 4]) == 0).all()
-
-
-def test_violation():
-    def cons_f(x):
-        return np.array([x[0] ** 2 + x[1], x[0] ** 2 - x[1]])
-
-    nlc = NonlinearConstraint(cons_f, [-1, -0.8500], [2, 2])
-    pc = PreparedConstraint(nlc, [0.5, 1])
-
-    assert_array_equal(pc.violation([0.5, 1]), [0., 0.])
-
-    np.testing.assert_almost_equal(pc.violation([0.5, 1.2]), [0., 0.1])
-
-    np.testing.assert_almost_equal(pc.violation([1.2, 1.2]), [0.64, 0])
-
-    np.testing.assert_almost_equal(pc.violation([0.1, -1.2]), [0.19, 0])
-
-    np.testing.assert_almost_equal(pc.violation([0.1, 2]), [0.01, 1.14])
-
-
-def test_new_bounds_to_old():
-    lb = np.array([-np.inf, 2, 3])
-    ub = np.array([3, np.inf, 10])
-
-    bounds = [(None, 3), (2, None), (3, 10)]
-    assert_array_equal(new_bounds_to_old(lb, ub, 3), bounds)
-
-    bounds_single_lb = [(-1, 3), (-1, None), (-1, 10)]
-    assert_array_equal(new_bounds_to_old(-1, ub, 3), bounds_single_lb)
-
-    bounds_no_lb = [(None, 3), (None, None), (None, 10)]
-    assert_array_equal(new_bounds_to_old(-np.inf, ub, 3), bounds_no_lb)
-
-    bounds_single_ub = [(None, 20), (2, 20), (3, 20)]
-    assert_array_equal(new_bounds_to_old(lb, 20, 3), bounds_single_ub)
-
-    bounds_no_ub = [(None, None), (2, None), (3, None)]
-    assert_array_equal(new_bounds_to_old(lb, np.inf, 3), bounds_no_ub)
-
-    bounds_single_both = [(1, 2), (1, 2), (1, 2)]
-    assert_array_equal(new_bounds_to_old(1, 2, 3), bounds_single_both)
-
-    bounds_no_both = [(None, None), (None, None), (None, None)]
-    assert_array_equal(new_bounds_to_old(-np.inf, np.inf, 3), bounds_no_both)
-
-
-def test_old_bounds_to_new():
-    bounds = ([1, 2], (None, 3), (-1, None))
-    lb_true = np.array([1, -np.inf, -1])
-    ub_true = np.array([2, 3, np.inf])
-
-    lb, ub = old_bound_to_new(bounds)
-    assert_array_equal(lb, lb_true)
-    assert_array_equal(ub, ub_true)
-
-    bounds = [(-np.inf, np.inf), (np.array([1]), np.array([1]))]
-    lb, ub = old_bound_to_new(bounds)
-
-    assert_array_equal(lb, [-np.inf, 1])
-    assert_array_equal(ub, [np.inf, 1])
-
-
-class TestBounds:
-    def test_repr(self):
-        # so that eval works
-        from numpy import array, inf  # noqa: F401
-        for args in (
-            (-1.0, 5.0),
-            (-1.0, np.inf, True),
-            (np.array([1.0, -np.inf]), np.array([2.0, np.inf])),
-            (np.array([1.0, -np.inf]), np.array([2.0, np.inf]),
-             np.array([True, False])),
-        ):
-            bounds = Bounds(*args)
-            bounds2 = eval(repr(Bounds(*args)))
-            assert_array_equal(bounds.lb, bounds2.lb)
-            assert_array_equal(bounds.ub, bounds2.ub)
-            assert_array_equal(bounds.keep_feasible, bounds2.keep_feasible)
-
-    def test_array(self):
-        # gh13501
-        b = Bounds(lb=[0.0, 0.0], ub=[1.0, 1.0])
-        assert isinstance(b.lb, np.ndarray)
-        assert isinstance(b.ub, np.ndarray)
-
-    def test_defaults(self):
-        b1 = Bounds()
-        b2 = Bounds(np.asarray(-np.inf), np.asarray(np.inf))
-        assert b1.lb == b2.lb
-        assert b1.ub == b2.ub
-
-    def test_input_validation(self):
-        message = "Lower and upper bounds must be dense arrays."
-        with pytest.raises(ValueError, match=message):
-            Bounds(sps.coo_array([1, 2]), [1, 2])
-        with pytest.raises(ValueError, match=message):
-            Bounds([1, 2], sps.coo_array([1, 2]))
-
-        message = "`keep_feasible` must be a dense array."
-        with pytest.raises(ValueError, match=message):
-            Bounds([1, 2], [1, 2], keep_feasible=sps.coo_array([True, True]))
-
-        message = "`lb`, `ub`, and `keep_feasible` must be broadcastable."
-        with pytest.raises(ValueError, match=message):
-            Bounds([1, 2], [1, 2, 3])
-
-    def test_residual(self):
-        bounds = Bounds(-2, 4)
-        x0 = [-1, 2]
-        np.testing.assert_allclose(bounds.residual(x0), ([1, 4], [5, 2]))
-
-
-class TestLinearConstraint:
-    def test_defaults(self):
-        A = np.eye(4)
-        lc = LinearConstraint(A)
-        lc2 = LinearConstraint(A, -np.inf, np.inf)
-        assert_array_equal(lc.lb, lc2.lb)
-        assert_array_equal(lc.ub, lc2.ub)
-
-    def test_input_validation(self):
-        A = np.eye(4)
-        message = "`lb`, `ub`, and `keep_feasible` must be broadcastable"
-        with pytest.raises(ValueError, match=message):
-            LinearConstraint(A, [1, 2], [1, 2, 3])
-
-        message = "Constraint limits must be dense arrays"
-        with pytest.raises(ValueError, match=message):
-            LinearConstraint(A, sps.coo_array([1, 2]), [2, 3])
-        with pytest.raises(ValueError, match=message):
-            LinearConstraint(A, [1, 2], sps.coo_array([2, 3]))
-
-        message = "`keep_feasible` must be a dense array"
-        with pytest.raises(ValueError, match=message):
-            keep_feasible = sps.coo_array([True, True])
-            LinearConstraint(A, [1, 2], [2, 3], keep_feasible=keep_feasible)
-
-        A = np.empty((4, 3, 5))
-        message = "`A` must have exactly two dimensions."
-        with pytest.raises(ValueError, match=message):
-            LinearConstraint(A)
-
-    def test_residual(self):
-        A = np.eye(2)
-        lc = LinearConstraint(A, -2, 4)
-        x0 = [-1, 2]
-        np.testing.assert_allclose(lc.residual(x0), ([1, 4], [5, 2]))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_cython_optimize.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_cython_optimize.py
deleted file mode 100644
index 2f859c1143eb6b63c439fe278bfdd4fdaa15410f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_cython_optimize.py
+++ /dev/null
@@ -1,92 +0,0 @@
-"""
-Test Cython optimize zeros API functions: ``bisect``, ``ridder``, ``brenth``,
-and ``brentq`` in `scipy.optimize.cython_optimize`, by finding the roots of a
-3rd order polynomial given a sequence of constant terms, ``a0``, and fixed 1st,
-2nd, and 3rd order terms in ``args``.
-
-.. math::
-
-    f(x, a0, args) =  ((args[2]*x + args[1])*x + args[0])*x + a0
-
-The 3rd order polynomial function is written in Cython and called in a Python
-wrapper named after the zero function. See the private ``_zeros`` Cython module
-in `scipy.optimize.cython_optimze` for more information.
-"""
-
-import numpy.testing as npt
-from scipy.optimize.cython_optimize import _zeros
-
-# CONSTANTS
-# Solve x**3 - A0 = 0  for A0 = [2.0, 2.1, ..., 2.9].
-# The ARGS have 3 elements just to show how this could be done for any cubic
-# polynomial.
-A0 = tuple(-2.0 - x/10.0 for x in range(10))  # constant term
-ARGS = (0.0, 0.0, 1.0)  # 1st, 2nd, and 3rd order terms
-XLO, XHI = 0.0, 2.0  # first and second bounds of zeros functions
-# absolute and relative tolerances and max iterations for zeros functions
-XTOL, RTOL, MITR = 0.001, 0.001, 10
-EXPECTED = [(-a0) ** (1.0/3.0) for a0 in A0]
-# = [1.2599210498948732,
-#    1.2805791649874942,
-#    1.300591446851387,
-#    1.3200061217959123,
-#    1.338865900164339,
-#    1.3572088082974532,
-#    1.375068867074141,
-#    1.3924766500838337,
-#    1.4094597464129783,
-#    1.4260431471424087]
-
-
-# test bisect
-def test_bisect():
-    npt.assert_allclose(
-        EXPECTED,
-        list(
-            _zeros.loop_example('bisect', A0, ARGS, XLO, XHI, XTOL, RTOL, MITR)
-        ),
-        rtol=RTOL, atol=XTOL
-    )
-
-
-# test ridder
-def test_ridder():
-    npt.assert_allclose(
-        EXPECTED,
-        list(
-            _zeros.loop_example('ridder', A0, ARGS, XLO, XHI, XTOL, RTOL, MITR)
-        ),
-        rtol=RTOL, atol=XTOL
-    )
-
-
-# test brenth
-def test_brenth():
-    npt.assert_allclose(
-        EXPECTED,
-        list(
-            _zeros.loop_example('brenth', A0, ARGS, XLO, XHI, XTOL, RTOL, MITR)
-        ),
-        rtol=RTOL, atol=XTOL
-    )
-
-
-# test brentq
-def test_brentq():
-    npt.assert_allclose(
-        EXPECTED,
-        list(
-            _zeros.loop_example('brentq', A0, ARGS, XLO, XHI, XTOL, RTOL, MITR)
-        ),
-        rtol=RTOL, atol=XTOL
-    )
-
-
-# test brentq with full output
-def test_brentq_full_output():
-    output = _zeros.full_output_example(
-        (A0[0],) + ARGS, XLO, XHI, XTOL, RTOL, MITR)
-    npt.assert_allclose(EXPECTED[0], output['root'], rtol=RTOL, atol=XTOL)
-    npt.assert_equal(6, output['iterations'])
-    npt.assert_equal(7, output['funcalls'])
-    npt.assert_equal(0, output['error_num'])
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_differentiable_functions.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_differentiable_functions.py
deleted file mode 100644
index 7a329135f91e801847ee1ee4073e1701acf16c82..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_differentiable_functions.py
+++ /dev/null
@@ -1,803 +0,0 @@
-import pytest
-import platform
-import numpy as np
-from numpy.testing import (TestCase, assert_array_almost_equal,
-                           assert_array_equal, assert_, assert_allclose,
-                           assert_equal)
-from scipy._lib._gcutils import assert_deallocated
-from scipy.sparse import csr_matrix
-from scipy.sparse.linalg import LinearOperator
-from scipy.optimize._differentiable_functions import (ScalarFunction,
-                                                      VectorFunction,
-                                                      LinearVectorFunction,
-                                                      IdentityVectorFunction)
-from scipy.optimize import rosen, rosen_der, rosen_hess
-from scipy.optimize._hessian_update_strategy import BFGS
-
-
-class ExScalarFunction:
-
-    def __init__(self):
-        self.nfev = 0
-        self.ngev = 0
-        self.nhev = 0
-
-    def fun(self, x):
-        self.nfev += 1
-        return 2*(x[0]**2 + x[1]**2 - 1) - x[0]
-
-    def grad(self, x):
-        self.ngev += 1
-        return np.array([4*x[0]-1, 4*x[1]])
-
-    def hess(self, x):
-        self.nhev += 1
-        return 4*np.eye(2)
-
-
-class TestScalarFunction(TestCase):
-
-    def test_finite_difference_grad(self):
-        ex = ExScalarFunction()
-        nfev = 0
-        ngev = 0
-
-        x0 = [1.0, 0.0]
-        analit = ScalarFunction(ex.fun, x0, (), ex.grad,
-                                ex.hess, None, (-np.inf, np.inf))
-        nfev += 1
-        ngev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev, nfev)
-        approx = ScalarFunction(ex.fun, x0, (), '2-point',
-                                ex.hess, None, (-np.inf, np.inf))
-        nfev += 3
-        ngev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_equal(analit.f, approx.f)
-        assert_array_almost_equal(analit.g, approx.g)
-
-        x = [10, 0.3]
-        f_analit = analit.fun(x)
-        g_analit = analit.grad(x)
-        nfev += 1
-        ngev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        f_approx = approx.fun(x)
-        g_approx = approx.grad(x)
-        nfev += 3
-        ngev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_almost_equal(f_analit, f_approx)
-        assert_array_almost_equal(g_analit, g_approx)
-
-        x = [2.0, 1.0]
-        g_analit = analit.grad(x)
-        ngev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-
-        g_approx = approx.grad(x)
-        nfev += 3
-        ngev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_almost_equal(g_analit, g_approx)
-
-        x = [2.5, 0.3]
-        f_analit = analit.fun(x)
-        g_analit = analit.grad(x)
-        nfev += 1
-        ngev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        f_approx = approx.fun(x)
-        g_approx = approx.grad(x)
-        nfev += 3
-        ngev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_almost_equal(f_analit, f_approx)
-        assert_array_almost_equal(g_analit, g_approx)
-
-        x = [2, 0.3]
-        f_analit = analit.fun(x)
-        g_analit = analit.grad(x)
-        nfev += 1
-        ngev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        f_approx = approx.fun(x)
-        g_approx = approx.grad(x)
-        nfev += 3
-        ngev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_almost_equal(f_analit, f_approx)
-        assert_array_almost_equal(g_analit, g_approx)
-
-    def test_fun_and_grad(self):
-        ex = ExScalarFunction()
-
-        def fg_allclose(x, y):
-            assert_allclose(x[0], y[0])
-            assert_allclose(x[1], y[1])
-
-        # with analytic gradient
-        x0 = [2.0, 0.3]
-        analit = ScalarFunction(ex.fun, x0, (), ex.grad,
-                                ex.hess, None, (-np.inf, np.inf))
-
-        fg = ex.fun(x0), ex.grad(x0)
-        fg_allclose(analit.fun_and_grad(x0), fg)
-        assert analit.ngev == 1
-
-        x0[1] = 1.
-        fg = ex.fun(x0), ex.grad(x0)
-        fg_allclose(analit.fun_and_grad(x0), fg)
-
-        # with finite difference gradient
-        x0 = [2.0, 0.3]
-        sf = ScalarFunction(ex.fun, x0, (), '3-point',
-                                ex.hess, None, (-np.inf, np.inf))
-        assert sf.ngev == 1
-        fg = ex.fun(x0), ex.grad(x0)
-        fg_allclose(sf.fun_and_grad(x0), fg)
-        assert sf.ngev == 1
-
-        x0[1] = 1.
-        fg = ex.fun(x0), ex.grad(x0)
-        fg_allclose(sf.fun_and_grad(x0), fg)
-
-    def test_finite_difference_hess_linear_operator(self):
-        ex = ExScalarFunction()
-        nfev = 0
-        ngev = 0
-        nhev = 0
-
-        x0 = [1.0, 0.0]
-        analit = ScalarFunction(ex.fun, x0, (), ex.grad,
-                                ex.hess, None, (-np.inf, np.inf))
-        nfev += 1
-        ngev += 1
-        nhev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev, ngev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev, nhev)
-        approx = ScalarFunction(ex.fun, x0, (), ex.grad,
-                                '2-point', None, (-np.inf, np.inf))
-        assert_(isinstance(approx.H, LinearOperator))
-        for v in ([1.0, 2.0], [3.0, 4.0], [5.0, 2.0]):
-            assert_array_equal(analit.f, approx.f)
-            assert_array_almost_equal(analit.g, approx.g)
-            assert_array_almost_equal(analit.H.dot(v), approx.H.dot(v))
-        nfev += 1
-        ngev += 4
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-
-        x = [2.0, 1.0]
-        H_analit = analit.hess(x)
-        nhev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-        H_approx = approx.hess(x)
-        assert_(isinstance(H_approx, LinearOperator))
-        for v in ([1.0, 2.0], [3.0, 4.0], [5.0, 2.0]):
-            assert_array_almost_equal(H_analit.dot(v), H_approx.dot(v))
-        ngev += 4
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-
-        x = [2.1, 1.2]
-        H_analit = analit.hess(x)
-        nhev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-        H_approx = approx.hess(x)
-        assert_(isinstance(H_approx, LinearOperator))
-        for v in ([1.0, 2.0], [3.0, 4.0], [5.0, 2.0]):
-            assert_array_almost_equal(H_analit.dot(v), H_approx.dot(v))
-        ngev += 4
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-
-        x = [2.5, 0.3]
-        _ = analit.grad(x)
-        H_analit = analit.hess(x)
-        ngev += 1
-        nhev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-        _ = approx.grad(x)
-        H_approx = approx.hess(x)
-        assert_(isinstance(H_approx, LinearOperator))
-        for v in ([1.0, 2.0], [3.0, 4.0], [5.0, 2.0]):
-            assert_array_almost_equal(H_analit.dot(v), H_approx.dot(v))
-        ngev += 4
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-
-        x = [5.2, 2.3]
-        _ = analit.grad(x)
-        H_analit = analit.hess(x)
-        ngev += 1
-        nhev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-        _ = approx.grad(x)
-        H_approx = approx.hess(x)
-        assert_(isinstance(H_approx, LinearOperator))
-        for v in ([1.0, 2.0], [3.0, 4.0], [5.0, 2.0]):
-            assert_array_almost_equal(H_analit.dot(v), H_approx.dot(v))
-        ngev += 4
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.ngev, ngev)
-        assert_array_equal(analit.ngev+approx.ngev, ngev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-
-    def test_x_storage_overlap(self):
-        # Scalar_Function should not store references to arrays, it should
-        # store copies - this checks that updating an array in-place causes
-        # Scalar_Function.x to be updated.
-
-        def f(x):
-            return np.sum(np.asarray(x) ** 2)
-
-        x = np.array([1., 2., 3.])
-        sf = ScalarFunction(f, x, (), '3-point', lambda x: x, None, (-np.inf, np.inf))
-
-        assert x is not sf.x
-        assert_equal(sf.fun(x), 14.0)
-        assert x is not sf.x
-
-        x[0] = 0.
-        f1 = sf.fun(x)
-        assert_equal(f1, 13.0)
-
-        x[0] = 1
-        f2 = sf.fun(x)
-        assert_equal(f2, 14.0)
-        assert x is not sf.x
-
-        # now test with a HessianUpdate strategy specified
-        hess = BFGS()
-        x = np.array([1., 2., 3.])
-        sf = ScalarFunction(f, x, (), '3-point', hess, None, (-np.inf, np.inf))
-
-        assert x is not sf.x
-        assert_equal(sf.fun(x), 14.0)
-        assert x is not sf.x
-
-        x[0] = 0.
-        f1 = sf.fun(x)
-        assert_equal(f1, 13.0)
-
-        x[0] = 1
-        f2 = sf.fun(x)
-        assert_equal(f2, 14.0)
-        assert x is not sf.x
-
-        # gh13740 x is changed in user function
-        def ff(x):
-            x *= x    # overwrite x
-            return np.sum(x)
-
-        x = np.array([1., 2., 3.])
-        sf = ScalarFunction(
-            ff, x, (), '3-point', lambda x: x, None, (-np.inf, np.inf)
-        )
-        assert x is not sf.x
-        assert_equal(sf.fun(x), 14.0)
-        assert_equal(sf.x, np.array([1., 2., 3.]))
-        assert x is not sf.x
-
-    def test_lowest_x(self):
-        # ScalarFunction should remember the lowest func(x) visited.
-        x0 = np.array([2, 3, 4])
-        sf = ScalarFunction(rosen, x0, (), rosen_der, rosen_hess,
-                            None, None)
-        sf.fun([1, 1, 1])
-        sf.fun(x0)
-        sf.fun([1.01, 1, 1.0])
-        sf.grad([1.01, 1, 1.0])
-        assert_equal(sf._lowest_f, 0.0)
-        assert_equal(sf._lowest_x, [1.0, 1.0, 1.0])
-
-        sf = ScalarFunction(rosen, x0, (), '2-point', rosen_hess,
-                            None, (-np.inf, np.inf))
-        sf.fun([1, 1, 1])
-        sf.fun(x0)
-        sf.fun([1.01, 1, 1.0])
-        sf.grad([1.01, 1, 1.0])
-        assert_equal(sf._lowest_f, 0.0)
-        assert_equal(sf._lowest_x, [1.0, 1.0, 1.0])
-
-    def test_float_size(self):
-        x0 = np.array([2, 3, 4]).astype(np.float32)
-
-        # check that ScalarFunction/approx_derivative always send the correct
-        # float width
-        def rosen_(x):
-            assert x.dtype == np.float32
-            return rosen(x)
-
-        sf = ScalarFunction(rosen_, x0, (), '2-point', rosen_hess,
-                            None, (-np.inf, np.inf))
-        res = sf.fun(x0)
-        assert res.dtype == np.float32
-
-
-class ExVectorialFunction:
-
-    def __init__(self):
-        self.nfev = 0
-        self.njev = 0
-        self.nhev = 0
-
-    def fun(self, x):
-        self.nfev += 1
-        return np.array([2*(x[0]**2 + x[1]**2 - 1) - x[0],
-                         4*(x[0]**3 + x[1]**2 - 4) - 3*x[0]], dtype=x.dtype)
-
-    def jac(self, x):
-        self.njev += 1
-        return np.array([[4*x[0]-1, 4*x[1]],
-                         [12*x[0]**2-3, 8*x[1]]], dtype=x.dtype)
-
-    def hess(self, x, v):
-        self.nhev += 1
-        return v[0]*4*np.eye(2) + v[1]*np.array([[24*x[0], 0],
-                                                 [0, 8]])
-
-
-class TestVectorialFunction(TestCase):
-
-    def test_finite_difference_jac(self):
-        ex = ExVectorialFunction()
-        nfev = 0
-        njev = 0
-
-        x0 = [1.0, 0.0]
-        analit = VectorFunction(ex.fun, x0, ex.jac, ex.hess, None, None,
-                                (-np.inf, np.inf), None)
-        nfev += 1
-        njev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev, njev)
-        approx = VectorFunction(ex.fun, x0, '2-point', ex.hess, None, None,
-                                (-np.inf, np.inf), None)
-        nfev += 3
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_equal(analit.f, approx.f)
-        assert_array_almost_equal(analit.J, approx.J)
-
-        x = [10, 0.3]
-        f_analit = analit.fun(x)
-        J_analit = analit.jac(x)
-        nfev += 1
-        njev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        f_approx = approx.fun(x)
-        J_approx = approx.jac(x)
-        nfev += 3
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_almost_equal(f_analit, f_approx)
-        assert_array_almost_equal(J_analit, J_approx, decimal=4)
-
-        x = [2.0, 1.0]
-        J_analit = analit.jac(x)
-        njev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        J_approx = approx.jac(x)
-        nfev += 3
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_almost_equal(J_analit, J_approx)
-
-        x = [2.5, 0.3]
-        f_analit = analit.fun(x)
-        J_analit = analit.jac(x)
-        nfev += 1
-        njev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        f_approx = approx.fun(x)
-        J_approx = approx.jac(x)
-        nfev += 3
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_almost_equal(f_analit, f_approx)
-        assert_array_almost_equal(J_analit, J_approx)
-
-        x = [2, 0.3]
-        f_analit = analit.fun(x)
-        J_analit = analit.jac(x)
-        nfev += 1
-        njev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        f_approx = approx.fun(x)
-        J_approx = approx.jac(x)
-        nfev += 3
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_almost_equal(f_analit, f_approx)
-        assert_array_almost_equal(J_analit, J_approx)
-
-    def test_finite_difference_hess_linear_operator(self):
-        ex = ExVectorialFunction()
-        nfev = 0
-        njev = 0
-        nhev = 0
-
-        x0 = [1.0, 0.0]
-        v0 = [1.0, 2.0]
-        analit = VectorFunction(ex.fun, x0, ex.jac, ex.hess, None, None,
-                                (-np.inf, np.inf), None)
-        nfev += 1
-        njev += 1
-        nhev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev, njev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev, nhev)
-        approx = VectorFunction(ex.fun, x0, ex.jac, '2-point', None, None,
-                                (-np.inf, np.inf), None)
-        assert_(isinstance(approx.H, LinearOperator))
-        for p in ([1.0, 2.0], [3.0, 4.0], [5.0, 2.0]):
-            assert_array_equal(analit.f, approx.f)
-            assert_array_almost_equal(analit.J, approx.J)
-            assert_array_almost_equal(analit.H.dot(p), approx.H.dot(p))
-        nfev += 1
-        njev += 4
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-
-        x = [2.0, 1.0]
-        H_analit = analit.hess(x, v0)
-        nhev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-        H_approx = approx.hess(x, v0)
-        assert_(isinstance(H_approx, LinearOperator))
-        for p in ([1.0, 2.0], [3.0, 4.0], [5.0, 2.0]):
-            assert_array_almost_equal(H_analit.dot(p), H_approx.dot(p),
-                                      decimal=5)
-        njev += 4
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-
-        x = [2.1, 1.2]
-        v = [1.0, 1.0]
-        H_analit = analit.hess(x, v)
-        nhev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-        H_approx = approx.hess(x, v)
-        assert_(isinstance(H_approx, LinearOperator))
-        for v in ([1.0, 2.0], [3.0, 4.0], [5.0, 2.0]):
-            assert_array_almost_equal(H_analit.dot(v), H_approx.dot(v))
-        njev += 4
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-
-        x = [2.5, 0.3]
-        _ = analit.jac(x)
-        H_analit = analit.hess(x, v0)
-        njev += 1
-        nhev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-        _ = approx.jac(x)
-        H_approx = approx.hess(x, v0)
-        assert_(isinstance(H_approx, LinearOperator))
-        for v in ([1.0, 2.0], [3.0, 4.0], [5.0, 2.0]):
-            assert_array_almost_equal(H_analit.dot(v), H_approx.dot(v), decimal=4)
-        njev += 4
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-
-        x = [5.2, 2.3]
-        v = [2.3, 5.2]
-        _ = analit.jac(x)
-        H_analit = analit.hess(x, v)
-        njev += 1
-        nhev += 1
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-        _ = approx.jac(x)
-        H_approx = approx.hess(x, v)
-        assert_(isinstance(H_approx, LinearOperator))
-        for v in ([1.0, 2.0], [3.0, 4.0], [5.0, 2.0]):
-            assert_array_almost_equal(H_analit.dot(v), H_approx.dot(v), decimal=4)
-        njev += 4
-        assert_array_equal(ex.nfev, nfev)
-        assert_array_equal(analit.nfev+approx.nfev, nfev)
-        assert_array_equal(ex.njev, njev)
-        assert_array_equal(analit.njev+approx.njev, njev)
-        assert_array_equal(ex.nhev, nhev)
-        assert_array_equal(analit.nhev+approx.nhev, nhev)
-
-    def test_x_storage_overlap(self):
-        # VectorFunction should not store references to arrays, it should
-        # store copies - this checks that updating an array in-place causes
-        # Scalar_Function.x to be updated.
-        ex = ExVectorialFunction()
-        x0 = np.array([1.0, 0.0])
-
-        vf = VectorFunction(ex.fun, x0, '3-point', ex.hess, None, None,
-                            (-np.inf, np.inf), None)
-
-        assert x0 is not vf.x
-        assert_equal(vf.fun(x0), ex.fun(x0))
-        assert x0 is not vf.x
-
-        x0[0] = 2.
-        assert_equal(vf.fun(x0), ex.fun(x0))
-        assert x0 is not vf.x
-
-        x0[0] = 1.
-        assert_equal(vf.fun(x0), ex.fun(x0))
-        assert x0 is not vf.x
-
-        # now test with a HessianUpdate strategy specified
-        hess = BFGS()
-        x0 = np.array([1.0, 0.0])
-        vf = VectorFunction(ex.fun, x0, '3-point', hess, None, None,
-                            (-np.inf, np.inf), None)
-
-        with pytest.warns(UserWarning):
-            # filter UserWarning because ExVectorialFunction is linear and
-            # a quasi-Newton approximation is used for the Hessian.
-            assert x0 is not vf.x
-            assert_equal(vf.fun(x0), ex.fun(x0))
-            assert x0 is not vf.x
-
-            x0[0] = 2.
-            assert_equal(vf.fun(x0), ex.fun(x0))
-            assert x0 is not vf.x
-
-            x0[0] = 1.
-            assert_equal(vf.fun(x0), ex.fun(x0))
-            assert x0 is not vf.x
-
-    def test_float_size(self):
-        ex = ExVectorialFunction()
-        x0 = np.array([1.0, 0.0]).astype(np.float32)
-
-        vf = VectorFunction(ex.fun, x0, ex.jac, ex.hess, None, None,
-                            (-np.inf, np.inf), None)
-
-        res = vf.fun(x0)
-        assert res.dtype == np.float32
-
-        res = vf.jac(x0)
-        assert res.dtype == np.float32
-
-
-def test_LinearVectorFunction():
-    A_dense = np.array([
-        [-1, 2, 0],
-        [0, 4, 2]
-    ])
-    x0 = np.zeros(3)
-    A_sparse = csr_matrix(A_dense)
-    x = np.array([1, -1, 0])
-    v = np.array([-1, 1])
-    Ax = np.array([-3, -4])
-
-    f1 = LinearVectorFunction(A_dense, x0, None)
-    assert_(not f1.sparse_jacobian)
-
-    f2 = LinearVectorFunction(A_dense, x0, True)
-    assert_(f2.sparse_jacobian)
-
-    f3 = LinearVectorFunction(A_dense, x0, False)
-    assert_(not f3.sparse_jacobian)
-
-    f4 = LinearVectorFunction(A_sparse, x0, None)
-    assert_(f4.sparse_jacobian)
-
-    f5 = LinearVectorFunction(A_sparse, x0, True)
-    assert_(f5.sparse_jacobian)
-
-    f6 = LinearVectorFunction(A_sparse, x0, False)
-    assert_(not f6.sparse_jacobian)
-
-    assert_array_equal(f1.fun(x), Ax)
-    assert_array_equal(f2.fun(x), Ax)
-    assert_array_equal(f1.jac(x), A_dense)
-    assert_array_equal(f2.jac(x).toarray(), A_sparse.toarray())
-    assert_array_equal(f1.hess(x, v).toarray(), np.zeros((3, 3)))
-
-
-def test_LinearVectorFunction_memoization():
-    A = np.array([[-1, 2, 0], [0, 4, 2]])
-    x0 = np.array([1, 2, -1])
-    fun = LinearVectorFunction(A, x0, False)
-
-    assert_array_equal(x0, fun.x)
-    assert_array_equal(A.dot(x0), fun.f)
-
-    x1 = np.array([-1, 3, 10])
-    assert_array_equal(A, fun.jac(x1))
-    assert_array_equal(x1, fun.x)
-    assert_array_equal(A.dot(x0), fun.f)
-    assert_array_equal(A.dot(x1), fun.fun(x1))
-    assert_array_equal(A.dot(x1), fun.f)
-
-
-def test_IdentityVectorFunction():
-    x0 = np.zeros(3)
-
-    f1 = IdentityVectorFunction(x0, None)
-    f2 = IdentityVectorFunction(x0, False)
-    f3 = IdentityVectorFunction(x0, True)
-
-    assert_(f1.sparse_jacobian)
-    assert_(not f2.sparse_jacobian)
-    assert_(f3.sparse_jacobian)
-
-    x = np.array([-1, 2, 1])
-    v = np.array([-2, 3, 0])
-
-    assert_array_equal(f1.fun(x), x)
-    assert_array_equal(f2.fun(x), x)
-
-    assert_array_equal(f1.jac(x).toarray(), np.eye(3))
-    assert_array_equal(f2.jac(x), np.eye(3))
-
-    assert_array_equal(f1.hess(x, v).toarray(), np.zeros((3, 3)))
-
-
-@pytest.mark.skipif(
-    platform.python_implementation() == "PyPy",
-    reason="assert_deallocate not available on PyPy"
-)
-def test_ScalarFunctionNoReferenceCycle():
-    """Regression test for gh-20768."""
-    ex = ExScalarFunction()
-    x0 = np.zeros(3)
-    with assert_deallocated(lambda: ScalarFunction(ex.fun, x0, (), ex.grad,
-                            ex.hess, None, (-np.inf, np.inf))):
-        pass
-
-
-@pytest.mark.skipif(
-    platform.python_implementation() == "PyPy",
-    reason="assert_deallocate not available on PyPy"
-)
-@pytest.mark.xfail(reason="TODO remove reference cycle from VectorFunction")
-def test_VectorFunctionNoReferenceCycle():
-    """Regression test for gh-20768."""
-    ex = ExVectorialFunction()
-    x0 = [1.0, 0.0]
-    with assert_deallocated(lambda: VectorFunction(ex.fun, x0, ex.jac,
-                            ex.hess, None, None, (-np.inf, np.inf), None)):
-        pass
-
-
-@pytest.mark.skipif(
-    platform.python_implementation() == "PyPy",
-    reason="assert_deallocate not available on PyPy"
-)
-def test_LinearVectorFunctionNoReferenceCycle():
-    """Regression test for gh-20768."""
-    A_dense = np.array([
-        [-1, 2, 0],
-        [0, 4, 2]
-    ])
-    x0 = np.zeros(3)
-    A_sparse = csr_matrix(A_dense)
-    with assert_deallocated(lambda: LinearVectorFunction(A_sparse, x0, None)):
-        pass
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_differentiate.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_differentiate.py
deleted file mode 100644
index 195fec2f180a07c92e639a4e14d7a8b781cfa1ef..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_differentiate.py
+++ /dev/null
@@ -1,512 +0,0 @@
-import pytest
-
-import numpy as np
-from numpy.testing import assert_array_less, assert_allclose, assert_equal
-
-import scipy._lib._elementwise_iterative_method as eim
-from scipy import stats, optimize
-from scipy.optimize._differentiate import (_differentiate as differentiate,
-                                           _jacobian as jacobian, _EERRORINCREASE)
-
-class TestDifferentiate:
-
-    def f(self, x):
-        return stats.norm().cdf(x)
-
-    @pytest.mark.parametrize('x', [0.6, np.linspace(-0.05, 1.05, 10)])
-    def test_basic(self, x):
-        # Invert distribution CDF and compare against distribution `ppf`
-        res = differentiate(self.f, x)
-        ref = stats.norm().pdf(x)
-        np.testing.assert_allclose(res.df, ref)
-        # This would be nice, but doesn't always work out. `error` is an
-        # estimate, not a bound.
-        assert_array_less(abs(res.df - ref), res.error)
-        assert res.x.shape == ref.shape
-
-    @pytest.mark.parametrize('case', stats._distr_params.distcont)
-    def test_accuracy(self, case):
-        distname, params = case
-        dist = getattr(stats, distname)(*params)
-        x = dist.median() + 0.1
-        res = differentiate(dist.cdf, x)
-        ref = dist.pdf(x)
-        assert_allclose(res.df, ref, atol=1e-10)
-
-    @pytest.mark.parametrize('order', [1, 6])
-    @pytest.mark.parametrize('shape', [tuple(), (12,), (3, 4), (3, 2, 2)])
-    def test_vectorization(self, order, shape):
-        # Test for correct functionality, output shapes, and dtypes for various
-        # input shapes.
-        x = np.linspace(-0.05, 1.05, 12).reshape(shape) if shape else 0.6
-        n = np.size(x)
-
-        @np.vectorize
-        def _differentiate_single(x):
-            return differentiate(self.f, x, order=order)
-
-        def f(x, *args, **kwargs):
-            f.nit += 1
-            f.feval += 1 if (x.size == n or x.ndim <=1) else x.shape[-1]
-            return self.f(x, *args, **kwargs)
-        f.nit = -1
-        f.feval = 0
-
-        res = differentiate(f, x, order=order)
-        refs = _differentiate_single(x).ravel()
-
-        ref_x = [ref.x for ref in refs]
-        assert_allclose(res.x.ravel(), ref_x)
-        assert_equal(res.x.shape, shape)
-
-        ref_df = [ref.df for ref in refs]
-        assert_allclose(res.df.ravel(), ref_df)
-        assert_equal(res.df.shape, shape)
-
-        ref_error = [ref.error for ref in refs]
-        assert_allclose(res.error.ravel(), ref_error, atol=1e-12)
-        assert_equal(res.error.shape, shape)
-
-        ref_success = [ref.success for ref in refs]
-        assert_equal(res.success.ravel(), ref_success)
-        assert_equal(res.success.shape, shape)
-        assert np.issubdtype(res.success.dtype, np.bool_)
-
-        ref_flag = [ref.status for ref in refs]
-        assert_equal(res.status.ravel(), ref_flag)
-        assert_equal(res.status.shape, shape)
-        assert np.issubdtype(res.status.dtype, np.integer)
-
-        ref_nfev = [ref.nfev for ref in refs]
-        assert_equal(res.nfev.ravel(), ref_nfev)
-        assert_equal(np.max(res.nfev), f.feval)
-        assert_equal(res.nfev.shape, res.x.shape)
-        assert np.issubdtype(res.nfev.dtype, np.integer)
-
-        ref_nit = [ref.nit for ref in refs]
-        assert_equal(res.nit.ravel(), ref_nit)
-        assert_equal(np.max(res.nit), f.nit)
-        assert_equal(res.nit.shape, res.x.shape)
-        assert np.issubdtype(res.nit.dtype, np.integer)
-
-    def test_flags(self):
-        # Test cases that should produce different status flags; show that all
-        # can be produced simultaneously.
-        rng = np.random.default_rng(5651219684984213)
-        def f(xs, js):
-            f.nit += 1
-            funcs = [lambda x: x - 2.5,  # converges
-                     lambda x: np.exp(x)*rng.random(),  # error increases
-                     lambda x: np.exp(x),  # reaches maxiter due to order=2
-                     lambda x: np.full_like(x, np.nan)[()]]  # stops due to NaN
-            res = [funcs[j](x) for x, j in zip(xs, js.ravel())]
-            return res
-        f.nit = 0
-
-        args = (np.arange(4, dtype=np.int64),)
-        res = differentiate(f, [1]*4, rtol=1e-14, order=2, args=args)
-
-        ref_flags = np.array([eim._ECONVERGED,
-                              _EERRORINCREASE,
-                              eim._ECONVERR,
-                              eim._EVALUEERR])
-        assert_equal(res.status, ref_flags)
-
-    def test_flags_preserve_shape(self):
-        # Same test as above but using `preserve_shape` option to simplify.
-        rng = np.random.default_rng(5651219684984213)
-        def f(x):
-            return [x - 2.5,  # converges
-                    np.exp(x)*rng.random(),  # error increases
-                    np.exp(x),  # reaches maxiter due to order=2
-                    np.full_like(x, np.nan)[()]]  # stops due to NaN
-
-        res = differentiate(f, 1, rtol=1e-14, order=2, preserve_shape=True)
-
-        ref_flags = np.array([eim._ECONVERGED,
-                              _EERRORINCREASE,
-                              eim._ECONVERR,
-                              eim._EVALUEERR])
-        assert_equal(res.status, ref_flags)
-
-    def test_preserve_shape(self):
-        # Test `preserve_shape` option
-        def f(x):
-            return [x, np.sin(3*x), x+np.sin(10*x), np.sin(20*x)*(x-1)**2]
-
-        x = 0
-        ref = [1, 3*np.cos(3*x), 1+10*np.cos(10*x),
-               20*np.cos(20*x)*(x-1)**2 + 2*np.sin(20*x)*(x-1)]
-        res = differentiate(f, x, preserve_shape=True)
-        assert_allclose(res.df, ref)
-
-    def test_convergence(self):
-        # Test that the convergence tolerances behave as expected
-        dist = stats.norm()
-        x = 1
-        f = dist.cdf
-        ref = dist.pdf(x)
-        kwargs0 = dict(atol=0, rtol=0, order=4)
-
-        kwargs = kwargs0.copy()
-        kwargs['atol'] = 1e-3
-        res1 = differentiate(f, x, **kwargs)
-        assert_array_less(abs(res1.df - ref), 1e-3)
-        kwargs['atol'] = 1e-6
-        res2 = differentiate(f, x, **kwargs)
-        assert_array_less(abs(res2.df - ref), 1e-6)
-        assert_array_less(abs(res2.df - ref), abs(res1.df - ref))
-
-        kwargs = kwargs0.copy()
-        kwargs['rtol'] = 1e-3
-        res1 = differentiate(f, x, **kwargs)
-        assert_array_less(abs(res1.df - ref), 1e-3 * np.abs(ref))
-        kwargs['rtol'] = 1e-6
-        res2 = differentiate(f, x, **kwargs)
-        assert_array_less(abs(res2.df - ref), 1e-6 * np.abs(ref))
-        assert_array_less(abs(res2.df - ref), abs(res1.df - ref))
-
-    def test_step_parameters(self):
-        # Test that step factors have the expected effect on accuracy
-        dist = stats.norm()
-        x = 1
-        f = dist.cdf
-        ref = dist.pdf(x)
-
-        res1 = differentiate(f, x, initial_step=0.5, maxiter=1)
-        res2 = differentiate(f, x, initial_step=0.05, maxiter=1)
-        assert abs(res2.df - ref) < abs(res1.df - ref)
-
-        res1 = differentiate(f, x, step_factor=2, maxiter=1)
-        res2 = differentiate(f, x, step_factor=20, maxiter=1)
-        assert abs(res2.df - ref) < abs(res1.df - ref)
-
-        # `step_factor` can be less than 1: `initial_step` is the minimum step
-        kwargs = dict(order=4, maxiter=1, step_direction=0)
-        res = differentiate(f, x, initial_step=0.5, step_factor=0.5, **kwargs)
-        ref = differentiate(f, x, initial_step=1, step_factor=2, **kwargs)
-        assert_allclose(res.df, ref.df, rtol=5e-15)
-
-        # This is a similar test for one-sided difference
-        kwargs = dict(order=2, maxiter=1, step_direction=1)
-        res = differentiate(f, x, initial_step=1, step_factor=2, **kwargs)
-        ref = differentiate(f, x, initial_step=1/np.sqrt(2), step_factor=0.5,
-                                   **kwargs)
-        assert_allclose(res.df, ref.df, rtol=5e-15)
-
-        kwargs['step_direction'] = -1
-        res = differentiate(f, x, initial_step=1, step_factor=2, **kwargs)
-        ref = differentiate(f, x, initial_step=1/np.sqrt(2), step_factor=0.5,
-                                   **kwargs)
-        assert_allclose(res.df, ref.df, rtol=5e-15)
-
-    def test_step_direction(self):
-        # test that `step_direction` works as expected
-        def f(x):
-            y = np.exp(x)
-            y[(x < 0) + (x > 2)] = np.nan
-            return y
-
-        x = np.linspace(0, 2, 10)
-        step_direction = np.zeros_like(x)
-        step_direction[x < 0.6], step_direction[x > 1.4] = 1, -1
-        res = differentiate(f, x, step_direction=step_direction)
-        assert_allclose(res.df, np.exp(x))
-        assert np.all(res.success)
-
-    def test_vectorized_step_direction_args(self):
-        # test that `step_direction` and `args` are vectorized properly
-        def f(x, p):
-            return x ** p
-
-        def df(x, p):
-            return p * x ** (p - 1)
-
-        x = np.array([1, 2, 3, 4]).reshape(-1, 1, 1)
-        hdir = np.array([-1, 0, 1]).reshape(1, -1, 1)
-        p = np.array([2, 3]).reshape(1, 1, -1)
-        res = differentiate(f, x, step_direction=hdir, args=(p,))
-        ref = np.broadcast_to(df(x, p), res.df.shape)
-        assert_allclose(res.df, ref)
-
-    def test_maxiter_callback(self):
-        # Test behavior of `maxiter` parameter and `callback` interface
-        x = 0.612814
-        dist = stats.norm()
-        maxiter = 3
-
-        def f(x):
-            res = dist.cdf(x)
-            return res
-
-        default_order = 8
-        res = differentiate(f, x, maxiter=maxiter, rtol=1e-15)
-        assert not np.any(res.success)
-        assert np.all(res.nfev == default_order + 1 + (maxiter - 1)*2)
-        assert np.all(res.nit == maxiter)
-
-        def callback(res):
-            callback.iter += 1
-            callback.res = res
-            assert hasattr(res, 'x')
-            assert res.df not in callback.dfs
-            callback.dfs.add(res.df)
-            assert res.status == eim._EINPROGRESS
-            if callback.iter == maxiter:
-                raise StopIteration
-        callback.iter = -1  # callback called once before first iteration
-        callback.res = None
-        callback.dfs = set()
-
-        res2 = differentiate(f, x, callback=callback, rtol=1e-15)
-        # terminating with callback is identical to terminating due to maxiter
-        # (except for `status`)
-        for key in res.keys():
-            if key == 'status':
-                assert res[key] == eim._ECONVERR
-                assert callback.res[key] == eim._EINPROGRESS
-                assert res2[key] == eim._ECALLBACK
-            else:
-                assert res2[key] == callback.res[key] == res[key]
-
-    @pytest.mark.parametrize("hdir", (-1, 0, 1))
-    @pytest.mark.parametrize("x", (0.65, [0.65, 0.7]))
-    @pytest.mark.parametrize("dtype", (np.float16, np.float32, np.float64))
-    def test_dtype(self, hdir, x, dtype):
-        # Test that dtypes are preserved
-        x = np.asarray(x, dtype=dtype)[()]
-
-        def f(x):
-            assert x.dtype == dtype
-            return np.exp(x)
-
-        def callback(res):
-            assert res.x.dtype == dtype
-            assert res.df.dtype == dtype
-            assert res.error.dtype == dtype
-
-        res = differentiate(f, x, order=4, step_direction=hdir,
-                                   callback=callback)
-        assert res.x.dtype == dtype
-        assert res.df.dtype == dtype
-        assert res.error.dtype == dtype
-        eps = np.finfo(dtype).eps
-        assert_allclose(res.df, np.exp(res.x), rtol=np.sqrt(eps))
-
-    def test_input_validation(self):
-        # Test input validation for appropriate error messages
-
-        message = '`func` must be callable.'
-        with pytest.raises(ValueError, match=message):
-            differentiate(None, 1)
-
-        message = 'Abscissae and function output must be real numbers.'
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, -4+1j)
-
-        message = "When `preserve_shape=False`, the shape of the array..."
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: [1, 2, 3], [-2, -3])
-
-        message = 'Tolerances and step parameters must be non-negative...'
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, 1, atol=-1)
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, 1, rtol='ekki')
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, 1, initial_step=None)
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, 1, step_factor=object())
-
-        message = '`maxiter` must be a positive integer.'
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, 1, maxiter=1.5)
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, 1, maxiter=0)
-
-        message = '`order` must be a positive integer'
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, 1, order=1.5)
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, 1, order=0)
-
-        message = '`preserve_shape` must be True or False.'
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, 1, preserve_shape='herring')
-
-        message = '`callback` must be callable.'
-        with pytest.raises(ValueError, match=message):
-            differentiate(lambda x: x, 1, callback='shrubbery')
-
-    def test_special_cases(self):
-        # Test edge cases and other special cases
-
-        # Test that integers are not passed to `f`
-        # (otherwise this would overflow)
-        def f(x):
-            assert np.issubdtype(x.dtype, np.floating)
-            return x ** 99 - 1
-
-        res = differentiate(f, 7, rtol=1e-10)
-        assert res.success
-        assert_allclose(res.df, 99*7.**98)
-
-        # Test that if success is achieved in the correct number
-        # of iterations if function is a polynomial. Ideally, all polynomials
-        # of order 0-2 would get exact result with 0 refinement iterations,
-        # all polynomials of order 3-4 would be differentiated exactly after
-        # 1 iteration, etc. However, it seems that _differentiate needs an
-        # extra iteration to detect convergence based on the error estimate.
-
-        for n in range(6):
-            x = 1.5
-            def f(x):
-                return 2*x**n
-
-            ref = 2*n*x**(n-1)
-
-            res = differentiate(f, x, maxiter=1, order=max(1, n))
-            assert_allclose(res.df, ref, rtol=1e-15)
-            assert_equal(res.error, np.nan)
-
-            res = differentiate(f, x, order=max(1, n))
-            assert res.success
-            assert res.nit == 2
-            assert_allclose(res.df, ref, rtol=1e-15)
-
-        # Test scalar `args` (not in tuple)
-        def f(x, c):
-            return c*x - 1
-
-        res = differentiate(f, 2, args=3)
-        assert_allclose(res.df, 3)
-
-    @pytest.mark.xfail
-    @pytest.mark.parametrize("case", (  # function, evaluation point
-        (lambda x: (x - 1) ** 3, 1),
-        (lambda x: np.where(x > 1, (x - 1) ** 5, (x - 1) ** 3), 1)
-    ))
-    def test_saddle_gh18811(self, case):
-        # With default settings, _differentiate will not always converge when
-        # the true derivative is exactly zero. This tests that specifying a
-        # (tight) `atol` alleviates the problem. See discussion in gh-18811.
-        atol = 1e-16
-        res = differentiate(*case, step_direction=[-1, 0, 1], atol=atol)
-        assert np.all(res.success)
-        assert_allclose(res.df, 0, atol=atol)
-
-
-class TestJacobian:
-
-    # Example functions and Jacobians from Wikipedia:
-    # https://en.wikipedia.org/wiki/Jacobian_matrix_and_determinant#Examples
-
-    def f1(z):
-        x, y = z
-        return [x ** 2 * y, 5 * x + np.sin(y)]
-
-    def df1(z):
-        x, y = z
-        return [[2 * x * y, x ** 2], [np.full_like(x, 5), np.cos(y)]]
-
-    f1.mn = 2, 2  # type: ignore[attr-defined]
-    f1.ref = df1  # type: ignore[attr-defined]
-
-    def f2(z):
-        r, phi = z
-        return [r * np.cos(phi), r * np.sin(phi)]
-
-    def df2(z):
-        r, phi = z
-        return [[np.cos(phi), -r * np.sin(phi)],
-                [np.sin(phi), r * np.cos(phi)]]
-
-    f2.mn = 2, 2  # type: ignore[attr-defined]
-    f2.ref = df2  # type: ignore[attr-defined]
-
-    def f3(z):
-        r, phi, th = z
-        return [r * np.sin(phi) * np.cos(th), r * np.sin(phi) * np.sin(th),
-                r * np.cos(phi)]
-
-    def df3(z):
-        r, phi, th = z
-        return [[np.sin(phi) * np.cos(th), r * np.cos(phi) * np.cos(th),
-                 -r * np.sin(phi) * np.sin(th)],
-                [np.sin(phi) * np.sin(th), r * np.cos(phi) * np.sin(th),
-                 r * np.sin(phi) * np.cos(th)],
-                [np.cos(phi), -r * np.sin(phi), np.zeros_like(r)]]
-
-    f3.mn = 3, 3  # type: ignore[attr-defined]
-    f3.ref = df3  # type: ignore[attr-defined]
-
-    def f4(x):
-        x1, x2, x3 = x
-        return [x1, 5 * x3, 4 * x2 ** 2 - 2 * x3, x3 * np.sin(x1)]
-
-    def df4(x):
-        x1, x2, x3 = x
-        one = np.ones_like(x1)
-        return [[one, 0 * one, 0 * one],
-                [0 * one, 0 * one, 5 * one],
-                [0 * one, 8 * x2, -2 * one],
-                [x3 * np.cos(x1), 0 * one, np.sin(x1)]]
-
-    f4.mn = 3, 4  # type: ignore[attr-defined]
-    f4.ref = df4  # type: ignore[attr-defined]
-
-    def f5(x):
-        x1, x2, x3 = x
-        return [5 * x2, 4 * x1 ** 2 - 2 * np.sin(x2 * x3), x2 * x3]
-
-    def df5(x):
-        x1, x2, x3 = x
-        one = np.ones_like(x1)
-        return [[0 * one, 5 * one, 0 * one],
-                [8 * x1, -2 * x3 * np.cos(x2 * x3), -2 * x2 * np.cos(x2 * x3)],
-                [0 * one, x3, x2]]
-
-    f5.mn = 3, 3  # type: ignore[attr-defined]
-    f5.ref = df5  # type: ignore[attr-defined]
-
-    rosen = optimize.rosen
-    rosen.mn = 5, 1  # type: ignore[attr-defined]
-    rosen.ref = optimize.rosen_der  # type: ignore[attr-defined]
-
-    @pytest.mark.parametrize('size', [(), (6,), (2, 3)])
-    @pytest.mark.parametrize('func', [f1, f2, f3, f4, f5, rosen])
-    def test_examples(self, size, func):
-        rng = np.random.default_rng(458912319542)
-        m, n = func.mn
-        x = rng.random(size=(m,) + size)
-        res = jacobian(func, x).df
-        ref = func.ref(x)
-        np.testing.assert_allclose(res, ref, atol=1e-10)
-
-    def test_iv(self):
-        # Test input validation
-        message = "Argument `x` must be at least 1-D."
-        with pytest.raises(ValueError, match=message):
-            jacobian(np.sin, 1, atol=-1)
-
-        # Confirm that other parameters are being passed to `_derivative`,
-        # which raises an appropriate error message.
-        x = np.ones(3)
-        func = optimize.rosen
-        message = 'Tolerances and step parameters must be non-negative scalars.'
-        with pytest.raises(ValueError, match=message):
-            jacobian(func, x, atol=-1)
-        with pytest.raises(ValueError, match=message):
-            jacobian(func, x, rtol=-1)
-        with pytest.raises(ValueError, match=message):
-            jacobian(func, x, initial_step=-1)
-        with pytest.raises(ValueError, match=message):
-            jacobian(func, x, step_factor=-1)
-
-        message = '`order` must be a positive integer.'
-        with pytest.raises(ValueError, match=message):
-            jacobian(func, x, order=-1)
-
-        message = '`maxiter` must be a positive integer.'
-        with pytest.raises(ValueError, match=message):
-            jacobian(func, x, maxiter=-1)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_direct.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_direct.py
deleted file mode 100644
index f131527deac44edc095be9d4d96d57fa49dadd1b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_direct.py
+++ /dev/null
@@ -1,318 +0,0 @@
-"""
-Unit test for DIRECT optimization algorithm.
-"""
-from numpy.testing import (assert_allclose,
-                           assert_array_less)
-import pytest
-import numpy as np
-from scipy.optimize import direct, Bounds
-
-
-class TestDIRECT:
-
-    def setup_method(self):
-        self.fun_calls = 0
-        self.bounds_sphere = 4*[(-2, 3)]
-        self.optimum_sphere_pos = np.zeros((4, ))
-        self.optimum_sphere = 0.0
-        self.bounds_stylinski_tang = Bounds([-4., -4.], [4., 4.])
-        self.maxiter = 1000
-
-    # test functions
-    def sphere(self, x):
-        self.fun_calls += 1
-        return np.square(x).sum()
-
-    def inv(self, x):
-        if np.sum(x) == 0:
-            raise ZeroDivisionError()
-        return 1/np.sum(x)
-
-    def nan_fun(self, x):
-        return np.nan
-
-    def inf_fun(self, x):
-        return np.inf
-
-    def styblinski_tang(self, pos):
-        x, y = pos
-        return 0.5 * (x**4 - 16 * x**2 + 5 * x + y**4 - 16 * y**2 + 5 * y)
-
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_direct(self, locally_biased):
-        res = direct(self.sphere, self.bounds_sphere,
-                     locally_biased=locally_biased)
-
-        # test accuracy
-        assert_allclose(res.x, self.optimum_sphere_pos,
-                        rtol=1e-3, atol=1e-3)
-        assert_allclose(res.fun, self.optimum_sphere, atol=1e-5, rtol=1e-5)
-
-        # test that result lies within bounds
-        _bounds = np.asarray(self.bounds_sphere)
-        assert_array_less(_bounds[:, 0], res.x)
-        assert_array_less(res.x, _bounds[:, 1])
-
-        # test number of function evaluations. Original DIRECT overshoots by
-        # up to 500 evaluations in last iteration
-        assert res.nfev <= 1000 * (len(self.bounds_sphere) + 1)
-        # test that number of function evaluations is correct
-        assert res.nfev == self.fun_calls
-
-        # test that number of iterations is below supplied maximum
-        assert res.nit <= self.maxiter
-
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_direct_callback(self, locally_biased):
-        # test that callback does not change the result
-        res = direct(self.sphere, self.bounds_sphere,
-                     locally_biased=locally_biased)
-
-        def callback(x):
-            x = 2*x
-            dummy = np.square(x)
-            print("DIRECT minimization algorithm callback test")
-            return dummy
-
-        res_callback = direct(self.sphere, self.bounds_sphere,
-                              locally_biased=locally_biased,
-                              callback=callback)
-
-        assert_allclose(res.x, res_callback.x)
-
-        assert res.nit == res_callback.nit
-        assert res.nfev == res_callback.nfev
-        assert res.status == res_callback.status
-        assert res.success == res_callback.success
-        assert res.fun == res_callback.fun
-        assert_allclose(res.x, res_callback.x)
-        assert res.message == res_callback.message
-
-        # test accuracy
-        assert_allclose(res_callback.x, self.optimum_sphere_pos,
-                        rtol=1e-3, atol=1e-3)
-        assert_allclose(res_callback.fun, self.optimum_sphere,
-                        atol=1e-5, rtol=1e-5)
-
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_exception(self, locally_biased):
-        bounds = 4*[(-10, 10)]
-        with pytest.raises(ZeroDivisionError):
-            direct(self.inv, bounds=bounds,
-                   locally_biased=locally_biased)
-
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_nan(self, locally_biased):
-        bounds = 4*[(-10, 10)]
-        direct(self.nan_fun, bounds=bounds,
-               locally_biased=locally_biased)
-
-    @pytest.mark.parametrize("len_tol", [1e-3, 1e-4])
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_len_tol(self, len_tol, locally_biased):
-        bounds = 4*[(-10., 10.)]
-        res = direct(self.sphere, bounds=bounds, len_tol=len_tol,
-                     vol_tol=1e-30, locally_biased=locally_biased)
-        assert res.status == 5
-        assert res.success
-        assert_allclose(res.x, np.zeros((4, )))
-        message = ("The side length measure of the hyperrectangle containing "
-                   "the lowest function value found is below "
-                   f"len_tol={len_tol}")
-        assert res.message == message
-
-    @pytest.mark.parametrize("vol_tol", [1e-6, 1e-8])
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_vol_tol(self, vol_tol, locally_biased):
-        bounds = 4*[(-10., 10.)]
-        res = direct(self.sphere, bounds=bounds, vol_tol=vol_tol,
-                     len_tol=0., locally_biased=locally_biased)
-        assert res.status == 4
-        assert res.success
-        assert_allclose(res.x, np.zeros((4, )))
-        message = ("The volume of the hyperrectangle containing the lowest "
-                   f"function value found is below vol_tol={vol_tol}")
-        assert res.message == message
-
-    @pytest.mark.parametrize("f_min_rtol", [1e-3, 1e-5, 1e-7])
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_f_min(self, f_min_rtol, locally_biased):
-        # test that desired function value is reached within
-        # relative tolerance of f_min_rtol
-        f_min = 1.
-        bounds = 4*[(-2., 10.)]
-        res = direct(self.sphere, bounds=bounds, f_min=f_min,
-                     f_min_rtol=f_min_rtol,
-                     locally_biased=locally_biased)
-        assert res.status == 3
-        assert res.success
-        assert res.fun < f_min * (1. + f_min_rtol)
-        message = ("The best function value found is within a relative "
-                   f"error={f_min_rtol} of the (known) global optimum f_min")
-        assert res.message == message
-
-    def circle_with_args(self, x, a, b):
-        return np.square(x[0] - a) + np.square(x[1] - b).sum()
-
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_f_circle_with_args(self, locally_biased):
-        bounds = 2*[(-2.0, 2.0)]
-
-        res = direct(self.circle_with_args, bounds, args=(1, 1), maxfun=1250,
-                     locally_biased=locally_biased)
-        assert_allclose(res.x, np.array([1., 1.]), rtol=1e-5)
-
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_failure_maxfun(self, locally_biased):
-        # test that if optimization runs for the maximal number of
-        # evaluations, success = False is returned
-
-        maxfun = 100
-        result = direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                        maxfun=maxfun, locally_biased=locally_biased)
-        assert result.success is False
-        assert result.status == 1
-        assert result.nfev >= maxfun
-        message = ("Number of function evaluations done is "
-                   f"larger than maxfun={maxfun}")
-        assert result.message == message
-
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_failure_maxiter(self, locally_biased):
-        # test that if optimization runs for the maximal number of
-        # iterations, success = False is returned
-
-        maxiter = 10
-        result = direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                        maxiter=maxiter, locally_biased=locally_biased)
-        assert result.success is False
-        assert result.status == 2
-        assert result.nit >= maxiter
-        message = f"Number of iterations is larger than maxiter={maxiter}"
-        assert result.message == message
-
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_bounds_variants(self, locally_biased):
-        # test that new and old bounds yield same result
-
-        lb = [-6., 1., -5.]
-        ub = [-1., 3., 5.]
-        x_opt = np.array([-1., 1., 0.])
-        bounds_old = list(zip(lb, ub))
-        bounds_new = Bounds(lb, ub)
-
-        res_old_bounds = direct(self.sphere, bounds_old,
-                                locally_biased=locally_biased)
-        res_new_bounds = direct(self.sphere, bounds_new,
-                                locally_biased=locally_biased)
-
-        assert res_new_bounds.nfev == res_old_bounds.nfev
-        assert res_new_bounds.message == res_old_bounds.message
-        assert res_new_bounds.success == res_old_bounds.success
-        assert res_new_bounds.nit == res_old_bounds.nit
-        assert_allclose(res_new_bounds.x, res_old_bounds.x)
-        assert_allclose(res_new_bounds.x, x_opt, rtol=1e-2)
-
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    @pytest.mark.parametrize("eps", [1e-5, 1e-4, 1e-3])
-    def test_epsilon(self, eps, locally_biased):
-        result = direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                        eps=eps, vol_tol=1e-6,
-                        locally_biased=locally_biased)
-        assert result.status == 4
-        assert result.success
-
-    @pytest.mark.xslow
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_no_segmentation_fault(self, locally_biased):
-        # test that an excessive number of function evaluations
-        # does not result in segmentation fault
-        bounds = [(-5., 20.)] * 100
-        result = direct(self.sphere, bounds, maxfun=10000000,
-                        maxiter=1000000, locally_biased=locally_biased)
-        assert result is not None
-
-    @pytest.mark.parametrize("locally_biased", [True, False])
-    def test_inf_fun(self, locally_biased):
-        # test that an objective value of infinity does not crash DIRECT
-        bounds = [(-5., 5.)] * 2
-        result = direct(self.inf_fun, bounds,
-                        locally_biased=locally_biased)
-        assert result is not None
-
-    @pytest.mark.parametrize("len_tol", [-1, 2])
-    def test_len_tol_validation(self, len_tol):
-        error_msg = "len_tol must be between 0 and 1."
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                   len_tol=len_tol)
-
-    @pytest.mark.parametrize("vol_tol", [-1, 2])
-    def test_vol_tol_validation(self, vol_tol):
-        error_msg = "vol_tol must be between 0 and 1."
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                   vol_tol=vol_tol)
-
-    @pytest.mark.parametrize("f_min_rtol", [-1, 2])
-    def test_fmin_rtol_validation(self, f_min_rtol):
-        error_msg = "f_min_rtol must be between 0 and 1."
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                   f_min_rtol=f_min_rtol, f_min=0.)
-
-    @pytest.mark.parametrize("maxfun", [1.5, "string", (1, 2)])
-    def test_maxfun_wrong_type(self, maxfun):
-        error_msg = "maxfun must be of type int."
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                   maxfun=maxfun)
-
-    @pytest.mark.parametrize("maxiter", [1.5, "string", (1, 2)])
-    def test_maxiter_wrong_type(self, maxiter):
-        error_msg = "maxiter must be of type int."
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                   maxiter=maxiter)
-
-    def test_negative_maxiter(self):
-        error_msg = "maxiter must be > 0."
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                   maxiter=-1)
-
-    def test_negative_maxfun(self):
-        error_msg = "maxfun must be > 0."
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                   maxfun=-1)
-
-    @pytest.mark.parametrize("bounds", ["bounds", 2., 0])
-    def test_invalid_bounds_type(self, bounds):
-        error_msg = ("bounds must be a sequence or "
-                     "instance of Bounds class")
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, bounds)
-
-    @pytest.mark.parametrize("bounds",
-                             [Bounds([-1., -1], [-2, 1]),
-                              Bounds([-np.nan, -1], [-2, np.nan]),
-                              ]
-                             )
-    def test_incorrect_bounds(self, bounds):
-        error_msg = 'Bounds are not consistent min < max'
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, bounds)
-
-    def test_inf_bounds(self):
-        error_msg = 'Bounds must not be inf.'
-        bounds = Bounds([-np.inf, -1], [-2, np.inf])
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, bounds)
-
-    @pytest.mark.parametrize("locally_biased", ["bias", [0, 0], 2.])
-    def test_locally_biased_validation(self, locally_biased):
-        error_msg = 'locally_biased must be True or False.'
-        with pytest.raises(ValueError, match=error_msg):
-            direct(self.styblinski_tang, self.bounds_stylinski_tang,
-                   locally_biased=locally_biased)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_extending.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_extending.py
deleted file mode 100644
index 80e25f28891c2b29f3d6963b3335351957e4bc78..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_extending.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import os
-import platform
-
-import pytest
-
-from scipy._lib._testutils import IS_EDITABLE, _test_cython_extension, cython
-
-
-@pytest.mark.fail_slow(20)
-# essential per https://github.com/scipy/scipy/pull/20487#discussion_r1567057247
-@pytest.mark.skipif(IS_EDITABLE,
-                    reason='Editable install cannot find .pxd headers.')
-@pytest.mark.skipif(platform.machine() in ["wasm32", "wasm64"],
-                    reason="Can't start subprocess")
-@pytest.mark.skipif(cython is None, reason="requires cython")
-def test_cython(tmp_path):
-    srcdir = os.path.dirname(os.path.dirname(__file__))
-    extensions, extensions_cpp = _test_cython_extension(tmp_path, srcdir)
-    # actually test the cython c-extensions
-    # From docstring for scipy.optimize.cython_optimize module
-    x = extensions.brentq_example()
-    assert x == 0.6999942848231314
-    x = extensions_cpp.brentq_example()
-    assert x == 0.6999942848231314
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_hessian_update_strategy.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_hessian_update_strategy.py
deleted file mode 100644
index fe9d7a059b471f765af5be8de8108a1811fe4482..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_hessian_update_strategy.py
+++ /dev/null
@@ -1,292 +0,0 @@
-import re
-from copy import deepcopy
-
-import numpy as np
-import pytest
-from numpy.linalg import norm
-from numpy.testing import (TestCase, assert_array_almost_equal,
-                           assert_array_equal, assert_array_less)
-from scipy.optimize import (BFGS, SR1)
-
-
-class Rosenbrock:
-    """Rosenbrock function.
-
-    The following optimization problem:
-        minimize sum(100.0*(x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0)
-    """
-
-    def __init__(self, n=2, random_state=0):
-        rng = np.random.RandomState(random_state)
-        self.x0 = rng.uniform(-1, 1, n)
-        self.x_opt = np.ones(n)
-
-    def fun(self, x):
-        x = np.asarray(x)
-        r = np.sum(100.0 * (x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0,
-                   axis=0)
-        return r
-
-    def grad(self, x):
-        x = np.asarray(x)
-        xm = x[1:-1]
-        xm_m1 = x[:-2]
-        xm_p1 = x[2:]
-        der = np.zeros_like(x)
-        der[1:-1] = (200 * (xm - xm_m1**2) -
-                     400 * (xm_p1 - xm**2) * xm - 2 * (1 - xm))
-        der[0] = -400 * x[0] * (x[1] - x[0]**2) - 2 * (1 - x[0])
-        der[-1] = 200 * (x[-1] - x[-2]**2)
-        return der
-
-    def hess(self, x):
-        x = np.atleast_1d(x)
-        H = np.diag(-400 * x[:-1], 1) - np.diag(400 * x[:-1], -1)
-        diagonal = np.zeros(len(x), dtype=x.dtype)
-        diagonal[0] = 1200 * x[0]**2 - 400 * x[1] + 2
-        diagonal[-1] = 200
-        diagonal[1:-1] = 202 + 1200 * x[1:-1]**2 - 400 * x[2:]
-        H = H + np.diag(diagonal)
-        return H
-
-
-class TestHessianUpdateStrategy(TestCase):
-
-
-    def test_hessian_initialization(self):
-
-        ndims = 5
-        symmetric_matrix = np.array([[43, 24, 33, 34, 49],
-                                     [24, 36, 44, 15, 44],
-                                     [33, 44, 37, 1, 30],
-                                     [34, 15, 1, 5, 46],
-                                     [49, 44, 30, 46, 22]])
-        init_scales = (
-            ('auto', np.eye(ndims)),
-            (2, np.eye(ndims) * 2),
-            (np.arange(1, ndims + 1) * np.eye(ndims),
-             np.arange(1, ndims + 1) * np.eye(ndims)),
-            (symmetric_matrix, symmetric_matrix),)
-        for approx_type in ['hess', 'inv_hess']:
-            for init_scale, true_matrix in init_scales:
-                # large min_{denominator,curvatur} makes them skip an update,
-                # so we can have our initial matrix
-                quasi_newton = (BFGS(init_scale=init_scale,
-                                     min_curvature=1e50,
-                                     exception_strategy='skip_update'),
-                                SR1(init_scale=init_scale,
-                                    min_denominator=1e50))
-
-                for qn in quasi_newton:
-                    qn.initialize(ndims, approx_type)
-                    B = qn.get_matrix()
-
-                    assert_array_equal(B, np.eye(ndims))
-                    # don't test the auto init scale
-                    if isinstance(init_scale, str) and init_scale == 'auto':
-                        continue
-
-                    qn.update(np.ones(ndims) * 1e-5, np.arange(ndims) + 0.2)
-                    B = qn.get_matrix()
-                    assert_array_equal(B, true_matrix)
-
-    # For this list of points, it is known
-    # that no exception occur during the
-    # Hessian update. Hence no update is
-    # skiped or damped.
-
-
-    def test_initialize_catch_illegal(self):
-        ndims = 3
-        # no complex allowed
-        inits_msg_errtype = ((complex(3.14),
-                              re.escape("float() argument must be a "
-                                        "string or a real number, "
-                                        "not 'complex'"),
-                              TypeError),
-
-                             (np.array([3.2, 2.3, 1.2]).astype(np.complex128),
-                              "init_scale contains complex elements, "
-                              "must be real.",
-                              TypeError),
-
-                             (np.array([[43, 24, 33],
-                                        [24, 36, 44, ],
-                                        [33, 44, 37, ]]).astype(np.complex128),
-                              "init_scale contains complex elements, "
-                              "must be real.",
-                              TypeError),
-
-                             # not square
-                             (np.array([[43, 55, 66]]),
-                              re.escape(
-                                  "If init_scale is an array, it must have the "
-                                  "dimensions of the hess/inv_hess: (3, 3)."
-                                  " Got (1, 3)."),
-                              ValueError),
-
-                             # not symmetric
-                             (np.array([[43, 24, 33],
-                                        [24.1, 36, 44, ],
-                                        [33, 44, 37, ]]),
-                              re.escape("If init_scale is an array, it must be"
-                                        " symmetric (passing scipy.linalg.issymmetric)"
-                                        " to be an approximation of a hess/inv_hess."),
-                              ValueError),
-                             )
-        for approx_type in ['hess', 'inv_hess']:
-            for init_scale, message, errortype in inits_msg_errtype:
-                # large min_{denominator,curvatur} makes it skip an update,
-                # so we can retrieve our initial matrix
-                quasi_newton = (BFGS(init_scale=init_scale),
-                                SR1(init_scale=init_scale))
-
-                for qn in quasi_newton:
-                    qn.initialize(ndims, approx_type)
-                    with pytest.raises(errortype, match=message):
-                        qn.update(np.ones(ndims), np.arange(ndims))
-
-    def test_rosenbrock_with_no_exception(self):
-        # Define auxiliary problem
-        prob = Rosenbrock(n=5)
-        # Define iteration points
-        x_list = [[0.0976270, 0.4303787, 0.2055267, 0.0897663, -0.15269040],
-                  [0.1847239, 0.0505757, 0.2123832, 0.0255081, 0.00083286],
-                  [0.2142498, -0.0188480, 0.0503822, 0.0347033, 0.03323606],
-                  [0.2071680, -0.0185071, 0.0341337, -0.0139298, 0.02881750],
-                  [0.1533055, -0.0322935, 0.0280418, -0.0083592, 0.01503699],
-                  [0.1382378, -0.0276671, 0.0266161, -0.0074060, 0.02801610],
-                  [0.1651957, -0.0049124, 0.0269665, -0.0040025, 0.02138184],
-                  [0.2354930, 0.0443711, 0.0173959, 0.0041872, 0.00794563],
-                  [0.4168118, 0.1433867, 0.0111714, 0.0126265, -0.00658537],
-                  [0.4681972, 0.2153273, 0.0225249, 0.0152704, -0.00463809],
-                  [0.6023068, 0.3346815, 0.0731108, 0.0186618, -0.00371541],
-                  [0.6415743, 0.3985468, 0.1324422, 0.0214160, -0.00062401],
-                  [0.7503690, 0.5447616, 0.2804541, 0.0539851, 0.00242230],
-                  [0.7452626, 0.5644594, 0.3324679, 0.0865153, 0.00454960],
-                  [0.8059782, 0.6586838, 0.4229577, 0.1452990, 0.00976702],
-                  [0.8549542, 0.7226562, 0.4991309, 0.2420093, 0.02772661],
-                  [0.8571332, 0.7285741, 0.5279076, 0.2824549, 0.06030276],
-                  [0.8835633, 0.7727077, 0.5957984, 0.3411303, 0.09652185],
-                  [0.9071558, 0.8299587, 0.6771400, 0.4402896, 0.17469338],
-                  [0.9190793, 0.8486480, 0.7163332, 0.5083780, 0.26107691],
-                  [0.9371223, 0.8762177, 0.7653702, 0.5773109, 0.32181041],
-                  [0.9554613, 0.9119893, 0.8282687, 0.6776178, 0.43162744],
-                  [0.9545744, 0.9099264, 0.8270244, 0.6822220, 0.45237623],
-                  [0.9688112, 0.9351710, 0.8730961, 0.7546601, 0.56622448],
-                  [0.9743227, 0.9491953, 0.9005150, 0.8086497, 0.64505437],
-                  [0.9807345, 0.9638853, 0.9283012, 0.8631675, 0.73812581],
-                  [0.9886746, 0.9777760, 0.9558950, 0.9123417, 0.82726553],
-                  [0.9899096, 0.9803828, 0.9615592, 0.9255600, 0.85822149],
-                  [0.9969510, 0.9935441, 0.9864657, 0.9726775, 0.94358663],
-                  [0.9979533, 0.9960274, 0.9921724, 0.9837415, 0.96626288],
-                  [0.9995981, 0.9989171, 0.9974178, 0.9949954, 0.99023356],
-                  [1.0002640, 1.0005088, 1.0010594, 1.0021161, 1.00386912],
-                  [0.9998903, 0.9998459, 0.9997795, 0.9995484, 0.99916305],
-                  [1.0000008, 0.9999905, 0.9999481, 0.9998903, 0.99978047],
-                  [1.0000004, 0.9999983, 1.0000001, 1.0000031, 1.00000297],
-                  [0.9999995, 1.0000003, 1.0000005, 1.0000001, 1.00000032],
-                  [0.9999999, 0.9999997, 0.9999994, 0.9999989, 0.99999786],
-                  [0.9999999, 0.9999999, 0.9999999, 0.9999999, 0.99999991]]
-        # Get iteration points
-        grad_list = [prob.grad(x) for x in x_list]
-        delta_x = [np.array(x_list[i+1])-np.array(x_list[i])
-                   for i in range(len(x_list)-1)]
-        delta_grad = [grad_list[i+1]-grad_list[i]
-                      for i in range(len(grad_list)-1)]
-        # Check curvature condition
-        for s, y in zip(delta_x, delta_grad):
-            if np.dot(s, y) <= 0:
-                raise ArithmeticError()
-        # Define QuasiNewton update
-        for quasi_newton in (BFGS(init_scale=1, min_curvature=1e-4),
-                             SR1(init_scale=1)):
-            hess = deepcopy(quasi_newton)
-            inv_hess = deepcopy(quasi_newton)
-            hess.initialize(len(x_list[0]), 'hess')
-            inv_hess.initialize(len(x_list[0]), 'inv_hess')
-            # Compare the hessian and its inverse
-            for s, y in zip(delta_x, delta_grad):
-                hess.update(s, y)
-                inv_hess.update(s, y)
-                B = hess.get_matrix()
-                H = inv_hess.get_matrix()
-                assert_array_almost_equal(np.linalg.inv(B), H, decimal=10)
-            B_true = prob.hess(x_list[len(delta_x)])
-            assert_array_less(norm(B - B_true)/norm(B_true), 0.1)
-
-    def test_SR1_skip_update(self):
-        # Define auxiliary problem
-        prob = Rosenbrock(n=5)
-        # Define iteration points
-        x_list = [[0.0976270, 0.4303787, 0.2055267, 0.0897663, -0.15269040],
-                  [0.1847239, 0.0505757, 0.2123832, 0.0255081, 0.00083286],
-                  [0.2142498, -0.0188480, 0.0503822, 0.0347033, 0.03323606],
-                  [0.2071680, -0.0185071, 0.0341337, -0.0139298, 0.02881750],
-                  [0.1533055, -0.0322935, 0.0280418, -0.0083592, 0.01503699],
-                  [0.1382378, -0.0276671, 0.0266161, -0.0074060, 0.02801610],
-                  [0.1651957, -0.0049124, 0.0269665, -0.0040025, 0.02138184],
-                  [0.2354930, 0.0443711, 0.0173959, 0.0041872, 0.00794563],
-                  [0.4168118, 0.1433867, 0.0111714, 0.0126265, -0.00658537],
-                  [0.4681972, 0.2153273, 0.0225249, 0.0152704, -0.00463809],
-                  [0.6023068, 0.3346815, 0.0731108, 0.0186618, -0.00371541],
-                  [0.6415743, 0.3985468, 0.1324422, 0.0214160, -0.00062401],
-                  [0.7503690, 0.5447616, 0.2804541, 0.0539851, 0.00242230],
-                  [0.7452626, 0.5644594, 0.3324679, 0.0865153, 0.00454960],
-                  [0.8059782, 0.6586838, 0.4229577, 0.1452990, 0.00976702],
-                  [0.8549542, 0.7226562, 0.4991309, 0.2420093, 0.02772661],
-                  [0.8571332, 0.7285741, 0.5279076, 0.2824549, 0.06030276],
-                  [0.8835633, 0.7727077, 0.5957984, 0.3411303, 0.09652185],
-                  [0.9071558, 0.8299587, 0.6771400, 0.4402896, 0.17469338]]
-        # Get iteration points
-        grad_list = [prob.grad(x) for x in x_list]
-        delta_x = [np.array(x_list[i+1])-np.array(x_list[i])
-                   for i in range(len(x_list)-1)]
-        delta_grad = [grad_list[i+1]-grad_list[i]
-                      for i in range(len(grad_list)-1)]
-        hess = SR1(init_scale=1, min_denominator=1e-2)
-        hess.initialize(len(x_list[0]), 'hess')
-        # Compare the Hessian and its inverse
-        for i in range(len(delta_x)-1):
-            s = delta_x[i]
-            y = delta_grad[i]
-            hess.update(s, y)
-        # Test skip update
-        B = np.copy(hess.get_matrix())
-        s = delta_x[17]
-        y = delta_grad[17]
-        hess.update(s, y)
-        B_updated = np.copy(hess.get_matrix())
-        assert_array_equal(B, B_updated)
-
-    def test_BFGS_skip_update(self):
-        # Define auxiliary problem
-        prob = Rosenbrock(n=5)
-        # Define iteration points
-        x_list = [[0.0976270, 0.4303787, 0.2055267, 0.0897663, -0.15269040],
-                  [0.1847239, 0.0505757, 0.2123832, 0.0255081, 0.00083286],
-                  [0.2142498, -0.0188480, 0.0503822, 0.0347033, 0.03323606],
-                  [0.2071680, -0.0185071, 0.0341337, -0.0139298, 0.02881750],
-                  [0.1533055, -0.0322935, 0.0280418, -0.0083592, 0.01503699],
-                  [0.1382378, -0.0276671, 0.0266161, -0.0074060, 0.02801610],
-                  [0.1651957, -0.0049124, 0.0269665, -0.0040025, 0.02138184]]
-        # Get iteration points
-        grad_list = [prob.grad(x) for x in x_list]
-        delta_x = [np.array(x_list[i+1])-np.array(x_list[i])
-                   for i in range(len(x_list)-1)]
-        delta_grad = [grad_list[i+1]-grad_list[i]
-                      for i in range(len(grad_list)-1)]
-        hess = BFGS(init_scale=1, min_curvature=10)
-        hess.initialize(len(x_list[0]), 'hess')
-        # Compare the Hessian and its inverse
-        for i in range(len(delta_x)-1):
-            s = delta_x[i]
-            y = delta_grad[i]
-            hess.update(s, y)
-        # Test skip update
-        B = np.copy(hess.get_matrix())
-        s = delta_x[5]
-        y = delta_grad[5]
-        hess.update(s, y)
-        B_updated = np.copy(hess.get_matrix())
-        assert_array_equal(B, B_updated)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_isotonic_regression.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_isotonic_regression.py
deleted file mode 100644
index b49c56db5b4470c1e4e0f787df52c80eb055c120..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_isotonic_regression.py
+++ /dev/null
@@ -1,167 +0,0 @@
-import numpy as np
-from numpy.testing import assert_allclose, assert_equal
-import pytest
-
-from scipy.optimize._pava_pybind import pava
-from scipy.optimize import isotonic_regression
-
-
-class TestIsotonicRegression:
-    @pytest.mark.parametrize(
-        ("y", "w", "msg"),
-        [
-            ([[0, 1]], None,
-             "array has incorrect number of dimensions: 2; expected 1"),
-            ([0, 1], [[1, 2]],
-             "Input arrays y and w must have one dimension of equal length"),
-            ([0, 1], [1],
-             "Input arrays y and w must have one dimension of equal length"),
-            (1, [1, 2],
-             "Input arrays y and w must have one dimension of equal length"),
-            ([1, 2], 1,
-             "Input arrays y and w must have one dimension of equal length"),
-            ([0, 1], [0, 1],
-             "Weights w must be strictly positive"),
-        ]
-    )
-    def test_raise_error(self, y, w, msg):
-        with pytest.raises(ValueError, match=msg):
-            isotonic_regression(y=y, weights=w)
-
-    def test_simple_pava(self):
-        # Test case of Busing 2020
-        # https://doi.org/10.18637/jss.v102.c01
-        y = np.array([8, 4, 8, 2, 2, 0, 8], dtype=np.float64)
-        w = np.ones_like(y)
-        r = np.full(shape=y.shape[0] + 1, fill_value=-1, dtype=np.intp)
-        pava(y, w, r)
-        assert_allclose(y, [4, 4, 4, 4, 4, 4, 8])
-        # Only first 2 elements of w are changed.
-        assert_allclose(w, [6, 1, 1, 1, 1, 1, 1])
-        # Only first 3 elements of r are changed.
-        assert_allclose(r, [0, 6, 7, -1, -1, -1, -1, -1])
-
-    @pytest.mark.parametrize("y_dtype", [np.float64, np.float32, np.int64, np.int32])
-    @pytest.mark.parametrize("w_dtype", [np.float64, np.float32, np.int64, np.int32])
-    @pytest.mark.parametrize("w", [None, "ones"])
-    def test_simple_isotonic_regression(self, w, w_dtype, y_dtype):
-        # Test case of Busing 2020
-        # https://doi.org/10.18637/jss.v102.c01
-        y = np.array([8, 4, 8, 2, 2, 0, 8], dtype=y_dtype)
-        if w is not None:
-            w = np.ones_like(y, dtype=w_dtype)
-        res = isotonic_regression(y, weights=w)
-        assert res.x.dtype == np.float64
-        assert res.weights.dtype == np.float64
-        assert_allclose(res.x, [4, 4, 4, 4, 4, 4, 8])
-        assert_allclose(res.weights, [6, 1])
-        assert_allclose(res.blocks, [0, 6, 7])
-        # Assert that y was not overwritten
-        assert_equal(y, np.array([8, 4, 8, 2, 2, 0, 8], dtype=np.float64))
-
-    @pytest.mark.parametrize("increasing", [True, False])
-    def test_linspace(self, increasing):
-        n = 10
-        y = np.linspace(0, 1, n) if increasing else np.linspace(1, 0, n)
-        res = isotonic_regression(y, increasing=increasing)
-        assert_allclose(res.x, y)
-        assert_allclose(res.blocks, np.arange(n + 1))
-
-    def test_weights(self):
-        w = np.array([1, 2, 5, 0.5, 0.5, 0.5, 1, 3])
-        y = np.array([3, 2, 1, 10, 9, 8, 20, 10])
-        res = isotonic_regression(y, weights=w)
-        assert_allclose(res.x, [12/8, 12/8, 12/8, 9, 9, 9, 50/4, 50/4])
-        assert_allclose(res.weights, [8, 1.5, 4])
-        assert_allclose(res.blocks, [0, 3, 6, 8])
-
-        # weights are like repeated observations, we repeat the 3rd element 5
-        # times.
-        w2 = np.array([1, 2, 1, 1, 1, 1, 1, 0.5, 0.5, 0.5, 1, 3])
-        y2 = np.array([3, 2, 1, 1, 1, 1, 1, 10, 9, 8, 20, 10])
-        res2 = isotonic_regression(y2, weights=w2)
-        assert_allclose(np.diff(res2.x[0:7]), 0)
-        assert_allclose(res2.x[4:], res.x)
-        assert_allclose(res2.weights, res.weights)
-        assert_allclose(res2.blocks[1:] - 4, res.blocks[1:])
-
-    def test_against_R_monotone(self):
-        y = [0, 6, 8, 3, 5, 2, 1, 7, 9, 4]
-        res = isotonic_regression(y)
-        # R code
-        # library(monotone)
-        # options(digits=8)
-        # monotone(c(0, 6, 8, 3, 5, 2, 1, 7, 9, 4))
-        x_R = [
-            0, 4.1666667, 4.1666667, 4.1666667, 4.1666667, 4.1666667,
-            4.1666667, 6.6666667, 6.6666667, 6.6666667,
-        ]
-        assert_allclose(res.x, x_R)
-        assert_equal(res.blocks, [0, 1, 7, 10])
-
-        n = 100
-        y = np.linspace(0, 1, num=n, endpoint=False)
-        y = 5 * y + np.sin(10 * y)
-        res = isotonic_regression(y)
-        # R code
-        # library(monotone)
-        # n <- 100
-        # y <- 5 * ((1:n)-1)/n + sin(10 * ((1:n)-1)/n)
-        # options(digits=8)
-        # monotone(y)
-        x_R = [
-            0.00000000, 0.14983342, 0.29866933, 0.44552021, 0.58941834, 0.72942554,
-            0.86464247, 0.99421769, 1.11735609, 1.23332691, 1.34147098, 1.44120736,
-            1.53203909, 1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100,
-            1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100,
-            1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100,
-            1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100,
-            1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100,
-            1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100, 1.57081100,
-            1.57081100, 1.57081100, 1.57081100, 1.62418532, 1.71654534, 1.81773256,
-            1.92723551, 2.04445967, 2.16873336, 2.29931446, 2.43539782, 2.57612334,
-            2.72058450, 2.86783750, 3.01691060, 3.16681390, 3.31654920, 3.46511999,
-            3.61154136, 3.75484992, 3.89411335, 4.02843976, 4.15698660, 4.27896904,
-            4.39366786, 4.50043662, 4.59870810, 4.68799998, 4.76791967, 4.83816823,
-            4.86564130, 4.86564130, 4.86564130, 4.86564130, 4.86564130, 4.86564130,
-            4.86564130, 4.86564130, 4.86564130, 4.86564130, 4.86564130, 4.86564130,
-            4.86564130, 4.86564130, 4.86564130, 4.86564130, 4.86564130, 4.86564130,
-            4.86564130, 4.86564130, 4.86564130, 4.86564130,
-        ]
-        assert_allclose(res.x, x_R)
-
-        # Test increasing
-        assert np.all(np.diff(res.x) >= 0)
-
-        # Test balance property: sum(y) == sum(x)
-        assert_allclose(np.sum(res.x), np.sum(y))
-
-        # Reverse order
-        res_inv = isotonic_regression(-y, increasing=False)
-        assert_allclose(-res_inv.x, res.x)
-        assert_equal(res_inv.blocks, res.blocks)
-
-    def test_readonly(self):
-        x = np.arange(3, dtype=float)
-        w = np.ones(3, dtype=float)
-
-        x.flags.writeable = False
-        w.flags.writeable = False
-
-        res = isotonic_regression(x, weights=w)
-        assert np.all(np.isfinite(res.x))
-        assert np.all(np.isfinite(res.weights))
-        assert np.all(np.isfinite(res.blocks))
-
-    def test_non_contiguous_arrays(self):
-        x = np.arange(10, dtype=float)[::3]
-        w = np.ones(10, dtype=float)[::3]
-        assert not x.flags.c_contiguous
-        assert not x.flags.f_contiguous
-        assert not w.flags.c_contiguous
-        assert not w.flags.f_contiguous
-
-        res = isotonic_regression(x, weights=w)
-        assert np.all(np.isfinite(res.x))
-        assert np.all(np.isfinite(res.weights))
-        assert np.all(np.isfinite(res.blocks))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lbfgsb_hessinv.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lbfgsb_hessinv.py
deleted file mode 100644
index 8e4452cd61c5400c13f4f239055352bae754ad7e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lbfgsb_hessinv.py
+++ /dev/null
@@ -1,43 +0,0 @@
-import numpy as np
-from numpy.testing import assert_allclose
-import scipy.linalg
-from scipy.optimize import minimize
-
-
-def test_1():
-    def f(x):
-        return x**4, 4*x**3
-
-    for gtol in [1e-8, 1e-12, 1e-20]:
-        for maxcor in range(20, 35):
-            result = minimize(fun=f, jac=True, method='L-BFGS-B', x0=20,
-                options={'gtol': gtol, 'maxcor': maxcor})
-
-            H1 = result.hess_inv(np.array([1])).reshape(1,1)
-            H2 = result.hess_inv.todense()
-
-            assert_allclose(H1, H2)
-
-
-def test_2():
-    H0 = [[3, 0], [1, 2]]
-
-    def f(x):
-        return np.dot(x, np.dot(scipy.linalg.inv(H0), x))
-
-    result1 = minimize(fun=f, method='L-BFGS-B', x0=[10, 20])
-    result2 = minimize(fun=f, method='BFGS', x0=[10, 20])
-
-    H1 = result1.hess_inv.todense()
-
-    H2 = np.vstack((
-        result1.hess_inv(np.array([1, 0])),
-        result1.hess_inv(np.array([0, 1]))))
-
-    assert_allclose(
-        result1.hess_inv(np.array([1, 0]).reshape(2,1)).reshape(-1),
-        result1.hess_inv(np.array([1, 0])))
-    assert_allclose(H1, H2)
-    assert_allclose(H1, result2.hess_inv, rtol=1e-2, atol=0.03)
-
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lbfgsb_setulb.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lbfgsb_setulb.py
deleted file mode 100644
index 5b2a75684a27f31c07d5b8b20bd757385554edef..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lbfgsb_setulb.py
+++ /dev/null
@@ -1,128 +0,0 @@
-import numpy as np
-from scipy.optimize import _lbfgsb, minimize
-
-
-def objfun(x):
-    """simplified objective func to test lbfgsb bound violation"""
-    x0 = [0.8750000000000278,
-          0.7500000000000153,
-          0.9499999999999722,
-          0.8214285714285992,
-          0.6363636363636085]
-    x1 = [1.0, 0.0, 1.0, 0.0, 0.0]
-    x2 = [1.0,
-          0.0,
-          0.9889733043149325,
-          0.0,
-          0.026353554421041155]
-    x3 = [1.0,
-          0.0,
-          0.9889917442915558,
-          0.0,
-          0.020341986743231205]
-
-    f0 = 5163.647901211178
-    f1 = 5149.8181642072905
-    f2 = 5149.379332309634
-    f3 = 5149.374490771297
-
-    g0 = np.array([-0.5934820547965749,
-                   1.6251549718258351,
-                   -71.99168459202559,
-                   5.346636965797545,
-                   37.10732723092604])
-    g1 = np.array([-0.43295349282641515,
-                   1.008607936794592,
-                   18.223666726602975,
-                   31.927010036981997,
-                   -19.667512518739386])
-    g2 = np.array([-0.4699874455100256,
-                   0.9466285353668347,
-                   -0.016874360242016825,
-                   48.44999161133457,
-                   5.819631620590712])
-    g3 = np.array([-0.46970678696829116,
-                   0.9612719312174818,
-                   0.006129809488833699,
-                   48.43557729419473,
-                   6.005481418498221])
-
-    if np.allclose(x, x0):
-        f = f0
-        g = g0
-    elif np.allclose(x, x1):
-        f = f1
-        g = g1
-    elif np.allclose(x, x2):
-        f = f2
-        g = g2
-    elif np.allclose(x, x3):
-        f = f3
-        g = g3
-    else:
-        raise ValueError(
-            'Simplified objective function not defined '
-            'at requested point')
-    return (np.copy(f), np.copy(g))
-
-
-def test_setulb_floatround():
-    """test if setulb() violates bounds
-
-    checks for violation due to floating point rounding error
-    """
-
-    n = 5
-    m = 10
-    factr = 1e7
-    pgtol = 1e-5
-    maxls = 20
-    iprint = -1
-    nbd = np.full((n,), 2)
-    low_bnd = np.zeros(n, np.float64)
-    upper_bnd = np.ones(n, np.float64)
-
-    x0 = np.array(
-        [0.8750000000000278,
-         0.7500000000000153,
-         0.9499999999999722,
-         0.8214285714285992,
-         0.6363636363636085])
-    x = np.copy(x0)
-
-    f = np.array(0.0, np.float64)
-    g = np.zeros(n, np.float64)
-
-    fortran_int = _lbfgsb.types.intvar.dtype
-
-    wa = np.zeros(2*m*n + 5*n + 11*m*m + 8*m, np.float64)
-    iwa = np.zeros(3*n, fortran_int)
-    task = np.zeros(1, 'S60')
-    csave = np.zeros(1, 'S60')
-    lsave = np.zeros(4, fortran_int)
-    isave = np.zeros(44, fortran_int)
-    dsave = np.zeros(29, np.float64)
-
-    task[:] = b'START'
-
-    for n_iter in range(7):  # 7 steps required to reproduce error
-        f, g = objfun(x)
-
-        _lbfgsb.setulb(m, x, low_bnd, upper_bnd, nbd, f, g, factr,
-                       pgtol, wa, iwa, task, iprint, csave, lsave,
-                       isave, dsave, maxls)
-
-        assert (x <= upper_bnd).all() and (x >= low_bnd).all(), (
-            "_lbfgsb.setulb() stepped to a point outside of the bounds")
-
-
-def test_gh_issue18730():
-    # issue 18730 reported that l-bfgs-b did not work with objectives
-    # returning single precision gradient arrays
-    def fun_single_precision(x):
-        x = x.astype(np.float32)
-        return np.sum(x**2), (2*x)
-
-    res = minimize(fun_single_precision, x0=np.array([1., 1.]), jac=True,
-                   method="l-bfgs-b")
-    np.testing.assert_allclose(res.fun, 0., atol=1e-15)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_least_squares.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_least_squares.py
deleted file mode 100644
index 68cfc421c987b6cdfcaa6b442bbd7927cf215ac9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_least_squares.py
+++ /dev/null
@@ -1,874 +0,0 @@
-from itertools import product
-
-import numpy as np
-from numpy.linalg import norm
-from numpy.testing import (assert_, assert_allclose,
-                           assert_equal, suppress_warnings)
-import pytest
-from pytest import raises as assert_raises
-from scipy.sparse import issparse, lil_matrix
-from scipy.sparse.linalg import aslinearoperator
-
-from scipy.optimize import least_squares, Bounds
-from scipy.optimize._lsq.least_squares import IMPLEMENTED_LOSSES
-from scipy.optimize._lsq.common import EPS, make_strictly_feasible, CL_scaling_vector
-
-
-def fun_trivial(x, a=0):
-    return (x - a)**2 + 5.0
-
-
-def jac_trivial(x, a=0.0):
-    return 2 * (x - a)
-
-
-def fun_2d_trivial(x):
-    return np.array([x[0], x[1]])
-
-
-def jac_2d_trivial(x):
-    return np.identity(2)
-
-
-def fun_rosenbrock(x):
-    return np.array([10 * (x[1] - x[0]**2), (1 - x[0])])
-
-
-def jac_rosenbrock(x):
-    return np.array([
-        [-20 * x[0], 10],
-        [-1, 0]
-    ])
-
-
-def jac_rosenbrock_bad_dim(x):
-    return np.array([
-        [-20 * x[0], 10],
-        [-1, 0],
-        [0.0, 0.0]
-    ])
-
-
-def fun_rosenbrock_cropped(x):
-    return fun_rosenbrock(x)[0]
-
-
-def jac_rosenbrock_cropped(x):
-    return jac_rosenbrock(x)[0]
-
-
-# When x is 1-D array, return is 2-D array.
-def fun_wrong_dimensions(x):
-    return np.array([x, x**2, x**3])
-
-
-def jac_wrong_dimensions(x, a=0.0):
-    return np.atleast_3d(jac_trivial(x, a=a))
-
-
-def fun_bvp(x):
-    n = int(np.sqrt(x.shape[0]))
-    u = np.zeros((n + 2, n + 2))
-    x = x.reshape((n, n))
-    u[1:-1, 1:-1] = x
-    y = u[:-2, 1:-1] + u[2:, 1:-1] + u[1:-1, :-2] + u[1:-1, 2:] - 4 * x + x**3
-    return y.ravel()
-
-
-class BroydenTridiagonal:
-    def __init__(self, n=100, mode='sparse'):
-        np.random.seed(0)
-
-        self.n = n
-
-        self.x0 = -np.ones(n)
-        self.lb = np.linspace(-2, -1.5, n)
-        self.ub = np.linspace(-0.8, 0.0, n)
-
-        self.lb += 0.1 * np.random.randn(n)
-        self.ub += 0.1 * np.random.randn(n)
-
-        self.x0 += 0.1 * np.random.randn(n)
-        self.x0 = make_strictly_feasible(self.x0, self.lb, self.ub)
-
-        if mode == 'sparse':
-            self.sparsity = lil_matrix((n, n), dtype=int)
-            i = np.arange(n)
-            self.sparsity[i, i] = 1
-            i = np.arange(1, n)
-            self.sparsity[i, i - 1] = 1
-            i = np.arange(n - 1)
-            self.sparsity[i, i + 1] = 1
-
-            self.jac = self._jac
-        elif mode == 'operator':
-            self.jac = lambda x: aslinearoperator(self._jac(x))
-        elif mode == 'dense':
-            self.sparsity = None
-            self.jac = lambda x: self._jac(x).toarray()
-        else:
-            assert_(False)
-
-    def fun(self, x):
-        f = (3 - x) * x + 1
-        f[1:] -= x[:-1]
-        f[:-1] -= 2 * x[1:]
-        return f
-
-    def _jac(self, x):
-        J = lil_matrix((self.n, self.n))
-        i = np.arange(self.n)
-        J[i, i] = 3 - 2 * x
-        i = np.arange(1, self.n)
-        J[i, i - 1] = -1
-        i = np.arange(self.n - 1)
-        J[i, i + 1] = -2
-        return J
-
-
-class ExponentialFittingProblem:
-    """Provide data and function for exponential fitting in the form
-    y = a + exp(b * x) + noise."""
-
-    def __init__(self, a, b, noise, n_outliers=1, x_range=(-1, 1),
-                 n_points=11, random_seed=None):
-        np.random.seed(random_seed)
-        self.m = n_points
-        self.n = 2
-
-        self.p0 = np.zeros(2)
-        self.x = np.linspace(x_range[0], x_range[1], n_points)
-
-        self.y = a + np.exp(b * self.x)
-        self.y += noise * np.random.randn(self.m)
-
-        outliers = np.random.randint(0, self.m, n_outliers)
-        self.y[outliers] += 50 * noise * np.random.rand(n_outliers)
-
-        self.p_opt = np.array([a, b])
-
-    def fun(self, p):
-        return p[0] + np.exp(p[1] * self.x) - self.y
-
-    def jac(self, p):
-        J = np.empty((self.m, self.n))
-        J[:, 0] = 1
-        J[:, 1] = self.x * np.exp(p[1] * self.x)
-        return J
-
-
-def cubic_soft_l1(z):
-    rho = np.empty((3, z.size))
-
-    t = 1 + z
-    rho[0] = 3 * (t**(1/3) - 1)
-    rho[1] = t ** (-2/3)
-    rho[2] = -2/3 * t**(-5/3)
-
-    return rho
-
-
-LOSSES = list(IMPLEMENTED_LOSSES.keys()) + [cubic_soft_l1]
-
-
-class BaseMixin:
-    def test_basic(self):
-        # Test that the basic calling sequence works.
-        res = least_squares(fun_trivial, 2., method=self.method)
-        assert_allclose(res.x, 0, atol=1e-4)
-        assert_allclose(res.fun, fun_trivial(res.x))
-
-    def test_args_kwargs(self):
-        # Test that args and kwargs are passed correctly to the functions.
-        a = 3.0
-        for jac in ['2-point', '3-point', 'cs', jac_trivial]:
-            with suppress_warnings() as sup:
-                sup.filter(
-                    UserWarning,
-                    "jac='(3-point|cs)' works equivalently to '2-point' for method='lm'"
-                )
-                res = least_squares(fun_trivial, 2.0, jac, args=(a,),
-                                    method=self.method)
-                res1 = least_squares(fun_trivial, 2.0, jac, kwargs={'a': a},
-                                    method=self.method)
-
-            assert_allclose(res.x, a, rtol=1e-4)
-            assert_allclose(res1.x, a, rtol=1e-4)
-
-            assert_raises(TypeError, least_squares, fun_trivial, 2.0,
-                          args=(3, 4,), method=self.method)
-            assert_raises(TypeError, least_squares, fun_trivial, 2.0,
-                          kwargs={'kaboom': 3}, method=self.method)
-
-    def test_jac_options(self):
-        for jac in ['2-point', '3-point', 'cs', jac_trivial]:
-            with suppress_warnings() as sup:
-                sup.filter(
-                    UserWarning,
-                    "jac='(3-point|cs)' works equivalently to '2-point' for method='lm'"
-                )
-                res = least_squares(fun_trivial, 2.0, jac, method=self.method)
-            assert_allclose(res.x, 0, atol=1e-4)
-
-        assert_raises(ValueError, least_squares, fun_trivial, 2.0, jac='oops',
-                      method=self.method)
-
-    def test_nfev_options(self):
-        for max_nfev in [None, 20]:
-            res = least_squares(fun_trivial, 2.0, max_nfev=max_nfev,
-                                method=self.method)
-            assert_allclose(res.x, 0, atol=1e-4)
-
-    def test_x_scale_options(self):
-        for x_scale in [1.0, np.array([0.5]), 'jac']:
-            res = least_squares(fun_trivial, 2.0, x_scale=x_scale)
-            assert_allclose(res.x, 0)
-        assert_raises(ValueError, least_squares, fun_trivial,
-                      2.0, x_scale='auto', method=self.method)
-        assert_raises(ValueError, least_squares, fun_trivial,
-                      2.0, x_scale=-1.0, method=self.method)
-        assert_raises(ValueError, least_squares, fun_trivial,
-                      2.0, x_scale=None, method=self.method)
-        assert_raises(ValueError, least_squares, fun_trivial,
-                      2.0, x_scale=1.0+2.0j, method=self.method)
-
-    def test_diff_step(self):
-        # res1 and res2 should be equivalent.
-        # res2 and res3 should be different.
-        res1 = least_squares(fun_trivial, 2.0, diff_step=1e-1,
-                             method=self.method)
-        res2 = least_squares(fun_trivial, 2.0, diff_step=-1e-1,
-                             method=self.method)
-        res3 = least_squares(fun_trivial, 2.0,
-                             diff_step=None, method=self.method)
-        assert_allclose(res1.x, 0, atol=1e-4)
-        assert_allclose(res2.x, 0, atol=1e-4)
-        assert_allclose(res3.x, 0, atol=1e-4)
-        assert_equal(res1.x, res2.x)
-        assert_equal(res1.nfev, res2.nfev)
-
-    def test_incorrect_options_usage(self):
-        assert_raises(TypeError, least_squares, fun_trivial, 2.0,
-                      method=self.method, options={'no_such_option': 100})
-        assert_raises(TypeError, least_squares, fun_trivial, 2.0,
-                      method=self.method, options={'max_nfev': 100})
-
-    def test_full_result(self):
-        # MINPACK doesn't work very well with factor=100 on this problem,
-        # thus using low 'atol'.
-        res = least_squares(fun_trivial, 2.0, method=self.method)
-        assert_allclose(res.x, 0, atol=1e-4)
-        assert_allclose(res.cost, 12.5)
-        assert_allclose(res.fun, 5)
-        assert_allclose(res.jac, 0, atol=1e-4)
-        assert_allclose(res.grad, 0, atol=1e-2)
-        assert_allclose(res.optimality, 0, atol=1e-2)
-        assert_equal(res.active_mask, 0)
-        if self.method == 'lm':
-            assert_(res.nfev < 30)
-            assert_(res.njev is None)
-        else:
-            assert_(res.nfev < 10)
-            assert_(res.njev < 10)
-        assert_(res.status > 0)
-        assert_(res.success)
-
-    def test_full_result_single_fev(self):
-        # MINPACK checks the number of nfev after the iteration,
-        # so it's hard to tell what he is going to compute.
-        if self.method == 'lm':
-            return
-
-        res = least_squares(fun_trivial, 2.0, method=self.method,
-                            max_nfev=1)
-        assert_equal(res.x, np.array([2]))
-        assert_equal(res.cost, 40.5)
-        assert_equal(res.fun, np.array([9]))
-        assert_equal(res.jac, np.array([[4]]))
-        assert_equal(res.grad, np.array([36]))
-        assert_equal(res.optimality, 36)
-        assert_equal(res.active_mask, np.array([0]))
-        assert_equal(res.nfev, 1)
-        assert_equal(res.njev, 1)
-        assert_equal(res.status, 0)
-        assert_equal(res.success, 0)
-
-    def test_rosenbrock(self):
-        x0 = [-2, 1]
-        x_opt = [1, 1]
-        for jac, x_scale, tr_solver in product(
-                ['2-point', '3-point', 'cs', jac_rosenbrock],
-                [1.0, np.array([1.0, 0.2]), 'jac'],
-                ['exact', 'lsmr']):
-            with suppress_warnings() as sup:
-                sup.filter(
-                    UserWarning,
-                    "jac='(3-point|cs)' works equivalently to '2-point' for method='lm'"
-                )
-                res = least_squares(fun_rosenbrock, x0, jac, x_scale=x_scale,
-                                    tr_solver=tr_solver, method=self.method)
-            assert_allclose(res.x, x_opt)
-
-    def test_rosenbrock_cropped(self):
-        x0 = [-2, 1]
-        if self.method == 'lm':
-            assert_raises(ValueError, least_squares, fun_rosenbrock_cropped,
-                          x0, method='lm')
-        else:
-            for jac, x_scale, tr_solver in product(
-                    ['2-point', '3-point', 'cs', jac_rosenbrock_cropped],
-                    [1.0, np.array([1.0, 0.2]), 'jac'],
-                    ['exact', 'lsmr']):
-                res = least_squares(
-                    fun_rosenbrock_cropped, x0, jac, x_scale=x_scale,
-                    tr_solver=tr_solver, method=self.method)
-                assert_allclose(res.cost, 0, atol=1e-14)
-
-    def test_fun_wrong_dimensions(self):
-        assert_raises(ValueError, least_squares, fun_wrong_dimensions,
-                      2.0, method=self.method)
-
-    def test_jac_wrong_dimensions(self):
-        assert_raises(ValueError, least_squares, fun_trivial,
-                      2.0, jac_wrong_dimensions, method=self.method)
-
-    def test_fun_and_jac_inconsistent_dimensions(self):
-        x0 = [1, 2]
-        assert_raises(ValueError, least_squares, fun_rosenbrock, x0,
-                      jac_rosenbrock_bad_dim, method=self.method)
-
-    def test_x0_multidimensional(self):
-        x0 = np.ones(4).reshape(2, 2)
-        assert_raises(ValueError, least_squares, fun_trivial, x0,
-                      method=self.method)
-
-    def test_x0_complex_scalar(self):
-        x0 = 2.0 + 0.0*1j
-        assert_raises(ValueError, least_squares, fun_trivial, x0,
-                      method=self.method)
-
-    def test_x0_complex_array(self):
-        x0 = [1.0, 2.0 + 0.0*1j]
-        assert_raises(ValueError, least_squares, fun_trivial, x0,
-                      method=self.method)
-
-    def test_bvp(self):
-        # This test was introduced with fix #5556. It turned out that
-        # dogbox solver had a bug with trust-region radius update, which
-        # could block its progress and create an infinite loop. And this
-        # discrete boundary value problem is the one which triggers it.
-        n = 10
-        x0 = np.ones(n**2)
-        if self.method == 'lm':
-            max_nfev = 5000  # To account for Jacobian estimation.
-        else:
-            max_nfev = 100
-        res = least_squares(fun_bvp, x0, ftol=1e-2, method=self.method,
-                            max_nfev=max_nfev)
-
-        assert_(res.nfev < max_nfev)
-        assert_(res.cost < 0.5)
-
-    def test_error_raised_when_all_tolerances_below_eps(self):
-        # Test that all 0 tolerances are not allowed.
-        assert_raises(ValueError, least_squares, fun_trivial, 2.0,
-                      method=self.method, ftol=None, xtol=None, gtol=None)
-
-    def test_convergence_with_only_one_tolerance_enabled(self):
-        if self.method == 'lm':
-            return  # should not do test
-        x0 = [-2, 1]
-        x_opt = [1, 1]
-        for ftol, xtol, gtol in [(1e-8, None, None),
-                                  (None, 1e-8, None),
-                                  (None, None, 1e-8)]:
-            res = least_squares(fun_rosenbrock, x0, jac=jac_rosenbrock,
-                                ftol=ftol, gtol=gtol, xtol=xtol,
-                                method=self.method)
-            assert_allclose(res.x, x_opt)
-
-
-class BoundsMixin:
-    def test_inconsistent(self):
-        assert_raises(ValueError, least_squares, fun_trivial, 2.0,
-                      bounds=(10.0, 0.0), method=self.method)
-
-    def test_infeasible(self):
-        assert_raises(ValueError, least_squares, fun_trivial, 2.0,
-                      bounds=(3., 4), method=self.method)
-
-    def test_wrong_number(self):
-        assert_raises(ValueError, least_squares, fun_trivial, 2.,
-                      bounds=(1., 2, 3), method=self.method)
-
-    def test_inconsistent_shape(self):
-        assert_raises(ValueError, least_squares, fun_trivial, 2.0,
-                      bounds=(1.0, [2.0, 3.0]), method=self.method)
-        # 1-D array wont't be broadcasted
-        assert_raises(ValueError, least_squares, fun_rosenbrock, [1.0, 2.0],
-                      bounds=([0.0], [3.0, 4.0]), method=self.method)
-
-    def test_in_bounds(self):
-        for jac in ['2-point', '3-point', 'cs', jac_trivial]:
-            res = least_squares(fun_trivial, 2.0, jac=jac,
-                                bounds=(-1.0, 3.0), method=self.method)
-            assert_allclose(res.x, 0.0, atol=1e-4)
-            assert_equal(res.active_mask, [0])
-            assert_(-1 <= res.x <= 3)
-            res = least_squares(fun_trivial, 2.0, jac=jac,
-                                bounds=(0.5, 3.0), method=self.method)
-            assert_allclose(res.x, 0.5, atol=1e-4)
-            assert_equal(res.active_mask, [-1])
-            assert_(0.5 <= res.x <= 3)
-
-    def test_bounds_shape(self):
-        def get_bounds_direct(lb, ub):
-            return lb, ub
-
-        def get_bounds_instances(lb, ub):
-            return Bounds(lb, ub)
-
-        for jac in ['2-point', '3-point', 'cs', jac_2d_trivial]:
-            for bounds_func in [get_bounds_direct, get_bounds_instances]:
-                x0 = [1.0, 1.0]
-                res = least_squares(fun_2d_trivial, x0, jac=jac)
-                assert_allclose(res.x, [0.0, 0.0])
-                res = least_squares(fun_2d_trivial, x0, jac=jac,
-                                    bounds=bounds_func(0.5, [2.0, 2.0]),
-                                    method=self.method)
-                assert_allclose(res.x, [0.5, 0.5])
-                res = least_squares(fun_2d_trivial, x0, jac=jac,
-                                    bounds=bounds_func([0.3, 0.2], 3.0),
-                                    method=self.method)
-                assert_allclose(res.x, [0.3, 0.2])
-                res = least_squares(
-                    fun_2d_trivial, x0, jac=jac,
-                    bounds=bounds_func([-1, 0.5], [1.0, 3.0]),
-                    method=self.method)
-                assert_allclose(res.x, [0.0, 0.5], atol=1e-5)
-
-    def test_bounds_instances(self):
-        res = least_squares(fun_trivial, 0.5, bounds=Bounds())
-        assert_allclose(res.x, 0.0, atol=1e-4)
-
-        res = least_squares(fun_trivial, 3.0, bounds=Bounds(lb=1.0))
-        assert_allclose(res.x, 1.0, atol=1e-4)
-
-        res = least_squares(fun_trivial, 0.5, bounds=Bounds(lb=-1.0, ub=1.0))
-        assert_allclose(res.x, 0.0, atol=1e-4)
-
-        res = least_squares(fun_trivial, -3.0, bounds=Bounds(ub=-1.0))
-        assert_allclose(res.x, -1.0, atol=1e-4)
-
-        res = least_squares(fun_2d_trivial, [0.5, 0.5],
-                            bounds=Bounds(lb=[-1.0, -1.0], ub=1.0))
-        assert_allclose(res.x, [0.0, 0.0], atol=1e-5)
-
-        res = least_squares(fun_2d_trivial, [0.5, 0.5],
-                            bounds=Bounds(lb=[0.1, 0.1]))
-        assert_allclose(res.x, [0.1, 0.1], atol=1e-5)
-
-    @pytest.mark.fail_slow(5)
-    def test_rosenbrock_bounds(self):
-        x0_1 = np.array([-2.0, 1.0])
-        x0_2 = np.array([2.0, 2.0])
-        x0_3 = np.array([-2.0, 2.0])
-        x0_4 = np.array([0.0, 2.0])
-        x0_5 = np.array([-1.2, 1.0])
-        problems = [
-            (x0_1, ([-np.inf, -1.5], np.inf)),
-            (x0_2, ([-np.inf, 1.5], np.inf)),
-            (x0_3, ([-np.inf, 1.5], np.inf)),
-            (x0_4, ([-np.inf, 1.5], [1.0, np.inf])),
-            (x0_2, ([1.0, 1.5], [3.0, 3.0])),
-            (x0_5, ([-50.0, 0.0], [0.5, 100]))
-        ]
-        for x0, bounds in problems:
-            for jac, x_scale, tr_solver in product(
-                    ['2-point', '3-point', 'cs', jac_rosenbrock],
-                    [1.0, [1.0, 0.5], 'jac'],
-                    ['exact', 'lsmr']):
-                res = least_squares(fun_rosenbrock, x0, jac, bounds,
-                                    x_scale=x_scale, tr_solver=tr_solver,
-                                    method=self.method)
-                assert_allclose(res.optimality, 0.0, atol=1e-5)
-
-
-class SparseMixin:
-    def test_exact_tr_solver(self):
-        p = BroydenTridiagonal()
-        assert_raises(ValueError, least_squares, p.fun, p.x0, p.jac,
-                      tr_solver='exact', method=self.method)
-        assert_raises(ValueError, least_squares, p.fun, p.x0,
-                      tr_solver='exact', jac_sparsity=p.sparsity,
-                      method=self.method)
-
-    def test_equivalence(self):
-        sparse = BroydenTridiagonal(mode='sparse')
-        dense = BroydenTridiagonal(mode='dense')
-        res_sparse = least_squares(
-            sparse.fun, sparse.x0, jac=sparse.jac,
-            method=self.method)
-        res_dense = least_squares(
-            dense.fun, dense.x0, jac=sparse.jac,
-            method=self.method)
-        assert_equal(res_sparse.nfev, res_dense.nfev)
-        assert_allclose(res_sparse.x, res_dense.x, atol=1e-20)
-        assert_allclose(res_sparse.cost, 0, atol=1e-20)
-        assert_allclose(res_dense.cost, 0, atol=1e-20)
-
-    def test_tr_options(self):
-        p = BroydenTridiagonal()
-        res = least_squares(p.fun, p.x0, p.jac, method=self.method,
-                            tr_options={'btol': 1e-10})
-        assert_allclose(res.cost, 0, atol=1e-20)
-
-    def test_wrong_parameters(self):
-        p = BroydenTridiagonal()
-        assert_raises(ValueError, least_squares, p.fun, p.x0, p.jac,
-                      tr_solver='best', method=self.method)
-        assert_raises(TypeError, least_squares, p.fun, p.x0, p.jac,
-                      tr_solver='lsmr', tr_options={'tol': 1e-10})
-
-    def test_solver_selection(self):
-        sparse = BroydenTridiagonal(mode='sparse')
-        dense = BroydenTridiagonal(mode='dense')
-        res_sparse = least_squares(sparse.fun, sparse.x0, jac=sparse.jac,
-                                   method=self.method)
-        res_dense = least_squares(dense.fun, dense.x0, jac=dense.jac,
-                                  method=self.method)
-        assert_allclose(res_sparse.cost, 0, atol=1e-20)
-        assert_allclose(res_dense.cost, 0, atol=1e-20)
-        assert_(issparse(res_sparse.jac))
-        assert_(isinstance(res_dense.jac, np.ndarray))
-
-    def test_numerical_jac(self):
-        p = BroydenTridiagonal()
-        for jac in ['2-point', '3-point', 'cs']:
-            res_dense = least_squares(p.fun, p.x0, jac, method=self.method)
-            res_sparse = least_squares(
-                p.fun, p.x0, jac,method=self.method,
-                jac_sparsity=p.sparsity)
-            assert_equal(res_dense.nfev, res_sparse.nfev)
-            assert_allclose(res_dense.x, res_sparse.x, atol=1e-20)
-            assert_allclose(res_dense.cost, 0, atol=1e-20)
-            assert_allclose(res_sparse.cost, 0, atol=1e-20)
-
-    @pytest.mark.fail_slow(5)
-    def test_with_bounds(self):
-        p = BroydenTridiagonal()
-        for jac, jac_sparsity in product(
-                [p.jac, '2-point', '3-point', 'cs'], [None, p.sparsity]):
-            res_1 = least_squares(
-                p.fun, p.x0, jac, bounds=(p.lb, np.inf),
-                method=self.method,jac_sparsity=jac_sparsity)
-            res_2 = least_squares(
-                p.fun, p.x0, jac, bounds=(-np.inf, p.ub),
-                method=self.method, jac_sparsity=jac_sparsity)
-            res_3 = least_squares(
-                p.fun, p.x0, jac, bounds=(p.lb, p.ub),
-                method=self.method, jac_sparsity=jac_sparsity)
-            assert_allclose(res_1.optimality, 0, atol=1e-10)
-            assert_allclose(res_2.optimality, 0, atol=1e-10)
-            assert_allclose(res_3.optimality, 0, atol=1e-10)
-
-    def test_wrong_jac_sparsity(self):
-        p = BroydenTridiagonal()
-        sparsity = p.sparsity[:-1]
-        assert_raises(ValueError, least_squares, p.fun, p.x0,
-                      jac_sparsity=sparsity, method=self.method)
-
-    def test_linear_operator(self):
-        p = BroydenTridiagonal(mode='operator')
-        res = least_squares(p.fun, p.x0, p.jac, method=self.method)
-        assert_allclose(res.cost, 0.0, atol=1e-20)
-        assert_raises(ValueError, least_squares, p.fun, p.x0, p.jac,
-                      method=self.method, tr_solver='exact')
-
-    def test_x_scale_jac_scale(self):
-        p = BroydenTridiagonal()
-        res = least_squares(p.fun, p.x0, p.jac, method=self.method,
-                            x_scale='jac')
-        assert_allclose(res.cost, 0.0, atol=1e-20)
-
-        p = BroydenTridiagonal(mode='operator')
-        assert_raises(ValueError, least_squares, p.fun, p.x0, p.jac,
-                      method=self.method, x_scale='jac')
-
-
-class LossFunctionMixin:
-    def test_options(self):
-        for loss in LOSSES:
-            res = least_squares(fun_trivial, 2.0, loss=loss,
-                                method=self.method)
-            assert_allclose(res.x, 0, atol=1e-15)
-
-        assert_raises(ValueError, least_squares, fun_trivial, 2.0,
-                      loss='hinge', method=self.method)
-
-    def test_fun(self):
-        # Test that res.fun is actual residuals, and not modified by loss
-        # function stuff.
-        for loss in LOSSES:
-            res = least_squares(fun_trivial, 2.0, loss=loss,
-                                method=self.method)
-            assert_equal(res.fun, fun_trivial(res.x))
-
-    def test_grad(self):
-        # Test that res.grad is true gradient of loss function at the
-        # solution. Use max_nfev = 1, to avoid reaching minimum.
-        x = np.array([2.0])  # res.x will be this.
-
-        res = least_squares(fun_trivial, x, jac_trivial, loss='linear',
-                            max_nfev=1, method=self.method)
-        assert_equal(res.grad, 2 * x * (x**2 + 5))
-
-        res = least_squares(fun_trivial, x, jac_trivial, loss='huber',
-                            max_nfev=1, method=self.method)
-        assert_equal(res.grad, 2 * x)
-
-        res = least_squares(fun_trivial, x, jac_trivial, loss='soft_l1',
-                            max_nfev=1, method=self.method)
-        assert_allclose(res.grad,
-                        2 * x * (x**2 + 5) / (1 + (x**2 + 5)**2)**0.5)
-
-        res = least_squares(fun_trivial, x, jac_trivial, loss='cauchy',
-                            max_nfev=1, method=self.method)
-        assert_allclose(res.grad, 2 * x * (x**2 + 5) / (1 + (x**2 + 5)**2))
-
-        res = least_squares(fun_trivial, x, jac_trivial, loss='arctan',
-                            max_nfev=1, method=self.method)
-        assert_allclose(res.grad, 2 * x * (x**2 + 5) / (1 + (x**2 + 5)**4))
-
-        res = least_squares(fun_trivial, x, jac_trivial, loss=cubic_soft_l1,
-                            max_nfev=1, method=self.method)
-        assert_allclose(res.grad,
-                        2 * x * (x**2 + 5) / (1 + (x**2 + 5)**2)**(2/3))
-
-    def test_jac(self):
-        # Test that res.jac.T.dot(res.jac) gives Gauss-Newton approximation
-        # of Hessian. This approximation is computed by doubly differentiating
-        # the cost function and dropping the part containing second derivative
-        # of f. For a scalar function it is computed as
-        # H = (rho' + 2 * rho'' * f**2) * f'**2, if the expression inside the
-        # brackets is less than EPS it is replaced by EPS. Here, we check
-        # against the root of H.
-
-        x = 2.0  # res.x will be this.
-        f = x**2 + 5  # res.fun will be this.
-
-        res = least_squares(fun_trivial, x, jac_trivial, loss='linear',
-                            max_nfev=1, method=self.method)
-        assert_equal(res.jac, 2 * x)
-
-        # For `huber` loss the Jacobian correction is identically zero
-        # in outlier region, in such cases it is modified to be equal EPS**0.5.
-        res = least_squares(fun_trivial, x, jac_trivial, loss='huber',
-                            max_nfev=1, method=self.method)
-        assert_equal(res.jac, 2 * x * EPS**0.5)
-
-        # Now, let's apply `loss_scale` to turn the residual into an inlier.
-        # The loss function becomes linear.
-        res = least_squares(fun_trivial, x, jac_trivial, loss='huber',
-                            f_scale=10, max_nfev=1)
-        assert_equal(res.jac, 2 * x)
-
-        # 'soft_l1' always gives a positive scaling.
-        res = least_squares(fun_trivial, x, jac_trivial, loss='soft_l1',
-                            max_nfev=1, method=self.method)
-        assert_allclose(res.jac, 2 * x * (1 + f**2)**-0.75)
-
-        # For 'cauchy' the correction term turns out to be negative, and it
-        # replaced by EPS**0.5.
-        res = least_squares(fun_trivial, x, jac_trivial, loss='cauchy',
-                            max_nfev=1, method=self.method)
-        assert_allclose(res.jac, 2 * x * EPS**0.5)
-
-        # Now use scaling to turn the residual to inlier.
-        res = least_squares(fun_trivial, x, jac_trivial, loss='cauchy',
-                            f_scale=10, max_nfev=1, method=self.method)
-        fs = f / 10
-        assert_allclose(res.jac, 2 * x * (1 - fs**2)**0.5 / (1 + fs**2))
-
-        # 'arctan' gives an outlier.
-        res = least_squares(fun_trivial, x, jac_trivial, loss='arctan',
-                            max_nfev=1, method=self.method)
-        assert_allclose(res.jac, 2 * x * EPS**0.5)
-
-        # Turn to inlier.
-        res = least_squares(fun_trivial, x, jac_trivial, loss='arctan',
-                            f_scale=20.0, max_nfev=1, method=self.method)
-        fs = f / 20
-        assert_allclose(res.jac, 2 * x * (1 - 3 * fs**4)**0.5 / (1 + fs**4))
-
-        # cubic_soft_l1 will give an outlier.
-        res = least_squares(fun_trivial, x, jac_trivial, loss=cubic_soft_l1,
-                            max_nfev=1)
-        assert_allclose(res.jac, 2 * x * EPS**0.5)
-
-        # Turn to inlier.
-        res = least_squares(fun_trivial, x, jac_trivial,
-                            loss=cubic_soft_l1, f_scale=6, max_nfev=1)
-        fs = f / 6
-        assert_allclose(res.jac,
-                        2 * x * (1 - fs**2 / 3)**0.5 * (1 + fs**2)**(-5/6))
-
-    def test_robustness(self):
-        for noise in [0.1, 1.0]:
-            p = ExponentialFittingProblem(1, 0.1, noise, random_seed=0)
-
-            for jac in ['2-point', '3-point', 'cs', p.jac]:
-                res_lsq = least_squares(p.fun, p.p0, jac=jac,
-                                        method=self.method)
-                assert_allclose(res_lsq.optimality, 0, atol=1e-2)
-                for loss in LOSSES:
-                    if loss == 'linear':
-                        continue
-                    res_robust = least_squares(
-                        p.fun, p.p0, jac=jac, loss=loss, f_scale=noise,
-                        method=self.method)
-                    assert_allclose(res_robust.optimality, 0, atol=1e-2)
-                    assert_(norm(res_robust.x - p.p_opt) <
-                            norm(res_lsq.x - p.p_opt))
-
-
-class TestDogbox(BaseMixin, BoundsMixin, SparseMixin, LossFunctionMixin):
-    method = 'dogbox'
-
-
-class TestTRF(BaseMixin, BoundsMixin, SparseMixin, LossFunctionMixin):
-    method = 'trf'
-
-    def test_lsmr_regularization(self):
-        p = BroydenTridiagonal()
-        for regularize in [True, False]:
-            res = least_squares(p.fun, p.x0, p.jac, method='trf',
-                                tr_options={'regularize': regularize})
-            assert_allclose(res.cost, 0, atol=1e-20)
-
-
-class TestLM(BaseMixin):
-    method = 'lm'
-
-    def test_bounds_not_supported(self):
-        assert_raises(ValueError, least_squares, fun_trivial,
-                      2.0, bounds=(-3.0, 3.0), method='lm')
-
-    def test_m_less_n_not_supported(self):
-        x0 = [-2, 1]
-        assert_raises(ValueError, least_squares, fun_rosenbrock_cropped, x0,
-                      method='lm')
-
-    def test_sparse_not_supported(self):
-        p = BroydenTridiagonal()
-        assert_raises(ValueError, least_squares, p.fun, p.x0, p.jac,
-                      method='lm')
-
-    def test_jac_sparsity_not_supported(self):
-        assert_raises(ValueError, least_squares, fun_trivial, 2.0,
-                      jac_sparsity=[1], method='lm')
-
-    def test_LinearOperator_not_supported(self):
-        p = BroydenTridiagonal(mode="operator")
-        assert_raises(ValueError, least_squares, p.fun, p.x0, p.jac,
-                      method='lm')
-
-    def test_loss(self):
-        res = least_squares(fun_trivial, 2.0, loss='linear', method='lm')
-        assert_allclose(res.x, 0.0, atol=1e-4)
-
-        assert_raises(ValueError, least_squares, fun_trivial, 2.0,
-                      method='lm', loss='huber')
-
-
-def test_basic():
-    # test that 'method' arg is really optional
-    res = least_squares(fun_trivial, 2.0)
-    assert_allclose(res.x, 0, atol=1e-10)
-
-
-def test_small_tolerances_for_lm():
-    for ftol, xtol, gtol in [(None, 1e-13, 1e-13),
-                             (1e-13, None, 1e-13),
-                             (1e-13, 1e-13, None)]:
-        assert_raises(ValueError, least_squares, fun_trivial, 2.0, xtol=xtol,
-                      ftol=ftol, gtol=gtol, method='lm')
-
-
-def test_fp32_gh12991():
-    # checks that smaller FP sizes can be used in least_squares
-    # this is the minimum working example reported for gh12991
-    np.random.seed(1)
-
-    x = np.linspace(0, 1, 100).astype("float32")
-    y = np.random.random(100).astype("float32")
-
-    def func(p, x):
-        return p[0] + p[1] * x
-
-    def err(p, x, y):
-        return func(p, x) - y
-
-    res = least_squares(err, [-1.0, -1.0], args=(x, y))
-    # previously the initial jacobian calculated for this would be all 0
-    # and the minimize would terminate immediately, with nfev=1, would
-    # report a successful minimization (it shouldn't have done), but be
-    # unchanged from the initial solution.
-    # It was terminating early because the underlying approx_derivative
-    # used a step size for FP64 when the working space was FP32.
-    assert res.nfev > 2
-    assert_allclose(res.x, np.array([0.4082241, 0.15530563]), atol=5e-5)
-
-
-def test_gh_18793_and_19351():
-    answer = 1e-12
-    initial_guess = 1.1e-12
-
-    def chi2(x):
-        return (x-answer)**2
-
-    gtol = 1e-15
-    res = least_squares(chi2, x0=initial_guess, gtol=1e-15, bounds=(0, np.inf))
-    # Original motivation: gh-18793
-    # if we choose an initial condition that is close to the solution
-    # we shouldn't return an answer that is further away from the solution
-
-    # Update: gh-19351
-    # However this requirement does not go well with 'trf' algorithm logic.
-    # Some regressions were reported after the presumed fix.
-    # The returned solution is good as long as it satisfies the convergence
-    # conditions.
-    # Specifically in this case the scaled gradient will be sufficiently low.
-
-    scaling, _ = CL_scaling_vector(res.x, res.grad,
-                                   np.atleast_1d(0), np.atleast_1d(np.inf))
-    assert res.status == 1  # Converged by gradient
-    assert np.linalg.norm(res.grad * scaling, ord=np.inf) < gtol
-
-
-def test_gh_19103():
-    # Checks that least_squares trf method selects a strictly feasible point,
-    # and thus succeeds instead of failing,
-    # when the initial guess is reported exactly at a boundary point.
-    # This is a reduced example from gh191303
-
-    ydata = np.array([0.] * 66 + [
-        1., 0., 0., 0., 0., 0., 1., 1., 0., 0., 1.,
-        1., 1., 1., 0., 0., 0., 1., 0., 0., 2., 1.,
-        0., 3., 1., 6., 5., 0., 0., 2., 8., 4., 4.,
-        6., 9., 7., 2., 7., 8., 2., 13., 9., 8., 11.,
-        10., 13., 14., 19., 11., 15., 18., 26., 19., 32., 29.,
-        28., 36., 32., 35., 36., 43., 52., 32., 58., 56., 52.,
-        67., 53., 72., 88., 77., 95., 94., 84., 86., 101., 107.,
-        108., 118., 96., 115., 138., 137.,
-    ])
-    xdata = np.arange(0, ydata.size) * 0.1
-
-    def exponential_wrapped(params):
-        A, B, x0 = params
-        return A * np.exp(B * (xdata - x0)) - ydata
-
-    x0 = [0.01, 1., 5.]
-    bounds = ((0.01, 0, 0), (np.inf, 10, 20.9))
-    res = least_squares(exponential_wrapped, x0, method='trf', bounds=bounds)
-    assert res.success
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_linear_assignment.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_linear_assignment.py
deleted file mode 100644
index d59792da9eef38e313eaa0bca70f873627f8d3cf..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_linear_assignment.py
+++ /dev/null
@@ -1,116 +0,0 @@
-# Author: Brian M. Clapper, G. Varoquaux, Lars Buitinck
-# License: BSD
-
-from numpy.testing import assert_array_equal
-import pytest
-
-import numpy as np
-
-from scipy.optimize import linear_sum_assignment
-from scipy.sparse import random
-from scipy.sparse._sputils import matrix
-from scipy.sparse.csgraph import min_weight_full_bipartite_matching
-from scipy.sparse.csgraph.tests.test_matching import (
-    linear_sum_assignment_assertions, linear_sum_assignment_test_cases
-)
-
-
-def test_linear_sum_assignment_input_shape():
-    with pytest.raises(ValueError, match="expected a matrix"):
-        linear_sum_assignment([1, 2, 3])
-
-
-def test_linear_sum_assignment_input_object():
-    C = [[1, 2, 3], [4, 5, 6]]
-    assert_array_equal(linear_sum_assignment(C),
-                       linear_sum_assignment(np.asarray(C)))
-    assert_array_equal(linear_sum_assignment(C),
-                       linear_sum_assignment(matrix(C)))
-
-
-def test_linear_sum_assignment_input_bool():
-    I = np.identity(3)
-    assert_array_equal(linear_sum_assignment(I.astype(np.bool_)),
-                       linear_sum_assignment(I))
-
-
-def test_linear_sum_assignment_input_string():
-    I = np.identity(3)
-    with pytest.raises(TypeError, match="Cannot cast array data"):
-        linear_sum_assignment(I.astype(str))
-
-
-def test_linear_sum_assignment_input_nan():
-    I = np.diag([np.nan, 1, 1])
-    with pytest.raises(ValueError, match="contains invalid numeric entries"):
-        linear_sum_assignment(I)
-
-
-def test_linear_sum_assignment_input_neginf():
-    I = np.diag([1, -np.inf, 1])
-    with pytest.raises(ValueError, match="contains invalid numeric entries"):
-        linear_sum_assignment(I)
-
-
-def test_linear_sum_assignment_input_inf():
-    I = np.identity(3)
-    I[:, 0] = np.inf
-    with pytest.raises(ValueError, match="cost matrix is infeasible"):
-        linear_sum_assignment(I)
-
-
-def test_constant_cost_matrix():
-    # Fixes #11602
-    n = 8
-    C = np.ones((n, n))
-    row_ind, col_ind = linear_sum_assignment(C)
-    assert_array_equal(row_ind, np.arange(n))
-    assert_array_equal(col_ind, np.arange(n))
-
-
-@pytest.mark.parametrize('num_rows,num_cols', [(0, 0), (2, 0), (0, 3)])
-def test_linear_sum_assignment_trivial_cost(num_rows, num_cols):
-    C = np.empty(shape=(num_cols, num_rows))
-    row_ind, col_ind = linear_sum_assignment(C)
-    assert len(row_ind) == 0
-    assert len(col_ind) == 0
-
-
-@pytest.mark.parametrize('sign,test_case', linear_sum_assignment_test_cases)
-def test_linear_sum_assignment_small_inputs(sign, test_case):
-    linear_sum_assignment_assertions(
-        linear_sum_assignment, np.array, sign, test_case)
-
-
-# Tests that combine scipy.optimize.linear_sum_assignment and
-# scipy.sparse.csgraph.min_weight_full_bipartite_matching
-def test_two_methods_give_same_result_on_many_sparse_inputs():
-    # As opposed to the test above, here we do not spell out the expected
-    # output; only assert that the two methods give the same result.
-    # Concretely, the below tests 100 cases of size 100x100, out of which
-    # 36 are infeasible.
-    np.random.seed(1234)
-    for _ in range(100):
-        lsa_raises = False
-        mwfbm_raises = False
-        sparse = random(100, 100, density=0.06,
-                        data_rvs=lambda size: np.random.randint(1, 100, size))
-        # In csgraph, zeros correspond to missing edges, so we explicitly
-        # replace those with infinities
-        dense = np.full(sparse.shape, np.inf)
-        dense[sparse.row, sparse.col] = sparse.data
-        sparse = sparse.tocsr()
-        try:
-            row_ind, col_ind = linear_sum_assignment(dense)
-            lsa_cost = dense[row_ind, col_ind].sum()
-        except ValueError:
-            lsa_raises = True
-        try:
-            row_ind, col_ind = min_weight_full_bipartite_matching(sparse)
-            mwfbm_cost = sparse[row_ind, col_ind].sum()
-        except ValueError:
-            mwfbm_raises = True
-        # Ensure that if one method raises, so does the other one.
-        assert lsa_raises == mwfbm_raises
-        if not lsa_raises:
-            assert lsa_cost == mwfbm_cost
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_linesearch.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_linesearch.py
deleted file mode 100644
index f5ae5cc6f4d4065de7a33dab79edb44d550bfeeb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_linesearch.py
+++ /dev/null
@@ -1,314 +0,0 @@
-"""
-Tests for line search routines
-"""
-from numpy.testing import (assert_equal, assert_array_almost_equal,
-                           assert_array_almost_equal_nulp, assert_warns,
-                           suppress_warnings)
-import scipy.optimize._linesearch as ls
-from scipy.optimize._linesearch import LineSearchWarning
-import numpy as np
-
-
-def assert_wolfe(s, phi, derphi, c1=1e-4, c2=0.9, err_msg=""):
-    """
-    Check that strong Wolfe conditions apply
-    """
-    phi1 = phi(s)
-    phi0 = phi(0)
-    derphi0 = derphi(0)
-    derphi1 = derphi(s)
-    msg = (f"s = {s}; phi(0) = {phi0}; phi(s) = {phi1}; phi'(0) = {derphi0};"
-           f" phi'(s) = {derphi1}; {err_msg}")
-
-    assert phi1 <= phi0 + c1*s*derphi0, "Wolfe 1 failed: " + msg
-    assert abs(derphi1) <= abs(c2*derphi0), "Wolfe 2 failed: " + msg
-
-
-def assert_armijo(s, phi, c1=1e-4, err_msg=""):
-    """
-    Check that Armijo condition applies
-    """
-    phi1 = phi(s)
-    phi0 = phi(0)
-    msg = f"s = {s}; phi(0) = {phi0}; phi(s) = {phi1}; {err_msg}"
-    assert phi1 <= (1 - c1*s)*phi0, msg
-
-
-def assert_line_wolfe(x, p, s, f, fprime, **kw):
-    assert_wolfe(s, phi=lambda sp: f(x + p*sp),
-                 derphi=lambda sp: np.dot(fprime(x + p*sp), p), **kw)
-
-
-def assert_line_armijo(x, p, s, f, **kw):
-    assert_armijo(s, phi=lambda sp: f(x + p*sp), **kw)
-
-
-def assert_fp_equal(x, y, err_msg="", nulp=50):
-    """Assert two arrays are equal, up to some floating-point rounding error"""
-    try:
-        assert_array_almost_equal_nulp(x, y, nulp)
-    except AssertionError as e:
-        raise AssertionError(f"{e}\n{err_msg}") from e
-
-
-class TestLineSearch:
-    # -- scalar functions; must have dphi(0.) < 0
-    def _scalar_func_1(self, s):  # skip name check
-        self.fcount += 1
-        p = -s - s**3 + s**4
-        dp = -1 - 3*s**2 + 4*s**3
-        return p, dp
-
-    def _scalar_func_2(self, s):  # skip name check
-        self.fcount += 1
-        p = np.exp(-4*s) + s**2
-        dp = -4*np.exp(-4*s) + 2*s
-        return p, dp
-
-    def _scalar_func_3(self, s):  # skip name check
-        self.fcount += 1
-        p = -np.sin(10*s)
-        dp = -10*np.cos(10*s)
-        return p, dp
-
-    # -- n-d functions
-
-    def _line_func_1(self, x):  # skip name check
-        self.fcount += 1
-        f = np.dot(x, x)
-        df = 2*x
-        return f, df
-
-    def _line_func_2(self, x):  # skip name check
-        self.fcount += 1
-        f = np.dot(x, np.dot(self.A, x)) + 1
-        df = np.dot(self.A + self.A.T, x)
-        return f, df
-
-    # --
-
-    def setup_method(self):
-        self.scalar_funcs = []
-        self.line_funcs = []
-        self.N = 20
-        self.fcount = 0
-
-        def bind_index(func, idx):
-            # Remember Python's closure semantics!
-            return lambda *a, **kw: func(*a, **kw)[idx]
-
-        for name in sorted(dir(self)):
-            if name.startswith('_scalar_func_'):
-                value = getattr(self, name)
-                self.scalar_funcs.append(
-                    (name, bind_index(value, 0), bind_index(value, 1)))
-            elif name.startswith('_line_func_'):
-                value = getattr(self, name)
-                self.line_funcs.append(
-                    (name, bind_index(value, 0), bind_index(value, 1)))
-
-        np.random.seed(1234)
-        self.A = np.random.randn(self.N, self.N)
-
-    def scalar_iter(self):
-        for name, phi, derphi in self.scalar_funcs:
-            for old_phi0 in np.random.randn(3):
-                yield name, phi, derphi, old_phi0
-
-    def line_iter(self):
-        for name, f, fprime in self.line_funcs:
-            k = 0
-            while k < 9:
-                x = np.random.randn(self.N)
-                p = np.random.randn(self.N)
-                if np.dot(p, fprime(x)) >= 0:
-                    # always pick a descent direction
-                    continue
-                k += 1
-                old_fv = float(np.random.randn())
-                yield name, f, fprime, x, p, old_fv
-
-    # -- Generic scalar searches
-
-    def test_scalar_search_wolfe1(self):
-        c = 0
-        for name, phi, derphi, old_phi0 in self.scalar_iter():
-            c += 1
-            s, phi1, phi0 = ls.scalar_search_wolfe1(phi, derphi, phi(0),
-                                                    old_phi0, derphi(0))
-            assert_fp_equal(phi0, phi(0), name)
-            assert_fp_equal(phi1, phi(s), name)
-            assert_wolfe(s, phi, derphi, err_msg=name)
-
-        assert c > 3  # check that the iterator really works...
-
-    def test_scalar_search_wolfe2(self):
-        for name, phi, derphi, old_phi0 in self.scalar_iter():
-            s, phi1, phi0, derphi1 = ls.scalar_search_wolfe2(
-                phi, derphi, phi(0), old_phi0, derphi(0))
-            assert_fp_equal(phi0, phi(0), name)
-            assert_fp_equal(phi1, phi(s), name)
-            if derphi1 is not None:
-                assert_fp_equal(derphi1, derphi(s), name)
-            assert_wolfe(s, phi, derphi, err_msg=f"{name} {old_phi0:g}")
-
-    def test_scalar_search_wolfe2_with_low_amax(self):
-        def phi(alpha):
-            return (alpha - 5) ** 2
-
-        def derphi(alpha):
-            return 2 * (alpha - 5)
-
-        alpha_star, _, _, derphi_star = ls.scalar_search_wolfe2(phi, derphi, amax=0.001)
-        assert alpha_star is None  # Not converged
-        assert derphi_star is None  # Not converged
-
-    def test_scalar_search_wolfe2_regression(self):
-        # Regression test for gh-12157
-        # This phi has its minimum at alpha=4/3 ~ 1.333.
-        def phi(alpha):
-            if alpha < 1:
-                return - 3*np.pi/2 * (alpha - 1)
-            else:
-                return np.cos(3*np.pi/2 * alpha - np.pi)
-
-        def derphi(alpha):
-            if alpha < 1:
-                return - 3*np.pi/2
-            else:
-                return - 3*np.pi/2 * np.sin(3*np.pi/2 * alpha - np.pi)
-
-        s, _, _, _ = ls.scalar_search_wolfe2(phi, derphi)
-        # Without the fix in gh-13073, the scalar_search_wolfe2
-        # returned s=2.0 instead.
-        assert s < 1.5
-
-    def test_scalar_search_armijo(self):
-        for name, phi, derphi, old_phi0 in self.scalar_iter():
-            s, phi1 = ls.scalar_search_armijo(phi, phi(0), derphi(0))
-            assert_fp_equal(phi1, phi(s), name)
-            assert_armijo(s, phi, err_msg=f"{name} {old_phi0:g}")
-
-    # -- Generic line searches
-
-    def test_line_search_wolfe1(self):
-        c = 0
-        smax = 100
-        for name, f, fprime, x, p, old_f in self.line_iter():
-            f0 = f(x)
-            g0 = fprime(x)
-            self.fcount = 0
-            s, fc, gc, fv, ofv, gv = ls.line_search_wolfe1(f, fprime, x, p,
-                                                           g0, f0, old_f,
-                                                           amax=smax)
-            assert_equal(self.fcount, fc+gc)
-            assert_fp_equal(ofv, f(x))
-            if s is None:
-                continue
-            assert_fp_equal(fv, f(x + s*p))
-            assert_array_almost_equal(gv, fprime(x + s*p), decimal=14)
-            if s < smax:
-                c += 1
-                assert_line_wolfe(x, p, s, f, fprime, err_msg=name)
-
-        assert c > 3  # check that the iterator really works...
-
-    def test_line_search_wolfe2(self):
-        c = 0
-        smax = 512
-        for name, f, fprime, x, p, old_f in self.line_iter():
-            f0 = f(x)
-            g0 = fprime(x)
-            self.fcount = 0
-            with suppress_warnings() as sup:
-                sup.filter(LineSearchWarning,
-                           "The line search algorithm could not find a solution")
-                sup.filter(LineSearchWarning,
-                           "The line search algorithm did not converge")
-                s, fc, gc, fv, ofv, gv = ls.line_search_wolfe2(f, fprime, x, p,
-                                                               g0, f0, old_f,
-                                                               amax=smax)
-            assert_equal(self.fcount, fc+gc)
-            assert_fp_equal(ofv, f(x))
-            assert_fp_equal(fv, f(x + s*p))
-            if gv is not None:
-                assert_array_almost_equal(gv, fprime(x + s*p), decimal=14)
-            if s < smax:
-                c += 1
-                assert_line_wolfe(x, p, s, f, fprime, err_msg=name)
-        assert c > 3  # check that the iterator really works...
-
-    def test_line_search_wolfe2_bounds(self):
-        # See gh-7475
-
-        # For this f and p, starting at a point on axis 0, the strong Wolfe
-        # condition 2 is met if and only if the step length s satisfies
-        # |x + s| <= c2 * |x|
-        def f(x):
-            return np.dot(x, x)
-        def fp(x):
-            return 2 * x
-        p = np.array([1, 0])
-
-        # Smallest s satisfying strong Wolfe conditions for these arguments is 30
-        x = -60 * p
-        c2 = 0.5
-
-        s, _, _, _, _, _ = ls.line_search_wolfe2(f, fp, x, p, amax=30, c2=c2)
-        assert_line_wolfe(x, p, s, f, fp)
-
-        s, _, _, _, _, _ = assert_warns(LineSearchWarning,
-                                        ls.line_search_wolfe2, f, fp, x, p,
-                                        amax=29, c2=c2)
-        assert s is None
-
-        # s=30 will only be tried on the 6th iteration, so this won't converge
-        assert_warns(LineSearchWarning, ls.line_search_wolfe2, f, fp, x, p,
-                     c2=c2, maxiter=5)
-
-    def test_line_search_armijo(self):
-        c = 0
-        for name, f, fprime, x, p, old_f in self.line_iter():
-            f0 = f(x)
-            g0 = fprime(x)
-            self.fcount = 0
-            s, fc, fv = ls.line_search_armijo(f, x, p, g0, f0)
-            c += 1
-            assert_equal(self.fcount, fc)
-            assert_fp_equal(fv, f(x + s*p))
-            assert_line_armijo(x, p, s, f, err_msg=name)
-        assert c >= 9
-
-    # -- More specific tests
-
-    def test_armijo_terminate_1(self):
-        # Armijo should evaluate the function only once if the trial step
-        # is already suitable
-        count = [0]
-
-        def phi(s):
-            count[0] += 1
-            return -s + 0.01*s**2
-        s, phi1 = ls.scalar_search_armijo(phi, phi(0), -1, alpha0=1)
-        assert_equal(s, 1)
-        assert_equal(count[0], 2)
-        assert_armijo(s, phi)
-
-    def test_wolfe_terminate(self):
-        # wolfe1 and wolfe2 should also evaluate the function only a few
-        # times if the trial step is already suitable
-
-        def phi(s):
-            count[0] += 1
-            return -s + 0.05*s**2
-
-        def derphi(s):
-            count[0] += 1
-            return -1 + 0.05*2*s
-
-        for func in [ls.scalar_search_wolfe1, ls.scalar_search_wolfe2]:
-            count = [0]
-            r = func(phi, derphi, phi(0), None, derphi(0))
-            assert r[0] is not None, (r, func)
-            assert count[0] <= 2 + 2, (count, func)
-            assert_wolfe(r[0], phi, derphi, err_msg=str(func))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_linprog.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_linprog.py
deleted file mode 100644
index 1e304cd038ad37fde7c613b3daf1bd95abdf5547..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_linprog.py
+++ /dev/null
@@ -1,2498 +0,0 @@
-"""
-Unit test for Linear Programming
-"""
-import sys
-import platform
-
-import numpy as np
-from numpy.testing import (assert_, assert_allclose, assert_equal,
-                           assert_array_less, assert_warns, suppress_warnings)
-from pytest import raises as assert_raises
-from scipy.optimize import linprog, OptimizeWarning
-from scipy.optimize._numdiff import approx_derivative
-from scipy.sparse.linalg import MatrixRankWarning
-from scipy.linalg import LinAlgWarning
-from scipy._lib._util import VisibleDeprecationWarning
-import scipy.sparse
-import pytest
-
-has_umfpack = True
-try:
-    from scikits.umfpack import UmfpackWarning
-except ImportError:
-    has_umfpack = False
-
-has_cholmod = True
-try:
-    import sksparse  # noqa: F401
-    from sksparse.cholmod import cholesky as cholmod  # noqa: F401
-except ImportError:
-    has_cholmod = False
-
-
-def _assert_iteration_limit_reached(res, maxiter):
-    assert_(not res.success, "Incorrectly reported success")
-    assert_(res.success < maxiter, "Incorrectly reported number of iterations")
-    assert_equal(res.status, 1, "Failed to report iteration limit reached")
-
-
-def _assert_infeasible(res):
-    # res: linprog result object
-    assert_(not res.success, "incorrectly reported success")
-    assert_equal(res.status, 2, "failed to report infeasible status")
-
-
-def _assert_unbounded(res):
-    # res: linprog result object
-    assert_(not res.success, "incorrectly reported success")
-    assert_equal(res.status, 3, "failed to report unbounded status")
-
-
-def _assert_unable_to_find_basic_feasible_sol(res):
-    # res: linprog result object
-
-    # The status may be either 2 or 4 depending on why the feasible solution
-    # could not be found. If the underlying problem is expected to not have a
-    # feasible solution, _assert_infeasible should be used.
-    assert_(not res.success, "incorrectly reported success")
-    assert_(res.status in (2, 4), "failed to report optimization failure")
-
-
-def _assert_success(res, desired_fun=None, desired_x=None,
-                    rtol=1e-8, atol=1e-8):
-    # res: linprog result object
-    # desired_fun: desired objective function value or None
-    # desired_x: desired solution or None
-    if not res.success:
-        msg = f"linprog status {res.status}, message: {res.message}"
-        raise AssertionError(msg)
-
-    assert_equal(res.status, 0)
-    if desired_fun is not None:
-        assert_allclose(res.fun, desired_fun,
-                        err_msg="converged to an unexpected objective value",
-                        rtol=rtol, atol=atol)
-    if desired_x is not None:
-        assert_allclose(res.x, desired_x,
-                        err_msg="converged to an unexpected solution",
-                        rtol=rtol, atol=atol)
-
-
-def magic_square(n):
-    """
-    Generates a linear program for which integer solutions represent an
-    n x n magic square; binary decision variables represent the presence
-    (or absence) of an integer 1 to n^2 in each position of the square.
-    """
-
-    np.random.seed(0)
-    M = n * (n**2 + 1) / 2
-
-    numbers = np.arange(n**4) // n**2 + 1
-
-    numbers = numbers.reshape(n**2, n, n)
-
-    zeros = np.zeros((n**2, n, n))
-
-    A_list = []
-    b_list = []
-
-    # Rule 1: use every number exactly once
-    for i in range(n**2):
-        A_row = zeros.copy()
-        A_row[i, :, :] = 1
-        A_list.append(A_row.flatten())
-        b_list.append(1)
-
-    # Rule 2: Only one number per square
-    for i in range(n):
-        for j in range(n):
-            A_row = zeros.copy()
-            A_row[:, i, j] = 1
-            A_list.append(A_row.flatten())
-            b_list.append(1)
-
-    # Rule 3: sum of rows is M
-    for i in range(n):
-        A_row = zeros.copy()
-        A_row[:, i, :] = numbers[:, i, :]
-        A_list.append(A_row.flatten())
-        b_list.append(M)
-
-    # Rule 4: sum of columns is M
-    for i in range(n):
-        A_row = zeros.copy()
-        A_row[:, :, i] = numbers[:, :, i]
-        A_list.append(A_row.flatten())
-        b_list.append(M)
-
-    # Rule 5: sum of diagonals is M
-    A_row = zeros.copy()
-    A_row[:, range(n), range(n)] = numbers[:, range(n), range(n)]
-    A_list.append(A_row.flatten())
-    b_list.append(M)
-    A_row = zeros.copy()
-    A_row[:, range(n), range(-1, -n - 1, -1)] = \
-        numbers[:, range(n), range(-1, -n - 1, -1)]
-    A_list.append(A_row.flatten())
-    b_list.append(M)
-
-    A = np.array(np.vstack(A_list), dtype=float)
-    b = np.array(b_list, dtype=float)
-    c = np.random.rand(A.shape[1])
-
-    return A, b, c, numbers, M
-
-
-def lpgen_2d(m, n):
-    """ -> A b c LP test: m*n vars, m+n constraints
-        row sums == n/m, col sums == 1
-        https://gist.github.com/denis-bz/8647461
-    """
-    np.random.seed(0)
-    c = - np.random.exponential(size=(m, n))
-    Arow = np.zeros((m, m * n))
-    brow = np.zeros(m)
-    for j in range(m):
-        j1 = j + 1
-        Arow[j, j * n:j1 * n] = 1
-        brow[j] = n / m
-
-    Acol = np.zeros((n, m * n))
-    bcol = np.zeros(n)
-    for j in range(n):
-        j1 = j + 1
-        Acol[j, j::n] = 1
-        bcol[j] = 1
-
-    A = np.vstack((Arow, Acol))
-    b = np.hstack((brow, bcol))
-
-    return A, b, c.ravel()
-
-
-def very_random_gen(seed=0):
-    np.random.seed(seed)
-    m_eq, m_ub, n = 10, 20, 50
-    c = np.random.rand(n)-0.5
-    A_ub = np.random.rand(m_ub, n)-0.5
-    b_ub = np.random.rand(m_ub)-0.5
-    A_eq = np.random.rand(m_eq, n)-0.5
-    b_eq = np.random.rand(m_eq)-0.5
-    lb = -np.random.rand(n)
-    ub = np.random.rand(n)
-    lb[lb < -np.random.rand()] = -np.inf
-    ub[ub > np.random.rand()] = np.inf
-    bounds = np.vstack((lb, ub)).T
-    return c, A_ub, b_ub, A_eq, b_eq, bounds
-
-
-def nontrivial_problem():
-    c = [-1, 8, 4, -6]
-    A_ub = [[-7, -7, 6, 9],
-            [1, -1, -3, 0],
-            [10, -10, -7, 7],
-            [6, -1, 3, 4]]
-    b_ub = [-3, 6, -6, 6]
-    A_eq = [[-10, 1, 1, -8]]
-    b_eq = [-4]
-    x_star = [101 / 1391, 1462 / 1391, 0, 752 / 1391]
-    f_star = 7083 / 1391
-    return c, A_ub, b_ub, A_eq, b_eq, x_star, f_star
-
-
-def l1_regression_prob(seed=0, m=8, d=9, n=100):
-    '''
-    Training data is {(x0, y0), (x1, y2), ..., (xn-1, yn-1)}
-        x in R^d
-        y in R
-    n: number of training samples
-    d: dimension of x, i.e. x in R^d
-    phi: feature map R^d -> R^m
-    m: dimension of feature space
-    '''
-    np.random.seed(seed)
-    phi = np.random.normal(0, 1, size=(m, d))  # random feature mapping
-    w_true = np.random.randn(m)
-    x = np.random.normal(0, 1, size=(d, n))  # features
-    y = w_true @ (phi @ x) + np.random.normal(0, 1e-5, size=n)  # measurements
-
-    # construct the problem
-    c = np.ones(m+n)
-    c[:m] = 0
-    A_ub = scipy.sparse.lil_matrix((2*n, n+m))
-    idx = 0
-    for ii in range(n):
-        A_ub[idx, :m] = phi @ x[:, ii]
-        A_ub[idx, m+ii] = -1
-        A_ub[idx+1, :m] = -1*phi @ x[:, ii]
-        A_ub[idx+1, m+ii] = -1
-        idx += 2
-    A_ub = A_ub.tocsc()
-    b_ub = np.zeros(2*n)
-    b_ub[0::2] = y
-    b_ub[1::2] = -y
-    bnds = [(None, None)]*m + [(0, None)]*n
-    return c, A_ub, b_ub, bnds
-
-
-def generic_callback_test(self):
-    # Check that callback is as advertised
-    last_cb = {}
-
-    def cb(res):
-        message = res.pop('message')
-        complete = res.pop('complete')
-
-        assert_(res.pop('phase') in (1, 2))
-        assert_(res.pop('status') in range(4))
-        assert_(isinstance(res.pop('nit'), int))
-        assert_(isinstance(complete, bool))
-        assert_(isinstance(message, str))
-
-        last_cb['x'] = res['x']
-        last_cb['fun'] = res['fun']
-        last_cb['slack'] = res['slack']
-        last_cb['con'] = res['con']
-
-    c = np.array([-3, -2])
-    A_ub = [[2, 1], [1, 1], [1, 0]]
-    b_ub = [10, 8, 4]
-    res = linprog(c, A_ub=A_ub, b_ub=b_ub, callback=cb, method=self.method)
-
-    _assert_success(res, desired_fun=-18.0, desired_x=[2, 6])
-    assert_allclose(last_cb['fun'], res['fun'])
-    assert_allclose(last_cb['x'], res['x'])
-    assert_allclose(last_cb['con'], res['con'])
-    assert_allclose(last_cb['slack'], res['slack'])
-
-
-def test_unknown_solvers_and_options():
-    c = np.array([-3, -2])
-    A_ub = [[2, 1], [1, 1], [1, 0]]
-    b_ub = [10, 8, 4]
-
-    assert_raises(ValueError, linprog,
-                  c, A_ub=A_ub, b_ub=b_ub, method='ekki-ekki-ekki')
-    assert_raises(ValueError, linprog,
-                  c, A_ub=A_ub, b_ub=b_ub, method='highs-ekki')
-    message = "Unrecognized options detected: {'rr_method': 'ekki-ekki-ekki'}"
-    with pytest.warns(OptimizeWarning, match=message):
-        linprog(c, A_ub=A_ub, b_ub=b_ub,
-                options={"rr_method": 'ekki-ekki-ekki'})
-
-
-def test_choose_solver():
-    # 'highs' chooses 'dual'
-    c = np.array([-3, -2])
-    A_ub = [[2, 1], [1, 1], [1, 0]]
-    b_ub = [10, 8, 4]
-
-    res = linprog(c, A_ub, b_ub, method='highs')
-    _assert_success(res, desired_fun=-18.0, desired_x=[2, 6])
-
-
-def test_deprecation():
-    with pytest.warns(DeprecationWarning):
-        linprog(1, method='interior-point')
-    with pytest.warns(DeprecationWarning):
-        linprog(1, method='revised simplex')
-    with pytest.warns(DeprecationWarning):
-        linprog(1, method='simplex')
-
-
-def test_highs_status_message():
-    res = linprog(1, method='highs')
-    msg = "Optimization terminated successfully. (HiGHS Status 7:"
-    assert res.status == 0
-    assert res.message.startswith(msg)
-
-    A, b, c, numbers, M = magic_square(6)
-    bounds = [(0, 1)] * len(c)
-    integrality = [1] * len(c)
-    options = {"time_limit": 0.1}
-    res = linprog(c=c, A_eq=A, b_eq=b, bounds=bounds, method='highs',
-                  options=options, integrality=integrality)
-    msg = "Time limit reached. (HiGHS Status 13:"
-    assert res.status == 1
-    assert res.message.startswith(msg)
-
-    options = {"maxiter": 10}
-    res = linprog(c=c, A_eq=A, b_eq=b, bounds=bounds, method='highs-ds',
-                  options=options)
-    msg = "Iteration limit reached. (HiGHS Status 14:"
-    assert res.status == 1
-    assert res.message.startswith(msg)
-
-    res = linprog(1, bounds=(1, -1), method='highs')
-    msg = "The problem is infeasible. (HiGHS Status 8:"
-    assert res.status == 2
-    assert res.message.startswith(msg)
-
-    res = linprog(-1, method='highs')
-    msg = "The problem is unbounded. (HiGHS Status 10:"
-    assert res.status == 3
-    assert res.message.startswith(msg)
-
-    from scipy.optimize._linprog_highs import _highs_to_scipy_status_message
-    status, message = _highs_to_scipy_status_message(58, "Hello!")
-    msg = "The HiGHS status code was not recognized. (HiGHS Status 58:"
-    assert status == 4
-    assert message.startswith(msg)
-
-    status, message = _highs_to_scipy_status_message(None, None)
-    msg = "HiGHS did not provide a status code. (HiGHS Status None: None)"
-    assert status == 4
-    assert message.startswith(msg)
-
-
-def test_bug_17380():
-    linprog([1, 1], A_ub=[[-1, 0]], b_ub=[-2.5], integrality=[1, 1])
-
-
-A_ub = None
-b_ub = None
-A_eq = None
-b_eq = None
-bounds = None
-
-################
-# Common Tests #
-################
-
-
-class LinprogCommonTests:
-    """
-    Base class for `linprog` tests. Generally, each test will be performed
-    once for every derived class of LinprogCommonTests, each of which will
-    typically change self.options and/or self.method. Effectively, these tests
-    are run for many combination of method (simplex, revised simplex, and
-    interior point) and options (such as pivoting rule or sparse treatment).
-    """
-
-    ##################
-    # Targeted Tests #
-    ##################
-
-    def test_callback(self):
-        generic_callback_test(self)
-
-    def test_disp(self):
-        # test that display option does not break anything.
-        A, b, c = lpgen_2d(20, 20)
-        res = linprog(c, A_ub=A, b_ub=b, method=self.method,
-                      options={"disp": True})
-        _assert_success(res, desired_fun=-64.049494229)
-
-    def test_docstring_example(self):
-        # Example from linprog docstring.
-        c = [-1, 4]
-        A = [[-3, 1], [1, 2]]
-        b = [6, 4]
-        x0_bounds = (None, None)
-        x1_bounds = (-3, None)
-        res = linprog(c, A_ub=A, b_ub=b, bounds=(x0_bounds, x1_bounds),
-                      options=self.options, method=self.method)
-        _assert_success(res, desired_fun=-22)
-
-    def test_type_error(self):
-        # (presumably) checks that linprog recognizes type errors
-        # This is tested more carefully in test__linprog_clean_inputs.py
-        c = [1]
-        A_eq = [[1]]
-        b_eq = "hello"
-        assert_raises(TypeError, linprog,
-                      c, A_eq=A_eq, b_eq=b_eq,
-                      method=self.method, options=self.options)
-
-    def test_aliasing_b_ub(self):
-        # (presumably) checks that linprog does not modify b_ub
-        # This is tested more carefully in test__linprog_clean_inputs.py
-        c = np.array([1.0])
-        A_ub = np.array([[1.0]])
-        b_ub_orig = np.array([3.0])
-        b_ub = b_ub_orig.copy()
-        bounds = (-4.0, np.inf)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=-4, desired_x=[-4])
-        assert_allclose(b_ub_orig, b_ub)
-
-    def test_aliasing_b_eq(self):
-        # (presumably) checks that linprog does not modify b_eq
-        # This is tested more carefully in test__linprog_clean_inputs.py
-        c = np.array([1.0])
-        A_eq = np.array([[1.0]])
-        b_eq_orig = np.array([3.0])
-        b_eq = b_eq_orig.copy()
-        bounds = (-4.0, np.inf)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=3, desired_x=[3])
-        assert_allclose(b_eq_orig, b_eq)
-
-    def test_non_ndarray_args(self):
-        # (presumably) checks that linprog accepts list in place of arrays
-        # This is tested more carefully in test__linprog_clean_inputs.py
-        c = [1.0]
-        A_ub = [[1.0]]
-        b_ub = [3.0]
-        A_eq = [[1.0]]
-        b_eq = [2.0]
-        bounds = (-1.0, 10.0)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=2, desired_x=[2])
-
-    def test_unknown_options(self):
-        c = np.array([-3, -2])
-        A_ub = [[2, 1], [1, 1], [1, 0]]
-        b_ub = [10, 8, 4]
-
-        def f(c, A_ub=None, b_ub=None, A_eq=None,
-              b_eq=None, bounds=None, options={}):
-            linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                    method=self.method, options=options)
-
-        o = {key: self.options[key] for key in self.options}
-        o['spam'] = 42
-
-        assert_warns(OptimizeWarning, f,
-                     c, A_ub=A_ub, b_ub=b_ub, options=o)
-
-    def test_integrality_without_highs(self):
-        # ensure that using `integrality` parameter without `method='highs'`
-        # raises warning and produces correct solution to relaxed problem
-        # source: https://en.wikipedia.org/wiki/Integer_programming#Example
-        A_ub = np.array([[-1, 1], [3, 2], [2, 3]])
-        b_ub = np.array([1, 12, 12])
-        c = -np.array([0, 1])
-
-        bounds = [(0, np.inf)] * len(c)
-        integrality = [1] * len(c)
-
-        with np.testing.assert_warns(OptimizeWarning):
-            res = linprog(c=c, A_ub=A_ub, b_ub=b_ub, bounds=bounds,
-                          method=self.method, integrality=integrality)
-
-        np.testing.assert_allclose(res.x, [1.8, 2.8])
-        np.testing.assert_allclose(res.fun, -2.8)
-
-    def test_invalid_inputs(self):
-
-        def f(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None, bounds=None):
-            linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                    method=self.method, options=self.options)
-
-        # Test ill-formatted bounds
-        assert_raises(ValueError, f, [1, 2, 3], bounds=[(1, 2), (3, 4)])
-        with np.testing.suppress_warnings() as sup:
-            sup.filter(VisibleDeprecationWarning, "Creating an ndarray from ragged")
-            assert_raises(ValueError, f, [1, 2, 3], bounds=[(1, 2), (3, 4), (3, 4, 5)])
-        assert_raises(ValueError, f, [1, 2, 3], bounds=[(1, -2), (1, 2)])
-
-        # Test other invalid inputs
-        assert_raises(ValueError, f, [1, 2], A_ub=[[1, 2]], b_ub=[1, 2])
-        assert_raises(ValueError, f, [1, 2], A_ub=[[1]], b_ub=[1])
-        assert_raises(ValueError, f, [1, 2], A_eq=[[1, 2]], b_eq=[1, 2])
-        assert_raises(ValueError, f, [1, 2], A_eq=[[1]], b_eq=[1])
-        assert_raises(ValueError, f, [1, 2], A_eq=[1], b_eq=1)
-
-        # this last check doesn't make sense for sparse presolve
-        if ("_sparse_presolve" in self.options and
-                self.options["_sparse_presolve"]):
-            return
-            # there aren't 3-D sparse matrices
-
-        assert_raises(ValueError, f, [1, 2], A_ub=np.zeros((1, 1, 3)), b_eq=1)
-
-    def test_sparse_constraints(self):
-        # gh-13559: improve error message for sparse inputs when unsupported
-        def f(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None, bounds=None):
-            linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                    method=self.method, options=self.options)
-
-        np.random.seed(0)
-        m = 100
-        n = 150
-        A_eq = scipy.sparse.rand(m, n, 0.5)
-        x_valid = np.random.randn(n)
-        c = np.random.randn(n)
-        ub = x_valid + np.random.rand(n)
-        lb = x_valid - np.random.rand(n)
-        bounds = np.column_stack((lb, ub))
-        b_eq = A_eq * x_valid
-
-        if self.method in {'simplex', 'revised simplex'}:
-            # simplex and revised simplex should raise error
-            with assert_raises(ValueError, match=f"Method '{self.method}' "
-                               "does not support sparse constraint matrices."):
-                linprog(c=c, A_eq=A_eq, b_eq=b_eq, bounds=bounds,
-                        method=self.method, options=self.options)
-        else:
-            # other methods should succeed
-            options = {**self.options}
-            if self.method in {'interior-point'}:
-                options['sparse'] = True
-
-            res = linprog(c=c, A_eq=A_eq, b_eq=b_eq, bounds=bounds,
-                          method=self.method, options=options)
-            assert res.success
-
-    def test_maxiter(self):
-        # test iteration limit w/ Enzo example
-        c = [4, 8, 3, 0, 0, 0]
-        A = [
-            [2, 5, 3, -1, 0, 0],
-            [3, 2.5, 8, 0, -1, 0],
-            [8, 10, 4, 0, 0, -1]]
-        b = [185, 155, 600]
-        np.random.seed(0)
-        maxiter = 3
-        res = linprog(c, A_eq=A, b_eq=b, method=self.method,
-                      options={"maxiter": maxiter})
-        _assert_iteration_limit_reached(res, maxiter)
-        assert_equal(res.nit, maxiter)
-
-    def test_bounds_fixed(self):
-
-        # Test fixed bounds (upper equal to lower)
-        # If presolve option True, test if solution found in presolve (i.e.
-        # number of iterations is 0).
-        do_presolve = self.options.get('presolve', True)
-
-        res = linprog([1], bounds=(1, 1),
-                      method=self.method, options=self.options)
-        _assert_success(res, 1, 1)
-        if do_presolve:
-            assert_equal(res.nit, 0)
-
-        res = linprog([1, 2, 3], bounds=[(5, 5), (-1, -1), (3, 3)],
-                      method=self.method, options=self.options)
-        _assert_success(res, 12, [5, -1, 3])
-        if do_presolve:
-            assert_equal(res.nit, 0)
-
-        res = linprog([1, 1], bounds=[(1, 1), (1, 3)],
-                      method=self.method, options=self.options)
-        _assert_success(res, 2, [1, 1])
-        if do_presolve:
-            assert_equal(res.nit, 0)
-
-        res = linprog([1, 1, 2], A_eq=[[1, 0, 0], [0, 1, 0]], b_eq=[1, 7],
-                      bounds=[(-5, 5), (0, 10), (3.5, 3.5)],
-                      method=self.method, options=self.options)
-        _assert_success(res, 15, [1, 7, 3.5])
-        if do_presolve:
-            assert_equal(res.nit, 0)
-
-    def test_bounds_infeasible(self):
-
-        # Test ill-valued bounds (upper less than lower)
-        # If presolve option True, test if solution found in presolve (i.e.
-        # number of iterations is 0).
-        do_presolve = self.options.get('presolve', True)
-
-        res = linprog([1], bounds=(1, -2), method=self.method, options=self.options)
-        _assert_infeasible(res)
-        if do_presolve:
-            assert_equal(res.nit, 0)
-
-        res = linprog([1], bounds=[(1, -2)], method=self.method, options=self.options)
-        _assert_infeasible(res)
-        if do_presolve:
-            assert_equal(res.nit, 0)
-
-        res = linprog([1, 2, 3], bounds=[(5, 0), (1, 2), (3, 4)],
-                      method=self.method, options=self.options)
-        _assert_infeasible(res)
-        if do_presolve:
-            assert_equal(res.nit, 0)
-
-    def test_bounds_infeasible_2(self):
-
-        # Test ill-valued bounds (lower inf, upper -inf)
-        # If presolve option True, test if solution found in presolve (i.e.
-        # number of iterations is 0).
-        # For the simplex method, the cases do not result in an
-        # infeasible status, but in a RuntimeWarning. This is a
-        # consequence of having _presolve() take care of feasibility
-        # checks. See issue gh-11618.
-        do_presolve = self.options.get('presolve', True)
-        simplex_without_presolve = not do_presolve and self.method == 'simplex'
-
-        c = [1, 2, 3]
-        bounds_1 = [(1, 2), (np.inf, np.inf), (3, 4)]
-        bounds_2 = [(1, 2), (-np.inf, -np.inf), (3, 4)]
-
-        if simplex_without_presolve:
-            def g(c, bounds):
-                res = linprog(c, bounds=bounds,
-                              method=self.method, options=self.options)
-                return res
-
-            with pytest.warns(RuntimeWarning):
-                with pytest.raises(IndexError):
-                    g(c, bounds=bounds_1)
-
-            with pytest.warns(RuntimeWarning):
-                with pytest.raises(IndexError):
-                    g(c, bounds=bounds_2)
-        else:
-            res = linprog(c=c, bounds=bounds_1,
-                          method=self.method, options=self.options)
-            _assert_infeasible(res)
-            if do_presolve:
-                assert_equal(res.nit, 0)
-            res = linprog(c=c, bounds=bounds_2,
-                          method=self.method, options=self.options)
-            _assert_infeasible(res)
-            if do_presolve:
-                assert_equal(res.nit, 0)
-
-    def test_empty_constraint_1(self):
-        c = [-1, -2]
-        res = linprog(c, method=self.method, options=self.options)
-        _assert_unbounded(res)
-
-    def test_empty_constraint_2(self):
-        c = [-1, 1, -1, 1]
-        bounds = [(0, np.inf), (-np.inf, 0), (-1, 1), (-1, 1)]
-        res = linprog(c, bounds=bounds,
-                      method=self.method, options=self.options)
-        _assert_unbounded(res)
-        # Unboundedness detected in presolve requires no iterations
-        if self.options.get('presolve', True):
-            assert_equal(res.nit, 0)
-
-    def test_empty_constraint_3(self):
-        c = [1, -1, 1, -1]
-        bounds = [(0, np.inf), (-np.inf, 0), (-1, 1), (-1, 1)]
-        res = linprog(c, bounds=bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_x=[0, 0, -1, 1], desired_fun=-2)
-
-    def test_inequality_constraints(self):
-        # Minimize linear function subject to linear inequality constraints.
-        #  http://www.dam.brown.edu/people/huiwang/classes/am121/Archive/simplex_121_c.pdf
-        c = np.array([3, 2]) * -1  # maximize
-        A_ub = [[2, 1],
-                [1, 1],
-                [1, 0]]
-        b_ub = [10, 8, 4]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=-18, desired_x=[2, 6])
-
-    def test_inequality_constraints2(self):
-        # Minimize linear function subject to linear inequality constraints.
-        # http://www.statslab.cam.ac.uk/~ff271/teaching/opt/notes/notes8.pdf
-        # (dead link)
-        c = [6, 3]
-        A_ub = [[0, 3],
-                [-1, -1],
-                [-2, 1]]
-        b_ub = [2, -1, -1]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=5, desired_x=[2 / 3, 1 / 3])
-
-    def test_bounds_simple(self):
-        c = [1, 2]
-        bounds = (1, 2)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_x=[1, 1])
-
-        bounds = [(1, 2), (1, 2)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_x=[1, 1])
-
-    def test_bounded_below_only_1(self):
-        c = np.array([1.0])
-        A_eq = np.array([[1.0]])
-        b_eq = np.array([3.0])
-        bounds = (1.0, None)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=3, desired_x=[3])
-
-    def test_bounded_below_only_2(self):
-        c = np.ones(3)
-        A_eq = np.eye(3)
-        b_eq = np.array([1, 2, 3])
-        bounds = (0.5, np.inf)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_x=b_eq, desired_fun=np.sum(b_eq))
-
-    def test_bounded_above_only_1(self):
-        c = np.array([1.0])
-        A_eq = np.array([[1.0]])
-        b_eq = np.array([3.0])
-        bounds = (None, 10.0)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=3, desired_x=[3])
-
-    def test_bounded_above_only_2(self):
-        c = np.ones(3)
-        A_eq = np.eye(3)
-        b_eq = np.array([1, 2, 3])
-        bounds = (-np.inf, 4)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_x=b_eq, desired_fun=np.sum(b_eq))
-
-    def test_bounds_infinity(self):
-        c = np.ones(3)
-        A_eq = np.eye(3)
-        b_eq = np.array([1, 2, 3])
-        bounds = (-np.inf, np.inf)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_x=b_eq, desired_fun=np.sum(b_eq))
-
-    def test_bounds_mixed(self):
-        # Problem has one unbounded variable and
-        # another with a negative lower bound.
-        c = np.array([-1, 4]) * -1  # maximize
-        A_ub = np.array([[-3, 1],
-                         [1, 2]], dtype=np.float64)
-        b_ub = [6, 4]
-        x0_bounds = (-np.inf, np.inf)
-        x1_bounds = (-3, np.inf)
-        bounds = (x0_bounds, x1_bounds)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=-80 / 7, desired_x=[-8 / 7, 18 / 7])
-
-    def test_bounds_equal_but_infeasible(self):
-        c = [-4, 1]
-        A_ub = [[7, -2], [0, 1], [2, -2]]
-        b_ub = [14, 0, 3]
-        bounds = [(2, 2), (0, None)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_infeasible(res)
-
-    def test_bounds_equal_but_infeasible2(self):
-        c = [-4, 1]
-        A_eq = [[7, -2], [0, 1], [2, -2]]
-        b_eq = [14, 0, 3]
-        bounds = [(2, 2), (0, None)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_infeasible(res)
-
-    def test_bounds_equal_no_presolve(self):
-        # There was a bug when a lower and upper bound were equal but
-        # presolve was not on to eliminate the variable. The bound
-        # was being converted to an equality constraint, but the bound
-        # was not eliminated, leading to issues in postprocessing.
-        c = [1, 2]
-        A_ub = [[1, 2], [1.1, 2.2]]
-        b_ub = [4, 8]
-        bounds = [(1, 2), (2, 2)]
-
-        o = {key: self.options[key] for key in self.options}
-        o["presolve"] = False
-
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=o)
-        _assert_infeasible(res)
-
-    def test_zero_column_1(self):
-        m, n = 3, 4
-        np.random.seed(0)
-        c = np.random.rand(n)
-        c[1] = 1
-        A_eq = np.random.rand(m, n)
-        A_eq[:, 1] = 0
-        b_eq = np.random.rand(m)
-        A_ub = [[1, 0, 1, 1]]
-        b_ub = 3
-        bounds = [(-10, 10), (-10, 10), (-10, None), (None, None)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=-9.7087836730413404)
-
-    def test_zero_column_2(self):
-        if self.method in {'highs-ds', 'highs-ipm'}:
-            # See upstream issue https://github.com/ERGO-Code/HiGHS/issues/648
-            pytest.xfail()
-
-        np.random.seed(0)
-        m, n = 2, 4
-        c = np.random.rand(n)
-        c[1] = -1
-        A_eq = np.random.rand(m, n)
-        A_eq[:, 1] = 0
-        b_eq = np.random.rand(m)
-
-        A_ub = np.random.rand(m, n)
-        A_ub[:, 1] = 0
-        b_ub = np.random.rand(m)
-        bounds = (None, None)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_unbounded(res)
-        # Unboundedness detected in presolve
-        if self.options.get('presolve', True) and "highs" not in self.method:
-            # HiGHS detects unboundedness or infeasibility in presolve
-            # It needs an iteration of simplex to be sure of unboundedness
-            # Other solvers report that the problem is unbounded if feasible
-            assert_equal(res.nit, 0)
-
-    def test_zero_row_1(self):
-        c = [1, 2, 3]
-        A_eq = [[0, 0, 0], [1, 1, 1], [0, 0, 0]]
-        b_eq = [0, 3, 0]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=3)
-
-    def test_zero_row_2(self):
-        A_ub = [[0, 0, 0], [1, 1, 1], [0, 0, 0]]
-        b_ub = [0, 3, 0]
-        c = [1, 2, 3]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=0)
-
-    def test_zero_row_3(self):
-        m, n = 2, 4
-        c = np.random.rand(n)
-        A_eq = np.random.rand(m, n)
-        A_eq[0, :] = 0
-        b_eq = np.random.rand(m)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_infeasible(res)
-
-        # Infeasibility detected in presolve
-        if self.options.get('presolve', True):
-            assert_equal(res.nit, 0)
-
-    def test_zero_row_4(self):
-        m, n = 2, 4
-        c = np.random.rand(n)
-        A_ub = np.random.rand(m, n)
-        A_ub[0, :] = 0
-        b_ub = -np.random.rand(m)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_infeasible(res)
-
-        # Infeasibility detected in presolve
-        if self.options.get('presolve', True):
-            assert_equal(res.nit, 0)
-
-    def test_singleton_row_eq_1(self):
-        c = [1, 1, 1, 2]
-        A_eq = [[1, 0, 0, 0], [0, 2, 0, 0], [1, 0, 0, 0], [1, 1, 1, 1]]
-        b_eq = [1, 2, 2, 4]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_infeasible(res)
-
-        # Infeasibility detected in presolve
-        if self.options.get('presolve', True):
-            assert_equal(res.nit, 0)
-
-    def test_singleton_row_eq_2(self):
-        c = [1, 1, 1, 2]
-        A_eq = [[1, 0, 0, 0], [0, 2, 0, 0], [1, 0, 0, 0], [1, 1, 1, 1]]
-        b_eq = [1, 2, 1, 4]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=4)
-
-    def test_singleton_row_ub_1(self):
-        c = [1, 1, 1, 2]
-        A_ub = [[1, 0, 0, 0], [0, 2, 0, 0], [-1, 0, 0, 0], [1, 1, 1, 1]]
-        b_ub = [1, 2, -2, 4]
-        bounds = [(None, None), (0, None), (0, None), (0, None)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_infeasible(res)
-
-        # Infeasibility detected in presolve
-        if self.options.get('presolve', True):
-            assert_equal(res.nit, 0)
-
-    def test_singleton_row_ub_2(self):
-        c = [1, 1, 1, 2]
-        A_ub = [[1, 0, 0, 0], [0, 2, 0, 0], [-1, 0, 0, 0], [1, 1, 1, 1]]
-        b_ub = [1, 2, -0.5, 4]
-        bounds = [(None, None), (0, None), (0, None), (0, None)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=0.5)
-
-    def test_infeasible(self):
-        # Test linprog response to an infeasible problem
-        c = [-1, -1]
-        A_ub = [[1, 0],
-                [0, 1],
-                [-1, -1]]
-        b_ub = [2, 2, -5]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_infeasible(res)
-
-    def test_infeasible_inequality_bounds(self):
-        c = [1]
-        A_ub = [[2]]
-        b_ub = 4
-        bounds = (5, 6)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_infeasible(res)
-
-        # Infeasibility detected in presolve
-        if self.options.get('presolve', True):
-            assert_equal(res.nit, 0)
-
-    def test_unbounded(self):
-        # Test linprog response to an unbounded problem
-        c = np.array([1, 1]) * -1  # maximize
-        A_ub = [[-1, 1],
-                [-1, -1]]
-        b_ub = [-1, -2]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_unbounded(res)
-
-    def test_unbounded_below_no_presolve_corrected(self):
-        c = [1]
-        bounds = [(None, 1)]
-
-        o = {key: self.options[key] for key in self.options}
-        o["presolve"] = False
-
-        res = linprog(c=c, bounds=bounds,
-                      method=self.method,
-                      options=o)
-        if self.method == "revised simplex":
-            # Revised simplex has a special pathway for no constraints.
-            assert_equal(res.status, 5)
-        else:
-            _assert_unbounded(res)
-
-    def test_unbounded_no_nontrivial_constraints_1(self):
-        """
-        Test whether presolve pathway for detecting unboundedness after
-        constraint elimination is working.
-        """
-        c = np.array([0, 0, 0, 1, -1, -1])
-        A_ub = np.array([[1, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, -1]])
-        b_ub = np.array([2, -2, 0])
-        bounds = [(None, None), (None, None), (None, None),
-                  (-1, 1), (-1, 1), (0, None)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_unbounded(res)
-        if not self.method.lower().startswith("highs"):
-            assert_equal(res.x[-1], np.inf)
-            assert_equal(res.message[:36],
-                         "The problem is (trivially) unbounded")
-
-    def test_unbounded_no_nontrivial_constraints_2(self):
-        """
-        Test whether presolve pathway for detecting unboundedness after
-        constraint elimination is working.
-        """
-        c = np.array([0, 0, 0, 1, -1, 1])
-        A_ub = np.array([[1, 0, 0, 0, 0, 0],
-                         [0, 1, 0, 0, 0, 0],
-                         [0, 0, 0, 0, 0, 1]])
-        b_ub = np.array([2, -2, 0])
-        bounds = [(None, None), (None, None), (None, None),
-                  (-1, 1), (-1, 1), (None, 0)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_unbounded(res)
-        if not self.method.lower().startswith("highs"):
-            assert_equal(res.x[-1], -np.inf)
-            assert_equal(res.message[:36],
-                         "The problem is (trivially) unbounded")
-
-    def test_cyclic_recovery(self):
-        # Test linprogs recovery from cycling using the Klee-Minty problem
-        # Klee-Minty  https://www.math.ubc.ca/~israel/m340/kleemin3.pdf
-        c = np.array([100, 10, 1]) * -1  # maximize
-        A_ub = [[1, 0, 0],
-                [20, 1, 0],
-                [200, 20, 1]]
-        b_ub = [1, 100, 10000]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_x=[0, 0, 10000], atol=5e-6, rtol=1e-7)
-
-    def test_cyclic_bland(self):
-        # Test the effect of Bland's rule on a cycling problem
-        c = np.array([-10, 57, 9, 24.])
-        A_ub = np.array([[0.5, -5.5, -2.5, 9],
-                         [0.5, -1.5, -0.5, 1],
-                         [1, 0, 0, 0]])
-        b_ub = [0, 0, 1]
-
-        # copy the existing options dictionary but change maxiter
-        maxiter = 100
-        o = {key: val for key, val in self.options.items()}
-        o['maxiter'] = maxiter
-
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=o)
-
-        if self.method == 'simplex' and not self.options.get('bland'):
-            # simplex cycles without Bland's rule
-            _assert_iteration_limit_reached(res, o['maxiter'])
-        else:
-            # other methods, including simplex with Bland's rule, succeed
-            _assert_success(res, desired_x=[1, 0, 1, 0])
-        # note that revised simplex skips this test because it may or may not
-        # cycle depending on the initial basis
-
-    def test_remove_redundancy_infeasibility(self):
-        # mostly a test of redundancy removal, which is carefully tested in
-        # test__remove_redundancy.py
-        m, n = 10, 10
-        c = np.random.rand(n)
-        A_eq = np.random.rand(m, n)
-        b_eq = np.random.rand(m)
-        A_eq[-1, :] = 2 * A_eq[-2, :]
-        b_eq[-1] *= -1
-        with suppress_warnings() as sup:
-            sup.filter(OptimizeWarning, "A_eq does not appear...")
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-        _assert_infeasible(res)
-
-    #################
-    # General Tests #
-    #################
-
-    def test_nontrivial_problem(self):
-        # Problem involves all constraint types,
-        # negative resource limits, and rounding issues.
-        c, A_ub, b_ub, A_eq, b_eq, x_star, f_star = nontrivial_problem()
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=f_star, desired_x=x_star)
-
-    def test_lpgen_problem(self):
-        # Test linprog  with a rather large problem (400 variables,
-        # 40 constraints) generated by https://gist.github.com/denis-bz/8647461
-        A_ub, b_ub, c = lpgen_2d(20, 20)
-
-        with suppress_warnings() as sup:
-            sup.filter(OptimizeWarning, "Solving system with option 'sym_pos'")
-            sup.filter(RuntimeWarning, "invalid value encountered")
-            sup.filter(LinAlgWarning)
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-        _assert_success(res, desired_fun=-64.049494229)
-
-    def test_network_flow(self):
-        # A network flow problem with supply and demand at nodes
-        # and with costs along directed edges.
-        # https://www.princeton.edu/~rvdb/542/lectures/lec10.pdf
-        c = [2, 4, 9, 11, 4, 3, 8, 7, 0, 15, 16, 18]
-        n, p = -1, 1
-        A_eq = [
-            [n, n, p, 0, p, 0, 0, 0, 0, p, 0, 0],
-            [p, 0, 0, p, 0, p, 0, 0, 0, 0, 0, 0],
-            [0, 0, n, n, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, p, p, 0, 0, p, 0],
-            [0, 0, 0, 0, n, n, n, 0, p, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, n, n, 0, 0, p],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, n, n, n]]
-        b_eq = [0, 19, -16, 33, 0, 0, -36]
-        with suppress_warnings() as sup:
-            sup.filter(LinAlgWarning)
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-        _assert_success(res, desired_fun=755, atol=1e-6, rtol=1e-7)
-
-    def test_network_flow_limited_capacity(self):
-        # A network flow problem with supply and demand at nodes
-        # and with costs and capacities along directed edges.
-        # http://blog.sommer-forst.de/2013/04/10/
-        c = [2, 2, 1, 3, 1]
-        bounds = [
-            [0, 4],
-            [0, 2],
-            [0, 2],
-            [0, 3],
-            [0, 5]]
-        n, p = -1, 1
-        A_eq = [
-            [n, n, 0, 0, 0],
-            [p, 0, n, n, 0],
-            [0, p, p, 0, n],
-            [0, 0, 0, p, p]]
-        b_eq = [-4, 0, 0, 4]
-
-        with suppress_warnings() as sup:
-            # this is an UmfpackWarning but I had trouble importing it
-            if has_umfpack:
-                sup.filter(UmfpackWarning)
-            sup.filter(RuntimeWarning, "scipy.linalg.solve\nIll...")
-            sup.filter(OptimizeWarning, "A_eq does not appear...")
-            sup.filter(OptimizeWarning, "Solving system with option...")
-            sup.filter(LinAlgWarning)
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-        _assert_success(res, desired_fun=14)
-
-    def test_simplex_algorithm_wikipedia_example(self):
-        # https://en.wikipedia.org/wiki/Simplex_algorithm#Example
-        c = [-2, -3, -4]
-        A_ub = [
-            [3, 2, 1],
-            [2, 5, 3]]
-        b_ub = [10, 15]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=-20)
-
-    def test_enzo_example(self):
-        # https://github.com/scipy/scipy/issues/1779 lp2.py
-        #
-        # Translated from Octave code at:
-        # http://www.ecs.shimane-u.ac.jp/~kyoshida/lpeng.htm
-        # and placed under MIT licence by Enzo Michelangeli
-        # with permission explicitly granted by the original author,
-        # Prof. Kazunobu Yoshida
-        c = [4, 8, 3, 0, 0, 0]
-        A_eq = [
-            [2, 5, 3, -1, 0, 0],
-            [3, 2.5, 8, 0, -1, 0],
-            [8, 10, 4, 0, 0, -1]]
-        b_eq = [185, 155, 600]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=317.5,
-                        desired_x=[66.25, 0, 17.5, 0, 183.75, 0],
-                        atol=6e-6, rtol=1e-7)
-
-    def test_enzo_example_b(self):
-        # rescued from https://github.com/scipy/scipy/pull/218
-        c = [2.8, 6.3, 10.8, -2.8, -6.3, -10.8]
-        A_eq = [[-1, -1, -1, 0, 0, 0],
-                [0, 0, 0, 1, 1, 1],
-                [1, 0, 0, 1, 0, 0],
-                [0, 1, 0, 0, 1, 0],
-                [0, 0, 1, 0, 0, 1]]
-        b_eq = [-0.5, 0.4, 0.3, 0.3, 0.3]
-
-        with suppress_warnings() as sup:
-            sup.filter(OptimizeWarning, "A_eq does not appear...")
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-        _assert_success(res, desired_fun=-1.77,
-                        desired_x=[0.3, 0.2, 0.0, 0.0, 0.1, 0.3])
-
-    def test_enzo_example_c_with_degeneracy(self):
-        # rescued from https://github.com/scipy/scipy/pull/218
-        m = 20
-        c = -np.ones(m)
-        tmp = 2 * np.pi * np.arange(1, m + 1) / (m + 1)
-        A_eq = np.vstack((np.cos(tmp) - 1, np.sin(tmp)))
-        b_eq = [0, 0]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=0, desired_x=np.zeros(m))
-
-    def test_enzo_example_c_with_unboundedness(self):
-        # rescued from https://github.com/scipy/scipy/pull/218
-        m = 50
-        c = -np.ones(m)
-        tmp = 2 * np.pi * np.arange(m) / (m + 1)
-        # This test relies on `cos(0) -1 == sin(0)`, so ensure that's true
-        # (SIMD code or -ffast-math may cause spurious failures otherwise)
-        row0 = np.cos(tmp) - 1
-        row0[0] = 0.0
-        row1 = np.sin(tmp)
-        row1[0] = 0.0
-        A_eq = np.vstack((row0, row1))
-        b_eq = [0, 0]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_unbounded(res)
-
-    def test_enzo_example_c_with_infeasibility(self):
-        # rescued from https://github.com/scipy/scipy/pull/218
-        m = 50
-        c = -np.ones(m)
-        tmp = 2 * np.pi * np.arange(m) / (m + 1)
-        A_eq = np.vstack((np.cos(tmp) - 1, np.sin(tmp)))
-        b_eq = [1, 1]
-
-        o = {key: self.options[key] for key in self.options}
-        o["presolve"] = False
-
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=o)
-        _assert_infeasible(res)
-
-    def test_basic_artificial_vars(self):
-        # Problem is chosen to test two phase simplex methods when at the end
-        # of phase 1 some artificial variables remain in the basis.
-        # Also, for `method='simplex'`, the row in the tableau corresponding
-        # with the artificial variables is not all zero.
-        c = np.array([-0.1, -0.07, 0.004, 0.004, 0.004, 0.004])
-        A_ub = np.array([[1.0, 0, 0, 0, 0, 0], [-1.0, 0, 0, 0, 0, 0],
-                         [0, -1.0, 0, 0, 0, 0], [0, 1.0, 0, 0, 0, 0],
-                         [1.0, 1.0, 0, 0, 0, 0]])
-        b_ub = np.array([3.0, 3.0, 3.0, 3.0, 20.0])
-        A_eq = np.array([[1.0, 0, -1, 1, -1, 1], [0, -1.0, -1, 1, -1, 1]])
-        b_eq = np.array([0, 0])
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=0, desired_x=np.zeros_like(c),
-                        atol=2e-6)
-
-    def test_optimize_result(self):
-        # check all fields in OptimizeResult
-        c, A_ub, b_ub, A_eq, b_eq, bounds = very_random_gen(0)
-        res = linprog(c, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq,
-                      bounds=bounds, method=self.method, options=self.options)
-        assert_(res.success)
-        assert_(res.nit)
-        assert_(not res.status)
-        if 'highs' not in self.method:
-            # HiGHS status/message tested separately
-            assert_(res.message == "Optimization terminated successfully.")
-        assert_allclose(c @ res.x, res.fun)
-        assert_allclose(b_eq - A_eq @ res.x, res.con, atol=1e-11)
-        assert_allclose(b_ub - A_ub @ res.x, res.slack, atol=1e-11)
-        for key in ['eqlin', 'ineqlin', 'lower', 'upper']:
-            if key in res.keys():
-                assert isinstance(res[key]['marginals'], np.ndarray)
-                assert isinstance(res[key]['residual'], np.ndarray)
-
-    #################
-    # Bug Fix Tests #
-    #################
-
-    def test_bug_5400(self):
-        # https://github.com/scipy/scipy/issues/5400
-        bounds = [
-            (0, None),
-            (0, 100), (0, 100), (0, 100), (0, 100), (0, 100), (0, 100),
-            (0, 900), (0, 900), (0, 900), (0, 900), (0, 900), (0, 900),
-            (0, None), (0, None), (0, None), (0, None), (0, None), (0, None)]
-
-        f = 1 / 9
-        g = -1e4
-        h = -3.1
-        A_ub = np.array([
-            [1, -2.99, 0, 0, -3, 0, 0, 0, -1, -1, 0, -1, -1, 1, 1, 0, 0, 0, 0],
-            [1, 0, -2.9, h, 0, -3, 0, -1, 0, 0, -1, 0, -1, 0, 0, 1, 1, 0, 0],
-            [1, 0, 0, h, 0, 0, -3, -1, -1, 0, -1, -1, 0, 0, 0, 0, 0, 1, 1],
-            [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1],
-            [0, 1.99, -1, -1, 0, 0, 0, -1, f, f, 0, 0, 0, g, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0, 2, -1, -1, 0, 0, 0, -1, f, f, 0, g, 0, 0, 0, 0],
-            [0, -1, 1.9, 2.1, 0, 0, 0, f, -1, -1, 0, 0, 0, 0, 0, g, 0, 0, 0],
-            [0, 0, 0, 0, -1, 2, -1, 0, 0, 0, f, -1, f, 0, 0, 0, g, 0, 0],
-            [0, -1, -1, 2.1, 0, 0, 0, f, f, -1, 0, 0, 0, 0, 0, 0, 0, g, 0],
-            [0, 0, 0, 0, -1, -1, 2, 0, 0, 0, f, f, -1, 0, 0, 0, 0, 0, g]])
-
-        b_ub = np.array([
-            0.0, 0, 0, 100, 100, 100, 100, 100, 100, 900, 900, 900, 900, 900,
-            900, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
-
-        c = np.array([-1.0, 1, 1, 1, 1, 1, 1, 1, 1,
-                      1, 1, 1, 1, 0, 0, 0, 0, 0, 0])
-        with suppress_warnings() as sup:
-            sup.filter(OptimizeWarning,
-                       "Solving system with option 'sym_pos'")
-            sup.filter(RuntimeWarning, "invalid value encountered")
-            sup.filter(LinAlgWarning)
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-        _assert_success(res, desired_fun=-106.63507541835018)
-
-    def test_bug_6139(self):
-        # linprog(method='simplex') fails to find a basic feasible solution
-        # if phase 1 pseudo-objective function is outside the provided tol.
-        # https://github.com/scipy/scipy/issues/6139
-
-        # Note: This is not strictly a bug as the default tolerance determines
-        # if a result is "close enough" to zero and should not be expected
-        # to work for all cases.
-
-        c = np.array([1, 1, 1])
-        A_eq = np.array([[1., 0., 0.], [-1000., 0., - 1000.]])
-        b_eq = np.array([5.00000000e+00, -1.00000000e+04])
-        A_ub = -np.array([[0., 1000000., 1010000.]])
-        b_ub = -np.array([10000000.])
-        bounds = (None, None)
-
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-
-        _assert_success(res, desired_fun=14.95,
-                        desired_x=np.array([5, 4.95, 5]))
-
-    def test_bug_6690(self):
-        # linprog simplex used to violate bound constraint despite reporting
-        # success.
-        # https://github.com/scipy/scipy/issues/6690
-
-        A_eq = np.array([[0, 0, 0, 0.93, 0, 0.65, 0, 0, 0.83, 0]])
-        b_eq = np.array([0.9626])
-        A_ub = np.array([
-            [0, 0, 0, 1.18, 0, 0, 0, -0.2, 0, -0.22],
-            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-            [0, 0, 0, 0.43, 0, 0, 0, 0, 0, 0],
-            [0, -1.22, -0.25, 0, 0, 0, -2.06, 0, 0, 1.37],
-            [0, 0, 0, 0, 0, 0, 0, -0.25, 0, 0]
-        ])
-        b_ub = np.array([0.615, 0, 0.172, -0.869, -0.022])
-        bounds = np.array([
-            [-0.84, -0.97, 0.34, 0.4, -0.33, -0.74, 0.47, 0.09, -1.45, -0.73],
-            [0.37, 0.02, 2.86, 0.86, 1.18, 0.5, 1.76, 0.17, 0.32, -0.15]
-        ]).T
-        c = np.array([
-            -1.64, 0.7, 1.8, -1.06, -1.16, 0.26, 2.13, 1.53, 0.66, 0.28
-            ])
-
-        with suppress_warnings() as sup:
-            if has_umfpack:
-                sup.filter(UmfpackWarning)
-            sup.filter(OptimizeWarning,
-                       "Solving system with option 'cholesky'")
-            sup.filter(OptimizeWarning, "Solving system with option 'sym_pos'")
-            sup.filter(RuntimeWarning, "invalid value encountered")
-            sup.filter(LinAlgWarning)
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-
-        desired_fun = -1.19099999999
-        desired_x = np.array([0.3700, -0.9700, 0.3400, 0.4000, 1.1800,
-                              0.5000, 0.4700, 0.0900, 0.3200, -0.7300])
-        _assert_success(res, desired_fun=desired_fun, desired_x=desired_x)
-
-        # Add small tol value to ensure arrays are less than or equal.
-        atol = 1e-6
-        assert_array_less(bounds[:, 0] - atol, res.x)
-        assert_array_less(res.x, bounds[:, 1] + atol)
-
-    def test_bug_7044(self):
-        # linprog simplex failed to "identify correct constraints" (?)
-        # leading to a non-optimal solution if A is rank-deficient.
-        # https://github.com/scipy/scipy/issues/7044
-
-        A_eq, b_eq, c, _, _ = magic_square(3)
-        with suppress_warnings() as sup:
-            sup.filter(OptimizeWarning, "A_eq does not appear...")
-            sup.filter(RuntimeWarning, "invalid value encountered")
-            sup.filter(LinAlgWarning)
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-
-        desired_fun = 1.730550597
-        _assert_success(res, desired_fun=desired_fun)
-        assert_allclose(A_eq.dot(res.x), b_eq)
-        assert_array_less(np.zeros(res.x.size) - 1e-5, res.x)
-
-    def test_bug_7237(self):
-        # https://github.com/scipy/scipy/issues/7237
-        # linprog simplex "explodes" when the pivot value is very
-        # close to zero.
-
-        c = np.array([-1, 0, 0, 0, 0, 0, 0, 0, 0])
-        A_ub = np.array([
-            [1., -724., 911., -551., -555., -896., 478., -80., -293.],
-            [1., 566., 42., 937., 233., 883., 392., -909., 57.],
-            [1., -208., -894., 539., 321., 532., -924., 942., 55.],
-            [1., 857., -859., 83., 462., -265., -971., 826., 482.],
-            [1., 314., -424., 245., -424., 194., -443., -104., -429.],
-            [1., 540., 679., 361., 149., -827., 876., 633., 302.],
-            [0., -1., -0., -0., -0., -0., -0., -0., -0.],
-            [0., -0., -1., -0., -0., -0., -0., -0., -0.],
-            [0., -0., -0., -1., -0., -0., -0., -0., -0.],
-            [0., -0., -0., -0., -1., -0., -0., -0., -0.],
-            [0., -0., -0., -0., -0., -1., -0., -0., -0.],
-            [0., -0., -0., -0., -0., -0., -1., -0., -0.],
-            [0., -0., -0., -0., -0., -0., -0., -1., -0.],
-            [0., -0., -0., -0., -0., -0., -0., -0., -1.],
-            [0., 1., 0., 0., 0., 0., 0., 0., 0.],
-            [0., 0., 1., 0., 0., 0., 0., 0., 0.],
-            [0., 0., 0., 1., 0., 0., 0., 0., 0.],
-            [0., 0., 0., 0., 1., 0., 0., 0., 0.],
-            [0., 0., 0., 0., 0., 1., 0., 0., 0.],
-            [0., 0., 0., 0., 0., 0., 1., 0., 0.],
-            [0., 0., 0., 0., 0., 0., 0., 1., 0.],
-            [0., 0., 0., 0., 0., 0., 0., 0., 1.]
-            ])
-        b_ub = np.array([
-            0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
-            0., 0., 0., 1., 1., 1., 1., 1., 1., 1., 1.])
-        A_eq = np.array([[0., 1., 1., 1., 1., 1., 1., 1., 1.]])
-        b_eq = np.array([[1.]])
-        bounds = [(None, None)] * 9
-
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_fun=108.568535, atol=1e-6)
-
-    def test_bug_8174(self):
-        # https://github.com/scipy/scipy/issues/8174
-        # The simplex method sometimes "explodes" if the pivot value is very
-        # close to zero.
-        A_ub = np.array([
-            [22714, 1008, 13380, -2713.5, -1116],
-            [-4986, -1092, -31220, 17386.5, 684],
-            [-4986, 0, 0, -2713.5, 0],
-            [22714, 0, 0, 17386.5, 0]])
-        b_ub = np.zeros(A_ub.shape[0])
-        c = -np.ones(A_ub.shape[1])
-        bounds = [(0, 1)] * A_ub.shape[1]
-        with suppress_warnings() as sup:
-            sup.filter(RuntimeWarning, "invalid value encountered")
-            sup.filter(LinAlgWarning)
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-
-        if self.options.get('tol', 1e-9) < 1e-10 and self.method == 'simplex':
-            _assert_unable_to_find_basic_feasible_sol(res)
-        else:
-            _assert_success(res, desired_fun=-2.0080717488789235, atol=1e-6)
-
-    def test_bug_8174_2(self):
-        # Test supplementary example from issue 8174.
-        # https://github.com/scipy/scipy/issues/8174
-        # https://stackoverflow.com/questions/47717012/linprog-in-scipy-optimize-checking-solution
-        c = np.array([1, 0, 0, 0, 0, 0, 0])
-        A_ub = -np.identity(7)
-        b_ub = np.array([[-2], [-2], [-2], [-2], [-2], [-2], [-2]])
-        A_eq = np.array([
-            [1, 1, 1, 1, 1, 1, 0],
-            [0.3, 1.3, 0.9, 0, 0, 0, -1],
-            [0.3, 0, 0, 0, 0, 0, -2/3],
-            [0, 0.65, 0, 0, 0, 0, -1/15],
-            [0, 0, 0.3, 0, 0, 0, -1/15]
-        ])
-        b_eq = np.array([[100], [0], [0], [0], [0]])
-
-        with suppress_warnings() as sup:
-            if has_umfpack:
-                sup.filter(UmfpackWarning)
-            sup.filter(OptimizeWarning, "A_eq does not appear...")
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-        _assert_success(res, desired_fun=43.3333333331385)
-
-    def test_bug_8561(self):
-        # Test that pivot row is chosen correctly when using Bland's rule
-        # This was originally written for the simplex method with
-        # Bland's rule only, but it doesn't hurt to test all methods/options
-        # https://github.com/scipy/scipy/issues/8561
-        c = np.array([7, 0, -4, 1.5, 1.5])
-        A_ub = np.array([
-            [4, 5.5, 1.5, 1.0, -3.5],
-            [1, -2.5, -2, 2.5, 0.5],
-            [3, -0.5, 4, -12.5, -7],
-            [-1, 4.5, 2, -3.5, -2],
-            [5.5, 2, -4.5, -1, 9.5]])
-        b_ub = np.array([0, 0, 0, 0, 1])
-        res = linprog(c, A_ub=A_ub, b_ub=b_ub, options=self.options,
-                      method=self.method)
-        _assert_success(res, desired_x=[0, 0, 19, 16/3, 29/3])
-
-    def test_bug_8662(self):
-        # linprog simplex used to report incorrect optimal results
-        # https://github.com/scipy/scipy/issues/8662
-        c = [-10, 10, 6, 3]
-        A_ub = [[8, -8, -4, 6],
-                [-8, 8, 4, -6],
-                [-4, 4, 8, -4],
-                [3, -3, -3, -10]]
-        b_ub = [9, -9, -9, -4]
-        bounds = [(0, None), (0, None), (0, None), (0, None)]
-        desired_fun = 36.0000000000
-
-        with suppress_warnings() as sup:
-            if has_umfpack:
-                sup.filter(UmfpackWarning)
-            sup.filter(RuntimeWarning, "invalid value encountered")
-            sup.filter(LinAlgWarning)
-            res1 = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                           method=self.method, options=self.options)
-
-        # Set boundary condition as a constraint
-        A_ub.append([0, 0, -1, 0])
-        b_ub.append(0)
-        bounds[2] = (None, None)
-
-        with suppress_warnings() as sup:
-            if has_umfpack:
-                sup.filter(UmfpackWarning)
-            sup.filter(RuntimeWarning, "invalid value encountered")
-            sup.filter(LinAlgWarning)
-            res2 = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                           method=self.method, options=self.options)
-        rtol = 1e-5
-        _assert_success(res1, desired_fun=desired_fun, rtol=rtol)
-        _assert_success(res2, desired_fun=desired_fun, rtol=rtol)
-
-    def test_bug_8663(self):
-        # exposed a bug in presolve
-        # https://github.com/scipy/scipy/issues/8663
-        c = [1, 5]
-        A_eq = [[0, -7]]
-        b_eq = [-6]
-        bounds = [(0, None), (None, None)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_x=[0, 6./7], desired_fun=5*6./7)
-
-    def test_bug_8664(self):
-        # interior-point has trouble with this when presolve is off
-        # tested for interior-point with presolve off in TestLinprogIPSpecific
-        # https://github.com/scipy/scipy/issues/8664
-        c = [4]
-        A_ub = [[2], [5]]
-        b_ub = [4, 4]
-        A_eq = [[0], [-8], [9]]
-        b_eq = [3, 2, 10]
-        with suppress_warnings() as sup:
-            sup.filter(RuntimeWarning)
-            sup.filter(OptimizeWarning, "Solving system with option...")
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-        _assert_infeasible(res)
-
-    def test_bug_8973(self):
-        """
-        Test whether bug described at:
-        https://github.com/scipy/scipy/issues/8973
-        was fixed.
-        """
-        c = np.array([0, 0, 0, 1, -1])
-        A_ub = np.array([[1, 0, 0, 0, 0], [0, 1, 0, 0, 0]])
-        b_ub = np.array([2, -2])
-        bounds = [(None, None), (None, None), (None, None), (-1, 1), (-1, 1)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        # solution vector x is not unique
-        _assert_success(res, desired_fun=-2)
-        # HiGHS IPM had an issue where the following wasn't true!
-        assert_equal(c @ res.x, res.fun)
-
-    def test_bug_8973_2(self):
-        """
-        Additional test for:
-        https://github.com/scipy/scipy/issues/8973
-        suggested in
-        https://github.com/scipy/scipy/pull/8985
-        review by @antonior92
-        """
-        c = np.zeros(1)
-        A_ub = np.array([[1]])
-        b_ub = np.array([-2])
-        bounds = (None, None)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options)
-        _assert_success(res, desired_x=[-2], desired_fun=0)
-
-    def test_bug_10124(self):
-        """
-        Test for linprog docstring problem
-        'disp'=True caused revised simplex failure
-        """
-        c = np.zeros(1)
-        A_ub = np.array([[1]])
-        b_ub = np.array([-2])
-        bounds = (None, None)
-        c = [-1, 4]
-        A_ub = [[-3, 1], [1, 2]]
-        b_ub = [6, 4]
-        bounds = [(None, None), (-3, None)]
-        o = {"disp": True}
-        o.update(self.options)
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=o)
-        _assert_success(res, desired_x=[10, -3], desired_fun=-22)
-
-    def test_bug_10349(self):
-        """
-        Test for redundancy removal tolerance issue
-        https://github.com/scipy/scipy/issues/10349
-        """
-        A_eq = np.array([[1, 1, 0, 0, 0, 0],
-                         [0, 0, 1, 1, 0, 0],
-                         [0, 0, 0, 0, 1, 1],
-                         [1, 0, 1, 0, 0, 0],
-                         [0, 0, 0, 1, 1, 0],
-                         [0, 1, 0, 0, 0, 1]])
-        b_eq = np.array([221, 210, 10, 141, 198, 102])
-        c = np.concatenate((0, 1, np.zeros(4)), axis=None)
-        with suppress_warnings() as sup:
-            sup.filter(OptimizeWarning, "A_eq does not appear...")
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=self.options)
-        _assert_success(res, desired_x=[129, 92, 12, 198, 0, 10], desired_fun=92)
-
-    @pytest.mark.skipif(sys.platform == 'darwin',
-                        reason=("Failing on some local macOS builds, "
-                                "see gh-13846"))
-    def test_bug_10466(self):
-        """
-        Test that autoscale fixes poorly-scaled problem
-        """
-        c = [-8., -0., -8., -0., -8., -0., -0., -0., -0., -0., -0., -0., -0.]
-        A_eq = [[1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
-                [0., 0., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
-                [0., 0., 0., 0., 1., 1., 0., 0., 0., 0., 0., 0., 0.],
-                [1., 0., 1., 0., 1., 0., -1., 0., 0., 0., 0., 0., 0.],
-                [1., 0., 1., 0., 1., 0., 0., 1., 0., 0., 0., 0., 0.],
-                [1., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],
-                [1., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],
-                [1., 0., 1., 0., 1., 0., 0., 0., 0., 0., 1., 0., 0.],
-                [0., 0., 1., 0., 1., 0., 0., 0., 0., 0., 0., 1., 0.],
-                [0., 0., 1., 0., 1., 0., 0., 0., 0., 0., 0., 0., 1.]]
-
-        b_eq = [3.14572800e+08, 4.19430400e+08, 5.24288000e+08,
-                1.00663296e+09, 1.07374182e+09, 1.07374182e+09,
-                1.07374182e+09, 1.07374182e+09, 1.07374182e+09,
-                1.07374182e+09]
-
-        o = {}
-        # HiGHS methods don't use autoscale option
-        if not self.method.startswith("highs"):
-            o = {"autoscale": True}
-        o.update(self.options)
-
-        with suppress_warnings() as sup:
-            sup.filter(OptimizeWarning, "Solving system with option...")
-            if has_umfpack:
-                sup.filter(UmfpackWarning)
-            sup.filter(RuntimeWarning, "scipy.linalg.solve\nIll...")
-            sup.filter(RuntimeWarning, "divide by zero encountered...")
-            sup.filter(RuntimeWarning, "overflow encountered...")
-            sup.filter(RuntimeWarning, "invalid value encountered...")
-            sup.filter(LinAlgWarning, "Ill-conditioned matrix...")
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=o)
-        assert_allclose(res.fun, -8589934560)
-
-    def test_bug_20584(self):
-        """
-        Test that when integrality is a list of all zeros, linprog gives the
-        same result as when it is an array of all zeros / integrality=None
-        """
-        c = [1, 1]
-        A_ub = [[-1, 0]]
-        b_ub = [-2.5]
-        res1 = linprog(c, A_ub=A_ub, b_ub=b_ub, integrality=[0, 0])
-        res2 = linprog(c, A_ub=A_ub, b_ub=b_ub, integrality=np.asarray([0, 0]))
-        res3 = linprog(c, A_ub=A_ub, b_ub=b_ub, integrality=None)
-        assert_equal(res1.x, res2.x)
-        assert_equal(res1.x, res3.x)
-
-
-#########################
-# Method-specific Tests #
-#########################
-
-
-@pytest.mark.filterwarnings("ignore::DeprecationWarning")
-class LinprogSimplexTests(LinprogCommonTests):
-    method = "simplex"
-
-
-@pytest.mark.filterwarnings("ignore::DeprecationWarning")
-class LinprogIPTests(LinprogCommonTests):
-    method = "interior-point"
-
-    def test_bug_10466(self):
-        pytest.skip("Test is failing, but solver is deprecated.")
-
-
-@pytest.mark.filterwarnings("ignore::DeprecationWarning")
-class LinprogRSTests(LinprogCommonTests):
-    method = "revised simplex"
-
-    # Revised simplex does not reliably solve these problems.
-    # Failure is intermittent due to the random choice of elements to complete
-    # the basis after phase 1 terminates. In any case, linprog exists
-    # gracefully, reporting numerical difficulties. I do not think this should
-    # prevent revised simplex from being merged, as it solves the problems
-    # most of the time and solves a broader range of problems than the existing
-    # simplex implementation.
-    # I believe that the root cause is the same for all three and that this
-    # same issue prevents revised simplex from solving many other problems
-    # reliably. Somehow the pivoting rule allows the algorithm to pivot into
-    # a singular basis. I haven't been able to find a reference that
-    # acknowledges this possibility, suggesting that there is a bug. On the
-    # other hand, the pivoting rule is quite simple, and I can't find a
-    # mistake, which suggests that this is a possibility with the pivoting
-    # rule. Hopefully, a better pivoting rule will fix the issue.
-
-    def test_bug_5400(self):
-        pytest.skip("Intermittent failure acceptable.")
-
-    def test_bug_8662(self):
-        pytest.skip("Intermittent failure acceptable.")
-
-    def test_network_flow(self):
-        pytest.skip("Intermittent failure acceptable.")
-
-
-class LinprogHiGHSTests(LinprogCommonTests):
-    def test_callback(self):
-        # this is the problem from test_callback
-        def cb(res):
-            return None
-        c = np.array([-3, -2])
-        A_ub = [[2, 1], [1, 1], [1, 0]]
-        b_ub = [10, 8, 4]
-        assert_raises(NotImplementedError, linprog, c, A_ub=A_ub, b_ub=b_ub,
-                      callback=cb, method=self.method)
-        res = linprog(c, A_ub=A_ub, b_ub=b_ub, method=self.method)
-        _assert_success(res, desired_fun=-18.0, desired_x=[2, 6])
-
-    @pytest.mark.parametrize("options",
-                             [{"maxiter": -1},
-                              {"disp": -1},
-                              {"presolve": -1},
-                              {"time_limit": -1},
-                              {"dual_feasibility_tolerance": -1},
-                              {"primal_feasibility_tolerance": -1},
-                              {"ipm_optimality_tolerance": -1},
-                              {"simplex_dual_edge_weight_strategy": "ekki"},
-                              ])
-    def test_invalid_option_values(self, options):
-        def f(options):
-            linprog(1, method=self.method, options=options)
-        options.update(self.options)
-        assert_warns(OptimizeWarning, f, options=options)
-
-    def test_crossover(self):
-        A_eq, b_eq, c, _, _ = magic_square(4)
-        bounds = (0, 1)
-        res = linprog(c, A_eq=A_eq, b_eq=b_eq,
-                      bounds=bounds, method=self.method, options=self.options)
-        # there should be nonzero crossover iterations for IPM (only)
-        assert_equal(res.crossover_nit == 0, self.method != "highs-ipm")
-
-    @pytest.mark.fail_slow(5)
-    def test_marginals(self):
-        # Ensure lagrange multipliers are correct by comparing the derivative
-        # w.r.t. b_ub/b_eq/ub/lb to the reported duals.
-        c, A_ub, b_ub, A_eq, b_eq, bounds = very_random_gen(seed=0)
-        res = linprog(c, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq,
-                      bounds=bounds, method=self.method, options=self.options)
-        lb, ub = bounds.T
-
-        # sensitivity w.r.t. b_ub
-        def f_bub(x):
-            return linprog(c, A_ub, x, A_eq, b_eq, bounds,
-                           method=self.method).fun
-
-        dfdbub = approx_derivative(f_bub, b_ub, method='3-point', f0=res.fun)
-        assert_allclose(res.ineqlin.marginals, dfdbub)
-
-        # sensitivity w.r.t. b_eq
-        def f_beq(x):
-            return linprog(c, A_ub, b_ub, A_eq, x, bounds,
-                           method=self.method).fun
-
-        dfdbeq = approx_derivative(f_beq, b_eq, method='3-point', f0=res.fun)
-        assert_allclose(res.eqlin.marginals, dfdbeq)
-
-        # sensitivity w.r.t. lb
-        def f_lb(x):
-            bounds = np.array([x, ub]).T
-            return linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                           method=self.method).fun
-
-        with np.errstate(invalid='ignore'):
-            # approx_derivative has trouble where lb is infinite
-            dfdlb = approx_derivative(f_lb, lb, method='3-point', f0=res.fun)
-            dfdlb[~np.isfinite(lb)] = 0
-
-        assert_allclose(res.lower.marginals, dfdlb)
-
-        # sensitivity w.r.t. ub
-        def f_ub(x):
-            bounds = np.array([lb, x]).T
-            return linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                           method=self.method).fun
-
-        with np.errstate(invalid='ignore'):
-            dfdub = approx_derivative(f_ub, ub, method='3-point', f0=res.fun)
-            dfdub[~np.isfinite(ub)] = 0
-
-        assert_allclose(res.upper.marginals, dfdub)
-
-    def test_dual_feasibility(self):
-        # Ensure solution is dual feasible using marginals
-        c, A_ub, b_ub, A_eq, b_eq, bounds = very_random_gen(seed=42)
-        res = linprog(c, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq,
-                      bounds=bounds, method=self.method, options=self.options)
-
-        # KKT dual feasibility equation from Theorem 1 from
-        # http://www.personal.psu.edu/cxg286/LPKKT.pdf
-        resid = (-c + A_ub.T @ res.ineqlin.marginals +
-                 A_eq.T @ res.eqlin.marginals +
-                 res.upper.marginals +
-                 res.lower.marginals)
-        assert_allclose(resid, 0, atol=1e-12)
-
-    def test_complementary_slackness(self):
-        # Ensure that the complementary slackness condition is satisfied.
-        c, A_ub, b_ub, A_eq, b_eq, bounds = very_random_gen(seed=42)
-        res = linprog(c, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq,
-                      bounds=bounds, method=self.method, options=self.options)
-
-        # KKT complementary slackness equation from Theorem 1 from
-        # http://www.personal.psu.edu/cxg286/LPKKT.pdf modified for
-        # non-zero RHS
-        assert np.allclose(res.ineqlin.marginals @ (b_ub - A_ub @ res.x), 0)
-
-
-################################
-# Simplex Option-Specific Tests#
-################################
-
-
-class TestLinprogSimplexDefault(LinprogSimplexTests):
-
-    def setup_method(self):
-        self.options = {}
-
-    def test_bug_5400(self):
-        pytest.skip("Simplex fails on this problem.")
-
-    def test_bug_7237_low_tol(self):
-        # Fails if the tolerance is too strict. Here, we test that
-        # even if the solution is wrong, the appropriate error is raised.
-        pytest.skip("Simplex fails on this problem.")
-
-    def test_bug_8174_low_tol(self):
-        # Fails if the tolerance is too strict. Here, we test that
-        # even if the solution is wrong, the appropriate warning is issued.
-        self.options.update({'tol': 1e-12})
-        with pytest.warns(OptimizeWarning):
-            super().test_bug_8174()
-
-
-class TestLinprogSimplexBland(LinprogSimplexTests):
-
-    def setup_method(self):
-        self.options = {'bland': True}
-
-    def test_bug_5400(self):
-        pytest.skip("Simplex fails on this problem.")
-
-    def test_bug_8174_low_tol(self):
-        # Fails if the tolerance is too strict. Here, we test that
-        # even if the solution is wrong, the appropriate error is raised.
-        self.options.update({'tol': 1e-12})
-        with pytest.raises(AssertionError):
-            with pytest.warns(OptimizeWarning):
-                super().test_bug_8174()
-
-
-class TestLinprogSimplexNoPresolve(LinprogSimplexTests):
-
-    def setup_method(self):
-        self.options = {'presolve': False}
-
-    is_32_bit = np.intp(0).itemsize < 8
-    is_linux = sys.platform.startswith('linux')
-
-    @pytest.mark.xfail(
-        condition=is_32_bit and is_linux,
-        reason='Fails with warning on 32-bit linux')
-    def test_bug_5400(self):
-        super().test_bug_5400()
-
-    def test_bug_6139_low_tol(self):
-        # Linprog(method='simplex') fails to find a basic feasible solution
-        # if phase 1 pseudo-objective function is outside the provided tol.
-        # https://github.com/scipy/scipy/issues/6139
-        # Without ``presolve`` eliminating such rows the result is incorrect.
-        self.options.update({'tol': 1e-12})
-        with pytest.raises(AssertionError, match='linprog status 4'):
-            return super().test_bug_6139()
-
-    def test_bug_7237_low_tol(self):
-        pytest.skip("Simplex fails on this problem.")
-
-    def test_bug_8174_low_tol(self):
-        # Fails if the tolerance is too strict. Here, we test that
-        # even if the solution is wrong, the appropriate warning is issued.
-        self.options.update({'tol': 1e-12})
-        with pytest.warns(OptimizeWarning):
-            super().test_bug_8174()
-
-    def test_unbounded_no_nontrivial_constraints_1(self):
-        pytest.skip("Tests behavior specific to presolve")
-
-    def test_unbounded_no_nontrivial_constraints_2(self):
-        pytest.skip("Tests behavior specific to presolve")
-
-
-#######################################
-# Interior-Point Option-Specific Tests#
-#######################################
-
-
-class TestLinprogIPDense(LinprogIPTests):
-    options = {"sparse": False}
-
-    # see https://github.com/scipy/scipy/issues/20216 for skip reason
-    @pytest.mark.skipif(
-        sys.platform == 'darwin',
-        reason="Fails on some macOS builds for reason not relevant to test"
-    )
-    def test_bug_6139(self):
-        super().test_bug_6139()
-
-if has_cholmod:
-    class TestLinprogIPSparseCholmod(LinprogIPTests):
-        options = {"sparse": True, "cholesky": True}
-
-
-if has_umfpack:
-    class TestLinprogIPSparseUmfpack(LinprogIPTests):
-        options = {"sparse": True, "cholesky": False}
-
-        def test_network_flow_limited_capacity(self):
-            pytest.skip("Failing due to numerical issues on some platforms.")
-
-
-class TestLinprogIPSparse(LinprogIPTests):
-    options = {"sparse": True, "cholesky": False, "sym_pos": False}
-
-    @pytest.mark.skipif(
-        sys.platform == 'darwin',
-        reason="Fails on macOS x86 Accelerate builds (gh-20510)"
-    )
-    @pytest.mark.xfail_on_32bit("This test is sensitive to machine epsilon level "
-                                "perturbations in linear system solution in "
-                                "_linprog_ip._sym_solve.")
-    def test_bug_6139(self):
-        super().test_bug_6139()
-
-    @pytest.mark.xfail(reason='Fails with ATLAS, see gh-7877')
-    def test_bug_6690(self):
-        # Test defined in base class, but can't mark as xfail there
-        super().test_bug_6690()
-
-    def test_magic_square_sparse_no_presolve(self):
-        # test linprog with a problem with a rank-deficient A_eq matrix
-        A_eq, b_eq, c, _, _ = magic_square(3)
-        bounds = (0, 1)
-
-        with suppress_warnings() as sup:
-            if has_umfpack:
-                sup.filter(UmfpackWarning)
-            sup.filter(MatrixRankWarning, "Matrix is exactly singular")
-            sup.filter(OptimizeWarning, "Solving system with option...")
-
-            o = {key: self.options[key] for key in self.options}
-            o["presolve"] = False
-
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options=o)
-        _assert_success(res, desired_fun=1.730550597)
-
-    def test_sparse_solve_options(self):
-        # checking that problem is solved with all column permutation options
-        A_eq, b_eq, c, _, _ = magic_square(3)
-        with suppress_warnings() as sup:
-            sup.filter(OptimizeWarning, "A_eq does not appear...")
-            sup.filter(OptimizeWarning, "Invalid permc_spec option")
-            o = {key: self.options[key] for key in self.options}
-            permc_specs = ('NATURAL', 'MMD_ATA', 'MMD_AT_PLUS_A',
-                           'COLAMD', 'ekki-ekki-ekki')
-            # 'ekki-ekki-ekki' raises warning about invalid permc_spec option
-            # and uses default
-            for permc_spec in permc_specs:
-                o["permc_spec"] = permc_spec
-                res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                              method=self.method, options=o)
-                _assert_success(res, desired_fun=1.730550597)
-
-
-class TestLinprogIPSparsePresolve(LinprogIPTests):
-    options = {"sparse": True, "_sparse_presolve": True}
-
-    @pytest.mark.skipif(
-        sys.platform == 'darwin',
-        reason="Fails on macOS x86 Accelerate builds (gh-20510)"
-    )
-    @pytest.mark.xfail_on_32bit("This test is sensitive to machine epsilon level "
-                                "perturbations in linear system solution in "
-                                "_linprog_ip._sym_solve.")
-    def test_bug_6139(self):
-        super().test_bug_6139()
-
-    def test_enzo_example_c_with_infeasibility(self):
-        pytest.skip('_sparse_presolve=True incompatible with presolve=False')
-
-    @pytest.mark.xfail(reason='Fails with ATLAS, see gh-7877')
-    def test_bug_6690(self):
-        # Test defined in base class, but can't mark as xfail there
-        super().test_bug_6690()
-
-
-@pytest.mark.filterwarnings("ignore::DeprecationWarning")
-class TestLinprogIPSpecific:
-    method = "interior-point"
-    # the following tests don't need to be performed separately for
-    # sparse presolve, sparse after presolve, and dense
-
-    def test_solver_select(self):
-        # check that default solver is selected as expected
-        if has_cholmod:
-            options = {'sparse': True, 'cholesky': True}
-        elif has_umfpack:
-            options = {'sparse': True, 'cholesky': False}
-        else:
-            options = {'sparse': True, 'cholesky': False, 'sym_pos': False}
-        A, b, c = lpgen_2d(20, 20)
-        res1 = linprog(c, A_ub=A, b_ub=b, method=self.method, options=options)
-        res2 = linprog(c, A_ub=A, b_ub=b, method=self.method)  # default solver
-        assert_allclose(res1.fun, res2.fun,
-                        err_msg="linprog default solver unexpected result",
-                        rtol=2e-15, atol=1e-15)
-
-    def test_unbounded_below_no_presolve_original(self):
-        # formerly caused segfault in TravisCI w/ "cholesky":True
-        c = [-1]
-        bounds = [(None, 1)]
-        res = linprog(c=c, bounds=bounds,
-                      method=self.method,
-                      options={"presolve": False, "cholesky": True})
-        _assert_success(res, desired_fun=-1)
-
-    def test_cholesky(self):
-        # use cholesky factorization and triangular solves
-        A, b, c = lpgen_2d(20, 20)
-        res = linprog(c, A_ub=A, b_ub=b, method=self.method,
-                      options={"cholesky": True})  # only for dense
-        _assert_success(res, desired_fun=-64.049494229)
-
-    def test_alternate_initial_point(self):
-        # use "improved" initial point
-        A, b, c = lpgen_2d(20, 20)
-        with suppress_warnings() as sup:
-            sup.filter(RuntimeWarning, "scipy.linalg.solve\nIll...")
-            sup.filter(OptimizeWarning, "Solving system with option...")
-            sup.filter(LinAlgWarning, "Ill-conditioned matrix...")
-            res = linprog(c, A_ub=A, b_ub=b, method=self.method,
-                          options={"ip": True, "disp": True})
-            # ip code is independent of sparse/dense
-        _assert_success(res, desired_fun=-64.049494229)
-
-    def test_bug_8664(self):
-        # interior-point has trouble with this when presolve is off
-        c = [4]
-        A_ub = [[2], [5]]
-        b_ub = [4, 4]
-        A_eq = [[0], [-8], [9]]
-        b_eq = [3, 2, 10]
-        with suppress_warnings() as sup:
-            sup.filter(RuntimeWarning)
-            sup.filter(OptimizeWarning, "Solving system with option...")
-            res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                          method=self.method, options={"presolve": False})
-        assert_(not res.success, "Incorrectly reported success")
-
-
-########################################
-# Revised Simplex Option-Specific Tests#
-########################################
-
-
-class TestLinprogRSCommon(LinprogRSTests):
-    options = {}
-
-    def test_cyclic_bland(self):
-        pytest.skip("Intermittent failure acceptable.")
-
-    def test_nontrivial_problem_with_guess(self):
-        c, A_ub, b_ub, A_eq, b_eq, x_star, f_star = nontrivial_problem()
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options, x0=x_star)
-        _assert_success(res, desired_fun=f_star, desired_x=x_star)
-        assert_equal(res.nit, 0)
-
-    def test_nontrivial_problem_with_unbounded_variables(self):
-        c, A_ub, b_ub, A_eq, b_eq, x_star, f_star = nontrivial_problem()
-        bounds = [(None, None), (None, None), (0, None), (None, None)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options, x0=x_star)
-        _assert_success(res, desired_fun=f_star, desired_x=x_star)
-        assert_equal(res.nit, 0)
-
-    def test_nontrivial_problem_with_bounded_variables(self):
-        c, A_ub, b_ub, A_eq, b_eq, x_star, f_star = nontrivial_problem()
-        bounds = [(None, 1), (1, None), (0, None), (.4, .6)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options, x0=x_star)
-        _assert_success(res, desired_fun=f_star, desired_x=x_star)
-        assert_equal(res.nit, 0)
-
-    def test_nontrivial_problem_with_negative_unbounded_variable(self):
-        c, A_ub, b_ub, A_eq, b_eq, x_star, f_star = nontrivial_problem()
-        b_eq = [4]
-        x_star = np.array([-219/385, 582/385, 0, 4/10])
-        f_star = 3951/385
-        bounds = [(None, None), (1, None), (0, None), (.4, .6)]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options, x0=x_star)
-        _assert_success(res, desired_fun=f_star, desired_x=x_star)
-        assert_equal(res.nit, 0)
-
-    def test_nontrivial_problem_with_bad_guess(self):
-        c, A_ub, b_ub, A_eq, b_eq, x_star, f_star = nontrivial_problem()
-        bad_guess = [1, 2, 3, .5]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options, x0=bad_guess)
-        assert_equal(res.status, 6)
-
-    def test_redundant_constraints_with_guess(self):
-        A, b, c, _, _ = magic_square(3)
-        p = np.random.rand(*c.shape)
-        with suppress_warnings() as sup:
-            sup.filter(OptimizeWarning, "A_eq does not appear...")
-            sup.filter(RuntimeWarning, "invalid value encountered")
-            sup.filter(LinAlgWarning)
-            res = linprog(c, A_eq=A, b_eq=b, method=self.method)
-            res2 = linprog(c, A_eq=A, b_eq=b, method=self.method, x0=res.x)
-            res3 = linprog(c + p, A_eq=A, b_eq=b, method=self.method, x0=res.x)
-        _assert_success(res2, desired_fun=1.730550597)
-        assert_equal(res2.nit, 0)
-        _assert_success(res3)
-        assert_(res3.nit < res.nit)  # hot start reduces iterations
-
-
-class TestLinprogRSBland(LinprogRSTests):
-    options = {"pivot": "bland"}
-
-
-############################################
-# HiGHS-Simplex-Dual Option-Specific Tests #
-############################################
-
-
-class TestLinprogHiGHSSimplexDual(LinprogHiGHSTests):
-    method = "highs-ds"
-    options = {}
-
-    def test_lad_regression(self):
-        '''
-        The scaled model should be optimal, i.e. not produce unscaled model
-        infeasible.  See https://github.com/ERGO-Code/HiGHS/issues/494.
-        '''
-        # Test to ensure gh-13610 is resolved (mismatch between HiGHS scaled
-        # and unscaled model statuses)
-        c, A_ub, b_ub, bnds = l1_regression_prob()
-        res = linprog(c, A_ub=A_ub, b_ub=b_ub, bounds=bnds,
-                      method=self.method, options=self.options)
-        assert_equal(res.status, 0)
-        assert_(res.x is not None)
-        assert_(np.all(res.slack > -1e-6))
-        assert_(np.all(res.x <= [np.inf if ub is None else ub
-                                 for lb, ub in bnds]))
-        assert_(np.all(res.x >= [-np.inf if lb is None else lb - 1e-7
-                                 for lb, ub in bnds]))
-
-
-###################################
-# HiGHS-IPM Option-Specific Tests #
-###################################
-
-
-class TestLinprogHiGHSIPM(LinprogHiGHSTests):
-    method = "highs-ipm"
-    options = {}
-
-
-###################################
-# HiGHS-MIP Option-Specific Tests #
-###################################
-
-
-class TestLinprogHiGHSMIP:
-    method = "highs"
-    options = {}
-
-    @pytest.mark.fail_slow(5)
-    @pytest.mark.xfail(condition=(sys.maxsize < 2 ** 32 and
-                       platform.system() == "Linux"),
-                       run=False,
-                       reason="gh-16347")
-    def test_mip1(self):
-        # solve non-relaxed magic square problem (finally!)
-        # also check that values are all integers - they don't always
-        # come out of HiGHS that way
-        n = 4
-        A, b, c, numbers, M = magic_square(n)
-        bounds = [(0, 1)] * len(c)
-        integrality = [1] * len(c)
-
-        res = linprog(c=c*0, A_eq=A, b_eq=b, bounds=bounds,
-                      method=self.method, integrality=integrality)
-
-        s = (numbers.flatten() * res.x).reshape(n**2, n, n)
-        square = np.sum(s, axis=0)
-        np.testing.assert_allclose(square.sum(axis=0), M)
-        np.testing.assert_allclose(square.sum(axis=1), M)
-        np.testing.assert_allclose(np.diag(square).sum(), M)
-        np.testing.assert_allclose(np.diag(square[:, ::-1]).sum(), M)
-
-        np.testing.assert_allclose(res.x, np.round(res.x), atol=1e-12)
-
-    def test_mip2(self):
-        # solve MIP with inequality constraints and all integer constraints
-        # source: slide 5,
-        # https://www.cs.upc.edu/~erodri/webpage/cps/theory/lp/milp/slides.pdf
-
-        # use all array inputs to test gh-16681 (integrality couldn't be array)
-        A_ub = np.array([[2, -2], [-8, 10]])
-        b_ub = np.array([-1, 13])
-        c = -np.array([1, 1])
-
-        bounds = np.array([(0, np.inf)] * len(c))
-        integrality = np.ones_like(c)
-
-        res = linprog(c=c, A_ub=A_ub, b_ub=b_ub, bounds=bounds,
-                      method=self.method, integrality=integrality)
-
-        np.testing.assert_allclose(res.x, [1, 2])
-        np.testing.assert_allclose(res.fun, -3)
-
-    def test_mip3(self):
-        # solve MIP with inequality constraints and all integer constraints
-        # source: https://en.wikipedia.org/wiki/Integer_programming#Example
-        A_ub = np.array([[-1, 1], [3, 2], [2, 3]])
-        b_ub = np.array([1, 12, 12])
-        c = -np.array([0, 1])
-
-        bounds = [(0, np.inf)] * len(c)
-        integrality = [1] * len(c)
-
-        res = linprog(c=c, A_ub=A_ub, b_ub=b_ub, bounds=bounds,
-                      method=self.method, integrality=integrality)
-
-        np.testing.assert_allclose(res.fun, -2)
-        # two optimal solutions possible, just need one of them
-        assert np.allclose(res.x, [1, 2]) or np.allclose(res.x, [2, 2])
-
-    def test_mip4(self):
-        # solve MIP with inequality constraints and only one integer constraint
-        # source: https://www.mathworks.com/help/optim/ug/intlinprog.html
-        A_ub = np.array([[-1, -2], [-4, -1], [2, 1]])
-        b_ub = np.array([14, -33, 20])
-        c = np.array([8, 1])
-
-        bounds = [(0, np.inf)] * len(c)
-        integrality = [0, 1]
-
-        res = linprog(c=c, A_ub=A_ub, b_ub=b_ub, bounds=bounds,
-                      method=self.method, integrality=integrality)
-
-        np.testing.assert_allclose(res.x, [6.5, 7])
-        np.testing.assert_allclose(res.fun, 59)
-
-    def test_mip5(self):
-        # solve MIP with inequality and inequality constraints
-        # source: https://www.mathworks.com/help/optim/ug/intlinprog.html
-        A_ub = np.array([[1, 1, 1]])
-        b_ub = np.array([7])
-        A_eq = np.array([[4, 2, 1]])
-        b_eq = np.array([12])
-        c = np.array([-3, -2, -1])
-
-        bounds = [(0, np.inf), (0, np.inf), (0, 1)]
-        integrality = [0, 1, 0]
-
-        res = linprog(c=c, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq,
-                      bounds=bounds, method=self.method,
-                      integrality=integrality)
-
-        np.testing.assert_allclose(res.x, [0, 6, 0])
-        np.testing.assert_allclose(res.fun, -12)
-
-        # gh-16897: these fields were not present, ensure that they are now
-        assert res.get("mip_node_count", None) is not None
-        assert res.get("mip_dual_bound", None) is not None
-        assert res.get("mip_gap", None) is not None
-
-    @pytest.mark.slow
-    @pytest.mark.timeout(120)  # prerelease_deps_coverage_64bit_blas job
-    def test_mip6(self):
-        # solve a larger MIP with only equality constraints
-        # source: https://www.mathworks.com/help/optim/ug/intlinprog.html
-        A_eq = np.array([[22, 13, 26, 33, 21, 3, 14, 26],
-                         [39, 16, 22, 28, 26, 30, 23, 24],
-                         [18, 14, 29, 27, 30, 38, 26, 26],
-                         [41, 26, 28, 36, 18, 38, 16, 26]])
-        b_eq = np.array([7872, 10466, 11322, 12058])
-        c = np.array([2, 10, 13, 17, 7, 5, 7, 3])
-
-        bounds = [(0, np.inf)]*8
-        integrality = [1]*8
-
-        res = linprog(c=c, A_eq=A_eq, b_eq=b_eq, bounds=bounds,
-                      method=self.method, integrality=integrality)
-
-        np.testing.assert_allclose(res.fun, 1854)
-
-    @pytest.mark.xslow
-    def test_mip_rel_gap_passdown(self):
-        # MIP taken from test_mip6, solved with different values of mip_rel_gap
-        # solve a larger MIP with only equality constraints
-        # source: https://www.mathworks.com/help/optim/ug/intlinprog.html
-        A_eq = np.array([[22, 13, 26, 33, 21, 3, 14, 26],
-                         [39, 16, 22, 28, 26, 30, 23, 24],
-                         [18, 14, 29, 27, 30, 38, 26, 26],
-                         [41, 26, 28, 36, 18, 38, 16, 26]])
-        b_eq = np.array([7872, 10466, 11322, 12058])
-        c = np.array([2, 10, 13, 17, 7, 5, 7, 3])
-
-        bounds = [(0, np.inf)]*8
-        integrality = [1]*8
-
-        mip_rel_gaps = [0.5, 0.25, 0.01, 0.001]
-        sol_mip_gaps = []
-        for mip_rel_gap in mip_rel_gaps:
-            res = linprog(c=c, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq,
-                          bounds=bounds, method=self.method,
-                          integrality=integrality,
-                          options={"mip_rel_gap": mip_rel_gap})
-            final_mip_gap = res["mip_gap"]
-            # assert that the solution actually has mip_gap lower than the
-            # required mip_rel_gap supplied
-            assert final_mip_gap <= mip_rel_gap
-            sol_mip_gaps.append(final_mip_gap)
-
-        # make sure that the mip_rel_gap parameter is actually doing something
-        # check that differences between solution gaps are declining
-        # monotonically with the mip_rel_gap parameter. np.diff does
-        # x[i+1] - x[i], so flip the array before differencing to get
-        # what should be a positive, monotone decreasing series of solution
-        # gaps
-        gap_diffs = np.diff(np.flip(sol_mip_gaps))
-        assert np.all(gap_diffs >= 0)
-        assert not np.all(gap_diffs == 0)
-
-    def test_semi_continuous(self):
-        # See issue #18106. This tests whether the solution is being
-        # checked correctly (status is 0) when integrality > 1:
-        # values are allowed to be 0 even if 0 is out of bounds.
-
-        c = np.array([1., 1., -1, -1])
-        bounds = np.array([[0.5, 1.5], [0.5, 1.5], [0.5, 1.5], [0.5, 1.5]])
-        integrality = np.array([2, 3, 2, 3])
-
-        res = linprog(c, bounds=bounds,
-                      integrality=integrality, method='highs')
-
-        np.testing.assert_allclose(res.x, [0, 0, 1.5, 1])
-        assert res.status == 0
-
-
-###########################
-# Autoscale-Specific Tests#
-###########################
-
-
-@pytest.mark.filterwarnings("ignore::DeprecationWarning")
-class AutoscaleTests:
-    options = {"autoscale": True}
-
-    test_bug_6139 = LinprogCommonTests.test_bug_6139
-    test_bug_6690 = LinprogCommonTests.test_bug_6690
-    test_bug_7237 = LinprogCommonTests.test_bug_7237
-
-
-class TestAutoscaleIP(AutoscaleTests):
-    method = "interior-point"
-
-    def test_bug_6139(self):
-        self.options['tol'] = 1e-10
-        return AutoscaleTests.test_bug_6139(self)
-
-
-class TestAutoscaleSimplex(AutoscaleTests):
-    method = "simplex"
-
-
-class TestAutoscaleRS(AutoscaleTests):
-    method = "revised simplex"
-
-    def test_nontrivial_problem_with_guess(self):
-        c, A_ub, b_ub, A_eq, b_eq, x_star, f_star = nontrivial_problem()
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options, x0=x_star)
-        _assert_success(res, desired_fun=f_star, desired_x=x_star)
-        assert_equal(res.nit, 0)
-
-    def test_nontrivial_problem_with_bad_guess(self):
-        c, A_ub, b_ub, A_eq, b_eq, x_star, f_star = nontrivial_problem()
-        bad_guess = [1, 2, 3, .5]
-        res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds,
-                      method=self.method, options=self.options, x0=bad_guess)
-        assert_equal(res.status, 6)
-
-
-###########################
-# Redundancy Removal Tests#
-###########################
-
-
-@pytest.mark.filterwarnings("ignore::DeprecationWarning")
-class RRTests:
-    method = "interior-point"
-    LCT = LinprogCommonTests
-    # these are a few of the existing tests that have redundancy
-    test_RR_infeasibility = LCT.test_remove_redundancy_infeasibility
-    test_bug_10349 = LCT.test_bug_10349
-    test_bug_7044 = LCT.test_bug_7044
-    test_NFLC = LCT.test_network_flow_limited_capacity
-    test_enzo_example_b = LCT.test_enzo_example_b
-
-
-class TestRRSVD(RRTests):
-    options = {"rr_method": "SVD"}
-
-
-class TestRRPivot(RRTests):
-    options = {"rr_method": "pivot"}
-
-
-class TestRRID(RRTests):
-    options = {"rr_method": "ID"}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lsq_common.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lsq_common.py
deleted file mode 100644
index 650deedce88b6babd8a3f2b62a5839f1a6cb966c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lsq_common.py
+++ /dev/null
@@ -1,297 +0,0 @@
-from numpy.testing import assert_, assert_allclose, assert_equal
-from pytest import raises as assert_raises
-import numpy as np
-
-from scipy.optimize._lsq.common import (
-    step_size_to_bound, find_active_constraints, make_strictly_feasible,
-    CL_scaling_vector, intersect_trust_region, build_quadratic_1d,
-    minimize_quadratic_1d, evaluate_quadratic, reflective_transformation,
-    left_multiplied_operator, right_multiplied_operator)
-
-
-class TestBounds:
-    def test_step_size_to_bounds(self):
-        lb = np.array([-1.0, 2.5, 10.0])
-        ub = np.array([1.0, 5.0, 100.0])
-        x = np.array([0.0, 2.5, 12.0])
-
-        s = np.array([0.1, 0.0, 0.0])
-        step, hits = step_size_to_bound(x, s, lb, ub)
-        assert_equal(step, 10)
-        assert_equal(hits, [1, 0, 0])
-
-        s = np.array([0.01, 0.05, -1.0])
-        step, hits = step_size_to_bound(x, s, lb, ub)
-        assert_equal(step, 2)
-        assert_equal(hits, [0, 0, -1])
-
-        s = np.array([10.0, -0.0001, 100.0])
-        step, hits = step_size_to_bound(x, s, lb, ub)
-        assert_equal(step, np.array(-0))
-        assert_equal(hits, [0, -1, 0])
-
-        s = np.array([1.0, 0.5, -2.0])
-        step, hits = step_size_to_bound(x, s, lb, ub)
-        assert_equal(step, 1.0)
-        assert_equal(hits, [1, 0, -1])
-
-        s = np.zeros(3)
-        step, hits = step_size_to_bound(x, s, lb, ub)
-        assert_equal(step, np.inf)
-        assert_equal(hits, [0, 0, 0])
-
-    def test_find_active_constraints(self):
-        lb = np.array([0.0, -10.0, 1.0])
-        ub = np.array([1.0, 0.0, 100.0])
-
-        x = np.array([0.5, -5.0, 2.0])
-        active = find_active_constraints(x, lb, ub)
-        assert_equal(active, [0, 0, 0])
-
-        x = np.array([0.0, 0.0, 10.0])
-        active = find_active_constraints(x, lb, ub)
-        assert_equal(active, [-1, 1, 0])
-
-        active = find_active_constraints(x, lb, ub, rtol=0)
-        assert_equal(active, [-1, 1, 0])
-
-        x = np.array([1e-9, -1e-8, 100 - 1e-9])
-        active = find_active_constraints(x, lb, ub)
-        assert_equal(active, [0, 0, 1])
-
-        active = find_active_constraints(x, lb, ub, rtol=1.5e-9)
-        assert_equal(active, [-1, 0, 1])
-
-        lb = np.array([1.0, -np.inf, -np.inf])
-        ub = np.array([np.inf, 10.0, np.inf])
-
-        x = np.ones(3)
-        active = find_active_constraints(x, lb, ub)
-        assert_equal(active, [-1, 0, 0])
-
-        # Handles out-of-bound cases.
-        x = np.array([0.0, 11.0, 0.0])
-        active = find_active_constraints(x, lb, ub)
-        assert_equal(active, [-1, 1, 0])
-
-        active = find_active_constraints(x, lb, ub, rtol=0)
-        assert_equal(active, [-1, 1, 0])
-
-    def test_make_strictly_feasible(self):
-        lb = np.array([-0.5, -0.8, 2.0])
-        ub = np.array([0.8, 1.0, 3.0])
-
-        x = np.array([-0.5, 0.0, 2 + 1e-10])
-
-        x_new = make_strictly_feasible(x, lb, ub, rstep=0)
-        assert_(x_new[0] > -0.5)
-        assert_equal(x_new[1:], x[1:])
-
-        x_new = make_strictly_feasible(x, lb, ub, rstep=1e-4)
-        assert_equal(x_new, [-0.5 + 1e-4, 0.0, 2 * (1 + 1e-4)])
-
-        x = np.array([-0.5, -1, 3.1])
-        x_new = make_strictly_feasible(x, lb, ub)
-        assert_(np.all((x_new >= lb) & (x_new <= ub)))
-
-        x_new = make_strictly_feasible(x, lb, ub, rstep=0)
-        assert_(np.all((x_new >= lb) & (x_new <= ub)))
-
-        lb = np.array([-1, 100.0])
-        ub = np.array([1, 100.0 + 1e-10])
-        x = np.array([0, 100.0])
-        x_new = make_strictly_feasible(x, lb, ub, rstep=1e-8)
-        assert_equal(x_new, [0, 100.0 + 0.5e-10])
-
-    def test_scaling_vector(self):
-        lb = np.array([-np.inf, -5.0, 1.0, -np.inf])
-        ub = np.array([1.0, np.inf, 10.0, np.inf])
-        x = np.array([0.5, 2.0, 5.0, 0.0])
-        g = np.array([1.0, 0.1, -10.0, 0.0])
-        v, dv = CL_scaling_vector(x, g, lb, ub)
-        assert_equal(v, [1.0, 7.0, 5.0, 1.0])
-        assert_equal(dv, [0.0, 1.0, -1.0, 0.0])
-
-
-class TestQuadraticFunction:
-    def setup_method(self):
-        self.J = np.array([
-            [0.1, 0.2],
-            [-1.0, 1.0],
-            [0.5, 0.2]])
-        self.g = np.array([0.8, -2.0])
-        self.diag = np.array([1.0, 2.0])
-
-    def test_build_quadratic_1d(self):
-        s = np.zeros(2)
-        a, b = build_quadratic_1d(self.J, self.g, s)
-        assert_equal(a, 0)
-        assert_equal(b, 0)
-
-        a, b = build_quadratic_1d(self.J, self.g, s, diag=self.diag)
-        assert_equal(a, 0)
-        assert_equal(b, 0)
-
-        s = np.array([1.0, -1.0])
-        a, b = build_quadratic_1d(self.J, self.g, s)
-        assert_equal(a, 2.05)
-        assert_equal(b, 2.8)
-
-        a, b = build_quadratic_1d(self.J, self.g, s, diag=self.diag)
-        assert_equal(a, 3.55)
-        assert_equal(b, 2.8)
-
-        s0 = np.array([0.5, 0.5])
-        a, b, c = build_quadratic_1d(self.J, self.g, s, diag=self.diag, s0=s0)
-        assert_equal(a, 3.55)
-        assert_allclose(b, 2.39)
-        assert_allclose(c, -0.1525)
-
-    def test_minimize_quadratic_1d(self):
-        a = 5
-        b = -1
-
-        t, y = minimize_quadratic_1d(a, b, 1, 2)
-        assert_equal(t, 1)
-        assert_allclose(y, a * t**2 + b * t, rtol=1e-15)
-
-        t, y = minimize_quadratic_1d(a, b, -2, -1)
-        assert_equal(t, -1)
-        assert_allclose(y, a * t**2 + b * t, rtol=1e-15)
-
-        t, y = minimize_quadratic_1d(a, b, -1, 1)
-        assert_equal(t, 0.1)
-        assert_allclose(y, a * t**2 + b * t, rtol=1e-15)
-
-        c = 10
-        t, y = minimize_quadratic_1d(a, b, -1, 1, c=c)
-        assert_equal(t, 0.1)
-        assert_allclose(y, a * t**2 + b * t + c, rtol=1e-15)
-
-        t, y = minimize_quadratic_1d(a, b, -np.inf, np.inf, c=c)
-        assert_equal(t, 0.1)
-        assert_allclose(y, a * t ** 2 + b * t + c, rtol=1e-15)
-
-        t, y = minimize_quadratic_1d(a, b, 0, np.inf, c=c)
-        assert_equal(t, 0.1)
-        assert_allclose(y, a * t ** 2 + b * t + c, rtol=1e-15)
-
-        t, y = minimize_quadratic_1d(a, b, -np.inf, 0, c=c)
-        assert_equal(t, 0)
-        assert_allclose(y, a * t ** 2 + b * t + c, rtol=1e-15)
-
-        a = -1
-        b = 0.2
-        t, y = minimize_quadratic_1d(a, b, -np.inf, np.inf)
-        assert_equal(y, -np.inf)
-
-        t, y = minimize_quadratic_1d(a, b, 0, np.inf)
-        assert_equal(t, np.inf)
-        assert_equal(y, -np.inf)
-
-        t, y = minimize_quadratic_1d(a, b, -np.inf, 0)
-        assert_equal(t, -np.inf)
-        assert_equal(y, -np.inf)
-
-    def test_evaluate_quadratic(self):
-        s = np.array([1.0, -1.0])
-
-        value = evaluate_quadratic(self.J, self.g, s)
-        assert_equal(value, 4.85)
-
-        value = evaluate_quadratic(self.J, self.g, s, diag=self.diag)
-        assert_equal(value, 6.35)
-
-        s = np.array([[1.0, -1.0],
-                     [1.0, 1.0],
-                     [0.0, 0.0]])
-
-        values = evaluate_quadratic(self.J, self.g, s)
-        assert_allclose(values, [4.85, -0.91, 0.0])
-
-        values = evaluate_quadratic(self.J, self.g, s, diag=self.diag)
-        assert_allclose(values, [6.35, 0.59, 0.0])
-
-
-class TestTrustRegion:
-    def test_intersect(self):
-        Delta = 1.0
-
-        x = np.zeros(3)
-        s = np.array([1.0, 0.0, 0.0])
-        t_neg, t_pos = intersect_trust_region(x, s, Delta)
-        assert_equal(t_neg, -1)
-        assert_equal(t_pos, 1)
-
-        s = np.array([-1.0, 1.0, -1.0])
-        t_neg, t_pos = intersect_trust_region(x, s, Delta)
-        assert_allclose(t_neg, -3**-0.5)
-        assert_allclose(t_pos, 3**-0.5)
-
-        x = np.array([0.5, -0.5, 0])
-        s = np.array([0, 0, 1.0])
-        t_neg, t_pos = intersect_trust_region(x, s, Delta)
-        assert_allclose(t_neg, -2**-0.5)
-        assert_allclose(t_pos, 2**-0.5)
-
-        x = np.ones(3)
-        assert_raises(ValueError, intersect_trust_region, x, s, Delta)
-
-        x = np.zeros(3)
-        s = np.zeros(3)
-        assert_raises(ValueError, intersect_trust_region, x, s, Delta)
-
-
-def test_reflective_transformation():
-    lb = np.array([-1, -2], dtype=float)
-    ub = np.array([5, 3], dtype=float)
-
-    y = np.array([0, 0])
-    x, g = reflective_transformation(y, lb, ub)
-    assert_equal(x, y)
-    assert_equal(g, np.ones(2))
-
-    y = np.array([-4, 4], dtype=float)
-
-    x, g = reflective_transformation(y, lb, np.array([np.inf, np.inf]))
-    assert_equal(x, [2, 4])
-    assert_equal(g, [-1, 1])
-
-    x, g = reflective_transformation(y, np.array([-np.inf, -np.inf]), ub)
-    assert_equal(x, [-4, 2])
-    assert_equal(g, [1, -1])
-
-    x, g = reflective_transformation(y, lb, ub)
-    assert_equal(x, [2, 2])
-    assert_equal(g, [-1, -1])
-
-    lb = np.array([-np.inf, -2])
-    ub = np.array([5, np.inf])
-    y = np.array([10, 10], dtype=float)
-    x, g = reflective_transformation(y, lb, ub)
-    assert_equal(x, [0, 10])
-    assert_equal(g, [-1, 1])
-
-
-def test_linear_operators():
-    A = np.arange(6).reshape((3, 2))
-
-    d_left = np.array([-1, 2, 5])
-    DA = np.diag(d_left).dot(A)
-    J_left = left_multiplied_operator(A, d_left)
-
-    d_right = np.array([5, 10])
-    AD = A.dot(np.diag(d_right))
-    J_right = right_multiplied_operator(A, d_right)
-
-    x = np.array([-2, 3])
-    X = -2 * np.arange(2, 8).reshape((2, 3))
-    xt = np.array([0, -2, 15])
-
-    assert_allclose(DA.dot(x), J_left.matvec(x))
-    assert_allclose(DA.dot(X), J_left.matmat(X))
-    assert_allclose(DA.T.dot(xt), J_left.rmatvec(xt))
-
-    assert_allclose(AD.dot(x), J_right.matvec(x))
-    assert_allclose(AD.dot(X), J_right.matmat(X))
-    assert_allclose(AD.T.dot(xt), J_right.rmatvec(xt))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lsq_linear.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lsq_linear.py
deleted file mode 100644
index a2fdd12218510be71bbe2c9009b2bad847967add..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_lsq_linear.py
+++ /dev/null
@@ -1,285 +0,0 @@
-import pytest
-
-import numpy as np
-from numpy.linalg import lstsq
-from numpy.testing import assert_allclose, assert_equal, assert_
-
-from scipy.sparse import rand, coo_matrix
-from scipy.sparse.linalg import aslinearoperator
-from scipy.optimize import lsq_linear
-from scipy.optimize._minimize import Bounds
-
-
-A = np.array([
-    [0.171, -0.057],
-    [-0.049, -0.248],
-    [-0.166, 0.054],
-])
-b = np.array([0.074, 1.014, -0.383])
-
-
-class BaseMixin:
-    def setup_method(self):
-        self.rnd = np.random.RandomState(0)
-
-    def test_dense_no_bounds(self):
-        for lsq_solver in self.lsq_solvers:
-            res = lsq_linear(A, b, method=self.method, lsq_solver=lsq_solver)
-            assert_allclose(res.x, lstsq(A, b, rcond=-1)[0])
-            assert_allclose(res.x, res.unbounded_sol[0])
-
-    def test_dense_bounds(self):
-        # Solutions for comparison are taken from MATLAB.
-        lb = np.array([-1, -10])
-        ub = np.array([1, 0])
-        unbounded_sol = lstsq(A, b, rcond=-1)[0]
-        for lsq_solver in self.lsq_solvers:
-            res = lsq_linear(A, b, (lb, ub), method=self.method,
-                             lsq_solver=lsq_solver)
-            assert_allclose(res.x, lstsq(A, b, rcond=-1)[0])
-            assert_allclose(res.unbounded_sol[0], unbounded_sol)
-
-        lb = np.array([0.0, -np.inf])
-        for lsq_solver in self.lsq_solvers:
-            res = lsq_linear(A, b, (lb, np.inf), method=self.method,
-                             lsq_solver=lsq_solver)
-            assert_allclose(res.x, np.array([0.0, -4.084174437334673]),
-                            atol=1e-6)
-            assert_allclose(res.unbounded_sol[0], unbounded_sol)
-
-        lb = np.array([-1, 0])
-        for lsq_solver in self.lsq_solvers:
-            res = lsq_linear(A, b, (lb, np.inf), method=self.method,
-                             lsq_solver=lsq_solver)
-            assert_allclose(res.x, np.array([0.448427311733504, 0]),
-                            atol=1e-15)
-            assert_allclose(res.unbounded_sol[0], unbounded_sol)
-
-        ub = np.array([np.inf, -5])
-        for lsq_solver in self.lsq_solvers:
-            res = lsq_linear(A, b, (-np.inf, ub), method=self.method,
-                             lsq_solver=lsq_solver)
-            assert_allclose(res.x, np.array([-0.105560998682388, -5]))
-            assert_allclose(res.unbounded_sol[0], unbounded_sol)
-
-        ub = np.array([-1, np.inf])
-        for lsq_solver in self.lsq_solvers:
-            res = lsq_linear(A, b, (-np.inf, ub), method=self.method,
-                             lsq_solver=lsq_solver)
-            assert_allclose(res.x, np.array([-1, -4.181102129483254]))
-            assert_allclose(res.unbounded_sol[0], unbounded_sol)
-
-        lb = np.array([0, -4])
-        ub = np.array([1, 0])
-        for lsq_solver in self.lsq_solvers:
-            res = lsq_linear(A, b, (lb, ub), method=self.method,
-                             lsq_solver=lsq_solver)
-            assert_allclose(res.x, np.array([0.005236663400791, -4]))
-            assert_allclose(res.unbounded_sol[0], unbounded_sol)
-
-    def test_bounds_variants(self):
-        x = np.array([1, 3])
-        A = self.rnd.uniform(size=(2, 2))
-        b = A@x
-        lb = np.array([1, 1])
-        ub = np.array([2, 2])
-        bounds_old = (lb, ub)
-        bounds_new = Bounds(lb, ub)
-        res_old = lsq_linear(A, b, bounds_old)
-        res_new = lsq_linear(A, b, bounds_new)
-        assert not np.allclose(res_new.x, res_new.unbounded_sol[0])
-        assert_allclose(res_old.x, res_new.x)
-
-    def test_np_matrix(self):
-        # gh-10711
-        with np.testing.suppress_warnings() as sup:
-            sup.filter(PendingDeprecationWarning)
-            A = np.matrix([[20, -4, 0, 2, 3], [10, -2, 1, 0, -1]])
-        k = np.array([20, 15])
-        lsq_linear(A, k)
-
-    def test_dense_rank_deficient(self):
-        A = np.array([[-0.307, -0.184]])
-        b = np.array([0.773])
-        lb = [-0.1, -0.1]
-        ub = [0.1, 0.1]
-        for lsq_solver in self.lsq_solvers:
-            res = lsq_linear(A, b, (lb, ub), method=self.method,
-                             lsq_solver=lsq_solver)
-            assert_allclose(res.x, [-0.1, -0.1])
-            assert_allclose(res.unbounded_sol[0], lstsq(A, b, rcond=-1)[0])
-
-        A = np.array([
-            [0.334, 0.668],
-            [-0.516, -1.032],
-            [0.192, 0.384],
-        ])
-        b = np.array([-1.436, 0.135, 0.909])
-        lb = [0, -1]
-        ub = [1, -0.5]
-        for lsq_solver in self.lsq_solvers:
-            res = lsq_linear(A, b, (lb, ub), method=self.method,
-                             lsq_solver=lsq_solver)
-            assert_allclose(res.optimality, 0, atol=1e-11)
-            assert_allclose(res.unbounded_sol[0], lstsq(A, b, rcond=-1)[0])
-
-    def test_full_result(self):
-        lb = np.array([0, -4])
-        ub = np.array([1, 0])
-        res = lsq_linear(A, b, (lb, ub), method=self.method)
-
-        assert_allclose(res.x, [0.005236663400791, -4])
-        assert_allclose(res.unbounded_sol[0], lstsq(A, b, rcond=-1)[0])
-
-        r = A.dot(res.x) - b
-        assert_allclose(res.cost, 0.5 * np.dot(r, r))
-        assert_allclose(res.fun, r)
-
-        assert_allclose(res.optimality, 0.0, atol=1e-12)
-        assert_equal(res.active_mask, [0, -1])
-        assert_(res.nit < 15)
-        assert_(res.status == 1 or res.status == 3)
-        assert_(isinstance(res.message, str))
-        assert_(res.success)
-
-    # This is a test for issue #9982.
-    def test_almost_singular(self):
-        A = np.array(
-            [[0.8854232310355122, 0.0365312146937765, 0.0365312146836789],
-             [0.3742460132129041, 0.0130523214078376, 0.0130523214077873],
-             [0.9680633871281361, 0.0319366128718639, 0.0319366128718388]])
-
-        b = np.array(
-            [0.0055029366538097, 0.0026677442422208, 0.0066612514782381])
-
-        result = lsq_linear(A, b, method=self.method)
-        assert_(result.cost < 1.1e-8)
-
-    @pytest.mark.xslow
-    def test_large_rank_deficient(self):
-        np.random.seed(0)
-        n, m = np.sort(np.random.randint(2, 1000, size=2))
-        m *= 2   # make m >> n
-        A = 1.0 * np.random.randint(-99, 99, size=[m, n])
-        b = 1.0 * np.random.randint(-99, 99, size=[m])
-        bounds = 1.0 * np.sort(np.random.randint(-99, 99, size=(2, n)), axis=0)
-        bounds[1, :] += 1.0  # ensure up > lb
-
-        # Make the A matrix strongly rank deficient by replicating some columns
-        w = np.random.choice(n, n)  # Select random columns with duplicates
-        A = A[:, w]
-
-        x_bvls = lsq_linear(A, b, bounds=bounds, method='bvls').x
-        x_trf = lsq_linear(A, b, bounds=bounds, method='trf').x
-
-        cost_bvls = np.sum((A @ x_bvls - b)**2)
-        cost_trf = np.sum((A @ x_trf - b)**2)
-
-        assert_(abs(cost_bvls - cost_trf) < cost_trf*1e-10)
-
-    def test_convergence_small_matrix(self):
-        A = np.array([[49.0, 41.0, -32.0],
-                      [-19.0, -32.0, -8.0],
-                      [-13.0, 10.0, 69.0]])
-        b = np.array([-41.0, -90.0, 47.0])
-        bounds = np.array([[31.0, -44.0, 26.0],
-                           [54.0, -32.0, 28.0]])
-
-        x_bvls = lsq_linear(A, b, bounds=bounds, method='bvls').x
-        x_trf = lsq_linear(A, b, bounds=bounds, method='trf').x
-
-        cost_bvls = np.sum((A @ x_bvls - b)**2)
-        cost_trf = np.sum((A @ x_trf - b)**2)
-
-        assert_(abs(cost_bvls - cost_trf) < cost_trf*1e-10)
-
-
-class SparseMixin:
-    def test_sparse_and_LinearOperator(self):
-        m = 5000
-        n = 1000
-        A = rand(m, n, random_state=0)
-        b = self.rnd.randn(m)
-        res = lsq_linear(A, b)
-        assert_allclose(res.optimality, 0, atol=1e-6)
-
-        A = aslinearoperator(A)
-        res = lsq_linear(A, b)
-        assert_allclose(res.optimality, 0, atol=1e-6)
-
-    @pytest.mark.fail_slow(5)
-    def test_sparse_bounds(self):
-        m = 5000
-        n = 1000
-        A = rand(m, n, random_state=0)
-        b = self.rnd.randn(m)
-        lb = self.rnd.randn(n)
-        ub = lb + 1
-        res = lsq_linear(A, b, (lb, ub))
-        assert_allclose(res.optimality, 0.0, atol=1e-6)
-
-        res = lsq_linear(A, b, (lb, ub), lsmr_tol=1e-13,
-                         lsmr_maxiter=1500)
-        assert_allclose(res.optimality, 0.0, atol=1e-6)
-
-        res = lsq_linear(A, b, (lb, ub), lsmr_tol='auto')
-        assert_allclose(res.optimality, 0.0, atol=1e-6)
-
-    def test_sparse_ill_conditioned(self):
-        # Sparse matrix with condition number of ~4 million
-        data = np.array([1., 1., 1., 1. + 1e-6, 1.])
-        row = np.array([0, 0, 1, 2, 2])
-        col = np.array([0, 2, 1, 0, 2])
-        A = coo_matrix((data, (row, col)), shape=(3, 3))
-
-        # Get the exact solution
-        exact_sol = lsq_linear(A.toarray(), b, lsq_solver='exact')
-
-        # Default lsmr arguments should not fully converge the solution
-        default_lsmr_sol = lsq_linear(A, b, lsq_solver='lsmr')
-        with pytest.raises(AssertionError, match=""):
-            assert_allclose(exact_sol.x, default_lsmr_sol.x)
-
-        # By increasing the maximum lsmr iters, it will converge
-        conv_lsmr = lsq_linear(A, b, lsq_solver='lsmr', lsmr_maxiter=10)
-        assert_allclose(exact_sol.x, conv_lsmr.x)
-
-
-class TestTRF(BaseMixin, SparseMixin):
-    method = 'trf'
-    lsq_solvers = ['exact', 'lsmr']
-
-
-class TestBVLS(BaseMixin):
-    method = 'bvls'
-    lsq_solvers = ['exact']
-
-
-class TestErrorChecking:
-    def test_option_lsmr_tol(self):
-        # Should work with a positive float, string equal to 'auto', or None
-        _ = lsq_linear(A, b, lsq_solver='lsmr', lsmr_tol=1e-2)
-        _ = lsq_linear(A, b, lsq_solver='lsmr', lsmr_tol='auto')
-        _ = lsq_linear(A, b, lsq_solver='lsmr', lsmr_tol=None)
-
-        # Should raise error with negative float, strings
-        # other than 'auto', and integers
-        err_message = "`lsmr_tol` must be None, 'auto', or positive float."
-        with pytest.raises(ValueError, match=err_message):
-            _ = lsq_linear(A, b, lsq_solver='lsmr', lsmr_tol=-0.1)
-        with pytest.raises(ValueError, match=err_message):
-            _ = lsq_linear(A, b, lsq_solver='lsmr', lsmr_tol='foo')
-        with pytest.raises(ValueError, match=err_message):
-            _ = lsq_linear(A, b, lsq_solver='lsmr', lsmr_tol=1)
-
-    def test_option_lsmr_maxiter(self):
-        # Should work with positive integers or None
-        _ = lsq_linear(A, b, lsq_solver='lsmr', lsmr_maxiter=1)
-        _ = lsq_linear(A, b, lsq_solver='lsmr', lsmr_maxiter=None)
-
-        # Should raise error with 0 or negative max iter
-        err_message = "`lsmr_maxiter` must be None or positive integer."
-        with pytest.raises(ValueError, match=err_message):
-            _ = lsq_linear(A, b, lsq_solver='lsmr', lsmr_maxiter=0)
-        with pytest.raises(ValueError, match=err_message):
-            _ = lsq_linear(A, b, lsq_solver='lsmr', lsmr_maxiter=-1)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_milp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_milp.py
deleted file mode 100644
index 0970a15a8bccc3deb7bc67f7b62763947c1b237c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_milp.py
+++ /dev/null
@@ -1,385 +0,0 @@
-"""
-Unit test for Mixed Integer Linear Programming
-"""
-import re
-
-import numpy as np
-from numpy.testing import assert_allclose, assert_array_equal
-import pytest
-
-from .test_linprog import magic_square
-from scipy.optimize import milp, Bounds, LinearConstraint
-from scipy import sparse
-
-
-def test_milp_iv():
-
-    message = "`c` must be a dense array"
-    with pytest.raises(ValueError, match=message):
-        milp(sparse.coo_array([0, 0]))
-
-    message = "`c` must be a one-dimensional array of finite numbers with"
-    with pytest.raises(ValueError, match=message):
-        milp(np.zeros((3, 4)))
-    with pytest.raises(ValueError, match=message):
-        milp([])
-    with pytest.raises(ValueError, match=message):
-        milp(None)
-
-    message = "`bounds` must be convertible into an instance of..."
-    with pytest.raises(ValueError, match=message):
-        milp(1, bounds=10)
-
-    message = "`constraints` (or each element within `constraints`) must be"
-    with pytest.raises(ValueError, match=re.escape(message)):
-        milp(1, constraints=10)
-    with pytest.raises(ValueError, match=re.escape(message)):
-        milp(np.zeros(3), constraints=([[1, 2, 3]], [2, 3], [2, 3]))
-    with pytest.raises(ValueError, match=re.escape(message)):
-        milp(np.zeros(2), constraints=([[1, 2]], [2], sparse.coo_array([2])))
-
-    message = "The shape of `A` must be (len(b_l), len(c))."
-    with pytest.raises(ValueError, match=re.escape(message)):
-        milp(np.zeros(3), constraints=([[1, 2]], [2], [2]))
-
-    message = "`integrality` must be a dense array"
-    with pytest.raises(ValueError, match=message):
-        milp([1, 2], integrality=sparse.coo_array([1, 2]))
-
-    message = ("`integrality` must contain integers 0-3 and be broadcastable "
-               "to `c.shape`.")
-    with pytest.raises(ValueError, match=message):
-        milp([1, 2, 3], integrality=[1, 2])
-    with pytest.raises(ValueError, match=message):
-        milp([1, 2, 3], integrality=[1, 5, 3])
-
-    message = "Lower and upper bounds must be dense arrays."
-    with pytest.raises(ValueError, match=message):
-        milp([1, 2, 3], bounds=([1, 2], sparse.coo_array([3, 4])))
-
-    message = "`lb`, `ub`, and `keep_feasible` must be broadcastable."
-    with pytest.raises(ValueError, match=message):
-        milp([1, 2, 3], bounds=([1, 2], [3, 4, 5]))
-    with pytest.raises(ValueError, match=message):
-        milp([1, 2, 3], bounds=([1, 2, 3], [4, 5]))
-
-    message = "`bounds.lb` and `bounds.ub` must contain reals and..."
-    with pytest.raises(ValueError, match=message):
-        milp([1, 2, 3], bounds=([1, 2], [3, 4]))
-    with pytest.raises(ValueError, match=message):
-        milp([1, 2, 3], bounds=([1, 2, 3], ["3+4", 4, 5]))
-    with pytest.raises(ValueError, match=message):
-        milp([1, 2, 3], bounds=([1, 2, 3], [set(), 4, 5]))
-
-
-@pytest.mark.xfail(run=False,
-                   reason="Needs to be fixed in `_highs_wrapper`")
-def test_milp_options(capsys):
-    # run=False now because of gh-16347
-    message = "Unrecognized options detected: {'ekki'}..."
-    options = {'ekki': True}
-    with pytest.warns(RuntimeWarning, match=message):
-        milp(1, options=options)
-
-    A, b, c, numbers, M = magic_square(3)
-    options = {"disp": True, "presolve": False, "time_limit": 0.05}
-    res = milp(c=c, constraints=(A, b, b), bounds=(0, 1), integrality=1,
-               options=options)
-
-    captured = capsys.readouterr()
-    assert "Presolve is switched off" in captured.out
-    assert "Time Limit Reached" in captured.out
-    assert not res.success
-
-
-def test_result():
-    A, b, c, numbers, M = magic_square(3)
-    res = milp(c=c, constraints=(A, b, b), bounds=(0, 1), integrality=1)
-    assert res.status == 0
-    assert res.success
-    msg = "Optimization terminated successfully. (HiGHS Status 7:"
-    assert res.message.startswith(msg)
-    assert isinstance(res.x, np.ndarray)
-    assert isinstance(res.fun, float)
-    assert isinstance(res.mip_node_count, int)
-    assert isinstance(res.mip_dual_bound, float)
-    assert isinstance(res.mip_gap, float)
-
-    A, b, c, numbers, M = magic_square(6)
-    res = milp(c=c*0, constraints=(A, b, b), bounds=(0, 1), integrality=1,
-               options={'time_limit': 0.05})
-    assert res.status == 1
-    assert not res.success
-    msg = "Time limit reached. (HiGHS Status 13:"
-    assert res.message.startswith(msg)
-    assert (res.fun is res.mip_dual_bound is res.mip_gap
-            is res.mip_node_count is res.x is None)
-
-    res = milp(1, bounds=(1, -1))
-    assert res.status == 2
-    assert not res.success
-    msg = "The problem is infeasible. (HiGHS Status 8:"
-    assert res.message.startswith(msg)
-    assert (res.fun is res.mip_dual_bound is res.mip_gap
-            is res.mip_node_count is res.x is None)
-
-    res = milp(-1)
-    assert res.status == 3
-    assert not res.success
-    msg = "The problem is unbounded. (HiGHS Status 10:"
-    assert res.message.startswith(msg)
-    assert (res.fun is res.mip_dual_bound is res.mip_gap
-            is res.mip_node_count is res.x is None)
-
-
-def test_milp_optional_args():
-    # check that arguments other than `c` are indeed optional
-    res = milp(1)
-    assert res.fun == 0
-    assert_array_equal(res.x, [0])
-
-
-def test_milp_1():
-    # solve magic square problem
-    n = 3
-    A, b, c, numbers, M = magic_square(n)
-    A = sparse.csc_array(A)  # confirm that sparse arrays are accepted
-    res = milp(c=c*0, constraints=(A, b, b), bounds=(0, 1), integrality=1)
-
-    # check that solution is a magic square
-    x = np.round(res.x)
-    s = (numbers.flatten() * x).reshape(n**2, n, n)
-    square = np.sum(s, axis=0)
-    np.testing.assert_allclose(square.sum(axis=0), M)
-    np.testing.assert_allclose(square.sum(axis=1), M)
-    np.testing.assert_allclose(np.diag(square).sum(), M)
-    np.testing.assert_allclose(np.diag(square[:, ::-1]).sum(), M)
-
-
-def test_milp_2():
-    # solve MIP with inequality constraints and all integer constraints
-    # source: slide 5,
-    # https://www.cs.upc.edu/~erodri/webpage/cps/theory/lp/milp/slides.pdf
-    # also check that `milp` accepts all valid ways of specifying constraints
-    c = -np.ones(2)
-    A = [[-2, 2], [-8, 10]]
-    b_l = [1, -np.inf]
-    b_u = [np.inf, 13]
-    linear_constraint = LinearConstraint(A, b_l, b_u)
-
-    # solve original problem
-    res1 = milp(c=c, constraints=(A, b_l, b_u), integrality=True)
-    res2 = milp(c=c, constraints=linear_constraint, integrality=True)
-    res3 = milp(c=c, constraints=[(A, b_l, b_u)], integrality=True)
-    res4 = milp(c=c, constraints=[linear_constraint], integrality=True)
-    res5 = milp(c=c, integrality=True,
-                constraints=[(A[:1], b_l[:1], b_u[:1]),
-                             (A[1:], b_l[1:], b_u[1:])])
-    res6 = milp(c=c, integrality=True,
-                constraints=[LinearConstraint(A[:1], b_l[:1], b_u[:1]),
-                             LinearConstraint(A[1:], b_l[1:], b_u[1:])])
-    res7 = milp(c=c, integrality=True,
-                constraints=[(A[:1], b_l[:1], b_u[:1]),
-                             LinearConstraint(A[1:], b_l[1:], b_u[1:])])
-    xs = np.array([res1.x, res2.x, res3.x, res4.x, res5.x, res6.x, res7.x])
-    funs = np.array([res1.fun, res2.fun, res3.fun,
-                     res4.fun, res5.fun, res6.fun, res7.fun])
-    np.testing.assert_allclose(xs, np.broadcast_to([1, 2], xs.shape))
-    np.testing.assert_allclose(funs, -3)
-
-    # solve relaxed problem
-    res = milp(c=c, constraints=(A, b_l, b_u))
-    np.testing.assert_allclose(res.x, [4, 4.5])
-    np.testing.assert_allclose(res.fun, -8.5)
-
-
-def test_milp_3():
-    # solve MIP with inequality constraints and all integer constraints
-    # source: https://en.wikipedia.org/wiki/Integer_programming#Example
-    c = [0, -1]
-    A = [[-1, 1], [3, 2], [2, 3]]
-    b_u = [1, 12, 12]
-    b_l = np.full_like(b_u, -np.inf, dtype=np.float64)
-    constraints = LinearConstraint(A, b_l, b_u)
-
-    integrality = np.ones_like(c)
-
-    # solve original problem
-    res = milp(c=c, constraints=constraints, integrality=integrality)
-    assert_allclose(res.fun, -2)
-    # two optimal solutions possible, just need one of them
-    assert np.allclose(res.x, [1, 2]) or np.allclose(res.x, [2, 2])
-
-    # solve relaxed problem
-    res = milp(c=c, constraints=constraints)
-    assert_allclose(res.fun, -2.8)
-    assert_allclose(res.x, [1.8, 2.8])
-
-
-def test_milp_4():
-    # solve MIP with inequality constraints and only one integer constraint
-    # source: https://www.mathworks.com/help/optim/ug/intlinprog.html
-    c = [8, 1]
-    integrality = [0, 1]
-    A = [[1, 2], [-4, -1], [2, 1]]
-    b_l = [-14, -np.inf, -np.inf]
-    b_u = [np.inf, -33, 20]
-    constraints = LinearConstraint(A, b_l, b_u)
-    bounds = Bounds(-np.inf, np.inf)
-
-    res = milp(c, integrality=integrality, bounds=bounds,
-               constraints=constraints)
-    assert_allclose(res.fun, 59)
-    assert_allclose(res.x, [6.5, 7])
-
-
-def test_milp_5():
-    # solve MIP with inequality and equality constraints
-    # source: https://www.mathworks.com/help/optim/ug/intlinprog.html
-    c = [-3, -2, -1]
-    integrality = [0, 0, 1]
-    lb = [0, 0, 0]
-    ub = [np.inf, np.inf, 1]
-    bounds = Bounds(lb, ub)
-    A = [[1, 1, 1], [4, 2, 1]]
-    b_l = [-np.inf, 12]
-    b_u = [7, 12]
-    constraints = LinearConstraint(A, b_l, b_u)
-
-    res = milp(c, integrality=integrality, bounds=bounds,
-               constraints=constraints)
-    # there are multiple solutions
-    assert_allclose(res.fun, -12)
-
-
-@pytest.mark.slow
-@pytest.mark.timeout(120)  # prerelease_deps_coverage_64bit_blas job
-def test_milp_6():
-    # solve a larger MIP with only equality constraints
-    # source: https://www.mathworks.com/help/optim/ug/intlinprog.html
-    integrality = 1
-    A_eq = np.array([[22, 13, 26, 33, 21, 3, 14, 26],
-                     [39, 16, 22, 28, 26, 30, 23, 24],
-                     [18, 14, 29, 27, 30, 38, 26, 26],
-                     [41, 26, 28, 36, 18, 38, 16, 26]])
-    b_eq = np.array([7872, 10466, 11322, 12058])
-    c = np.array([2, 10, 13, 17, 7, 5, 7, 3])
-
-    res = milp(c=c, constraints=(A_eq, b_eq, b_eq), integrality=integrality)
-
-    np.testing.assert_allclose(res.fun, 1854)
-
-
-def test_infeasible_prob_16609():
-    # Ensure presolve does not mark trivially infeasible problems
-    # as Optimal -- see gh-16609
-    c = [1.0, 0.0]
-    integrality = [0, 1]
-
-    lb = [0, -np.inf]
-    ub = [np.inf, np.inf]
-    bounds = Bounds(lb, ub)
-
-    A_eq = [[0.0, 1.0]]
-    b_eq = [0.5]
-    constraints = LinearConstraint(A_eq, b_eq, b_eq)
-
-    res = milp(c, integrality=integrality, bounds=bounds,
-               constraints=constraints)
-    np.testing.assert_equal(res.status, 2)
-
-
-_msg_time = "Time limit reached. (HiGHS Status 13:"
-_msg_iter = "Iteration limit reached. (HiGHS Status 14:"
-
-
-@pytest.mark.skipif(np.intp(0).itemsize < 8,
-                    reason="Unhandled 32-bit GCC FP bug")
-@pytest.mark.slow
-@pytest.mark.parametrize(["options", "msg"], [({"time_limit": 0.1}, _msg_time),
-                                              ({"node_limit": 1}, _msg_iter)])
-def test_milp_timeout_16545(options, msg):
-    # Ensure solution is not thrown away if MILP solver times out
-    # -- see gh-16545
-    rng = np.random.default_rng(5123833489170494244)
-    A = rng.integers(0, 5, size=(100, 100))
-    b_lb = np.full(100, fill_value=-np.inf)
-    b_ub = np.full(100, fill_value=25)
-    constraints = LinearConstraint(A, b_lb, b_ub)
-    variable_lb = np.zeros(100)
-    variable_ub = np.ones(100)
-    variable_bounds = Bounds(variable_lb, variable_ub)
-    integrality = np.ones(100)
-    c_vector = -np.ones(100)
-    res = milp(
-        c_vector,
-        integrality=integrality,
-        bounds=variable_bounds,
-        constraints=constraints,
-        options=options,
-    )
-
-    assert res.message.startswith(msg)
-    assert res["x"] is not None
-
-    # ensure solution is feasible
-    x = res["x"]
-    tol = 1e-8  # sometimes needed due to finite numerical precision
-    assert np.all(b_lb - tol <= A @ x) and np.all(A @ x <= b_ub + tol)
-    assert np.all(variable_lb - tol <= x) and np.all(x <= variable_ub + tol)
-    assert np.allclose(x, np.round(x))
-
-
-def test_three_constraints_16878():
-    # `milp` failed when exactly three constraints were passed
-    # Ensure that this is no longer the case.
-    rng = np.random.default_rng(5123833489170494244)
-    A = rng.integers(0, 5, size=(6, 6))
-    bl = np.full(6, fill_value=-np.inf)
-    bu = np.full(6, fill_value=10)
-    constraints = [LinearConstraint(A[:2], bl[:2], bu[:2]),
-                   LinearConstraint(A[2:4], bl[2:4], bu[2:4]),
-                   LinearConstraint(A[4:], bl[4:], bu[4:])]
-    constraints2 = [(A[:2], bl[:2], bu[:2]),
-                    (A[2:4], bl[2:4], bu[2:4]),
-                    (A[4:], bl[4:], bu[4:])]
-    lb = np.zeros(6)
-    ub = np.ones(6)
-    variable_bounds = Bounds(lb, ub)
-    c = -np.ones(6)
-    res1 = milp(c, bounds=variable_bounds, constraints=constraints)
-    res2 = milp(c, bounds=variable_bounds, constraints=constraints2)
-    ref = milp(c, bounds=variable_bounds, constraints=(A, bl, bu))
-    assert res1.success and res2.success
-    assert_allclose(res1.x, ref.x)
-    assert_allclose(res2.x, ref.x)
-
-
-@pytest.mark.xslow
-def test_mip_rel_gap_passdown():
-    # Solve problem with decreasing mip_gap to make sure mip_rel_gap decreases
-    # Adapted from test_linprog::TestLinprogHiGHSMIP::test_mip_rel_gap_passdown
-    # MIP taken from test_mip_6 above
-    A_eq = np.array([[22, 13, 26, 33, 21, 3, 14, 26],
-                     [39, 16, 22, 28, 26, 30, 23, 24],
-                     [18, 14, 29, 27, 30, 38, 26, 26],
-                     [41, 26, 28, 36, 18, 38, 16, 26]])
-    b_eq = np.array([7872, 10466, 11322, 12058])
-    c = np.array([2, 10, 13, 17, 7, 5, 7, 3])
-
-    mip_rel_gaps = [0.25, 0.01, 0.001]
-    sol_mip_gaps = []
-    for mip_rel_gap in mip_rel_gaps:
-        res = milp(c=c, bounds=(0, np.inf), constraints=(A_eq, b_eq, b_eq),
-                   integrality=True, options={"mip_rel_gap": mip_rel_gap})
-        # assert that the solution actually has mip_gap lower than the
-        # required mip_rel_gap supplied
-        assert res.mip_gap <= mip_rel_gap
-        # check that `res.mip_gap` is as defined in the documentation
-        assert res.mip_gap == (res.fun - res.mip_dual_bound)/res.fun
-        sol_mip_gaps.append(res.mip_gap)
-
-    # make sure that the mip_rel_gap parameter is actually doing something
-    # check that differences between solution gaps are declining
-    # monotonically with the mip_rel_gap parameter.
-    assert np.all(np.diff(sol_mip_gaps) < 0)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_minimize_constrained.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_minimize_constrained.py
deleted file mode 100644
index ee700ec6e959dfdde8158d2bd09123cf602881c6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_minimize_constrained.py
+++ /dev/null
@@ -1,828 +0,0 @@
-import numpy as np
-import pytest
-from scipy.linalg import block_diag
-from scipy.sparse import csc_matrix
-from numpy.testing import (assert_array_almost_equal,
-                           assert_array_less, assert_, assert_allclose,
-                           suppress_warnings)
-from scipy.optimize import (NonlinearConstraint,
-                            LinearConstraint,
-                            Bounds,
-                            minimize,
-                            BFGS,
-                            SR1,
-                            rosen)
-
-
-class Maratos:
-    """Problem 15.4 from Nocedal and Wright
-
-    The following optimization problem:
-        minimize 2*(x[0]**2 + x[1]**2 - 1) - x[0]
-        Subject to: x[0]**2 + x[1]**2 - 1 = 0
-    """
-
-    def __init__(self, degrees=60, constr_jac=None, constr_hess=None):
-        rads = degrees/180*np.pi
-        self.x0 = [np.cos(rads), np.sin(rads)]
-        self.x_opt = np.array([1.0, 0.0])
-        self.constr_jac = constr_jac
-        self.constr_hess = constr_hess
-        self.bounds = None
-
-    def fun(self, x):
-        return 2*(x[0]**2 + x[1]**2 - 1) - x[0]
-
-    def grad(self, x):
-        return np.array([4*x[0]-1, 4*x[1]])
-
-    def hess(self, x):
-        return 4*np.eye(2)
-
-    @property
-    def constr(self):
-        def fun(x):
-            return x[0]**2 + x[1]**2
-
-        if self.constr_jac is None:
-            def jac(x):
-                return [[2*x[0], 2*x[1]]]
-        else:
-            jac = self.constr_jac
-
-        if self.constr_hess is None:
-            def hess(x, v):
-                return 2*v[0]*np.eye(2)
-        else:
-            hess = self.constr_hess
-
-        return NonlinearConstraint(fun, 1, 1, jac, hess)
-
-
-class MaratosTestArgs:
-    """Problem 15.4 from Nocedal and Wright
-
-    The following optimization problem:
-        minimize 2*(x[0]**2 + x[1]**2 - 1) - x[0]
-        Subject to: x[0]**2 + x[1]**2 - 1 = 0
-    """
-
-    def __init__(self, a, b, degrees=60, constr_jac=None, constr_hess=None):
-        rads = degrees/180*np.pi
-        self.x0 = [np.cos(rads), np.sin(rads)]
-        self.x_opt = np.array([1.0, 0.0])
-        self.constr_jac = constr_jac
-        self.constr_hess = constr_hess
-        self.a = a
-        self.b = b
-        self.bounds = None
-
-    def _test_args(self, a, b):
-        if self.a != a or self.b != b:
-            raise ValueError()
-
-    def fun(self, x, a, b):
-        self._test_args(a, b)
-        return 2*(x[0]**2 + x[1]**2 - 1) - x[0]
-
-    def grad(self, x, a, b):
-        self._test_args(a, b)
-        return np.array([4*x[0]-1, 4*x[1]])
-
-    def hess(self, x, a, b):
-        self._test_args(a, b)
-        return 4*np.eye(2)
-
-    @property
-    def constr(self):
-        def fun(x):
-            return x[0]**2 + x[1]**2
-
-        if self.constr_jac is None:
-            def jac(x):
-                return [[4*x[0], 4*x[1]]]
-        else:
-            jac = self.constr_jac
-
-        if self.constr_hess is None:
-            def hess(x, v):
-                return 2*v[0]*np.eye(2)
-        else:
-            hess = self.constr_hess
-
-        return NonlinearConstraint(fun, 1, 1, jac, hess)
-
-
-class MaratosGradInFunc:
-    """Problem 15.4 from Nocedal and Wright
-
-    The following optimization problem:
-        minimize 2*(x[0]**2 + x[1]**2 - 1) - x[0]
-        Subject to: x[0]**2 + x[1]**2 - 1 = 0
-    """
-
-    def __init__(self, degrees=60, constr_jac=None, constr_hess=None):
-        rads = degrees/180*np.pi
-        self.x0 = [np.cos(rads), np.sin(rads)]
-        self.x_opt = np.array([1.0, 0.0])
-        self.constr_jac = constr_jac
-        self.constr_hess = constr_hess
-        self.bounds = None
-
-    def fun(self, x):
-        return (2*(x[0]**2 + x[1]**2 - 1) - x[0],
-                np.array([4*x[0]-1, 4*x[1]]))
-
-    @property
-    def grad(self):
-        return True
-
-    def hess(self, x):
-        return 4*np.eye(2)
-
-    @property
-    def constr(self):
-        def fun(x):
-            return x[0]**2 + x[1]**2
-
-        if self.constr_jac is None:
-            def jac(x):
-                return [[4*x[0], 4*x[1]]]
-        else:
-            jac = self.constr_jac
-
-        if self.constr_hess is None:
-            def hess(x, v):
-                return 2*v[0]*np.eye(2)
-        else:
-            hess = self.constr_hess
-
-        return NonlinearConstraint(fun, 1, 1, jac, hess)
-
-
-class HyperbolicIneq:
-    """Problem 15.1 from Nocedal and Wright
-
-    The following optimization problem:
-        minimize 1/2*(x[0] - 2)**2 + 1/2*(x[1] - 1/2)**2
-        Subject to: 1/(x[0] + 1) - x[1] >= 1/4
-                                   x[0] >= 0
-                                   x[1] >= 0
-    """
-    def __init__(self, constr_jac=None, constr_hess=None):
-        self.x0 = [0, 0]
-        self.x_opt = [1.952823, 0.088659]
-        self.constr_jac = constr_jac
-        self.constr_hess = constr_hess
-        self.bounds = Bounds(0, np.inf)
-
-    def fun(self, x):
-        return 1/2*(x[0] - 2)**2 + 1/2*(x[1] - 1/2)**2
-
-    def grad(self, x):
-        return [x[0] - 2, x[1] - 1/2]
-
-    def hess(self, x):
-        return np.eye(2)
-
-    @property
-    def constr(self):
-        def fun(x):
-            return 1/(x[0] + 1) - x[1]
-
-        if self.constr_jac is None:
-            def jac(x):
-                return [[-1/(x[0] + 1)**2, -1]]
-        else:
-            jac = self.constr_jac
-
-        if self.constr_hess is None:
-            def hess(x, v):
-                return 2*v[0]*np.array([[1/(x[0] + 1)**3, 0],
-                                        [0, 0]])
-        else:
-            hess = self.constr_hess
-
-        return NonlinearConstraint(fun, 0.25, np.inf, jac, hess)
-
-
-class Rosenbrock:
-    """Rosenbrock function.
-
-    The following optimization problem:
-        minimize sum(100.0*(x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0)
-    """
-
-    def __init__(self, n=2, random_state=0):
-        rng = np.random.RandomState(random_state)
-        self.x0 = rng.uniform(-1, 1, n)
-        self.x_opt = np.ones(n)
-        self.bounds = None
-
-    def fun(self, x):
-        x = np.asarray(x)
-        r = np.sum(100.0 * (x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0,
-                   axis=0)
-        return r
-
-    def grad(self, x):
-        x = np.asarray(x)
-        xm = x[1:-1]
-        xm_m1 = x[:-2]
-        xm_p1 = x[2:]
-        der = np.zeros_like(x)
-        der[1:-1] = (200 * (xm - xm_m1**2) -
-                     400 * (xm_p1 - xm**2) * xm - 2 * (1 - xm))
-        der[0] = -400 * x[0] * (x[1] - x[0]**2) - 2 * (1 - x[0])
-        der[-1] = 200 * (x[-1] - x[-2]**2)
-        return der
-
-    def hess(self, x):
-        x = np.atleast_1d(x)
-        H = np.diag(-400 * x[:-1], 1) - np.diag(400 * x[:-1], -1)
-        diagonal = np.zeros(len(x), dtype=x.dtype)
-        diagonal[0] = 1200 * x[0]**2 - 400 * x[1] + 2
-        diagonal[-1] = 200
-        diagonal[1:-1] = 202 + 1200 * x[1:-1]**2 - 400 * x[2:]
-        H = H + np.diag(diagonal)
-        return H
-
-    @property
-    def constr(self):
-        return ()
-
-
-class IneqRosenbrock(Rosenbrock):
-    """Rosenbrock subject to inequality constraints.
-
-    The following optimization problem:
-        minimize sum(100.0*(x[1] - x[0]**2)**2.0 + (1 - x[0])**2)
-        subject to: x[0] + 2 x[1] <= 1
-
-    Taken from matlab ``fmincon`` documentation.
-    """
-    def __init__(self, random_state=0):
-        Rosenbrock.__init__(self, 2, random_state)
-        self.x0 = [-1, -0.5]
-        self.x_opt = [0.5022, 0.2489]
-        self.bounds = None
-
-    @property
-    def constr(self):
-        A = [[1, 2]]
-        b = 1
-        return LinearConstraint(A, -np.inf, b)
-
-
-class BoundedRosenbrock(Rosenbrock):
-    """Rosenbrock subject to inequality constraints.
-
-    The following optimization problem:
-        minimize sum(100.0*(x[1] - x[0]**2)**2.0 + (1 - x[0])**2)
-        subject to:  -2 <= x[0] <= 0
-                      0 <= x[1] <= 2
-
-    Taken from matlab ``fmincon`` documentation.
-    """
-    def __init__(self, random_state=0):
-        Rosenbrock.__init__(self, 2, random_state)
-        self.x0 = [-0.2, 0.2]
-        self.x_opt = None
-        self.bounds = Bounds([-2, 0], [0, 2])
-
-
-class EqIneqRosenbrock(Rosenbrock):
-    """Rosenbrock subject to equality and inequality constraints.
-
-    The following optimization problem:
-        minimize sum(100.0*(x[1] - x[0]**2)**2.0 + (1 - x[0])**2)
-        subject to: x[0] + 2 x[1] <= 1
-                    2 x[0] + x[1] = 1
-
-    Taken from matlab ``fimincon`` documentation.
-    """
-    def __init__(self, random_state=0):
-        Rosenbrock.__init__(self, 2, random_state)
-        self.x0 = [-1, -0.5]
-        self.x_opt = [0.41494, 0.17011]
-        self.bounds = None
-
-    @property
-    def constr(self):
-        A_ineq = [[1, 2]]
-        b_ineq = 1
-        A_eq = [[2, 1]]
-        b_eq = 1
-        return (LinearConstraint(A_ineq, -np.inf, b_ineq),
-                LinearConstraint(A_eq, b_eq, b_eq))
-
-
-class Elec:
-    """Distribution of electrons on a sphere.
-
-    Problem no 2 from COPS collection [2]_. Find
-    the equilibrium state distribution (of minimal
-    potential) of the electrons positioned on a
-    conducting sphere.
-
-    References
-    ----------
-    .. [1] E. D. Dolan, J. J. Mor\'{e}, and T. S. Munson,
-           "Benchmarking optimization software with COPS 3.0.",
-            Argonne National Lab., Argonne, IL (US), 2004.
-    """
-    def __init__(self, n_electrons=200, random_state=0,
-                 constr_jac=None, constr_hess=None):
-        self.n_electrons = n_electrons
-        self.rng = np.random.RandomState(random_state)
-        # Initial Guess
-        phi = self.rng.uniform(0, 2 * np.pi, self.n_electrons)
-        theta = self.rng.uniform(-np.pi, np.pi, self.n_electrons)
-        x = np.cos(theta) * np.cos(phi)
-        y = np.cos(theta) * np.sin(phi)
-        z = np.sin(theta)
-        self.x0 = np.hstack((x, y, z))
-        self.x_opt = None
-        self.constr_jac = constr_jac
-        self.constr_hess = constr_hess
-        self.bounds = None
-
-    def _get_cordinates(self, x):
-        x_coord = x[:self.n_electrons]
-        y_coord = x[self.n_electrons:2 * self.n_electrons]
-        z_coord = x[2 * self.n_electrons:]
-        return x_coord, y_coord, z_coord
-
-    def _compute_coordinate_deltas(self, x):
-        x_coord, y_coord, z_coord = self._get_cordinates(x)
-        dx = x_coord[:, None] - x_coord
-        dy = y_coord[:, None] - y_coord
-        dz = z_coord[:, None] - z_coord
-        return dx, dy, dz
-
-    def fun(self, x):
-        dx, dy, dz = self._compute_coordinate_deltas(x)
-        with np.errstate(divide='ignore'):
-            dm1 = (dx**2 + dy**2 + dz**2) ** -0.5
-        dm1[np.diag_indices_from(dm1)] = 0
-        return 0.5 * np.sum(dm1)
-
-    def grad(self, x):
-        dx, dy, dz = self._compute_coordinate_deltas(x)
-
-        with np.errstate(divide='ignore'):
-            dm3 = (dx**2 + dy**2 + dz**2) ** -1.5
-        dm3[np.diag_indices_from(dm3)] = 0
-
-        grad_x = -np.sum(dx * dm3, axis=1)
-        grad_y = -np.sum(dy * dm3, axis=1)
-        grad_z = -np.sum(dz * dm3, axis=1)
-
-        return np.hstack((grad_x, grad_y, grad_z))
-
-    def hess(self, x):
-        dx, dy, dz = self._compute_coordinate_deltas(x)
-        d = (dx**2 + dy**2 + dz**2) ** 0.5
-
-        with np.errstate(divide='ignore'):
-            dm3 = d ** -3
-            dm5 = d ** -5
-
-        i = np.arange(self.n_electrons)
-        dm3[i, i] = 0
-        dm5[i, i] = 0
-
-        Hxx = dm3 - 3 * dx**2 * dm5
-        Hxx[i, i] = -np.sum(Hxx, axis=1)
-
-        Hxy = -3 * dx * dy * dm5
-        Hxy[i, i] = -np.sum(Hxy, axis=1)
-
-        Hxz = -3 * dx * dz * dm5
-        Hxz[i, i] = -np.sum(Hxz, axis=1)
-
-        Hyy = dm3 - 3 * dy**2 * dm5
-        Hyy[i, i] = -np.sum(Hyy, axis=1)
-
-        Hyz = -3 * dy * dz * dm5
-        Hyz[i, i] = -np.sum(Hyz, axis=1)
-
-        Hzz = dm3 - 3 * dz**2 * dm5
-        Hzz[i, i] = -np.sum(Hzz, axis=1)
-
-        H = np.vstack((
-            np.hstack((Hxx, Hxy, Hxz)),
-            np.hstack((Hxy, Hyy, Hyz)),
-            np.hstack((Hxz, Hyz, Hzz))
-        ))
-
-        return H
-
-    @property
-    def constr(self):
-        def fun(x):
-            x_coord, y_coord, z_coord = self._get_cordinates(x)
-            return x_coord**2 + y_coord**2 + z_coord**2 - 1
-
-        if self.constr_jac is None:
-            def jac(x):
-                x_coord, y_coord, z_coord = self._get_cordinates(x)
-                Jx = 2 * np.diag(x_coord)
-                Jy = 2 * np.diag(y_coord)
-                Jz = 2 * np.diag(z_coord)
-                return csc_matrix(np.hstack((Jx, Jy, Jz)))
-        else:
-            jac = self.constr_jac
-
-        if self.constr_hess is None:
-            def hess(x, v):
-                D = 2 * np.diag(v)
-                return block_diag(D, D, D)
-        else:
-            hess = self.constr_hess
-
-        return NonlinearConstraint(fun, -np.inf, 0, jac, hess)
-
-
-class TestTrustRegionConstr:
-    list_of_problems = [Maratos(),
-                        Maratos(constr_hess='2-point'),
-                        Maratos(constr_hess=SR1()),
-                        Maratos(constr_jac='2-point', constr_hess=SR1()),
-                        MaratosGradInFunc(),
-                        HyperbolicIneq(),
-                        HyperbolicIneq(constr_hess='3-point'),
-                        HyperbolicIneq(constr_hess=BFGS()),
-                        HyperbolicIneq(constr_jac='3-point',
-                                       constr_hess=BFGS()),
-                        Rosenbrock(),
-                        IneqRosenbrock(),
-                        EqIneqRosenbrock(),
-                        BoundedRosenbrock(),
-                        Elec(n_electrons=2),
-                        Elec(n_electrons=2, constr_hess='2-point'),
-                        Elec(n_electrons=2, constr_hess=SR1()),
-                        Elec(n_electrons=2, constr_jac='3-point',
-                             constr_hess=SR1())]
-
-    @pytest.mark.parametrize('prob', list_of_problems)
-    @pytest.mark.parametrize('grad', ('prob.grad', '3-point', False))
-    @pytest.mark.parametrize('hess', ("prob.hess", '3-point', SR1(),
-                                      BFGS(exception_strategy='damp_update'),
-                                      BFGS(exception_strategy='skip_update')))
-    def test_list_of_problems(self, prob, grad, hess):
-        grad = prob.grad if grad == "prob.grad" else grad
-        hess = prob.hess if hess == "prob.hess" else hess
-        # Remove exceptions
-        if (grad in {'2-point', '3-point', 'cs', False} and
-                hess in {'2-point', '3-point', 'cs'}):
-            pytest.skip("Numerical Hessian needs analytical gradient")
-        if prob.grad is True and grad in {'3-point', False}:
-            pytest.skip("prob.grad incompatible with grad in {'3-point', False}")
-        sensitive = (isinstance(prob, BoundedRosenbrock) and grad == '3-point'
-                     and isinstance(hess, BFGS))
-        if sensitive:
-            pytest.xfail("Seems sensitive to initial conditions w/ Accelerate")
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "delta_grad == 0.0")
-            result = minimize(prob.fun, prob.x0,
-                              method='trust-constr',
-                              jac=grad, hess=hess,
-                              bounds=prob.bounds,
-                              constraints=prob.constr)
-
-        if prob.x_opt is not None:
-            assert_array_almost_equal(result.x, prob.x_opt,
-                                      decimal=5)
-            # gtol
-            if result.status == 1:
-                assert_array_less(result.optimality, 1e-8)
-        # xtol
-        if result.status == 2:
-            assert_array_less(result.tr_radius, 1e-8)
-
-            if result.method == "tr_interior_point":
-                assert_array_less(result.barrier_parameter, 1e-8)
-
-        # check for max iter
-        message = f"Invalid termination condition: {result.status}."
-        assert result.status not in {0, 3}, message
-
-
-    def test_default_jac_and_hess(self):
-        def fun(x):
-            return (x - 1) ** 2
-        bounds = [(-2, 2)]
-        res = minimize(fun, x0=[-1.5], bounds=bounds, method='trust-constr')
-        assert_array_almost_equal(res.x, 1, decimal=5)
-
-    def test_default_hess(self):
-        def fun(x):
-            return (x - 1) ** 2
-        bounds = [(-2, 2)]
-        res = minimize(fun, x0=[-1.5], bounds=bounds, method='trust-constr',
-                       jac='2-point')
-        assert_array_almost_equal(res.x, 1, decimal=5)
-
-    def test_no_constraints(self):
-        prob = Rosenbrock()
-        result = minimize(prob.fun, prob.x0,
-                          method='trust-constr',
-                          jac=prob.grad, hess=prob.hess)
-        result1 = minimize(prob.fun, prob.x0,
-                           method='L-BFGS-B',
-                           jac='2-point')
-
-        result2 = minimize(prob.fun, prob.x0,
-                           method='L-BFGS-B',
-                           jac='3-point')
-        assert_array_almost_equal(result.x, prob.x_opt, decimal=5)
-        assert_array_almost_equal(result1.x, prob.x_opt, decimal=5)
-        assert_array_almost_equal(result2.x, prob.x_opt, decimal=5)
-
-    def test_hessp(self):
-        prob = Maratos()
-
-        def hessp(x, p):
-            H = prob.hess(x)
-            return H.dot(p)
-
-        result = minimize(prob.fun, prob.x0,
-                          method='trust-constr',
-                          jac=prob.grad, hessp=hessp,
-                          bounds=prob.bounds,
-                          constraints=prob.constr)
-
-        if prob.x_opt is not None:
-            assert_array_almost_equal(result.x, prob.x_opt, decimal=2)
-
-        # gtol
-        if result.status == 1:
-            assert_array_less(result.optimality, 1e-8)
-        # xtol
-        if result.status == 2:
-            assert_array_less(result.tr_radius, 1e-8)
-
-            if result.method == "tr_interior_point":
-                assert_array_less(result.barrier_parameter, 1e-8)
-        # max iter
-        if result.status in (0, 3):
-            raise RuntimeError("Invalid termination condition.")
-
-    def test_args(self):
-        prob = MaratosTestArgs("a", 234)
-
-        result = minimize(prob.fun, prob.x0, ("a", 234),
-                          method='trust-constr',
-                          jac=prob.grad, hess=prob.hess,
-                          bounds=prob.bounds,
-                          constraints=prob.constr)
-
-        if prob.x_opt is not None:
-            assert_array_almost_equal(result.x, prob.x_opt, decimal=2)
-
-        # gtol
-        if result.status == 1:
-            assert_array_less(result.optimality, 1e-8)
-        # xtol
-        if result.status == 2:
-            assert_array_less(result.tr_radius, 1e-8)
-            if result.method == "tr_interior_point":
-                assert_array_less(result.barrier_parameter, 1e-8)
-        # max iter
-        if result.status in (0, 3):
-            raise RuntimeError("Invalid termination condition.")
-
-    def test_raise_exception(self):
-        prob = Maratos()
-        message = "Whenever the gradient is estimated via finite-differences"
-        with pytest.raises(ValueError, match=message):
-            minimize(prob.fun, prob.x0, method='trust-constr', jac='2-point',
-                     hess='2-point', constraints=prob.constr)
-
-    def test_issue_9044(self):
-        # https://github.com/scipy/scipy/issues/9044
-        # Test the returned `OptimizeResult` contains keys consistent with
-        # other solvers.
-
-        def callback(x, info):
-            assert_('nit' in info)
-            assert_('niter' in info)
-
-        result = minimize(lambda x: x**2, [0], jac=lambda x: 2*x,
-                          hess=lambda x: 2, callback=callback,
-                          method='trust-constr')
-        assert_(result.get('success'))
-        assert_(result.get('nit', -1) == 1)
-
-        # Also check existence of the 'niter' attribute, for backward
-        # compatibility
-        assert_(result.get('niter', -1) == 1)
-
-    def test_issue_15093(self):
-        # scipy docs define bounds as inclusive, so it shouldn't be
-        # an issue to set x0 on the bounds even if keep_feasible is
-        # True. Previously, trust-constr would treat bounds as
-        # exclusive.
-
-        x0 = np.array([0., 0.5])
-
-        def obj(x):
-            x1 = x[0]
-            x2 = x[1]
-            return x1 ** 2 + x2 ** 2
-
-        bounds = Bounds(np.array([0., 0.]), np.array([1., 1.]),
-                        keep_feasible=True)
-
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "delta_grad == 0.0")
-            result = minimize(
-                method='trust-constr',
-                fun=obj,
-                x0=x0,
-                bounds=bounds)
-
-        assert result['success']
-
-class TestEmptyConstraint:
-    """
-    Here we minimize x^2+y^2 subject to x^2-y^2>1.
-    The actual minimum is at (0, 0) which fails the constraint.
-    Therefore we will find a minimum on the boundary at (+/-1, 0).
-
-    When minimizing on the boundary, optimize uses a set of
-    constraints that removes the constraint that sets that
-    boundary.  In our case, there's only one constraint, so
-    the result is an empty constraint.
-
-    This tests that the empty constraint works.
-    """
-    def test_empty_constraint(self):
-
-        def function(x):
-            return x[0]**2 + x[1]**2
-
-        def functionjacobian(x):
-            return np.array([2.*x[0], 2.*x[1]])
-
-        def functionhvp(x, v):
-            return 2.*v
-
-        def constraint(x):
-            return np.array([x[0]**2 - x[1]**2])
-
-        def constraintjacobian(x):
-            return np.array([[2*x[0], -2*x[1]]])
-
-        def constraintlcoh(x, v):
-            return np.array([[2., 0.], [0., -2.]]) * v[0]
-
-        constraint = NonlinearConstraint(constraint, 1., np.inf,
-                                         constraintjacobian, constraintlcoh)
-
-        startpoint = [1., 2.]
-
-        bounds = Bounds([-np.inf, -np.inf], [np.inf, np.inf])
-
-        result = minimize(
-          function,
-          startpoint,
-          method='trust-constr',
-          jac=functionjacobian,
-          hessp=functionhvp,
-          constraints=[constraint],
-          bounds=bounds,
-        )
-
-        assert_array_almost_equal(abs(result.x), np.array([1, 0]), decimal=4)
-
-
-def test_bug_11886():
-    def opt(x):
-        return x[0]**2+x[1]**2
-
-    with np.testing.suppress_warnings() as sup:
-        sup.filter(PendingDeprecationWarning)
-        A = np.matrix(np.diag([1, 1]))
-    lin_cons = LinearConstraint(A, -1, np.inf)
-    # just checking that there are no errors
-    minimize(opt, 2*[1], constraints = lin_cons)
-
-
-# Remove xfail when gh-11649 is resolved
-@pytest.mark.xfail(reason="Known bug in trust-constr; see gh-11649.",
-                   strict=True)
-def test_gh11649():
-    bnds = Bounds(lb=[-1, -1], ub=[1, 1], keep_feasible=True)
-
-    def assert_inbounds(x):
-        assert np.all(x >= bnds.lb)
-        assert np.all(x <= bnds.ub)
-
-    def obj(x):
-        assert_inbounds(x)
-        return np.exp(x[0])*(4*x[0]**2 + 2*x[1]**2 + 4*x[0]*x[1] + 2*x[1] + 1)
-
-    def nce(x):
-        assert_inbounds(x)
-        return x[0]**2 + x[1]
-
-    def nci(x):
-        assert_inbounds(x)
-        return x[0]*x[1]
-
-    x0 = np.array((0.99, -0.99))
-    nlcs = [NonlinearConstraint(nci, -10, np.inf),
-            NonlinearConstraint(nce, 1, 1)]
-
-    res = minimize(fun=obj, x0=x0, method='trust-constr',
-                   bounds=bnds, constraints=nlcs)
-    assert res.success
-    assert_inbounds(res.x)
-    assert nlcs[0].lb < nlcs[0].fun(res.x) < nlcs[0].ub
-    assert_allclose(nce(res.x), nlcs[1].ub)
-
-    ref = minimize(fun=obj, x0=x0, method='slsqp',
-                   bounds=bnds, constraints=nlcs)
-    assert_allclose(res.fun, ref.fun)
-
-
-def test_gh20665_too_many_constraints():
-    # gh-20665 reports a confusing error message when there are more equality
-    # constraints than variables. Check that the error message is improved.
-    message = "...more equality constraints than independent variables..."
-    with pytest.raises(ValueError, match=message):
-        x0 = np.ones((2,))
-        A_eq, b_eq = np.arange(6).reshape((3, 2)), np.ones((3,))
-        g = NonlinearConstraint(lambda x:  A_eq @ x, lb=b_eq, ub=b_eq)
-        minimize(rosen, x0, method='trust-constr', constraints=[g])
-    # no error with `SVDFactorization`
-    with np.testing.suppress_warnings() as sup:
-        sup.filter(UserWarning)
-        minimize(rosen, x0, method='trust-constr', constraints=[g],
-                 options={'factorization_method': 'SVDFactorization'})
-
-
-class TestBoundedNelderMead:
-
-    @pytest.mark.parametrize('bounds, x_opt',
-                             [(Bounds(-np.inf, np.inf), Rosenbrock().x_opt),
-                              (Bounds(-np.inf, -0.8), [-0.8, -0.8]),
-                              (Bounds(3.0, np.inf), [3.0, 9.0]),
-                              (Bounds([3.0, 1.0], [4.0, 5.0]), [3., 5.]),
-                              ])
-    def test_rosen_brock_with_bounds(self, bounds, x_opt):
-        prob = Rosenbrock()
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "Initial guess is not within "
-                                    "the specified bounds")
-            result = minimize(prob.fun, [-10, -10],
-                              method='Nelder-Mead',
-                              bounds=bounds)
-            assert np.less_equal(bounds.lb, result.x).all()
-            assert np.less_equal(result.x, bounds.ub).all()
-            assert np.allclose(prob.fun(result.x), result.fun)
-            assert np.allclose(result.x, x_opt, atol=1.e-3)
-
-    def test_equal_all_bounds(self):
-        prob = Rosenbrock()
-        bounds = Bounds([4.0, 5.0], [4.0, 5.0])
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "Initial guess is not within "
-                                    "the specified bounds")
-            result = minimize(prob.fun, [-10, 8],
-                              method='Nelder-Mead',
-                              bounds=bounds)
-            assert np.allclose(result.x, [4.0, 5.0])
-
-    def test_equal_one_bounds(self):
-        prob = Rosenbrock()
-        bounds = Bounds([4.0, 5.0], [4.0, 20.0])
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "Initial guess is not within "
-                                    "the specified bounds")
-            result = minimize(prob.fun, [-10, 8],
-                              method='Nelder-Mead',
-                              bounds=bounds)
-            assert np.allclose(result.x, [4.0, 16.0])
-
-    def test_invalid_bounds(self):
-        prob = Rosenbrock()
-        message = 'An upper bound is less than the corresponding lower bound.'
-        with pytest.raises(ValueError, match=message):
-            bounds = Bounds([-np.inf, 1.0], [4.0, -5.0])
-            minimize(prob.fun, [-10, 3],
-                     method='Nelder-Mead',
-                     bounds=bounds)
-
-    @pytest.mark.xfail(reason="Failing on Azure Linux and macOS builds, "
-                              "see gh-13846")
-    def test_outside_bounds_warning(self):
-        prob = Rosenbrock()
-        message = "Initial guess is not within the specified bounds"
-        with pytest.warns(UserWarning, match=message):
-            bounds = Bounds([-np.inf, 1.0], [4.0, 5.0])
-            minimize(prob.fun, [-10, 8],
-                     method='Nelder-Mead',
-                     bounds=bounds)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_minpack.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_minpack.py
deleted file mode 100644
index b040b1e1253181979726edbd9f717860f6215712..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_minpack.py
+++ /dev/null
@@ -1,1121 +0,0 @@
-"""
-Unit tests for optimization routines from minpack.py.
-"""
-import warnings
-import pytest
-
-from numpy.testing import (assert_, assert_almost_equal, assert_array_equal,
-                           assert_array_almost_equal, assert_allclose,
-                           assert_warns, suppress_warnings)
-from pytest import raises as assert_raises
-import numpy as np
-from numpy import array, float64
-from multiprocessing.pool import ThreadPool
-
-from scipy import optimize, linalg
-from scipy.special import lambertw
-from scipy.optimize._minpack_py import leastsq, curve_fit, fixed_point
-from scipy.optimize import OptimizeWarning
-from scipy.optimize._minimize import Bounds
-
-
-class ReturnShape:
-    """This class exists to create a callable that does not have a '__name__' attribute.
-
-    __init__ takes the argument 'shape', which should be a tuple of ints.
-    When an instance is called with a single argument 'x', it returns numpy.ones(shape).
-    """
-
-    def __init__(self, shape):
-        self.shape = shape
-
-    def __call__(self, x):
-        return np.ones(self.shape)
-
-
-def dummy_func(x, shape):
-    """A function that returns an array of ones of the given shape.
-    `x` is ignored.
-    """
-    return np.ones(shape)
-
-
-def sequence_parallel(fs):
-    with ThreadPool(len(fs)) as pool:
-        return pool.map(lambda f: f(), fs)
-
-
-# Function and Jacobian for tests of solvers for systems of nonlinear
-# equations
-
-
-def pressure_network(flow_rates, Qtot, k):
-    """Evaluate non-linear equation system representing
-    the pressures and flows in a system of n parallel pipes::
-
-        f_i = P_i - P_0, for i = 1..n
-        f_0 = sum(Q_i) - Qtot
-
-    where Q_i is the flow rate in pipe i and P_i the pressure in that pipe.
-    Pressure is modeled as a P=kQ**2 where k is a valve coefficient and
-    Q is the flow rate.
-
-    Parameters
-    ----------
-    flow_rates : float
-        A 1-D array of n flow rates [kg/s].
-    k : float
-        A 1-D array of n valve coefficients [1/kg m].
-    Qtot : float
-        A scalar, the total input flow rate [kg/s].
-
-    Returns
-    -------
-    F : float
-        A 1-D array, F[i] == f_i.
-
-    """
-    P = k * flow_rates**2
-    F = np.hstack((P[1:] - P[0], flow_rates.sum() - Qtot))
-    return F
-
-
-def pressure_network_jacobian(flow_rates, Qtot, k):
-    """Return the jacobian of the equation system F(flow_rates)
-    computed by `pressure_network` with respect to
-    *flow_rates*. See `pressure_network` for the detailed
-    description of parameters.
-
-    Returns
-    -------
-    jac : float
-        *n* by *n* matrix ``df_i/dQ_i`` where ``n = len(flow_rates)``
-        and *f_i* and *Q_i* are described in the doc for `pressure_network`
-    """
-    n = len(flow_rates)
-    pdiff = np.diag(flow_rates[1:] * 2 * k[1:] - 2 * flow_rates[0] * k[0])
-
-    jac = np.empty((n, n))
-    jac[:n-1, :n-1] = pdiff * 0
-    jac[:n-1, n-1] = 0
-    jac[n-1, :] = np.ones(n)
-
-    return jac
-
-
-def pressure_network_fun_and_grad(flow_rates, Qtot, k):
-    return (pressure_network(flow_rates, Qtot, k),
-            pressure_network_jacobian(flow_rates, Qtot, k))
-
-
-class TestFSolve:
-    def test_pressure_network_no_gradient(self):
-        # fsolve without gradient, equal pipes -> equal flows.
-        k = np.full(4, 0.5)
-        Qtot = 4
-        initial_guess = array([2., 0., 2., 0.])
-        final_flows, info, ier, mesg = optimize.fsolve(
-            pressure_network, initial_guess, args=(Qtot, k),
-            full_output=True)
-        assert_array_almost_equal(final_flows, np.ones(4))
-        assert_(ier == 1, mesg)
-
-    def test_pressure_network_with_gradient(self):
-        # fsolve with gradient, equal pipes -> equal flows
-        k = np.full(4, 0.5)
-        Qtot = 4
-        initial_guess = array([2., 0., 2., 0.])
-        final_flows = optimize.fsolve(
-            pressure_network, initial_guess, args=(Qtot, k),
-            fprime=pressure_network_jacobian)
-        assert_array_almost_equal(final_flows, np.ones(4))
-
-    def test_wrong_shape_func_callable(self):
-        func = ReturnShape(1)
-        # x0 is a list of two elements, but func will return an array with
-        # length 1, so this should result in a TypeError.
-        x0 = [1.5, 2.0]
-        assert_raises(TypeError, optimize.fsolve, func, x0)
-
-    def test_wrong_shape_func_function(self):
-        # x0 is a list of two elements, but func will return an array with
-        # length 1, so this should result in a TypeError.
-        x0 = [1.5, 2.0]
-        assert_raises(TypeError, optimize.fsolve, dummy_func, x0, args=((1,),))
-
-    def test_wrong_shape_fprime_callable(self):
-        func = ReturnShape(1)
-        deriv_func = ReturnShape((2,2))
-        assert_raises(TypeError, optimize.fsolve, func, x0=[0,1], fprime=deriv_func)
-
-    def test_wrong_shape_fprime_function(self):
-        def func(x):
-            return dummy_func(x, (2,))
-        def deriv_func(x):
-            return dummy_func(x, (3, 3))
-        assert_raises(TypeError, optimize.fsolve, func, x0=[0,1], fprime=deriv_func)
-
-    def test_func_can_raise(self):
-        def func(*args):
-            raise ValueError('I raised')
-
-        with assert_raises(ValueError, match='I raised'):
-            optimize.fsolve(func, x0=[0])
-
-    def test_Dfun_can_raise(self):
-        def func(x):
-            return x - np.array([10])
-
-        def deriv_func(*args):
-            raise ValueError('I raised')
-
-        with assert_raises(ValueError, match='I raised'):
-            optimize.fsolve(func, x0=[0], fprime=deriv_func)
-
-    def test_float32(self):
-        def func(x):
-            return np.array([x[0] - 100, x[1] - 1000], dtype=np.float32) ** 2
-        p = optimize.fsolve(func, np.array([1, 1], np.float32))
-        assert_allclose(func(p), [0, 0], atol=1e-3)
-
-    def test_reentrant_func(self):
-        def func(*args):
-            self.test_pressure_network_no_gradient()
-            return pressure_network(*args)
-
-        # fsolve without gradient, equal pipes -> equal flows.
-        k = np.full(4, 0.5)
-        Qtot = 4
-        initial_guess = array([2., 0., 2., 0.])
-        final_flows, info, ier, mesg = optimize.fsolve(
-            func, initial_guess, args=(Qtot, k),
-            full_output=True)
-        assert_array_almost_equal(final_flows, np.ones(4))
-        assert_(ier == 1, mesg)
-
-    def test_reentrant_Dfunc(self):
-        def deriv_func(*args):
-            self.test_pressure_network_with_gradient()
-            return pressure_network_jacobian(*args)
-
-        # fsolve with gradient, equal pipes -> equal flows
-        k = np.full(4, 0.5)
-        Qtot = 4
-        initial_guess = array([2., 0., 2., 0.])
-        final_flows = optimize.fsolve(
-            pressure_network, initial_guess, args=(Qtot, k),
-            fprime=deriv_func)
-        assert_array_almost_equal(final_flows, np.ones(4))
-
-    def test_concurrent_no_gradient(self):
-        v = sequence_parallel([self.test_pressure_network_no_gradient] * 10)
-        assert all([result is None for result in v])
-
-    def test_concurrent_with_gradient(self):
-        v = sequence_parallel([self.test_pressure_network_with_gradient] * 10)
-        assert all([result is None for result in v])
-
-
-class TestRootHybr:
-    def test_pressure_network_no_gradient(self):
-        # root/hybr without gradient, equal pipes -> equal flows
-        k = np.full(4, 0.5)
-        Qtot = 4
-        initial_guess = array([2., 0., 2., 0.])
-        final_flows = optimize.root(pressure_network, initial_guess,
-                                    method='hybr', args=(Qtot, k)).x
-        assert_array_almost_equal(final_flows, np.ones(4))
-
-    def test_pressure_network_with_gradient(self):
-        # root/hybr with gradient, equal pipes -> equal flows
-        k = np.full(4, 0.5)
-        Qtot = 4
-        initial_guess = array([[2., 0., 2., 0.]])
-        final_flows = optimize.root(pressure_network, initial_guess,
-                                    args=(Qtot, k), method='hybr',
-                                    jac=pressure_network_jacobian).x
-        assert_array_almost_equal(final_flows, np.ones(4))
-
-    def test_pressure_network_with_gradient_combined(self):
-        # root/hybr with gradient and function combined, equal pipes -> equal
-        # flows
-        k = np.full(4, 0.5)
-        Qtot = 4
-        initial_guess = array([2., 0., 2., 0.])
-        final_flows = optimize.root(pressure_network_fun_and_grad,
-                                    initial_guess, args=(Qtot, k),
-                                    method='hybr', jac=True).x
-        assert_array_almost_equal(final_flows, np.ones(4))
-
-
-class TestRootLM:
-    def test_pressure_network_no_gradient(self):
-        # root/lm without gradient, equal pipes -> equal flows
-        k = np.full(4, 0.5)
-        Qtot = 4
-        initial_guess = array([2., 0., 2., 0.])
-        final_flows = optimize.root(pressure_network, initial_guess,
-                                    method='lm', args=(Qtot, k)).x
-        assert_array_almost_equal(final_flows, np.ones(4))
-
-
-class TestNfev:
-    def zero_f(self, y):
-        self.nfev += 1
-        return y**2-3
-
-    @pytest.mark.parametrize('method', ['hybr', 'lm', 'broyden1',
-                                        'broyden2', 'anderson',
-                                        'linearmixing', 'diagbroyden',
-                                        'excitingmixing', 'krylov',
-                                        'df-sane'])
-    def test_root_nfev(self, method):
-        self.nfev = 0
-        solution = optimize.root(self.zero_f, 100, method=method)
-        assert solution.nfev == self.nfev
-
-    def test_fsolve_nfev(self):
-        self.nfev = 0
-        x, info, ier, mesg = optimize.fsolve(self.zero_f, 100, full_output=True)
-        assert info['nfev'] == self.nfev
-
-
-class TestLeastSq:
-    def setup_method(self):
-        x = np.linspace(0, 10, 40)
-        a,b,c = 3.1, 42, -304.2
-        self.x = x
-        self.abc = a,b,c
-        y_true = a*x**2 + b*x + c
-        np.random.seed(0)
-        self.y_meas = y_true + 0.01*np.random.standard_normal(y_true.shape)
-
-    def residuals(self, p, y, x):
-        a,b,c = p
-        err = y-(a*x**2 + b*x + c)
-        return err
-
-    def residuals_jacobian(self, _p, _y, x):
-        return -np.vstack([x**2, x, np.ones_like(x)]).T
-
-    def test_basic(self):
-        p0 = array([0,0,0])
-        params_fit, ier = leastsq(self.residuals, p0,
-                                  args=(self.y_meas, self.x))
-        assert_(ier in (1,2,3,4), 'solution not found (ier=%d)' % ier)
-        # low precision due to random
-        assert_array_almost_equal(params_fit, self.abc, decimal=2)
-
-    def test_basic_with_gradient(self):
-        p0 = array([0,0,0])
-        params_fit, ier = leastsq(self.residuals, p0,
-                                  args=(self.y_meas, self.x),
-                                  Dfun=self.residuals_jacobian)
-        assert_(ier in (1,2,3,4), 'solution not found (ier=%d)' % ier)
-        # low precision due to random
-        assert_array_almost_equal(params_fit, self.abc, decimal=2)
-
-    def test_full_output(self):
-        p0 = array([[0,0,0]])
-        full_output = leastsq(self.residuals, p0,
-                              args=(self.y_meas, self.x),
-                              full_output=True)
-        params_fit, cov_x, infodict, mesg, ier = full_output
-        assert_(ier in (1,2,3,4), f'solution not found: {mesg}')
-
-    def test_input_untouched(self):
-        p0 = array([0,0,0],dtype=float64)
-        p0_copy = array(p0, copy=True)
-        full_output = leastsq(self.residuals, p0,
-                              args=(self.y_meas, self.x),
-                              full_output=True)
-        params_fit, cov_x, infodict, mesg, ier = full_output
-        assert_(ier in (1,2,3,4), f'solution not found: {mesg}')
-        assert_array_equal(p0, p0_copy)
-
-    def test_wrong_shape_func_callable(self):
-        func = ReturnShape(1)
-        # x0 is a list of two elements, but func will return an array with
-        # length 1, so this should result in a TypeError.
-        x0 = [1.5, 2.0]
-        assert_raises(TypeError, optimize.leastsq, func, x0)
-
-    def test_wrong_shape_func_function(self):
-        # x0 is a list of two elements, but func will return an array with
-        # length 1, so this should result in a TypeError.
-        x0 = [1.5, 2.0]
-        assert_raises(TypeError, optimize.leastsq, dummy_func, x0, args=((1,),))
-
-    def test_wrong_shape_Dfun_callable(self):
-        func = ReturnShape(1)
-        deriv_func = ReturnShape((2,2))
-        assert_raises(TypeError, optimize.leastsq, func, x0=[0,1], Dfun=deriv_func)
-
-    def test_wrong_shape_Dfun_function(self):
-        def func(x):
-            return dummy_func(x, (2,))
-        def deriv_func(x):
-            return dummy_func(x, (3, 3))
-        assert_raises(TypeError, optimize.leastsq, func, x0=[0,1], Dfun=deriv_func)
-
-    def test_float32(self):
-        # Regression test for gh-1447
-        def func(p,x,y):
-            q = p[0]*np.exp(-(x-p[1])**2/(2.0*p[2]**2))+p[3]
-            return q - y
-
-        x = np.array([1.475,1.429,1.409,1.419,1.455,1.519,1.472, 1.368,1.286,
-                       1.231], dtype=np.float32)
-        y = np.array([0.0168,0.0193,0.0211,0.0202,0.0171,0.0151,0.0185,0.0258,
-                      0.034,0.0396], dtype=np.float32)
-        p0 = np.array([1.0,1.0,1.0,1.0])
-        p1, success = optimize.leastsq(func, p0, args=(x,y))
-
-        assert_(success in [1,2,3,4])
-        assert_((func(p1,x,y)**2).sum() < 1e-4 * (func(p0,x,y)**2).sum())
-
-    def test_func_can_raise(self):
-        def func(*args):
-            raise ValueError('I raised')
-
-        with assert_raises(ValueError, match='I raised'):
-            optimize.leastsq(func, x0=[0])
-
-    def test_Dfun_can_raise(self):
-        def func(x):
-            return x - np.array([10])
-
-        def deriv_func(*args):
-            raise ValueError('I raised')
-
-        with assert_raises(ValueError, match='I raised'):
-            optimize.leastsq(func, x0=[0], Dfun=deriv_func)
-
-    def test_reentrant_func(self):
-        def func(*args):
-            self.test_basic()
-            return self.residuals(*args)
-
-        p0 = array([0,0,0])
-        params_fit, ier = leastsq(func, p0,
-                                  args=(self.y_meas, self.x))
-        assert_(ier in (1,2,3,4), 'solution not found (ier=%d)' % ier)
-        # low precision due to random
-        assert_array_almost_equal(params_fit, self.abc, decimal=2)
-
-    def test_reentrant_Dfun(self):
-        def deriv_func(*args):
-            self.test_basic()
-            return self.residuals_jacobian(*args)
-
-        p0 = array([0,0,0])
-        params_fit, ier = leastsq(self.residuals, p0,
-                                  args=(self.y_meas, self.x),
-                                  Dfun=deriv_func)
-        assert_(ier in (1,2,3,4), 'solution not found (ier=%d)' % ier)
-        # low precision due to random
-        assert_array_almost_equal(params_fit, self.abc, decimal=2)
-
-    def test_concurrent_no_gradient(self):
-        v = sequence_parallel([self.test_basic] * 10)
-        assert all([result is None for result in v])
-
-    def test_concurrent_with_gradient(self):
-        v = sequence_parallel([self.test_basic_with_gradient] * 10)
-        assert all([result is None for result in v])
-
-    def test_func_input_output_length_check(self):
-
-        def func(x):
-            return 2 * (x[0] - 3) ** 2 + 1
-
-        with assert_raises(TypeError,
-                           match='Improper input: func input vector length N='):
-            optimize.leastsq(func, x0=[0, 1])
-
-
-class TestCurveFit:
-    def setup_method(self):
-        self.y = array([1.0, 3.2, 9.5, 13.7])
-        self.x = array([1.0, 2.0, 3.0, 4.0])
-
-    def test_one_argument(self):
-        def func(x,a):
-            return x**a
-        popt, pcov = curve_fit(func, self.x, self.y)
-        assert_(len(popt) == 1)
-        assert_(pcov.shape == (1,1))
-        assert_almost_equal(popt[0], 1.9149, decimal=4)
-        assert_almost_equal(pcov[0,0], 0.0016, decimal=4)
-
-        # Test if we get the same with full_output. Regression test for #1415.
-        # Also test if check_finite can be turned off.
-        res = curve_fit(func, self.x, self.y,
-                        full_output=1, check_finite=False)
-        (popt2, pcov2, infodict, errmsg, ier) = res
-        assert_array_almost_equal(popt, popt2)
-
-    def test_two_argument(self):
-        def func(x, a, b):
-            return b*x**a
-        popt, pcov = curve_fit(func, self.x, self.y)
-        assert_(len(popt) == 2)
-        assert_(pcov.shape == (2,2))
-        assert_array_almost_equal(popt, [1.7989, 1.1642], decimal=4)
-        assert_array_almost_equal(pcov, [[0.0852, -0.1260], [-0.1260, 0.1912]],
-                                  decimal=4)
-
-    def test_func_is_classmethod(self):
-        class test_self:
-            """This class tests if curve_fit passes the correct number of
-               arguments when the model function is a class instance method.
-            """
-
-            def func(self, x, a, b):
-                return b * x**a
-
-        test_self_inst = test_self()
-        popt, pcov = curve_fit(test_self_inst.func, self.x, self.y)
-        assert_(pcov.shape == (2,2))
-        assert_array_almost_equal(popt, [1.7989, 1.1642], decimal=4)
-        assert_array_almost_equal(pcov, [[0.0852, -0.1260], [-0.1260, 0.1912]],
-                                  decimal=4)
-
-    def test_regression_2639(self):
-        # This test fails if epsfcn in leastsq is too large.
-        x = [574.14200000000005, 574.154, 574.16499999999996,
-             574.17700000000002, 574.18799999999999, 574.19899999999996,
-             574.21100000000001, 574.22199999999998, 574.23400000000004,
-             574.245]
-        y = [859.0, 997.0, 1699.0, 2604.0, 2013.0, 1964.0, 2435.0,
-             1550.0, 949.0, 841.0]
-        guess = [574.1861428571428, 574.2155714285715, 1302.0, 1302.0,
-                 0.0035019999999983615, 859.0]
-        good = [5.74177150e+02, 5.74209188e+02, 1.74187044e+03, 1.58646166e+03,
-                1.0068462e-02, 8.57450661e+02]
-
-        def f_double_gauss(x, x0, x1, A0, A1, sigma, c):
-            return (A0*np.exp(-(x-x0)**2/(2.*sigma**2))
-                    + A1*np.exp(-(x-x1)**2/(2.*sigma**2)) + c)
-        popt, pcov = curve_fit(f_double_gauss, x, y, guess, maxfev=10000)
-        assert_allclose(popt, good, rtol=1e-5)
-
-    def test_pcov(self):
-        xdata = np.array([0, 1, 2, 3, 4, 5])
-        ydata = np.array([1, 1, 5, 7, 8, 12])
-        sigma = np.array([1, 2, 1, 2, 1, 2])
-
-        def f(x, a, b):
-            return a*x + b
-
-        for method in ['lm', 'trf', 'dogbox']:
-            popt, pcov = curve_fit(f, xdata, ydata, p0=[2, 0], sigma=sigma,
-                                   method=method)
-            perr_scaled = np.sqrt(np.diag(pcov))
-            assert_allclose(perr_scaled, [0.20659803, 0.57204404], rtol=1e-3)
-
-            popt, pcov = curve_fit(f, xdata, ydata, p0=[2, 0], sigma=3*sigma,
-                                   method=method)
-            perr_scaled = np.sqrt(np.diag(pcov))
-            assert_allclose(perr_scaled, [0.20659803, 0.57204404], rtol=1e-3)
-
-            popt, pcov = curve_fit(f, xdata, ydata, p0=[2, 0], sigma=sigma,
-                                   absolute_sigma=True, method=method)
-            perr = np.sqrt(np.diag(pcov))
-            assert_allclose(perr, [0.30714756, 0.85045308], rtol=1e-3)
-
-            popt, pcov = curve_fit(f, xdata, ydata, p0=[2, 0], sigma=3*sigma,
-                                   absolute_sigma=True, method=method)
-            perr = np.sqrt(np.diag(pcov))
-            assert_allclose(perr, [3*0.30714756, 3*0.85045308], rtol=1e-3)
-
-        # infinite variances
-
-        def f_flat(x, a, b):
-            return a*x
-
-        pcov_expected = np.array([np.inf]*4).reshape(2, 2)
-
-        with suppress_warnings() as sup:
-            sup.filter(OptimizeWarning,
-                       "Covariance of the parameters could not be estimated")
-            popt, pcov = curve_fit(f_flat, xdata, ydata, p0=[2, 0], sigma=sigma)
-            popt1, pcov1 = curve_fit(f, xdata[:2], ydata[:2], p0=[2, 0])
-
-        assert_(pcov.shape == (2, 2))
-        assert_array_equal(pcov, pcov_expected)
-
-        assert_(pcov1.shape == (2, 2))
-        assert_array_equal(pcov1, pcov_expected)
-
-    def test_array_like(self):
-        # Test sequence input. Regression test for gh-3037.
-        def f_linear(x, a, b):
-            return a*x + b
-
-        x = [1, 2, 3, 4]
-        y = [3, 5, 7, 9]
-        assert_allclose(curve_fit(f_linear, x, y)[0], [2, 1], atol=1e-10)
-
-    def test_indeterminate_covariance(self):
-        # Test that a warning is returned when pcov is indeterminate
-        xdata = np.array([1, 2, 3, 4, 5, 6])
-        ydata = np.array([1, 2, 3, 4, 5.5, 6])
-        assert_warns(OptimizeWarning, curve_fit,
-                     lambda x, a, b: a*x, xdata, ydata)
-
-    def test_NaN_handling(self):
-        # Test for correct handling of NaNs in input data: gh-3422
-
-        # create input with NaNs
-        xdata = np.array([1, np.nan, 3])
-        ydata = np.array([1, 2, 3])
-
-        assert_raises(ValueError, curve_fit,
-                      lambda x, a, b: a*x + b, xdata, ydata)
-        assert_raises(ValueError, curve_fit,
-                      lambda x, a, b: a*x + b, ydata, xdata)
-
-        assert_raises(ValueError, curve_fit, lambda x, a, b: a*x + b,
-                      xdata, ydata, **{"check_finite": True})
-
-    @staticmethod
-    def _check_nan_policy(f, xdata_with_nan, xdata_without_nan,
-                          ydata_with_nan, ydata_without_nan, method):
-        kwargs = {'f': f, 'xdata': xdata_with_nan, 'ydata': ydata_with_nan,
-                  'method': method, 'check_finite': False}
-        # propagate test
-        error_msg = ("`nan_policy='propagate'` is not supported "
-                     "by this function.")
-        with assert_raises(ValueError, match=error_msg):
-            curve_fit(**kwargs, nan_policy="propagate", maxfev=2000)
-
-        # raise test
-        with assert_raises(ValueError, match="The input contains nan"):
-            curve_fit(**kwargs, nan_policy="raise")
-
-        # omit test
-        result_with_nan, _ = curve_fit(**kwargs, nan_policy="omit")
-        kwargs['xdata'] = xdata_without_nan
-        kwargs['ydata'] = ydata_without_nan
-        result_without_nan, _ = curve_fit(**kwargs)
-        assert_allclose(result_with_nan, result_without_nan)
-
-        # not valid policy test
-        # check for argument names in any order
-        error_msg = (r"nan_policy must be one of \{(?:'raise'|'omit'|None)"
-                     r"(?:, ?(?:'raise'|'omit'|None))*\}")
-        with assert_raises(ValueError, match=error_msg):
-            curve_fit(**kwargs, nan_policy="hi")
-
-    @pytest.mark.parametrize('method', ["lm", "trf", "dogbox"])
-    def test_nan_policy_1d(self, method):
-        def f(x, a, b):
-            return a*x + b
-
-        xdata_with_nan = np.array([2, 3, np.nan, 4, 4, np.nan])
-        ydata_with_nan = np.array([1, 2, 5, 3, np.nan, 7])
-        xdata_without_nan = np.array([2, 3, 4])
-        ydata_without_nan = np.array([1, 2, 3])
-
-        self._check_nan_policy(f, xdata_with_nan, xdata_without_nan,
-                               ydata_with_nan, ydata_without_nan, method)
-
-    @pytest.mark.parametrize('method', ["lm", "trf", "dogbox"])
-    def test_nan_policy_2d(self, method):
-        def f(x, a, b):
-            x1 = x[0, :]
-            x2 = x[1, :]
-            return a*x1 + b + x2
-
-        xdata_with_nan = np.array([[2, 3, np.nan, 4, 4, np.nan, 5],
-                                   [2, 3, np.nan, np.nan, 4, np.nan, 7]])
-        ydata_with_nan = np.array([1, 2, 5, 3, np.nan, 7, 10])
-        xdata_without_nan = np.array([[2, 3, 5], [2, 3, 7]])
-        ydata_without_nan = np.array([1, 2, 10])
-
-        self._check_nan_policy(f, xdata_with_nan, xdata_without_nan,
-                               ydata_with_nan, ydata_without_nan, method)
-
-    @pytest.mark.parametrize('n', [2, 3])
-    @pytest.mark.parametrize('method', ["lm", "trf", "dogbox"])
-    def test_nan_policy_2_3d(self, n, method):
-        def f(x, a, b):
-            x1 = x[..., 0, :].squeeze()
-            x2 = x[..., 1, :].squeeze()
-            return a*x1 + b + x2
-
-        xdata_with_nan = np.array([[[2, 3, np.nan, 4, 4, np.nan, 5],
-                                   [2, 3, np.nan, np.nan, 4, np.nan, 7]]])
-        xdata_with_nan = xdata_with_nan.squeeze() if n == 2 else xdata_with_nan
-        ydata_with_nan = np.array([1, 2, 5, 3, np.nan, 7, 10])
-        xdata_without_nan = np.array([[[2, 3, 5], [2, 3, 7]]])
-        ydata_without_nan = np.array([1, 2, 10])
-
-        self._check_nan_policy(f, xdata_with_nan, xdata_without_nan,
-                               ydata_with_nan, ydata_without_nan, method)
-
-    def test_empty_inputs(self):
-        # Test both with and without bounds (regression test for gh-9864)
-        assert_raises(ValueError, curve_fit, lambda x, a: a*x, [], [])
-        assert_raises(ValueError, curve_fit, lambda x, a: a*x, [], [],
-                      bounds=(1, 2))
-        assert_raises(ValueError, curve_fit, lambda x, a: a*x, [1], [])
-        assert_raises(ValueError, curve_fit, lambda x, a: a*x, [2], [],
-                      bounds=(1, 2))
-
-    def test_function_zero_params(self):
-        # Fit args is zero, so "Unable to determine number of fit parameters."
-        assert_raises(ValueError, curve_fit, lambda x: x, [1, 2], [3, 4])
-
-    def test_None_x(self):  # Added in GH10196
-        popt, pcov = curve_fit(lambda _, a: a * np.arange(10),
-                               None, 2 * np.arange(10))
-        assert_allclose(popt, [2.])
-
-    def test_method_argument(self):
-        def f(x, a, b):
-            return a * np.exp(-b*x)
-
-        xdata = np.linspace(0, 1, 11)
-        ydata = f(xdata, 2., 2.)
-
-        for method in ['trf', 'dogbox', 'lm', None]:
-            popt, pcov = curve_fit(f, xdata, ydata, method=method)
-            assert_allclose(popt, [2., 2.])
-
-        assert_raises(ValueError, curve_fit, f, xdata, ydata, method='unknown')
-
-    def test_full_output(self):
-        def f(x, a, b):
-            return a * np.exp(-b * x)
-
-        xdata = np.linspace(0, 1, 11)
-        ydata = f(xdata, 2., 2.)
-
-        for method in ['trf', 'dogbox', 'lm', None]:
-            popt, pcov, infodict, errmsg, ier = curve_fit(
-                f, xdata, ydata, method=method, full_output=True)
-            assert_allclose(popt, [2., 2.])
-            assert "nfev" in infodict
-            assert "fvec" in infodict
-            if method == 'lm' or method is None:
-                assert "fjac" in infodict
-                assert "ipvt" in infodict
-                assert "qtf" in infodict
-            assert isinstance(errmsg, str)
-            assert ier in (1, 2, 3, 4)
-
-    def test_bounds(self):
-        def f(x, a, b):
-            return a * np.exp(-b*x)
-
-        xdata = np.linspace(0, 1, 11)
-        ydata = f(xdata, 2., 2.)
-
-        # The minimum w/out bounds is at [2., 2.],
-        # and with bounds it's at [1.5, smth].
-        lb = [1., 0]
-        ub = [1.5, 3.]
-
-        # Test that both variants of the bounds yield the same result
-        bounds = (lb, ub)
-        bounds_class = Bounds(lb, ub)
-        for method in [None, 'trf', 'dogbox']:
-            popt, pcov = curve_fit(f, xdata, ydata, bounds=bounds,
-                                   method=method)
-            assert_allclose(popt[0], 1.5)
-
-            popt_class, pcov_class = curve_fit(f, xdata, ydata,
-                                               bounds=bounds_class,
-                                               method=method)
-            assert_allclose(popt_class, popt)
-
-        # With bounds, the starting estimate is feasible.
-        popt, pcov = curve_fit(f, xdata, ydata, method='trf',
-                               bounds=([0., 0], [0.6, np.inf]))
-        assert_allclose(popt[0], 0.6)
-
-        # method='lm' doesn't support bounds.
-        assert_raises(ValueError, curve_fit, f, xdata, ydata, bounds=bounds,
-                      method='lm')
-
-    def test_bounds_p0(self):
-        # This test is for issue #5719. The problem was that an initial guess
-        # was ignored when 'trf' or 'dogbox' methods were invoked.
-        def f(x, a):
-            return np.sin(x + a)
-
-        xdata = np.linspace(-2*np.pi, 2*np.pi, 40)
-        ydata = np.sin(xdata)
-        bounds = (-3 * np.pi, 3 * np.pi)
-        for method in ['trf', 'dogbox']:
-            popt_1, _ = curve_fit(f, xdata, ydata, p0=2.1*np.pi)
-            popt_2, _ = curve_fit(f, xdata, ydata, p0=2.1*np.pi,
-                                  bounds=bounds, method=method)
-
-            # If the initial guess is ignored, then popt_2 would be close 0.
-            assert_allclose(popt_1, popt_2)
-
-    def test_jac(self):
-        # Test that Jacobian callable is handled correctly and
-        # weighted if sigma is provided.
-        def f(x, a, b):
-            return a * np.exp(-b*x)
-
-        def jac(x, a, b):
-            e = np.exp(-b*x)
-            return np.vstack((e, -a * x * e)).T
-
-        xdata = np.linspace(0, 1, 11)
-        ydata = f(xdata, 2., 2.)
-
-        # Test numerical options for least_squares backend.
-        for method in ['trf', 'dogbox']:
-            for scheme in ['2-point', '3-point', 'cs']:
-                popt, pcov = curve_fit(f, xdata, ydata, jac=scheme,
-                                       method=method)
-                assert_allclose(popt, [2, 2])
-
-        # Test the analytic option.
-        for method in ['lm', 'trf', 'dogbox']:
-            popt, pcov = curve_fit(f, xdata, ydata, method=method, jac=jac)
-            assert_allclose(popt, [2, 2])
-
-        # Now add an outlier and provide sigma.
-        ydata[5] = 100
-        sigma = np.ones(xdata.shape[0])
-        sigma[5] = 200
-        for method in ['lm', 'trf', 'dogbox']:
-            popt, pcov = curve_fit(f, xdata, ydata, sigma=sigma, method=method,
-                                   jac=jac)
-            # Still the optimization process is influenced somehow,
-            # have to set rtol=1e-3.
-            assert_allclose(popt, [2, 2], rtol=1e-3)
-
-    def test_maxfev_and_bounds(self):
-        # gh-6340: with no bounds, curve_fit accepts parameter maxfev (via leastsq)
-        # but with bounds, the parameter is `max_nfev` (via least_squares)
-        x = np.arange(0, 10)
-        y = 2*x
-        popt1, _ = curve_fit(lambda x,p: p*x, x, y, bounds=(0, 3), maxfev=100)
-        popt2, _ = curve_fit(lambda x,p: p*x, x, y, bounds=(0, 3), max_nfev=100)
-
-        assert_allclose(popt1, 2, atol=1e-14)
-        assert_allclose(popt2, 2, atol=1e-14)
-
-    def test_curvefit_simplecovariance(self):
-
-        def func(x, a, b):
-            return a * np.exp(-b*x)
-
-        def jac(x, a, b):
-            e = np.exp(-b*x)
-            return np.vstack((e, -a * x * e)).T
-
-        np.random.seed(0)
-        xdata = np.linspace(0, 4, 50)
-        y = func(xdata, 2.5, 1.3)
-        ydata = y + 0.2 * np.random.normal(size=len(xdata))
-
-        sigma = np.zeros(len(xdata)) + 0.2
-        covar = np.diag(sigma**2)
-
-        for jac1, jac2 in [(jac, jac), (None, None)]:
-            for absolute_sigma in [False, True]:
-                popt1, pcov1 = curve_fit(func, xdata, ydata, sigma=sigma,
-                        jac=jac1, absolute_sigma=absolute_sigma)
-                popt2, pcov2 = curve_fit(func, xdata, ydata, sigma=covar,
-                        jac=jac2, absolute_sigma=absolute_sigma)
-
-                assert_allclose(popt1, popt2, atol=1e-14)
-                assert_allclose(pcov1, pcov2, atol=1e-14)
-
-    def test_curvefit_covariance(self):
-
-        def funcp(x, a, b):
-            rotn = np.array([[1./np.sqrt(2), -1./np.sqrt(2), 0],
-                             [1./np.sqrt(2), 1./np.sqrt(2), 0],
-                             [0, 0, 1.0]])
-            return rotn.dot(a * np.exp(-b*x))
-
-        def jacp(x, a, b):
-            rotn = np.array([[1./np.sqrt(2), -1./np.sqrt(2), 0],
-                             [1./np.sqrt(2), 1./np.sqrt(2), 0],
-                             [0, 0, 1.0]])
-            e = np.exp(-b*x)
-            return rotn.dot(np.vstack((e, -a * x * e)).T)
-
-        def func(x, a, b):
-            return a * np.exp(-b*x)
-
-        def jac(x, a, b):
-            e = np.exp(-b*x)
-            return np.vstack((e, -a * x * e)).T
-
-        np.random.seed(0)
-        xdata = np.arange(1, 4)
-        y = func(xdata, 2.5, 1.0)
-        ydata = y + 0.2 * np.random.normal(size=len(xdata))
-        sigma = np.zeros(len(xdata)) + 0.2
-        covar = np.diag(sigma**2)
-        # Get a rotation matrix, and obtain ydatap = R ydata
-        # Chisq = ydata^T C^{-1} ydata
-        #       = ydata^T R^T R C^{-1} R^T R ydata
-        #       = ydatap^T Cp^{-1} ydatap
-        # Cp^{-1} = R C^{-1} R^T
-        # Cp      = R C R^T, since R^-1 = R^T
-        rotn = np.array([[1./np.sqrt(2), -1./np.sqrt(2), 0],
-                         [1./np.sqrt(2), 1./np.sqrt(2), 0],
-                         [0, 0, 1.0]])
-        ydatap = rotn.dot(ydata)
-        covarp = rotn.dot(covar).dot(rotn.T)
-
-        for jac1, jac2 in [(jac, jacp), (None, None)]:
-            for absolute_sigma in [False, True]:
-                popt1, pcov1 = curve_fit(func, xdata, ydata, sigma=sigma,
-                        jac=jac1, absolute_sigma=absolute_sigma)
-                popt2, pcov2 = curve_fit(funcp, xdata, ydatap, sigma=covarp,
-                        jac=jac2, absolute_sigma=absolute_sigma)
-
-                assert_allclose(popt1, popt2, rtol=1.2e-7, atol=1e-14)
-                assert_allclose(pcov1, pcov2, rtol=1.2e-7, atol=1e-14)
-
-    @pytest.mark.parametrize("absolute_sigma", [False, True])
-    def test_curvefit_scalar_sigma(self, absolute_sigma):
-        def func(x, a, b):
-            return a * x + b
-
-        x, y = self.x, self.y
-        _, pcov1 = curve_fit(func, x, y, sigma=2, absolute_sigma=absolute_sigma)
-        # Explicitly building the sigma 1D array
-        _, pcov2 = curve_fit(
-                func, x, y, sigma=np.full_like(y, 2), absolute_sigma=absolute_sigma
-        )
-        assert np.all(pcov1 == pcov2)
-
-    def test_dtypes(self):
-        # regression test for gh-9581: curve_fit fails if x and y dtypes differ
-        x = np.arange(-3, 5)
-        y = 1.5*x + 3.0 + 0.5*np.sin(x)
-
-        def func(x, a, b):
-            return a*x + b
-
-        for method in ['lm', 'trf', 'dogbox']:
-            for dtx in [np.float32, np.float64]:
-                for dty in [np.float32, np.float64]:
-                    x = x.astype(dtx)
-                    y = y.astype(dty)
-
-                with warnings.catch_warnings():
-                    warnings.simplefilter("error", OptimizeWarning)
-                    p, cov = curve_fit(func, x, y, method=method)
-
-                    assert np.isfinite(cov).all()
-                    assert not np.allclose(p, 1)   # curve_fit's initial value
-
-    def test_dtypes2(self):
-        # regression test for gh-7117: curve_fit fails if
-        # both inputs are float32
-        def hyperbola(x, s_1, s_2, o_x, o_y, c):
-            b_2 = (s_1 + s_2) / 2
-            b_1 = (s_2 - s_1) / 2
-            return o_y + b_1*(x-o_x) + b_2*np.sqrt((x-o_x)**2 + c**2/4)
-
-        min_fit = np.array([-3.0, 0.0, -2.0, -10.0, 0.0])
-        max_fit = np.array([0.0, 3.0, 3.0, 0.0, 10.0])
-        guess = np.array([-2.5/3.0, 4/3.0, 1.0, -4.0, 0.5])
-
-        params = [-2, .4, -1, -5, 9.5]
-        xdata = np.array([-32, -16, -8, 4, 4, 8, 16, 32])
-        ydata = hyperbola(xdata, *params)
-
-        # run optimization twice, with xdata being float32 and float64
-        popt_64, _ = curve_fit(f=hyperbola, xdata=xdata, ydata=ydata, p0=guess,
-                               bounds=(min_fit, max_fit))
-
-        xdata = xdata.astype(np.float32)
-        ydata = hyperbola(xdata, *params)
-
-        popt_32, _ = curve_fit(f=hyperbola, xdata=xdata, ydata=ydata, p0=guess,
-                               bounds=(min_fit, max_fit))
-
-        assert_allclose(popt_32, popt_64, atol=2e-5)
-
-    def test_broadcast_y(self):
-        xdata = np.arange(10)
-        target = 4.7 * xdata ** 2 + 3.5 * xdata + np.random.rand(len(xdata))
-        def fit_func(x, a, b):
-            return a * x ** 2 + b * x - target
-        for method in ['lm', 'trf', 'dogbox']:
-            popt0, pcov0 = curve_fit(fit_func,
-                                     xdata=xdata,
-                                     ydata=np.zeros_like(xdata),
-                                     method=method)
-            popt1, pcov1 = curve_fit(fit_func,
-                                     xdata=xdata,
-                                     ydata=0,
-                                     method=method)
-            assert_allclose(pcov0, pcov1)
-
-    def test_args_in_kwargs(self):
-        # Ensure that `args` cannot be passed as keyword argument to `curve_fit`
-
-        def func(x, a, b):
-            return a * x + b
-
-        with assert_raises(ValueError):
-            curve_fit(func,
-                      xdata=[1, 2, 3, 4],
-                      ydata=[5, 9, 13, 17],
-                      p0=[1],
-                      args=(1,))
-
-    def test_data_point_number_validation(self):
-        def func(x, a, b, c, d, e):
-            return a * np.exp(-b * x) + c + d + e
-
-        with assert_raises(TypeError, match="The number of func parameters="):
-            curve_fit(func,
-                      xdata=[1, 2, 3, 4],
-                      ydata=[5, 9, 13, 17])
-
-    @pytest.mark.filterwarnings('ignore::RuntimeWarning')
-    def test_gh4555(self):
-        # gh-4555 reported that covariance matrices returned by `leastsq`
-        # can have negative diagonal elements and eigenvalues. (In fact,
-        # they can also be asymmetric.) This shows up in the output of
-        # `scipy.optimize.curve_fit`. Check that it has been resolved.giit
-        def f(x, a, b, c, d, e):
-            return a*np.log(x + 1 + b) + c*np.log(x + 1 + d) + e
-
-        rng = np.random.default_rng(408113519974467917)
-        n = 100
-        x = np.arange(n)
-        y = np.linspace(2, 7, n) + rng.random(n)
-        p, cov = optimize.curve_fit(f, x, y, maxfev=100000)
-        assert np.all(np.diag(cov) > 0)
-        eigs = linalg.eigh(cov)[0]  # separate line for debugging
-        # some platforms see a small negative eigevenvalue
-        assert np.all(eigs > -1e-2)
-        assert_allclose(cov, cov.T)
-
-    def test_gh4555b(self):
-        # check that PR gh-17247 did not significantly change covariance matrix
-        # for simple cases
-        rng = np.random.default_rng(408113519974467917)
-
-        def func(x, a, b, c):
-            return a * np.exp(-b * x) + c
-
-        xdata = np.linspace(0, 4, 50)
-        y = func(xdata, 2.5, 1.3, 0.5)
-        y_noise = 0.2 * rng.normal(size=xdata.size)
-        ydata = y + y_noise
-        _, res = curve_fit(func, xdata, ydata)
-        # reference from commit 1d80a2f254380d2b45733258ca42eb6b55c8755b
-        ref = [[+0.0158972536486215, 0.0069207183284242, -0.0007474400714749],
-               [+0.0069207183284242, 0.0205057958128679, +0.0053997711275403],
-               [-0.0007474400714749, 0.0053997711275403, +0.0027833930320877]]
-        # Linux_Python_38_32bit_full fails with default tolerance
-        assert_allclose(res, ref, 2e-7)
-
-    def test_gh13670(self):
-        # gh-13670 reported that `curve_fit` executes callables
-        # with the same values of the parameters at the beginning of
-        # optimization. Check that this has been resolved.
-
-        rng = np.random.default_rng(8250058582555444926)
-        x = np.linspace(0, 3, 101)
-        y = 2 * x + 1 + rng.normal(size=101) * 0.5
-
-        def line(x, *p):
-            assert not np.all(line.last_p == p)
-            line.last_p = p
-            return x * p[0] + p[1]
-
-        def jac(x, *p):
-            assert not np.all(jac.last_p == p)
-            jac.last_p = p
-            return np.array([x, np.ones_like(x)]).T
-
-        line.last_p = None
-        jac.last_p = None
-        p0 = np.array([1.0, 5.0])
-        curve_fit(line, x, y, p0, method='lm', jac=jac)
-
-
-class TestFixedPoint:
-
-    def test_scalar_trivial(self):
-        # f(x) = 2x; fixed point should be x=0
-        def func(x):
-            return 2.0*x
-        x0 = 1.0
-        x = fixed_point(func, x0)
-        assert_almost_equal(x, 0.0)
-
-    def test_scalar_basic1(self):
-        # f(x) = x**2; x0=1.05; fixed point should be x=1
-        def func(x):
-            return x**2
-        x0 = 1.05
-        x = fixed_point(func, x0)
-        assert_almost_equal(x, 1.0)
-
-    def test_scalar_basic2(self):
-        # f(x) = x**0.5; x0=1.05; fixed point should be x=1
-        def func(x):
-            return x**0.5
-        x0 = 1.05
-        x = fixed_point(func, x0)
-        assert_almost_equal(x, 1.0)
-
-    def test_array_trivial(self):
-        def func(x):
-            return 2.0*x
-        x0 = [0.3, 0.15]
-        with np.errstate(all='ignore'):
-            x = fixed_point(func, x0)
-        assert_almost_equal(x, [0.0, 0.0])
-
-    def test_array_basic1(self):
-        # f(x) = c * x**2; fixed point should be x=1/c
-        def func(x, c):
-            return c * x**2
-        c = array([0.75, 1.0, 1.25])
-        x0 = [1.1, 1.15, 0.9]
-        with np.errstate(all='ignore'):
-            x = fixed_point(func, x0, args=(c,))
-        assert_almost_equal(x, 1.0/c)
-
-    def test_array_basic2(self):
-        # f(x) = c * x**0.5; fixed point should be x=c**2
-        def func(x, c):
-            return c * x**0.5
-        c = array([0.75, 1.0, 1.25])
-        x0 = [0.8, 1.1, 1.1]
-        x = fixed_point(func, x0, args=(c,))
-        assert_almost_equal(x, c**2)
-
-    def test_lambertw(self):
-        # python-list/2010-December/594592.html
-        xxroot = fixed_point(lambda xx: np.exp(-2.0*xx)/2.0, 1.0,
-                args=(), xtol=1e-12, maxiter=500)
-        assert_allclose(xxroot, np.exp(-2.0*xxroot)/2.0)
-        assert_allclose(xxroot, lambertw(1)/2)
-
-    def test_no_acceleration(self):
-        # github issue 5460
-        ks = 2
-        kl = 6
-        m = 1.3
-        n0 = 1.001
-        i0 = ((m-1)/m)*(kl/ks/m)**(1/(m-1))
-
-        def func(n):
-            return np.log(kl/ks/n) / np.log(i0*n/(n - 1)) + 1
-
-        n = fixed_point(func, n0, method='iteration')
-        assert_allclose(n, m)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_nnls.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_nnls.py
deleted file mode 100644
index aa4956febd84cce145fba488a9b6289726bf3efb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_nnls.py
+++ /dev/null
@@ -1,318 +0,0 @@
-import numpy as np
-from numpy.testing import assert_allclose
-from pytest import raises as assert_raises
-from scipy.optimize import nnls
-
-
-class TestNNLS:
-    def setup_method(self):
-        self.rng = np.random.default_rng(1685225766635251)
-
-    def test_nnls(self):
-        a = np.arange(25.0).reshape(-1, 5)
-        x = np.arange(5.0)
-        y = a @ x
-        x, res = nnls(a, y)
-        assert res < 1e-7
-        assert np.linalg.norm((a @ x) - y) < 1e-7
-
-    def test_nnls_tall(self):
-        a = self.rng.uniform(low=-10, high=10, size=[50, 10])
-        x = np.abs(self.rng.uniform(low=-2, high=2, size=[10]))
-        x[::2] = 0
-        b = a @ x
-        xact, rnorm = nnls(a, b, atol=500*np.linalg.norm(a, 1)*np.spacing(1.))
-        assert_allclose(xact, x, rtol=0., atol=1e-10)
-        assert rnorm < 1e-12
-
-    def test_nnls_wide(self):
-        # If too wide then problem becomes too ill-conditioned ans starts
-        # emitting warnings, hence small m, n difference.
-        a = self.rng.uniform(low=-10, high=10, size=[100, 120])
-        x = np.abs(self.rng.uniform(low=-2, high=2, size=[120]))
-        x[::2] = 0
-        b = a @ x
-        xact, rnorm = nnls(a, b, atol=500*np.linalg.norm(a, 1)*np.spacing(1.))
-        assert_allclose(xact, x, rtol=0., atol=1e-10)
-        assert rnorm < 1e-12
-
-    def test_maxiter(self):
-        # test that maxiter argument does stop iterations
-        a = self.rng.uniform(size=(5, 10))
-        b = self.rng.uniform(size=5)
-        with assert_raises(RuntimeError):
-            nnls(a, b, maxiter=1)
-
-    def test_nnls_inner_loop_case1(self):
-        # See gh-20168
-        n = np.array(
-            [3, 2, 0, 1, 1, 1, 3, 8, 14, 16, 29, 23, 41, 47, 53, 57, 67, 76,
-             103, 89, 97, 94, 85, 95, 78, 78, 78, 77, 73, 50, 50, 56, 68, 98,
-             95, 112, 134, 145, 158, 172, 213, 234, 222, 215, 216, 216, 206,
-             183, 135, 156, 110, 92, 63, 60, 52, 29, 20, 16, 12, 5, 5, 5, 1, 2,
-             3, 0, 2])
-        k = np.array(
-            [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
-             0., 0., 0., 0.7205812007860187, 0., 1.4411624015720375,
-             0.7205812007860187, 2.882324803144075, 5.76464960628815,
-             5.76464960628815, 12.249880413362318, 15.132205216506394,
-             20.176273622008523, 27.382085629868712, 48.27894045266326,
-             47.558359251877235, 68.45521407467177, 97.99904330689854,
-             108.0871801179028, 135.46926574777152, 140.51333415327366,
-             184.4687874012208, 171.49832578707245, 205.36564222401535,
-             244.27702706646033, 214.01261663344755, 228.42424064916793,
-             232.02714665309804, 205.36564222401535, 172.9394881886445,
-             191.67459940908097, 162.1307701768542, 153.48379576742198,
-             110.96950492104689, 103.04311171240067, 86.46974409432225,
-             60.528820866025576, 43.234872047161126, 23.779179625938617,
-             24.499760826724636, 17.29394881886445, 11.5292992125763,
-             5.76464960628815, 5.044068405502131, 3.6029060039300935, 0.,
-             2.882324803144075, 0., 0., 0.])
-        d = np.array(
-            [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
-             0., 0., 0., 0.003889242101538, 0., 0.007606268390096, 0.,
-             0.025457371599973, 0.036952882091577, 0., 0.08518359183449,
-             0.048201126400243, 0.196234990022205, 0.144116240157247,
-             0.171145134062442, 0., 0., 0.269555036538714, 0., 0., 0.,
-             0.010893241091872, 0., 0., 0., 0., 0., 0., 0., 0.,
-             0.048167058272886, 0.011238724891049, 0., 0., 0.055162603456078,
-             0., 0., 0., 0., 0.027753339088588, 0., 0., 0., 0., 0., 0., 0., 0.,
-             0., 0.])
-        # The following code sets up a system of equations such that
-        # $k_i-p_i*n_i$ is minimized for $p_i$ with weights $n_i$ and
-        # monotonicity constraints on $p_i$. This translates to a system of
-        # equations of the form $k_i - (d_1 + ... + d_i) * n_i$ and
-        # non-negativity constraints on the $d_i$. If $n_i$ is zero the
-        # system is modified such that $d_i - d_{i+1}$ is then minimized.
-        N = len(n)
-        A = np.diag(n) @ np.tril(np.ones((N, N)))
-        w = n ** 0.5
-
-        nz = (n == 0).nonzero()[0]
-        A[nz, nz] = 1
-        A[nz, np.minimum(nz + 1, N - 1)] = -1
-        w[nz] = 1
-        k[nz] = 0
-        W = np.diag(w)
-
-        # Small perturbations can already make the infinite loop go away (just
-        # uncomment the next line)
-        k = k + 1e-10 * np.random.normal(size=N)
-        dact, _ = nnls(W @ A, W @ k)
-        assert_allclose(dact, d, rtol=0., atol=1e-10)
-
-    def test_nnls_inner_loop_case2(self):
-        # See gh-20168
-        n = np.array(
-            [1, 0, 1, 2, 2, 2, 3, 3, 5, 4, 14, 14, 19, 26, 36, 42, 36, 64, 64,
-             64, 81, 85, 85, 95, 95, 95, 75, 76, 69, 81, 62, 59, 68, 64, 71, 67,
-             74, 78, 118, 135, 153, 159, 210, 195, 218, 243, 236, 215, 196, 175,
-             185, 149, 144, 103, 104, 75, 56, 40, 32, 26, 17, 9, 12, 8, 2, 1, 1,
-             1])
-        k = np.array(
-            [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
-             0., 0., 0., 0., 0., 0.7064355064917867, 0., 0., 2.11930651947536,
-             0.7064355064917867, 0., 3.5321775324589333, 7.064355064917867,
-             11.302968103868587, 16.95445215580288, 20.486629688261814,
-             20.486629688261814, 37.44108184406469, 55.808405012851146,
-             78.41434122058831, 103.13958394780086, 105.965325973768,
-             125.74552015553803, 149.057891869767, 176.60887662294667,
-             197.09550631120848, 211.930651947536, 204.86629688261814,
-             233.8301526487814, 221.1143135319292, 195.6826352982249,
-             197.80194181770025, 191.4440222592742, 187.91184472681525,
-             144.11284332432447, 131.39700420747232, 116.5618585711448,
-             93.24948685691584, 89.01087381796512, 53.68909849337579,
-             45.211872415474346, 31.083162285638615, 24.72524272721253,
-             16.95445215580288, 9.890097090885014, 9.890097090885014,
-             2.8257420259671466, 2.8257420259671466, 1.4128710129835733,
-             0.7064355064917867, 1.4128710129835733])
-        d = np.array(
-            [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
-             0., 0., 0., 0., 0., 0.0021916146355674473, 0., 0.,
-             0.011252740799789484, 0., 0., 0.037746623295934395,
-             0.03602328132946222, 0.09509167709829734, 0.10505765870204821,
-             0.01391037014274718, 0.0188296228752321, 0.20723559202324254,
-             0.3056220879462608, 0.13304643490426477, 0., 0., 0., 0., 0., 0.,
-             0., 0., 0., 0., 0., 0.043185876949706214, 0.0037266261379722554,
-             0., 0., 0., 0., 0., 0.094797899357143, 0., 0., 0., 0., 0., 0., 0.,
-             0., 0.23450935613672663, 0., 0., 0.07064355064917871])
-        # The following code sets up a system of equations such that
-        # $k_i-p_i*n_i$ is minimized for $p_i$ with weights $n_i$ and
-        # monotonicity constraints on $p_i$. This translates to a system of
-        # equations of the form $k_i - (d_1 + ... + d_i) * n_i$ and
-        # non-negativity constraints on the $d_i$. If $n_i$ is zero the
-        # system is modified such that $d_i - d_{i+1}$ is then minimized.
-        N = len(n)
-        A = np.diag(n) @ np.tril(np.ones((N, N)))
-        w = n ** 0.5
-
-        nz = (n == 0).nonzero()[0]
-        A[nz, nz] = 1
-        A[nz, np.minimum(nz + 1, N - 1)] = -1
-        w[nz] = 1
-        k[nz] = 0
-        W = np.diag(w)
-
-        dact, _ = nnls(W @ A, W @ k, atol=1e-7)
-
-        p = np.cumsum(dact)
-        assert np.all(dact >= 0)
-        assert np.linalg.norm(k - n * p, ord=np.inf) < 28
-        assert_allclose(dact, d, rtol=0., atol=1e-10)
-
-    def test_nnls_gh20302(self):
-        # See gh-20302
-        A = np.array(
-            [0.33408569134321575, 0.11136189711440525, 0.049140798007949286,
-             0.03712063237146841, 0.055680948557202625, 0.16642814595936478,
-             0.11095209730624318, 0.09791993030943345, 0.14793612974165757,
-             0.44380838922497273, 0.11099502671044059, 0.11099502671044059,
-             0.14693672599330593, 0.3329850801313218, 1.498432860590948,
-             0.0832374225132955, 0.11098323001772734, 0.19589481249472837,
-             0.5919105600945457, 3.5514633605672747, 0.06658716751427037,
-             0.11097861252378394, 0.24485832778293645, 0.9248217710315328,
-             6.936163282736496, 0.05547609388181014, 0.11095218776362029,
-             0.29376003042571264, 1.3314262531634435, 11.982836278470993,
-             0.047506113282944136, 0.11084759766020298, 0.3423969672933396,
-             1.8105107617833156, 19.010362998724812, 0.041507335004505576,
-             0.11068622667868154, 0.39074115283013344, 2.361306169145206,
-             28.335674029742474, 0.03682846280947718, 0.11048538842843154,
-             0.4387861797121048, 2.9831054875676517, 40.2719240821633,
-             0.03311278164362387, 0.11037593881207958, 0.4870572300443105,
-             3.6791979604026523, 55.187969406039784, 0.030079304092299915,
-             0.11029078167176636, 0.5353496017200152, 4.448394860761242,
-             73.3985152025605, 0.02545939709595835, 0.11032405408248619,
-             0.6328767609778363, 6.214921713313388, 121.19097340961108,
-             0.022080881724881523, 0.11040440862440762, 0.7307742886903428,
-             8.28033064683057, 186.30743955368786, 0.020715838214945492,
-             0.1104844704797093, 0.7800578384588346, 9.42800814760186,
-             226.27219554244465, 0.01843179728340054, 0.11059078370040323,
-             0.8784095015912599, 11.94380463964355, 322.48272527037585,
-             0.015812787653789077, 0.11068951357652354, 1.0257259848595766,
-             16.27135849574896, 512.5477926160922, 0.014438550529330062,
-             0.11069555405819713, 1.1234754801775881, 19.519316032262093,
-             673.4164031130423, 0.012760770585072577, 0.110593345070629,
-             1.2688431112524712, 24.920367089248398, 971.8943164806875,
-             0.011427556646114315, 0.11046638091243838, 1.413623342459821,
-             30.967408782453557, 1347.0822820367298, 0.010033330264470307,
-             0.11036663290917338, 1.6071533470570285, 40.063087746029936,
-             1983.122843428482, 0.008950061496507258, 0.11038409179025618,
-             1.802244865119193, 50.37194055362024, 2795.642700725923,
-             0.008071078821135658, 0.11030474388885401, 1.9956465761433504,
-             61.80742482572119, 3801.1566267818534, 0.007191031207777556,
-             0.11026247851925586, 2.238160187262168, 77.7718015155818,
-             5366.2543045751445, 0.00636834224248, 0.11038459886965334,
-             2.5328963107984297, 99.49331844784753, 7760.4788389321075,
-             0.005624259098118485, 0.11061042892966355, 2.879742607664547,
-             128.34496770138628, 11358.529641572684, 0.0050354270614989555,
-             0.11077939535297703, 3.2263279459292575, 160.85168205252265,
-             15924.316523199741, 0.0044997853165982555, 0.1109947044760903,
-             3.6244287189055613, 202.60233390369015, 22488.859063309606,
-             0.004023601950058174, 0.1113196539516095, 4.07713905729421,
-             255.6270320242126, 31825.565487014468, 0.0036024117873727094,
-             0.111674765408554, 4.582933773135057, 321.9583486728612,
-             44913.18963986413, 0.003201503089582304, 0.11205260813538065,
-             5.191786833370116, 411.79333489752383, 64857.45024636,
-             0.0028633044552448853, 0.11262330857296549, 5.864295861648949,
-             522.7223161899905, 92521.84996562831, 0.0025691897303891965,
-             0.11304434813712465, 6.584584405106342, 656.5615739804199,
-             129999.19164812315, 0.0022992911894424675, 0.11343169867916175,
-             7.4080129906658305, 828.2026426227864, 183860.98666225857,
-             0.0020449922071108764, 0.11383789952917212, 8.388975556433872,
-             1058.2750599896935, 265097.9025274183, 0.001831274615120854,
-             0.11414945100919989, 9.419351803810935, 1330.564050780237,
-             373223.2162438565, 0.0016363333454631633, 0.11454333418242145,
-             10.6143816579462, 1683.787012481595, 530392.9089317025,
-             0.0014598610433380044, 0.11484240207592301, 11.959688127956882,
-             2132.0874753402027, 754758.9662704318, 0.0012985240015312626,
-             0.11513579480243862, 13.514425358573531, 2715.5160990137824,
-             1083490.9235064993, 0.0011614735761289934, 0.11537304189548002,
-             15.171418602667567, 3415.195870828736, 1526592.554260445,
-             0.0010347472698811352, 0.11554677847006009, 17.080800985009617,
-             4322.412404600832, 2172012.2333119176, 0.0009232988811258664,
-             0.1157201264344419, 19.20004861829407, 5453.349531598553,
-             3075689.135821584, 0.0008228871862975205, 0.11602709326795038,
-             21.65735242414206, 6920.203923780365, 4390869.389638642,
-             0.00073528900066722, 0.11642075843897651, 24.40223571298994,
-             8755.811207598026, 6238515.485413593, 0.0006602764384729194,
-             0.11752920604817965, 27.694443541914293, 11171.386093291572,
-             8948280.260726549, 0.0005935538977939806, 0.11851292825953147,
-             31.325508920763063, 14174.185724149384, 12735505.873148222,
-             0.0005310755355633124, 0.11913794514470308, 35.381052949627765,
-             17987.010118815077, 18157886.71494382, 0.00047239949671590953,
-             0.1190446731724092, 39.71342528048061, 22679.438775422022,
-             25718483.571328573, 0.00041829129789387623, 0.11851586773659825,
-             44.45299332965028, 28542.57147989741, 36391778.63686921,
-             0.00037321512015419886, 0.11880681324908665, 50.0668539579632,
-             36118.26128449941, 51739409.29004541, 0.0003315539616702064,
-             0.1184752823034871, 56.04387059062639, 45383.29960621684,
-             72976345.76679668, 0.00029456064937920213, 0.11831519416731286,
-             62.91195073220101, 57265.53993693082, 103507463.43600245,
-             0.00026301867496859703, 0.11862142241083726, 70.8217262087034,
-             72383.14781936012, 146901598.49939138, 0.00023618734450420032,
-             0.11966825454879482, 80.26535457124461, 92160.51176984518,
-             210125966.835247, 0.00021165918071578316, 0.12043407382728061,
-             90.7169587544247, 116975.56852918258, 299515943.218972,
-             0.00018757727511329545, 0.11992440455576689, 101.49899864101785,
-             147056.26174166967, 423080865.0307836, 0.00016654469159895833,
-             0.11957908856805206, 113.65970431102812, 184937.67016486943,
-             597533612.3026931, 0.00014717439179415048, 0.11872067604728138,
-             126.77899683346702, 231758.58906776624, 841283678.3159915,
-             0.00012868496382376066, 0.1166314722122684, 139.93635237349534,
-             287417.30847929465, 1172231492.6328032, 0.00011225559452625302,
-             0.11427619522772557, 154.0034283704458, 355281.4912295324,
-             1627544511.322488, 9.879511142981067e-05, 0.11295574406808354,
-             170.96532050841535, 442971.0111288653, 2279085852.2580123,
-             8.71257780313587e-05, 0.11192758284428547, 190.35067416684697,
-             554165.2523674504, 3203629323.93623, 7.665069027765277e-05,
-             0.11060694607065294, 211.28835951100046, 690933.608546013,
-             4486577387.093535, 6.734021094824451e-05, 0.10915848194710433,
-             234.24338803525194, 860487.9079859136, 6276829044.8032465,
-             5.9191625040287665e-05, 0.10776821865668373, 259.7454711820425,
-             1071699.0387579766, 8780430224.544102, 5.1856803674907676e-05,
-             0.10606444911641115, 287.1843540288165, 1331126.3723998806,
-             12251687131.5685, 4.503421404759231e-05, 0.10347361247668461,
-             314.7338642485931, 1638796.0697522392, 16944331963.203278,
-             3.90470387455642e-05, 0.1007804070023012, 344.3427560918527,
-             2014064.4865519698, 23392351979.057854, 3.46557661636393e-05,
-             0.10046706610839032, 385.56603915081587, 2533036.2523656,
-             33044724430.235435, 3.148745865254635e-05, 0.1025441570117926,
-             442.09038234164746, 3262712.3882769793, 47815050050.199135,
-             2.9790762078715404e-05, 0.1089845379379672, 527.8068231298969,
-             4375751.903321453, 72035815708.42941, 2.8772639817606534e-05,
-             0.11823636789048445, 643.2048194503195, 5989838.001888927,
-             110764084330.93005, 2.7951691815106586e-05, 0.12903432664913705,
-             788.5500418523591, 8249371.000613411, 171368308481.2427,
-             2.6844392423114212e-05, 0.1392060709754626, 955.6296403631383,
-             11230229.319931043, 262063016295.25085, 2.499458273851386e-05,
-             0.14559344445184325, 1122.7022399726002, 14820229.698461473,
-             388475270970.9214, 2.337386729019776e-05, 0.15294300496886065,
-             1324.8158105672455, 19644861.137128454, 578442936182.7473,
-             2.0081014872174113e-05, 0.14760215298210377, 1436.2385042492353,
-             23923681.729276657, 791311658718.4193, 1.773374462991839e-05,
-             0.14642752940923615, 1600.5596278736678, 29949429.82503553,
-             1112815989293.9326, 1.5303115839590797e-05, 0.14194150045081785,
-             1742.873058605698, 36634451.931305364, 1529085389160.7544,
-             1.3148448731163076e-05, 0.13699368732998807, 1889.5284359054356,
-             44614279.74469635, 2091762812969.9607, 1.1739194407590062e-05,
-             0.13739553134643406, 2128.794599579694, 56462810.11822766,
-             2973783283306.8145, 1.0293367506254706e-05, 0.13533033372723272,
-             2355.372854690074, 70176508.28667311, 4151852759764.441,
-             9.678312586863569e-06, 0.14293577249119244, 2794.531827932675,
-             93528671.31952812, 6215821967224.52, -1.174086323572049e-05,
-             0.1429501325944908, 3139.4804810720925, 118031680.16618933,
-             -6466892421886.174, -2.1188265307407812e-05, 0.1477108290912869,
-             3644.1133424610953, 153900132.62392554, -4828013117542.036,
-             -8.614483025123122e-05, 0.16037100755883044, 4444.386620899393,
-             210846007.89660168, -1766340937974.433, 4.981445776141726e-05,
-             0.16053420251962536, 4997.558254401547, 266327328.4755411,
-             3862250287024.725, 1.8500019169456637e-05, 0.15448417164977674,
-             5402.289867444643, 323399508.1475582, 12152445411933.408,
-             -5.647882376069748e-05, 0.1406372975946189, 5524.633133597753,
-             371512945.9909363, -4162951345292.1514, 2.8048523486337994e-05,
-             0.13183417571186926, 5817.462495763679, 439447252.3728975,
-             9294740538175.03]).reshape(89, 5)
-        b = np.ones(89, dtype=np.float64)
-        sol, rnorm = nnls(A, b)
-        assert_allclose(sol, np.array([0.61124315, 8.22262829, 0., 0., 0.]))
-        assert_allclose(rnorm, 1.0556460808977297)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_nonlin.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_nonlin.py
deleted file mode 100644
index d65a86198972df00842455462d5713924b44f182..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_nonlin.py
+++ /dev/null
@@ -1,534 +0,0 @@
-""" Unit tests for nonlinear solvers
-Author: Ondrej Certik
-May 2007
-"""
-from numpy.testing import assert_
-import pytest
-
-from scipy.optimize import _nonlin as nonlin, root
-from scipy.sparse import csr_array
-from numpy import diag, dot
-from numpy.linalg import inv
-import numpy as np
-import scipy
-
-from .test_minpack import pressure_network
-
-SOLVERS = {'anderson': nonlin.anderson,
-           'diagbroyden': nonlin.diagbroyden,
-           'linearmixing': nonlin.linearmixing,
-           'excitingmixing': nonlin.excitingmixing,
-           'broyden1': nonlin.broyden1,
-           'broyden2': nonlin.broyden2,
-           'krylov': nonlin.newton_krylov}
-MUST_WORK = {'anderson': nonlin.anderson, 'broyden1': nonlin.broyden1,
-             'broyden2': nonlin.broyden2, 'krylov': nonlin.newton_krylov}
-
-# ----------------------------------------------------------------------------
-# Test problems
-# ----------------------------------------------------------------------------
-
-
-def F(x):
-    x = np.asarray(x).T
-    d = diag([3, 2, 1.5, 1, 0.5])
-    c = 0.01
-    f = -d @ x - c * float(x.T @ x) * x
-    return f
-
-
-F.xin = [1, 1, 1, 1, 1]
-F.KNOWN_BAD = {}
-F.JAC_KSP_BAD = {}
-F.ROOT_JAC_KSP_BAD = {}
-
-
-def F2(x):
-    return x
-
-
-F2.xin = [1, 2, 3, 4, 5, 6]
-F2.KNOWN_BAD = {'linearmixing': nonlin.linearmixing,
-                'excitingmixing': nonlin.excitingmixing}
-F2.JAC_KSP_BAD = {}
-F2.ROOT_JAC_KSP_BAD = {}
-
-
-def F2_lucky(x):
-    return x
-
-
-F2_lucky.xin = [0, 0, 0, 0, 0, 0]
-F2_lucky.KNOWN_BAD = {}
-F2_lucky.JAC_KSP_BAD = {}
-F2_lucky.ROOT_JAC_KSP_BAD = {}
-
-
-def F3(x):
-    A = np.array([[-2, 1, 0.], [1, -2, 1], [0, 1, -2]])
-    b = np.array([1, 2, 3.])
-    return A @ x - b
-
-
-F3.xin = [1, 2, 3]
-F3.KNOWN_BAD = {}
-F3.JAC_KSP_BAD = {}
-F3.ROOT_JAC_KSP_BAD = {}
-
-
-def F4_powell(x):
-    A = 1e4
-    return [A*x[0]*x[1] - 1, np.exp(-x[0]) + np.exp(-x[1]) - (1 + 1/A)]
-
-
-F4_powell.xin = [-1, -2]
-F4_powell.KNOWN_BAD = {'linearmixing': nonlin.linearmixing,
-                       'excitingmixing': nonlin.excitingmixing,
-                       'diagbroyden': nonlin.diagbroyden}
-# In the extreme case, it does not converge for nolinear problem solved by
-# MINRES and root problem solved by GMRES/BiCGStab/CGS/MINRES/TFQMR when using
-# Krylov method to approximate Jacobian
-F4_powell.JAC_KSP_BAD = {'minres'}
-F4_powell.ROOT_JAC_KSP_BAD = {'gmres', 'bicgstab', 'cgs', 'minres', 'tfqmr'}
-
-
-def F5(x):
-    return pressure_network(x, 4, np.array([.5, .5, .5, .5]))
-
-
-F5.xin = [2., 0, 2, 0]
-F5.KNOWN_BAD = {'excitingmixing': nonlin.excitingmixing,
-                'linearmixing': nonlin.linearmixing,
-                'diagbroyden': nonlin.diagbroyden}
-# In the extreme case, the Jacobian inversion yielded zero vector for nonlinear
-# problem solved by CGS/MINRES and it does not converge for root problem solved
-# by MINRES and when using Krylov method to approximate Jacobian
-F5.JAC_KSP_BAD = {'cgs', 'minres'}
-F5.ROOT_JAC_KSP_BAD = {'minres'}
-
-
-def F6(x):
-    x1, x2 = x
-    J0 = np.array([[-4.256, 14.7],
-                   [0.8394989, 0.59964207]])
-    v = np.array([(x1 + 3) * (x2**5 - 7) + 3*6,
-                  np.sin(x2 * np.exp(x1) - 1)])
-    return -np.linalg.solve(J0, v)
-
-
-F6.xin = [-0.5, 1.4]
-F6.KNOWN_BAD = {'excitingmixing': nonlin.excitingmixing,
-                'linearmixing': nonlin.linearmixing,
-                'diagbroyden': nonlin.diagbroyden}
-F6.JAC_KSP_BAD = {}
-F6.ROOT_JAC_KSP_BAD = {}
-
-
-# ----------------------------------------------------------------------------
-# Tests
-# ----------------------------------------------------------------------------
-
-
-class TestNonlin:
-    """
-    Check the Broyden methods for a few test problems.
-
-    broyden1, broyden2, and newton_krylov must succeed for
-    all functions. Some of the others don't -- tests in KNOWN_BAD are skipped.
-
-    """
-
-    def _check_nonlin_func(self, f, func, f_tol=1e-2):
-        # Test all methods mentioned in the class `KrylovJacobian`
-        if func == SOLVERS['krylov']:
-            for method in ['gmres', 'bicgstab', 'cgs', 'minres', 'tfqmr']:
-                if method in f.JAC_KSP_BAD:
-                    continue
-
-                x = func(f, f.xin, method=method, line_search=None,
-                         f_tol=f_tol, maxiter=200, verbose=0)
-                assert_(np.absolute(f(x)).max() < f_tol)
-
-        x = func(f, f.xin, f_tol=f_tol, maxiter=200, verbose=0)
-        assert_(np.absolute(f(x)).max() < f_tol)
-
-    def _check_root(self, f, method, f_tol=1e-2):
-        # Test Krylov methods
-        if method == 'krylov':
-            for jac_method in ['gmres', 'bicgstab', 'cgs', 'minres', 'tfqmr']:
-                if jac_method in f.ROOT_JAC_KSP_BAD:
-                    continue
-
-                res = root(f, f.xin, method=method,
-                           options={'ftol': f_tol, 'maxiter': 200,
-                                    'disp': 0,
-                                    'jac_options': {'method': jac_method}})
-                assert_(np.absolute(res.fun).max() < f_tol)
-
-        res = root(f, f.xin, method=method,
-                   options={'ftol': f_tol, 'maxiter': 200, 'disp': 0})
-        assert_(np.absolute(res.fun).max() < f_tol)
-
-    @pytest.mark.xfail
-    def _check_func_fail(self, *a, **kw):
-        pass
-
-    @pytest.mark.filterwarnings('ignore::DeprecationWarning')
-    def test_problem_nonlin(self):
-        for f in [F, F2, F2_lucky, F3, F4_powell, F5, F6]:
-            for func in SOLVERS.values():
-                if func in f.KNOWN_BAD.values():
-                    if func in MUST_WORK.values():
-                        self._check_func_fail(f, func)
-                    continue
-                self._check_nonlin_func(f, func)
-
-    @pytest.mark.filterwarnings('ignore::DeprecationWarning')
-    @pytest.mark.parametrize("method", ['lgmres', 'gmres', 'bicgstab', 'cgs',
-                                        'minres', 'tfqmr'])
-    def test_tol_norm_called(self, method):
-        # Check that supplying tol_norm keyword to nonlin_solve works
-        self._tol_norm_used = False
-
-        def local_norm_func(x):
-            self._tol_norm_used = True
-            return np.absolute(x).max()
-
-        nonlin.newton_krylov(F, F.xin, method=method, f_tol=1e-2,
-                             maxiter=200, verbose=0,
-                             tol_norm=local_norm_func)
-        assert_(self._tol_norm_used)
-
-    @pytest.mark.filterwarnings('ignore::DeprecationWarning')
-    def test_problem_root(self):
-        for f in [F, F2, F2_lucky, F3, F4_powell, F5, F6]:
-            for meth in SOLVERS:
-                if meth in f.KNOWN_BAD:
-                    if meth in MUST_WORK:
-                        self._check_func_fail(f, meth)
-                    continue
-                self._check_root(f, meth)
-
-    def test_no_convergence(self):
-        def wont_converge(x):
-            return 1e3 + x
-        
-        with pytest.raises(scipy.optimize.NoConvergence):
-            nonlin.newton_krylov(wont_converge, xin=[0], maxiter=1)
-
-
-class TestSecant:
-    """Check that some Jacobian approximations satisfy the secant condition"""
-
-    xs = [np.array([1., 2., 3., 4., 5.]),
-          np.array([2., 3., 4., 5., 1.]),
-          np.array([3., 4., 5., 1., 2.]),
-          np.array([4., 5., 1., 2., 3.]),
-          np.array([9., 1., 9., 1., 3.]),
-          np.array([0., 1., 9., 1., 3.]),
-          np.array([5., 5., 7., 1., 1.]),
-          np.array([1., 2., 7., 5., 1.]),]
-    fs = [x**2 - 1 for x in xs]
-
-    def _check_secant(self, jac_cls, npoints=1, **kw):
-        """
-        Check that the given Jacobian approximation satisfies secant
-        conditions for last `npoints` points.
-        """
-        jac = jac_cls(**kw)
-        jac.setup(self.xs[0], self.fs[0], None)
-        for j, (x, f) in enumerate(zip(self.xs[1:], self.fs[1:])):
-            jac.update(x, f)
-
-            for k in range(min(npoints, j+1)):
-                dx = self.xs[j-k+1] - self.xs[j-k]
-                df = self.fs[j-k+1] - self.fs[j-k]
-                assert_(np.allclose(dx, jac.solve(df)))
-
-            # Check that the `npoints` secant bound is strict
-            if j >= npoints:
-                dx = self.xs[j-npoints+1] - self.xs[j-npoints]
-                df = self.fs[j-npoints+1] - self.fs[j-npoints]
-                assert_(not np.allclose(dx, jac.solve(df)))
-
-    def test_broyden1(self):
-        self._check_secant(nonlin.BroydenFirst)
-
-    def test_broyden2(self):
-        self._check_secant(nonlin.BroydenSecond)
-
-    def test_broyden1_update(self):
-        # Check that BroydenFirst update works as for a dense matrix
-        jac = nonlin.BroydenFirst(alpha=0.1)
-        jac.setup(self.xs[0], self.fs[0], None)
-
-        B = np.identity(5) * (-1/0.1)
-
-        for last_j, (x, f) in enumerate(zip(self.xs[1:], self.fs[1:])):
-            df = f - self.fs[last_j]
-            dx = x - self.xs[last_j]
-            B += (df - dot(B, dx))[:, None] * dx[None, :] / dot(dx, dx)
-            jac.update(x, f)
-            assert_(np.allclose(jac.todense(), B, rtol=1e-10, atol=1e-13))
-
-    def test_broyden2_update(self):
-        # Check that BroydenSecond update works as for a dense matrix
-        jac = nonlin.BroydenSecond(alpha=0.1)
-        jac.setup(self.xs[0], self.fs[0], None)
-
-        H = np.identity(5) * (-0.1)
-
-        for last_j, (x, f) in enumerate(zip(self.xs[1:], self.fs[1:])):
-            df = f - self.fs[last_j]
-            dx = x - self.xs[last_j]
-            H += (dx - dot(H, df))[:, None] * df[None, :] / dot(df, df)
-            jac.update(x, f)
-            assert_(np.allclose(jac.todense(), inv(H), rtol=1e-10, atol=1e-13))
-
-    def test_anderson(self):
-        # Anderson mixing (with w0=0) satisfies secant conditions
-        # for the last M iterates, see [Ey]_
-        #
-        # .. [Ey] V. Eyert, J. Comp. Phys., 124, 271 (1996).
-        self._check_secant(nonlin.Anderson, M=3, w0=0, npoints=3)
-
-
-class TestLinear:
-    """Solve a linear equation;
-    some methods find the exact solution in a finite number of steps"""
-
-    def _check(self, jac, N, maxiter, complex=False, **kw):
-        np.random.seed(123)
-
-        A = np.random.randn(N, N)
-        if complex:
-            A = A + 1j*np.random.randn(N, N)
-        b = np.random.randn(N)
-        if complex:
-            b = b + 1j*np.random.randn(N)
-
-        def func(x):
-            return dot(A, x) - b
-
-        sol = nonlin.nonlin_solve(func, np.zeros(N), jac, maxiter=maxiter,
-                                  f_tol=1e-6, line_search=None, verbose=0)
-        assert_(np.allclose(dot(A, sol), b, atol=1e-6))
-
-    def test_broyden1(self):
-        # Broyden methods solve linear systems exactly in 2*N steps
-        self._check(nonlin.BroydenFirst(alpha=1.0), 20, 41, False)
-        self._check(nonlin.BroydenFirst(alpha=1.0), 20, 41, True)
-
-    def test_broyden2(self):
-        # Broyden methods solve linear systems exactly in 2*N steps
-        self._check(nonlin.BroydenSecond(alpha=1.0), 20, 41, False)
-        self._check(nonlin.BroydenSecond(alpha=1.0), 20, 41, True)
-
-    def test_anderson(self):
-        # Anderson is rather similar to Broyden, if given enough storage space
-        self._check(nonlin.Anderson(M=50, alpha=1.0), 20, 29, False)
-        self._check(nonlin.Anderson(M=50, alpha=1.0), 20, 29, True)
-
-    def test_krylov(self):
-        # Krylov methods solve linear systems exactly in N inner steps
-        self._check(nonlin.KrylovJacobian, 20, 2, False, inner_m=10)
-        self._check(nonlin.KrylovJacobian, 20, 2, True, inner_m=10)
-
-    def _check_autojac(self, A, b):
-        def func(x):
-            return A.dot(x) - b
-
-        def jac(v):
-            return A
-
-        sol = nonlin.nonlin_solve(func, np.zeros(b.shape[0]), jac, maxiter=2,
-                                  f_tol=1e-6, line_search=None, verbose=0)
-        np.testing.assert_allclose(A @ sol, b, atol=1e-6)
-        # test jac input as array -- not a function
-        sol = nonlin.nonlin_solve(func, np.zeros(b.shape[0]), A, maxiter=2,
-                                  f_tol=1e-6, line_search=None, verbose=0)
-        np.testing.assert_allclose(A @ sol, b, atol=1e-6)
-
-    def test_jac_sparse(self):
-        A = csr_array([[1, 2], [2, 1]])
-        b = np.array([1, -1])
-        self._check_autojac(A, b)
-        self._check_autojac((1 + 2j) * A, (2 + 2j) * b)
-
-    def test_jac_ndarray(self):
-        A = np.array([[1, 2], [2, 1]])
-        b = np.array([1, -1])
-        self._check_autojac(A, b)
-        self._check_autojac((1 + 2j) * A, (2 + 2j) * b)
-
-
-class TestJacobianDotSolve:
-    """
-    Check that solve/dot methods in Jacobian approximations are consistent
-    """
-
-    def _func(self, x):
-        return x**2 - 1 + np.dot(self.A, x)
-
-    def _check_dot(self, jac_cls, complex=False, tol=1e-6, **kw):
-        np.random.seed(123)
-
-        N = 7
-
-        def rand(*a):
-            q = np.random.rand(*a)
-            if complex:
-                q = q + 1j*np.random.rand(*a)
-            return q
-
-        def assert_close(a, b, msg):
-            d = abs(a - b).max()
-            f = tol + abs(b).max()*tol
-            if d > f:
-                raise AssertionError(f'{msg}: err {d:g}')
-
-        self.A = rand(N, N)
-
-        # initialize
-        x0 = np.random.rand(N)
-        jac = jac_cls(**kw)
-        jac.setup(x0, self._func(x0), self._func)
-
-        # check consistency
-        for k in range(2*N):
-            v = rand(N)
-
-            if hasattr(jac, '__array__'):
-                Jd = np.array(jac)
-                if hasattr(jac, 'solve'):
-                    Gv = jac.solve(v)
-                    Gv2 = np.linalg.solve(Jd, v)
-                    assert_close(Gv, Gv2, 'solve vs array')
-                if hasattr(jac, 'rsolve'):
-                    Gv = jac.rsolve(v)
-                    Gv2 = np.linalg.solve(Jd.T.conj(), v)
-                    assert_close(Gv, Gv2, 'rsolve vs array')
-                if hasattr(jac, 'matvec'):
-                    Jv = jac.matvec(v)
-                    Jv2 = np.dot(Jd, v)
-                    assert_close(Jv, Jv2, 'dot vs array')
-                if hasattr(jac, 'rmatvec'):
-                    Jv = jac.rmatvec(v)
-                    Jv2 = np.dot(Jd.T.conj(), v)
-                    assert_close(Jv, Jv2, 'rmatvec vs array')
-
-            if hasattr(jac, 'matvec') and hasattr(jac, 'solve'):
-                Jv = jac.matvec(v)
-                Jv2 = jac.solve(jac.matvec(Jv))
-                assert_close(Jv, Jv2, 'dot vs solve')
-
-            if hasattr(jac, 'rmatvec') and hasattr(jac, 'rsolve'):
-                Jv = jac.rmatvec(v)
-                Jv2 = jac.rmatvec(jac.rsolve(Jv))
-                assert_close(Jv, Jv2, 'rmatvec vs rsolve')
-
-            x = rand(N)
-            jac.update(x, self._func(x))
-
-    def test_broyden1(self):
-        self._check_dot(nonlin.BroydenFirst, complex=False)
-        self._check_dot(nonlin.BroydenFirst, complex=True)
-
-    def test_broyden2(self):
-        self._check_dot(nonlin.BroydenSecond, complex=False)
-        self._check_dot(nonlin.BroydenSecond, complex=True)
-
-    def test_anderson(self):
-        self._check_dot(nonlin.Anderson, complex=False)
-        self._check_dot(nonlin.Anderson, complex=True)
-
-    def test_diagbroyden(self):
-        self._check_dot(nonlin.DiagBroyden, complex=False)
-        self._check_dot(nonlin.DiagBroyden, complex=True)
-
-    def test_linearmixing(self):
-        self._check_dot(nonlin.LinearMixing, complex=False)
-        self._check_dot(nonlin.LinearMixing, complex=True)
-
-    def test_excitingmixing(self):
-        self._check_dot(nonlin.ExcitingMixing, complex=False)
-        self._check_dot(nonlin.ExcitingMixing, complex=True)
-
-    def test_krylov(self):
-        self._check_dot(nonlin.KrylovJacobian, complex=False, tol=1e-3)
-        self._check_dot(nonlin.KrylovJacobian, complex=True, tol=1e-3)
-
-
-class TestNonlinOldTests:
-    """ Test case for a simple constrained entropy maximization problem
-    (the machine translation example of Berger et al in
-    Computational Linguistics, vol 22, num 1, pp 39--72, 1996.)
-    """
-
-    def test_broyden1(self):
-        x = nonlin.broyden1(F, F.xin, iter=12, alpha=1)
-        assert_(nonlin.norm(x) < 1e-9)
-        assert_(nonlin.norm(F(x)) < 1e-9)
-
-    def test_broyden2(self):
-        x = nonlin.broyden2(F, F.xin, iter=12, alpha=1)
-        assert_(nonlin.norm(x) < 1e-9)
-        assert_(nonlin.norm(F(x)) < 1e-9)
-
-    def test_anderson(self):
-        x = nonlin.anderson(F, F.xin, iter=12, alpha=0.03, M=5)
-        assert_(nonlin.norm(x) < 0.33)
-
-    def test_linearmixing(self):
-        x = nonlin.linearmixing(F, F.xin, iter=60, alpha=0.5)
-        assert_(nonlin.norm(x) < 1e-7)
-        assert_(nonlin.norm(F(x)) < 1e-7)
-
-    def test_exciting(self):
-        x = nonlin.excitingmixing(F, F.xin, iter=20, alpha=0.5)
-        assert_(nonlin.norm(x) < 1e-5)
-        assert_(nonlin.norm(F(x)) < 1e-5)
-
-    def test_diagbroyden(self):
-        x = nonlin.diagbroyden(F, F.xin, iter=11, alpha=1)
-        assert_(nonlin.norm(x) < 1e-8)
-        assert_(nonlin.norm(F(x)) < 1e-8)
-
-    def test_root_broyden1(self):
-        res = root(F, F.xin, method='broyden1',
-                   options={'nit': 12, 'jac_options': {'alpha': 1}})
-        assert_(nonlin.norm(res.x) < 1e-9)
-        assert_(nonlin.norm(res.fun) < 1e-9)
-
-    def test_root_broyden2(self):
-        res = root(F, F.xin, method='broyden2',
-                   options={'nit': 12, 'jac_options': {'alpha': 1}})
-        assert_(nonlin.norm(res.x) < 1e-9)
-        assert_(nonlin.norm(res.fun) < 1e-9)
-
-    def test_root_anderson(self):
-        res = root(F, F.xin, method='anderson',
-                   options={'nit': 12,
-                            'jac_options': {'alpha': 0.03, 'M': 5}})
-        assert_(nonlin.norm(res.x) < 0.33)
-
-    def test_root_linearmixing(self):
-        res = root(F, F.xin, method='linearmixing',
-                   options={'nit': 60,
-                            'jac_options': {'alpha': 0.5}})
-        assert_(nonlin.norm(res.x) < 1e-7)
-        assert_(nonlin.norm(res.fun) < 1e-7)
-
-    def test_root_excitingmixing(self):
-        res = root(F, F.xin, method='excitingmixing',
-                   options={'nit': 20,
-                            'jac_options': {'alpha': 0.5}})
-        assert_(nonlin.norm(res.x) < 1e-5)
-        assert_(nonlin.norm(res.fun) < 1e-5)
-
-    def test_root_diagbroyden(self):
-        res = root(F, F.xin, method='diagbroyden',
-                   options={'nit': 11,
-                            'jac_options': {'alpha': 1}})
-        assert_(nonlin.norm(res.x) < 1e-8)
-        assert_(nonlin.norm(res.fun) < 1e-8)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_optimize.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_optimize.py
deleted file mode 100644
index 86c6ab268ee46fe248c101a095a19df70e766bcb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_optimize.py
+++ /dev/null
@@ -1,3197 +0,0 @@
-"""
-Unit tests for optimization routines from optimize.py
-
-Authors:
-   Ed Schofield, Nov 2005
-   Andrew Straw, April 2008
-
-To run it in its simplest form::
-  nosetests test_optimize.py
-
-"""
-import itertools
-import platform
-import numpy as np
-from numpy.testing import (assert_allclose, assert_equal,
-                           assert_almost_equal,
-                           assert_no_warnings, assert_warns,
-                           assert_array_less, suppress_warnings)
-import pytest
-from pytest import raises as assert_raises
-
-from scipy import optimize
-from scipy.optimize._minimize import Bounds, NonlinearConstraint
-from scipy.optimize._minimize import (MINIMIZE_METHODS,
-                                      MINIMIZE_METHODS_NEW_CB,
-                                      MINIMIZE_SCALAR_METHODS)
-from scipy.optimize._linprog import LINPROG_METHODS
-from scipy.optimize._root import ROOT_METHODS
-from scipy.optimize._root_scalar import ROOT_SCALAR_METHODS
-from scipy.optimize._qap import QUADRATIC_ASSIGNMENT_METHODS
-from scipy.optimize._differentiable_functions import ScalarFunction, FD_METHODS
-from scipy.optimize._optimize import MemoizeJac, show_options, OptimizeResult
-from scipy.optimize import rosen, rosen_der, rosen_hess
-
-from scipy.sparse import (coo_matrix, csc_matrix, csr_matrix, coo_array,
-                          csr_array, csc_array)
-
-def test_check_grad():
-    # Verify if check_grad is able to estimate the derivative of the
-    # expit (logistic sigmoid) function.
-
-    def expit(x):
-        return 1 / (1 + np.exp(-x))
-
-    def der_expit(x):
-        return np.exp(-x) / (1 + np.exp(-x))**2
-
-    x0 = np.array([1.5])
-
-    r = optimize.check_grad(expit, der_expit, x0)
-    assert_almost_equal(r, 0)
-    r = optimize.check_grad(expit, der_expit, x0,
-                            direction='random', seed=1234)
-    assert_almost_equal(r, 0)
-
-    r = optimize.check_grad(expit, der_expit, x0, epsilon=1e-6)
-    assert_almost_equal(r, 0)
-    r = optimize.check_grad(expit, der_expit, x0, epsilon=1e-6,
-                            direction='random', seed=1234)
-    assert_almost_equal(r, 0)
-
-    # Check if the epsilon parameter is being considered.
-    r = abs(optimize.check_grad(expit, der_expit, x0, epsilon=1e-1) - 0)
-    assert r > 1e-7
-    r = abs(optimize.check_grad(expit, der_expit, x0, epsilon=1e-1,
-                                direction='random', seed=1234) - 0)
-    assert r > 1e-7
-
-    def x_sinx(x):
-        return (x*np.sin(x)).sum()
-
-    def der_x_sinx(x):
-        return np.sin(x) + x*np.cos(x)
-
-    x0 = np.arange(0, 2, 0.2)
-
-    r = optimize.check_grad(x_sinx, der_x_sinx, x0,
-                            direction='random', seed=1234)
-    assert_almost_equal(r, 0)
-
-    assert_raises(ValueError, optimize.check_grad,
-                  x_sinx, der_x_sinx, x0,
-                  direction='random_projection', seed=1234)
-
-    # checking can be done for derivatives of vector valued functions
-    r = optimize.check_grad(himmelblau_grad, himmelblau_hess, himmelblau_x0,
-                            direction='all', seed=1234)
-    assert r < 5e-7
-
-
-class CheckOptimize:
-    """ Base test case for a simple constrained entropy maximization problem
-    (the machine translation example of Berger et al in
-    Computational Linguistics, vol 22, num 1, pp 39--72, 1996.)
-    """
-
-    def setup_method(self):
-        self.F = np.array([[1, 1, 1],
-                           [1, 1, 0],
-                           [1, 0, 1],
-                           [1, 0, 0],
-                           [1, 0, 0]])
-        self.K = np.array([1., 0.3, 0.5])
-        self.startparams = np.zeros(3, np.float64)
-        self.solution = np.array([0., -0.524869316, 0.487525860])
-        self.maxiter = 1000
-        self.funccalls = 0
-        self.gradcalls = 0
-        self.trace = []
-
-    def func(self, x):
-        self.funccalls += 1
-        if self.funccalls > 6000:
-            raise RuntimeError("too many iterations in optimization routine")
-        log_pdot = np.dot(self.F, x)
-        logZ = np.log(sum(np.exp(log_pdot)))
-        f = logZ - np.dot(self.K, x)
-        self.trace.append(np.copy(x))
-        return f
-
-    def grad(self, x):
-        self.gradcalls += 1
-        log_pdot = np.dot(self.F, x)
-        logZ = np.log(sum(np.exp(log_pdot)))
-        p = np.exp(log_pdot - logZ)
-        return np.dot(self.F.transpose(), p) - self.K
-
-    def hess(self, x):
-        log_pdot = np.dot(self.F, x)
-        logZ = np.log(sum(np.exp(log_pdot)))
-        p = np.exp(log_pdot - logZ)
-        return np.dot(self.F.T,
-                      np.dot(np.diag(p), self.F - np.dot(self.F.T, p)))
-
-    def hessp(self, x, p):
-        return np.dot(self.hess(x), p)
-
-
-class CheckOptimizeParameterized(CheckOptimize):
-
-    def test_cg(self):
-        # conjugate gradient optimization routine
-        if self.use_wrapper:
-            opts = {'maxiter': self.maxiter, 'disp': self.disp,
-                    'return_all': False}
-            res = optimize.minimize(self.func, self.startparams, args=(),
-                                    method='CG', jac=self.grad,
-                                    options=opts)
-            params, fopt, func_calls, grad_calls, warnflag = \
-                res['x'], res['fun'], res['nfev'], res['njev'], res['status']
-        else:
-            retval = optimize.fmin_cg(self.func, self.startparams,
-                                      self.grad, (), maxiter=self.maxiter,
-                                      full_output=True, disp=self.disp,
-                                      retall=False)
-            (params, fopt, func_calls, grad_calls, warnflag) = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-        # Ensure that function call counts are 'known good'; these are from
-        # SciPy 0.7.0. Don't allow them to increase.
-        assert self.funccalls == 9, self.funccalls
-        assert self.gradcalls == 7, self.gradcalls
-
-        # Ensure that the function behaves the same; this is from SciPy 0.7.0
-        assert_allclose(self.trace[2:4],
-                        [[0, -0.5, 0.5],
-                         [0, -5.05700028e-01, 4.95985862e-01]],
-                        atol=1e-14, rtol=1e-7)
-
-    def test_cg_cornercase(self):
-        def f(r):
-            return 2.5 * (1 - np.exp(-1.5*(r - 0.5)))**2
-
-        # Check several initial guesses. (Too far away from the
-        # minimum, the function ends up in the flat region of exp.)
-        for x0 in np.linspace(-0.75, 3, 71):
-            sol = optimize.minimize(f, [x0], method='CG')
-            assert sol.success
-            assert_allclose(sol.x, [0.5], rtol=1e-5)
-
-    def test_bfgs(self):
-        # Broyden-Fletcher-Goldfarb-Shanno optimization routine
-        if self.use_wrapper:
-            opts = {'maxiter': self.maxiter, 'disp': self.disp,
-                    'return_all': False}
-            res = optimize.minimize(self.func, self.startparams,
-                                    jac=self.grad, method='BFGS', args=(),
-                                    options=opts)
-
-            params, fopt, gopt, Hopt, func_calls, grad_calls, warnflag = (
-                    res['x'], res['fun'], res['jac'], res['hess_inv'],
-                    res['nfev'], res['njev'], res['status'])
-        else:
-            retval = optimize.fmin_bfgs(self.func, self.startparams, self.grad,
-                                        args=(), maxiter=self.maxiter,
-                                        full_output=True, disp=self.disp,
-                                        retall=False)
-            (params, fopt, gopt, Hopt,
-             func_calls, grad_calls, warnflag) = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-        # Ensure that function call counts are 'known good'; these are from
-        # SciPy 0.7.0. Don't allow them to increase.
-        assert self.funccalls == 10, self.funccalls
-        assert self.gradcalls == 8, self.gradcalls
-
-        # Ensure that the function behaves the same; this is from SciPy 0.7.0
-        assert_allclose(self.trace[6:8],
-                        [[0, -5.25060743e-01, 4.87748473e-01],
-                         [0, -5.24885582e-01, 4.87530347e-01]],
-                        atol=1e-14, rtol=1e-7)
-
-    def test_bfgs_hess_inv0_neg(self):
-        # Ensure that BFGS does not accept neg. def. initial inverse
-        # Hessian estimate.
-        with pytest.raises(ValueError, match="'hess_inv0' matrix isn't "
-                           "positive definite."):
-            x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
-            opts = {'disp': self.disp, 'hess_inv0': -np.eye(5)}
-            optimize.minimize(optimize.rosen, x0=x0, method='BFGS', args=(),
-                              options=opts)
-
-    def test_bfgs_hess_inv0_semipos(self):
-        # Ensure that BFGS does not accept semi pos. def. initial inverse
-        # Hessian estimate.
-        with pytest.raises(ValueError, match="'hess_inv0' matrix isn't "
-                           "positive definite."):
-            x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
-            hess_inv0 = np.eye(5)
-            hess_inv0[0, 0] = 0
-            opts = {'disp': self.disp, 'hess_inv0': hess_inv0}
-            optimize.minimize(optimize.rosen, x0=x0, method='BFGS', args=(),
-                              options=opts)
-
-    def test_bfgs_hess_inv0_sanity(self):
-        # Ensure that BFGS handles `hess_inv0` parameter correctly.
-        fun = optimize.rosen
-        x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
-        opts = {'disp': self.disp, 'hess_inv0': 1e-2 * np.eye(5)}
-        res = optimize.minimize(fun, x0=x0, method='BFGS', args=(),
-                                options=opts)
-        res_true = optimize.minimize(fun, x0=x0, method='BFGS', args=(),
-                                     options={'disp': self.disp})
-        assert_allclose(res.fun, res_true.fun, atol=1e-6)
-
-    @pytest.mark.filterwarnings('ignore::UserWarning')
-    def test_bfgs_infinite(self):
-        # Test corner case where -Inf is the minimum.  See gh-2019.
-        def func(x):
-            return -np.e ** (-x)
-        def fprime(x):
-            return -func(x)
-        x0 = [0]
-        with np.errstate(over='ignore'):
-            if self.use_wrapper:
-                opts = {'disp': self.disp}
-                x = optimize.minimize(func, x0, jac=fprime, method='BFGS',
-                                      args=(), options=opts)['x']
-            else:
-                x = optimize.fmin_bfgs(func, x0, fprime, disp=self.disp)
-            assert not np.isfinite(func(x))
-
-    def test_bfgs_xrtol(self):
-        # test for #17345 to test xrtol parameter
-        x0 = [1.3, 0.7, 0.8, 1.9, 1.2]
-        res = optimize.minimize(optimize.rosen,
-                                x0, method='bfgs', options={'xrtol': 1e-3})
-        ref = optimize.minimize(optimize.rosen,
-                                x0, method='bfgs', options={'gtol': 1e-3})
-        assert res.nit != ref.nit
-
-    def test_bfgs_c1(self):
-        # test for #18977 insufficiently low value of c1 leads to precision loss
-        # for poor starting parameters
-        x0 = [10.3, 20.7, 10.8, 1.9, -1.2]
-        res_c1_small = optimize.minimize(optimize.rosen,
-                                         x0, method='bfgs', options={'c1': 1e-8})
-        res_c1_big = optimize.minimize(optimize.rosen,
-                                       x0, method='bfgs', options={'c1': 1e-1})
-
-        assert res_c1_small.nfev > res_c1_big.nfev
-
-    def test_bfgs_c2(self):
-        # test that modification of c2 parameter
-        # results in different number of iterations
-        x0 = [1.3, 0.7, 0.8, 1.9, 1.2]
-        res_default = optimize.minimize(optimize.rosen,
-                                        x0, method='bfgs', options={'c2': .9})
-        res_mod = optimize.minimize(optimize.rosen,
-                                    x0, method='bfgs', options={'c2': 1e-2})
-        assert res_default.nit > res_mod.nit
-
-    @pytest.mark.parametrize(["c1", "c2"], [[0.5, 2],
-                                            [-0.1, 0.1],
-                                            [0.2, 0.1]])
-    def test_invalid_c1_c2(self, c1, c2):
-        with pytest.raises(ValueError, match="'c1' and 'c2'"):
-            x0 = [10.3, 20.7, 10.8, 1.9, -1.2]
-            optimize.minimize(optimize.rosen, x0, method='cg',
-                              options={'c1': c1, 'c2': c2})
-
-    def test_powell(self):
-        # Powell (direction set) optimization routine
-        if self.use_wrapper:
-            opts = {'maxiter': self.maxiter, 'disp': self.disp,
-                    'return_all': False}
-            res = optimize.minimize(self.func, self.startparams, args=(),
-                                    method='Powell', options=opts)
-            params, fopt, direc, numiter, func_calls, warnflag = (
-                    res['x'], res['fun'], res['direc'], res['nit'],
-                    res['nfev'], res['status'])
-        else:
-            retval = optimize.fmin_powell(self.func, self.startparams,
-                                          args=(), maxiter=self.maxiter,
-                                          full_output=True, disp=self.disp,
-                                          retall=False)
-            (params, fopt, direc, numiter, func_calls, warnflag) = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-        # params[0] does not affect the objective function
-        assert_allclose(params[1:], self.solution[1:], atol=5e-6)
-
-        # Ensure that function call counts are 'known good'; these are from
-        # SciPy 0.7.0. Don't allow them to increase.
-        #
-        # However, some leeway must be added: the exact evaluation
-        # count is sensitive to numerical error, and floating-point
-        # computations are not bit-for-bit reproducible across
-        # machines, and when using e.g., MKL, data alignment
-        # etc., affect the rounding error.
-        #
-        assert self.funccalls <= 116 + 20, self.funccalls
-        assert self.gradcalls == 0, self.gradcalls
-
-    @pytest.mark.xfail(reason="This part of test_powell fails on some "
-                       "platforms, but the solution returned by powell is "
-                       "still valid.")
-    def test_powell_gh14014(self):
-        # This part of test_powell started failing on some CI platforms;
-        # see gh-14014. Since the solution is still correct and the comments
-        # in test_powell suggest that small differences in the bits are known
-        # to change the "trace" of the solution, seems safe to xfail to get CI
-        # green now and investigate later.
-
-        # Powell (direction set) optimization routine
-        if self.use_wrapper:
-            opts = {'maxiter': self.maxiter, 'disp': self.disp,
-                    'return_all': False}
-            res = optimize.minimize(self.func, self.startparams, args=(),
-                                    method='Powell', options=opts)
-            params, fopt, direc, numiter, func_calls, warnflag = (
-                    res['x'], res['fun'], res['direc'], res['nit'],
-                    res['nfev'], res['status'])
-        else:
-            retval = optimize.fmin_powell(self.func, self.startparams,
-                                          args=(), maxiter=self.maxiter,
-                                          full_output=True, disp=self.disp,
-                                          retall=False)
-            (params, fopt, direc, numiter, func_calls, warnflag) = retval
-
-        # Ensure that the function behaves the same; this is from SciPy 0.7.0
-        assert_allclose(self.trace[34:39],
-                        [[0.72949016, -0.44156936, 0.47100962],
-                         [0.72949016, -0.44156936, 0.48052496],
-                         [1.45898031, -0.88313872, 0.95153458],
-                         [0.72949016, -0.44156936, 0.47576729],
-                         [1.72949016, -0.44156936, 0.47576729]],
-                        atol=1e-14, rtol=1e-7)
-
-    def test_powell_bounded(self):
-        # Powell (direction set) optimization routine
-        # same as test_powell above, but with bounds
-        bounds = [(-np.pi, np.pi) for _ in self.startparams]
-        if self.use_wrapper:
-            opts = {'maxiter': self.maxiter, 'disp': self.disp,
-                    'return_all': False}
-            res = optimize.minimize(self.func, self.startparams, args=(),
-                                    bounds=bounds,
-                                    method='Powell', options=opts)
-            params, func_calls = (res['x'], res['nfev'])
-
-            assert func_calls == self.funccalls
-            assert_allclose(self.func(params), self.func(self.solution),
-                            atol=1e-6, rtol=1e-5)
-
-            # The exact evaluation count is sensitive to numerical error, and
-            # floating-point computations are not bit-for-bit reproducible
-            # across machines, and when using e.g. MKL, data alignment etc.
-            # affect the rounding error.
-            # It takes 155 calls on my machine, but we can add the same +20
-            # margin as is used in `test_powell`
-            assert self.funccalls <= 155 + 20
-            assert self.gradcalls == 0
-
-    def test_neldermead(self):
-        # Nelder-Mead simplex algorithm
-        if self.use_wrapper:
-            opts = {'maxiter': self.maxiter, 'disp': self.disp,
-                    'return_all': False}
-            res = optimize.minimize(self.func, self.startparams, args=(),
-                                    method='Nelder-mead', options=opts)
-            params, fopt, numiter, func_calls, warnflag = (
-                    res['x'], res['fun'], res['nit'], res['nfev'],
-                    res['status'])
-        else:
-            retval = optimize.fmin(self.func, self.startparams,
-                                   args=(), maxiter=self.maxiter,
-                                   full_output=True, disp=self.disp,
-                                   retall=False)
-            (params, fopt, numiter, func_calls, warnflag) = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-        # Ensure that function call counts are 'known good'; these are from
-        # SciPy 0.7.0. Don't allow them to increase.
-        assert self.funccalls == 167, self.funccalls
-        assert self.gradcalls == 0, self.gradcalls
-
-        # Ensure that the function behaves the same; this is from SciPy 0.7.0
-        assert_allclose(self.trace[76:78],
-                        [[0.1928968, -0.62780447, 0.35166118],
-                         [0.19572515, -0.63648426, 0.35838135]],
-                        atol=1e-14, rtol=1e-7)
-
-    def test_neldermead_initial_simplex(self):
-        # Nelder-Mead simplex algorithm
-        simplex = np.zeros((4, 3))
-        simplex[...] = self.startparams
-        for j in range(3):
-            simplex[j+1, j] += 0.1
-
-        if self.use_wrapper:
-            opts = {'maxiter': self.maxiter, 'disp': False,
-                    'return_all': True, 'initial_simplex': simplex}
-            res = optimize.minimize(self.func, self.startparams, args=(),
-                                    method='Nelder-mead', options=opts)
-            params, fopt, numiter, func_calls, warnflag = (res['x'],
-                                                           res['fun'],
-                                                           res['nit'],
-                                                           res['nfev'],
-                                                           res['status'])
-            assert_allclose(res['allvecs'][0], simplex[0])
-        else:
-            retval = optimize.fmin(self.func, self.startparams,
-                                   args=(), maxiter=self.maxiter,
-                                   full_output=True, disp=False, retall=False,
-                                   initial_simplex=simplex)
-
-            (params, fopt, numiter, func_calls, warnflag) = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-        # Ensure that function call counts are 'known good'; these are from
-        # SciPy 0.17.0. Don't allow them to increase.
-        assert self.funccalls == 100, self.funccalls
-        assert self.gradcalls == 0, self.gradcalls
-
-        # Ensure that the function behaves the same; this is from SciPy 0.15.0
-        assert_allclose(self.trace[50:52],
-                        [[0.14687474, -0.5103282, 0.48252111],
-                         [0.14474003, -0.5282084, 0.48743951]],
-                        atol=1e-14, rtol=1e-7)
-
-    def test_neldermead_initial_simplex_bad(self):
-        # Check it fails with a bad simplices
-        bad_simplices = []
-
-        simplex = np.zeros((3, 2))
-        simplex[...] = self.startparams[:2]
-        for j in range(2):
-            simplex[j+1, j] += 0.1
-        bad_simplices.append(simplex)
-
-        simplex = np.zeros((3, 3))
-        bad_simplices.append(simplex)
-
-        for simplex in bad_simplices:
-            if self.use_wrapper:
-                opts = {'maxiter': self.maxiter, 'disp': False,
-                        'return_all': False, 'initial_simplex': simplex}
-                assert_raises(ValueError,
-                              optimize.minimize,
-                              self.func,
-                              self.startparams,
-                              args=(),
-                              method='Nelder-mead',
-                              options=opts)
-            else:
-                assert_raises(ValueError, optimize.fmin,
-                              self.func, self.startparams,
-                              args=(), maxiter=self.maxiter,
-                              full_output=True, disp=False, retall=False,
-                              initial_simplex=simplex)
-
-    def test_neldermead_x0_ub(self):
-        # checks whether minimisation occurs correctly for entries where
-        # x0 == ub
-        # gh19991
-        def quad(x):
-            return np.sum(x**2)
-
-        res = optimize.minimize(
-            quad,
-            [1],
-            bounds=[(0, 1.)],
-            method='nelder-mead'
-        )
-        assert_allclose(res.x, [0])
-
-        res = optimize.minimize(
-            quad,
-            [1, 2],
-            bounds=[(0, 1.), (1, 3.)],
-            method='nelder-mead'
-        )
-        assert_allclose(res.x, [0, 1])
-
-    def test_ncg_negative_maxiter(self):
-        # Regression test for gh-8241
-        opts = {'maxiter': -1}
-        result = optimize.minimize(self.func, self.startparams,
-                                   method='Newton-CG', jac=self.grad,
-                                   args=(), options=opts)
-        assert result.status == 1
-
-    def test_ncg_zero_xtol(self):
-        # Regression test for gh-20214
-        def cosine(x):
-            return np.cos(x[0])
-
-        def jac(x):
-            return -np.sin(x[0])
-
-        x0 = [0.1]
-        xtol = 0
-        result = optimize.minimize(cosine,
-                                   x0=x0,
-                                   jac=jac,
-                                   method="newton-cg",
-                                   options=dict(xtol=xtol))
-        assert result.status == 0
-        assert_almost_equal(result.x[0], np.pi)
-
-    def test_ncg(self):
-        # line-search Newton conjugate gradient optimization routine
-        if self.use_wrapper:
-            opts = {'maxiter': self.maxiter, 'disp': self.disp,
-                    'return_all': False}
-            retval = optimize.minimize(self.func, self.startparams,
-                                       method='Newton-CG', jac=self.grad,
-                                       args=(), options=opts)['x']
-        else:
-            retval = optimize.fmin_ncg(self.func, self.startparams, self.grad,
-                                       args=(), maxiter=self.maxiter,
-                                       full_output=False, disp=self.disp,
-                                       retall=False)
-
-        params = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-        # Ensure that function call counts are 'known good'; these are from
-        # SciPy 0.7.0. Don't allow them to increase.
-        assert self.funccalls == 7, self.funccalls
-        assert self.gradcalls <= 22, self.gradcalls  # 0.13.0
-        # assert self.gradcalls <= 18, self.gradcalls  # 0.9.0
-        # assert self.gradcalls == 18, self.gradcalls  # 0.8.0
-        # assert self.gradcalls == 22, self.gradcalls  # 0.7.0
-
-        # Ensure that the function behaves the same; this is from SciPy 0.7.0
-        assert_allclose(self.trace[3:5],
-                        [[-4.35700753e-07, -5.24869435e-01, 4.87527480e-01],
-                         [-4.35700753e-07, -5.24869401e-01, 4.87527774e-01]],
-                        atol=1e-6, rtol=1e-7)
-
-    def test_ncg_hess(self):
-        # Newton conjugate gradient with Hessian
-        if self.use_wrapper:
-            opts = {'maxiter': self.maxiter, 'disp': self.disp,
-                    'return_all': False}
-            retval = optimize.minimize(self.func, self.startparams,
-                                       method='Newton-CG', jac=self.grad,
-                                       hess=self.hess,
-                                       args=(), options=opts)['x']
-        else:
-            retval = optimize.fmin_ncg(self.func, self.startparams, self.grad,
-                                       fhess=self.hess,
-                                       args=(), maxiter=self.maxiter,
-                                       full_output=False, disp=self.disp,
-                                       retall=False)
-
-        params = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-        # Ensure that function call counts are 'known good'; these are from
-        # SciPy 0.7.0. Don't allow them to increase.
-        assert self.funccalls <= 7, self.funccalls  # gh10673
-        assert self.gradcalls <= 18, self.gradcalls  # 0.9.0
-        # assert self.gradcalls == 18, self.gradcalls  # 0.8.0
-        # assert self.gradcalls == 22, self.gradcalls  # 0.7.0
-
-        # Ensure that the function behaves the same; this is from SciPy 0.7.0
-        assert_allclose(self.trace[3:5],
-                        [[-4.35700753e-07, -5.24869435e-01, 4.87527480e-01],
-                         [-4.35700753e-07, -5.24869401e-01, 4.87527774e-01]],
-                        atol=1e-6, rtol=1e-7)
-
-    def test_ncg_hessp(self):
-        # Newton conjugate gradient with Hessian times a vector p.
-        if self.use_wrapper:
-            opts = {'maxiter': self.maxiter, 'disp': self.disp,
-                    'return_all': False}
-            retval = optimize.minimize(self.func, self.startparams,
-                                       method='Newton-CG', jac=self.grad,
-                                       hessp=self.hessp,
-                                       args=(), options=opts)['x']
-        else:
-            retval = optimize.fmin_ncg(self.func, self.startparams, self.grad,
-                                       fhess_p=self.hessp,
-                                       args=(), maxiter=self.maxiter,
-                                       full_output=False, disp=self.disp,
-                                       retall=False)
-
-        params = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-        # Ensure that function call counts are 'known good'; these are from
-        # SciPy 0.7.0. Don't allow them to increase.
-        assert self.funccalls <= 7, self.funccalls  # gh10673
-        assert self.gradcalls <= 18, self.gradcalls  # 0.9.0
-        # assert self.gradcalls == 18, self.gradcalls  # 0.8.0
-        # assert self.gradcalls == 22, self.gradcalls  # 0.7.0
-
-        # Ensure that the function behaves the same; this is from SciPy 0.7.0
-        assert_allclose(self.trace[3:5],
-                        [[-4.35700753e-07, -5.24869435e-01, 4.87527480e-01],
-                         [-4.35700753e-07, -5.24869401e-01, 4.87527774e-01]],
-                        atol=1e-6, rtol=1e-7)
-
-    def test_cobyqa(self):
-        # COBYQA method.
-        if self.use_wrapper:
-            res = optimize.minimize(
-                self.func,
-                self.startparams,
-                method='cobyqa',
-                options={'maxiter': self.maxiter, 'disp': self.disp},
-            )
-            assert_allclose(res.fun, self.func(self.solution), atol=1e-6)
-
-            # Ensure that function call counts are 'known good'; these are from
-            # SciPy 1.14.0. Don't allow them to increase. The exact evaluation
-            # count is sensitive to numerical error and floating-point
-            # computations are not bit-for-bit reproducible across machines. It
-            # takes 45 calls on my machine, but we can add the same +20 margin
-            # as is used in `test_powell`
-            assert self.funccalls <= 45 + 20, self.funccalls
-
-
-def test_maxfev_test():
-    rng = np.random.default_rng(271707100830272976862395227613146332411)
-
-    def cost(x):
-        return rng.random(1) * 1000  # never converged problem
-
-    for imaxfev in [1, 10, 50]:
-        # "TNC" and "L-BFGS-B" also supports max function evaluation, but
-        # these may violate the limit because of evaluating gradients
-        # by numerical differentiation. See the discussion in PR #14805.
-        for method in ['Powell', 'Nelder-Mead']:
-            result = optimize.minimize(cost, rng.random(10),
-                                       method=method,
-                                       options={'maxfev': imaxfev})
-            assert result["nfev"] == imaxfev
-
-
-def test_wrap_scalar_function_with_validation():
-
-    def func_(x):
-        return x
-
-    fcalls, func = optimize._optimize.\
-        _wrap_scalar_function_maxfun_validation(func_, np.asarray(1), 5)
-
-    for i in range(5):
-        func(np.asarray(i))
-        assert fcalls[0] == i+1
-
-    msg = "Too many function calls"
-    with assert_raises(optimize._optimize._MaxFuncCallError, match=msg):
-        func(np.asarray(i))  # exceeded maximum function call
-
-    fcalls, func = optimize._optimize.\
-        _wrap_scalar_function_maxfun_validation(func_, np.asarray(1), 5)
-
-    msg = "The user-provided objective function must return a scalar value."
-    with assert_raises(ValueError, match=msg):
-        func(np.array([1, 1]))
-
-
-def test_obj_func_returns_scalar():
-    match = ("The user-provided "
-             "objective function must "
-             "return a scalar value.")
-    with assert_raises(ValueError, match=match):
-        optimize.minimize(lambda x: x, np.array([1, 1]), method='BFGS')
-
-
-def test_neldermead_iteration_num():
-    x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
-    res = optimize._minimize._minimize_neldermead(optimize.rosen, x0,
-                                                  xatol=1e-8)
-    assert res.nit <= 339
-
-
-def test_neldermead_respect_fp():
-    # Nelder-Mead should respect the fp type of the input + function
-    x0 = np.array([5.0, 4.0]).astype(np.float32)
-    def rosen_(x):
-        assert x.dtype == np.float32
-        return optimize.rosen(x)
-
-    optimize.minimize(rosen_, x0, method='Nelder-Mead')
-
-
-def test_neldermead_xatol_fatol():
-    # gh4484
-    # test we can call with fatol, xatol specified
-    def func(x):
-        return x[0] ** 2 + x[1] ** 2
-
-    optimize._minimize._minimize_neldermead(func, [1, 1], maxiter=2,
-                                            xatol=1e-3, fatol=1e-3)
-
-
-def test_neldermead_adaptive():
-    def func(x):
-        return np.sum(x ** 2)
-    p0 = [0.15746215, 0.48087031, 0.44519198, 0.4223638, 0.61505159,
-          0.32308456, 0.9692297, 0.4471682, 0.77411992, 0.80441652,
-          0.35994957, 0.75487856, 0.99973421, 0.65063887, 0.09626474]
-
-    res = optimize.minimize(func, p0, method='Nelder-Mead')
-    assert_equal(res.success, False)
-
-    res = optimize.minimize(func, p0, method='Nelder-Mead',
-                            options={'adaptive': True})
-    assert_equal(res.success, True)
-
-
-def test_bounded_powell_outsidebounds():
-    # With the bounded Powell method if you start outside the bounds the final
-    # should still be within the bounds (provided that the user doesn't make a
-    # bad choice for the `direc` argument).
-    def func(x):
-        return np.sum(x ** 2)
-    bounds = (-1, 1), (-1, 1), (-1, 1)
-    x0 = [-4, .5, -.8]
-
-    # we're starting outside the bounds, so we should get a warning
-    with assert_warns(optimize.OptimizeWarning):
-        res = optimize.minimize(func, x0, bounds=bounds, method="Powell")
-    assert_allclose(res.x, np.array([0.] * len(x0)), atol=1e-6)
-    assert_equal(res.success, True)
-    assert_equal(res.status, 0)
-
-    # However, now if we change the `direc` argument such that the
-    # set of vectors does not span the parameter space, then we may
-    # not end up back within the bounds. Here we see that the first
-    # parameter cannot be updated!
-    direc = [[0, 0, 0], [0, 1, 0], [0, 0, 1]]
-    # we're starting outside the bounds, so we should get a warning
-    with assert_warns(optimize.OptimizeWarning):
-        res = optimize.minimize(func, x0,
-                                bounds=bounds, method="Powell",
-                                options={'direc': direc})
-    assert_allclose(res.x, np.array([-4., 0, 0]), atol=1e-6)
-    assert_equal(res.success, False)
-    assert_equal(res.status, 4)
-
-
-def test_bounded_powell_vs_powell():
-    # here we test an example where the bounded Powell method
-    # will return a different result than the standard Powell
-    # method.
-
-    # first we test a simple example where the minimum is at
-    # the origin and the minimum that is within the bounds is
-    # larger than the minimum at the origin.
-    def func(x):
-        return np.sum(x ** 2)
-    bounds = (-5, -1), (-10, -0.1), (1, 9.2), (-4, 7.6), (-15.9, -2)
-    x0 = [-2.1, -5.2, 1.9, 0, -2]
-
-    options = {'ftol': 1e-10, 'xtol': 1e-10}
-
-    res_powell = optimize.minimize(func, x0, method="Powell", options=options)
-    assert_allclose(res_powell.x, 0., atol=1e-6)
-    assert_allclose(res_powell.fun, 0., atol=1e-6)
-
-    res_bounded_powell = optimize.minimize(func, x0, options=options,
-                                           bounds=bounds,
-                                           method="Powell")
-    p = np.array([-1, -0.1, 1, 0, -2])
-    assert_allclose(res_bounded_powell.x, p, atol=1e-6)
-    assert_allclose(res_bounded_powell.fun, func(p), atol=1e-6)
-
-    # now we test bounded Powell but with a mix of inf bounds.
-    bounds = (None, -1), (-np.inf, -.1), (1, np.inf), (-4, None), (-15.9, -2)
-    res_bounded_powell = optimize.minimize(func, x0, options=options,
-                                           bounds=bounds,
-                                           method="Powell")
-    p = np.array([-1, -0.1, 1, 0, -2])
-    assert_allclose(res_bounded_powell.x, p, atol=1e-6)
-    assert_allclose(res_bounded_powell.fun, func(p), atol=1e-6)
-
-    # next we test an example where the global minimum is within
-    # the bounds, but the bounded Powell method performs better
-    # than the standard Powell method.
-    def func(x):
-        t = np.sin(-x[0]) * np.cos(x[1]) * np.sin(-x[0] * x[1]) * np.cos(x[1])
-        t -= np.cos(np.sin(x[1] * x[2]) * np.cos(x[2]))
-        return t**2
-
-    bounds = [(-2, 5)] * 3
-    x0 = [-0.5, -0.5, -0.5]
-
-    res_powell = optimize.minimize(func, x0, method="Powell")
-    res_bounded_powell = optimize.minimize(func, x0,
-                                           bounds=bounds,
-                                           method="Powell")
-    assert_allclose(res_powell.fun, 0.007136253919761627, atol=1e-6)
-    assert_allclose(res_bounded_powell.fun, 0, atol=1e-6)
-
-    # next we test the previous example where the we provide Powell
-    # with (-inf, inf) bounds, and compare it to providing Powell
-    # with no bounds. They should end up the same.
-    bounds = [(-np.inf, np.inf)] * 3
-
-    res_bounded_powell = optimize.minimize(func, x0,
-                                           bounds=bounds,
-                                           method="Powell")
-    assert_allclose(res_powell.fun, res_bounded_powell.fun, atol=1e-6)
-    assert_allclose(res_powell.nfev, res_bounded_powell.nfev, atol=1e-6)
-    assert_allclose(res_powell.x, res_bounded_powell.x, atol=1e-6)
-
-    # now test when x0 starts outside of the bounds.
-    x0 = [45.46254415, -26.52351498, 31.74830248]
-    bounds = [(-2, 5)] * 3
-    # we're starting outside the bounds, so we should get a warning
-    with assert_warns(optimize.OptimizeWarning):
-        res_bounded_powell = optimize.minimize(func, x0,
-                                               bounds=bounds,
-                                               method="Powell")
-    assert_allclose(res_bounded_powell.fun, 0, atol=1e-6)
-
-
-def test_onesided_bounded_powell_stability():
-    # When the Powell method is bounded on only one side, a
-    # np.tan transform is done in order to convert it into a
-    # completely bounded problem. Here we do some simple tests
-    # of one-sided bounded Powell where the optimal solutions
-    # are large to test the stability of the transformation.
-    kwargs = {'method': 'Powell',
-              'bounds': [(-np.inf, 1e6)] * 3,
-              'options': {'ftol': 1e-8, 'xtol': 1e-8}}
-    x0 = [1, 1, 1]
-
-    # df/dx is constant.
-    def f(x):
-        return -np.sum(x)
-    res = optimize.minimize(f, x0, **kwargs)
-    assert_allclose(res.fun, -3e6, atol=1e-4)
-
-    # df/dx gets smaller and smaller.
-    def f(x):
-        return -np.abs(np.sum(x)) ** (0.1) * (1 if np.all(x > 0) else -1)
-
-    res = optimize.minimize(f, x0, **kwargs)
-    assert_allclose(res.fun, -(3e6) ** (0.1))
-
-    # df/dx gets larger and larger.
-    def f(x):
-        return -np.abs(np.sum(x)) ** 10 * (1 if np.all(x > 0) else -1)
-
-    res = optimize.minimize(f, x0, **kwargs)
-    assert_allclose(res.fun, -(3e6) ** 10, rtol=1e-7)
-
-    # df/dx gets larger for some of the variables and smaller for others.
-    def f(x):
-        t = -np.abs(np.sum(x[:2])) ** 5 - np.abs(np.sum(x[2:])) ** (0.1)
-        t *= (1 if np.all(x > 0) else -1)
-        return t
-
-    kwargs['bounds'] = [(-np.inf, 1e3)] * 3
-    res = optimize.minimize(f, x0, **kwargs)
-    assert_allclose(res.fun, -(2e3) ** 5 - (1e6) ** (0.1), rtol=1e-7)
-
-
-class TestOptimizeWrapperDisp(CheckOptimizeParameterized):
-    use_wrapper = True
-    disp = True
-
-
-class TestOptimizeWrapperNoDisp(CheckOptimizeParameterized):
-    use_wrapper = True
-    disp = False
-
-
-class TestOptimizeNoWrapperDisp(CheckOptimizeParameterized):
-    use_wrapper = False
-    disp = True
-
-
-class TestOptimizeNoWrapperNoDisp(CheckOptimizeParameterized):
-    use_wrapper = False
-    disp = False
-
-
-class TestOptimizeSimple(CheckOptimize):
-
-    def test_bfgs_nan(self):
-        # Test corner case where nan is fed to optimizer.  See gh-2067.
-        def func(x):
-            return x
-        def fprime(x):
-            return np.ones_like(x)
-        x0 = [np.nan]
-        with np.errstate(over='ignore', invalid='ignore'):
-            x = optimize.fmin_bfgs(func, x0, fprime, disp=False)
-            assert np.isnan(func(x))
-
-    def test_bfgs_nan_return(self):
-        # Test corner cases where fun returns NaN. See gh-4793.
-
-        # First case: NaN from first call.
-        def func(x):
-            return np.nan
-        with np.errstate(invalid='ignore'):
-            result = optimize.minimize(func, 0)
-
-        assert np.isnan(result['fun'])
-        assert result['success'] is False
-
-        # Second case: NaN from second call.
-        def func(x):
-            return 0 if x == 0 else np.nan
-        def fprime(x):
-            return np.ones_like(x)  # Steer away from zero.
-        with np.errstate(invalid='ignore'):
-            result = optimize.minimize(func, 0, jac=fprime)
-
-        assert np.isnan(result['fun'])
-        assert result['success'] is False
-
-    def test_bfgs_numerical_jacobian(self):
-        # BFGS with numerical Jacobian and a vector epsilon parameter.
-        # define the epsilon parameter using a random vector
-        epsilon = np.sqrt(np.spacing(1.)) * np.random.rand(len(self.solution))
-
-        params = optimize.fmin_bfgs(self.func, self.startparams,
-                                    epsilon=epsilon, args=(),
-                                    maxiter=self.maxiter, disp=False)
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-    def test_finite_differences_jac(self):
-        methods = ['BFGS', 'CG', 'TNC']
-        jacs = ['2-point', '3-point', None]
-        for method, jac in itertools.product(methods, jacs):
-            result = optimize.minimize(self.func, self.startparams,
-                                       method=method, jac=jac)
-            assert_allclose(self.func(result.x), self.func(self.solution),
-                            atol=1e-6)
-
-    def test_finite_differences_hess(self):
-        # test that all the methods that require hess can use finite-difference
-        # For Newton-CG, trust-ncg, trust-krylov the FD estimated hessian is
-        # wrapped in a hessp function
-        # dogleg, trust-exact actually require true hessians at the moment, so
-        # they're excluded.
-        methods = ['trust-constr', 'Newton-CG', 'trust-ncg', 'trust-krylov']
-        hesses = FD_METHODS + (optimize.BFGS,)
-        for method, hess in itertools.product(methods, hesses):
-            if hess is optimize.BFGS:
-                hess = hess()
-            result = optimize.minimize(self.func, self.startparams,
-                                       method=method, jac=self.grad,
-                                       hess=hess)
-            assert result.success
-
-        # check that the methods demand some sort of Hessian specification
-        # Newton-CG creates its own hessp, and trust-constr doesn't need a hess
-        # specified either
-        methods = ['trust-ncg', 'trust-krylov', 'dogleg', 'trust-exact']
-        for method in methods:
-            with pytest.raises(ValueError):
-                optimize.minimize(self.func, self.startparams,
-                                  method=method, jac=self.grad,
-                                  hess=None)
-
-    def test_bfgs_gh_2169(self):
-        def f(x):
-            if x < 0:
-                return 1.79769313e+308
-            else:
-                return x + 1./x
-        xs = optimize.fmin_bfgs(f, [10.], disp=False)
-        assert_allclose(xs, 1.0, rtol=1e-4, atol=1e-4)
-
-    def test_bfgs_double_evaluations(self):
-        # check BFGS does not evaluate twice in a row at same point
-        def f(x):
-            xp = x[0]
-            assert xp not in seen
-            seen.add(xp)
-            return 10*x**2, 20*x
-
-        seen = set()
-        optimize.minimize(f, -100, method='bfgs', jac=True, tol=1e-7)
-
-    def test_l_bfgs_b(self):
-        # limited-memory bound-constrained BFGS algorithm
-        retval = optimize.fmin_l_bfgs_b(self.func, self.startparams,
-                                        self.grad, args=(),
-                                        maxiter=self.maxiter)
-
-        (params, fopt, d) = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-        # Ensure that function call counts are 'known good'; these are from
-        # SciPy 0.7.0. Don't allow them to increase.
-        assert self.funccalls == 7, self.funccalls
-        assert self.gradcalls == 5, self.gradcalls
-
-        # Ensure that the function behaves the same; this is from SciPy 0.7.0
-        # test fixed in gh10673
-        assert_allclose(self.trace[3:5],
-                        [[8.117083e-16, -5.196198e-01, 4.897617e-01],
-                         [0., -0.52489628, 0.48753042]],
-                        atol=1e-14, rtol=1e-7)
-
-    def test_l_bfgs_b_numjac(self):
-        # L-BFGS-B with numerical Jacobian
-        retval = optimize.fmin_l_bfgs_b(self.func, self.startparams,
-                                        approx_grad=True,
-                                        maxiter=self.maxiter)
-
-        (params, fopt, d) = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-    def test_l_bfgs_b_funjac(self):
-        # L-BFGS-B with combined objective function and Jacobian
-        def fun(x):
-            return self.func(x), self.grad(x)
-
-        retval = optimize.fmin_l_bfgs_b(fun, self.startparams,
-                                        maxiter=self.maxiter)
-
-        (params, fopt, d) = retval
-
-        assert_allclose(self.func(params), self.func(self.solution),
-                        atol=1e-6)
-
-    def test_l_bfgs_b_maxiter(self):
-        # gh7854
-        # Ensure that not more than maxiters are ever run.
-        class Callback:
-            def __init__(self):
-                self.nit = 0
-                self.fun = None
-                self.x = None
-
-            def __call__(self, x):
-                self.x = x
-                self.fun = optimize.rosen(x)
-                self.nit += 1
-
-        c = Callback()
-        res = optimize.minimize(optimize.rosen, [0., 0.], method='l-bfgs-b',
-                                callback=c, options={'maxiter': 5})
-
-        assert_equal(res.nit, 5)
-        assert_almost_equal(res.x, c.x)
-        assert_almost_equal(res.fun, c.fun)
-        assert_equal(res.status, 1)
-        assert res.success is False
-        assert_equal(res.message,
-                     'STOP: TOTAL NO. of ITERATIONS REACHED LIMIT')
-
-    def test_minimize_l_bfgs_b(self):
-        # Minimize with L-BFGS-B method
-        opts = {'disp': False, 'maxiter': self.maxiter}
-        r = optimize.minimize(self.func, self.startparams,
-                              method='L-BFGS-B', jac=self.grad,
-                              options=opts)
-        assert_allclose(self.func(r.x), self.func(self.solution),
-                        atol=1e-6)
-        assert self.gradcalls == r.njev
-
-        self.funccalls = self.gradcalls = 0
-        # approximate jacobian
-        ra = optimize.minimize(self.func, self.startparams,
-                               method='L-BFGS-B', options=opts)
-        # check that function evaluations in approximate jacobian are counted
-        # assert_(ra.nfev > r.nfev)
-        assert self.funccalls == ra.nfev
-        assert_allclose(self.func(ra.x), self.func(self.solution),
-                        atol=1e-6)
-
-        self.funccalls = self.gradcalls = 0
-        # approximate jacobian
-        ra = optimize.minimize(self.func, self.startparams, jac='3-point',
-                               method='L-BFGS-B', options=opts)
-        assert self.funccalls == ra.nfev
-        assert_allclose(self.func(ra.x), self.func(self.solution),
-                        atol=1e-6)
-
-    def test_minimize_l_bfgs_b_ftol(self):
-        # Check that the `ftol` parameter in l_bfgs_b works as expected
-        v0 = None
-        for tol in [1e-1, 1e-4, 1e-7, 1e-10]:
-            opts = {'disp': False, 'maxiter': self.maxiter, 'ftol': tol}
-            sol = optimize.minimize(self.func, self.startparams,
-                                    method='L-BFGS-B', jac=self.grad,
-                                    options=opts)
-            v = self.func(sol.x)
-
-            if v0 is None:
-                v0 = v
-            else:
-                assert v < v0
-
-            assert_allclose(v, self.func(self.solution), rtol=tol)
-
-    def test_minimize_l_bfgs_maxls(self):
-        # check that the maxls is passed down to the Fortran routine
-        sol = optimize.minimize(optimize.rosen, np.array([-1.2, 1.0]),
-                                method='L-BFGS-B', jac=optimize.rosen_der,
-                                options={'disp': False, 'maxls': 1})
-        assert not sol.success
-
-    def test_minimize_l_bfgs_b_maxfun_interruption(self):
-        # gh-6162
-        f = optimize.rosen
-        g = optimize.rosen_der
-        values = []
-        x0 = np.full(7, 1000)
-
-        def objfun(x):
-            value = f(x)
-            values.append(value)
-            return value
-
-        # Look for an interesting test case.
-        # Request a maxfun that stops at a particularly bad function
-        # evaluation somewhere between 100 and 300 evaluations.
-        low, medium, high = 30, 100, 300
-        optimize.fmin_l_bfgs_b(objfun, x0, fprime=g, maxfun=high)
-        v, k = max((y, i) for i, y in enumerate(values[medium:]))
-        maxfun = medium + k
-        # If the minimization strategy is reasonable,
-        # the minimize() result should not be worse than the best
-        # of the first 30 function evaluations.
-        target = min(values[:low])
-        xmin, fmin, d = optimize.fmin_l_bfgs_b(f, x0, fprime=g, maxfun=maxfun)
-        assert_array_less(fmin, target)
-
-    def test_custom(self):
-        # This function comes from the documentation example.
-        def custmin(fun, x0, args=(), maxfev=None, stepsize=0.1,
-                    maxiter=100, callback=None, **options):
-            bestx = x0
-            besty = fun(x0)
-            funcalls = 1
-            niter = 0
-            improved = True
-            stop = False
-
-            while improved and not stop and niter < maxiter:
-                improved = False
-                niter += 1
-                for dim in range(np.size(x0)):
-                    for s in [bestx[dim] - stepsize, bestx[dim] + stepsize]:
-                        testx = np.copy(bestx)
-                        testx[dim] = s
-                        testy = fun(testx, *args)
-                        funcalls += 1
-                        if testy < besty:
-                            besty = testy
-                            bestx = testx
-                            improved = True
-                    if callback is not None:
-                        callback(bestx)
-                    if maxfev is not None and funcalls >= maxfev:
-                        stop = True
-                        break
-
-            return optimize.OptimizeResult(fun=besty, x=bestx, nit=niter,
-                                           nfev=funcalls, success=(niter > 1))
-
-        x0 = [1.35, 0.9, 0.8, 1.1, 1.2]
-        res = optimize.minimize(optimize.rosen, x0, method=custmin,
-                                options=dict(stepsize=0.05))
-        assert_allclose(res.x, 1.0, rtol=1e-4, atol=1e-4)
-
-    def test_gh10771(self):
-        # check that minimize passes bounds and constraints to a custom
-        # minimizer without altering them.
-        bounds = [(-2, 2), (0, 3)]
-        constraints = 'constraints'
-
-        def custmin(fun, x0, **options):
-            assert options['bounds'] is bounds
-            assert options['constraints'] is constraints
-            return optimize.OptimizeResult()
-
-        x0 = [1, 1]
-        optimize.minimize(optimize.rosen, x0, method=custmin,
-                          bounds=bounds, constraints=constraints)
-
-    def test_minimize_tol_parameter(self):
-        # Check that the minimize() tol= argument does something
-        def func(z):
-            x, y = z
-            return x**2*y**2 + x**4 + 1
-
-        def dfunc(z):
-            x, y = z
-            return np.array([2*x*y**2 + 4*x**3, 2*x**2*y])
-
-        for method in ['nelder-mead', 'powell', 'cg', 'bfgs',
-                       'newton-cg', 'l-bfgs-b', 'tnc',
-                       'cobyla', 'cobyqa', 'slsqp']:
-            if method in ('nelder-mead', 'powell', 'cobyla', 'cobyqa'):
-                jac = None
-            else:
-                jac = dfunc
-
-            sol1 = optimize.minimize(func, [2, 2], jac=jac, tol=1e-10,
-                                     method=method)
-            sol2 = optimize.minimize(func, [2, 2], jac=jac, tol=1.0,
-                                     method=method)
-            assert func(sol1.x) < func(sol2.x), \
-                   f"{method}: {func(sol1.x)} vs. {func(sol2.x)}"
-
-    @pytest.mark.fail_slow(5)
-    @pytest.mark.filterwarnings('ignore::UserWarning')
-    @pytest.mark.filterwarnings('ignore::RuntimeWarning')  # See gh-18547
-    @pytest.mark.parametrize('method',
-                             ['fmin', 'fmin_powell', 'fmin_cg', 'fmin_bfgs',
-                              'fmin_ncg', 'fmin_l_bfgs_b', 'fmin_tnc',
-                              'fmin_slsqp'] + MINIMIZE_METHODS)
-    def test_minimize_callback_copies_array(self, method):
-        # Check that arrays passed to callbacks are not modified
-        # inplace by the optimizer afterward
-
-        if method in ('fmin_tnc', 'fmin_l_bfgs_b'):
-            def func(x):
-                return optimize.rosen(x), optimize.rosen_der(x)
-        else:
-            func = optimize.rosen
-            jac = optimize.rosen_der
-            hess = optimize.rosen_hess
-
-        x0 = np.zeros(10)
-
-        # Set options
-        kwargs = {}
-        if method.startswith('fmin'):
-            routine = getattr(optimize, method)
-            if method == 'fmin_slsqp':
-                kwargs['iter'] = 5
-            elif method == 'fmin_tnc':
-                kwargs['maxfun'] = 100
-            elif method in ('fmin', 'fmin_powell'):
-                kwargs['maxiter'] = 3500
-            else:
-                kwargs['maxiter'] = 5
-        else:
-            def routine(*a, **kw):
-                kw['method'] = method
-                return optimize.minimize(*a, **kw)
-
-            if method == 'tnc':
-                kwargs['options'] = dict(maxfun=100)
-            else:
-                kwargs['options'] = dict(maxiter=5)
-
-        if method in ('fmin_ncg',):
-            kwargs['fprime'] = jac
-        elif method in ('newton-cg',):
-            kwargs['jac'] = jac
-        elif method in ('trust-krylov', 'trust-exact', 'trust-ncg', 'dogleg',
-                        'trust-constr'):
-            kwargs['jac'] = jac
-            kwargs['hess'] = hess
-
-        # Run with callback
-        results = []
-
-        def callback(x, *args, **kwargs):
-            assert not isinstance(x, optimize.OptimizeResult)
-            results.append((x, np.copy(x)))
-
-        routine(func, x0, callback=callback, **kwargs)
-
-        # Check returned arrays coincide with their copies
-        # and have no memory overlap
-        assert len(results) > 2
-        assert all(np.all(x == y) for x, y in results)
-        combinations = itertools.combinations(results, 2)
-        assert not any(np.may_share_memory(x[0], y[0]) for x, y in combinations)
-
-    @pytest.mark.parametrize('method', ['nelder-mead', 'powell', 'cg',
-                                        'bfgs', 'newton-cg', 'l-bfgs-b',
-                                        'tnc', 'cobyla', 'cobyqa', 'slsqp'])
-    def test_no_increase(self, method):
-        # Check that the solver doesn't return a value worse than the
-        # initial point.
-
-        def func(x):
-            return (x - 1)**2
-
-        def bad_grad(x):
-            # purposefully invalid gradient function, simulates a case
-            # where line searches start failing
-            return 2*(x - 1) * (-1) - 2
-
-        x0 = np.array([2.0])
-        f0 = func(x0)
-        jac = bad_grad
-        options = dict(maxfun=20) if method == 'tnc' else dict(maxiter=20)
-        if method in ['nelder-mead', 'powell', 'cobyla', 'cobyqa']:
-            jac = None
-        sol = optimize.minimize(func, x0, jac=jac, method=method,
-                                options=options)
-        assert_equal(func(sol.x), sol.fun)
-
-        if method == 'slsqp':
-            pytest.xfail("SLSQP returns slightly worse")
-        assert func(sol.x) <= f0
-
-    def test_slsqp_respect_bounds(self):
-        # Regression test for gh-3108
-        def f(x):
-            return sum((x - np.array([1., 2., 3., 4.]))**2)
-
-        def cons(x):
-            a = np.array([[-1, -1, -1, -1], [-3, -3, -2, -1]])
-            return np.concatenate([np.dot(a, x) + np.array([5, 10]), x])
-
-        x0 = np.array([0.5, 1., 1.5, 2.])
-        res = optimize.minimize(f, x0, method='slsqp',
-                                constraints={'type': 'ineq', 'fun': cons})
-        assert_allclose(res.x, np.array([0., 2, 5, 8])/3, atol=1e-12)
-
-    @pytest.mark.parametrize('method', ['Nelder-Mead', 'Powell', 'CG', 'BFGS',
-                                        'Newton-CG', 'L-BFGS-B', 'SLSQP',
-                                        'trust-constr', 'dogleg', 'trust-ncg',
-                                        'trust-exact', 'trust-krylov',
-                                        'cobyqa'])
-    def test_respect_maxiter(self, method):
-        # Check that the number of iterations equals max_iter, assuming
-        # convergence doesn't establish before
-        MAXITER = 4
-
-        x0 = np.zeros(10)
-
-        sf = ScalarFunction(optimize.rosen, x0, (), optimize.rosen_der,
-                            optimize.rosen_hess, None, None)
-
-        # Set options
-        kwargs = {'method': method, 'options': dict(maxiter=MAXITER)}
-
-        if method in ('Newton-CG',):
-            kwargs['jac'] = sf.grad
-        elif method in ('trust-krylov', 'trust-exact', 'trust-ncg', 'dogleg',
-                        'trust-constr'):
-            kwargs['jac'] = sf.grad
-            kwargs['hess'] = sf.hess
-
-        sol = optimize.minimize(sf.fun, x0, **kwargs)
-        assert sol.nit == MAXITER
-        assert sol.nfev >= sf.nfev
-        if hasattr(sol, 'njev'):
-            assert sol.njev >= sf.ngev
-
-        # method specific tests
-        if method == 'SLSQP':
-            assert sol.status == 9  # Iteration limit reached
-        elif method == 'cobyqa':
-            assert sol.status == 6  # Iteration limit reached
-
-    @pytest.mark.parametrize('method', ['Nelder-Mead', 'Powell',
-                                        'fmin', 'fmin_powell'])
-    def test_runtime_warning(self, method):
-        x0 = np.zeros(10)
-        sf = ScalarFunction(optimize.rosen, x0, (), optimize.rosen_der,
-                            optimize.rosen_hess, None, None)
-        options = {"maxiter": 1, "disp": True}
-        with pytest.warns(RuntimeWarning,
-                          match=r'Maximum number of iterations'):
-            if method.startswith('fmin'):
-                routine = getattr(optimize, method)
-                routine(sf.fun, x0, **options)
-            else:
-                optimize.minimize(sf.fun, x0, method=method, options=options)
-
-    def test_respect_maxiter_trust_constr_ineq_constraints(self):
-        # special case of minimization with trust-constr and inequality
-        # constraints to check maxiter limit is obeyed when using internal
-        # method 'tr_interior_point'
-        MAXITER = 4
-        f = optimize.rosen
-        jac = optimize.rosen_der
-        hess = optimize.rosen_hess
-
-        def fun(x):
-            return np.array([0.2 * x[0] - 0.4 * x[1] - 0.33 * x[2]])
-        cons = ({'type': 'ineq',
-                 'fun': fun},)
-
-        x0 = np.zeros(10)
-        sol = optimize.minimize(f, x0, constraints=cons, jac=jac, hess=hess,
-                                method='trust-constr',
-                                options=dict(maxiter=MAXITER))
-        assert sol.nit == MAXITER
-
-    def test_minimize_automethod(self):
-        def f(x):
-            return x**2
-
-        def cons(x):
-            return x - 2
-
-        x0 = np.array([10.])
-        sol_0 = optimize.minimize(f, x0)
-        sol_1 = optimize.minimize(f, x0, constraints=[{'type': 'ineq',
-                                                       'fun': cons}])
-        sol_2 = optimize.minimize(f, x0, bounds=[(5, 10)])
-        sol_3 = optimize.minimize(f, x0,
-                                  constraints=[{'type': 'ineq', 'fun': cons}],
-                                  bounds=[(5, 10)])
-        sol_4 = optimize.minimize(f, x0,
-                                  constraints=[{'type': 'ineq', 'fun': cons}],
-                                  bounds=[(1, 10)])
-        for sol in [sol_0, sol_1, sol_2, sol_3, sol_4]:
-            assert sol.success
-        assert_allclose(sol_0.x, 0, atol=1e-7)
-        assert_allclose(sol_1.x, 2, atol=1e-7)
-        assert_allclose(sol_2.x, 5, atol=1e-7)
-        assert_allclose(sol_3.x, 5, atol=1e-7)
-        assert_allclose(sol_4.x, 2, atol=1e-7)
-
-    def test_minimize_coerce_args_param(self):
-        # Regression test for gh-3503
-        def Y(x, c):
-            return np.sum((x-c)**2)
-
-        def dY_dx(x, c=None):
-            return 2*(x-c)
-
-        c = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])
-        xinit = np.random.randn(len(c))
-        optimize.minimize(Y, xinit, jac=dY_dx, args=(c), method="BFGS")
-
-    def test_initial_step_scaling(self):
-        # Check that optimizer initial step is not huge even if the
-        # function and gradients are
-
-        scales = [1e-50, 1, 1e50]
-        methods = ['CG', 'BFGS', 'L-BFGS-B', 'Newton-CG']
-
-        def f(x):
-            if first_step_size[0] is None and x[0] != x0[0]:
-                first_step_size[0] = abs(x[0] - x0[0])
-            if abs(x).max() > 1e4:
-                raise AssertionError("Optimization stepped far away!")
-            return scale*(x[0] - 1)**2
-
-        def g(x):
-            return np.array([scale*(x[0] - 1)])
-
-        for scale, method in itertools.product(scales, methods):
-            if method in ('CG', 'BFGS'):
-                options = dict(gtol=scale*1e-8)
-            else:
-                options = dict()
-
-            if scale < 1e-10 and method in ('L-BFGS-B', 'Newton-CG'):
-                # XXX: return initial point if they see small gradient
-                continue
-
-            x0 = [-1.0]
-            first_step_size = [None]
-            res = optimize.minimize(f, x0, jac=g, method=method,
-                                    options=options)
-
-            err_msg = f"{method} {scale}: {first_step_size}: {res}"
-
-            assert res.success, err_msg
-            assert_allclose(res.x, [1.0], err_msg=err_msg)
-            assert res.nit <= 3, err_msg
-
-            if scale > 1e-10:
-                if method in ('CG', 'BFGS'):
-                    assert_allclose(first_step_size[0], 1.01, err_msg=err_msg)
-                else:
-                    # Newton-CG and L-BFGS-B use different logic for the first
-                    # step, but are both scaling invariant with step sizes ~ 1
-                    assert first_step_size[0] > 0.5 and first_step_size[0] < 3, err_msg
-            else:
-                # step size has upper bound of ||grad||, so line
-                # search makes many small steps
-                pass
-
-    @pytest.mark.parametrize('method', ['nelder-mead', 'powell', 'cg', 'bfgs',
-                                        'newton-cg', 'l-bfgs-b', 'tnc',
-                                        'cobyla', 'cobyqa', 'slsqp',
-                                        'trust-constr', 'dogleg', 'trust-ncg',
-                                        'trust-exact', 'trust-krylov'])
-    def test_nan_values(self, method):
-        # Check nan values result to failed exit status
-        np.random.seed(1234)
-
-        count = [0]
-
-        def func(x):
-            return np.nan
-
-        def func2(x):
-            count[0] += 1
-            if count[0] > 2:
-                return np.nan
-            else:
-                return np.random.rand()
-
-        def grad(x):
-            return np.array([1.0])
-
-        def hess(x):
-            return np.array([[1.0]])
-
-        x0 = np.array([1.0])
-
-        needs_grad = method in ('newton-cg', 'trust-krylov', 'trust-exact',
-                                'trust-ncg', 'dogleg')
-        needs_hess = method in ('trust-krylov', 'trust-exact', 'trust-ncg',
-                                'dogleg')
-
-        funcs = [func, func2]
-        grads = [grad] if needs_grad else [grad, None]
-        hesss = [hess] if needs_hess else [hess, None]
-        options = dict(maxfun=20) if method == 'tnc' else dict(maxiter=20)
-
-        with np.errstate(invalid='ignore'), suppress_warnings() as sup:
-            sup.filter(UserWarning, "delta_grad == 0.*")
-            sup.filter(RuntimeWarning, ".*does not use Hessian.*")
-            sup.filter(RuntimeWarning, ".*does not use gradient.*")
-
-            for f, g, h in itertools.product(funcs, grads, hesss):
-                count = [0]
-                sol = optimize.minimize(f, x0, jac=g, hess=h, method=method,
-                                        options=options)
-                assert_equal(sol.success, False)
-
-    @pytest.mark.parametrize('method', ['nelder-mead', 'cg', 'bfgs',
-                                        'l-bfgs-b', 'tnc',
-                                        'cobyla', 'cobyqa', 'slsqp',
-                                        'trust-constr', 'dogleg', 'trust-ncg',
-                                        'trust-exact', 'trust-krylov'])
-    def test_duplicate_evaluations(self, method):
-        # check that there are no duplicate evaluations for any methods
-        jac = hess = None
-        if method in ('newton-cg', 'trust-krylov', 'trust-exact',
-                      'trust-ncg', 'dogleg'):
-            jac = self.grad
-        if method in ('trust-krylov', 'trust-exact', 'trust-ncg',
-                      'dogleg'):
-            hess = self.hess
-
-        with np.errstate(invalid='ignore'), suppress_warnings() as sup:
-            # for trust-constr
-            sup.filter(UserWarning, "delta_grad == 0.*")
-            optimize.minimize(self.func, self.startparams,
-                              method=method, jac=jac, hess=hess)
-
-        for i in range(1, len(self.trace)):
-            if np.array_equal(self.trace[i - 1], self.trace[i]):
-                raise RuntimeError(
-                    f"Duplicate evaluations made by {method}")
-
-    @pytest.mark.filterwarnings('ignore::RuntimeWarning')
-    @pytest.mark.parametrize('method', MINIMIZE_METHODS_NEW_CB)
-    @pytest.mark.parametrize('new_cb_interface', [0, 1, 2])
-    def test_callback_stopiteration(self, method, new_cb_interface):
-        # Check that if callback raises StopIteration, optimization
-        # terminates with the same result as if iterations were limited
-
-        def f(x):
-            f.flag = False  # check that f isn't called after StopIteration
-            return optimize.rosen(x)
-        f.flag = False
-
-        def g(x):
-            f.flag = False
-            return optimize.rosen_der(x)
-
-        def h(x):
-            f.flag = False
-            return optimize.rosen_hess(x)
-
-        maxiter = 5
-
-        if new_cb_interface == 1:
-            def callback_interface(*, intermediate_result):
-                assert intermediate_result.fun == f(intermediate_result.x)
-                callback()
-        elif new_cb_interface == 2:
-            class Callback:
-                def __call__(self, intermediate_result: OptimizeResult):
-                    assert intermediate_result.fun == f(intermediate_result.x)
-                    callback()
-            callback_interface = Callback()
-        else:
-            def callback_interface(xk, *args):  # type: ignore[misc]
-                callback()
-
-        def callback():
-            callback.i += 1
-            callback.flag = False
-            if callback.i == maxiter:
-                callback.flag = True
-                raise StopIteration()
-        callback.i = 0
-        callback.flag = False
-
-        kwargs = {'x0': [1.1]*5, 'method': method,
-                  'fun': f, 'jac': g, 'hess': h}
-
-        res = optimize.minimize(**kwargs, callback=callback_interface)
-        if method == 'nelder-mead':
-            maxiter = maxiter + 1  # nelder-mead counts differently
-        if method == 'cobyqa':
-            ref = optimize.minimize(**kwargs, options={'maxfev': maxiter})
-            assert res.nfev == ref.nfev == maxiter
-        else:
-            ref = optimize.minimize(**kwargs, options={'maxiter': maxiter})
-            assert res.nit == ref.nit == maxiter
-        assert res.fun == ref.fun
-        assert_equal(res.x, ref.x)
-        assert res.status == (3 if method in [
-            'trust-constr',
-            'cobyqa',
-        ] else 99)
-
-    def test_ndim_error(self):
-        msg = "'x0' must only have one dimension."
-        with assert_raises(ValueError, match=msg):
-            optimize.minimize(lambda x: x, np.ones((2, 1)))
-
-    @pytest.mark.parametrize('method', ('nelder-mead', 'l-bfgs-b', 'tnc',
-                                        'powell', 'cobyla', 'cobyqa',
-                                        'trust-constr'))
-    def test_minimize_invalid_bounds(self, method):
-        def f(x):
-            return np.sum(x**2)
-
-        bounds = Bounds([1, 2], [3, 4])
-        msg = 'The number of bounds is not compatible with the length of `x0`.'
-        with pytest.raises(ValueError, match=msg):
-            optimize.minimize(f, x0=[1, 2, 3], method=method, bounds=bounds)
-
-        bounds = Bounds([1, 6, 1], [3, 4, 2])
-        msg = 'An upper bound is less than the corresponding lower bound.'
-        with pytest.raises(ValueError, match=msg):
-            optimize.minimize(f, x0=[1, 2, 3], method=method, bounds=bounds)
-
-    @pytest.mark.parametrize('method', ['bfgs', 'cg', 'newton-cg', 'powell'])
-    def test_minimize_warnings_gh1953(self, method):
-        # test that minimize methods produce warnings rather than just using
-        # `print`; see gh-1953.
-        kwargs = {} if method=='powell' else {'jac': optimize.rosen_der}
-        warning_type = (RuntimeWarning if method=='powell'
-                        else optimize.OptimizeWarning)
-
-        options = {'disp': True, 'maxiter': 10}
-        with pytest.warns(warning_type, match='Maximum number'):
-            optimize.minimize(lambda x: optimize.rosen(x), [0, 0],
-                              method=method, options=options, **kwargs)
-
-        options['disp'] = False
-        optimize.minimize(lambda x: optimize.rosen(x), [0, 0],
-                          method=method, options=options, **kwargs)
-
-
-@pytest.mark.parametrize(
-    'method',
-    ['l-bfgs-b', 'tnc', 'Powell', 'Nelder-Mead', 'cobyqa']
-)
-def test_minimize_with_scalar(method):
-    # checks that minimize works with a scalar being provided to it.
-    def f(x):
-        return np.sum(x ** 2)
-
-    res = optimize.minimize(f, 17, bounds=[(-100, 100)], method=method)
-    assert res.success
-    assert_allclose(res.x, [0.0], atol=1e-5)
-
-
-class TestLBFGSBBounds:
-    def setup_method(self):
-        self.bounds = ((1, None), (None, None))
-        self.solution = (1, 0)
-
-    def fun(self, x, p=2.0):
-        return 1.0 / p * (x[0]**p + x[1]**p)
-
-    def jac(self, x, p=2.0):
-        return x**(p - 1)
-
-    def fj(self, x, p=2.0):
-        return self.fun(x, p), self.jac(x, p)
-
-    def test_l_bfgs_b_bounds(self):
-        x, f, d = optimize.fmin_l_bfgs_b(self.fun, [0, -1],
-                                         fprime=self.jac,
-                                         bounds=self.bounds)
-        assert d['warnflag'] == 0, d['task']
-        assert_allclose(x, self.solution, atol=1e-6)
-
-    def test_l_bfgs_b_funjac(self):
-        # L-BFGS-B with fun and jac combined and extra arguments
-        x, f, d = optimize.fmin_l_bfgs_b(self.fj, [0, -1], args=(2.0, ),
-                                         bounds=self.bounds)
-        assert d['warnflag'] == 0, d['task']
-        assert_allclose(x, self.solution, atol=1e-6)
-
-    def test_minimize_l_bfgs_b_bounds(self):
-        # Minimize with method='L-BFGS-B' with bounds
-        res = optimize.minimize(self.fun, [0, -1], method='L-BFGS-B',
-                                jac=self.jac, bounds=self.bounds)
-        assert res['success'], res['message']
-        assert_allclose(res.x, self.solution, atol=1e-6)
-
-    @pytest.mark.parametrize('bounds', [
-        ([(10, 1), (1, 10)]),
-        ([(1, 10), (10, 1)]),
-        ([(10, 1), (10, 1)])
-    ])
-    def test_minimize_l_bfgs_b_incorrect_bounds(self, bounds):
-        with pytest.raises(ValueError, match='.*bound.*'):
-            optimize.minimize(self.fun, [0, -1], method='L-BFGS-B',
-                              jac=self.jac, bounds=bounds)
-
-    def test_minimize_l_bfgs_b_bounds_FD(self):
-        # test that initial starting value outside bounds doesn't raise
-        # an error (done with clipping).
-        # test all different finite differences combos, with and without args
-
-        jacs = ['2-point', '3-point', None]
-        argss = [(2.,), ()]
-        for jac, args in itertools.product(jacs, argss):
-            res = optimize.minimize(self.fun, [0, -1], args=args,
-                                    method='L-BFGS-B',
-                                    jac=jac, bounds=self.bounds,
-                                    options={'finite_diff_rel_step': None})
-            assert res['success'], res['message']
-            assert_allclose(res.x, self.solution, atol=1e-6)
-
-
-class TestOptimizeScalar:
-    def setup_method(self):
-        self.solution = 1.5
-
-    def fun(self, x, a=1.5):
-        """Objective function"""
-        return (x - a)**2 - 0.8
-
-    def test_brent(self):
-        x = optimize.brent(self.fun)
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.brent(self.fun, brack=(-3, -2))
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.brent(self.fun, full_output=True)
-        assert_allclose(x[0], self.solution, atol=1e-6)
-
-        x = optimize.brent(self.fun, brack=(-15, -1, 15))
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        message = r"\(f\(xb\) < f\(xa\)\) and \(f\(xb\) < f\(xc\)\)"
-        with pytest.raises(ValueError, match=message):
-            optimize.brent(self.fun, brack=(-1, 0, 1))
-
-        message = r"\(xa < xb\) and \(xb < xc\)"
-        with pytest.raises(ValueError, match=message):
-            optimize.brent(self.fun, brack=(0, -1, 1))
-
-    @pytest.mark.filterwarnings('ignore::UserWarning')
-    def test_golden(self):
-        x = optimize.golden(self.fun)
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.golden(self.fun, brack=(-3, -2))
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.golden(self.fun, full_output=True)
-        assert_allclose(x[0], self.solution, atol=1e-6)
-
-        x = optimize.golden(self.fun, brack=(-15, -1, 15))
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.golden(self.fun, tol=0)
-        assert_allclose(x, self.solution)
-
-        maxiter_test_cases = [0, 1, 5]
-        for maxiter in maxiter_test_cases:
-            x0 = optimize.golden(self.fun, maxiter=0, full_output=True)
-            x = optimize.golden(self.fun, maxiter=maxiter, full_output=True)
-            nfev0, nfev = x0[2], x[2]
-            assert_equal(nfev - nfev0, maxiter)
-
-        message = r"\(f\(xb\) < f\(xa\)\) and \(f\(xb\) < f\(xc\)\)"
-        with pytest.raises(ValueError, match=message):
-            optimize.golden(self.fun, brack=(-1, 0, 1))
-
-        message = r"\(xa < xb\) and \(xb < xc\)"
-        with pytest.raises(ValueError, match=message):
-            optimize.golden(self.fun, brack=(0, -1, 1))
-
-    def test_fminbound(self):
-        x = optimize.fminbound(self.fun, 0, 1)
-        assert_allclose(x, 1, atol=1e-4)
-
-        x = optimize.fminbound(self.fun, 1, 5)
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.fminbound(self.fun, np.array([1]), np.array([5]))
-        assert_allclose(x, self.solution, atol=1e-6)
-        assert_raises(ValueError, optimize.fminbound, self.fun, 5, 1)
-
-    def test_fminbound_scalar(self):
-        with pytest.raises(ValueError, match='.*must be finite scalars.*'):
-            optimize.fminbound(self.fun, np.zeros((1, 2)), 1)
-
-        x = optimize.fminbound(self.fun, 1, np.array(5))
-        assert_allclose(x, self.solution, atol=1e-6)
-
-    def test_gh11207(self):
-        def fun(x):
-            return x**2
-        optimize.fminbound(fun, 0, 0)
-
-    def test_minimize_scalar(self):
-        # combine all tests above for the minimize_scalar wrapper
-        x = optimize.minimize_scalar(self.fun).x
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.minimize_scalar(self.fun, method='Brent')
-        assert x.success
-
-        x = optimize.minimize_scalar(self.fun, method='Brent',
-                                     options=dict(maxiter=3))
-        assert not x.success
-
-        x = optimize.minimize_scalar(self.fun, bracket=(-3, -2),
-                                     args=(1.5, ), method='Brent').x
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.minimize_scalar(self.fun, method='Brent',
-                                     args=(1.5,)).x
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.minimize_scalar(self.fun, bracket=(-15, -1, 15),
-                                     args=(1.5, ), method='Brent').x
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.minimize_scalar(self.fun, bracket=(-3, -2),
-                                     args=(1.5, ), method='golden').x
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.minimize_scalar(self.fun, method='golden',
-                                     args=(1.5,)).x
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.minimize_scalar(self.fun, bracket=(-15, -1, 15),
-                                     args=(1.5, ), method='golden').x
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.minimize_scalar(self.fun, bounds=(0, 1), args=(1.5,),
-                                     method='Bounded').x
-        assert_allclose(x, 1, atol=1e-4)
-
-        x = optimize.minimize_scalar(self.fun, bounds=(1, 5), args=(1.5, ),
-                                     method='bounded').x
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        x = optimize.minimize_scalar(self.fun, bounds=(np.array([1]),
-                                                       np.array([5])),
-                                     args=(np.array([1.5]), ),
-                                     method='bounded').x
-        assert_allclose(x, self.solution, atol=1e-6)
-
-        assert_raises(ValueError, optimize.minimize_scalar, self.fun,
-                      bounds=(5, 1), method='bounded', args=(1.5, ))
-
-        assert_raises(ValueError, optimize.minimize_scalar, self.fun,
-                      bounds=(np.zeros(2), 1), method='bounded', args=(1.5, ))
-
-        x = optimize.minimize_scalar(self.fun, bounds=(1, np.array(5)),
-                                     method='bounded').x
-        assert_allclose(x, self.solution, atol=1e-6)
-
-    def test_minimize_scalar_custom(self):
-        # This function comes from the documentation example.
-        def custmin(fun, bracket, args=(), maxfev=None, stepsize=0.1,
-                    maxiter=100, callback=None, **options):
-            bestx = (bracket[1] + bracket[0]) / 2.0
-            besty = fun(bestx)
-            funcalls = 1
-            niter = 0
-            improved = True
-            stop = False
-
-            while improved and not stop and niter < maxiter:
-                improved = False
-                niter += 1
-                for testx in [bestx - stepsize, bestx + stepsize]:
-                    testy = fun(testx, *args)
-                    funcalls += 1
-                    if testy < besty:
-                        besty = testy
-                        bestx = testx
-                        improved = True
-                if callback is not None:
-                    callback(bestx)
-                if maxfev is not None and funcalls >= maxfev:
-                    stop = True
-                    break
-
-            return optimize.OptimizeResult(fun=besty, x=bestx, nit=niter,
-                                           nfev=funcalls, success=(niter > 1))
-
-        res = optimize.minimize_scalar(self.fun, bracket=(0, 4),
-                                       method=custmin,
-                                       options=dict(stepsize=0.05))
-        assert_allclose(res.x, self.solution, atol=1e-6)
-
-    def test_minimize_scalar_coerce_args_param(self):
-        # Regression test for gh-3503
-        optimize.minimize_scalar(self.fun, args=1.5)
-
-    @pytest.mark.parametrize('method', ['brent', 'bounded', 'golden'])
-    def test_disp(self, method):
-        # test that all minimize_scalar methods accept a disp option.
-        for disp in [0, 1, 2, 3]:
-            optimize.minimize_scalar(self.fun, options={"disp": disp})
-
-    @pytest.mark.parametrize('method', ['brent', 'bounded', 'golden'])
-    def test_result_attributes(self, method):
-        kwargs = {"bounds": [-10, 10]} if method == 'bounded' else {}
-        result = optimize.minimize_scalar(self.fun, method=method, **kwargs)
-        assert hasattr(result, "x")
-        assert hasattr(result, "success")
-        assert hasattr(result, "message")
-        assert hasattr(result, "fun")
-        assert hasattr(result, "nfev")
-        assert hasattr(result, "nit")
-
-    @pytest.mark.filterwarnings('ignore::UserWarning')
-    @pytest.mark.parametrize('method', ['brent', 'bounded', 'golden'])
-    def test_nan_values(self, method):
-        # Check nan values result to failed exit status
-        np.random.seed(1234)
-
-        count = [0]
-
-        def func(x):
-            count[0] += 1
-            if count[0] > 4:
-                return np.nan
-            else:
-                return x**2 + 0.1 * np.sin(x)
-
-        bracket = (-1, 0, 1)
-        bounds = (-1, 1)
-
-        with np.errstate(invalid='ignore'), suppress_warnings() as sup:
-            sup.filter(UserWarning, "delta_grad == 0.*")
-            sup.filter(RuntimeWarning, ".*does not use Hessian.*")
-            sup.filter(RuntimeWarning, ".*does not use gradient.*")
-
-            count = [0]
-
-            kwargs = {"bounds": bounds} if method == 'bounded' else {}
-            sol = optimize.minimize_scalar(func, bracket=bracket,
-                                           **kwargs, method=method,
-                                           options=dict(maxiter=20))
-            assert_equal(sol.success, False)
-
-    def test_minimize_scalar_defaults_gh10911(self):
-        # Previously, bounds were silently ignored unless `method='bounds'`
-        # was chosen. See gh-10911. Check that this is no longer the case.
-        def f(x):
-            return x**2
-
-        res = optimize.minimize_scalar(f)
-        assert_allclose(res.x, 0, atol=1e-8)
-
-        res = optimize.minimize_scalar(f, bounds=(1, 100),
-                                       options={'xatol': 1e-10})
-        assert_allclose(res.x, 1)
-
-    def test_minimize_non_finite_bounds_gh10911(self):
-        # Previously, minimize_scalar misbehaved with infinite bounds.
-        # See gh-10911. Check that it now raises an error, instead.
-        msg = "Optimization bounds must be finite scalars."
-        with pytest.raises(ValueError, match=msg):
-            optimize.minimize_scalar(np.sin, bounds=(1, np.inf))
-        with pytest.raises(ValueError, match=msg):
-            optimize.minimize_scalar(np.sin, bounds=(np.nan, 1))
-
-    @pytest.mark.parametrize("method", ['brent', 'golden'])
-    def test_minimize_unbounded_method_with_bounds_gh10911(self, method):
-        # Previously, `bounds` were silently ignored when `method='brent'` or
-        # `method='golden'`. See gh-10911. Check that error is now raised.
-        msg = "Use of `bounds` is incompatible with..."
-        with pytest.raises(ValueError, match=msg):
-            optimize.minimize_scalar(np.sin, method=method, bounds=(1, 2))
-
-    @pytest.mark.filterwarnings('ignore::RuntimeWarning')
-    @pytest.mark.parametrize("method", MINIMIZE_SCALAR_METHODS)
-    @pytest.mark.parametrize("tol", [1, 1e-6])
-    @pytest.mark.parametrize("fshape", [(), (1,), (1, 1)])
-    def test_minimize_scalar_dimensionality_gh16196(self, method, tol, fshape):
-        # gh-16196 reported that the output shape of `minimize_scalar` was not
-        # consistent when an objective function returned an array. Check that
-        # `res.fun` and `res.x` are now consistent.
-        def f(x):
-            return np.array(x**4).reshape(fshape)
-
-        a, b = -0.1, 0.2
-        kwargs = (dict(bracket=(a, b)) if method != "bounded"
-                  else dict(bounds=(a, b)))
-        kwargs.update(dict(method=method, tol=tol))
-
-        res = optimize.minimize_scalar(f, **kwargs)
-        assert res.x.shape == res.fun.shape == f(res.x).shape == fshape
-
-    @pytest.mark.parametrize('method', ['bounded', 'brent', 'golden'])
-    def test_minimize_scalar_warnings_gh1953(self, method):
-        # test that minimize_scalar methods produce warnings rather than just
-        # using `print`; see gh-1953.
-        def f(x):
-            return (x - 1)**2
-
-        kwargs = {}
-        kwd = 'bounds' if method == 'bounded' else 'bracket'
-        kwargs[kwd] = [-2, 10]
-
-        options = {'disp': True, 'maxiter': 3}
-        with pytest.warns(optimize.OptimizeWarning, match='Maximum number'):
-            optimize.minimize_scalar(f, method=method, options=options,
-                                     **kwargs)
-
-        options['disp'] = False
-        optimize.minimize_scalar(f, method=method, options=options, **kwargs)
-
-
-class TestBracket:
-
-    @pytest.mark.filterwarnings('ignore::RuntimeWarning')
-    def test_errors_and_status_false(self):
-        # Check that `bracket` raises the errors it is supposed to
-        def f(x):  # gh-14858
-            return x**2 if ((-1 < x) & (x < 1)) else 100.0
-
-        message = "The algorithm terminated without finding a valid bracket."
-        with pytest.raises(RuntimeError, match=message):
-            optimize.bracket(f, -1, 1)
-        with pytest.raises(RuntimeError, match=message):
-            optimize.bracket(f, -1, np.inf)
-        with pytest.raises(RuntimeError, match=message):
-            optimize.brent(f, brack=(-1, 1))
-        with pytest.raises(RuntimeError, match=message):
-            optimize.golden(f, brack=(-1, 1))
-
-        def f(x):  # gh-5899
-            return -5 * x**5 + 4 * x**4 - 12 * x**3 + 11 * x**2 - 2 * x + 1
-
-        message = "No valid bracket was found before the iteration limit..."
-        with pytest.raises(RuntimeError, match=message):
-            optimize.bracket(f, -0.5, 0.5, maxiter=10)
-
-    @pytest.mark.parametrize('method', ('brent', 'golden'))
-    def test_minimize_scalar_success_false(self, method):
-        # Check that status information from `bracket` gets to minimize_scalar
-        def f(x):  # gh-14858
-            return x**2 if ((-1 < x) & (x < 1)) else 100.0
-
-        message = "The algorithm terminated without finding a valid bracket."
-
-        res = optimize.minimize_scalar(f, bracket=(-1, 1), method=method)
-        assert not res.success
-        assert message in res.message
-        assert res.nfev == 3
-        assert res.nit == 0
-        assert res.fun == 100
-
-
-def test_brent_negative_tolerance():
-    assert_raises(ValueError, optimize.brent, np.cos, tol=-.01)
-
-
-class TestNewtonCg:
-    def test_rosenbrock(self):
-        x0 = np.array([-1.2, 1.0])
-        sol = optimize.minimize(optimize.rosen, x0,
-                                jac=optimize.rosen_der,
-                                hess=optimize.rosen_hess,
-                                tol=1e-5,
-                                method='Newton-CG')
-        assert sol.success, sol.message
-        assert_allclose(sol.x, np.array([1, 1]), rtol=1e-4)
-
-    def test_himmelblau(self):
-        x0 = np.array(himmelblau_x0)
-        sol = optimize.minimize(himmelblau,
-                                x0,
-                                jac=himmelblau_grad,
-                                hess=himmelblau_hess,
-                                method='Newton-CG',
-                                tol=1e-6)
-        assert sol.success, sol.message
-        assert_allclose(sol.x, himmelblau_xopt, rtol=1e-4)
-        assert_allclose(sol.fun, himmelblau_min, atol=1e-4)
-
-    def test_finite_difference(self):
-        x0 = np.array([-1.2, 1.0])
-        sol = optimize.minimize(optimize.rosen, x0,
-                                jac=optimize.rosen_der,
-                                hess='2-point',
-                                tol=1e-5,
-                                method='Newton-CG')
-        assert sol.success, sol.message
-        assert_allclose(sol.x, np.array([1, 1]), rtol=1e-4)
-
-    def test_hessian_update_strategy(self):
-        x0 = np.array([-1.2, 1.0])
-        sol = optimize.minimize(optimize.rosen, x0,
-                                jac=optimize.rosen_der,
-                                hess=optimize.BFGS(),
-                                tol=1e-5,
-                                method='Newton-CG')
-        assert sol.success, sol.message
-        assert_allclose(sol.x, np.array([1, 1]), rtol=1e-4)
-
-
-def test_line_for_search():
-    # _line_for_search is only used in _linesearch_powell, which is also
-    # tested below. Thus there are more tests of _line_for_search in the
-    # test_linesearch_powell_bounded function.
-
-    line_for_search = optimize._optimize._line_for_search
-    # args are x0, alpha, lower_bound, upper_bound
-    # returns lmin, lmax
-
-    lower_bound = np.array([-5.3, -1, -1.5, -3])
-    upper_bound = np.array([1.9, 1, 2.8, 3])
-
-    # test when starting in the bounds
-    x0 = np.array([0., 0, 0, 0])
-    # and when starting outside of the bounds
-    x1 = np.array([0., 2, -3, 0])
-
-    all_tests = (
-        (x0, np.array([1., 0, 0, 0]), -5.3, 1.9),
-        (x0, np.array([0., 1, 0, 0]), -1, 1),
-        (x0, np.array([0., 0, 1, 0]), -1.5, 2.8),
-        (x0, np.array([0., 0, 0, 1]), -3, 3),
-        (x0, np.array([1., 1, 0, 0]), -1, 1),
-        (x0, np.array([1., 0, -1, 2]), -1.5, 1.5),
-        (x0, np.array([2., 0, -1, 2]), -1.5, 0.95),
-        (x1, np.array([1., 0, 0, 0]), -5.3, 1.9),
-        (x1, np.array([0., 1, 0, 0]), -3, -1),
-        (x1, np.array([0., 0, 1, 0]), 1.5, 5.8),
-        (x1, np.array([0., 0, 0, 1]), -3, 3),
-        (x1, np.array([1., 1, 0, 0]), -3, -1),
-        (x1, np.array([1., 0, -1, 0]), -5.3, -1.5),
-    )
-
-    for x, alpha, lmin, lmax in all_tests:
-        mi, ma = line_for_search(x, alpha, lower_bound, upper_bound)
-        assert_allclose(mi, lmin, atol=1e-6)
-        assert_allclose(ma, lmax, atol=1e-6)
-
-    # now with infinite bounds
-    lower_bound = np.array([-np.inf, -1, -np.inf, -3])
-    upper_bound = np.array([np.inf, 1, 2.8, np.inf])
-
-    all_tests = (
-        (x0, np.array([1., 0, 0, 0]), -np.inf, np.inf),
-        (x0, np.array([0., 1, 0, 0]), -1, 1),
-        (x0, np.array([0., 0, 1, 0]), -np.inf, 2.8),
-        (x0, np.array([0., 0, 0, 1]), -3, np.inf),
-        (x0, np.array([1., 1, 0, 0]), -1, 1),
-        (x0, np.array([1., 0, -1, 2]), -1.5, np.inf),
-        (x1, np.array([1., 0, 0, 0]), -np.inf, np.inf),
-        (x1, np.array([0., 1, 0, 0]), -3, -1),
-        (x1, np.array([0., 0, 1, 0]), -np.inf, 5.8),
-        (x1, np.array([0., 0, 0, 1]), -3, np.inf),
-        (x1, np.array([1., 1, 0, 0]), -3, -1),
-        (x1, np.array([1., 0, -1, 0]), -5.8, np.inf),
-    )
-
-    for x, alpha, lmin, lmax in all_tests:
-        mi, ma = line_for_search(x, alpha, lower_bound, upper_bound)
-        assert_allclose(mi, lmin, atol=1e-6)
-        assert_allclose(ma, lmax, atol=1e-6)
-
-
-def test_linesearch_powell():
-    # helper function in optimize.py, not a public function.
-    linesearch_powell = optimize._optimize._linesearch_powell
-    # args are func, p, xi, fval, lower_bound=None, upper_bound=None, tol=1e-3
-    # returns new_fval, p + direction, direction
-    def func(x):
-        return np.sum((x - np.array([-1.0, 2.0, 1.5, -0.4])) ** 2)
-    p0 = np.array([0., 0, 0, 0])
-    fval = func(p0)
-    lower_bound = np.array([-np.inf] * 4)
-    upper_bound = np.array([np.inf] * 4)
-
-    all_tests = (
-        (np.array([1., 0, 0, 0]), -1),
-        (np.array([0., 1, 0, 0]), 2),
-        (np.array([0., 0, 1, 0]), 1.5),
-        (np.array([0., 0, 0, 1]), -.4),
-        (np.array([-1., 0, 1, 0]), 1.25),
-        (np.array([0., 0, 1, 1]), .55),
-        (np.array([2., 0, -1, 1]), -.65),
-    )
-
-    for xi, l in all_tests:
-        f, p, direction = linesearch_powell(func, p0, xi,
-                                            fval=fval, tol=1e-5)
-        assert_allclose(f, func(l * xi), atol=1e-6)
-        assert_allclose(p, l * xi, atol=1e-6)
-        assert_allclose(direction, l * xi, atol=1e-6)
-
-        f, p, direction = linesearch_powell(func, p0, xi, tol=1e-5,
-                                            lower_bound=lower_bound,
-                                            upper_bound=upper_bound,
-                                            fval=fval)
-        assert_allclose(f, func(l * xi), atol=1e-6)
-        assert_allclose(p, l * xi, atol=1e-6)
-        assert_allclose(direction, l * xi, atol=1e-6)
-
-
-def test_linesearch_powell_bounded():
-    # helper function in optimize.py, not a public function.
-    linesearch_powell = optimize._optimize._linesearch_powell
-    # args are func, p, xi, fval, lower_bound=None, upper_bound=None, tol=1e-3
-    # returns new_fval, p+direction, direction
-    def func(x):
-        return np.sum((x - np.array([-1.0, 2.0, 1.5, -0.4])) ** 2)
-    p0 = np.array([0., 0, 0, 0])
-    fval = func(p0)
-
-    # first choose bounds such that the same tests from
-    # test_linesearch_powell should pass.
-    lower_bound = np.array([-2.]*4)
-    upper_bound = np.array([2.]*4)
-
-    all_tests = (
-        (np.array([1., 0, 0, 0]), -1),
-        (np.array([0., 1, 0, 0]), 2),
-        (np.array([0., 0, 1, 0]), 1.5),
-        (np.array([0., 0, 0, 1]), -.4),
-        (np.array([-1., 0, 1, 0]), 1.25),
-        (np.array([0., 0, 1, 1]), .55),
-        (np.array([2., 0, -1, 1]), -.65),
-    )
-
-    for xi, l in all_tests:
-        f, p, direction = linesearch_powell(func, p0, xi, tol=1e-5,
-                                            lower_bound=lower_bound,
-                                            upper_bound=upper_bound,
-                                            fval=fval)
-        assert_allclose(f, func(l * xi), atol=1e-6)
-        assert_allclose(p, l * xi, atol=1e-6)
-        assert_allclose(direction, l * xi, atol=1e-6)
-
-    # now choose bounds such that unbounded vs bounded gives different results
-    lower_bound = np.array([-.3]*3 + [-1])
-    upper_bound = np.array([.45]*3 + [.9])
-
-    all_tests = (
-        (np.array([1., 0, 0, 0]), -.3),
-        (np.array([0., 1, 0, 0]), .45),
-        (np.array([0., 0, 1, 0]), .45),
-        (np.array([0., 0, 0, 1]), -.4),
-        (np.array([-1., 0, 1, 0]), .3),
-        (np.array([0., 0, 1, 1]), .45),
-        (np.array([2., 0, -1, 1]), -.15),
-    )
-
-    for xi, l in all_tests:
-        f, p, direction = linesearch_powell(func, p0, xi, tol=1e-5,
-                                            lower_bound=lower_bound,
-                                            upper_bound=upper_bound,
-                                            fval=fval)
-        assert_allclose(f, func(l * xi), atol=1e-6)
-        assert_allclose(p, l * xi, atol=1e-6)
-        assert_allclose(direction, l * xi, atol=1e-6)
-
-    # now choose as above but start outside the bounds
-    p0 = np.array([-1., 0, 0, 2])
-    fval = func(p0)
-
-    all_tests = (
-        (np.array([1., 0, 0, 0]), .7),
-        (np.array([0., 1, 0, 0]), .45),
-        (np.array([0., 0, 1, 0]), .45),
-        (np.array([0., 0, 0, 1]), -2.4),
-    )
-
-    for xi, l in all_tests:
-        f, p, direction = linesearch_powell(func, p0, xi, tol=1e-5,
-                                            lower_bound=lower_bound,
-                                            upper_bound=upper_bound,
-                                            fval=fval)
-        assert_allclose(f, func(p0 + l * xi), atol=1e-6)
-        assert_allclose(p, p0 + l * xi, atol=1e-6)
-        assert_allclose(direction, l * xi, atol=1e-6)
-
-    # now mix in inf
-    p0 = np.array([0., 0, 0, 0])
-    fval = func(p0)
-
-    # now choose bounds that mix inf
-    lower_bound = np.array([-.3, -np.inf, -np.inf, -1])
-    upper_bound = np.array([np.inf, .45, np.inf, .9])
-
-    all_tests = (
-        (np.array([1., 0, 0, 0]), -.3),
-        (np.array([0., 1, 0, 0]), .45),
-        (np.array([0., 0, 1, 0]), 1.5),
-        (np.array([0., 0, 0, 1]), -.4),
-        (np.array([-1., 0, 1, 0]), .3),
-        (np.array([0., 0, 1, 1]), .55),
-        (np.array([2., 0, -1, 1]), -.15),
-    )
-
-    for xi, l in all_tests:
-        f, p, direction = linesearch_powell(func, p0, xi, tol=1e-5,
-                                            lower_bound=lower_bound,
-                                            upper_bound=upper_bound,
-                                            fval=fval)
-        assert_allclose(f, func(l * xi), atol=1e-6)
-        assert_allclose(p, l * xi, atol=1e-6)
-        assert_allclose(direction, l * xi, atol=1e-6)
-
-    # now choose as above but start outside the bounds
-    p0 = np.array([-1., 0, 0, 2])
-    fval = func(p0)
-
-    all_tests = (
-        (np.array([1., 0, 0, 0]), .7),
-        (np.array([0., 1, 0, 0]), .45),
-        (np.array([0., 0, 1, 0]), 1.5),
-        (np.array([0., 0, 0, 1]), -2.4),
-    )
-
-    for xi, l in all_tests:
-        f, p, direction = linesearch_powell(func, p0, xi, tol=1e-5,
-                                            lower_bound=lower_bound,
-                                            upper_bound=upper_bound,
-                                            fval=fval)
-        assert_allclose(f, func(p0 + l * xi), atol=1e-6)
-        assert_allclose(p, p0 + l * xi, atol=1e-6)
-        assert_allclose(direction, l * xi, atol=1e-6)
-
-
-def test_powell_limits():
-    # gh15342 - powell was going outside bounds for some function evaluations.
-    bounds = optimize.Bounds([0, 0], [0.6, 20])
-
-    def fun(x):
-        a, b = x
-        assert (x >= bounds.lb).all() and (x <= bounds.ub).all()
-        return a ** 2 + b ** 2
-
-    optimize.minimize(fun, x0=[0.6, 20], method='Powell', bounds=bounds)
-
-    # Another test from the original report - gh-13411
-    bounds = optimize.Bounds(lb=[0,], ub=[1,], keep_feasible=[True,])
-
-    def func(x):
-        assert x >= 0 and x <= 1
-        return np.exp(x)
-
-    optimize.minimize(fun=func, x0=[0.5], method='powell', bounds=bounds)
-
-
-class TestRosen:
-
-    def test_hess(self):
-        # Compare rosen_hess(x) times p with rosen_hess_prod(x,p). See gh-1775.
-        x = np.array([3, 4, 5])
-        p = np.array([2, 2, 2])
-        hp = optimize.rosen_hess_prod(x, p)
-        dothp = np.dot(optimize.rosen_hess(x), p)
-        assert_equal(hp, dothp)
-
-
-def himmelblau(p):
-    """
-    R^2 -> R^1 test function for optimization. The function has four local
-    minima where himmelblau(xopt) == 0.
-    """
-    x, y = p
-    a = x*x + y - 11
-    b = x + y*y - 7
-    return a*a + b*b
-
-
-def himmelblau_grad(p):
-    x, y = p
-    return np.array([4*x**3 + 4*x*y - 42*x + 2*y**2 - 14,
-                     2*x**2 + 4*x*y + 4*y**3 - 26*y - 22])
-
-
-def himmelblau_hess(p):
-    x, y = p
-    return np.array([[12*x**2 + 4*y - 42, 4*x + 4*y],
-                     [4*x + 4*y, 4*x + 12*y**2 - 26]])
-
-
-himmelblau_x0 = [-0.27, -0.9]
-himmelblau_xopt = [3, 2]
-himmelblau_min = 0.0
-
-
-def test_minimize_multiple_constraints():
-    # Regression test for gh-4240.
-    def func(x):
-        return np.array([25 - 0.2 * x[0] - 0.4 * x[1] - 0.33 * x[2]])
-
-    def func1(x):
-        return np.array([x[1]])
-
-    def func2(x):
-        return np.array([x[2]])
-
-    cons = ({'type': 'ineq', 'fun': func},
-            {'type': 'ineq', 'fun': func1},
-            {'type': 'ineq', 'fun': func2})
-
-    def f(x):
-        return -1 * (x[0] + x[1] + x[2])
-
-    res = optimize.minimize(f, [0, 0, 0], method='SLSQP', constraints=cons)
-    assert_allclose(res.x, [125, 0, 0], atol=1e-10)
-
-
-class TestOptimizeResultAttributes:
-    # Test that all minimizers return an OptimizeResult containing
-    # all the OptimizeResult attributes
-    def setup_method(self):
-        self.x0 = [5, 5]
-        self.func = optimize.rosen
-        self.jac = optimize.rosen_der
-        self.hess = optimize.rosen_hess
-        self.hessp = optimize.rosen_hess_prod
-        self.bounds = [(0., 10.), (0., 10.)]
-
-    def test_attributes_present(self):
-        attributes = ['nit', 'nfev', 'x', 'success', 'status', 'fun',
-                      'message']
-        skip = {'cobyla': ['nit']}
-        for method in MINIMIZE_METHODS:
-            with suppress_warnings() as sup:
-                sup.filter(RuntimeWarning,
-                           ("Method .+ does not use (gradient|Hessian.*)"
-                            " information"))
-                res = optimize.minimize(self.func, self.x0, method=method,
-                                        jac=self.jac, hess=self.hess,
-                                        hessp=self.hessp)
-            for attribute in attributes:
-                if method in skip and attribute in skip[method]:
-                    continue
-
-                assert hasattr(res, attribute)
-                assert attribute in dir(res)
-
-            # gh13001, OptimizeResult.message should be a str
-            assert isinstance(res.message, str)
-
-
-def f1(z, *params):
-    x, y = z
-    a, b, c, d, e, f, g, h, i, j, k, l, scale = params
-    return (a * x**2 + b * x * y + c * y**2 + d*x + e*y + f)
-
-
-def f2(z, *params):
-    x, y = z
-    a, b, c, d, e, f, g, h, i, j, k, l, scale = params
-    return (-g*np.exp(-((x-h)**2 + (y-i)**2) / scale))
-
-
-def f3(z, *params):
-    x, y = z
-    a, b, c, d, e, f, g, h, i, j, k, l, scale = params
-    return (-j*np.exp(-((x-k)**2 + (y-l)**2) / scale))
-
-
-def brute_func(z, *params):
-    return f1(z, *params) + f2(z, *params) + f3(z, *params)
-
-
-class TestBrute:
-    # Test the "brute force" method
-    def setup_method(self):
-        self.params = (2, 3, 7, 8, 9, 10, 44, -1, 2, 26, 1, -2, 0.5)
-        self.rranges = (slice(-4, 4, 0.25), slice(-4, 4, 0.25))
-        self.solution = np.array([-1.05665192, 1.80834843])
-
-    def brute_func(self, z, *params):
-        # an instance method optimizing
-        return brute_func(z, *params)
-
-    def test_brute(self):
-        # test fmin
-        resbrute = optimize.brute(brute_func, self.rranges, args=self.params,
-                                  full_output=True, finish=optimize.fmin)
-        assert_allclose(resbrute[0], self.solution, atol=1e-3)
-        assert_allclose(resbrute[1], brute_func(self.solution, *self.params),
-                        atol=1e-3)
-
-        # test minimize
-        resbrute = optimize.brute(brute_func, self.rranges, args=self.params,
-                                  full_output=True,
-                                  finish=optimize.minimize)
-        assert_allclose(resbrute[0], self.solution, atol=1e-3)
-        assert_allclose(resbrute[1], brute_func(self.solution, *self.params),
-                        atol=1e-3)
-
-        # test that brute can optimize an instance method (the other tests use
-        # a non-class based function
-        resbrute = optimize.brute(self.brute_func, self.rranges,
-                                  args=self.params, full_output=True,
-                                  finish=optimize.minimize)
-        assert_allclose(resbrute[0], self.solution, atol=1e-3)
-
-    def test_1D(self):
-        # test that for a 1-D problem the test function is passed an array,
-        # not a scalar.
-        def f(x):
-            assert len(x.shape) == 1
-            assert x.shape[0] == 1
-            return x ** 2
-
-        optimize.brute(f, [(-1, 1)], Ns=3, finish=None)
-
-    @pytest.mark.fail_slow(5)
-    def test_workers(self):
-        # check that parallel evaluation works
-        resbrute = optimize.brute(brute_func, self.rranges, args=self.params,
-                                  full_output=True, finish=None)
-
-        resbrute1 = optimize.brute(brute_func, self.rranges, args=self.params,
-                                   full_output=True, finish=None, workers=2)
-
-        assert_allclose(resbrute1[-1], resbrute[-1])
-        assert_allclose(resbrute1[0], resbrute[0])
-
-    def test_runtime_warning(self, capsys):
-        rng = np.random.default_rng(1234)
-
-        def func(z, *params):
-            return rng.random(1) * 1000  # never converged problem
-
-        msg = "final optimization did not succeed.*|Maximum number of function eval.*"
-        with pytest.warns(RuntimeWarning, match=msg):
-            optimize.brute(func, self.rranges, args=self.params, disp=True)
-
-    def test_coerce_args_param(self):
-        # optimize.brute should coerce non-iterable args to a tuple.
-        def f(x, *args):
-            return x ** args[0]
-
-        resbrute = optimize.brute(f, (slice(-4, 4, .25),), args=2)
-        assert_allclose(resbrute, 0)
-
-
-@pytest.mark.fail_slow(10)
-def test_cobyla_threadsafe():
-
-    # Verify that cobyla is threadsafe. Will segfault if it is not.
-
-    import concurrent.futures
-    import time
-
-    def objective1(x):
-        time.sleep(0.1)
-        return x[0]**2
-
-    def objective2(x):
-        time.sleep(0.1)
-        return (x[0]-1)**2
-
-    min_method = "COBYLA"
-
-    def minimizer1():
-        return optimize.minimize(objective1,
-                                      [0.0],
-                                      method=min_method)
-
-    def minimizer2():
-        return optimize.minimize(objective2,
-                                      [0.0],
-                                      method=min_method)
-
-    with concurrent.futures.ThreadPoolExecutor() as pool:
-        tasks = []
-        tasks.append(pool.submit(minimizer1))
-        tasks.append(pool.submit(minimizer2))
-        for t in tasks:
-            t.result()
-
-
-class TestIterationLimits:
-    # Tests that optimisation does not give up before trying requested
-    # number of iterations or evaluations. And that it does not succeed
-    # by exceeding the limits.
-    def setup_method(self):
-        self.funcalls = 0
-
-    def slow_func(self, v):
-        self.funcalls += 1
-        r, t = np.sqrt(v[0]**2+v[1]**2), np.arctan2(v[0], v[1])
-        return np.sin(r*20 + t)+r*0.5
-
-    @pytest.mark.fail_slow(5)
-    def test_neldermead_limit(self):
-        self.check_limits("Nelder-Mead", 200)
-
-    def test_powell_limit(self):
-        self.check_limits("powell", 1000)
-
-    def check_limits(self, method, default_iters):
-        for start_v in [[0.1, 0.1], [1, 1], [2, 2]]:
-            for mfev in [50, 500, 5000]:
-                self.funcalls = 0
-                res = optimize.minimize(self.slow_func, start_v,
-                                        method=method,
-                                        options={"maxfev": mfev})
-                assert self.funcalls == res["nfev"]
-                if res["success"]:
-                    assert res["nfev"] < mfev
-                else:
-                    assert res["nfev"] >= mfev
-            for mit in [50, 500, 5000]:
-                res = optimize.minimize(self.slow_func, start_v,
-                                        method=method,
-                                        options={"maxiter": mit})
-                if res["success"]:
-                    assert res["nit"] <= mit
-                else:
-                    assert res["nit"] >= mit
-            for mfev, mit in [[50, 50], [5000, 5000], [5000, np.inf]]:
-                self.funcalls = 0
-                res = optimize.minimize(self.slow_func, start_v,
-                                        method=method,
-                                        options={"maxiter": mit,
-                                                 "maxfev": mfev})
-                assert self.funcalls == res["nfev"]
-                if res["success"]:
-                    assert res["nfev"] < mfev and res["nit"] <= mit
-                else:
-                    assert res["nfev"] >= mfev or res["nit"] >= mit
-            for mfev, mit in [[np.inf, None], [None, np.inf]]:
-                self.funcalls = 0
-                res = optimize.minimize(self.slow_func, start_v,
-                                        method=method,
-                                        options={"maxiter": mit,
-                                                 "maxfev": mfev})
-                assert self.funcalls == res["nfev"]
-                if res["success"]:
-                    if mfev is None:
-                        assert res["nfev"] < default_iters*2
-                    else:
-                        assert res["nit"] <= default_iters*2
-                else:
-                    assert (res["nfev"] >= default_iters*2
-                            or res["nit"] >= default_iters*2)
-
-
-def test_result_x_shape_when_len_x_is_one():
-    def fun(x):
-        return x * x
-
-    def jac(x):
-        return 2. * x
-
-    def hess(x):
-        return np.array([[2.]])
-
-    methods = ['Nelder-Mead', 'Powell', 'CG', 'BFGS', 'L-BFGS-B', 'TNC',
-               'COBYLA', 'COBYQA', 'SLSQP']
-    for method in methods:
-        res = optimize.minimize(fun, np.array([0.1]), method=method)
-        assert res.x.shape == (1,)
-
-    # use jac + hess
-    methods = ['trust-constr', 'dogleg', 'trust-ncg', 'trust-exact',
-               'trust-krylov', 'Newton-CG']
-    for method in methods:
-        res = optimize.minimize(fun, np.array([0.1]), method=method, jac=jac,
-                                hess=hess)
-        assert res.x.shape == (1,)
-
-
-class FunctionWithGradient:
-    def __init__(self):
-        self.number_of_calls = 0
-
-    def __call__(self, x):
-        self.number_of_calls += 1
-        return np.sum(x**2), 2 * x
-
-
-@pytest.fixture
-def function_with_gradient():
-    return FunctionWithGradient()
-
-
-def test_memoize_jac_function_before_gradient(function_with_gradient):
-    memoized_function = MemoizeJac(function_with_gradient)
-
-    x0 = np.array([1.0, 2.0])
-    assert_allclose(memoized_function(x0), 5.0)
-    assert function_with_gradient.number_of_calls == 1
-
-    assert_allclose(memoized_function.derivative(x0), 2 * x0)
-    assert function_with_gradient.number_of_calls == 1, \
-        "function is not recomputed " \
-        "if gradient is requested after function value"
-
-    assert_allclose(
-        memoized_function(2 * x0), 20.0,
-        err_msg="different input triggers new computation")
-    assert function_with_gradient.number_of_calls == 2, \
-        "different input triggers new computation"
-
-
-def test_memoize_jac_gradient_before_function(function_with_gradient):
-    memoized_function = MemoizeJac(function_with_gradient)
-
-    x0 = np.array([1.0, 2.0])
-    assert_allclose(memoized_function.derivative(x0), 2 * x0)
-    assert function_with_gradient.number_of_calls == 1
-
-    assert_allclose(memoized_function(x0), 5.0)
-    assert function_with_gradient.number_of_calls == 1, \
-        "function is not recomputed " \
-        "if function value is requested after gradient"
-
-    assert_allclose(
-        memoized_function.derivative(2 * x0), 4 * x0,
-        err_msg="different input triggers new computation")
-    assert function_with_gradient.number_of_calls == 2, \
-        "different input triggers new computation"
-
-
-def test_memoize_jac_with_bfgs(function_with_gradient):
-    """ Tests that using MemoizedJac in combination with ScalarFunction
-        and BFGS does not lead to repeated function evaluations.
-        Tests changes made in response to GH11868.
-    """
-    memoized_function = MemoizeJac(function_with_gradient)
-    jac = memoized_function.derivative
-    hess = optimize.BFGS()
-
-    x0 = np.array([1.0, 0.5])
-    scalar_function = ScalarFunction(
-        memoized_function, x0, (), jac, hess, None, None)
-    assert function_with_gradient.number_of_calls == 1
-
-    scalar_function.fun(x0 + 0.1)
-    assert function_with_gradient.number_of_calls == 2
-
-    scalar_function.fun(x0 + 0.2)
-    assert function_with_gradient.number_of_calls == 3
-
-
-def test_gh12696():
-    # Test that optimize doesn't throw warning gh-12696
-    with assert_no_warnings():
-        optimize.fminbound(
-            lambda x: np.array([x**2]), -np.pi, np.pi, disp=False)
-
-
-# --- Test minimize with equal upper and lower bounds --- #
-
-def setup_test_equal_bounds():
-
-    np.random.seed(0)
-    x0 = np.random.rand(4)
-    lb = np.array([0, 2, -1, -1.0])
-    ub = np.array([3, 2, 2, -1.0])
-    i_eb = (lb == ub)
-
-    def check_x(x, check_size=True, check_values=True):
-        if check_size:
-            assert x.size == 4
-        if check_values:
-            assert_allclose(x[i_eb], lb[i_eb])
-
-    def func(x):
-        check_x(x)
-        return optimize.rosen(x)
-
-    def grad(x):
-        check_x(x)
-        return optimize.rosen_der(x)
-
-    def callback(x, *args):
-        check_x(x)
-
-    def constraint1(x):
-        check_x(x, check_values=False)
-        return x[0:1] - 1
-
-    def jacobian1(x):
-        check_x(x, check_values=False)
-        dc = np.zeros_like(x)
-        dc[0] = 1
-        return dc
-
-    def constraint2(x):
-        check_x(x, check_values=False)
-        return x[2:3] - 0.5
-
-    def jacobian2(x):
-        check_x(x, check_values=False)
-        dc = np.zeros_like(x)
-        dc[2] = 1
-        return dc
-
-    c1a = NonlinearConstraint(constraint1, -np.inf, 0)
-    c1b = NonlinearConstraint(constraint1, -np.inf, 0, jacobian1)
-    c2a = NonlinearConstraint(constraint2, -np.inf, 0)
-    c2b = NonlinearConstraint(constraint2, -np.inf, 0, jacobian2)
-
-    # test using the three methods that accept bounds, use derivatives, and
-    # have some trouble when bounds fix variables
-    methods = ('L-BFGS-B', 'SLSQP', 'TNC')
-
-    # test w/out gradient, w/ gradient, and w/ combined objective/gradient
-    kwds = ({"fun": func, "jac": False},
-            {"fun": func, "jac": grad},
-            {"fun": (lambda x: (func(x), grad(x))),
-             "jac": True})
-
-    # test with both old- and new-style bounds
-    bound_types = (lambda lb, ub: list(zip(lb, ub)),
-                   Bounds)
-
-    # Test for many combinations of constraints w/ and w/out jacobian
-    # Pairs in format: (test constraints, reference constraints)
-    # (always use analytical jacobian in reference)
-    constraints = ((None, None), ([], []),
-                   (c1a, c1b), (c2b, c2b),
-                   ([c1b], [c1b]), ([c2a], [c2b]),
-                   ([c1a, c2a], [c1b, c2b]),
-                   ([c1a, c2b], [c1b, c2b]),
-                   ([c1b, c2b], [c1b, c2b]))
-
-    # test with and without callback function
-    callbacks = (None, callback)
-
-    data = {"methods": methods, "kwds": kwds, "bound_types": bound_types,
-            "constraints": constraints, "callbacks": callbacks,
-            "lb": lb, "ub": ub, "x0": x0, "i_eb": i_eb}
-
-    return data
-
-
-eb_data = setup_test_equal_bounds()
-
-
-# This test is about handling fixed variables, not the accuracy of the solvers
-@pytest.mark.xfail_on_32bit("Failures due to floating point issues, not logic")
-@pytest.mark.parametrize('method', eb_data["methods"])
-@pytest.mark.parametrize('kwds', eb_data["kwds"])
-@pytest.mark.parametrize('bound_type', eb_data["bound_types"])
-@pytest.mark.parametrize('constraints', eb_data["constraints"])
-@pytest.mark.parametrize('callback', eb_data["callbacks"])
-def test_equal_bounds(method, kwds, bound_type, constraints, callback):
-    """
-    Tests that minimizers still work if (bounds.lb == bounds.ub).any()
-    gh12502 - Divide by zero in Jacobian numerical differentiation when
-    equality bounds constraints are used
-    """
-    # GH-15051; slightly more skips than necessary; hopefully fixed by GH-14882
-    if (platform.machine() == 'aarch64' and method == "TNC"
-            and kwds["jac"] is False and callback is not None):
-        pytest.skip('Tolerance violation on aarch')
-
-    lb, ub = eb_data["lb"], eb_data["ub"]
-    x0, i_eb = eb_data["x0"], eb_data["i_eb"]
-
-    test_constraints, reference_constraints = constraints
-    if test_constraints and not method == 'SLSQP':
-        pytest.skip('Only SLSQP supports nonlinear constraints')
-    # reference constraints always have analytical jacobian
-    # if test constraints are not the same, we'll need finite differences
-    fd_needed = (test_constraints != reference_constraints)
-
-    bounds = bound_type(lb, ub)  # old- or new-style
-
-    kwds.update({"x0": x0, "method": method, "bounds": bounds,
-                 "constraints": test_constraints, "callback": callback})
-    res = optimize.minimize(**kwds)
-
-    expected = optimize.minimize(optimize.rosen, x0, method=method,
-                                 jac=optimize.rosen_der, bounds=bounds,
-                                 constraints=reference_constraints)
-
-    # compare the output of a solution with FD vs that of an analytic grad
-    assert res.success
-    assert_allclose(res.fun, expected.fun, rtol=1.5e-6)
-    assert_allclose(res.x, expected.x, rtol=5e-4)
-
-    if fd_needed or kwds['jac'] is False:
-        expected.jac[i_eb] = np.nan
-    assert res.jac.shape[0] == 4
-    assert_allclose(res.jac[i_eb], expected.jac[i_eb], rtol=1e-6)
-
-    if not (kwds['jac'] or test_constraints or isinstance(bounds, Bounds)):
-        # compare the output to an equivalent FD minimization that doesn't
-        # need factorization
-        def fun(x):
-            new_x = np.array([np.nan, 2, np.nan, -1])
-            new_x[[0, 2]] = x
-            return optimize.rosen(new_x)
-
-        fd_res = optimize.minimize(fun,
-                                   x0[[0, 2]],
-                                   method=method,
-                                   bounds=bounds[::2])
-        assert_allclose(res.fun, fd_res.fun)
-        # TODO this test should really be equivalent to factorized version
-        # above, down to res.nfev. However, testing found that when TNC is
-        # called with or without a callback the output is different. The two
-        # should be the same! This indicates that the TNC callback may be
-        # mutating something when it shouldn't.
-        assert_allclose(res.x[[0, 2]], fd_res.x, rtol=2e-6)
-
-
-@pytest.mark.parametrize('method', eb_data["methods"])
-def test_all_bounds_equal(method):
-    # this only tests methods that have parameters factored out when lb==ub
-    # it does not test other methods that work with bounds
-    def f(x, p1=1):
-        return np.linalg.norm(x) + p1
-
-    bounds = [(1, 1), (2, 2)]
-    x0 = (1.0, 3.0)
-    res = optimize.minimize(f, x0, bounds=bounds, method=method)
-    assert res.success
-    assert_allclose(res.fun, f([1.0, 2.0]))
-    assert res.nfev == 1
-    assert res.message == 'All independent variables were fixed by bounds.'
-
-    args = (2,)
-    res = optimize.minimize(f, x0, bounds=bounds, method=method, args=args)
-    assert res.success
-    assert_allclose(res.fun, f([1.0, 2.0], 2))
-
-    if method.upper() == 'SLSQP':
-        def con(x):
-            return np.sum(x)
-        nlc = NonlinearConstraint(con, -np.inf, 0.0)
-        res = optimize.minimize(
-            f, x0, bounds=bounds, method=method, constraints=[nlc]
-        )
-        assert res.success is False
-        assert_allclose(res.fun, f([1.0, 2.0]))
-        assert res.nfev == 1
-        message = "All independent variables were fixed by bounds, but"
-        assert res.message.startswith(message)
-
-        nlc = NonlinearConstraint(con, -np.inf, 4)
-        res = optimize.minimize(
-            f, x0, bounds=bounds, method=method, constraints=[nlc]
-        )
-        assert res.success is True
-        assert_allclose(res.fun, f([1.0, 2.0]))
-        assert res.nfev == 1
-        message = "All independent variables were fixed by bounds at values"
-        assert res.message.startswith(message)
-
-
-def test_eb_constraints():
-    # make sure constraint functions aren't overwritten when equal bounds
-    # are employed, and a parameter is factored out. GH14859
-    def f(x):
-        return x[0]**3 + x[1]**2 + x[2]*x[3]
-
-    def cfun(x):
-        return x[0] + x[1] + x[2] + x[3] - 40
-
-    constraints = [{'type': 'ineq', 'fun': cfun}]
-
-    bounds = [(0, 20)] * 4
-    bounds[1] = (5, 5)
-    optimize.minimize(
-        f,
-        x0=[1, 2, 3, 4],
-        method='SLSQP',
-        bounds=bounds,
-        constraints=constraints,
-    )
-    assert constraints[0]['fun'] == cfun
-
-
-def test_show_options():
-    solver_methods = {
-        'minimize': MINIMIZE_METHODS,
-        'minimize_scalar': MINIMIZE_SCALAR_METHODS,
-        'root': ROOT_METHODS,
-        'root_scalar': ROOT_SCALAR_METHODS,
-        'linprog': LINPROG_METHODS,
-        'quadratic_assignment': QUADRATIC_ASSIGNMENT_METHODS,
-    }
-    for solver, methods in solver_methods.items():
-        for method in methods:
-            # testing that `show_options` works without error
-            show_options(solver, method)
-
-    unknown_solver_method = {
-        'minimize': "ekki",  # unknown method
-        'maximize': "cg",  # unknown solver
-        'maximize_scalar': "ekki",  # unknown solver and method
-    }
-    for solver, method in unknown_solver_method.items():
-        # testing that `show_options` raises ValueError
-        assert_raises(ValueError, show_options, solver, method)
-
-
-def test_bounds_with_list():
-    # gh13501. Bounds created with lists weren't working for Powell.
-    bounds = optimize.Bounds(lb=[5., 5.], ub=[10., 10.])
-    optimize.minimize(
-        optimize.rosen, x0=np.array([9, 9]), method='Powell', bounds=bounds
-    )
-
-
-def test_x_overwritten_user_function():
-    # if the user overwrites the x-array in the user function it's likely
-    # that the minimizer stops working properly.
-    # gh13740
-    def fquad(x):
-        a = np.arange(np.size(x))
-        x -= a
-        x *= x
-        return np.sum(x)
-
-    def fquad_jac(x):
-        a = np.arange(np.size(x))
-        x *= 2
-        x -= 2 * a
-        return x
-
-    def fquad_hess(x):
-        return np.eye(np.size(x)) * 2.0
-
-    meth_jac = [
-        'newton-cg', 'dogleg', 'trust-ncg', 'trust-exact',
-        'trust-krylov', 'trust-constr'
-    ]
-    meth_hess = [
-        'dogleg', 'trust-ncg', 'trust-exact', 'trust-krylov', 'trust-constr'
-    ]
-
-    x0 = np.ones(5) * 1.5
-
-    for meth in MINIMIZE_METHODS:
-        jac = None
-        hess = None
-        if meth in meth_jac:
-            jac = fquad_jac
-        if meth in meth_hess:
-            hess = fquad_hess
-        res = optimize.minimize(fquad, x0, method=meth, jac=jac, hess=hess)
-        assert_allclose(res.x, np.arange(np.size(x0)), atol=2e-4)
-
-
-class TestGlobalOptimization:
-
-    def test_optimize_result_attributes(self):
-        def func(x):
-            return x ** 2
-
-        # Note that `brute` solver does not return `OptimizeResult`
-        results = [optimize.basinhopping(func, x0=1),
-                   optimize.differential_evolution(func, [(-4, 4)]),
-                   optimize.shgo(func, [(-4, 4)]),
-                   optimize.dual_annealing(func, [(-4, 4)]),
-                   optimize.direct(func, [(-4, 4)]),
-                   ]
-
-        for result in results:
-            assert isinstance(result, optimize.OptimizeResult)
-            assert hasattr(result, "x")
-            assert hasattr(result, "success")
-            assert hasattr(result, "message")
-            assert hasattr(result, "fun")
-            assert hasattr(result, "nfev")
-            assert hasattr(result, "nit")
-
-
-def test_approx_fprime():
-    # check that approx_fprime (serviced by approx_derivative) works for
-    # jac and hess
-    g = optimize.approx_fprime(himmelblau_x0, himmelblau)
-    assert_allclose(g, himmelblau_grad(himmelblau_x0), rtol=5e-6)
-
-    h = optimize.approx_fprime(himmelblau_x0, himmelblau_grad)
-    assert_allclose(h, himmelblau_hess(himmelblau_x0), rtol=5e-6)
-
-
-def test_gh12594():
-    # gh-12594 reported an error in `_linesearch_powell` and
-    # `_line_for_search` when `Bounds` was passed lists instead of arrays.
-    # Check that results are the same whether the inputs are lists or arrays.
-
-    def f(x):
-        return x[0]**2 + (x[1] - 1)**2
-
-    bounds = Bounds(lb=[-10, -10], ub=[10, 10])
-    res = optimize.minimize(f, x0=(0, 0), method='Powell', bounds=bounds)
-    bounds = Bounds(lb=np.array([-10, -10]), ub=np.array([10, 10]))
-    ref = optimize.minimize(f, x0=(0, 0), method='Powell', bounds=bounds)
-
-    assert_allclose(res.fun, ref.fun)
-    assert_allclose(res.x, ref.x)
-
-
-@pytest.mark.parametrize('method', ['Newton-CG', 'trust-constr'])
-@pytest.mark.parametrize('sparse_type', [coo_matrix, csc_matrix, csr_matrix,
-                                         coo_array, csr_array, csc_array])
-def test_sparse_hessian(method, sparse_type):
-    # gh-8792 reported an error for minimization with `newton_cg` when `hess`
-    # returns a sparse matrix. Check that results are the same whether `hess`
-    # returns a dense or sparse matrix for optimization methods that accept
-    # sparse Hessian matrices.
-
-    def sparse_rosen_hess(x):
-        return sparse_type(rosen_hess(x))
-
-    x0 = [2., 2.]
-
-    res_sparse = optimize.minimize(rosen, x0, method=method,
-                                   jac=rosen_der, hess=sparse_rosen_hess)
-    res_dense = optimize.minimize(rosen, x0, method=method,
-                                  jac=rosen_der, hess=rosen_hess)
-
-    assert_allclose(res_dense.fun, res_sparse.fun)
-    assert_allclose(res_dense.x, res_sparse.x)
-    assert res_dense.nfev == res_sparse.nfev
-    assert res_dense.njev == res_sparse.njev
-    assert res_dense.nhev == res_sparse.nhev
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_quadratic_assignment.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_quadratic_assignment.py
deleted file mode 100644
index 6f476be1604a21573b15b5dedfa3ceb47974e2d8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_quadratic_assignment.py
+++ /dev/null
@@ -1,431 +0,0 @@
-import pytest
-import numpy as np
-from scipy.optimize import quadratic_assignment, OptimizeWarning
-from scipy.optimize._qap import _calc_score as _score
-from numpy.testing import assert_equal, assert_, assert_warns
-
-
-################
-# Common Tests #
-################
-
-def chr12c():
-    A = [
-        [0, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0],
-        [90, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0],
-        [10, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0],
-        [0, 23, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0],
-        [0, 0, 43, 0, 0, 0, 26, 0, 0, 0, 0, 0],
-        [0, 0, 0, 88, 0, 0, 0, 16, 0, 0, 0, 0],
-        [0, 0, 0, 0, 26, 0, 0, 0, 1, 0, 0, 0],
-        [0, 0, 0, 0, 0, 16, 0, 0, 0, 96, 0, 0],
-        [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 29, 0],
-        [0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 37],
-        [0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0],
-        [0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0],
-    ]
-    B = [
-        [0, 36, 54, 26, 59, 72, 9, 34, 79, 17, 46, 95],
-        [36, 0, 73, 35, 90, 58, 30, 78, 35, 44, 79, 36],
-        [54, 73, 0, 21, 10, 97, 58, 66, 69, 61, 54, 63],
-        [26, 35, 21, 0, 93, 12, 46, 40, 37, 48, 68, 85],
-        [59, 90, 10, 93, 0, 64, 5, 29, 76, 16, 5, 76],
-        [72, 58, 97, 12, 64, 0, 96, 55, 38, 54, 0, 34],
-        [9, 30, 58, 46, 5, 96, 0, 83, 35, 11, 56, 37],
-        [34, 78, 66, 40, 29, 55, 83, 0, 44, 12, 15, 80],
-        [79, 35, 69, 37, 76, 38, 35, 44, 0, 64, 39, 33],
-        [17, 44, 61, 48, 16, 54, 11, 12, 64, 0, 70, 86],
-        [46, 79, 54, 68, 5, 0, 56, 15, 39, 70, 0, 18],
-        [95, 36, 63, 85, 76, 34, 37, 80, 33, 86, 18, 0],
-    ]
-    A, B = np.array(A), np.array(B)
-    n = A.shape[0]
-
-    opt_perm = np.array([7, 5, 1, 3, 10, 4, 8, 6, 9, 11, 2, 12]) - [1] * n
-
-    return A, B, opt_perm
-
-
-class QAPCommonTests:
-    """
-    Base class for `quadratic_assignment` tests.
-    """
-    def setup_method(self):
-        np.random.seed(0)
-
-    # Test global optima of problem from Umeyama IVB
-    # https://pcl.sitehost.iu.edu/rgoldsto/papers/weighted%20graph%20match2.pdf
-    # Graph matching maximum is in the paper
-    # QAP minimum determined by brute force
-    def test_accuracy_1(self):
-        # besides testing accuracy, check that A and B can be lists
-        A = [[0, 3, 4, 2],
-             [0, 0, 1, 2],
-             [1, 0, 0, 1],
-             [0, 0, 1, 0]]
-
-        B = [[0, 4, 2, 4],
-             [0, 0, 1, 0],
-             [0, 2, 0, 2],
-             [0, 1, 2, 0]]
-
-        res = quadratic_assignment(A, B, method=self.method,
-                                   options={"rng": 0, "maximize": False})
-        assert_equal(res.fun, 10)
-        assert_equal(res.col_ind, np.array([1, 2, 3, 0]))
-
-        res = quadratic_assignment(A, B, method=self.method,
-                                   options={"rng": 0, "maximize": True})
-
-        if self.method == 'faq':
-            # Global optimum is 40, but FAQ gets 37
-            assert_equal(res.fun, 37)
-            assert_equal(res.col_ind, np.array([0, 2, 3, 1]))
-        else:
-            assert_equal(res.fun, 40)
-            assert_equal(res.col_ind, np.array([0, 3, 1, 2]))
-
-        res = quadratic_assignment(A, B, method=self.method,
-                                   options={"rng": 0, "maximize": True})
-
-    # Test global optima of problem from Umeyama IIIB
-    # https://pcl.sitehost.iu.edu/rgoldsto/papers/weighted%20graph%20match2.pdf
-    # Graph matching maximum is in the paper
-    # QAP minimum determined by brute force
-    def test_accuracy_2(self):
-
-        A = np.array([[0, 5, 8, 6],
-                      [5, 0, 5, 1],
-                      [8, 5, 0, 2],
-                      [6, 1, 2, 0]])
-
-        B = np.array([[0, 1, 8, 4],
-                      [1, 0, 5, 2],
-                      [8, 5, 0, 5],
-                      [4, 2, 5, 0]])
-
-        res = quadratic_assignment(A, B, method=self.method,
-                                   options={"rng": 0, "maximize": False})
-        if self.method == 'faq':
-            # Global optimum is 176, but FAQ gets 178
-            assert_equal(res.fun, 178)
-            assert_equal(res.col_ind, np.array([1, 0, 3, 2]))
-        else:
-            assert_equal(res.fun, 176)
-            assert_equal(res.col_ind, np.array([1, 2, 3, 0]))
-
-        res = quadratic_assignment(A, B, method=self.method,
-                                   options={"rng": 0, "maximize": True})
-        assert_equal(res.fun, 286)
-        assert_equal(res.col_ind, np.array([2, 3, 0, 1]))
-
-    def test_accuracy_3(self):
-
-        A, B, opt_perm = chr12c()
-
-        # basic minimization
-        res = quadratic_assignment(A, B, method=self.method,
-                                   options={"rng": 0})
-        assert_(11156 <= res.fun < 21000)
-        assert_equal(res.fun, _score(A, B, res.col_ind))
-
-        # basic maximization
-        res = quadratic_assignment(A, B, method=self.method,
-                                   options={"rng": 0, 'maximize': True})
-        assert_(74000 <= res.fun < 85000)
-        assert_equal(res.fun, _score(A, B, res.col_ind))
-
-        # check ofv with strictly partial match
-        seed_cost = np.array([4, 8, 10])
-        seed = np.asarray([seed_cost, opt_perm[seed_cost]]).T
-        res = quadratic_assignment(A, B, method=self.method,
-                                   options={'partial_match': seed})
-        assert_(11156 <= res.fun < 21000)
-        assert_equal(res.col_ind[seed_cost], opt_perm[seed_cost])
-
-        # check performance when partial match is the global optimum
-        seed = np.asarray([np.arange(len(A)), opt_perm]).T
-        res = quadratic_assignment(A, B, method=self.method,
-                                   options={'partial_match': seed})
-        assert_equal(res.col_ind, seed[:, 1].T)
-        assert_equal(res.fun, 11156)
-        assert_equal(res.nit, 0)
-
-        # check performance with zero sized matrix inputs
-        empty = np.empty((0, 0))
-        res = quadratic_assignment(empty, empty, method=self.method,
-                                   options={"rng": 0})
-        assert_equal(res.nit, 0)
-        assert_equal(res.fun, 0)
-
-    def test_unknown_options(self):
-        A, B, opt_perm = chr12c()
-
-        def f():
-            quadratic_assignment(A, B, method=self.method,
-                                 options={"ekki-ekki": True})
-        assert_warns(OptimizeWarning, f)
-
-
-class TestFAQ(QAPCommonTests):
-    method = "faq"
-
-    def test_options(self):
-        # cost and distance matrices of QAPLIB instance chr12c
-        A, B, opt_perm = chr12c()
-        n = len(A)
-
-        # check that max_iter is obeying with low input value
-        res = quadratic_assignment(A, B,
-                                   options={'maxiter': 5})
-        assert_equal(res.nit, 5)
-
-        # test with shuffle
-        res = quadratic_assignment(A, B,
-                                   options={'shuffle_input': True})
-        assert_(11156 <= res.fun < 21000)
-
-        # test with randomized init
-        res = quadratic_assignment(A, B,
-                                   options={'rng': 1, 'P0': "randomized"})
-        assert_(11156 <= res.fun < 21000)
-
-        # check with specified P0
-        K = np.ones((n, n)) / float(n)
-        K = _doubly_stochastic(K)
-        res = quadratic_assignment(A, B,
-                                   options={'P0': K})
-        assert_(11156 <= res.fun < 21000)
-
-    def test_specific_input_validation(self):
-
-        A = np.identity(2)
-        B = A
-
-        # method is implicitly faq
-
-        # ValueError Checks: making sure single value parameters are of
-        # correct value
-        with pytest.raises(ValueError, match="Invalid 'P0' parameter"):
-            quadratic_assignment(A, B, options={'P0': "random"})
-        with pytest.raises(
-                ValueError, match="'maxiter' must be a positive integer"):
-            quadratic_assignment(A, B, options={'maxiter': -1})
-        with pytest.raises(ValueError, match="'tol' must be a positive float"):
-            quadratic_assignment(A, B, options={'tol': -1})
-
-        # TypeError Checks: making sure single value parameters are of
-        # correct type
-        with pytest.raises(TypeError):
-            quadratic_assignment(A, B, options={'maxiter': 1.5})
-
-        # test P0 matrix input
-        with pytest.raises(
-                ValueError,
-                match="`P0` matrix must have shape m' x m', where m'=n-m"):
-            quadratic_assignment(
-                np.identity(4), np.identity(4),
-                options={'P0': np.ones((3, 3))}
-            )
-
-        K = [[0.4, 0.2, 0.3],
-             [0.3, 0.6, 0.2],
-             [0.2, 0.2, 0.7]]
-        # matrix that isn't quite doubly stochastic
-        with pytest.raises(
-                ValueError, match="`P0` matrix must be doubly stochastic"):
-            quadratic_assignment(
-                np.identity(3), np.identity(3), options={'P0': K}
-            )
-
-
-class Test2opt(QAPCommonTests):
-    method = "2opt"
-
-    def test_deterministic(self):
-        # np.random.seed(0) executes before every method
-        n = 20
-
-        A = np.random.rand(n, n)
-        B = np.random.rand(n, n)
-        res1 = quadratic_assignment(A, B, method=self.method)
-
-        np.random.seed(0)
-
-        A = np.random.rand(n, n)
-        B = np.random.rand(n, n)
-        res2 = quadratic_assignment(A, B, method=self.method)
-
-        assert_equal(res1.nit, res2.nit)
-
-    def test_partial_guess(self):
-        n = 5
-        A = np.random.rand(n, n)
-        B = np.random.rand(n, n)
-
-        res1 = quadratic_assignment(A, B, method=self.method,
-                                    options={'rng': 0})
-        guess = np.array([np.arange(5), res1.col_ind]).T
-        res2 = quadratic_assignment(A, B, method=self.method,
-                                    options={'rng': 0, 'partial_guess': guess})
-        fix = [2, 4]
-        match = np.array([np.arange(5)[fix], res1.col_ind[fix]]).T
-        res3 = quadratic_assignment(A, B, method=self.method,
-                                    options={'rng': 0, 'partial_guess': guess,
-                                             'partial_match': match})
-        assert_(res1.nit != n*(n+1)/2)
-        assert_equal(res2.nit, n*(n+1)/2)      # tests each swap exactly once
-        assert_equal(res3.nit, (n-2)*(n-1)/2)  # tests free swaps exactly once
-
-    def test_specific_input_validation(self):
-        # can't have more seed nodes than cost/dist nodes
-        _rm = _range_matrix
-        with pytest.raises(
-                ValueError,
-                match="`partial_guess` can have only as many entries as"):
-            quadratic_assignment(np.identity(3), np.identity(3),
-                                 method=self.method,
-                                 options={'partial_guess': _rm(5, 2)})
-        # test for only two seed columns
-        with pytest.raises(
-                ValueError, match="`partial_guess` must have two columns"):
-            quadratic_assignment(
-                np.identity(3), np.identity(3), method=self.method,
-                options={'partial_guess': _range_matrix(2, 3)}
-            )
-        # test that seed has no more than two dimensions
-        with pytest.raises(
-                ValueError, match="`partial_guess` must have exactly two"):
-            quadratic_assignment(
-                np.identity(3), np.identity(3), method=self.method,
-                options={'partial_guess': np.random.rand(3, 2, 2)}
-            )
-        # seeds cannot be negative valued
-        with pytest.raises(
-                ValueError, match="`partial_guess` must contain only pos"):
-            quadratic_assignment(
-                np.identity(3), np.identity(3), method=self.method,
-                options={'partial_guess': -1 * _range_matrix(2, 2)}
-            )
-        # seeds can't have values greater than number of nodes
-        with pytest.raises(
-                ValueError,
-                match="`partial_guess` entries must be less than number"):
-            quadratic_assignment(
-                np.identity(5), np.identity(5), method=self.method,
-                options={'partial_guess': 2 * _range_matrix(4, 2)}
-            )
-        # columns of seed matrix must be unique
-        with pytest.raises(
-                ValueError,
-                match="`partial_guess` column entries must be unique"):
-            quadratic_assignment(
-                np.identity(3), np.identity(3), method=self.method,
-                options={'partial_guess': np.ones((2, 2))}
-            )
-
-
-class TestQAPOnce:
-    def setup_method(self):
-        np.random.seed(0)
-
-    # these don't need to be repeated for each method
-    def test_common_input_validation(self):
-        # test that non square matrices return error
-        with pytest.raises(ValueError, match="`A` must be square"):
-            quadratic_assignment(
-                np.random.random((3, 4)),
-                np.random.random((3, 3)),
-            )
-        with pytest.raises(ValueError, match="`B` must be square"):
-            quadratic_assignment(
-                np.random.random((3, 3)),
-                np.random.random((3, 4)),
-            )
-        # test that cost and dist matrices have no more than two dimensions
-        with pytest.raises(
-                ValueError, match="`A` and `B` must have exactly two"):
-            quadratic_assignment(
-                np.random.random((3, 3, 3)),
-                np.random.random((3, 3, 3)),
-            )
-        # test that cost and dist matrices of different sizes return error
-        with pytest.raises(
-                ValueError,
-                match="`A` and `B` matrices must be of equal size"):
-            quadratic_assignment(
-                np.random.random((3, 3)),
-                np.random.random((4, 4)),
-            )
-        # can't have more seed nodes than cost/dist nodes
-        _rm = _range_matrix
-        with pytest.raises(
-                ValueError,
-                match="`partial_match` can have only as many seeds as"):
-            quadratic_assignment(np.identity(3), np.identity(3),
-                                 options={'partial_match': _rm(5, 2)})
-        # test for only two seed columns
-        with pytest.raises(
-                ValueError, match="`partial_match` must have two columns"):
-            quadratic_assignment(
-                np.identity(3), np.identity(3),
-                options={'partial_match': _range_matrix(2, 3)}
-            )
-        # test that seed has no more than two dimensions
-        with pytest.raises(
-                ValueError, match="`partial_match` must have exactly two"):
-            quadratic_assignment(
-                np.identity(3), np.identity(3),
-                options={'partial_match': np.random.rand(3, 2, 2)}
-            )
-        # seeds cannot be negative valued
-        with pytest.raises(
-                ValueError, match="`partial_match` must contain only pos"):
-            quadratic_assignment(
-                np.identity(3), np.identity(3),
-                options={'partial_match': -1 * _range_matrix(2, 2)}
-            )
-        # seeds can't have values greater than number of nodes
-        with pytest.raises(
-                ValueError,
-                match="`partial_match` entries must be less than number"):
-            quadratic_assignment(
-                np.identity(5), np.identity(5),
-                options={'partial_match': 2 * _range_matrix(4, 2)}
-            )
-        # columns of seed matrix must be unique
-        with pytest.raises(
-                ValueError,
-                match="`partial_match` column entries must be unique"):
-            quadratic_assignment(
-                np.identity(3), np.identity(3),
-                options={'partial_match': np.ones((2, 2))}
-            )
-
-
-def _range_matrix(a, b):
-    mat = np.zeros((a, b))
-    for i in range(b):
-        mat[:, i] = np.arange(a)
-    return mat
-
-
-def _doubly_stochastic(P, tol=1e-3):
-    # cleaner implementation of btaba/sinkhorn_knopp
-
-    max_iter = 1000
-    c = 1 / P.sum(axis=0)
-    r = 1 / (P @ c)
-    P_eps = P
-
-    for it in range(max_iter):
-        if ((np.abs(P_eps.sum(axis=1) - 1) < tol).all() and
-                (np.abs(P_eps.sum(axis=0) - 1) < tol).all()):
-            # All column/row sums ~= 1 within threshold
-            break
-
-        c = 1 / (r @ P)
-        r = 1 / (P @ c)
-        P_eps = r[:, None] * P * c
-
-    return P_eps
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_regression.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_regression.py
deleted file mode 100644
index 44916ba96293db19756b8222422e76945aa48ebb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_regression.py
+++ /dev/null
@@ -1,40 +0,0 @@
-"""Regression tests for optimize.
-
-"""
-import numpy as np
-from numpy.testing import assert_almost_equal
-from pytest import raises as assert_raises
-
-import scipy.optimize
-
-
-class TestRegression:
-
-    def test_newton_x0_is_0(self):
-        # Regression test for gh-1601
-        tgt = 1
-        res = scipy.optimize.newton(lambda x: x - 1, 0)
-        assert_almost_equal(res, tgt)
-
-    def test_newton_integers(self):
-        # Regression test for gh-1741
-        root = scipy.optimize.newton(lambda x: x**2 - 1, x0=2,
-                                    fprime=lambda x: 2*x)
-        assert_almost_equal(root, 1.0)
-
-    def test_lmdif_errmsg(self):
-        # This shouldn't cause a crash on Python 3
-        class SomeError(Exception):
-            pass
-        counter = [0]
-
-        def func(x):
-            counter[0] += 1
-            if counter[0] < 3:
-                return x**2 - np.array([9, 10, 11])
-            else:
-                raise SomeError()
-        assert_raises(SomeError,
-                      scipy.optimize.leastsq,
-                      func, [1, 2, 3])
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_slsqp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_slsqp.py
deleted file mode 100644
index cab46291b91e53a6b5f55cc0185741ca966ba514..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_slsqp.py
+++ /dev/null
@@ -1,608 +0,0 @@
-"""
-Unit test for SLSQP optimization.
-"""
-from numpy.testing import (assert_, assert_array_almost_equal,
-                           assert_allclose, assert_equal)
-from pytest import raises as assert_raises
-import pytest
-import numpy as np
-
-from scipy.optimize import fmin_slsqp, minimize, Bounds, NonlinearConstraint
-
-
-class MyCallBack:
-    """pass a custom callback function
-
-    This makes sure it's being used.
-    """
-    def __init__(self):
-        self.been_called = False
-        self.ncalls = 0
-
-    def __call__(self, x):
-        self.been_called = True
-        self.ncalls += 1
-
-
-class TestSLSQP:
-    """
-    Test SLSQP algorithm using Example 14.4 from Numerical Methods for
-    Engineers by Steven Chapra and Raymond Canale.
-    This example maximizes the function f(x) = 2*x*y + 2*x - x**2 - 2*y**2,
-    which has a maximum at x=2, y=1.
-    """
-    def setup_method(self):
-        self.opts = {'disp': False}
-
-    def fun(self, d, sign=1.0):
-        """
-        Arguments:
-        d     - A list of two elements, where d[0] represents x and d[1] represents y
-                 in the following equation.
-        sign - A multiplier for f. Since we want to optimize it, and the SciPy
-               optimizers can only minimize functions, we need to multiply it by
-               -1 to achieve the desired solution
-        Returns:
-        2*x*y + 2*x - x**2 - 2*y**2
-
-        """
-        x = d[0]
-        y = d[1]
-        return sign*(2*x*y + 2*x - x**2 - 2*y**2)
-
-    def jac(self, d, sign=1.0):
-        """
-        This is the derivative of fun, returning a NumPy array
-        representing df/dx and df/dy.
-
-        """
-        x = d[0]
-        y = d[1]
-        dfdx = sign*(-2*x + 2*y + 2)
-        dfdy = sign*(2*x - 4*y)
-        return np.array([dfdx, dfdy], float)
-
-    def fun_and_jac(self, d, sign=1.0):
-        return self.fun(d, sign), self.jac(d, sign)
-
-    def f_eqcon(self, x, sign=1.0):
-        """ Equality constraint """
-        return np.array([x[0] - x[1]])
-
-    def fprime_eqcon(self, x, sign=1.0):
-        """ Equality constraint, derivative """
-        return np.array([[1, -1]])
-
-    def f_eqcon_scalar(self, x, sign=1.0):
-        """ Scalar equality constraint """
-        return self.f_eqcon(x, sign)[0]
-
-    def fprime_eqcon_scalar(self, x, sign=1.0):
-        """ Scalar equality constraint, derivative """
-        return self.fprime_eqcon(x, sign)[0].tolist()
-
-    def f_ieqcon(self, x, sign=1.0):
-        """ Inequality constraint """
-        return np.array([x[0] - x[1] - 1.0])
-
-    def fprime_ieqcon(self, x, sign=1.0):
-        """ Inequality constraint, derivative """
-        return np.array([[1, -1]])
-
-    def f_ieqcon2(self, x):
-        """ Vector inequality constraint """
-        return np.asarray(x)
-
-    def fprime_ieqcon2(self, x):
-        """ Vector inequality constraint, derivative """
-        return np.identity(x.shape[0])
-
-    # minimize
-    def test_minimize_unbounded_approximated(self):
-        # Minimize, method='SLSQP': unbounded, approximated jacobian.
-        jacs = [None, False, '2-point', '3-point']
-        for jac in jacs:
-            res = minimize(self.fun, [-1.0, 1.0], args=(-1.0, ),
-                           jac=jac, method='SLSQP',
-                           options=self.opts)
-            assert_(res['success'], res['message'])
-            assert_allclose(res.x, [2, 1])
-
-    def test_minimize_unbounded_given(self):
-        # Minimize, method='SLSQP': unbounded, given Jacobian.
-        res = minimize(self.fun, [-1.0, 1.0], args=(-1.0, ),
-                       jac=self.jac, method='SLSQP', options=self.opts)
-        assert_(res['success'], res['message'])
-        assert_allclose(res.x, [2, 1])
-
-    def test_minimize_bounded_approximated(self):
-        # Minimize, method='SLSQP': bounded, approximated jacobian.
-        jacs = [None, False, '2-point', '3-point']
-        for jac in jacs:
-            with np.errstate(invalid='ignore'):
-                res = minimize(self.fun, [-1.0, 1.0], args=(-1.0, ),
-                               jac=jac,
-                               bounds=((2.5, None), (None, 0.5)),
-                               method='SLSQP', options=self.opts)
-            assert_(res['success'], res['message'])
-            assert_allclose(res.x, [2.5, 0.5])
-            assert_(2.5 <= res.x[0])
-            assert_(res.x[1] <= 0.5)
-
-    def test_minimize_unbounded_combined(self):
-        # Minimize, method='SLSQP': unbounded, combined function and Jacobian.
-        res = minimize(self.fun_and_jac, [-1.0, 1.0], args=(-1.0, ),
-                       jac=True, method='SLSQP', options=self.opts)
-        assert_(res['success'], res['message'])
-        assert_allclose(res.x, [2, 1])
-
-    def test_minimize_equality_approximated(self):
-        # Minimize with method='SLSQP': equality constraint, approx. jacobian.
-        jacs = [None, False, '2-point', '3-point']
-        for jac in jacs:
-            res = minimize(self.fun, [-1.0, 1.0], args=(-1.0, ),
-                           jac=jac,
-                           constraints={'type': 'eq',
-                                        'fun': self.f_eqcon,
-                                        'args': (-1.0, )},
-                           method='SLSQP', options=self.opts)
-            assert_(res['success'], res['message'])
-            assert_allclose(res.x, [1, 1])
-
-    def test_minimize_equality_given(self):
-        # Minimize with method='SLSQP': equality constraint, given Jacobian.
-        res = minimize(self.fun, [-1.0, 1.0], jac=self.jac,
-                       method='SLSQP', args=(-1.0,),
-                       constraints={'type': 'eq', 'fun':self.f_eqcon,
-                                    'args': (-1.0, )},
-                       options=self.opts)
-        assert_(res['success'], res['message'])
-        assert_allclose(res.x, [1, 1])
-
-    def test_minimize_equality_given2(self):
-        # Minimize with method='SLSQP': equality constraint, given Jacobian
-        # for fun and const.
-        res = minimize(self.fun, [-1.0, 1.0], method='SLSQP',
-                       jac=self.jac, args=(-1.0,),
-                       constraints={'type': 'eq',
-                                    'fun': self.f_eqcon,
-                                    'args': (-1.0, ),
-                                    'jac': self.fprime_eqcon},
-                       options=self.opts)
-        assert_(res['success'], res['message'])
-        assert_allclose(res.x, [1, 1])
-
-    def test_minimize_equality_given_cons_scalar(self):
-        # Minimize with method='SLSQP': scalar equality constraint, given
-        # Jacobian for fun and const.
-        res = minimize(self.fun, [-1.0, 1.0], method='SLSQP',
-                       jac=self.jac, args=(-1.0,),
-                       constraints={'type': 'eq',
-                                    'fun': self.f_eqcon_scalar,
-                                    'args': (-1.0, ),
-                                    'jac': self.fprime_eqcon_scalar},
-                       options=self.opts)
-        assert_(res['success'], res['message'])
-        assert_allclose(res.x, [1, 1])
-
-    def test_minimize_inequality_given(self):
-        # Minimize with method='SLSQP': inequality constraint, given Jacobian.
-        res = minimize(self.fun, [-1.0, 1.0], method='SLSQP',
-                       jac=self.jac, args=(-1.0, ),
-                       constraints={'type': 'ineq',
-                                    'fun': self.f_ieqcon,
-                                    'args': (-1.0, )},
-                       options=self.opts)
-        assert_(res['success'], res['message'])
-        assert_allclose(res.x, [2, 1], atol=1e-3)
-
-    def test_minimize_inequality_given_vector_constraints(self):
-        # Minimize with method='SLSQP': vector inequality constraint, given
-        # Jacobian.
-        res = minimize(self.fun, [-1.0, 1.0], jac=self.jac,
-                       method='SLSQP', args=(-1.0,),
-                       constraints={'type': 'ineq',
-                                    'fun': self.f_ieqcon2,
-                                    'jac': self.fprime_ieqcon2},
-                       options=self.opts)
-        assert_(res['success'], res['message'])
-        assert_allclose(res.x, [2, 1])
-
-    def test_minimize_bounded_constraint(self):
-        # when the constraint makes the solver go up against a parameter
-        # bound make sure that the numerical differentiation of the
-        # jacobian doesn't try to exceed that bound using a finite difference.
-        # gh11403
-        def c(x):
-            assert 0 <= x[0] <= 1 and 0 <= x[1] <= 1, x
-            return x[0] ** 0.5 + x[1]
-
-        def f(x):
-            assert 0 <= x[0] <= 1 and 0 <= x[1] <= 1, x
-            return -x[0] ** 2 + x[1] ** 2
-
-        cns = [NonlinearConstraint(c, 0, 1.5)]
-        x0 = np.asarray([0.9, 0.5])
-        bnd = Bounds([0., 0.], [1.0, 1.0])
-        minimize(f, x0, method='SLSQP', bounds=bnd, constraints=cns)
-
-    def test_minimize_bound_equality_given2(self):
-        # Minimize with method='SLSQP': bounds, eq. const., given jac. for
-        # fun. and const.
-        res = minimize(self.fun, [-1.0, 1.0], method='SLSQP',
-                       jac=self.jac, args=(-1.0, ),
-                       bounds=[(-0.8, 1.), (-1, 0.8)],
-                       constraints={'type': 'eq',
-                                    'fun': self.f_eqcon,
-                                    'args': (-1.0, ),
-                                    'jac': self.fprime_eqcon},
-                       options=self.opts)
-        assert_(res['success'], res['message'])
-        assert_allclose(res.x, [0.8, 0.8], atol=1e-3)
-        assert_(-0.8 <= res.x[0] <= 1)
-        assert_(-1 <= res.x[1] <= 0.8)
-
-    # fmin_slsqp
-    def test_unbounded_approximated(self):
-        # SLSQP: unbounded, approximated Jacobian.
-        res = fmin_slsqp(self.fun, [-1.0, 1.0], args=(-1.0, ),
-                         iprint = 0, full_output = 1)
-        x, fx, its, imode, smode = res
-        assert_(imode == 0, imode)
-        assert_array_almost_equal(x, [2, 1])
-
-    def test_unbounded_given(self):
-        # SLSQP: unbounded, given Jacobian.
-        res = fmin_slsqp(self.fun, [-1.0, 1.0], args=(-1.0, ),
-                         fprime = self.jac, iprint = 0,
-                         full_output = 1)
-        x, fx, its, imode, smode = res
-        assert_(imode == 0, imode)
-        assert_array_almost_equal(x, [2, 1])
-
-    def test_equality_approximated(self):
-        # SLSQP: equality constraint, approximated Jacobian.
-        res = fmin_slsqp(self.fun,[-1.0,1.0], args=(-1.0,),
-                         eqcons = [self.f_eqcon],
-                         iprint = 0, full_output = 1)
-        x, fx, its, imode, smode = res
-        assert_(imode == 0, imode)
-        assert_array_almost_equal(x, [1, 1])
-
-    def test_equality_given(self):
-        # SLSQP: equality constraint, given Jacobian.
-        res = fmin_slsqp(self.fun, [-1.0, 1.0],
-                         fprime=self.jac, args=(-1.0,),
-                         eqcons = [self.f_eqcon], iprint = 0,
-                         full_output = 1)
-        x, fx, its, imode, smode = res
-        assert_(imode == 0, imode)
-        assert_array_almost_equal(x, [1, 1])
-
-    def test_equality_given2(self):
-        # SLSQP: equality constraint, given Jacobian for fun and const.
-        res = fmin_slsqp(self.fun, [-1.0, 1.0],
-                         fprime=self.jac, args=(-1.0,),
-                         f_eqcons = self.f_eqcon,
-                         fprime_eqcons = self.fprime_eqcon,
-                         iprint = 0,
-                         full_output = 1)
-        x, fx, its, imode, smode = res
-        assert_(imode == 0, imode)
-        assert_array_almost_equal(x, [1, 1])
-
-    def test_inequality_given(self):
-        # SLSQP: inequality constraint, given Jacobian.
-        res = fmin_slsqp(self.fun, [-1.0, 1.0],
-                         fprime=self.jac, args=(-1.0, ),
-                         ieqcons = [self.f_ieqcon],
-                         iprint = 0, full_output = 1)
-        x, fx, its, imode, smode = res
-        assert_(imode == 0, imode)
-        assert_array_almost_equal(x, [2, 1], decimal=3)
-
-    def test_bound_equality_given2(self):
-        # SLSQP: bounds, eq. const., given jac. for fun. and const.
-        res = fmin_slsqp(self.fun, [-1.0, 1.0],
-                         fprime=self.jac, args=(-1.0, ),
-                         bounds = [(-0.8, 1.), (-1, 0.8)],
-                         f_eqcons = self.f_eqcon,
-                         fprime_eqcons = self.fprime_eqcon,
-                         iprint = 0, full_output = 1)
-        x, fx, its, imode, smode = res
-        assert_(imode == 0, imode)
-        assert_array_almost_equal(x, [0.8, 0.8], decimal=3)
-        assert_(-0.8 <= x[0] <= 1)
-        assert_(-1 <= x[1] <= 0.8)
-
-    def test_scalar_constraints(self):
-        # Regression test for gh-2182
-        x = fmin_slsqp(lambda z: z**2, [3.],
-                       ieqcons=[lambda z: z[0] - 1],
-                       iprint=0)
-        assert_array_almost_equal(x, [1.])
-
-        x = fmin_slsqp(lambda z: z**2, [3.],
-                       f_ieqcons=lambda z: [z[0] - 1],
-                       iprint=0)
-        assert_array_almost_equal(x, [1.])
-
-    def test_integer_bounds(self):
-        # This should not raise an exception
-        fmin_slsqp(lambda z: z**2 - 1, [0], bounds=[[0, 1]], iprint=0)
-
-    def test_array_bounds(self):
-        # NumPy used to treat n-dimensional 1-element arrays as scalars
-        # in some cases.  The handling of `bounds` by `fmin_slsqp` still
-        # supports this behavior.
-        bounds = [(-np.inf, np.inf), (np.array([2]), np.array([3]))]
-        x = fmin_slsqp(lambda z: np.sum(z**2 - 1), [2.5, 2.5], bounds=bounds,
-                       iprint=0)
-        assert_array_almost_equal(x, [0, 2])
-
-    def test_obj_must_return_scalar(self):
-        # Regression test for Github Issue #5433
-        # If objective function does not return a scalar, raises ValueError
-        with assert_raises(ValueError):
-            fmin_slsqp(lambda x: [0, 1], [1, 2, 3])
-
-    def test_obj_returns_scalar_in_list(self):
-        # Test for Github Issue #5433 and PR #6691
-        # Objective function should be able to return length-1 Python list
-        #  containing the scalar
-        fmin_slsqp(lambda x: [0], [1, 2, 3], iprint=0)
-
-    def test_callback(self):
-        # Minimize, method='SLSQP': unbounded, approximated jacobian. Check for callback
-        callback = MyCallBack()
-        res = minimize(self.fun, [-1.0, 1.0], args=(-1.0, ),
-                       method='SLSQP', callback=callback, options=self.opts)
-        assert_(res['success'], res['message'])
-        assert_(callback.been_called)
-        assert_equal(callback.ncalls, res['nit'])
-
-    def test_inconsistent_linearization(self):
-        # SLSQP must be able to solve this problem, even if the
-        # linearized problem at the starting point is infeasible.
-
-        # Linearized constraints are
-        #
-        #    2*x0[0]*x[0] >= 1
-        #
-        # At x0 = [0, 1], the second constraint is clearly infeasible.
-        # This triggers a call with n2==1 in the LSQ subroutine.
-        x = [0, 1]
-        def f1(x):
-            return x[0] + x[1] - 2
-        def f2(x):
-            return x[0] ** 2 - 1
-        sol = minimize(
-            lambda x: x[0]**2 + x[1]**2,
-            x,
-            constraints=({'type':'eq','fun': f1},
-                         {'type':'ineq','fun': f2}),
-            bounds=((0,None), (0,None)),
-            method='SLSQP')
-        x = sol.x
-
-        assert_allclose(f1(x), 0, atol=1e-8)
-        assert_(f2(x) >= -1e-8)
-        assert_(sol.success, sol)
-
-    def test_regression_5743(self):
-        # SLSQP must not indicate success for this problem,
-        # which is infeasible.
-        x = [1, 2]
-        sol = minimize(
-            lambda x: x[0]**2 + x[1]**2,
-            x,
-            constraints=({'type':'eq','fun': lambda x: x[0]+x[1]-1},
-                         {'type':'ineq','fun': lambda x: x[0]-2}),
-            bounds=((0,None), (0,None)),
-            method='SLSQP')
-        assert_(not sol.success, sol)
-
-    def test_gh_6676(self):
-        def func(x):
-            return (x[0] - 1)**2 + 2*(x[1] - 1)**2 + 0.5*(x[2] - 1)**2
-
-        sol = minimize(func, [0, 0, 0], method='SLSQP')
-        assert_(sol.jac.shape == (3,))
-
-    def test_invalid_bounds(self):
-        # Raise correct error when lower bound is greater than upper bound.
-        # See Github issue 6875.
-        bounds_list = [
-            ((1, 2), (2, 1)),
-            ((2, 1), (1, 2)),
-            ((2, 1), (2, 1)),
-            ((np.inf, 0), (np.inf, 0)),
-            ((1, -np.inf), (0, 1)),
-        ]
-        for bounds in bounds_list:
-            with assert_raises(ValueError):
-                minimize(self.fun, [-1.0, 1.0], bounds=bounds, method='SLSQP')
-
-    def test_bounds_clipping(self):
-        #
-        # SLSQP returns bogus results for initial guess out of bounds, gh-6859
-        #
-        def f(x):
-            return (x[0] - 1)**2
-
-        sol = minimize(f, [10], method='slsqp', bounds=[(None, 0)])
-        assert_(sol.success)
-        assert_allclose(sol.x, 0, atol=1e-10)
-
-        sol = minimize(f, [-10], method='slsqp', bounds=[(2, None)])
-        assert_(sol.success)
-        assert_allclose(sol.x, 2, atol=1e-10)
-
-        sol = minimize(f, [-10], method='slsqp', bounds=[(None, 0)])
-        assert_(sol.success)
-        assert_allclose(sol.x, 0, atol=1e-10)
-
-        sol = minimize(f, [10], method='slsqp', bounds=[(2, None)])
-        assert_(sol.success)
-        assert_allclose(sol.x, 2, atol=1e-10)
-
-        sol = minimize(f, [-0.5], method='slsqp', bounds=[(-1, 0)])
-        assert_(sol.success)
-        assert_allclose(sol.x, 0, atol=1e-10)
-
-        sol = minimize(f, [10], method='slsqp', bounds=[(-1, 0)])
-        assert_(sol.success)
-        assert_allclose(sol.x, 0, atol=1e-10)
-
-    def test_infeasible_initial(self):
-        # Check SLSQP behavior with infeasible initial point
-        def f(x):
-            x, = x
-            return x*x - 2*x + 1
-
-        cons_u = [{'type': 'ineq', 'fun': lambda x: 0 - x}]
-        cons_l = [{'type': 'ineq', 'fun': lambda x: x - 2}]
-        cons_ul = [{'type': 'ineq', 'fun': lambda x: 0 - x},
-                   {'type': 'ineq', 'fun': lambda x: x + 1}]
-
-        sol = minimize(f, [10], method='slsqp', constraints=cons_u)
-        assert_(sol.success)
-        assert_allclose(sol.x, 0, atol=1e-10)
-
-        sol = minimize(f, [-10], method='slsqp', constraints=cons_l)
-        assert_(sol.success)
-        assert_allclose(sol.x, 2, atol=1e-10)
-
-        sol = minimize(f, [-10], method='slsqp', constraints=cons_u)
-        assert_(sol.success)
-        assert_allclose(sol.x, 0, atol=1e-10)
-
-        sol = minimize(f, [10], method='slsqp', constraints=cons_l)
-        assert_(sol.success)
-        assert_allclose(sol.x, 2, atol=1e-10)
-
-        sol = minimize(f, [-0.5], method='slsqp', constraints=cons_ul)
-        assert_(sol.success)
-        assert_allclose(sol.x, 0, atol=1e-10)
-
-        sol = minimize(f, [10], method='slsqp', constraints=cons_ul)
-        assert_(sol.success)
-        assert_allclose(sol.x, 0, atol=1e-10)
-
-    def test_inconsistent_inequalities(self):
-        # gh-7618
-
-        def cost(x):
-            return -1 * x[0] + 4 * x[1]
-
-        def ineqcons1(x):
-            return x[1] - x[0] - 1
-
-        def ineqcons2(x):
-            return x[0] - x[1]
-
-        # The inequalities are inconsistent, so no solution can exist:
-        #
-        # x1 >= x0 + 1
-        # x0 >= x1
-
-        x0 = (1,5)
-        bounds = ((-5, 5), (-5, 5))
-        cons = (dict(type='ineq', fun=ineqcons1), dict(type='ineq', fun=ineqcons2))
-        res = minimize(cost, x0, method='SLSQP', bounds=bounds, constraints=cons)
-
-        assert_(not res.success)
-
-    def test_new_bounds_type(self):
-        def f(x):
-            return x[0] ** 2 + x[1] ** 2
-        bounds = Bounds([1, 0], [np.inf, np.inf])
-        sol = minimize(f, [0, 0], method='slsqp', bounds=bounds)
-        assert_(sol.success)
-        assert_allclose(sol.x, [1, 0])
-
-    def test_nested_minimization(self):
-
-        class NestedProblem:
-
-            def __init__(self):
-                self.F_outer_count = 0
-
-            def F_outer(self, x):
-                self.F_outer_count += 1
-                if self.F_outer_count > 1000:
-                    raise Exception("Nested minimization failed to terminate.")
-                inner_res = minimize(self.F_inner, (3, 4), method="SLSQP")
-                assert_(inner_res.success)
-                assert_allclose(inner_res.x, [1, 1])
-                return x[0]**2 + x[1]**2 + x[2]**2
-
-            def F_inner(self, x):
-                return (x[0] - 1)**2 + (x[1] - 1)**2
-
-            def solve(self):
-                outer_res = minimize(self.F_outer, (5, 5, 5), method="SLSQP")
-                assert_(outer_res.success)
-                assert_allclose(outer_res.x, [0, 0, 0])
-
-        problem = NestedProblem()
-        problem.solve()
-
-    def test_gh1758(self):
-        # the test suggested in gh1758
-        # https://nlopt.readthedocs.io/en/latest/NLopt_Tutorial/
-        # implement two equality constraints, in R^2.
-        def fun(x):
-            return np.sqrt(x[1])
-
-        def f_eqcon(x):
-            """ Equality constraint """
-            return x[1] - (2 * x[0]) ** 3
-
-        def f_eqcon2(x):
-            """ Equality constraint """
-            return x[1] - (-x[0] + 1) ** 3
-
-        c1 = {'type': 'eq', 'fun': f_eqcon}
-        c2 = {'type': 'eq', 'fun': f_eqcon2}
-
-        res = minimize(fun, [8, 0.25], method='SLSQP',
-                       constraints=[c1, c2], bounds=[(-0.5, 1), (0, 8)])
-
-        np.testing.assert_allclose(res.fun, 0.5443310539518)
-        np.testing.assert_allclose(res.x, [0.33333333, 0.2962963])
-        assert res.success
-
-    def test_gh9640(self):
-        np.random.seed(10)
-        cons = ({'type': 'ineq', 'fun': lambda x: -x[0] - x[1] - 3},
-                {'type': 'ineq', 'fun': lambda x: x[1] + x[2] - 2})
-        bnds = ((-2, 2), (-2, 2), (-2, 2))
-
-        def target(x):
-            return 1
-        x0 = [-1.8869783504471584, -0.640096352696244, -0.8174212253407696]
-        res = minimize(target, x0, method='SLSQP', bounds=bnds, constraints=cons,
-                       options={'disp':False, 'maxiter':10000})
-
-        # The problem is infeasible, so it cannot succeed
-        assert not res.success
-
-    def test_parameters_stay_within_bounds(self):
-        # gh11403. For some problems the SLSQP Fortran code suggests a step
-        # outside one of the lower/upper bounds. When this happens
-        # approx_derivative complains because it's being asked to evaluate
-        # a gradient outside its domain.
-        np.random.seed(1)
-        bounds = Bounds(np.array([0.1]), np.array([1.0]))
-        n_inputs = len(bounds.lb)
-        x0 = np.array(bounds.lb + (bounds.ub - bounds.lb) *
-                      np.random.random(n_inputs))
-
-        def f(x):
-            assert (x >= bounds.lb).all()
-            return np.linalg.norm(x)
-
-        with pytest.warns(RuntimeWarning, match='x were outside bounds'):
-            res = minimize(f, x0, method='SLSQP', bounds=bounds)
-            assert res.success
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_tnc.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_tnc.py
deleted file mode 100644
index 2cde9837bfd08e62916660a9750d833629b6b547..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_tnc.py
+++ /dev/null
@@ -1,345 +0,0 @@
-"""
-Unit tests for TNC optimization routine from tnc.py
-"""
-import pytest
-from numpy.testing import assert_allclose, assert_equal
-
-import numpy as np
-from math import pow
-
-from scipy import optimize
-
-
-class TestTnc:
-    """TNC non-linear optimization.
-
-    These tests are taken from Prof. K. Schittkowski's test examples
-    for constrained non-linear programming.
-
-    http://www.uni-bayreuth.de/departments/math/~kschittkowski/home.htm
-
-    """
-    def setup_method(self):
-        # options for minimize
-        self.opts = {'disp': False, 'maxfun': 200}
-
-    # objective functions and Jacobian for each test
-    def f1(self, x, a=100.0):
-        return a * pow((x[1] - pow(x[0], 2)), 2) + pow(1.0 - x[0], 2)
-
-    def g1(self, x, a=100.0):
-        dif = [0, 0]
-        dif[1] = 2 * a * (x[1] - pow(x[0], 2))
-        dif[0] = -2.0 * (x[0] * (dif[1] - 1.0) + 1.0)
-        return dif
-
-    def fg1(self, x, a=100.0):
-        return self.f1(x, a), self.g1(x, a)
-
-    def f3(self, x):
-        return x[1] + pow(x[1] - x[0], 2) * 1.0e-5
-
-    def g3(self, x):
-        dif = [0, 0]
-        dif[0] = -2.0 * (x[1] - x[0]) * 1.0e-5
-        dif[1] = 1.0 - dif[0]
-        return dif
-
-    def fg3(self, x):
-        return self.f3(x), self.g3(x)
-
-    def f4(self, x):
-        return pow(x[0] + 1.0, 3) / 3.0 + x[1]
-
-    def g4(self, x):
-        dif = [0, 0]
-        dif[0] = pow(x[0] + 1.0, 2)
-        dif[1] = 1.0
-        return dif
-
-    def fg4(self, x):
-        return self.f4(x), self.g4(x)
-
-    def f5(self, x):
-        return np.sin(x[0] + x[1]) + pow(x[0] - x[1], 2) - \
-                1.5 * x[0] + 2.5 * x[1] + 1.0
-
-    def g5(self, x):
-        dif = [0, 0]
-        v1 = np.cos(x[0] + x[1])
-        v2 = 2.0*(x[0] - x[1])
-
-        dif[0] = v1 + v2 - 1.5
-        dif[1] = v1 - v2 + 2.5
-        return dif
-
-    def fg5(self, x):
-        return self.f5(x), self.g5(x)
-
-    def f38(self, x):
-        return (100.0 * pow(x[1] - pow(x[0], 2), 2) +
-                pow(1.0 - x[0], 2) + 90.0 * pow(x[3] - pow(x[2], 2), 2) +
-                pow(1.0 - x[2], 2) + 10.1 * (pow(x[1] - 1.0, 2) +
-                                             pow(x[3] - 1.0, 2)) +
-                19.8 * (x[1] - 1.0) * (x[3] - 1.0)) * 1.0e-5
-
-    def g38(self, x):
-        dif = [0, 0, 0, 0]
-        dif[0] = (-400.0 * x[0] * (x[1] - pow(x[0], 2)) -
-                  2.0 * (1.0 - x[0])) * 1.0e-5
-        dif[1] = (200.0 * (x[1] - pow(x[0], 2)) + 20.2 * (x[1] - 1.0) +
-                  19.8 * (x[3] - 1.0)) * 1.0e-5
-        dif[2] = (- 360.0 * x[2] * (x[3] - pow(x[2], 2)) -
-                  2.0 * (1.0 - x[2])) * 1.0e-5
-        dif[3] = (180.0 * (x[3] - pow(x[2], 2)) + 20.2 * (x[3] - 1.0) +
-                  19.8 * (x[1] - 1.0)) * 1.0e-5
-        return dif
-
-    def fg38(self, x):
-        return self.f38(x), self.g38(x)
-
-    def f45(self, x):
-        return 2.0 - x[0] * x[1] * x[2] * x[3] * x[4] / 120.0
-
-    def g45(self, x):
-        dif = [0] * 5
-        dif[0] = - x[1] * x[2] * x[3] * x[4] / 120.0
-        dif[1] = - x[0] * x[2] * x[3] * x[4] / 120.0
-        dif[2] = - x[0] * x[1] * x[3] * x[4] / 120.0
-        dif[3] = - x[0] * x[1] * x[2] * x[4] / 120.0
-        dif[4] = - x[0] * x[1] * x[2] * x[3] / 120.0
-        return dif
-
-    def fg45(self, x):
-        return self.f45(x), self.g45(x)
-
-    # tests
-    # minimize with method=TNC
-    def test_minimize_tnc1(self):
-        x0, bnds = [-2, 1], ([-np.inf, None], [-1.5, None])
-        xopt = [1, 1]
-        iterx = []  # to test callback
-
-        res = optimize.minimize(self.f1, x0, method='TNC', jac=self.g1,
-                                bounds=bnds, options=self.opts,
-                                callback=iterx.append)
-        assert_allclose(res.fun, self.f1(xopt), atol=1e-8)
-        assert_equal(len(iterx), res.nit)
-
-    def test_minimize_tnc1b(self):
-        x0, bnds = np.array([-2, 1]), ([-np.inf, None], [-1.5, None])
-        xopt = [1, 1]
-        x = optimize.minimize(self.f1, x0, method='TNC',
-                              bounds=bnds, options=self.opts).x
-        assert_allclose(self.f1(x), self.f1(xopt), atol=1e-4)
-
-    def test_minimize_tnc1c(self):
-        x0, bnds = [-2, 1], ([-np.inf, None],[-1.5, None])
-        xopt = [1, 1]
-        x = optimize.minimize(self.fg1, x0, method='TNC',
-                              jac=True, bounds=bnds,
-                              options=self.opts).x
-        assert_allclose(self.f1(x), self.f1(xopt), atol=1e-8)
-
-    def test_minimize_tnc2(self):
-        x0, bnds = [-2, 1], ([-np.inf, None], [1.5, None])
-        xopt = [-1.2210262419616387, 1.5]
-        x = optimize.minimize(self.f1, x0, method='TNC',
-                              jac=self.g1, bounds=bnds,
-                              options=self.opts).x
-        assert_allclose(self.f1(x), self.f1(xopt), atol=1e-8)
-
-    def test_minimize_tnc3(self):
-        x0, bnds = [10, 1], ([-np.inf, None], [0.0, None])
-        xopt = [0, 0]
-        x = optimize.minimize(self.f3, x0, method='TNC',
-                              jac=self.g3, bounds=bnds,
-                              options=self.opts).x
-        assert_allclose(self.f3(x), self.f3(xopt), atol=1e-8)
-
-    def test_minimize_tnc4(self):
-        x0,bnds = [1.125, 0.125], [(1, None), (0, None)]
-        xopt = [1, 0]
-        x = optimize.minimize(self.f4, x0, method='TNC',
-                              jac=self.g4, bounds=bnds,
-                              options=self.opts).x
-        assert_allclose(self.f4(x), self.f4(xopt), atol=1e-8)
-
-    def test_minimize_tnc5(self):
-        x0, bnds = [0, 0], [(-1.5, 4),(-3, 3)]
-        xopt = [-0.54719755119659763, -1.5471975511965976]
-        x = optimize.minimize(self.f5, x0, method='TNC',
-                              jac=self.g5, bounds=bnds,
-                              options=self.opts).x
-        assert_allclose(self.f5(x), self.f5(xopt), atol=1e-8)
-
-    def test_minimize_tnc38(self):
-        x0, bnds = np.array([-3, -1, -3, -1]), [(-10, 10)]*4
-        xopt = [1]*4
-        x = optimize.minimize(self.f38, x0, method='TNC',
-                              jac=self.g38, bounds=bnds,
-                              options=self.opts).x
-        assert_allclose(self.f38(x), self.f38(xopt), atol=1e-8)
-
-    def test_minimize_tnc45(self):
-        x0, bnds = [2] * 5, [(0, 1), (0, 2), (0, 3), (0, 4), (0, 5)]
-        xopt = [1, 2, 3, 4, 5]
-        x = optimize.minimize(self.f45, x0, method='TNC',
-                              jac=self.g45, bounds=bnds,
-                              options=self.opts).x
-        assert_allclose(self.f45(x), self.f45(xopt), atol=1e-8)
-
-    # fmin_tnc
-    def test_tnc1(self):
-        fg, x, bounds = self.fg1, [-2, 1], ([-np.inf, None], [-1.5, None])
-        xopt = [1, 1]
-
-        x, nf, rc = optimize.fmin_tnc(fg, x, bounds=bounds, args=(100.0, ),
-                                      messages=optimize._tnc.MSG_NONE,
-                                      maxfun=200)
-
-        assert_allclose(self.f1(x), self.f1(xopt), atol=1e-8,
-                        err_msg="TNC failed with status: " +
-                                optimize._tnc.RCSTRINGS[rc])
-
-    def test_tnc1b(self):
-        x, bounds = [-2, 1], ([-np.inf, None], [-1.5, None])
-        xopt = [1, 1]
-
-        x, nf, rc = optimize.fmin_tnc(self.f1, x, approx_grad=True,
-                                      bounds=bounds,
-                                      messages=optimize._tnc.MSG_NONE,
-                                      maxfun=200)
-
-        assert_allclose(self.f1(x), self.f1(xopt), atol=1e-4,
-                        err_msg="TNC failed with status: " +
-                                optimize._tnc.RCSTRINGS[rc])
-
-    def test_tnc1c(self):
-        x, bounds = [-2, 1], ([-np.inf, None], [-1.5, None])
-        xopt = [1, 1]
-
-        x, nf, rc = optimize.fmin_tnc(self.f1, x, fprime=self.g1,
-                                      bounds=bounds,
-                                      messages=optimize._tnc.MSG_NONE,
-                                      maxfun=200)
-
-        assert_allclose(self.f1(x), self.f1(xopt), atol=1e-8,
-                        err_msg="TNC failed with status: " +
-                                optimize._tnc.RCSTRINGS[rc])
-
-    def test_tnc2(self):
-        fg, x, bounds = self.fg1, [-2, 1], ([-np.inf, None], [1.5, None])
-        xopt = [-1.2210262419616387, 1.5]
-
-        x, nf, rc = optimize.fmin_tnc(fg, x, bounds=bounds,
-                                      messages=optimize._tnc.MSG_NONE,
-                                      maxfun=200)
-
-        assert_allclose(self.f1(x), self.f1(xopt), atol=1e-8,
-                        err_msg="TNC failed with status: " +
-                                optimize._tnc.RCSTRINGS[rc])
-
-    def test_tnc3(self):
-        fg, x, bounds = self.fg3, [10, 1], ([-np.inf, None], [0.0, None])
-        xopt = [0, 0]
-
-        x, nf, rc = optimize.fmin_tnc(fg, x, bounds=bounds,
-                                      messages=optimize._tnc.MSG_NONE,
-                                      maxfun=200)
-
-        assert_allclose(self.f3(x), self.f3(xopt), atol=1e-8,
-                        err_msg="TNC failed with status: " +
-                                optimize._tnc.RCSTRINGS[rc])
-
-    def test_tnc4(self):
-        fg, x, bounds = self.fg4, [1.125, 0.125], [(1, None), (0, None)]
-        xopt = [1, 0]
-
-        x, nf, rc = optimize.fmin_tnc(fg, x, bounds=bounds,
-                                      messages=optimize._tnc.MSG_NONE,
-                                      maxfun=200)
-
-        assert_allclose(self.f4(x), self.f4(xopt), atol=1e-8,
-                        err_msg="TNC failed with status: " +
-                                optimize._tnc.RCSTRINGS[rc])
-
-    def test_tnc5(self):
-        fg, x, bounds = self.fg5, [0, 0], [(-1.5, 4),(-3, 3)]
-        xopt = [-0.54719755119659763, -1.5471975511965976]
-
-        x, nf, rc = optimize.fmin_tnc(fg, x, bounds=bounds,
-                                      messages=optimize._tnc.MSG_NONE,
-                                      maxfun=200)
-
-        assert_allclose(self.f5(x), self.f5(xopt), atol=1e-8,
-                        err_msg="TNC failed with status: " +
-                                optimize._tnc.RCSTRINGS[rc])
-
-    def test_tnc38(self):
-        fg, x, bounds = self.fg38, np.array([-3, -1, -3, -1]), [(-10, 10)]*4
-        xopt = [1]*4
-
-        x, nf, rc = optimize.fmin_tnc(fg, x, bounds=bounds,
-                                      messages=optimize._tnc.MSG_NONE,
-                                      maxfun=200)
-
-        assert_allclose(self.f38(x), self.f38(xopt), atol=1e-8,
-                        err_msg="TNC failed with status: " +
-                                optimize._tnc.RCSTRINGS[rc])
-
-    def test_tnc45(self):
-        fg, x, bounds = self.fg45, [2] * 5, [(0, 1), (0, 2), (0, 3),
-                                             (0, 4), (0, 5)]
-        xopt = [1, 2, 3, 4, 5]
-
-        x, nf, rc = optimize.fmin_tnc(fg, x, bounds=bounds,
-                                      messages=optimize._tnc.MSG_NONE,
-                                      maxfun=200)
-
-        assert_allclose(self.f45(x), self.f45(xopt), atol=1e-8,
-                        err_msg="TNC failed with status: " +
-                                optimize._tnc.RCSTRINGS[rc])
-
-    def test_raising_exceptions(self):
-        # tnc was ported to cython from hand-crafted cpython code
-        # check that Exception handling works.
-        def myfunc(x):
-            raise RuntimeError("myfunc")
-
-        def myfunc1(x):
-            return optimize.rosen(x)
-
-        def callback(x):
-            raise ValueError("callback")
-
-        with pytest.raises(RuntimeError):
-            optimize.minimize(myfunc, [0, 1], method="TNC")
-
-        with pytest.raises(ValueError):
-            optimize.minimize(
-                myfunc1, [0, 1], method="TNC", callback=callback
-            )
-
-    def test_callback_shouldnt_affect_minimization(self):
-        # gh14879. The output of a TNC minimization was different depending
-        # on whether a callback was used or not. The two should be equivalent.
-        # The issue was that TNC was unscaling/scaling x, and this process was
-        # altering x in the process. Now the callback uses an unscaled
-        # temporary copy of x.
-        def callback(x):
-            pass
-
-        fun = optimize.rosen
-        bounds = [(0, 10)] * 4
-        x0 = [1, 2, 3, 4.]
-        res = optimize.minimize(
-            fun, x0, bounds=bounds, method="TNC", options={"maxfun": 1000}
-        )
-        res2 = optimize.minimize(
-            fun, x0, bounds=bounds, method="TNC", options={"maxfun": 1000},
-            callback=callback
-        )
-        assert_allclose(res2.x, res.x)
-        assert_allclose(res2.fun, res.fun)
-        assert_equal(res2.nfev, res.nfev)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_trustregion.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_trustregion.py
deleted file mode 100644
index 24663f18de817a77a9e63c295b5a2a453115d101..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_trustregion.py
+++ /dev/null
@@ -1,112 +0,0 @@
-"""
-Unit tests for trust-region optimization routines.
-
-To run it in its simplest form::
-  nosetests test_optimize.py
-
-"""
-import pytest
-import numpy as np
-from numpy.testing import assert_, assert_equal, assert_allclose
-from scipy.optimize import (minimize, rosen, rosen_der, rosen_hess,
-                            rosen_hess_prod)
-
-
-class Accumulator:
-    """ This is for testing callbacks."""
-    def __init__(self):
-        self.count = 0
-        self.accum = None
-
-    def __call__(self, x):
-        self.count += 1
-        if self.accum is None:
-            self.accum = np.array(x)
-        else:
-            self.accum += x
-
-
-class TestTrustRegionSolvers:
-
-    def setup_method(self):
-        self.x_opt = [1.0, 1.0]
-        self.easy_guess = [2.0, 2.0]
-        self.hard_guess = [-1.2, 1.0]
-
-    def test_dogleg_accuracy(self):
-        # test the accuracy and the return_all option
-        x0 = self.hard_guess
-        r = minimize(rosen, x0, jac=rosen_der, hess=rosen_hess, tol=1e-8,
-                     method='dogleg', options={'return_all': True},)
-        assert_allclose(x0, r['allvecs'][0])
-        assert_allclose(r['x'], r['allvecs'][-1])
-        assert_allclose(r['x'], self.x_opt)
-
-    def test_dogleg_callback(self):
-        # test the callback mechanism and the maxiter and return_all options
-        accumulator = Accumulator()
-        maxiter = 5
-        r = minimize(rosen, self.hard_guess, jac=rosen_der, hess=rosen_hess,
-                     callback=accumulator, method='dogleg',
-                     options={'return_all': True, 'maxiter': maxiter},)
-        assert_equal(accumulator.count, maxiter)
-        assert_equal(len(r['allvecs']), maxiter+1)
-        assert_allclose(r['x'], r['allvecs'][-1])
-        assert_allclose(sum(r['allvecs'][1:]), accumulator.accum)
-
-    def test_dogleg_user_warning(self):
-        with pytest.warns(RuntimeWarning,
-                          match=r'Maximum number of iterations'):
-            minimize(rosen, self.hard_guess, jac=rosen_der,
-                     hess=rosen_hess, method='dogleg',
-                     options={'disp': True, 'maxiter': 1}, )
-
-    def test_solver_concordance(self):
-        # Assert that dogleg uses fewer iterations than ncg on the Rosenbrock
-        # test function, although this does not necessarily mean
-        # that dogleg is faster or better than ncg even for this function
-        # and especially not for other test functions.
-        f = rosen
-        g = rosen_der
-        h = rosen_hess
-        for x0 in (self.easy_guess, self.hard_guess):
-            r_dogleg = minimize(f, x0, jac=g, hess=h, tol=1e-8,
-                                method='dogleg', options={'return_all': True})
-            r_trust_ncg = minimize(f, x0, jac=g, hess=h, tol=1e-8,
-                                   method='trust-ncg',
-                                   options={'return_all': True})
-            r_trust_krylov = minimize(f, x0, jac=g, hess=h, tol=1e-8,
-                                   method='trust-krylov',
-                                   options={'return_all': True})
-            r_ncg = minimize(f, x0, jac=g, hess=h, tol=1e-8,
-                             method='newton-cg', options={'return_all': True})
-            r_iterative = minimize(f, x0, jac=g, hess=h, tol=1e-8,
-                                   method='trust-exact',
-                                   options={'return_all': True})
-            assert_allclose(self.x_opt, r_dogleg['x'])
-            assert_allclose(self.x_opt, r_trust_ncg['x'])
-            assert_allclose(self.x_opt, r_trust_krylov['x'])
-            assert_allclose(self.x_opt, r_ncg['x'])
-            assert_allclose(self.x_opt, r_iterative['x'])
-            assert_(len(r_dogleg['allvecs']) < len(r_ncg['allvecs']))
-
-    def test_trust_ncg_hessp(self):
-        for x0 in (self.easy_guess, self.hard_guess, self.x_opt):
-            r = minimize(rosen, x0, jac=rosen_der, hessp=rosen_hess_prod,
-                         tol=1e-8, method='trust-ncg')
-            assert_allclose(self.x_opt, r['x'])
-
-    def test_trust_ncg_start_in_optimum(self):
-        r = minimize(rosen, x0=self.x_opt, jac=rosen_der, hess=rosen_hess,
-                     tol=1e-8, method='trust-ncg')
-        assert_allclose(self.x_opt, r['x'])
-
-    def test_trust_krylov_start_in_optimum(self):
-        r = minimize(rosen, x0=self.x_opt, jac=rosen_der, hess=rosen_hess,
-                     tol=1e-8, method='trust-krylov')
-        assert_allclose(self.x_opt, r['x'])
-
-    def test_trust_exact_start_in_optimum(self):
-        r = minimize(rosen, x0=self.x_opt, jac=rosen_der, hess=rosen_hess,
-                     tol=1e-8, method='trust-exact')
-        assert_allclose(self.x_opt, r['x'])
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_trustregion_exact.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_trustregion_exact.py
deleted file mode 100644
index 42c649218078d7dcf052f2557f5be23e5f5e23fc..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_trustregion_exact.py
+++ /dev/null
@@ -1,354 +0,0 @@
-"""
-Unit tests for trust-region iterative subproblem.
-
-To run it in its simplest form::
-  nosetests test_optimize.py
-
-"""
-import pytest
-import numpy as np
-from scipy.optimize._trustregion_exact import (
-    estimate_smallest_singular_value,
-    singular_leading_submatrix,
-    IterativeSubproblem)
-from scipy.linalg import (svd, get_lapack_funcs, det, qr, norm)
-from numpy.testing import (assert_array_equal,
-                           assert_equal, assert_array_almost_equal)
-
-
-def random_entry(n, min_eig, max_eig, case):
-
-    # Generate random matrix
-    rand = np.random.uniform(-1, 1, (n, n))
-
-    # QR decomposition
-    Q, _, _ = qr(rand, pivoting='True')
-
-    # Generate random eigenvalues
-    eigvalues = np.random.uniform(min_eig, max_eig, n)
-    eigvalues = np.sort(eigvalues)[::-1]
-
-    # Generate matrix
-    Qaux = np.multiply(eigvalues, Q)
-    A = np.dot(Qaux, Q.T)
-
-    # Generate gradient vector accordingly
-    # to the case is being tested.
-    if case == 'hard':
-        g = np.zeros(n)
-        g[:-1] = np.random.uniform(-1, 1, n-1)
-        g = np.dot(Q, g)
-    elif case == 'jac_equal_zero':
-        g = np.zeros(n)
-    else:
-        g = np.random.uniform(-1, 1, n)
-
-    return A, g
-
-
-class TestEstimateSmallestSingularValue:
-
-    def test_for_ill_condiotioned_matrix(self):
-
-        # Ill-conditioned triangular matrix
-        C = np.array([[1, 2, 3, 4],
-                      [0, 0.05, 60, 7],
-                      [0, 0, 0.8, 9],
-                      [0, 0, 0, 10]])
-
-        # Get svd decomposition
-        U, s, Vt = svd(C)
-
-        # Get smallest singular value and correspondent right singular vector.
-        smin_svd = s[-1]
-        zmin_svd = Vt[-1, :]
-
-        # Estimate smallest singular value
-        smin, zmin = estimate_smallest_singular_value(C)
-
-        # Check the estimation
-        assert_array_almost_equal(smin, smin_svd, decimal=8)
-        assert_array_almost_equal(abs(zmin), abs(zmin_svd), decimal=8)
-
-
-class TestSingularLeadingSubmatrix:
-
-    def test_for_already_singular_leading_submatrix(self):
-
-        # Define test matrix A.
-        # Note that the leading 2x2 submatrix is singular.
-        A = np.array([[1, 2, 3],
-                      [2, 4, 5],
-                      [3, 5, 6]])
-
-        # Get Cholesky from lapack functions
-        cholesky, = get_lapack_funcs(('potrf',), (A,))
-
-        # Compute Cholesky Decomposition
-        c, k = cholesky(A, lower=False, overwrite_a=False, clean=True)
-
-        delta, v = singular_leading_submatrix(A, c, k)
-
-        A[k-1, k-1] += delta
-
-        # Check if the leading submatrix is singular.
-        assert_array_almost_equal(det(A[:k, :k]), 0)
-
-        # Check if `v` fulfil the specified properties
-        quadratic_term = np.dot(v, np.dot(A, v))
-        assert_array_almost_equal(quadratic_term, 0)
-
-    def test_for_simetric_indefinite_matrix(self):
-
-        # Define test matrix A.
-        # Note that the leading 5x5 submatrix is indefinite.
-        A = np.asarray([[1, 2, 3, 7, 8],
-                        [2, 5, 5, 9, 0],
-                        [3, 5, 11, 1, 2],
-                        [7, 9, 1, 7, 5],
-                        [8, 0, 2, 5, 8]])
-
-        # Get Cholesky from lapack functions
-        cholesky, = get_lapack_funcs(('potrf',), (A,))
-
-        # Compute Cholesky Decomposition
-        c, k = cholesky(A, lower=False, overwrite_a=False, clean=True)
-
-        delta, v = singular_leading_submatrix(A, c, k)
-
-        A[k-1, k-1] += delta
-
-        # Check if the leading submatrix is singular.
-        assert_array_almost_equal(det(A[:k, :k]), 0)
-
-        # Check if `v` fulfil the specified properties
-        quadratic_term = np.dot(v, np.dot(A, v))
-        assert_array_almost_equal(quadratic_term, 0)
-
-    def test_for_first_element_equal_to_zero(self):
-
-        # Define test matrix A.
-        # Note that the leading 2x2 submatrix is singular.
-        A = np.array([[0, 3, 11],
-                      [3, 12, 5],
-                      [11, 5, 6]])
-
-        # Get Cholesky from lapack functions
-        cholesky, = get_lapack_funcs(('potrf',), (A,))
-
-        # Compute Cholesky Decomposition
-        c, k = cholesky(A, lower=False, overwrite_a=False, clean=True)
-
-        delta, v = singular_leading_submatrix(A, c, k)
-
-        A[k-1, k-1] += delta
-
-        # Check if the leading submatrix is singular
-        assert_array_almost_equal(det(A[:k, :k]), 0)
-
-        # Check if `v` fulfil the specified properties
-        quadratic_term = np.dot(v, np.dot(A, v))
-        assert_array_almost_equal(quadratic_term, 0)
-
-
-class TestIterativeSubproblem:
-
-    def test_for_the_easy_case(self):
-
-        # `H` is chosen such that `g` is not orthogonal to the
-        # eigenvector associated with the smallest eigenvalue `s`.
-        H = [[10, 2, 3, 4],
-             [2, 1, 7, 1],
-             [3, 7, 1, 7],
-             [4, 1, 7, 2]]
-        g = [1, 1, 1, 1]
-
-        # Trust Radius
-        trust_radius = 1
-
-        # Solve Subproblem
-        subprob = IterativeSubproblem(x=0,
-                                      fun=lambda x: 0,
-                                      jac=lambda x: np.array(g),
-                                      hess=lambda x: np.array(H),
-                                      k_easy=1e-10,
-                                      k_hard=1e-10)
-        p, hits_boundary = subprob.solve(trust_radius)
-
-        assert_array_almost_equal(p, [0.00393332, -0.55260862,
-                                      0.67065477, -0.49480341])
-        assert_array_almost_equal(hits_boundary, True)
-
-    def test_for_the_hard_case(self):
-
-        # `H` is chosen such that `g` is orthogonal to the
-        # eigenvector associated with the smallest eigenvalue `s`.
-        H = [[10, 2, 3, 4],
-             [2, 1, 7, 1],
-             [3, 7, 1, 7],
-             [4, 1, 7, 2]]
-        g = [6.4852641521327437, 1, 1, 1]
-        s = -8.2151519874416614
-
-        # Trust Radius
-        trust_radius = 1
-
-        # Solve Subproblem
-        subprob = IterativeSubproblem(x=0,
-                                      fun=lambda x: 0,
-                                      jac=lambda x: np.array(g),
-                                      hess=lambda x: np.array(H),
-                                      k_easy=1e-10,
-                                      k_hard=1e-10)
-        p, hits_boundary = subprob.solve(trust_radius)
-
-        assert_array_almost_equal(-s, subprob.lambda_current)
-
-    def test_for_interior_convergence(self):
-
-        H = [[1.812159, 0.82687265, 0.21838879, -0.52487006, 0.25436988],
-             [0.82687265, 2.66380283, 0.31508988, -0.40144163, 0.08811588],
-             [0.21838879, 0.31508988, 2.38020726, -0.3166346, 0.27363867],
-             [-0.52487006, -0.40144163, -0.3166346, 1.61927182, -0.42140166],
-             [0.25436988, 0.08811588, 0.27363867, -0.42140166, 1.33243101]]
-
-        g = [0.75798952, 0.01421945, 0.33847612, 0.83725004, -0.47909534]
-
-        # Solve Subproblem
-        subprob = IterativeSubproblem(x=0,
-                                      fun=lambda x: 0,
-                                      jac=lambda x: np.array(g),
-                                      hess=lambda x: np.array(H))
-        p, hits_boundary = subprob.solve(1.1)
-
-        assert_array_almost_equal(p, [-0.68585435, 0.1222621, -0.22090999,
-                                      -0.67005053, 0.31586769])
-        assert_array_almost_equal(hits_boundary, False)
-        assert_array_almost_equal(subprob.lambda_current, 0)
-        assert_array_almost_equal(subprob.niter, 1)
-
-    def test_for_jac_equal_zero(self):
-
-        H = [[0.88547534, 2.90692271, 0.98440885, -0.78911503, -0.28035809],
-             [2.90692271, -0.04618819, 0.32867263, -0.83737945, 0.17116396],
-             [0.98440885, 0.32867263, -0.87355957, -0.06521957, -1.43030957],
-             [-0.78911503, -0.83737945, -0.06521957, -1.645709, -0.33887298],
-             [-0.28035809, 0.17116396, -1.43030957, -0.33887298, -1.68586978]]
-
-        g = [0, 0, 0, 0, 0]
-
-        # Solve Subproblem
-        subprob = IterativeSubproblem(x=0,
-                                      fun=lambda x: 0,
-                                      jac=lambda x: np.array(g),
-                                      hess=lambda x: np.array(H),
-                                      k_easy=1e-10,
-                                      k_hard=1e-10)
-        p, hits_boundary = subprob.solve(1.1)
-
-        assert_array_almost_equal(p, [0.06910534, -0.01432721,
-                                      -0.65311947, -0.23815972,
-                                      -0.84954934])
-        assert_array_almost_equal(hits_boundary, True)
-
-    def test_for_jac_very_close_to_zero(self):
-
-        H = [[0.88547534, 2.90692271, 0.98440885, -0.78911503, -0.28035809],
-             [2.90692271, -0.04618819, 0.32867263, -0.83737945, 0.17116396],
-             [0.98440885, 0.32867263, -0.87355957, -0.06521957, -1.43030957],
-             [-0.78911503, -0.83737945, -0.06521957, -1.645709, -0.33887298],
-             [-0.28035809, 0.17116396, -1.43030957, -0.33887298, -1.68586978]]
-
-        g = [0, 0, 0, 0, 1e-15]
-
-        # Solve Subproblem
-        subprob = IterativeSubproblem(x=0,
-                                      fun=lambda x: 0,
-                                      jac=lambda x: np.array(g),
-                                      hess=lambda x: np.array(H),
-                                      k_easy=1e-10,
-                                      k_hard=1e-10)
-        p, hits_boundary = subprob.solve(1.1)
-
-        assert_array_almost_equal(p, [0.06910534, -0.01432721,
-                                      -0.65311947, -0.23815972,
-                                      -0.84954934])
-        assert_array_almost_equal(hits_boundary, True)
-
-    @pytest.mark.fail_slow(5)
-    def test_for_random_entries(self):
-        # Seed
-        np.random.seed(1)
-
-        # Dimension
-        n = 5
-
-        for case in ('easy', 'hard', 'jac_equal_zero'):
-
-            eig_limits = [(-20, -15),
-                          (-10, -5),
-                          (-10, 0),
-                          (-5, 5),
-                          (-10, 10),
-                          (0, 10),
-                          (5, 10),
-                          (15, 20)]
-
-            for min_eig, max_eig in eig_limits:
-                # Generate random symmetric matrix H with
-                # eigenvalues between min_eig and max_eig.
-                H, g = random_entry(n, min_eig, max_eig, case)
-
-                # Trust radius
-                trust_radius_list = [0.1, 0.3, 0.6, 0.8, 1, 1.2, 3.3, 5.5, 10]
-
-                for trust_radius in trust_radius_list:
-                    # Solve subproblem with very high accuracy
-                    subprob_ac = IterativeSubproblem(0,
-                                                     lambda x: 0,
-                                                     lambda x: g,
-                                                     lambda x: H,
-                                                     k_easy=1e-10,
-                                                     k_hard=1e-10)
-
-                    p_ac, hits_boundary_ac = subprob_ac.solve(trust_radius)
-
-                    # Compute objective function value
-                    J_ac = 1/2*np.dot(p_ac, np.dot(H, p_ac))+np.dot(g, p_ac)
-
-                    stop_criteria = [(0.1, 2),
-                                     (0.5, 1.1),
-                                     (0.9, 1.01)]
-
-                    for k_opt, k_trf in stop_criteria:
-
-                        # k_easy and k_hard computed in function
-                        # of k_opt and k_trf accordingly to
-                        # Conn, A. R., Gould, N. I., & Toint, P. L. (2000).
-                        # "Trust region methods". Siam. p. 197.
-                        k_easy = min(k_trf-1,
-                                     1-np.sqrt(k_opt))
-                        k_hard = 1-k_opt
-
-                        # Solve subproblem
-                        subprob = IterativeSubproblem(0,
-                                                      lambda x: 0,
-                                                      lambda x: g,
-                                                      lambda x: H,
-                                                      k_easy=k_easy,
-                                                      k_hard=k_hard)
-                        p, hits_boundary = subprob.solve(trust_radius)
-
-                        # Compute objective function value
-                        J = 1/2*np.dot(p, np.dot(H, p))+np.dot(g, p)
-
-                        # Check if it respect k_trf
-                        if hits_boundary:
-                            assert_array_equal(np.abs(norm(p)-trust_radius) <=
-                                               (k_trf-1)*trust_radius, True)
-                        else:
-                            assert_equal(norm(p) <= trust_radius, True)
-
-                        # Check if it respect k_opt
-                        assert_equal(J <= k_opt*J_ac, True)
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_trustregion_krylov.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_trustregion_krylov.py
deleted file mode 100644
index b130362323c9ba4a126019fb13974a37b35d7a28..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_trustregion_krylov.py
+++ /dev/null
@@ -1,171 +0,0 @@
-"""
-Unit tests for Krylov space trust-region subproblem solver.
-
-To run it in its simplest form::
-  nosetests test_optimize.py
-
-"""
-import numpy as np
-from scipy.optimize._trlib import (get_trlib_quadratic_subproblem)
-from numpy.testing import (assert_,
-                           assert_almost_equal,
-                           assert_equal, assert_array_almost_equal)
-
-KrylovQP = get_trlib_quadratic_subproblem(tol_rel_i=1e-8, tol_rel_b=1e-6)
-KrylovQP_disp = get_trlib_quadratic_subproblem(tol_rel_i=1e-8, tol_rel_b=1e-6,
-                                               disp=True)
-
-class TestKrylovQuadraticSubproblem:
-
-    def test_for_the_easy_case(self):
-
-        # `H` is chosen such that `g` is not orthogonal to the
-        # eigenvector associated with the smallest eigenvalue.
-        H = np.array([[1.0, 0.0, 4.0],
-                      [0.0, 2.0, 0.0],
-                      [4.0, 0.0, 3.0]])
-        g = np.array([5.0, 0.0, 4.0])
-
-        # Trust Radius
-        trust_radius = 1.0
-
-        # Solve Subproblem
-        subprob = KrylovQP(x=0,
-                           fun=lambda x: 0,
-                           jac=lambda x: g,
-                           hess=lambda x: None,
-                           hessp=lambda x, y: H.dot(y))
-        p, hits_boundary = subprob.solve(trust_radius)
-
-        assert_array_almost_equal(p, np.array([-1.0, 0.0, 0.0]))
-        assert_equal(hits_boundary, True)
-        # check kkt satisfaction
-        assert_almost_equal(
-                np.linalg.norm(H.dot(p) + subprob.lam * p + g),
-                0.0)
-        # check trust region constraint
-        assert_almost_equal(np.linalg.norm(p), trust_radius)
-
-        trust_radius = 0.5
-        p, hits_boundary = subprob.solve(trust_radius)
-
-        assert_array_almost_equal(p,
-                np.array([-0.46125446, 0., -0.19298788]))
-        assert_equal(hits_boundary, True)
-        # check kkt satisfaction
-        assert_almost_equal(
-                np.linalg.norm(H.dot(p) + subprob.lam * p + g),
-                0.0)
-        # check trust region constraint
-        assert_almost_equal(np.linalg.norm(p), trust_radius)
-
-    def test_for_the_hard_case(self):
-
-        # `H` is chosen such that `g` is orthogonal to the
-        # eigenvector associated with the smallest eigenvalue.
-        H = np.array([[1.0, 0.0, 4.0],
-                      [0.0, 2.0, 0.0],
-                      [4.0, 0.0, 3.0]])
-        g = np.array([0.0, 2.0, 0.0])
-
-        # Trust Radius
-        trust_radius = 1.0
-
-        # Solve Subproblem
-        subprob = KrylovQP(x=0,
-                           fun=lambda x: 0,
-                           jac=lambda x: g,
-                           hess=lambda x: None,
-                           hessp=lambda x, y: H.dot(y))
-        p, hits_boundary = subprob.solve(trust_radius)
-
-        assert_array_almost_equal(p, np.array([0.0, -1.0, 0.0]))
-        # check kkt satisfaction
-        assert_almost_equal(
-                np.linalg.norm(H.dot(p) + subprob.lam * p + g),
-                0.0)
-        # check trust region constraint
-        assert_almost_equal(np.linalg.norm(p), trust_radius)
-
-        trust_radius = 0.5
-        p, hits_boundary = subprob.solve(trust_radius)
-
-        assert_array_almost_equal(p, np.array([0.0, -0.5, 0.0]))
-        # check kkt satisfaction
-        assert_almost_equal(
-                np.linalg.norm(H.dot(p) + subprob.lam * p + g),
-                0.0)
-        # check trust region constraint
-        assert_almost_equal(np.linalg.norm(p), trust_radius)
-
-    def test_for_interior_convergence(self):
-
-        H = np.array([[1.812159, 0.82687265, 0.21838879, -0.52487006, 0.25436988],
-                      [0.82687265, 2.66380283, 0.31508988, -0.40144163, 0.08811588],
-                      [0.21838879, 0.31508988, 2.38020726, -0.3166346, 0.27363867],
-                      [-0.52487006, -0.40144163, -0.3166346, 1.61927182, -0.42140166],
-                      [0.25436988, 0.08811588, 0.27363867, -0.42140166, 1.33243101]])
-        g = np.array([0.75798952, 0.01421945, 0.33847612, 0.83725004, -0.47909534])
-        trust_radius = 1.1
-
-        # Solve Subproblem
-        subprob = KrylovQP(x=0,
-                           fun=lambda x: 0,
-                           jac=lambda x: g,
-                           hess=lambda x: None,
-                           hessp=lambda x, y: H.dot(y))
-        p, hits_boundary = subprob.solve(trust_radius)
-
-        # check kkt satisfaction
-        assert_almost_equal(
-                np.linalg.norm(H.dot(p) + subprob.lam * p + g),
-                0.0)
-
-        assert_array_almost_equal(p, [-0.68585435, 0.1222621, -0.22090999,
-                                      -0.67005053, 0.31586769])
-        assert_array_almost_equal(hits_boundary, False)
-
-    def test_for_very_close_to_zero(self):
-
-        H = np.array([[0.88547534, 2.90692271, 0.98440885, -0.78911503, -0.28035809],
-                      [2.90692271, -0.04618819, 0.32867263, -0.83737945, 0.17116396],
-                      [0.98440885, 0.32867263, -0.87355957, -0.06521957, -1.43030957],
-                      [-0.78911503, -0.83737945, -0.06521957, -1.645709, -0.33887298],
-                      [-0.28035809, 0.17116396, -1.43030957, -0.33887298, -1.68586978]])
-        g = np.array([0, 0, 0, 0, 1e-6])
-        trust_radius = 1.1
-
-        # Solve Subproblem
-        subprob = KrylovQP(x=0,
-                           fun=lambda x: 0,
-                           jac=lambda x: g,
-                           hess=lambda x: None,
-                           hessp=lambda x, y: H.dot(y))
-        p, hits_boundary = subprob.solve(trust_radius)
-
-        # check kkt satisfaction
-        assert_almost_equal(
-                np.linalg.norm(H.dot(p) + subprob.lam * p + g),
-                0.0)
-        # check trust region constraint
-        assert_almost_equal(np.linalg.norm(p), trust_radius)
-
-        assert_array_almost_equal(p, [0.06910534, -0.01432721,
-                                      -0.65311947, -0.23815972,
-                                      -0.84954934])
-        assert_array_almost_equal(hits_boundary, True)
-
-    def test_disp(self, capsys):
-        H = -np.eye(5)
-        g = np.array([0, 0, 0, 0, 1e-6])
-        trust_radius = 1.1
-
-        subprob = KrylovQP_disp(x=0,
-                                fun=lambda x: 0,
-                                jac=lambda x: g,
-                                hess=lambda x: None,
-                                hessp=lambda x, y: H.dot(y))
-        p, hits_boundary = subprob.solve(trust_radius)
-        out, err = capsys.readouterr()
-        assert_(out.startswith(' TR Solving trust region problem'), repr(out))
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_zeros.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_zeros.py
deleted file mode 100644
index 86606d8c4318cb26825a8fa955b2ef7647f4009c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tests/test_zeros.py
+++ /dev/null
@@ -1,939 +0,0 @@
-import pytest
-
-from functools import lru_cache
-
-from numpy.testing import (assert_warns, assert_,
-                           assert_allclose,
-                           assert_equal,
-                           assert_array_equal,
-                           suppress_warnings)
-import numpy as np
-from numpy import finfo, power, nan, isclose, sqrt, exp, sin, cos
-
-from scipy import optimize
-from scipy.optimize import (_zeros_py as zeros, newton, root_scalar,
-                            OptimizeResult)
-
-from scipy._lib._util import getfullargspec_no_self as _getfullargspec
-
-# Import testing parameters
-from scipy.optimize._tstutils import get_tests, functions as tstutils_functions
-
-TOL = 4*np.finfo(float).eps  # tolerance
-
-_FLOAT_EPS = finfo(float).eps
-
-bracket_methods = [zeros.bisect, zeros.ridder, zeros.brentq, zeros.brenth,
-                   zeros.toms748]
-gradient_methods = [zeros.newton]
-all_methods = bracket_methods + gradient_methods
-
-# A few test functions used frequently:
-# # A simple quadratic, (x-1)^2 - 1
-def f1(x):
-    return x ** 2 - 2 * x - 1
-
-
-def f1_1(x):
-    return 2 * x - 2
-
-
-def f1_2(x):
-    return 2.0 + 0 * x
-
-
-def f1_and_p_and_pp(x):
-    return f1(x), f1_1(x), f1_2(x)
-
-
-# Simple transcendental function
-def f2(x):
-    return exp(x) - cos(x)
-
-
-def f2_1(x):
-    return exp(x) + sin(x)
-
-
-def f2_2(x):
-    return exp(x) + cos(x)
-
-
-# lru cached function
-@lru_cache
-def f_lrucached(x):
-    return x
-
-
-class TestScalarRootFinders:
-    # Basic tests for all scalar root finders
-
-    xtol = 4 * np.finfo(float).eps
-    rtol = 4 * np.finfo(float).eps
-
-    def _run_one_test(self, tc, method, sig_args_keys=None,
-                      sig_kwargs_keys=None, **kwargs):
-        method_args = []
-        for k in sig_args_keys or []:
-            if k not in tc:
-                # If a,b not present use x0, x1. Similarly for f and func
-                k = {'a': 'x0', 'b': 'x1', 'func': 'f'}.get(k, k)
-            method_args.append(tc[k])
-
-        method_kwargs = dict(**kwargs)
-        method_kwargs.update({'full_output': True, 'disp': False})
-        for k in sig_kwargs_keys or []:
-            method_kwargs[k] = tc[k]
-
-        root = tc.get('root')
-        func_args = tc.get('args', ())
-
-        try:
-            r, rr = method(*method_args, args=func_args, **method_kwargs)
-            return root, rr, tc
-        except Exception:
-            return root, zeros.RootResults(nan, -1, -1, zeros._EVALUEERR, method), tc
-
-    def run_tests(self, tests, method, name, known_fail=None, **kwargs):
-        r"""Run test-cases using the specified method and the supplied signature.
-
-        Extract the arguments for the method call from the test case
-        dictionary using the supplied keys for the method's signature."""
-        # The methods have one of two base signatures:
-        # (f, a, b, **kwargs)  # newton
-        # (func, x0, **kwargs)  # bisect/brentq/...
-
-        # FullArgSpec with args, varargs, varkw, defaults, ...
-        sig = _getfullargspec(method)
-        assert_(not sig.kwonlyargs)
-        nDefaults = len(sig.defaults)
-        nRequired = len(sig.args) - nDefaults
-        sig_args_keys = sig.args[:nRequired]
-        sig_kwargs_keys = []
-        if name in ['secant', 'newton', 'halley']:
-            if name in ['newton', 'halley']:
-                sig_kwargs_keys.append('fprime')
-                if name in ['halley']:
-                    sig_kwargs_keys.append('fprime2')
-            kwargs['tol'] = self.xtol
-        else:
-            kwargs['xtol'] = self.xtol
-            kwargs['rtol'] = self.rtol
-
-        results = [list(self._run_one_test(
-            tc, method, sig_args_keys=sig_args_keys,
-            sig_kwargs_keys=sig_kwargs_keys, **kwargs)) for tc in tests]
-        # results= [[true root, full output, tc], ...]
-
-        known_fail = known_fail or []
-        notcvgd = [elt for elt in results if not elt[1].converged]
-        notcvgd = [elt for elt in notcvgd if elt[-1]['ID'] not in known_fail]
-        notcvged_IDS = [elt[-1]['ID'] for elt in notcvgd]
-        assert_equal([len(notcvged_IDS), notcvged_IDS], [0, []])
-
-        # The usable xtol and rtol depend on the test
-        tols = {'xtol': self.xtol, 'rtol': self.rtol}
-        tols.update(**kwargs)
-        rtol = tols['rtol']
-        atol = tols.get('tol', tols['xtol'])
-
-        cvgd = [elt for elt in results if elt[1].converged]
-        approx = [elt[1].root for elt in cvgd]
-        correct = [elt[0] for elt in cvgd]
-        # See if the root matches the reference value
-        notclose = [[a] + elt for a, c, elt in zip(approx, correct, cvgd) if
-                    not isclose(a, c, rtol=rtol, atol=atol)
-                    and elt[-1]['ID'] not in known_fail]
-        # If not, evaluate the function and see if is 0 at the purported root
-        fvs = [tc['f'](aroot, *tc.get('args', tuple()))
-               for aroot, c, fullout, tc in notclose]
-        notclose = [[fv] + elt for fv, elt in zip(fvs, notclose) if fv != 0]
-        assert_equal([notclose, len(notclose)], [[], 0])
-        method_from_result = [result[1].method for result in results]
-        expected_method = [name for _ in results]
-        assert_equal(method_from_result, expected_method)
-
-    def run_collection(self, collection, method, name, smoothness=None,
-                       known_fail=None, **kwargs):
-        r"""Run a collection of tests using the specified method.
-
-        The name is used to determine some optional arguments."""
-        tests = get_tests(collection, smoothness=smoothness)
-        self.run_tests(tests, method, name, known_fail=known_fail, **kwargs)
-
-
-class TestBracketMethods(TestScalarRootFinders):
-    @pytest.mark.parametrize('method', bracket_methods)
-    @pytest.mark.parametrize('function', tstutils_functions)
-    def test_basic_root_scalar(self, method, function):
-        # Tests bracketing root finders called via `root_scalar` on a small
-        # set of simple problems, each of which has a root at `x=1`. Checks for
-        # converged status and that the root was found.
-        a, b = .5, sqrt(3)
-
-        r = root_scalar(function, method=method.__name__, bracket=[a, b], x0=a,
-                        xtol=self.xtol, rtol=self.rtol)
-        assert r.converged
-        assert_allclose(r.root, 1.0, atol=self.xtol, rtol=self.rtol)
-        assert r.method == method.__name__
-
-    @pytest.mark.parametrize('method', bracket_methods)
-    @pytest.mark.parametrize('function', tstutils_functions)
-    def test_basic_individual(self, method, function):
-        # Tests individual bracketing root finders on a small set of simple
-        # problems, each of which has a root at `x=1`. Checks for converged
-        # status and that the root was found.
-        a, b = .5, sqrt(3)
-        root, r = method(function, a, b, xtol=self.xtol, rtol=self.rtol,
-                         full_output=True)
-
-        assert r.converged
-        assert_allclose(root, 1.0, atol=self.xtol, rtol=self.rtol)
-
-    @pytest.mark.parametrize('method', bracket_methods)
-    def test_aps_collection(self, method):
-        self.run_collection('aps', method, method.__name__, smoothness=1)
-
-    @pytest.mark.parametrize('method', [zeros.bisect, zeros.ridder,
-                                        zeros.toms748])
-    def test_chandrupatla_collection(self, method):
-        known_fail = {'fun7.4'} if method == zeros.ridder else {}
-        self.run_collection('chandrupatla', method, method.__name__,
-                            known_fail=known_fail)
-
-    @pytest.mark.parametrize('method', bracket_methods)
-    def test_lru_cached_individual(self, method):
-        # check that https://github.com/scipy/scipy/issues/10846 is fixed
-        # (`root_scalar` failed when passed a function that was `@lru_cache`d)
-        a, b = -1, 1
-        root, r = method(f_lrucached, a, b, full_output=True)
-        assert r.converged
-        assert_allclose(root, 0)
-
-
-class TestNewton(TestScalarRootFinders):
-    def test_newton_collections(self):
-        known_fail = ['aps.13.00']
-        known_fail += ['aps.12.05', 'aps.12.17']  # fails under Windows Py27
-        for collection in ['aps', 'complex']:
-            self.run_collection(collection, zeros.newton, 'newton',
-                                smoothness=2, known_fail=known_fail)
-
-    def test_halley_collections(self):
-        known_fail = ['aps.12.06', 'aps.12.07', 'aps.12.08', 'aps.12.09',
-                      'aps.12.10', 'aps.12.11', 'aps.12.12', 'aps.12.13',
-                      'aps.12.14', 'aps.12.15', 'aps.12.16', 'aps.12.17',
-                      'aps.12.18', 'aps.13.00']
-        for collection in ['aps', 'complex']:
-            self.run_collection(collection, zeros.newton, 'halley',
-                                smoothness=2, known_fail=known_fail)
-
-    def test_newton(self):
-        for f, f_1, f_2 in [(f1, f1_1, f1_2), (f2, f2_1, f2_2)]:
-            x = zeros.newton(f, 3, tol=1e-6)
-            assert_allclose(f(x), 0, atol=1e-6)
-            x = zeros.newton(f, 3, x1=5, tol=1e-6)  # secant, x0 and x1
-            assert_allclose(f(x), 0, atol=1e-6)
-            x = zeros.newton(f, 3, fprime=f_1, tol=1e-6)   # newton
-            assert_allclose(f(x), 0, atol=1e-6)
-            x = zeros.newton(f, 3, fprime=f_1, fprime2=f_2, tol=1e-6)  # halley
-            assert_allclose(f(x), 0, atol=1e-6)
-
-    def test_newton_by_name(self):
-        r"""Invoke newton through root_scalar()"""
-        for f, f_1, f_2 in [(f1, f1_1, f1_2), (f2, f2_1, f2_2)]:
-            r = root_scalar(f, method='newton', x0=3, fprime=f_1, xtol=1e-6)
-            assert_allclose(f(r.root), 0, atol=1e-6)
-        for f, f_1, f_2 in [(f1, f1_1, f1_2), (f2, f2_1, f2_2)]:
-            r = root_scalar(f, method='newton', x0=3, xtol=1e-6)  # without f'
-            assert_allclose(f(r.root), 0, atol=1e-6)
-
-    def test_secant_by_name(self):
-        r"""Invoke secant through root_scalar()"""
-        for f, f_1, f_2 in [(f1, f1_1, f1_2), (f2, f2_1, f2_2)]:
-            r = root_scalar(f, method='secant', x0=3, x1=2, xtol=1e-6)
-            assert_allclose(f(r.root), 0, atol=1e-6)
-            r = root_scalar(f, method='secant', x0=3, x1=5, xtol=1e-6)
-            assert_allclose(f(r.root), 0, atol=1e-6)
-        for f, f_1, f_2 in [(f1, f1_1, f1_2), (f2, f2_1, f2_2)]:
-            r = root_scalar(f, method='secant', x0=3, xtol=1e-6)  # without x1
-            assert_allclose(f(r.root), 0, atol=1e-6)
-
-    def test_halley_by_name(self):
-        r"""Invoke halley through root_scalar()"""
-        for f, f_1, f_2 in [(f1, f1_1, f1_2), (f2, f2_1, f2_2)]:
-            r = root_scalar(f, method='halley', x0=3,
-                            fprime=f_1, fprime2=f_2, xtol=1e-6)
-            assert_allclose(f(r.root), 0, atol=1e-6)
-
-    def test_root_scalar_fail(self):
-        message = 'fprime2 must be specified for halley'
-        with pytest.raises(ValueError, match=message):
-            root_scalar(f1, method='halley', fprime=f1_1, x0=3, xtol=1e-6)  # no fprime2
-        message = 'fprime must be specified for halley'
-        with pytest.raises(ValueError, match=message):
-            root_scalar(f1, method='halley', fprime2=f1_2, x0=3, xtol=1e-6)  # no fprime
-
-    def test_array_newton(self):
-        """test newton with array"""
-
-        def f1(x, *a):
-            b = a[0] + x * a[3]
-            return a[1] - a[2] * (np.exp(b / a[5]) - 1.0) - b / a[4] - x
-
-        def f1_1(x, *a):
-            b = a[3] / a[5]
-            return -a[2] * np.exp(a[0] / a[5] + x * b) * b - a[3] / a[4] - 1
-
-        def f1_2(x, *a):
-            b = a[3] / a[5]
-            return -a[2] * np.exp(a[0] / a[5] + x * b) * b**2
-
-        a0 = np.array([
-            5.32725221, 5.48673747, 5.49539973,
-            5.36387202, 4.80237316, 1.43764452,
-            5.23063958, 5.46094772, 5.50512718,
-            5.42046290
-        ])
-        a1 = (np.sin(range(10)) + 1.0) * 7.0
-        args = (a0, a1, 1e-09, 0.004, 10, 0.27456)
-        x0 = [7.0] * 10
-        x = zeros.newton(f1, x0, f1_1, args)
-        x_expected = (
-            6.17264965, 11.7702805, 12.2219954,
-            7.11017681, 1.18151293, 0.143707955,
-            4.31928228, 10.5419107, 12.7552490,
-            8.91225749
-        )
-        assert_allclose(x, x_expected)
-        # test halley's
-        x = zeros.newton(f1, x0, f1_1, args, fprime2=f1_2)
-        assert_allclose(x, x_expected)
-        # test secant
-        x = zeros.newton(f1, x0, args=args)
-        assert_allclose(x, x_expected)
-
-    def test_array_newton_complex(self):
-        def f(x):
-            return x + 1+1j
-
-        def fprime(x):
-            return 1.0
-
-        t = np.full(4, 1j)
-        x = zeros.newton(f, t, fprime=fprime)
-        assert_allclose(f(x), 0.)
-
-        # should work even if x0 is not complex
-        t = np.ones(4)
-        x = zeros.newton(f, t, fprime=fprime)
-        assert_allclose(f(x), 0.)
-
-        x = zeros.newton(f, t)
-        assert_allclose(f(x), 0.)
-
-    def test_array_secant_active_zero_der(self):
-        """test secant doesn't continue to iterate zero derivatives"""
-        x = zeros.newton(lambda x, *a: x*x - a[0], x0=[4.123, 5],
-                         args=[np.array([17, 25])])
-        assert_allclose(x, (4.123105625617661, 5.0))
-
-    def test_array_newton_integers(self):
-        # test secant with float
-        x = zeros.newton(lambda y, z: z - y ** 2, [4.0] * 2,
-                         args=([15.0, 17.0],))
-        assert_allclose(x, (3.872983346207417, 4.123105625617661))
-        # test integer becomes float
-        x = zeros.newton(lambda y, z: z - y ** 2, [4] * 2, args=([15, 17],))
-        assert_allclose(x, (3.872983346207417, 4.123105625617661))
-
-    def test_array_newton_zero_der_failures(self):
-        # test derivative zero warning
-        assert_warns(RuntimeWarning, zeros.newton,
-                     lambda y: y**2 - 2, [0., 0.], lambda y: 2 * y)
-        # test failures and zero_der
-        with pytest.warns(RuntimeWarning):
-            results = zeros.newton(lambda y: y**2 - 2, [0., 0.],
-                                   lambda y: 2*y, full_output=True)
-            assert_allclose(results.root, 0)
-            assert results.zero_der.all()
-            assert not results.converged.any()
-
-    def test_newton_combined(self):
-        def f1(x):
-            return x ** 2 - 2 * x - 1
-        def f1_1(x):
-            return 2 * x - 2
-        def f1_2(x):
-            return 2.0 + 0 * x
-
-        def f1_and_p_and_pp(x):
-            return x**2 - 2*x-1, 2*x-2, 2.0
-
-        sol0 = root_scalar(f1, method='newton', x0=3, fprime=f1_1)
-        sol = root_scalar(f1_and_p_and_pp, method='newton', x0=3, fprime=True)
-        assert_allclose(sol0.root, sol.root, atol=1e-8)
-        assert_equal(2*sol.function_calls, sol0.function_calls)
-
-        sol0 = root_scalar(f1, method='halley', x0=3, fprime=f1_1, fprime2=f1_2)
-        sol = root_scalar(f1_and_p_and_pp, method='halley', x0=3, fprime2=True)
-        assert_allclose(sol0.root, sol.root, atol=1e-8)
-        assert_equal(3*sol.function_calls, sol0.function_calls)
-
-    def test_newton_full_output(self, capsys):
-        # Test the full_output capability, both when converging and not.
-        # Use simple polynomials, to avoid hitting platform dependencies
-        # (e.g., exp & trig) in number of iterations
-
-        x0 = 3
-        expected_counts = [(6, 7), (5, 10), (3, 9)]
-
-        for derivs in range(3):
-            kwargs = {'tol': 1e-6, 'full_output': True, }
-            for k, v in [['fprime', f1_1], ['fprime2', f1_2]][:derivs]:
-                kwargs[k] = v
-
-            x, r = zeros.newton(f1, x0, disp=False, **kwargs)
-            assert_(r.converged)
-            assert_equal(x, r.root)
-            assert_equal((r.iterations, r.function_calls), expected_counts[derivs])
-            if derivs == 0:
-                assert r.function_calls <= r.iterations + 1
-            else:
-                assert_equal(r.function_calls, (derivs + 1) * r.iterations)
-
-            # Now repeat, allowing one fewer iteration to force convergence failure
-            iters = r.iterations - 1
-            x, r = zeros.newton(f1, x0, maxiter=iters, disp=False, **kwargs)
-            assert_(not r.converged)
-            assert_equal(x, r.root)
-            assert_equal(r.iterations, iters)
-
-            if derivs == 1:
-                # Check that the correct Exception is raised and
-                # validate the start of the message.
-                msg = 'Failed to converge after %d iterations, value is .*' % (iters)
-                with pytest.raises(RuntimeError, match=msg):
-                    x, r = zeros.newton(f1, x0, maxiter=iters, disp=True, **kwargs)
-
-    def test_deriv_zero_warning(self):
-        def func(x):
-            return x ** 2 - 2.0
-        def dfunc(x):
-            return 2 * x
-        assert_warns(RuntimeWarning, zeros.newton, func, 0.0, dfunc, disp=False)
-        with pytest.raises(RuntimeError, match='Derivative was zero'):
-            zeros.newton(func, 0.0, dfunc)
-
-    def test_newton_does_not_modify_x0(self):
-        # https://github.com/scipy/scipy/issues/9964
-        x0 = np.array([0.1, 3])
-        x0_copy = x0.copy()  # Copy to test for equality.
-        newton(np.sin, x0, np.cos)
-        assert_array_equal(x0, x0_copy)
-
-    def test_gh17570_defaults(self):
-        # Previously, when fprime was not specified, root_scalar would default
-        # to secant. When x1 was not specified, secant failed.
-        # Check that without fprime, the default is secant if x1 is specified
-        # and newton otherwise.
-        res_newton_default = root_scalar(f1, method='newton', x0=3, xtol=1e-6)
-        res_secant_default = root_scalar(f1, method='secant', x0=3, x1=2,
-                                         xtol=1e-6)
-        # `newton` uses the secant method when `x1` and `x2` are specified
-        res_secant = newton(f1, x0=3, x1=2, tol=1e-6, full_output=True)[1]
-
-        # all three found a root
-        assert_allclose(f1(res_newton_default.root), 0, atol=1e-6)
-        assert res_newton_default.root.shape == tuple()
-        assert_allclose(f1(res_secant_default.root), 0, atol=1e-6)
-        assert res_secant_default.root.shape == tuple()
-        assert_allclose(f1(res_secant.root), 0, atol=1e-6)
-        assert res_secant.root.shape == tuple()
-
-        # Defaults are correct
-        assert (res_secant_default.root
-                == res_secant.root
-                != res_newton_default.iterations)
-        assert (res_secant_default.iterations
-                == res_secant_default.function_calls - 1  # true for secant
-                == res_secant.iterations
-                != res_newton_default.iterations
-                == res_newton_default.function_calls/2)  # newton 2-point diff
-
-    @pytest.mark.parametrize('kwargs', [dict(), {'method': 'newton'}])
-    def test_args_gh19090(self, kwargs):
-        def f(x, a, b):
-            assert a == 3
-            assert b == 1
-            return (x ** a - b)
-
-        res = optimize.root_scalar(f, x0=3, args=(3, 1), **kwargs)
-        assert res.converged
-        assert_allclose(res.root, 1)
-
-    @pytest.mark.parametrize('method', ['secant', 'newton'])
-    def test_int_x0_gh19280(self, method):
-        # Originally, `newton` ensured that only floats were passed to the
-        # callable. This was indadvertently changed by gh-17669. Check that
-        # it has been changed back.
-        def f(x):
-            # an integer raised to a negative integer power would fail
-            return x**-2 - 2
-
-        res = optimize.root_scalar(f, x0=1, method=method)
-        assert res.converged
-        assert_allclose(abs(res.root), 2**-0.5)
-        assert res.root.dtype == np.dtype(np.float64)
-
-
-def test_gh_5555():
-    root = 0.1
-
-    def f(x):
-        return x - root
-
-    methods = [zeros.bisect, zeros.ridder]
-    xtol = rtol = TOL
-    for method in methods:
-        res = method(f, -1e8, 1e7, xtol=xtol, rtol=rtol)
-        assert_allclose(root, res, atol=xtol, rtol=rtol,
-                        err_msg='method %s' % method.__name__)
-
-
-def test_gh_5557():
-    # Show that without the changes in 5557 brentq and brenth might
-    # only achieve a tolerance of 2*(xtol + rtol*|res|).
-
-    # f linearly interpolates (0, -0.1), (0.5, -0.1), and (1,
-    # 0.4). The important parts are that |f(0)| < |f(1)| (so that
-    # brent takes 0 as the initial guess), |f(0)| < atol (so that
-    # brent accepts 0 as the root), and that the exact root of f lies
-    # more than atol away from 0 (so that brent doesn't achieve the
-    # desired tolerance).
-    def f(x):
-        if x < 0.5:
-            return -0.1
-        else:
-            return x - 0.6
-
-    atol = 0.51
-    rtol = 4 * _FLOAT_EPS
-    methods = [zeros.brentq, zeros.brenth]
-    for method in methods:
-        res = method(f, 0, 1, xtol=atol, rtol=rtol)
-        assert_allclose(0.6, res, atol=atol, rtol=rtol)
-
-
-def test_brent_underflow_in_root_bracketing():
-    # Testing if an interval [a,b] brackets a zero of a function
-    # by checking f(a)*f(b) < 0 is not reliable when the product
-    # underflows/overflows. (reported in issue# 13737)
-
-    underflow_scenario = (-450.0, -350.0, -400.0)
-    overflow_scenario = (350.0, 450.0, 400.0)
-
-    for a, b, root in [underflow_scenario, overflow_scenario]:
-        c = np.exp(root)
-        for method in [zeros.brenth, zeros.brentq]:
-            res = method(lambda x: np.exp(x)-c, a, b)
-            assert_allclose(root, res)
-
-
-class TestRootResults:
-    r = zeros.RootResults(root=1.0, iterations=44, function_calls=46, flag=0,
-                          method="newton")
-
-    def test_repr(self):
-        expected_repr = ("      converged: True\n           flag: converged"
-                         "\n function_calls: 46\n     iterations: 44\n"
-                         "           root: 1.0\n         method: newton")
-        assert_equal(repr(self.r), expected_repr)
-
-    def test_type(self):
-        assert isinstance(self.r, OptimizeResult)
-
-
-def test_complex_halley():
-    """Test Halley's works with complex roots"""
-    def f(x, *a):
-        return a[0] * x**2 + a[1] * x + a[2]
-
-    def f_1(x, *a):
-        return 2 * a[0] * x + a[1]
-
-    def f_2(x, *a):
-        retval = 2 * a[0]
-        try:
-            size = len(x)
-        except TypeError:
-            return retval
-        else:
-            return [retval] * size
-
-    z = complex(1.0, 2.0)
-    coeffs = (2.0, 3.0, 4.0)
-    y = zeros.newton(f, z, args=coeffs, fprime=f_1, fprime2=f_2, tol=1e-6)
-    # (-0.75000000000000078+1.1989578808281789j)
-    assert_allclose(f(y, *coeffs), 0, atol=1e-6)
-    z = [z] * 10
-    coeffs = (2.0, 3.0, 4.0)
-    y = zeros.newton(f, z, args=coeffs, fprime=f_1, fprime2=f_2, tol=1e-6)
-    assert_allclose(f(y, *coeffs), 0, atol=1e-6)
-
-
-def test_zero_der_nz_dp(capsys):
-    """Test secant method with a non-zero dp, but an infinite newton step"""
-    # pick a symmetrical functions and choose a point on the side that with dx
-    # makes a secant that is a flat line with zero slope, EG: f = (x - 100)**2,
-    # which has a root at x = 100 and is symmetrical around the line x = 100
-    # we have to pick a really big number so that it is consistently true
-    # now find a point on each side so that the secant has a zero slope
-    dx = np.finfo(float).eps ** 0.33
-    # 100 - p0 = p1 - 100 = p0 * (1 + dx) + dx - 100
-    # -> 200 = p0 * (2 + dx) + dx
-    p0 = (200.0 - dx) / (2.0 + dx)
-    with suppress_warnings() as sup:
-        sup.filter(RuntimeWarning, "RMS of")
-        x = zeros.newton(lambda y: (y - 100.0)**2, x0=[p0] * 10)
-    assert_allclose(x, [100] * 10)
-    # test scalar cases too
-    p0 = (2.0 - 1e-4) / (2.0 + 1e-4)
-    with suppress_warnings() as sup:
-        sup.filter(RuntimeWarning, "Tolerance of")
-        x = zeros.newton(lambda y: (y - 1.0) ** 2, x0=p0, disp=False)
-    assert_allclose(x, 1)
-    with pytest.raises(RuntimeError, match='Tolerance of'):
-        x = zeros.newton(lambda y: (y - 1.0) ** 2, x0=p0, disp=True)
-    p0 = (-2.0 + 1e-4) / (2.0 + 1e-4)
-    with suppress_warnings() as sup:
-        sup.filter(RuntimeWarning, "Tolerance of")
-        x = zeros.newton(lambda y: (y + 1.0) ** 2, x0=p0, disp=False)
-    assert_allclose(x, -1)
-    with pytest.raises(RuntimeError, match='Tolerance of'):
-        x = zeros.newton(lambda y: (y + 1.0) ** 2, x0=p0, disp=True)
-
-
-def test_array_newton_failures():
-    """Test that array newton fails as expected"""
-    # p = 0.68  # [MPa]
-    # dp = -0.068 * 1e6  # [Pa]
-    # T = 323  # [K]
-    diameter = 0.10  # [m]
-    # L = 100  # [m]
-    roughness = 0.00015  # [m]
-    rho = 988.1  # [kg/m**3]
-    mu = 5.4790e-04  # [Pa*s]
-    u = 2.488  # [m/s]
-    reynolds_number = rho * u * diameter / mu  # Reynolds number
-
-    def colebrook_eqn(darcy_friction, re, dia):
-        return (1 / np.sqrt(darcy_friction) +
-                2 * np.log10(roughness / 3.7 / dia +
-                             2.51 / re / np.sqrt(darcy_friction)))
-
-    # only some failures
-    with pytest.warns(RuntimeWarning):
-        result = zeros.newton(
-            colebrook_eqn, x0=[0.01, 0.2, 0.02223, 0.3], maxiter=2,
-            args=[reynolds_number, diameter], full_output=True
-        )
-        assert not result.converged.all()
-    # they all fail
-    with pytest.raises(RuntimeError):
-        result = zeros.newton(
-            colebrook_eqn, x0=[0.01] * 2, maxiter=2,
-            args=[reynolds_number, diameter], full_output=True
-        )
-
-
-# this test should **not** raise a RuntimeWarning
-def test_gh8904_zeroder_at_root_fails():
-    """Test that Newton or Halley don't warn if zero derivative at root"""
-
-    # a function that has a zero derivative at it's root
-    def f_zeroder_root(x):
-        return x**3 - x**2
-
-    # should work with secant
-    r = zeros.newton(f_zeroder_root, x0=0)
-    assert_allclose(r, 0, atol=zeros._xtol, rtol=zeros._rtol)
-    # test again with array
-    r = zeros.newton(f_zeroder_root, x0=[0]*10)
-    assert_allclose(r, 0, atol=zeros._xtol, rtol=zeros._rtol)
-
-    # 1st derivative
-    def fder(x):
-        return 3 * x**2 - 2 * x
-
-    # 2nd derivative
-    def fder2(x):
-        return 6*x - 2
-
-    # should work with newton and halley
-    r = zeros.newton(f_zeroder_root, x0=0, fprime=fder)
-    assert_allclose(r, 0, atol=zeros._xtol, rtol=zeros._rtol)
-    r = zeros.newton(f_zeroder_root, x0=0, fprime=fder,
-                     fprime2=fder2)
-    assert_allclose(r, 0, atol=zeros._xtol, rtol=zeros._rtol)
-    # test again with array
-    r = zeros.newton(f_zeroder_root, x0=[0]*10, fprime=fder)
-    assert_allclose(r, 0, atol=zeros._xtol, rtol=zeros._rtol)
-    r = zeros.newton(f_zeroder_root, x0=[0]*10, fprime=fder,
-                     fprime2=fder2)
-    assert_allclose(r, 0, atol=zeros._xtol, rtol=zeros._rtol)
-
-    # also test that if a root is found we do not raise RuntimeWarning even if
-    # the derivative is zero, EG: at x = 0.5, then fval = -0.125 and
-    # fder = -0.25 so the next guess is 0.5 - (-0.125/-0.5) = 0 which is the
-    # root, but if the solver continued with that guess, then it will calculate
-    # a zero derivative, so it should return the root w/o RuntimeWarning
-    r = zeros.newton(f_zeroder_root, x0=0.5, fprime=fder)
-    assert_allclose(r, 0, atol=zeros._xtol, rtol=zeros._rtol)
-    # test again with array
-    r = zeros.newton(f_zeroder_root, x0=[0.5]*10, fprime=fder)
-    assert_allclose(r, 0, atol=zeros._xtol, rtol=zeros._rtol)
-    # doesn't apply to halley
-
-
-def test_gh_8881():
-    r"""Test that Halley's method realizes that the 2nd order adjustment
-    is too big and drops off to the 1st order adjustment."""
-    n = 9
-
-    def f(x):
-        return power(x, 1.0/n) - power(n, 1.0/n)
-
-    def fp(x):
-        return power(x, (1.0-n)/n)/n
-
-    def fpp(x):
-        return power(x, (1.0-2*n)/n) * (1.0/n) * (1.0-n)/n
-
-    x0 = 0.1
-    # The root is at x=9.
-    # The function has positive slope, x0 < root.
-    # Newton succeeds in 8 iterations
-    rt, r = newton(f, x0, fprime=fp, full_output=True)
-    assert r.converged
-    # Before the Issue 8881/PR 8882, halley would send x in the wrong direction.
-    # Check that it now succeeds.
-    rt, r = newton(f, x0, fprime=fp, fprime2=fpp, full_output=True)
-    assert r.converged
-
-
-def test_gh_9608_preserve_array_shape():
-    """
-    Test that shape is preserved for array inputs even if fprime or fprime2 is
-    scalar
-    """
-    def f(x):
-        return x**2
-
-    def fp(x):
-        return 2 * x
-
-    def fpp(x):
-        return 2
-
-    x0 = np.array([-2], dtype=np.float32)
-    rt, r = newton(f, x0, fprime=fp, fprime2=fpp, full_output=True)
-    assert r.converged
-
-    x0_array = np.array([-2, -3], dtype=np.float32)
-    # This next invocation should fail
-    with pytest.raises(IndexError):
-        result = zeros.newton(
-            f, x0_array, fprime=fp, fprime2=fpp, full_output=True
-        )
-
-    def fpp_array(x):
-        return np.full(np.shape(x), 2, dtype=np.float32)
-
-    result = zeros.newton(
-        f, x0_array, fprime=fp, fprime2=fpp_array, full_output=True
-    )
-    assert result.converged.all()
-
-
-@pytest.mark.parametrize(
-    "maximum_iterations,flag_expected",
-    [(10, zeros.CONVERR), (100, zeros.CONVERGED)])
-def test_gh9254_flag_if_maxiter_exceeded(maximum_iterations, flag_expected):
-    """
-    Test that if the maximum iterations is exceeded that the flag is not
-    converged.
-    """
-    result = zeros.brentq(
-        lambda x: ((1.2*x - 2.3)*x + 3.4)*x - 4.5,
-        -30, 30, (), 1e-6, 1e-6, maximum_iterations,
-        full_output=True, disp=False)
-    assert result[1].flag == flag_expected
-    if flag_expected == zeros.CONVERR:
-        # didn't converge because exceeded maximum iterations
-        assert result[1].iterations == maximum_iterations
-    elif flag_expected == zeros.CONVERGED:
-        # converged before maximum iterations
-        assert result[1].iterations < maximum_iterations
-
-
-def test_gh9551_raise_error_if_disp_true():
-    """Test that if disp is true then zero derivative raises RuntimeError"""
-
-    def f(x):
-        return x*x + 1
-
-    def f_p(x):
-        return 2*x
-
-    assert_warns(RuntimeWarning, zeros.newton, f, 1.0, f_p, disp=False)
-    with pytest.raises(
-            RuntimeError,
-            match=r'^Derivative was zero\. Failed to converge after \d+ iterations, '
-                  r'value is [+-]?\d*\.\d+\.$'):
-        zeros.newton(f, 1.0, f_p)
-    root = zeros.newton(f, complex(10.0, 10.0), f_p)
-    assert_allclose(root, complex(0.0, 1.0))
-
-
-@pytest.mark.parametrize('solver_name',
-                         ['brentq', 'brenth', 'bisect', 'ridder', 'toms748'])
-def test_gh3089_8394(solver_name):
-    # gh-3089 and gh-8394 reported that bracketing solvers returned incorrect
-    # results when they encountered NaNs. Check that this is resolved.
-    def f(x):
-        return np.nan
-
-    solver = getattr(zeros, solver_name)
-    with pytest.raises(ValueError, match="The function value at x..."):
-        solver(f, 0, 1)
-
-
-@pytest.mark.parametrize('method',
-                         ['brentq', 'brenth', 'bisect', 'ridder', 'toms748'])
-def test_gh18171(method):
-    # gh-3089 and gh-8394 reported that bracketing solvers returned incorrect
-    # results when they encountered NaNs. Check that `root_scalar` returns
-    # normally but indicates that convergence was unsuccessful. See gh-18171.
-    def f(x):
-        f._count += 1
-        return np.nan
-    f._count = 0
-
-    res = root_scalar(f, bracket=(0, 1), method=method)
-    assert res.converged is False
-    assert res.flag.startswith("The function value at x")
-    assert res.function_calls == f._count
-    assert str(res.root) in res.flag
-
-
-@pytest.mark.parametrize('solver_name',
-                         ['brentq', 'brenth', 'bisect', 'ridder', 'toms748'])
-@pytest.mark.parametrize('rs_interface', [True, False])
-def test_function_calls(solver_name, rs_interface):
-    # There do not appear to be checks that the bracketing solvers report the
-    # correct number of function evaluations. Check that this is the case.
-    solver = ((lambda f, a, b, **kwargs: root_scalar(f, bracket=(a, b)))
-              if rs_interface else getattr(zeros, solver_name))
-
-    def f(x):
-        f.calls += 1
-        return x**2 - 1
-    f.calls = 0
-
-    res = solver(f, 0, 10, full_output=True)
-
-    if rs_interface:
-        assert res.function_calls == f.calls
-    else:
-        assert res[1].function_calls == f.calls
-
-
-def test_gh_14486_converged_false():
-    """Test that zero slope with secant method results in a converged=False"""
-    def lhs(x):
-        return x * np.exp(-x*x) - 0.07
-
-    with pytest.warns(RuntimeWarning, match='Tolerance of'):
-        res = root_scalar(lhs, method='secant', x0=-0.15, x1=1.0)
-    assert not res.converged
-    assert res.flag == 'convergence error'
-
-    with pytest.warns(RuntimeWarning, match='Tolerance of'):
-        res = newton(lhs, x0=-0.15, x1=1.0, disp=False, full_output=True)[1]
-    assert not res.converged
-    assert res.flag == 'convergence error'
-
-
-@pytest.mark.parametrize('solver_name',
-                         ['brentq', 'brenth', 'bisect', 'ridder', 'toms748'])
-@pytest.mark.parametrize('rs_interface', [True, False])
-def test_gh5584(solver_name, rs_interface):
-    # gh-5584 reported that an underflow can cause sign checks in the algorithm
-    # to fail. Check that this is resolved.
-    solver = ((lambda f, a, b, **kwargs: root_scalar(f, bracket=(a, b)))
-              if rs_interface else getattr(zeros, solver_name))
-
-    def f(x):
-        return 1e-200*x
-
-    # Report failure when signs are the same
-    with pytest.raises(ValueError, match='...must have different signs'):
-        solver(f, -0.5, -0.4, full_output=True)
-
-    # Solve successfully when signs are different
-    res = solver(f, -0.5, 0.4, full_output=True)
-    res = res if rs_interface else res[1]
-    assert res.converged
-    assert_allclose(res.root, 0, atol=1e-8)
-
-    # Solve successfully when one side is negative zero
-    res = solver(f, -0.5, float('-0.0'), full_output=True)
-    res = res if rs_interface else res[1]
-    assert res.converged
-    assert_allclose(res.root, 0, atol=1e-8)
-
-
-def test_gh13407():
-    # gh-13407 reported that the message produced by `scipy.optimize.toms748`
-    # when `rtol < eps` is incorrect, and also that toms748 is unusual in
-    # accepting `rtol` as low as eps while other solvers raise at 4*eps. Check
-    # that the error message has been corrected and that `rtol=eps` can produce
-    # a lower function value than `rtol=4*eps`.
-    def f(x):
-        return x**3 - 2*x - 5
-
-    xtol = 1e-300
-    eps = np.finfo(float).eps
-    x1 = zeros.toms748(f, 1e-10, 1e10, xtol=xtol, rtol=1*eps)
-    f1 = f(x1)
-    x4 = zeros.toms748(f, 1e-10, 1e10, xtol=xtol, rtol=4*eps)
-    f4 = f(x4)
-    assert f1 < f4
-
-    # using old-style syntax to get exactly the same message
-    message = fr"rtol too small \({eps/2:g} < {eps:g}\)"
-    with pytest.raises(ValueError, match=message):
-        zeros.toms748(f, 1e-10, 1e10, xtol=xtol, rtol=eps/2)
-
-
-def test_newton_complex_gh10103():
-    # gh-10103 reported a problem when `newton` is pass a Python complex x0,
-    # no `fprime` (secant method), and no `x1` (`x1` must be constructed).
-    # Check that this is resolved.
-    def f(z):
-        return z - 1
-    res = newton(f, 1+1j)
-    assert_allclose(res, 1, atol=1e-12)
-
-    res = root_scalar(f, x0=1+1j, x1=2+1.5j, method='secant')
-    assert_allclose(res.root, 1, atol=1e-12)
-
-
-@pytest.mark.parametrize('method', all_methods)
-def test_maxiter_int_check_gh10236(method):
-    # gh-10236 reported that the error message when `maxiter` is not an integer
-    # was difficult to interpret. Check that this was resolved (by gh-10907).
-    message = "'float' object cannot be interpreted as an integer"
-    with pytest.raises(TypeError, match=message):
-        method(f1, 0.0, 1.0, maxiter=72.45)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tnc.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tnc.py
deleted file mode 100644
index e0f66058bbcc501eb1303eb3075cb55705b93192..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/tnc.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'OptimizeResult',
-    'fmin_tnc',
-    'zeros',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="tnc",
-                                   private_modules=["_tnc"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/zeros.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/zeros.py
deleted file mode 100644
index 907d49d37fc1e7476e81a25dbbc0d3910cbbe004..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/optimize/zeros.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.optimize` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'RootResults',
-    'bisect',
-    'brenth',
-    'brentq',
-    'newton',
-    'ridder',
-    'toms748',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="optimize", module="zeros",
-                                   private_modules=["_zeros_py"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 7854ecf302d5641c673849e33f4574593d92faff..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_arraytools.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_arraytools.cpython-310.pyc
deleted file mode 100644
index d0000eeccf245bfebd1679aaa15d692a1e8ec334..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_arraytools.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_bsplines.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_bsplines.cpython-310.pyc
deleted file mode 100644
index ecfb647be98ae8b30e6d9781b180017cd7e396b6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_bsplines.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_czt.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_czt.cpython-310.pyc
deleted file mode 100644
index ddcc69651e9aa85023099f95238ac95f7dfcb7b3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_czt.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_fir_filter_design.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_fir_filter_design.cpython-310.pyc
deleted file mode 100644
index dc25652f321eed70b84907acac1151f0b2653bed..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_fir_filter_design.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_lti_conversion.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_lti_conversion.cpython-310.pyc
deleted file mode 100644
index 393636bac6446c2ea016834cf2f245b6e8c450ac..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_lti_conversion.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_ltisys.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_ltisys.cpython-310.pyc
deleted file mode 100644
index 6c849cc1f9f3c47ee8dddf0e2bffdf7bccdff653..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_ltisys.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_max_len_seq.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_max_len_seq.cpython-310.pyc
deleted file mode 100644
index a9fd42319068bae431c1bb993f2cf8379b10b401..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_max_len_seq.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_peak_finding.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_peak_finding.cpython-310.pyc
deleted file mode 100644
index 770a75ab9698b63bbcf5f86b3241da9ce8ad64c1..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_peak_finding.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_savitzky_golay.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_savitzky_golay.cpython-310.pyc
deleted file mode 100644
index 3de9dc8dbcbc097176f503a4e7b3e949c98a64dc..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_savitzky_golay.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_short_time_fft.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_short_time_fft.cpython-310.pyc
deleted file mode 100644
index be49d783eec0017cf78e287378c3efaca1b84feb..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_short_time_fft.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_spectral_py.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_spectral_py.cpython-310.pyc
deleted file mode 100644
index a63a90b48b4f095a2eb167defa6a510c0fea1278..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_spectral_py.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_upfirdn.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_upfirdn.cpython-310.pyc
deleted file mode 100644
index d8bf4e0c9727392a9fe67a5cd91a3a5f187b7280..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_upfirdn.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_waveforms.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_waveforms.cpython-310.pyc
deleted file mode 100644
index 45213becd846882b2dd978a4c6935fa2a0d61e85..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_waveforms.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_wavelets.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_wavelets.cpython-310.pyc
deleted file mode 100644
index df00f0d44116a838105d9cc35b29126491e894a7..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/_wavelets.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/bsplines.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/bsplines.cpython-310.pyc
deleted file mode 100644
index 8ba6c9fda4e398e4669bcf299ba9b9947240ca6e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/bsplines.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/filter_design.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/filter_design.cpython-310.pyc
deleted file mode 100644
index cc8e3dcea1c0b3b490fe27bd8d5fc55f22f00aa0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/filter_design.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/fir_filter_design.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/fir_filter_design.cpython-310.pyc
deleted file mode 100644
index 1781985ee7c8d37cf8e957dcf7f2a1fa74c8d8b3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/fir_filter_design.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/lti_conversion.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/lti_conversion.cpython-310.pyc
deleted file mode 100644
index 573b1e64a0c683018bb344d6050f90ded5431c5e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/lti_conversion.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/ltisys.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/ltisys.cpython-310.pyc
deleted file mode 100644
index f868043933e5e262c59505abd972fe12cbdad113..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/ltisys.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/signaltools.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/signaltools.cpython-310.pyc
deleted file mode 100644
index 598fce7e240f2a9f2023272bb784ecd0c5b6c652..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/signaltools.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/spectral.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/spectral.cpython-310.pyc
deleted file mode 100644
index 6c74479ee01090856e755623d644d058618032ec..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/spectral.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/spline.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/spline.cpython-310.pyc
deleted file mode 100644
index 7d316d8bdac1a6beb359e62f3286cf0bba51fbbc..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/spline.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/waveforms.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/waveforms.cpython-310.pyc
deleted file mode 100644
index 84d84016c840d0f14fdacb36ec7d549e0de16b63..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/waveforms.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/wavelets.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/wavelets.cpython-310.pyc
deleted file mode 100644
index 00ae598bd6859da197842bb023753a9a85fa1998..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/__pycache__/wavelets.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 13197b2f0c40deb66aaafc8006d10faaefd6d8db..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/_scipy_spectral_test_shim.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/_scipy_spectral_test_shim.cpython-310.pyc
deleted file mode 100644
index 0c2174387e5fdfb4c900fa7b9e8e39aceac7a3c2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/_scipy_spectral_test_shim.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/mpsig.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/mpsig.cpython-310.pyc
deleted file mode 100644
index 9051d71b3e98fa9558b2e3fcd076cc1d6f212471..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/mpsig.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_array_tools.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_array_tools.cpython-310.pyc
deleted file mode 100644
index 4640cd57aa4b4b82496d84c0a0e4f5ffd698ff09..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_array_tools.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_bsplines.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_bsplines.cpython-310.pyc
deleted file mode 100644
index 5466a5ca2b0525e37edc102221427b6139610030..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_bsplines.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_cont2discrete.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_cont2discrete.cpython-310.pyc
deleted file mode 100644
index 397a5961414c5544dcd2fe910afa7449cb5ab180..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_cont2discrete.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_czt.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_czt.cpython-310.pyc
deleted file mode 100644
index fbb1dd13edae085c86c5bb9bcb75c91b790c0a37..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_czt.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_dltisys.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_dltisys.cpython-310.pyc
deleted file mode 100644
index 4cfa22427a759328ea3fd5d86d21ef2f6ce8ba2f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_dltisys.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_fir_filter_design.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_fir_filter_design.cpython-310.pyc
deleted file mode 100644
index 497f99567ea7cceb1f38965ad05bdc945713c639..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_fir_filter_design.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_ltisys.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_ltisys.cpython-310.pyc
deleted file mode 100644
index fb677ac5f99cb007ccaf8849171f28ac0d14ce77..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_ltisys.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_max_len_seq.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_max_len_seq.cpython-310.pyc
deleted file mode 100644
index 835844ffba1d913fbb0776ec5980059443035574..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_max_len_seq.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_peak_finding.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_peak_finding.cpython-310.pyc
deleted file mode 100644
index 8aec460ebe00a99de380cf4c76bf151f27af8af5..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_peak_finding.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_result_type.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_result_type.cpython-310.pyc
deleted file mode 100644
index 161e1c3190dec1b8d7f9f69d07bca21b96e98b0a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_result_type.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_savitzky_golay.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_savitzky_golay.cpython-310.pyc
deleted file mode 100644
index 0922449274a945a930dcf57357b0bd6fe22ccc9f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_savitzky_golay.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_short_time_fft.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_short_time_fft.cpython-310.pyc
deleted file mode 100644
index 312c494c292d95593753e2950554b46a19dc1286..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_short_time_fft.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_spectral.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_spectral.cpython-310.pyc
deleted file mode 100644
index b6cf70ca4ab72f3309e4af54dc3d3d0b0d5c93b0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_spectral.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_upfirdn.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_upfirdn.cpython-310.pyc
deleted file mode 100644
index 0f69d2013ad10e7a6a214f1a12271a0935960153..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_upfirdn.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_waveforms.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_waveforms.cpython-310.pyc
deleted file mode 100644
index 466a33efa0206b27cfc7944ff449843b3cf8fc7d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_waveforms.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_wavelets.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_wavelets.cpython-310.pyc
deleted file mode 100644
index 7d35ebb3fb98537b33fe6b0a82888732bbe05a86..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_wavelets.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_windows.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_windows.cpython-310.pyc
deleted file mode 100644
index 064bd95ce85056aafa8aac487d8081b8016b9456..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/__pycache__/test_windows.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/_scipy_spectral_test_shim.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/_scipy_spectral_test_shim.py
deleted file mode 100644
index c23f310bcae4fa85558f7f07cddb25874a0ec7d1..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/_scipy_spectral_test_shim.py
+++ /dev/null
@@ -1,488 +0,0 @@
-"""Helpers to utilize existing stft / istft tests for testing `ShortTimeFFT`.
-
-This module provides the functions stft_compare() and istft_compare(), which,
-compares the output between the existing (i)stft() and the shortTimeFFT based
-_(i)stft_wrapper() implementations in this module.
-
-For testing add the following imports to the file ``tests/test_spectral.py``::
-
-    from ._scipy_spectral_test_shim import stft_compare as stft
-    from ._scipy_spectral_test_shim import istft_compare as istft
-
-and remove the existing imports of stft and istft.
-
-The idea of these wrappers is not to provide a backward-compatible interface
-but to demonstrate that the ShortTimeFFT implementation is at least as capable
-as the existing one and delivers comparable results. Furthermore, the
-wrappers highlight the different philosophies of the implementations,
-especially in the border handling.
-"""
-import platform
-from typing import cast, Literal
-
-import numpy as np
-from numpy.testing import assert_allclose
-
-from scipy.signal import ShortTimeFFT
-from scipy.signal import csd, get_window, stft, istft
-from scipy.signal._arraytools import const_ext, even_ext, odd_ext, zero_ext
-from scipy.signal._short_time_fft import FFT_MODE_TYPE
-from scipy.signal._spectral_py import _spectral_helper, _triage_segments, \
-    _median_bias
-
-
-def _stft_wrapper(x, fs=1.0, window='hann', nperseg=256, noverlap=None,
-                  nfft=None, detrend=False, return_onesided=True,
-                  boundary='zeros', padded=True, axis=-1, scaling='spectrum'):
-    """Wrapper for the SciPy `stft()` function based on `ShortTimeFFT` for
-    unit testing.
-
-    Handling the boundary and padding is where `ShortTimeFFT` and `stft()`
-    differ in behavior. Parts of `_spectral_helper()` were copied to mimic
-    the` stft()` behavior.
-
-    This function is meant to be solely used by `stft_compare()`.
-    """
-    if scaling not in ('psd', 'spectrum'):  # same errors as in original stft:
-        raise ValueError(f"Parameter {scaling=} not in ['spectrum', 'psd']!")
-
-    # The following lines are taken from the original _spectral_helper():
-    boundary_funcs = {'even': even_ext,
-                      'odd': odd_ext,
-                      'constant': const_ext,
-                      'zeros': zero_ext,
-                      None: None}
-
-    if boundary not in boundary_funcs:
-        raise ValueError(f"Unknown boundary option '{boundary}', must be one" +
-                         f" of: {list(boundary_funcs.keys())}")
-    if x.size == 0:
-        return np.empty(x.shape), np.empty(x.shape), np.empty(x.shape)
-
-    if nperseg is not None:  # if specified by user
-        nperseg = int(nperseg)
-        if nperseg < 1:
-            raise ValueError('nperseg must be a positive integer')
-
-    # parse window; if array like, then set nperseg = win.shape
-    win, nperseg = _triage_segments(window, nperseg,
-                                    input_length=x.shape[axis])
-
-    if nfft is None:
-        nfft = nperseg
-    elif nfft < nperseg:
-        raise ValueError('nfft must be greater than or equal to nperseg.')
-    else:
-        nfft = int(nfft)
-
-    if noverlap is None:
-        noverlap = nperseg//2
-    else:
-        noverlap = int(noverlap)
-    if noverlap >= nperseg:
-        raise ValueError('noverlap must be less than nperseg.')
-    nstep = nperseg - noverlap
-    n = x.shape[axis]
-
-    # Padding occurs after boundary extension, so that the extended signal ends
-    # in zeros, instead of introducing an impulse at the end.
-    # I.e. if x = [..., 3, 2]
-    # extend then pad -> [..., 3, 2, 2, 3, 0, 0, 0]
-    # pad then extend -> [..., 3, 2, 0, 0, 0, 2, 3]
-
-    if boundary is not None:
-        ext_func = boundary_funcs[boundary]
-        # Extend by nperseg//2 in front and back:
-        x = ext_func(x, nperseg//2, axis=axis)
-
-    if padded:
-        # Pad to integer number of windowed segments
-        # I.e make x.shape[-1] = nperseg + (nseg-1)*nstep, with integer nseg
-        x = np.moveaxis(x, axis, -1)
-
-        # This is an edge case where shortTimeFFT returns one more time slice
-        # than the Scipy stft() shorten to remove last time slice:
-        if n % 2 == 1 and nperseg % 2 == 1 and noverlap % 2 == 1:
-            x = x[..., :axis - 1]
-
-        nadd = (-(x.shape[-1]-nperseg) % nstep) % nperseg
-        zeros_shape = list(x.shape[:-1]) + [nadd]
-        x = np.concatenate((x, np.zeros(zeros_shape)), axis=-1)
-        x = np.moveaxis(x, -1, axis)
-
-    #  ... end original _spectral_helper() code.
-    scale_to = {'spectrum': 'magnitude', 'psd': 'psd'}[scaling]
-
-    if np.iscomplexobj(x) and return_onesided:
-        return_onesided = False
-    # using cast() to make mypy happy:
-    fft_mode = cast(FFT_MODE_TYPE, 'onesided' if return_onesided else 'twosided')
-
-    ST = ShortTimeFFT(win, nstep, fs, fft_mode=fft_mode, mfft=nfft,
-                      scale_to=scale_to, phase_shift=None)
-
-    k_off = nperseg // 2
-    p0 = 0  # ST.lower_border_end[1] + 1
-    nn = x.shape[axis] if padded else n+k_off+1
-    p1 = ST.upper_border_begin(nn)[1]  # ST.p_max(n) + 1
-
-    # This is bad hack to pass the test test_roundtrip_boundary_extension():
-    if padded is True and nperseg - noverlap == 1:
-        p1 -= nperseg // 2 - 1  # the reasoning behind this is not clear to me
-
-    detr = None if detrend is False else detrend
-    Sxx = ST.stft_detrend(x, detr, p0, p1, k_offset=k_off, axis=axis)
-    t = ST.t(nn, 0, p1 - p0, k_offset=0 if boundary is not None else k_off)
-    if x.dtype in (np.float32, np.complex64):
-        Sxx = Sxx.astype(np.complex64)
-
-    # workaround for test_average_all_segments() - seems to be buggy behavior:
-    if boundary is None and padded is False:
-        t, Sxx = t[1:-1], Sxx[..., :-2]
-        t -= k_off / fs
-
-    return ST.f, t, Sxx
-
-
-def _istft_wrapper(Zxx, fs=1.0, window='hann', nperseg=None, noverlap=None,
-                   nfft=None, input_onesided=True, boundary=True, time_axis=-1,
-                   freq_axis=-2, scaling='spectrum') -> \
-        tuple[np.ndarray, np.ndarray, tuple[int, int]]:
-    """Wrapper for the SciPy `istft()` function based on `ShortTimeFFT` for
-        unit testing.
-
-    Note that only option handling is implemented as far as to handle the unit
-    tests. E.g., the case ``nperseg=None`` is not handled.
-
-    This function is meant to be solely used by `istft_compare()`.
-    """
-    # *** Lines are taken from _spectral_py.istft() ***:
-    if Zxx.ndim < 2:
-        raise ValueError('Input stft must be at least 2d!')
-
-    if freq_axis == time_axis:
-        raise ValueError('Must specify differing time and frequency axes!')
-
-    nseg = Zxx.shape[time_axis]
-
-    if input_onesided:
-        # Assume even segment length
-        n_default = 2*(Zxx.shape[freq_axis] - 1)
-    else:
-        n_default = Zxx.shape[freq_axis]
-
-    # Check windowing parameters
-    if nperseg is None:
-        nperseg = n_default
-    else:
-        nperseg = int(nperseg)
-        if nperseg < 1:
-            raise ValueError('nperseg must be a positive integer')
-
-    if nfft is None:
-        if input_onesided and (nperseg == n_default + 1):
-            # Odd nperseg, no FFT padding
-            nfft = nperseg
-        else:
-            nfft = n_default
-    elif nfft < nperseg:
-        raise ValueError('nfft must be greater than or equal to nperseg.')
-    else:
-        nfft = int(nfft)
-
-    if noverlap is None:
-        noverlap = nperseg//2
-    else:
-        noverlap = int(noverlap)
-    if noverlap >= nperseg:
-        raise ValueError('noverlap must be less than nperseg.')
-    nstep = nperseg - noverlap
-
-    # Get window as array
-    if isinstance(window, str) or type(window) is tuple:
-        win = get_window(window, nperseg)
-    else:
-        win = np.asarray(window)
-        if len(win.shape) != 1:
-            raise ValueError('window must be 1-D')
-        if win.shape[0] != nperseg:
-            raise ValueError(f'window must have length of {nperseg}')
-
-    outputlength = nperseg + (nseg-1)*nstep
-    # *** End block of: Taken from _spectral_py.istft() ***
-
-    # Using cast() to make mypy happy:
-    fft_mode = cast(FFT_MODE_TYPE, 'onesided' if input_onesided else 'twosided')
-    scale_to = cast(Literal['magnitude', 'psd'],
-                    {'spectrum': 'magnitude', 'psd': 'psd'}[scaling])
-
-    ST = ShortTimeFFT(win, nstep, fs, fft_mode=fft_mode, mfft=nfft,
-                      scale_to=scale_to, phase_shift=None)
-
-    if boundary:
-        j = nperseg if nperseg % 2 == 0 else nperseg - 1
-        k0 = ST.k_min + nperseg // 2
-        k1 = outputlength - j + k0
-    else:
-        raise NotImplementedError("boundary=False does not make sense with" +
-                                  "ShortTimeFFT.istft()!")
-
-    x = ST.istft(Zxx, k0=k0, k1=k1, f_axis=freq_axis, t_axis=time_axis)
-    t = np.arange(k1 - k0) * ST.T
-    k_hi = ST.upper_border_begin(k1 - k0)[0]
-    # using cast() to make mypy happy:
-    return t, x, (ST.lower_border_end[0], k_hi)
-
-
-def _csd_wrapper(x, y, fs=1.0, window='hann', nperseg=None, noverlap=None,
-                 nfft=None, detrend='constant', return_onesided=True,
-                 scaling='density', axis=-1, average='mean'):
-    """Wrapper for the `csd()` function based on `ShortTimeFFT` for
-        unit testing.
-    """
-    freqs, _, Pxy = _csd_test_shim(x, y, fs, window, nperseg, noverlap, nfft,
-                                   detrend, return_onesided, scaling, axis)
-
-    # The following code is taken from csd():
-    if len(Pxy.shape) >= 2 and Pxy.size > 0:
-        if Pxy.shape[-1] > 1:
-            if average == 'median':
-                # np.median must be passed real arrays for the desired result
-                bias = _median_bias(Pxy.shape[-1])
-                if np.iscomplexobj(Pxy):
-                    Pxy = (np.median(np.real(Pxy), axis=-1)
-                           + 1j * np.median(np.imag(Pxy), axis=-1))
-                else:
-                    Pxy = np.median(Pxy, axis=-1)
-                Pxy /= bias
-            elif average == 'mean':
-                Pxy = Pxy.mean(axis=-1)
-            else:
-                raise ValueError(f'average must be "median" or "mean", got {average}')
-        else:
-            Pxy = np.reshape(Pxy, Pxy.shape[:-1])
-
-    return freqs, Pxy
-
-
-def _csd_test_shim(x, y, fs=1.0, window='hann', nperseg=None, noverlap=None,
-                   nfft=None, detrend='constant', return_onesided=True,
-                   scaling='density', axis=-1):
-    """Compare output of  _spectral_helper() and ShortTimeFFT, more
-    precisely _spect_helper_csd() for used in csd_wrapper().
-
-   The motivation of this function is to test if the ShortTimeFFT-based
-   wrapper `_spect_helper_csd()` returns the same values as `_spectral_helper`.
-   This function should only be usd by csd() in (unit) testing.
-   """
-    freqs, t, Pxy = _spectral_helper(x, y, fs, window, nperseg, noverlap, nfft,
-                                     detrend, return_onesided, scaling, axis,
-                                     mode='psd')
-    freqs1, Pxy1 = _spect_helper_csd(x, y, fs, window, nperseg, noverlap, nfft,
-                                     detrend, return_onesided, scaling, axis)
-
-    np.testing.assert_allclose(freqs1, freqs)
-    amax_Pxy = max(np.abs(Pxy).max(), 1) if Pxy.size else 1
-    atol = np.finfo(Pxy.dtype).resolution * amax_Pxy  # needed for large Pxy
-    # for c_ in range(Pxy.shape[-1]):
-    #    np.testing.assert_allclose(Pxy1[:, c_], Pxy[:, c_], atol=atol)
-    np.testing.assert_allclose(Pxy1, Pxy, atol=atol)
-    return freqs, t, Pxy
-
-
-def _spect_helper_csd(x, y, fs=1.0, window='hann', nperseg=None, noverlap=None,
-                      nfft=None, detrend='constant', return_onesided=True,
-                      scaling='density', axis=-1):
-    """Wrapper for replacing _spectral_helper() by using the ShortTimeFFT
-      for use by csd().
-
-    This function should be only used by _csd_test_shim() and is only useful
-    for testing the ShortTimeFFT implementation.
-    """
-
-    # The following lines are taken from the original _spectral_helper():
-    same_data = y is x
-    axis = int(axis)
-
-    # Ensure we have np.arrays, get outdtype
-    x = np.asarray(x)
-    if not same_data:
-        y = np.asarray(y)
-    #     outdtype = np.result_type(x, y, np.complex64)
-    # else:
-    #     outdtype = np.result_type(x, np.complex64)
-
-    if not same_data:
-        # Check if we can broadcast the outer axes together
-        xouter = list(x.shape)
-        youter = list(y.shape)
-        xouter.pop(axis)
-        youter.pop(axis)
-        try:
-            outershape = np.broadcast(np.empty(xouter), np.empty(youter)).shape
-        except ValueError as e:
-            raise ValueError('x and y cannot be broadcast together.') from e
-
-    if same_data:
-        if x.size == 0:
-            return np.empty(x.shape), np.empty(x.shape)
-    else:
-        if x.size == 0 or y.size == 0:
-            outshape = outershape + (min([x.shape[axis], y.shape[axis]]),)
-            emptyout = np.moveaxis(np.empty(outshape), -1, axis)
-            return emptyout, emptyout
-
-    if nperseg is not None:  # if specified by user
-        nperseg = int(nperseg)
-        if nperseg < 1:
-            raise ValueError('nperseg must be a positive integer')
-
-    # parse window; if array like, then set nperseg = win.shape
-    n = x.shape[axis] if same_data else max(x.shape[axis], y.shape[axis])
-    win, nperseg = _triage_segments(window, nperseg, input_length=n)
-
-    if nfft is None:
-        nfft = nperseg
-    elif nfft < nperseg:
-        raise ValueError('nfft must be greater than or equal to nperseg.')
-    else:
-        nfft = int(nfft)
-
-    if noverlap is None:
-        noverlap = nperseg // 2
-    else:
-        noverlap = int(noverlap)
-    if noverlap >= nperseg:
-        raise ValueError('noverlap must be less than nperseg.')
-    nstep = nperseg - noverlap
-
-    if np.iscomplexobj(x) and return_onesided:
-        return_onesided = False
-
-    # using cast() to make mypy happy:
-    fft_mode = cast(FFT_MODE_TYPE, 'onesided' if return_onesided
-                    else 'twosided')
-    scale = {'spectrum': 'magnitude', 'density': 'psd'}[scaling]
-    SFT = ShortTimeFFT(win, nstep, fs, fft_mode=fft_mode, mfft=nfft,
-                       scale_to=scale, phase_shift=None)
-
-    # _spectral_helper() calculates X.conj()*Y instead of X*Y.conj():
-    Pxy = SFT.spectrogram(y, x, detr=None if detrend is False else detrend,
-                          p0=0, p1=(n-noverlap)//SFT.hop, k_offset=nperseg//2,
-                          axis=axis).conj()
-    # Note:
-    # 'onesided2X' scaling of ShortTimeFFT conflicts with the
-    # scaling='spectrum' parameter, since it doubles the squared magnitude,
-    # which in the view of the ShortTimeFFT implementation does not make sense.
-    # Hence, the doubling of the square is implemented here:
-    if return_onesided:
-        f_axis = Pxy.ndim - 1 + axis if axis < 0 else axis
-        Pxy = np.moveaxis(Pxy, f_axis, -1)
-        Pxy[..., 1:-1 if SFT.mfft % 2 == 0 else None] *= 2
-        Pxy = np.moveaxis(Pxy, -1, f_axis)
-
-    return SFT.f, Pxy
-
-
-def stft_compare(x, fs=1.0, window='hann', nperseg=256, noverlap=None,
-                 nfft=None, detrend=False, return_onesided=True,
-                 boundary='zeros', padded=True, axis=-1, scaling='spectrum'):
-    """Assert that the results from the existing `stft()` and `_stft_wrapper()`
-    are close to each other.
-
-    For comparing the STFT values an absolute tolerance of the floating point
-    resolution was added to circumvent problems with the following tests:
-    * For float32 the tolerances are much higher in
-      TestSTFT.test_roundtrip_float32()).
-    * The TestSTFT.test_roundtrip_scaling() has a high relative deviation.
-      Interestingly this did not appear in Scipy 1.9.1 but only in the current
-      development version.
-    """
-    kw = dict(x=x, fs=fs, window=window, nperseg=nperseg, noverlap=noverlap,
-              nfft=nfft, detrend=detrend, return_onesided=return_onesided,
-              boundary=boundary, padded=padded, axis=axis, scaling=scaling)
-    f, t, Zxx = stft(**kw)
-    f_wrapper, t_wrapper, Zxx_wrapper = _stft_wrapper(**kw)
-
-    e_msg_part = " of `stft_wrapper()` differ from `stft()`."
-    assert_allclose(f_wrapper, f, err_msg=f"Frequencies {e_msg_part}")
-    assert_allclose(t_wrapper, t, err_msg=f"Time slices {e_msg_part}")
-
-    # Adapted tolerances to account for:
-    atol = np.finfo(Zxx.dtype).resolution * 2
-    assert_allclose(Zxx_wrapper, Zxx, atol=atol,
-                    err_msg=f"STFT values {e_msg_part}")
-    return f, t, Zxx
-
-
-def istft_compare(Zxx, fs=1.0, window='hann', nperseg=None, noverlap=None,
-                  nfft=None, input_onesided=True, boundary=True, time_axis=-1,
-                  freq_axis=-2, scaling='spectrum'):
-    """Assert that the results from the existing `istft()` and
-    `_istft_wrapper()` are close to each other.
-
-    Quirks:
-    * If ``boundary=False`` the comparison is skipped, since it does not
-      make sense with ShortTimeFFT.istft(). Only used in test
-      TestSTFT.test_roundtrip_boundary_extension().
-    * If ShortTimeFFT.istft() decides the STFT is not invertible, the
-      comparison is skipped, since istft() only emits a warning and does not
-      return a correct result. Only used in
-      ShortTimeFFT.test_roundtrip_not_nola().
-    * For comparing the signals an absolute tolerance of the floating point
-      resolution was added to account for the low accuracy of float32 (Occurs
-      only in TestSTFT.test_roundtrip_float32()).
-    """
-    kw = dict(Zxx=Zxx, fs=fs, window=window, nperseg=nperseg,
-              noverlap=noverlap, nfft=nfft, input_onesided=input_onesided,
-              boundary=boundary, time_axis=time_axis, freq_axis=freq_axis,
-              scaling=scaling)
-
-    t, x = istft(**kw)
-    if not boundary:  # skip test_roundtrip_boundary_extension():
-        return t, x  # _istft_wrapper does() not implement this case
-    try:  # if inversion fails, istft() only emits a warning:
-        t_wrapper, x_wrapper, (k_lo, k_hi) = _istft_wrapper(**kw)
-    except ValueError as v:  # Do nothing if inversion fails:
-        if v.args[0] == "Short-time Fourier Transform not invertible!":
-            return t, x
-        raise v
-
-    e_msg_part = " of `istft_wrapper()` differ from `istft()`"
-    assert_allclose(t, t_wrapper, err_msg=f"Sample times {e_msg_part}")
-
-    # Adapted tolerances to account for resolution loss:
-    atol = np.finfo(x.dtype).resolution*2  # instead of default atol = 0
-    rtol = 1e-7  # default for np.allclose()
-
-    # Relax atol on 32-Bit platforms a bit to pass CI tests.
-    #  - Not clear why there are discrepancies (in the FFT maybe?)
-    #  - Not sure what changed on 'i686' since earlier on those test passed
-    if x.dtype == np.float32 and platform.machine() == 'i686':
-        # float32 gets only used by TestSTFT.test_roundtrip_float32() so
-        # we are using the tolerances from there to circumvent CI problems
-        atol, rtol = 1e-4, 1e-5
-    elif platform.machine() in ('aarch64', 'i386', 'i686'):
-        atol = max(atol, 1e-12)  # 2e-15 seems too tight for 32-Bit platforms
-
-    assert_allclose(x_wrapper[k_lo:k_hi], x[k_lo:k_hi], atol=atol, rtol=rtol,
-                    err_msg=f"Signal values {e_msg_part}")
-    return t, x
-
-
-def csd_compare(x, y, fs=1.0, window='hann', nperseg=None, noverlap=None,
-                nfft=None, detrend='constant', return_onesided=True,
-                scaling='density', axis=-1, average='mean'):
-    """Assert that the results from the existing `csd()` and `_csd_wrapper()`
-    are close to each other. """
-    kw = dict(x=x, y=y, fs=fs, window=window, nperseg=nperseg,
-              noverlap=noverlap, nfft=nfft, detrend=detrend,
-              return_onesided=return_onesided, scaling=scaling, axis=axis,
-              average=average)
-    freqs0, Pxy0 = csd(**kw)
-    freqs1, Pxy1 = _csd_wrapper(**kw)
-
-    assert_allclose(freqs1, freqs0)
-    assert_allclose(Pxy1, Pxy0)
-    assert_allclose(freqs1, freqs0)
-    return freqs0, Pxy0
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/mpsig.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/mpsig.py
deleted file mode 100644
index d129de74e5df00c22bc0b82c7d3f7b52483941f9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/mpsig.py
+++ /dev/null
@@ -1,122 +0,0 @@
-"""
-Some signal functions implemented using mpmath.
-"""
-
-try:
-    import mpmath
-except ImportError:
-    mpmath = None
-
-
-def _prod(seq):
-    """Returns the product of the elements in the sequence `seq`."""
-    p = 1
-    for elem in seq:
-        p *= elem
-    return p
-
-
-def _relative_degree(z, p):
-    """
-    Return relative degree of transfer function from zeros and poles.
-
-    This is simply len(p) - len(z), which must be nonnegative.
-    A ValueError is raised if len(p) < len(z).
-    """
-    degree = len(p) - len(z)
-    if degree < 0:
-        raise ValueError("Improper transfer function. "
-                         "Must have at least as many poles as zeros.")
-    return degree
-
-
-def _zpkbilinear(z, p, k, fs):
-    """Bilinear transformation to convert a filter from analog to digital."""
-
-    degree = _relative_degree(z, p)
-
-    fs2 = 2*fs
-
-    # Bilinear transform the poles and zeros
-    z_z = [(fs2 + z1) / (fs2 - z1) for z1 in z]
-    p_z = [(fs2 + p1) / (fs2 - p1) for p1 in p]
-
-    # Any zeros that were at infinity get moved to the Nyquist frequency
-    z_z.extend([-1] * degree)
-
-    # Compensate for gain change
-    numer = _prod(fs2 - z1 for z1 in z)
-    denom = _prod(fs2 - p1 for p1 in p)
-    k_z = k * numer / denom
-
-    return z_z, p_z, k_z.real
-
-
-def _zpklp2lp(z, p, k, wo=1):
-    """Transform a lowpass filter to a different cutoff frequency."""
-
-    degree = _relative_degree(z, p)
-
-    # Scale all points radially from origin to shift cutoff frequency
-    z_lp = [wo * z1 for z1 in z]
-    p_lp = [wo * p1 for p1 in p]
-
-    # Each shifted pole decreases gain by wo, each shifted zero increases it.
-    # Cancel out the net change to keep overall gain the same
-    k_lp = k * wo**degree
-
-    return z_lp, p_lp, k_lp
-
-
-def _butter_analog_poles(n):
-    """
-    Poles of an analog Butterworth lowpass filter.
-
-    This is the same calculation as scipy.signal.buttap(n) or
-    scipy.signal.butter(n, 1, analog=True, output='zpk'), but mpmath is used,
-    and only the poles are returned.
-    """
-    poles = [-mpmath.exp(1j*mpmath.pi*k/(2*n)) for k in range(-n+1, n, 2)]
-    return poles
-
-
-def butter_lp(n, Wn):
-    """
-    Lowpass Butterworth digital filter design.
-
-    This computes the same result as scipy.signal.butter(n, Wn, output='zpk'),
-    but it uses mpmath, and the results are returned in lists instead of NumPy
-    arrays.
-    """
-    zeros = []
-    poles = _butter_analog_poles(n)
-    k = 1
-    fs = 2
-    warped = 2 * fs * mpmath.tan(mpmath.pi * Wn / fs)
-    z, p, k = _zpklp2lp(zeros, poles, k, wo=warped)
-    z, p, k = _zpkbilinear(z, p, k, fs=fs)
-    return z, p, k
-
-
-def zpkfreqz(z, p, k, worN=None):
-    """
-    Frequency response of a filter in zpk format, using mpmath.
-
-    This is the same calculation as scipy.signal.freqz, but the input is in
-    zpk format, the calculation is performed using mpath, and the results are
-    returned in lists instead of NumPy arrays.
-    """
-    if worN is None or isinstance(worN, int):
-        N = worN or 512
-        ws = [mpmath.pi * mpmath.mpf(j) / N for j in range(N)]
-    else:
-        ws = worN
-
-    h = []
-    for wk in ws:
-        zm1 = mpmath.exp(1j * wk)
-        numer = _prod([zm1 - t for t in z])
-        denom = _prod([zm1 - t for t in p])
-        hk = k * numer / denom
-        h.append(hk)
-    return ws, h
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_array_tools.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_array_tools.py
deleted file mode 100644
index 81503b7e267cf9f74999d283b0d33b012fd0f77c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_array_tools.py
+++ /dev/null
@@ -1,111 +0,0 @@
-import numpy as np
-
-from numpy.testing import assert_array_equal
-from pytest import raises as assert_raises
-
-from scipy.signal._arraytools import (axis_slice, axis_reverse,
-     odd_ext, even_ext, const_ext, zero_ext)
-
-
-class TestArrayTools:
-
-    def test_axis_slice(self):
-        a = np.arange(12).reshape(3, 4)
-
-        s = axis_slice(a, start=0, stop=1, axis=0)
-        assert_array_equal(s, a[0:1, :])
-
-        s = axis_slice(a, start=-1, axis=0)
-        assert_array_equal(s, a[-1:, :])
-
-        s = axis_slice(a, start=0, stop=1, axis=1)
-        assert_array_equal(s, a[:, 0:1])
-
-        s = axis_slice(a, start=-1, axis=1)
-        assert_array_equal(s, a[:, -1:])
-
-        s = axis_slice(a, start=0, step=2, axis=0)
-        assert_array_equal(s, a[::2, :])
-
-        s = axis_slice(a, start=0, step=2, axis=1)
-        assert_array_equal(s, a[:, ::2])
-
-    def test_axis_reverse(self):
-        a = np.arange(12).reshape(3, 4)
-
-        r = axis_reverse(a, axis=0)
-        assert_array_equal(r, a[::-1, :])
-
-        r = axis_reverse(a, axis=1)
-        assert_array_equal(r, a[:, ::-1])
-
-    def test_odd_ext(self):
-        a = np.array([[1, 2, 3, 4, 5],
-                      [9, 8, 7, 6, 5]])
-
-        odd = odd_ext(a, 2, axis=1)
-        expected = np.array([[-1, 0, 1, 2, 3, 4, 5, 6, 7],
-                             [11, 10, 9, 8, 7, 6, 5, 4, 3]])
-        assert_array_equal(odd, expected)
-
-        odd = odd_ext(a, 1, axis=0)
-        expected = np.array([[-7, -4, -1, 2, 5],
-                             [1, 2, 3, 4, 5],
-                             [9, 8, 7, 6, 5],
-                             [17, 14, 11, 8, 5]])
-        assert_array_equal(odd, expected)
-
-        assert_raises(ValueError, odd_ext, a, 2, axis=0)
-        assert_raises(ValueError, odd_ext, a, 5, axis=1)
-
-    def test_even_ext(self):
-        a = np.array([[1, 2, 3, 4, 5],
-                      [9, 8, 7, 6, 5]])
-
-        even = even_ext(a, 2, axis=1)
-        expected = np.array([[3, 2, 1, 2, 3, 4, 5, 4, 3],
-                             [7, 8, 9, 8, 7, 6, 5, 6, 7]])
-        assert_array_equal(even, expected)
-
-        even = even_ext(a, 1, axis=0)
-        expected = np.array([[9, 8, 7, 6, 5],
-                             [1, 2, 3, 4, 5],
-                             [9, 8, 7, 6, 5],
-                             [1, 2, 3, 4, 5]])
-        assert_array_equal(even, expected)
-
-        assert_raises(ValueError, even_ext, a, 2, axis=0)
-        assert_raises(ValueError, even_ext, a, 5, axis=1)
-
-    def test_const_ext(self):
-        a = np.array([[1, 2, 3, 4, 5],
-                      [9, 8, 7, 6, 5]])
-
-        const = const_ext(a, 2, axis=1)
-        expected = np.array([[1, 1, 1, 2, 3, 4, 5, 5, 5],
-                             [9, 9, 9, 8, 7, 6, 5, 5, 5]])
-        assert_array_equal(const, expected)
-
-        const = const_ext(a, 1, axis=0)
-        expected = np.array([[1, 2, 3, 4, 5],
-                             [1, 2, 3, 4, 5],
-                             [9, 8, 7, 6, 5],
-                             [9, 8, 7, 6, 5]])
-        assert_array_equal(const, expected)
-
-    def test_zero_ext(self):
-        a = np.array([[1, 2, 3, 4, 5],
-                      [9, 8, 7, 6, 5]])
-
-        zero = zero_ext(a, 2, axis=1)
-        expected = np.array([[0, 0, 1, 2, 3, 4, 5, 0, 0],
-                             [0, 0, 9, 8, 7, 6, 5, 0, 0]])
-        assert_array_equal(zero, expected)
-
-        zero = zero_ext(a, 1, axis=0)
-        expected = np.array([[0, 0, 0, 0, 0],
-                             [1, 2, 3, 4, 5],
-                             [9, 8, 7, 6, 5],
-                             [0, 0, 0, 0, 0]])
-        assert_array_equal(zero, expected)
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_cont2discrete.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_cont2discrete.py
deleted file mode 100644
index 51b9be56e29c4e0448020c2d8e8ff6e7e336f8c3..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_cont2discrete.py
+++ /dev/null
@@ -1,416 +0,0 @@
-import numpy as np
-from numpy.testing import \
-                          assert_array_almost_equal, assert_almost_equal, \
-                          assert_allclose, assert_equal
-
-import pytest
-from scipy.signal import cont2discrete as c2d
-from scipy.signal import dlsim, ss2tf, ss2zpk, lsim, lti
-from scipy.signal import tf2ss, impulse, dimpulse, step, dstep
-
-# Author: Jeffrey Armstrong 
-# March 29, 2011
-
-
-class TestC2D:
-    def test_zoh(self):
-        ac = np.eye(2)
-        bc = np.full((2, 1), 0.5)
-        cc = np.array([[0.75, 1.0], [1.0, 1.0], [1.0, 0.25]])
-        dc = np.array([[0.0], [0.0], [-0.33]])
-
-        ad_truth = 1.648721270700128 * np.eye(2)
-        bd_truth = np.full((2, 1), 0.324360635350064)
-        # c and d in discrete should be equal to their continuous counterparts
-        dt_requested = 0.5
-
-        ad, bd, cd, dd, dt = c2d((ac, bc, cc, dc), dt_requested, method='zoh')
-
-        assert_array_almost_equal(ad_truth, ad)
-        assert_array_almost_equal(bd_truth, bd)
-        assert_array_almost_equal(cc, cd)
-        assert_array_almost_equal(dc, dd)
-        assert_almost_equal(dt_requested, dt)
-
-    def test_foh(self):
-        ac = np.eye(2)
-        bc = np.full((2, 1), 0.5)
-        cc = np.array([[0.75, 1.0], [1.0, 1.0], [1.0, 0.25]])
-        dc = np.array([[0.0], [0.0], [-0.33]])
-
-        # True values are verified with Matlab
-        ad_truth = 1.648721270700128 * np.eye(2)
-        bd_truth = np.full((2, 1), 0.420839287058789)
-        cd_truth = cc
-        dd_truth = np.array([[0.260262223725224],
-                             [0.297442541400256],
-                             [-0.144098411624840]])
-        dt_requested = 0.5
-
-        ad, bd, cd, dd, dt = c2d((ac, bc, cc, dc), dt_requested, method='foh')
-
-        assert_array_almost_equal(ad_truth, ad)
-        assert_array_almost_equal(bd_truth, bd)
-        assert_array_almost_equal(cd_truth, cd)
-        assert_array_almost_equal(dd_truth, dd)
-        assert_almost_equal(dt_requested, dt)
-
-    def test_impulse(self):
-        ac = np.eye(2)
-        bc = np.full((2, 1), 0.5)
-        cc = np.array([[0.75, 1.0], [1.0, 1.0], [1.0, 0.25]])
-        dc = np.array([[0.0], [0.0], [0.0]])
-
-        # True values are verified with Matlab
-        ad_truth = 1.648721270700128 * np.eye(2)
-        bd_truth = np.full((2, 1), 0.412180317675032)
-        cd_truth = cc
-        dd_truth = np.array([[0.4375], [0.5], [0.3125]])
-        dt_requested = 0.5
-
-        ad, bd, cd, dd, dt = c2d((ac, bc, cc, dc), dt_requested,
-                                 method='impulse')
-
-        assert_array_almost_equal(ad_truth, ad)
-        assert_array_almost_equal(bd_truth, bd)
-        assert_array_almost_equal(cd_truth, cd)
-        assert_array_almost_equal(dd_truth, dd)
-        assert_almost_equal(dt_requested, dt)
-
-    def test_gbt(self):
-        ac = np.eye(2)
-        bc = np.full((2, 1), 0.5)
-        cc = np.array([[0.75, 1.0], [1.0, 1.0], [1.0, 0.25]])
-        dc = np.array([[0.0], [0.0], [-0.33]])
-
-        dt_requested = 0.5
-        alpha = 1.0 / 3.0
-
-        ad_truth = 1.6 * np.eye(2)
-        bd_truth = np.full((2, 1), 0.3)
-        cd_truth = np.array([[0.9, 1.2],
-                             [1.2, 1.2],
-                             [1.2, 0.3]])
-        dd_truth = np.array([[0.175],
-                             [0.2],
-                             [-0.205]])
-
-        ad, bd, cd, dd, dt = c2d((ac, bc, cc, dc), dt_requested,
-                                 method='gbt', alpha=alpha)
-
-        assert_array_almost_equal(ad_truth, ad)
-        assert_array_almost_equal(bd_truth, bd)
-        assert_array_almost_equal(cd_truth, cd)
-        assert_array_almost_equal(dd_truth, dd)
-
-    def test_euler(self):
-        ac = np.eye(2)
-        bc = np.full((2, 1), 0.5)
-        cc = np.array([[0.75, 1.0], [1.0, 1.0], [1.0, 0.25]])
-        dc = np.array([[0.0], [0.0], [-0.33]])
-
-        dt_requested = 0.5
-
-        ad_truth = 1.5 * np.eye(2)
-        bd_truth = np.full((2, 1), 0.25)
-        cd_truth = np.array([[0.75, 1.0],
-                             [1.0, 1.0],
-                             [1.0, 0.25]])
-        dd_truth = dc
-
-        ad, bd, cd, dd, dt = c2d((ac, bc, cc, dc), dt_requested,
-                                 method='euler')
-
-        assert_array_almost_equal(ad_truth, ad)
-        assert_array_almost_equal(bd_truth, bd)
-        assert_array_almost_equal(cd_truth, cd)
-        assert_array_almost_equal(dd_truth, dd)
-        assert_almost_equal(dt_requested, dt)
-
-    def test_backward_diff(self):
-        ac = np.eye(2)
-        bc = np.full((2, 1), 0.5)
-        cc = np.array([[0.75, 1.0], [1.0, 1.0], [1.0, 0.25]])
-        dc = np.array([[0.0], [0.0], [-0.33]])
-
-        dt_requested = 0.5
-
-        ad_truth = 2.0 * np.eye(2)
-        bd_truth = np.full((2, 1), 0.5)
-        cd_truth = np.array([[1.5, 2.0],
-                             [2.0, 2.0],
-                             [2.0, 0.5]])
-        dd_truth = np.array([[0.875],
-                             [1.0],
-                             [0.295]])
-
-        ad, bd, cd, dd, dt = c2d((ac, bc, cc, dc), dt_requested,
-                                 method='backward_diff')
-
-        assert_array_almost_equal(ad_truth, ad)
-        assert_array_almost_equal(bd_truth, bd)
-        assert_array_almost_equal(cd_truth, cd)
-        assert_array_almost_equal(dd_truth, dd)
-
-    def test_bilinear(self):
-        ac = np.eye(2)
-        bc = np.full((2, 1), 0.5)
-        cc = np.array([[0.75, 1.0], [1.0, 1.0], [1.0, 0.25]])
-        dc = np.array([[0.0], [0.0], [-0.33]])
-
-        dt_requested = 0.5
-
-        ad_truth = (5.0 / 3.0) * np.eye(2)
-        bd_truth = np.full((2, 1), 1.0 / 3.0)
-        cd_truth = np.array([[1.0, 4.0 / 3.0],
-                             [4.0 / 3.0, 4.0 / 3.0],
-                             [4.0 / 3.0, 1.0 / 3.0]])
-        dd_truth = np.array([[0.291666666666667],
-                             [1.0 / 3.0],
-                             [-0.121666666666667]])
-
-        ad, bd, cd, dd, dt = c2d((ac, bc, cc, dc), dt_requested,
-                                 method='bilinear')
-
-        assert_array_almost_equal(ad_truth, ad)
-        assert_array_almost_equal(bd_truth, bd)
-        assert_array_almost_equal(cd_truth, cd)
-        assert_array_almost_equal(dd_truth, dd)
-        assert_almost_equal(dt_requested, dt)
-
-        # Same continuous system again, but change sampling rate
-
-        ad_truth = 1.4 * np.eye(2)
-        bd_truth = np.full((2, 1), 0.2)
-        cd_truth = np.array([[0.9, 1.2], [1.2, 1.2], [1.2, 0.3]])
-        dd_truth = np.array([[0.175], [0.2], [-0.205]])
-
-        dt_requested = 1.0 / 3.0
-
-        ad, bd, cd, dd, dt = c2d((ac, bc, cc, dc), dt_requested,
-                                 method='bilinear')
-
-        assert_array_almost_equal(ad_truth, ad)
-        assert_array_almost_equal(bd_truth, bd)
-        assert_array_almost_equal(cd_truth, cd)
-        assert_array_almost_equal(dd_truth, dd)
-        assert_almost_equal(dt_requested, dt)
-
-    def test_transferfunction(self):
-        numc = np.array([0.25, 0.25, 0.5])
-        denc = np.array([0.75, 0.75, 1.0])
-
-        numd = np.array([[1.0 / 3.0, -0.427419169438754, 0.221654141101125]])
-        dend = np.array([1.0, -1.351394049721225, 0.606530659712634])
-
-        dt_requested = 0.5
-
-        num, den, dt = c2d((numc, denc), dt_requested, method='zoh')
-
-        assert_array_almost_equal(numd, num)
-        assert_array_almost_equal(dend, den)
-        assert_almost_equal(dt_requested, dt)
-
-    def test_zerospolesgain(self):
-        zeros_c = np.array([0.5, -0.5])
-        poles_c = np.array([1.j / np.sqrt(2), -1.j / np.sqrt(2)])
-        k_c = 1.0
-
-        zeros_d = [1.23371727305860, 0.735356894461267]
-        polls_d = [0.938148335039729 + 0.346233593780536j,
-                   0.938148335039729 - 0.346233593780536j]
-        k_d = 1.0
-
-        dt_requested = 0.5
-
-        zeros, poles, k, dt = c2d((zeros_c, poles_c, k_c), dt_requested,
-                                  method='zoh')
-
-        assert_array_almost_equal(zeros_d, zeros)
-        assert_array_almost_equal(polls_d, poles)
-        assert_almost_equal(k_d, k)
-        assert_almost_equal(dt_requested, dt)
-
-    def test_gbt_with_sio_tf_and_zpk(self):
-        """Test method='gbt' with alpha=0.25 for tf and zpk cases."""
-        # State space coefficients for the continuous SIO system.
-        A = -1.0
-        B = 1.0
-        C = 1.0
-        D = 0.5
-
-        # The continuous transfer function coefficients.
-        cnum, cden = ss2tf(A, B, C, D)
-
-        # Continuous zpk representation
-        cz, cp, ck = ss2zpk(A, B, C, D)
-
-        h = 1.0
-        alpha = 0.25
-
-        # Explicit formulas, in the scalar case.
-        Ad = (1 + (1 - alpha) * h * A) / (1 - alpha * h * A)
-        Bd = h * B / (1 - alpha * h * A)
-        Cd = C / (1 - alpha * h * A)
-        Dd = D + alpha * C * Bd
-
-        # Convert the explicit solution to tf
-        dnum, dden = ss2tf(Ad, Bd, Cd, Dd)
-
-        # Compute the discrete tf using cont2discrete.
-        c2dnum, c2dden, dt = c2d((cnum, cden), h, method='gbt', alpha=alpha)
-
-        assert_allclose(dnum, c2dnum)
-        assert_allclose(dden, c2dden)
-
-        # Convert explicit solution to zpk.
-        dz, dp, dk = ss2zpk(Ad, Bd, Cd, Dd)
-
-        # Compute the discrete zpk using cont2discrete.
-        c2dz, c2dp, c2dk, dt = c2d((cz, cp, ck), h, method='gbt', alpha=alpha)
-
-        assert_allclose(dz, c2dz)
-        assert_allclose(dp, c2dp)
-        assert_allclose(dk, c2dk)
-
-    def test_discrete_approx(self):
-        """
-        Test that the solution to the discrete approximation of a continuous
-        system actually approximates the solution to the continuous system.
-        This is an indirect test of the correctness of the implementation
-        of cont2discrete.
-        """
-
-        def u(t):
-            return np.sin(2.5 * t)
-
-        a = np.array([[-0.01]])
-        b = np.array([[1.0]])
-        c = np.array([[1.0]])
-        d = np.array([[0.2]])
-        x0 = 1.0
-
-        t = np.linspace(0, 10.0, 101)
-        dt = t[1] - t[0]
-        u1 = u(t)
-
-        # Use lsim to compute the solution to the continuous system.
-        t, yout, xout = lsim((a, b, c, d), T=t, U=u1, X0=x0)
-
-        # Convert the continuous system to a discrete approximation.
-        dsys = c2d((a, b, c, d), dt, method='bilinear')
-
-        # Use dlsim with the pairwise averaged input to compute the output
-        # of the discrete system.
-        u2 = 0.5 * (u1[:-1] + u1[1:])
-        t2 = t[:-1]
-        td2, yd2, xd2 = dlsim(dsys, u=u2.reshape(-1, 1), t=t2, x0=x0)
-
-        # ymid is the average of consecutive terms of the "exact" output
-        # computed by lsim2.  This is what the discrete approximation
-        # actually approximates.
-        ymid = 0.5 * (yout[:-1] + yout[1:])
-
-        assert_allclose(yd2.ravel(), ymid, rtol=1e-4)
-
-    def test_simo_tf(self):
-        # See gh-5753
-        tf = ([[1, 0], [1, 1]], [1, 1])
-        num, den, dt = c2d(tf, 0.01)
-
-        assert_equal(dt, 0.01)  # sanity check
-        assert_allclose(den, [1, -0.990404983], rtol=1e-3)
-        assert_allclose(num, [[1, -1], [1, -0.99004983]], rtol=1e-3)
-
-    def test_multioutput(self):
-        ts = 0.01  # time step
-
-        tf = ([[1, -3], [1, 5]], [1, 1])
-        num, den, dt = c2d(tf, ts)
-
-        tf1 = (tf[0][0], tf[1])
-        num1, den1, dt1 = c2d(tf1, ts)
-
-        tf2 = (tf[0][1], tf[1])
-        num2, den2, dt2 = c2d(tf2, ts)
-
-        # Sanity checks
-        assert_equal(dt, dt1)
-        assert_equal(dt, dt2)
-
-        # Check that we get the same results
-        assert_allclose(num, np.vstack((num1, num2)), rtol=1e-13)
-
-        # Single input, so the denominator should
-        # not be multidimensional like the numerator
-        assert_allclose(den, den1, rtol=1e-13)
-        assert_allclose(den, den2, rtol=1e-13)
-
-class TestC2dLti:
-    def test_c2d_ss(self):
-        # StateSpace
-        A = np.array([[-0.3, 0.1], [0.2, -0.7]])
-        B = np.array([[0], [1]])
-        C = np.array([[1, 0]])
-        D = 0
-
-        A_res = np.array([[0.985136404135682, 0.004876671474795],
-                          [0.009753342949590, 0.965629718236502]])
-        B_res = np.array([[0.000122937599964], [0.049135527547844]])
-
-        sys_ssc = lti(A, B, C, D)
-        sys_ssd = sys_ssc.to_discrete(0.05)
-
-        assert_allclose(sys_ssd.A, A_res)
-        assert_allclose(sys_ssd.B, B_res)
-        assert_allclose(sys_ssd.C, C)
-        assert_allclose(sys_ssd.D, D)
-
-    def test_c2d_tf(self):
-
-        sys = lti([0.5, 0.3], [1.0, 0.4])
-        sys = sys.to_discrete(0.005)
-
-        # Matlab results
-        num_res = np.array([0.5, -0.485149004980066])
-        den_res = np.array([1.0, -0.980198673306755])
-
-        # Somehow a lot of numerical errors
-        assert_allclose(sys.den, den_res, atol=0.02)
-        assert_allclose(sys.num, num_res, atol=0.02)
-
-
-class TestC2dInvariants:
-    # Some test cases for checking the invariances.
-    # Array of triplets: (system, sample time, number of samples)
-    cases = [
-        (tf2ss([1, 1], [1, 1.5, 1]), 0.25, 10),
-        (tf2ss([1, 2], [1, 1.5, 3, 1]), 0.5, 10),
-        (tf2ss(0.1, [1, 1, 2, 1]), 0.5, 10),
-    ]
-
-    # Check that systems discretized with the impulse-invariant
-    # method really hold the invariant
-    @pytest.mark.parametrize("sys,sample_time,samples_number", cases)
-    def test_impulse_invariant(self, sys, sample_time, samples_number):
-        time = np.arange(samples_number) * sample_time
-        _, yout_cont = impulse(sys, T=time)
-        _, yout_disc = dimpulse(c2d(sys, sample_time, method='impulse'),
-                                n=len(time))
-        assert_allclose(sample_time * yout_cont.ravel(), yout_disc[0].ravel())
-
-    # Step invariant should hold for ZOH discretized systems
-    @pytest.mark.parametrize("sys,sample_time,samples_number", cases)
-    def test_step_invariant(self, sys, sample_time, samples_number):
-        time = np.arange(samples_number) * sample_time
-        _, yout_cont = step(sys, T=time)
-        _, yout_disc = dstep(c2d(sys, sample_time, method='zoh'), n=len(time))
-        assert_allclose(yout_cont.ravel(), yout_disc[0].ravel())
-
-    # Linear invariant should hold for FOH discretized systems
-    @pytest.mark.parametrize("sys,sample_time,samples_number", cases)
-    def test_linear_invariant(self, sys, sample_time, samples_number):
-        time = np.arange(samples_number) * sample_time
-        _, yout_cont, _ = lsim(sys, T=time, U=time)
-        _, yout_disc, _ = dlsim(c2d(sys, sample_time, method='foh'), u=time)
-        assert_allclose(yout_cont.ravel(), yout_disc.ravel())
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_czt.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_czt.py
deleted file mode 100644
index b4a3c0e37c83812f525f2565144fcf9b1d7eeffd..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_czt.py
+++ /dev/null
@@ -1,219 +0,0 @@
-# This program is public domain
-# Authors: Paul Kienzle, Nadav Horesh
-'''
-A unit test module for czt.py
-'''
-import pytest
-from numpy.testing import assert_allclose
-from scipy.fft import fft
-from scipy.signal import (czt, zoom_fft, czt_points, CZT, ZoomFFT)
-import numpy as np
-
-
-def check_czt(x):
-    # Check that czt is the equivalent of normal fft
-    y = fft(x)
-    y1 = czt(x)
-    assert_allclose(y1, y, rtol=1e-13)
-
-    # Check that interpolated czt is the equivalent of normal fft
-    y = fft(x, 100*len(x))
-    y1 = czt(x, 100*len(x))
-    assert_allclose(y1, y, rtol=1e-12)
-
-
-def check_zoom_fft(x):
-    # Check that zoom_fft is the equivalent of normal fft
-    y = fft(x)
-    y1 = zoom_fft(x, [0, 2-2./len(y)], endpoint=True)
-    assert_allclose(y1, y, rtol=1e-11, atol=1e-14)
-    y1 = zoom_fft(x, [0, 2])
-    assert_allclose(y1, y, rtol=1e-11, atol=1e-14)
-
-    # Test fn scalar
-    y1 = zoom_fft(x, 2-2./len(y), endpoint=True)
-    assert_allclose(y1, y, rtol=1e-11, atol=1e-14)
-    y1 = zoom_fft(x, 2)
-    assert_allclose(y1, y, rtol=1e-11, atol=1e-14)
-
-    # Check that zoom_fft with oversampling is equivalent to zero padding
-    over = 10
-    yover = fft(x, over*len(x))
-    y2 = zoom_fft(x, [0, 2-2./len(yover)], m=len(yover), endpoint=True)
-    assert_allclose(y2, yover, rtol=1e-12, atol=1e-10)
-    y2 = zoom_fft(x, [0, 2], m=len(yover))
-    assert_allclose(y2, yover, rtol=1e-12, atol=1e-10)
-
-    # Check that zoom_fft works on a subrange
-    w = np.linspace(0, 2-2./len(x), len(x))
-    f1, f2 = w[3], w[6]
-    y3 = zoom_fft(x, [f1, f2], m=3*over+1, endpoint=True)
-    idx3 = slice(3*over, 6*over+1)
-    assert_allclose(y3, yover[idx3], rtol=1e-13)
-
-
-def test_1D():
-    # Test of 1D version of the transforms
-
-    np.random.seed(0)  # Deterministic randomness
-
-    # Random signals
-    lengths = np.random.randint(8, 200, 20)
-    np.append(lengths, 1)
-    for length in lengths:
-        x = np.random.random(length)
-        check_zoom_fft(x)
-        check_czt(x)
-
-    # Gauss
-    t = np.linspace(-2, 2, 128)
-    x = np.exp(-t**2/0.01)
-    check_zoom_fft(x)
-
-    # Linear
-    x = [1, 2, 3, 4, 5, 6, 7]
-    check_zoom_fft(x)
-
-    # Check near powers of two
-    check_zoom_fft(range(126-31))
-    check_zoom_fft(range(127-31))
-    check_zoom_fft(range(128-31))
-    check_zoom_fft(range(129-31))
-    check_zoom_fft(range(130-31))
-
-    # Check transform on n-D array input
-    x = np.reshape(np.arange(3*2*28), (3, 2, 28))
-    y1 = zoom_fft(x, [0, 2-2./28])
-    y2 = zoom_fft(x[2, 0, :], [0, 2-2./28])
-    assert_allclose(y1[2, 0], y2, rtol=1e-13, atol=1e-12)
-
-    y1 = zoom_fft(x, [0, 2], endpoint=False)
-    y2 = zoom_fft(x[2, 0, :], [0, 2], endpoint=False)
-    assert_allclose(y1[2, 0], y2, rtol=1e-13, atol=1e-12)
-
-    # Random (not a test condition)
-    x = np.random.rand(101)
-    check_zoom_fft(x)
-
-    # Spikes
-    t = np.linspace(0, 1, 128)
-    x = np.sin(2*np.pi*t*5)+np.sin(2*np.pi*t*13)
-    check_zoom_fft(x)
-
-    # Sines
-    x = np.zeros(100, dtype=complex)
-    x[[1, 5, 21]] = 1
-    check_zoom_fft(x)
-
-    # Sines plus complex component
-    x += 1j*np.linspace(0, 0.5, x.shape[0])
-    check_zoom_fft(x)
-
-
-def test_large_prime_lengths():
-    np.random.seed(0)  # Deterministic randomness
-    for N in (101, 1009, 10007):
-        x = np.random.rand(N)
-        y = fft(x)
-        y1 = czt(x)
-        assert_allclose(y, y1, rtol=1e-12)
-
-
-@pytest.mark.slow
-def test_czt_vs_fft():
-    np.random.seed(123)
-    random_lengths = np.random.exponential(100000, size=10).astype('int')
-    for n in random_lengths:
-        a = np.random.randn(n)
-        assert_allclose(czt(a), fft(a), rtol=1e-11)
-
-
-def test_empty_input():
-    with pytest.raises(ValueError, match='Invalid number of CZT'):
-        czt([])
-    with pytest.raises(ValueError, match='Invalid number of CZT'):
-        zoom_fft([], 0.5)
-
-
-def test_0_rank_input():
-    with pytest.raises(IndexError, match='tuple index out of range'):
-        czt(5)
-    with pytest.raises(IndexError, match='tuple index out of range'):
-        zoom_fft(5, 0.5)
-
-
-@pytest.mark.parametrize('impulse', ([0, 0, 1], [0, 0, 1, 0, 0],
-                                     np.concatenate((np.array([0, 0, 1]),
-                                                     np.zeros(100)))))
-@pytest.mark.parametrize('m', (1, 3, 5, 8, 101, 1021))
-@pytest.mark.parametrize('a', (1, 2, 0.5, 1.1))
-# Step that tests away from the unit circle, but not so far it explodes from
-# numerical error
-@pytest.mark.parametrize('w', (None, 0.98534 + 0.17055j))
-def test_czt_math(impulse, m, w, a):
-    # z-transform of an impulse is 1 everywhere
-    assert_allclose(czt(impulse[2:], m=m, w=w, a=a),
-                    np.ones(m), rtol=1e-10)
-
-    # z-transform of a delayed impulse is z**-1
-    assert_allclose(czt(impulse[1:], m=m, w=w, a=a),
-                    czt_points(m=m, w=w, a=a)**-1, rtol=1e-10)
-
-    # z-transform of a 2-delayed impulse is z**-2
-    assert_allclose(czt(impulse, m=m, w=w, a=a),
-                    czt_points(m=m, w=w, a=a)**-2, rtol=1e-10)
-
-
-def test_int_args():
-    # Integer argument `a` was producing all 0s
-    assert_allclose(abs(czt([0, 1], m=10, a=2)), 0.5*np.ones(10), rtol=1e-15)
-    assert_allclose(czt_points(11, w=2), 1/(2**np.arange(11)), rtol=1e-30)
-
-
-def test_czt_points():
-    for N in (1, 2, 3, 8, 11, 100, 101, 10007):
-        assert_allclose(czt_points(N), np.exp(2j*np.pi*np.arange(N)/N),
-                        rtol=1e-30)
-
-    assert_allclose(czt_points(7, w=1), np.ones(7), rtol=1e-30)
-    assert_allclose(czt_points(11, w=2.), 1/(2**np.arange(11)), rtol=1e-30)
-
-    func = CZT(12, m=11, w=2., a=1)
-    assert_allclose(func.points(), 1/(2**np.arange(11)), rtol=1e-30)
-
-
-@pytest.mark.parametrize('cls, args', [(CZT, (100,)), (ZoomFFT, (100, 0.2))])
-def test_CZT_size_mismatch(cls, args):
-    # Data size doesn't match function's expected size
-    myfunc = cls(*args)
-    with pytest.raises(ValueError, match='CZT defined for'):
-        myfunc(np.arange(5))
-
-
-def test_invalid_range():
-    with pytest.raises(ValueError, match='2-length sequence'):
-        ZoomFFT(100, [1, 2, 3])
-
-
-@pytest.mark.parametrize('m', [0, -11, 5.5, 4.0])
-def test_czt_points_errors(m):
-    # Invalid number of points
-    with pytest.raises(ValueError, match='Invalid number of CZT'):
-        czt_points(m)
-
-
-@pytest.mark.parametrize('size', [0, -5, 3.5, 4.0])
-def test_nonsense_size(size):
-    # Numpy and Scipy fft() give ValueError for 0 output size, so we do, too
-    with pytest.raises(ValueError, match='Invalid number of CZT'):
-        CZT(size, 3)
-    with pytest.raises(ValueError, match='Invalid number of CZT'):
-        ZoomFFT(size, 0.2, 3)
-    with pytest.raises(ValueError, match='Invalid number of CZT'):
-        CZT(3, size)
-    with pytest.raises(ValueError, match='Invalid number of CZT'):
-        ZoomFFT(3, 0.2, size)
-    with pytest.raises(ValueError, match='Invalid number of CZT'):
-        czt([1, 2, 3], size)
-    with pytest.raises(ValueError, match='Invalid number of CZT'):
-        zoom_fft([1, 2, 3], 0.2, size)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_filter_design.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_filter_design.py
deleted file mode 100644
index 47d24323edbfa35788d9b6f548d6a8f288f14194..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_filter_design.py
+++ /dev/null
@@ -1,4442 +0,0 @@
-import warnings
-
-from scipy._lib import _pep440
-import numpy as np
-from numpy.testing import (assert_array_almost_equal,
-                           assert_array_almost_equal_nulp,
-                           assert_array_equal, assert_array_less,
-                           assert_equal, assert_,
-                           assert_allclose, assert_warns, suppress_warnings)
-import pytest
-from pytest import raises as assert_raises
-
-from numpy import array, spacing, sin, pi, sort, sqrt
-from scipy.signal import (argrelextrema, BadCoefficients, bessel, besselap, bilinear,
-                          buttap, butter, buttord, cheb1ap, cheb1ord, cheb2ap,
-                          cheb2ord, cheby1, cheby2, ellip, ellipap, ellipord,
-                          firwin, freqs_zpk, freqs, freqz, freqz_zpk,
-                          gammatone, group_delay, iircomb, iirdesign, iirfilter,
-                          iirnotch, iirpeak, lp2bp, lp2bs, lp2hp, lp2lp, normalize,
-                          medfilt, order_filter,
-                          sos2tf, sos2zpk, sosfreqz, tf2sos, tf2zpk, zpk2sos,
-                          zpk2tf, bilinear_zpk, lp2lp_zpk, lp2hp_zpk, lp2bp_zpk,
-                          lp2bs_zpk)
-from scipy.signal._filter_design import (_cplxreal, _cplxpair, _norm_factor,
-                                        _bessel_poly, _bessel_zeros)
-
-try:
-    import mpmath
-except ImportError:
-    mpmath = None
-
-
-def mpmath_check(min_ver):
-    return pytest.mark.skipif(
-        mpmath is None
-        or _pep440.parse(mpmath.__version__) < _pep440.Version(min_ver),
-        reason=f"mpmath version >= {min_ver} required",
-    )
-
-
-class TestCplxPair:
-
-    def test_trivial_input(self):
-        assert_equal(_cplxpair([]).size, 0)
-        assert_equal(_cplxpair(1), 1)
-
-    def test_output_order(self):
-        assert_allclose(_cplxpair([1+1j, 1-1j]), [1-1j, 1+1j])
-
-        a = [1+1j, 1+1j, 1, 1-1j, 1-1j, 2]
-        b = [1-1j, 1+1j, 1-1j, 1+1j, 1, 2]
-        assert_allclose(_cplxpair(a), b)
-
-        # points spaced around the unit circle
-        z = np.exp(2j*pi*array([4, 3, 5, 2, 6, 1, 0])/7)
-        z1 = np.copy(z)
-        np.random.shuffle(z)
-        assert_allclose(_cplxpair(z), z1)
-        np.random.shuffle(z)
-        assert_allclose(_cplxpair(z), z1)
-        np.random.shuffle(z)
-        assert_allclose(_cplxpair(z), z1)
-
-        # Should be able to pair up all the conjugates
-        x = np.random.rand(10000) + 1j * np.random.rand(10000)
-        y = x.conj()
-        z = np.random.rand(10000)
-        x = np.concatenate((x, y, z))
-        np.random.shuffle(x)
-        c = _cplxpair(x)
-
-        # Every other element of head should be conjugates:
-        assert_allclose(c[0:20000:2], np.conj(c[1:20000:2]))
-        # Real parts of head should be in sorted order:
-        assert_allclose(c[0:20000:2].real, np.sort(c[0:20000:2].real))
-        # Tail should be sorted real numbers:
-        assert_allclose(c[20000:], np.sort(c[20000:]))
-
-    def test_real_integer_input(self):
-        assert_array_equal(_cplxpair([2, 0, 1]), [0, 1, 2])
-
-    def test_tolerances(self):
-        eps = spacing(1)
-        assert_allclose(_cplxpair([1j, -1j, 1+1j*eps], tol=2*eps),
-                        [-1j, 1j, 1+1j*eps])
-
-        # sorting close to 0
-        assert_allclose(_cplxpair([-eps+1j, +eps-1j]), [-1j, +1j])
-        assert_allclose(_cplxpair([+eps+1j, -eps-1j]), [-1j, +1j])
-        assert_allclose(_cplxpair([+1j, -1j]), [-1j, +1j])
-
-    def test_unmatched_conjugates(self):
-        # 1+2j is unmatched
-        assert_raises(ValueError, _cplxpair, [1+3j, 1-3j, 1+2j])
-
-        # 1+2j and 1-3j are unmatched
-        assert_raises(ValueError, _cplxpair, [1+3j, 1-3j, 1+2j, 1-3j])
-
-        # 1+3j is unmatched
-        assert_raises(ValueError, _cplxpair, [1+3j, 1-3j, 1+3j])
-
-        # Not conjugates
-        assert_raises(ValueError, _cplxpair, [4+5j, 4+5j])
-        assert_raises(ValueError, _cplxpair, [1-7j, 1-7j])
-
-        # No pairs
-        assert_raises(ValueError, _cplxpair, [1+3j])
-        assert_raises(ValueError, _cplxpair, [1-3j])
-
-
-class TestCplxReal:
-
-    def test_trivial_input(self):
-        assert_equal(_cplxreal([]), ([], []))
-        assert_equal(_cplxreal(1), ([], [1]))
-
-    def test_output_order(self):
-        zc, zr = _cplxreal(np.roots(array([1, 0, 0, 1])))
-        assert_allclose(np.append(zc, zr), [1/2 + 1j*sin(pi/3), -1])
-
-        eps = spacing(1)
-
-        a = [0+1j, 0-1j, eps + 1j, eps - 1j, -eps + 1j, -eps - 1j,
-             1, 4, 2, 3, 0, 0,
-             2+3j, 2-3j,
-             1-eps + 1j, 1+2j, 1-2j, 1+eps - 1j,  # sorts out of order
-             3+1j, 3+1j, 3+1j, 3-1j, 3-1j, 3-1j,
-             2-3j, 2+3j]
-        zc, zr = _cplxreal(a)
-        assert_allclose(zc, [1j, 1j, 1j, 1+1j, 1+2j, 2+3j, 2+3j, 3+1j, 3+1j,
-                             3+1j])
-        assert_allclose(zr, [0, 0, 1, 2, 3, 4])
-
-        z = array([1-eps + 1j, 1+2j, 1-2j, 1+eps - 1j, 1+eps+3j, 1-2*eps-3j,
-                   0+1j, 0-1j, 2+4j, 2-4j, 2+3j, 2-3j, 3+7j, 3-7j, 4-eps+1j,
-                   4+eps-2j, 4-1j, 4-eps+2j])
-
-        zc, zr = _cplxreal(z)
-        assert_allclose(zc, [1j, 1+1j, 1+2j, 1+3j, 2+3j, 2+4j, 3+7j, 4+1j,
-                             4+2j])
-        assert_equal(zr, [])
-
-    def test_unmatched_conjugates(self):
-        # 1+2j is unmatched
-        assert_raises(ValueError, _cplxreal, [1+3j, 1-3j, 1+2j])
-
-        # 1+2j and 1-3j are unmatched
-        assert_raises(ValueError, _cplxreal, [1+3j, 1-3j, 1+2j, 1-3j])
-
-        # 1+3j is unmatched
-        assert_raises(ValueError, _cplxreal, [1+3j, 1-3j, 1+3j])
-
-        # No pairs
-        assert_raises(ValueError, _cplxreal, [1+3j])
-        assert_raises(ValueError, _cplxreal, [1-3j])
-
-    def test_real_integer_input(self):
-        zc, zr = _cplxreal([2, 0, 1, 4])
-        assert_array_equal(zc, [])
-        assert_array_equal(zr, [0, 1, 2, 4])
-
-
-class TestTf2zpk:
-
-    @pytest.mark.parametrize('dt', (np.float64, np.complex128))
-    def test_simple(self, dt):
-        z_r = np.array([0.5, -0.5])
-        p_r = np.array([1.j / np.sqrt(2), -1.j / np.sqrt(2)])
-        # Sort the zeros/poles so that we don't fail the test if the order
-        # changes
-        z_r.sort()
-        p_r.sort()
-        b = np.poly(z_r).astype(dt)
-        a = np.poly(p_r).astype(dt)
-
-        z, p, k = tf2zpk(b, a)
-        z.sort()
-        # The real part of `p` is ~0.0, so sort by imaginary part
-        p = p[np.argsort(p.imag)]
-
-        assert_array_almost_equal(z, z_r)
-        assert_array_almost_equal(p, p_r)
-        assert_array_almost_equal(k, 1.)
-        assert k.dtype == dt
-
-    def test_bad_filter(self):
-        # Regression test for #651: better handling of badly conditioned
-        # filter coefficients.
-        with suppress_warnings():
-            warnings.simplefilter("error", BadCoefficients)
-            assert_raises(BadCoefficients, tf2zpk, [1e-15], [1.0, 1.0])
-
-
-class TestZpk2Tf:
-
-    def test_identity(self):
-        """Test the identity transfer function."""
-        z = []
-        p = []
-        k = 1.
-        b, a = zpk2tf(z, p, k)
-        b_r = np.array([1.])  # desired result
-        a_r = np.array([1.])  # desired result
-        # The test for the *type* of the return values is a regression
-        # test for ticket #1095. In the case p=[], zpk2tf used to
-        # return the scalar 1.0 instead of array([1.0]).
-        assert_array_equal(b, b_r)
-        assert_(isinstance(b, np.ndarray))
-        assert_array_equal(a, a_r)
-        assert_(isinstance(a, np.ndarray))
-
-
-class TestSos2Zpk:
-
-    def test_basic(self):
-        sos = [[1, 0, 1, 1, 0, -0.81],
-               [1, 0, 0, 1, 0, +0.49]]
-        z, p, k = sos2zpk(sos)
-        z2 = [1j, -1j, 0, 0]
-        p2 = [0.9, -0.9, 0.7j, -0.7j]
-        k2 = 1
-        assert_array_almost_equal(sort(z), sort(z2), decimal=4)
-        assert_array_almost_equal(sort(p), sort(p2), decimal=4)
-        assert_array_almost_equal(k, k2)
-
-        sos = [[1.00000, +0.61803, 1.0000, 1.00000, +0.60515, 0.95873],
-               [1.00000, -1.61803, 1.0000, 1.00000, -1.58430, 0.95873],
-               [1.00000, +1.00000, 0.0000, 1.00000, +0.97915, 0.00000]]
-        z, p, k = sos2zpk(sos)
-        z2 = [-0.3090 + 0.9511j, -0.3090 - 0.9511j, 0.8090 + 0.5878j,
-              0.8090 - 0.5878j, -1.0000 + 0.0000j, 0]
-        p2 = [-0.3026 + 0.9312j, -0.3026 - 0.9312j, 0.7922 + 0.5755j,
-              0.7922 - 0.5755j, -0.9791 + 0.0000j, 0]
-        k2 = 1
-        assert_array_almost_equal(sort(z), sort(z2), decimal=4)
-        assert_array_almost_equal(sort(p), sort(p2), decimal=4)
-
-        sos = array([[1, 2, 3, 1, 0.2, 0.3],
-                     [4, 5, 6, 1, 0.4, 0.5]])
-        z = array([-1 - 1.41421356237310j, -1 + 1.41421356237310j,
-                  -0.625 - 1.05326872164704j, -0.625 + 1.05326872164704j])
-        p = array([-0.2 - 0.678232998312527j, -0.2 + 0.678232998312527j,
-                  -0.1 - 0.538516480713450j, -0.1 + 0.538516480713450j])
-        k = 4
-        z2, p2, k2 = sos2zpk(sos)
-        assert_allclose(_cplxpair(z2), z)
-        assert_allclose(_cplxpair(p2), p)
-        assert_allclose(k2, k)
-
-    def test_fewer_zeros(self):
-        """Test not the expected number of p/z (effectively at origin)."""
-        sos = butter(3, 0.1, output='sos')
-        z, p, k = sos2zpk(sos)
-        assert len(z) == 4
-        assert len(p) == 4
-
-        sos = butter(12, [5., 30.], 'bandpass', fs=1200., analog=False,
-                    output='sos')
-        with pytest.warns(BadCoefficients, match='Badly conditioned'):
-            z, p, k = sos2zpk(sos)
-        assert len(z) == 24
-        assert len(p) == 24
-
-
-class TestSos2Tf:
-
-    def test_basic(self):
-        sos = [[1, 1, 1, 1, 0, -1],
-               [-2, 3, 1, 1, 10, 1]]
-        b, a = sos2tf(sos)
-        assert_array_almost_equal(b, [-2, 1, 2, 4, 1])
-        assert_array_almost_equal(a, [1, 10, 0, -10, -1])
-
-
-class TestTf2Sos:
-
-    def test_basic(self):
-        num = [2, 16, 44, 56, 32]
-        den = [3, 3, -15, 18, -12]
-        sos = tf2sos(num, den)
-        sos2 = [[0.6667, 4.0000, 5.3333, 1.0000, +2.0000, -4.0000],
-                [1.0000, 2.0000, 2.0000, 1.0000, -1.0000, +1.0000]]
-        assert_array_almost_equal(sos, sos2, decimal=4)
-
-        b = [1, -3, 11, -27, 18]
-        a = [16, 12, 2, -4, -1]
-        sos = tf2sos(b, a)
-        sos2 = [[0.0625, -0.1875, 0.1250, 1.0000, -0.2500, -0.1250],
-                [1.0000, +0.0000, 9.0000, 1.0000, +1.0000, +0.5000]]
-        # assert_array_almost_equal(sos, sos2, decimal=4)
-
-    @pytest.mark.parametrize('b, a, analog, sos',
-                             [([1], [1], False, [[1., 0., 0., 1., 0., 0.]]),
-                              ([1], [1], True, [[0., 0., 1., 0., 0., 1.]]),
-                              ([1], [1., 0., -1.01, 0, 0.01], False,
-                               [[1., 0., 0., 1., 0., -0.01],
-                                [1., 0., 0., 1., 0., -1]]),
-                              ([1], [1., 0., -1.01, 0, 0.01], True,
-                               [[0., 0., 1., 1., 0., -1],
-                                [0., 0., 1., 1., 0., -0.01]])])
-    def test_analog(self, b, a, analog, sos):
-        sos2 = tf2sos(b, a, analog=analog)
-        assert_array_almost_equal(sos, sos2, decimal=4)
-
-
-class TestZpk2Sos:
-
-    @pytest.mark.parametrize('dt', 'fdgFDG')
-    @pytest.mark.parametrize('pairing, analog',
-                             [('nearest', False),
-                              ('keep_odd', False),
-                              ('minimal', False),
-                              ('minimal', True)])
-    def test_dtypes(self, dt, pairing, analog):
-        z = np.array([-1, -1]).astype(dt)
-        ct = dt.upper()  # the poles have to be complex
-        p = np.array([0.57149 + 0.29360j, 0.57149 - 0.29360j]).astype(ct)
-        k = np.array(1).astype(dt)
-        sos = zpk2sos(z, p, k, pairing=pairing, analog=analog)
-        sos2 = [[1, 2, 1, 1, -1.14298, 0.41280]]  # octave & MATLAB
-        assert_array_almost_equal(sos, sos2, decimal=4)
-
-    def test_basic(self):
-        for pairing in ('nearest', 'keep_odd'):
-            #
-            # Cases that match octave
-            #
-
-            z = [-1, -1]
-            p = [0.57149 + 0.29360j, 0.57149 - 0.29360j]
-            k = 1
-            sos = zpk2sos(z, p, k, pairing=pairing)
-            sos2 = [[1, 2, 1, 1, -1.14298, 0.41280]]  # octave & MATLAB
-            assert_array_almost_equal(sos, sos2, decimal=4)
-
-            z = [1j, -1j]
-            p = [0.9, -0.9, 0.7j, -0.7j]
-            k = 1
-            sos = zpk2sos(z, p, k, pairing=pairing)
-            sos2 = [[1, 0, 1, 1, 0, +0.49],
-                    [1, 0, 0, 1, 0, -0.81]]  # octave
-            # sos2 = [[0, 0, 1, 1, -0.9, 0],
-            #         [1, 0, 1, 1, 0.9, 0]]  # MATLAB
-            assert_array_almost_equal(sos, sos2, decimal=4)
-
-            z = []
-            p = [0.8, -0.5+0.25j, -0.5-0.25j]
-            k = 1.
-            sos = zpk2sos(z, p, k, pairing=pairing)
-            sos2 = [[1., 0., 0., 1., 1., 0.3125],
-                    [1., 0., 0., 1., -0.8, 0.]]  # octave, MATLAB fails
-            assert_array_almost_equal(sos, sos2, decimal=4)
-
-            z = [1., 1., 0.9j, -0.9j]
-            p = [0.99+0.01j, 0.99-0.01j, 0.1+0.9j, 0.1-0.9j]
-            k = 1
-            sos = zpk2sos(z, p, k, pairing=pairing)
-            sos2 = [[1, 0, 0.81, 1, -0.2, 0.82],
-                    [1, -2, 1, 1, -1.98, 0.9802]]  # octave
-            # sos2 = [[1, -2, 1, 1,  -0.2, 0.82],
-            #         [1, 0, 0.81, 1, -1.98, 0.9802]]  # MATLAB
-            assert_array_almost_equal(sos, sos2, decimal=4)
-
-            z = [0.9+0.1j, 0.9-0.1j, -0.9]
-            p = [0.75+0.25j, 0.75-0.25j, 0.9]
-            k = 1
-            sos = zpk2sos(z, p, k, pairing=pairing)
-            if pairing == 'keep_odd':
-                sos2 = [[1, -1.8, 0.82, 1, -1.5, 0.625],
-                        [1, 0.9, 0, 1, -0.9, 0]]  # octave; MATLAB fails
-                assert_array_almost_equal(sos, sos2, decimal=4)
-            else:  # pairing == 'nearest'
-                sos2 = [[1, 0.9, 0, 1, -1.5, 0.625],
-                        [1, -1.8, 0.82, 1, -0.9, 0]]  # our algorithm
-                assert_array_almost_equal(sos, sos2, decimal=4)
-
-            #
-            # Cases that differ from octave:
-            #
-
-            z = [-0.3090 + 0.9511j, -0.3090 - 0.9511j, 0.8090 + 0.5878j,
-                 +0.8090 - 0.5878j, -1.0000 + 0.0000j]
-            p = [-0.3026 + 0.9312j, -0.3026 - 0.9312j, 0.7922 + 0.5755j,
-                 +0.7922 - 0.5755j, -0.9791 + 0.0000j]
-            k = 1
-            sos = zpk2sos(z, p, k, pairing=pairing)
-            # sos2 = [[1, 0.618, 1, 1, 0.6052, 0.95870],
-            #         [1, -1.618, 1, 1, -1.5844, 0.95878],
-            #         [1, 1, 0, 1, 0.9791, 0]]  # octave, MATLAB fails
-            sos2 = [[1, 1, 0, 1, +0.97915, 0],
-                    [1, 0.61803, 1, 1, +0.60515, 0.95873],
-                    [1, -1.61803, 1, 1, -1.58430, 0.95873]]
-            assert_array_almost_equal(sos, sos2, decimal=4)
-
-            z = [-1 - 1.4142j, -1 + 1.4142j,
-                 -0.625 - 1.0533j, -0.625 + 1.0533j]
-            p = [-0.2 - 0.6782j, -0.2 + 0.6782j,
-                 -0.1 - 0.5385j, -0.1 + 0.5385j]
-            k = 4
-            sos = zpk2sos(z, p, k, pairing=pairing)
-            sos2 = [[4, 8, 12, 1, 0.2, 0.3],
-                    [1, 1.25, 1.5, 1, 0.4, 0.5]]  # MATLAB
-            # sos2 = [[4, 8, 12, 1, 0.4, 0.5],
-            #         [1, 1.25, 1.5, 1, 0.2, 0.3]]  # octave
-            assert_allclose(sos, sos2, rtol=1e-4, atol=1e-4)
-
-            z = []
-            p = [0.2, -0.5+0.25j, -0.5-0.25j]
-            k = 1.
-            sos = zpk2sos(z, p, k, pairing=pairing)
-            sos2 = [[1., 0., 0., 1., -0.2, 0.],
-                    [1., 0., 0., 1., 1., 0.3125]]
-            # sos2 = [[1., 0., 0., 1., 1., 0.3125],
-            #         [1., 0., 0., 1., -0.2, 0]]  # octave, MATLAB fails
-            assert_array_almost_equal(sos, sos2, decimal=4)
-
-            # The next two examples are adapted from Leland B. Jackson,
-            # "Digital Filters and Signal Processing (1995) p.400:
-            # http://books.google.com/books?id=VZ8uabI1pNMC&lpg=PA400&ots=gRD9pi8Jua&dq=Pole%2Fzero%20pairing%20for%20minimum%20roundoff%20noise%20in%20BSF.&pg=PA400#v=onepage&q=Pole%2Fzero%20pairing%20for%20minimum%20roundoff%20noise%20in%20BSF.&f=false
-
-            deg2rad = np.pi / 180.
-            k = 1.
-
-            # first example
-            thetas = [22.5, 45, 77.5]
-            mags = [0.8, 0.6, 0.9]
-            z = np.array([np.exp(theta * deg2rad * 1j) for theta in thetas])
-            z = np.concatenate((z, np.conj(z)))
-            p = np.array([mag * np.exp(theta * deg2rad * 1j)
-                          for theta, mag in zip(thetas, mags)])
-            p = np.concatenate((p, np.conj(p)))
-            sos = zpk2sos(z, p, k)
-            # sos2 = [[1, -0.43288, 1, 1, -0.38959, 0.81],  # octave,
-            #         [1, -1.41421, 1, 1, -0.84853, 0.36],  # MATLAB fails
-            #         [1, -1.84776, 1, 1, -1.47821, 0.64]]
-            # Note that pole-zero pairing matches, but ordering is different
-            sos2 = [[1, -1.41421, 1, 1, -0.84853, 0.36],
-                    [1, -1.84776, 1, 1, -1.47821, 0.64],
-                    [1, -0.43288, 1, 1, -0.38959, 0.81]]
-            assert_array_almost_equal(sos, sos2, decimal=4)
-
-            # second example
-            z = np.array([np.exp(theta * deg2rad * 1j)
-                          for theta in (85., 10.)])
-            z = np.concatenate((z, np.conj(z), [1, -1]))
-            sos = zpk2sos(z, p, k)
-
-            # sos2 = [[1, -0.17431, 1, 1, -0.38959, 0.81],  # octave "wrong",
-            #         [1, -1.96962, 1, 1, -0.84853, 0.36],  # MATLAB fails
-            #         [1, 0, -1, 1, -1.47821, 0.64000]]
-            # Our pole-zero pairing matches the text, Octave does not
-            sos2 = [[1, 0, -1, 1, -0.84853, 0.36],
-                    [1, -1.96962, 1, 1, -1.47821, 0.64],
-                    [1, -0.17431, 1, 1, -0.38959, 0.81]]
-            assert_array_almost_equal(sos, sos2, decimal=4)
-
-    # these examples are taken from the doc string, and show the
-    # effect of the 'pairing' argument
-    @pytest.mark.parametrize('pairing, sos',
-                             [('nearest',
-                               np.array([[1., 1., 0.5, 1., -0.75, 0.],
-                                         [1., 1., 0., 1., -1.6, 0.65]])),
-                              ('keep_odd',
-                               np.array([[1., 1., 0, 1., -0.75, 0.],
-                                         [1., 1., 0.5, 1., -1.6, 0.65]])),
-                              ('minimal',
-                               np.array([[0., 1., 1., 0., 1., -0.75],
-                                         [1., 1., 0.5, 1., -1.6, 0.65]]))])
-    def test_pairing(self, pairing, sos):
-        z1 = np.array([-1, -0.5-0.5j, -0.5+0.5j])
-        p1 = np.array([0.75, 0.8+0.1j, 0.8-0.1j])
-        sos2 = zpk2sos(z1, p1, 1, pairing=pairing)
-        assert_array_almost_equal(sos, sos2, decimal=4)
-
-    @pytest.mark.parametrize('p, sos_dt',
-                             [([-1, 1, -0.1, 0.1],
-                               [[0., 0., 1., 1., 0., -0.01],
-                                [0., 0., 1., 1., 0., -1]]),
-                              ([-0.7071+0.7071j, -0.7071-0.7071j, -0.1j, 0.1j],
-                               [[0., 0., 1., 1., 0., 0.01],
-                                [0., 0., 1., 1., 1.4142, 1.]])])
-    def test_analog(self, p, sos_dt):
-        # test `analog` argument
-        # for discrete time, poles closest to unit circle should appear last
-        # for cont. time, poles closest to imaginary axis should appear last
-        sos2_dt = zpk2sos([], p, 1, pairing='minimal', analog=False)
-        sos2_ct = zpk2sos([], p, 1, pairing='minimal', analog=True)
-        assert_array_almost_equal(sos_dt, sos2_dt, decimal=4)
-        assert_array_almost_equal(sos_dt[::-1], sos2_ct, decimal=4)
-
-    def test_bad_args(self):
-        with pytest.raises(ValueError, match=r'pairing must be one of'):
-            zpk2sos([1], [2], 1, pairing='no_such_pairing')
-
-        with pytest.raises(ValueError, match=r'.*pairing must be "minimal"'):
-            zpk2sos([1], [2], 1, pairing='keep_odd', analog=True)
-
-        with pytest.raises(ValueError,
-                           match=r'.*must have len\(p\)>=len\(z\)'):
-            zpk2sos([1, 1], [2], 1, analog=True)
-
-        with pytest.raises(ValueError, match=r'k must be real'):
-            zpk2sos([1], [2], k=1j)
-
-
-class TestFreqs:
-
-    def test_basic(self):
-        _, h = freqs([1.0], [1.0], worN=8)
-        assert_array_almost_equal(h, np.ones(8))
-
-    def test_output(self):
-        # 1st order low-pass filter: H(s) = 1 / (s + 1)
-        w = [0.1, 1, 10, 100]
-        num = [1]
-        den = [1, 1]
-        w, H = freqs(num, den, worN=w)
-        s = w * 1j
-        expected = 1 / (s + 1)
-        assert_array_almost_equal(H.real, expected.real)
-        assert_array_almost_equal(H.imag, expected.imag)
-
-    def test_freq_range(self):
-        # Test that freqresp() finds a reasonable frequency range.
-        # 1st order low-pass filter: H(s) = 1 / (s + 1)
-        # Expected range is from 0.01 to 10.
-        num = [1]
-        den = [1, 1]
-        n = 10
-        expected_w = np.logspace(-2, 1, n)
-        w, H = freqs(num, den, worN=n)
-        assert_array_almost_equal(w, expected_w)
-
-    def test_plot(self):
-
-        def plot(w, h):
-            assert_array_almost_equal(h, np.ones(8))
-
-        assert_raises(ZeroDivisionError, freqs, [1.0], [1.0], worN=8,
-                      plot=lambda w, h: 1 / 0)
-        freqs([1.0], [1.0], worN=8, plot=plot)
-
-    def test_backward_compat(self):
-        # For backward compatibility, test if None act as a wrapper for default
-        w1, h1 = freqs([1.0], [1.0])
-        w2, h2 = freqs([1.0], [1.0], None)
-        assert_array_almost_equal(w1, w2)
-        assert_array_almost_equal(h1, h2)
-
-    def test_w_or_N_types(self):
-        # Measure at 8 equally-spaced points
-        for N in (8, np.int8(8), np.int16(8), np.int32(8), np.int64(8),
-                  np.array(8)):
-            w, h = freqs([1.0], [1.0], worN=N)
-            assert_equal(len(w), 8)
-            assert_array_almost_equal(h, np.ones(8))
-
-        # Measure at frequency 8 rad/sec
-        for w in (8.0, 8.0+0j):
-            w_out, h = freqs([1.0], [1.0], worN=w)
-            assert_array_almost_equal(w_out, [8])
-            assert_array_almost_equal(h, [1])
-
-
-class TestFreqs_zpk:
-
-    def test_basic(self):
-        _, h = freqs_zpk([1.0], [1.0], [1.0], worN=8)
-        assert_array_almost_equal(h, np.ones(8))
-
-    def test_output(self):
-        # 1st order low-pass filter: H(s) = 1 / (s + 1)
-        w = [0.1, 1, 10, 100]
-        z = []
-        p = [-1]
-        k = 1
-        w, H = freqs_zpk(z, p, k, worN=w)
-        s = w * 1j
-        expected = 1 / (s + 1)
-        assert_array_almost_equal(H.real, expected.real)
-        assert_array_almost_equal(H.imag, expected.imag)
-
-    def test_freq_range(self):
-        # Test that freqresp() finds a reasonable frequency range.
-        # 1st order low-pass filter: H(s) = 1 / (s + 1)
-        # Expected range is from 0.01 to 10.
-        z = []
-        p = [-1]
-        k = 1
-        n = 10
-        expected_w = np.logspace(-2, 1, n)
-        w, H = freqs_zpk(z, p, k, worN=n)
-        assert_array_almost_equal(w, expected_w)
-
-    def test_vs_freqs(self):
-        b, a = cheby1(4, 5, 100, analog=True, output='ba')
-        z, p, k = cheby1(4, 5, 100, analog=True, output='zpk')
-
-        w1, h1 = freqs(b, a)
-        w2, h2 = freqs_zpk(z, p, k)
-        assert_allclose(w1, w2)
-        assert_allclose(h1, h2, rtol=1e-6)
-
-    def test_backward_compat(self):
-        # For backward compatibility, test if None act as a wrapper for default
-        w1, h1 = freqs_zpk([1.0], [1.0], [1.0])
-        w2, h2 = freqs_zpk([1.0], [1.0], [1.0], None)
-        assert_array_almost_equal(w1, w2)
-        assert_array_almost_equal(h1, h2)
-
-    def test_w_or_N_types(self):
-        # Measure at 8 equally-spaced points
-        for N in (8, np.int8(8), np.int16(8), np.int32(8), np.int64(8),
-                  np.array(8)):
-            w, h = freqs_zpk([], [], 1, worN=N)
-            assert_equal(len(w), 8)
-            assert_array_almost_equal(h, np.ones(8))
-
-        # Measure at frequency 8 rad/sec
-        for w in (8.0, 8.0+0j):
-            w_out, h = freqs_zpk([], [], 1, worN=w)
-            assert_array_almost_equal(w_out, [8])
-            assert_array_almost_equal(h, [1])
-
-
-class TestFreqz:
-
-    def test_ticket1441(self):
-        """Regression test for ticket 1441."""
-        # Because freqz previously used arange instead of linspace,
-        # when N was large, it would return one more point than
-        # requested.
-        N = 100000
-        w, h = freqz([1.0], worN=N)
-        assert_equal(w.shape, (N,))
-
-    def test_basic(self):
-        w, h = freqz([1.0], worN=8)
-        assert_array_almost_equal(w, np.pi * np.arange(8) / 8.)
-        assert_array_almost_equal(h, np.ones(8))
-        w, h = freqz([1.0], worN=9)
-        assert_array_almost_equal(w, np.pi * np.arange(9) / 9.)
-        assert_array_almost_equal(h, np.ones(9))
-
-        for a in [1, np.ones(2)]:
-            w, h = freqz(np.ones(2), a, worN=0)
-            assert_equal(w.shape, (0,))
-            assert_equal(h.shape, (0,))
-            assert_equal(h.dtype, np.dtype('complex128'))
-
-        t = np.linspace(0, 1, 4, endpoint=False)
-        for b, a, h_whole in zip(
-                ([1., 0, 0, 0], np.sin(2 * np.pi * t)),
-                ([1., 0, 0, 0], [0.5, 0, 0, 0]),
-                ([1., 1., 1., 1.], [0, -4j, 0, 4j])):
-            w, h = freqz(b, a, worN=4, whole=True)
-            expected_w = np.linspace(0, 2 * np.pi, 4, endpoint=False)
-            assert_array_almost_equal(w, expected_w)
-            assert_array_almost_equal(h, h_whole)
-            # simultaneously check int-like support
-            w, h = freqz(b, a, worN=np.int32(4), whole=True)
-            assert_array_almost_equal(w, expected_w)
-            assert_array_almost_equal(h, h_whole)
-            w, h = freqz(b, a, worN=w, whole=True)
-            assert_array_almost_equal(w, expected_w)
-            assert_array_almost_equal(h, h_whole)
-
-    def test_basic_whole(self):
-        w, h = freqz([1.0], worN=8, whole=True)
-        assert_array_almost_equal(w, 2 * np.pi * np.arange(8.0) / 8)
-        assert_array_almost_equal(h, np.ones(8))
-
-    def test_plot(self):
-
-        def plot(w, h):
-            assert_array_almost_equal(w, np.pi * np.arange(8.0) / 8)
-            assert_array_almost_equal(h, np.ones(8))
-
-        assert_raises(ZeroDivisionError, freqz, [1.0], worN=8,
-                      plot=lambda w, h: 1 / 0)
-        freqz([1.0], worN=8, plot=plot)
-
-    def test_fft_wrapping(self):
-        # Some simple real FIR filters
-        bs = list()  # filters
-        as_ = list()
-        hs_whole = list()
-        hs_half = list()
-        # 3 taps
-        t = np.linspace(0, 1, 3, endpoint=False)
-        bs.append(np.sin(2 * np.pi * t))
-        as_.append(3.)
-        hs_whole.append([0, -0.5j, 0.5j])
-        hs_half.append([0, np.sqrt(1./12.), -0.5j])
-        # 4 taps
-        t = np.linspace(0, 1, 4, endpoint=False)
-        bs.append(np.sin(2 * np.pi * t))
-        as_.append(0.5)
-        hs_whole.append([0, -4j, 0, 4j])
-        hs_half.append([0, np.sqrt(8), -4j, -np.sqrt(8)])
-        del t
-        for ii, b in enumerate(bs):
-            # whole
-            a = as_[ii]
-            expected_w = np.linspace(0, 2 * np.pi, len(b), endpoint=False)
-            w, h = freqz(b, a, worN=expected_w, whole=True)  # polyval
-            err_msg = f'b = {b}, a={a}'
-            assert_array_almost_equal(w, expected_w, err_msg=err_msg)
-            assert_array_almost_equal(h, hs_whole[ii], err_msg=err_msg)
-            w, h = freqz(b, a, worN=len(b), whole=True)  # FFT
-            assert_array_almost_equal(w, expected_w, err_msg=err_msg)
-            assert_array_almost_equal(h, hs_whole[ii], err_msg=err_msg)
-            # non-whole
-            expected_w = np.linspace(0, np.pi, len(b), endpoint=False)
-            w, h = freqz(b, a, worN=expected_w, whole=False)  # polyval
-            assert_array_almost_equal(w, expected_w, err_msg=err_msg)
-            assert_array_almost_equal(h, hs_half[ii], err_msg=err_msg)
-            w, h = freqz(b, a, worN=len(b), whole=False)  # FFT
-            assert_array_almost_equal(w, expected_w, err_msg=err_msg)
-            assert_array_almost_equal(h, hs_half[ii], err_msg=err_msg)
-
-        # some random FIR filters (real + complex)
-        # assume polyval is accurate
-        rng = np.random.RandomState(0)
-        for ii in range(2, 10):  # number of taps
-            b = rng.randn(ii)
-            for kk in range(2):
-                a = rng.randn(1) if kk == 0 else rng.randn(3)
-                for jj in range(2):
-                    if jj == 1:
-                        b = b + rng.randn(ii) * 1j
-                    # whole
-                    expected_w = np.linspace(0, 2 * np.pi, ii, endpoint=False)
-                    w, expected_h = freqz(b, a, worN=expected_w, whole=True)
-                    assert_array_almost_equal(w, expected_w)
-                    w, h = freqz(b, a, worN=ii, whole=True)
-                    assert_array_almost_equal(w, expected_w)
-                    assert_array_almost_equal(h, expected_h)
-                    # half
-                    expected_w = np.linspace(0, np.pi, ii, endpoint=False)
-                    w, expected_h = freqz(b, a, worN=expected_w, whole=False)
-                    assert_array_almost_equal(w, expected_w)
-                    w, h = freqz(b, a, worN=ii, whole=False)
-                    assert_array_almost_equal(w, expected_w)
-                    assert_array_almost_equal(h, expected_h)
-
-    def test_broadcasting1(self):
-        # Test broadcasting with worN an integer or a 1-D array,
-        # b and a are n-dimensional arrays.
-        np.random.seed(123)
-        b = np.random.rand(3, 5, 1)
-        a = np.random.rand(2, 1)
-        for whole in [False, True]:
-            # Test with worN being integers (one fast for FFT and one not),
-            # a 1-D array, and an empty array.
-            for worN in [16, 17, np.linspace(0, 1, 10), np.array([])]:
-                w, h = freqz(b, a, worN=worN, whole=whole)
-                for k in range(b.shape[1]):
-                    bk = b[:, k, 0]
-                    ak = a[:, 0]
-                    ww, hh = freqz(bk, ak, worN=worN, whole=whole)
-                    assert_allclose(ww, w)
-                    assert_allclose(hh, h[k])
-
-    def test_broadcasting2(self):
-        # Test broadcasting with worN an integer or a 1-D array,
-        # b is an n-dimensional array, and a is left at the default value.
-        np.random.seed(123)
-        b = np.random.rand(3, 5, 1)
-        for whole in [False, True]:
-            for worN in [16, 17, np.linspace(0, 1, 10)]:
-                w, h = freqz(b, worN=worN, whole=whole)
-                for k in range(b.shape[1]):
-                    bk = b[:, k, 0]
-                    ww, hh = freqz(bk, worN=worN, whole=whole)
-                    assert_allclose(ww, w)
-                    assert_allclose(hh, h[k])
-
-    def test_broadcasting3(self):
-        # Test broadcasting where b.shape[-1] is the same length
-        # as worN, and a is left at the default value.
-        np.random.seed(123)
-        N = 16
-        b = np.random.rand(3, N)
-        for whole in [False, True]:
-            for worN in [N, np.linspace(0, 1, N)]:
-                w, h = freqz(b, worN=worN, whole=whole)
-                assert_equal(w.size, N)
-                for k in range(N):
-                    bk = b[:, k]
-                    ww, hh = freqz(bk, worN=w[k], whole=whole)
-                    assert_allclose(ww, w[k])
-                    assert_allclose(hh, h[k])
-
-    def test_broadcasting4(self):
-        # Test broadcasting with worN a 2-D array.
-        np.random.seed(123)
-        b = np.random.rand(4, 2, 1, 1)
-        a = np.random.rand(5, 2, 1, 1)
-        for whole in [False, True]:
-            for worN in [np.random.rand(6, 7), np.empty((6, 0))]:
-                w, h = freqz(b, a, worN=worN, whole=whole)
-                assert_allclose(w, worN, rtol=1e-14)
-                assert_equal(h.shape, (2,) + worN.shape)
-                for k in range(2):
-                    ww, hh = freqz(b[:, k, 0, 0], a[:, k, 0, 0],
-                                   worN=worN.ravel(),
-                                   whole=whole)
-                    assert_allclose(ww, worN.ravel(), rtol=1e-14)
-                    assert_allclose(hh, h[k, :, :].ravel())
-
-    def test_backward_compat(self):
-        # For backward compatibility, test if None act as a wrapper for default
-        w1, h1 = freqz([1.0], 1)
-        w2, h2 = freqz([1.0], 1, None)
-        assert_array_almost_equal(w1, w2)
-        assert_array_almost_equal(h1, h2)
-
-    def test_fs_param(self):
-        fs = 900
-        b = [0.039479155677484369, 0.11843746703245311, 0.11843746703245311,
-             0.039479155677484369]
-        a = [1.0, -1.3199152021838287, 0.80341991081938424,
-             -0.16767146321568049]
-
-        # N = None, whole=False
-        w1, h1 = freqz(b, a, fs=fs)
-        w2, h2 = freqz(b, a)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs/2, 512, endpoint=False))
-
-        # N = None, whole=True
-        w1, h1 = freqz(b, a, whole=True, fs=fs)
-        w2, h2 = freqz(b, a, whole=True)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs, 512, endpoint=False))
-
-        # N = 5, whole=False
-        w1, h1 = freqz(b, a, 5, fs=fs)
-        w2, h2 = freqz(b, a, 5)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs/2, 5, endpoint=False))
-
-        # N = 5, whole=True
-        w1, h1 = freqz(b, a, 5, whole=True, fs=fs)
-        w2, h2 = freqz(b, a, 5, whole=True)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs, 5, endpoint=False))
-
-        # w is an array_like
-        for w in ([123], (123,), np.array([123]), (50, 123, 230),
-                  np.array([50, 123, 230])):
-            w1, h1 = freqz(b, a, w, fs=fs)
-            w2, h2 = freqz(b, a, 2*pi*np.array(w)/fs)
-            assert_allclose(h1, h2)
-            assert_allclose(w, w1)
-
-    def test_w_or_N_types(self):
-        # Measure at 7 (polyval) or 8 (fft) equally-spaced points
-        for N in (7, np.int8(7), np.int16(7), np.int32(7), np.int64(7),
-                  np.array(7),
-                  8, np.int8(8), np.int16(8), np.int32(8), np.int64(8),
-                  np.array(8)):
-
-            w, h = freqz([1.0], worN=N)
-            assert_array_almost_equal(w, np.pi * np.arange(N) / N)
-            assert_array_almost_equal(h, np.ones(N))
-
-            w, h = freqz([1.0], worN=N, fs=100)
-            assert_array_almost_equal(w, np.linspace(0, 50, N, endpoint=False))
-            assert_array_almost_equal(h, np.ones(N))
-
-        # Measure at frequency 8 Hz
-        for w in (8.0, 8.0+0j):
-            # Only makes sense when fs is specified
-            w_out, h = freqz([1.0], worN=w, fs=100)
-            assert_array_almost_equal(w_out, [8])
-            assert_array_almost_equal(h, [1])
-
-    def test_nyquist(self):
-        w, h = freqz([1.0], worN=8, include_nyquist=True)
-        assert_array_almost_equal(w, np.pi * np.arange(8) / 7.)
-        assert_array_almost_equal(h, np.ones(8))
-        w, h = freqz([1.0], worN=9, include_nyquist=True)
-        assert_array_almost_equal(w, np.pi * np.arange(9) / 8.)
-        assert_array_almost_equal(h, np.ones(9))
-
-        for a in [1, np.ones(2)]:
-            w, h = freqz(np.ones(2), a, worN=0, include_nyquist=True)
-            assert_equal(w.shape, (0,))
-            assert_equal(h.shape, (0,))
-            assert_equal(h.dtype, np.dtype('complex128'))
-
-        w1, h1 = freqz([1.0], worN=8, whole = True, include_nyquist=True)
-        w2, h2 = freqz([1.0], worN=8, whole = True, include_nyquist=False)
-        assert_array_almost_equal(w1, w2)
-        assert_array_almost_equal(h1, h2)
-
-    # https://github.com/scipy/scipy/issues/17289
-    # https://github.com/scipy/scipy/issues/15273
-    @pytest.mark.parametrize('whole,nyquist,worN',
-                             [(False, False, 32),
-                              (False, True, 32),
-                              (True, False, 32),
-                              (True, True, 32),
-                              (False, False, 257),
-                              (False, True, 257),
-                              (True, False, 257),
-                              (True, True, 257)])
-    def test_17289(self, whole, nyquist, worN):
-        d = [0, 1]
-        w, Drfft = freqz(d, worN=32, whole=whole, include_nyquist=nyquist)
-        _, Dpoly = freqz(d, worN=w)
-        assert_allclose(Drfft, Dpoly)
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            freqz([1.0], fs=np.array([10, 20]))
-
-        with pytest.raises(ValueError, match="Sampling.*be none."):
-            freqz([1.0], fs=None)
-
-
-class TestSOSFreqz:
-
-    def test_sosfreqz_basic(self):
-        # Compare the results of freqz and sosfreqz for a low order
-        # Butterworth filter.
-
-        N = 500
-
-        b, a = butter(4, 0.2)
-        sos = butter(4, 0.2, output='sos')
-        w, h = freqz(b, a, worN=N)
-        w2, h2 = sosfreqz(sos, worN=N)
-        assert_equal(w2, w)
-        assert_allclose(h2, h, rtol=1e-10, atol=1e-14)
-
-        b, a = ellip(3, 1, 30, (0.2, 0.3), btype='bandpass')
-        sos = ellip(3, 1, 30, (0.2, 0.3), btype='bandpass', output='sos')
-        w, h = freqz(b, a, worN=N)
-        w2, h2 = sosfreqz(sos, worN=N)
-        assert_equal(w2, w)
-        assert_allclose(h2, h, rtol=1e-10, atol=1e-14)
-        # must have at least one section
-        assert_raises(ValueError, sosfreqz, sos[:0])
-
-    def test_sosfrez_design(self):
-        # Compare sosfreqz output against expected values for different
-        # filter types
-
-        # from cheb2ord
-        N, Wn = cheb2ord([0.1, 0.6], [0.2, 0.5], 3, 60)
-        sos = cheby2(N, 60, Wn, 'stop', output='sos')
-        w, h = sosfreqz(sos)
-        h = np.abs(h)
-        w /= np.pi
-        assert_allclose(20 * np.log10(h[w <= 0.1]), 0, atol=3.01)
-        assert_allclose(20 * np.log10(h[w >= 0.6]), 0., atol=3.01)
-        assert_allclose(h[(w >= 0.2) & (w <= 0.5)], 0., atol=1e-3)  # <= -60 dB
-
-        N, Wn = cheb2ord([0.1, 0.6], [0.2, 0.5], 3, 150)
-        sos = cheby2(N, 150, Wn, 'stop', output='sos')
-        w, h = sosfreqz(sos)
-        dB = 20*np.log10(np.abs(h))
-        w /= np.pi
-        assert_allclose(dB[w <= 0.1], 0, atol=3.01)
-        assert_allclose(dB[w >= 0.6], 0., atol=3.01)
-        assert_array_less(dB[(w >= 0.2) & (w <= 0.5)], -149.9)
-
-        # from cheb1ord
-        N, Wn = cheb1ord(0.2, 0.3, 3, 40)
-        sos = cheby1(N, 3, Wn, 'low', output='sos')
-        w, h = sosfreqz(sos)
-        h = np.abs(h)
-        w /= np.pi
-        assert_allclose(20 * np.log10(h[w <= 0.2]), 0, atol=3.01)
-        assert_allclose(h[w >= 0.3], 0., atol=1e-2)  # <= -40 dB
-
-        N, Wn = cheb1ord(0.2, 0.3, 1, 150)
-        sos = cheby1(N, 1, Wn, 'low', output='sos')
-        w, h = sosfreqz(sos)
-        dB = 20*np.log10(np.abs(h))
-        w /= np.pi
-        assert_allclose(dB[w <= 0.2], 0, atol=1.01)
-        assert_array_less(dB[w >= 0.3], -149.9)
-
-        # adapted from ellipord
-        N, Wn = ellipord(0.3, 0.2, 3, 60)
-        sos = ellip(N, 0.3, 60, Wn, 'high', output='sos')
-        w, h = sosfreqz(sos)
-        h = np.abs(h)
-        w /= np.pi
-        assert_allclose(20 * np.log10(h[w >= 0.3]), 0, atol=3.01)
-        assert_allclose(h[w <= 0.1], 0., atol=1.5e-3)  # <= -60 dB (approx)
-
-        # adapted from buttord
-        N, Wn = buttord([0.2, 0.5], [0.14, 0.6], 3, 40)
-        sos = butter(N, Wn, 'band', output='sos')
-        w, h = sosfreqz(sos)
-        h = np.abs(h)
-        w /= np.pi
-        assert_allclose(h[w <= 0.14], 0., atol=1e-2)  # <= -40 dB
-        assert_allclose(h[w >= 0.6], 0., atol=1e-2)  # <= -40 dB
-        assert_allclose(20 * np.log10(h[(w >= 0.2) & (w <= 0.5)]),
-                        0, atol=3.01)
-
-        N, Wn = buttord([0.2, 0.5], [0.14, 0.6], 3, 100)
-        sos = butter(N, Wn, 'band', output='sos')
-        w, h = sosfreqz(sos)
-        dB = 20*np.log10(np.maximum(np.abs(h), 1e-10))
-        w /= np.pi
-        assert_array_less(dB[(w > 0) & (w <= 0.14)], -99.9)
-        assert_array_less(dB[w >= 0.6], -99.9)
-        assert_allclose(dB[(w >= 0.2) & (w <= 0.5)], 0, atol=3.01)
-
-    def test_sosfreqz_design_ellip(self):
-        N, Wn = ellipord(0.3, 0.1, 3, 60)
-        sos = ellip(N, 0.3, 60, Wn, 'high', output='sos')
-        w, h = sosfreqz(sos)
-        h = np.abs(h)
-        w /= np.pi
-        assert_allclose(20 * np.log10(h[w >= 0.3]), 0, atol=3.01)
-        assert_allclose(h[w <= 0.1], 0., atol=1.5e-3)  # <= -60 dB (approx)
-
-        N, Wn = ellipord(0.3, 0.2, .5, 150)
-        sos = ellip(N, .5, 150, Wn, 'high', output='sos')
-        w, h = sosfreqz(sos)
-        dB = 20*np.log10(np.maximum(np.abs(h), 1e-10))
-        w /= np.pi
-        assert_allclose(dB[w >= 0.3], 0, atol=.55)
-        # Allow some numerical slop in the upper bound -150, so this is
-        # a check that dB[w <= 0.2] is less than or almost equal to -150.
-        assert dB[w <= 0.2].max() < -150*(1 - 1e-12)
-
-    @mpmath_check("0.10")
-    def test_sos_freqz_against_mp(self):
-        # Compare the result of sosfreqz applied to a high order Butterworth
-        # filter against the result computed using mpmath.  (signal.freqz fails
-        # miserably with such high order filters.)
-        from . import mpsig
-        N = 500
-        order = 25
-        Wn = 0.15
-        with mpmath.workdps(80):
-            z_mp, p_mp, k_mp = mpsig.butter_lp(order, Wn)
-            w_mp, h_mp = mpsig.zpkfreqz(z_mp, p_mp, k_mp, N)
-        w_mp = np.array([float(x) for x in w_mp])
-        h_mp = np.array([complex(x) for x in h_mp])
-
-        sos = butter(order, Wn, output='sos')
-        w, h = sosfreqz(sos, worN=N)
-        assert_allclose(w, w_mp, rtol=1e-12, atol=1e-14)
-        assert_allclose(h, h_mp, rtol=1e-12, atol=1e-14)
-
-    def test_fs_param(self):
-        fs = 900
-        sos = [[0.03934683014103762, 0.07869366028207524, 0.03934683014103762,
-                1.0, -0.37256600288916636, 0.0],
-               [1.0, 1.0, 0.0, 1.0, -0.9495739996946778, 0.45125966317124144]]
-
-        # N = None, whole=False
-        w1, h1 = sosfreqz(sos, fs=fs)
-        w2, h2 = sosfreqz(sos)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs/2, 512, endpoint=False))
-
-        # N = None, whole=True
-        w1, h1 = sosfreqz(sos, whole=True, fs=fs)
-        w2, h2 = sosfreqz(sos, whole=True)
-        assert_allclose(h1, h2, atol=1e-27)
-        assert_allclose(w1, np.linspace(0, fs, 512, endpoint=False))
-
-        # N = 5, whole=False
-        w1, h1 = sosfreqz(sos, 5, fs=fs)
-        w2, h2 = sosfreqz(sos, 5)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs/2, 5, endpoint=False))
-
-        # N = 5, whole=True
-        w1, h1 = sosfreqz(sos, 5, whole=True, fs=fs)
-        w2, h2 = sosfreqz(sos, 5, whole=True)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs, 5, endpoint=False))
-
-        # w is an array_like
-        for w in ([123], (123,), np.array([123]), (50, 123, 230),
-                  np.array([50, 123, 230])):
-            w1, h1 = sosfreqz(sos, w, fs=fs)
-            w2, h2 = sosfreqz(sos, 2*pi*np.array(w)/fs)
-            assert_allclose(h1, h2)
-            assert_allclose(w, w1)
-
-    def test_w_or_N_types(self):
-        # Measure at 7 (polyval) or 8 (fft) equally-spaced points
-        for N in (7, np.int8(7), np.int16(7), np.int32(7), np.int64(7),
-                  np.array(7),
-                  8, np.int8(8), np.int16(8), np.int32(8), np.int64(8),
-                  np.array(8)):
-
-            w, h = sosfreqz([1, 0, 0, 1, 0, 0], worN=N)
-            assert_array_almost_equal(w, np.pi * np.arange(N) / N)
-            assert_array_almost_equal(h, np.ones(N))
-
-            w, h = sosfreqz([1, 0, 0, 1, 0, 0], worN=N, fs=100)
-            assert_array_almost_equal(w, np.linspace(0, 50, N, endpoint=False))
-            assert_array_almost_equal(h, np.ones(N))
-
-        # Measure at frequency 8 Hz
-        for w in (8.0, 8.0+0j):
-            # Only makes sense when fs is specified
-            w_out, h = sosfreqz([1, 0, 0, 1, 0, 0], worN=w, fs=100)
-            assert_array_almost_equal(w_out, [8])
-            assert_array_almost_equal(h, [1])
-
-    def test_fs_validation(self):
-        sos = butter(4, 0.2, output='sos')
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            sosfreqz(sos, fs=np.array([10, 20]))
-
-
-class TestFreqz_zpk:
-
-    def test_ticket1441(self):
-        """Regression test for ticket 1441."""
-        # Because freqz previously used arange instead of linspace,
-        # when N was large, it would return one more point than
-        # requested.
-        N = 100000
-        w, h = freqz_zpk([0.5], [0.5], 1.0, worN=N)
-        assert_equal(w.shape, (N,))
-
-    def test_basic(self):
-        w, h = freqz_zpk([0.5], [0.5], 1.0, worN=8)
-        assert_array_almost_equal(w, np.pi * np.arange(8.0) / 8)
-        assert_array_almost_equal(h, np.ones(8))
-
-    def test_basic_whole(self):
-        w, h = freqz_zpk([0.5], [0.5], 1.0, worN=8, whole=True)
-        assert_array_almost_equal(w, 2 * np.pi * np.arange(8.0) / 8)
-        assert_array_almost_equal(h, np.ones(8))
-
-    def test_vs_freqz(self):
-        b, a = cheby1(4, 5, 0.5, analog=False, output='ba')
-        z, p, k = cheby1(4, 5, 0.5, analog=False, output='zpk')
-
-        w1, h1 = freqz(b, a)
-        w2, h2 = freqz_zpk(z, p, k)
-        assert_allclose(w1, w2)
-        assert_allclose(h1, h2, rtol=1e-6)
-
-    def test_backward_compat(self):
-        # For backward compatibility, test if None act as a wrapper for default
-        w1, h1 = freqz_zpk([0.5], [0.5], 1.0)
-        w2, h2 = freqz_zpk([0.5], [0.5], 1.0, None)
-        assert_array_almost_equal(w1, w2)
-        assert_array_almost_equal(h1, h2)
-
-    def test_fs_param(self):
-        fs = 900
-        z = [-1, -1, -1]
-        p = [0.4747869998473389+0.4752230717749344j, 0.37256600288916636,
-             0.4747869998473389-0.4752230717749344j]
-        k = 0.03934683014103762
-
-        # N = None, whole=False
-        w1, h1 = freqz_zpk(z, p, k, whole=False, fs=fs)
-        w2, h2 = freqz_zpk(z, p, k, whole=False)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs/2, 512, endpoint=False))
-
-        # N = None, whole=True
-        w1, h1 = freqz_zpk(z, p, k, whole=True, fs=fs)
-        w2, h2 = freqz_zpk(z, p, k, whole=True)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs, 512, endpoint=False))
-
-        # N = 5, whole=False
-        w1, h1 = freqz_zpk(z, p, k, 5, fs=fs)
-        w2, h2 = freqz_zpk(z, p, k, 5)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs/2, 5, endpoint=False))
-
-        # N = 5, whole=True
-        w1, h1 = freqz_zpk(z, p, k, 5, whole=True, fs=fs)
-        w2, h2 = freqz_zpk(z, p, k, 5, whole=True)
-        assert_allclose(h1, h2)
-        assert_allclose(w1, np.linspace(0, fs, 5, endpoint=False))
-
-        # w is an array_like
-        for w in ([123], (123,), np.array([123]), (50, 123, 230),
-                  np.array([50, 123, 230])):
-            w1, h1 = freqz_zpk(z, p, k, w, fs=fs)
-            w2, h2 = freqz_zpk(z, p, k, 2*pi*np.array(w)/fs)
-            assert_allclose(h1, h2)
-            assert_allclose(w, w1)
-
-    def test_w_or_N_types(self):
-        # Measure at 8 equally-spaced points
-        for N in (8, np.int8(8), np.int16(8), np.int32(8), np.int64(8),
-                  np.array(8)):
-
-            w, h = freqz_zpk([], [], 1, worN=N)
-            assert_array_almost_equal(w, np.pi * np.arange(8) / 8.)
-            assert_array_almost_equal(h, np.ones(8))
-
-            w, h = freqz_zpk([], [], 1, worN=N, fs=100)
-            assert_array_almost_equal(w, np.linspace(0, 50, 8, endpoint=False))
-            assert_array_almost_equal(h, np.ones(8))
-
-        # Measure at frequency 8 Hz
-        for w in (8.0, 8.0+0j):
-            # Only makes sense when fs is specified
-            w_out, h = freqz_zpk([], [], 1, worN=w, fs=100)
-            assert_array_almost_equal(w_out, [8])
-            assert_array_almost_equal(h, [1])
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            freqz_zpk([1.0], [1.0], [1.0], fs=np.array([10, 20]))
-
-        with pytest.raises(ValueError, match="Sampling.*be none."):
-            freqz_zpk([1.0], [1.0], [1.0], fs=None)
-
-
-class TestNormalize:
-
-    def test_allclose(self):
-        """Test for false positive on allclose in normalize() in
-        filter_design.py"""
-        # Test to make sure the allclose call within signal.normalize does not
-        # choose false positives. Then check against a known output from MATLAB
-        # to make sure the fix doesn't break anything.
-
-        # These are the coefficients returned from
-        #   `[b,a] = cheby1(8, 0.5, 0.048)'
-        # in MATLAB. There are at least 15 significant figures in each
-        # coefficient, so it makes sense to test for errors on the order of
-        # 1e-13 (this can always be relaxed if different platforms have
-        # different rounding errors)
-        b_matlab = np.array([2.150733144728282e-11, 1.720586515782626e-10,
-                             6.022052805239190e-10, 1.204410561047838e-09,
-                             1.505513201309798e-09, 1.204410561047838e-09,
-                             6.022052805239190e-10, 1.720586515782626e-10,
-                             2.150733144728282e-11])
-        a_matlab = np.array([1.000000000000000e+00, -7.782402035027959e+00,
-                             2.654354569747454e+01, -5.182182531666387e+01,
-                             6.334127355102684e+01, -4.963358186631157e+01,
-                             2.434862182949389e+01, -6.836925348604676e+00,
-                             8.412934944449140e-01])
-
-        # This is the input to signal.normalize after passing through the
-        # equivalent steps in signal.iirfilter as was done for MATLAB
-        b_norm_in = np.array([1.5543135865293012e-06, 1.2434508692234413e-05,
-                              4.3520780422820447e-05, 8.7041560845640893e-05,
-                              1.0880195105705122e-04, 8.7041560845640975e-05,
-                              4.3520780422820447e-05, 1.2434508692234413e-05,
-                              1.5543135865293012e-06])
-        a_norm_in = np.array([7.2269025909127173e+04, -5.6242661430467968e+05,
-                              1.9182761917308895e+06, -3.7451128364682454e+06,
-                              4.5776121393762771e+06, -3.5869706138592605e+06,
-                              1.7596511818472347e+06, -4.9409793515707983e+05,
-                              6.0799461347219651e+04])
-
-        b_output, a_output = normalize(b_norm_in, a_norm_in)
-
-        # The test on b works for decimal=14 but the one for a does not. For
-        # the sake of consistency, both of these are decimal=13. If something
-        # breaks on another platform, it is probably fine to relax this lower.
-        assert_array_almost_equal(b_matlab, b_output, decimal=13)
-        assert_array_almost_equal(a_matlab, a_output, decimal=13)
-
-    def test_errors(self):
-        """Test the error cases."""
-        # all zero denominator
-        assert_raises(ValueError, normalize, [1, 2], 0)
-
-        # denominator not 1 dimensional
-        assert_raises(ValueError, normalize, [1, 2], [[1]])
-
-        # numerator too many dimensions
-        assert_raises(ValueError, normalize, [[[1, 2]]], 1)
-
-
-class TestLp2lp:
-
-    def test_basic(self):
-        b = [1]
-        a = [1, np.sqrt(2), 1]
-        b_lp, a_lp = lp2lp(b, a, 0.38574256627112119)
-        assert_array_almost_equal(b_lp, [0.1488], decimal=4)
-        assert_array_almost_equal(a_lp, [1, 0.5455, 0.1488], decimal=4)
-
-
-class TestLp2hp:
-
-    def test_basic(self):
-        b = [0.25059432325190018]
-        a = [1, 0.59724041654134863, 0.92834805757524175, 0.25059432325190018]
-        b_hp, a_hp = lp2hp(b, a, 2*np.pi*5000)
-        assert_allclose(b_hp, [1, 0, 0, 0])
-        assert_allclose(a_hp, [1, 1.1638e5, 2.3522e9, 1.2373e14], rtol=1e-4)
-
-
-class TestLp2bp:
-
-    def test_basic(self):
-        b = [1]
-        a = [1, 2, 2, 1]
-        b_bp, a_bp = lp2bp(b, a, 2*np.pi*4000, 2*np.pi*2000)
-        assert_allclose(b_bp, [1.9844e12, 0, 0, 0], rtol=1e-6)
-        assert_allclose(a_bp, [1, 2.5133e4, 2.2108e9, 3.3735e13,
-                               1.3965e18, 1.0028e22, 2.5202e26], rtol=1e-4)
-
-
-class TestLp2bs:
-
-    def test_basic(self):
-        b = [1]
-        a = [1, 1]
-        b_bs, a_bs = lp2bs(b, a, 0.41722257286366754, 0.18460575326152251)
-        assert_array_almost_equal(b_bs, [1, 0, 0.17407], decimal=5)
-        assert_array_almost_equal(a_bs, [1, 0.18461, 0.17407], decimal=5)
-
-
-class TestBilinear:
-
-    def test_basic(self):
-        b = [0.14879732743343033]
-        a = [1, 0.54552236880522209, 0.14879732743343033]
-        b_z, a_z = bilinear(b, a, 0.5)
-        assert_array_almost_equal(b_z, [0.087821, 0.17564, 0.087821],
-                                  decimal=5)
-        assert_array_almost_equal(a_z, [1, -1.0048, 0.35606], decimal=4)
-
-        b = [1, 0, 0.17407467530697837]
-        a = [1, 0.18460575326152251, 0.17407467530697837]
-        b_z, a_z = bilinear(b, a, 0.5)
-        assert_array_almost_equal(b_z, [0.86413, -1.2158, 0.86413],
-                                  decimal=4)
-        assert_array_almost_equal(a_z, [1, -1.2158, 0.72826],
-                                  decimal=4)
-
-    def test_fs_validation(self):
-        b = [0.14879732743343033]
-        a = [1, 0.54552236880522209, 0.14879732743343033]
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            bilinear(b, a, fs=np.array([10, 20]))
-
-        with pytest.raises(ValueError, match="Sampling.*be none"):
-            bilinear(b, a, fs=None)
-
-
-class TestLp2lp_zpk:
-
-    def test_basic(self):
-        z = []
-        p = [(-1+1j)/np.sqrt(2), (-1-1j)/np.sqrt(2)]
-        k = 1
-        z_lp, p_lp, k_lp = lp2lp_zpk(z, p, k, 5)
-        assert_array_equal(z_lp, [])
-        assert_allclose(sort(p_lp), sort(p)*5)
-        assert_allclose(k_lp, 25)
-
-        # Pseudo-Chebyshev with both poles and zeros
-        z = [-2j, +2j]
-        p = [-0.75, -0.5-0.5j, -0.5+0.5j]
-        k = 3
-        z_lp, p_lp, k_lp = lp2lp_zpk(z, p, k, 20)
-        assert_allclose(sort(z_lp), sort([-40j, +40j]))
-        assert_allclose(sort(p_lp), sort([-15, -10-10j, -10+10j]))
-        assert_allclose(k_lp, 60)
-
-    def test_fs_validation(self):
-        z = [-2j, +2j]
-        p = [-0.75, -0.5 - 0.5j, -0.5 + 0.5j]
-        k = 3
-
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            bilinear_zpk(z, p, k, fs=np.array([10, 20]))
-
-        with pytest.raises(ValueError, match="Sampling.*be none"):
-            bilinear_zpk(z, p, k, fs=None)
-
-
-class TestLp2hp_zpk:
-
-    def test_basic(self):
-        z = []
-        p = [(-1+1j)/np.sqrt(2), (-1-1j)/np.sqrt(2)]
-        k = 1
-
-        z_hp, p_hp, k_hp = lp2hp_zpk(z, p, k, 5)
-        assert_array_equal(z_hp, [0, 0])
-        assert_allclose(sort(p_hp), sort(p)*5)
-        assert_allclose(k_hp, 1)
-
-        z = [-2j, +2j]
-        p = [-0.75, -0.5-0.5j, -0.5+0.5j]
-        k = 3
-        z_hp, p_hp, k_hp = lp2hp_zpk(z, p, k, 6)
-        assert_allclose(sort(z_hp), sort([-3j, 0, +3j]))
-        assert_allclose(sort(p_hp), sort([-8, -6-6j, -6+6j]))
-        assert_allclose(k_hp, 32)
-
-
-class TestLp2bp_zpk:
-
-    def test_basic(self):
-        z = [-2j, +2j]
-        p = [-0.75, -0.5-0.5j, -0.5+0.5j]
-        k = 3
-        z_bp, p_bp, k_bp = lp2bp_zpk(z, p, k, 15, 8)
-        assert_allclose(sort(z_bp), sort([-25j, -9j, 0, +9j, +25j]))
-        assert_allclose(sort(p_bp), sort([-3 + 6j*sqrt(6),
-                                          -3 - 6j*sqrt(6),
-                                          +2j+sqrt(-8j-225)-2,
-                                          -2j+sqrt(+8j-225)-2,
-                                          +2j-sqrt(-8j-225)-2,
-                                          -2j-sqrt(+8j-225)-2, ]))
-        assert_allclose(k_bp, 24)
-
-
-class TestLp2bs_zpk:
-
-    def test_basic(self):
-        z = [-2j, +2j]
-        p = [-0.75, -0.5-0.5j, -0.5+0.5j]
-        k = 3
-
-        z_bs, p_bs, k_bs = lp2bs_zpk(z, p, k, 35, 12)
-
-        assert_allclose(sort(z_bs), sort([+35j, -35j,
-                                          +3j+sqrt(1234)*1j,
-                                          -3j+sqrt(1234)*1j,
-                                          +3j-sqrt(1234)*1j,
-                                          -3j-sqrt(1234)*1j]))
-        assert_allclose(sort(p_bs), sort([+3j*sqrt(129) - 8,
-                                          -3j*sqrt(129) - 8,
-                                          (-6 + 6j) - sqrt(-1225 - 72j),
-                                          (-6 - 6j) - sqrt(-1225 + 72j),
-                                          (-6 + 6j) + sqrt(-1225 - 72j),
-                                          (-6 - 6j) + sqrt(-1225 + 72j), ]))
-        assert_allclose(k_bs, 32)
-
-
-class TestBilinear_zpk:
-
-    def test_basic(self):
-        z = [-2j, +2j]
-        p = [-0.75, -0.5-0.5j, -0.5+0.5j]
-        k = 3
-
-        z_d, p_d, k_d = bilinear_zpk(z, p, k, 10)
-
-        assert_allclose(sort(z_d), sort([(20-2j)/(20+2j), (20+2j)/(20-2j),
-                                         -1]))
-        assert_allclose(sort(p_d), sort([77/83,
-                                         (1j/2 + 39/2) / (41/2 - 1j/2),
-                                         (39/2 - 1j/2) / (1j/2 + 41/2), ]))
-        assert_allclose(k_d, 9696/69803)
-
-
-class TestPrototypeType:
-
-    def test_output_type(self):
-        # Prototypes should consistently output arrays, not lists
-        # https://github.com/scipy/scipy/pull/441
-        for func in (buttap,
-                     besselap,
-                     lambda N: cheb1ap(N, 1),
-                     lambda N: cheb2ap(N, 20),
-                     lambda N: ellipap(N, 1, 20)):
-            for N in range(7):
-                z, p, k = func(N)
-                assert_(isinstance(z, np.ndarray))
-                assert_(isinstance(p, np.ndarray))
-
-
-def dB(x):
-    # Return magnitude in decibels, avoiding divide-by-zero warnings
-    # (and deal with some "not less-ordered" errors when -inf shows up)
-    return 20 * np.log10(np.maximum(np.abs(x), np.finfo(np.float64).tiny))
-
-
-class TestButtord:
-
-    def test_lowpass(self):
-        wp = 0.2
-        ws = 0.3
-        rp = 3
-        rs = 60
-        N, Wn = buttord(wp, ws, rp, rs, False)
-        b, a = butter(N, Wn, 'lowpass', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp, dB(h[w <= wp]))
-        assert_array_less(dB(h[ws <= w]), -rs)
-
-        assert_equal(N, 16)
-        assert_allclose(Wn, 2.0002776782743284e-01, rtol=1e-15)
-
-    def test_highpass(self):
-        wp = 0.3
-        ws = 0.2
-        rp = 3
-        rs = 70
-        N, Wn = buttord(wp, ws, rp, rs, False)
-        b, a = butter(N, Wn, 'highpass', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp, dB(h[wp <= w]))
-        assert_array_less(dB(h[w <= ws]), -rs)
-
-        assert_equal(N, 18)
-        assert_allclose(Wn, 2.9996603079132672e-01, rtol=1e-15)
-
-    def test_bandpass(self):
-        wp = [0.2, 0.5]
-        ws = [0.1, 0.6]
-        rp = 3
-        rs = 80
-        N, Wn = buttord(wp, ws, rp, rs, False)
-        b, a = butter(N, Wn, 'bandpass', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_and(wp[0] <= w, w <= wp[1])]))
-        assert_array_less(dB(h[np.logical_or(w <= ws[0], ws[1] <= w)]),
-                          -rs + 0.1)
-
-        assert_equal(N, 18)
-        assert_allclose(Wn, [1.9998742411409134e-01, 5.0002139595676276e-01],
-                        rtol=1e-15)
-
-    def test_bandstop(self):
-        wp = [0.1, 0.6]
-        ws = [0.2, 0.5]
-        rp = 3
-        rs = 90
-        N, Wn = buttord(wp, ws, rp, rs, False)
-        b, a = butter(N, Wn, 'bandstop', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp,
-                          dB(h[np.logical_or(w <= wp[0], wp[1] <= w)]))
-        assert_array_less(dB(h[np.logical_and(ws[0] <= w, w <= ws[1])]),
-                          -rs)
-
-        assert_equal(N, 20)
-        assert_allclose(Wn, [1.4759432329294042e-01, 5.9997365985276407e-01],
-                        rtol=1e-6)
-
-    def test_analog(self):
-        wp = 200
-        ws = 600
-        rp = 3
-        rs = 60
-        N, Wn = buttord(wp, ws, rp, rs, True)
-        b, a = butter(N, Wn, 'lowpass', True)
-        w, h = freqs(b, a)
-        assert_array_less(-rp, dB(h[w <= wp]))
-        assert_array_less(dB(h[ws <= w]), -rs)
-
-        assert_equal(N, 7)
-        assert_allclose(Wn, 2.0006785355671877e+02, rtol=1e-15)
-
-        n, Wn = buttord(1, 550/450, 1, 26, analog=True)
-        assert_equal(n, 19)
-        assert_allclose(Wn, 1.0361980524629517, rtol=1e-15)
-
-        assert_equal(buttord(1, 1.2, 1, 80, analog=True)[0], 55)
-
-    def test_fs_param(self):
-        wp = [4410, 11025]
-        ws = [2205, 13230]
-        rp = 3
-        rs = 80
-        fs = 44100
-        N, Wn = buttord(wp, ws, rp, rs, False, fs=fs)
-        b, a = butter(N, Wn, 'bandpass', False, fs=fs)
-        w, h = freqz(b, a, fs=fs)
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_and(wp[0] <= w, w <= wp[1])]))
-        assert_array_less(dB(h[np.logical_or(w <= ws[0], ws[1] <= w)]),
-                          -rs + 0.1)
-
-        assert_equal(N, 18)
-        assert_allclose(Wn, [4409.722701715714, 11025.47178084662],
-                        rtol=1e-15)
-
-    def test_invalid_input(self):
-        with pytest.raises(ValueError) as exc_info:
-            buttord([20, 50], [14, 60], 3, 2)
-        assert "gpass should be smaller than gstop" in str(exc_info.value)
-
-        with pytest.raises(ValueError) as exc_info:
-            buttord([20, 50], [14, 60], -1, 2)
-        assert "gpass should be larger than 0.0" in str(exc_info.value)
-
-        with pytest.raises(ValueError) as exc_info:
-            buttord([20, 50], [14, 60], 1, -2)
-        assert "gstop should be larger than 0.0" in str(exc_info.value)
-
-    def test_runtime_warnings(self):
-        msg = "Order is zero.*|divide by zero encountered"
-        with pytest.warns(RuntimeWarning, match=msg):
-            buttord(0.0, 1.0, 3, 60)
-
-    def test_ellip_butter(self):
-        # The purpose of the test is to compare to some known output from past
-        # scipy versions. The values to compare to are generated with scipy
-        # 1.9.1 (there is nothing special about this particular version though)
-        n, wn = buttord([0.1, 0.6], [0.2, 0.5], 3, 60)
-        assert n == 14
-
-    def test_fs_validation(self):
-        wp = 0.2
-        ws = 0.3
-        rp = 3
-        rs = 60
-
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            buttord(wp, ws, rp, rs, False, fs=np.array([10, 20]))
-
-
-class TestCheb1ord:
-
-    def test_lowpass(self):
-        wp = 0.2
-        ws = 0.3
-        rp = 3
-        rs = 60
-        N, Wn = cheb1ord(wp, ws, rp, rs, False)
-        b, a = cheby1(N, rp, Wn, 'low', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1, dB(h[w <= wp]))
-        assert_array_less(dB(h[ws <= w]), -rs + 0.1)
-
-        assert_equal(N, 8)
-        assert_allclose(Wn, 0.2, rtol=1e-15)
-
-    def test_highpass(self):
-        wp = 0.3
-        ws = 0.2
-        rp = 3
-        rs = 70
-        N, Wn = cheb1ord(wp, ws, rp, rs, False)
-        b, a = cheby1(N, rp, Wn, 'high', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1, dB(h[wp <= w]))
-        assert_array_less(dB(h[w <= ws]), -rs + 0.1)
-
-        assert_equal(N, 9)
-        assert_allclose(Wn, 0.3, rtol=1e-15)
-
-    def test_bandpass(self):
-        wp = [0.2, 0.5]
-        ws = [0.1, 0.6]
-        rp = 3
-        rs = 80
-        N, Wn = cheb1ord(wp, ws, rp, rs, False)
-        b, a = cheby1(N, rp, Wn, 'band', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_and(wp[0] <= w, w <= wp[1])]))
-        assert_array_less(dB(h[np.logical_or(w <= ws[0], ws[1] <= w)]),
-                          -rs + 0.1)
-
-        assert_equal(N, 9)
-        assert_allclose(Wn, [0.2, 0.5], rtol=1e-15)
-
-    def test_bandstop(self):
-        wp = [0.1, 0.6]
-        ws = [0.2, 0.5]
-        rp = 3
-        rs = 90
-        N, Wn = cheb1ord(wp, ws, rp, rs, False)
-        b, a = cheby1(N, rp, Wn, 'stop', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_or(w <= wp[0], wp[1] <= w)]))
-        assert_array_less(dB(h[np.logical_and(ws[0] <= w, w <= ws[1])]),
-                          -rs + 0.1)
-
-        assert_equal(N, 10)
-        assert_allclose(Wn, [0.14758232569947785, 0.6], rtol=1e-5)
-
-    def test_analog(self):
-        wp = 700
-        ws = 100
-        rp = 3
-        rs = 70
-        N, Wn = cheb1ord(wp, ws, rp, rs, True)
-        b, a = cheby1(N, rp, Wn, 'high', True)
-        w, h = freqs(b, a)
-        assert_array_less(-rp - 0.1, dB(h[wp <= w]))
-        assert_array_less(dB(h[w <= ws]), -rs + 0.1)
-
-        assert_equal(N, 4)
-        assert_allclose(Wn, 700, rtol=1e-15)
-
-        assert_equal(cheb1ord(1, 1.2, 1, 80, analog=True)[0], 17)
-
-    def test_fs_param(self):
-        wp = 4800
-        ws = 7200
-        rp = 3
-        rs = 60
-        fs = 48000
-        N, Wn = cheb1ord(wp, ws, rp, rs, False, fs=fs)
-        b, a = cheby1(N, rp, Wn, 'low', False, fs=fs)
-        w, h = freqz(b, a, fs=fs)
-        assert_array_less(-rp - 0.1, dB(h[w <= wp]))
-        assert_array_less(dB(h[ws <= w]), -rs + 0.1)
-
-        assert_equal(N, 8)
-        assert_allclose(Wn, 4800, rtol=1e-15)
-
-    def test_invalid_input(self):
-        with pytest.raises(ValueError) as exc_info:
-            cheb1ord(0.2, 0.3, 3, 2)
-        assert "gpass should be smaller than gstop" in str(exc_info.value)
-
-        with pytest.raises(ValueError) as exc_info:
-            cheb1ord(0.2, 0.3, -1, 2)
-        assert "gpass should be larger than 0.0" in str(exc_info.value)
-
-        with pytest.raises(ValueError) as exc_info:
-            cheb1ord(0.2, 0.3, 1, -2)
-        assert "gstop should be larger than 0.0" in str(exc_info.value)
-
-    def test_ellip_cheb1(self):
-        # The purpose of the test is to compare to some known output from past
-        # scipy versions. The values to compare to are generated with scipy
-        # 1.9.1 (there is nothing special about this particular version though)
-        n, wn = cheb1ord([0.1, 0.6], [0.2, 0.5], 3, 60)
-        assert n == 7
-
-        n2, w2 = cheb2ord([0.1, 0.6], [0.2, 0.5], 3, 60)
-        assert not (wn == w2).all()
-
-    def test_fs_validation(self):
-        wp = 0.2
-        ws = 0.3
-        rp = 3
-        rs = 60
-
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            cheb1ord(wp, ws, rp, rs, False, fs=np.array([10, 20]))
-
-
-class TestCheb2ord:
-
-    def test_lowpass(self):
-        wp = 0.2
-        ws = 0.3
-        rp = 3
-        rs = 60
-        N, Wn = cheb2ord(wp, ws, rp, rs, False)
-        b, a = cheby2(N, rs, Wn, 'lp', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1, dB(h[w <= wp]))
-        assert_array_less(dB(h[ws <= w]), -rs + 0.1)
-
-        assert_equal(N, 8)
-        assert_allclose(Wn, 0.28647639976553163, rtol=1e-15)
-
-    def test_highpass(self):
-        wp = 0.3
-        ws = 0.2
-        rp = 3
-        rs = 70
-        N, Wn = cheb2ord(wp, ws, rp, rs, False)
-        b, a = cheby2(N, rs, Wn, 'hp', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1, dB(h[wp <= w]))
-        assert_array_less(dB(h[w <= ws]), -rs + 0.1)
-
-        assert_equal(N, 9)
-        assert_allclose(Wn, 0.20697492182903282, rtol=1e-15)
-
-    def test_bandpass(self):
-        wp = [0.2, 0.5]
-        ws = [0.1, 0.6]
-        rp = 3
-        rs = 80
-        N, Wn = cheb2ord(wp, ws, rp, rs, False)
-        b, a = cheby2(N, rs, Wn, 'bp', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_and(wp[0] <= w, w <= wp[1])]))
-        assert_array_less(dB(h[np.logical_or(w <= ws[0], ws[1] <= w)]),
-                          -rs + 0.1)
-
-        assert_equal(N, 9)
-        assert_allclose(Wn, [0.14876937565923479, 0.59748447842351482],
-                        rtol=1e-15)
-
-    def test_bandstop(self):
-        wp = [0.1, 0.6]
-        ws = [0.2, 0.5]
-        rp = 3
-        rs = 90
-        N, Wn = cheb2ord(wp, ws, rp, rs, False)
-        b, a = cheby2(N, rs, Wn, 'bs', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_or(w <= wp[0], wp[1] <= w)]))
-        assert_array_less(dB(h[np.logical_and(ws[0] <= w, w <= ws[1])]),
-                          -rs + 0.1)
-
-        assert_equal(N, 10)
-        assert_allclose(Wn, [0.19926249974781743, 0.50125246585567362],
-                        rtol=1e-6)
-
-    def test_analog(self):
-        wp = [20, 50]
-        ws = [10, 60]
-        rp = 3
-        rs = 80
-        N, Wn = cheb2ord(wp, ws, rp, rs, True)
-        b, a = cheby2(N, rs, Wn, 'bp', True)
-        w, h = freqs(b, a)
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_and(wp[0] <= w, w <= wp[1])]))
-        assert_array_less(dB(h[np.logical_or(w <= ws[0], ws[1] <= w)]),
-                          -rs + 0.1)
-
-        assert_equal(N, 11)
-        assert_allclose(Wn, [1.673740595370124e+01, 5.974641487254268e+01],
-                        rtol=1e-15)
-
-    def test_fs_param(self):
-        wp = 150
-        ws = 100
-        rp = 3
-        rs = 70
-        fs = 1000
-        N, Wn = cheb2ord(wp, ws, rp, rs, False, fs=fs)
-        b, a = cheby2(N, rs, Wn, 'hp', False, fs=fs)
-        w, h = freqz(b, a, fs=fs)
-        assert_array_less(-rp - 0.1, dB(h[wp <= w]))
-        assert_array_less(dB(h[w <= ws]), -rs + 0.1)
-
-        assert_equal(N, 9)
-        assert_allclose(Wn, 103.4874609145164, rtol=1e-15)
-
-    def test_invalid_input(self):
-        with pytest.raises(ValueError) as exc_info:
-            cheb2ord([0.1, 0.6], [0.2, 0.5], 3, 2)
-        assert "gpass should be smaller than gstop" in str(exc_info.value)
-
-        with pytest.raises(ValueError) as exc_info:
-            cheb2ord([0.1, 0.6], [0.2, 0.5], -1, 2)
-        assert "gpass should be larger than 0.0" in str(exc_info.value)
-
-        with pytest.raises(ValueError) as exc_info:
-            cheb2ord([0.1, 0.6], [0.2, 0.5], 1, -2)
-        assert "gstop should be larger than 0.0" in str(exc_info.value)
-
-    def test_ellip_cheb2(self):
-        # The purpose of the test is to compare to some known output from past
-        # scipy versions. The values to compare to are generated with scipy
-        # 1.9.1 (there is nothing special about this particular version though)
-        n, wn = cheb2ord([0.1, 0.6], [0.2, 0.5], 3, 60)
-        assert n == 7
-
-        n1, w1 = cheb1ord([0.1, 0.6], [0.2, 0.5], 3, 60)
-        assert not (wn == w1).all()
-
-    def test_fs_validation(self):
-        wp = 0.2
-        ws = 0.3
-        rp = 3
-        rs = 60
-
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            cheb2ord(wp, ws, rp, rs, False, fs=np.array([10, 20]))
-
-
-class TestEllipord:
-
-    def test_lowpass(self):
-        wp = 0.2
-        ws = 0.3
-        rp = 3
-        rs = 60
-        N, Wn = ellipord(wp, ws, rp, rs, False)
-        b, a = ellip(N, rp, rs, Wn, 'lp', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1, dB(h[w <= wp]))
-        assert_array_less(dB(h[ws <= w]), -rs + 0.1)
-
-        assert_equal(N, 5)
-        assert_allclose(Wn, 0.2, rtol=1e-15)
-
-    def test_lowpass_1000dB(self):
-        # failed when ellipkm1 wasn't used in ellipord and ellipap
-        wp = 0.2
-        ws = 0.3
-        rp = 3
-        rs = 1000
-        N, Wn = ellipord(wp, ws, rp, rs, False)
-        sos = ellip(N, rp, rs, Wn, 'lp', False, output='sos')
-        w, h = sosfreqz(sos)
-        w /= np.pi
-        assert_array_less(-rp - 0.1, dB(h[w <= wp]))
-        assert_array_less(dB(h[ws <= w]), -rs + 0.1)
-
-    def test_highpass(self):
-        wp = 0.3
-        ws = 0.2
-        rp = 3
-        rs = 70
-        N, Wn = ellipord(wp, ws, rp, rs, False)
-        b, a = ellip(N, rp, rs, Wn, 'hp', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1, dB(h[wp <= w]))
-        assert_array_less(dB(h[w <= ws]), -rs + 0.1)
-
-        assert_equal(N, 6)
-        assert_allclose(Wn, 0.3, rtol=1e-15)
-
-    def test_bandpass(self):
-        wp = [0.2, 0.5]
-        ws = [0.1, 0.6]
-        rp = 3
-        rs = 80
-        N, Wn = ellipord(wp, ws, rp, rs, False)
-        b, a = ellip(N, rp, rs, Wn, 'bp', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_and(wp[0] <= w, w <= wp[1])]))
-        assert_array_less(dB(h[np.logical_or(w <= ws[0], ws[1] <= w)]),
-                          -rs + 0.1)
-
-        assert_equal(N, 6)
-        assert_allclose(Wn, [0.2, 0.5], rtol=1e-15)
-
-    def test_bandstop(self):
-        wp = [0.1, 0.6]
-        ws = [0.2, 0.5]
-        rp = 3
-        rs = 90
-        N, Wn = ellipord(wp, ws, rp, rs, False)
-        b, a = ellip(N, rp, rs, Wn, 'bs', False)
-        w, h = freqz(b, a)
-        w /= np.pi
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_or(w <= wp[0], wp[1] <= w)]))
-        assert_array_less(dB(h[np.logical_and(ws[0] <= w, w <= ws[1])]),
-                          -rs + 0.1)
-
-        assert_equal(N, 7)
-        assert_allclose(Wn, [0.14758232794342988, 0.6], rtol=1e-5)
-
-    def test_analog(self):
-        wp = [1000, 6000]
-        ws = [2000, 5000]
-        rp = 3
-        rs = 90
-        N, Wn = ellipord(wp, ws, rp, rs, True)
-        b, a = ellip(N, rp, rs, Wn, 'bs', True)
-        w, h = freqs(b, a)
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_or(w <= wp[0], wp[1] <= w)]))
-        assert_array_less(dB(h[np.logical_and(ws[0] <= w, w <= ws[1])]),
-                          -rs + 0.1)
-
-        assert_equal(N, 8)
-        assert_allclose(Wn, [1666.6666, 6000])
-
-        assert_equal(ellipord(1, 1.2, 1, 80, analog=True)[0], 9)
-
-    def test_fs_param(self):
-        wp = [400, 2400]
-        ws = [800, 2000]
-        rp = 3
-        rs = 90
-        fs = 8000
-        N, Wn = ellipord(wp, ws, rp, rs, False, fs=fs)
-        b, a = ellip(N, rp, rs, Wn, 'bs', False, fs=fs)
-        w, h = freqz(b, a, fs=fs)
-        assert_array_less(-rp - 0.1,
-                          dB(h[np.logical_or(w <= wp[0], wp[1] <= w)]))
-        assert_array_less(dB(h[np.logical_and(ws[0] <= w, w <= ws[1])]),
-                          -rs + 0.1)
-
-        assert_equal(N, 7)
-        assert_allclose(Wn, [590.3293117737195, 2400], rtol=1e-5)
-
-    def test_invalid_input(self):
-        with pytest.raises(ValueError) as exc_info:
-            ellipord(0.2, 0.5, 3, 2)
-        assert "gpass should be smaller than gstop" in str(exc_info.value)
-
-        with pytest.raises(ValueError) as exc_info:
-            ellipord(0.2, 0.5, -1, 2)
-        assert "gpass should be larger than 0.0" in str(exc_info.value)
-
-        with pytest.raises(ValueError) as exc_info:
-            ellipord(0.2, 0.5, 1, -2)
-        assert "gstop should be larger than 0.0" in str(exc_info.value)
-
-    def test_ellip_butter(self):
-        # The purpose of the test is to compare to some known output from past
-        # scipy versions. The values to compare to are generated with scipy
-        # 1.9.1 (there is nothing special about this particular version though)
-        n, wn = ellipord([0.1, 0.6], [0.2, 0.5], 3, 60)
-        assert n == 5
-
-    def test_fs_validation(self):
-        wp = 0.2
-        ws = 0.3
-        rp = 3
-        rs = 60
-
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            ellipord(wp, ws, rp, rs, False, fs=np.array([10, 20]))
-
-
-class TestBessel:
-
-    def test_degenerate(self):
-        for norm in ('delay', 'phase', 'mag'):
-            # 0-order filter is just a passthrough
-            b, a = bessel(0, 1, analog=True, norm=norm)
-            assert_array_equal(b, [1])
-            assert_array_equal(a, [1])
-
-            # 1-order filter is same for all types
-            b, a = bessel(1, 1, analog=True, norm=norm)
-            assert_allclose(b, [1], rtol=1e-15)
-            assert_allclose(a, [1, 1], rtol=1e-15)
-
-            z, p, k = bessel(1, 0.3, analog=True, output='zpk', norm=norm)
-            assert_array_equal(z, [])
-            assert_allclose(p, [-0.3], rtol=1e-14)
-            assert_allclose(k, 0.3, rtol=1e-14)
-
-    def test_high_order(self):
-        # high even order, 'phase'
-        z, p, k = bessel(24, 100, analog=True, output='zpk')
-        z2 = []
-        p2 = [
-             -9.055312334014323e+01 + 4.844005815403969e+00j,
-             -8.983105162681878e+01 + 1.454056170018573e+01j,
-             -8.837357994162065e+01 + 2.426335240122282e+01j,
-             -8.615278316179575e+01 + 3.403202098404543e+01j,
-             -8.312326467067703e+01 + 4.386985940217900e+01j,
-             -7.921695461084202e+01 + 5.380628489700191e+01j,
-             -7.433392285433246e+01 + 6.388084216250878e+01j,
-             -6.832565803501586e+01 + 7.415032695116071e+01j,
-             -6.096221567378025e+01 + 8.470292433074425e+01j,
-             -5.185914574820616e+01 + 9.569048385258847e+01j,
-             -4.027853855197555e+01 + 1.074195196518679e+02j,
-             -2.433481337524861e+01 + 1.207298683731973e+02j,
-             ]
-        k2 = 9.999999999999989e+47
-        assert_array_equal(z, z2)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(np.union1d(p2, np.conj(p2)), key=np.imag))
-        assert_allclose(k, k2, rtol=1e-14)
-
-        # high odd order, 'phase'
-        z, p, k = bessel(23, 1000, analog=True, output='zpk')
-        z2 = []
-        p2 = [
-             -2.497697202208956e+02 + 1.202813187870698e+03j,
-             -4.126986617510172e+02 + 1.065328794475509e+03j,
-             -5.304922463809596e+02 + 9.439760364018479e+02j,
-             -9.027564978975828e+02 + 1.010534334242318e+02j,
-             -8.909283244406079e+02 + 2.023024699647598e+02j,
-             -8.709469394347836e+02 + 3.039581994804637e+02j,
-             -8.423805948131370e+02 + 4.062657947488952e+02j,
-             -8.045561642249877e+02 + 5.095305912401127e+02j,
-             -7.564660146766259e+02 + 6.141594859516342e+02j,
-             -6.965966033906477e+02 + 7.207341374730186e+02j,
-             -6.225903228776276e+02 + 8.301558302815096e+02j,
-             -9.066732476324988e+02]
-        k2 = 9.999999999999983e+68
-        assert_array_equal(z, z2)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(np.union1d(p2, np.conj(p2)), key=np.imag))
-        assert_allclose(k, k2, rtol=1e-14)
-
-        # high even order, 'delay' (Orchard 1965 "The Roots of the
-        # Maximally Flat-Delay Polynomials" Table 1)
-        z, p, k = bessel(31, 1, analog=True, output='zpk', norm='delay')
-        p2 = [-20.876706,
-              -20.826543 + 1.735732j,
-              -20.675502 + 3.473320j,
-              -20.421895 + 5.214702j,
-              -20.062802 + 6.961982j,
-              -19.593895 + 8.717546j,
-              -19.009148 + 10.484195j,
-              -18.300400 + 12.265351j,
-              -17.456663 + 14.065350j,
-              -16.463032 + 15.889910j,
-              -15.298849 + 17.746914j,
-              -13.934466 + 19.647827j,
-              -12.324914 + 21.610519j,
-              -10.395893 + 23.665701j,
-              - 8.005600 + 25.875019j,
-              - 4.792045 + 28.406037j,
-              ]
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(np.union1d(p2, np.conj(p2)), key=np.imag))
-
-        # high odd order, 'delay'
-        z, p, k = bessel(30, 1, analog=True, output='zpk', norm='delay')
-        p2 = [-20.201029 + 0.867750j,
-              -20.097257 + 2.604235j,
-              -19.888485 + 4.343721j,
-              -19.572188 + 6.088363j,
-              -19.144380 + 7.840570j,
-              -18.599342 + 9.603147j,
-              -17.929195 + 11.379494j,
-              -17.123228 + 13.173901j,
-              -16.166808 + 14.992008j,
-              -15.039580 + 16.841580j,
-              -13.712245 + 18.733902j,
-              -12.140295 + 20.686563j,
-              -10.250119 + 22.729808j,
-              - 7.901170 + 24.924391j,
-              - 4.734679 + 27.435615j,
-              ]
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(np.union1d(p2, np.conj(p2)), key=np.imag))
-
-    def test_refs(self):
-        # Compare to http://www.crbond.com/papers/bsf2.pdf
-        # "Delay Normalized Bessel Polynomial Coefficients"
-        bond_b = 10395
-        bond_a = [1, 21, 210, 1260, 4725, 10395, 10395]
-        b, a = bessel(6, 1, norm='delay', analog=True)
-        assert_allclose(bond_b, b)
-        assert_allclose(bond_a, a)
-
-        # "Delay Normalized Bessel Pole Locations"
-        bond_poles = {
-            1: [-1.0000000000],
-            2: [-1.5000000000 + 0.8660254038j],
-            3: [-1.8389073227 + 1.7543809598j, -2.3221853546],
-            4: [-2.1037893972 + 2.6574180419j, -2.8962106028 + 0.8672341289j],
-            5: [-2.3246743032 + 3.5710229203j, -3.3519563992 + 1.7426614162j,
-                -3.6467385953],
-            6: [-2.5159322478 + 4.4926729537j, -3.7357083563 + 2.6262723114j,
-                -4.2483593959 + 0.8675096732j],
-            7: [-2.6856768789 + 5.4206941307j, -4.0701391636 + 3.5171740477j,
-                -4.7582905282 + 1.7392860611j, -4.9717868585],
-            8: [-2.8389839489 + 6.3539112986j, -4.3682892172 + 4.4144425005j,
-                -5.2048407906 + 2.6161751526j, -5.5878860433 + 0.8676144454j],
-            9: [-2.9792607982 + 7.2914636883j, -4.6384398872 + 5.3172716754j,
-                -5.6044218195 + 3.4981569179j, -6.1293679043 + 1.7378483835j,
-                -6.2970191817],
-            10: [-3.1089162336 + 8.2326994591j, -4.8862195669 + 6.2249854825j,
-                 -5.9675283286 + 4.3849471889j, -6.6152909655 + 2.6115679208j,
-                 -6.9220449054 + 0.8676651955j]
-            }
-
-        for N in range(1, 11):
-            p1 = np.sort(bond_poles[N])
-            p2 = np.sort(np.concatenate(_cplxreal(besselap(N, 'delay')[1])))
-            assert_array_almost_equal(p1, p2, decimal=10)
-
-        # "Frequency Normalized Bessel Pole Locations"
-        bond_poles = {
-            1: [-1.0000000000],
-            2: [-1.1016013306 + 0.6360098248j],
-            3: [-1.0474091610 + 0.9992644363j, -1.3226757999],
-            4: [-0.9952087644 + 1.2571057395j, -1.3700678306 + 0.4102497175j],
-            5: [-0.9576765486 + 1.4711243207j, -1.3808773259 + 0.7179095876j,
-                -1.5023162714],
-            6: [-0.9306565229 + 1.6618632689j, -1.3818580976 + 0.9714718907j,
-                -1.5714904036 + 0.3208963742j],
-            7: [-0.9098677806 + 1.8364513530j, -1.3789032168 + 1.1915667778j,
-                -1.6120387662 + 0.5892445069j, -1.6843681793],
-            8: [-0.8928697188 + 1.9983258436j, -1.3738412176 + 1.3883565759j,
-                -1.6369394181 + 0.8227956251j, -1.7574084004 + 0.2728675751j],
-            9: [-0.8783992762 + 2.1498005243j, -1.3675883098 + 1.5677337122j,
-                -1.6523964846 + 1.0313895670j, -1.8071705350 + 0.5123837306j,
-                -1.8566005012],
-            10: [-0.8657569017 + 2.2926048310j, -1.3606922784 + 1.7335057427j,
-                 -1.6618102414 + 1.2211002186j, -1.8421962445 + 0.7272575978j,
-                 -1.9276196914 + 0.2416234710j]
-            }
-
-        for N in range(1, 11):
-            p1 = np.sort(bond_poles[N])
-            p2 = np.sort(np.concatenate(_cplxreal(besselap(N, 'mag')[1])))
-            assert_array_almost_equal(p1, p2, decimal=10)
-
-        # Compare to https://www.ranecommercial.com/legacy/note147.html
-        # "Table 1 - Bessel Crossovers of Second, Third, and Fourth-Order"
-        a = [1, 1, 1/3]
-        b2, a2 = bessel(2, 1, norm='delay', analog=True)
-        assert_allclose(a[::-1], a2/b2)
-
-        a = [1, 1, 2/5, 1/15]
-        b2, a2 = bessel(3, 1, norm='delay', analog=True)
-        assert_allclose(a[::-1], a2/b2)
-
-        a = [1, 1, 9/21, 2/21, 1/105]
-        b2, a2 = bessel(4, 1, norm='delay', analog=True)
-        assert_allclose(a[::-1], a2/b2)
-
-        a = [1, np.sqrt(3), 1]
-        b2, a2 = bessel(2, 1, norm='phase', analog=True)
-        assert_allclose(a[::-1], a2/b2)
-
-        # TODO: Why so inaccurate?  Is reference flawed?
-        a = [1, 2.481, 2.463, 1.018]
-        b2, a2 = bessel(3, 1, norm='phase', analog=True)
-        assert_array_almost_equal(a[::-1], a2/b2, decimal=1)
-
-        # TODO: Why so inaccurate?  Is reference flawed?
-        a = [1, 3.240, 4.5, 3.240, 1.050]
-        b2, a2 = bessel(4, 1, norm='phase', analog=True)
-        assert_array_almost_equal(a[::-1], a2/b2, decimal=1)
-
-        # Table of -3 dB factors:
-        N, scale = 2, 1.272
-        scale2 = besselap(N, 'mag')[1] / besselap(N, 'phase')[1]
-        assert_array_almost_equal(scale, scale2, decimal=3)
-
-        # TODO: Why so inaccurate?  Is reference flawed?
-        N, scale = 3, 1.413
-        scale2 = besselap(N, 'mag')[1] / besselap(N, 'phase')[1]
-        assert_array_almost_equal(scale, scale2, decimal=2)
-
-        # TODO: Why so inaccurate?  Is reference flawed?
-        N, scale = 4, 1.533
-        scale2 = besselap(N, 'mag')[1] / besselap(N, 'phase')[1]
-        assert_array_almost_equal(scale, scale2, decimal=1)
-
-    def test_hardcoded(self):
-        # Compare to values from original hardcoded implementation
-        originals = {
-            0: [],
-            1: [-1],
-            2: [-.8660254037844386467637229 + .4999999999999999999999996j],
-            3: [-.9416000265332067855971980,
-                -.7456403858480766441810907 + .7113666249728352680992154j],
-            4: [-.6572111716718829545787788 + .8301614350048733772399715j,
-                -.9047587967882449459642624 + .2709187330038746636700926j],
-            5: [-.9264420773877602247196260,
-                -.8515536193688395541722677 + .4427174639443327209850002j,
-                -.5905759446119191779319432 + .9072067564574549539291747j],
-            6: [-.9093906830472271808050953 + .1856964396793046769246397j,
-                -.7996541858328288520243325 + .5621717346937317988594118j,
-                -.5385526816693109683073792 + .9616876881954277199245657j],
-            7: [-.9194871556490290014311619,
-                -.8800029341523374639772340 + .3216652762307739398381830j,
-                -.7527355434093214462291616 + .6504696305522550699212995j,
-                -.4966917256672316755024763 + 1.002508508454420401230220j],
-            8: [-.9096831546652910216327629 + .1412437976671422927888150j,
-                -.8473250802359334320103023 + .4259017538272934994996429j,
-                -.7111381808485399250796172 + .7186517314108401705762571j,
-                -.4621740412532122027072175 + 1.034388681126901058116589j],
-            9: [-.9154957797499037686769223,
-                -.8911217017079759323183848 + .2526580934582164192308115j,
-                -.8148021112269012975514135 + .5085815689631499483745341j,
-                -.6743622686854761980403401 + .7730546212691183706919682j,
-                -.4331415561553618854685942 + 1.060073670135929666774323j],
-            10: [-.9091347320900502436826431 + .1139583137335511169927714j,
-                 -.8688459641284764527921864 + .3430008233766309973110589j,
-                 -.7837694413101441082655890 + .5759147538499947070009852j,
-                 -.6417513866988316136190854 + .8175836167191017226233947j,
-                 -.4083220732868861566219785 + 1.081274842819124562037210j],
-            11: [-.9129067244518981934637318,
-                 -.8963656705721166099815744 + .2080480375071031919692341j,
-                 -.8453044014712962954184557 + .4178696917801248292797448j,
-                 -.7546938934722303128102142 + .6319150050721846494520941j,
-                 -.6126871554915194054182909 + .8547813893314764631518509j,
-                 -.3868149510055090879155425 + 1.099117466763120928733632j],
-            12: [-.9084478234140682638817772 + 95506365213450398415258360e-27j,
-                 -.8802534342016826507901575 + .2871779503524226723615457j,
-                 -.8217296939939077285792834 + .4810212115100676440620548j,
-                 -.7276681615395159454547013 + .6792961178764694160048987j,
-                 -.5866369321861477207528215 + .8863772751320727026622149j,
-                 -.3679640085526312839425808 + 1.114373575641546257595657j],
-            13: [-.9110914665984182781070663,
-                 -.8991314665475196220910718 + .1768342956161043620980863j,
-                 -.8625094198260548711573628 + .3547413731172988997754038j,
-                 -.7987460692470972510394686 + .5350752120696801938272504j,
-                 -.7026234675721275653944062 + .7199611890171304131266374j,
-                 -.5631559842430199266325818 + .9135900338325109684927731j,
-                 -.3512792323389821669401925 + 1.127591548317705678613239j],
-            14: [-.9077932138396487614720659 + 82196399419401501888968130e-27j,
-                 -.8869506674916445312089167 + .2470079178765333183201435j,
-                 -.8441199160909851197897667 + .4131653825102692595237260j,
-                 -.7766591387063623897344648 + .5819170677377608590492434j,
-                 -.6794256425119233117869491 + .7552857305042033418417492j,
-                 -.5418766775112297376541293 + .9373043683516919569183099j,
-                 -.3363868224902037330610040 + 1.139172297839859991370924j],
-            15: [-.9097482363849064167228581,
-                 -.9006981694176978324932918 + .1537681197278439351298882j,
-                 -.8731264620834984978337843 + .3082352470564267657715883j,
-                 -.8256631452587146506294553 + .4642348752734325631275134j,
-                 -.7556027168970728127850416 + .6229396358758267198938604j,
-                 -.6579196593110998676999362 + .7862895503722515897065645j,
-                 -.5224954069658330616875186 + .9581787261092526478889345j,
-                 -.3229963059766444287113517 + 1.149416154583629539665297j],
-            16: [-.9072099595087001356491337 + 72142113041117326028823950e-27j,
-                 -.8911723070323647674780132 + .2167089659900576449410059j,
-                 -.8584264231521330481755780 + .3621697271802065647661080j,
-                 -.8074790293236003885306146 + .5092933751171800179676218j,
-                 -.7356166304713115980927279 + .6591950877860393745845254j,
-                 -.6379502514039066715773828 + .8137453537108761895522580j,
-                 -.5047606444424766743309967 + .9767137477799090692947061j,
-                 -.3108782755645387813283867 + 1.158552841199330479412225j],
-            17: [-.9087141161336397432860029,
-                 -.9016273850787285964692844 + .1360267995173024591237303j,
-                 -.8801100704438627158492165 + .2725347156478803885651973j,
-                 -.8433414495836129204455491 + .4100759282910021624185986j,
-                 -.7897644147799708220288138 + .5493724405281088674296232j,
-                 -.7166893842372349049842743 + .6914936286393609433305754j,
-                 -.6193710717342144521602448 + .8382497252826992979368621j,
-                 -.4884629337672704194973683 + .9932971956316781632345466j,
-                 -.2998489459990082015466971 + 1.166761272925668786676672j],
-            18: [-.9067004324162775554189031 + 64279241063930693839360680e-27j,
-                 -.8939764278132455733032155 + .1930374640894758606940586j,
-                 -.8681095503628830078317207 + .3224204925163257604931634j,
-                 -.8281885016242836608829018 + .4529385697815916950149364j,
-                 -.7726285030739558780127746 + .5852778162086640620016316j,
-                 -.6987821445005273020051878 + .7204696509726630531663123j,
-                 -.6020482668090644386627299 + .8602708961893664447167418j,
-                 -.4734268069916151511140032 + 1.008234300314801077034158j,
-                 -.2897592029880489845789953 + 1.174183010600059128532230j],
-            19: [-.9078934217899404528985092,
-                 -.9021937639390660668922536 + .1219568381872026517578164j,
-                 -.8849290585034385274001112 + .2442590757549818229026280j,
-                 -.8555768765618421591093993 + .3672925896399872304734923j,
-                 -.8131725551578197705476160 + .4915365035562459055630005j,
-                 -.7561260971541629355231897 + .6176483917970178919174173j,
-                 -.6818424412912442033411634 + .7466272357947761283262338j,
-                 -.5858613321217832644813602 + .8801817131014566284786759j,
-                 -.4595043449730988600785456 + 1.021768776912671221830298j,
-                 -.2804866851439370027628724 + 1.180931628453291873626003j],
-            20: [-.9062570115576771146523497 + 57961780277849516990208850e-27j,
-                 -.8959150941925768608568248 + .1740317175918705058595844j,
-                 -.8749560316673332850673214 + .2905559296567908031706902j,
-                 -.8427907479956670633544106 + .4078917326291934082132821j,
-                 -.7984251191290606875799876 + .5264942388817132427317659j,
-                 -.7402780309646768991232610 + .6469975237605228320268752j,
-                 -.6658120544829934193890626 + .7703721701100763015154510j,
-                 -.5707026806915714094398061 + .8982829066468255593407161j,
-                 -.4465700698205149555701841 + 1.034097702560842962315411j,
-                 -.2719299580251652601727704 + 1.187099379810885886139638j],
-            21: [-.9072262653142957028884077,
-                 -.9025428073192696303995083 + .1105252572789856480992275j,
-                 -.8883808106664449854431605 + .2213069215084350419975358j,
-                 -.8643915813643204553970169 + .3326258512522187083009453j,
-                 -.8299435470674444100273463 + .4448177739407956609694059j,
-                 -.7840287980408341576100581 + .5583186348022854707564856j,
-                 -.7250839687106612822281339 + .6737426063024382240549898j,
-                 -.6506315378609463397807996 + .7920349342629491368548074j,
-                 -.5564766488918562465935297 + .9148198405846724121600860j,
-                 -.4345168906815271799687308 + 1.045382255856986531461592j,
-                 -.2640041595834031147954813 + 1.192762031948052470183960j],
-            22: [-.9058702269930872551848625 + 52774908289999045189007100e-27j,
-                 -.8972983138153530955952835 + .1584351912289865608659759j,
-                 -.8799661455640176154025352 + .2644363039201535049656450j,
-                 -.8534754036851687233084587 + .3710389319482319823405321j,
-                 -.8171682088462720394344996 + .4785619492202780899653575j,
-                 -.7700332930556816872932937 + .5874255426351153211965601j,
-                 -.7105305456418785989070935 + .6982266265924524000098548j,
-                 -.6362427683267827226840153 + .8118875040246347267248508j,
-                 -.5430983056306302779658129 + .9299947824439872998916657j,
-                 -.4232528745642628461715044 + 1.055755605227545931204656j,
-                 -.2566376987939318038016012 + 1.197982433555213008346532j],
-            23: [-.9066732476324988168207439,
-                 -.9027564979912504609412993 + .1010534335314045013252480j,
-                 -.8909283242471251458653994 + .2023024699381223418195228j,
-                 -.8709469395587416239596874 + .3039581993950041588888925j,
-                 -.8423805948021127057054288 + .4062657948237602726779246j,
-                 -.8045561642053176205623187 + .5095305912227258268309528j,
-                 -.7564660146829880581478138 + .6141594859476032127216463j,
-                 -.6965966033912705387505040 + .7207341374753046970247055j,
-                 -.6225903228771341778273152 + .8301558302812980678845563j,
-                 -.5304922463810191698502226 + .9439760364018300083750242j,
-                 -.4126986617510148836149955 + 1.065328794475513585531053j,
-                 -.2497697202208956030229911 + 1.202813187870697831365338j],
-            24: [-.9055312363372773709269407 + 48440066540478700874836350e-27j,
-                 -.8983105104397872954053307 + .1454056133873610120105857j,
-                 -.8837358034555706623131950 + .2426335234401383076544239j,
-                 -.8615278304016353651120610 + .3403202112618624773397257j,
-                 -.8312326466813240652679563 + .4386985933597305434577492j,
-                 -.7921695462343492518845446 + .5380628490968016700338001j,
-                 -.7433392285088529449175873 + .6388084216222567930378296j,
-                 -.6832565803536521302816011 + .7415032695091650806797753j,
-                 -.6096221567378335562589532 + .8470292433077202380020454j,
-                 -.5185914574820317343536707 + .9569048385259054576937721j,
-                 -.4027853855197518014786978 + 1.074195196518674765143729j,
-                 -.2433481337524869675825448 + 1.207298683731972524975429j],
-            25: [-.9062073871811708652496104,
-                 -.9028833390228020537142561 + 93077131185102967450643820e-27j,
-                 -.8928551459883548836774529 + .1863068969804300712287138j,
-                 -.8759497989677857803656239 + .2798521321771408719327250j,
-                 -.8518616886554019782346493 + .3738977875907595009446142j,
-                 -.8201226043936880253962552 + .4686668574656966589020580j,
-                 -.7800496278186497225905443 + .5644441210349710332887354j,
-                 -.7306549271849967721596735 + .6616149647357748681460822j,
-                 -.6704827128029559528610523 + .7607348858167839877987008j,
-                 -.5972898661335557242320528 + .8626676330388028512598538j,
-                 -.5073362861078468845461362 + .9689006305344868494672405j,
-                 -.3934529878191079606023847 + 1.082433927173831581956863j,
-                 -.2373280669322028974199184 + 1.211476658382565356579418j],
-            }
-        for N in originals:
-            p1 = sorted(np.union1d(originals[N],
-                                   np.conj(originals[N])), key=np.imag)
-            p2 = sorted(besselap(N)[1], key=np.imag)
-            assert_allclose(p1, p2, rtol=1e-14)
-
-    def test_norm_phase(self):
-        # Test some orders and frequencies and see that they have the right
-        # phase at w0
-        for N in (1, 2, 3, 4, 5, 51, 72):
-            for w0 in (1, 100):
-                b, a = bessel(N, w0, analog=True, norm='phase')
-                w = np.linspace(0, w0, 100)
-                w, h = freqs(b, a, w)
-                phase = np.unwrap(np.angle(h))
-                assert_allclose(phase[[0, -1]], (0, -N*pi/4), rtol=1e-1)
-
-    def test_norm_mag(self):
-        # Test some orders and frequencies and see that they have the right
-        # mag at w0
-        for N in (1, 2, 3, 4, 5, 51, 72):
-            for w0 in (1, 100):
-                b, a = bessel(N, w0, analog=True, norm='mag')
-                w = (0, w0)
-                w, h = freqs(b, a, w)
-                mag = abs(h)
-                assert_allclose(mag, (1, 1/np.sqrt(2)))
-
-    def test_norm_delay(self):
-        # Test some orders and frequencies and see that they have the right
-        # delay at DC
-        for N in (1, 2, 3, 4, 5, 51, 72):
-            for w0 in (1, 100):
-                b, a = bessel(N, w0, analog=True, norm='delay')
-                w = np.linspace(0, 10*w0, 1000)
-                w, h = freqs(b, a, w)
-                delay = -np.diff(np.unwrap(np.angle(h)))/np.diff(w)
-                assert_allclose(delay[0], 1/w0, rtol=1e-4)
-
-    def test_norm_factor(self):
-        mpmath_values = {
-            1: 1, 2: 1.361654128716130520, 3: 1.755672368681210649,
-            4: 2.113917674904215843, 5: 2.427410702152628137,
-            6: 2.703395061202921876, 7: 2.951722147038722771,
-            8: 3.179617237510651330, 9: 3.391693138911660101,
-            10: 3.590980594569163482, 11: 3.779607416439620092,
-            12: 3.959150821144285315, 13: 4.130825499383535980,
-            14: 4.295593409533637564, 15: 4.454233021624377494,
-            16: 4.607385465472647917, 17: 4.755586548961147727,
-            18: 4.899289677284488007, 19: 5.038882681488207605,
-            20: 5.174700441742707423, 21: 5.307034531360917274,
-            22: 5.436140703250035999, 23: 5.562244783787878196,
-            24: 5.685547371295963521, 25: 5.806227623775418541,
-            50: 8.268963160013226298, 51: 8.352374541546012058,
-            }
-        for N in mpmath_values:
-            z, p, k = besselap(N, 'delay')
-            assert_allclose(mpmath_values[N], _norm_factor(p, k), rtol=1e-13)
-
-    def test_bessel_poly(self):
-        assert_array_equal(_bessel_poly(5), [945, 945, 420, 105, 15, 1])
-        assert_array_equal(_bessel_poly(4, True), [1, 10, 45, 105, 105])
-
-    def test_bessel_zeros(self):
-        assert_array_equal(_bessel_zeros(0), [])
-
-    def test_invalid(self):
-        assert_raises(ValueError, besselap, 5, 'nonsense')
-        assert_raises(ValueError, besselap, -5)
-        assert_raises(ValueError, besselap, 3.2)
-        assert_raises(ValueError, _bessel_poly, -3)
-        assert_raises(ValueError, _bessel_poly, 3.3)
-
-    @pytest.mark.fail_slow(5)
-    def test_fs_param(self):
-        for norm in ('phase', 'mag', 'delay'):
-            for fs in (900, 900.1, 1234.567):
-                for N in (0, 1, 2, 3, 10):
-                    for fc in (100, 100.1, 432.12345):
-                        for btype in ('lp', 'hp'):
-                            ba1 = bessel(N, fc, btype, norm=norm, fs=fs)
-                            ba2 = bessel(N, fc/(fs/2), btype, norm=norm)
-                            assert_allclose(ba1, ba2)
-                    for fc in ((100, 200), (100.1, 200.2), (321.123, 432.123)):
-                        for btype in ('bp', 'bs'):
-                            ba1 = bessel(N, fc, btype, norm=norm, fs=fs)
-                            for seq in (list, tuple, array):
-                                fcnorm = seq([f/(fs/2) for f in fc])
-                                ba2 = bessel(N, fcnorm, btype, norm=norm)
-                                assert_allclose(ba1, ba2)
-
-
-class TestButter:
-
-    def test_degenerate(self):
-        # 0-order filter is just a passthrough
-        b, a = butter(0, 1, analog=True)
-        assert_array_equal(b, [1])
-        assert_array_equal(a, [1])
-
-        # 1-order filter is same for all types
-        b, a = butter(1, 1, analog=True)
-        assert_array_almost_equal(b, [1])
-        assert_array_almost_equal(a, [1, 1])
-
-        z, p, k = butter(1, 0.3, output='zpk')
-        assert_array_equal(z, [-1])
-        assert_allclose(p, [3.249196962329063e-01], rtol=1e-14)
-        assert_allclose(k, 3.375401518835469e-01, rtol=1e-14)
-
-    def test_basic(self):
-        # analog s-plane
-        for N in range(25):
-            wn = 0.01
-            z, p, k = butter(N, wn, 'low', analog=True, output='zpk')
-            assert_array_almost_equal([], z)
-            assert_(len(p) == N)
-            # All poles should be at distance wn from origin
-            assert_array_almost_equal(wn, abs(p))
-            assert_(all(np.real(p) <= 0))  # No poles in right half of S-plane
-            assert_array_almost_equal(wn**N, k)
-
-        # digital z-plane
-        for N in range(25):
-            wn = 0.01
-            z, p, k = butter(N, wn, 'high', analog=False, output='zpk')
-            assert_array_equal(np.ones(N), z)  # All zeros exactly at DC
-            assert_(all(np.abs(p) <= 1))  # No poles outside unit circle
-
-        b1, a1 = butter(2, 1, analog=True)
-        assert_array_almost_equal(b1, [1])
-        assert_array_almost_equal(a1, [1, np.sqrt(2), 1])
-
-        b2, a2 = butter(5, 1, analog=True)
-        assert_array_almost_equal(b2, [1])
-        assert_array_almost_equal(a2, [1, 3.2361, 5.2361,
-                                       5.2361, 3.2361, 1], decimal=4)
-
-        b3, a3 = butter(10, 1, analog=True)
-        assert_array_almost_equal(b3, [1])
-        assert_array_almost_equal(a3, [1, 6.3925, 20.4317, 42.8021, 64.8824,
-                                       74.2334, 64.8824, 42.8021, 20.4317,
-                                       6.3925, 1], decimal=4)
-
-        b2, a2 = butter(19, 1.0441379169150726, analog=True)
-        assert_array_almost_equal(b2, [2.2720], decimal=4)
-        assert_array_almost_equal(a2, 1.0e+004 * np.array([
-                        0.0001, 0.0013, 0.0080, 0.0335, 0.1045, 0.2570,
-                        0.5164, 0.8669, 1.2338, 1.5010, 1.5672, 1.4044,
-                        1.0759, 0.6986, 0.3791, 0.1681, 0.0588, 0.0153,
-                        0.0026, 0.0002]), decimal=0)
-
-        b, a = butter(5, 0.4)
-        assert_array_almost_equal(b, [0.0219, 0.1097, 0.2194,
-                                      0.2194, 0.1097, 0.0219], decimal=4)
-        assert_array_almost_equal(a, [1.0000, -0.9853, 0.9738,
-                                      -0.3864, 0.1112, -0.0113], decimal=4)
-
-    def test_highpass(self):
-        # highpass, high even order
-        z, p, k = butter(28, 0.43, 'high', output='zpk')
-        z2 = np.ones(28)
-        p2 = [
-            2.068257195514592e-01 + 9.238294351481734e-01j,
-            2.068257195514592e-01 - 9.238294351481734e-01j,
-            1.874933103892023e-01 + 8.269455076775277e-01j,
-            1.874933103892023e-01 - 8.269455076775277e-01j,
-            1.717435567330153e-01 + 7.383078571194629e-01j,
-            1.717435567330153e-01 - 7.383078571194629e-01j,
-            1.588266870755982e-01 + 6.564623730651094e-01j,
-            1.588266870755982e-01 - 6.564623730651094e-01j,
-            1.481881532502603e-01 + 5.802343458081779e-01j,
-            1.481881532502603e-01 - 5.802343458081779e-01j,
-            1.394122576319697e-01 + 5.086609000582009e-01j,
-            1.394122576319697e-01 - 5.086609000582009e-01j,
-            1.321840881809715e-01 + 4.409411734716436e-01j,
-            1.321840881809715e-01 - 4.409411734716436e-01j,
-            1.262633413354405e-01 + 3.763990035551881e-01j,
-            1.262633413354405e-01 - 3.763990035551881e-01j,
-            1.214660449478046e-01 + 3.144545234797277e-01j,
-            1.214660449478046e-01 - 3.144545234797277e-01j,
-            1.104868766650320e-01 + 2.771505404367791e-02j,
-            1.104868766650320e-01 - 2.771505404367791e-02j,
-            1.111768629525075e-01 + 8.331369153155753e-02j,
-            1.111768629525075e-01 - 8.331369153155753e-02j,
-            1.125740630842972e-01 + 1.394219509611784e-01j,
-            1.125740630842972e-01 - 1.394219509611784e-01j,
-            1.147138487992747e-01 + 1.963932363793666e-01j,
-            1.147138487992747e-01 - 1.963932363793666e-01j,
-            1.176516491045901e-01 + 2.546021573417188e-01j,
-            1.176516491045901e-01 - 2.546021573417188e-01j,
-            ]
-        k2 = 1.446671081817286e-06
-        assert_array_equal(z, z2)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(p2, key=np.imag), rtol=1e-7)
-        assert_allclose(k, k2, rtol=1e-10)
-
-        # highpass, high odd order
-        z, p, k = butter(27, 0.56, 'high', output='zpk')
-        z2 = np.ones(27)
-        p2 = [
-            -1.772572785680147e-01 + 9.276431102995948e-01j,
-            -1.772572785680147e-01 - 9.276431102995948e-01j,
-            -1.600766565322114e-01 + 8.264026279893268e-01j,
-            -1.600766565322114e-01 - 8.264026279893268e-01j,
-            -1.461948419016121e-01 + 7.341841939120078e-01j,
-            -1.461948419016121e-01 - 7.341841939120078e-01j,
-            -1.348975284762046e-01 + 6.493235066053785e-01j,
-            -1.348975284762046e-01 - 6.493235066053785e-01j,
-            -1.256628210712206e-01 + 5.704921366889227e-01j,
-            -1.256628210712206e-01 - 5.704921366889227e-01j,
-            -1.181038235962314e-01 + 4.966120551231630e-01j,
-            -1.181038235962314e-01 - 4.966120551231630e-01j,
-            -1.119304913239356e-01 + 4.267938916403775e-01j,
-            -1.119304913239356e-01 - 4.267938916403775e-01j,
-            -1.069237739782691e-01 + 3.602914879527338e-01j,
-            -1.069237739782691e-01 - 3.602914879527338e-01j,
-            -1.029178030691416e-01 + 2.964677964142126e-01j,
-            -1.029178030691416e-01 - 2.964677964142126e-01j,
-            -9.978747500816100e-02 + 2.347687643085738e-01j,
-            -9.978747500816100e-02 - 2.347687643085738e-01j,
-            -9.743974496324025e-02 + 1.747028739092479e-01j,
-            -9.743974496324025e-02 - 1.747028739092479e-01j,
-            -9.580754551625957e-02 + 1.158246860771989e-01j,
-            -9.580754551625957e-02 - 1.158246860771989e-01j,
-            -9.484562207782568e-02 + 5.772118357151691e-02j,
-            -9.484562207782568e-02 - 5.772118357151691e-02j,
-            -9.452783117928215e-02
-            ]
-        k2 = 9.585686688851069e-09
-        assert_array_equal(z, z2)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(p2, key=np.imag), rtol=1e-8)
-        assert_allclose(k, k2)
-
-    def test_bandpass(self):
-        z, p, k = butter(8, [0.25, 0.33], 'band', output='zpk')
-        z2 = [1, 1, 1, 1, 1, 1, 1, 1,
-              -1, -1, -1, -1, -1, -1, -1, -1]
-        p2 = [
-            4.979909925436156e-01 + 8.367609424799387e-01j,
-            4.979909925436156e-01 - 8.367609424799387e-01j,
-            4.913338722555539e-01 + 7.866774509868817e-01j,
-            4.913338722555539e-01 - 7.866774509868817e-01j,
-            5.035229361778706e-01 + 7.401147376726750e-01j,
-            5.035229361778706e-01 - 7.401147376726750e-01j,
-            5.307617160406101e-01 + 7.029184459442954e-01j,
-            5.307617160406101e-01 - 7.029184459442954e-01j,
-            5.680556159453138e-01 + 6.788228792952775e-01j,
-            5.680556159453138e-01 - 6.788228792952775e-01j,
-            6.100962560818854e-01 + 6.693849403338664e-01j,
-            6.100962560818854e-01 - 6.693849403338664e-01j,
-            6.904694312740631e-01 + 6.930501690145245e-01j,
-            6.904694312740631e-01 - 6.930501690145245e-01j,
-            6.521767004237027e-01 + 6.744414640183752e-01j,
-            6.521767004237027e-01 - 6.744414640183752e-01j,
-            ]
-        k2 = 3.398854055800844e-08
-        assert_array_equal(z, z2)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(p2, key=np.imag), rtol=1e-13)
-        assert_allclose(k, k2, rtol=1e-13)
-
-        # bandpass analog
-        z, p, k = butter(4, [90.5, 110.5], 'bp', analog=True, output='zpk')
-        z2 = np.zeros(4)
-        p2 = [
-            -4.179137760733086e+00 + 1.095935899082837e+02j,
-            -4.179137760733086e+00 - 1.095935899082837e+02j,
-            -9.593598668443835e+00 + 1.034745398029734e+02j,
-            -9.593598668443835e+00 - 1.034745398029734e+02j,
-            -8.883991981781929e+00 + 9.582087115567160e+01j,
-            -8.883991981781929e+00 - 9.582087115567160e+01j,
-            -3.474530886568715e+00 + 9.111599925805801e+01j,
-            -3.474530886568715e+00 - 9.111599925805801e+01j,
-            ]
-        k2 = 1.600000000000001e+05
-        assert_array_equal(z, z2)
-        assert_allclose(sorted(p, key=np.imag), sorted(p2, key=np.imag))
-        assert_allclose(k, k2, rtol=1e-15)
-
-    def test_bandstop(self):
-        z, p, k = butter(7, [0.45, 0.56], 'stop', output='zpk')
-        z2 = [-1.594474531383421e-02 + 9.998728744679880e-01j,
-              -1.594474531383421e-02 - 9.998728744679880e-01j,
-              -1.594474531383421e-02 + 9.998728744679880e-01j,
-              -1.594474531383421e-02 - 9.998728744679880e-01j,
-              -1.594474531383421e-02 + 9.998728744679880e-01j,
-              -1.594474531383421e-02 - 9.998728744679880e-01j,
-              -1.594474531383421e-02 + 9.998728744679880e-01j,
-              -1.594474531383421e-02 - 9.998728744679880e-01j,
-              -1.594474531383421e-02 + 9.998728744679880e-01j,
-              -1.594474531383421e-02 - 9.998728744679880e-01j,
-              -1.594474531383421e-02 + 9.998728744679880e-01j,
-              -1.594474531383421e-02 - 9.998728744679880e-01j,
-              -1.594474531383421e-02 + 9.998728744679880e-01j,
-              -1.594474531383421e-02 - 9.998728744679880e-01j]
-        p2 = [-1.766850742887729e-01 + 9.466951258673900e-01j,
-              -1.766850742887729e-01 - 9.466951258673900e-01j,
-               1.467897662432886e-01 + 9.515917126462422e-01j,
-               1.467897662432886e-01 - 9.515917126462422e-01j,
-              -1.370083529426906e-01 + 8.880376681273993e-01j,
-              -1.370083529426906e-01 - 8.880376681273993e-01j,
-               1.086774544701390e-01 + 8.915240810704319e-01j,
-               1.086774544701390e-01 - 8.915240810704319e-01j,
-              -7.982704457700891e-02 + 8.506056315273435e-01j,
-              -7.982704457700891e-02 - 8.506056315273435e-01j,
-               5.238812787110331e-02 + 8.524011102699969e-01j,
-               5.238812787110331e-02 - 8.524011102699969e-01j,
-              -1.357545000491310e-02 + 8.382287744986582e-01j,
-              -1.357545000491310e-02 - 8.382287744986582e-01j]
-        k2 = 4.577122512960063e-01
-        assert_allclose(sorted(z, key=np.imag), sorted(z2, key=np.imag))
-        assert_allclose(sorted(p, key=np.imag), sorted(p2, key=np.imag))
-        assert_allclose(k, k2, rtol=1e-14)
-
-    def test_ba_output(self):
-        b, a = butter(4, [100, 300], 'bandpass', analog=True)
-        b2 = [1.6e+09, 0, 0, 0, 0]
-        a2 = [1.000000000000000e+00, 5.226251859505511e+02,
-              2.565685424949238e+05, 6.794127417357160e+07,
-              1.519411254969542e+10, 2.038238225207147e+12,
-              2.309116882454312e+14, 1.411088002066486e+16,
-              8.099999999999991e+17]
-        assert_allclose(b, b2, rtol=1e-14)
-        assert_allclose(a, a2, rtol=1e-14)
-
-    def test_fs_param(self):
-        for fs in (900, 900.1, 1234.567):
-            for N in (0, 1, 2, 3, 10):
-                for fc in (100, 100.1, 432.12345):
-                    for btype in ('lp', 'hp'):
-                        ba1 = butter(N, fc, btype, fs=fs)
-                        ba2 = butter(N, fc/(fs/2), btype)
-                        assert_allclose(ba1, ba2)
-                for fc in ((100, 200), (100.1, 200.2), (321.123, 432.123)):
-                    for btype in ('bp', 'bs'):
-                        ba1 = butter(N, fc, btype, fs=fs)
-                        for seq in (list, tuple, array):
-                            fcnorm = seq([f/(fs/2) for f in fc])
-                            ba2 = butter(N, fcnorm, btype)
-                            assert_allclose(ba1, ba2)
-
-
-class TestCheby1:
-
-    def test_degenerate(self):
-        # 0-order filter is just a passthrough
-        # Even-order filters have DC gain of -rp dB
-        b, a = cheby1(0, 10*np.log10(2), 1, analog=True)
-        assert_array_almost_equal(b, [1/np.sqrt(2)])
-        assert_array_equal(a, [1])
-
-        # 1-order filter is same for all types
-        b, a = cheby1(1, 10*np.log10(2), 1, analog=True)
-        assert_array_almost_equal(b, [1])
-        assert_array_almost_equal(a, [1, 1])
-
-        z, p, k = cheby1(1, 0.1, 0.3, output='zpk')
-        assert_array_equal(z, [-1])
-        assert_allclose(p, [-5.390126972799615e-01], rtol=1e-14)
-        assert_allclose(k, 7.695063486399808e-01, rtol=1e-14)
-
-    def test_basic(self):
-        for N in range(25):
-            wn = 0.01
-            z, p, k = cheby1(N, 1, wn, 'low', analog=True, output='zpk')
-            assert_array_almost_equal([], z)
-            assert_(len(p) == N)
-            assert_(all(np.real(p) <= 0))  # No poles in right half of S-plane
-
-        for N in range(25):
-            wn = 0.01
-            z, p, k = cheby1(N, 1, wn, 'high', analog=False, output='zpk')
-            assert_array_equal(np.ones(N), z)  # All zeros exactly at DC
-            assert_(all(np.abs(p) <= 1))  # No poles outside unit circle
-
-        # Same test as TestNormalize
-        b, a = cheby1(8, 0.5, 0.048)
-        assert_array_almost_equal(b, [
-                             2.150733144728282e-11, 1.720586515782626e-10,
-                             6.022052805239190e-10, 1.204410561047838e-09,
-                             1.505513201309798e-09, 1.204410561047838e-09,
-                             6.022052805239190e-10, 1.720586515782626e-10,
-                             2.150733144728282e-11], decimal=14)
-        assert_array_almost_equal(a, [
-                             1.000000000000000e+00, -7.782402035027959e+00,
-                             2.654354569747454e+01, -5.182182531666387e+01,
-                             6.334127355102684e+01, -4.963358186631157e+01,
-                             2.434862182949389e+01, -6.836925348604676e+00,
-                             8.412934944449140e-01], decimal=14)
-
-        b, a = cheby1(4, 1, [0.4, 0.7], btype='band')
-        assert_array_almost_equal(b, [0.0084, 0, -0.0335, 0, 0.0502, 0,
-                                      -0.0335, 0, 0.0084], decimal=4)
-        assert_array_almost_equal(a, [1.0, 1.1191, 2.862, 2.2986, 3.4137,
-                                      1.8653, 1.8982, 0.5676, 0.4103],
-                                  decimal=4)
-
-        b2, a2 = cheby1(5, 3, 1, analog=True)
-        assert_array_almost_equal(b2, [0.0626], decimal=4)
-        assert_array_almost_equal(a2, [1, 0.5745, 1.4150, 0.5489, 0.4080,
-                                       0.0626], decimal=4)
-
-        b, a = cheby1(8, 0.5, 0.1)
-        assert_array_almost_equal(b, 1.0e-006 * np.array([
-            0.00703924326028, 0.05631394608227, 0.19709881128793,
-            0.39419762257586, 0.49274702821983, 0.39419762257586,
-            0.19709881128793, 0.05631394608227, 0.00703924326028]),
-            decimal=13)
-        assert_array_almost_equal(a, [
-              1.00000000000000, -7.44912258934158, 24.46749067762108,
-              -46.27560200466141, 55.11160187999928, -42.31640010161038,
-              20.45543300484147, -5.69110270561444, 0.69770374759022],
-            decimal=13)
-
-        b, a = cheby1(8, 0.5, 0.25)
-        assert_array_almost_equal(b, 1.0e-003 * np.array([
-            0.00895261138923, 0.07162089111382, 0.25067311889837,
-            0.50134623779673, 0.62668279724591, 0.50134623779673,
-            0.25067311889837, 0.07162089111382, 0.00895261138923]),
-            decimal=13)
-        assert_array_almost_equal(a, [1.00000000000000, -5.97529229188545,
-                                      16.58122329202101, -27.71423273542923,
-                                      30.39509758355313, -22.34729670426879,
-                                      10.74509800434910, -3.08924633697497,
-                                      0.40707685889802], decimal=13)
-
-    def test_highpass(self):
-        # high even order
-        z, p, k = cheby1(24, 0.7, 0.2, 'high', output='zpk')
-        z2 = np.ones(24)
-        p2 = [-6.136558509657073e-01 + 2.700091504942893e-01j,
-              -6.136558509657073e-01 - 2.700091504942893e-01j,
-              -3.303348340927516e-01 + 6.659400861114254e-01j,
-              -3.303348340927516e-01 - 6.659400861114254e-01j,
-              8.779713780557169e-03 + 8.223108447483040e-01j,
-              8.779713780557169e-03 - 8.223108447483040e-01j,
-              2.742361123006911e-01 + 8.356666951611864e-01j,
-              2.742361123006911e-01 - 8.356666951611864e-01j,
-              4.562984557158206e-01 + 7.954276912303594e-01j,
-              4.562984557158206e-01 - 7.954276912303594e-01j,
-              5.777335494123628e-01 + 7.435821817961783e-01j,
-              5.777335494123628e-01 - 7.435821817961783e-01j,
-              6.593260977749194e-01 + 6.955390907990932e-01j,
-              6.593260977749194e-01 - 6.955390907990932e-01j,
-              7.149590948466562e-01 + 6.559437858502012e-01j,
-              7.149590948466562e-01 - 6.559437858502012e-01j,
-              7.532432388188739e-01 + 6.256158042292060e-01j,
-              7.532432388188739e-01 - 6.256158042292060e-01j,
-              7.794365244268271e-01 + 6.042099234813333e-01j,
-              7.794365244268271e-01 - 6.042099234813333e-01j,
-              7.967253874772997e-01 + 5.911966597313203e-01j,
-              7.967253874772997e-01 - 5.911966597313203e-01j,
-              8.069756417293870e-01 + 5.862214589217275e-01j,
-              8.069756417293870e-01 - 5.862214589217275e-01j]
-        k2 = 6.190427617192018e-04
-        assert_array_equal(z, z2)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(p2, key=np.imag), rtol=1e-10)
-        assert_allclose(k, k2, rtol=1e-10)
-
-        # high odd order
-        z, p, k = cheby1(23, 0.8, 0.3, 'high', output='zpk')
-        z2 = np.ones(23)
-        p2 = [-7.676400532011010e-01,
-              -6.754621070166477e-01 + 3.970502605619561e-01j,
-              -6.754621070166477e-01 - 3.970502605619561e-01j,
-              -4.528880018446727e-01 + 6.844061483786332e-01j,
-              -4.528880018446727e-01 - 6.844061483786332e-01j,
-              -1.986009130216447e-01 + 8.382285942941594e-01j,
-              -1.986009130216447e-01 - 8.382285942941594e-01j,
-              2.504673931532608e-02 + 8.958137635794080e-01j,
-              2.504673931532608e-02 - 8.958137635794080e-01j,
-              2.001089429976469e-01 + 9.010678290791480e-01j,
-              2.001089429976469e-01 - 9.010678290791480e-01j,
-              3.302410157191755e-01 + 8.835444665962544e-01j,
-              3.302410157191755e-01 - 8.835444665962544e-01j,
-              4.246662537333661e-01 + 8.594054226449009e-01j,
-              4.246662537333661e-01 - 8.594054226449009e-01j,
-              4.919620928120296e-01 + 8.366772762965786e-01j,
-              4.919620928120296e-01 - 8.366772762965786e-01j,
-              5.385746917494749e-01 + 8.191616180796720e-01j,
-              5.385746917494749e-01 - 8.191616180796720e-01j,
-              5.855636993537203e-01 + 8.060680937701062e-01j,
-              5.855636993537203e-01 - 8.060680937701062e-01j,
-              5.688812849391721e-01 + 8.086497795114683e-01j,
-              5.688812849391721e-01 - 8.086497795114683e-01j]
-        k2 = 1.941697029206324e-05
-        assert_array_equal(z, z2)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(p2, key=np.imag), rtol=1e-10)
-        assert_allclose(k, k2, rtol=1e-10)
-
-        z, p, k = cheby1(10, 1, 1000, 'high', analog=True, output='zpk')
-        z2 = np.zeros(10)
-        p2 = [-3.144743169501551e+03 + 3.511680029092744e+03j,
-              -3.144743169501551e+03 - 3.511680029092744e+03j,
-              -5.633065604514602e+02 + 2.023615191183945e+03j,
-              -5.633065604514602e+02 - 2.023615191183945e+03j,
-              -1.946412183352025e+02 + 1.372309454274755e+03j,
-              -1.946412183352025e+02 - 1.372309454274755e+03j,
-              -7.987162953085479e+01 + 1.105207708045358e+03j,
-              -7.987162953085479e+01 - 1.105207708045358e+03j,
-              -2.250315039031946e+01 + 1.001723931471477e+03j,
-              -2.250315039031946e+01 - 1.001723931471477e+03j]
-        k2 = 8.912509381337453e-01
-        assert_array_equal(z, z2)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(p2, key=np.imag), rtol=1e-13)
-        assert_allclose(k, k2, rtol=1e-15)
-
-    def test_bandpass(self):
-        z, p, k = cheby1(8, 1, [0.3, 0.4], 'bp', output='zpk')
-        z2 = [1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1]
-        p2 = [3.077784854851463e-01 + 9.453307017592942e-01j,
-              3.077784854851463e-01 - 9.453307017592942e-01j,
-              3.280567400654425e-01 + 9.272377218689016e-01j,
-              3.280567400654425e-01 - 9.272377218689016e-01j,
-              3.677912763284301e-01 + 9.038008865279966e-01j,
-              3.677912763284301e-01 - 9.038008865279966e-01j,
-              4.194425632520948e-01 + 8.769407159656157e-01j,
-              4.194425632520948e-01 - 8.769407159656157e-01j,
-              4.740921994669189e-01 + 8.496508528630974e-01j,
-              4.740921994669189e-01 - 8.496508528630974e-01j,
-              5.234866481897429e-01 + 8.259608422808477e-01j,
-              5.234866481897429e-01 - 8.259608422808477e-01j,
-              5.844717632289875e-01 + 8.052901363500210e-01j,
-              5.844717632289875e-01 - 8.052901363500210e-01j,
-              5.615189063336070e-01 + 8.100667803850766e-01j,
-              5.615189063336070e-01 - 8.100667803850766e-01j]
-        k2 = 5.007028718074307e-09
-        assert_array_equal(z, z2)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(p2, key=np.imag), rtol=1e-13)
-        assert_allclose(k, k2, rtol=1e-13)
-
-    def test_bandstop(self):
-        z, p, k = cheby1(7, 1, [0.5, 0.6], 'stop', output='zpk')
-        z2 = [-1.583844403245361e-01 + 9.873775210440450e-01j,
-              -1.583844403245361e-01 - 9.873775210440450e-01j,
-              -1.583844403245361e-01 + 9.873775210440450e-01j,
-              -1.583844403245361e-01 - 9.873775210440450e-01j,
-              -1.583844403245361e-01 + 9.873775210440450e-01j,
-              -1.583844403245361e-01 - 9.873775210440450e-01j,
-              -1.583844403245361e-01 + 9.873775210440450e-01j,
-              -1.583844403245361e-01 - 9.873775210440450e-01j,
-              -1.583844403245361e-01 + 9.873775210440450e-01j,
-              -1.583844403245361e-01 - 9.873775210440450e-01j,
-              -1.583844403245361e-01 + 9.873775210440450e-01j,
-              -1.583844403245361e-01 - 9.873775210440450e-01j,
-              -1.583844403245361e-01 + 9.873775210440450e-01j,
-              -1.583844403245361e-01 - 9.873775210440450e-01j]
-        p2 = [-8.942974551472813e-02 + 3.482480481185926e-01j,
-              -8.942974551472813e-02 - 3.482480481185926e-01j,
-               1.293775154041798e-01 + 8.753499858081858e-01j,
-               1.293775154041798e-01 - 8.753499858081858e-01j,
-               3.399741945062013e-02 + 9.690316022705607e-01j,
-               3.399741945062013e-02 - 9.690316022705607e-01j,
-               4.167225522796539e-04 + 9.927338161087488e-01j,
-               4.167225522796539e-04 - 9.927338161087488e-01j,
-              -3.912966549550960e-01 + 8.046122859255742e-01j,
-              -3.912966549550960e-01 - 8.046122859255742e-01j,
-              -3.307805547127368e-01 + 9.133455018206508e-01j,
-              -3.307805547127368e-01 - 9.133455018206508e-01j,
-              -3.072658345097743e-01 + 9.443589759799366e-01j,
-              -3.072658345097743e-01 - 9.443589759799366e-01j]
-        k2 = 3.619438310405028e-01
-        assert_allclose(sorted(z, key=np.imag),
-                        sorted(z2, key=np.imag), rtol=1e-13)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(p2, key=np.imag), rtol=1e-13)
-        assert_allclose(k, k2, rtol=0, atol=5e-16)
-
-    def test_ba_output(self):
-        # with transfer function conversion,  without digital conversion
-        b, a = cheby1(5, 0.9, [210, 310], 'stop', analog=True)
-        b2 = [1.000000000000006e+00, 0,
-              3.255000000000020e+05, 0,
-              4.238010000000026e+10, 0,
-              2.758944510000017e+15, 0,
-              8.980364380050052e+19, 0,
-              1.169243442282517e+24
-              ]
-        a2 = [1.000000000000000e+00, 4.630555945694342e+02,
-              4.039266454794788e+05, 1.338060988610237e+08,
-              5.844333551294591e+10, 1.357346371637638e+13,
-              3.804661141892782e+15, 5.670715850340080e+17,
-              1.114411200988328e+20, 8.316815934908471e+21,
-              1.169243442282517e+24
-              ]
-        assert_allclose(b, b2, rtol=1e-14)
-        assert_allclose(a, a2, rtol=1e-14)
-
-    def test_fs_param(self):
-        for fs in (900, 900.1, 1234.567):
-            for N in (0, 1, 2, 3, 10):
-                for fc in (100, 100.1, 432.12345):
-                    for btype in ('lp', 'hp'):
-                        ba1 = cheby1(N, 1, fc, btype, fs=fs)
-                        ba2 = cheby1(N, 1, fc/(fs/2), btype)
-                        assert_allclose(ba1, ba2)
-                for fc in ((100, 200), (100.1, 200.2), (321.123, 432.123)):
-                    for btype in ('bp', 'bs'):
-                        ba1 = cheby1(N, 1, fc, btype, fs=fs)
-                        for seq in (list, tuple, array):
-                            fcnorm = seq([f/(fs/2) for f in fc])
-                            ba2 = cheby1(N, 1, fcnorm, btype)
-                            assert_allclose(ba1, ba2)
-
-
-class TestCheby2:
-
-    def test_degenerate(self):
-        # 0-order filter is just a passthrough
-        # Stopband ripple factor doesn't matter
-        b, a = cheby2(0, 123.456, 1, analog=True)
-        assert_array_equal(b, [1])
-        assert_array_equal(a, [1])
-
-        # 1-order filter is same for all types
-        b, a = cheby2(1, 10*np.log10(2), 1, analog=True)
-        assert_array_almost_equal(b, [1])
-        assert_array_almost_equal(a, [1, 1])
-
-        z, p, k = cheby2(1, 50, 0.3, output='zpk')
-        assert_array_equal(z, [-1])
-        assert_allclose(p, [9.967826460175649e-01], rtol=1e-14)
-        assert_allclose(k, 1.608676991217512e-03, rtol=1e-14)
-
-    def test_basic(self):
-        for N in range(25):
-            wn = 0.01
-            z, p, k = cheby2(N, 40, wn, 'low', analog=True, output='zpk')
-            assert_(len(p) == N)
-            assert_(all(np.real(p) <= 0))  # No poles in right half of S-plane
-
-        for N in range(25):
-            wn = 0.01
-            z, p, k = cheby2(N, 40, wn, 'high', analog=False, output='zpk')
-            assert_(all(np.abs(p) <= 1))  # No poles outside unit circle
-
-        B, A = cheby2(18, 100, 0.5)
-        assert_array_almost_equal(B, [
-            0.00167583914216, 0.01249479541868, 0.05282702120282,
-            0.15939804265706, 0.37690207631117, 0.73227013789108,
-            1.20191856962356, 1.69522872823393, 2.07598674519837,
-            2.21972389625291, 2.07598674519838, 1.69522872823395,
-            1.20191856962359, 0.73227013789110, 0.37690207631118,
-            0.15939804265707, 0.05282702120282, 0.01249479541868,
-            0.00167583914216], decimal=13)
-        assert_array_almost_equal(A, [
-            1.00000000000000, -0.27631970006174, 3.19751214254060,
-            -0.15685969461355, 4.13926117356269, 0.60689917820044,
-            2.95082770636540, 0.89016501910416, 1.32135245849798,
-            0.51502467236824, 0.38906643866660, 0.15367372690642,
-            0.07255803834919, 0.02422454070134, 0.00756108751837,
-            0.00179848550988, 0.00033713574499, 0.00004258794833,
-            0.00000281030149], decimal=13)
-
-    def test_highpass(self):
-        # high even order
-        z, p, k = cheby2(26, 60, 0.3, 'high', output='zpk')
-        z2 = [9.981088955489852e-01 + 6.147058341984388e-02j,
-              9.981088955489852e-01 - 6.147058341984388e-02j,
-              9.832702870387426e-01 + 1.821525257215483e-01j,
-              9.832702870387426e-01 - 1.821525257215483e-01j,
-              9.550760158089112e-01 + 2.963609353922882e-01j,
-              9.550760158089112e-01 - 2.963609353922882e-01j,
-              9.162054748821922e-01 + 4.007087817803773e-01j,
-              9.162054748821922e-01 - 4.007087817803773e-01j,
-              8.700619897368064e-01 + 4.929423232136168e-01j,
-              8.700619897368064e-01 - 4.929423232136168e-01j,
-              5.889791753434985e-01 + 8.081482110427953e-01j,
-              5.889791753434985e-01 - 8.081482110427953e-01j,
-              5.984900456570295e-01 + 8.011302423760501e-01j,
-              5.984900456570295e-01 - 8.011302423760501e-01j,
-              6.172880888914629e-01 + 7.867371958365343e-01j,
-              6.172880888914629e-01 - 7.867371958365343e-01j,
-              6.448899971038180e-01 + 7.642754030030161e-01j,
-              6.448899971038180e-01 - 7.642754030030161e-01j,
-              6.804845629637927e-01 + 7.327624168637228e-01j,
-              6.804845629637927e-01 - 7.327624168637228e-01j,
-              8.202619107108660e-01 + 5.719881098737678e-01j,
-              8.202619107108660e-01 - 5.719881098737678e-01j,
-              7.228410452536148e-01 + 6.910143437705678e-01j,
-              7.228410452536148e-01 - 6.910143437705678e-01j,
-              7.702121399578629e-01 + 6.377877856007792e-01j,
-              7.702121399578629e-01 - 6.377877856007792e-01j]
-        p2 = [7.365546198286450e-01 + 4.842085129329526e-02j,
-              7.365546198286450e-01 - 4.842085129329526e-02j,
-              7.292038510962885e-01 + 1.442201672097581e-01j,
-              7.292038510962885e-01 - 1.442201672097581e-01j,
-              7.151293788040354e-01 + 2.369925800458584e-01j,
-              7.151293788040354e-01 - 2.369925800458584e-01j,
-              6.955051820787286e-01 + 3.250341363856910e-01j,
-              6.955051820787286e-01 - 3.250341363856910e-01j,
-              6.719122956045220e-01 + 4.070475750638047e-01j,
-              6.719122956045220e-01 - 4.070475750638047e-01j,
-              6.461722130611300e-01 + 4.821965916689270e-01j,
-              6.461722130611300e-01 - 4.821965916689270e-01j,
-              5.528045062872224e-01 + 8.162920513838372e-01j,
-              5.528045062872224e-01 - 8.162920513838372e-01j,
-              5.464847782492791e-01 + 7.869899955967304e-01j,
-              5.464847782492791e-01 - 7.869899955967304e-01j,
-              5.488033111260949e-01 + 7.520442354055579e-01j,
-              5.488033111260949e-01 - 7.520442354055579e-01j,
-              6.201874719022955e-01 + 5.500894392527353e-01j,
-              6.201874719022955e-01 - 5.500894392527353e-01j,
-              5.586478152536709e-01 + 7.112676877332921e-01j,
-              5.586478152536709e-01 - 7.112676877332921e-01j,
-              5.958145844148228e-01 + 6.107074340842115e-01j,
-              5.958145844148228e-01 - 6.107074340842115e-01j,
-              5.747812938519067e-01 + 6.643001536914696e-01j,
-              5.747812938519067e-01 - 6.643001536914696e-01j]
-        k2 = 9.932997786497189e-02
-        assert_allclose(sorted(z, key=np.angle),
-                        sorted(z2, key=np.angle), rtol=1e-13)
-        assert_allclose(sorted(p, key=np.angle),
-                        sorted(p2, key=np.angle), rtol=1e-12)
-        assert_allclose(k, k2, rtol=1e-11)
-
-        # high odd order
-        z, p, k = cheby2(25, 80, 0.5, 'high', output='zpk')
-        z2 = [9.690690376586687e-01 + 2.467897896011971e-01j,
-              9.690690376586687e-01 - 2.467897896011971e-01j,
-              9.999999999999492e-01,
-              8.835111277191199e-01 + 4.684101698261429e-01j,
-              8.835111277191199e-01 - 4.684101698261429e-01j,
-              7.613142857900539e-01 + 6.483830335935022e-01j,
-              7.613142857900539e-01 - 6.483830335935022e-01j,
-              6.232625173626231e-01 + 7.820126817709752e-01j,
-              6.232625173626231e-01 - 7.820126817709752e-01j,
-              4.864456563413621e-01 + 8.737108351316745e-01j,
-              4.864456563413621e-01 - 8.737108351316745e-01j,
-              3.618368136816749e-01 + 9.322414495530347e-01j,
-              3.618368136816749e-01 - 9.322414495530347e-01j,
-              2.549486883466794e-01 + 9.669545833752675e-01j,
-              2.549486883466794e-01 - 9.669545833752675e-01j,
-              1.676175432109457e-01 + 9.858520980390212e-01j,
-              1.676175432109457e-01 - 9.858520980390212e-01j,
-              1.975218468277521e-03 + 9.999980492540941e-01j,
-              1.975218468277521e-03 - 9.999980492540941e-01j,
-              1.786959496651858e-02 + 9.998403260399917e-01j,
-              1.786959496651858e-02 - 9.998403260399917e-01j,
-              9.967933660557139e-02 + 9.950196127985684e-01j,
-              9.967933660557139e-02 - 9.950196127985684e-01j,
-              5.013970951219547e-02 + 9.987422137518890e-01j,
-              5.013970951219547e-02 - 9.987422137518890e-01j]
-        p2 = [4.218866331906864e-01,
-              4.120110200127552e-01 + 1.361290593621978e-01j,
-              4.120110200127552e-01 - 1.361290593621978e-01j,
-              3.835890113632530e-01 + 2.664910809911026e-01j,
-              3.835890113632530e-01 - 2.664910809911026e-01j,
-              3.399195570456499e-01 + 3.863983538639875e-01j,
-              3.399195570456499e-01 - 3.863983538639875e-01j,
-              2.855977834508353e-01 + 4.929444399540688e-01j,
-              2.855977834508353e-01 - 4.929444399540688e-01j,
-              2.255765441339322e-01 + 5.851631870205766e-01j,
-              2.255765441339322e-01 - 5.851631870205766e-01j,
-              1.644087535815792e-01 + 6.637356937277153e-01j,
-              1.644087535815792e-01 - 6.637356937277153e-01j,
-              -7.293633845273095e-02 + 9.739218252516307e-01j,
-              -7.293633845273095e-02 - 9.739218252516307e-01j,
-              1.058259206358626e-01 + 7.304739464862978e-01j,
-              1.058259206358626e-01 - 7.304739464862978e-01j,
-              -5.703971947785402e-02 + 9.291057542169088e-01j,
-              -5.703971947785402e-02 - 9.291057542169088e-01j,
-              5.263875132656864e-02 + 7.877974334424453e-01j,
-              5.263875132656864e-02 - 7.877974334424453e-01j,
-              -3.007943405982616e-02 + 8.846331716180016e-01j,
-              -3.007943405982616e-02 - 8.846331716180016e-01j,
-              6.857277464483946e-03 + 8.383275456264492e-01j,
-              6.857277464483946e-03 - 8.383275456264492e-01j]
-        k2 = 6.507068761705037e-03
-        assert_allclose(sorted(z, key=np.angle),
-                        sorted(z2, key=np.angle), rtol=1e-13)
-        assert_allclose(sorted(p, key=np.angle),
-                        sorted(p2, key=np.angle), rtol=1e-12)
-        assert_allclose(k, k2, rtol=1e-11)
-
-    def test_bandpass(self):
-        z, p, k = cheby2(9, 40, [0.07, 0.2], 'pass', output='zpk')
-        z2 = [-9.999999999999999e-01,
-               3.676588029658514e-01 + 9.299607543341383e-01j,
-               3.676588029658514e-01 - 9.299607543341383e-01j,
-               7.009689684982283e-01 + 7.131917730894889e-01j,
-               7.009689684982283e-01 - 7.131917730894889e-01j,
-               7.815697973765858e-01 + 6.238178033919218e-01j,
-               7.815697973765858e-01 - 6.238178033919218e-01j,
-               8.063793628819866e-01 + 5.913986160941200e-01j,
-               8.063793628819866e-01 - 5.913986160941200e-01j,
-               1.000000000000001e+00,
-               9.944493019920448e-01 + 1.052168511576739e-01j,
-               9.944493019920448e-01 - 1.052168511576739e-01j,
-               9.854674703367308e-01 + 1.698642543566085e-01j,
-               9.854674703367308e-01 - 1.698642543566085e-01j,
-               9.762751735919308e-01 + 2.165335665157851e-01j,
-               9.762751735919308e-01 - 2.165335665157851e-01j,
-               9.792277171575134e-01 + 2.027636011479496e-01j,
-               9.792277171575134e-01 - 2.027636011479496e-01j]
-        p2 = [8.143803410489621e-01 + 5.411056063397541e-01j,
-              8.143803410489621e-01 - 5.411056063397541e-01j,
-              7.650769827887418e-01 + 5.195412242095543e-01j,
-              7.650769827887418e-01 - 5.195412242095543e-01j,
-              6.096241204063443e-01 + 3.568440484659796e-01j,
-              6.096241204063443e-01 - 3.568440484659796e-01j,
-              6.918192770246239e-01 + 4.770463577106911e-01j,
-              6.918192770246239e-01 - 4.770463577106911e-01j,
-              6.986241085779207e-01 + 1.146512226180060e-01j,
-              6.986241085779207e-01 - 1.146512226180060e-01j,
-              8.654645923909734e-01 + 1.604208797063147e-01j,
-              8.654645923909734e-01 - 1.604208797063147e-01j,
-              9.164831670444591e-01 + 1.969181049384918e-01j,
-              9.164831670444591e-01 - 1.969181049384918e-01j,
-              9.630425777594550e-01 + 2.317513360702271e-01j,
-              9.630425777594550e-01 - 2.317513360702271e-01j,
-              9.438104703725529e-01 + 2.193509900269860e-01j,
-              9.438104703725529e-01 - 2.193509900269860e-01j]
-        k2 = 9.345352824659604e-03
-        assert_allclose(sorted(z, key=np.angle),
-                        sorted(z2, key=np.angle), rtol=1e-13)
-        assert_allclose(sorted(p, key=np.angle),
-                        sorted(p2, key=np.angle), rtol=1e-13)
-        assert_allclose(k, k2, rtol=1e-11)
-
-    def test_bandstop(self):
-        z, p, k = cheby2(6, 55, [0.1, 0.9], 'stop', output='zpk')
-        z2 = [6.230544895101009e-01 + 7.821784343111114e-01j,
-              6.230544895101009e-01 - 7.821784343111114e-01j,
-              9.086608545660115e-01 + 4.175349702471991e-01j,
-              9.086608545660115e-01 - 4.175349702471991e-01j,
-              9.478129721465802e-01 + 3.188268649763867e-01j,
-              9.478129721465802e-01 - 3.188268649763867e-01j,
-              -6.230544895100982e-01 + 7.821784343111109e-01j,
-              -6.230544895100982e-01 - 7.821784343111109e-01j,
-              -9.086608545660116e-01 + 4.175349702472088e-01j,
-              -9.086608545660116e-01 - 4.175349702472088e-01j,
-              -9.478129721465784e-01 + 3.188268649763897e-01j,
-              -9.478129721465784e-01 - 3.188268649763897e-01j]
-        p2 = [-9.464094036167638e-01 + 1.720048695084344e-01j,
-              -9.464094036167638e-01 - 1.720048695084344e-01j,
-              -8.715844103386737e-01 + 1.370665039509297e-01j,
-              -8.715844103386737e-01 - 1.370665039509297e-01j,
-              -8.078751204586425e-01 + 5.729329866682983e-02j,
-              -8.078751204586425e-01 - 5.729329866682983e-02j,
-               9.464094036167665e-01 + 1.720048695084332e-01j,
-               9.464094036167665e-01 - 1.720048695084332e-01j,
-               8.078751204586447e-01 + 5.729329866683007e-02j,
-               8.078751204586447e-01 - 5.729329866683007e-02j,
-               8.715844103386721e-01 + 1.370665039509331e-01j,
-               8.715844103386721e-01 - 1.370665039509331e-01j]
-        k2 = 2.917823332763358e-03
-        assert_allclose(sorted(z, key=np.angle),
-                        sorted(z2, key=np.angle), rtol=1e-13)
-        assert_allclose(sorted(p, key=np.angle),
-                        sorted(p2, key=np.angle), rtol=1e-13)
-        assert_allclose(k, k2, rtol=1e-11)
-
-    def test_ba_output(self):
-        # with transfer function conversion, without digital conversion
-        b, a = cheby2(5, 20, [2010, 2100], 'stop', True)
-        b2 = [1.000000000000000e+00, 0,  # Matlab: 6.683253076978249e-12,
-              2.111512500000000e+07, 0,  # Matlab: 1.134325604589552e-04,
-              1.782966433781250e+14, 0,  # Matlab: 7.216787944356781e+02,
-              7.525901316990656e+20, 0,  # Matlab: 2.039829265789886e+09,
-              1.587960565565748e+27, 0,  # Matlab: 2.161236218626134e+15,
-              1.339913493808585e+33]
-        a2 = [1.000000000000000e+00, 1.849550755473371e+02,
-              2.113222918998538e+07, 3.125114149732283e+09,
-              1.785133457155609e+14, 1.979158697776348e+16,
-              7.535048322653831e+20, 5.567966191263037e+22,
-              1.589246884221346e+27, 5.871210648525566e+28,
-              1.339913493808590e+33]
-        assert_allclose(b, b2, rtol=1e-14)
-        assert_allclose(a, a2, rtol=1e-14)
-
-    def test_fs_param(self):
-        for fs in (900, 900.1, 1234.567):
-            for N in (0, 1, 2, 3, 10):
-                for fc in (100, 100.1, 432.12345):
-                    for btype in ('lp', 'hp'):
-                        ba1 = cheby2(N, 20, fc, btype, fs=fs)
-                        ba2 = cheby2(N, 20, fc/(fs/2), btype)
-                        assert_allclose(ba1, ba2)
-                for fc in ((100, 200), (100.1, 200.2), (321.123, 432.123)):
-                    for btype in ('bp', 'bs'):
-                        ba1 = cheby2(N, 20, fc, btype, fs=fs)
-                        for seq in (list, tuple, array):
-                            fcnorm = seq([f/(fs/2) for f in fc])
-                            ba2 = cheby2(N, 20, fcnorm, btype)
-                            assert_allclose(ba1, ba2)
-
-class TestEllip:
-
-    def test_degenerate(self):
-        # 0-order filter is just a passthrough
-        # Even-order filters have DC gain of -rp dB
-        # Stopband ripple factor doesn't matter
-        b, a = ellip(0, 10*np.log10(2), 123.456, 1, analog=True)
-        assert_array_almost_equal(b, [1/np.sqrt(2)])
-        assert_array_equal(a, [1])
-
-        # 1-order filter is same for all types
-        b, a = ellip(1, 10*np.log10(2), 1, 1, analog=True)
-        assert_array_almost_equal(b, [1])
-        assert_array_almost_equal(a, [1, 1])
-
-        z, p, k = ellip(1, 1, 55, 0.3, output='zpk')
-        assert_allclose(z, [-9.999999999999998e-01], rtol=1e-14)
-        assert_allclose(p, [-6.660721153525525e-04], rtol=1e-10)
-        assert_allclose(k, 5.003330360576763e-01, rtol=1e-14)
-
-    def test_basic(self):
-        for N in range(25):
-            wn = 0.01
-            z, p, k = ellip(N, 1, 40, wn, 'low', analog=True, output='zpk')
-            assert_(len(p) == N)
-            assert_(all(np.real(p) <= 0))  # No poles in right half of S-plane
-
-        for N in range(25):
-            wn = 0.01
-            z, p, k = ellip(N, 1, 40, wn, 'high', analog=False, output='zpk')
-            assert_(all(np.abs(p) <= 1))  # No poles outside unit circle
-
-        b3, a3 = ellip(5, 3, 26, 1, analog=True)
-        assert_array_almost_equal(b3, [0.1420, 0, 0.3764, 0,
-                                       0.2409], decimal=4)
-        assert_array_almost_equal(a3, [1, 0.5686, 1.8061, 0.8017, 0.8012,
-                                       0.2409], decimal=4)
-
-        b, a = ellip(3, 1, 60, [0.4, 0.7], 'stop')
-        assert_array_almost_equal(b, [0.3310, 0.3469, 1.1042, 0.7044, 1.1042,
-                                      0.3469, 0.3310], decimal=4)
-        assert_array_almost_equal(a, [1.0000, 0.6973, 1.1441, 0.5878, 0.7323,
-                                      0.1131, -0.0060], decimal=4)
-
-    def test_highpass(self):
-        # high even order
-        z, p, k = ellip(24, 1, 80, 0.3, 'high', output='zpk')
-        z2 = [9.761875332501075e-01 + 2.169283290099910e-01j,
-              9.761875332501075e-01 - 2.169283290099910e-01j,
-              8.413503353963494e-01 + 5.404901600661900e-01j,
-              8.413503353963494e-01 - 5.404901600661900e-01j,
-              7.160082576305009e-01 + 6.980918098681732e-01j,
-              7.160082576305009e-01 - 6.980918098681732e-01j,
-              6.456533638965329e-01 + 7.636306264739803e-01j,
-              6.456533638965329e-01 - 7.636306264739803e-01j,
-              6.127321820971366e-01 + 7.902906256703928e-01j,
-              6.127321820971366e-01 - 7.902906256703928e-01j,
-              5.983607817490196e-01 + 8.012267936512676e-01j,
-              5.983607817490196e-01 - 8.012267936512676e-01j,
-              5.922577552594799e-01 + 8.057485658286990e-01j,
-              5.922577552594799e-01 - 8.057485658286990e-01j,
-              5.896952092563588e-01 + 8.076258788449631e-01j,
-              5.896952092563588e-01 - 8.076258788449631e-01j,
-              5.886248765538837e-01 + 8.084063054565607e-01j,
-              5.886248765538837e-01 - 8.084063054565607e-01j,
-              5.881802711123132e-01 + 8.087298490066037e-01j,
-              5.881802711123132e-01 - 8.087298490066037e-01j,
-              5.879995719101164e-01 + 8.088612386766461e-01j,
-              5.879995719101164e-01 - 8.088612386766461e-01j,
-              5.879354086709576e-01 + 8.089078780868164e-01j,
-              5.879354086709576e-01 - 8.089078780868164e-01j]
-        p2 = [-3.184805259081650e-01 + 4.206951906775851e-01j,
-              -3.184805259081650e-01 - 4.206951906775851e-01j,
-               1.417279173459985e-01 + 7.903955262836452e-01j,
-               1.417279173459985e-01 - 7.903955262836452e-01j,
-               4.042881216964651e-01 + 8.309042239116594e-01j,
-               4.042881216964651e-01 - 8.309042239116594e-01j,
-               5.128964442789670e-01 + 8.229563236799665e-01j,
-               5.128964442789670e-01 - 8.229563236799665e-01j,
-               5.569614712822724e-01 + 8.155957702908510e-01j,
-               5.569614712822724e-01 - 8.155957702908510e-01j,
-               5.750478870161392e-01 + 8.118633973883931e-01j,
-               5.750478870161392e-01 - 8.118633973883931e-01j,
-               5.825314018170804e-01 + 8.101960910679270e-01j,
-               5.825314018170804e-01 - 8.101960910679270e-01j,
-               5.856397379751872e-01 + 8.094825218722543e-01j,
-               5.856397379751872e-01 - 8.094825218722543e-01j,
-               5.869326035251949e-01 + 8.091827531557583e-01j,
-               5.869326035251949e-01 - 8.091827531557583e-01j,
-               5.874697218855733e-01 + 8.090593298213502e-01j,
-               5.874697218855733e-01 - 8.090593298213502e-01j,
-               5.876904783532237e-01 + 8.090127161018823e-01j,
-               5.876904783532237e-01 - 8.090127161018823e-01j,
-               5.877753105317594e-01 + 8.090050577978136e-01j,
-               5.877753105317594e-01 - 8.090050577978136e-01j]
-        k2 = 4.918081266957108e-02
-        assert_allclose(sorted(z, key=np.angle),
-                        sorted(z2, key=np.angle), rtol=1e-4)
-        assert_allclose(sorted(p, key=np.angle),
-                        sorted(p2, key=np.angle), rtol=1e-4)
-        assert_allclose(k, k2, rtol=1e-3)
-
-        # high odd order
-        z, p, k = ellip(23, 1, 70, 0.5, 'high', output='zpk')
-        z2 = [9.999999999998661e-01,
-              6.603717261750994e-01 + 7.509388678638675e-01j,
-              6.603717261750994e-01 - 7.509388678638675e-01j,
-              2.788635267510325e-01 + 9.603307416968041e-01j,
-              2.788635267510325e-01 - 9.603307416968041e-01j,
-              1.070215532544218e-01 + 9.942567008268131e-01j,
-              1.070215532544218e-01 - 9.942567008268131e-01j,
-              4.049427369978163e-02 + 9.991797705105507e-01j,
-              4.049427369978163e-02 - 9.991797705105507e-01j,
-              1.531059368627931e-02 + 9.998827859909265e-01j,
-              1.531059368627931e-02 - 9.998827859909265e-01j,
-              5.808061438534933e-03 + 9.999831330689181e-01j,
-              5.808061438534933e-03 - 9.999831330689181e-01j,
-              2.224277847754599e-03 + 9.999975262909676e-01j,
-              2.224277847754599e-03 - 9.999975262909676e-01j,
-              8.731857107534554e-04 + 9.999996187732845e-01j,
-              8.731857107534554e-04 - 9.999996187732845e-01j,
-              3.649057346914968e-04 + 9.999999334218996e-01j,
-              3.649057346914968e-04 - 9.999999334218996e-01j,
-              1.765538109802615e-04 + 9.999999844143768e-01j,
-              1.765538109802615e-04 - 9.999999844143768e-01j,
-              1.143655290967426e-04 + 9.999999934602630e-01j,
-              1.143655290967426e-04 - 9.999999934602630e-01j]
-        p2 = [-6.322017026545028e-01,
-              -4.648423756662754e-01 + 5.852407464440732e-01j,
-              -4.648423756662754e-01 - 5.852407464440732e-01j,
-              -2.249233374627773e-01 + 8.577853017985717e-01j,
-              -2.249233374627773e-01 - 8.577853017985717e-01j,
-              -9.234137570557621e-02 + 9.506548198678851e-01j,
-              -9.234137570557621e-02 - 9.506548198678851e-01j,
-              -3.585663561241373e-02 + 9.821494736043981e-01j,
-              -3.585663561241373e-02 - 9.821494736043981e-01j,
-              -1.363917242312723e-02 + 9.933844128330656e-01j,
-              -1.363917242312723e-02 - 9.933844128330656e-01j,
-              -5.131505238923029e-03 + 9.975221173308673e-01j,
-              -5.131505238923029e-03 - 9.975221173308673e-01j,
-              -1.904937999259502e-03 + 9.990680819857982e-01j,
-              -1.904937999259502e-03 - 9.990680819857982e-01j,
-              -6.859439885466834e-04 + 9.996492201426826e-01j,
-              -6.859439885466834e-04 - 9.996492201426826e-01j,
-              -2.269936267937089e-04 + 9.998686250679161e-01j,
-              -2.269936267937089e-04 - 9.998686250679161e-01j,
-              -5.687071588789117e-05 + 9.999527573294513e-01j,
-              -5.687071588789117e-05 - 9.999527573294513e-01j,
-              -6.948417068525226e-07 + 9.999882737700173e-01j,
-              -6.948417068525226e-07 - 9.999882737700173e-01j]
-        k2 = 1.220910020289434e-02
-        assert_allclose(sorted(z, key=np.angle),
-                        sorted(z2, key=np.angle), rtol=1e-4)
-        assert_allclose(sorted(p, key=np.angle),
-                        sorted(p2, key=np.angle), rtol=1e-4)
-        assert_allclose(k, k2, rtol=1e-3)
-
-    def test_bandpass(self):
-        z, p, k = ellip(7, 1, 40, [0.07, 0.2], 'pass', output='zpk')
-        z2 = [-9.999999999999991e-01,
-               6.856610961780020e-01 + 7.279209168501619e-01j,
-               6.856610961780020e-01 - 7.279209168501619e-01j,
-               7.850346167691289e-01 + 6.194518952058737e-01j,
-               7.850346167691289e-01 - 6.194518952058737e-01j,
-               7.999038743173071e-01 + 6.001281461922627e-01j,
-               7.999038743173071e-01 - 6.001281461922627e-01j,
-               9.999999999999999e-01,
-               9.862938983554124e-01 + 1.649980183725925e-01j,
-               9.862938983554124e-01 - 1.649980183725925e-01j,
-               9.788558330548762e-01 + 2.045513580850601e-01j,
-               9.788558330548762e-01 - 2.045513580850601e-01j,
-               9.771155231720003e-01 + 2.127093189691258e-01j,
-               9.771155231720003e-01 - 2.127093189691258e-01j]
-        p2 = [8.063992755498643e-01 + 5.858071374778874e-01j,
-              8.063992755498643e-01 - 5.858071374778874e-01j,
-              8.050395347071724e-01 + 5.639097428109795e-01j,
-              8.050395347071724e-01 - 5.639097428109795e-01j,
-              8.113124936559144e-01 + 4.855241143973142e-01j,
-              8.113124936559144e-01 - 4.855241143973142e-01j,
-              8.665595314082394e-01 + 3.334049560919331e-01j,
-              8.665595314082394e-01 - 3.334049560919331e-01j,
-              9.412369011968871e-01 + 2.457616651325908e-01j,
-              9.412369011968871e-01 - 2.457616651325908e-01j,
-              9.679465190411238e-01 + 2.228772501848216e-01j,
-              9.679465190411238e-01 - 2.228772501848216e-01j,
-              9.747235066273385e-01 + 2.178937926146544e-01j,
-              9.747235066273385e-01 - 2.178937926146544e-01j]
-        k2 = 8.354782670263239e-03
-        assert_allclose(sorted(z, key=np.angle),
-                        sorted(z2, key=np.angle), rtol=1e-4)
-        assert_allclose(sorted(p, key=np.angle),
-                        sorted(p2, key=np.angle), rtol=1e-4)
-        assert_allclose(k, k2, rtol=1e-3)
-
-        z, p, k = ellip(5, 1, 75, [90.5, 110.5], 'pass', True, 'zpk')
-        z2 = [-5.583607317695175e-14 + 1.433755965989225e+02j,
-              -5.583607317695175e-14 - 1.433755965989225e+02j,
-               5.740106416459296e-14 + 1.261678754570291e+02j,
-               5.740106416459296e-14 - 1.261678754570291e+02j,
-              -2.199676239638652e-14 + 6.974861996895196e+01j,
-              -2.199676239638652e-14 - 6.974861996895196e+01j,
-              -3.372595657044283e-14 + 7.926145989044531e+01j,
-              -3.372595657044283e-14 - 7.926145989044531e+01j,
-              0]
-        p2 = [-8.814960004852743e-01 + 1.104124501436066e+02j,
-              -8.814960004852743e-01 - 1.104124501436066e+02j,
-              -2.477372459140184e+00 + 1.065638954516534e+02j,
-              -2.477372459140184e+00 - 1.065638954516534e+02j,
-              -3.072156842945799e+00 + 9.995404870405324e+01j,
-              -3.072156842945799e+00 - 9.995404870405324e+01j,
-              -2.180456023925693e+00 + 9.379206865455268e+01j,
-              -2.180456023925693e+00 - 9.379206865455268e+01j,
-              -7.230484977485752e-01 + 9.056598800801140e+01j,
-              -7.230484977485752e-01 - 9.056598800801140e+01j]
-        k2 = 3.774571622827070e-02
-        assert_allclose(sorted(z, key=np.imag),
-                        sorted(z2, key=np.imag), rtol=1e-4)
-        assert_allclose(sorted(p, key=np.imag),
-                        sorted(p2, key=np.imag), rtol=1e-6)
-        assert_allclose(k, k2, rtol=1e-3)
-
-    def test_bandstop(self):
-        z, p, k = ellip(8, 1, 65, [0.2, 0.4], 'stop', output='zpk')
-        z2 = [3.528578094286510e-01 + 9.356769561794296e-01j,
-              3.528578094286510e-01 - 9.356769561794296e-01j,
-              3.769716042264783e-01 + 9.262248159096587e-01j,
-              3.769716042264783e-01 - 9.262248159096587e-01j,
-              4.406101783111199e-01 + 8.976985411420985e-01j,
-              4.406101783111199e-01 - 8.976985411420985e-01j,
-              5.539386470258847e-01 + 8.325574907062760e-01j,
-              5.539386470258847e-01 - 8.325574907062760e-01j,
-              6.748464963023645e-01 + 7.379581332490555e-01j,
-              6.748464963023645e-01 - 7.379581332490555e-01j,
-              7.489887970285254e-01 + 6.625826604475596e-01j,
-              7.489887970285254e-01 - 6.625826604475596e-01j,
-              7.913118471618432e-01 + 6.114127579150699e-01j,
-              7.913118471618432e-01 - 6.114127579150699e-01j,
-              7.806804740916381e-01 + 6.249303940216475e-01j,
-              7.806804740916381e-01 - 6.249303940216475e-01j]
-
-        p2 = [-1.025299146693730e-01 + 5.662682444754943e-01j,
-              -1.025299146693730e-01 - 5.662682444754943e-01j,
-               1.698463595163031e-01 + 8.926678667070186e-01j,
-               1.698463595163031e-01 - 8.926678667070186e-01j,
-               2.750532687820631e-01 + 9.351020170094005e-01j,
-               2.750532687820631e-01 - 9.351020170094005e-01j,
-               3.070095178909486e-01 + 9.457373499553291e-01j,
-               3.070095178909486e-01 - 9.457373499553291e-01j,
-               7.695332312152288e-01 + 2.792567212705257e-01j,
-               7.695332312152288e-01 - 2.792567212705257e-01j,
-               8.083818999225620e-01 + 4.990723496863960e-01j,
-               8.083818999225620e-01 - 4.990723496863960e-01j,
-               8.066158014414928e-01 + 5.649811440393374e-01j,
-               8.066158014414928e-01 - 5.649811440393374e-01j,
-               8.062787978834571e-01 + 5.855780880424964e-01j,
-               8.062787978834571e-01 - 5.855780880424964e-01j]
-        k2 = 2.068622545291259e-01
-        assert_allclose(sorted(z, key=np.angle),
-                        sorted(z2, key=np.angle), rtol=1e-6)
-        assert_allclose(sorted(p, key=np.angle),
-                        sorted(p2, key=np.angle), rtol=1e-5)
-        assert_allclose(k, k2, rtol=1e-5)
-
-    def test_ba_output(self):
-        # with transfer function conversion,  without digital conversion
-        b, a = ellip(5, 1, 40, [201, 240], 'stop', True)
-        b2 = [
-             1.000000000000000e+00, 0,  # Matlab: 1.743506051190569e-13,
-             2.426561778314366e+05, 0,  # Matlab: 3.459426536825722e-08,
-             2.348218683400168e+10, 0,  # Matlab: 2.559179747299313e-03,
-             1.132780692872241e+15, 0,  # Matlab: 8.363229375535731e+01,
-             2.724038554089566e+19, 0,  # Matlab: 1.018700994113120e+06,
-             2.612380874940186e+23
-             ]
-        a2 = [
-             1.000000000000000e+00, 1.337266601804649e+02,
-             2.486725353510667e+05, 2.628059713728125e+07,
-             2.436169536928770e+10, 1.913554568577315e+12,
-             1.175208184614438e+15, 6.115751452473410e+16,
-             2.791577695211466e+19, 7.241811142725384e+20,
-             2.612380874940182e+23
-             ]
-        assert_allclose(b, b2, rtol=1e-6)
-        assert_allclose(a, a2, rtol=1e-4)
-
-    def test_fs_param(self):
-        for fs in (900, 900.1, 1234.567):
-            for N in (0, 1, 2, 3, 10):
-                for fc in (100, 100.1, 432.12345):
-                    for btype in ('lp', 'hp'):
-                        ba1 = ellip(N, 1, 20, fc, btype, fs=fs)
-                        ba2 = ellip(N, 1, 20, fc/(fs/2), btype)
-                        assert_allclose(ba1, ba2)
-                for fc in ((100, 200), (100.1, 200.2), (321.123, 432.123)):
-                    for btype in ('bp', 'bs'):
-                        ba1 = ellip(N, 1, 20, fc, btype, fs=fs)
-                        for seq in (list, tuple, array):
-                            fcnorm = seq([f/(fs/2) for f in fc])
-                            ba2 = ellip(N, 1, 20, fcnorm, btype)
-                            assert_allclose(ba1, ba2)
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            iirnotch(0.06, 30, fs=np.array([10, 20]))
-
-        with pytest.raises(ValueError, match="Sampling.*be none"):
-            iirnotch(0.06, 30, fs=None)
-
-
-def test_sos_consistency():
-    # Consistency checks of output='sos' for the specialized IIR filter
-    # design functions.
-    design_funcs = [(bessel, (0.1,)),
-                    (butter, (0.1,)),
-                    (cheby1, (45.0, 0.1)),
-                    (cheby2, (0.087, 0.1)),
-                    (ellip, (0.087, 45, 0.1))]
-    for func, args in design_funcs:
-        name = func.__name__
-
-        b, a = func(2, *args, output='ba')
-        sos = func(2, *args, output='sos')
-        assert_allclose(sos, [np.hstack((b, a))], err_msg="%s(2,...)" % name)
-
-        zpk = func(3, *args, output='zpk')
-        sos = func(3, *args, output='sos')
-        assert_allclose(sos, zpk2sos(*zpk), err_msg="%s(3,...)" % name)
-
-        zpk = func(4, *args, output='zpk')
-        sos = func(4, *args, output='sos')
-        assert_allclose(sos, zpk2sos(*zpk), err_msg="%s(4,...)" % name)
-
-
-class TestIIRNotch:
-
-    def test_ba_output(self):
-        # Compare coefficients with Matlab ones
-        # for the equivalent input:
-        b, a = iirnotch(0.06, 30)
-        b2 = [
-             9.9686824e-01, -1.9584219e+00,
-             9.9686824e-01
-             ]
-        a2 = [
-             1.0000000e+00, -1.9584219e+00,
-             9.9373647e-01
-             ]
-
-        assert_allclose(b, b2, rtol=1e-8)
-        assert_allclose(a, a2, rtol=1e-8)
-
-    def test_frequency_response(self):
-        # Get filter coefficients
-        b, a = iirnotch(0.3, 30)
-
-        # Get frequency response
-        w, h = freqz(b, a, 1000)
-
-        # Pick 5 point
-        p = [200,  # w0 = 0.200
-             295,  # w0 = 0.295
-             300,  # w0 = 0.300
-             305,  # w0 = 0.305
-             400]  # w0 = 0.400
-
-        # Get frequency response correspondent to each of those points
-        hp = h[p]
-
-        # Check if the frequency response fulfill the specifications:
-        # hp[0] and hp[4]  correspond to frequencies distant from
-        # w0 = 0.3 and should be close to 1
-        assert_allclose(abs(hp[0]), 1, rtol=1e-2)
-        assert_allclose(abs(hp[4]), 1, rtol=1e-2)
-
-        # hp[1] and hp[3] correspond to frequencies approximately
-        # on the edges of the passband and should be close to -3dB
-        assert_allclose(abs(hp[1]), 1/np.sqrt(2), rtol=1e-2)
-        assert_allclose(abs(hp[3]), 1/np.sqrt(2), rtol=1e-2)
-
-        # hp[2] correspond to the frequency that should be removed
-        # the frequency response should be very close to 0
-        assert_allclose(abs(hp[2]), 0, atol=1e-10)
-
-    def test_errors(self):
-        # Exception should be raised if w0 > 1 or w0 <0
-        assert_raises(ValueError, iirnotch, w0=2, Q=30)
-        assert_raises(ValueError, iirnotch, w0=-1, Q=30)
-
-        # Exception should be raised if any of the parameters
-        # are not float (or cannot be converted to one)
-        assert_raises(ValueError, iirnotch, w0="blabla", Q=30)
-        assert_raises(TypeError, iirnotch, w0=-1, Q=[1, 2, 3])
-
-    def test_fs_param(self):
-        # Get filter coefficients
-        b, a = iirnotch(1500, 30, fs=10000)
-
-        # Get frequency response
-        w, h = freqz(b, a, 1000, fs=10000)
-
-        # Pick 5 point
-        p = [200,  # w0 = 1000
-             295,  # w0 = 1475
-             300,  # w0 = 1500
-             305,  # w0 = 1525
-             400]  # w0 = 2000
-
-        # Get frequency response correspondent to each of those points
-        hp = h[p]
-
-        # Check if the frequency response fulfill the specifications:
-        # hp[0] and hp[4]  correspond to frequencies distant from
-        # w0 = 1500 and should be close to 1
-        assert_allclose(abs(hp[0]), 1, rtol=1e-2)
-        assert_allclose(abs(hp[4]), 1, rtol=1e-2)
-
-        # hp[1] and hp[3] correspond to frequencies approximately
-        # on the edges of the passband and should be close to -3dB
-        assert_allclose(abs(hp[1]), 1/np.sqrt(2), rtol=1e-2)
-        assert_allclose(abs(hp[3]), 1/np.sqrt(2), rtol=1e-2)
-
-        # hp[2] correspond to the frequency that should be removed
-        # the frequency response should be very close to 0
-        assert_allclose(abs(hp[2]), 0, atol=1e-10)
-
-
-class TestIIRPeak:
-
-    def test_ba_output(self):
-        # Compare coefficients with Matlab ones
-        # for the equivalent input:
-        b, a = iirpeak(0.06, 30)
-        b2 = [
-             3.131764229e-03, 0,
-             -3.131764229e-03
-             ]
-        a2 = [
-             1.0000000e+00, -1.958421917e+00,
-             9.9373647e-01
-             ]
-        assert_allclose(b, b2, rtol=1e-8)
-        assert_allclose(a, a2, rtol=1e-8)
-
-    def test_frequency_response(self):
-        # Get filter coefficients
-        b, a = iirpeak(0.3, 30)
-
-        # Get frequency response
-        w, h = freqz(b, a, 1000)
-
-        # Pick 5 point
-        p = [30,  # w0 = 0.030
-             295,  # w0 = 0.295
-             300,  # w0 = 0.300
-             305,  # w0 = 0.305
-             800]  # w0 = 0.800
-
-        # Get frequency response correspondent to each of those points
-        hp = h[p]
-
-        # Check if the frequency response fulfill the specifications:
-        # hp[0] and hp[4]  correspond to frequencies distant from
-        # w0 = 0.3 and should be close to 0
-        assert_allclose(abs(hp[0]), 0, atol=1e-2)
-        assert_allclose(abs(hp[4]), 0, atol=1e-2)
-
-        # hp[1] and hp[3] correspond to frequencies approximately
-        # on the edges of the passband and should be close to 10**(-3/20)
-        assert_allclose(abs(hp[1]), 1/np.sqrt(2), rtol=1e-2)
-        assert_allclose(abs(hp[3]), 1/np.sqrt(2), rtol=1e-2)
-
-        # hp[2] correspond to the frequency that should be retained and
-        # the frequency response should be very close to 1
-        assert_allclose(abs(hp[2]), 1, rtol=1e-10)
-
-    def test_errors(self):
-        # Exception should be raised if w0 > 1 or w0 <0
-        assert_raises(ValueError, iirpeak, w0=2, Q=30)
-        assert_raises(ValueError, iirpeak, w0=-1, Q=30)
-
-        # Exception should be raised if any of the parameters
-        # are not float (or cannot be converted to one)
-        assert_raises(ValueError, iirpeak, w0="blabla", Q=30)
-        assert_raises(TypeError, iirpeak, w0=-1, Q=[1, 2, 3])
-
-    def test_fs_param(self):
-        # Get filter coefficients
-        b, a = iirpeak(1200, 30, fs=8000)
-
-        # Get frequency response
-        w, h = freqz(b, a, 1000, fs=8000)
-
-        # Pick 5 point
-        p = [30,  # w0 = 120
-             295,  # w0 = 1180
-             300,  # w0 = 1200
-             305,  # w0 = 1220
-             800]  # w0 = 3200
-
-        # Get frequency response correspondent to each of those points
-        hp = h[p]
-
-        # Check if the frequency response fulfill the specifications:
-        # hp[0] and hp[4]  correspond to frequencies distant from
-        # w0 = 1200 and should be close to 0
-        assert_allclose(abs(hp[0]), 0, atol=1e-2)
-        assert_allclose(abs(hp[4]), 0, atol=1e-2)
-
-        # hp[1] and hp[3] correspond to frequencies approximately
-        # on the edges of the passband and should be close to 10**(-3/20)
-        assert_allclose(abs(hp[1]), 1/np.sqrt(2), rtol=1e-2)
-        assert_allclose(abs(hp[3]), 1/np.sqrt(2), rtol=1e-2)
-
-        # hp[2] correspond to the frequency that should be retained and
-        # the frequency response should be very close to 1
-        assert_allclose(abs(hp[2]), 1, rtol=1e-10)
-
-
-class TestIIRComb:
-    # Test erroneous input cases
-    def test_invalid_input(self):
-        # w0 is <= 0 or >= fs / 2
-        fs = 1000
-        for args in [(-fs, 30), (0, 35), (fs / 2, 40), (fs, 35)]:
-            with pytest.raises(ValueError, match='w0 must be between '):
-                iircomb(*args, fs=fs)
-
-        # fs is not divisible by w0
-        for args in [(120, 30), (157, 35)]:
-            with pytest.raises(ValueError, match='fs must be divisible '):
-                iircomb(*args, fs=fs)
-
-        # https://github.com/scipy/scipy/issues/14043#issuecomment-1107349140
-        # Previously, fs=44100, w0=49.999 was rejected, but fs=2,
-        # w0=49.999/int(44100/2) was accepted. Now it is rejected, too.
-        with pytest.raises(ValueError, match='fs must be divisible '):
-            iircomb(w0=49.999/int(44100/2), Q=30)
-
-        with pytest.raises(ValueError, match='fs must be divisible '):
-            iircomb(w0=49.999, Q=30, fs=44100)
-
-        # Filter type is not notch or peak
-        for args in [(0.2, 30, 'natch'), (0.5, 35, 'comb')]:
-            with pytest.raises(ValueError, match='ftype must be '):
-                iircomb(*args)
-
-    # Verify that the filter's frequency response contains a
-    # notch at the cutoff frequency
-    @pytest.mark.parametrize('ftype', ('notch', 'peak'))
-    def test_frequency_response(self, ftype):
-        # Create a notching or peaking comb filter at 1000 Hz
-        b, a = iircomb(1000, 30, ftype=ftype, fs=10000)
-
-        # Compute the frequency response
-        freqs, response = freqz(b, a, 1000, fs=10000)
-
-        # Find the notch using argrelextrema
-        comb_points = argrelextrema(abs(response), np.less)[0]
-
-        # Verify that the first notch sits at 1000 Hz
-        comb1 = comb_points[0]
-        assert_allclose(freqs[comb1], 1000)
-
-    # Verify pass_zero parameter
-    @pytest.mark.parametrize('ftype,pass_zero,peak,notch',
-                             [('peak', True, 123.45, 61.725),
-                              ('peak', False, 61.725, 123.45),
-                              ('peak', None, 61.725, 123.45),
-                              ('notch', None, 61.725, 123.45),
-                              ('notch', True, 123.45, 61.725),
-                              ('notch', False, 61.725, 123.45)])
-    def test_pass_zero(self, ftype, pass_zero, peak, notch):
-        # Create a notching or peaking comb filter
-        b, a = iircomb(123.45, 30, ftype=ftype, fs=1234.5, pass_zero=pass_zero)
-
-        # Compute the frequency response
-        freqs, response = freqz(b, a, [peak, notch], fs=1234.5)
-
-        # Verify that expected notches are notches and peaks are peaks
-        assert abs(response[0]) > 0.99
-        assert abs(response[1]) < 1e-10
-
-    # All built-in IIR filters are real, so should have perfectly
-    # symmetrical poles and zeros. Then ba representation (using
-    # numpy.poly) will be purely real instead of having negligible
-    # imaginary parts.
-    def test_iir_symmetry(self):
-        b, a = iircomb(400, 30, fs=24000)
-        z, p, k = tf2zpk(b, a)
-        assert_array_equal(sorted(z), sorted(z.conj()))
-        assert_array_equal(sorted(p), sorted(p.conj()))
-        assert_equal(k, np.real(k))
-
-        assert issubclass(b.dtype.type, np.floating)
-        assert issubclass(a.dtype.type, np.floating)
-
-    # Verify filter coefficients with MATLAB's iircomb function
-    def test_ba_output(self):
-        b_notch, a_notch = iircomb(60, 35, ftype='notch', fs=600)
-        b_notch2 = [0.957020174408697, 0.0, 0.0, 0.0, 0.0, 0.0,
-                    0.0, 0.0, 0.0, 0.0, -0.957020174408697]
-        a_notch2 = [1.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-                    0.0, 0.0, 0.0, 0.0, -0.914040348817395]
-        assert_allclose(b_notch, b_notch2)
-        assert_allclose(a_notch, a_notch2)
-
-        b_peak, a_peak = iircomb(60, 35, ftype='peak', fs=600)
-        b_peak2 = [0.0429798255913026, 0.0, 0.0, 0.0, 0.0, 0.0,
-                   0.0, 0.0, 0.0, 0.0, -0.0429798255913026]
-        a_peak2 = [1.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-                   0.0, 0.0, 0.0, 0.0, 0.914040348817395]
-        assert_allclose(b_peak, b_peak2)
-        assert_allclose(a_peak, a_peak2)
-
-    # Verify that https://github.com/scipy/scipy/issues/14043 is fixed
-    def test_nearest_divisor(self):
-        # Create a notching comb filter
-        b, a = iircomb(50/int(44100/2), 50.0, ftype='notch')
-
-        # Compute the frequency response at an upper harmonic of 50
-        freqs, response = freqz(b, a, [22000], fs=44100)
-
-        # Before bug fix, this would produce N = 881, so that 22 kHz was ~0 dB.
-        # Now N = 882 correctly and 22 kHz should be a notch <-220 dB
-        assert abs(response[0]) < 1e-10
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            iircomb(1000, 30, fs=np.array([10, 20]))
-
-        with pytest.raises(ValueError, match="Sampling.*be none"):
-            iircomb(1000, 30, fs=None)
-
-
-class TestIIRDesign:
-
-    def test_exceptions(self):
-        with pytest.raises(ValueError, match="the same shape"):
-            iirdesign(0.2, [0.1, 0.3], 1, 40)
-        with pytest.raises(ValueError, match="the same shape"):
-            iirdesign(np.array([[0.3, 0.6], [0.3, 0.6]]),
-                      np.array([[0.4, 0.5], [0.4, 0.5]]), 1, 40)
-
-        # discrete filter with non-positive frequency
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign(0, 0.5, 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign(-0.1, 0.5, 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign(0.1, 0, 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign(0.1, -0.5, 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([0, 0.3], [0.1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([-0.1, 0.3], [0.1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([0.1, 0], [0.1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([0.1, -0.3], [0.1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([0.1, 0.3], [0, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([0.1, 0.3], [-0.1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([0.1, 0.3], [0.1, 0], 1, 40)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([0.1, 0.3], [0.1, -0.5], 1, 40)
-
-        # analog filter with negative frequency
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign(-0.1, 0.5, 1, 40, analog=True)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign(0.1, -0.5, 1, 40, analog=True)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([-0.1, 0.3], [0.1, 0.5], 1, 40, analog=True)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([0.1, -0.3], [0.1, 0.5], 1, 40, analog=True)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([0.1, 0.3], [-0.1, 0.5], 1, 40, analog=True)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirdesign([0.1, 0.3], [0.1, -0.5], 1, 40, analog=True)
-
-        # discrete filter with fs=None, freq > 1
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign(1, 0.5, 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign(1.1, 0.5, 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign(0.1, 1, 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign(0.1, 1.5, 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign([1, 0.3], [0.1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign([1.1, 0.3], [0.1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign([0.1, 1], [0.1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign([0.1, 1.1], [0.1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign([0.1, 0.3], [1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign([0.1, 0.3], [1.1, 0.5], 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign([0.1, 0.3], [0.1, 1], 1, 40)
-        with pytest.raises(ValueError, match="must be less than 1"):
-            iirdesign([0.1, 0.3], [0.1, 1.5], 1, 40)
-
-        # discrete filter with fs>2, wp, ws < fs/2 must pass
-        iirdesign(100, 500, 1, 40, fs=2000)
-        iirdesign(500, 100, 1, 40, fs=2000)
-        iirdesign([200, 400], [100, 500], 1, 40, fs=2000)
-        iirdesign([100, 500], [200, 400], 1, 40, fs=2000)
-
-        # discrete filter with fs>2, freq > fs/2: this must raise
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign(1000, 400, 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign(1100, 500, 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign(100, 1000, 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign(100, 1100, 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign([1000, 400], [100, 500], 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign([1100, 400], [100, 500], 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign([200, 1000], [100, 500], 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign([200, 1100], [100, 500], 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign([200, 400], [1000, 500], 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign([200, 400], [1100, 500], 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign([200, 400], [100, 1000], 1, 40, fs=2000)
-        with pytest.raises(ValueError, match="must be less than fs/2"):
-            iirdesign([200, 400], [100, 1100], 1, 40, fs=2000)
-
-        with pytest.raises(ValueError, match="strictly inside stopband"):
-            iirdesign([0.1, 0.4], [0.5, 0.6], 1, 40)
-        with pytest.raises(ValueError, match="strictly inside stopband"):
-            iirdesign([0.5, 0.6], [0.1, 0.4], 1, 40)
-        with pytest.raises(ValueError, match="strictly inside stopband"):
-            iirdesign([0.3, 0.6], [0.4, 0.7], 1, 40)
-        with pytest.raises(ValueError, match="strictly inside stopband"):
-            iirdesign([0.4, 0.7], [0.3, 0.6], 1, 40)
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            iirfilter(1, 1, btype="low", fs=np.array([10, 20]))
-
-
-class TestIIRFilter:
-
-    def test_symmetry(self):
-        # All built-in IIR filters are real, so should have perfectly
-        # symmetrical poles and zeros. Then ba representation (using
-        # numpy.poly) will be purely real instead of having negligible
-        # imaginary parts.
-        for N in np.arange(1, 26):
-            for ftype in ('butter', 'bessel', 'cheby1', 'cheby2', 'ellip'):
-                z, p, k = iirfilter(N, 1.1, 1, 20, 'low', analog=True,
-                                    ftype=ftype, output='zpk')
-                assert_array_equal(sorted(z), sorted(z.conj()))
-                assert_array_equal(sorted(p), sorted(p.conj()))
-                assert_equal(k, np.real(k))
-
-                b, a = iirfilter(N, 1.1, 1, 20, 'low', analog=True,
-                                 ftype=ftype, output='ba')
-                assert_(issubclass(b.dtype.type, np.floating))
-                assert_(issubclass(a.dtype.type, np.floating))
-
-    def test_int_inputs(self):
-        # Using integer frequency arguments and large N should not produce
-        # numpy integers that wraparound to negative numbers
-        k = iirfilter(24, 100, btype='low', analog=True, ftype='bessel',
-                      output='zpk')[2]
-        k2 = 9.999999999999989e+47
-        assert_allclose(k, k2)
-        # if fs is specified then the normalization of Wn to have 
-        # 0 <= Wn <= 1 should not cause an integer overflow
-        # the following line should not raise an exception
-        iirfilter(20, [1000000000, 1100000000], btype='bp', 
-                      analog=False, fs=6250000000)
-
-    def test_invalid_wn_size(self):
-        # low and high have 1 Wn, band and stop have 2 Wn
-        assert_raises(ValueError, iirfilter, 1, [0.1, 0.9], btype='low')
-        assert_raises(ValueError, iirfilter, 1, [0.2, 0.5], btype='high')
-        assert_raises(ValueError, iirfilter, 1, 0.2, btype='bp')
-        assert_raises(ValueError, iirfilter, 1, 400, btype='bs', analog=True)
-
-    def test_invalid_wn_range(self):
-        # For digital filters, 0 <= Wn <= 1
-        assert_raises(ValueError, iirfilter, 1, 2, btype='low')
-        assert_raises(ValueError, iirfilter, 1, [0.5, 1], btype='band')
-        assert_raises(ValueError, iirfilter, 1, [0., 0.5], btype='band')
-        assert_raises(ValueError, iirfilter, 1, -1, btype='high')
-        assert_raises(ValueError, iirfilter, 1, [1, 2], btype='band')
-        assert_raises(ValueError, iirfilter, 1, [10, 20], btype='stop')
-
-        # analog=True with non-positive critical frequencies
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirfilter(2, 0, btype='low', analog=True)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirfilter(2, -1, btype='low', analog=True)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirfilter(2, [0, 100], analog=True)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirfilter(2, [-1, 100], analog=True)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirfilter(2, [10, 0], analog=True)
-        with pytest.raises(ValueError, match="must be greater than 0"):
-            iirfilter(2, [10, -1], analog=True)
-
-    def test_analog_sos(self):
-        # first order Butterworth filter with Wn = 1 has tf 1/(s+1)
-        sos = [[0., 0., 1., 0., 1., 1.]]
-        sos2 = iirfilter(N=1, Wn=1, btype='low', analog=True, output='sos')
-        assert_array_almost_equal(sos, sos2)
-
-    def test_wn1_ge_wn0(self):
-        # gh-15773: should raise error if Wn[0] >= Wn[1]
-        with pytest.raises(ValueError,
-                           match=r"Wn\[0\] must be less than Wn\[1\]"):
-            iirfilter(2, [0.5, 0.5])
-        with pytest.raises(ValueError,
-                           match=r"Wn\[0\] must be less than Wn\[1\]"):
-            iirfilter(2, [0.6, 0.5])
-
-
-class TestGroupDelay:
-    def test_identity_filter(self):
-        w, gd = group_delay((1, 1))
-        assert_array_almost_equal(w, pi * np.arange(512) / 512)
-        assert_array_almost_equal(gd, np.zeros(512))
-        w, gd = group_delay((1, 1), whole=True)
-        assert_array_almost_equal(w, 2 * pi * np.arange(512) / 512)
-        assert_array_almost_equal(gd, np.zeros(512))
-
-    def test_fir(self):
-        # Let's design linear phase FIR and check that the group delay
-        # is constant.
-        N = 100
-        b = firwin(N + 1, 0.1)
-        w, gd = group_delay((b, 1))
-        assert_allclose(gd, 0.5 * N)
-
-    def test_iir(self):
-        # Let's design Butterworth filter and test the group delay at
-        # some points against MATLAB answer.
-        b, a = butter(4, 0.1)
-        w = np.linspace(0, pi, num=10, endpoint=False)
-        w, gd = group_delay((b, a), w=w)
-        matlab_gd = np.array([8.249313898506037, 11.958947880907104,
-                              2.452325615326005, 1.048918665702008,
-                              0.611382575635897, 0.418293269460578,
-                              0.317932917836572, 0.261371844762525,
-                              0.229038045801298, 0.212185774208521])
-        assert_array_almost_equal(gd, matlab_gd)
-
-    def test_singular(self):
-        # Let's create a filter with zeros and poles on the unit circle and
-        # check if warnings are raised at those frequencies.
-        z1 = np.exp(1j * 0.1 * pi)
-        z2 = np.exp(1j * 0.25 * pi)
-        p1 = np.exp(1j * 0.5 * pi)
-        p2 = np.exp(1j * 0.8 * pi)
-        b = np.convolve([1, -z1], [1, -z2])
-        a = np.convolve([1, -p1], [1, -p2])
-        w = np.array([0.1 * pi, 0.25 * pi, -0.5 * pi, -0.8 * pi])
-
-        w, gd = assert_warns(UserWarning, group_delay, (b, a), w=w)
-
-    def test_backward_compat(self):
-        # For backward compatibility, test if None act as a wrapper for default
-        w1, gd1 = group_delay((1, 1))
-        w2, gd2 = group_delay((1, 1), None)
-        assert_array_almost_equal(w1, w2)
-        assert_array_almost_equal(gd1, gd2)
-
-    def test_fs_param(self):
-        # Let's design Butterworth filter and test the group delay at
-        # some points against the normalized frequency answer.
-        b, a = butter(4, 4800, fs=96000)
-        w = np.linspace(0, 96000/2, num=10, endpoint=False)
-        w, gd = group_delay((b, a), w=w, fs=96000)
-        norm_gd = np.array([8.249313898506037, 11.958947880907104,
-                            2.452325615326005, 1.048918665702008,
-                            0.611382575635897, 0.418293269460578,
-                            0.317932917836572, 0.261371844762525,
-                            0.229038045801298, 0.212185774208521])
-        assert_array_almost_equal(gd, norm_gd)
-
-    def test_w_or_N_types(self):
-        # Measure at 8 equally-spaced points
-        for N in (8, np.int8(8), np.int16(8), np.int32(8), np.int64(8),
-                  np.array(8)):
-            w, gd = group_delay((1, 1), N)
-            assert_array_almost_equal(w, pi * np.arange(8) / 8)
-            assert_array_almost_equal(gd, np.zeros(8))
-
-        # Measure at frequency 8 rad/sec
-        for w in (8.0, 8.0+0j):
-            w_out, gd = group_delay((1, 1), w)
-            assert_array_almost_equal(w_out, [8])
-            assert_array_almost_equal(gd, [0])
-
-    def test_complex_coef(self):
-        # gh-19586: handle complex coef TFs
-        #
-        # for g(z) = (alpha*z+1)/(1+conjugate(alpha)), group delay is
-        # given by function below.
-        #
-        # def gd_expr(w, alpha):
-        #     num = 1j*(abs(alpha)**2-1)*np.exp(1j*w)
-        #     den = (alpha*np.exp(1j*w)+1)*(np.exp(1j*w)+np.conj(alpha))
-        #     return -np.imag(num/den)
-
-        # arbitrary non-real alpha
-        alpha = -0.6143077933232609+0.3355978770229421j
-        # 8 points from from -pi to pi
-        wref = np.array([-3.141592653589793 ,
-                         -2.356194490192345 ,
-                         -1.5707963267948966,
-                         -0.7853981633974483,
-                         0.                ,
-                         0.7853981633974483,
-                         1.5707963267948966,
-                         2.356194490192345 ])
-        gdref =  array([0.18759548150354619,
-                        0.17999770352712252,
-                        0.23598047471879877,
-                        0.46539443069907194,
-                        1.9511492420564165 ,
-                        3.478129975138865  ,
-                        0.6228594960517333 ,
-                        0.27067831839471224])
-        b = [alpha,1]
-        a = [1, np.conjugate(alpha)]
-        gdtest = group_delay((b,a), wref)[1]
-        # need nulp=14 for macOS arm64 wheel builds; added 2 for some
-        # robustness on other platforms.
-        assert_array_almost_equal_nulp(gdtest, gdref, nulp=16)
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            group_delay((1, 1), fs=np.array([10, 20]))
-
-        with pytest.raises(ValueError, match="Sampling.*be none"):
-            group_delay((1, 1), fs=None)
-
-
-class TestGammatone:
-    # Test erroneous input cases.
-    def test_invalid_input(self):
-        # Cutoff frequency is <= 0 or >= fs / 2.
-        fs = 16000
-        for args in [(-fs, 'iir'), (0, 'fir'), (fs / 2, 'iir'), (fs, 'fir')]:
-            with pytest.raises(ValueError, match='The frequency must be '
-                               'between '):
-                gammatone(*args, fs=fs)
-
-        # Filter type is not fir or iir
-        for args in [(440, 'fie'), (220, 'it')]:
-            with pytest.raises(ValueError, match='ftype must be '):
-                gammatone(*args, fs=fs)
-
-        # Order is <= 0 or > 24 for FIR filter.
-        for args in [(440, 'fir', -50), (220, 'fir', 0), (110, 'fir', 25),
-                     (55, 'fir', 50)]:
-            with pytest.raises(ValueError, match='Invalid order: '):
-                gammatone(*args, numtaps=None, fs=fs)
-
-    # Verify that the filter's frequency response is approximately
-    # 1 at the cutoff frequency.
-    def test_frequency_response(self):
-        fs = 16000
-        ftypes = ['fir', 'iir']
-        for ftype in ftypes:
-            # Create a gammatone filter centered at 1000 Hz.
-            b, a = gammatone(1000, ftype, fs=fs)
-
-            # Calculate the frequency response.
-            freqs, response = freqz(b, a)
-
-            # Determine peak magnitude of the response
-            # and corresponding frequency.
-            response_max = np.max(np.abs(response))
-            freq_hz = freqs[np.argmax(np.abs(response))] / ((2 * np.pi) / fs)
-
-            # Check that the peak magnitude is 1 and the frequency is 1000 Hz.
-            assert_allclose(response_max, 1, rtol=1e-2)
-            assert_allclose(freq_hz, 1000, rtol=1e-2)
-
-    # All built-in IIR filters are real, so should have perfectly
-    # symmetrical poles and zeros. Then ba representation (using
-    # numpy.poly) will be purely real instead of having negligible
-    # imaginary parts.
-    def test_iir_symmetry(self):
-        b, a = gammatone(440, 'iir', fs=24000)
-        z, p, k = tf2zpk(b, a)
-        assert_array_equal(sorted(z), sorted(z.conj()))
-        assert_array_equal(sorted(p), sorted(p.conj()))
-        assert_equal(k, np.real(k))
-
-        assert_(issubclass(b.dtype.type, np.floating))
-        assert_(issubclass(a.dtype.type, np.floating))
-
-    # Verify FIR filter coefficients with the paper's
-    # Mathematica implementation
-    def test_fir_ba_output(self):
-        b, _ = gammatone(15, 'fir', fs=1000)
-        b2 = [0.0, 2.2608075649884e-04,
-              1.5077903981357e-03, 4.2033687753998e-03,
-              8.1508962726503e-03, 1.2890059089154e-02,
-              1.7833890391666e-02, 2.2392613558564e-02,
-              2.6055195863104e-02, 2.8435872863284e-02,
-              2.9293319149544e-02, 2.852976858014e-02,
-              2.6176557156294e-02, 2.2371510270395e-02,
-              1.7332485267759e-02]
-        assert_allclose(b, b2)
-
-    # Verify IIR filter coefficients with the paper's MATLAB implementation
-    def test_iir_ba_output(self):
-        b, a = gammatone(440, 'iir', fs=16000)
-        b2 = [1.31494461367464e-06, -5.03391196645395e-06,
-              7.00649426000897e-06, -4.18951968419854e-06,
-              9.02614910412011e-07]
-        a2 = [1.0, -7.65646235454218,
-              25.7584699322366, -49.7319214483238,
-              60.2667361289181, -46.9399590980486,
-              22.9474798808461, -6.43799381299034,
-              0.793651554625368]
-        assert_allclose(b, b2)
-        assert_allclose(a, a2)
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            gammatone(440, 'iir', fs=np.array([10, 20]))
-
-
-class TestOrderFilter:
-    def test_doc_example(self):
-        x = np.arange(25).reshape(5, 5)
-        domain = np.identity(3)
-
-        # minimum of elements 1,3,9 (zero-padded) on phone pad
-        # 7,5,3 on numpad
-        expected = np.array(
-            [[0., 0., 0., 0., 0.],
-             [0., 0., 1., 2., 0.],
-             [0., 5., 6., 7., 0.],
-             [0., 10., 11., 12., 0.],
-             [0., 0., 0., 0., 0.]],
-        )
-        assert_allclose(order_filter(x, domain, 0), expected)
-
-        # maximum of elements 1,3,9 (zero-padded) on phone pad
-        # 7,5,3 on numpad
-        expected = np.array(
-            [[6., 7., 8., 9., 4.],
-             [11., 12., 13., 14., 9.],
-             [16., 17., 18., 19., 14.],
-             [21., 22., 23., 24., 19.],
-             [20., 21., 22., 23., 24.]],
-        )
-        assert_allclose(order_filter(x, domain, 2), expected)
-
-        # and, just to complete the set, median of zero-padded elements
-        expected = np.array(
-            [[0, 1, 2, 3, 0],
-             [5, 6, 7, 8, 3],
-             [10, 11, 12, 13, 8],
-             [15, 16, 17, 18, 13],
-             [0, 15, 16, 17, 18]],
-        )
-        assert_allclose(order_filter(x, domain, 1), expected)
-
-    def test_medfilt_order_filter(self):
-        x = np.arange(25).reshape(5, 5)
-
-        # median of zero-padded elements 1,5,9 on phone pad
-        # 7,5,3 on numpad
-        expected = np.array(
-            [[0, 1, 2, 3, 0],
-             [1, 6, 7, 8, 4],
-             [6, 11, 12, 13, 9],
-             [11, 16, 17, 18, 14],
-             [0, 16, 17, 18, 0]],
-        )
-        assert_allclose(medfilt(x, 3), expected)
-
-        assert_allclose(
-            order_filter(x, np.ones((3, 3)), 4),
-            expected
-        )
-
-    def test_order_filter_asymmetric(self):
-        x = np.arange(25).reshape(5, 5)
-        domain = np.array(
-            [[1, 1, 0],
-             [0, 1, 0],
-             [0, 0, 0]],
-        )
-
-        expected = np.array(
-            [[0, 0, 0, 0, 0],
-             [0, 0, 1, 2, 3],
-             [0, 5, 6, 7, 8],
-             [0, 10, 11, 12, 13],
-             [0, 15, 16, 17, 18]]
-        )
-        assert_allclose(order_filter(x, domain, 0), expected)
-
-        expected = np.array(
-            [[0, 0, 0, 0, 0],
-             [0, 1, 2, 3, 4],
-             [5, 6, 7, 8, 9],
-             [10, 11, 12, 13, 14],
-             [15, 16, 17, 18, 19]]
-        )
-        assert_allclose(order_filter(x, domain, 1), expected)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_fir_filter_design.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_fir_filter_design.py
deleted file mode 100644
index d9fc229829657491d84f35510b34731b055a360f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_fir_filter_design.py
+++ /dev/null
@@ -1,647 +0,0 @@
-import numpy as np
-from numpy.testing import (assert_almost_equal, assert_array_almost_equal,
-                           assert_equal, assert_,
-                           assert_allclose, assert_warns)
-from pytest import raises as assert_raises
-import pytest
-
-from scipy.fft import fft
-from scipy.special import sinc
-from scipy.signal import kaiser_beta, kaiser_atten, kaiserord, \
-    firwin, firwin2, freqz, remez, firls, minimum_phase
-
-
-def test_kaiser_beta():
-    b = kaiser_beta(58.7)
-    assert_almost_equal(b, 0.1102 * 50.0)
-    b = kaiser_beta(22.0)
-    assert_almost_equal(b, 0.5842 + 0.07886)
-    b = kaiser_beta(21.0)
-    assert_equal(b, 0.0)
-    b = kaiser_beta(10.0)
-    assert_equal(b, 0.0)
-
-
-def test_kaiser_atten():
-    a = kaiser_atten(1, 1.0)
-    assert_equal(a, 7.95)
-    a = kaiser_atten(2, 1/np.pi)
-    assert_equal(a, 2.285 + 7.95)
-
-
-def test_kaiserord():
-    assert_raises(ValueError, kaiserord, 1.0, 1.0)
-    numtaps, beta = kaiserord(2.285 + 7.95 - 0.001, 1/np.pi)
-    assert_equal((numtaps, beta), (2, 0.0))
-
-
-class TestFirwin:
-
-    def check_response(self, h, expected_response, tol=.05):
-        N = len(h)
-        alpha = 0.5 * (N-1)
-        m = np.arange(0,N) - alpha   # time indices of taps
-        for freq, expected in expected_response:
-            actual = abs(np.sum(h*np.exp(-1.j*np.pi*m*freq)))
-            mse = abs(actual-expected)**2
-            assert_(mse < tol, f'response not as expected, mse={mse:g} > {tol:g}')
-
-    def test_response(self):
-        N = 51
-        f = .5
-        # increase length just to try even/odd
-        h = firwin(N, f)  # low-pass from 0 to f
-        self.check_response(h, [(.25,1), (.75,0)])
-
-        h = firwin(N+1, f, window='nuttall')  # specific window
-        self.check_response(h, [(.25,1), (.75,0)])
-
-        h = firwin(N+2, f, pass_zero=False)  # stop from 0 to f --> high-pass
-        self.check_response(h, [(.25,0), (.75,1)])
-
-        f1, f2, f3, f4 = .2, .4, .6, .8
-        h = firwin(N+3, [f1, f2], pass_zero=False)  # band-pass filter
-        self.check_response(h, [(.1,0), (.3,1), (.5,0)])
-
-        h = firwin(N+4, [f1, f2])  # band-stop filter
-        self.check_response(h, [(.1,1), (.3,0), (.5,1)])
-
-        h = firwin(N+5, [f1, f2, f3, f4], pass_zero=False, scale=False)
-        self.check_response(h, [(.1,0), (.3,1), (.5,0), (.7,1), (.9,0)])
-
-        h = firwin(N+6, [f1, f2, f3, f4])  # multiband filter
-        self.check_response(h, [(.1,1), (.3,0), (.5,1), (.7,0), (.9,1)])
-
-        h = firwin(N+7, 0.1, width=.03)  # low-pass
-        self.check_response(h, [(.05,1), (.75,0)])
-
-        h = firwin(N+8, 0.1, pass_zero=False)  # high-pass
-        self.check_response(h, [(.05,0), (.75,1)])
-
-    def mse(self, h, bands):
-        """Compute mean squared error versus ideal response across frequency
-        band.
-          h -- coefficients
-          bands -- list of (left, right) tuples relative to 1==Nyquist of
-            passbands
-        """
-        w, H = freqz(h, worN=1024)
-        f = w/np.pi
-        passIndicator = np.zeros(len(w), bool)
-        for left, right in bands:
-            passIndicator |= (f >= left) & (f < right)
-        Hideal = np.where(passIndicator, 1, 0)
-        mse = np.mean(abs(abs(H)-Hideal)**2)
-        return mse
-
-    def test_scaling(self):
-        """
-        For one lowpass, bandpass, and highpass example filter, this test
-        checks two things:
-          - the mean squared error over the frequency domain of the unscaled
-            filter is smaller than the scaled filter (true for rectangular
-            window)
-          - the response of the scaled filter is exactly unity at the center
-            of the first passband
-        """
-        N = 11
-        cases = [
-            ([.5], True, (0, 1)),
-            ([0.2, .6], False, (.4, 1)),
-            ([.5], False, (1, 1)),
-        ]
-        for cutoff, pass_zero, expected_response in cases:
-            h = firwin(N, cutoff, scale=False, pass_zero=pass_zero, window='ones')
-            hs = firwin(N, cutoff, scale=True, pass_zero=pass_zero, window='ones')
-            if len(cutoff) == 1:
-                if pass_zero:
-                    cutoff = [0] + cutoff
-                else:
-                    cutoff = cutoff + [1]
-            assert_(self.mse(h, [cutoff]) < self.mse(hs, [cutoff]),
-                'least squares violation')
-            self.check_response(hs, [expected_response], 1e-12)
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            firwin(51, .5, fs=np.array([10, 20]))
-
-
-class TestFirWinMore:
-    """Different author, different style, different tests..."""
-
-    def test_lowpass(self):
-        width = 0.04
-        ntaps, beta = kaiserord(120, width)
-        kwargs = dict(cutoff=0.5, window=('kaiser', beta), scale=False)
-        taps = firwin(ntaps, **kwargs)
-
-        # Check the symmetry of taps.
-        assert_array_almost_equal(taps[:ntaps//2], taps[ntaps:ntaps-ntaps//2-1:-1])
-
-        # Check the gain at a few samples where
-        # we know it should be approximately 0 or 1.
-        freq_samples = np.array([0.0, 0.25, 0.5-width/2, 0.5+width/2, 0.75, 1.0])
-        freqs, response = freqz(taps, worN=np.pi*freq_samples)
-        assert_array_almost_equal(np.abs(response),
-                                    [1.0, 1.0, 1.0, 0.0, 0.0, 0.0], decimal=5)
-
-        taps_str = firwin(ntaps, pass_zero='lowpass', **kwargs)
-        assert_allclose(taps, taps_str)
-
-    def test_highpass(self):
-        width = 0.04
-        ntaps, beta = kaiserord(120, width)
-
-        # Ensure that ntaps is odd.
-        ntaps |= 1
-
-        kwargs = dict(cutoff=0.5, window=('kaiser', beta), scale=False)
-        taps = firwin(ntaps, pass_zero=False, **kwargs)
-
-        # Check the symmetry of taps.
-        assert_array_almost_equal(taps[:ntaps//2], taps[ntaps:ntaps-ntaps//2-1:-1])
-
-        # Check the gain at a few samples where
-        # we know it should be approximately 0 or 1.
-        freq_samples = np.array([0.0, 0.25, 0.5-width/2, 0.5+width/2, 0.75, 1.0])
-        freqs, response = freqz(taps, worN=np.pi*freq_samples)
-        assert_array_almost_equal(np.abs(response),
-                                    [0.0, 0.0, 0.0, 1.0, 1.0, 1.0], decimal=5)
-
-        taps_str = firwin(ntaps, pass_zero='highpass', **kwargs)
-        assert_allclose(taps, taps_str)
-
-    def test_bandpass(self):
-        width = 0.04
-        ntaps, beta = kaiserord(120, width)
-        kwargs = dict(cutoff=[0.3, 0.7], window=('kaiser', beta), scale=False)
-        taps = firwin(ntaps, pass_zero=False, **kwargs)
-
-        # Check the symmetry of taps.
-        assert_array_almost_equal(taps[:ntaps//2], taps[ntaps:ntaps-ntaps//2-1:-1])
-
-        # Check the gain at a few samples where
-        # we know it should be approximately 0 or 1.
-        freq_samples = np.array([0.0, 0.2, 0.3-width/2, 0.3+width/2, 0.5,
-                                0.7-width/2, 0.7+width/2, 0.8, 1.0])
-        freqs, response = freqz(taps, worN=np.pi*freq_samples)
-        assert_array_almost_equal(np.abs(response),
-                [0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0], decimal=5)
-
-        taps_str = firwin(ntaps, pass_zero='bandpass', **kwargs)
-        assert_allclose(taps, taps_str)
-
-    def test_bandstop_multi(self):
-        width = 0.04
-        ntaps, beta = kaiserord(120, width)
-        kwargs = dict(cutoff=[0.2, 0.5, 0.8], window=('kaiser', beta),
-                      scale=False)
-        taps = firwin(ntaps, **kwargs)
-
-        # Check the symmetry of taps.
-        assert_array_almost_equal(taps[:ntaps//2], taps[ntaps:ntaps-ntaps//2-1:-1])
-
-        # Check the gain at a few samples where
-        # we know it should be approximately 0 or 1.
-        freq_samples = np.array([0.0, 0.1, 0.2-width/2, 0.2+width/2, 0.35,
-                                0.5-width/2, 0.5+width/2, 0.65,
-                                0.8-width/2, 0.8+width/2, 0.9, 1.0])
-        freqs, response = freqz(taps, worN=np.pi*freq_samples)
-        assert_array_almost_equal(np.abs(response),
-                [1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0],
-                decimal=5)
-
-        taps_str = firwin(ntaps, pass_zero='bandstop', **kwargs)
-        assert_allclose(taps, taps_str)
-
-    def test_fs_nyq(self):
-        """Test the fs and nyq keywords."""
-        nyquist = 1000
-        width = 40.0
-        relative_width = width/nyquist
-        ntaps, beta = kaiserord(120, relative_width)
-        taps = firwin(ntaps, cutoff=[300, 700], window=('kaiser', beta),
-                        pass_zero=False, scale=False, fs=2*nyquist)
-
-        # Check the symmetry of taps.
-        assert_array_almost_equal(taps[:ntaps//2], taps[ntaps:ntaps-ntaps//2-1:-1])
-
-        # Check the gain at a few samples where
-        # we know it should be approximately 0 or 1.
-        freq_samples = np.array([0.0, 200, 300-width/2, 300+width/2, 500,
-                                700-width/2, 700+width/2, 800, 1000])
-        freqs, response = freqz(taps, worN=np.pi*freq_samples/nyquist)
-        assert_array_almost_equal(np.abs(response),
-                [0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0], decimal=5)
-
-    def test_bad_cutoff(self):
-        """Test that invalid cutoff argument raises ValueError."""
-        # cutoff values must be greater than 0 and less than 1.
-        assert_raises(ValueError, firwin, 99, -0.5)
-        assert_raises(ValueError, firwin, 99, 1.5)
-        # Don't allow 0 or 1 in cutoff.
-        assert_raises(ValueError, firwin, 99, [0, 0.5])
-        assert_raises(ValueError, firwin, 99, [0.5, 1])
-        # cutoff values must be strictly increasing.
-        assert_raises(ValueError, firwin, 99, [0.1, 0.5, 0.2])
-        assert_raises(ValueError, firwin, 99, [0.1, 0.5, 0.5])
-        # Must have at least one cutoff value.
-        assert_raises(ValueError, firwin, 99, [])
-        # 2D array not allowed.
-        assert_raises(ValueError, firwin, 99, [[0.1, 0.2],[0.3, 0.4]])
-        # cutoff values must be less than nyq.
-        assert_raises(ValueError, firwin, 99, 50.0, fs=80)
-        assert_raises(ValueError, firwin, 99, [10, 20, 30], fs=50)
-
-    def test_even_highpass_raises_value_error(self):
-        """Test that attempt to create a highpass filter with an even number
-        of taps raises a ValueError exception."""
-        assert_raises(ValueError, firwin, 40, 0.5, pass_zero=False)
-        assert_raises(ValueError, firwin, 40, [.25, 0.5])
-
-    def test_bad_pass_zero(self):
-        """Test degenerate pass_zero cases."""
-        with assert_raises(ValueError, match='pass_zero must be'):
-            firwin(41, 0.5, pass_zero='foo')
-        with assert_raises(TypeError, match='cannot be interpreted'):
-            firwin(41, 0.5, pass_zero=1.)
-        for pass_zero in ('lowpass', 'highpass'):
-            with assert_raises(ValueError, match='cutoff must have one'):
-                firwin(41, [0.5, 0.6], pass_zero=pass_zero)
-        for pass_zero in ('bandpass', 'bandstop'):
-            with assert_raises(ValueError, match='must have at least two'):
-                firwin(41, [0.5], pass_zero=pass_zero)
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            firwin2(51, .5, 1, fs=np.array([10, 20]))
-
-
-class TestFirwin2:
-
-    def test_invalid_args(self):
-        # `freq` and `gain` have different lengths.
-        with assert_raises(ValueError, match='must be of same length'):
-            firwin2(50, [0, 0.5, 1], [0.0, 1.0])
-        # `nfreqs` is less than `ntaps`.
-        with assert_raises(ValueError, match='ntaps must be less than nfreqs'):
-            firwin2(50, [0, 0.5, 1], [0.0, 1.0, 1.0], nfreqs=33)
-        # Decreasing value in `freq`
-        with assert_raises(ValueError, match='must be nondecreasing'):
-            firwin2(50, [0, 0.5, 0.4, 1.0], [0, .25, .5, 1.0])
-        # Value in `freq` repeated more than once.
-        with assert_raises(ValueError, match='must not occur more than twice'):
-            firwin2(50, [0, .1, .1, .1, 1.0], [0.0, 0.5, 0.75, 1.0, 1.0])
-        # `freq` does not start at 0.0.
-        with assert_raises(ValueError, match='start with 0'):
-            firwin2(50, [0.5, 1.0], [0.0, 1.0])
-        # `freq` does not end at fs/2.
-        with assert_raises(ValueError, match='end with fs/2'):
-            firwin2(50, [0.0, 0.5], [0.0, 1.0])
-        # Value 0 is repeated in `freq`
-        with assert_raises(ValueError, match='0 must not be repeated'):
-            firwin2(50, [0.0, 0.0, 0.5, 1.0], [1.0, 1.0, 0.0, 0.0])
-        # Value fs/2 is repeated in `freq`
-        with assert_raises(ValueError, match='fs/2 must not be repeated'):
-            firwin2(50, [0.0, 0.5, 1.0, 1.0], [1.0, 1.0, 0.0, 0.0])
-        # Value in `freq` that is too close to a repeated number
-        with assert_raises(ValueError, match='cannot contain numbers '
-                                             'that are too close'):
-            firwin2(50, [0.0, 0.5 - np.finfo(float).eps * 0.5, 0.5, 0.5, 1.0],
-                        [1.0, 1.0, 1.0, 0.0, 0.0])
-
-        # Type II filter, but the gain at nyquist frequency is not zero.
-        with assert_raises(ValueError, match='Type II filter'):
-            firwin2(16, [0.0, 0.5, 1.0], [0.0, 1.0, 1.0])
-
-        # Type III filter, but the gains at nyquist and zero rate are not zero.
-        with assert_raises(ValueError, match='Type III filter'):
-            firwin2(17, [0.0, 0.5, 1.0], [0.0, 1.0, 1.0], antisymmetric=True)
-        with assert_raises(ValueError, match='Type III filter'):
-            firwin2(17, [0.0, 0.5, 1.0], [1.0, 1.0, 0.0], antisymmetric=True)
-        with assert_raises(ValueError, match='Type III filter'):
-            firwin2(17, [0.0, 0.5, 1.0], [1.0, 1.0, 1.0], antisymmetric=True)
-
-        # Type IV filter, but the gain at zero rate is not zero.
-        with assert_raises(ValueError, match='Type IV filter'):
-            firwin2(16, [0.0, 0.5, 1.0], [1.0, 1.0, 0.0], antisymmetric=True)
-
-    def test01(self):
-        width = 0.04
-        beta = 12.0
-        ntaps = 400
-        # Filter is 1 from w=0 to w=0.5, then decreases linearly from 1 to 0 as w
-        # increases from w=0.5 to w=1  (w=1 is the Nyquist frequency).
-        freq = [0.0, 0.5, 1.0]
-        gain = [1.0, 1.0, 0.0]
-        taps = firwin2(ntaps, freq, gain, window=('kaiser', beta))
-        freq_samples = np.array([0.0, 0.25, 0.5-width/2, 0.5+width/2,
-                                                        0.75, 1.0-width/2])
-        freqs, response = freqz(taps, worN=np.pi*freq_samples)
-        assert_array_almost_equal(np.abs(response),
-                        [1.0, 1.0, 1.0, 1.0-width, 0.5, width], decimal=5)
-
-    def test02(self):
-        width = 0.04
-        beta = 12.0
-        # ntaps must be odd for positive gain at Nyquist.
-        ntaps = 401
-        # An ideal highpass filter.
-        freq = [0.0, 0.5, 0.5, 1.0]
-        gain = [0.0, 0.0, 1.0, 1.0]
-        taps = firwin2(ntaps, freq, gain, window=('kaiser', beta))
-        freq_samples = np.array([0.0, 0.25, 0.5-width, 0.5+width, 0.75, 1.0])
-        freqs, response = freqz(taps, worN=np.pi*freq_samples)
-        assert_array_almost_equal(np.abs(response),
-                                [0.0, 0.0, 0.0, 1.0, 1.0, 1.0], decimal=5)
-
-    def test03(self):
-        width = 0.02
-        ntaps, beta = kaiserord(120, width)
-        # ntaps must be odd for positive gain at Nyquist.
-        ntaps = int(ntaps) | 1
-        freq = [0.0, 0.4, 0.4, 0.5, 0.5, 1.0]
-        gain = [1.0, 1.0, 0.0, 0.0, 1.0, 1.0]
-        taps = firwin2(ntaps, freq, gain, window=('kaiser', beta))
-        freq_samples = np.array([0.0, 0.4-width, 0.4+width, 0.45,
-                                    0.5-width, 0.5+width, 0.75, 1.0])
-        freqs, response = freqz(taps, worN=np.pi*freq_samples)
-        assert_array_almost_equal(np.abs(response),
-                    [1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0], decimal=5)
-
-    def test04(self):
-        """Test firwin2 when window=None."""
-        ntaps = 5
-        # Ideal lowpass: gain is 1 on [0,0.5], and 0 on [0.5, 1.0]
-        freq = [0.0, 0.5, 0.5, 1.0]
-        gain = [1.0, 1.0, 0.0, 0.0]
-        taps = firwin2(ntaps, freq, gain, window=None, nfreqs=8193)
-        alpha = 0.5 * (ntaps - 1)
-        m = np.arange(0, ntaps) - alpha
-        h = 0.5 * sinc(0.5 * m)
-        assert_array_almost_equal(h, taps)
-
-    def test05(self):
-        """Test firwin2 for calculating Type IV filters"""
-        ntaps = 1500
-
-        freq = [0.0, 1.0]
-        gain = [0.0, 1.0]
-        taps = firwin2(ntaps, freq, gain, window=None, antisymmetric=True)
-        assert_array_almost_equal(taps[: ntaps // 2], -taps[ntaps // 2:][::-1])
-
-        freqs, response = freqz(taps, worN=2048)
-        assert_array_almost_equal(abs(response), freqs / np.pi, decimal=4)
-
-    def test06(self):
-        """Test firwin2 for calculating Type III filters"""
-        ntaps = 1501
-
-        freq = [0.0, 0.5, 0.55, 1.0]
-        gain = [0.0, 0.5, 0.0, 0.0]
-        taps = firwin2(ntaps, freq, gain, window=None, antisymmetric=True)
-        assert_equal(taps[ntaps // 2], 0.0)
-        assert_array_almost_equal(taps[: ntaps // 2], -taps[ntaps // 2 + 1:][::-1])
-
-        freqs, response1 = freqz(taps, worN=2048)
-        response2 = np.interp(freqs / np.pi, freq, gain)
-        assert_array_almost_equal(abs(response1), response2, decimal=3)
-
-    def test_fs_nyq(self):
-        taps1 = firwin2(80, [0.0, 0.5, 1.0], [1.0, 1.0, 0.0])
-        taps2 = firwin2(80, [0.0, 30.0, 60.0], [1.0, 1.0, 0.0], fs=120.0)
-        assert_array_almost_equal(taps1, taps2)
-
-    def test_tuple(self):
-        taps1 = firwin2(150, (0.0, 0.5, 0.5, 1.0), (1.0, 1.0, 0.0, 0.0))
-        taps2 = firwin2(150, [0.0, 0.5, 0.5, 1.0], [1.0, 1.0, 0.0, 0.0])
-        assert_array_almost_equal(taps1, taps2)
-
-    def test_input_modyfication(self):
-        freq1 = np.array([0.0, 0.5, 0.5, 1.0])
-        freq2 = np.array(freq1)
-        firwin2(80, freq1, [1.0, 1.0, 0.0, 0.0])
-        assert_equal(freq1, freq2)
-
-
-class TestRemez:
-
-    def test_bad_args(self):
-        assert_raises(ValueError, remez, 11, [0.1, 0.4], [1], type='pooka')
-
-    def test_hilbert(self):
-        N = 11  # number of taps in the filter
-        a = 0.1  # width of the transition band
-
-        # design an unity gain hilbert bandpass filter from w to 0.5-w
-        h = remez(11, [a, 0.5-a], [1], type='hilbert')
-
-        # make sure the filter has correct # of taps
-        assert_(len(h) == N, "Number of Taps")
-
-        # make sure it is type III (anti-symmetric tap coefficients)
-        assert_array_almost_equal(h[:(N-1)//2], -h[:-(N-1)//2-1:-1])
-
-        # Since the requested response is symmetric, all even coefficients
-        # should be zero (or in this case really small)
-        assert_((abs(h[1::2]) < 1e-15).all(), "Even Coefficients Equal Zero")
-
-        # now check the frequency response
-        w, H = freqz(h, 1)
-        f = w/2/np.pi
-        Hmag = abs(H)
-
-        # should have a zero at 0 and pi (in this case close to zero)
-        assert_((Hmag[[0, -1]] < 0.02).all(), "Zero at zero and pi")
-
-        # check that the pass band is close to unity
-        idx = np.logical_and(f > a, f < 0.5-a)
-        assert_((abs(Hmag[idx] - 1) < 0.015).all(), "Pass Band Close To Unity")
-
-    def test_compare(self):
-        # test comparison to MATLAB
-        k = [0.024590270518440, -0.041314581814658, -0.075943803756711,
-             -0.003530911231040, 0.193140296954975, 0.373400753484939,
-             0.373400753484939, 0.193140296954975, -0.003530911231040,
-             -0.075943803756711, -0.041314581814658, 0.024590270518440]
-        h = remez(12, [0, 0.3, 0.5, 1], [1, 0], fs=2.)
-        assert_allclose(h, k)
-
-        h = [-0.038976016082299, 0.018704846485491, -0.014644062687875,
-             0.002879152556419, 0.016849978528150, -0.043276706138248,
-             0.073641298245579, -0.103908158578635, 0.129770906801075,
-             -0.147163447297124, 0.153302248456347, -0.147163447297124,
-             0.129770906801075, -0.103908158578635, 0.073641298245579,
-             -0.043276706138248, 0.016849978528150, 0.002879152556419,
-             -0.014644062687875, 0.018704846485491, -0.038976016082299]
-        assert_allclose(remez(21, [0, 0.8, 0.9, 1], [0, 1], fs=2.), h)
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            remez(11, .1, 1, fs=np.array([10, 20]))
-
-class TestFirls:
-
-    def test_bad_args(self):
-        # even numtaps
-        assert_raises(ValueError, firls, 10, [0.1, 0.2], [0, 0])
-        # odd bands
-        assert_raises(ValueError, firls, 11, [0.1, 0.2, 0.4], [0, 0, 0])
-        # len(bands) != len(desired)
-        assert_raises(ValueError, firls, 11, [0.1, 0.2, 0.3, 0.4], [0, 0, 0])
-        # non-monotonic bands
-        assert_raises(ValueError, firls, 11, [0.2, 0.1], [0, 0])
-        assert_raises(ValueError, firls, 11, [0.1, 0.2, 0.3, 0.3], [0] * 4)
-        assert_raises(ValueError, firls, 11, [0.3, 0.4, 0.1, 0.2], [0] * 4)
-        assert_raises(ValueError, firls, 11, [0.1, 0.3, 0.2, 0.4], [0] * 4)
-        # negative desired
-        assert_raises(ValueError, firls, 11, [0.1, 0.2], [-1, 1])
-        # len(weight) != len(pairs)
-        assert_raises(ValueError, firls, 11, [0.1, 0.2], [0, 0], weight=[1, 2])
-        # negative weight
-        assert_raises(ValueError, firls, 11, [0.1, 0.2], [0, 0], weight=[-1])
-
-    def test_firls(self):
-        N = 11  # number of taps in the filter
-        a = 0.1  # width of the transition band
-
-        # design a halfband symmetric low-pass filter
-        h = firls(11, [0, a, 0.5-a, 0.5], [1, 1, 0, 0], fs=1.0)
-
-        # make sure the filter has correct # of taps
-        assert_equal(len(h), N)
-
-        # make sure it is symmetric
-        midx = (N-1) // 2
-        assert_array_almost_equal(h[:midx], h[:-midx-1:-1])
-
-        # make sure the center tap is 0.5
-        assert_almost_equal(h[midx], 0.5)
-
-        # For halfband symmetric, odd coefficients (except the center)
-        # should be zero (really small)
-        hodd = np.hstack((h[1:midx:2], h[-midx+1::2]))
-        assert_array_almost_equal(hodd, 0)
-
-        # now check the frequency response
-        w, H = freqz(h, 1)
-        f = w/2/np.pi
-        Hmag = np.abs(H)
-
-        # check that the pass band is close to unity
-        idx = np.logical_and(f > 0, f < a)
-        assert_array_almost_equal(Hmag[idx], 1, decimal=3)
-
-        # check that the stop band is close to zero
-        idx = np.logical_and(f > 0.5-a, f < 0.5)
-        assert_array_almost_equal(Hmag[idx], 0, decimal=3)
-
-    def test_compare(self):
-        # compare to OCTAVE output
-        taps = firls(9, [0, 0.5, 0.55, 1], [1, 1, 0, 0], weight=[1, 2])
-        # >> taps = firls(8, [0 0.5 0.55 1], [1 1 0 0], [1, 2]);
-        known_taps = [-6.26930101730182e-04, -1.03354450635036e-01,
-                      -9.81576747564301e-03, 3.17271686090449e-01,
-                      5.11409425599933e-01, 3.17271686090449e-01,
-                      -9.81576747564301e-03, -1.03354450635036e-01,
-                      -6.26930101730182e-04]
-        assert_allclose(taps, known_taps)
-
-        # compare to MATLAB output
-        taps = firls(11, [0, 0.5, 0.5, 1], [1, 1, 0, 0], weight=[1, 2])
-        # >> taps = firls(10, [0 0.5 0.5 1], [1 1 0 0], [1, 2]);
-        known_taps = [
-            0.058545300496815, -0.014233383714318, -0.104688258464392,
-            0.012403323025279, 0.317930861136062, 0.488047220029700,
-            0.317930861136062, 0.012403323025279, -0.104688258464392,
-            -0.014233383714318, 0.058545300496815]
-        assert_allclose(taps, known_taps)
-
-        # With linear changes:
-        taps = firls(7, (0, 1, 2, 3, 4, 5), [1, 0, 0, 1, 1, 0], fs=20)
-        # >> taps = firls(6, [0, 0.1, 0.2, 0.3, 0.4, 0.5], [1, 0, 0, 1, 1, 0])
-        known_taps = [
-            1.156090832768218, -4.1385894727395849, 7.5288619164321826,
-            -8.5530572592947856, 7.5288619164321826, -4.1385894727395849,
-            1.156090832768218]
-        assert_allclose(taps, known_taps)
-
-    def test_rank_deficient(self):
-        # solve() runs but warns (only sometimes, so here we don't use match)
-        x = firls(21, [0, 0.1, 0.9, 1], [1, 1, 0, 0])
-        w, h = freqz(x, fs=2.)
-        assert_allclose(np.abs(h[:2]), 1., atol=1e-5)
-        assert_allclose(np.abs(h[-2:]), 0., atol=1e-6)
-        # switch to pinvh (tolerances could be higher with longer
-        # filters, but using shorter ones is faster computationally and
-        # the idea is the same)
-        x = firls(101, [0, 0.01, 0.99, 1], [1, 1, 0, 0])
-        w, h = freqz(x, fs=2.)
-        mask = w < 0.01
-        assert mask.sum() > 3
-        assert_allclose(np.abs(h[mask]), 1., atol=1e-4)
-        mask = w > 0.99
-        assert mask.sum() > 3
-        assert_allclose(np.abs(h[mask]), 0., atol=1e-4)
-
-    def test_fs_validation(self):
-        with pytest.raises(ValueError, match="Sampling.*single scalar"):
-            firls(11, .1, 1, fs=np.array([10, 20]))
-
-class TestMinimumPhase:
-
-    def test_bad_args(self):
-        # not enough taps
-        assert_raises(ValueError, minimum_phase, [1.])
-        assert_raises(ValueError, minimum_phase, [1., 1.])
-        assert_raises(ValueError, minimum_phase, np.full(10, 1j))
-        assert_raises(ValueError, minimum_phase, 'foo')
-        assert_raises(ValueError, minimum_phase, np.ones(10), n_fft=8)
-        assert_raises(ValueError, minimum_phase, np.ones(10), method='foo')
-        assert_warns(RuntimeWarning, minimum_phase, np.arange(3))
-        with pytest.raises(ValueError, match="is only supported when"):
-            minimum_phase(np.ones(3), method='hilbert', half=False)
-
-    def test_homomorphic(self):
-        # check that it can recover frequency responses of arbitrary
-        # linear-phase filters
-
-        # for some cases we can get the actual filter back
-        h = [1, -1]
-        h_new = minimum_phase(np.convolve(h, h[::-1]))
-        assert_allclose(h_new, h, rtol=0.05)
-
-        # but in general we only guarantee we get the magnitude back
-        rng = np.random.RandomState(0)
-        for n in (2, 3, 10, 11, 15, 16, 17, 20, 21, 100, 101):
-            h = rng.randn(n)
-            h_linear = np.convolve(h, h[::-1])
-            h_new = minimum_phase(h_linear)
-            assert_allclose(np.abs(fft(h_new)), np.abs(fft(h)), rtol=1e-4)
-            h_new = minimum_phase(h_linear, half=False)
-            assert len(h_linear) == len(h_new)
-            assert_allclose(np.abs(fft(h_new)), np.abs(fft(h_linear)), rtol=1e-4)
-
-    def test_hilbert(self):
-        # compare to MATLAB output of reference implementation
-
-        # f=[0 0.3 0.5 1];
-        # a=[1 1 0 0];
-        # h=remez(11,f,a);
-        h = remez(12, [0, 0.3, 0.5, 1], [1, 0], fs=2.)
-        k = [0.349585548646686, 0.373552164395447, 0.326082685363438,
-             0.077152207480935, -0.129943946349364, -0.059355880509749]
-        m = minimum_phase(h, 'hilbert')
-        assert_allclose(m, k, rtol=5e-3)
-
-        # f=[0 0.8 0.9 1];
-        # a=[0 0 1 1];
-        # h=remez(20,f,a);
-        h = remez(21, [0, 0.8, 0.9, 1], [0, 1], fs=2.)
-        k = [0.232486803906329, -0.133551833687071, 0.151871456867244,
-             -0.157957283165866, 0.151739294892963, -0.129293146705090,
-             0.100787844523204, -0.065832656741252, 0.035361328741024,
-             -0.014977068692269, -0.158416139047557]
-        m = minimum_phase(h, 'hilbert', n_fft=2**19)
-        assert_allclose(m, k, rtol=2e-3)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_ltisys.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_ltisys.py
deleted file mode 100644
index af69f109cd3e6e72858d69bcb338ddd61b18e3ba..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_ltisys.py
+++ /dev/null
@@ -1,1221 +0,0 @@
-import warnings
-
-import numpy as np
-from numpy.testing import (assert_almost_equal, assert_equal, assert_allclose,
-                           assert_, suppress_warnings)
-from pytest import raises as assert_raises
-
-from scipy.signal import (ss2tf, tf2ss, lti,
-                          dlti, bode, freqresp, lsim, impulse, step,
-                          abcd_normalize, place_poles,
-                          TransferFunction, StateSpace, ZerosPolesGain)
-from scipy.signal._filter_design import BadCoefficients
-import scipy.linalg as linalg
-
-
-def _assert_poles_close(P1,P2, rtol=1e-8, atol=1e-8):
-    """
-    Check each pole in P1 is close to a pole in P2 with a 1e-8
-    relative tolerance or 1e-8 absolute tolerance (useful for zero poles).
-    These tolerances are very strict but the systems tested are known to
-    accept these poles so we should not be far from what is requested.
-    """
-    P2 = P2.copy()
-    for p1 in P1:
-        found = False
-        for p2_idx in range(P2.shape[0]):
-            if np.allclose([np.real(p1), np.imag(p1)],
-                           [np.real(P2[p2_idx]), np.imag(P2[p2_idx])],
-                           rtol, atol):
-                found = True
-                np.delete(P2, p2_idx)
-                break
-        if not found:
-            raise ValueError("Can't find pole " + str(p1) + " in " + str(P2))
-
-
-class TestPlacePoles:
-
-    def _check(self, A, B, P, **kwargs):
-        """
-        Perform the most common tests on the poles computed by place_poles
-        and return the Bunch object for further specific tests
-        """
-        fsf = place_poles(A, B, P, **kwargs)
-        expected, _ = np.linalg.eig(A - np.dot(B, fsf.gain_matrix))
-        _assert_poles_close(expected, fsf.requested_poles)
-        _assert_poles_close(expected, fsf.computed_poles)
-        _assert_poles_close(P,fsf.requested_poles)
-        return fsf
-
-    def test_real(self):
-        # Test real pole placement using KNV and YT0 algorithm and example 1 in
-        # section 4 of the reference publication (see place_poles docstring)
-        A = np.array([1.380, -0.2077, 6.715, -5.676, -0.5814, -4.290, 0,
-                      0.6750, 1.067, 4.273, -6.654, 5.893, 0.0480, 4.273,
-                      1.343, -2.104]).reshape(4, 4)
-        B = np.array([0, 5.679, 1.136, 1.136, 0, 0, -3.146,0]).reshape(4, 2)
-        P = np.array([-0.2, -0.5, -5.0566, -8.6659])
-
-        # Check that both KNV and YT compute correct K matrix
-        self._check(A, B, P, method='KNV0')
-        self._check(A, B, P, method='YT')
-
-        # Try to reach the specific case in _YT_real where two singular
-        # values are almost equal. This is to improve code coverage but I
-        # have no way to be sure this code is really reached
-
-        # on some architectures this can lead to a RuntimeWarning invalid
-        # value in divide (see gh-7590), so suppress it for now
-        with np.errstate(invalid='ignore'):
-            self._check(A, B, (2,2,3,3))
-
-    def test_complex(self):
-        # Test complex pole placement on a linearized car model, taken from L.
-        # Jaulin, Automatique pour la robotique, Cours et Exercices, iSTE
-        # editions p 184/185
-        A = np.array([[0, 7, 0, 0],
-                      [0, 0, 0, 7/3.],
-                      [0, 0, 0, 0],
-                      [0, 0, 0, 0]])
-        B = np.array([[0, 0],
-                      [0, 0],
-                      [1, 0],
-                      [0, 1]])
-        # Test complex poles on YT
-        P = np.array([-3, -1, -2-1j, -2+1j])
-        # on macOS arm64 this can lead to a RuntimeWarning invalid
-        # value in divide, so suppress it for now
-        with np.errstate(divide='ignore', invalid='ignore'):
-            self._check(A, B, P)
-
-        # Try to reach the specific case in _YT_complex where two singular
-        # values are almost equal. This is to improve code coverage but I
-        # have no way to be sure this code is really reached
-
-        P = [0-1e-6j,0+1e-6j,-10,10]
-        with np.errstate(divide='ignore', invalid='ignore'):
-            self._check(A, B, P, maxiter=1000)
-
-        # Try to reach the specific case in _YT_complex where the rank two
-        # update yields two null vectors. This test was found via Monte Carlo.
-
-        A = np.array(
-                    [-2148,-2902, -2267, -598, -1722, -1829, -165, -283, -2546,
-                   -167, -754, -2285, -543, -1700, -584, -2978, -925, -1300,
-                   -1583, -984, -386, -2650, -764, -897, -517, -1598, 2, -1709,
-                   -291, -338, -153, -1804, -1106, -1168, -867, -2297]
-                   ).reshape(6,6)
-
-        B = np.array(
-                    [-108, -374, -524, -1285, -1232, -161, -1204, -672, -637,
-                     -15, -483, -23, -931, -780, -1245, -1129, -1290, -1502,
-                     -952, -1374, -62, -964, -930, -939, -792, -756, -1437,
-                     -491, -1543, -686]
-                     ).reshape(6,5)
-        P = [-25.-29.j, -25.+29.j, 31.-42.j, 31.+42.j, 33.-41.j, 33.+41.j]
-        self._check(A, B, P)
-
-        # Use a lot of poles to go through all cases for update_order
-        # in _YT_loop
-
-        big_A = np.ones((11,11))-np.eye(11)
-        big_B = np.ones((11,10))-np.diag([1]*10,1)[:,1:]
-        big_A[:6,:6] = A
-        big_B[:6,:5] = B
-
-        P = [-10,-20,-30,40,50,60,70,-20-5j,-20+5j,5+3j,5-3j]
-        with np.errstate(divide='ignore', invalid='ignore'):
-            self._check(big_A, big_B, P)
-
-        #check with only complex poles and only real poles
-        P = [-10,-20,-30,-40,-50,-60,-70,-80,-90,-100]
-        self._check(big_A[:-1,:-1], big_B[:-1,:-1], P)
-        P = [-10+10j,-20+20j,-30+30j,-40+40j,-50+50j,
-             -10-10j,-20-20j,-30-30j,-40-40j,-50-50j]
-        self._check(big_A[:-1,:-1], big_B[:-1,:-1], P)
-
-        # need a 5x5 array to ensure YT handles properly when there
-        # is only one real pole and several complex
-        A = np.array([0,7,0,0,0,0,0,7/3.,0,0,0,0,0,0,0,0,
-                      0,0,0,5,0,0,0,0,9]).reshape(5,5)
-        B = np.array([0,0,0,0,1,0,0,1,2,3]).reshape(5,2)
-        P = np.array([-2, -3+1j, -3-1j, -1+1j, -1-1j])
-        with np.errstate(divide='ignore', invalid='ignore'):
-            place_poles(A, B, P)
-
-        # same test with an odd number of real poles > 1
-        # this is another specific case of YT
-        P = np.array([-2, -3, -4, -1+1j, -1-1j])
-        with np.errstate(divide='ignore', invalid='ignore'):
-            self._check(A, B, P)
-
-    def test_tricky_B(self):
-        # check we handle as we should the 1 column B matrices and
-        # n column B matrices (with n such as shape(A)=(n, n))
-        A = np.array([1.380, -0.2077, 6.715, -5.676, -0.5814, -4.290, 0,
-                      0.6750, 1.067, 4.273, -6.654, 5.893, 0.0480, 4.273,
-                      1.343, -2.104]).reshape(4, 4)
-        B = np.array([0, 5.679, 1.136, 1.136, 0, 0, -3.146, 0, 1, 2, 3, 4,
-                      5, 6, 7, 8]).reshape(4, 4)
-
-        # KNV or YT are not called here, it's a specific case with only
-        # one unique solution
-        P = np.array([-0.2, -0.5, -5.0566, -8.6659])
-        fsf = self._check(A, B, P)
-        # rtol and nb_iter should be set to np.nan as the identity can be
-        # used as transfer matrix
-        assert_equal(fsf.rtol, np.nan)
-        assert_equal(fsf.nb_iter, np.nan)
-
-        # check with complex poles too as they trigger a specific case in
-        # the specific case :-)
-        P = np.array((-2+1j,-2-1j,-3,-2))
-        fsf = self._check(A, B, P)
-        assert_equal(fsf.rtol, np.nan)
-        assert_equal(fsf.nb_iter, np.nan)
-
-        #now test with a B matrix with only one column (no optimisation)
-        B = B[:,0].reshape(4,1)
-        P = np.array((-2+1j,-2-1j,-3,-2))
-        fsf = self._check(A, B, P)
-
-        #  we can't optimize anything, check they are set to 0 as expected
-        assert_equal(fsf.rtol, 0)
-        assert_equal(fsf.nb_iter, 0)
-
-    def test_errors(self):
-        # Test input mistakes from user
-        A = np.array([0,7,0,0,0,0,0,7/3.,0,0,0,0,0,0,0,0]).reshape(4,4)
-        B = np.array([0,0,0,0,1,0,0,1]).reshape(4,2)
-
-        #should fail as the method keyword is invalid
-        assert_raises(ValueError, place_poles, A, B, (-2.1,-2.2,-2.3,-2.4),
-                      method="foo")
-
-        #should fail as poles are not 1D array
-        assert_raises(ValueError, place_poles, A, B,
-                      np.array((-2.1,-2.2,-2.3,-2.4)).reshape(4,1))
-
-        #should fail as A is not a 2D array
-        assert_raises(ValueError, place_poles, A[:,:,np.newaxis], B,
-                      (-2.1,-2.2,-2.3,-2.4))
-
-        #should fail as B is not a 2D array
-        assert_raises(ValueError, place_poles, A, B[:,:,np.newaxis],
-                      (-2.1,-2.2,-2.3,-2.4))
-
-        #should fail as there are too many poles
-        assert_raises(ValueError, place_poles, A, B, (-2.1,-2.2,-2.3,-2.4,-3))
-
-        #should fail as there are not enough poles
-        assert_raises(ValueError, place_poles, A, B, (-2.1,-2.2,-2.3))
-
-        #should fail as the rtol is greater than 1
-        assert_raises(ValueError, place_poles, A, B, (-2.1,-2.2,-2.3,-2.4),
-                      rtol=42)
-
-        #should fail as maxiter is smaller than 1
-        assert_raises(ValueError, place_poles, A, B, (-2.1,-2.2,-2.3,-2.4),
-                      maxiter=-42)
-
-        # should fail as ndim(B) is two
-        assert_raises(ValueError, place_poles, A, B, (-2,-2,-2,-2))
-
-        #unctrollable system
-        assert_raises(ValueError, place_poles, np.ones((4,4)),
-                      np.ones((4,2)), (1,2,3,4))
-
-        # Should not raise ValueError as the poles can be placed but should
-        # raise a warning as the convergence is not reached
-        with warnings.catch_warnings(record=True) as w:
-            warnings.simplefilter("always")
-            fsf = place_poles(A, B, (-1,-2,-3,-4), rtol=1e-16, maxiter=42)
-            assert_(len(w) == 1)
-            assert_(issubclass(w[-1].category, UserWarning))
-            assert_("Convergence was not reached after maxiter iterations"
-                    in str(w[-1].message))
-            assert_equal(fsf.nb_iter, 42)
-
-        # should fail as a complex misses its conjugate
-        assert_raises(ValueError, place_poles, A, B, (-2+1j,-2-1j,-2+3j,-2))
-
-        # should fail as A is not square
-        assert_raises(ValueError, place_poles, A[:,:3], B, (-2,-3,-4,-5))
-
-        # should fail as B has not the same number of lines as A
-        assert_raises(ValueError, place_poles, A, B[:3,:], (-2,-3,-4,-5))
-
-        # should fail as KNV0 does not support complex poles
-        assert_raises(ValueError, place_poles, A, B,
-                      (-2+1j,-2-1j,-2+3j,-2-3j), method="KNV0")
-
-
-class TestSS2TF:
-
-    def check_matrix_shapes(self, p, q, r):
-        ss2tf(np.zeros((p, p)),
-              np.zeros((p, q)),
-              np.zeros((r, p)),
-              np.zeros((r, q)), 0)
-
-    def test_shapes(self):
-        # Each tuple holds:
-        #   number of states, number of inputs, number of outputs
-        for p, q, r in [(3, 3, 3), (1, 3, 3), (1, 1, 1)]:
-            self.check_matrix_shapes(p, q, r)
-
-    def test_basic(self):
-        # Test a round trip through tf2ss and ss2tf.
-        b = np.array([1.0, 3.0, 5.0])
-        a = np.array([1.0, 2.0, 3.0])
-
-        A, B, C, D = tf2ss(b, a)
-        assert_allclose(A, [[-2, -3], [1, 0]], rtol=1e-13)
-        assert_allclose(B, [[1], [0]], rtol=1e-13)
-        assert_allclose(C, [[1, 2]], rtol=1e-13)
-        assert_allclose(D, [[1]], rtol=1e-14)
-
-        bb, aa = ss2tf(A, B, C, D)
-        assert_allclose(bb[0], b, rtol=1e-13)
-        assert_allclose(aa, a, rtol=1e-13)
-
-    def test_zero_order_round_trip(self):
-        # See gh-5760
-        tf = (2, 1)
-        A, B, C, D = tf2ss(*tf)
-        assert_allclose(A, [[0]], rtol=1e-13)
-        assert_allclose(B, [[0]], rtol=1e-13)
-        assert_allclose(C, [[0]], rtol=1e-13)
-        assert_allclose(D, [[2]], rtol=1e-13)
-
-        num, den = ss2tf(A, B, C, D)
-        assert_allclose(num, [[2, 0]], rtol=1e-13)
-        assert_allclose(den, [1, 0], rtol=1e-13)
-
-        tf = ([[5], [2]], 1)
-        A, B, C, D = tf2ss(*tf)
-        assert_allclose(A, [[0]], rtol=1e-13)
-        assert_allclose(B, [[0]], rtol=1e-13)
-        assert_allclose(C, [[0], [0]], rtol=1e-13)
-        assert_allclose(D, [[5], [2]], rtol=1e-13)
-
-        num, den = ss2tf(A, B, C, D)
-        assert_allclose(num, [[5, 0], [2, 0]], rtol=1e-13)
-        assert_allclose(den, [1, 0], rtol=1e-13)
-
-    def test_simo_round_trip(self):
-        # See gh-5753
-        tf = ([[1, 2], [1, 1]], [1, 2])
-        A, B, C, D = tf2ss(*tf)
-        assert_allclose(A, [[-2]], rtol=1e-13)
-        assert_allclose(B, [[1]], rtol=1e-13)
-        assert_allclose(C, [[0], [-1]], rtol=1e-13)
-        assert_allclose(D, [[1], [1]], rtol=1e-13)
-
-        num, den = ss2tf(A, B, C, D)
-        assert_allclose(num, [[1, 2], [1, 1]], rtol=1e-13)
-        assert_allclose(den, [1, 2], rtol=1e-13)
-
-        tf = ([[1, 0, 1], [1, 1, 1]], [1, 1, 1])
-        A, B, C, D = tf2ss(*tf)
-        assert_allclose(A, [[-1, -1], [1, 0]], rtol=1e-13)
-        assert_allclose(B, [[1], [0]], rtol=1e-13)
-        assert_allclose(C, [[-1, 0], [0, 0]], rtol=1e-13)
-        assert_allclose(D, [[1], [1]], rtol=1e-13)
-
-        num, den = ss2tf(A, B, C, D)
-        assert_allclose(num, [[1, 0, 1], [1, 1, 1]], rtol=1e-13)
-        assert_allclose(den, [1, 1, 1], rtol=1e-13)
-
-        tf = ([[1, 2, 3], [1, 2, 3]], [1, 2, 3, 4])
-        A, B, C, D = tf2ss(*tf)
-        assert_allclose(A, [[-2, -3, -4], [1, 0, 0], [0, 1, 0]], rtol=1e-13)
-        assert_allclose(B, [[1], [0], [0]], rtol=1e-13)
-        assert_allclose(C, [[1, 2, 3], [1, 2, 3]], rtol=1e-13)
-        assert_allclose(D, [[0], [0]], rtol=1e-13)
-
-        num, den = ss2tf(A, B, C, D)
-        assert_allclose(num, [[0, 1, 2, 3], [0, 1, 2, 3]], rtol=1e-13)
-        assert_allclose(den, [1, 2, 3, 4], rtol=1e-13)
-
-        tf = (np.array([1, [2, 3]], dtype=object), [1, 6])
-        A, B, C, D = tf2ss(*tf)
-        assert_allclose(A, [[-6]], rtol=1e-31)
-        assert_allclose(B, [[1]], rtol=1e-31)
-        assert_allclose(C, [[1], [-9]], rtol=1e-31)
-        assert_allclose(D, [[0], [2]], rtol=1e-31)
-
-        num, den = ss2tf(A, B, C, D)
-        assert_allclose(num, [[0, 1], [2, 3]], rtol=1e-13)
-        assert_allclose(den, [1, 6], rtol=1e-13)
-
-        tf = (np.array([[1, -3], [1, 2, 3]], dtype=object), [1, 6, 5])
-        A, B, C, D = tf2ss(*tf)
-        assert_allclose(A, [[-6, -5], [1, 0]], rtol=1e-13)
-        assert_allclose(B, [[1], [0]], rtol=1e-13)
-        assert_allclose(C, [[1, -3], [-4, -2]], rtol=1e-13)
-        assert_allclose(D, [[0], [1]], rtol=1e-13)
-
-        num, den = ss2tf(A, B, C, D)
-        assert_allclose(num, [[0, 1, -3], [1, 2, 3]], rtol=1e-13)
-        assert_allclose(den, [1, 6, 5], rtol=1e-13)
-
-    def test_all_int_arrays(self):
-        A = [[0, 1, 0], [0, 0, 1], [-3, -4, -2]]
-        B = [[0], [0], [1]]
-        C = [[5, 1, 0]]
-        D = [[0]]
-        num, den = ss2tf(A, B, C, D)
-        assert_allclose(num, [[0.0, 0.0, 1.0, 5.0]], rtol=1e-13, atol=1e-14)
-        assert_allclose(den, [1.0, 2.0, 4.0, 3.0], rtol=1e-13)
-
-    def test_multioutput(self):
-        # Regression test for gh-2669.
-
-        # 4 states
-        A = np.array([[-1.0, 0.0, 1.0, 0.0],
-                      [-1.0, 0.0, 2.0, 0.0],
-                      [-4.0, 0.0, 3.0, 0.0],
-                      [-8.0, 8.0, 0.0, 4.0]])
-
-        # 1 input
-        B = np.array([[0.3],
-                      [0.0],
-                      [7.0],
-                      [0.0]])
-
-        # 3 outputs
-        C = np.array([[0.0, 1.0, 0.0, 0.0],
-                      [0.0, 0.0, 0.0, 1.0],
-                      [8.0, 8.0, 0.0, 0.0]])
-
-        D = np.array([[0.0],
-                      [0.0],
-                      [1.0]])
-
-        # Get the transfer functions for all the outputs in one call.
-        b_all, a = ss2tf(A, B, C, D)
-
-        # Get the transfer functions for each output separately.
-        b0, a0 = ss2tf(A, B, C[0], D[0])
-        b1, a1 = ss2tf(A, B, C[1], D[1])
-        b2, a2 = ss2tf(A, B, C[2], D[2])
-
-        # Check that we got the same results.
-        assert_allclose(a0, a, rtol=1e-13)
-        assert_allclose(a1, a, rtol=1e-13)
-        assert_allclose(a2, a, rtol=1e-13)
-        assert_allclose(b_all, np.vstack((b0, b1, b2)), rtol=1e-13, atol=1e-14)
-
-
-class TestLsim:
-    digits_accuracy = 7
-
-    def lti_nowarn(self, *args):
-        with suppress_warnings() as sup:
-            sup.filter(BadCoefficients)
-            system = lti(*args)
-        return system
-
-    def test_first_order(self):
-        # y' = -y
-        # exact solution is y(t) = exp(-t)
-        system = self.lti_nowarn(-1.,1.,1.,0.)
-        t = np.linspace(0,5)
-        u = np.zeros_like(t)
-        tout, y, x = lsim(system, u, t, X0=[1.0])
-        expected_x = np.exp(-tout)
-        assert_almost_equal(x, expected_x)
-        assert_almost_equal(y, expected_x)
-
-    def test_second_order(self):
-        t = np.linspace(0, 10, 1001)
-        u = np.zeros_like(t)
-        # Second order system with a repeated root: x''(t) + 2*x(t) + x(t) = 0.
-        # With initial conditions x(0)=1.0 and x'(t)=0.0, the exact solution
-        # is (1-t)*exp(-t).
-        system = self.lti_nowarn([1.0], [1.0, 2.0, 1.0])
-        tout, y, x = lsim(system, u, t, X0=[1.0, 0.0])
-        expected_x = (1.0 - tout) * np.exp(-tout)
-        assert_almost_equal(x[:, 0], expected_x)
-
-    def test_integrator(self):
-        # integrator: y' = u
-        system = self.lti_nowarn(0., 1., 1., 0.)
-        t = np.linspace(0,5)
-        u = t
-        tout, y, x = lsim(system, u, t)
-        expected_x = 0.5 * tout**2
-        assert_almost_equal(x, expected_x, decimal=self.digits_accuracy)
-        assert_almost_equal(y, expected_x, decimal=self.digits_accuracy)
-
-    def test_two_states(self):
-        # A system with two state variables, two inputs, and one output.
-        A = np.array([[-1.0, 0.0], [0.0, -2.0]])
-        B = np.array([[1.0, 0.0], [0.0, 1.0]])
-        C = np.array([1.0, 0.0])
-        D = np.zeros((1, 2))
-
-        system = self.lti_nowarn(A, B, C, D)
-
-        t = np.linspace(0, 10.0, 21)
-        u = np.zeros((len(t), 2))
-        tout, y, x = lsim(system, U=u, T=t, X0=[1.0, 1.0])
-        expected_y = np.exp(-tout)
-        expected_x0 = np.exp(-tout)
-        expected_x1 = np.exp(-2.0 * tout)
-        assert_almost_equal(y, expected_y)
-        assert_almost_equal(x[:, 0], expected_x0)
-        assert_almost_equal(x[:, 1], expected_x1)
-
-    def test_double_integrator(self):
-        # double integrator: y'' = 2u
-        A = np.array([[0., 1.], [0., 0.]])
-        B = np.array([[0.], [1.]])
-        C = np.array([[2., 0.]])
-        system = self.lti_nowarn(A, B, C, 0.)
-        t = np.linspace(0,5)
-        u = np.ones_like(t)
-        tout, y, x = lsim(system, u, t)
-        expected_x = np.transpose(np.array([0.5 * tout**2, tout]))
-        expected_y = tout**2
-        assert_almost_equal(x, expected_x, decimal=self.digits_accuracy)
-        assert_almost_equal(y, expected_y, decimal=self.digits_accuracy)
-
-    def test_jordan_block(self):
-        # Non-diagonalizable A matrix
-        #   x1' + x1 = x2
-        #   x2' + x2 = u
-        #   y = x1
-        # Exact solution with u = 0 is y(t) = t exp(-t)
-        A = np.array([[-1., 1.], [0., -1.]])
-        B = np.array([[0.], [1.]])
-        C = np.array([[1., 0.]])
-        system = self.lti_nowarn(A, B, C, 0.)
-        t = np.linspace(0,5)
-        u = np.zeros_like(t)
-        tout, y, x = lsim(system, u, t, X0=[0.0, 1.0])
-        expected_y = tout * np.exp(-tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_miso(self):
-        # A system with two state variables, two inputs, and one output.
-        A = np.array([[-1.0, 0.0], [0.0, -2.0]])
-        B = np.array([[1.0, 0.0], [0.0, 1.0]])
-        C = np.array([1.0, 0.0])
-        D = np.zeros((1,2))
-        system = self.lti_nowarn(A, B, C, D)
-
-        t = np.linspace(0, 5.0, 101)
-        u = np.zeros((len(t), 2))
-        tout, y, x = lsim(system, u, t, X0=[1.0, 1.0])
-        expected_y = np.exp(-tout)
-        expected_x0 = np.exp(-tout)
-        expected_x1 = np.exp(-2.0*tout)
-        assert_almost_equal(y, expected_y)
-        assert_almost_equal(x[:,0], expected_x0)
-        assert_almost_equal(x[:,1], expected_x1)
-
-    def test_nonzero_initial_time(self):
-        system = self.lti_nowarn(-1.,1.,1.,0.)
-        t = np.linspace(1,2)
-        u = np.zeros_like(t)
-        tout, y, x = lsim(system, u, t, X0=[1.0])
-        expected_y = np.exp(-tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_nonequal_timesteps(self):
-        t = np.array([0.0, 1.0, 1.0, 3.0])
-        u = np.array([0.0, 0.0, 1.0, 1.0])
-        # Simple integrator: x'(t) = u(t)
-        system = ([1.0], [1.0, 0.0])
-        with assert_raises(ValueError,
-                           match="Time steps are not equally spaced."):
-            tout, y, x = lsim(system, u, t, X0=[1.0])
-
-
-class TestImpulse:
-    def test_first_order(self):
-        # First order system: x'(t) + x(t) = u(t)
-        # Exact impulse response is x(t) = exp(-t).
-        system = ([1.0], [1.0,1.0])
-        tout, y = impulse(system)
-        expected_y = np.exp(-tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_first_order_fixed_time(self):
-        # Specify the desired time values for the output.
-
-        # First order system: x'(t) + x(t) = u(t)
-        # Exact impulse response is x(t) = exp(-t).
-        system = ([1.0], [1.0,1.0])
-        n = 21
-        t = np.linspace(0, 2.0, n)
-        tout, y = impulse(system, T=t)
-        assert_equal(tout.shape, (n,))
-        assert_almost_equal(tout, t)
-        expected_y = np.exp(-t)
-        assert_almost_equal(y, expected_y)
-
-    def test_first_order_initial(self):
-        # Specify an initial condition as a scalar.
-
-        # First order system: x'(t) + x(t) = u(t), x(0)=3.0
-        # Exact impulse response is x(t) = 4*exp(-t).
-        system = ([1.0], [1.0,1.0])
-        tout, y = impulse(system, X0=3.0)
-        expected_y = 4.0 * np.exp(-tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_first_order_initial_list(self):
-        # Specify an initial condition as a list.
-
-        # First order system: x'(t) + x(t) = u(t), x(0)=3.0
-        # Exact impulse response is x(t) = 4*exp(-t).
-        system = ([1.0], [1.0,1.0])
-        tout, y = impulse(system, X0=[3.0])
-        expected_y = 4.0 * np.exp(-tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_integrator(self):
-        # Simple integrator: x'(t) = u(t)
-        system = ([1.0], [1.0,0.0])
-        tout, y = impulse(system)
-        expected_y = np.ones_like(tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_second_order(self):
-        # Second order system with a repeated root:
-        #     x''(t) + 2*x(t) + x(t) = u(t)
-        # The exact impulse response is t*exp(-t).
-        system = ([1.0], [1.0, 2.0, 1.0])
-        tout, y = impulse(system)
-        expected_y = tout * np.exp(-tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_array_like(self):
-        # Test that function can accept sequences, scalars.
-        system = ([1.0], [1.0, 2.0, 1.0])
-        # TODO: add meaningful test where X0 is a list
-        tout, y = impulse(system, X0=[3], T=[5, 6])
-        tout, y = impulse(system, X0=[3], T=[5])
-
-    def test_array_like2(self):
-        system = ([1.0], [1.0, 2.0, 1.0])
-        tout, y = impulse(system, X0=3, T=5)
-
-
-class TestStep:
-    def test_first_order(self):
-        # First order system: x'(t) + x(t) = u(t)
-        # Exact step response is x(t) = 1 - exp(-t).
-        system = ([1.0], [1.0,1.0])
-        tout, y = step(system)
-        expected_y = 1.0 - np.exp(-tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_first_order_fixed_time(self):
-        # Specify the desired time values for the output.
-
-        # First order system: x'(t) + x(t) = u(t)
-        # Exact step response is x(t) = 1 - exp(-t).
-        system = ([1.0], [1.0,1.0])
-        n = 21
-        t = np.linspace(0, 2.0, n)
-        tout, y = step(system, T=t)
-        assert_equal(tout.shape, (n,))
-        assert_almost_equal(tout, t)
-        expected_y = 1 - np.exp(-t)
-        assert_almost_equal(y, expected_y)
-
-    def test_first_order_initial(self):
-        # Specify an initial condition as a scalar.
-
-        # First order system: x'(t) + x(t) = u(t), x(0)=3.0
-        # Exact step response is x(t) = 1 + 2*exp(-t).
-        system = ([1.0], [1.0,1.0])
-        tout, y = step(system, X0=3.0)
-        expected_y = 1 + 2.0*np.exp(-tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_first_order_initial_list(self):
-        # Specify an initial condition as a list.
-
-        # First order system: x'(t) + x(t) = u(t), x(0)=3.0
-        # Exact step response is x(t) = 1 + 2*exp(-t).
-        system = ([1.0], [1.0,1.0])
-        tout, y = step(system, X0=[3.0])
-        expected_y = 1 + 2.0*np.exp(-tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_integrator(self):
-        # Simple integrator: x'(t) = u(t)
-        # Exact step response is x(t) = t.
-        system = ([1.0],[1.0,0.0])
-        tout, y = step(system)
-        expected_y = tout
-        assert_almost_equal(y, expected_y)
-
-    def test_second_order(self):
-        # Second order system with a repeated root:
-        #     x''(t) + 2*x(t) + x(t) = u(t)
-        # The exact step response is 1 - (1 + t)*exp(-t).
-        system = ([1.0], [1.0, 2.0, 1.0])
-        tout, y = step(system)
-        expected_y = 1 - (1 + tout) * np.exp(-tout)
-        assert_almost_equal(y, expected_y)
-
-    def test_array_like(self):
-        # Test that function can accept sequences, scalars.
-        system = ([1.0], [1.0, 2.0, 1.0])
-        # TODO: add meaningful test where X0 is a list
-        tout, y = step(system, T=[5, 6])
-
-    def test_complex_input(self):
-        # Test that complex input doesn't raise an error.
-        # `step` doesn't seem to have been designed for complex input, but this
-        # works and may be used, so add regression test.  See gh-2654.
-        step(([], [-1], 1+0j))
-
-
-class TestLti:
-    def test_lti_instantiation(self):
-        # Test that lti can be instantiated with sequences, scalars.
-        # See PR-225.
-
-        # TransferFunction
-        s = lti([1], [-1])
-        assert_(isinstance(s, TransferFunction))
-        assert_(isinstance(s, lti))
-        assert_(not isinstance(s, dlti))
-        assert_(s.dt is None)
-
-        # ZerosPolesGain
-        s = lti(np.array([]), np.array([-1]), 1)
-        assert_(isinstance(s, ZerosPolesGain))
-        assert_(isinstance(s, lti))
-        assert_(not isinstance(s, dlti))
-        assert_(s.dt is None)
-
-        # StateSpace
-        s = lti([], [-1], 1)
-        s = lti([1], [-1], 1, 3)
-        assert_(isinstance(s, StateSpace))
-        assert_(isinstance(s, lti))
-        assert_(not isinstance(s, dlti))
-        assert_(s.dt is None)
-
-
-class TestStateSpace:
-    def test_initialization(self):
-        # Check that all initializations work
-        StateSpace(1, 1, 1, 1)
-        StateSpace([1], [2], [3], [4])
-        StateSpace(np.array([[1, 2], [3, 4]]), np.array([[1], [2]]),
-                   np.array([[1, 0]]), np.array([[0]]))
-
-    def test_conversion(self):
-        # Check the conversion functions
-        s = StateSpace(1, 2, 3, 4)
-        assert_(isinstance(s.to_ss(), StateSpace))
-        assert_(isinstance(s.to_tf(), TransferFunction))
-        assert_(isinstance(s.to_zpk(), ZerosPolesGain))
-
-        # Make sure copies work
-        assert_(StateSpace(s) is not s)
-        assert_(s.to_ss() is not s)
-
-    def test_properties(self):
-        # Test setters/getters for cross class properties.
-        # This implicitly tests to_tf() and to_zpk()
-
-        # Getters
-        s = StateSpace(1, 1, 1, 1)
-        assert_equal(s.poles, [1])
-        assert_equal(s.zeros, [0])
-        assert_(s.dt is None)
-
-    def test_operators(self):
-        # Test +/-/* operators on systems
-
-        class BadType:
-            pass
-
-        s1 = StateSpace(np.array([[-0.5, 0.7], [0.3, -0.8]]),
-                        np.array([[1], [0]]),
-                        np.array([[1, 0]]),
-                        np.array([[0]]),
-                        )
-
-        s2 = StateSpace(np.array([[-0.2, -0.1], [0.4, -0.1]]),
-                        np.array([[1], [0]]),
-                        np.array([[1, 0]]),
-                        np.array([[0]])
-                        )
-
-        s_discrete = s1.to_discrete(0.1)
-        s2_discrete = s2.to_discrete(0.2)
-        s3_discrete = s2.to_discrete(0.1)
-
-        # Impulse response
-        t = np.linspace(0, 1, 100)
-        u = np.zeros_like(t)
-        u[0] = 1
-
-        # Test multiplication
-        for typ in (int, float, complex, np.float32, np.complex128, np.array):
-            assert_allclose(lsim(typ(2) * s1, U=u, T=t)[1],
-                            typ(2) * lsim(s1, U=u, T=t)[1])
-
-            assert_allclose(lsim(s1 * typ(2), U=u, T=t)[1],
-                            lsim(s1, U=u, T=t)[1] * typ(2))
-
-            assert_allclose(lsim(s1 / typ(2), U=u, T=t)[1],
-                            lsim(s1, U=u, T=t)[1] / typ(2))
-
-            with assert_raises(TypeError):
-                typ(2) / s1
-
-        assert_allclose(lsim(s1 * 2, U=u, T=t)[1],
-                        lsim(s1, U=2 * u, T=t)[1])
-
-        assert_allclose(lsim(s1 * s2, U=u, T=t)[1],
-                        lsim(s1, U=lsim(s2, U=u, T=t)[1], T=t)[1],
-                        atol=1e-5)
-
-        with assert_raises(TypeError):
-            s1 / s1
-
-        with assert_raises(TypeError):
-            s1 * s_discrete
-
-        with assert_raises(TypeError):
-            # Check different discretization constants
-            s_discrete * s2_discrete
-
-        with assert_raises(TypeError):
-            s1 * BadType()
-
-        with assert_raises(TypeError):
-            BadType() * s1
-
-        with assert_raises(TypeError):
-            s1 / BadType()
-
-        with assert_raises(TypeError):
-            BadType() / s1
-
-        # Test addition
-        assert_allclose(lsim(s1 + 2, U=u, T=t)[1],
-                        2 * u + lsim(s1, U=u, T=t)[1])
-
-        # Check for dimension mismatch
-        with assert_raises(ValueError):
-            s1 + np.array([1, 2])
-
-        with assert_raises(ValueError):
-            np.array([1, 2]) + s1
-
-        with assert_raises(TypeError):
-            s1 + s_discrete
-
-        with assert_raises(ValueError):
-            s1 / np.array([[1, 2], [3, 4]])
-
-        with assert_raises(TypeError):
-            # Check different discretization constants
-            s_discrete + s2_discrete
-
-        with assert_raises(TypeError):
-            s1 + BadType()
-
-        with assert_raises(TypeError):
-            BadType() + s1
-
-        assert_allclose(lsim(s1 + s2, U=u, T=t)[1],
-                        lsim(s1, U=u, T=t)[1] + lsim(s2, U=u, T=t)[1])
-
-        # Test subtraction
-        assert_allclose(lsim(s1 - 2, U=u, T=t)[1],
-                        -2 * u + lsim(s1, U=u, T=t)[1])
-
-        assert_allclose(lsim(2 - s1, U=u, T=t)[1],
-                        2 * u + lsim(-s1, U=u, T=t)[1])
-
-        assert_allclose(lsim(s1 - s2, U=u, T=t)[1],
-                        lsim(s1, U=u, T=t)[1] - lsim(s2, U=u, T=t)[1])
-
-        with assert_raises(TypeError):
-            s1 - BadType()
-
-        with assert_raises(TypeError):
-            BadType() - s1
-
-        s = s_discrete + s3_discrete
-        assert_(s.dt == 0.1)
-
-        s = s_discrete * s3_discrete
-        assert_(s.dt == 0.1)
-
-        s = 3 * s_discrete
-        assert_(s.dt == 0.1)
-
-        s = -s_discrete
-        assert_(s.dt == 0.1)
-
-class TestTransferFunction:
-    def test_initialization(self):
-        # Check that all initializations work
-        TransferFunction(1, 1)
-        TransferFunction([1], [2])
-        TransferFunction(np.array([1]), np.array([2]))
-
-    def test_conversion(self):
-        # Check the conversion functions
-        s = TransferFunction([1, 0], [1, -1])
-        assert_(isinstance(s.to_ss(), StateSpace))
-        assert_(isinstance(s.to_tf(), TransferFunction))
-        assert_(isinstance(s.to_zpk(), ZerosPolesGain))
-
-        # Make sure copies work
-        assert_(TransferFunction(s) is not s)
-        assert_(s.to_tf() is not s)
-
-    def test_properties(self):
-        # Test setters/getters for cross class properties.
-        # This implicitly tests to_ss() and to_zpk()
-
-        # Getters
-        s = TransferFunction([1, 0], [1, -1])
-        assert_equal(s.poles, [1])
-        assert_equal(s.zeros, [0])
-
-
-class TestZerosPolesGain:
-    def test_initialization(self):
-        # Check that all initializations work
-        ZerosPolesGain(1, 1, 1)
-        ZerosPolesGain([1], [2], 1)
-        ZerosPolesGain(np.array([1]), np.array([2]), 1)
-
-    def test_conversion(self):
-        #Check the conversion functions
-        s = ZerosPolesGain(1, 2, 3)
-        assert_(isinstance(s.to_ss(), StateSpace))
-        assert_(isinstance(s.to_tf(), TransferFunction))
-        assert_(isinstance(s.to_zpk(), ZerosPolesGain))
-
-        # Make sure copies work
-        assert_(ZerosPolesGain(s) is not s)
-        assert_(s.to_zpk() is not s)
-
-
-class Test_abcd_normalize:
-    def setup_method(self):
-        self.A = np.array([[1.0, 2.0], [3.0, 4.0]])
-        self.B = np.array([[-1.0], [5.0]])
-        self.C = np.array([[4.0, 5.0]])
-        self.D = np.array([[2.5]])
-
-    def test_no_matrix_fails(self):
-        assert_raises(ValueError, abcd_normalize)
-
-    def test_A_nosquare_fails(self):
-        assert_raises(ValueError, abcd_normalize, [1, -1],
-                      self.B, self.C, self.D)
-
-    def test_AB_mismatch_fails(self):
-        assert_raises(ValueError, abcd_normalize, self.A, [-1, 5],
-                      self.C, self.D)
-
-    def test_AC_mismatch_fails(self):
-        assert_raises(ValueError, abcd_normalize, self.A, self.B,
-                      [[4.0], [5.0]], self.D)
-
-    def test_CD_mismatch_fails(self):
-        assert_raises(ValueError, abcd_normalize, self.A, self.B,
-                      self.C, [2.5, 0])
-
-    def test_BD_mismatch_fails(self):
-        assert_raises(ValueError, abcd_normalize, self.A, [-1, 5],
-                      self.C, self.D)
-
-    def test_normalized_matrices_unchanged(self):
-        A, B, C, D = abcd_normalize(self.A, self.B, self.C, self.D)
-        assert_equal(A, self.A)
-        assert_equal(B, self.B)
-        assert_equal(C, self.C)
-        assert_equal(D, self.D)
-
-    def test_shapes(self):
-        A, B, C, D = abcd_normalize(self.A, self.B, [1, 0], 0)
-        assert_equal(A.shape[0], A.shape[1])
-        assert_equal(A.shape[0], B.shape[0])
-        assert_equal(A.shape[0], C.shape[1])
-        assert_equal(C.shape[0], D.shape[0])
-        assert_equal(B.shape[1], D.shape[1])
-
-    def test_zero_dimension_is_not_none1(self):
-        B_ = np.zeros((2, 0))
-        D_ = np.zeros((0, 0))
-        A, B, C, D = abcd_normalize(A=self.A, B=B_, D=D_)
-        assert_equal(A, self.A)
-        assert_equal(B, B_)
-        assert_equal(D, D_)
-        assert_equal(C.shape[0], D_.shape[0])
-        assert_equal(C.shape[1], self.A.shape[0])
-
-    def test_zero_dimension_is_not_none2(self):
-        B_ = np.zeros((2, 0))
-        C_ = np.zeros((0, 2))
-        A, B, C, D = abcd_normalize(A=self.A, B=B_, C=C_)
-        assert_equal(A, self.A)
-        assert_equal(B, B_)
-        assert_equal(C, C_)
-        assert_equal(D.shape[0], C_.shape[0])
-        assert_equal(D.shape[1], B_.shape[1])
-
-    def test_missing_A(self):
-        A, B, C, D = abcd_normalize(B=self.B, C=self.C, D=self.D)
-        assert_equal(A.shape[0], A.shape[1])
-        assert_equal(A.shape[0], B.shape[0])
-        assert_equal(A.shape, (self.B.shape[0], self.B.shape[0]))
-
-    def test_missing_B(self):
-        A, B, C, D = abcd_normalize(A=self.A, C=self.C, D=self.D)
-        assert_equal(B.shape[0], A.shape[0])
-        assert_equal(B.shape[1], D.shape[1])
-        assert_equal(B.shape, (self.A.shape[0], self.D.shape[1]))
-
-    def test_missing_C(self):
-        A, B, C, D = abcd_normalize(A=self.A, B=self.B, D=self.D)
-        assert_equal(C.shape[0], D.shape[0])
-        assert_equal(C.shape[1], A.shape[0])
-        assert_equal(C.shape, (self.D.shape[0], self.A.shape[0]))
-
-    def test_missing_D(self):
-        A, B, C, D = abcd_normalize(A=self.A, B=self.B, C=self.C)
-        assert_equal(D.shape[0], C.shape[0])
-        assert_equal(D.shape[1], B.shape[1])
-        assert_equal(D.shape, (self.C.shape[0], self.B.shape[1]))
-
-    def test_missing_AB(self):
-        A, B, C, D = abcd_normalize(C=self.C, D=self.D)
-        assert_equal(A.shape[0], A.shape[1])
-        assert_equal(A.shape[0], B.shape[0])
-        assert_equal(B.shape[1], D.shape[1])
-        assert_equal(A.shape, (self.C.shape[1], self.C.shape[1]))
-        assert_equal(B.shape, (self.C.shape[1], self.D.shape[1]))
-
-    def test_missing_AC(self):
-        A, B, C, D = abcd_normalize(B=self.B, D=self.D)
-        assert_equal(A.shape[0], A.shape[1])
-        assert_equal(A.shape[0], B.shape[0])
-        assert_equal(C.shape[0], D.shape[0])
-        assert_equal(C.shape[1], A.shape[0])
-        assert_equal(A.shape, (self.B.shape[0], self.B.shape[0]))
-        assert_equal(C.shape, (self.D.shape[0], self.B.shape[0]))
-
-    def test_missing_AD(self):
-        A, B, C, D = abcd_normalize(B=self.B, C=self.C)
-        assert_equal(A.shape[0], A.shape[1])
-        assert_equal(A.shape[0], B.shape[0])
-        assert_equal(D.shape[0], C.shape[0])
-        assert_equal(D.shape[1], B.shape[1])
-        assert_equal(A.shape, (self.B.shape[0], self.B.shape[0]))
-        assert_equal(D.shape, (self.C.shape[0], self.B.shape[1]))
-
-    def test_missing_BC(self):
-        A, B, C, D = abcd_normalize(A=self.A, D=self.D)
-        assert_equal(B.shape[0], A.shape[0])
-        assert_equal(B.shape[1], D.shape[1])
-        assert_equal(C.shape[0], D.shape[0])
-        assert_equal(C.shape[1], A.shape[0])
-        assert_equal(B.shape, (self.A.shape[0], self.D.shape[1]))
-        assert_equal(C.shape, (self.D.shape[0], self.A.shape[0]))
-
-    def test_missing_ABC_fails(self):
-        assert_raises(ValueError, abcd_normalize, D=self.D)
-
-    def test_missing_BD_fails(self):
-        assert_raises(ValueError, abcd_normalize, A=self.A, C=self.C)
-
-    def test_missing_CD_fails(self):
-        assert_raises(ValueError, abcd_normalize, A=self.A, B=self.B)
-
-
-class Test_bode:
-
-    def test_01(self):
-        # Test bode() magnitude calculation (manual sanity check).
-        # 1st order low-pass filter: H(s) = 1 / (s + 1),
-        # cutoff: 1 rad/s, slope: -20 dB/decade
-        #   H(s=0.1) ~= 0 dB
-        #   H(s=1) ~= -3 dB
-        #   H(s=10) ~= -20 dB
-        #   H(s=100) ~= -40 dB
-        system = lti([1], [1, 1])
-        w = [0.1, 1, 10, 100]
-        w, mag, phase = bode(system, w=w)
-        expected_mag = [0, -3, -20, -40]
-        assert_almost_equal(mag, expected_mag, decimal=1)
-
-    def test_02(self):
-        # Test bode() phase calculation (manual sanity check).
-        # 1st order low-pass filter: H(s) = 1 / (s + 1),
-        #   angle(H(s=0.1)) ~= -5.7 deg
-        #   angle(H(s=1)) ~= -45 deg
-        #   angle(H(s=10)) ~= -84.3 deg
-        system = lti([1], [1, 1])
-        w = [0.1, 1, 10]
-        w, mag, phase = bode(system, w=w)
-        expected_phase = [-5.7, -45, -84.3]
-        assert_almost_equal(phase, expected_phase, decimal=1)
-
-    def test_03(self):
-        # Test bode() magnitude calculation.
-        # 1st order low-pass filter: H(s) = 1 / (s + 1)
-        system = lti([1], [1, 1])
-        w = [0.1, 1, 10, 100]
-        w, mag, phase = bode(system, w=w)
-        jw = w * 1j
-        y = np.polyval(system.num, jw) / np.polyval(system.den, jw)
-        expected_mag = 20.0 * np.log10(abs(y))
-        assert_almost_equal(mag, expected_mag)
-
-    def test_04(self):
-        # Test bode() phase calculation.
-        # 1st order low-pass filter: H(s) = 1 / (s + 1)
-        system = lti([1], [1, 1])
-        w = [0.1, 1, 10, 100]
-        w, mag, phase = bode(system, w=w)
-        jw = w * 1j
-        y = np.polyval(system.num, jw) / np.polyval(system.den, jw)
-        expected_phase = np.arctan2(y.imag, y.real) * 180.0 / np.pi
-        assert_almost_equal(phase, expected_phase)
-
-    def test_05(self):
-        # Test that bode() finds a reasonable frequency range.
-        # 1st order low-pass filter: H(s) = 1 / (s + 1)
-        system = lti([1], [1, 1])
-        n = 10
-        # Expected range is from 0.01 to 10.
-        expected_w = np.logspace(-2, 1, n)
-        w, mag, phase = bode(system, n=n)
-        assert_almost_equal(w, expected_w)
-
-    def test_06(self):
-        # Test that bode() doesn't fail on a system with a pole at 0.
-        # integrator, pole at zero: H(s) = 1 / s
-        system = lti([1], [1, 0])
-        w, mag, phase = bode(system, n=2)
-        assert_equal(w[0], 0.01)  # a fail would give not-a-number
-
-    def test_07(self):
-        # bode() should not fail on a system with pure imaginary poles.
-        # The test passes if bode doesn't raise an exception.
-        system = lti([1], [1, 0, 100])
-        w, mag, phase = bode(system, n=2)
-
-    def test_08(self):
-        # Test that bode() return continuous phase, issues/2331.
-        system = lti([], [-10, -30, -40, -60, -70], 1)
-        w, mag, phase = system.bode(w=np.logspace(-3, 40, 100))
-        assert_almost_equal(min(phase), -450, decimal=15)
-
-    def test_from_state_space(self):
-        # Ensure that bode works with a system that was created from the
-        # state space representation matrices A, B, C, D.  In this case,
-        # system.num will be a 2-D array with shape (1, n+1), where (n,n)
-        # is the shape of A.
-        # A Butterworth lowpass filter is used, so we know the exact
-        # frequency response.
-        a = np.array([1.0, 2.0, 2.0, 1.0])
-        A = linalg.companion(a).T
-        B = np.array([[0.0], [0.0], [1.0]])
-        C = np.array([[1.0, 0.0, 0.0]])
-        D = np.array([[0.0]])
-        with suppress_warnings() as sup:
-            sup.filter(BadCoefficients)
-            system = lti(A, B, C, D)
-            w, mag, phase = bode(system, n=100)
-
-        expected_magnitude = 20 * np.log10(np.sqrt(1.0 / (1.0 + w**6)))
-        assert_almost_equal(mag, expected_magnitude)
-
-
-class Test_freqresp:
-
-    def test_output_manual(self):
-        # Test freqresp() output calculation (manual sanity check).
-        # 1st order low-pass filter: H(s) = 1 / (s + 1),
-        #   re(H(s=0.1)) ~= 0.99
-        #   re(H(s=1)) ~= 0.5
-        #   re(H(s=10)) ~= 0.0099
-        system = lti([1], [1, 1])
-        w = [0.1, 1, 10]
-        w, H = freqresp(system, w=w)
-        expected_re = [0.99, 0.5, 0.0099]
-        expected_im = [-0.099, -0.5, -0.099]
-        assert_almost_equal(H.real, expected_re, decimal=1)
-        assert_almost_equal(H.imag, expected_im, decimal=1)
-
-    def test_output(self):
-        # Test freqresp() output calculation.
-        # 1st order low-pass filter: H(s) = 1 / (s + 1)
-        system = lti([1], [1, 1])
-        w = [0.1, 1, 10, 100]
-        w, H = freqresp(system, w=w)
-        s = w * 1j
-        expected = np.polyval(system.num, s) / np.polyval(system.den, s)
-        assert_almost_equal(H.real, expected.real)
-        assert_almost_equal(H.imag, expected.imag)
-
-    def test_freq_range(self):
-        # Test that freqresp() finds a reasonable frequency range.
-        # 1st order low-pass filter: H(s) = 1 / (s + 1)
-        # Expected range is from 0.01 to 10.
-        system = lti([1], [1, 1])
-        n = 10
-        expected_w = np.logspace(-2, 1, n)
-        w, H = freqresp(system, n=n)
-        assert_almost_equal(w, expected_w)
-
-    def test_pole_zero(self):
-        # Test that freqresp() doesn't fail on a system with a pole at 0.
-        # integrator, pole at zero: H(s) = 1 / s
-        system = lti([1], [1, 0])
-        w, H = freqresp(system, n=2)
-        assert_equal(w[0], 0.01)  # a fail would give not-a-number
-
-    def test_from_state_space(self):
-        # Ensure that freqresp works with a system that was created from the
-        # state space representation matrices A, B, C, D.  In this case,
-        # system.num will be a 2-D array with shape (1, n+1), where (n,n) is
-        # the shape of A.
-        # A Butterworth lowpass filter is used, so we know the exact
-        # frequency response.
-        a = np.array([1.0, 2.0, 2.0, 1.0])
-        A = linalg.companion(a).T
-        B = np.array([[0.0],[0.0],[1.0]])
-        C = np.array([[1.0, 0.0, 0.0]])
-        D = np.array([[0.0]])
-        with suppress_warnings() as sup:
-            sup.filter(BadCoefficients)
-            system = lti(A, B, C, D)
-            w, H = freqresp(system, n=100)
-        s = w * 1j
-        expected = (1.0 / (1.0 + 2*s + 2*s**2 + s**3))
-        assert_almost_equal(H.real, expected.real)
-        assert_almost_equal(H.imag, expected.imag)
-
-    def test_from_zpk(self):
-        # 4th order low-pass filter: H(s) = 1 / (s + 1)
-        system = lti([],[-1]*4,[1])
-        w = [0.1, 1, 10, 100]
-        w, H = freqresp(system, w=w)
-        s = w * 1j
-        expected = 1 / (s + 1)**4
-        assert_almost_equal(H.real, expected.real)
-        assert_almost_equal(H.imag, expected.imag)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_max_len_seq.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_max_len_seq.py
deleted file mode 100644
index c4e79969974fb4ba376bbf4d935a7a94e3064a5a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_max_len_seq.py
+++ /dev/null
@@ -1,65 +0,0 @@
-import numpy as np
-from numpy.testing import assert_allclose, assert_array_equal
-from pytest import raises as assert_raises
-
-from numpy.fft import fft, ifft
-
-from scipy.signal import max_len_seq
-
-
-class TestMLS:
-
-    def test_mls_inputs(self):
-        # can't all be zero state
-        assert_raises(ValueError, max_len_seq,
-                      10, state=np.zeros(10))
-        # wrong size state
-        assert_raises(ValueError, max_len_seq, 10,
-                      state=np.ones(3))
-        # wrong length
-        assert_raises(ValueError, max_len_seq, 10, length=-1)
-        assert_array_equal(max_len_seq(10, length=0)[0], [])
-        # unknown taps
-        assert_raises(ValueError, max_len_seq, 64)
-        # bad taps
-        assert_raises(ValueError, max_len_seq, 10, taps=[-1, 1])
-
-    def test_mls_output(self):
-        # define some alternate working taps
-        alt_taps = {2: [1], 3: [2], 4: [3], 5: [4, 3, 2], 6: [5, 4, 1], 7: [4],
-                    8: [7, 5, 3]}
-        # assume the other bit levels work, too slow to test higher orders...
-        for nbits in range(2, 8):
-            for state in [None, np.round(np.random.rand(nbits))]:
-                for taps in [None, alt_taps[nbits]]:
-                    if state is not None and np.all(state == 0):
-                        state[0] = 1  # they can't all be zero
-                    orig_m = max_len_seq(nbits, state=state,
-                                         taps=taps)[0]
-                    m = 2. * orig_m - 1.  # convert to +/- 1 representation
-                    # First, make sure we got all 1's or -1
-                    err_msg = "mls had non binary terms"
-                    assert_array_equal(np.abs(m), np.ones_like(m),
-                                       err_msg=err_msg)
-                    # Test via circular cross-correlation, which is just mult.
-                    # in the frequency domain with one signal conjugated
-                    tester = np.real(ifft(fft(m) * np.conj(fft(m))))
-                    out_len = 2**nbits - 1
-                    # impulse amplitude == test_len
-                    err_msg = "mls impulse has incorrect value"
-                    assert_allclose(tester[0], out_len, err_msg=err_msg)
-                    # steady-state is -1
-                    err_msg = "mls steady-state has incorrect value"
-                    assert_allclose(tester[1:], np.full(out_len - 1, -1),
-                                    err_msg=err_msg)
-                    # let's do the split thing using a couple options
-                    for n in (1, 2**(nbits - 1)):
-                        m1, s1 = max_len_seq(nbits, state=state, taps=taps,
-                                             length=n)
-                        m2, s2 = max_len_seq(nbits, state=s1, taps=taps,
-                                             length=1)
-                        m3, s3 = max_len_seq(nbits, state=s2, taps=taps,
-                                             length=out_len - n - 1)
-                        new_m = np.concatenate((m1, m2, m3))
-                        assert_array_equal(orig_m, new_m)
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_peak_finding.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_peak_finding.py
deleted file mode 100644
index 77380c5496364745775b0a3b6fcf149e72722398..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_peak_finding.py
+++ /dev/null
@@ -1,891 +0,0 @@
-import copy
-
-import numpy as np
-from numpy.testing import (
-    assert_,
-    assert_equal,
-    assert_allclose,
-    assert_array_equal
-)
-import pytest
-from pytest import raises, warns
-
-from scipy.signal._peak_finding import (
-    argrelmax,
-    argrelmin,
-    peak_prominences,
-    peak_widths,
-    _unpack_condition_args,
-    find_peaks,
-    find_peaks_cwt,
-    _identify_ridge_lines
-)
-from scipy.signal.windows import gaussian
-from scipy.signal._peak_finding_utils import _local_maxima_1d, PeakPropertyWarning
-
-
-def _gen_gaussians(center_locs, sigmas, total_length):
-    xdata = np.arange(0, total_length).astype(float)
-    out_data = np.zeros(total_length, dtype=float)
-    for ind, sigma in enumerate(sigmas):
-        tmp = (xdata - center_locs[ind]) / sigma
-        out_data += np.exp(-(tmp**2))
-    return out_data
-
-
-def _gen_gaussians_even(sigmas, total_length):
-    num_peaks = len(sigmas)
-    delta = total_length / (num_peaks + 1)
-    center_locs = np.linspace(delta, total_length - delta, num=num_peaks).astype(int)
-    out_data = _gen_gaussians(center_locs, sigmas, total_length)
-    return out_data, center_locs
-
-
-def _gen_ridge_line(start_locs, max_locs, length, distances, gaps):
-    """
-    Generate coordinates for a ridge line.
-
-    Will be a series of coordinates, starting a start_loc (length 2).
-    The maximum distance between any adjacent columns will be
-    `max_distance`, the max distance between adjacent rows
-    will be `map_gap'.
-
-    `max_locs` should be the size of the intended matrix. The
-    ending coordinates are guaranteed to be less than `max_locs`,
-    although they may not approach `max_locs` at all.
-    """
-
-    def keep_bounds(num, max_val):
-        out = max(num, 0)
-        out = min(out, max_val)
-        return out
-
-    gaps = copy.deepcopy(gaps)
-    distances = copy.deepcopy(distances)
-
-    locs = np.zeros([length, 2], dtype=int)
-    locs[0, :] = start_locs
-    total_length = max_locs[0] - start_locs[0] - sum(gaps)
-    if total_length < length:
-        raise ValueError('Cannot generate ridge line according to constraints')
-    dist_int = length / len(distances) - 1
-    gap_int = length / len(gaps) - 1
-    for ind in range(1, length):
-        nextcol = locs[ind - 1, 1]
-        nextrow = locs[ind - 1, 0] + 1
-        if (ind % dist_int == 0) and (len(distances) > 0):
-            nextcol += ((-1)**ind)*distances.pop()
-        if (ind % gap_int == 0) and (len(gaps) > 0):
-            nextrow += gaps.pop()
-        nextrow = keep_bounds(nextrow, max_locs[0])
-        nextcol = keep_bounds(nextcol, max_locs[1])
-        locs[ind, :] = [nextrow, nextcol]
-
-    return [locs[:, 0], locs[:, 1]]
-
-
-class TestLocalMaxima1d:
-
-    def test_empty(self):
-        """Test with empty signal."""
-        x = np.array([], dtype=np.float64)
-        for array in _local_maxima_1d(x):
-            assert_equal(array, np.array([]))
-            assert_(array.base is None)
-
-    def test_linear(self):
-        """Test with linear signal."""
-        x = np.linspace(0, 100)
-        for array in _local_maxima_1d(x):
-            assert_equal(array, np.array([]))
-            assert_(array.base is None)
-
-    def test_simple(self):
-        """Test with simple signal."""
-        x = np.linspace(-10, 10, 50)
-        x[2::3] += 1
-        expected = np.arange(2, 50, 3)
-        for array in _local_maxima_1d(x):
-            # For plateaus of size 1, the edges are identical with the
-            # midpoints
-            assert_equal(array, expected)
-            assert_(array.base is None)
-
-    def test_flat_maxima(self):
-        """Test if flat maxima are detected correctly."""
-        x = np.array([-1.3, 0, 1, 0, 2, 2, 0, 3, 3, 3, 2.99, 4, 4, 4, 4, -10,
-                      -5, -5, -5, -5, -5, -10])
-        midpoints, left_edges, right_edges = _local_maxima_1d(x)
-        assert_equal(midpoints, np.array([2, 4, 8, 12, 18]))
-        assert_equal(left_edges, np.array([2, 4, 7, 11, 16]))
-        assert_equal(right_edges, np.array([2, 5, 9, 14, 20]))
-
-    @pytest.mark.parametrize('x', [
-        np.array([1., 0, 2]),
-        np.array([3., 3, 0, 4, 4]),
-        np.array([5., 5, 5, 0, 6, 6, 6]),
-    ])
-    def test_signal_edges(self, x):
-        """Test if behavior on signal edges is correct."""
-        for array in _local_maxima_1d(x):
-            assert_equal(array, np.array([]))
-            assert_(array.base is None)
-
-    def test_exceptions(self):
-        """Test input validation and raised exceptions."""
-        with raises(ValueError, match="wrong number of dimensions"):
-            _local_maxima_1d(np.ones((1, 1)))
-        with raises(ValueError, match="expected 'const float64_t'"):
-            _local_maxima_1d(np.ones(1, dtype=int))
-        with raises(TypeError, match="list"):
-            _local_maxima_1d([1., 2.])
-        with raises(TypeError, match="'x' must not be None"):
-            _local_maxima_1d(None)
-
-
-class TestRidgeLines:
-
-    def test_empty(self):
-        test_matr = np.zeros([20, 100])
-        lines = _identify_ridge_lines(test_matr, np.full(20, 2), 1)
-        assert_(len(lines) == 0)
-
-    def test_minimal(self):
-        test_matr = np.zeros([20, 100])
-        test_matr[0, 10] = 1
-        lines = _identify_ridge_lines(test_matr, np.full(20, 2), 1)
-        assert_(len(lines) == 1)
-
-        test_matr = np.zeros([20, 100])
-        test_matr[0:2, 10] = 1
-        lines = _identify_ridge_lines(test_matr, np.full(20, 2), 1)
-        assert_(len(lines) == 1)
-
-    def test_single_pass(self):
-        distances = [0, 1, 2, 5]
-        gaps = [0, 1, 2, 0, 1]
-        test_matr = np.zeros([20, 50]) + 1e-12
-        length = 12
-        line = _gen_ridge_line([0, 25], test_matr.shape, length, distances, gaps)
-        test_matr[line[0], line[1]] = 1
-        max_distances = np.full(20, max(distances))
-        identified_lines = _identify_ridge_lines(test_matr,
-                                                 max_distances,
-                                                 max(gaps) + 1)
-        assert_array_equal(identified_lines, [line])
-
-    def test_single_bigdist(self):
-        distances = [0, 1, 2, 5]
-        gaps = [0, 1, 2, 4]
-        test_matr = np.zeros([20, 50])
-        length = 12
-        line = _gen_ridge_line([0, 25], test_matr.shape, length, distances, gaps)
-        test_matr[line[0], line[1]] = 1
-        max_dist = 3
-        max_distances = np.full(20, max_dist)
-        #This should get 2 lines, since the distance is too large
-        identified_lines = _identify_ridge_lines(test_matr,
-                                                 max_distances,
-                                                 max(gaps) + 1)
-        assert_(len(identified_lines) == 2)
-
-        for iline in identified_lines:
-            adists = np.diff(iline[1])
-            np.testing.assert_array_less(np.abs(adists), max_dist)
-
-            agaps = np.diff(iline[0])
-            np.testing.assert_array_less(np.abs(agaps), max(gaps) + 0.1)
-
-    def test_single_biggap(self):
-        distances = [0, 1, 2, 5]
-        max_gap = 3
-        gaps = [0, 4, 2, 1]
-        test_matr = np.zeros([20, 50])
-        length = 12
-        line = _gen_ridge_line([0, 25], test_matr.shape, length, distances, gaps)
-        test_matr[line[0], line[1]] = 1
-        max_dist = 6
-        max_distances = np.full(20, max_dist)
-        #This should get 2 lines, since the gap is too large
-        identified_lines = _identify_ridge_lines(test_matr, max_distances, max_gap)
-        assert_(len(identified_lines) == 2)
-
-        for iline in identified_lines:
-            adists = np.diff(iline[1])
-            np.testing.assert_array_less(np.abs(adists), max_dist)
-
-            agaps = np.diff(iline[0])
-            np.testing.assert_array_less(np.abs(agaps), max(gaps) + 0.1)
-
-    def test_single_biggaps(self):
-        distances = [0]
-        max_gap = 1
-        gaps = [3, 6]
-        test_matr = np.zeros([50, 50])
-        length = 30
-        line = _gen_ridge_line([0, 25], test_matr.shape, length, distances, gaps)
-        test_matr[line[0], line[1]] = 1
-        max_dist = 1
-        max_distances = np.full(50, max_dist)
-        #This should get 3 lines, since the gaps are too large
-        identified_lines = _identify_ridge_lines(test_matr, max_distances, max_gap)
-        assert_(len(identified_lines) == 3)
-
-        for iline in identified_lines:
-            adists = np.diff(iline[1])
-            np.testing.assert_array_less(np.abs(adists), max_dist)
-
-            agaps = np.diff(iline[0])
-            np.testing.assert_array_less(np.abs(agaps), max(gaps) + 0.1)
-
-
-class TestArgrel:
-
-    def test_empty(self):
-        # Regression test for gh-2832.
-        # When there are no relative extrema, make sure that
-        # the number of empty arrays returned matches the
-        # dimension of the input.
-
-        empty_array = np.array([], dtype=int)
-
-        z1 = np.zeros(5)
-
-        i = argrelmin(z1)
-        assert_equal(len(i), 1)
-        assert_array_equal(i[0], empty_array)
-
-        z2 = np.zeros((3,5))
-
-        row, col = argrelmin(z2, axis=0)
-        assert_array_equal(row, empty_array)
-        assert_array_equal(col, empty_array)
-
-        row, col = argrelmin(z2, axis=1)
-        assert_array_equal(row, empty_array)
-        assert_array_equal(col, empty_array)
-
-    def test_basic(self):
-        # Note: the docstrings for the argrel{min,max,extrema} functions
-        # do not give a guarantee of the order of the indices, so we'll
-        # sort them before testing.
-
-        x = np.array([[1, 2, 2, 3, 2],
-                      [2, 1, 2, 2, 3],
-                      [3, 2, 1, 2, 2],
-                      [2, 3, 2, 1, 2],
-                      [1, 2, 3, 2, 1]])
-
-        row, col = argrelmax(x, axis=0)
-        order = np.argsort(row)
-        assert_equal(row[order], [1, 2, 3])
-        assert_equal(col[order], [4, 0, 1])
-
-        row, col = argrelmax(x, axis=1)
-        order = np.argsort(row)
-        assert_equal(row[order], [0, 3, 4])
-        assert_equal(col[order], [3, 1, 2])
-
-        row, col = argrelmin(x, axis=0)
-        order = np.argsort(row)
-        assert_equal(row[order], [1, 2, 3])
-        assert_equal(col[order], [1, 2, 3])
-
-        row, col = argrelmin(x, axis=1)
-        order = np.argsort(row)
-        assert_equal(row[order], [1, 2, 3])
-        assert_equal(col[order], [1, 2, 3])
-
-    def test_highorder(self):
-        order = 2
-        sigmas = [1.0, 2.0, 10.0, 5.0, 15.0]
-        test_data, act_locs = _gen_gaussians_even(sigmas, 500)
-        test_data[act_locs + order] = test_data[act_locs]*0.99999
-        test_data[act_locs - order] = test_data[act_locs]*0.99999
-        rel_max_locs = argrelmax(test_data, order=order, mode='clip')[0]
-
-        assert_(len(rel_max_locs) == len(act_locs))
-        assert_((rel_max_locs == act_locs).all())
-
-    def test_2d_gaussians(self):
-        sigmas = [1.0, 2.0, 10.0]
-        test_data, act_locs = _gen_gaussians_even(sigmas, 100)
-        rot_factor = 20
-        rot_range = np.arange(0, len(test_data)) - rot_factor
-        test_data_2 = np.vstack([test_data, test_data[rot_range]])
-        rel_max_rows, rel_max_cols = argrelmax(test_data_2, axis=1, order=1)
-
-        for rw in range(0, test_data_2.shape[0]):
-            inds = (rel_max_rows == rw)
-
-            assert_(len(rel_max_cols[inds]) == len(act_locs))
-            assert_((act_locs == (rel_max_cols[inds] - rot_factor*rw)).all())
-
-
-class TestPeakProminences:
-
-    def test_empty(self):
-        """
-        Test if an empty array is returned if no peaks are provided.
-        """
-        out = peak_prominences([1, 2, 3], [])
-        for arr, dtype in zip(out, [np.float64, np.intp, np.intp]):
-            assert_(arr.size == 0)
-            assert_(arr.dtype == dtype)
-
-        out = peak_prominences([], [])
-        for arr, dtype in zip(out, [np.float64, np.intp, np.intp]):
-            assert_(arr.size == 0)
-            assert_(arr.dtype == dtype)
-
-    def test_basic(self):
-        """
-        Test if height of prominences is correctly calculated in signal with
-        rising baseline (peak widths are 1 sample).
-        """
-        # Prepare basic signal
-        x = np.array([-1, 1.2, 1.2, 1, 3.2, 1.3, 2.88, 2.1])
-        peaks = np.array([1, 2, 4, 6])
-        lbases = np.array([0, 0, 0, 5])
-        rbases = np.array([3, 3, 5, 7])
-        proms = x[peaks] - np.max([x[lbases], x[rbases]], axis=0)
-        # Test if calculation matches handcrafted result
-        out = peak_prominences(x, peaks)
-        assert_equal(out[0], proms)
-        assert_equal(out[1], lbases)
-        assert_equal(out[2], rbases)
-
-    def test_edge_cases(self):
-        """
-        Test edge cases.
-        """
-        # Peaks have same height, prominence and bases
-        x = [0, 2, 1, 2, 1, 2, 0]
-        peaks = [1, 3, 5]
-        proms, lbases, rbases = peak_prominences(x, peaks)
-        assert_equal(proms, [2, 2, 2])
-        assert_equal(lbases, [0, 0, 0])
-        assert_equal(rbases, [6, 6, 6])
-
-        # Peaks have same height & prominence but different bases
-        x = [0, 1, 0, 1, 0, 1, 0]
-        peaks = np.array([1, 3, 5])
-        proms, lbases, rbases = peak_prominences(x, peaks)
-        assert_equal(proms, [1, 1, 1])
-        assert_equal(lbases, peaks - 1)
-        assert_equal(rbases, peaks + 1)
-
-    def test_non_contiguous(self):
-        """
-        Test with non-C-contiguous input arrays.
-        """
-        x = np.repeat([-9, 9, 9, 0, 3, 1], 2)
-        peaks = np.repeat([1, 2, 4], 2)
-        proms, lbases, rbases = peak_prominences(x[::2], peaks[::2])
-        assert_equal(proms, [9, 9, 2])
-        assert_equal(lbases, [0, 0, 3])
-        assert_equal(rbases, [3, 3, 5])
-
-    def test_wlen(self):
-        """
-        Test if wlen actually shrinks the evaluation range correctly.
-        """
-        x = [0, 1, 2, 3, 1, 0, -1]
-        peak = [3]
-        # Test rounding behavior of wlen
-        assert_equal(peak_prominences(x, peak), [3., 0, 6])
-        for wlen, i in [(8, 0), (7, 0), (6, 0), (5, 1), (3.2, 1), (3, 2), (1.1, 2)]:
-            assert_equal(peak_prominences(x, peak, wlen), [3. - i, 0 + i, 6 - i])
-
-    def test_exceptions(self):
-        """
-        Verify that exceptions and warnings are raised.
-        """
-        # x with dimension > 1
-        with raises(ValueError, match='1-D array'):
-            peak_prominences([[0, 1, 1, 0]], [1, 2])
-        # peaks with dimension > 1
-        with raises(ValueError, match='1-D array'):
-            peak_prominences([0, 1, 1, 0], [[1, 2]])
-        # x with dimension < 1
-        with raises(ValueError, match='1-D array'):
-            peak_prominences(3, [0,])
-
-        # empty x with supplied
-        with raises(ValueError, match='not a valid index'):
-            peak_prominences([], [0])
-        # invalid indices with non-empty x
-        for p in [-100, -1, 3, 1000]:
-            with raises(ValueError, match='not a valid index'):
-                peak_prominences([1, 0, 2], [p])
-
-        # peaks is not cast-able to np.intp
-        with raises(TypeError, match='cannot safely cast'):
-            peak_prominences([0, 1, 1, 0], [1.1, 2.3])
-
-        # wlen < 3
-        with raises(ValueError, match='wlen'):
-            peak_prominences(np.arange(10), [3, 5], wlen=1)
-
-    def test_warnings(self):
-        """
-        Verify that appropriate warnings are raised.
-        """
-        msg = "some peaks have a prominence of 0"
-        for p in [0, 1, 2]:
-            with warns(PeakPropertyWarning, match=msg):
-                peak_prominences([1, 0, 2], [p,])
-        with warns(PeakPropertyWarning, match=msg):
-            peak_prominences([0, 1, 1, 1, 0], [2], wlen=2)
-
-
-class TestPeakWidths:
-
-    def test_empty(self):
-        """
-        Test if an empty array is returned if no peaks are provided.
-        """
-        widths = peak_widths([], [])[0]
-        assert_(isinstance(widths, np.ndarray))
-        assert_equal(widths.size, 0)
-        widths = peak_widths([1, 2, 3], [])[0]
-        assert_(isinstance(widths, np.ndarray))
-        assert_equal(widths.size, 0)
-        out = peak_widths([], [])
-        for arr in out:
-            assert_(isinstance(arr, np.ndarray))
-            assert_equal(arr.size, 0)
-
-    @pytest.mark.filterwarnings("ignore:some peaks have a width of 0")
-    def test_basic(self):
-        """
-        Test a simple use case with easy to verify results at different relative
-        heights.
-        """
-        x = np.array([1, 0, 1, 2, 1, 0, -1])
-        prominence = 2
-        for rel_height, width_true, lip_true, rip_true in [
-            (0., 0., 3., 3.),  # raises warning
-            (0.25, 1., 2.5, 3.5),
-            (0.5, 2., 2., 4.),
-            (0.75, 3., 1.5, 4.5),
-            (1., 4., 1., 5.),
-            (2., 5., 1., 6.),
-            (3., 5., 1., 6.)
-        ]:
-            width_calc, height, lip_calc, rip_calc = peak_widths(
-                x, [3], rel_height)
-            assert_allclose(width_calc, width_true)
-            assert_allclose(height, 2 - rel_height * prominence)
-            assert_allclose(lip_calc, lip_true)
-            assert_allclose(rip_calc, rip_true)
-
-    def test_non_contiguous(self):
-        """
-        Test with non-C-contiguous input arrays.
-        """
-        x = np.repeat([0, 100, 50], 4)
-        peaks = np.repeat([1], 3)
-        result = peak_widths(x[::4], peaks[::3])
-        assert_equal(result, [0.75, 75, 0.75, 1.5])
-
-    def test_exceptions(self):
-        """
-        Verify that argument validation works as intended.
-        """
-        with raises(ValueError, match='1-D array'):
-            # x with dimension > 1
-            peak_widths(np.zeros((3, 4)), np.ones(3))
-        with raises(ValueError, match='1-D array'):
-            # x with dimension < 1
-            peak_widths(3, [0])
-        with raises(ValueError, match='1-D array'):
-            # peaks with dimension > 1
-            peak_widths(np.arange(10), np.ones((3, 2), dtype=np.intp))
-        with raises(ValueError, match='1-D array'):
-            # peaks with dimension < 1
-            peak_widths(np.arange(10), 3)
-        with raises(ValueError, match='not a valid index'):
-            # peak pos exceeds x.size
-            peak_widths(np.arange(10), [8, 11])
-        with raises(ValueError, match='not a valid index'):
-            # empty x with peaks supplied
-            peak_widths([], [1, 2])
-        with raises(TypeError, match='cannot safely cast'):
-            # peak cannot be safely casted to intp
-            peak_widths(np.arange(10), [1.1, 2.3])
-        with raises(ValueError, match='rel_height'):
-            # rel_height is < 0
-            peak_widths([0, 1, 0, 1, 0], [1, 3], rel_height=-1)
-        with raises(TypeError, match='None'):
-            # prominence data contains None
-            peak_widths([1, 2, 1], [1], prominence_data=(None, None, None))
-
-    def test_warnings(self):
-        """
-        Verify that appropriate warnings are raised.
-        """
-        msg = "some peaks have a width of 0"
-        with warns(PeakPropertyWarning, match=msg):
-            # Case: rel_height is 0
-            peak_widths([0, 1, 0], [1], rel_height=0)
-        with warns(PeakPropertyWarning, match=msg):
-            # Case: prominence is 0 and bases are identical
-            peak_widths(
-                [0, 1, 1, 1, 0], [2],
-                prominence_data=(np.array([0.], np.float64),
-                                 np.array([2], np.intp),
-                                 np.array([2], np.intp))
-            )
-
-    def test_mismatching_prominence_data(self):
-        """Test with mismatching peak and / or prominence data."""
-        x = [0, 1, 0]
-        peak = [1]
-        for i, (prominences, left_bases, right_bases) in enumerate([
-            ((1.,), (-1,), (2,)),  # left base not in x
-            ((1.,), (0,), (3,)),  # right base not in x
-            ((1.,), (2,), (0,)),  # swapped bases same as peak
-            ((1., 1.), (0, 0), (2, 2)),  # array shapes don't match peaks
-            ((1., 1.), (0,), (2,)),  # arrays with different shapes
-            ((1.,), (0, 0), (2,)),  # arrays with different shapes
-            ((1.,), (0,), (2, 2))  # arrays with different shapes
-        ]):
-            # Make sure input is matches output of signal.peak_prominences
-            prominence_data = (np.array(prominences, dtype=np.float64),
-                               np.array(left_bases, dtype=np.intp),
-                               np.array(right_bases, dtype=np.intp))
-            # Test for correct exception
-            if i < 3:
-                match = "prominence data is invalid for peak"
-            else:
-                match = "arrays in `prominence_data` must have the same shape"
-            with raises(ValueError, match=match):
-                peak_widths(x, peak, prominence_data=prominence_data)
-
-    @pytest.mark.filterwarnings("ignore:some peaks have a width of 0")
-    def test_intersection_rules(self):
-        """Test if x == eval_height counts as an intersection."""
-        # Flatt peak with two possible intersection points if evaluated at 1
-        x = [0, 1, 2, 1, 3, 3, 3, 1, 2, 1, 0]
-        # relative height is 0 -> width is 0 as well, raises warning
-        assert_allclose(peak_widths(x, peaks=[5], rel_height=0),
-                        [(0.,), (3.,), (5.,), (5.,)])
-        # width_height == x counts as intersection -> nearest 1 is chosen
-        assert_allclose(peak_widths(x, peaks=[5], rel_height=2/3),
-                        [(4.,), (1.,), (3.,), (7.,)])
-
-
-def test_unpack_condition_args():
-    """
-    Verify parsing of condition arguments for `scipy.signal.find_peaks` function.
-    """
-    x = np.arange(10)
-    amin_true = x
-    amax_true = amin_true + 10
-    peaks = amin_true[1::2]
-
-    # Test unpacking with None or interval
-    assert_((None, None) == _unpack_condition_args((None, None), x, peaks))
-    assert_((1, None) == _unpack_condition_args(1, x, peaks))
-    assert_((1, None) == _unpack_condition_args((1, None), x, peaks))
-    assert_((None, 2) == _unpack_condition_args((None, 2), x, peaks))
-    assert_((3., 4.5) == _unpack_condition_args((3., 4.5), x, peaks))
-
-    # Test if borders are correctly reduced with `peaks`
-    amin_calc, amax_calc = _unpack_condition_args((amin_true, amax_true), x, peaks)
-    assert_equal(amin_calc, amin_true[peaks])
-    assert_equal(amax_calc, amax_true[peaks])
-
-    # Test raises if array borders don't match x
-    with raises(ValueError, match="array size of lower"):
-        _unpack_condition_args(amin_true, np.arange(11), peaks)
-    with raises(ValueError, match="array size of upper"):
-        _unpack_condition_args((None, amin_true), np.arange(11), peaks)
-
-
-class TestFindPeaks:
-
-    # Keys of optionally returned properties
-    property_keys = {'peak_heights', 'left_thresholds', 'right_thresholds',
-                     'prominences', 'left_bases', 'right_bases', 'widths',
-                     'width_heights', 'left_ips', 'right_ips'}
-
-    def test_constant(self):
-        """
-        Test behavior for signal without local maxima.
-        """
-        open_interval = (None, None)
-        peaks, props = find_peaks(np.ones(10),
-                                  height=open_interval, threshold=open_interval,
-                                  prominence=open_interval, width=open_interval)
-        assert_(peaks.size == 0)
-        for key in self.property_keys:
-            assert_(props[key].size == 0)
-
-    def test_plateau_size(self):
-        """
-        Test plateau size condition for peaks.
-        """
-        # Prepare signal with peaks with peak_height == plateau_size
-        plateau_sizes = np.array([1, 2, 3, 4, 8, 20, 111])
-        x = np.zeros(plateau_sizes.size * 2 + 1)
-        x[1::2] = plateau_sizes
-        repeats = np.ones(x.size, dtype=int)
-        repeats[1::2] = x[1::2]
-        x = np.repeat(x, repeats)
-
-        # Test full output
-        peaks, props = find_peaks(x, plateau_size=(None, None))
-        assert_equal(peaks, [1, 3, 7, 11, 18, 33, 100])
-        assert_equal(props["plateau_sizes"], plateau_sizes)
-        assert_equal(props["left_edges"], peaks - (plateau_sizes - 1) // 2)
-        assert_equal(props["right_edges"], peaks + plateau_sizes // 2)
-
-        # Test conditions
-        assert_equal(find_peaks(x, plateau_size=4)[0], [11, 18, 33, 100])
-        assert_equal(find_peaks(x, plateau_size=(None, 3.5))[0], [1, 3, 7])
-        assert_equal(find_peaks(x, plateau_size=(5, 50))[0], [18, 33])
-
-    def test_height_condition(self):
-        """
-        Test height condition for peaks.
-        """
-        x = (0., 1/3, 0., 2.5, 0, 4., 0)
-        peaks, props = find_peaks(x, height=(None, None))
-        assert_equal(peaks, np.array([1, 3, 5]))
-        assert_equal(props['peak_heights'], np.array([1/3, 2.5, 4.]))
-        assert_equal(find_peaks(x, height=0.5)[0], np.array([3, 5]))
-        assert_equal(find_peaks(x, height=(None, 3))[0], np.array([1, 3]))
-        assert_equal(find_peaks(x, height=(2, 3))[0], np.array([3]))
-
-    def test_threshold_condition(self):
-        """
-        Test threshold condition for peaks.
-        """
-        x = (0, 2, 1, 4, -1)
-        peaks, props = find_peaks(x, threshold=(None, None))
-        assert_equal(peaks, np.array([1, 3]))
-        assert_equal(props['left_thresholds'], np.array([2, 3]))
-        assert_equal(props['right_thresholds'], np.array([1, 5]))
-        assert_equal(find_peaks(x, threshold=2)[0], np.array([3]))
-        assert_equal(find_peaks(x, threshold=3.5)[0], np.array([]))
-        assert_equal(find_peaks(x, threshold=(None, 5))[0], np.array([1, 3]))
-        assert_equal(find_peaks(x, threshold=(None, 4))[0], np.array([1]))
-        assert_equal(find_peaks(x, threshold=(2, 4))[0], np.array([]))
-
-    def test_distance_condition(self):
-        """
-        Test distance condition for peaks.
-        """
-        # Peaks of different height with constant distance 3
-        peaks_all = np.arange(1, 21, 3)
-        x = np.zeros(21)
-        x[peaks_all] += np.linspace(1, 2, peaks_all.size)
-
-        # Test if peaks with "minimal" distance are still selected (distance = 3)
-        assert_equal(find_peaks(x, distance=3)[0], peaks_all)
-
-        # Select every second peak (distance > 3)
-        peaks_subset = find_peaks(x, distance=3.0001)[0]
-        # Test if peaks_subset is subset of peaks_all
-        assert_(
-            np.setdiff1d(peaks_subset, peaks_all, assume_unique=True).size == 0
-        )
-        # Test if every second peak was removed
-        assert_equal(np.diff(peaks_subset), 6)
-
-        # Test priority of peak removal
-        x = [-2, 1, -1, 0, -3]
-        peaks_subset = find_peaks(x, distance=10)[0]  # use distance > x size
-        assert_(peaks_subset.size == 1 and peaks_subset[0] == 1)
-
-    def test_prominence_condition(self):
-        """
-        Test prominence condition for peaks.
-        """
-        x = np.linspace(0, 10, 100)
-        peaks_true = np.arange(1, 99, 2)
-        offset = np.linspace(1, 10, peaks_true.size)
-        x[peaks_true] += offset
-        prominences = x[peaks_true] - x[peaks_true + 1]
-        interval = (3, 9)
-        keep = np.nonzero(
-            (interval[0] <= prominences) & (prominences <= interval[1]))
-
-        peaks_calc, properties = find_peaks(x, prominence=interval)
-        assert_equal(peaks_calc, peaks_true[keep])
-        assert_equal(properties['prominences'], prominences[keep])
-        assert_equal(properties['left_bases'], 0)
-        assert_equal(properties['right_bases'], peaks_true[keep] + 1)
-
-    def test_width_condition(self):
-        """
-        Test width condition for peaks.
-        """
-        x = np.array([1, 0, 1, 2, 1, 0, -1, 4, 0])
-        peaks, props = find_peaks(x, width=(None, 2), rel_height=0.75)
-        assert_equal(peaks.size, 1)
-        assert_equal(peaks, 7)
-        assert_allclose(props['widths'], 1.35)
-        assert_allclose(props['width_heights'], 1.)
-        assert_allclose(props['left_ips'], 6.4)
-        assert_allclose(props['right_ips'], 7.75)
-
-    def test_properties(self):
-        """
-        Test returned properties.
-        """
-        open_interval = (None, None)
-        x = [0, 1, 0, 2, 1.5, 0, 3, 0, 5, 9]
-        peaks, props = find_peaks(x,
-                                  height=open_interval, threshold=open_interval,
-                                  prominence=open_interval, width=open_interval)
-        assert_(len(props) == len(self.property_keys))
-        for key in self.property_keys:
-            assert_(peaks.size == props[key].size)
-
-    def test_raises(self):
-        """
-        Test exceptions raised by function.
-        """
-        with raises(ValueError, match="1-D array"):
-            find_peaks(np.array(1))
-        with raises(ValueError, match="1-D array"):
-            find_peaks(np.ones((2, 2)))
-        with raises(ValueError, match="distance"):
-            find_peaks(np.arange(10), distance=-1)
-
-    @pytest.mark.filterwarnings("ignore:some peaks have a prominence of 0",
-                                "ignore:some peaks have a width of 0")
-    def test_wlen_smaller_plateau(self):
-        """
-        Test behavior of prominence and width calculation if the given window
-        length is smaller than a peak's plateau size.
-
-        Regression test for gh-9110.
-        """
-        peaks, props = find_peaks([0, 1, 1, 1, 0], prominence=(None, None),
-                                  width=(None, None), wlen=2)
-        assert_equal(peaks, 2)
-        assert_equal(props["prominences"], 0)
-        assert_equal(props["widths"], 0)
-        assert_equal(props["width_heights"], 1)
-        for key in ("left_bases", "right_bases", "left_ips", "right_ips"):
-            assert_equal(props[key], peaks)
-
-    @pytest.mark.parametrize("kwargs", [
-        {},
-        {"distance": 3.0},
-        {"prominence": (None, None)},
-        {"width": (None, 2)},
-
-    ])
-    def test_readonly_array(self, kwargs):
-        """
-        Test readonly arrays are accepted.
-        """
-        x = np.linspace(0, 10, 15)
-        x_readonly = x.copy()
-        x_readonly.flags.writeable = False
-
-        peaks, _ = find_peaks(x)
-        peaks_readonly, _ = find_peaks(x_readonly, **kwargs)
-
-        assert_allclose(peaks, peaks_readonly)
-
-
-class TestFindPeaksCwt:
-
-    def test_find_peaks_exact(self):
-        """
-        Generate a series of gaussians and attempt to find the peak locations.
-        """
-        sigmas = [5.0, 3.0, 10.0, 20.0, 10.0, 50.0]
-        num_points = 500
-        test_data, act_locs = _gen_gaussians_even(sigmas, num_points)
-        widths = np.arange(0.1, max(sigmas))
-        found_locs = find_peaks_cwt(test_data, widths, gap_thresh=2, min_snr=0,
-                                         min_length=None)
-        np.testing.assert_array_equal(found_locs, act_locs,
-                        "Found maximum locations did not equal those expected")
-
-    def test_find_peaks_withnoise(self):
-        """
-        Verify that peak locations are (approximately) found
-        for a series of gaussians with added noise.
-        """
-        sigmas = [5.0, 3.0, 10.0, 20.0, 10.0, 50.0]
-        num_points = 500
-        test_data, act_locs = _gen_gaussians_even(sigmas, num_points)
-        widths = np.arange(0.1, max(sigmas))
-        noise_amp = 0.07
-        np.random.seed(18181911)
-        test_data += (np.random.rand(num_points) - 0.5)*(2*noise_amp)
-        found_locs = find_peaks_cwt(test_data, widths, min_length=15,
-                                         gap_thresh=1, min_snr=noise_amp / 5)
-
-        np.testing.assert_equal(len(found_locs), len(act_locs), 'Different number' +
-                                'of peaks found than expected')
-        diffs = np.abs(found_locs - act_locs)
-        max_diffs = np.array(sigmas) / 5
-        np.testing.assert_array_less(diffs, max_diffs, 'Maximum location differed' +
-                                     'by more than %s' % (max_diffs))
-
-    def test_find_peaks_nopeak(self):
-        """
-        Verify that no peak is found in
-        data that's just noise.
-        """
-        noise_amp = 1.0
-        num_points = 100
-        np.random.seed(181819141)
-        test_data = (np.random.rand(num_points) - 0.5)*(2*noise_amp)
-        widths = np.arange(10, 50)
-        found_locs = find_peaks_cwt(test_data, widths, min_snr=5, noise_perc=30)
-        np.testing.assert_equal(len(found_locs), 0)
-
-    def test_find_peaks_with_non_default_wavelets(self):
-        x = gaussian(200, 2)
-        widths = np.array([1, 2, 3, 4])
-        a = find_peaks_cwt(x, widths, wavelet=gaussian)
-
-        np.testing.assert_equal(np.array([100]), a)
-
-    def test_find_peaks_window_size(self):
-        """
-        Verify that window_size is passed correctly to private function and
-        affects the result.
-        """
-        sigmas = [2.0, 2.0]
-        num_points = 1000
-        test_data, act_locs = _gen_gaussians_even(sigmas, num_points)
-        widths = np.arange(0.1, max(sigmas), 0.2)
-        noise_amp = 0.05
-        np.random.seed(18181911)
-        test_data += (np.random.rand(num_points) - 0.5)*(2*noise_amp)
-
-        # Possibly contrived negative region to throw off peak finding
-        # when window_size is too large
-        test_data[250:320] -= 1
-
-        found_locs = find_peaks_cwt(test_data, widths, gap_thresh=2, min_snr=3,
-                                    min_length=None, window_size=None)
-        with pytest.raises(AssertionError):
-            assert found_locs.size == act_locs.size
-
-        found_locs = find_peaks_cwt(test_data, widths, gap_thresh=2, min_snr=3,
-                                    min_length=None, window_size=20)
-        assert found_locs.size == act_locs.size
-
-    def test_find_peaks_with_one_width(self):
-        """
-        Verify that the `width` argument
-        in `find_peaks_cwt` can be a float
-        """
-        xs = np.arange(0, np.pi, 0.05)
-        test_data = np.sin(xs)
-        widths = 1
-        found_locs = find_peaks_cwt(test_data, widths)
-
-        np.testing.assert_equal(found_locs, 32)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_savitzky_golay.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_savitzky_golay.py
deleted file mode 100644
index fbbf370bf558612b7f866b252303b2cfdcb58b06..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_savitzky_golay.py
+++ /dev/null
@@ -1,358 +0,0 @@
-import pytest
-import numpy as np
-from numpy.testing import (assert_allclose, assert_equal,
-                           assert_almost_equal, assert_array_equal,
-                           assert_array_almost_equal)
-
-from scipy.ndimage import convolve1d
-
-from scipy.signal import savgol_coeffs, savgol_filter
-from scipy.signal._savitzky_golay import _polyder
-
-
-def check_polyder(p, m, expected):
-    dp = _polyder(p, m)
-    assert_array_equal(dp, expected)
-
-
-def test_polyder():
-    cases = [
-        ([5], 0, [5]),
-        ([5], 1, [0]),
-        ([3, 2, 1], 0, [3, 2, 1]),
-        ([3, 2, 1], 1, [6, 2]),
-        ([3, 2, 1], 2, [6]),
-        ([3, 2, 1], 3, [0]),
-        ([[3, 2, 1], [5, 6, 7]], 0, [[3, 2, 1], [5, 6, 7]]),
-        ([[3, 2, 1], [5, 6, 7]], 1, [[6, 2], [10, 6]]),
-        ([[3, 2, 1], [5, 6, 7]], 2, [[6], [10]]),
-        ([[3, 2, 1], [5, 6, 7]], 3, [[0], [0]]),
-    ]
-    for p, m, expected in cases:
-        check_polyder(np.array(p).T, m, np.array(expected).T)
-
-
-#--------------------------------------------------------------------
-# savgol_coeffs tests
-#--------------------------------------------------------------------
-
-def alt_sg_coeffs(window_length, polyorder, pos):
-    """This is an alternative implementation of the SG coefficients.
-
-    It uses numpy.polyfit and numpy.polyval. The results should be
-    equivalent to those of savgol_coeffs(), but this implementation
-    is slower.
-
-    window_length should be odd.
-
-    """
-    if pos is None:
-        pos = window_length // 2
-    t = np.arange(window_length)
-    unit = (t == pos).astype(int)
-    h = np.polyval(np.polyfit(t, unit, polyorder), t)
-    return h
-
-
-def test_sg_coeffs_trivial():
-    # Test a trivial case of savgol_coeffs: polyorder = window_length - 1
-    h = savgol_coeffs(1, 0)
-    assert_allclose(h, [1])
-
-    h = savgol_coeffs(3, 2)
-    assert_allclose(h, [0, 1, 0], atol=1e-10)
-
-    h = savgol_coeffs(5, 4)
-    assert_allclose(h, [0, 0, 1, 0, 0], atol=1e-10)
-
-    h = savgol_coeffs(5, 4, pos=1)
-    assert_allclose(h, [0, 0, 0, 1, 0], atol=1e-10)
-
-    h = savgol_coeffs(5, 4, pos=1, use='dot')
-    assert_allclose(h, [0, 1, 0, 0, 0], atol=1e-10)
-
-
-def compare_coeffs_to_alt(window_length, order):
-    # For the given window_length and order, compare the results
-    # of savgol_coeffs and alt_sg_coeffs for pos from 0 to window_length - 1.
-    # Also include pos=None.
-    for pos in [None] + list(range(window_length)):
-        h1 = savgol_coeffs(window_length, order, pos=pos, use='dot')
-        h2 = alt_sg_coeffs(window_length, order, pos=pos)
-        assert_allclose(h1, h2, atol=1e-10,
-                        err_msg=("window_length = %d, order = %d, pos = %s" %
-                                 (window_length, order, pos)))
-
-
-def test_sg_coeffs_compare():
-    # Compare savgol_coeffs() to alt_sg_coeffs().
-    for window_length in range(1, 8, 2):
-        for order in range(window_length):
-            compare_coeffs_to_alt(window_length, order)
-
-
-def test_sg_coeffs_exact():
-    polyorder = 4
-    window_length = 9
-    halflen = window_length // 2
-
-    x = np.linspace(0, 21, 43)
-    delta = x[1] - x[0]
-
-    # The data is a cubic polynomial.  We'll use an order 4
-    # SG filter, so the filtered values should equal the input data
-    # (except within half window_length of the edges).
-    y = 0.5 * x ** 3 - x
-    h = savgol_coeffs(window_length, polyorder)
-    y0 = convolve1d(y, h)
-    assert_allclose(y0[halflen:-halflen], y[halflen:-halflen])
-
-    # Check the same input, but use deriv=1.  dy is the exact result.
-    dy = 1.5 * x ** 2 - 1
-    h = savgol_coeffs(window_length, polyorder, deriv=1, delta=delta)
-    y1 = convolve1d(y, h)
-    assert_allclose(y1[halflen:-halflen], dy[halflen:-halflen])
-
-    # Check the same input, but use deriv=2. d2y is the exact result.
-    d2y = 3.0 * x
-    h = savgol_coeffs(window_length, polyorder, deriv=2, delta=delta)
-    y2 = convolve1d(y, h)
-    assert_allclose(y2[halflen:-halflen], d2y[halflen:-halflen])
-
-
-def test_sg_coeffs_deriv():
-    # The data in `x` is a sampled parabola, so using savgol_coeffs with an
-    # order 2 or higher polynomial should give exact results.
-    i = np.array([-2.0, 0.0, 2.0, 4.0, 6.0])
-    x = i ** 2 / 4
-    dx = i / 2
-    d2x = np.full_like(i, 0.5)
-    for pos in range(x.size):
-        coeffs0 = savgol_coeffs(5, 3, pos=pos, delta=2.0, use='dot')
-        assert_allclose(coeffs0.dot(x), x[pos], atol=1e-10)
-        coeffs1 = savgol_coeffs(5, 3, pos=pos, delta=2.0, use='dot', deriv=1)
-        assert_allclose(coeffs1.dot(x), dx[pos], atol=1e-10)
-        coeffs2 = savgol_coeffs(5, 3, pos=pos, delta=2.0, use='dot', deriv=2)
-        assert_allclose(coeffs2.dot(x), d2x[pos], atol=1e-10)
-
-
-def test_sg_coeffs_deriv_gt_polyorder():
-    """
-    If deriv > polyorder, the coefficients should be all 0.
-    This is a regression test for a bug where, e.g.,
-        savgol_coeffs(5, polyorder=1, deriv=2)
-    raised an error.
-    """
-    coeffs = savgol_coeffs(5, polyorder=1, deriv=2)
-    assert_array_equal(coeffs, np.zeros(5))
-    coeffs = savgol_coeffs(7, polyorder=4, deriv=6)
-    assert_array_equal(coeffs, np.zeros(7))
-
-
-def test_sg_coeffs_large():
-    # Test that for large values of window_length and polyorder the array of
-    # coefficients returned is symmetric. The aim is to ensure that
-    # no potential numeric overflow occurs.
-    coeffs0 = savgol_coeffs(31, 9)
-    assert_array_almost_equal(coeffs0, coeffs0[::-1])
-    coeffs1 = savgol_coeffs(31, 9, deriv=1)
-    assert_array_almost_equal(coeffs1, -coeffs1[::-1])
-
-# --------------------------------------------------------------------
-# savgol_coeffs tests for even window length
-# --------------------------------------------------------------------
-
-
-def test_sg_coeffs_even_window_length():
-    # Simple case - deriv=0, polyorder=0, 1
-    window_lengths = [4, 6, 8, 10, 12, 14, 16]
-    for length in window_lengths:
-        h_p_d = savgol_coeffs(length, 0, 0)
-        assert_allclose(h_p_d, 1/length)
-
-    # Verify with closed forms
-    # deriv=1, polyorder=1, 2
-    def h_p_d_closed_form_1(k, m):
-        return 6*(k - 0.5)/((2*m + 1)*m*(2*m - 1))
-
-    # deriv=2, polyorder=2
-    def h_p_d_closed_form_2(k, m):
-        numer = 15*(-4*m**2 + 1 + 12*(k - 0.5)**2)
-        denom = 4*(2*m + 1)*(m + 1)*m*(m - 1)*(2*m - 1)
-        return numer/denom
-
-    for length in window_lengths:
-        m = length//2
-        expected_output = [h_p_d_closed_form_1(k, m)
-                           for k in range(-m + 1, m + 1)][::-1]
-        actual_output = savgol_coeffs(length, 1, 1)
-        assert_allclose(expected_output, actual_output)
-        actual_output = savgol_coeffs(length, 2, 1)
-        assert_allclose(expected_output, actual_output)
-
-        expected_output = [h_p_d_closed_form_2(k, m)
-                           for k in range(-m + 1, m + 1)][::-1]
-        actual_output = savgol_coeffs(length, 2, 2)
-        assert_allclose(expected_output, actual_output)
-        actual_output = savgol_coeffs(length, 3, 2)
-        assert_allclose(expected_output, actual_output)
-
-#--------------------------------------------------------------------
-# savgol_filter tests
-#--------------------------------------------------------------------
-
-
-def test_sg_filter_trivial():
-    """ Test some trivial edge cases for savgol_filter()."""
-    x = np.array([1.0])
-    y = savgol_filter(x, 1, 0)
-    assert_equal(y, [1.0])
-
-    # Input is a single value. With a window length of 3 and polyorder 1,
-    # the value in y is from the straight-line fit of (-1,0), (0,3) and
-    # (1, 0) at 0. This is just the average of the three values, hence 1.0.
-    x = np.array([3.0])
-    y = savgol_filter(x, 3, 1, mode='constant')
-    assert_almost_equal(y, [1.0], decimal=15)
-
-    x = np.array([3.0])
-    y = savgol_filter(x, 3, 1, mode='nearest')
-    assert_almost_equal(y, [3.0], decimal=15)
-
-    x = np.array([1.0] * 3)
-    y = savgol_filter(x, 3, 1, mode='wrap')
-    assert_almost_equal(y, [1.0, 1.0, 1.0], decimal=15)
-
-
-def test_sg_filter_basic():
-    # Some basic test cases for savgol_filter().
-    x = np.array([1.0, 2.0, 1.0])
-    y = savgol_filter(x, 3, 1, mode='constant')
-    assert_allclose(y, [1.0, 4.0 / 3, 1.0])
-
-    y = savgol_filter(x, 3, 1, mode='mirror')
-    assert_allclose(y, [5.0 / 3, 4.0 / 3, 5.0 / 3])
-
-    y = savgol_filter(x, 3, 1, mode='wrap')
-    assert_allclose(y, [4.0 / 3, 4.0 / 3, 4.0 / 3])
-
-
-def test_sg_filter_2d():
-    x = np.array([[1.0, 2.0, 1.0],
-                  [2.0, 4.0, 2.0]])
-    expected = np.array([[1.0, 4.0 / 3, 1.0],
-                         [2.0, 8.0 / 3, 2.0]])
-    y = savgol_filter(x, 3, 1, mode='constant')
-    assert_allclose(y, expected)
-
-    y = savgol_filter(x.T, 3, 1, mode='constant', axis=0)
-    assert_allclose(y, expected.T)
-
-
-def test_sg_filter_interp_edges():
-    # Another test with low degree polynomial data, for which we can easily
-    # give the exact results. In this test, we use mode='interp', so
-    # savgol_filter should match the exact solution for the entire data set,
-    # including the edges.
-    t = np.linspace(-5, 5, 21)
-    delta = t[1] - t[0]
-    # Polynomial test data.
-    x = np.array([t,
-                  3 * t ** 2,
-                  t ** 3 - t])
-    dx = np.array([np.ones_like(t),
-                   6 * t,
-                   3 * t ** 2 - 1.0])
-    d2x = np.array([np.zeros_like(t),
-                    np.full_like(t, 6),
-                    6 * t])
-
-    window_length = 7
-
-    y = savgol_filter(x, window_length, 3, axis=-1, mode='interp')
-    assert_allclose(y, x, atol=1e-12)
-
-    y1 = savgol_filter(x, window_length, 3, axis=-1, mode='interp',
-                       deriv=1, delta=delta)
-    assert_allclose(y1, dx, atol=1e-12)
-
-    y2 = savgol_filter(x, window_length, 3, axis=-1, mode='interp',
-                       deriv=2, delta=delta)
-    assert_allclose(y2, d2x, atol=1e-12)
-
-    # Transpose everything, and test again with axis=0.
-
-    x = x.T
-    dx = dx.T
-    d2x = d2x.T
-
-    y = savgol_filter(x, window_length, 3, axis=0, mode='interp')
-    assert_allclose(y, x, atol=1e-12)
-
-    y1 = savgol_filter(x, window_length, 3, axis=0, mode='interp',
-                       deriv=1, delta=delta)
-    assert_allclose(y1, dx, atol=1e-12)
-
-    y2 = savgol_filter(x, window_length, 3, axis=0, mode='interp',
-                       deriv=2, delta=delta)
-    assert_allclose(y2, d2x, atol=1e-12)
-
-
-def test_sg_filter_interp_edges_3d():
-    # Test mode='interp' with a 3-D array.
-    t = np.linspace(-5, 5, 21)
-    delta = t[1] - t[0]
-    x1 = np.array([t, -t])
-    x2 = np.array([t ** 2, 3 * t ** 2 + 5])
-    x3 = np.array([t ** 3, 2 * t ** 3 + t ** 2 - 0.5 * t])
-    dx1 = np.array([np.ones_like(t), -np.ones_like(t)])
-    dx2 = np.array([2 * t, 6 * t])
-    dx3 = np.array([3 * t ** 2, 6 * t ** 2 + 2 * t - 0.5])
-
-    # z has shape (3, 2, 21)
-    z = np.array([x1, x2, x3])
-    dz = np.array([dx1, dx2, dx3])
-
-    y = savgol_filter(z, 7, 3, axis=-1, mode='interp', delta=delta)
-    assert_allclose(y, z, atol=1e-10)
-
-    dy = savgol_filter(z, 7, 3, axis=-1, mode='interp', deriv=1, delta=delta)
-    assert_allclose(dy, dz, atol=1e-10)
-
-    # z has shape (3, 21, 2)
-    z = np.array([x1.T, x2.T, x3.T])
-    dz = np.array([dx1.T, dx2.T, dx3.T])
-
-    y = savgol_filter(z, 7, 3, axis=1, mode='interp', delta=delta)
-    assert_allclose(y, z, atol=1e-10)
-
-    dy = savgol_filter(z, 7, 3, axis=1, mode='interp', deriv=1, delta=delta)
-    assert_allclose(dy, dz, atol=1e-10)
-
-    # z has shape (21, 3, 2)
-    z = z.swapaxes(0, 1).copy()
-    dz = dz.swapaxes(0, 1).copy()
-
-    y = savgol_filter(z, 7, 3, axis=0, mode='interp', delta=delta)
-    assert_allclose(y, z, atol=1e-10)
-
-    dy = savgol_filter(z, 7, 3, axis=0, mode='interp', deriv=1, delta=delta)
-    assert_allclose(dy, dz, atol=1e-10)
-
-
-def test_sg_filter_valid_window_length_3d():
-    """Tests that the window_length check is using the correct axis."""
-
-    x = np.ones((10, 20, 30))
-
-    savgol_filter(x, window_length=29, polyorder=3, mode='interp')
-
-    with pytest.raises(ValueError, match='window_length must be less than'):
-        # window_length is more than x.shape[-1].
-        savgol_filter(x, window_length=31, polyorder=3, mode='interp')
-
-    savgol_filter(x, window_length=9, polyorder=3, axis=0, mode='interp')
-
-    with pytest.raises(ValueError, match='window_length must be less than'):
-        # window_length is more than x.shape[0].
-        savgol_filter(x, window_length=11, polyorder=3, axis=0, mode='interp')
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_spectral.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_spectral.py
deleted file mode 100644
index ed0af49b2ef8901f3c8b073f4d19def5578d0dbe..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_spectral.py
+++ /dev/null
@@ -1,1713 +0,0 @@
-import sys
-
-import numpy as np
-from numpy.testing import (assert_, assert_approx_equal,
-                           assert_allclose, assert_array_equal, assert_equal,
-                           assert_array_almost_equal_nulp, suppress_warnings)
-import pytest
-from pytest import raises as assert_raises
-
-from scipy import signal
-from scipy.fft import fftfreq, rfftfreq, fft, irfft
-from scipy.integrate import trapezoid
-from scipy.signal import (periodogram, welch, lombscargle, coherence,
-                          spectrogram, check_COLA, check_NOLA)
-from scipy.signal.windows import hann
-from scipy.signal._spectral_py import _spectral_helper
-
-# Compare ShortTimeFFT.stft() / ShortTimeFFT.istft() with stft() / istft():
-from scipy.signal.tests._scipy_spectral_test_shim import stft_compare as stft
-from scipy.signal.tests._scipy_spectral_test_shim import istft_compare as istft
-from scipy.signal.tests._scipy_spectral_test_shim import csd_compare as csd
-
-
-class TestPeriodogram:
-    def test_real_onesided_even(self):
-        x = np.zeros(16)
-        x[0] = 1
-        f, p = periodogram(x)
-        assert_allclose(f, np.linspace(0, 0.5, 9))
-        q = np.ones(9)
-        q[0] = 0
-        q[-1] /= 2.0
-        q /= 8
-        assert_allclose(p, q)
-
-    def test_real_onesided_odd(self):
-        x = np.zeros(15)
-        x[0] = 1
-        f, p = periodogram(x)
-        assert_allclose(f, np.arange(8.0)/15.0)
-        q = np.ones(8)
-        q[0] = 0
-        q *= 2.0/15.0
-        assert_allclose(p, q, atol=1e-15)
-
-    def test_real_twosided(self):
-        x = np.zeros(16)
-        x[0] = 1
-        f, p = periodogram(x, return_onesided=False)
-        assert_allclose(f, fftfreq(16, 1.0))
-        q = np.full(16, 1/16.0)
-        q[0] = 0
-        assert_allclose(p, q)
-
-    def test_real_spectrum(self):
-        x = np.zeros(16)
-        x[0] = 1
-        f, p = periodogram(x, scaling='spectrum')
-        g, q = periodogram(x, scaling='density')
-        assert_allclose(f, np.linspace(0, 0.5, 9))
-        assert_allclose(p, q/16.0)
-
-    def test_integer_even(self):
-        x = np.zeros(16, dtype=int)
-        x[0] = 1
-        f, p = periodogram(x)
-        assert_allclose(f, np.linspace(0, 0.5, 9))
-        q = np.ones(9)
-        q[0] = 0
-        q[-1] /= 2.0
-        q /= 8
-        assert_allclose(p, q)
-
-    def test_integer_odd(self):
-        x = np.zeros(15, dtype=int)
-        x[0] = 1
-        f, p = periodogram(x)
-        assert_allclose(f, np.arange(8.0)/15.0)
-        q = np.ones(8)
-        q[0] = 0
-        q *= 2.0/15.0
-        assert_allclose(p, q, atol=1e-15)
-
-    def test_integer_twosided(self):
-        x = np.zeros(16, dtype=int)
-        x[0] = 1
-        f, p = periodogram(x, return_onesided=False)
-        assert_allclose(f, fftfreq(16, 1.0))
-        q = np.full(16, 1/16.0)
-        q[0] = 0
-        assert_allclose(p, q)
-
-    def test_complex(self):
-        x = np.zeros(16, np.complex128)
-        x[0] = 1.0 + 2.0j
-        f, p = periodogram(x, return_onesided=False)
-        assert_allclose(f, fftfreq(16, 1.0))
-        q = np.full(16, 5.0/16.0)
-        q[0] = 0
-        assert_allclose(p, q)
-
-    def test_unk_scaling(self):
-        assert_raises(ValueError, periodogram, np.zeros(4, np.complex128),
-                scaling='foo')
-
-    @pytest.mark.skipif(
-        sys.maxsize <= 2**32,
-        reason="On some 32-bit tolerance issue"
-    )
-    def test_nd_axis_m1(self):
-        x = np.zeros(20, dtype=np.float64)
-        x = x.reshape((2,1,10))
-        x[:,:,0] = 1.0
-        f, p = periodogram(x)
-        assert_array_equal(p.shape, (2, 1, 6))
-        assert_array_almost_equal_nulp(p[0,0,:], p[1,0,:], 60)
-        f0, p0 = periodogram(x[0,0,:])
-        assert_array_almost_equal_nulp(p0[np.newaxis,:], p[1,:], 60)
-
-    @pytest.mark.skipif(
-        sys.maxsize <= 2**32,
-        reason="On some 32-bit tolerance issue"
-    )
-    def test_nd_axis_0(self):
-        x = np.zeros(20, dtype=np.float64)
-        x = x.reshape((10,2,1))
-        x[0,:,:] = 1.0
-        f, p = periodogram(x, axis=0)
-        assert_array_equal(p.shape, (6,2,1))
-        assert_array_almost_equal_nulp(p[:,0,0], p[:,1,0], 60)
-        f0, p0 = periodogram(x[:,0,0])
-        assert_array_almost_equal_nulp(p0, p[:,1,0])
-
-    def test_window_external(self):
-        x = np.zeros(16)
-        x[0] = 1
-        f, p = periodogram(x, 10, 'hann')
-        win = signal.get_window('hann', 16)
-        fe, pe = periodogram(x, 10, win)
-        assert_array_almost_equal_nulp(p, pe)
-        assert_array_almost_equal_nulp(f, fe)
-        win_err = signal.get_window('hann', 32)
-        assert_raises(ValueError, periodogram, x,
-                      10, win_err)  # win longer than signal
-
-    def test_padded_fft(self):
-        x = np.zeros(16)
-        x[0] = 1
-        f, p = periodogram(x)
-        fp, pp = periodogram(x, nfft=32)
-        assert_allclose(f, fp[::2])
-        assert_allclose(p, pp[::2])
-        assert_array_equal(pp.shape, (17,))
-
-    def test_empty_input(self):
-        f, p = periodogram([])
-        assert_array_equal(f.shape, (0,))
-        assert_array_equal(p.shape, (0,))
-        for shape in [(0,), (3,0), (0,5,2)]:
-            f, p = periodogram(np.empty(shape))
-            assert_array_equal(f.shape, shape)
-            assert_array_equal(p.shape, shape)
-
-    def test_empty_input_other_axis(self):
-        for shape in [(3,0), (0,5,2)]:
-            f, p = periodogram(np.empty(shape), axis=1)
-            assert_array_equal(f.shape, shape)
-            assert_array_equal(p.shape, shape)
-
-    def test_short_nfft(self):
-        x = np.zeros(18)
-        x[0] = 1
-        f, p = periodogram(x, nfft=16)
-        assert_allclose(f, np.linspace(0, 0.5, 9))
-        q = np.ones(9)
-        q[0] = 0
-        q[-1] /= 2.0
-        q /= 8
-        assert_allclose(p, q)
-
-    def test_nfft_is_xshape(self):
-        x = np.zeros(16)
-        x[0] = 1
-        f, p = periodogram(x, nfft=16)
-        assert_allclose(f, np.linspace(0, 0.5, 9))
-        q = np.ones(9)
-        q[0] = 0
-        q[-1] /= 2.0
-        q /= 8
-        assert_allclose(p, q)
-
-    def test_real_onesided_even_32(self):
-        x = np.zeros(16, 'f')
-        x[0] = 1
-        f, p = periodogram(x)
-        assert_allclose(f, np.linspace(0, 0.5, 9))
-        q = np.ones(9, 'f')
-        q[0] = 0
-        q[-1] /= 2.0
-        q /= 8
-        assert_allclose(p, q)
-        assert_(p.dtype == q.dtype)
-
-    def test_real_onesided_odd_32(self):
-        x = np.zeros(15, 'f')
-        x[0] = 1
-        f, p = periodogram(x)
-        assert_allclose(f, np.arange(8.0)/15.0)
-        q = np.ones(8, 'f')
-        q[0] = 0
-        q *= 2.0/15.0
-        assert_allclose(p, q, atol=1e-7)
-        assert_(p.dtype == q.dtype)
-
-    def test_real_twosided_32(self):
-        x = np.zeros(16, 'f')
-        x[0] = 1
-        f, p = periodogram(x, return_onesided=False)
-        assert_allclose(f, fftfreq(16, 1.0))
-        q = np.full(16, 1/16.0, 'f')
-        q[0] = 0
-        assert_allclose(p, q)
-        assert_(p.dtype == q.dtype)
-
-    def test_complex_32(self):
-        x = np.zeros(16, 'F')
-        x[0] = 1.0 + 2.0j
-        f, p = periodogram(x, return_onesided=False)
-        assert_allclose(f, fftfreq(16, 1.0))
-        q = np.full(16, 5.0/16.0, 'f')
-        q[0] = 0
-        assert_allclose(p, q)
-        assert_(p.dtype == q.dtype)
-
-    def test_shorter_window_error(self):
-        x = np.zeros(16)
-        x[0] = 1
-        win = signal.get_window('hann', 10)
-        expected_msg = ('the size of the window must be the same size '
-                        'of the input on the specified axis')
-        with assert_raises(ValueError, match=expected_msg):
-            periodogram(x, window=win)
-
-
-class TestWelch:
-    def test_real_onesided_even(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=8)
-        assert_allclose(f, np.linspace(0, 0.5, 5))
-        q = np.array([0.08333333, 0.15277778, 0.22222222, 0.22222222,
-                      0.11111111])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_real_onesided_odd(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=9)
-        assert_allclose(f, np.arange(5.0)/9.0)
-        q = np.array([0.12477455, 0.23430933, 0.17072113, 0.17072113,
-                      0.17072113])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_real_twosided(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=8, return_onesided=False)
-        assert_allclose(f, fftfreq(8, 1.0))
-        q = np.array([0.08333333, 0.07638889, 0.11111111, 0.11111111,
-                      0.11111111, 0.11111111, 0.11111111, 0.07638889])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_real_spectrum(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=8, scaling='spectrum')
-        assert_allclose(f, np.linspace(0, 0.5, 5))
-        q = np.array([0.015625, 0.02864583, 0.04166667, 0.04166667,
-                      0.02083333])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_integer_onesided_even(self):
-        x = np.zeros(16, dtype=int)
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=8)
-        assert_allclose(f, np.linspace(0, 0.5, 5))
-        q = np.array([0.08333333, 0.15277778, 0.22222222, 0.22222222,
-                      0.11111111])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_integer_onesided_odd(self):
-        x = np.zeros(16, dtype=int)
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=9)
-        assert_allclose(f, np.arange(5.0)/9.0)
-        q = np.array([0.12477455, 0.23430933, 0.17072113, 0.17072113,
-                      0.17072113])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_integer_twosided(self):
-        x = np.zeros(16, dtype=int)
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=8, return_onesided=False)
-        assert_allclose(f, fftfreq(8, 1.0))
-        q = np.array([0.08333333, 0.07638889, 0.11111111, 0.11111111,
-                      0.11111111, 0.11111111, 0.11111111, 0.07638889])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_complex(self):
-        x = np.zeros(16, np.complex128)
-        x[0] = 1.0 + 2.0j
-        x[8] = 1.0 + 2.0j
-        f, p = welch(x, nperseg=8, return_onesided=False)
-        assert_allclose(f, fftfreq(8, 1.0))
-        q = np.array([0.41666667, 0.38194444, 0.55555556, 0.55555556,
-                      0.55555556, 0.55555556, 0.55555556, 0.38194444])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_unk_scaling(self):
-        assert_raises(ValueError, welch, np.zeros(4, np.complex128),
-                      scaling='foo', nperseg=4)
-
-    def test_detrend_linear(self):
-        x = np.arange(10, dtype=np.float64) + 0.04
-        f, p = welch(x, nperseg=10, detrend='linear')
-        assert_allclose(p, np.zeros_like(p), atol=1e-15)
-
-    def test_no_detrending(self):
-        x = np.arange(10, dtype=np.float64) + 0.04
-        f1, p1 = welch(x, nperseg=10, detrend=False)
-        f2, p2 = welch(x, nperseg=10, detrend=lambda x: x)
-        assert_allclose(f1, f2, atol=1e-15)
-        assert_allclose(p1, p2, atol=1e-15)
-
-    def test_detrend_external(self):
-        x = np.arange(10, dtype=np.float64) + 0.04
-        f, p = welch(x, nperseg=10,
-                     detrend=lambda seg: signal.detrend(seg, type='l'))
-        assert_allclose(p, np.zeros_like(p), atol=1e-15)
-
-    def test_detrend_external_nd_m1(self):
-        x = np.arange(40, dtype=np.float64) + 0.04
-        x = x.reshape((2,2,10))
-        f, p = welch(x, nperseg=10,
-                     detrend=lambda seg: signal.detrend(seg, type='l'))
-        assert_allclose(p, np.zeros_like(p), atol=1e-15)
-
-    def test_detrend_external_nd_0(self):
-        x = np.arange(20, dtype=np.float64) + 0.04
-        x = x.reshape((2,1,10))
-        x = np.moveaxis(x, 2, 0)
-        f, p = welch(x, nperseg=10, axis=0,
-                     detrend=lambda seg: signal.detrend(seg, axis=0, type='l'))
-        assert_allclose(p, np.zeros_like(p), atol=1e-15)
-
-    def test_nd_axis_m1(self):
-        x = np.arange(20, dtype=np.float64) + 0.04
-        x = x.reshape((2,1,10))
-        f, p = welch(x, nperseg=10)
-        assert_array_equal(p.shape, (2, 1, 6))
-        assert_allclose(p[0,0,:], p[1,0,:], atol=1e-13, rtol=1e-13)
-        f0, p0 = welch(x[0,0,:], nperseg=10)
-        assert_allclose(p0[np.newaxis,:], p[1,:], atol=1e-13, rtol=1e-13)
-
-    def test_nd_axis_0(self):
-        x = np.arange(20, dtype=np.float64) + 0.04
-        x = x.reshape((10,2,1))
-        f, p = welch(x, nperseg=10, axis=0)
-        assert_array_equal(p.shape, (6,2,1))
-        assert_allclose(p[:,0,0], p[:,1,0], atol=1e-13, rtol=1e-13)
-        f0, p0 = welch(x[:,0,0], nperseg=10)
-        assert_allclose(p0, p[:,1,0], atol=1e-13, rtol=1e-13)
-
-    def test_window_external(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, 10, 'hann', nperseg=8)
-        win = signal.get_window('hann', 8)
-        fe, pe = welch(x, 10, win, nperseg=None)
-        assert_array_almost_equal_nulp(p, pe)
-        assert_array_almost_equal_nulp(f, fe)
-        assert_array_equal(fe.shape, (5,))  # because win length used as nperseg
-        assert_array_equal(pe.shape, (5,))
-        assert_raises(ValueError, welch, x,
-                      10, win, nperseg=4)  # because nperseg != win.shape[-1]
-        win_err = signal.get_window('hann', 32)
-        assert_raises(ValueError, welch, x,
-                      10, win_err, nperseg=None)  # win longer than signal
-
-    def test_empty_input(self):
-        f, p = welch([])
-        assert_array_equal(f.shape, (0,))
-        assert_array_equal(p.shape, (0,))
-        for shape in [(0,), (3,0), (0,5,2)]:
-            f, p = welch(np.empty(shape))
-            assert_array_equal(f.shape, shape)
-            assert_array_equal(p.shape, shape)
-
-    def test_empty_input_other_axis(self):
-        for shape in [(3,0), (0,5,2)]:
-            f, p = welch(np.empty(shape), axis=1)
-            assert_array_equal(f.shape, shape)
-            assert_array_equal(p.shape, shape)
-
-    def test_short_data(self):
-        x = np.zeros(8)
-        x[0] = 1
-        #for string-like window, input signal length < nperseg value gives
-        #UserWarning, sets nperseg to x.shape[-1]
-        with suppress_warnings() as sup:
-            msg = "nperseg = 256 is greater than input length  = 8, using nperseg = 8"
-            sup.filter(UserWarning, msg)
-            f, p = welch(x,window='hann')  # default nperseg
-            f1, p1 = welch(x,window='hann', nperseg=256)  # user-specified nperseg
-        f2, p2 = welch(x, nperseg=8)  # valid nperseg, doesn't give warning
-        assert_allclose(f, f2)
-        assert_allclose(p, p2)
-        assert_allclose(f1, f2)
-        assert_allclose(p1, p2)
-
-    def test_window_long_or_nd(self):
-        assert_raises(ValueError, welch, np.zeros(4), 1, np.array([1,1,1,1,1]))
-        assert_raises(ValueError, welch, np.zeros(4), 1,
-                      np.arange(6).reshape((2,3)))
-
-    def test_nondefault_noverlap(self):
-        x = np.zeros(64)
-        x[::8] = 1
-        f, p = welch(x, nperseg=16, noverlap=4)
-        q = np.array([0, 1./12., 1./3., 1./5., 1./3., 1./5., 1./3., 1./5.,
-                      1./6.])
-        assert_allclose(p, q, atol=1e-12)
-
-    def test_bad_noverlap(self):
-        assert_raises(ValueError, welch, np.zeros(4), 1, 'hann', 2, 7)
-
-    def test_nfft_too_short(self):
-        assert_raises(ValueError, welch, np.ones(12), nfft=3, nperseg=4)
-
-    def test_real_onesided_even_32(self):
-        x = np.zeros(16, 'f')
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=8)
-        assert_allclose(f, np.linspace(0, 0.5, 5))
-        q = np.array([0.08333333, 0.15277778, 0.22222222, 0.22222222,
-                      0.11111111], 'f')
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-        assert_(p.dtype == q.dtype)
-
-    def test_real_onesided_odd_32(self):
-        x = np.zeros(16, 'f')
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=9)
-        assert_allclose(f, np.arange(5.0)/9.0)
-        q = np.array([0.12477458, 0.23430935, 0.17072113, 0.17072116,
-                      0.17072113], 'f')
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-        assert_(p.dtype == q.dtype)
-
-    def test_real_twosided_32(self):
-        x = np.zeros(16, 'f')
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=8, return_onesided=False)
-        assert_allclose(f, fftfreq(8, 1.0))
-        q = np.array([0.08333333, 0.07638889, 0.11111111,
-                      0.11111111, 0.11111111, 0.11111111, 0.11111111,
-                      0.07638889], 'f')
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-        assert_(p.dtype == q.dtype)
-
-    def test_complex_32(self):
-        x = np.zeros(16, 'F')
-        x[0] = 1.0 + 2.0j
-        x[8] = 1.0 + 2.0j
-        f, p = welch(x, nperseg=8, return_onesided=False)
-        assert_allclose(f, fftfreq(8, 1.0))
-        q = np.array([0.41666666, 0.38194442, 0.55555552, 0.55555552,
-                      0.55555558, 0.55555552, 0.55555552, 0.38194442], 'f')
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-        assert_(p.dtype == q.dtype,
-                f'dtype mismatch, {p.dtype}, {q.dtype}')
-
-    def test_padded_freqs(self):
-        x = np.zeros(12)
-
-        nfft = 24
-        f = fftfreq(nfft, 1.0)[:nfft//2+1]
-        f[-1] *= -1
-        fodd, _ = welch(x, nperseg=5, nfft=nfft)
-        feven, _ = welch(x, nperseg=6, nfft=nfft)
-        assert_allclose(f, fodd)
-        assert_allclose(f, feven)
-
-        nfft = 25
-        f = fftfreq(nfft, 1.0)[:(nfft + 1)//2]
-        fodd, _ = welch(x, nperseg=5, nfft=nfft)
-        feven, _ = welch(x, nperseg=6, nfft=nfft)
-        assert_allclose(f, fodd)
-        assert_allclose(f, feven)
-
-    def test_window_correction(self):
-        A = 20
-        fs = 1e4
-        nperseg = int(fs//10)
-        fsig = 300
-        ii = int(fsig*nperseg//fs)  # Freq index of fsig
-
-        tt = np.arange(fs)/fs
-        x = A*np.sin(2*np.pi*fsig*tt)
-
-        for window in ['hann', 'bartlett', ('tukey', 0.1), 'flattop']:
-            _, p_spec = welch(x, fs=fs, nperseg=nperseg, window=window,
-                              scaling='spectrum')
-            freq, p_dens = welch(x, fs=fs, nperseg=nperseg, window=window,
-                                 scaling='density')
-
-            # Check peak height at signal frequency for 'spectrum'
-            assert_allclose(p_spec[ii], A**2/2.0)
-            # Check integrated spectrum RMS for 'density'
-            assert_allclose(np.sqrt(trapezoid(p_dens, freq)), A*np.sqrt(2)/2,
-                            rtol=1e-3)
-
-    def test_axis_rolling(self):
-        np.random.seed(1234)
-
-        x_flat = np.random.randn(1024)
-        _, p_flat = welch(x_flat)
-
-        for a in range(3):
-            newshape = [1,]*3
-            newshape[a] = -1
-            x = x_flat.reshape(newshape)
-
-            _, p_plus = welch(x, axis=a)  # Positive axis index
-            _, p_minus = welch(x, axis=a-x.ndim)  # Negative axis index
-
-            assert_equal(p_flat, p_plus.squeeze(), err_msg=a)
-            assert_equal(p_flat, p_minus.squeeze(), err_msg=a-x.ndim)
-
-    def test_average(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = welch(x, nperseg=8, average='median')
-        assert_allclose(f, np.linspace(0, 0.5, 5))
-        q = np.array([.1, .05, 0., 1.54074396e-33, 0.])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-        assert_raises(ValueError, welch, x, nperseg=8,
-                      average='unrecognised-average')
-
-
-class TestCSD:
-    def test_pad_shorter_x(self):
-        x = np.zeros(8)
-        y = np.zeros(12)
-
-        f = np.linspace(0, 0.5, 7)
-        c = np.zeros(7,dtype=np.complex128)
-        f1, c1 = csd(x, y, nperseg=12)
-
-        assert_allclose(f, f1)
-        assert_allclose(c, c1)
-
-    def test_pad_shorter_y(self):
-        x = np.zeros(12)
-        y = np.zeros(8)
-
-        f = np.linspace(0, 0.5, 7)
-        c = np.zeros(7,dtype=np.complex128)
-        f1, c1 = csd(x, y, nperseg=12)
-
-        assert_allclose(f, f1)
-        assert_allclose(c, c1)
-
-    def test_real_onesided_even(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, nperseg=8)
-        assert_allclose(f, np.linspace(0, 0.5, 5))
-        q = np.array([0.08333333, 0.15277778, 0.22222222, 0.22222222,
-                      0.11111111])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_real_onesided_odd(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, nperseg=9)
-        assert_allclose(f, np.arange(5.0)/9.0)
-        q = np.array([0.12477455, 0.23430933, 0.17072113, 0.17072113,
-                      0.17072113])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_real_twosided(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, nperseg=8, return_onesided=False)
-        assert_allclose(f, fftfreq(8, 1.0))
-        q = np.array([0.08333333, 0.07638889, 0.11111111, 0.11111111,
-                      0.11111111, 0.11111111, 0.11111111, 0.07638889])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_real_spectrum(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, nperseg=8, scaling='spectrum')
-        assert_allclose(f, np.linspace(0, 0.5, 5))
-        q = np.array([0.015625, 0.02864583, 0.04166667, 0.04166667,
-                      0.02083333])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_integer_onesided_even(self):
-        x = np.zeros(16, dtype=int)
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, nperseg=8)
-        assert_allclose(f, np.linspace(0, 0.5, 5))
-        q = np.array([0.08333333, 0.15277778, 0.22222222, 0.22222222,
-                      0.11111111])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_integer_onesided_odd(self):
-        x = np.zeros(16, dtype=int)
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, nperseg=9)
-        assert_allclose(f, np.arange(5.0)/9.0)
-        q = np.array([0.12477455, 0.23430933, 0.17072113, 0.17072113,
-                      0.17072113])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_integer_twosided(self):
-        x = np.zeros(16, dtype=int)
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, nperseg=8, return_onesided=False)
-        assert_allclose(f, fftfreq(8, 1.0))
-        q = np.array([0.08333333, 0.07638889, 0.11111111, 0.11111111,
-                      0.11111111, 0.11111111, 0.11111111, 0.07638889])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_complex(self):
-        x = np.zeros(16, np.complex128)
-        x[0] = 1.0 + 2.0j
-        x[8] = 1.0 + 2.0j
-        f, p = csd(x, x, nperseg=8, return_onesided=False)
-        assert_allclose(f, fftfreq(8, 1.0))
-        q = np.array([0.41666667, 0.38194444, 0.55555556, 0.55555556,
-                      0.55555556, 0.55555556, 0.55555556, 0.38194444])
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-
-    def test_unk_scaling(self):
-        assert_raises(ValueError, csd, np.zeros(4, np.complex128),
-                      np.ones(4, np.complex128), scaling='foo', nperseg=4)
-
-    def test_detrend_linear(self):
-        x = np.arange(10, dtype=np.float64) + 0.04
-        f, p = csd(x, x, nperseg=10, detrend='linear')
-        assert_allclose(p, np.zeros_like(p), atol=1e-15)
-
-    def test_no_detrending(self):
-        x = np.arange(10, dtype=np.float64) + 0.04
-        f1, p1 = csd(x, x, nperseg=10, detrend=False)
-        f2, p2 = csd(x, x, nperseg=10, detrend=lambda x: x)
-        assert_allclose(f1, f2, atol=1e-15)
-        assert_allclose(p1, p2, atol=1e-15)
-
-    def test_detrend_external(self):
-        x = np.arange(10, dtype=np.float64) + 0.04
-        f, p = csd(x, x, nperseg=10,
-                   detrend=lambda seg: signal.detrend(seg, type='l'))
-        assert_allclose(p, np.zeros_like(p), atol=1e-15)
-
-    def test_detrend_external_nd_m1(self):
-        x = np.arange(40, dtype=np.float64) + 0.04
-        x = x.reshape((2,2,10))
-        f, p = csd(x, x, nperseg=10,
-                   detrend=lambda seg: signal.detrend(seg, type='l'))
-        assert_allclose(p, np.zeros_like(p), atol=1e-15)
-
-    def test_detrend_external_nd_0(self):
-        x = np.arange(20, dtype=np.float64) + 0.04
-        x = x.reshape((2,1,10))
-        x = np.moveaxis(x, 2, 0)
-        f, p = csd(x, x, nperseg=10, axis=0,
-                   detrend=lambda seg: signal.detrend(seg, axis=0, type='l'))
-        assert_allclose(p, np.zeros_like(p), atol=1e-15)
-
-    def test_nd_axis_m1(self):
-        x = np.arange(20, dtype=np.float64) + 0.04
-        x = x.reshape((2,1,10))
-        f, p = csd(x, x, nperseg=10)
-        assert_array_equal(p.shape, (2, 1, 6))
-        assert_allclose(p[0,0,:], p[1,0,:], atol=1e-13, rtol=1e-13)
-        f0, p0 = csd(x[0,0,:], x[0,0,:], nperseg=10)
-        assert_allclose(p0[np.newaxis,:], p[1,:], atol=1e-13, rtol=1e-13)
-
-    def test_nd_axis_0(self):
-        x = np.arange(20, dtype=np.float64) + 0.04
-        x = x.reshape((10,2,1))
-        f, p = csd(x, x, nperseg=10, axis=0)
-        assert_array_equal(p.shape, (6,2,1))
-        assert_allclose(p[:,0,0], p[:,1,0], atol=1e-13, rtol=1e-13)
-        f0, p0 = csd(x[:,0,0], x[:,0,0], nperseg=10)
-        assert_allclose(p0, p[:,1,0], atol=1e-13, rtol=1e-13)
-
-    def test_window_external(self):
-        x = np.zeros(16)
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, 10, 'hann', 8)
-        win = signal.get_window('hann', 8)
-        fe, pe = csd(x, x, 10, win, nperseg=None)
-        assert_array_almost_equal_nulp(p, pe)
-        assert_array_almost_equal_nulp(f, fe)
-        assert_array_equal(fe.shape, (5,))  # because win length used as nperseg
-        assert_array_equal(pe.shape, (5,))
-        assert_raises(ValueError, csd, x, x,
-                      10, win, nperseg=256)  # because nperseg != win.shape[-1]
-        win_err = signal.get_window('hann', 32)
-        assert_raises(ValueError, csd, x, x,
-              10, win_err, nperseg=None)  # because win longer than signal
-
-    def test_empty_input(self):
-        f, p = csd([],np.zeros(10))
-        assert_array_equal(f.shape, (0,))
-        assert_array_equal(p.shape, (0,))
-
-        f, p = csd(np.zeros(10),[])
-        assert_array_equal(f.shape, (0,))
-        assert_array_equal(p.shape, (0,))
-
-        for shape in [(0,), (3,0), (0,5,2)]:
-            f, p = csd(np.empty(shape), np.empty(shape))
-            assert_array_equal(f.shape, shape)
-            assert_array_equal(p.shape, shape)
-
-        f, p = csd(np.ones(10), np.empty((5,0)))
-        assert_array_equal(f.shape, (5,0))
-        assert_array_equal(p.shape, (5,0))
-
-        f, p = csd(np.empty((5,0)), np.ones(10))
-        assert_array_equal(f.shape, (5,0))
-        assert_array_equal(p.shape, (5,0))
-
-    def test_empty_input_other_axis(self):
-        for shape in [(3,0), (0,5,2)]:
-            f, p = csd(np.empty(shape), np.empty(shape), axis=1)
-            assert_array_equal(f.shape, shape)
-            assert_array_equal(p.shape, shape)
-
-        f, p = csd(np.empty((10,10,3)), np.zeros((10,0,1)), axis=1)
-        assert_array_equal(f.shape, (10,0,3))
-        assert_array_equal(p.shape, (10,0,3))
-
-        f, p = csd(np.empty((10,0,1)), np.zeros((10,10,3)), axis=1)
-        assert_array_equal(f.shape, (10,0,3))
-        assert_array_equal(p.shape, (10,0,3))
-
-    def test_short_data(self):
-        x = np.zeros(8)
-        x[0] = 1
-
-        #for string-like window, input signal length < nperseg value gives
-        #UserWarning, sets nperseg to x.shape[-1]
-        with suppress_warnings() as sup:
-            msg = "nperseg = 256 is greater than input length  = 8, using nperseg = 8"
-            sup.filter(UserWarning, msg)
-            f, p = csd(x, x, window='hann')  # default nperseg
-            f1, p1 = csd(x, x, window='hann', nperseg=256)  # user-specified nperseg
-        f2, p2 = csd(x, x, nperseg=8)  # valid nperseg, doesn't give warning
-        assert_allclose(f, f2)
-        assert_allclose(p, p2)
-        assert_allclose(f1, f2)
-        assert_allclose(p1, p2)
-
-    def test_window_long_or_nd(self):
-        assert_raises(ValueError, csd, np.zeros(4), np.ones(4), 1,
-                      np.array([1,1,1,1,1]))
-        assert_raises(ValueError, csd, np.zeros(4), np.ones(4), 1,
-                      np.arange(6).reshape((2,3)))
-
-    def test_nondefault_noverlap(self):
-        x = np.zeros(64)
-        x[::8] = 1
-        f, p = csd(x, x, nperseg=16, noverlap=4)
-        q = np.array([0, 1./12., 1./3., 1./5., 1./3., 1./5., 1./3., 1./5.,
-                      1./6.])
-        assert_allclose(p, q, atol=1e-12)
-
-    def test_bad_noverlap(self):
-        assert_raises(ValueError, csd, np.zeros(4), np.ones(4), 1, 'hann',
-                      2, 7)
-
-    def test_nfft_too_short(self):
-        assert_raises(ValueError, csd, np.ones(12), np.zeros(12), nfft=3,
-                      nperseg=4)
-
-    def test_real_onesided_even_32(self):
-        x = np.zeros(16, 'f')
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, nperseg=8)
-        assert_allclose(f, np.linspace(0, 0.5, 5))
-        q = np.array([0.08333333, 0.15277778, 0.22222222, 0.22222222,
-                      0.11111111], 'f')
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-        assert_(p.dtype == q.dtype)
-
-    def test_real_onesided_odd_32(self):
-        x = np.zeros(16, 'f')
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, nperseg=9)
-        assert_allclose(f, np.arange(5.0)/9.0)
-        q = np.array([0.12477458, 0.23430935, 0.17072113, 0.17072116,
-                      0.17072113], 'f')
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-        assert_(p.dtype == q.dtype)
-
-    def test_real_twosided_32(self):
-        x = np.zeros(16, 'f')
-        x[0] = 1
-        x[8] = 1
-        f, p = csd(x, x, nperseg=8, return_onesided=False)
-        assert_allclose(f, fftfreq(8, 1.0))
-        q = np.array([0.08333333, 0.07638889, 0.11111111,
-                      0.11111111, 0.11111111, 0.11111111, 0.11111111,
-                      0.07638889], 'f')
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-        assert_(p.dtype == q.dtype)
-
-    def test_complex_32(self):
-        x = np.zeros(16, 'F')
-        x[0] = 1.0 + 2.0j
-        x[8] = 1.0 + 2.0j
-        f, p = csd(x, x, nperseg=8, return_onesided=False)
-        assert_allclose(f, fftfreq(8, 1.0))
-        q = np.array([0.41666666, 0.38194442, 0.55555552, 0.55555552,
-                      0.55555558, 0.55555552, 0.55555552, 0.38194442], 'f')
-        assert_allclose(p, q, atol=1e-7, rtol=1e-7)
-        assert_(p.dtype == q.dtype,
-                f'dtype mismatch, {p.dtype}, {q.dtype}')
-
-    def test_padded_freqs(self):
-        x = np.zeros(12)
-        y = np.ones(12)
-
-        nfft = 24
-        f = fftfreq(nfft, 1.0)[:nfft//2+1]
-        f[-1] *= -1
-        fodd, _ = csd(x, y, nperseg=5, nfft=nfft)
-        feven, _ = csd(x, y, nperseg=6, nfft=nfft)
-        assert_allclose(f, fodd)
-        assert_allclose(f, feven)
-
-        nfft = 25
-        f = fftfreq(nfft, 1.0)[:(nfft + 1)//2]
-        fodd, _ = csd(x, y, nperseg=5, nfft=nfft)
-        feven, _ = csd(x, y, nperseg=6, nfft=nfft)
-        assert_allclose(f, fodd)
-        assert_allclose(f, feven)
-
-    def test_copied_data(self):
-        x = np.random.randn(64)
-        y = x.copy()
-
-        _, p_same = csd(x, x, nperseg=8, average='mean',
-                        return_onesided=False)
-        _, p_copied = csd(x, y, nperseg=8, average='mean',
-                          return_onesided=False)
-        assert_allclose(p_same, p_copied)
-
-        _, p_same = csd(x, x, nperseg=8, average='median',
-                        return_onesided=False)
-        _, p_copied = csd(x, y, nperseg=8, average='median',
-                          return_onesided=False)
-        assert_allclose(p_same, p_copied)
-
-
-class TestCoherence:
-    def test_identical_input(self):
-        x = np.random.randn(20)
-        y = np.copy(x)  # So `y is x` -> False
-
-        f = np.linspace(0, 0.5, 6)
-        C = np.ones(6)
-        f1, C1 = coherence(x, y, nperseg=10)
-
-        assert_allclose(f, f1)
-        assert_allclose(C, C1)
-
-    def test_phase_shifted_input(self):
-        x = np.random.randn(20)
-        y = -x
-
-        f = np.linspace(0, 0.5, 6)
-        C = np.ones(6)
-        f1, C1 = coherence(x, y, nperseg=10)
-
-        assert_allclose(f, f1)
-        assert_allclose(C, C1)
-
-
-class TestSpectrogram:
-    def test_average_all_segments(self):
-        x = np.random.randn(1024)
-
-        fs = 1.0
-        window = ('tukey', 0.25)
-        nperseg = 16
-        noverlap = 2
-
-        f, _, P = spectrogram(x, fs, window, nperseg, noverlap)
-        fw, Pw = welch(x, fs, window, nperseg, noverlap)
-        assert_allclose(f, fw)
-        assert_allclose(np.mean(P, axis=-1), Pw)
-
-    def test_window_external(self):
-        x = np.random.randn(1024)
-
-        fs = 1.0
-        window = ('tukey', 0.25)
-        nperseg = 16
-        noverlap = 2
-        f, _, P = spectrogram(x, fs, window, nperseg, noverlap)
-
-        win = signal.get_window(('tukey', 0.25), 16)
-        fe, _, Pe = spectrogram(x, fs, win, nperseg=None, noverlap=2)
-        assert_array_equal(fe.shape, (9,))  # because win length used as nperseg
-        assert_array_equal(Pe.shape, (9,73))
-        assert_raises(ValueError, spectrogram, x,
-                      fs, win, nperseg=8)  # because nperseg != win.shape[-1]
-        win_err = signal.get_window(('tukey', 0.25), 2048)
-        assert_raises(ValueError, spectrogram, x,
-                      fs, win_err, nperseg=None)  # win longer than signal
-
-    def test_short_data(self):
-        x = np.random.randn(1024)
-        fs = 1.0
-
-        #for string-like window, input signal length < nperseg value gives
-        #UserWarning, sets nperseg to x.shape[-1]
-        f, _, p = spectrogram(x, fs, window=('tukey',0.25))  # default nperseg
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning,
-                       "nperseg = 1025 is greater than input length  = 1024, "
-                       "using nperseg = 1024",)
-            f1, _, p1 = spectrogram(x, fs, window=('tukey',0.25),
-                                    nperseg=1025)  # user-specified nperseg
-        f2, _, p2 = spectrogram(x, fs, nperseg=256)  # to compare w/default
-        f3, _, p3 = spectrogram(x, fs, nperseg=1024)  # compare w/user-spec'd
-        assert_allclose(f, f2)
-        assert_allclose(p, p2)
-        assert_allclose(f1, f3)
-        assert_allclose(p1, p3)
-
-class TestLombscargle:
-    def test_frequency(self):
-        """Test if frequency location of peak corresponds to frequency of
-        generated input signal.
-        """
-
-        # Input parameters
-        ampl = 2.
-        w = 1.
-        phi = 0.5 * np.pi
-        nin = 100
-        nout = 1000
-        p = 0.7  # Fraction of points to select
-
-        # Randomly select a fraction of an array with timesteps
-        np.random.seed(2353425)
-        r = np.random.rand(nin)
-        t = np.linspace(0.01*np.pi, 10.*np.pi, nin)[r >= p]
-
-        # Plot a sine wave for the selected times
-        x = ampl * np.sin(w*t + phi)
-
-        # Define the array of frequencies for which to compute the periodogram
-        f = np.linspace(0.01, 10., nout)
-
-        # Calculate Lomb-Scargle periodogram
-        P = lombscargle(t, x, f)
-
-        # Check if difference between found frequency maximum and input
-        # frequency is less than accuracy
-        delta = f[1] - f[0]
-        assert_(w - f[np.argmax(P)] < (delta/2.))
-
-    def test_amplitude(self):
-        # Test if height of peak in normalized Lomb-Scargle periodogram
-        # corresponds to amplitude of the generated input signal.
-
-        # Input parameters
-        ampl = 2.
-        w = 1.
-        phi = 0.5 * np.pi
-        nin = 100
-        nout = 1000
-        p = 0.7  # Fraction of points to select
-
-        # Randomly select a fraction of an array with timesteps
-        np.random.seed(2353425)
-        r = np.random.rand(nin)
-        t = np.linspace(0.01*np.pi, 10.*np.pi, nin)[r >= p]
-
-        # Plot a sine wave for the selected times
-        x = ampl * np.sin(w*t + phi)
-
-        # Define the array of frequencies for which to compute the periodogram
-        f = np.linspace(0.01, 10., nout)
-
-        # Calculate Lomb-Scargle periodogram
-        pgram = lombscargle(t, x, f)
-
-        # Normalize
-        pgram = np.sqrt(4 * pgram / t.shape[0])
-
-        # Check if difference between found frequency maximum and input
-        # frequency is less than accuracy
-        assert_approx_equal(np.max(pgram), ampl, significant=2)
-
-    def test_precenter(self):
-        # Test if precenter gives the same result as manually precentering.
-
-        # Input parameters
-        ampl = 2.
-        w = 1.
-        phi = 0.5 * np.pi
-        nin = 100
-        nout = 1000
-        p = 0.7  # Fraction of points to select
-        offset = 0.15  # Offset to be subtracted in pre-centering
-
-        # Randomly select a fraction of an array with timesteps
-        np.random.seed(2353425)
-        r = np.random.rand(nin)
-        t = np.linspace(0.01*np.pi, 10.*np.pi, nin)[r >= p]
-
-        # Plot a sine wave for the selected times
-        x = ampl * np.sin(w*t + phi) + offset
-
-        # Define the array of frequencies for which to compute the periodogram
-        f = np.linspace(0.01, 10., nout)
-
-        # Calculate Lomb-Scargle periodogram
-        pgram = lombscargle(t, x, f, precenter=True)
-        pgram2 = lombscargle(t, x - x.mean(), f, precenter=False)
-
-        # check if centering worked
-        assert_allclose(pgram, pgram2)
-
-    def test_normalize(self):
-        # Test normalize option of Lomb-Scarge.
-
-        # Input parameters
-        ampl = 2.
-        w = 1.
-        phi = 0.5 * np.pi
-        nin = 100
-        nout = 1000
-        p = 0.7  # Fraction of points to select
-
-        # Randomly select a fraction of an array with timesteps
-        np.random.seed(2353425)
-        r = np.random.rand(nin)
-        t = np.linspace(0.01*np.pi, 10.*np.pi, nin)[r >= p]
-
-        # Plot a sine wave for the selected times
-        x = ampl * np.sin(w*t + phi)
-
-        # Define the array of frequencies for which to compute the periodogram
-        f = np.linspace(0.01, 10., nout)
-
-        # Calculate Lomb-Scargle periodogram
-        pgram = lombscargle(t, x, f)
-        pgram2 = lombscargle(t, x, f, normalize=True)
-
-        # check if normalization works as expected
-        assert_allclose(pgram * 2 / np.dot(x, x), pgram2)
-        assert_approx_equal(np.max(pgram2), 1.0, significant=2)
-
-    def test_wrong_shape(self):
-        t = np.linspace(0, 1, 1)
-        x = np.linspace(0, 1, 2)
-        f = np.linspace(0, 1, 3)
-        assert_raises(ValueError, lombscargle, t, x, f)
-
-    def test_zero_division(self):
-        t = np.zeros(1)
-        x = np.zeros(1)
-        f = np.zeros(1)
-        assert_raises(ZeroDivisionError, lombscargle, t, x, f)
-
-    def test_lombscargle_atan_vs_atan2(self):
-        # https://github.com/scipy/scipy/issues/3787
-        # This raised a ZeroDivisionError.
-        t = np.linspace(0, 10, 1000, endpoint=False)
-        x = np.sin(4*t)
-        f = np.linspace(0, 50, 500, endpoint=False) + 0.1
-        lombscargle(t, x, f*2*np.pi)
-
-
-class TestSTFT:
-    def test_input_validation(self):
-
-        def chk_VE(match):
-            """Assert for a ValueError matching regexp `match`.
-
-            This little wrapper allows a more concise code layout.
-            """
-            return pytest.raises(ValueError, match=match)
-
-        # Checks for check_COLA():
-        with chk_VE('nperseg must be a positive integer'):
-            check_COLA('hann', -10, 0)
-        with chk_VE('noverlap must be less than nperseg.'):
-            check_COLA('hann', 10, 20)
-        with chk_VE('window must be 1-D'):
-            check_COLA(np.ones((2, 2)), 10, 0)
-        with chk_VE('window must have length of nperseg'):
-            check_COLA(np.ones(20), 10, 0)
-
-        # Checks for check_NOLA():
-        with chk_VE('nperseg must be a positive integer'):
-            check_NOLA('hann', -10, 0)
-        with chk_VE('noverlap must be less than nperseg'):
-            check_NOLA('hann', 10, 20)
-        with chk_VE('window must be 1-D'):
-            check_NOLA(np.ones((2, 2)), 10, 0)
-        with chk_VE('window must have length of nperseg'):
-            check_NOLA(np.ones(20), 10, 0)
-        with chk_VE('noverlap must be a nonnegative integer'):
-            check_NOLA('hann', 64, -32)
-
-        x = np.zeros(1024)
-        z = stft(x)[2]
-
-        # Checks for stft():
-        with chk_VE('window must be 1-D'):
-            stft(x, window=np.ones((2, 2)))
-        with chk_VE('value specified for nperseg is different ' +
-                    'from length of window'):
-            stft(x, window=np.ones(10), nperseg=256)
-        with chk_VE('nperseg must be a positive integer'):
-            stft(x, nperseg=-256)
-        with chk_VE('noverlap must be less than nperseg.'):
-            stft(x, nperseg=256, noverlap=1024)
-        with chk_VE('nfft must be greater than or equal to nperseg.'):
-            stft(x, nperseg=256, nfft=8)
-
-        # Checks for istft():
-        with chk_VE('Input stft must be at least 2d!'):
-            istft(x)
-        with chk_VE('window must be 1-D'):
-            istft(z, window=np.ones((2, 2)))
-        with chk_VE('window must have length of 256'):
-            istft(z, window=np.ones(10), nperseg=256)
-        with chk_VE('nperseg must be a positive integer'):
-            istft(z, nperseg=-256)
-        with chk_VE('noverlap must be less than nperseg.'):
-            istft(z, nperseg=256, noverlap=1024)
-        with chk_VE('nfft must be greater than or equal to nperseg.'):
-            istft(z, nperseg=256, nfft=8)
-        with pytest.warns(UserWarning, match="NOLA condition failed, " +
-                          "STFT may not be invertible"):
-            istft(z, nperseg=256, noverlap=0, window='hann')
-        with chk_VE('Must specify differing time and frequency axes!'):
-            istft(z, time_axis=0, freq_axis=0)
-
-        # Checks for _spectral_helper():
-        with chk_VE("Unknown value for mode foo, must be one of: " +
-                    r"\{'psd', 'stft'\}"):
-            _spectral_helper(x, x, mode='foo')
-        with chk_VE("x and y must be equal if mode is 'stft'"):
-            _spectral_helper(x[:512], x[512:], mode='stft')
-        with chk_VE("Unknown boundary option 'foo', must be one of: " +
-                    r"\['even', 'odd', 'constant', 'zeros', None\]"):
-            _spectral_helper(x, x, boundary='foo')
-
-        scaling = "not_valid"
-        with chk_VE(fr"Parameter {scaling=} not in \['spectrum', 'psd'\]!"):
-            stft(x, scaling=scaling)
-        with chk_VE(fr"Parameter {scaling=} not in \['spectrum', 'psd'\]!"):
-            istft(z, scaling=scaling)
-
-    def test_check_COLA(self):
-        settings = [
-                    ('boxcar', 10, 0),
-                    ('boxcar', 10, 9),
-                    ('bartlett', 51, 26),
-                    ('hann', 256, 128),
-                    ('hann', 256, 192),
-                    ('blackman', 300, 200),
-                    (('tukey', 0.5), 256, 64),
-                    ('hann', 256, 255),
-                    ]
-
-        for setting in settings:
-            msg = '{}, {}, {}'.format(*setting)
-            assert_equal(True, check_COLA(*setting), err_msg=msg)
-
-    def test_check_NOLA(self):
-        settings_pass = [
-                    ('boxcar', 10, 0),
-                    ('boxcar', 10, 9),
-                    ('boxcar', 10, 7),
-                    ('bartlett', 51, 26),
-                    ('bartlett', 51, 10),
-                    ('hann', 256, 128),
-                    ('hann', 256, 192),
-                    ('hann', 256, 37),
-                    ('blackman', 300, 200),
-                    ('blackman', 300, 123),
-                    (('tukey', 0.5), 256, 64),
-                    (('tukey', 0.5), 256, 38),
-                    ('hann', 256, 255),
-                    ('hann', 256, 39),
-                    ]
-        for setting in settings_pass:
-            msg = '{}, {}, {}'.format(*setting)
-            assert_equal(True, check_NOLA(*setting), err_msg=msg)
-
-        w_fail = np.ones(16)
-        w_fail[::2] = 0
-        settings_fail = [
-                    (w_fail, len(w_fail), len(w_fail) // 2),
-                    ('hann', 64, 0),
-        ]
-        for setting in settings_fail:
-            msg = '{}, {}, {}'.format(*setting)
-            assert_equal(False, check_NOLA(*setting), err_msg=msg)
-
-    def test_average_all_segments(self):
-        np.random.seed(1234)
-        x = np.random.randn(1024)
-
-        fs = 1.0
-        window = 'hann'
-        nperseg = 16
-        noverlap = 8
-
-        # Compare twosided, because onesided welch doubles non-DC terms to
-        # account for power at negative frequencies. stft doesn't do this,
-        # because it breaks invertibility.
-        f, _, Z = stft(x, fs, window, nperseg, noverlap, padded=False,
-                       return_onesided=False, boundary=None)
-        fw, Pw = welch(x, fs, window, nperseg, noverlap, return_onesided=False,
-                       scaling='spectrum', detrend=False)
-
-        assert_allclose(f, fw)
-        assert_allclose(np.mean(np.abs(Z)**2, axis=-1), Pw)
-
-    def test_permute_axes(self):
-        np.random.seed(1234)
-        x = np.random.randn(1024)
-
-        fs = 1.0
-        window = 'hann'
-        nperseg = 16
-        noverlap = 8
-
-        f1, t1, Z1 = stft(x, fs, window, nperseg, noverlap)
-        f2, t2, Z2 = stft(x.reshape((-1, 1, 1)), fs, window, nperseg, noverlap,
-                          axis=0)
-
-        t3, x1 = istft(Z1, fs, window, nperseg, noverlap)
-        t4, x2 = istft(Z2.T, fs, window, nperseg, noverlap, time_axis=0,
-                       freq_axis=-1)
-
-        assert_allclose(f1, f2)
-        assert_allclose(t1, t2)
-        assert_allclose(t3, t4)
-        assert_allclose(Z1, Z2[:, 0, 0, :])
-        assert_allclose(x1, x2[:, 0, 0])
-
-    @pytest.mark.parametrize('scaling', ['spectrum', 'psd'])
-    def test_roundtrip_real(self, scaling):
-        np.random.seed(1234)
-
-        settings = [
-                    ('boxcar', 100, 10, 0),           # Test no overlap
-                    ('boxcar', 100, 10, 9),           # Test high overlap
-                    ('bartlett', 101, 51, 26),        # Test odd nperseg
-                    ('hann', 1024, 256, 128),         # Test defaults
-                    (('tukey', 0.5), 1152, 256, 64),  # Test Tukey
-                    ('hann', 1024, 256, 255),         # Test overlapped hann
-                    ]
-
-        for window, N, nperseg, noverlap in settings:
-            t = np.arange(N)
-            x = 10*np.random.randn(t.size)
-
-            _, _, zz = stft(x, nperseg=nperseg, noverlap=noverlap,
-                            window=window, detrend=None, padded=False,
-                            scaling=scaling)
-
-            tr, xr = istft(zz, nperseg=nperseg, noverlap=noverlap,
-                           window=window, scaling=scaling)
-
-            msg = f'{window}, {noverlap}'
-            assert_allclose(t, tr, err_msg=msg)
-            assert_allclose(x, xr, err_msg=msg)
-
-    def test_roundtrip_not_nola(self):
-        np.random.seed(1234)
-
-        w_fail = np.ones(16)
-        w_fail[::2] = 0
-        settings = [
-                    (w_fail, 256, len(w_fail), len(w_fail) // 2),
-                    ('hann', 256, 64, 0),
-        ]
-
-        for window, N, nperseg, noverlap in settings:
-            msg = f'{window}, {N}, {nperseg}, {noverlap}'
-            assert not check_NOLA(window, nperseg, noverlap), msg
-
-            t = np.arange(N)
-            x = 10 * np.random.randn(t.size)
-
-            _, _, zz = stft(x, nperseg=nperseg, noverlap=noverlap,
-                            window=window, detrend=None, padded=True,
-                            boundary='zeros')
-            with pytest.warns(UserWarning, match='NOLA'):
-                tr, xr = istft(zz, nperseg=nperseg, noverlap=noverlap,
-                               window=window, boundary=True)
-
-            assert np.allclose(t, tr[:len(t)]), msg
-            assert not np.allclose(x, xr[:len(x)]), msg
-
-    def test_roundtrip_nola_not_cola(self):
-        np.random.seed(1234)
-
-        settings = [
-                    ('boxcar', 100, 10, 3),           # NOLA True, COLA False
-                    ('bartlett', 101, 51, 37),        # NOLA True, COLA False
-                    ('hann', 1024, 256, 127),         # NOLA True, COLA False
-                    (('tukey', 0.5), 1152, 256, 14),  # NOLA True, COLA False
-                    ('hann', 1024, 256, 5),           # NOLA True, COLA False
-                    ]
-
-        for window, N, nperseg, noverlap in settings:
-            msg = f'{window}, {nperseg}, {noverlap}'
-            assert check_NOLA(window, nperseg, noverlap), msg
-            assert not check_COLA(window, nperseg, noverlap), msg
-
-            t = np.arange(N)
-            x = 10 * np.random.randn(t.size)
-
-            _, _, zz = stft(x, nperseg=nperseg, noverlap=noverlap,
-                            window=window, detrend=None, padded=True,
-                            boundary='zeros')
-
-            tr, xr = istft(zz, nperseg=nperseg, noverlap=noverlap,
-                           window=window, boundary=True)
-
-            msg = f'{window}, {noverlap}'
-            assert_allclose(t, tr[:len(t)], err_msg=msg)
-            assert_allclose(x, xr[:len(x)], err_msg=msg)
-
-    def test_roundtrip_float32(self):
-        np.random.seed(1234)
-
-        settings = [('hann', 1024, 256, 128)]
-
-        for window, N, nperseg, noverlap in settings:
-            t = np.arange(N)
-            x = 10*np.random.randn(t.size)
-            x = x.astype(np.float32)
-
-            _, _, zz = stft(x, nperseg=nperseg, noverlap=noverlap,
-                            window=window, detrend=None, padded=False)
-
-            tr, xr = istft(zz, nperseg=nperseg, noverlap=noverlap,
-                           window=window)
-
-            msg = f'{window}, {noverlap}'
-            assert_allclose(t, t, err_msg=msg)
-            assert_allclose(x, xr, err_msg=msg, rtol=1e-4, atol=1e-5)
-            assert_(x.dtype == xr.dtype)
-
-    @pytest.mark.parametrize('scaling', ['spectrum', 'psd'])
-    def test_roundtrip_complex(self, scaling):
-        np.random.seed(1234)
-
-        settings = [
-                    ('boxcar', 100, 10, 0),           # Test no overlap
-                    ('boxcar', 100, 10, 9),           # Test high overlap
-                    ('bartlett', 101, 51, 26),        # Test odd nperseg
-                    ('hann', 1024, 256, 128),         # Test defaults
-                    (('tukey', 0.5), 1152, 256, 64),  # Test Tukey
-                    ('hann', 1024, 256, 255),         # Test overlapped hann
-                    ]
-
-        for window, N, nperseg, noverlap in settings:
-            t = np.arange(N)
-            x = 10*np.random.randn(t.size) + 10j*np.random.randn(t.size)
-
-            _, _, zz = stft(x, nperseg=nperseg, noverlap=noverlap,
-                            window=window, detrend=None, padded=False,
-                            return_onesided=False, scaling=scaling)
-
-            tr, xr = istft(zz, nperseg=nperseg, noverlap=noverlap,
-                           window=window, input_onesided=False,
-                           scaling=scaling)
-
-            msg = f'{window}, {nperseg}, {noverlap}'
-            assert_allclose(t, tr, err_msg=msg)
-            assert_allclose(x, xr, err_msg=msg)
-
-        # Check that asking for onesided switches to twosided
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning,
-                       "Input data is complex, switching to return_onesided=False")
-            _, _, zz = stft(x, nperseg=nperseg, noverlap=noverlap,
-                            window=window, detrend=None, padded=False,
-                            return_onesided=True, scaling=scaling)
-
-        tr, xr = istft(zz, nperseg=nperseg, noverlap=noverlap,
-                       window=window, input_onesided=False, scaling=scaling)
-
-        msg = f'{window}, {nperseg}, {noverlap}'
-        assert_allclose(t, tr, err_msg=msg)
-        assert_allclose(x, xr, err_msg=msg)
-
-    def test_roundtrip_boundary_extension(self):
-        np.random.seed(1234)
-
-        # Test against boxcar, since window is all ones, and thus can be fully
-        # recovered with no boundary extension
-
-        settings = [
-                    ('boxcar', 100, 10, 0),           # Test no overlap
-                    ('boxcar', 100, 10, 9),           # Test high overlap
-                    ]
-
-        for window, N, nperseg, noverlap in settings:
-            t = np.arange(N)
-            x = 10*np.random.randn(t.size)
-
-            _, _, zz = stft(x, nperseg=nperseg, noverlap=noverlap,
-                           window=window, detrend=None, padded=True,
-                           boundary=None)
-
-            _, xr = istft(zz, noverlap=noverlap, window=window, boundary=False)
-
-            for boundary in ['even', 'odd', 'constant', 'zeros']:
-                _, _, zz_ext = stft(x, nperseg=nperseg, noverlap=noverlap,
-                                window=window, detrend=None, padded=True,
-                                boundary=boundary)
-
-                _, xr_ext = istft(zz_ext, noverlap=noverlap, window=window,
-                                boundary=True)
-
-                msg = f'{window}, {noverlap}, {boundary}'
-                assert_allclose(x, xr, err_msg=msg)
-                assert_allclose(x, xr_ext, err_msg=msg)
-
-    def test_roundtrip_padded_signal(self):
-        np.random.seed(1234)
-
-        settings = [
-                    ('boxcar', 101, 10, 0),
-                    ('hann', 1000, 256, 128),
-                    ]
-
-        for window, N, nperseg, noverlap in settings:
-            t = np.arange(N)
-            x = 10*np.random.randn(t.size)
-
-            _, _, zz = stft(x, nperseg=nperseg, noverlap=noverlap,
-                            window=window, detrend=None, padded=True)
-
-            tr, xr = istft(zz, noverlap=noverlap, window=window)
-
-            msg = f'{window}, {noverlap}'
-            # Account for possible zero-padding at the end
-            assert_allclose(t, tr[:t.size], err_msg=msg)
-            assert_allclose(x, xr[:x.size], err_msg=msg)
-
-    def test_roundtrip_padded_FFT(self):
-        np.random.seed(1234)
-
-        settings = [
-                    ('hann', 1024, 256, 128, 512),
-                    ('hann', 1024, 256, 128, 501),
-                    ('boxcar', 100, 10, 0, 33),
-                    (('tukey', 0.5), 1152, 256, 64, 1024),
-                    ]
-
-        for window, N, nperseg, noverlap, nfft in settings:
-            t = np.arange(N)
-            x = 10*np.random.randn(t.size)
-            xc = x*np.exp(1j*np.pi/4)
-
-            # real signal
-            _, _, z = stft(x, nperseg=nperseg, noverlap=noverlap, nfft=nfft,
-                            window=window, detrend=None, padded=True)
-
-            # complex signal
-            _, _, zc = stft(xc, nperseg=nperseg, noverlap=noverlap, nfft=nfft,
-                            window=window, detrend=None, padded=True,
-                            return_onesided=False)
-
-            tr, xr = istft(z, nperseg=nperseg, noverlap=noverlap, nfft=nfft,
-                           window=window)
-
-            tr, xcr = istft(zc, nperseg=nperseg, noverlap=noverlap, nfft=nfft,
-                            window=window, input_onesided=False)
-
-            msg = f'{window}, {noverlap}'
-            assert_allclose(t, tr, err_msg=msg)
-            assert_allclose(x, xr, err_msg=msg)
-            assert_allclose(xc, xcr, err_msg=msg)
-
-    def test_axis_rolling(self):
-        np.random.seed(1234)
-
-        x_flat = np.random.randn(1024)
-        _, _, z_flat = stft(x_flat)
-
-        for a in range(3):
-            newshape = [1,]*3
-            newshape[a] = -1
-            x = x_flat.reshape(newshape)
-
-            _, _, z_plus = stft(x, axis=a)  # Positive axis index
-            _, _, z_minus = stft(x, axis=a-x.ndim)  # Negative axis index
-
-            assert_equal(z_flat, z_plus.squeeze(), err_msg=a)
-            assert_equal(z_flat, z_minus.squeeze(), err_msg=a-x.ndim)
-
-        # z_flat has shape [n_freq, n_time]
-
-        # Test vs. transpose
-        _, x_transpose_m = istft(z_flat.T, time_axis=-2, freq_axis=-1)
-        _, x_transpose_p = istft(z_flat.T, time_axis=0, freq_axis=1)
-
-        assert_allclose(x_flat, x_transpose_m, err_msg='istft transpose minus')
-        assert_allclose(x_flat, x_transpose_p, err_msg='istft transpose plus')
-
-    def test_roundtrip_scaling(self):
-        """Verify behavior of scaling parameter. """
-        # Create 1024 sample cosine signal with amplitude 2:
-        X = np.zeros(513, dtype=complex)
-        X[256] = 1024
-        x = np.fft.irfft(X)
-        power_x = sum(x**2) / len(x)  # power of signal x is 2
-
-        # Calculate magnitude-scaled STFT:
-        Zs = stft(x, boundary='even', scaling='spectrum')[2]
-
-        # Test round trip:
-        x1 = istft(Zs, boundary=True, scaling='spectrum')[1]
-        assert_allclose(x1, x)
-
-        # For a Hann-windowed 256 sample length FFT, we expect a peak at
-        # frequency 64 (since it is 1/4 the length of X) with a height of 1
-        # (half the amplitude). A Hann window of a perfectly centered sine has
-        # the magnitude [..., 0, 0, 0.5, 1, 0.5, 0, 0, ...].
-        # Note that in this case the 'even' padding works for the beginning
-        # but not for the end of the STFT.
-        assert_allclose(abs(Zs[63, :-1]), 0.5)
-        assert_allclose(abs(Zs[64, :-1]), 1)
-        assert_allclose(abs(Zs[65, :-1]), 0.5)
-        # All other values should be zero:
-        Zs[63:66, :-1] = 0
-        # Note since 'rtol' does not have influence here, atol needs to be set:
-        assert_allclose(Zs[:, :-1], 0, atol=np.finfo(Zs.dtype).resolution)
-
-        # Calculate two-sided psd-scaled STFT:
-        #  - using 'even' padding since signal is axis symmetric - this ensures
-        #    stationary behavior on the boundaries
-        #  - using the two-sided transform allows determining the spectral
-        #    power by `sum(abs(Zp[:, k])**2) / len(f)` for the k-th time slot.
-        Zp = stft(x, return_onesided=False, boundary='even', scaling='psd')[2]
-
-        # Calculate spectral power of Zd by summing over the frequency axis:
-        psd_Zp = np.sum(Zp.real**2 + Zp.imag**2, axis=0) / Zp.shape[0]
-        # Spectral power of Zp should be equal to the signal's power:
-        assert_allclose(psd_Zp, power_x)
-
-        # Test round trip:
-        x1 = istft(Zp, input_onesided=False, boundary=True, scaling='psd')[1]
-        assert_allclose(x1, x)
-
-        # The power of the one-sided psd-scaled STFT can be determined
-        # analogously (note that the two sides are not of equal shape):
-        Zp0 = stft(x, return_onesided=True, boundary='even', scaling='psd')[2]
-
-        # Since x is real, its Fourier transform is conjugate symmetric, i.e.,
-        # the missing 'second side' can be expressed through the 'first side':
-        Zp1 = np.conj(Zp0[-2:0:-1, :])  # 'second side' is conjugate reversed
-        assert_allclose(Zp[:129, :], Zp0)
-        assert_allclose(Zp[129:, :], Zp1)
-
-        # Calculate the spectral power:
-        s2 = (np.sum(Zp0.real ** 2 + Zp0.imag ** 2, axis=0) +
-              np.sum(Zp1.real ** 2 + Zp1.imag ** 2, axis=0))
-        psd_Zp01 = s2 / (Zp0.shape[0] + Zp1.shape[0])
-        assert_allclose(psd_Zp01, power_x)
-
-        # Test round trip:
-        x1 = istft(Zp0, input_onesided=True, boundary=True, scaling='psd')[1]
-        assert_allclose(x1, x)
-
-
-class TestSampledSpectralRepresentations:
-    """Check energy/power relations from `Spectral Analysis` section in the user guide.
-
-    A 32 sample cosine signal is used to compare the numerical to the expected results
-    stated in :ref:`tutorial_SpectralAnalysis` in
-    file ``doc/source/tutorial/signal.rst``
-    """
-    n: int = 32  #: number of samples
-    T: float = 1/16  #: sampling interval
-    a_ref: float = 3  #: amplitude of reference
-    l_a: int = 3  #: index in fft for defining frequency of test signal
-
-    x_ref: np.ndarray  #: reference signal
-    X_ref: np.ndarray  #: two-sided FFT of x_ref
-    E_ref: float  #: energy of signal
-    P_ref: float  #: power of signal
-
-    def setup_method(self):
-        """Create Cosine signal with amplitude a from spectrum. """
-        f = rfftfreq(self.n, self.T)
-        X_ref = np.zeros_like(f)
-        self.l_a = 3
-        X_ref[self.l_a] = self.a_ref/2 * self.n  # set amplitude
-        self.x_ref = irfft(X_ref)
-        self.X_ref = fft(self.x_ref)
-
-        # Closed form expression for continuous-time signal:
-        self.E_ref = self.tau * self.a_ref**2 / 2  # energy of signal
-        self.P_ref = self.a_ref**2 / 2  # power of signal
-
-    @property
-    def tau(self) -> float:
-        """Duration of signal. """
-        return self.n * self.T
-
-    @property
-    def delta_f(self) -> float:
-        """Bin width """
-        return 1 / (self.n * self.T)
-
-    def test_reference_signal(self):
-        """Test energy and power formulas. """
-        # Verify that amplitude is a:
-        assert_allclose(2*self.a_ref, np.ptp(self.x_ref), rtol=0.1)
-        # Verify that energy expression for sampled signal:
-        assert_allclose(self.T * sum(self.x_ref ** 2), self.E_ref)
-
-        # Verify that spectral energy and power formulas are correct:
-        sum_X_ref_squared = sum(self.X_ref.real**2 + self.X_ref.imag**2)
-        assert_allclose(self.T/self.n * sum_X_ref_squared, self.E_ref)
-        assert_allclose(1/self.n**2 * sum_X_ref_squared, self.P_ref)
-
-    def test_windowed_DFT(self):
-        """Verify spectral representations of windowed DFT.
-
-        Furthermore, the scalings of `periodogram` and `welch` are verified.
-        """
-        w = hann(self.n, sym=False)
-        c_amp, c_rms = abs(sum(w)), np.sqrt(sum(w.real**2 + w.imag**2))
-        Xw = fft(self.x_ref*w)  # unnormalized windowed DFT
-
-        # Verify that the *spectrum* peak is consistent:
-        assert_allclose(self.tau * Xw[self.l_a] / c_amp, self.a_ref * self.tau / 2)
-        # Verify that the *amplitude spectrum* peak is consistent:
-        assert_allclose(Xw[self.l_a] / c_amp, self.a_ref/2)
-
-        # Verify spectral power/energy equals signal's power/energy:
-        X_ESD = self.tau * self.T * abs(Xw / c_rms)**2  # Energy Spectral Density
-        X_PSD = self.T * abs(Xw / c_rms)**2  # Power Spectral Density
-        assert_allclose(self.delta_f * sum(X_ESD), self.E_ref)
-        assert_allclose(self.delta_f * sum(X_PSD), self.P_ref)
-
-        # Verify scalings of periodogram:
-        kw = dict(fs=1/self.T, window=w, detrend=False, return_onesided=False)
-        _, P_mag = periodogram(self.x_ref, scaling='spectrum', **kw)
-        _, P_psd = periodogram(self.x_ref, scaling='density', **kw)
-
-        # Verify that periodogram calculates a squared magnitude spectrum:
-        float_res = np.finfo(P_mag.dtype).resolution
-        assert_allclose(P_mag, abs(Xw/c_amp)**2, atol=float_res*max(P_mag))
-        # Verify that periodogram calculates a PSD:
-        assert_allclose(P_psd, X_PSD, atol=float_res*max(P_psd))
-
-        # Ensure that scaling of welch is the same as of periodogram:
-        kw = dict(nperseg=len(self.x_ref), noverlap=0, **kw)
-        assert_allclose(welch(self.x_ref, scaling='spectrum', **kw)[1], P_mag,
-                        atol=float_res*max(P_mag))
-        assert_allclose(welch(self.x_ref, scaling='density', **kw)[1], P_psd,
-                        atol=float_res*max(P_psd))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_wavelets.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_wavelets.py
deleted file mode 100644
index e83e6918429bfc539a44fc9a627deabafe2852a6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_wavelets.py
+++ /dev/null
@@ -1,161 +0,0 @@
-import numpy as np
-from numpy.testing import (assert_equal,
-    assert_array_equal, assert_array_almost_equal, assert_array_less, assert_,)
-import pytest
-
-import scipy.signal._wavelets as wavelets
-
-
-class TestWavelets:
-    def test_qmf(self):
-        with pytest.deprecated_call():
-            assert_array_equal(wavelets.qmf([1, 1]), [1, -1])
-
-    def test_daub(self):
-        with pytest.deprecated_call():
-            for i in range(1, 15):
-                assert_equal(len(wavelets.daub(i)), i * 2)
-
-    def test_cascade(self):
-        with pytest.deprecated_call():
-            for J in range(1, 7):
-                for i in range(1, 5):
-                    lpcoef = wavelets.daub(i)
-                    k = len(lpcoef)
-                    x, phi, psi = wavelets.cascade(lpcoef, J)
-                    assert_(len(x) == len(phi) == len(psi))
-                    assert_equal(len(x), (k - 1) * 2 ** J)
-
-    def test_morlet(self):
-        with pytest.deprecated_call():
-            x = wavelets.morlet(50, 4.1, complete=True)
-            y = wavelets.morlet(50, 4.1, complete=False)
-            # Test if complete and incomplete wavelet have same lengths:
-            assert_equal(len(x), len(y))
-            # Test if complete wavelet is less than incomplete wavelet:
-            assert_array_less(x, y)
-
-            x = wavelets.morlet(10, 50, complete=False)
-            y = wavelets.morlet(10, 50, complete=True)
-            # For large widths complete and incomplete wavelets should be
-            # identical within numerical precision:
-            assert_equal(x, y)
-
-            # miscellaneous tests:
-            x = np.array([1.73752399e-09 + 9.84327394e-25j,
-                          6.49471756e-01 + 0.00000000e+00j,
-                          1.73752399e-09 - 9.84327394e-25j])
-            y = wavelets.morlet(3, w=2, complete=True)
-            assert_array_almost_equal(x, y)
-
-            x = np.array([2.00947715e-09 + 9.84327394e-25j,
-                          7.51125544e-01 + 0.00000000e+00j,
-                          2.00947715e-09 - 9.84327394e-25j])
-            y = wavelets.morlet(3, w=2, complete=False)
-            assert_array_almost_equal(x, y, decimal=2)
-
-            x = wavelets.morlet(10000, s=4, complete=True)
-            y = wavelets.morlet(20000, s=8, complete=True)[5000:15000]
-            assert_array_almost_equal(x, y, decimal=2)
-
-            x = wavelets.morlet(10000, s=4, complete=False)
-            assert_array_almost_equal(y, x, decimal=2)
-            y = wavelets.morlet(20000, s=8, complete=False)[5000:15000]
-            assert_array_almost_equal(x, y, decimal=2)
-
-            x = wavelets.morlet(10000, w=3, s=5, complete=True)
-            y = wavelets.morlet(20000, w=3, s=10, complete=True)[5000:15000]
-            assert_array_almost_equal(x, y, decimal=2)
-
-            x = wavelets.morlet(10000, w=3, s=5, complete=False)
-            assert_array_almost_equal(y, x, decimal=2)
-            y = wavelets.morlet(20000, w=3, s=10, complete=False)[5000:15000]
-            assert_array_almost_equal(x, y, decimal=2)
-
-            x = wavelets.morlet(10000, w=7, s=10, complete=True)
-            y = wavelets.morlet(20000, w=7, s=20, complete=True)[5000:15000]
-            assert_array_almost_equal(x, y, decimal=2)
-
-            x = wavelets.morlet(10000, w=7, s=10, complete=False)
-            assert_array_almost_equal(x, y, decimal=2)
-            y = wavelets.morlet(20000, w=7, s=20, complete=False)[5000:15000]
-            assert_array_almost_equal(x, y, decimal=2)
-
-    def test_morlet2(self):
-        with pytest.deprecated_call():
-            w = wavelets.morlet2(1.0, 0.5)
-            expected = (np.pi**(-0.25) * np.sqrt(1/0.5)).astype(complex)
-            assert_array_equal(w, expected)
-
-            lengths = [5, 11, 15, 51, 101]
-            for length in lengths:
-                w = wavelets.morlet2(length, 1.0)
-                assert_(len(w) == length)
-                max_loc = np.argmax(w)
-                assert_(max_loc == (length // 2))
-
-            points = 100
-            w = abs(wavelets.morlet2(points, 2.0))
-            half_vec = np.arange(0, points // 2)
-            assert_array_almost_equal(w[half_vec], w[-(half_vec + 1)])
-
-            x = np.array([5.03701224e-09 + 2.46742437e-24j,
-                          1.88279253e+00 + 0.00000000e+00j,
-                          5.03701224e-09 - 2.46742437e-24j])
-            y = wavelets.morlet2(3, s=1/(2*np.pi), w=2)
-            assert_array_almost_equal(x, y)
-
-    def test_ricker(self):
-        with pytest.deprecated_call():
-            w = wavelets.ricker(1.0, 1)
-            expected = 2 / (np.sqrt(3 * 1.0) * (np.pi ** 0.25))
-            assert_array_equal(w, expected)
-
-            lengths = [5, 11, 15, 51, 101]
-            for length in lengths:
-                w = wavelets.ricker(length, 1.0)
-                assert_(len(w) == length)
-                max_loc = np.argmax(w)
-                assert_(max_loc == (length // 2))
-
-            points = 100
-            w = wavelets.ricker(points, 2.0)
-            half_vec = np.arange(0, points // 2)
-            #Wavelet should be symmetric
-            assert_array_almost_equal(w[half_vec], w[-(half_vec + 1)])
-
-            #Check zeros
-            aas = [5, 10, 15, 20, 30]
-            points = 99
-            for a in aas:
-                w = wavelets.ricker(points, a)
-                vec = np.arange(0, points) - (points - 1.0) / 2
-                exp_zero1 = np.argmin(np.abs(vec - a))
-                exp_zero2 = np.argmin(np.abs(vec + a))
-                assert_array_almost_equal(w[exp_zero1], 0)
-                assert_array_almost_equal(w[exp_zero2], 0)
-
-    def test_cwt(self):
-        with pytest.deprecated_call():
-            widths = [1.0]
-            def delta_wavelet(s, t):
-                return np.array([1])
-            len_data = 100
-            test_data = np.sin(np.pi * np.arange(0, len_data) / 10.0)
-
-            #Test delta function input gives same data as output
-            cwt_dat = wavelets.cwt(test_data, delta_wavelet, widths)
-            assert_(cwt_dat.shape == (len(widths), len_data))
-            assert_array_almost_equal(test_data, cwt_dat.flatten())
-
-            #Check proper shape on output
-            widths = [1, 3, 4, 5, 10]
-            cwt_dat = wavelets.cwt(test_data, wavelets.ricker, widths)
-            assert_(cwt_dat.shape == (len(widths), len_data))
-
-            widths = [len_data * 10]
-            #Note: this wavelet isn't defined quite right, but is fine for this test
-            def flat_wavelet(l, w):
-                return np.full(w, 1 / w)
-            cwt_dat = wavelets.cwt(test_data, flat_wavelet, widths)
-            assert_array_almost_equal(cwt_dat, np.mean(test_data))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_windows.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_windows.py
deleted file mode 100644
index cdf1a46c924f9f2594d944e885b23c37fe9bf4f2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/tests/test_windows.py
+++ /dev/null
@@ -1,846 +0,0 @@
-import numpy as np
-from numpy import array
-from numpy.testing import (assert_array_almost_equal, assert_array_equal,
-                           assert_allclose,
-                           assert_equal, assert_, assert_array_less,
-                           suppress_warnings)
-from pytest import raises as assert_raises
-
-from scipy.fft import fft
-from scipy.signal import windows, get_window, resample
-
-
-window_funcs = [
-    ('boxcar', ()),
-    ('triang', ()),
-    ('parzen', ()),
-    ('bohman', ()),
-    ('blackman', ()),
-    ('nuttall', ()),
-    ('blackmanharris', ()),
-    ('flattop', ()),
-    ('bartlett', ()),
-    ('barthann', ()),
-    ('hamming', ()),
-    ('kaiser', (1,)),
-    ('dpss', (2,)),
-    ('gaussian', (0.5,)),
-    ('general_gaussian', (1.5, 2)),
-    ('chebwin', (1,)),
-    ('cosine', ()),
-    ('hann', ()),
-    ('exponential', ()),
-    ('taylor', ()),
-    ('tukey', (0.5,)),
-    ('lanczos', ()),
-    ]
-
-
-class TestBartHann:
-
-    def test_basic(self):
-        assert_allclose(windows.barthann(6, sym=True),
-                        [0, 0.35857354213752, 0.8794264578624801,
-                         0.8794264578624801, 0.3585735421375199, 0],
-                        rtol=1e-15, atol=1e-15)
-        assert_allclose(windows.barthann(7),
-                        [0, 0.27, 0.73, 1.0, 0.73, 0.27, 0],
-                        rtol=1e-15, atol=1e-15)
-        assert_allclose(windows.barthann(6, False),
-                        [0, 0.27, 0.73, 1.0, 0.73, 0.27],
-                        rtol=1e-15, atol=1e-15)
-
-
-class TestBartlett:
-
-    def test_basic(self):
-        assert_allclose(windows.bartlett(6), [0, 0.4, 0.8, 0.8, 0.4, 0])
-        assert_allclose(windows.bartlett(7), [0, 1/3, 2/3, 1.0, 2/3, 1/3, 0])
-        assert_allclose(windows.bartlett(6, False),
-                        [0, 1/3, 2/3, 1.0, 2/3, 1/3])
-
-
-class TestBlackman:
-
-    def test_basic(self):
-        assert_allclose(windows.blackman(6, sym=False),
-                        [0, 0.13, 0.63, 1.0, 0.63, 0.13], atol=1e-14)
-        assert_allclose(windows.blackman(7, sym=False),
-                        [0, 0.09045342435412804, 0.4591829575459636,
-                         0.9203636180999081, 0.9203636180999081,
-                         0.4591829575459636, 0.09045342435412804], atol=1e-8)
-        assert_allclose(windows.blackman(6),
-                        [0, 0.2007701432625305, 0.8492298567374694,
-                         0.8492298567374694, 0.2007701432625305, 0],
-                        atol=1e-14)
-        assert_allclose(windows.blackman(7, True),
-                        [0, 0.13, 0.63, 1.0, 0.63, 0.13, 0], atol=1e-14)
-
-
-class TestBlackmanHarris:
-
-    def test_basic(self):
-        assert_allclose(windows.blackmanharris(6, False),
-                        [6.0e-05, 0.055645, 0.520575, 1.0, 0.520575, 0.055645])
-        assert_allclose(windows.blackmanharris(7, sym=False),
-                        [6.0e-05, 0.03339172347815117, 0.332833504298565,
-                         0.8893697722232837, 0.8893697722232838,
-                         0.3328335042985652, 0.03339172347815122])
-        assert_allclose(windows.blackmanharris(6),
-                        [6.0e-05, 0.1030114893456638, 0.7938335106543362,
-                         0.7938335106543364, 0.1030114893456638, 6.0e-05])
-        assert_allclose(windows.blackmanharris(7, sym=True),
-                        [6.0e-05, 0.055645, 0.520575, 1.0, 0.520575, 0.055645,
-                         6.0e-05])
-
-
-class TestTaylor:
-
-    def test_normalized(self):
-        """Tests windows of small length that are normalized to 1. See the
-        documentation for the Taylor window for more information on
-        normalization.
-        """
-        assert_allclose(windows.taylor(1, 2, 15), 1.0)
-        assert_allclose(
-            windows.taylor(5, 2, 15),
-            np.array([0.75803341, 0.90757699, 1.0, 0.90757699, 0.75803341])
-        )
-        assert_allclose(
-            windows.taylor(6, 2, 15),
-            np.array([
-                0.7504082, 0.86624416, 0.98208011, 0.98208011, 0.86624416,
-                0.7504082
-            ])
-        )
-
-    def test_non_normalized(self):
-        """Test windows of small length that are not normalized to 1. See
-        the documentation for the Taylor window for more information on
-        normalization.
-        """
-        assert_allclose(
-            windows.taylor(5, 2, 15, norm=False),
-            np.array([
-                0.87508054, 1.04771499, 1.15440894, 1.04771499, 0.87508054
-            ])
-        )
-        assert_allclose(
-            windows.taylor(6, 2, 15, norm=False),
-            np.array([
-                0.86627793, 1.0, 1.13372207, 1.13372207, 1.0, 0.86627793
-            ])
-        )
-
-    def test_correctness(self):
-        """This test ensures the correctness of the implemented Taylor
-        Windowing function. A Taylor Window of 1024 points is created, its FFT
-        is taken, and the Peak Sidelobe Level (PSLL) and 3dB and 18dB bandwidth
-        are found and checked.
-
-        A publication from Sandia National Laboratories was used as reference
-        for the correctness values [1]_.
-
-        References
-        -----
-        .. [1] Armin Doerry, "Catalog of Window Taper Functions for
-               Sidelobe Control", 2017.
-               https://www.researchgate.net/profile/Armin_Doerry/publication/316281181_Catalog_of_Window_Taper_Functions_for_Sidelobe_Control/links/58f92cb2a6fdccb121c9d54d/Catalog-of-Window-Taper-Functions-for-Sidelobe-Control.pdf
-        """
-        M_win = 1024
-        N_fft = 131072
-        # Set norm=False for correctness as the values obtained from the
-        # scientific publication do not normalize the values. Normalizing
-        # changes the sidelobe level from the desired value.
-        w = windows.taylor(M_win, nbar=4, sll=35, norm=False, sym=False)
-        f = fft(w, N_fft)
-        spec = 20 * np.log10(np.abs(f / np.amax(f)))
-
-        first_zero = np.argmax(np.diff(spec) > 0)
-
-        PSLL = np.amax(spec[first_zero:-first_zero])
-
-        BW_3dB = 2*np.argmax(spec <= -3.0102999566398121) / N_fft * M_win
-        BW_18dB = 2*np.argmax(spec <= -18.061799739838872) / N_fft * M_win
-
-        assert_allclose(PSLL, -35.1672, atol=1)
-        assert_allclose(BW_3dB, 1.1822, atol=0.1)
-        assert_allclose(BW_18dB, 2.6112, atol=0.1)
-
-
-class TestBohman:
-
-    def test_basic(self):
-        assert_allclose(windows.bohman(6),
-                        [0, 0.1791238937062839, 0.8343114522576858,
-                         0.8343114522576858, 0.1791238937062838, 0])
-        assert_allclose(windows.bohman(7, sym=True),
-                        [0, 0.1089977810442293, 0.6089977810442293, 1.0,
-                         0.6089977810442295, 0.1089977810442293, 0])
-        assert_allclose(windows.bohman(6, False),
-                        [0, 0.1089977810442293, 0.6089977810442293, 1.0,
-                         0.6089977810442295, 0.1089977810442293])
-
-
-class TestBoxcar:
-
-    def test_basic(self):
-        assert_allclose(windows.boxcar(6), [1, 1, 1, 1, 1, 1])
-        assert_allclose(windows.boxcar(7), [1, 1, 1, 1, 1, 1, 1])
-        assert_allclose(windows.boxcar(6, False), [1, 1, 1, 1, 1, 1])
-
-
-cheb_odd_true = array([0.200938, 0.107729, 0.134941, 0.165348,
-                       0.198891, 0.235450, 0.274846, 0.316836,
-                       0.361119, 0.407338, 0.455079, 0.503883,
-                       0.553248, 0.602637, 0.651489, 0.699227,
-                       0.745266, 0.789028, 0.829947, 0.867485,
-                       0.901138, 0.930448, 0.955010, 0.974482,
-                       0.988591, 0.997138, 1.000000, 0.997138,
-                       0.988591, 0.974482, 0.955010, 0.930448,
-                       0.901138, 0.867485, 0.829947, 0.789028,
-                       0.745266, 0.699227, 0.651489, 0.602637,
-                       0.553248, 0.503883, 0.455079, 0.407338,
-                       0.361119, 0.316836, 0.274846, 0.235450,
-                       0.198891, 0.165348, 0.134941, 0.107729,
-                       0.200938])
-
-cheb_even_true = array([0.203894, 0.107279, 0.133904,
-                        0.163608, 0.196338, 0.231986,
-                        0.270385, 0.311313, 0.354493,
-                        0.399594, 0.446233, 0.493983,
-                        0.542378, 0.590916, 0.639071,
-                        0.686302, 0.732055, 0.775783,
-                        0.816944, 0.855021, 0.889525,
-                        0.920006, 0.946060, 0.967339,
-                        0.983557, 0.994494, 1.000000,
-                        1.000000, 0.994494, 0.983557,
-                        0.967339, 0.946060, 0.920006,
-                        0.889525, 0.855021, 0.816944,
-                        0.775783, 0.732055, 0.686302,
-                        0.639071, 0.590916, 0.542378,
-                        0.493983, 0.446233, 0.399594,
-                        0.354493, 0.311313, 0.270385,
-                        0.231986, 0.196338, 0.163608,
-                        0.133904, 0.107279, 0.203894])
-
-
-class TestChebWin:
-
-    def test_basic(self):
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "This window is not suitable")
-            assert_allclose(windows.chebwin(6, 100),
-                            [0.1046401879356917, 0.5075781475823447, 1.0, 1.0,
-                             0.5075781475823447, 0.1046401879356917])
-            assert_allclose(windows.chebwin(7, 100),
-                            [0.05650405062850233, 0.316608530648474,
-                             0.7601208123539079, 1.0, 0.7601208123539079,
-                             0.316608530648474, 0.05650405062850233])
-            assert_allclose(windows.chebwin(6, 10),
-                            [1.0, 0.6071201674458373, 0.6808391469897297,
-                             0.6808391469897297, 0.6071201674458373, 1.0])
-            assert_allclose(windows.chebwin(7, 10),
-                            [1.0, 0.5190521247588651, 0.5864059018130382,
-                             0.6101519801307441, 0.5864059018130382,
-                             0.5190521247588651, 1.0])
-            assert_allclose(windows.chebwin(6, 10, False),
-                            [1.0, 0.5190521247588651, 0.5864059018130382,
-                             0.6101519801307441, 0.5864059018130382,
-                             0.5190521247588651])
-
-    def test_cheb_odd_high_attenuation(self):
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "This window is not suitable")
-            cheb_odd = windows.chebwin(53, at=-40)
-        assert_array_almost_equal(cheb_odd, cheb_odd_true, decimal=4)
-
-    def test_cheb_even_high_attenuation(self):
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "This window is not suitable")
-            cheb_even = windows.chebwin(54, at=40)
-        assert_array_almost_equal(cheb_even, cheb_even_true, decimal=4)
-
-    def test_cheb_odd_low_attenuation(self):
-        cheb_odd_low_at_true = array([1.000000, 0.519052, 0.586405,
-                                      0.610151, 0.586405, 0.519052,
-                                      1.000000])
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "This window is not suitable")
-            cheb_odd = windows.chebwin(7, at=10)
-        assert_array_almost_equal(cheb_odd, cheb_odd_low_at_true, decimal=4)
-
-    def test_cheb_even_low_attenuation(self):
-        cheb_even_low_at_true = array([1.000000, 0.451924, 0.51027,
-                                       0.541338, 0.541338, 0.51027,
-                                       0.451924, 1.000000])
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "This window is not suitable")
-            cheb_even = windows.chebwin(8, at=-10)
-        assert_array_almost_equal(cheb_even, cheb_even_low_at_true, decimal=4)
-
-
-exponential_data = {
-    (4, None, 0.2, False):
-        array([4.53999297624848542e-05,
-               6.73794699908546700e-03, 1.00000000000000000e+00,
-               6.73794699908546700e-03]),
-    (4, None, 0.2, True): array([0.00055308437014783, 0.0820849986238988,
-                                 0.0820849986238988, 0.00055308437014783]),
-    (4, None, 1.0, False): array([0.1353352832366127, 0.36787944117144233, 1.,
-                                  0.36787944117144233]),
-    (4, None, 1.0, True): array([0.22313016014842982, 0.60653065971263342,
-                                 0.60653065971263342, 0.22313016014842982]),
-    (4, 2, 0.2, False):
-        array([4.53999297624848542e-05, 6.73794699908546700e-03,
-               1.00000000000000000e+00, 6.73794699908546700e-03]),
-    (4, 2, 0.2, True): None,
-    (4, 2, 1.0, False): array([0.1353352832366127, 0.36787944117144233, 1.,
-                               0.36787944117144233]),
-    (4, 2, 1.0, True): None,
-    (5, None, 0.2, True):
-        array([4.53999297624848542e-05,
-               6.73794699908546700e-03, 1.00000000000000000e+00,
-               6.73794699908546700e-03, 4.53999297624848542e-05]),
-    (5, None, 1.0, True): array([0.1353352832366127, 0.36787944117144233, 1.,
-                                 0.36787944117144233, 0.1353352832366127]),
-    (5, 2, 0.2, True): None,
-    (5, 2, 1.0, True): None
-}
-
-
-def test_exponential():
-    for k, v in exponential_data.items():
-        if v is None:
-            assert_raises(ValueError, windows.exponential, *k)
-        else:
-            win = windows.exponential(*k)
-            assert_allclose(win, v, rtol=1e-14)
-
-
-class TestFlatTop:
-
-    def test_basic(self):
-        assert_allclose(windows.flattop(6, sym=False),
-                        [-0.000421051, -0.051263156, 0.19821053, 1.0,
-                         0.19821053, -0.051263156])
-        assert_allclose(windows.flattop(7, sym=False),
-                        [-0.000421051, -0.03684078115492348,
-                         0.01070371671615342, 0.7808739149387698,
-                         0.7808739149387698, 0.01070371671615342,
-                         -0.03684078115492348])
-        assert_allclose(windows.flattop(6),
-                        [-0.000421051, -0.0677142520762119, 0.6068721525762117,
-                         0.6068721525762117, -0.0677142520762119,
-                         -0.000421051])
-        assert_allclose(windows.flattop(7, True),
-                        [-0.000421051, -0.051263156, 0.19821053, 1.0,
-                         0.19821053, -0.051263156, -0.000421051])
-
-
-class TestGaussian:
-
-    def test_basic(self):
-        assert_allclose(windows.gaussian(6, 1.0),
-                        [0.04393693362340742, 0.3246524673583497,
-                         0.8824969025845955, 0.8824969025845955,
-                         0.3246524673583497, 0.04393693362340742])
-        assert_allclose(windows.gaussian(7, 1.2),
-                        [0.04393693362340742, 0.2493522087772962,
-                         0.7066482778577162, 1.0, 0.7066482778577162,
-                         0.2493522087772962, 0.04393693362340742])
-        assert_allclose(windows.gaussian(7, 3),
-                        [0.6065306597126334, 0.8007374029168081,
-                         0.9459594689067654, 1.0, 0.9459594689067654,
-                         0.8007374029168081, 0.6065306597126334])
-        assert_allclose(windows.gaussian(6, 3, False),
-                        [0.6065306597126334, 0.8007374029168081,
-                         0.9459594689067654, 1.0, 0.9459594689067654,
-                         0.8007374029168081])
-
-
-class TestGeneralCosine:
-
-    def test_basic(self):
-        assert_allclose(windows.general_cosine(5, [0.5, 0.3, 0.2]),
-                        [0.4, 0.3, 1, 0.3, 0.4])
-        assert_allclose(windows.general_cosine(4, [0.5, 0.3, 0.2], sym=False),
-                        [0.4, 0.3, 1, 0.3])
-
-
-class TestGeneralHamming:
-
-    def test_basic(self):
-        assert_allclose(windows.general_hamming(5, 0.7),
-                        [0.4, 0.7, 1.0, 0.7, 0.4])
-        assert_allclose(windows.general_hamming(5, 0.75, sym=False),
-                        [0.5, 0.6727457514, 0.9522542486,
-                         0.9522542486, 0.6727457514])
-        assert_allclose(windows.general_hamming(6, 0.75, sym=True),
-                        [0.5, 0.6727457514, 0.9522542486,
-                        0.9522542486, 0.6727457514, 0.5])
-
-
-class TestHamming:
-
-    def test_basic(self):
-        assert_allclose(windows.hamming(6, False),
-                        [0.08, 0.31, 0.77, 1.0, 0.77, 0.31])
-        assert_allclose(windows.hamming(7, sym=False),
-                        [0.08, 0.2531946911449826, 0.6423596296199047,
-                         0.9544456792351128, 0.9544456792351128,
-                         0.6423596296199047, 0.2531946911449826])
-        assert_allclose(windows.hamming(6),
-                        [0.08, 0.3978521825875242, 0.9121478174124757,
-                         0.9121478174124757, 0.3978521825875242, 0.08])
-        assert_allclose(windows.hamming(7, sym=True),
-                        [0.08, 0.31, 0.77, 1.0, 0.77, 0.31, 0.08])
-
-
-class TestHann:
-
-    def test_basic(self):
-        assert_allclose(windows.hann(6, sym=False),
-                        [0, 0.25, 0.75, 1.0, 0.75, 0.25],
-                        rtol=1e-15, atol=1e-15)
-        assert_allclose(windows.hann(7, sym=False),
-                        [0, 0.1882550990706332, 0.6112604669781572,
-                         0.9504844339512095, 0.9504844339512095,
-                         0.6112604669781572, 0.1882550990706332],
-                        rtol=1e-15, atol=1e-15)
-        assert_allclose(windows.hann(6, True),
-                        [0, 0.3454915028125263, 0.9045084971874737,
-                         0.9045084971874737, 0.3454915028125263, 0],
-                        rtol=1e-15, atol=1e-15)
-        assert_allclose(windows.hann(7),
-                        [0, 0.25, 0.75, 1.0, 0.75, 0.25, 0],
-                        rtol=1e-15, atol=1e-15)
-
-
-class TestKaiser:
-
-    def test_basic(self):
-        assert_allclose(windows.kaiser(6, 0.5),
-                        [0.9403061933191572, 0.9782962393705389,
-                         0.9975765035372042, 0.9975765035372042,
-                         0.9782962393705389, 0.9403061933191572])
-        assert_allclose(windows.kaiser(7, 0.5),
-                        [0.9403061933191572, 0.9732402256999829,
-                         0.9932754654413773, 1.0, 0.9932754654413773,
-                         0.9732402256999829, 0.9403061933191572])
-        assert_allclose(windows.kaiser(6, 2.7),
-                        [0.2603047507678832, 0.6648106293528054,
-                         0.9582099802511439, 0.9582099802511439,
-                         0.6648106293528054, 0.2603047507678832])
-        assert_allclose(windows.kaiser(7, 2.7),
-                        [0.2603047507678832, 0.5985765418119844,
-                         0.8868495172060835, 1.0, 0.8868495172060835,
-                         0.5985765418119844, 0.2603047507678832])
-        assert_allclose(windows.kaiser(6, 2.7, False),
-                        [0.2603047507678832, 0.5985765418119844,
-                         0.8868495172060835, 1.0, 0.8868495172060835,
-                         0.5985765418119844])
-
-
-class TestKaiserBesselDerived:
-
-    def test_basic(self):
-        M = 100
-        w = windows.kaiser_bessel_derived(M, beta=4.0)
-        w2 = windows.get_window(('kaiser bessel derived', 4.0),
-                                M, fftbins=False)
-        assert_allclose(w, w2)
-
-        # Test for Princen-Bradley condition
-        assert_allclose(w[:M // 2] ** 2 + w[-M // 2:] ** 2, 1.)
-
-        # Test actual values from other implementations
-        # M = 2:  sqrt(2) / 2
-        # M = 4:  0.518562710536, 0.855039598640
-        # M = 6:  0.436168993154, 0.707106781187, 0.899864772847
-        # Ref:https://github.com/scipy/scipy/pull/4747#issuecomment-172849418
-        assert_allclose(windows.kaiser_bessel_derived(2, beta=np.pi / 2)[:1],
-                        np.sqrt(2) / 2)
-
-        assert_allclose(windows.kaiser_bessel_derived(4, beta=np.pi / 2)[:2],
-                        [0.518562710536, 0.855039598640])
-
-        assert_allclose(windows.kaiser_bessel_derived(6, beta=np.pi / 2)[:3],
-                        [0.436168993154, 0.707106781187, 0.899864772847])
-
-    def test_exceptions(self):
-        M = 100
-        # Assert ValueError for odd window length
-        msg = ("Kaiser-Bessel Derived windows are only defined for even "
-               "number of points")
-        with assert_raises(ValueError, match=msg):
-            windows.kaiser_bessel_derived(M + 1, beta=4.)
-
-        # Assert ValueError for non-symmetric setting
-        msg = ("Kaiser-Bessel Derived windows are only defined for "
-               "symmetric shapes")
-        with assert_raises(ValueError, match=msg):
-            windows.kaiser_bessel_derived(M + 1, beta=4., sym=False)
-
-
-class TestNuttall:
-
-    def test_basic(self):
-        assert_allclose(windows.nuttall(6, sym=False),
-                        [0.0003628, 0.0613345, 0.5292298, 1.0, 0.5292298,
-                         0.0613345])
-        assert_allclose(windows.nuttall(7, sym=False),
-                        [0.0003628, 0.03777576895352025, 0.3427276199688195,
-                         0.8918518610776603, 0.8918518610776603,
-                         0.3427276199688196, 0.0377757689535203])
-        assert_allclose(windows.nuttall(6),
-                        [0.0003628, 0.1105152530498718, 0.7982580969501282,
-                         0.7982580969501283, 0.1105152530498719, 0.0003628])
-        assert_allclose(windows.nuttall(7, True),
-                        [0.0003628, 0.0613345, 0.5292298, 1.0, 0.5292298,
-                         0.0613345, 0.0003628])
-
-
-class TestParzen:
-
-    def test_basic(self):
-        assert_allclose(windows.parzen(6),
-                        [0.009259259259259254, 0.25, 0.8611111111111112,
-                         0.8611111111111112, 0.25, 0.009259259259259254])
-        assert_allclose(windows.parzen(7, sym=True),
-                        [0.00583090379008747, 0.1574344023323616,
-                         0.6501457725947521, 1.0, 0.6501457725947521,
-                         0.1574344023323616, 0.00583090379008747])
-        assert_allclose(windows.parzen(6, False),
-                        [0.00583090379008747, 0.1574344023323616,
-                         0.6501457725947521, 1.0, 0.6501457725947521,
-                         0.1574344023323616])
-
-
-class TestTriang:
-
-    def test_basic(self):
-
-        assert_allclose(windows.triang(6, True),
-                        [1/6, 1/2, 5/6, 5/6, 1/2, 1/6])
-        assert_allclose(windows.triang(7),
-                        [1/4, 1/2, 3/4, 1, 3/4, 1/2, 1/4])
-        assert_allclose(windows.triang(6, sym=False),
-                        [1/4, 1/2, 3/4, 1, 3/4, 1/2])
-
-
-tukey_data = {
-    (4, 0.5, True): array([0.0, 1.0, 1.0, 0.0]),
-    (4, 0.9, True): array([0.0, 0.84312081893436686,
-                           0.84312081893436686, 0.0]),
-    (4, 1.0, True): array([0.0, 0.75, 0.75, 0.0]),
-    (4, 0.5, False): array([0.0, 1.0, 1.0, 1.0]),
-    (4, 0.9, False): array([0.0, 0.58682408883346526,
-                            1.0, 0.58682408883346526]),
-    (4, 1.0, False): array([0.0, 0.5, 1.0, 0.5]),
-    (5, 0.0, True): array([1.0, 1.0, 1.0, 1.0, 1.0]),
-    (5, 0.8, True): array([0.0, 0.69134171618254492,
-                           1.0, 0.69134171618254492, 0.0]),
-    (5, 1.0, True): array([0.0, 0.5, 1.0, 0.5, 0.0]),
-
-    (6, 0): [1, 1, 1, 1, 1, 1],
-    (7, 0): [1, 1, 1, 1, 1, 1, 1],
-    (6, .25): [0, 1, 1, 1, 1, 0],
-    (7, .25): [0, 1, 1, 1, 1, 1, 0],
-    (6,): [0, 0.9045084971874737, 1.0, 1.0, 0.9045084971874735, 0],
-    (7,): [0, 0.75, 1.0, 1.0, 1.0, 0.75, 0],
-    (6, .75): [0, 0.5522642316338269, 1.0, 1.0, 0.5522642316338267, 0],
-    (7, .75): [0, 0.4131759111665348, 0.9698463103929542, 1.0,
-               0.9698463103929542, 0.4131759111665347, 0],
-    (6, 1): [0, 0.3454915028125263, 0.9045084971874737, 0.9045084971874737,
-             0.3454915028125263, 0],
-    (7, 1): [0, 0.25, 0.75, 1.0, 0.75, 0.25, 0],
-}
-
-
-class TestTukey:
-
-    def test_basic(self):
-        # Test against hardcoded data
-        for k, v in tukey_data.items():
-            if v is None:
-                assert_raises(ValueError, windows.tukey, *k)
-            else:
-                win = windows.tukey(*k)
-                assert_allclose(win, v, rtol=1e-15, atol=1e-15)
-
-    def test_extremes(self):
-        # Test extremes of alpha correspond to boxcar and hann
-        tuk0 = windows.tukey(100, 0)
-        box0 = windows.boxcar(100)
-        assert_array_almost_equal(tuk0, box0)
-
-        tuk1 = windows.tukey(100, 1)
-        han1 = windows.hann(100)
-        assert_array_almost_equal(tuk1, han1)
-
-
-dpss_data = {
-    # All values from MATLAB:
-    # * taper[1] of (3, 1.4, 3) sign-flipped
-    # * taper[3] of (5, 1.5, 5) sign-flipped
-    (4, 0.1, 2): ([[0.497943898, 0.502047681, 0.502047681, 0.497943898], [0.670487993, 0.224601537, -0.224601537, -0.670487993]], [0.197961815, 0.002035474]),  # noqa: E501
-    (3, 1.4, 3): ([[0.410233151, 0.814504464, 0.410233151], [0.707106781, 0.0, -0.707106781], [0.575941629, -0.580157287, 0.575941629]], [0.999998093, 0.998067480, 0.801934426]),  # noqa: E501
-    (5, 1.5, 5): ([[0.1745071052, 0.4956749177, 0.669109327, 0.495674917, 0.174507105], [0.4399493348, 0.553574369, 0.0, -0.553574369, -0.439949334], [0.631452756, 0.073280238, -0.437943884, 0.073280238, 0.631452756], [0.553574369, -0.439949334, 0.0, 0.439949334, -0.553574369], [0.266110290, -0.498935248, 0.600414741, -0.498935248, 0.266110290147157]], [0.999728571, 0.983706916, 0.768457889, 0.234159338, 0.013947282907567]),  # noqa: E501
-    (100, 2, 4): ([[0.0030914414, 0.0041266922, 0.005315076, 0.006665149, 0.008184854, 0.0098814158, 0.011761239, 0.013829809, 0.016091597, 0.018549973, 0.02120712, 0.02406396, 0.027120092, 0.030373728, 0.033821651, 0.037459181, 0.041280145, 0.045276872, 0.049440192, 0.053759447, 0.058222524, 0.062815894, 0.067524661, 0.072332638, 0.077222418, 0.082175473, 0.087172252, 0.092192299, 0.097214376, 0.1022166, 0.10717657, 0.11207154, 0.11687856, 0.12157463, 0.12613686, 0.13054266, 0.13476986, 0.13879691, 0.14260302, 0.14616832, 0.14947401, 0.1525025, 0.15523755, 0.15766438, 0.15976981, 0.16154233, 0.16297223, 0.16405162, 0.16477455, 0.16513702, 0.16513702, 0.16477455, 0.16405162, 0.16297223, 0.16154233, 0.15976981, 0.15766438, 0.15523755, 0.1525025, 0.14947401, 0.14616832, 0.14260302, 0.13879691, 0.13476986, 0.13054266, 0.12613686, 0.12157463, 0.11687856, 0.11207154, 0.10717657, 0.1022166, 0.097214376, 0.092192299, 0.087172252, 0.082175473, 0.077222418, 0.072332638, 0.067524661, 0.062815894, 0.058222524, 0.053759447, 0.049440192, 0.045276872, 0.041280145, 0.037459181, 0.033821651, 0.030373728, 0.027120092, 0.02406396, 0.02120712, 0.018549973, 0.016091597, 0.013829809, 0.011761239, 0.0098814158, 0.008184854, 0.006665149, 0.005315076, 0.0041266922, 0.0030914414], [0.018064449, 0.022040342, 0.026325013, 0.030905288, 0.035764398, 0.040881982, 0.046234148, 0.051793558, 0.057529559, 0.063408356, 0.069393216, 0.075444716, 0.081521022, 0.087578202, 0.093570567, 0.099451049, 0.10517159, 0.11068356, 0.11593818, 0.12088699, 0.12548227, 0.12967752, 0.1334279, 0.13669069, 0.13942569, 0.1415957, 0.14316686, 0.14410905, 0.14439626, 0.14400686, 0.14292389, 0.1411353, 0.13863416, 0.13541876, 0.13149274, 0.12686516, 0.12155045, 0.1155684, 0.10894403, 0.10170748, 0.093893752, 0.08554251, 0.076697768, 0.067407559, 0.057723559, 0.04770068, 0.037396627, 0.026871428, 0.016186944, 0.0054063557, -0.0054063557, -0.016186944, -0.026871428, -0.037396627, -0.04770068, -0.057723559, -0.067407559, -0.076697768, -0.08554251, -0.093893752, -0.10170748, -0.10894403, -0.1155684, -0.12155045, -0.12686516, -0.13149274, -0.13541876, -0.13863416, -0.1411353, -0.14292389, -0.14400686, -0.14439626, -0.14410905, -0.14316686, -0.1415957, -0.13942569, -0.13669069, -0.1334279, -0.12967752, -0.12548227, -0.12088699, -0.11593818, -0.11068356, -0.10517159, -0.099451049, -0.093570567, -0.087578202, -0.081521022, -0.075444716, -0.069393216, -0.063408356, -0.057529559, -0.051793558, -0.046234148, -0.040881982, -0.035764398, -0.030905288, -0.026325013, -0.022040342, -0.018064449], [0.064817553, 0.072567801, 0.080292992, 0.087918235, 0.095367076, 0.10256232, 0.10942687, 0.1158846, 0.12186124, 0.12728523, 0.13208858, 0.13620771, 0.13958427, 0.14216587, 0.14390678, 0.14476863, 0.1447209, 0.14374148, 0.14181704, 0.13894336, 0.13512554, 0.13037812, 0.1247251, 0.11819984, 0.11084487, 0.10271159, 0.093859853, 0.084357497, 0.074279719, 0.063708406, 0.052731374, 0.041441525, 0.029935953, 0.018314987, 0.0066811877, -0.0048616765, -0.016209689, -0.027259848, -0.037911124, -0.048065512, -0.05762905, -0.066512804, -0.0746338, -0.081915903, -0.088290621, -0.09369783, -0.098086416, -0.10141482, -0.10365146, -0.10477512, -0.10477512, -0.10365146, -0.10141482, -0.098086416, -0.09369783, -0.088290621, -0.081915903, -0.0746338, -0.066512804, -0.05762905, -0.048065512, -0.037911124, -0.027259848, -0.016209689, -0.0048616765, 0.0066811877, 0.018314987, 0.029935953, 0.041441525, 0.052731374, 0.063708406, 0.074279719, 0.084357497, 0.093859853, 0.10271159, 0.11084487, 0.11819984, 0.1247251, 0.13037812, 0.13512554, 0.13894336, 0.14181704, 0.14374148, 0.1447209, 0.14476863, 0.14390678, 0.14216587, 0.13958427, 0.13620771, 0.13208858, 0.12728523, 0.12186124, 0.1158846, 0.10942687, 0.10256232, 0.095367076, 0.087918235, 0.080292992, 0.072567801, 0.064817553], [0.14985551, 0.15512305, 0.15931467, 0.16236806, 0.16423291, 0.16487165, 0.16426009, 0.1623879, 0.1592589, 0.15489114, 0.14931693, 0.14258255, 0.13474785, 0.1258857, 0.11608124, 0.10543095, 0.094041635, 0.082029213, 0.069517411, 0.056636348, 0.043521028, 0.030309756, 0.017142511, 0.0041592774, -0.0085016282, -0.020705223, -0.032321494, -0.043226982, -0.053306291, -0.062453515, -0.070573544, -0.077583253, -0.083412547, -0.088005244, -0.091319802, -0.093329861, -0.094024602, -0.093408915, -0.091503383, -0.08834406, -0.08398207, -0.078483012, -0.071926192, -0.064403681, -0.056019215, -0.046886954, -0.037130106, -0.026879442, -0.016271713, -0.005448, 0.005448, 0.016271713, 0.026879442, 0.037130106, 0.046886954, 0.056019215, 0.064403681, 0.071926192, 0.078483012, 0.08398207, 0.08834406, 0.091503383, 0.093408915, 0.094024602, 0.093329861, 0.091319802, 0.088005244, 0.083412547, 0.077583253, 0.070573544, 0.062453515, 0.053306291, 0.043226982, 0.032321494, 0.020705223, 0.0085016282, -0.0041592774, -0.017142511, -0.030309756, -0.043521028, -0.056636348, -0.069517411, -0.082029213, -0.094041635, -0.10543095, -0.11608124, -0.1258857, -0.13474785, -0.14258255, -0.14931693, -0.15489114, -0.1592589, -0.1623879, -0.16426009, -0.16487165, -0.16423291, -0.16236806, -0.15931467, -0.15512305, -0.14985551]], [0.999943140, 0.997571533, 0.959465463, 0.721862496]),  # noqa: E501
-}
-
-
-class TestDPSS:
-
-    def test_basic(self):
-        # Test against hardcoded data
-        for k, v in dpss_data.items():
-            win, ratios = windows.dpss(*k, return_ratios=True)
-            assert_allclose(win, v[0], atol=1e-7, err_msg=k)
-            assert_allclose(ratios, v[1], rtol=1e-5, atol=1e-7, err_msg=k)
-
-    def test_unity(self):
-        # Test unity value handling (gh-2221)
-        for M in range(1, 21):
-            # corrected w/approximation (default)
-            win = windows.dpss(M, M / 2.1)
-            expected = M % 2  # one for odd, none for even
-            assert_equal(np.isclose(win, 1.).sum(), expected,
-                         err_msg=f'{win}')
-            # corrected w/subsample delay (slower)
-            win_sub = windows.dpss(M, M / 2.1, norm='subsample')
-            if M > 2:
-                # @M=2 the subsample doesn't do anything
-                assert_equal(np.isclose(win_sub, 1.).sum(), expected,
-                             err_msg=f'{win_sub}')
-                assert_allclose(win, win_sub, rtol=0.03)  # within 3%
-            # not the same, l2-norm
-            win_2 = windows.dpss(M, M / 2.1, norm=2)
-            expected = 1 if M == 1 else 0
-            assert_equal(np.isclose(win_2, 1.).sum(), expected,
-                         err_msg=f'{win_2}')
-
-    def test_extremes(self):
-        # Test extremes of alpha
-        lam = windows.dpss(31, 6, 4, return_ratios=True)[1]
-        assert_array_almost_equal(lam, 1.)
-        lam = windows.dpss(31, 7, 4, return_ratios=True)[1]
-        assert_array_almost_equal(lam, 1.)
-        lam = windows.dpss(31, 8, 4, return_ratios=True)[1]
-        assert_array_almost_equal(lam, 1.)
-
-    def test_degenerate(self):
-        # Test failures
-        assert_raises(ValueError, windows.dpss, 4, 1.5, -1)  # Bad Kmax
-        assert_raises(ValueError, windows.dpss, 4, 1.5, -5)
-        assert_raises(TypeError, windows.dpss, 4, 1.5, 1.1)
-        assert_raises(ValueError, windows.dpss, 3, 1.5, 3)  # NW must be < N/2.
-        assert_raises(ValueError, windows.dpss, 3, -1, 3)  # NW must be pos
-        assert_raises(ValueError, windows.dpss, 3, 0, 3)
-        assert_raises(ValueError, windows.dpss, -1, 1, 3)  # negative M
-
-
-class TestLanczos:
-
-    def test_basic(self):
-        # Analytical results:
-        # sinc(x) = sinc(-x)
-        # sinc(pi) = 0, sinc(0) = 1
-        # Hand computation on WolframAlpha:
-        # sinc(2 pi / 3) = 0.413496672
-        # sinc(pi / 3) = 0.826993343
-        # sinc(3 pi / 5) = 0.504551152
-        # sinc(pi / 5) = 0.935489284
-        assert_allclose(windows.lanczos(6, sym=False),
-                        [0., 0.413496672,
-                         0.826993343, 1., 0.826993343,
-                         0.413496672],
-                        atol=1e-9)
-        assert_allclose(windows.lanczos(6),
-                        [0., 0.504551152,
-                         0.935489284, 0.935489284,
-                         0.504551152, 0.],
-                        atol=1e-9)
-        assert_allclose(windows.lanczos(7, sym=True),
-                        [0., 0.413496672,
-                         0.826993343, 1., 0.826993343,
-                         0.413496672, 0.],
-                        atol=1e-9)
-
-    def test_array_size(self):
-        for n in [0, 10, 11]:
-            assert_equal(len(windows.lanczos(n, sym=False)), n)
-            assert_equal(len(windows.lanczos(n, sym=True)), n)
-
-
-class TestGetWindow:
-
-    def test_boxcar(self):
-        w = windows.get_window('boxcar', 12)
-        assert_array_equal(w, np.ones_like(w))
-
-        # window is a tuple of len 1
-        w = windows.get_window(('boxcar',), 16)
-        assert_array_equal(w, np.ones_like(w))
-
-    def test_cheb_odd(self):
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "This window is not suitable")
-            w = windows.get_window(('chebwin', -40), 53, fftbins=False)
-        assert_array_almost_equal(w, cheb_odd_true, decimal=4)
-
-    def test_cheb_even(self):
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "This window is not suitable")
-            w = windows.get_window(('chebwin', 40), 54, fftbins=False)
-        assert_array_almost_equal(w, cheb_even_true, decimal=4)
-
-    def test_dpss(self):
-        win1 = windows.get_window(('dpss', 3), 64, fftbins=False)
-        win2 = windows.dpss(64, 3)
-        assert_array_almost_equal(win1, win2, decimal=4)
-
-    def test_kaiser_float(self):
-        win1 = windows.get_window(7.2, 64)
-        win2 = windows.kaiser(64, 7.2, False)
-        assert_allclose(win1, win2)
-
-    def test_invalid_inputs(self):
-        # Window is not a float, tuple, or string
-        assert_raises(ValueError, windows.get_window, set('hann'), 8)
-
-        # Unknown window type error
-        assert_raises(ValueError, windows.get_window, 'broken', 4)
-
-    def test_array_as_window(self):
-        # github issue 3603
-        osfactor = 128
-        sig = np.arange(128)
-
-        win = windows.get_window(('kaiser', 8.0), osfactor // 2)
-        with assert_raises(ValueError, match='must have the same length'):
-            resample(sig, len(sig) * osfactor, window=win)
-
-    def test_general_cosine(self):
-        assert_allclose(get_window(('general_cosine', [0.5, 0.3, 0.2]), 4),
-                        [0.4, 0.3, 1, 0.3])
-        assert_allclose(get_window(('general_cosine', [0.5, 0.3, 0.2]), 4,
-                                   fftbins=False),
-                        [0.4, 0.55, 0.55, 0.4])
-
-    def test_general_hamming(self):
-        assert_allclose(get_window(('general_hamming', 0.7), 5),
-                        [0.4, 0.6072949, 0.9427051, 0.9427051, 0.6072949])
-        assert_allclose(get_window(('general_hamming', 0.7), 5, fftbins=False),
-                        [0.4, 0.7, 1.0, 0.7, 0.4])
-
-    def test_lanczos(self):
-        assert_allclose(get_window('lanczos', 6),
-                        [0., 0.413496672, 0.826993343, 1., 0.826993343,
-                         0.413496672], atol=1e-9)
-        assert_allclose(get_window('lanczos', 6, fftbins=False),
-                        [0., 0.504551152, 0.935489284, 0.935489284,
-                         0.504551152, 0.], atol=1e-9)
-        assert_allclose(get_window('lanczos', 6), get_window('sinc', 6))
-
-
-def test_windowfunc_basics():
-    for window_name, params in window_funcs:
-        window = getattr(windows, window_name)
-        with suppress_warnings() as sup:
-            sup.filter(UserWarning, "This window is not suitable")
-            # Check symmetry for odd and even lengths
-            w1 = window(8, *params, sym=True)
-            w2 = window(7, *params, sym=False)
-            assert_array_almost_equal(w1[:-1], w2)
-
-            w1 = window(9, *params, sym=True)
-            w2 = window(8, *params, sym=False)
-            assert_array_almost_equal(w1[:-1], w2)
-
-            # Check that functions run and output lengths are correct
-            assert_equal(len(window(6, *params, sym=True)), 6)
-            assert_equal(len(window(6, *params, sym=False)), 6)
-            assert_equal(len(window(7, *params, sym=True)), 7)
-            assert_equal(len(window(7, *params, sym=False)), 7)
-
-            # Check invalid lengths
-            assert_raises(ValueError, window, 5.5, *params)
-            assert_raises(ValueError, window, -7, *params)
-
-            # Check degenerate cases
-            assert_array_equal(window(0, *params, sym=True), [])
-            assert_array_equal(window(0, *params, sym=False), [])
-            assert_array_equal(window(1, *params, sym=True), [1])
-            assert_array_equal(window(1, *params, sym=False), [1])
-
-            # Check dtype
-            assert_(window(0, *params, sym=True).dtype == 'float')
-            assert_(window(0, *params, sym=False).dtype == 'float')
-            assert_(window(1, *params, sym=True).dtype == 'float')
-            assert_(window(1, *params, sym=False).dtype == 'float')
-            assert_(window(6, *params, sym=True).dtype == 'float')
-            assert_(window(6, *params, sym=False).dtype == 'float')
-
-            # Check normalization
-            assert_array_less(window(10, *params, sym=True), 1.01)
-            assert_array_less(window(10, *params, sym=False), 1.01)
-            assert_array_less(window(9, *params, sym=True), 1.01)
-            assert_array_less(window(9, *params, sym=False), 1.01)
-
-            # Check that DFT-even spectrum is purely real for odd and even
-            assert_allclose(fft(window(10, *params, sym=False)).imag,
-                            0, atol=1e-14)
-            assert_allclose(fft(window(11, *params, sym=False)).imag,
-                            0, atol=1e-14)
-
-
-def test_needs_params():
-    for winstr in ['kaiser', 'ksr', 'kaiser_bessel_derived', 'kbd',
-                   'gaussian', 'gauss', 'gss',
-                   'general gaussian', 'general_gaussian',
-                   'general gauss', 'general_gauss', 'ggs',
-                   'dss', 'dpss', 'general cosine', 'general_cosine',
-                   'chebwin', 'cheb', 'general hamming', 'general_hamming',
-                   ]:
-        assert_raises(ValueError, get_window, winstr, 7)
-
-
-def test_not_needs_params():
-    for winstr in ['barthann',
-                   'bartlett',
-                   'blackman',
-                   'blackmanharris',
-                   'bohman',
-                   'boxcar',
-                   'cosine',
-                   'flattop',
-                   'hamming',
-                   'nuttall',
-                   'parzen',
-                   'taylor',
-                   'exponential',
-                   'poisson',
-                   'tukey',
-                   'tuk',
-                   'triangle',
-                   'lanczos',
-                   'sinc',
-                   ]:
-        win = get_window(winstr, 7)
-        assert_equal(len(win), 7)
-
-
-def test_symmetric():
-
-    for win in [windows.lanczos]:
-        # Even sampling points
-        w = win(4096)
-        error = np.max(np.abs(w-np.flip(w)))
-        assert_equal(error, 0.0)
-
-        # Odd sampling points
-        w = win(4097)
-        error = np.max(np.abs(w-np.flip(w)))
-        assert_equal(error, 0.0)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__init__.py
deleted file mode 100644
index 967a7c758f69c1c8002d886d78832904c402d2b3..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__init__.py
+++ /dev/null
@@ -1,52 +0,0 @@
-"""
-Window functions (:mod:`scipy.signal.windows`)
-==============================================
-
-The suite of window functions for filtering and spectral estimation.
-
-.. currentmodule:: scipy.signal.windows
-
-.. autosummary::
-   :toctree: generated/
-
-   get_window              -- Return a window of a given length and type.
-
-   barthann                -- Bartlett-Hann window
-   bartlett                -- Bartlett window
-   blackman                -- Blackman window
-   blackmanharris          -- Minimum 4-term Blackman-Harris window
-   bohman                  -- Bohman window
-   boxcar                  -- Boxcar window
-   chebwin                 -- Dolph-Chebyshev window
-   cosine                  -- Cosine window
-   dpss                    -- Discrete prolate spheroidal sequences
-   exponential             -- Exponential window
-   flattop                 -- Flat top window
-   gaussian                -- Gaussian window
-   general_cosine          -- Generalized Cosine window
-   general_gaussian        -- Generalized Gaussian window
-   general_hamming         -- Generalized Hamming window
-   hamming                 -- Hamming window
-   hann                    -- Hann window
-   kaiser                  -- Kaiser window
-   kaiser_bessel_derived   -- Kaiser-Bessel derived window
-   lanczos                 -- Lanczos window also known as a sinc window
-   nuttall                 -- Nuttall's minimum 4-term Blackman-Harris window
-   parzen                  -- Parzen window
-   taylor                  -- Taylor window
-   triang                  -- Triangular window
-   tukey                   -- Tukey window
-
-"""
-
-from ._windows import *
-
-# Deprecated namespaces, to be removed in v2.0.0
-from . import windows
-
-__all__ = ['boxcar', 'triang', 'parzen', 'bohman', 'blackman', 'nuttall',
-           'blackmanharris', 'flattop', 'bartlett', 'barthann',
-           'hamming', 'kaiser', 'kaiser_bessel_derived', 'gaussian',
-           'general_gaussian', 'general_cosine', 'general_hamming',
-           'chebwin', 'cosine', 'hann', 'exponential', 'tukey', 'taylor',
-           'get_window', 'dpss', 'lanczos']
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index ae805a3df3b78fbfc04a763899b514eb2d0da4aa..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__pycache__/_windows.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__pycache__/_windows.cpython-310.pyc
deleted file mode 100644
index d9154e313e17d95e1e3c4d044a8c2776a903fa00..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__pycache__/_windows.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__pycache__/windows.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__pycache__/windows.cpython-310.pyc
deleted file mode 100644
index 37f410c2e29abf0cb7cb380ae64335b59a45265f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/__pycache__/windows.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/_windows.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/_windows.py
deleted file mode 100644
index bafd48b2457633c569dae640ca83158163820513..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/_windows.py
+++ /dev/null
@@ -1,2374 +0,0 @@
-"""The suite of window functions."""
-
-import operator
-import warnings
-
-import numpy as np
-from scipy import linalg, special, fft as sp_fft
-
-__all__ = ['boxcar', 'triang', 'parzen', 'bohman', 'blackman', 'nuttall',
-           'blackmanharris', 'flattop', 'bartlett', 'barthann',
-           'hamming', 'kaiser', 'kaiser_bessel_derived', 'gaussian',
-           'general_cosine', 'general_gaussian', 'general_hamming',
-           'chebwin', 'cosine', 'hann', 'exponential', 'tukey', 'taylor',
-           'dpss', 'get_window', 'lanczos']
-
-
-def _len_guards(M):
-    """Handle small or incorrect window lengths"""
-    if int(M) != M or M < 0:
-        raise ValueError('Window length M must be a non-negative integer')
-    return M <= 1
-
-
-def _extend(M, sym):
-    """Extend window by 1 sample if needed for DFT-even symmetry"""
-    if not sym:
-        return M + 1, True
-    else:
-        return M, False
-
-
-def _truncate(w, needed):
-    """Truncate window by 1 sample if needed for DFT-even symmetry"""
-    if needed:
-        return w[:-1]
-    else:
-        return w
-
-
-def general_cosine(M, a, sym=True):
-    r"""
-    Generic weighted sum of cosine terms window
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window
-    a : array_like
-        Sequence of weighting coefficients. This uses the convention of being
-        centered on the origin, so these will typically all be positive
-        numbers, not alternating sign.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The array of window values.
-
-    References
-    ----------
-    .. [1] A. Nuttall, "Some windows with very good sidelobe behavior," IEEE
-           Transactions on Acoustics, Speech, and Signal Processing, vol. 29,
-           no. 1, pp. 84-91, Feb 1981. :doi:`10.1109/TASSP.1981.1163506`.
-    .. [2] Heinzel G. et al., "Spectrum and spectral density estimation by the
-           Discrete Fourier transform (DFT), including a comprehensive list of
-           window functions and some new flat-top windows", February 15, 2002
-           https://holometer.fnal.gov/GH_FFT.pdf
-
-    Examples
-    --------
-    Heinzel describes a flat-top window named "HFT90D" with formula: [2]_
-
-    .. math::  w_j = 1 - 1.942604 \cos(z) + 1.340318 \cos(2z)
-               - 0.440811 \cos(3z) + 0.043097 \cos(4z)
-
-    where
-
-    .. math::  z = \frac{2 \pi j}{N}, j = 0...N - 1
-
-    Since this uses the convention of starting at the origin, to reproduce the
-    window, we need to convert every other coefficient to a positive number:
-
-    >>> HFT90D = [1, 1.942604, 1.340318, 0.440811, 0.043097]
-
-    The paper states that the highest sidelobe is at -90.2 dB.  Reproduce
-    Figure 42 by plotting the window and its frequency response, and confirm
-    the sidelobe level in red:
-
-    >>> import numpy as np
-    >>> from scipy.signal.windows import general_cosine
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = general_cosine(1000, HFT90D, sym=False)
-    >>> plt.plot(window)
-    >>> plt.title("HFT90D window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 10000) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = np.abs(fftshift(A / abs(A).max()))
-    >>> response = 20 * np.log10(np.maximum(response, 1e-10))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-50/1000, 50/1000, -140, 0])
-    >>> plt.title("Frequency response of the HFT90D window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-    >>> plt.axhline(-90.2, color='red')
-    >>> plt.show()
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    fac = np.linspace(-np.pi, np.pi, M)
-    w = np.zeros(M)
-    for k in range(len(a)):
-        w += a[k] * np.cos(k * fac)
-
-    return _truncate(w, needs_trunc)
-
-
-def boxcar(M, sym=True):
-    """Return a boxcar or rectangular window.
-
-    Also known as a rectangular window or Dirichlet window, this is equivalent
-    to no window at all.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        Whether the window is symmetric. (Has no effect for boxcar.)
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1.
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.boxcar(51)
-    >>> plt.plot(window)
-    >>> plt.title("Boxcar window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the boxcar window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    w = np.ones(M, float)
-
-    return _truncate(w, needs_trunc)
-
-
-def triang(M, sym=True):
-    """Return a triangular window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    See Also
-    --------
-    bartlett : A triangular window that touches zero
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.triang(51)
-    >>> plt.plot(window)
-    >>> plt.title("Triangular window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = np.abs(fftshift(A / abs(A).max()))
-    >>> response = 20 * np.log10(np.maximum(response, 1e-10))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the triangular window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    n = np.arange(1, (M + 1) // 2 + 1)
-    if M % 2 == 0:
-        w = (2 * n - 1.0) / M
-        w = np.r_[w, w[::-1]]
-    else:
-        w = 2 * n / (M + 1.0)
-        w = np.r_[w, w[-2::-1]]
-
-    return _truncate(w, needs_trunc)
-
-
-def parzen(M, sym=True):
-    """Return a Parzen window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    References
-    ----------
-    .. [1] E. Parzen, "Mathematical Considerations in the Estimation of
-           Spectra", Technometrics,  Vol. 3, No. 2 (May, 1961), pp. 167-190
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.parzen(51)
-    >>> plt.plot(window)
-    >>> plt.title("Parzen window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Parzen window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    n = np.arange(-(M - 1) / 2.0, (M - 1) / 2.0 + 0.5, 1.0)
-    na = np.extract(n < -(M - 1) / 4.0, n)
-    nb = np.extract(abs(n) <= (M - 1) / 4.0, n)
-    wa = 2 * (1 - np.abs(na) / (M / 2.0)) ** 3.0
-    wb = (1 - 6 * (np.abs(nb) / (M / 2.0)) ** 2.0 +
-          6 * (np.abs(nb) / (M / 2.0)) ** 3.0)
-    w = np.r_[wa, wb, wa[::-1]]
-
-    return _truncate(w, needs_trunc)
-
-
-def bohman(M, sym=True):
-    """Return a Bohman window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.bohman(51)
-    >>> plt.plot(window)
-    >>> plt.title("Bohman window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2047) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Bohman window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    fac = np.abs(np.linspace(-1, 1, M)[1:-1])
-    w = (1 - fac) * np.cos(np.pi * fac) + 1.0 / np.pi * np.sin(np.pi * fac)
-    w = np.r_[0, w, 0]
-
-    return _truncate(w, needs_trunc)
-
-
-def blackman(M, sym=True):
-    r"""
-    Return a Blackman window.
-
-    The Blackman window is a taper formed by using the first three terms of
-    a summation of cosines. It was designed to have close to the minimal
-    leakage possible.  It is close to optimal, only slightly worse than a
-    Kaiser window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Notes
-    -----
-    The Blackman window is defined as
-
-    .. math::  w(n) = 0.42 - 0.5 \cos(2\pi n/M) + 0.08 \cos(4\pi n/M)
-
-    The "exact Blackman" window was designed to null out the third and fourth
-    sidelobes, but has discontinuities at the boundaries, resulting in a
-    6 dB/oct fall-off.  This window is an approximation of the "exact" window,
-    which does not null the sidelobes as well, but is smooth at the edges,
-    improving the fall-off rate to 18 dB/oct. [3]_
-
-    Most references to the Blackman window come from the signal processing
-    literature, where it is used as one of many windowing functions for
-    smoothing values.  It is also known as an apodization (which means
-    "removing the foot", i.e. smoothing discontinuities at the beginning
-    and end of the sampled signal) or tapering function. It is known as a
-    "near optimal" tapering function, almost as good (by some measures)
-    as the Kaiser window.
-
-    References
-    ----------
-    .. [1] Blackman, R.B. and Tukey, J.W., (1958) The measurement of power
-           spectra, Dover Publications, New York.
-    .. [2] Oppenheim, A.V., and R.W. Schafer. Discrete-Time Signal Processing.
-           Upper Saddle River, NJ: Prentice-Hall, 1999, pp. 468-471.
-    .. [3] Harris, Fredric J. (Jan 1978). "On the use of Windows for Harmonic
-           Analysis with the Discrete Fourier Transform". Proceedings of the
-           IEEE 66 (1): 51-83. :doi:`10.1109/PROC.1978.10837`.
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.blackman(51)
-    >>> plt.plot(window)
-    >>> plt.title("Blackman window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = np.abs(fftshift(A / abs(A).max()))
-    >>> response = 20 * np.log10(np.maximum(response, 1e-10))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Blackman window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    # Docstring adapted from NumPy's blackman function
-    return general_cosine(M, [0.42, 0.50, 0.08], sym)
-
-
-def nuttall(M, sym=True):
-    """Return a minimum 4-term Blackman-Harris window according to Nuttall.
-
-    This variation is called "Nuttall4c" by Heinzel. [2]_
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    References
-    ----------
-    .. [1] A. Nuttall, "Some windows with very good sidelobe behavior," IEEE
-           Transactions on Acoustics, Speech, and Signal Processing, vol. 29,
-           no. 1, pp. 84-91, Feb 1981. :doi:`10.1109/TASSP.1981.1163506`.
-    .. [2] Heinzel G. et al., "Spectrum and spectral density estimation by the
-           Discrete Fourier transform (DFT), including a comprehensive list of
-           window functions and some new flat-top windows", February 15, 2002
-           https://holometer.fnal.gov/GH_FFT.pdf
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.nuttall(51)
-    >>> plt.plot(window)
-    >>> plt.title("Nuttall window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Nuttall window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    return general_cosine(M, [0.3635819, 0.4891775, 0.1365995, 0.0106411], sym)
-
-
-def blackmanharris(M, sym=True):
-    """Return a minimum 4-term Blackman-Harris window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.blackmanharris(51)
-    >>> plt.plot(window)
-    >>> plt.title("Blackman-Harris window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Blackman-Harris window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    return general_cosine(M, [0.35875, 0.48829, 0.14128, 0.01168], sym)
-
-
-def flattop(M, sym=True):
-    """Return a flat top window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Notes
-    -----
-    Flat top windows are used for taking accurate measurements of signal
-    amplitude in the frequency domain, with minimal scalloping error from the
-    center of a frequency bin to its edges, compared to others.  This is a
-    5th-order cosine window, with the 5 terms optimized to make the main lobe
-    maximally flat. [1]_
-
-    References
-    ----------
-    .. [1] D'Antona, Gabriele, and A. Ferrero, "Digital Signal Processing for
-           Measurement Systems", Springer Media, 2006, p. 70
-           :doi:`10.1007/0-387-28666-7`.
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.flattop(51)
-    >>> plt.plot(window)
-    >>> plt.title("Flat top window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the flat top window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    a = [0.21557895, 0.41663158, 0.277263158, 0.083578947, 0.006947368]
-    return general_cosine(M, a, sym)
-
-
-def bartlett(M, sym=True):
-    r"""
-    Return a Bartlett window.
-
-    The Bartlett window is very similar to a triangular window, except
-    that the end points are at zero.  It is often used in signal
-    processing for tapering a signal, without generating too much
-    ripple in the frequency domain.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The triangular window, with the first and last samples equal to zero
-        and the maximum value normalized to 1 (though the value 1 does not
-        appear if `M` is even and `sym` is True).
-
-    See Also
-    --------
-    triang : A triangular window that does not touch zero at the ends
-
-    Notes
-    -----
-    The Bartlett window is defined as
-
-    .. math:: w(n) = \frac{2}{M-1} \left(
-              \frac{M-1}{2} - \left|n - \frac{M-1}{2}\right|
-              \right)
-
-    Most references to the Bartlett window come from the signal
-    processing literature, where it is used as one of many windowing
-    functions for smoothing values.  Note that convolution with this
-    window produces linear interpolation.  It is also known as an
-    apodization (which means"removing the foot", i.e. smoothing
-    discontinuities at the beginning and end of the sampled signal) or
-    tapering function. The Fourier transform of the Bartlett is the product
-    of two sinc functions.
-    Note the excellent discussion in Kanasewich. [2]_
-
-    References
-    ----------
-    .. [1] M.S. Bartlett, "Periodogram Analysis and Continuous Spectra",
-           Biometrika 37, 1-16, 1950.
-    .. [2] E.R. Kanasewich, "Time Sequence Analysis in Geophysics",
-           The University of Alberta Press, 1975, pp. 109-110.
-    .. [3] A.V. Oppenheim and R.W. Schafer, "Discrete-Time Signal
-           Processing", Prentice-Hall, 1999, pp. 468-471.
-    .. [4] Wikipedia, "Window function",
-           https://en.wikipedia.org/wiki/Window_function
-    .. [5] W.H. Press,  B.P. Flannery, S.A. Teukolsky, and W.T. Vetterling,
-           "Numerical Recipes", Cambridge University Press, 1986, page 429.
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.bartlett(51)
-    >>> plt.plot(window)
-    >>> plt.title("Bartlett window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Bartlett window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    # Docstring adapted from NumPy's bartlett function
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    n = np.arange(0, M)
-    w = np.where(np.less_equal(n, (M - 1) / 2.0),
-                 2.0 * n / (M - 1), 2.0 - 2.0 * n / (M - 1))
-
-    return _truncate(w, needs_trunc)
-
-
-def hann(M, sym=True):
-    r"""
-    Return a Hann window.
-
-    The Hann window is a taper formed by using a raised cosine or sine-squared
-    with ends that touch zero.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Notes
-    -----
-    The Hann window is defined as
-
-    .. math::  w(n) = 0.5 - 0.5 \cos\left(\frac{2\pi{n}}{M-1}\right)
-               \qquad 0 \leq n \leq M-1
-
-    The window was named for Julius von Hann, an Austrian meteorologist. It is
-    also known as the Cosine Bell. It is sometimes erroneously referred to as
-    the "Hanning" window, from the use of "hann" as a verb in the original
-    paper and confusion with the very similar Hamming window.
-
-    Most references to the Hann window come from the signal processing
-    literature, where it is used as one of many windowing functions for
-    smoothing values.  It is also known as an apodization (which means
-    "removing the foot", i.e. smoothing discontinuities at the beginning
-    and end of the sampled signal) or tapering function.
-
-    References
-    ----------
-    .. [1] Blackman, R.B. and Tukey, J.W., (1958) The measurement of power
-           spectra, Dover Publications, New York.
-    .. [2] E.R. Kanasewich, "Time Sequence Analysis in Geophysics",
-           The University of Alberta Press, 1975, pp. 106-108.
-    .. [3] Wikipedia, "Window function",
-           https://en.wikipedia.org/wiki/Window_function
-    .. [4] W.H. Press,  B.P. Flannery, S.A. Teukolsky, and W.T. Vetterling,
-           "Numerical Recipes", Cambridge University Press, 1986, page 425.
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.hann(51)
-    >>> plt.plot(window)
-    >>> plt.title("Hann window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = np.abs(fftshift(A / abs(A).max()))
-    >>> response = 20 * np.log10(np.maximum(response, 1e-10))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Hann window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    # Docstring adapted from NumPy's hanning function
-    return general_hamming(M, 0.5, sym)
-
-
-def tukey(M, alpha=0.5, sym=True):
-    r"""Return a Tukey window, also known as a tapered cosine window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    alpha : float, optional
-        Shape parameter of the Tukey window, representing the fraction of the
-        window inside the cosine tapered region.
-        If zero, the Tukey window is equivalent to a rectangular window.
-        If one, the Tukey window is equivalent to a Hann window.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    References
-    ----------
-    .. [1] Harris, Fredric J. (Jan 1978). "On the use of Windows for Harmonic
-           Analysis with the Discrete Fourier Transform". Proceedings of the
-           IEEE 66 (1): 51-83. :doi:`10.1109/PROC.1978.10837`
-    .. [2] Wikipedia, "Window function",
-           https://en.wikipedia.org/wiki/Window_function#Tukey_window
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.tukey(51)
-    >>> plt.plot(window)
-    >>> plt.title("Tukey window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-    >>> plt.ylim([0, 1.1])
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Tukey window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    if _len_guards(M):
-        return np.ones(M)
-
-    if alpha <= 0:
-        return np.ones(M, 'd')
-    elif alpha >= 1.0:
-        return hann(M, sym=sym)
-
-    M, needs_trunc = _extend(M, sym)
-
-    n = np.arange(0, M)
-    width = int(np.floor(alpha*(M-1)/2.0))
-    n1 = n[0:width+1]
-    n2 = n[width+1:M-width-1]
-    n3 = n[M-width-1:]
-
-    w1 = 0.5 * (1 + np.cos(np.pi * (-1 + 2.0*n1/alpha/(M-1))))
-    w2 = np.ones(n2.shape)
-    w3 = 0.5 * (1 + np.cos(np.pi * (-2.0/alpha + 1 + 2.0*n3/alpha/(M-1))))
-
-    w = np.concatenate((w1, w2, w3))
-
-    return _truncate(w, needs_trunc)
-
-
-def barthann(M, sym=True):
-    """Return a modified Bartlett-Hann window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.barthann(51)
-    >>> plt.plot(window)
-    >>> plt.title("Bartlett-Hann window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Bartlett-Hann window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    n = np.arange(0, M)
-    fac = np.abs(n / (M - 1.0) - 0.5)
-    w = 0.62 - 0.48 * fac + 0.38 * np.cos(2 * np.pi * fac)
-
-    return _truncate(w, needs_trunc)
-
-
-def general_hamming(M, alpha, sym=True):
-    r"""Return a generalized Hamming window.
-
-    The generalized Hamming window is constructed by multiplying a rectangular
-    window by one period of a cosine function [1]_.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    alpha : float
-        The window coefficient, :math:`\alpha`
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    See Also
-    --------
-    hamming, hann
-
-    Notes
-    -----
-    The generalized Hamming window is defined as
-
-    .. math:: w(n) = \alpha - \left(1 - \alpha\right)
-              \cos\left(\frac{2\pi{n}}{M-1}\right) \qquad 0 \leq n \leq M-1
-
-    Both the common Hamming window and Hann window are special cases of the
-    generalized Hamming window with :math:`\alpha` = 0.54 and :math:`\alpha` =
-    0.5, respectively [2]_.
-
-    References
-    ----------
-    .. [1] DSPRelated, "Generalized Hamming Window Family",
-           https://www.dsprelated.com/freebooks/sasp/Generalized_Hamming_Window_Family.html
-    .. [2] Wikipedia, "Window function",
-           https://en.wikipedia.org/wiki/Window_function
-    .. [3] Riccardo Piantanida ESA, "Sentinel-1 Level 1 Detailed Algorithm
-           Definition",
-           https://sentinel.esa.int/documents/247904/1877131/Sentinel-1-Level-1-Detailed-Algorithm-Definition
-    .. [4] Matthieu Bourbigot ESA, "Sentinel-1 Product Definition",
-           https://sentinel.esa.int/documents/247904/1877131/Sentinel-1-Product-Definition
-
-    Examples
-    --------
-    The Sentinel-1A/B Instrument Processing Facility uses generalized Hamming
-    windows in the processing of spaceborne Synthetic Aperture Radar (SAR)
-    data [3]_. The facility uses various values for the :math:`\alpha`
-    parameter based on operating mode of the SAR instrument. Some common
-    :math:`\alpha` values include 0.75, 0.7 and 0.52 [4]_. As an example, we
-    plot these different windows.
-
-    >>> import numpy as np
-    >>> from scipy.signal.windows import general_hamming
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> fig1, spatial_plot = plt.subplots()
-    >>> spatial_plot.set_title("Generalized Hamming Windows")
-    >>> spatial_plot.set_ylabel("Amplitude")
-    >>> spatial_plot.set_xlabel("Sample")
-
-    >>> fig2, freq_plot = plt.subplots()
-    >>> freq_plot.set_title("Frequency Responses")
-    >>> freq_plot.set_ylabel("Normalized magnitude [dB]")
-    >>> freq_plot.set_xlabel("Normalized frequency [cycles per sample]")
-
-    >>> for alpha in [0.75, 0.7, 0.52]:
-    ...     window = general_hamming(41, alpha)
-    ...     spatial_plot.plot(window, label="{:.2f}".format(alpha))
-    ...     A = fft(window, 2048) / (len(window)/2.0)
-    ...     freq = np.linspace(-0.5, 0.5, len(A))
-    ...     response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    ...     freq_plot.plot(freq, response, label="{:.2f}".format(alpha))
-    >>> freq_plot.legend(loc="upper right")
-    >>> spatial_plot.legend(loc="upper right")
-
-    """
-    return general_cosine(M, [alpha, 1. - alpha], sym)
-
-
-def hamming(M, sym=True):
-    r"""Return a Hamming window.
-
-    The Hamming window is a taper formed by using a raised cosine with
-    non-zero endpoints, optimized to minimize the nearest side lobe.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Notes
-    -----
-    The Hamming window is defined as
-
-    .. math::  w(n) = 0.54 - 0.46 \cos\left(\frac{2\pi{n}}{M-1}\right)
-               \qquad 0 \leq n \leq M-1
-
-    The Hamming was named for R. W. Hamming, an associate of J. W. Tukey and
-    is described in Blackman and Tukey. It was recommended for smoothing the
-    truncated autocovariance function in the time domain.
-    Most references to the Hamming window come from the signal processing
-    literature, where it is used as one of many windowing functions for
-    smoothing values.  It is also known as an apodization (which means
-    "removing the foot", i.e. smoothing discontinuities at the beginning
-    and end of the sampled signal) or tapering function.
-
-    References
-    ----------
-    .. [1] Blackman, R.B. and Tukey, J.W., (1958) The measurement of power
-           spectra, Dover Publications, New York.
-    .. [2] E.R. Kanasewich, "Time Sequence Analysis in Geophysics", The
-           University of Alberta Press, 1975, pp. 109-110.
-    .. [3] Wikipedia, "Window function",
-           https://en.wikipedia.org/wiki/Window_function
-    .. [4] W.H. Press,  B.P. Flannery, S.A. Teukolsky, and W.T. Vetterling,
-           "Numerical Recipes", Cambridge University Press, 1986, page 425.
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.hamming(51)
-    >>> plt.plot(window)
-    >>> plt.title("Hamming window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Hamming window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    # Docstring adapted from NumPy's hamming function
-    return general_hamming(M, 0.54, sym)
-
-
-def kaiser(M, beta, sym=True):
-    r"""Return a Kaiser window.
-
-    The Kaiser window is a taper formed by using a Bessel function.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    beta : float
-        Shape parameter, determines trade-off between main-lobe width and
-        side lobe level. As beta gets large, the window narrows.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Notes
-    -----
-    The Kaiser window is defined as
-
-    .. math::  w(n) = I_0\left( \beta \sqrt{1-\frac{4n^2}{(M-1)^2}}
-               \right)/I_0(\beta)
-
-    with
-
-    .. math:: \quad -\frac{M-1}{2} \leq n \leq \frac{M-1}{2},
-
-    where :math:`I_0` is the modified zeroth-order Bessel function.
-
-    The Kaiser was named for Jim Kaiser, who discovered a simple approximation
-    to the DPSS window based on Bessel functions.
-    The Kaiser window is a very good approximation to the Digital Prolate
-    Spheroidal Sequence, or Slepian window, which is the transform which
-    maximizes the energy in the main lobe of the window relative to total
-    energy.
-
-    The Kaiser can approximate other windows by varying the beta parameter.
-    (Some literature uses alpha = beta/pi.) [4]_
-
-    ====  =======================
-    beta  Window shape
-    ====  =======================
-    0     Rectangular
-    5     Similar to a Hamming
-    6     Similar to a Hann
-    8.6   Similar to a Blackman
-    ====  =======================
-
-    A beta value of 14 is probably a good starting point. Note that as beta
-    gets large, the window narrows, and so the number of samples needs to be
-    large enough to sample the increasingly narrow spike, otherwise NaNs will
-    be returned.
-
-    Most references to the Kaiser window come from the signal processing
-    literature, where it is used as one of many windowing functions for
-    smoothing values.  It is also known as an apodization (which means
-    "removing the foot", i.e. smoothing discontinuities at the beginning
-    and end of the sampled signal) or tapering function.
-
-    References
-    ----------
-    .. [1] J. F. Kaiser, "Digital Filters" - Ch 7 in "Systems analysis by
-           digital computer", Editors: F.F. Kuo and J.F. Kaiser, p 218-285.
-           John Wiley and Sons, New York, (1966).
-    .. [2] E.R. Kanasewich, "Time Sequence Analysis in Geophysics", The
-           University of Alberta Press, 1975, pp. 177-178.
-    .. [3] Wikipedia, "Window function",
-           https://en.wikipedia.org/wiki/Window_function
-    .. [4] F. J. Harris, "On the use of windows for harmonic analysis with the
-           discrete Fourier transform," Proceedings of the IEEE, vol. 66,
-           no. 1, pp. 51-83, Jan. 1978. :doi:`10.1109/PROC.1978.10837`.
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.kaiser(51, beta=14)
-    >>> plt.plot(window)
-    >>> plt.title(r"Kaiser window ($\beta$=14)")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title(r"Frequency response of the Kaiser window ($\beta$=14)")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    # Docstring adapted from NumPy's kaiser function
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    n = np.arange(0, M)
-    alpha = (M - 1) / 2.0
-    w = (special.i0(beta * np.sqrt(1 - ((n - alpha) / alpha) ** 2.0)) /
-         special.i0(beta))
-
-    return _truncate(w, needs_trunc)
-
-
-def kaiser_bessel_derived(M, beta, *, sym=True):
-    """Return a Kaiser-Bessel derived window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-        Note that this window is only defined for an even
-        number of points.
-    beta : float
-        Kaiser window shape parameter.
-    sym : bool, optional
-        This parameter only exists to comply with the interface offered by
-        the other window functions and to be callable by `get_window`.
-        When True (default), generates a symmetric window, for use in filter
-        design.
-
-    Returns
-    -------
-    w : ndarray
-        The window, normalized to fulfil the Princen-Bradley condition.
-
-    See Also
-    --------
-    kaiser
-
-    Notes
-    -----
-    It is designed to be suitable for use with the modified discrete cosine
-    transform (MDCT) and is mainly used in audio signal processing and
-    audio coding.
-
-    .. versionadded:: 1.9.0
-
-    References
-    ----------
-    .. [1] Bosi, Marina, and Richard E. Goldberg. Introduction to Digital
-           Audio Coding and Standards. Dordrecht: Kluwer, 2003.
-    .. [2] Wikipedia, "Kaiser window",
-           https://en.wikipedia.org/wiki/Kaiser_window
-
-    Examples
-    --------
-    Plot the Kaiser-Bessel derived window based on the wikipedia
-    reference [2]_:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> N = 50
-    >>> for alpha in [0.64, 2.55, 7.64, 31.83]:
-    ...     ax.plot(signal.windows.kaiser_bessel_derived(2*N, np.pi*alpha),
-    ...             label=f"{alpha=}")
-    >>> ax.grid(True)
-    >>> ax.set_title("Kaiser-Bessel derived window")
-    >>> ax.set_ylabel("Amplitude")
-    >>> ax.set_xlabel("Sample")
-    >>> ax.set_xticks([0, N, 2*N-1])
-    >>> ax.set_xticklabels(["0", "N", "2N+1"])  # doctest: +SKIP
-    >>> ax.set_yticks([0.0, 0.2, 0.4, 0.6, 0.707, 0.8, 1.0])
-    >>> fig.legend(loc="center")
-    >>> fig.tight_layout()
-    >>> fig.show()
-    """
-    if not sym:
-        raise ValueError(
-            "Kaiser-Bessel Derived windows are only defined for symmetric "
-            "shapes"
-        )
-    elif M < 1:
-        return np.array([])
-    elif M % 2:
-        raise ValueError(
-            "Kaiser-Bessel Derived windows are only defined for even number "
-            "of points"
-        )
-
-    kaiser_window = kaiser(M // 2 + 1, beta)
-    csum = np.cumsum(kaiser_window)
-    half_window = np.sqrt(csum[:-1] / csum[-1])
-    w = np.concatenate((half_window, half_window[::-1]), axis=0)
-    return w
-
-
-def gaussian(M, std, sym=True):
-    r"""Return a Gaussian window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    std : float
-        The standard deviation, sigma.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Notes
-    -----
-    The Gaussian window is defined as
-
-    .. math::  w(n) = e^{ -\frac{1}{2}\left(\frac{n}{\sigma}\right)^2 }
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.gaussian(51, std=7)
-    >>> plt.plot(window)
-    >>> plt.title(r"Gaussian window ($\sigma$=7)")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title(r"Frequency response of the Gaussian window ($\sigma$=7)")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    n = np.arange(0, M) - (M - 1.0) / 2.0
-    sig2 = 2 * std * std
-    w = np.exp(-n ** 2 / sig2)
-
-    return _truncate(w, needs_trunc)
-
-
-def general_gaussian(M, p, sig, sym=True):
-    r"""Return a window with a generalized Gaussian shape.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    p : float
-        Shape parameter.  p = 1 is identical to `gaussian`, p = 0.5 is
-        the same shape as the Laplace distribution.
-    sig : float
-        The standard deviation, sigma.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Notes
-    -----
-    The generalized Gaussian window is defined as
-
-    .. math::  w(n) = e^{ -\frac{1}{2}\left|\frac{n}{\sigma}\right|^{2p} }
-
-    the half-power point is at
-
-    .. math::  (2 \log(2))^{1/(2 p)} \sigma
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.general_gaussian(51, p=1.5, sig=7)
-    >>> plt.plot(window)
-    >>> plt.title(r"Generalized Gaussian window (p=1.5, $\sigma$=7)")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title(r"Freq. resp. of the gen. Gaussian "
-    ...           r"window (p=1.5, $\sigma$=7)")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    n = np.arange(0, M) - (M - 1.0) / 2.0
-    w = np.exp(-0.5 * np.abs(n / sig) ** (2 * p))
-
-    return _truncate(w, needs_trunc)
-
-
-# `chebwin` contributed by Kumar Appaiah.
-def chebwin(M, at, sym=True):
-    r"""Return a Dolph-Chebyshev window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    at : float
-        Attenuation (in dB).
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value always normalized to 1
-
-    Notes
-    -----
-    This window optimizes for the narrowest main lobe width for a given order
-    `M` and sidelobe equiripple attenuation `at`, using Chebyshev
-    polynomials.  It was originally developed by Dolph to optimize the
-    directionality of radio antenna arrays.
-
-    Unlike most windows, the Dolph-Chebyshev is defined in terms of its
-    frequency response:
-
-    .. math:: W(k) = \frac
-              {\cos\{M \cos^{-1}[\beta \cos(\frac{\pi k}{M})]\}}
-              {\cosh[M \cosh^{-1}(\beta)]}
-
-    where
-
-    .. math:: \beta = \cosh \left [\frac{1}{M}
-              \cosh^{-1}(10^\frac{A}{20}) \right ]
-
-    and 0 <= abs(k) <= M-1. A is the attenuation in decibels (`at`).
-
-    The time domain window is then generated using the IFFT, so
-    power-of-two `M` are the fastest to generate, and prime number `M` are
-    the slowest.
-
-    The equiripple condition in the frequency domain creates impulses in the
-    time domain, which appear at the ends of the window.
-
-    References
-    ----------
-    .. [1] C. Dolph, "A current distribution for broadside arrays which
-           optimizes the relationship between beam width and side-lobe level",
-           Proceedings of the IEEE, Vol. 34, Issue 6
-    .. [2] Peter Lynch, "The Dolph-Chebyshev Window: A Simple Optimal Filter",
-           American Meteorological Society (April 1997)
-           http://mathsci.ucd.ie/~plynch/Publications/Dolph.pdf
-    .. [3] F. J. Harris, "On the use of windows for harmonic analysis with the
-           discrete Fourier transforms", Proceedings of the IEEE, Vol. 66,
-           No. 1, January 1978
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.chebwin(51, at=100)
-    >>> plt.plot(window)
-    >>> plt.title("Dolph-Chebyshev window (100 dB)")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Dolph-Chebyshev window (100 dB)")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """
-    if np.abs(at) < 45:
-        warnings.warn("This window is not suitable for spectral analysis "
-                      "for attenuation values lower than about 45dB because "
-                      "the equivalent noise bandwidth of a Chebyshev window "
-                      "does not grow monotonically with increasing sidelobe "
-                      "attenuation when the attenuation is smaller than "
-                      "about 45 dB.",
-                      stacklevel=2)
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    # compute the parameter beta
-    order = M - 1.0
-    beta = np.cosh(1.0 / order * np.arccosh(10 ** (np.abs(at) / 20.)))
-    k = np.r_[0:M] * 1.0
-    x = beta * np.cos(np.pi * k / M)
-    # Find the window's DFT coefficients
-    # Use analytic definition of Chebyshev polynomial instead of expansion
-    # from scipy.special. Using the expansion in scipy.special leads to errors.
-    p = np.zeros(x.shape)
-    p[x > 1] = np.cosh(order * np.arccosh(x[x > 1]))
-    p[x < -1] = (2 * (M % 2) - 1) * np.cosh(order * np.arccosh(-x[x < -1]))
-    p[np.abs(x) <= 1] = np.cos(order * np.arccos(x[np.abs(x) <= 1]))
-
-    # Appropriate IDFT and filling up
-    # depending on even/odd M
-    if M % 2:
-        w = np.real(sp_fft.fft(p))
-        n = (M + 1) // 2
-        w = w[:n]
-        w = np.concatenate((w[n - 1:0:-1], w))
-    else:
-        p = p * np.exp(1.j * np.pi / M * np.r_[0:M])
-        w = np.real(sp_fft.fft(p))
-        n = M // 2 + 1
-        w = np.concatenate((w[n - 1:0:-1], w[1:n]))
-    w = w / max(w)
-
-    return _truncate(w, needs_trunc)
-
-
-def cosine(M, sym=True):
-    """Return a window with a simple cosine shape.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Notes
-    -----
-
-    .. versionadded:: 0.13.0
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.cosine(51)
-    >>> plt.plot(window)
-    >>> plt.title("Cosine window")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2047) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the cosine window")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-    >>> plt.show()
-
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    w = np.sin(np.pi / M * (np.arange(0, M) + .5))
-
-    return _truncate(w, needs_trunc)
-
-
-def exponential(M, center=None, tau=1., sym=True):
-    r"""Return an exponential (or Poisson) window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    center : float, optional
-        Parameter defining the center location of the window function.
-        The default value if not given is ``center = (M-1) / 2``.  This
-        parameter must take its default value for symmetric windows.
-    tau : float, optional
-        Parameter defining the decay.  For ``center = 0`` use
-        ``tau = -(M-1) / ln(x)`` if ``x`` is the fraction of the window
-        remaining at the end.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Notes
-    -----
-    The Exponential window is defined as
-
-    .. math::  w(n) = e^{-|n-center| / \tau}
-
-    References
-    ----------
-    .. [1] S. Gade and H. Herlufsen, "Windows to FFT analysis (Part I)",
-           Technical Review 3, Bruel & Kjaer, 1987.
-
-    Examples
-    --------
-    Plot the symmetric window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> M = 51
-    >>> tau = 3.0
-    >>> window = signal.windows.exponential(M, tau=tau)
-    >>> plt.plot(window)
-    >>> plt.title("Exponential Window (tau=3.0)")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -35, 0])
-    >>> plt.title("Frequency response of the Exponential window (tau=3.0)")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    This function can also generate non-symmetric windows:
-
-    >>> tau2 = -(M-1) / np.log(0.01)
-    >>> window2 = signal.windows.exponential(M, 0, tau2, False)
-    >>> plt.figure()
-    >>> plt.plot(window2)
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-    """
-    if sym and center is not None:
-        raise ValueError("If sym==True, center must be None.")
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    if center is None:
-        center = (M-1) / 2
-
-    n = np.arange(0, M)
-    w = np.exp(-np.abs(n-center) / tau)
-
-    return _truncate(w, needs_trunc)
-
-
-def taylor(M, nbar=4, sll=30, norm=True, sym=True):
-    """
-    Return a Taylor window.
-
-    The Taylor window taper function approximates the Dolph-Chebyshev window's
-    constant sidelobe level for a parameterized number of near-in sidelobes,
-    but then allows a taper beyond [2]_.
-
-    The SAR (synthetic aperture radar) community commonly uses Taylor
-    weighting for image formation processing because it provides strong,
-    selectable sidelobe suppression with minimum broadening of the
-    mainlobe [1]_.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    nbar : int, optional
-        Number of nearly constant level sidelobes adjacent to the mainlobe.
-    sll : float, optional
-        Desired suppression of sidelobe level in decibels (dB) relative to the
-        DC gain of the mainlobe. This should be a positive number.
-    norm : bool, optional
-        When True (default), divides the window by the largest (middle) value
-        for odd-length windows or the value that would occur between the two
-        repeated middle values for even-length windows such that all values
-        are less than or equal to 1. When False the DC gain will remain at 1
-        (0 dB) and the sidelobes will be `sll` dB down.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    out : array
-        The window. When `norm` is True (default), the maximum value is
-        normalized to 1 (though the value 1 does not appear if `M` is
-        even and `sym` is True).
-
-    See Also
-    --------
-    chebwin, kaiser, bartlett, blackman, hamming, hann
-
-    References
-    ----------
-    .. [1] W. Carrara, R. Goodman, and R. Majewski, "Spotlight Synthetic
-           Aperture Radar: Signal Processing Algorithms" Pages 512-513,
-           July 1995.
-    .. [2] Armin Doerry, "Catalog of Window Taper Functions for
-           Sidelobe Control", 2017.
-           https://www.researchgate.net/profile/Armin_Doerry/publication/316281181_Catalog_of_Window_Taper_Functions_for_Sidelobe_Control/links/58f92cb2a6fdccb121c9d54d/Catalog-of-Window-Taper-Functions-for-Sidelobe-Control.pdf
-
-    Examples
-    --------
-    Plot the window and its frequency response:
-
-    >>> import numpy as np
-    >>> from scipy import signal
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-
-    >>> window = signal.windows.taylor(51, nbar=20, sll=100, norm=False)
-    >>> plt.plot(window)
-    >>> plt.title("Taylor window (100 dB)")
-    >>> plt.ylabel("Amplitude")
-    >>> plt.xlabel("Sample")
-
-    >>> plt.figure()
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> plt.plot(freq, response)
-    >>> plt.axis([-0.5, 0.5, -120, 0])
-    >>> plt.title("Frequency response of the Taylor window (100 dB)")
-    >>> plt.ylabel("Normalized magnitude [dB]")
-    >>> plt.xlabel("Normalized frequency [cycles per sample]")
-
-    """  # noqa: E501
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    # Original text uses a negative sidelobe level parameter and then negates
-    # it in the calculation of B. To keep consistent with other methods we
-    # assume the sidelobe level parameter to be positive.
-    B = 10**(sll / 20)
-    A = np.arccosh(B) / np.pi
-    s2 = nbar**2 / (A**2 + (nbar - 0.5)**2)
-    ma = np.arange(1, nbar)
-
-    Fm = np.empty(nbar-1)
-    signs = np.empty_like(ma)
-    signs[::2] = 1
-    signs[1::2] = -1
-    m2 = ma*ma
-    for mi, m in enumerate(ma):
-        numer = signs[mi] * np.prod(1 - m2[mi]/s2/(A**2 + (ma - 0.5)**2))
-        denom = 2 * np.prod(1 - m2[mi]/m2[:mi]) * np.prod(1 - m2[mi]/m2[mi+1:])
-        Fm[mi] = numer / denom
-
-    def W(n):
-        return 1 + 2*np.dot(Fm, np.cos(
-            2*np.pi*ma[:, np.newaxis]*(n-M/2.+0.5)/M))
-
-    w = W(np.arange(M))
-
-    # normalize (Note that this is not described in the original text [1])
-    if norm:
-        scale = 1.0 / W((M - 1) / 2)
-        w *= scale
-
-    return _truncate(w, needs_trunc)
-
-
-def dpss(M, NW, Kmax=None, sym=True, norm=None, return_ratios=False):
-    """
-    Compute the Discrete Prolate Spheroidal Sequences (DPSS).
-
-    DPSS (or Slepian sequences) are often used in multitaper power spectral
-    density estimation (see [1]_). The first window in the sequence can be
-    used to maximize the energy concentration in the main lobe, and is also
-    called the Slepian window.
-
-    Parameters
-    ----------
-    M : int
-        Window length.
-    NW : float
-        Standardized half bandwidth corresponding to ``2*NW = BW/f0 = BW*M*dt``
-        where ``dt`` is taken as 1.
-    Kmax : int | None, optional
-        Number of DPSS windows to return (orders ``0`` through ``Kmax-1``).
-        If None (default), return only a single window of shape ``(M,)``
-        instead of an array of windows of shape ``(Kmax, M)``.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-    norm : {2, 'approximate', 'subsample'} | None, optional
-        If 'approximate' or 'subsample', then the windows are normalized by the
-        maximum, and a correction scale-factor for even-length windows
-        is applied either using ``M**2/(M**2+NW)`` ("approximate") or
-        a FFT-based subsample shift ("subsample"), see Notes for details.
-        If None, then "approximate" is used when ``Kmax=None`` and 2 otherwise
-        (which uses the l2 norm).
-    return_ratios : bool, optional
-        If True, also return the concentration ratios in addition to the
-        windows.
-
-    Returns
-    -------
-    v : ndarray, shape (Kmax, M) or (M,)
-        The DPSS windows. Will be 1D if `Kmax` is None.
-    r : ndarray, shape (Kmax,) or float, optional
-        The concentration ratios for the windows. Only returned if
-        `return_ratios` evaluates to True. Will be 0D if `Kmax` is None.
-
-    Notes
-    -----
-    This computation uses the tridiagonal eigenvector formulation given
-    in [2]_.
-
-    The default normalization for ``Kmax=None``, i.e. window-generation mode,
-    simply using the l-infinity norm would create a window with two unity
-    values, which creates slight normalization differences between even and odd
-    orders. The approximate correction of ``M**2/float(M**2+NW)`` for even
-    sample numbers is used to counteract this effect (see Examples below).
-
-    For very long signals (e.g., 1e6 elements), it can be useful to compute
-    windows orders of magnitude shorter and use interpolation (e.g.,
-    `scipy.interpolate.interp1d`) to obtain tapers of length `M`,
-    but this in general will not preserve orthogonality between the tapers.
-
-    .. versionadded:: 1.1
-
-    References
-    ----------
-    .. [1] Percival DB, Walden WT. Spectral Analysis for Physical Applications:
-       Multitaper and Conventional Univariate Techniques.
-       Cambridge University Press; 1993.
-    .. [2] Slepian, D. Prolate spheroidal wave functions, Fourier analysis, and
-       uncertainty V: The discrete case. Bell System Technical Journal,
-       Volume 57 (1978), 1371430.
-    .. [3] Kaiser, JF, Schafer RW. On the Use of the I0-Sinh Window for
-       Spectrum Analysis. IEEE Transactions on Acoustics, Speech and
-       Signal Processing. ASSP-28 (1): 105-107; 1980.
-
-    Examples
-    --------
-    We can compare the window to `kaiser`, which was invented as an alternative
-    that was easier to calculate [3]_ (example adapted from
-    `here `_):
-
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.signal import windows, freqz
-    >>> M = 51
-    >>> fig, axes = plt.subplots(3, 2, figsize=(5, 7))
-    >>> for ai, alpha in enumerate((1, 3, 5)):
-    ...     win_dpss = windows.dpss(M, alpha)
-    ...     beta = alpha*np.pi
-    ...     win_kaiser = windows.kaiser(M, beta)
-    ...     for win, c in ((win_dpss, 'k'), (win_kaiser, 'r')):
-    ...         win /= win.sum()
-    ...         axes[ai, 0].plot(win, color=c, lw=1.)
-    ...         axes[ai, 0].set(xlim=[0, M-1], title=r'$\\alpha$ = %s' % alpha,
-    ...                         ylabel='Amplitude')
-    ...         w, h = freqz(win)
-    ...         axes[ai, 1].plot(w, 20 * np.log10(np.abs(h)), color=c, lw=1.)
-    ...         axes[ai, 1].set(xlim=[0, np.pi],
-    ...                         title=r'$\\beta$ = %0.2f' % beta,
-    ...                         ylabel='Magnitude (dB)')
-    >>> for ax in axes.ravel():
-    ...     ax.grid(True)
-    >>> axes[2, 1].legend(['DPSS', 'Kaiser'])
-    >>> fig.tight_layout()
-    >>> plt.show()
-
-    And here are examples of the first four windows, along with their
-    concentration ratios:
-
-    >>> M = 512
-    >>> NW = 2.5
-    >>> win, eigvals = windows.dpss(M, NW, 4, return_ratios=True)
-    >>> fig, ax = plt.subplots(1)
-    >>> ax.plot(win.T, linewidth=1.)
-    >>> ax.set(xlim=[0, M-1], ylim=[-0.1, 0.1], xlabel='Samples',
-    ...        title='DPSS, M=%d, NW=%0.1f' % (M, NW))
-    >>> ax.legend(['win[%d] (%0.4f)' % (ii, ratio)
-    ...            for ii, ratio in enumerate(eigvals)])
-    >>> fig.tight_layout()
-    >>> plt.show()
-
-    Using a standard :math:`l_{\\infty}` norm would produce two unity values
-    for even `M`, but only one unity value for odd `M`. This produces uneven
-    window power that can be counteracted by the approximate correction
-    ``M**2/float(M**2+NW)``, which can be selected by using
-    ``norm='approximate'`` (which is the same as ``norm=None`` when
-    ``Kmax=None``, as is the case here). Alternatively, the slower
-    ``norm='subsample'`` can be used, which uses subsample shifting in the
-    frequency domain (FFT) to compute the correction:
-
-    >>> Ms = np.arange(1, 41)
-    >>> factors = (50, 20, 10, 5, 2.0001)
-    >>> energy = np.empty((3, len(Ms), len(factors)))
-    >>> for mi, M in enumerate(Ms):
-    ...     for fi, factor in enumerate(factors):
-    ...         NW = M / float(factor)
-    ...         # Corrected using empirical approximation (default)
-    ...         win = windows.dpss(M, NW)
-    ...         energy[0, mi, fi] = np.sum(win ** 2) / np.sqrt(M)
-    ...         # Corrected using subsample shifting
-    ...         win = windows.dpss(M, NW, norm='subsample')
-    ...         energy[1, mi, fi] = np.sum(win ** 2) / np.sqrt(M)
-    ...         # Uncorrected (using l-infinity norm)
-    ...         win /= win.max()
-    ...         energy[2, mi, fi] = np.sum(win ** 2) / np.sqrt(M)
-    >>> fig, ax = plt.subplots(1)
-    >>> hs = ax.plot(Ms, energy[2], '-o', markersize=4,
-    ...              markeredgecolor='none')
-    >>> leg = [hs[-1]]
-    >>> for hi, hh in enumerate(hs):
-    ...     h1 = ax.plot(Ms, energy[0, :, hi], '-o', markersize=4,
-    ...                  color=hh.get_color(), markeredgecolor='none',
-    ...                  alpha=0.66)
-    ...     h2 = ax.plot(Ms, energy[1, :, hi], '-o', markersize=4,
-    ...                  color=hh.get_color(), markeredgecolor='none',
-    ...                  alpha=0.33)
-    ...     if hi == len(hs) - 1:
-    ...         leg.insert(0, h1[0])
-    ...         leg.insert(0, h2[0])
-    >>> ax.set(xlabel='M (samples)', ylabel=r'Power / $\\sqrt{M}$')
-    >>> ax.legend(leg, ['Uncorrected', r'Corrected: $\\frac{M^2}{M^2+NW}$',
-    ...                 'Corrected (subsample)'])
-    >>> fig.tight_layout()
-
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    if norm is None:
-        norm = 'approximate' if Kmax is None else 2
-    known_norms = (2, 'approximate', 'subsample')
-    if norm not in known_norms:
-        raise ValueError(f'norm must be one of {known_norms}, got {norm}')
-    if Kmax is None:
-        singleton = True
-        Kmax = 1
-    else:
-        singleton = False
-    Kmax = operator.index(Kmax)
-    if not 0 < Kmax <= M:
-        raise ValueError('Kmax must be greater than 0 and less than M')
-    if NW >= M/2.:
-        raise ValueError('NW must be less than M/2.')
-    if NW <= 0:
-        raise ValueError('NW must be positive')
-    M, needs_trunc = _extend(M, sym)
-    W = float(NW) / M
-    nidx = np.arange(M)
-
-    # Here we want to set up an optimization problem to find a sequence
-    # whose energy is maximally concentrated within band [-W,W].
-    # Thus, the measure lambda(T,W) is the ratio between the energy within
-    # that band, and the total energy. This leads to the eigen-system
-    # (A - (l1)I)v = 0, where the eigenvector corresponding to the largest
-    # eigenvalue is the sequence with maximally concentrated energy. The
-    # collection of eigenvectors of this system are called Slepian
-    # sequences, or discrete prolate spheroidal sequences (DPSS). Only the
-    # first K, K = 2NW/dt orders of DPSS will exhibit good spectral
-    # concentration
-    # [see https://en.wikipedia.org/wiki/Spectral_concentration_problem]
-
-    # Here we set up an alternative symmetric tri-diagonal eigenvalue
-    # problem such that
-    # (B - (l2)I)v = 0, and v are our DPSS (but eigenvalues l2 != l1)
-    # the main diagonal = ([M-1-2*t]/2)**2 cos(2PIW), t=[0,1,2,...,M-1]
-    # and the first off-diagonal = t(M-t)/2, t=[1,2,...,M-1]
-    # [see Percival and Walden, 1993]
-    d = ((M - 1 - 2 * nidx) / 2.) ** 2 * np.cos(2 * np.pi * W)
-    e = nidx[1:] * (M - nidx[1:]) / 2.
-
-    # only calculate the highest Kmax eigenvalues
-    w, windows = linalg.eigh_tridiagonal(
-        d, e, select='i', select_range=(M - Kmax, M - 1))
-    w = w[::-1]
-    windows = windows[:, ::-1].T
-
-    # By convention (Percival and Walden, 1993 pg 379)
-    # * symmetric tapers (k=0,2,4,...) should have a positive average.
-    fix_even = (windows[::2].sum(axis=1) < 0)
-    for i, f in enumerate(fix_even):
-        if f:
-            windows[2 * i] *= -1
-    # * antisymmetric tapers should begin with a positive lobe
-    #   (this depends on the definition of "lobe", here we'll take the first
-    #   point above the numerical noise, which should be good enough for
-    #   sufficiently smooth functions, and more robust than relying on an
-    #   algorithm that uses max(abs(w)), which is susceptible to numerical
-    #   noise problems)
-    thresh = max(1e-7, 1. / M)
-    for i, w in enumerate(windows[1::2]):
-        if w[w * w > thresh][0] < 0:
-            windows[2 * i + 1] *= -1
-
-    # Now find the eigenvalues of the original spectral concentration problem
-    # Use the autocorr sequence technique from Percival and Walden, 1993 pg 390
-    if return_ratios:
-        dpss_rxx = _fftautocorr(windows)
-        r = 4 * W * np.sinc(2 * W * nidx)
-        r[0] = 2 * W
-        ratios = np.dot(dpss_rxx, r)
-        if singleton:
-            ratios = ratios[0]
-    # Deal with sym and Kmax=None
-    if norm != 2:
-        windows /= windows.max()
-        if M % 2 == 0:
-            if norm == 'approximate':
-                correction = M**2 / float(M**2 + NW)
-            else:
-                s = sp_fft.rfft(windows[0])
-                shift = -(1 - 1./M) * np.arange(1, M//2 + 1)
-                s[1:] *= 2 * np.exp(-1j * np.pi * shift)
-                correction = M / s.real.sum()
-            windows *= correction
-    # else we're already l2 normed, so do nothing
-    if needs_trunc:
-        windows = windows[:, :-1]
-    if singleton:
-        windows = windows[0]
-    return (windows, ratios) if return_ratios else windows
-
-
-def lanczos(M, *, sym=True):
-    r"""Return a Lanczos window also known as a sinc window.
-
-    Parameters
-    ----------
-    M : int
-        Number of points in the output window. If zero, an empty array
-        is returned. An exception is thrown when it is negative.
-    sym : bool, optional
-        When True (default), generates a symmetric window, for use in filter
-        design.
-        When False, generates a periodic window, for use in spectral analysis.
-
-    Returns
-    -------
-    w : ndarray
-        The window, with the maximum value normalized to 1 (though the value 1
-        does not appear if `M` is even and `sym` is True).
-
-    Notes
-    -----
-    The Lanczos window is defined as
-
-    .. math::  w(n) = sinc \left( \frac{2n}{M - 1} - 1 \right)
-
-    where
-
-    .. math::  sinc(x) = \frac{\sin(\pi x)}{\pi x}
-
-    The Lanczos window has reduced Gibbs oscillations and is widely used for
-    filtering climate timeseries with good properties in the physical and
-    spectral domains.
-
-    .. versionadded:: 1.10
-
-    References
-    ----------
-    .. [1] Lanczos, C., and Teichmann, T. (1957). Applied analysis.
-           Physics Today, 10, 44.
-    .. [2] Duchon C. E. (1979) Lanczos Filtering in One and Two Dimensions.
-           Journal of Applied Meteorology, Vol 18, pp 1016-1022.
-    .. [3] Thomson, R. E. and Emery, W. J. (2014) Data Analysis Methods in
-           Physical Oceanography (Third Edition), Elsevier, pp 593-637.
-    .. [4] Wikipedia, "Window function",
-           http://en.wikipedia.org/wiki/Window_function
-
-    Examples
-    --------
-    Plot the window
-
-    >>> import numpy as np
-    >>> from scipy.signal.windows import lanczos
-    >>> from scipy.fft import fft, fftshift
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots(1)
-    >>> window = lanczos(51)
-    >>> ax.plot(window)
-    >>> ax.set_title("Lanczos window")
-    >>> ax.set_ylabel("Amplitude")
-    >>> ax.set_xlabel("Sample")
-    >>> fig.tight_layout()
-    >>> plt.show()
-
-    and its frequency response:
-
-    >>> fig, ax = plt.subplots(1)
-    >>> A = fft(window, 2048) / (len(window)/2.0)
-    >>> freq = np.linspace(-0.5, 0.5, len(A))
-    >>> response = 20 * np.log10(np.abs(fftshift(A / abs(A).max())))
-    >>> ax.plot(freq, response)
-    >>> ax.set_xlim(-0.5, 0.5)
-    >>> ax.set_ylim(-120, 0)
-    >>> ax.set_title("Frequency response of the lanczos window")
-    >>> ax.set_ylabel("Normalized magnitude [dB]")
-    >>> ax.set_xlabel("Normalized frequency [cycles per sample]")
-    >>> fig.tight_layout()
-    >>> plt.show()
-    """
-    if _len_guards(M):
-        return np.ones(M)
-    M, needs_trunc = _extend(M, sym)
-
-    # To make sure that the window is symmetric, we concatenate the right hand
-    # half of the window and the flipped one which is the left hand half of
-    # the window.
-    def _calc_right_side_lanczos(n, m):
-        return np.sinc(2. * np.arange(n, m) / (m - 1) - 1.0)
-
-    if M % 2 == 0:
-        wh = _calc_right_side_lanczos(M/2, M)
-        w = np.r_[np.flip(wh), wh]
-    else:
-        wh = _calc_right_side_lanczos((M+1)/2, M)
-        w = np.r_[np.flip(wh), 1.0, wh]
-
-    return _truncate(w, needs_trunc)
-
-
-def _fftautocorr(x):
-    """Compute the autocorrelation of a real array and crop the result."""
-    N = x.shape[-1]
-    use_N = sp_fft.next_fast_len(2*N-1)
-    x_fft = sp_fft.rfft(x, use_N, axis=-1)
-    cxy = sp_fft.irfft(x_fft * x_fft.conj(), n=use_N)[:, :N]
-    # Or equivalently (but in most cases slower):
-    # cxy = np.array([np.convolve(xx, yy[::-1], mode='full')
-    #                 for xx, yy in zip(x, x)])[:, N-1:2*N-1]
-    return cxy
-
-
-_win_equiv_raw = {
-    ('barthann', 'brthan', 'bth'): (barthann, False),
-    ('bartlett', 'bart', 'brt'): (bartlett, False),
-    ('blackman', 'black', 'blk'): (blackman, False),
-    ('blackmanharris', 'blackharr', 'bkh'): (blackmanharris, False),
-    ('bohman', 'bman', 'bmn'): (bohman, False),
-    ('boxcar', 'box', 'ones',
-        'rect', 'rectangular'): (boxcar, False),
-    ('chebwin', 'cheb'): (chebwin, True),
-    ('cosine', 'halfcosine'): (cosine, False),
-    ('dpss',): (dpss, True),
-    ('exponential', 'poisson'): (exponential, False),
-    ('flattop', 'flat', 'flt'): (flattop, False),
-    ('gaussian', 'gauss', 'gss'): (gaussian, True),
-    ('general cosine', 'general_cosine'): (general_cosine, True),
-    ('general gaussian', 'general_gaussian',
-        'general gauss', 'general_gauss', 'ggs'): (general_gaussian, True),
-    ('general hamming', 'general_hamming'): (general_hamming, True),
-    ('hamming', 'hamm', 'ham'): (hamming, False),
-    ('hann', 'han'): (hann, False),
-    ('kaiser', 'ksr'): (kaiser, True),
-    ('kaiser bessel derived', 'kbd'): (kaiser_bessel_derived, True),
-    ('lanczos', 'sinc'): (lanczos, False),
-    ('nuttall', 'nutl', 'nut'): (nuttall, False),
-    ('parzen', 'parz', 'par'): (parzen, False),
-    ('taylor', 'taylorwin'): (taylor, False),
-    ('triangle', 'triang', 'tri'): (triang, False),
-    ('tukey', 'tuk'): (tukey, False),
-}
-
-# Fill dict with all valid window name strings
-_win_equiv = {}
-for k, v in _win_equiv_raw.items():
-    for key in k:
-        _win_equiv[key] = v[0]
-
-# Keep track of which windows need additional parameters
-_needs_param = set()
-for k, v in _win_equiv_raw.items():
-    if v[1]:
-        _needs_param.update(k)
-
-
-def get_window(window, Nx, fftbins=True):
-    """
-    Return a window of a given length and type.
-
-    Parameters
-    ----------
-    window : string, float, or tuple
-        The type of window to create. See below for more details.
-    Nx : int
-        The number of samples in the window.
-    fftbins : bool, optional
-        If True (default), create a "periodic" window, ready to use with
-        `ifftshift` and be multiplied by the result of an FFT (see also
-        :func:`~scipy.fft.fftfreq`).
-        If False, create a "symmetric" window, for use in filter design.
-
-    Returns
-    -------
-    get_window : ndarray
-        Returns a window of length `Nx` and type `window`
-
-    Notes
-    -----
-    Window types:
-
-    - `~scipy.signal.windows.boxcar`
-    - `~scipy.signal.windows.triang`
-    - `~scipy.signal.windows.blackman`
-    - `~scipy.signal.windows.hamming`
-    - `~scipy.signal.windows.hann`
-    - `~scipy.signal.windows.bartlett`
-    - `~scipy.signal.windows.flattop`
-    - `~scipy.signal.windows.parzen`
-    - `~scipy.signal.windows.bohman`
-    - `~scipy.signal.windows.blackmanharris`
-    - `~scipy.signal.windows.nuttall`
-    - `~scipy.signal.windows.barthann`
-    - `~scipy.signal.windows.cosine`
-    - `~scipy.signal.windows.exponential`
-    - `~scipy.signal.windows.tukey`
-    - `~scipy.signal.windows.taylor`
-    - `~scipy.signal.windows.lanczos`
-    - `~scipy.signal.windows.kaiser` (needs beta)
-    - `~scipy.signal.windows.kaiser_bessel_derived` (needs beta)
-    - `~scipy.signal.windows.gaussian` (needs standard deviation)
-    - `~scipy.signal.windows.general_cosine` (needs weighting coefficients)
-    - `~scipy.signal.windows.general_gaussian` (needs power, width)
-    - `~scipy.signal.windows.general_hamming` (needs window coefficient)
-    - `~scipy.signal.windows.dpss` (needs normalized half-bandwidth)
-    - `~scipy.signal.windows.chebwin` (needs attenuation)
-
-
-    If the window requires no parameters, then `window` can be a string.
-
-    If the window requires parameters, then `window` must be a tuple
-    with the first argument the string name of the window, and the next
-    arguments the needed parameters.
-
-    If `window` is a floating point number, it is interpreted as the beta
-    parameter of the `~scipy.signal.windows.kaiser` window.
-
-    Each of the window types listed above is also the name of
-    a function that can be called directly to create a window of
-    that type.
-
-    Examples
-    --------
-    >>> from scipy import signal
-    >>> signal.get_window('triang', 7)
-    array([ 0.125,  0.375,  0.625,  0.875,  0.875,  0.625,  0.375])
-    >>> signal.get_window(('kaiser', 4.0), 9)
-    array([ 0.08848053,  0.29425961,  0.56437221,  0.82160913,  0.97885093,
-            0.97885093,  0.82160913,  0.56437221,  0.29425961])
-    >>> signal.get_window(('exponential', None, 1.), 9)
-    array([ 0.011109  ,  0.03019738,  0.082085  ,  0.22313016,  0.60653066,
-            0.60653066,  0.22313016,  0.082085  ,  0.03019738])
-    >>> signal.get_window(4.0, 9)
-    array([ 0.08848053,  0.29425961,  0.56437221,  0.82160913,  0.97885093,
-            0.97885093,  0.82160913,  0.56437221,  0.29425961])
-
-    """
-    sym = not fftbins
-    try:
-        beta = float(window)
-    except (TypeError, ValueError) as e:
-        args = ()
-        if isinstance(window, tuple):
-            winstr = window[0]
-            if len(window) > 1:
-                args = window[1:]
-        elif isinstance(window, str):
-            if window in _needs_param:
-                raise ValueError("The '" + window + "' window needs one or "
-                                 "more parameters -- pass a tuple.") from e
-            else:
-                winstr = window
-        else:
-            raise ValueError("%s as window type is not supported." %
-                             str(type(window))) from e
-
-        try:
-            winfunc = _win_equiv[winstr]
-        except KeyError as e:
-            raise ValueError("Unknown window type.") from e
-
-        if winfunc is dpss:
-            params = (Nx,) + args + (None,)
-        else:
-            params = (Nx,) + args
-    else:
-        winfunc = kaiser
-        params = (Nx, beta)
-
-    return winfunc(*params, sym=sym)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/windows.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/windows.py
deleted file mode 100644
index 6858f71aceeb29ca6110864d01fb250e8c8ce403..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/signal/windows/windows.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.signal.windows` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = [  # noqa: F822
-    'boxcar', 'triang', 'parzen', 'bohman', 'blackman', 'nuttall',
-    'blackmanharris', 'flattop', 'bartlett', 'barthann',
-    'hamming', 'kaiser', 'gaussian', 'general_cosine',
-    'general_gaussian', 'general_hamming', 'chebwin', 'cosine',
-    'hann', 'exponential', 'tukey', 'taylor', 'dpss', 'get_window',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="signal.windows", module="windows",
-                                   private_modules=["_windows"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__init__.py
deleted file mode 100644
index b710a22325cdd15aad7226f6e0b8ff4d1dd729f0..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__init__.py
+++ /dev/null
@@ -1,323 +0,0 @@
-"""
-=====================================
-Sparse matrices (:mod:`scipy.sparse`)
-=====================================
-
-.. currentmodule:: scipy.sparse
-
-.. toctree::
-   :hidden:
-
-   sparse.csgraph
-   sparse.linalg
-
-SciPy 2-D sparse array package for numeric data.
-
-.. note::
-
-   This package is switching to an array interface, compatible with
-   NumPy arrays, from the older matrix interface.  We recommend that
-   you use the array objects (`bsr_array`, `coo_array`, etc.) for
-   all new work.
-
-   When using the array interface, please note that:
-
-   - ``x * y`` no longer performs matrix multiplication, but
-     element-wise multiplication (just like with NumPy arrays).  To
-     make code work with both arrays and matrices, use ``x @ y`` for
-     matrix multiplication.
-   - Operations such as `sum`, that used to produce dense matrices, now
-     produce arrays, whose multiplication behavior differs similarly.
-   - Sparse arrays currently must be two-dimensional.  This also means
-     that all *slicing* operations on these objects must produce
-     two-dimensional results, or they will result in an error. This
-     will be addressed in a future version.
-
-   The construction utilities (`eye`, `kron`, `random`, `diags`, etc.)
-   have not yet been ported, but their results can be wrapped into arrays::
-
-     A = csr_array(eye(3))
-
-Contents
-========
-
-Sparse array classes
---------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   bsr_array - Block Sparse Row array
-   coo_array - A sparse array in COOrdinate format
-   csc_array - Compressed Sparse Column array
-   csr_array - Compressed Sparse Row array
-   dia_array - Sparse array with DIAgonal storage
-   dok_array - Dictionary Of Keys based sparse array
-   lil_array - Row-based list of lists sparse array
-   sparray - Sparse array base class
-
-Sparse matrix classes
----------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   bsr_matrix - Block Sparse Row matrix
-   coo_matrix - A sparse matrix in COOrdinate format
-   csc_matrix - Compressed Sparse Column matrix
-   csr_matrix - Compressed Sparse Row matrix
-   dia_matrix - Sparse matrix with DIAgonal storage
-   dok_matrix - Dictionary Of Keys based sparse matrix
-   lil_matrix - Row-based list of lists sparse matrix
-   spmatrix - Sparse matrix base class
-
-Functions
----------
-
-Building sparse arrays:
-
-.. autosummary::
-   :toctree: generated/
-
-   diags_array - Return a sparse array from diagonals
-   eye_array - Sparse MxN array whose k-th diagonal is all ones
-   random_array - Random values in a given shape array
-   block_array - Build a sparse array from sub-blocks
-
-Building sparse matrices:
-
-.. autosummary::
-   :toctree: generated/
-
-   eye - Sparse MxN matrix whose k-th diagonal is all ones
-   identity - Identity matrix in sparse matrix format
-   diags - Return a sparse matrix from diagonals
-   spdiags - Return a sparse matrix from diagonals
-   bmat - Build a sparse matrix from sparse sub-blocks
-   random - Random values in a given shape matrix
-   rand - Random values in a given shape matrix (old interface)
-
-Building larger structures from smaller (array or matrix)
-
-.. autosummary::
-   :toctree: generated/
-
-   kron - kronecker product of two sparse matrices
-   kronsum - kronecker sum of sparse matrices
-   block_diag - Build a block diagonal sparse matrix
-   tril - Lower triangular portion of a matrix in sparse format
-   triu - Upper triangular portion of a matrix in sparse format
-   hstack - Stack sparse matrices horizontally (column wise)
-   vstack - Stack sparse matrices vertically (row wise)
-
-Save and load sparse matrices:
-
-.. autosummary::
-   :toctree: generated/
-
-   save_npz - Save a sparse matrix/array to a file using ``.npz`` format.
-   load_npz - Load a sparse matrix/array from a file using ``.npz`` format.
-
-Sparse tools:
-
-.. autosummary::
-   :toctree: generated/
-
-   find
-
-Identifying sparse arrays:
-
-- use `isinstance(A, sp.sparse.sparray)` to check whether an array or matrix.
-- use `A.format == 'csr'` to check the sparse format
-
-Identifying sparse matrices:
-
-.. autosummary::
-   :toctree: generated/
-
-   issparse
-   isspmatrix
-   isspmatrix_csc
-   isspmatrix_csr
-   isspmatrix_bsr
-   isspmatrix_lil
-   isspmatrix_dok
-   isspmatrix_coo
-   isspmatrix_dia
-
-Submodules
-----------
-
-.. autosummary::
-
-   csgraph - Compressed sparse graph routines
-   linalg - sparse linear algebra routines
-
-Exceptions
-----------
-
-.. autosummary::
-   :toctree: generated/
-
-   SparseEfficiencyWarning
-   SparseWarning
-
-
-Usage information
-=================
-
-There are seven available sparse array types:
-
-    1. `csc_array`: Compressed Sparse Column format
-    2. `csr_array`: Compressed Sparse Row format
-    3. `bsr_array`: Block Sparse Row format
-    4. `lil_array`: List of Lists format
-    5. `dok_array`: Dictionary of Keys format
-    6. `coo_array`: COOrdinate format (aka IJV, triplet format)
-    7. `dia_array`: DIAgonal format
-
-To construct an array efficiently, use either `dok_array` or `lil_array`.
-The `lil_array` class supports basic slicing and fancy indexing with a
-similar syntax to NumPy arrays. As illustrated below, the COO format
-may also be used to efficiently construct arrays. Despite their
-similarity to NumPy arrays, it is **strongly discouraged** to use NumPy
-functions directly on these arrays because NumPy may not properly convert
-them for computations, leading to unexpected (and incorrect) results. If you
-do want to apply a NumPy function to these arrays, first check if SciPy has
-its own implementation for the given sparse array class, or **convert the
-sparse array to a NumPy array** (e.g., using the ``toarray`` method of the
-class) first before applying the method.
-
-To perform manipulations such as multiplication or inversion, first
-convert the array to either CSC or CSR format. The `lil_array` format is
-row-based, so conversion to CSR is efficient, whereas conversion to CSC
-is less so.
-
-All conversions among the CSR, CSC, and COO formats are efficient,
-linear-time operations.
-
-Matrix vector product
----------------------
-To do a vector product between a sparse array and a vector simply use
-the array ``dot`` method, as described in its docstring:
-
->>> import numpy as np
->>> from scipy.sparse import csr_array
->>> A = csr_array([[1, 2, 0], [0, 0, 3], [4, 0, 5]])
->>> v = np.array([1, 0, -1])
->>> A.dot(v)
-array([ 1, -3, -1], dtype=int64)
-
-.. warning:: As of NumPy 1.7, ``np.dot`` is not aware of sparse arrays,
-  therefore using it will result on unexpected results or errors.
-  The corresponding dense array should be obtained first instead:
-
-  >>> np.dot(A.toarray(), v)
-  array([ 1, -3, -1], dtype=int64)
-
-  but then all the performance advantages would be lost.
-
-The CSR format is especially suitable for fast matrix vector products.
-
-Example 1
----------
-Construct a 1000x1000 `lil_array` and add some values to it:
-
->>> from scipy.sparse import lil_array
->>> from scipy.sparse.linalg import spsolve
->>> from numpy.linalg import solve, norm
->>> from numpy.random import rand
-
->>> A = lil_array((1000, 1000))
->>> A[0, :100] = rand(100)
->>> A.setdiag(rand(1000))
-
-Now convert it to CSR format and solve A x = b for x:
-
->>> A = A.tocsr()
->>> b = rand(1000)
->>> x = spsolve(A, b)
-
-Convert it to a dense array and solve, and check that the result
-is the same:
-
->>> x_ = solve(A.toarray(), b)
-
-Now we can compute norm of the error with:
-
->>> err = norm(x-x_)
->>> err < 1e-10
-True
-
-It should be small :)
-
-
-Example 2
----------
-
-Construct an array in COO format:
-
->>> from scipy import sparse
->>> from numpy import array
->>> I = array([0,3,1,0])
->>> J = array([0,3,1,2])
->>> V = array([4,5,7,9])
->>> A = sparse.coo_array((V,(I,J)),shape=(4,4))
-
-Notice that the indices do not need to be sorted.
-
-Duplicate (i,j) entries are summed when converting to CSR or CSC.
-
->>> I = array([0,0,1,3,1,0,0])
->>> J = array([0,2,1,3,1,0,0])
->>> V = array([1,1,1,1,1,1,1])
->>> B = sparse.coo_array((V,(I,J)),shape=(4,4)).tocsr()
-
-This is useful for constructing finite-element stiffness and mass matrices.
-
-Further details
----------------
-
-CSR column indices are not necessarily sorted. Likewise for CSC row
-indices. Use the ``.sorted_indices()`` and ``.sort_indices()`` methods when
-sorted indices are required (e.g., when passing data to other libraries).
-
-"""
-
-# Original code by Travis Oliphant.
-# Modified and extended by Ed Schofield, Robert Cimrman,
-# Nathan Bell, and Jake Vanderplas.
-
-import warnings as _warnings
-
-from ._base import *
-from ._csr import *
-from ._csc import *
-from ._lil import *
-from ._dok import *
-from ._coo import *
-from ._dia import *
-from ._bsr import *
-from ._construct import *
-from ._extract import *
-from ._matrix import spmatrix
-from ._matrix_io import *
-
-# For backward compatibility with v0.19.
-from . import csgraph
-
-# Deprecated namespaces, to be removed in v2.0.0
-from . import (
-    base, bsr, compressed, construct, coo, csc, csr, data, dia, dok, extract,
-    lil, sparsetools, sputils
-)
-
-__all__ = [s for s in dir() if not s.startswith('_')]
-
-# Filter PendingDeprecationWarning for np.matrix introduced with numpy 1.15
-msg = 'the matrix subclass is not the recommended way'
-_warnings.filterwarnings('ignore', message=msg)
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 1c98d981b42cc7c344d240230f223d0ef0bccb5c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_base.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_base.cpython-310.pyc
deleted file mode 100644
index c5e8d2ff87b133ae3553c79941b0b3e4f3c9e803..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_base.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_bsr.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_bsr.cpython-310.pyc
deleted file mode 100644
index 10d6ba38ede5b4f907814a8031671e040fe3555d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_bsr.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_compressed.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_compressed.cpython-310.pyc
deleted file mode 100644
index a084847ed24adba7c73b5328ae65b7e53e249f01..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_compressed.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_construct.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_construct.cpython-310.pyc
deleted file mode 100644
index f4de979b9aaf5ce27b149a695c6b542170f566ea..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_construct.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_coo.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_coo.cpython-310.pyc
deleted file mode 100644
index a3dd46390ec4fa0595e551ad76e951427b5cf7f0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_coo.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_csc.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_csc.cpython-310.pyc
deleted file mode 100644
index d0b715c1e4577c08625731fc73c961f85d0695bd..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_csc.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_csr.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_csr.cpython-310.pyc
deleted file mode 100644
index 35f012b18092b5f59d038d81e69787a1f4af4e81..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_csr.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_data.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_data.cpython-310.pyc
deleted file mode 100644
index 96d94c08a6863fbdb015bd0f40dea004dd6ffb77..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_data.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_dia.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_dia.cpython-310.pyc
deleted file mode 100644
index 29be76a86584334de9e6279bdd7d020f27428e78..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_dia.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_dok.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_dok.cpython-310.pyc
deleted file mode 100644
index 94c1c133bf720d0c33ddfebcb7b10f2f06213e10..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_dok.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_extract.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_extract.cpython-310.pyc
deleted file mode 100644
index 85d5eb0bb3abb7a0876fe9011fb7da7684fc09ef..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_extract.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_index.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_index.cpython-310.pyc
deleted file mode 100644
index 42bb46636dc47e186464132332b3b2c4e901e63a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_index.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_lil.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_lil.cpython-310.pyc
deleted file mode 100644
index bd339e5bf40eb6fed0f2597a61a4082c8aa2191a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_lil.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_matrix.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_matrix.cpython-310.pyc
deleted file mode 100644
index d30b1fdc58c545093bc04fe58a261615724e42b1..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_matrix.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_matrix_io.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_matrix_io.cpython-310.pyc
deleted file mode 100644
index eb7bab9993ef66d6515f69571274cd12c8629ce1..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_matrix_io.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_spfuncs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_spfuncs.cpython-310.pyc
deleted file mode 100644
index eab81680a36bb5f1bab12753a1732e2e3dec1313..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_spfuncs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_sputils.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_sputils.cpython-310.pyc
deleted file mode 100644
index d432050a28a9dc116218bb2928322d1f4ea4405b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/_sputils.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/base.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/base.cpython-310.pyc
deleted file mode 100644
index 884d40c8fdcc7f4beb8b90ce2638c31633031993..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/base.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/bsr.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/bsr.cpython-310.pyc
deleted file mode 100644
index 739493b6cefba920d7c1f407c9d07e4828060b33..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/bsr.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/compressed.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/compressed.cpython-310.pyc
deleted file mode 100644
index 54776de8c2cd96d12f3b259db65ca71a0cc5a474..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/compressed.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/construct.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/construct.cpython-310.pyc
deleted file mode 100644
index 428e7732fb6fe36a26272514177524aeb77106e7..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/construct.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/coo.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/coo.cpython-310.pyc
deleted file mode 100644
index 4882530fe02b20830be4f57a329e773310c7f7e3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/coo.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/csc.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/csc.cpython-310.pyc
deleted file mode 100644
index 01d6c65f1b329efad059e8d263a88360cd93aa0d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/csc.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/csr.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/csr.cpython-310.pyc
deleted file mode 100644
index 673c052700a930d6acb77c0525d0c7934ef89977..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/csr.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/data.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/data.cpython-310.pyc
deleted file mode 100644
index a6cc733cf59845db0e3ca4bd4a23a48c397e4984..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/data.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/dia.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/dia.cpython-310.pyc
deleted file mode 100644
index 2b502659bb18a7868ec5e4011f8f324e8135903c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/dia.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/dok.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/dok.cpython-310.pyc
deleted file mode 100644
index afede65ba0d552f6186e991e0a0cd6c0421ea28d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/dok.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/extract.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/extract.cpython-310.pyc
deleted file mode 100644
index 186abb9481716db009566f2f8915f664542e5e70..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/extract.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/lil.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/lil.cpython-310.pyc
deleted file mode 100644
index 8cd32c74cbee43db1fb513e2add18031e68341ab..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/lil.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/sparsetools.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/sparsetools.cpython-310.pyc
deleted file mode 100644
index 9d1f03120f33b925f00a478c715b39b21ad1aac3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/sparsetools.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/spfuncs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/spfuncs.cpython-310.pyc
deleted file mode 100644
index 75a60d63d6f3d686b8a122d046bb848e74beb217..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/spfuncs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/sputils.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/sputils.cpython-310.pyc
deleted file mode 100644
index e9177ec336f089ed331e5dece671b780c0685936..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/__pycache__/sputils.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_base.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_base.py
deleted file mode 100644
index 510f7565065d774d458d61ad33dd493081054a5a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_base.py
+++ /dev/null
@@ -1,1390 +0,0 @@
-"""Base class for sparse matrices"""
-
-import numpy as np
-
-from ._sputils import (asmatrix, check_reshape_kwargs, check_shape,
-                       get_sum_dtype, isdense, isscalarlike,
-                       matrix, validateaxis,)
-
-from ._matrix import spmatrix
-
-__all__ = ['isspmatrix', 'issparse', 'sparray',
-           'SparseWarning', 'SparseEfficiencyWarning']
-
-
-class SparseWarning(Warning):
-    pass
-
-
-class SparseFormatWarning(SparseWarning):
-    pass
-
-
-class SparseEfficiencyWarning(SparseWarning):
-    pass
-
-
-# The formats that we might potentially understand.
-_formats = {'csc': [0, "Compressed Sparse Column"],
-            'csr': [1, "Compressed Sparse Row"],
-            'dok': [2, "Dictionary Of Keys"],
-            'lil': [3, "List of Lists"],
-            'dod': [4, "Dictionary of Dictionaries"],
-            'sss': [5, "Symmetric Sparse Skyline"],
-            'coo': [6, "COOrdinate"],
-            'lba': [7, "Linpack BAnded"],
-            'egd': [8, "Ellpack-itpack Generalized Diagonal"],
-            'dia': [9, "DIAgonal"],
-            'bsr': [10, "Block Sparse Row"],
-            'msr': [11, "Modified compressed Sparse Row"],
-            'bsc': [12, "Block Sparse Column"],
-            'msc': [13, "Modified compressed Sparse Column"],
-            'ssk': [14, "Symmetric SKyline"],
-            'nsk': [15, "Nonsymmetric SKyline"],
-            'jad': [16, "JAgged Diagonal"],
-            'uss': [17, "Unsymmetric Sparse Skyline"],
-            'vbr': [18, "Variable Block Row"],
-            'und': [19, "Undefined"]
-            }
-
-
-# These univariate ufuncs preserve zeros.
-_ufuncs_with_fixed_point_at_zero = frozenset([
-        np.sin, np.tan, np.arcsin, np.arctan, np.sinh, np.tanh, np.arcsinh,
-        np.arctanh, np.rint, np.sign, np.expm1, np.log1p, np.deg2rad,
-        np.rad2deg, np.floor, np.ceil, np.trunc, np.sqrt])
-
-
-MAXPRINT = 50
-
-
-class _spbase:
-    """ This class provides a base class for all sparse arrays.  It
-    cannot be instantiated.  Most of the work is provided by subclasses.
-    """
-
-    __array_priority__ = 10.1
-    _format = 'und'  # undefined
-
-    @property
-    def ndim(self) -> int:
-        return len(self._shape)
-
-    @property
-    def _shape_as_2d(self):
-        s = self._shape
-        return (1, s[-1]) if len(s) == 1 else s
-
-    @property
-    def _bsr_container(self):
-        from ._bsr import bsr_array
-        return bsr_array
-
-    @property
-    def _coo_container(self):
-        from ._coo import coo_array
-        return coo_array
-
-    @property
-    def _csc_container(self):
-        from ._csc import csc_array
-        return csc_array
-
-    @property
-    def _csr_container(self):
-        from ._csr import csr_array
-        return csr_array
-
-    @property
-    def _dia_container(self):
-        from ._dia import dia_array
-        return dia_array
-
-    @property
-    def _dok_container(self):
-        from ._dok import dok_array
-        return dok_array
-
-    @property
-    def _lil_container(self):
-        from ._lil import lil_array
-        return lil_array
-
-    def __init__(self, arg1, maxprint=MAXPRINT):
-        self._shape = None
-        if self.__class__.__name__ == '_spbase':
-            raise ValueError("This class is not intended"
-                             " to be instantiated directly.")
-        if isinstance(self, sparray) and np.isscalar(arg1):
-            raise ValueError(
-                "scipy sparse array classes do not support instantiation from a scalar"
-            )
-        self.maxprint = maxprint
-
-    @property
-    def shape(self):
-        return self._shape
-
-    def reshape(self, *args, **kwargs):
-        """reshape(self, shape, order='C', copy=False)
-
-        Gives a new shape to a sparse array/matrix without changing its data.
-
-        Parameters
-        ----------
-        shape : length-2 tuple of ints
-            The new shape should be compatible with the original shape.
-        order : {'C', 'F'}, optional
-            Read the elements using this index order. 'C' means to read and
-            write the elements using C-like index order; e.g., read entire first
-            row, then second row, etc. 'F' means to read and write the elements
-            using Fortran-like index order; e.g., read entire first column, then
-            second column, etc.
-        copy : bool, optional
-            Indicates whether or not attributes of self should be copied
-            whenever possible. The degree to which attributes are copied varies
-            depending on the type of sparse array being used.
-
-        Returns
-        -------
-        reshaped : sparse array/matrix
-            A sparse array/matrix with the given `shape`, not necessarily of the same
-            format as the current object.
-
-        See Also
-        --------
-        numpy.reshape : NumPy's implementation of 'reshape' for ndarrays
-        """
-        # If the shape already matches, don't bother doing an actual reshape
-        # Otherwise, the default is to convert to COO and use its reshape
-        is_array = isinstance(self, sparray)
-        shape = check_shape(args, self.shape, allow_1d=is_array)
-        order, copy = check_reshape_kwargs(kwargs)
-        if shape == self.shape:
-            if copy:
-                return self.copy()
-            else:
-                return self
-
-        return self.tocoo(copy=copy).reshape(shape, order=order, copy=False)
-
-    def resize(self, shape):
-        """Resize the array/matrix in-place to dimensions given by ``shape``
-
-        Any elements that lie within the new shape will remain at the same
-        indices, while non-zero elements lying outside the new shape are
-        removed.
-
-        Parameters
-        ----------
-        shape : (int, int)
-            number of rows and columns in the new array/matrix
-
-        Notes
-        -----
-        The semantics are not identical to `numpy.ndarray.resize` or
-        `numpy.resize`. Here, the same data will be maintained at each index
-        before and after reshape, if that index is within the new bounds. In
-        numpy, resizing maintains contiguity of the array, moving elements
-        around in the logical array but not within a flattened representation.
-
-        We give no guarantees about whether the underlying data attributes
-        (arrays, etc.) will be modified in place or replaced with new objects.
-        """
-        # As an inplace operation, this requires implementation in each format.
-        raise NotImplementedError(
-            f'{type(self).__name__}.resize is not implemented')
-
-    def astype(self, dtype, casting='unsafe', copy=True):
-        """Cast the array/matrix elements to a specified type.
-
-        Parameters
-        ----------
-        dtype : string or numpy dtype
-            Typecode or data-type to which to cast the data.
-        casting : {'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional
-            Controls what kind of data casting may occur.
-            Defaults to 'unsafe' for backwards compatibility.
-            'no' means the data types should not be cast at all.
-            'equiv' means only byte-order changes are allowed.
-            'safe' means only casts which can preserve values are allowed.
-            'same_kind' means only safe casts or casts within a kind,
-            like float64 to float32, are allowed.
-            'unsafe' means any data conversions may be done.
-        copy : bool, optional
-            If `copy` is `False`, the result might share some memory with this
-            array/matrix. If `copy` is `True`, it is guaranteed that the result and
-            this array/matrix do not share any memory.
-        """
-
-        dtype = np.dtype(dtype)
-        if self.dtype != dtype:
-            return self.tocsr().astype(
-                dtype, casting=casting, copy=copy).asformat(self.format)
-        elif copy:
-            return self.copy()
-        else:
-            return self
-
-    @classmethod
-    def _ascontainer(cls, X, **kwargs):
-        if issubclass(cls, sparray):
-            return np.asarray(X, **kwargs)
-        else:
-            return asmatrix(X, **kwargs)
-
-    @classmethod
-    def _container(cls, X, **kwargs):
-        if issubclass(cls, sparray):
-            return np.array(X, **kwargs)
-        else:
-            return matrix(X, **kwargs)
-
-    def _asfptype(self):
-        """Upcast array to a floating point format (if necessary)"""
-
-        fp_types = ['f', 'd', 'F', 'D']
-
-        if self.dtype.char in fp_types:
-            return self
-        else:
-            for fp_type in fp_types:
-                if self.dtype <= np.dtype(fp_type):
-                    return self.astype(fp_type)
-
-            raise TypeError('cannot upcast [%s] to a floating '
-                            'point format' % self.dtype.name)
-
-    def __iter__(self):
-        for r in range(self.shape[0]):
-            yield self[r]
-
-    def _getmaxprint(self):
-        """Maximum number of elements to display when printed."""
-        return self.maxprint
-
-    def count_nonzero(self):
-        """Number of non-zero entries, equivalent to
-
-        np.count_nonzero(a.toarray())
-
-        Unlike the nnz property, which return the number of stored
-        entries (the length of the data attribute), this method counts the
-        actual number of non-zero entries in data.
-        """
-        raise NotImplementedError("count_nonzero not implemented for %s." %
-                                  self.__class__.__name__)
-
-    def _getnnz(self, axis=None):
-        """Number of stored values, including explicit zeros.
-
-        Parameters
-        ----------
-        axis : None, 0, or 1
-            Select between the number of values across the whole array, in
-            each column, or in each row.
-
-        See also
-        --------
-        count_nonzero : Number of non-zero entries
-        """
-        raise NotImplementedError("getnnz not implemented for %s." %
-                                  self.__class__.__name__)
-
-    @property
-    def nnz(self) -> int:
-        """Number of stored values, including explicit zeros.
-
-        See also
-        --------
-        count_nonzero : Number of non-zero entries
-        """
-        return self._getnnz()
-
-    @property
-    def size(self) -> int:
-        """Number of stored values.
-
-        See also
-        --------
-        count_nonzero : Number of non-zero values.
-        """
-        return self._getnnz()
-
-    @property
-    def format(self) -> str:
-        """Format string for matrix."""
-        return self._format
-
-    @property
-    def T(self):
-        """Transpose."""
-        return self.transpose()
-
-    @property
-    def real(self):
-        return self._real()
-
-    @property
-    def imag(self):
-        return self._imag()
-
-    def __repr__(self):
-        _, format_name = _formats[self.format]
-        sparse_cls = 'array' if isinstance(self, sparray) else 'matrix'
-        return (
-            f"<{format_name} sparse {sparse_cls} of dtype '{self.dtype}'\n"
-            f"\twith {self.nnz} stored elements and shape {self.shape}>"
-        )
-
-    def __str__(self):
-        maxprint = self._getmaxprint()
-
-        A = self.tocoo()
-
-        # helper function, outputs "(i,j)  v"
-        def tostr(coords, data):
-            pairs = zip(zip(*(c.tolist() for c in coords)), data)
-            return '\n'.join(f'  {idx}\t{val}' for idx, val in pairs)
-
-        out = repr(self)
-        if self.nnz == 0:
-            return out
-
-        out += '\n  Coords\tValues\n'
-        if self.nnz > maxprint:
-            half = maxprint // 2
-            out += tostr(tuple(c[:half] for c in A.coords), A.data[:half])
-            out += "\n  :\t:\n"
-            half = maxprint - half
-            out += tostr(tuple(c[-half:] for c in A.coords), A.data[-half:])
-        else:
-            out += tostr(A.coords, A.data)
-
-        return out
-
-    def __bool__(self):  # Simple -- other ideas?
-        if self.shape == (1, 1):
-            return self.nnz != 0
-        else:
-            raise ValueError("The truth value of an array with more than one "
-                             "element is ambiguous. Use a.any() or a.all().")
-    __nonzero__ = __bool__
-
-    # What should len(sparse) return? For consistency with dense matrices,
-    # perhaps it should be the number of rows?  But for some uses the number of
-    # non-zeros is more important.  For now, raise an exception!
-    def __len__(self):
-        raise TypeError("sparse array length is ambiguous; use getnnz()"
-                        " or shape[0]")
-
-    def asformat(self, format, copy=False):
-        """Return this array/matrix in the passed format.
-
-        Parameters
-        ----------
-        format : {str, None}
-            The desired sparse format ("csr", "csc", "lil", "dok", "array", ...)
-            or None for no conversion.
-        copy : bool, optional
-            If True, the result is guaranteed to not share data with self.
-
-        Returns
-        -------
-        A : This array/matrix in the passed format.
-        """
-        if format is None or format == self.format:
-            if copy:
-                return self.copy()
-            else:
-                return self
-        else:
-            try:
-                convert_method = getattr(self, 'to' + format)
-            except AttributeError as e:
-                raise ValueError(f'Format {format} is unknown.') from e
-
-            # Forward the copy kwarg, if it's accepted.
-            try:
-                return convert_method(copy=copy)
-            except TypeError:
-                return convert_method()
-
-    ###################################################################
-    #  NOTE: All arithmetic operations use csr_matrix by default.
-    # Therefore a new sparse array format just needs to define a
-    # .tocsr() method to provide arithmetic support. Any of these
-    # methods can be overridden for efficiency.
-    ####################################################################
-
-    def multiply(self, other):
-        """Point-wise multiplication by another array/matrix."""
-        if isscalarlike(other):
-            return self._mul_scalar(other)
-        return self.tocsr().multiply(other)
-
-    def maximum(self, other):
-        """Element-wise maximum between this and another array/matrix."""
-        return self.tocsr().maximum(other)
-
-    def minimum(self, other):
-        """Element-wise minimum between this and another array/matrix."""
-        return self.tocsr().minimum(other)
-
-    def dot(self, other):
-        """Ordinary dot product
-
-        Examples
-        --------
-        >>> import numpy as np
-        >>> from scipy.sparse import csr_array
-        >>> A = csr_array([[1, 2, 0], [0, 0, 3], [4, 0, 5]])
-        >>> v = np.array([1, 0, -1])
-        >>> A.dot(v)
-        array([ 1, -3, -1], dtype=int64)
-
-        """
-        if np.isscalar(other):
-            return self * other
-        else:
-            return self @ other
-
-    def power(self, n, dtype=None):
-        """Element-wise power."""
-        return self.tocsr().power(n, dtype=dtype)
-
-    def __eq__(self, other):
-        return self.tocsr().__eq__(other)
-
-    def __ne__(self, other):
-        return self.tocsr().__ne__(other)
-
-    def __lt__(self, other):
-        return self.tocsr().__lt__(other)
-
-    def __gt__(self, other):
-        return self.tocsr().__gt__(other)
-
-    def __le__(self, other):
-        return self.tocsr().__le__(other)
-
-    def __ge__(self, other):
-        return self.tocsr().__ge__(other)
-
-    def __abs__(self):
-        return abs(self.tocsr())
-
-    def __round__(self, ndigits=0):
-        return round(self.tocsr(), ndigits=ndigits)
-
-    def _add_sparse(self, other):
-        return self.tocsr()._add_sparse(other)
-
-    def _add_dense(self, other):
-        return self.tocoo()._add_dense(other)
-
-    def _sub_sparse(self, other):
-        return self.tocsr()._sub_sparse(other)
-
-    def _sub_dense(self, other):
-        return self.todense() - other
-
-    def _rsub_dense(self, other):
-        # note: this can't be replaced by other + (-self) for unsigned types
-        return other - self.todense()
-
-    def __add__(self, other):  # self + other
-        if isscalarlike(other):
-            if other == 0:
-                return self.copy()
-            # Now we would add this scalar to every element.
-            raise NotImplementedError('adding a nonzero scalar to a '
-                                      'sparse array is not supported')
-        elif issparse(other):
-            if other.shape != self.shape:
-                raise ValueError("inconsistent shapes")
-            return self._add_sparse(other)
-        elif isdense(other):
-            other = np.broadcast_to(other, self.shape)
-            return self._add_dense(other)
-        else:
-            return NotImplemented
-
-    def __radd__(self,other):  # other + self
-        return self.__add__(other)
-
-    def __sub__(self, other):  # self - other
-        if isscalarlike(other):
-            if other == 0:
-                return self.copy()
-            raise NotImplementedError('subtracting a nonzero scalar from a '
-                                      'sparse array is not supported')
-        elif issparse(other):
-            if other.shape != self.shape:
-                raise ValueError("inconsistent shapes")
-            return self._sub_sparse(other)
-        elif isdense(other):
-            other = np.broadcast_to(other, self.shape)
-            return self._sub_dense(other)
-        else:
-            return NotImplemented
-
-    def __rsub__(self,other):  # other - self
-        if isscalarlike(other):
-            if other == 0:
-                return -self.copy()
-            raise NotImplementedError('subtracting a sparse array from a '
-                                      'nonzero scalar is not supported')
-        elif isdense(other):
-            other = np.broadcast_to(other, self.shape)
-            return self._rsub_dense(other)
-        else:
-            return NotImplemented
-
-    def _matmul_dispatch(self, other):
-        """np.array-like matmul & `np.matrix`-like mul, i.e. `dot` or `NotImplemented`
-
-        interpret other and call one of the following
-        self._mul_scalar()
-        self._matmul_vector()
-        self._matmul_multivector()
-        self._matmul_sparse()
-        """
-        # This method has to be different from `__matmul__` because it is also
-        # called by sparse matrix classes.
-
-        # Currently matrix multiplication is only supported
-        # for 2D arrays. Hence we unpacked and use only the
-        # two last axes' lengths.
-        M, N = self._shape_as_2d
-
-        if other.__class__ is np.ndarray:
-            # Fast path for the most common case
-            if other.shape == (N,):
-                return self._matmul_vector(other)
-            elif other.shape == (N, 1):
-                result = self._matmul_vector(other.ravel())
-                if self.ndim == 1:
-                    return result
-                return result.reshape(M, 1)
-            elif other.ndim == 2 and other.shape[0] == N:
-                return self._matmul_multivector(other)
-
-        if isscalarlike(other):
-            # scalar value
-            return self._mul_scalar(other)
-
-        if issparse(other):
-            if self.shape[-1] != other.shape[0]:
-                raise ValueError('dimension mismatch')
-            return self._matmul_sparse(other)
-
-        # If it's a list or whatever, treat it like an array
-        other_a = np.asanyarray(other)
-
-        if other_a.ndim == 0 and other_a.dtype == np.object_:
-            # Not interpretable as an array; return NotImplemented so that
-            # other's __rmatmul__ can kick in if that's implemented.
-            return NotImplemented
-
-        try:
-            other.shape
-        except AttributeError:
-            other = other_a
-
-        if other.ndim == 1 or other.ndim == 2 and other.shape[1] == 1:
-            # dense row or column vector
-            if other.shape != (N,) and other.shape != (N, 1):
-                raise ValueError('dimension mismatch')
-
-            result = self._matmul_vector(np.ravel(other))
-
-            if isinstance(other, np.matrix):
-                result = self._ascontainer(result)
-
-            if other.ndim == 2 and other.shape[1] == 1:
-                # If 'other' was an (nx1) column vector, reshape the result
-                result = result.reshape(-1, 1)
-
-            return result
-
-        elif other.ndim == 2:
-            ##
-            # dense 2D array or matrix ("multivector")
-
-            if other.shape[0] != N:
-                raise ValueError('dimension mismatch')
-
-            result = self._matmul_multivector(np.asarray(other))
-
-            if isinstance(other, np.matrix):
-                result = self._ascontainer(result)
-
-            return result
-
-        else:
-            raise ValueError('could not interpret dimensions')
-
-    def __mul__(self, other):
-        return self.multiply(other)
-
-    def __rmul__(self, other):  # other * self
-        return self.multiply(other)
-
-    # by default, use CSR for __mul__ handlers
-    def _mul_scalar(self, other):
-        return self.tocsr()._mul_scalar(other)
-
-    def _matmul_vector(self, other):
-        return self.tocsr()._matmul_vector(other)
-
-    def _matmul_multivector(self, other):
-        return self.tocsr()._matmul_multivector(other)
-
-    def _matmul_sparse(self, other):
-        return self.tocsr()._matmul_sparse(other)
-
-    def _rmatmul_dispatch(self, other):
-        if isscalarlike(other):
-            return self._mul_scalar(other)
-        else:
-            # Don't use asarray unless we have to
-            try:
-                tr = other.transpose()
-            except AttributeError:
-                tr = np.asarray(other).transpose()
-            ret = self.transpose()._matmul_dispatch(tr)
-            if ret is NotImplemented:
-                return NotImplemented
-            return ret.transpose()
-
-    #######################
-    # matmul (@) operator #
-    #######################
-
-    def __matmul__(self, other):
-        if isscalarlike(other):
-            raise ValueError("Scalar operands are not allowed, "
-                             "use '*' instead")
-        return self._matmul_dispatch(other)
-
-    def __rmatmul__(self, other):
-        if isscalarlike(other):
-            raise ValueError("Scalar operands are not allowed, "
-                             "use '*' instead")
-        return self._rmatmul_dispatch(other)
-
-    ####################
-    # Other Arithmetic #
-    ####################
-
-    def _divide(self, other, true_divide=False, rdivide=False):
-        if isscalarlike(other):
-            if rdivide:
-                if true_divide:
-                    return np.true_divide(other, self.todense())
-                else:
-                    return np.divide(other, self.todense())
-
-            if true_divide and np.can_cast(self.dtype, np.float64):
-                return self.astype(np.float64)._mul_scalar(1./other)
-            else:
-                r = self._mul_scalar(1./other)
-
-                scalar_dtype = np.asarray(other).dtype
-                if (np.issubdtype(self.dtype, np.integer) and
-                        np.issubdtype(scalar_dtype, np.integer)):
-                    return r.astype(self.dtype)
-                else:
-                    return r
-
-        elif isdense(other):
-            if not rdivide:
-                if true_divide:
-                    recip = np.true_divide(1., other)
-                else:
-                    recip = np.divide(1., other)
-                return self.multiply(recip)
-            else:
-                if true_divide:
-                    return np.true_divide(other, self.todense())
-                else:
-                    return np.divide(other, self.todense())
-        elif issparse(other):
-            if rdivide:
-                return other._divide(self, true_divide, rdivide=False)
-
-            self_csr = self.tocsr()
-            if true_divide and np.can_cast(self.dtype, np.float64):
-                return self_csr.astype(np.float64)._divide_sparse(other)
-            else:
-                return self_csr._divide_sparse(other)
-        else:
-            return NotImplemented
-
-    def __truediv__(self, other):
-        return self._divide(other, true_divide=True)
-
-    def __div__(self, other):
-        # Always do true division
-        return self._divide(other, true_divide=True)
-
-    def __rtruediv__(self, other):
-        # Implementing this as the inverse would be too magical -- bail out
-        return NotImplemented
-
-    def __rdiv__(self, other):
-        # Implementing this as the inverse would be too magical -- bail out
-        return NotImplemented
-
-    def __neg__(self):
-        return -self.tocsr()
-
-    def __iadd__(self, other):
-        return NotImplemented
-
-    def __isub__(self, other):
-        return NotImplemented
-
-    def __imul__(self, other):
-        return NotImplemented
-
-    def __idiv__(self, other):
-        return self.__itruediv__(other)
-
-    def __itruediv__(self, other):
-        return NotImplemented
-
-    def __pow__(self, *args, **kwargs):
-        return self.power(*args, **kwargs)
-
-    def transpose(self, axes=None, copy=False):
-        """
-        Reverses the dimensions of the sparse array/matrix.
-
-        Parameters
-        ----------
-        axes : None, optional
-            This argument is in the signature *solely* for NumPy
-            compatibility reasons. Do not pass in anything except
-            for the default value.
-        copy : bool, optional
-            Indicates whether or not attributes of `self` should be
-            copied whenever possible. The degree to which attributes
-            are copied varies depending on the type of sparse array/matrix
-            being used.
-
-        Returns
-        -------
-        p : `self` with the dimensions reversed.
-
-        Notes
-        -----
-        If `self` is a `csr_array` or a `csc_array`, then this will return a
-        `csc_array` or a `csr_array`, respectively.
-
-        See Also
-        --------
-        numpy.transpose : NumPy's implementation of 'transpose' for ndarrays
-        """
-        return self.tocsr(copy=copy).transpose(axes=axes, copy=False)
-
-    def conjugate(self, copy=True):
-        """Element-wise complex conjugation.
-
-        If the array/matrix is of non-complex data type and `copy` is False,
-        this method does nothing and the data is not copied.
-
-        Parameters
-        ----------
-        copy : bool, optional
-            If True, the result is guaranteed to not share data with self.
-
-        Returns
-        -------
-        A : The element-wise complex conjugate.
-
-        """
-        if np.issubdtype(self.dtype, np.complexfloating):
-            return self.tocsr(copy=copy).conjugate(copy=False)
-        elif copy:
-            return self.copy()
-        else:
-            return self
-
-    def conj(self, copy=True):
-        return self.conjugate(copy=copy)
-
-    conj.__doc__ = conjugate.__doc__
-
-    def _real(self):
-        return self.tocsr()._real()
-
-    def _imag(self):
-        return self.tocsr()._imag()
-
-    def nonzero(self):
-        """Nonzero indices of the array/matrix.
-
-        Returns a tuple of arrays (row,col) containing the indices
-        of the non-zero elements of the array.
-
-        Examples
-        --------
-        >>> from scipy.sparse import csr_array
-        >>> A = csr_array([[1,2,0],[0,0,3],[4,0,5]])
-        >>> A.nonzero()
-        (array([0, 0, 1, 2, 2]), array([0, 1, 2, 0, 2]))
-
-        """
-
-        # convert to COOrdinate format
-        A = self.tocoo()
-        nz_mask = A.data != 0
-        return (A.row[nz_mask], A.col[nz_mask])
-
-    def _getcol(self, j):
-        """Returns a copy of column j of the array, as an (m x 1) sparse
-        array (column vector).
-        """
-        if self.ndim == 1:
-            raise ValueError("getcol not provided for 1d arrays. Use indexing A[j]")
-        # Subclasses should override this method for efficiency.
-        # Post-multiply by a (n x 1) column vector 'a' containing all zeros
-        # except for a_j = 1
-        N = self.shape[-1]
-        if j < 0:
-            j += N
-        if j < 0 or j >= N:
-            raise IndexError("index out of bounds")
-        col_selector = self._csc_container(([1], [[j], [0]]),
-                                           shape=(N, 1), dtype=self.dtype)
-        result = self @ col_selector
-        return result
-
-    def _getrow(self, i):
-        """Returns a copy of row i of the array, as a (1 x n) sparse
-        array (row vector).
-        """
-        if self.ndim == 1:
-            raise ValueError("getrow not meaningful for a 1d array")
-        # Subclasses should override this method for efficiency.
-        # Pre-multiply by a (1 x m) row vector 'a' containing all zeros
-        # except for a_i = 1
-        M = self.shape[0]
-        if i < 0:
-            i += M
-        if i < 0 or i >= M:
-            raise IndexError("index out of bounds")
-        row_selector = self._csr_container(([1], [[0], [i]]),
-                                           shape=(1, M), dtype=self.dtype)
-        return row_selector @ self
-
-    # The following dunder methods cannot be implemented.
-    #
-    # def __array__(self):
-    #     # Sparse matrices rely on NumPy wrapping them in object arrays under
-    #     # the hood to make unary ufuncs work on them. So we cannot raise
-    #     # TypeError here - which would be handy to not give users object
-    #     # arrays they probably don't want (they're looking for `.toarray()`).
-    #     #
-    #     # Conversion with `toarray()` would also break things because of the
-    #     # behavior discussed above, plus we want to avoid densification by
-    #     # accident because that can too easily blow up memory.
-    #
-    # def __array_ufunc__(self):
-    #     # We cannot implement __array_ufunc__ due to mismatching semantics.
-    #     # See gh-7707 and gh-7349 for details.
-    #
-    # def __array_function__(self):
-    #     # We cannot implement __array_function__ due to mismatching semantics.
-    #     # See gh-10362 for details.
-
-    def todense(self, order=None, out=None):
-        """
-        Return a dense representation of this sparse array/matrix.
-
-        Parameters
-        ----------
-        order : {'C', 'F'}, optional
-            Whether to store multi-dimensional data in C (row-major)
-            or Fortran (column-major) order in memory. The default
-            is 'None', which provides no ordering guarantees.
-            Cannot be specified in conjunction with the `out`
-            argument.
-
-        out : ndarray, 2-D, optional
-            If specified, uses this array (or `numpy.matrix`) as the
-            output buffer instead of allocating a new array to
-            return. The provided array must have the same shape and
-            dtype as the sparse array/matrix on which you are calling the
-            method.
-
-        Returns
-        -------
-        arr : numpy.matrix, 2-D
-            A NumPy matrix object with the same shape and containing
-            the same data represented by the sparse array/matrix, with the
-            requested memory order. If `out` was passed and was an
-            array (rather than a `numpy.matrix`), it will be filled
-            with the appropriate values and returned wrapped in a
-            `numpy.matrix` object that shares the same memory.
-        """
-        return self._ascontainer(self.toarray(order=order, out=out))
-
-    def toarray(self, order=None, out=None):
-        """
-        Return a dense ndarray representation of this sparse array/matrix.
-
-        Parameters
-        ----------
-        order : {'C', 'F'}, optional
-            Whether to store multidimensional data in C (row-major)
-            or Fortran (column-major) order in memory. The default
-            is 'None', which provides no ordering guarantees.
-            Cannot be specified in conjunction with the `out`
-            argument.
-
-        out : ndarray, 2-D, optional
-            If specified, uses this array as the output buffer
-            instead of allocating a new array to return. The provided
-            array must have the same shape and dtype as the sparse
-            array/matrix on which you are calling the method. For most
-            sparse types, `out` is required to be memory contiguous
-            (either C or Fortran ordered).
-
-        Returns
-        -------
-        arr : ndarray, 2-D
-            An array with the same shape and containing the same
-            data represented by the sparse array/matrix, with the requested
-            memory order. If `out` was passed, the same object is
-            returned after being modified in-place to contain the
-            appropriate values.
-        """
-        return self.tocoo(copy=False).toarray(order=order, out=out)
-
-    # Any sparse array format deriving from _spbase must define one of
-    # tocsr or tocoo. The other conversion methods may be implemented for
-    # efficiency, but are not required.
-    def tocsr(self, copy=False):
-        """Convert this array/matrix to Compressed Sparse Row format.
-
-        With copy=False, the data/indices may be shared between this array/matrix and
-        the resultant csr_array/matrix.
-        """
-        return self.tocoo(copy=copy).tocsr(copy=False)
-
-    def todok(self, copy=False):
-        """Convert this array/matrix to Dictionary Of Keys format.
-
-        With copy=False, the data/indices may be shared between this array/matrix and
-        the resultant dok_array/matrix.
-        """
-        return self.tocoo(copy=copy).todok(copy=False)
-
-    def tocoo(self, copy=False):
-        """Convert this array/matrix to COOrdinate format.
-
-        With copy=False, the data/indices may be shared between this array/matrix and
-        the resultant coo_array/matrix.
-        """
-        return self.tocsr(copy=False).tocoo(copy=copy)
-
-    def tolil(self, copy=False):
-        """Convert this array/matrix to List of Lists format.
-
-        With copy=False, the data/indices may be shared between this array/matrix and
-        the resultant lil_array/matrix.
-        """
-        return self.tocsr(copy=False).tolil(copy=copy)
-
-    def todia(self, copy=False):
-        """Convert this array/matrix to sparse DIAgonal format.
-
-        With copy=False, the data/indices may be shared between this array/matrix and
-        the resultant dia_array/matrix.
-        """
-        return self.tocoo(copy=copy).todia(copy=False)
-
-    def tobsr(self, blocksize=None, copy=False):
-        """Convert this array/matrix to Block Sparse Row format.
-
-        With copy=False, the data/indices may be shared between this array/matrix and
-        the resultant bsr_array/matrix.
-
-        When blocksize=(R, C) is provided, it will be used for construction of
-        the bsr_array/matrix.
-        """
-        return self.tocsr(copy=False).tobsr(blocksize=blocksize, copy=copy)
-
-    def tocsc(self, copy=False):
-        """Convert this array/matrix to Compressed Sparse Column format.
-
-        With copy=False, the data/indices may be shared between this array/matrix and
-        the resultant csc_array/matrix.
-        """
-        return self.tocsr(copy=copy).tocsc(copy=False)
-
-    def copy(self):
-        """Returns a copy of this array/matrix.
-
-        No data/indices will be shared between the returned value and current
-        array/matrix.
-        """
-        return self.__class__(self, copy=True)
-
-    def sum(self, axis=None, dtype=None, out=None):
-        """
-        Sum the array/matrix elements over a given axis.
-
-        Parameters
-        ----------
-        axis : {-2, -1, 0, 1, None} optional
-            Axis along which the sum is computed. The default is to
-            compute the sum of all the array/matrix elements, returning a scalar
-            (i.e., `axis` = `None`).
-        dtype : dtype, optional
-            The type of the returned array/matrix and of the accumulator in which
-            the elements are summed.  The dtype of `a` is used by default
-            unless `a` has an integer dtype of less precision than the default
-            platform integer.  In that case, if `a` is signed then the platform
-            integer is used while if `a` is unsigned then an unsigned integer
-            of the same precision as the platform integer is used.
-
-            .. versionadded:: 0.18.0
-
-        out : np.matrix, optional
-            Alternative output matrix in which to place the result. It must
-            have the same shape as the expected output, but the type of the
-            output values will be cast if necessary.
-
-            .. versionadded:: 0.18.0
-
-        Returns
-        -------
-        sum_along_axis : np.matrix
-            A matrix with the same shape as `self`, with the specified
-            axis removed.
-
-        See Also
-        --------
-        numpy.matrix.sum : NumPy's implementation of 'sum' for matrices
-
-        """
-        validateaxis(axis)
-
-        # Mimic numpy's casting.
-        res_dtype = get_sum_dtype(self.dtype)
-
-        if self.ndim == 1:
-            if axis not in (None, -1, 0):
-                raise ValueError("axis must be None, -1 or 0")
-            ret = (self @ np.ones(self.shape, dtype=res_dtype)).astype(dtype)
-
-            if out is not None:
-                if any(dim != 1 for dim in out.shape):
-                    raise ValueError("dimensions do not match")
-                out[...] = ret
-            return ret
-
-        # We use multiplication by a matrix of ones to achieve this.
-        # For some sparse array formats more efficient methods are
-        # possible -- these should override this function.
-        M, N = self.shape
-
-        if axis is None:
-            # sum over rows and columns
-            return (
-                self @ self._ascontainer(np.ones((N, 1), dtype=res_dtype))
-            ).sum(dtype=dtype, out=out)
-
-        if axis < 0:
-            axis += 2
-
-        # axis = 0 or 1 now
-        if axis == 0:
-            # sum over columns
-            ret = self._ascontainer(
-                np.ones((1, M), dtype=res_dtype)
-            ) @ self
-        else:
-            # sum over rows
-            ret = self @ self._ascontainer(
-                np.ones((N, 1), dtype=res_dtype)
-            )
-
-        if out is not None and out.shape != ret.shape:
-            raise ValueError("dimensions do not match")
-
-        return ret.sum(axis=axis, dtype=dtype, out=out)
-
-    def mean(self, axis=None, dtype=None, out=None):
-        """
-        Compute the arithmetic mean along the specified axis.
-
-        Returns the average of the array/matrix elements. The average is taken
-        over all elements in the array/matrix by default, otherwise over the
-        specified axis. `float64` intermediate and return values are used
-        for integer inputs.
-
-        Parameters
-        ----------
-        axis : {-2, -1, 0, 1, None} optional
-            Axis along which the mean is computed. The default is to compute
-            the mean of all elements in the array/matrix (i.e., `axis` = `None`).
-        dtype : data-type, optional
-            Type to use in computing the mean. For integer inputs, the default
-            is `float64`; for floating point inputs, it is the same as the
-            input dtype.
-
-            .. versionadded:: 0.18.0
-
-        out : np.matrix, optional
-            Alternative output matrix in which to place the result. It must
-            have the same shape as the expected output, but the type of the
-            output values will be cast if necessary.
-
-            .. versionadded:: 0.18.0
-
-        Returns
-        -------
-        m : np.matrix
-
-        See Also
-        --------
-        numpy.matrix.mean : NumPy's implementation of 'mean' for matrices
-
-        """
-        validateaxis(axis)
-
-        res_dtype = self.dtype.type
-        integral = (np.issubdtype(self.dtype, np.integer) or
-                    np.issubdtype(self.dtype, np.bool_))
-
-        # output dtype
-        if dtype is None:
-            if integral:
-                res_dtype = np.float64
-        else:
-            res_dtype = np.dtype(dtype).type
-
-        # intermediate dtype for summation
-        inter_dtype = np.float64 if integral else res_dtype
-        inter_self = self.astype(inter_dtype)
-
-        if self.ndim == 1:
-            if axis not in (None, -1, 0):
-                raise ValueError("axis must be None, -1 or 0")
-            res = inter_self / self.shape[-1]
-            return res.sum(dtype=res_dtype, out=out)
-
-        if axis is None:
-            return (inter_self / (self.shape[0] * self.shape[1]))\
-                .sum(dtype=res_dtype, out=out)
-
-        if axis < 0:
-            axis += 2
-
-        # axis = 0 or 1 now
-        if axis == 0:
-            return (inter_self * (1.0 / self.shape[0])).sum(
-                axis=0, dtype=res_dtype, out=out)
-        else:
-            return (inter_self * (1.0 / self.shape[1])).sum(
-                axis=1, dtype=res_dtype, out=out)
-
-    def diagonal(self, k=0):
-        """Returns the kth diagonal of the array/matrix.
-
-        Parameters
-        ----------
-        k : int, optional
-            Which diagonal to get, corresponding to elements a[i, i+k].
-            Default: 0 (the main diagonal).
-
-            .. versionadded:: 1.0
-
-        See also
-        --------
-        numpy.diagonal : Equivalent numpy function.
-
-        Examples
-        --------
-        >>> from scipy.sparse import csr_array
-        >>> A = csr_array([[1, 2, 0], [0, 0, 3], [4, 0, 5]])
-        >>> A.diagonal()
-        array([1, 0, 5])
-        >>> A.diagonal(k=1)
-        array([2, 3])
-        """
-        return self.tocsr().diagonal(k=k)
-
-    def trace(self, offset=0):
-        """Returns the sum along diagonals of the sparse array/matrix.
-
-        Parameters
-        ----------
-        offset : int, optional
-            Which diagonal to get, corresponding to elements a[i, i+offset].
-            Default: 0 (the main diagonal).
-
-        """
-        return self.diagonal(k=offset).sum()
-
-    def setdiag(self, values, k=0):
-        """
-        Set diagonal or off-diagonal elements of the array/matrix.
-
-        Parameters
-        ----------
-        values : array_like
-            New values of the diagonal elements.
-
-            Values may have any length. If the diagonal is longer than values,
-            then the remaining diagonal entries will not be set. If values are
-            longer than the diagonal, then the remaining values are ignored.
-
-            If a scalar value is given, all of the diagonal is set to it.
-
-        k : int, optional
-            Which off-diagonal to set, corresponding to elements a[i,i+k].
-            Default: 0 (the main diagonal).
-
-        """
-        M, N = self.shape
-        if (k > 0 and k >= N) or (k < 0 and -k >= M):
-            raise ValueError("k exceeds array dimensions")
-        self._setdiag(np.asarray(values), k)
-
-    def _setdiag(self, values, k):
-        """This part of the implementation gets overridden by the
-        different formats.
-        """
-        M, N = self.shape
-        if k < 0:
-            if values.ndim == 0:
-                # broadcast
-                max_index = min(M+k, N)
-                for i in range(max_index):
-                    self[i - k, i] = values
-            else:
-                max_index = min(M+k, N, len(values))
-                if max_index <= 0:
-                    return
-                for i, v in enumerate(values[:max_index]):
-                    self[i - k, i] = v
-        else:
-            if values.ndim == 0:
-                # broadcast
-                max_index = min(M, N-k)
-                for i in range(max_index):
-                    self[i, i + k] = values
-            else:
-                max_index = min(M, N-k, len(values))
-                if max_index <= 0:
-                    return
-                for i, v in enumerate(values[:max_index]):
-                    self[i, i + k] = v
-
-    def _process_toarray_args(self, order, out):
-        if out is not None:
-            if order is not None:
-                raise ValueError('order cannot be specified if out '
-                                 'is not None')
-            if out.shape != self.shape or out.dtype != self.dtype:
-                raise ValueError('out array must be same dtype and shape as '
-                                 'sparse array')
-            out[...] = 0.
-            return out
-        else:
-            return np.zeros(self.shape, dtype=self.dtype, order=order)
-
-    def _get_index_dtype(self, arrays=(), maxval=None, check_contents=False):
-        """
-        Determine index dtype for array.
-
-        This wraps _sputils.get_index_dtype, providing compatibility for both
-        array and matrix API sparse matrices. Matrix API sparse matrices would
-        attempt to downcast the indices - which can be computationally
-        expensive and undesirable for users. The array API changes this
-        behaviour.
-
-        See discussion: https://github.com/scipy/scipy/issues/16774
-
-        The get_index_dtype import is due to implementation details of the test
-        suite. It allows the decorator ``with_64bit_maxval_limit`` to mock a
-        lower int32 max value for checks on the matrix API's downcasting
-        behaviour.
-        """
-        from ._sputils import get_index_dtype
-
-        # Don't check contents for array API
-        return get_index_dtype(arrays,
-                               maxval,
-                               (check_contents and not isinstance(self, sparray)))
-
-
-class sparray:
-    """A namespace class to separate sparray from spmatrix"""
-
-
-sparray.__doc__ = _spbase.__doc__
-
-
-def issparse(x):
-    """Is `x` of a sparse array or sparse matrix type?
-
-    Parameters
-    ----------
-    x
-        object to check for being a sparse array or sparse matrix
-
-    Returns
-    -------
-    bool
-        True if `x` is a sparse array or a sparse matrix, False otherwise
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csr_array, csr_matrix, issparse
-    >>> issparse(csr_matrix([[5]]))
-    True
-    >>> issparse(csr_array([[5]]))
-    True
-    >>> issparse(np.array([[5]]))
-    False
-    >>> issparse(5)
-    False
-    """
-    return isinstance(x, _spbase)
-
-
-def isspmatrix(x):
-    """Is `x` of a sparse matrix type?
-
-    Parameters
-    ----------
-    x
-        object to check for being a sparse matrix
-
-    Returns
-    -------
-    bool
-        True if `x` is a sparse matrix, False otherwise
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csr_array, csr_matrix, isspmatrix
-    >>> isspmatrix(csr_matrix([[5]]))
-    True
-    >>> isspmatrix(csr_array([[5]]))
-    False
-    >>> isspmatrix(np.array([[5]]))
-    False
-    >>> isspmatrix(5)
-    False
-    """
-    return isinstance(x, spmatrix)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_bsr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_bsr.py
deleted file mode 100644
index 6a8a1be7dabe455c7948b4fc9c53de367e3cb99c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_bsr.py
+++ /dev/null
@@ -1,856 +0,0 @@
-"""Compressed Block Sparse Row format"""
-
-__docformat__ = "restructuredtext en"
-
-__all__ = ['bsr_array', 'bsr_matrix', 'isspmatrix_bsr']
-
-from warnings import warn
-
-import numpy as np
-
-from scipy._lib._util import copy_if_needed
-from ._matrix import spmatrix
-from ._data import _data_matrix, _minmax_mixin
-from ._compressed import _cs_matrix
-from ._base import issparse, _formats, _spbase, sparray
-from ._sputils import (isshape, getdtype, getdata, to_native, upcast,
-                       check_shape)
-from . import _sparsetools
-from ._sparsetools import (bsr_matvec, bsr_matvecs, csr_matmat_maxnnz,
-                           bsr_matmat, bsr_transpose, bsr_sort_indices,
-                           bsr_tocsr)
-
-
-class _bsr_base(_cs_matrix, _minmax_mixin):
-    _format = 'bsr'
-
-    def __init__(self, arg1, shape=None, dtype=None, copy=False, blocksize=None):
-        _data_matrix.__init__(self, arg1)
-
-        if issparse(arg1):
-            if arg1.format == self.format and copy:
-                arg1 = arg1.copy()
-            else:
-                arg1 = arg1.tobsr(blocksize=blocksize)
-            self.indptr, self.indices, self.data, self._shape = (
-                arg1.indptr, arg1.indices, arg1.data, arg1._shape
-            )
-
-        elif isinstance(arg1,tuple):
-            if isshape(arg1):
-                # it's a tuple of matrix dimensions (M,N)
-                self._shape = check_shape(arg1)
-                M,N = self.shape
-                # process blocksize
-                if blocksize is None:
-                    blocksize = (1,1)
-                else:
-                    if not isshape(blocksize):
-                        raise ValueError('invalid blocksize=%s' % blocksize)
-                    blocksize = tuple(blocksize)
-                self.data = np.zeros((0,) + blocksize, getdtype(dtype, default=float))
-
-                R,C = blocksize
-                if (M % R) != 0 or (N % C) != 0:
-                    raise ValueError('shape must be multiple of blocksize')
-
-                # Select index dtype large enough to pass array and
-                # scalar parameters to sparsetools
-                idx_dtype = self._get_index_dtype(maxval=max(M//R, N//C, R, C))
-                self.indices = np.zeros(0, dtype=idx_dtype)
-                self.indptr = np.zeros(M//R + 1, dtype=idx_dtype)
-
-            elif len(arg1) == 2:
-                # (data,(row,col)) format
-                coo = self._coo_container(arg1, dtype=dtype, shape=shape)
-                bsr = coo.tobsr(blocksize=blocksize)
-                self.indptr, self.indices, self.data, self._shape = (
-                    bsr.indptr, bsr.indices, bsr.data, bsr._shape
-                )
-
-            elif len(arg1) == 3:
-                # (data,indices,indptr) format
-                (data, indices, indptr) = arg1
-
-                # Select index dtype large enough to pass array and
-                # scalar parameters to sparsetools
-                maxval = 1
-                if shape is not None:
-                    maxval = max(shape)
-                if blocksize is not None:
-                    maxval = max(maxval, max(blocksize))
-                idx_dtype = self._get_index_dtype((indices, indptr), maxval=maxval,
-                                                  check_contents=True)
-                if not copy:
-                    copy = copy_if_needed
-                self.indices = np.array(indices, copy=copy, dtype=idx_dtype)
-                self.indptr = np.array(indptr, copy=copy, dtype=idx_dtype)
-                self.data = getdata(data, copy=copy, dtype=dtype)
-                if self.data.ndim != 3:
-                    raise ValueError(
-                        f'BSR data must be 3-dimensional, got shape={self.data.shape}'
-                    )
-                if blocksize is not None:
-                    if not isshape(blocksize):
-                        raise ValueError(f'invalid blocksize={blocksize}')
-                    if tuple(blocksize) != self.data.shape[1:]:
-                        raise ValueError(
-                            f'mismatching blocksize={blocksize}'
-                            f' vs {self.data.shape[1:]}'
-                        )
-            else:
-                raise ValueError('unrecognized bsr_array constructor usage')
-        else:
-            # must be dense
-            try:
-                arg1 = np.asarray(arg1)
-            except Exception as e:
-                raise ValueError("unrecognized form for"
-                        " %s_matrix constructor" % self.format) from e
-            if isinstance(self, sparray) and arg1.ndim != 2:
-                raise ValueError(f"BSR arrays don't support {arg1.ndim}D input. Use 2D")
-            arg1 = self._coo_container(arg1, dtype=dtype).tobsr(blocksize=blocksize)
-            self.indptr, self.indices, self.data, self._shape = (
-                arg1.indptr, arg1.indices, arg1.data, arg1._shape
-            )
-
-        if shape is not None:
-            self._shape = check_shape(shape)
-        else:
-            if self.shape is None:
-                # shape not already set, try to infer dimensions
-                try:
-                    M = len(self.indptr) - 1
-                    N = self.indices.max() + 1
-                except Exception as e:
-                    raise ValueError('unable to infer matrix dimensions') from e
-                else:
-                    R,C = self.blocksize
-                    self._shape = check_shape((M*R,N*C))
-
-        if self.shape is None:
-            if shape is None:
-                # TODO infer shape here
-                raise ValueError('need to infer shape')
-            else:
-                self._shape = check_shape(shape)
-
-        if dtype is not None:
-            self.data = self.data.astype(dtype, copy=False)
-
-        self.check_format(full_check=False)
-
-    def check_format(self, full_check=True):
-        """Check whether the array/matrix respects the BSR format.
-
-        Parameters
-        ----------
-        full_check : bool, optional
-            If `True`, run rigorous check, scanning arrays for valid values.
-            Note that activating those check might copy arrays for casting,
-            modifying indices and index pointers' inplace.
-            If `False`, run basic checks on attributes. O(1) operations.
-            Default is `True`.
-        """
-        M,N = self.shape
-        R,C = self.blocksize
-
-        # index arrays should have integer data types
-        if self.indptr.dtype.kind != 'i':
-            warn(f"indptr array has non-integer dtype ({self.indptr.dtype.name})",
-                 stacklevel=2)
-        if self.indices.dtype.kind != 'i':
-            warn(f"indices array has non-integer dtype ({self.indices.dtype.name})",
-                 stacklevel=2)
-
-        # check array shapes
-        if self.indices.ndim != 1 or self.indptr.ndim != 1:
-            raise ValueError("indices, and indptr should be 1-D")
-        if self.data.ndim != 3:
-            raise ValueError("data should be 3-D")
-
-        # check index pointer
-        if (len(self.indptr) != M//R + 1):
-            raise ValueError("index pointer size (%d) should be (%d)" %
-                                (len(self.indptr), M//R + 1))
-        if (self.indptr[0] != 0):
-            raise ValueError("index pointer should start with 0")
-
-        # check index and data arrays
-        if (len(self.indices) != len(self.data)):
-            raise ValueError("indices and data should have the same size")
-        if (self.indptr[-1] > len(self.indices)):
-            raise ValueError("Last value of index pointer should be less than "
-                                "the size of index and data arrays")
-
-        self.prune()
-
-        if full_check:
-            # check format validity (more expensive)
-            if self.nnz > 0:
-                if self.indices.max() >= N//C:
-                    raise ValueError("column index values must be < %d (now max %d)"
-                                     % (N//C, self.indices.max()))
-                if self.indices.min() < 0:
-                    raise ValueError("column index values must be >= 0")
-                if np.diff(self.indptr).min() < 0:
-                    raise ValueError("index pointer values must form a "
-                                        "non-decreasing sequence")
-
-            idx_dtype = self._get_index_dtype((self.indices, self.indptr))
-            self.indptr = np.asarray(self.indptr, dtype=idx_dtype)
-            self.indices = np.asarray(self.indices, dtype=idx_dtype)
-            self.data = to_native(self.data)
-        # if not self.has_sorted_indices():
-        #    warn('Indices were not in sorted order. Sorting indices.')
-        #    self.sort_indices(check_first=False)
-
-    @property
-    def blocksize(self) -> tuple:
-        """Block size of the matrix."""
-        return self.data.shape[1:]
-
-    def _getnnz(self, axis=None):
-        if axis is not None:
-            raise NotImplementedError("_getnnz over an axis is not implemented "
-                                      "for BSR format")
-        R,C = self.blocksize
-        return int(self.indptr[-1] * R * C)
-
-    _getnnz.__doc__ = _spbase._getnnz.__doc__
-
-    def __repr__(self):
-        _, fmt = _formats[self.format]
-        sparse_cls = 'array' if isinstance(self, sparray) else 'matrix'
-        b = 'x'.join(str(x) for x in self.blocksize)
-        return (
-            f"<{fmt} sparse {sparse_cls} of dtype '{self.dtype}'\n"
-            f"\twith {self.nnz} stored elements (blocksize={b}) and shape {self.shape}>"
-        )
-
-    def diagonal(self, k=0):
-        rows, cols = self.shape
-        if k <= -rows or k >= cols:
-            return np.empty(0, dtype=self.data.dtype)
-        R, C = self.blocksize
-        y = np.zeros(min(rows + min(k, 0), cols - max(k, 0)),
-                     dtype=upcast(self.dtype))
-        _sparsetools.bsr_diagonal(k, rows // R, cols // C, R, C,
-                                  self.indptr, self.indices,
-                                  np.ravel(self.data), y)
-        return y
-
-    diagonal.__doc__ = _spbase.diagonal.__doc__
-
-    ##########################
-    # NotImplemented methods #
-    ##########################
-
-    def __getitem__(self,key):
-        raise NotImplementedError
-
-    def __setitem__(self,key,val):
-        raise NotImplementedError
-
-    ######################
-    # Arithmetic methods #
-    ######################
-
-    def _add_dense(self, other):
-        return self.tocoo(copy=False)._add_dense(other)
-
-    def _matmul_vector(self, other):
-        M,N = self.shape
-        R,C = self.blocksize
-
-        result = np.zeros(self.shape[0], dtype=upcast(self.dtype, other.dtype))
-
-        bsr_matvec(M//R, N//C, R, C,
-            self.indptr, self.indices, self.data.ravel(),
-            other, result)
-
-        return result
-
-    def _matmul_multivector(self,other):
-        R,C = self.blocksize
-        M,N = self.shape
-        n_vecs = other.shape[1]  # number of column vectors
-
-        result = np.zeros((M,n_vecs), dtype=upcast(self.dtype,other.dtype))
-
-        bsr_matvecs(M//R, N//C, n_vecs, R, C,
-                self.indptr, self.indices, self.data.ravel(),
-                other.ravel(), result.ravel())
-
-        return result
-
-    def _matmul_sparse(self, other):
-        M, K1 = self.shape
-        K2, N = other.shape
-
-        R,n = self.blocksize
-
-        # convert to this format
-        if other.format == "bsr":
-            C = other.blocksize[1]
-        else:
-            C = 1
-
-        if other.format == "csr" and n == 1:
-            other = other.tobsr(blocksize=(n,C), copy=False)  # lightweight conversion
-        else:
-            other = other.tobsr(blocksize=(n,C))
-
-        idx_dtype = self._get_index_dtype((self.indptr, self.indices,
-                                           other.indptr, other.indices))
-
-        bnnz = csr_matmat_maxnnz(M//R, N//C,
-                                 self.indptr.astype(idx_dtype),
-                                 self.indices.astype(idx_dtype),
-                                 other.indptr.astype(idx_dtype),
-                                 other.indices.astype(idx_dtype))
-
-        idx_dtype = self._get_index_dtype((self.indptr, self.indices,
-                                           other.indptr, other.indices),
-                                          maxval=bnnz)
-        indptr = np.empty(self.indptr.shape, dtype=idx_dtype)
-        indices = np.empty(bnnz, dtype=idx_dtype)
-        data = np.empty(R*C*bnnz, dtype=upcast(self.dtype,other.dtype))
-
-        bsr_matmat(bnnz, M//R, N//C, R, C, n,
-                   self.indptr.astype(idx_dtype),
-                   self.indices.astype(idx_dtype),
-                   np.ravel(self.data),
-                   other.indptr.astype(idx_dtype),
-                   other.indices.astype(idx_dtype),
-                   np.ravel(other.data),
-                   indptr,
-                   indices,
-                   data)
-
-        data = data.reshape(-1,R,C)
-
-        # TODO eliminate zeros
-
-        return self._bsr_container(
-            (data, indices, indptr), shape=(M, N), blocksize=(R, C)
-        )
-
-    ######################
-    # Conversion methods #
-    ######################
-
-    def tobsr(self, blocksize=None, copy=False):
-        """Convert this array/matrix into Block Sparse Row Format.
-
-        With copy=False, the data/indices may be shared between this
-        array/matrix and the resultant bsr_array/bsr_matrix.
-
-        If blocksize=(R, C) is provided, it will be used for determining
-        block size of the bsr_array/bsr_matrix.
-        """
-        if blocksize not in [None, self.blocksize]:
-            return self.tocsr().tobsr(blocksize=blocksize)
-        if copy:
-            return self.copy()
-        else:
-            return self
-
-    def tocsr(self, copy=False):
-        M, N = self.shape
-        R, C = self.blocksize
-        nnz = self.nnz
-        idx_dtype = self._get_index_dtype((self.indptr, self.indices),
-                                          maxval=max(nnz, N))
-        indptr = np.empty(M + 1, dtype=idx_dtype)
-        indices = np.empty(nnz, dtype=idx_dtype)
-        data = np.empty(nnz, dtype=upcast(self.dtype))
-
-        bsr_tocsr(M // R,  # n_brow
-                  N // C,  # n_bcol
-                  R, C,
-                  self.indptr.astype(idx_dtype, copy=False),
-                  self.indices.astype(idx_dtype, copy=False),
-                  self.data,
-                  indptr,
-                  indices,
-                  data)
-        return self._csr_container((data, indices, indptr), shape=self.shape)
-
-    tocsr.__doc__ = _spbase.tocsr.__doc__
-
-    def tocsc(self, copy=False):
-        return self.tocsr(copy=False).tocsc(copy=copy)
-
-    tocsc.__doc__ = _spbase.tocsc.__doc__
-
-    def tocoo(self, copy=True):
-        """Convert this array/matrix to COOrdinate format.
-
-        When copy=False the data array will be shared between
-        this array/matrix and the resultant coo_array/coo_matrix.
-        """
-
-        M,N = self.shape
-        R,C = self.blocksize
-
-        indptr_diff = np.diff(self.indptr)
-        if indptr_diff.dtype.itemsize > np.dtype(np.intp).itemsize:
-            # Check for potential overflow
-            indptr_diff_limited = indptr_diff.astype(np.intp)
-            if np.any(indptr_diff_limited != indptr_diff):
-                raise ValueError("Matrix too big to convert")
-            indptr_diff = indptr_diff_limited
-
-        idx_dtype = self._get_index_dtype(maxval=max(M, N))
-        row = (R * np.arange(M//R, dtype=idx_dtype)).repeat(indptr_diff)
-        row = row.repeat(R*C).reshape(-1,R,C)
-        row += np.tile(np.arange(R, dtype=idx_dtype).reshape(-1,1), (1,C))
-        row = row.reshape(-1)
-
-        col = ((C * self.indices).astype(idx_dtype, copy=False)
-               .repeat(R*C).reshape(-1,R,C))
-        col += np.tile(np.arange(C, dtype=idx_dtype), (R,1))
-        col = col.reshape(-1)
-
-        data = self.data.reshape(-1)
-
-        if copy:
-            data = data.copy()
-
-        return self._coo_container(
-            (data, (row, col)), shape=self.shape
-        )
-
-    def toarray(self, order=None, out=None):
-        return self.tocoo(copy=False).toarray(order=order, out=out)
-
-    toarray.__doc__ = _spbase.toarray.__doc__
-
-    def transpose(self, axes=None, copy=False):
-        if axes is not None and axes != (1, 0):
-            raise ValueError("Sparse matrices do not support "
-                              "an 'axes' parameter because swapping "
-                              "dimensions is the only logical permutation.")
-
-        R, C = self.blocksize
-        M, N = self.shape
-        NBLK = self.nnz//(R*C)
-
-        if self.nnz == 0:
-            return self._bsr_container((N, M), blocksize=(C, R),
-                                       dtype=self.dtype, copy=copy)
-
-        indptr = np.empty(N//C + 1, dtype=self.indptr.dtype)
-        indices = np.empty(NBLK, dtype=self.indices.dtype)
-        data = np.empty((NBLK, C, R), dtype=self.data.dtype)
-
-        bsr_transpose(M//R, N//C, R, C,
-                      self.indptr, self.indices, self.data.ravel(),
-                      indptr, indices, data.ravel())
-
-        return self._bsr_container((data, indices, indptr),
-                                   shape=(N, M), copy=copy)
-
-    transpose.__doc__ = _spbase.transpose.__doc__
-
-    ##############################################################
-    # methods that examine or modify the internal data structure #
-    ##############################################################
-
-    def eliminate_zeros(self):
-        """Remove zero elements in-place."""
-
-        if not self.nnz:
-            return  # nothing to do
-
-        R,C = self.blocksize
-        M,N = self.shape
-
-        mask = (self.data != 0).reshape(-1,R*C).sum(axis=1)  # nonzero blocks
-
-        nonzero_blocks = mask.nonzero()[0]
-
-        self.data[:len(nonzero_blocks)] = self.data[nonzero_blocks]
-
-        # modifies self.indptr and self.indices *in place*
-        _sparsetools.csr_eliminate_zeros(M//R, N//C, self.indptr,
-                                         self.indices, mask)
-        self.prune()
-
-    def sum_duplicates(self):
-        """Eliminate duplicate array/matrix entries by adding them together
-
-        The is an *in place* operation
-        """
-        if self.has_canonical_format:
-            return
-        self.sort_indices()
-        R, C = self.blocksize
-        M, N = self.shape
-
-        # port of _sparsetools.csr_sum_duplicates
-        n_row = M // R
-        nnz = 0
-        row_end = 0
-        for i in range(n_row):
-            jj = row_end
-            row_end = self.indptr[i+1]
-            while jj < row_end:
-                j = self.indices[jj]
-                x = self.data[jj]
-                jj += 1
-                while jj < row_end and self.indices[jj] == j:
-                    x += self.data[jj]
-                    jj += 1
-                self.indices[nnz] = j
-                self.data[nnz] = x
-                nnz += 1
-            self.indptr[i+1] = nnz
-
-        self.prune()  # nnz may have changed
-        self.has_canonical_format = True
-
-    def sort_indices(self):
-        """Sort the indices of this array/matrix *in place*
-        """
-        if self.has_sorted_indices:
-            return
-
-        R,C = self.blocksize
-        M,N = self.shape
-
-        bsr_sort_indices(M//R, N//C, R, C, self.indptr, self.indices, self.data.ravel())
-
-        self.has_sorted_indices = True
-
-    def prune(self):
-        """Remove empty space after all non-zero elements.
-        """
-
-        R,C = self.blocksize
-        M,N = self.shape
-
-        if len(self.indptr) != M//R + 1:
-            raise ValueError("index pointer has invalid length")
-
-        bnnz = self.indptr[-1]
-
-        if len(self.indices) < bnnz:
-            raise ValueError("indices array has too few elements")
-        if len(self.data) < bnnz:
-            raise ValueError("data array has too few elements")
-
-        self.data = self.data[:bnnz]
-        self.indices = self.indices[:bnnz]
-
-    # utility functions
-    def _binopt(self, other, op, in_shape=None, out_shape=None):
-        """Apply the binary operation fn to two sparse matrices."""
-
-        # Ideally we'd take the GCDs of the blocksize dimensions
-        # and explode self and other to match.
-        other = self.__class__(other, blocksize=self.blocksize)
-
-        # e.g. bsr_plus_bsr, etc.
-        fn = getattr(_sparsetools, self.format + op + self.format)
-
-        R,C = self.blocksize
-
-        max_bnnz = len(self.data) + len(other.data)
-        idx_dtype = self._get_index_dtype((self.indptr, self.indices,
-                                           other.indptr, other.indices),
-                                          maxval=max_bnnz)
-        indptr = np.empty(self.indptr.shape, dtype=idx_dtype)
-        indices = np.empty(max_bnnz, dtype=idx_dtype)
-
-        bool_ops = ['_ne_', '_lt_', '_gt_', '_le_', '_ge_']
-        if op in bool_ops:
-            data = np.empty(R*C*max_bnnz, dtype=np.bool_)
-        else:
-            data = np.empty(R*C*max_bnnz, dtype=upcast(self.dtype,other.dtype))
-
-        fn(self.shape[0]//R, self.shape[1]//C, R, C,
-           self.indptr.astype(idx_dtype),
-           self.indices.astype(idx_dtype),
-           self.data,
-           other.indptr.astype(idx_dtype),
-           other.indices.astype(idx_dtype),
-           np.ravel(other.data),
-           indptr,
-           indices,
-           data)
-
-        actual_bnnz = indptr[-1]
-        indices = indices[:actual_bnnz]
-        data = data[:R*C*actual_bnnz]
-
-        if actual_bnnz < max_bnnz/2:
-            indices = indices.copy()
-            data = data.copy()
-
-        data = data.reshape(-1,R,C)
-
-        return self.__class__((data, indices, indptr), shape=self.shape)
-
-    # needed by _data_matrix
-    def _with_data(self,data,copy=True):
-        """Returns a matrix with the same sparsity structure as self,
-        but with different data.  By default the structure arrays
-        (i.e. .indptr and .indices) are copied.
-        """
-        if copy:
-            return self.__class__((data,self.indices.copy(),self.indptr.copy()),
-                                   shape=self.shape,dtype=data.dtype)
-        else:
-            return self.__class__((data,self.indices,self.indptr),
-                                   shape=self.shape,dtype=data.dtype)
-
-#    # these functions are used by the parent class
-#    # to remove redundancy between bsc_matrix and bsr_matrix
-#    def _swap(self,x):
-#        """swap the members of x if this is a column-oriented matrix
-#        """
-#        return (x[0],x[1])
-
-
-def isspmatrix_bsr(x):
-    """Is `x` of a bsr_matrix type?
-
-    Parameters
-    ----------
-    x
-        object to check for being a bsr matrix
-
-    Returns
-    -------
-    bool
-        True if `x` is a bsr matrix, False otherwise
-
-    Examples
-    --------
-    >>> from scipy.sparse import bsr_array, bsr_matrix, csr_matrix, isspmatrix_bsr
-    >>> isspmatrix_bsr(bsr_matrix([[5]]))
-    True
-    >>> isspmatrix_bsr(bsr_array([[5]]))
-    False
-    >>> isspmatrix_bsr(csr_matrix([[5]]))
-    False
-    """
-    return isinstance(x, bsr_matrix)
-
-
-# This namespace class separates array from matrix with isinstance
-class bsr_array(_bsr_base, sparray):
-    """
-    Block Sparse Row format sparse array.
-
-    This can be instantiated in several ways:
-        bsr_array(D, [blocksize=(R,C)])
-            where D is a 2-D ndarray.
-
-        bsr_array(S, [blocksize=(R,C)])
-            with another sparse array or matrix S (equivalent to S.tobsr())
-
-        bsr_array((M, N), [blocksize=(R,C), dtype])
-            to construct an empty sparse array with shape (M, N)
-            dtype is optional, defaulting to dtype='d'.
-
-        bsr_array((data, ij), [blocksize=(R,C), shape=(M, N)])
-            where ``data`` and ``ij`` satisfy ``a[ij[0, k], ij[1, k]] = data[k]``
-
-        bsr_array((data, indices, indptr), [shape=(M, N)])
-            is the standard BSR representation where the block column
-            indices for row i are stored in ``indices[indptr[i]:indptr[i+1]]``
-            and their corresponding block values are stored in
-            ``data[ indptr[i]: indptr[i+1] ]``. If the shape parameter is not
-            supplied, the array dimensions are inferred from the index arrays.
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the array
-    shape : 2-tuple
-        Shape of the array
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        BSR format data array of the array
-    indices
-        BSR format index array of the array
-    indptr
-        BSR format index pointer array of the array
-    blocksize
-        Block size
-    has_sorted_indices : bool
-        Whether indices are sorted
-    has_canonical_format : bool
-    T
-
-    Notes
-    -----
-    Sparse arrays can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    **Summary of BSR format**
-
-    The Block Sparse Row (BSR) format is very similar to the Compressed
-    Sparse Row (CSR) format. BSR is appropriate for sparse matrices with dense
-    sub matrices like the last example below. Such sparse block matrices often
-    arise in vector-valued finite element discretizations. In such cases, BSR is
-    considerably more efficient than CSR and CSC for many sparse arithmetic
-    operations.
-
-    **Blocksize**
-
-    The blocksize (R,C) must evenly divide the shape of the sparse array (M,N).
-    That is, R and C must satisfy the relationship ``M % R = 0`` and
-    ``N % C = 0``.
-
-    If no blocksize is specified, a simple heuristic is applied to determine
-    an appropriate blocksize.
-
-    **Canonical Format**
-
-    In canonical format, there are no duplicate blocks and indices are sorted
-    per row.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import bsr_array
-    >>> bsr_array((3, 4), dtype=np.int8).toarray()
-    array([[0, 0, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 0]], dtype=int8)
-
-    >>> row = np.array([0, 0, 1, 2, 2, 2])
-    >>> col = np.array([0, 2, 2, 0, 1, 2])
-    >>> data = np.array([1, 2, 3 ,4, 5, 6])
-    >>> bsr_array((data, (row, col)), shape=(3, 3)).toarray()
-    array([[1, 0, 2],
-           [0, 0, 3],
-           [4, 5, 6]])
-
-    >>> indptr = np.array([0, 2, 3, 6])
-    >>> indices = np.array([0, 2, 2, 0, 1, 2])
-    >>> data = np.array([1, 2, 3, 4, 5, 6]).repeat(4).reshape(6, 2, 2)
-    >>> bsr_array((data,indices,indptr), shape=(6, 6)).toarray()
-    array([[1, 1, 0, 0, 2, 2],
-           [1, 1, 0, 0, 2, 2],
-           [0, 0, 0, 0, 3, 3],
-           [0, 0, 0, 0, 3, 3],
-           [4, 4, 5, 5, 6, 6],
-           [4, 4, 5, 5, 6, 6]])
-
-    """
-
-
-class bsr_matrix(spmatrix, _bsr_base):
-    """
-    Block Sparse Row format sparse matrix.
-
-    This can be instantiated in several ways:
-        bsr_matrix(D, [blocksize=(R,C)])
-            where D is a 2-D ndarray.
-
-        bsr_matrix(S, [blocksize=(R,C)])
-            with another sparse array or matrix S (equivalent to S.tobsr())
-
-        bsr_matrix((M, N), [blocksize=(R,C), dtype])
-            to construct an empty sparse matrix with shape (M, N)
-            dtype is optional, defaulting to dtype='d'.
-
-        bsr_matrix((data, ij), [blocksize=(R,C), shape=(M, N)])
-            where ``data`` and ``ij`` satisfy ``a[ij[0, k], ij[1, k]] = data[k]``
-
-        bsr_matrix((data, indices, indptr), [shape=(M, N)])
-            is the standard BSR representation where the block column
-            indices for row i are stored in ``indices[indptr[i]:indptr[i+1]]``
-            and their corresponding block values are stored in
-            ``data[ indptr[i]: indptr[i+1] ]``. If the shape parameter is not
-            supplied, the matrix dimensions are inferred from the index arrays.
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the matrix
-    shape : 2-tuple
-        Shape of the matrix
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        BSR format data array of the matrix
-    indices
-        BSR format index array of the matrix
-    indptr
-        BSR format index pointer array of the matrix
-    blocksize
-        Block size
-    has_sorted_indices : bool
-        Whether indices are sorted
-    has_canonical_format : bool
-    T
-
-    Notes
-    -----
-    Sparse matrices can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    **Summary of BSR format**
-
-    The Block Sparse Row (BSR) format is very similar to the Compressed
-    Sparse Row (CSR) format. BSR is appropriate for sparse matrices with dense
-    sub matrices like the last example below. Such sparse block matrices often
-    arise in vector-valued finite element discretizations. In such cases, BSR is
-    considerably more efficient than CSR and CSC for many sparse arithmetic
-    operations.
-
-    **Blocksize**
-
-    The blocksize (R,C) must evenly divide the shape of the sparse matrix (M,N).
-    That is, R and C must satisfy the relationship ``M % R = 0`` and
-    ``N % C = 0``.
-
-    If no blocksize is specified, a simple heuristic is applied to determine
-    an appropriate blocksize.
-
-    **Canonical Format**
-
-    In canonical format, there are no duplicate blocks and indices are sorted
-    per row.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import bsr_matrix
-    >>> bsr_matrix((3, 4), dtype=np.int8).toarray()
-    array([[0, 0, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 0]], dtype=int8)
-
-    >>> row = np.array([0, 0, 1, 2, 2, 2])
-    >>> col = np.array([0, 2, 2, 0, 1, 2])
-    >>> data = np.array([1, 2, 3 ,4, 5, 6])
-    >>> bsr_matrix((data, (row, col)), shape=(3, 3)).toarray()
-    array([[1, 0, 2],
-           [0, 0, 3],
-           [4, 5, 6]])
-
-    >>> indptr = np.array([0, 2, 3, 6])
-    >>> indices = np.array([0, 2, 2, 0, 1, 2])
-    >>> data = np.array([1, 2, 3, 4, 5, 6]).repeat(4).reshape(6, 2, 2)
-    >>> bsr_matrix((data,indices,indptr), shape=(6, 6)).toarray()
-    array([[1, 1, 0, 0, 2, 2],
-           [1, 1, 0, 0, 2, 2],
-           [0, 0, 0, 0, 3, 3],
-           [0, 0, 0, 0, 3, 3],
-           [4, 4, 5, 5, 6, 6],
-           [4, 4, 5, 5, 6, 6]])
-
-    """
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py
deleted file mode 100644
index a86c09fc5edfd914680de415cefe8f35ee9c4209..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_compressed.py
+++ /dev/null
@@ -1,1463 +0,0 @@
-"""Base class for sparse matrix formats using compressed storage."""
-__all__ = []
-
-from warnings import warn
-import operator
-
-import numpy as np
-from scipy._lib._util import _prune_array, copy_if_needed
-
-from ._base import _spbase, issparse, sparray, SparseEfficiencyWarning
-from ._data import _data_matrix, _minmax_mixin
-from . import _sparsetools
-from ._sparsetools import (get_csr_submatrix, csr_sample_offsets, csr_todense,
-                           csr_sample_values, csr_row_index, csr_row_slice,
-                           csr_column_index1, csr_column_index2)
-from ._index import IndexMixin
-from ._sputils import (upcast, upcast_char, to_native, isdense, isshape,
-                       getdtype, isscalarlike, isintlike, downcast_intp_index,
-                       get_sum_dtype, check_shape, is_pydata_spmatrix)
-
-
-class _cs_matrix(_data_matrix, _minmax_mixin, IndexMixin):
-    """
-    base array/matrix class for compressed row- and column-oriented arrays/matrices
-    """
-
-    def __init__(self, arg1, shape=None, dtype=None, copy=False):
-        _data_matrix.__init__(self, arg1)
-        is_array = isinstance(self, sparray)
-
-        if issparse(arg1):
-            if arg1.format == self.format and copy:
-                arg1 = arg1.copy()
-            else:
-                arg1 = arg1.asformat(self.format)
-            self.indptr, self.indices, self.data, self._shape = (
-                arg1.indptr, arg1.indices, arg1.data, arg1._shape
-            )
-
-        elif isinstance(arg1, tuple):
-            if isshape(arg1, allow_1d=is_array):
-                # It's a tuple of matrix dimensions (M, N)
-                # create empty matrix
-                self._shape = check_shape(arg1, allow_1d=is_array)
-                M, N = self._swap(self._shape_as_2d)
-                # Select index dtype large enough to pass array and
-                # scalar parameters to sparsetools
-                idx_dtype = self._get_index_dtype(maxval=max(self.shape))
-                self.data = np.zeros(0, getdtype(dtype, default=float))
-                self.indices = np.zeros(0, idx_dtype)
-                self.indptr = np.zeros(M + 1, dtype=idx_dtype)
-            else:
-                if len(arg1) == 2:
-                    # (data, ij) format
-                    coo = self._coo_container(arg1, shape=shape, dtype=dtype)
-                    arrays = coo._coo_to_compressed(self._swap)
-                    self.indptr, self.indices, self.data, self._shape = arrays
-                    self.sum_duplicates()
-                elif len(arg1) == 3:
-                    # (data, indices, indptr) format
-                    (data, indices, indptr) = arg1
-
-                    # Select index dtype large enough to pass array and
-                    # scalar parameters to sparsetools
-                    maxval = None
-                    if shape is not None and 0 not in shape:
-                        maxval = max(shape)
-                    idx_dtype = self._get_index_dtype((indices, indptr),
-                                                maxval=maxval,
-                                                check_contents=True)
-
-                    if not copy:
-                        copy = copy_if_needed
-                    self.indices = np.array(indices, copy=copy, dtype=idx_dtype)
-                    self.indptr = np.array(indptr, copy=copy, dtype=idx_dtype)
-                    self.data = np.array(data, copy=copy, dtype=dtype)
-                else:
-                    raise ValueError(f"unrecognized {self.__class__.__name__} "
-                                     f"constructor input: {arg1}")
-
-        else:
-            # must be dense
-            try:
-                arg1 = np.asarray(arg1)
-            except Exception as e:
-                raise ValueError(f"unrecognized {self.__class__.__name__} "
-                                 f"constructor input: {arg1}") from e
-            if isinstance(self, sparray) and arg1.ndim < 2 and self.format == "csc":
-                raise ValueError(
-                    f"CSC arrays don't support {arg1.ndim}D input. Use 2D"
-                )
-            coo = self._coo_container(arg1, dtype=dtype)
-            arrays = coo._coo_to_compressed(self._swap)
-            self.indptr, self.indices, self.data, self._shape = arrays
-
-        # Read matrix dimensions given, if any
-        if shape is not None:
-            self._shape = check_shape(shape, allow_1d=is_array)
-        elif self.shape is None:
-            # shape not already set, try to infer dimensions
-            try:
-                major_d = len(self.indptr) - 1
-                minor_d = self.indices.max() + 1
-            except Exception as e:
-                raise ValueError('unable to infer matrix dimensions') from e
-
-            self._shape = check_shape(self._swap((major_d, minor_d)), allow_1d=is_array)
-
-        if dtype is not None:
-            self.data = self.data.astype(dtype, copy=False)
-
-        self.check_format(full_check=False)
-
-    def _getnnz(self, axis=None):
-        if axis is None:
-            return int(self.indptr[-1])
-        elif self.ndim == 1:
-            if axis in (0, -1):
-                return int(self.indptr[-1])
-            raise ValueError('axis out of bounds')
-        else:
-            if axis < 0:
-                axis += 2
-            axis, _ = self._swap((axis, 1 - axis))
-            _, N = self._swap(self.shape)
-            if axis == 0:
-                return np.bincount(downcast_intp_index(self.indices),
-                                   minlength=N)
-            elif axis == 1:
-                return np.diff(self.indptr)
-            raise ValueError('axis out of bounds')
-
-    _getnnz.__doc__ = _spbase._getnnz.__doc__
-
-    def check_format(self, full_check=True):
-        """Check whether the array/matrix respects the CSR or CSC format.
-
-        Parameters
-        ----------
-        full_check : bool, optional
-            If `True`, run rigorous check, scanning arrays for valid values.
-            Note that activating those check might copy arrays for casting,
-            modifying indices and index pointers' inplace.
-            If `False`, run basic checks on attributes. O(1) operations.
-            Default is `True`.
-        """
-        # index arrays should have integer data types
-        if self.indptr.dtype.kind != 'i':
-            warn(f"indptr array has non-integer dtype ({self.indptr.dtype.name})",
-                 stacklevel=3)
-        if self.indices.dtype.kind != 'i':
-            warn(f"indices array has non-integer dtype ({self.indices.dtype.name})",
-                 stacklevel=3)
-
-        # check array shapes
-        for x in [self.data.ndim, self.indices.ndim, self.indptr.ndim]:
-            if x != 1:
-                raise ValueError('data, indices, and indptr should be 1-D')
-
-        # check index pointer. Use _swap to determine proper bounds
-        M, N = self._swap(self._shape_as_2d)
-
-        if (len(self.indptr) != M + 1):
-            raise ValueError(f"index pointer size {len(self.indptr)} should be {M + 1}")
-        if (self.indptr[0] != 0):
-            raise ValueError("index pointer should start with 0")
-
-        # check index and data arrays
-        if (len(self.indices) != len(self.data)):
-            raise ValueError("indices and data should have the same size")
-        if (self.indptr[-1] > len(self.indices)):
-            raise ValueError("Last value of index pointer should be less than "
-                             "the size of index and data arrays")
-
-        self.prune()
-
-        if full_check:
-            # check format validity (more expensive)
-            if self.nnz > 0:
-                if self.indices.max() >= N:
-                    raise ValueError(f"indices must be < {N}")
-                if self.indices.min() < 0:
-                    raise ValueError("indices must be >= 0")
-                if np.diff(self.indptr).min() < 0:
-                    raise ValueError("indptr must be a non-decreasing sequence")
-
-            idx_dtype = self._get_index_dtype((self.indptr, self.indices))
-            self.indptr = np.asarray(self.indptr, dtype=idx_dtype)
-            self.indices = np.asarray(self.indices, dtype=idx_dtype)
-            self.data = to_native(self.data)
-
-        # if not self.has_sorted_indices():
-        #    warn('Indices were not in sorted order.  Sorting indices.')
-        #    self.sort_indices()
-        #    assert(self.has_sorted_indices())
-        # TODO check for duplicates?
-
-    #######################
-    # Boolean comparisons #
-    #######################
-
-    def _scalar_binopt(self, other, op):
-        """Scalar version of self._binopt, for cases in which no new nonzeros
-        are added. Produces a new sparse array in canonical form.
-        """
-        self.sum_duplicates()
-        res = self._with_data(op(self.data, other), copy=True)
-        res.eliminate_zeros()
-        return res
-
-    def __eq__(self, other):
-        # Scalar other.
-        if isscalarlike(other):
-            if np.isnan(other):
-                return self.__class__(self.shape, dtype=np.bool_)
-
-            if other == 0:
-                warn("Comparing a sparse matrix with 0 using == is inefficient"
-                     ", try using != instead.", SparseEfficiencyWarning,
-                     stacklevel=3)
-                all_true = self.__class__(np.ones(self.shape, dtype=np.bool_))
-                inv = self._scalar_binopt(other, operator.ne)
-                return all_true - inv
-            else:
-                return self._scalar_binopt(other, operator.eq)
-        # Dense other.
-        elif isdense(other):
-            return self.todense() == other
-        # Pydata sparse other.
-        elif is_pydata_spmatrix(other):
-            return NotImplemented
-        # Sparse other.
-        elif issparse(other):
-            warn("Comparing sparse matrices using == is inefficient, try using"
-                 " != instead.", SparseEfficiencyWarning, stacklevel=3)
-            # TODO sparse broadcasting
-            if self.shape != other.shape:
-                return False
-            elif self.format != other.format:
-                other = other.asformat(self.format)
-            res = self._binopt(other, '_ne_')
-            all_true = self.__class__(np.ones(self.shape, dtype=np.bool_))
-            return all_true - res
-        else:
-            return NotImplemented
-
-    def __ne__(self, other):
-        # Scalar other.
-        if isscalarlike(other):
-            if np.isnan(other):
-                warn("Comparing a sparse matrix with nan using != is"
-                     " inefficient", SparseEfficiencyWarning, stacklevel=3)
-                all_true = self.__class__(np.ones(self.shape, dtype=np.bool_))
-                return all_true
-            elif other != 0:
-                warn("Comparing a sparse matrix with a nonzero scalar using !="
-                     " is inefficient, try using == instead.",
-                     SparseEfficiencyWarning, stacklevel=3)
-                all_true = self.__class__(np.ones(self.shape), dtype=np.bool_)
-                inv = self._scalar_binopt(other, operator.eq)
-                return all_true - inv
-            else:
-                return self._scalar_binopt(other, operator.ne)
-        # Dense other.
-        elif isdense(other):
-            return self.todense() != other
-        # Pydata sparse other.
-        elif is_pydata_spmatrix(other):
-            return NotImplemented
-        # Sparse other.
-        elif issparse(other):
-            # TODO sparse broadcasting
-            if self.shape != other.shape:
-                return True
-            elif self.format != other.format:
-                other = other.asformat(self.format)
-            return self._binopt(other, '_ne_')
-        else:
-            return NotImplemented
-
-    def _inequality(self, other, op, op_name, bad_scalar_msg):
-        # Scalar other.
-        if isscalarlike(other):
-            if 0 == other and op_name in ('_le_', '_ge_'):
-                raise NotImplementedError(" >= and <= don't work with 0.")
-            elif op(0, other):
-                warn(bad_scalar_msg, SparseEfficiencyWarning, stacklevel=3)
-                other_arr = np.empty(self.shape, dtype=np.result_type(other))
-                other_arr.fill(other)
-                other_arr = self.__class__(other_arr)
-                return self._binopt(other_arr, op_name)
-            else:
-                return self._scalar_binopt(other, op)
-        # Dense other.
-        elif isdense(other):
-            return op(self.todense(), other)
-        # Sparse other.
-        elif issparse(other):
-            # TODO sparse broadcasting
-            if self.shape != other.shape:
-                raise ValueError("inconsistent shapes")
-            elif self.format != other.format:
-                other = other.asformat(self.format)
-            if op_name not in ('_ge_', '_le_'):
-                return self._binopt(other, op_name)
-
-            warn("Comparing sparse matrices using >= and <= is inefficient, "
-                 "using <, >, or !=, instead.",
-                 SparseEfficiencyWarning, stacklevel=3)
-            all_true = self.__class__(np.ones(self.shape, dtype=np.bool_))
-            res = self._binopt(other, '_gt_' if op_name == '_le_' else '_lt_')
-            return all_true - res
-        else:
-            return NotImplemented
-
-    def __lt__(self, other):
-        return self._inequality(other, operator.lt, '_lt_',
-                                "Comparing a sparse matrix with a scalar "
-                                "greater than zero using < is inefficient, "
-                                "try using >= instead.")
-
-    def __gt__(self, other):
-        return self._inequality(other, operator.gt, '_gt_',
-                                "Comparing a sparse matrix with a scalar "
-                                "less than zero using > is inefficient, "
-                                "try using <= instead.")
-
-    def __le__(self, other):
-        return self._inequality(other, operator.le, '_le_',
-                                "Comparing a sparse matrix with a scalar "
-                                "greater than zero using <= is inefficient, "
-                                "try using > instead.")
-
-    def __ge__(self, other):
-        return self._inequality(other, operator.ge, '_ge_',
-                                "Comparing a sparse matrix with a scalar "
-                                "less than zero using >= is inefficient, "
-                                "try using < instead.")
-
-    #################################
-    # Arithmetic operator overrides #
-    #################################
-
-    def _add_dense(self, other):
-        if other.shape != self.shape:
-            raise ValueError(f'Incompatible shapes ({self.shape} and {other.shape})')
-        dtype = upcast_char(self.dtype.char, other.dtype.char)
-        order = self._swap('CF')[0]
-        result = np.array(other, dtype=dtype, order=order, copy=True)
-        y = result if result.flags.c_contiguous else result.T
-        M, N = self._swap(self._shape_as_2d)
-        csr_todense(M, N, self.indptr, self.indices, self.data, y)
-        return self._container(result, copy=False)
-
-    def _add_sparse(self, other):
-        return self._binopt(other, '_plus_')
-
-    def _sub_sparse(self, other):
-        return self._binopt(other, '_minus_')
-
-    def multiply(self, other):
-        """Point-wise multiplication by array/matrix, vector, or scalar."""
-        # Scalar multiplication.
-        if isscalarlike(other):
-            return self._mul_scalar(other)
-        # Sparse matrix or vector.
-        if issparse(other):
-            if self.shape == other.shape:
-                other = self.__class__(other)
-                return self._binopt(other, '_elmul_')
-            # Single element.
-            if other.shape == (1, 1):
-                result = self._mul_scalar(other.toarray()[0, 0])
-                if self.ndim == 1:
-                    return result.reshape((1, self.shape[0]))
-                return result
-            if other.shape == (1,):
-                return self._mul_scalar(other.toarray()[0])
-            if self.shape in ((1,), (1, 1)):
-                return other._mul_scalar(self.data.sum())
-
-            # broadcast. treat 1d like a row
-            sM, sN = self._shape_as_2d
-            oM, oN = other._shape_as_2d
-            # A row times a column.
-            if sM == 1 and oN == 1:
-                return other._matmul_sparse(self.reshape(sM, sN).tocsc())
-            if sN == 1 and oM == 1:
-                return self._matmul_sparse(other.reshape(oM, oN).tocsc())
-
-            is_array = isinstance(self, sparray)
-            # Other is a row.
-            if oM == 1 and sN == oN:
-                new_other = _make_diagonal_csr(other.toarray().ravel(), is_array)
-                result = self._matmul_sparse(new_other)
-                return result if self.ndim == 2 else result.reshape((1, oN))
-            # self is a row.
-            if sM == 1 and sN == oN:
-                copy = _make_diagonal_csr(self.toarray().ravel(), is_array)
-                return other._matmul_sparse(copy)
-
-            # Other is a column.
-            if oN == 1 and sM == oM:
-                new_other = _make_diagonal_csr(other.toarray().ravel(), is_array)
-                return new_other._matmul_sparse(self)
-            # self is a column.
-            if sN == 1 and sM == oM:
-                new_self = _make_diagonal_csr(self.toarray().ravel(), is_array)
-                return new_self._matmul_sparse(other)
-            raise ValueError("inconsistent shapes")
-
-        # Assume other is a dense matrix/array, which produces a single-item
-        # object array if other isn't convertible to ndarray.
-        other = np.asanyarray(other)
-
-        if other.ndim > 2:
-            return np.multiply(self.toarray(), other)
-        # Single element / wrapped object.
-        if other.size == 1:
-            if other.dtype == np.object_:
-                # 'other' not convertible to ndarray.
-                return NotImplemented
-            bshape = np.broadcast_shapes(self.shape, other.shape)
-            return self._mul_scalar(other.flat[0]).reshape(bshape)
-        # Fast case for trivial sparse matrix.
-        if self.shape in ((1,), (1, 1)):
-            bshape = np.broadcast_shapes(self.shape, other.shape)
-            return np.multiply(self.data.sum(), other).reshape(bshape)
-
-        ret = self.tocoo()
-        # Matching shapes.
-        if self.shape == other.shape:
-            data = np.multiply(ret.data, other[ret.coords])
-            ret.data = data.view(np.ndarray).ravel()
-            return ret
-
-        # convert other to 2d
-        other2d = np.atleast_2d(other)
-        # Sparse row vector times...
-        if self.shape[0] == 1 or self.ndim == 1:
-            if other2d.shape[1] == 1:  # Dense column vector.
-                data = np.multiply(ret.data, other2d)
-            elif other2d.shape[1] == self.shape[-1]:  # Dense 2d matrix.
-                data = np.multiply(ret.data, other2d[:, ret.col])
-            else:
-                raise ValueError("inconsistent shapes")
-            row = np.repeat(np.arange(other2d.shape[0]), ret.nnz)
-            col = np.tile(ret.col, other2d.shape[0])
-            return self._coo_container(
-                (data.view(np.ndarray).ravel(), (row, col)),
-                shape=(other2d.shape[0], self.shape[-1]),
-                copy=False
-            )
-        # Sparse column vector times...
-        if self.shape[1] == 1:
-            if other2d.shape[0] == 1:  # Dense row vector.
-                data = np.multiply(ret.data[:, None], other2d)
-            elif other2d.shape[0] == self.shape[0]:  # Dense 2d array.
-                data = np.multiply(ret.data[:, None], other2d[ret.row])
-            else:
-                raise ValueError("inconsistent shapes")
-            row = np.repeat(ret.row, other2d.shape[1])
-            col = np.tile(np.arange(other2d.shape[1]), len(ret.col))
-            return self._coo_container(
-                (data.view(np.ndarray).ravel(), (row, col)),
-                shape=(self.shape[0], other2d.shape[1]),
-                copy=False
-            )
-        # Sparse matrix times dense row vector.
-        if other2d.shape[0] == 1 and self.shape[1] == other2d.shape[1]:
-            data = np.multiply(ret.data, other2d[:, ret.col].ravel())
-        # Sparse matrix times dense column vector.
-        elif other2d.shape[1] == 1 and self.shape[0] == other2d.shape[0]:
-            data = np.multiply(ret.data, other2d[ret.row].ravel())
-        else:
-            raise ValueError("inconsistent shapes")
-        ret.data = data.view(np.ndarray).ravel()
-        return ret
-
-    ###########################
-    # Multiplication handlers #
-    ###########################
-
-    def _matmul_vector(self, other):
-        M, N = self._shape_as_2d
-
-        # output array
-        result = np.zeros(M, dtype=upcast_char(self.dtype.char, other.dtype.char))
-
-        # csr_matvec or csc_matvec
-        fn = getattr(_sparsetools, self.format + '_matvec')
-        fn(M, N, self.indptr, self.indices, self.data, other, result)
-
-        return result[0] if self.ndim == 1 else result
-
-    def _matmul_multivector(self, other):
-        M, N = self._shape_as_2d
-        n_vecs = other.shape[-1]  # number of column vectors
-
-        result = np.zeros((M, n_vecs),
-                          dtype=upcast_char(self.dtype.char, other.dtype.char))
-
-        # csr_matvecs or csc_matvecs
-        fn = getattr(_sparsetools, self.format + '_matvecs')
-        fn(M, N, n_vecs, self.indptr, self.indices, self.data,
-           other.ravel(), result.ravel())
-
-        if self.ndim == 1:
-            return result.reshape((n_vecs,))
-        return result
-
-    def _matmul_sparse(self, other):
-        M, K1 = self._shape_as_2d
-        # if other is 1d, treat as a **column**
-        o_ndim = other.ndim
-        if o_ndim == 1:
-            # convert 1d array to a 2d column when on the right of @
-            other = other.reshape((1, other.shape[0])).T  # Note: converts to CSC
-        K2, N = other._shape
-
-        # find new_shape: (M, N), (M,), (N,) or ()
-        new_shape = ()
-        if self.ndim == 2:
-            new_shape += (M,)
-        if o_ndim == 2:
-            new_shape += (N,)
-
-        major_dim = self._swap((M, N))[0]
-        other = self.__class__(other)  # convert to this format
-
-        idx_dtype = self._get_index_dtype((self.indptr, self.indices,
-                                     other.indptr, other.indices))
-
-        fn = getattr(_sparsetools, self.format + '_matmat_maxnnz')
-        nnz = fn(M, N,
-                 np.asarray(self.indptr, dtype=idx_dtype),
-                 np.asarray(self.indices, dtype=idx_dtype),
-                 np.asarray(other.indptr, dtype=idx_dtype),
-                 np.asarray(other.indices, dtype=idx_dtype))
-        if nnz == 0:
-            if new_shape == ():
-                return np.array(0, dtype=upcast(self.dtype, other.dtype))
-            return self.__class__(new_shape, dtype=upcast(self.dtype, other.dtype))
-
-        idx_dtype = self._get_index_dtype((self.indptr, self.indices,
-                                     other.indptr, other.indices),
-                                    maxval=nnz)
-
-        indptr = np.empty(major_dim + 1, dtype=idx_dtype)
-        indices = np.empty(nnz, dtype=idx_dtype)
-        data = np.empty(nnz, dtype=upcast(self.dtype, other.dtype))
-
-        fn = getattr(_sparsetools, self.format + '_matmat')
-        fn(M, N, np.asarray(self.indptr, dtype=idx_dtype),
-           np.asarray(self.indices, dtype=idx_dtype),
-           self.data,
-           np.asarray(other.indptr, dtype=idx_dtype),
-           np.asarray(other.indices, dtype=idx_dtype),
-           other.data,
-           indptr, indices, data)
-
-        if new_shape == ():
-            return np.array(data[0])
-        return self.__class__((data, indices, indptr), shape=new_shape)
-
-    def diagonal(self, k=0):
-        rows, cols = self.shape
-        if k <= -rows or k >= cols:
-            return np.empty(0, dtype=self.data.dtype)
-        fn = getattr(_sparsetools, self.format + "_diagonal")
-        y = np.empty(min(rows + min(k, 0), cols - max(k, 0)),
-                     dtype=upcast(self.dtype))
-        fn(k, self.shape[0], self.shape[1], self.indptr, self.indices,
-           self.data, y)
-        return y
-
-    diagonal.__doc__ = _spbase.diagonal.__doc__
-
-    #####################
-    # Other binary ops  #
-    #####################
-
-    def _maximum_minimum(self, other, npop, op_name, dense_check):
-        if isscalarlike(other):
-            if dense_check(other):
-                warn("Taking maximum (minimum) with > 0 (< 0) number results"
-                     " to a dense matrix.", SparseEfficiencyWarning,
-                     stacklevel=3)
-                other_arr = np.empty(self.shape, dtype=np.asarray(other).dtype)
-                other_arr.fill(other)
-                other_arr = self.__class__(other_arr)
-                return self._binopt(other_arr, op_name)
-            else:
-                self.sum_duplicates()
-                new_data = npop(self.data, np.asarray(other))
-                mat = self.__class__((new_data, self.indices, self.indptr),
-                                     dtype=new_data.dtype, shape=self.shape)
-                return mat
-        elif isdense(other):
-            return npop(self.todense(), other)
-        elif issparse(other):
-            return self._binopt(other, op_name)
-        else:
-            raise ValueError("Operands not compatible.")
-
-    def maximum(self, other):
-        return self._maximum_minimum(other, np.maximum,
-                                     '_maximum_', lambda x: np.asarray(x) > 0)
-
-    maximum.__doc__ = _spbase.maximum.__doc__
-
-    def minimum(self, other):
-        return self._maximum_minimum(other, np.minimum,
-                                     '_minimum_', lambda x: np.asarray(x) < 0)
-
-    minimum.__doc__ = _spbase.minimum.__doc__
-
-    #####################
-    # Reduce operations #
-    #####################
-
-    def sum(self, axis=None, dtype=None, out=None):
-        """Sum the array/matrix over the given axis.  If the axis is None, sum
-        over both rows and columns, returning a scalar.
-        """
-        # The _spbase base class already does axis=0 and axis=1 efficiently
-        # so we only do the case axis=None here
-        if (self.ndim == 2 and not hasattr(self, 'blocksize') and
-                axis in self._swap(((1, -1), (0, -2)))[0]):
-            # faster than multiplication for large minor axis in CSC/CSR
-            res_dtype = get_sum_dtype(self.dtype)
-            ret = np.zeros(len(self.indptr) - 1, dtype=res_dtype)
-
-            major_index, value = self._minor_reduce(np.add)
-            ret[major_index] = value
-            ret = self._ascontainer(ret)
-            if axis % 2 == 1:
-                ret = ret.T
-
-            if out is not None and out.shape != ret.shape:
-                raise ValueError('dimensions do not match')
-
-            return ret.sum(axis=(), dtype=dtype, out=out)
-        else:
-            # _spbase handles the situations when axis is in {None, -2, -1, 0, 1}
-            return _spbase.sum(self, axis=axis, dtype=dtype, out=out)
-
-    sum.__doc__ = _spbase.sum.__doc__
-
-    def _minor_reduce(self, ufunc, data=None):
-        """Reduce nonzeros with a ufunc over the minor axis when non-empty
-
-        Can be applied to a function of self.data by supplying data parameter.
-
-        Warning: this does not call sum_duplicates()
-
-        Returns
-        -------
-        major_index : array of ints
-            Major indices where nonzero
-
-        value : array of self.dtype
-            Reduce result for nonzeros in each major_index
-        """
-        if data is None:
-            data = self.data
-        major_index = np.flatnonzero(np.diff(self.indptr))
-        value = ufunc.reduceat(data,
-                               downcast_intp_index(self.indptr[major_index]))
-        return major_index, value
-
-    #######################
-    # Getting and Setting #
-    #######################
-
-    def _get_int(self, idx):
-        if 0 <= idx <= self.shape[0]:
-            spot = np.flatnonzero(self.indices == idx)
-            if spot.size:
-                return self.data[spot[0]]
-            return self.data.dtype.type(0)
-        raise IndexError(f'index ({idx}) out of range')
-
-#    For now, 1d only has integer indexing. Soon we will add get_slice/array
-#    def _get_slice(self, idx):
-#        if idx == slice(None):
-#            return self.copy()
-#        if idx.step in (1, None):
-#            major, minor = self._swap((0, idx))
-#            ret = self._get_submatrix(major, minor, copy=True)
-#            return ret.reshape(ret.shape[-1])
-#
-#        _slice = self._swap((self._minor_slice, self._major_slice))[0]
-#        return _slice(idx)
-#
-#    def _get_array(self, idx):
-#        idx = np.asarray(idx)
-#        idx_dtype = self.indices.dtype
-#        M, N = self._swap((1, self.shape[0]))
-#        row = np.zeros_like(idx, dtype=idx_dtype)
-#        major, minor = self._swap((row, idx))
-#        major = np.asarray(major, dtype=idx_dtype)
-#        minor = np.asarray(minor, dtype=idx_dtype)
-#        if minor.size == 0:
-#            return self.__class__([], dtype=self.dtype)
-#        new_shape = minor.shape if minor.shape[0] > 1 else (minor.shape[-1],)
-#
-#        val = np.empty(major.size, dtype=self.dtype)
-#        csr_sample_values(M, N, self.indptr, self.indices, self.data,
-#                          major.size, major.ravel(), minor.ravel(), val)
-#        return self.__class__(val.reshape(new_shape))
-
-    def _get_intXint(self, row, col):
-        M, N = self._swap(self.shape)
-        major, minor = self._swap((row, col))
-        indptr, indices, data = get_csr_submatrix(
-            M, N, self.indptr, self.indices, self.data,
-            major, major + 1, minor, minor + 1)
-        return data.sum(dtype=self.dtype)
-
-    def _get_sliceXslice(self, row, col):
-        major, minor = self._swap((row, col))
-        if major.step in (1, None) and minor.step in (1, None):
-            return self._get_submatrix(major, minor, copy=True)
-        return self._major_slice(major)._minor_slice(minor)
-
-    def _get_arrayXarray(self, row, col):
-        # inner indexing
-        idx_dtype = self.indices.dtype
-        M, N = self._swap(self.shape)
-        major, minor = self._swap((row, col))
-        major = np.asarray(major, dtype=idx_dtype)
-        minor = np.asarray(minor, dtype=idx_dtype)
-
-        val = np.empty(major.size, dtype=self.dtype)
-        csr_sample_values(M, N, self.indptr, self.indices, self.data,
-                          major.size, major.ravel(), minor.ravel(), val)
-        if major.ndim == 1:
-            return self._ascontainer(val)
-        return self.__class__(val.reshape(major.shape))
-
-    def _get_columnXarray(self, row, col):
-        # outer indexing
-        major, minor = self._swap((row, col))
-        return self._major_index_fancy(major)._minor_index_fancy(minor)
-
-    def _major_index_fancy(self, idx):
-        """Index along the major axis where idx is an array of ints.
-        """
-        idx_dtype = self._get_index_dtype((self.indptr, self.indices))
-        indices = np.asarray(idx, dtype=idx_dtype).ravel()
-
-        N = self._swap(self._shape_as_2d)[1]
-        M = len(indices)
-        new_shape = self._swap((M, N)) if self.ndim == 2 else (M,)
-        if M == 0:
-            return self.__class__(new_shape, dtype=self.dtype)
-
-        row_nnz = (self.indptr[indices + 1] - self.indptr[indices]).astype(idx_dtype)
-
-        res_indptr = np.zeros(M+1, dtype=idx_dtype)
-        np.cumsum(row_nnz, out=res_indptr[1:])
-
-        nnz = res_indptr[-1]
-        res_indices = np.empty(nnz, dtype=idx_dtype)
-        res_data = np.empty(nnz, dtype=self.dtype)
-        csr_row_index(
-            M,
-            indices,
-            self.indptr.astype(idx_dtype, copy=False),
-            self.indices.astype(idx_dtype, copy=False),
-            self.data,
-            res_indices,
-            res_data
-        )
-
-        return self.__class__((res_data, res_indices, res_indptr),
-                              shape=new_shape, copy=False)
-
-    def _major_slice(self, idx, copy=False):
-        """Index along the major axis where idx is a slice object.
-        """
-        if idx == slice(None):
-            return self.copy() if copy else self
-
-        M, N = self._swap(self._shape_as_2d)
-        start, stop, step = idx.indices(M)
-        M = len(range(start, stop, step))
-        new_shape = self._swap((M, N)) if self.ndim == 2 else (M,)
-        if M == 0:
-            return self.__class__(new_shape, dtype=self.dtype)
-
-        # Work out what slices are needed for `row_nnz`
-        # start,stop can be -1, only if step is negative
-        start0, stop0 = start, stop
-        if stop == -1 and start >= 0:
-            stop0 = None
-        start1, stop1 = start + 1, stop + 1
-
-        row_nnz = self.indptr[start1:stop1:step] - \
-            self.indptr[start0:stop0:step]
-        idx_dtype = self.indices.dtype
-        res_indptr = np.zeros(M+1, dtype=idx_dtype)
-        np.cumsum(row_nnz, out=res_indptr[1:])
-
-        if step == 1:
-            all_idx = slice(self.indptr[start], self.indptr[stop])
-            res_indices = np.array(self.indices[all_idx], copy=copy)
-            res_data = np.array(self.data[all_idx], copy=copy)
-        else:
-            nnz = res_indptr[-1]
-            res_indices = np.empty(nnz, dtype=idx_dtype)
-            res_data = np.empty(nnz, dtype=self.dtype)
-            csr_row_slice(start, stop, step, self.indptr, self.indices,
-                          self.data, res_indices, res_data)
-
-        return self.__class__((res_data, res_indices, res_indptr),
-                              shape=new_shape, copy=False)
-
-    def _minor_index_fancy(self, idx):
-        """Index along the minor axis where idx is an array of ints.
-        """
-        idx_dtype = self._get_index_dtype((self.indices, self.indptr))
-        indices = self.indices.astype(idx_dtype, copy=False)
-        indptr = self.indptr.astype(idx_dtype, copy=False)
-
-        idx = np.asarray(idx, dtype=idx_dtype).ravel()
-
-        M, N = self._swap(self._shape_as_2d)
-        k = len(idx)
-        new_shape = self._swap((M, k)) if self.ndim == 2 else (k,)
-        if k == 0:
-            return self.__class__(new_shape, dtype=self.dtype)
-
-        # pass 1: count idx entries and compute new indptr
-        col_offsets = np.zeros(N, dtype=idx_dtype)
-        res_indptr = np.empty_like(self.indptr, dtype=idx_dtype)
-        csr_column_index1(
-            k,
-            idx,
-            M,
-            N,
-            indptr,
-            indices,
-            col_offsets,
-            res_indptr,
-        )
-
-        # pass 2: copy indices/data for selected idxs
-        col_order = np.argsort(idx).astype(idx_dtype, copy=False)
-        nnz = res_indptr[-1]
-        res_indices = np.empty(nnz, dtype=idx_dtype)
-        res_data = np.empty(nnz, dtype=self.dtype)
-        csr_column_index2(col_order, col_offsets, len(self.indices),
-                          indices, self.data, res_indices, res_data)
-        return self.__class__((res_data, res_indices, res_indptr),
-                              shape=new_shape, copy=False)
-
-    def _minor_slice(self, idx, copy=False):
-        """Index along the minor axis where idx is a slice object.
-        """
-        if idx == slice(None):
-            return self.copy() if copy else self
-
-        M, N = self._swap(self._shape_as_2d)
-        start, stop, step = idx.indices(N)
-        N = len(range(start, stop, step))
-        if N == 0:
-            return self.__class__(self._swap((M, N)), dtype=self.dtype)
-        if step == 1:
-            return self._get_submatrix(minor=idx, copy=copy)
-        # TODO: don't fall back to fancy indexing here
-        return self._minor_index_fancy(np.arange(start, stop, step))
-
-    def _get_submatrix(self, major=None, minor=None, copy=False):
-        """Return a submatrix of this matrix.
-
-        major, minor: None, int, or slice with step 1
-        """
-        M, N = self._swap(self._shape_as_2d)
-        i0, i1 = _process_slice(major, M)
-        j0, j1 = _process_slice(minor, N)
-
-        if i0 == 0 and j0 == 0 and i1 == M and j1 == N:
-            return self.copy() if copy else self
-
-        indptr, indices, data = get_csr_submatrix(
-            M, N, self.indptr, self.indices, self.data, i0, i1, j0, j1)
-
-        shape = self._swap((i1 - i0, j1 - j0))
-        if self.ndim == 1:
-            shape = (shape[1],)
-        return self.__class__((data, indices, indptr), shape=shape,
-                              dtype=self.dtype, copy=False)
-
-    def _set_int(self, idx, x):
-        major, minor = self._swap((0, idx))
-        self._set_many(major, minor, x)
-
-    def _set_array(self, idx, x):
-        major, minor = self._swap((np.zeros_like(idx), idx))
-        broadcast = x.shape[-1] == 1 and minor.shape[-1] != 1
-        if broadcast:
-            x = np.repeat(x.data, idx.shape[-1])
-        self._set_many(major, minor, x)
-
-    def _set_intXint(self, row, col, x):
-        i, j = self._swap((row, col))
-        self._set_many(i, j, x)
-
-    def _set_arrayXarray(self, row, col, x):
-        i, j = self._swap((row, col))
-        self._set_many(i, j, x)
-
-    def _set_arrayXarray_sparse(self, row, col, x):
-        # clear entries that will be overwritten
-        self._zero_many(*self._swap((row, col)))
-
-        M, N = row.shape  # matches col.shape
-        broadcast_row = M != 1 and x.shape[0] == 1
-        broadcast_col = N != 1 and x.shape[1] == 1
-        r, c = x.row, x.col
-
-        x = np.asarray(x.data, dtype=self.dtype)
-        if x.size == 0:
-            return
-
-        if broadcast_row:
-            r = np.repeat(np.arange(M), len(r))
-            c = np.tile(c, M)
-            x = np.tile(x, M)
-        if broadcast_col:
-            r = np.repeat(r, N)
-            c = np.tile(np.arange(N), len(c))
-            x = np.repeat(x, N)
-        # only assign entries in the new sparsity structure
-        i, j = self._swap((row[r, c], col[r, c]))
-        self._set_many(i, j, x)
-
-    def _setdiag(self, values, k):
-        if 0 in self.shape:
-            return
-        if self.ndim == 1:
-            raise NotImplementedError('diagonals cant be set in 1d arrays')
-
-        M, N = self.shape
-        broadcast = (values.ndim == 0)
-
-        if k < 0:
-            if broadcast:
-                max_index = min(M + k, N)
-            else:
-                max_index = min(M + k, N, len(values))
-            i = np.arange(-k, max_index - k, dtype=self.indices.dtype)
-            j = np.arange(max_index, dtype=self.indices.dtype)
-
-        else:
-            if broadcast:
-                max_index = min(M, N - k)
-            else:
-                max_index = min(M, N - k, len(values))
-            i = np.arange(max_index, dtype=self.indices.dtype)
-            j = np.arange(k, k + max_index, dtype=self.indices.dtype)
-
-        if not broadcast:
-            values = values[:len(i)]
-
-        x = np.atleast_1d(np.asarray(values, dtype=self.dtype)).ravel()
-        if x.squeeze().shape != i.squeeze().shape:
-            x = np.broadcast_to(x, i.shape)
-        if x.size == 0:
-            return
-
-        M, N = self._swap((M, N))
-        i, j = self._swap((i, j))
-        n_samples = x.size
-        offsets = np.empty(n_samples, dtype=self.indices.dtype)
-        ret = csr_sample_offsets(M, N, self.indptr, self.indices, n_samples,
-                                 i, j, offsets)
-        if ret == 1:
-            # rinse and repeat
-            self.sum_duplicates()
-            csr_sample_offsets(M, N, self.indptr, self.indices, n_samples,
-                               i, j, offsets)
-        if -1 not in offsets:
-            # only affects existing non-zero cells
-            self.data[offsets] = x
-            return
-
-        mask = (offsets <= -1)
-        # Boundary between csc and convert to coo
-        # The value 0.001 is justified in gh-19962#issuecomment-1920499678
-        if mask.sum() < self.nnz * 0.001:
-            # create new entries
-            i = i[mask]
-            j = j[mask]
-            self._insert_many(i, j, x[mask])
-            # replace existing entries
-            mask = ~mask
-            self.data[offsets[mask]] = x[mask]
-        else:
-            # convert to coo for _set_diag
-            coo = self.tocoo()
-            coo._setdiag(values, k)
-            arrays = coo._coo_to_compressed(self._swap)
-            self.indptr, self.indices, self.data, _ = arrays
-
-    def _prepare_indices(self, i, j):
-        M, N = self._swap(self._shape_as_2d)
-
-        def check_bounds(indices, bound):
-            idx = indices.max()
-            if idx >= bound:
-                raise IndexError('index (%d) out of range (>= %d)' %
-                                 (idx, bound))
-            idx = indices.min()
-            if idx < -bound:
-                raise IndexError('index (%d) out of range (< -%d)' %
-                                 (idx, bound))
-
-        i = np.atleast_1d(np.asarray(i, dtype=self.indices.dtype)).ravel()
-        j = np.atleast_1d(np.asarray(j, dtype=self.indices.dtype)).ravel()
-        check_bounds(i, M)
-        check_bounds(j, N)
-        return i, j, M, N
-
-    def _set_many(self, i, j, x):
-        """Sets value at each (i, j) to x
-
-        Here (i,j) index major and minor respectively, and must not contain
-        duplicate entries.
-        """
-        i, j, M, N = self._prepare_indices(i, j)
-        x = np.atleast_1d(np.asarray(x, dtype=self.dtype)).ravel()
-
-        n_samples = x.size
-        offsets = np.empty(n_samples, dtype=self.indices.dtype)
-        ret = csr_sample_offsets(M, N, self.indptr, self.indices, n_samples,
-                                 i, j, offsets)
-        if ret == 1:
-            # rinse and repeat
-            self.sum_duplicates()
-            csr_sample_offsets(M, N, self.indptr, self.indices, n_samples,
-                               i, j, offsets)
-
-        if -1 not in offsets:
-            # only affects existing non-zero cells
-            self.data[offsets] = x
-            return
-
-        else:
-            warn(f"Changing the sparsity structure of a {self.__class__.__name__} is"
-                 " expensive. lil and dok are more efficient.",
-                 SparseEfficiencyWarning, stacklevel=3)
-            # replace where possible
-            mask = offsets > -1
-            self.data[offsets[mask]] = x[mask]
-            # only insertions remain
-            mask = ~mask
-            i = i[mask]
-            i[i < 0] += M
-            j = j[mask]
-            j[j < 0] += N
-            self._insert_many(i, j, x[mask])
-
-    def _zero_many(self, i, j):
-        """Sets value at each (i, j) to zero, preserving sparsity structure.
-
-        Here (i,j) index major and minor respectively.
-        """
-        i, j, M, N = self._prepare_indices(i, j)
-
-        n_samples = len(i)
-        offsets = np.empty(n_samples, dtype=self.indices.dtype)
-        ret = csr_sample_offsets(M, N, self.indptr, self.indices, n_samples,
-                                 i, j, offsets)
-        if ret == 1:
-            # rinse and repeat
-            self.sum_duplicates()
-            csr_sample_offsets(M, N, self.indptr, self.indices, n_samples,
-                               i, j, offsets)
-
-        # only assign zeros to the existing sparsity structure
-        self.data[offsets[offsets > -1]] = 0
-
-    def _insert_many(self, i, j, x):
-        """Inserts new nonzero at each (i, j) with value x
-
-        Here (i,j) index major and minor respectively.
-        i, j and x must be non-empty, 1d arrays.
-        Inserts each major group (e.g. all entries per row) at a time.
-        Maintains has_sorted_indices property.
-        Modifies i, j, x in place.
-        """
-        order = np.argsort(i, kind='mergesort')  # stable for duplicates
-        i = i.take(order, mode='clip')
-        j = j.take(order, mode='clip')
-        x = x.take(order, mode='clip')
-
-        do_sort = self.has_sorted_indices
-
-        # Update index data type
-        idx_dtype = self._get_index_dtype((self.indices, self.indptr),
-                                    maxval=(self.indptr[-1] + x.size))
-        self.indptr = np.asarray(self.indptr, dtype=idx_dtype)
-        self.indices = np.asarray(self.indices, dtype=idx_dtype)
-        i = np.asarray(i, dtype=idx_dtype)
-        j = np.asarray(j, dtype=idx_dtype)
-
-        # Collate old and new in chunks by major index
-        indices_parts = []
-        data_parts = []
-        ui, ui_indptr = np.unique(i, return_index=True)
-        ui_indptr = np.append(ui_indptr, len(j))
-        new_nnzs = np.diff(ui_indptr)
-        prev = 0
-        for c, (ii, js, je) in enumerate(zip(ui, ui_indptr, ui_indptr[1:])):
-            # old entries
-            start = self.indptr[prev]
-            stop = self.indptr[ii]
-            indices_parts.append(self.indices[start:stop])
-            data_parts.append(self.data[start:stop])
-
-            # handle duplicate j: keep last setting
-            uj, uj_indptr = np.unique(j[js:je][::-1], return_index=True)
-            if len(uj) == je - js:
-                indices_parts.append(j[js:je])
-                data_parts.append(x[js:je])
-            else:
-                indices_parts.append(j[js:je][::-1][uj_indptr])
-                data_parts.append(x[js:je][::-1][uj_indptr])
-                new_nnzs[c] = len(uj)
-
-            prev = ii
-
-        # remaining old entries
-        start = self.indptr[ii]
-        indices_parts.append(self.indices[start:])
-        data_parts.append(self.data[start:])
-
-        # update attributes
-        self.indices = np.concatenate(indices_parts)
-        self.data = np.concatenate(data_parts)
-        nnzs = np.empty(self.indptr.shape, dtype=idx_dtype)
-        nnzs[0] = idx_dtype(0)
-        indptr_diff = np.diff(self.indptr)
-        indptr_diff[ui] += new_nnzs
-        nnzs[1:] = indptr_diff
-        self.indptr = np.cumsum(nnzs, out=nnzs)
-
-        if do_sort:
-            # TODO: only sort where necessary
-            self.has_sorted_indices = False
-            self.sort_indices()
-
-        self.check_format(full_check=False)
-
-    ######################
-    # Conversion methods #
-    ######################
-
-    def tocoo(self, copy=True):
-        if self.ndim == 1:
-            csr = self.tocsr()
-            return self._coo_container((csr.data, (csr.indices,)), csr.shape, copy=copy)
-        major_dim, minor_dim = self._swap(self.shape)
-        minor_indices = self.indices
-        major_indices = np.empty(len(minor_indices), dtype=self.indices.dtype)
-        _sparsetools.expandptr(major_dim, self.indptr, major_indices)
-        coords = self._swap((major_indices, minor_indices))
-
-        return self._coo_container(
-            (self.data, coords), self.shape, copy=copy, dtype=self.dtype
-        )
-
-    tocoo.__doc__ = _spbase.tocoo.__doc__
-
-    def toarray(self, order=None, out=None):
-        if out is None and order is None:
-            order = self._swap('cf')[0]
-        out = self._process_toarray_args(order, out)
-        if not (out.flags.c_contiguous or out.flags.f_contiguous):
-            raise ValueError('Output array must be C or F contiguous')
-        # align ideal order with output array order
-        if out.flags.c_contiguous:
-            x = self.tocsr()
-            y = out
-        else:
-            x = self.tocsc()
-            y = out.T
-        M, N = x._swap(x._shape_as_2d)
-        csr_todense(M, N, x.indptr, x.indices, x.data, y)
-        return out
-
-    toarray.__doc__ = _spbase.toarray.__doc__
-
-    ##############################################################
-    # methods that examine or modify the internal data structure #
-    ##############################################################
-
-    def eliminate_zeros(self):
-        """Remove zero entries from the array/matrix
-
-        This is an *in place* operation.
-        """
-        M, N = self._swap(self._shape_as_2d)
-        _sparsetools.csr_eliminate_zeros(M, N, self.indptr, self.indices, self.data)
-        self.prune()  # nnz may have changed
-
-    @property
-    def has_canonical_format(self) -> bool:
-        """Whether the array/matrix has sorted indices and no duplicates
-
-        Returns
-            - True: if the above applies
-            - False: otherwise
-
-        has_canonical_format implies has_sorted_indices, so if the latter flag
-        is False, so will the former be; if the former is found True, the
-        latter flag is also set.
-        """
-        # first check to see if result was cached
-        if not getattr(self, '_has_sorted_indices', True):
-            # not sorted => not canonical
-            self._has_canonical_format = False
-        elif not hasattr(self, '_has_canonical_format'):
-            self.has_canonical_format = bool(
-                _sparsetools.csr_has_canonical_format(
-                    len(self.indptr) - 1, self.indptr, self.indices)
-                )
-        return self._has_canonical_format
-
-    @has_canonical_format.setter
-    def has_canonical_format(self, val: bool):
-        self._has_canonical_format = bool(val)
-        if val:
-            self.has_sorted_indices = True
-
-    def sum_duplicates(self):
-        """Eliminate duplicate entries by adding them together
-
-        This is an *in place* operation.
-        """
-        if self.has_canonical_format:
-            return
-        self.sort_indices()
-
-        M, N = self._swap(self._shape_as_2d)
-        _sparsetools.csr_sum_duplicates(M, N, self.indptr, self.indices, self.data)
-
-        self.prune()  # nnz may have changed
-        self.has_canonical_format = True
-
-    @property
-    def has_sorted_indices(self) -> bool:
-        """Whether the indices are sorted
-
-        Returns
-            - True: if the indices of the array/matrix are in sorted order
-            - False: otherwise
-        """
-        # first check to see if result was cached
-        if not hasattr(self, '_has_sorted_indices'):
-            self._has_sorted_indices = bool(
-                _sparsetools.csr_has_sorted_indices(
-                    len(self.indptr) - 1, self.indptr, self.indices)
-                )
-        return self._has_sorted_indices
-
-    @has_sorted_indices.setter
-    def has_sorted_indices(self, val: bool):
-        self._has_sorted_indices = bool(val)
-
-
-    def sorted_indices(self):
-        """Return a copy of this array/matrix with sorted indices
-        """
-        A = self.copy()
-        A.sort_indices()
-        return A
-
-        # an alternative that has linear complexity is the following
-        # although the previous option is typically faster
-        # return self.toother().toother()
-
-    def sort_indices(self):
-        """Sort the indices of this array/matrix *in place*
-        """
-
-        if not self.has_sorted_indices:
-            _sparsetools.csr_sort_indices(len(self.indptr) - 1, self.indptr,
-                                          self.indices, self.data)
-            self.has_sorted_indices = True
-
-    def prune(self):
-        """Remove empty space after all non-zero elements.
-        """
-        major_dim = self._swap(self._shape_as_2d)[0]
-
-        if len(self.indptr) != major_dim + 1:
-            raise ValueError('index pointer has invalid length')
-        if len(self.indices) < self.nnz:
-            raise ValueError('indices array has fewer than nnz elements')
-        if len(self.data) < self.nnz:
-            raise ValueError('data array has fewer than nnz elements')
-
-        self.indices = _prune_array(self.indices[:self.nnz])
-        self.data = _prune_array(self.data[:self.nnz])
-
-    def resize(self, *shape):
-        shape = check_shape(shape, allow_1d=isinstance(self, sparray))
-
-        if hasattr(self, 'blocksize'):
-            bm, bn = self.blocksize
-            new_M, rm = divmod(shape[0], bm)
-            new_N, rn = divmod(shape[1], bn)
-            if rm or rn:
-                raise ValueError(f"shape must be divisible into {self.blocksize}"
-                                 f" blocks. Got {shape}")
-            M, N = self.shape[0] // bm, self.shape[1] // bn
-        else:
-            new_M, new_N = self._swap(shape if len(shape)>1 else (1, shape[0]))
-            M, N = self._swap(self._shape_as_2d)
-
-        if new_M < M:
-            self.indices = self.indices[:self.indptr[new_M]]
-            self.data = self.data[:self.indptr[new_M]]
-            self.indptr = self.indptr[:new_M + 1]
-        elif new_M > M:
-            self.indptr = np.resize(self.indptr, new_M + 1)
-            self.indptr[M + 1:].fill(self.indptr[M])
-
-        if new_N < N:
-            mask = self.indices < new_N
-            if not np.all(mask):
-                self.indices = self.indices[mask]
-                self.data = self.data[mask]
-                major_index, val = self._minor_reduce(np.add, mask)
-                self.indptr.fill(0)
-                self.indptr[1:][major_index] = val
-                np.cumsum(self.indptr, out=self.indptr)
-
-        self._shape = shape
-
-    resize.__doc__ = _spbase.resize.__doc__
-
-    ###################
-    # utility methods #
-    ###################
-
-    # needed by _data_matrix
-    def _with_data(self, data, copy=True):
-        """Returns a matrix with the same sparsity structure as self,
-        but with different data.  By default the structure arrays
-        (i.e. .indptr and .indices) are copied.
-        """
-        if copy:
-            return self.__class__((data, self.indices.copy(),
-                                   self.indptr.copy()),
-                                  shape=self.shape,
-                                  dtype=data.dtype)
-        else:
-            return self.__class__((data, self.indices, self.indptr),
-                                  shape=self.shape, dtype=data.dtype)
-
-    def _binopt(self, other, op):
-        """apply the binary operation fn to two sparse matrices."""
-        other = self.__class__(other)
-
-        # e.g. csr_plus_csr, csr_minus_csr, etc.
-        fn = getattr(_sparsetools, self.format + op + self.format)
-
-        maxnnz = self.nnz + other.nnz
-        idx_dtype = self._get_index_dtype((self.indptr, self.indices,
-                                     other.indptr, other.indices),
-                                    maxval=maxnnz)
-        indptr = np.empty(self.indptr.shape, dtype=idx_dtype)
-        indices = np.empty(maxnnz, dtype=idx_dtype)
-
-        bool_ops = ['_ne_', '_lt_', '_gt_', '_le_', '_ge_']
-        if op in bool_ops:
-            data = np.empty(maxnnz, dtype=np.bool_)
-        else:
-            data = np.empty(maxnnz, dtype=upcast(self.dtype, other.dtype))
-
-        M, N = self._shape_as_2d
-        fn(M, N,
-           np.asarray(self.indptr, dtype=idx_dtype),
-           np.asarray(self.indices, dtype=idx_dtype),
-           self.data,
-           np.asarray(other.indptr, dtype=idx_dtype),
-           np.asarray(other.indices, dtype=idx_dtype),
-           other.data,
-           indptr, indices, data)
-
-        A = self.__class__((data, indices, indptr), shape=self.shape)
-        A.prune()
-
-        return A
-
-    def _divide_sparse(self, other):
-        """
-        Divide this matrix by a second sparse matrix.
-        """
-        if other.shape != self.shape:
-            raise ValueError('inconsistent shapes')
-
-        r = self._binopt(other, '_eldiv_')
-
-        if np.issubdtype(r.dtype, np.inexact):
-            # Eldiv leaves entries outside the combined sparsity
-            # pattern empty, so they must be filled manually.
-            # Everything outside of other's sparsity is NaN, and everything
-            # inside it is either zero or defined by eldiv.
-            out = np.empty(self.shape, dtype=self.dtype)
-            out.fill(np.nan)
-            coords = other.nonzero()
-            if self.ndim == 1:
-                coords = (coords[-1],)
-            out[coords] = 0
-            r = r.tocoo()
-            out[r.coords] = r.data
-            return self._container(out)
-        else:
-            # integers types go with nan <-> 0
-            out = r
-            return out
-
-
-def _make_diagonal_csr(data, is_array=False):
-    """build diagonal csc_array/csr_array => self._csr_container
-
-    Parameter `data` should be a raveled numpy array holding the
-    values on the diagonal of the resulting sparse matrix. 
-    """
-    from ._csr import csr_array, csr_matrix
-    csr_array = csr_array if is_array else csr_matrix
-
-    N = len(data)
-    indptr = np.arange(N + 1)
-    indices = indptr[:-1]
-
-    return csr_array((data, indices, indptr), shape=(N, N))
-
-
-def _process_slice(sl, num):
-    if sl is None:
-        i0, i1 = 0, num
-    elif isinstance(sl, slice):
-        i0, i1, stride = sl.indices(num)
-        if stride != 1:
-            raise ValueError('slicing with step != 1 not supported')
-        i0 = min(i0, i1)  # give an empty slice when i0 > i1
-    elif isintlike(sl):
-        if sl < 0:
-            sl += num
-        i0, i1 = sl, sl + 1
-        if i0 < 0 or i1 > num:
-            raise IndexError(f'index out of bounds: 0 <= {i0} < {i1} <= {num}')
-    else:
-        raise TypeError('expected slice or scalar')
-
-    return i0, i1
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_construct.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_construct.py
deleted file mode 100644
index 61ac8d716c523d41d3b5c9942986e7f63ba69d8b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_construct.py
+++ /dev/null
@@ -1,1410 +0,0 @@
-"""Functions to construct sparse matrices and arrays
-"""
-
-__docformat__ = "restructuredtext en"
-
-__all__ = ['spdiags', 'eye', 'identity', 'kron', 'kronsum',
-           'hstack', 'vstack', 'bmat', 'rand', 'random', 'diags', 'block_diag',
-           'diags_array', 'block_array', 'eye_array', 'random_array']
-
-import numbers
-import math
-import numpy as np
-
-from scipy._lib._util import check_random_state, rng_integers
-from ._sputils import upcast, get_index_dtype, isscalarlike
-
-from ._sparsetools import csr_hstack
-from ._bsr import bsr_matrix, bsr_array
-from ._coo import coo_matrix, coo_array
-from ._csc import csc_matrix, csc_array
-from ._csr import csr_matrix, csr_array
-from ._dia import dia_matrix, dia_array
-
-from ._base import issparse, sparray
-
-
-def spdiags(data, diags, m=None, n=None, format=None):
-    """
-    Return a sparse matrix from diagonals.
-
-    Parameters
-    ----------
-    data : array_like
-        Matrix diagonals stored row-wise
-    diags : sequence of int or an int
-        Diagonals to set:
-
-        * k = 0  the main diagonal
-        * k > 0  the kth upper diagonal
-        * k < 0  the kth lower diagonal
-    m, n : int, tuple, optional
-        Shape of the result. If `n` is None and `m` is a given tuple,
-        the shape is this tuple. If omitted, the matrix is square and
-        its shape is len(data[0]).
-    format : str, optional
-        Format of the result. By default (format=None) an appropriate sparse
-        matrix format is returned. This choice is subject to change.
-
-    .. warning::
-
-        This function returns a sparse matrix -- not a sparse array.
-        You are encouraged to use ``diags_array`` to take advantage
-        of the sparse array functionality.
-
-    See Also
-    --------
-    diags_array : more convenient form of this function
-    diags : matrix version of diags_array
-    dia_matrix : the sparse DIAgonal format.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import spdiags
-    >>> data = np.array([[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]])
-    >>> diags = np.array([0, -1, 2])
-    >>> spdiags(data, diags, 4, 4).toarray()
-    array([[1, 0, 3, 0],
-           [1, 2, 0, 4],
-           [0, 2, 3, 0],
-           [0, 0, 3, 4]])
-
-    """
-    if m is None and n is None:
-        m = n = len(data[0])
-    elif n is None:
-        m, n = m
-    return dia_matrix((data, diags), shape=(m, n)).asformat(format)
-
-
-def diags_array(diagonals, /, *, offsets=0, shape=None, format=None, dtype=None):
-    """
-    Construct a sparse array from diagonals.
-
-    Parameters
-    ----------
-    diagonals : sequence of array_like
-        Sequence of arrays containing the array diagonals,
-        corresponding to `offsets`.
-    offsets : sequence of int or an int, optional
-        Diagonals to set:
-          - k = 0  the main diagonal (default)
-          - k > 0  the kth upper diagonal
-          - k < 0  the kth lower diagonal
-    shape : tuple of int, optional
-        Shape of the result. If omitted, a square array large enough
-        to contain the diagonals is returned.
-    format : {"dia", "csr", "csc", "lil", ...}, optional
-        Matrix format of the result. By default (format=None) an
-        appropriate sparse array format is returned. This choice is
-        subject to change.
-    dtype : dtype, optional
-        Data type of the array.
-
-    Notes
-    -----
-    The result from `diags_array` is the sparse equivalent of::
-
-        np.diag(diagonals[0], offsets[0])
-        + ...
-        + np.diag(diagonals[k], offsets[k])
-
-    Repeated diagonal offsets are disallowed.
-
-    .. versionadded:: 1.11
-
-    Examples
-    --------
-    >>> from scipy.sparse import diags_array
-    >>> diagonals = [[1, 2, 3, 4], [1, 2, 3], [1, 2]]
-    >>> diags_array(diagonals, offsets=[0, -1, 2]).toarray()
-    array([[1, 0, 1, 0],
-           [1, 2, 0, 2],
-           [0, 2, 3, 0],
-           [0, 0, 3, 4]])
-
-    Broadcasting of scalars is supported (but shape needs to be
-    specified):
-
-    >>> diags_array([1, -2, 1], offsets=[-1, 0, 1], shape=(4, 4)).toarray()
-    array([[-2.,  1.,  0.,  0.],
-           [ 1., -2.,  1.,  0.],
-           [ 0.,  1., -2.,  1.],
-           [ 0.,  0.,  1., -2.]])
-
-
-    If only one diagonal is wanted (as in `numpy.diag`), the following
-    works as well:
-
-    >>> diags_array([1, 2, 3], offsets=1).toarray()
-    array([[ 0.,  1.,  0.,  0.],
-           [ 0.,  0.,  2.,  0.],
-           [ 0.,  0.,  0.,  3.],
-           [ 0.,  0.,  0.,  0.]])
-    """
-    # if offsets is not a sequence, assume that there's only one diagonal
-    if isscalarlike(offsets):
-        # now check that there's actually only one diagonal
-        if len(diagonals) == 0 or isscalarlike(diagonals[0]):
-            diagonals = [np.atleast_1d(diagonals)]
-        else:
-            raise ValueError("Different number of diagonals and offsets.")
-    else:
-        diagonals = list(map(np.atleast_1d, diagonals))
-
-    offsets = np.atleast_1d(offsets)
-
-    # Basic check
-    if len(diagonals) != len(offsets):
-        raise ValueError("Different number of diagonals and offsets.")
-
-    # Determine shape, if omitted
-    if shape is None:
-        m = len(diagonals[0]) + abs(int(offsets[0]))
-        shape = (m, m)
-
-    # Determine data type, if omitted
-    if dtype is None:
-        dtype = np.common_type(*diagonals)
-
-    # Construct data array
-    m, n = shape
-
-    M = max([min(m + offset, n - offset) + max(0, offset)
-             for offset in offsets])
-    M = max(0, M)
-    data_arr = np.zeros((len(offsets), M), dtype=dtype)
-
-    K = min(m, n)
-
-    for j, diagonal in enumerate(diagonals):
-        offset = offsets[j]
-        k = max(0, offset)
-        length = min(m + offset, n - offset, K)
-        if length < 0:
-            raise ValueError("Offset %d (index %d) out of bounds" % (offset, j))
-        try:
-            data_arr[j, k:k+length] = diagonal[...,:length]
-        except ValueError as e:
-            if len(diagonal) != length and len(diagonal) != 1:
-                raise ValueError(
-                    "Diagonal length (index %d: %d at offset %d) does not "
-                    "agree with array size (%d, %d)." % (
-                    j, len(diagonal), offset, m, n)) from e
-            raise
-
-    return dia_array((data_arr, offsets), shape=(m, n)).asformat(format)
-
-
-def diags(diagonals, offsets=0, shape=None, format=None, dtype=None):
-    """
-    Construct a sparse matrix from diagonals.
-
-    .. warning::
-
-        This function returns a sparse matrix -- not a sparse array.
-        You are encouraged to use ``diags_array`` to take advantage
-        of the sparse array functionality.
-
-    Parameters
-    ----------
-    diagonals : sequence of array_like
-        Sequence of arrays containing the matrix diagonals,
-        corresponding to `offsets`.
-    offsets : sequence of int or an int, optional
-        Diagonals to set:
-          - k = 0  the main diagonal (default)
-          - k > 0  the kth upper diagonal
-          - k < 0  the kth lower diagonal
-    shape : tuple of int, optional
-        Shape of the result. If omitted, a square matrix large enough
-        to contain the diagonals is returned.
-    format : {"dia", "csr", "csc", "lil", ...}, optional
-        Matrix format of the result. By default (format=None) an
-        appropriate sparse matrix format is returned. This choice is
-        subject to change.
-    dtype : dtype, optional
-        Data type of the matrix.
-
-    See Also
-    --------
-    spdiags : construct matrix from diagonals
-    diags_array : construct sparse array instead of sparse matrix
-
-    Notes
-    -----
-    This function differs from `spdiags` in the way it handles
-    off-diagonals.
-
-    The result from `diags` is the sparse equivalent of::
-
-        np.diag(diagonals[0], offsets[0])
-        + ...
-        + np.diag(diagonals[k], offsets[k])
-
-    Repeated diagonal offsets are disallowed.
-
-    .. versionadded:: 0.11
-
-    Examples
-    --------
-    >>> from scipy.sparse import diags
-    >>> diagonals = [[1, 2, 3, 4], [1, 2, 3], [1, 2]]
-    >>> diags(diagonals, [0, -1, 2]).toarray()
-    array([[1, 0, 1, 0],
-           [1, 2, 0, 2],
-           [0, 2, 3, 0],
-           [0, 0, 3, 4]])
-
-    Broadcasting of scalars is supported (but shape needs to be
-    specified):
-
-    >>> diags([1, -2, 1], [-1, 0, 1], shape=(4, 4)).toarray()
-    array([[-2.,  1.,  0.,  0.],
-           [ 1., -2.,  1.,  0.],
-           [ 0.,  1., -2.,  1.],
-           [ 0.,  0.,  1., -2.]])
-
-
-    If only one diagonal is wanted (as in `numpy.diag`), the following
-    works as well:
-
-    >>> diags([1, 2, 3], 1).toarray()
-    array([[ 0.,  1.,  0.,  0.],
-           [ 0.,  0.,  2.,  0.],
-           [ 0.,  0.,  0.,  3.],
-           [ 0.,  0.,  0.,  0.]])
-    """
-    A = diags_array(diagonals, offsets=offsets, shape=shape, dtype=dtype)
-    return dia_matrix(A).asformat(format)
-
-
-def identity(n, dtype='d', format=None):
-    """Identity matrix in sparse format
-
-    Returns an identity matrix with shape (n,n) using a given
-    sparse format and dtype. This differs from `eye_array` in
-    that it has a square shape with ones only on the main diagonal.
-    It is thus the multiplicative identity. `eye_array` allows
-    rectangular shapes and the diagonal can be offset from the main one.
-
-    .. warning::
-
-        This function returns a sparse matrix -- not a sparse array.
-        You are encouraged to use ``eye_array`` to take advantage
-        of the sparse array functionality.
-
-    Parameters
-    ----------
-    n : int
-        Shape of the identity matrix.
-    dtype : dtype, optional
-        Data type of the matrix
-    format : str, optional
-        Sparse format of the result, e.g., format="csr", etc.
-
-    Examples
-    --------
-    >>> import scipy as sp
-    >>> sp.sparse.identity(3).toarray()
-    array([[ 1.,  0.,  0.],
-           [ 0.,  1.,  0.],
-           [ 0.,  0.,  1.]])
-    >>> sp.sparse.identity(3, dtype='int8', format='dia')
-    
-    >>> sp.sparse.eye_array(3, dtype='int8', format='dia')
-    
-
-    """
-    return eye(n, n, dtype=dtype, format=format)
-
-
-def eye_array(m, n=None, *, k=0, dtype=float, format=None):
-    """Identity matrix in sparse array format
-
-    Return a sparse array with ones on diagonal.
-    Specifically a sparse array (m x n) where the kth diagonal
-    is all ones and everything else is zeros.
-
-    Parameters
-    ----------
-    m : int or tuple of ints
-        Number of rows requested.
-    n : int, optional
-        Number of columns. Default: `m`.
-    k : int, optional
-        Diagonal to place ones on. Default: 0 (main diagonal).
-    dtype : dtype, optional
-        Data type of the array
-    format : str, optional (default: "dia")
-        Sparse format of the result, e.g., format="csr", etc.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy as sp
-    >>> sp.sparse.eye_array(3).toarray()
-    array([[ 1.,  0.,  0.],
-           [ 0.,  1.,  0.],
-           [ 0.,  0.,  1.]])
-    >>> sp.sparse.eye_array(3, dtype=np.int8)
-    
-
-    """
-    # TODO: delete next 15 lines [combine with _eye()] once spmatrix removed
-    return _eye(m, n, k, dtype, format)
-
-
-def _eye(m, n, k, dtype, format, as_sparray=True):
-    if as_sparray:
-        csr_sparse = csr_array
-        csc_sparse = csc_array
-        coo_sparse = coo_array
-        diags_sparse = diags_array
-    else:
-        csr_sparse = csr_matrix
-        csc_sparse = csc_matrix
-        coo_sparse = coo_matrix
-        diags_sparse = diags
-
-    if n is None:
-        n = m
-    m, n = int(m), int(n)
-
-    if m == n and k == 0:
-        # fast branch for special formats
-        if format in ['csr', 'csc']:
-            idx_dtype = get_index_dtype(maxval=n)
-            indptr = np.arange(n+1, dtype=idx_dtype)
-            indices = np.arange(n, dtype=idx_dtype)
-            data = np.ones(n, dtype=dtype)
-            cls = {'csr': csr_sparse, 'csc': csc_sparse}[format]
-            return cls((data, indices, indptr), (n, n))
-
-        elif format == 'coo':
-            idx_dtype = get_index_dtype(maxval=n)
-            row = np.arange(n, dtype=idx_dtype)
-            col = np.arange(n, dtype=idx_dtype)
-            data = np.ones(n, dtype=dtype)
-            return coo_sparse((data, (row, col)), (n, n))
-
-    data = np.ones((1, max(0, min(m + k, n))), dtype=dtype)
-    return diags_sparse(data, offsets=[k], shape=(m, n), dtype=dtype).asformat(format)
-
-
-def eye(m, n=None, k=0, dtype=float, format=None):
-    """Sparse matrix with ones on diagonal
-
-    Returns a sparse matrix (m x n) where the kth diagonal
-    is all ones and everything else is zeros.
-
-    Parameters
-    ----------
-    m : int
-        Number of rows in the matrix.
-    n : int, optional
-        Number of columns. Default: `m`.
-    k : int, optional
-        Diagonal to place ones on. Default: 0 (main diagonal).
-    dtype : dtype, optional
-        Data type of the matrix.
-    format : str, optional
-        Sparse format of the result, e.g., format="csr", etc.
-
-    .. warning::
-
-        This function returns a sparse matrix -- not a sparse array.
-        You are encouraged to use ``eye_array`` to take advantage
-        of the sparse array functionality.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy as sp
-    >>> sp.sparse.eye(3).toarray()
-    array([[ 1.,  0.,  0.],
-           [ 0.,  1.,  0.],
-           [ 0.,  0.,  1.]])
-    >>> sp.sparse.eye(3, dtype=np.int8)
-    
-
-    """
-    return _eye(m, n, k, dtype, format, False)
-
-
-def kron(A, B, format=None):
-    """kronecker product of sparse matrices A and B
-
-    Parameters
-    ----------
-    A : sparse or dense matrix
-        first matrix of the product
-    B : sparse or dense matrix
-        second matrix of the product
-    format : str, optional (default: 'bsr' or 'coo')
-        format of the result (e.g. "csr")
-        If None, choose 'bsr' for relatively dense array and 'coo' for others
-
-    Returns
-    -------
-    kronecker product in a sparse format.
-    Returns a sparse matrix unless either A or B is a
-    sparse array in which case returns a sparse array.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy as sp
-    >>> A = sp.sparse.csr_array(np.array([[0, 2], [5, 0]]))
-    >>> B = sp.sparse.csr_array(np.array([[1, 2], [3, 4]]))
-    >>> sp.sparse.kron(A, B).toarray()
-    array([[ 0,  0,  2,  4],
-           [ 0,  0,  6,  8],
-           [ 5, 10,  0,  0],
-           [15, 20,  0,  0]])
-
-    >>> sp.sparse.kron(A, [[1, 2], [3, 4]]).toarray()
-    array([[ 0,  0,  2,  4],
-           [ 0,  0,  6,  8],
-           [ 5, 10,  0,  0],
-           [15, 20,  0,  0]])
-
-    """
-    # TODO: delete next 10 lines and replace _sparse with _array when spmatrix removed
-    if isinstance(A, sparray) or isinstance(B, sparray):
-        # convert to local variables
-        bsr_sparse = bsr_array
-        csr_sparse = csr_array
-        coo_sparse = coo_array
-    else:  # use spmatrix
-        bsr_sparse = bsr_matrix
-        csr_sparse = csr_matrix
-        coo_sparse = coo_matrix
-
-    B = coo_sparse(B)
-    if B.ndim != 2:
-        raise ValueError(f"kron requires 2D input arrays. `B` is {B.ndim}D.")
-
-    # B is fairly dense, use BSR
-    if (format is None or format == "bsr") and 2*B.nnz >= B.shape[0] * B.shape[1]:
-        A = csr_sparse(A,copy=True)
-        if A.ndim != 2:
-            raise ValueError(f"kron requires 2D input arrays. `A` is {A.ndim}D.")
-        output_shape = (A.shape[0]*B.shape[0], A.shape[1]*B.shape[1])
-
-        if A.nnz == 0 or B.nnz == 0:
-            # kronecker product is the zero matrix
-            return coo_sparse(output_shape).asformat(format)
-
-        B = B.toarray()
-        data = A.data.repeat(B.size).reshape(-1,B.shape[0],B.shape[1])
-        data = data * B
-
-        return bsr_sparse((data,A.indices,A.indptr), shape=output_shape)
-    else:
-        # use COO
-        A = coo_sparse(A)
-        if A.ndim != 2:
-            raise ValueError(f"kron requires 2D input arrays. `A` is {A.ndim}D.")
-        output_shape = (A.shape[0]*B.shape[0], A.shape[1]*B.shape[1])
-
-        if A.nnz == 0 or B.nnz == 0:
-            # kronecker product is the zero matrix
-            return coo_sparse(output_shape).asformat(format)
-
-        # expand entries of a into blocks
-        row = A.row.repeat(B.nnz)
-        col = A.col.repeat(B.nnz)
-        data = A.data.repeat(B.nnz)
-
-        if max(A.shape[0]*B.shape[0], A.shape[1]*B.shape[1]) > np.iinfo('int32').max:
-            row = row.astype(np.int64)
-            col = col.astype(np.int64)
-
-        row *= B.shape[0]
-        col *= B.shape[1]
-
-        # increment block indices
-        row,col = row.reshape(-1,B.nnz),col.reshape(-1,B.nnz)
-        row += B.row
-        col += B.col
-        row,col = row.reshape(-1),col.reshape(-1)
-
-        # compute block entries
-        data = data.reshape(-1,B.nnz) * B.data
-        data = data.reshape(-1)
-
-        return coo_sparse((data,(row,col)), shape=output_shape).asformat(format)
-
-
-def kronsum(A, B, format=None):
-    """kronecker sum of square sparse matrices A and B
-
-    Kronecker sum of two sparse matrices is a sum of two Kronecker
-    products kron(I_n,A) + kron(B,I_m) where A has shape (m,m)
-    and B has shape (n,n) and I_m and I_n are identity matrices
-    of shape (m,m) and (n,n), respectively.
-
-    Parameters
-    ----------
-    A
-        square matrix
-    B
-        square matrix
-    format : str
-        format of the result (e.g. "csr")
-
-    Returns
-    -------
-    kronecker sum in a sparse matrix format
-
-    """
-    # TODO: delete next 8 lines and replace _sparse with _array when spmatrix removed
-    if isinstance(A, sparray) or isinstance(B, sparray):
-        # convert to local variables
-        coo_sparse = coo_array
-        identity_sparse = eye_array
-    else:
-        coo_sparse = coo_matrix
-        identity_sparse = identity
-
-    A = coo_sparse(A)
-    B = coo_sparse(B)
-
-    if A.ndim != 2:
-        raise ValueError(f"kronsum requires 2D inputs. `A` is {A.ndim}D.")
-    if B.ndim != 2:
-        raise ValueError(f"kronsum requires 2D inputs. `B` is {B.ndim}D.")
-    if A.shape[0] != A.shape[1]:
-        raise ValueError('A is not square')
-    if B.shape[0] != B.shape[1]:
-        raise ValueError('B is not square')
-
-    dtype = upcast(A.dtype, B.dtype)
-
-    I_n = identity_sparse(A.shape[0], dtype=dtype)
-    I_m = identity_sparse(B.shape[0], dtype=dtype)
-    L = kron(I_m, A, format='coo')
-    R = kron(B, I_n, format='coo')
-
-    return (L + R).asformat(format)
-
-
-def _compressed_sparse_stack(blocks, axis, return_spmatrix):
-    """
-    Stacking fast path for CSR/CSC matrices or arrays
-    (i) vstack for CSR, (ii) hstack for CSC.
-    """
-    other_axis = 1 if axis == 0 else 0
-    data = np.concatenate([b.data for b in blocks])
-    constant_dim = blocks[0]._shape_as_2d[other_axis]
-    idx_dtype = get_index_dtype(arrays=[b.indptr for b in blocks],
-                                maxval=max(data.size, constant_dim))
-    indices = np.empty(data.size, dtype=idx_dtype)
-    indptr = np.empty(sum(b._shape_as_2d[axis] for b in blocks) + 1, dtype=idx_dtype)
-    last_indptr = idx_dtype(0)
-    sum_dim = 0
-    sum_indices = 0
-    for b in blocks:
-        if b._shape_as_2d[other_axis] != constant_dim:
-            raise ValueError(f'incompatible dimensions for axis {other_axis}')
-        indices[sum_indices:sum_indices+b.indices.size] = b.indices
-        sum_indices += b.indices.size
-        idxs = slice(sum_dim, sum_dim + b._shape_as_2d[axis])
-        indptr[idxs] = b.indptr[:-1]
-        indptr[idxs] += last_indptr
-        sum_dim += b._shape_as_2d[axis]
-        last_indptr += b.indptr[-1]
-    indptr[-1] = last_indptr
-    # TODO remove this if-structure when sparse matrices removed
-    if return_spmatrix:
-        if axis == 0:
-            return csr_matrix((data, indices, indptr),
-                              shape=(sum_dim, constant_dim))
-        else:
-            return csc_matrix((data, indices, indptr),
-                              shape=(constant_dim, sum_dim))
-
-    if axis == 0:
-        return csr_array((data, indices, indptr),
-                          shape=(sum_dim, constant_dim))
-    else:
-        return csc_array((data, indices, indptr),
-                          shape=(constant_dim, sum_dim))
-
-
-def _stack_along_minor_axis(blocks, axis):
-    """
-    Stacking fast path for CSR/CSC matrices along the minor axis
-    (i) hstack for CSR, (ii) vstack for CSC.
-    """
-    n_blocks = len(blocks)
-    if n_blocks == 0:
-        raise ValueError('Missing block matrices')
-
-    if n_blocks == 1:
-        return blocks[0]
-
-    # check for incompatible dimensions
-    other_axis = 1 if axis == 0 else 0
-    other_axis_dims = {b._shape_as_2d[other_axis] for b in blocks}
-    if len(other_axis_dims) > 1:
-        raise ValueError(f'Mismatching dimensions along axis {other_axis}: '
-                         f'{other_axis_dims}')
-    constant_dim, = other_axis_dims
-
-    # Do the stacking
-    indptr_list = [b.indptr for b in blocks]
-    data_cat = np.concatenate([b.data for b in blocks])
-
-    # Need to check if any indices/indptr, would be too large post-
-    # concatenation for np.int32:
-    # - The max value of indices is the output array's stacking-axis length - 1
-    # - The max value in indptr is the number of non-zero entries. This is
-    #   exceedingly unlikely to require int64, but is checked out of an
-    #   abundance of caution.
-    sum_dim = sum(b._shape_as_2d[axis] for b in blocks)
-    nnz = sum(len(b.indices) for b in blocks)
-    idx_dtype = get_index_dtype(maxval=max(sum_dim - 1, nnz))
-    stack_dim_cat = np.array([b._shape_as_2d[axis] for b in blocks], dtype=idx_dtype)
-    if data_cat.size > 0:
-        indptr_cat = np.concatenate(indptr_list).astype(idx_dtype)
-        indices_cat = (np.concatenate([b.indices for b in blocks])
-                       .astype(idx_dtype))
-        indptr = np.empty(constant_dim + 1, dtype=idx_dtype)
-        indices = np.empty_like(indices_cat)
-        data = np.empty_like(data_cat)
-        csr_hstack(n_blocks, constant_dim, stack_dim_cat,
-                   indptr_cat, indices_cat, data_cat,
-                   indptr, indices, data)
-    else:
-        indptr = np.zeros(constant_dim + 1, dtype=idx_dtype)
-        indices = np.empty(0, dtype=idx_dtype)
-        data = np.empty(0, dtype=data_cat.dtype)
-
-    if axis == 0:
-        return blocks[0]._csc_container((data, indices, indptr),
-                          shape=(sum_dim, constant_dim))
-    else:
-        return blocks[0]._csr_container((data, indices, indptr),
-                          shape=(constant_dim, sum_dim))
-
-
-def hstack(blocks, format=None, dtype=None):
-    """
-    Stack sparse matrices horizontally (column wise)
-
-    Parameters
-    ----------
-    blocks
-        sequence of sparse matrices with compatible shapes
-    format : str
-        sparse format of the result (e.g., "csr")
-        by default an appropriate sparse matrix format is returned.
-        This choice is subject to change.
-    dtype : dtype, optional
-        The data-type of the output matrix. If not given, the dtype is
-        determined from that of `blocks`.
-
-    Returns
-    -------
-    new_array : sparse matrix or array
-        If any block in blocks is a sparse array, return a sparse array.
-        Otherwise return a sparse matrix.
-
-        If you want a sparse array built from blocks that are not sparse
-        arrays, use `block(hstack(blocks))` or convert one block
-        e.g. `blocks[0] = csr_array(blocks[0])`.
-
-    See Also
-    --------
-    vstack : stack sparse matrices vertically (row wise)
-
-    Examples
-    --------
-    >>> from scipy.sparse import coo_matrix, hstack
-    >>> A = coo_matrix([[1, 2], [3, 4]])
-    >>> B = coo_matrix([[5], [6]])
-    >>> hstack([A,B]).toarray()
-    array([[1, 2, 5],
-           [3, 4, 6]])
-
-    """
-    blocks = np.asarray(blocks, dtype='object')
-    if any(isinstance(b, sparray) for b in blocks.flat):
-        return _block([blocks], format, dtype)
-    else:
-        return _block([blocks], format, dtype, return_spmatrix=True)
-
-
-def vstack(blocks, format=None, dtype=None):
-    """
-    Stack sparse arrays vertically (row wise)
-
-    Parameters
-    ----------
-    blocks
-        sequence of sparse arrays with compatible shapes
-    format : str, optional
-        sparse format of the result (e.g., "csr")
-        by default an appropriate sparse array format is returned.
-        This choice is subject to change.
-    dtype : dtype, optional
-        The data-type of the output array. If not given, the dtype is
-        determined from that of `blocks`.
-
-    Returns
-    -------
-    new_array : sparse matrix or array
-        If any block in blocks is a sparse array, return a sparse array.
-        Otherwise return a sparse matrix.
-
-        If you want a sparse array built from blocks that are not sparse
-        arrays, use `block(vstack(blocks))` or convert one block
-        e.g. `blocks[0] = csr_array(blocks[0])`.
-
-    See Also
-    --------
-    hstack : stack sparse matrices horizontally (column wise)
-
-    Examples
-    --------
-    >>> from scipy.sparse import coo_array, vstack
-    >>> A = coo_array([[1, 2], [3, 4]])
-    >>> B = coo_array([[5, 6]])
-    >>> vstack([A, B]).toarray()
-    array([[1, 2],
-           [3, 4],
-           [5, 6]])
-
-    """
-    blocks = np.asarray(blocks, dtype='object')
-    if any(isinstance(b, sparray) for b in blocks.flat):
-        return _block([[b] for b in blocks], format, dtype)
-    else:
-        return _block([[b] for b in blocks], format, dtype, return_spmatrix=True)
-
-
-def bmat(blocks, format=None, dtype=None):
-    """
-    Build a sparse array or matrix from sparse sub-blocks
-
-    Note: `block_array` is preferred over `bmat`. They are the same function
-    except that `bmat` can return a deprecated sparse matrix.
-    `bmat` returns a coo_matrix if none of the inputs are a sparse array.
-
-    .. warning::
-
-        This function returns a sparse matrix -- not a sparse array.
-        You are encouraged to use ``block_array`` to take advantage
-        of the sparse array functionality.
-
-    Parameters
-    ----------
-    blocks : array_like
-        Grid of sparse matrices with compatible shapes.
-        An entry of None implies an all-zero matrix.
-    format : {'bsr', 'coo', 'csc', 'csr', 'dia', 'dok', 'lil'}, optional
-        The sparse format of the result (e.g. "csr"). By default an
-        appropriate sparse matrix format is returned.
-        This choice is subject to change.
-    dtype : dtype, optional
-        The data-type of the output matrix. If not given, the dtype is
-        determined from that of `blocks`.
-
-    Returns
-    -------
-    bmat : sparse matrix or array
-        If any block in blocks is a sparse array, return a sparse array.
-        Otherwise return a sparse matrix.
-
-        If you want a sparse array built from blocks that are not sparse
-        arrays, use `block_array()`.
-
-    See Also
-    --------
-    block_array
-
-    Examples
-    --------
-    >>> from scipy.sparse import coo_array, bmat
-    >>> A = coo_array([[1, 2], [3, 4]])
-    >>> B = coo_array([[5], [6]])
-    >>> C = coo_array([[7]])
-    >>> bmat([[A, B], [None, C]]).toarray()
-    array([[1, 2, 5],
-           [3, 4, 6],
-           [0, 0, 7]])
-
-    >>> bmat([[A, None], [None, C]]).toarray()
-    array([[1, 2, 0],
-           [3, 4, 0],
-           [0, 0, 7]])
-
-    """
-    blocks = np.asarray(blocks, dtype='object')
-    if any(isinstance(b, sparray) for b in blocks.flat):
-        return _block(blocks, format, dtype)
-    else:
-        return _block(blocks, format, dtype, return_spmatrix=True)
-
-
-def block_array(blocks, *, format=None, dtype=None):
-    """
-    Build a sparse array from sparse sub-blocks
-
-    Parameters
-    ----------
-    blocks : array_like
-        Grid of sparse arrays with compatible shapes.
-        An entry of None implies an all-zero array.
-    format : {'bsr', 'coo', 'csc', 'csr', 'dia', 'dok', 'lil'}, optional
-        The sparse format of the result (e.g. "csr"). By default an
-        appropriate sparse array format is returned.
-        This choice is subject to change.
-    dtype : dtype, optional
-        The data-type of the output array. If not given, the dtype is
-        determined from that of `blocks`.
-
-    Returns
-    -------
-    block : sparse array
-
-    See Also
-    --------
-    block_diag : specify blocks along the main diagonals
-    diags : specify (possibly offset) diagonals
-
-    Examples
-    --------
-    >>> from scipy.sparse import coo_array, block_array
-    >>> A = coo_array([[1, 2], [3, 4]])
-    >>> B = coo_array([[5], [6]])
-    >>> C = coo_array([[7]])
-    >>> block_array([[A, B], [None, C]]).toarray()
-    array([[1, 2, 5],
-           [3, 4, 6],
-           [0, 0, 7]])
-
-    >>> block_array([[A, None], [None, C]]).toarray()
-    array([[1, 2, 0],
-           [3, 4, 0],
-           [0, 0, 7]])
-
-    """
-    return _block(blocks, format, dtype)
-
-
-def _block(blocks, format, dtype, return_spmatrix=False):
-    blocks = np.asarray(blocks, dtype='object')
-
-    if blocks.ndim != 2:
-        raise ValueError('blocks must be 2-D')
-
-    M,N = blocks.shape
-
-    # check for fast path cases
-    if (format in (None, 'csr') and
-        all(issparse(b) and b.format == 'csr' for b in blocks.flat)
-    ):
-        if N > 1:
-            # stack along columns (axis 1): must have shape (M, 1)
-            blocks = [[_stack_along_minor_axis(blocks[b, :], 1)] for b in range(M)]
-            blocks = np.asarray(blocks, dtype='object')
-
-        # stack along rows (axis 0):
-        A = _compressed_sparse_stack(blocks[:, 0], 0, return_spmatrix)
-        if dtype is not None:
-            A = A.astype(dtype)
-        return A
-    elif (format in (None, 'csc') and
-          all(issparse(b) and b.format == 'csc' for b in blocks.flat)
-    ):
-        if M > 1:
-            # stack along rows (axis 0): must have shape (1, N)
-            blocks = [[_stack_along_minor_axis(blocks[:, b], 0) for b in range(N)]]
-            blocks = np.asarray(blocks, dtype='object')
-
-        # stack along columns (axis 1):
-        A = _compressed_sparse_stack(blocks[0, :], 1, return_spmatrix)
-        if dtype is not None:
-            A = A.astype(dtype)
-        return A
-
-    block_mask = np.zeros(blocks.shape, dtype=bool)
-    brow_lengths = np.zeros(M, dtype=np.int64)
-    bcol_lengths = np.zeros(N, dtype=np.int64)
-
-    # convert everything to COO format
-    for i in range(M):
-        for j in range(N):
-            if blocks[i,j] is not None:
-                A = coo_array(blocks[i,j])
-                blocks[i,j] = A
-                block_mask[i,j] = True
-
-                if brow_lengths[i] == 0:
-                    brow_lengths[i] = A._shape_as_2d[0]
-                elif brow_lengths[i] != A._shape_as_2d[0]:
-                    msg = (f'blocks[{i},:] has incompatible row dimensions. '
-                           f'Got blocks[{i},{j}].shape[0] == {A._shape_as_2d[0]}, '
-                           f'expected {brow_lengths[i]}.')
-                    raise ValueError(msg)
-
-                if bcol_lengths[j] == 0:
-                    bcol_lengths[j] = A._shape_as_2d[1]
-                elif bcol_lengths[j] != A._shape_as_2d[1]:
-                    msg = (f'blocks[:,{j}] has incompatible column '
-                           f'dimensions. '
-                           f'Got blocks[{i},{j}].shape[1] == {A._shape_as_2d[1]}, '
-                           f'expected {bcol_lengths[j]}.')
-                    raise ValueError(msg)
-
-    nnz = sum(block.nnz for block in blocks[block_mask])
-    if dtype is None:
-        all_dtypes = [blk.dtype for blk in blocks[block_mask]]
-        dtype = upcast(*all_dtypes) if all_dtypes else None
-
-    row_offsets = np.append(0, np.cumsum(brow_lengths))
-    col_offsets = np.append(0, np.cumsum(bcol_lengths))
-
-    shape = (row_offsets[-1], col_offsets[-1])
-
-    data = np.empty(nnz, dtype=dtype)
-    idx_dtype = get_index_dtype(maxval=max(shape))
-    row = np.empty(nnz, dtype=idx_dtype)
-    col = np.empty(nnz, dtype=idx_dtype)
-
-    nnz = 0
-    ii, jj = np.nonzero(block_mask)
-    for i, j in zip(ii, jj):
-        B = blocks[i, j]
-        idx = slice(nnz, nnz + B.nnz)
-        data[idx] = B.data
-        np.add(B.row, row_offsets[i], out=row[idx], dtype=idx_dtype)
-        np.add(B.col, col_offsets[j], out=col[idx], dtype=idx_dtype)
-        nnz += B.nnz
-
-    if return_spmatrix:
-        return coo_matrix((data, (row, col)), shape=shape).asformat(format)
-    return coo_array((data, (row, col)), shape=shape).asformat(format)
-
-
-def block_diag(mats, format=None, dtype=None):
-    """
-    Build a block diagonal sparse matrix or array from provided matrices.
-
-    Parameters
-    ----------
-    mats : sequence of matrices or arrays
-        Input matrices or arrays.
-    format : str, optional
-        The sparse format of the result (e.g., "csr"). If not given, the result
-        is returned in "coo" format.
-    dtype : dtype specifier, optional
-        The data-type of the output. If not given, the dtype is
-        determined from that of `blocks`.
-
-    Returns
-    -------
-    res : sparse matrix or array
-        If at least one input is a sparse array, the output is a sparse array.
-        Otherwise the output is a sparse matrix.
-
-    Notes
-    -----
-
-    .. versionadded:: 0.11.0
-
-    See Also
-    --------
-    block_array
-    diags_array
-
-    Examples
-    --------
-    >>> from scipy.sparse import coo_array, block_diag
-    >>> A = coo_array([[1, 2], [3, 4]])
-    >>> B = coo_array([[5], [6]])
-    >>> C = coo_array([[7]])
-    >>> block_diag((A, B, C)).toarray()
-    array([[1, 2, 0, 0],
-           [3, 4, 0, 0],
-           [0, 0, 5, 0],
-           [0, 0, 6, 0],
-           [0, 0, 0, 7]])
-
-    """
-    if any(isinstance(a, sparray) for a in mats):
-        container = coo_array
-    else:
-        container = coo_matrix
-
-    row = []
-    col = []
-    data = []
-    r_idx = 0
-    c_idx = 0
-    for a in mats:
-        if isinstance(a, (list, numbers.Number)):
-            a = coo_array(np.atleast_2d(a))
-        if issparse(a):
-            a = a.tocoo()
-            nrows, ncols = a._shape_as_2d
-            row.append(a.row + r_idx)
-            col.append(a.col + c_idx)
-            data.append(a.data)
-        else:
-            nrows, ncols = a.shape
-            a_row, a_col = np.divmod(np.arange(nrows*ncols), ncols)
-            row.append(a_row + r_idx)
-            col.append(a_col + c_idx)
-            data.append(a.ravel())
-        r_idx += nrows
-        c_idx += ncols
-    row = np.concatenate(row)
-    col = np.concatenate(col)
-    data = np.concatenate(data)
-    return container((data, (row, col)),
-                      shape=(r_idx, c_idx),
-                      dtype=dtype).asformat(format)
-
-
-def random_array(shape, *, density=0.01, format='coo', dtype=None,
-                 random_state=None, data_sampler=None):
-    """Return a sparse array of uniformly random numbers in [0, 1)
-
-    Returns a sparse array with the given shape and density
-    where values are generated uniformly randomly in the range [0, 1).
-
-    .. warning::
-
-        Since numpy 1.17, passing a ``np.random.Generator`` (e.g.
-        ``np.random.default_rng``) for ``random_state`` will lead to much
-        faster execution times.
-
-        A much slower implementation is used by default for backwards
-        compatibility.
-
-    Parameters
-    ----------
-    shape : int or tuple of ints
-        shape of the array
-    density : real, optional (default: 0.01)
-        density of the generated matrix: density equal to one means a full
-        matrix, density of 0 means a matrix with no non-zero items.
-    format : str, optional (default: 'coo')
-        sparse matrix format.
-    dtype : dtype, optional (default: np.float64)
-        type of the returned matrix values.
-    random_state : {None, int, `Generator`, `RandomState`}, optional
-        A random number generator to determine nonzero structure. We recommend using
-        a `numpy.random.Generator` manually provided for every call as it is much
-        faster than RandomState.
-
-        - If `None` (or `np.random`), the `numpy.random.RandomState`
-          singleton is used.
-        - If an int, a new ``Generator`` instance is used,
-          seeded with the int.
-        - If a ``Generator`` or ``RandomState`` instance then
-          that instance is used.
-
-        This random state will be used for sampling `indices` (the sparsity
-        structure), and by default for the data values too (see `data_sampler`).
-
-    data_sampler : callable, optional (default depends on dtype)
-        Sampler of random data values with keyword arg `size`.
-        This function should take a single keyword argument `size` specifying
-        the length of its returned ndarray. It is used to generate the nonzero
-        values in the matrix after the locations of those values are chosen.
-        By default, uniform [0, 1) random values are used unless `dtype` is
-        an integer (default uniform integers from that dtype) or
-        complex (default uniform over the unit square in the complex plane).
-        For these, the `random_state` rng is used e.g. `rng.uniform(size=size)`.
-
-    Returns
-    -------
-    res : sparse array
-
-    Examples
-    --------
-
-    Passing a ``np.random.Generator`` instance for better performance:
-
-    >>> import numpy as np
-    >>> import scipy as sp
-    >>> rng = np.random.default_rng()
-
-    Default sampling uniformly from [0, 1):
-
-    >>> S = sp.sparse.random_array((3, 4), density=0.25, random_state=rng)
-
-    Providing a sampler for the values:
-
-    >>> rvs = sp.stats.poisson(25, loc=10).rvs
-    >>> S = sp.sparse.random_array((3, 4), density=0.25,
-    ...                            random_state=rng, data_sampler=rvs)
-    >>> S.toarray()
-    array([[ 36.,   0.,  33.,   0.],   # random
-           [  0.,   0.,   0.,   0.],
-           [  0.,   0.,  36.,   0.]])
-
-    Building a custom distribution.
-    This example builds a squared normal from np.random:
-
-    >>> def np_normal_squared(size=None, random_state=rng):
-    ...     return random_state.standard_normal(size) ** 2
-    >>> S = sp.sparse.random_array((3, 4), density=0.25, random_state=rng,
-    ...                      data_sampler=np_normal_squared)
-
-    Or we can build it from sp.stats style rvs functions:
-
-    >>> def sp_stats_normal_squared(size=None, random_state=rng):
-    ...     std_normal = sp.stats.distributions.norm_gen().rvs
-    ...     return std_normal(size=size, random_state=random_state) ** 2
-    >>> S = sp.sparse.random_array((3, 4), density=0.25, random_state=rng,
-    ...                      data_sampler=sp_stats_normal_squared)
-
-    Or we can subclass sp.stats rv_continous or rv_discrete:
-
-    >>> class NormalSquared(sp.stats.rv_continuous):
-    ...     def _rvs(self,  size=None, random_state=rng):
-    ...         return random_state.standard_normal(size) ** 2
-    >>> X = NormalSquared()
-    >>> Y = X().rvs
-    >>> S = sp.sparse.random_array((3, 4), density=0.25,
-    ...                            random_state=rng, data_sampler=Y)
-    """
-    # Use the more efficient RNG by default.
-    if random_state is None:
-        random_state = np.random.default_rng()
-    data, ind = _random(shape, density, format, dtype, random_state, data_sampler)
-    return coo_array((data, ind), shape=shape).asformat(format)
-
-
-def _random(shape, density=0.01, format=None, dtype=None,
-            random_state=None, data_sampler=None):
-    if density < 0 or density > 1:
-        raise ValueError("density expected to be 0 <= density <= 1")
-
-    tot_prod = math.prod(shape)  # use `math` for when prod is >= 2**64
-
-    # Number of non zero values
-    size = int(round(density * tot_prod))
-
-    rng = check_random_state(random_state)
-
-    if data_sampler is None:
-        if np.issubdtype(dtype, np.integer):
-            def data_sampler(size):
-                return rng_integers(rng,
-                                    np.iinfo(dtype).min,
-                                    np.iinfo(dtype).max,
-                                    size,
-                                    dtype=dtype)
-        elif np.issubdtype(dtype, np.complexfloating):
-            def data_sampler(size):
-                return (rng.uniform(size=size) +
-                        rng.uniform(size=size) * 1j)
-        else:
-            data_sampler = rng.uniform
-
-    # rng.choice uses int64 if first arg is an int
-    if tot_prod < np.iinfo(np.int64).max:
-        raveled_ind = rng.choice(tot_prod, size=size, replace=False)
-        ind = np.unravel_index(raveled_ind, shape=shape, order='F')
-    else:
-        # for ravel indices bigger than dtype max, use sets to remove duplicates
-        ndim = len(shape)
-        seen = set()
-        while len(seen) < size:
-            dsize = size - len(seen)
-            seen.update(map(tuple, rng_integers(rng, shape, size=(dsize, ndim))))
-        ind = tuple(np.array(list(seen)).T)
-
-    # size kwarg allows eg data_sampler=partial(np.random.poisson, lam=5)
-    vals = data_sampler(size=size).astype(dtype, copy=False)
-    return vals, ind
-
-
-def random(m, n, density=0.01, format='coo', dtype=None,
-           random_state=None, data_rvs=None):
-    """Generate a sparse matrix of the given shape and density with randomly
-    distributed values.
-
-    .. warning::
-
-        Since numpy 1.17, passing a ``np.random.Generator`` (e.g.
-        ``np.random.default_rng``) for ``random_state`` will lead to much
-        faster execution times.
-
-        A much slower implementation is used by default for backwards
-        compatibility.
-
-    .. warning::
-
-        This function returns a sparse matrix -- not a sparse array.
-        You are encouraged to use ``random_array`` to take advantage of the
-        sparse array functionality.
-
-    Parameters
-    ----------
-    m, n : int
-        shape of the matrix
-    density : real, optional
-        density of the generated matrix: density equal to one means a full
-        matrix, density of 0 means a matrix with no non-zero items.
-    format : str, optional
-        sparse matrix format.
-    dtype : dtype, optional
-        type of the returned matrix values.
-    random_state : {None, int, `numpy.random.Generator`,
-                    `numpy.random.RandomState`}, optional
-
-        - If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-          singleton is used.
-        - If `seed` is an int, a new ``RandomState`` instance is used,
-          seeded with `seed`.
-        - If `seed` is already a ``Generator`` or ``RandomState`` instance then
-          that instance is used.
-
-        This random state will be used for sampling the sparsity structure, but
-        not necessarily for sampling the values of the structurally nonzero
-        entries of the matrix.
-    data_rvs : callable, optional
-        Samples a requested number of random values.
-        This function should take a single argument specifying the length
-        of the ndarray that it will return. The structurally nonzero entries
-        of the sparse random matrix will be taken from the array sampled
-        by this function. By default, uniform [0, 1) random values will be
-        sampled using the same random state as is used for sampling
-        the sparsity structure.
-
-    Returns
-    -------
-    res : sparse matrix
-
-    See Also
-    --------
-    random_array : constructs sparse arrays instead of sparse matrices
-
-    Examples
-    --------
-
-    Passing a ``np.random.Generator`` instance for better performance:
-
-    >>> import scipy as sp
-    >>> import numpy as np
-    >>> rng = np.random.default_rng()
-    >>> S = sp.sparse.random(3, 4, density=0.25, random_state=rng)
-
-    Providing a sampler for the values:
-
-    >>> rvs = sp.stats.poisson(25, loc=10).rvs
-    >>> S = sp.sparse.random(3, 4, density=0.25, random_state=rng, data_rvs=rvs)
-    >>> S.toarray()
-    array([[ 36.,   0.,  33.,   0.],   # random
-           [  0.,   0.,   0.,   0.],
-           [  0.,   0.,  36.,   0.]])
-
-    Building a custom distribution.
-    This example builds a squared normal from np.random:
-
-    >>> def np_normal_squared(size=None, random_state=rng):
-    ...     return random_state.standard_normal(size) ** 2
-    >>> S = sp.sparse.random(3, 4, density=0.25, random_state=rng,
-    ...                      data_rvs=np_normal_squared)
-
-    Or we can build it from sp.stats style rvs functions:
-
-    >>> def sp_stats_normal_squared(size=None, random_state=rng):
-    ...     std_normal = sp.stats.distributions.norm_gen().rvs
-    ...     return std_normal(size=size, random_state=random_state) ** 2
-    >>> S = sp.sparse.random(3, 4, density=0.25, random_state=rng,
-    ...                      data_rvs=sp_stats_normal_squared)
-
-    Or we can subclass sp.stats rv_continous or rv_discrete:
-
-    >>> class NormalSquared(sp.stats.rv_continuous):
-    ...     def _rvs(self,  size=None, random_state=rng):
-    ...         return random_state.standard_normal(size) ** 2
-    >>> X = NormalSquared()
-    >>> Y = X()  # get a frozen version of the distribution
-    >>> S = sp.sparse.random(3, 4, density=0.25, random_state=rng, data_rvs=Y.rvs)
-    """
-    if n is None:
-        n = m
-    m, n = int(m), int(n)
-    # make keyword syntax work for data_rvs e.g. data_rvs(size=7)
-    if data_rvs is not None:
-        def data_rvs_kw(size):
-            return data_rvs(size)
-    else:
-        data_rvs_kw = None
-    vals, ind = _random((m, n), density, format, dtype, random_state, data_rvs_kw)
-    return coo_matrix((vals, ind), shape=(m, n)).asformat(format)
-
-
-def rand(m, n, density=0.01, format="coo", dtype=None, random_state=None):
-    """Generate a sparse matrix of the given shape and density with uniformly
-    distributed values.
-
-    .. warning::
-
-        This function returns a sparse matrix -- not a sparse array.
-        You are encouraged to use ``random_array`` to take advantage
-        of the sparse array functionality.
-
-    Parameters
-    ----------
-    m, n : int
-        shape of the matrix
-    density : real, optional
-        density of the generated matrix: density equal to one means a full
-        matrix, density of 0 means a matrix with no non-zero items.
-    format : str, optional
-        sparse matrix format.
-    dtype : dtype, optional
-        type of the returned matrix values.
-    random_state : {None, int, `numpy.random.Generator`,
-                    `numpy.random.RandomState`}, optional
-
-        If `seed` is None (or `np.random`), the `numpy.random.RandomState`
-        singleton is used.
-        If `seed` is an int, a new ``RandomState`` instance is used,
-        seeded with `seed`.
-        If `seed` is already a ``Generator`` or ``RandomState`` instance then
-        that instance is used.
-
-    Returns
-    -------
-    res : sparse matrix
-
-    Notes
-    -----
-    Only float types are supported for now.
-
-    See Also
-    --------
-    random : Similar function allowing a custom random data sampler
-    random_array : Similar to random() but returns a sparse array
-
-    Examples
-    --------
-    >>> from scipy.sparse import rand
-    >>> matrix = rand(3, 4, density=0.25, format="csr", random_state=42)
-    >>> matrix
-    
-    >>> matrix.toarray()
-    array([[0.05641158, 0.        , 0.        , 0.65088847],  # random
-           [0.        , 0.        , 0.        , 0.14286682],
-           [0.        , 0.        , 0.        , 0.        ]])
-
-    """
-    return random(m, n, density, format, dtype, random_state)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_coo.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_coo.py
deleted file mode 100644
index 2f4580b3f004b7ad71c5d1dc369b87047e93720d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_coo.py
+++ /dev/null
@@ -1,866 +0,0 @@
-""" A sparse matrix in COOrdinate or 'triplet' format"""
-
-__docformat__ = "restructuredtext en"
-
-__all__ = ['coo_array', 'coo_matrix', 'isspmatrix_coo']
-
-import math
-from warnings import warn
-
-import numpy as np
-
-from .._lib._util import copy_if_needed
-from ._matrix import spmatrix
-from ._sparsetools import coo_tocsr, coo_todense, coo_matvec
-from ._base import issparse, SparseEfficiencyWarning, _spbase, sparray
-from ._data import _data_matrix, _minmax_mixin
-from ._sputils import (upcast_char, to_native, isshape, getdtype,
-                       getdata, downcast_intp_index, get_index_dtype,
-                       check_shape, check_reshape_kwargs)
-
-import operator
-
-
-class _coo_base(_data_matrix, _minmax_mixin):
-    _format = 'coo'
-
-    def __init__(self, arg1, shape=None, dtype=None, copy=False):
-        _data_matrix.__init__(self, arg1)
-        is_array = isinstance(self, sparray)
-        if not copy:
-            copy = copy_if_needed
-
-        if isinstance(arg1, tuple):
-            if isshape(arg1, allow_1d=is_array):
-                self._shape = check_shape(arg1, allow_1d=is_array)
-                idx_dtype = self._get_index_dtype(maxval=max(self._shape))
-                data_dtype = getdtype(dtype, default=float)
-                self.coords = tuple(np.array([], dtype=idx_dtype)
-                                     for _ in range(len(self._shape)))
-                self.data = np.array([], dtype=data_dtype)
-                self.has_canonical_format = True
-            else:
-                try:
-                    obj, coords = arg1
-                except (TypeError, ValueError) as e:
-                    raise TypeError('invalid input format') from e
-
-                if shape is None:
-                    if any(len(idx) == 0 for idx in coords):
-                        raise ValueError('cannot infer dimensions from zero '
-                                         'sized index arrays')
-                    shape = tuple(operator.index(np.max(idx)) + 1
-                                  for idx in coords)
-                self._shape = check_shape(shape, allow_1d=is_array)
-
-                idx_dtype = self._get_index_dtype(coords,
-                                                  maxval=max(self.shape),
-                                                  check_contents=True)
-                self.coords = tuple(np.array(idx, copy=copy, dtype=idx_dtype)
-                                     for idx in coords)
-                self.data = getdata(obj, copy=copy, dtype=dtype)
-                self.has_canonical_format = False
-        else:
-            if issparse(arg1):
-                if arg1.format == self.format and copy:
-                    self.coords = tuple(idx.copy() for idx in arg1.coords)
-                    self.data = arg1.data.copy()
-                    self._shape = check_shape(arg1.shape, allow_1d=is_array)
-                    self.has_canonical_format = arg1.has_canonical_format
-                else:
-                    coo = arg1.tocoo()
-                    self.coords = tuple(coo.coords)
-                    self.data = coo.data
-                    self._shape = check_shape(coo.shape, allow_1d=is_array)
-                    self.has_canonical_format = False
-            else:
-                # dense argument
-                M = np.asarray(arg1)
-                if not is_array:
-                    M = np.atleast_2d(M)
-                    if M.ndim != 2:
-                        raise TypeError(f'expected 2D array or matrix, not {M.ndim}D')
-
-                self._shape = check_shape(M.shape, allow_1d=is_array)
-                if shape is not None:
-                    if check_shape(shape, allow_1d=is_array) != self._shape:
-                        message = f'inconsistent shapes: {shape} != {self._shape}'
-                        raise ValueError(message)
-                index_dtype = self._get_index_dtype(maxval=max(self._shape))
-                coords = M.nonzero()
-                self.coords = tuple(idx.astype(index_dtype, copy=False)
-                                     for idx in coords)
-                self.data = M[coords]
-                self.has_canonical_format = True
-
-        if dtype is not None:
-            self.data = self.data.astype(dtype, copy=False)
-
-        self._check()
-
-    @property
-    def row(self):
-        if self.ndim > 1:
-            return self.coords[-2]
-        result = np.zeros_like(self.col)
-        result.setflags(write=False)
-        return result
-
-
-    @row.setter
-    def row(self, new_row):
-        if self.ndim < 2:
-            raise ValueError('cannot set row attribute of a 1-dimensional sparse array')
-        new_row = np.asarray(new_row, dtype=self.coords[-2].dtype)
-        self.coords = self.coords[:-2] + (new_row,) + self.coords[-1:]
-
-    @property
-    def col(self):
-        return self.coords[-1]
-
-    @col.setter
-    def col(self, new_col):
-        new_col = np.asarray(new_col, dtype=self.coords[-1].dtype)
-        self.coords = self.coords[:-1] + (new_col,)
-
-    def reshape(self, *args, **kwargs):
-        is_array = isinstance(self, sparray)
-        shape = check_shape(args, self.shape, allow_1d=is_array)
-        order, copy = check_reshape_kwargs(kwargs)
-
-        # Return early if reshape is not required
-        if shape == self.shape:
-            if copy:
-                return self.copy()
-            else:
-                return self
-
-        # When reducing the number of dimensions, we need to be careful about
-        # index overflow. This is why we can't simply call
-        # `np.ravel_multi_index()` followed by `np.unravel_index()` here.
-        flat_coords = _ravel_coords(self.coords, self.shape, order=order)
-        if len(shape) == 2:
-            if order == 'C':
-                new_coords = divmod(flat_coords, shape[1])
-            else:
-                new_coords = divmod(flat_coords, shape[0])[::-1]
-        else:
-            new_coords = np.unravel_index(flat_coords, shape, order=order)
-
-        # Handle copy here rather than passing on to the constructor so that no
-        # copy will be made of `new_coords` regardless.
-        if copy:
-            new_data = self.data.copy()
-        else:
-            new_data = self.data
-
-        return self.__class__((new_data, new_coords), shape=shape, copy=False)
-
-    reshape.__doc__ = _spbase.reshape.__doc__
-
-    def _getnnz(self, axis=None):
-        if axis is None or (axis == 0 and self.ndim == 1):
-            nnz = len(self.data)
-            if any(len(idx) != nnz for idx in self.coords):
-                raise ValueError('all index and data arrays must have the '
-                                 'same length')
-
-            if self.data.ndim != 1 or any(idx.ndim != 1 for idx in self.coords):
-                raise ValueError('row, column, and data arrays must be 1-D')
-
-            return int(nnz)
-
-        if axis < 0:
-            axis += self.ndim
-        if axis >= self.ndim:
-            raise ValueError('axis out of bounds')
-        if self.ndim > 2:
-            raise NotImplementedError('per-axis nnz for COO arrays with >2 '
-                                      'dimensions is not supported')
-        return np.bincount(downcast_intp_index(self.coords[1 - axis]),
-                           minlength=self.shape[1 - axis])
-
-    _getnnz.__doc__ = _spbase._getnnz.__doc__
-
-    def _check(self):
-        """ Checks data structure for consistency """
-        if self.ndim != len(self.coords):
-            raise ValueError('mismatching number of index arrays for shape; '
-                             f'got {len(self.coords)}, expected {self.ndim}')
-
-        # index arrays should have integer data types
-        for i, idx in enumerate(self.coords):
-            if idx.dtype.kind != 'i':
-                warn(f'index array {i} has non-integer dtype ({idx.dtype.name})',
-                     stacklevel=3)
-
-        idx_dtype = self._get_index_dtype(self.coords, maxval=max(self.shape))
-        self.coords = tuple(np.asarray(idx, dtype=idx_dtype)
-                             for idx in self.coords)
-        self.data = to_native(self.data)
-
-        if self.nnz > 0:
-            for i, idx in enumerate(self.coords):
-                if idx.max() >= self.shape[i]:
-                    raise ValueError(f'axis {i} index {idx.max()} exceeds '
-                                     f'matrix dimension {self.shape[i]}')
-                if idx.min() < 0:
-                    raise ValueError(f'negative axis {i} index: {idx.min()}')
-
-    def transpose(self, axes=None, copy=False):
-        if axes is None:
-            axes = range(self.ndim)[::-1]
-        elif isinstance(self, sparray):
-            if len(axes) != self.ndim:
-                raise ValueError("axes don't match matrix dimensions")
-            if len(set(axes)) != self.ndim:
-                raise ValueError("repeated axis in transpose")
-        elif axes != (1, 0):
-            raise ValueError("Sparse matrices do not support an 'axes' "
-                             "parameter because swapping dimensions is the "
-                             "only logical permutation.")
-
-        permuted_shape = tuple(self._shape[i] for i in axes)
-        permuted_coords = tuple(self.coords[i] for i in axes)
-        return self.__class__((self.data, permuted_coords),
-                              shape=permuted_shape, copy=copy)
-
-    transpose.__doc__ = _spbase.transpose.__doc__
-
-    def resize(self, *shape) -> None:
-        is_array = isinstance(self, sparray)
-        shape = check_shape(shape, allow_1d=is_array)
-
-        # Check for added dimensions.
-        if len(shape) > self.ndim:
-            flat_coords = _ravel_coords(self.coords, self.shape)
-            max_size = math.prod(shape)
-            self.coords = np.unravel_index(flat_coords[:max_size], shape)
-            self.data = self.data[:max_size]
-            self._shape = shape
-            return
-
-        # Check for removed dimensions.
-        if len(shape) < self.ndim:
-            tmp_shape = (
-                self._shape[:len(shape) - 1]  # Original shape without last axis
-                + (-1,)  # Last axis is used to flatten the array
-                + (1,) * (self.ndim - len(shape))  # Pad with ones
-            )
-            tmp = self.reshape(tmp_shape)
-            self.coords = tmp.coords[:len(shape)]
-            self._shape = tmp.shape[:len(shape)]
-
-        # Handle truncation of existing dimensions.
-        is_truncating = any(old > new for old, new in zip(self.shape, shape))
-        if is_truncating:
-            mask = np.logical_and.reduce([
-                idx < size for idx, size in zip(self.coords, shape)
-            ])
-            if not mask.all():
-                self.coords = tuple(idx[mask] for idx in self.coords)
-                self.data = self.data[mask]
-
-        self._shape = shape
-
-    resize.__doc__ = _spbase.resize.__doc__
-
-    def toarray(self, order=None, out=None):
-        B = self._process_toarray_args(order, out)
-        fortran = int(B.flags.f_contiguous)
-        if not fortran and not B.flags.c_contiguous:
-            raise ValueError("Output array must be C or F contiguous")
-        if self.ndim > 2:
-            raise ValueError("Cannot densify higher-rank sparse array")
-        # This handles both 0D and 1D cases correctly regardless of the
-        # original shape.
-        M, N = self._shape_as_2d
-        coo_todense(M, N, self.nnz, self.row, self.col, self.data,
-                    B.ravel('A'), fortran)
-        # Note: reshape() doesn't copy here, but does return a new array (view).
-        return B.reshape(self.shape)
-
-    toarray.__doc__ = _spbase.toarray.__doc__
-
-    def tocsc(self, copy=False):
-        """Convert this array/matrix to Compressed Sparse Column format
-
-        Duplicate entries will be summed together.
-
-        Examples
-        --------
-        >>> from numpy import array
-        >>> from scipy.sparse import coo_array
-        >>> row  = array([0, 0, 1, 3, 1, 0, 0])
-        >>> col  = array([0, 2, 1, 3, 1, 0, 0])
-        >>> data = array([1, 1, 1, 1, 1, 1, 1])
-        >>> A = coo_array((data, (row, col)), shape=(4, 4)).tocsc()
-        >>> A.toarray()
-        array([[3, 0, 1, 0],
-               [0, 2, 0, 0],
-               [0, 0, 0, 0],
-               [0, 0, 0, 1]])
-
-        """
-        if self.ndim != 2:
-            raise ValueError("Cannot convert a 1d sparse array to csc format")
-        if self.nnz == 0:
-            return self._csc_container(self.shape, dtype=self.dtype)
-        else:
-            from ._csc import csc_array
-            indptr, indices, data, shape = self._coo_to_compressed(csc_array._swap)
-
-            x = self._csc_container((data, indices, indptr), shape=shape)
-            if not self.has_canonical_format:
-                x.sum_duplicates()
-            return x
-
-    def tocsr(self, copy=False):
-        """Convert this array/matrix to Compressed Sparse Row format
-
-        Duplicate entries will be summed together.
-
-        Examples
-        --------
-        >>> from numpy import array
-        >>> from scipy.sparse import coo_array
-        >>> row  = array([0, 0, 1, 3, 1, 0, 0])
-        >>> col  = array([0, 2, 1, 3, 1, 0, 0])
-        >>> data = array([1, 1, 1, 1, 1, 1, 1])
-        >>> A = coo_array((data, (row, col)), shape=(4, 4)).tocsr()
-        >>> A.toarray()
-        array([[3, 0, 1, 0],
-               [0, 2, 0, 0],
-               [0, 0, 0, 0],
-               [0, 0, 0, 1]])
-
-        """
-        if self.nnz == 0:
-            return self._csr_container(self.shape, dtype=self.dtype)
-        else:
-            from ._csr import csr_array
-            arrays = self._coo_to_compressed(csr_array._swap, copy=copy)
-            indptr, indices, data, shape = arrays
-
-            x = self._csr_container((data, indices, indptr), shape=self.shape)
-            if not self.has_canonical_format:
-                x.sum_duplicates()
-            return x
-
-    def _coo_to_compressed(self, swap, copy=False):
-        """convert (shape, coords, data) to (indptr, indices, data, shape)"""
-        M, N = swap(self._shape_as_2d)
-        # convert idx_dtype intc to int32 for pythran.
-        # tested in scipy/optimize/tests/test__numdiff.py::test_group_columns
-        idx_dtype = self._get_index_dtype(self.coords, maxval=max(self.nnz, N))
-
-        if self.ndim == 1:
-            indices = self.coords[0].copy() if copy else self.coords[0]
-            nnz = len(indices)
-            indptr = np.array([0, nnz], dtype=idx_dtype)
-            data = self.data.copy() if copy else self.data
-            return indptr, indices, data, self.shape
-
-        # ndim == 2
-        major, minor = swap(self.coords)
-        nnz = len(major)
-        major = major.astype(idx_dtype, copy=False)
-        minor = minor.astype(idx_dtype, copy=False)
-
-        indptr = np.empty(M + 1, dtype=idx_dtype)
-        indices = np.empty_like(minor, dtype=idx_dtype)
-        data = np.empty_like(self.data, dtype=self.dtype)
-
-        coo_tocsr(M, N, nnz, major, minor, self.data, indptr, indices, data)
-        return indptr, indices, data, self.shape
-
-    def tocoo(self, copy=False):
-        if copy:
-            return self.copy()
-        else:
-            return self
-
-    tocoo.__doc__ = _spbase.tocoo.__doc__
-
-    def todia(self, copy=False):
-        if self.ndim != 2:
-            raise ValueError("Cannot convert a 1d sparse array to dia format")
-        self.sum_duplicates()
-        ks = self.col - self.row  # the diagonal for each nonzero
-        diags, diag_idx = np.unique(ks, return_inverse=True)
-
-        if len(diags) > 100:
-            # probably undesired, should todia() have a maxdiags parameter?
-            warn("Constructing a DIA matrix with %d diagonals "
-                 "is inefficient" % len(diags),
-                 SparseEfficiencyWarning, stacklevel=2)
-
-        #initialize and fill in data array
-        if self.data.size == 0:
-            data = np.zeros((0, 0), dtype=self.dtype)
-        else:
-            data = np.zeros((len(diags), self.col.max()+1), dtype=self.dtype)
-            data[diag_idx, self.col] = self.data
-
-        return self._dia_container((data, diags), shape=self.shape)
-
-    todia.__doc__ = _spbase.todia.__doc__
-
-    def todok(self, copy=False):
-        self.sum_duplicates()
-        dok = self._dok_container(self.shape, dtype=self.dtype)
-        # ensure that 1d coordinates are not tuples
-        if self.ndim == 1:
-            coords = self.coords[0]
-        else:
-            coords = zip(*self.coords)
-
-        dok._dict = dict(zip(coords, self.data))
-        return dok
-
-    todok.__doc__ = _spbase.todok.__doc__
-
-    def diagonal(self, k=0):
-        if self.ndim != 2:
-            raise ValueError("diagonal requires two dimensions")
-        rows, cols = self.shape
-        if k <= -rows or k >= cols:
-            return np.empty(0, dtype=self.data.dtype)
-        diag = np.zeros(min(rows + min(k, 0), cols - max(k, 0)),
-                        dtype=self.dtype)
-        diag_mask = (self.row + k) == self.col
-
-        if self.has_canonical_format:
-            row = self.row[diag_mask]
-            data = self.data[diag_mask]
-        else:
-            inds = tuple(idx[diag_mask] for idx in self.coords)
-            (row, _), data = self._sum_duplicates(inds, self.data[diag_mask])
-        diag[row + min(k, 0)] = data
-
-        return diag
-
-    diagonal.__doc__ = _data_matrix.diagonal.__doc__
-
-    def _setdiag(self, values, k):
-        if self.ndim != 2:
-            raise ValueError("setting a diagonal requires two dimensions")
-        M, N = self.shape
-        if values.ndim and not len(values):
-            return
-        idx_dtype = self.row.dtype
-
-        # Determine which triples to keep and where to put the new ones.
-        full_keep = self.col - self.row != k
-        if k < 0:
-            max_index = min(M+k, N)
-            if values.ndim:
-                max_index = min(max_index, len(values))
-            keep = np.logical_or(full_keep, self.col >= max_index)
-            new_row = np.arange(-k, -k + max_index, dtype=idx_dtype)
-            new_col = np.arange(max_index, dtype=idx_dtype)
-        else:
-            max_index = min(M, N-k)
-            if values.ndim:
-                max_index = min(max_index, len(values))
-            keep = np.logical_or(full_keep, self.row >= max_index)
-            new_row = np.arange(max_index, dtype=idx_dtype)
-            new_col = np.arange(k, k + max_index, dtype=idx_dtype)
-
-        # Define the array of data consisting of the entries to be added.
-        if values.ndim:
-            new_data = values[:max_index]
-        else:
-            new_data = np.empty(max_index, dtype=self.dtype)
-            new_data[:] = values
-
-        # Update the internal structure.
-        self.coords = (np.concatenate((self.row[keep], new_row)),
-                       np.concatenate((self.col[keep], new_col)))
-        self.data = np.concatenate((self.data[keep], new_data))
-        self.has_canonical_format = False
-
-    # needed by _data_matrix
-    def _with_data(self, data, copy=True):
-        """Returns a matrix with the same sparsity structure as self,
-        but with different data. By default the index arrays are copied.
-        """
-        if copy:
-            coords = tuple(idx.copy() for idx in self.coords)
-        else:
-            coords = self.coords
-        return self.__class__((data, coords), shape=self.shape, dtype=data.dtype)
-
-    def sum_duplicates(self) -> None:
-        """Eliminate duplicate entries by adding them together
-
-        This is an *in place* operation
-        """
-        if self.has_canonical_format:
-            return
-        summed = self._sum_duplicates(self.coords, self.data)
-        self.coords, self.data = summed
-        self.has_canonical_format = True
-
-    def _sum_duplicates(self, coords, data):
-        # Assumes coords not in canonical format.
-        if len(data) == 0:
-            return coords, data
-        # Sort coords w.r.t. rows, then cols. This corresponds to C-order,
-        # which we rely on for argmin/argmax to return the first index in the
-        # same way that numpy does (in the case of ties).
-        order = np.lexsort(coords[::-1])
-        coords = tuple(idx[order] for idx in coords)
-        data = data[order]
-        unique_mask = np.logical_or.reduce([
-            idx[1:] != idx[:-1] for idx in coords
-        ])
-        unique_mask = np.append(True, unique_mask)
-        coords = tuple(idx[unique_mask] for idx in coords)
-        unique_inds, = np.nonzero(unique_mask)
-        data = np.add.reduceat(data, unique_inds, dtype=self.dtype)
-        return coords, data
-
-    def eliminate_zeros(self):
-        """Remove zero entries from the array/matrix
-
-        This is an *in place* operation
-        """
-        mask = self.data != 0
-        self.data = self.data[mask]
-        self.coords = tuple(idx[mask] for idx in self.coords)
-
-    #######################
-    # Arithmetic handlers #
-    #######################
-
-    def _add_dense(self, other):
-        if other.shape != self.shape:
-            raise ValueError(f'Incompatible shapes ({self.shape} and {other.shape})')
-        dtype = upcast_char(self.dtype.char, other.dtype.char)
-        result = np.array(other, dtype=dtype, copy=True)
-        fortran = int(result.flags.f_contiguous)
-        M, N = self._shape_as_2d
-        coo_todense(M, N, self.nnz, self.row, self.col, self.data,
-                    result.ravel('A'), fortran)
-        return self._container(result, copy=False)
-
-    def _matmul_vector(self, other):
-        result_shape = self.shape[0] if self.ndim > 1 else 1
-        result = np.zeros(result_shape,
-                          dtype=upcast_char(self.dtype.char, other.dtype.char))
-
-        if self.ndim == 2:
-            col = self.col
-            row = self.row
-        elif self.ndim == 1:
-            col = self.coords[0]
-            row = np.zeros_like(col)
-        else:
-            raise NotImplementedError(
-                f"coo_matvec not implemented for ndim={self.ndim}")
-
-        coo_matvec(self.nnz, row, col, self.data, other, result)
-        # Array semantics return a scalar here, not a single-element array.
-        if isinstance(self, sparray) and result_shape == 1:
-            return result[0]
-        return result
-
-    def _matmul_multivector(self, other):
-        result_dtype = upcast_char(self.dtype.char, other.dtype.char)
-        if self.ndim == 2:
-            result_shape = (other.shape[1], self.shape[0])
-            col = self.col
-            row = self.row
-        elif self.ndim == 1:
-            result_shape = (other.shape[1],)
-            col = self.coords[0]
-            row = np.zeros_like(col)
-        else:
-            raise NotImplementedError(
-                f"coo_matvec not implemented for ndim={self.ndim}")
-
-        result = np.zeros(result_shape, dtype=result_dtype)
-        for i, other_col in enumerate(other.T):
-            coo_matvec(self.nnz, row, col, self.data, other_col, result[i:i + 1])
-        return result.T.view(type=type(other))
-
-
-def _ravel_coords(coords, shape, order='C'):
-    """Like np.ravel_multi_index, but avoids some overflow issues."""
-    if len(coords) == 1:
-        return coords[0]
-    # Handle overflow as in https://github.com/scipy/scipy/pull/9132
-    if len(coords) == 2:
-        nrows, ncols = shape
-        row, col = coords
-        if order == 'C':
-            maxval = (ncols * max(0, nrows - 1) + max(0, ncols - 1))
-            idx_dtype = get_index_dtype(maxval=maxval)
-            return np.multiply(ncols, row, dtype=idx_dtype) + col
-        elif order == 'F':
-            maxval = (nrows * max(0, ncols - 1) + max(0, nrows - 1))
-            idx_dtype = get_index_dtype(maxval=maxval)
-            return np.multiply(nrows, col, dtype=idx_dtype) + row
-        else:
-            raise ValueError("'order' must be 'C' or 'F'")
-    return np.ravel_multi_index(coords, shape, order=order)
-
-
-def isspmatrix_coo(x):
-    """Is `x` of coo_matrix type?
-
-    Parameters
-    ----------
-    x
-        object to check for being a coo matrix
-
-    Returns
-    -------
-    bool
-        True if `x` is a coo matrix, False otherwise
-
-    Examples
-    --------
-    >>> from scipy.sparse import coo_array, coo_matrix, csr_matrix, isspmatrix_coo
-    >>> isspmatrix_coo(coo_matrix([[5]]))
-    True
-    >>> isspmatrix_coo(coo_array([[5]]))
-    False
-    >>> isspmatrix_coo(csr_matrix([[5]]))
-    False
-    """
-    return isinstance(x, coo_matrix)
-
-
-# This namespace class separates array from matrix with isinstance
-class coo_array(_coo_base, sparray):
-    """
-    A sparse array in COOrdinate format.
-
-    Also known as the 'ijv' or 'triplet' format.
-
-    This can be instantiated in several ways:
-        coo_array(D)
-            where D is an ndarray
-
-        coo_array(S)
-            with another sparse array or matrix S (equivalent to S.tocoo())
-
-        coo_array(shape, [dtype])
-            to construct an empty sparse array with shape `shape`
-            dtype is optional, defaulting to dtype='d'.
-
-        coo_array((data, coords), [shape])
-            to construct from existing data and index arrays:
-                1. data[:]       the entries of the sparse array, in any order
-                2. coords[i][:]  the axis-i coordinates of the data entries
-
-            Where ``A[coords] = data``, and coords is a tuple of index arrays.
-            When shape is not specified, it is inferred from the index arrays.
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the sparse array
-    shape : tuple of integers
-        Shape of the sparse array
-    ndim : int
-        Number of dimensions of the sparse array
-    nnz
-    size
-    data
-        COO format data array of the sparse array
-    coords
-        COO format tuple of index arrays
-    has_canonical_format : bool
-        Whether the matrix has sorted coordinates and no duplicates
-    format
-    T
-
-    Notes
-    -----
-
-    Sparse arrays can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    Advantages of the COO format
-        - facilitates fast conversion among sparse formats
-        - permits duplicate entries (see example)
-        - very fast conversion to and from CSR/CSC formats
-
-    Disadvantages of the COO format
-        - does not directly support:
-            + arithmetic operations
-            + slicing
-
-    Intended Usage
-        - COO is a fast format for constructing sparse arrays
-        - Once a COO array has been constructed, convert to CSR or
-          CSC format for fast arithmetic and matrix vector operations
-        - By default when converting to CSR or CSC format, duplicate (i,j)
-          entries will be summed together.  This facilitates efficient
-          construction of finite element matrices and the like. (see example)
-
-    Canonical format
-        - Entries and coordinates sorted by row, then column.
-        - There are no duplicate entries (i.e. duplicate (i,j) locations)
-        - Data arrays MAY have explicit zeros.
-
-    Examples
-    --------
-
-    >>> # Constructing an empty sparse array
-    >>> import numpy as np
-    >>> from scipy.sparse import coo_array
-    >>> coo_array((3, 4), dtype=np.int8).toarray()
-    array([[0, 0, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 0]], dtype=int8)
-
-    >>> # Constructing a sparse array using ijv format
-    >>> row  = np.array([0, 3, 1, 0])
-    >>> col  = np.array([0, 3, 1, 2])
-    >>> data = np.array([4, 5, 7, 9])
-    >>> coo_array((data, (row, col)), shape=(4, 4)).toarray()
-    array([[4, 0, 9, 0],
-           [0, 7, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 5]])
-
-    >>> # Constructing a sparse array with duplicate coordinates
-    >>> row  = np.array([0, 0, 1, 3, 1, 0, 0])
-    >>> col  = np.array([0, 2, 1, 3, 1, 0, 0])
-    >>> data = np.array([1, 1, 1, 1, 1, 1, 1])
-    >>> coo = coo_array((data, (row, col)), shape=(4, 4))
-    >>> # Duplicate coordinates are maintained until implicitly or explicitly summed
-    >>> np.max(coo.data)
-    1
-    >>> coo.toarray()
-    array([[3, 0, 1, 0],
-           [0, 2, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 1]])
-
-    """
-
-
-class coo_matrix(spmatrix, _coo_base):
-    """
-    A sparse matrix in COOrdinate format.
-
-    Also known as the 'ijv' or 'triplet' format.
-
-    This can be instantiated in several ways:
-        coo_matrix(D)
-            where D is a 2-D ndarray
-
-        coo_matrix(S)
-            with another sparse array or matrix S (equivalent to S.tocoo())
-
-        coo_matrix((M, N), [dtype])
-            to construct an empty matrix with shape (M, N)
-            dtype is optional, defaulting to dtype='d'.
-
-        coo_matrix((data, (i, j)), [shape=(M, N)])
-            to construct from three arrays:
-                1. data[:]   the entries of the matrix, in any order
-                2. i[:]      the row indices of the matrix entries
-                3. j[:]      the column indices of the matrix entries
-
-            Where ``A[i[k], j[k]] = data[k]``.  When shape is not
-            specified, it is inferred from the index arrays
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the matrix
-    shape : 2-tuple
-        Shape of the matrix
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        COO format data array of the matrix
-    row
-        COO format row index array of the matrix
-    col
-        COO format column index array of the matrix
-    has_canonical_format : bool
-        Whether the matrix has sorted indices and no duplicates
-    format
-    T
-
-    Notes
-    -----
-
-    Sparse matrices can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    Advantages of the COO format
-        - facilitates fast conversion among sparse formats
-        - permits duplicate entries (see example)
-        - very fast conversion to and from CSR/CSC formats
-
-    Disadvantages of the COO format
-        - does not directly support:
-            + arithmetic operations
-            + slicing
-
-    Intended Usage
-        - COO is a fast format for constructing sparse matrices
-        - Once a COO matrix has been constructed, convert to CSR or
-          CSC format for fast arithmetic and matrix vector operations
-        - By default when converting to CSR or CSC format, duplicate (i,j)
-          entries will be summed together.  This facilitates efficient
-          construction of finite element matrices and the like. (see example)
-
-    Canonical format
-        - Entries and coordinates sorted by row, then column.
-        - There are no duplicate entries (i.e. duplicate (i,j) locations)
-        - Data arrays MAY have explicit zeros.
-
-    Examples
-    --------
-
-    >>> # Constructing an empty matrix
-    >>> import numpy as np
-    >>> from scipy.sparse import coo_matrix
-    >>> coo_matrix((3, 4), dtype=np.int8).toarray()
-    array([[0, 0, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 0]], dtype=int8)
-
-    >>> # Constructing a matrix using ijv format
-    >>> row  = np.array([0, 3, 1, 0])
-    >>> col  = np.array([0, 3, 1, 2])
-    >>> data = np.array([4, 5, 7, 9])
-    >>> coo_matrix((data, (row, col)), shape=(4, 4)).toarray()
-    array([[4, 0, 9, 0],
-           [0, 7, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 5]])
-
-    >>> # Constructing a matrix with duplicate coordinates
-    >>> row  = np.array([0, 0, 1, 3, 1, 0, 0])
-    >>> col  = np.array([0, 2, 1, 3, 1, 0, 0])
-    >>> data = np.array([1, 1, 1, 1, 1, 1, 1])
-    >>> coo = coo_matrix((data, (row, col)), shape=(4, 4))
-    >>> # Duplicate coordinates are maintained until implicitly or explicitly summed
-    >>> np.max(coo.data)
-    1
-    >>> coo.toarray()
-    array([[3, 0, 1, 0],
-           [0, 2, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 1]])
-
-    """
-
-    def __setstate__(self, state):
-        if 'coords' not in state:
-            # For retro-compatibility with the previous attributes
-            # storing nnz coordinates for 2D COO matrix.
-            state['coords'] = (state.pop('row'), state.pop('col'))
-        self.__dict__.update(state)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_csc.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_csc.py
deleted file mode 100644
index 3fcdeb49cc0a951b9a2df955b971d5148916f289..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_csc.py
+++ /dev/null
@@ -1,364 +0,0 @@
-"""Compressed Sparse Column matrix format"""
-__docformat__ = "restructuredtext en"
-
-__all__ = ['csc_array', 'csc_matrix', 'isspmatrix_csc']
-
-
-import numpy as np
-
-from ._matrix import spmatrix
-from ._base import _spbase, sparray
-from ._sparsetools import csc_tocsr, expandptr
-from ._sputils import upcast
-
-from ._compressed import _cs_matrix
-
-
-class _csc_base(_cs_matrix):
-    _format = 'csc'
-
-    def transpose(self, axes=None, copy=False):
-        if axes is not None and axes != (1, 0):
-            raise ValueError("Sparse arrays/matrices do not support "
-                              "an 'axes' parameter because swapping "
-                              "dimensions is the only logical permutation.")
-
-        M, N = self.shape
-
-        return self._csr_container((self.data, self.indices,
-                                    self.indptr), (N, M), copy=copy)
-
-    transpose.__doc__ = _spbase.transpose.__doc__
-
-    def __iter__(self):
-        yield from self.tocsr()
-
-    def tocsc(self, copy=False):
-        if copy:
-            return self.copy()
-        else:
-            return self
-
-    tocsc.__doc__ = _spbase.tocsc.__doc__
-
-    def tocsr(self, copy=False):
-        M,N = self.shape
-        idx_dtype = self._get_index_dtype((self.indptr, self.indices),
-                                    maxval=max(self.nnz, N))
-        indptr = np.empty(M + 1, dtype=idx_dtype)
-        indices = np.empty(self.nnz, dtype=idx_dtype)
-        data = np.empty(self.nnz, dtype=upcast(self.dtype))
-
-        csc_tocsr(M, N,
-                  self.indptr.astype(idx_dtype),
-                  self.indices.astype(idx_dtype),
-                  self.data,
-                  indptr,
-                  indices,
-                  data)
-
-        A = self._csr_container(
-            (data, indices, indptr),
-            shape=self.shape, copy=False
-        )
-        A.has_sorted_indices = True
-        return A
-
-    tocsr.__doc__ = _spbase.tocsr.__doc__
-
-    def nonzero(self):
-        # CSC can't use _cs_matrix's .nonzero method because it
-        # returns the indices sorted for self transposed.
-
-        # Get row and col indices, from _cs_matrix.tocoo
-        major_dim, minor_dim = self._swap(self.shape)
-        minor_indices = self.indices
-        major_indices = np.empty(len(minor_indices), dtype=self.indices.dtype)
-        expandptr(major_dim, self.indptr, major_indices)
-        row, col = self._swap((major_indices, minor_indices))
-
-        # Remove explicit zeros
-        nz_mask = self.data != 0
-        row = row[nz_mask]
-        col = col[nz_mask]
-
-        # Sort them to be in C-style order
-        ind = np.argsort(row, kind='mergesort')
-        row = row[ind]
-        col = col[ind]
-
-        return row, col
-
-    nonzero.__doc__ = _cs_matrix.nonzero.__doc__
-
-    def _getrow(self, i):
-        """Returns a copy of row i of the matrix, as a (1 x n)
-        CSR matrix (row vector).
-        """
-        M, N = self.shape
-        i = int(i)
-        if i < 0:
-            i += M
-        if i < 0 or i >= M:
-            raise IndexError('index (%d) out of range' % i)
-        return self._get_submatrix(minor=i).tocsr()
-
-    def _getcol(self, i):
-        """Returns a copy of column i of the matrix, as a (m x 1)
-        CSC matrix (column vector).
-        """
-        M, N = self.shape
-        i = int(i)
-        if i < 0:
-            i += N
-        if i < 0 or i >= N:
-            raise IndexError('index (%d) out of range' % i)
-        return self._get_submatrix(major=i, copy=True)
-
-    def _get_intXarray(self, row, col):
-        return self._major_index_fancy(col)._get_submatrix(minor=row)
-
-    def _get_intXslice(self, row, col):
-        if col.step in (1, None):
-            return self._get_submatrix(major=col, minor=row, copy=True)
-        return self._major_slice(col)._get_submatrix(minor=row)
-
-    def _get_sliceXint(self, row, col):
-        if row.step in (1, None):
-            return self._get_submatrix(major=col, minor=row, copy=True)
-        return self._get_submatrix(major=col)._minor_slice(row)
-
-    def _get_sliceXarray(self, row, col):
-        return self._major_index_fancy(col)._minor_slice(row)
-
-    def _get_arrayXint(self, row, col):
-        return self._get_submatrix(major=col)._minor_index_fancy(row)
-
-    def _get_arrayXslice(self, row, col):
-        return self._major_slice(col)._minor_index_fancy(row)
-
-    # these functions are used by the parent class (_cs_matrix)
-    # to remove redundancy between csc_array and csr_matrix
-    @staticmethod
-    def _swap(x):
-        """swap the members of x if this is a column-oriented matrix
-        """
-        return x[1], x[0]
-
-
-def isspmatrix_csc(x):
-    """Is `x` of csc_matrix type?
-
-    Parameters
-    ----------
-    x
-        object to check for being a csc matrix
-
-    Returns
-    -------
-    bool
-        True if `x` is a csc matrix, False otherwise
-
-    Examples
-    --------
-    >>> from scipy.sparse import csc_array, csc_matrix, coo_matrix, isspmatrix_csc
-    >>> isspmatrix_csc(csc_matrix([[5]]))
-    True
-    >>> isspmatrix_csc(csc_array([[5]]))
-    False
-    >>> isspmatrix_csc(coo_matrix([[5]]))
-    False
-    """
-    return isinstance(x, csc_matrix)
-
-
-# This namespace class separates array from matrix with isinstance
-class csc_array(_csc_base, sparray):
-    """
-    Compressed Sparse Column array.
-
-    This can be instantiated in several ways:
-        csc_array(D)
-            where D is a 2-D ndarray
-
-        csc_array(S)
-            with another sparse array or matrix S (equivalent to S.tocsc())
-
-        csc_array((M, N), [dtype])
-            to construct an empty array with shape (M, N)
-            dtype is optional, defaulting to dtype='d'.
-
-        csc_array((data, (row_ind, col_ind)), [shape=(M, N)])
-            where ``data``, ``row_ind`` and ``col_ind`` satisfy the
-            relationship ``a[row_ind[k], col_ind[k]] = data[k]``.
-
-        csc_array((data, indices, indptr), [shape=(M, N)])
-            is the standard CSC representation where the row indices for
-            column i are stored in ``indices[indptr[i]:indptr[i+1]]``
-            and their corresponding values are stored in
-            ``data[indptr[i]:indptr[i+1]]``.  If the shape parameter is
-            not supplied, the array dimensions are inferred from
-            the index arrays.
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the array
-    shape : 2-tuple
-        Shape of the array
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        CSC format data array of the array
-    indices
-        CSC format index array of the array
-    indptr
-        CSC format index pointer array of the array
-    has_sorted_indices
-    has_canonical_format
-    T
-
-    Notes
-    -----
-
-    Sparse arrays can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    Advantages of the CSC format
-        - efficient arithmetic operations CSC + CSC, CSC * CSC, etc.
-        - efficient column slicing
-        - fast matrix vector products (CSR, BSR may be faster)
-
-    Disadvantages of the CSC format
-      - slow row slicing operations (consider CSR)
-      - changes to the sparsity structure are expensive (consider LIL or DOK)
-
-    Canonical format
-      - Within each column, indices are sorted by row.
-      - There are no duplicate entries.
-
-    Examples
-    --------
-
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_array
-    >>> csc_array((3, 4), dtype=np.int8).toarray()
-    array([[0, 0, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 0]], dtype=int8)
-
-    >>> row = np.array([0, 2, 2, 0, 1, 2])
-    >>> col = np.array([0, 0, 1, 2, 2, 2])
-    >>> data = np.array([1, 2, 3, 4, 5, 6])
-    >>> csc_array((data, (row, col)), shape=(3, 3)).toarray()
-    array([[1, 0, 4],
-           [0, 0, 5],
-           [2, 3, 6]])
-
-    >>> indptr = np.array([0, 2, 3, 6])
-    >>> indices = np.array([0, 2, 2, 0, 1, 2])
-    >>> data = np.array([1, 2, 3, 4, 5, 6])
-    >>> csc_array((data, indices, indptr), shape=(3, 3)).toarray()
-    array([[1, 0, 4],
-           [0, 0, 5],
-           [2, 3, 6]])
-
-    """
-
-
-class csc_matrix(spmatrix, _csc_base):
-    """
-    Compressed Sparse Column matrix.
-
-    This can be instantiated in several ways:
-        csc_matrix(D)
-            where D is a 2-D ndarray
-
-        csc_matrix(S)
-            with another sparse array or matrix S (equivalent to S.tocsc())
-
-        csc_matrix((M, N), [dtype])
-            to construct an empty matrix with shape (M, N)
-            dtype is optional, defaulting to dtype='d'.
-
-        csc_matrix((data, (row_ind, col_ind)), [shape=(M, N)])
-            where ``data``, ``row_ind`` and ``col_ind`` satisfy the
-            relationship ``a[row_ind[k], col_ind[k]] = data[k]``.
-
-        csc_matrix((data, indices, indptr), [shape=(M, N)])
-            is the standard CSC representation where the row indices for
-            column i are stored in ``indices[indptr[i]:indptr[i+1]]``
-            and their corresponding values are stored in
-            ``data[indptr[i]:indptr[i+1]]``.  If the shape parameter is
-            not supplied, the matrix dimensions are inferred from
-            the index arrays.
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the matrix
-    shape : 2-tuple
-        Shape of the matrix
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        CSC format data array of the matrix
-    indices
-        CSC format index array of the matrix
-    indptr
-        CSC format index pointer array of the matrix
-    has_sorted_indices
-    has_canonical_format
-    T
-
-    Notes
-    -----
-
-    Sparse matrices can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    Advantages of the CSC format
-        - efficient arithmetic operations CSC + CSC, CSC * CSC, etc.
-        - efficient column slicing
-        - fast matrix vector products (CSR, BSR may be faster)
-
-    Disadvantages of the CSC format
-      - slow row slicing operations (consider CSR)
-      - changes to the sparsity structure are expensive (consider LIL or DOK)
-
-    Canonical format
-      - Within each column, indices are sorted by row.
-      - There are no duplicate entries.
-
-    Examples
-    --------
-
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> csc_matrix((3, 4), dtype=np.int8).toarray()
-    array([[0, 0, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 0]], dtype=int8)
-
-    >>> row = np.array([0, 2, 2, 0, 1, 2])
-    >>> col = np.array([0, 0, 1, 2, 2, 2])
-    >>> data = np.array([1, 2, 3, 4, 5, 6])
-    >>> csc_matrix((data, (row, col)), shape=(3, 3)).toarray()
-    array([[1, 0, 4],
-           [0, 0, 5],
-           [2, 3, 6]])
-
-    >>> indptr = np.array([0, 2, 3, 6])
-    >>> indices = np.array([0, 2, 2, 0, 1, 2])
-    >>> data = np.array([1, 2, 3, 4, 5, 6])
-    >>> csc_matrix((data, indices, indptr), shape=(3, 3)).toarray()
-    array([[1, 0, 4],
-           [0, 0, 5],
-           [2, 3, 6]])
-
-    """
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_csr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_csr.py
deleted file mode 100644
index ffa2aa7e78227371d68c95033a7cb817c0b4f59d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_csr.py
+++ /dev/null
@@ -1,551 +0,0 @@
-"""Compressed Sparse Row matrix format"""
-
-__docformat__ = "restructuredtext en"
-
-__all__ = ['csr_array', 'csr_matrix', 'isspmatrix_csr']
-
-import numpy as np
-
-from ._matrix import spmatrix
-from ._base import _spbase, sparray
-from ._sparsetools import (csr_tocsc, csr_tobsr, csr_count_blocks,
-                           get_csr_submatrix)
-from ._sputils import upcast
-
-from ._compressed import _cs_matrix
-
-
-class _csr_base(_cs_matrix):
-    _format = 'csr'
-
-    # override IndexMixin.__getitem__ for 1d case until fully implemented
-    def __getitem__(self, key):
-        if self.ndim == 2:
-            return super().__getitem__(key)
-
-        if isinstance(key, tuple) and len(key) == 1:
-            key = key[0]
-        INT_TYPES = (int, np.integer)
-        if isinstance(key, INT_TYPES):
-            if key < 0:
-                key += self.shape[-1]
-            if key < 0 or key >= self.shape[-1]:
-                raise IndexError('index value out of bounds')
-            return self._get_int(key)
-        else:
-            raise IndexError('array/slice index for 1d csr_array not yet supported')
-
-    # override IndexMixin.__setitem__ for 1d case until fully implemented
-    def __setitem__(self, key, value):
-        if self.ndim == 2:
-            return super().__setitem__(key, value)
-
-        if isinstance(key, tuple) and len(key) == 1:
-            key = key[0]
-        INT_TYPES = (int, np.integer)
-        if isinstance(key, INT_TYPES):
-            if key < 0:
-                key += self.shape[-1]
-            if key < 0 or key >= self.shape[-1]:
-                raise IndexError('index value out of bounds')
-            return self._set_int(key, value)
-        else:
-            raise IndexError('array index for 1d csr_array not yet provided')
-
-    def transpose(self, axes=None, copy=False):
-        if axes is not None and axes != (1, 0):
-            raise ValueError("Sparse arrays/matrices do not support "
-                              "an 'axes' parameter because swapping "
-                              "dimensions is the only logical permutation.")
-
-        if self.ndim == 1:
-            return self.copy() if copy else self
-        M, N = self.shape
-        return self._csc_container((self.data, self.indices,
-                                    self.indptr), shape=(N, M), copy=copy)
-
-    transpose.__doc__ = _spbase.transpose.__doc__
-
-    def tolil(self, copy=False):
-        if self.ndim != 2:
-            raise ValueError("Cannot convert a 1d sparse array to lil format")
-        lil = self._lil_container(self.shape, dtype=self.dtype)
-
-        self.sum_duplicates()
-        ptr,ind,dat = self.indptr,self.indices,self.data
-        rows, data = lil.rows, lil.data
-
-        for n in range(self.shape[0]):
-            start = ptr[n]
-            end = ptr[n+1]
-            rows[n] = ind[start:end].tolist()
-            data[n] = dat[start:end].tolist()
-
-        return lil
-
-    tolil.__doc__ = _spbase.tolil.__doc__
-
-    def tocsr(self, copy=False):
-        if copy:
-            return self.copy()
-        else:
-            return self
-
-    tocsr.__doc__ = _spbase.tocsr.__doc__
-
-    def tocsc(self, copy=False):
-        if self.ndim != 2:
-            raise ValueError("Cannot convert a 1d sparse array to csc format")
-        M, N = self.shape
-        idx_dtype = self._get_index_dtype((self.indptr, self.indices),
-                                    maxval=max(self.nnz, M))
-        indptr = np.empty(N + 1, dtype=idx_dtype)
-        indices = np.empty(self.nnz, dtype=idx_dtype)
-        data = np.empty(self.nnz, dtype=upcast(self.dtype))
-
-        csr_tocsc(M, N,
-                  self.indptr.astype(idx_dtype),
-                  self.indices.astype(idx_dtype),
-                  self.data,
-                  indptr,
-                  indices,
-                  data)
-
-        A = self._csc_container((data, indices, indptr), shape=self.shape)
-        A.has_sorted_indices = True
-        return A
-
-    tocsc.__doc__ = _spbase.tocsc.__doc__
-
-    def tobsr(self, blocksize=None, copy=True):
-        if self.ndim != 2:
-            raise ValueError("Cannot convert a 1d sparse array to bsr format")
-        if blocksize is None:
-            from ._spfuncs import estimate_blocksize
-            return self.tobsr(blocksize=estimate_blocksize(self))
-
-        elif blocksize == (1,1):
-            arg1 = (self.data.reshape(-1,1,1),self.indices,self.indptr)
-            return self._bsr_container(arg1, shape=self.shape, copy=copy)
-
-        else:
-            R,C = blocksize
-            M,N = self.shape
-
-            if R < 1 or C < 1 or M % R != 0 or N % C != 0:
-                raise ValueError('invalid blocksize %s' % blocksize)
-
-            blks = csr_count_blocks(M,N,R,C,self.indptr,self.indices)
-
-            idx_dtype = self._get_index_dtype((self.indptr, self.indices),
-                                        maxval=max(N//C, blks))
-            indptr = np.empty(M//R+1, dtype=idx_dtype)
-            indices = np.empty(blks, dtype=idx_dtype)
-            data = np.zeros((blks,R,C), dtype=self.dtype)
-
-            csr_tobsr(M, N, R, C,
-                      self.indptr.astype(idx_dtype),
-                      self.indices.astype(idx_dtype),
-                      self.data,
-                      indptr, indices, data.ravel())
-
-            return self._bsr_container(
-                (data, indices, indptr), shape=self.shape
-            )
-
-    tobsr.__doc__ = _spbase.tobsr.__doc__
-
-    # these functions are used by the parent class (_cs_matrix)
-    # to remove redundancy between csc_matrix and csr_array
-    @staticmethod
-    def _swap(x):
-        """swap the members of x if this is a column-oriented matrix
-        """
-        return x
-
-    def __iter__(self):
-        if self.ndim == 1:
-            zero = self.dtype.type(0)
-            u = 0
-            for v, d in zip(self.indices, self.data):
-                for _ in range(v - u):
-                    yield zero
-                yield d
-                u = v + 1
-            for _ in range(self.shape[0] - u):
-                yield zero
-            return
-
-        indptr = np.zeros(2, dtype=self.indptr.dtype)
-        # return 1d (sparray) or 2drow (spmatrix)
-        shape = self.shape[1:] if isinstance(self, sparray) else (1, self.shape[1])
-        i0 = 0
-        for i1 in self.indptr[1:]:
-            indptr[1] = i1 - i0
-            indices = self.indices[i0:i1]
-            data = self.data[i0:i1]
-            yield self.__class__((data, indices, indptr), shape=shape, copy=True)
-            i0 = i1
-
-    def _getrow(self, i):
-        """Returns a copy of row i of the matrix, as a (1 x n)
-        CSR matrix (row vector).
-        """
-        if self.ndim == 1:
-            if i not in (0, -1):
-                raise IndexError(f'index ({i}) out of range')
-            return self.reshape((1, self.shape[0]), copy=True)
-
-        M, N = self.shape
-        i = int(i)
-        if i < 0:
-            i += M
-        if i < 0 or i >= M:
-            raise IndexError('index (%d) out of range' % i)
-        indptr, indices, data = get_csr_submatrix(
-            M, N, self.indptr, self.indices, self.data, i, i + 1, 0, N)
-        return self.__class__((data, indices, indptr), shape=(1, N),
-                              dtype=self.dtype, copy=False)
-
-    def _getcol(self, i):
-        """Returns a copy of column i. A (m x 1) sparse array (column vector).
-        """
-        if self.ndim == 1:
-            raise ValueError("getcol not provided for 1d arrays. Use indexing A[j]")
-        M, N = self.shape
-        i = int(i)
-        if i < 0:
-            i += N
-        if i < 0 or i >= N:
-            raise IndexError('index (%d) out of range' % i)
-        indptr, indices, data = get_csr_submatrix(
-            M, N, self.indptr, self.indices, self.data, 0, M, i, i + 1)
-        return self.__class__((data, indices, indptr), shape=(M, 1),
-                              dtype=self.dtype, copy=False)
-
-    def _get_intXarray(self, row, col):
-        return self._getrow(row)._minor_index_fancy(col)
-
-    def _get_intXslice(self, row, col):
-        if col.step in (1, None):
-            return self._get_submatrix(row, col, copy=True)
-        # TODO: uncomment this once it's faster:
-        # return self._getrow(row)._minor_slice(col)
-
-        M, N = self.shape
-        start, stop, stride = col.indices(N)
-
-        ii, jj = self.indptr[row:row+2]
-        row_indices = self.indices[ii:jj]
-        row_data = self.data[ii:jj]
-
-        if stride > 0:
-            ind = (row_indices >= start) & (row_indices < stop)
-        else:
-            ind = (row_indices <= start) & (row_indices > stop)
-
-        if abs(stride) > 1:
-            ind &= (row_indices - start) % stride == 0
-
-        row_indices = (row_indices[ind] - start) // stride
-        row_data = row_data[ind]
-        row_indptr = np.array([0, len(row_indices)])
-
-        if stride < 0:
-            row_data = row_data[::-1]
-            row_indices = abs(row_indices[::-1])
-
-        shape = (1, max(0, int(np.ceil(float(stop - start) / stride))))
-        return self.__class__((row_data, row_indices, row_indptr), shape=shape,
-                              dtype=self.dtype, copy=False)
-
-    def _get_sliceXint(self, row, col):
-        if row.step in (1, None):
-            return self._get_submatrix(row, col, copy=True)
-        return self._major_slice(row)._get_submatrix(minor=col)
-
-    def _get_sliceXarray(self, row, col):
-        return self._major_slice(row)._minor_index_fancy(col)
-
-    def _get_arrayXint(self, row, col):
-        return self._major_index_fancy(row)._get_submatrix(minor=col)
-
-    def _get_arrayXslice(self, row, col):
-        if col.step not in (1, None):
-            col = np.arange(*col.indices(self.shape[1]))
-            return self._get_arrayXarray(row, col)
-        return self._major_index_fancy(row)._get_submatrix(minor=col)
-
-
-def isspmatrix_csr(x):
-    """Is `x` of csr_matrix type?
-
-    Parameters
-    ----------
-    x
-        object to check for being a csr matrix
-
-    Returns
-    -------
-    bool
-        True if `x` is a csr matrix, False otherwise
-
-    Examples
-    --------
-    >>> from scipy.sparse import csr_array, csr_matrix, coo_matrix, isspmatrix_csr
-    >>> isspmatrix_csr(csr_matrix([[5]]))
-    True
-    >>> isspmatrix_csr(csr_array([[5]]))
-    False
-    >>> isspmatrix_csr(coo_matrix([[5]]))
-    False
-    """
-    return isinstance(x, csr_matrix)
-
-
-# This namespace class separates array from matrix with isinstance
-class csr_array(_csr_base, sparray):
-    """
-    Compressed Sparse Row array.
-
-    This can be instantiated in several ways:
-        csr_array(D)
-            where D is a 2-D ndarray
-
-        csr_array(S)
-            with another sparse array or matrix S (equivalent to S.tocsr())
-
-        csr_array((M, N), [dtype])
-            to construct an empty array with shape (M, N)
-            dtype is optional, defaulting to dtype='d'.
-
-        csr_array((data, (row_ind, col_ind)), [shape=(M, N)])
-            where ``data``, ``row_ind`` and ``col_ind`` satisfy the
-            relationship ``a[row_ind[k], col_ind[k]] = data[k]``.
-
-        csr_array((data, indices, indptr), [shape=(M, N)])
-            is the standard CSR representation where the column indices for
-            row i are stored in ``indices[indptr[i]:indptr[i+1]]`` and their
-            corresponding values are stored in ``data[indptr[i]:indptr[i+1]]``.
-            If the shape parameter is not supplied, the array dimensions
-            are inferred from the index arrays.
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the array
-    shape : 2-tuple
-        Shape of the array
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        CSR format data array of the array
-    indices
-        CSR format index array of the array
-    indptr
-        CSR format index pointer array of the array
-    has_sorted_indices
-    has_canonical_format
-    T
-
-    Notes
-    -----
-
-    Sparse arrays can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    Advantages of the CSR format
-      - efficient arithmetic operations CSR + CSR, CSR * CSR, etc.
-      - efficient row slicing
-      - fast matrix vector products
-
-    Disadvantages of the CSR format
-      - slow column slicing operations (consider CSC)
-      - changes to the sparsity structure are expensive (consider LIL or DOK)
-
-    Canonical Format
-        - Within each row, indices are sorted by column.
-        - There are no duplicate entries.
-
-    Examples
-    --------
-
-    >>> import numpy as np
-    >>> from scipy.sparse import csr_array
-    >>> csr_array((3, 4), dtype=np.int8).toarray()
-    array([[0, 0, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 0]], dtype=int8)
-
-    >>> row = np.array([0, 0, 1, 2, 2, 2])
-    >>> col = np.array([0, 2, 2, 0, 1, 2])
-    >>> data = np.array([1, 2, 3, 4, 5, 6])
-    >>> csr_array((data, (row, col)), shape=(3, 3)).toarray()
-    array([[1, 0, 2],
-           [0, 0, 3],
-           [4, 5, 6]])
-
-    >>> indptr = np.array([0, 2, 3, 6])
-    >>> indices = np.array([0, 2, 2, 0, 1, 2])
-    >>> data = np.array([1, 2, 3, 4, 5, 6])
-    >>> csr_array((data, indices, indptr), shape=(3, 3)).toarray()
-    array([[1, 0, 2],
-           [0, 0, 3],
-           [4, 5, 6]])
-
-    Duplicate entries are summed together:
-
-    >>> row = np.array([0, 1, 2, 0])
-    >>> col = np.array([0, 1, 1, 0])
-    >>> data = np.array([1, 2, 4, 8])
-    >>> csr_array((data, (row, col)), shape=(3, 3)).toarray()
-    array([[9, 0, 0],
-           [0, 2, 0],
-           [0, 4, 0]])
-
-    As an example of how to construct a CSR array incrementally,
-    the following snippet builds a term-document array from texts:
-
-    >>> docs = [["hello", "world", "hello"], ["goodbye", "cruel", "world"]]
-    >>> indptr = [0]
-    >>> indices = []
-    >>> data = []
-    >>> vocabulary = {}
-    >>> for d in docs:
-    ...     for term in d:
-    ...         index = vocabulary.setdefault(term, len(vocabulary))
-    ...         indices.append(index)
-    ...         data.append(1)
-    ...     indptr.append(len(indices))
-    ...
-    >>> csr_array((data, indices, indptr), dtype=int).toarray()
-    array([[2, 1, 0, 0],
-           [0, 1, 1, 1]])
-
-    """
-
-
-class csr_matrix(spmatrix, _csr_base):
-    """
-    Compressed Sparse Row matrix.
-
-    This can be instantiated in several ways:
-        csr_matrix(D)
-            where D is a 2-D ndarray
-
-        csr_matrix(S)
-            with another sparse array or matrix S (equivalent to S.tocsr())
-
-        csr_matrix((M, N), [dtype])
-            to construct an empty matrix with shape (M, N)
-            dtype is optional, defaulting to dtype='d'.
-
-        csr_matrix((data, (row_ind, col_ind)), [shape=(M, N)])
-            where ``data``, ``row_ind`` and ``col_ind`` satisfy the
-            relationship ``a[row_ind[k], col_ind[k]] = data[k]``.
-
-        csr_matrix((data, indices, indptr), [shape=(M, N)])
-            is the standard CSR representation where the column indices for
-            row i are stored in ``indices[indptr[i]:indptr[i+1]]`` and their
-            corresponding values are stored in ``data[indptr[i]:indptr[i+1]]``.
-            If the shape parameter is not supplied, the matrix dimensions
-            are inferred from the index arrays.
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the matrix
-    shape : 2-tuple
-        Shape of the matrix
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        CSR format data array of the matrix
-    indices
-        CSR format index array of the matrix
-    indptr
-        CSR format index pointer array of the matrix
-    has_sorted_indices
-    has_canonical_format
-    T
-
-    Notes
-    -----
-
-    Sparse matrices can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    Advantages of the CSR format
-      - efficient arithmetic operations CSR + CSR, CSR * CSR, etc.
-      - efficient row slicing
-      - fast matrix vector products
-
-    Disadvantages of the CSR format
-      - slow column slicing operations (consider CSC)
-      - changes to the sparsity structure are expensive (consider LIL or DOK)
-
-    Canonical Format
-        - Within each row, indices are sorted by column.
-        - There are no duplicate entries.
-
-    Examples
-    --------
-
-    >>> import numpy as np
-    >>> from scipy.sparse import csr_matrix
-    >>> csr_matrix((3, 4), dtype=np.int8).toarray()
-    array([[0, 0, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 0]], dtype=int8)
-
-    >>> row = np.array([0, 0, 1, 2, 2, 2])
-    >>> col = np.array([0, 2, 2, 0, 1, 2])
-    >>> data = np.array([1, 2, 3, 4, 5, 6])
-    >>> csr_matrix((data, (row, col)), shape=(3, 3)).toarray()
-    array([[1, 0, 2],
-           [0, 0, 3],
-           [4, 5, 6]])
-
-    >>> indptr = np.array([0, 2, 3, 6])
-    >>> indices = np.array([0, 2, 2, 0, 1, 2])
-    >>> data = np.array([1, 2, 3, 4, 5, 6])
-    >>> csr_matrix((data, indices, indptr), shape=(3, 3)).toarray()
-    array([[1, 0, 2],
-           [0, 0, 3],
-           [4, 5, 6]])
-
-    Duplicate entries are summed together:
-
-    >>> row = np.array([0, 1, 2, 0])
-    >>> col = np.array([0, 1, 1, 0])
-    >>> data = np.array([1, 2, 4, 8])
-    >>> csr_matrix((data, (row, col)), shape=(3, 3)).toarray()
-    array([[9, 0, 0],
-           [0, 2, 0],
-           [0, 4, 0]])
-
-    As an example of how to construct a CSR matrix incrementally,
-    the following snippet builds a term-document matrix from texts:
-
-    >>> docs = [["hello", "world", "hello"], ["goodbye", "cruel", "world"]]
-    >>> indptr = [0]
-    >>> indices = []
-    >>> data = []
-    >>> vocabulary = {}
-    >>> for d in docs:
-    ...     for term in d:
-    ...         index = vocabulary.setdefault(term, len(vocabulary))
-    ...         indices.append(index)
-    ...         data.append(1)
-    ...     indptr.append(len(indices))
-    ...
-    >>> csr_matrix((data, indices, indptr), dtype=int).toarray()
-    array([[2, 1, 0, 0],
-           [0, 1, 1, 1]])
-
-    """
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_data.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_data.py
deleted file mode 100644
index 139888ee43e6678e438f71ed5db52a96c1f1d02d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_data.py
+++ /dev/null
@@ -1,515 +0,0 @@
-"""Base class for sparse matrice with a .data attribute
-
-    subclasses must provide a _with_data() method that
-    creates a new matrix with the same sparsity pattern
-    as self but with a different data array
-
-"""
-
-import math
-import numpy as np
-
-from ._base import _spbase, sparray, _ufuncs_with_fixed_point_at_zero
-from ._sputils import isscalarlike, validateaxis
-
-__all__ = []
-
-
-# TODO implement all relevant operations
-# use .data.__methods__() instead of /=, *=, etc.
-class _data_matrix(_spbase):
-    def __init__(self, arg1):
-        _spbase.__init__(self, arg1)
-
-    @property
-    def dtype(self):
-        return self.data.dtype
-
-    @dtype.setter
-    def dtype(self, newtype):
-        self.data.dtype = newtype
-
-    def _deduped_data(self):
-        if hasattr(self, 'sum_duplicates'):
-            self.sum_duplicates()
-        return self.data
-
-    def __abs__(self):
-        return self._with_data(abs(self._deduped_data()))
-
-    def __round__(self, ndigits=0):
-        return self._with_data(np.around(self._deduped_data(), decimals=ndigits))
-
-    def _real(self):
-        return self._with_data(self.data.real)
-
-    def _imag(self):
-        return self._with_data(self.data.imag)
-
-    def __neg__(self):
-        if self.dtype.kind == 'b':
-            raise NotImplementedError('negating a boolean sparse array is not '
-                                      'supported')
-        return self._with_data(-self.data)
-
-    def __imul__(self, other):  # self *= other
-        if isscalarlike(other):
-            self.data *= other
-            return self
-        else:
-            return NotImplemented
-
-    def __itruediv__(self, other):  # self /= other
-        if isscalarlike(other):
-            recip = 1.0 / other
-            self.data *= recip
-            return self
-        else:
-            return NotImplemented
-
-    def astype(self, dtype, casting='unsafe', copy=True):
-        dtype = np.dtype(dtype)
-        if self.dtype != dtype:
-            matrix = self._with_data(
-                self.data.astype(dtype, casting=casting, copy=True),
-                copy=True
-            )
-            return matrix._with_data(matrix._deduped_data(), copy=False)
-        elif copy:
-            return self.copy()
-        else:
-            return self
-
-    astype.__doc__ = _spbase.astype.__doc__
-
-    def conjugate(self, copy=True):
-        if np.issubdtype(self.dtype, np.complexfloating):
-            return self._with_data(self.data.conjugate(), copy=copy)
-        elif copy:
-            return self.copy()
-        else:
-            return self
-
-    conjugate.__doc__ = _spbase.conjugate.__doc__
-
-    def copy(self):
-        return self._with_data(self.data.copy(), copy=True)
-
-    copy.__doc__ = _spbase.copy.__doc__
-
-    def count_nonzero(self):
-        return np.count_nonzero(self._deduped_data())
-
-    count_nonzero.__doc__ = _spbase.count_nonzero.__doc__
-
-    def power(self, n, dtype=None):
-        """
-        This function performs element-wise power.
-
-        Parameters
-        ----------
-        n : scalar
-            n is a non-zero scalar (nonzero avoids dense ones creation)
-            If zero power is desired, special case it to use `np.ones`
-
-        dtype : If dtype is not specified, the current dtype will be preserved.
-
-        Raises
-        ------
-        NotImplementedError : if n is a zero scalar
-            If zero power is desired, special case it to use
-            `np.ones(A.shape, dtype=A.dtype)`
-        """
-        if not isscalarlike(n):
-            raise NotImplementedError("input is not scalar")
-        if not n:
-            raise NotImplementedError(
-                "zero power is not supported as it would densify the matrix.\n"
-                "Use `np.ones(A.shape, dtype=A.dtype)` for this case."
-            )
-
-        data = self._deduped_data()
-        if dtype is not None:
-            data = data.astype(dtype)
-        return self._with_data(data ** n)
-
-    ###########################
-    # Multiplication handlers #
-    ###########################
-
-    def _mul_scalar(self, other):
-        return self._with_data(self.data * other)
-
-
-# Add the numpy unary ufuncs for which func(0) = 0 to _data_matrix.
-for npfunc in _ufuncs_with_fixed_point_at_zero:
-    name = npfunc.__name__
-
-    def _create_method(op):
-        def method(self):
-            result = op(self._deduped_data())
-            return self._with_data(result, copy=True)
-
-        method.__doc__ = (f"Element-wise {name}.\n\n"
-                          f"See `numpy.{name}` for more information.")
-        method.__name__ = name
-
-        return method
-
-    setattr(_data_matrix, name, _create_method(npfunc))
-
-
-def _find_missing_index(ind, n):
-    for k, a in enumerate(ind):
-        if k != a:
-            return k
-
-    k += 1
-    if k < n:
-        return k
-    else:
-        return -1
-
-
-class _minmax_mixin:
-    """Mixin for min and max methods.
-
-    These are not implemented for dia_matrix, hence the separate class.
-    """
-
-    def _min_or_max_axis(self, axis, min_or_max):
-        N = self.shape[axis]
-        if N == 0:
-            raise ValueError("zero-size array to reduction operation")
-        M = self.shape[1 - axis]
-        idx_dtype = self._get_index_dtype(maxval=M)
-
-        mat = self.tocsc() if axis == 0 else self.tocsr()
-        mat.sum_duplicates()
-
-        major_index, value = mat._minor_reduce(min_or_max)
-        not_full = np.diff(mat.indptr)[major_index] < N
-        value[not_full] = min_or_max(value[not_full], 0)
-
-        mask = value != 0
-        major_index = np.compress(mask, major_index)
-        value = np.compress(mask, value)
-
-        if isinstance(self, sparray):
-            coords = (major_index,)
-            shape = (M,)
-            return self._coo_container((value, coords), shape=shape, dtype=self.dtype)
-
-        if axis == 0:
-            return self._coo_container(
-                (value, (np.zeros(len(value), dtype=idx_dtype), major_index)),
-                dtype=self.dtype, shape=(1, M)
-            )
-        else:
-            return self._coo_container(
-                (value, (major_index, np.zeros(len(value), dtype=idx_dtype))),
-                dtype=self.dtype, shape=(M, 1)
-            )
-
-    def _min_or_max(self, axis, out, min_or_max):
-        if out is not None:
-            raise ValueError("Sparse arrays do not support an 'out' parameter.")
-
-        validateaxis(axis)
-        if self.ndim == 1:
-            if axis not in (None, 0, -1):
-                raise ValueError("axis out of range")
-            axis = None  # avoid calling special axis case. no impact on 1d
-
-        if axis is None:
-            if 0 in self.shape:
-                raise ValueError("zero-size array to reduction operation")
-
-            zero = self.dtype.type(0)
-            if self.nnz == 0:
-                return zero
-            m = min_or_max.reduce(self._deduped_data().ravel())
-            if self.nnz != math.prod(self.shape):
-                m = min_or_max(zero, m)
-            return m
-
-        if axis < 0:
-            axis += 2
-
-        if (axis == 0) or (axis == 1):
-            return self._min_or_max_axis(axis, min_or_max)
-        else:
-            raise ValueError("axis out of range")
-
-    def _arg_min_or_max_axis(self, axis, argmin_or_argmax, compare):
-        if self.shape[axis] == 0:
-            raise ValueError("Cannot apply the operation along a zero-sized dimension.")
-
-        if axis < 0:
-            axis += 2
-
-        zero = self.dtype.type(0)
-
-        mat = self.tocsc() if axis == 0 else self.tocsr()
-        mat.sum_duplicates()
-
-        ret_size, line_size = mat._swap(mat.shape)
-        ret = np.zeros(ret_size, dtype=int)
-
-        nz_lines, = np.nonzero(np.diff(mat.indptr))
-        for i in nz_lines:
-            p, q = mat.indptr[i:i + 2]
-            data = mat.data[p:q]
-            indices = mat.indices[p:q]
-            extreme_index = argmin_or_argmax(data)
-            extreme_value = data[extreme_index]
-            if compare(extreme_value, zero) or q - p == line_size:
-                ret[i] = indices[extreme_index]
-            else:
-                zero_ind = _find_missing_index(indices, line_size)
-                if extreme_value == zero:
-                    ret[i] = min(extreme_index, zero_ind)
-                else:
-                    ret[i] = zero_ind
-
-        if isinstance(self, sparray):
-            return ret
-
-        if axis == 1:
-            ret = ret.reshape(-1, 1)
-
-        return self._ascontainer(ret)
-
-    def _arg_min_or_max(self, axis, out, argmin_or_argmax, compare):
-        if out is not None:
-            raise ValueError("Sparse types do not support an 'out' parameter.")
-
-        validateaxis(axis)
-
-        if self.ndim == 1:
-            if axis not in (None, 0, -1):
-                raise ValueError("axis out of range")
-            axis = None  # avoid calling special axis case. no impact on 1d
-
-        if axis is not None:
-            return self._arg_min_or_max_axis(axis, argmin_or_argmax, compare)
-
-        if 0 in self.shape:
-            raise ValueError("Cannot apply the operation to an empty matrix.")
-
-        if self.nnz == 0:
-            return 0
-
-        zero = self.dtype.type(0)
-        mat = self.tocoo()
-        # Convert to canonical form: no duplicates, sorted indices.
-        mat.sum_duplicates()
-        extreme_index = argmin_or_argmax(mat.data)
-        extreme_value = mat.data[extreme_index]
-        num_col = mat.shape[-1]
-
-        # If the min value is less than zero, or max is greater than zero,
-        # then we do not need to worry about implicit zeros.
-        if compare(extreme_value, zero):
-            # cast to Python int to avoid overflow and RuntimeError
-            return int(mat.row[extreme_index]) * num_col + int(mat.col[extreme_index])
-
-        # Cheap test for the rare case where we have no implicit zeros.
-        size = math.prod(self.shape)
-        if size == mat.nnz:
-            return int(mat.row[extreme_index]) * num_col + int(mat.col[extreme_index])
-
-        # At this stage, any implicit zero could be the min or max value.
-        # After sum_duplicates(), the `row` and `col` arrays are guaranteed to
-        # be sorted in C-order, which means the linearized indices are sorted.
-        linear_indices = mat.row * num_col + mat.col
-        first_implicit_zero_index = _find_missing_index(linear_indices, size)
-        if extreme_value == zero:
-            return min(first_implicit_zero_index, extreme_index)
-        return first_implicit_zero_index
-
-    def max(self, axis=None, out=None):
-        """
-        Return the maximum of the array/matrix or maximum along an axis.
-        This takes all elements into account, not just the non-zero ones.
-
-        Parameters
-        ----------
-        axis : {-2, -1, 0, 1, None} optional
-            Axis along which the sum is computed. The default is to
-            compute the maximum over all elements, returning
-            a scalar (i.e., `axis` = `None`).
-
-        out : None, optional
-            This argument is in the signature *solely* for NumPy
-            compatibility reasons. Do not pass in anything except
-            for the default value, as this argument is not used.
-
-        Returns
-        -------
-        amax : coo_matrix or scalar
-            Maximum of `a`. If `axis` is None, the result is a scalar value.
-            If `axis` is given, the result is a sparse.coo_matrix of dimension
-            ``a.ndim - 1``.
-
-        See Also
-        --------
-        min : The minimum value of a sparse array/matrix along a given axis.
-        numpy.matrix.max : NumPy's implementation of 'max' for matrices
-
-        """
-        return self._min_or_max(axis, out, np.maximum)
-
-    def min(self, axis=None, out=None):
-        """
-        Return the minimum of the array/matrix or maximum along an axis.
-        This takes all elements into account, not just the non-zero ones.
-
-        Parameters
-        ----------
-        axis : {-2, -1, 0, 1, None} optional
-            Axis along which the sum is computed. The default is to
-            compute the minimum over all elements, returning
-            a scalar (i.e., `axis` = `None`).
-
-        out : None, optional
-            This argument is in the signature *solely* for NumPy
-            compatibility reasons. Do not pass in anything except for
-            the default value, as this argument is not used.
-
-        Returns
-        -------
-        amin : coo_matrix or scalar
-            Minimum of `a`. If `axis` is None, the result is a scalar value.
-            If `axis` is given, the result is a sparse.coo_matrix of dimension
-            ``a.ndim - 1``.
-
-        See Also
-        --------
-        max : The maximum value of a sparse array/matrix along a given axis.
-        numpy.matrix.min : NumPy's implementation of 'min' for matrices
-
-        """
-        return self._min_or_max(axis, out, np.minimum)
-
-    def nanmax(self, axis=None, out=None):
-        """
-        Return the maximum of the array/matrix or maximum along an axis, ignoring any
-        NaNs. This takes all elements into account, not just the non-zero
-        ones.
-
-        .. versionadded:: 1.11.0
-
-        Parameters
-        ----------
-        axis : {-2, -1, 0, 1, None} optional
-            Axis along which the maximum is computed. The default is to
-            compute the maximum over all elements, returning
-            a scalar (i.e., `axis` = `None`).
-
-        out : None, optional
-            This argument is in the signature *solely* for NumPy
-            compatibility reasons. Do not pass in anything except
-            for the default value, as this argument is not used.
-
-        Returns
-        -------
-        amax : coo_matrix or scalar
-            Maximum of `a`. If `axis` is None, the result is a scalar value.
-            If `axis` is given, the result is a sparse.coo_matrix of dimension
-            ``a.ndim - 1``.
-
-        See Also
-        --------
-        nanmin : The minimum value of a sparse array/matrix along a given axis,
-                 ignoring NaNs.
-        max : The maximum value of a sparse array/matrix along a given axis,
-              propagating NaNs.
-        numpy.nanmax : NumPy's implementation of 'nanmax'.
-
-        """
-        return self._min_or_max(axis, out, np.fmax)
-
-    def nanmin(self, axis=None, out=None):
-        """
-        Return the minimum of the array/matrix or minimum along an axis, ignoring any
-        NaNs. This takes all elements into account, not just the non-zero
-        ones.
-
-        .. versionadded:: 1.11.0
-
-        Parameters
-        ----------
-        axis : {-2, -1, 0, 1, None} optional
-            Axis along which the minimum is computed. The default is to
-            compute the minimum over all elements, returning
-            a scalar (i.e., `axis` = `None`).
-
-        out : None, optional
-            This argument is in the signature *solely* for NumPy
-            compatibility reasons. Do not pass in anything except for
-            the default value, as this argument is not used.
-
-        Returns
-        -------
-        amin : coo_matrix or scalar
-            Minimum of `a`. If `axis` is None, the result is a scalar value.
-            If `axis` is given, the result is a sparse.coo_matrix of dimension
-            ``a.ndim - 1``.
-
-        See Also
-        --------
-        nanmax : The maximum value of a sparse array/matrix along a given axis,
-                 ignoring NaNs.
-        min : The minimum value of a sparse array/matrix along a given axis,
-              propagating NaNs.
-        numpy.nanmin : NumPy's implementation of 'nanmin'.
-
-        """
-        return self._min_or_max(axis, out, np.fmin)
-
-    def argmax(self, axis=None, out=None):
-        """Return indices of maximum elements along an axis.
-
-        Implicit zero elements are also taken into account. If there are
-        several maximum values, the index of the first occurrence is returned.
-
-        Parameters
-        ----------
-        axis : {-2, -1, 0, 1, None}, optional
-            Axis along which the argmax is computed. If None (default), index
-            of the maximum element in the flatten data is returned.
-        out : None, optional
-            This argument is in the signature *solely* for NumPy
-            compatibility reasons. Do not pass in anything except for
-            the default value, as this argument is not used.
-
-        Returns
-        -------
-        ind : numpy.matrix or int
-            Indices of maximum elements. If matrix, its size along `axis` is 1.
-        """
-        return self._arg_min_or_max(axis, out, np.argmax, np.greater)
-
-    def argmin(self, axis=None, out=None):
-        """Return indices of minimum elements along an axis.
-
-        Implicit zero elements are also taken into account. If there are
-        several minimum values, the index of the first occurrence is returned.
-
-        Parameters
-        ----------
-        axis : {-2, -1, 0, 1, None}, optional
-            Axis along which the argmin is computed. If None (default), index
-            of the minimum element in the flatten data is returned.
-        out : None, optional
-            This argument is in the signature *solely* for NumPy
-            compatibility reasons. Do not pass in anything except for
-            the default value, as this argument is not used.
-
-        Returns
-        -------
-         ind : numpy.matrix or int
-            Indices of minimum elements. If matrix, its size along `axis` is 1.
-        """
-        return self._arg_min_or_max(axis, out, np.argmin, np.less)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_dia.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_dia.py
deleted file mode 100644
index ab6d5dcdccadbadbf0a2b15a80e39d49bf513349..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_dia.py
+++ /dev/null
@@ -1,585 +0,0 @@
-"""Sparse DIAgonal format"""
-
-__docformat__ = "restructuredtext en"
-
-__all__ = ['dia_array', 'dia_matrix', 'isspmatrix_dia']
-
-import numpy as np
-
-from .._lib._util import copy_if_needed
-from ._matrix import spmatrix
-from ._base import issparse, _formats, _spbase, sparray
-from ._data import _data_matrix
-from ._sputils import (
-    isshape, upcast_char, getdtype, get_sum_dtype, validateaxis, check_shape
-)
-from ._sparsetools import dia_matvec
-
-
-class _dia_base(_data_matrix):
-    _format = 'dia'
-
-    def __init__(self, arg1, shape=None, dtype=None, copy=False):
-        _data_matrix.__init__(self, arg1)
-
-        if issparse(arg1):
-            if arg1.format == "dia":
-                if copy:
-                    arg1 = arg1.copy()
-                self.data = arg1.data
-                self.offsets = arg1.offsets
-                self._shape = check_shape(arg1.shape)
-            else:
-                if arg1.format == self.format and copy:
-                    A = arg1.copy()
-                else:
-                    A = arg1.todia()
-                self.data = A.data
-                self.offsets = A.offsets
-                self._shape = check_shape(A.shape)
-        elif isinstance(arg1, tuple):
-            if isshape(arg1):
-                # It's a tuple of matrix dimensions (M, N)
-                # create empty matrix
-                self._shape = check_shape(arg1)
-                self.data = np.zeros((0,0), getdtype(dtype, default=float))
-                idx_dtype = self._get_index_dtype(maxval=max(self.shape))
-                self.offsets = np.zeros((0), dtype=idx_dtype)
-            else:
-                try:
-                    # Try interpreting it as (data, offsets)
-                    data, offsets = arg1
-                except Exception as e:
-                    message = 'unrecognized form for dia_array constructor'
-                    raise ValueError(message) from e
-                else:
-                    if shape is None:
-                        raise ValueError('expected a shape argument')
-                    if not copy:
-                        copy = copy_if_needed
-                    self.data = np.atleast_2d(np.array(arg1[0], dtype=dtype, copy=copy))
-                    offsets = np.array(arg1[1],
-                                       dtype=self._get_index_dtype(maxval=max(shape)),
-                                       copy=copy)
-                    self.offsets = np.atleast_1d(offsets)
-                    self._shape = check_shape(shape)
-        else:
-            # must be dense, convert to COO first, then to DIA
-            try:
-                arg1 = np.asarray(arg1)
-            except Exception as e:
-                raise ValueError("unrecognized form for"
-                        " %s_matrix constructor" % self.format) from e
-            if isinstance(self, sparray) and arg1.ndim != 2:
-                raise ValueError(f"DIA arrays don't support {arg1.ndim}D input. Use 2D")
-            A = self._coo_container(arg1, dtype=dtype, shape=shape).todia()
-            self.data = A.data
-            self.offsets = A.offsets
-            self._shape = check_shape(A.shape)
-
-        if dtype is not None:
-            self.data = self.data.astype(dtype)
-
-        # check format
-        if self.offsets.ndim != 1:
-            raise ValueError('offsets array must have rank 1')
-
-        if self.data.ndim != 2:
-            raise ValueError('data array must have rank 2')
-
-        if self.data.shape[0] != len(self.offsets):
-            raise ValueError('number of diagonals (%d) '
-                    'does not match the number of offsets (%d)'
-                    % (self.data.shape[0], len(self.offsets)))
-
-        if len(np.unique(self.offsets)) != len(self.offsets):
-            raise ValueError('offset array contains duplicate values')
-
-    def __repr__(self):
-        _, fmt = _formats[self.format]
-        sparse_cls = 'array' if isinstance(self, sparray) else 'matrix'
-        d = self.data.shape[0]
-        return (
-            f"<{fmt} sparse {sparse_cls} of dtype '{self.dtype}'\n"
-            f"\twith {self.nnz} stored elements ({d} diagonals) and shape {self.shape}>"
-        )
-
-    def _data_mask(self):
-        """Returns a mask of the same shape as self.data, where
-        mask[i,j] is True when data[i,j] corresponds to a stored element."""
-        num_rows, num_cols = self.shape
-        offset_inds = np.arange(self.data.shape[1])
-        row = offset_inds - self.offsets[:,None]
-        mask = (row >= 0)
-        mask &= (row < num_rows)
-        mask &= (offset_inds < num_cols)
-        return mask
-
-    def count_nonzero(self):
-        mask = self._data_mask()
-        return np.count_nonzero(self.data[mask])
-
-    def _getnnz(self, axis=None):
-        if axis is not None:
-            raise NotImplementedError("_getnnz over an axis is not implemented "
-                                      "for DIA format")
-        M,N = self.shape
-        nnz = 0
-        for k in self.offsets:
-            if k > 0:
-                nnz += min(M,N-k)
-            else:
-                nnz += min(M+k,N)
-        return int(nnz)
-
-    _getnnz.__doc__ = _spbase._getnnz.__doc__
-    count_nonzero.__doc__ = _spbase.count_nonzero.__doc__
-
-    def sum(self, axis=None, dtype=None, out=None):
-        validateaxis(axis)
-
-        if axis is not None and axis < 0:
-            axis += 2
-
-        res_dtype = get_sum_dtype(self.dtype)
-        num_rows, num_cols = self.shape
-        ret = None
-
-        if axis == 0:
-            mask = self._data_mask()
-            x = (self.data * mask).sum(axis=0)
-            if x.shape[0] == num_cols:
-                res = x
-            else:
-                res = np.zeros(num_cols, dtype=x.dtype)
-                res[:x.shape[0]] = x
-            ret = self._ascontainer(res, dtype=res_dtype)
-
-        else:
-            row_sums = np.zeros((num_rows, 1), dtype=res_dtype)
-            one = np.ones(num_cols, dtype=res_dtype)
-            dia_matvec(num_rows, num_cols, len(self.offsets),
-                       self.data.shape[1], self.offsets, self.data, one, row_sums)
-
-            row_sums = self._ascontainer(row_sums)
-
-            if axis is None:
-                return row_sums.sum(dtype=dtype, out=out)
-
-            ret = self._ascontainer(row_sums.sum(axis=axis))
-
-        if out is not None and out.shape != ret.shape:
-            raise ValueError("dimensions do not match")
-
-        return ret.sum(axis=(), dtype=dtype, out=out)
-
-    sum.__doc__ = _spbase.sum.__doc__
-
-    def _add_sparse(self, other):
-        # If other is not DIA format, let them handle us instead.
-        if not isinstance(other, _dia_base):
-            return other._add_sparse(self)
-
-        # Fast path for exact equality of the sparsity structure.
-        if np.array_equal(self.offsets, other.offsets):
-            return self._with_data(self.data + other.data)
-
-        # Find the union of the offsets (which will be sorted and unique).
-        new_offsets = np.union1d(self.offsets, other.offsets)
-        self_idx = np.searchsorted(new_offsets, self.offsets)
-        other_idx = np.searchsorted(new_offsets, other.offsets)
-
-        self_d = self.data.shape[1]
-        other_d = other.data.shape[1]
-        # Fast path for a sparsity structure where the final offsets are a
-        # permutation of the existing offsets and the diagonal lengths match.
-        if self_d == other_d and len(new_offsets) == len(self.offsets):
-            new_data = self.data[_invert_index(self_idx)]
-            new_data[other_idx, :] += other.data
-        elif self_d == other_d and len(new_offsets) == len(other.offsets):
-            new_data = other.data[_invert_index(other_idx)]
-            new_data[self_idx, :] += self.data
-        else:
-            # Maximum diagonal length of the result.
-            d = min(self.shape[0] + new_offsets[-1], self.shape[1])
-
-            # Add all diagonals to a freshly-allocated data array.
-            new_data = np.zeros(
-                (len(new_offsets), d),
-                dtype=np.result_type(self.data, other.data),
-            )
-            new_data[self_idx, :self_d] += self.data[:, :d]
-            new_data[other_idx, :other_d] += other.data[:, :d]
-        return self._dia_container((new_data, new_offsets), shape=self.shape)
-
-    def _mul_scalar(self, other):
-        return self._with_data(self.data * other)
-
-    def _matmul_vector(self, other):
-        x = other
-
-        y = np.zeros(self.shape[0], dtype=upcast_char(self.dtype.char,
-                                                       x.dtype.char))
-
-        L = self.data.shape[1]
-
-        M,N = self.shape
-
-        dia_matvec(M,N, len(self.offsets), L, self.offsets, self.data,
-                   x.ravel(), y.ravel())
-
-        return y
-
-    def _setdiag(self, values, k=0):
-        M, N = self.shape
-
-        if values.ndim == 0:
-            # broadcast
-            values_n = np.inf
-        else:
-            values_n = len(values)
-
-        if k < 0:
-            n = min(M + k, N, values_n)
-            min_index = 0
-            max_index = n
-        else:
-            n = min(M, N - k, values_n)
-            min_index = k
-            max_index = k + n
-
-        if values.ndim != 0:
-            # allow also longer sequences
-            values = values[:n]
-
-        data_rows, data_cols = self.data.shape
-        if k in self.offsets:
-            if max_index > data_cols:
-                data = np.zeros((data_rows, max_index), dtype=self.data.dtype)
-                data[:, :data_cols] = self.data
-                self.data = data
-            self.data[self.offsets == k, min_index:max_index] = values
-        else:
-            self.offsets = np.append(self.offsets, self.offsets.dtype.type(k))
-            m = max(max_index, data_cols)
-            data = np.zeros((data_rows + 1, m), dtype=self.data.dtype)
-            data[:-1, :data_cols] = self.data
-            data[-1, min_index:max_index] = values
-            self.data = data
-
-    def todia(self, copy=False):
-        if copy:
-            return self.copy()
-        else:
-            return self
-
-    todia.__doc__ = _spbase.todia.__doc__
-
-    def transpose(self, axes=None, copy=False):
-        if axes is not None and axes != (1, 0):
-            raise ValueError("Sparse arrays/matrices do not support "
-                              "an 'axes' parameter because swapping "
-                              "dimensions is the only logical permutation.")
-
-        num_rows, num_cols = self.shape
-        max_dim = max(self.shape)
-
-        # flip diagonal offsets
-        offsets = -self.offsets
-
-        # re-align the data matrix
-        r = np.arange(len(offsets), dtype=np.intc)[:, None]
-        c = np.arange(num_rows, dtype=np.intc) - (offsets % max_dim)[:, None]
-        pad_amount = max(0, max_dim-self.data.shape[1])
-        data = np.hstack((self.data, np.zeros((self.data.shape[0], pad_amount),
-                                              dtype=self.data.dtype)))
-        data = data[r, c]
-        return self._dia_container((data, offsets), shape=(
-            num_cols, num_rows), copy=copy)
-
-    transpose.__doc__ = _spbase.transpose.__doc__
-
-    def diagonal(self, k=0):
-        rows, cols = self.shape
-        if k <= -rows or k >= cols:
-            return np.empty(0, dtype=self.data.dtype)
-        idx, = np.nonzero(self.offsets == k)
-        first_col = max(0, k)
-        last_col = min(rows + k, cols)
-        result_size = last_col - first_col
-        if idx.size == 0:
-            return np.zeros(result_size, dtype=self.data.dtype)
-        result = self.data[idx[0], first_col:last_col]
-        padding = result_size - len(result)
-        if padding > 0:
-            result = np.pad(result, (0, padding), mode='constant')
-        return result
-
-    diagonal.__doc__ = _spbase.diagonal.__doc__
-
-    def tocsc(self, copy=False):
-        if self.nnz == 0:
-            return self._csc_container(self.shape, dtype=self.dtype)
-
-        num_rows, num_cols = self.shape
-        num_offsets, offset_len = self.data.shape
-        offset_inds = np.arange(offset_len)
-
-        row = offset_inds - self.offsets[:,None]
-        mask = (row >= 0)
-        mask &= (row < num_rows)
-        mask &= (offset_inds < num_cols)
-        mask &= (self.data != 0)
-
-        idx_dtype = self._get_index_dtype(maxval=max(self.shape))
-        indptr = np.zeros(num_cols + 1, dtype=idx_dtype)
-        indptr[1:offset_len+1] = np.cumsum(mask.sum(axis=0)[:num_cols])
-        if offset_len < num_cols:
-            indptr[offset_len+1:] = indptr[offset_len]
-        indices = row.T[mask.T].astype(idx_dtype, copy=False)
-        data = self.data.T[mask.T]
-        return self._csc_container((data, indices, indptr), shape=self.shape,
-                                   dtype=self.dtype)
-
-    tocsc.__doc__ = _spbase.tocsc.__doc__
-
-    def tocoo(self, copy=False):
-        num_rows, num_cols = self.shape
-        num_offsets, offset_len = self.data.shape
-        offset_inds = np.arange(offset_len)
-
-        row = offset_inds - self.offsets[:,None]
-        mask = (row >= 0)
-        mask &= (row < num_rows)
-        mask &= (offset_inds < num_cols)
-        mask &= (self.data != 0)
-        row = row[mask]
-        col = np.tile(offset_inds, num_offsets)[mask.ravel()]
-        idx_dtype = self._get_index_dtype(
-            arrays=(self.offsets,), maxval=max(self.shape)
-        )
-        row = row.astype(idx_dtype, copy=False)
-        col = col.astype(idx_dtype, copy=False)
-        data = self.data[mask]
-        # Note: this cannot set has_canonical_format=True, because despite the
-        # lack of duplicates, we do not generate sorted indices.
-        return self._coo_container(
-            (data, (row, col)), shape=self.shape, dtype=self.dtype, copy=False
-        )
-
-    tocoo.__doc__ = _spbase.tocoo.__doc__
-
-    # needed by _data_matrix
-    def _with_data(self, data, copy=True):
-        """Returns a matrix with the same sparsity structure as self,
-        but with different data.  By default the structure arrays are copied.
-        """
-        if copy:
-            return self._dia_container(
-                (data, self.offsets.copy()), shape=self.shape
-            )
-        else:
-            return self._dia_container(
-                (data, self.offsets), shape=self.shape
-            )
-
-    def resize(self, *shape):
-        shape = check_shape(shape)
-        M, N = shape
-        # we do not need to handle the case of expanding N
-        self.data = self.data[:, :N]
-
-        if (M > self.shape[0] and
-                np.any(self.offsets + self.shape[0] < self.data.shape[1])):
-            # explicitly clear values that were previously hidden
-            mask = (self.offsets[:, None] + self.shape[0] <=
-                    np.arange(self.data.shape[1]))
-            self.data[mask] = 0
-
-        self._shape = shape
-
-    resize.__doc__ = _spbase.resize.__doc__
-
-
-def _invert_index(idx):
-    """Helper function to invert an index array."""
-    inv = np.zeros_like(idx)
-    inv[idx] = np.arange(len(idx))
-    return inv
-
-
-def isspmatrix_dia(x):
-    """Is `x` of dia_matrix type?
-
-    Parameters
-    ----------
-    x
-        object to check for being a dia matrix
-
-    Returns
-    -------
-    bool
-        True if `x` is a dia matrix, False otherwise
-
-    Examples
-    --------
-    >>> from scipy.sparse import dia_array, dia_matrix, coo_matrix, isspmatrix_dia
-    >>> isspmatrix_dia(dia_matrix([[5]]))
-    True
-    >>> isspmatrix_dia(dia_array([[5]]))
-    False
-    >>> isspmatrix_dia(coo_matrix([[5]]))
-    False
-    """
-    return isinstance(x, dia_matrix)
-
-
-# This namespace class separates array from matrix with isinstance
-class dia_array(_dia_base, sparray):
-    """
-    Sparse array with DIAgonal storage.
-
-    This can be instantiated in several ways:
-        dia_array(D)
-            where D is a 2-D ndarray
-
-        dia_array(S)
-            with another sparse array or matrix S (equivalent to S.todia())
-
-        dia_array((M, N), [dtype])
-            to construct an empty array with shape (M, N),
-            dtype is optional, defaulting to dtype='d'.
-
-        dia_array((data, offsets), shape=(M, N))
-            where the ``data[k,:]`` stores the diagonal entries for
-            diagonal ``offsets[k]`` (See example below)
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the array
-    shape : 2-tuple
-        Shape of the array
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        DIA format data array of the array
-    offsets
-        DIA format offset array of the array
-    T
-
-    Notes
-    -----
-
-    Sparse arrays can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    Examples
-    --------
-
-    >>> import numpy as np
-    >>> from scipy.sparse import dia_array
-    >>> dia_array((3, 4), dtype=np.int8).toarray()
-    array([[0, 0, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 0]], dtype=int8)
-
-    >>> data = np.array([[1, 2, 3, 4]]).repeat(3, axis=0)
-    >>> offsets = np.array([0, -1, 2])
-    >>> dia_array((data, offsets), shape=(4, 4)).toarray()
-    array([[1, 0, 3, 0],
-           [1, 2, 0, 4],
-           [0, 2, 3, 0],
-           [0, 0, 3, 4]])
-
-    >>> from scipy.sparse import dia_array
-    >>> n = 10
-    >>> ex = np.ones(n)
-    >>> data = np.array([ex, 2 * ex, ex])
-    >>> offsets = np.array([-1, 0, 1])
-    >>> dia_array((data, offsets), shape=(n, n)).toarray()
-    array([[2., 1., 0., ..., 0., 0., 0.],
-           [1., 2., 1., ..., 0., 0., 0.],
-           [0., 1., 2., ..., 0., 0., 0.],
-           ...,
-           [0., 0., 0., ..., 2., 1., 0.],
-           [0., 0., 0., ..., 1., 2., 1.],
-           [0., 0., 0., ..., 0., 1., 2.]])
-    """
-
-
-class dia_matrix(spmatrix, _dia_base):
-    """
-    Sparse matrix with DIAgonal storage.
-
-    This can be instantiated in several ways:
-        dia_matrix(D)
-            where D is a 2-D ndarray
-
-        dia_matrix(S)
-            with another sparse array or matrix S (equivalent to S.todia())
-
-        dia_matrix((M, N), [dtype])
-            to construct an empty matrix with shape (M, N),
-            dtype is optional, defaulting to dtype='d'.
-
-        dia_matrix((data, offsets), shape=(M, N))
-            where the ``data[k,:]`` stores the diagonal entries for
-            diagonal ``offsets[k]`` (See example below)
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the matrix
-    shape : 2-tuple
-        Shape of the matrix
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        DIA format data array of the matrix
-    offsets
-        DIA format offset array of the matrix
-    T
-
-    Notes
-    -----
-
-    Sparse matrices can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    Examples
-    --------
-
-    >>> import numpy as np
-    >>> from scipy.sparse import dia_matrix
-    >>> dia_matrix((3, 4), dtype=np.int8).toarray()
-    array([[0, 0, 0, 0],
-           [0, 0, 0, 0],
-           [0, 0, 0, 0]], dtype=int8)
-
-    >>> data = np.array([[1, 2, 3, 4]]).repeat(3, axis=0)
-    >>> offsets = np.array([0, -1, 2])
-    >>> dia_matrix((data, offsets), shape=(4, 4)).toarray()
-    array([[1, 0, 3, 0],
-           [1, 2, 0, 4],
-           [0, 2, 3, 0],
-           [0, 0, 3, 4]])
-
-    >>> from scipy.sparse import dia_matrix
-    >>> n = 10
-    >>> ex = np.ones(n)
-    >>> data = np.array([ex, 2 * ex, ex])
-    >>> offsets = np.array([-1, 0, 1])
-    >>> dia_matrix((data, offsets), shape=(n, n)).toarray()
-    array([[2., 1., 0., ..., 0., 0., 0.],
-           [1., 2., 1., ..., 0., 0., 0.],
-           [0., 1., 2., ..., 0., 0., 0.],
-           ...,
-           [0., 0., 0., ..., 2., 1., 0.],
-           [0., 0., 0., ..., 1., 2., 1.],
-           [0., 0., 0., ..., 0., 1., 2.]])
-    """
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_dok.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_dok.py
deleted file mode 100644
index 08a039136ff3d5474468976297eb2120adbaa5b4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_dok.py
+++ /dev/null
@@ -1,684 +0,0 @@
-"""Dictionary Of Keys based matrix"""
-
-__docformat__ = "restructuredtext en"
-
-__all__ = ['dok_array', 'dok_matrix', 'isspmatrix_dok']
-
-import itertools
-from warnings import warn
-import numpy as np
-
-from ._matrix import spmatrix
-from ._base import _spbase, sparray, issparse
-from ._index import IndexMixin
-from ._sputils import (isdense, getdtype, isshape, isintlike, isscalarlike,
-                       upcast, upcast_scalar, check_shape)
-
-
-class _dok_base(_spbase, IndexMixin, dict):
-    _format = 'dok'
-
-    def __init__(self, arg1, shape=None, dtype=None, copy=False):
-        _spbase.__init__(self, arg1)
-
-        is_array = isinstance(self, sparray)
-        if isinstance(arg1, tuple) and isshape(arg1, allow_1d=is_array):
-            self._shape = check_shape(arg1, allow_1d=is_array)
-            self._dict = {}
-            self.dtype = getdtype(dtype, default=float)
-        elif issparse(arg1):  # Sparse ctor
-            if arg1.format == self.format:
-                arg1 = arg1.copy() if copy else arg1
-            else:
-                arg1 = arg1.todok()
-
-            if dtype is not None:
-                arg1 = arg1.astype(dtype, copy=False)
-
-            self._dict = arg1._dict
-            self._shape = check_shape(arg1.shape, allow_1d=is_array)
-            self.dtype = arg1.dtype
-        else:  # Dense ctor
-            try:
-                arg1 = np.asarray(arg1)
-            except Exception as e:
-                raise TypeError('Invalid input format.') from e
-
-            if arg1.ndim > 2:
-                raise TypeError('Expected rank <=2 dense array or matrix.')
-
-            if arg1.ndim == 1:
-                if dtype is not None:
-                    arg1 = arg1.astype(dtype)
-                self._dict = {i: v for i, v in enumerate(arg1) if v != 0}
-                self.dtype = arg1.dtype
-            else:
-                d = self._coo_container(arg1, dtype=dtype).todok()
-                self._dict = d._dict
-                self.dtype = d.dtype
-            self._shape = check_shape(arg1.shape, allow_1d=is_array)
-
-    def update(self, val):
-        # Prevent direct usage of update
-        raise NotImplementedError("Direct update to DOK sparse format is not allowed.")
-
-    def _getnnz(self, axis=None):
-        if axis is not None:
-            raise NotImplementedError(
-                "_getnnz over an axis is not implemented for DOK format."
-            )
-        return len(self._dict)
-
-    def count_nonzero(self):
-        return sum(x != 0 for x in self.values())
-
-    _getnnz.__doc__ = _spbase._getnnz.__doc__
-    count_nonzero.__doc__ = _spbase.count_nonzero.__doc__
-
-    def __len__(self):
-        return len(self._dict)
-
-    def __contains__(self, key):
-        return key in self._dict
-
-    def setdefault(self, key, default=None, /):
-        return self._dict.setdefault(key, default)
-
-    def __delitem__(self, key, /):
-        del self._dict[key]
-
-    def clear(self):
-        return self._dict.clear()
-
-    def pop(self, /, *args):
-        return self._dict.pop(*args)
-
-    def __reversed__(self):
-        raise TypeError("reversed is not defined for dok_array type")
-
-    def __or__(self, other):
-        type_names = f"{type(self).__name__} and {type(other).__name__}"
-        raise TypeError(f"unsupported operand type for |: {type_names}")
-
-    def __ror__(self, other):
-        type_names = f"{type(self).__name__} and {type(other).__name__}"
-        raise TypeError(f"unsupported operand type for |: {type_names}")
-
-    def __ior__(self, other):
-        type_names = f"{type(self).__name__} and {type(other).__name__}"
-        raise TypeError(f"unsupported operand type for |: {type_names}")
-
-    def popitem(self):
-        return self._dict.popitem()
-
-    def items(self):
-        return self._dict.items()
-
-    def keys(self):
-        return self._dict.keys()
-
-    def values(self):
-        return self._dict.values()
-
-    def get(self, key, default=0.0):
-        """This provides dict.get method functionality with type checking"""
-        if key in self._dict:
-            return self._dict[key]
-        if isintlike(key) and self.ndim == 1:
-            key = (key,)
-        if self.ndim != len(key):
-            raise IndexError(f'Index {key} length needs to match self.shape')
-        try:
-            for i in key:
-                assert isintlike(i)
-        except (AssertionError, TypeError, ValueError) as e:
-            raise IndexError('Index must be or consist of integers.') from e
-        key = tuple(i + M if i < 0 else i for i, M in zip(key, self.shape))
-        if any(i < 0 or i >= M for i, M in zip(key, self.shape)):
-            raise IndexError('Index out of bounds.')
-        if self.ndim == 1:
-            key = key[0]
-        return self._dict.get(key, default)
-
-    # override IndexMixin.__getitem__ for 1d case until fully implemented
-    def __getitem__(self, key):
-        if self.ndim == 2:
-            return super().__getitem__(key)
-
-        if isinstance(key, tuple) and len(key) == 1:
-            key = key[0]
-        INT_TYPES = (int, np.integer)
-        if isinstance(key, INT_TYPES):
-            if key < 0:
-                key += self.shape[-1]
-            if key < 0 or key >= self.shape[-1]:
-                raise IndexError('index value out of bounds')
-            return self._get_int(key)
-        else:
-            raise IndexError('array/slice index for 1d dok_array not yet supported')
-
-    # 1D get methods
-    def _get_int(self, idx):
-        return self._dict.get(idx, self.dtype.type(0))
-
-    # 2D get methods
-    def _get_intXint(self, row, col):
-        return self._dict.get((row, col), self.dtype.type(0))
-
-    def _get_intXslice(self, row, col):
-        return self._get_sliceXslice(slice(row, row + 1), col)
-
-    def _get_sliceXint(self, row, col):
-        return self._get_sliceXslice(row, slice(col, col + 1))
-
-    def _get_sliceXslice(self, row, col):
-        row_start, row_stop, row_step = row.indices(self.shape[0])
-        col_start, col_stop, col_step = col.indices(self.shape[1])
-        row_range = range(row_start, row_stop, row_step)
-        col_range = range(col_start, col_stop, col_step)
-        shape = (len(row_range), len(col_range))
-        # Switch paths only when advantageous
-        # (count the iterations in the loops, adjust for complexity)
-        if len(self) >= 2 * shape[0] * shape[1]:
-            # O(nr*nc) path: loop over 
-            return self._get_columnXarray(row_range, col_range)
-        # O(nnz) path: loop over entries of self
-        newdok = self._dok_container(shape, dtype=self.dtype)
-        for key in self.keys():
-            i, ri = divmod(int(key[0]) - row_start, row_step)
-            if ri != 0 or i < 0 or i >= shape[0]:
-                continue
-            j, rj = divmod(int(key[1]) - col_start, col_step)
-            if rj != 0 or j < 0 or j >= shape[1]:
-                continue
-            newdok._dict[i, j] = self._dict[key]
-        return newdok
-
-    def _get_intXarray(self, row, col):
-        col = col.squeeze()
-        return self._get_columnXarray([row], col)
-
-    def _get_arrayXint(self, row, col):
-        row = row.squeeze()
-        return self._get_columnXarray(row, [col])
-
-    def _get_sliceXarray(self, row, col):
-        row = list(range(*row.indices(self.shape[0])))
-        return self._get_columnXarray(row, col)
-
-    def _get_arrayXslice(self, row, col):
-        col = list(range(*col.indices(self.shape[1])))
-        return self._get_columnXarray(row, col)
-
-    def _get_columnXarray(self, row, col):
-        # outer indexing
-        newdok = self._dok_container((len(row), len(col)), dtype=self.dtype)
-
-        for i, r in enumerate(row):
-            for j, c in enumerate(col):
-                v = self._dict.get((r, c), 0)
-                if v:
-                    newdok._dict[i, j] = v
-        return newdok
-
-    def _get_arrayXarray(self, row, col):
-        # inner indexing
-        i, j = map(np.atleast_2d, np.broadcast_arrays(row, col))
-        newdok = self._dok_container(i.shape, dtype=self.dtype)
-
-        for key in itertools.product(range(i.shape[0]), range(i.shape[1])):
-            v = self._dict.get((i[key], j[key]), 0)
-            if v:
-                newdok._dict[key] = v
-        return newdok
-
-    # override IndexMixin.__setitem__ for 1d case until fully implemented
-    def __setitem__(self, key, value):
-        if self.ndim == 2:
-            return super().__setitem__(key, value)
-
-        if isinstance(key, tuple) and len(key) == 1:
-            key = key[0]
-        INT_TYPES = (int, np.integer)
-        if isinstance(key, INT_TYPES):
-            if key < 0:
-                key += self.shape[-1]
-            if key < 0 or key >= self.shape[-1]:
-                raise IndexError('index value out of bounds')
-            return self._set_int(key, value)
-        else:
-            raise IndexError('array index for 1d dok_array not yet provided')
-
-    # 1D set methods
-    def _set_int(self, idx, x):
-        if x:
-            self._dict[idx] = x
-        elif idx in self._dict:
-            del self._dict[idx]
-
-    # 2D set methods
-    def _set_intXint(self, row, col, x):
-        key = (row, col)
-        if x:
-            self._dict[key] = x
-        elif key in self._dict:
-            del self._dict[key]
-
-    def _set_arrayXarray(self, row, col, x):
-        row = list(map(int, row.ravel()))
-        col = list(map(int, col.ravel()))
-        x = x.ravel()
-        self._dict.update(zip(zip(row, col), x))
-
-        for i in np.nonzero(x == 0)[0]:
-            key = (row[i], col[i])
-            if self._dict[key] == 0:
-                # may have been superseded by later update
-                del self._dict[key]
-
-    def __add__(self, other):
-        if isscalarlike(other):
-            res_dtype = upcast_scalar(self.dtype, other)
-            new = self._dok_container(self.shape, dtype=res_dtype)
-            # Add this scalar to each element.
-            for key in itertools.product(*[range(d) for d in self.shape]):
-                aij = self._dict.get(key, 0) + other
-                if aij:
-                    new[key] = aij
-        elif issparse(other):
-            if other.shape != self.shape:
-                raise ValueError("Matrix dimensions are not equal.")
-            res_dtype = upcast(self.dtype, other.dtype)
-            new = self._dok_container(self.shape, dtype=res_dtype)
-            new._dict = self._dict.copy()
-            if other.format == "dok":
-                o_items = other.items()
-            else:
-                other = other.tocoo()
-                if self.ndim == 1:
-                    o_items = zip(other.coords[0], other.data)
-                else:
-                    o_items = zip(zip(*other.coords), other.data)
-            with np.errstate(over='ignore'):
-                new._dict.update((k, new[k] + v) for k, v in o_items)
-        elif isdense(other):
-            new = self.todense() + other
-        else:
-            return NotImplemented
-        return new
-
-    def __radd__(self, other):
-        return self + other  # addition is comutative
-
-    def __neg__(self):
-        if self.dtype.kind == 'b':
-            raise NotImplementedError(
-                'Negating a sparse boolean matrix is not supported.'
-            )
-        new = self._dok_container(self.shape, dtype=self.dtype)
-        new._dict.update((k, -v) for k, v in self.items())
-        return new
-
-    def _mul_scalar(self, other):
-        res_dtype = upcast_scalar(self.dtype, other)
-        # Multiply this scalar by every element.
-        new = self._dok_container(self.shape, dtype=res_dtype)
-        new._dict.update(((k, v * other) for k, v in self.items()))
-        return new
-
-    def _matmul_vector(self, other):
-        res_dtype = upcast(self.dtype, other.dtype)
-
-        # vector @ vector
-        if self.ndim == 1:
-            if issparse(other):
-                if other.format == "dok":
-                    keys = self.keys() & other.keys()
-                else:
-                    keys = self.keys() & other.tocoo().coords[0]
-                return res_dtype(sum(self._dict[k] * other._dict[k] for k in keys))
-            elif isdense(other):
-                return res_dtype(sum(other[k] * v for k, v in self.items()))
-            else:
-                return NotImplemented
-
-        # matrix @ vector
-        result = np.zeros(self.shape[0], dtype=res_dtype)
-        for (i, j), v in self.items():
-            result[i] += v * other[j]
-        return result
-
-    def _matmul_multivector(self, other):
-        result_dtype = upcast(self.dtype, other.dtype)
-        # vector @ multivector
-        if self.ndim == 1:
-            # works for other 1d or 2d
-            return sum(v * other[j] for j, v in self._dict.items())
-
-        # matrix @ multivector
-        M = self.shape[0]
-        new_shape = (M,) if other.ndim == 1 else (M, other.shape[1])
-        result = np.zeros(new_shape, dtype=result_dtype)
-        for (i, j), v in self.items():
-            result[i] += v * other[j]
-        return result
-
-    def __imul__(self, other):
-        if isscalarlike(other):
-            self._dict.update((k, v * other) for k, v in self.items())
-            return self
-        return NotImplemented
-
-    def __truediv__(self, other):
-        if isscalarlike(other):
-            res_dtype = upcast_scalar(self.dtype, other)
-            new = self._dok_container(self.shape, dtype=res_dtype)
-            new._dict.update(((k, v / other) for k, v in self.items()))
-            return new
-        return self.tocsr() / other
-
-    def __itruediv__(self, other):
-        if isscalarlike(other):
-            self._dict.update((k, v / other) for k, v in self.items())
-            return self
-        return NotImplemented
-
-    def __reduce__(self):
-        # this approach is necessary because __setstate__ is called after
-        # __setitem__ upon unpickling and since __init__ is not called there
-        # is no shape attribute hence it is not possible to unpickle it.
-        return dict.__reduce__(self)
-
-    def diagonal(self, k=0):
-        if self.ndim == 2:
-            return super().diagonal(k)
-        raise ValueError("diagonal requires two dimensions")
-
-    def transpose(self, axes=None, copy=False):
-        if self.ndim == 1:
-            return self.copy()
-
-        if axes is not None and axes != (1, 0):
-            raise ValueError(
-                "Sparse arrays/matrices do not support "
-                "an 'axes' parameter because swapping "
-                "dimensions is the only logical permutation."
-            )
-
-        M, N = self.shape
-        new = self._dok_container((N, M), dtype=self.dtype, copy=copy)
-        new._dict.update((((right, left), val) for (left, right), val in self.items()))
-        return new
-
-    transpose.__doc__ = _spbase.transpose.__doc__
-
-    def conjtransp(self):
-        """DEPRECATED: Return the conjugate transpose.
-
-        .. deprecated:: 1.14.0
-
-            `conjtransp` is deprecated and will be removed in v1.16.0.
-            Use `.T.conj()` instead.
-        """
-        msg = ("`conjtransp` is deprecated and will be removed in v1.16.0. "
-                   "Use `.T.conj()` instead.")
-        warn(msg, DeprecationWarning, stacklevel=2)
-
-        if self.ndim == 1:
-            new = self.tocoo()
-            new.data = new.data.conjugate()
-            return new
-
-        M, N = self.shape
-        new = self._dok_container((N, M), dtype=self.dtype)
-        new._dict = {(right, left): np.conj(val) for (left, right), val in self.items()}
-        return new
-
-    def copy(self):
-        new = self._dok_container(self.shape, dtype=self.dtype)
-        new._dict.update(self._dict)
-        return new
-
-    copy.__doc__ = _spbase.copy.__doc__
-
-    @classmethod
-    def fromkeys(cls, iterable, value=1, /):
-        tmp = dict.fromkeys(iterable, value)
-        if isinstance(next(iter(tmp)), tuple):
-            shape = tuple(max(idx) + 1 for idx in zip(*tmp))
-        else:
-            shape = (max(tmp) + 1,)
-        result = cls(shape, dtype=type(value))
-        result._dict = tmp
-        return result
-
-    def tocoo(self, copy=False):
-        nnz = self.nnz
-        if nnz == 0:
-            return self._coo_container(self.shape, dtype=self.dtype)
-
-        idx_dtype = self._get_index_dtype(maxval=max(self.shape))
-        data = np.fromiter(self.values(), dtype=self.dtype, count=nnz)
-        # handle 1d keys specially b/c not a tuple
-        inds = zip(*self.keys()) if self.ndim > 1 else (self.keys(),)
-        coords = tuple(np.fromiter(ix, dtype=idx_dtype, count=nnz) for ix in inds)
-        A = self._coo_container((data, coords), shape=self.shape, dtype=self.dtype)
-        A.has_canonical_format = True
-        return A
-
-    tocoo.__doc__ = _spbase.tocoo.__doc__
-
-    def todok(self, copy=False):
-        if copy:
-            return self.copy()
-        return self
-
-    todok.__doc__ = _spbase.todok.__doc__
-
-    def tocsc(self, copy=False):
-        if self.ndim == 1:
-            raise NotImplementedError("tocsr() not valid for 1d sparse array")
-        return self.tocoo(copy=False).tocsc(copy=copy)
-
-    tocsc.__doc__ = _spbase.tocsc.__doc__
-
-    def resize(self, *shape):
-        is_array = isinstance(self, sparray)
-        shape = check_shape(shape, allow_1d=is_array)
-        if len(shape) != len(self.shape):
-            # TODO implement resize across dimensions
-            raise NotImplementedError
-
-        if self.ndim == 1:
-            newN = shape[-1]
-            for i in list(self._dict):
-                if i >= newN:
-                    del self._dict[i]
-            self._shape = shape
-            return
-
-        newM, newN = shape
-        M, N = self.shape
-        if newM < M or newN < N:
-            # Remove all elements outside new dimensions
-            for i, j in list(self.keys()):
-                if i >= newM or j >= newN:
-                    del self._dict[i, j]
-        self._shape = shape
-
-    resize.__doc__ = _spbase.resize.__doc__
-
-    # Added for 1d to avoid `tocsr` from _base.py
-    def astype(self, dtype, casting='unsafe', copy=True):
-        dtype = np.dtype(dtype)
-        if self.dtype != dtype:
-            result = self._dok_container(self.shape, dtype=dtype)
-            data = np.array(list(self._dict.values()), dtype=dtype)
-            result._dict = dict(zip(self._dict, data))
-            return result
-        elif copy:
-            return self.copy()
-        return self
-
-
-def isspmatrix_dok(x):
-    """Is `x` of dok_array type?
-
-    Parameters
-    ----------
-    x
-        object to check for being a dok matrix
-
-    Returns
-    -------
-    bool
-        True if `x` is a dok matrix, False otherwise
-
-    Examples
-    --------
-    >>> from scipy.sparse import dok_array, dok_matrix, coo_matrix, isspmatrix_dok
-    >>> isspmatrix_dok(dok_matrix([[5]]))
-    True
-    >>> isspmatrix_dok(dok_array([[5]]))
-    False
-    >>> isspmatrix_dok(coo_matrix([[5]]))
-    False
-    """
-    return isinstance(x, dok_matrix)
-
-
-# This namespace class separates array from matrix with isinstance
-class dok_array(_dok_base, sparray):
-    """
-    Dictionary Of Keys based sparse array.
-
-    This is an efficient structure for constructing sparse
-    arrays incrementally.
-
-    This can be instantiated in several ways:
-        dok_array(D)
-            where D is a 2-D ndarray
-
-        dok_array(S)
-            with another sparse array or matrix S (equivalent to S.todok())
-
-        dok_array((M,N), [dtype])
-            create the array with initial shape (M,N)
-            dtype is optional, defaulting to dtype='d'
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the array
-    shape : 2-tuple
-        Shape of the array
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-        Number of nonzero elements
-    size
-    T
-
-    Notes
-    -----
-
-    Sparse arrays can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    - Allows for efficient O(1) access of individual elements.
-    - Duplicates are not allowed.
-    - Can be efficiently converted to a coo_array once constructed.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import dok_array
-    >>> S = dok_array((5, 5), dtype=np.float32)
-    >>> for i in range(5):
-    ...     for j in range(5):
-    ...         S[i, j] = i + j    # Update element
-
-    """
-
-
-class dok_matrix(spmatrix, _dok_base):
-    """
-    Dictionary Of Keys based sparse matrix.
-
-    This is an efficient structure for constructing sparse
-    matrices incrementally.
-
-    This can be instantiated in several ways:
-        dok_matrix(D)
-            where D is a 2-D ndarray
-
-        dok_matrix(S)
-            with another sparse array or matrix S (equivalent to S.todok())
-
-        dok_matrix((M,N), [dtype])
-            create the matrix with initial shape (M,N)
-            dtype is optional, defaulting to dtype='d'
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the matrix
-    shape : 2-tuple
-        Shape of the matrix
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-        Number of nonzero elements
-    size
-    T
-
-    Notes
-    -----
-
-    Sparse matrices can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    - Allows for efficient O(1) access of individual elements.
-    - Duplicates are not allowed.
-    - Can be efficiently converted to a coo_matrix once constructed.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import dok_matrix
-    >>> S = dok_matrix((5, 5), dtype=np.float32)
-    >>> for i in range(5):
-    ...     for j in range(5):
-    ...         S[i, j] = i + j    # Update element
-
-    """
-
-    def set_shape(self, shape):
-        new_matrix = self.reshape(shape, copy=False).asformat(self.format)
-        self.__dict__ = new_matrix.__dict__
-
-    def get_shape(self):
-        """Get shape of a sparse matrix."""
-        return self._shape
-
-    shape = property(fget=get_shape, fset=set_shape)
-
-    def __reversed__(self):
-        return self._dict.__reversed__()
-
-    def __or__(self, other):
-        if isinstance(other, _dok_base):
-            return self._dict | other._dict
-        return self._dict | other
-
-    def __ror__(self, other):
-        if isinstance(other, _dok_base):
-            return self._dict | other._dict
-        return self._dict | other
-
-    def __ior__(self, other):
-        if isinstance(other, _dok_base):
-            self._dict |= other._dict
-        else:
-            self._dict |= other
-        return self
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_extract.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_extract.py
deleted file mode 100644
index 052ef506f9ab4796c0cca8495e4071069beb8e42..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_extract.py
+++ /dev/null
@@ -1,178 +0,0 @@
-"""Functions to extract parts of sparse matrices
-"""
-
-__docformat__ = "restructuredtext en"
-
-__all__ = ['find', 'tril', 'triu']
-
-
-from ._coo import coo_matrix, coo_array
-from ._base import sparray
-
-
-def find(A):
-    """Return the indices and values of the nonzero elements of a matrix
-
-    Parameters
-    ----------
-    A : dense or sparse array or matrix
-        Matrix whose nonzero elements are desired.
-
-    Returns
-    -------
-    (I,J,V) : tuple of arrays
-        I,J, and V contain the row indices, column indices, and values
-        of the nonzero entries.
-
-
-    Examples
-    --------
-    >>> from scipy.sparse import csr_array, find
-    >>> A = csr_array([[7.0, 8.0, 0],[0, 0, 9.0]])
-    >>> find(A)
-    (array([0, 0, 1], dtype=int32),
-     array([0, 1, 2], dtype=int32),
-     array([ 7.,  8.,  9.]))
-
-    """
-
-    A = coo_array(A, copy=True)
-    A.sum_duplicates()
-    # remove explicit zeros
-    nz_mask = A.data != 0
-    return A.row[nz_mask], A.col[nz_mask], A.data[nz_mask]
-
-
-def tril(A, k=0, format=None):
-    """Return the lower triangular portion of a sparse array or matrix
-
-    Returns the elements on or below the k-th diagonal of A.
-        - k = 0 corresponds to the main diagonal
-        - k > 0 is above the main diagonal
-        - k < 0 is below the main diagonal
-
-    Parameters
-    ----------
-    A : dense or sparse array or matrix
-        Matrix whose lower trianglar portion is desired.
-    k : integer : optional
-        The top-most diagonal of the lower triangle.
-    format : string
-        Sparse format of the result, e.g. format="csr", etc.
-
-    Returns
-    -------
-    L : sparse matrix
-        Lower triangular portion of A in sparse format.
-
-    See Also
-    --------
-    triu : upper triangle in sparse format
-
-    Examples
-    --------
-    >>> from scipy.sparse import csr_array, tril
-    >>> A = csr_array([[1, 2, 0, 0, 3], [4, 5, 0, 6, 7], [0, 0, 8, 9, 0]],
-    ...               dtype='int32')
-    >>> A.toarray()
-    array([[1, 2, 0, 0, 3],
-           [4, 5, 0, 6, 7],
-           [0, 0, 8, 9, 0]])
-    >>> tril(A).toarray()
-    array([[1, 0, 0, 0, 0],
-           [4, 5, 0, 0, 0],
-           [0, 0, 8, 0, 0]])
-    >>> tril(A).nnz
-    4
-    >>> tril(A, k=1).toarray()
-    array([[1, 2, 0, 0, 0],
-           [4, 5, 0, 0, 0],
-           [0, 0, 8, 9, 0]])
-    >>> tril(A, k=-1).toarray()
-    array([[0, 0, 0, 0, 0],
-           [4, 0, 0, 0, 0],
-           [0, 0, 0, 0, 0]])
-    >>> tril(A, format='csc')
-    
-
-    """
-    coo_sparse = coo_array if isinstance(A, sparray) else coo_matrix
-
-    # convert to COOrdinate format where things are easy
-    A = coo_sparse(A, copy=False)
-    mask = A.row + k >= A.col
-
-    row = A.row[mask]
-    col = A.col[mask]
-    data = A.data[mask]
-    new_coo = coo_sparse((data, (row, col)), shape=A.shape, dtype=A.dtype)
-    return new_coo.asformat(format)
-
-
-def triu(A, k=0, format=None):
-    """Return the upper triangular portion of a sparse array or matrix
-
-    Returns the elements on or above the k-th diagonal of A.
-        - k = 0 corresponds to the main diagonal
-        - k > 0 is above the main diagonal
-        - k < 0 is below the main diagonal
-
-    Parameters
-    ----------
-    A : dense or sparse array or matrix
-        Matrix whose upper trianglar portion is desired.
-    k : integer : optional
-        The bottom-most diagonal of the upper triangle.
-    format : string
-        Sparse format of the result, e.g. format="csr", etc.
-
-    Returns
-    -------
-    L : sparse array or matrix 
-        Upper triangular portion of A in sparse format.
-        Sparse array if A is a sparse array, otherwise matrix.
-
-    See Also
-    --------
-    tril : lower triangle in sparse format
-
-    Examples
-    --------
-    >>> from scipy.sparse import csr_array, triu
-    >>> A = csr_array([[1, 2, 0, 0, 3], [4, 5, 0, 6, 7], [0, 0, 8, 9, 0]],
-    ...                dtype='int32')
-    >>> A.toarray()
-    array([[1, 2, 0, 0, 3],
-           [4, 5, 0, 6, 7],
-           [0, 0, 8, 9, 0]])
-    >>> triu(A).toarray()
-    array([[1, 2, 0, 0, 3],
-           [0, 5, 0, 6, 7],
-           [0, 0, 8, 9, 0]])
-    >>> triu(A).nnz
-    8
-    >>> triu(A, k=1).toarray()
-    array([[0, 2, 0, 0, 3],
-           [0, 0, 0, 6, 7],
-           [0, 0, 0, 9, 0]])
-    >>> triu(A, k=-1).toarray()
-    array([[1, 2, 0, 0, 3],
-           [4, 5, 0, 6, 7],
-           [0, 0, 8, 9, 0]])
-    >>> triu(A, format='csc')
-    
-
-    """
-    coo_sparse = coo_array if isinstance(A, sparray) else coo_matrix
-
-    # convert to COOrdinate format where things are easy
-    A = coo_sparse(A, copy=False)
-    mask = A.row + k <= A.col
-
-    row = A.row[mask]
-    col = A.col[mask]
-    data = A.data[mask]
-    new_coo = coo_sparse((data, (row, col)), shape=A.shape, dtype=A.dtype)
-    return new_coo.asformat(format)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_index.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_index.py
deleted file mode 100644
index c0fc3d01b0ebd153703a76af431626d958b7de64..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_index.py
+++ /dev/null
@@ -1,392 +0,0 @@
-"""Indexing mixin for sparse array/matrix classes.
-"""
-from __future__ import annotations
-
-from typing import TYPE_CHECKING
-
-import numpy as np
-from ._sputils import isintlike
-
-if TYPE_CHECKING:
-    import numpy.typing as npt
-
-INT_TYPES = (int, np.integer)
-
-
-def _broadcast_arrays(a, b):
-    """
-    Same as np.broadcast_arrays(a, b) but old writeability rules.
-
-    NumPy >= 1.17.0 transitions broadcast_arrays to return
-    read-only arrays. Set writeability explicitly to avoid warnings.
-    Retain the old writeability rules, as our Cython code assumes
-    the old behavior.
-    """
-    x, y = np.broadcast_arrays(a, b)
-    x.flags.writeable = a.flags.writeable
-    y.flags.writeable = b.flags.writeable
-    return x, y
-
-
-class IndexMixin:
-    """
-    This class provides common dispatching and validation logic for indexing.
-    """
-    def _raise_on_1d_array_slice(self):
-        """We do not currently support 1D sparse arrays.
-
-        This function is called each time that a 1D array would
-        result, raising an error instead.
-
-        Once 1D sparse arrays are implemented, it should be removed.
-        """
-        from scipy.sparse import sparray
-
-        if isinstance(self, sparray):
-            raise NotImplementedError(
-                'We have not yet implemented 1D sparse slices; '
-                'please index using explicit indices, e.g. `x[:, [0]]`'
-            )
-
-    def __getitem__(self, key):
-        row, col = self._validate_indices(key)
-
-        # Dispatch to specialized methods.
-        if isinstance(row, INT_TYPES):
-            if isinstance(col, INT_TYPES):
-                return self._get_intXint(row, col)
-            elif isinstance(col, slice):
-                self._raise_on_1d_array_slice()
-                return self._get_intXslice(row, col)
-            elif col.ndim == 1:
-                self._raise_on_1d_array_slice()
-                return self._get_intXarray(row, col)
-            elif col.ndim == 2:
-                return self._get_intXarray(row, col)
-            raise IndexError('index results in >2 dimensions')
-        elif isinstance(row, slice):
-            if isinstance(col, INT_TYPES):
-                self._raise_on_1d_array_slice()
-                return self._get_sliceXint(row, col)
-            elif isinstance(col, slice):
-                if row == slice(None) and row == col:
-                    return self.copy()
-                return self._get_sliceXslice(row, col)
-            elif col.ndim == 1:
-                return self._get_sliceXarray(row, col)
-            raise IndexError('index results in >2 dimensions')
-        elif row.ndim == 1:
-            if isinstance(col, INT_TYPES):
-                self._raise_on_1d_array_slice()
-                return self._get_arrayXint(row, col)
-            elif isinstance(col, slice):
-                return self._get_arrayXslice(row, col)
-        else:  # row.ndim == 2
-            if isinstance(col, INT_TYPES):
-                return self._get_arrayXint(row, col)
-            elif isinstance(col, slice):
-                raise IndexError('index results in >2 dimensions')
-            elif row.shape[1] == 1 and (col.ndim == 1 or col.shape[0] == 1):
-                # special case for outer indexing
-                return self._get_columnXarray(row[:,0], col.ravel())
-
-        # The only remaining case is inner (fancy) indexing
-        row, col = _broadcast_arrays(row, col)
-        if row.shape != col.shape:
-            raise IndexError('number of row and column indices differ')
-        if row.size == 0:
-            return self.__class__(np.atleast_2d(row).shape, dtype=self.dtype)
-        return self._get_arrayXarray(row, col)
-
-    def __setitem__(self, key, x):
-        row, col = self._validate_indices(key)
-
-        if isinstance(row, INT_TYPES) and isinstance(col, INT_TYPES):
-            x = np.asarray(x, dtype=self.dtype)
-            if x.size != 1:
-                raise ValueError('Trying to assign a sequence to an item')
-            self._set_intXint(row, col, x.flat[0])
-            return
-
-        if isinstance(row, slice):
-            row = np.arange(*row.indices(self.shape[0]))[:, None]
-        else:
-            row = np.atleast_1d(row)
-
-        if isinstance(col, slice):
-            col = np.arange(*col.indices(self.shape[1]))[None, :]
-            if row.ndim == 1:
-                row = row[:, None]
-        else:
-            col = np.atleast_1d(col)
-
-        i, j = _broadcast_arrays(row, col)
-        if i.shape != j.shape:
-            raise IndexError('number of row and column indices differ')
-
-        from ._base import issparse
-        if issparse(x):
-            if i.ndim == 1:
-                # Inner indexing, so treat them like row vectors.
-                i = i[None]
-                j = j[None]
-            broadcast_row = x.shape[0] == 1 and i.shape[0] != 1
-            broadcast_col = x.shape[1] == 1 and i.shape[1] != 1
-            if not ((broadcast_row or x.shape[0] == i.shape[0]) and
-                    (broadcast_col or x.shape[1] == i.shape[1])):
-                raise ValueError('shape mismatch in assignment')
-            if x.shape[0] == 0 or x.shape[1] == 0:
-                return
-            x = x.tocoo(copy=True)
-            x.sum_duplicates()
-            self._set_arrayXarray_sparse(i, j, x)
-        else:
-            # Make x and i into the same shape
-            x = np.asarray(x, dtype=self.dtype)
-            if x.squeeze().shape != i.squeeze().shape:
-                x = np.broadcast_to(x, i.shape)
-            if x.size == 0:
-                return
-            x = x.reshape(i.shape)
-            self._set_arrayXarray(i, j, x)
-
-    def _validate_indices(self, key):
-        # First, check if indexing with single boolean matrix.
-        from ._base import _spbase
-        if (isinstance(key, (_spbase, np.ndarray)) and
-                key.ndim == 2 and key.dtype.kind == 'b'):
-            if key.shape != self.shape:
-                raise IndexError('boolean index shape does not match array shape')
-            row, col = key.nonzero()
-        else:
-            row, col = _unpack_index(key)
-        M, N = self.shape
-
-        def _validate_bool_idx(
-            idx: npt.NDArray[np.bool_],
-            axis_size: int,
-            axis_name: str
-        ) -> npt.NDArray[np.int_]:
-            if len(idx) != axis_size:
-                raise IndexError(
-                    f"boolean {axis_name} index has incorrect length: {len(idx)} "
-                    f"instead of {axis_size}"
-                )
-            return _boolean_index_to_array(idx)
-
-        if isintlike(row):
-            row = int(row)
-            if row < -M or row >= M:
-                raise IndexError('row index (%d) out of range' % row)
-            if row < 0:
-                row += M
-        elif (bool_row := _compatible_boolean_index(row)) is not None:
-            row = _validate_bool_idx(bool_row, M, "row")
-        elif not isinstance(row, slice):
-            row = self._asindices(row, M)
-
-        if isintlike(col):
-            col = int(col)
-            if col < -N or col >= N:
-                raise IndexError('column index (%d) out of range' % col)
-            if col < 0:
-                col += N
-        elif (bool_col := _compatible_boolean_index(col)) is not None:
-            col = _validate_bool_idx(bool_col, N, "column")
-        elif not isinstance(col, slice):
-            col = self._asindices(col, N)
-
-        return row, col
-
-    def _asindices(self, idx, length):
-        """Convert `idx` to a valid index for an axis with a given length.
-
-        Subclasses that need special validation can override this method.
-        """
-        try:
-            x = np.asarray(idx)
-        except (ValueError, TypeError, MemoryError) as e:
-            raise IndexError('invalid index') from e
-
-        if x.ndim not in (1, 2):
-            raise IndexError('Index dimension must be 1 or 2')
-
-        if x.size == 0:
-            return x
-
-        # Check bounds
-        max_indx = x.max()
-        if max_indx >= length:
-            raise IndexError('index (%d) out of range' % max_indx)
-
-        min_indx = x.min()
-        if min_indx < 0:
-            if min_indx < -length:
-                raise IndexError('index (%d) out of range' % min_indx)
-            if x is idx or not x.flags.owndata:
-                x = x.copy()
-            x[x < 0] += length
-        return x
-
-    def _getrow(self, i):
-        """Return a copy of row i of the matrix, as a (1 x n) row vector.
-        """
-        M, N = self.shape
-        i = int(i)
-        if i < -M or i >= M:
-            raise IndexError('index (%d) out of range' % i)
-        if i < 0:
-            i += M
-        return self._get_intXslice(i, slice(None))
-
-    def _getcol(self, i):
-        """Return a copy of column i of the matrix, as a (m x 1) column vector.
-        """
-        M, N = self.shape
-        i = int(i)
-        if i < -N or i >= N:
-            raise IndexError('index (%d) out of range' % i)
-        if i < 0:
-            i += N
-        return self._get_sliceXint(slice(None), i)
-
-    def _get_intXint(self, row, col):
-        raise NotImplementedError()
-
-    def _get_intXarray(self, row, col):
-        raise NotImplementedError()
-
-    def _get_intXslice(self, row, col):
-        raise NotImplementedError()
-
-    def _get_sliceXint(self, row, col):
-        raise NotImplementedError()
-
-    def _get_sliceXslice(self, row, col):
-        raise NotImplementedError()
-
-    def _get_sliceXarray(self, row, col):
-        raise NotImplementedError()
-
-    def _get_arrayXint(self, row, col):
-        raise NotImplementedError()
-
-    def _get_arrayXslice(self, row, col):
-        raise NotImplementedError()
-
-    def _get_columnXarray(self, row, col):
-        raise NotImplementedError()
-
-    def _get_arrayXarray(self, row, col):
-        raise NotImplementedError()
-
-    def _set_intXint(self, row, col, x):
-        raise NotImplementedError()
-
-    def _set_arrayXarray(self, row, col, x):
-        raise NotImplementedError()
-
-    def _set_arrayXarray_sparse(self, row, col, x):
-        # Fall back to densifying x
-        x = np.asarray(x.toarray(), dtype=self.dtype)
-        x, _ = _broadcast_arrays(x, row)
-        self._set_arrayXarray(row, col, x)
-
-
-def _unpack_index(index) -> tuple[
-    int | slice | npt.NDArray[np.bool_ | np.int_],
-    int | slice | npt.NDArray[np.bool_ | np.int_]
-]:
-    """ Parse index. Always return a tuple of the form (row, col).
-    Valid type for row/col is integer, slice, array of bool, or array of integers.
-    """
-    # Parse any ellipses.
-    index = _check_ellipsis(index)
-
-    # Next, parse the tuple or object
-    if isinstance(index, tuple):
-        if len(index) == 2:
-            row, col = index
-        elif len(index) == 1:
-            row, col = index[0], slice(None)
-        else:
-            raise IndexError('invalid number of indices')
-    else:
-        idx = _compatible_boolean_index(index)
-        if idx is None:
-            row, col = index, slice(None)
-        elif idx.ndim < 2:
-            return idx, slice(None)
-        elif idx.ndim == 2:
-            return idx.nonzero()
-    # Next, check for validity and transform the index as needed.
-    from ._base import issparse
-    if issparse(row) or issparse(col):
-        # Supporting sparse boolean indexing with both row and col does
-        # not work because spmatrix.ndim is always 2.
-        raise IndexError(
-            'Indexing with sparse matrices is not supported '
-            'except boolean indexing where matrix and index '
-            'are equal shapes.')
-    return row, col
-
-
-def _check_ellipsis(index):
-    """Process indices with Ellipsis. Returns modified index."""
-    if index is Ellipsis:
-        return (slice(None), slice(None))
-
-    if not isinstance(index, tuple):
-        return index
-
-    # Find any Ellipsis objects.
-    ellipsis_indices = [i for i, v in enumerate(index) if v is Ellipsis]
-    if not ellipsis_indices:
-        return index
-    if len(ellipsis_indices) > 1:
-        raise IndexError("an index can only have a single ellipsis ('...')")
-
-    # Replace the Ellipsis object with 0, 1, or 2 null-slices as needed.
-    i, = ellipsis_indices
-    num_slices = max(0, 3 - len(index))
-    return index[:i] + (slice(None),) * num_slices + index[i + 1:]
-
-
-def _maybe_bool_ndarray(idx):
-    """Returns a compatible array if elements are boolean.
-    """
-    idx = np.asanyarray(idx)
-    if idx.dtype.kind == 'b':
-        return idx
-    return None
-
-
-def _first_element_bool(idx, max_dim=2):
-    """Returns True if first element of the incompatible
-    array type is boolean.
-    """
-    if max_dim < 1:
-        return None
-    try:
-        first = next(iter(idx), None)
-    except TypeError:
-        return None
-    if isinstance(first, bool):
-        return True
-    return _first_element_bool(first, max_dim-1)
-
-
-def _compatible_boolean_index(idx):
-    """Returns a boolean index array that can be converted to
-    integer array. Returns None if no such array exists.
-    """
-    # Presence of attribute `ndim` indicates a compatible array type.
-    if hasattr(idx, 'ndim') or _first_element_bool(idx):
-        return _maybe_bool_ndarray(idx)
-    return None
-
-
-def _boolean_index_to_array(idx):
-    if idx.ndim > 1:
-        raise IndexError('invalid index shape')
-    return np.where(idx)[0]
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_lil.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_lil.py
deleted file mode 100644
index 2503aa628b58ebfed53308f13873226e081346b8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_lil.py
+++ /dev/null
@@ -1,612 +0,0 @@
-"""List of Lists sparse matrix class
-"""
-
-__docformat__ = "restructuredtext en"
-
-__all__ = ['lil_array', 'lil_matrix', 'isspmatrix_lil']
-
-from bisect import bisect_left
-
-import numpy as np
-
-from ._matrix import spmatrix
-from ._base import _spbase, sparray, issparse
-from ._index import IndexMixin, INT_TYPES, _broadcast_arrays
-from ._sputils import (getdtype, isshape, isscalarlike, upcast_scalar,
-                       check_shape, check_reshape_kwargs)
-from . import _csparsetools
-
-
-class _lil_base(_spbase, IndexMixin):
-    _format = 'lil'
-
-    def __init__(self, arg1, shape=None, dtype=None, copy=False):
-        _spbase.__init__(self, arg1)
-        self.dtype = getdtype(dtype, arg1, default=float)
-
-        # First get the shape
-        if issparse(arg1):
-            if arg1.format == "lil" and copy:
-                A = arg1.copy()
-            else:
-                A = arg1.tolil()
-
-            if dtype is not None:
-                A = A.astype(dtype, copy=False)
-
-            self._shape = check_shape(A.shape)
-            self.dtype = A.dtype
-            self.rows = A.rows
-            self.data = A.data
-        elif isinstance(arg1,tuple):
-            if isshape(arg1):
-                if shape is not None:
-                    raise ValueError('invalid use of shape parameter')
-                M, N = arg1
-                self._shape = check_shape((M, N))
-                self.rows = np.empty((M,), dtype=object)
-                self.data = np.empty((M,), dtype=object)
-                for i in range(M):
-                    self.rows[i] = []
-                    self.data[i] = []
-            else:
-                raise TypeError('unrecognized lil_array constructor usage')
-        else:
-            # assume A is dense
-            try:
-                A = self._ascontainer(arg1)
-            except TypeError as e:
-                raise TypeError('unsupported matrix type') from e
-            if isinstance(self, sparray) and A.ndim != 2:
-                raise ValueError(f"LIL arrays don't support {A.ndim}D input. Use 2D")
-            A = self._csr_container(A, dtype=dtype).tolil()
-
-            self._shape = check_shape(A.shape)
-            self.dtype = A.dtype
-            self.rows = A.rows
-            self.data = A.data
-
-    def __iadd__(self,other):
-        self[:,:] = self + other
-        return self
-
-    def __isub__(self,other):
-        self[:,:] = self - other
-        return self
-
-    def __imul__(self,other):
-        if isscalarlike(other):
-            self[:,:] = self * other
-            return self
-        else:
-            return NotImplemented
-
-    def __itruediv__(self,other):
-        if isscalarlike(other):
-            self[:,:] = self / other
-            return self
-        else:
-            return NotImplemented
-
-    # Whenever the dimensions change, empty lists should be created for each
-    # row
-
-    def _getnnz(self, axis=None):
-        if axis is None:
-            return sum([len(rowvals) for rowvals in self.data])
-        if axis < 0:
-            axis += 2
-        if axis == 0:
-            out = np.zeros(self.shape[1], dtype=np.intp)
-            for row in self.rows:
-                out[row] += 1
-            return out
-        elif axis == 1:
-            return np.array([len(rowvals) for rowvals in self.data], dtype=np.intp)
-        else:
-            raise ValueError('axis out of bounds')
-
-    def count_nonzero(self):
-        return sum(np.count_nonzero(rowvals) for rowvals in self.data)
-
-    _getnnz.__doc__ = _spbase._getnnz.__doc__
-    count_nonzero.__doc__ = _spbase.count_nonzero.__doc__
-
-    def getrowview(self, i):
-        """Returns a view of the 'i'th row (without copying).
-        """
-        new = self._lil_container((1, self.shape[1]), dtype=self.dtype)
-        new.rows[0] = self.rows[i]
-        new.data[0] = self.data[i]
-        return new
-
-    def getrow(self, i):
-        """Returns a copy of the 'i'th row.
-        """
-        M, N = self.shape
-        if i < 0:
-            i += M
-        if i < 0 or i >= M:
-            raise IndexError('row index out of bounds')
-        new = self._lil_container((1, N), dtype=self.dtype)
-        new.rows[0] = self.rows[i][:]
-        new.data[0] = self.data[i][:]
-        return new
-
-    def __getitem__(self, key):
-        # Fast path for simple (int, int) indexing.
-        if (isinstance(key, tuple) and len(key) == 2 and
-                isinstance(key[0], INT_TYPES) and
-                isinstance(key[1], INT_TYPES)):
-            # lil_get1 handles validation for us.
-            return self._get_intXint(*key)
-        # Everything else takes the normal path.
-        return IndexMixin.__getitem__(self, key)
-
-    def _asindices(self, idx, N):
-        # LIL routines handle bounds-checking for us, so don't do it here.
-        try:
-            x = np.asarray(idx)
-        except (ValueError, TypeError, MemoryError) as e:
-            raise IndexError('invalid index') from e
-        if x.ndim not in (1, 2):
-            raise IndexError('Index dimension must be <= 2')
-        return x
-
-    def _get_intXint(self, row, col):
-        v = _csparsetools.lil_get1(self.shape[0], self.shape[1], self.rows,
-                                   self.data, row, col)
-        return self.dtype.type(v)
-
-    def _get_sliceXint(self, row, col):
-        row = range(*row.indices(self.shape[0]))
-        return self._get_row_ranges(row, slice(col, col+1))
-
-    def _get_arrayXint(self, row, col):
-        row = row.squeeze()
-        return self._get_row_ranges(row, slice(col, col+1))
-
-    def _get_intXslice(self, row, col):
-        return self._get_row_ranges((row,), col)
-
-    def _get_sliceXslice(self, row, col):
-        row = range(*row.indices(self.shape[0]))
-        return self._get_row_ranges(row, col)
-
-    def _get_arrayXslice(self, row, col):
-        return self._get_row_ranges(row, col)
-
-    def _get_intXarray(self, row, col):
-        row = np.array(row, dtype=col.dtype, ndmin=1)
-        return self._get_columnXarray(row, col)
-
-    def _get_sliceXarray(self, row, col):
-        row = np.arange(*row.indices(self.shape[0]))
-        return self._get_columnXarray(row, col)
-
-    def _get_columnXarray(self, row, col):
-        # outer indexing
-        row, col = _broadcast_arrays(row[:,None], col)
-        return self._get_arrayXarray(row, col)
-
-    def _get_arrayXarray(self, row, col):
-        # inner indexing
-        i, j = map(np.atleast_2d, _prepare_index_for_memoryview(row, col))
-        new = self._lil_container(i.shape, dtype=self.dtype)
-        _csparsetools.lil_fancy_get(self.shape[0], self.shape[1],
-                                    self.rows, self.data,
-                                    new.rows, new.data,
-                                    i, j)
-        return new
-
-    def _get_row_ranges(self, rows, col_slice):
-        """
-        Fast path for indexing in the case where column index is slice.
-
-        This gains performance improvement over brute force by more
-        efficient skipping of zeros, by accessing the elements
-        column-wise in order.
-
-        Parameters
-        ----------
-        rows : sequence or range
-            Rows indexed. If range, must be within valid bounds.
-        col_slice : slice
-            Columns indexed
-
-        """
-        j_start, j_stop, j_stride = col_slice.indices(self.shape[1])
-        col_range = range(j_start, j_stop, j_stride)
-        nj = len(col_range)
-        new = self._lil_container((len(rows), nj), dtype=self.dtype)
-
-        _csparsetools.lil_get_row_ranges(self.shape[0], self.shape[1],
-                                         self.rows, self.data,
-                                         new.rows, new.data,
-                                         rows,
-                                         j_start, j_stop, j_stride, nj)
-
-        return new
-
-    def _set_intXint(self, row, col, x):
-        _csparsetools.lil_insert(self.shape[0], self.shape[1], self.rows,
-                                 self.data, row, col, x)
-
-    def _set_arrayXarray(self, row, col, x):
-        i, j, x = map(np.atleast_2d, _prepare_index_for_memoryview(row, col, x))
-        _csparsetools.lil_fancy_set(self.shape[0], self.shape[1],
-                                    self.rows, self.data,
-                                    i, j, x)
-
-    def _set_arrayXarray_sparse(self, row, col, x):
-        # Fall back to densifying x
-        x = np.asarray(x.toarray(), dtype=self.dtype)
-        x, _ = _broadcast_arrays(x, row)
-        self._set_arrayXarray(row, col, x)
-
-    def __setitem__(self, key, x):
-        if isinstance(key, tuple) and len(key) == 2:
-            row, col = key
-            # Fast path for simple (int, int) indexing.
-            if isinstance(row, INT_TYPES) and isinstance(col, INT_TYPES):
-                x = self.dtype.type(x)
-                if x.size > 1:
-                    raise ValueError("Trying to assign a sequence to an item")
-                return self._set_intXint(row, col, x)
-            # Fast path for full-matrix sparse assignment.
-            if (isinstance(row, slice) and isinstance(col, slice) and
-                    row == slice(None) and col == slice(None) and
-                    issparse(x) and x.shape == self.shape):
-                x = self._lil_container(x, dtype=self.dtype)
-                self.rows = x.rows
-                self.data = x.data
-                return
-        # Everything else takes the normal path.
-        IndexMixin.__setitem__(self, key, x)
-
-    def _mul_scalar(self, other):
-        if other == 0:
-            # Multiply by zero: return the zero matrix
-            new = self._lil_container(self.shape, dtype=self.dtype)
-        else:
-            res_dtype = upcast_scalar(self.dtype, other)
-
-            new = self.copy()
-            new = new.astype(res_dtype)
-            # Multiply this scalar by every element.
-            for j, rowvals in enumerate(new.data):
-                new.data[j] = [val*other for val in rowvals]
-        return new
-
-    def __truediv__(self, other):           # self / other
-        if isscalarlike(other):
-            new = self.copy()
-            new.dtype = np.result_type(self, other)
-            # Divide every element by this scalar
-            for j, rowvals in enumerate(new.data):
-                new.data[j] = [val/other for val in rowvals]
-            return new
-        else:
-            return self.tocsr() / other
-
-    def copy(self):
-        M, N = self.shape
-        new = self._lil_container(self.shape, dtype=self.dtype)
-        # This is ~14x faster than calling deepcopy() on rows and data.
-        _csparsetools.lil_get_row_ranges(M, N, self.rows, self.data,
-                                         new.rows, new.data, range(M),
-                                         0, N, 1, N)
-        return new
-
-    copy.__doc__ = _spbase.copy.__doc__
-
-    def reshape(self, *args, **kwargs):
-        shape = check_shape(args, self.shape)
-        order, copy = check_reshape_kwargs(kwargs)
-
-        # Return early if reshape is not required
-        if shape == self.shape:
-            if copy:
-                return self.copy()
-            else:
-                return self
-
-        new = self._lil_container(shape, dtype=self.dtype)
-
-        if order == 'C':
-            ncols = self.shape[1]
-            for i, row in enumerate(self.rows):
-                for col, j in enumerate(row):
-                    new_r, new_c = np.unravel_index(i * ncols + j, shape)
-                    new[new_r, new_c] = self[i, j]
-        elif order == 'F':
-            nrows = self.shape[0]
-            for i, row in enumerate(self.rows):
-                for col, j in enumerate(row):
-                    new_r, new_c = np.unravel_index(i + j * nrows, shape, order)
-                    new[new_r, new_c] = self[i, j]
-        else:
-            raise ValueError("'order' must be 'C' or 'F'")
-
-        return new
-
-    reshape.__doc__ = _spbase.reshape.__doc__
-
-    def resize(self, *shape):
-        shape = check_shape(shape)
-        new_M, new_N = shape
-        M, N = self.shape
-
-        if new_M < M:
-            self.rows = self.rows[:new_M]
-            self.data = self.data[:new_M]
-        elif new_M > M:
-            self.rows = np.resize(self.rows, new_M)
-            self.data = np.resize(self.data, new_M)
-            for i in range(M, new_M):
-                self.rows[i] = []
-                self.data[i] = []
-
-        if new_N < N:
-            for row, data in zip(self.rows, self.data):
-                trunc = bisect_left(row, new_N)
-                del row[trunc:]
-                del data[trunc:]
-
-        self._shape = shape
-
-    resize.__doc__ = _spbase.resize.__doc__
-
-    def toarray(self, order=None, out=None):
-        d = self._process_toarray_args(order, out)
-        for i, row in enumerate(self.rows):
-            for pos, j in enumerate(row):
-                d[i, j] = self.data[i][pos]
-        return d
-
-    toarray.__doc__ = _spbase.toarray.__doc__
-
-    def transpose(self, axes=None, copy=False):
-        return self.tocsr(copy=copy).transpose(axes=axes, copy=False).tolil(copy=False)
-
-    transpose.__doc__ = _spbase.transpose.__doc__
-
-    def tolil(self, copy=False):
-        if copy:
-            return self.copy()
-        else:
-            return self
-
-    tolil.__doc__ = _spbase.tolil.__doc__
-
-    def tocsr(self, copy=False):
-        M, N = self.shape
-        if M == 0 or N == 0:
-            return self._csr_container((M, N), dtype=self.dtype)
-
-        # construct indptr array
-        if M*N <= np.iinfo(np.int32).max:
-            # fast path: it is known that 64-bit indexing will not be needed.
-            idx_dtype = np.int32
-            indptr = np.empty(M + 1, dtype=idx_dtype)
-            indptr[0] = 0
-            _csparsetools.lil_get_lengths(self.rows, indptr[1:])
-            np.cumsum(indptr, out=indptr)
-            nnz = indptr[-1]
-        else:
-            idx_dtype = self._get_index_dtype(maxval=N)
-            lengths = np.empty(M, dtype=idx_dtype)
-            _csparsetools.lil_get_lengths(self.rows, lengths)
-            nnz = lengths.sum(dtype=np.int64)
-            idx_dtype = self._get_index_dtype(maxval=max(N, nnz))
-            indptr = np.empty(M + 1, dtype=idx_dtype)
-            indptr[0] = 0
-            np.cumsum(lengths, dtype=idx_dtype, out=indptr[1:])
-
-        indices = np.empty(nnz, dtype=idx_dtype)
-        data = np.empty(nnz, dtype=self.dtype)
-        _csparsetools.lil_flatten_to_array(self.rows, indices)
-        _csparsetools.lil_flatten_to_array(self.data, data)
-
-        # init csr matrix
-        return self._csr_container((data, indices, indptr), shape=self.shape)
-
-    tocsr.__doc__ = _spbase.tocsr.__doc__
-
-
-def _prepare_index_for_memoryview(i, j, x=None):
-    """
-    Convert index and data arrays to form suitable for passing to the
-    Cython fancy getset routines.
-
-    The conversions are necessary since to (i) ensure the integer
-    index arrays are in one of the accepted types, and (ii) to ensure
-    the arrays are writable so that Cython memoryview support doesn't
-    choke on them.
-
-    Parameters
-    ----------
-    i, j
-        Index arrays
-    x : optional
-        Data arrays
-
-    Returns
-    -------
-    i, j, x
-        Re-formatted arrays (x is omitted, if input was None)
-
-    """
-    if i.dtype > j.dtype:
-        j = j.astype(i.dtype)
-    elif i.dtype < j.dtype:
-        i = i.astype(j.dtype)
-
-    if not i.flags.writeable or i.dtype not in (np.int32, np.int64):
-        i = i.astype(np.intp)
-    if not j.flags.writeable or j.dtype not in (np.int32, np.int64):
-        j = j.astype(np.intp)
-
-    if x is not None:
-        if not x.flags.writeable:
-            x = x.copy()
-        return i, j, x
-    else:
-        return i, j
-
-
-def isspmatrix_lil(x):
-    """Is `x` of lil_matrix type?
-
-    Parameters
-    ----------
-    x
-        object to check for being a lil matrix
-
-    Returns
-    -------
-    bool
-        True if `x` is a lil matrix, False otherwise
-
-    Examples
-    --------
-    >>> from scipy.sparse import lil_array, lil_matrix, coo_matrix, isspmatrix_lil
-    >>> isspmatrix_lil(lil_matrix([[5]]))
-    True
-    >>> isspmatrix_lil(lil_array([[5]]))
-    False
-    >>> isspmatrix_lil(coo_matrix([[5]]))
-    False
-    """
-    return isinstance(x, lil_matrix)
-
-
-# This namespace class separates array from matrix with isinstance
-class lil_array(_lil_base, sparray):
-    """
-    Row-based LIst of Lists sparse array.
-
-    This is a structure for constructing sparse arrays incrementally.
-    Note that inserting a single item can take linear time in the worst case;
-    to construct the array efficiently, make sure the items are pre-sorted by
-    index, per row.
-
-    This can be instantiated in several ways:
-        lil_array(D)
-            where D is a 2-D ndarray
-
-        lil_array(S)
-            with another sparse array or matrix S (equivalent to S.tolil())
-
-        lil_array((M, N), [dtype])
-            to construct an empty array with shape (M, N)
-            dtype is optional, defaulting to dtype='d'.
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the array
-    shape : 2-tuple
-        Shape of the array
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        LIL format data array of the array
-    rows
-        LIL format row index array of the array
-    T
-
-    Notes
-    -----
-    Sparse arrays can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    Advantages of the LIL format
-        - supports flexible slicing
-        - changes to the array sparsity structure are efficient
-
-    Disadvantages of the LIL format
-        - arithmetic operations LIL + LIL are slow (consider CSR or CSC)
-        - slow column slicing (consider CSC)
-        - slow matrix vector products (consider CSR or CSC)
-
-    Intended Usage
-        - LIL is a convenient format for constructing sparse arrays
-        - once an array has been constructed, convert to CSR or
-          CSC format for fast arithmetic and matrix vector operations
-        - consider using the COO format when constructing large arrays
-
-    Data Structure
-        - An array (``self.rows``) of rows, each of which is a sorted
-          list of column indices of non-zero elements.
-        - The corresponding nonzero values are stored in similar
-          fashion in ``self.data``.
-
-    """
-
-
-class lil_matrix(spmatrix, _lil_base):
-    """
-    Row-based LIst of Lists sparse matrix.
-
-    This is a structure for constructing sparse matrices incrementally.
-    Note that inserting a single item can take linear time in the worst case;
-    to construct the matrix efficiently, make sure the items are pre-sorted by
-    index, per row.
-
-    This can be instantiated in several ways:
-        lil_matrix(D)
-            where D is a 2-D ndarray
-
-        lil_matrix(S)
-            with another sparse array or matrix S (equivalent to S.tolil())
-
-        lil_matrix((M, N), [dtype])
-            to construct an empty matrix with shape (M, N)
-            dtype is optional, defaulting to dtype='d'.
-
-    Attributes
-    ----------
-    dtype : dtype
-        Data type of the matrix
-    shape : 2-tuple
-        Shape of the matrix
-    ndim : int
-        Number of dimensions (this is always 2)
-    nnz
-    size
-    data
-        LIL format data array of the matrix
-    rows
-        LIL format row index array of the matrix
-    T
-
-    Notes
-    -----
-    Sparse matrices can be used in arithmetic operations: they support
-    addition, subtraction, multiplication, division, and matrix power.
-
-    Advantages of the LIL format
-        - supports flexible slicing
-        - changes to the matrix sparsity structure are efficient
-
-    Disadvantages of the LIL format
-        - arithmetic operations LIL + LIL are slow (consider CSR or CSC)
-        - slow column slicing (consider CSC)
-        - slow matrix vector products (consider CSR or CSC)
-
-    Intended Usage
-        - LIL is a convenient format for constructing sparse matrices
-        - once a matrix has been constructed, convert to CSR or
-          CSC format for fast arithmetic and matrix vector operations
-        - consider using the COO format when constructing large matrices
-
-    Data Structure
-        - An array (``self.rows``) of rows, each of which is a sorted
-          list of column indices of non-zero elements.
-        - The corresponding nonzero values are stored in similar
-          fashion in ``self.data``.
-
-    """
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py
deleted file mode 100644
index 1ab8749423833b78f7efc17feb6e1a8e6405408a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_matrix.py
+++ /dev/null
@@ -1,113 +0,0 @@
-class spmatrix:
-    """This class provides a base class for all sparse matrix classes.
-
-    It cannot be instantiated.  Most of the work is provided by subclasses.
-    """
-
-    @property
-    def _bsr_container(self):
-        from ._bsr import bsr_matrix
-        return bsr_matrix
-
-    @property
-    def _coo_container(self):
-        from ._coo import coo_matrix
-        return coo_matrix
-
-    @property
-    def _csc_container(self):
-        from ._csc import csc_matrix
-        return csc_matrix
-
-    @property
-    def _csr_container(self):
-        from ._csr import csr_matrix
-        return csr_matrix
-
-    @property
-    def _dia_container(self):
-        from ._dia import dia_matrix
-        return dia_matrix
-
-    @property
-    def _dok_container(self):
-        from ._dok import dok_matrix
-        return dok_matrix
-
-    @property
-    def _lil_container(self):
-        from ._lil import lil_matrix
-        return lil_matrix
-
-    # Restore matrix multiplication
-    def __mul__(self, other):
-        return self._matmul_dispatch(other)
-
-    def __rmul__(self, other):
-        return self._rmatmul_dispatch(other)
-
-    # Restore matrix power
-    def __pow__(self, power):
-        from .linalg import matrix_power
-
-        return matrix_power(self, power)
-
-    ## Backward compatibility
-
-    def set_shape(self, shape):
-        """Set the shape of the matrix in-place"""
-        # Make sure copy is False since this is in place
-        # Make sure format is unchanged because we are doing a __dict__ swap
-        new_self = self.reshape(shape, copy=False).asformat(self.format)
-        self.__dict__ = new_self.__dict__
-
-    def get_shape(self):
-        """Get the shape of the matrix"""
-        return self._shape
-
-    shape = property(fget=get_shape, fset=set_shape,
-                     doc="Shape of the matrix")
-
-    def asfptype(self):
-        """Upcast matrix to a floating point format (if necessary)"""
-        return self._asfptype()
-
-    def getmaxprint(self):
-        """Maximum number of elements to display when printed."""
-        return self._getmaxprint()
-
-    def getformat(self):
-        """Matrix storage format"""
-        return self.format
-
-    def getnnz(self, axis=None):
-        """Number of stored values, including explicit zeros.
-
-        Parameters
-        ----------
-        axis : None, 0, or 1
-            Select between the number of values across the whole array, in
-            each column, or in each row.
-        """
-        return self._getnnz(axis=axis)
-
-    def getH(self):
-        """Return the Hermitian transpose of this matrix.
-
-        See Also
-        --------
-        numpy.matrix.getH : NumPy's implementation of `getH` for matrices
-        """
-        return self.conjugate().transpose()
-
-    def getcol(self, j):
-        """Returns a copy of column j of the matrix, as an (m x 1) sparse
-        matrix (column vector).
-        """
-        return self._getcol(j)
-
-    def getrow(self, i):
-        """Returns a copy of row i of the matrix, as a (1 x n) sparse
-        matrix (row vector).
-        """
-        return self._getrow(i)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_matrix_io.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_matrix_io.py
deleted file mode 100644
index 5b7f533926fd415a379cb08420b4a65a14baeb43..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_matrix_io.py
+++ /dev/null
@@ -1,167 +0,0 @@
-import numpy as np
-import scipy as sp
-
-__all__ = ['save_npz', 'load_npz']
-
-
-# Make loading safe vs. malicious input
-PICKLE_KWARGS = dict(allow_pickle=False)
-
-
-def save_npz(file, matrix, compressed=True):
-    """ Save a sparse matrix or array to a file using ``.npz`` format.
-
-    Parameters
-    ----------
-    file : str or file-like object
-        Either the file name (string) or an open file (file-like object)
-        where the data will be saved. If file is a string, the ``.npz``
-        extension will be appended to the file name if it is not already
-        there.
-    matrix: spmatrix or sparray
-        The sparse matrix or array to save.
-        Supported formats: ``csc``, ``csr``, ``bsr``, ``dia`` or ``coo``.
-    compressed : bool, optional
-        Allow compressing the file. Default: True
-
-    See Also
-    --------
-    scipy.sparse.load_npz: Load a sparse matrix from a file using ``.npz`` format.
-    numpy.savez: Save several arrays into a ``.npz`` archive.
-    numpy.savez_compressed : Save several arrays into a compressed ``.npz`` archive.
-
-    Examples
-    --------
-    Store sparse matrix to disk, and load it again:
-
-    >>> import numpy as np
-    >>> import scipy as sp
-    >>> sparse_matrix = sp.sparse.csc_matrix([[0, 0, 3], [4, 0, 0]])
-    >>> sparse_matrix
-    
-    >>> sparse_matrix.toarray()
-    array([[0, 0, 3],
-           [4, 0, 0]], dtype=int64)
-
-    >>> sp.sparse.save_npz('/tmp/sparse_matrix.npz', sparse_matrix)
-    >>> sparse_matrix = sp.sparse.load_npz('/tmp/sparse_matrix.npz')
-
-    >>> sparse_matrix
-    
-    >>> sparse_matrix.toarray()
-    array([[0, 0, 3],
-           [4, 0, 0]], dtype=int64)
-    """
-    arrays_dict = {}
-    if matrix.format in ('csc', 'csr', 'bsr'):
-        arrays_dict.update(indices=matrix.indices, indptr=matrix.indptr)
-    elif matrix.format == 'dia':
-        arrays_dict.update(offsets=matrix.offsets)
-    elif matrix.format == 'coo':
-        arrays_dict.update(row=matrix.row, col=matrix.col)
-    else:
-        msg = f'Save is not implemented for sparse matrix of format {matrix.format}.'
-        raise NotImplementedError(msg)
-    arrays_dict.update(
-        format=matrix.format.encode('ascii'),
-        shape=matrix.shape,
-        data=matrix.data
-    )
-    if isinstance(matrix, sp.sparse.sparray):
-        arrays_dict.update(_is_array=True)
-    if compressed:
-        np.savez_compressed(file, **arrays_dict)
-    else:
-        np.savez(file, **arrays_dict)
-
-
-def load_npz(file):
-    """ Load a sparse array/matrix from a file using ``.npz`` format.
-
-    Parameters
-    ----------
-    file : str or file-like object
-        Either the file name (string) or an open file (file-like object)
-        where the data will be loaded.
-
-    Returns
-    -------
-    result : csc_array, csr_array, bsr_array, dia_array or coo_array
-        A sparse array/matrix containing the loaded data.
-
-    Raises
-    ------
-    OSError
-        If the input file does not exist or cannot be read.
-
-    See Also
-    --------
-    scipy.sparse.save_npz: Save a sparse array/matrix to a file using ``.npz`` format.
-    numpy.load: Load several arrays from a ``.npz`` archive.
-
-    Examples
-    --------
-    Store sparse array/matrix to disk, and load it again:
-
-    >>> import numpy as np
-    >>> import scipy as sp
-    >>> sparse_array = sp.sparse.csc_array([[0, 0, 3], [4, 0, 0]])
-    >>> sparse_array
-    
-    >>> sparse_array.toarray()
-    array([[0, 0, 3],
-           [4, 0, 0]], dtype=int64)
-
-    >>> sp.sparse.save_npz('/tmp/sparse_array.npz', sparse_array)
-    >>> sparse_array = sp.sparse.load_npz('/tmp/sparse_array.npz')
-
-    >>> sparse_array
-    
-    >>> sparse_array.toarray()
-    array([[0, 0, 3],
-           [4, 0, 0]], dtype=int64)
-
-    In this example we force the result to be csr_array from csr_matrix
-    >>> sparse_matrix = sp.sparse.csc_matrix([[0, 0, 3], [4, 0, 0]])
-    >>> sp.sparse.save_npz('/tmp/sparse_matrix.npz', sparse_matrix)
-    >>> tmp = sp.sparse.load_npz('/tmp/sparse_matrix.npz')
-    >>> sparse_array = sp.sparse.csr_array(tmp)
-    """
-    with np.load(file, **PICKLE_KWARGS) as loaded:
-        sparse_format = loaded.get('format')
-        if sparse_format is None:
-            raise ValueError(f'The file {file} does not contain '
-                             f'a sparse array or matrix.')
-        sparse_format = sparse_format.item()
-
-        if not isinstance(sparse_format, str):
-            # Play safe with Python 2 vs 3 backward compatibility;
-            # files saved with SciPy < 1.0.0 may contain unicode or bytes.
-            sparse_format = sparse_format.decode('ascii')
-
-        if loaded.get('_is_array'):
-            sparse_type = sparse_format + '_array'
-        else:
-            sparse_type = sparse_format + '_matrix'
-
-        try:
-            cls = getattr(sp.sparse, f'{sparse_type}')
-        except AttributeError as e:
-            raise ValueError(f'Unknown format "{sparse_type}"') from e
-
-        if sparse_format in ('csc', 'csr', 'bsr'):
-            return cls((loaded['data'], loaded['indices'], loaded['indptr']),
-                       shape=loaded['shape'])
-        elif sparse_format == 'dia':
-            return cls((loaded['data'], loaded['offsets']),
-                       shape=loaded['shape'])
-        elif sparse_format == 'coo':
-            return cls((loaded['data'], (loaded['row'], loaded['col'])),
-                       shape=loaded['shape'])
-        else:
-            raise NotImplementedError(f'Load is not implemented for '
-                                      f'sparse matrix of format {sparse_format}.')
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_spfuncs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_spfuncs.py
deleted file mode 100644
index 8e9b0abcede6387e74538baf839a303c6cc1b6be..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_spfuncs.py
+++ /dev/null
@@ -1,76 +0,0 @@
-""" Functions that operate on sparse matrices
-"""
-
-__all__ = ['count_blocks','estimate_blocksize']
-
-from ._base import issparse
-from ._csr import csr_array
-from ._sparsetools import csr_count_blocks
-
-
-def estimate_blocksize(A,efficiency=0.7):
-    """Attempt to determine the blocksize of a sparse matrix
-
-    Returns a blocksize=(r,c) such that
-        - A.nnz / A.tobsr( (r,c) ).nnz > efficiency
-    """
-    if not (issparse(A) and A.format in ("csc", "csr")):
-        A = csr_array(A)
-
-    if A.nnz == 0:
-        return (1,1)
-
-    if not 0 < efficiency < 1.0:
-        raise ValueError('efficiency must satisfy 0.0 < efficiency < 1.0')
-
-    high_efficiency = (1.0 + efficiency) / 2.0
-    nnz = float(A.nnz)
-    M,N = A.shape
-
-    if M % 2 == 0 and N % 2 == 0:
-        e22 = nnz / (4 * count_blocks(A,(2,2)))
-    else:
-        e22 = 0.0
-
-    if M % 3 == 0 and N % 3 == 0:
-        e33 = nnz / (9 * count_blocks(A,(3,3)))
-    else:
-        e33 = 0.0
-
-    if e22 > high_efficiency and e33 > high_efficiency:
-        e66 = nnz / (36 * count_blocks(A,(6,6)))
-        if e66 > efficiency:
-            return (6,6)
-        else:
-            return (3,3)
-    else:
-        if M % 4 == 0 and N % 4 == 0:
-            e44 = nnz / (16 * count_blocks(A,(4,4)))
-        else:
-            e44 = 0.0
-
-        if e44 > efficiency:
-            return (4,4)
-        elif e33 > efficiency:
-            return (3,3)
-        elif e22 > efficiency:
-            return (2,2)
-        else:
-            return (1,1)
-
-
-def count_blocks(A,blocksize):
-    """For a given blocksize=(r,c) count the number of occupied
-    blocks in a sparse matrix A
-    """
-    r,c = blocksize
-    if r < 1 or c < 1:
-        raise ValueError('r and c must be positive')
-
-    if issparse(A):
-        if A.format == "csr":
-            M,N = A.shape
-            return csr_count_blocks(M,N,r,c,A.indptr,A.indices)
-        elif A.format == "csc":
-            return count_blocks(A.T,(c,r))
-    return count_blocks(csr_array(A),blocksize)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py
deleted file mode 100644
index fa515606006d5084799cd6ac8578e1f88ed51bb9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/_sputils.py
+++ /dev/null
@@ -1,451 +0,0 @@
-""" Utility functions for sparse matrix module
-"""
-
-import sys
-from typing import Any, Literal, Optional, Union
-import operator
-import numpy as np
-from math import prod
-import scipy.sparse as sp
-from scipy._lib._util import np_long, np_ulong
-
-
-__all__ = ['upcast', 'getdtype', 'getdata', 'isscalarlike', 'isintlike',
-           'isshape', 'issequence', 'isdense', 'ismatrix', 'get_sum_dtype']
-
-supported_dtypes = [np.bool_, np.byte, np.ubyte, np.short, np.ushort, np.intc,
-                    np.uintc, np_long, np_ulong, np.longlong, np.ulonglong,
-                    np.float32, np.float64, np.longdouble, 
-                    np.complex64, np.complex128, np.clongdouble]
-
-_upcast_memo = {}
-
-
-def upcast(*args):
-    """Returns the nearest supported sparse dtype for the
-    combination of one or more types.
-
-    upcast(t0, t1, ..., tn) -> T  where T is a supported dtype
-
-    Examples
-    --------
-    >>> from scipy.sparse._sputils import upcast
-    >>> upcast('int32')
-    
-    >>> upcast('bool')
-    
-    >>> upcast('int32','float32')
-    
-    >>> upcast('bool',complex,float)
-    
-
-    """
-
-    t = _upcast_memo.get(hash(args))
-    if t is not None:
-        return t
-
-    upcast = np.result_type(*args)
-
-    for t in supported_dtypes:
-        if np.can_cast(upcast, t):
-            _upcast_memo[hash(args)] = t
-            return t
-
-    raise TypeError(f'no supported conversion for types: {args!r}')
-
-
-def upcast_char(*args):
-    """Same as `upcast` but taking dtype.char as input (faster)."""
-    t = _upcast_memo.get(args)
-    if t is not None:
-        return t
-    t = upcast(*map(np.dtype, args))
-    _upcast_memo[args] = t
-    return t
-
-
-def upcast_scalar(dtype, scalar):
-    """Determine data type for binary operation between an array of
-    type `dtype` and a scalar.
-    """
-    return (np.array([0], dtype=dtype) * scalar).dtype
-
-
-def downcast_intp_index(arr):
-    """
-    Down-cast index array to np.intp dtype if it is of a larger dtype.
-
-    Raise an error if the array contains a value that is too large for
-    intp.
-    """
-    if arr.dtype.itemsize > np.dtype(np.intp).itemsize:
-        if arr.size == 0:
-            return arr.astype(np.intp)
-        maxval = arr.max()
-        minval = arr.min()
-        if maxval > np.iinfo(np.intp).max or minval < np.iinfo(np.intp).min:
-            raise ValueError("Cannot deal with arrays with indices larger "
-                             "than the machine maximum address size "
-                             "(e.g. 64-bit indices on 32-bit machine).")
-        return arr.astype(np.intp)
-    return arr
-
-
-def to_native(A):
-    """
-    Ensure that the data type of the NumPy array `A` has native byte order.
-
-    `A` must be a NumPy array.  If the data type of `A` does not have native
-    byte order, a copy of `A` with a native byte order is returned. Otherwise
-    `A` is returned.
-    """
-    dt = A.dtype
-    if dt.isnative:
-        # Don't call `asarray()` if A is already native, to avoid unnecessarily
-        # creating a view of the input array.
-        return A
-    return np.asarray(A, dtype=dt.newbyteorder('native'))
-
-
-def getdtype(dtype, a=None, default=None):
-    """Function used to simplify argument processing. If 'dtype' is not
-    specified (is None), returns a.dtype; otherwise returns a np.dtype
-    object created from the specified dtype argument. If 'dtype' and 'a'
-    are both None, construct a data type out of the 'default' parameter.
-    Furthermore, 'dtype' must be in 'allowed' set.
-    """
-    # TODO is this really what we want?
-    if dtype is None:
-        try:
-            newdtype = a.dtype
-        except AttributeError as e:
-            if default is not None:
-                newdtype = np.dtype(default)
-            else:
-                raise TypeError("could not interpret data type") from e
-    else:
-        newdtype = np.dtype(dtype)
-        if newdtype == np.object_:
-            raise ValueError(
-                "object dtype is not supported by sparse matrices"
-            )
-
-    return newdtype
-
-
-def getdata(obj, dtype=None, copy=False) -> np.ndarray:
-    """
-    This is a wrapper of `np.array(obj, dtype=dtype, copy=copy)`
-    that will generate a warning if the result is an object array.
-    """
-    data = np.array(obj, dtype=dtype, copy=copy)
-    # Defer to getdtype for checking that the dtype is OK.
-    # This is called for the validation only; we don't need the return value.
-    getdtype(data.dtype)
-    return data
-
-
-def get_index_dtype(arrays=(), maxval=None, check_contents=False):
-    """
-    Based on input (integer) arrays `a`, determine a suitable index data
-    type that can hold the data in the arrays.
-
-    Parameters
-    ----------
-    arrays : tuple of array_like
-        Input arrays whose types/contents to check
-    maxval : float, optional
-        Maximum value needed
-    check_contents : bool, optional
-        Whether to check the values in the arrays and not just their types.
-        Default: False (check only the types)
-
-    Returns
-    -------
-    dtype : dtype
-        Suitable index data type (int32 or int64)
-
-    """
-
-    int32min = np.int32(np.iinfo(np.int32).min)
-    int32max = np.int32(np.iinfo(np.int32).max)
-
-    # not using intc directly due to misinteractions with pythran
-    dtype = np.int32 if np.intc().itemsize == 4 else np.int64
-    if maxval is not None:
-        maxval = np.int64(maxval)
-        if maxval > int32max:
-            dtype = np.int64
-
-    if isinstance(arrays, np.ndarray):
-        arrays = (arrays,)
-
-    for arr in arrays:
-        arr = np.asarray(arr)
-        if not np.can_cast(arr.dtype, np.int32):
-            if check_contents:
-                if arr.size == 0:
-                    # a bigger type not needed
-                    continue
-                elif np.issubdtype(arr.dtype, np.integer):
-                    maxval = arr.max()
-                    minval = arr.min()
-                    if minval >= int32min and maxval <= int32max:
-                        # a bigger type not needed
-                        continue
-
-            dtype = np.int64
-            break
-
-    return dtype
-
-
-def get_sum_dtype(dtype: np.dtype) -> np.dtype:
-    """Mimic numpy's casting for np.sum"""
-    if dtype.kind == 'u' and np.can_cast(dtype, np.uint):
-        return np.uint
-    if np.can_cast(dtype, np.int_):
-        return np.int_
-    return dtype
-
-
-def isscalarlike(x) -> bool:
-    """Is x either a scalar, an array scalar, or a 0-dim array?"""
-    return np.isscalar(x) or (isdense(x) and x.ndim == 0)
-
-
-def isintlike(x) -> bool:
-    """Is x appropriate as an index into a sparse matrix? Returns True
-    if it can be cast safely to a machine int.
-    """
-    # Fast-path check to eliminate non-scalar values. operator.index would
-    # catch this case too, but the exception catching is slow.
-    if np.ndim(x) != 0:
-        return False
-    try:
-        operator.index(x)
-    except (TypeError, ValueError):
-        try:
-            loose_int = bool(int(x) == x)
-        except (TypeError, ValueError):
-            return False
-        if loose_int:
-            msg = "Inexact indices into sparse matrices are not allowed"
-            raise ValueError(msg)
-        return loose_int
-    return True
-
-
-def isshape(x, nonneg=False, *, allow_1d=False) -> bool:
-    """Is x a valid tuple of dimensions?
-
-    If nonneg, also checks that the dimensions are non-negative.
-    If allow_1d, shapes of length 1 or 2 are allowed.
-    """
-    ndim = len(x)
-    if ndim != 2 and not (allow_1d and ndim == 1):
-        return False
-    for d in x:
-        if not isintlike(d):
-            return False
-        if nonneg and d < 0:
-            return False
-    return True
-
-
-def issequence(t) -> bool:
-    return ((isinstance(t, (list, tuple)) and
-            (len(t) == 0 or np.isscalar(t[0]))) or
-            (isinstance(t, np.ndarray) and (t.ndim == 1)))
-
-
-def ismatrix(t) -> bool:
-    return ((isinstance(t, (list, tuple)) and
-             len(t) > 0 and issequence(t[0])) or
-            (isinstance(t, np.ndarray) and t.ndim == 2))
-
-
-def isdense(x) -> bool:
-    return isinstance(x, np.ndarray)
-
-
-def validateaxis(axis) -> None:
-    if axis is None:
-        return
-    axis_type = type(axis)
-
-    # In NumPy, you can pass in tuples for 'axis', but they are
-    # not very useful for sparse matrices given their limited
-    # dimensions, so let's make it explicit that they are not
-    # allowed to be passed in
-    if axis_type == tuple:
-        raise TypeError("Tuples are not accepted for the 'axis' parameter. "
-                        "Please pass in one of the following: "
-                        "{-2, -1, 0, 1, None}.")
-
-    # If not a tuple, check that the provided axis is actually
-    # an integer and raise a TypeError similar to NumPy's
-    if not np.issubdtype(np.dtype(axis_type), np.integer):
-        raise TypeError(f"axis must be an integer, not {axis_type.__name__}")
-
-    if not (-2 <= axis <= 1):
-        raise ValueError("axis out of range")
-
-
-def check_shape(args, current_shape=None, *, allow_1d=False) -> tuple[int, ...]:
-    """Imitate numpy.matrix handling of shape arguments
-
-    Parameters
-    ----------
-    args : array_like
-        Data structures providing information about the shape of the sparse array.
-    current_shape : tuple, optional
-        The current shape of the sparse array or matrix.
-        If None (default), the current shape will be inferred from args.
-    allow_1d : bool, optional
-        If True, then 1-D or 2-D arrays are accepted.
-        If False (default), then only 2-D arrays are accepted and an error is
-        raised otherwise.
-
-    Returns
-    -------
-    new_shape: tuple
-        The new shape after validation.
-    """
-    if len(args) == 0:
-        raise TypeError("function missing 1 required positional argument: "
-                        "'shape'")
-    if len(args) == 1:
-        try:
-            shape_iter = iter(args[0])
-        except TypeError:
-            new_shape = (operator.index(args[0]), )
-        else:
-            new_shape = tuple(operator.index(arg) for arg in shape_iter)
-    else:
-        new_shape = tuple(operator.index(arg) for arg in args)
-
-    if current_shape is None:
-        if allow_1d:
-            if len(new_shape) not in (1, 2):
-                raise ValueError('shape must be a 1- or 2-tuple of positive '
-                                 'integers')
-        elif len(new_shape) != 2:
-            raise ValueError('shape must be a 2-tuple of positive integers')
-        if any(d < 0 for d in new_shape):
-            raise ValueError("'shape' elements cannot be negative")
-    else:
-        # Check the current size only if needed
-        current_size = prod(current_shape)
-
-        # Check for negatives
-        negative_indexes = [i for i, x in enumerate(new_shape) if x < 0]
-        if not negative_indexes:
-            new_size = prod(new_shape)
-            if new_size != current_size:
-                raise ValueError('cannot reshape array of size {} into shape {}'
-                                 .format(current_size, new_shape))
-        elif len(negative_indexes) == 1:
-            skip = negative_indexes[0]
-            specified = prod(new_shape[:skip] + new_shape[skip+1:])
-            unspecified, remainder = divmod(current_size, specified)
-            if remainder != 0:
-                err_shape = tuple('newshape' if x < 0 else x for x in new_shape)
-                raise ValueError('cannot reshape array of size {} into shape {}'
-                                 ''.format(current_size, err_shape))
-            new_shape = new_shape[:skip] + (unspecified,) + new_shape[skip+1:]
-        else:
-            raise ValueError('can only specify one unknown dimension')
-
-    if len(new_shape) != 2 and not (allow_1d and len(new_shape) == 1):
-        raise ValueError('matrix shape must be two-dimensional')
-
-    return new_shape
-
-
-def check_reshape_kwargs(kwargs):
-    """Unpack keyword arguments for reshape function.
-
-    This is useful because keyword arguments after star arguments are not
-    allowed in Python 2, but star keyword arguments are. This function unpacks
-    'order' and 'copy' from the star keyword arguments (with defaults) and
-    throws an error for any remaining.
-    """
-
-    order = kwargs.pop('order', 'C')
-    copy = kwargs.pop('copy', False)
-    if kwargs:  # Some unused kwargs remain
-        raise TypeError('reshape() got unexpected keywords arguments: {}'
-                        .format(', '.join(kwargs.keys())))
-    return order, copy
-
-
-def is_pydata_spmatrix(m) -> bool:
-    """
-    Check whether object is pydata/sparse matrix, avoiding importing the module.
-    """
-    base_cls = getattr(sys.modules.get('sparse'), 'SparseArray', None)
-    return base_cls is not None and isinstance(m, base_cls)
-
-
-def convert_pydata_sparse_to_scipy(
-    arg: Any, target_format: Optional[Literal["csc", "csr"]] = None
-) -> Union[Any, "sp.spmatrix"]:
-    """
-    Convert a pydata/sparse array to scipy sparse matrix,
-    pass through anything else.
-    """
-    if is_pydata_spmatrix(arg):
-        arg = arg.to_scipy_sparse()
-        if target_format is not None:
-            arg = arg.asformat(target_format)
-        elif arg.format not in ("csc", "csr"):
-            arg = arg.tocsc()
-    return arg
-
-
-###############################################################################
-# Wrappers for NumPy types that are deprecated
-
-# Numpy versions of these functions raise deprecation warnings, the
-# ones below do not.
-
-def matrix(*args, **kwargs):
-    return np.array(*args, **kwargs).view(np.matrix)
-
-
-def asmatrix(data, dtype=None):
-    if isinstance(data, np.matrix) and (dtype is None or data.dtype == dtype):
-        return data
-    return np.asarray(data, dtype=dtype).view(np.matrix)
-
-###############################################################################
-
-
-def _todata(s) -> np.ndarray:
-    """Access nonzero values, possibly after summing duplicates.
-
-    Parameters
-    ----------
-    s : sparse array
-        Input sparse array.
-
-    Returns
-    -------
-    data: ndarray
-      Nonzero values of the array, with shape (s.nnz,)
-
-    """
-    if isinstance(s, sp._data._data_matrix):
-        return s._deduped_data()
-
-    if isinstance(s, sp.dok_array):
-        return np.fromiter(s.values(), dtype=s.dtype, count=s.nnz)
-
-    if isinstance(s, sp.lil_array):
-        data = np.empty(s.nnz, dtype=s.dtype)
-        sp._csparsetools.lil_flatten_to_array(s.data, data)
-        return data
-
-    return s.tocoo()._deduped_data()
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/base.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/base.py
deleted file mode 100644
index d0a427e4570e07cc71e9e45bf98c7cf61798125b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/base.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'MAXPRINT',
-    'SparseEfficiencyWarning',
-    'SparseFormatWarning',
-    'SparseWarning',
-    'asmatrix',
-    'check_reshape_kwargs',
-    'check_shape',
-    'get_sum_dtype',
-    'isdense',
-    'isscalarlike',
-    'issparse',
-    'isspmatrix',
-    'spmatrix',
-    'validateaxis',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="base",
-                                   private_modules=["_base"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/bsr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/bsr.py
deleted file mode 100644
index c686301a78fc3e2221600eb06035a5cb12898cdb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/bsr.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'bsr_matmat',
-    'bsr_matrix',
-    'bsr_matvec',
-    'bsr_matvecs',
-    'bsr_sort_indices',
-    'bsr_tocsr',
-    'bsr_transpose',
-    'check_shape',
-    'csr_matmat_maxnnz',
-    'getdata',
-    'getdtype',
-    'isshape',
-    'isspmatrix_bsr',
-    'spmatrix',
-    'to_native',
-    'upcast',
-    'warn',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="bsr",
-                                   private_modules=["_bsr"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/compressed.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/compressed.py
deleted file mode 100644
index e6dc8a73e5ab527cfe0b73d558dae25047cfb98b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/compressed.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'IndexMixin',
-    'SparseEfficiencyWarning',
-    'check_shape',
-    'csr_column_index1',
-    'csr_column_index2',
-    'csr_row_index',
-    'csr_row_slice',
-    'csr_sample_offsets',
-    'csr_sample_values',
-    'csr_todense',
-    'downcast_intp_index',
-    'get_csr_submatrix',
-    'get_sum_dtype',
-    'getdtype',
-    'is_pydata_spmatrix',
-    'isdense',
-    'isintlike',
-    'isscalarlike',
-    'isshape',
-    'operator',
-    'to_native',
-    'upcast',
-    'upcast_char',
-    'warn',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="compressed",
-                                   private_modules=["_compressed"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/construct.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/construct.py
deleted file mode 100644
index c3d34d2fd38887877980727bceaaa215129bf283..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/construct.py
+++ /dev/null
@@ -1,44 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'block_diag',
-    'bmat',
-    'bsr_matrix',
-    'check_random_state',
-    'coo_matrix',
-    'csc_matrix',
-    'csr_hstack',
-    'csr_matrix',
-    'dia_matrix',
-    'diags',
-    'eye',
-    'get_index_dtype',
-    'hstack',
-    'identity',
-    'isscalarlike',
-    'issparse',
-    'kron',
-    'kronsum',
-    'numbers',
-    'rand',
-    'random',
-    'rng_integers',
-    'spdiags',
-    'upcast',
-    'vstack',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="construct",
-                                   private_modules=["_construct"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/coo.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/coo.py
deleted file mode 100644
index bda2da3d09a676ab79739331a21ba26102bb90ae..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/coo.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'SparseEfficiencyWarning',
-    'check_reshape_kwargs',
-    'check_shape',
-    'coo_matrix',
-    'coo_matvec',
-    'coo_tocsr',
-    'coo_todense',
-    'downcast_intp_index',
-    'getdata',
-    'getdtype',
-    'isshape',
-    'isspmatrix_coo',
-    'operator',
-    'spmatrix',
-    'to_native',
-    'upcast',
-    'upcast_char',
-    'warn',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="coo",
-                                   private_modules=["_coo"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csc.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csc.py
deleted file mode 100644
index d140b841e0724155f8602a4215836e2c8a7fad72..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csc.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'csc_matrix',
-    'csc_tocsr',
-    'expandptr',
-    'isspmatrix_csc',
-    'spmatrix',
-    'upcast',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="csc",
-                                   private_modules=["_csc"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__init__.py
deleted file mode 100644
index 2fcb5bc7206fa61c862b1ead6754dbaf541c5687..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__init__.py
+++ /dev/null
@@ -1,210 +0,0 @@
-r"""
-Compressed sparse graph routines (:mod:`scipy.sparse.csgraph`)
-==============================================================
-
-.. currentmodule:: scipy.sparse.csgraph
-
-Fast graph algorithms based on sparse matrix representations.
-
-Contents
---------
-
-.. autosummary::
-   :toctree: generated/
-
-   connected_components -- determine connected components of a graph
-   laplacian -- compute the laplacian of a graph
-   shortest_path -- compute the shortest path between points on a positive graph
-   dijkstra -- use Dijkstra's algorithm for shortest path
-   floyd_warshall -- use the Floyd-Warshall algorithm for shortest path
-   bellman_ford -- use the Bellman-Ford algorithm for shortest path
-   johnson -- use Johnson's algorithm for shortest path
-   yen -- use Yen's algorithm for K-shortest paths between to nodes.
-   breadth_first_order -- compute a breadth-first order of nodes
-   depth_first_order -- compute a depth-first order of nodes
-   breadth_first_tree -- construct the breadth-first tree from a given node
-   depth_first_tree -- construct a depth-first tree from a given node
-   minimum_spanning_tree -- construct the minimum spanning tree of a graph
-   reverse_cuthill_mckee -- compute permutation for reverse Cuthill-McKee ordering
-   maximum_flow -- solve the maximum flow problem for a graph
-   maximum_bipartite_matching -- compute a maximum matching of a bipartite graph
-   min_weight_full_bipartite_matching - compute a minimum weight full matching of a bipartite graph
-   structural_rank -- compute the structural rank of a graph
-   NegativeCycleError
-
-.. autosummary::
-   :toctree: generated/
-
-   construct_dist_matrix
-   csgraph_from_dense
-   csgraph_from_masked
-   csgraph_masked_from_dense
-   csgraph_to_dense
-   csgraph_to_masked
-   reconstruct_path
-
-Graph Representations
----------------------
-This module uses graphs which are stored in a matrix format. A
-graph with N nodes can be represented by an (N x N) adjacency matrix G.
-If there is a connection from node i to node j, then G[i, j] = w, where
-w is the weight of the connection. For nodes i and j which are
-not connected, the value depends on the representation:
-
-- for dense array representations, non-edges are represented by
-  G[i, j] = 0, infinity, or NaN.
-
-- for dense masked representations (of type np.ma.MaskedArray), non-edges
-  are represented by masked values. This can be useful when graphs with
-  zero-weight edges are desired.
-
-- for sparse array representations, non-edges are represented by
-  non-entries in the matrix. This sort of sparse representation also
-  allows for edges with zero weights.
-
-As a concrete example, imagine that you would like to represent the following
-undirected graph::
-
-              G
-
-             (0)
-            /   \
-           1     2
-          /       \
-        (2)       (1)
-
-This graph has three nodes, where node 0 and 1 are connected by an edge of
-weight 2, and nodes 0 and 2 are connected by an edge of weight 1.
-We can construct the dense, masked, and sparse representations as follows,
-keeping in mind that an undirected graph is represented by a symmetric matrix::
-
-    >>> import numpy as np
-    >>> G_dense = np.array([[0, 2, 1],
-    ...                     [2, 0, 0],
-    ...                     [1, 0, 0]])
-    >>> G_masked = np.ma.masked_values(G_dense, 0)
-    >>> from scipy.sparse import csr_matrix
-    >>> G_sparse = csr_matrix(G_dense)
-
-This becomes more difficult when zero edges are significant. For example,
-consider the situation when we slightly modify the above graph::
-
-             G2
-
-             (0)
-            /   \
-           0     2
-          /       \
-        (2)       (1)
-
-This is identical to the previous graph, except nodes 0 and 2 are connected
-by an edge of zero weight. In this case, the dense representation above
-leads to ambiguities: how can non-edges be represented if zero is a meaningful
-value? In this case, either a masked or sparse representation must be used
-to eliminate the ambiguity::
-
-    >>> import numpy as np
-    >>> G2_data = np.array([[np.inf, 2,      0     ],
-    ...                     [2,      np.inf, np.inf],
-    ...                     [0,      np.inf, np.inf]])
-    >>> G2_masked = np.ma.masked_invalid(G2_data)
-    >>> from scipy.sparse.csgraph import csgraph_from_dense
-    >>> # G2_sparse = csr_matrix(G2_data) would give the wrong result
-    >>> G2_sparse = csgraph_from_dense(G2_data, null_value=np.inf)
-    >>> G2_sparse.data
-    array([ 2.,  0.,  2.,  0.])
-
-Here we have used a utility routine from the csgraph submodule in order to
-convert the dense representation to a sparse representation which can be
-understood by the algorithms in submodule. By viewing the data array, we
-can see that the zero values are explicitly encoded in the graph.
-
-Directed vs. undirected
-^^^^^^^^^^^^^^^^^^^^^^^
-Matrices may represent either directed or undirected graphs. This is
-specified throughout the csgraph module by a boolean keyword. Graphs are
-assumed to be directed by default. In a directed graph, traversal from node
-i to node j can be accomplished over the edge G[i, j], but not the edge
-G[j, i].  Consider the following dense graph::
-
-    >>> import numpy as np
-    >>> G_dense = np.array([[0, 1, 0],
-    ...                     [2, 0, 3],
-    ...                     [0, 4, 0]])
-
-When ``directed=True`` we get the graph::
-
-      ---1--> ---3-->
-    (0)     (1)     (2)
-      <--2--- <--4---
-
-In a non-directed graph, traversal from node i to node j can be
-accomplished over either G[i, j] or G[j, i].  If both edges are not null,
-and the two have unequal weights, then the smaller of the two is used.
-
-So for the same graph, when ``directed=False`` we get the graph::
-
-    (0)--1--(1)--3--(2)
-
-Note that a symmetric matrix will represent an undirected graph, regardless
-of whether the 'directed' keyword is set to True or False. In this case,
-using ``directed=True`` generally leads to more efficient computation.
-
-The routines in this module accept as input either scipy.sparse representations
-(csr, csc, or lil format), masked representations, or dense representations
-with non-edges indicated by zeros, infinities, and NaN entries.
-"""  # noqa: E501
-
-__docformat__ = "restructuredtext en"
-
-__all__ = ['connected_components',
-           'laplacian',
-           'shortest_path',
-           'floyd_warshall',
-           'dijkstra',
-           'bellman_ford',
-           'johnson',
-           'yen',
-           'breadth_first_order',
-           'depth_first_order',
-           'breadth_first_tree',
-           'depth_first_tree',
-           'minimum_spanning_tree',
-           'reverse_cuthill_mckee',
-           'maximum_flow',
-           'maximum_bipartite_matching',
-           'min_weight_full_bipartite_matching',
-           'structural_rank',
-           'construct_dist_matrix',
-           'reconstruct_path',
-           'csgraph_masked_from_dense',
-           'csgraph_from_dense',
-           'csgraph_from_masked',
-           'csgraph_to_dense',
-           'csgraph_to_masked',
-           'NegativeCycleError']
-
-from ._laplacian import laplacian
-from ._shortest_path import (
-    shortest_path, floyd_warshall, dijkstra, bellman_ford, johnson, yen,
-    NegativeCycleError
-)
-from ._traversal import (
-    breadth_first_order, depth_first_order, breadth_first_tree,
-    depth_first_tree, connected_components
-)
-from ._min_spanning_tree import minimum_spanning_tree
-from ._flow import maximum_flow
-from ._matching import (
-    maximum_bipartite_matching, min_weight_full_bipartite_matching
-)
-from ._reordering import reverse_cuthill_mckee, structural_rank
-from ._tools import (
-    construct_dist_matrix, reconstruct_path, csgraph_from_dense,
-    csgraph_to_dense, csgraph_masked_from_dense, csgraph_from_masked,
-    csgraph_to_masked
-)
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index b95c75747583b372503714bf016da81d0330c5f2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__pycache__/_laplacian.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__pycache__/_laplacian.cpython-310.pyc
deleted file mode 100644
index cbf87916de6fcd85b3cc5187677238b2c16feba2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__pycache__/_laplacian.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__pycache__/_validation.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__pycache__/_validation.cpython-310.pyc
deleted file mode 100644
index cf8663f0797820bd47e017b7e4df678abcc0cb13..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/__pycache__/_validation.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/_laplacian.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/_laplacian.py
deleted file mode 100644
index 8a50cd491069e94b08bef8191a44e4439854e2a2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/_laplacian.py
+++ /dev/null
@@ -1,562 +0,0 @@
-"""
-Laplacian of a compressed-sparse graph
-"""
-
-import numpy as np
-from scipy.sparse import issparse
-from scipy.sparse.linalg import LinearOperator
-from scipy.sparse._sputils import convert_pydata_sparse_to_scipy, is_pydata_spmatrix
-
-
-###############################################################################
-# Graph laplacian
-def laplacian(
-    csgraph,
-    normed=False,
-    return_diag=False,
-    use_out_degree=False,
-    *,
-    copy=True,
-    form="array",
-    dtype=None,
-    symmetrized=False,
-):
-    """
-    Return the Laplacian of a directed graph.
-
-    Parameters
-    ----------
-    csgraph : array_like or sparse matrix, 2 dimensions
-        compressed-sparse graph, with shape (N, N).
-    normed : bool, optional
-        If True, then compute symmetrically normalized Laplacian.
-        Default: False.
-    return_diag : bool, optional
-        If True, then also return an array related to vertex degrees.
-        Default: False.
-    use_out_degree : bool, optional
-        If True, then use out-degree instead of in-degree.
-        This distinction matters only if the graph is asymmetric.
-        Default: False.
-    copy: bool, optional
-        If False, then change `csgraph` in place if possible,
-        avoiding doubling the memory use.
-        Default: True, for backward compatibility.
-    form: 'array', or 'function', or 'lo'
-        Determines the format of the output Laplacian:
-
-        * 'array' is a numpy array;
-        * 'function' is a pointer to evaluating the Laplacian-vector
-          or Laplacian-matrix product;
-        * 'lo' results in the format of the `LinearOperator`.
-
-        Choosing 'function' or 'lo' always avoids doubling
-        the memory use, ignoring `copy` value.
-        Default: 'array', for backward compatibility.
-    dtype: None or one of numeric numpy dtypes, optional
-        The dtype of the output. If ``dtype=None``, the dtype of the
-        output matches the dtype of the input csgraph, except for
-        the case ``normed=True`` and integer-like csgraph, where
-        the output dtype is 'float' allowing accurate normalization,
-        but dramatically increasing the memory use.
-        Default: None, for backward compatibility.
-    symmetrized: bool, optional
-        If True, then the output Laplacian is symmetric/Hermitian.
-        The symmetrization is done by ``csgraph + csgraph.T.conj``
-        without dividing by 2 to preserve integer dtypes if possible
-        prior to the construction of the Laplacian.
-        The symmetrization will increase the memory footprint of
-        sparse matrices unless the sparsity pattern is symmetric or
-        `form` is 'function' or 'lo'.
-        Default: False, for backward compatibility.
-
-    Returns
-    -------
-    lap : ndarray, or sparse matrix, or `LinearOperator`
-        The N x N Laplacian of csgraph. It will be a NumPy array (dense)
-        if the input was dense, or a sparse matrix otherwise, or
-        the format of a function or `LinearOperator` if
-        `form` equals 'function' or 'lo', respectively.
-    diag : ndarray, optional
-        The length-N main diagonal of the Laplacian matrix.
-        For the normalized Laplacian, this is the array of square roots
-        of vertex degrees or 1 if the degree is zero.
-
-    Notes
-    -----
-    The Laplacian matrix of a graph is sometimes referred to as the
-    "Kirchhoff matrix" or just the "Laplacian", and is useful in many
-    parts of spectral graph theory.
-    In particular, the eigen-decomposition of the Laplacian can give
-    insight into many properties of the graph, e.g.,
-    is commonly used for spectral data embedding and clustering.
-
-    The constructed Laplacian doubles the memory use if ``copy=True`` and
-    ``form="array"`` which is the default.
-    Choosing ``copy=False`` has no effect unless ``form="array"``
-    or the matrix is sparse in the ``coo`` format, or dense array, except
-    for the integer input with ``normed=True`` that forces the float output.
-
-    Sparse input is reformatted into ``coo`` if ``form="array"``,
-    which is the default.
-
-    If the input adjacency matrix is not symmetric, the Laplacian is
-    also non-symmetric unless ``symmetrized=True`` is used.
-
-    Diagonal entries of the input adjacency matrix are ignored and
-    replaced with zeros for the purpose of normalization where ``normed=True``.
-    The normalization uses the inverse square roots of row-sums of the input
-    adjacency matrix, and thus may fail if the row-sums contain
-    negative or complex with a non-zero imaginary part values.
-
-    The normalization is symmetric, making the normalized Laplacian also
-    symmetric if the input csgraph was symmetric.
-
-    References
-    ----------
-    .. [1] Laplacian matrix. https://en.wikipedia.org/wiki/Laplacian_matrix
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csgraph
-
-    Our first illustration is the symmetric graph
-
-    >>> G = np.arange(4) * np.arange(4)[:, np.newaxis]
-    >>> G
-    array([[0, 0, 0, 0],
-           [0, 1, 2, 3],
-           [0, 2, 4, 6],
-           [0, 3, 6, 9]])
-
-    and its symmetric Laplacian matrix
-
-    >>> csgraph.laplacian(G)
-    array([[ 0,  0,  0,  0],
-           [ 0,  5, -2, -3],
-           [ 0, -2,  8, -6],
-           [ 0, -3, -6,  9]])
-
-    The non-symmetric graph
-
-    >>> G = np.arange(9).reshape(3, 3)
-    >>> G
-    array([[0, 1, 2],
-           [3, 4, 5],
-           [6, 7, 8]])
-
-    has different row- and column sums, resulting in two varieties
-    of the Laplacian matrix, using an in-degree, which is the default
-
-    >>> L_in_degree = csgraph.laplacian(G)
-    >>> L_in_degree
-    array([[ 9, -1, -2],
-           [-3,  8, -5],
-           [-6, -7,  7]])
-
-    or alternatively an out-degree
-
-    >>> L_out_degree = csgraph.laplacian(G, use_out_degree=True)
-    >>> L_out_degree
-    array([[ 3, -1, -2],
-           [-3,  8, -5],
-           [-6, -7, 13]])
-
-    Constructing a symmetric Laplacian matrix, one can add the two as
-
-    >>> L_in_degree + L_out_degree.T
-    array([[ 12,  -4,  -8],
-            [ -4,  16, -12],
-            [ -8, -12,  20]])
-
-    or use the ``symmetrized=True`` option
-
-    >>> csgraph.laplacian(G, symmetrized=True)
-    array([[ 12,  -4,  -8],
-           [ -4,  16, -12],
-           [ -8, -12,  20]])
-
-    that is equivalent to symmetrizing the original graph
-
-    >>> csgraph.laplacian(G + G.T)
-    array([[ 12,  -4,  -8],
-           [ -4,  16, -12],
-           [ -8, -12,  20]])
-
-    The goal of normalization is to make the non-zero diagonal entries
-    of the Laplacian matrix to be all unit, also scaling off-diagonal
-    entries correspondingly. The normalization can be done manually, e.g.,
-
-    >>> G = np.array([[0, 1, 1], [1, 0, 1], [1, 1, 0]])
-    >>> L, d = csgraph.laplacian(G, return_diag=True)
-    >>> L
-    array([[ 2, -1, -1],
-           [-1,  2, -1],
-           [-1, -1,  2]])
-    >>> d
-    array([2, 2, 2])
-    >>> scaling = np.sqrt(d)
-    >>> scaling
-    array([1.41421356, 1.41421356, 1.41421356])
-    >>> (1/scaling)*L*(1/scaling)
-    array([[ 1. , -0.5, -0.5],
-           [-0.5,  1. , -0.5],
-           [-0.5, -0.5,  1. ]])
-
-    Or using ``normed=True`` option
-
-    >>> L, d = csgraph.laplacian(G, return_diag=True, normed=True)
-    >>> L
-    array([[ 1. , -0.5, -0.5],
-           [-0.5,  1. , -0.5],
-           [-0.5, -0.5,  1. ]])
-
-    which now instead of the diagonal returns the scaling coefficients
-
-    >>> d
-    array([1.41421356, 1.41421356, 1.41421356])
-
-    Zero scaling coefficients are substituted with 1s, where scaling
-    has thus no effect, e.g.,
-
-    >>> G = np.array([[0, 0, 0], [0, 0, 1], [0, 1, 0]])
-    >>> G
-    array([[0, 0, 0],
-           [0, 0, 1],
-           [0, 1, 0]])
-    >>> L, d = csgraph.laplacian(G, return_diag=True, normed=True)
-    >>> L
-    array([[ 0., -0., -0.],
-           [-0.,  1., -1.],
-           [-0., -1.,  1.]])
-    >>> d
-    array([1., 1., 1.])
-
-    Only the symmetric normalization is implemented, resulting
-    in a symmetric Laplacian matrix if and only if its graph is symmetric
-    and has all non-negative degrees, like in the examples above.
-
-    The output Laplacian matrix is by default a dense array or a sparse matrix
-    inferring its shape, format, and dtype from the input graph matrix:
-
-    >>> G = np.array([[0, 1, 1], [1, 0, 1], [1, 1, 0]]).astype(np.float32)
-    >>> G
-    array([[0., 1., 1.],
-           [1., 0., 1.],
-           [1., 1., 0.]], dtype=float32)
-    >>> csgraph.laplacian(G)
-    array([[ 2., -1., -1.],
-           [-1.,  2., -1.],
-           [-1., -1.,  2.]], dtype=float32)
-
-    but can alternatively be generated matrix-free as a LinearOperator:
-
-    >>> L = csgraph.laplacian(G, form="lo")
-    >>> L
-    <3x3 _CustomLinearOperator with dtype=float32>
-    >>> L(np.eye(3))
-    array([[ 2., -1., -1.],
-           [-1.,  2., -1.],
-           [-1., -1.,  2.]])
-
-    or as a lambda-function:
-
-    >>> L = csgraph.laplacian(G, form="function")
-    >>> L
-    . at 0x0000012AE6F5A598>
-    >>> L(np.eye(3))
-    array([[ 2., -1., -1.],
-           [-1.,  2., -1.],
-           [-1., -1.,  2.]])
-
-    The Laplacian matrix is used for
-    spectral data clustering and embedding
-    as well as for spectral graph partitioning.
-    Our final example illustrates the latter
-    for a noisy directed linear graph.
-
-    >>> from scipy.sparse import diags, random
-    >>> from scipy.sparse.linalg import lobpcg
-
-    Create a directed linear graph with ``N=35`` vertices
-    using a sparse adjacency matrix ``G``:
-
-    >>> N = 35
-    >>> G = diags(np.ones(N-1), 1, format="csr")
-
-    Fix a random seed ``rng`` and add a random sparse noise to the graph ``G``:
-
-    >>> rng = np.random.default_rng()
-    >>> G += 1e-2 * random(N, N, density=0.1, random_state=rng)
-
-    Set initial approximations for eigenvectors:
-
-    >>> X = rng.random((N, 2))
-
-    The constant vector of ones is always a trivial eigenvector
-    of the non-normalized Laplacian to be filtered out:
-
-    >>> Y = np.ones((N, 1))
-
-    Alternating (1) the sign of the graph weights allows determining
-    labels for spectral max- and min- cuts in a single loop.
-    Since the graph is undirected, the option ``symmetrized=True``
-    must be used in the construction of the Laplacian.
-    The option ``normed=True`` cannot be used in (2) for the negative weights
-    here as the symmetric normalization evaluates square roots.
-    The option ``form="lo"`` in (2) is matrix-free, i.e., guarantees
-    a fixed memory footprint and read-only access to the graph.
-    Calling the eigenvalue solver ``lobpcg`` (3) computes the Fiedler vector
-    that determines the labels as the signs of its components in (5).
-    Since the sign in an eigenvector is not deterministic and can flip,
-    we fix the sign of the first component to be always +1 in (4).
-
-    >>> for cut in ["max", "min"]:
-    ...     G = -G  # 1.
-    ...     L = csgraph.laplacian(G, symmetrized=True, form="lo")  # 2.
-    ...     _, eves = lobpcg(L, X, Y=Y, largest=False, tol=1e-2)  # 3.
-    ...     eves *= np.sign(eves[0, 0])  # 4.
-    ...     print(cut + "-cut labels:\\n", 1 * (eves[:, 0]>0))  # 5.
-    max-cut labels:
-    [1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1]
-    min-cut labels:
-    [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
-
-    As anticipated for a (slightly noisy) linear graph,
-    the max-cut strips all the edges of the graph coloring all
-    odd vertices into one color and all even vertices into another one,
-    while the balanced min-cut partitions the graph
-    in the middle by deleting a single edge.
-    Both determined partitions are optimal.
-    """
-    is_pydata_sparse = is_pydata_spmatrix(csgraph)
-    if is_pydata_sparse:
-        pydata_sparse_cls = csgraph.__class__
-        csgraph = convert_pydata_sparse_to_scipy(csgraph)
-    if csgraph.ndim != 2 or csgraph.shape[0] != csgraph.shape[1]:
-        raise ValueError('csgraph must be a square matrix or array')
-
-    if normed and (
-        np.issubdtype(csgraph.dtype, np.signedinteger)
-        or np.issubdtype(csgraph.dtype, np.uint)
-    ):
-        csgraph = csgraph.astype(np.float64)
-
-    if form == "array":
-        create_lap = (
-            _laplacian_sparse if issparse(csgraph) else _laplacian_dense
-        )
-    else:
-        create_lap = (
-            _laplacian_sparse_flo
-            if issparse(csgraph)
-            else _laplacian_dense_flo
-        )
-
-    degree_axis = 1 if use_out_degree else 0
-
-    lap, d = create_lap(
-        csgraph,
-        normed=normed,
-        axis=degree_axis,
-        copy=copy,
-        form=form,
-        dtype=dtype,
-        symmetrized=symmetrized,
-    )
-    if is_pydata_sparse:
-        lap = pydata_sparse_cls.from_scipy_sparse(lap)
-    if return_diag:
-        return lap, d
-    return lap
-
-
-def _setdiag_dense(m, d):
-    step = len(d) + 1
-    m.flat[::step] = d
-
-
-def _laplace(m, d):
-    return lambda v: v * d[:, np.newaxis] - m @ v
-
-
-def _laplace_normed(m, d, nd):
-    laplace = _laplace(m, d)
-    return lambda v: nd[:, np.newaxis] * laplace(v * nd[:, np.newaxis])
-
-
-def _laplace_sym(m, d):
-    return (
-        lambda v: v * d[:, np.newaxis]
-        - m @ v
-        - np.transpose(np.conjugate(np.transpose(np.conjugate(v)) @ m))
-    )
-
-
-def _laplace_normed_sym(m, d, nd):
-    laplace_sym = _laplace_sym(m, d)
-    return lambda v: nd[:, np.newaxis] * laplace_sym(v * nd[:, np.newaxis])
-
-
-def _linearoperator(mv, shape, dtype):
-    return LinearOperator(matvec=mv, matmat=mv, shape=shape, dtype=dtype)
-
-
-def _laplacian_sparse_flo(graph, normed, axis, copy, form, dtype, symmetrized):
-    # The keyword argument `copy` is unused and has no effect here.
-    del copy
-
-    if dtype is None:
-        dtype = graph.dtype
-
-    graph_sum = np.asarray(graph.sum(axis=axis)).ravel()
-    graph_diagonal = graph.diagonal()
-    diag = graph_sum - graph_diagonal
-    if symmetrized:
-        graph_sum += np.asarray(graph.sum(axis=1 - axis)).ravel()
-        diag = graph_sum - graph_diagonal - graph_diagonal
-
-    if normed:
-        isolated_node_mask = diag == 0
-        w = np.where(isolated_node_mask, 1, np.sqrt(diag))
-        if symmetrized:
-            md = _laplace_normed_sym(graph, graph_sum, 1.0 / w)
-        else:
-            md = _laplace_normed(graph, graph_sum, 1.0 / w)
-        if form == "function":
-            return md, w.astype(dtype, copy=False)
-        elif form == "lo":
-            m = _linearoperator(md, shape=graph.shape, dtype=dtype)
-            return m, w.astype(dtype, copy=False)
-        else:
-            raise ValueError(f"Invalid form: {form!r}")
-    else:
-        if symmetrized:
-            md = _laplace_sym(graph, graph_sum)
-        else:
-            md = _laplace(graph, graph_sum)
-        if form == "function":
-            return md, diag.astype(dtype, copy=False)
-        elif form == "lo":
-            m = _linearoperator(md, shape=graph.shape, dtype=dtype)
-            return m, diag.astype(dtype, copy=False)
-        else:
-            raise ValueError(f"Invalid form: {form!r}")
-
-
-def _laplacian_sparse(graph, normed, axis, copy, form, dtype, symmetrized):
-    # The keyword argument `form` is unused and has no effect here.
-    del form
-
-    if dtype is None:
-        dtype = graph.dtype
-
-    needs_copy = False
-    if graph.format in ('lil', 'dok'):
-        m = graph.tocoo()
-    else:
-        m = graph
-        if copy:
-            needs_copy = True
-
-    if symmetrized:
-        m += m.T.conj()
-
-    w = np.asarray(m.sum(axis=axis)).ravel() - m.diagonal()
-    if normed:
-        m = m.tocoo(copy=needs_copy)
-        isolated_node_mask = (w == 0)
-        w = np.where(isolated_node_mask, 1, np.sqrt(w))
-        m.data /= w[m.row]
-        m.data /= w[m.col]
-        m.data *= -1
-        m.setdiag(1 - isolated_node_mask)
-    else:
-        if m.format == 'dia':
-            m = m.copy()
-        else:
-            m = m.tocoo(copy=needs_copy)
-        m.data *= -1
-        m.setdiag(w)
-
-    return m.astype(dtype, copy=False), w.astype(dtype)
-
-
-def _laplacian_dense_flo(graph, normed, axis, copy, form, dtype, symmetrized):
-
-    if copy:
-        m = np.array(graph)
-    else:
-        m = np.asarray(graph)
-
-    if dtype is None:
-        dtype = m.dtype
-
-    graph_sum = m.sum(axis=axis)
-    graph_diagonal = m.diagonal()
-    diag = graph_sum - graph_diagonal
-    if symmetrized:
-        graph_sum += m.sum(axis=1 - axis)
-        diag = graph_sum - graph_diagonal - graph_diagonal
-
-    if normed:
-        isolated_node_mask = diag == 0
-        w = np.where(isolated_node_mask, 1, np.sqrt(diag))
-        if symmetrized:
-            md = _laplace_normed_sym(m, graph_sum, 1.0 / w)
-        else:
-            md = _laplace_normed(m, graph_sum, 1.0 / w)
-        if form == "function":
-            return md, w.astype(dtype, copy=False)
-        elif form == "lo":
-            m = _linearoperator(md, shape=graph.shape, dtype=dtype)
-            return m, w.astype(dtype, copy=False)
-        else:
-            raise ValueError(f"Invalid form: {form!r}")
-    else:
-        if symmetrized:
-            md = _laplace_sym(m, graph_sum)
-        else:
-            md = _laplace(m, graph_sum)
-        if form == "function":
-            return md, diag.astype(dtype, copy=False)
-        elif form == "lo":
-            m = _linearoperator(md, shape=graph.shape, dtype=dtype)
-            return m, diag.astype(dtype, copy=False)
-        else:
-            raise ValueError(f"Invalid form: {form!r}")
-
-
-def _laplacian_dense(graph, normed, axis, copy, form, dtype, symmetrized):
-
-    if form != "array":
-        raise ValueError(f'{form!r} must be "array"')
-
-    if dtype is None:
-        dtype = graph.dtype
-
-    if copy:
-        m = np.array(graph)
-    else:
-        m = np.asarray(graph)
-
-    if dtype is None:
-        dtype = m.dtype
-
-    if symmetrized:
-        m += m.T.conj()
-    np.fill_diagonal(m, 0)
-    w = m.sum(axis=axis)
-    if normed:
-        isolated_node_mask = (w == 0)
-        w = np.where(isolated_node_mask, 1, np.sqrt(w))
-        m /= w
-        m /= w[:, np.newaxis]
-        m *= -1
-        _setdiag_dense(m, 1 - isolated_node_mask)
-    else:
-        m *= -1
-        _setdiag_dense(m, w)
-
-    return m.astype(dtype, copy=False), w.astype(dtype, copy=False)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/_validation.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/_validation.py
deleted file mode 100644
index e160cf5e7b0e9fd94772e5e150e32c8b0d0be7c6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/_validation.py
+++ /dev/null
@@ -1,61 +0,0 @@
-import numpy as np
-from scipy.sparse import csr_matrix, issparse
-from scipy.sparse._sputils import convert_pydata_sparse_to_scipy
-from scipy.sparse.csgraph._tools import (
-    csgraph_to_dense, csgraph_from_dense,
-    csgraph_masked_from_dense, csgraph_from_masked
-)
-
-DTYPE = np.float64
-
-
-def validate_graph(csgraph, directed, dtype=DTYPE,
-                   csr_output=True, dense_output=True,
-                   copy_if_dense=False, copy_if_sparse=False,
-                   null_value_in=0, null_value_out=np.inf,
-                   infinity_null=True, nan_null=True):
-    """Routine for validation and conversion of csgraph inputs"""
-    if not (csr_output or dense_output):
-        raise ValueError("Internal: dense or csr output must be true")
-
-    csgraph = convert_pydata_sparse_to_scipy(csgraph)
-
-    # if undirected and csc storage, then transposing in-place
-    # is quicker than later converting to csr.
-    if (not directed) and issparse(csgraph) and csgraph.format == "csc":
-        csgraph = csgraph.T
-
-    if issparse(csgraph):
-        if csr_output:
-            csgraph = csr_matrix(csgraph, dtype=DTYPE, copy=copy_if_sparse)
-        else:
-            csgraph = csgraph_to_dense(csgraph, null_value=null_value_out)
-    elif np.ma.isMaskedArray(csgraph):
-        if dense_output:
-            mask = csgraph.mask
-            csgraph = np.array(csgraph.data, dtype=DTYPE, copy=copy_if_dense)
-            csgraph[mask] = null_value_out
-        else:
-            csgraph = csgraph_from_masked(csgraph)
-    else:
-        if dense_output:
-            csgraph = csgraph_masked_from_dense(csgraph,
-                                                copy=copy_if_dense,
-                                                null_value=null_value_in,
-                                                nan_null=nan_null,
-                                                infinity_null=infinity_null)
-            mask = csgraph.mask
-            csgraph = np.asarray(csgraph.data, dtype=DTYPE)
-            csgraph[mask] = null_value_out
-        else:
-            csgraph = csgraph_from_dense(csgraph, null_value=null_value_in,
-                                         infinity_null=infinity_null,
-                                         nan_null=nan_null)
-
-    if csgraph.ndim != 2:
-        raise ValueError("compressed-sparse graph must be 2-D")
-
-    if csgraph.shape[0] != csgraph.shape[1]:
-        raise ValueError("compressed-sparse graph must be shape (N, N)")
-
-    return csgraph
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 00cced219fefad2ad73fd770e40ef03d4062b4c9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_connected_components.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_connected_components.cpython-310.pyc
deleted file mode 100644
index be4d2a436117d63bbd6a7b102ec2e9990c5284a2..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_connected_components.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_conversions.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_conversions.cpython-310.pyc
deleted file mode 100644
index 4ad0ce639abaecb7b183d33a9634a33d6416984b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_conversions.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_flow.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_flow.cpython-310.pyc
deleted file mode 100644
index a079f5eecef1f816f67ca970d9d8c8a7adcb5237..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_flow.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_graph_laplacian.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_graph_laplacian.cpython-310.pyc
deleted file mode 100644
index c0a16c53cb67688eb5301af8b5c964987197c7d6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_graph_laplacian.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_matching.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_matching.cpython-310.pyc
deleted file mode 100644
index a206c853c40fa5ba8996fbe49488b90c509ba1bf..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_matching.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_pydata_sparse.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_pydata_sparse.cpython-310.pyc
deleted file mode 100644
index d6215ab7d1419677ab6259b859d9517630af877b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_pydata_sparse.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_reordering.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_reordering.cpython-310.pyc
deleted file mode 100644
index fa85b6682eb33f6058410088407e41f4eb6caf1e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_reordering.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_shortest_path.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_shortest_path.cpython-310.pyc
deleted file mode 100644
index 6f183ce1cd398b30e8409e4acccb4a38e04272bc..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_shortest_path.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_spanning_tree.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_spanning_tree.cpython-310.pyc
deleted file mode 100644
index 44a6ee568cedc34560f23b32d5bd9a1be0798968..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_spanning_tree.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_traversal.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_traversal.cpython-310.pyc
deleted file mode 100644
index 4fac6fce029a6dd3835a1d10da408f8163928ec6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/__pycache__/test_traversal.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_connected_components.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_connected_components.py
deleted file mode 100644
index 0b190a24deb9f2818893a120f8ea376fbfb8d6fe..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_connected_components.py
+++ /dev/null
@@ -1,119 +0,0 @@
-import numpy as np
-from numpy.testing import assert_equal, assert_array_almost_equal
-from scipy.sparse import csgraph, csr_array
-
-
-def test_weak_connections():
-    Xde = np.array([[0, 1, 0],
-                    [0, 0, 0],
-                    [0, 0, 0]])
-
-    Xsp = csgraph.csgraph_from_dense(Xde, null_value=0)
-
-    for X in Xsp, Xde:
-        n_components, labels =\
-            csgraph.connected_components(X, directed=True,
-                                         connection='weak')
-
-        assert_equal(n_components, 2)
-        assert_array_almost_equal(labels, [0, 0, 1])
-
-
-def test_strong_connections():
-    X1de = np.array([[0, 1, 0],
-                     [0, 0, 0],
-                     [0, 0, 0]])
-    X2de = X1de + X1de.T
-
-    X1sp = csgraph.csgraph_from_dense(X1de, null_value=0)
-    X2sp = csgraph.csgraph_from_dense(X2de, null_value=0)
-
-    for X in X1sp, X1de:
-        n_components, labels =\
-            csgraph.connected_components(X, directed=True,
-                                         connection='strong')
-
-        assert_equal(n_components, 3)
-        labels.sort()
-        assert_array_almost_equal(labels, [0, 1, 2])
-
-    for X in X2sp, X2de:
-        n_components, labels =\
-            csgraph.connected_components(X, directed=True,
-                                         connection='strong')
-
-        assert_equal(n_components, 2)
-        labels.sort()
-        assert_array_almost_equal(labels, [0, 0, 1])
-
-
-def test_strong_connections2():
-    X = np.array([[0, 0, 0, 0, 0, 0],
-                  [1, 0, 1, 0, 0, 0],
-                  [0, 0, 0, 1, 0, 0],
-                  [0, 0, 1, 0, 1, 0],
-                  [0, 0, 0, 0, 0, 0],
-                  [0, 0, 0, 0, 1, 0]])
-    n_components, labels =\
-        csgraph.connected_components(X, directed=True,
-                                     connection='strong')
-    assert_equal(n_components, 5)
-    labels.sort()
-    assert_array_almost_equal(labels, [0, 1, 2, 2, 3, 4])
-
-
-def test_weak_connections2():
-    X = np.array([[0, 0, 0, 0, 0, 0],
-                  [1, 0, 0, 0, 0, 0],
-                  [0, 0, 0, 1, 0, 0],
-                  [0, 0, 1, 0, 1, 0],
-                  [0, 0, 0, 0, 0, 0],
-                  [0, 0, 0, 0, 1, 0]])
-    n_components, labels =\
-        csgraph.connected_components(X, directed=True,
-                                     connection='weak')
-    assert_equal(n_components, 2)
-    labels.sort()
-    assert_array_almost_equal(labels, [0, 0, 1, 1, 1, 1])
-
-
-def test_ticket1876():
-    # Regression test: this failed in the original implementation
-    # There should be two strongly-connected components; previously gave one
-    g = np.array([[0, 1, 1, 0],
-                  [1, 0, 0, 1],
-                  [0, 0, 0, 1],
-                  [0, 0, 1, 0]])
-    n_components, labels = csgraph.connected_components(g, connection='strong')
-
-    assert_equal(n_components, 2)
-    assert_equal(labels[0], labels[1])
-    assert_equal(labels[2], labels[3])
-
-
-def test_fully_connected_graph():
-    # Fully connected dense matrices raised an exception.
-    # https://github.com/scipy/scipy/issues/3818
-    g = np.ones((4, 4))
-    n_components, labels = csgraph.connected_components(g)
-    assert_equal(n_components, 1)
-
-
-def test_int64_indices_undirected():
-    # See https://github.com/scipy/scipy/issues/18716
-    g = csr_array(([1], np.array([[0], [1]], dtype=np.int64)), shape=(2, 2))
-    assert g.indices.dtype == np.int64
-    n, labels = csgraph.connected_components(g, directed=False)
-    assert n == 1
-    assert_array_almost_equal(labels, [0, 0])
-
-
-def test_int64_indices_directed():
-    # See https://github.com/scipy/scipy/issues/18716
-    g = csr_array(([1], np.array([[0], [1]], dtype=np.int64)), shape=(2, 2))
-    assert g.indices.dtype == np.int64
-    n, labels = csgraph.connected_components(g, directed=True,
-                                             connection='strong')
-    assert n == 2
-    assert_array_almost_equal(labels, [1, 0])
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_conversions.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_conversions.py
deleted file mode 100644
index e7900d67b543187e6a34b76ee5c9511cfcccae9e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_conversions.py
+++ /dev/null
@@ -1,61 +0,0 @@
-import numpy as np
-from numpy.testing import assert_array_almost_equal
-from scipy.sparse import csr_matrix
-from scipy.sparse.csgraph import csgraph_from_dense, csgraph_to_dense
-
-
-def test_csgraph_from_dense():
-    np.random.seed(1234)
-    G = np.random.random((10, 10))
-    some_nulls = (G < 0.4)
-    all_nulls = (G < 0.8)
-
-    for null_value in [0, np.nan, np.inf]:
-        G[all_nulls] = null_value
-        with np.errstate(invalid="ignore"):
-            G_csr = csgraph_from_dense(G, null_value=0)
-
-        G[all_nulls] = 0
-        assert_array_almost_equal(G, G_csr.toarray())
-
-    for null_value in [np.nan, np.inf]:
-        G[all_nulls] = 0
-        G[some_nulls] = null_value
-        with np.errstate(invalid="ignore"):
-            G_csr = csgraph_from_dense(G, null_value=0)
-
-        G[all_nulls] = 0
-        assert_array_almost_equal(G, G_csr.toarray())
-
-
-def test_csgraph_to_dense():
-    np.random.seed(1234)
-    G = np.random.random((10, 10))
-    nulls = (G < 0.8)
-    G[nulls] = np.inf
-
-    G_csr = csgraph_from_dense(G)
-
-    for null_value in [0, 10, -np.inf, np.inf]:
-        G[nulls] = null_value
-        assert_array_almost_equal(G, csgraph_to_dense(G_csr, null_value))
-
-
-def test_multiple_edges():
-    # create a random square matrix with an even number of elements
-    np.random.seed(1234)
-    X = np.random.random((10, 10))
-    Xcsr = csr_matrix(X)
-
-    # now double-up every other column
-    Xcsr.indices[::2] = Xcsr.indices[1::2]
-
-    # normal sparse toarray() will sum the duplicated edges
-    Xdense = Xcsr.toarray()
-    assert_array_almost_equal(Xdense[:, 1::2],
-                              X[:, ::2] + X[:, 1::2])
-
-    # csgraph_to_dense chooses the minimum of each duplicated edge
-    Xdense = csgraph_to_dense(Xcsr)
-    assert_array_almost_equal(Xdense[:, 1::2],
-                              np.minimum(X[:, ::2], X[:, 1::2]))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_flow.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_flow.py
deleted file mode 100644
index 8bb129a572dd3abedb2afd896d04fa53e8c096bc..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_flow.py
+++ /dev/null
@@ -1,201 +0,0 @@
-import numpy as np
-from numpy.testing import assert_array_equal
-import pytest
-
-from scipy.sparse import csr_matrix, csc_matrix
-from scipy.sparse.csgraph import maximum_flow
-from scipy.sparse.csgraph._flow import (
-    _add_reverse_edges, _make_edge_pointers, _make_tails
-)
-
-methods = ['edmonds_karp', 'dinic']
-
-def test_raises_on_dense_input():
-    with pytest.raises(TypeError):
-        graph = np.array([[0, 1], [0, 0]])
-        maximum_flow(graph, 0, 1)
-        maximum_flow(graph, 0, 1, method='edmonds_karp')
-
-
-def test_raises_on_csc_input():
-    with pytest.raises(TypeError):
-        graph = csc_matrix([[0, 1], [0, 0]])
-        maximum_flow(graph, 0, 1)
-        maximum_flow(graph, 0, 1, method='edmonds_karp')
-
-
-def test_raises_on_floating_point_input():
-    with pytest.raises(ValueError):
-        graph = csr_matrix([[0, 1.5], [0, 0]], dtype=np.float64)
-        maximum_flow(graph, 0, 1)
-        maximum_flow(graph, 0, 1, method='edmonds_karp')
-
-
-def test_raises_on_non_square_input():
-    with pytest.raises(ValueError):
-        graph = csr_matrix([[0, 1, 2], [2, 1, 0]])
-        maximum_flow(graph, 0, 1)
-
-
-def test_raises_when_source_is_sink():
-    with pytest.raises(ValueError):
-        graph = csr_matrix([[0, 1], [0, 0]])
-        maximum_flow(graph, 0, 0)
-        maximum_flow(graph, 0, 0, method='edmonds_karp')
-
-
-@pytest.mark.parametrize('method', methods)
-@pytest.mark.parametrize('source', [-1, 2, 3])
-def test_raises_when_source_is_out_of_bounds(source, method):
-    with pytest.raises(ValueError):
-        graph = csr_matrix([[0, 1], [0, 0]])
-        maximum_flow(graph, source, 1, method=method)
-
-
-@pytest.mark.parametrize('method', methods)
-@pytest.mark.parametrize('sink', [-1, 2, 3])
-def test_raises_when_sink_is_out_of_bounds(sink, method):
-    with pytest.raises(ValueError):
-        graph = csr_matrix([[0, 1], [0, 0]])
-        maximum_flow(graph, 0, sink, method=method)
-
-
-@pytest.mark.parametrize('method', methods)
-def test_simple_graph(method):
-    # This graph looks as follows:
-    #     (0) --5--> (1)
-    graph = csr_matrix([[0, 5], [0, 0]])
-    res = maximum_flow(graph, 0, 1, method=method)
-    assert res.flow_value == 5
-    expected_flow = np.array([[0, 5], [-5, 0]])
-    assert_array_equal(res.flow.toarray(), expected_flow)
-
-
-@pytest.mark.parametrize('method', methods)
-def test_bottle_neck_graph(method):
-    # This graph cannot use the full capacity between 0 and 1:
-    #     (0) --5--> (1) --3--> (2)
-    graph = csr_matrix([[0, 5, 0], [0, 0, 3], [0, 0, 0]])
-    res = maximum_flow(graph, 0, 2, method=method)
-    assert res.flow_value == 3
-    expected_flow = np.array([[0, 3, 0], [-3, 0, 3], [0, -3, 0]])
-    assert_array_equal(res.flow.toarray(), expected_flow)
-
-
-@pytest.mark.parametrize('method', methods)
-def test_backwards_flow(method):
-    # This example causes backwards flow between vertices 3 and 4,
-    # and so this test ensures that we handle that accordingly. See
-    #     https://stackoverflow.com/q/38843963/5085211
-    # for more information.
-    graph = csr_matrix([[0, 10, 0, 0, 10, 0, 0, 0],
-                        [0, 0, 10, 0, 0, 0, 0, 0],
-                        [0, 0, 0, 10, 0, 0, 0, 0],
-                        [0, 0, 0, 0, 0, 0, 0, 10],
-                        [0, 0, 0, 10, 0, 10, 0, 0],
-                        [0, 0, 0, 0, 0, 0, 10, 0],
-                        [0, 0, 0, 0, 0, 0, 0, 10],
-                        [0, 0, 0, 0, 0, 0, 0, 0]])
-    res = maximum_flow(graph, 0, 7, method=method)
-    assert res.flow_value == 20
-    expected_flow = np.array([[0, 10, 0, 0, 10, 0, 0, 0],
-                              [-10, 0, 10, 0, 0, 0, 0, 0],
-                              [0, -10, 0, 10, 0, 0, 0, 0],
-                              [0, 0, -10, 0, 0, 0, 0, 10],
-                              [-10, 0, 0, 0, 0, 10, 0, 0],
-                              [0, 0, 0, 0, -10, 0, 10, 0],
-                              [0, 0, 0, 0, 0, -10, 0, 10],
-                              [0, 0, 0, -10, 0, 0, -10, 0]])
-    assert_array_equal(res.flow.toarray(), expected_flow)
-
-
-@pytest.mark.parametrize('method', methods)
-def test_example_from_clrs_chapter_26_1(method):
-    # See page 659 in CLRS second edition, but note that the maximum flow
-    # we find is slightly different than the one in CLRS; we push a flow of
-    # 12 to v_1 instead of v_2.
-    graph = csr_matrix([[0, 16, 13, 0, 0, 0],
-                        [0, 0, 10, 12, 0, 0],
-                        [0, 4, 0, 0, 14, 0],
-                        [0, 0, 9, 0, 0, 20],
-                        [0, 0, 0, 7, 0, 4],
-                        [0, 0, 0, 0, 0, 0]])
-    res = maximum_flow(graph, 0, 5, method=method)
-    assert res.flow_value == 23
-    expected_flow = np.array([[0, 12, 11, 0, 0, 0],
-                              [-12, 0, 0, 12, 0, 0],
-                              [-11, 0, 0, 0, 11, 0],
-                              [0, -12, 0, 0, -7, 19],
-                              [0, 0, -11, 7, 0, 4],
-                              [0, 0, 0, -19, -4, 0]])
-    assert_array_equal(res.flow.toarray(), expected_flow)
-
-
-@pytest.mark.parametrize('method', methods)
-def test_disconnected_graph(method):
-    # This tests the following disconnected graph:
-    #     (0) --5--> (1)    (2) --3--> (3)
-    graph = csr_matrix([[0, 5, 0, 0],
-                        [0, 0, 0, 0],
-                        [0, 0, 9, 3],
-                        [0, 0, 0, 0]])
-    res = maximum_flow(graph, 0, 3, method=method)
-    assert res.flow_value == 0
-    expected_flow = np.zeros((4, 4), dtype=np.int32)
-    assert_array_equal(res.flow.toarray(), expected_flow)
-
-
-@pytest.mark.parametrize('method', methods)
-def test_add_reverse_edges_large_graph(method):
-    # Regression test for https://github.com/scipy/scipy/issues/14385
-    n = 100_000
-    indices = np.arange(1, n)
-    indptr = np.array(list(range(n)) + [n - 1])
-    data = np.ones(n - 1, dtype=np.int32)
-    graph = csr_matrix((data, indices, indptr), shape=(n, n))
-    res = maximum_flow(graph, 0, n - 1, method=method)
-    assert res.flow_value == 1
-    expected_flow = graph - graph.transpose()
-    assert_array_equal(res.flow.data, expected_flow.data)
-    assert_array_equal(res.flow.indices, expected_flow.indices)
-    assert_array_equal(res.flow.indptr, expected_flow.indptr)
-
-
-@pytest.mark.parametrize("a,b_data_expected", [
-    ([[]], []),
-    ([[0], [0]], []),
-    ([[1, 0, 2], [0, 0, 0], [0, 3, 0]], [1, 2, 0, 0, 3]),
-    ([[9, 8, 7], [4, 5, 6], [0, 0, 0]], [9, 8, 7, 4, 5, 6, 0, 0])])
-def test_add_reverse_edges(a, b_data_expected):
-    """Test that the reversal of the edges of the input graph works
-    as expected.
-    """
-    a = csr_matrix(a, dtype=np.int32, shape=(len(a), len(a)))
-    b = _add_reverse_edges(a)
-    assert_array_equal(b.data, b_data_expected)
-
-
-@pytest.mark.parametrize("a,expected", [
-    ([[]], []),
-    ([[0]], []),
-    ([[1]], [0]),
-    ([[0, 1], [10, 0]], [1, 0]),
-    ([[1, 0, 2], [0, 0, 3], [4, 5, 0]], [0, 3, 4, 1, 2])
-])
-def test_make_edge_pointers(a, expected):
-    a = csr_matrix(a, dtype=np.int32)
-    rev_edge_ptr = _make_edge_pointers(a)
-    assert_array_equal(rev_edge_ptr, expected)
-
-
-@pytest.mark.parametrize("a,expected", [
-    ([[]], []),
-    ([[0]], []),
-    ([[1]], [0]),
-    ([[0, 1], [10, 0]], [0, 1]),
-    ([[1, 0, 2], [0, 0, 3], [4, 5, 0]], [0, 0, 1, 2, 2])
-])
-def test_make_tails(a, expected):
-    a = csr_matrix(a, dtype=np.int32)
-    tails = _make_tails(a)
-    assert_array_equal(tails, expected)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_graph_laplacian.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_graph_laplacian.py
deleted file mode 100644
index 4a4213dcbec63530466078437d01ca7765494514..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_graph_laplacian.py
+++ /dev/null
@@ -1,369 +0,0 @@
-import pytest
-import numpy as np
-from numpy.testing import assert_allclose
-from pytest import raises as assert_raises
-from scipy import sparse
-
-from scipy.sparse import csgraph
-from scipy._lib._util import np_long, np_ulong
-
-
-def check_int_type(mat):
-    return np.issubdtype(mat.dtype, np.signedinteger) or np.issubdtype(
-        mat.dtype, np_ulong
-    )
-
-
-def test_laplacian_value_error():
-    for t in int, float, complex:
-        for m in ([1, 1],
-                  [[[1]]],
-                  [[1, 2, 3], [4, 5, 6]],
-                  [[1, 2], [3, 4], [5, 5]]):
-            A = np.array(m, dtype=t)
-            assert_raises(ValueError, csgraph.laplacian, A)
-
-
-def _explicit_laplacian(x, normed=False):
-    if sparse.issparse(x):
-        x = x.toarray()
-    x = np.asarray(x)
-    y = -1.0 * x
-    for j in range(y.shape[0]):
-        y[j,j] = x[j,j+1:].sum() + x[j,:j].sum()
-    if normed:
-        d = np.diag(y).copy()
-        d[d == 0] = 1.0
-        y /= d[:,None]**.5
-        y /= d[None,:]**.5
-    return y
-
-
-def _check_symmetric_graph_laplacian(mat, normed, copy=True):
-    if not hasattr(mat, 'shape'):
-        mat = eval(mat, dict(np=np, sparse=sparse))
-
-    if sparse.issparse(mat):
-        sp_mat = mat
-        mat = sp_mat.toarray()
-    else:
-        sp_mat = sparse.csr_matrix(mat)
-
-    mat_copy = np.copy(mat)
-    sp_mat_copy = sparse.csr_matrix(sp_mat, copy=True)
-
-    n_nodes = mat.shape[0]
-    explicit_laplacian = _explicit_laplacian(mat, normed=normed)
-    laplacian = csgraph.laplacian(mat, normed=normed, copy=copy)
-    sp_laplacian = csgraph.laplacian(sp_mat, normed=normed,
-                                     copy=copy)
-
-    if copy:
-        assert_allclose(mat, mat_copy)
-        _assert_allclose_sparse(sp_mat, sp_mat_copy)
-    else:
-        if not (normed and check_int_type(mat)):
-            assert_allclose(laplacian, mat)
-            if sp_mat.format == 'coo':
-                _assert_allclose_sparse(sp_laplacian, sp_mat)
-
-    assert_allclose(laplacian, sp_laplacian.toarray())
-
-    for tested in [laplacian, sp_laplacian.toarray()]:
-        if not normed:
-            assert_allclose(tested.sum(axis=0), np.zeros(n_nodes))
-        assert_allclose(tested.T, tested)
-        assert_allclose(tested, explicit_laplacian)
-
-
-def test_symmetric_graph_laplacian():
-    symmetric_mats = (
-        'np.arange(10) * np.arange(10)[:, np.newaxis]',
-        'np.ones((7, 7))',
-        'np.eye(19)',
-        'sparse.diags([1, 1], [-1, 1], shape=(4, 4))',
-        'sparse.diags([1, 1], [-1, 1], shape=(4, 4)).toarray()',
-        'sparse.diags([1, 1], [-1, 1], shape=(4, 4)).todense()',
-        'np.vander(np.arange(4)) + np.vander(np.arange(4)).T'
-    )
-    for mat in symmetric_mats:
-        for normed in True, False:
-            for copy in True, False:
-                _check_symmetric_graph_laplacian(mat, normed, copy)
-
-
-def _assert_allclose_sparse(a, b, **kwargs):
-    # helper function that can deal with sparse matrices
-    if sparse.issparse(a):
-        a = a.toarray()
-    if sparse.issparse(b):
-        b = b.toarray()
-    assert_allclose(a, b, **kwargs)
-
-
-def _check_laplacian_dtype_none(
-    A, desired_L, desired_d, normed, use_out_degree, copy, dtype, arr_type
-):
-    mat = arr_type(A, dtype=dtype)
-    L, d = csgraph.laplacian(
-        mat,
-        normed=normed,
-        return_diag=True,
-        use_out_degree=use_out_degree,
-        copy=copy,
-        dtype=None,
-    )
-    if normed and check_int_type(mat):
-        assert L.dtype == np.float64
-        assert d.dtype == np.float64
-        _assert_allclose_sparse(L, desired_L, atol=1e-12)
-        _assert_allclose_sparse(d, desired_d, atol=1e-12)
-    else:
-        assert L.dtype == dtype
-        assert d.dtype == dtype
-        desired_L = np.asarray(desired_L).astype(dtype)
-        desired_d = np.asarray(desired_d).astype(dtype)
-        _assert_allclose_sparse(L, desired_L, atol=1e-12)
-        _assert_allclose_sparse(d, desired_d, atol=1e-12)
-
-    if not copy:
-        if not (normed and check_int_type(mat)):
-            if type(mat) is np.ndarray:
-                assert_allclose(L, mat)
-            elif mat.format == "coo":
-                _assert_allclose_sparse(L, mat)
-
-
-def _check_laplacian_dtype(
-    A, desired_L, desired_d, normed, use_out_degree, copy, dtype, arr_type
-):
-    mat = arr_type(A, dtype=dtype)
-    L, d = csgraph.laplacian(
-        mat,
-        normed=normed,
-        return_diag=True,
-        use_out_degree=use_out_degree,
-        copy=copy,
-        dtype=dtype,
-    )
-    assert L.dtype == dtype
-    assert d.dtype == dtype
-    desired_L = np.asarray(desired_L).astype(dtype)
-    desired_d = np.asarray(desired_d).astype(dtype)
-    _assert_allclose_sparse(L, desired_L, atol=1e-12)
-    _assert_allclose_sparse(d, desired_d, atol=1e-12)
-
-    if not copy:
-        if not (normed and check_int_type(mat)):
-            if type(mat) is np.ndarray:
-                assert_allclose(L, mat)
-            elif mat.format == 'coo':
-                _assert_allclose_sparse(L, mat)
-
-
-INT_DTYPES = {np.intc, np_long, np.longlong}
-REAL_DTYPES = {np.float32, np.float64, np.longdouble}
-COMPLEX_DTYPES = {np.complex64, np.complex128, np.clongdouble}
-# use sorted list to ensure fixed order of tests
-DTYPES = sorted(INT_DTYPES ^ REAL_DTYPES ^ COMPLEX_DTYPES, key=str)
-
-
-@pytest.mark.parametrize("dtype", DTYPES)
-@pytest.mark.parametrize("arr_type", [np.array,
-                                      sparse.csr_matrix,
-                                      sparse.coo_matrix,
-                                      sparse.csr_array,
-                                      sparse.coo_array])
-@pytest.mark.parametrize("copy", [True, False])
-@pytest.mark.parametrize("normed", [True, False])
-@pytest.mark.parametrize("use_out_degree", [True, False])
-def test_asymmetric_laplacian(use_out_degree, normed,
-                              copy, dtype, arr_type):
-    # adjacency matrix
-    A = [[0, 1, 0],
-         [4, 2, 0],
-         [0, 0, 0]]
-    A = arr_type(np.array(A), dtype=dtype)
-    A_copy = A.copy()
-
-    if not normed and use_out_degree:
-        # Laplacian matrix using out-degree
-        L = [[1, -1, 0],
-             [-4, 4, 0],
-             [0, 0, 0]]
-        d = [1, 4, 0]
-
-    if normed and use_out_degree:
-        # normalized Laplacian matrix using out-degree
-        L = [[1, -0.5, 0],
-             [-2, 1, 0],
-             [0, 0, 0]]
-        d = [1, 2, 1]
-
-    if not normed and not use_out_degree:
-        # Laplacian matrix using in-degree
-        L = [[4, -1, 0],
-             [-4, 1, 0],
-             [0, 0, 0]]
-        d = [4, 1, 0]
-
-    if normed and not use_out_degree:
-        # normalized Laplacian matrix using in-degree
-        L = [[1, -0.5, 0],
-             [-2, 1, 0],
-             [0, 0, 0]]
-        d = [2, 1, 1]
-
-    _check_laplacian_dtype_none(
-        A,
-        L,
-        d,
-        normed=normed,
-        use_out_degree=use_out_degree,
-        copy=copy,
-        dtype=dtype,
-        arr_type=arr_type,
-    )
-
-    _check_laplacian_dtype(
-        A_copy,
-        L,
-        d,
-        normed=normed,
-        use_out_degree=use_out_degree,
-        copy=copy,
-        dtype=dtype,
-        arr_type=arr_type,
-    )
-
-
-@pytest.mark.parametrize("fmt", ['csr', 'csc', 'coo', 'lil',
-                                 'dok', 'dia', 'bsr'])
-@pytest.mark.parametrize("normed", [True, False])
-@pytest.mark.parametrize("copy", [True, False])
-def test_sparse_formats(fmt, normed, copy):
-    mat = sparse.diags([1, 1], [-1, 1], shape=(4, 4), format=fmt)
-    _check_symmetric_graph_laplacian(mat, normed, copy)
-
-
-@pytest.mark.parametrize(
-    "arr_type", [np.asarray,
-                 sparse.csr_matrix,
-                 sparse.coo_matrix,
-                 sparse.csr_array,
-                 sparse.coo_array]
-)
-@pytest.mark.parametrize("form", ["array", "function", "lo"])
-def test_laplacian_symmetrized(arr_type, form):
-    # adjacency matrix
-    n = 3
-    mat = arr_type(np.arange(n * n).reshape(n, n))
-    L_in, d_in = csgraph.laplacian(
-        mat,
-        return_diag=True,
-        form=form,
-    )
-    L_out, d_out = csgraph.laplacian(
-        mat,
-        return_diag=True,
-        use_out_degree=True,
-        form=form,
-    )
-    Ls, ds = csgraph.laplacian(
-        mat,
-        return_diag=True,
-        symmetrized=True,
-        form=form,
-    )
-    Ls_normed, ds_normed = csgraph.laplacian(
-        mat,
-        return_diag=True,
-        symmetrized=True,
-        normed=True,
-        form=form,
-    )
-    mat += mat.T
-    Lss, dss = csgraph.laplacian(mat, return_diag=True, form=form)
-    Lss_normed, dss_normed = csgraph.laplacian(
-        mat,
-        return_diag=True,
-        normed=True,
-        form=form,
-    )
-
-    assert_allclose(ds, d_in + d_out)
-    assert_allclose(ds, dss)
-    assert_allclose(ds_normed, dss_normed)
-
-    d = {}
-    for L in ["L_in", "L_out", "Ls", "Ls_normed", "Lss", "Lss_normed"]:
-        if form == "array":
-            d[L] = eval(L)
-        else:
-            d[L] = eval(L)(np.eye(n, dtype=mat.dtype))
-
-    _assert_allclose_sparse(d["Ls"], d["L_in"] + d["L_out"].T)
-    _assert_allclose_sparse(d["Ls"], d["Lss"])
-    _assert_allclose_sparse(d["Ls_normed"], d["Lss_normed"])
-
-
-@pytest.mark.parametrize(
-    "arr_type", [np.asarray,
-                 sparse.csr_matrix,
-                 sparse.coo_matrix,
-                 sparse.csr_array,
-                 sparse.coo_array]
-)
-@pytest.mark.parametrize("dtype", DTYPES)
-@pytest.mark.parametrize("normed", [True, False])
-@pytest.mark.parametrize("symmetrized", [True, False])
-@pytest.mark.parametrize("use_out_degree", [True, False])
-@pytest.mark.parametrize("form", ["function", "lo"])
-def test_format(dtype, arr_type, normed, symmetrized, use_out_degree, form):
-    n = 3
-    mat = [[0, 1, 0], [4, 2, 0], [0, 0, 0]]
-    mat = arr_type(np.array(mat), dtype=dtype)
-    Lo, do = csgraph.laplacian(
-        mat,
-        return_diag=True,
-        normed=normed,
-        symmetrized=symmetrized,
-        use_out_degree=use_out_degree,
-        dtype=dtype,
-    )
-    La, da = csgraph.laplacian(
-        mat,
-        return_diag=True,
-        normed=normed,
-        symmetrized=symmetrized,
-        use_out_degree=use_out_degree,
-        dtype=dtype,
-        form="array",
-    )
-    assert_allclose(do, da)
-    _assert_allclose_sparse(Lo, La)
-
-    L, d = csgraph.laplacian(
-        mat,
-        return_diag=True,
-        normed=normed,
-        symmetrized=symmetrized,
-        use_out_degree=use_out_degree,
-        dtype=dtype,
-        form=form,
-    )
-    assert_allclose(d, do)
-    assert d.dtype == dtype
-    Lm = L(np.eye(n, dtype=mat.dtype)).astype(dtype)
-    _assert_allclose_sparse(Lm, Lo, rtol=2e-7, atol=2e-7)
-    x = np.arange(6).reshape(3, 2)
-    if not (normed and dtype in INT_DTYPES):
-        assert_allclose(L(x), Lo @ x)
-    else:
-        # Normalized Lo is casted to integer, but L() is not
-        pass
-
-
-def test_format_error_message():
-    with pytest.raises(ValueError, match="Invalid form: 'toto'"):
-        _ = csgraph.laplacian(np.eye(1), form='toto')
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_matching.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_matching.py
deleted file mode 100644
index 87e2920fe971d22a16b473d543e2ad26ac8e777d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_matching.py
+++ /dev/null
@@ -1,294 +0,0 @@
-from itertools import product
-
-import numpy as np
-from numpy.testing import assert_array_equal, assert_equal
-import pytest
-
-from scipy.sparse import csr_matrix, coo_matrix, diags
-from scipy.sparse.csgraph import (
-    maximum_bipartite_matching, min_weight_full_bipartite_matching
-)
-
-
-def test_maximum_bipartite_matching_raises_on_dense_input():
-    with pytest.raises(TypeError):
-        graph = np.array([[0, 1], [0, 0]])
-        maximum_bipartite_matching(graph)
-
-
-def test_maximum_bipartite_matching_empty_graph():
-    graph = csr_matrix((0, 0))
-    x = maximum_bipartite_matching(graph, perm_type='row')
-    y = maximum_bipartite_matching(graph, perm_type='column')
-    expected_matching = np.array([])
-    assert_array_equal(expected_matching, x)
-    assert_array_equal(expected_matching, y)
-
-
-def test_maximum_bipartite_matching_empty_left_partition():
-    graph = csr_matrix((2, 0))
-    x = maximum_bipartite_matching(graph, perm_type='row')
-    y = maximum_bipartite_matching(graph, perm_type='column')
-    assert_array_equal(np.array([]), x)
-    assert_array_equal(np.array([-1, -1]), y)
-
-
-def test_maximum_bipartite_matching_empty_right_partition():
-    graph = csr_matrix((0, 3))
-    x = maximum_bipartite_matching(graph, perm_type='row')
-    y = maximum_bipartite_matching(graph, perm_type='column')
-    assert_array_equal(np.array([-1, -1, -1]), x)
-    assert_array_equal(np.array([]), y)
-
-
-def test_maximum_bipartite_matching_graph_with_no_edges():
-    graph = csr_matrix((2, 2))
-    x = maximum_bipartite_matching(graph, perm_type='row')
-    y = maximum_bipartite_matching(graph, perm_type='column')
-    assert_array_equal(np.array([-1, -1]), x)
-    assert_array_equal(np.array([-1, -1]), y)
-
-
-def test_maximum_bipartite_matching_graph_that_causes_augmentation():
-    # In this graph, column 1 is initially assigned to row 1, but it should be
-    # reassigned to make room for row 2.
-    graph = csr_matrix([[1, 1], [1, 0]])
-    x = maximum_bipartite_matching(graph, perm_type='column')
-    y = maximum_bipartite_matching(graph, perm_type='row')
-    expected_matching = np.array([1, 0])
-    assert_array_equal(expected_matching, x)
-    assert_array_equal(expected_matching, y)
-
-
-def test_maximum_bipartite_matching_graph_with_more_rows_than_columns():
-    graph = csr_matrix([[1, 1], [1, 0], [0, 1]])
-    x = maximum_bipartite_matching(graph, perm_type='column')
-    y = maximum_bipartite_matching(graph, perm_type='row')
-    assert_array_equal(np.array([0, -1, 1]), x)
-    assert_array_equal(np.array([0, 2]), y)
-
-
-def test_maximum_bipartite_matching_graph_with_more_columns_than_rows():
-    graph = csr_matrix([[1, 1, 0], [0, 0, 1]])
-    x = maximum_bipartite_matching(graph, perm_type='column')
-    y = maximum_bipartite_matching(graph, perm_type='row')
-    assert_array_equal(np.array([0, 2]), x)
-    assert_array_equal(np.array([0, -1, 1]), y)
-
-
-def test_maximum_bipartite_matching_explicit_zeros_count_as_edges():
-    data = [0, 0]
-    indices = [1, 0]
-    indptr = [0, 1, 2]
-    graph = csr_matrix((data, indices, indptr), shape=(2, 2))
-    x = maximum_bipartite_matching(graph, perm_type='row')
-    y = maximum_bipartite_matching(graph, perm_type='column')
-    expected_matching = np.array([1, 0])
-    assert_array_equal(expected_matching, x)
-    assert_array_equal(expected_matching, y)
-
-
-def test_maximum_bipartite_matching_feasibility_of_result():
-    # This is a regression test for GitHub issue #11458
-    data = np.ones(50, dtype=int)
-    indices = [11, 12, 19, 22, 23, 5, 22, 3, 8, 10, 5, 6, 11, 12, 13, 5, 13,
-               14, 20, 22, 3, 15, 3, 13, 14, 11, 12, 19, 22, 23, 5, 22, 3, 8,
-               10, 5, 6, 11, 12, 13, 5, 13, 14, 20, 22, 3, 15, 3, 13, 14]
-    indptr = [0, 5, 7, 10, 10, 15, 20, 22, 22, 23, 25, 30, 32, 35, 35, 40, 45,
-              47, 47, 48, 50]
-    graph = csr_matrix((data, indices, indptr), shape=(20, 25))
-    x = maximum_bipartite_matching(graph, perm_type='row')
-    y = maximum_bipartite_matching(graph, perm_type='column')
-    assert (x != -1).sum() == 13
-    assert (y != -1).sum() == 13
-    # Ensure that each element of the matching is in fact an edge in the graph.
-    for u, v in zip(range(graph.shape[0]), y):
-        if v != -1:
-            assert graph[u, v]
-    for u, v in zip(x, range(graph.shape[1])):
-        if u != -1:
-            assert graph[u, v]
-
-
-def test_matching_large_random_graph_with_one_edge_incident_to_each_vertex():
-    np.random.seed(42)
-    A = diags(np.ones(25), offsets=0, format='csr')
-    rand_perm = np.random.permutation(25)
-    rand_perm2 = np.random.permutation(25)
-
-    Rrow = np.arange(25)
-    Rcol = rand_perm
-    Rdata = np.ones(25, dtype=int)
-    Rmat = coo_matrix((Rdata, (Rrow, Rcol))).tocsr()
-
-    Crow = rand_perm2
-    Ccol = np.arange(25)
-    Cdata = np.ones(25, dtype=int)
-    Cmat = coo_matrix((Cdata, (Crow, Ccol))).tocsr()
-    # Randomly permute identity matrix
-    B = Rmat * A * Cmat
-
-    # Row permute
-    perm = maximum_bipartite_matching(B, perm_type='row')
-    Rrow = np.arange(25)
-    Rcol = perm
-    Rdata = np.ones(25, dtype=int)
-    Rmat = coo_matrix((Rdata, (Rrow, Rcol))).tocsr()
-    C1 = Rmat * B
-
-    # Column permute
-    perm2 = maximum_bipartite_matching(B, perm_type='column')
-    Crow = perm2
-    Ccol = np.arange(25)
-    Cdata = np.ones(25, dtype=int)
-    Cmat = coo_matrix((Cdata, (Crow, Ccol))).tocsr()
-    C2 = B * Cmat
-
-    # Should get identity matrix back
-    assert_equal(any(C1.diagonal() == 0), False)
-    assert_equal(any(C2.diagonal() == 0), False)
-
-
-@pytest.mark.parametrize('num_rows,num_cols', [(0, 0), (2, 0), (0, 3)])
-def test_min_weight_full_matching_trivial_graph(num_rows, num_cols):
-    biadjacency_matrix = csr_matrix((num_cols, num_rows))
-    row_ind, col_ind = min_weight_full_bipartite_matching(biadjacency_matrix)
-    assert len(row_ind) == 0
-    assert len(col_ind) == 0
-
-
-@pytest.mark.parametrize('biadjacency_matrix',
-                         [
-                            [[1, 1, 1], [1, 0, 0], [1, 0, 0]],
-                            [[1, 1, 1], [0, 0, 1], [0, 0, 1]],
-                            [[1, 0, 0, 1], [1, 1, 0, 1], [0, 0, 0, 0]],
-                            [[1, 0, 0], [2, 0, 0]],
-                            [[0, 1, 0], [0, 2, 0]],
-                            [[1, 0], [2, 0], [5, 0]]
-                         ])
-def test_min_weight_full_matching_infeasible_problems(biadjacency_matrix):
-    with pytest.raises(ValueError):
-        min_weight_full_bipartite_matching(csr_matrix(biadjacency_matrix))
-
-
-def test_min_weight_full_matching_large_infeasible():
-    # Regression test for GitHub issue #17269
-    a = np.asarray([
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001],
-        [0.0, 0.11687445, 0.0, 0.0, 0.01319788, 0.07509257, 0.0,
-         0.0, 0.0, 0.74228317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.81087935, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.8408466, 0.0, 0.0, 0.0, 0.0, 0.01194389,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.82994211, 0.0, 0.0, 0.0, 0.11468516, 0.0, 0.0, 0.0,
-         0.11173505, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.0, 0.0],
-        [0.18796507, 0.0, 0.04002318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.75883335,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.71545464, 0.0, 0.0, 0.0, 0.0, 0.0, 0.02748488,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.78470564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.14829198,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.10870609, 0.0, 0.0, 0.0, 0.8918677, 0.0, 0.0, 0.0, 0.06306644,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
-         0.63844085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7442354, 0.0, 0.0, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09850549, 0.0, 0.0, 0.18638258,
-         0.2769244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.73182464, 0.0, 0.0, 0.46443561,
-         0.38589284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-        [0.29510278, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.09666032, 0.0,
-         0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
-        ])
-    with pytest.raises(ValueError, match='no full matching exists'):
-        min_weight_full_bipartite_matching(csr_matrix(a))
-
-
-def test_explicit_zero_causes_warning():
-    with pytest.warns(UserWarning):
-        biadjacency_matrix = csr_matrix(((2, 0, 3), (0, 1, 1), (0, 2, 3)))
-        min_weight_full_bipartite_matching(biadjacency_matrix)
-
-
-# General test for linear sum assignment solvers to make it possible to rely
-# on the same tests for scipy.optimize.linear_sum_assignment.
-def linear_sum_assignment_assertions(
-    solver, array_type, sign, test_case
-):
-    cost_matrix, expected_cost = test_case
-    maximize = sign == -1
-    cost_matrix = sign * array_type(cost_matrix)
-    expected_cost = sign * np.array(expected_cost)
-
-    row_ind, col_ind = solver(cost_matrix, maximize=maximize)
-    assert_array_equal(row_ind, np.sort(row_ind))
-    assert_array_equal(expected_cost,
-                       np.array(cost_matrix[row_ind, col_ind]).flatten())
-
-    cost_matrix = cost_matrix.T
-    row_ind, col_ind = solver(cost_matrix, maximize=maximize)
-    assert_array_equal(row_ind, np.sort(row_ind))
-    assert_array_equal(np.sort(expected_cost),
-                       np.sort(np.array(
-                           cost_matrix[row_ind, col_ind])).flatten())
-
-
-linear_sum_assignment_test_cases = product(
-    [-1, 1],
-    [
-        # Square
-        ([[400, 150, 400],
-          [400, 450, 600],
-          [300, 225, 300]],
-         [150, 400, 300]),
-
-        # Rectangular variant
-        ([[400, 150, 400, 1],
-          [400, 450, 600, 2],
-          [300, 225, 300, 3]],
-         [150, 2, 300]),
-
-        ([[10, 10, 8],
-          [9, 8, 1],
-          [9, 7, 4]],
-         [10, 1, 7]),
-
-        # Square
-        ([[10, 10, 8, 11],
-          [9, 8, 1, 1],
-          [9, 7, 4, 10]],
-         [10, 1, 4]),
-
-        # Rectangular variant
-        ([[10, float("inf"), float("inf")],
-          [float("inf"), float("inf"), 1],
-          [float("inf"), 7, float("inf")]],
-         [10, 1, 7])
-    ])
-
-
-@pytest.mark.parametrize('sign,test_case', linear_sum_assignment_test_cases)
-def test_min_weight_full_matching_small_inputs(sign, test_case):
-    linear_sum_assignment_assertions(
-        min_weight_full_bipartite_matching, csr_matrix, sign, test_case)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_pydata_sparse.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_pydata_sparse.py
deleted file mode 100644
index 63ed5f61a430e4291c40284f1bbfff3165421013..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_pydata_sparse.py
+++ /dev/null
@@ -1,149 +0,0 @@
-import pytest
-
-import numpy as np
-import scipy.sparse as sp
-import scipy.sparse.csgraph as spgraph
-
-from numpy.testing import assert_equal
-
-try:
-    import sparse
-except Exception:
-    sparse = None
-
-pytestmark = pytest.mark.skipif(sparse is None,
-                                reason="pydata/sparse not installed")
-
-
-msg = "pydata/sparse (0.15.1) does not implement necessary operations"
-
-
-sparse_params = (pytest.param("COO"),
-                 pytest.param("DOK", marks=[pytest.mark.xfail(reason=msg)]))
-
-
-@pytest.fixture(params=sparse_params)
-def sparse_cls(request):
-    return getattr(sparse, request.param)
-
-
-@pytest.fixture
-def graphs(sparse_cls):
-    graph = [
-        [0, 1, 1, 0, 0],
-        [0, 0, 1, 0, 0],
-        [0, 0, 0, 0, 0],
-        [0, 0, 0, 0, 1],
-        [0, 0, 0, 0, 0],
-    ]
-    A_dense = np.array(graph)
-    A_sparse = sparse_cls(A_dense)
-    return A_dense, A_sparse
-
-
-@pytest.mark.parametrize(
-    "func",
-    [
-        spgraph.shortest_path,
-        spgraph.dijkstra,
-        spgraph.floyd_warshall,
-        spgraph.bellman_ford,
-        spgraph.johnson,
-        spgraph.reverse_cuthill_mckee,
-        spgraph.maximum_bipartite_matching,
-        spgraph.structural_rank,
-    ]
-)
-def test_csgraph_equiv(func, graphs):
-    A_dense, A_sparse = graphs
-    actual = func(A_sparse)
-    desired = func(sp.csc_matrix(A_dense))
-    assert_equal(actual, desired)
-
-
-def test_connected_components(graphs):
-    A_dense, A_sparse = graphs
-    func = spgraph.connected_components
-
-    actual_comp, actual_labels = func(A_sparse)
-    desired_comp, desired_labels, = func(sp.csc_matrix(A_dense))
-
-    assert actual_comp == desired_comp
-    assert_equal(actual_labels, desired_labels)
-
-
-def test_laplacian(graphs):
-    A_dense, A_sparse = graphs
-    sparse_cls = type(A_sparse)
-    func = spgraph.laplacian
-
-    actual = func(A_sparse)
-    desired = func(sp.csc_matrix(A_dense))
-
-    assert isinstance(actual, sparse_cls)
-
-    assert_equal(actual.todense(), desired.todense())
-
-
-@pytest.mark.parametrize(
-    "func", [spgraph.breadth_first_order, spgraph.depth_first_order]
-)
-def test_order_search(graphs, func):
-    A_dense, A_sparse = graphs
-
-    actual = func(A_sparse, 0)
-    desired = func(sp.csc_matrix(A_dense), 0)
-
-    assert_equal(actual, desired)
-
-
-@pytest.mark.parametrize(
-    "func", [spgraph.breadth_first_tree, spgraph.depth_first_tree]
-)
-def test_tree_search(graphs, func):
-    A_dense, A_sparse = graphs
-    sparse_cls = type(A_sparse)
-
-    actual = func(A_sparse, 0)
-    desired = func(sp.csc_matrix(A_dense), 0)
-
-    assert isinstance(actual, sparse_cls)
-
-    assert_equal(actual.todense(), desired.todense())
-
-
-def test_minimum_spanning_tree(graphs):
-    A_dense, A_sparse = graphs
-    sparse_cls = type(A_sparse)
-    func = spgraph.minimum_spanning_tree
-
-    actual = func(A_sparse)
-    desired = func(sp.csc_matrix(A_dense))
-
-    assert isinstance(actual, sparse_cls)
-
-    assert_equal(actual.todense(), desired.todense())
-
-
-def test_maximum_flow(graphs):
-    A_dense, A_sparse = graphs
-    sparse_cls = type(A_sparse)
-    func = spgraph.maximum_flow
-
-    actual = func(A_sparse, 0, 2)
-    desired = func(sp.csr_matrix(A_dense), 0, 2)
-
-    assert actual.flow_value == desired.flow_value
-    assert isinstance(actual.flow, sparse_cls)
-
-    assert_equal(actual.flow.todense(), desired.flow.todense())
-
-
-def test_min_weight_full_bipartite_matching(graphs):
-    A_dense, A_sparse = graphs
-    func = spgraph.min_weight_full_bipartite_matching
-
-    actual = func(A_sparse[0:2, 1:3])
-    desired = func(sp.csc_matrix(A_dense)[0:2, 1:3])
-
-    assert_equal(actual, desired)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_reordering.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_reordering.py
deleted file mode 100644
index cb4c002fa303e7196278367afd316d47b3473cbb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_reordering.py
+++ /dev/null
@@ -1,70 +0,0 @@
-import numpy as np
-from numpy.testing import assert_equal
-from scipy.sparse.csgraph import reverse_cuthill_mckee, structural_rank
-from scipy.sparse import csc_matrix, csr_matrix, coo_matrix
-
-
-def test_graph_reverse_cuthill_mckee():
-    A = np.array([[1, 0, 0, 0, 1, 0, 0, 0],
-                [0, 1, 1, 0, 0, 1, 0, 1],
-                [0, 1, 1, 0, 1, 0, 0, 0],
-                [0, 0, 0, 1, 0, 0, 1, 0],
-                [1, 0, 1, 0, 1, 0, 0, 0],
-                [0, 1, 0, 0, 0, 1, 0, 1],
-                [0, 0, 0, 1, 0, 0, 1, 0],
-                [0, 1, 0, 0, 0, 1, 0, 1]], dtype=int)
-    
-    graph = csr_matrix(A)
-    perm = reverse_cuthill_mckee(graph)
-    correct_perm = np.array([6, 3, 7, 5, 1, 2, 4, 0])
-    assert_equal(perm, correct_perm)
-    
-    # Test int64 indices input
-    graph.indices = graph.indices.astype('int64')
-    graph.indptr = graph.indptr.astype('int64')
-    perm = reverse_cuthill_mckee(graph, True)
-    assert_equal(perm, correct_perm)
-
-
-def test_graph_reverse_cuthill_mckee_ordering():
-    data = np.ones(63,dtype=int)
-    rows = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 
-                2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5,
-                6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9,
-                9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 
-                12, 12, 12, 13, 13, 13, 13, 14, 14, 14,
-                14, 15, 15, 15, 15, 15])
-    cols = np.array([0, 2, 5, 8, 10, 1, 3, 9, 11, 0, 2,
-                7, 10, 1, 3, 11, 4, 6, 12, 14, 0, 7, 13, 
-                15, 4, 6, 14, 2, 5, 7, 15, 0, 8, 10, 13,
-                1, 9, 11, 0, 2, 8, 10, 15, 1, 3, 9, 11,
-                4, 12, 14, 5, 8, 13, 15, 4, 6, 12, 14,
-                5, 7, 10, 13, 15])
-    graph = coo_matrix((data, (rows,cols))).tocsr()
-    perm = reverse_cuthill_mckee(graph)
-    correct_perm = np.array([12, 14, 4, 6, 10, 8, 2, 15,
-                0, 13, 7, 5, 9, 11, 1, 3])
-    assert_equal(perm, correct_perm)
-
-
-def test_graph_structural_rank():
-    # Test square matrix #1
-    A = csc_matrix([[1, 1, 0], 
-                    [1, 0, 1],
-                    [0, 1, 0]])
-    assert_equal(structural_rank(A), 3)
-    
-    # Test square matrix #2
-    rows = np.array([0,0,0,0,0,1,1,2,2,3,3,3,3,3,3,4,4,5,5,6,6,7,7])
-    cols = np.array([0,1,2,3,4,2,5,2,6,0,1,3,5,6,7,4,5,5,6,2,6,2,4])
-    data = np.ones_like(rows)
-    B = coo_matrix((data,(rows,cols)), shape=(8,8))
-    assert_equal(structural_rank(B), 6)
-    
-    #Test non-square matrix
-    C = csc_matrix([[1, 0, 2, 0], 
-                    [2, 0, 4, 0]])
-    assert_equal(structural_rank(C), 2)
-    
-    #Test tall matrix
-    assert_equal(structural_rank(C.T), 2)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_shortest_path.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_shortest_path.py
deleted file mode 100644
index 046df018694881f97cb7569f6d4a3edf5af875a3..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_shortest_path.py
+++ /dev/null
@@ -1,454 +0,0 @@
-from io import StringIO
-import warnings
-import numpy as np
-from numpy.testing import assert_array_almost_equal, assert_array_equal, assert_allclose
-from pytest import raises as assert_raises
-from scipy.sparse.csgraph import (shortest_path, dijkstra, johnson,
-                                  bellman_ford, construct_dist_matrix, yen,
-                                  NegativeCycleError)
-import scipy.sparse
-from scipy.io import mmread
-import pytest
-
-directed_G = np.array([[0, 3, 3, 0, 0],
-                       [0, 0, 0, 2, 4],
-                       [0, 0, 0, 0, 0],
-                       [1, 0, 0, 0, 0],
-                       [2, 0, 0, 2, 0]], dtype=float)
-
-undirected_G = np.array([[0, 3, 3, 1, 2],
-                         [3, 0, 0, 2, 4],
-                         [3, 0, 0, 0, 0],
-                         [1, 2, 0, 0, 2],
-                         [2, 4, 0, 2, 0]], dtype=float)
-
-unweighted_G = (directed_G > 0).astype(float)
-
-directed_SP = [[0, 3, 3, 5, 7],
-               [3, 0, 6, 2, 4],
-               [np.inf, np.inf, 0, np.inf, np.inf],
-               [1, 4, 4, 0, 8],
-               [2, 5, 5, 2, 0]]
-
-directed_2SP_0_to_3 = [[-9999, 0, -9999, 1, -9999],
-                       [-9999, 0, -9999, 4, 1]]
-
-directed_sparse_zero_G = scipy.sparse.csr_matrix(([0, 1, 2, 3, 1], 
-                                            ([0, 1, 2, 3, 4], 
-                                             [1, 2, 0, 4, 3])), 
-                                            shape = (5, 5))
-
-directed_sparse_zero_SP = [[0, 0, 1, np.inf, np.inf],
-                      [3, 0, 1, np.inf, np.inf],
-                      [2, 2, 0, np.inf, np.inf],
-                      [np.inf, np.inf, np.inf, 0, 3],
-                      [np.inf, np.inf, np.inf, 1, 0]]
-
-undirected_sparse_zero_G = scipy.sparse.csr_matrix(([0, 0, 1, 1, 2, 2, 1, 1], 
-                                              ([0, 1, 1, 2, 2, 0, 3, 4], 
-                                               [1, 0, 2, 1, 0, 2, 4, 3])), 
-                                              shape = (5, 5))
-
-undirected_sparse_zero_SP = [[0, 0, 1, np.inf, np.inf],
-                        [0, 0, 1, np.inf, np.inf],
-                        [1, 1, 0, np.inf, np.inf],
-                        [np.inf, np.inf, np.inf, 0, 1],
-                        [np.inf, np.inf, np.inf, 1, 0]]
-
-directed_pred = np.array([[-9999, 0, 0, 1, 1],
-                          [3, -9999, 0, 1, 1],
-                          [-9999, -9999, -9999, -9999, -9999],
-                          [3, 0, 0, -9999, 1],
-                          [4, 0, 0, 4, -9999]], dtype=float)
-
-undirected_SP = np.array([[0, 3, 3, 1, 2],
-                          [3, 0, 6, 2, 4],
-                          [3, 6, 0, 4, 5],
-                          [1, 2, 4, 0, 2],
-                          [2, 4, 5, 2, 0]], dtype=float)
-
-undirected_SP_limit_2 = np.array([[0, np.inf, np.inf, 1, 2],
-                                  [np.inf, 0, np.inf, 2, np.inf],
-                                  [np.inf, np.inf, 0, np.inf, np.inf],
-                                  [1, 2, np.inf, 0, 2],
-                                  [2, np.inf, np.inf, 2, 0]], dtype=float)
-
-undirected_SP_limit_0 = np.ones((5, 5), dtype=float) - np.eye(5)
-undirected_SP_limit_0[undirected_SP_limit_0 > 0] = np.inf
-
-undirected_pred = np.array([[-9999, 0, 0, 0, 0],
-                            [1, -9999, 0, 1, 1],
-                            [2, 0, -9999, 0, 0],
-                            [3, 3, 0, -9999, 3],
-                            [4, 4, 0, 4, -9999]], dtype=float)
-
-directed_negative_weighted_G = np.array([[0, 0, 0],
-                                         [-1, 0, 0],
-                                         [0, -1, 0]], dtype=float)
-
-directed_negative_weighted_SP = np.array([[0, np.inf, np.inf],
-                                          [-1, 0, np.inf],
-                                          [-2, -1, 0]], dtype=float)
-
-methods = ['auto', 'FW', 'D', 'BF', 'J']
-
-
-def test_dijkstra_limit():
-    limits = [0, 2, np.inf]
-    results = [undirected_SP_limit_0,
-               undirected_SP_limit_2,
-               undirected_SP]
-
-    def check(limit, result):
-        SP = dijkstra(undirected_G, directed=False, limit=limit)
-        assert_array_almost_equal(SP, result)
-
-    for limit, result in zip(limits, results):
-        check(limit, result)
-
-
-def test_directed():
-    def check(method):
-        SP = shortest_path(directed_G, method=method, directed=True,
-                           overwrite=False)
-        assert_array_almost_equal(SP, directed_SP)
-
-    for method in methods:
-        check(method)
-
-
-def test_undirected():
-    def check(method, directed_in):
-        if directed_in:
-            SP1 = shortest_path(directed_G, method=method, directed=False,
-                                overwrite=False)
-            assert_array_almost_equal(SP1, undirected_SP)
-        else:
-            SP2 = shortest_path(undirected_G, method=method, directed=True,
-                                overwrite=False)
-            assert_array_almost_equal(SP2, undirected_SP)
-
-    for method in methods:
-        for directed_in in (True, False):
-            check(method, directed_in)
-
-
-def test_directed_sparse_zero():
-    # test directed sparse graph with zero-weight edge and two connected components
-    def check(method):
-        SP = shortest_path(directed_sparse_zero_G, method=method, directed=True,
-                           overwrite=False)
-        assert_array_almost_equal(SP, directed_sparse_zero_SP)
-
-    for method in methods:
-        check(method)
-
-
-def test_undirected_sparse_zero():
-    def check(method, directed_in):
-        if directed_in:
-            SP1 = shortest_path(directed_sparse_zero_G, method=method, directed=False,
-                                overwrite=False)
-            assert_array_almost_equal(SP1, undirected_sparse_zero_SP)
-        else:
-            SP2 = shortest_path(undirected_sparse_zero_G, method=method, directed=True,
-                                overwrite=False)
-            assert_array_almost_equal(SP2, undirected_sparse_zero_SP)
-
-    for method in methods:
-        for directed_in in (True, False):
-            check(method, directed_in)
-
-
-@pytest.mark.parametrize('directed, SP_ans',
-                         ((True, directed_SP),
-                          (False, undirected_SP)))
-@pytest.mark.parametrize('indices', ([0, 2, 4], [0, 4], [3, 4], [0, 0]))
-def test_dijkstra_indices_min_only(directed, SP_ans, indices):
-    SP_ans = np.array(SP_ans)
-    indices = np.array(indices, dtype=np.int64)
-    min_ind_ans = indices[np.argmin(SP_ans[indices, :], axis=0)]
-    min_d_ans = np.zeros(SP_ans.shape[0], SP_ans.dtype)
-    for k in range(SP_ans.shape[0]):
-        min_d_ans[k] = SP_ans[min_ind_ans[k], k]
-    min_ind_ans[np.isinf(min_d_ans)] = -9999
-
-    SP, pred, sources = dijkstra(directed_G,
-                                 directed=directed,
-                                 indices=indices,
-                                 min_only=True,
-                                 return_predecessors=True)
-    assert_array_almost_equal(SP, min_d_ans)
-    assert_array_equal(min_ind_ans, sources)
-    SP = dijkstra(directed_G,
-                  directed=directed,
-                  indices=indices,
-                  min_only=True,
-                  return_predecessors=False)
-    assert_array_almost_equal(SP, min_d_ans)
-
-
-@pytest.mark.parametrize('n', (10, 100, 1000))
-def test_dijkstra_min_only_random(n):
-    np.random.seed(1234)
-    data = scipy.sparse.rand(n, n, density=0.5, format='lil',
-                             random_state=42, dtype=np.float64)
-    data.setdiag(np.zeros(n, dtype=np.bool_))
-    # choose some random vertices
-    v = np.arange(n)
-    np.random.shuffle(v)
-    indices = v[:int(n*.1)]
-    ds, pred, sources = dijkstra(data,
-                                 directed=True,
-                                 indices=indices,
-                                 min_only=True,
-                                 return_predecessors=True)
-    for k in range(n):
-        p = pred[k]
-        s = sources[k]
-        while p != -9999:
-            assert sources[p] == s
-            p = pred[p]
-
-
-def test_dijkstra_random():
-    # reproduces the hang observed in gh-17782
-    n = 10
-    indices = [0, 4, 4, 5, 7, 9, 0, 6, 2, 3, 7, 9, 1, 2, 9, 2, 5, 6]
-    indptr = [0, 0, 2, 5, 6, 7, 8, 12, 15, 18, 18]
-    data = [0.33629, 0.40458, 0.47493, 0.42757, 0.11497, 0.91653, 0.69084,
-            0.64979, 0.62555, 0.743, 0.01724, 0.99945, 0.31095, 0.15557,
-            0.02439, 0.65814, 0.23478, 0.24072]
-    graph = scipy.sparse.csr_matrix((data, indices, indptr), shape=(n, n))
-    dijkstra(graph, directed=True, return_predecessors=True)
-
-
-def test_gh_17782_segfault():
-    text = """%%MatrixMarket matrix coordinate real general
-                84 84 22
-                2 1 4.699999809265137e+00
-                6 14 1.199999973177910e-01
-                9 6 1.199999973177910e-01
-                10 16 2.012000083923340e+01
-                11 10 1.422000026702881e+01
-                12 1 9.645999908447266e+01
-                13 18 2.012000083923340e+01
-                14 13 4.679999828338623e+00
-                15 11 1.199999973177910e-01
-                16 12 1.199999973177910e-01
-                18 15 1.199999973177910e-01
-                32 2 2.299999952316284e+00
-                33 20 6.000000000000000e+00
-                33 32 5.000000000000000e+00
-                36 9 3.720000028610229e+00
-                36 37 3.720000028610229e+00
-                36 38 3.720000028610229e+00
-                37 44 8.159999847412109e+00
-                38 32 7.903999328613281e+01
-                43 20 2.400000000000000e+01
-                43 33 4.000000000000000e+00
-                44 43 6.028000259399414e+01
-    """
-    data = mmread(StringIO(text))
-    dijkstra(data, directed=True, return_predecessors=True)
-
-
-def test_shortest_path_indices():
-    indices = np.arange(4)
-
-    def check(func, indshape):
-        outshape = indshape + (5,)
-        SP = func(directed_G, directed=False,
-                  indices=indices.reshape(indshape))
-        assert_array_almost_equal(SP, undirected_SP[indices].reshape(outshape))
-
-    for indshape in [(4,), (4, 1), (2, 2)]:
-        for func in (dijkstra, bellman_ford, johnson, shortest_path):
-            check(func, indshape)
-
-    assert_raises(ValueError, shortest_path, directed_G, method='FW',
-                  indices=indices)
-
-
-def test_predecessors():
-    SP_res = {True: directed_SP,
-              False: undirected_SP}
-    pred_res = {True: directed_pred,
-                False: undirected_pred}
-
-    def check(method, directed):
-        SP, pred = shortest_path(directed_G, method, directed=directed,
-                                 overwrite=False,
-                                 return_predecessors=True)
-        assert_array_almost_equal(SP, SP_res[directed])
-        assert_array_almost_equal(pred, pred_res[directed])
-
-    for method in methods:
-        for directed in (True, False):
-            check(method, directed)
-
-
-def test_construct_shortest_path():
-    def check(method, directed):
-        SP1, pred = shortest_path(directed_G,
-                                  directed=directed,
-                                  overwrite=False,
-                                  return_predecessors=True)
-        SP2 = construct_dist_matrix(directed_G, pred, directed=directed)
-        assert_array_almost_equal(SP1, SP2)
-
-    for method in methods:
-        for directed in (True, False):
-            check(method, directed)
-
-
-def test_unweighted_path():
-    def check(method, directed):
-        SP1 = shortest_path(directed_G,
-                            directed=directed,
-                            overwrite=False,
-                            unweighted=True)
-        SP2 = shortest_path(unweighted_G,
-                            directed=directed,
-                            overwrite=False,
-                            unweighted=False)
-        assert_array_almost_equal(SP1, SP2)
-
-    for method in methods:
-        for directed in (True, False):
-            check(method, directed)
-
-
-def test_negative_cycles():
-    # create a small graph with a negative cycle
-    graph = np.ones([5, 5])
-    graph.flat[::6] = 0
-    graph[1, 2] = -2
-
-    def check(method, directed):
-        assert_raises(NegativeCycleError, shortest_path, graph, method,
-                      directed)
-
-    for directed in (True, False):
-        for method in ['FW', 'J', 'BF']:
-            check(method, directed)
-
-        assert_raises(NegativeCycleError, yen, graph, 0, 1, 1,
-                      directed=directed)
-
-
-@pytest.mark.parametrize("method", ['FW', 'J', 'BF'])
-def test_negative_weights(method):
-    SP = shortest_path(directed_negative_weighted_G, method, directed=True)
-    assert_allclose(SP, directed_negative_weighted_SP, atol=1e-10)
-
-
-def test_masked_input():
-    np.ma.masked_equal(directed_G, 0)
-
-    def check(method):
-        SP = shortest_path(directed_G, method=method, directed=True,
-                           overwrite=False)
-        assert_array_almost_equal(SP, directed_SP)
-
-    for method in methods:
-        check(method)
-
-
-def test_overwrite():
-    G = np.array([[0, 3, 3, 1, 2],
-                  [3, 0, 0, 2, 4],
-                  [3, 0, 0, 0, 0],
-                  [1, 2, 0, 0, 2],
-                  [2, 4, 0, 2, 0]], dtype=float)
-    foo = G.copy()
-    shortest_path(foo, overwrite=False)
-    assert_array_equal(foo, G)
-
-
-@pytest.mark.parametrize('method', methods)
-def test_buffer(method):
-    # Smoke test that sparse matrices with read-only buffers (e.g., those from
-    # joblib workers) do not cause::
-    #
-    #     ValueError: buffer source array is read-only
-    #
-    G = scipy.sparse.csr_matrix([[1.]])
-    G.data.flags['WRITEABLE'] = False
-    shortest_path(G, method=method)
-
-
-def test_NaN_warnings():
-    with warnings.catch_warnings(record=True) as record:
-        shortest_path(np.array([[0, 1], [np.nan, 0]]))
-    for r in record:
-        assert r.category is not RuntimeWarning
-
-
-def test_sparse_matrices():
-    # Test that using lil,csr and csc sparse matrix do not cause error
-    G_dense = np.array([[0, 3, 0, 0, 0],
-                        [0, 0, -1, 0, 0],
-                        [0, 0, 0, 2, 0],
-                        [0, 0, 0, 0, 4],
-                        [0, 0, 0, 0, 0]], dtype=float)
-    SP = shortest_path(G_dense)
-    G_csr = scipy.sparse.csr_matrix(G_dense)
-    G_csc = scipy.sparse.csc_matrix(G_dense)
-    G_lil = scipy.sparse.lil_matrix(G_dense)
-    assert_array_almost_equal(SP, shortest_path(G_csr))
-    assert_array_almost_equal(SP, shortest_path(G_csc))
-    assert_array_almost_equal(SP, shortest_path(G_lil))
-
-
-def test_yen_directed():
-    distances, predecessors = yen(
-                            directed_G,
-                            source=0,
-                            sink=3,
-                            K=2,
-                            return_predecessors=True
-                        )
-    assert_allclose(distances, [5., 9.])
-    assert_allclose(predecessors, directed_2SP_0_to_3)
-
-
-def test_yen_undirected():
-    distances = yen(
-        undirected_G,
-        source=0,
-        sink=3,
-        K=4,
-    )
-    assert_allclose(distances, [1., 4., 5., 8.])
-
-def test_yen_unweighted():
-    # Ask for more paths than there are, verify only the available paths are returned
-    distances, predecessors = yen(
-        directed_G,
-        source=0,
-        sink=3,
-        K=4,
-        unweighted=True,
-        return_predecessors=True,
-    )
-    assert_allclose(distances, [2., 3.])
-    assert_allclose(predecessors, directed_2SP_0_to_3)
-
-def test_yen_no_paths():
-    distances = yen(
-        directed_G,
-        source=2,
-        sink=3,
-        K=1,
-    )
-    assert distances.size == 0
-
-def test_yen_negative_weights():
-    distances = yen(
-        directed_negative_weighted_G,
-        source=2,
-        sink=0,
-        K=1,
-    )
-    assert_allclose(distances, [-2.])
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_spanning_tree.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_spanning_tree.py
deleted file mode 100644
index 90ef6d1b1ba86170b0264f76e6a63e21749acdc8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_spanning_tree.py
+++ /dev/null
@@ -1,66 +0,0 @@
-"""Test the minimum spanning tree function"""
-import numpy as np
-from numpy.testing import assert_
-import numpy.testing as npt
-from scipy.sparse import csr_matrix
-from scipy.sparse.csgraph import minimum_spanning_tree
-
-
-def test_minimum_spanning_tree():
-
-    # Create a graph with two connected components.
-    graph = [[0,1,0,0,0],
-             [1,0,0,0,0],
-             [0,0,0,8,5],
-             [0,0,8,0,1],
-             [0,0,5,1,0]]
-    graph = np.asarray(graph)
-
-    # Create the expected spanning tree.
-    expected = [[0,1,0,0,0],
-                [0,0,0,0,0],
-                [0,0,0,0,5],
-                [0,0,0,0,1],
-                [0,0,0,0,0]]
-    expected = np.asarray(expected)
-
-    # Ensure minimum spanning tree code gives this expected output.
-    csgraph = csr_matrix(graph)
-    mintree = minimum_spanning_tree(csgraph)
-    mintree_array = mintree.toarray()
-    npt.assert_array_equal(mintree_array, expected,
-                           'Incorrect spanning tree found.')
-
-    # Ensure that the original graph was not modified.
-    npt.assert_array_equal(csgraph.toarray(), graph,
-        'Original graph was modified.')
-
-    # Now let the algorithm modify the csgraph in place.
-    mintree = minimum_spanning_tree(csgraph, overwrite=True)
-    npt.assert_array_equal(mintree.toarray(), expected,
-        'Graph was not properly modified to contain MST.')
-
-    np.random.seed(1234)
-    for N in (5, 10, 15, 20):
-
-        # Create a random graph.
-        graph = 3 + np.random.random((N, N))
-        csgraph = csr_matrix(graph)
-
-        # The spanning tree has at most N - 1 edges.
-        mintree = minimum_spanning_tree(csgraph)
-        assert_(mintree.nnz < N)
-
-        # Set the sub diagonal to 1 to create a known spanning tree.
-        idx = np.arange(N-1)
-        graph[idx,idx+1] = 1
-        csgraph = csr_matrix(graph)
-        mintree = minimum_spanning_tree(csgraph)
-
-        # We expect to see this pattern in the spanning tree and otherwise
-        # have this zero.
-        expected = np.zeros((N, N))
-        expected[idx, idx+1] = 1
-
-        npt.assert_array_equal(mintree.toarray(), expected,
-            'Incorrect spanning tree found.')
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_traversal.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_traversal.py
deleted file mode 100644
index 414e2d14864da8613eaf85f41a0b391ce1ae916d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csgraph/tests/test_traversal.py
+++ /dev/null
@@ -1,81 +0,0 @@
-import numpy as np
-import pytest
-from numpy.testing import assert_array_almost_equal
-from scipy.sparse import csr_array
-from scipy.sparse.csgraph import (breadth_first_tree, depth_first_tree,
-    csgraph_to_dense, csgraph_from_dense)
-
-
-def test_graph_breadth_first():
-    csgraph = np.array([[0, 1, 2, 0, 0],
-                        [1, 0, 0, 0, 3],
-                        [2, 0, 0, 7, 0],
-                        [0, 0, 7, 0, 1],
-                        [0, 3, 0, 1, 0]])
-    csgraph = csgraph_from_dense(csgraph, null_value=0)
-
-    bfirst = np.array([[0, 1, 2, 0, 0],
-                       [0, 0, 0, 0, 3],
-                       [0, 0, 0, 7, 0],
-                       [0, 0, 0, 0, 0],
-                       [0, 0, 0, 0, 0]])
-
-    for directed in [True, False]:
-        bfirst_test = breadth_first_tree(csgraph, 0, directed)
-        assert_array_almost_equal(csgraph_to_dense(bfirst_test),
-                                  bfirst)
-
-
-def test_graph_depth_first():
-    csgraph = np.array([[0, 1, 2, 0, 0],
-                        [1, 0, 0, 0, 3],
-                        [2, 0, 0, 7, 0],
-                        [0, 0, 7, 0, 1],
-                        [0, 3, 0, 1, 0]])
-    csgraph = csgraph_from_dense(csgraph, null_value=0)
-
-    dfirst = np.array([[0, 1, 0, 0, 0],
-                       [0, 0, 0, 0, 3],
-                       [0, 0, 0, 0, 0],
-                       [0, 0, 7, 0, 0],
-                       [0, 0, 0, 1, 0]])
-
-    for directed in [True, False]:
-        dfirst_test = depth_first_tree(csgraph, 0, directed)
-        assert_array_almost_equal(csgraph_to_dense(dfirst_test),
-                                  dfirst)
-
-
-def test_graph_breadth_first_trivial_graph():
-    csgraph = np.array([[0]])
-    csgraph = csgraph_from_dense(csgraph, null_value=0)
-
-    bfirst = np.array([[0]])
-
-    for directed in [True, False]:
-        bfirst_test = breadth_first_tree(csgraph, 0, directed)
-        assert_array_almost_equal(csgraph_to_dense(bfirst_test),
-                                  bfirst)
-
-
-def test_graph_depth_first_trivial_graph():
-    csgraph = np.array([[0]])
-    csgraph = csgraph_from_dense(csgraph, null_value=0)
-
-    bfirst = np.array([[0]])
-
-    for directed in [True, False]:
-        bfirst_test = depth_first_tree(csgraph, 0, directed)
-        assert_array_almost_equal(csgraph_to_dense(bfirst_test),
-                                  bfirst)
-
-
-@pytest.mark.parametrize('directed', [True, False])
-@pytest.mark.parametrize('tree_func', [breadth_first_tree, depth_first_tree])
-def test_int64_indices(tree_func, directed):
-    # See https://github.com/scipy/scipy/issues/18716
-    g = csr_array(([1], np.array([[0], [1]], dtype=np.int64)), shape=(2, 2))
-    assert g.indices.dtype == np.int64
-    tree = tree_func(g, 0, directed=directed)
-    assert_array_almost_equal(csgraph_to_dense(tree), [[0, 1], [0, 0]])
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csr.py
deleted file mode 100644
index 86bb1e072ebe4480e9dcb01f2d36f7387872b898..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/csr.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'csr_count_blocks',
-    'csr_matrix',
-    'csr_tobsr',
-    'csr_tocsc',
-    'get_csr_submatrix',
-    'isspmatrix_csr',
-    'spmatrix',
-    'upcast',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="csr",
-                                   private_modules=["_csr"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/data.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/data.py
deleted file mode 100644
index a9958bcda6dd35ac0779514d79b7f1c494c1b01a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/data.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'isscalarlike',
-    'name',
-    'npfunc',
-    'validateaxis',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="data",
-                                   private_modules=["_data"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/dia.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/dia.py
deleted file mode 100644
index f79abd39f114b23df8ceb6eafb7fcc1c07218dcb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/dia.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'check_shape',
-    'dia_matrix',
-    'dia_matvec',
-    'get_sum_dtype',
-    'getdtype',
-    'isshape',
-    'isspmatrix_dia',
-    'spmatrix',
-    'upcast_char',
-    'validateaxis',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="dia",
-                                   private_modules=["_dia"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/dok.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/dok.py
deleted file mode 100644
index 847824456eaa3145d5ecb078e30251875168775b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/dok.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'IndexMixin',
-    'check_shape',
-    'dok_matrix',
-    'getdtype',
-    'isdense',
-    'isintlike',
-    'isscalarlike',
-    'isshape',
-    'isspmatrix_dok',
-    'itertools',
-    'spmatrix',
-    'upcast',
-    'upcast_scalar',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="dok",
-                                   private_modules=["_dok"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/extract.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/extract.py
deleted file mode 100644
index be5e161b6f99e57e2b2a6b3d4f1ef6427c07658d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/extract.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'coo_matrix',
-    'find',
-    'tril',
-    'triu',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="extract",
-                                   private_modules=["_extract"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/lil.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/lil.py
deleted file mode 100644
index 5f7bf8eb03bb36a1b2fa77c5fc0840e532ab64fd..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/lil.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'isspmatrix_lil',
-    'lil_array',
-    'lil_matrix',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="lil",
-                                   private_modules=["_lil"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__init__.py
deleted file mode 100644
index 0d20b194dcbac5c2f48947d37e6b233edc2baf2b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__init__.py
+++ /dev/null
@@ -1,146 +0,0 @@
-"""
-Sparse linear algebra (:mod:`scipy.sparse.linalg`)
-==================================================
-
-.. currentmodule:: scipy.sparse.linalg
-
-Abstract linear operators
--------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   LinearOperator -- abstract representation of a linear operator
-   aslinearoperator -- convert an object to an abstract linear operator
-
-Matrix Operations
------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   inv -- compute the sparse matrix inverse
-   expm -- compute the sparse matrix exponential
-   expm_multiply -- compute the product of a matrix exponential and a matrix
-   matrix_power -- compute the matrix power by raising a matrix to an exponent
-
-Matrix norms
-------------
-
-.. autosummary::
-   :toctree: generated/
-
-   norm -- Norm of a sparse matrix
-   onenormest -- Estimate the 1-norm of a sparse matrix
-
-Solving linear problems
------------------------
-
-Direct methods for linear equation systems:
-
-.. autosummary::
-   :toctree: generated/
-
-   spsolve -- Solve the sparse linear system Ax=b
-   spsolve_triangular -- Solve sparse linear system Ax=b for a triangular A.
-   factorized -- Pre-factorize matrix to a function solving a linear system
-   MatrixRankWarning -- Warning on exactly singular matrices
-   use_solver -- Select direct solver to use
-
-Iterative methods for linear equation systems:
-
-.. autosummary::
-   :toctree: generated/
-
-   bicg -- Use BIConjugate Gradient iteration to solve Ax = b
-   bicgstab -- Use BIConjugate Gradient STABilized iteration to solve Ax = b
-   cg -- Use Conjugate Gradient iteration to solve Ax = b
-   cgs -- Use Conjugate Gradient Squared iteration to solve Ax = b
-   gmres -- Use Generalized Minimal RESidual iteration to solve Ax = b
-   lgmres -- Solve a matrix equation using the LGMRES algorithm
-   minres -- Use MINimum RESidual iteration to solve Ax = b
-   qmr -- Use Quasi-Minimal Residual iteration to solve Ax = b
-   gcrotmk -- Solve a matrix equation using the GCROT(m,k) algorithm
-   tfqmr -- Use Transpose-Free Quasi-Minimal Residual iteration to solve Ax = b
-
-Iterative methods for least-squares problems:
-
-.. autosummary::
-   :toctree: generated/
-
-   lsqr -- Find the least-squares solution to a sparse linear equation system
-   lsmr -- Find the least-squares solution to a sparse linear equation system
-
-Matrix factorizations
----------------------
-
-Eigenvalue problems:
-
-.. autosummary::
-   :toctree: generated/
-
-   eigs -- Find k eigenvalues and eigenvectors of the square matrix A
-   eigsh -- Find k eigenvalues and eigenvectors of a symmetric matrix
-   lobpcg -- Solve symmetric partial eigenproblems with optional preconditioning
-
-Singular values problems:
-
-.. autosummary::
-   :toctree: generated/
-
-   svds -- Compute k singular values/vectors for a sparse matrix
-
-The `svds` function supports the following solvers:
-
-.. toctree::
-
-    sparse.linalg.svds-arpack
-    sparse.linalg.svds-lobpcg
-    sparse.linalg.svds-propack
-
-Complete or incomplete LU factorizations
-
-.. autosummary::
-   :toctree: generated/
-
-   splu -- Compute a LU decomposition for a sparse matrix
-   spilu -- Compute an incomplete LU decomposition for a sparse matrix
-   SuperLU -- Object representing an LU factorization
-
-Sparse arrays with structure
-----------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   LaplacianNd -- Laplacian on a uniform rectangular grid in ``N`` dimensions
-
-Exceptions
-----------
-
-.. autosummary::
-   :toctree: generated/
-
-   ArpackNoConvergence
-   ArpackError
-
-"""
-
-from ._isolve import *
-from ._dsolve import *
-from ._interface import *
-from ._eigen import *
-from ._matfuncs import *
-from ._onenormest import *
-from ._norm import *
-from ._expm_multiply import *
-from ._special_sparse_arrays import *
-
-# Deprecated namespaces, to be removed in v2.0.0
-from . import isolve, dsolve, interface, eigen, matfuncs
-
-__all__ = [s for s in dir() if not s.startswith('_')]
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 34caab0a29531155ce321046796d897935e3cfe1..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_expm_multiply.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_expm_multiply.cpython-310.pyc
deleted file mode 100644
index 7fe73069561a44bd5df5811527ec48c9bf6eebc1..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_expm_multiply.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_interface.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_interface.cpython-310.pyc
deleted file mode 100644
index bffd7629d8eac3898bc41495fb00636897ba3e0e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_interface.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_matfuncs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_matfuncs.cpython-310.pyc
deleted file mode 100644
index dd6829cb045971a44cad9a7e7391c46a7ea0c522..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_matfuncs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_norm.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_norm.cpython-310.pyc
deleted file mode 100644
index c657039e5a5c550980a11768545f164999263fc9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_norm.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_onenormest.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_onenormest.cpython-310.pyc
deleted file mode 100644
index f95ad087cc0ebc777f4fa0a6ecd74a4a4f20315e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_onenormest.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_special_sparse_arrays.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_special_sparse_arrays.cpython-310.pyc
deleted file mode 100644
index 5da68e84db225fd77d229f815ac138bb9f0e0a8c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_special_sparse_arrays.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_svdp.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_svdp.cpython-310.pyc
deleted file mode 100644
index 012f88ba8c2aae253ca24f0c32af8e403d495a9e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/_svdp.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/dsolve.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/dsolve.cpython-310.pyc
deleted file mode 100644
index 280161b78a086a5926fe117b2b432aacdc01739a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/dsolve.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/eigen.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/eigen.cpython-310.pyc
deleted file mode 100644
index 1de1e3921f4aad836cb7f7e5973c8df1de53f842..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/eigen.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/interface.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/interface.cpython-310.pyc
deleted file mode 100644
index 408724ef44d23cac5b463c7cb36bcacaf30ee16a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/interface.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/isolve.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/isolve.cpython-310.pyc
deleted file mode 100644
index afbe28f5174f7940be2a2875ed8173213eb5ecad..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/isolve.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/matfuncs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/matfuncs.cpython-310.pyc
deleted file mode 100644
index cfd34efcfbd4d47374773b315c8fa752b3aff2c9..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/__pycache__/matfuncs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__init__.py
deleted file mode 100644
index 25278d34ecd3353d409a25f7a94797902fe6ef93..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-"""
-Sparse Eigenvalue Solvers
--------------------------
-
-The submodules of sparse.linalg._eigen:
-    1. lobpcg: Locally Optimal Block Preconditioned Conjugate Gradient Method
-
-"""
-from .arpack import *
-from .lobpcg import *
-from ._svds import svds
-
-from . import arpack
-
-__all__ = [
-    'ArpackError', 'ArpackNoConvergence',
-    'eigs', 'eigsh', 'lobpcg', 'svds'
-]
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index c2ba5cd9ab1832f8807546c0b772428d3ac4a1b3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__pycache__/_svds.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__pycache__/_svds.cpython-310.pyc
deleted file mode 100644
index 7339c44e79a117aaaa3f5b0e56d10035df937453..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__pycache__/_svds.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__pycache__/_svds_doc.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__pycache__/_svds_doc.cpython-310.pyc
deleted file mode 100644
index 333e1899369405158d1f53285ee07a8cef154379..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/__pycache__/_svds_doc.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/_svds.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/_svds.py
deleted file mode 100644
index 60f7c3cde855289276f5dbf89e726ad06e087977..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/_svds.py
+++ /dev/null
@@ -1,546 +0,0 @@
-import math
-import numpy as np
-
-from .arpack import _arpack  # type: ignore[attr-defined]
-from . import eigsh
-
-from scipy._lib._util import check_random_state
-from scipy.sparse.linalg._interface import LinearOperator, aslinearoperator
-from scipy.sparse.linalg._eigen.lobpcg import lobpcg  # type: ignore[no-redef]
-from scipy.sparse.linalg._svdp import _svdp
-from scipy.linalg import svd
-
-arpack_int = _arpack.timing.nbx.dtype
-__all__ = ['svds']
-
-
-def _herm(x):
-    return x.T.conj()
-
-
-def _iv(A, k, ncv, tol, which, v0, maxiter,
-        return_singular, solver, random_state):
-
-    # input validation/standardization for `solver`
-    # out of order because it's needed for other parameters
-    solver = str(solver).lower()
-    solvers = {"arpack", "lobpcg", "propack"}
-    if solver not in solvers:
-        raise ValueError(f"solver must be one of {solvers}.")
-
-    # input validation/standardization for `A`
-    A = aslinearoperator(A)  # this takes care of some input validation
-    if not (np.issubdtype(A.dtype, np.complexfloating)
-            or np.issubdtype(A.dtype, np.floating)):
-        message = "`A` must be of floating or complex floating data type."
-        raise ValueError(message)
-    if math.prod(A.shape) == 0:
-        message = "`A` must not be empty."
-        raise ValueError(message)
-
-    # input validation/standardization for `k`
-    kmax = min(A.shape) if solver == 'propack' else min(A.shape) - 1
-    if int(k) != k or not (0 < k <= kmax):
-        message = "`k` must be an integer satisfying `0 < k < min(A.shape)`."
-        raise ValueError(message)
-    k = int(k)
-
-    # input validation/standardization for `ncv`
-    if solver == "arpack" and ncv is not None:
-        if int(ncv) != ncv or not (k < ncv < min(A.shape)):
-            message = ("`ncv` must be an integer satisfying "
-                       "`k < ncv < min(A.shape)`.")
-            raise ValueError(message)
-        ncv = int(ncv)
-
-    # input validation/standardization for `tol`
-    if tol < 0 or not np.isfinite(tol):
-        message = "`tol` must be a non-negative floating point value."
-        raise ValueError(message)
-    tol = float(tol)
-
-    # input validation/standardization for `which`
-    which = str(which).upper()
-    whichs = {'LM', 'SM'}
-    if which not in whichs:
-        raise ValueError(f"`which` must be in {whichs}.")
-
-    # input validation/standardization for `v0`
-    if v0 is not None:
-        v0 = np.atleast_1d(v0)
-        if not (np.issubdtype(v0.dtype, np.complexfloating)
-                or np.issubdtype(v0.dtype, np.floating)):
-            message = ("`v0` must be of floating or complex floating "
-                       "data type.")
-            raise ValueError(message)
-
-        shape = (A.shape[0],) if solver == 'propack' else (min(A.shape),)
-        if v0.shape != shape:
-            message = f"`v0` must have shape {shape}."
-            raise ValueError(message)
-
-    # input validation/standardization for `maxiter`
-    if maxiter is not None and (int(maxiter) != maxiter or maxiter <= 0):
-        message = "`maxiter` must be a positive integer."
-        raise ValueError(message)
-    maxiter = int(maxiter) if maxiter is not None else maxiter
-
-    # input validation/standardization for `return_singular_vectors`
-    # not going to be flexible with this; too complicated for little gain
-    rs_options = {True, False, "vh", "u"}
-    if return_singular not in rs_options:
-        raise ValueError(f"`return_singular_vectors` must be in {rs_options}.")
-
-    random_state = check_random_state(random_state)
-
-    return (A, k, ncv, tol, which, v0, maxiter,
-            return_singular, solver, random_state)
-
-
-def svds(A, k=6, ncv=None, tol=0, which='LM', v0=None,
-         maxiter=None, return_singular_vectors=True,
-         solver='arpack', random_state=None, options=None):
-    """
-    Partial singular value decomposition of a sparse matrix.
-
-    Compute the largest or smallest `k` singular values and corresponding
-    singular vectors of a sparse matrix `A`. The order in which the singular
-    values are returned is not guaranteed.
-
-    In the descriptions below, let ``M, N = A.shape``.
-
-    Parameters
-    ----------
-    A : ndarray, sparse matrix, or LinearOperator
-        Matrix to decompose of a floating point numeric dtype.
-    k : int, default: 6
-        Number of singular values and singular vectors to compute.
-        Must satisfy ``1 <= k <= kmax``, where ``kmax=min(M, N)`` for
-        ``solver='propack'`` and ``kmax=min(M, N) - 1`` otherwise.
-    ncv : int, optional
-        When ``solver='arpack'``, this is the number of Lanczos vectors
-        generated. See :ref:`'arpack' ` for details.
-        When ``solver='lobpcg'`` or ``solver='propack'``, this parameter is
-        ignored.
-    tol : float, optional
-        Tolerance for singular values. Zero (default) means machine precision.
-    which : {'LM', 'SM'}
-        Which `k` singular values to find: either the largest magnitude ('LM')
-        or smallest magnitude ('SM') singular values.
-    v0 : ndarray, optional
-        The starting vector for iteration; see method-specific
-        documentation (:ref:`'arpack' `,
-        :ref:`'lobpcg' `), or
-        :ref:`'propack' ` for details.
-    maxiter : int, optional
-        Maximum number of iterations; see method-specific
-        documentation (:ref:`'arpack' `,
-        :ref:`'lobpcg' `), or
-        :ref:`'propack' ` for details.
-    return_singular_vectors : {True, False, "u", "vh"}
-        Singular values are always computed and returned; this parameter
-        controls the computation and return of singular vectors.
-
-        - ``True``: return singular vectors.
-        - ``False``: do not return singular vectors.
-        - ``"u"``: if ``M <= N``, compute only the left singular vectors and
-          return ``None`` for the right singular vectors. Otherwise, compute
-          all singular vectors.
-        - ``"vh"``: if ``M > N``, compute only the right singular vectors and
-          return ``None`` for the left singular vectors. Otherwise, compute
-          all singular vectors.
-
-        If ``solver='propack'``, the option is respected regardless of the
-        matrix shape.
-
-    solver :  {'arpack', 'propack', 'lobpcg'}, optional
-            The solver used.
-            :ref:`'arpack' `,
-            :ref:`'lobpcg' `, and
-            :ref:`'propack' ` are supported.
-            Default: `'arpack'`.
-    random_state : {None, int, `numpy.random.Generator`,
-                    `numpy.random.RandomState`}, optional
-
-        Pseudorandom number generator state used to generate resamples.
-
-        If `random_state` is ``None`` (or `np.random`), the
-        `numpy.random.RandomState` singleton is used.
-        If `random_state` is an int, a new ``RandomState`` instance is used,
-        seeded with `random_state`.
-        If `random_state` is already a ``Generator`` or ``RandomState``
-        instance then that instance is used.
-    options : dict, optional
-        A dictionary of solver-specific options. No solver-specific options
-        are currently supported; this parameter is reserved for future use.
-
-    Returns
-    -------
-    u : ndarray, shape=(M, k)
-        Unitary matrix having left singular vectors as columns.
-    s : ndarray, shape=(k,)
-        The singular values.
-    vh : ndarray, shape=(k, N)
-        Unitary matrix having right singular vectors as rows.
-
-    Notes
-    -----
-    This is a naive implementation using ARPACK or LOBPCG as an eigensolver
-    on the matrix ``A.conj().T @ A`` or ``A @ A.conj().T``, depending on
-    which one is smaller size, followed by the Rayleigh-Ritz method
-    as postprocessing; see
-    Using the normal matrix, in Rayleigh-Ritz method, (2022, Nov. 19),
-    Wikipedia, https://w.wiki/4zms.
-
-    Alternatively, the PROPACK solver can be called.
-
-    Choices of the input matrix `A` numeric dtype may be limited.
-    Only ``solver="lobpcg"`` supports all floating point dtypes
-    real: 'np.float32', 'np.float64', 'np.longdouble' and
-    complex: 'np.complex64', 'np.complex128', 'np.clongdouble'.
-    The ``solver="arpack"`` supports only
-    'np.float32', 'np.float64', and 'np.complex128'.
-
-    Examples
-    --------
-    Construct a matrix `A` from singular values and vectors.
-
-    >>> import numpy as np
-    >>> from scipy import sparse, linalg, stats
-    >>> from scipy.sparse.linalg import svds, aslinearoperator, LinearOperator
-
-    Construct a dense matrix `A` from singular values and vectors.
-
-    >>> rng = np.random.default_rng(258265244568965474821194062361901728911)
-    >>> orthogonal = stats.ortho_group.rvs(10, random_state=rng)
-    >>> s = [1e-3, 1, 2, 3, 4]  # non-zero singular values
-    >>> u = orthogonal[:, :5]         # left singular vectors
-    >>> vT = orthogonal[:, 5:].T      # right singular vectors
-    >>> A = u @ np.diag(s) @ vT
-
-    With only four singular values/vectors, the SVD approximates the original
-    matrix.
-
-    >>> u4, s4, vT4 = svds(A, k=4)
-    >>> A4 = u4 @ np.diag(s4) @ vT4
-    >>> np.allclose(A4, A, atol=1e-3)
-    True
-
-    With all five non-zero singular values/vectors, we can reproduce
-    the original matrix more accurately.
-
-    >>> u5, s5, vT5 = svds(A, k=5)
-    >>> A5 = u5 @ np.diag(s5) @ vT5
-    >>> np.allclose(A5, A)
-    True
-
-    The singular values match the expected singular values.
-
-    >>> np.allclose(s5, s)
-    True
-
-    Since the singular values are not close to each other in this example,
-    every singular vector matches as expected up to a difference in sign.
-
-    >>> (np.allclose(np.abs(u5), np.abs(u)) and
-    ...  np.allclose(np.abs(vT5), np.abs(vT)))
-    True
-
-    The singular vectors are also orthogonal.
-
-    >>> (np.allclose(u5.T @ u5, np.eye(5)) and
-    ...  np.allclose(vT5 @ vT5.T, np.eye(5)))
-    True
-
-    If there are (nearly) multiple singular values, the corresponding
-    individual singular vectors may be unstable, but the whole invariant
-    subspace containing all such singular vectors is computed accurately
-    as can be measured by angles between subspaces via 'subspace_angles'.
-
-    >>> rng = np.random.default_rng(178686584221410808734965903901790843963)
-    >>> s = [1, 1 + 1e-6]  # non-zero singular values
-    >>> u, _ = np.linalg.qr(rng.standard_normal((99, 2)))
-    >>> v, _ = np.linalg.qr(rng.standard_normal((99, 2)))
-    >>> vT = v.T
-    >>> A = u @ np.diag(s) @ vT
-    >>> A = A.astype(np.float32)
-    >>> u2, s2, vT2 = svds(A, k=2, random_state=rng)
-    >>> np.allclose(s2, s)
-    True
-
-    The angles between the individual exact and computed singular vectors
-    may not be so small. To check use:
-
-    >>> (linalg.subspace_angles(u2[:, :1], u[:, :1]) +
-    ...  linalg.subspace_angles(u2[:, 1:], u[:, 1:]))
-    array([0.06562513])  # may vary
-    >>> (linalg.subspace_angles(vT2[:1, :].T, vT[:1, :].T) +
-    ...  linalg.subspace_angles(vT2[1:, :].T, vT[1:, :].T))
-    array([0.06562507])  # may vary
-
-    As opposed to the angles between the 2-dimensional invariant subspaces
-    that these vectors span, which are small for rights singular vectors
-
-    >>> linalg.subspace_angles(u2, u).sum() < 1e-6
-    True
-
-    as well as for left singular vectors.
-
-    >>> linalg.subspace_angles(vT2.T, vT.T).sum() < 1e-6
-    True
-
-    The next example follows that of 'sklearn.decomposition.TruncatedSVD'.
-
-    >>> rng = np.random.RandomState(0)
-    >>> X_dense = rng.random(size=(100, 100))
-    >>> X_dense[:, 2 * np.arange(50)] = 0
-    >>> X = sparse.csr_matrix(X_dense)
-    >>> _, singular_values, _ = svds(X, k=5, random_state=rng)
-    >>> print(singular_values)
-    [ 4.3293...  4.4491...  4.5420...  4.5987... 35.2410...]
-
-    The function can be called without the transpose of the input matrix
-    ever explicitly constructed.
-
-    >>> rng = np.random.default_rng(102524723947864966825913730119128190974)
-    >>> G = sparse.rand(8, 9, density=0.5, random_state=rng)
-    >>> Glo = aslinearoperator(G)
-    >>> _, singular_values_svds, _ = svds(Glo, k=5, random_state=rng)
-    >>> _, singular_values_svd, _ = linalg.svd(G.toarray())
-    >>> np.allclose(singular_values_svds, singular_values_svd[-4::-1])
-    True
-
-    The most memory efficient scenario is where neither
-    the original matrix, nor its transpose, is explicitly constructed.
-    Our example computes the smallest singular values and vectors
-    of 'LinearOperator' constructed from the numpy function 'np.diff' used
-    column-wise to be consistent with 'LinearOperator' operating on columns.
-
-    >>> diff0 = lambda a: np.diff(a, axis=0)
-
-    Let us create the matrix from 'diff0' to be used for validation only.
-
-    >>> n = 5  # The dimension of the space.
-    >>> M_from_diff0 = diff0(np.eye(n))
-    >>> print(M_from_diff0.astype(int))
-    [[-1  1  0  0  0]
-     [ 0 -1  1  0  0]
-     [ 0  0 -1  1  0]
-     [ 0  0  0 -1  1]]
-
-    The matrix 'M_from_diff0' is bi-diagonal and could be alternatively
-    created directly by
-
-    >>> M = - np.eye(n - 1, n, dtype=int)
-    >>> np.fill_diagonal(M[:,1:], 1)
-    >>> np.allclose(M, M_from_diff0)
-    True
-
-    Its transpose
-
-    >>> print(M.T)
-    [[-1  0  0  0]
-     [ 1 -1  0  0]
-     [ 0  1 -1  0]
-     [ 0  0  1 -1]
-     [ 0  0  0  1]]
-
-    can be viewed as the incidence matrix; see
-    Incidence matrix, (2022, Nov. 19), Wikipedia, https://w.wiki/5YXU,
-    of a linear graph with 5 vertices and 4 edges. The 5x5 normal matrix
-    ``M.T @ M`` thus is
-
-    >>> print(M.T @ M)
-    [[ 1 -1  0  0  0]
-     [-1  2 -1  0  0]
-     [ 0 -1  2 -1  0]
-     [ 0  0 -1  2 -1]
-     [ 0  0  0 -1  1]]
-
-    the graph Laplacian, while the actually used in 'svds' smaller size
-    4x4 normal matrix ``M @ M.T``
-
-    >>> print(M @ M.T)
-    [[ 2 -1  0  0]
-     [-1  2 -1  0]
-     [ 0 -1  2 -1]
-     [ 0  0 -1  2]]
-
-    is the so-called edge-based Laplacian; see
-    Symmetric Laplacian via the incidence matrix, in Laplacian matrix,
-    (2022, Nov. 19), Wikipedia, https://w.wiki/5YXW.
-
-    The 'LinearOperator' setup needs the options 'rmatvec' and 'rmatmat'
-    of multiplication by the matrix transpose ``M.T``, but we want to be
-    matrix-free to save memory, so knowing how ``M.T`` looks like, we
-    manually construct the following function to be
-    used in ``rmatmat=diff0t``.
-
-    >>> def diff0t(a):
-    ...     if a.ndim == 1:
-    ...         a = a[:,np.newaxis]  # Turn 1D into 2D array
-    ...     d = np.zeros((a.shape[0] + 1, a.shape[1]), dtype=a.dtype)
-    ...     d[0, :] = - a[0, :]
-    ...     d[1:-1, :] = a[0:-1, :] - a[1:, :]
-    ...     d[-1, :] = a[-1, :]
-    ...     return d
-
-    We check that our function 'diff0t' for the matrix transpose is valid.
-
-    >>> np.allclose(M.T, diff0t(np.eye(n-1)))
-    True
-
-    Now we setup our matrix-free 'LinearOperator' called 'diff0_func_aslo'
-    and for validation the matrix-based 'diff0_matrix_aslo'.
-
-    >>> def diff0_func_aslo_def(n):
-    ...     return LinearOperator(matvec=diff0,
-    ...                           matmat=diff0,
-    ...                           rmatvec=diff0t,
-    ...                           rmatmat=diff0t,
-    ...                           shape=(n - 1, n))
-    >>> diff0_func_aslo = diff0_func_aslo_def(n)
-    >>> diff0_matrix_aslo = aslinearoperator(M_from_diff0)
-
-    And validate both the matrix and its transpose in 'LinearOperator'.
-
-    >>> np.allclose(diff0_func_aslo(np.eye(n)),
-    ...             diff0_matrix_aslo(np.eye(n)))
-    True
-    >>> np.allclose(diff0_func_aslo.T(np.eye(n-1)),
-    ...             diff0_matrix_aslo.T(np.eye(n-1)))
-    True
-
-    Having the 'LinearOperator' setup validated, we run the solver.
-
-    >>> n = 100
-    >>> diff0_func_aslo = diff0_func_aslo_def(n)
-    >>> u, s, vT = svds(diff0_func_aslo, k=3, which='SM')
-
-    The singular values squared and the singular vectors are known
-    explicitly; see
-    Pure Dirichlet boundary conditions, in
-    Eigenvalues and eigenvectors of the second derivative,
-    (2022, Nov. 19), Wikipedia, https://w.wiki/5YX6,
-    since 'diff' corresponds to first
-    derivative, and its smaller size n-1 x n-1 normal matrix
-    ``M @ M.T`` represent the discrete second derivative with the Dirichlet
-    boundary conditions. We use these analytic expressions for validation.
-
-    >>> se = 2. * np.sin(np.pi * np.arange(1, 4) / (2. * n))
-    >>> ue = np.sqrt(2 / n) * np.sin(np.pi * np.outer(np.arange(1, n),
-    ...                              np.arange(1, 4)) / n)
-    >>> np.allclose(s, se, atol=1e-3)
-    True
-    >>> print(np.allclose(np.abs(u), np.abs(ue), atol=1e-6))
-    True
-
-    """
-    args = _iv(A, k, ncv, tol, which, v0, maxiter, return_singular_vectors,
-               solver, random_state)
-    (A, k, ncv, tol, which, v0, maxiter,
-     return_singular_vectors, solver, random_state) = args
-
-    largest = (which == 'LM')
-    n, m = A.shape
-
-    if n >= m:
-        X_dot = A.matvec
-        X_matmat = A.matmat
-        XH_dot = A.rmatvec
-        XH_mat = A.rmatmat
-        transpose = False
-    else:
-        X_dot = A.rmatvec
-        X_matmat = A.rmatmat
-        XH_dot = A.matvec
-        XH_mat = A.matmat
-        transpose = True
-
-        dtype = getattr(A, 'dtype', None)
-        if dtype is None:
-            dtype = A.dot(np.zeros([m, 1])).dtype
-
-    def matvec_XH_X(x):
-        return XH_dot(X_dot(x))
-
-    def matmat_XH_X(x):
-        return XH_mat(X_matmat(x))
-
-    XH_X = LinearOperator(matvec=matvec_XH_X, dtype=A.dtype,
-                          matmat=matmat_XH_X,
-                          shape=(min(A.shape), min(A.shape)))
-
-    # Get a low rank approximation of the implicitly defined gramian matrix.
-    # This is not a stable way to approach the problem.
-    if solver == 'lobpcg':
-
-        if k == 1 and v0 is not None:
-            X = np.reshape(v0, (-1, 1))
-        else:
-            X = random_state.standard_normal(size=(min(A.shape), k))
-
-        _, eigvec = lobpcg(XH_X, X, tol=tol ** 2, maxiter=maxiter,
-                           largest=largest)
-
-    elif solver == 'propack':
-        jobu = return_singular_vectors in {True, 'u'}
-        jobv = return_singular_vectors in {True, 'vh'}
-        irl_mode = (which == 'SM')
-        res = _svdp(A, k=k, tol=tol**2, which=which, maxiter=None,
-                    compute_u=jobu, compute_v=jobv, irl_mode=irl_mode,
-                    kmax=maxiter, v0=v0, random_state=random_state)
-
-        u, s, vh, _ = res  # but we'll ignore bnd, the last output
-
-        # PROPACK order appears to be largest first. `svds` output order is not
-        # guaranteed, according to documentation, but for ARPACK and LOBPCG
-        # they actually are ordered smallest to largest, so reverse for
-        # consistency.
-        s = s[::-1]
-        u = u[:, ::-1]
-        vh = vh[::-1]
-
-        u = u if jobu else None
-        vh = vh if jobv else None
-
-        if return_singular_vectors:
-            return u, s, vh
-        else:
-            return s
-
-    elif solver == 'arpack' or solver is None:
-        if v0 is None:
-            v0 = random_state.standard_normal(size=(min(A.shape),))
-        _, eigvec = eigsh(XH_X, k=k, tol=tol ** 2, maxiter=maxiter,
-                          ncv=ncv, which=which, v0=v0)
-        # arpack do not guarantee exactly orthonormal eigenvectors
-        # for clustered eigenvalues, especially in complex arithmetic
-        eigvec, _ = np.linalg.qr(eigvec)
-
-    # the eigenvectors eigvec must be orthonomal here; see gh-16712
-    Av = X_matmat(eigvec)
-    if not return_singular_vectors:
-        s = svd(Av, compute_uv=False, overwrite_a=True)
-        return s[::-1]
-
-    # compute the left singular vectors of X and update the right ones
-    # accordingly
-    u, s, vh = svd(Av, full_matrices=False, overwrite_a=True)
-    u = u[:, ::-1]
-    s = s[::-1]
-    vh = vh[::-1]
-
-    jobu = return_singular_vectors in {True, 'u'}
-    jobv = return_singular_vectors in {True, 'vh'}
-
-    if transpose:
-        u_tmp = eigvec @ _herm(vh) if jobu else None
-        vh = _herm(u) if jobv else None
-        u = u_tmp
-    else:
-        if not jobu:
-            u = None
-        vh = vh @ _herm(eigvec) if jobv else None
-
-    return u, s, vh
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/_svds_doc.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/_svds_doc.py
deleted file mode 100644
index 3de1b76d6d4dc437bfbee8faf8171f2dfa2377fa..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/_svds_doc.py
+++ /dev/null
@@ -1,400 +0,0 @@
-def _svds_arpack_doc(A, k=6, ncv=None, tol=0, which='LM', v0=None,
-                     maxiter=None, return_singular_vectors=True,
-                     solver='arpack', random_state=None):
-    """
-    Partial singular value decomposition of a sparse matrix using ARPACK.
-
-    Compute the largest or smallest `k` singular values and corresponding
-    singular vectors of a sparse matrix `A`. The order in which the singular
-    values are returned is not guaranteed.
-
-    In the descriptions below, let ``M, N = A.shape``.
-
-    Parameters
-    ----------
-    A : sparse matrix or LinearOperator
-        Matrix to decompose.
-    k : int, optional
-        Number of singular values and singular vectors to compute.
-        Must satisfy ``1 <= k <= min(M, N) - 1``.
-        Default is 6.
-    ncv : int, optional
-        The number of Lanczos vectors generated.
-        The default is ``min(n, max(2*k + 1, 20))``.
-        If specified, must satistify ``k + 1 < ncv < min(M, N)``; ``ncv > 2*k``
-        is recommended.
-    tol : float, optional
-        Tolerance for singular values. Zero (default) means machine precision.
-    which : {'LM', 'SM'}
-        Which `k` singular values to find: either the largest magnitude ('LM')
-        or smallest magnitude ('SM') singular values.
-    v0 : ndarray, optional
-        The starting vector for iteration:
-        an (approximate) left singular vector if ``N > M`` and a right singular
-        vector otherwise. Must be of length ``min(M, N)``.
-        Default: random
-    maxiter : int, optional
-        Maximum number of Arnoldi update iterations allowed;
-        default is ``min(M, N) * 10``.
-    return_singular_vectors : {True, False, "u", "vh"}
-        Singular values are always computed and returned; this parameter
-        controls the computation and return of singular vectors.
-
-        - ``True``: return singular vectors.
-        - ``False``: do not return singular vectors.
-        - ``"u"``: if ``M <= N``, compute only the left singular vectors and
-          return ``None`` for the right singular vectors. Otherwise, compute
-          all singular vectors.
-        - ``"vh"``: if ``M > N``, compute only the right singular vectors and
-          return ``None`` for the left singular vectors. Otherwise, compute
-          all singular vectors.
-
-    solver :  {'arpack', 'propack', 'lobpcg'}, optional
-            This is the solver-specific documentation for ``solver='arpack'``.
-            :ref:`'lobpcg' ` and
-            :ref:`'propack' `
-            are also supported.
-    random_state : {None, int, `numpy.random.Generator`,
-                    `numpy.random.RandomState`}, optional
-
-        Pseudorandom number generator state used to generate resamples.
-
-        If `random_state` is ``None`` (or `np.random`), the
-        `numpy.random.RandomState` singleton is used.
-        If `random_state` is an int, a new ``RandomState`` instance is used,
-        seeded with `random_state`.
-        If `random_state` is already a ``Generator`` or ``RandomState``
-        instance then that instance is used.
-    options : dict, optional
-        A dictionary of solver-specific options. No solver-specific options
-        are currently supported; this parameter is reserved for future use.
-
-    Returns
-    -------
-    u : ndarray, shape=(M, k)
-        Unitary matrix having left singular vectors as columns.
-    s : ndarray, shape=(k,)
-        The singular values.
-    vh : ndarray, shape=(k, N)
-        Unitary matrix having right singular vectors as rows.
-
-    Notes
-    -----
-    This is a naive implementation using ARPACK as an eigensolver
-    on ``A.conj().T @ A`` or ``A @ A.conj().T``, depending on which one is more
-    efficient.
-
-    Examples
-    --------
-    Construct a matrix ``A`` from singular values and vectors.
-
-    >>> import numpy as np
-    >>> from scipy.stats import ortho_group
-    >>> from scipy.sparse import csc_matrix, diags
-    >>> from scipy.sparse.linalg import svds
-    >>> rng = np.random.default_rng()
-    >>> orthogonal = csc_matrix(ortho_group.rvs(10, random_state=rng))
-    >>> s = [0.0001, 0.001, 3, 4, 5]  # singular values
-    >>> u = orthogonal[:, :5]         # left singular vectors
-    >>> vT = orthogonal[:, 5:].T      # right singular vectors
-    >>> A = u @ diags(s) @ vT
-
-    With only three singular values/vectors, the SVD approximates the original
-    matrix.
-
-    >>> u2, s2, vT2 = svds(A, k=3, solver='arpack')
-    >>> A2 = u2 @ np.diag(s2) @ vT2
-    >>> np.allclose(A2, A.toarray(), atol=1e-3)
-    True
-
-    With all five singular values/vectors, we can reproduce the original
-    matrix.
-
-    >>> u3, s3, vT3 = svds(A, k=5, solver='arpack')
-    >>> A3 = u3 @ np.diag(s3) @ vT3
-    >>> np.allclose(A3, A.toarray())
-    True
-
-    The singular values match the expected singular values, and the singular
-    vectors are as expected up to a difference in sign.
-
-    >>> (np.allclose(s3, s) and
-    ...  np.allclose(np.abs(u3), np.abs(u.toarray())) and
-    ...  np.allclose(np.abs(vT3), np.abs(vT.toarray())))
-    True
-
-    The singular vectors are also orthogonal.
-
-    >>> (np.allclose(u3.T @ u3, np.eye(5)) and
-    ...  np.allclose(vT3 @ vT3.T, np.eye(5)))
-    True
-    """
-    pass
-
-
-def _svds_lobpcg_doc(A, k=6, ncv=None, tol=0, which='LM', v0=None,
-                     maxiter=None, return_singular_vectors=True,
-                     solver='lobpcg', random_state=None):
-    """
-    Partial singular value decomposition of a sparse matrix using LOBPCG.
-
-    Compute the largest or smallest `k` singular values and corresponding
-    singular vectors of a sparse matrix `A`. The order in which the singular
-    values are returned is not guaranteed.
-
-    In the descriptions below, let ``M, N = A.shape``.
-
-    Parameters
-    ----------
-    A : sparse matrix or LinearOperator
-        Matrix to decompose.
-    k : int, default: 6
-        Number of singular values and singular vectors to compute.
-        Must satisfy ``1 <= k <= min(M, N) - 1``.
-    ncv : int, optional
-        Ignored.
-    tol : float, optional
-        Tolerance for singular values. Zero (default) means machine precision.
-    which : {'LM', 'SM'}
-        Which `k` singular values to find: either the largest magnitude ('LM')
-        or smallest magnitude ('SM') singular values.
-    v0 : ndarray, optional
-        If `k` is 1, the starting vector for iteration:
-        an (approximate) left singular vector if ``N > M`` and a right singular
-        vector otherwise. Must be of length ``min(M, N)``.
-        Ignored otherwise.
-        Default: random
-    maxiter : int, default: 20
-        Maximum number of iterations.
-    return_singular_vectors : {True, False, "u", "vh"}
-        Singular values are always computed and returned; this parameter
-        controls the computation and return of singular vectors.
-
-        - ``True``: return singular vectors.
-        - ``False``: do not return singular vectors.
-        - ``"u"``: if ``M <= N``, compute only the left singular vectors and
-          return ``None`` for the right singular vectors. Otherwise, compute
-          all singular vectors.
-        - ``"vh"``: if ``M > N``, compute only the right singular vectors and
-          return ``None`` for the left singular vectors. Otherwise, compute
-          all singular vectors.
-
-    solver :  {'arpack', 'propack', 'lobpcg'}, optional
-            This is the solver-specific documentation for ``solver='lobpcg'``.
-            :ref:`'arpack' ` and
-            :ref:`'propack' `
-            are also supported.
-    random_state : {None, int, `numpy.random.Generator`,
-                    `numpy.random.RandomState`}, optional
-
-        Pseudorandom number generator state used to generate resamples.
-
-        If `random_state` is ``None`` (or `np.random`), the
-        `numpy.random.RandomState` singleton is used.
-        If `random_state` is an int, a new ``RandomState`` instance is used,
-        seeded with `random_state`.
-        If `random_state` is already a ``Generator`` or ``RandomState``
-        instance then that instance is used.
-    options : dict, optional
-        A dictionary of solver-specific options. No solver-specific options
-        are currently supported; this parameter is reserved for future use.
-
-    Returns
-    -------
-    u : ndarray, shape=(M, k)
-        Unitary matrix having left singular vectors as columns.
-    s : ndarray, shape=(k,)
-        The singular values.
-    vh : ndarray, shape=(k, N)
-        Unitary matrix having right singular vectors as rows.
-
-    Notes
-    -----
-    This is a naive implementation using LOBPCG as an eigensolver
-    on ``A.conj().T @ A`` or ``A @ A.conj().T``, depending on which one is more
-    efficient.
-
-    Examples
-    --------
-    Construct a matrix ``A`` from singular values and vectors.
-
-    >>> import numpy as np
-    >>> from scipy.stats import ortho_group
-    >>> from scipy.sparse import csc_matrix, diags
-    >>> from scipy.sparse.linalg import svds
-    >>> rng = np.random.default_rng()
-    >>> orthogonal = csc_matrix(ortho_group.rvs(10, random_state=rng))
-    >>> s = [0.0001, 0.001, 3, 4, 5]  # singular values
-    >>> u = orthogonal[:, :5]         # left singular vectors
-    >>> vT = orthogonal[:, 5:].T      # right singular vectors
-    >>> A = u @ diags(s) @ vT
-
-    With only three singular values/vectors, the SVD approximates the original
-    matrix.
-
-    >>> u2, s2, vT2 = svds(A, k=3, solver='lobpcg')
-    >>> A2 = u2 @ np.diag(s2) @ vT2
-    >>> np.allclose(A2, A.toarray(), atol=1e-3)
-    True
-
-    With all five singular values/vectors, we can reproduce the original
-    matrix.
-
-    >>> u3, s3, vT3 = svds(A, k=5, solver='lobpcg')
-    >>> A3 = u3 @ np.diag(s3) @ vT3
-    >>> np.allclose(A3, A.toarray())
-    True
-
-    The singular values match the expected singular values, and the singular
-    vectors are as expected up to a difference in sign.
-
-    >>> (np.allclose(s3, s) and
-    ...  np.allclose(np.abs(u3), np.abs(u.todense())) and
-    ...  np.allclose(np.abs(vT3), np.abs(vT.todense())))
-    True
-
-    The singular vectors are also orthogonal.
-
-    >>> (np.allclose(u3.T @ u3, np.eye(5)) and
-    ...  np.allclose(vT3 @ vT3.T, np.eye(5)))
-    True
-
-    """
-    pass
-
-
-def _svds_propack_doc(A, k=6, ncv=None, tol=0, which='LM', v0=None,
-                      maxiter=None, return_singular_vectors=True,
-                      solver='propack', random_state=None):
-    """
-    Partial singular value decomposition of a sparse matrix using PROPACK.
-
-    Compute the largest or smallest `k` singular values and corresponding
-    singular vectors of a sparse matrix `A`. The order in which the singular
-    values are returned is not guaranteed.
-
-    In the descriptions below, let ``M, N = A.shape``.
-
-    Parameters
-    ----------
-    A : sparse matrix or LinearOperator
-        Matrix to decompose. If `A` is a ``LinearOperator``
-        object, it must define both ``matvec`` and ``rmatvec`` methods.
-    k : int, default: 6
-        Number of singular values and singular vectors to compute.
-        Must satisfy ``1 <= k <= min(M, N)``.
-    ncv : int, optional
-        Ignored.
-    tol : float, optional
-        The desired relative accuracy for computed singular values.
-        Zero (default) means machine precision.
-    which : {'LM', 'SM'}
-        Which `k` singular values to find: either the largest magnitude ('LM')
-        or smallest magnitude ('SM') singular values. Note that choosing
-        ``which='SM'`` will force the ``irl`` option to be set ``True``.
-    v0 : ndarray, optional
-        Starting vector for iterations: must be of length ``A.shape[0]``.
-        If not specified, PROPACK will generate a starting vector.
-    maxiter : int, optional
-        Maximum number of iterations / maximal dimension of the Krylov
-        subspace. Default is ``10 * k``.
-    return_singular_vectors : {True, False, "u", "vh"}
-        Singular values are always computed and returned; this parameter
-        controls the computation and return of singular vectors.
-
-        - ``True``: return singular vectors.
-        - ``False``: do not return singular vectors.
-        - ``"u"``: compute only the left singular vectors; return ``None`` for
-          the right singular vectors.
-        - ``"vh"``: compute only the right singular vectors; return ``None``
-          for the left singular vectors.
-
-    solver :  {'arpack', 'propack', 'lobpcg'}, optional
-            This is the solver-specific documentation for ``solver='propack'``.
-            :ref:`'arpack' ` and
-            :ref:`'lobpcg' `
-            are also supported.
-    random_state : {None, int, `numpy.random.Generator`,
-                    `numpy.random.RandomState`}, optional
-
-        Pseudorandom number generator state used to generate resamples.
-
-        If `random_state` is ``None`` (or `np.random`), the
-        `numpy.random.RandomState` singleton is used.
-        If `random_state` is an int, a new ``RandomState`` instance is used,
-        seeded with `random_state`.
-        If `random_state` is already a ``Generator`` or ``RandomState``
-        instance then that instance is used.
-    options : dict, optional
-        A dictionary of solver-specific options. No solver-specific options
-        are currently supported; this parameter is reserved for future use.
-
-    Returns
-    -------
-    u : ndarray, shape=(M, k)
-        Unitary matrix having left singular vectors as columns.
-    s : ndarray, shape=(k,)
-        The singular values.
-    vh : ndarray, shape=(k, N)
-        Unitary matrix having right singular vectors as rows.
-
-    Notes
-    -----
-    This is an interface to the Fortran library PROPACK [1]_.
-    The current default is to run with IRL mode disabled unless seeking the
-    smallest singular values/vectors (``which='SM'``).
-
-    References
-    ----------
-
-    .. [1] Larsen, Rasmus Munk. "PROPACK-Software for large and sparse SVD
-       calculations." Available online. URL
-       http://sun.stanford.edu/~rmunk/PROPACK (2004): 2008-2009.
-
-    Examples
-    --------
-    Construct a matrix ``A`` from singular values and vectors.
-
-    >>> import numpy as np
-    >>> from scipy.stats import ortho_group
-    >>> from scipy.sparse import csc_matrix, diags
-    >>> from scipy.sparse.linalg import svds
-    >>> rng = np.random.default_rng()
-    >>> orthogonal = csc_matrix(ortho_group.rvs(10, random_state=rng))
-    >>> s = [0.0001, 0.001, 3, 4, 5]  # singular values
-    >>> u = orthogonal[:, :5]         # left singular vectors
-    >>> vT = orthogonal[:, 5:].T      # right singular vectors
-    >>> A = u @ diags(s) @ vT
-
-    With only three singular values/vectors, the SVD approximates the original
-    matrix.
-
-    >>> u2, s2, vT2 = svds(A, k=3, solver='propack')
-    >>> A2 = u2 @ np.diag(s2) @ vT2
-    >>> np.allclose(A2, A.todense(), atol=1e-3)
-    True
-
-    With all five singular values/vectors, we can reproduce the original
-    matrix.
-
-    >>> u3, s3, vT3 = svds(A, k=5, solver='propack')
-    >>> A3 = u3 @ np.diag(s3) @ vT3
-    >>> np.allclose(A3, A.todense())
-    True
-
-    The singular values match the expected singular values, and the singular
-    vectors are as expected up to a difference in sign.
-
-    >>> (np.allclose(s3, s) and
-    ...  np.allclose(np.abs(u3), np.abs(u.toarray())) and
-    ...  np.allclose(np.abs(vT3), np.abs(vT.toarray())))
-    True
-
-    The singular vectors are also orthogonal.
-
-    >>> (np.allclose(u3.T @ u3, np.eye(5)) and
-    ...  np.allclose(vT3 @ vT3.T, np.eye(5)))
-    True
-
-    """
-    pass
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/COPYING b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/COPYING
deleted file mode 100644
index e87667e1b8c178e53c6a7c6268ebc09ab4b0476c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/COPYING
+++ /dev/null
@@ -1,45 +0,0 @@
-
-BSD Software License
-
-Pertains to ARPACK and P_ARPACK
-
-Copyright (c) 1996-2008 Rice University.
-Developed by D.C. Sorensen, R.B. Lehoucq, C. Yang, and K. Maschhoff.
-All rights reserved.
-
-Arpack has been renamed to arpack-ng.
-
-Copyright (c) 2001-2011 - Scilab Enterprises
-Updated by Allan Cornet, Sylvestre Ledru.
-
-Copyright (c) 2010 - Jordi Gutiérrez Hermoso (Octave patch)
-
-Copyright (c) 2007 - Sébastien Fabbro (gentoo patch)
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-- Redistributions of source code must retain the above copyright
-  notice, this list of conditions and the following disclaimer.
-
-- Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer listed
-  in this license in the documentation and/or other materials
-  provided with the distribution.
-
-- Neither the name of the copyright holders nor the names of its
-  contributors may be used to endorse or promote products derived from
-  this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/__init__.py
deleted file mode 100644
index 679b94480d7ff5a11e037ffb758f2214c6e5097f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/__init__.py
+++ /dev/null
@@ -1,20 +0,0 @@
-"""
-Eigenvalue solver using iterative methods.
-
-Find k eigenvectors and eigenvalues of a matrix A using the
-Arnoldi/Lanczos iterative methods from ARPACK [1]_,[2]_.
-
-These methods are most useful for large sparse matrices.
-
-  - eigs(A,k)
-  - eigsh(A,k)
-
-References
-----------
-.. [1] ARPACK Software, http://www.caam.rice.edu/software/ARPACK/
-.. [2] R. B. Lehoucq, D. C. Sorensen, and C. Yang,  ARPACK USERS GUIDE:
-   Solution of Large Scale Eigenvalue Problems by Implicitly Restarted
-   Arnoldi Methods. SIAM, Philadelphia, PA, 1998.
-
-"""
-from .arpack import *
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 8067bd2665833f1adfa409f32219cf378d4e6489..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/__pycache__/arpack.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/__pycache__/arpack.cpython-310.pyc
deleted file mode 100644
index f8e4b11792bf92393294e18289a7fbdc81aa50a3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/__pycache__/arpack.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/arpack.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/arpack.py
deleted file mode 100644
index f7a6fa218ca462212f1ed8a2fc0bd0037cf9d44b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/arpack.py
+++ /dev/null
@@ -1,1702 +0,0 @@
-"""
-Find a few eigenvectors and eigenvalues of a matrix.
-
-
-Uses ARPACK: https://github.com/opencollab/arpack-ng
-
-"""
-# Wrapper implementation notes
-#
-# ARPACK Entry Points
-# -------------------
-# The entry points to ARPACK are
-# - (s,d)seupd : single and double precision symmetric matrix
-# - (s,d,c,z)neupd: single,double,complex,double complex general matrix
-# This wrapper puts the *neupd (general matrix) interfaces in eigs()
-# and the *seupd (symmetric matrix) in eigsh().
-# There is no specialized interface for complex Hermitian matrices.
-# To find eigenvalues of a complex Hermitian matrix you
-# may use eigsh(), but eigsh() will simply call eigs()
-# and return the real part of the eigenvalues thus obtained.
-
-# Number of eigenvalues returned and complex eigenvalues
-# ------------------------------------------------------
-# The ARPACK nonsymmetric real and double interface (s,d)naupd return
-# eigenvalues and eigenvectors in real (float,double) arrays.
-# Since the eigenvalues and eigenvectors are, in general, complex
-# ARPACK puts the real and imaginary parts in consecutive entries
-# in real-valued arrays.   This wrapper puts the real entries
-# into complex data types and attempts to return the requested eigenvalues
-# and eigenvectors.
-
-
-# Solver modes
-# ------------
-# ARPACK and handle shifted and shift-inverse computations
-# for eigenvalues by providing a shift (sigma) and a solver.
-
-import numpy as np
-import warnings
-from scipy.sparse.linalg._interface import aslinearoperator, LinearOperator
-from scipy.sparse import eye, issparse
-from scipy.linalg import eig, eigh, lu_factor, lu_solve
-from scipy.sparse._sputils import isdense, is_pydata_spmatrix
-from scipy.sparse.linalg import gmres, splu
-from scipy._lib._util import _aligned_zeros
-from scipy._lib._threadsafety import ReentrancyLock
-
-from . import _arpack
-arpack_int = _arpack.timing.nbx.dtype
-
-__docformat__ = "restructuredtext en"
-
-__all__ = ['eigs', 'eigsh', 'ArpackError', 'ArpackNoConvergence']
-
-
-_type_conv = {'f': 's', 'd': 'd', 'F': 'c', 'D': 'z'}
-_ndigits = {'f': 5, 'd': 12, 'F': 5, 'D': 12}
-
-DNAUPD_ERRORS = {
-    0: "Normal exit.",
-    1: "Maximum number of iterations taken. "
-       "All possible eigenvalues of OP has been found. IPARAM(5) "
-       "returns the number of wanted converged Ritz values.",
-    2: "No longer an informational error. Deprecated starting "
-       "with release 2 of ARPACK.",
-    3: "No shifts could be applied during a cycle of the "
-       "Implicitly restarted Arnoldi iteration. One possibility "
-       "is to increase the size of NCV relative to NEV. ",
-    -1: "N must be positive.",
-    -2: "NEV must be positive.",
-    -3: "NCV-NEV >= 2 and less than or equal to N.",
-    -4: "The maximum number of Arnoldi update iterations allowed "
-        "must be greater than zero.",
-    -5: " WHICH must be one of 'LM', 'SM', 'LR', 'SR', 'LI', 'SI'",
-    -6: "BMAT must be one of 'I' or 'G'.",
-    -7: "Length of private work array WORKL is not sufficient.",
-    -8: "Error return from LAPACK eigenvalue calculation;",
-    -9: "Starting vector is zero.",
-    -10: "IPARAM(7) must be 1,2,3,4.",
-    -11: "IPARAM(7) = 1 and BMAT = 'G' are incompatible.",
-    -12: "IPARAM(1) must be equal to 0 or 1.",
-    -13: "NEV and WHICH = 'BE' are incompatible.",
-    -9999: "Could not build an Arnoldi factorization. "
-           "IPARAM(5) returns the size of the current Arnoldi "
-           "factorization. The user is advised to check that "
-           "enough workspace and array storage has been allocated."
-}
-
-SNAUPD_ERRORS = DNAUPD_ERRORS
-
-ZNAUPD_ERRORS = DNAUPD_ERRORS.copy()
-ZNAUPD_ERRORS[-10] = "IPARAM(7) must be 1,2,3."
-
-CNAUPD_ERRORS = ZNAUPD_ERRORS
-
-DSAUPD_ERRORS = {
-    0: "Normal exit.",
-    1: "Maximum number of iterations taken. "
-       "All possible eigenvalues of OP has been found.",
-    2: "No longer an informational error. Deprecated starting with "
-       "release 2 of ARPACK.",
-    3: "No shifts could be applied during a cycle of the Implicitly "
-       "restarted Arnoldi iteration. One possibility is to increase "
-       "the size of NCV relative to NEV. ",
-    -1: "N must be positive.",
-    -2: "NEV must be positive.",
-    -3: "NCV must be greater than NEV and less than or equal to N.",
-    -4: "The maximum number of Arnoldi update iterations allowed "
-        "must be greater than zero.",
-    -5: "WHICH must be one of 'LM', 'SM', 'LA', 'SA' or 'BE'.",
-    -6: "BMAT must be one of 'I' or 'G'.",
-    -7: "Length of private work array WORKL is not sufficient.",
-    -8: "Error return from trid. eigenvalue calculation; "
-        "Informational error from LAPACK routine dsteqr .",
-    -9: "Starting vector is zero.",
-    -10: "IPARAM(7) must be 1,2,3,4,5.",
-    -11: "IPARAM(7) = 1 and BMAT = 'G' are incompatible.",
-    -12: "IPARAM(1) must be equal to 0 or 1.",
-    -13: "NEV and WHICH = 'BE' are incompatible. ",
-    -9999: "Could not build an Arnoldi factorization. "
-           "IPARAM(5) returns the size of the current Arnoldi "
-           "factorization. The user is advised to check that "
-           "enough workspace and array storage has been allocated.",
-}
-
-SSAUPD_ERRORS = DSAUPD_ERRORS
-
-DNEUPD_ERRORS = {
-    0: "Normal exit.",
-    1: "The Schur form computed by LAPACK routine dlahqr "
-       "could not be reordered by LAPACK routine dtrsen. "
-       "Re-enter subroutine dneupd  with IPARAM(5)NCV and "
-       "increase the size of the arrays DR and DI to have "
-       "dimension at least dimension NCV and allocate at least NCV "
-       "columns for Z. NOTE: Not necessary if Z and V share "
-       "the same space. Please notify the authors if this error"
-       "occurs.",
-    -1: "N must be positive.",
-    -2: "NEV must be positive.",
-    -3: "NCV-NEV >= 2 and less than or equal to N.",
-    -5: "WHICH must be one of 'LM', 'SM', 'LR', 'SR', 'LI', 'SI'",
-    -6: "BMAT must be one of 'I' or 'G'.",
-    -7: "Length of private work WORKL array is not sufficient.",
-    -8: "Error return from calculation of a real Schur form. "
-        "Informational error from LAPACK routine dlahqr .",
-    -9: "Error return from calculation of eigenvectors. "
-        "Informational error from LAPACK routine dtrevc.",
-    -10: "IPARAM(7) must be 1,2,3,4.",
-    -11: "IPARAM(7) = 1 and BMAT = 'G' are incompatible.",
-    -12: "HOWMNY = 'S' not yet implemented",
-    -13: "HOWMNY must be one of 'A' or 'P' if RVEC = .true.",
-    -14: "DNAUPD  did not find any eigenvalues to sufficient "
-         "accuracy.",
-    -15: "DNEUPD got a different count of the number of converged "
-         "Ritz values than DNAUPD got.  This indicates the user "
-         "probably made an error in passing data from DNAUPD to "
-         "DNEUPD or that the data was modified before entering "
-         "DNEUPD",
-}
-
-SNEUPD_ERRORS = DNEUPD_ERRORS.copy()
-SNEUPD_ERRORS[1] = ("The Schur form computed by LAPACK routine slahqr "
-                    "could not be reordered by LAPACK routine strsen . "
-                    "Re-enter subroutine dneupd  with IPARAM(5)=NCV and "
-                    "increase the size of the arrays DR and DI to have "
-                    "dimension at least dimension NCV and allocate at least "
-                    "NCV columns for Z. NOTE: Not necessary if Z and V share "
-                    "the same space. Please notify the authors if this error "
-                    "occurs.")
-SNEUPD_ERRORS[-14] = ("SNAUPD did not find any eigenvalues to sufficient "
-                      "accuracy.")
-SNEUPD_ERRORS[-15] = ("SNEUPD got a different count of the number of "
-                      "converged Ritz values than SNAUPD got.  This indicates "
-                      "the user probably made an error in passing data from "
-                      "SNAUPD to SNEUPD or that the data was modified before "
-                      "entering SNEUPD")
-
-ZNEUPD_ERRORS = {0: "Normal exit.",
-                 1: "The Schur form computed by LAPACK routine csheqr "
-                    "could not be reordered by LAPACK routine ztrsen. "
-                    "Re-enter subroutine zneupd with IPARAM(5)=NCV and "
-                    "increase the size of the array D to have "
-                    "dimension at least dimension NCV and allocate at least "
-                    "NCV columns for Z. NOTE: Not necessary if Z and V share "
-                    "the same space. Please notify the authors if this error "
-                    "occurs.",
-                 -1: "N must be positive.",
-                 -2: "NEV must be positive.",
-                 -3: "NCV-NEV >= 1 and less than or equal to N.",
-                 -5: "WHICH must be one of 'LM', 'SM', 'LR', 'SR', 'LI', 'SI'",
-                 -6: "BMAT must be one of 'I' or 'G'.",
-                 -7: "Length of private work WORKL array is not sufficient.",
-                 -8: "Error return from LAPACK eigenvalue calculation. "
-                     "This should never happened.",
-                 -9: "Error return from calculation of eigenvectors. "
-                     "Informational error from LAPACK routine ztrevc.",
-                 -10: "IPARAM(7) must be 1,2,3",
-                 -11: "IPARAM(7) = 1 and BMAT = 'G' are incompatible.",
-                 -12: "HOWMNY = 'S' not yet implemented",
-                 -13: "HOWMNY must be one of 'A' or 'P' if RVEC = .true.",
-                 -14: "ZNAUPD did not find any eigenvalues to sufficient "
-                      "accuracy.",
-                 -15: "ZNEUPD got a different count of the number of "
-                      "converged Ritz values than ZNAUPD got.  This "
-                      "indicates the user probably made an error in passing "
-                      "data from ZNAUPD to ZNEUPD or that the data was "
-                      "modified before entering ZNEUPD"
-                 }
-
-CNEUPD_ERRORS = ZNEUPD_ERRORS.copy()
-CNEUPD_ERRORS[-14] = ("CNAUPD did not find any eigenvalues to sufficient "
-                      "accuracy.")
-CNEUPD_ERRORS[-15] = ("CNEUPD got a different count of the number of "
-                      "converged Ritz values than CNAUPD got.  This indicates "
-                      "the user probably made an error in passing data from "
-                      "CNAUPD to CNEUPD or that the data was modified before "
-                      "entering CNEUPD")
-
-DSEUPD_ERRORS = {
-    0: "Normal exit.",
-    -1: "N must be positive.",
-    -2: "NEV must be positive.",
-    -3: "NCV must be greater than NEV and less than or equal to N.",
-    -5: "WHICH must be one of 'LM', 'SM', 'LA', 'SA' or 'BE'.",
-    -6: "BMAT must be one of 'I' or 'G'.",
-    -7: "Length of private work WORKL array is not sufficient.",
-    -8: ("Error return from trid. eigenvalue calculation; "
-         "Information error from LAPACK routine dsteqr."),
-    -9: "Starting vector is zero.",
-    -10: "IPARAM(7) must be 1,2,3,4,5.",
-    -11: "IPARAM(7) = 1 and BMAT = 'G' are incompatible.",
-    -12: "NEV and WHICH = 'BE' are incompatible.",
-    -14: "DSAUPD  did not find any eigenvalues to sufficient accuracy.",
-    -15: "HOWMNY must be one of 'A' or 'S' if RVEC = .true.",
-    -16: "HOWMNY = 'S' not yet implemented",
-    -17: ("DSEUPD  got a different count of the number of converged "
-          "Ritz values than DSAUPD  got.  This indicates the user "
-          "probably made an error in passing data from DSAUPD  to "
-          "DSEUPD  or that the data was modified before entering  "
-          "DSEUPD.")
-}
-
-SSEUPD_ERRORS = DSEUPD_ERRORS.copy()
-SSEUPD_ERRORS[-14] = ("SSAUPD  did not find any eigenvalues "
-                      "to sufficient accuracy.")
-SSEUPD_ERRORS[-17] = ("SSEUPD  got a different count of the number of "
-                      "converged "
-                      "Ritz values than SSAUPD  got.  This indicates the user "
-                      "probably made an error in passing data from SSAUPD  to "
-                      "SSEUPD  or that the data was modified before entering  "
-                      "SSEUPD.")
-
-_SAUPD_ERRORS = {'d': DSAUPD_ERRORS,
-                 's': SSAUPD_ERRORS}
-_NAUPD_ERRORS = {'d': DNAUPD_ERRORS,
-                 's': SNAUPD_ERRORS,
-                 'z': ZNAUPD_ERRORS,
-                 'c': CNAUPD_ERRORS}
-_SEUPD_ERRORS = {'d': DSEUPD_ERRORS,
-                 's': SSEUPD_ERRORS}
-_NEUPD_ERRORS = {'d': DNEUPD_ERRORS,
-                 's': SNEUPD_ERRORS,
-                 'z': ZNEUPD_ERRORS,
-                 'c': CNEUPD_ERRORS}
-
-# accepted values of parameter WHICH in _SEUPD
-_SEUPD_WHICH = ['LM', 'SM', 'LA', 'SA', 'BE']
-
-# accepted values of parameter WHICH in _NAUPD
-_NEUPD_WHICH = ['LM', 'SM', 'LR', 'SR', 'LI', 'SI']
-
-
-class ArpackError(RuntimeError):
-    """
-    ARPACK error
-    """
-
-    def __init__(self, info, infodict=_NAUPD_ERRORS):
-        msg = infodict.get(info, "Unknown error")
-        RuntimeError.__init__(self, "ARPACK error %d: %s" % (info, msg))
-
-
-class ArpackNoConvergence(ArpackError):
-    """
-    ARPACK iteration did not converge
-
-    Attributes
-    ----------
-    eigenvalues : ndarray
-        Partial result. Converged eigenvalues.
-    eigenvectors : ndarray
-        Partial result. Converged eigenvectors.
-
-    """
-
-    def __init__(self, msg, eigenvalues, eigenvectors):
-        ArpackError.__init__(self, -1, {-1: msg})
-        self.eigenvalues = eigenvalues
-        self.eigenvectors = eigenvectors
-
-
-def choose_ncv(k):
-    """
-    Choose number of lanczos vectors based on target number
-    of singular/eigen values and vectors to compute, k.
-    """
-    return max(2 * k + 1, 20)
-
-
-class _ArpackParams:
-    def __init__(self, n, k, tp, mode=1, sigma=None,
-                 ncv=None, v0=None, maxiter=None, which="LM", tol=0):
-        if k <= 0:
-            raise ValueError("k must be positive, k=%d" % k)
-
-        if maxiter is None:
-            maxiter = n * 10
-        if maxiter <= 0:
-            raise ValueError("maxiter must be positive, maxiter=%d" % maxiter)
-
-        if tp not in 'fdFD':
-            raise ValueError("matrix type must be 'f', 'd', 'F', or 'D'")
-
-        if v0 is not None:
-            # ARPACK overwrites its initial resid,  make a copy
-            self.resid = np.array(v0, copy=True)
-            info = 1
-        else:
-            # ARPACK will use a random initial vector.
-            self.resid = np.zeros(n, tp)
-            info = 0
-
-        if sigma is None:
-            #sigma not used
-            self.sigma = 0
-        else:
-            self.sigma = sigma
-
-        if ncv is None:
-            ncv = choose_ncv(k)
-        ncv = min(ncv, n)
-
-        self.v = np.zeros((n, ncv), tp)  # holds Ritz vectors
-        self.iparam = np.zeros(11, arpack_int)
-
-        # set solver mode and parameters
-        ishfts = 1
-        self.mode = mode
-        self.iparam[0] = ishfts
-        self.iparam[2] = maxiter
-        self.iparam[3] = 1
-        self.iparam[6] = mode
-
-        self.n = n
-        self.tol = tol
-        self.k = k
-        self.maxiter = maxiter
-        self.ncv = ncv
-        self.which = which
-        self.tp = tp
-        self.info = info
-
-        self.converged = False
-        self.ido = 0
-
-    def _raise_no_convergence(self):
-        msg = "No convergence (%d iterations, %d/%d eigenvectors converged)"
-        k_ok = self.iparam[4]
-        num_iter = self.iparam[2]
-        try:
-            ev, vec = self.extract(True)
-        except ArpackError as err:
-            msg = f"{msg} [{err}]"
-            ev = np.zeros((0,))
-            vec = np.zeros((self.n, 0))
-            k_ok = 0
-        raise ArpackNoConvergence(msg % (num_iter, k_ok, self.k), ev, vec)
-
-
-class _SymmetricArpackParams(_ArpackParams):
-    def __init__(self, n, k, tp, matvec, mode=1, M_matvec=None,
-                 Minv_matvec=None, sigma=None,
-                 ncv=None, v0=None, maxiter=None, which="LM", tol=0):
-        # The following modes are supported:
-        #  mode = 1:
-        #    Solve the standard eigenvalue problem:
-        #      A*x = lambda*x :
-        #       A - symmetric
-        #    Arguments should be
-        #       matvec      = left multiplication by A
-        #       M_matvec    = None [not used]
-        #       Minv_matvec = None [not used]
-        #
-        #  mode = 2:
-        #    Solve the general eigenvalue problem:
-        #      A*x = lambda*M*x
-        #       A - symmetric
-        #       M - symmetric positive definite
-        #    Arguments should be
-        #       matvec      = left multiplication by A
-        #       M_matvec    = left multiplication by M
-        #       Minv_matvec = left multiplication by M^-1
-        #
-        #  mode = 3:
-        #    Solve the general eigenvalue problem in shift-invert mode:
-        #      A*x = lambda*M*x
-        #       A - symmetric
-        #       M - symmetric positive semi-definite
-        #    Arguments should be
-        #       matvec      = None [not used]
-        #       M_matvec    = left multiplication by M
-        #                     or None, if M is the identity
-        #       Minv_matvec = left multiplication by [A-sigma*M]^-1
-        #
-        #  mode = 4:
-        #    Solve the general eigenvalue problem in Buckling mode:
-        #      A*x = lambda*AG*x
-        #       A  - symmetric positive semi-definite
-        #       AG - symmetric indefinite
-        #    Arguments should be
-        #       matvec      = left multiplication by A
-        #       M_matvec    = None [not used]
-        #       Minv_matvec = left multiplication by [A-sigma*AG]^-1
-        #
-        #  mode = 5:
-        #    Solve the general eigenvalue problem in Cayley-transformed mode:
-        #      A*x = lambda*M*x
-        #       A - symmetric
-        #       M - symmetric positive semi-definite
-        #    Arguments should be
-        #       matvec      = left multiplication by A
-        #       M_matvec    = left multiplication by M
-        #                     or None, if M is the identity
-        #       Minv_matvec = left multiplication by [A-sigma*M]^-1
-        if mode == 1:
-            if matvec is None:
-                raise ValueError("matvec must be specified for mode=1")
-            if M_matvec is not None:
-                raise ValueError("M_matvec cannot be specified for mode=1")
-            if Minv_matvec is not None:
-                raise ValueError("Minv_matvec cannot be specified for mode=1")
-
-            self.OP = matvec
-            self.B = lambda x: x
-            self.bmat = 'I'
-        elif mode == 2:
-            if matvec is None:
-                raise ValueError("matvec must be specified for mode=2")
-            if M_matvec is None:
-                raise ValueError("M_matvec must be specified for mode=2")
-            if Minv_matvec is None:
-                raise ValueError("Minv_matvec must be specified for mode=2")
-
-            self.OP = lambda x: Minv_matvec(matvec(x))
-            self.OPa = Minv_matvec
-            self.OPb = matvec
-            self.B = M_matvec
-            self.bmat = 'G'
-        elif mode == 3:
-            if matvec is not None:
-                raise ValueError("matvec must not be specified for mode=3")
-            if Minv_matvec is None:
-                raise ValueError("Minv_matvec must be specified for mode=3")
-
-            if M_matvec is None:
-                self.OP = Minv_matvec
-                self.OPa = Minv_matvec
-                self.B = lambda x: x
-                self.bmat = 'I'
-            else:
-                self.OP = lambda x: Minv_matvec(M_matvec(x))
-                self.OPa = Minv_matvec
-                self.B = M_matvec
-                self.bmat = 'G'
-        elif mode == 4:
-            if matvec is None:
-                raise ValueError("matvec must be specified for mode=4")
-            if M_matvec is not None:
-                raise ValueError("M_matvec must not be specified for mode=4")
-            if Minv_matvec is None:
-                raise ValueError("Minv_matvec must be specified for mode=4")
-            self.OPa = Minv_matvec
-            self.OP = lambda x: self.OPa(matvec(x))
-            self.B = matvec
-            self.bmat = 'G'
-        elif mode == 5:
-            if matvec is None:
-                raise ValueError("matvec must be specified for mode=5")
-            if Minv_matvec is None:
-                raise ValueError("Minv_matvec must be specified for mode=5")
-
-            self.OPa = Minv_matvec
-            self.A_matvec = matvec
-
-            if M_matvec is None:
-                self.OP = lambda x: Minv_matvec(matvec(x) + sigma * x)
-                self.B = lambda x: x
-                self.bmat = 'I'
-            else:
-                self.OP = lambda x: Minv_matvec(matvec(x)
-                                                + sigma * M_matvec(x))
-                self.B = M_matvec
-                self.bmat = 'G'
-        else:
-            raise ValueError("mode=%i not implemented" % mode)
-
-        if which not in _SEUPD_WHICH:
-            raise ValueError("which must be one of %s"
-                             % ' '.join(_SEUPD_WHICH))
-        if k >= n:
-            raise ValueError("k must be less than ndim(A), k=%d" % k)
-
-        _ArpackParams.__init__(self, n, k, tp, mode, sigma,
-                               ncv, v0, maxiter, which, tol)
-
-        if self.ncv > n or self.ncv <= k:
-            raise ValueError("ncv must be k= n - 1:
-            raise ValueError("k must be less than ndim(A)-1, k=%d" % k)
-
-        _ArpackParams.__init__(self, n, k, tp, mode, sigma,
-                               ncv, v0, maxiter, which, tol)
-
-        if self.ncv > n or self.ncv <= k + 1:
-            raise ValueError("ncv must be k+1 k, so we'll
-                            # throw out this case.
-                            nreturned -= 1
-                    i += 1
-
-            else:
-                # real matrix, mode 3 or 4, imag(sigma) is nonzero:
-                # see remark 3 in neupd.f
-                # Build complex eigenvalues from real and imaginary parts
-                i = 0
-                while i <= k:
-                    if abs(d[i].imag) == 0:
-                        d[i] = np.dot(zr[:, i], self.matvec(zr[:, i]))
-                    else:
-                        if i < k:
-                            z[:, i] = zr[:, i] + 1.0j * zr[:, i + 1]
-                            z[:, i + 1] = z[:, i].conjugate()
-                            d[i] = ((np.dot(zr[:, i],
-                                            self.matvec(zr[:, i]))
-                                     + np.dot(zr[:, i + 1],
-                                              self.matvec(zr[:, i + 1])))
-                                    + 1j * (np.dot(zr[:, i],
-                                                   self.matvec(zr[:, i + 1]))
-                                            - np.dot(zr[:, i + 1],
-                                                     self.matvec(zr[:, i]))))
-                            d[i + 1] = d[i].conj()
-                            i += 1
-                        else:
-                            #last eigenvalue is complex: the imaginary part of
-                            # the eigenvector has not been returned
-                            #this can only happen if nreturned > k, so we'll
-                            # throw out this case.
-                            nreturned -= 1
-                    i += 1
-
-            # Now we have k+1 possible eigenvalues and eigenvectors
-            # Return the ones specified by the keyword "which"
-
-            if nreturned <= k:
-                # we got less or equal as many eigenvalues we wanted
-                d = d[:nreturned]
-                z = z[:, :nreturned]
-            else:
-                # we got one extra eigenvalue (likely a cc pair, but which?)
-                if self.mode in (1, 2):
-                    rd = d
-                elif self.mode in (3, 4):
-                    rd = 1 / (d - self.sigma)
-
-                if self.which in ['LR', 'SR']:
-                    ind = np.argsort(rd.real)
-                elif self.which in ['LI', 'SI']:
-                    # for LI,SI ARPACK returns largest,smallest
-                    # abs(imaginary) (complex pairs come together)
-                    ind = np.argsort(abs(rd.imag))
-                else:
-                    ind = np.argsort(abs(rd))
-
-                if self.which in ['LR', 'LM', 'LI']:
-                    ind = ind[-k:][::-1]
-                elif self.which in ['SR', 'SM', 'SI']:
-                    ind = ind[:k]
-
-                d = d[ind]
-                z = z[:, ind]
-        else:
-            # complex is so much simpler...
-            d, z, ierr =\
-                    self._arpack_extract(return_eigenvectors,
-                           howmny, sselect, self.sigma, workev,
-                           self.bmat, self.which, k, self.tol, self.resid,
-                           self.v, self.iparam, self.ipntr,
-                           self.workd, self.workl, self.rwork, ierr)
-
-            if ierr != 0:
-                raise ArpackError(ierr, infodict=self.extract_infodict)
-
-            k_ok = self.iparam[4]
-            d = d[:k_ok]
-            z = z[:, :k_ok]
-
-        if return_eigenvectors:
-            return d, z
-        else:
-            return d
-
-
-def _aslinearoperator_with_dtype(m):
-    m = aslinearoperator(m)
-    if not hasattr(m, 'dtype'):
-        x = np.zeros(m.shape[1])
-        m.dtype = (m * x).dtype
-    return m
-
-
-class SpLuInv(LinearOperator):
-    """
-    SpLuInv:
-       helper class to repeatedly solve M*x=b
-       using a sparse LU-decomposition of M
-    """
-
-    def __init__(self, M):
-        self.M_lu = splu(M)
-        self.shape = M.shape
-        self.dtype = M.dtype
-        self.isreal = not np.issubdtype(self.dtype, np.complexfloating)
-
-    def _matvec(self, x):
-        # careful here: splu.solve will throw away imaginary
-        # part of x if M is real
-        x = np.asarray(x)
-        if self.isreal and np.issubdtype(x.dtype, np.complexfloating):
-            return (self.M_lu.solve(np.real(x).astype(self.dtype))
-                    + 1j * self.M_lu.solve(np.imag(x).astype(self.dtype)))
-        else:
-            return self.M_lu.solve(x.astype(self.dtype))
-
-
-class LuInv(LinearOperator):
-    """
-    LuInv:
-       helper class to repeatedly solve M*x=b
-       using an LU-decomposition of M
-    """
-
-    def __init__(self, M):
-        self.M_lu = lu_factor(M)
-        self.shape = M.shape
-        self.dtype = M.dtype
-
-    def _matvec(self, x):
-        return lu_solve(self.M_lu, x)
-
-
-def gmres_loose(A, b, tol):
-    """
-    gmres with looser termination condition.
-    """
-    b = np.asarray(b)
-    min_tol = 1000 * np.sqrt(b.size) * np.finfo(b.dtype).eps
-    return gmres(A, b, rtol=max(tol, min_tol), atol=0)
-
-
-class IterInv(LinearOperator):
-    """
-    IterInv:
-       helper class to repeatedly solve M*x=b
-       using an iterative method.
-    """
-
-    def __init__(self, M, ifunc=gmres_loose, tol=0):
-        self.M = M
-        if hasattr(M, 'dtype'):
-            self.dtype = M.dtype
-        else:
-            x = np.zeros(M.shape[1])
-            self.dtype = (M * x).dtype
-        self.shape = M.shape
-
-        if tol <= 0:
-            # when tol=0, ARPACK uses machine tolerance as calculated
-            # by LAPACK's _LAMCH function.  We should match this
-            tol = 2 * np.finfo(self.dtype).eps
-        self.ifunc = ifunc
-        self.tol = tol
-
-    def _matvec(self, x):
-        b, info = self.ifunc(self.M, x, tol=self.tol)
-        if info != 0:
-            raise ValueError("Error in inverting M: function "
-                             "%s did not converge (info = %i)."
-                             % (self.ifunc.__name__, info))
-        return b
-
-
-class IterOpInv(LinearOperator):
-    """
-    IterOpInv:
-       helper class to repeatedly solve [A-sigma*M]*x = b
-       using an iterative method
-    """
-
-    def __init__(self, A, M, sigma, ifunc=gmres_loose, tol=0):
-        self.A = A
-        self.M = M
-        self.sigma = sigma
-
-        def mult_func(x):
-            return A.matvec(x) - sigma * M.matvec(x)
-
-        def mult_func_M_None(x):
-            return A.matvec(x) - sigma * x
-
-        x = np.zeros(A.shape[1])
-        if M is None:
-            dtype = mult_func_M_None(x).dtype
-            self.OP = LinearOperator(self.A.shape,
-                                     mult_func_M_None,
-                                     dtype=dtype)
-        else:
-            dtype = mult_func(x).dtype
-            self.OP = LinearOperator(self.A.shape,
-                                     mult_func,
-                                     dtype=dtype)
-        self.shape = A.shape
-
-        if tol <= 0:
-            # when tol=0, ARPACK uses machine tolerance as calculated
-            # by LAPACK's _LAMCH function.  We should match this
-            tol = 2 * np.finfo(self.OP.dtype).eps
-        self.ifunc = ifunc
-        self.tol = tol
-
-    def _matvec(self, x):
-        b, info = self.ifunc(self.OP, x, tol=self.tol)
-        if info != 0:
-            raise ValueError("Error in inverting [A-sigma*M]: function "
-                             "%s did not converge (info = %i)."
-                             % (self.ifunc.__name__, info))
-        return b
-
-    @property
-    def dtype(self):
-        return self.OP.dtype
-
-
-def _fast_spmatrix_to_csc(A, hermitian=False):
-    """Convert sparse matrix to CSC (by transposing, if possible)"""
-    if (A.format == "csr" and hermitian
-            and not np.issubdtype(A.dtype, np.complexfloating)):
-        return A.T
-    elif is_pydata_spmatrix(A):
-        # No need to convert
-        return A
-    else:
-        return A.tocsc()
-
-
-def get_inv_matvec(M, hermitian=False, tol=0):
-    if isdense(M):
-        return LuInv(M).matvec
-    elif issparse(M) or is_pydata_spmatrix(M):
-        M = _fast_spmatrix_to_csc(M, hermitian=hermitian)
-        return SpLuInv(M).matvec
-    else:
-        return IterInv(M, tol=tol).matvec
-
-
-def get_OPinv_matvec(A, M, sigma, hermitian=False, tol=0):
-    if sigma == 0:
-        return get_inv_matvec(A, hermitian=hermitian, tol=tol)
-
-    if M is None:
-        #M is the identity matrix
-        if isdense(A):
-            if (np.issubdtype(A.dtype, np.complexfloating)
-                    or np.imag(sigma) == 0):
-                A = np.copy(A)
-            else:
-                A = A + 0j
-            A.flat[::A.shape[1] + 1] -= sigma
-            return LuInv(A).matvec
-        elif issparse(A) or is_pydata_spmatrix(A):
-            A = A - sigma * eye(A.shape[0])
-            A = _fast_spmatrix_to_csc(A, hermitian=hermitian)
-            return SpLuInv(A).matvec
-        else:
-            return IterOpInv(_aslinearoperator_with_dtype(A),
-                             M, sigma, tol=tol).matvec
-    else:
-        if ((not isdense(A) and not issparse(A) and not is_pydata_spmatrix(A)) or
-                (not isdense(M) and not issparse(M) and not is_pydata_spmatrix(A))):
-            return IterOpInv(_aslinearoperator_with_dtype(A),
-                             _aslinearoperator_with_dtype(M),
-                             sigma, tol=tol).matvec
-        elif isdense(A) or isdense(M):
-            return LuInv(A - sigma * M).matvec
-        else:
-            OP = A - sigma * M
-            OP = _fast_spmatrix_to_csc(OP, hermitian=hermitian)
-            return SpLuInv(OP).matvec
-
-
-# ARPACK is not threadsafe or reentrant (SAVE variables), so we need a
-# lock and a re-entering check.
-_ARPACK_LOCK = ReentrancyLock("Nested calls to eigs/eighs not allowed: "
-                              "ARPACK is not re-entrant")
-
-
-def eigs(A, k=6, M=None, sigma=None, which='LM', v0=None,
-         ncv=None, maxiter=None, tol=0, return_eigenvectors=True,
-         Minv=None, OPinv=None, OPpart=None):
-    """
-    Find k eigenvalues and eigenvectors of the square matrix A.
-
-    Solves ``A @ x[i] = w[i] * x[i]``, the standard eigenvalue problem
-    for w[i] eigenvalues with corresponding eigenvectors x[i].
-
-    If M is specified, solves ``A @ x[i] = w[i] * M @ x[i]``, the
-    generalized eigenvalue problem for w[i] eigenvalues
-    with corresponding eigenvectors x[i]
-
-    Parameters
-    ----------
-    A : ndarray, sparse matrix or LinearOperator
-        An array, sparse matrix, or LinearOperator representing
-        the operation ``A @ x``, where A is a real or complex square matrix.
-    k : int, optional
-        The number of eigenvalues and eigenvectors desired.
-        `k` must be smaller than N-1. It is not possible to compute all
-        eigenvectors of a matrix.
-    M : ndarray, sparse matrix or LinearOperator, optional
-        An array, sparse matrix, or LinearOperator representing
-        the operation M@x for the generalized eigenvalue problem
-
-            A @ x = w * M @ x.
-
-        M must represent a real symmetric matrix if A is real, and must
-        represent a complex Hermitian matrix if A is complex. For best
-        results, the data type of M should be the same as that of A.
-        Additionally:
-
-            If `sigma` is None, M is positive definite
-
-            If sigma is specified, M is positive semi-definite
-
-        If sigma is None, eigs requires an operator to compute the solution
-        of the linear equation ``M @ x = b``.  This is done internally via a
-        (sparse) LU decomposition for an explicit matrix M, or via an
-        iterative solver for a general linear operator.  Alternatively,
-        the user can supply the matrix or operator Minv, which gives
-        ``x = Minv @ b = M^-1 @ b``.
-    sigma : real or complex, optional
-        Find eigenvalues near sigma using shift-invert mode.  This requires
-        an operator to compute the solution of the linear system
-        ``[A - sigma * M] @ x = b``, where M is the identity matrix if
-        unspecified. This is computed internally via a (sparse) LU
-        decomposition for explicit matrices A & M, or via an iterative
-        solver if either A or M is a general linear operator.
-        Alternatively, the user can supply the matrix or operator OPinv,
-        which gives ``x = OPinv @ b = [A - sigma * M]^-1 @ b``.
-        For a real matrix A, shift-invert can either be done in imaginary
-        mode or real mode, specified by the parameter OPpart ('r' or 'i').
-        Note that when sigma is specified, the keyword 'which' (below)
-        refers to the shifted eigenvalues ``w'[i]`` where:
-
-            If A is real and OPpart == 'r' (default),
-              ``w'[i] = 1/2 * [1/(w[i]-sigma) + 1/(w[i]-conj(sigma))]``.
-
-            If A is real and OPpart == 'i',
-              ``w'[i] = 1/2i * [1/(w[i]-sigma) - 1/(w[i]-conj(sigma))]``.
-
-            If A is complex, ``w'[i] = 1/(w[i]-sigma)``.
-
-    v0 : ndarray, optional
-        Starting vector for iteration.
-        Default: random
-    ncv : int, optional
-        The number of Lanczos vectors generated
-        `ncv` must be greater than `k`; it is recommended that ``ncv > 2*k``.
-        Default: ``min(n, max(2*k + 1, 20))``
-    which : str, ['LM' | 'SM' | 'LR' | 'SR' | 'LI' | 'SI'], optional
-        Which `k` eigenvectors and eigenvalues to find:
-
-            'LM' : largest magnitude
-
-            'SM' : smallest magnitude
-
-            'LR' : largest real part
-
-            'SR' : smallest real part
-
-            'LI' : largest imaginary part
-
-            'SI' : smallest imaginary part
-
-        When sigma != None, 'which' refers to the shifted eigenvalues w'[i]
-        (see discussion in 'sigma', above).  ARPACK is generally better
-        at finding large values than small values.  If small eigenvalues are
-        desired, consider using shift-invert mode for better performance.
-    maxiter : int, optional
-        Maximum number of Arnoldi update iterations allowed
-        Default: ``n*10``
-    tol : float, optional
-        Relative accuracy for eigenvalues (stopping criterion)
-        The default value of 0 implies machine precision.
-    return_eigenvectors : bool, optional
-        Return eigenvectors (True) in addition to eigenvalues
-    Minv : ndarray, sparse matrix or LinearOperator, optional
-        See notes in M, above.
-    OPinv : ndarray, sparse matrix or LinearOperator, optional
-        See notes in sigma, above.
-    OPpart : {'r' or 'i'}, optional
-        See notes in sigma, above
-
-    Returns
-    -------
-    w : ndarray
-        Array of k eigenvalues.
-    v : ndarray
-        An array of `k` eigenvectors.
-        ``v[:, i]`` is the eigenvector corresponding to the eigenvalue w[i].
-
-    Raises
-    ------
-    ArpackNoConvergence
-        When the requested convergence is not obtained.
-        The currently converged eigenvalues and eigenvectors can be found
-        as ``eigenvalues`` and ``eigenvectors`` attributes of the exception
-        object.
-
-    See Also
-    --------
-    eigsh : eigenvalues and eigenvectors for symmetric matrix A
-    svds : singular value decomposition for a matrix A
-
-    Notes
-    -----
-    This function is a wrapper to the ARPACK [1]_ SNEUPD, DNEUPD, CNEUPD,
-    ZNEUPD, functions which use the Implicitly Restarted Arnoldi Method to
-    find the eigenvalues and eigenvectors [2]_.
-
-    References
-    ----------
-    .. [1] ARPACK Software, https://github.com/opencollab/arpack-ng
-    .. [2] R. B. Lehoucq, D. C. Sorensen, and C. Yang,  ARPACK USERS GUIDE:
-       Solution of Large Scale Eigenvalue Problems by Implicitly Restarted
-       Arnoldi Methods. SIAM, Philadelphia, PA, 1998.
-
-    Examples
-    --------
-    Find 6 eigenvectors of the identity matrix:
-
-    >>> import numpy as np
-    >>> from scipy.sparse.linalg import eigs
-    >>> id = np.eye(13)
-    >>> vals, vecs = eigs(id, k=6)
-    >>> vals
-    array([ 1.+0.j,  1.+0.j,  1.+0.j,  1.+0.j,  1.+0.j,  1.+0.j])
-    >>> vecs.shape
-    (13, 6)
-
-    """
-    if A.shape[0] != A.shape[1]:
-        raise ValueError(f'expected square matrix (shape={A.shape})')
-    if M is not None:
-        if M.shape != A.shape:
-            raise ValueError(f'wrong M dimensions {M.shape}, should be {A.shape}')
-        if np.dtype(M.dtype).char.lower() != np.dtype(A.dtype).char.lower():
-            warnings.warn('M does not have the same type precision as A. '
-                          'This may adversely affect ARPACK convergence',
-                          stacklevel=2)
-
-    n = A.shape[0]
-
-    if k <= 0:
-        raise ValueError("k=%d must be greater than 0." % k)
-
-    if k >= n - 1:
-        warnings.warn("k >= N - 1 for N * N square matrix. "
-                      "Attempting to use scipy.linalg.eig instead.",
-                      RuntimeWarning, stacklevel=2)
-
-        if issparse(A):
-            raise TypeError("Cannot use scipy.linalg.eig for sparse A with "
-                            "k >= N - 1. Use scipy.linalg.eig(A.toarray()) or"
-                            " reduce k.")
-        if isinstance(A, LinearOperator):
-            raise TypeError("Cannot use scipy.linalg.eig for LinearOperator "
-                            "A with k >= N - 1.")
-        if isinstance(M, LinearOperator):
-            raise TypeError("Cannot use scipy.linalg.eig for LinearOperator "
-                            "M with k >= N - 1.")
-
-        return eig(A, b=M, right=return_eigenvectors)
-
-    if sigma is None:
-        matvec = _aslinearoperator_with_dtype(A).matvec
-
-        if OPinv is not None:
-            raise ValueError("OPinv should not be specified "
-                             "with sigma = None.")
-        if OPpart is not None:
-            raise ValueError("OPpart should not be specified with "
-                             "sigma = None or complex A")
-
-        if M is None:
-            #standard eigenvalue problem
-            mode = 1
-            M_matvec = None
-            Minv_matvec = None
-            if Minv is not None:
-                raise ValueError("Minv should not be "
-                                 "specified with M = None.")
-        else:
-            #general eigenvalue problem
-            mode = 2
-            if Minv is None:
-                Minv_matvec = get_inv_matvec(M, hermitian=True, tol=tol)
-            else:
-                Minv = _aslinearoperator_with_dtype(Minv)
-                Minv_matvec = Minv.matvec
-            M_matvec = _aslinearoperator_with_dtype(M).matvec
-    else:
-        #sigma is not None: shift-invert mode
-        if np.issubdtype(A.dtype, np.complexfloating):
-            if OPpart is not None:
-                raise ValueError("OPpart should not be specified "
-                                 "with sigma=None or complex A")
-            mode = 3
-        elif OPpart is None or OPpart.lower() == 'r':
-            mode = 3
-        elif OPpart.lower() == 'i':
-            if np.imag(sigma) == 0:
-                raise ValueError("OPpart cannot be 'i' if sigma is real")
-            mode = 4
-        else:
-            raise ValueError("OPpart must be one of ('r','i')")
-
-        matvec = _aslinearoperator_with_dtype(A).matvec
-        if Minv is not None:
-            raise ValueError("Minv should not be specified when sigma is")
-        if OPinv is None:
-            Minv_matvec = get_OPinv_matvec(A, M, sigma,
-                                           hermitian=False, tol=tol)
-        else:
-            OPinv = _aslinearoperator_with_dtype(OPinv)
-            Minv_matvec = OPinv.matvec
-        if M is None:
-            M_matvec = None
-        else:
-            M_matvec = _aslinearoperator_with_dtype(M).matvec
-
-    params = _UnsymmetricArpackParams(n, k, A.dtype.char, matvec, mode,
-                                      M_matvec, Minv_matvec, sigma,
-                                      ncv, v0, maxiter, which, tol)
-
-    with _ARPACK_LOCK:
-        while not params.converged:
-            params.iterate()
-
-        return params.extract(return_eigenvectors)
-
-
-def eigsh(A, k=6, M=None, sigma=None, which='LM', v0=None,
-          ncv=None, maxiter=None, tol=0, return_eigenvectors=True,
-          Minv=None, OPinv=None, mode='normal'):
-    """
-    Find k eigenvalues and eigenvectors of the real symmetric square matrix
-    or complex Hermitian matrix A.
-
-    Solves ``A @ x[i] = w[i] * x[i]``, the standard eigenvalue problem for
-    w[i] eigenvalues with corresponding eigenvectors x[i].
-
-    If M is specified, solves ``A @ x[i] = w[i] * M @ x[i]``, the
-    generalized eigenvalue problem for w[i] eigenvalues
-    with corresponding eigenvectors x[i].
-
-    Note that there is no specialized routine for the case when A is a complex
-    Hermitian matrix. In this case, ``eigsh()`` will call ``eigs()`` and return the
-    real parts of the eigenvalues thus obtained.
-
-    Parameters
-    ----------
-    A : ndarray, sparse matrix or LinearOperator
-        A square operator representing the operation ``A @ x``, where ``A`` is
-        real symmetric or complex Hermitian. For buckling mode (see below)
-        ``A`` must additionally be positive-definite.
-    k : int, optional
-        The number of eigenvalues and eigenvectors desired.
-        `k` must be smaller than N. It is not possible to compute all
-        eigenvectors of a matrix.
-
-    Returns
-    -------
-    w : array
-        Array of k eigenvalues.
-    v : array
-        An array representing the `k` eigenvectors.  The column ``v[:, i]`` is
-        the eigenvector corresponding to the eigenvalue ``w[i]``.
-
-    Other Parameters
-    ----------------
-    M : An N x N matrix, array, sparse matrix, or linear operator representing
-        the operation ``M @ x`` for the generalized eigenvalue problem
-
-            A @ x = w * M @ x.
-
-        M must represent a real symmetric matrix if A is real, and must
-        represent a complex Hermitian matrix if A is complex. For best
-        results, the data type of M should be the same as that of A.
-        Additionally:
-
-            If sigma is None, M is symmetric positive definite.
-
-            If sigma is specified, M is symmetric positive semi-definite.
-
-            In buckling mode, M is symmetric indefinite.
-
-        If sigma is None, eigsh requires an operator to compute the solution
-        of the linear equation ``M @ x = b``. This is done internally via a
-        (sparse) LU decomposition for an explicit matrix M, or via an
-        iterative solver for a general linear operator.  Alternatively,
-        the user can supply the matrix or operator Minv, which gives
-        ``x = Minv @ b = M^-1 @ b``.
-    sigma : real
-        Find eigenvalues near sigma using shift-invert mode.  This requires
-        an operator to compute the solution of the linear system
-        ``[A - sigma * M] x = b``, where M is the identity matrix if
-        unspecified.  This is computed internally via a (sparse) LU
-        decomposition for explicit matrices A & M, or via an iterative
-        solver if either A or M is a general linear operator.
-        Alternatively, the user can supply the matrix or operator OPinv,
-        which gives ``x = OPinv @ b = [A - sigma * M]^-1 @ b``.
-        Note that when sigma is specified, the keyword 'which' refers to
-        the shifted eigenvalues ``w'[i]`` where:
-
-            if mode == 'normal', ``w'[i] = 1 / (w[i] - sigma)``.
-
-            if mode == 'cayley', ``w'[i] = (w[i] + sigma) / (w[i] - sigma)``.
-
-            if mode == 'buckling', ``w'[i] = w[i] / (w[i] - sigma)``.
-
-        (see further discussion in 'mode' below)
-    v0 : ndarray, optional
-        Starting vector for iteration.
-        Default: random
-    ncv : int, optional
-        The number of Lanczos vectors generated ncv must be greater than k and
-        smaller than n; it is recommended that ``ncv > 2*k``.
-        Default: ``min(n, max(2*k + 1, 20))``
-    which : str ['LM' | 'SM' | 'LA' | 'SA' | 'BE']
-        If A is a complex Hermitian matrix, 'BE' is invalid.
-        Which `k` eigenvectors and eigenvalues to find:
-
-            'LM' : Largest (in magnitude) eigenvalues.
-
-            'SM' : Smallest (in magnitude) eigenvalues.
-
-            'LA' : Largest (algebraic) eigenvalues.
-
-            'SA' : Smallest (algebraic) eigenvalues.
-
-            'BE' : Half (k/2) from each end of the spectrum.
-
-        When k is odd, return one more (k/2+1) from the high end.
-        When sigma != None, 'which' refers to the shifted eigenvalues ``w'[i]``
-        (see discussion in 'sigma', above).  ARPACK is generally better
-        at finding large values than small values.  If small eigenvalues are
-        desired, consider using shift-invert mode for better performance.
-    maxiter : int, optional
-        Maximum number of Arnoldi update iterations allowed.
-        Default: ``n*10``
-    tol : float
-        Relative accuracy for eigenvalues (stopping criterion).
-        The default value of 0 implies machine precision.
-    Minv : N x N matrix, array, sparse matrix, or LinearOperator
-        See notes in M, above.
-    OPinv : N x N matrix, array, sparse matrix, or LinearOperator
-        See notes in sigma, above.
-    return_eigenvectors : bool
-        Return eigenvectors (True) in addition to eigenvalues.
-        This value determines the order in which eigenvalues are sorted.
-        The sort order is also dependent on the `which` variable.
-
-            For which = 'LM' or 'SA':
-                If `return_eigenvectors` is True, eigenvalues are sorted by
-                algebraic value.
-
-                If `return_eigenvectors` is False, eigenvalues are sorted by
-                absolute value.
-
-            For which = 'BE' or 'LA':
-                eigenvalues are always sorted by algebraic value.
-
-            For which = 'SM':
-                If `return_eigenvectors` is True, eigenvalues are sorted by
-                algebraic value.
-
-                If `return_eigenvectors` is False, eigenvalues are sorted by
-                decreasing absolute value.
-
-    mode : string ['normal' | 'buckling' | 'cayley']
-        Specify strategy to use for shift-invert mode.  This argument applies
-        only for real-valued A and sigma != None.  For shift-invert mode,
-        ARPACK internally solves the eigenvalue problem
-        ``OP @ x'[i] = w'[i] * B @ x'[i]``
-        and transforms the resulting Ritz vectors x'[i] and Ritz values w'[i]
-        into the desired eigenvectors and eigenvalues of the problem
-        ``A @ x[i] = w[i] * M @ x[i]``.
-        The modes are as follows:
-
-            'normal' :
-                OP = [A - sigma * M]^-1 @ M,
-                B = M,
-                w'[i] = 1 / (w[i] - sigma)
-
-            'buckling' :
-                OP = [A - sigma * M]^-1 @ A,
-                B = A,
-                w'[i] = w[i] / (w[i] - sigma)
-
-            'cayley' :
-                OP = [A - sigma * M]^-1 @ [A + sigma * M],
-                B = M,
-                w'[i] = (w[i] + sigma) / (w[i] - sigma)
-
-        The choice of mode will affect which eigenvalues are selected by
-        the keyword 'which', and can also impact the stability of
-        convergence (see [2] for a discussion).
-
-    Raises
-    ------
-    ArpackNoConvergence
-        When the requested convergence is not obtained.
-
-        The currently converged eigenvalues and eigenvectors can be found
-        as ``eigenvalues`` and ``eigenvectors`` attributes of the exception
-        object.
-
-    See Also
-    --------
-    eigs : eigenvalues and eigenvectors for a general (nonsymmetric) matrix A
-    svds : singular value decomposition for a matrix A
-
-    Notes
-    -----
-    This function is a wrapper to the ARPACK [1]_ SSEUPD and DSEUPD
-    functions which use the Implicitly Restarted Lanczos Method to
-    find the eigenvalues and eigenvectors [2]_.
-
-    References
-    ----------
-    .. [1] ARPACK Software, https://github.com/opencollab/arpack-ng
-    .. [2] R. B. Lehoucq, D. C. Sorensen, and C. Yang,  ARPACK USERS GUIDE:
-       Solution of Large Scale Eigenvalue Problems by Implicitly Restarted
-       Arnoldi Methods. SIAM, Philadelphia, PA, 1998.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse.linalg import eigsh
-    >>> identity = np.eye(13)
-    >>> eigenvalues, eigenvectors = eigsh(identity, k=6)
-    >>> eigenvalues
-    array([1., 1., 1., 1., 1., 1.])
-    >>> eigenvectors.shape
-    (13, 6)
-
-    """
-    # complex Hermitian matrices should be solved with eigs
-    if np.issubdtype(A.dtype, np.complexfloating):
-        if mode != 'normal':
-            raise ValueError("mode=%s cannot be used with "
-                             "complex matrix A" % mode)
-        if which == 'BE':
-            raise ValueError("which='BE' cannot be used with complex matrix A")
-        elif which == 'LA':
-            which = 'LR'
-        elif which == 'SA':
-            which = 'SR'
-        ret = eigs(A, k, M=M, sigma=sigma, which=which, v0=v0,
-                   ncv=ncv, maxiter=maxiter, tol=tol,
-                   return_eigenvectors=return_eigenvectors, Minv=Minv,
-                   OPinv=OPinv)
-
-        if return_eigenvectors:
-            return ret[0].real, ret[1]
-        else:
-            return ret.real
-
-    if A.shape[0] != A.shape[1]:
-        raise ValueError(f'expected square matrix (shape={A.shape})')
-    if M is not None:
-        if M.shape != A.shape:
-            raise ValueError(f'wrong M dimensions {M.shape}, should be {A.shape}')
-        if np.dtype(M.dtype).char.lower() != np.dtype(A.dtype).char.lower():
-            warnings.warn('M does not have the same type precision as A. '
-                          'This may adversely affect ARPACK convergence',
-                          stacklevel=2)
-
-    n = A.shape[0]
-
-    if k <= 0:
-        raise ValueError("k must be greater than 0.")
-
-    if k >= n:
-        warnings.warn("k >= N for N * N square matrix. "
-                      "Attempting to use scipy.linalg.eigh instead.",
-                      RuntimeWarning, stacklevel=2)
-
-        if issparse(A):
-            raise TypeError("Cannot use scipy.linalg.eigh for sparse A with "
-                            "k >= N. Use scipy.linalg.eigh(A.toarray()) or"
-                            " reduce k.")
-        if isinstance(A, LinearOperator):
-            raise TypeError("Cannot use scipy.linalg.eigh for LinearOperator "
-                            "A with k >= N.")
-        if isinstance(M, LinearOperator):
-            raise TypeError("Cannot use scipy.linalg.eigh for LinearOperator "
-                            "M with k >= N.")
-
-        return eigh(A, b=M, eigvals_only=not return_eigenvectors)
-
-    if sigma is None:
-        A = _aslinearoperator_with_dtype(A)
-        matvec = A.matvec
-
-        if OPinv is not None:
-            raise ValueError("OPinv should not be specified "
-                             "with sigma = None.")
-        if M is None:
-            #standard eigenvalue problem
-            mode = 1
-            M_matvec = None
-            Minv_matvec = None
-            if Minv is not None:
-                raise ValueError("Minv should not be "
-                                 "specified with M = None.")
-        else:
-            #general eigenvalue problem
-            mode = 2
-            if Minv is None:
-                Minv_matvec = get_inv_matvec(M, hermitian=True, tol=tol)
-            else:
-                Minv = _aslinearoperator_with_dtype(Minv)
-                Minv_matvec = Minv.matvec
-            M_matvec = _aslinearoperator_with_dtype(M).matvec
-    else:
-        # sigma is not None: shift-invert mode
-        if Minv is not None:
-            raise ValueError("Minv should not be specified when sigma is")
-
-        # normal mode
-        if mode == 'normal':
-            mode = 3
-            matvec = None
-            if OPinv is None:
-                Minv_matvec = get_OPinv_matvec(A, M, sigma,
-                                               hermitian=True, tol=tol)
-            else:
-                OPinv = _aslinearoperator_with_dtype(OPinv)
-                Minv_matvec = OPinv.matvec
-            if M is None:
-                M_matvec = None
-            else:
-                M = _aslinearoperator_with_dtype(M)
-                M_matvec = M.matvec
-
-        # buckling mode
-        elif mode == 'buckling':
-            mode = 4
-            if OPinv is None:
-                Minv_matvec = get_OPinv_matvec(A, M, sigma,
-                                               hermitian=True, tol=tol)
-            else:
-                Minv_matvec = _aslinearoperator_with_dtype(OPinv).matvec
-            matvec = _aslinearoperator_with_dtype(A).matvec
-            M_matvec = None
-
-        # cayley-transform mode
-        elif mode == 'cayley':
-            mode = 5
-            matvec = _aslinearoperator_with_dtype(A).matvec
-            if OPinv is None:
-                Minv_matvec = get_OPinv_matvec(A, M, sigma,
-                                               hermitian=True, tol=tol)
-            else:
-                Minv_matvec = _aslinearoperator_with_dtype(OPinv).matvec
-            if M is None:
-                M_matvec = None
-            else:
-                M_matvec = _aslinearoperator_with_dtype(M).matvec
-
-        # unrecognized mode
-        else:
-            raise ValueError("unrecognized mode '%s'" % mode)
-
-    params = _SymmetricArpackParams(n, k, A.dtype.char, matvec, mode,
-                                    M_matvec, Minv_matvec, sigma,
-                                    ncv, v0, maxiter, which, tol)
-
-    with _ARPACK_LOCK:
-        while not params.converged:
-            params.iterate()
-
-        return params.extract(return_eigenvectors)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 5d534d274f5dbe2001c459b9e11954bb3cbf6edc..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/__pycache__/test_arpack.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/__pycache__/test_arpack.cpython-310.pyc
deleted file mode 100644
index d2b8f83ad2426e6586070df69790c35b4eab77fb..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/__pycache__/test_arpack.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py
deleted file mode 100644
index 1cf73f28e21d4f29d067ae84bf63e5291acbe810..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py
+++ /dev/null
@@ -1,718 +0,0 @@
-__usage__ = """
-To run tests locally:
-  python tests/test_arpack.py [-l] [-v]
-
-"""
-
-import threading
-import itertools
-
-import numpy as np
-
-from numpy.testing import assert_allclose, assert_equal, suppress_warnings
-from pytest import raises as assert_raises
-import pytest
-
-from numpy import dot, conj, random
-from scipy.linalg import eig, eigh
-from scipy.sparse import csc_matrix, csr_matrix, diags, rand
-from scipy.sparse.linalg import LinearOperator, aslinearoperator
-from scipy.sparse.linalg._eigen.arpack import (eigs, eigsh, arpack,
-                                              ArpackNoConvergence)
-
-
-from scipy._lib._gcutils import assert_deallocated, IS_PYPY
-
-
-# precision for tests
-_ndigits = {'f': 3, 'd': 11, 'F': 3, 'D': 11}
-
-
-def _get_test_tolerance(type_char, mattype=None, D_type=None, which=None):
-    """
-    Return tolerance values suitable for a given test:
-
-    Parameters
-    ----------
-    type_char : {'f', 'd', 'F', 'D'}
-        Data type in ARPACK eigenvalue problem
-    mattype : {csr_matrix, aslinearoperator, asarray}, optional
-        Linear operator type
-
-    Returns
-    -------
-    tol
-        Tolerance to pass to the ARPACK routine
-    rtol
-        Relative tolerance for outputs
-    atol
-        Absolute tolerance for outputs
-
-    """
-
-    rtol = {'f': 3000 * np.finfo(np.float32).eps,
-            'F': 3000 * np.finfo(np.float32).eps,
-            'd': 2000 * np.finfo(np.float64).eps,
-            'D': 2000 * np.finfo(np.float64).eps}[type_char]
-    atol = rtol
-    tol = 0
-
-    if mattype is aslinearoperator and type_char in ('f', 'F'):
-        # iterative methods in single precision: worse errors
-        # also: bump ARPACK tolerance so that the iterative method converges
-        tol = 30 * np.finfo(np.float32).eps
-        rtol *= 5
-
-    if mattype is csr_matrix and type_char in ('f', 'F'):
-        # sparse in single precision: worse errors
-        rtol *= 5
-
-    if (
-        which in ('LM', 'SM', 'LA')
-        and D_type.name == "gen-hermitian-Mc"
-    ):
-        if type_char == 'F':
-            # missing case 1, 2, and more, from PR 14798
-            rtol *= 5
-
-        if type_char == 'D':
-            # missing more cases, from PR 14798
-            rtol *= 10
-            atol *= 10
-
-    return tol, rtol, atol
-
-
-def generate_matrix(N, complex_=False, hermitian=False,
-                    pos_definite=False, sparse=False):
-    M = np.random.random((N, N))
-    if complex_:
-        M = M + 1j * np.random.random((N, N))
-
-    if hermitian:
-        if pos_definite:
-            if sparse:
-                i = np.arange(N)
-                j = np.random.randint(N, size=N-2)
-                i, j = np.meshgrid(i, j)
-                M[i, j] = 0
-            M = np.dot(M.conj(), M.T)
-        else:
-            M = np.dot(M.conj(), M.T)
-            if sparse:
-                i = np.random.randint(N, size=N * N // 4)
-                j = np.random.randint(N, size=N * N // 4)
-                ind = np.nonzero(i == j)
-                j[ind] = (j[ind] + 1) % N
-                M[i, j] = 0
-                M[j, i] = 0
-    else:
-        if sparse:
-            i = np.random.randint(N, size=N * N // 2)
-            j = np.random.randint(N, size=N * N // 2)
-            M[i, j] = 0
-    return M
-
-
-def generate_matrix_symmetric(N, pos_definite=False, sparse=False):
-    M = np.random.random((N, N))
-
-    M = 0.5 * (M + M.T)  # Make M symmetric
-
-    if pos_definite:
-        Id = N * np.eye(N)
-        if sparse:
-            M = csr_matrix(M)
-        M += Id
-    else:
-        if sparse:
-            M = csr_matrix(M)
-
-    return M
-
-
-def assert_allclose_cc(actual, desired, **kw):
-    """Almost equal or complex conjugates almost equal"""
-    try:
-        assert_allclose(actual, desired, **kw)
-    except AssertionError:
-        assert_allclose(actual, conj(desired), **kw)
-
-
-def argsort_which(eigenvalues, typ, k, which,
-                  sigma=None, OPpart=None, mode=None):
-    """Return sorted indices of eigenvalues using the "which" keyword
-    from eigs and eigsh"""
-    if sigma is None:
-        reval = np.round(eigenvalues, decimals=_ndigits[typ])
-    else:
-        if mode is None or mode == 'normal':
-            if OPpart is None:
-                reval = 1. / (eigenvalues - sigma)
-            elif OPpart == 'r':
-                reval = 0.5 * (1. / (eigenvalues - sigma)
-                               + 1. / (eigenvalues - np.conj(sigma)))
-            elif OPpart == 'i':
-                reval = -0.5j * (1. / (eigenvalues - sigma)
-                                 - 1. / (eigenvalues - np.conj(sigma)))
-        elif mode == 'cayley':
-            reval = (eigenvalues + sigma) / (eigenvalues - sigma)
-        elif mode == 'buckling':
-            reval = eigenvalues / (eigenvalues - sigma)
-        else:
-            raise ValueError("mode='%s' not recognized" % mode)
-
-        reval = np.round(reval, decimals=_ndigits[typ])
-
-    if which in ['LM', 'SM']:
-        ind = np.argsort(abs(reval))
-    elif which in ['LR', 'SR', 'LA', 'SA', 'BE']:
-        ind = np.argsort(np.real(reval))
-    elif which in ['LI', 'SI']:
-        # for LI,SI ARPACK returns largest,smallest abs(imaginary) why?
-        if typ.islower():
-            ind = np.argsort(abs(np.imag(reval)))
-        else:
-            ind = np.argsort(np.imag(reval))
-    else:
-        raise ValueError("which='%s' is unrecognized" % which)
-
-    if which in ['LM', 'LA', 'LR', 'LI']:
-        return ind[-k:]
-    elif which in ['SM', 'SA', 'SR', 'SI']:
-        return ind[:k]
-    elif which == 'BE':
-        return np.concatenate((ind[:k//2], ind[k//2-k:]))
-
-
-def eval_evec(symmetric, d, typ, k, which, v0=None, sigma=None,
-              mattype=np.asarray, OPpart=None, mode='normal'):
-    general = ('bmat' in d)
-
-    if symmetric:
-        eigs_func = eigsh
-    else:
-        eigs_func = eigs
-
-    if general:
-        err = ("error for {}:general, typ={}, which={}, sigma={}, "
-               "mattype={}, OPpart={}, mode={}".format(eigs_func.__name__,
-                                                   typ, which, sigma,
-                                                   mattype.__name__,
-                                                   OPpart, mode))
-    else:
-        err = ("error for {}:standard, typ={}, which={}, sigma={}, "
-               "mattype={}, OPpart={}, mode={}".format(eigs_func.__name__,
-                                                   typ, which, sigma,
-                                                   mattype.__name__,
-                                                   OPpart, mode))
-
-    a = d['mat'].astype(typ)
-    ac = mattype(a)
-
-    if general:
-        b = d['bmat'].astype(typ)
-        bc = mattype(b)
-
-    # get exact eigenvalues
-    exact_eval = d['eval'].astype(typ.upper())
-    ind = argsort_which(exact_eval, typ, k, which,
-                        sigma, OPpart, mode)
-    exact_eval = exact_eval[ind]
-
-    # compute arpack eigenvalues
-    kwargs = dict(which=which, v0=v0, sigma=sigma)
-    if eigs_func is eigsh:
-        kwargs['mode'] = mode
-    else:
-        kwargs['OPpart'] = OPpart
-
-    # compute suitable tolerances
-    kwargs['tol'], rtol, atol = _get_test_tolerance(typ, mattype, d, which)
-    # on rare occasions, ARPACK routines return results that are proper
-    # eigenvalues and -vectors, but not necessarily the ones requested in
-    # the parameter which. This is inherent to the Krylov methods, and
-    # should not be treated as a failure. If such a rare situation
-    # occurs, the calculation is tried again (but at most a few times).
-    ntries = 0
-    while ntries < 5:
-        # solve
-        if general:
-            try:
-                eigenvalues, evec = eigs_func(ac, k, bc, **kwargs)
-            except ArpackNoConvergence:
-                kwargs['maxiter'] = 20*a.shape[0]
-                eigenvalues, evec = eigs_func(ac, k, bc, **kwargs)
-        else:
-            try:
-                eigenvalues, evec = eigs_func(ac, k, **kwargs)
-            except ArpackNoConvergence:
-                kwargs['maxiter'] = 20*a.shape[0]
-                eigenvalues, evec = eigs_func(ac, k, **kwargs)
-
-        ind = argsort_which(eigenvalues, typ, k, which,
-                            sigma, OPpart, mode)
-        eigenvalues = eigenvalues[ind]
-        evec = evec[:, ind]
-
-        try:
-            # check eigenvalues
-            assert_allclose_cc(eigenvalues, exact_eval, rtol=rtol, atol=atol,
-                               err_msg=err)
-            check_evecs = True
-        except AssertionError:
-            check_evecs = False
-            ntries += 1
-
-        if check_evecs:
-            # check eigenvectors
-            LHS = np.dot(a, evec)
-            if general:
-                RHS = eigenvalues * np.dot(b, evec)
-            else:
-                RHS = eigenvalues * evec
-
-            assert_allclose(LHS, RHS, rtol=rtol, atol=atol, err_msg=err)
-            break
-
-    # check eigenvalues
-    assert_allclose_cc(eigenvalues, exact_eval, rtol=rtol, atol=atol, err_msg=err)
-
-
-class DictWithRepr(dict):
-    def __init__(self, name):
-        self.name = name
-
-    def __repr__(self):
-        return "<%s>" % self.name
-
-
-class SymmetricParams:
-    def __init__(self):
-        self.eigs = eigsh
-        self.which = ['LM', 'SM', 'LA', 'SA', 'BE']
-        self.mattypes = [csr_matrix, aslinearoperator, np.asarray]
-        self.sigmas_modes = {None: ['normal'],
-                             0.5: ['normal', 'buckling', 'cayley']}
-
-        # generate matrices
-        # these should all be float32 so that the eigenvalues
-        # are the same in float32 and float64
-        N = 6
-        np.random.seed(2300)
-        Ar = generate_matrix(N, hermitian=True,
-                             pos_definite=True).astype('f').astype('d')
-        M = generate_matrix(N, hermitian=True,
-                            pos_definite=True).astype('f').astype('d')
-        Ac = generate_matrix(N, hermitian=True, pos_definite=True,
-                             complex_=True).astype('F').astype('D')
-        Mc = generate_matrix(N, hermitian=True, pos_definite=True,
-                             complex_=True).astype('F').astype('D')
-        v0 = np.random.random(N)
-
-        # standard symmetric problem
-        SS = DictWithRepr("std-symmetric")
-        SS['mat'] = Ar
-        SS['v0'] = v0
-        SS['eval'] = eigh(SS['mat'], eigvals_only=True)
-
-        # general symmetric problem
-        GS = DictWithRepr("gen-symmetric")
-        GS['mat'] = Ar
-        GS['bmat'] = M
-        GS['v0'] = v0
-        GS['eval'] = eigh(GS['mat'], GS['bmat'], eigvals_only=True)
-
-        # standard hermitian problem
-        SH = DictWithRepr("std-hermitian")
-        SH['mat'] = Ac
-        SH['v0'] = v0
-        SH['eval'] = eigh(SH['mat'], eigvals_only=True)
-
-        # general hermitian problem
-        GH = DictWithRepr("gen-hermitian")
-        GH['mat'] = Ac
-        GH['bmat'] = M
-        GH['v0'] = v0
-        GH['eval'] = eigh(GH['mat'], GH['bmat'], eigvals_only=True)
-
-        # general hermitian problem with hermitian M
-        GHc = DictWithRepr("gen-hermitian-Mc")
-        GHc['mat'] = Ac
-        GHc['bmat'] = Mc
-        GHc['v0'] = v0
-        GHc['eval'] = eigh(GHc['mat'], GHc['bmat'], eigvals_only=True)
-
-        self.real_test_cases = [SS, GS]
-        self.complex_test_cases = [SH, GH, GHc]
-
-
-class NonSymmetricParams:
-    def __init__(self):
-        self.eigs = eigs
-        self.which = ['LM', 'LR', 'LI']  # , 'SM', 'LR', 'SR', 'LI', 'SI']
-        self.mattypes = [csr_matrix, aslinearoperator, np.asarray]
-        self.sigmas_OPparts = {None: [None],
-                               0.1: ['r'],
-                               0.1 + 0.1j: ['r', 'i']}
-
-        # generate matrices
-        # these should all be float32 so that the eigenvalues
-        # are the same in float32 and float64
-        N = 6
-        np.random.seed(2300)
-        Ar = generate_matrix(N).astype('f').astype('d')
-        M = generate_matrix(N, hermitian=True,
-                            pos_definite=True).astype('f').astype('d')
-        Ac = generate_matrix(N, complex_=True).astype('F').astype('D')
-        v0 = np.random.random(N)
-
-        # standard real nonsymmetric problem
-        SNR = DictWithRepr("std-real-nonsym")
-        SNR['mat'] = Ar
-        SNR['v0'] = v0
-        SNR['eval'] = eig(SNR['mat'], left=False, right=False)
-
-        # general real nonsymmetric problem
-        GNR = DictWithRepr("gen-real-nonsym")
-        GNR['mat'] = Ar
-        GNR['bmat'] = M
-        GNR['v0'] = v0
-        GNR['eval'] = eig(GNR['mat'], GNR['bmat'], left=False, right=False)
-
-        # standard complex nonsymmetric problem
-        SNC = DictWithRepr("std-cmplx-nonsym")
-        SNC['mat'] = Ac
-        SNC['v0'] = v0
-        SNC['eval'] = eig(SNC['mat'], left=False, right=False)
-
-        # general complex nonsymmetric problem
-        GNC = DictWithRepr("gen-cmplx-nonsym")
-        GNC['mat'] = Ac
-        GNC['bmat'] = M
-        GNC['v0'] = v0
-        GNC['eval'] = eig(GNC['mat'], GNC['bmat'], left=False, right=False)
-
-        self.real_test_cases = [SNR, GNR]
-        self.complex_test_cases = [SNC, GNC]
-
-
-def test_symmetric_modes():
-    params = SymmetricParams()
-    k = 2
-    symmetric = True
-    for D in params.real_test_cases:
-        for typ in 'fd':
-            for which in params.which:
-                for mattype in params.mattypes:
-                    for (sigma, modes) in params.sigmas_modes.items():
-                        for mode in modes:
-                            eval_evec(symmetric, D, typ, k, which,
-                                      None, sigma, mattype, None, mode)
-
-
-def test_hermitian_modes():
-    params = SymmetricParams()
-    k = 2
-    symmetric = True
-    for D in params.complex_test_cases:
-        for typ in 'FD':
-            for which in params.which:
-                if which == 'BE':
-                    continue  # BE invalid for complex
-                for mattype in params.mattypes:
-                    for sigma in params.sigmas_modes:
-                        eval_evec(symmetric, D, typ, k, which,
-                                  None, sigma, mattype)
-
-
-def test_symmetric_starting_vector():
-    params = SymmetricParams()
-    symmetric = True
-    for k in [1, 2, 3, 4, 5]:
-        for D in params.real_test_cases:
-            for typ in 'fd':
-                v0 = random.rand(len(D['v0'])).astype(typ)
-                eval_evec(symmetric, D, typ, k, 'LM', v0)
-
-
-def test_symmetric_no_convergence():
-    np.random.seed(1234)
-    m = generate_matrix(30, hermitian=True, pos_definite=True)
-    tol, rtol, atol = _get_test_tolerance('d')
-    try:
-        w, v = eigsh(m, 4, which='LM', v0=m[:, 0], maxiter=5, tol=tol, ncv=9)
-        raise AssertionError("Spurious no-error exit")
-    except ArpackNoConvergence as err:
-        k = len(err.eigenvalues)
-        if k <= 0:
-            raise AssertionError("Spurious no-eigenvalues-found case") from err
-        w, v = err.eigenvalues, err.eigenvectors
-        assert_allclose(dot(m, v), w * v, rtol=rtol, atol=atol)
-
-
-def test_real_nonsymmetric_modes():
-    params = NonSymmetricParams()
-    k = 2
-    symmetric = False
-    for D in params.real_test_cases:
-        for typ in 'fd':
-            for which in params.which:
-                for mattype in params.mattypes:
-                    for sigma, OPparts in params.sigmas_OPparts.items():
-                        for OPpart in OPparts:
-                            eval_evec(symmetric, D, typ, k, which,
-                                      None, sigma, mattype, OPpart)
-
-
-def test_complex_nonsymmetric_modes():
-    params = NonSymmetricParams()
-    k = 2
-    symmetric = False
-    for D in params.complex_test_cases:
-        for typ in 'DF':
-            for which in params.which:
-                for mattype in params.mattypes:
-                    for sigma in params.sigmas_OPparts:
-                        eval_evec(symmetric, D, typ, k, which,
-                                  None, sigma, mattype)
-
-
-def test_standard_nonsymmetric_starting_vector():
-    params = NonSymmetricParams()
-    sigma = None
-    symmetric = False
-    for k in [1, 2, 3, 4]:
-        for d in params.complex_test_cases:
-            for typ in 'FD':
-                A = d['mat']
-                n = A.shape[0]
-                v0 = random.rand(n).astype(typ)
-                eval_evec(symmetric, d, typ, k, "LM", v0, sigma)
-
-
-def test_general_nonsymmetric_starting_vector():
-    params = NonSymmetricParams()
-    sigma = None
-    symmetric = False
-    for k in [1, 2, 3, 4]:
-        for d in params.complex_test_cases:
-            for typ in 'FD':
-                A = d['mat']
-                n = A.shape[0]
-                v0 = random.rand(n).astype(typ)
-                eval_evec(symmetric, d, typ, k, "LM", v0, sigma)
-
-
-def test_standard_nonsymmetric_no_convergence():
-    np.random.seed(1234)
-    m = generate_matrix(30, complex_=True)
-    tol, rtol, atol = _get_test_tolerance('d')
-    try:
-        w, v = eigs(m, 4, which='LM', v0=m[:, 0], maxiter=5, tol=tol)
-        raise AssertionError("Spurious no-error exit")
-    except ArpackNoConvergence as err:
-        k = len(err.eigenvalues)
-        if k <= 0:
-            raise AssertionError("Spurious no-eigenvalues-found case") from err
-        w, v = err.eigenvalues, err.eigenvectors
-        for ww, vv in zip(w, v.T):
-            assert_allclose(dot(m, vv), ww * vv, rtol=rtol, atol=atol)
-
-
-def test_eigen_bad_shapes():
-    # A is not square.
-    A = csc_matrix(np.zeros((2, 3)))
-    assert_raises(ValueError, eigs, A)
-
-
-def test_eigen_bad_kwargs():
-    # Test eigen on wrong keyword argument
-    A = csc_matrix(np.zeros((8, 8)))
-    assert_raises(ValueError, eigs, A, which='XX')
-
-
-def test_ticket_1459_arpack_crash():
-    for dtype in [np.float32, np.float64]:
-        # This test does not seem to catch the issue for float32,
-        # but we made the same fix there, just to be sure
-
-        N = 6
-        k = 2
-
-        np.random.seed(2301)
-        A = np.random.random((N, N)).astype(dtype)
-        v0 = np.array([-0.71063568258907849895, -0.83185111795729227424,
-                       -0.34365925382227402451, 0.46122533684552280420,
-                       -0.58001341115969040629, -0.78844877570084292984e-01],
-                      dtype=dtype)
-
-        # Should not crash:
-        evals, evecs = eigs(A, k, v0=v0)
-
-
-@pytest.mark.skipif(IS_PYPY, reason="Test not meaningful on PyPy")
-def test_linearoperator_deallocation():
-    # Check that the linear operators used by the Arpack wrappers are
-    # deallocatable by reference counting -- they are big objects, so
-    # Python's cyclic GC may not collect them fast enough before
-    # running out of memory if eigs/eigsh are called in a tight loop.
-
-    M_d = np.eye(10)
-    M_s = csc_matrix(M_d)
-    M_o = aslinearoperator(M_d)
-
-    with assert_deallocated(lambda: arpack.SpLuInv(M_s)):
-        pass
-    with assert_deallocated(lambda: arpack.LuInv(M_d)):
-        pass
-    with assert_deallocated(lambda: arpack.IterInv(M_s)):
-        pass
-    with assert_deallocated(lambda: arpack.IterOpInv(M_o, None, 0.3)):
-        pass
-    with assert_deallocated(lambda: arpack.IterOpInv(M_o, M_o, 0.3)):
-        pass
-
-def test_parallel_threads():
-    results = []
-    v0 = np.random.rand(50)
-
-    def worker():
-        x = diags([1, -2, 1], [-1, 0, 1], shape=(50, 50))
-        w, v = eigs(x, k=3, v0=v0)
-        results.append(w)
-
-        w, v = eigsh(x, k=3, v0=v0)
-        results.append(w)
-
-    threads = [threading.Thread(target=worker) for k in range(10)]
-    for t in threads:
-        t.start()
-    for t in threads:
-        t.join()
-
-    worker()
-
-    for r in results:
-        assert_allclose(r, results[-1])
-
-
-def test_reentering():
-    # Just some linear operator that calls eigs recursively
-    def A_matvec(x):
-        x = diags([1, -2, 1], [-1, 0, 1], shape=(50, 50))
-        w, v = eigs(x, k=1)
-        return v / w[0]
-    A = LinearOperator(matvec=A_matvec, dtype=float, shape=(50, 50))
-
-    # The Fortran code is not reentrant, so this fails (gracefully, not crashing)
-    assert_raises(RuntimeError, eigs, A, k=1)
-    assert_raises(RuntimeError, eigsh, A, k=1)
-
-
-def test_regression_arpackng_1315():
-    # Check that issue arpack-ng/#1315 is not present.
-    # Adapted from arpack-ng/TESTS/bug_1315_single.c
-    # If this fails, then the installed ARPACK library is faulty.
-
-    for dtype in [np.float32, np.float64]:
-        np.random.seed(1234)
-
-        w0 = np.arange(1, 1000+1).astype(dtype)
-        A = diags([w0], [0], shape=(1000, 1000))
-
-        v0 = np.random.rand(1000).astype(dtype)
-        w, v = eigs(A, k=9, ncv=2*9+1, which="LM", v0=v0)
-
-        assert_allclose(np.sort(w), np.sort(w0[-9:]),
-                        rtol=1e-4)
-
-
-def test_eigs_for_k_greater():
-    # Test eigs() for k beyond limits.
-    A_sparse = diags([1, -2, 1], [-1, 0, 1], shape=(4, 4))  # sparse
-    A = generate_matrix(4, sparse=False)
-    M_dense = np.random.random((4, 4))
-    M_sparse = generate_matrix(4, sparse=True)
-    M_linop = aslinearoperator(M_dense)
-    eig_tuple1 = eig(A, b=M_dense)
-    eig_tuple2 = eig(A, b=M_sparse)
-
-    with suppress_warnings() as sup:
-        sup.filter(RuntimeWarning)
-
-        assert_equal(eigs(A, M=M_dense, k=3), eig_tuple1)
-        assert_equal(eigs(A, M=M_dense, k=4), eig_tuple1)
-        assert_equal(eigs(A, M=M_dense, k=5), eig_tuple1)
-        assert_equal(eigs(A, M=M_sparse, k=5), eig_tuple2)
-
-        # M as LinearOperator
-        assert_raises(TypeError, eigs, A, M=M_linop, k=3)
-
-        # Test 'A' for different types
-        assert_raises(TypeError, eigs, aslinearoperator(A), k=3)
-        assert_raises(TypeError, eigs, A_sparse, k=3)
-
-
-def test_eigsh_for_k_greater():
-    # Test eigsh() for k beyond limits.
-    A_sparse = diags([1, -2, 1], [-1, 0, 1], shape=(4, 4))  # sparse
-    A = generate_matrix(4, sparse=False)
-    M_dense = generate_matrix_symmetric(4, pos_definite=True)
-    M_sparse = generate_matrix_symmetric(4, pos_definite=True, sparse=True)
-    M_linop = aslinearoperator(M_dense)
-    eig_tuple1 = eigh(A, b=M_dense)
-    eig_tuple2 = eigh(A, b=M_sparse)
-
-    with suppress_warnings() as sup:
-        sup.filter(RuntimeWarning)
-
-        assert_equal(eigsh(A, M=M_dense, k=4), eig_tuple1)
-        assert_equal(eigsh(A, M=M_dense, k=5), eig_tuple1)
-        assert_equal(eigsh(A, M=M_sparse, k=5), eig_tuple2)
-
-        # M as LinearOperator
-        assert_raises(TypeError, eigsh, A, M=M_linop, k=4)
-
-        # Test 'A' for different types
-        assert_raises(TypeError, eigsh, aslinearoperator(A), k=4)
-        assert_raises(TypeError, eigsh, A_sparse, M=M_dense, k=4)
-
-
-def test_real_eigs_real_k_subset():
-    np.random.seed(1)
-
-    n = 10
-    A = rand(n, n, density=0.5)
-    A.data *= 2
-    A.data -= 1
-
-    v0 = np.ones(n)
-
-    whichs = ['LM', 'SM', 'LR', 'SR', 'LI', 'SI']
-    dtypes = [np.float32, np.float64]
-
-    for which, sigma, dtype in itertools.product(whichs, [None, 0, 5], dtypes):
-        prev_w = np.array([], dtype=dtype)
-        eps = np.finfo(dtype).eps
-        for k in range(1, 9):
-            w, z = eigs(A.astype(dtype), k=k, which=which, sigma=sigma,
-                        v0=v0.astype(dtype), tol=0)
-            assert_allclose(np.linalg.norm(A.dot(z) - z * w), 0, atol=np.sqrt(eps))
-
-            # Check that the set of eigenvalues for `k` is a subset of that for `k+1`
-            dist = abs(prev_w[:,None] - w).min(axis=1)
-            assert_allclose(dist, 0, atol=np.sqrt(eps))
-
-            prev_w = w
-
-            # Check sort order
-            if sigma is None:
-                d = w
-            else:
-                d = 1 / (w - sigma)
-
-            if which == 'LM':
-                # ARPACK is systematic for 'LM', but sort order
-                # appears not well defined for other modes
-                assert np.all(np.diff(abs(d)) <= 1e-6)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/__init__.py
deleted file mode 100644
index 6ab5330361a6bcc2a8403f9b3788aedae750d57f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-"""
-Locally Optimal Block Preconditioned Conjugate Gradient Method (LOBPCG)
-
-LOBPCG is a preconditioned eigensolver for large symmetric positive definite
-(SPD) generalized eigenproblems.
-
-Call the function lobpcg - see help for lobpcg.lobpcg.
-
-"""
-from .lobpcg import *
-
-__all__ = [s for s in dir() if not s.startswith('_')]
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/__pycache__/lobpcg.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/__pycache__/lobpcg.cpython-310.pyc
deleted file mode 100644
index c4d724d4c914900087ba8b5bb7df07fb3e2168f8..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/__pycache__/lobpcg.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py
deleted file mode 100644
index 6bf2a77106abfd8ba83937579fced09243fdcb56..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py
+++ /dev/null
@@ -1,1112 +0,0 @@
-"""
-Locally Optimal Block Preconditioned Conjugate Gradient Method (LOBPCG).
-
-References
-----------
-.. [1] A. V. Knyazev (2001),
-       Toward the Optimal Preconditioned Eigensolver: Locally Optimal
-       Block Preconditioned Conjugate Gradient Method.
-       SIAM Journal on Scientific Computing 23, no. 2,
-       pp. 517-541. :doi:`10.1137/S1064827500366124`
-
-.. [2] A. V. Knyazev, I. Lashuk, M. E. Argentati, and E. Ovchinnikov (2007),
-       Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX)
-       in hypre and PETSc.  :arxiv:`0705.2626`
-
-.. [3] A. V. Knyazev's C and MATLAB implementations:
-       https://github.com/lobpcg/blopex
-"""
-
-import warnings
-import numpy as np
-from scipy.linalg import (inv, eigh, cho_factor, cho_solve,
-                          cholesky, LinAlgError)
-from scipy.sparse.linalg import LinearOperator
-from scipy.sparse import issparse
-
-__all__ = ["lobpcg"]
-
-
-def _report_nonhermitian(M, name):
-    """
-    Report if `M` is not a Hermitian matrix given its type.
-    """
-    from scipy.linalg import norm
-
-    md = M - M.T.conj()
-    nmd = norm(md, 1)
-    tol = 10 * np.finfo(M.dtype).eps
-    tol = max(tol, tol * norm(M, 1))
-    if nmd > tol:
-        warnings.warn(
-              f"Matrix {name} of the type {M.dtype} is not Hermitian: "
-              f"condition: {nmd} < {tol} fails.",
-              UserWarning, stacklevel=4
-         )
-
-def _as2d(ar):
-    """
-    If the input array is 2D return it, if it is 1D, append a dimension,
-    making it a column vector.
-    """
-    if ar.ndim == 2:
-        return ar
-    else:  # Assume 1!
-        aux = np.asarray(ar)
-        aux.shape = (ar.shape[0], 1)
-        return aux
-
-
-def _makeMatMat(m):
-    if m is None:
-        return None
-    elif callable(m):
-        return lambda v: m(v)
-    else:
-        return lambda v: m @ v
-
-
-def _matmul_inplace(x, y, verbosityLevel=0):
-    """Perform 'np.matmul' in-place if possible.
-
-    If some sufficient conditions for inplace matmul are met, do so.
-    Otherwise try inplace update and fall back to overwrite if that fails.
-    """
-    if x.flags["CARRAY"] and x.shape[1] == y.shape[1] and x.dtype == y.dtype:
-        # conditions where we can guarantee that inplace updates will work;
-        # i.e. x is not a view/slice, x & y have compatible dtypes, and the
-        # shape of the result of x @ y matches the shape of x.
-        np.matmul(x, y, out=x)
-    else:
-        # ideally, we'd have an exhaustive list of conditions above when
-        # inplace updates are possible; since we don't, we opportunistically
-        # try if it works, and fall back to overwriting if necessary
-        try:
-            np.matmul(x, y, out=x)
-        except Exception:
-            if verbosityLevel:
-                warnings.warn(
-                    "Inplace update of x = x @ y failed, "
-                    "x needs to be overwritten.",
-                    UserWarning, stacklevel=3
-                )
-            x = x @ y
-    return x
-
-
-def _applyConstraints(blockVectorV, factYBY, blockVectorBY, blockVectorY):
-    """Changes blockVectorV in-place."""
-    YBV = blockVectorBY.T.conj() @ blockVectorV
-    tmp = cho_solve(factYBY, YBV)
-    blockVectorV -= blockVectorY @ tmp
-
-
-def _b_orthonormalize(B, blockVectorV, blockVectorBV=None,
-                      verbosityLevel=0):
-    """in-place B-orthonormalize the given block vector using Cholesky."""
-    if blockVectorBV is None:
-        if B is None:
-            blockVectorBV = blockVectorV
-        else:
-            try:
-                blockVectorBV = B(blockVectorV)
-            except Exception as e:
-                if verbosityLevel:
-                    warnings.warn(
-                        f"Secondary MatMul call failed with error\n"
-                        f"{e}\n",
-                        UserWarning, stacklevel=3
-                    )
-                    return None, None, None
-            if blockVectorBV.shape != blockVectorV.shape:
-                raise ValueError(
-                    f"The shape {blockVectorV.shape} "
-                    f"of the orthogonalized matrix not preserved\n"
-                    f"and changed to {blockVectorBV.shape} "
-                    f"after multiplying by the secondary matrix.\n"
-                )
-
-    VBV = blockVectorV.T.conj() @ blockVectorBV
-    try:
-        # VBV is a Cholesky factor from now on...
-        VBV = cholesky(VBV, overwrite_a=True)
-        VBV = inv(VBV, overwrite_a=True)
-        blockVectorV = _matmul_inplace(
-            blockVectorV, VBV,
-            verbosityLevel=verbosityLevel
-        )
-        if B is not None:
-            blockVectorBV = _matmul_inplace(
-                blockVectorBV, VBV,
-                verbosityLevel=verbosityLevel
-            )
-        return blockVectorV, blockVectorBV, VBV
-    except LinAlgError:
-        if verbosityLevel:
-            warnings.warn(
-                "Cholesky has failed.",
-                UserWarning, stacklevel=3
-            )
-        return None, None, None
-
-
-def _get_indx(_lambda, num, largest):
-    """Get `num` indices into `_lambda` depending on `largest` option."""
-    ii = np.argsort(_lambda)
-    if largest:
-        ii = ii[:-num - 1:-1]
-    else:
-        ii = ii[:num]
-
-    return ii
-
-
-def _handle_gramA_gramB_verbosity(gramA, gramB, verbosityLevel):
-    if verbosityLevel:
-        _report_nonhermitian(gramA, "gramA")
-        _report_nonhermitian(gramB, "gramB")
-
-
-def lobpcg(
-    A,
-    X,
-    B=None,
-    M=None,
-    Y=None,
-    tol=None,
-    maxiter=None,
-    largest=True,
-    verbosityLevel=0,
-    retLambdaHistory=False,
-    retResidualNormsHistory=False,
-    restartControl=20,
-):
-    """Locally Optimal Block Preconditioned Conjugate Gradient Method (LOBPCG).
-
-    LOBPCG is a preconditioned eigensolver for large real symmetric and complex
-    Hermitian definite generalized eigenproblems.
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator, callable object}
-        The Hermitian linear operator of the problem, usually given by a
-        sparse matrix.  Often called the "stiffness matrix".
-    X : ndarray, float32 or float64
-        Initial approximation to the ``k`` eigenvectors (non-sparse).
-        If `A` has ``shape=(n,n)`` then `X` must have ``shape=(n,k)``.
-    B : {sparse matrix, ndarray, LinearOperator, callable object}
-        Optional. By default ``B = None``, which is equivalent to identity.
-        The right hand side operator in a generalized eigenproblem if present.
-        Often called the "mass matrix". Must be Hermitian positive definite.
-    M : {sparse matrix, ndarray, LinearOperator, callable object}
-        Optional. By default ``M = None``, which is equivalent to identity.
-        Preconditioner aiming to accelerate convergence.
-    Y : ndarray, float32 or float64, default: None
-        An ``n-by-sizeY`` ndarray of constraints with ``sizeY < n``.
-        The iterations will be performed in the ``B``-orthogonal complement
-        of the column-space of `Y`. `Y` must be full rank if present.
-    tol : scalar, optional
-        The default is ``tol=n*sqrt(eps)``.
-        Solver tolerance for the stopping criterion.
-    maxiter : int, default: 20
-        Maximum number of iterations.
-    largest : bool, default: True
-        When True, solve for the largest eigenvalues, otherwise the smallest.
-    verbosityLevel : int, optional
-        By default ``verbosityLevel=0`` no output.
-        Controls the solver standard/screen output.
-    retLambdaHistory : bool, default: False
-        Whether to return iterative eigenvalue history.
-    retResidualNormsHistory : bool, default: False
-        Whether to return iterative history of residual norms.
-    restartControl : int, optional.
-        Iterations restart if the residuals jump ``2**restartControl`` times
-        compared to the smallest recorded in ``retResidualNormsHistory``.
-        The default is ``restartControl=20``, making the restarts rare for
-        backward compatibility.
-
-    Returns
-    -------
-    lambda : ndarray of the shape ``(k, )``.
-        Array of ``k`` approximate eigenvalues.
-    v : ndarray of the same shape as ``X.shape``.
-        An array of ``k`` approximate eigenvectors.
-    lambdaHistory : ndarray, optional.
-        The eigenvalue history, if `retLambdaHistory` is ``True``.
-    ResidualNormsHistory : ndarray, optional.
-        The history of residual norms, if `retResidualNormsHistory`
-        is ``True``.
-
-    Notes
-    -----
-    The iterative loop runs ``maxit=maxiter`` (20 if ``maxit=None``)
-    iterations at most and finishes earlier if the tolerance is met.
-    Breaking backward compatibility with the previous version, LOBPCG
-    now returns the block of iterative vectors with the best accuracy rather
-    than the last one iterated, as a cure for possible divergence.
-
-    If ``X.dtype == np.float32`` and user-provided operations/multiplications
-    by `A`, `B`, and `M` all preserve the ``np.float32`` data type,
-    all the calculations and the output are in ``np.float32``.
-
-    The size of the iteration history output equals to the number of the best
-    (limited by `maxit`) iterations plus 3: initial, final, and postprocessing.
-
-    If both `retLambdaHistory` and `retResidualNormsHistory` are ``True``,
-    the return tuple has the following format
-    ``(lambda, V, lambda history, residual norms history)``.
-
-    In the following ``n`` denotes the matrix size and ``k`` the number
-    of required eigenvalues (smallest or largest).
-
-    The LOBPCG code internally solves eigenproblems of the size ``3k`` on every
-    iteration by calling the dense eigensolver `eigh`, so if ``k`` is not
-    small enough compared to ``n``, it makes no sense to call the LOBPCG code.
-    Moreover, if one calls the LOBPCG algorithm for ``5k > n``, it would likely
-    break internally, so the code calls the standard function `eigh` instead.
-    It is not that ``n`` should be large for the LOBPCG to work, but rather the
-    ratio ``n / k`` should be large. It you call LOBPCG with ``k=1``
-    and ``n=10``, it works though ``n`` is small. The method is intended
-    for extremely large ``n / k``.
-
-    The convergence speed depends basically on three factors:
-
-    1. Quality of the initial approximations `X` to the seeking eigenvectors.
-       Randomly distributed around the origin vectors work well if no better
-       choice is known.
-
-    2. Relative separation of the desired eigenvalues from the rest
-       of the eigenvalues. One can vary ``k`` to improve the separation.
-
-    3. Proper preconditioning to shrink the spectral spread.
-       For example, a rod vibration test problem (under tests
-       directory) is ill-conditioned for large ``n``, so convergence will be
-       slow, unless efficient preconditioning is used. For this specific
-       problem, a good simple preconditioner function would be a linear solve
-       for `A`, which is easy to code since `A` is tridiagonal.
-
-    References
-    ----------
-    .. [1] A. V. Knyazev (2001),
-           Toward the Optimal Preconditioned Eigensolver: Locally Optimal
-           Block Preconditioned Conjugate Gradient Method.
-           SIAM Journal on Scientific Computing 23, no. 2,
-           pp. 517-541. :doi:`10.1137/S1064827500366124`
-
-    .. [2] A. V. Knyazev, I. Lashuk, M. E. Argentati, and E. Ovchinnikov
-           (2007), Block Locally Optimal Preconditioned Eigenvalue Xolvers
-           (BLOPEX) in hypre and PETSc. :arxiv:`0705.2626`
-
-    .. [3] A. V. Knyazev's C and MATLAB implementations:
-           https://github.com/lobpcg/blopex
-
-    Examples
-    --------
-    Our first example is minimalistic - find the largest eigenvalue of
-    a diagonal matrix by solving the non-generalized eigenvalue problem
-    ``A x = lambda x`` without constraints or preconditioning.
-
-    >>> import numpy as np
-    >>> from scipy.sparse import spdiags
-    >>> from scipy.sparse.linalg import LinearOperator, aslinearoperator
-    >>> from scipy.sparse.linalg import lobpcg
-
-    The square matrix size is
-
-    >>> n = 100
-
-    and its diagonal entries are 1, ..., 100 defined by
-
-    >>> vals = np.arange(1, n + 1).astype(np.int16)
-
-    The first mandatory input parameter in this test is
-    the sparse diagonal matrix `A`
-    of the eigenvalue problem ``A x = lambda x`` to solve.
-
-    >>> A = spdiags(vals, 0, n, n)
-    >>> A = A.astype(np.int16)
-    >>> A.toarray()
-    array([[  1,   0,   0, ...,   0,   0,   0],
-           [  0,   2,   0, ...,   0,   0,   0],
-           [  0,   0,   3, ...,   0,   0,   0],
-           ...,
-           [  0,   0,   0, ...,  98,   0,   0],
-           [  0,   0,   0, ...,   0,  99,   0],
-           [  0,   0,   0, ...,   0,   0, 100]], dtype=int16)
-
-    The second mandatory input parameter `X` is a 2D array with the
-    row dimension determining the number of requested eigenvalues.
-    `X` is an initial guess for targeted eigenvectors.
-    `X` must have linearly independent columns.
-    If no initial approximations available, randomly oriented vectors
-    commonly work best, e.g., with components normally distributed
-    around zero or uniformly distributed on the interval [-1 1].
-    Setting the initial approximations to dtype ``np.float32``
-    forces all iterative values to dtype ``np.float32`` speeding up
-    the run while still allowing accurate eigenvalue computations.
-
-    >>> k = 1
-    >>> rng = np.random.default_rng()
-    >>> X = rng.normal(size=(n, k))
-    >>> X = X.astype(np.float32)
-
-    >>> eigenvalues, _ = lobpcg(A, X, maxiter=60)
-    >>> eigenvalues
-    array([100.])
-    >>> eigenvalues.dtype
-    dtype('float32')
-
-    `lobpcg` needs only access the matrix product with `A` rather
-    then the matrix itself. Since the matrix `A` is diagonal in
-    this example, one can write a function of the matrix product
-    ``A @ X`` using the diagonal values ``vals`` only, e.g., by
-    element-wise multiplication with broadcasting in the lambda-function
-
-    >>> A_lambda = lambda X: vals[:, np.newaxis] * X
-
-    or the regular function
-
-    >>> def A_matmat(X):
-    ...     return vals[:, np.newaxis] * X
-
-    and use the handle to one of these callables as an input
-
-    >>> eigenvalues, _ = lobpcg(A_lambda, X, maxiter=60)
-    >>> eigenvalues
-    array([100.])
-    >>> eigenvalues, _ = lobpcg(A_matmat, X, maxiter=60)
-    >>> eigenvalues
-    array([100.])
-
-    The traditional callable `LinearOperator` is no longer
-    necessary but still supported as the input to `lobpcg`.
-    Specifying ``matmat=A_matmat`` explicitly improves performance. 
-
-    >>> A_lo = LinearOperator((n, n), matvec=A_matmat, matmat=A_matmat, dtype=np.int16)
-    >>> eigenvalues, _ = lobpcg(A_lo, X, maxiter=80)
-    >>> eigenvalues
-    array([100.])
-
-    The least efficient callable option is `aslinearoperator`:
-
-    >>> eigenvalues, _ = lobpcg(aslinearoperator(A), X, maxiter=80)
-    >>> eigenvalues
-    array([100.])
-
-    We now switch to computing the three smallest eigenvalues specifying
-
-    >>> k = 3
-    >>> X = np.random.default_rng().normal(size=(n, k))
-
-    and ``largest=False`` parameter
-
-    >>> eigenvalues, _ = lobpcg(A, X, largest=False, maxiter=90)
-    >>> print(eigenvalues)  
-    [1. 2. 3.]
-
-    The next example illustrates computing 3 smallest eigenvalues of
-    the same matrix `A` given by the function handle ``A_matmat`` but
-    with constraints and preconditioning.
-
-    Constraints - an optional input parameter is a 2D array comprising
-    of column vectors that the eigenvectors must be orthogonal to
-
-    >>> Y = np.eye(n, 3)
-
-    The preconditioner acts as the inverse of `A` in this example, but
-    in the reduced precision ``np.float32`` even though the initial `X`
-    and thus all iterates and the output are in full ``np.float64``.
-
-    >>> inv_vals = 1./vals
-    >>> inv_vals = inv_vals.astype(np.float32)
-    >>> M = lambda X: inv_vals[:, np.newaxis] * X
-
-    Let us now solve the eigenvalue problem for the matrix `A` first
-    without preconditioning requesting 80 iterations
-
-    >>> eigenvalues, _ = lobpcg(A_matmat, X, Y=Y, largest=False, maxiter=80)
-    >>> eigenvalues
-    array([4., 5., 6.])
-    >>> eigenvalues.dtype
-    dtype('float64')
-
-    With preconditioning we need only 20 iterations from the same `X`
-
-    >>> eigenvalues, _ = lobpcg(A_matmat, X, Y=Y, M=M, largest=False, maxiter=20)
-    >>> eigenvalues
-    array([4., 5., 6.])
-
-    Note that the vectors passed in `Y` are the eigenvectors of the 3
-    smallest eigenvalues. The results returned above are orthogonal to those.
-
-    The primary matrix `A` may be indefinite, e.g., after shifting
-    ``vals`` by 50 from 1, ..., 100 to -49, ..., 50, we still can compute
-    the 3 smallest or largest eigenvalues.
-
-    >>> vals = vals - 50
-    >>> X = rng.normal(size=(n, k))
-    >>> eigenvalues, _ = lobpcg(A_matmat, X, largest=False, maxiter=99)
-    >>> eigenvalues
-    array([-49., -48., -47.])
-    >>> eigenvalues, _ = lobpcg(A_matmat, X, largest=True, maxiter=99)
-    >>> eigenvalues
-    array([50., 49., 48.])
-
-    """
-    blockVectorX = X
-    bestblockVectorX = blockVectorX
-    blockVectorY = Y
-    residualTolerance = tol
-    if maxiter is None:
-        maxiter = 20
-
-    bestIterationNumber = maxiter
-
-    sizeY = 0
-    if blockVectorY is not None:
-        if len(blockVectorY.shape) != 2:
-            warnings.warn(
-                f"Expected rank-2 array for argument Y, instead got "
-                f"{len(blockVectorY.shape)}, "
-                f"so ignore it and use no constraints.",
-                UserWarning, stacklevel=2
-            )
-            blockVectorY = None
-        else:
-            sizeY = blockVectorY.shape[1]
-
-    # Block size.
-    if blockVectorX is None:
-        raise ValueError("The mandatory initial matrix X cannot be None")
-    if len(blockVectorX.shape) != 2:
-        raise ValueError("expected rank-2 array for argument X")
-
-    n, sizeX = blockVectorX.shape
-
-    # Data type of iterates, determined by X, must be inexact
-    if not np.issubdtype(blockVectorX.dtype, np.inexact):
-        warnings.warn(
-            f"Data type for argument X is {blockVectorX.dtype}, "
-            f"which is not inexact, so casted to np.float32.",
-            UserWarning, stacklevel=2
-        )
-        blockVectorX = np.asarray(blockVectorX, dtype=np.float32)
-
-    if retLambdaHistory:
-        lambdaHistory = np.zeros((maxiter + 3, sizeX),
-                                 dtype=blockVectorX.dtype)
-    if retResidualNormsHistory:
-        residualNormsHistory = np.zeros((maxiter + 3, sizeX),
-                                        dtype=blockVectorX.dtype)
-
-    if verbosityLevel:
-        aux = "Solving "
-        if B is None:
-            aux += "standard"
-        else:
-            aux += "generalized"
-        aux += " eigenvalue problem with"
-        if M is None:
-            aux += "out"
-        aux += " preconditioning\n\n"
-        aux += "matrix size %d\n" % n
-        aux += "block size %d\n\n" % sizeX
-        if blockVectorY is None:
-            aux += "No constraints\n\n"
-        else:
-            if sizeY > 1:
-                aux += "%d constraints\n\n" % sizeY
-            else:
-                aux += "%d constraint\n\n" % sizeY
-        print(aux)
-
-    if (n - sizeY) < (5 * sizeX):
-        warnings.warn(
-            f"The problem size {n} minus the constraints size {sizeY} "
-            f"is too small relative to the block size {sizeX}. "
-            f"Using a dense eigensolver instead of LOBPCG iterations."
-            f"No output of the history of the iterations.",
-            UserWarning, stacklevel=2
-        )
-
-        sizeX = min(sizeX, n)
-
-        if blockVectorY is not None:
-            raise NotImplementedError(
-                "The dense eigensolver does not support constraints."
-            )
-
-        # Define the closed range of indices of eigenvalues to return.
-        if largest:
-            eigvals = (n - sizeX, n - 1)
-        else:
-            eigvals = (0, sizeX - 1)
-
-        try:
-            if isinstance(A, LinearOperator):
-                A = A(np.eye(n, dtype=int))
-            elif callable(A):
-                A = A(np.eye(n, dtype=int))
-                if A.shape != (n, n):
-                    raise ValueError(
-                        f"The shape {A.shape} of the primary matrix\n"
-                        f"defined by a callable object is wrong.\n"
-                    )
-            elif issparse(A):
-                A = A.toarray()
-            else:
-                A = np.asarray(A)
-        except Exception as e:
-            raise Exception(
-                f"Primary MatMul call failed with error\n"
-                f"{e}\n")
-
-        if B is not None:
-            try:
-                if isinstance(B, LinearOperator):
-                    B = B(np.eye(n, dtype=int))
-                elif callable(B):
-                    B = B(np.eye(n, dtype=int))
-                    if B.shape != (n, n):
-                        raise ValueError(
-                            f"The shape {B.shape} of the secondary matrix\n"
-                            f"defined by a callable object is wrong.\n"
-                        )
-                elif issparse(B):
-                    B = B.toarray()
-                else:
-                    B = np.asarray(B)
-            except Exception as e:
-                raise Exception(
-                    f"Secondary MatMul call failed with error\n"
-                    f"{e}\n")
-
-        try:
-            vals, vecs = eigh(A,
-                              B,
-                              subset_by_index=eigvals,
-                              check_finite=False)
-            if largest:
-                # Reverse order to be compatible with eigs() in 'LM' mode.
-                vals = vals[::-1]
-                vecs = vecs[:, ::-1]
-
-            return vals, vecs
-        except Exception as e:
-            raise Exception(
-                f"Dense eigensolver failed with error\n"
-                f"{e}\n"
-            )
-
-    if (residualTolerance is None) or (residualTolerance <= 0.0):
-        residualTolerance = np.sqrt(np.finfo(blockVectorX.dtype).eps) * n
-
-    A = _makeMatMat(A)
-    B = _makeMatMat(B)
-    M = _makeMatMat(M)
-
-    # Apply constraints to X.
-    if blockVectorY is not None:
-
-        if B is not None:
-            blockVectorBY = B(blockVectorY)
-            if blockVectorBY.shape != blockVectorY.shape:
-                raise ValueError(
-                    f"The shape {blockVectorY.shape} "
-                    f"of the constraint not preserved\n"
-                    f"and changed to {blockVectorBY.shape} "
-                    f"after multiplying by the secondary matrix.\n"
-                )
-        else:
-            blockVectorBY = blockVectorY
-
-        # gramYBY is a dense array.
-        gramYBY = blockVectorY.T.conj() @ blockVectorBY
-        try:
-            # gramYBY is a Cholesky factor from now on...
-            gramYBY = cho_factor(gramYBY, overwrite_a=True)
-        except LinAlgError as e:
-            raise ValueError("Linearly dependent constraints") from e
-
-        _applyConstraints(blockVectorX, gramYBY, blockVectorBY, blockVectorY)
-
-    ##
-    # B-orthonormalize X.
-    blockVectorX, blockVectorBX, _ = _b_orthonormalize(
-        B, blockVectorX, verbosityLevel=verbosityLevel)
-    if blockVectorX is None:
-        raise ValueError("Linearly dependent initial approximations")
-
-    ##
-    # Compute the initial Ritz vectors: solve the eigenproblem.
-    blockVectorAX = A(blockVectorX)
-    if blockVectorAX.shape != blockVectorX.shape:
-        raise ValueError(
-            f"The shape {blockVectorX.shape} "
-            f"of the initial approximations not preserved\n"
-            f"and changed to {blockVectorAX.shape} "
-            f"after multiplying by the primary matrix.\n"
-        )
-
-    gramXAX = blockVectorX.T.conj() @ blockVectorAX
-
-    _lambda, eigBlockVector = eigh(gramXAX, check_finite=False)
-    ii = _get_indx(_lambda, sizeX, largest)
-    _lambda = _lambda[ii]
-    if retLambdaHistory:
-        lambdaHistory[0, :] = _lambda
-
-    eigBlockVector = np.asarray(eigBlockVector[:, ii])
-    blockVectorX = _matmul_inplace(
-        blockVectorX, eigBlockVector,
-        verbosityLevel=verbosityLevel
-    )
-    blockVectorAX = _matmul_inplace(
-        blockVectorAX, eigBlockVector,
-        verbosityLevel=verbosityLevel
-    )
-    if B is not None:
-        blockVectorBX = _matmul_inplace(
-            blockVectorBX, eigBlockVector,
-            verbosityLevel=verbosityLevel
-        )
-
-    ##
-    # Active index set.
-    activeMask = np.ones((sizeX,), dtype=bool)
-
-    ##
-    # Main iteration loop.
-
-    blockVectorP = None  # set during iteration
-    blockVectorAP = None
-    blockVectorBP = None
-
-    smallestResidualNorm = np.abs(np.finfo(blockVectorX.dtype).max)
-
-    iterationNumber = -1
-    restart = True
-    forcedRestart = False
-    explicitGramFlag = False
-    while iterationNumber < maxiter:
-        iterationNumber += 1
-
-        if B is not None:
-            aux = blockVectorBX * _lambda[np.newaxis, :]
-        else:
-            aux = blockVectorX * _lambda[np.newaxis, :]
-
-        blockVectorR = blockVectorAX - aux
-
-        aux = np.sum(blockVectorR.conj() * blockVectorR, 0)
-        residualNorms = np.sqrt(np.abs(aux))
-        if retResidualNormsHistory:
-            residualNormsHistory[iterationNumber, :] = residualNorms
-        residualNorm = np.sum(np.abs(residualNorms)) / sizeX
-
-        if residualNorm < smallestResidualNorm:
-            smallestResidualNorm = residualNorm
-            bestIterationNumber = iterationNumber
-            bestblockVectorX = blockVectorX
-        elif residualNorm > 2**restartControl * smallestResidualNorm:
-            forcedRestart = True
-            blockVectorAX = A(blockVectorX)
-            if blockVectorAX.shape != blockVectorX.shape:
-                raise ValueError(
-                    f"The shape {blockVectorX.shape} "
-                    f"of the restarted iterate not preserved\n"
-                    f"and changed to {blockVectorAX.shape} "
-                    f"after multiplying by the primary matrix.\n"
-                )
-            if B is not None:
-                blockVectorBX = B(blockVectorX)
-                if blockVectorBX.shape != blockVectorX.shape:
-                    raise ValueError(
-                        f"The shape {blockVectorX.shape} "
-                        f"of the restarted iterate not preserved\n"
-                        f"and changed to {blockVectorBX.shape} "
-                        f"after multiplying by the secondary matrix.\n"
-                    )
-
-        ii = np.where(residualNorms > residualTolerance, True, False)
-        activeMask = activeMask & ii
-        currentBlockSize = activeMask.sum()
-
-        if verbosityLevel:
-            print(f"iteration {iterationNumber}")
-            print(f"current block size: {currentBlockSize}")
-            print(f"eigenvalue(s):\n{_lambda}")
-            print(f"residual norm(s):\n{residualNorms}")
-
-        if currentBlockSize == 0:
-            break
-
-        activeBlockVectorR = _as2d(blockVectorR[:, activeMask])
-
-        if iterationNumber > 0:
-            activeBlockVectorP = _as2d(blockVectorP[:, activeMask])
-            activeBlockVectorAP = _as2d(blockVectorAP[:, activeMask])
-            if B is not None:
-                activeBlockVectorBP = _as2d(blockVectorBP[:, activeMask])
-
-        if M is not None:
-            # Apply preconditioner T to the active residuals.
-            activeBlockVectorR = M(activeBlockVectorR)
-
-        ##
-        # Apply constraints to the preconditioned residuals.
-        if blockVectorY is not None:
-            _applyConstraints(activeBlockVectorR,
-                              gramYBY,
-                              blockVectorBY,
-                              blockVectorY)
-
-        ##
-        # B-orthogonalize the preconditioned residuals to X.
-        if B is not None:
-            activeBlockVectorR = activeBlockVectorR - (
-                blockVectorX @
-                (blockVectorBX.T.conj() @ activeBlockVectorR)
-            )
-        else:
-            activeBlockVectorR = activeBlockVectorR - (
-                blockVectorX @
-                (blockVectorX.T.conj() @ activeBlockVectorR)
-            )
-
-        ##
-        # B-orthonormalize the preconditioned residuals.
-        aux = _b_orthonormalize(
-            B, activeBlockVectorR, verbosityLevel=verbosityLevel)
-        activeBlockVectorR, activeBlockVectorBR, _ = aux
-
-        if activeBlockVectorR is None:
-            warnings.warn(
-                f"Failed at iteration {iterationNumber} with accuracies "
-                f"{residualNorms}\n not reaching the requested "
-                f"tolerance {residualTolerance}.",
-                UserWarning, stacklevel=2
-            )
-            break
-        activeBlockVectorAR = A(activeBlockVectorR)
-
-        if iterationNumber > 0:
-            if B is not None:
-                aux = _b_orthonormalize(
-                    B, activeBlockVectorP, activeBlockVectorBP,
-                    verbosityLevel=verbosityLevel
-                )
-                activeBlockVectorP, activeBlockVectorBP, invR = aux
-            else:
-                aux = _b_orthonormalize(B, activeBlockVectorP,
-                                        verbosityLevel=verbosityLevel)
-                activeBlockVectorP, _, invR = aux
-            # Function _b_orthonormalize returns None if Cholesky fails
-            if activeBlockVectorP is not None:
-                activeBlockVectorAP = _matmul_inplace(
-                    activeBlockVectorAP, invR,
-                    verbosityLevel=verbosityLevel
-                )
-                restart = forcedRestart
-            else:
-                restart = True
-
-        ##
-        # Perform the Rayleigh Ritz Procedure:
-        # Compute symmetric Gram matrices:
-
-        if activeBlockVectorAR.dtype == "float32":
-            myeps = 1
-        else:
-            myeps = np.sqrt(np.finfo(activeBlockVectorR.dtype).eps)
-
-        if residualNorms.max() > myeps and not explicitGramFlag:
-            explicitGramFlag = False
-        else:
-            # Once explicitGramFlag, forever explicitGramFlag.
-            explicitGramFlag = True
-
-        # Shared memory assignments to simplify the code
-        if B is None:
-            blockVectorBX = blockVectorX
-            activeBlockVectorBR = activeBlockVectorR
-            if not restart:
-                activeBlockVectorBP = activeBlockVectorP
-
-        # Common submatrices:
-        gramXAR = np.dot(blockVectorX.T.conj(), activeBlockVectorAR)
-        gramRAR = np.dot(activeBlockVectorR.T.conj(), activeBlockVectorAR)
-
-        gramDtype = activeBlockVectorAR.dtype
-        if explicitGramFlag:
-            gramRAR = (gramRAR + gramRAR.T.conj()) / 2
-            gramXAX = np.dot(blockVectorX.T.conj(), blockVectorAX)
-            gramXAX = (gramXAX + gramXAX.T.conj()) / 2
-            gramXBX = np.dot(blockVectorX.T.conj(), blockVectorBX)
-            gramRBR = np.dot(activeBlockVectorR.T.conj(), activeBlockVectorBR)
-            gramXBR = np.dot(blockVectorX.T.conj(), activeBlockVectorBR)
-        else:
-            gramXAX = np.diag(_lambda).astype(gramDtype)
-            gramXBX = np.eye(sizeX, dtype=gramDtype)
-            gramRBR = np.eye(currentBlockSize, dtype=gramDtype)
-            gramXBR = np.zeros((sizeX, currentBlockSize), dtype=gramDtype)
-
-        if not restart:
-            gramXAP = np.dot(blockVectorX.T.conj(), activeBlockVectorAP)
-            gramRAP = np.dot(activeBlockVectorR.T.conj(), activeBlockVectorAP)
-            gramPAP = np.dot(activeBlockVectorP.T.conj(), activeBlockVectorAP)
-            gramXBP = np.dot(blockVectorX.T.conj(), activeBlockVectorBP)
-            gramRBP = np.dot(activeBlockVectorR.T.conj(), activeBlockVectorBP)
-            if explicitGramFlag:
-                gramPAP = (gramPAP + gramPAP.T.conj()) / 2
-                gramPBP = np.dot(activeBlockVectorP.T.conj(),
-                                 activeBlockVectorBP)
-            else:
-                gramPBP = np.eye(currentBlockSize, dtype=gramDtype)
-
-            gramA = np.block(
-                [
-                    [gramXAX, gramXAR, gramXAP],
-                    [gramXAR.T.conj(), gramRAR, gramRAP],
-                    [gramXAP.T.conj(), gramRAP.T.conj(), gramPAP],
-                ]
-            )
-            gramB = np.block(
-                [
-                    [gramXBX, gramXBR, gramXBP],
-                    [gramXBR.T.conj(), gramRBR, gramRBP],
-                    [gramXBP.T.conj(), gramRBP.T.conj(), gramPBP],
-                ]
-            )
-
-            _handle_gramA_gramB_verbosity(gramA, gramB, verbosityLevel)
-
-            try:
-                _lambda, eigBlockVector = eigh(gramA,
-                                               gramB,
-                                               check_finite=False)
-            except LinAlgError as e:
-                # raise ValueError("eigh failed in lobpcg iterations") from e
-                if verbosityLevel:
-                    warnings.warn(
-                        f"eigh failed at iteration {iterationNumber} \n"
-                        f"with error {e} causing a restart.\n",
-                        UserWarning, stacklevel=2
-                    )
-                # try again after dropping the direction vectors P from RR
-                restart = True
-
-        if restart:
-            gramA = np.block([[gramXAX, gramXAR], [gramXAR.T.conj(), gramRAR]])
-            gramB = np.block([[gramXBX, gramXBR], [gramXBR.T.conj(), gramRBR]])
-
-            _handle_gramA_gramB_verbosity(gramA, gramB, verbosityLevel)
-
-            try:
-                _lambda, eigBlockVector = eigh(gramA,
-                                               gramB,
-                                               check_finite=False)
-            except LinAlgError as e:
-                # raise ValueError("eigh failed in lobpcg iterations") from e
-                warnings.warn(
-                    f"eigh failed at iteration {iterationNumber} with error\n"
-                    f"{e}\n",
-                    UserWarning, stacklevel=2
-                )
-                break
-
-        ii = _get_indx(_lambda, sizeX, largest)
-        _lambda = _lambda[ii]
-        eigBlockVector = eigBlockVector[:, ii]
-        if retLambdaHistory:
-            lambdaHistory[iterationNumber + 1, :] = _lambda
-
-        # Compute Ritz vectors.
-        if B is not None:
-            if not restart:
-                eigBlockVectorX = eigBlockVector[:sizeX]
-                eigBlockVectorR = eigBlockVector[sizeX:
-                                                 sizeX + currentBlockSize]
-                eigBlockVectorP = eigBlockVector[sizeX + currentBlockSize:]
-
-                pp = np.dot(activeBlockVectorR, eigBlockVectorR)
-                pp += np.dot(activeBlockVectorP, eigBlockVectorP)
-
-                app = np.dot(activeBlockVectorAR, eigBlockVectorR)
-                app += np.dot(activeBlockVectorAP, eigBlockVectorP)
-
-                bpp = np.dot(activeBlockVectorBR, eigBlockVectorR)
-                bpp += np.dot(activeBlockVectorBP, eigBlockVectorP)
-            else:
-                eigBlockVectorX = eigBlockVector[:sizeX]
-                eigBlockVectorR = eigBlockVector[sizeX:]
-
-                pp = np.dot(activeBlockVectorR, eigBlockVectorR)
-                app = np.dot(activeBlockVectorAR, eigBlockVectorR)
-                bpp = np.dot(activeBlockVectorBR, eigBlockVectorR)
-
-            blockVectorX = np.dot(blockVectorX, eigBlockVectorX) + pp
-            blockVectorAX = np.dot(blockVectorAX, eigBlockVectorX) + app
-            blockVectorBX = np.dot(blockVectorBX, eigBlockVectorX) + bpp
-
-            blockVectorP, blockVectorAP, blockVectorBP = pp, app, bpp
-
-        else:
-            if not restart:
-                eigBlockVectorX = eigBlockVector[:sizeX]
-                eigBlockVectorR = eigBlockVector[sizeX:
-                                                 sizeX + currentBlockSize]
-                eigBlockVectorP = eigBlockVector[sizeX + currentBlockSize:]
-
-                pp = np.dot(activeBlockVectorR, eigBlockVectorR)
-                pp += np.dot(activeBlockVectorP, eigBlockVectorP)
-
-                app = np.dot(activeBlockVectorAR, eigBlockVectorR)
-                app += np.dot(activeBlockVectorAP, eigBlockVectorP)
-            else:
-                eigBlockVectorX = eigBlockVector[:sizeX]
-                eigBlockVectorR = eigBlockVector[sizeX:]
-
-                pp = np.dot(activeBlockVectorR, eigBlockVectorR)
-                app = np.dot(activeBlockVectorAR, eigBlockVectorR)
-
-            blockVectorX = np.dot(blockVectorX, eigBlockVectorX) + pp
-            blockVectorAX = np.dot(blockVectorAX, eigBlockVectorX) + app
-
-            blockVectorP, blockVectorAP = pp, app
-
-    if B is not None:
-        aux = blockVectorBX * _lambda[np.newaxis, :]
-    else:
-        aux = blockVectorX * _lambda[np.newaxis, :]
-
-    blockVectorR = blockVectorAX - aux
-
-    aux = np.sum(blockVectorR.conj() * blockVectorR, 0)
-    residualNorms = np.sqrt(np.abs(aux))
-    # Use old lambda in case of early loop exit.
-    if retLambdaHistory:
-        lambdaHistory[iterationNumber + 1, :] = _lambda
-    if retResidualNormsHistory:
-        residualNormsHistory[iterationNumber + 1, :] = residualNorms
-    residualNorm = np.sum(np.abs(residualNorms)) / sizeX
-    if residualNorm < smallestResidualNorm:
-        smallestResidualNorm = residualNorm
-        bestIterationNumber = iterationNumber + 1
-        bestblockVectorX = blockVectorX
-
-    if np.max(np.abs(residualNorms)) > residualTolerance:
-        warnings.warn(
-            f"Exited at iteration {iterationNumber} with accuracies \n"
-            f"{residualNorms}\n"
-            f"not reaching the requested tolerance {residualTolerance}.\n"
-            f"Use iteration {bestIterationNumber} instead with accuracy \n"
-            f"{smallestResidualNorm}.\n",
-            UserWarning, stacklevel=2
-        )
-
-    if verbosityLevel:
-        print(f"Final iterative eigenvalue(s):\n{_lambda}")
-        print(f"Final iterative residual norm(s):\n{residualNorms}")
-
-    blockVectorX = bestblockVectorX
-    # Making eigenvectors "exactly" satisfy the blockVectorY constrains
-    if blockVectorY is not None:
-        _applyConstraints(blockVectorX,
-                          gramYBY,
-                          blockVectorBY,
-                          blockVectorY)
-
-    # Making eigenvectors "exactly" othonormalized by final "exact" RR
-    blockVectorAX = A(blockVectorX)
-    if blockVectorAX.shape != blockVectorX.shape:
-        raise ValueError(
-            f"The shape {blockVectorX.shape} "
-            f"of the postprocessing iterate not preserved\n"
-            f"and changed to {blockVectorAX.shape} "
-            f"after multiplying by the primary matrix.\n"
-        )
-    gramXAX = np.dot(blockVectorX.T.conj(), blockVectorAX)
-
-    blockVectorBX = blockVectorX
-    if B is not None:
-        blockVectorBX = B(blockVectorX)
-        if blockVectorBX.shape != blockVectorX.shape:
-            raise ValueError(
-                f"The shape {blockVectorX.shape} "
-                f"of the postprocessing iterate not preserved\n"
-                f"and changed to {blockVectorBX.shape} "
-                f"after multiplying by the secondary matrix.\n"
-            )
-
-    gramXBX = np.dot(blockVectorX.T.conj(), blockVectorBX)
-    _handle_gramA_gramB_verbosity(gramXAX, gramXBX, verbosityLevel)
-    gramXAX = (gramXAX + gramXAX.T.conj()) / 2
-    gramXBX = (gramXBX + gramXBX.T.conj()) / 2
-    try:
-        _lambda, eigBlockVector = eigh(gramXAX,
-                                       gramXBX,
-                                       check_finite=False)
-    except LinAlgError as e:
-        raise ValueError("eigh has failed in lobpcg postprocessing") from e
-
-    ii = _get_indx(_lambda, sizeX, largest)
-    _lambda = _lambda[ii]
-    eigBlockVector = np.asarray(eigBlockVector[:, ii])
-
-    blockVectorX = np.dot(blockVectorX, eigBlockVector)
-    blockVectorAX = np.dot(blockVectorAX, eigBlockVector)
-
-    if B is not None:
-        blockVectorBX = np.dot(blockVectorBX, eigBlockVector)
-        aux = blockVectorBX * _lambda[np.newaxis, :]
-    else:
-        aux = blockVectorX * _lambda[np.newaxis, :]
-
-    blockVectorR = blockVectorAX - aux
-
-    aux = np.sum(blockVectorR.conj() * blockVectorR, 0)
-    residualNorms = np.sqrt(np.abs(aux))
-
-    if retLambdaHistory:
-        lambdaHistory[bestIterationNumber + 1, :] = _lambda
-    if retResidualNormsHistory:
-        residualNormsHistory[bestIterationNumber + 1, :] = residualNorms
-
-    if retLambdaHistory:
-        lambdaHistory = lambdaHistory[
-            : bestIterationNumber + 2, :]
-    if retResidualNormsHistory:
-        residualNormsHistory = residualNormsHistory[
-            : bestIterationNumber + 2, :]
-
-    if np.max(np.abs(residualNorms)) > residualTolerance:
-        warnings.warn(
-            f"Exited postprocessing with accuracies \n"
-            f"{residualNorms}\n"
-            f"not reaching the requested tolerance {residualTolerance}.",
-            UserWarning, stacklevel=2
-        )
-
-    if verbosityLevel:
-        print(f"Final postprocessing eigenvalue(s):\n{_lambda}")
-        print(f"Final residual norm(s):\n{residualNorms}")
-
-    if retLambdaHistory:
-        lambdaHistory = np.vsplit(lambdaHistory, np.shape(lambdaHistory)[0])
-        lambdaHistory = [np.squeeze(i) for i in lambdaHistory]
-    if retResidualNormsHistory:
-        residualNormsHistory = np.vsplit(residualNormsHistory,
-                                         np.shape(residualNormsHistory)[0])
-        residualNormsHistory = [np.squeeze(i) for i in residualNormsHistory]
-
-    if retLambdaHistory:
-        if retResidualNormsHistory:
-            return _lambda, blockVectorX, lambdaHistory, residualNormsHistory
-        else:
-            return _lambda, blockVectorX, lambdaHistory
-    else:
-        if retResidualNormsHistory:
-            return _lambda, blockVectorX, residualNormsHistory
-        else:
-            return _lambda, blockVectorX
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 42e31047e65d114322d4c2d82e51f175b7613213..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/__pycache__/test_lobpcg.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/__pycache__/test_lobpcg.cpython-310.pyc
deleted file mode 100644
index e2be3712c60ca06b4e7a8d8007e2c614b99714b0..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/__pycache__/test_lobpcg.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/test_lobpcg.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/test_lobpcg.py
deleted file mode 100644
index 38b5e3833588d4dcf8cfad213a5dda2ea0da06da..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/lobpcg/tests/test_lobpcg.py
+++ /dev/null
@@ -1,641 +0,0 @@
-""" Test functions for the sparse.linalg._eigen.lobpcg module
-"""
-
-import itertools
-import platform
-import sys
-import pytest
-import numpy as np
-from numpy import ones, r_, diag
-from numpy.testing import (assert_almost_equal, assert_equal,
-                           assert_allclose, assert_array_less)
-
-from scipy import sparse
-from scipy.linalg import eig, eigh, toeplitz, orth
-from scipy.sparse import spdiags, diags, eye, csr_matrix
-from scipy.sparse.linalg import eigs, LinearOperator
-from scipy.sparse.linalg._eigen.lobpcg import lobpcg
-from scipy.sparse.linalg._eigen.lobpcg.lobpcg import _b_orthonormalize
-from scipy._lib._util import np_long, np_ulong
-
-_IS_32BIT = (sys.maxsize < 2**32)
-
-INT_DTYPES = {np.intc, np_long, np.longlong, np.uintc, np_ulong, np.ulonglong}
-# np.half is unsupported on many test systems so excluded
-REAL_DTYPES = {np.float32, np.float64, np.longdouble}
-COMPLEX_DTYPES = {np.complex64, np.complex128, np.clongdouble}
-# use sorted list to ensure fixed order of tests
-VDTYPES = sorted(REAL_DTYPES ^ COMPLEX_DTYPES, key=str)
-MDTYPES = sorted(INT_DTYPES ^ REAL_DTYPES ^ COMPLEX_DTYPES, key=str)
-
-
-def sign_align(A, B):
-    """Align signs of columns of A match those of B: column-wise remove
-    sign of A by multiplying with its sign then multiply in sign of B.
-    """
-    return np.array([col_A * np.sign(col_A[0]) * np.sign(col_B[0])
-                     for col_A, col_B in zip(A.T, B.T)]).T
-
-def ElasticRod(n):
-    """Build the matrices for the generalized eigenvalue problem of the
-    fixed-free elastic rod vibration model.
-    """
-    L = 1.0
-    le = L/n
-    rho = 7.85e3
-    S = 1.e-4
-    E = 2.1e11
-    mass = rho*S*le/6.
-    k = E*S/le
-    A = k*(diag(r_[2.*ones(n-1), 1])-diag(ones(n-1), 1)-diag(ones(n-1), -1))
-    B = mass*(diag(r_[4.*ones(n-1), 2])+diag(ones(n-1), 1)+diag(ones(n-1), -1))
-    return A, B
-
-
-def MikotaPair(n):
-    """Build a pair of full diagonal matrices for the generalized eigenvalue
-    problem. The Mikota pair acts as a nice test since the eigenvalues are the
-    squares of the integers n, n=1,2,...
-    """
-    x = np.arange(1, n+1)
-    B = diag(1./x)
-    y = np.arange(n-1, 0, -1)
-    z = np.arange(2*n-1, 0, -2)
-    A = diag(z)-diag(y, -1)-diag(y, 1)
-    return A, B
-
-
-def compare_solutions(A, B, m):
-    """Check eig vs. lobpcg consistency.
-    """
-    n = A.shape[0]
-    rnd = np.random.RandomState(0)
-    V = rnd.random((n, m))
-    X = orth(V)
-    eigvals, _ = lobpcg(A, X, B=B, tol=1e-2, maxiter=50, largest=False)
-    eigvals.sort()
-    w, _ = eig(A, b=B)
-    w.sort()
-    assert_almost_equal(w[:int(m/2)], eigvals[:int(m/2)], decimal=2)
-
-
-def test_Small():
-    A, B = ElasticRod(10)
-    with pytest.warns(UserWarning, match="The problem size"):
-        compare_solutions(A, B, 10)
-    A, B = MikotaPair(10)
-    with pytest.warns(UserWarning, match="The problem size"):
-        compare_solutions(A, B, 10)
-
-
-def test_ElasticRod():
-    A, B = ElasticRod(20)
-    msg = "Exited at iteration.*|Exited postprocessing with accuracies.*"
-    with pytest.warns(UserWarning, match=msg):
-        compare_solutions(A, B, 2)
-
-
-def test_MikotaPair():
-    A, B = MikotaPair(20)
-    compare_solutions(A, B, 2)
-
-
-@pytest.mark.parametrize("n", [50])
-@pytest.mark.parametrize("m", [1, 2, 10])
-@pytest.mark.parametrize("Vdtype", sorted(REAL_DTYPES, key=str))
-@pytest.mark.parametrize("Bdtype", sorted(REAL_DTYPES, key=str))
-@pytest.mark.parametrize("BVdtype", sorted(REAL_DTYPES, key=str))
-def test_b_orthonormalize(n, m, Vdtype, Bdtype, BVdtype):
-    """Test B-orthonormalization by Cholesky with callable 'B'.
-    The function '_b_orthonormalize' is key in LOBPCG but may
-    lead to numerical instabilities. The input vectors are often
-    badly scaled, so the function needs scale-invariant Cholesky;
-    see https://netlib.org/lapack/lawnspdf/lawn14.pdf.
-    """
-    rnd = np.random.RandomState(0)
-    X = rnd.standard_normal((n, m)).astype(Vdtype)
-    Xcopy = np.copy(X)
-    vals = np.arange(1, n+1, dtype=float)
-    B = diags([vals], [0], (n, n)).astype(Bdtype)
-    BX = B @ X
-    BX = BX.astype(BVdtype)
-    dtype = min(X.dtype, B.dtype, BX.dtype)
-    # np.longdouble tol cannot be achieved on most systems
-    atol = m * n * max(np.finfo(dtype).eps, np.finfo(np.float64).eps)
-
-    Xo, BXo, _ = _b_orthonormalize(lambda v: B @ v, X, BX)
-    # Check in-place.
-    assert_equal(X, Xo)
-    assert_equal(id(X), id(Xo))
-    assert_equal(BX, BXo)
-    assert_equal(id(BX), id(BXo))
-    # Check BXo.
-    assert_allclose(B @ Xo, BXo, atol=atol, rtol=atol)
-    # Check B-orthonormality
-    assert_allclose(Xo.T.conj() @ B @ Xo, np.identity(m),
-                    atol=atol, rtol=atol)
-    # Repeat without BX in outputs
-    X = np.copy(Xcopy)
-    Xo1, BXo1, _ = _b_orthonormalize(lambda v: B @ v, X)
-    assert_allclose(Xo, Xo1, atol=atol, rtol=atol)
-    assert_allclose(BXo, BXo1, atol=atol, rtol=atol)
-    # Check in-place.
-    assert_equal(X, Xo1)
-    assert_equal(id(X), id(Xo1))
-    # Check BXo1.
-    assert_allclose(B @ Xo1, BXo1, atol=atol, rtol=atol)
-
-    # Introduce column-scaling in X.
-    scaling = 1.0 / np.geomspace(10, 1e10, num=m)
-    X = Xcopy * scaling
-    X = X.astype(Vdtype)
-    BX = B @ X
-    BX = BX.astype(BVdtype)
-    # Check scaling-invariance of Cholesky-based orthonormalization
-    Xo1, BXo1, _ = _b_orthonormalize(lambda v: B @ v, X, BX)
-    # The output should be the same, up the signs of the columns.
-    Xo1 =  sign_align(Xo1, Xo)
-    assert_allclose(Xo, Xo1, atol=atol, rtol=atol)
-    BXo1 =  sign_align(BXo1, BXo)
-    assert_allclose(BXo, BXo1, atol=atol, rtol=atol)
-
-
-@pytest.mark.filterwarnings("ignore:Exited at iteration 0")
-@pytest.mark.filterwarnings("ignore:Exited postprocessing")
-def test_nonhermitian_warning(capsys):
-    """Check the warning of a Ritz matrix being not Hermitian
-    by feeding a non-Hermitian input matrix.
-    Also check stdout since verbosityLevel=1 and lack of stderr.
-    """
-    n = 10
-    X = np.arange(n * 2).reshape(n, 2).astype(np.float32)
-    A = np.arange(n * n).reshape(n, n).astype(np.float32)
-    with pytest.warns(UserWarning, match="Matrix gramA"):
-        _, _ = lobpcg(A, X, verbosityLevel=1, maxiter=0)
-    out, err = capsys.readouterr()  # Capture output
-    assert out.startswith("Solving standard eigenvalue")  # Test stdout
-    assert err == ''  # Test empty stderr
-    # Make the matrix symmetric and the UserWarning disappears.
-    A += A.T
-    _, _ = lobpcg(A, X, verbosityLevel=1, maxiter=0)
-    out, err = capsys.readouterr()  # Capture output
-    assert out.startswith("Solving standard eigenvalue")  # Test stdout
-    assert err == ''  # Test empty stderr
-
-
-def test_regression():
-    """Check the eigenvalue of the identity matrix is one.
-    """
-    # https://mail.python.org/pipermail/scipy-user/2010-October/026944.html
-    n = 10
-    X = np.ones((n, 1))
-    A = np.identity(n)
-    w, _ = lobpcg(A, X)
-    assert_allclose(w, [1])
-
-
-@pytest.mark.filterwarnings("ignore:The problem size")
-@pytest.mark.parametrize('n, m, m_excluded', [(30, 4, 3), (4, 2, 0)])
-def test_diagonal(n, m, m_excluded):
-    """Test ``m - m_excluded`` eigenvalues and eigenvectors of
-    diagonal matrices of the size ``n`` varying matrix formats:
-    dense array, spare matrix, and ``LinearOperator`` for both
-    matrixes in the generalized eigenvalue problem ``Av = cBv``
-    and for the preconditioner.
-    """
-    rnd = np.random.RandomState(0)
-
-    # Define the generalized eigenvalue problem Av = cBv
-    # where (c, v) is a generalized eigenpair,
-    # A is the diagonal matrix whose entries are 1,...n,
-    # B is the identity matrix.
-    vals = np.arange(1, n+1, dtype=float)
-    A_s = diags([vals], [0], (n, n))
-    A_a = A_s.toarray()
-
-    def A_f(x):
-        return A_s @ x
-
-    A_lo = LinearOperator(matvec=A_f,
-                          matmat=A_f,
-                          shape=(n, n), dtype=float)
-
-    B_a = eye(n)
-    B_s = csr_matrix(B_a)
-
-    def B_f(x):
-        return B_a @ x
-
-    B_lo = LinearOperator(matvec=B_f,
-                          matmat=B_f,
-                          shape=(n, n), dtype=float)
-
-    # Let the preconditioner M be the inverse of A.
-    M_s = diags([1./vals], [0], (n, n))
-    M_a = M_s.toarray()
-
-    def M_f(x):
-        return M_s @ x
-
-    M_lo = LinearOperator(matvec=M_f,
-                          matmat=M_f,
-                          shape=(n, n), dtype=float)
-
-    # Pick random initial vectors.
-    X = rnd.normal(size=(n, m))
-
-    # Require that the returned eigenvectors be in the orthogonal complement
-    # of the first few standard basis vectors.
-    if m_excluded > 0:
-        Y = np.eye(n, m_excluded)
-    else:
-        Y = None
-
-    for A in [A_a, A_s, A_lo]:
-        for B in [B_a, B_s, B_lo]:
-            for M in [M_a, M_s, M_lo]:
-                eigvals, vecs = lobpcg(A, X, B, M=M, Y=Y,
-                                       maxiter=40, largest=False)
-
-                assert_allclose(eigvals, np.arange(1+m_excluded,
-                                                   1+m_excluded+m))
-                _check_eigen(A, eigvals, vecs, rtol=1e-3, atol=1e-3)
-
-
-def _check_eigen(M, w, V, rtol=1e-8, atol=1e-14):
-    """Check if the eigenvalue residual is small.
-    """
-    mult_wV = np.multiply(w, V)
-    dot_MV = M.dot(V)
-    assert_allclose(mult_wV, dot_MV, rtol=rtol, atol=atol)
-
-
-def _check_fiedler(n, p):
-    """Check the Fiedler vector computation.
-    """
-    # This is not necessarily the recommended way to find the Fiedler vector.
-    col = np.zeros(n)
-    col[1] = 1
-    A = toeplitz(col)
-    D = np.diag(A.sum(axis=1))
-    L = D - A
-    # Compute the full eigendecomposition using tricks, e.g.
-    # http://www.cs.yale.edu/homes/spielman/561/2009/lect02-09.pdf
-    tmp = np.pi * np.arange(n) / n
-    analytic_w = 2 * (1 - np.cos(tmp))
-    analytic_V = np.cos(np.outer(np.arange(n) + 1/2, tmp))
-    _check_eigen(L, analytic_w, analytic_V)
-    # Compute the full eigendecomposition using eigh.
-    eigh_w, eigh_V = eigh(L)
-    _check_eigen(L, eigh_w, eigh_V)
-    # Check that the first eigenvalue is near zero and that the rest agree.
-    assert_array_less(np.abs([eigh_w[0], analytic_w[0]]), 1e-14)
-    assert_allclose(eigh_w[1:], analytic_w[1:])
-
-    # Check small lobpcg eigenvalues.
-    X = analytic_V[:, :p]
-    lobpcg_w, lobpcg_V = lobpcg(L, X, largest=False)
-    assert_equal(lobpcg_w.shape, (p,))
-    assert_equal(lobpcg_V.shape, (n, p))
-    _check_eigen(L, lobpcg_w, lobpcg_V)
-    assert_array_less(np.abs(np.min(lobpcg_w)), 1e-14)
-    assert_allclose(np.sort(lobpcg_w)[1:], analytic_w[1:p])
-
-    # Check large lobpcg eigenvalues.
-    X = analytic_V[:, -p:]
-    lobpcg_w, lobpcg_V = lobpcg(L, X, largest=True)
-    assert_equal(lobpcg_w.shape, (p,))
-    assert_equal(lobpcg_V.shape, (n, p))
-    _check_eigen(L, lobpcg_w, lobpcg_V)
-    assert_allclose(np.sort(lobpcg_w), analytic_w[-p:])
-
-    # Look for the Fiedler vector using good but not exactly correct guesses.
-    fiedler_guess = np.concatenate((np.ones(n//2), -np.ones(n-n//2)))
-    X = np.vstack((np.ones(n), fiedler_guess)).T
-    lobpcg_w, _ = lobpcg(L, X, largest=False)
-    # Mathematically, the smaller eigenvalue should be zero
-    # and the larger should be the algebraic connectivity.
-    lobpcg_w = np.sort(lobpcg_w)
-    assert_allclose(lobpcg_w, analytic_w[:2], atol=1e-14)
-
-
-def test_fiedler_small_8():
-    """Check the dense workaround path for small matrices.
-    """
-    # This triggers the dense path because 8 < 2*5.
-    with pytest.warns(UserWarning, match="The problem size"):
-        _check_fiedler(8, 2)
-
-
-def test_fiedler_large_12():
-    """Check the dense workaround path avoided for non-small matrices.
-    """
-    # This does not trigger the dense path, because 2*5 <= 12.
-    _check_fiedler(12, 2)
-
-
-@pytest.mark.filterwarnings("ignore:Failed at iteration")
-@pytest.mark.filterwarnings("ignore:Exited at iteration")
-@pytest.mark.filterwarnings("ignore:Exited postprocessing")
-def test_failure_to_run_iterations():
-    """Check that the code exits gracefully without breaking. Issue #10974.
-    The code may or not issue a warning, filtered out. Issue #15935, #17954.
-    """
-    rnd = np.random.RandomState(0)
-    X = rnd.standard_normal((100, 10))
-    A = X @ X.T
-    Q = rnd.standard_normal((X.shape[0], 4))
-    eigenvalues, _ = lobpcg(A, Q, maxiter=40, tol=1e-12)
-    assert np.max(eigenvalues) > 0
-
-
-def test_failure_to_run_iterations_nonsymmetric():
-    """Check that the code exists gracefully without breaking
-    if the matrix in not symmetric.
-    """
-    A = np.zeros((10, 10))
-    A[0, 1] = 1
-    Q = np.ones((10, 1))
-    msg = "Exited at iteration 2|Exited postprocessing with accuracies.*"
-    with pytest.warns(UserWarning, match=msg):
-        eigenvalues, _ = lobpcg(A, Q, maxiter=20)
-    assert np.max(eigenvalues) > 0
-
-
-@pytest.mark.filterwarnings("ignore:The problem size")
-def test_hermitian():
-    """Check complex-value Hermitian cases.
-    """
-    rnd = np.random.RandomState(0)
-
-    sizes = [3, 12]
-    ks = [1, 2]
-    gens = [True, False]
-
-    for s, k, gen, dh, dx, db in (
-        itertools.product(sizes, ks, gens, gens, gens, gens)
-    ):
-        H = rnd.random((s, s)) + 1.j * rnd.random((s, s))
-        H = 10 * np.eye(s) + H + H.T.conj()
-        H = H.astype(np.complex128) if dh else H.astype(np.complex64)
-
-        X = rnd.standard_normal((s, k))
-        X = X + 1.j * rnd.standard_normal((s, k))
-        X = X.astype(np.complex128) if dx else X.astype(np.complex64)
-
-        if not gen:
-            B = np.eye(s)
-            w, v = lobpcg(H, X, maxiter=99, verbosityLevel=0)
-            # Also test mixing complex H with real B.
-            wb, _ = lobpcg(H, X, B, maxiter=99, verbosityLevel=0)
-            assert_allclose(w, wb, rtol=1e-6)
-            w0, _ = eigh(H)
-        else:
-            B = rnd.random((s, s)) + 1.j * rnd.random((s, s))
-            B = 10 * np.eye(s) + B.dot(B.T.conj())
-            B = B.astype(np.complex128) if db else B.astype(np.complex64)
-            w, v = lobpcg(H, X, B, maxiter=99, verbosityLevel=0)
-            w0, _ = eigh(H, B)
-
-        for wx, vx in zip(w, v.T):
-            # Check eigenvector
-            assert_allclose(np.linalg.norm(H.dot(vx) - B.dot(vx) * wx)
-                            / np.linalg.norm(H.dot(vx)),
-                            0, atol=5e-2, rtol=0)
-
-            # Compare eigenvalues
-            j = np.argmin(abs(w0 - wx))
-            assert_allclose(wx, w0[j], rtol=1e-4)
-
-
-# The n=5 case tests the alternative small matrix code path that uses eigh().
-@pytest.mark.filterwarnings("ignore:The problem size")
-@pytest.mark.parametrize('n, atol', [(20, 1e-3), (5, 1e-8)])
-def test_eigs_consistency(n, atol):
-    """Check eigs vs. lobpcg consistency.
-    """
-    vals = np.arange(1, n+1, dtype=np.float64)
-    A = spdiags(vals, 0, n, n)
-    rnd = np.random.RandomState(0)
-    X = rnd.standard_normal((n, 2))
-    lvals, lvecs = lobpcg(A, X, largest=True, maxiter=100)
-    vals, _ = eigs(A, k=2)
-
-    _check_eigen(A, lvals, lvecs, atol=atol, rtol=0)
-    assert_allclose(np.sort(vals), np.sort(lvals), atol=1e-14)
-
-
-def test_verbosity():
-    """Check that nonzero verbosity level code runs.
-    """
-    rnd = np.random.RandomState(0)
-    X = rnd.standard_normal((10, 10))
-    A = X @ X.T
-    Q = rnd.standard_normal((X.shape[0], 1))
-    msg = "Exited at iteration.*|Exited postprocessing with accuracies.*"
-    with pytest.warns(UserWarning, match=msg):
-        _, _ = lobpcg(A, Q, maxiter=3, verbosityLevel=9)
-
-
-@pytest.mark.xfail(_IS_32BIT and sys.platform == 'win32',
-                   reason="tolerance violation on windows")
-@pytest.mark.xfail(platform.machine() == 'ppc64le',
-                   reason="fails on ppc64le")
-@pytest.mark.filterwarnings("ignore:Exited postprocessing")
-def test_tolerance_float32():
-    """Check lobpcg for attainable tolerance in float32.
-    """
-    rnd = np.random.RandomState(0)
-    n = 50
-    m = 3
-    vals = -np.arange(1, n + 1)
-    A = diags([vals], [0], (n, n))
-    A = A.astype(np.float32)
-    X = rnd.standard_normal((n, m))
-    X = X.astype(np.float32)
-    eigvals, _ = lobpcg(A, X, tol=1.25e-5, maxiter=50, verbosityLevel=0)
-    assert_allclose(eigvals, -np.arange(1, 1 + m), atol=2e-5, rtol=1e-5)
-
-
-@pytest.mark.parametrize("vdtype", VDTYPES)
-@pytest.mark.parametrize("mdtype", MDTYPES)
-@pytest.mark.parametrize("arr_type", [np.array,
-                                      sparse.csr_matrix,
-                                      sparse.coo_matrix])
-def test_dtypes(vdtype, mdtype, arr_type):
-    """Test lobpcg in various dtypes.
-    """
-    rnd = np.random.RandomState(0)
-    n = 12
-    m = 2
-    A = arr_type(np.diag(np.arange(1, n + 1)).astype(mdtype))
-    X = rnd.random((n, m))
-    X = X.astype(vdtype)
-    eigvals, eigvecs = lobpcg(A, X, tol=1e-2, largest=False)
-    assert_allclose(eigvals, np.arange(1, 1 + m), atol=1e-1)
-    # eigenvectors must be nearly real in any case
-    assert_allclose(np.sum(np.abs(eigvecs - eigvecs.conj())), 0, atol=1e-2)
-
-
-@pytest.mark.filterwarnings("ignore:Exited at iteration")
-@pytest.mark.filterwarnings("ignore:Exited postprocessing")
-def test_inplace_warning():
-    """Check lobpcg gives a warning in '_b_orthonormalize'
-    that in-place orthogonalization is impossible due to dtype mismatch.
-    """
-    rnd = np.random.RandomState(0)
-    n = 6
-    m = 1
-    vals = -np.arange(1, n + 1)
-    A = diags([vals], [0], (n, n))
-    A = A.astype(np.cdouble)
-    X = rnd.standard_normal((n, m))
-    with pytest.warns(UserWarning, match="Inplace update"):
-        eigvals, _ = lobpcg(A, X, maxiter=2, verbosityLevel=1)
-
-
-def test_maxit():
-    """Check lobpcg if maxit=maxiter runs maxiter iterations and
-    if maxit=None runs 20 iterations (the default)
-    by checking the size of the iteration history output, which should
-    be the number of iterations plus 3 (initial, final, and postprocessing)
-    typically when maxiter is small and the choice of the best is passive.
-    """
-    rnd = np.random.RandomState(0)
-    n = 50
-    m = 4
-    vals = -np.arange(1, n + 1)
-    A = diags([vals], [0], (n, n))
-    A = A.astype(np.float32)
-    X = rnd.standard_normal((n, m))
-    X = X.astype(np.float64)
-    msg = "Exited at iteration.*|Exited postprocessing with accuracies.*"
-    for maxiter in range(1, 4):
-        with pytest.warns(UserWarning, match=msg):
-            _, _, l_h, r_h = lobpcg(A, X, tol=1e-8, maxiter=maxiter,
-                                    retLambdaHistory=True,
-                                    retResidualNormsHistory=True)
-        assert_allclose(np.shape(l_h)[0], maxiter+3)
-        assert_allclose(np.shape(r_h)[0], maxiter+3)
-    with pytest.warns(UserWarning, match=msg):
-        l, _, l_h, r_h = lobpcg(A, X, tol=1e-8,
-                                retLambdaHistory=True,
-                                retResidualNormsHistory=True)
-    assert_allclose(np.shape(l_h)[0], 20+3)
-    assert_allclose(np.shape(r_h)[0], 20+3)
-    # Check that eigenvalue output is the last one in history
-    assert_allclose(l, l_h[-1])
-    # Make sure that both history outputs are lists
-    assert isinstance(l_h, list)
-    assert isinstance(r_h, list)
-    # Make sure that both history lists are arrays-like
-    assert_allclose(np.shape(l_h), np.shape(np.asarray(l_h)))
-    assert_allclose(np.shape(r_h), np.shape(np.asarray(r_h)))
-
-
-@pytest.mark.slow
-@pytest.mark.parametrize("n", [15])
-@pytest.mark.parametrize("m", [1, 2])
-@pytest.mark.filterwarnings("ignore:Exited at iteration")
-@pytest.mark.filterwarnings("ignore:Exited postprocessing")
-def test_diagonal_data_types(n, m):
-    """Check lobpcg for diagonal matrices for all matrix types.
-    Constraints are imposed, so a dense eigensolver eig cannot run.
-    """
-    rnd = np.random.RandomState(0)
-    # Define the generalized eigenvalue problem Av = cBv
-    # where (c, v) is a generalized eigenpair,
-    # and where we choose A  and B to be diagonal.
-    vals = np.arange(1, n + 1)
-
-    list_sparse_format = ['bsr', 'coo', 'csc', 'csr', 'dia', 'dok', 'lil']
-    for s_f_i, s_f in enumerate(list_sparse_format):
-
-        As64 = diags([vals * vals], [0], (n, n), format=s_f)
-        As32 = As64.astype(np.float32)
-        Af64 = As64.toarray()
-        Af32 = Af64.astype(np.float32)
-
-        def As32f(x):
-            return As32 @ x
-        As32LO = LinearOperator(matvec=As32f,
-                                matmat=As32f,
-                                shape=(n, n),
-                                dtype=As32.dtype)
-
-        listA = [Af64, As64, Af32, As32, As32f, As32LO, lambda v: As32 @ v]
-
-        Bs64 = diags([vals], [0], (n, n), format=s_f)
-        Bf64 = Bs64.toarray()
-        Bs32 = Bs64.astype(np.float32)
-
-        def Bs32f(x):
-            return Bs32 @ x
-        Bs32LO = LinearOperator(matvec=Bs32f,
-                                matmat=Bs32f,
-                                shape=(n, n),
-                                dtype=Bs32.dtype)
-        listB = [Bf64, Bs64, Bs32, Bs32f, Bs32LO, lambda v: Bs32 @ v]
-
-        # Define the preconditioner function as LinearOperator.
-        Ms64 = diags([1./vals], [0], (n, n), format=s_f)
-
-        def Ms64precond(x):
-            return Ms64 @ x
-        Ms64precondLO = LinearOperator(matvec=Ms64precond,
-                                       matmat=Ms64precond,
-                                       shape=(n, n),
-                                       dtype=Ms64.dtype)
-        Mf64 = Ms64.toarray()
-
-        def Mf64precond(x):
-            return Mf64 @ x
-        Mf64precondLO = LinearOperator(matvec=Mf64precond,
-                                       matmat=Mf64precond,
-                                       shape=(n, n),
-                                       dtype=Mf64.dtype)
-        Ms32 = Ms64.astype(np.float32)
-
-        def Ms32precond(x):
-            return Ms32 @ x
-        Ms32precondLO = LinearOperator(matvec=Ms32precond,
-                                       matmat=Ms32precond,
-                                       shape=(n, n),
-                                       dtype=Ms32.dtype)
-        Mf32 = Ms32.toarray()
-
-        def Mf32precond(x):
-            return Mf32 @ x
-        Mf32precondLO = LinearOperator(matvec=Mf32precond,
-                                       matmat=Mf32precond,
-                                       shape=(n, n),
-                                       dtype=Mf32.dtype)
-        listM = [None, Ms64, Ms64precondLO, Mf64precondLO, Ms64precond,
-                 Ms32, Ms32precondLO, Mf32precondLO, Ms32precond]
-
-        # Setup matrix of the initial approximation to the eigenvectors
-        # (cannot be sparse array).
-        Xf64 = rnd.random((n, m))
-        Xf32 = Xf64.astype(np.float32)
-        listX = [Xf64, Xf32]
-
-        # Require that the returned eigenvectors be in the orthogonal complement
-        # of the first few standard basis vectors (cannot be sparse array).
-        m_excluded = 3
-        Yf64 = np.eye(n, m_excluded, dtype=float)
-        Yf32 = np.eye(n, m_excluded, dtype=np.float32)
-        listY = [Yf64, Yf32]
-
-        tests = list(itertools.product(listA, listB, listM, listX, listY))
-
-        for A, B, M, X, Y in tests:
-            # This is one of the slower tests because there are >1,000 configs
-            # to test here. Flip a biased coin to decide whether to run  each
-            # test to get decent coverage in less time.
-            if rnd.random() < 0.98:
-                continue  # too many tests
-            eigvals, _ = lobpcg(A, X, B=B, M=M, Y=Y, tol=1e-4,
-                                maxiter=100, largest=False)
-            assert_allclose(eigvals,
-                            np.arange(1 + m_excluded, 1 + m_excluded + m),
-                            atol=1e-5)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 3c2d382f40295563e78af4d09dbb07b1da8f5557..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/__pycache__/test_svds.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/__pycache__/test_svds.cpython-310.pyc
deleted file mode 100644
index 01ac53ba5110829e6207d010403ae5f61a210a34..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/__pycache__/test_svds.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/test_svds.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/test_svds.py
deleted file mode 100644
index 587d0eb6ede989935ab1d210e8b142613565401f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_eigen/tests/test_svds.py
+++ /dev/null
@@ -1,862 +0,0 @@
-import re
-import copy
-import numpy as np
-
-from numpy.testing import assert_allclose, assert_equal, assert_array_equal
-import pytest
-
-from scipy.linalg import svd, null_space
-from scipy.sparse import csc_matrix, issparse, spdiags, random
-from scipy.sparse.linalg import LinearOperator, aslinearoperator
-from scipy.sparse.linalg import svds
-from scipy.sparse.linalg._eigen.arpack import ArpackNoConvergence
-
-
-# --- Helper Functions / Classes ---
-
-
-def sorted_svd(m, k, which='LM'):
-    # Compute svd of a dense matrix m, and return singular vectors/values
-    # sorted.
-    if issparse(m):
-        m = m.toarray()
-    u, s, vh = svd(m)
-    if which == 'LM':
-        ii = np.argsort(s)[-k:]
-    elif which == 'SM':
-        ii = np.argsort(s)[:k]
-    else:
-        raise ValueError(f"unknown which={which!r}")
-
-    return u[:, ii], s[ii], vh[ii]
-
-
-def _check_svds(A, k, u, s, vh, which="LM", check_usvh_A=False,
-                check_svd=True, atol=1e-10, rtol=1e-7):
-    n, m = A.shape
-
-    # Check shapes.
-    assert_equal(u.shape, (n, k))
-    assert_equal(s.shape, (k,))
-    assert_equal(vh.shape, (k, m))
-
-    # Check that the original matrix can be reconstituted.
-    A_rebuilt = (u*s).dot(vh)
-    assert_equal(A_rebuilt.shape, A.shape)
-    if check_usvh_A:
-        assert_allclose(A_rebuilt, A, atol=atol, rtol=rtol)
-
-    # Check that u is a semi-orthogonal matrix.
-    uh_u = np.dot(u.T.conj(), u)
-    assert_equal(uh_u.shape, (k, k))
-    assert_allclose(uh_u, np.identity(k), atol=atol, rtol=rtol)
-
-    # Check that vh is a semi-orthogonal matrix.
-    vh_v = np.dot(vh, vh.T.conj())
-    assert_equal(vh_v.shape, (k, k))
-    assert_allclose(vh_v, np.identity(k), atol=atol, rtol=rtol)
-
-    # Check that scipy.sparse.linalg.svds ~ scipy.linalg.svd
-    if check_svd:
-        u2, s2, vh2 = sorted_svd(A, k, which)
-        assert_allclose(np.abs(u), np.abs(u2), atol=atol, rtol=rtol)
-        assert_allclose(s, s2, atol=atol, rtol=rtol)
-        assert_allclose(np.abs(vh), np.abs(vh2), atol=atol, rtol=rtol)
-
-
-def _check_svds_n(A, k, u, s, vh, which="LM", check_res=True,
-                  check_svd=True, atol=1e-10, rtol=1e-7):
-    n, m = A.shape
-
-    # Check shapes.
-    assert_equal(u.shape, (n, k))
-    assert_equal(s.shape, (k,))
-    assert_equal(vh.shape, (k, m))
-
-    # Check that u is a semi-orthogonal matrix.
-    uh_u = np.dot(u.T.conj(), u)
-    assert_equal(uh_u.shape, (k, k))
-    error = np.sum(np.abs(uh_u - np.identity(k))) / (k * k)
-    assert_allclose(error, 0.0, atol=atol, rtol=rtol)
-
-    # Check that vh is a semi-orthogonal matrix.
-    vh_v = np.dot(vh, vh.T.conj())
-    assert_equal(vh_v.shape, (k, k))
-    error = np.sum(np.abs(vh_v - np.identity(k))) / (k * k)
-    assert_allclose(error, 0.0, atol=atol, rtol=rtol)
-
-    # Check residuals
-    if check_res:
-        ru = A.T.conj() @ u - vh.T.conj() * s
-        rus = np.sum(np.abs(ru)) / (n * k)
-        rvh = A @ vh.T.conj() - u * s
-        rvhs = np.sum(np.abs(rvh)) / (m * k)
-        assert_allclose(rus, 0.0, atol=atol, rtol=rtol)
-        assert_allclose(rvhs, 0.0, atol=atol, rtol=rtol)
-
-    # Check that scipy.sparse.linalg.svds ~ scipy.linalg.svd
-    if check_svd:
-        u2, s2, vh2 = sorted_svd(A, k, which)
-        assert_allclose(s, s2, atol=atol, rtol=rtol)
-        A_rebuilt_svd = (u2*s2).dot(vh2)
-        A_rebuilt = (u*s).dot(vh)
-        assert_equal(A_rebuilt.shape, A.shape)
-        error = np.sum(np.abs(A_rebuilt_svd - A_rebuilt)) / (k * k)
-        assert_allclose(error, 0.0, atol=atol, rtol=rtol)
-
-
-class CheckingLinearOperator(LinearOperator):
-    def __init__(self, A):
-        self.A = A
-        self.dtype = A.dtype
-        self.shape = A.shape
-
-    def _matvec(self, x):
-        assert_equal(max(x.shape), np.size(x))
-        return self.A.dot(x)
-
-    def _rmatvec(self, x):
-        assert_equal(max(x.shape), np.size(x))
-        return self.A.T.conjugate().dot(x)
-
-
-# --- Test Input Validation ---
-# Tests input validation on parameters `k` and `which`.
-# Needs better input validation checks for all other parameters.
-
-class SVDSCommonTests:
-
-    solver = None
-
-    # some of these IV tests could run only once, say with solver=None
-
-    _A_empty_msg = "`A` must not be empty."
-    _A_dtype_msg = "`A` must be of floating or complex floating data type"
-    _A_type_msg = "type not understood"
-    _A_ndim_msg = "array must have ndim <= 2"
-    _A_validation_inputs = [
-        (np.asarray([[]]), ValueError, _A_empty_msg),
-        (np.asarray([[1, 2], [3, 4]]), ValueError, _A_dtype_msg),
-        ("hi", TypeError, _A_type_msg),
-        (np.asarray([[[1., 2.], [3., 4.]]]), ValueError, _A_ndim_msg)]
-
-    @pytest.mark.parametrize("args", _A_validation_inputs)
-    def test_svds_input_validation_A(self, args):
-        A, error_type, message = args
-        with pytest.raises(error_type, match=message):
-            svds(A, k=1, solver=self.solver)
-
-    @pytest.mark.parametrize("k", [-1, 0, 3, 4, 5, 1.5, "1"])
-    def test_svds_input_validation_k_1(self, k):
-        rng = np.random.default_rng(0)
-        A = rng.random((4, 3))
-
-        # propack can do complete SVD
-        if self.solver == 'propack' and k == 3:
-            res = svds(A, k=k, solver=self.solver, random_state=0)
-            _check_svds(A, k, *res, check_usvh_A=True, check_svd=True)
-            return
-
-        message = ("`k` must be an integer satisfying")
-        with pytest.raises(ValueError, match=message):
-            svds(A, k=k, solver=self.solver)
-
-    def test_svds_input_validation_k_2(self):
-        # I think the stack trace is reasonable when `k` can't be converted
-        # to an int.
-        message = "int() argument must be a"
-        with pytest.raises(TypeError, match=re.escape(message)):
-            svds(np.eye(10), k=[], solver=self.solver)
-
-        message = "invalid literal for int()"
-        with pytest.raises(ValueError, match=message):
-            svds(np.eye(10), k="hi", solver=self.solver)
-
-    @pytest.mark.parametrize("tol", (-1, np.inf, np.nan))
-    def test_svds_input_validation_tol_1(self, tol):
-        message = "`tol` must be a non-negative floating point value."
-        with pytest.raises(ValueError, match=message):
-            svds(np.eye(10), tol=tol, solver=self.solver)
-
-    @pytest.mark.parametrize("tol", ([], 'hi'))
-    def test_svds_input_validation_tol_2(self, tol):
-        # I think the stack trace is reasonable here
-        message = "'<' not supported between instances"
-        with pytest.raises(TypeError, match=message):
-            svds(np.eye(10), tol=tol, solver=self.solver)
-
-    @pytest.mark.parametrize("which", ('LA', 'SA', 'ekki', 0))
-    def test_svds_input_validation_which(self, which):
-        # Regression test for a github issue.
-        # https://github.com/scipy/scipy/issues/4590
-        # Function was not checking for eigenvalue type and unintended
-        # values could be returned.
-        with pytest.raises(ValueError, match="`which` must be in"):
-            svds(np.eye(10), which=which, solver=self.solver)
-
-    @pytest.mark.parametrize("transpose", (True, False))
-    @pytest.mark.parametrize("n", range(4, 9))
-    def test_svds_input_validation_v0_1(self, transpose, n):
-        rng = np.random.default_rng(0)
-        A = rng.random((5, 7))
-        v0 = rng.random(n)
-        if transpose:
-            A = A.T
-        k = 2
-        message = "`v0` must have shape"
-
-        required_length = (A.shape[0] if self.solver == 'propack'
-                           else min(A.shape))
-        if n != required_length:
-            with pytest.raises(ValueError, match=message):
-                svds(A, k=k, v0=v0, solver=self.solver)
-
-    def test_svds_input_validation_v0_2(self):
-        A = np.ones((10, 10))
-        v0 = np.ones((1, 10))
-        message = "`v0` must have shape"
-        with pytest.raises(ValueError, match=message):
-            svds(A, k=1, v0=v0, solver=self.solver)
-
-    @pytest.mark.parametrize("v0", ("hi", 1, np.ones(10, dtype=int)))
-    def test_svds_input_validation_v0_3(self, v0):
-        A = np.ones((10, 10))
-        message = "`v0` must be of floating or complex floating data type."
-        with pytest.raises(ValueError, match=message):
-            svds(A, k=1, v0=v0, solver=self.solver)
-
-    @pytest.mark.parametrize("maxiter", (-1, 0, 5.5))
-    def test_svds_input_validation_maxiter_1(self, maxiter):
-        message = ("`maxiter` must be a positive integer.")
-        with pytest.raises(ValueError, match=message):
-            svds(np.eye(10), maxiter=maxiter, solver=self.solver)
-
-    def test_svds_input_validation_maxiter_2(self):
-        # I think the stack trace is reasonable when `k` can't be converted
-        # to an int.
-        message = "int() argument must be a"
-        with pytest.raises(TypeError, match=re.escape(message)):
-            svds(np.eye(10), maxiter=[], solver=self.solver)
-
-        message = "invalid literal for int()"
-        with pytest.raises(ValueError, match=message):
-            svds(np.eye(10), maxiter="hi", solver=self.solver)
-
-    @pytest.mark.parametrize("rsv", ('ekki', 10))
-    def test_svds_input_validation_return_singular_vectors(self, rsv):
-        message = "`return_singular_vectors` must be in"
-        with pytest.raises(ValueError, match=message):
-            svds(np.eye(10), return_singular_vectors=rsv, solver=self.solver)
-
-    # --- Test Parameters ---
-
-    @pytest.mark.parametrize("k", [3, 5])
-    @pytest.mark.parametrize("which", ["LM", "SM"])
-    def test_svds_parameter_k_which(self, k, which):
-        # check that the `k` parameter sets the number of eigenvalues/
-        # eigenvectors returned.
-        # Also check that the `which` parameter sets whether the largest or
-        # smallest eigenvalues are returned
-        rng = np.random.default_rng(0)
-        A = rng.random((10, 10))
-        if self.solver == 'lobpcg':
-            with pytest.warns(UserWarning, match="The problem size"):
-                res = svds(A, k=k, which=which, solver=self.solver,
-                           random_state=0)
-        else:
-            res = svds(A, k=k, which=which, solver=self.solver,
-                       random_state=0)
-        _check_svds(A, k, *res, which=which, atol=1e-9, rtol=2e-13)
-
-    @pytest.mark.filterwarnings("ignore:Exited",
-                                reason="Ignore LOBPCG early exit.")
-    # loop instead of parametrize for simplicity
-    def test_svds_parameter_tol(self):
-        # check the effect of the `tol` parameter on solver accuracy by solving
-        # the same problem with varying `tol` and comparing the eigenvalues
-        # against ground truth computed
-        n = 100  # matrix size
-        k = 3    # number of eigenvalues to check
-
-        # generate a random, sparse-ish matrix
-        # effect isn't apparent for matrices that are too small
-        rng = np.random.default_rng(0)
-        A = rng.random((n, n))
-        A[A > .1] = 0
-        A = A @ A.T
-
-        _, s, _ = svd(A)  # calculate ground truth
-
-        # calculate the error as a function of `tol`
-        A = csc_matrix(A)
-
-        def err(tol):
-            _, s2, _ = svds(A, k=k, v0=np.ones(n), maxiter=1000,
-                            solver=self.solver, tol=tol, random_state=0)
-            return np.linalg.norm((s2 - s[k-1::-1])/s[k-1::-1])
-
-        tols = [1e-4, 1e-2, 1e0]  # tolerance levels to check
-        # for 'arpack' and 'propack', accuracies make discrete steps
-        accuracies = {'propack': [1e-12, 1e-6, 1e-4],
-                      'arpack': [2.5e-15, 1e-10, 1e-10],
-                      'lobpcg': [2e-12, 4e-2, 2]}
-
-        for tol, accuracy in zip(tols, accuracies[self.solver]):
-            error = err(tol)
-            assert error < accuracy
-
-    def test_svd_v0(self):
-        # check that the `v0` parameter affects the solution
-        n = 100
-        k = 1
-        # If k != 1, LOBPCG needs more initial vectors, which are generated
-        # with random_state, so it does not pass w/ k >= 2.
-        # For some other values of `n`, the AssertionErrors are not raised
-        # with different v0s, which is reasonable.
-
-        rng = np.random.default_rng(0)
-        A = rng.random((n, n))
-
-        # with the same v0, solutions are the same, and they are accurate
-        # v0 takes precedence over random_state
-        v0a = rng.random(n)
-        res1a = svds(A, k, v0=v0a, solver=self.solver, random_state=0)
-        res2a = svds(A, k, v0=v0a, solver=self.solver, random_state=1)
-        for idx in range(3):
-            assert_allclose(res1a[idx], res2a[idx], rtol=1e-15, atol=2e-16)
-        _check_svds(A, k, *res1a)
-
-        # with the same v0, solutions are the same, and they are accurate
-        v0b = rng.random(n)
-        res1b = svds(A, k, v0=v0b, solver=self.solver, random_state=2)
-        res2b = svds(A, k, v0=v0b, solver=self.solver, random_state=3)
-        for idx in range(3):
-            assert_allclose(res1b[idx], res2b[idx], rtol=1e-15, atol=2e-16)
-        _check_svds(A, k, *res1b)
-
-        # with different v0, solutions can be numerically different
-        message = "Arrays are not equal"
-        with pytest.raises(AssertionError, match=message):
-            assert_equal(res1a, res1b)
-
-    def test_svd_random_state(self):
-        # check that the `random_state` parameter affects the solution
-        # Admittedly, `n` and `k` are chosen so that all solver pass all
-        # these checks. That's a tall order, since LOBPCG doesn't want to
-        # achieve the desired accuracy and ARPACK often returns the same
-        # singular values/vectors for different v0.
-        n = 100
-        k = 1
-
-        rng = np.random.default_rng(0)
-        A = rng.random((n, n))
-
-        # with the same random_state, solutions are the same and accurate
-        res1a = svds(A, k, solver=self.solver, random_state=0)
-        res2a = svds(A, k, solver=self.solver, random_state=0)
-        for idx in range(3):
-            assert_allclose(res1a[idx], res2a[idx], rtol=1e-15, atol=2e-16)
-        _check_svds(A, k, *res1a)
-
-        # with the same random_state, solutions are the same and accurate
-        res1b = svds(A, k, solver=self.solver, random_state=1)
-        res2b = svds(A, k, solver=self.solver, random_state=1)
-        for idx in range(3):
-            assert_allclose(res1b[idx], res2b[idx], rtol=1e-15, atol=2e-16)
-        _check_svds(A, k, *res1b)
-
-        # with different random_state, solutions can be numerically different
-        message = "Arrays are not equal"
-        with pytest.raises(AssertionError, match=message):
-            assert_equal(res1a, res1b)
-
-    @pytest.mark.parametrize("random_state", (0, 1,
-                                              np.random.RandomState(0),
-                                              np.random.default_rng(0)))
-    def test_svd_random_state_2(self, random_state):
-        n = 100
-        k = 1
-
-        rng = np.random.default_rng(0)
-        A = rng.random((n, n))
-
-        random_state_2 = copy.deepcopy(random_state)
-
-        # with the same random_state, solutions are the same and accurate
-        res1a = svds(A, k, solver=self.solver, random_state=random_state)
-        res2a = svds(A, k, solver=self.solver, random_state=random_state_2)
-        for idx in range(3):
-            assert_allclose(res1a[idx], res2a[idx], rtol=1e-15, atol=2e-16)
-        _check_svds(A, k, *res1a)
-
-    @pytest.mark.parametrize("random_state", (None,
-                                              np.random.RandomState(0),
-                                              np.random.default_rng(0)))
-    @pytest.mark.filterwarnings("ignore:Exited",
-                                reason="Ignore LOBPCG early exit.")
-    def test_svd_random_state_3(self, random_state):
-        n = 100
-        k = 5
-
-        rng = np.random.default_rng(0)
-        A = rng.random((n, n))
-
-        random_state = copy.deepcopy(random_state)
-
-        # random_state in different state produces accurate - but not
-        # not necessarily identical - results
-        res1a = svds(A, k, solver=self.solver, random_state=random_state, maxiter=1000)
-        res2a = svds(A, k, solver=self.solver, random_state=random_state, maxiter=1000)
-        _check_svds(A, k, *res1a, atol=2e-7)
-        _check_svds(A, k, *res2a, atol=2e-7)
-
-        message = "Arrays are not equal"
-        with pytest.raises(AssertionError, match=message):
-            assert_equal(res1a, res2a)
-
-    @pytest.mark.filterwarnings("ignore:Exited postprocessing")
-    def test_svd_maxiter(self):
-        # check that maxiter works as expected: should not return accurate
-        # solution after 1 iteration, but should with default `maxiter`
-        A = np.diag(np.arange(9)).astype(np.float64)
-        k = 1
-        u, s, vh = sorted_svd(A, k)
-        # Use default maxiter by default
-        maxiter = None
-
-        if self.solver == 'arpack':
-            message = "ARPACK error -1: No convergence"
-            with pytest.raises(ArpackNoConvergence, match=message):
-                svds(A, k, ncv=3, maxiter=1, solver=self.solver)
-        elif self.solver == 'lobpcg':
-            # Set maxiter higher so test passes without changing
-            # default and breaking backward compatibility (gh-20221)
-            maxiter = 30
-            with pytest.warns(UserWarning, match="Exited at iteration"):
-                svds(A, k, maxiter=1, solver=self.solver)
-        elif self.solver == 'propack':
-            message = "k=1 singular triplets did not converge within"
-            with pytest.raises(np.linalg.LinAlgError, match=message):
-                svds(A, k, maxiter=1, solver=self.solver)
-
-        ud, sd, vhd = svds(A, k, solver=self.solver, maxiter=maxiter,
-                           random_state=0)
-        _check_svds(A, k, ud, sd, vhd, atol=1e-8)
-        assert_allclose(np.abs(ud), np.abs(u), atol=1e-8)
-        assert_allclose(np.abs(vhd), np.abs(vh), atol=1e-8)
-        assert_allclose(np.abs(sd), np.abs(s), atol=1e-9)
-
-    @pytest.mark.parametrize("rsv", (True, False, 'u', 'vh'))
-    @pytest.mark.parametrize("shape", ((5, 7), (6, 6), (7, 5)))
-    def test_svd_return_singular_vectors(self, rsv, shape):
-        # check that the return_singular_vectors parameter works as expected
-        rng = np.random.default_rng(0)
-        A = rng.random(shape)
-        k = 2
-        M, N = shape
-        u, s, vh = sorted_svd(A, k)
-
-        respect_u = True if self.solver == 'propack' else M <= N
-        respect_vh = True if self.solver == 'propack' else M > N
-
-        if self.solver == 'lobpcg':
-            with pytest.warns(UserWarning, match="The problem size"):
-                if rsv is False:
-                    s2 = svds(A, k, return_singular_vectors=rsv,
-                              solver=self.solver, random_state=rng)
-                    assert_allclose(s2, s)
-                elif rsv == 'u' and respect_u:
-                    u2, s2, vh2 = svds(A, k, return_singular_vectors=rsv,
-                                       solver=self.solver, random_state=rng)
-                    assert_allclose(np.abs(u2), np.abs(u))
-                    assert_allclose(s2, s)
-                    assert vh2 is None
-                elif rsv == 'vh' and respect_vh:
-                    u2, s2, vh2 = svds(A, k, return_singular_vectors=rsv,
-                                       solver=self.solver, random_state=rng)
-                    assert u2 is None
-                    assert_allclose(s2, s)
-                    assert_allclose(np.abs(vh2), np.abs(vh))
-                else:
-                    u2, s2, vh2 = svds(A, k, return_singular_vectors=rsv,
-                                       solver=self.solver, random_state=rng)
-                    if u2 is not None:
-                        assert_allclose(np.abs(u2), np.abs(u))
-                    assert_allclose(s2, s)
-                    if vh2 is not None:
-                        assert_allclose(np.abs(vh2), np.abs(vh))
-        else:
-            if rsv is False:
-                s2 = svds(A, k, return_singular_vectors=rsv,
-                          solver=self.solver, random_state=rng)
-                assert_allclose(s2, s)
-            elif rsv == 'u' and respect_u:
-                u2, s2, vh2 = svds(A, k, return_singular_vectors=rsv,
-                                   solver=self.solver, random_state=rng)
-                assert_allclose(np.abs(u2), np.abs(u))
-                assert_allclose(s2, s)
-                assert vh2 is None
-            elif rsv == 'vh' and respect_vh:
-                u2, s2, vh2 = svds(A, k, return_singular_vectors=rsv,
-                                   solver=self.solver, random_state=rng)
-                assert u2 is None
-                assert_allclose(s2, s)
-                assert_allclose(np.abs(vh2), np.abs(vh))
-            else:
-                u2, s2, vh2 = svds(A, k, return_singular_vectors=rsv,
-                                   solver=self.solver, random_state=rng)
-                if u2 is not None:
-                    assert_allclose(np.abs(u2), np.abs(u))
-                assert_allclose(s2, s)
-                if vh2 is not None:
-                    assert_allclose(np.abs(vh2), np.abs(vh))
-
-    # --- Test Basic Functionality ---
-    # Tests the accuracy of each solver for real and complex matrices provided
-    # as list, dense array, sparse matrix, and LinearOperator.
-
-    A1 = [[1, 2, 3], [3, 4, 3], [1 + 1j, 0, 2], [0, 0, 1]]
-    A2 = [[1, 2, 3, 8 + 5j], [3 - 2j, 4, 3, 5], [1, 0, 2, 3], [0, 0, 1, 0]]
-
-    @pytest.mark.filterwarnings("ignore:k >= N - 1",
-                                reason="needed to demonstrate #16725")
-    @pytest.mark.parametrize('A', (A1, A2))
-    @pytest.mark.parametrize('k', range(1, 5))
-    # PROPACK fails a lot if @pytest.mark.parametrize('which', ("SM", "LM"))
-    @pytest.mark.parametrize('real', (True, False))
-    @pytest.mark.parametrize('transpose', (False, True))
-    # In gh-14299, it was suggested the `svds` should _not_ work with lists
-    @pytest.mark.parametrize('lo_type', (np.asarray, csc_matrix,
-                                         aslinearoperator))
-    def test_svd_simple(self, A, k, real, transpose, lo_type):
-
-        A = np.asarray(A)
-        A = np.real(A) if real else A
-        A = A.T if transpose else A
-        A2 = lo_type(A)
-
-        # could check for the appropriate errors, but that is tested above
-        if k > min(A.shape):
-            pytest.skip("`k` cannot be greater than `min(A.shape)`")
-        if self.solver != 'propack' and k >= min(A.shape):
-            pytest.skip("Only PROPACK supports complete SVD")
-        if self.solver == 'arpack' and not real and k == min(A.shape) - 1:
-            pytest.skip("#16725")
-
-        atol = 3e-10
-        if self.solver == 'propack':
-            atol = 3e-9  # otherwise test fails on Linux aarch64 (see gh-19855)
-
-        if self.solver == 'lobpcg':
-            with pytest.warns(UserWarning, match="The problem size"):
-                u, s, vh = svds(A2, k, solver=self.solver, random_state=0)
-        else:
-            u, s, vh = svds(A2, k, solver=self.solver, random_state=0)
-        _check_svds(A, k, u, s, vh, atol=atol)
-
-    def test_svd_linop(self):
-        solver = self.solver
-
-        nmks = [(6, 7, 3),
-                (9, 5, 4),
-                (10, 8, 5)]
-
-        def reorder(args):
-            U, s, VH = args
-            j = np.argsort(s)
-            return U[:, j], s[j], VH[j, :]
-
-        for n, m, k in nmks:
-            # Test svds on a LinearOperator.
-            A = np.random.RandomState(52).randn(n, m)
-            L = CheckingLinearOperator(A)
-
-            if solver == 'propack':
-                v0 = np.ones(n)
-            else:
-                v0 = np.ones(min(A.shape))
-            if solver == 'lobpcg':
-                with pytest.warns(UserWarning, match="The problem size"):
-                    U1, s1, VH1 = reorder(svds(A, k, v0=v0, solver=solver,
-                                               random_state=0))
-                    U2, s2, VH2 = reorder(svds(L, k, v0=v0, solver=solver, 
-                                               random_state=0))
-            else:
-                U1, s1, VH1 = reorder(svds(A, k, v0=v0, solver=solver,
-                                           random_state=0))
-                U2, s2, VH2 = reorder(svds(L, k, v0=v0, solver=solver,
-                                           random_state=0))
-
-            assert_allclose(np.abs(U1), np.abs(U2))
-            assert_allclose(s1, s2)
-            assert_allclose(np.abs(VH1), np.abs(VH2))
-            assert_allclose(np.dot(U1, np.dot(np.diag(s1), VH1)),
-                            np.dot(U2, np.dot(np.diag(s2), VH2)))
-
-            # Try again with which="SM".
-            A = np.random.RandomState(1909).randn(n, m)
-            L = CheckingLinearOperator(A)
-
-            # TODO: arpack crashes when v0=v0, which="SM"
-            kwargs = {'v0': v0} if solver not in {None, 'arpack'} else {}
-            if self.solver == 'lobpcg':
-                with pytest.warns(UserWarning, match="The problem size"):
-                    U1, s1, VH1 = reorder(svds(A, k, which="SM", solver=solver,
-                                               random_state=0, **kwargs))
-                    U2, s2, VH2 = reorder(svds(L, k, which="SM", solver=solver,
-                                               random_state=0, **kwargs))
-            else:
-                U1, s1, VH1 = reorder(svds(A, k, which="SM", solver=solver,
-                                           random_state=0, **kwargs))
-                U2, s2, VH2 = reorder(svds(L, k, which="SM", solver=solver,
-                                           random_state=0, **kwargs))
-
-            assert_allclose(np.abs(U1), np.abs(U2))
-            assert_allclose(s1 + 1, s2 + 1)
-            assert_allclose(np.abs(VH1), np.abs(VH2))
-            assert_allclose(np.dot(U1, np.dot(np.diag(s1), VH1)),
-                            np.dot(U2, np.dot(np.diag(s2), VH2)))
-
-            if k < min(n, m) - 1:
-                # Complex input and explicit which="LM".
-                for (dt, eps) in [(complex, 1e-7), (np.complex64, 3e-3)]:
-                    rng = np.random.RandomState(1648)
-                    A = (rng.randn(n, m) + 1j * rng.randn(n, m)).astype(dt)
-                    L = CheckingLinearOperator(A)
-
-                    if self.solver == 'lobpcg':
-                        with pytest.warns(UserWarning,
-                                          match="The problem size"):
-                            U1, s1, VH1 = reorder(svds(A, k, which="LM",
-                                                       solver=solver,
-                                                       random_state=0))
-                            U2, s2, VH2 = reorder(svds(L, k, which="LM",
-                                                       solver=solver,
-                                                       random_state=0))
-                    else:
-                        U1, s1, VH1 = reorder(svds(A, k, which="LM",
-                                                   solver=solver,
-                                                   random_state=0))
-                        U2, s2, VH2 = reorder(svds(L, k, which="LM",
-                                                   solver=solver,
-                                                   random_state=0))
-
-                    assert_allclose(np.abs(U1), np.abs(U2), rtol=eps)
-                    assert_allclose(s1, s2, rtol=eps)
-                    assert_allclose(np.abs(VH1), np.abs(VH2), rtol=eps)
-                    assert_allclose(np.dot(U1, np.dot(np.diag(s1), VH1)),
-                                    np.dot(U2, np.dot(np.diag(s2), VH2)),
-                                    rtol=eps)
-
-    SHAPES = ((100, 100), (100, 101), (101, 100))
-
-    @pytest.mark.filterwarnings("ignore:Exited at iteration")
-    @pytest.mark.filterwarnings("ignore:Exited postprocessing")
-    @pytest.mark.parametrize("shape", SHAPES)
-    # ARPACK supports only dtype float, complex, or np.float32
-    @pytest.mark.parametrize("dtype", (float, complex, np.float32))
-    def test_small_sigma_sparse(self, shape, dtype):
-        # https://github.com/scipy/scipy/pull/11829
-        solver = self.solver
-        # 2do: PROPACK fails orthogonality of singular vectors
-        # if dtype == complex and self.solver == 'propack':
-        #    pytest.skip("PROPACK unsupported for complex dtype")
-        rng = np.random.default_rng(0)
-        k = 5
-        (m, n) = shape
-        S = random(m, n, density=0.1, random_state=rng)
-        if dtype == complex:
-            S = + 1j * random(m, n, density=0.1, random_state=rng)
-        e = np.ones(m)
-        e[0:5] *= 1e1 ** np.arange(-5, 0, 1)
-        S = spdiags(e, 0, m, m) @ S
-        S = S.astype(dtype)
-        u, s, vh = svds(S, k, which='SM', solver=solver, maxiter=1000,
-                        random_state=0)
-        c_svd = False  # partial SVD can be different from full SVD
-        _check_svds_n(S, k, u, s, vh, which="SM", check_svd=c_svd, atol=2e-1)
-
-    # --- Test Edge Cases ---
-    # Checks a few edge cases.
-
-    @pytest.mark.parametrize("shape", ((6, 5), (5, 5), (5, 6)))
-    @pytest.mark.parametrize("dtype", (float, complex))
-    def test_svd_LM_ones_matrix(self, shape, dtype):
-        # Check that svds can deal with matrix_rank less than k in LM mode.
-        k = 3
-        n, m = shape
-        A = np.ones((n, m), dtype=dtype)
-
-        if self.solver == 'lobpcg':
-            with pytest.warns(UserWarning, match="The problem size"):
-                U, s, VH = svds(A, k, solver=self.solver, random_state=0)
-        else:
-            U, s, VH = svds(A, k, solver=self.solver, random_state=0)
-
-        _check_svds(A, k, U, s, VH, check_usvh_A=True, check_svd=False)
-
-        # Check that the largest singular value is near sqrt(n*m)
-        # and the other singular values have been forced to zero.
-        assert_allclose(np.max(s), np.sqrt(n*m))
-        s = np.array(sorted(s)[:-1]) + 1
-        z = np.ones_like(s)
-        assert_allclose(s, z)
-
-    @pytest.mark.filterwarnings("ignore:k >= N - 1",
-                                reason="needed to demonstrate #16725")
-    @pytest.mark.parametrize("shape", ((3, 4), (4, 4), (4, 3), (4, 2)))
-    @pytest.mark.parametrize("dtype", (float, complex))
-    def test_zero_matrix(self, shape, dtype):
-        # Check that svds can deal with matrices containing only zeros;
-        # see https://github.com/scipy/scipy/issues/3452/
-        # shape = (4, 2) is included because it is the particular case
-        # reported in the issue
-        k = 1
-        n, m = shape
-        A = np.zeros((n, m), dtype=dtype)
-
-        if (self.solver == 'arpack' and dtype is complex
-                and k == min(A.shape) - 1):
-            pytest.skip("#16725")
-
-        if self.solver == 'propack':
-            pytest.skip("PROPACK failures unrelated to PR #16712")
-
-        if self.solver == 'lobpcg':
-            with pytest.warns(UserWarning, match="The problem size"):
-                U, s, VH = svds(A, k, solver=self.solver, random_state=0)
-        else:
-            U, s, VH = svds(A, k, solver=self.solver, random_state=0)
-
-        # Check some generic properties of svd.
-        _check_svds(A, k, U, s, VH, check_usvh_A=True, check_svd=False)
-
-        # Check that the singular values are zero.
-        assert_array_equal(s, 0)
-
-    @pytest.mark.parametrize("shape", ((20, 20), (20, 21), (21, 20)))
-    # ARPACK supports only dtype float, complex, or np.float32
-    @pytest.mark.parametrize("dtype", (float, complex, np.float32))
-    @pytest.mark.filterwarnings("ignore:Exited",
-                                reason="Ignore LOBPCG early exit.")
-    def test_small_sigma(self, shape, dtype):
-        rng = np.random.default_rng(179847540)
-        A = rng.random(shape).astype(dtype)
-        u, _, vh = svd(A, full_matrices=False)
-        if dtype == np.float32:
-            e = 10.0
-        else:
-            e = 100.0
-        t = e**(-np.arange(len(vh))).astype(dtype)
-        A = (u*t).dot(vh)
-        k = 4
-        u, s, vh = svds(A, k, solver=self.solver, maxiter=100, random_state=0)
-        t = np.sum(s > 0)
-        assert_equal(t, k)
-        # LOBPCG needs larger atol and rtol to pass
-        _check_svds_n(A, k, u, s, vh, atol=1e-3, rtol=1e0, check_svd=False)
-
-    # ARPACK supports only dtype float, complex, or np.float32
-    @pytest.mark.filterwarnings("ignore:The problem size")
-    @pytest.mark.parametrize("dtype", (float, complex, np.float32))
-    def test_small_sigma2(self, dtype):
-        rng = np.random.default_rng(179847540)
-        # create a 10x10 singular matrix with a 4-dim null space
-        dim = 4
-        size = 10
-        x = rng.random((size, size-dim))
-        y = x[:, :dim] * rng.random(dim)
-        mat = np.hstack((x, y))
-        mat = mat.astype(dtype)
-
-        nz = null_space(mat)
-        assert_equal(nz.shape[1], dim)
-
-        # Tolerances atol and rtol adjusted to pass np.float32
-        # Use non-sparse svd
-        u, s, vh = svd(mat)
-        # Singular values are 0:
-        assert_allclose(s[-dim:], 0, atol=1e-6, rtol=1e0)
-        # Smallest right singular vectors in null space:
-        assert_allclose(mat @ vh[-dim:, :].T, 0, atol=1e-6, rtol=1e0)
-
-        # Smallest singular values should be 0
-        sp_mat = csc_matrix(mat)
-        su, ss, svh = svds(sp_mat, k=dim, which='SM', solver=self.solver,
-                           random_state=0)
-        # Smallest dim singular values are 0:
-        assert_allclose(ss, 0, atol=1e-5, rtol=1e0)
-        # Smallest singular vectors via svds in null space:
-        n, m = mat.shape
-        if n < m:  # else the assert fails with some libraries unclear why
-            assert_allclose(sp_mat.transpose() @ su, 0, atol=1e-5, rtol=1e0)
-        assert_allclose(sp_mat @ svh.T, 0, atol=1e-5, rtol=1e0)
-
-# --- Perform tests with each solver ---
-
-
-class Test_SVDS_once:
-    @pytest.mark.parametrize("solver", ['ekki', object])
-    def test_svds_input_validation_solver(self, solver):
-        message = "solver must be one of"
-        with pytest.raises(ValueError, match=message):
-            svds(np.ones((3, 4)), k=2, solver=solver)
-
-
-class Test_SVDS_ARPACK(SVDSCommonTests):
-
-    def setup_method(self):
-        self.solver = 'arpack'
-
-    @pytest.mark.parametrize("ncv", list(range(-1, 8)) + [4.5, "5"])
-    def test_svds_input_validation_ncv_1(self, ncv):
-        rng = np.random.default_rng(0)
-        A = rng.random((6, 7))
-        k = 3
-        if ncv in {4, 5}:
-            u, s, vh = svds(A, k=k, ncv=ncv, solver=self.solver, random_state=0)
-        # partial decomposition, so don't check that u@diag(s)@vh=A;
-        # do check that scipy.sparse.linalg.svds ~ scipy.linalg.svd
-            _check_svds(A, k, u, s, vh)
-        else:
-            message = ("`ncv` must be an integer satisfying")
-            with pytest.raises(ValueError, match=message):
-                svds(A, k=k, ncv=ncv, solver=self.solver)
-
-    def test_svds_input_validation_ncv_2(self):
-        # I think the stack trace is reasonable when `ncv` can't be converted
-        # to an int.
-        message = "int() argument must be a"
-        with pytest.raises(TypeError, match=re.escape(message)):
-            svds(np.eye(10), ncv=[], solver=self.solver)
-
-        message = "invalid literal for int()"
-        with pytest.raises(ValueError, match=message):
-            svds(np.eye(10), ncv="hi", solver=self.solver)
-
-    # I can't see a robust relationship between `ncv` and relevant outputs
-    # (e.g. accuracy, time), so no test of the parameter.
-
-
-class Test_SVDS_LOBPCG(SVDSCommonTests):
-
-    def setup_method(self):
-        self.solver = 'lobpcg'
-
-
-class Test_SVDS_PROPACK(SVDSCommonTests):
-
-    def setup_method(self):
-        self.solver = 'propack'
-
-    def test_svd_LM_ones_matrix(self):
-        message = ("PROPACK does not return orthonormal singular vectors "
-                   "associated with zero singular values.")
-        # There are some other issues with this matrix of all ones, e.g.
-        # `which='sm'` and `k=1` returns the largest singular value
-        pytest.xfail(message)
-
-    def test_svd_LM_zeros_matrix(self):
-        message = ("PROPACK does not return orthonormal singular vectors "
-                   "associated with zero singular values.")
-        pytest.xfail(message)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_expm_multiply.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_expm_multiply.py
deleted file mode 100644
index 6bc8d83b75a7944193e8060aeb0f841f3a402b16..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_expm_multiply.py
+++ /dev/null
@@ -1,810 +0,0 @@
-"""Compute the action of the matrix exponential."""
-from warnings import warn
-
-import numpy as np
-
-import scipy.linalg
-import scipy.sparse.linalg
-from scipy.linalg._decomp_qr import qr
-from scipy.sparse._sputils import is_pydata_spmatrix
-from scipy.sparse.linalg import aslinearoperator
-from scipy.sparse.linalg._interface import IdentityOperator
-from scipy.sparse.linalg._onenormest import onenormest
-
-__all__ = ['expm_multiply']
-
-
-def _exact_inf_norm(A):
-    # A compatibility function which should eventually disappear.
-    if scipy.sparse.issparse(A):
-        return max(abs(A).sum(axis=1).flat)
-    elif is_pydata_spmatrix(A):
-        return max(abs(A).sum(axis=1))
-    else:
-        return np.linalg.norm(A, np.inf)
-
-
-def _exact_1_norm(A):
-    # A compatibility function which should eventually disappear.
-    if scipy.sparse.issparse(A):
-        return max(abs(A).sum(axis=0).flat)
-    elif is_pydata_spmatrix(A):
-        return max(abs(A).sum(axis=0))
-    else:
-        return np.linalg.norm(A, 1)
-
-
-def _trace(A):
-    # A compatibility function which should eventually disappear.
-    if is_pydata_spmatrix(A):
-        return A.to_scipy_sparse().trace()
-    else:
-        return A.trace()
-
-
-def traceest(A, m3, seed=None):
-    """Estimate `np.trace(A)` using `3*m3` matrix-vector products.
-
-    The result is not deterministic.
-
-    Parameters
-    ----------
-    A : LinearOperator
-        Linear operator whose trace will be estimated. Has to be square.
-    m3 : int
-        Number of matrix-vector products divided by 3 used to estimate the
-        trace.
-    seed : optional
-        Seed for `numpy.random.default_rng`.
-        Can be provided to obtain deterministic results.
-
-    Returns
-    -------
-    trace : LinearOperator.dtype
-        Estimate of the trace
-
-    Notes
-    -----
-    This is the Hutch++ algorithm given in [1]_.
-
-    References
-    ----------
-    .. [1] Meyer, Raphael A., Cameron Musco, Christopher Musco, and David P.
-       Woodruff. "Hutch++: Optimal Stochastic Trace Estimation." In Symposium
-       on Simplicity in Algorithms (SOSA), pp. 142-155. Society for Industrial
-       and Applied Mathematics, 2021
-       https://doi.org/10.1137/1.9781611976496.16
-
-    """
-    rng = np.random.default_rng(seed)
-    if len(A.shape) != 2 or A.shape[-1] != A.shape[-2]:
-        raise ValueError("Expected A to be like a square matrix.")
-    n = A.shape[-1]
-    S = rng.choice([-1.0, +1.0], [n, m3])
-    Q, _ = qr(A.matmat(S), overwrite_a=True, mode='economic')
-    trQAQ = np.trace(Q.conj().T @ A.matmat(Q))
-    G = rng.choice([-1, +1], [n, m3])
-    right = G - Q@(Q.conj().T @ G)
-    trGAG = np.trace(right.conj().T @ A.matmat(right))
-    return trQAQ + trGAG/m3
-
-
-def _ident_like(A):
-    # A compatibility function which should eventually disappear.
-    if scipy.sparse.issparse(A):
-        # Creates a sparse matrix in dia format
-        out = scipy.sparse.eye(A.shape[0], A.shape[1], dtype=A.dtype)
-        if isinstance(A, scipy.sparse.spmatrix):
-            return out.asformat(A.format)
-        return scipy.sparse.dia_array(out).asformat(A.format)
-    elif is_pydata_spmatrix(A):
-        import sparse
-        return sparse.eye(A.shape[0], A.shape[1], dtype=A.dtype)
-    elif isinstance(A, scipy.sparse.linalg.LinearOperator):
-        return IdentityOperator(A.shape, dtype=A.dtype)
-    else:
-        return np.eye(A.shape[0], A.shape[1], dtype=A.dtype)
-
-
-def expm_multiply(A, B, start=None, stop=None, num=None,
-                  endpoint=None, traceA=None):
-    """
-    Compute the action of the matrix exponential of A on B.
-
-    Parameters
-    ----------
-    A : transposable linear operator
-        The operator whose exponential is of interest.
-    B : ndarray
-        The matrix or vector to be multiplied by the matrix exponential of A.
-    start : scalar, optional
-        The starting time point of the sequence.
-    stop : scalar, optional
-        The end time point of the sequence, unless `endpoint` is set to False.
-        In that case, the sequence consists of all but the last of ``num + 1``
-        evenly spaced time points, so that `stop` is excluded.
-        Note that the step size changes when `endpoint` is False.
-    num : int, optional
-        Number of time points to use.
-    endpoint : bool, optional
-        If True, `stop` is the last time point.  Otherwise, it is not included.
-    traceA : scalar, optional
-        Trace of `A`. If not given the trace is estimated for linear operators,
-        or calculated exactly for sparse matrices. It is used to precondition
-        `A`, thus an approximate trace is acceptable.
-        For linear operators, `traceA` should be provided to ensure performance
-        as the estimation is not guaranteed to be reliable for all cases.
-
-        .. versionadded:: 1.9.0
-
-    Returns
-    -------
-    expm_A_B : ndarray
-         The result of the action :math:`e^{t_k A} B`.
-
-    Warns
-    -----
-    UserWarning
-        If `A` is a linear operator and ``traceA=None`` (default).
-
-    Notes
-    -----
-    The optional arguments defining the sequence of evenly spaced time points
-    are compatible with the arguments of `numpy.linspace`.
-
-    The output ndarray shape is somewhat complicated so I explain it here.
-    The ndim of the output could be either 1, 2, or 3.
-    It would be 1 if you are computing the expm action on a single vector
-    at a single time point.
-    It would be 2 if you are computing the expm action on a vector
-    at multiple time points, or if you are computing the expm action
-    on a matrix at a single time point.
-    It would be 3 if you want the action on a matrix with multiple
-    columns at multiple time points.
-    If multiple time points are requested, expm_A_B[0] will always
-    be the action of the expm at the first time point,
-    regardless of whether the action is on a vector or a matrix.
-
-    References
-    ----------
-    .. [1] Awad H. Al-Mohy and Nicholas J. Higham (2011)
-           "Computing the Action of the Matrix Exponential,
-           with an Application to Exponential Integrators."
-           SIAM Journal on Scientific Computing,
-           33 (2). pp. 488-511. ISSN 1064-8275
-           http://eprints.ma.man.ac.uk/1591/
-
-    .. [2] Nicholas J. Higham and Awad H. Al-Mohy (2010)
-           "Computing Matrix Functions."
-           Acta Numerica,
-           19. 159-208. ISSN 0962-4929
-           http://eprints.ma.man.ac.uk/1451/
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import expm, expm_multiply
-    >>> A = csc_matrix([[1, 0], [0, 1]])
-    >>> A.toarray()
-    array([[1, 0],
-           [0, 1]], dtype=int64)
-    >>> B = np.array([np.exp(-1.), np.exp(-2.)])
-    >>> B
-    array([ 0.36787944,  0.13533528])
-    >>> expm_multiply(A, B, start=1, stop=2, num=3, endpoint=True)
-    array([[ 1.        ,  0.36787944],
-           [ 1.64872127,  0.60653066],
-           [ 2.71828183,  1.        ]])
-    >>> expm(A).dot(B)                  # Verify 1st timestep
-    array([ 1.        ,  0.36787944])
-    >>> expm(1.5*A).dot(B)              # Verify 2nd timestep
-    array([ 1.64872127,  0.60653066])
-    >>> expm(2*A).dot(B)                # Verify 3rd timestep
-    array([ 2.71828183,  1.        ])
-    """
-    if all(arg is None for arg in (start, stop, num, endpoint)):
-        X = _expm_multiply_simple(A, B, traceA=traceA)
-    else:
-        X, status = _expm_multiply_interval(A, B, start, stop, num,
-                                            endpoint, traceA=traceA)
-    return X
-
-
-def _expm_multiply_simple(A, B, t=1.0, traceA=None, balance=False):
-    """
-    Compute the action of the matrix exponential at a single time point.
-
-    Parameters
-    ----------
-    A : transposable linear operator
-        The operator whose exponential is of interest.
-    B : ndarray
-        The matrix to be multiplied by the matrix exponential of A.
-    t : float
-        A time point.
-    traceA : scalar, optional
-        Trace of `A`. If not given the trace is estimated for linear operators,
-        or calculated exactly for sparse matrices. It is used to precondition
-        `A`, thus an approximate trace is acceptable
-    balance : bool
-        Indicates whether or not to apply balancing.
-
-    Returns
-    -------
-    F : ndarray
-        :math:`e^{t A} B`
-
-    Notes
-    -----
-    This is algorithm (3.2) in Al-Mohy and Higham (2011).
-
-    """
-    if balance:
-        raise NotImplementedError
-    if len(A.shape) != 2 or A.shape[0] != A.shape[1]:
-        raise ValueError('expected A to be like a square matrix')
-    if A.shape[1] != B.shape[0]:
-        raise ValueError('shapes of matrices A {} and B {} are incompatible'
-                         .format(A.shape, B.shape))
-    ident = _ident_like(A)
-    is_linear_operator = isinstance(A, scipy.sparse.linalg.LinearOperator)
-    n = A.shape[0]
-    if len(B.shape) == 1:
-        n0 = 1
-    elif len(B.shape) == 2:
-        n0 = B.shape[1]
-    else:
-        raise ValueError('expected B to be like a matrix or a vector')
-    u_d = 2**-53
-    tol = u_d
-    if traceA is None:
-        if is_linear_operator:
-            warn("Trace of LinearOperator not available, it will be estimated."
-                 " Provide `traceA` to ensure performance.", stacklevel=3)
-        # m3=1 is bit arbitrary choice, a more accurate trace (larger m3) might
-        # speed up exponential calculation, but trace estimation is more costly
-        traceA = traceest(A, m3=1) if is_linear_operator else _trace(A)
-    mu = traceA / float(n)
-    A = A - mu * ident
-    A_1_norm = onenormest(A) if is_linear_operator else _exact_1_norm(A)
-    if t*A_1_norm == 0:
-        m_star, s = 0, 1
-    else:
-        ell = 2
-        norm_info = LazyOperatorNormInfo(t*A, A_1_norm=t*A_1_norm, ell=ell)
-        m_star, s = _fragment_3_1(norm_info, n0, tol, ell=ell)
-    return _expm_multiply_simple_core(A, B, t, mu, m_star, s, tol, balance)
-
-
-def _expm_multiply_simple_core(A, B, t, mu, m_star, s, tol=None, balance=False):
-    """
-    A helper function.
-    """
-    if balance:
-        raise NotImplementedError
-    if tol is None:
-        u_d = 2 ** -53
-        tol = u_d
-    F = B
-    eta = np.exp(t*mu / float(s))
-    for i in range(s):
-        c1 = _exact_inf_norm(B)
-        for j in range(m_star):
-            coeff = t / float(s*(j+1))
-            B = coeff * A.dot(B)
-            c2 = _exact_inf_norm(B)
-            F = F + B
-            if c1 + c2 <= tol * _exact_inf_norm(F):
-                break
-            c1 = c2
-        F = eta * F
-        B = F
-    return F
-
-
-# This table helps to compute bounds.
-# They seem to have been difficult to calculate, involving symbolic
-# manipulation of equations, followed by numerical root finding.
-_theta = {
-        # The first 30 values are from table A.3 of Computing Matrix Functions.
-        1: 2.29e-16,
-        2: 2.58e-8,
-        3: 1.39e-5,
-        4: 3.40e-4,
-        5: 2.40e-3,
-        6: 9.07e-3,
-        7: 2.38e-2,
-        8: 5.00e-2,
-        9: 8.96e-2,
-        10: 1.44e-1,
-        # 11
-        11: 2.14e-1,
-        12: 3.00e-1,
-        13: 4.00e-1,
-        14: 5.14e-1,
-        15: 6.41e-1,
-        16: 7.81e-1,
-        17: 9.31e-1,
-        18: 1.09,
-        19: 1.26,
-        20: 1.44,
-        # 21
-        21: 1.62,
-        22: 1.82,
-        23: 2.01,
-        24: 2.22,
-        25: 2.43,
-        26: 2.64,
-        27: 2.86,
-        28: 3.08,
-        29: 3.31,
-        30: 3.54,
-        # The rest are from table 3.1 of
-        # Computing the Action of the Matrix Exponential.
-        35: 4.7,
-        40: 6.0,
-        45: 7.2,
-        50: 8.5,
-        55: 9.9,
-        }
-
-
-def _onenormest_matrix_power(A, p,
-        t=2, itmax=5, compute_v=False, compute_w=False):
-    """
-    Efficiently estimate the 1-norm of A^p.
-
-    Parameters
-    ----------
-    A : ndarray
-        Matrix whose 1-norm of a power is to be computed.
-    p : int
-        Non-negative integer power.
-    t : int, optional
-        A positive parameter controlling the tradeoff between
-        accuracy versus time and memory usage.
-        Larger values take longer and use more memory
-        but give more accurate output.
-    itmax : int, optional
-        Use at most this many iterations.
-    compute_v : bool, optional
-        Request a norm-maximizing linear operator input vector if True.
-    compute_w : bool, optional
-        Request a norm-maximizing linear operator output vector if True.
-
-    Returns
-    -------
-    est : float
-        An underestimate of the 1-norm of the sparse matrix.
-    v : ndarray, optional
-        The vector such that ||Av||_1 == est*||v||_1.
-        It can be thought of as an input to the linear operator
-        that gives an output with particularly large norm.
-    w : ndarray, optional
-        The vector Av which has relatively large 1-norm.
-        It can be thought of as an output of the linear operator
-        that is relatively large in norm compared to the input.
-
-    """
-    #XXX Eventually turn this into an API function in the  _onenormest module,
-    #XXX and remove its underscore,
-    #XXX but wait until expm_multiply goes into scipy.
-    from scipy.sparse.linalg._onenormest import onenormest
-    return onenormest(aslinearoperator(A) ** p)
-
-class LazyOperatorNormInfo:
-    """
-    Information about an operator is lazily computed.
-
-    The information includes the exact 1-norm of the operator,
-    in addition to estimates of 1-norms of powers of the operator.
-    This uses the notation of Computing the Action (2011).
-    This class is specialized enough to probably not be of general interest
-    outside of this module.
-
-    """
-
-    def __init__(self, A, A_1_norm=None, ell=2, scale=1):
-        """
-        Provide the operator and some norm-related information.
-
-        Parameters
-        ----------
-        A : linear operator
-            The operator of interest.
-        A_1_norm : float, optional
-            The exact 1-norm of A.
-        ell : int, optional
-            A technical parameter controlling norm estimation quality.
-        scale : int, optional
-            If specified, return the norms of scale*A instead of A.
-
-        """
-        self._A = A
-        self._A_1_norm = A_1_norm
-        self._ell = ell
-        self._d = {}
-        self._scale = scale
-
-    def set_scale(self,scale):
-        """
-        Set the scale parameter.
-        """
-        self._scale = scale
-
-    def onenorm(self):
-        """
-        Compute the exact 1-norm.
-        """
-        if self._A_1_norm is None:
-            self._A_1_norm = _exact_1_norm(self._A)
-        return self._scale*self._A_1_norm
-
-    def d(self, p):
-        """
-        Lazily estimate :math:`d_p(A) ~= || A^p ||^(1/p)` where :math:`||.||` is the 1-norm.
-        """
-        if p not in self._d:
-            est = _onenormest_matrix_power(self._A, p, self._ell)
-            self._d[p] = est ** (1.0 / p)
-        return self._scale*self._d[p]
-
-    def alpha(self, p):
-        """
-        Lazily compute max(d(p), d(p+1)).
-        """
-        return max(self.d(p), self.d(p+1))
-
-def _compute_cost_div_m(m, p, norm_info):
-    """
-    A helper function for computing bounds.
-
-    This is equation (3.10).
-    It measures cost in terms of the number of required matrix products.
-
-    Parameters
-    ----------
-    m : int
-        A valid key of _theta.
-    p : int
-        A matrix power.
-    norm_info : LazyOperatorNormInfo
-        Information about 1-norms of related operators.
-
-    Returns
-    -------
-    cost_div_m : int
-        Required number of matrix products divided by m.
-
-    """
-    return int(np.ceil(norm_info.alpha(p) / _theta[m]))
-
-
-def _compute_p_max(m_max):
-    """
-    Compute the largest positive integer p such that p*(p-1) <= m_max + 1.
-
-    Do this in a slightly dumb way, but safe and not too slow.
-
-    Parameters
-    ----------
-    m_max : int
-        A count related to bounds.
-
-    """
-    sqrt_m_max = np.sqrt(m_max)
-    p_low = int(np.floor(sqrt_m_max))
-    p_high = int(np.ceil(sqrt_m_max + 1))
-    return max(p for p in range(p_low, p_high+1) if p*(p-1) <= m_max + 1)
-
-
-def _fragment_3_1(norm_info, n0, tol, m_max=55, ell=2):
-    """
-    A helper function for the _expm_multiply_* functions.
-
-    Parameters
-    ----------
-    norm_info : LazyOperatorNormInfo
-        Information about norms of certain linear operators of interest.
-    n0 : int
-        Number of columns in the _expm_multiply_* B matrix.
-    tol : float
-        Expected to be
-        :math:`2^{-24}` for single precision or
-        :math:`2^{-53}` for double precision.
-    m_max : int
-        A value related to a bound.
-    ell : int
-        The number of columns used in the 1-norm approximation.
-        This is usually taken to be small, maybe between 1 and 5.
-
-    Returns
-    -------
-    best_m : int
-        Related to bounds for error control.
-    best_s : int
-        Amount of scaling.
-
-    Notes
-    -----
-    This is code fragment (3.1) in Al-Mohy and Higham (2011).
-    The discussion of default values for m_max and ell
-    is given between the definitions of equation (3.11)
-    and the definition of equation (3.12).
-
-    """
-    if ell < 1:
-        raise ValueError('expected ell to be a positive integer')
-    best_m = None
-    best_s = None
-    if _condition_3_13(norm_info.onenorm(), n0, m_max, ell):
-        for m, theta in _theta.items():
-            s = int(np.ceil(norm_info.onenorm() / theta))
-            if best_m is None or m * s < best_m * best_s:
-                best_m = m
-                best_s = s
-    else:
-        # Equation (3.11).
-        for p in range(2, _compute_p_max(m_max) + 1):
-            for m in range(p*(p-1)-1, m_max+1):
-                if m in _theta:
-                    s = _compute_cost_div_m(m, p, norm_info)
-                    if best_m is None or m * s < best_m * best_s:
-                        best_m = m
-                        best_s = s
-        best_s = max(best_s, 1)
-    return best_m, best_s
-
-
-def _condition_3_13(A_1_norm, n0, m_max, ell):
-    """
-    A helper function for the _expm_multiply_* functions.
-
-    Parameters
-    ----------
-    A_1_norm : float
-        The precomputed 1-norm of A.
-    n0 : int
-        Number of columns in the _expm_multiply_* B matrix.
-    m_max : int
-        A value related to a bound.
-    ell : int
-        The number of columns used in the 1-norm approximation.
-        This is usually taken to be small, maybe between 1 and 5.
-
-    Returns
-    -------
-    value : bool
-        Indicates whether or not the condition has been met.
-
-    Notes
-    -----
-    This is condition (3.13) in Al-Mohy and Higham (2011).
-
-    """
-
-    # This is the rhs of equation (3.12).
-    p_max = _compute_p_max(m_max)
-    a = 2 * ell * p_max * (p_max + 3)
-
-    # Evaluate the condition (3.13).
-    b = _theta[m_max] / float(n0 * m_max)
-    return A_1_norm <= a * b
-
-
-def _expm_multiply_interval(A, B, start=None, stop=None, num=None,
-                            endpoint=None, traceA=None, balance=False,
-                            status_only=False):
-    """
-    Compute the action of the matrix exponential at multiple time points.
-
-    Parameters
-    ----------
-    A : transposable linear operator
-        The operator whose exponential is of interest.
-    B : ndarray
-        The matrix to be multiplied by the matrix exponential of A.
-    start : scalar, optional
-        The starting time point of the sequence.
-    stop : scalar, optional
-        The end time point of the sequence, unless `endpoint` is set to False.
-        In that case, the sequence consists of all but the last of ``num + 1``
-        evenly spaced time points, so that `stop` is excluded.
-        Note that the step size changes when `endpoint` is False.
-    num : int, optional
-        Number of time points to use.
-    traceA : scalar, optional
-        Trace of `A`. If not given the trace is estimated for linear operators,
-        or calculated exactly for sparse matrices. It is used to precondition
-        `A`, thus an approximate trace is acceptable
-    endpoint : bool, optional
-        If True, `stop` is the last time point. Otherwise, it is not included.
-    balance : bool
-        Indicates whether or not to apply balancing.
-    status_only : bool
-        A flag that is set to True for some debugging and testing operations.
-
-    Returns
-    -------
-    F : ndarray
-        :math:`e^{t_k A} B`
-    status : int
-        An integer status for testing and debugging.
-
-    Notes
-    -----
-    This is algorithm (5.2) in Al-Mohy and Higham (2011).
-
-    There seems to be a typo, where line 15 of the algorithm should be
-    moved to line 6.5 (between lines 6 and 7).
-
-    """
-    if balance:
-        raise NotImplementedError
-    if len(A.shape) != 2 or A.shape[0] != A.shape[1]:
-        raise ValueError('expected A to be like a square matrix')
-    if A.shape[1] != B.shape[0]:
-        raise ValueError('shapes of matrices A {} and B {} are incompatible'
-                         .format(A.shape, B.shape))
-    ident = _ident_like(A)
-    is_linear_operator = isinstance(A, scipy.sparse.linalg.LinearOperator)
-    n = A.shape[0]
-    if len(B.shape) == 1:
-        n0 = 1
-    elif len(B.shape) == 2:
-        n0 = B.shape[1]
-    else:
-        raise ValueError('expected B to be like a matrix or a vector')
-    u_d = 2**-53
-    tol = u_d
-    if traceA is None:
-        if is_linear_operator:
-            warn("Trace of LinearOperator not available, it will be estimated."
-                 " Provide `traceA` to ensure performance.", stacklevel=3)
-        # m3=5 is bit arbitrary choice, a more accurate trace (larger m3) might
-        # speed up exponential calculation, but trace estimation is also costly
-        # an educated guess would need to consider the number of time points
-        traceA = traceest(A, m3=5) if is_linear_operator else _trace(A)
-    mu = traceA / float(n)
-
-    # Get the linspace samples, attempting to preserve the linspace defaults.
-    linspace_kwargs = {'retstep': True}
-    if num is not None:
-        linspace_kwargs['num'] = num
-    if endpoint is not None:
-        linspace_kwargs['endpoint'] = endpoint
-    samples, step = np.linspace(start, stop, **linspace_kwargs)
-
-    # Convert the linspace output to the notation used by the publication.
-    nsamples = len(samples)
-    if nsamples < 2:
-        raise ValueError('at least two time points are required')
-    q = nsamples - 1
-    h = step
-    t_0 = samples[0]
-    t_q = samples[q]
-
-    # Define the output ndarray.
-    # Use an ndim=3 shape, such that the last two indices
-    # are the ones that may be involved in level 3 BLAS operations.
-    X_shape = (nsamples,) + B.shape
-    X = np.empty(X_shape, dtype=np.result_type(A.dtype, B.dtype, float))
-    t = t_q - t_0
-    A = A - mu * ident
-    A_1_norm = onenormest(A) if is_linear_operator else _exact_1_norm(A)
-    ell = 2
-    norm_info = LazyOperatorNormInfo(t*A, A_1_norm=t*A_1_norm, ell=ell)
-    if t*A_1_norm == 0:
-        m_star, s = 0, 1
-    else:
-        m_star, s = _fragment_3_1(norm_info, n0, tol, ell=ell)
-
-    # Compute the expm action up to the initial time point.
-    X[0] = _expm_multiply_simple_core(A, B, t_0, mu, m_star, s)
-
-    # Compute the expm action at the rest of the time points.
-    if q <= s:
-        if status_only:
-            return 0
-        else:
-            return _expm_multiply_interval_core_0(A, X,
-                    h, mu, q, norm_info, tol, ell,n0)
-    elif not (q % s):
-        if status_only:
-            return 1
-        else:
-            return _expm_multiply_interval_core_1(A, X,
-                    h, mu, m_star, s, q, tol)
-    elif (q % s):
-        if status_only:
-            return 2
-        else:
-            return _expm_multiply_interval_core_2(A, X,
-                    h, mu, m_star, s, q, tol)
-    else:
-        raise Exception('internal error')
-
-
-def _expm_multiply_interval_core_0(A, X, h, mu, q, norm_info, tol, ell, n0):
-    """
-    A helper function, for the case q <= s.
-    """
-
-    # Compute the new values of m_star and s which should be applied
-    # over intervals of size t/q
-    if norm_info.onenorm() == 0:
-        m_star, s = 0, 1
-    else:
-        norm_info.set_scale(1./q)
-        m_star, s = _fragment_3_1(norm_info, n0, tol, ell=ell)
-        norm_info.set_scale(1)
-
-    for k in range(q):
-        X[k+1] = _expm_multiply_simple_core(A, X[k], h, mu, m_star, s)
-    return X, 0
-
-
-def _expm_multiply_interval_core_1(A, X, h, mu, m_star, s, q, tol):
-    """
-    A helper function, for the case q > s and q % s == 0.
-    """
-    d = q // s
-    input_shape = X.shape[1:]
-    K_shape = (m_star + 1, ) + input_shape
-    K = np.empty(K_shape, dtype=X.dtype)
-    for i in range(s):
-        Z = X[i*d]
-        K[0] = Z
-        high_p = 0
-        for k in range(1, d+1):
-            F = K[0]
-            c1 = _exact_inf_norm(F)
-            for p in range(1, m_star+1):
-                if p > high_p:
-                    K[p] = h * A.dot(K[p-1]) / float(p)
-                coeff = float(pow(k, p))
-                F = F + coeff * K[p]
-                inf_norm_K_p_1 = _exact_inf_norm(K[p])
-                c2 = coeff * inf_norm_K_p_1
-                if c1 + c2 <= tol * _exact_inf_norm(F):
-                    break
-                c1 = c2
-            X[k + i*d] = np.exp(k*h*mu) * F
-    return X, 1
-
-
-def _expm_multiply_interval_core_2(A, X, h, mu, m_star, s, q, tol):
-    """
-    A helper function, for the case q > s and q % s > 0.
-    """
-    d = q // s
-    j = q // d
-    r = q - d * j
-    input_shape = X.shape[1:]
-    K_shape = (m_star + 1, ) + input_shape
-    K = np.empty(K_shape, dtype=X.dtype)
-    for i in range(j + 1):
-        Z = X[i*d]
-        K[0] = Z
-        high_p = 0
-        if i < j:
-            effective_d = d
-        else:
-            effective_d = r
-        for k in range(1, effective_d+1):
-            F = K[0]
-            c1 = _exact_inf_norm(F)
-            for p in range(1, m_star+1):
-                if p == high_p + 1:
-                    K[p] = h * A.dot(K[p-1]) / float(p)
-                    high_p = p
-                coeff = float(pow(k, p))
-                F = F + coeff * K[p]
-                inf_norm_K_p_1 = _exact_inf_norm(K[p])
-                c2 = coeff * inf_norm_K_p_1
-                if c1 + c2 <= tol * _exact_inf_norm(F):
-                    break
-                c1 = c2
-            X[k + i*d] = np.exp(k*h*mu) * F
-    return X, 2
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_interface.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_interface.py
deleted file mode 100644
index 7c515167c326e27f4dce21cbfa5c052995afc7da..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_interface.py
+++ /dev/null
@@ -1,896 +0,0 @@
-"""Abstract linear algebra library.
-
-This module defines a class hierarchy that implements a kind of "lazy"
-matrix representation, called the ``LinearOperator``. It can be used to do
-linear algebra with extremely large sparse or structured matrices, without
-representing those explicitly in memory. Such matrices can be added,
-multiplied, transposed, etc.
-
-As a motivating example, suppose you want have a matrix where almost all of
-the elements have the value one. The standard sparse matrix representation
-skips the storage of zeros, but not ones. By contrast, a LinearOperator is
-able to represent such matrices efficiently. First, we need a compact way to
-represent an all-ones matrix::
-
-    >>> import numpy as np
-    >>> from scipy.sparse.linalg._interface import LinearOperator
-    >>> class Ones(LinearOperator):
-    ...     def __init__(self, shape):
-    ...         super().__init__(dtype=None, shape=shape)
-    ...     def _matvec(self, x):
-    ...         return np.repeat(x.sum(), self.shape[0])
-
-Instances of this class emulate ``np.ones(shape)``, but using a constant
-amount of storage, independent of ``shape``. The ``_matvec`` method specifies
-how this linear operator multiplies with (operates on) a vector. We can now
-add this operator to a sparse matrix that stores only offsets from one::
-
-    >>> from scipy.sparse.linalg._interface import aslinearoperator
-    >>> from scipy.sparse import csr_matrix
-    >>> offsets = csr_matrix([[1, 0, 2], [0, -1, 0], [0, 0, 3]])
-    >>> A = aslinearoperator(offsets) + Ones(offsets.shape)
-    >>> A.dot([1, 2, 3])
-    array([13,  4, 15])
-
-The result is the same as that given by its dense, explicitly-stored
-counterpart::
-
-    >>> (np.ones(A.shape, A.dtype) + offsets.toarray()).dot([1, 2, 3])
-    array([13,  4, 15])
-
-Several algorithms in the ``scipy.sparse`` library are able to operate on
-``LinearOperator`` instances.
-"""
-
-import warnings
-
-import numpy as np
-
-from scipy.sparse import issparse
-from scipy.sparse._sputils import isshape, isintlike, asmatrix, is_pydata_spmatrix
-
-__all__ = ['LinearOperator', 'aslinearoperator']
-
-
-class LinearOperator:
-    """Common interface for performing matrix vector products
-
-    Many iterative methods (e.g. cg, gmres) do not need to know the
-    individual entries of a matrix to solve a linear system A*x=b.
-    Such solvers only require the computation of matrix vector
-    products, A*v where v is a dense vector.  This class serves as
-    an abstract interface between iterative solvers and matrix-like
-    objects.
-
-    To construct a concrete LinearOperator, either pass appropriate
-    callables to the constructor of this class, or subclass it.
-
-    A subclass must implement either one of the methods ``_matvec``
-    and ``_matmat``, and the attributes/properties ``shape`` (pair of
-    integers) and ``dtype`` (may be None). It may call the ``__init__``
-    on this class to have these attributes validated. Implementing
-    ``_matvec`` automatically implements ``_matmat`` (using a naive
-    algorithm) and vice-versa.
-
-    Optionally, a subclass may implement ``_rmatvec`` or ``_adjoint``
-    to implement the Hermitian adjoint (conjugate transpose). As with
-    ``_matvec`` and ``_matmat``, implementing either ``_rmatvec`` or
-    ``_adjoint`` implements the other automatically. Implementing
-    ``_adjoint`` is preferable; ``_rmatvec`` is mostly there for
-    backwards compatibility.
-
-    Parameters
-    ----------
-    shape : tuple
-        Matrix dimensions (M, N).
-    matvec : callable f(v)
-        Returns returns A * v.
-    rmatvec : callable f(v)
-        Returns A^H * v, where A^H is the conjugate transpose of A.
-    matmat : callable f(V)
-        Returns A * V, where V is a dense matrix with dimensions (N, K).
-    dtype : dtype
-        Data type of the matrix.
-    rmatmat : callable f(V)
-        Returns A^H * V, where V is a dense matrix with dimensions (M, K).
-
-    Attributes
-    ----------
-    args : tuple
-        For linear operators describing products etc. of other linear
-        operators, the operands of the binary operation.
-    ndim : int
-        Number of dimensions (this is always 2)
-
-    See Also
-    --------
-    aslinearoperator : Construct LinearOperators
-
-    Notes
-    -----
-    The user-defined matvec() function must properly handle the case
-    where v has shape (N,) as well as the (N,1) case.  The shape of
-    the return type is handled internally by LinearOperator.
-
-    LinearOperator instances can also be multiplied, added with each
-    other and exponentiated, all lazily: the result of these operations
-    is always a new, composite LinearOperator, that defers linear
-    operations to the original operators and combines the results.
-
-    More details regarding how to subclass a LinearOperator and several
-    examples of concrete LinearOperator instances can be found in the
-    external project `PyLops `_.
-
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse.linalg import LinearOperator
-    >>> def mv(v):
-    ...     return np.array([2*v[0], 3*v[1]])
-    ...
-    >>> A = LinearOperator((2,2), matvec=mv)
-    >>> A
-    <2x2 _CustomLinearOperator with dtype=float64>
-    >>> A.matvec(np.ones(2))
-    array([ 2.,  3.])
-    >>> A * np.ones(2)
-    array([ 2.,  3.])
-
-    """
-
-    ndim = 2
-    # Necessary for right matmul with numpy arrays.
-    __array_ufunc__ = None
-
-    def __new__(cls, *args, **kwargs):
-        if cls is LinearOperator:
-            # Operate as _CustomLinearOperator factory.
-            return super().__new__(_CustomLinearOperator)
-        else:
-            obj = super().__new__(cls)
-
-            if (type(obj)._matvec == LinearOperator._matvec
-                    and type(obj)._matmat == LinearOperator._matmat):
-                warnings.warn("LinearOperator subclass should implement"
-                              " at least one of _matvec and _matmat.",
-                              category=RuntimeWarning, stacklevel=2)
-
-            return obj
-
-    def __init__(self, dtype, shape):
-        """Initialize this LinearOperator.
-
-        To be called by subclasses. ``dtype`` may be None; ``shape`` should
-        be convertible to a length-2 tuple.
-        """
-        if dtype is not None:
-            dtype = np.dtype(dtype)
-
-        shape = tuple(shape)
-        if not isshape(shape):
-            raise ValueError(f"invalid shape {shape!r} (must be 2-d)")
-
-        self.dtype = dtype
-        self.shape = shape
-
-    def _init_dtype(self):
-        """Called from subclasses at the end of the __init__ routine.
-        """
-        if self.dtype is None:
-            v = np.zeros(self.shape[-1])
-            self.dtype = np.asarray(self.matvec(v)).dtype
-
-    def _matmat(self, X):
-        """Default matrix-matrix multiplication handler.
-
-        Falls back on the user-defined _matvec method, so defining that will
-        define matrix multiplication (though in a very suboptimal way).
-        """
-
-        return np.hstack([self.matvec(col.reshape(-1,1)) for col in X.T])
-
-    def _matvec(self, x):
-        """Default matrix-vector multiplication handler.
-
-        If self is a linear operator of shape (M, N), then this method will
-        be called on a shape (N,) or (N, 1) ndarray, and should return a
-        shape (M,) or (M, 1) ndarray.
-
-        This default implementation falls back on _matmat, so defining that
-        will define matrix-vector multiplication as well.
-        """
-        return self.matmat(x.reshape(-1, 1))
-
-    def matvec(self, x):
-        """Matrix-vector multiplication.
-
-        Performs the operation y=A*x where A is an MxN linear
-        operator and x is a column vector or 1-d array.
-
-        Parameters
-        ----------
-        x : {matrix, ndarray}
-            An array with shape (N,) or (N,1).
-
-        Returns
-        -------
-        y : {matrix, ndarray}
-            A matrix or ndarray with shape (M,) or (M,1) depending
-            on the type and shape of the x argument.
-
-        Notes
-        -----
-        This matvec wraps the user-specified matvec routine or overridden
-        _matvec method to ensure that y has the correct shape and type.
-
-        """
-
-        x = np.asanyarray(x)
-
-        M,N = self.shape
-
-        if x.shape != (N,) and x.shape != (N,1):
-            raise ValueError('dimension mismatch')
-
-        y = self._matvec(x)
-
-        if isinstance(x, np.matrix):
-            y = asmatrix(y)
-        else:
-            y = np.asarray(y)
-
-        if x.ndim == 1:
-            y = y.reshape(M)
-        elif x.ndim == 2:
-            y = y.reshape(M,1)
-        else:
-            raise ValueError('invalid shape returned by user-defined matvec()')
-
-        return y
-
-    def rmatvec(self, x):
-        """Adjoint matrix-vector multiplication.
-
-        Performs the operation y = A^H * x where A is an MxN linear
-        operator and x is a column vector or 1-d array.
-
-        Parameters
-        ----------
-        x : {matrix, ndarray}
-            An array with shape (M,) or (M,1).
-
-        Returns
-        -------
-        y : {matrix, ndarray}
-            A matrix or ndarray with shape (N,) or (N,1) depending
-            on the type and shape of the x argument.
-
-        Notes
-        -----
-        This rmatvec wraps the user-specified rmatvec routine or overridden
-        _rmatvec method to ensure that y has the correct shape and type.
-
-        """
-
-        x = np.asanyarray(x)
-
-        M,N = self.shape
-
-        if x.shape != (M,) and x.shape != (M,1):
-            raise ValueError('dimension mismatch')
-
-        y = self._rmatvec(x)
-
-        if isinstance(x, np.matrix):
-            y = asmatrix(y)
-        else:
-            y = np.asarray(y)
-
-        if x.ndim == 1:
-            y = y.reshape(N)
-        elif x.ndim == 2:
-            y = y.reshape(N,1)
-        else:
-            raise ValueError('invalid shape returned by user-defined rmatvec()')
-
-        return y
-
-    def _rmatvec(self, x):
-        """Default implementation of _rmatvec; defers to adjoint."""
-        if type(self)._adjoint == LinearOperator._adjoint:
-            # _adjoint not overridden, prevent infinite recursion
-            raise NotImplementedError
-        else:
-            return self.H.matvec(x)
-
-    def matmat(self, X):
-        """Matrix-matrix multiplication.
-
-        Performs the operation y=A*X where A is an MxN linear
-        operator and X dense N*K matrix or ndarray.
-
-        Parameters
-        ----------
-        X : {matrix, ndarray}
-            An array with shape (N,K).
-
-        Returns
-        -------
-        Y : {matrix, ndarray}
-            A matrix or ndarray with shape (M,K) depending on
-            the type of the X argument.
-
-        Notes
-        -----
-        This matmat wraps any user-specified matmat routine or overridden
-        _matmat method to ensure that y has the correct type.
-
-        """
-        if not (issparse(X) or is_pydata_spmatrix(X)):
-            X = np.asanyarray(X)
-
-        if X.ndim != 2:
-            raise ValueError(f'expected 2-d ndarray or matrix, not {X.ndim}-d')
-
-        if X.shape[0] != self.shape[1]:
-            raise ValueError(f'dimension mismatch: {self.shape}, {X.shape}')
-
-        try:
-            Y = self._matmat(X)
-        except Exception as e:
-            if issparse(X) or is_pydata_spmatrix(X):
-                raise TypeError(
-                    "Unable to multiply a LinearOperator with a sparse matrix."
-                    " Wrap the matrix in aslinearoperator first."
-                ) from e
-            raise
-
-        if isinstance(Y, np.matrix):
-            Y = asmatrix(Y)
-
-        return Y
-
-    def rmatmat(self, X):
-        """Adjoint matrix-matrix multiplication.
-
-        Performs the operation y = A^H * x where A is an MxN linear
-        operator and x is a column vector or 1-d array, or 2-d array.
-        The default implementation defers to the adjoint.
-
-        Parameters
-        ----------
-        X : {matrix, ndarray}
-            A matrix or 2D array.
-
-        Returns
-        -------
-        Y : {matrix, ndarray}
-            A matrix or 2D array depending on the type of the input.
-
-        Notes
-        -----
-        This rmatmat wraps the user-specified rmatmat routine.
-
-        """
-        if not (issparse(X) or is_pydata_spmatrix(X)):
-            X = np.asanyarray(X)
-
-        if X.ndim != 2:
-            raise ValueError('expected 2-d ndarray or matrix, not %d-d'
-                             % X.ndim)
-
-        if X.shape[0] != self.shape[0]:
-            raise ValueError(f'dimension mismatch: {self.shape}, {X.shape}')
-
-        try:
-            Y = self._rmatmat(X)
-        except Exception as e:
-            if issparse(X) or is_pydata_spmatrix(X):
-                raise TypeError(
-                    "Unable to multiply a LinearOperator with a sparse matrix."
-                    " Wrap the matrix in aslinearoperator() first."
-                ) from e
-            raise
-
-        if isinstance(Y, np.matrix):
-            Y = asmatrix(Y)
-        return Y
-
-    def _rmatmat(self, X):
-        """Default implementation of _rmatmat defers to rmatvec or adjoint."""
-        if type(self)._adjoint == LinearOperator._adjoint:
-            return np.hstack([self.rmatvec(col.reshape(-1, 1)) for col in X.T])
-        else:
-            return self.H.matmat(X)
-
-    def __call__(self, x):
-        return self*x
-
-    def __mul__(self, x):
-        return self.dot(x)
-
-    def __truediv__(self, other):
-        if not np.isscalar(other):
-            raise ValueError("Can only divide a linear operator by a scalar.")
-
-        return _ScaledLinearOperator(self, 1.0/other)
-
-    def dot(self, x):
-        """Matrix-matrix or matrix-vector multiplication.
-
-        Parameters
-        ----------
-        x : array_like
-            1-d or 2-d array, representing a vector or matrix.
-
-        Returns
-        -------
-        Ax : array
-            1-d or 2-d array (depending on the shape of x) that represents
-            the result of applying this linear operator on x.
-
-        """
-        if isinstance(x, LinearOperator):
-            return _ProductLinearOperator(self, x)
-        elif np.isscalar(x):
-            return _ScaledLinearOperator(self, x)
-        else:
-            if not issparse(x) and not is_pydata_spmatrix(x):
-                # Sparse matrices shouldn't be converted to numpy arrays.
-                x = np.asarray(x)
-
-            if x.ndim == 1 or x.ndim == 2 and x.shape[1] == 1:
-                return self.matvec(x)
-            elif x.ndim == 2:
-                return self.matmat(x)
-            else:
-                raise ValueError('expected 1-d or 2-d array or matrix, got %r'
-                                 % x)
-
-    def __matmul__(self, other):
-        if np.isscalar(other):
-            raise ValueError("Scalar operands are not allowed, "
-                             "use '*' instead")
-        return self.__mul__(other)
-
-    def __rmatmul__(self, other):
-        if np.isscalar(other):
-            raise ValueError("Scalar operands are not allowed, "
-                             "use '*' instead")
-        return self.__rmul__(other)
-
-    def __rmul__(self, x):
-        if np.isscalar(x):
-            return _ScaledLinearOperator(self, x)
-        else:
-            return self._rdot(x)
-
-    def _rdot(self, x):
-        """Matrix-matrix or matrix-vector multiplication from the right.
-
-        Parameters
-        ----------
-        x : array_like
-            1-d or 2-d array, representing a vector or matrix.
-
-        Returns
-        -------
-        xA : array
-            1-d or 2-d array (depending on the shape of x) that represents
-            the result of applying this linear operator on x from the right.
-
-        Notes
-        -----
-        This is copied from dot to implement right multiplication.
-        """
-        if isinstance(x, LinearOperator):
-            return _ProductLinearOperator(x, self)
-        elif np.isscalar(x):
-            return _ScaledLinearOperator(self, x)
-        else:
-            if not issparse(x) and not is_pydata_spmatrix(x):
-                # Sparse matrices shouldn't be converted to numpy arrays.
-                x = np.asarray(x)
-
-            # We use transpose instead of rmatvec/rmatmat to avoid
-            # unnecessary complex conjugation if possible.
-            if x.ndim == 1 or x.ndim == 2 and x.shape[0] == 1:
-                return self.T.matvec(x.T).T
-            elif x.ndim == 2:
-                return self.T.matmat(x.T).T
-            else:
-                raise ValueError('expected 1-d or 2-d array or matrix, got %r'
-                                 % x)
-
-    def __pow__(self, p):
-        if np.isscalar(p):
-            return _PowerLinearOperator(self, p)
-        else:
-            return NotImplemented
-
-    def __add__(self, x):
-        if isinstance(x, LinearOperator):
-            return _SumLinearOperator(self, x)
-        else:
-            return NotImplemented
-
-    def __neg__(self):
-        return _ScaledLinearOperator(self, -1)
-
-    def __sub__(self, x):
-        return self.__add__(-x)
-
-    def __repr__(self):
-        M,N = self.shape
-        if self.dtype is None:
-            dt = 'unspecified dtype'
-        else:
-            dt = 'dtype=' + str(self.dtype)
-
-        return '<%dx%d %s with %s>' % (M, N, self.__class__.__name__, dt)
-
-    def adjoint(self):
-        """Hermitian adjoint.
-
-        Returns the Hermitian adjoint of self, aka the Hermitian
-        conjugate or Hermitian transpose. For a complex matrix, the
-        Hermitian adjoint is equal to the conjugate transpose.
-
-        Can be abbreviated self.H instead of self.adjoint().
-
-        Returns
-        -------
-        A_H : LinearOperator
-            Hermitian adjoint of self.
-        """
-        return self._adjoint()
-
-    H = property(adjoint)
-
-    def transpose(self):
-        """Transpose this linear operator.
-
-        Returns a LinearOperator that represents the transpose of this one.
-        Can be abbreviated self.T instead of self.transpose().
-        """
-        return self._transpose()
-
-    T = property(transpose)
-
-    def _adjoint(self):
-        """Default implementation of _adjoint; defers to rmatvec."""
-        return _AdjointLinearOperator(self)
-
-    def _transpose(self):
-        """ Default implementation of _transpose; defers to rmatvec + conj"""
-        return _TransposedLinearOperator(self)
-
-
-class _CustomLinearOperator(LinearOperator):
-    """Linear operator defined in terms of user-specified operations."""
-
-    def __init__(self, shape, matvec, rmatvec=None, matmat=None,
-                 dtype=None, rmatmat=None):
-        super().__init__(dtype, shape)
-
-        self.args = ()
-
-        self.__matvec_impl = matvec
-        self.__rmatvec_impl = rmatvec
-        self.__rmatmat_impl = rmatmat
-        self.__matmat_impl = matmat
-
-        self._init_dtype()
-
-    def _matmat(self, X):
-        if self.__matmat_impl is not None:
-            return self.__matmat_impl(X)
-        else:
-            return super()._matmat(X)
-
-    def _matvec(self, x):
-        return self.__matvec_impl(x)
-
-    def _rmatvec(self, x):
-        func = self.__rmatvec_impl
-        if func is None:
-            raise NotImplementedError("rmatvec is not defined")
-        return self.__rmatvec_impl(x)
-
-    def _rmatmat(self, X):
-        if self.__rmatmat_impl is not None:
-            return self.__rmatmat_impl(X)
-        else:
-            return super()._rmatmat(X)
-
-    def _adjoint(self):
-        return _CustomLinearOperator(shape=(self.shape[1], self.shape[0]),
-                                     matvec=self.__rmatvec_impl,
-                                     rmatvec=self.__matvec_impl,
-                                     matmat=self.__rmatmat_impl,
-                                     rmatmat=self.__matmat_impl,
-                                     dtype=self.dtype)
-
-
-class _AdjointLinearOperator(LinearOperator):
-    """Adjoint of arbitrary Linear Operator"""
-
-    def __init__(self, A):
-        shape = (A.shape[1], A.shape[0])
-        super().__init__(dtype=A.dtype, shape=shape)
-        self.A = A
-        self.args = (A,)
-
-    def _matvec(self, x):
-        return self.A._rmatvec(x)
-
-    def _rmatvec(self, x):
-        return self.A._matvec(x)
-
-    def _matmat(self, x):
-        return self.A._rmatmat(x)
-
-    def _rmatmat(self, x):
-        return self.A._matmat(x)
-
-class _TransposedLinearOperator(LinearOperator):
-    """Transposition of arbitrary Linear Operator"""
-
-    def __init__(self, A):
-        shape = (A.shape[1], A.shape[0])
-        super().__init__(dtype=A.dtype, shape=shape)
-        self.A = A
-        self.args = (A,)
-
-    def _matvec(self, x):
-        # NB. np.conj works also on sparse matrices
-        return np.conj(self.A._rmatvec(np.conj(x)))
-
-    def _rmatvec(self, x):
-        return np.conj(self.A._matvec(np.conj(x)))
-
-    def _matmat(self, x):
-        # NB. np.conj works also on sparse matrices
-        return np.conj(self.A._rmatmat(np.conj(x)))
-
-    def _rmatmat(self, x):
-        return np.conj(self.A._matmat(np.conj(x)))
-
-def _get_dtype(operators, dtypes=None):
-    if dtypes is None:
-        dtypes = []
-    for obj in operators:
-        if obj is not None and hasattr(obj, 'dtype'):
-            dtypes.append(obj.dtype)
-    return np.result_type(*dtypes)
-
-
-class _SumLinearOperator(LinearOperator):
-    def __init__(self, A, B):
-        if not isinstance(A, LinearOperator) or \
-                not isinstance(B, LinearOperator):
-            raise ValueError('both operands have to be a LinearOperator')
-        if A.shape != B.shape:
-            raise ValueError(f'cannot add {A} and {B}: shape mismatch')
-        self.args = (A, B)
-        super().__init__(_get_dtype([A, B]), A.shape)
-
-    def _matvec(self, x):
-        return self.args[0].matvec(x) + self.args[1].matvec(x)
-
-    def _rmatvec(self, x):
-        return self.args[0].rmatvec(x) + self.args[1].rmatvec(x)
-
-    def _rmatmat(self, x):
-        return self.args[0].rmatmat(x) + self.args[1].rmatmat(x)
-
-    def _matmat(self, x):
-        return self.args[0].matmat(x) + self.args[1].matmat(x)
-
-    def _adjoint(self):
-        A, B = self.args
-        return A.H + B.H
-
-
-class _ProductLinearOperator(LinearOperator):
-    def __init__(self, A, B):
-        if not isinstance(A, LinearOperator) or \
-                not isinstance(B, LinearOperator):
-            raise ValueError('both operands have to be a LinearOperator')
-        if A.shape[1] != B.shape[0]:
-            raise ValueError(f'cannot multiply {A} and {B}: shape mismatch')
-        super().__init__(_get_dtype([A, B]),
-                                                     (A.shape[0], B.shape[1]))
-        self.args = (A, B)
-
-    def _matvec(self, x):
-        return self.args[0].matvec(self.args[1].matvec(x))
-
-    def _rmatvec(self, x):
-        return self.args[1].rmatvec(self.args[0].rmatvec(x))
-
-    def _rmatmat(self, x):
-        return self.args[1].rmatmat(self.args[0].rmatmat(x))
-
-    def _matmat(self, x):
-        return self.args[0].matmat(self.args[1].matmat(x))
-
-    def _adjoint(self):
-        A, B = self.args
-        return B.H * A.H
-
-
-class _ScaledLinearOperator(LinearOperator):
-    def __init__(self, A, alpha):
-        if not isinstance(A, LinearOperator):
-            raise ValueError('LinearOperator expected as A')
-        if not np.isscalar(alpha):
-            raise ValueError('scalar expected as alpha')
-        if isinstance(A, _ScaledLinearOperator):
-            A, alpha_original = A.args
-            # Avoid in-place multiplication so that we don't accidentally mutate
-            # the original prefactor.
-            alpha = alpha * alpha_original
-
-        dtype = _get_dtype([A], [type(alpha)])
-        super().__init__(dtype, A.shape)
-        self.args = (A, alpha)
-
-    def _matvec(self, x):
-        return self.args[1] * self.args[0].matvec(x)
-
-    def _rmatvec(self, x):
-        return np.conj(self.args[1]) * self.args[0].rmatvec(x)
-
-    def _rmatmat(self, x):
-        return np.conj(self.args[1]) * self.args[0].rmatmat(x)
-
-    def _matmat(self, x):
-        return self.args[1] * self.args[0].matmat(x)
-
-    def _adjoint(self):
-        A, alpha = self.args
-        return A.H * np.conj(alpha)
-
-
-class _PowerLinearOperator(LinearOperator):
-    def __init__(self, A, p):
-        if not isinstance(A, LinearOperator):
-            raise ValueError('LinearOperator expected as A')
-        if A.shape[0] != A.shape[1]:
-            raise ValueError('square LinearOperator expected, got %r' % A)
-        if not isintlike(p) or p < 0:
-            raise ValueError('non-negative integer expected as p')
-
-        super().__init__(_get_dtype([A]), A.shape)
-        self.args = (A, p)
-
-    def _power(self, fun, x):
-        res = np.array(x, copy=True)
-        for i in range(self.args[1]):
-            res = fun(res)
-        return res
-
-    def _matvec(self, x):
-        return self._power(self.args[0].matvec, x)
-
-    def _rmatvec(self, x):
-        return self._power(self.args[0].rmatvec, x)
-
-    def _rmatmat(self, x):
-        return self._power(self.args[0].rmatmat, x)
-
-    def _matmat(self, x):
-        return self._power(self.args[0].matmat, x)
-
-    def _adjoint(self):
-        A, p = self.args
-        return A.H ** p
-
-
-class MatrixLinearOperator(LinearOperator):
-    def __init__(self, A):
-        super().__init__(A.dtype, A.shape)
-        self.A = A
-        self.__adj = None
-        self.args = (A,)
-
-    def _matmat(self, X):
-        return self.A.dot(X)
-
-    def _adjoint(self):
-        if self.__adj is None:
-            self.__adj = _AdjointMatrixOperator(self)
-        return self.__adj
-
-class _AdjointMatrixOperator(MatrixLinearOperator):
-    def __init__(self, adjoint):
-        self.A = adjoint.A.T.conj()
-        self.__adjoint = adjoint
-        self.args = (adjoint,)
-        self.shape = adjoint.shape[1], adjoint.shape[0]
-
-    @property
-    def dtype(self):
-        return self.__adjoint.dtype
-
-    def _adjoint(self):
-        return self.__adjoint
-
-
-class IdentityOperator(LinearOperator):
-    def __init__(self, shape, dtype=None):
-        super().__init__(dtype, shape)
-
-    def _matvec(self, x):
-        return x
-
-    def _rmatvec(self, x):
-        return x
-
-    def _rmatmat(self, x):
-        return x
-
-    def _matmat(self, x):
-        return x
-
-    def _adjoint(self):
-        return self
-
-
-def aslinearoperator(A):
-    """Return A as a LinearOperator.
-
-    'A' may be any of the following types:
-     - ndarray
-     - matrix
-     - sparse matrix (e.g. csr_matrix, lil_matrix, etc.)
-     - LinearOperator
-     - An object with .shape and .matvec attributes
-
-    See the LinearOperator documentation for additional information.
-
-    Notes
-    -----
-    If 'A' has no .dtype attribute, the data type is determined by calling
-    :func:`LinearOperator.matvec()` - set the .dtype attribute to prevent this
-    call upon the linear operator creation.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse.linalg import aslinearoperator
-    >>> M = np.array([[1,2,3],[4,5,6]], dtype=np.int32)
-    >>> aslinearoperator(M)
-    <2x3 MatrixLinearOperator with dtype=int32>
-    """
-    if isinstance(A, LinearOperator):
-        return A
-
-    elif isinstance(A, np.ndarray) or isinstance(A, np.matrix):
-        if A.ndim > 2:
-            raise ValueError('array must have ndim <= 2')
-        A = np.atleast_2d(np.asarray(A))
-        return MatrixLinearOperator(A)
-
-    elif issparse(A) or is_pydata_spmatrix(A):
-        return MatrixLinearOperator(A)
-
-    else:
-        if hasattr(A, 'shape') and hasattr(A, 'matvec'):
-            rmatvec = None
-            rmatmat = None
-            dtype = None
-
-            if hasattr(A, 'rmatvec'):
-                rmatvec = A.rmatvec
-            if hasattr(A, 'rmatmat'):
-                rmatmat = A.rmatmat
-            if hasattr(A, 'dtype'):
-                dtype = A.dtype
-            return LinearOperator(A.shape, A.matvec, rmatvec=rmatvec,
-                                  rmatmat=rmatmat, dtype=dtype)
-
-        else:
-            raise TypeError('type not understood')
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/__init__.py
deleted file mode 100644
index 3b57274542928e79c234bb6955849a90be21990e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/__init__.py
+++ /dev/null
@@ -1,20 +0,0 @@
-"Iterative Solvers for Sparse Linear Systems"
-
-#from info import __doc__
-from .iterative import *
-from .minres import minres
-from .lgmres import lgmres
-from .lsqr import lsqr
-from .lsmr import lsmr
-from ._gcrotmk import gcrotmk
-from .tfqmr import tfqmr
-
-__all__ = [
-    'bicg', 'bicgstab', 'cg', 'cgs', 'gcrotmk', 'gmres',
-    'lgmres', 'lsmr', 'lsqr',
-    'minres', 'qmr', 'tfqmr'
-]
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/iterative.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/iterative.py
deleted file mode 100644
index 0176654cfc80cb35a4f17c5871537cfde2054e49..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/iterative.py
+++ /dev/null
@@ -1,1000 +0,0 @@
-import warnings
-import numpy as np
-from scipy.sparse.linalg._interface import LinearOperator
-from .utils import make_system
-from scipy.linalg import get_lapack_funcs
-
-__all__ = ['bicg', 'bicgstab', 'cg', 'cgs', 'gmres', 'qmr']
-
-
-def _get_atol_rtol(name, b_norm, atol=0., rtol=1e-5):
-    """
-    A helper function to handle tolerance normalization
-    """
-    if atol == 'legacy' or atol is None or atol < 0:
-        msg = (f"'scipy.sparse.linalg.{name}' called with invalid `atol`={atol}; "
-               "if set, `atol` must be a real, non-negative number.")
-        raise ValueError(msg)
-
-    atol = max(float(atol), float(rtol) * float(b_norm))
-
-    return atol, rtol
-
-
-def bicg(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None, callback=None):
-    """Use BIConjugate Gradient iteration to solve ``Ax = b``.
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        The real or complex N-by-N matrix of the linear system.
-        Alternatively, ``A`` can be a linear operator which can
-        produce ``Ax`` and ``A^T x`` using, e.g.,
-        ``scipy.sparse.linalg.LinearOperator``.
-    b : ndarray
-        Right hand side of the linear system. Has shape (N,) or (N,1).
-    x0 : ndarray
-        Starting guess for the solution.
-    rtol, atol : float, optional
-        Parameters for the convergence test. For convergence,
-        ``norm(b - A @ x) <= max(rtol*norm(b), atol)`` should be satisfied.
-        The default is ``atol=0.`` and ``rtol=1e-5``.
-    maxiter : integer
-        Maximum number of iterations.  Iteration will stop after maxiter
-        steps even if the specified tolerance has not been achieved.
-    M : {sparse matrix, ndarray, LinearOperator}
-        Preconditioner for A.  The preconditioner should approximate the
-        inverse of A.  Effective preconditioning dramatically improves the
-        rate of convergence, which implies that fewer iterations are needed
-        to reach a given error tolerance.
-    callback : function
-        User-supplied function to call after each iteration.  It is called
-        as callback(xk), where xk is the current solution vector.
-
-    Returns
-    -------
-    x : ndarray
-        The converged solution.
-    info : integer
-        Provides convergence information:
-            0  : successful exit
-            >0 : convergence to tolerance not achieved, number of iterations
-            <0 : parameter breakdown
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import bicg
-    >>> A = csc_matrix([[3, 2, 0], [1, -1, 0], [0, 5, 1.]])
-    >>> b = np.array([2., 4., -1.])
-    >>> x, exitCode = bicg(A, b, atol=1e-5)
-    >>> print(exitCode)  # 0 indicates successful convergence
-    0
-    >>> np.allclose(A.dot(x), b)
-    True
-
-    """
-    A, M, x, b, postprocess = make_system(A, M, x0, b)
-    bnrm2 = np.linalg.norm(b)
-
-    atol, _ = _get_atol_rtol('bicg', bnrm2, atol, rtol)
-
-    if bnrm2 == 0:
-        return postprocess(b), 0
-
-    n = len(b)
-    dotprod = np.vdot if np.iscomplexobj(x) else np.dot
-
-    if maxiter is None:
-        maxiter = n*10
-
-    matvec, rmatvec = A.matvec, A.rmatvec
-    psolve, rpsolve = M.matvec, M.rmatvec
-
-    rhotol = np.finfo(x.dtype.char).eps**2
-
-    # Dummy values to initialize vars, silence linter warnings
-    rho_prev, p, ptilde = None, None, None
-
-    r = b - matvec(x) if x.any() else b.copy()
-    rtilde = r.copy()
-
-    for iteration in range(maxiter):
-        if np.linalg.norm(r) < atol:  # Are we done?
-            return postprocess(x), 0
-
-        z = psolve(r)
-        ztilde = rpsolve(rtilde)
-        # order matters in this dot product
-        rho_cur = dotprod(rtilde, z)
-
-        if np.abs(rho_cur) < rhotol:  # Breakdown case
-            return postprocess, -10
-
-        if iteration > 0:
-            beta = rho_cur / rho_prev
-            p *= beta
-            p += z
-            ptilde *= beta.conj()
-            ptilde += ztilde
-        else:  # First spin
-            p = z.copy()
-            ptilde = ztilde.copy()
-
-        q = matvec(p)
-        qtilde = rmatvec(ptilde)
-        rv = dotprod(ptilde, q)
-
-        if rv == 0:
-            return postprocess(x), -11
-
-        alpha = rho_cur / rv
-        x += alpha*p
-        r -= alpha*q
-        rtilde -= alpha.conj()*qtilde
-        rho_prev = rho_cur
-
-        if callback:
-            callback(x)
-
-    else:  # for loop exhausted
-        # Return incomplete progress
-        return postprocess(x), maxiter
-
-
-def bicgstab(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None,
-             callback=None):
-    """Use BIConjugate Gradient STABilized iteration to solve ``Ax = b``.
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        The real or complex N-by-N matrix of the linear system.
-        Alternatively, ``A`` can be a linear operator which can
-        produce ``Ax`` and ``A^T x`` using, e.g.,
-        ``scipy.sparse.linalg.LinearOperator``.
-    b : ndarray
-        Right hand side of the linear system. Has shape (N,) or (N,1).
-    x0 : ndarray
-        Starting guess for the solution.
-    rtol, atol : float, optional
-        Parameters for the convergence test. For convergence,
-        ``norm(b - A @ x) <= max(rtol*norm(b), atol)`` should be satisfied.
-        The default is ``atol=0.`` and ``rtol=1e-5``.
-    maxiter : integer
-        Maximum number of iterations.  Iteration will stop after maxiter
-        steps even if the specified tolerance has not been achieved.
-    M : {sparse matrix, ndarray, LinearOperator}
-        Preconditioner for A.  The preconditioner should approximate the
-        inverse of A.  Effective preconditioning dramatically improves the
-        rate of convergence, which implies that fewer iterations are needed
-        to reach a given error tolerance.
-    callback : function
-        User-supplied function to call after each iteration.  It is called
-        as callback(xk), where xk is the current solution vector.
-
-    Returns
-    -------
-    x : ndarray
-        The converged solution.
-    info : integer
-        Provides convergence information:
-            0  : successful exit
-            >0 : convergence to tolerance not achieved, number of iterations
-            <0 : parameter breakdown
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import bicgstab
-    >>> R = np.array([[4, 2, 0, 1],
-    ...               [3, 0, 0, 2],
-    ...               [0, 1, 1, 1],
-    ...               [0, 2, 1, 0]])
-    >>> A = csc_matrix(R)
-    >>> b = np.array([-1, -0.5, -1, 2])
-    >>> x, exit_code = bicgstab(A, b, atol=1e-5)
-    >>> print(exit_code)  # 0 indicates successful convergence
-    0
-    >>> np.allclose(A.dot(x), b)
-    True
-
-    """
-    A, M, x, b, postprocess = make_system(A, M, x0, b)
-    bnrm2 = np.linalg.norm(b)
-
-    atol, _ = _get_atol_rtol('bicgstab', bnrm2, atol, rtol)
-
-    if bnrm2 == 0:
-        return postprocess(b), 0
-
-    n = len(b)
-
-    dotprod = np.vdot if np.iscomplexobj(x) else np.dot
-
-    if maxiter is None:
-        maxiter = n*10
-
-    matvec = A.matvec
-    psolve = M.matvec
-
-    # These values make no sense but coming from original Fortran code
-    # sqrt might have been meant instead.
-    rhotol = np.finfo(x.dtype.char).eps**2
-    omegatol = rhotol
-
-    # Dummy values to initialize vars, silence linter warnings
-    rho_prev, omega, alpha, p, v = None, None, None, None, None
-
-    r = b - matvec(x) if x.any() else b.copy()
-    rtilde = r.copy()
-
-    for iteration in range(maxiter):
-        if np.linalg.norm(r) < atol:  # Are we done?
-            return postprocess(x), 0
-
-        rho = dotprod(rtilde, r)
-        if np.abs(rho) < rhotol:  # rho breakdown
-            return postprocess(x), -10
-
-        if iteration > 0:
-            if np.abs(omega) < omegatol:  # omega breakdown
-                return postprocess(x), -11
-
-            beta = (rho / rho_prev) * (alpha / omega)
-            p -= omega*v
-            p *= beta
-            p += r
-        else:  # First spin
-            s = np.empty_like(r)
-            p = r.copy()
-
-        phat = psolve(p)
-        v = matvec(phat)
-        rv = dotprod(rtilde, v)
-        if rv == 0:
-            return postprocess(x), -11
-        alpha = rho / rv
-        r -= alpha*v
-        s[:] = r[:]
-
-        if np.linalg.norm(s) < atol:
-            x += alpha*phat
-            return postprocess(x), 0
-
-        shat = psolve(s)
-        t = matvec(shat)
-        omega = dotprod(t, s) / dotprod(t, t)
-        x += alpha*phat
-        x += omega*shat
-        r -= omega*t
-        rho_prev = rho
-
-        if callback:
-            callback(x)
-
-    else:  # for loop exhausted
-        # Return incomplete progress
-        return postprocess(x), maxiter
-
-
-def cg(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None, callback=None):
-    """Use Conjugate Gradient iteration to solve ``Ax = b``.
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        The real or complex N-by-N matrix of the linear system.
-        ``A`` must represent a hermitian, positive definite matrix.
-        Alternatively, ``A`` can be a linear operator which can
-        produce ``Ax`` using, e.g.,
-        ``scipy.sparse.linalg.LinearOperator``.
-    b : ndarray
-        Right hand side of the linear system. Has shape (N,) or (N,1).
-    x0 : ndarray
-        Starting guess for the solution.
-    rtol, atol : float, optional
-        Parameters for the convergence test. For convergence,
-        ``norm(b - A @ x) <= max(rtol*norm(b), atol)`` should be satisfied.
-        The default is ``atol=0.`` and ``rtol=1e-5``.
-    maxiter : integer
-        Maximum number of iterations.  Iteration will stop after maxiter
-        steps even if the specified tolerance has not been achieved.
-    M : {sparse matrix, ndarray, LinearOperator}
-        Preconditioner for A.  The preconditioner should approximate the
-        inverse of A.  Effective preconditioning dramatically improves the
-        rate of convergence, which implies that fewer iterations are needed
-        to reach a given error tolerance.
-    callback : function
-        User-supplied function to call after each iteration.  It is called
-        as callback(xk), where xk is the current solution vector.
-
-    Returns
-    -------
-    x : ndarray
-        The converged solution.
-    info : integer
-        Provides convergence information:
-            0  : successful exit
-            >0 : convergence to tolerance not achieved, number of iterations
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import cg
-    >>> P = np.array([[4, 0, 1, 0],
-    ...               [0, 5, 0, 0],
-    ...               [1, 0, 3, 2],
-    ...               [0, 0, 2, 4]])
-    >>> A = csc_matrix(P)
-    >>> b = np.array([-1, -0.5, -1, 2])
-    >>> x, exit_code = cg(A, b, atol=1e-5)
-    >>> print(exit_code)    # 0 indicates successful convergence
-    0
-    >>> np.allclose(A.dot(x), b)
-    True
-
-    """
-    A, M, x, b, postprocess = make_system(A, M, x0, b)
-    bnrm2 = np.linalg.norm(b)
-
-    atol, _ = _get_atol_rtol('cg', bnrm2, atol, rtol)
-
-    if bnrm2 == 0:
-        return postprocess(b), 0
-
-    n = len(b)
-
-    if maxiter is None:
-        maxiter = n*10
-
-    dotprod = np.vdot if np.iscomplexobj(x) else np.dot
-
-    matvec = A.matvec
-    psolve = M.matvec
-    r = b - matvec(x) if x.any() else b.copy()
-
-    # Dummy value to initialize var, silences warnings
-    rho_prev, p = None, None
-
-    for iteration in range(maxiter):
-        if np.linalg.norm(r) < atol:  # Are we done?
-            return postprocess(x), 0
-
-        z = psolve(r)
-        rho_cur = dotprod(r, z)
-        if iteration > 0:
-            beta = rho_cur / rho_prev
-            p *= beta
-            p += z
-        else:  # First spin
-            p = np.empty_like(r)
-            p[:] = z[:]
-
-        q = matvec(p)
-        alpha = rho_cur / dotprod(p, q)
-        x += alpha*p
-        r -= alpha*q
-        rho_prev = rho_cur
-
-        if callback:
-            callback(x)
-
-    else:  # for loop exhausted
-        # Return incomplete progress
-        return postprocess(x), maxiter
-
-
-def cgs(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None, callback=None):
-    """Use Conjugate Gradient Squared iteration to solve ``Ax = b``.
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        The real-valued N-by-N matrix of the linear system.
-        Alternatively, ``A`` can be a linear operator which can
-        produce ``Ax`` using, e.g.,
-        ``scipy.sparse.linalg.LinearOperator``.
-    b : ndarray
-        Right hand side of the linear system. Has shape (N,) or (N,1).
-    x0 : ndarray
-        Starting guess for the solution.
-    rtol, atol : float, optional
-        Parameters for the convergence test. For convergence,
-        ``norm(b - A @ x) <= max(rtol*norm(b), atol)`` should be satisfied.
-        The default is ``atol=0.`` and ``rtol=1e-5``.
-    maxiter : integer
-        Maximum number of iterations.  Iteration will stop after maxiter
-        steps even if the specified tolerance has not been achieved.
-    M : {sparse matrix, ndarray, LinearOperator}
-        Preconditioner for A.  The preconditioner should approximate the
-        inverse of A.  Effective preconditioning dramatically improves the
-        rate of convergence, which implies that fewer iterations are needed
-        to reach a given error tolerance.
-    callback : function
-        User-supplied function to call after each iteration.  It is called
-        as callback(xk), where xk is the current solution vector.
-
-    Returns
-    -------
-    x : ndarray
-        The converged solution.
-    info : integer
-        Provides convergence information:
-            0  : successful exit
-            >0 : convergence to tolerance not achieved, number of iterations
-            <0 : parameter breakdown
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import cgs
-    >>> R = np.array([[4, 2, 0, 1],
-    ...               [3, 0, 0, 2],
-    ...               [0, 1, 1, 1],
-    ...               [0, 2, 1, 0]])
-    >>> A = csc_matrix(R)
-    >>> b = np.array([-1, -0.5, -1, 2])
-    >>> x, exit_code = cgs(A, b)
-    >>> print(exit_code)  # 0 indicates successful convergence
-    0
-    >>> np.allclose(A.dot(x), b)
-    True
-
-    """
-    A, M, x, b, postprocess = make_system(A, M, x0, b)
-    bnrm2 = np.linalg.norm(b)
-
-    atol, _ = _get_atol_rtol('cgs', bnrm2, atol, rtol)
-
-    if bnrm2 == 0:
-        return postprocess(b), 0
-
-    n = len(b)
-
-    dotprod = np.vdot if np.iscomplexobj(x) else np.dot
-
-    if maxiter is None:
-        maxiter = n*10
-
-    matvec = A.matvec
-    psolve = M.matvec
-
-    rhotol = np.finfo(x.dtype.char).eps**2
-
-    r = b - matvec(x) if x.any() else b.copy()
-
-    rtilde = r.copy()
-    bnorm = np.linalg.norm(b)
-    if bnorm == 0:
-        bnorm = 1
-
-    # Dummy values to initialize vars, silence linter warnings
-    rho_prev, p, u, q = None, None, None, None
-
-    for iteration in range(maxiter):
-        rnorm = np.linalg.norm(r)
-        if rnorm < atol:  # Are we done?
-            return postprocess(x), 0
-
-        rho_cur = dotprod(rtilde, r)
-        if np.abs(rho_cur) < rhotol:  # Breakdown case
-            return postprocess, -10
-
-        if iteration > 0:
-            beta = rho_cur / rho_prev
-
-            # u = r + beta * q
-            # p = u + beta * (q + beta * p);
-            u[:] = r[:]
-            u += beta*q
-
-            p *= beta
-            p += q
-            p *= beta
-            p += u
-
-        else:  # First spin
-            p = r.copy()
-            u = r.copy()
-            q = np.empty_like(r)
-
-        phat = psolve(p)
-        vhat = matvec(phat)
-        rv = dotprod(rtilde, vhat)
-
-        if rv == 0:  # Dot product breakdown
-            return postprocess(x), -11
-
-        alpha = rho_cur / rv
-        q[:] = u[:]
-        q -= alpha*vhat
-        uhat = psolve(u + q)
-        x += alpha*uhat
-
-        # Due to numerical error build-up the actual residual is computed
-        # instead of the following two lines that were in the original
-        # FORTRAN templates, still using a single matvec.
-
-        # qhat = matvec(uhat)
-        # r -= alpha*qhat
-        r = b - matvec(x)
-
-        rho_prev = rho_cur
-
-        if callback:
-            callback(x)
-
-    else:  # for loop exhausted
-        # Return incomplete progress
-        return postprocess(x), maxiter
-
-
-def gmres(A, b, x0=None, *, rtol=1e-5, atol=0., restart=None, maxiter=None, M=None,
-          callback=None, callback_type=None):
-    """
-    Use Generalized Minimal RESidual iteration to solve ``Ax = b``.
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        The real or complex N-by-N matrix of the linear system.
-        Alternatively, ``A`` can be a linear operator which can
-        produce ``Ax`` using, e.g.,
-        ``scipy.sparse.linalg.LinearOperator``.
-    b : ndarray
-        Right hand side of the linear system. Has shape (N,) or (N,1).
-    x0 : ndarray
-        Starting guess for the solution (a vector of zeros by default).
-    atol, rtol : float
-        Parameters for the convergence test. For convergence,
-        ``norm(b - A @ x) <= max(rtol*norm(b), atol)`` should be satisfied.
-        The default is ``atol=0.`` and ``rtol=1e-5``.
-    restart : int, optional
-        Number of iterations between restarts. Larger values increase
-        iteration cost, but may be necessary for convergence.
-        If omitted, ``min(20, n)`` is used.
-    maxiter : int, optional
-        Maximum number of iterations (restart cycles).  Iteration will stop
-        after maxiter steps even if the specified tolerance has not been
-        achieved. See `callback_type`.
-    M : {sparse matrix, ndarray, LinearOperator}
-        Inverse of the preconditioner of A.  M should approximate the
-        inverse of A and be easy to solve for (see Notes).  Effective
-        preconditioning dramatically improves the rate of convergence,
-        which implies that fewer iterations are needed to reach a given
-        error tolerance.  By default, no preconditioner is used.
-        In this implementation, left preconditioning is used,
-        and the preconditioned residual is minimized. However, the final
-        convergence is tested with respect to the ``b - A @ x`` residual.
-    callback : function
-        User-supplied function to call after each iteration.  It is called
-        as `callback(args)`, where `args` are selected by `callback_type`.
-    callback_type : {'x', 'pr_norm', 'legacy'}, optional
-        Callback function argument requested:
-          - ``x``: current iterate (ndarray), called on every restart
-          - ``pr_norm``: relative (preconditioned) residual norm (float),
-            called on every inner iteration
-          - ``legacy`` (default): same as ``pr_norm``, but also changes the
-            meaning of `maxiter` to count inner iterations instead of restart
-            cycles.
-
-        This keyword has no effect if `callback` is not set.
-
-    Returns
-    -------
-    x : ndarray
-        The converged solution.
-    info : int
-        Provides convergence information:
-            0  : successful exit
-            >0 : convergence to tolerance not achieved, number of iterations
-
-    See Also
-    --------
-    LinearOperator
-
-    Notes
-    -----
-    A preconditioner, P, is chosen such that P is close to A but easy to solve
-    for. The preconditioner parameter required by this routine is
-    ``M = P^-1``. The inverse should preferably not be calculated
-    explicitly.  Rather, use the following template to produce M::
-
-      # Construct a linear operator that computes P^-1 @ x.
-      import scipy.sparse.linalg as spla
-      M_x = lambda x: spla.spsolve(P, x)
-      M = spla.LinearOperator((n, n), M_x)
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import gmres
-    >>> A = csc_matrix([[3, 2, 0], [1, -1, 0], [0, 5, 1]], dtype=float)
-    >>> b = np.array([2, 4, -1], dtype=float)
-    >>> x, exitCode = gmres(A, b, atol=1e-5)
-    >>> print(exitCode)            # 0 indicates successful convergence
-    0
-    >>> np.allclose(A.dot(x), b)
-    True
-    """
-    if callback is not None and callback_type is None:
-        # Warn about 'callback_type' semantic changes.
-        # Probably should be removed only in far future, Scipy 2.0 or so.
-        msg = ("scipy.sparse.linalg.gmres called without specifying "
-               "`callback_type`. The default value will be changed in"
-               " a future release. For compatibility, specify a value "
-               "for `callback_type` explicitly, e.g., "
-               "``gmres(..., callback_type='pr_norm')``, or to retain the "
-               "old behavior ``gmres(..., callback_type='legacy')``"
-               )
-        warnings.warn(msg, category=DeprecationWarning, stacklevel=3)
-
-    if callback_type is None:
-        callback_type = 'legacy'
-
-    if callback_type not in ('x', 'pr_norm', 'legacy'):
-        raise ValueError(f"Unknown callback_type: {callback_type!r}")
-
-    if callback is None:
-        callback_type = None
-
-    A, M, x, b, postprocess = make_system(A, M, x0, b)
-    matvec = A.matvec
-    psolve = M.matvec
-    n = len(b)
-    bnrm2 = np.linalg.norm(b)
-
-    atol, _ = _get_atol_rtol('gmres', bnrm2, atol, rtol)
-
-    if bnrm2 == 0:
-        return postprocess(b), 0
-
-    eps = np.finfo(x.dtype.char).eps
-
-    dotprod = np.vdot if np.iscomplexobj(x) else np.dot
-
-    if maxiter is None:
-        maxiter = n*10
-
-    if restart is None:
-        restart = 20
-    restart = min(restart, n)
-
-    Mb_nrm2 = np.linalg.norm(psolve(b))
-
-    # ====================================================
-    # =========== Tolerance control from gh-8400 =========
-    # ====================================================
-    # Tolerance passed to GMRESREVCOM applies to the inner
-    # iteration and deals with the left-preconditioned
-    # residual.
-    ptol_max_factor = 1.
-    ptol = Mb_nrm2 * min(ptol_max_factor, atol / bnrm2)
-    presid = 0.
-    # ====================================================
-    lartg = get_lapack_funcs('lartg', dtype=x.dtype)
-
-    # allocate internal variables
-    v = np.empty([restart+1, n], dtype=x.dtype)
-    h = np.zeros([restart, restart+1], dtype=x.dtype)
-    givens = np.zeros([restart, 2], dtype=x.dtype)
-
-    # legacy iteration count
-    inner_iter = 0
-
-    for iteration in range(maxiter):
-        if iteration == 0:
-            r = b - matvec(x) if x.any() else b.copy()
-            if np.linalg.norm(r) < atol:  # Are we done?
-                return postprocess(x), 0
-
-        v[0, :] = psolve(r)
-        tmp = np.linalg.norm(v[0, :])
-        v[0, :] *= (1 / tmp)
-        # RHS of the Hessenberg problem
-        S = np.zeros(restart+1, dtype=x.dtype)
-        S[0] = tmp
-
-        breakdown = False
-        for col in range(restart):
-            av = matvec(v[col, :])
-            w = psolve(av)
-
-            # Modified Gram-Schmidt
-            h0 = np.linalg.norm(w)
-            for k in range(col+1):
-                tmp = dotprod(v[k, :], w)
-                h[col, k] = tmp
-                w -= tmp*v[k, :]
-
-            h1 = np.linalg.norm(w)
-            h[col, col + 1] = h1
-            v[col + 1, :] = w[:]
-
-            # Exact solution indicator
-            if h1 <= eps*h0:
-                h[col, col + 1] = 0
-                breakdown = True
-            else:
-                v[col + 1, :] *= (1 / h1)
-
-            # apply past Givens rotations to current h column
-            for k in range(col):
-                c, s = givens[k, 0], givens[k, 1]
-                n0, n1 = h[col, [k, k+1]]
-                h[col, [k, k + 1]] = [c*n0 + s*n1, -s.conj()*n0 + c*n1]
-
-            # get and apply current rotation to h and S
-            c, s, mag = lartg(h[col, col], h[col, col+1])
-            givens[col, :] = [c, s]
-            h[col, [col, col+1]] = mag, 0
-
-            # S[col+1] component is always 0
-            tmp = -np.conjugate(s)*S[col]
-            S[[col, col + 1]] = [c*S[col], tmp]
-            presid = np.abs(tmp)
-            inner_iter += 1
-
-            if callback_type in ('legacy', 'pr_norm'):
-                callback(presid / bnrm2)
-            # Legacy behavior
-            if callback_type == 'legacy' and inner_iter == maxiter:
-                break
-            if presid <= ptol or breakdown:
-                break
-
-        # Solve h(col, col) upper triangular system and allow pseudo-solve
-        # singular cases as in (but without the f2py copies):
-        # y = trsv(h[:col+1, :col+1].T, S[:col+1])
-
-        if h[col, col] == 0:
-            S[col] = 0
-
-        y = np.zeros([col+1], dtype=x.dtype)
-        y[:] = S[:col+1]
-        for k in range(col, 0, -1):
-            if y[k] != 0:
-                y[k] /= h[k, k]
-                tmp = y[k]
-                y[:k] -= tmp*h[k, :k]
-        if y[0] != 0:
-            y[0] /= h[0, 0]
-
-        x += y @ v[:col+1, :]
-
-        r = b - matvec(x)
-        rnorm = np.linalg.norm(r)
-
-        # Legacy exit
-        if callback_type == 'legacy' and inner_iter == maxiter:
-            return postprocess(x), 0 if rnorm <= atol else maxiter
-
-        if callback_type == 'x':
-            callback(x)
-
-        if rnorm <= atol:
-            break
-        elif breakdown:
-            # Reached breakdown (= exact solution), but the external
-            # tolerance check failed. Bail out with failure.
-            break
-        elif presid <= ptol:
-            # Inner loop passed but outer didn't
-            ptol_max_factor = max(eps, 0.25 * ptol_max_factor)
-        else:
-            ptol_max_factor = min(1.0, 1.5 * ptol_max_factor)
-
-        ptol = presid * min(ptol_max_factor, atol / rnorm)
-
-    info = 0 if (rnorm <= atol) else maxiter
-    return postprocess(x), info
-
-
-def qmr(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M1=None, M2=None,
-        callback=None):
-    """Use Quasi-Minimal Residual iteration to solve ``Ax = b``.
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        The real-valued N-by-N matrix of the linear system.
-        Alternatively, ``A`` can be a linear operator which can
-        produce ``Ax`` and ``A^T x`` using, e.g.,
-        ``scipy.sparse.linalg.LinearOperator``.
-    b : ndarray
-        Right hand side of the linear system. Has shape (N,) or (N,1).
-    x0 : ndarray
-        Starting guess for the solution.
-    atol, rtol : float, optional
-        Parameters for the convergence test. For convergence,
-        ``norm(b - A @ x) <= max(rtol*norm(b), atol)`` should be satisfied.
-        The default is ``atol=0.`` and ``rtol=1e-5``.
-    maxiter : integer
-        Maximum number of iterations.  Iteration will stop after maxiter
-        steps even if the specified tolerance has not been achieved.
-    M1 : {sparse matrix, ndarray, LinearOperator}
-        Left preconditioner for A.
-    M2 : {sparse matrix, ndarray, LinearOperator}
-        Right preconditioner for A. Used together with the left
-        preconditioner M1.  The matrix M1@A@M2 should have better
-        conditioned than A alone.
-    callback : function
-        User-supplied function to call after each iteration.  It is called
-        as callback(xk), where xk is the current solution vector.
-
-    Returns
-    -------
-    x : ndarray
-        The converged solution.
-    info : integer
-        Provides convergence information:
-            0  : successful exit
-            >0 : convergence to tolerance not achieved, number of iterations
-            <0 : parameter breakdown
-
-    See Also
-    --------
-    LinearOperator
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import qmr
-    >>> A = csc_matrix([[3., 2., 0.], [1., -1., 0.], [0., 5., 1.]])
-    >>> b = np.array([2., 4., -1.])
-    >>> x, exitCode = qmr(A, b, atol=1e-5)
-    >>> print(exitCode)            # 0 indicates successful convergence
-    0
-    >>> np.allclose(A.dot(x), b)
-    True
-    """
-    A_ = A
-    A, M, x, b, postprocess = make_system(A, None, x0, b)
-    bnrm2 = np.linalg.norm(b)
-
-    atol, _ = _get_atol_rtol('qmr', bnrm2, atol, rtol)
-
-    if bnrm2 == 0:
-        return postprocess(b), 0
-
-    if M1 is None and M2 is None:
-        if hasattr(A_, 'psolve'):
-            def left_psolve(b):
-                return A_.psolve(b, 'left')
-
-            def right_psolve(b):
-                return A_.psolve(b, 'right')
-
-            def left_rpsolve(b):
-                return A_.rpsolve(b, 'left')
-
-            def right_rpsolve(b):
-                return A_.rpsolve(b, 'right')
-            M1 = LinearOperator(A.shape,
-                                matvec=left_psolve,
-                                rmatvec=left_rpsolve)
-            M2 = LinearOperator(A.shape,
-                                matvec=right_psolve,
-                                rmatvec=right_rpsolve)
-        else:
-            def id(b):
-                return b
-            M1 = LinearOperator(A.shape, matvec=id, rmatvec=id)
-            M2 = LinearOperator(A.shape, matvec=id, rmatvec=id)
-
-    n = len(b)
-    if maxiter is None:
-        maxiter = n*10
-
-    dotprod = np.vdot if np.iscomplexobj(x) else np.dot
-
-    rhotol = np.finfo(x.dtype.char).eps
-    betatol = rhotol
-    gammatol = rhotol
-    deltatol = rhotol
-    epsilontol = rhotol
-    xitol = rhotol
-
-    r = b - A.matvec(x) if x.any() else b.copy()
-
-    vtilde = r.copy()
-    y = M1.matvec(vtilde)
-    rho = np.linalg.norm(y)
-    wtilde = r.copy()
-    z = M2.rmatvec(wtilde)
-    xi = np.linalg.norm(z)
-    gamma, eta, theta = 1, -1, 0
-    v = np.empty_like(vtilde)
-    w = np.empty_like(wtilde)
-
-    # Dummy values to initialize vars, silence linter warnings
-    epsilon, q, d, p, s = None, None, None, None, None
-
-    for iteration in range(maxiter):
-        if np.linalg.norm(r) < atol:  # Are we done?
-            return postprocess(x), 0
-        if np.abs(rho) < rhotol:  # rho breakdown
-            return postprocess(x), -10
-        if np.abs(xi) < xitol:  # xi breakdown
-            return postprocess(x), -15
-
-        v[:] = vtilde[:]
-        v *= (1 / rho)
-        y *= (1 / rho)
-        w[:] = wtilde[:]
-        w *= (1 / xi)
-        z *= (1 / xi)
-        delta = dotprod(z, y)
-
-        if np.abs(delta) < deltatol:  # delta breakdown
-            return postprocess(x), -13
-
-        ytilde = M2.matvec(y)
-        ztilde = M1.rmatvec(z)
-
-        if iteration > 0:
-            ytilde -= (xi * delta / epsilon) * p
-            p[:] = ytilde[:]
-            ztilde -= (rho * (delta / epsilon).conj()) * q
-            q[:] = ztilde[:]
-        else:  # First spin
-            p = ytilde.copy()
-            q = ztilde.copy()
-
-        ptilde = A.matvec(p)
-        epsilon = dotprod(q, ptilde)
-        if np.abs(epsilon) < epsilontol:  # epsilon breakdown
-            return postprocess(x), -14
-
-        beta = epsilon / delta
-        if np.abs(beta) < betatol:  # beta breakdown
-            return postprocess(x), -11
-
-        vtilde[:] = ptilde[:]
-        vtilde -= beta*v
-        y = M1.matvec(vtilde)
-
-        rho_prev = rho
-        rho = np.linalg.norm(y)
-        wtilde[:] = w[:]
-        wtilde *= - beta.conj()
-        wtilde += A.rmatvec(q)
-        z = M2.rmatvec(wtilde)
-        xi = np.linalg.norm(z)
-        gamma_prev = gamma
-        theta_prev = theta
-        theta = rho / (gamma_prev * np.abs(beta))
-        gamma = 1 / np.sqrt(1 + theta**2)
-
-        if np.abs(gamma) < gammatol:  # gamma breakdown
-            return postprocess(x), -12
-
-        eta *= -(rho_prev / beta) * (gamma / gamma_prev)**2
-
-        if iteration > 0:
-            d *= (theta_prev * gamma) ** 2
-            d += eta*p
-            s *= (theta_prev * gamma) ** 2
-            s += eta*ptilde
-        else:
-            d = p.copy()
-            d *= eta
-            s = ptilde.copy()
-            s *= eta
-
-        x += d
-        r -= s
-
-        if callback:
-            callback(x)
-
-    else:  # for loop exhausted
-        # Return incomplete progress
-        return postprocess(x), maxiter
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/lgmres.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/lgmres.py
deleted file mode 100644
index 3e105f5283a60ffe657c930b5b71b8783f311f94..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/lgmres.py
+++ /dev/null
@@ -1,230 +0,0 @@
-# Copyright (C) 2009, Pauli Virtanen 
-# Distributed under the same license as SciPy.
-
-import numpy as np
-from numpy.linalg import LinAlgError
-from scipy.linalg import get_blas_funcs
-from .iterative import _get_atol_rtol
-from .utils import make_system
-
-from ._gcrotmk import _fgmres
-
-__all__ = ['lgmres']
-
-
-def lgmres(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=1000, M=None, callback=None,
-           inner_m=30, outer_k=3, outer_v=None, store_outer_Av=True,
-           prepend_outer_v=False):
-    """
-    Solve a matrix equation using the LGMRES algorithm.
-
-    The LGMRES algorithm [1]_ [2]_ is designed to avoid some problems
-    in the convergence in restarted GMRES, and often converges in fewer
-    iterations.
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        The real or complex N-by-N matrix of the linear system.
-        Alternatively, ``A`` can be a linear operator which can
-        produce ``Ax`` using, e.g.,
-        ``scipy.sparse.linalg.LinearOperator``.
-    b : ndarray
-        Right hand side of the linear system. Has shape (N,) or (N,1).
-    x0 : ndarray
-        Starting guess for the solution.
-    rtol, atol : float, optional
-        Parameters for the convergence test. For convergence,
-        ``norm(b - A @ x) <= max(rtol*norm(b), atol)`` should be satisfied.
-        The default is ``rtol=1e-5``, the default for ``atol`` is ``0.0``.
-    maxiter : int, optional
-        Maximum number of iterations.  Iteration will stop after maxiter
-        steps even if the specified tolerance has not been achieved.
-    M : {sparse matrix, ndarray, LinearOperator}, optional
-        Preconditioner for A.  The preconditioner should approximate the
-        inverse of A.  Effective preconditioning dramatically improves the
-        rate of convergence, which implies that fewer iterations are needed
-        to reach a given error tolerance.
-    callback : function, optional
-        User-supplied function to call after each iteration.  It is called
-        as callback(xk), where xk is the current solution vector.
-    inner_m : int, optional
-        Number of inner GMRES iterations per each outer iteration.
-    outer_k : int, optional
-        Number of vectors to carry between inner GMRES iterations.
-        According to [1]_, good values are in the range of 1...3.
-        However, note that if you want to use the additional vectors to
-        accelerate solving multiple similar problems, larger values may
-        be beneficial.
-    outer_v : list of tuples, optional
-        List containing tuples ``(v, Av)`` of vectors and corresponding
-        matrix-vector products, used to augment the Krylov subspace, and
-        carried between inner GMRES iterations. The element ``Av`` can
-        be `None` if the matrix-vector product should be re-evaluated.
-        This parameter is modified in-place by `lgmres`, and can be used
-        to pass "guess" vectors in and out of the algorithm when solving
-        similar problems.
-    store_outer_Av : bool, optional
-        Whether LGMRES should store also A@v in addition to vectors `v`
-        in the `outer_v` list. Default is True.
-    prepend_outer_v : bool, optional
-        Whether to put outer_v augmentation vectors before Krylov iterates.
-        In standard LGMRES, prepend_outer_v=False.
-
-    Returns
-    -------
-    x : ndarray
-        The converged solution.
-    info : int
-        Provides convergence information:
-
-            - 0  : successful exit
-            - >0 : convergence to tolerance not achieved, number of iterations
-            - <0 : illegal input or breakdown
-
-    Notes
-    -----
-    The LGMRES algorithm [1]_ [2]_ is designed to avoid the
-    slowing of convergence in restarted GMRES, due to alternating
-    residual vectors. Typically, it often outperforms GMRES(m) of
-    comparable memory requirements by some measure, or at least is not
-    much worse.
-
-    Another advantage in this algorithm is that you can supply it with
-    'guess' vectors in the `outer_v` argument that augment the Krylov
-    subspace. If the solution lies close to the span of these vectors,
-    the algorithm converges faster. This can be useful if several very
-    similar matrices need to be inverted one after another, such as in
-    Newton-Krylov iteration where the Jacobian matrix often changes
-    little in the nonlinear steps.
-
-    References
-    ----------
-    .. [1] A.H. Baker and E.R. Jessup and T. Manteuffel, "A Technique for
-             Accelerating the Convergence of Restarted GMRES", SIAM J. Matrix
-             Anal. Appl. 26, 962 (2005).
-    .. [2] A.H. Baker, "On Improving the Performance of the Linear Solver
-             restarted GMRES", PhD thesis, University of Colorado (2003).
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import lgmres
-    >>> A = csc_matrix([[3, 2, 0], [1, -1, 0], [0, 5, 1]], dtype=float)
-    >>> b = np.array([2, 4, -1], dtype=float)
-    >>> x, exitCode = lgmres(A, b, atol=1e-5)
-    >>> print(exitCode)            # 0 indicates successful convergence
-    0
-    >>> np.allclose(A.dot(x), b)
-    True
-    """
-    A,M,x,b,postprocess = make_system(A,M,x0,b)
-
-    if not np.isfinite(b).all():
-        raise ValueError("RHS must contain only finite numbers")
-
-    matvec = A.matvec
-    psolve = M.matvec
-
-    if outer_v is None:
-        outer_v = []
-
-    axpy, dot, scal = None, None, None
-    nrm2 = get_blas_funcs('nrm2', [b])
-
-    b_norm = nrm2(b)
-
-    # we call this to get the right atol/rtol and raise errors as necessary
-    atol, rtol = _get_atol_rtol('lgmres', b_norm, atol, rtol)
-
-    if b_norm == 0:
-        x = b
-        return (postprocess(x), 0)
-
-    ptol_max_factor = 1.0
-
-    for k_outer in range(maxiter):
-        r_outer = matvec(x) - b
-
-        # -- callback
-        if callback is not None:
-            callback(x)
-
-        # -- determine input type routines
-        if axpy is None:
-            if np.iscomplexobj(r_outer) and not np.iscomplexobj(x):
-                x = x.astype(r_outer.dtype)
-            axpy, dot, scal, nrm2 = get_blas_funcs(['axpy', 'dot', 'scal', 'nrm2'],
-                                                   (x, r_outer))
-
-        # -- check stopping condition
-        r_norm = nrm2(r_outer)
-        if r_norm <= max(atol, rtol * b_norm):
-            break
-
-        # -- inner LGMRES iteration
-        v0 = -psolve(r_outer)
-        inner_res_0 = nrm2(v0)
-
-        if inner_res_0 == 0:
-            rnorm = nrm2(r_outer)
-            raise RuntimeError("Preconditioner returned a zero vector; "
-                               "|v| ~ %.1g, |M v| = 0" % rnorm)
-
-        v0 = scal(1.0/inner_res_0, v0)
-
-        ptol = min(ptol_max_factor, max(atol, rtol*b_norm)/r_norm)
-
-        try:
-            Q, R, B, vs, zs, y, pres = _fgmres(matvec,
-                                               v0,
-                                               inner_m,
-                                               lpsolve=psolve,
-                                               atol=ptol,
-                                               outer_v=outer_v,
-                                               prepend_outer_v=prepend_outer_v)
-            y *= inner_res_0
-            if not np.isfinite(y).all():
-                # Overflow etc. in computation. There's no way to
-                # recover from this, so we have to bail out.
-                raise LinAlgError()
-        except LinAlgError:
-            # Floating point over/underflow, non-finite result from
-            # matmul etc. -- report failure.
-            return postprocess(x), k_outer + 1
-
-        # Inner loop tolerance control
-        if pres > ptol:
-            ptol_max_factor = min(1.0, 1.5 * ptol_max_factor)
-        else:
-            ptol_max_factor = max(1e-16, 0.25 * ptol_max_factor)
-
-        # -- GMRES terminated: eval solution
-        dx = zs[0]*y[0]
-        for w, yc in zip(zs[1:], y[1:]):
-            dx = axpy(w, dx, dx.shape[0], yc)  # dx += w*yc
-
-        # -- Store LGMRES augmentation vectors
-        nx = nrm2(dx)
-        if nx > 0:
-            if store_outer_Av:
-                q = Q.dot(R.dot(y))
-                ax = vs[0]*q[0]
-                for v, qc in zip(vs[1:], q[1:]):
-                    ax = axpy(v, ax, ax.shape[0], qc)
-                outer_v.append((dx/nx, ax/nx))
-            else:
-                outer_v.append((dx/nx, None))
-
-        # -- Retain only a finite number of augmentation vectors
-        while len(outer_v) > outer_k:
-            del outer_v[0]
-
-        # -- Apply step
-        x += dx
-    else:
-        # didn't converge ...
-        return postprocess(x), maxiter
-
-    return postprocess(x), 0
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/lsmr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/lsmr.py
deleted file mode 100644
index e9dd114a78b558742a4cea0ec8847378607f940d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/lsmr.py
+++ /dev/null
@@ -1,486 +0,0 @@
-"""
-Copyright (C) 2010 David Fong and Michael Saunders
-
-LSMR uses an iterative method.
-
-07 Jun 2010: Documentation updated
-03 Jun 2010: First release version in Python
-
-David Chin-lung Fong            clfong@stanford.edu
-Institute for Computational and Mathematical Engineering
-Stanford University
-
-Michael Saunders                saunders@stanford.edu
-Systems Optimization Laboratory
-Dept of MS&E, Stanford University.
-
-"""
-
-__all__ = ['lsmr']
-
-from numpy import zeros, inf, atleast_1d, result_type
-from numpy.linalg import norm
-from math import sqrt
-from scipy.sparse.linalg._interface import aslinearoperator
-
-from scipy.sparse.linalg._isolve.lsqr import _sym_ortho
-
-
-def lsmr(A, b, damp=0.0, atol=1e-6, btol=1e-6, conlim=1e8,
-         maxiter=None, show=False, x0=None):
-    """Iterative solver for least-squares problems.
-
-    lsmr solves the system of linear equations ``Ax = b``. If the system
-    is inconsistent, it solves the least-squares problem ``min ||b - Ax||_2``.
-    ``A`` is a rectangular matrix of dimension m-by-n, where all cases are
-    allowed: m = n, m > n, or m < n. ``b`` is a vector of length m.
-    The matrix A may be dense or sparse (usually sparse).
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        Matrix A in the linear system.
-        Alternatively, ``A`` can be a linear operator which can
-        produce ``Ax`` and ``A^H x`` using, e.g.,
-        ``scipy.sparse.linalg.LinearOperator``.
-    b : array_like, shape (m,)
-        Vector ``b`` in the linear system.
-    damp : float
-        Damping factor for regularized least-squares. `lsmr` solves
-        the regularized least-squares problem::
-
-         min ||(b) - (  A   )x||
-             ||(0)   (damp*I) ||_2
-
-        where damp is a scalar.  If damp is None or 0, the system
-        is solved without regularization. Default is 0.
-    atol, btol : float, optional
-        Stopping tolerances. `lsmr` continues iterations until a
-        certain backward error estimate is smaller than some quantity
-        depending on atol and btol.  Let ``r = b - Ax`` be the
-        residual vector for the current approximate solution ``x``.
-        If ``Ax = b`` seems to be consistent, `lsmr` terminates
-        when ``norm(r) <= atol * norm(A) * norm(x) + btol * norm(b)``.
-        Otherwise, `lsmr` terminates when ``norm(A^H r) <=
-        atol * norm(A) * norm(r)``.  If both tolerances are 1.0e-6 (default),
-        the final ``norm(r)`` should be accurate to about 6
-        digits. (The final ``x`` will usually have fewer correct digits,
-        depending on ``cond(A)`` and the size of LAMBDA.)  If `atol`
-        or `btol` is None, a default value of 1.0e-6 will be used.
-        Ideally, they should be estimates of the relative error in the
-        entries of ``A`` and ``b`` respectively.  For example, if the entries
-        of ``A`` have 7 correct digits, set ``atol = 1e-7``. This prevents
-        the algorithm from doing unnecessary work beyond the
-        uncertainty of the input data.
-    conlim : float, optional
-        `lsmr` terminates if an estimate of ``cond(A)`` exceeds
-        `conlim`.  For compatible systems ``Ax = b``, conlim could be
-        as large as 1.0e+12 (say).  For least-squares problems,
-        `conlim` should be less than 1.0e+8. If `conlim` is None, the
-        default value is 1e+8.  Maximum precision can be obtained by
-        setting ``atol = btol = conlim = 0``, but the number of
-        iterations may then be excessive. Default is 1e8.
-    maxiter : int, optional
-        `lsmr` terminates if the number of iterations reaches
-        `maxiter`.  The default is ``maxiter = min(m, n)``.  For
-        ill-conditioned systems, a larger value of `maxiter` may be
-        needed. Default is False.
-    show : bool, optional
-        Print iterations logs if ``show=True``. Default is False.
-    x0 : array_like, shape (n,), optional
-        Initial guess of ``x``, if None zeros are used. Default is None.
-
-        .. versionadded:: 1.0.0
-
-    Returns
-    -------
-    x : ndarray of float
-        Least-square solution returned.
-    istop : int
-        istop gives the reason for stopping::
-
-          istop   = 0 means x=0 is a solution.  If x0 was given, then x=x0 is a
-                      solution.
-                  = 1 means x is an approximate solution to A@x = B,
-                      according to atol and btol.
-                  = 2 means x approximately solves the least-squares problem
-                      according to atol.
-                  = 3 means COND(A) seems to be greater than CONLIM.
-                  = 4 is the same as 1 with atol = btol = eps (machine
-                      precision)
-                  = 5 is the same as 2 with atol = eps.
-                  = 6 is the same as 3 with CONLIM = 1/eps.
-                  = 7 means ITN reached maxiter before the other stopping
-                      conditions were satisfied.
-
-    itn : int
-        Number of iterations used.
-    normr : float
-        ``norm(b-Ax)``
-    normar : float
-        ``norm(A^H (b - Ax))``
-    norma : float
-        ``norm(A)``
-    conda : float
-        Condition number of A.
-    normx : float
-        ``norm(x)``
-
-    Notes
-    -----
-
-    .. versionadded:: 0.11.0
-
-    References
-    ----------
-    .. [1] D. C.-L. Fong and M. A. Saunders,
-           "LSMR: An iterative algorithm for sparse least-squares problems",
-           SIAM J. Sci. Comput., vol. 33, pp. 2950-2971, 2011.
-           :arxiv:`1006.0758`
-    .. [2] LSMR Software, https://web.stanford.edu/group/SOL/software/lsmr/
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import lsmr
-    >>> A = csc_matrix([[1., 0.], [1., 1.], [0., 1.]], dtype=float)
-
-    The first example has the trivial solution ``[0, 0]``
-
-    >>> b = np.array([0., 0., 0.], dtype=float)
-    >>> x, istop, itn, normr = lsmr(A, b)[:4]
-    >>> istop
-    0
-    >>> x
-    array([0., 0.])
-
-    The stopping code `istop=0` returned indicates that a vector of zeros was
-    found as a solution. The returned solution `x` indeed contains
-    ``[0., 0.]``. The next example has a non-trivial solution:
-
-    >>> b = np.array([1., 0., -1.], dtype=float)
-    >>> x, istop, itn, normr = lsmr(A, b)[:4]
-    >>> istop
-    1
-    >>> x
-    array([ 1., -1.])
-    >>> itn
-    1
-    >>> normr
-    4.440892098500627e-16
-
-    As indicated by `istop=1`, `lsmr` found a solution obeying the tolerance
-    limits. The given solution ``[1., -1.]`` obviously solves the equation. The
-    remaining return values include information about the number of iterations
-    (`itn=1`) and the remaining difference of left and right side of the solved
-    equation.
-    The final example demonstrates the behavior in the case where there is no
-    solution for the equation:
-
-    >>> b = np.array([1., 0.01, -1.], dtype=float)
-    >>> x, istop, itn, normr = lsmr(A, b)[:4]
-    >>> istop
-    2
-    >>> x
-    array([ 1.00333333, -0.99666667])
-    >>> A.dot(x)-b
-    array([ 0.00333333, -0.00333333,  0.00333333])
-    >>> normr
-    0.005773502691896255
-
-    `istop` indicates that the system is inconsistent and thus `x` is rather an
-    approximate solution to the corresponding least-squares problem. `normr`
-    contains the minimal distance that was found.
-    """
-
-    A = aslinearoperator(A)
-    b = atleast_1d(b)
-    if b.ndim > 1:
-        b = b.squeeze()
-
-    msg = ('The exact solution is x = 0, or x = x0, if x0 was given  ',
-           'Ax - b is small enough, given atol, btol                  ',
-           'The least-squares solution is good enough, given atol     ',
-           'The estimate of cond(Abar) has exceeded conlim            ',
-           'Ax - b is small enough for this machine                   ',
-           'The least-squares solution is good enough for this machine',
-           'Cond(Abar) seems to be too large for this machine         ',
-           'The iteration limit has been reached                      ')
-
-    hdg1 = '   itn      x(1)       norm r    norm Ar'
-    hdg2 = ' compatible   LS      norm A   cond A'
-    pfreq = 20   # print frequency (for repeating the heading)
-    pcount = 0   # print counter
-
-    m, n = A.shape
-
-    # stores the num of singular values
-    minDim = min([m, n])
-
-    if maxiter is None:
-        maxiter = minDim
-
-    if x0 is None:
-        dtype = result_type(A, b, float)
-    else:
-        dtype = result_type(A, b, x0, float)
-
-    if show:
-        print(' ')
-        print('LSMR            Least-squares solution of  Ax = b\n')
-        print(f'The matrix A has {m} rows and {n} columns')
-        print('damp = %20.14e\n' % (damp))
-        print(f'atol = {atol:8.2e}                 conlim = {conlim:8.2e}\n')
-        print(f'btol = {btol:8.2e}             maxiter = {maxiter:8g}\n')
-
-    u = b
-    normb = norm(b)
-    if x0 is None:
-        x = zeros(n, dtype)
-        beta = normb.copy()
-    else:
-        x = atleast_1d(x0.copy())
-        u = u - A.matvec(x)
-        beta = norm(u)
-
-    if beta > 0:
-        u = (1 / beta) * u
-        v = A.rmatvec(u)
-        alpha = norm(v)
-    else:
-        v = zeros(n, dtype)
-        alpha = 0
-
-    if alpha > 0:
-        v = (1 / alpha) * v
-
-    # Initialize variables for 1st iteration.
-
-    itn = 0
-    zetabar = alpha * beta
-    alphabar = alpha
-    rho = 1
-    rhobar = 1
-    cbar = 1
-    sbar = 0
-
-    h = v.copy()
-    hbar = zeros(n, dtype)
-
-    # Initialize variables for estimation of ||r||.
-
-    betadd = beta
-    betad = 0
-    rhodold = 1
-    tautildeold = 0
-    thetatilde = 0
-    zeta = 0
-    d = 0
-
-    # Initialize variables for estimation of ||A|| and cond(A)
-
-    normA2 = alpha * alpha
-    maxrbar = 0
-    minrbar = 1e+100
-    normA = sqrt(normA2)
-    condA = 1
-    normx = 0
-
-    # Items for use in stopping rules, normb set earlier
-    istop = 0
-    ctol = 0
-    if conlim > 0:
-        ctol = 1 / conlim
-    normr = beta
-
-    # Reverse the order here from the original matlab code because
-    # there was an error on return when arnorm==0
-    normar = alpha * beta
-    if normar == 0:
-        if show:
-            print(msg[0])
-        return x, istop, itn, normr, normar, normA, condA, normx
-
-    if normb == 0:
-        x[()] = 0
-        return x, istop, itn, normr, normar, normA, condA, normx
-
-    if show:
-        print(' ')
-        print(hdg1, hdg2)
-        test1 = 1
-        test2 = alpha / beta
-        str1 = f'{itn:6g} {x[0]:12.5e}'
-        str2 = f' {normr:10.3e} {normar:10.3e}'
-        str3 = f'  {test1:8.1e} {test2:8.1e}'
-        print(''.join([str1, str2, str3]))
-
-    # Main iteration loop.
-    while itn < maxiter:
-        itn = itn + 1
-
-        # Perform the next step of the bidiagonalization to obtain the
-        # next  beta, u, alpha, v.  These satisfy the relations
-        #         beta*u  =  A@v   -  alpha*u,
-        #        alpha*v  =  A'@u  -  beta*v.
-
-        u *= -alpha
-        u += A.matvec(v)
-        beta = norm(u)
-
-        if beta > 0:
-            u *= (1 / beta)
-            v *= -beta
-            v += A.rmatvec(u)
-            alpha = norm(v)
-            if alpha > 0:
-                v *= (1 / alpha)
-
-        # At this point, beta = beta_{k+1}, alpha = alpha_{k+1}.
-
-        # Construct rotation Qhat_{k,2k+1}.
-
-        chat, shat, alphahat = _sym_ortho(alphabar, damp)
-
-        # Use a plane rotation (Q_i) to turn B_i to R_i
-
-        rhoold = rho
-        c, s, rho = _sym_ortho(alphahat, beta)
-        thetanew = s*alpha
-        alphabar = c*alpha
-
-        # Use a plane rotation (Qbar_i) to turn R_i^T to R_i^bar
-
-        rhobarold = rhobar
-        zetaold = zeta
-        thetabar = sbar * rho
-        rhotemp = cbar * rho
-        cbar, sbar, rhobar = _sym_ortho(cbar * rho, thetanew)
-        zeta = cbar * zetabar
-        zetabar = - sbar * zetabar
-
-        # Update h, h_hat, x.
-
-        hbar *= - (thetabar * rho / (rhoold * rhobarold))
-        hbar += h
-        x += (zeta / (rho * rhobar)) * hbar
-        h *= - (thetanew / rho)
-        h += v
-
-        # Estimate of ||r||.
-
-        # Apply rotation Qhat_{k,2k+1}.
-        betaacute = chat * betadd
-        betacheck = -shat * betadd
-
-        # Apply rotation Q_{k,k+1}.
-        betahat = c * betaacute
-        betadd = -s * betaacute
-
-        # Apply rotation Qtilde_{k-1}.
-        # betad = betad_{k-1} here.
-
-        thetatildeold = thetatilde
-        ctildeold, stildeold, rhotildeold = _sym_ortho(rhodold, thetabar)
-        thetatilde = stildeold * rhobar
-        rhodold = ctildeold * rhobar
-        betad = - stildeold * betad + ctildeold * betahat
-
-        # betad   = betad_k here.
-        # rhodold = rhod_k  here.
-
-        tautildeold = (zetaold - thetatildeold * tautildeold) / rhotildeold
-        taud = (zeta - thetatilde * tautildeold) / rhodold
-        d = d + betacheck * betacheck
-        normr = sqrt(d + (betad - taud)**2 + betadd * betadd)
-
-        # Estimate ||A||.
-        normA2 = normA2 + beta * beta
-        normA = sqrt(normA2)
-        normA2 = normA2 + alpha * alpha
-
-        # Estimate cond(A).
-        maxrbar = max(maxrbar, rhobarold)
-        if itn > 1:
-            minrbar = min(minrbar, rhobarold)
-        condA = max(maxrbar, rhotemp) / min(minrbar, rhotemp)
-
-        # Test for convergence.
-
-        # Compute norms for convergence testing.
-        normar = abs(zetabar)
-        normx = norm(x)
-
-        # Now use these norms to estimate certain other quantities,
-        # some of which will be small near a solution.
-
-        test1 = normr / normb
-        if (normA * normr) != 0:
-            test2 = normar / (normA * normr)
-        else:
-            test2 = inf
-        test3 = 1 / condA
-        t1 = test1 / (1 + normA * normx / normb)
-        rtol = btol + atol * normA * normx / normb
-
-        # The following tests guard against extremely small values of
-        # atol, btol or ctol.  (The user may have set any or all of
-        # the parameters atol, btol, conlim  to 0.)
-        # The effect is equivalent to the normAl tests using
-        # atol = eps,  btol = eps,  conlim = 1/eps.
-
-        if itn >= maxiter:
-            istop = 7
-        if 1 + test3 <= 1:
-            istop = 6
-        if 1 + test2 <= 1:
-            istop = 5
-        if 1 + t1 <= 1:
-            istop = 4
-
-        # Allow for tolerances set by the user.
-
-        if test3 <= ctol:
-            istop = 3
-        if test2 <= atol:
-            istop = 2
-        if test1 <= rtol:
-            istop = 1
-
-        # See if it is time to print something.
-
-        if show:
-            if (n <= 40) or (itn <= 10) or (itn >= maxiter - 10) or \
-               (itn % 10 == 0) or (test3 <= 1.1 * ctol) or \
-               (test2 <= 1.1 * atol) or (test1 <= 1.1 * rtol) or \
-               (istop != 0):
-
-                if pcount >= pfreq:
-                    pcount = 0
-                    print(' ')
-                    print(hdg1, hdg2)
-                pcount = pcount + 1
-                str1 = f'{itn:6g} {x[0]:12.5e}'
-                str2 = f' {normr:10.3e} {normar:10.3e}'
-                str3 = f'  {test1:8.1e} {test2:8.1e}'
-                str4 = f' {normA:8.1e} {condA:8.1e}'
-                print(''.join([str1, str2, str3, str4]))
-
-        if istop > 0:
-            break
-
-    # Print the stopping condition.
-
-    if show:
-        print(' ')
-        print('LSMR finished')
-        print(msg[istop])
-        print(f'istop ={istop:8g}    normr ={normr:8.1e}')
-        print(f'    normA ={normA:8.1e}    normAr ={normar:8.1e}')
-        print(f'itn   ={itn:8g}    condA ={condA:8.1e}')
-        print('    normx =%8.1e' % (normx))
-        print(str1, str2)
-        print(str3, str4)
-
-    return x, istop, itn, normr, normar, normA, condA, normx
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/lsqr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/lsqr.py
deleted file mode 100644
index 010f61bc5412f96a31ef5303f09b5167556e80ce..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/lsqr.py
+++ /dev/null
@@ -1,587 +0,0 @@
-"""Sparse Equations and Least Squares.
-
-The original Fortran code was written by C. C. Paige and M. A. Saunders as
-described in
-
-C. C. Paige and M. A. Saunders, LSQR: An algorithm for sparse linear
-equations and sparse least squares, TOMS 8(1), 43--71 (1982).
-
-C. C. Paige and M. A. Saunders, Algorithm 583; LSQR: Sparse linear
-equations and least-squares problems, TOMS 8(2), 195--209 (1982).
-
-It is licensed under the following BSD license:
-
-Copyright (c) 2006, Systems Optimization Laboratory
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-
-    * Neither the name of Stanford University nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-The Fortran code was translated to Python for use in CVXOPT by Jeffery
-Kline with contributions by Mridul Aanjaneya and Bob Myhill.
-
-Adapted for SciPy by Stefan van der Walt.
-
-"""
-
-__all__ = ['lsqr']
-
-import numpy as np
-from math import sqrt
-from scipy.sparse.linalg._interface import aslinearoperator
-
-eps = np.finfo(np.float64).eps
-
-
-def _sym_ortho(a, b):
-    """
-    Stable implementation of Givens rotation.
-
-    Notes
-    -----
-    The routine 'SymOrtho' was added for numerical stability. This is
-    recommended by S.-C. Choi in [1]_.  It removes the unpleasant potential of
-    ``1/eps`` in some important places (see, for example text following
-    "Compute the next plane rotation Qk" in minres.py).
-
-    References
-    ----------
-    .. [1] S.-C. Choi, "Iterative Methods for Singular Linear Equations
-           and Least-Squares Problems", Dissertation,
-           http://www.stanford.edu/group/SOL/dissertations/sou-cheng-choi-thesis.pdf
-
-    """
-    if b == 0:
-        return np.sign(a), 0, abs(a)
-    elif a == 0:
-        return 0, np.sign(b), abs(b)
-    elif abs(b) > abs(a):
-        tau = a / b
-        s = np.sign(b) / sqrt(1 + tau * tau)
-        c = s * tau
-        r = b / s
-    else:
-        tau = b / a
-        c = np.sign(a) / sqrt(1+tau*tau)
-        s = c * tau
-        r = a / c
-    return c, s, r
-
-
-def lsqr(A, b, damp=0.0, atol=1e-6, btol=1e-6, conlim=1e8,
-         iter_lim=None, show=False, calc_var=False, x0=None):
-    """Find the least-squares solution to a large, sparse, linear system
-    of equations.
-
-    The function solves ``Ax = b``  or  ``min ||Ax - b||^2`` or
-    ``min ||Ax - b||^2 + d^2 ||x - x0||^2``.
-
-    The matrix A may be square or rectangular (over-determined or
-    under-determined), and may have any rank.
-
-    ::
-
-      1. Unsymmetric equations --    solve  Ax = b
-
-      2. Linear least squares  --    solve  Ax = b
-                                     in the least-squares sense
-
-      3. Damped least squares  --    solve  (   A    )*x = (    b    )
-                                            ( damp*I )     ( damp*x0 )
-                                     in the least-squares sense
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        Representation of an m-by-n matrix.
-        Alternatively, ``A`` can be a linear operator which can
-        produce ``Ax`` and ``A^T x`` using, e.g.,
-        ``scipy.sparse.linalg.LinearOperator``.
-    b : array_like, shape (m,)
-        Right-hand side vector ``b``.
-    damp : float
-        Damping coefficient. Default is 0.
-    atol, btol : float, optional
-        Stopping tolerances. `lsqr` continues iterations until a
-        certain backward error estimate is smaller than some quantity
-        depending on atol and btol.  Let ``r = b - Ax`` be the
-        residual vector for the current approximate solution ``x``.
-        If ``Ax = b`` seems to be consistent, `lsqr` terminates
-        when ``norm(r) <= atol * norm(A) * norm(x) + btol * norm(b)``.
-        Otherwise, `lsqr` terminates when ``norm(A^H r) <=
-        atol * norm(A) * norm(r)``.  If both tolerances are 1.0e-6 (default),
-        the final ``norm(r)`` should be accurate to about 6
-        digits. (The final ``x`` will usually have fewer correct digits,
-        depending on ``cond(A)`` and the size of LAMBDA.)  If `atol`
-        or `btol` is None, a default value of 1.0e-6 will be used.
-        Ideally, they should be estimates of the relative error in the
-        entries of ``A`` and ``b`` respectively.  For example, if the entries
-        of ``A`` have 7 correct digits, set ``atol = 1e-7``. This prevents
-        the algorithm from doing unnecessary work beyond the
-        uncertainty of the input data.
-    conlim : float, optional
-        Another stopping tolerance.  lsqr terminates if an estimate of
-        ``cond(A)`` exceeds `conlim`.  For compatible systems ``Ax =
-        b``, `conlim` could be as large as 1.0e+12 (say).  For
-        least-squares problems, conlim should be less than 1.0e+8.
-        Maximum precision can be obtained by setting ``atol = btol =
-        conlim = zero``, but the number of iterations may then be
-        excessive. Default is 1e8.
-    iter_lim : int, optional
-        Explicit limitation on number of iterations (for safety).
-    show : bool, optional
-        Display an iteration log. Default is False.
-    calc_var : bool, optional
-        Whether to estimate diagonals of ``(A'A + damp^2*I)^{-1}``.
-    x0 : array_like, shape (n,), optional
-        Initial guess of x, if None zeros are used. Default is None.
-
-        .. versionadded:: 1.0.0
-
-    Returns
-    -------
-    x : ndarray of float
-        The final solution.
-    istop : int
-        Gives the reason for termination.
-        1 means x is an approximate solution to Ax = b.
-        2 means x approximately solves the least-squares problem.
-    itn : int
-        Iteration number upon termination.
-    r1norm : float
-        ``norm(r)``, where ``r = b - Ax``.
-    r2norm : float
-        ``sqrt( norm(r)^2  +  damp^2 * norm(x - x0)^2 )``.  Equal to `r1norm`
-        if ``damp == 0``.
-    anorm : float
-        Estimate of Frobenius norm of ``Abar = [[A]; [damp*I]]``.
-    acond : float
-        Estimate of ``cond(Abar)``.
-    arnorm : float
-        Estimate of ``norm(A'@r - damp^2*(x - x0))``.
-    xnorm : float
-        ``norm(x)``
-    var : ndarray of float
-        If ``calc_var`` is True, estimates all diagonals of
-        ``(A'A)^{-1}`` (if ``damp == 0``) or more generally ``(A'A +
-        damp^2*I)^{-1}``.  This is well defined if A has full column
-        rank or ``damp > 0``.  (Not sure what var means if ``rank(A)
-        < n`` and ``damp = 0.``)
-
-    Notes
-    -----
-    LSQR uses an iterative method to approximate the solution.  The
-    number of iterations required to reach a certain accuracy depends
-    strongly on the scaling of the problem.  Poor scaling of the rows
-    or columns of A should therefore be avoided where possible.
-
-    For example, in problem 1 the solution is unaltered by
-    row-scaling.  If a row of A is very small or large compared to
-    the other rows of A, the corresponding row of ( A  b ) should be
-    scaled up or down.
-
-    In problems 1 and 2, the solution x is easily recovered
-    following column-scaling.  Unless better information is known,
-    the nonzero columns of A should be scaled so that they all have
-    the same Euclidean norm (e.g., 1.0).
-
-    In problem 3, there is no freedom to re-scale if damp is
-    nonzero.  However, the value of damp should be assigned only
-    after attention has been paid to the scaling of A.
-
-    The parameter damp is intended to help regularize
-    ill-conditioned systems, by preventing the true solution from
-    being very large.  Another aid to regularization is provided by
-    the parameter acond, which may be used to terminate iterations
-    before the computed solution becomes very large.
-
-    If some initial estimate ``x0`` is known and if ``damp == 0``,
-    one could proceed as follows:
-
-      1. Compute a residual vector ``r0 = b - A@x0``.
-      2. Use LSQR to solve the system  ``A@dx = r0``.
-      3. Add the correction dx to obtain a final solution ``x = x0 + dx``.
-
-    This requires that ``x0`` be available before and after the call
-    to LSQR.  To judge the benefits, suppose LSQR takes k1 iterations
-    to solve A@x = b and k2 iterations to solve A@dx = r0.
-    If x0 is "good", norm(r0) will be smaller than norm(b).
-    If the same stopping tolerances atol and btol are used for each
-    system, k1 and k2 will be similar, but the final solution x0 + dx
-    should be more accurate.  The only way to reduce the total work
-    is to use a larger stopping tolerance for the second system.
-    If some value btol is suitable for A@x = b, the larger value
-    btol*norm(b)/norm(r0)  should be suitable for A@dx = r0.
-
-    Preconditioning is another way to reduce the number of iterations.
-    If it is possible to solve a related system ``M@x = b``
-    efficiently, where M approximates A in some helpful way (e.g. M -
-    A has low rank or its elements are small relative to those of A),
-    LSQR may converge more rapidly on the system ``A@M(inverse)@z =
-    b``, after which x can be recovered by solving M@x = z.
-
-    If A is symmetric, LSQR should not be used!
-
-    Alternatives are the symmetric conjugate-gradient method (cg)
-    and/or SYMMLQ.  SYMMLQ is an implementation of symmetric cg that
-    applies to any symmetric A and will converge more rapidly than
-    LSQR.  If A is positive definite, there are other implementations
-    of symmetric cg that require slightly less work per iteration than
-    SYMMLQ (but will take the same number of iterations).
-
-    References
-    ----------
-    .. [1] C. C. Paige and M. A. Saunders (1982a).
-           "LSQR: An algorithm for sparse linear equations and
-           sparse least squares", ACM TOMS 8(1), 43-71.
-    .. [2] C. C. Paige and M. A. Saunders (1982b).
-           "Algorithm 583.  LSQR: Sparse linear equations and least
-           squares problems", ACM TOMS 8(2), 195-209.
-    .. [3] M. A. Saunders (1995).  "Solution of sparse rectangular
-           systems using LSQR and CRAIG", BIT 35, 588-604.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import lsqr
-    >>> A = csc_matrix([[1., 0.], [1., 1.], [0., 1.]], dtype=float)
-
-    The first example has the trivial solution ``[0, 0]``
-
-    >>> b = np.array([0., 0., 0.], dtype=float)
-    >>> x, istop, itn, normr = lsqr(A, b)[:4]
-    >>> istop
-    0
-    >>> x
-    array([ 0.,  0.])
-
-    The stopping code `istop=0` returned indicates that a vector of zeros was
-    found as a solution. The returned solution `x` indeed contains
-    ``[0., 0.]``. The next example has a non-trivial solution:
-
-    >>> b = np.array([1., 0., -1.], dtype=float)
-    >>> x, istop, itn, r1norm = lsqr(A, b)[:4]
-    >>> istop
-    1
-    >>> x
-    array([ 1., -1.])
-    >>> itn
-    1
-    >>> r1norm
-    4.440892098500627e-16
-
-    As indicated by `istop=1`, `lsqr` found a solution obeying the tolerance
-    limits. The given solution ``[1., -1.]`` obviously solves the equation. The
-    remaining return values include information about the number of iterations
-    (`itn=1`) and the remaining difference of left and right side of the solved
-    equation.
-    The final example demonstrates the behavior in the case where there is no
-    solution for the equation:
-
-    >>> b = np.array([1., 0.01, -1.], dtype=float)
-    >>> x, istop, itn, r1norm = lsqr(A, b)[:4]
-    >>> istop
-    2
-    >>> x
-    array([ 1.00333333, -0.99666667])
-    >>> A.dot(x)-b
-    array([ 0.00333333, -0.00333333,  0.00333333])
-    >>> r1norm
-    0.005773502691896255
-
-    `istop` indicates that the system is inconsistent and thus `x` is rather an
-    approximate solution to the corresponding least-squares problem. `r1norm`
-    contains the norm of the minimal residual that was found.
-    """
-    A = aslinearoperator(A)
-    b = np.atleast_1d(b)
-    if b.ndim > 1:
-        b = b.squeeze()
-
-    m, n = A.shape
-    if iter_lim is None:
-        iter_lim = 2 * n
-    var = np.zeros(n)
-
-    msg = ('The exact solution is  x = 0                              ',
-           'Ax - b is small enough, given atol, btol                  ',
-           'The least-squares solution is good enough, given atol     ',
-           'The estimate of cond(Abar) has exceeded conlim            ',
-           'Ax - b is small enough for this machine                   ',
-           'The least-squares solution is good enough for this machine',
-           'Cond(Abar) seems to be too large for this machine         ',
-           'The iteration limit has been reached                      ')
-
-    if show:
-        print(' ')
-        print('LSQR            Least-squares solution of  Ax = b')
-        str1 = f'The matrix A has {m} rows and {n} columns'
-        str2 = f'damp = {damp:20.14e}   calc_var = {calc_var:8g}'
-        str3 = f'atol = {atol:8.2e}                 conlim = {conlim:8.2e}'
-        str4 = f'btol = {btol:8.2e}               iter_lim = {iter_lim:8g}'
-        print(str1)
-        print(str2)
-        print(str3)
-        print(str4)
-
-    itn = 0
-    istop = 0
-    ctol = 0
-    if conlim > 0:
-        ctol = 1/conlim
-    anorm = 0
-    acond = 0
-    dampsq = damp**2
-    ddnorm = 0
-    res2 = 0
-    xnorm = 0
-    xxnorm = 0
-    z = 0
-    cs2 = -1
-    sn2 = 0
-
-    # Set up the first vectors u and v for the bidiagonalization.
-    # These satisfy  beta*u = b - A@x,  alfa*v = A'@u.
-    u = b
-    bnorm = np.linalg.norm(b)
-
-    if x0 is None:
-        x = np.zeros(n)
-        beta = bnorm.copy()
-    else:
-        x = np.asarray(x0)
-        u = u - A.matvec(x)
-        beta = np.linalg.norm(u)
-
-    if beta > 0:
-        u = (1/beta) * u
-        v = A.rmatvec(u)
-        alfa = np.linalg.norm(v)
-    else:
-        v = x.copy()
-        alfa = 0
-
-    if alfa > 0:
-        v = (1/alfa) * v
-    w = v.copy()
-
-    rhobar = alfa
-    phibar = beta
-    rnorm = beta
-    r1norm = rnorm
-    r2norm = rnorm
-
-    # Reverse the order here from the original matlab code because
-    # there was an error on return when arnorm==0
-    arnorm = alfa * beta
-    if arnorm == 0:
-        if show:
-            print(msg[0])
-        return x, istop, itn, r1norm, r2norm, anorm, acond, arnorm, xnorm, var
-
-    head1 = '   Itn      x[0]       r1norm     r2norm '
-    head2 = ' Compatible    LS      Norm A   Cond A'
-
-    if show:
-        print(' ')
-        print(head1, head2)
-        test1 = 1
-        test2 = alfa / beta
-        str1 = f'{itn:6g} {x[0]:12.5e}'
-        str2 = f' {r1norm:10.3e} {r2norm:10.3e}'
-        str3 = f'  {test1:8.1e} {test2:8.1e}'
-        print(str1, str2, str3)
-
-    # Main iteration loop.
-    while itn < iter_lim:
-        itn = itn + 1
-        # Perform the next step of the bidiagonalization to obtain the
-        # next  beta, u, alfa, v. These satisfy the relations
-        #     beta*u  =  a@v   -  alfa*u,
-        #     alfa*v  =  A'@u  -  beta*v.
-        u = A.matvec(v) - alfa * u
-        beta = np.linalg.norm(u)
-
-        if beta > 0:
-            u = (1/beta) * u
-            anorm = sqrt(anorm**2 + alfa**2 + beta**2 + dampsq)
-            v = A.rmatvec(u) - beta * v
-            alfa = np.linalg.norm(v)
-            if alfa > 0:
-                v = (1 / alfa) * v
-
-        # Use a plane rotation to eliminate the damping parameter.
-        # This alters the diagonal (rhobar) of the lower-bidiagonal matrix.
-        if damp > 0:
-            rhobar1 = sqrt(rhobar**2 + dampsq)
-            cs1 = rhobar / rhobar1
-            sn1 = damp / rhobar1
-            psi = sn1 * phibar
-            phibar = cs1 * phibar
-        else:
-            # cs1 = 1 and sn1 = 0
-            rhobar1 = rhobar
-            psi = 0.
-
-        # Use a plane rotation to eliminate the subdiagonal element (beta)
-        # of the lower-bidiagonal matrix, giving an upper-bidiagonal matrix.
-        cs, sn, rho = _sym_ortho(rhobar1, beta)
-
-        theta = sn * alfa
-        rhobar = -cs * alfa
-        phi = cs * phibar
-        phibar = sn * phibar
-        tau = sn * phi
-
-        # Update x and w.
-        t1 = phi / rho
-        t2 = -theta / rho
-        dk = (1 / rho) * w
-
-        x = x + t1 * w
-        w = v + t2 * w
-        ddnorm = ddnorm + np.linalg.norm(dk)**2
-
-        if calc_var:
-            var = var + dk**2
-
-        # Use a plane rotation on the right to eliminate the
-        # super-diagonal element (theta) of the upper-bidiagonal matrix.
-        # Then use the result to estimate norm(x).
-        delta = sn2 * rho
-        gambar = -cs2 * rho
-        rhs = phi - delta * z
-        zbar = rhs / gambar
-        xnorm = sqrt(xxnorm + zbar**2)
-        gamma = sqrt(gambar**2 + theta**2)
-        cs2 = gambar / gamma
-        sn2 = theta / gamma
-        z = rhs / gamma
-        xxnorm = xxnorm + z**2
-
-        # Test for convergence.
-        # First, estimate the condition of the matrix  Abar,
-        # and the norms of  rbar  and  Abar'rbar.
-        acond = anorm * sqrt(ddnorm)
-        res1 = phibar**2
-        res2 = res2 + psi**2
-        rnorm = sqrt(res1 + res2)
-        arnorm = alfa * abs(tau)
-
-        # Distinguish between
-        #    r1norm = ||b - Ax|| and
-        #    r2norm = rnorm in current code
-        #           = sqrt(r1norm^2 + damp^2*||x - x0||^2).
-        #    Estimate r1norm from
-        #    r1norm = sqrt(r2norm^2 - damp^2*||x - x0||^2).
-        # Although there is cancellation, it might be accurate enough.
-        if damp > 0:
-            r1sq = rnorm**2 - dampsq * xxnorm
-            r1norm = sqrt(abs(r1sq))
-            if r1sq < 0:
-                r1norm = -r1norm
-        else:
-            r1norm = rnorm
-        r2norm = rnorm
-
-        # Now use these norms to estimate certain other quantities,
-        # some of which will be small near a solution.
-        test1 = rnorm / bnorm
-        test2 = arnorm / (anorm * rnorm + eps)
-        test3 = 1 / (acond + eps)
-        t1 = test1 / (1 + anorm * xnorm / bnorm)
-        rtol = btol + atol * anorm * xnorm / bnorm
-
-        # The following tests guard against extremely small values of
-        # atol, btol  or  ctol.  (The user may have set any or all of
-        # the parameters  atol, btol, conlim  to 0.)
-        # The effect is equivalent to the normal tests using
-        # atol = eps,  btol = eps,  conlim = 1/eps.
-        if itn >= iter_lim:
-            istop = 7
-        if 1 + test3 <= 1:
-            istop = 6
-        if 1 + test2 <= 1:
-            istop = 5
-        if 1 + t1 <= 1:
-            istop = 4
-
-        # Allow for tolerances set by the user.
-        if test3 <= ctol:
-            istop = 3
-        if test2 <= atol:
-            istop = 2
-        if test1 <= rtol:
-            istop = 1
-
-        if show:
-            # See if it is time to print something.
-            prnt = False
-            if n <= 40:
-                prnt = True
-            if itn <= 10:
-                prnt = True
-            if itn >= iter_lim-10:
-                prnt = True
-            # if itn%10 == 0: prnt = True
-            if test3 <= 2*ctol:
-                prnt = True
-            if test2 <= 10*atol:
-                prnt = True
-            if test1 <= 10*rtol:
-                prnt = True
-            if istop != 0:
-                prnt = True
-
-            if prnt:
-                str1 = f'{itn:6g} {x[0]:12.5e}'
-                str2 = f' {r1norm:10.3e} {r2norm:10.3e}'
-                str3 = f'  {test1:8.1e} {test2:8.1e}'
-                str4 = f' {anorm:8.1e} {acond:8.1e}'
-                print(str1, str2, str3, str4)
-
-        if istop != 0:
-            break
-
-    # End of iteration loop.
-    # Print the stopping condition.
-    if show:
-        print(' ')
-        print('LSQR finished')
-        print(msg[istop])
-        print(' ')
-        str1 = f'istop ={istop:8g}   r1norm ={r1norm:8.1e}'
-        str2 = f'anorm ={anorm:8.1e}   arnorm ={arnorm:8.1e}'
-        str3 = f'itn   ={itn:8g}   r2norm ={r2norm:8.1e}'
-        str4 = f'acond ={acond:8.1e}   xnorm  ={xnorm:8.1e}'
-        print(str1 + '   ' + str2)
-        print(str3 + '   ' + str4)
-        print(' ')
-
-    return x, istop, itn, r1norm, r2norm, anorm, acond, arnorm, xnorm, var
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/minres.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/minres.py
deleted file mode 100644
index 4efb992ba921d79b4e3753d92f2ed82d149bc220..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/minres.py
+++ /dev/null
@@ -1,372 +0,0 @@
-from numpy import inner, zeros, inf, finfo
-from numpy.linalg import norm
-from math import sqrt
-
-from .utils import make_system
-
-__all__ = ['minres']
-
-
-def minres(A, b, x0=None, *, rtol=1e-5, shift=0.0, maxiter=None,
-           M=None, callback=None, show=False, check=False):
-    """
-    Use MINimum RESidual iteration to solve Ax=b
-
-    MINRES minimizes norm(Ax - b) for a real symmetric matrix A.  Unlike
-    the Conjugate Gradient method, A can be indefinite or singular.
-
-    If shift != 0 then the method solves (A - shift*I)x = b
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        The real symmetric N-by-N matrix of the linear system
-        Alternatively, ``A`` can be a linear operator which can
-        produce ``Ax`` using, e.g.,
-        ``scipy.sparse.linalg.LinearOperator``.
-    b : ndarray
-        Right hand side of the linear system. Has shape (N,) or (N,1).
-
-    Returns
-    -------
-    x : ndarray
-        The converged solution.
-    info : integer
-        Provides convergence information:
-            0  : successful exit
-            >0 : convergence to tolerance not achieved, number of iterations
-            <0 : illegal input or breakdown
-
-    Other Parameters
-    ----------------
-    x0 : ndarray
-        Starting guess for the solution.
-    shift : float
-        Value to apply to the system ``(A - shift * I)x = b``. Default is 0.
-    rtol : float
-        Tolerance to achieve. The algorithm terminates when the relative
-        residual is below ``rtol``.
-    maxiter : integer
-        Maximum number of iterations.  Iteration will stop after maxiter
-        steps even if the specified tolerance has not been achieved.
-    M : {sparse matrix, ndarray, LinearOperator}
-        Preconditioner for A.  The preconditioner should approximate the
-        inverse of A.  Effective preconditioning dramatically improves the
-        rate of convergence, which implies that fewer iterations are needed
-        to reach a given error tolerance.
-    callback : function
-        User-supplied function to call after each iteration.  It is called
-        as callback(xk), where xk is the current solution vector.
-    show : bool
-        If ``True``, print out a summary and metrics related to the solution
-        during iterations. Default is ``False``.
-    check : bool
-        If ``True``, run additional input validation to check that `A` and
-        `M` (if specified) are symmetric. Default is ``False``.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import minres
-    >>> A = csc_matrix([[3, 2, 0], [1, -1, 0], [0, 5, 1]], dtype=float)
-    >>> A = A + A.T
-    >>> b = np.array([2, 4, -1], dtype=float)
-    >>> x, exitCode = minres(A, b)
-    >>> print(exitCode)            # 0 indicates successful convergence
-    0
-    >>> np.allclose(A.dot(x), b)
-    True
-
-    References
-    ----------
-    Solution of sparse indefinite systems of linear equations,
-        C. C. Paige and M. A. Saunders (1975),
-        SIAM J. Numer. Anal. 12(4), pp. 617-629.
-        https://web.stanford.edu/group/SOL/software/minres/
-
-    This file is a translation of the following MATLAB implementation:
-        https://web.stanford.edu/group/SOL/software/minres/minres-matlab.zip
-
-    """
-    A, M, x, b, postprocess = make_system(A, M, x0, b)
-
-    matvec = A.matvec
-    psolve = M.matvec
-
-    first = 'Enter minres.   '
-    last = 'Exit  minres.   '
-
-    n = A.shape[0]
-
-    if maxiter is None:
-        maxiter = 5 * n
-
-    msg = [' beta2 = 0.  If M = I, b and x are eigenvectors    ',   # -1
-            ' beta1 = 0.  The exact solution is x0          ',   # 0
-            ' A solution to Ax = b was found, given rtol        ',   # 1
-            ' A least-squares solution was found, given rtol    ',   # 2
-            ' Reasonable accuracy achieved, given eps           ',   # 3
-            ' x has converged to an eigenvector                 ',   # 4
-            ' acond has exceeded 0.1/eps                        ',   # 5
-            ' The iteration limit was reached                   ',   # 6
-            ' A  does not define a symmetric matrix             ',   # 7
-            ' M  does not define a symmetric matrix             ',   # 8
-            ' M  does not define a pos-def preconditioner       ']   # 9
-
-    if show:
-        print(first + 'Solution of symmetric Ax = b')
-        print(first + f'n      =  {n:3g}     shift  =  {shift:23.14e}')
-        print(first + f'itnlim =  {maxiter:3g}     rtol   =  {rtol:11.2e}')
-        print()
-
-    istop = 0
-    itn = 0
-    Anorm = 0
-    Acond = 0
-    rnorm = 0
-    ynorm = 0
-
-    xtype = x.dtype
-
-    eps = finfo(xtype).eps
-
-    # Set up y and v for the first Lanczos vector v1.
-    # y  =  beta1 P' v1,  where  P = C**(-1).
-    # v is really P' v1.
-
-    if x0 is None:
-        r1 = b.copy()
-    else:
-        r1 = b - A@x
-    y = psolve(r1)
-
-    beta1 = inner(r1, y)
-
-    if beta1 < 0:
-        raise ValueError('indefinite preconditioner')
-    elif beta1 == 0:
-        return (postprocess(x), 0)
-
-    bnorm = norm(b)
-    if bnorm == 0:
-        x = b
-        return (postprocess(x), 0)
-
-    beta1 = sqrt(beta1)
-
-    if check:
-        # are these too strict?
-
-        # see if A is symmetric
-        w = matvec(y)
-        r2 = matvec(w)
-        s = inner(w,w)
-        t = inner(y,r2)
-        z = abs(s - t)
-        epsa = (s + eps) * eps**(1.0/3.0)
-        if z > epsa:
-            raise ValueError('non-symmetric matrix')
-
-        # see if M is symmetric
-        r2 = psolve(y)
-        s = inner(y,y)
-        t = inner(r1,r2)
-        z = abs(s - t)
-        epsa = (s + eps) * eps**(1.0/3.0)
-        if z > epsa:
-            raise ValueError('non-symmetric preconditioner')
-
-    # Initialize other quantities
-    oldb = 0
-    beta = beta1
-    dbar = 0
-    epsln = 0
-    qrnorm = beta1
-    phibar = beta1
-    rhs1 = beta1
-    rhs2 = 0
-    tnorm2 = 0
-    gmax = 0
-    gmin = finfo(xtype).max
-    cs = -1
-    sn = 0
-    w = zeros(n, dtype=xtype)
-    w2 = zeros(n, dtype=xtype)
-    r2 = r1
-
-    if show:
-        print()
-        print()
-        print('   Itn     x(1)     Compatible    LS       norm(A)  cond(A) gbar/|A|')
-
-    while itn < maxiter:
-        itn += 1
-
-        s = 1.0/beta
-        v = s*y
-
-        y = matvec(v)
-        y = y - shift * v
-
-        if itn >= 2:
-            y = y - (beta/oldb)*r1
-
-        alfa = inner(v,y)
-        y = y - (alfa/beta)*r2
-        r1 = r2
-        r2 = y
-        y = psolve(r2)
-        oldb = beta
-        beta = inner(r2,y)
-        if beta < 0:
-            raise ValueError('non-symmetric matrix')
-        beta = sqrt(beta)
-        tnorm2 += alfa**2 + oldb**2 + beta**2
-
-        if itn == 1:
-            if beta/beta1 <= 10*eps:
-                istop = -1  # Terminate later
-
-        # Apply previous rotation Qk-1 to get
-        #   [deltak epslnk+1] = [cs  sn][dbark    0   ]
-        #   [gbar k dbar k+1]   [sn -cs][alfak betak+1].
-
-        oldeps = epsln
-        delta = cs * dbar + sn * alfa   # delta1 = 0         deltak
-        gbar = sn * dbar - cs * alfa   # gbar 1 = alfa1     gbar k
-        epsln = sn * beta     # epsln2 = 0         epslnk+1
-        dbar = - cs * beta   # dbar 2 = beta2     dbar k+1
-        root = norm([gbar, dbar])
-        Arnorm = phibar * root
-
-        # Compute the next plane rotation Qk
-
-        gamma = norm([gbar, beta])       # gammak
-        gamma = max(gamma, eps)
-        cs = gbar / gamma             # ck
-        sn = beta / gamma             # sk
-        phi = cs * phibar              # phik
-        phibar = sn * phibar              # phibark+1
-
-        # Update  x.
-
-        denom = 1.0/gamma
-        w1 = w2
-        w2 = w
-        w = (v - oldeps*w1 - delta*w2) * denom
-        x = x + phi*w
-
-        # Go round again.
-
-        gmax = max(gmax, gamma)
-        gmin = min(gmin, gamma)
-        z = rhs1 / gamma
-        rhs1 = rhs2 - delta*z
-        rhs2 = - epsln*z
-
-        # Estimate various norms and test for convergence.
-
-        Anorm = sqrt(tnorm2)
-        ynorm = norm(x)
-        epsa = Anorm * eps
-        epsx = Anorm * ynorm * eps
-        epsr = Anorm * ynorm * rtol
-        diag = gbar
-
-        if diag == 0:
-            diag = epsa
-
-        qrnorm = phibar
-        rnorm = qrnorm
-        if ynorm == 0 or Anorm == 0:
-            test1 = inf
-        else:
-            test1 = rnorm / (Anorm*ynorm)    # ||r||  / (||A|| ||x||)
-        if Anorm == 0:
-            test2 = inf
-        else:
-            test2 = root / Anorm            # ||Ar|| / (||A|| ||r||)
-
-        # Estimate  cond(A).
-        # In this version we look at the diagonals of  R  in the
-        # factorization of the lower Hessenberg matrix,  Q @ H = R,
-        # where H is the tridiagonal matrix from Lanczos with one
-        # extra row, beta(k+1) e_k^T.
-
-        Acond = gmax/gmin
-
-        # See if any of the stopping criteria are satisfied.
-        # In rare cases, istop is already -1 from above (Abar = const*I).
-
-        if istop == 0:
-            t1 = 1 + test1      # These tests work if rtol < eps
-            t2 = 1 + test2
-            if t2 <= 1:
-                istop = 2
-            if t1 <= 1:
-                istop = 1
-
-            if itn >= maxiter:
-                istop = 6
-            if Acond >= 0.1/eps:
-                istop = 4
-            if epsx >= beta1:
-                istop = 3
-            # if rnorm <= epsx   : istop = 2
-            # if rnorm <= epsr   : istop = 1
-            if test2 <= rtol:
-                istop = 2
-            if test1 <= rtol:
-                istop = 1
-
-        # See if it is time to print something.
-
-        prnt = False
-        if n <= 40:
-            prnt = True
-        if itn <= 10:
-            prnt = True
-        if itn >= maxiter-10:
-            prnt = True
-        if itn % 10 == 0:
-            prnt = True
-        if qrnorm <= 10*epsx:
-            prnt = True
-        if qrnorm <= 10*epsr:
-            prnt = True
-        if Acond <= 1e-2/eps:
-            prnt = True
-        if istop != 0:
-            prnt = True
-
-        if show and prnt:
-            str1 = f'{itn:6g} {x[0]:12.5e} {test1:10.3e}'
-            str2 = f' {test2:10.3e}'
-            str3 = f' {Anorm:8.1e} {Acond:8.1e} {gbar/Anorm:8.1e}'
-
-            print(str1 + str2 + str3)
-
-            if itn % 10 == 0:
-                print()
-
-        if callback is not None:
-            callback(x)
-
-        if istop != 0:
-            break  # TODO check this
-
-    if show:
-        print()
-        print(last + f' istop   =  {istop:3g}               itn   ={itn:5g}')
-        print(last + f' Anorm   =  {Anorm:12.4e}      Acond =  {Acond:12.4e}')
-        print(last + f' rnorm   =  {rnorm:12.4e}      ynorm =  {ynorm:12.4e}')
-        print(last + f' Arnorm  =  {Arnorm:12.4e}')
-        print(last + msg[istop+1])
-
-    if istop == 6:
-        info = maxiter
-    else:
-        info = 0
-
-    return (postprocess(x),info)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/tests/test_lsqr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/tests/test_lsqr.py
deleted file mode 100644
index c46290ac3d7af3b7571659d6219157dcd25e29c3..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/tests/test_lsqr.py
+++ /dev/null
@@ -1,120 +0,0 @@
-import numpy as np
-from numpy.testing import assert_allclose, assert_array_equal, assert_equal
-import pytest
-import scipy.sparse
-import scipy.sparse.linalg
-from scipy.sparse.linalg import lsqr
-
-# Set up a test problem
-n = 35
-G = np.eye(n)
-normal = np.random.normal
-norm = np.linalg.norm
-
-for jj in range(5):
-    gg = normal(size=n)
-    hh = gg * gg.T
-    G += (hh + hh.T) * 0.5
-    G += normal(size=n) * normal(size=n)
-
-b = normal(size=n)
-
-# tolerance for atol/btol keywords of lsqr()
-tol = 2e-10
-# tolerances for testing the results of the lsqr() call with assert_allclose
-# These tolerances are a bit fragile - see discussion in gh-15301.
-atol_test = 4e-10
-rtol_test = 2e-8
-show = False
-maxit = None
-
-
-def test_lsqr_basic():
-    b_copy = b.copy()
-    xo, *_ = lsqr(G, b, show=show, atol=tol, btol=tol, iter_lim=maxit)
-    assert_array_equal(b_copy, b)
-
-    svx = np.linalg.solve(G, b)
-    assert_allclose(xo, svx, atol=atol_test, rtol=rtol_test)
-
-    # Now the same but with damp > 0.
-    # This is equivalent to solving the extended system:
-    # ( G      ) @ x = ( b )
-    # ( damp*I )       ( 0 )
-    damp = 1.5
-    xo, *_ = lsqr(
-        G, b, damp=damp, show=show, atol=tol, btol=tol, iter_lim=maxit)
-
-    Gext = np.r_[G, damp * np.eye(G.shape[1])]
-    bext = np.r_[b, np.zeros(G.shape[1])]
-    svx, *_ = np.linalg.lstsq(Gext, bext, rcond=None)
-    assert_allclose(xo, svx, atol=atol_test, rtol=rtol_test)
-
-
-def test_gh_2466():
-    row = np.array([0, 0])
-    col = np.array([0, 1])
-    val = np.array([1, -1])
-    A = scipy.sparse.coo_matrix((val, (row, col)), shape=(1, 2))
-    b = np.asarray([4])
-    lsqr(A, b)
-
-
-def test_well_conditioned_problems():
-    # Test that sparse the lsqr solver returns the right solution
-    # on various problems with different random seeds.
-    # This is a non-regression test for a potential ZeroDivisionError
-    # raised when computing the `test2` & `test3` convergence conditions.
-    n = 10
-    A_sparse = scipy.sparse.eye(n, n)
-    A_dense = A_sparse.toarray()
-
-    with np.errstate(invalid='raise'):
-        for seed in range(30):
-            rng = np.random.RandomState(seed + 10)
-            beta = rng.rand(n)
-            beta[beta == 0] = 0.00001  # ensure that all the betas are not null
-            b = A_sparse @ beta[:, np.newaxis]
-            output = lsqr(A_sparse, b, show=show)
-
-            # Check that the termination condition corresponds to an approximate
-            # solution to Ax = b
-            assert_equal(output[1], 1)
-            solution = output[0]
-
-            # Check that we recover the ground truth solution
-            assert_allclose(solution, beta)
-
-            # Sanity check: compare to the dense array solver
-            reference_solution = np.linalg.solve(A_dense, b).ravel()
-            assert_allclose(solution, reference_solution)
-
-
-def test_b_shapes():
-    # Test b being a scalar.
-    A = np.array([[1.0, 2.0]])
-    b = 3.0
-    x = lsqr(A, b)[0]
-    assert norm(A.dot(x) - b) == pytest.approx(0)
-
-    # Test b being a column vector.
-    A = np.eye(10)
-    b = np.ones((10, 1))
-    x = lsqr(A, b)[0]
-    assert norm(A.dot(x) - b.ravel()) == pytest.approx(0)
-
-
-def test_initialization():
-    # Test the default setting is the same as zeros
-    b_copy = b.copy()
-    x_ref = lsqr(G, b, show=show, atol=tol, btol=tol, iter_lim=maxit)
-    x0 = np.zeros(x_ref[0].shape)
-    x = lsqr(G, b, show=show, atol=tol, btol=tol, iter_lim=maxit, x0=x0)
-    assert_array_equal(b_copy, b)
-    assert_allclose(x_ref[0], x[0])
-
-    # Test warm-start with single iteration
-    x0 = lsqr(G, b, show=show, atol=tol, btol=tol, iter_lim=1)[0]
-    x = lsqr(G, b, show=show, atol=tol, btol=tol, iter_lim=maxit, x0=x0)
-    assert_allclose(x_ref[0], x[0])
-    assert_array_equal(b_copy, b)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/tfqmr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/tfqmr.py
deleted file mode 100644
index 2966dc7bcc8196c07c1d6363e2eabfebcce06856..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/tfqmr.py
+++ /dev/null
@@ -1,179 +0,0 @@
-import numpy as np
-from .iterative import _get_atol_rtol
-from .utils import make_system
-
-
-__all__ = ['tfqmr']
-
-
-def tfqmr(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None,
-          callback=None, show=False):
-    """
-    Use Transpose-Free Quasi-Minimal Residual iteration to solve ``Ax = b``.
-
-    Parameters
-    ----------
-    A : {sparse matrix, ndarray, LinearOperator}
-        The real or complex N-by-N matrix of the linear system.
-        Alternatively, `A` can be a linear operator which can
-        produce ``Ax`` using, e.g.,
-        `scipy.sparse.linalg.LinearOperator`.
-    b : {ndarray}
-        Right hand side of the linear system. Has shape (N,) or (N,1).
-    x0 : {ndarray}
-        Starting guess for the solution.
-    rtol, atol : float, optional
-        Parameters for the convergence test. For convergence,
-        ``norm(b - A @ x) <= max(rtol*norm(b), atol)`` should be satisfied.
-        The default is ``rtol=1e-5``, the default for ``atol`` is ``0.0``.
-    maxiter : int, optional
-        Maximum number of iterations.  Iteration will stop after maxiter
-        steps even if the specified tolerance has not been achieved.
-        Default is ``min(10000, ndofs * 10)``, where ``ndofs = A.shape[0]``.
-    M : {sparse matrix, ndarray, LinearOperator}
-        Inverse of the preconditioner of A.  M should approximate the
-        inverse of A and be easy to solve for (see Notes).  Effective
-        preconditioning dramatically improves the rate of convergence,
-        which implies that fewer iterations are needed to reach a given
-        error tolerance.  By default, no preconditioner is used.
-    callback : function, optional
-        User-supplied function to call after each iteration.  It is called
-        as `callback(xk)`, where `xk` is the current solution vector.
-    show : bool, optional
-        Specify ``show = True`` to show the convergence, ``show = False`` is
-        to close the output of the convergence.
-        Default is `False`.
-
-    Returns
-    -------
-    x : ndarray
-        The converged solution.
-    info : int
-        Provides convergence information:
-
-            - 0  : successful exit
-            - >0 : convergence to tolerance not achieved, number of iterations
-            - <0 : illegal input or breakdown
-
-    Notes
-    -----
-    The Transpose-Free QMR algorithm is derived from the CGS algorithm.
-    However, unlike CGS, the convergence curves for the TFQMR method is
-    smoothed by computing a quasi minimization of the residual norm. The
-    implementation supports left preconditioner, and the "residual norm"
-    to compute in convergence criterion is actually an upper bound on the
-    actual residual norm ``||b - Axk||``.
-
-    References
-    ----------
-    .. [1] R. W. Freund, A Transpose-Free Quasi-Minimal Residual Algorithm for
-           Non-Hermitian Linear Systems, SIAM J. Sci. Comput., 14(2), 470-482,
-           1993.
-    .. [2] Y. Saad, Iterative Methods for Sparse Linear Systems, 2nd edition,
-           SIAM, Philadelphia, 2003.
-    .. [3] C. T. Kelley, Iterative Methods for Linear and Nonlinear Equations,
-           number 16 in Frontiers in Applied Mathematics, SIAM, Philadelphia,
-           1995.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import tfqmr
-    >>> A = csc_matrix([[3, 2, 0], [1, -1, 0], [0, 5, 1]], dtype=float)
-    >>> b = np.array([2, 4, -1], dtype=float)
-    >>> x, exitCode = tfqmr(A, b, atol=0.0)
-    >>> print(exitCode)            # 0 indicates successful convergence
-    0
-    >>> np.allclose(A.dot(x), b)
-    True
-    """
-
-    # Check data type
-    dtype = A.dtype
-    if np.issubdtype(dtype, np.int64):
-        dtype = float
-        A = A.astype(dtype)
-    if np.issubdtype(b.dtype, np.int64):
-        b = b.astype(dtype)
-
-    A, M, x, b, postprocess = make_system(A, M, x0, b)
-
-    # Check if the R.H.S is a zero vector
-    if np.linalg.norm(b) == 0.:
-        x = b.copy()
-        return (postprocess(x), 0)
-
-    ndofs = A.shape[0]
-    if maxiter is None:
-        maxiter = min(10000, ndofs * 10)
-
-    if x0 is None:
-        r = b.copy()
-    else:
-        r = b - A.matvec(x)
-    u = r
-    w = r.copy()
-    # Take rstar as b - Ax0, that is rstar := r = b - Ax0 mathematically
-    rstar = r
-    v = M.matvec(A.matvec(r))
-    uhat = v
-    d = theta = eta = 0.
-    # at this point we know rstar == r, so rho is always real
-    rho = np.inner(rstar.conjugate(), r).real
-    rhoLast = rho
-    r0norm = np.sqrt(rho)
-    tau = r0norm
-    if r0norm == 0:
-        return (postprocess(x), 0)
-
-    # we call this to get the right atol and raise errors as necessary
-    atol, _ = _get_atol_rtol('tfqmr', r0norm, atol, rtol)
-
-    for iter in range(maxiter):
-        even = iter % 2 == 0
-        if (even):
-            vtrstar = np.inner(rstar.conjugate(), v)
-            # Check breakdown
-            if vtrstar == 0.:
-                return (postprocess(x), -1)
-            alpha = rho / vtrstar
-            uNext = u - alpha * v  # [1]-(5.6)
-        w -= alpha * uhat  # [1]-(5.8)
-        d = u + (theta**2 / alpha) * eta * d  # [1]-(5.5)
-        # [1]-(5.2)
-        theta = np.linalg.norm(w) / tau
-        c = np.sqrt(1. / (1 + theta**2))
-        tau *= theta * c
-        # Calculate step and direction [1]-(5.4)
-        eta = (c**2) * alpha
-        z = M.matvec(d)
-        x += eta * z
-
-        if callback is not None:
-            callback(x)
-
-        # Convergence criterion
-        if tau * np.sqrt(iter+1) < atol:
-            if (show):
-                print("TFQMR: Linear solve converged due to reach TOL "
-                      f"iterations {iter+1}")
-            return (postprocess(x), 0)
-
-        if (not even):
-            # [1]-(5.7)
-            rho = np.inner(rstar.conjugate(), w)
-            beta = rho / rhoLast
-            u = w + beta * u
-            v = beta * uhat + (beta**2) * v
-            uhat = M.matvec(A.matvec(u))
-            v += uhat
-        else:
-            uhat = M.matvec(A.matvec(uNext))
-            u = uNext
-            rhoLast = rho
-
-    if (show):
-        print("TFQMR: Linear solve not converged due to reach MAXIT "
-              f"iterations {iter+1}")
-    return (postprocess(x), maxiter)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/utils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/utils.py
deleted file mode 100644
index 80f37fc1cf63fa0352fd93d62be758f87c065db5..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_isolve/utils.py
+++ /dev/null
@@ -1,127 +0,0 @@
-__docformat__ = "restructuredtext en"
-
-__all__ = []
-
-
-from numpy import asanyarray, asarray, array, zeros
-
-from scipy.sparse.linalg._interface import aslinearoperator, LinearOperator, \
-     IdentityOperator
-
-_coerce_rules = {('f','f'):'f', ('f','d'):'d', ('f','F'):'F',
-                 ('f','D'):'D', ('d','f'):'d', ('d','d'):'d',
-                 ('d','F'):'D', ('d','D'):'D', ('F','f'):'F',
-                 ('F','d'):'D', ('F','F'):'F', ('F','D'):'D',
-                 ('D','f'):'D', ('D','d'):'D', ('D','F'):'D',
-                 ('D','D'):'D'}
-
-
-def coerce(x,y):
-    if x not in 'fdFD':
-        x = 'd'
-    if y not in 'fdFD':
-        y = 'd'
-    return _coerce_rules[x,y]
-
-
-def id(x):
-    return x
-
-
-def make_system(A, M, x0, b):
-    """Make a linear system Ax=b
-
-    Parameters
-    ----------
-    A : LinearOperator
-        sparse or dense matrix (or any valid input to aslinearoperator)
-    M : {LinearOperator, Nones}
-        preconditioner
-        sparse or dense matrix (or any valid input to aslinearoperator)
-    x0 : {array_like, str, None}
-        initial guess to iterative method.
-        ``x0 = 'Mb'`` means using the nonzero initial guess ``M @ b``.
-        Default is `None`, which means using the zero initial guess.
-    b : array_like
-        right hand side
-
-    Returns
-    -------
-    (A, M, x, b, postprocess)
-        A : LinearOperator
-            matrix of the linear system
-        M : LinearOperator
-            preconditioner
-        x : rank 1 ndarray
-            initial guess
-        b : rank 1 ndarray
-            right hand side
-        postprocess : function
-            converts the solution vector to the appropriate
-            type and dimensions (e.g. (N,1) matrix)
-
-    """
-    A_ = A
-    A = aslinearoperator(A)
-
-    if A.shape[0] != A.shape[1]:
-        raise ValueError(f'expected square matrix, but got shape={(A.shape,)}')
-
-    N = A.shape[0]
-
-    b = asanyarray(b)
-
-    if not (b.shape == (N,1) or b.shape == (N,)):
-        raise ValueError(f'shapes of A {A.shape} and b {b.shape} are '
-                         'incompatible')
-
-    if b.dtype.char not in 'fdFD':
-        b = b.astype('d')  # upcast non-FP types to double
-
-    def postprocess(x):
-        return x
-
-    if hasattr(A,'dtype'):
-        xtype = A.dtype.char
-    else:
-        xtype = A.matvec(b).dtype.char
-    xtype = coerce(xtype, b.dtype.char)
-
-    b = asarray(b,dtype=xtype)  # make b the same type as x
-    b = b.ravel()
-
-    # process preconditioner
-    if M is None:
-        if hasattr(A_,'psolve'):
-            psolve = A_.psolve
-        else:
-            psolve = id
-        if hasattr(A_,'rpsolve'):
-            rpsolve = A_.rpsolve
-        else:
-            rpsolve = id
-        if psolve is id and rpsolve is id:
-            M = IdentityOperator(shape=A.shape, dtype=A.dtype)
-        else:
-            M = LinearOperator(A.shape, matvec=psolve, rmatvec=rpsolve,
-                               dtype=A.dtype)
-    else:
-        M = aslinearoperator(M)
-        if A.shape != M.shape:
-            raise ValueError('matrix and preconditioner have different shapes')
-
-    # set initial guess
-    if x0 is None:
-        x = zeros(N, dtype=xtype)
-    elif isinstance(x0, str):
-        if x0 == 'Mb':  # use nonzero initial guess ``M @ b``
-            bCopy = b.copy()
-            x = M.matvec(bCopy)
-    else:
-        x = array(x0, dtype=xtype)
-        if not (x.shape == (N, 1) or x.shape == (N,)):
-            raise ValueError(f'shapes of A {A.shape} and '
-                             f'x0 {x.shape} are incompatible')
-        x = x.ravel()
-
-    return A, M, x, b, postprocess
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_matfuncs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_matfuncs.py
deleted file mode 100644
index 1c531e25b4069a7d87c68bf2e73a15fcad45b7e6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_matfuncs.py
+++ /dev/null
@@ -1,940 +0,0 @@
-"""
-Sparse matrix functions
-"""
-
-#
-# Authors: Travis Oliphant, March 2002
-#          Anthony Scopatz, August 2012 (Sparse Updates)
-#          Jake Vanderplas, August 2012 (Sparse Updates)
-#
-
-__all__ = ['expm', 'inv', 'matrix_power']
-
-import numpy as np
-from scipy.linalg._basic import solve, solve_triangular
-
-from scipy.sparse._base import issparse
-from scipy.sparse.linalg import spsolve
-from scipy.sparse._sputils import is_pydata_spmatrix, isintlike
-
-import scipy.sparse
-import scipy.sparse.linalg
-from scipy.sparse.linalg._interface import LinearOperator
-from scipy.sparse._construct import eye
-
-from ._expm_multiply import _ident_like, _exact_1_norm as _onenorm
-
-
-UPPER_TRIANGULAR = 'upper_triangular'
-
-
-def inv(A):
-    """
-    Compute the inverse of a sparse matrix
-
-    Parameters
-    ----------
-    A : (M, M) sparse matrix
-        square matrix to be inverted
-
-    Returns
-    -------
-    Ainv : (M, M) sparse matrix
-        inverse of `A`
-
-    Notes
-    -----
-    This computes the sparse inverse of `A`. If the inverse of `A` is expected
-    to be non-sparse, it will likely be faster to convert `A` to dense and use
-    `scipy.linalg.inv`.
-
-    Examples
-    --------
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import inv
-    >>> A = csc_matrix([[1., 0.], [1., 2.]])
-    >>> Ainv = inv(A)
-    >>> Ainv
-    
-    >>> A.dot(Ainv)
-    
-    >>> A.dot(Ainv).toarray()
-    array([[ 1.,  0.],
-           [ 0.,  1.]])
-
-    .. versionadded:: 0.12.0
-
-    """
-    # Check input
-    if not (scipy.sparse.issparse(A) or is_pydata_spmatrix(A)):
-        raise TypeError('Input must be a sparse matrix')
-
-    # Use sparse direct solver to solve "AX = I" accurately
-    I = _ident_like(A)
-    Ainv = spsolve(A, I)
-    return Ainv
-
-
-def _onenorm_matrix_power_nnm(A, p):
-    """
-    Compute the 1-norm of a non-negative integer power of a non-negative matrix.
-
-    Parameters
-    ----------
-    A : a square ndarray or matrix or sparse matrix
-        Input matrix with non-negative entries.
-    p : non-negative integer
-        The power to which the matrix is to be raised.
-
-    Returns
-    -------
-    out : float
-        The 1-norm of the matrix power p of A.
-
-    """
-    # Check input
-    if int(p) != p or p < 0:
-        raise ValueError('expected non-negative integer p')
-    p = int(p)
-    if len(A.shape) != 2 or A.shape[0] != A.shape[1]:
-        raise ValueError('expected A to be like a square matrix')
-
-    # Explicitly make a column vector so that this works when A is a
-    # numpy matrix (in addition to ndarray and sparse matrix).
-    v = np.ones((A.shape[0], 1), dtype=float)
-    M = A.T
-    for i in range(p):
-        v = M.dot(v)
-    return np.max(v)
-
-
-def _is_upper_triangular(A):
-    # This function could possibly be of wider interest.
-    if issparse(A):
-        lower_part = scipy.sparse.tril(A, -1)
-        # Check structural upper triangularity,
-        # then coincidental upper triangularity if needed.
-        return lower_part.nnz == 0 or lower_part.count_nonzero() == 0
-    elif is_pydata_spmatrix(A):
-        import sparse
-        lower_part = sparse.tril(A, -1)
-        return lower_part.nnz == 0
-    else:
-        return not np.tril(A, -1).any()
-
-
-def _smart_matrix_product(A, B, alpha=None, structure=None):
-    """
-    A matrix product that knows about sparse and structured matrices.
-
-    Parameters
-    ----------
-    A : 2d ndarray
-        First matrix.
-    B : 2d ndarray
-        Second matrix.
-    alpha : float
-        The matrix product will be scaled by this constant.
-    structure : str, optional
-        A string describing the structure of both matrices `A` and `B`.
-        Only `upper_triangular` is currently supported.
-
-    Returns
-    -------
-    M : 2d ndarray
-        Matrix product of A and B.
-
-    """
-    if len(A.shape) != 2:
-        raise ValueError('expected A to be a rectangular matrix')
-    if len(B.shape) != 2:
-        raise ValueError('expected B to be a rectangular matrix')
-    f = None
-    if structure == UPPER_TRIANGULAR:
-        if (not issparse(A) and not issparse(B)
-                and not is_pydata_spmatrix(A) and not is_pydata_spmatrix(B)):
-            f, = scipy.linalg.get_blas_funcs(('trmm',), (A, B))
-    if f is not None:
-        if alpha is None:
-            alpha = 1.
-        out = f(alpha, A, B)
-    else:
-        if alpha is None:
-            out = A.dot(B)
-        else:
-            out = alpha * A.dot(B)
-    return out
-
-
-class MatrixPowerOperator(LinearOperator):
-
-    def __init__(self, A, p, structure=None):
-        if A.ndim != 2 or A.shape[0] != A.shape[1]:
-            raise ValueError('expected A to be like a square matrix')
-        if p < 0:
-            raise ValueError('expected p to be a non-negative integer')
-        self._A = A
-        self._p = p
-        self._structure = structure
-        self.dtype = A.dtype
-        self.ndim = A.ndim
-        self.shape = A.shape
-
-    def _matvec(self, x):
-        for i in range(self._p):
-            x = self._A.dot(x)
-        return x
-
-    def _rmatvec(self, x):
-        A_T = self._A.T
-        x = x.ravel()
-        for i in range(self._p):
-            x = A_T.dot(x)
-        return x
-
-    def _matmat(self, X):
-        for i in range(self._p):
-            X = _smart_matrix_product(self._A, X, structure=self._structure)
-        return X
-
-    @property
-    def T(self):
-        return MatrixPowerOperator(self._A.T, self._p)
-
-
-class ProductOperator(LinearOperator):
-    """
-    For now, this is limited to products of multiple square matrices.
-    """
-
-    def __init__(self, *args, **kwargs):
-        self._structure = kwargs.get('structure', None)
-        for A in args:
-            if len(A.shape) != 2 or A.shape[0] != A.shape[1]:
-                raise ValueError(
-                        'For now, the ProductOperator implementation is '
-                        'limited to the product of multiple square matrices.')
-        if args:
-            n = args[0].shape[0]
-            for A in args:
-                for d in A.shape:
-                    if d != n:
-                        raise ValueError(
-                                'The square matrices of the ProductOperator '
-                                'must all have the same shape.')
-            self.shape = (n, n)
-            self.ndim = len(self.shape)
-        self.dtype = np.result_type(*[x.dtype for x in args])
-        self._operator_sequence = args
-
-    def _matvec(self, x):
-        for A in reversed(self._operator_sequence):
-            x = A.dot(x)
-        return x
-
-    def _rmatvec(self, x):
-        x = x.ravel()
-        for A in self._operator_sequence:
-            x = A.T.dot(x)
-        return x
-
-    def _matmat(self, X):
-        for A in reversed(self._operator_sequence):
-            X = _smart_matrix_product(A, X, structure=self._structure)
-        return X
-
-    @property
-    def T(self):
-        T_args = [A.T for A in reversed(self._operator_sequence)]
-        return ProductOperator(*T_args)
-
-
-def _onenormest_matrix_power(A, p,
-        t=2, itmax=5, compute_v=False, compute_w=False, structure=None):
-    """
-    Efficiently estimate the 1-norm of A^p.
-
-    Parameters
-    ----------
-    A : ndarray
-        Matrix whose 1-norm of a power is to be computed.
-    p : int
-        Non-negative integer power.
-    t : int, optional
-        A positive parameter controlling the tradeoff between
-        accuracy versus time and memory usage.
-        Larger values take longer and use more memory
-        but give more accurate output.
-    itmax : int, optional
-        Use at most this many iterations.
-    compute_v : bool, optional
-        Request a norm-maximizing linear operator input vector if True.
-    compute_w : bool, optional
-        Request a norm-maximizing linear operator output vector if True.
-
-    Returns
-    -------
-    est : float
-        An underestimate of the 1-norm of the sparse matrix.
-    v : ndarray, optional
-        The vector such that ||Av||_1 == est*||v||_1.
-        It can be thought of as an input to the linear operator
-        that gives an output with particularly large norm.
-    w : ndarray, optional
-        The vector Av which has relatively large 1-norm.
-        It can be thought of as an output of the linear operator
-        that is relatively large in norm compared to the input.
-
-    """
-    return scipy.sparse.linalg.onenormest(
-            MatrixPowerOperator(A, p, structure=structure))
-
-
-def _onenormest_product(operator_seq,
-        t=2, itmax=5, compute_v=False, compute_w=False, structure=None):
-    """
-    Efficiently estimate the 1-norm of the matrix product of the args.
-
-    Parameters
-    ----------
-    operator_seq : linear operator sequence
-        Matrices whose 1-norm of product is to be computed.
-    t : int, optional
-        A positive parameter controlling the tradeoff between
-        accuracy versus time and memory usage.
-        Larger values take longer and use more memory
-        but give more accurate output.
-    itmax : int, optional
-        Use at most this many iterations.
-    compute_v : bool, optional
-        Request a norm-maximizing linear operator input vector if True.
-    compute_w : bool, optional
-        Request a norm-maximizing linear operator output vector if True.
-    structure : str, optional
-        A string describing the structure of all operators.
-        Only `upper_triangular` is currently supported.
-
-    Returns
-    -------
-    est : float
-        An underestimate of the 1-norm of the sparse matrix.
-    v : ndarray, optional
-        The vector such that ||Av||_1 == est*||v||_1.
-        It can be thought of as an input to the linear operator
-        that gives an output with particularly large norm.
-    w : ndarray, optional
-        The vector Av which has relatively large 1-norm.
-        It can be thought of as an output of the linear operator
-        that is relatively large in norm compared to the input.
-
-    """
-    return scipy.sparse.linalg.onenormest(
-            ProductOperator(*operator_seq, structure=structure))
-
-
-class _ExpmPadeHelper:
-    """
-    Help lazily evaluate a matrix exponential.
-
-    The idea is to not do more work than we need for high expm precision,
-    so we lazily compute matrix powers and store or precompute
-    other properties of the matrix.
-
-    """
-
-    def __init__(self, A, structure=None, use_exact_onenorm=False):
-        """
-        Initialize the object.
-
-        Parameters
-        ----------
-        A : a dense or sparse square numpy matrix or ndarray
-            The matrix to be exponentiated.
-        structure : str, optional
-            A string describing the structure of matrix `A`.
-            Only `upper_triangular` is currently supported.
-        use_exact_onenorm : bool, optional
-            If True then only the exact one-norm of matrix powers and products
-            will be used. Otherwise, the one-norm of powers and products
-            may initially be estimated.
-        """
-        self.A = A
-        self._A2 = None
-        self._A4 = None
-        self._A6 = None
-        self._A8 = None
-        self._A10 = None
-        self._d4_exact = None
-        self._d6_exact = None
-        self._d8_exact = None
-        self._d10_exact = None
-        self._d4_approx = None
-        self._d6_approx = None
-        self._d8_approx = None
-        self._d10_approx = None
-        self.ident = _ident_like(A)
-        self.structure = structure
-        self.use_exact_onenorm = use_exact_onenorm
-
-    @property
-    def A2(self):
-        if self._A2 is None:
-            self._A2 = _smart_matrix_product(
-                    self.A, self.A, structure=self.structure)
-        return self._A2
-
-    @property
-    def A4(self):
-        if self._A4 is None:
-            self._A4 = _smart_matrix_product(
-                    self.A2, self.A2, structure=self.structure)
-        return self._A4
-
-    @property
-    def A6(self):
-        if self._A6 is None:
-            self._A6 = _smart_matrix_product(
-                    self.A4, self.A2, structure=self.structure)
-        return self._A6
-
-    @property
-    def A8(self):
-        if self._A8 is None:
-            self._A8 = _smart_matrix_product(
-                    self.A6, self.A2, structure=self.structure)
-        return self._A8
-
-    @property
-    def A10(self):
-        if self._A10 is None:
-            self._A10 = _smart_matrix_product(
-                    self.A4, self.A6, structure=self.structure)
-        return self._A10
-
-    @property
-    def d4_tight(self):
-        if self._d4_exact is None:
-            self._d4_exact = _onenorm(self.A4)**(1/4.)
-        return self._d4_exact
-
-    @property
-    def d6_tight(self):
-        if self._d6_exact is None:
-            self._d6_exact = _onenorm(self.A6)**(1/6.)
-        return self._d6_exact
-
-    @property
-    def d8_tight(self):
-        if self._d8_exact is None:
-            self._d8_exact = _onenorm(self.A8)**(1/8.)
-        return self._d8_exact
-
-    @property
-    def d10_tight(self):
-        if self._d10_exact is None:
-            self._d10_exact = _onenorm(self.A10)**(1/10.)
-        return self._d10_exact
-
-    @property
-    def d4_loose(self):
-        if self.use_exact_onenorm:
-            return self.d4_tight
-        if self._d4_exact is not None:
-            return self._d4_exact
-        else:
-            if self._d4_approx is None:
-                self._d4_approx = _onenormest_matrix_power(self.A2, 2,
-                        structure=self.structure)**(1/4.)
-            return self._d4_approx
-
-    @property
-    def d6_loose(self):
-        if self.use_exact_onenorm:
-            return self.d6_tight
-        if self._d6_exact is not None:
-            return self._d6_exact
-        else:
-            if self._d6_approx is None:
-                self._d6_approx = _onenormest_matrix_power(self.A2, 3,
-                        structure=self.structure)**(1/6.)
-            return self._d6_approx
-
-    @property
-    def d8_loose(self):
-        if self.use_exact_onenorm:
-            return self.d8_tight
-        if self._d8_exact is not None:
-            return self._d8_exact
-        else:
-            if self._d8_approx is None:
-                self._d8_approx = _onenormest_matrix_power(self.A4, 2,
-                        structure=self.structure)**(1/8.)
-            return self._d8_approx
-
-    @property
-    def d10_loose(self):
-        if self.use_exact_onenorm:
-            return self.d10_tight
-        if self._d10_exact is not None:
-            return self._d10_exact
-        else:
-            if self._d10_approx is None:
-                self._d10_approx = _onenormest_product((self.A4, self.A6),
-                        structure=self.structure)**(1/10.)
-            return self._d10_approx
-
-    def pade3(self):
-        b = (120., 60., 12., 1.)
-        U = _smart_matrix_product(self.A,
-                b[3]*self.A2 + b[1]*self.ident,
-                structure=self.structure)
-        V = b[2]*self.A2 + b[0]*self.ident
-        return U, V
-
-    def pade5(self):
-        b = (30240., 15120., 3360., 420., 30., 1.)
-        U = _smart_matrix_product(self.A,
-                b[5]*self.A4 + b[3]*self.A2 + b[1]*self.ident,
-                structure=self.structure)
-        V = b[4]*self.A4 + b[2]*self.A2 + b[0]*self.ident
-        return U, V
-
-    def pade7(self):
-        b = (17297280., 8648640., 1995840., 277200., 25200., 1512., 56., 1.)
-        U = _smart_matrix_product(self.A,
-                b[7]*self.A6 + b[5]*self.A4 + b[3]*self.A2 + b[1]*self.ident,
-                structure=self.structure)
-        V = b[6]*self.A6 + b[4]*self.A4 + b[2]*self.A2 + b[0]*self.ident
-        return U, V
-
-    def pade9(self):
-        b = (17643225600., 8821612800., 2075673600., 302702400., 30270240.,
-                2162160., 110880., 3960., 90., 1.)
-        U = _smart_matrix_product(self.A,
-                (b[9]*self.A8 + b[7]*self.A6 + b[5]*self.A4 +
-                    b[3]*self.A2 + b[1]*self.ident),
-                structure=self.structure)
-        V = (b[8]*self.A8 + b[6]*self.A6 + b[4]*self.A4 +
-                b[2]*self.A2 + b[0]*self.ident)
-        return U, V
-
-    def pade13_scaled(self, s):
-        b = (64764752532480000., 32382376266240000., 7771770303897600.,
-                1187353796428800., 129060195264000., 10559470521600.,
-                670442572800., 33522128640., 1323241920., 40840800., 960960.,
-                16380., 182., 1.)
-        B = self.A * 2**-s
-        B2 = self.A2 * 2**(-2*s)
-        B4 = self.A4 * 2**(-4*s)
-        B6 = self.A6 * 2**(-6*s)
-        U2 = _smart_matrix_product(B6,
-                b[13]*B6 + b[11]*B4 + b[9]*B2,
-                structure=self.structure)
-        U = _smart_matrix_product(B,
-                (U2 + b[7]*B6 + b[5]*B4 +
-                    b[3]*B2 + b[1]*self.ident),
-                structure=self.structure)
-        V2 = _smart_matrix_product(B6,
-                b[12]*B6 + b[10]*B4 + b[8]*B2,
-                structure=self.structure)
-        V = V2 + b[6]*B6 + b[4]*B4 + b[2]*B2 + b[0]*self.ident
-        return U, V
-
-
-def expm(A):
-    """
-    Compute the matrix exponential using Pade approximation.
-
-    Parameters
-    ----------
-    A : (M,M) array_like or sparse matrix
-        2D Array or Matrix (sparse or dense) to be exponentiated
-
-    Returns
-    -------
-    expA : (M,M) ndarray
-        Matrix exponential of `A`
-
-    Notes
-    -----
-    This is algorithm (6.1) which is a simplification of algorithm (5.1).
-
-    .. versionadded:: 0.12.0
-
-    References
-    ----------
-    .. [1] Awad H. Al-Mohy and Nicholas J. Higham (2009)
-           "A New Scaling and Squaring Algorithm for the Matrix Exponential."
-           SIAM Journal on Matrix Analysis and Applications.
-           31 (3). pp. 970-989. ISSN 1095-7162
-
-    Examples
-    --------
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import expm
-    >>> A = csc_matrix([[1, 0, 0], [0, 2, 0], [0, 0, 3]])
-    >>> A.toarray()
-    array([[1, 0, 0],
-           [0, 2, 0],
-           [0, 0, 3]], dtype=int64)
-    >>> Aexp = expm(A)
-    >>> Aexp
-    
-    >>> Aexp.toarray()
-    array([[  2.71828183,   0.        ,   0.        ],
-           [  0.        ,   7.3890561 ,   0.        ],
-           [  0.        ,   0.        ,  20.08553692]])
-    """
-    return _expm(A, use_exact_onenorm='auto')
-
-
-def _expm(A, use_exact_onenorm):
-    # Core of expm, separated to allow testing exact and approximate
-    # algorithms.
-
-    # Avoid indiscriminate asarray() to allow sparse or other strange arrays.
-    if isinstance(A, (list, tuple, np.matrix)):
-        A = np.asarray(A)
-    if len(A.shape) != 2 or A.shape[0] != A.shape[1]:
-        raise ValueError('expected a square matrix')
-
-    # gracefully handle size-0 input,
-    # carefully handling sparse scenario
-    if A.shape == (0, 0):
-        out = np.zeros([0, 0], dtype=A.dtype)
-        if issparse(A) or is_pydata_spmatrix(A):
-            return A.__class__(out)
-        return out
-
-    # Trivial case
-    if A.shape == (1, 1):
-        out = [[np.exp(A[0, 0])]]
-
-        # Avoid indiscriminate casting to ndarray to
-        # allow for sparse or other strange arrays
-        if issparse(A) or is_pydata_spmatrix(A):
-            return A.__class__(out)
-
-        return np.array(out)
-
-    # Ensure input is of float type, to avoid integer overflows etc.
-    if ((isinstance(A, np.ndarray) or issparse(A) or is_pydata_spmatrix(A))
-            and not np.issubdtype(A.dtype, np.inexact)):
-        A = A.astype(float)
-
-    # Detect upper triangularity.
-    structure = UPPER_TRIANGULAR if _is_upper_triangular(A) else None
-
-    if use_exact_onenorm == "auto":
-        # Hardcode a matrix order threshold for exact vs. estimated one-norms.
-        use_exact_onenorm = A.shape[0] < 200
-
-    # Track functions of A to help compute the matrix exponential.
-    h = _ExpmPadeHelper(
-            A, structure=structure, use_exact_onenorm=use_exact_onenorm)
-
-    # Try Pade order 3.
-    eta_1 = max(h.d4_loose, h.d6_loose)
-    if eta_1 < 1.495585217958292e-002 and _ell(h.A, 3) == 0:
-        U, V = h.pade3()
-        return _solve_P_Q(U, V, structure=structure)
-
-    # Try Pade order 5.
-    eta_2 = max(h.d4_tight, h.d6_loose)
-    if eta_2 < 2.539398330063230e-001 and _ell(h.A, 5) == 0:
-        U, V = h.pade5()
-        return _solve_P_Q(U, V, structure=structure)
-
-    # Try Pade orders 7 and 9.
-    eta_3 = max(h.d6_tight, h.d8_loose)
-    if eta_3 < 9.504178996162932e-001 and _ell(h.A, 7) == 0:
-        U, V = h.pade7()
-        return _solve_P_Q(U, V, structure=structure)
-    if eta_3 < 2.097847961257068e+000 and _ell(h.A, 9) == 0:
-        U, V = h.pade9()
-        return _solve_P_Q(U, V, structure=structure)
-
-    # Use Pade order 13.
-    eta_4 = max(h.d8_loose, h.d10_loose)
-    eta_5 = min(eta_3, eta_4)
-    theta_13 = 4.25
-
-    # Choose smallest s>=0 such that 2**(-s) eta_5 <= theta_13
-    if eta_5 == 0:
-        # Nilpotent special case
-        s = 0
-    else:
-        s = max(int(np.ceil(np.log2(eta_5 / theta_13))), 0)
-    s = s + _ell(2**-s * h.A, 13)
-    U, V = h.pade13_scaled(s)
-    X = _solve_P_Q(U, V, structure=structure)
-    if structure == UPPER_TRIANGULAR:
-        # Invoke Code Fragment 2.1.
-        X = _fragment_2_1(X, h.A, s)
-    else:
-        # X = r_13(A)^(2^s) by repeated squaring.
-        for i in range(s):
-            X = X.dot(X)
-    return X
-
-
-def _solve_P_Q(U, V, structure=None):
-    """
-    A helper function for expm_2009.
-
-    Parameters
-    ----------
-    U : ndarray
-        Pade numerator.
-    V : ndarray
-        Pade denominator.
-    structure : str, optional
-        A string describing the structure of both matrices `U` and `V`.
-        Only `upper_triangular` is currently supported.
-
-    Notes
-    -----
-    The `structure` argument is inspired by similar args
-    for theano and cvxopt functions.
-
-    """
-    P = U + V
-    Q = -U + V
-    if issparse(U) or is_pydata_spmatrix(U):
-        return spsolve(Q, P)
-    elif structure is None:
-        return solve(Q, P)
-    elif structure == UPPER_TRIANGULAR:
-        return solve_triangular(Q, P)
-    else:
-        raise ValueError('unsupported matrix structure: ' + str(structure))
-
-
-def _exp_sinch(a, x):
-    """
-    Stably evaluate exp(a)*sinh(x)/x
-
-    Notes
-    -----
-    The strategy of falling back to a sixth order Taylor expansion
-    was suggested by the Spallation Neutron Source docs
-    which was found on the internet by google search.
-    http://www.ornl.gov/~t6p/resources/xal/javadoc/gov/sns/tools/math/ElementaryFunction.html
-    The details of the cutoff point and the Horner-like evaluation
-    was picked without reference to anything in particular.
-
-    Note that sinch is not currently implemented in scipy.special,
-    whereas the "engineer's" definition of sinc is implemented.
-    The implementation of sinc involves a scaling factor of pi
-    that distinguishes it from the "mathematician's" version of sinc.
-
-    """
-
-    # If x is small then use sixth order Taylor expansion.
-    # How small is small? I am using the point where the relative error
-    # of the approximation is less than 1e-14.
-    # If x is large then directly evaluate sinh(x) / x.
-    if abs(x) < 0.0135:
-        x2 = x*x
-        return np.exp(a) * (1 + (x2/6.)*(1 + (x2/20.)*(1 + (x2/42.))))
-    else:
-        return (np.exp(a + x) - np.exp(a - x)) / (2*x)
-
-
-def _eq_10_42(lam_1, lam_2, t_12):
-    """
-    Equation (10.42) of Functions of Matrices: Theory and Computation.
-
-    Notes
-    -----
-    This is a helper function for _fragment_2_1 of expm_2009.
-    Equation (10.42) is on page 251 in the section on Schur algorithms.
-    In particular, section 10.4.3 explains the Schur-Parlett algorithm.
-    expm([[lam_1, t_12], [0, lam_1])
-    =
-    [[exp(lam_1), t_12*exp((lam_1 + lam_2)/2)*sinch((lam_1 - lam_2)/2)],
-    [0, exp(lam_2)]
-    """
-
-    # The plain formula t_12 * (exp(lam_2) - exp(lam_2)) / (lam_2 - lam_1)
-    # apparently suffers from cancellation, according to Higham's textbook.
-    # A nice implementation of sinch, defined as sinh(x)/x,
-    # will apparently work around the cancellation.
-    a = 0.5 * (lam_1 + lam_2)
-    b = 0.5 * (lam_1 - lam_2)
-    return t_12 * _exp_sinch(a, b)
-
-
-def _fragment_2_1(X, T, s):
-    """
-    A helper function for expm_2009.
-
-    Notes
-    -----
-    The argument X is modified in-place, but this modification is not the same
-    as the returned value of the function.
-    This function also takes pains to do things in ways that are compatible
-    with sparse matrices, for example by avoiding fancy indexing
-    and by using methods of the matrices whenever possible instead of
-    using functions of the numpy or scipy libraries themselves.
-
-    """
-    # Form X = r_m(2^-s T)
-    # Replace diag(X) by exp(2^-s diag(T)).
-    n = X.shape[0]
-    diag_T = np.ravel(T.diagonal().copy())
-
-    # Replace diag(X) by exp(2^-s diag(T)).
-    scale = 2 ** -s
-    exp_diag = np.exp(scale * diag_T)
-    for k in range(n):
-        X[k, k] = exp_diag[k]
-
-    for i in range(s-1, -1, -1):
-        X = X.dot(X)
-
-        # Replace diag(X) by exp(2^-i diag(T)).
-        scale = 2 ** -i
-        exp_diag = np.exp(scale * diag_T)
-        for k in range(n):
-            X[k, k] = exp_diag[k]
-
-        # Replace (first) superdiagonal of X by explicit formula
-        # for superdiagonal of exp(2^-i T) from Eq (10.42) of
-        # the author's 2008 textbook
-        # Functions of Matrices: Theory and Computation.
-        for k in range(n-1):
-            lam_1 = scale * diag_T[k]
-            lam_2 = scale * diag_T[k+1]
-            t_12 = scale * T[k, k+1]
-            value = _eq_10_42(lam_1, lam_2, t_12)
-            X[k, k+1] = value
-
-    # Return the updated X matrix.
-    return X
-
-
-def _ell(A, m):
-    """
-    A helper function for expm_2009.
-
-    Parameters
-    ----------
-    A : linear operator
-        A linear operator whose norm of power we care about.
-    m : int
-        The power of the linear operator
-
-    Returns
-    -------
-    value : int
-        A value related to a bound.
-
-    """
-    if len(A.shape) != 2 or A.shape[0] != A.shape[1]:
-        raise ValueError('expected A to be like a square matrix')
-
-    # The c_i are explained in (2.2) and (2.6) of the 2005 expm paper.
-    # They are coefficients of terms of a generating function series expansion.
-    c_i = {3: 100800.,
-           5: 10059033600.,
-           7: 4487938430976000.,
-           9: 5914384781877411840000.,
-           13: 113250775606021113483283660800000000.
-           }
-    abs_c_recip = c_i[m]
-
-    # This is explained after Eq. (1.2) of the 2009 expm paper.
-    # It is the "unit roundoff" of IEEE double precision arithmetic.
-    u = 2**-53
-
-    # Compute the one-norm of matrix power p of abs(A).
-    A_abs_onenorm = _onenorm_matrix_power_nnm(abs(A), 2*m + 1)
-
-    # Treat zero norm as a special case.
-    if not A_abs_onenorm:
-        return 0
-
-    alpha = A_abs_onenorm / (_onenorm(A) * abs_c_recip)
-    log2_alpha_div_u = np.log2(alpha/u)
-    value = int(np.ceil(log2_alpha_div_u / (2 * m)))
-    return max(value, 0)
-
-def matrix_power(A, power):
-    """
-    Raise a square matrix to the integer power, `power`.
-
-    For non-negative integers, ``A**power`` is computed using repeated
-    matrix multiplications. Negative integers are not supported. 
-
-    Parameters
-    ----------
-    A : (M, M) square sparse array or matrix
-        sparse array that will be raised to power `power`
-    power : int
-        Exponent used to raise sparse array `A`
-
-    Returns
-    -------
-    A**power : (M, M) sparse array or matrix
-        The output matrix will be the same shape as A, and will preserve
-        the class of A, but the format of the output may be changed.
-    
-    Notes
-    -----
-    This uses a recursive implementation of the matrix power. For computing
-    the matrix power using a reasonably large `power`, this may be less efficient
-    than computing the product directly, using A @ A @ ... @ A.
-    This is contingent upon the number of nonzero entries in the matrix. 
-
-    .. versionadded:: 1.12.0
-
-    Examples
-    --------
-    >>> from scipy import sparse
-    >>> A = sparse.csc_array([[0,1,0],[1,0,1],[0,1,0]])
-    >>> A.todense()
-    array([[0, 1, 0],
-           [1, 0, 1],
-           [0, 1, 0]])
-    >>> (A @ A).todense()
-    array([[1, 0, 1],
-           [0, 2, 0],
-           [1, 0, 1]])
-    >>> A2 = sparse.linalg.matrix_power(A, 2)
-    >>> A2.todense()
-    array([[1, 0, 1],
-           [0, 2, 0],
-           [1, 0, 1]])
-    >>> A4 = sparse.linalg.matrix_power(A, 4)
-    >>> A4.todense()
-    array([[2, 0, 2],
-           [0, 4, 0],
-           [2, 0, 2]])
-
-    """
-    M, N = A.shape
-    if M != N:
-        raise TypeError('sparse matrix is not square')
-
-    if isintlike(power):
-        power = int(power)
-        if power < 0:
-            raise ValueError('exponent must be >= 0')
-
-        if power == 0:
-            return eye(M, dtype=A.dtype)
-
-        if power == 1:
-            return A.copy()
-
-        tmp = matrix_power(A, power // 2)
-        if power % 2:
-            return A @ tmp @ tmp
-        else:
-            return tmp @ tmp
-    else:
-        raise ValueError("exponent must be an integer")
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_norm.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_norm.py
deleted file mode 100644
index 38f3a6d7a6f84ec315b3177b384eef5c5d93311a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_norm.py
+++ /dev/null
@@ -1,193 +0,0 @@
-"""Sparse matrix norms.
-
-"""
-import numpy as np
-from scipy.sparse import issparse
-from scipy.sparse.linalg import svds
-import scipy.sparse as sp
-
-from numpy import sqrt, abs
-
-__all__ = ['norm']
-
-
-def _sparse_frobenius_norm(x):
-    data = sp._sputils._todata(x)
-    return np.linalg.norm(data)
-
-
-def norm(x, ord=None, axis=None):
-    """
-    Norm of a sparse matrix
-
-    This function is able to return one of seven different matrix norms,
-    depending on the value of the ``ord`` parameter.
-
-    Parameters
-    ----------
-    x : a sparse matrix
-        Input sparse matrix.
-    ord : {non-zero int, inf, -inf, 'fro'}, optional
-        Order of the norm (see table under ``Notes``). inf means numpy's
-        `inf` object.
-    axis : {int, 2-tuple of ints, None}, optional
-        If `axis` is an integer, it specifies the axis of `x` along which to
-        compute the vector norms.  If `axis` is a 2-tuple, it specifies the
-        axes that hold 2-D matrices, and the matrix norms of these matrices
-        are computed.  If `axis` is None then either a vector norm (when `x`
-        is 1-D) or a matrix norm (when `x` is 2-D) is returned.
-
-    Returns
-    -------
-    n : float or ndarray
-
-    Notes
-    -----
-    Some of the ord are not implemented because some associated functions like,
-    _multi_svd_norm, are not yet available for sparse matrix.
-
-    This docstring is modified based on numpy.linalg.norm.
-    https://github.com/numpy/numpy/blob/main/numpy/linalg/linalg.py
-
-    The following norms can be calculated:
-
-    =====  ============================
-    ord    norm for sparse matrices
-    =====  ============================
-    None   Frobenius norm
-    'fro'  Frobenius norm
-    inf    max(sum(abs(x), axis=1))
-    -inf   min(sum(abs(x), axis=1))
-    0      abs(x).sum(axis=axis)
-    1      max(sum(abs(x), axis=0))
-    -1     min(sum(abs(x), axis=0))
-    2      Spectral norm (the largest singular value)
-    -2     Not implemented
-    other  Not implemented
-    =====  ============================
-
-    The Frobenius norm is given by [1]_:
-
-        :math:`||A||_F = [\\sum_{i,j} abs(a_{i,j})^2]^{1/2}`
-
-    References
-    ----------
-    .. [1] G. H. Golub and C. F. Van Loan, *Matrix Computations*,
-        Baltimore, MD, Johns Hopkins University Press, 1985, pg. 15
-
-    Examples
-    --------
-    >>> from scipy.sparse import *
-    >>> import numpy as np
-    >>> from scipy.sparse.linalg import norm
-    >>> a = np.arange(9) - 4
-    >>> a
-    array([-4, -3, -2, -1, 0, 1, 2, 3, 4])
-    >>> b = a.reshape((3, 3))
-    >>> b
-    array([[-4, -3, -2],
-           [-1, 0, 1],
-           [ 2, 3, 4]])
-
-    >>> b = csr_matrix(b)
-    >>> norm(b)
-    7.745966692414834
-    >>> norm(b, 'fro')
-    7.745966692414834
-    >>> norm(b, np.inf)
-    9
-    >>> norm(b, -np.inf)
-    2
-    >>> norm(b, 1)
-    7
-    >>> norm(b, -1)
-    6
-
-    The matrix 2-norm or the spectral norm is the largest singular
-    value, computed approximately and with limitations.
-
-    >>> b = diags([-1, 1], [0, 1], shape=(9, 10))
-    >>> norm(b, 2)
-    1.9753...
-    """
-    if not issparse(x):
-        raise TypeError("input is not sparse. use numpy.linalg.norm")
-
-    # Check the default case first and handle it immediately.
-    if axis is None and ord in (None, 'fro', 'f'):
-        return _sparse_frobenius_norm(x)
-
-    # Some norms require functions that are not implemented for all types.
-    x = x.tocsr()
-
-    if axis is None:
-        axis = (0, 1)
-    elif not isinstance(axis, tuple):
-        msg = "'axis' must be None, an integer or a tuple of integers"
-        try:
-            int_axis = int(axis)
-        except TypeError as e:
-            raise TypeError(msg) from e
-        if axis != int_axis:
-            raise TypeError(msg)
-        axis = (int_axis,)
-
-    nd = 2
-    if len(axis) == 2:
-        row_axis, col_axis = axis
-        if not (-nd <= row_axis < nd and -nd <= col_axis < nd):
-            message = f'Invalid axis {axis!r} for an array with shape {x.shape!r}'
-            raise ValueError(message)
-        if row_axis % nd == col_axis % nd:
-            raise ValueError('Duplicate axes given.')
-        if ord == 2:
-            # Only solver="lobpcg" supports all numpy dtypes
-            _, s, _ = svds(x, k=1, solver="lobpcg")
-            return s[0]
-        elif ord == -2:
-            raise NotImplementedError
-            #return _multi_svd_norm(x, row_axis, col_axis, amin)
-        elif ord == 1:
-            return abs(x).sum(axis=row_axis).max(axis=col_axis)[0,0]
-        elif ord == np.inf:
-            return abs(x).sum(axis=col_axis).max(axis=row_axis)[0,0]
-        elif ord == -1:
-            return abs(x).sum(axis=row_axis).min(axis=col_axis)[0,0]
-        elif ord == -np.inf:
-            return abs(x).sum(axis=col_axis).min(axis=row_axis)[0,0]
-        elif ord in (None, 'f', 'fro'):
-            # The axis order does not matter for this norm.
-            return _sparse_frobenius_norm(x)
-        else:
-            raise ValueError("Invalid norm order for matrices.")
-    elif len(axis) == 1:
-        a, = axis
-        if not (-nd <= a < nd):
-            message = f'Invalid axis {axis!r} for an array with shape {x.shape!r}'
-            raise ValueError(message)
-        if ord == np.inf:
-            M = abs(x).max(axis=a)
-        elif ord == -np.inf:
-            M = abs(x).min(axis=a)
-        elif ord == 0:
-            # Zero norm
-            M = (x != 0).sum(axis=a)
-        elif ord == 1:
-            # special case for speedup
-            M = abs(x).sum(axis=a)
-        elif ord in (2, None):
-            M = sqrt(abs(x).power(2).sum(axis=a))
-        else:
-            try:
-                ord + 1
-            except TypeError as e:
-                raise ValueError('Invalid norm order for vectors.') from e
-            M = np.power(abs(x).power(ord).sum(axis=a), 1 / ord)
-        if hasattr(M, 'toarray'):
-            return M.toarray().ravel()
-        elif hasattr(M, 'A'):
-            return M.A.ravel()
-        else:
-            return M.ravel()
-    else:
-        raise ValueError("Improper number of dimensions to norm.")
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_onenormest.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_onenormest.py
deleted file mode 100644
index c3e383aa6370b3ef11b8c2cf57d2cf85da66d02d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_onenormest.py
+++ /dev/null
@@ -1,467 +0,0 @@
-"""Sparse block 1-norm estimator.
-"""
-
-import numpy as np
-from scipy.sparse.linalg import aslinearoperator
-
-
-__all__ = ['onenormest']
-
-
-def onenormest(A, t=2, itmax=5, compute_v=False, compute_w=False):
-    """
-    Compute a lower bound of the 1-norm of a sparse matrix.
-
-    Parameters
-    ----------
-    A : ndarray or other linear operator
-        A linear operator that can be transposed and that can
-        produce matrix products.
-    t : int, optional
-        A positive parameter controlling the tradeoff between
-        accuracy versus time and memory usage.
-        Larger values take longer and use more memory
-        but give more accurate output.
-    itmax : int, optional
-        Use at most this many iterations.
-    compute_v : bool, optional
-        Request a norm-maximizing linear operator input vector if True.
-    compute_w : bool, optional
-        Request a norm-maximizing linear operator output vector if True.
-
-    Returns
-    -------
-    est : float
-        An underestimate of the 1-norm of the sparse matrix.
-    v : ndarray, optional
-        The vector such that ||Av||_1 == est*||v||_1.
-        It can be thought of as an input to the linear operator
-        that gives an output with particularly large norm.
-    w : ndarray, optional
-        The vector Av which has relatively large 1-norm.
-        It can be thought of as an output of the linear operator
-        that is relatively large in norm compared to the input.
-
-    Notes
-    -----
-    This is algorithm 2.4 of [1].
-
-    In [2] it is described as follows.
-    "This algorithm typically requires the evaluation of
-    about 4t matrix-vector products and almost invariably
-    produces a norm estimate (which is, in fact, a lower
-    bound on the norm) correct to within a factor 3."
-
-    .. versionadded:: 0.13.0
-
-    References
-    ----------
-    .. [1] Nicholas J. Higham and Francoise Tisseur (2000),
-           "A Block Algorithm for Matrix 1-Norm Estimation,
-           with an Application to 1-Norm Pseudospectra."
-           SIAM J. Matrix Anal. Appl. Vol. 21, No. 4, pp. 1185-1201.
-
-    .. [2] Awad H. Al-Mohy and Nicholas J. Higham (2009),
-           "A new scaling and squaring algorithm for the matrix exponential."
-           SIAM J. Matrix Anal. Appl. Vol. 31, No. 3, pp. 970-989.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse import csc_matrix
-    >>> from scipy.sparse.linalg import onenormest
-    >>> A = csc_matrix([[1., 0., 0.], [5., 8., 2.], [0., -1., 0.]], dtype=float)
-    >>> A.toarray()
-    array([[ 1.,  0.,  0.],
-           [ 5.,  8.,  2.],
-           [ 0., -1.,  0.]])
-    >>> onenormest(A)
-    9.0
-    >>> np.linalg.norm(A.toarray(), ord=1)
-    9.0
-    """
-
-    # Check the input.
-    A = aslinearoperator(A)
-    if A.shape[0] != A.shape[1]:
-        raise ValueError('expected the operator to act like a square matrix')
-
-    # If the operator size is small compared to t,
-    # then it is easier to compute the exact norm.
-    # Otherwise estimate the norm.
-    n = A.shape[1]
-    if t >= n:
-        A_explicit = np.asarray(aslinearoperator(A).matmat(np.identity(n)))
-        if A_explicit.shape != (n, n):
-            raise Exception('internal error: ',
-                    'unexpected shape ' + str(A_explicit.shape))
-        col_abs_sums = abs(A_explicit).sum(axis=0)
-        if col_abs_sums.shape != (n, ):
-            raise Exception('internal error: ',
-                    'unexpected shape ' + str(col_abs_sums.shape))
-        argmax_j = np.argmax(col_abs_sums)
-        v = elementary_vector(n, argmax_j)
-        w = A_explicit[:, argmax_j]
-        est = col_abs_sums[argmax_j]
-    else:
-        est, v, w, nmults, nresamples = _onenormest_core(A, A.H, t, itmax)
-
-    # Report the norm estimate along with some certificates of the estimate.
-    if compute_v or compute_w:
-        result = (est,)
-        if compute_v:
-            result += (v,)
-        if compute_w:
-            result += (w,)
-        return result
-    else:
-        return est
-
-
-def _blocked_elementwise(func):
-    """
-    Decorator for an elementwise function, to apply it blockwise along
-    first dimension, to avoid excessive memory usage in temporaries.
-    """
-    block_size = 2**20
-
-    def wrapper(x):
-        if x.shape[0] < block_size:
-            return func(x)
-        else:
-            y0 = func(x[:block_size])
-            y = np.zeros((x.shape[0],) + y0.shape[1:], dtype=y0.dtype)
-            y[:block_size] = y0
-            del y0
-            for j in range(block_size, x.shape[0], block_size):
-                y[j:j+block_size] = func(x[j:j+block_size])
-            return y
-    return wrapper
-
-
-@_blocked_elementwise
-def sign_round_up(X):
-    """
-    This should do the right thing for both real and complex matrices.
-
-    From Higham and Tisseur:
-    "Everything in this section remains valid for complex matrices
-    provided that sign(A) is redefined as the matrix (aij / |aij|)
-    (and sign(0) = 1) transposes are replaced by conjugate transposes."
-
-    """
-    Y = X.copy()
-    Y[Y == 0] = 1
-    Y /= np.abs(Y)
-    return Y
-
-
-@_blocked_elementwise
-def _max_abs_axis1(X):
-    return np.max(np.abs(X), axis=1)
-
-
-def _sum_abs_axis0(X):
-    block_size = 2**20
-    r = None
-    for j in range(0, X.shape[0], block_size):
-        y = np.sum(np.abs(X[j:j+block_size]), axis=0)
-        if r is None:
-            r = y
-        else:
-            r += y
-    return r
-
-
-def elementary_vector(n, i):
-    v = np.zeros(n, dtype=float)
-    v[i] = 1
-    return v
-
-
-def vectors_are_parallel(v, w):
-    # Columns are considered parallel when they are equal or negative.
-    # Entries are required to be in {-1, 1},
-    # which guarantees that the magnitudes of the vectors are identical.
-    if v.ndim != 1 or v.shape != w.shape:
-        raise ValueError('expected conformant vectors with entries in {-1,1}')
-    n = v.shape[0]
-    return np.dot(v, w) == n
-
-
-def every_col_of_X_is_parallel_to_a_col_of_Y(X, Y):
-    for v in X.T:
-        if not any(vectors_are_parallel(v, w) for w in Y.T):
-            return False
-    return True
-
-
-def column_needs_resampling(i, X, Y=None):
-    # column i of X needs resampling if either
-    # it is parallel to a previous column of X or
-    # it is parallel to a column of Y
-    n, t = X.shape
-    v = X[:, i]
-    if any(vectors_are_parallel(v, X[:, j]) for j in range(i)):
-        return True
-    if Y is not None:
-        if any(vectors_are_parallel(v, w) for w in Y.T):
-            return True
-    return False
-
-
-def resample_column(i, X):
-    X[:, i] = np.random.randint(0, 2, size=X.shape[0])*2 - 1
-
-
-def less_than_or_close(a, b):
-    return np.allclose(a, b) or (a < b)
-
-
-def _algorithm_2_2(A, AT, t):
-    """
-    This is Algorithm 2.2.
-
-    Parameters
-    ----------
-    A : ndarray or other linear operator
-        A linear operator that can produce matrix products.
-    AT : ndarray or other linear operator
-        The transpose of A.
-    t : int, optional
-        A positive parameter controlling the tradeoff between
-        accuracy versus time and memory usage.
-
-    Returns
-    -------
-    g : sequence
-        A non-negative decreasing vector
-        such that g[j] is a lower bound for the 1-norm
-        of the column of A of jth largest 1-norm.
-        The first entry of this vector is therefore a lower bound
-        on the 1-norm of the linear operator A.
-        This sequence has length t.
-    ind : sequence
-        The ith entry of ind is the index of the column A whose 1-norm
-        is given by g[i].
-        This sequence of indices has length t, and its entries are
-        chosen from range(n), possibly with repetition,
-        where n is the order of the operator A.
-
-    Notes
-    -----
-    This algorithm is mainly for testing.
-    It uses the 'ind' array in a way that is similar to
-    its usage in algorithm 2.4. This algorithm 2.2 may be easier to test,
-    so it gives a chance of uncovering bugs related to indexing
-    which could have propagated less noticeably to algorithm 2.4.
-
-    """
-    A_linear_operator = aslinearoperator(A)
-    AT_linear_operator = aslinearoperator(AT)
-    n = A_linear_operator.shape[0]
-
-    # Initialize the X block with columns of unit 1-norm.
-    X = np.ones((n, t))
-    if t > 1:
-        X[:, 1:] = np.random.randint(0, 2, size=(n, t-1))*2 - 1
-    X /= float(n)
-
-    # Iteratively improve the lower bounds.
-    # Track extra things, to assert invariants for debugging.
-    g_prev = None
-    h_prev = None
-    k = 1
-    ind = range(t)
-    while True:
-        Y = np.asarray(A_linear_operator.matmat(X))
-        g = _sum_abs_axis0(Y)
-        best_j = np.argmax(g)
-        g.sort()
-        g = g[::-1]
-        S = sign_round_up(Y)
-        Z = np.asarray(AT_linear_operator.matmat(S))
-        h = _max_abs_axis1(Z)
-
-        # If this algorithm runs for fewer than two iterations,
-        # then its return values do not have the properties indicated
-        # in the description of the algorithm.
-        # In particular, the entries of g are not 1-norms of any
-        # column of A until the second iteration.
-        # Therefore we will require the algorithm to run for at least
-        # two iterations, even though this requirement is not stated
-        # in the description of the algorithm.
-        if k >= 2:
-            if less_than_or_close(max(h), np.dot(Z[:, best_j], X[:, best_j])):
-                break
-        ind = np.argsort(h)[::-1][:t]
-        h = h[ind]
-        for j in range(t):
-            X[:, j] = elementary_vector(n, ind[j])
-
-        # Check invariant (2.2).
-        if k >= 2:
-            if not less_than_or_close(g_prev[0], h_prev[0]):
-                raise Exception('invariant (2.2) is violated')
-            if not less_than_or_close(h_prev[0], g[0]):
-                raise Exception('invariant (2.2) is violated')
-
-        # Check invariant (2.3).
-        if k >= 3:
-            for j in range(t):
-                if not less_than_or_close(g[j], g_prev[j]):
-                    raise Exception('invariant (2.3) is violated')
-
-        # Update for the next iteration.
-        g_prev = g
-        h_prev = h
-        k += 1
-
-    # Return the lower bounds and the corresponding column indices.
-    return g, ind
-
-
-def _onenormest_core(A, AT, t, itmax):
-    """
-    Compute a lower bound of the 1-norm of a sparse matrix.
-
-    Parameters
-    ----------
-    A : ndarray or other linear operator
-        A linear operator that can produce matrix products.
-    AT : ndarray or other linear operator
-        The transpose of A.
-    t : int, optional
-        A positive parameter controlling the tradeoff between
-        accuracy versus time and memory usage.
-    itmax : int, optional
-        Use at most this many iterations.
-
-    Returns
-    -------
-    est : float
-        An underestimate of the 1-norm of the sparse matrix.
-    v : ndarray, optional
-        The vector such that ||Av||_1 == est*||v||_1.
-        It can be thought of as an input to the linear operator
-        that gives an output with particularly large norm.
-    w : ndarray, optional
-        The vector Av which has relatively large 1-norm.
-        It can be thought of as an output of the linear operator
-        that is relatively large in norm compared to the input.
-    nmults : int, optional
-        The number of matrix products that were computed.
-    nresamples : int, optional
-        The number of times a parallel column was observed,
-        necessitating a re-randomization of the column.
-
-    Notes
-    -----
-    This is algorithm 2.4.
-
-    """
-    # This function is a more or less direct translation
-    # of Algorithm 2.4 from the Higham and Tisseur (2000) paper.
-    A_linear_operator = aslinearoperator(A)
-    AT_linear_operator = aslinearoperator(AT)
-    if itmax < 2:
-        raise ValueError('at least two iterations are required')
-    if t < 1:
-        raise ValueError('at least one column is required')
-    n = A.shape[0]
-    if t >= n:
-        raise ValueError('t should be smaller than the order of A')
-    # Track the number of big*small matrix multiplications
-    # and the number of resamplings.
-    nmults = 0
-    nresamples = 0
-    # "We now explain our choice of starting matrix.  We take the first
-    # column of X to be the vector of 1s [...] This has the advantage that
-    # for a matrix with nonnegative elements the algorithm converges
-    # with an exact estimate on the second iteration, and such matrices
-    # arise in applications [...]"
-    X = np.ones((n, t), dtype=float)
-    # "The remaining columns are chosen as rand{-1,1},
-    # with a check for and correction of parallel columns,
-    # exactly as for S in the body of the algorithm."
-    if t > 1:
-        for i in range(1, t):
-            # These are technically initial samples, not resamples,
-            # so the resampling count is not incremented.
-            resample_column(i, X)
-        for i in range(t):
-            while column_needs_resampling(i, X):
-                resample_column(i, X)
-                nresamples += 1
-    # "Choose starting matrix X with columns of unit 1-norm."
-    X /= float(n)
-    # "indices of used unit vectors e_j"
-    ind_hist = np.zeros(0, dtype=np.intp)
-    est_old = 0
-    S = np.zeros((n, t), dtype=float)
-    k = 1
-    ind = None
-    while True:
-        Y = np.asarray(A_linear_operator.matmat(X))
-        nmults += 1
-        mags = _sum_abs_axis0(Y)
-        est = np.max(mags)
-        best_j = np.argmax(mags)
-        if est > est_old or k == 2:
-            if k >= 2:
-                ind_best = ind[best_j]
-            w = Y[:, best_j]
-        # (1)
-        if k >= 2 and est <= est_old:
-            est = est_old
-            break
-        est_old = est
-        S_old = S
-        if k > itmax:
-            break
-        S = sign_round_up(Y)
-        del Y
-        # (2)
-        if every_col_of_X_is_parallel_to_a_col_of_Y(S, S_old):
-            break
-        if t > 1:
-            # "Ensure that no column of S is parallel to another column of S
-            # or to a column of S_old by replacing columns of S by rand{-1,1}."
-            for i in range(t):
-                while column_needs_resampling(i, S, S_old):
-                    resample_column(i, S)
-                    nresamples += 1
-        del S_old
-        # (3)
-        Z = np.asarray(AT_linear_operator.matmat(S))
-        nmults += 1
-        h = _max_abs_axis1(Z)
-        del Z
-        # (4)
-        if k >= 2 and max(h) == h[ind_best]:
-            break
-        # "Sort h so that h_first >= ... >= h_last
-        # and re-order ind correspondingly."
-        #
-        # Later on, we will need at most t+len(ind_hist) largest
-        # entries, so drop the rest
-        ind = np.argsort(h)[::-1][:t+len(ind_hist)].copy()
-        del h
-        if t > 1:
-            # (5)
-            # Break if the most promising t vectors have been visited already.
-            if np.isin(ind[:t], ind_hist).all():
-                break
-            # Put the most promising unvisited vectors at the front of the list
-            # and put the visited vectors at the end of the list.
-            # Preserve the order of the indices induced by the ordering of h.
-            seen = np.isin(ind, ind_hist)
-            ind = np.concatenate((ind[~seen], ind[seen]))
-        for j in range(t):
-            X[:, j] = elementary_vector(n, ind[j])
-
-        new_ind = ind[:t][~np.isin(ind[:t], ind_hist)]
-        ind_hist = np.concatenate((ind_hist, new_ind))
-        k += 1
-    v = elementary_vector(n, ind_best)
-    return est, v, w, nmults, nresamples
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_special_sparse_arrays.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_special_sparse_arrays.py
deleted file mode 100644
index ee68fce865c5d4cf7ed8d7e2fa23e1bd14bbefe8..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_special_sparse_arrays.py
+++ /dev/null
@@ -1,948 +0,0 @@
-import numpy as np
-from scipy.sparse.linalg import LinearOperator
-from scipy.sparse import kron, eye, dia_array
-
-__all__ = ['LaplacianNd']
-# Sakurai and Mikota classes are intended for tests and benchmarks
-# and explicitly not included in the public API of this module.
-
-
-class LaplacianNd(LinearOperator):
-    """
-    The grid Laplacian in ``N`` dimensions and its eigenvalues/eigenvectors.
-
-    Construct Laplacian on a uniform rectangular grid in `N` dimensions
-    and output its eigenvalues and eigenvectors.
-    The Laplacian ``L`` is square, negative definite, real symmetric array
-    with signed integer entries and zeros otherwise.
-
-    Parameters
-    ----------
-    grid_shape : tuple
-        A tuple of integers of length ``N`` (corresponding to the dimension of
-        the Lapacian), where each entry gives the size of that dimension. The
-        Laplacian matrix is square of the size ``np.prod(grid_shape)``.
-    boundary_conditions : {'neumann', 'dirichlet', 'periodic'}, optional
-        The type of the boundary conditions on the boundaries of the grid.
-        Valid values are ``'dirichlet'`` or ``'neumann'``(default) or
-        ``'periodic'``.
-    dtype : dtype
-        Numerical type of the array. Default is ``np.int8``.
-
-    Methods
-    -------
-    toarray()
-        Construct a dense array from Laplacian data
-    tosparse()
-        Construct a sparse array from Laplacian data
-    eigenvalues(m=None)
-        Construct a 1D array of `m` largest (smallest in absolute value)
-        eigenvalues of the Laplacian matrix in ascending order.
-    eigenvectors(m=None):
-        Construct the array with columns made of `m` eigenvectors (``float``)
-        of the ``Nd`` Laplacian corresponding to the `m` ordered eigenvalues.
-
-    .. versionadded:: 1.12.0
-
-    Notes
-    -----
-    Compared to the MATLAB/Octave implementation [1] of 1-, 2-, and 3-D
-    Laplacian, this code allows the arbitrary N-D case and the matrix-free
-    callable option, but is currently limited to pure Dirichlet, Neumann or
-    Periodic boundary conditions only.
-
-    The Laplacian matrix of a graph (`scipy.sparse.csgraph.laplacian`) of a
-    rectangular grid corresponds to the negative Laplacian with the Neumann
-    conditions, i.e., ``boundary_conditions = 'neumann'``.
-
-    All eigenvalues and eigenvectors of the discrete Laplacian operator for
-    an ``N``-dimensional  regular grid of shape `grid_shape` with the grid
-    step size ``h=1`` are analytically known [2].
-
-    References
-    ----------
-    .. [1] https://github.com/lobpcg/blopex/blob/master/blopex_\
-tools/matlab/laplacian/laplacian.m
-    .. [2] "Eigenvalues and eigenvectors of the second derivative", Wikipedia
-           https://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors_\
-of_the_second_derivative
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse.linalg import LaplacianNd
-    >>> from scipy.sparse import diags, csgraph
-    >>> from scipy.linalg import eigvalsh
-
-    The one-dimensional Laplacian demonstrated below for pure Neumann boundary
-    conditions on a regular grid with ``n=6`` grid points is exactly the
-    negative graph Laplacian for the undirected linear graph with ``n``
-    vertices using the sparse adjacency matrix ``G`` represented by the
-    famous tri-diagonal matrix:
-
-    >>> n = 6
-    >>> G = diags(np.ones(n - 1), 1, format='csr')
-    >>> Lf = csgraph.laplacian(G, symmetrized=True, form='function')
-    >>> grid_shape = (n, )
-    >>> lap = LaplacianNd(grid_shape, boundary_conditions='neumann')
-    >>> np.array_equal(lap.matmat(np.eye(n)), -Lf(np.eye(n)))
-    True
-
-    Since all matrix entries of the Laplacian are integers, ``'int8'`` is
-    the default dtype for storing matrix representations.
-
-    >>> lap.tosparse()
-    
-    >>> lap.toarray()
-    array([[-1,  1,  0,  0,  0,  0],
-           [ 1, -2,  1,  0,  0,  0],
-           [ 0,  1, -2,  1,  0,  0],
-           [ 0,  0,  1, -2,  1,  0],
-           [ 0,  0,  0,  1, -2,  1],
-           [ 0,  0,  0,  0,  1, -1]], dtype=int8)
-    >>> np.array_equal(lap.matmat(np.eye(n)), lap.toarray())
-    True
-    >>> np.array_equal(lap.tosparse().toarray(), lap.toarray())
-    True
-
-    Any number of extreme eigenvalues and/or eigenvectors can be computed.
-    
-    >>> lap = LaplacianNd(grid_shape, boundary_conditions='periodic')
-    >>> lap.eigenvalues()
-    array([-4., -3., -3., -1., -1.,  0.])
-    >>> lap.eigenvalues()[-2:]
-    array([-1.,  0.])
-    >>> lap.eigenvalues(2)
-    array([-1.,  0.])
-    >>> lap.eigenvectors(1)
-    array([[0.40824829],
-           [0.40824829],
-           [0.40824829],
-           [0.40824829],
-           [0.40824829],
-           [0.40824829]])
-    >>> lap.eigenvectors(2)
-    array([[ 0.5       ,  0.40824829],
-           [ 0.        ,  0.40824829],
-           [-0.5       ,  0.40824829],
-           [-0.5       ,  0.40824829],
-           [ 0.        ,  0.40824829],
-           [ 0.5       ,  0.40824829]])
-    >>> lap.eigenvectors()
-    array([[ 0.40824829,  0.28867513,  0.28867513,  0.5       ,  0.5       ,
-             0.40824829],
-           [-0.40824829, -0.57735027, -0.57735027,  0.        ,  0.        ,
-             0.40824829],
-           [ 0.40824829,  0.28867513,  0.28867513, -0.5       , -0.5       ,
-             0.40824829],
-           [-0.40824829,  0.28867513,  0.28867513, -0.5       , -0.5       ,
-             0.40824829],
-           [ 0.40824829, -0.57735027, -0.57735027,  0.        ,  0.        ,
-             0.40824829],
-           [-0.40824829,  0.28867513,  0.28867513,  0.5       ,  0.5       ,
-             0.40824829]])
-
-    The two-dimensional Laplacian is illustrated on a regular grid with
-    ``grid_shape = (2, 3)`` points in each dimension.
-
-    >>> grid_shape = (2, 3)
-    >>> n = np.prod(grid_shape)
-
-    Numeration of grid points is as follows:
-
-    >>> np.arange(n).reshape(grid_shape + (-1,))
-    array([[[0],
-            [1],
-            [2]],
-    
-           [[3],
-            [4],
-            [5]]])
-
-    Each of the boundary conditions ``'dirichlet'``, ``'periodic'``, and
-    ``'neumann'`` is illustrated separately; with ``'dirichlet'``
-
-    >>> lap = LaplacianNd(grid_shape, boundary_conditions='dirichlet')
-    >>> lap.tosparse()
-    
-    >>> lap.toarray()
-    array([[-4,  1,  0,  1,  0,  0],
-           [ 1, -4,  1,  0,  1,  0],
-           [ 0,  1, -4,  0,  0,  1],
-           [ 1,  0,  0, -4,  1,  0],
-           [ 0,  1,  0,  1, -4,  1],
-           [ 0,  0,  1,  0,  1, -4]], dtype=int8)
-    >>> np.array_equal(lap.matmat(np.eye(n)), lap.toarray())
-    True
-    >>> np.array_equal(lap.tosparse().toarray(), lap.toarray())
-    True
-    >>> lap.eigenvalues()
-    array([-6.41421356, -5.        , -4.41421356, -3.58578644, -3.        ,
-           -1.58578644])
-    >>> eigvals = eigvalsh(lap.toarray().astype(np.float64))
-    >>> np.allclose(lap.eigenvalues(), eigvals)
-    True
-    >>> np.allclose(lap.toarray() @ lap.eigenvectors(),
-    ...             lap.eigenvectors() @ np.diag(lap.eigenvalues()))
-    True
-
-    with ``'periodic'``
-
-    >>> lap = LaplacianNd(grid_shape, boundary_conditions='periodic')
-    >>> lap.tosparse()
-    
-    >>> lap.toarray()
-        array([[-4,  1,  1,  2,  0,  0],
-               [ 1, -4,  1,  0,  2,  0],
-               [ 1,  1, -4,  0,  0,  2],
-               [ 2,  0,  0, -4,  1,  1],
-               [ 0,  2,  0,  1, -4,  1],
-               [ 0,  0,  2,  1,  1, -4]], dtype=int8)
-    >>> np.array_equal(lap.matmat(np.eye(n)), lap.toarray())
-    True
-    >>> np.array_equal(lap.tosparse().toarray(), lap.toarray())
-    True
-    >>> lap.eigenvalues()
-    array([-7., -7., -4., -3., -3.,  0.])
-    >>> eigvals = eigvalsh(lap.toarray().astype(np.float64))
-    >>> np.allclose(lap.eigenvalues(), eigvals)
-    True
-    >>> np.allclose(lap.toarray() @ lap.eigenvectors(),
-    ...             lap.eigenvectors() @ np.diag(lap.eigenvalues()))
-    True
-
-    and with ``'neumann'``
-
-    >>> lap = LaplacianNd(grid_shape, boundary_conditions='neumann')
-    >>> lap.tosparse()
-    
-    >>> lap.toarray()
-    array([[-2,  1,  0,  1,  0,  0],
-           [ 1, -3,  1,  0,  1,  0],
-           [ 0,  1, -2,  0,  0,  1],
-           [ 1,  0,  0, -2,  1,  0],
-           [ 0,  1,  0,  1, -3,  1],
-           [ 0,  0,  1,  0,  1, -2]])
-    >>> np.array_equal(lap.matmat(np.eye(n)), lap.toarray())
-    True
-    >>> np.array_equal(lap.tosparse().toarray(), lap.toarray())
-    True
-    >>> lap.eigenvalues()
-    array([-5., -3., -3., -2., -1.,  0.])
-    >>> eigvals = eigvalsh(lap.toarray().astype(np.float64))
-    >>> np.allclose(lap.eigenvalues(), eigvals)
-    True
-    >>> np.allclose(lap.toarray() @ lap.eigenvectors(),
-    ...             lap.eigenvectors() @ np.diag(lap.eigenvalues()))
-    True
-
-    """
-
-    def __init__(self, grid_shape, *,
-                 boundary_conditions='neumann',
-                 dtype=np.int8):
-
-        if boundary_conditions not in ('dirichlet', 'neumann', 'periodic'):
-            raise ValueError(
-                f"Unknown value {boundary_conditions!r} is given for "
-                "'boundary_conditions' parameter. The valid options are "
-                "'dirichlet', 'periodic', and 'neumann' (default)."
-            )
-
-        self.grid_shape = grid_shape
-        self.boundary_conditions = boundary_conditions
-        # LaplacianNd folds all dimensions in `grid_shape` into a single one
-        N = np.prod(grid_shape)
-        super().__init__(dtype=dtype, shape=(N, N))
-
-    def _eigenvalue_ordering(self, m):
-        """Compute `m` largest eigenvalues in each of the ``N`` directions,
-        i.e., up to ``m * N`` total, order them and return `m` largest.
-        """
-        grid_shape = self.grid_shape
-        if m is None:
-            indices = np.indices(grid_shape)
-            Leig = np.zeros(grid_shape)
-        else:
-            grid_shape_min = min(grid_shape,
-                                 tuple(np.ones_like(grid_shape) * m))
-            indices = np.indices(grid_shape_min)
-            Leig = np.zeros(grid_shape_min)
-
-        for j, n in zip(indices, grid_shape):
-            if self.boundary_conditions == 'dirichlet':
-                Leig += -4 * np.sin(np.pi * (j + 1) / (2 * (n + 1))) ** 2
-            elif self.boundary_conditions == 'neumann':
-                Leig += -4 * np.sin(np.pi * j / (2 * n)) ** 2
-            else:  # boundary_conditions == 'periodic'
-                Leig += -4 * np.sin(np.pi * np.floor((j + 1) / 2) / n) ** 2
-
-        Leig_ravel = Leig.ravel()
-        ind = np.argsort(Leig_ravel)
-        eigenvalues = Leig_ravel[ind]
-        if m is not None:
-            eigenvalues = eigenvalues[-m:]
-            ind = ind[-m:]
-
-        return eigenvalues, ind
-
-    def eigenvalues(self, m=None):
-        """Return the requested number of eigenvalues.
-        
-        Parameters
-        ----------
-        m : int, optional
-            The positive number of smallest eigenvalues to return.
-            If not provided, then all eigenvalues will be returned.
-            
-        Returns
-        -------
-        eigenvalues : float array
-            The requested `m` smallest or all eigenvalues, in ascending order.
-        """
-        eigenvalues, _ = self._eigenvalue_ordering(m)
-        return eigenvalues
-
-    def _ev1d(self, j, n):
-        """Return 1 eigenvector in 1d with index `j`
-        and number of grid points `n` where ``j < n``. 
-        """
-        if self.boundary_conditions == 'dirichlet':
-            i = np.pi * (np.arange(n) + 1) / (n + 1)
-            ev = np.sqrt(2. / (n + 1.)) * np.sin(i * (j + 1))
-        elif self.boundary_conditions == 'neumann':
-            i = np.pi * (np.arange(n) + 0.5) / n
-            ev = np.sqrt((1. if j == 0 else 2.) / n) * np.cos(i * j)
-        else:  # boundary_conditions == 'periodic'
-            if j == 0:
-                ev = np.sqrt(1. / n) * np.ones(n)
-            elif j + 1 == n and n % 2 == 0:
-                ev = np.sqrt(1. / n) * np.tile([1, -1], n//2)
-            else:
-                i = 2. * np.pi * (np.arange(n) + 0.5) / n
-                ev = np.sqrt(2. / n) * np.cos(i * np.floor((j + 1) / 2))
-        # make small values exact zeros correcting round-off errors
-        # due to symmetry of eigenvectors the exact 0. is correct 
-        ev[np.abs(ev) < np.finfo(np.float64).eps] = 0.
-        return ev
-
-    def _one_eve(self, k):
-        """Return 1 eigenvector in Nd with multi-index `j`
-        as a tensor product of the corresponding 1d eigenvectors. 
-        """
-        phi = [self._ev1d(j, n) for j, n in zip(k, self.grid_shape)]
-        result = phi[0]
-        for phi in phi[1:]:
-            result = np.tensordot(result, phi, axes=0)
-        return np.asarray(result).ravel()
-
-    def eigenvectors(self, m=None):
-        """Return the requested number of eigenvectors for ordered eigenvalues.
-        
-        Parameters
-        ----------
-        m : int, optional
-            The positive number of eigenvectors to return. If not provided,
-            then all eigenvectors will be returned.
-            
-        Returns
-        -------
-        eigenvectors : float array
-            An array with columns made of the requested `m` or all eigenvectors.
-            The columns are ordered according to the `m` ordered eigenvalues. 
-        """
-        _, ind = self._eigenvalue_ordering(m)
-        if m is None:
-            grid_shape_min = self.grid_shape
-        else:
-            grid_shape_min = min(self.grid_shape,
-                                tuple(np.ones_like(self.grid_shape) * m))
-
-        N_indices = np.unravel_index(ind, grid_shape_min)
-        N_indices = [tuple(x) for x in zip(*N_indices)]
-        eigenvectors_list = [self._one_eve(k) for k in N_indices]
-        return np.column_stack(eigenvectors_list)
-
-    def toarray(self):
-        """
-        Converts the Laplacian data to a dense array.
-
-        Returns
-        -------
-        L : ndarray
-            The shape is ``(N, N)`` where ``N = np.prod(grid_shape)``.
-
-        """
-        grid_shape = self.grid_shape
-        n = np.prod(grid_shape)
-        L = np.zeros([n, n], dtype=np.int8)
-        # Scratch arrays
-        L_i = np.empty_like(L)
-        Ltemp = np.empty_like(L)
-
-        for ind, dim in enumerate(grid_shape):
-            # Start zeroing out L_i
-            L_i[:] = 0
-            # Allocate the top left corner with the kernel of L_i
-            # Einsum returns writable view of arrays
-            np.einsum("ii->i", L_i[:dim, :dim])[:] = -2
-            np.einsum("ii->i", L_i[: dim - 1, 1:dim])[:] = 1
-            np.einsum("ii->i", L_i[1:dim, : dim - 1])[:] = 1
-
-            if self.boundary_conditions == 'neumann':
-                L_i[0, 0] = -1
-                L_i[dim - 1, dim - 1] = -1
-            elif self.boundary_conditions == 'periodic':
-                if dim > 1:
-                    L_i[0, dim - 1] += 1
-                    L_i[dim - 1, 0] += 1
-                else:
-                    L_i[0, 0] += 1
-
-            # kron is too slow for large matrices hence the next two tricks
-            # 1- kron(eye, mat) is block_diag(mat, mat, ...)
-            # 2- kron(mat, eye) can be performed by 4d stride trick
-
-            # 1-
-            new_dim = dim
-            # for block_diag we tile the top left portion on the diagonal
-            if ind > 0:
-                tiles = np.prod(grid_shape[:ind])
-                for j in range(1, tiles):
-                    L_i[j*dim:(j+1)*dim, j*dim:(j+1)*dim] = L_i[:dim, :dim]
-                    new_dim += dim
-            # 2-
-            # we need the keep L_i, but reset the array
-            Ltemp[:new_dim, :new_dim] = L_i[:new_dim, :new_dim]
-            tiles = int(np.prod(grid_shape[ind+1:]))
-            # Zero out the top left, the rest is already 0
-            L_i[:new_dim, :new_dim] = 0
-            idx = [x for x in range(tiles)]
-            L_i.reshape(
-                (new_dim, tiles,
-                 new_dim, tiles)
-                )[:, idx, :, idx] = Ltemp[:new_dim, :new_dim]
-
-            L += L_i
-
-        return L.astype(self.dtype)
-
-    def tosparse(self):
-        """
-        Constructs a sparse array from the Laplacian data. The returned sparse
-        array format is dependent on the selected boundary conditions.
-
-        Returns
-        -------
-        L : scipy.sparse.sparray
-            The shape is ``(N, N)`` where ``N = np.prod(grid_shape)``.
-
-        """
-        N = len(self.grid_shape)
-        p = np.prod(self.grid_shape)
-        L = dia_array((p, p), dtype=np.int8)
-
-        for i in range(N):
-            dim = self.grid_shape[i]
-            data = np.ones([3, dim], dtype=np.int8)
-            data[1, :] *= -2
-
-            if self.boundary_conditions == 'neumann':
-                data[1, 0] = -1
-                data[1, -1] = -1
-
-            L_i = dia_array((data, [-1, 0, 1]), shape=(dim, dim),
-                            dtype=np.int8
-                            )
-
-            if self.boundary_conditions == 'periodic':
-                t = dia_array((dim, dim), dtype=np.int8)
-                t.setdiag([1], k=-dim+1)
-                t.setdiag([1], k=dim-1)
-                L_i += t
-
-            for j in range(i):
-                L_i = kron(eye(self.grid_shape[j], dtype=np.int8), L_i)
-            for j in range(i + 1, N):
-                L_i = kron(L_i, eye(self.grid_shape[j], dtype=np.int8))
-            L += L_i
-        return L.astype(self.dtype)
-
-    def _matvec(self, x):
-        grid_shape = self.grid_shape
-        N = len(grid_shape)
-        X = x.reshape(grid_shape + (-1,))
-        Y = -2 * N * X
-        for i in range(N):
-            Y += np.roll(X, 1, axis=i)
-            Y += np.roll(X, -1, axis=i)
-            if self.boundary_conditions in ('neumann', 'dirichlet'):
-                Y[(slice(None),)*i + (0,) + (slice(None),)*(N-i-1)
-                  ] -= np.roll(X, 1, axis=i)[
-                    (slice(None),) * i + (0,) + (slice(None),) * (N-i-1)
-                ]
-                Y[
-                    (slice(None),) * i + (-1,) + (slice(None),) * (N-i-1)
-                ] -= np.roll(X, -1, axis=i)[
-                    (slice(None),) * i + (-1,) + (slice(None),) * (N-i-1)
-                ]
-
-                if self.boundary_conditions == 'neumann':
-                    Y[
-                        (slice(None),) * i + (0,) + (slice(None),) * (N-i-1)
-                    ] += np.roll(X, 0, axis=i)[
-                        (slice(None),) * i + (0,) + (slice(None),) * (N-i-1)
-                    ]
-                    Y[
-                        (slice(None),) * i + (-1,) + (slice(None),) * (N-i-1)
-                    ] += np.roll(X, 0, axis=i)[
-                        (slice(None),) * i + (-1,) + (slice(None),) * (N-i-1)
-                    ]
-
-        return Y.reshape(-1, X.shape[-1])
-
-    def _matmat(self, x):
-        return self._matvec(x)
-
-    def _adjoint(self):
-        return self
-
-    def _transpose(self):
-        return self
-
-
-class Sakurai(LinearOperator):
-    """
-    Construct a Sakurai matrix in various formats and its eigenvalues.
-
-    Constructs the "Sakurai" matrix motivated by reference [1]_:
-    square real symmetric positive definite and 5-diagonal
-    with the main digonal ``[5, 6, 6, ..., 6, 6, 5], the ``+1`` and ``-1``
-    diagonals filled with ``-4``, and the ``+2`` and ``-2`` diagonals
-    made of ``1``. Its eigenvalues are analytically known to be
-    ``16. * np.power(np.cos(0.5 * k * np.pi / (n + 1)), 4)``.
-    The matrix gets ill-conditioned with its size growing.
-    It is useful for testing and benchmarking sparse eigenvalue solvers
-    especially those taking advantage of its banded 5-diagonal structure.
-    See the notes below for details.
-
-    Parameters
-    ----------
-    n : int
-        The size of the matrix.
-    dtype : dtype
-        Numerical type of the array. Default is ``np.int8``.
-
-    Methods
-    -------
-    toarray()
-        Construct a dense array from Laplacian data
-    tosparse()
-        Construct a sparse array from Laplacian data
-    tobanded()
-        The Sakurai matrix in the format for banded symmetric matrices,
-        i.e., (3, n) ndarray with 3 upper diagonals
-        placing the main diagonal at the bottom.
-    eigenvalues
-        All eigenvalues of the Sakurai matrix ordered ascending.
-
-    Notes
-    -----
-    Reference [1]_ introduces a generalized eigenproblem for the matrix pair
-    `A` and `B` where `A` is the identity so we turn it into an eigenproblem
-    just for the matrix `B` that this function outputs in various formats
-    together with its eigenvalues.
-    
-    .. versionadded:: 1.12.0
-
-    References
-    ----------
-    .. [1] T. Sakurai, H. Tadano, Y. Inadomi, and U. Nagashima,
-       "A moment-based method for large-scale generalized
-       eigenvalue problems",
-       Appl. Num. Anal. Comp. Math. Vol. 1 No. 2 (2004).
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse.linalg._special_sparse_arrays import Sakurai
-    >>> from scipy.linalg import eig_banded
-    >>> n = 6
-    >>> sak = Sakurai(n)
-
-    Since all matrix entries are small integers, ``'int8'`` is
-    the default dtype for storing matrix representations.
-
-    >>> sak.toarray()
-    array([[ 5, -4,  1,  0,  0,  0],
-           [-4,  6, -4,  1,  0,  0],
-           [ 1, -4,  6, -4,  1,  0],
-           [ 0,  1, -4,  6, -4,  1],
-           [ 0,  0,  1, -4,  6, -4],
-           [ 0,  0,  0,  1, -4,  5]], dtype=int8)
-    >>> sak.tobanded()
-    array([[ 1,  1,  1,  1,  1,  1],
-           [-4, -4, -4, -4, -4, -4],
-           [ 5,  6,  6,  6,  6,  5]], dtype=int8)
-    >>> sak.tosparse()
-    
-    >>> np.array_equal(sak.dot(np.eye(n)), sak.tosparse().toarray())
-    True
-    >>> sak.eigenvalues()
-    array([0.03922866, 0.56703972, 2.41789479, 5.97822974,
-           10.54287655, 14.45473055])
-    >>> sak.eigenvalues(2)
-    array([0.03922866, 0.56703972])
-
-    The banded form can be used in scipy functions for banded matrices, e.g.,
-
-    >>> e = eig_banded(sak.tobanded(), eigvals_only=True)
-    >>> np.allclose(sak.eigenvalues, e, atol= n * n * n * np.finfo(float).eps)
-    True
-
-    """
-    def __init__(self, n, dtype=np.int8):
-        self.n = n
-        self.dtype = dtype
-        shape = (n, n)
-        super().__init__(dtype, shape)
-
-    def eigenvalues(self, m=None):
-        """Return the requested number of eigenvalues.
-        
-        Parameters
-        ----------
-        m : int, optional
-            The positive number of smallest eigenvalues to return.
-            If not provided, then all eigenvalues will be returned.
-            
-        Returns
-        -------
-        eigenvalues : `np.float64` array
-            The requested `m` smallest or all eigenvalues, in ascending order.
-        """
-        if m is None:
-            m = self.n
-        k = np.arange(self.n + 1 -m, self.n + 1)
-        return np.flip(16. * np.power(np.cos(0.5 * k * np.pi / (self.n + 1)), 4))
-
-    def tobanded(self):
-        """
-        Construct the Sakurai matrix as a banded array.
-        """
-        d0 = np.r_[5, 6 * np.ones(self.n - 2, dtype=self.dtype), 5]
-        d1 = -4 * np.ones(self.n, dtype=self.dtype)
-        d2 = np.ones(self.n, dtype=self.dtype)
-        return np.array([d2, d1, d0]).astype(self.dtype)
-
-    def tosparse(self):
-        """
-        Construct the Sakurai matrix is a sparse format.
-        """
-        from scipy.sparse import spdiags
-        d = self.tobanded()
-        # the banded format has the main diagonal at the bottom
-        # `spdiags` has no `dtype` parameter so inherits dtype from banded
-        return spdiags([d[0], d[1], d[2], d[1], d[0]], [-2, -1, 0, 1, 2],
-                       self.n, self.n)
-
-    def toarray(self):
-        return self.tosparse().toarray()
-    
-    def _matvec(self, x):
-        """
-        Construct matrix-free callable banded-matrix-vector multiplication by
-        the Sakurai matrix without constructing or storing the matrix itself
-        using the knowledge of its entries and the 5-diagonal format.
-        """
-        x = x.reshape(self.n, -1)
-        result_dtype = np.promote_types(x.dtype, self.dtype)
-        sx = np.zeros_like(x, dtype=result_dtype)
-        sx[0, :] = 5 * x[0, :] - 4 * x[1, :] + x[2, :]
-        sx[-1, :] = 5 * x[-1, :] - 4 * x[-2, :] + x[-3, :]
-        sx[1: -1, :] = (6 * x[1: -1, :] - 4 * (x[:-2, :] + x[2:, :])
-                      + np.pad(x[:-3, :], ((1, 0), (0, 0)))
-                      + np.pad(x[3:, :], ((0, 1), (0, 0))))
-        return sx
-
-    def _matmat(self, x):
-        """
-        Construct matrix-free callable matrix-matrix multiplication by
-        the Sakurai matrix without constructing or storing the matrix itself
-        by reusing the ``_matvec(x)`` that supports both 1D and 2D arrays ``x``.
-        """        
-        return self._matvec(x)
-
-    def _adjoint(self):
-        return self
-
-    def _transpose(self):
-        return self
-
-
-class MikotaM(LinearOperator):
-    """
-    Construct a mass matrix in various formats of Mikota pair.
-
-    The mass matrix `M` is square real diagonal
-    positive definite with entries that are reciprocal to integers.
-
-    Parameters
-    ----------
-    shape : tuple of int
-        The shape of the matrix.
-    dtype : dtype
-        Numerical type of the array. Default is ``np.float64``.
-
-    Methods
-    -------
-    toarray()
-        Construct a dense array from Mikota data
-    tosparse()
-        Construct a sparse array from Mikota data
-    tobanded()
-        The format for banded symmetric matrices,
-        i.e., (1, n) ndarray with the main diagonal.
-    """
-    def __init__(self, shape, dtype=np.float64):
-        self.shape = shape
-        self.dtype = dtype
-        super().__init__(dtype, shape)
-
-    def _diag(self):
-        # The matrix is constructed from its diagonal 1 / [1, ..., N+1];
-        # compute in a function to avoid duplicated code & storage footprint
-        return (1. / np.arange(1, self.shape[0] + 1)).astype(self.dtype)
-
-    def tobanded(self):
-        return self._diag()
-
-    def tosparse(self):
-        from scipy.sparse import diags
-        return diags([self._diag()], [0], shape=self.shape, dtype=self.dtype)
-
-    def toarray(self):
-        return np.diag(self._diag()).astype(self.dtype)
-
-    def _matvec(self, x):
-        """
-        Construct matrix-free callable banded-matrix-vector multiplication by
-        the Mikota mass matrix without constructing or storing the matrix itself
-        using the knowledge of its entries and the diagonal format.
-        """
-        x = x.reshape(self.shape[0], -1)
-        return self._diag()[:, np.newaxis] * x
-
-    def _matmat(self, x):
-        """
-        Construct matrix-free callable matrix-matrix multiplication by
-        the Mikota mass matrix without constructing or storing the matrix itself
-        by reusing the ``_matvec(x)`` that supports both 1D and 2D arrays ``x``.
-        """     
-        return self._matvec(x)
-
-    def _adjoint(self):
-        return self
-
-    def _transpose(self):
-        return self
-
-
-class MikotaK(LinearOperator):
-    """
-    Construct a stiffness matrix in various formats of Mikota pair.
-
-    The stiffness matrix `K` is square real tri-diagonal symmetric
-    positive definite with integer entries. 
-
-    Parameters
-    ----------
-    shape : tuple of int
-        The shape of the matrix.
-    dtype : dtype
-        Numerical type of the array. Default is ``np.int32``.
-
-    Methods
-    -------
-    toarray()
-        Construct a dense array from Mikota data
-    tosparse()
-        Construct a sparse array from Mikota data
-    tobanded()
-        The format for banded symmetric matrices,
-        i.e., (2, n) ndarray with 2 upper diagonals
-        placing the main diagonal at the bottom.
-    """
-    def __init__(self, shape, dtype=np.int32):
-        self.shape = shape
-        self.dtype = dtype
-        super().__init__(dtype, shape)
-        # The matrix is constructed from its diagonals;
-        # we precompute these to avoid duplicating the computation
-        n = shape[0]
-        self._diag0 = np.arange(2 * n - 1, 0, -2, dtype=self.dtype)
-        self._diag1 = - np.arange(n - 1, 0, -1, dtype=self.dtype)
-
-    def tobanded(self):
-        return np.array([np.pad(self._diag1, (1, 0), 'constant'), self._diag0])
-
-    def tosparse(self):
-        from scipy.sparse import diags
-        return diags([self._diag1, self._diag0, self._diag1], [-1, 0, 1],
-                     shape=self.shape, dtype=self.dtype)
-
-    def toarray(self):
-        return self.tosparse().toarray()
-
-    def _matvec(self, x):
-        """
-        Construct matrix-free callable banded-matrix-vector multiplication by
-        the Mikota stiffness matrix without constructing or storing the matrix
-        itself using the knowledge of its entries and the 3-diagonal format.
-        """
-        x = x.reshape(self.shape[0], -1)
-        result_dtype = np.promote_types(x.dtype, self.dtype)
-        kx = np.zeros_like(x, dtype=result_dtype)
-        d1 = self._diag1
-        d0 = self._diag0
-        kx[0, :] = d0[0] * x[0, :] + d1[0] * x[1, :]
-        kx[-1, :] = d1[-1] * x[-2, :] + d0[-1] * x[-1, :]
-        kx[1: -1, :] = (d1[:-1, None] * x[: -2, :]
-                        + d0[1: -1, None] * x[1: -1, :]
-                        + d1[1:, None] * x[2:, :])
-        return kx
-
-    def _matmat(self, x):
-        """
-        Construct matrix-free callable matrix-matrix multiplication by
-        the Stiffness mass matrix without constructing or storing the matrix itself
-        by reusing the ``_matvec(x)`` that supports both 1D and 2D arrays ``x``.
-        """  
-        return self._matvec(x)
-
-    def _adjoint(self):
-        return self
-
-    def _transpose(self):
-        return self
-
-
-class MikotaPair:
-    """
-    Construct the Mikota pair of matrices in various formats and
-    eigenvalues of the generalized eigenproblem with them.
-
-    The Mikota pair of matrices [1, 2]_ models a vibration problem
-    of a linear mass-spring system with the ends attached where
-    the stiffness of the springs and the masses increase along
-    the system length such that vibration frequencies are subsequent
-    integers 1, 2, ..., `n` where `n` is the number of the masses. Thus,
-    eigenvalues of the generalized eigenvalue problem for
-    the matrix pair `K` and `M` where `K` is the system stiffness matrix
-    and `M` is the system mass matrix are the squares of the integers,
-    i.e., 1, 4, 9, ..., ``n * n``.
-
-    The stiffness matrix `K` is square real tri-diagonal symmetric
-    positive definite. The mass matrix `M` is diagonal with diagonal
-    entries 1, 1/2, 1/3, ...., ``1/n``. Both matrices get
-    ill-conditioned with `n` growing.
-
-    Parameters
-    ----------
-    n : int
-        The size of the matrices of the Mikota pair.
-    dtype : dtype
-        Numerical type of the array. Default is ``np.float64``.
-
-    Attributes
-    ----------
-    eigenvalues : 1D ndarray, ``np.uint64``
-        All eigenvalues of the Mikota pair ordered ascending.
-
-    Methods
-    -------
-    MikotaK()
-        A `LinearOperator` custom object for the stiffness matrix.
-    MikotaM()
-        A `LinearOperator` custom object for the mass matrix.
-    
-    .. versionadded:: 1.12.0
-
-    References
-    ----------
-    .. [1] J. Mikota, "Frequency tuning of chain structure multibody oscillators
-       to place the natural frequencies at omega1 and N-1 integer multiples
-       omega2,..., omegaN", Z. Angew. Math. Mech. 81 (2001), S2, S201-S202.
-       Appl. Num. Anal. Comp. Math. Vol. 1 No. 2 (2004).
-    .. [2] Peter C. Muller and Metin Gurgoze,
-       "Natural frequencies of a multi-degree-of-freedom vibration system",
-       Proc. Appl. Math. Mech. 6, 319-320 (2006).
-       http://dx.doi.org/10.1002/pamm.200610141.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.sparse.linalg._special_sparse_arrays import MikotaPair
-    >>> n = 6
-    >>> mik = MikotaPair(n)
-    >>> mik_k = mik.k
-    >>> mik_m = mik.m
-    >>> mik_k.toarray()
-    array([[11., -5.,  0.,  0.,  0.,  0.],
-           [-5.,  9., -4.,  0.,  0.,  0.],
-           [ 0., -4.,  7., -3.,  0.,  0.],
-           [ 0.,  0., -3.,  5., -2.,  0.],
-           [ 0.,  0.,  0., -2.,  3., -1.],
-           [ 0.,  0.,  0.,  0., -1.,  1.]])
-    >>> mik_k.tobanded()
-    array([[ 0., -5., -4., -3., -2., -1.],
-           [11.,  9.,  7.,  5.,  3.,  1.]])
-    >>> mik_m.tobanded()
-    array([1.        , 0.5       , 0.33333333, 0.25      , 0.2       ,
-        0.16666667])
-    >>> mik_k.tosparse()
-    
-    >>> mik_m.tosparse()
-    
-    >>> np.array_equal(mik_k(np.eye(n)), mik_k.toarray())
-    True
-    >>> np.array_equal(mik_m(np.eye(n)), mik_m.toarray())
-    True
-    >>> mik.eigenvalues()
-    array([ 1,  4,  9, 16, 25, 36])  
-    >>> mik.eigenvalues(2)
-    array([ 1,  4])
-
-    """
-    def __init__(self, n, dtype=np.float64):
-        self.n = n
-        self.dtype = dtype
-        self.shape = (n, n)
-        self.m = MikotaM(self.shape, self.dtype)
-        self.k = MikotaK(self.shape, self.dtype)
-
-    def eigenvalues(self, m=None):
-        """Return the requested number of eigenvalues.
-        
-        Parameters
-        ----------
-        m : int, optional
-            The positive number of smallest eigenvalues to return.
-            If not provided, then all eigenvalues will be returned.
-            
-        Returns
-        -------
-        eigenvalues : `np.uint64` array
-            The requested `m` smallest or all eigenvalues, in ascending order.
-        """
-        if m is None:
-            m = self.n
-        arange_plus1 = np.arange(1, m + 1, dtype=np.uint64)
-        return arange_plus1 * arange_plus1
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_svdp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_svdp.py
deleted file mode 100644
index 9b85d6c7eefe59c7049f42e0c6ff00331085afa0..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/_svdp.py
+++ /dev/null
@@ -1,315 +0,0 @@
-"""
-Python wrapper for PROPACK
---------------------------
-
-PROPACK is a collection of Fortran routines for iterative computation
-of partial SVDs of large matrices or linear operators.
-
-Based on BSD licensed pypropack project:
-  http://github.com/jakevdp/pypropack
-  Author: Jake Vanderplas 
-
-PROPACK source is BSD licensed, and available at
-  http://soi.stanford.edu/~rmunk/PROPACK/
-"""
-
-__all__ = ['_svdp']
-
-import numpy as np
-
-from scipy._lib._util import check_random_state
-from scipy.sparse.linalg import aslinearoperator
-from scipy.linalg import LinAlgError
-
-from ._propack import _spropack  # type: ignore[attr-defined]
-from ._propack import _dpropack  # type: ignore[attr-defined]
-from ._propack import _cpropack  # type: ignore[attr-defined]
-from ._propack import _zpropack  # type: ignore[attr-defined]
-
-
-_lansvd_dict = {
-    'f': _spropack.slansvd,
-    'd': _dpropack.dlansvd,
-    'F': _cpropack.clansvd,
-    'D': _zpropack.zlansvd,
-}
-
-
-_lansvd_irl_dict = {
-    'f': _spropack.slansvd_irl,
-    'd': _dpropack.dlansvd_irl,
-    'F': _cpropack.clansvd_irl,
-    'D': _zpropack.zlansvd_irl,
-}
-
-_which_converter = {
-    'LM': 'L',
-    'SM': 'S',
-}
-
-
-class _AProd:
-    """
-    Wrapper class for linear operator
-
-    The call signature of the __call__ method matches the callback of
-    the PROPACK routines.
-    """
-    def __init__(self, A):
-        try:
-            self.A = aslinearoperator(A)
-        except TypeError:
-            self.A = aslinearoperator(np.asarray(A))
-
-    def __call__(self, transa, m, n, x, y, sparm, iparm):
-        if transa == 'n':
-            y[:] = self.A.matvec(x)
-        else:
-            y[:] = self.A.rmatvec(x)
-
-    @property
-    def shape(self):
-        return self.A.shape
-
-    @property
-    def dtype(self):
-        try:
-            return self.A.dtype
-        except AttributeError:
-            return self.A.matvec(np.zeros(self.A.shape[1])).dtype
-
-
-def _svdp(A, k, which='LM', irl_mode=True, kmax=None,
-          compute_u=True, compute_v=True, v0=None, full_output=False, tol=0,
-          delta=None, eta=None, anorm=0, cgs=False, elr=True,
-          min_relgap=0.002, shifts=None, maxiter=None, random_state=None):
-    """
-    Compute the singular value decomposition of a linear operator using PROPACK
-
-    Parameters
-    ----------
-    A : array_like, sparse matrix, or LinearOperator
-        Operator for which SVD will be computed.  If `A` is a LinearOperator
-        object, it must define both ``matvec`` and ``rmatvec`` methods.
-    k : int
-        Number of singular values/vectors to compute
-    which : {"LM", "SM"}
-        Which singular triplets to compute:
-        - 'LM': compute triplets corresponding to the `k` largest singular
-                values
-        - 'SM': compute triplets corresponding to the `k` smallest singular
-                values
-        `which='SM'` requires `irl_mode=True`.  Computes largest singular
-        values by default.
-    irl_mode : bool, optional
-        If `True`, then compute SVD using IRL (implicitly restarted Lanczos)
-        mode.  Default is `True`.
-    kmax : int, optional
-        Maximal number of iterations / maximal dimension of the Krylov
-        subspace. Default is ``10 * k``.
-    compute_u : bool, optional
-        If `True` (default) then compute left singular vectors, `u`.
-    compute_v : bool, optional
-        If `True` (default) then compute right singular vectors, `v`.
-    tol : float, optional
-        The desired relative accuracy for computed singular values.
-        If not specified, it will be set based on machine precision.
-    v0 : array_like, optional
-        Starting vector for iterations: must be of length ``A.shape[0]``.
-        If not specified, PROPACK will generate a starting vector.
-    full_output : bool, optional
-        If `True`, then return sigma_bound.  Default is `False`.
-    delta : float, optional
-        Level of orthogonality to maintain between Lanczos vectors.
-        Default is set based on machine precision.
-    eta : float, optional
-        Orthogonality cutoff.  During reorthogonalization, vectors with
-        component larger than `eta` along the Lanczos vector will be purged.
-        Default is set based on machine precision.
-    anorm : float, optional
-        Estimate of ``||A||``.  Default is `0`.
-    cgs : bool, optional
-        If `True`, reorthogonalization is done using classical Gram-Schmidt.
-        If `False` (default), it is done using modified Gram-Schmidt.
-    elr : bool, optional
-        If `True` (default), then extended local orthogonality is enforced
-        when obtaining singular vectors.
-    min_relgap : float, optional
-        The smallest relative gap allowed between any shift in IRL mode.
-        Default is `0.001`.  Accessed only if ``irl_mode=True``.
-    shifts : int, optional
-        Number of shifts per restart in IRL mode.  Default is determined
-        to satisfy ``k <= min(kmax-shifts, m, n)``.  Must be
-        >= 0, but choosing 0 might lead to performance degradation.
-        Accessed only if ``irl_mode=True``.
-    maxiter : int, optional
-        Maximum number of restarts in IRL mode.  Default is `1000`.
-        Accessed only if ``irl_mode=True``.
-    random_state : {None, int, `numpy.random.Generator`,
-                    `numpy.random.RandomState`}, optional
-
-        Pseudorandom number generator state used to generate resamples.
-
-        If `random_state` is ``None`` (or `np.random`), the
-        `numpy.random.RandomState` singleton is used.
-        If `random_state` is an int, a new ``RandomState`` instance is used,
-        seeded with `random_state`.
-        If `random_state` is already a ``Generator`` or ``RandomState``
-        instance then that instance is used.
-
-    Returns
-    -------
-    u : ndarray
-        The `k` largest (``which="LM"``) or smallest (``which="SM"``) left
-        singular vectors, ``shape == (A.shape[0], 3)``, returned only if
-        ``compute_u=True``.
-    sigma : ndarray
-        The top `k` singular values, ``shape == (k,)``
-    vt : ndarray
-        The `k` largest (``which="LM"``) or smallest (``which="SM"``) right
-        singular vectors, ``shape == (3, A.shape[1])``, returned only if
-        ``compute_v=True``.
-    sigma_bound : ndarray
-        the error bounds on the singular values sigma, returned only if
-        ``full_output=True``.
-
-    """
-    random_state = check_random_state(random_state)
-
-    which = which.upper()
-    if which not in {'LM', 'SM'}:
-        raise ValueError("`which` must be either 'LM' or 'SM'")
-    if not irl_mode and which == 'SM':
-        raise ValueError("`which`='SM' requires irl_mode=True")
-
-    aprod = _AProd(A)
-    typ = aprod.dtype.char
-
-    try:
-        lansvd_irl = _lansvd_irl_dict[typ]
-        lansvd = _lansvd_dict[typ]
-    except KeyError:
-        # work with non-supported types using native system precision
-        if np.iscomplexobj(np.empty(0, dtype=typ)):
-            typ = np.dtype(complex).char
-        else:
-            typ = np.dtype(float).char
-        lansvd_irl = _lansvd_irl_dict[typ]
-        lansvd = _lansvd_dict[typ]
-
-    m, n = aprod.shape
-    if (k < 1) or (k > min(m, n)):
-        raise ValueError("k must be positive and not greater than m or n")
-
-    if kmax is None:
-        kmax = 10*k
-    if maxiter is None:
-        maxiter = 1000
-
-    # guard against unnecessarily large kmax
-    kmax = min(m + 1, n + 1, kmax)
-    if kmax < k:
-        raise ValueError(
-            "kmax must be greater than or equal to k, "
-            f"but kmax ({kmax}) < k ({k})")
-
-    # convert python args to fortran args
-    jobu = 'y' if compute_u else 'n'
-    jobv = 'y' if compute_v else 'n'
-
-    # these will be the output arrays
-    u = np.zeros((m, kmax + 1), order='F', dtype=typ)
-    v = np.zeros((n, kmax), order='F', dtype=typ)
-
-    # Specify the starting vector.  if v0 is all zero, PROPACK will generate
-    # a random starting vector: the random seed cannot be controlled in that
-    # case, so we'll instead use numpy to generate a random vector
-    if v0 is None:
-        u[:, 0] = random_state.uniform(size=m)
-        if np.iscomplexobj(np.empty(0, dtype=typ)):  # complex type
-            u[:, 0] += 1j * random_state.uniform(size=m)
-    else:
-        try:
-            u[:, 0] = v0
-        except ValueError:
-            raise ValueError(f"v0 must be of length {m}")
-
-    # process options for the fit
-    if delta is None:
-        delta = np.sqrt(np.finfo(typ).eps)
-    if eta is None:
-        eta = np.finfo(typ).eps ** 0.75
-
-    if irl_mode:
-        doption = np.array((delta, eta, anorm, min_relgap), dtype=typ.lower())
-
-        # validate or find default shifts
-        if shifts is None:
-            shifts = kmax - k
-        if k > min(kmax - shifts, m, n):
-            raise ValueError('shifts must satisfy '
-                             'k <= min(kmax-shifts, m, n)!')
-        elif shifts < 0:
-            raise ValueError('shifts must be >= 0!')
-
-    else:
-        doption = np.array((delta, eta, anorm), dtype=typ.lower())
-
-    ioption = np.array((int(bool(cgs)), int(bool(elr))), dtype='i')
-
-    # If computing `u` or `v` (left and right singular vectors,
-    # respectively), `blocksize` controls how large a fraction of the
-    # work is done via fast BLAS level 3 operations.  A larger blocksize
-    # may lead to faster computation at the expense of greater memory
-    # consumption.  `blocksize` must be ``>= 1``.  Choosing blocksize
-    # of 16, but docs don't specify; it's almost surely a
-    # power of 2.
-    blocksize = 16
-
-    # Determine lwork & liwork:
-    # the required lengths are specified in the PROPACK documentation
-    if compute_u or compute_v:
-        lwork = m + n + 9*kmax + 5*kmax*kmax + 4 + max(
-            3*kmax*kmax + 4*kmax + 4,
-            blocksize*max(m, n))
-        liwork = 8*kmax
-    else:
-        lwork = m + n + 9*kmax + 2*kmax*kmax + 4 + max(m + n, 4*kmax + 4)
-        liwork = 2*kmax + 1
-    work = np.empty(lwork, dtype=typ.lower())
-    iwork = np.empty(liwork, dtype=np.int32)
-
-    # dummy arguments: these are passed to aprod, and not used in this wrapper
-    dparm = np.empty(1, dtype=typ.lower())
-    iparm = np.empty(1, dtype=np.int32)
-
-    if typ.isupper():
-        # PROPACK documentation is unclear on the required length of zwork.
-        # Use the same length Julia's wrapper uses
-        # see https://github.com/JuliaSmoothOptimizers/PROPACK.jl/
-        zwork = np.empty(m + n + 32*m, dtype=typ)
-        works = work, zwork, iwork
-    else:
-        works = work, iwork
-
-    if irl_mode:
-        u, sigma, bnd, v, info = lansvd_irl(_which_converter[which], jobu,
-                                            jobv, m, n, shifts, k, maxiter,
-                                            aprod, u, v, tol, *works, doption,
-                                            ioption, dparm, iparm)
-    else:
-        u, sigma, bnd, v, info = lansvd(jobu, jobv, m, n, k, aprod, u, v, tol,
-                                        *works, doption, ioption, dparm, iparm)
-
-    if info > 0:
-        raise LinAlgError(
-            f"An invariant subspace of dimension {info} was found.")
-    elif info < 0:
-        raise LinAlgError(
-            f"k={k} singular triplets did not converge within "
-            f"kmax={kmax} iterations")
-
-    # info == 0: The K largest (or smallest) singular triplets were computed
-    # successfully!
-
-    return u[:, :k], sigma, v[:, :k].conj().T, bnd
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/dsolve.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/dsolve.py
deleted file mode 100644
index 45139f6b280d047386652577d9e1c8d2aaeb7033..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/dsolve.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse.linalg` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'MatrixRankWarning', 'SuperLU', 'factorized',
-    'spilu', 'splu', 'spsolve',
-    'spsolve_triangular', 'use_solver', 'test'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse.linalg", module="dsolve",
-                                   private_modules=["_dsolve"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/eigen.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/eigen.py
deleted file mode 100644
index 588986d6650aad334e6a9a682ed76cef94295298..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/eigen.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse.linalg` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'ArpackError', 'ArpackNoConvergence', 'ArpackError',
-    'eigs', 'eigsh', 'lobpcg', 'svds', 'test'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse.linalg", module="eigen",
-                                   private_modules=["_eigen"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/interface.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/interface.py
deleted file mode 100644
index 24f40f185b1328b16e7e239e5a165cc6b1ed4317..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/interface.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse.linalg` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'LinearOperator', 'aslinearoperator',
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse.linalg", module="interface",
-                                   private_modules=["_interface"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/isolve.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/isolve.py
deleted file mode 100644
index e032ddd9c673be3bc8790adad3bdae1839127050..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/isolve.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse.linalg` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'bicg', 'bicgstab', 'cg', 'cgs', 'gcrotmk', 'gmres',
-    'lgmres', 'lsmr', 'lsqr',
-    'minres', 'qmr', 'tfqmr', 'test'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse.linalg", module="isolve",
-                                   private_modules=["_isolve"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/matfuncs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/matfuncs.py
deleted file mode 100644
index 8ed877ff1aa6f5a5466ce94729b9225dcce37b36..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/matfuncs.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse.linalg` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = ["expm", "inv", "spsolve", "LinearOperator"]  # noqa: F822
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse.linalg", module="matfuncs",
-                                   private_modules=["_matfuncs"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index c218d46ba281d48572015dabc9c68e0ad5f37306..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_expm_multiply.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_expm_multiply.cpython-310.pyc
deleted file mode 100644
index b1d7d2871c2a1b6838f6e1393d68b4bb9328f9cc..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_expm_multiply.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_interface.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_interface.cpython-310.pyc
deleted file mode 100644
index ef607729c920b9e454ba3c4d862382590482d848..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_interface.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_matfuncs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_matfuncs.cpython-310.pyc
deleted file mode 100644
index 6e9985a7bfe48fc93ff0231a6ae781e42aafbb4f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_matfuncs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_norm.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_norm.cpython-310.pyc
deleted file mode 100644
index a7af66930a21c31122675fbe97465d446520d80e..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_norm.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_onenormest.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_onenormest.cpython-310.pyc
deleted file mode 100644
index ede1dbdebc8c1c9543b4e87997016f379ecde302..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_onenormest.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_propack.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_propack.cpython-310.pyc
deleted file mode 100644
index e0cd82dcece996600bf221768588581751131172..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_propack.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_pydata_sparse.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_pydata_sparse.cpython-310.pyc
deleted file mode 100644
index 4ba82c0f01827c4c2a51cc1f87ad574af75b420d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_pydata_sparse.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_special_sparse_arrays.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_special_sparse_arrays.cpython-310.pyc
deleted file mode 100644
index 93a8d97ea642f1f09e8d0e8630ec51010704e0e3..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/__pycache__/test_special_sparse_arrays.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_expm_multiply.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_expm_multiply.py
deleted file mode 100644
index 858ce11b9d4b3370534dd6c8887676ff00501e17..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_expm_multiply.py
+++ /dev/null
@@ -1,349 +0,0 @@
-"""Test functions for the sparse.linalg._expm_multiply module."""
-from functools import partial
-from itertools import product
-
-import numpy as np
-import pytest
-from numpy.testing import (assert_allclose, assert_, assert_equal,
-                           suppress_warnings)
-from scipy.sparse import SparseEfficiencyWarning
-from scipy.sparse.linalg import aslinearoperator
-import scipy.linalg
-from scipy.sparse.linalg import expm as sp_expm
-from scipy.sparse.linalg._expm_multiply import (_theta, _compute_p_max,
-        _onenormest_matrix_power, expm_multiply, _expm_multiply_simple,
-        _expm_multiply_interval)
-from scipy._lib._util import np_long
-
-
-IMPRECISE = {np.single, np.csingle}
-REAL_DTYPES = {np.intc, np_long, np.longlong,
-               np.float32, np.float64, np.longdouble}
-COMPLEX_DTYPES = {np.complex64, np.complex128, np.clongdouble}
-# use sorted list to ensure fixed order of tests
-DTYPES = sorted(REAL_DTYPES ^ COMPLEX_DTYPES, key=str)
-
-
-def estimated(func):
-    """If trace is estimated, it should warn.
-
-    We warn that estimation of trace might impact performance.
-    All result have to be correct nevertheless!
-
-    """
-    def wrapped(*args, **kwds):
-        with pytest.warns(UserWarning,
-                          match="Trace of LinearOperator not available"):
-            return func(*args, **kwds)
-    return wrapped
-
-
-def less_than_or_close(a, b):
-    return np.allclose(a, b) or (a < b)
-
-
-class TestExpmActionSimple:
-    """
-    These tests do not consider the case of multiple time steps in one call.
-    """
-
-    def test_theta_monotonicity(self):
-        pairs = sorted(_theta.items())
-        for (m_a, theta_a), (m_b, theta_b) in zip(pairs[:-1], pairs[1:]):
-            assert_(theta_a < theta_b)
-
-    def test_p_max_default(self):
-        m_max = 55
-        expected_p_max = 8
-        observed_p_max = _compute_p_max(m_max)
-        assert_equal(observed_p_max, expected_p_max)
-
-    def test_p_max_range(self):
-        for m_max in range(1, 55+1):
-            p_max = _compute_p_max(m_max)
-            assert_(p_max*(p_max - 1) <= m_max + 1)
-            p_too_big = p_max + 1
-            assert_(p_too_big*(p_too_big - 1) > m_max + 1)
-
-    def test_onenormest_matrix_power(self):
-        np.random.seed(1234)
-        n = 40
-        nsamples = 10
-        for i in range(nsamples):
-            A = scipy.linalg.inv(np.random.randn(n, n))
-            for p in range(4):
-                if not p:
-                    M = np.identity(n)
-                else:
-                    M = np.dot(M, A)
-                estimated = _onenormest_matrix_power(A, p)
-                exact = np.linalg.norm(M, 1)
-                assert_(less_than_or_close(estimated, exact))
-                assert_(less_than_or_close(exact, 3*estimated))
-
-    def test_expm_multiply(self):
-        np.random.seed(1234)
-        n = 40
-        k = 3
-        nsamples = 10
-        for i in range(nsamples):
-            A = scipy.linalg.inv(np.random.randn(n, n))
-            B = np.random.randn(n, k)
-            observed = expm_multiply(A, B)
-            expected = np.dot(sp_expm(A), B)
-            assert_allclose(observed, expected)
-            observed = estimated(expm_multiply)(aslinearoperator(A), B)
-            assert_allclose(observed, expected)
-            traceA = np.trace(A)
-            observed = expm_multiply(aslinearoperator(A), B, traceA=traceA)
-            assert_allclose(observed, expected)
-
-    def test_matrix_vector_multiply(self):
-        np.random.seed(1234)
-        n = 40
-        nsamples = 10
-        for i in range(nsamples):
-            A = scipy.linalg.inv(np.random.randn(n, n))
-            v = np.random.randn(n)
-            observed = expm_multiply(A, v)
-            expected = np.dot(sp_expm(A), v)
-            assert_allclose(observed, expected)
-            observed = estimated(expm_multiply)(aslinearoperator(A), v)
-            assert_allclose(observed, expected)
-
-    def test_scaled_expm_multiply(self):
-        np.random.seed(1234)
-        n = 40
-        k = 3
-        nsamples = 10
-        for i, t in product(range(nsamples), [0.2, 1.0, 1.5]):
-            with np.errstate(invalid='ignore'):
-                A = scipy.linalg.inv(np.random.randn(n, n))
-                B = np.random.randn(n, k)
-                observed = _expm_multiply_simple(A, B, t=t)
-                expected = np.dot(sp_expm(t*A), B)
-                assert_allclose(observed, expected)
-                observed = estimated(_expm_multiply_simple)(
-                    aslinearoperator(A), B, t=t
-                )
-                assert_allclose(observed, expected)
-
-    def test_scaled_expm_multiply_single_timepoint(self):
-        np.random.seed(1234)
-        t = 0.1
-        n = 5
-        k = 2
-        A = np.random.randn(n, n)
-        B = np.random.randn(n, k)
-        observed = _expm_multiply_simple(A, B, t=t)
-        expected = sp_expm(t*A).dot(B)
-        assert_allclose(observed, expected)
-        observed = estimated(_expm_multiply_simple)(
-            aslinearoperator(A), B, t=t
-        )
-        assert_allclose(observed, expected)
-
-    def test_sparse_expm_multiply(self):
-        np.random.seed(1234)
-        n = 40
-        k = 3
-        nsamples = 10
-        for i in range(nsamples):
-            A = scipy.sparse.rand(n, n, density=0.05)
-            B = np.random.randn(n, k)
-            observed = expm_multiply(A, B)
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning,
-                           "splu converted its input to CSC format")
-                sup.filter(SparseEfficiencyWarning,
-                           "spsolve is more efficient when sparse b is in the"
-                           " CSC matrix format")
-                expected = sp_expm(A).dot(B)
-            assert_allclose(observed, expected)
-            observed = estimated(expm_multiply)(aslinearoperator(A), B)
-            assert_allclose(observed, expected)
-
-    def test_complex(self):
-        A = np.array([
-            [1j, 1j],
-            [0, 1j]], dtype=complex)
-        B = np.array([1j, 1j])
-        observed = expm_multiply(A, B)
-        expected = np.array([
-            1j * np.exp(1j) + 1j * (1j*np.cos(1) - np.sin(1)),
-            1j * np.exp(1j)], dtype=complex)
-        assert_allclose(observed, expected)
-        observed = estimated(expm_multiply)(aslinearoperator(A), B)
-        assert_allclose(observed, expected)
-
-
-class TestExpmActionInterval:
-
-    @pytest.mark.fail_slow(5)
-    def test_sparse_expm_multiply_interval(self):
-        np.random.seed(1234)
-        start = 0.1
-        stop = 3.2
-        n = 40
-        k = 3
-        endpoint = True
-        for num in (14, 13, 2):
-            A = scipy.sparse.rand(n, n, density=0.05)
-            B = np.random.randn(n, k)
-            v = np.random.randn(n)
-            for target in (B, v):
-                X = expm_multiply(A, target, start=start, stop=stop,
-                                  num=num, endpoint=endpoint)
-                samples = np.linspace(start=start, stop=stop,
-                                      num=num, endpoint=endpoint)
-                with suppress_warnings() as sup:
-                    sup.filter(SparseEfficiencyWarning,
-                               "splu converted its input to CSC format")
-                    sup.filter(SparseEfficiencyWarning,
-                               "spsolve is more efficient when sparse b is in"
-                               " the CSC matrix format")
-                    for solution, t in zip(X, samples):
-                        assert_allclose(solution, sp_expm(t*A).dot(target))
-
-    @pytest.mark.fail_slow(5)
-    def test_expm_multiply_interval_vector(self):
-        np.random.seed(1234)
-        interval = {'start': 0.1, 'stop': 3.2, 'endpoint': True}
-        for num, n in product([14, 13, 2], [1, 2, 5, 20, 40]):
-            A = scipy.linalg.inv(np.random.randn(n, n))
-            v = np.random.randn(n)
-            samples = np.linspace(num=num, **interval)
-            X = expm_multiply(A, v, num=num, **interval)
-            for solution, t in zip(X, samples):
-                assert_allclose(solution, sp_expm(t*A).dot(v))
-            # test for linear operator with unknown trace -> estimate trace
-            Xguess = estimated(expm_multiply)(aslinearoperator(A), v,
-                                              num=num, **interval)
-            # test for linear operator with given trace
-            Xgiven = expm_multiply(aslinearoperator(A), v, num=num, **interval,
-                                   traceA=np.trace(A))
-            # test robustness for linear operator with wrong trace
-            Xwrong = expm_multiply(aslinearoperator(A), v, num=num, **interval,
-                                   traceA=np.trace(A)*5)
-            for sol_guess, sol_given, sol_wrong, t in zip(Xguess, Xgiven,
-                                                          Xwrong, samples):
-                correct = sp_expm(t*A).dot(v)
-                assert_allclose(sol_guess, correct)
-                assert_allclose(sol_given, correct)
-                assert_allclose(sol_wrong, correct)
-
-    @pytest.mark.fail_slow(5)
-    def test_expm_multiply_interval_matrix(self):
-        np.random.seed(1234)
-        interval = {'start': 0.1, 'stop': 3.2, 'endpoint': True}
-        for num, n, k in product([14, 13, 2], [1, 2, 5, 20, 40], [1, 2]):
-            A = scipy.linalg.inv(np.random.randn(n, n))
-            B = np.random.randn(n, k)
-            samples = np.linspace(num=num, **interval)
-            X = expm_multiply(A, B, num=num, **interval)
-            for solution, t in zip(X, samples):
-                assert_allclose(solution, sp_expm(t*A).dot(B))
-            X = estimated(expm_multiply)(aslinearoperator(A), B, num=num,
-                                         **interval)
-            for solution, t in zip(X, samples):
-                assert_allclose(solution, sp_expm(t*A).dot(B))
-
-    def test_sparse_expm_multiply_interval_dtypes(self):
-        # Test A & B int
-        A = scipy.sparse.diags(np.arange(5),format='csr', dtype=int)
-        B = np.ones(5, dtype=int)
-        Aexpm = scipy.sparse.diags(np.exp(np.arange(5)),format='csr')
-        assert_allclose(expm_multiply(A,B,0,1)[-1], Aexpm.dot(B))
-
-        # Test A complex, B int
-        A = scipy.sparse.diags(-1j*np.arange(5),format='csr', dtype=complex)
-        B = np.ones(5, dtype=int)
-        Aexpm = scipy.sparse.diags(np.exp(-1j*np.arange(5)),format='csr')
-        assert_allclose(expm_multiply(A,B,0,1)[-1], Aexpm.dot(B))
-
-        # Test A int, B complex
-        A = scipy.sparse.diags(np.arange(5),format='csr', dtype=int)
-        B = np.full(5, 1j, dtype=complex)
-        Aexpm = scipy.sparse.diags(np.exp(np.arange(5)),format='csr')
-        assert_allclose(expm_multiply(A,B,0,1)[-1], Aexpm.dot(B))
-
-    def test_expm_multiply_interval_status_0(self):
-        self._help_test_specific_expm_interval_status(0)
-
-    def test_expm_multiply_interval_status_1(self):
-        self._help_test_specific_expm_interval_status(1)
-
-    def test_expm_multiply_interval_status_2(self):
-        self._help_test_specific_expm_interval_status(2)
-
-    def _help_test_specific_expm_interval_status(self, target_status):
-        np.random.seed(1234)
-        start = 0.1
-        stop = 3.2
-        num = 13
-        endpoint = True
-        n = 5
-        k = 2
-        nrepeats = 10
-        nsuccesses = 0
-        for num in [14, 13, 2] * nrepeats:
-            A = np.random.randn(n, n)
-            B = np.random.randn(n, k)
-            status = _expm_multiply_interval(A, B,
-                    start=start, stop=stop, num=num, endpoint=endpoint,
-                    status_only=True)
-            if status == target_status:
-                X, status = _expm_multiply_interval(A, B,
-                        start=start, stop=stop, num=num, endpoint=endpoint,
-                        status_only=False)
-                assert_equal(X.shape, (num, n, k))
-                samples = np.linspace(start=start, stop=stop,
-                        num=num, endpoint=endpoint)
-                for solution, t in zip(X, samples):
-                    assert_allclose(solution, sp_expm(t*A).dot(B))
-                nsuccesses += 1
-        if not nsuccesses:
-            msg = 'failed to find a status-' + str(target_status) + ' interval'
-            raise Exception(msg)
-
-
-@pytest.mark.parametrize("dtype_a", DTYPES)
-@pytest.mark.parametrize("dtype_b", DTYPES)
-@pytest.mark.parametrize("b_is_matrix", [False, True])
-def test_expm_multiply_dtype(dtype_a, dtype_b, b_is_matrix):
-    """Make sure `expm_multiply` handles all numerical dtypes correctly."""
-    assert_allclose_ = (partial(assert_allclose, rtol=1.2e-3, atol=1e-5)
-                        if {dtype_a, dtype_b} & IMPRECISE else assert_allclose)
-    rng = np.random.default_rng(1234)
-    # test data
-    n = 7
-    b_shape = (n, 3) if b_is_matrix else (n, )
-    if dtype_a in REAL_DTYPES:
-        A = scipy.linalg.inv(rng.random([n, n])).astype(dtype_a)
-    else:
-        A = scipy.linalg.inv(
-            rng.random([n, n]) + 1j*rng.random([n, n])
-        ).astype(dtype_a)
-    if dtype_b in REAL_DTYPES:
-        B = (2*rng.random(b_shape)).astype(dtype_b)
-    else:
-        B = (rng.random(b_shape) + 1j*rng.random(b_shape)).astype(dtype_b)
-
-    # single application
-    sol_mat = expm_multiply(A, B)
-    sol_op = estimated(expm_multiply)(aslinearoperator(A), B)
-    direct_sol = np.dot(sp_expm(A), B)
-    assert_allclose_(sol_mat, direct_sol)
-    assert_allclose_(sol_op, direct_sol)
-    sol_op = expm_multiply(aslinearoperator(A), B, traceA=np.trace(A))
-    assert_allclose_(sol_op, direct_sol)
-
-    # for time points
-    interval = {'start': 0.1, 'stop': 3.2, 'num': 13, 'endpoint': True}
-    samples = np.linspace(**interval)
-    X_mat = expm_multiply(A, B, **interval)
-    X_op = estimated(expm_multiply)(aslinearoperator(A), B, **interval)
-    for sol_mat, sol_op, t in zip(X_mat, X_op, samples):
-        direct_sol = sp_expm(t*A).dot(B)
-        assert_allclose_(sol_mat, direct_sol)
-        assert_allclose_(sol_op, direct_sol)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_interface.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_interface.py
deleted file mode 100644
index 217946e23358ec6250a03c6bb10e39615638b493..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_interface.py
+++ /dev/null
@@ -1,481 +0,0 @@
-"""Test functions for the sparse.linalg._interface module
-"""
-
-from functools import partial
-from itertools import product
-import operator
-from pytest import raises as assert_raises, warns
-from numpy.testing import assert_, assert_equal
-
-import numpy as np
-import scipy.sparse as sparse
-
-import scipy.sparse.linalg._interface as interface
-from scipy.sparse._sputils import matrix
-
-
-class TestLinearOperator:
-    def setup_method(self):
-        self.A = np.array([[1,2,3],
-                           [4,5,6]])
-        self.B = np.array([[1,2],
-                           [3,4],
-                           [5,6]])
-        self.C = np.array([[1,2],
-                           [3,4]])
-
-    def test_matvec(self):
-        def get_matvecs(A):
-            return [{
-                        'shape': A.shape,
-                        'matvec': lambda x: np.dot(A, x).reshape(A.shape[0]),
-                        'rmatvec': lambda x: np.dot(A.T.conj(),
-                                                    x).reshape(A.shape[1])
-                    },
-                    {
-                        'shape': A.shape,
-                        'matvec': lambda x: np.dot(A, x),
-                        'rmatvec': lambda x: np.dot(A.T.conj(), x),
-                        'rmatmat': lambda x: np.dot(A.T.conj(), x),
-                        'matmat': lambda x: np.dot(A, x)
-                    }]
-
-        for matvecs in get_matvecs(self.A):
-            A = interface.LinearOperator(**matvecs)
-
-            assert_(A.args == ())
-
-            assert_equal(A.matvec(np.array([1,2,3])), [14,32])
-            assert_equal(A.matvec(np.array([[1],[2],[3]])), [[14],[32]])
-            assert_equal(A * np.array([1,2,3]), [14,32])
-            assert_equal(A * np.array([[1],[2],[3]]), [[14],[32]])
-            assert_equal(A.dot(np.array([1,2,3])), [14,32])
-            assert_equal(A.dot(np.array([[1],[2],[3]])), [[14],[32]])
-
-            assert_equal(A.matvec(matrix([[1],[2],[3]])), [[14],[32]])
-            assert_equal(A * matrix([[1],[2],[3]]), [[14],[32]])
-            assert_equal(A.dot(matrix([[1],[2],[3]])), [[14],[32]])
-
-            assert_equal((2*A)*[1,1,1], [12,30])
-            assert_equal((2 * A).rmatvec([1, 1]), [10, 14, 18])
-            assert_equal((2*A).H.matvec([1,1]), [10, 14, 18])
-            assert_equal((2*A)*[[1],[1],[1]], [[12],[30]])
-            assert_equal((2 * A).matmat([[1], [1], [1]]), [[12], [30]])
-            assert_equal((A*2)*[1,1,1], [12,30])
-            assert_equal((A*2)*[[1],[1],[1]], [[12],[30]])
-            assert_equal((2j*A)*[1,1,1], [12j,30j])
-            assert_equal((A+A)*[1,1,1], [12, 30])
-            assert_equal((A + A).rmatvec([1, 1]), [10, 14, 18])
-            assert_equal((A+A).H.matvec([1,1]), [10, 14, 18])
-            assert_equal((A+A)*[[1],[1],[1]], [[12], [30]])
-            assert_equal((A+A).matmat([[1],[1],[1]]), [[12], [30]])
-            assert_equal((-A)*[1,1,1], [-6,-15])
-            assert_equal((-A)*[[1],[1],[1]], [[-6],[-15]])
-            assert_equal((A-A)*[1,1,1], [0,0])
-            assert_equal((A - A) * [[1], [1], [1]], [[0], [0]])
-
-            X = np.array([[1, 2], [3, 4]])
-            # A_asarray = np.array([[1, 2, 3], [4, 5, 6]])
-            assert_equal((2 * A).rmatmat(X), np.dot((2 * self.A).T, X))
-            assert_equal((A * 2).rmatmat(X), np.dot((self.A * 2).T, X))
-            assert_equal((2j * A).rmatmat(X),
-                         np.dot((2j * self.A).T.conj(), X))
-            assert_equal((A * 2j).rmatmat(X),
-                         np.dot((self.A * 2j).T.conj(), X))
-            assert_equal((A + A).rmatmat(X),
-                         np.dot((self.A + self.A).T, X))
-            assert_equal((A + 2j * A).rmatmat(X),
-                         np.dot((self.A + 2j * self.A).T.conj(), X))
-            assert_equal((-A).rmatmat(X), np.dot((-self.A).T, X))
-            assert_equal((A - A).rmatmat(X),
-                         np.dot((self.A - self.A).T, X))
-            assert_equal((2j * A).rmatmat(2j * X),
-                         np.dot((2j * self.A).T.conj(), 2j * X))
-
-            z = A+A
-            assert_(len(z.args) == 2 and z.args[0] is A and z.args[1] is A)
-            z = 2*A
-            assert_(len(z.args) == 2 and z.args[0] is A and z.args[1] == 2)
-
-            assert_(isinstance(A.matvec([1, 2, 3]), np.ndarray))
-            assert_(isinstance(A.matvec(np.array([[1],[2],[3]])), np.ndarray))
-            assert_(isinstance(A * np.array([1,2,3]), np.ndarray))
-            assert_(isinstance(A * np.array([[1],[2],[3]]), np.ndarray))
-            assert_(isinstance(A.dot(np.array([1,2,3])), np.ndarray))
-            assert_(isinstance(A.dot(np.array([[1],[2],[3]])), np.ndarray))
-
-            assert_(isinstance(A.matvec(matrix([[1],[2],[3]])), np.ndarray))
-            assert_(isinstance(A * matrix([[1],[2],[3]]), np.ndarray))
-            assert_(isinstance(A.dot(matrix([[1],[2],[3]])), np.ndarray))
-
-            assert_(isinstance(2*A, interface._ScaledLinearOperator))
-            assert_(isinstance(2j*A, interface._ScaledLinearOperator))
-            assert_(isinstance(A+A, interface._SumLinearOperator))
-            assert_(isinstance(-A, interface._ScaledLinearOperator))
-            assert_(isinstance(A-A, interface._SumLinearOperator))
-            assert_(isinstance(A/2, interface._ScaledLinearOperator))
-            assert_(isinstance(A/2j, interface._ScaledLinearOperator))
-            assert_(((A * 3) / 3).args[0] is A)  # check for simplification
-
-            # Test that prefactor is of _ScaledLinearOperator is not mutated
-            # when the operator is multiplied by a number
-            result = A @ np.array([1, 2, 3])
-            B = A * 3
-            C = A / 5
-            assert_equal(A @ np.array([1, 2, 3]), result)
-
-            assert_((2j*A).dtype == np.complex128)
-
-            # Test division by non-scalar
-            msg = "Can only divide a linear operator by a scalar."
-            with assert_raises(ValueError, match=msg):
-                A / np.array([1, 2])
-
-            assert_raises(ValueError, A.matvec, np.array([1,2]))
-            assert_raises(ValueError, A.matvec, np.array([1,2,3,4]))
-            assert_raises(ValueError, A.matvec, np.array([[1],[2]]))
-            assert_raises(ValueError, A.matvec, np.array([[1],[2],[3],[4]]))
-
-            assert_raises(ValueError, lambda: A*A)
-            assert_raises(ValueError, lambda: A**2)
-
-        for matvecsA, matvecsB in product(get_matvecs(self.A),
-                                          get_matvecs(self.B)):
-            A = interface.LinearOperator(**matvecsA)
-            B = interface.LinearOperator(**matvecsB)
-            # AtimesB = np.array([[22, 28], [49, 64]])
-            AtimesB = self.A.dot(self.B)
-            X = np.array([[1, 2], [3, 4]])
-
-            assert_equal((A * B).rmatmat(X), np.dot((AtimesB).T, X))
-            assert_equal((2j * A * B).rmatmat(X),
-                         np.dot((2j * AtimesB).T.conj(), X))
-
-            assert_equal((A*B)*[1,1], [50,113])
-            assert_equal((A*B)*[[1],[1]], [[50],[113]])
-            assert_equal((A*B).matmat([[1],[1]]), [[50],[113]])
-
-            assert_equal((A * B).rmatvec([1, 1]), [71, 92])
-            assert_equal((A * B).H.matvec([1, 1]), [71, 92])
-
-            assert_(isinstance(A*B, interface._ProductLinearOperator))
-
-            assert_raises(ValueError, lambda: A+B)
-            assert_raises(ValueError, lambda: A**2)
-
-            z = A*B
-            assert_(len(z.args) == 2 and z.args[0] is A and z.args[1] is B)
-
-        for matvecsC in get_matvecs(self.C):
-            C = interface.LinearOperator(**matvecsC)
-            X = np.array([[1, 2], [3, 4]])
-
-            assert_equal(C.rmatmat(X), np.dot((self.C).T, X))
-            assert_equal((C**2).rmatmat(X),
-                         np.dot((np.dot(self.C, self.C)).T, X))
-
-            assert_equal((C**2)*[1,1], [17,37])
-            assert_equal((C**2).rmatvec([1, 1]), [22, 32])
-            assert_equal((C**2).H.matvec([1, 1]), [22, 32])
-            assert_equal((C**2).matmat([[1],[1]]), [[17],[37]])
-
-            assert_(isinstance(C**2, interface._PowerLinearOperator))
-
-    def test_matmul(self):
-        D = {'shape': self.A.shape,
-             'matvec': lambda x: np.dot(self.A, x).reshape(self.A.shape[0]),
-             'rmatvec': lambda x: np.dot(self.A.T.conj(),
-                                         x).reshape(self.A.shape[1]),
-             'rmatmat': lambda x: np.dot(self.A.T.conj(), x),
-             'matmat': lambda x: np.dot(self.A, x)}
-        A = interface.LinearOperator(**D)
-        B = np.array([[1 + 1j, 2, 3],
-                      [4, 5, 6],
-                      [7, 8, 9]])
-        b = B[0]
-
-        assert_equal(operator.matmul(A, b), A * b)
-        assert_equal(operator.matmul(A, b.reshape(-1, 1)), A * b.reshape(-1, 1))
-        assert_equal(operator.matmul(A, B), A * B)
-        assert_equal(operator.matmul(b, A.H), b * A.H)
-        assert_equal(operator.matmul(b.reshape(1, -1), A.H), b.reshape(1, -1) * A.H)
-        assert_equal(operator.matmul(B, A.H), B * A.H)
-        assert_raises(ValueError, operator.matmul, A, 2)
-        assert_raises(ValueError, operator.matmul, 2, A)
-
-
-class TestAsLinearOperator:
-    def setup_method(self):
-        self.cases = []
-
-        def make_cases(original, dtype):
-            cases = []
-
-            cases.append((matrix(original, dtype=dtype), original))
-            cases.append((np.array(original, dtype=dtype), original))
-            cases.append((sparse.csr_matrix(original, dtype=dtype), original))
-
-            # Test default implementations of _adjoint and _rmatvec, which
-            # refer to each other.
-            def mv(x, dtype):
-                y = original.dot(x)
-                if len(x.shape) == 2:
-                    y = y.reshape(-1, 1)
-                return y
-
-            def rmv(x, dtype):
-                return original.T.conj().dot(x)
-
-            class BaseMatlike(interface.LinearOperator):
-                args = ()
-
-                def __init__(self, dtype):
-                    self.dtype = np.dtype(dtype)
-                    self.shape = original.shape
-
-                def _matvec(self, x):
-                    return mv(x, self.dtype)
-
-            class HasRmatvec(BaseMatlike):
-                args = ()
-
-                def _rmatvec(self,x):
-                    return rmv(x, self.dtype)
-
-            class HasAdjoint(BaseMatlike):
-                args = ()
-
-                def _adjoint(self):
-                    shape = self.shape[1], self.shape[0]
-                    matvec = partial(rmv, dtype=self.dtype)
-                    rmatvec = partial(mv, dtype=self.dtype)
-                    return interface.LinearOperator(matvec=matvec,
-                                                    rmatvec=rmatvec,
-                                                    dtype=self.dtype,
-                                                    shape=shape)
-
-            class HasRmatmat(HasRmatvec):
-                def _matmat(self, x):
-                    return original.dot(x)
-
-                def _rmatmat(self, x):
-                    return original.T.conj().dot(x)
-
-            cases.append((HasRmatvec(dtype), original))
-            cases.append((HasAdjoint(dtype), original))
-            cases.append((HasRmatmat(dtype), original))
-            return cases
-
-        original = np.array([[1,2,3], [4,5,6]])
-        self.cases += make_cases(original, np.int32)
-        self.cases += make_cases(original, np.float32)
-        self.cases += make_cases(original, np.float64)
-        self.cases += [(interface.aslinearoperator(M).T, A.T)
-                       for M, A in make_cases(original.T, np.float64)]
-        self.cases += [(interface.aslinearoperator(M).H, A.T.conj())
-                       for M, A in make_cases(original.T, np.float64)]
-
-        original = np.array([[1, 2j, 3j], [4j, 5j, 6]])
-        self.cases += make_cases(original, np.complex128)
-        self.cases += [(interface.aslinearoperator(M).T, A.T)
-                       for M, A in make_cases(original.T, np.complex128)]
-        self.cases += [(interface.aslinearoperator(M).H, A.T.conj())
-                       for M, A in make_cases(original.T, np.complex128)]
-
-    def test_basic(self):
-
-        for M, A_array in self.cases:
-            A = interface.aslinearoperator(M)
-            M,N = A.shape
-
-            xs = [np.array([1, 2, 3]),
-                  np.array([[1], [2], [3]])]
-            ys = [np.array([1, 2]), np.array([[1], [2]])]
-
-            if A.dtype == np.complex128:
-                xs += [np.array([1, 2j, 3j]),
-                       np.array([[1], [2j], [3j]])]
-                ys += [np.array([1, 2j]), np.array([[1], [2j]])]
-
-            x2 = np.array([[1, 4], [2, 5], [3, 6]])
-
-            for x in xs:
-                assert_equal(A.matvec(x), A_array.dot(x))
-                assert_equal(A * x, A_array.dot(x))
-
-            assert_equal(A.matmat(x2), A_array.dot(x2))
-            assert_equal(A * x2, A_array.dot(x2))
-
-            for y in ys:
-                assert_equal(A.rmatvec(y), A_array.T.conj().dot(y))
-                assert_equal(A.T.matvec(y), A_array.T.dot(y))
-                assert_equal(A.H.matvec(y), A_array.T.conj().dot(y))
-
-            for y in ys:
-                if y.ndim < 2:
-                    continue
-                assert_equal(A.rmatmat(y), A_array.T.conj().dot(y))
-                assert_equal(A.T.matmat(y), A_array.T.dot(y))
-                assert_equal(A.H.matmat(y), A_array.T.conj().dot(y))
-
-            if hasattr(M,'dtype'):
-                assert_equal(A.dtype, M.dtype)
-
-            assert_(hasattr(A, 'args'))
-
-    def test_dot(self):
-
-        for M, A_array in self.cases:
-            A = interface.aslinearoperator(M)
-            M,N = A.shape
-
-            x0 = np.array([1, 2, 3])
-            x1 = np.array([[1], [2], [3]])
-            x2 = np.array([[1, 4], [2, 5], [3, 6]])
-
-            assert_equal(A.dot(x0), A_array.dot(x0))
-            assert_equal(A.dot(x1), A_array.dot(x1))
-            assert_equal(A.dot(x2), A_array.dot(x2))
-
-
-def test_repr():
-    A = interface.LinearOperator(shape=(1, 1), matvec=lambda x: 1)
-    repr_A = repr(A)
-    assert_('unspecified dtype' not in repr_A, repr_A)
-
-
-def test_identity():
-    ident = interface.IdentityOperator((3, 3))
-    assert_equal(ident * [1, 2, 3], [1, 2, 3])
-    assert_equal(ident.dot(np.arange(9).reshape(3, 3)).ravel(), np.arange(9))
-
-    assert_raises(ValueError, ident.matvec, [1, 2, 3, 4])
-
-
-def test_attributes():
-    A = interface.aslinearoperator(np.arange(16).reshape(4, 4))
-
-    def always_four_ones(x):
-        x = np.asarray(x)
-        assert_(x.shape == (3,) or x.shape == (3, 1))
-        return np.ones(4)
-
-    B = interface.LinearOperator(shape=(4, 3), matvec=always_four_ones)
-
-    for op in [A, B, A * B, A.H, A + A, B + B, A**4]:
-        assert_(hasattr(op, "dtype"))
-        assert_(hasattr(op, "shape"))
-        assert_(hasattr(op, "_matvec"))
-
-def matvec(x):
-    """ Needed for test_pickle as local functions are not pickleable """
-    return np.zeros(3)
-
-def test_pickle():
-    import pickle
-
-    for protocol in range(pickle.HIGHEST_PROTOCOL + 1):
-        A = interface.LinearOperator((3, 3), matvec)
-        s = pickle.dumps(A, protocol=protocol)
-        B = pickle.loads(s)
-
-        for k in A.__dict__:
-            assert_equal(getattr(A, k), getattr(B, k))
-
-def test_inheritance():
-    class Empty(interface.LinearOperator):
-        pass
-
-    with warns(RuntimeWarning, match="should implement at least"):
-        assert_raises(TypeError, Empty)
-
-    class Identity(interface.LinearOperator):
-        def __init__(self, n):
-            super().__init__(dtype=None, shape=(n, n))
-
-        def _matvec(self, x):
-            return x
-
-    id3 = Identity(3)
-    assert_equal(id3.matvec([1, 2, 3]), [1, 2, 3])
-    assert_raises(NotImplementedError, id3.rmatvec, [4, 5, 6])
-
-    class MatmatOnly(interface.LinearOperator):
-        def __init__(self, A):
-            super().__init__(A.dtype, A.shape)
-            self.A = A
-
-        def _matmat(self, x):
-            return self.A.dot(x)
-
-    mm = MatmatOnly(np.random.randn(5, 3))
-    assert_equal(mm.matvec(np.random.randn(3)).shape, (5,))
-
-def test_dtypes_of_operator_sum():
-    # gh-6078
-
-    mat_complex = np.random.rand(2,2) + 1j * np.random.rand(2,2)
-    mat_real = np.random.rand(2,2)
-
-    complex_operator = interface.aslinearoperator(mat_complex)
-    real_operator = interface.aslinearoperator(mat_real)
-
-    sum_complex = complex_operator + complex_operator
-    sum_real = real_operator + real_operator
-
-    assert_equal(sum_real.dtype, np.float64)
-    assert_equal(sum_complex.dtype, np.complex128)
-
-def test_no_double_init():
-    call_count = [0]
-
-    def matvec(v):
-        call_count[0] += 1
-        return v
-
-    # It should call matvec exactly once (in order to determine the
-    # operator dtype)
-    interface.LinearOperator((2, 2), matvec=matvec)
-    assert_equal(call_count[0], 1)
-
-def test_adjoint_conjugate():
-    X = np.array([[1j]])
-    A = interface.aslinearoperator(X)
-
-    B = 1j * A
-    Y = 1j * X
-
-    v = np.array([1])
-
-    assert_equal(B.dot(v), Y.dot(v))
-    assert_equal(B.H.dot(v), Y.T.conj().dot(v))
-
-def test_ndim():
-    X = np.array([[1]])
-    A = interface.aslinearoperator(X)
-    assert_equal(A.ndim, 2)
-
-def test_transpose_noconjugate():
-    X = np.array([[1j]])
-    A = interface.aslinearoperator(X)
-
-    B = 1j * A
-    Y = 1j * X
-
-    v = np.array([1])
-
-    assert_equal(B.dot(v), Y.dot(v))
-    assert_equal(B.T.dot(v), Y.T.dot(v))
-
-def test_sparse_matmat_exception():
-    A = interface.LinearOperator((2, 2), matvec=lambda x: x)
-    B = sparse.identity(2)
-    msg = "Unable to multiply a LinearOperator with a sparse matrix."
-    with assert_raises(TypeError, match=msg):
-        A @ B
-    with assert_raises(TypeError, match=msg):
-        B @ A
-    with assert_raises(ValueError):
-        A @ np.identity(4)
-    with assert_raises(ValueError):
-        np.identity(4) @ A
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_matfuncs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_matfuncs.py
deleted file mode 100644
index 5a5e8444db27b796fbc67cbf5939813ce51f8dca..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_matfuncs.py
+++ /dev/null
@@ -1,592 +0,0 @@
-#
-# Created by: Pearu Peterson, March 2002
-#
-""" Test functions for scipy.linalg._matfuncs module
-
-"""
-import math
-
-import numpy as np
-from numpy import array, eye, exp, random
-from numpy.testing import (
-        assert_allclose, assert_, assert_array_almost_equal, assert_equal,
-        assert_array_almost_equal_nulp, suppress_warnings)
-
-from scipy.sparse import csc_matrix, csc_array, SparseEfficiencyWarning
-from scipy.sparse._construct import eye as speye
-from scipy.sparse.linalg._matfuncs import (expm, _expm,
-        ProductOperator, MatrixPowerOperator,
-        _onenorm_matrix_power_nnm, matrix_power)
-from scipy.sparse._sputils import matrix
-from scipy.linalg import logm
-from scipy.special import factorial, binom
-import scipy.sparse
-import scipy.sparse.linalg
-
-
-def _burkardt_13_power(n, p):
-    """
-    A helper function for testing matrix functions.
-
-    Parameters
-    ----------
-    n : integer greater than 1
-        Order of the square matrix to be returned.
-    p : non-negative integer
-        Power of the matrix.
-
-    Returns
-    -------
-    out : ndarray representing a square matrix
-        A Forsythe matrix of order n, raised to the power p.
-
-    """
-    # Input validation.
-    if n != int(n) or n < 2:
-        raise ValueError('n must be an integer greater than 1')
-    n = int(n)
-    if p != int(p) or p < 0:
-        raise ValueError('p must be a non-negative integer')
-    p = int(p)
-
-    # Construct the matrix explicitly.
-    a, b = divmod(p, n)
-    large = np.power(10.0, -n*a)
-    small = large * np.power(10.0, -n)
-    return np.diag([large]*(n-b), b) + np.diag([small]*b, b-n)
-
-
-def test_onenorm_matrix_power_nnm():
-    np.random.seed(1234)
-    for n in range(1, 5):
-        for p in range(5):
-            M = np.random.random((n, n))
-            Mp = np.linalg.matrix_power(M, p)
-            observed = _onenorm_matrix_power_nnm(M, p)
-            expected = np.linalg.norm(Mp, 1)
-            assert_allclose(observed, expected)
-
-def test_matrix_power():
-    np.random.seed(1234)
-    row, col = np.random.randint(0, 4, size=(2, 6))
-    data = np.random.random(size=(6,))
-    Amat = csc_matrix((data, (row, col)), shape=(4, 4))
-    A = csc_array((data, (row, col)), shape=(4, 4))
-    Adense = A.toarray()
-    for power in (2, 5, 6):
-        Apow = matrix_power(A, power).toarray()
-        Amat_pow = (Amat**power).toarray()
-        Adense_pow = np.linalg.matrix_power(Adense, power)
-        assert_allclose(Apow, Adense_pow)
-        assert_allclose(Apow, Amat_pow)
-
-
-class TestExpM:
-    def test_zero_ndarray(self):
-        a = array([[0.,0],[0,0]])
-        assert_array_almost_equal(expm(a),[[1,0],[0,1]])
-
-    def test_zero_sparse(self):
-        a = csc_matrix([[0.,0],[0,0]])
-        assert_array_almost_equal(expm(a).toarray(),[[1,0],[0,1]])
-
-    def test_zero_matrix(self):
-        a = matrix([[0.,0],[0,0]])
-        assert_array_almost_equal(expm(a),[[1,0],[0,1]])
-
-    def test_misc_types(self):
-        A = expm(np.array([[1]]))
-        assert_allclose(expm(((1,),)), A)
-        assert_allclose(expm([[1]]), A)
-        assert_allclose(expm(matrix([[1]])), A)
-        assert_allclose(expm(np.array([[1]])), A)
-        assert_allclose(expm(csc_matrix([[1]])).toarray(), A)
-        B = expm(np.array([[1j]]))
-        assert_allclose(expm(((1j,),)), B)
-        assert_allclose(expm([[1j]]), B)
-        assert_allclose(expm(matrix([[1j]])), B)
-        assert_allclose(expm(csc_matrix([[1j]])).toarray(), B)
-
-    def test_bidiagonal_sparse(self):
-        A = csc_matrix([
-            [1, 3, 0],
-            [0, 1, 5],
-            [0, 0, 2]], dtype=float)
-        e1 = math.exp(1)
-        e2 = math.exp(2)
-        expected = np.array([
-            [e1, 3*e1, 15*(e2 - 2*e1)],
-            [0, e1, 5*(e2 - e1)],
-            [0, 0, e2]], dtype=float)
-        observed = expm(A).toarray()
-        assert_array_almost_equal(observed, expected)
-
-    def test_padecases_dtype_float(self):
-        for dtype in [np.float32, np.float64]:
-            for scale in [1e-2, 1e-1, 5e-1, 1, 10]:
-                A = scale * eye(3, dtype=dtype)
-                observed = expm(A)
-                expected = exp(scale, dtype=dtype) * eye(3, dtype=dtype)
-                assert_array_almost_equal_nulp(observed, expected, nulp=100)
-
-    def test_padecases_dtype_complex(self):
-        for dtype in [np.complex64, np.complex128]:
-            for scale in [1e-2, 1e-1, 5e-1, 1, 10]:
-                A = scale * eye(3, dtype=dtype)
-                observed = expm(A)
-                expected = exp(scale, dtype=dtype) * eye(3, dtype=dtype)
-                assert_array_almost_equal_nulp(observed, expected, nulp=100)
-
-    def test_padecases_dtype_sparse_float(self):
-        # float32 and complex64 lead to errors in spsolve/UMFpack
-        dtype = np.float64
-        for scale in [1e-2, 1e-1, 5e-1, 1, 10]:
-            a = scale * speye(3, 3, dtype=dtype, format='csc')
-            e = exp(scale, dtype=dtype) * eye(3, dtype=dtype)
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-                exact_onenorm = _expm(a, use_exact_onenorm=True).toarray()
-                inexact_onenorm = _expm(a, use_exact_onenorm=False).toarray()
-            assert_array_almost_equal_nulp(exact_onenorm, e, nulp=100)
-            assert_array_almost_equal_nulp(inexact_onenorm, e, nulp=100)
-
-    def test_padecases_dtype_sparse_complex(self):
-        # float32 and complex64 lead to errors in spsolve/UMFpack
-        dtype = np.complex128
-        for scale in [1e-2, 1e-1, 5e-1, 1, 10]:
-            a = scale * speye(3, 3, dtype=dtype, format='csc')
-            e = exp(scale) * eye(3, dtype=dtype)
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-                assert_array_almost_equal_nulp(expm(a).toarray(), e, nulp=100)
-
-    def test_logm_consistency(self):
-        random.seed(1234)
-        for dtype in [np.float64, np.complex128]:
-            for n in range(1, 10):
-                for scale in [1e-4, 1e-3, 1e-2, 1e-1, 1, 1e1, 1e2]:
-                    # make logm(A) be of a given scale
-                    A = (eye(n) + random.rand(n, n) * scale).astype(dtype)
-                    if np.iscomplexobj(A):
-                        A = A + 1j * random.rand(n, n) * scale
-                    assert_array_almost_equal(expm(logm(A)), A)
-
-    def test_integer_matrix(self):
-        Q = np.array([
-            [-3, 1, 1, 1],
-            [1, -3, 1, 1],
-            [1, 1, -3, 1],
-            [1, 1, 1, -3]])
-        assert_allclose(expm(Q), expm(1.0 * Q))
-
-    def test_integer_matrix_2(self):
-        # Check for integer overflows
-        Q = np.array([[-500, 500, 0, 0],
-                      [0, -550, 360, 190],
-                      [0, 630, -630, 0],
-                      [0, 0, 0, 0]], dtype=np.int16)
-        assert_allclose(expm(Q), expm(1.0 * Q))
-
-        Q = csc_matrix(Q)
-        assert_allclose(expm(Q).toarray(), expm(1.0 * Q).toarray())
-
-    def test_triangularity_perturbation(self):
-        # Experiment (1) of
-        # Awad H. Al-Mohy and Nicholas J. Higham (2012)
-        # Improved Inverse Scaling and Squaring Algorithms
-        # for the Matrix Logarithm.
-        A = np.array([
-            [3.2346e-1, 3e4, 3e4, 3e4],
-            [0, 3.0089e-1, 3e4, 3e4],
-            [0, 0, 3.221e-1, 3e4],
-            [0, 0, 0, 3.0744e-1]],
-            dtype=float)
-        A_logm = np.array([
-            [-1.12867982029050462e+00, 9.61418377142025565e+04,
-             -4.52485573953179264e+09, 2.92496941103871812e+14],
-            [0.00000000000000000e+00, -1.20101052953082288e+00,
-             9.63469687211303099e+04, -4.68104828911105442e+09],
-            [0.00000000000000000e+00, 0.00000000000000000e+00,
-             -1.13289322264498393e+00, 9.53249183094775653e+04],
-            [0.00000000000000000e+00, 0.00000000000000000e+00,
-             0.00000000000000000e+00, -1.17947533272554850e+00]],
-            dtype=float)
-        assert_allclose(expm(A_logm), A, rtol=1e-4)
-
-        # Perturb the upper triangular matrix by tiny amounts,
-        # so that it becomes technically not upper triangular.
-        random.seed(1234)
-        tiny = 1e-17
-        A_logm_perturbed = A_logm.copy()
-        A_logm_perturbed[1, 0] = tiny
-        with suppress_warnings() as sup:
-            sup.filter(RuntimeWarning, "Ill-conditioned.*")
-            A_expm_logm_perturbed = expm(A_logm_perturbed)
-        rtol = 1e-4
-        atol = 100 * tiny
-        assert_(not np.allclose(A_expm_logm_perturbed, A, rtol=rtol, atol=atol))
-
-    def test_burkardt_1(self):
-        # This matrix is diagonal.
-        # The calculation of the matrix exponential is simple.
-        #
-        # This is the first of a series of matrix exponential tests
-        # collected by John Burkardt from the following sources.
-        #
-        # Alan Laub,
-        # Review of "Linear System Theory" by Joao Hespanha,
-        # SIAM Review,
-        # Volume 52, Number 4, December 2010, pages 779--781.
-        #
-        # Cleve Moler and Charles Van Loan,
-        # Nineteen Dubious Ways to Compute the Exponential of a Matrix,
-        # Twenty-Five Years Later,
-        # SIAM Review,
-        # Volume 45, Number 1, March 2003, pages 3--49.
-        #
-        # Cleve Moler,
-        # Cleve's Corner: A Balancing Act for the Matrix Exponential,
-        # 23 July 2012.
-        #
-        # Robert Ward,
-        # Numerical computation of the matrix exponential
-        # with accuracy estimate,
-        # SIAM Journal on Numerical Analysis,
-        # Volume 14, Number 4, September 1977, pages 600--610.
-        exp1 = np.exp(1)
-        exp2 = np.exp(2)
-        A = np.array([
-            [1, 0],
-            [0, 2],
-            ], dtype=float)
-        desired = np.array([
-            [exp1, 0],
-            [0, exp2],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_2(self):
-        # This matrix is symmetric.
-        # The calculation of the matrix exponential is straightforward.
-        A = np.array([
-            [1, 3],
-            [3, 2],
-            ], dtype=float)
-        desired = np.array([
-            [39.322809708033859, 46.166301438885753],
-            [46.166301438885768, 54.711576854329110],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_3(self):
-        # This example is due to Laub.
-        # This matrix is ill-suited for the Taylor series approach.
-        # As powers of A are computed, the entries blow up too quickly.
-        exp1 = np.exp(1)
-        exp39 = np.exp(39)
-        A = np.array([
-            [0, 1],
-            [-39, -40],
-            ], dtype=float)
-        desired = np.array([
-            [
-                39/(38*exp1) - 1/(38*exp39),
-                -np.expm1(-38) / (38*exp1)],
-            [
-                39*np.expm1(-38) / (38*exp1),
-                -1/(38*exp1) + 39/(38*exp39)],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_4(self):
-        # This example is due to Moler and Van Loan.
-        # The example will cause problems for the series summation approach,
-        # as well as for diagonal Pade approximations.
-        A = np.array([
-            [-49, 24],
-            [-64, 31],
-            ], dtype=float)
-        U = np.array([[3, 1], [4, 2]], dtype=float)
-        V = np.array([[1, -1/2], [-2, 3/2]], dtype=float)
-        w = np.array([-17, -1], dtype=float)
-        desired = np.dot(U * np.exp(w), V)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_5(self):
-        # This example is due to Moler and Van Loan.
-        # This matrix is strictly upper triangular
-        # All powers of A are zero beyond some (low) limit.
-        # This example will cause problems for Pade approximations.
-        A = np.array([
-            [0, 6, 0, 0],
-            [0, 0, 6, 0],
-            [0, 0, 0, 6],
-            [0, 0, 0, 0],
-            ], dtype=float)
-        desired = np.array([
-            [1, 6, 18, 36],
-            [0, 1, 6, 18],
-            [0, 0, 1, 6],
-            [0, 0, 0, 1],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_6(self):
-        # This example is due to Moler and Van Loan.
-        # This matrix does not have a complete set of eigenvectors.
-        # That means the eigenvector approach will fail.
-        exp1 = np.exp(1)
-        A = np.array([
-            [1, 1],
-            [0, 1],
-            ], dtype=float)
-        desired = np.array([
-            [exp1, exp1],
-            [0, exp1],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_7(self):
-        # This example is due to Moler and Van Loan.
-        # This matrix is very close to example 5.
-        # Mathematically, it has a complete set of eigenvectors.
-        # Numerically, however, the calculation will be suspect.
-        exp1 = np.exp(1)
-        eps = np.spacing(1)
-        A = np.array([
-            [1 + eps, 1],
-            [0, 1 - eps],
-            ], dtype=float)
-        desired = np.array([
-            [exp1, exp1],
-            [0, exp1],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_8(self):
-        # This matrix was an example in Wikipedia.
-        exp4 = np.exp(4)
-        exp16 = np.exp(16)
-        A = np.array([
-            [21, 17, 6],
-            [-5, -1, -6],
-            [4, 4, 16],
-            ], dtype=float)
-        desired = np.array([
-            [13*exp16 - exp4, 13*exp16 - 5*exp4, 2*exp16 - 2*exp4],
-            [-9*exp16 + exp4, -9*exp16 + 5*exp4, -2*exp16 + 2*exp4],
-            [16*exp16, 16*exp16, 4*exp16],
-            ], dtype=float) * 0.25
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_9(self):
-        # This matrix is due to the NAG Library.
-        # It is an example for function F01ECF.
-        A = np.array([
-            [1, 2, 2, 2],
-            [3, 1, 1, 2],
-            [3, 2, 1, 2],
-            [3, 3, 3, 1],
-            ], dtype=float)
-        desired = np.array([
-            [740.7038, 610.8500, 542.2743, 549.1753],
-            [731.2510, 603.5524, 535.0884, 542.2743],
-            [823.7630, 679.4257, 603.5524, 610.8500],
-            [998.4355, 823.7630, 731.2510, 740.7038],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_10(self):
-        # This is Ward's example #1.
-        # It is defective and nonderogatory.
-        A = np.array([
-            [4, 2, 0],
-            [1, 4, 1],
-            [1, 1, 4],
-            ], dtype=float)
-        assert_allclose(sorted(scipy.linalg.eigvals(A)), (3, 3, 6))
-        desired = np.array([
-            [147.8666224463699, 183.7651386463682, 71.79703239999647],
-            [127.7810855231823, 183.7651386463682, 91.88256932318415],
-            [127.7810855231824, 163.6796017231806, 111.9681062463718],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_11(self):
-        # This is Ward's example #2.
-        # It is a symmetric matrix.
-        A = np.array([
-            [29.87942128909879, 0.7815750847907159, -2.289519314033932],
-            [0.7815750847907159, 25.72656945571064, 8.680737820540137],
-            [-2.289519314033932, 8.680737820540137, 34.39400925519054],
-            ], dtype=float)
-        assert_allclose(scipy.linalg.eigvalsh(A), (20, 30, 40))
-        desired = np.array([
-             [
-                 5.496313853692378E+15,
-                 -1.823188097200898E+16,
-                 -3.047577080858001E+16],
-             [
-                -1.823188097200899E+16,
-                6.060522870222108E+16,
-                1.012918429302482E+17],
-             [
-                -3.047577080858001E+16,
-                1.012918429302482E+17,
-                1.692944112408493E+17],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_12(self):
-        # This is Ward's example #3.
-        # Ward's algorithm has difficulty estimating the accuracy
-        # of its results.
-        A = np.array([
-            [-131, 19, 18],
-            [-390, 56, 54],
-            [-387, 57, 52],
-            ], dtype=float)
-        assert_allclose(sorted(scipy.linalg.eigvals(A)), (-20, -2, -1))
-        desired = np.array([
-            [-1.509644158793135, 0.3678794391096522, 0.1353352811751005],
-            [-5.632570799891469, 1.471517758499875, 0.4060058435250609],
-            [-4.934938326088363, 1.103638317328798, 0.5413411267617766],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_burkardt_13(self):
-        # This is Ward's example #4.
-        # This is a version of the Forsythe matrix.
-        # The eigenvector problem is badly conditioned.
-        # Ward's algorithm has difficulty estimating the accuracy
-        # of its results for this problem.
-        #
-        # Check the construction of one instance of this family of matrices.
-        A4_actual = _burkardt_13_power(4, 1)
-        A4_desired = [[0, 1, 0, 0],
-                      [0, 0, 1, 0],
-                      [0, 0, 0, 1],
-                      [1e-4, 0, 0, 0]]
-        assert_allclose(A4_actual, A4_desired)
-        # Check the expm for a few instances.
-        for n in (2, 3, 4, 10):
-            # Approximate expm using Taylor series.
-            # This works well for this matrix family
-            # because each matrix in the summation,
-            # even before dividing by the factorial,
-            # is entrywise positive with max entry 10**(-floor(p/n)*n).
-            k = max(1, int(np.ceil(16/n)))
-            desired = np.zeros((n, n), dtype=float)
-            for p in range(n*k):
-                Ap = _burkardt_13_power(n, p)
-                assert_equal(np.min(Ap), 0)
-                assert_allclose(np.max(Ap), np.power(10, -np.floor(p/n)*n))
-                desired += Ap / factorial(p)
-            actual = expm(_burkardt_13_power(n, 1))
-            assert_allclose(actual, desired)
-
-    def test_burkardt_14(self):
-        # This is Moler's example.
-        # This badly scaled matrix caused problems for MATLAB's expm().
-        A = np.array([
-            [0, 1e-8, 0],
-            [-(2e10 + 4e8/6.), -3, 2e10],
-            [200./3., 0, -200./3.],
-            ], dtype=float)
-        desired = np.array([
-            [0.446849468283175, 1.54044157383952e-09, 0.462811453558774],
-            [-5743067.77947947, -0.0152830038686819, -4526542.71278401],
-            [0.447722977849494, 1.54270484519591e-09, 0.463480648837651],
-            ], dtype=float)
-        actual = expm(A)
-        assert_allclose(actual, desired)
-
-    def test_pascal(self):
-        # Test pascal triangle.
-        # Nilpotent exponential, used to trigger a failure (gh-8029)
-
-        for scale in [1.0, 1e-3, 1e-6]:
-            for n in range(0, 80, 3):
-                sc = scale ** np.arange(n, -1, -1)
-                if np.any(sc < 1e-300):
-                    break
-
-                A = np.diag(np.arange(1, n + 1), -1) * scale
-                B = expm(A)
-
-                got = B
-                expected = binom(np.arange(n + 1)[:,None],
-                                 np.arange(n + 1)[None,:]) * sc[None,:] / sc[:,None]
-                atol = 1e-13 * abs(expected).max()
-                assert_allclose(got, expected, atol=atol)
-
-    def test_matrix_input(self):
-        # Large np.matrix inputs should work, gh-5546
-        A = np.zeros((200, 200))
-        A[-1,0] = 1
-        B0 = expm(A)
-        with suppress_warnings() as sup:
-            sup.filter(DeprecationWarning, "the matrix subclass.*")
-            sup.filter(PendingDeprecationWarning, "the matrix subclass.*")
-            B = expm(np.matrix(A))
-        assert_allclose(B, B0)
-
-    def test_exp_sinch_overflow(self):
-        # Check overflow in intermediate steps is fixed (gh-11839)
-        L = np.array([[1.0, -0.5, -0.5, 0.0, 0.0, 0.0, 0.0],
-                      [0.0, 1.0, 0.0, -0.5, -0.5, 0.0, 0.0],
-                      [0.0, 0.0, 1.0, 0.0, 0.0, -0.5, -0.5],
-                      [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-                      [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-                      [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
-                      [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]])
-
-        E0 = expm(-L)
-        E1 = expm(-2**11 * L)
-        E2 = E0
-        for j in range(11):
-            E2 = E2 @ E2
-
-        assert_allclose(E1, E2)
-
-
-class TestOperators:
-
-    def test_product_operator(self):
-        random.seed(1234)
-        n = 5
-        k = 2
-        nsamples = 10
-        for i in range(nsamples):
-            A = np.random.randn(n, n)
-            B = np.random.randn(n, n)
-            C = np.random.randn(n, n)
-            D = np.random.randn(n, k)
-            op = ProductOperator(A, B, C)
-            assert_allclose(op.matmat(D), A.dot(B).dot(C).dot(D))
-            assert_allclose(op.T.matmat(D), (A.dot(B).dot(C)).T.dot(D))
-
-    def test_matrix_power_operator(self):
-        random.seed(1234)
-        n = 5
-        k = 2
-        p = 3
-        nsamples = 10
-        for i in range(nsamples):
-            A = np.random.randn(n, n)
-            B = np.random.randn(n, k)
-            op = MatrixPowerOperator(A, p)
-            assert_allclose(op.matmat(B), np.linalg.matrix_power(A, p).dot(B))
-            assert_allclose(op.T.matmat(B), np.linalg.matrix_power(A, p).T.dot(B))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_norm.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_norm.py
deleted file mode 100644
index 96c2f65da75b5e30e34dc2d4e695d1bb369b79b9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_norm.py
+++ /dev/null
@@ -1,141 +0,0 @@
-"""Test functions for the sparse.linalg.norm module
-"""
-
-import pytest
-import numpy as np
-from numpy.linalg import norm as npnorm
-from numpy.testing import assert_allclose, assert_equal
-from pytest import raises as assert_raises
-
-import scipy.sparse
-from scipy.sparse.linalg import norm as spnorm
-
-
-# https://github.com/scipy/scipy/issues/16031
-def test_sparray_norm():
-    row = np.array([0, 0, 1, 1])
-    col = np.array([0, 1, 2, 3])
-    data = np.array([4, 5, 7, 9])
-    test_arr = scipy.sparse.coo_array((data, (row, col)), shape=(2, 4))
-    test_mat = scipy.sparse.coo_matrix((data, (row, col)), shape=(2, 4))
-    assert_equal(spnorm(test_arr, ord=1, axis=0), np.array([4, 5, 7, 9]))
-    assert_equal(spnorm(test_mat, ord=1, axis=0), np.array([4, 5, 7, 9]))
-    assert_equal(spnorm(test_arr, ord=1, axis=1), np.array([9, 16]))
-    assert_equal(spnorm(test_mat, ord=1, axis=1), np.array([9, 16]))
-
-
-class TestNorm:
-    def setup_method(self):
-        a = np.arange(9) - 4
-        b = a.reshape((3, 3))
-        self.b = scipy.sparse.csr_matrix(b)
-
-    def test_matrix_norm(self):
-
-        # Frobenius norm is the default
-        assert_allclose(spnorm(self.b), 7.745966692414834)        
-        assert_allclose(spnorm(self.b, 'fro'), 7.745966692414834)
-
-        assert_allclose(spnorm(self.b, np.inf), 9)
-        assert_allclose(spnorm(self.b, -np.inf), 2)
-        assert_allclose(spnorm(self.b, 1), 7)
-        assert_allclose(spnorm(self.b, -1), 6)
-        # Only floating or complex floating dtype supported by svds.
-        with pytest.warns(UserWarning, match="The problem size"):
-            assert_allclose(spnorm(self.b.astype(np.float64), 2),
-                            7.348469228349534)
-
-        # _multi_svd_norm is not implemented for sparse matrix
-        assert_raises(NotImplementedError, spnorm, self.b, -2)
-
-    def test_matrix_norm_axis(self):
-        for m, axis in ((self.b, None), (self.b, (0, 1)), (self.b.T, (1, 0))):
-            assert_allclose(spnorm(m, axis=axis), 7.745966692414834)        
-            assert_allclose(spnorm(m, 'fro', axis=axis), 7.745966692414834)
-            assert_allclose(spnorm(m, np.inf, axis=axis), 9)
-            assert_allclose(spnorm(m, -np.inf, axis=axis), 2)
-            assert_allclose(spnorm(m, 1, axis=axis), 7)
-            assert_allclose(spnorm(m, -1, axis=axis), 6)
-
-    def test_vector_norm(self):
-        v = [4.5825756949558398, 4.2426406871192848, 4.5825756949558398]
-        for m, a in (self.b, 0), (self.b.T, 1):
-            for axis in a, (a, ), a-2, (a-2, ):
-                assert_allclose(spnorm(m, 1, axis=axis), [7, 6, 7])
-                assert_allclose(spnorm(m, np.inf, axis=axis), [4, 3, 4])
-                assert_allclose(spnorm(m, axis=axis), v)
-                assert_allclose(spnorm(m, ord=2, axis=axis), v)
-                assert_allclose(spnorm(m, ord=None, axis=axis), v)
-
-    def test_norm_exceptions(self):
-        m = self.b
-        assert_raises(TypeError, spnorm, m, None, 1.5)
-        assert_raises(TypeError, spnorm, m, None, [2])
-        assert_raises(ValueError, spnorm, m, None, ())
-        assert_raises(ValueError, spnorm, m, None, (0, 1, 2))
-        assert_raises(ValueError, spnorm, m, None, (0, 0))
-        assert_raises(ValueError, spnorm, m, None, (0, 2))
-        assert_raises(ValueError, spnorm, m, None, (-3, 0))
-        assert_raises(ValueError, spnorm, m, None, 2)
-        assert_raises(ValueError, spnorm, m, None, -3)
-        assert_raises(ValueError, spnorm, m, 'plate_of_shrimp', 0)
-        assert_raises(ValueError, spnorm, m, 'plate_of_shrimp', (0, 1))
-
-
-class TestVsNumpyNorm:
-    _sparse_types = (
-            scipy.sparse.bsr_matrix,
-            scipy.sparse.coo_matrix,
-            scipy.sparse.csc_matrix,
-            scipy.sparse.csr_matrix,
-            scipy.sparse.dia_matrix,
-            scipy.sparse.dok_matrix,
-            scipy.sparse.lil_matrix,
-            )
-    _test_matrices = (
-            (np.arange(9) - 4).reshape((3, 3)),
-            [
-                [1, 2, 3],
-                [-1, 1, 4]],
-            [
-                [1, 0, 3],
-                [-1, 1, 4j]],
-            )
-
-    def test_sparse_matrix_norms(self):
-        for sparse_type in self._sparse_types:
-            for M in self._test_matrices:
-                S = sparse_type(M)
-                assert_allclose(spnorm(S), npnorm(M))
-                assert_allclose(spnorm(S, 'fro'), npnorm(M, 'fro'))
-                assert_allclose(spnorm(S, np.inf), npnorm(M, np.inf))
-                assert_allclose(spnorm(S, -np.inf), npnorm(M, -np.inf))
-                assert_allclose(spnorm(S, 1), npnorm(M, 1))
-                assert_allclose(spnorm(S, -1), npnorm(M, -1))
-
-    def test_sparse_matrix_norms_with_axis(self):
-        for sparse_type in self._sparse_types:
-            for M in self._test_matrices:
-                S = sparse_type(M)
-                for axis in None, (0, 1), (1, 0):
-                    assert_allclose(spnorm(S, axis=axis), npnorm(M, axis=axis))
-                    for ord in 'fro', np.inf, -np.inf, 1, -1:
-                        assert_allclose(spnorm(S, ord, axis=axis),
-                                        npnorm(M, ord, axis=axis))
-                # Some numpy matrix norms are allergic to negative axes.
-                for axis in (-2, -1), (-1, -2), (1, -2):
-                    assert_allclose(spnorm(S, axis=axis), npnorm(M, axis=axis))
-                    assert_allclose(spnorm(S, 'f', axis=axis),
-                                    npnorm(M, 'f', axis=axis))
-                    assert_allclose(spnorm(S, 'fro', axis=axis),
-                                    npnorm(M, 'fro', axis=axis))
-
-    def test_sparse_vector_norms(self):
-        for sparse_type in self._sparse_types:
-            for M in self._test_matrices:
-                S = sparse_type(M)
-                for axis in (0, 1, -1, -2, (0, ), (1, ), (-1, ), (-2, )):
-                    assert_allclose(spnorm(S, axis=axis), npnorm(M, axis=axis))
-                    for ord in None, 2, np.inf, -np.inf, 1, 0.5, 0.42:
-                        assert_allclose(spnorm(S, ord, axis=axis),
-                                        npnorm(M, ord, axis=axis))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_onenormest.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_onenormest.py
deleted file mode 100644
index 907a456f0358e3a9cca4f6293e3806aef813ef4d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_onenormest.py
+++ /dev/null
@@ -1,252 +0,0 @@
-"""Test functions for the sparse.linalg._onenormest module
-"""
-
-import numpy as np
-from numpy.testing import assert_allclose, assert_equal, assert_
-import pytest
-import scipy.linalg
-import scipy.sparse.linalg
-from scipy.sparse.linalg._onenormest import _onenormest_core, _algorithm_2_2
-
-
-class MatrixProductOperator(scipy.sparse.linalg.LinearOperator):
-    """
-    This is purely for onenormest testing.
-    """
-
-    def __init__(self, A, B):
-        if A.ndim != 2 or B.ndim != 2:
-            raise ValueError('expected ndarrays representing matrices')
-        if A.shape[1] != B.shape[0]:
-            raise ValueError('incompatible shapes')
-        self.A = A
-        self.B = B
-        self.ndim = 2
-        self.shape = (A.shape[0], B.shape[1])
-
-    def _matvec(self, x):
-        return np.dot(self.A, np.dot(self.B, x))
-
-    def _rmatvec(self, x):
-        return np.dot(np.dot(x, self.A), self.B)
-
-    def _matmat(self, X):
-        return np.dot(self.A, np.dot(self.B, X))
-
-    @property
-    def T(self):
-        return MatrixProductOperator(self.B.T, self.A.T)
-
-
-class TestOnenormest:
-
-    @pytest.mark.xslow
-    def test_onenormest_table_3_t_2(self):
-        # This will take multiple seconds if your computer is slow like mine.
-        # It is stochastic, so the tolerance could be too strict.
-        np.random.seed(1234)
-        t = 2
-        n = 100
-        itmax = 5
-        nsamples = 5000
-        observed = []
-        expected = []
-        nmult_list = []
-        nresample_list = []
-        for i in range(nsamples):
-            A = scipy.linalg.inv(np.random.randn(n, n))
-            est, v, w, nmults, nresamples = _onenormest_core(A, A.T, t, itmax)
-            observed.append(est)
-            expected.append(scipy.linalg.norm(A, 1))
-            nmult_list.append(nmults)
-            nresample_list.append(nresamples)
-        observed = np.array(observed, dtype=float)
-        expected = np.array(expected, dtype=float)
-        relative_errors = np.abs(observed - expected) / expected
-
-        # check the mean underestimation ratio
-        underestimation_ratio = observed / expected
-        assert_(0.99 < np.mean(underestimation_ratio) < 1.0)
-
-        # check the max and mean required column resamples
-        assert_equal(np.max(nresample_list), 2)
-        assert_(0.05 < np.mean(nresample_list) < 0.2)
-
-        # check the proportion of norms computed exactly correctly
-        nexact = np.count_nonzero(relative_errors < 1e-14)
-        proportion_exact = nexact / float(nsamples)
-        assert_(0.9 < proportion_exact < 0.95)
-
-        # check the average number of matrix*vector multiplications
-        assert_(3.5 < np.mean(nmult_list) < 4.5)
-
-    @pytest.mark.xslow
-    def test_onenormest_table_4_t_7(self):
-        # This will take multiple seconds if your computer is slow like mine.
-        # It is stochastic, so the tolerance could be too strict.
-        np.random.seed(1234)
-        t = 7
-        n = 100
-        itmax = 5
-        nsamples = 5000
-        observed = []
-        expected = []
-        nmult_list = []
-        nresample_list = []
-        for i in range(nsamples):
-            A = np.random.randint(-1, 2, size=(n, n))
-            est, v, w, nmults, nresamples = _onenormest_core(A, A.T, t, itmax)
-            observed.append(est)
-            expected.append(scipy.linalg.norm(A, 1))
-            nmult_list.append(nmults)
-            nresample_list.append(nresamples)
-        observed = np.array(observed, dtype=float)
-        expected = np.array(expected, dtype=float)
-        relative_errors = np.abs(observed - expected) / expected
-
-        # check the mean underestimation ratio
-        underestimation_ratio = observed / expected
-        assert_(0.90 < np.mean(underestimation_ratio) < 0.99)
-
-        # check the required column resamples
-        assert_equal(np.max(nresample_list), 0)
-
-        # check the proportion of norms computed exactly correctly
-        nexact = np.count_nonzero(relative_errors < 1e-14)
-        proportion_exact = nexact / float(nsamples)
-        assert_(0.15 < proportion_exact < 0.25)
-
-        # check the average number of matrix*vector multiplications
-        assert_(3.5 < np.mean(nmult_list) < 4.5)
-
-    def test_onenormest_table_5_t_1(self):
-        # "note that there is no randomness and hence only one estimate for t=1"
-        t = 1
-        n = 100
-        itmax = 5
-        alpha = 1 - 1e-6
-        A = -scipy.linalg.inv(np.identity(n) + alpha*np.eye(n, k=1))
-        first_col = np.array([1] + [0]*(n-1))
-        first_row = np.array([(-alpha)**i for i in range(n)])
-        B = -scipy.linalg.toeplitz(first_col, first_row)
-        assert_allclose(A, B)
-        est, v, w, nmults, nresamples = _onenormest_core(B, B.T, t, itmax)
-        exact_value = scipy.linalg.norm(B, 1)
-        underest_ratio = est / exact_value
-        assert_allclose(underest_ratio, 0.05, rtol=1e-4)
-        assert_equal(nmults, 11)
-        assert_equal(nresamples, 0)
-        # check the non-underscored version of onenormest
-        est_plain = scipy.sparse.linalg.onenormest(B, t=t, itmax=itmax)
-        assert_allclose(est, est_plain)
-
-    @pytest.mark.xslow
-    def test_onenormest_table_6_t_1(self):
-        #TODO this test seems to give estimates that match the table,
-        #TODO even though no attempt has been made to deal with
-        #TODO complex numbers in the one-norm estimation.
-        # This will take multiple seconds if your computer is slow like mine.
-        # It is stochastic, so the tolerance could be too strict.
-        np.random.seed(1234)
-        t = 1
-        n = 100
-        itmax = 5
-        nsamples = 5000
-        observed = []
-        expected = []
-        nmult_list = []
-        nresample_list = []
-        for i in range(nsamples):
-            A_inv = np.random.rand(n, n) + 1j * np.random.rand(n, n)
-            A = scipy.linalg.inv(A_inv)
-            est, v, w, nmults, nresamples = _onenormest_core(A, A.T, t, itmax)
-            observed.append(est)
-            expected.append(scipy.linalg.norm(A, 1))
-            nmult_list.append(nmults)
-            nresample_list.append(nresamples)
-        observed = np.array(observed, dtype=float)
-        expected = np.array(expected, dtype=float)
-        relative_errors = np.abs(observed - expected) / expected
-
-        # check the mean underestimation ratio
-        underestimation_ratio = observed / expected
-        underestimation_ratio_mean = np.mean(underestimation_ratio)
-        assert_(0.90 < underestimation_ratio_mean < 0.99)
-
-        # check the required column resamples
-        max_nresamples = np.max(nresample_list)
-        assert_equal(max_nresamples, 0)
-
-        # check the proportion of norms computed exactly correctly
-        nexact = np.count_nonzero(relative_errors < 1e-14)
-        proportion_exact = nexact / float(nsamples)
-        assert_(0.7 < proportion_exact < 0.8)
-
-        # check the average number of matrix*vector multiplications
-        mean_nmult = np.mean(nmult_list)
-        assert_(4 < mean_nmult < 5)
-
-    def _help_product_norm_slow(self, A, B):
-        # for profiling
-        C = np.dot(A, B)
-        return scipy.linalg.norm(C, 1)
-
-    def _help_product_norm_fast(self, A, B):
-        # for profiling
-        t = 2
-        itmax = 5
-        D = MatrixProductOperator(A, B)
-        est, v, w, nmults, nresamples = _onenormest_core(D, D.T, t, itmax)
-        return est
-
-    @pytest.mark.slow
-    def test_onenormest_linear_operator(self):
-        # Define a matrix through its product A B.
-        # Depending on the shapes of A and B,
-        # it could be easy to multiply this product by a small matrix,
-        # but it could be annoying to look at all of
-        # the entries of the product explicitly.
-        np.random.seed(1234)
-        n = 6000
-        k = 3
-        A = np.random.randn(n, k)
-        B = np.random.randn(k, n)
-        fast_estimate = self._help_product_norm_fast(A, B)
-        exact_value = self._help_product_norm_slow(A, B)
-        assert_(fast_estimate <= exact_value <= 3*fast_estimate,
-                f'fast: {fast_estimate:g}\nexact:{exact_value:g}')
-
-    def test_returns(self):
-        np.random.seed(1234)
-        A = scipy.sparse.rand(50, 50, 0.1)
-
-        s0 = scipy.linalg.norm(A.toarray(), 1)
-        s1, v = scipy.sparse.linalg.onenormest(A, compute_v=True)
-        s2, w = scipy.sparse.linalg.onenormest(A, compute_w=True)
-        s3, v2, w2 = scipy.sparse.linalg.onenormest(A, compute_w=True, compute_v=True)
-
-        assert_allclose(s1, s0, rtol=1e-9)
-        assert_allclose(np.linalg.norm(A.dot(v), 1), s0*np.linalg.norm(v, 1), rtol=1e-9)
-        assert_allclose(A.dot(v), w, rtol=1e-9)
-
-
-class TestAlgorithm_2_2:
-
-    def test_randn_inv(self):
-        np.random.seed(1234)
-        n = 20
-        nsamples = 100
-        for i in range(nsamples):
-
-            # Choose integer t uniformly between 1 and 3 inclusive.
-            t = np.random.randint(1, 4)
-
-            # Choose n uniformly between 10 and 40 inclusive.
-            n = np.random.randint(10, 41)
-
-            # Sample the inverse of a matrix with random normal entries.
-            A = scipy.linalg.inv(np.random.randn(n, n))
-
-            # Compute the 1-norm bounds.
-            g, ind = _algorithm_2_2(A, A.T, t)
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_propack.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_propack.py
deleted file mode 100644
index 2dac7133997ac92d65b72c7bd83e844d2f02d802..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_propack.py
+++ /dev/null
@@ -1,166 +0,0 @@
-import os
-import pytest
-
-import numpy as np
-from numpy.testing import assert_allclose
-from pytest import raises as assert_raises
-from scipy.sparse.linalg._svdp import _svdp
-from scipy.sparse import csr_matrix, csc_matrix
-
-
-# dtype_flavour to tolerance
-TOLS = {
-    np.float32: 1e-4,
-    np.float64: 1e-8,
-    np.complex64: 1e-4,
-    np.complex128: 1e-8,
-}
-
-
-def is_complex_type(dtype):
-    return np.dtype(dtype).kind == "c"
-
-
-_dtypes = []
-for dtype_flavour in TOLS.keys():
-    marks = []
-    if is_complex_type(dtype_flavour):
-        marks = [pytest.mark.slow]
-    _dtypes.append(pytest.param(dtype_flavour, marks=marks,
-                                id=dtype_flavour.__name__))
-_dtypes = tuple(_dtypes)  # type: ignore[assignment]
-
-
-def generate_matrix(constructor, n, m, f,
-                    dtype=float, rseed=0, **kwargs):
-    """Generate a random sparse matrix"""
-    rng = np.random.RandomState(rseed)
-    if is_complex_type(dtype):
-        M = (- 5 + 10 * rng.rand(n, m)
-             - 5j + 10j * rng.rand(n, m)).astype(dtype)
-    else:
-        M = (-5 + 10 * rng.rand(n, m)).astype(dtype)
-    M[M.real > 10 * f - 5] = 0
-    return constructor(M, **kwargs)
-
-
-def assert_orthogonal(u1, u2, rtol, atol):
-    """Check that the first k rows of u1 and u2 are orthogonal"""
-    A = abs(np.dot(u1.conj().T, u2))
-    assert_allclose(A, np.eye(u1.shape[1], u2.shape[1]), rtol=rtol, atol=atol)
-
-
-def check_svdp(n, m, constructor, dtype, k, irl_mode, which, f=0.8):
-    tol = TOLS[dtype]
-
-    M = generate_matrix(np.asarray, n, m, f, dtype)
-    Msp = constructor(M)
-
-    u1, sigma1, vt1 = np.linalg.svd(M, full_matrices=False)
-    u2, sigma2, vt2, _ = _svdp(Msp, k=k, which=which, irl_mode=irl_mode,
-                               tol=tol)
-
-    # check the which
-    if which.upper() == 'SM':
-        u1 = np.roll(u1, k, 1)
-        vt1 = np.roll(vt1, k, 0)
-        sigma1 = np.roll(sigma1, k)
-
-    # check that singular values agree
-    assert_allclose(sigma1[:k], sigma2, rtol=tol, atol=tol)
-
-    # check that singular vectors are orthogonal
-    assert_orthogonal(u1, u2, rtol=tol, atol=tol)
-    assert_orthogonal(vt1.T, vt2.T, rtol=tol, atol=tol)
-
-
-@pytest.mark.parametrize('ctor', (np.array, csr_matrix, csc_matrix))
-@pytest.mark.parametrize('dtype', _dtypes)
-@pytest.mark.parametrize('irl', (True, False))
-@pytest.mark.parametrize('which', ('LM', 'SM'))
-def test_svdp(ctor, dtype, irl, which):
-    np.random.seed(0)
-    n, m, k = 10, 20, 3
-    if which == 'SM' and not irl:
-        message = "`which`='SM' requires irl_mode=True"
-        with assert_raises(ValueError, match=message):
-            check_svdp(n, m, ctor, dtype, k, irl, which)
-    else:
-        check_svdp(n, m, ctor, dtype, k, irl, which)
-
-
-@pytest.mark.xslow
-@pytest.mark.parametrize('dtype', _dtypes)
-@pytest.mark.parametrize('irl', (False, True))
-@pytest.mark.timeout(120)  # True, complex64 > 60 s: prerel deps cov 64bit blas
-def test_examples(dtype, irl):
-    # Note: atol for complex64 bumped from 1e-4 to 1e-3 due to test failures
-    # with BLIS, Netlib, and MKL+AVX512 - see
-    # https://github.com/conda-forge/scipy-feedstock/pull/198#issuecomment-999180432
-    atol = {
-        np.float32: 1.3e-4,
-        np.float64: 1e-9,
-        np.complex64: 1e-3,
-        np.complex128: 1e-9,
-    }[dtype]
-
-    path_prefix = os.path.dirname(__file__)
-    # Test matrices from `illc1850.coord` and `mhd1280b.cua` distributed with
-    # PROPACK 2.1: http://sun.stanford.edu/~rmunk/PROPACK/
-    relative_path = "propack_test_data.npz"
-    filename = os.path.join(path_prefix, relative_path)
-    with np.load(filename, allow_pickle=True) as data:
-        if is_complex_type(dtype):
-            A = data['A_complex'].item().astype(dtype)
-        else:
-            A = data['A_real'].item().astype(dtype)
-
-    k = 200
-    u, s, vh, _ = _svdp(A, k, irl_mode=irl, random_state=0)
-
-    # complex example matrix has many repeated singular values, so check only
-    # beginning non-repeated singular vectors to avoid permutations
-    sv_check = 27 if is_complex_type(dtype) else k
-    u = u[:, :sv_check]
-    vh = vh[:sv_check, :]
-    s = s[:sv_check]
-
-    # Check orthogonality of singular vectors
-    assert_allclose(np.eye(u.shape[1]), u.conj().T @ u, atol=atol)
-    assert_allclose(np.eye(vh.shape[0]), vh @ vh.conj().T, atol=atol)
-
-    # Ensure the norm of the difference between the np.linalg.svd and
-    # PROPACK reconstructed matrices is small
-    u3, s3, vh3 = np.linalg.svd(A.todense())
-    u3 = u3[:, :sv_check]
-    s3 = s3[:sv_check]
-    vh3 = vh3[:sv_check, :]
-    A3 = u3 @ np.diag(s3) @ vh3
-    recon = u @ np.diag(s) @ vh
-    assert_allclose(np.linalg.norm(A3 - recon), 0, atol=atol)
-
-
-@pytest.mark.parametrize('shifts', (None, -10, 0, 1, 10, 70))
-@pytest.mark.parametrize('dtype', _dtypes[:2])
-def test_shifts(shifts, dtype):
-    np.random.seed(0)
-    n, k = 70, 10
-    A = np.random.random((n, n))
-    if shifts is not None and ((shifts < 0) or (k > min(n-1-shifts, n))):
-        with pytest.raises(ValueError):
-            _svdp(A, k, shifts=shifts, kmax=5*k, irl_mode=True)
-    else:
-        _svdp(A, k, shifts=shifts, kmax=5*k, irl_mode=True)
-
-
-@pytest.mark.slow
-@pytest.mark.xfail()
-def test_shifts_accuracy():
-    np.random.seed(0)
-    n, k = 70, 10
-    A = np.random.random((n, n)).astype(np.float64)
-    u1, s1, vt1, _ = _svdp(A, k, shifts=None, which='SM', irl_mode=True)
-    u2, s2, vt2, _ = _svdp(A, k, shifts=32, which='SM', irl_mode=True)
-    # shifts <= 32 doesn't agree with shifts > 32
-    # Does agree when which='LM' instead of 'SM'
-    assert_allclose(s1, s2)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_pydata_sparse.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_pydata_sparse.py
deleted file mode 100644
index b42448d0ef1ab92f9745b0be22b65bb3f280fcb4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_pydata_sparse.py
+++ /dev/null
@@ -1,243 +0,0 @@
-import pytest
-
-import numpy as np
-import scipy.sparse as sp
-import scipy.sparse.linalg as splin
-
-from numpy.testing import assert_allclose, assert_equal
-
-try:
-    import sparse
-except Exception:
-    sparse = None
-
-pytestmark = pytest.mark.skipif(sparse is None,
-                                reason="pydata/sparse not installed")
-
-
-msg = "pydata/sparse (0.15.1) does not implement necessary operations"
-
-
-sparse_params = (pytest.param("COO"),
-                 pytest.param("DOK", marks=[pytest.mark.xfail(reason=msg)]))
-
-scipy_sparse_classes = [
-    sp.bsr_matrix,
-    sp.csr_matrix,
-    sp.coo_matrix,
-    sp.csc_matrix,
-    sp.dia_matrix,
-    sp.dok_matrix
-]
-
-
-@pytest.fixture(params=sparse_params)
-def sparse_cls(request):
-    return getattr(sparse, request.param)
-
-
-@pytest.fixture(params=scipy_sparse_classes)
-def sp_sparse_cls(request):
-    return request.param
-
-
-@pytest.fixture
-def same_matrix(sparse_cls, sp_sparse_cls):
-    np.random.seed(1234)
-    A_dense = np.random.rand(9, 9)
-    return sp_sparse_cls(A_dense), sparse_cls(A_dense)
-
-
-@pytest.fixture
-def matrices(sparse_cls):
-    np.random.seed(1234)
-    A_dense = np.random.rand(9, 9)
-    A_dense = A_dense @ A_dense.T
-    A_sparse = sparse_cls(A_dense)
-    b = np.random.rand(9)
-    return A_dense, A_sparse, b
-
-
-def test_isolve_gmres(matrices):
-    # Several of the iterative solvers use the same
-    # isolve.utils.make_system wrapper code, so test just one of them.
-    A_dense, A_sparse, b = matrices
-    x, info = splin.gmres(A_sparse, b, atol=1e-15)
-    assert info == 0
-    assert isinstance(x, np.ndarray)
-    assert_allclose(A_sparse @ x, b)
-
-
-def test_lsmr(matrices):
-    A_dense, A_sparse, b = matrices
-    res0 = splin.lsmr(A_dense, b)
-    res = splin.lsmr(A_sparse, b)
-    assert_allclose(res[0], res0[0], atol=1e-3)
-
-
-# test issue 17012
-def test_lsmr_output_shape():
-    x = splin.lsmr(A=np.ones((10, 1)), b=np.zeros(10), x0=np.ones(1))[0]
-    assert_equal(x.shape, (1,))
-
-
-def test_lsqr(matrices):
-    A_dense, A_sparse, b = matrices
-    res0 = splin.lsqr(A_dense, b)
-    res = splin.lsqr(A_sparse, b)
-    assert_allclose(res[0], res0[0], atol=1e-5)
-
-
-def test_eigs(matrices):
-    A_dense, A_sparse, v0 = matrices
-
-    M_dense = np.diag(v0**2)
-    M_sparse = A_sparse.__class__(M_dense)
-
-    w_dense, v_dense = splin.eigs(A_dense, k=3, v0=v0)
-    w, v = splin.eigs(A_sparse, k=3, v0=v0)
-
-    assert_allclose(w, w_dense)
-    assert_allclose(v, v_dense)
-
-    for M in [M_sparse, M_dense]:
-        w_dense, v_dense = splin.eigs(A_dense, M=M_dense, k=3, v0=v0)
-        w, v = splin.eigs(A_sparse, M=M, k=3, v0=v0)
-
-        assert_allclose(w, w_dense)
-        assert_allclose(v, v_dense)
-
-        w_dense, v_dense = splin.eigsh(A_dense, M=M_dense, k=3, v0=v0)
-        w, v = splin.eigsh(A_sparse, M=M, k=3, v0=v0)
-
-        assert_allclose(w, w_dense)
-        assert_allclose(v, v_dense)
-
-
-def test_svds(matrices):
-    A_dense, A_sparse, v0 = matrices
-
-    u0, s0, vt0 = splin.svds(A_dense, k=2, v0=v0)
-    u, s, vt = splin.svds(A_sparse, k=2, v0=v0)
-
-    assert_allclose(s, s0)
-    assert_allclose(np.abs(u), np.abs(u0))
-    assert_allclose(np.abs(vt), np.abs(vt0))
-
-
-def test_lobpcg(matrices):
-    A_dense, A_sparse, x = matrices
-    X = x[:,None]
-
-    w_dense, v_dense = splin.lobpcg(A_dense, X)
-    w, v = splin.lobpcg(A_sparse, X)
-
-    assert_allclose(w, w_dense)
-    assert_allclose(v, v_dense)
-
-
-def test_spsolve(matrices):
-    A_dense, A_sparse, b = matrices
-    b2 = np.random.rand(len(b), 3)
-
-    x0 = splin.spsolve(sp.csc_matrix(A_dense), b)
-    x = splin.spsolve(A_sparse, b)
-    assert isinstance(x, np.ndarray)
-    assert_allclose(x, x0)
-
-    x0 = splin.spsolve(sp.csc_matrix(A_dense), b)
-    x = splin.spsolve(A_sparse, b, use_umfpack=True)
-    assert isinstance(x, np.ndarray)
-    assert_allclose(x, x0)
-
-    x0 = splin.spsolve(sp.csc_matrix(A_dense), b2)
-    x = splin.spsolve(A_sparse, b2)
-    assert isinstance(x, np.ndarray)
-    assert_allclose(x, x0)
-
-    x0 = splin.spsolve(sp.csc_matrix(A_dense),
-                       sp.csc_matrix(A_dense))
-    x = splin.spsolve(A_sparse, A_sparse)
-    assert isinstance(x, type(A_sparse))
-    assert_allclose(x.todense(), x0.todense())
-
-
-def test_splu(matrices):
-    A_dense, A_sparse, b = matrices
-    n = len(b)
-    sparse_cls = type(A_sparse)
-
-    lu = splin.splu(A_sparse)
-
-    assert isinstance(lu.L, sparse_cls)
-    assert isinstance(lu.U, sparse_cls)
-
-    _Pr_scipy = sp.csc_matrix((np.ones(n), (lu.perm_r, np.arange(n))))
-    _Pc_scipy = sp.csc_matrix((np.ones(n), (np.arange(n), lu.perm_c)))
-    Pr = sparse_cls.from_scipy_sparse(_Pr_scipy)
-    Pc = sparse_cls.from_scipy_sparse(_Pc_scipy)
-    A2 = Pr.T @ lu.L @ lu.U @ Pc.T
-
-    assert_allclose(A2.todense(), A_sparse.todense())
-
-    z = lu.solve(A_sparse.todense())
-    assert_allclose(z, np.eye(n), atol=1e-10)
-
-
-def test_spilu(matrices):
-    A_dense, A_sparse, b = matrices
-    sparse_cls = type(A_sparse)
-
-    lu = splin.spilu(A_sparse)
-
-    assert isinstance(lu.L, sparse_cls)
-    assert isinstance(lu.U, sparse_cls)
-
-    z = lu.solve(A_sparse.todense())
-    assert_allclose(z, np.eye(len(b)), atol=1e-3)
-
-
-def test_spsolve_triangular(matrices):
-    A_dense, A_sparse, b = matrices
-    A_sparse = sparse.tril(A_sparse)
-
-    x = splin.spsolve_triangular(A_sparse, b)
-    assert_allclose(A_sparse @ x, b)
-
-
-def test_onenormest(matrices):
-    A_dense, A_sparse, b = matrices
-    est0 = splin.onenormest(A_dense)
-    est = splin.onenormest(A_sparse)
-    assert_allclose(est, est0)
-
-
-def test_inv(matrices):
-    A_dense, A_sparse, b = matrices
-    x0 = splin.inv(sp.csc_matrix(A_dense))
-    x = splin.inv(A_sparse)
-    assert_allclose(x.todense(), x0.todense())
-
-
-def test_expm(matrices):
-    A_dense, A_sparse, b = matrices
-    x0 = splin.expm(sp.csc_matrix(A_dense))
-    x = splin.expm(A_sparse)
-    assert_allclose(x.todense(), x0.todense())
-
-
-def test_expm_multiply(matrices):
-    A_dense, A_sparse, b = matrices
-    x0 = splin.expm_multiply(A_dense, b)
-    x = splin.expm_multiply(A_sparse, b)
-    assert_allclose(x, x0)
-
-
-def test_eq(same_matrix):
-    sp_sparse, pd_sparse = same_matrix
-    assert (sp_sparse == pd_sparse).all()
-
-
-def test_ne(same_matrix):
-    sp_sparse, pd_sparse = same_matrix
-    assert not (sp_sparse != pd_sparse).any()
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_special_sparse_arrays.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_special_sparse_arrays.py
deleted file mode 100644
index d9d1c4001af6697233380edf0047409a41847834..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/linalg/tests/test_special_sparse_arrays.py
+++ /dev/null
@@ -1,337 +0,0 @@
-import pytest
-import numpy as np
-from numpy.testing import assert_array_equal, assert_allclose
-
-from scipy.sparse import diags, csgraph
-from scipy.linalg import eigh
-
-from scipy.sparse.linalg import LaplacianNd
-from scipy.sparse.linalg._special_sparse_arrays import Sakurai
-from scipy.sparse.linalg._special_sparse_arrays import MikotaPair
-
-INT_DTYPES = [np.int8, np.int16, np.int32, np.int64]
-REAL_DTYPES = [np.float32, np.float64]
-COMPLEX_DTYPES = [np.complex64, np.complex128]
-ALLDTYPES = INT_DTYPES + REAL_DTYPES + COMPLEX_DTYPES
-
-
-class TestLaplacianNd:
-    """
-    LaplacianNd tests
-    """
-
-    @pytest.mark.parametrize('bc', ['neumann', 'dirichlet', 'periodic'])
-    def test_1d_specific_shape(self, bc):
-        lap = LaplacianNd(grid_shape=(6, ), boundary_conditions=bc)
-        lapa = lap.toarray()
-        if bc == 'neumann':
-            a = np.array(
-                [
-                    [-1, 1, 0, 0, 0, 0],
-                    [1, -2, 1, 0, 0, 0],
-                    [0, 1, -2, 1, 0, 0],
-                    [0, 0, 1, -2, 1, 0],
-                    [0, 0, 0, 1, -2, 1],
-                    [0, 0, 0, 0, 1, -1],
-                ]
-            )
-        elif bc == 'dirichlet':
-            a = np.array(
-                [
-                    [-2, 1, 0, 0, 0, 0],
-                    [1, -2, 1, 0, 0, 0],
-                    [0, 1, -2, 1, 0, 0],
-                    [0, 0, 1, -2, 1, 0],
-                    [0, 0, 0, 1, -2, 1],
-                    [0, 0, 0, 0, 1, -2],
-                ]
-            )
-        else:
-            a = np.array(
-                [
-                    [-2, 1, 0, 0, 0, 1],
-                    [1, -2, 1, 0, 0, 0],
-                    [0, 1, -2, 1, 0, 0],
-                    [0, 0, 1, -2, 1, 0],
-                    [0, 0, 0, 1, -2, 1],
-                    [1, 0, 0, 0, 1, -2],
-                ]
-            )
-        assert_array_equal(a, lapa)
-
-    def test_1d_with_graph_laplacian(self):
-        n = 6
-        G = diags(np.ones(n - 1), 1, format='dia')
-        Lf = csgraph.laplacian(G, symmetrized=True, form='function')
-        La = csgraph.laplacian(G, symmetrized=True, form='array')
-        grid_shape = (n,)
-        bc = 'neumann'
-        lap = LaplacianNd(grid_shape, boundary_conditions=bc)
-        assert_array_equal(lap(np.eye(n)), -Lf(np.eye(n)))
-        assert_array_equal(lap.toarray(), -La.toarray())
-        # https://github.com/numpy/numpy/issues/24351
-        assert_array_equal(lap.tosparse().toarray(), -La.toarray())
-
-    @pytest.mark.parametrize('grid_shape', [(6, ), (2, 3), (2, 3, 4)])
-    @pytest.mark.parametrize('bc', ['neumann', 'dirichlet', 'periodic'])
-    def test_eigenvalues(self, grid_shape, bc):
-        lap = LaplacianNd(grid_shape, boundary_conditions=bc, dtype=np.float64)
-        L = lap.toarray()
-        eigvals = eigh(L, eigvals_only=True)
-        n = np.prod(grid_shape)
-        eigenvalues = lap.eigenvalues()
-        dtype = eigenvalues.dtype
-        atol = n * n * np.finfo(dtype).eps
-        # test the default ``m = None``
-        assert_allclose(eigenvalues, eigvals, atol=atol)
-        # test every ``m > 0``
-        for m in np.arange(1, n + 1):
-            assert_array_equal(lap.eigenvalues(m), eigenvalues[-m:])
-
-    @pytest.mark.parametrize('grid_shape', [(6, ), (2, 3), (2, 3, 4)])
-    @pytest.mark.parametrize('bc', ['neumann', 'dirichlet', 'periodic'])
-    def test_eigenvectors(self, grid_shape, bc):
-        lap = LaplacianNd(grid_shape, boundary_conditions=bc, dtype=np.float64)
-        n = np.prod(grid_shape)
-        eigenvalues = lap.eigenvalues()
-        eigenvectors = lap.eigenvectors()
-        dtype = eigenvectors.dtype
-        atol = n * n * max(np.finfo(dtype).eps, np.finfo(np.double).eps)
-        # test the default ``m = None`` every individual eigenvector
-        for i in np.arange(n):
-            r = lap.toarray() @ eigenvectors[:, i] - eigenvectors[:, i] * eigenvalues[i]
-            assert_allclose(r, np.zeros_like(r), atol=atol)
-        # test every ``m > 0``
-        for m in np.arange(1, n + 1):
-            e = lap.eigenvalues(m)
-            ev = lap.eigenvectors(m)
-            r = lap.toarray() @ ev - ev @ np.diag(e)
-            assert_allclose(r, np.zeros_like(r), atol=atol)
-
-    @pytest.mark.parametrize('grid_shape', [(6, ), (2, 3), (2, 3, 4)])
-    @pytest.mark.parametrize('bc', ['neumann', 'dirichlet', 'periodic'])
-    def test_toarray_tosparse_consistency(self, grid_shape, bc):
-        lap = LaplacianNd(grid_shape, boundary_conditions=bc)
-        n = np.prod(grid_shape)
-        assert_array_equal(lap.toarray(), lap(np.eye(n)))
-        assert_array_equal(lap.tosparse().toarray(), lap.toarray())
-
-    @pytest.mark.parametrize('dtype', ALLDTYPES)
-    @pytest.mark.parametrize('grid_shape', [(6, ), (2, 3), (2, 3, 4)])
-    @pytest.mark.parametrize('bc', ['neumann', 'dirichlet', 'periodic'])
-    def test_linearoperator_shape_dtype(self, grid_shape, bc, dtype):
-        lap = LaplacianNd(grid_shape, boundary_conditions=bc, dtype=dtype)
-        n = np.prod(grid_shape)
-        assert lap.shape == (n, n)
-        assert lap.dtype == dtype
-        assert_array_equal(
-            LaplacianNd(
-                grid_shape, boundary_conditions=bc, dtype=dtype
-            ).toarray(),
-            LaplacianNd(grid_shape, boundary_conditions=bc)
-            .toarray()
-            .astype(dtype),
-        )
-        assert_array_equal(
-            LaplacianNd(grid_shape, boundary_conditions=bc, dtype=dtype)
-            .tosparse()
-            .toarray(),
-            LaplacianNd(grid_shape, boundary_conditions=bc)
-            .tosparse()
-            .toarray()
-            .astype(dtype),
-        )
-
-    @pytest.mark.parametrize('dtype', ALLDTYPES)
-    @pytest.mark.parametrize('grid_shape', [(6, ), (2, 3), (2, 3, 4)])
-    @pytest.mark.parametrize('bc', ['neumann', 'dirichlet', 'periodic'])
-    def test_dot(self, grid_shape, bc, dtype):
-        """ Test the dot-product for type preservation and consistency.
-        """
-        lap = LaplacianNd(grid_shape, boundary_conditions=bc)
-        n = np.prod(grid_shape)
-        x0 = np.arange(n)
-        x1 = x0.reshape((-1, 1))
-        x2 = np.arange(2 * n).reshape((n, 2))
-        input_set = [x0, x1, x2]
-        for x in input_set:
-            y = lap.dot(x.astype(dtype))
-            assert x.shape == y.shape
-            assert y.dtype == dtype
-            if x.ndim == 2:
-                yy = lap.toarray() @ x.astype(dtype)
-                assert yy.dtype == dtype
-                np.array_equal(y, yy)
-
-    def test_boundary_conditions_value_error(self):
-        with pytest.raises(ValueError, match="Unknown value 'robin'"):
-            LaplacianNd(grid_shape=(6, ), boundary_conditions='robin')
-
-            
-class TestSakurai:
-    """
-    Sakurai tests
-    """
-
-    def test_specific_shape(self):
-        sak = Sakurai(6)
-        assert_array_equal(sak.toarray(), sak(np.eye(6)))
-        a = np.array(
-            [
-                [ 5, -4,  1,  0,  0,  0],
-                [-4,  6, -4,  1,  0,  0],
-                [ 1, -4,  6, -4,  1,  0],
-                [ 0,  1, -4,  6, -4,  1],
-                [ 0,  0,  1, -4,  6, -4],
-                [ 0,  0,  0,  1, -4,  5]
-            ]
-        )
-
-        np.array_equal(a, sak.toarray())
-        np.array_equal(sak.tosparse().toarray(), sak.toarray())
-        ab = np.array(
-            [
-                [ 1,  1,  1,  1,  1,  1],
-                [-4, -4, -4, -4, -4, -4],
-                [ 5,  6,  6,  6,  6,  5]
-            ]
-        )
-        np.array_equal(ab, sak.tobanded())
-        e = np.array(
-                [0.03922866, 0.56703972, 2.41789479, 5.97822974,
-                 10.54287655, 14.45473055]
-            )
-        np.array_equal(e, sak.eigenvalues())
-        np.array_equal(e[:2], sak.eigenvalues(2))
-
-    # `Sakurai` default `dtype` is `np.int8` as its entries are small integers
-    @pytest.mark.parametrize('dtype', ALLDTYPES)
-    def test_linearoperator_shape_dtype(self, dtype):
-        n = 7
-        sak = Sakurai(n, dtype=dtype)
-        assert sak.shape == (n, n)
-        assert sak.dtype == dtype
-        assert_array_equal(sak.toarray(), Sakurai(n).toarray().astype(dtype))
-        assert_array_equal(sak.tosparse().toarray(),
-                           Sakurai(n).tosparse().toarray().astype(dtype))
-
-    @pytest.mark.parametrize('dtype', ALLDTYPES)
-    @pytest.mark.parametrize('argument_dtype', ALLDTYPES)
-    def test_dot(self, dtype, argument_dtype):
-        """ Test the dot-product for type preservation and consistency.
-        """
-        result_dtype = np.promote_types(argument_dtype, dtype)
-        n = 5
-        sak = Sakurai(n)
-        x0 = np.arange(n)
-        x1 = x0.reshape((-1, 1))
-        x2 = np.arange(2 * n).reshape((n, 2))
-        input_set = [x0, x1, x2]
-        for x in input_set:
-            y = sak.dot(x.astype(argument_dtype))
-            assert x.shape == y.shape
-            assert np.can_cast(y.dtype, result_dtype)
-            if x.ndim == 2:
-                ya = sak.toarray() @ x.astype(argument_dtype)
-                np.array_equal(y, ya)
-                assert np.can_cast(ya.dtype, result_dtype)
-                ys = sak.tosparse() @ x.astype(argument_dtype)
-                np.array_equal(y, ys)
-                assert np.can_cast(ys.dtype, result_dtype)
-
-class TestMikotaPair:
-    """
-    MikotaPair tests
-    """
-    # both MikotaPair `LinearOperator`s share the same dtype
-    # while `MikotaK` `dtype` can be as small as its default `np.int32`
-    # since its entries are integers, the `MikotaM` involves inverses
-    # so its smallest still accurate `dtype` is `np.float32`
-    tested_types = REAL_DTYPES + COMPLEX_DTYPES
-
-    def test_specific_shape(self):
-        n = 6
-        mik = MikotaPair(n)
-        mik_k = mik.k
-        mik_m = mik.m
-        assert_array_equal(mik_k.toarray(), mik_k(np.eye(n)))
-        assert_array_equal(mik_m.toarray(), mik_m(np.eye(n)))
-
-        k = np.array(
-            [
-                [11, -5,  0,  0,  0,  0],
-                [-5,  9, -4,  0,  0,  0],
-                [ 0, -4,  7, -3,  0,  0],
-                [ 0,  0, -3,  5, -2,  0],
-                [ 0,  0,  0, -2,  3, -1],
-                [ 0,  0,  0,  0, -1,  1]
-            ]
-        )
-        np.array_equal(k, mik_k.toarray())
-        np.array_equal(mik_k.tosparse().toarray(), k)
-        kb = np.array(
-            [
-                [ 0, -5, -4, -3, -2, -1],
-                [11,  9,  7,  5,  3,  1]
-            ]
-        )
-        np.array_equal(kb, mik_k.tobanded())
-
-        minv = np.arange(1, n + 1)
-        np.array_equal(np.diag(1. / minv), mik_m.toarray())
-        np.array_equal(mik_m.tosparse().toarray(), mik_m.toarray())
-        np.array_equal(1. / minv, mik_m.tobanded())
-
-        e = np.array([ 1,  4,  9, 16, 25, 36])
-        np.array_equal(e, mik.eigenvalues())
-        np.array_equal(e[:2], mik.eigenvalues(2))
-
-    @pytest.mark.parametrize('dtype', tested_types)
-    def test_linearoperator_shape_dtype(self, dtype):
-        n = 7
-        mik = MikotaPair(n, dtype=dtype)
-        mik_k = mik.k
-        mik_m = mik.m
-        assert mik_k.shape == (n, n)
-        assert mik_k.dtype == dtype
-        assert mik_m.shape == (n, n)
-        assert mik_m.dtype == dtype
-        mik_default_dtype = MikotaPair(n)
-        mikd_k = mik_default_dtype.k
-        mikd_m = mik_default_dtype.m
-        assert mikd_k.shape == (n, n)
-        assert mikd_k.dtype == np.float64
-        assert mikd_m.shape == (n, n)
-        assert mikd_m.dtype == np.float64
-        assert_array_equal(mik_k.toarray(),
-                           mikd_k.toarray().astype(dtype))
-        assert_array_equal(mik_k.tosparse().toarray(),
-                           mikd_k.tosparse().toarray().astype(dtype))
-
-    @pytest.mark.parametrize('dtype', tested_types)
-    @pytest.mark.parametrize('argument_dtype', ALLDTYPES)
-    def test_dot(self, dtype, argument_dtype):
-        """ Test the dot-product for type preservation and consistency.
-        """
-        result_dtype = np.promote_types(argument_dtype, dtype)
-        n = 5
-        mik = MikotaPair(n, dtype=dtype)
-        mik_k = mik.k
-        mik_m = mik.m
-        x0 = np.arange(n)
-        x1 = x0.reshape((-1, 1))
-        x2 = np.arange(2 * n).reshape((n, 2))
-        lo_set = [mik_k, mik_m]
-        input_set = [x0, x1, x2]
-        for lo in lo_set:
-            for x in input_set:
-                y = lo.dot(x.astype(argument_dtype))
-                assert x.shape == y.shape
-                assert np.can_cast(y.dtype, result_dtype)
-                if x.ndim == 2:
-                    ya = lo.toarray() @ x.astype(argument_dtype)
-                    np.array_equal(y, ya)
-                    assert np.can_cast(ya.dtype, result_dtype)
-                    ys = lo.tosparse() @ x.astype(argument_dtype)
-                    np.array_equal(y, ys)
-                    assert np.can_cast(ys.dtype, result_dtype)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/sparsetools.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/sparsetools.py
deleted file mode 100644
index 404e431d89d479520d2198ae73b9eab7b23a80f7..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/sparsetools.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__: list[str] = []
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="sparsetools",
-                                   private_modules=["_sparsetools"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/spfuncs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/spfuncs.py
deleted file mode 100644
index 911969e414d4a1d3888900ad8392b5fc2177c850..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/spfuncs.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__: list[str] = []
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="spfuncs",
-                                   private_modules=["_spfuncs"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/sputils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/sputils.py
deleted file mode 100644
index 4ddd27a43889609b0642bd7579e13c8e3c460a8b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/sputils.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.sparse` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__: list[str] = []
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="sparse", module="sputils",
-                                   private_modules=["_sputils"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 96c7392944264589b51913c4be13ee1e308e9cdb..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_arithmetic1d.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_arithmetic1d.cpython-310.pyc
deleted file mode 100644
index 7117441497d4379d49cf4e65c1a971007530392c..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_arithmetic1d.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_array_api.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_array_api.cpython-310.pyc
deleted file mode 100644
index df492b41284b3d970a4c3a92531f7493b98afe4b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_array_api.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_common1d.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_common1d.cpython-310.pyc
deleted file mode 100644
index 0d4fb8236d893ea99d7506c3fd02548ecb9f0fe4..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_common1d.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_construct.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_construct.cpython-310.pyc
deleted file mode 100644
index 7b19c091d2a6df5ab7665d3f71c29d4651ddcf29..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_construct.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_coo.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_coo.cpython-310.pyc
deleted file mode 100644
index eb16822f2d6e8a4122e86175134de414df9aa346..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_coo.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_csc.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_csc.cpython-310.pyc
deleted file mode 100644
index 1a6ce71364ca17f31efc0296926d27e8beab317f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_csc.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_csr.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_csr.cpython-310.pyc
deleted file mode 100644
index 7a565d9efe49636d270aa1abb8143548004ed545..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_csr.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_dok.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_dok.cpython-310.pyc
deleted file mode 100644
index aad27995f479e87cd6cd7a2a38f3791f4548691f..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_dok.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_extract.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_extract.cpython-310.pyc
deleted file mode 100644
index 10099e842f5803761d154ecc9d43ef337f997522..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_extract.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_matrix_io.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_matrix_io.cpython-310.pyc
deleted file mode 100644
index f762d12df50b44c5a0ea9dd535485458bd6c06b4..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_matrix_io.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_minmax1d.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_minmax1d.cpython-310.pyc
deleted file mode 100644
index 0199d59587f9d2faf92e303a4a8d8bb3109a2281..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_minmax1d.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_sparsetools.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_sparsetools.cpython-310.pyc
deleted file mode 100644
index dd358b8638e0a1fbf73eef30909df2bc0e65ef51..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_sparsetools.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_spfuncs.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_spfuncs.cpython-310.pyc
deleted file mode 100644
index 24fc52b03d5adf22b15cd4b5474ed6242d7df83a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_spfuncs.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_sputils.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_sputils.cpython-310.pyc
deleted file mode 100644
index 093113c6ec07739a0ef273b009deba95e82f0819..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/__pycache__/test_sputils.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/data/csc_py2.npz b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/data/csc_py2.npz
deleted file mode 100644
index 83ee25757b61f6125eb181950a2ed5e6ce5623ef..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/data/csc_py2.npz and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/data/csc_py3.npz b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/data/csc_py3.npz
deleted file mode 100644
index 73d086fdcfc143dfc73a186c438b6412c3dbb901..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/data/csc_py3.npz and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_arithmetic1d.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_arithmetic1d.py
deleted file mode 100644
index 3d5d2ee2f1bc2c3fef03c71fc0206cd06f3f8618..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_arithmetic1d.py
+++ /dev/null
@@ -1,338 +0,0 @@
-"""Test of 1D arithmetic operations"""
-
-import pytest
-
-import numpy as np
-from numpy.testing import assert_equal, assert_allclose
-
-from scipy.sparse import coo_array, csr_array
-from scipy.sparse._sputils import isscalarlike
-
-
-spcreators = [coo_array, csr_array]
-math_dtypes = [np.int64, np.float64, np.complex128]
-
-
-def toarray(a):
-    if isinstance(a, np.ndarray) or isscalarlike(a):
-        return a
-    return a.toarray()
-
-@pytest.fixture
-def dat1d():
-    return np.array([3, 0, 1, 0], 'd')
-
-
-@pytest.fixture
-def datsp_math_dtypes(dat1d):
-    dat_dtypes = {dtype: dat1d.astype(dtype) for dtype in math_dtypes}
-    return {
-        sp: [(dtype, dat, sp(dat)) for dtype, dat in dat_dtypes.items()]
-        for sp in spcreators
-    }
-
-
-@pytest.mark.parametrize("spcreator", spcreators)
-class TestArithmetic1D:
-    def test_empty_arithmetic(self, spcreator):
-        shape = (5,)
-        for mytype in [
-            np.dtype('int32'),
-            np.dtype('float32'),
-            np.dtype('float64'),
-            np.dtype('complex64'),
-            np.dtype('complex128'),
-        ]:
-            a = spcreator(shape, dtype=mytype)
-            b = a + a
-            c = 2 * a
-            assert isinstance(a @ a.tocsr(), np.ndarray)
-            assert isinstance(a @ a.tocoo(), np.ndarray)
-            for m in [a, b, c]:
-                assert m @ m == a.toarray() @ a.toarray()
-                assert m.dtype == mytype
-                assert toarray(m).dtype == mytype
-
-    def test_abs(self, spcreator):
-        A = np.array([-1, 0, 17, 0, -5, 0, 1, -4, 0, 0, 0, 0], 'd')
-        assert_equal(abs(A), abs(spcreator(A)).toarray())
-
-    def test_round(self, spcreator):
-        A = np.array([-1.35, 0.56, 17.25, -5.98], 'd')
-        Asp = spcreator(A)
-        assert_equal(np.around(A, decimals=1), round(Asp, ndigits=1).toarray())
-
-    def test_elementwise_power(self, spcreator):
-        A = np.array([-4, -3, -2, -1, 0, 1, 2, 3, 4], 'd')
-        Asp = spcreator(A)
-        assert_equal(np.power(A, 2), Asp.power(2).toarray())
-
-        # element-wise power function needs a scalar power
-        with pytest.raises(NotImplementedError, match='input is not scalar'):
-            spcreator(A).power(A)
-
-    def test_real(self, spcreator):
-        D = np.array([1 + 3j, 2 - 4j])
-        A = spcreator(D)
-        assert_equal(A.real.toarray(), D.real)
-
-    def test_imag(self, spcreator):
-        D = np.array([1 + 3j, 2 - 4j])
-        A = spcreator(D)
-        assert_equal(A.imag.toarray(), D.imag)
-
-    def test_mul_scalar(self, spcreator, datsp_math_dtypes):
-        for dtype, dat, datsp in datsp_math_dtypes[spcreator]:
-            assert_equal(dat * 2, (datsp * 2).toarray())
-            assert_equal(dat * 17.3, (datsp * 17.3).toarray())
-
-    def test_rmul_scalar(self, spcreator, datsp_math_dtypes):
-        for dtype, dat, datsp in datsp_math_dtypes[spcreator]:
-            assert_equal(2 * dat, (2 * datsp).toarray())
-            assert_equal(17.3 * dat, (17.3 * datsp).toarray())
-
-    def test_sub(self, spcreator, datsp_math_dtypes):
-        for dtype, dat, datsp in datsp_math_dtypes[spcreator]:
-            if dtype == np.dtype('bool'):
-                # boolean array subtraction deprecated in 1.9.0
-                continue
-
-            assert_equal((datsp - datsp).toarray(), np.zeros(4))
-            assert_equal((datsp - 0).toarray(), dat)
-
-            A = spcreator([1, -4, 0, 2], dtype='d')
-            assert_equal((datsp - A).toarray(), dat - A.toarray())
-            assert_equal((A - datsp).toarray(), A.toarray() - dat)
-
-            # test broadcasting
-            assert_equal(datsp.toarray() - dat[0], dat - dat[0])
-
-    def test_add0(self, spcreator, datsp_math_dtypes):
-        for dtype, dat, datsp in datsp_math_dtypes[spcreator]:
-            # Adding 0 to a sparse matrix
-            assert_equal((datsp + 0).toarray(), dat)
-            # use sum (which takes 0 as a starting value)
-            sumS = sum([k * datsp for k in range(1, 3)])
-            sumD = sum([k * dat for k in range(1, 3)])
-            assert_allclose(sumS.toarray(), sumD)
-
-    def test_elementwise_multiply(self, spcreator):
-        # real/real
-        A = np.array([4, 0, 9])
-        B = np.array([0, 7, -1])
-        Asp = spcreator(A)
-        Bsp = spcreator(B)
-        assert_allclose(Asp.multiply(Bsp).toarray(), A * B)  # sparse/sparse
-        assert_allclose(Asp.multiply(B).toarray(), A * B)  # sparse/dense
-
-        # complex/complex
-        C = np.array([1 - 2j, 0 + 5j, -1 + 0j])
-        D = np.array([5 + 2j, 7 - 3j, -2 + 1j])
-        Csp = spcreator(C)
-        Dsp = spcreator(D)
-        assert_allclose(Csp.multiply(Dsp).toarray(), C * D)  # sparse/sparse
-        assert_allclose(Csp.multiply(D).toarray(), C * D)  # sparse/dense
-
-        # real/complex
-        assert_allclose(Asp.multiply(Dsp).toarray(), A * D)  # sparse/sparse
-        assert_allclose(Asp.multiply(D).toarray(), A * D)  # sparse/dense
-
-    def test_elementwise_multiply_broadcast(self, spcreator):
-        A = np.array([4])
-        B = np.array([[-9]])
-        C = np.array([1, -1, 0])
-        D = np.array([[7, 9, -9]])
-        E = np.array([[3], [2], [1]])
-        F = np.array([[8, 6, 3], [-4, 3, 2], [6, 6, 6]])
-        G = [1, 2, 3]
-        H = np.ones((3, 4))
-        J = H.T
-        K = np.array([[0]])
-        L = np.array([[[1, 2], [0, 1]]])
-
-        # Some arrays can't be cast as spmatrices (A, C, L) so leave
-        # them out.
-        Asp = spcreator(A)
-        Csp = spcreator(C)
-        Gsp = spcreator(G)
-        # 2d arrays
-        Bsp = spcreator(B)
-        Dsp = spcreator(D)
-        Esp = spcreator(E)
-        Fsp = spcreator(F)
-        Hsp = spcreator(H)
-        Hspp = spcreator(H[0, None])
-        Jsp = spcreator(J)
-        Jspp = spcreator(J[:, 0, None])
-        Ksp = spcreator(K)
-
-        matrices = [A, B, C, D, E, F, G, H, J, K, L]
-        spmatrices = [Asp, Bsp, Csp, Dsp, Esp, Fsp, Gsp, Hsp, Hspp, Jsp, Jspp, Ksp]
-        sp1dmatrices = [Asp, Csp, Gsp]
-
-        # sparse/sparse
-        for i in sp1dmatrices:
-            for j in spmatrices:
-                try:
-                    dense_mult = i.toarray() * j.toarray()
-                except ValueError:
-                    with pytest.raises(ValueError, match='inconsistent shapes'):
-                        i.multiply(j)
-                    continue
-                sp_mult = i.multiply(j)
-                assert_allclose(sp_mult.toarray(), dense_mult)
-
-        # sparse/dense
-        for i in sp1dmatrices:
-            for j in matrices:
-                try:
-                    dense_mult = i.toarray() * j
-                except TypeError:
-                    continue
-                except ValueError:
-                    matchme = 'broadcast together|inconsistent shapes'
-                    with pytest.raises(ValueError, match=matchme):
-                        i.multiply(j)
-                    continue
-                sp_mult = i.multiply(j)
-                assert_allclose(toarray(sp_mult), dense_mult)
-
-    def test_elementwise_divide(self, spcreator, dat1d):
-        datsp = spcreator(dat1d)
-        expected = np.array([1, np.nan, 1, np.nan])
-        actual = datsp / datsp
-        # need assert_array_equal to handle nan values
-        np.testing.assert_array_equal(actual, expected)
-
-        denom = spcreator([1, 0, 0, 4], dtype='d')
-        expected = [3, np.nan, np.inf, 0]
-        np.testing.assert_array_equal(datsp / denom, expected)
-
-        # complex
-        A = np.array([1 - 2j, 0 + 5j, -1 + 0j])
-        B = np.array([5 + 2j, 7 - 3j, -2 + 1j])
-        Asp = spcreator(A)
-        Bsp = spcreator(B)
-        assert_allclose(Asp / Bsp, A / B)
-
-        # integer
-        A = np.array([1, 2, 3])
-        B = np.array([0, 1, 2])
-        Asp = spcreator(A)
-        Bsp = spcreator(B)
-        with np.errstate(divide='ignore'):
-            assert_equal(Asp / Bsp, A / B)
-
-        # mismatching sparsity patterns
-        A = np.array([0, 1])
-        B = np.array([1, 0])
-        Asp = spcreator(A)
-        Bsp = spcreator(B)
-        with np.errstate(divide='ignore', invalid='ignore'):
-            assert_equal(Asp / Bsp, A / B)
-
-    def test_pow(self, spcreator):
-        A = np.array([1, 0, 2, 0])
-        B = spcreator(A)
-
-        # unusual exponents
-        with pytest.raises(ValueError, match='negative integer powers'):
-            B**-1
-        with pytest.raises(NotImplementedError, match='zero power'):
-            B**0
-
-        for exponent in [1, 2, 3, 2.2]:
-            ret_sp = B**exponent
-            ret_np = A**exponent
-            assert_equal(ret_sp.toarray(), ret_np)
-            assert_equal(ret_sp.dtype, ret_np.dtype)
-
-    def test_dot_scalar(self, spcreator, dat1d):
-        A = spcreator(dat1d)
-        scalar = 10
-        actual = A.dot(scalar)
-        expected = A * scalar
-
-        assert_allclose(actual.toarray(), expected.toarray())
-
-    def test_matmul(self, spcreator):
-        Msp = spcreator([2, 0, 3.0])
-        B = spcreator(np.array([[0, 1], [1, 0], [0, 2]], 'd'))
-        col = np.array([[1, 2, 3]]).T
-
-        # check sparse @ dense 2d column
-        assert_allclose(Msp @ col, Msp.toarray() @ col)
-
-        # check sparse1d @ sparse2d, sparse1d @ dense2d, dense1d @ sparse2d
-        assert_allclose((Msp @ B).toarray(), (Msp @ B).toarray())
-        assert_allclose(Msp.toarray() @ B, (Msp @ B).toarray())
-        assert_allclose(Msp @ B.toarray(), (Msp @ B).toarray())
-
-        # check sparse1d @ dense1d, sparse1d @ sparse1d
-        V = np.array([0, 0, 1])
-        assert_allclose(Msp @ V, Msp.toarray() @ V)
-
-        Vsp = spcreator(V)
-        Msp_Vsp = Msp @ Vsp
-        assert isinstance(Msp_Vsp, np.ndarray)
-        assert Msp_Vsp.shape == ()
-
-        # output is 0-dim ndarray
-        assert_allclose(np.array(3), Msp_Vsp)
-        assert_allclose(np.array(3), Msp.toarray() @ Vsp)
-        assert_allclose(np.array(3), Msp @ Vsp.toarray())
-        assert_allclose(np.array(3), Msp.toarray() @ Vsp.toarray())
-
-        # check error on matrix-scalar
-        with pytest.raises(ValueError, match='Scalar operands are not allowed'):
-            Msp @ 1
-        with pytest.raises(ValueError, match='Scalar operands are not allowed'):
-            1 @ Msp
-
-    def test_sub_dense(self, spcreator, datsp_math_dtypes):
-        # subtracting a dense matrix to/from a sparse matrix
-        for dtype, dat, datsp in datsp_math_dtypes[spcreator]:
-            if dtype == np.dtype('bool'):
-                # boolean array subtraction deprecated in 1.9.0
-                continue
-
-            # Manually add to avoid upcasting from scalar
-            # multiplication.
-            sum1 = (dat + dat + dat) - datsp
-            assert_equal(sum1, dat + dat)
-            sum2 = (datsp + datsp + datsp) - dat
-            assert_equal(sum2, dat + dat)
-
-    def test_size_zero_matrix_arithmetic(self, spcreator):
-        # Test basic matrix arithmetic with shapes like 0, (1, 0), (0, 3), etc.
-        mat = np.array([])
-        a = mat.reshape(0)
-        d = mat.reshape((1, 0))
-        f = np.ones([5, 5])
-
-        asp = spcreator(a)
-        dsp = spcreator(d)
-        # bad shape for addition
-        with pytest.raises(ValueError, match='inconsistent shapes'):
-            asp.__add__(dsp)
-
-        # matrix product.
-        assert_equal(asp.dot(asp), np.dot(a, a))
-
-        # bad matrix products
-        with pytest.raises(ValueError, match='dimension mismatch'):
-            asp.dot(f)
-
-        # elemente-wise multiplication
-        assert_equal(asp.multiply(asp).toarray(), np.multiply(a, a))
-
-        assert_equal(asp.multiply(a).toarray(), np.multiply(a, a))
-
-        assert_equal(asp.multiply(6).toarray(), np.multiply(a, 6))
-
-        # bad element-wise multiplication
-        with pytest.raises(ValueError, match='inconsistent shapes'):
-            asp.multiply(f)
-
-        # Addition
-        assert_equal(asp.__add__(asp).toarray(), a.__add__(a))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_array_api.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_array_api.py
deleted file mode 100644
index a3be7b868b1ae7a92d75da616d2f9665e745d4a4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_array_api.py
+++ /dev/null
@@ -1,565 +0,0 @@
-import pytest
-import numpy as np
-import numpy.testing as npt
-import scipy.sparse
-import scipy.sparse.linalg as spla
-
-
-sparray_types = ('bsr', 'coo', 'csc', 'csr', 'dia', 'dok', 'lil')
-
-sparray_classes = [
-    getattr(scipy.sparse, f'{T}_array') for T in sparray_types
-]
-
-A = np.array([
-    [0, 1, 2, 0],
-    [2, 0, 0, 3],
-    [1, 4, 0, 0]
-])
-
-B = np.array([
-    [0, 1],
-    [2, 0]
-])
-
-X = np.array([
-    [1, 0, 0, 1],
-    [2, 1, 2, 0],
-    [0, 2, 1, 0],
-    [0, 0, 1, 2]
-], dtype=float)
-
-
-sparrays = [sparray(A) for sparray in sparray_classes]
-square_sparrays = [sparray(B) for sparray in sparray_classes]
-eig_sparrays = [sparray(X) for sparray in sparray_classes]
-
-parametrize_sparrays = pytest.mark.parametrize(
-    "A", sparrays, ids=sparray_types
-)
-parametrize_square_sparrays = pytest.mark.parametrize(
-    "B", square_sparrays, ids=sparray_types
-)
-parametrize_eig_sparrays = pytest.mark.parametrize(
-    "X", eig_sparrays, ids=sparray_types
-)
-
-
-@parametrize_sparrays
-def test_sum(A):
-    assert not isinstance(A.sum(axis=0), np.matrix), \
-        "Expected array, got matrix"
-    assert A.sum(axis=0).shape == (4,)
-    assert A.sum(axis=1).shape == (3,)
-
-
-@parametrize_sparrays
-def test_mean(A):
-    assert not isinstance(A.mean(axis=1), np.matrix), \
-        "Expected array, got matrix"
-
-
-@parametrize_sparrays
-def test_min_max(A):
-    # Some formats don't support min/max operations, so we skip those here.
-    if hasattr(A, 'min'):
-        assert not isinstance(A.min(axis=1), np.matrix), \
-            "Expected array, got matrix"
-    if hasattr(A, 'max'):
-        assert not isinstance(A.max(axis=1), np.matrix), \
-            "Expected array, got matrix"
-    if hasattr(A, 'argmin'):
-        assert not isinstance(A.argmin(axis=1), np.matrix), \
-            "Expected array, got matrix"
-    if hasattr(A, 'argmax'):
-        assert not isinstance(A.argmax(axis=1), np.matrix), \
-            "Expected array, got matrix"
-
-
-@parametrize_sparrays
-def test_todense(A):
-    assert not isinstance(A.todense(), np.matrix), \
-        "Expected array, got matrix"
-
-
-@parametrize_sparrays
-def test_indexing(A):
-    if A.__class__.__name__[:3] in ('dia', 'coo', 'bsr'):
-        return
-
-    with pytest.raises(NotImplementedError):
-        A[1, :]
-
-    with pytest.raises(NotImplementedError):
-        A[:, 1]
-
-    with pytest.raises(NotImplementedError):
-        A[1, [1, 2]]
-
-    with pytest.raises(NotImplementedError):
-        A[[1, 2], 1]
-
-    assert isinstance(A[[0]], scipy.sparse.sparray), \
-           "Expected sparse array, got sparse matrix"
-    assert isinstance(A[1, [[1, 2]]], scipy.sparse.sparray), \
-           "Expected ndarray, got sparse array"
-    assert isinstance(A[[[1, 2]], 1], scipy.sparse.sparray), \
-           "Expected ndarray, got sparse array"
-    assert isinstance(A[:, [1, 2]], scipy.sparse.sparray), \
-           "Expected sparse array, got something else"
-
-
-@parametrize_sparrays
-def test_dense_addition(A):
-    X = np.random.random(A.shape)
-    assert not isinstance(A + X, np.matrix), "Expected array, got matrix"
-
-
-@parametrize_sparrays
-def test_sparse_addition(A):
-    assert isinstance((A + A), scipy.sparse.sparray), "Expected array, got matrix"
-
-
-@parametrize_sparrays
-def test_elementwise_mul(A):
-    assert np.all((A * A).todense() == A.power(2).todense())
-
-
-@parametrize_sparrays
-def test_elementwise_rmul(A):
-    with pytest.raises(TypeError):
-        None * A
-
-    with pytest.raises(ValueError):
-        np.eye(3) * scipy.sparse.csr_array(np.arange(6).reshape(2, 3))
-
-    assert np.all((2 * A) == (A.todense() * 2))
-
-    assert np.all((A.todense() * A) == (A.todense() ** 2))
-
-
-@parametrize_sparrays
-def test_matmul(A):
-    assert np.all((A @ A.T).todense() == A.dot(A.T).todense())
-
-
-@parametrize_sparrays
-def test_power_operator(A):
-    assert isinstance((A**2), scipy.sparse.sparray), "Expected array, got matrix"
-
-    # https://github.com/scipy/scipy/issues/15948
-    npt.assert_equal((A**2).todense(), (A.todense())**2)
-
-    # power of zero is all ones (dense) so helpful msg exception
-    with pytest.raises(NotImplementedError, match="zero power"):
-        A**0
-
-
-@parametrize_sparrays
-def test_sparse_divide(A):
-    assert isinstance(A / A, np.ndarray)
-
-@parametrize_sparrays
-def test_sparse_dense_divide(A):
-    with pytest.warns(RuntimeWarning):
-        assert isinstance((A / A.todense()), scipy.sparse.sparray)
-
-@parametrize_sparrays
-def test_dense_divide(A):
-    assert isinstance((A / 2), scipy.sparse.sparray), "Expected array, got matrix"
-
-
-@parametrize_sparrays
-def test_no_A_attr(A):
-    with pytest.raises(AttributeError):
-        A.A
-
-
-@parametrize_sparrays
-def test_no_H_attr(A):
-    with pytest.raises(AttributeError):
-        A.H
-
-
-@parametrize_sparrays
-def test_getrow_getcol(A):
-    assert isinstance(A._getcol(0), scipy.sparse.sparray)
-    assert isinstance(A._getrow(0), scipy.sparse.sparray)
-
-
-# -- linalg --
-
-@parametrize_sparrays
-def test_as_linearoperator(A):
-    L = spla.aslinearoperator(A)
-    npt.assert_allclose(L * [1, 2, 3, 4], A @ [1, 2, 3, 4])
-
-
-@parametrize_square_sparrays
-def test_inv(B):
-    if B.__class__.__name__[:3] != 'csc':
-        return
-
-    C = spla.inv(B)
-
-    assert isinstance(C, scipy.sparse.sparray)
-    npt.assert_allclose(C.todense(), np.linalg.inv(B.todense()))
-
-
-@parametrize_square_sparrays
-def test_expm(B):
-    if B.__class__.__name__[:3] != 'csc':
-        return
-
-    Bmat = scipy.sparse.csc_matrix(B)
-
-    C = spla.expm(B)
-
-    assert isinstance(C, scipy.sparse.sparray)
-    npt.assert_allclose(
-        C.todense(),
-        spla.expm(Bmat).todense()
-    )
-
-
-@parametrize_square_sparrays
-def test_expm_multiply(B):
-    if B.__class__.__name__[:3] != 'csc':
-        return
-
-    npt.assert_allclose(
-        spla.expm_multiply(B, np.array([1, 2])),
-        spla.expm(B) @ [1, 2]
-    )
-
-
-@parametrize_sparrays
-def test_norm(A):
-    C = spla.norm(A)
-    npt.assert_allclose(C, np.linalg.norm(A.todense()))
-
-
-@parametrize_square_sparrays
-def test_onenormest(B):
-    C = spla.onenormest(B)
-    npt.assert_allclose(C, np.linalg.norm(B.todense(), 1))
-
-
-@parametrize_square_sparrays
-def test_spsolve(B):
-    if B.__class__.__name__[:3] not in ('csc', 'csr'):
-        return
-
-    npt.assert_allclose(
-        spla.spsolve(B, [1, 2]),
-        np.linalg.solve(B.todense(), [1, 2])
-    )
-
-
-@pytest.mark.parametrize("fmt",["csr","csc"])
-def test_spsolve_triangular(fmt):
-    arr = [
-        [1, 0, 0, 0],
-        [2, 1, 0, 0],
-        [3, 2, 1, 0],
-        [4, 3, 2, 1],
-    ]
-    if fmt == "csr":
-      X = scipy.sparse.csr_array(arr)
-    else:
-      X = scipy.sparse.csc_array(arr)
-    spla.spsolve_triangular(X, [1, 2, 3, 4])
-
-
-@parametrize_square_sparrays
-def test_factorized(B):
-    if B.__class__.__name__[:3] != 'csc':
-        return
-
-    LU = spla.factorized(B)
-    npt.assert_allclose(
-        LU(np.array([1, 2])),
-        np.linalg.solve(B.todense(), [1, 2])
-    )
-
-
-@parametrize_square_sparrays
-@pytest.mark.parametrize(
-    "solver",
-    ["bicg", "bicgstab", "cg", "cgs", "gmres", "lgmres", "minres", "qmr",
-     "gcrotmk", "tfqmr"]
-)
-def test_solvers(B, solver):
-    if solver == "minres":
-        kwargs = {}
-    else:
-        kwargs = {'atol': 1e-5}
-
-    x, info = getattr(spla, solver)(B, np.array([1, 2]), **kwargs)
-    assert info >= 0  # no errors, even if perhaps did not converge fully
-    npt.assert_allclose(x, [1, 1], atol=1e-1)
-
-
-@parametrize_sparrays
-@pytest.mark.parametrize(
-    "solver",
-    ["lsqr", "lsmr"]
-)
-def test_lstsqr(A, solver):
-    x, *_ = getattr(spla, solver)(A, [1, 2, 3])
-    npt.assert_allclose(A @ x, [1, 2, 3])
-
-
-@parametrize_eig_sparrays
-def test_eigs(X):
-    e, v = spla.eigs(X, k=1)
-    npt.assert_allclose(
-        X @ v,
-        e[0] * v
-    )
-
-
-@parametrize_eig_sparrays
-def test_eigsh(X):
-    X = X + X.T
-    e, v = spla.eigsh(X, k=1)
-    npt.assert_allclose(
-        X @ v,
-        e[0] * v
-    )
-
-
-@parametrize_eig_sparrays
-def test_svds(X):
-    u, s, vh = spla.svds(X, k=3)
-    u2, s2, vh2 = np.linalg.svd(X.todense())
-    s = np.sort(s)
-    s2 = np.sort(s2[:3])
-    npt.assert_allclose(s, s2, atol=1e-3)
-
-
-def test_splu():
-    X = scipy.sparse.csc_array([
-        [1, 0, 0, 0],
-        [2, 1, 0, 0],
-        [3, 2, 1, 0],
-        [4, 3, 2, 1],
-    ])
-    LU = spla.splu(X)
-    npt.assert_allclose(
-        LU.solve(np.array([1, 2, 3, 4])),
-        np.asarray([1, 0, 0, 0], dtype=np.float64),
-        rtol=1e-14, atol=3e-16
-    )
-
-
-def test_spilu():
-    X = scipy.sparse.csc_array([
-        [1, 0, 0, 0],
-        [2, 1, 0, 0],
-        [3, 2, 1, 0],
-        [4, 3, 2, 1],
-    ])
-    LU = spla.spilu(X)
-    npt.assert_allclose(
-        LU.solve(np.array([1, 2, 3, 4])),
-        np.asarray([1, 0, 0, 0], dtype=np.float64),
-        rtol=1e-14, atol=3e-16
-    )
-
-
-@pytest.mark.parametrize(
-    "cls,indices_attrs",
-    [
-        (
-            scipy.sparse.csr_array,
-            ["indices", "indptr"],
-        ),
-        (
-            scipy.sparse.csc_array,
-            ["indices", "indptr"],
-        ),
-        (
-            scipy.sparse.coo_array,
-            ["row", "col"],
-        ),
-    ]
-)
-@pytest.mark.parametrize("expected_dtype", [np.int64, np.int32])
-def test_index_dtype_compressed(cls, indices_attrs, expected_dtype):
-    input_array = scipy.sparse.coo_array(np.arange(9).reshape(3, 3))
-    coo_tuple = (
-        input_array.data,
-        (
-            input_array.row.astype(expected_dtype),
-            input_array.col.astype(expected_dtype),
-        )
-    )
-
-    result = cls(coo_tuple)
-    for attr in indices_attrs:
-        assert getattr(result, attr).dtype == expected_dtype
-
-    result = cls(coo_tuple, shape=(3, 3))
-    for attr in indices_attrs:
-        assert getattr(result, attr).dtype == expected_dtype
-
-    if issubclass(cls, scipy.sparse._compressed._cs_matrix):
-        input_array_csr = input_array.tocsr()
-        csr_tuple = (
-            input_array_csr.data,
-            input_array_csr.indices.astype(expected_dtype),
-            input_array_csr.indptr.astype(expected_dtype),
-        )
-
-        result = cls(csr_tuple)
-        for attr in indices_attrs:
-            assert getattr(result, attr).dtype == expected_dtype
-
-        result = cls(csr_tuple, shape=(3, 3))
-        for attr in indices_attrs:
-            assert getattr(result, attr).dtype == expected_dtype
-
-
-def test_default_is_matrix_diags():
-    m = scipy.sparse.diags([0, 1, 2])
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-def test_default_is_matrix_eye():
-    m = scipy.sparse.eye(3)
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-def test_default_is_matrix_spdiags():
-    m = scipy.sparse.spdiags([1, 2, 3], 0, 3, 3)
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-def test_default_is_matrix_identity():
-    m = scipy.sparse.identity(3)
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-def test_default_is_matrix_kron_dense():
-    m = scipy.sparse.kron(
-        np.array([[1, 2], [3, 4]]), np.array([[4, 3], [2, 1]])
-    )
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-def test_default_is_matrix_kron_sparse():
-    m = scipy.sparse.kron(
-        np.array([[1, 2], [3, 4]]), np.array([[1, 0], [0, 0]])
-    )
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-def test_default_is_matrix_kronsum():
-    m = scipy.sparse.kronsum(
-        np.array([[1, 0], [0, 1]]), np.array([[0, 1], [1, 0]])
-    )
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-def test_default_is_matrix_random():
-    m = scipy.sparse.random(3, 3)
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-def test_default_is_matrix_rand():
-    m = scipy.sparse.rand(3, 3)
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-@pytest.mark.parametrize("fn", (scipy.sparse.hstack, scipy.sparse.vstack))
-def test_default_is_matrix_stacks(fn):
-    """Same idea as `test_default_construction_fn_matrices`, but for the
-    stacking creation functions."""
-    A = scipy.sparse.coo_matrix(np.eye(2))
-    B = scipy.sparse.coo_matrix([[0, 1], [1, 0]])
-    m = fn([A, B])
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-def test_blocks_default_construction_fn_matrices():
-    """Same idea as `test_default_construction_fn_matrices`, but for the block
-    creation function"""
-    A = scipy.sparse.coo_matrix(np.eye(2))
-    B = scipy.sparse.coo_matrix([[2], [0]])
-    C = scipy.sparse.coo_matrix([[3]])
-
-    # block diag
-    m = scipy.sparse.block_diag((A, B, C))
-    assert not isinstance(m, scipy.sparse.sparray)
-
-    # bmat
-    m = scipy.sparse.bmat([[A, None], [None, C]])
-    assert not isinstance(m, scipy.sparse.sparray)
-
-
-def test_format_property():
-    for fmt in sparray_types:
-        arr_cls = getattr(scipy.sparse, f"{fmt}_array")
-        M = arr_cls([[1, 2]])
-        assert M.format == fmt
-        assert M._format == fmt
-        with pytest.raises(AttributeError):
-            M.format = "qqq"
-
-
-def test_issparse():
-    m = scipy.sparse.eye(3)
-    a = scipy.sparse.csr_array(m)
-    assert not isinstance(m, scipy.sparse.sparray)
-    assert isinstance(a, scipy.sparse.sparray)
-
-    # Both sparse arrays and sparse matrices should be sparse
-    assert scipy.sparse.issparse(a)
-    assert scipy.sparse.issparse(m)
-
-    # ndarray and array_likes are not sparse
-    assert not scipy.sparse.issparse(a.todense())
-    assert not scipy.sparse.issparse(m.todense())
-
-
-def test_isspmatrix():
-    m = scipy.sparse.eye(3)
-    a = scipy.sparse.csr_array(m)
-    assert not isinstance(m, scipy.sparse.sparray)
-    assert isinstance(a, scipy.sparse.sparray)
-
-    # Should only be true for sparse matrices, not sparse arrays
-    assert not scipy.sparse.isspmatrix(a)
-    assert scipy.sparse.isspmatrix(m)
-
-    # ndarray and array_likes are not sparse
-    assert not scipy.sparse.isspmatrix(a.todense())
-    assert not scipy.sparse.isspmatrix(m.todense())
-
-
-@pytest.mark.parametrize(
-    ("fmt", "fn"),
-    (
-        ("bsr", scipy.sparse.isspmatrix_bsr),
-        ("coo", scipy.sparse.isspmatrix_coo),
-        ("csc", scipy.sparse.isspmatrix_csc),
-        ("csr", scipy.sparse.isspmatrix_csr),
-        ("dia", scipy.sparse.isspmatrix_dia),
-        ("dok", scipy.sparse.isspmatrix_dok),
-        ("lil", scipy.sparse.isspmatrix_lil),
-    ),
-)
-def test_isspmatrix_format(fmt, fn):
-    m = scipy.sparse.eye(3, format=fmt)
-    a = scipy.sparse.csr_array(m).asformat(fmt)
-    assert not isinstance(m, scipy.sparse.sparray)
-    assert isinstance(a, scipy.sparse.sparray)
-
-    # Should only be true for sparse matrices, not sparse arrays
-    assert not fn(a)
-    assert fn(m)
-
-    # ndarray and array_likes are not sparse
-    assert not fn(a.todense())
-    assert not fn(m.todense())
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_base.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_base.py
deleted file mode 100644
index 1aa76b8ff26efea45b36ad41e99ad8b6c8a127b2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_base.py
+++ /dev/null
@@ -1,5210 +0,0 @@
-#
-# Authors: Travis Oliphant, Ed Schofield, Robert Cimrman, Nathan Bell, and others
-
-""" Test functions for sparse matrices. Each class in the "Matrix class
-based tests" section become subclasses of the classes in the "Generic
-tests" section. This is done by the functions in the "Tailored base
-class for generic tests" section.
-
-"""
-
-
-import contextlib
-import functools
-import operator
-import platform
-import itertools
-import sys
-
-import pytest
-from pytest import raises as assert_raises
-
-import numpy as np
-from numpy import (arange, zeros, array, dot, asarray,
-                   vstack, ndarray, transpose, diag, kron, inf, conjugate,
-                   int8)
-
-import random
-from numpy.testing import (assert_equal, assert_array_equal,
-        assert_array_almost_equal, assert_almost_equal, assert_,
-        assert_allclose, suppress_warnings)
-
-import scipy.linalg
-
-import scipy.sparse as sparse
-from scipy.sparse import (csc_matrix, csr_matrix, dok_matrix,
-        coo_matrix, lil_matrix, dia_matrix, bsr_matrix,
-        eye, issparse, SparseEfficiencyWarning, sparray)
-from scipy.sparse._base import _formats
-from scipy.sparse._sputils import (supported_dtypes, isscalarlike,
-                                   get_index_dtype, asmatrix, matrix)
-from scipy.sparse.linalg import splu, expm, inv
-
-from scipy._lib.decorator import decorator
-from scipy._lib._util import ComplexWarning
-
-
-IS_COLAB = ('google.colab' in sys.modules)
-
-
-def assert_in(member, collection, msg=None):
-    message = msg if msg is not None else f"{member!r} not found in {collection!r}"
-    assert_(member in collection, msg=message)
-
-
-def assert_array_equal_dtype(x, y, **kwargs):
-    assert_(x.dtype == y.dtype)
-    assert_array_equal(x, y, **kwargs)
-
-
-NON_ARRAY_BACKED_FORMATS = frozenset(['dok'])
-
-def sparse_may_share_memory(A, B):
-    # Checks if A and B have any numpy array sharing memory.
-
-    def _underlying_arrays(x):
-        # Given any object (e.g. a sparse array), returns all numpy arrays
-        # stored in any attribute.
-
-        arrays = []
-        for a in x.__dict__.values():
-            if isinstance(a, (np.ndarray, np.generic)):
-                arrays.append(a)
-        return arrays
-
-    for a in _underlying_arrays(A):
-        for b in _underlying_arrays(B):
-            if np.may_share_memory(a, b):
-                return True
-    return False
-
-
-sup_complex = suppress_warnings()
-sup_complex.filter(ComplexWarning)
-
-
-def with_64bit_maxval_limit(maxval_limit=None, random=False, fixed_dtype=None,
-                            downcast_maxval=None, assert_32bit=False):
-    """
-    Monkeypatch the maxval threshold at which scipy.sparse switches to
-    64-bit index arrays, or make it (pseudo-)random.
-
-    """
-    if maxval_limit is None:
-        maxval_limit = np.int64(10)
-    else:
-        # Ensure we use numpy scalars rather than Python scalars (matters for
-        # NEP 50 casting rule changes)
-        maxval_limit = np.int64(maxval_limit)
-
-    if assert_32bit:
-        def new_get_index_dtype(arrays=(), maxval=None, check_contents=False):
-            tp = get_index_dtype(arrays, maxval, check_contents)
-            assert_equal(np.iinfo(tp).max, np.iinfo(np.int32).max)
-            assert_(tp == np.int32 or tp == np.intc)
-            return tp
-    elif fixed_dtype is not None:
-        def new_get_index_dtype(arrays=(), maxval=None, check_contents=False):
-            return fixed_dtype
-    elif random:
-        counter = np.random.RandomState(seed=1234)
-
-        def new_get_index_dtype(arrays=(), maxval=None, check_contents=False):
-            return (np.int32, np.int64)[counter.randint(2)]
-    else:
-        def new_get_index_dtype(arrays=(), maxval=None, check_contents=False):
-            dtype = np.int32
-            if maxval is not None:
-                if maxval > maxval_limit:
-                    dtype = np.int64
-            for arr in arrays:
-                arr = np.asarray(arr)
-                if arr.dtype > np.int32:
-                    if check_contents:
-                        if arr.size == 0:
-                            # a bigger type not needed
-                            continue
-                        elif np.issubdtype(arr.dtype, np.integer):
-                            maxval = arr.max()
-                            minval = arr.min()
-                            if minval >= -maxval_limit and maxval <= maxval_limit:
-                                # a bigger type not needed
-                                continue
-                    dtype = np.int64
-            return dtype
-
-    if downcast_maxval is not None:
-        def new_downcast_intp_index(arr):
-            if arr.max() > downcast_maxval:
-                raise AssertionError("downcast limited")
-            return arr.astype(np.intp)
-
-    @decorator
-    def deco(func, *a, **kw):
-        backup = []
-        modules = [scipy.sparse._bsr, scipy.sparse._coo, scipy.sparse._csc,
-                   scipy.sparse._csr, scipy.sparse._dia, scipy.sparse._dok,
-                   scipy.sparse._lil, scipy.sparse._sputils,
-                   scipy.sparse._compressed, scipy.sparse._construct]
-        try:
-            for mod in modules:
-                backup.append((mod, 'get_index_dtype',
-                               getattr(mod, 'get_index_dtype', None)))
-                setattr(mod, 'get_index_dtype', new_get_index_dtype)
-                if downcast_maxval is not None:
-                    backup.append((mod, 'downcast_intp_index',
-                                   getattr(mod, 'downcast_intp_index', None)))
-                    setattr(mod, 'downcast_intp_index', new_downcast_intp_index)
-            return func(*a, **kw)
-        finally:
-            for mod, name, oldfunc in backup:
-                if oldfunc is not None:
-                    setattr(mod, name, oldfunc)
-
-    return deco
-
-
-def toarray(a):
-    if isinstance(a, np.ndarray) or isscalarlike(a):
-        return a
-    return a.toarray()
-
-
-class BinopTester:
-    # Custom type to test binary operations on sparse matrices.
-
-    def __add__(self, mat):
-        return "matrix on the right"
-
-    def __mul__(self, mat):
-        return "matrix on the right"
-
-    def __sub__(self, mat):
-        return "matrix on the right"
-
-    def __radd__(self, mat):
-        return "matrix on the left"
-
-    def __rmul__(self, mat):
-        return "matrix on the left"
-
-    def __rsub__(self, mat):
-        return "matrix on the left"
-
-    def __matmul__(self, mat):
-        return "matrix on the right"
-
-    def __rmatmul__(self, mat):
-        return "matrix on the left"
-
-class BinopTester_with_shape:
-    # Custom type to test binary operations on sparse matrices
-    # with object which has shape attribute.
-    def __init__(self,shape):
-        self._shape = shape
-
-    def shape(self):
-        return self._shape
-
-    def ndim(self):
-        return len(self._shape)
-
-    def __add__(self, mat):
-        return "matrix on the right"
-
-    def __mul__(self, mat):
-        return "matrix on the right"
-
-    def __sub__(self, mat):
-        return "matrix on the right"
-
-    def __radd__(self, mat):
-        return "matrix on the left"
-
-    def __rmul__(self, mat):
-        return "matrix on the left"
-
-    def __rsub__(self, mat):
-        return "matrix on the left"
-
-    def __matmul__(self, mat):
-        return "matrix on the right"
-
-    def __rmatmul__(self, mat):
-        return "matrix on the left"
-
-class ComparisonTester:
-    # Custom type to test comparison operations on sparse matrices.
-    def __eq__(self, other):
-        return "eq"
-
-    def __ne__(self, other):
-        return "ne"
-
-    def __lt__(self, other):
-        return "lt"
-
-    def __le__(self, other):
-        return "le"
-
-    def __gt__(self, other):
-        return "gt"
-
-    def __ge__(self, other):
-        return "ge"
-
-
-#------------------------------------------------------------------------------
-# Generic tests
-#------------------------------------------------------------------------------
-
-
-# TODO test prune
-# TODO test has_sorted_indices
-class _TestCommon:
-    """test common functionality shared by all sparse formats"""
-    math_dtypes = supported_dtypes
-
-    @classmethod
-    def init_class(cls):
-        # Canonical data.
-        cls.dat = array([[1, 0, 0, 2], [3, 0, 1, 0], [0, 2, 0, 0]], 'd')
-        cls.datsp = cls.spcreator(cls.dat)
-
-        # Some sparse and dense matrices with data for every supported dtype.
-        # This set union is a workaround for numpy#6295, which means that
-        # two np.int64 dtypes don't hash to the same value.
-        cls.checked_dtypes = set(supported_dtypes).union(cls.math_dtypes)
-        cls.dat_dtypes = {}
-        cls.datsp_dtypes = {}
-        for dtype in cls.checked_dtypes:
-            cls.dat_dtypes[dtype] = cls.dat.astype(dtype)
-            cls.datsp_dtypes[dtype] = cls.spcreator(cls.dat.astype(dtype))
-
-        # Check that the original data is equivalent to the
-        # corresponding dat_dtypes & datsp_dtypes.
-        assert_equal(cls.dat, cls.dat_dtypes[np.float64])
-        assert_equal(cls.datsp.toarray(),
-                     cls.datsp_dtypes[np.float64].toarray())
-
-    def test_bool(self):
-        def check(dtype):
-            datsp = self.datsp_dtypes[dtype]
-
-            assert_raises(ValueError, bool, datsp)
-            assert_(self.spcreator([[1]]))
-            assert_(not self.spcreator([[0]]))
-
-        if isinstance(self, TestDOK):
-            pytest.skip("Cannot create a rank <= 2 DOK matrix.")
-        for dtype in self.checked_dtypes:
-            check(dtype)
-
-    def test_bool_rollover(self):
-        # bool's underlying dtype is 1 byte, check that it does not
-        # rollover True -> False at 256.
-        dat = array([[True, False]])
-        datsp = self.spcreator(dat)
-
-        for _ in range(10):
-            datsp = datsp + datsp
-            dat = dat + dat
-        assert_array_equal(dat, datsp.toarray())
-
-    def test_eq(self):
-        sup = suppress_warnings()
-        sup.filter(SparseEfficiencyWarning)
-
-        @sup
-        @sup_complex
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-            dat2 = dat.copy()
-            dat2[:,0] = 0
-            datsp2 = self.spcreator(dat2)
-            datbsr = bsr_matrix(dat)
-            datcsr = csr_matrix(dat)
-            datcsc = csc_matrix(dat)
-            datlil = lil_matrix(dat)
-
-            # sparse/sparse
-            assert_array_equal_dtype(dat == dat2, (datsp == datsp2).toarray())
-            # mix sparse types
-            assert_array_equal_dtype(dat == dat2, (datbsr == datsp2).toarray())
-            assert_array_equal_dtype(dat == dat2, (datcsr == datsp2).toarray())
-            assert_array_equal_dtype(dat == dat2, (datcsc == datsp2).toarray())
-            assert_array_equal_dtype(dat == dat2, (datlil == datsp2).toarray())
-            # sparse/dense
-            assert_array_equal_dtype(dat == datsp2, datsp2 == dat)
-            # sparse/scalar
-            assert_array_equal_dtype(dat == 0, (datsp == 0).toarray())
-            assert_array_equal_dtype(dat == 1, (datsp == 1).toarray())
-            assert_array_equal_dtype(dat == np.nan,
-                                     (datsp == np.nan).toarray())
-
-        if not isinstance(self, (TestBSR, TestCSC, TestCSR)):
-            pytest.skip("Bool comparisons only implemented for BSR, CSC, and CSR.")
-        for dtype in self.checked_dtypes:
-            check(dtype)
-
-    def test_ne(self):
-        sup = suppress_warnings()
-        sup.filter(SparseEfficiencyWarning)
-
-        @sup
-        @sup_complex
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-            dat2 = dat.copy()
-            dat2[:,0] = 0
-            datsp2 = self.spcreator(dat2)
-            datbsr = bsr_matrix(dat)
-            datcsc = csc_matrix(dat)
-            datcsr = csr_matrix(dat)
-            datlil = lil_matrix(dat)
-
-            # sparse/sparse
-            assert_array_equal_dtype(dat != dat2, (datsp != datsp2).toarray())
-            # mix sparse types
-            assert_array_equal_dtype(dat != dat2, (datbsr != datsp2).toarray())
-            assert_array_equal_dtype(dat != dat2, (datcsc != datsp2).toarray())
-            assert_array_equal_dtype(dat != dat2, (datcsr != datsp2).toarray())
-            assert_array_equal_dtype(dat != dat2, (datlil != datsp2).toarray())
-            # sparse/dense
-            assert_array_equal_dtype(dat != datsp2, datsp2 != dat)
-            # sparse/scalar
-            assert_array_equal_dtype(dat != 0, (datsp != 0).toarray())
-            assert_array_equal_dtype(dat != 1, (datsp != 1).toarray())
-            assert_array_equal_dtype(0 != dat, (0 != datsp).toarray())
-            assert_array_equal_dtype(1 != dat, (1 != datsp).toarray())
-            assert_array_equal_dtype(dat != np.nan,
-                                     (datsp != np.nan).toarray())
-
-        if not isinstance(self, (TestBSR, TestCSC, TestCSR)):
-            pytest.skip("Bool comparisons only implemented for BSR, CSC, and CSR.")
-        for dtype in self.checked_dtypes:
-            check(dtype)
-
-    def test_lt(self):
-        sup = suppress_warnings()
-        sup.filter(SparseEfficiencyWarning)
-
-        @sup
-        @sup_complex
-        def check(dtype):
-            # data
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-            dat2 = dat.copy()
-            dat2[:,0] = 0
-            datsp2 = self.spcreator(dat2)
-            datcomplex = dat.astype(complex)
-            datcomplex[:,0] = 1 + 1j
-            datspcomplex = self.spcreator(datcomplex)
-            datbsr = bsr_matrix(dat)
-            datcsc = csc_matrix(dat)
-            datcsr = csr_matrix(dat)
-            datlil = lil_matrix(dat)
-
-            # sparse/sparse
-            assert_array_equal_dtype(dat < dat2, (datsp < datsp2).toarray())
-            assert_array_equal_dtype(datcomplex < dat2,
-                                     (datspcomplex < datsp2).toarray())
-            # mix sparse types
-            assert_array_equal_dtype(dat < dat2, (datbsr < datsp2).toarray())
-            assert_array_equal_dtype(dat < dat2, (datcsc < datsp2).toarray())
-            assert_array_equal_dtype(dat < dat2, (datcsr < datsp2).toarray())
-            assert_array_equal_dtype(dat < dat2, (datlil < datsp2).toarray())
-
-            assert_array_equal_dtype(dat2 < dat, (datsp2 < datbsr).toarray())
-            assert_array_equal_dtype(dat2 < dat, (datsp2 < datcsc).toarray())
-            assert_array_equal_dtype(dat2 < dat, (datsp2 < datcsr).toarray())
-            assert_array_equal_dtype(dat2 < dat, (datsp2 < datlil).toarray())
-            # sparse/dense
-            assert_array_equal_dtype(dat < dat2, datsp < dat2)
-            assert_array_equal_dtype(datcomplex < dat2, datspcomplex < dat2)
-            # sparse/scalar
-            for val in [2, 1, 0, -1, -2]:
-                val = np.int64(val)  # avoid Python scalar (due to NEP 50 changes)
-                assert_array_equal_dtype((datsp < val).toarray(), dat < val)
-                assert_array_equal_dtype((val < datsp).toarray(), val < dat)
-
-            with np.errstate(invalid='ignore'):
-                assert_array_equal_dtype((datsp < np.nan).toarray(),
-                                         dat < np.nan)
-
-            # data
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-            dat2 = dat.copy()
-            dat2[:,0] = 0
-            datsp2 = self.spcreator(dat2)
-
-            # dense rhs
-            assert_array_equal_dtype(dat < datsp2, datsp < dat2)
-
-        if not isinstance(self, (TestBSR, TestCSC, TestCSR)):
-            pytest.skip("Bool comparisons only implemented for BSR, CSC, and CSR.")
-        for dtype in self.checked_dtypes:
-            check(dtype)
-
-    def test_gt(self):
-        sup = suppress_warnings()
-        sup.filter(SparseEfficiencyWarning)
-
-        @sup
-        @sup_complex
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-            dat2 = dat.copy()
-            dat2[:,0] = 0
-            datsp2 = self.spcreator(dat2)
-            datcomplex = dat.astype(complex)
-            datcomplex[:,0] = 1 + 1j
-            datspcomplex = self.spcreator(datcomplex)
-            datbsr = bsr_matrix(dat)
-            datcsc = csc_matrix(dat)
-            datcsr = csr_matrix(dat)
-            datlil = lil_matrix(dat)
-
-            # sparse/sparse
-            assert_array_equal_dtype(dat > dat2, (datsp > datsp2).toarray())
-            assert_array_equal_dtype(datcomplex > dat2,
-                                     (datspcomplex > datsp2).toarray())
-            # mix sparse types
-            assert_array_equal_dtype(dat > dat2, (datbsr > datsp2).toarray())
-            assert_array_equal_dtype(dat > dat2, (datcsc > datsp2).toarray())
-            assert_array_equal_dtype(dat > dat2, (datcsr > datsp2).toarray())
-            assert_array_equal_dtype(dat > dat2, (datlil > datsp2).toarray())
-
-            assert_array_equal_dtype(dat2 > dat, (datsp2 > datbsr).toarray())
-            assert_array_equal_dtype(dat2 > dat, (datsp2 > datcsc).toarray())
-            assert_array_equal_dtype(dat2 > dat, (datsp2 > datcsr).toarray())
-            assert_array_equal_dtype(dat2 > dat, (datsp2 > datlil).toarray())
-            # sparse/dense
-            assert_array_equal_dtype(dat > dat2, datsp > dat2)
-            assert_array_equal_dtype(datcomplex > dat2, datspcomplex > dat2)
-            # sparse/scalar
-            for val in [2, 1, 0, -1, -2]:
-                val = np.int64(val)  # avoid Python scalar (due to NEP 50 changes)
-                assert_array_equal_dtype((datsp > val).toarray(), dat > val)
-                assert_array_equal_dtype((val > datsp).toarray(), val > dat)
-
-            with np.errstate(invalid='ignore'):
-                assert_array_equal_dtype((datsp > np.nan).toarray(),
-                                         dat > np.nan)
-
-            # data
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-            dat2 = dat.copy()
-            dat2[:,0] = 0
-            datsp2 = self.spcreator(dat2)
-
-            # dense rhs
-            assert_array_equal_dtype(dat > datsp2, datsp > dat2)
-
-        if not isinstance(self, (TestBSR, TestCSC, TestCSR)):
-            pytest.skip("Bool comparisons only implemented for BSR, CSC, and CSR.")
-        for dtype in self.checked_dtypes:
-            check(dtype)
-
-    def test_le(self):
-        sup = suppress_warnings()
-        sup.filter(SparseEfficiencyWarning)
-
-        @sup
-        @sup_complex
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-            dat2 = dat.copy()
-            dat2[:,0] = 0
-            datsp2 = self.spcreator(dat2)
-            datcomplex = dat.astype(complex)
-            datcomplex[:,0] = 1 + 1j
-            datspcomplex = self.spcreator(datcomplex)
-            datbsr = bsr_matrix(dat)
-            datcsc = csc_matrix(dat)
-            datcsr = csr_matrix(dat)
-            datlil = lil_matrix(dat)
-
-            # sparse/sparse
-            assert_array_equal_dtype(dat <= dat2, (datsp <= datsp2).toarray())
-            assert_array_equal_dtype(datcomplex <= dat2,
-                                     (datspcomplex <= datsp2).toarray())
-            # mix sparse types
-            assert_array_equal_dtype((datbsr <= datsp2).toarray(), dat <= dat2)
-            assert_array_equal_dtype((datcsc <= datsp2).toarray(), dat <= dat2)
-            assert_array_equal_dtype((datcsr <= datsp2).toarray(), dat <= dat2)
-            assert_array_equal_dtype((datlil <= datsp2).toarray(), dat <= dat2)
-
-            assert_array_equal_dtype((datsp2 <= datbsr).toarray(), dat2 <= dat)
-            assert_array_equal_dtype((datsp2 <= datcsc).toarray(), dat2 <= dat)
-            assert_array_equal_dtype((datsp2 <= datcsr).toarray(), dat2 <= dat)
-            assert_array_equal_dtype((datsp2 <= datlil).toarray(), dat2 <= dat)
-            # sparse/dense
-            assert_array_equal_dtype(datsp <= dat2, dat <= dat2)
-            assert_array_equal_dtype(datspcomplex <= dat2, datcomplex <= dat2)
-            # sparse/scalar
-            for val in [2, 1, -1, -2]:
-                val = np.int64(val)  # avoid Python scalar (due to NEP 50 changes)
-                assert_array_equal_dtype((datsp <= val).toarray(), dat <= val)
-                assert_array_equal_dtype((val <= datsp).toarray(), val <= dat)
-
-            # data
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-            dat2 = dat.copy()
-            dat2[:,0] = 0
-            datsp2 = self.spcreator(dat2)
-
-            # dense rhs
-            assert_array_equal_dtype(dat <= datsp2, datsp <= dat2)
-
-        if not isinstance(self, (TestBSR, TestCSC, TestCSR)):
-            pytest.skip("Bool comparisons only implemented for BSR, CSC, and CSR.")
-        for dtype in self.checked_dtypes:
-            check(dtype)
-
-    def test_ge(self):
-        sup = suppress_warnings()
-        sup.filter(SparseEfficiencyWarning)
-
-        @sup
-        @sup_complex
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-            dat2 = dat.copy()
-            dat2[:,0] = 0
-            datsp2 = self.spcreator(dat2)
-            datcomplex = dat.astype(complex)
-            datcomplex[:,0] = 1 + 1j
-            datspcomplex = self.spcreator(datcomplex)
-            datbsr = bsr_matrix(dat)
-            datcsc = csc_matrix(dat)
-            datcsr = csr_matrix(dat)
-            datlil = lil_matrix(dat)
-
-            # sparse/sparse
-            assert_array_equal_dtype(dat >= dat2, (datsp >= datsp2).toarray())
-            assert_array_equal_dtype(datcomplex >= dat2,
-                                     (datspcomplex >= datsp2).toarray())
-            # mix sparse types
-            assert_array_equal_dtype((datbsr >= datsp2).toarray(), dat >= dat2)
-            assert_array_equal_dtype((datcsc >= datsp2).toarray(), dat >= dat2)
-            assert_array_equal_dtype((datcsr >= datsp2).toarray(), dat >= dat2)
-            assert_array_equal_dtype((datlil >= datsp2).toarray(), dat >= dat2)
-
-            assert_array_equal_dtype((datsp2 >= datbsr).toarray(), dat2 >= dat)
-            assert_array_equal_dtype((datsp2 >= datcsc).toarray(), dat2 >= dat)
-            assert_array_equal_dtype((datsp2 >= datcsr).toarray(), dat2 >= dat)
-            assert_array_equal_dtype((datsp2 >= datlil).toarray(), dat2 >= dat)
-            # sparse/dense
-            assert_array_equal_dtype(datsp >= dat2, dat >= dat2)
-            assert_array_equal_dtype(datspcomplex >= dat2, datcomplex >= dat2)
-            # sparse/scalar
-            for val in [2, 1, -1, -2]:
-                val = np.int64(val)  # avoid Python scalar (due to NEP 50 changes)
-                assert_array_equal_dtype((datsp >= val).toarray(), dat >= val)
-                assert_array_equal_dtype((val >= datsp).toarray(), val >= dat)
-
-            # dense data
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-            dat2 = dat.copy()
-            dat2[:,0] = 0
-            datsp2 = self.spcreator(dat2)
-
-            # dense rhs
-            assert_array_equal_dtype(dat >= datsp2, datsp >= dat2)
-
-        if not isinstance(self, (TestBSR, TestCSC, TestCSR)):
-            pytest.skip("Bool comparisons only implemented for BSR, CSC, and CSR.")
-        for dtype in self.checked_dtypes:
-            check(dtype)
-
-    def test_empty(self):
-        # create empty matrices
-        assert_equal(self.spcreator((3, 3)).toarray(), zeros((3, 3)))
-        assert_equal(self.spcreator((3, 3)).nnz, 0)
-        assert_equal(self.spcreator((3, 3)).count_nonzero(), 0)
-
-    def test_count_nonzero(self):
-        expected = np.count_nonzero(self.datsp.toarray())
-        assert_equal(self.datsp.count_nonzero(), expected)
-        assert_equal(self.datsp.T.count_nonzero(), expected)
-
-    def test_invalid_shapes(self):
-        assert_raises(ValueError, self.spcreator, (-1,3))
-        assert_raises(ValueError, self.spcreator, (3,-1))
-        assert_raises(ValueError, self.spcreator, (-1,-1))
-
-    def test_repr(self):
-        datsp = self.spcreator([[1, 0, 0], [0, 0, 0], [0, 0, -2]])
-        extra = (
-            "(1 diagonals) " if datsp.format == "dia"
-            else "(blocksize=1x1) " if datsp.format == "bsr"
-            else ""
-        )
-        _, fmt = _formats[datsp.format]
-        expected = (
-            f"<{fmt} sparse matrix of dtype '{datsp.dtype}'\n"
-            f"\twith {datsp.nnz} stored elements {extra}and shape {datsp.shape}>"
-        )
-        assert repr(datsp) == expected
-
-    def test_str(self):
-        datsp = self.spcreator([[1, 0, 0], [0, 0, 0], [0, 0, -2]])
-        if datsp.nnz != 2:
-            return
-        extra = (
-            "(1 diagonals) " if datsp.format == "dia"
-            else "(blocksize=1x1) " if datsp.format == "bsr"
-            else ""
-        )
-        _, fmt = _formats[datsp.format]
-        expected = (
-            f"<{fmt} sparse matrix of dtype '{datsp.dtype}'\n"
-            f"\twith {datsp.nnz} stored elements {extra}and shape {datsp.shape}>"
-            "\n  Coords\tValues"
-            "\n  (0, 0)\t1"
-            "\n  (2, 2)\t-2"
-        )
-        assert str(datsp) == expected
-
-    def test_empty_arithmetic(self):
-        # Test manipulating empty matrices. Fails in SciPy SVN <= r1768
-        shape = (5, 5)
-        for mytype in [np.dtype('int32'), np.dtype('float32'),
-                np.dtype('float64'), np.dtype('complex64'),
-                np.dtype('complex128')]:
-            a = self.spcreator(shape, dtype=mytype)
-            b = a + a
-            c = 2 * a
-            d = a @ a.tocsc()
-            e = a @ a.tocsr()
-            f = a @ a.tocoo()
-            for m in [a,b,c,d,e,f]:
-                assert_equal(m.toarray(), a.toarray()@a.toarray())
-                # These fail in all revisions <= r1768:
-                assert_equal(m.dtype,mytype)
-                assert_equal(m.toarray().dtype,mytype)
-
-    def test_abs(self):
-        A = array([[-1, 0, 17], [0, -5, 0], [1, -4, 0], [0, 0, 0]], 'd')
-        assert_equal(abs(A), abs(self.spcreator(A)).toarray())
-
-    def test_round(self):
-        decimal = 1
-        A = array([[-1.35, 0.56], [17.25, -5.98]], 'd')
-        assert_equal(np.around(A, decimals=decimal),
-                     round(self.spcreator(A), ndigits=decimal).toarray())
-
-    def test_elementwise_power(self):
-        A = array([[-4, -3, -2], [-1, 0, 1], [2, 3, 4]], 'd')
-        assert_equal(np.power(A, 2), self.spcreator(A).power(2).toarray())
-
-        #it's element-wise power function, input has to be a scalar
-        assert_raises(NotImplementedError, self.spcreator(A).power, A)
-
-    def test_neg(self):
-        A = array([[-1, 0, 17], [0, -5, 0], [1, -4, 0], [0, 0, 0]], 'd')
-        assert_equal(-A, (-self.spcreator(A)).toarray())
-
-        # see gh-5843
-        A = array([[True, False, False], [False, False, True]])
-        assert_raises(NotImplementedError, self.spcreator(A).__neg__)
-
-    def test_real(self):
-        D = array([[1 + 3j, 2 - 4j]])
-        A = self.spcreator(D)
-        assert_equal(A.real.toarray(), D.real)
-
-    def test_imag(self):
-        D = array([[1 + 3j, 2 - 4j]])
-        A = self.spcreator(D)
-        assert_equal(A.imag.toarray(), D.imag)
-
-    def test_diagonal(self):
-        # Does the matrix's .diagonal() method work?
-        mats = []
-        mats.append([[1,0,2]])
-        mats.append([[1],[0],[2]])
-        mats.append([[0,1],[0,2],[0,3]])
-        mats.append([[0,0,1],[0,0,2],[0,3,0]])
-        mats.append([[1,0],[0,0]])
-
-        mats.append(kron(mats[0],[[1,2]]))
-        mats.append(kron(mats[0],[[1],[2]]))
-        mats.append(kron(mats[1],[[1,2],[3,4]]))
-        mats.append(kron(mats[2],[[1,2],[3,4]]))
-        mats.append(kron(mats[3],[[1,2],[3,4]]))
-        mats.append(kron(mats[3],[[1,2,3,4]]))
-
-        for m in mats:
-            rows, cols = array(m).shape
-            sparse_mat = self.spcreator(m)
-            for k in range(-rows-1, cols+2):
-                assert_equal(sparse_mat.diagonal(k=k), diag(m, k=k))
-            # Test for k beyond boundaries(issue #11949)
-            assert_equal(sparse_mat.diagonal(k=10), diag(m, k=10))
-            assert_equal(sparse_mat.diagonal(k=-99), diag(m, k=-99))
-
-        # Test all-zero matrix.
-        assert_equal(self.spcreator((40, 16130)).diagonal(), np.zeros(40))
-        # Test empty matrix
-        # https://github.com/scipy/scipy/issues/11949
-        assert_equal(self.spcreator((0, 0)).diagonal(), np.empty(0))
-        assert_equal(self.spcreator((15, 0)).diagonal(), np.empty(0))
-        assert_equal(self.spcreator((0, 5)).diagonal(10), np.empty(0))
-
-    def test_trace(self):
-        # For square matrix
-        A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
-        B = self.spcreator(A)
-        for k in range(-2, 3):
-            assert_equal(A.trace(offset=k), B.trace(offset=k))
-
-        # For rectangular matrix
-        A = np.array([[1, 2, 3], [4, 5, 6]])
-        B = self.spcreator(A)
-        for k in range(-1, 3):
-            assert_equal(A.trace(offset=k), B.trace(offset=k))
-
-    def test_reshape(self):
-        # This first example is taken from the lil_matrix reshaping test.
-        x = self.spcreator([[1, 0, 7], [0, 0, 0], [0, 3, 0], [0, 0, 5]])
-        for order in ['C', 'F']:
-            for s in [(12, 1), (1, 12)]:
-                assert_array_equal(x.reshape(s, order=order).toarray(),
-                                   x.toarray().reshape(s, order=order))
-
-        # This example is taken from the stackoverflow answer at
-        # https://stackoverflow.com/q/16511879
-        x = self.spcreator([[0, 10, 0, 0], [0, 0, 0, 0], [0, 20, 30, 40]])
-        y = x.reshape((2, 6))  # Default order is 'C'
-        desired = [[0, 10, 0, 0, 0, 0], [0, 0, 0, 20, 30, 40]]
-        assert_array_equal(y.toarray(), desired)
-
-        # Reshape with negative indexes
-        y = x.reshape((2, -1))
-        assert_array_equal(y.toarray(), desired)
-        y = x.reshape((-1, 6))
-        assert_array_equal(y.toarray(), desired)
-        assert_raises(ValueError, x.reshape, (-1, -1))
-
-        # Reshape with star args
-        y = x.reshape(2, 6)
-        assert_array_equal(y.toarray(), desired)
-        assert_raises(TypeError, x.reshape, 2, 6, not_an_arg=1)
-
-        # Reshape with same size is noop unless copy=True
-        y = x.reshape((3, 4))
-        assert_(y is x)
-        y = x.reshape((3, 4), copy=True)
-        assert_(y is not x)
-
-        # Ensure reshape did not alter original size
-        assert_array_equal(x.shape, (3, 4))
-
-        # Reshape in place
-        x.shape = (2, 6)
-        assert_array_equal(x.toarray(), desired)
-
-        # Reshape to bad ndim
-        assert_raises(ValueError, x.reshape, (x.size,))
-        assert_raises(ValueError, x.reshape, (1, x.size, 1))
-
-    @pytest.mark.slow
-    def test_setdiag_comprehensive(self):
-        def dense_setdiag(a, v, k):
-            v = np.asarray(v)
-            if k >= 0:
-                n = min(a.shape[0], a.shape[1] - k)
-                if v.ndim != 0:
-                    n = min(n, len(v))
-                    v = v[:n]
-                i = np.arange(0, n)
-                j = np.arange(k, k + n)
-                a[i,j] = v
-            elif k < 0:
-                dense_setdiag(a.T, v, -k)
-
-        def check_setdiag(a, b, k):
-            # Check setting diagonal using a scalar, a vector of
-            # correct length, and too short or too long vectors
-            for r in [-1, len(np.diag(a, k)), 2, 30]:
-                if r < 0:
-                    v = np.random.choice(range(1, 20))
-                else:
-                    v = np.random.randint(1, 20, size=r)
-
-                dense_setdiag(a, v, k)
-                with suppress_warnings() as sup:
-                    sup.filter(SparseEfficiencyWarning, "Changing the sparsity structu")
-                    b.setdiag(v, k)
-
-                # check that dense_setdiag worked
-                d = np.diag(a, k)
-                if np.asarray(v).ndim == 0:
-                    assert_array_equal(d, v, err_msg="%s %d" % (msg, r))
-                else:
-                    n = min(len(d), len(v))
-                    assert_array_equal(d[:n], v[:n], err_msg="%s %d" % (msg, r))
-                # check that sparse setdiag worked
-                assert_array_equal(b.toarray(), a, err_msg="%s %d" % (msg, r))
-
-        # comprehensive test
-        np.random.seed(1234)
-        shapes = [(0,5), (5,0), (1,5), (5,1), (5,5)]
-        for dtype in [np.int8, np.float64]:
-            for m,n in shapes:
-                ks = np.arange(-m+1, n-1)
-                for k in ks:
-                    msg = repr((dtype, m, n, k))
-                    a = np.zeros((m, n), dtype=dtype)
-                    b = self.spcreator((m, n), dtype=dtype)
-
-                    check_setdiag(a, b, k)
-
-                    # check overwriting etc
-                    for k2 in np.random.choice(ks, size=min(len(ks), 5)):
-                        check_setdiag(a, b, k2)
-
-    def test_setdiag(self):
-        # simple test cases
-        m = self.spcreator(np.eye(3))
-        m2 = self.spcreator((4, 4))
-        values = [3, 2, 1]
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            assert_raises(ValueError, m.setdiag, values, k=4)
-            m.setdiag(values)
-            assert_array_equal(m.diagonal(), values)
-            m.setdiag(values, k=1)
-            assert_array_equal(m.toarray(), np.array([[3, 3, 0],
-                                                      [0, 2, 2],
-                                                      [0, 0, 1]]))
-            m.setdiag(values, k=-2)
-            assert_array_equal(m.toarray(), np.array([[3, 3, 0],
-                                                      [0, 2, 2],
-                                                      [3, 0, 1]]))
-            m.setdiag((9,), k=2)
-            assert_array_equal(m.toarray()[0,2], 9)
-            m.setdiag((9,), k=-2)
-            assert_array_equal(m.toarray()[2,0], 9)
-            # test short values on an empty matrix
-            m2.setdiag([1], k=2)
-            assert_array_equal(m2.toarray()[0], [0, 0, 1, 0])
-            # test overwriting that same diagonal
-            m2.setdiag([1, 1], k=2)
-            assert_array_equal(m2.toarray()[:2], [[0, 0, 1, 0],
-                                                  [0, 0, 0, 1]])
-
-    def test_nonzero(self):
-        A = array([[1, 0, 1],[0, 1, 1],[0, 0, 1]])
-        Asp = self.spcreator(A)
-
-        A_nz = {tuple(ij) for ij in transpose(A.nonzero())}
-        Asp_nz = {tuple(ij) for ij in transpose(Asp.nonzero())}
-
-        assert_equal(A_nz, Asp_nz)
-
-    def test_numpy_nonzero(self):
-        # See gh-5987
-        A = array([[1, 0, 1], [0, 1, 1], [0, 0, 1]])
-        Asp = self.spcreator(A)
-
-        A_nz = {tuple(ij) for ij in transpose(np.nonzero(A))}
-        Asp_nz = {tuple(ij) for ij in transpose(np.nonzero(Asp))}
-
-        assert_equal(A_nz, Asp_nz)
-
-    def test_getrow(self):
-        assert_array_equal(self.datsp.getrow(1).toarray(), self.dat[[1], :])
-        assert_array_equal(self.datsp.getrow(-1).toarray(), self.dat[[-1], :])
-
-    def test_getcol(self):
-        assert_array_equal(self.datsp.getcol(1).toarray(), self.dat[:, [1]])
-        assert_array_equal(self.datsp.getcol(-1).toarray(), self.dat[:, [-1]])
-
-    def test_sum(self):
-        np.random.seed(1234)
-        dat_1 = matrix([[0, 1, 2],
-                        [3, -4, 5],
-                        [-6, 7, 9]])
-        dat_2 = np.random.rand(5, 5)
-        dat_3 = np.array([[]])
-        dat_4 = np.zeros((40, 40))
-        dat_5 = sparse.rand(5, 5, density=1e-2).toarray()
-        matrices = [dat_1, dat_2, dat_3, dat_4, dat_5]
-
-        def check(dtype, j):
-            dat = matrix(matrices[j], dtype=dtype)
-            datsp = self.spcreator(dat, dtype=dtype)
-            with np.errstate(over='ignore'):
-                assert_array_almost_equal(dat.sum(), datsp.sum())
-                assert_equal(dat.sum().dtype, datsp.sum().dtype)
-                assert_(np.isscalar(datsp.sum(axis=None)))
-                assert_array_almost_equal(dat.sum(axis=None),
-                                          datsp.sum(axis=None))
-                assert_equal(dat.sum(axis=None).dtype,
-                             datsp.sum(axis=None).dtype)
-                assert_array_almost_equal(dat.sum(axis=0), datsp.sum(axis=0))
-                assert_equal(dat.sum(axis=0).dtype, datsp.sum(axis=0).dtype)
-                assert_array_almost_equal(dat.sum(axis=1), datsp.sum(axis=1))
-                assert_equal(dat.sum(axis=1).dtype, datsp.sum(axis=1).dtype)
-                assert_array_almost_equal(dat.sum(axis=-2), datsp.sum(axis=-2))
-                assert_equal(dat.sum(axis=-2).dtype, datsp.sum(axis=-2).dtype)
-                assert_array_almost_equal(dat.sum(axis=-1), datsp.sum(axis=-1))
-                assert_equal(dat.sum(axis=-1).dtype, datsp.sum(axis=-1).dtype)
-
-        for dtype in self.checked_dtypes:
-            for j in range(len(matrices)):
-                check(dtype, j)
-
-    def test_sum_invalid_params(self):
-        out = np.zeros((1, 3))
-        dat = array([[0, 1, 2],
-                     [3, -4, 5],
-                     [-6, 7, 9]])
-        datsp = self.spcreator(dat)
-
-        assert_raises(ValueError, datsp.sum, axis=3)
-        assert_raises(TypeError, datsp.sum, axis=(0, 1))
-        assert_raises(TypeError, datsp.sum, axis=1.5)
-        assert_raises(ValueError, datsp.sum, axis=1, out=out)
-
-    def test_sum_dtype(self):
-        dat = array([[0, 1, 2],
-                     [3, -4, 5],
-                     [-6, 7, 9]])
-        datsp = self.spcreator(dat)
-
-        def check(dtype):
-            dat_mean = dat.mean(dtype=dtype)
-            datsp_mean = datsp.mean(dtype=dtype)
-
-            assert_array_almost_equal(dat_mean, datsp_mean)
-            assert_equal(dat_mean.dtype, datsp_mean.dtype)
-
-        for dtype in self.checked_dtypes:
-            check(dtype)
-
-    def test_sum_out(self):
-        dat = array([[0, 1, 2],
-                     [3, -4, 5],
-                     [-6, 7, 9]])
-        datsp = self.spcreator(dat)
-
-        dat_out = array([[0]])
-        datsp_out = matrix([[0]])
-
-        dat.sum(out=dat_out, keepdims=True)
-        datsp.sum(out=datsp_out)
-        assert_array_almost_equal(dat_out, datsp_out)
-
-        dat_out = np.zeros((3, 1))
-        datsp_out = asmatrix(np.zeros((3, 1)))
-
-        dat.sum(axis=1, out=dat_out, keepdims=True)
-        datsp.sum(axis=1, out=datsp_out)
-        assert_array_almost_equal(dat_out, datsp_out)
-
-    def test_numpy_sum(self):
-        # See gh-5987
-        dat = array([[0, 1, 2],
-                     [3, -4, 5],
-                     [-6, 7, 9]])
-        datsp = self.spcreator(dat)
-
-        dat_mean = np.sum(dat)
-        datsp_mean = np.sum(datsp)
-
-        assert_array_almost_equal(dat_mean, datsp_mean)
-        assert_equal(dat_mean.dtype, datsp_mean.dtype)
-
-    def test_mean(self):
-        def check(dtype):
-            dat = array([[0, 1, 2],
-                         [3, 4, 5],
-                         [6, 7, 9]], dtype=dtype)
-            datsp = self.spcreator(dat, dtype=dtype)
-
-            assert_array_almost_equal(dat.mean(), datsp.mean())
-            assert_equal(dat.mean().dtype, datsp.mean().dtype)
-            assert_(np.isscalar(datsp.mean(axis=None)))
-            assert_array_almost_equal(
-                dat.mean(axis=None, keepdims=True), datsp.mean(axis=None)
-            )
-            assert_equal(dat.mean(axis=None).dtype, datsp.mean(axis=None).dtype)
-            assert_array_almost_equal(
-                dat.mean(axis=0, keepdims=True), datsp.mean(axis=0)
-            )
-            assert_equal(dat.mean(axis=0).dtype, datsp.mean(axis=0).dtype)
-            assert_array_almost_equal(
-                dat.mean(axis=1, keepdims=True), datsp.mean(axis=1)
-            )
-            assert_equal(dat.mean(axis=1).dtype, datsp.mean(axis=1).dtype)
-            assert_array_almost_equal(
-                dat.mean(axis=-2, keepdims=True), datsp.mean(axis=-2)
-            )
-            assert_equal(dat.mean(axis=-2).dtype, datsp.mean(axis=-2).dtype)
-            assert_array_almost_equal(
-                dat.mean(axis=-1, keepdims=True), datsp.mean(axis=-1)
-            )
-            assert_equal(dat.mean(axis=-1).dtype, datsp.mean(axis=-1).dtype)
-
-        for dtype in self.checked_dtypes:
-            check(dtype)
-
-    def test_mean_invalid_params(self):
-        out = asmatrix(np.zeros((1, 3)))
-        dat = array([[0, 1, 2],
-                     [3, -4, 5],
-                     [-6, 7, 9]])
-        datsp = self.spcreator(dat)
-
-        assert_raises(ValueError, datsp.mean, axis=3)
-        assert_raises(TypeError, datsp.mean, axis=(0, 1))
-        assert_raises(TypeError, datsp.mean, axis=1.5)
-        assert_raises(ValueError, datsp.mean, axis=1, out=out)
-
-    def test_mean_dtype(self):
-        dat = array([[0, 1, 2],
-                     [3, -4, 5],
-                     [-6, 7, 9]])
-        datsp = self.spcreator(dat)
-
-        def check(dtype):
-            dat_mean = dat.mean(dtype=dtype)
-            datsp_mean = datsp.mean(dtype=dtype)
-
-            assert_array_almost_equal(dat_mean, datsp_mean)
-            assert_equal(dat_mean.dtype, datsp_mean.dtype)
-
-        for dtype in self.checked_dtypes:
-            check(dtype)
-
-    def test_mean_out(self):
-        dat = array([[0, 1, 2],
-                     [3, -4, 5],
-                     [-6, 7, 9]])
-        datsp = self.spcreator(dat)
-
-        dat_out = array([[0]])
-        datsp_out = matrix([[0]])
-
-        dat.mean(out=dat_out, keepdims=True)
-        datsp.mean(out=datsp_out)
-        assert_array_almost_equal(dat_out, datsp_out)
-
-        dat_out = np.zeros((3, 1))
-        datsp_out = matrix(np.zeros((3, 1)))
-
-        dat.mean(axis=1, out=dat_out, keepdims=True)
-        datsp.mean(axis=1, out=datsp_out)
-        assert_array_almost_equal(dat_out, datsp_out)
-
-    def test_numpy_mean(self):
-        # See gh-5987
-        dat = array([[0, 1, 2],
-                     [3, -4, 5],
-                     [-6, 7, 9]])
-        datsp = self.spcreator(dat)
-
-        dat_mean = np.mean(dat)
-        datsp_mean = np.mean(datsp)
-
-        assert_array_almost_equal(dat_mean, datsp_mean)
-        assert_equal(dat_mean.dtype, datsp_mean.dtype)
-
-    def test_expm(self):
-        M = array([[1, 0, 2], [0, 0, 3], [-4, 5, 6]], float)
-        sM = self.spcreator(M, shape=(3,3), dtype=float)
-        Mexp = scipy.linalg.expm(M)
-
-        N = array([[3., 0., 1.], [0., 2., 0.], [0., 0., 0.]])
-        sN = self.spcreator(N, shape=(3,3), dtype=float)
-        Nexp = scipy.linalg.expm(N)
-
-        with suppress_warnings() as sup:
-            sup.filter(
-                SparseEfficiencyWarning,
-                "splu converted its input to CSC format",
-            )
-            sup.filter(
-                SparseEfficiencyWarning,
-                "spsolve is more efficient when sparse b is in the CSC matrix format",
-            )
-            sup.filter(
-                SparseEfficiencyWarning,
-                "spsolve requires A be CSC or CSR matrix format",
-            )
-            sMexp = expm(sM).toarray()
-            sNexp = expm(sN).toarray()
-
-        assert_array_almost_equal((sMexp - Mexp), zeros((3, 3)))
-        assert_array_almost_equal((sNexp - Nexp), zeros((3, 3)))
-
-    def test_inv(self):
-        def check(dtype):
-            M = array([[1, 0, 2], [0, 0, 3], [-4, 5, 6]], dtype)
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning,
-                           "spsolve requires A be CSC or CSR matrix format",)
-                sup.filter(SparseEfficiencyWarning,
-                           "spsolve is more efficient when sparse b "
-                           "is in the CSC matrix format",)
-                sup.filter(SparseEfficiencyWarning,
-                           "splu converted its input to CSC format",)
-                sM = self.spcreator(M, shape=(3,3), dtype=dtype)
-                sMinv = inv(sM)
-            assert_array_almost_equal(sMinv.dot(sM).toarray(), np.eye(3))
-            assert_raises(TypeError, inv, M)
-        for dtype in [float]:
-            check(dtype)
-
-    @sup_complex
-    def test_from_array(self):
-        A = array([[1,0,0],[2,3,4],[0,5,0],[0,0,0]])
-        assert_array_equal(self.spcreator(A).toarray(), A)
-
-        A = array([[1.0 + 3j, 0, 0],
-                   [0, 2.0 + 5, 0],
-                   [0, 0, 0]])
-        assert_array_equal(self.spcreator(A).toarray(), A)
-        assert_array_equal(self.spcreator(A, dtype='int16').toarray(),A.astype('int16'))
-
-    @sup_complex
-    def test_from_matrix(self):
-        A = matrix([[1, 0, 0], [2, 3, 4], [0, 5, 0], [0, 0, 0]])
-        assert_array_equal(self.spcreator(A).todense(), A)
-
-        A = matrix([[1.0 + 3j, 0, 0],
-                    [0, 2.0 + 5, 0],
-                    [0, 0, 0]])
-        assert_array_equal(self.spcreator(A).todense(), A)
-        assert_array_equal(
-            self.spcreator(A, dtype='int16').todense(), A.astype('int16')
-        )
-
-    @sup_complex
-    def test_from_list(self):
-        A = [[1,0,0],[2,3,4],[0,5,0],[0,0,0]]
-        assert_array_equal(self.spcreator(A).toarray(), A)
-
-        A = [[1.0 + 3j, 0, 0],
-             [0, 2.0 + 5, 0],
-             [0, 0, 0]]
-        assert_array_equal(self.spcreator(A).toarray(), array(A))
-        assert_array_equal(
-            self.spcreator(A, dtype='int16').toarray(), array(A).astype('int16')
-        )
-
-    @sup_complex
-    def test_from_sparse(self):
-        D = array([[1,0,0],[2,3,4],[0,5,0],[0,0,0]])
-        S = csr_matrix(D)
-        assert_array_equal(self.spcreator(S).toarray(), D)
-        S = self.spcreator(D)
-        assert_array_equal(self.spcreator(S).toarray(), D)
-
-        D = array([[1.0 + 3j, 0, 0],
-                   [0, 2.0 + 5, 0],
-                   [0, 0, 0]])
-        S = csr_matrix(D)
-        assert_array_equal(self.spcreator(S).toarray(), D)
-        assert_array_equal(self.spcreator(S, dtype='int16').toarray(),
-                           D.astype('int16'))
-        S = self.spcreator(D)
-        assert_array_equal(self.spcreator(S).toarray(), D)
-        assert_array_equal(self.spcreator(S, dtype='int16').toarray(),
-                           D.astype('int16'))
-
-    # def test_array(self):
-    #    """test array(A) where A is in sparse format"""
-    #    assert_equal( array(self.datsp), self.dat )
-
-    def test_todense(self):
-        # Check C- or F-contiguous (default).
-        chk = self.datsp.todense()
-        assert isinstance(chk, np.matrix)
-        assert_array_equal(chk, self.dat)
-        assert_(chk.flags.c_contiguous != chk.flags.f_contiguous)
-        # Check C-contiguous (with arg).
-        chk = self.datsp.todense(order='C')
-        assert_array_equal(chk, self.dat)
-        assert_(chk.flags.c_contiguous)
-        assert_(not chk.flags.f_contiguous)
-        # Check F-contiguous (with arg).
-        chk = self.datsp.todense(order='F')
-        assert_array_equal(chk, self.dat)
-        assert_(not chk.flags.c_contiguous)
-        assert_(chk.flags.f_contiguous)
-        # Check with out argument (array).
-        out = np.zeros(self.datsp.shape, dtype=self.datsp.dtype)
-        chk = self.datsp.todense(out=out)
-        assert_array_equal(self.dat, out)
-        assert_array_equal(self.dat, chk)
-        assert np.may_share_memory(chk, out)
-        # Check with out array (matrix).
-        out = asmatrix(np.zeros(self.datsp.shape, dtype=self.datsp.dtype))
-        chk = self.datsp.todense(out=out)
-        assert_array_equal(self.dat, out)
-        assert_array_equal(self.dat, chk)
-        assert np.may_share_memory(chk, out)
-        a = array([[1.,2.,3.]])
-        dense_dot_dense = a @ self.dat
-        check = a @ self.datsp.todense()
-        assert_array_equal(dense_dot_dense, check)
-        b = array([[1.,2.,3.,4.]]).T
-        dense_dot_dense = self.dat @ b
-        check2 = self.datsp.todense() @ b
-        assert_array_equal(dense_dot_dense, check2)
-        # Check bool data works.
-        spbool = self.spcreator(self.dat, dtype=bool)
-        matbool = self.dat.astype(bool)
-        assert_array_equal(spbool.todense(), matbool)
-
-    def test_toarray(self):
-        # Check C- or F-contiguous (default).
-        dat = asarray(self.dat)
-        chk = self.datsp.toarray()
-        assert_array_equal(chk, dat)
-        assert_(chk.flags.c_contiguous != chk.flags.f_contiguous)
-        # Check C-contiguous (with arg).
-        chk = self.datsp.toarray(order='C')
-        assert_array_equal(chk, dat)
-        assert_(chk.flags.c_contiguous)
-        assert_(not chk.flags.f_contiguous)
-        # Check F-contiguous (with arg).
-        chk = self.datsp.toarray(order='F')
-        assert_array_equal(chk, dat)
-        assert_(not chk.flags.c_contiguous)
-        assert_(chk.flags.f_contiguous)
-        # Check with output arg.
-        out = np.zeros(self.datsp.shape, dtype=self.datsp.dtype)
-        self.datsp.toarray(out=out)
-        assert_array_equal(chk, dat)
-        # Check that things are fine when we don't initialize with zeros.
-        out[...] = 1.
-        self.datsp.toarray(out=out)
-        assert_array_equal(chk, dat)
-        a = array([1.,2.,3.])
-        dense_dot_dense = dot(a, dat)
-        check = dot(a, self.datsp.toarray())
-        assert_array_equal(dense_dot_dense, check)
-        b = array([1.,2.,3.,4.])
-        dense_dot_dense = dot(dat, b)
-        check2 = dot(self.datsp.toarray(), b)
-        assert_array_equal(dense_dot_dense, check2)
-        # Check bool data works.
-        spbool = self.spcreator(self.dat, dtype=bool)
-        arrbool = dat.astype(bool)
-        assert_array_equal(spbool.toarray(), arrbool)
-
-    @sup_complex
-    def test_astype(self):
-        D = array([[2.0 + 3j, 0, 0],
-                   [0, 4.0 + 5j, 0],
-                   [0, 0, 0]])
-        S = self.spcreator(D)
-
-        for x in supported_dtypes:
-            # Check correctly casted
-            D_casted = D.astype(x)
-            for copy in (True, False):
-                S_casted = S.astype(x, copy=copy)
-                assert_equal(S_casted.dtype, D_casted.dtype)  # correct type
-                assert_equal(S_casted.toarray(), D_casted)    # correct values
-                assert_equal(S_casted.format, S.format)       # format preserved
-            # Check correctly copied
-            assert_(S_casted.astype(x, copy=False) is S_casted)
-            S_copied = S_casted.astype(x, copy=True)
-            assert_(S_copied is not S_casted)
-
-            def check_equal_but_not_same_array_attribute(attribute):
-                a = getattr(S_casted, attribute)
-                b = getattr(S_copied, attribute)
-                assert_array_equal(a, b)
-                assert_(a is not b)
-                i = (0,) * b.ndim
-                b_i = b[i]
-                b[i] = not b[i]
-                assert_(a[i] != b[i])
-                b[i] = b_i
-
-            if S_casted.format in ('csr', 'csc', 'bsr'):
-                for attribute in ('indices', 'indptr', 'data'):
-                    check_equal_but_not_same_array_attribute(attribute)
-            elif S_casted.format == 'coo':
-                for attribute in ('row', 'col', 'data'):
-                    check_equal_but_not_same_array_attribute(attribute)
-            elif S_casted.format == 'dia':
-                for attribute in ('offsets', 'data'):
-                    check_equal_but_not_same_array_attribute(attribute)
-
-    @sup_complex
-    def test_astype_immutable(self):
-        D = array([[2.0 + 3j, 0, 0],
-                   [0, 4.0 + 5j, 0],
-                   [0, 0, 0]])
-        S = self.spcreator(D)
-        if hasattr(S, 'data'):
-            S.data.flags.writeable = False
-        if S.format in ('csr', 'csc', 'bsr'):
-            S.indptr.flags.writeable = False
-            S.indices.flags.writeable = False
-        for x in supported_dtypes:
-            D_casted = D.astype(x)
-            S_casted = S.astype(x)
-            assert_equal(S_casted.dtype, D_casted.dtype)
-
-
-    def test_asfptype(self):
-        A = self.spcreator(arange(6,dtype='int32').reshape(2,3))
-
-        assert_equal(A.dtype, np.dtype('int32'))
-        assert_equal(A.asfptype().dtype, np.dtype('float64'))
-        assert_equal(A.asfptype().format, A.format)
-        assert_equal(A.astype('int16').asfptype().dtype, np.dtype('float32'))
-        assert_equal(A.astype('complex128').asfptype().dtype, np.dtype('complex128'))
-
-        B = A.asfptype()
-        C = B.asfptype()
-        assert_(B is C)
-
-    def test_mul_scalar(self):
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            assert_array_equal(dat*2, (datsp*2).toarray())
-            assert_array_equal(dat*17.3, (datsp*17.3).toarray())
-
-        for dtype in self.math_dtypes:
-            check(dtype)
-
-    def test_rmul_scalar(self):
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            assert_array_equal(2*dat, (2*datsp).toarray())
-            assert_array_equal(17.3*dat, (17.3*datsp).toarray())
-
-        for dtype in self.math_dtypes:
-            check(dtype)
-
-    # github issue #15210
-    def test_rmul_scalar_type_error(self):
-        datsp = self.datsp_dtypes[np.float64]
-        with assert_raises(TypeError):
-            None * datsp
-
-    def test_add(self):
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            a = dat.copy()
-            a[0,2] = 2.0
-            b = datsp
-            c = b + a
-            assert_array_equal(c, b.toarray() + a)
-
-            c = b + b.tocsr()
-            assert_array_equal(c.toarray(),
-                               b.toarray() + b.toarray())
-
-            # test broadcasting
-            c = b + a[0]
-            assert_array_equal(c, b.toarray() + a[0])
-
-        for dtype in self.math_dtypes:
-            check(dtype)
-
-    def test_radd(self):
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            a = dat.copy()
-            a[0,2] = 2.0
-            b = datsp
-            c = a + b
-            assert_array_equal(c, a + b.toarray())
-
-        for dtype in self.math_dtypes:
-            check(dtype)
-
-    def test_sub(self):
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            assert_array_equal((datsp - datsp).toarray(), np.zeros((3, 4)))
-            assert_array_equal((datsp - 0).toarray(), dat)
-
-            A = self.spcreator(
-                np.array([[1, 0, 0, 4], [-1, 0, 0, 0], [0, 8, 0, -5]], 'd')
-            )
-            assert_array_equal((datsp - A).toarray(), dat - A.toarray())
-            assert_array_equal((A - datsp).toarray(), A.toarray() - dat)
-
-            # test broadcasting
-            assert_array_equal(datsp - dat[0], dat - dat[0])
-
-        for dtype in self.math_dtypes:
-            if dtype == np.dtype('bool'):
-                # boolean array subtraction deprecated in 1.9.0
-                continue
-
-            check(dtype)
-
-    def test_rsub(self):
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            assert_array_equal((dat - datsp),[[0,0,0,0],[0,0,0,0],[0,0,0,0]])
-            assert_array_equal((datsp - dat),[[0,0,0,0],[0,0,0,0],[0,0,0,0]])
-            assert_array_equal((0 - datsp).toarray(), -dat)
-
-            A = self.spcreator(matrix([[1,0,0,4],[-1,0,0,0],[0,8,0,-5]],'d'))
-            assert_array_equal((dat - A), dat - A.toarray())
-            assert_array_equal((A - dat), A.toarray() - dat)
-            assert_array_equal(A.toarray() - datsp, A.toarray() - dat)
-            assert_array_equal(datsp - A.toarray(), dat - A.toarray())
-
-            # test broadcasting
-            assert_array_equal(dat[0] - datsp, dat[0] - dat)
-
-        for dtype in self.math_dtypes:
-            if dtype == np.dtype('bool'):
-                # boolean array subtraction deprecated in 1.9.0
-                continue
-
-            check(dtype)
-
-    def test_add0(self):
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            # Adding 0 to a sparse matrix
-            assert_array_equal((datsp + 0).toarray(), dat)
-            # use sum (which takes 0 as a starting value)
-            sumS = sum([k * datsp for k in range(1, 3)])
-            sumD = sum([k * dat for k in range(1, 3)])
-            assert_almost_equal(sumS.toarray(), sumD)
-
-        for dtype in self.math_dtypes:
-            check(dtype)
-
-    def test_elementwise_multiply(self):
-        # real/real
-        A = array([[4,0,9],[2,-3,5]])
-        B = array([[0,7,0],[0,-4,0]])
-        Asp = self.spcreator(A)
-        Bsp = self.spcreator(B)
-        assert_almost_equal(Asp.multiply(Bsp).toarray(), A*B)  # sparse/sparse
-        assert_almost_equal(Asp.multiply(B).toarray(), A*B)  # sparse/dense
-
-        # complex/complex
-        C = array([[1-2j,0+5j,-1+0j],[4-3j,-3+6j,5]])
-        D = array([[5+2j,7-3j,-2+1j],[0-1j,-4+2j,9]])
-        Csp = self.spcreator(C)
-        Dsp = self.spcreator(D)
-        assert_almost_equal(Csp.multiply(Dsp).toarray(), C*D)  # sparse/sparse
-        assert_almost_equal(Csp.multiply(D).toarray(), C*D)  # sparse/dense
-
-        # real/complex
-        assert_almost_equal(Asp.multiply(Dsp).toarray(), A*D)  # sparse/sparse
-        assert_almost_equal(Asp.multiply(D).toarray(), A*D)  # sparse/dense
-
-    def test_elementwise_multiply_broadcast(self):
-        A = array([4])
-        B = array([[-9]])
-        C = array([1,-1,0])
-        D = array([[7,9,-9]])
-        E = array([[3],[2],[1]])
-        F = array([[8,6,3],[-4,3,2],[6,6,6]])
-        G = [1, 2, 3]
-        H = np.ones((3, 4))
-        J = H.T
-        K = array([[0]])
-        L = array([[[1,2],[0,1]]])
-
-        # Some arrays can't be cast as spmatrices (A,C,L) so leave
-        # them out.
-        Bsp = self.spcreator(B)
-        Dsp = self.spcreator(D)
-        Esp = self.spcreator(E)
-        Fsp = self.spcreator(F)
-        Hsp = self.spcreator(H)
-        Hspp = self.spcreator(H[0,None])
-        Jsp = self.spcreator(J)
-        Jspp = self.spcreator(J[:,0,None])
-        Ksp = self.spcreator(K)
-
-        matrices = [A, B, C, D, E, F, G, H, J, K, L]
-        spmatrices = [Bsp, Dsp, Esp, Fsp, Hsp, Hspp, Jsp, Jspp, Ksp]
-
-        # sparse/sparse
-        for i in spmatrices:
-            for j in spmatrices:
-                try:
-                    dense_mult = i.toarray() * j.toarray()
-                except ValueError:
-                    assert_raises(ValueError, i.multiply, j)
-                    continue
-                sp_mult = i.multiply(j)
-                assert_almost_equal(sp_mult.toarray(), dense_mult)
-
-        # sparse/dense
-        for i in spmatrices:
-            for j in matrices:
-                try:
-                    dense_mult = i.toarray() * j
-                except TypeError:
-                    continue
-                except ValueError:
-                    assert_raises(ValueError, i.multiply, j)
-                    continue
-                sp_mult = i.multiply(j)
-                if issparse(sp_mult):
-                    assert_almost_equal(sp_mult.toarray(), dense_mult)
-                else:
-                    assert_almost_equal(sp_mult, dense_mult)
-
-    def test_elementwise_divide(self):
-        expected = [[1,np.nan,np.nan,1],
-                    [1,np.nan,1,np.nan],
-                    [np.nan,1,np.nan,np.nan]]
-        assert_array_equal(toarray(self.datsp / self.datsp), expected)
-
-        denom = self.spcreator(matrix([[1,0,0,4],[-1,0,0,0],[0,8,0,-5]],'d'))
-        expected = [[1,np.nan,np.nan,0.5],
-                    [-3,np.nan,inf,np.nan],
-                    [np.nan,0.25,np.nan,0]]
-        assert_array_equal(toarray(self.datsp / denom), expected)
-
-        # complex
-        A = array([[1-2j,0+5j,-1+0j],[4-3j,-3+6j,5]])
-        B = array([[5+2j,7-3j,-2+1j],[0-1j,-4+2j,9]])
-        Asp = self.spcreator(A)
-        Bsp = self.spcreator(B)
-        assert_almost_equal(toarray(Asp / Bsp), A/B)
-
-        # integer
-        A = array([[1,2,3],[-3,2,1]])
-        B = array([[0,1,2],[0,-2,3]])
-        Asp = self.spcreator(A)
-        Bsp = self.spcreator(B)
-        with np.errstate(divide='ignore'):
-            assert_array_equal(toarray(Asp / Bsp), A / B)
-
-        # mismatching sparsity patterns
-        A = array([[0,1],[1,0]])
-        B = array([[1,0],[1,0]])
-        Asp = self.spcreator(A)
-        Bsp = self.spcreator(B)
-        with np.errstate(divide='ignore', invalid='ignore'):
-            assert_array_equal(np.array(toarray(Asp / Bsp)), A / B)
-
-    def test_pow(self):
-        A = array([[1, 0, 2, 0], [0, 3, 4, 0], [0, 5, 0, 0], [0, 6, 7, 8]])
-        B = self.spcreator(A)
-
-        for exponent in [0,1,2,3]:
-            ret_sp = B**exponent
-            ret_np = np.linalg.matrix_power(A, exponent)
-            assert_array_equal(ret_sp.toarray(), ret_np)
-            assert_equal(ret_sp.dtype, ret_np.dtype)
-
-        # invalid exponents
-        for exponent in [-1, 2.2, 1 + 3j]:
-            assert_raises(ValueError, B.__pow__, exponent)
-
-        # nonsquare matrix
-        B = self.spcreator(A[:3,:])
-        assert_raises(TypeError, B.__pow__, 1)
-
-    def test_rmatvec(self):
-        M = self.spcreator(matrix([[3,0,0],[0,1,0],[2,0,3.0],[2,3,0]]))
-        assert_array_almost_equal([1,2,3,4] @ M, dot([1,2,3,4], M.toarray()))
-        row = array([[1,2,3,4]])
-        assert_array_almost_equal(row @ M, row @ M.toarray())
-
-    def test_small_multiplication(self):
-        # test that A*x works for x with shape () (1,) (1,1) and (1,0)
-        A = self.spcreator([[1],[2],[3]])
-
-        assert_(issparse(A * array(1)))
-        assert_equal((A * array(1)).toarray(), [[1], [2], [3]])
-
-        assert_equal(A @ array([1]), array([1, 2, 3]))
-        assert_equal(A @ array([[1]]), array([[1], [2], [3]]))
-        assert_equal(A @ np.ones((1, 1)), array([[1], [2], [3]]))
-        assert_equal(A @ np.ones((1, 0)), np.ones((3, 0)))
-
-    def test_start_vs_at_sign_for_sparray_and_spmatrix(self):
-        # test that * is matmul for spmatrix and mul for sparray
-        A = self.spcreator([[1],[2],[3]])
-
-        if isinstance(A, sparray):
-            assert_array_almost_equal(A * np.ones((3,1)), A)
-            assert_array_almost_equal(A * array([[1]]), A)
-            assert_array_almost_equal(A * np.ones((3,1)), A)
-        else:
-            assert_equal(A * array([1]), array([1, 2, 3]))
-            assert_equal(A * array([[1]]), array([[1], [2], [3]]))
-            assert_equal(A * np.ones((1, 0)), np.ones((3, 0)))
-
-    def test_binop_custom_type(self):
-        # Non-regression test: previously, binary operations would raise
-        # NotImplementedError instead of returning NotImplemented
-        # (https://docs.python.org/library/constants.html#NotImplemented)
-        # so overloading Custom + matrix etc. didn't work.
-        A = self.spcreator([[1], [2], [3]])
-        B = BinopTester()
-        assert_equal(A + B, "matrix on the left")
-        assert_equal(A - B, "matrix on the left")
-        assert_equal(A * B, "matrix on the left")
-        assert_equal(B + A, "matrix on the right")
-        assert_equal(B - A, "matrix on the right")
-        assert_equal(B * A, "matrix on the right")
-
-        assert_equal(A @ B, "matrix on the left")
-        assert_equal(B @ A, "matrix on the right")
-
-    def test_binop_custom_type_with_shape(self):
-        A = self.spcreator([[1], [2], [3]])
-        B = BinopTester_with_shape((3,1))
-        assert_equal(A + B, "matrix on the left")
-        assert_equal(A - B, "matrix on the left")
-        assert_equal(A * B, "matrix on the left")
-        assert_equal(B + A, "matrix on the right")
-        assert_equal(B - A, "matrix on the right")
-        assert_equal(B * A, "matrix on the right")
-
-        assert_equal(A @ B, "matrix on the left")
-        assert_equal(B @ A, "matrix on the right")
-
-    def test_mul_custom_type(self):
-        class Custom:
-            def __init__(self, scalar):
-                self.scalar = scalar
-                
-            def __rmul__(self, other):
-                return other * self.scalar
-        
-        scalar = 2
-        A = self.spcreator([[1],[2],[3]])
-        c = Custom(scalar)
-        A_scalar = A * scalar
-        A_c = A * c
-        assert_array_equal_dtype(A_scalar.toarray(), A_c.toarray())
-        assert_equal(A_scalar.format, A_c.format)
-
-    def test_comparisons_custom_type(self):
-        A = self.spcreator([[1], [2], [3]])
-        B = ComparisonTester()
-        assert_equal(A == B, "eq")
-        assert_equal(A != B, "ne")
-        assert_equal(A > B, "lt")
-        assert_equal(A >= B, "le")
-        assert_equal(A < B, "gt")
-        assert_equal(A <= B, "ge")
-
-    def test_dot_scalar(self):
-        M = self.spcreator(array([[3,0,0],[0,1,0],[2,0,3.0],[2,3,0]]))
-        scalar = 10
-        actual = M.dot(scalar)
-        expected = M * scalar
-
-        assert_allclose(actual.toarray(), expected.toarray())
-
-    def test_matmul(self):
-        M = self.spcreator(array([[3,0,0],[0,1,0],[2,0,3.0],[2,3,0]]))
-        B = self.spcreator(array([[0,1],[1,0],[0,2]],'d'))
-        col = array([[1,2,3]]).T
-
-        matmul = operator.matmul
-        # check matrix-vector
-        assert_array_almost_equal(matmul(M, col), M.toarray() @ col)
-
-        # check matrix-matrix
-        assert_array_almost_equal(matmul(M, B).toarray(), (M @ B).toarray())
-        assert_array_almost_equal(matmul(M.toarray(), B), (M @ B).toarray())
-        assert_array_almost_equal(matmul(M, B.toarray()), (M @ B).toarray())
-        if not isinstance(M, sparray):
-            assert_array_almost_equal(matmul(M, B).toarray(), (M * B).toarray())
-            assert_array_almost_equal(matmul(M.toarray(), B), (M * B).toarray())
-            assert_array_almost_equal(matmul(M, B.toarray()), (M * B).toarray())
-
-        # check error on matrix-scalar
-        assert_raises(ValueError, matmul, M, 1)
-        assert_raises(ValueError, matmul, 1, M)
-
-    def test_matvec(self):
-        M = self.spcreator(matrix([[3,0,0],[0,1,0],[2,0,3.0],[2,3,0]]))
-        col = array([[1,2,3]]).T
-
-        assert_array_almost_equal(M @ col, M.toarray() @ col)
-
-        # check result dimensions (ticket #514)
-        assert_equal((M @ array([1,2,3])).shape,(4,))
-        assert_equal((M @ array([[1],[2],[3]])).shape,(4,1))
-        assert_equal((M @ matrix([[1],[2],[3]])).shape,(4,1))
-
-        # check result type
-        assert_(isinstance(M @ array([1,2,3]), ndarray))
-        assert_(isinstance(M @ matrix([1,2,3]).T, np.matrix))
-
-        # ensure exception is raised for improper dimensions
-        bad_vecs = [array([1,2]), array([1,2,3,4]), array([[1],[2]]),
-                    matrix([1,2,3]), matrix([[1],[2]])]
-        for x in bad_vecs:
-            assert_raises(ValueError, M.__mul__, x)
-
-        # The current relationship between sparse matrix products and array
-        # products is as follows:
-        assert_array_almost_equal(M@array([1,2,3]), dot(M.toarray(),[1,2,3]))
-        assert_array_almost_equal(M@[[1],[2],[3]], asmatrix(dot(M.toarray(),[1,2,3])).T)
-        # Note that the result of M * x is dense if x has a singleton dimension.
-
-        # Currently M.matvec(asarray(col)) is rank-1, whereas M.matvec(col)
-        # is rank-2.  Is this desirable?
-
-    def test_matmat_sparse(self):
-        a = matrix([[3,0,0],[0,1,0],[2,0,3.0],[2,3,0]])
-        a2 = array([[3,0,0],[0,1,0],[2,0,3.0],[2,3,0]])
-        b = matrix([[0,1],[1,0],[0,2]],'d')
-        asp = self.spcreator(a)
-        bsp = self.spcreator(b)
-        assert_array_almost_equal((asp @ bsp).toarray(), a @ b)
-        assert_array_almost_equal(asp @ b, a @ b)
-        assert_array_almost_equal(a @ bsp, a @ b)
-        assert_array_almost_equal(a2 @ bsp, a @ b)
-
-        # Now try performing cross-type multplication:
-        csp = bsp.tocsc()
-        c = b
-        want = a @ c
-        assert_array_almost_equal((asp @ csp).toarray(), want)
-        assert_array_almost_equal(asp @ c, want)
-
-        assert_array_almost_equal(a @ csp, want)
-        assert_array_almost_equal(a2 @ csp, want)
-        csp = bsp.tocsr()
-        assert_array_almost_equal((asp @ csp).toarray(), want)
-        assert_array_almost_equal(asp @ c, want)
-
-        assert_array_almost_equal(a @ csp, want)
-        assert_array_almost_equal(a2 @ csp, want)
-        csp = bsp.tocoo()
-        assert_array_almost_equal((asp @ csp).toarray(), want)
-        assert_array_almost_equal(asp @ c, want)
-
-        assert_array_almost_equal(a @ csp, want)
-        assert_array_almost_equal(a2 @ csp, want)
-
-        # Test provided by Andy Fraser, 2006-03-26
-        L = 30
-        frac = .3
-        random.seed(0)  # make runs repeatable
-        A = zeros((L,2))
-        for i in range(L):
-            for j in range(2):
-                r = random.random()
-                if r < frac:
-                    A[i,j] = r/frac
-
-        A = self.spcreator(A)
-        B = A @ A.T
-        assert_array_almost_equal(B.toarray(), A.toarray() @ A.T.toarray())
-        assert_array_almost_equal(B.toarray(), A.toarray() @ A.toarray().T)
-
-        # check dimension mismatch 2x2 times 3x2
-        A = self.spcreator([[1,2],[3,4]])
-        B = self.spcreator([[1,2],[3,4],[5,6]])
-        assert_raises(ValueError, A.__matmul__, B)
-        if isinstance(A, sparray):
-            assert_raises(ValueError, A.__mul__, B)
-
-    def test_matmat_dense(self):
-        a = matrix([[3,0,0],[0,1,0],[2,0,3.0],[2,3,0]])
-        asp = self.spcreator(a)
-
-        # check both array and matrix types
-        bs = [array([[1,2],[3,4],[5,6]]), matrix([[1,2],[3,4],[5,6]])]
-
-        for b in bs:
-            result = asp @ b
-            assert_(isinstance(result, type(b)))
-            assert_equal(result.shape, (4,2))
-            assert_equal(result, dot(a,b))
-
-    def test_sparse_format_conversions(self):
-        A = sparse.kron([[1,0,2],[0,3,4],[5,0,0]], [[1,2],[0,3]])
-        D = A.toarray()
-        A = self.spcreator(A)
-
-        for format in ['bsr','coo','csc','csr','dia','dok','lil']:
-            a = A.asformat(format)
-            assert_equal(a.format,format)
-            assert_array_equal(a.toarray(), D)
-
-            b = self.spcreator(D+3j).asformat(format)
-            assert_equal(b.format,format)
-            assert_array_equal(b.toarray(), D+3j)
-
-            c = eval(format + '_matrix')(A)
-            assert_equal(c.format,format)
-            assert_array_equal(c.toarray(), D)
-
-        for format in ['array', 'dense']:
-            a = A.asformat(format)
-            assert_array_equal(a, D)
-
-            b = self.spcreator(D+3j).asformat(format)
-            assert_array_equal(b, D+3j)
-
-    def test_tobsr(self):
-        x = array([[1,0,2,0],[0,0,0,0],[0,0,4,5]])
-        y = array([[0,1,2],[3,0,5]])
-        A = kron(x,y)
-        Asp = self.spcreator(A)
-        for format in ['bsr']:
-            fn = getattr(Asp, 'to' + format)
-
-            for X in [1, 2, 3, 6]:
-                for Y in [1, 2, 3, 4, 6, 12]:
-                    assert_equal(fn(blocksize=(X, Y)).toarray(), A)
-
-    def test_transpose(self):
-        dat_1 = self.dat
-        dat_2 = np.array([[]])
-        matrices = [dat_1, dat_2]
-
-        def check(dtype, j):
-            dat = array(matrices[j], dtype=dtype)
-            datsp = self.spcreator(dat)
-
-            a = datsp.transpose()
-            b = dat.transpose()
-
-            assert_array_equal(a.toarray(), b)
-            assert_array_equal(a.transpose().toarray(), dat)
-            assert_array_equal(datsp.transpose(axes=(1, 0)).toarray(), b)
-            assert_equal(a.dtype, b.dtype)
-
-        # See gh-5987
-        empty = self.spcreator((3, 4))
-        assert_array_equal(np.transpose(empty).toarray(),
-                           np.transpose(zeros((3, 4))))
-        assert_array_equal(empty.T.toarray(), zeros((4, 3)))
-        assert_raises(ValueError, empty.transpose, axes=0)
-
-        for dtype in self.checked_dtypes:
-            for j in range(len(matrices)):
-                check(dtype, j)
-
-    def test_add_dense(self):
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            # adding a dense matrix to a sparse matrix
-            sum1 = dat + datsp
-            assert_array_equal(sum1, dat + dat)
-            sum2 = datsp + dat
-            assert_array_equal(sum2, dat + dat)
-
-        for dtype in self.math_dtypes:
-            check(dtype)
-
-    def test_sub_dense(self):
-        # subtracting a dense matrix to/from a sparse matrix
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            # Behavior is different for bool.
-            if dat.dtype == bool:
-                sum1 = dat - datsp
-                assert_array_equal(sum1, dat - dat)
-                sum2 = datsp - dat
-                assert_array_equal(sum2, dat - dat)
-            else:
-                # Manually add to avoid upcasting from scalar
-                # multiplication.
-                sum1 = (dat + dat + dat) - datsp
-                assert_array_equal(sum1, dat + dat)
-                sum2 = (datsp + datsp + datsp) - dat
-                assert_array_equal(sum2, dat + dat)
-
-        for dtype in self.math_dtypes:
-            if dtype == np.dtype('bool'):
-                # boolean array subtraction deprecated in 1.9.0
-                continue
-
-            check(dtype)
-
-    def test_maximum_minimum(self):
-        A_dense = np.array([[1, 0, 3], [0, 4, 5], [0, 0, 0]])
-        B_dense = np.array([[1, 1, 2], [0, 3, 6], [1, -1, 0]])
-
-        A_dense_cpx = np.array([[1, 0, 3], [0, 4+2j, 5], [0, 1j, -1j]])
-
-        def check(dtype, dtype2, btype):
-            if np.issubdtype(dtype, np.complexfloating):
-                A = self.spcreator(A_dense_cpx.astype(dtype))
-            else:
-                A = self.spcreator(A_dense.astype(dtype))
-            if btype == 'scalar':
-                B = dtype2.type(1)
-            elif btype == 'scalar2':
-                B = dtype2.type(-1)
-            elif btype == 'dense':
-                B = B_dense.astype(dtype2)
-            elif btype == 'sparse':
-                B = self.spcreator(B_dense.astype(dtype2))
-            else:
-                raise ValueError()
-
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning,
-                           "Taking maximum .minimum. with > 0 .< 0. number "
-                           "results to a dense matrix")
-
-                max_s = A.maximum(B)
-                min_s = A.minimum(B)
-
-            max_d = np.maximum(toarray(A), toarray(B))
-            assert_array_equal(toarray(max_s), max_d)
-            assert_equal(max_s.dtype, max_d.dtype)
-
-            min_d = np.minimum(toarray(A), toarray(B))
-            assert_array_equal(toarray(min_s), min_d)
-            assert_equal(min_s.dtype, min_d.dtype)
-
-        for dtype in self.math_dtypes:
-            for dtype2 in [np.int8, np.float64, np.complex128]:
-                for btype in ['scalar', 'scalar2', 'dense', 'sparse']:
-                    check(np.dtype(dtype), np.dtype(dtype2), btype)
-
-    def test_copy(self):
-        # Check whether the copy=True and copy=False keywords work
-        A = self.datsp
-
-        # check that copy preserves format
-        assert_equal(A.copy().format, A.format)
-        assert_equal(A.__class__(A,copy=True).format, A.format)
-        assert_equal(A.__class__(A,copy=False).format, A.format)
-
-        assert_equal(A.copy().toarray(), A.toarray())
-        assert_equal(A.__class__(A, copy=True).toarray(), A.toarray())
-        assert_equal(A.__class__(A, copy=False).toarray(), A.toarray())
-
-        # check that XXX_matrix.toXXX() works
-        toself = getattr(A,'to' + A.format)
-        assert_(toself() is A)
-        assert_(toself(copy=False) is A)
-        assert_equal(toself(copy=True).format, A.format)
-        assert_equal(toself(copy=True).toarray(), A.toarray())
-
-        # check whether the data is copied?
-        assert_(not sparse_may_share_memory(A.copy(), A))
-
-    # test that __iter__ is compatible with NumPy matrix
-    def test_iterator(self):
-        B = matrix(np.arange(50).reshape(5, 10))
-        A = self.spcreator(B)
-
-        for x, y in zip(A, B):
-            assert_equal(x.toarray(), y)
-
-    def test_size_zero_matrix_arithmetic(self):
-        # Test basic matrix arithmetic with shapes like (0,0), (10,0),
-        # (0, 3), etc.
-        mat = array([])
-        a = mat.reshape((0, 0))
-        b = mat.reshape((0, 1))
-        c = mat.reshape((0, 5))
-        d = mat.reshape((1, 0))
-        e = mat.reshape((5, 0))
-        f = np.ones([5, 5])
-
-        asp = self.spcreator(a)
-        bsp = self.spcreator(b)
-        csp = self.spcreator(c)
-        dsp = self.spcreator(d)
-        esp = self.spcreator(e)
-        fsp = self.spcreator(f)
-
-        # matrix product.
-        assert_array_equal(asp.dot(asp).toarray(), np.dot(a, a))
-        assert_array_equal(bsp.dot(dsp).toarray(), np.dot(b, d))
-        assert_array_equal(dsp.dot(bsp).toarray(), np.dot(d, b))
-        assert_array_equal(csp.dot(esp).toarray(), np.dot(c, e))
-        assert_array_equal(csp.dot(fsp).toarray(), np.dot(c, f))
-        assert_array_equal(esp.dot(csp).toarray(), np.dot(e, c))
-        assert_array_equal(dsp.dot(csp).toarray(), np.dot(d, c))
-        assert_array_equal(fsp.dot(esp).toarray(), np.dot(f, e))
-
-        # bad matrix products
-        assert_raises(ValueError, dsp.dot, e)
-        assert_raises(ValueError, asp.dot, d)
-
-        # elemente-wise multiplication
-        assert_array_equal(asp.multiply(asp).toarray(), np.multiply(a, a))
-        assert_array_equal(bsp.multiply(bsp).toarray(), np.multiply(b, b))
-        assert_array_equal(dsp.multiply(dsp).toarray(), np.multiply(d, d))
-
-        assert_array_equal(asp.multiply(a).toarray(), np.multiply(a, a))
-        assert_array_equal(bsp.multiply(b).toarray(), np.multiply(b, b))
-        assert_array_equal(dsp.multiply(d).toarray(), np.multiply(d, d))
-
-        assert_array_equal(asp.multiply(6).toarray(), np.multiply(a, 6))
-        assert_array_equal(bsp.multiply(6).toarray(), np.multiply(b, 6))
-        assert_array_equal(dsp.multiply(6).toarray(), np.multiply(d, 6))
-
-        # bad element-wise multiplication
-        assert_raises(ValueError, asp.multiply, c)
-        assert_raises(ValueError, esp.multiply, c)
-
-        # Addition
-        assert_array_equal(asp.__add__(asp).toarray(), a.__add__(a))
-        assert_array_equal(bsp.__add__(bsp).toarray(), b.__add__(b))
-        assert_array_equal(dsp.__add__(dsp).toarray(), d.__add__(d))
-
-        # bad addition
-        assert_raises(ValueError, asp.__add__, dsp)
-        assert_raises(ValueError, bsp.__add__, asp)
-
-    def test_size_zero_conversions(self):
-        mat = array([])
-        a = mat.reshape((0, 0))
-        b = mat.reshape((0, 5))
-        c = mat.reshape((5, 0))
-
-        for m in [a, b, c]:
-            spm = self.spcreator(m)
-            assert_array_equal(spm.tocoo().toarray(), m)
-            assert_array_equal(spm.tocsr().toarray(), m)
-            assert_array_equal(spm.tocsc().toarray(), m)
-            assert_array_equal(spm.tolil().toarray(), m)
-            assert_array_equal(spm.todok().toarray(), m)
-            assert_array_equal(spm.tobsr().toarray(), m)
-
-    def test_pickle(self):
-        import pickle
-        sup = suppress_warnings()
-        sup.filter(SparseEfficiencyWarning)
-
-        @sup
-        def check():
-            datsp = self.datsp.copy()
-            for protocol in range(pickle.HIGHEST_PROTOCOL):
-                sploaded = pickle.loads(pickle.dumps(datsp, protocol=protocol))
-                assert_equal(datsp.shape, sploaded.shape)
-                assert_array_equal(datsp.toarray(), sploaded.toarray())
-                assert_equal(datsp.format, sploaded.format)
-                # Hacky check for class member equality. This assumes that
-                # all instance variables are one of:
-                #  1. Plain numpy ndarrays
-                #  2. Tuples of ndarrays
-                #  3. Types that support equality comparison with ==
-                for key, val in datsp.__dict__.items():
-                    if isinstance(val, np.ndarray):
-                        assert_array_equal(val, sploaded.__dict__[key])
-                    elif (isinstance(val, tuple) and val
-                          and isinstance(val[0], np.ndarray)):
-                        assert_array_equal(val, sploaded.__dict__[key])
-                    else:
-                        assert_(val == sploaded.__dict__[key])
-        check()
-
-    def test_unary_ufunc_overrides(self):
-        def check(name):
-            if name == "sign":
-                pytest.skip("sign conflicts with comparison op "
-                            "support on Numpy")
-            if self.spcreator in (dok_matrix, lil_matrix):
-                pytest.skip("Unary ops not implemented for dok/lil")
-            ufunc = getattr(np, name)
-
-            X = self.spcreator(np.arange(20).reshape(4, 5) / 20.)
-            X0 = ufunc(X.toarray())
-
-            X2 = ufunc(X)
-            assert_array_equal(X2.toarray(), X0)
-
-        for name in ["sin", "tan", "arcsin", "arctan", "sinh", "tanh",
-                     "arcsinh", "arctanh", "rint", "sign", "expm1", "log1p",
-                     "deg2rad", "rad2deg", "floor", "ceil", "trunc", "sqrt",
-                     "abs"]:
-            check(name)
-
-    def test_resize(self):
-        # resize(shape) resizes the matrix in-place
-        D = np.array([[1, 0, 3, 4],
-                      [2, 0, 0, 0],
-                      [3, 0, 0, 0]])
-        S = self.spcreator(D)
-        assert_(S.resize((3, 2)) is None)
-        assert_array_equal(S.toarray(), [[1, 0],
-                                         [2, 0],
-                                         [3, 0]])
-        S.resize((2, 2))
-        assert_array_equal(S.toarray(), [[1, 0],
-                                         [2, 0]])
-        S.resize((3, 2))
-        assert_array_equal(S.toarray(), [[1, 0],
-                                         [2, 0],
-                                         [0, 0]])
-        S.resize((3, 3))
-        assert_array_equal(S.toarray(), [[1, 0, 0],
-                                         [2, 0, 0],
-                                         [0, 0, 0]])
-        # test no-op
-        S.resize((3, 3))
-        assert_array_equal(S.toarray(), [[1, 0, 0],
-                                         [2, 0, 0],
-                                         [0, 0, 0]])
-
-        # test *args
-        S.resize(3, 2)
-        assert_array_equal(S.toarray(), [[1, 0],
-                                         [2, 0],
-                                         [0, 0]])
-
-        for bad_shape in [1, (-1, 2), (2, -1), (1, 2, 3)]:
-            assert_raises(ValueError, S.resize, bad_shape)
-
-    def test_constructor1_base(self):
-        A = self.datsp
-
-        self_format = A.format
-
-        C = A.__class__(A, copy=False)
-        assert_array_equal_dtype(A.toarray(), C.toarray())
-        if self_format not in NON_ARRAY_BACKED_FORMATS:
-            assert_(sparse_may_share_memory(A, C))
-
-        C = A.__class__(A, dtype=A.dtype, copy=False)
-        assert_array_equal_dtype(A.toarray(), C.toarray())
-        if self_format not in NON_ARRAY_BACKED_FORMATS:
-            assert_(sparse_may_share_memory(A, C))
-
-        C = A.__class__(A, dtype=np.float32, copy=False)
-        assert_array_equal(A.toarray(), C.toarray())
-
-        C = A.__class__(A, copy=True)
-        assert_array_equal_dtype(A.toarray(), C.toarray())
-        assert_(not sparse_may_share_memory(A, C))
-
-        for other_format in ['csr', 'csc', 'coo', 'dia', 'dok', 'lil']:
-            if other_format == self_format:
-                continue
-            B = A.asformat(other_format)
-            C = A.__class__(B, copy=False)
-            assert_array_equal_dtype(A.toarray(), C.toarray())
-
-            C = A.__class__(B, copy=True)
-            assert_array_equal_dtype(A.toarray(), C.toarray())
-            assert_(not sparse_may_share_memory(B, C))
-
-
-class _TestInplaceArithmetic:
-    def test_inplace_dense(self):
-        a = np.ones((3, 4))
-        b = self.spcreator(a)
-
-        x = a.copy()
-        y = a.copy()
-        x += a
-        y += b
-        assert_array_equal(x, y)
-
-        x = a.copy()
-        y = a.copy()
-        x -= a
-        y -= b
-        assert_array_equal(x, y)
-
-        x = a.copy()
-        y = a.copy()
-        if isinstance(b, sparray):
-            assert_raises(ValueError, operator.imul, x, b.T)
-            x = x * a
-            y *= b
-        else:
-            # This is matrix product, from __rmul__
-            assert_raises(ValueError, operator.imul, x, b)
-            x = x.dot(a.T)
-            y *= b.T
-        assert_array_equal(x, y)
-
-        # Matrix (non-elementwise) floor division is not defined
-        assert_raises(TypeError, operator.ifloordiv, x, b)
-
-    def test_imul_scalar(self):
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            # Avoid implicit casting.
-            if np.can_cast(int, dtype, casting='same_kind'):
-                a = datsp.copy()
-                a *= 2
-                b = dat.copy()
-                b *= 2
-                assert_array_equal(b, a.toarray())
-
-            if np.can_cast(float, dtype, casting='same_kind'):
-                a = datsp.copy()
-                a *= 17.3
-                b = dat.copy()
-                b *= 17.3
-                assert_array_equal(b, a.toarray())
-
-        for dtype in self.math_dtypes:
-            check(dtype)
-
-    def test_idiv_scalar(self):
-        def check(dtype):
-            dat = self.dat_dtypes[dtype]
-            datsp = self.datsp_dtypes[dtype]
-
-            if np.can_cast(int, dtype, casting='same_kind'):
-                a = datsp.copy()
-                a /= 2
-                b = dat.copy()
-                b /= 2
-                assert_array_equal(b, a.toarray())
-
-            if np.can_cast(float, dtype, casting='same_kind'):
-                a = datsp.copy()
-                a /= 17.3
-                b = dat.copy()
-                b /= 17.3
-                assert_array_equal(b, a.toarray())
-
-        for dtype in self.math_dtypes:
-            # /= should only be used with float dtypes to avoid implicit
-            # casting.
-            if not np.can_cast(dtype, np.dtype(int)):
-                check(dtype)
-
-    def test_inplace_success(self):
-        # Inplace ops should work even if a specialized version is not
-        # implemented, falling back to x = x  y
-        a = self.spcreator(np.eye(5))
-        b = self.spcreator(np.eye(5))
-        bp = self.spcreator(np.eye(5))
-
-        b += a
-        bp = bp + a
-        assert_allclose(b.toarray(), bp.toarray())
-
-        b *= a
-        bp = bp * a
-        assert_allclose(b.toarray(), bp.toarray())
-
-        b -= a
-        bp = bp - a
-        assert_allclose(b.toarray(), bp.toarray())
-
-        assert_raises(TypeError, operator.ifloordiv, a, b)
-
-
-class _TestGetSet:
-    def test_getelement(self):
-        def check(dtype):
-            D = array([[1,0,0],
-                       [4,3,0],
-                       [0,2,0],
-                       [0,0,0]], dtype=dtype)
-            A = self.spcreator(D)
-
-            M,N = D.shape
-
-            for i in range(-M, M):
-                for j in range(-N, N):
-                    assert_equal(A[i,j], D[i,j])
-
-            assert_equal(type(A[1,1]), dtype)
-
-            for ij in [(0,3),(-1,3),(4,0),(4,3),(4,-1), (1, 2, 3)]:
-                assert_raises((IndexError, TypeError), A.__getitem__, ij)
-
-        for dtype in supported_dtypes:
-            check(np.dtype(dtype))
-
-    def test_setelement(self):
-        def check(dtype):
-            A = self.spcreator((3,4), dtype=dtype)
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-                A[0, 0] = dtype.type(0)  # bug 870
-                A[1, 2] = dtype.type(4.0)
-                A[0, 1] = dtype.type(3)
-                A[2, 0] = dtype.type(2.0)
-                A[0,-1] = dtype.type(8)
-                A[-1,-2] = dtype.type(7)
-                A[0, 1] = dtype.type(5)
-
-            if dtype != np.bool_:
-                assert_array_equal(
-                    A.toarray(),
-                    [
-                        [0, 5, 0, 8],
-                        [0, 0, 4, 0],
-                        [2, 0, 7, 0]
-                    ]
-                )
-
-            for ij in [(0,4),(-1,4),(3,0),(3,4),(3,-1)]:
-                assert_raises(IndexError, A.__setitem__, ij, 123.0)
-
-            for v in [[1,2,3], array([1,2,3])]:
-                assert_raises(ValueError, A.__setitem__, (0,0), v)
-
-            if (not np.issubdtype(dtype, np.complexfloating) and
-                    dtype != np.bool_):
-                for v in [3j]:
-                    assert_raises(TypeError, A.__setitem__, (0,0), v)
-
-        for dtype in supported_dtypes:
-            check(np.dtype(dtype))
-
-    def test_negative_index_assignment(self):
-        # Regression test for github issue 4428.
-
-        def check(dtype):
-            A = self.spcreator((3, 10), dtype=dtype)
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-                A[0, -4] = 1
-            assert_equal(A[0, -4], 1)
-
-        for dtype in self.math_dtypes:
-            check(np.dtype(dtype))
-
-    def test_scalar_assign_2(self):
-        n, m = (5, 10)
-
-        def _test_set(i, j, nitems):
-            msg = f"{i!r} ; {j!r} ; {nitems!r}"
-            A = self.spcreator((n, m))
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-                A[i, j] = 1
-            assert_almost_equal(A.sum(), nitems, err_msg=msg)
-            assert_almost_equal(A[i, j], 1, err_msg=msg)
-
-        # [i,j]
-        for i, j in [(2, 3), (-1, 8), (-1, -2), (array(-1), -2), (-1, array(-2)),
-                     (array(-1), array(-2))]:
-            _test_set(i, j, 1)
-
-    def test_index_scalar_assign(self):
-        A = self.spcreator((5, 5))
-        B = np.zeros((5, 5))
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            for C in [A, B]:
-                C[0,1] = 1
-                C[3,0] = 4
-                C[3,0] = 9
-        assert_array_equal(A.toarray(), B)
-
-
-class _TestSolve:
-    def test_solve(self):
-        # Test whether the lu_solve command segfaults, as reported by Nils
-        # Wagner for a 64-bit machine, 02 March 2005 (EJS)
-        n = 20
-        np.random.seed(0)  # make tests repeatable
-        A = zeros((n,n), dtype=complex)
-        x = np.random.rand(n)
-        y = np.random.rand(n-1)+1j*np.random.rand(n-1)
-        r = np.random.rand(n)
-        for i in range(len(x)):
-            A[i,i] = x[i]
-        for i in range(len(y)):
-            A[i,i+1] = y[i]
-            A[i+1,i] = conjugate(y[i])
-        A = self.spcreator(A)
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning,
-                       "splu converted its input to CSC format")
-            x = splu(A).solve(r)
-        assert_almost_equal(A @ x,r)
-
-
-class _TestSlicing:
-    def test_dtype_preservation(self):
-        assert_equal(self.spcreator((1,10), dtype=np.int16)[0,1:5].dtype, np.int16)
-        assert_equal(self.spcreator((1,10), dtype=np.int32)[0,1:5].dtype, np.int32)
-        assert_equal(self.spcreator((1,10), dtype=np.float32)[0,1:5].dtype, np.float32)
-        assert_equal(self.spcreator((1,10), dtype=np.float64)[0,1:5].dtype, np.float64)
-
-    def test_dtype_preservation_empty_slice(self):
-        # This should be parametrized with pytest, but something in the parent
-        # class creation used in this file breaks pytest.mark.parametrize.
-        for dt in [np.int16, np.int32, np.float32, np.float64]:
-            A = self.spcreator((3, 2), dtype=dt)
-            assert_equal(A[:, 0:0:2].dtype, dt)
-            assert_equal(A[0:0:2, :].dtype, dt)
-            assert_equal(A[0, 0:0:2].dtype, dt)
-            assert_equal(A[0:0:2, 0].dtype, dt)
-
-    def test_get_horiz_slice(self):
-        B = asmatrix(arange(50.).reshape(5,10))
-        A = self.spcreator(B)
-        assert_array_equal(B[1, :], A[1, :].toarray())
-        assert_array_equal(B[1, 2:5], A[1, 2:5].toarray())
-
-        C = matrix([[1, 2, 1], [4, 0, 6], [0, 0, 0], [0, 0, 1]])
-        D = self.spcreator(C)
-        assert_array_equal(C[1, 1:3], D[1, 1:3].toarray())
-
-        # Now test slicing when a row contains only zeros
-        E = matrix([[1, 2, 1], [4, 0, 0], [0, 0, 0], [0, 0, 1]])
-        F = self.spcreator(E)
-        assert_array_equal(E[1, 1:3], F[1, 1:3].toarray())
-        assert_array_equal(E[2, -2:], F[2, -2:].toarray())
-
-        # The following should raise exceptions:
-        assert_raises(IndexError, A.__getitem__, (slice(None), 11))
-        assert_raises(IndexError, A.__getitem__, (6, slice(3, 7)))
-
-    def test_get_vert_slice(self):
-        B = arange(50.).reshape(5, 10)
-        A = self.spcreator(B)
-        assert_array_equal(B[2:5, [0]], A[2:5, 0].toarray())
-        assert_array_equal(B[:, [1]], A[:, 1].toarray())
-
-        C = array([[1, 2, 1], [4, 0, 6], [0, 0, 0], [0, 0, 1]])
-        D = self.spcreator(C)
-        assert_array_equal(C[1:3, [1]], D[1:3, 1].toarray())
-        assert_array_equal(C[:, [2]], D[:, 2].toarray())
-
-        # Now test slicing when a column contains only zeros
-        E = array([[1, 0, 1], [4, 0, 0], [0, 0, 0], [0, 0, 1]])
-        F = self.spcreator(E)
-        assert_array_equal(E[:, [1]], F[:, 1].toarray())
-        assert_array_equal(E[-2:, [2]], F[-2:, 2].toarray())
-
-        # The following should raise exceptions:
-        assert_raises(IndexError, A.__getitem__, (slice(None), 11))
-        assert_raises(IndexError, A.__getitem__, (6, slice(3, 7)))
-
-    def test_get_slices(self):
-        B = arange(50.).reshape(5, 10)
-        A = self.spcreator(B)
-        assert_array_equal(A[2:5, 0:3].toarray(), B[2:5, 0:3])
-        assert_array_equal(A[1:, :-1].toarray(), B[1:, :-1])
-        assert_array_equal(A[:-1, 1:].toarray(), B[:-1, 1:])
-
-        # Now test slicing when a column contains only zeros
-        E = array([[1, 0, 1], [4, 0, 0], [0, 0, 0], [0, 0, 1]])
-        F = self.spcreator(E)
-        assert_array_equal(E[1:2, 1:2], F[1:2, 1:2].toarray())
-        assert_array_equal(E[:, 1:], F[:, 1:].toarray())
-
-    def test_non_unit_stride_2d_indexing(self):
-        # Regression test -- used to silently ignore the stride.
-        v0 = np.random.rand(50, 50)
-        try:
-            v = self.spcreator(v0)[0:25:2, 2:30:3]
-        except ValueError:
-            # if unsupported
-            raise pytest.skip("feature not implemented")
-
-        assert_array_equal(v.toarray(), v0[0:25:2, 2:30:3])
-
-    def test_slicing_2(self):
-        B = asmatrix(arange(50).reshape(5,10))
-        A = self.spcreator(B)
-
-        # [i,j]
-        assert_equal(A[2,3], B[2,3])
-        assert_equal(A[-1,8], B[-1,8])
-        assert_equal(A[-1,-2],B[-1,-2])
-        assert_equal(A[array(-1),-2],B[-1,-2])
-        assert_equal(A[-1,array(-2)],B[-1,-2])
-        assert_equal(A[array(-1),array(-2)],B[-1,-2])
-
-        # [i,1:2]
-        assert_equal(A[2, :].toarray(), B[2, :])
-        assert_equal(A[2, 5:-2].toarray(), B[2, 5:-2])
-        assert_equal(A[array(2), 5:-2].toarray(), B[2, 5:-2])
-
-        # [1:2,j]
-        assert_equal(A[:, 2].toarray(), B[:, 2])
-        assert_equal(A[3:4, 9].toarray(), B[3:4, 9])
-        assert_equal(A[1:4, -5].toarray(), B[1:4, -5])
-        assert_equal(A[2:-1, 3].toarray(), B[2:-1, 3])
-        assert_equal(A[2:-1, array(3)].toarray(), B[2:-1, 3])
-
-        # [1:2,1:2]
-        assert_equal(A[1:2, 1:2].toarray(), B[1:2, 1:2])
-        assert_equal(A[4:, 3:].toarray(), B[4:, 3:])
-        assert_equal(A[:4, :5].toarray(), B[:4, :5])
-        assert_equal(A[2:-1, :5].toarray(), B[2:-1, :5])
-
-        # [i]
-        assert_equal(A[1, :].toarray(), B[1, :])
-        assert_equal(A[-2, :].toarray(), B[-2, :])
-        assert_equal(A[array(-2), :].toarray(), B[-2, :])
-
-        # [1:2]
-        assert_equal(A[1:4].toarray(), B[1:4])
-        assert_equal(A[1:-2].toarray(), B[1:-2])
-
-        # Check bug reported by Robert Cimrman:
-        # http://thread.gmane.org/gmane.comp.python.scientific.devel/7986 (dead link)
-        s = slice(int8(2),int8(4),None)
-        assert_equal(A[s, :].toarray(), B[2:4, :])
-        assert_equal(A[:, s].toarray(), B[:, 2:4])
-
-    def test_slicing_3(self):
-        B = asmatrix(arange(50).reshape(5,10))
-        A = self.spcreator(B)
-
-        s_ = np.s_
-        slices = [s_[:2], s_[1:2], s_[3:], s_[3::2],
-                  s_[15:20], s_[3:2],
-                  s_[8:3:-1], s_[4::-2], s_[:5:-1],
-                  0, 1, s_[:], s_[1:5], -1, -2, -5,
-                  array(-1), np.int8(-3)]
-
-        def check_1(a):
-            x = A[a]
-            y = B[a]
-            if y.shape == ():
-                assert_equal(x, y, repr(a))
-            else:
-                if x.size == 0 and y.size == 0:
-                    pass
-                else:
-                    assert_array_equal(x.toarray(), y, repr(a))
-
-        for j, a in enumerate(slices):
-            check_1(a)
-
-        def check_2(a, b):
-            # Indexing np.matrix with 0-d arrays seems to be broken,
-            # as they seem not to be treated as scalars.
-            # https://github.com/numpy/numpy/issues/3110
-            if isinstance(a, np.ndarray):
-                ai = int(a)
-            else:
-                ai = a
-            if isinstance(b, np.ndarray):
-                bi = int(b)
-            else:
-                bi = b
-
-            x = A[a, b]
-            y = B[ai, bi]
-
-            if y.shape == ():
-                assert_equal(x, y, repr((a, b)))
-            else:
-                if x.size == 0 and y.size == 0:
-                    pass
-                else:
-                    assert_array_equal(x.toarray(), y, repr((a, b)))
-
-        for i, a in enumerate(slices):
-            for j, b in enumerate(slices):
-                check_2(a, b)
-
-        # Check out of bounds etc. systematically
-        extra_slices = []
-        for a, b, c in itertools.product(*([(None, 0, 1, 2, 5, 15,
-                                             -1, -2, 5, -15)]*3)):
-            if c == 0:
-                continue
-            extra_slices.append(slice(a, b, c))
-
-        for a in extra_slices:
-            check_2(a, a)
-            check_2(a, -2)
-            check_2(-2, a)
-
-    def test_ellipsis_slicing(self):
-        b = asmatrix(arange(50).reshape(5,10))
-        a = self.spcreator(b)
-
-        assert_array_equal(a[...].toarray(), b[...].A)
-        assert_array_equal(a[...,].toarray(), b[...,].A)
-
-        assert_array_equal(a[1, ...].toarray(), b[1, ...].A)
-        assert_array_equal(a[..., 1].toarray(), b[..., 1].A)
-        assert_array_equal(a[1:, ...].toarray(), b[1:, ...].A)
-        assert_array_equal(a[..., 1:].toarray(), b[..., 1:].A)
-
-        assert_array_equal(a[1:, 1, ...].toarray(), b[1:, 1, ...].A)
-        assert_array_equal(a[1, ..., 1:].toarray(), b[1, ..., 1:].A)
-        # These return ints
-        assert_equal(a[1, 1, ...], b[1, 1, ...])
-        assert_equal(a[1, ..., 1], b[1, ..., 1])
-
-    def test_multiple_ellipsis_slicing(self):
-        a = self.spcreator(arange(6).reshape(3, 2))
-
-        with pytest.raises(IndexError,
-                           match='an index can only have a single ellipsis'):
-            a[..., ...]
-        with pytest.raises(IndexError,
-                           match='an index can only have a single ellipsis'):
-            a[..., 1, ...]
-
-
-class _TestSlicingAssign:
-    def test_slice_scalar_assign(self):
-        A = self.spcreator((5, 5))
-        B = np.zeros((5, 5))
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            for C in [A, B]:
-                C[0:1,1] = 1
-                C[3:0,0] = 4
-                C[3:4,0] = 9
-                C[0,4:] = 1
-                C[3::-1,4:] = 9
-        assert_array_equal(A.toarray(), B)
-
-    def test_slice_assign_2(self):
-        n, m = (5, 10)
-
-        def _test_set(i, j):
-            msg = f"i={i!r}; j={j!r}"
-            A = self.spcreator((n, m))
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-                A[i, j] = 1
-            B = np.zeros((n, m))
-            B[i, j] = 1
-            assert_array_almost_equal(A.toarray(), B, err_msg=msg)
-        # [i,1:2]
-        for i, j in [(2, slice(3)), (2, slice(None, 10, 4)), (2, slice(5, -2)),
-                     (array(2), slice(5, -2))]:
-            _test_set(i, j)
-
-    def test_self_self_assignment(self):
-        # Tests whether a row of one lil_matrix can be assigned to
-        # another.
-        B = self.spcreator((4,3))
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            B[0,0] = 2
-            B[1,2] = 7
-            B[2,1] = 3
-            B[3,0] = 10
-
-            A = B / 10
-            B[0,:] = A[0,:]
-            assert_array_equal(A[0,:].toarray(), B[0,:].toarray())
-
-            A = B / 10
-            B[:,:] = A[:1,:1]
-            assert_array_equal(np.zeros((4,3)) + A[0,0], B.toarray())
-
-            A = B / 10
-            B[:-1,0] = A[0,:].T
-            assert_array_equal(A[0,:].toarray().T, B[:-1,0].toarray())
-
-    def test_slice_assignment(self):
-        B = self.spcreator((4,3))
-        expected = array([[10,0,0],
-                          [0,0,6],
-                          [0,14,0],
-                          [0,0,0]])
-        block = [[1,0],[0,4]]
-
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            B[0,0] = 5
-            B[1,2] = 3
-            B[2,1] = 7
-            B[:,:] = B+B
-            assert_array_equal(B.toarray(), expected)
-
-            B[:2,:2] = csc_matrix(array(block))
-            assert_array_equal(B.toarray()[:2, :2], block)
-
-    def test_sparsity_modifying_assignment(self):
-        B = self.spcreator((4,3))
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            B[0,0] = 5
-            B[1,2] = 3
-            B[2,1] = 7
-            B[3,0] = 10
-            B[:3] = csr_matrix(np.eye(3))
-
-        expected = array([[1,0,0],[0,1,0],[0,0,1],[10,0,0]])
-        assert_array_equal(B.toarray(), expected)
-
-    def test_set_slice(self):
-        A = self.spcreator((5,10))
-        B = array(zeros((5, 10), float))
-        s_ = np.s_
-        slices = [s_[:2], s_[1:2], s_[3:], s_[3::2],
-                  s_[8:3:-1], s_[4::-2], s_[:5:-1],
-                  0, 1, s_[:], s_[1:5], -1, -2, -5,
-                  array(-1), np.int8(-3)]
-
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            for j, a in enumerate(slices):
-                A[a] = j
-                B[a] = j
-                assert_array_equal(A.toarray(), B, repr(a))
-
-            for i, a in enumerate(slices):
-                for j, b in enumerate(slices):
-                    A[a,b] = 10*i + 1000*(j+1)
-                    B[a,b] = 10*i + 1000*(j+1)
-                    assert_array_equal(A.toarray(), B, repr((a, b)))
-
-            A[0, 1:10:2] = range(1, 10, 2)
-            B[0, 1:10:2] = range(1, 10, 2)
-            assert_array_equal(A.toarray(), B)
-            A[1:5:2, 0] = np.arange(1, 5, 2)[:, None]
-            B[1:5:2, 0] = np.arange(1, 5, 2)[:]
-            assert_array_equal(A.toarray(), B)
-
-        # The next commands should raise exceptions
-        assert_raises(ValueError, A.__setitem__, (0, 0), list(range(100)))
-        assert_raises(ValueError, A.__setitem__, (0, 0), arange(100))
-        assert_raises(ValueError, A.__setitem__, (0, slice(None)),
-                      list(range(100)))
-        assert_raises(ValueError, A.__setitem__, (slice(None), 1),
-                      list(range(100)))
-        assert_raises(ValueError, A.__setitem__, (slice(None), 1), A.copy())
-        assert_raises(ValueError, A.__setitem__,
-                      ([[1, 2, 3], [0, 3, 4]], [1, 2, 3]), [1, 2, 3, 4])
-        assert_raises(ValueError, A.__setitem__,
-                      ([[1, 2, 3], [0, 3, 4], [4, 1, 3]],
-                       [[1, 2, 4], [0, 1, 3]]), [2, 3, 4])
-        assert_raises(ValueError, A.__setitem__, (slice(4), 0),
-                      [[1, 2], [3, 4]])
-
-    def test_assign_empty(self):
-        A = self.spcreator(np.ones((2, 3)))
-        B = self.spcreator((1, 2))
-        A[1, :2] = B
-        assert_array_equal(A.toarray(), [[1, 1, 1], [0, 0, 1]])
-
-    def test_assign_1d_slice(self):
-        A = self.spcreator(np.ones((3, 3)))
-        x = np.zeros(3)
-        A[:, 0] = x
-        A[1, :] = x
-        assert_array_equal(A.toarray(), [[0, 1, 1], [0, 0, 0], [0, 1, 1]])
-
-
-class _TestFancyIndexing:
-    """Tests fancy indexing features.  The tests for any matrix formats
-    that implement these features should derive from this class.
-    """
-
-    def test_dtype_preservation_empty_index(self):
-        # This should be parametrized with pytest, but something in the parent
-        # class creation used in this file breaks pytest.mark.parametrize.
-        for dt in [np.int16, np.int32, np.float32, np.float64]:
-            A = self.spcreator((3, 2), dtype=dt)
-            assert_equal(A[:, [False, False]].dtype, dt)
-            assert_equal(A[[False, False, False], :].dtype, dt)
-            assert_equal(A[:, []].dtype, dt)
-            assert_equal(A[[], :].dtype, dt)
-
-    def test_bad_index(self):
-        A = self.spcreator(np.zeros([5, 5]))
-        assert_raises((IndexError, ValueError, TypeError), A.__getitem__, "foo")
-        assert_raises((IndexError, ValueError, TypeError), A.__getitem__, (2, "foo"))
-        assert_raises((IndexError, ValueError), A.__getitem__,
-                      ([1, 2, 3], [1, 2, 3, 4]))
-
-    def test_fancy_indexing(self):
-        B = asmatrix(arange(50).reshape(5,10))
-        A = self.spcreator(B)
-
-        # [i]
-        assert_equal(A[[1, 3]].toarray(), B[[1, 3]])
-
-        # [i,[1,2]]
-        assert_equal(A[3, [1, 3]].toarray(), B[3, [1, 3]])
-        assert_equal(A[-1, [2, -5]].toarray(), B[-1, [2, -5]])
-        assert_equal(A[array(-1), [2, -5]].toarray(), B[-1, [2, -5]])
-        assert_equal(A[-1, array([2, -5])].toarray(), B[-1, [2, -5]])
-        assert_equal(A[array(-1), array([2, -5])].toarray(), B[-1, [2, -5]])
-
-        # [1:2,[1,2]]
-        assert_equal(A[:, [2, 8, 3, -1]].toarray(), B[:, [2, 8, 3, -1]])
-        assert_equal(A[3:4, [9]].toarray(), B[3:4, [9]])
-        assert_equal(A[1:4, [-1, -5]].toarray(), B[1:4, [-1, -5]])
-        assert_equal(A[1:4, array([-1, -5])].toarray(), B[1:4, [-1, -5]])
-
-        # [[1,2],j]
-        assert_equal(A[[1, 3], 3].toarray(), B[[1, 3], 3])
-        assert_equal(A[[2, -5], -4].toarray(), B[[2, -5], -4])
-        assert_equal(A[array([2, -5]), -4].toarray(), B[[2, -5], -4])
-        assert_equal(A[[2, -5], array(-4)].toarray(), B[[2, -5], -4])
-        assert_equal(A[array([2, -5]), array(-4)].toarray(), B[[2, -5], -4])
-
-        # [[1,2],1:2]
-        assert_equal(A[[1, 3], :].toarray(), B[[1, 3], :])
-        assert_equal(A[[2, -5], 8:-1].toarray(), B[[2, -5], 8:-1])
-        assert_equal(A[array([2, -5]), 8:-1].toarray(), B[[2, -5], 8:-1])
-
-        # [[1,2],[1,2]]
-        assert_equal(toarray(A[[1, 3], [2, 4]]), B[[1, 3], [2, 4]])
-        assert_equal(toarray(A[[-1, -3], [2, -4]]), B[[-1, -3], [2, -4]])
-        assert_equal(
-            toarray(A[array([-1, -3]), [2, -4]]), B[[-1, -3], [2, -4]]
-        )
-        assert_equal(
-            toarray(A[[-1, -3], array([2, -4])]), B[[-1, -3], [2, -4]]
-        )
-        assert_equal(
-            toarray(A[array([-1, -3]), array([2, -4])]), B[[-1, -3], [2, -4]]
-        )
-
-        # [[[1],[2]],[1,2]]
-        assert_equal(A[[[1], [3]], [2, 4]].toarray(), B[[[1], [3]], [2, 4]])
-        assert_equal(
-            A[[[-1], [-3], [-2]], [2, -4]].toarray(),
-            B[[[-1], [-3], [-2]], [2, -4]]
-        )
-        assert_equal(
-            A[array([[-1], [-3], [-2]]), [2, -4]].toarray(),
-            B[[[-1], [-3], [-2]], [2, -4]]
-        )
-        assert_equal(
-            A[[[-1], [-3], [-2]], array([2, -4])].toarray(),
-            B[[[-1], [-3], [-2]], [2, -4]]
-        )
-        assert_equal(
-            A[array([[-1], [-3], [-2]]), array([2, -4])].toarray(),
-            B[[[-1], [-3], [-2]], [2, -4]]
-        )
-
-        # [[1,2]]
-        assert_equal(A[[1, 3]].toarray(), B[[1, 3]])
-        assert_equal(A[[-1, -3]].toarray(), B[[-1, -3]])
-        assert_equal(A[array([-1, -3])].toarray(), B[[-1, -3]])
-
-        # [[1,2],:][:,[1,2]]
-        assert_equal(
-            A[[1, 3], :][:, [2, 4]].toarray(), B[[1, 3], :][:, [2, 4]]
-        )
-        assert_equal(
-            A[[-1, -3], :][:, [2, -4]].toarray(), B[[-1, -3], :][:, [2, -4]]
-        )
-        assert_equal(
-            A[array([-1, -3]), :][:, array([2, -4])].toarray(),
-            B[[-1, -3], :][:, [2, -4]]
-        )
-
-        # [:,[1,2]][[1,2],:]
-        assert_equal(
-            A[:, [1, 3]][[2, 4], :].toarray(), B[:, [1, 3]][[2, 4], :]
-        )
-        assert_equal(
-            A[:, [-1, -3]][[2, -4], :].toarray(), B[:, [-1, -3]][[2, -4], :]
-        )
-        assert_equal(
-            A[:, array([-1, -3])][array([2, -4]), :].toarray(),
-            B[:, [-1, -3]][[2, -4], :]
-        )
-
-        # Check bug reported by Robert Cimrman:
-        # http://thread.gmane.org/gmane.comp.python.scientific.devel/7986 (dead link)
-        s = slice(int8(2),int8(4),None)
-        assert_equal(A[s, :].toarray(), B[2:4, :])
-        assert_equal(A[:, s].toarray(), B[:, 2:4])
-
-        # Regression for gh-4917: index with tuple of 2D arrays
-        i = np.array([[1]], dtype=int)
-        assert_equal(A[i, i].toarray(), B[i, i])
-
-        # Regression for gh-4917: index with tuple of empty nested lists
-        assert_equal(A[[[]], [[]]].toarray(), B[[[]], [[]]])
-
-    def test_fancy_indexing_randomized(self):
-        np.random.seed(1234)  # make runs repeatable
-
-        NUM_SAMPLES = 50
-        M = 6
-        N = 4
-
-        D = asmatrix(np.random.rand(M,N))
-        D = np.multiply(D, D > 0.5)
-
-        I = np.random.randint(-M + 1, M, size=NUM_SAMPLES)
-        J = np.random.randint(-N + 1, N, size=NUM_SAMPLES)
-
-        S = self.spcreator(D)
-
-        SIJ = S[I,J]
-        if issparse(SIJ):
-            SIJ = SIJ.toarray()
-        assert_equal(SIJ, D[I,J])
-
-        I_bad = I + M
-        J_bad = J - N
-
-        assert_raises(IndexError, S.__getitem__, (I_bad,J))
-        assert_raises(IndexError, S.__getitem__, (I,J_bad))
-
-    def test_missized_masking(self):
-        M, N = 5, 10
-
-        B = asmatrix(arange(M * N).reshape(M, N))
-        A = self.spcreator(B)
-
-        # Content of mask shouldn't matter, only its size
-        row_long = np.ones(M + 1, dtype=bool)
-        row_short = np.ones(M - 1, dtype=bool)
-        col_long = np.ones(N + 2, dtype=bool)
-        col_short = np.ones(N - 2, dtype=bool)
-
-        with pytest.raises(
-            IndexError,
-            match=rf"boolean row index has incorrect length: {M + 1} instead of {M}"
-        ):
-            _ = A[row_long, :]
-        with pytest.raises(
-            IndexError,
-            match=rf"boolean row index has incorrect length: {M - 1} instead of {M}"
-        ):
-            _ = A[row_short, :]
-
-        for i, j in itertools.product(
-            (row_long, row_short, slice(None)),
-            (col_long, col_short, slice(None)),
-        ):
-            if isinstance(i, slice) and isinstance(j, slice):
-                continue
-            with pytest.raises(
-                IndexError,
-                match=r"boolean \w+ index has incorrect length"
-            ):
-                _ = A[i, j]
-
-    def test_fancy_indexing_boolean(self):
-        np.random.seed(1234)  # make runs repeatable
-
-        B = asmatrix(arange(50).reshape(5,10))
-        A = self.spcreator(B)
-
-        I = np.array(np.random.randint(0, 2, size=5), dtype=bool)
-        J = np.array(np.random.randint(0, 2, size=10), dtype=bool)
-        X = np.array(np.random.randint(0, 2, size=(5, 10)), dtype=bool)
-
-        assert_equal(toarray(A[I]), B[I])
-        assert_equal(toarray(A[:, J]), B[:, J])
-        assert_equal(toarray(A[X]), B[X])
-        assert_equal(toarray(A[B > 9]), B[B > 9])
-
-        I = np.array([True, False, True, True, False])
-        J = np.array([False, True, True, False, True,
-                      False, False, False, False, False])
-
-        assert_equal(toarray(A[I, J]), B[I, J])
-
-        Z1 = np.zeros((6, 11), dtype=bool)
-        Z2 = np.zeros((6, 11), dtype=bool)
-        Z2[0,-1] = True
-        Z3 = np.zeros((6, 11), dtype=bool)
-        Z3[-1,0] = True
-
-        assert_raises(IndexError, A.__getitem__, Z1)
-        assert_raises(IndexError, A.__getitem__, Z2)
-        assert_raises(IndexError, A.__getitem__, Z3)
-        assert_raises((IndexError, ValueError), A.__getitem__, (X, 1))
-
-    def test_fancy_indexing_sparse_boolean(self):
-        np.random.seed(1234)  # make runs repeatable
-
-        B = asmatrix(arange(50).reshape(5,10))
-        A = self.spcreator(B)
-
-        X = np.array(np.random.randint(0, 2, size=(5, 10)), dtype=bool)
-
-        Xsp = csr_matrix(X)
-
-        assert_equal(toarray(A[Xsp]), B[X])
-        assert_equal(toarray(A[A > 9]), B[B > 9])
-
-        Z = np.array(np.random.randint(0, 2, size=(5, 11)), dtype=bool)
-        Y = np.array(np.random.randint(0, 2, size=(6, 10)), dtype=bool)
-
-        Zsp = csr_matrix(Z)
-        Ysp = csr_matrix(Y)
-
-        assert_raises(IndexError, A.__getitem__, Zsp)
-        assert_raises(IndexError, A.__getitem__, Ysp)
-        assert_raises((IndexError, ValueError), A.__getitem__, (Xsp, 1))
-
-    def test_fancy_indexing_regression_3087(self):
-        mat = self.spcreator(array([[1, 0, 0], [0,1,0], [1,0,0]]))
-        desired_cols = np.ravel(mat.sum(0)) > 0
-        assert_equal(mat[:, desired_cols].toarray(), [[1, 0], [0, 1], [1, 0]])
-
-    def test_fancy_indexing_seq_assign(self):
-        mat = self.spcreator(array([[1, 0], [0, 1]]))
-        assert_raises(ValueError, mat.__setitem__, (0, 0), np.array([1,2]))
-
-    def test_fancy_indexing_2d_assign(self):
-        # regression test for gh-10695
-        mat = self.spcreator(array([[1, 0], [2, 3]]))
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            mat[[0, 1], [1, 1]] = mat[[1, 0], [0, 0]]
-        assert_equal(toarray(mat), array([[1, 2], [2, 1]]))
-
-    def test_fancy_indexing_empty(self):
-        B = asmatrix(arange(50).reshape(5,10))
-        B[1,:] = 0
-        B[:,2] = 0
-        B[3,6] = 0
-        A = self.spcreator(B)
-
-        K = np.array([False, False, False, False, False])
-        assert_equal(toarray(A[K]), B[K])
-        K = np.array([], dtype=int)
-        assert_equal(toarray(A[K]), B[K])
-        assert_equal(toarray(A[K, K]), B[K, K])
-        J = np.array([0, 1, 2, 3, 4], dtype=int)[:,None]
-        assert_equal(toarray(A[K, J]), B[K, J])
-        assert_equal(toarray(A[J, K]), B[J, K])
-
-
-@contextlib.contextmanager
-def check_remains_sorted(X):
-    """Checks that sorted indices property is retained through an operation
-    """
-    if not hasattr(X, 'has_sorted_indices') or not X.has_sorted_indices:
-        yield
-        return
-    yield
-    indices = X.indices.copy()
-    X.has_sorted_indices = False
-    X.sort_indices()
-    assert_array_equal(indices, X.indices,
-                       'Expected sorted indices, found unsorted')
-
-
-class _TestFancyIndexingAssign:
-    def test_bad_index_assign(self):
-        A = self.spcreator(np.zeros([5, 5]))
-        assert_raises((IndexError, ValueError, TypeError), A.__setitem__, "foo", 2)
-        assert_raises((IndexError, ValueError, TypeError), A.__setitem__, (2, "foo"), 5)
-
-    def test_fancy_indexing_set(self):
-        n, m = (5, 10)
-
-        def _test_set_slice(i, j):
-            A = self.spcreator((n, m))
-            B = asmatrix(np.zeros((n, m)))
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-                B[i, j] = 1
-                with check_remains_sorted(A):
-                    A[i, j] = 1
-            assert_array_almost_equal(A.toarray(), B)
-        # [1:2,1:2]
-        for i, j in [((2, 3, 4), slice(None, 10, 4)),
-                     (np.arange(3), slice(5, -2)),
-                     (slice(2, 5), slice(5, -2))]:
-            _test_set_slice(i, j)
-        for i, j in [(np.arange(3), np.arange(3)), ((0, 3, 4), (1, 2, 4))]:
-            _test_set_slice(i, j)
-
-    def test_fancy_assignment_dtypes(self):
-        def check(dtype):
-            A = self.spcreator((5, 5), dtype=dtype)
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-                A[[0,1],[0,1]] = dtype.type(1)
-                assert_equal(A.sum(), dtype.type(1)*2)
-                A[0:2,0:2] = dtype.type(1.0)
-                assert_equal(A.sum(), dtype.type(1)*4)
-                A[2,2] = dtype.type(1.0)
-                assert_equal(A.sum(), dtype.type(1)*4 + dtype.type(1))
-
-        for dtype in supported_dtypes:
-            check(np.dtype(dtype))
-
-    def test_sequence_assignment(self):
-        A = self.spcreator((4,3))
-        B = self.spcreator(eye(3,4))
-
-        i0 = [0,1,2]
-        i1 = (0,1,2)
-        i2 = array(i0)
-
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            with check_remains_sorted(A):
-                A[0,i0] = B[i0,0].T
-                A[1,i1] = B[i1,1].T
-                A[2,i2] = B[i2,2].T
-            assert_array_equal(A.toarray(), B.T.toarray())
-
-            # column slice
-            A = self.spcreator((2,3))
-            with check_remains_sorted(A):
-                A[1,1:3] = [10,20]
-            assert_array_equal(A.toarray(), [[0, 0, 0], [0, 10, 20]])
-
-            # row slice
-            A = self.spcreator((3,2))
-            with check_remains_sorted(A):
-                A[1:3,1] = [[10],[20]]
-            assert_array_equal(A.toarray(), [[0, 0], [0, 10], [0, 20]])
-
-            # both slices
-            A = self.spcreator((3,3))
-            B = asmatrix(np.zeros((3,3)))
-            with check_remains_sorted(A):
-                for C in [A, B]:
-                    C[[0,1,2], [0,1,2]] = [4,5,6]
-            assert_array_equal(A.toarray(), B)
-
-            # both slices (2)
-            A = self.spcreator((4, 3))
-            with check_remains_sorted(A):
-                A[(1, 2, 3), (0, 1, 2)] = [1, 2, 3]
-            assert_almost_equal(A.sum(), 6)
-            B = asmatrix(np.zeros((4, 3)))
-            B[(1, 2, 3), (0, 1, 2)] = [1, 2, 3]
-            assert_array_equal(A.toarray(), B)
-
-    def test_fancy_assign_empty(self):
-        B = asmatrix(arange(50).reshape(5,10))
-        B[1,:] = 0
-        B[:,2] = 0
-        B[3,6] = 0
-        A = self.spcreator(B)
-
-        K = np.array([False, False, False, False, False])
-        A[K] = 42
-        assert_equal(toarray(A), B)
-
-        K = np.array([], dtype=int)
-        A[K] = 42
-        assert_equal(toarray(A), B)
-        A[K,K] = 42
-        assert_equal(toarray(A), B)
-
-        J = np.array([0, 1, 2, 3, 4], dtype=int)[:,None]
-        A[K,J] = 42
-        assert_equal(toarray(A), B)
-        A[J,K] = 42
-        assert_equal(toarray(A), B)
-
-
-class _TestFancyMultidim:
-    def test_fancy_indexing_ndarray(self):
-        sets = [
-            (np.array([[1], [2], [3]]), np.array([3, 4, 2])),
-            (np.array([[1], [2], [3]]), np.array([[3, 4, 2]])),
-            (np.array([[1, 2, 3]]), np.array([[3], [4], [2]])),
-            (np.array([1, 2, 3]), np.array([[3], [4], [2]])),
-            (np.array([[1, 2, 3], [3, 4, 2]]),
-             np.array([[5, 6, 3], [2, 3, 1]]))
-            ]
-        # These inputs generate 3-D outputs
-        #    (np.array([[[1], [2], [3]], [[3], [4], [2]]]),
-        #     np.array([[[5], [6], [3]], [[2], [3], [1]]])),
-
-        for I, J in sets:
-            np.random.seed(1234)
-            D = asmatrix(np.random.rand(5, 7))
-            S = self.spcreator(D)
-
-            SIJ = S[I,J]
-            if issparse(SIJ):
-                SIJ = SIJ.toarray()
-            assert_equal(SIJ, D[I,J])
-
-            I_bad = I + 5
-            J_bad = J + 7
-
-            assert_raises(IndexError, S.__getitem__, (I_bad,J))
-            assert_raises(IndexError, S.__getitem__, (I,J_bad))
-
-            # This would generate 3-D arrays -- not supported
-            assert_raises(IndexError, S.__getitem__, ([I, I], slice(None)))
-            assert_raises(IndexError, S.__getitem__, (slice(None), [J, J]))
-
-
-class _TestFancyMultidimAssign:
-    def test_fancy_assign_ndarray(self):
-        np.random.seed(1234)
-
-        D = asmatrix(np.random.rand(5, 7))
-        S = self.spcreator(D)
-        X = np.random.rand(2, 3)
-
-        I = np.array([[1, 2, 3], [3, 4, 2]])
-        J = np.array([[5, 6, 3], [2, 3, 1]])
-
-        with check_remains_sorted(S):
-            S[I,J] = X
-        D[I,J] = X
-        assert_equal(S.toarray(), D)
-
-        I_bad = I + 5
-        J_bad = J + 7
-
-        C = [1, 2, 3]
-
-        with check_remains_sorted(S):
-            S[I,J] = C
-        D[I,J] = C
-        assert_equal(S.toarray(), D)
-
-        with check_remains_sorted(S):
-            S[I,J] = 3
-        D[I,J] = 3
-        assert_equal(S.toarray(), D)
-
-        assert_raises(IndexError, S.__setitem__, (I_bad,J), C)
-        assert_raises(IndexError, S.__setitem__, (I,J_bad), C)
-
-    def test_fancy_indexing_multidim_set(self):
-        n, m = (5, 10)
-
-        def _test_set_slice(i, j):
-            A = self.spcreator((n, m))
-            with check_remains_sorted(A), suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-                A[i, j] = 1
-            B = asmatrix(np.zeros((n, m)))
-            B[i, j] = 1
-            assert_array_almost_equal(A.toarray(), B)
-        # [[[1, 2], [1, 2]], [1, 2]]
-        for i, j in [(np.array([[1, 2], [1, 3]]), [1, 3]),
-                        (np.array([0, 4]), [[0, 3], [1, 2]]),
-                        ([[1, 2, 3], [0, 2, 4]], [[0, 4, 3], [4, 1, 2]])]:
-            _test_set_slice(i, j)
-
-    def test_fancy_assign_list(self):
-        np.random.seed(1234)
-
-        D = asmatrix(np.random.rand(5, 7))
-        S = self.spcreator(D)
-        X = np.random.rand(2, 3)
-
-        I = [[1, 2, 3], [3, 4, 2]]
-        J = [[5, 6, 3], [2, 3, 1]]
-
-        S[I,J] = X
-        D[I,J] = X
-        assert_equal(S.toarray(), D)
-
-        I_bad = [[ii + 5 for ii in i] for i in I]
-        J_bad = [[jj + 7 for jj in j] for j in J]
-        C = [1, 2, 3]
-
-        S[I,J] = C
-        D[I,J] = C
-        assert_equal(S.toarray(), D)
-
-        S[I,J] = 3
-        D[I,J] = 3
-        assert_equal(S.toarray(), D)
-
-        assert_raises(IndexError, S.__setitem__, (I_bad,J), C)
-        assert_raises(IndexError, S.__setitem__, (I,J_bad), C)
-
-    def test_fancy_assign_slice(self):
-        np.random.seed(1234)
-
-        D = asmatrix(np.random.rand(5, 7))
-        S = self.spcreator(D)
-
-        I = [1, 2, 3, 3, 4, 2]
-        J = [5, 6, 3, 2, 3, 1]
-
-        I_bad = [ii + 5 for ii in I]
-        J_bad = [jj + 7 for jj in J]
-
-        C1 = [1, 2, 3, 4, 5, 6, 7]
-        C2 = np.arange(5)[:, None]
-        assert_raises(IndexError, S.__setitem__, (I_bad, slice(None)), C1)
-        assert_raises(IndexError, S.__setitem__, (slice(None), J_bad), C2)
-
-
-class _TestArithmetic:
-    """
-    Test real/complex arithmetic
-    """
-    def __arith_init(self):
-        # these can be represented exactly in FP (so arithmetic should be exact)
-        self.__A = array([[-1.5, 6.5, 0, 2.25, 0, 0],
-                          [3.125, -7.875, 0.625, 0, 0, 0],
-                          [0, 0, -0.125, 1.0, 0, 0],
-                          [0, 0, 8.375, 0, 0, 0]], 'float64')
-        self.__B = array([[0.375, 0, 0, 0, -5, 2.5],
-                          [14.25, -3.75, 0, 0, -0.125, 0],
-                          [0, 7.25, 0, 0, 0, 0],
-                          [18.5, -0.0625, 0, 0, 0, 0]], 'complex128')
-        self.__B.imag = array([[1.25, 0, 0, 0, 6, -3.875],
-                               [2.25, 4.125, 0, 0, 0, 2.75],
-                               [0, 4.125, 0, 0, 0, 0],
-                               [-0.0625, 0, 0, 0, 0, 0]], 'float64')
-
-        # fractions are all x/16ths
-        assert_array_equal((self.__A*16).astype('int32'),16*self.__A)
-        assert_array_equal((self.__B.real*16).astype('int32'),16*self.__B.real)
-        assert_array_equal((self.__B.imag*16).astype('int32'),16*self.__B.imag)
-
-        self.__Asp = self.spcreator(self.__A)
-        self.__Bsp = self.spcreator(self.__B)
-
-    @pytest.mark.fail_slow(5)
-    def test_add_sub(self):
-        self.__arith_init()
-
-        # basic tests
-        assert_array_equal(
-            (self.__Asp + self.__Bsp).toarray(), self.__A + self.__B
-        )
-
-        # check conversions
-        for x in supported_dtypes:
-            with np.errstate(invalid="ignore"):
-                A = self.__A.astype(x)
-            Asp = self.spcreator(A)
-            for y in supported_dtypes:
-                if not np.issubdtype(y, np.complexfloating):
-                    with np.errstate(invalid="ignore"):
-                        B = self.__B.real.astype(y)
-                else:
-                    B = self.__B.astype(y)
-                Bsp = self.spcreator(B)
-
-                # addition
-                D1 = A + B
-                S1 = Asp + Bsp
-
-                assert_equal(S1.dtype,D1.dtype)
-                assert_array_equal(S1.toarray(), D1)
-                assert_array_equal(Asp + B,D1)          # check sparse + dense
-                assert_array_equal(A + Bsp,D1)          # check dense + sparse
-
-                # subtraction
-                if np.dtype('bool') in [x, y]:
-                    # boolean array subtraction deprecated in 1.9.0
-                    continue
-
-                D1 = A - B
-                S1 = Asp - Bsp
-
-                assert_equal(S1.dtype,D1.dtype)
-                assert_array_equal(S1.toarray(), D1)
-                assert_array_equal(Asp - B,D1)          # check sparse - dense
-                assert_array_equal(A - Bsp,D1)          # check dense - sparse
-
-    def test_mu(self):
-        self.__arith_init()
-
-        # basic tests
-        assert_array_equal((self.__Asp @ self.__Bsp.T).toarray(),
-                           self.__A @ self.__B.T)
-
-        for x in supported_dtypes:
-            with np.errstate(invalid="ignore"):
-                A = self.__A.astype(x)
-            Asp = self.spcreator(A)
-            for y in supported_dtypes:
-                if np.issubdtype(y, np.complexfloating):
-                    B = self.__B.astype(y)
-                else:
-                    with np.errstate(invalid="ignore"):
-                        B = self.__B.real.astype(y)
-                Bsp = self.spcreator(B)
-
-                D1 = A @ B.T
-                S1 = Asp @ Bsp.T
-
-                assert_allclose(S1.toarray(), D1,
-                                atol=1e-14*abs(D1).max())
-                assert_equal(S1.dtype,D1.dtype)
-
-
-class _TestMinMax:
-    def test_minmax(self):
-        for dtype in [np.float32, np.float64, np.int32, np.int64, np.complex128]:
-            D = np.arange(20, dtype=dtype).reshape(5,4)
-
-            X = self.spcreator(D)
-            assert_equal(X.min(), 0)
-            assert_equal(X.max(), 19)
-            assert_equal(X.min().dtype, dtype)
-            assert_equal(X.max().dtype, dtype)
-
-            D *= -1
-            X = self.spcreator(D)
-            assert_equal(X.min(), -19)
-            assert_equal(X.max(), 0)
-
-            D += 5
-            X = self.spcreator(D)
-            assert_equal(X.min(), -14)
-            assert_equal(X.max(), 5)
-
-        # try a fully dense matrix
-        X = self.spcreator(np.arange(1, 10).reshape(3, 3))
-        assert_equal(X.min(), 1)
-        assert_equal(X.min().dtype, X.dtype)
-
-        X = -X
-        assert_equal(X.max(), -1)
-
-        # and a fully sparse matrix
-        Z = self.spcreator(np.zeros((1, 1)))
-        assert_equal(Z.min(), 0)
-        assert_equal(Z.max(), 0)
-        assert_equal(Z.max().dtype, Z.dtype)
-
-        # another test
-        D = np.arange(20, dtype=float).reshape(5,4)
-        D[0:2, :] = 0
-        X = self.spcreator(D)
-        assert_equal(X.min(), 0)
-        assert_equal(X.max(), 19)
-
-        # zero-size matrices
-        for D in [np.zeros((0, 0)), np.zeros((0, 10)), np.zeros((10, 0))]:
-            X = self.spcreator(D)
-            assert_raises(ValueError, X.min)
-            assert_raises(ValueError, X.max)
-
-    def test_minmax_axis(self):
-        D = np.arange(50).reshape(5, 10)
-        # completely empty rows, leaving some completely full:
-        D[1, :] = 0
-        # empty at end for reduceat:
-        D[:, 9] = 0
-        # partial rows/cols:
-        D[3, 3] = 0
-        # entries on either side of 0:
-        D[2, 2] = -1
-        X = self.spcreator(D)
-
-        axes = [-2, -1, 0, 1]
-        for axis in axes:
-            assert_array_equal(
-                X.max(axis=axis).toarray(), D.max(axis=axis, keepdims=True)
-            )
-            assert_array_equal(
-                X.min(axis=axis).toarray(), D.min(axis=axis, keepdims=True)
-            )
-
-        # full matrix
-        D = np.arange(1, 51).reshape(10, 5)
-        X = self.spcreator(D)
-        for axis in axes:
-            assert_array_equal(
-                X.max(axis=axis).toarray(), D.max(axis=axis, keepdims=True)
-            )
-            assert_array_equal(
-                X.min(axis=axis).toarray(), D.min(axis=axis, keepdims=True)
-            )
-
-        # empty matrix
-        D = np.zeros((10, 5))
-        X = self.spcreator(D)
-        for axis in axes:
-            assert_array_equal(
-                X.max(axis=axis).toarray(), D.max(axis=axis, keepdims=True)
-            )
-            assert_array_equal(
-                X.min(axis=axis).toarray(), D.min(axis=axis, keepdims=True)
-            )
-
-        axes_even = [0, -2]
-        axes_odd = [1, -1]
-
-        # zero-size matrices
-        D = np.zeros((0, 10))
-        X = self.spcreator(D)
-        for axis in axes_even:
-            assert_raises(ValueError, X.min, axis=axis)
-            assert_raises(ValueError, X.max, axis=axis)
-        for axis in axes_odd:
-            assert_array_equal(np.zeros((0, 1)), X.min(axis=axis).toarray())
-            assert_array_equal(np.zeros((0, 1)), X.max(axis=axis).toarray())
-
-        D = np.zeros((10, 0))
-        X = self.spcreator(D)
-        for axis in axes_odd:
-            assert_raises(ValueError, X.min, axis=axis)
-            assert_raises(ValueError, X.max, axis=axis)
-        for axis in axes_even:
-            assert_array_equal(np.zeros((1, 0)), X.min(axis=axis).toarray())
-            assert_array_equal(np.zeros((1, 0)), X.max(axis=axis).toarray())
-
-    def test_nanminmax(self):
-        D = matrix(np.arange(50).reshape(5,10), dtype=float)
-        D[1, :] = 0
-        D[:, 9] = 0
-        D[3, 3] = 0
-        D[2, 2] = -1
-        D[4, 2] = np.nan
-        D[1, 4] = np.nan
-        X = self.spcreator(D)
-
-        X_nan_maximum = X.nanmax()
-        assert np.isscalar(X_nan_maximum)
-        assert X_nan_maximum == np.nanmax(D)
-
-        X_nan_minimum = X.nanmin()
-        assert np.isscalar(X_nan_minimum)
-        assert X_nan_minimum == np.nanmin(D)
-
-        axes = [-2, -1, 0, 1]
-        for axis in axes:
-            X_nan_maxima = X.nanmax(axis=axis)
-            assert isinstance(X_nan_maxima, coo_matrix)
-            assert_allclose(X_nan_maxima.toarray(),
-                            np.nanmax(D, axis=axis))
-
-            X_nan_minima = X.nanmin(axis=axis)
-            assert isinstance(X_nan_minima, coo_matrix)
-            assert_allclose(X_nan_minima.toarray(),
-                            np.nanmin(D, axis=axis))
-
-    def test_minmax_invalid_params(self):
-        dat = array([[0, 1, 2],
-                     [3, -4, 5],
-                     [-6, 7, 9]])
-        datsp = self.spcreator(dat)
-
-        for fname in ('min', 'max'):
-            func = getattr(datsp, fname)
-            assert_raises(ValueError, func, axis=3)
-            assert_raises(TypeError, func, axis=(0, 1))
-            assert_raises(TypeError, func, axis=1.5)
-            assert_raises(ValueError, func, axis=1, out=1)
-
-    def test_numpy_minmax(self):
-        # See gh-5987
-        # xref gh-7460 in 'numpy'
-        from scipy.sparse import _data
-
-        dat = array([[0, 1, 2],
-                     [3, -4, 5],
-                     [-6, 7, 9]])
-        datsp = self.spcreator(dat)
-
-        # We are only testing sparse matrices who have
-        # implemented 'min' and 'max' because they are
-        # the ones with the compatibility issues with
-        # the 'numpy' implementation.
-        if isinstance(datsp, _data._minmax_mixin):
-            assert_array_equal(np.min(datsp), np.min(dat))
-            assert_array_equal(np.max(datsp), np.max(dat))
-
-    def test_argmax(self):
-        from scipy.sparse import _data
-        D1 = np.array([
-            [-1, 5, 2, 3],
-            [0, 0, -1, -2],
-            [-1, -2, -3, -4],
-            [1, 2, 3, 4],
-            [1, 2, 0, 0],
-        ])
-        D2 = D1.transpose()
-        # Non-regression test cases for gh-16929.
-        D3 = np.array([[4, 3], [7, 5]])
-        D4 = np.array([[4, 3], [7, 0]])
-        D5 = np.array([[5, 5, 3], [4, 9, 10], [3, 4, 9]])
-
-        for D in [D1, D2, D3, D4, D5]:
-            mat = self.spcreator(D)
-            if not isinstance(mat, _data._minmax_mixin):
-                continue
-
-            assert_equal(mat.argmax(), np.argmax(D))
-            assert_equal(mat.argmin(), np.argmin(D))
-
-            assert_equal(mat.argmax(axis=0),
-                         asmatrix(np.argmax(D, axis=0)))
-            assert_equal(mat.argmin(axis=0),
-                         asmatrix(np.argmin(D, axis=0)))
-
-            assert_equal(mat.argmax(axis=1),
-                         asmatrix(np.argmax(D, axis=1).reshape(-1, 1)))
-            assert_equal(mat.argmin(axis=1),
-                         asmatrix(np.argmin(D, axis=1).reshape(-1, 1)))
-
-        D1 = np.empty((0, 5))
-        D2 = np.empty((5, 0))
-
-        for axis in [None, 0]:
-            mat = self.spcreator(D1)
-            assert_raises(ValueError, mat.argmax, axis=axis)
-            assert_raises(ValueError, mat.argmin, axis=axis)
-
-        for axis in [None, 1]:
-            mat = self.spcreator(D2)
-            assert_raises(ValueError, mat.argmax, axis=axis)
-            assert_raises(ValueError, mat.argmin, axis=axis)
-
-
-class _TestGetNnzAxis:
-    def test_getnnz_axis(self):
-        dat = array([[0, 2],
-                     [3, 5],
-                     [-6, 9]])
-        bool_dat = dat.astype(bool)
-        datsp = self.spcreator(dat)
-
-        accepted_return_dtypes = (np.int32, np.int64)
-
-        assert_array_equal(bool_dat.sum(axis=None), datsp.getnnz(axis=None))
-        assert_array_equal(bool_dat.sum(), datsp.getnnz())
-        assert_array_equal(bool_dat.sum(axis=0), datsp.getnnz(axis=0))
-        assert_in(datsp.getnnz(axis=0).dtype, accepted_return_dtypes)
-        assert_array_equal(bool_dat.sum(axis=1), datsp.getnnz(axis=1))
-        assert_in(datsp.getnnz(axis=1).dtype, accepted_return_dtypes)
-        assert_array_equal(bool_dat.sum(axis=-2), datsp.getnnz(axis=-2))
-        assert_in(datsp.getnnz(axis=-2).dtype, accepted_return_dtypes)
-        assert_array_equal(bool_dat.sum(axis=-1), datsp.getnnz(axis=-1))
-        assert_in(datsp.getnnz(axis=-1).dtype, accepted_return_dtypes)
-
-        assert_raises(ValueError, datsp.getnnz, axis=2)
-
-
-#------------------------------------------------------------------------------
-# Tailored base class for generic tests
-#------------------------------------------------------------------------------
-
-def _possibly_unimplemented(cls, require=True):
-    """
-    Construct a class that either runs tests as usual (require=True),
-    or each method skips if it encounters a common error.
-    """
-    if require:
-        return cls
-    else:
-        def wrap(fc):
-            @functools.wraps(fc)
-            def wrapper(*a, **kw):
-                try:
-                    return fc(*a, **kw)
-                except (NotImplementedError, TypeError, ValueError,
-                        IndexError, AttributeError):
-                    raise pytest.skip("feature not implemented")
-
-            return wrapper
-
-        new_dict = dict(cls.__dict__)
-        for name, func in cls.__dict__.items():
-            if name.startswith('test_'):
-                new_dict[name] = wrap(func)
-        return type(cls.__name__ + "NotImplemented",
-                    cls.__bases__,
-                    new_dict)
-
-
-def sparse_test_class(getset=True, slicing=True, slicing_assign=True,
-                      fancy_indexing=True, fancy_assign=True,
-                      fancy_multidim_indexing=True, fancy_multidim_assign=True,
-                      minmax=True, nnz_axis=True):
-    """
-    Construct a base class, optionally converting some of the tests in
-    the suite to check that the feature is not implemented.
-    """
-    bases = (_TestCommon,
-             _possibly_unimplemented(_TestGetSet, getset),
-             _TestSolve,
-             _TestInplaceArithmetic,
-             _TestArithmetic,
-             _possibly_unimplemented(_TestSlicing, slicing),
-             _possibly_unimplemented(_TestSlicingAssign, slicing_assign),
-             _possibly_unimplemented(_TestFancyIndexing, fancy_indexing),
-             _possibly_unimplemented(_TestFancyIndexingAssign,
-                                     fancy_assign),
-             _possibly_unimplemented(_TestFancyMultidim,
-                                     fancy_indexing and fancy_multidim_indexing),
-             _possibly_unimplemented(_TestFancyMultidimAssign,
-                                     fancy_multidim_assign and fancy_assign),
-             _possibly_unimplemented(_TestMinMax, minmax),
-             _possibly_unimplemented(_TestGetNnzAxis, nnz_axis))
-
-    # check that test names do not clash
-    names = {}
-    for cls in bases:
-        for name in cls.__dict__:
-            if not name.startswith('test_'):
-                continue
-            old_cls = names.get(name)
-            if old_cls is not None:
-                raise ValueError(f"Test class {cls.__name__} overloads test "
-                                 f"{name} defined in {old_cls.__name__}")
-            names[name] = cls
-
-    return type("TestBase", bases, {})
-
-
-#------------------------------------------------------------------------------
-# Matrix class based tests
-#------------------------------------------------------------------------------
-
-class TestCSR(sparse_test_class()):
-    @classmethod
-    def spcreator(cls, *args, **kwargs):
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            return csr_matrix(*args, **kwargs)
-    math_dtypes = [np.bool_, np.int_, np.float64, np.complex128]
-
-    def test_constructor1(self):
-        b = array([[0, 4, 0],
-                   [3, 0, 0],
-                   [0, 2, 0]], 'd')
-        bsp = csr_matrix(b)
-        assert_array_almost_equal(bsp.data,[4,3,2])
-        assert_array_equal(bsp.indices,[1,0,1])
-        assert_array_equal(bsp.indptr,[0,1,2,3])
-        assert_equal(bsp.getnnz(),3)
-        assert_equal(bsp.format,'csr')
-        assert_array_equal(bsp.toarray(), b)
-
-    def test_constructor2(self):
-        b = zeros((6,6),'d')
-        b[3,4] = 5
-        bsp = csr_matrix(b)
-        assert_array_almost_equal(bsp.data,[5])
-        assert_array_equal(bsp.indices,[4])
-        assert_array_equal(bsp.indptr,[0,0,0,0,1,1,1])
-        assert_array_almost_equal(bsp.toarray(), b)
-
-    def test_constructor3(self):
-        b = array([[1, 0],
-                   [0, 2],
-                   [3, 0]], 'd')
-        bsp = csr_matrix(b)
-        assert_array_almost_equal(bsp.data,[1,2,3])
-        assert_array_equal(bsp.indices,[0,1,0])
-        assert_array_equal(bsp.indptr,[0,1,2,3])
-        assert_array_almost_equal(bsp.toarray(), b)
-
-    def test_constructor4(self):
-        # using (data, ij) format
-        row = array([2, 3, 1, 3, 0, 1, 3, 0, 2, 1, 2])
-        col = array([0, 1, 0, 0, 1, 1, 2, 2, 2, 2, 1])
-        data = array([6., 10., 3., 9., 1., 4.,
-                              11., 2., 8., 5., 7.])
-
-        ij = vstack((row,col))
-        csr = csr_matrix((data,ij),(4,3))
-        assert_array_equal(arange(12).reshape(4, 3), csr.toarray())
-
-        # using Python lists and a specified dtype
-        csr = csr_matrix(([2**63 + 1, 1], ([0, 1], [0, 1])), dtype=np.uint64)
-        dense = array([[2**63 + 1, 0], [0, 1]], dtype=np.uint64)
-        assert_array_equal(dense, csr.toarray())
-
-        # with duplicates (should sum the duplicates)
-        csr = csr_matrix(([1,1,1,1], ([0,2,2,0], [0,1,1,0])))
-        assert csr.nnz == 2
-
-    def test_constructor5(self):
-        # infer dimensions from arrays
-        indptr = array([0,1,3,3])
-        indices = array([0,5,1,2])
-        data = array([1,2,3,4])
-        csr = csr_matrix((data, indices, indptr))
-        assert_array_equal(csr.shape,(3,6))
-
-    def test_constructor6(self):
-        # infer dimensions and dtype from lists
-        indptr = [0, 1, 3, 3]
-        indices = [0, 5, 1, 2]
-        data = [1, 2, 3, 4]
-        csr = csr_matrix((data, indices, indptr))
-        assert_array_equal(csr.shape, (3,6))
-        assert_(np.issubdtype(csr.dtype, np.signedinteger))
-
-    def test_constructor_smallcol(self):
-        # int64 indices not required
-        data = arange(6) + 1
-        col = array([1, 2, 1, 0, 0, 2], dtype=np.int64)
-        ptr = array([0, 2, 4, 6], dtype=np.int64)
-
-        a = csr_matrix((data, col, ptr), shape=(3, 3))
-
-        b = array([[0, 1, 2],
-                   [4, 3, 0],
-                   [5, 0, 6]], 'd')
-
-        assert_equal(a.indptr.dtype, np.dtype(np.int32))
-        assert_equal(a.indices.dtype, np.dtype(np.int32))
-        assert_array_equal(a.toarray(), b)
-
-    def test_constructor_largecol(self):
-        # int64 indices required
-        data = arange(6) + 1
-        large = np.iinfo(np.int32).max + 100
-        col = array([0, 1, 2, large, large+1, large+2], dtype=np.int64)
-        ptr = array([0, 2, 4, 6], dtype=np.int64)
-
-        a = csr_matrix((data, col, ptr))
-
-        assert_equal(a.indptr.dtype, np.dtype(np.int64))
-        assert_equal(a.indices.dtype, np.dtype(np.int64))
-        assert_array_equal(a.shape, (3, max(col)+1))
-
-    def test_sort_indices(self):
-        data = arange(5)
-        indices = array([7, 2, 1, 5, 4])
-        indptr = array([0, 3, 5])
-        asp = csr_matrix((data, indices, indptr), shape=(2,10))
-        bsp = asp.copy()
-        asp.sort_indices()
-        assert_array_equal(asp.indices,[1, 2, 7, 4, 5])
-        assert_array_equal(asp.toarray(), bsp.toarray())
-
-    def test_eliminate_zeros(self):
-        data = array([1, 0, 0, 0, 2, 0, 3, 0])
-        indices = array([1, 2, 3, 4, 5, 6, 7, 8])
-        indptr = array([0, 3, 8])
-        asp = csr_matrix((data, indices, indptr), shape=(2,10))
-        bsp = asp.copy()
-        asp.eliminate_zeros()
-        assert_array_equal(asp.nnz, 3)
-        assert_array_equal(asp.data,[1, 2, 3])
-        assert_array_equal(asp.toarray(), bsp.toarray())
-
-    def test_ufuncs(self):
-        X = csr_matrix(np.arange(20).reshape(4, 5) / 20.)
-        for f in ["sin", "tan", "arcsin", "arctan", "sinh", "tanh",
-                  "arcsinh", "arctanh", "rint", "sign", "expm1", "log1p",
-                  "deg2rad", "rad2deg", "floor", "ceil", "trunc", "sqrt"]:
-            assert_equal(hasattr(csr_matrix, f), True)
-            X2 = getattr(X, f)()
-            assert_equal(X.shape, X2.shape)
-            assert_array_equal(X.indices, X2.indices)
-            assert_array_equal(X.indptr, X2.indptr)
-            assert_array_equal(X2.toarray(), getattr(np, f)(X.toarray()))
-
-    def test_unsorted_arithmetic(self):
-        data = arange(5)
-        indices = array([7, 2, 1, 5, 4])
-        indptr = array([0, 3, 5])
-        asp = csr_matrix((data, indices, indptr), shape=(2,10))
-        data = arange(6)
-        indices = array([8, 1, 5, 7, 2, 4])
-        indptr = array([0, 2, 6])
-        bsp = csr_matrix((data, indices, indptr), shape=(2,10))
-        assert_equal((asp + bsp).toarray(), asp.toarray() + bsp.toarray())
-
-    def test_fancy_indexing_broadcast(self):
-        # broadcasting indexing mode is supported
-        I = np.array([[1], [2], [3]])
-        J = np.array([3, 4, 2])
-
-        np.random.seed(1234)
-        D = asmatrix(np.random.rand(5, 7))
-        S = self.spcreator(D)
-
-        SIJ = S[I,J]
-        if issparse(SIJ):
-            SIJ = SIJ.toarray()
-        assert_equal(SIJ, D[I,J])
-
-    def test_has_sorted_indices(self):
-        "Ensure has_sorted_indices memoizes sorted state for sort_indices"
-        sorted_inds = np.array([0, 1])
-        unsorted_inds = np.array([1, 0])
-        data = np.array([1, 1])
-        indptr = np.array([0, 2])
-        M = csr_matrix((data, sorted_inds, indptr)).copy()
-        assert_equal(True, M.has_sorted_indices)
-        assert isinstance(M.has_sorted_indices, bool)
-
-        M = csr_matrix((data, unsorted_inds, indptr)).copy()
-        assert_equal(False, M.has_sorted_indices)
-
-        # set by sorting
-        M.sort_indices()
-        assert_equal(True, M.has_sorted_indices)
-        assert_array_equal(M.indices, sorted_inds)
-
-        M = csr_matrix((data, unsorted_inds, indptr)).copy()
-        # set manually (although underlyingly unsorted)
-        M.has_sorted_indices = True
-        assert_equal(True, M.has_sorted_indices)
-        assert_array_equal(M.indices, unsorted_inds)
-
-        # ensure sort bypassed when has_sorted_indices == True
-        M.sort_indices()
-        assert_array_equal(M.indices, unsorted_inds)
-
-    def test_has_canonical_format(self):
-        "Ensure has_canonical_format memoizes state for sum_duplicates"
-
-        M = csr_matrix((np.array([2]), np.array([0]), np.array([0, 1])))
-        assert_equal(True, M.has_canonical_format)
-
-        indices = np.array([0, 0])  # contains duplicate
-        data = np.array([1, 1])
-        indptr = np.array([0, 2])
-
-        M = csr_matrix((data, indices, indptr)).copy()
-        assert_equal(False, M.has_canonical_format)
-        assert isinstance(M.has_canonical_format, bool)
-
-        # set by deduplicating
-        M.sum_duplicates()
-        assert_equal(True, M.has_canonical_format)
-        assert_equal(1, len(M.indices))
-
-        M = csr_matrix((data, indices, indptr)).copy()
-        # set manually (although underlyingly duplicated)
-        M.has_canonical_format = True
-        assert_equal(True, M.has_canonical_format)
-        assert_equal(2, len(M.indices))  # unaffected content
-
-        # ensure deduplication bypassed when has_canonical_format == True
-        M.sum_duplicates()
-        assert_equal(2, len(M.indices))  # unaffected content
-
-    def test_scalar_idx_dtype(self):
-        # Check that index dtype takes into account all parameters
-        # passed to sparsetools, including the scalar ones
-        indptr = np.zeros(2, dtype=np.int32)
-        indices = np.zeros(0, dtype=np.int32)
-        vals = np.zeros(0)
-        a = csr_matrix((vals, indices, indptr), shape=(1, 2**31-1))
-        b = csr_matrix((vals, indices, indptr), shape=(1, 2**31))
-        ij = np.zeros((2, 0), dtype=np.int32)
-        c = csr_matrix((vals, ij), shape=(1, 2**31-1))
-        d = csr_matrix((vals, ij), shape=(1, 2**31))
-        e = csr_matrix((1, 2**31-1))
-        f = csr_matrix((1, 2**31))
-        assert_equal(a.indptr.dtype, np.int32)
-        assert_equal(b.indptr.dtype, np.int64)
-        assert_equal(c.indptr.dtype, np.int32)
-        assert_equal(d.indptr.dtype, np.int64)
-        assert_equal(e.indptr.dtype, np.int32)
-        assert_equal(f.indptr.dtype, np.int64)
-
-        # These shouldn't fail
-        for x in [a, b, c, d, e, f]:
-            x + x
-
-    def test_binop_explicit_zeros(self):
-        # Check that binary ops don't introduce spurious explicit zeros.
-        # See gh-9619 for context.
-        a = csr_matrix([[0, 1, 0]])
-        b = csr_matrix([[1, 1, 0]])
-        assert (a + b).nnz == 2
-        assert a.multiply(b).nnz == 1
-
-
-TestCSR.init_class()
-
-
-class TestCSC(sparse_test_class()):
-    @classmethod
-    def spcreator(cls, *args, **kwargs):
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            return csc_matrix(*args, **kwargs)
-    math_dtypes = [np.bool_, np.int_, np.float64, np.complex128]
-
-    def test_constructor1(self):
-        b = array([[1, 0, 0, 0], [0, 0, 1, 0], [0, 2, 0, 3]], 'd')
-        bsp = csc_matrix(b)
-        assert_array_almost_equal(bsp.data,[1,2,1,3])
-        assert_array_equal(bsp.indices,[0,2,1,2])
-        assert_array_equal(bsp.indptr,[0,1,2,3,4])
-        assert_equal(bsp.getnnz(),4)
-        assert_equal(bsp.shape,b.shape)
-        assert_equal(bsp.format,'csc')
-
-    def test_constructor2(self):
-        b = zeros((6,6),'d')
-        b[2,4] = 5
-        bsp = csc_matrix(b)
-        assert_array_almost_equal(bsp.data,[5])
-        assert_array_equal(bsp.indices,[2])
-        assert_array_equal(bsp.indptr,[0,0,0,0,0,1,1])
-
-    def test_constructor3(self):
-        b = array([[1, 0], [0, 0], [0, 2]], 'd')
-        bsp = csc_matrix(b)
-        assert_array_almost_equal(bsp.data,[1,2])
-        assert_array_equal(bsp.indices,[0,2])
-        assert_array_equal(bsp.indptr,[0,1,2])
-
-    def test_constructor4(self):
-        # using (data, ij) format
-        row = array([2, 3, 1, 3, 0, 1, 3, 0, 2, 1, 2])
-        col = array([0, 1, 0, 0, 1, 1, 2, 2, 2, 2, 1])
-        data = array([6., 10., 3., 9., 1., 4., 11., 2., 8., 5., 7.])
-
-        ij = vstack((row,col))
-        csc = csc_matrix((data,ij),(4,3))
-        assert_array_equal(arange(12).reshape(4, 3), csc.toarray())
-
-        # with duplicates (should sum the duplicates)
-        csc = csc_matrix(([1,1,1,1], ([0,2,2,0], [0,1,1,0])))
-        assert csc.nnz == 2
-
-    def test_constructor5(self):
-        # infer dimensions from arrays
-        indptr = array([0,1,3,3])
-        indices = array([0,5,1,2])
-        data = array([1,2,3,4])
-        csc = csc_matrix((data, indices, indptr))
-        assert_array_equal(csc.shape,(6,3))
-
-    def test_constructor6(self):
-        # infer dimensions and dtype from lists
-        indptr = [0, 1, 3, 3]
-        indices = [0, 5, 1, 2]
-        data = [1, 2, 3, 4]
-        csc = csc_matrix((data, indices, indptr))
-        assert_array_equal(csc.shape,(6,3))
-        assert_(np.issubdtype(csc.dtype, np.signedinteger))
-
-    def test_eliminate_zeros(self):
-        data = array([1, 0, 0, 0, 2, 0, 3, 0])
-        indices = array([1, 2, 3, 4, 5, 6, 7, 8])
-        indptr = array([0, 3, 8])
-        asp = csc_matrix((data, indices, indptr), shape=(10,2))
-        bsp = asp.copy()
-        asp.eliminate_zeros()
-        assert_array_equal(asp.nnz, 3)
-        assert_array_equal(asp.data,[1, 2, 3])
-        assert_array_equal(asp.toarray(), bsp.toarray())
-
-    def test_sort_indices(self):
-        data = arange(5)
-        row = array([7, 2, 1, 5, 4])
-        ptr = [0, 3, 5]
-        asp = csc_matrix((data, row, ptr), shape=(10,2))
-        bsp = asp.copy()
-        asp.sort_indices()
-        assert_array_equal(asp.indices,[1, 2, 7, 4, 5])
-        assert_array_equal(asp.toarray(), bsp.toarray())
-
-    def test_ufuncs(self):
-        X = csc_matrix(np.arange(21).reshape(7, 3) / 21.)
-        for f in ["sin", "tan", "arcsin", "arctan", "sinh", "tanh",
-                  "arcsinh", "arctanh", "rint", "sign", "expm1", "log1p",
-                  "deg2rad", "rad2deg", "floor", "ceil", "trunc", "sqrt"]:
-            assert_equal(hasattr(csr_matrix, f), True)
-            X2 = getattr(X, f)()
-            assert_equal(X.shape, X2.shape)
-            assert_array_equal(X.indices, X2.indices)
-            assert_array_equal(X.indptr, X2.indptr)
-            assert_array_equal(X2.toarray(), getattr(np, f)(X.toarray()))
-
-    def test_unsorted_arithmetic(self):
-        data = arange(5)
-        indices = array([7, 2, 1, 5, 4])
-        indptr = array([0, 3, 5])
-        asp = csc_matrix((data, indices, indptr), shape=(10,2))
-        data = arange(6)
-        indices = array([8, 1, 5, 7, 2, 4])
-        indptr = array([0, 2, 6])
-        bsp = csc_matrix((data, indices, indptr), shape=(10,2))
-        assert_equal((asp + bsp).toarray(), asp.toarray() + bsp.toarray())
-
-    def test_fancy_indexing_broadcast(self):
-        # broadcasting indexing mode is supported
-        I = np.array([[1], [2], [3]])
-        J = np.array([3, 4, 2])
-
-        np.random.seed(1234)
-        D = asmatrix(np.random.rand(5, 7))
-        S = self.spcreator(D)
-
-        SIJ = S[I,J]
-        if issparse(SIJ):
-            SIJ = SIJ.toarray()
-        assert_equal(SIJ, D[I,J])
-
-    def test_scalar_idx_dtype(self):
-        # Check that index dtype takes into account all parameters
-        # passed to sparsetools, including the scalar ones
-        indptr = np.zeros(2, dtype=np.int32)
-        indices = np.zeros(0, dtype=np.int32)
-        vals = np.zeros(0)
-        a = csc_matrix((vals, indices, indptr), shape=(2**31-1, 1))
-        b = csc_matrix((vals, indices, indptr), shape=(2**31, 1))
-        ij = np.zeros((2, 0), dtype=np.int32)
-        c = csc_matrix((vals, ij), shape=(2**31-1, 1))
-        d = csc_matrix((vals, ij), shape=(2**31, 1))
-        e = csr_matrix((1, 2**31-1))
-        f = csr_matrix((1, 2**31))
-        assert_equal(a.indptr.dtype, np.int32)
-        assert_equal(b.indptr.dtype, np.int64)
-        assert_equal(c.indptr.dtype, np.int32)
-        assert_equal(d.indptr.dtype, np.int64)
-        assert_equal(e.indptr.dtype, np.int32)
-        assert_equal(f.indptr.dtype, np.int64)
-
-        # These shouldn't fail
-        for x in [a, b, c, d, e, f]:
-            x + x
-
-
-TestCSC.init_class()
-
-
-class TestDOK(sparse_test_class(minmax=False, nnz_axis=False)):
-    spcreator = dok_matrix
-    math_dtypes = [np.int_, np.float64, np.complex128]
-
-    def test_mult(self):
-        A = dok_matrix((10,10))
-        A[0,3] = 10
-        A[5,6] = 20
-        D = A*A.T
-        E = A*A.T.conjugate()
-        assert_array_equal(D.toarray(), E.toarray())
-
-    def test_add_nonzero(self):
-        A = self.spcreator((3,2))
-        A[0,1] = -10
-        A[2,0] = 20
-        A = A + 10
-        B = array([[10, 0], [10, 10], [30, 10]])
-        assert_array_equal(A.toarray(), B)
-
-        A = A + 1j
-        B = B + 1j
-        assert_array_equal(A.toarray(), B)
-
-    def test_dok_divide_scalar(self):
-        A = self.spcreator((3,2))
-        A[0,1] = -10
-        A[2,0] = 20
-
-        assert_array_equal((A/1j).toarray(), A.toarray()/1j)
-        assert_array_equal((A/9).toarray(), A.toarray()/9)
-
-    def test_convert(self):
-        # Test provided by Andrew Straw.  Fails in SciPy <= r1477.
-        (m, n) = (6, 7)
-        a = dok_matrix((m, n))
-
-        # set a few elements, but none in the last column
-        a[2,1] = 1
-        a[0,2] = 2
-        a[3,1] = 3
-        a[1,5] = 4
-        a[4,3] = 5
-        a[4,2] = 6
-
-        # assert that the last column is all zeros
-        assert_array_equal(a.toarray()[:,n-1], zeros(m,))
-
-        # make sure it still works for CSC format
-        csc = a.tocsc()
-        assert_array_equal(csc.toarray()[:,n-1], zeros(m,))
-
-        # now test CSR
-        (m, n) = (n, m)
-        b = a.transpose()
-        assert_equal(b.shape, (m, n))
-        # assert that the last row is all zeros
-        assert_array_equal(b.toarray()[m-1,:], zeros(n,))
-
-        # make sure it still works for CSR format
-        csr = b.tocsr()
-        assert_array_equal(csr.toarray()[m-1,:], zeros(n,))
-
-    def test_ctor(self):
-        # Empty ctor
-        assert_raises(TypeError, dok_matrix)
-
-        # Dense ctor
-        b = array([[1, 0, 0, 0], [0, 0, 1, 0], [0, 2, 0, 3]], 'd')
-        A = dok_matrix(b)
-        assert_equal(b.dtype, A.dtype)
-        assert_equal(A.toarray(), b)
-
-        # Sparse ctor
-        c = csr_matrix(b)
-        assert_equal(A.toarray(), c.toarray())
-
-        data = [[0, 1, 2], [3, 0, 0]]
-        d = dok_matrix(data, dtype=np.float32)
-        assert_equal(d.dtype, np.float32)
-        da = d.toarray()
-        assert_equal(da.dtype, np.float32)
-        assert_array_equal(da, data)
-
-    def test_ticket1160(self):
-        # Regression test for ticket #1160.
-        a = dok_matrix((3,3))
-        a[0,0] = 0
-        # This assert would fail, because the above assignment would
-        # incorrectly call __set_item__ even though the value was 0.
-        assert_((0,0) not in a.keys(), "Unexpected entry (0,0) in keys")
-
-        # Slice assignments were also affected.
-        b = dok_matrix((3,3))
-        b[:,0] = 0
-        assert_(len(b.keys()) == 0, "Unexpected entries in keys")
-
-
-TestDOK.init_class()
-
-
-class TestLIL(sparse_test_class(minmax=False)):
-    spcreator = lil_matrix
-    math_dtypes = [np.int_, np.float64, np.complex128]
-
-    def test_dot(self):
-        A = zeros((10, 10), np.complex128)
-        A[0, 3] = 10
-        A[5, 6] = 20j
-
-        B = lil_matrix((10, 10), dtype=np.complex128)
-        B[0, 3] = 10
-        B[5, 6] = 20j
-
-        # TODO: properly handle this assertion on ppc64le
-        if platform.machine() != 'ppc64le':
-            assert_array_equal(A @ A.T, (B * B.T).toarray())
-
-        assert_array_equal(A @ A.conjugate().T, (B * B.conjugate().T).toarray())
-
-    def test_scalar_mul(self):
-        x = lil_matrix((3, 3))
-        x[0, 0] = 2
-
-        x = x*2
-        assert_equal(x[0, 0], 4)
-
-        x = x*0
-        assert_equal(x[0, 0], 0)
-
-    def test_truediv_scalar(self):
-        A = self.spcreator((3, 2))
-        A[0, 1] = -10
-        A[2, 0] = 20
-
-        assert_array_equal((A / 1j).toarray(), A.toarray() / 1j)
-        assert_array_equal((A / 9).toarray(), A.toarray() / 9)
-
-    def test_inplace_ops(self):
-        A = lil_matrix([[0, 2, 3], [4, 0, 6]])
-        B = lil_matrix([[0, 1, 0], [0, 2, 3]])
-
-        data = {'add': (B, A + B),
-                'sub': (B, A - B),
-                'mul': (3, A * 3)}
-
-        for op, (other, expected) in data.items():
-            result = A.copy()
-            getattr(result, '__i%s__' % op)(other)
-
-            assert_array_equal(result.toarray(), expected.toarray())
-
-        # Ticket 1604.
-        A = lil_matrix((1, 3), dtype=np.dtype('float64'))
-        B = array([0.1, 0.1, 0.1])
-        A[0, :] += B
-        assert_array_equal(A[0, :].toarray().squeeze(), B)
-
-    def test_lil_iteration(self):
-        row_data = [[1, 2, 3], [4, 5, 6]]
-        B = lil_matrix(array(row_data))
-        for r, row in enumerate(B):
-            assert_array_equal(row.toarray(), array(row_data[r], ndmin=2))
-
-    def test_lil_from_csr(self):
-        # Tests whether a lil_matrix can be constructed from a
-        # csr_matrix.
-        B = lil_matrix((10, 10))
-        B[0, 3] = 10
-        B[5, 6] = 20
-        B[8, 3] = 30
-        B[3, 8] = 40
-        B[8, 9] = 50
-        C = B.tocsr()
-        D = lil_matrix(C)
-        assert_array_equal(C.toarray(), D.toarray())
-
-    def test_fancy_indexing_lil(self):
-        M = asmatrix(arange(25).reshape(5, 5))
-        A = lil_matrix(M)
-
-        assert_equal(A[array([1, 2, 3]), 2:3].toarray(),
-                     M[array([1, 2, 3]), 2:3])
-
-    def test_point_wise_multiply(self):
-        l = lil_matrix((4, 3))
-        l[0, 0] = 1
-        l[1, 1] = 2
-        l[2, 2] = 3
-        l[3, 1] = 4
-
-        m = lil_matrix((4, 3))
-        m[0, 0] = 1
-        m[0, 1] = 2
-        m[2, 2] = 3
-        m[3, 1] = 4
-        m[3, 2] = 4
-
-        assert_array_equal(l.multiply(m).toarray(),
-                           m.multiply(l).toarray())
-
-        assert_array_equal(l.multiply(m).toarray(),
-                           [[1, 0, 0],
-                            [0, 0, 0],
-                            [0, 0, 9],
-                            [0, 16, 0]])
-
-    def test_lil_multiply_removal(self):
-        # Ticket #1427.
-        a = lil_matrix(np.ones((3, 3)))
-        a *= 2.
-        a[0, :] = 0
-
-
-TestLIL.init_class()
-
-
-class TestCOO(sparse_test_class(getset=False,
-                                slicing=False, slicing_assign=False,
-                                fancy_indexing=False, fancy_assign=False)):
-    spcreator = coo_matrix
-    math_dtypes = [np.int_, np.float64, np.complex128]
-
-    def test_constructor1(self):
-        # unsorted triplet format
-        row = array([2, 3, 1, 3, 0, 1, 3, 0, 2, 1, 2])
-        col = array([0, 1, 0, 0, 1, 1, 2, 2, 2, 2, 1])
-        data = array([6., 10., 3., 9., 1., 4., 11., 2., 8., 5., 7.])
-
-        coo = coo_matrix((data,(row,col)),(4,3))
-        assert_array_equal(arange(12).reshape(4, 3), coo.toarray())
-
-        # using Python lists and a specified dtype
-        coo = coo_matrix(([2**63 + 1, 1], ([0, 1], [0, 1])), dtype=np.uint64)
-        dense = array([[2**63 + 1, 0], [0, 1]], dtype=np.uint64)
-        assert_array_equal(dense, coo.toarray())
-
-    def test_constructor2(self):
-        # unsorted triplet format with duplicates (which are summed)
-        row = array([0,1,2,2,2,2,0,0,2,2])
-        col = array([0,2,0,2,1,1,1,0,0,2])
-        data = array([2,9,-4,5,7,0,-1,2,1,-5])
-        coo = coo_matrix((data,(row,col)),(3,3))
-
-        mat = array([[4, -1, 0], [0, 0, 9], [-3, 7, 0]])
-
-        assert_array_equal(mat, coo.toarray())
-
-    def test_constructor3(self):
-        # empty matrix
-        coo = coo_matrix((4,3))
-
-        assert_array_equal(coo.shape,(4,3))
-        assert_array_equal(coo.row,[])
-        assert_array_equal(coo.col,[])
-        assert_array_equal(coo.data,[])
-        assert_array_equal(coo.toarray(), zeros((4, 3)))
-
-    def test_constructor4(self):
-        # from dense matrix
-        mat = array([[0,1,0,0],
-                     [7,0,3,0],
-                     [0,4,0,0]])
-        coo = coo_matrix(mat)
-        assert_array_equal(coo.toarray(), mat)
-
-        # upgrade rank 1 arrays to row matrix
-        mat = array([0,1,0,0])
-        coo = coo_matrix(mat)
-        assert_array_equal(coo.toarray(), mat.reshape(1, -1))
-
-        # error if second arg interpreted as shape (gh-9919)
-        with pytest.raises(TypeError, match=r'object cannot be interpreted'):
-            coo_matrix([0, 11, 22, 33], ([0, 1, 2, 3], [0, 0, 0, 0]))
-
-        # error if explicit shape arg doesn't match the dense matrix
-        with pytest.raises(ValueError, match=r'inconsistent shapes'):
-            coo_matrix([0, 11, 22, 33], shape=(4, 4))
-
-    def test_constructor_data_ij_dtypeNone(self):
-        data = [1]
-        coo = coo_matrix((data, ([0], [0])), dtype=None)
-        assert coo.dtype == np.array(data).dtype
-
-    @pytest.mark.xfail(run=False, reason='COO does not have a __getitem__')
-    def test_iterator(self):
-        pass
-
-    def test_todia_all_zeros(self):
-        zeros = [[0, 0]]
-        dia = coo_matrix(zeros).todia()
-        assert_array_equal(dia.toarray(), zeros)
-
-    def test_sum_duplicates(self):
-        coo = coo_matrix((4,3))
-        coo.sum_duplicates()
-        coo = coo_matrix(([1,2], ([1,0], [1,0])))
-        coo.sum_duplicates()
-        assert_array_equal(coo.toarray(), [[2,0],[0,1]])
-        coo = coo_matrix(([1,2], ([1,1], [1,1])))
-        coo.sum_duplicates()
-        assert_array_equal(coo.toarray(), [[0,0],[0,3]])
-        assert_array_equal(coo.row, [1])
-        assert_array_equal(coo.col, [1])
-        assert_array_equal(coo.data, [3])
-
-    def test_todok_duplicates(self):
-        coo = coo_matrix(([1,1,1,1], ([0,2,2,0], [0,1,1,0])))
-        dok = coo.todok()
-        assert_array_equal(dok.toarray(), coo.toarray())
-
-    def test_tocompressed_duplicates(self):
-        coo = coo_matrix(([1,1,1,1], ([0,2,2,0], [0,1,1,0])))
-        csr = coo.tocsr()
-        assert_equal(csr.nnz + 2, coo.nnz)
-        csc = coo.tocsc()
-        assert_equal(csc.nnz + 2, coo.nnz)
-
-    def test_eliminate_zeros(self):
-        data = array([1, 0, 0, 0, 2, 0, 3, 0])
-        row = array([0, 0, 0, 1, 1, 1, 1, 1])
-        col = array([1, 2, 3, 4, 5, 6, 7, 8])
-        asp = coo_matrix((data, (row, col)), shape=(2,10))
-        bsp = asp.copy()
-        asp.eliminate_zeros()
-        assert_((asp.data != 0).all())
-        assert_array_equal(asp.toarray(), bsp.toarray())
-
-    def test_reshape_copy(self):
-        arr = [[0, 10, 0, 0], [0, 0, 0, 0], [0, 20, 30, 40]]
-        new_shape = (2, 6)
-        x = coo_matrix(arr)
-
-        y = x.reshape(new_shape)
-        assert_(y.data is x.data)
-
-        y = x.reshape(new_shape, copy=False)
-        assert_(y.data is x.data)
-
-        y = x.reshape(new_shape, copy=True)
-        assert_(not np.may_share_memory(y.data, x.data))
-
-    def test_large_dimensions_reshape(self):
-        # Test that reshape is immune to integer overflow when number of elements
-        # exceeds 2^31-1
-        mat1 = coo_matrix(([1], ([3000000], [1000])), (3000001, 1001))
-        mat2 = coo_matrix(([1], ([1000], [3000000])), (1001, 3000001))
-
-        # assert_array_equal is slow for big matrices because it expects dense
-        # Using __ne__ and nnz instead
-        assert_((mat1.reshape((1001, 3000001), order='C') != mat2).nnz == 0)
-        assert_((mat2.reshape((3000001, 1001), order='F') != mat1).nnz == 0)
-
-
-TestCOO.init_class()
-
-
-class TestDIA(sparse_test_class(getset=False, slicing=False, slicing_assign=False,
-                                fancy_indexing=False, fancy_assign=False,
-                                minmax=False, nnz_axis=False)):
-    spcreator = dia_matrix
-    math_dtypes = [np.int_, np.float64, np.complex128]
-
-    def test_constructor1(self):
-        D = array([[1, 0, 3, 0],
-                   [1, 2, 0, 4],
-                   [0, 2, 3, 0],
-                   [0, 0, 3, 4]])
-        data = np.array([[1,2,3,4]]).repeat(3,axis=0)
-        offsets = np.array([0,-1,2])
-        assert_equal(dia_matrix((data, offsets), shape=(4, 4)).toarray(), D)
-
-    @pytest.mark.xfail(run=False, reason='DIA does not have a __getitem__')
-    def test_iterator(self):
-        pass
-
-    @with_64bit_maxval_limit(3)
-    def test_setdiag_dtype(self):
-        m = dia_matrix(np.eye(3))
-        assert_equal(m.offsets.dtype, np.int32)
-        m.setdiag((3,), k=2)
-        assert_equal(m.offsets.dtype, np.int32)
-
-        m = dia_matrix(np.eye(4))
-        assert_equal(m.offsets.dtype, np.int64)
-        m.setdiag((3,), k=3)
-        assert_equal(m.offsets.dtype, np.int64)
-
-    @pytest.mark.skip(reason='DIA stores extra zeros')
-    def test_getnnz_axis(self):
-        pass
-
-    def test_convert_gh14555(self):
-        # regression test for gh-14555
-        m = dia_matrix(([[1, 1, 0]], [-1]), shape=(4, 2))
-        expected = m.toarray()
-        assert_array_equal(m.tocsc().toarray(), expected)
-        assert_array_equal(m.tocsr().toarray(), expected)
-    
-    def test_tocoo_gh10050(self):
-        # regression test for gh-10050
-        m = dia_matrix([[1, 2], [3, 4]]).tocoo()
-        flat_inds = np.ravel_multi_index((m.row, m.col), m.shape)
-        inds_are_sorted = np.all(np.diff(flat_inds) > 0)
-        assert m.has_canonical_format == inds_are_sorted
-
-    def test_tocoo_tocsr_tocsc_gh19245(self):
-        # test index_dtype with tocoo, tocsr, tocsc
-        data = np.array([[1, 2, 3, 4]]).repeat(3, axis=0)
-        offsets = np.array([0, -1, 2], dtype=np.int32)
-        dia = sparse.dia_array((data, offsets), shape=(4, 4))
-
-        coo = dia.tocoo()
-        assert coo.col.dtype == np.int32
-        csr = dia.tocsr()
-        assert csr.indices.dtype == np.int32
-        csc = dia.tocsc()
-        assert csc.indices.dtype == np.int32
-
-    def test_mul_scalar(self):
-        # repro for gh-20434
-        m = dia_matrix([[1, 2], [0, 4]])
-        res = m * 3
-        assert isinstance(res, dia_matrix)
-        assert_array_equal(res.toarray(), [[3, 6], [0, 12]])
-
-        res2 = m.multiply(3)
-        assert isinstance(res2, dia_matrix)
-        assert_array_equal(res2.toarray(), [[3, 6], [0, 12]])
-
-
-TestDIA.init_class()
-
-
-class TestBSR(sparse_test_class(getset=False,
-                                slicing=False, slicing_assign=False,
-                                fancy_indexing=False, fancy_assign=False,
-                                nnz_axis=False)):
-    spcreator = bsr_matrix
-    math_dtypes = [np.int_, np.float64, np.complex128]
-
-    def test_constructor1(self):
-        # check native BSR format constructor
-        indptr = array([0,2,2,4])
-        indices = array([0,2,2,3])
-        data = zeros((4,2,3))
-
-        data[0] = array([[0, 1, 2],
-                         [3, 0, 5]])
-        data[1] = array([[0, 2, 4],
-                         [6, 0, 10]])
-        data[2] = array([[0, 4, 8],
-                         [12, 0, 20]])
-        data[3] = array([[0, 5, 10],
-                         [15, 0, 25]])
-
-        A = kron([[1,0,2,0],[0,0,0,0],[0,0,4,5]], [[0,1,2],[3,0,5]])
-        Asp = bsr_matrix((data,indices,indptr),shape=(6,12))
-        assert_equal(Asp.toarray(), A)
-
-        # infer shape from arrays
-        Asp = bsr_matrix((data,indices,indptr))
-        assert_equal(Asp.toarray(), A)
-
-    def test_constructor2(self):
-        # construct from dense
-
-        # test zero mats
-        for shape in [(1,1), (5,1), (1,10), (10,4), (3,7), (2,1)]:
-            A = zeros(shape)
-            assert_equal(bsr_matrix(A).toarray(), A)
-        A = zeros((4,6))
-        assert_equal(bsr_matrix(A, blocksize=(2, 2)).toarray(), A)
-        assert_equal(bsr_matrix(A, blocksize=(2, 3)).toarray(), A)
-
-        A = kron([[1,0,2,0],[0,0,0,0],[0,0,4,5]], [[0,1,2],[3,0,5]])
-        assert_equal(bsr_matrix(A).toarray(), A)
-        assert_equal(bsr_matrix(A, shape=(6, 12)).toarray(), A)
-        assert_equal(bsr_matrix(A, blocksize=(1, 1)).toarray(), A)
-        assert_equal(bsr_matrix(A, blocksize=(2, 3)).toarray(), A)
-        assert_equal(bsr_matrix(A, blocksize=(2, 6)).toarray(), A)
-        assert_equal(bsr_matrix(A, blocksize=(2, 12)).toarray(), A)
-        assert_equal(bsr_matrix(A, blocksize=(3, 12)).toarray(), A)
-        assert_equal(bsr_matrix(A, blocksize=(6, 12)).toarray(), A)
-
-        A = kron([[1,0,2,0],[0,1,0,0],[0,0,0,0]], [[0,1,2],[3,0,5]])
-        assert_equal(bsr_matrix(A, blocksize=(2, 3)).toarray(), A)
-
-    def test_constructor3(self):
-        # construct from coo-like (data,(row,col)) format
-        arg = ([1,2,3], ([0,1,1], [0,0,1]))
-        A = array([[1,0],[2,3]])
-        assert_equal(bsr_matrix(arg, blocksize=(2, 2)).toarray(), A)
-
-    def test_constructor4(self):
-        # regression test for gh-6292: bsr_matrix((data, indices, indptr)) was
-        #  trying to compare an int to a None
-        n = 8
-        data = np.ones((n, n, 1), dtype=np.int8)
-        indptr = np.array([0, n], dtype=np.int32)
-        indices = np.arange(n, dtype=np.int32)
-        bsr_matrix((data, indices, indptr), blocksize=(n, 1), copy=False)
-
-    def test_constructor5(self):
-        # check for validations introduced in gh-13400
-        n = 8
-        data_1dim = np.ones(n)
-        data = np.ones((n, n, n))
-        indptr = np.array([0, n])
-        indices = np.arange(n)
-
-        with assert_raises(ValueError):
-            # data ndim check
-            bsr_matrix((data_1dim, indices, indptr))
-
-        with assert_raises(ValueError):
-            # invalid blocksize
-            bsr_matrix((data, indices, indptr), blocksize=(1, 1, 1))
-
-        with assert_raises(ValueError):
-            # mismatching blocksize
-            bsr_matrix((data, indices, indptr), blocksize=(1, 1))
-
-    def test_default_dtype(self):
-        # As a numpy array, `values` has shape (2, 2, 1).
-        values = [[[1], [1]], [[1], [1]]]
-        indptr = np.array([0, 2], dtype=np.int32)
-        indices = np.array([0, 1], dtype=np.int32)
-        b = bsr_matrix((values, indices, indptr), blocksize=(2, 1))
-        assert b.dtype == np.array(values).dtype
-
-    def test_bsr_tocsr(self):
-        # check native conversion from BSR to CSR
-        indptr = array([0, 2, 2, 4])
-        indices = array([0, 2, 2, 3])
-        data = zeros((4, 2, 3))
-
-        data[0] = array([[0, 1, 2],
-                         [3, 0, 5]])
-        data[1] = array([[0, 2, 4],
-                         [6, 0, 10]])
-        data[2] = array([[0, 4, 8],
-                         [12, 0, 20]])
-        data[3] = array([[0, 5, 10],
-                         [15, 0, 25]])
-
-        A = kron([[1, 0, 2, 0], [0, 0, 0, 0], [0, 0, 4, 5]],
-                 [[0, 1, 2], [3, 0, 5]])
-        Absr = bsr_matrix((data, indices, indptr), shape=(6, 12))
-        Acsr = Absr.tocsr()
-        Acsr_via_coo = Absr.tocoo().tocsr()
-        assert_equal(Acsr.toarray(), A)
-        assert_equal(Acsr.toarray(), Acsr_via_coo.toarray())
-
-    def test_eliminate_zeros(self):
-        data = kron([1, 0, 0, 0, 2, 0, 3, 0], [[1,1],[1,1]]).T
-        data = data.reshape(-1,2,2)
-        indices = array([1, 2, 3, 4, 5, 6, 7, 8])
-        indptr = array([0, 3, 8])
-        asp = bsr_matrix((data, indices, indptr), shape=(4,20))
-        bsp = asp.copy()
-        asp.eliminate_zeros()
-        assert_array_equal(asp.nnz, 3*4)
-        assert_array_equal(asp.toarray(), bsp.toarray())
-
-    # github issue #9687
-    def test_eliminate_zeros_all_zero(self):
-        np.random.seed(0)
-        m = bsr_matrix(np.random.random((12, 12)), blocksize=(2, 3))
-
-        # eliminate some blocks, but not all
-        m.data[m.data <= 0.9] = 0
-        m.eliminate_zeros()
-        assert_equal(m.nnz, 66)
-        assert_array_equal(m.data.shape, (11, 2, 3))
-
-        # eliminate all remaining blocks
-        m.data[m.data <= 1.0] = 0
-        m.eliminate_zeros()
-        assert_equal(m.nnz, 0)
-        assert_array_equal(m.data.shape, (0, 2, 3))
-        assert_array_equal(m.toarray(), np.zeros((12, 12)))
-
-        # test fast path
-        m.eliminate_zeros()
-        assert_equal(m.nnz, 0)
-        assert_array_equal(m.data.shape, (0, 2, 3))
-        assert_array_equal(m.toarray(), np.zeros((12, 12)))
-
-    def test_bsr_matvec(self):
-        A = bsr_matrix(arange(2*3*4*5).reshape(2*4,3*5), blocksize=(4,5))
-        x = arange(A.shape[1]).reshape(-1,1)
-        assert_equal(A*x, A.toarray() @ x)
-
-    def test_bsr_matvecs(self):
-        A = bsr_matrix(arange(2*3*4*5).reshape(2*4,3*5), blocksize=(4,5))
-        x = arange(A.shape[1]*6).reshape(-1,6)
-        assert_equal(A*x, A.toarray() @ x)
-
-    @pytest.mark.xfail(run=False, reason='BSR does not have a __getitem__')
-    def test_iterator(self):
-        pass
-
-    @pytest.mark.xfail(run=False, reason='BSR does not have a __setitem__')
-    def test_setdiag(self):
-        pass
-
-    def test_resize_blocked(self):
-        # test resize() with non-(1,1) blocksize
-        D = np.array([[1, 0, 3, 4],
-                      [2, 0, 0, 0],
-                      [3, 0, 0, 0]])
-        S = self.spcreator(D, blocksize=(1, 2))
-        assert_(S.resize((3, 2)) is None)
-        assert_array_equal(S.toarray(), [[1, 0],
-                                         [2, 0],
-                                         [3, 0]])
-        S.resize((2, 2))
-        assert_array_equal(S.toarray(), [[1, 0],
-                                         [2, 0]])
-        S.resize((3, 2))
-        assert_array_equal(S.toarray(), [[1, 0],
-                                         [2, 0],
-                                         [0, 0]])
-        S.resize((3, 4))
-        assert_array_equal(S.toarray(), [[1, 0, 0, 0],
-                                         [2, 0, 0, 0],
-                                         [0, 0, 0, 0]])
-        assert_raises(ValueError, S.resize, (2, 3))
-
-    @pytest.mark.xfail(run=False, reason='BSR does not have a __setitem__')
-    def test_setdiag_comprehensive(self):
-        pass
-
-    @pytest.mark.skipif(IS_COLAB, reason="exceeds memory limit")
-    def test_scalar_idx_dtype(self):
-        # Check that index dtype takes into account all parameters
-        # passed to sparsetools, including the scalar ones
-        indptr = np.zeros(2, dtype=np.int32)
-        indices = np.zeros(0, dtype=np.int32)
-        vals = np.zeros((0, 1, 1))
-        a = bsr_matrix((vals, indices, indptr), shape=(1, 2**31-1))
-        b = bsr_matrix((vals, indices, indptr), shape=(1, 2**31))
-        c = bsr_matrix((1, 2**31-1))
-        d = bsr_matrix((1, 2**31))
-        assert_equal(a.indptr.dtype, np.int32)
-        assert_equal(b.indptr.dtype, np.int64)
-        assert_equal(c.indptr.dtype, np.int32)
-        assert_equal(d.indptr.dtype, np.int64)
-
-        try:
-            vals2 = np.zeros((0, 1, 2**31-1))
-            vals3 = np.zeros((0, 1, 2**31))
-            e = bsr_matrix((vals2, indices, indptr), shape=(1, 2**31-1))
-            f = bsr_matrix((vals3, indices, indptr), shape=(1, 2**31))
-            assert_equal(e.indptr.dtype, np.int32)
-            assert_equal(f.indptr.dtype, np.int64)
-        except (MemoryError, ValueError):
-            # May fail on 32-bit Python
-            e = 0
-            f = 0
-
-        # These shouldn't fail
-        for x in [a, b, c, d, e, f]:
-            x + x
-
-
-TestBSR.init_class()
-
-
-#------------------------------------------------------------------------------
-# Tests for non-canonical representations (with duplicates, unsorted indices)
-#------------------------------------------------------------------------------
-
-def _same_sum_duplicate(data, *inds, **kwargs):
-    """Duplicates entries to produce the same matrix"""
-    indptr = kwargs.pop('indptr', None)
-    if np.issubdtype(data.dtype, np.bool_) or \
-       np.issubdtype(data.dtype, np.unsignedinteger):
-        if indptr is None:
-            return (data,) + inds
-        else:
-            return (data,) + inds + (indptr,)
-
-    zeros_pos = (data == 0).nonzero()
-
-    # duplicate data
-    data = data.repeat(2, axis=0)
-    data[::2] -= 1
-    data[1::2] = 1
-
-    # don't spoil all explicit zeros
-    if zeros_pos[0].size > 0:
-        pos = tuple(p[0] for p in zeros_pos)
-        pos1 = (2*pos[0],) + pos[1:]
-        pos2 = (2*pos[0]+1,) + pos[1:]
-        data[pos1] = 0
-        data[pos2] = 0
-
-    inds = tuple(indices.repeat(2) for indices in inds)
-
-    if indptr is None:
-        return (data,) + inds
-    else:
-        return (data,) + inds + (indptr * 2,)
-
-
-class _NonCanonicalMixin:
-    def spcreator(self, D, sorted_indices=False, **kwargs):
-        """Replace D with a non-canonical equivalent: containing
-        duplicate elements and explicit zeros"""
-        construct = super().spcreator
-        M = construct(D, **kwargs)
-
-        zero_pos = (M.toarray() == 0).nonzero()
-        has_zeros = (zero_pos[0].size > 0)
-        if has_zeros:
-            k = zero_pos[0].size//2
-            with suppress_warnings() as sup:
-                sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-                M = self._insert_explicit_zero(M, zero_pos[0][k], zero_pos[1][k])
-
-        arg1 = self._arg1_for_noncanonical(M, sorted_indices)
-        if 'shape' not in kwargs:
-            kwargs['shape'] = M.shape
-        NC = construct(arg1, **kwargs)
-
-        # check that result is valid
-        if NC.dtype in [np.float32, np.complex64]:
-            # For single-precision floats, the differences between M and NC
-            # that are introduced by the extra operations involved in the
-            # construction of NC necessitate a more lenient tolerance level
-            # than the default.
-            rtol = 1e-05
-        else:
-            rtol = 1e-07
-        assert_allclose(NC.toarray(), M.toarray(), rtol=rtol)
-
-        # check that at least one explicit zero
-        if has_zeros:
-            assert_((NC.data == 0).any())
-        # TODO check that NC has duplicates (which are not explicit zeros)
-
-        return NC
-
-    @pytest.mark.skip(reason='bool(matrix) counts explicit zeros')
-    def test_bool(self):
-        pass
-
-    @pytest.mark.skip(reason='getnnz-axis counts explicit zeros')
-    def test_getnnz_axis(self):
-        pass
-
-    @pytest.mark.skip(reason='nnz counts explicit zeros')
-    def test_empty(self):
-        pass
-
-
-class _NonCanonicalCompressedMixin(_NonCanonicalMixin):
-    def _arg1_for_noncanonical(self, M, sorted_indices=False):
-        """Return non-canonical constructor arg1 equivalent to M"""
-        data, indices, indptr = _same_sum_duplicate(M.data, M.indices,
-                                                    indptr=M.indptr)
-        if not sorted_indices:
-            for start, stop in zip(indptr, indptr[1:]):
-                indices[start:stop] = indices[start:stop][::-1].copy()
-                data[start:stop] = data[start:stop][::-1].copy()
-        return data, indices, indptr
-
-    def _insert_explicit_zero(self, M, i, j):
-        M[i,j] = 0
-        return M
-
-
-class _NonCanonicalCSMixin(_NonCanonicalCompressedMixin):
-    def test_getelement(self):
-        def check(dtype, sorted_indices):
-            D = array([[1,0,0],
-                       [4,3,0],
-                       [0,2,0],
-                       [0,0,0]], dtype=dtype)
-            A = self.spcreator(D, sorted_indices=sorted_indices)
-
-            M,N = D.shape
-
-            for i in range(-M, M):
-                for j in range(-N, N):
-                    assert_equal(A[i,j], D[i,j])
-
-            for ij in [(0,3),(-1,3),(4,0),(4,3),(4,-1), (1, 2, 3)]:
-                assert_raises((IndexError, TypeError), A.__getitem__, ij)
-
-        for dtype in supported_dtypes:
-            for sorted_indices in [False, True]:
-                check(np.dtype(dtype), sorted_indices)
-
-    def test_setitem_sparse(self):
-        D = np.eye(3)
-        A = self.spcreator(D)
-        B = self.spcreator([[1,2,3]])
-
-        D[1,:] = B.toarray()
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            A[1,:] = B
-        assert_array_equal(A.toarray(), D)
-
-        D[:,2] = B.toarray().ravel()
-        with suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            A[:,2] = B.T
-        assert_array_equal(A.toarray(), D)
-
-    @pytest.mark.xfail(run=False, reason='inverse broken with non-canonical matrix')
-    def test_inv(self):
-        pass
-
-    @pytest.mark.xfail(run=False, reason='solve broken with non-canonical matrix')
-    def test_solve(self):
-        pass
-
-
-class TestCSRNonCanonical(_NonCanonicalCSMixin, TestCSR):
-    pass
-
-
-class TestCSCNonCanonical(_NonCanonicalCSMixin, TestCSC):
-    pass
-
-
-class TestBSRNonCanonical(_NonCanonicalCompressedMixin, TestBSR):
-    def _insert_explicit_zero(self, M, i, j):
-        x = M.tocsr()
-        x[i,j] = 0
-        return x.tobsr(blocksize=M.blocksize)
-
-    @pytest.mark.xfail(run=False, reason='diagonal broken with non-canonical BSR')
-    def test_diagonal(self):
-        pass
-
-    @pytest.mark.xfail(run=False, reason='expm broken with non-canonical BSR')
-    def test_expm(self):
-        pass
-
-
-class TestCOONonCanonical(_NonCanonicalMixin, TestCOO):
-    def _arg1_for_noncanonical(self, M, sorted_indices=None):
-        """Return non-canonical constructor arg1 equivalent to M"""
-        data, row, col = _same_sum_duplicate(M.data, M.row, M.col)
-        return data, (row, col)
-
-    def _insert_explicit_zero(self, M, i, j):
-        M.data = np.r_[M.data.dtype.type(0), M.data]
-        M.row = np.r_[M.row.dtype.type(i), M.row]
-        M.col = np.r_[M.col.dtype.type(j), M.col]
-        return M
-
-    def test_setdiag_noncanonical(self):
-        m = self.spcreator(np.eye(3))
-        m.sum_duplicates()
-        m.setdiag([3, 2], k=1)
-        m.sum_duplicates()
-        assert_(np.all(np.diff(m.col) >= 0))
-
-
-def cases_64bit():
-    TEST_CLASSES = [TestBSR, TestCOO, TestCSC, TestCSR, TestDIA,
-                    # lil/dok->other conversion operations have get_index_dtype
-                    TestDOK, TestLIL
-                    ]
-
-    # The following features are missing, so skip the tests:
-    SKIP_TESTS = {
-        'test_expm': 'expm for 64-bit indices not available',
-        'test_inv': 'linsolve for 64-bit indices not available',
-        'test_solve': 'linsolve for 64-bit indices not available',
-        'test_scalar_idx_dtype': 'test implemented in base class',
-        'test_large_dimensions_reshape': 'test actually requires 64-bit to work',
-        'test_constructor_smallcol': 'test verifies int32 indexes',
-        'test_constructor_largecol': 'test verifies int64 indexes',
-        'test_tocoo_tocsr_tocsc_gh19245': 'test verifies int32 indexes',
-    }
-
-    for cls in TEST_CLASSES:
-        for method_name in sorted(dir(cls)):
-            method = getattr(cls, method_name)
-            if (method_name.startswith('test_') and
-                    not getattr(method, 'slow', False)):
-                marks = []
-
-                msg = SKIP_TESTS.get(method_name)
-                if bool(msg):
-                    marks += [pytest.mark.skip(reason=msg)]
-
-                markers = getattr(method, 'pytestmark', [])
-                for mark in markers:
-                    if mark.name in ('skipif', 'skip', 'xfail', 'xslow'):
-                        marks.append(mark)
-
-                yield pytest.param(cls, method_name, marks=marks)
-
-
-class Test64Bit:
-    MAT_CLASSES = [bsr_matrix, coo_matrix, csc_matrix, csr_matrix, dia_matrix]
-
-    def _create_some_matrix(self, mat_cls, m, n):
-        return mat_cls(np.random.rand(m, n))
-
-    def _compare_index_dtype(self, m, dtype):
-        dtype = np.dtype(dtype)
-        if isinstance(m, (csc_matrix, csr_matrix, bsr_matrix)):
-            return (m.indices.dtype == dtype) and (m.indptr.dtype == dtype)
-        elif isinstance(m, coo_matrix):
-            return (m.row.dtype == dtype) and (m.col.dtype == dtype)
-        elif isinstance(m, dia_matrix):
-            return (m.offsets.dtype == dtype)
-        else:
-            raise ValueError(f"matrix {m!r} has no integer indices")
-
-    def test_decorator_maxval_limit(self):
-        # Test that the with_64bit_maxval_limit decorator works
-
-        @with_64bit_maxval_limit(maxval_limit=10)
-        def check(mat_cls):
-            m = mat_cls(np.random.rand(10, 1))
-            assert_(self._compare_index_dtype(m, np.int32))
-            m = mat_cls(np.random.rand(11, 1))
-            assert_(self._compare_index_dtype(m, np.int64))
-
-        for mat_cls in self.MAT_CLASSES:
-            check(mat_cls)
-
-    def test_decorator_maxval_random(self):
-        # Test that the with_64bit_maxval_limit decorator works (2)
-
-        @with_64bit_maxval_limit(random=True)
-        def check(mat_cls):
-            seen_32 = False
-            seen_64 = False
-            for k in range(100):
-                m = self._create_some_matrix(mat_cls, 9, 9)
-                seen_32 = seen_32 or self._compare_index_dtype(m, np.int32)
-                seen_64 = seen_64 or self._compare_index_dtype(m, np.int64)
-                if seen_32 and seen_64:
-                    break
-            else:
-                raise AssertionError("both 32 and 64 bit indices not seen")
-
-        for mat_cls in self.MAT_CLASSES:
-            check(mat_cls)
-
-    def _check_resiliency(self, cls, method_name, **kw):
-        # Resiliency test, to check that sparse matrices deal reasonably
-        # with varying index data types.
-
-        @with_64bit_maxval_limit(**kw)
-        def check(cls, method_name):
-            instance = cls()
-            if hasattr(instance, 'setup_method'):
-                instance.setup_method()
-            try:
-                getattr(instance, method_name)()
-            finally:
-                if hasattr(instance, 'teardown_method'):
-                    instance.teardown_method()
-
-        check(cls, method_name)
-
-    @pytest.mark.parametrize('cls,method_name', cases_64bit())
-    def test_resiliency_limit_10(self, cls, method_name):
-        self._check_resiliency(cls, method_name, maxval_limit=10)
-
-    @pytest.mark.parametrize('cls,method_name', cases_64bit())
-    def test_resiliency_random(self, cls, method_name):
-        # bsr_matrix.eliminate_zeros relies on csr_matrix constructor
-        # not making copies of index arrays --- this is not
-        # necessarily true when we pick the index data type randomly
-        self._check_resiliency(cls, method_name, random=True)
-
-    @pytest.mark.parametrize('cls,method_name', cases_64bit())
-    def test_resiliency_all_32(self, cls, method_name):
-        self._check_resiliency(cls, method_name, fixed_dtype=np.int32)
-
-    @pytest.mark.parametrize('cls,method_name', cases_64bit())
-    def test_resiliency_all_64(self, cls, method_name):
-        self._check_resiliency(cls, method_name, fixed_dtype=np.int64)
-
-    @pytest.mark.parametrize('cls,method_name', cases_64bit())
-    def test_no_64(self, cls, method_name):
-        self._check_resiliency(cls, method_name, assert_32bit=True)
-
-    def test_downcast_intp(self):
-        # Check that bincount and ufunc.reduceat intp downcasts are
-        # dealt with. The point here is to trigger points in the code
-        # that can fail on 32-bit systems when using 64-bit indices,
-        # due to use of functions that only work with intp-size
-        # indices.
-
-        @with_64bit_maxval_limit(fixed_dtype=np.int64,
-                                 downcast_maxval=1)
-        def check_limited():
-            # These involve indices larger than `downcast_maxval`
-            a = csc_matrix([[1, 2], [3, 4], [5, 6]])
-            assert_raises(AssertionError, a.getnnz, axis=1)
-            assert_raises(AssertionError, a.sum, axis=0)
-
-            a = csr_matrix([[1, 2, 3], [3, 4, 6]])
-            assert_raises(AssertionError, a.getnnz, axis=0)
-
-            a = coo_matrix([[1, 2, 3], [3, 4, 5]])
-            assert_raises(AssertionError, a.getnnz, axis=0)
-
-        @with_64bit_maxval_limit(fixed_dtype=np.int64)
-        def check_unlimited():
-            # These involve indices larger than `downcast_maxval`
-            a = csc_matrix([[1, 2], [3, 4], [5, 6]])
-            a.getnnz(axis=1)
-            a.sum(axis=0)
-
-            a = csr_matrix([[1, 2, 3], [3, 4, 6]])
-            a.getnnz(axis=0)
-
-            a = coo_matrix([[1, 2, 3], [3, 4, 5]])
-            a.getnnz(axis=0)
-
-        check_limited()
-        check_unlimited()
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_common1d.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_common1d.py
deleted file mode 100644
index 1d6ca6041858cc230a5139bd8572e9498569bcd9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_common1d.py
+++ /dev/null
@@ -1,450 +0,0 @@
-"""Test of 1D aspects of sparse array classes"""
-
-import pytest
-
-import numpy as np
-from numpy.testing import assert_equal, assert_allclose
-
-from scipy.sparse import (
-        bsr_array, csc_array, dia_array, lil_array,
-        coo_array, csr_array, dok_array, SparseEfficiencyWarning,
-    )
-from scipy.sparse._sputils import supported_dtypes, matrix
-from scipy._lib._util import ComplexWarning
-
-
-sup_complex = np.testing.suppress_warnings()
-sup_complex.filter(ComplexWarning)
-
-
-spcreators = [coo_array, csr_array, dok_array]
-math_dtypes = [np.int64, np.float64, np.complex128]
-
-
-@pytest.fixture
-def dat1d():
-    return np.array([3, 0, 1, 0], 'd')
-
-
-@pytest.fixture
-def datsp_math_dtypes(dat1d):
-    dat_dtypes = {dtype: dat1d.astype(dtype) for dtype in math_dtypes}
-    return {
-        spcreator: [(dtype, dat, spcreator(dat)) for dtype, dat in dat_dtypes.items()]
-        for spcreator in spcreators
-    }
-
-
-# Test init with 1D dense input
-# sparrays which do not plan to support 1D
-@pytest.mark.parametrize("spcreator", [bsr_array, csc_array, dia_array, lil_array])
-def test_no_1d_support_in_init(spcreator):
-    with pytest.raises(ValueError, match="arrays don't support 1D input"):
-        spcreator([0, 1, 2, 3])
-
-
-# Main tests class
-@pytest.mark.parametrize("spcreator", spcreators)
-class TestCommon1D:
-    """test common functionality shared by 1D sparse formats"""
-
-    def test_create_empty(self, spcreator):
-        assert_equal(spcreator((3,)).toarray(), np.zeros(3))
-        assert_equal(spcreator((3,)).nnz, 0)
-        assert_equal(spcreator((3,)).count_nonzero(), 0)
-
-    def test_invalid_shapes(self, spcreator):
-        with pytest.raises(ValueError, match='elements cannot be negative'):
-            spcreator((-3,))
-
-    def test_repr(self, spcreator, dat1d):
-        repr(spcreator(dat1d))
-
-    def test_str(self, spcreator, dat1d):
-        str(spcreator(dat1d))
-
-    def test_neg(self, spcreator):
-        A = np.array([-1, 0, 17, 0, -5, 0, 1, -4, 0, 0, 0, 0], 'd')
-        assert_equal(-A, (-spcreator(A)).toarray())
-
-    def test_1d_supported_init(self, spcreator):
-        A = spcreator([0, 1, 2, 3])
-        assert A.ndim == 1
-
-    def test_reshape_1d_tofrom_row_or_column(self, spcreator):
-        # add a dimension 1d->2d
-        x = spcreator([1, 0, 7, 0, 0, 0, 0, -3, 0, 0, 0, 5])
-        y = x.reshape(1, 12)
-        desired = [[1, 0, 7, 0, 0, 0, 0, -3, 0, 0, 0, 5]]
-        assert_equal(y.toarray(), desired)
-
-        # remove a size-1 dimension 2d->1d
-        x = spcreator(desired)
-        y = x.reshape(12)
-        assert_equal(y.toarray(), desired[0])
-        y2 = x.reshape((12,))
-        assert y.shape == y2.shape
-
-        # make a 2d column into 1d. 2d->1d
-        y = x.T.reshape(12)
-        assert_equal(y.toarray(), desired[0])
-
-    def test_reshape(self, spcreator):
-        x = spcreator([1, 0, 7, 0, 0, 0, 0, -3, 0, 0, 0, 5])
-        y = x.reshape((4, 3))
-        desired = [[1, 0, 7], [0, 0, 0], [0, -3, 0], [0, 0, 5]]
-        assert_equal(y.toarray(), desired)
-
-        y = x.reshape((12,))
-        assert y is x
-
-        y = x.reshape(12)
-        assert_equal(y.toarray(), x.toarray())
-
-    def test_sum(self, spcreator):
-        np.random.seed(1234)
-        dat_1 = np.array([0, 1, 2, 3, -4, 5, -6, 7, 9])
-        dat_2 = np.random.rand(5)
-        dat_3 = np.array([])
-        dat_4 = np.zeros((40,))
-        arrays = [dat_1, dat_2, dat_3, dat_4]
-
-        for dat in arrays:
-            datsp = spcreator(dat)
-            with np.errstate(over='ignore'):
-                assert np.isscalar(datsp.sum())
-                assert_allclose(dat.sum(), datsp.sum())
-                assert_allclose(dat.sum(axis=None), datsp.sum(axis=None))
-                assert_allclose(dat.sum(axis=0), datsp.sum(axis=0))
-                assert_allclose(dat.sum(axis=-1), datsp.sum(axis=-1))
-
-        # test `out` parameter
-        datsp.sum(axis=0, out=np.zeros(()))
-
-    def test_sum_invalid_params(self, spcreator):
-        out = np.zeros((3,))  # wrong size for out
-        dat = np.array([0, 1, 2])
-        datsp = spcreator(dat)
-
-        with pytest.raises(ValueError, match='axis must be None, -1 or 0'):
-            datsp.sum(axis=1)
-        with pytest.raises(TypeError, match='Tuples are not accepted'):
-            datsp.sum(axis=(0, 1))
-        with pytest.raises(TypeError, match='axis must be an integer'):
-            datsp.sum(axis=1.5)
-        with pytest.raises(ValueError, match='dimensions do not match'):
-            datsp.sum(axis=0, out=out)
-
-    def test_numpy_sum(self, spcreator):
-        dat = np.array([0, 1, 2])
-        datsp = spcreator(dat)
-
-        dat_sum = np.sum(dat)
-        datsp_sum = np.sum(datsp)
-
-        assert_allclose(dat_sum, datsp_sum)
-
-    def test_mean(self, spcreator):
-        dat = np.array([0, 1, 2])
-        datsp = spcreator(dat)
-
-        assert_allclose(dat.mean(), datsp.mean())
-        assert np.isscalar(datsp.mean(axis=None))
-        assert_allclose(dat.mean(axis=None), datsp.mean(axis=None))
-        assert_allclose(dat.mean(axis=0), datsp.mean(axis=0))
-        assert_allclose(dat.mean(axis=-1), datsp.mean(axis=-1))
-
-        with pytest.raises(ValueError, match='axis'):
-            datsp.mean(axis=1)
-        with pytest.raises(ValueError, match='axis'):
-            datsp.mean(axis=-2)
-
-    def test_mean_invalid_params(self, spcreator):
-        out = np.asarray(np.zeros((1, 3)))
-        dat = np.array([[0, 1, 2], [3, -4, 5], [-6, 7, 9]])
-
-        datsp = spcreator(dat)
-        with pytest.raises(ValueError, match='axis out of range'):
-            datsp.mean(axis=3)
-        with pytest.raises(TypeError, match='Tuples are not accepted'):
-            datsp.mean(axis=(0, 1))
-        with pytest.raises(TypeError, match='axis must be an integer'):
-            datsp.mean(axis=1.5)
-        with pytest.raises(ValueError, match='dimensions do not match'):
-            datsp.mean(axis=1, out=out)
-
-    def test_sum_dtype(self, spcreator):
-        dat = np.array([0, 1, 2])
-        datsp = spcreator(dat)
-
-        for dtype in supported_dtypes:
-            dat_sum = dat.sum(dtype=dtype)
-            datsp_sum = datsp.sum(dtype=dtype)
-
-            assert_allclose(dat_sum, datsp_sum)
-            assert_equal(dat_sum.dtype, datsp_sum.dtype)
-
-    def test_mean_dtype(self, spcreator):
-        dat = np.array([0, 1, 2])
-        datsp = spcreator(dat)
-
-        for dtype in supported_dtypes:
-            dat_mean = dat.mean(dtype=dtype)
-            datsp_mean = datsp.mean(dtype=dtype)
-
-            assert_allclose(dat_mean, datsp_mean)
-            assert_equal(dat_mean.dtype, datsp_mean.dtype)
-
-    def test_mean_out(self, spcreator):
-        dat = np.array([0, 1, 2])
-        datsp = spcreator(dat)
-
-        dat_out = np.array([0])
-        datsp_out = np.array([0])
-
-        dat.mean(out=dat_out, keepdims=True)
-        datsp.mean(out=datsp_out)
-        assert_allclose(dat_out, datsp_out)
-
-        dat.mean(axis=0, out=dat_out, keepdims=True)
-        datsp.mean(axis=0, out=datsp_out)
-        assert_allclose(dat_out, datsp_out)
-
-    def test_numpy_mean(self, spcreator):
-        dat = np.array([0, 1, 2])
-        datsp = spcreator(dat)
-
-        dat_mean = np.mean(dat)
-        datsp_mean = np.mean(datsp)
-
-        assert_allclose(dat_mean, datsp_mean)
-        assert_equal(dat_mean.dtype, datsp_mean.dtype)
-
-    @sup_complex
-    def test_from_array(self, spcreator):
-        A = np.array([2, 3, 4])
-        assert_equal(spcreator(A).toarray(), A)
-
-        A = np.array([1.0 + 3j, 0, -1])
-        assert_equal(spcreator(A).toarray(), A)
-        assert_equal(spcreator(A, dtype='int16').toarray(), A.astype('int16'))
-
-    @sup_complex
-    def test_from_list(self, spcreator):
-        A = [2, 3, 4]
-        assert_equal(spcreator(A).toarray(), A)
-
-        A = [1.0 + 3j, 0, -1]
-        assert_equal(spcreator(A).toarray(), np.array(A))
-        assert_equal(
-            spcreator(A, dtype='int16').toarray(), np.array(A).astype('int16')
-        )
-
-    @sup_complex
-    def test_from_sparse(self, spcreator):
-        D = np.array([1, 0, 0])
-        S = coo_array(D)
-        assert_equal(spcreator(S).toarray(), D)
-        S = spcreator(D)
-        assert_equal(spcreator(S).toarray(), D)
-
-        D = np.array([1.0 + 3j, 0, -1])
-        S = coo_array(D)
-        assert_equal(spcreator(S).toarray(), D)
-        assert_equal(spcreator(S, dtype='int16').toarray(), D.astype('int16'))
-        S = spcreator(D)
-        assert_equal(spcreator(S).toarray(), D)
-        assert_equal(spcreator(S, dtype='int16').toarray(), D.astype('int16'))
-
-    def test_toarray(self, spcreator, dat1d):
-        datsp = spcreator(dat1d)
-        # Check C- or F-contiguous (default).
-        chk = datsp.toarray()
-        assert_equal(chk, dat1d)
-        assert chk.flags.c_contiguous == chk.flags.f_contiguous
-
-        # Check C-contiguous (with arg).
-        chk = datsp.toarray(order='C')
-        assert_equal(chk, dat1d)
-        assert chk.flags.c_contiguous
-        assert chk.flags.f_contiguous
-
-        # Check F-contiguous (with arg).
-        chk = datsp.toarray(order='F')
-        assert_equal(chk, dat1d)
-        assert chk.flags.c_contiguous
-        assert chk.flags.f_contiguous
-
-        # Check with output arg.
-        out = np.zeros(datsp.shape, dtype=datsp.dtype)
-        datsp.toarray(out=out)
-        assert_equal(out, dat1d)
-
-        # Check that things are fine when we don't initialize with zeros.
-        out[...] = 1.0
-        datsp.toarray(out=out)
-        assert_equal(out, dat1d)
-
-        # np.dot does not work with sparse matrices (unless scalars)
-        # so this is testing whether dat1d matches datsp.toarray()
-        a = np.array([1.0, 2.0, 3.0, 4.0])
-        dense_dot_dense = np.dot(a, dat1d)
-        check = np.dot(a, datsp.toarray())
-        assert_equal(dense_dot_dense, check)
-
-        b = np.array([1.0, 2.0, 3.0, 4.0])
-        dense_dot_dense = np.dot(dat1d, b)
-        check = np.dot(datsp.toarray(), b)
-        assert_equal(dense_dot_dense, check)
-
-        # Check bool data works.
-        spbool = spcreator(dat1d, dtype=bool)
-        arrbool = dat1d.astype(bool)
-        assert_equal(spbool.toarray(), arrbool)
-
-    def test_add(self, spcreator, datsp_math_dtypes):
-        for dtype, dat, datsp in datsp_math_dtypes[spcreator]:
-            a = dat.copy()
-            a[0] = 2.0
-            b = datsp
-            c = b + a
-            assert_equal(c, b.toarray() + a)
-
-            # test broadcasting
-            # Note: cant add nonzero scalar to sparray. Can add len 1 array
-            c = b + a[0:1]
-            assert_equal(c, b.toarray() + a[0])
-
-    def test_radd(self, spcreator, datsp_math_dtypes):
-        for dtype, dat, datsp in datsp_math_dtypes[spcreator]:
-            a = dat.copy()
-            a[0] = 2.0
-            b = datsp
-            c = a + b
-            assert_equal(c, a + b.toarray())
-
-    def test_rsub(self, spcreator, datsp_math_dtypes):
-        for dtype, dat, datsp in datsp_math_dtypes[spcreator]:
-            if dtype == np.dtype('bool'):
-                # boolean array subtraction deprecated in 1.9.0
-                continue
-
-            assert_equal((dat - datsp), [0, 0, 0, 0])
-            assert_equal((datsp - dat), [0, 0, 0, 0])
-            assert_equal((0 - datsp).toarray(), -dat)
-
-            A = spcreator([1, -4, 0, 2], dtype='d')
-            assert_equal((dat - A), dat - A.toarray())
-            assert_equal((A - dat), A.toarray() - dat)
-            assert_equal(A.toarray() - datsp, A.toarray() - dat)
-            assert_equal(datsp - A.toarray(), dat - A.toarray())
-
-            # test broadcasting
-            assert_equal(dat[:1] - datsp, dat[:1] - dat)
-
-    def test_matvec(self, spcreator):
-        A = np.array([2, 0, 3.0])
-        Asp = spcreator(A)
-        col = np.array([[1, 2, 3]]).T
-
-        assert_allclose(Asp @ col, Asp.toarray() @ col)
-
-        assert (A @ np.array([1, 2, 3])).shape == ()
-        assert Asp @ np.array([1, 2, 3]) == 11
-        assert (Asp @ np.array([1, 2, 3])).shape == ()
-        assert (Asp @ np.array([[1], [2], [3]])).shape == ()
-        # check result type
-        assert isinstance(Asp @ matrix([[1, 2, 3]]).T, np.ndarray)
-        assert (Asp @ np.array([[1, 2, 3]]).T).shape == ()
-
-        # ensure exception is raised for improper dimensions
-        bad_vecs = [np.array([1, 2]), np.array([1, 2, 3, 4]), np.array([[1], [2]])]
-        for x in bad_vecs:
-            with pytest.raises(ValueError, match='dimension mismatch'):
-                Asp.__matmul__(x)
-
-        # The current relationship between sparse matrix products and array
-        # products is as follows:
-        dot_result = np.dot(Asp.toarray(), [1, 2, 3])
-        assert_allclose(Asp @ np.array([1, 2, 3]), dot_result)
-        assert_allclose(Asp @ [[1], [2], [3]], dot_result.T)
-        # Note that the result of Asp @ x is dense if x has a singleton dimension.
-
-    def test_rmatvec(self, spcreator, dat1d):
-        M = spcreator(dat1d)
-        assert_allclose([1, 2, 3, 4] @ M, np.dot([1, 2, 3, 4], M.toarray()))
-        row = np.array([[1, 2, 3, 4]])
-        assert_allclose(row @ M, row @ M.toarray())
-
-    def test_transpose(self, spcreator, dat1d):
-        for A in [dat1d, np.array([])]:
-            B = spcreator(A)
-            assert_equal(B.toarray(), A)
-            assert_equal(B.transpose().toarray(), A)
-            assert_equal(B.dtype, A.dtype)
-
-    def test_add_dense_to_sparse(self, spcreator, datsp_math_dtypes):
-        for dtype, dat, datsp in datsp_math_dtypes[spcreator]:
-            sum1 = dat + datsp
-            assert_equal(sum1, dat + dat)
-            sum2 = datsp + dat
-            assert_equal(sum2, dat + dat)
-
-    def test_iterator(self, spcreator):
-        # test that __iter__ is compatible with NumPy
-        B = np.arange(5)
-        A = spcreator(B)
-
-        if A.format not in ['coo', 'dia', 'bsr']:
-            for x, y in zip(A, B):
-                assert_equal(x, y)
-
-    def test_resize(self, spcreator):
-        # resize(shape) resizes the matrix in-place
-        D = np.array([1, 0, 3, 4])
-        S = spcreator(D)
-        assert S.resize((3,)) is None
-        assert_equal(S.toarray(), [1, 0, 3])
-        S.resize((5,))
-        assert_equal(S.toarray(), [1, 0, 3, 0, 0])
-
-
-@pytest.mark.parametrize("spcreator", [csr_array, dok_array])
-class TestGetSet1D:
-    def test_getelement(self, spcreator):
-        D = np.array([4, 3, 0])
-        A = spcreator(D)
-
-        N = D.shape[0]
-        for j in range(-N, N):
-            assert_equal(A[j], D[j])
-
-        for ij in [3, -4]:
-            with pytest.raises(
-                (IndexError, TypeError), match='index value out of bounds'
-            ):
-                A.__getitem__(ij)
-
-        # single element tuples unwrapped
-        assert A[(0,)] == 4
-
-        with pytest.raises(IndexError, match='index value out of bounds'):
-            A.__getitem__((4,))
-
-    def test_setelement(self, spcreator):
-        dtype = np.float64
-        A = spcreator((12,), dtype=dtype)
-        with np.testing.suppress_warnings() as sup:
-            sup.filter(SparseEfficiencyWarning, "Changing the sparsity structure")
-            A[0] = dtype(0)
-            A[1] = dtype(3)
-            A[8] = dtype(9.0)
-            A[-2] = dtype(7)
-            A[5] = 9
-
-            A[-9,] = dtype(8)
-            A[1,] = dtype(5)  # overwrite using 1-tuple index
-
-            for ij in [13, -14, (13,), (14,)]:
-                with pytest.raises(IndexError, match='index value out of bounds'):
-                    A.__setitem__(ij, 123.0)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_construct.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_construct.py
deleted file mode 100644
index 9a3e80d8465d550c62219f080e5247f6c750ae25..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_construct.py
+++ /dev/null
@@ -1,836 +0,0 @@
-"""test sparse matrix construction functions"""
-
-import numpy as np
-from numpy import array
-from numpy.testing import (assert_equal, assert_,
-        assert_array_equal, assert_array_almost_equal_nulp)
-import pytest
-from pytest import raises as assert_raises
-from scipy._lib._testutils import check_free_memory
-from scipy._lib._util import check_random_state
-
-from scipy.sparse import (csr_matrix, coo_matrix,
-                          csr_array, coo_array,
-                          csc_array, bsr_array,
-                          dia_array, dok_array,
-                          lil_array, csc_matrix,
-                          bsr_matrix, dia_matrix,
-                          lil_matrix, sparray, spmatrix,
-                          _construct as construct)
-from scipy.sparse._construct import rand as sprand
-
-sparse_formats = ['csr','csc','coo','bsr','dia','lil','dok']
-
-#TODO check whether format=XXX is respected
-
-
-def _sprandn(m, n, density=0.01, format="coo", dtype=None, random_state=None):
-    # Helper function for testing.
-    random_state = check_random_state(random_state)
-    data_rvs = random_state.standard_normal
-    return construct.random(m, n, density, format, dtype,
-                            random_state, data_rvs)
-
-
-def _sprandn_array(m, n, density=0.01, format="coo", dtype=None, random_state=None):
-    # Helper function for testing.
-    random_state = check_random_state(random_state)
-    data_sampler = random_state.standard_normal
-    return construct.random_array((m, n), density=density, format=format, dtype=dtype,
-                                  random_state=random_state, data_sampler=data_sampler)
-
-
-class TestConstructUtils:
-
-    @pytest.mark.parametrize("cls", [
-        csc_array, csr_array, coo_array, bsr_array,
-        dia_array, dok_array, lil_array
-    ])
-    def test_singleton_array_constructor(self, cls):
-        with pytest.raises(
-            ValueError,
-            match=(
-                'scipy sparse array classes do not support '
-                'instantiation from a scalar'
-            )
-        ):
-            cls(0)
-    
-    @pytest.mark.parametrize("cls", [
-        csc_matrix, csr_matrix, coo_matrix,
-        bsr_matrix, dia_matrix, lil_matrix
-    ])
-    def test_singleton_matrix_constructor(self, cls):
-        """
-        This test is for backwards compatibility post scipy 1.13.
-        The behavior observed here is what is to be expected
-        with the older matrix classes. This test comes with the
-        exception of dok_matrix, which was not working pre scipy1.12
-        (unlike the rest of these).
-        """
-        assert cls(0).shape == (1, 1)
-
-    def test_spdiags(self):
-        diags1 = array([[1, 2, 3, 4, 5]])
-        diags2 = array([[1, 2, 3, 4, 5],
-                         [6, 7, 8, 9,10]])
-        diags3 = array([[1, 2, 3, 4, 5],
-                         [6, 7, 8, 9,10],
-                         [11,12,13,14,15]])
-
-        cases = []
-        cases.append((diags1, 0, 1, 1, [[1]]))
-        cases.append((diags1, [0], 1, 1, [[1]]))
-        cases.append((diags1, [0], 2, 1, [[1],[0]]))
-        cases.append((diags1, [0], 1, 2, [[1,0]]))
-        cases.append((diags1, [1], 1, 2, [[0,2]]))
-        cases.append((diags1,[-1], 1, 2, [[0,0]]))
-        cases.append((diags1, [0], 2, 2, [[1,0],[0,2]]))
-        cases.append((diags1,[-1], 2, 2, [[0,0],[1,0]]))
-        cases.append((diags1, [3], 2, 2, [[0,0],[0,0]]))
-        cases.append((diags1, [0], 3, 4, [[1,0,0,0],[0,2,0,0],[0,0,3,0]]))
-        cases.append((diags1, [1], 3, 4, [[0,2,0,0],[0,0,3,0],[0,0,0,4]]))
-        cases.append((diags1, [2], 3, 5, [[0,0,3,0,0],[0,0,0,4,0],[0,0,0,0,5]]))
-
-        cases.append((diags2, [0,2], 3, 3, [[1,0,8],[0,2,0],[0,0,3]]))
-        cases.append((diags2, [-1,0], 3, 4, [[6,0,0,0],[1,7,0,0],[0,2,8,0]]))
-        cases.append((diags2, [2,-3], 6, 6, [[0,0,3,0,0,0],
-                                              [0,0,0,4,0,0],
-                                              [0,0,0,0,5,0],
-                                              [6,0,0,0,0,0],
-                                              [0,7,0,0,0,0],
-                                              [0,0,8,0,0,0]]))
-
-        cases.append((diags3, [-1,0,1], 6, 6, [[6,12, 0, 0, 0, 0],
-                                                [1, 7,13, 0, 0, 0],
-                                                [0, 2, 8,14, 0, 0],
-                                                [0, 0, 3, 9,15, 0],
-                                                [0, 0, 0, 4,10, 0],
-                                                [0, 0, 0, 0, 5, 0]]))
-        cases.append((diags3, [-4,2,-1], 6, 5, [[0, 0, 8, 0, 0],
-                                                 [11, 0, 0, 9, 0],
-                                                 [0,12, 0, 0,10],
-                                                 [0, 0,13, 0, 0],
-                                                 [1, 0, 0,14, 0],
-                                                 [0, 2, 0, 0,15]]))
-        cases.append((diags3, [-1, 1, 2], len(diags3[0]), len(diags3[0]),
-                      [[0, 7, 13, 0, 0],
-                       [1, 0, 8, 14, 0],
-                       [0, 2, 0, 9, 15],
-                       [0, 0, 3, 0, 10],
-                       [0, 0, 0, 4, 0]]))
-
-        for d, o, m, n, result in cases:
-            if len(d[0]) == m and m == n:
-                assert_equal(construct.spdiags(d, o).toarray(), result)
-            assert_equal(construct.spdiags(d, o, m, n).toarray(), result)
-            assert_equal(construct.spdiags(d, o, (m, n)).toarray(), result)
-
-    def test_diags(self):
-        a = array([1, 2, 3, 4, 5])
-        b = array([6, 7, 8, 9, 10])
-        c = array([11, 12, 13, 14, 15])
-
-        cases = []
-        cases.append((a[:1], 0, (1, 1), [[1]]))
-        cases.append(([a[:1]], [0], (1, 1), [[1]]))
-        cases.append(([a[:1]], [0], (2, 1), [[1],[0]]))
-        cases.append(([a[:1]], [0], (1, 2), [[1,0]]))
-        cases.append(([a[:1]], [1], (1, 2), [[0,1]]))
-        cases.append(([a[:2]], [0], (2, 2), [[1,0],[0,2]]))
-        cases.append(([a[:1]],[-1], (2, 2), [[0,0],[1,0]]))
-        cases.append(([a[:3]], [0], (3, 4), [[1,0,0,0],[0,2,0,0],[0,0,3,0]]))
-        cases.append(([a[:3]], [1], (3, 4), [[0,1,0,0],[0,0,2,0],[0,0,0,3]]))
-        cases.append(([a[:1]], [-2], (3, 5), [[0,0,0,0,0],[0,0,0,0,0],[1,0,0,0,0]]))
-        cases.append(([a[:2]], [-1], (3, 5), [[0,0,0,0,0],[1,0,0,0,0],[0,2,0,0,0]]))
-        cases.append(([a[:3]], [0], (3, 5), [[1,0,0,0,0],[0,2,0,0,0],[0,0,3,0,0]]))
-        cases.append(([a[:3]], [1], (3, 5), [[0,1,0,0,0],[0,0,2,0,0],[0,0,0,3,0]]))
-        cases.append(([a[:3]], [2], (3, 5), [[0,0,1,0,0],[0,0,0,2,0],[0,0,0,0,3]]))
-        cases.append(([a[:2]], [3], (3, 5), [[0,0,0,1,0],[0,0,0,0,2],[0,0,0,0,0]]))
-        cases.append(([a[:1]], [4], (3, 5), [[0,0,0,0,1],[0,0,0,0,0],[0,0,0,0,0]]))
-        cases.append(([a[:1]], [-4], (5, 3), [[0,0,0],[0,0,0],[0,0,0],[0,0,0],[1,0,0]]))
-        cases.append(([a[:2]], [-3], (5, 3), [[0,0,0],[0,0,0],[0,0,0],[1,0,0],[0,2,0]]))
-        cases.append(([a[:3]], [-2], (5, 3), [[0,0,0],[0,0,0],[1,0,0],[0,2,0],[0,0,3]]))
-        cases.append(([a[:3]], [-1], (5, 3), [[0,0,0],[1,0,0],[0,2,0],[0,0,3],[0,0,0]]))
-        cases.append(([a[:3]], [0], (5, 3), [[1,0,0],[0,2,0],[0,0,3],[0,0,0],[0,0,0]]))
-        cases.append(([a[:2]], [1], (5, 3), [[0,1,0],[0,0,2],[0,0,0],[0,0,0],[0,0,0]]))
-        cases.append(([a[:1]], [2], (5, 3), [[0,0,1],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]))
-
-        cases.append(([a[:3],b[:1]], [0,2], (3, 3), [[1,0,6],[0,2,0],[0,0,3]]))
-        cases.append(([a[:2],b[:3]], [-1,0], (3, 4), [[6,0,0,0],[1,7,0,0],[0,2,8,0]]))
-        cases.append(([a[:4],b[:3]], [2,-3], (6, 6), [[0,0,1,0,0,0],
-                                                     [0,0,0,2,0,0],
-                                                     [0,0,0,0,3,0],
-                                                     [6,0,0,0,0,4],
-                                                     [0,7,0,0,0,0],
-                                                     [0,0,8,0,0,0]]))
-
-        cases.append(([a[:4],b,c[:4]], [-1,0,1], (5, 5), [[6,11, 0, 0, 0],
-                                                            [1, 7,12, 0, 0],
-                                                            [0, 2, 8,13, 0],
-                                                            [0, 0, 3, 9,14],
-                                                            [0, 0, 0, 4,10]]))
-        cases.append(([a[:2],b[:3],c], [-4,2,-1], (6, 5), [[0, 0, 6, 0, 0],
-                                                          [11, 0, 0, 7, 0],
-                                                          [0,12, 0, 0, 8],
-                                                          [0, 0,13, 0, 0],
-                                                          [1, 0, 0,14, 0],
-                                                          [0, 2, 0, 0,15]]))
-
-        # too long arrays are OK
-        cases.append(([a], [0], (1, 1), [[1]]))
-        cases.append(([a[:3],b], [0,2], (3, 3), [[1, 0, 6], [0, 2, 0], [0, 0, 3]]))
-        cases.append((
-            np.array([[1, 2, 3], [4, 5, 6]]),
-            [0,-1],
-            (3, 3),
-            [[1, 0, 0], [4, 2, 0], [0, 5, 3]]
-        ))
-
-        # scalar case: broadcasting
-        cases.append(([1,-2,1], [1,0,-1], (3, 3), [[-2, 1, 0],
-                                                    [1, -2, 1],
-                                                    [0, 1, -2]]))
-
-        for d, o, shape, result in cases:
-            err_msg = f"{d!r} {o!r} {shape!r} {result!r}"
-            assert_equal(construct.diags(d, offsets=o, shape=shape).toarray(),
-                         result, err_msg=err_msg)
-
-            if (shape[0] == shape[1]
-                and hasattr(d[0], '__len__')
-                and len(d[0]) <= max(shape)):
-                # should be able to find the shape automatically
-                assert_equal(construct.diags(d, offsets=o).toarray(), result,
-                             err_msg=err_msg)
-
-    def test_diags_default(self):
-        a = array([1, 2, 3, 4, 5])
-        assert_equal(construct.diags(a).toarray(), np.diag(a))
-
-    def test_diags_default_bad(self):
-        a = array([[1, 2, 3, 4, 5], [2, 3, 4, 5, 6]])
-        assert_raises(ValueError, construct.diags, a)
-
-    def test_diags_bad(self):
-        a = array([1, 2, 3, 4, 5])
-        b = array([6, 7, 8, 9, 10])
-        c = array([11, 12, 13, 14, 15])
-
-        cases = []
-        cases.append(([a[:0]], 0, (1, 1)))
-        cases.append(([a[:4],b,c[:3]], [-1,0,1], (5, 5)))
-        cases.append(([a[:2],c,b[:3]], [-4,2,-1], (6, 5)))
-        cases.append(([a[:2],c,b[:3]], [-4,2,-1], None))
-        cases.append(([], [-4,2,-1], None))
-        cases.append(([1], [-5], (4, 4)))
-        cases.append(([a], 0, None))
-
-        for d, o, shape in cases:
-            assert_raises(ValueError, construct.diags, d, offsets=o, shape=shape)
-
-        assert_raises(TypeError, construct.diags, [[None]], offsets=[0])
-
-    def test_diags_vs_diag(self):
-        # Check that
-        #
-        #    diags([a, b, ...], [i, j, ...]) == diag(a, i) + diag(b, j) + ...
-        #
-
-        np.random.seed(1234)
-
-        for n_diags in [1, 2, 3, 4, 5, 10]:
-            n = 1 + n_diags//2 + np.random.randint(0, 10)
-
-            offsets = np.arange(-n+1, n-1)
-            np.random.shuffle(offsets)
-            offsets = offsets[:n_diags]
-
-            diagonals = [np.random.rand(n - abs(q)) for q in offsets]
-
-            mat = construct.diags(diagonals, offsets=offsets)
-            dense_mat = sum([np.diag(x, j) for x, j in zip(diagonals, offsets)])
-
-            assert_array_almost_equal_nulp(mat.toarray(), dense_mat)
-
-            if len(offsets) == 1:
-                mat = construct.diags(diagonals[0], offsets=offsets[0])
-                dense_mat = np.diag(diagonals[0], offsets[0])
-                assert_array_almost_equal_nulp(mat.toarray(), dense_mat)
-
-    def test_diags_dtype(self):
-        x = construct.diags([2.2], offsets=[0], shape=(2, 2), dtype=int)
-        assert_equal(x.dtype, int)
-        assert_equal(x.toarray(), [[2, 0], [0, 2]])
-
-    def test_diags_one_diagonal(self):
-        d = list(range(5))
-        for k in range(-5, 6):
-            assert_equal(construct.diags(d, offsets=k).toarray(),
-                         construct.diags([d], offsets=[k]).toarray())
-
-    def test_diags_empty(self):
-        x = construct.diags([])
-        assert_equal(x.shape, (0, 0))
-
-    @pytest.mark.parametrize("identity", [construct.identity, construct.eye_array])
-    def test_identity(self, identity):
-        assert_equal(identity(1).toarray(), [[1]])
-        assert_equal(identity(2).toarray(), [[1,0],[0,1]])
-
-        I = identity(3, dtype='int8', format='dia')
-        assert_equal(I.dtype, np.dtype('int8'))
-        assert_equal(I.format, 'dia')
-
-        for fmt in sparse_formats:
-            I = identity(3, format=fmt)
-            assert_equal(I.format, fmt)
-            assert_equal(I.toarray(), [[1,0,0],[0,1,0],[0,0,1]])
-
-    @pytest.mark.parametrize("eye", [construct.eye, construct.eye_array])
-    def test_eye(self, eye):
-        assert_equal(eye(1,1).toarray(), [[1]])
-        assert_equal(eye(2,3).toarray(), [[1,0,0],[0,1,0]])
-        assert_equal(eye(3,2).toarray(), [[1,0],[0,1],[0,0]])
-        assert_equal(eye(3,3).toarray(), [[1,0,0],[0,1,0],[0,0,1]])
-
-        assert_equal(eye(3,3,dtype='int16').dtype, np.dtype('int16'))
-
-        for m in [3, 5]:
-            for n in [3, 5]:
-                for k in range(-5,6):
-                    # scipy.sparse.eye deviates from np.eye here. np.eye will
-                    # create arrays of all 0's when the diagonal offset is
-                    # greater than the size of the array. For sparse arrays
-                    # this makes less sense, especially as it results in dia
-                    # arrays with negative diagonals. Therefore sp.sparse.eye
-                    # validates that diagonal offsets fall within the shape of
-                    # the array. See gh-18555.
-                    if (k > 0 and k > n) or (k < 0 and abs(k) > m):
-                        with pytest.raises(
-                            ValueError, match="Offset.*out of bounds"
-                        ):
-                            eye(m, n, k=k)
-
-                    else:
-                        assert_equal(
-                            eye(m, n, k=k).toarray(),
-                            np.eye(m, n, k=k)
-                        )
-                        if m == n:
-                            assert_equal(
-                                eye(m, k=k).toarray(),
-                                np.eye(m, n, k=k)
-                            )
-
-    @pytest.mark.parametrize("eye", [construct.eye, construct.eye_array])
-    def test_eye_one(self, eye):
-        assert_equal(eye(1).toarray(), [[1]])
-        assert_equal(eye(2).toarray(), [[1,0],[0,1]])
-
-        I = eye(3, dtype='int8', format='dia')
-        assert_equal(I.dtype, np.dtype('int8'))
-        assert_equal(I.format, 'dia')
-
-        for fmt in sparse_formats:
-            I = eye(3, format=fmt)
-            assert_equal(I.format, fmt)
-            assert_equal(I.toarray(), [[1,0,0],[0,1,0],[0,0,1]])
-
-    def test_eye_array_vs_matrix(self):
-        assert isinstance(construct.eye_array(3), sparray)
-        assert not isinstance(construct.eye(3), sparray)
-
-    def test_kron(self):
-        cases = []
-
-        cases.append(array([[0]]))
-        cases.append(array([[-1]]))
-        cases.append(array([[4]]))
-        cases.append(array([[10]]))
-        cases.append(array([[0],[0]]))
-        cases.append(array([[0,0]]))
-        cases.append(array([[1,2],[3,4]]))
-        cases.append(array([[0,2],[5,0]]))
-        cases.append(array([[0,2,-6],[8,0,14]]))
-        cases.append(array([[5,4],[0,0],[6,0]]))
-        cases.append(array([[5,4,4],[1,0,0],[6,0,8]]))
-        cases.append(array([[0,1,0,2,0,5,8]]))
-        cases.append(array([[0.5,0.125,0,3.25],[0,2.5,0,0]]))
-
-        # test all cases with some formats
-        for a in cases:
-            ca = csr_array(a)
-            for b in cases:
-                cb = csr_array(b)
-                expected = np.kron(a, b)
-                for fmt in sparse_formats[1:4]:
-                    result = construct.kron(ca, cb, format=fmt)
-                    assert_equal(result.format, fmt)
-                    assert_array_equal(result.toarray(), expected)
-                    assert isinstance(result, sparray)
-
-        # test one case with all formats
-        a = cases[-1]
-        b = cases[-3]
-        ca = csr_array(a)
-        cb = csr_array(b)
-
-        expected = np.kron(a, b)
-        for fmt in sparse_formats:
-            result = construct.kron(ca, cb, format=fmt)
-            assert_equal(result.format, fmt)
-            assert_array_equal(result.toarray(), expected)
-            assert isinstance(result, sparray)
-
-        # check that spmatrix returned when both inputs are spmatrix
-        result = construct.kron(csr_matrix(a), csr_matrix(b), format=fmt)
-        assert_equal(result.format, fmt)
-        assert_array_equal(result.toarray(), expected)
-        assert isinstance(result, spmatrix)
-
-    def test_kron_ndim_exceptions(self):
-        with pytest.raises(ValueError, match='requires 2D input'):
-            construct.kron([[0], [1]], csr_array([0, 1]))
-        with pytest.raises(ValueError, match='requires 2D input'):
-            construct.kron(csr_array([0, 1]), [[0], [1]])
-        # no exception if sparse arrays are not input (spmatrix inferred)
-        construct.kron([[0], [1]], [0, 1])
-
-    def test_kron_large(self):
-        n = 2**16
-        a = construct.diags_array([1], shape=(1, n), offsets=n-1)
-        b = construct.diags_array([1], shape=(n, 1), offsets=1-n)
-
-        construct.kron(a, a)
-        construct.kron(b, b)
-
-    def test_kronsum(self):
-        cases = []
-
-        cases.append(array([[0]]))
-        cases.append(array([[-1]]))
-        cases.append(array([[4]]))
-        cases.append(array([[10]]))
-        cases.append(array([[1,2],[3,4]]))
-        cases.append(array([[0,2],[5,0]]))
-        cases.append(array([[0,2,-6],[8,0,14],[0,3,0]]))
-        cases.append(array([[1,0,0],[0,5,-1],[4,-2,8]]))
-
-        # test all cases with default format
-        for a in cases:
-            for b in cases:
-                result = construct.kronsum(csr_array(a), csr_array(b)).toarray()
-                expected = (np.kron(np.eye(b.shape[0]), a)
-                            + np.kron(b, np.eye(a.shape[0])))
-                assert_array_equal(result, expected)
-
-        # check that spmatrix returned when both inputs are spmatrix
-        result = construct.kronsum(csr_matrix(a), csr_matrix(b)).toarray()
-        assert_array_equal(result, expected)
-
-    def test_kronsum_ndim_exceptions(self):
-        with pytest.raises(ValueError, match='requires 2D input'):
-            construct.kronsum([[0], [1]], csr_array([0, 1]))
-        with pytest.raises(ValueError, match='requires 2D input'):
-            construct.kronsum(csr_array([0, 1]), [[0], [1]])
-        # no exception if sparse arrays are not input (spmatrix inferred)
-        construct.kronsum([[0, 1], [1, 0]], [2])
-
-    @pytest.mark.parametrize("coo_cls", [coo_matrix, coo_array])
-    def test_vstack(self, coo_cls):
-        A = coo_cls([[1,2],[3,4]])
-        B = coo_cls([[5,6]])
-
-        expected = array([[1, 2],
-                          [3, 4],
-                          [5, 6]])
-        assert_equal(construct.vstack([A, B]).toarray(), expected)
-        assert_equal(construct.vstack([A, B], dtype=np.float32).dtype,
-                     np.float32)
-
-        assert_equal(construct.vstack([A.todok(), B.todok()]).toarray(), expected)
-
-        assert_equal(construct.vstack([A.tocsr(), B.tocsr()]).toarray(),
-                     expected)
-        result = construct.vstack([A.tocsr(), B.tocsr()],
-                                  format="csr", dtype=np.float32)
-        assert_equal(result.dtype, np.float32)
-        assert_equal(result.indices.dtype, np.int32)
-        assert_equal(result.indptr.dtype, np.int32)
-
-        assert_equal(construct.vstack([A.tocsc(), B.tocsc()]).toarray(),
-                     expected)
-        result = construct.vstack([A.tocsc(), B.tocsc()],
-                                  format="csc", dtype=np.float32)
-        assert_equal(result.dtype, np.float32)
-        assert_equal(result.indices.dtype, np.int32)
-        assert_equal(result.indptr.dtype, np.int32)
-
-    def test_vstack_matrix_or_array(self):
-        A = [[1,2],[3,4]]
-        B = [[5,6]]
-        assert isinstance(construct.vstack([coo_array(A), coo_array(B)]), sparray)
-        assert isinstance(construct.vstack([coo_array(A), coo_matrix(B)]), sparray)
-        assert isinstance(construct.vstack([coo_matrix(A), coo_array(B)]), sparray)
-        assert isinstance(construct.vstack([coo_matrix(A), coo_matrix(B)]), spmatrix)
-
-    def test_vstack_1d_with_2d(self):
-        # fixes gh-21064
-        arr = csr_array([[1, 0, 0], [0, 1, 0]])
-        arr1d = csr_array([1, 0, 0])
-        arr1dcoo = coo_array([1, 0, 0])
-        assert construct.vstack([arr, np.array([0, 0, 0])]).shape == (3, 3)
-        assert construct.hstack([arr1d, np.array([[0]])]).shape == (1, 4)
-        assert construct.hstack([arr1d, arr1d]).shape == (1, 6)
-        assert construct.vstack([arr1d, arr1d]).shape == (2, 3)
-
-        # check csr specialty stacking code like _stack_along_minor_axis
-        assert construct.hstack([arr, arr]).shape == (2, 6)
-        assert construct.hstack([arr1d, arr1d]).shape == (1, 6)
-
-        assert construct.hstack([arr1d, arr1dcoo]).shape == (1, 6)
-        assert construct.vstack([arr, arr1dcoo]).shape == (3, 3)
-        assert construct.vstack([arr1d, arr1dcoo]).shape == (2, 3)
-
-        with pytest.raises(ValueError, match="incompatible row dimensions"):
-            construct.hstack([arr, np.array([0, 0])])
-        with pytest.raises(ValueError, match="incompatible column dimensions"):
-            construct.vstack([arr, np.array([0, 0])])
-
-    @pytest.mark.parametrize("coo_cls", [coo_matrix, coo_array])
-    def test_hstack(self, coo_cls):
-        A = coo_cls([[1,2],[3,4]])
-        B = coo_cls([[5],[6]])
-
-        expected = array([[1, 2, 5],
-                          [3, 4, 6]])
-        assert_equal(construct.hstack([A, B]).toarray(), expected)
-        assert_equal(construct.hstack([A, B], dtype=np.float32).dtype,
-                     np.float32)
-
-        assert_equal(construct.hstack([A.todok(), B.todok()]).toarray(), expected)
-
-        assert_equal(construct.hstack([A.tocsc(), B.tocsc()]).toarray(),
-                     expected)
-        assert_equal(construct.hstack([A.tocsc(), B.tocsc()],
-                                      dtype=np.float32).dtype,
-                     np.float32)
-        assert_equal(construct.hstack([A.tocsr(), B.tocsr()]).toarray(),
-                     expected)
-        assert_equal(construct.hstack([A.tocsr(), B.tocsr()],
-                                      dtype=np.float32).dtype,
-                     np.float32)
-
-    def test_hstack_matrix_or_array(self):
-        A = [[1,2],[3,4]]
-        B = [[5],[6]]
-        assert isinstance(construct.hstack([coo_array(A), coo_array(B)]), sparray)
-        assert isinstance(construct.hstack([coo_array(A), coo_matrix(B)]), sparray)
-        assert isinstance(construct.hstack([coo_matrix(A), coo_array(B)]), sparray)
-        assert isinstance(construct.hstack([coo_matrix(A), coo_matrix(B)]), spmatrix)
-
-    @pytest.mark.parametrize("block_array", (construct.bmat, construct.block_array))
-    def test_block_creation(self, block_array):
-
-        A = coo_array([[1, 2], [3, 4]])
-        B = coo_array([[5],[6]])
-        C = coo_array([[7]])
-        D = coo_array((0, 0))
-
-        expected = array([[1, 2, 5],
-                          [3, 4, 6],
-                          [0, 0, 7]])
-        assert_equal(block_array([[A, B], [None, C]]).toarray(), expected)
-        E = csr_array((1, 2), dtype=np.int32)
-        assert_equal(block_array([[A.tocsr(), B.tocsr()],
-                                  [E, C.tocsr()]]).toarray(),
-                     expected)
-        assert_equal(block_array([[A.tocsc(), B.tocsc()],
-                                  [E.tocsc(), C.tocsc()]]).toarray(),
-                     expected)
-
-        expected = array([[1, 2, 0],
-                          [3, 4, 0],
-                          [0, 0, 7]])
-        assert_equal(block_array([[A, None], [None, C]]).toarray(), expected)
-        assert_equal(block_array([[A.tocsr(), E.T.tocsr()],
-                                  [E, C.tocsr()]]).toarray(),
-                     expected)
-        assert_equal(block_array([[A.tocsc(), E.T.tocsc()],
-                                  [E.tocsc(), C.tocsc()]]).toarray(),
-                     expected)
-
-        Z = csr_array((1, 1), dtype=np.int32)
-        expected = array([[0, 5],
-                          [0, 6],
-                          [7, 0]])
-        assert_equal(block_array([[None, B], [C, None]]).toarray(), expected)
-        assert_equal(block_array([[E.T.tocsr(), B.tocsr()],
-                                  [C.tocsr(), Z]]).toarray(),
-                     expected)
-        assert_equal(block_array([[E.T.tocsc(), B.tocsc()],
-                                  [C.tocsc(), Z.tocsc()]]).toarray(),
-                     expected)
-
-        expected = np.empty((0, 0))
-        assert_equal(block_array([[None, None]]).toarray(), expected)
-        assert_equal(block_array([[None, D], [D, None]]).toarray(),
-                     expected)
-
-        # test bug reported in gh-5976
-        expected = array([[7]])
-        assert_equal(block_array([[None, D], [C, None]]).toarray(),
-                     expected)
-
-        # test failure cases
-        with assert_raises(ValueError) as excinfo:
-            block_array([[A], [B]])
-        excinfo.match(r'Got blocks\[1,0\]\.shape\[1\] == 1, expected 2')
-
-        with assert_raises(ValueError) as excinfo:
-            block_array([[A.tocsr()], [B.tocsr()]])
-        excinfo.match(r'incompatible dimensions for axis 1')
-
-        with assert_raises(ValueError) as excinfo:
-            block_array([[A.tocsc()], [B.tocsc()]])
-        excinfo.match(r'Mismatching dimensions along axis 1: ({1, 2}|{2, 1})')
-
-        with assert_raises(ValueError) as excinfo:
-            block_array([[A, C]])
-        excinfo.match(r'Got blocks\[0,1\]\.shape\[0\] == 1, expected 2')
-
-        with assert_raises(ValueError) as excinfo:
-            block_array([[A.tocsr(), C.tocsr()]])
-        excinfo.match(r'Mismatching dimensions along axis 0: ({1, 2}|{2, 1})')
-
-        with assert_raises(ValueError) as excinfo:
-            block_array([[A.tocsc(), C.tocsc()]])
-        excinfo.match(r'incompatible dimensions for axis 0')
-
-    def test_block_return_type(self):
-        block = construct.block_array
-
-        # csr format ensures we hit _compressed_sparse_stack
-        # shape of F,G ensure we hit _stack_along_minor_axis
-        # list version ensure we hit the path with neither helper function
-        Fl, Gl = [[1, 2],[3, 4]], [[7], [5]]
-        Fm, Gm = csr_matrix(Fl), csr_matrix(Gl)
-        assert isinstance(block([[None, Fl], [Gl, None]], format="csr"), sparray)
-        assert isinstance(block([[None, Fm], [Gm, None]], format="csr"), sparray)
-        assert isinstance(block([[Fm, Gm]], format="csr"), sparray)
-
-    def test_bmat_return_type(self):
-        """This can be removed after sparse matrix is removed"""
-        bmat = construct.bmat
-        # check return type. if any input _is_array output array, else matrix
-        Fl, Gl = [[1, 2],[3, 4]], [[7], [5]]
-        Fm, Gm = csr_matrix(Fl), csr_matrix(Gl)
-        Fa, Ga = csr_array(Fl), csr_array(Gl)
-        assert isinstance(bmat([[Fa, Ga]], format="csr"), sparray)
-        assert isinstance(bmat([[Fm, Gm]], format="csr"), spmatrix)
-        assert isinstance(bmat([[None, Fa], [Ga, None]], format="csr"), sparray)
-        assert isinstance(bmat([[None, Fm], [Ga, None]], format="csr"), sparray)
-        assert isinstance(bmat([[None, Fm], [Gm, None]], format="csr"), spmatrix)
-        assert isinstance(bmat([[None, Fl], [Gl, None]], format="csr"), spmatrix)
-
-        # type returned by _compressed_sparse_stack (all csr)
-        assert isinstance(bmat([[Ga, Ga]], format="csr"), sparray)
-        assert isinstance(bmat([[Gm, Ga]], format="csr"), sparray)
-        assert isinstance(bmat([[Ga, Gm]], format="csr"), sparray)
-        assert isinstance(bmat([[Gm, Gm]], format="csr"), spmatrix)
-        # shape is 2x2 so no _stack_along_minor_axis
-        assert isinstance(bmat([[Fa, Fm]], format="csr"), sparray)
-        assert isinstance(bmat([[Fm, Fm]], format="csr"), spmatrix)
-
-        # type returned by _compressed_sparse_stack (all csc)
-        assert isinstance(bmat([[Gm.tocsc(), Ga.tocsc()]], format="csc"), sparray)
-        assert isinstance(bmat([[Gm.tocsc(), Gm.tocsc()]], format="csc"), spmatrix)
-        # shape is 2x2 so no _stack_along_minor_axis
-        assert isinstance(bmat([[Fa.tocsc(), Fm.tocsc()]], format="csr"), sparray)
-        assert isinstance(bmat([[Fm.tocsc(), Fm.tocsc()]], format="csr"), spmatrix)
-
-        # type returned when mixed input
-        assert isinstance(bmat([[Gl, Ga]], format="csr"), sparray)
-        assert isinstance(bmat([[Gm.tocsc(), Ga]], format="csr"), sparray)
-        assert isinstance(bmat([[Gm.tocsc(), Gm]], format="csr"), spmatrix)
-        assert isinstance(bmat([[Gm, Gm]], format="csc"), spmatrix)
-
-    @pytest.mark.slow
-    @pytest.mark.xfail_on_32bit("Can't create large array for test")
-    def test_concatenate_int32_overflow(self):
-        """ test for indptr overflow when concatenating matrices """
-        check_free_memory(30000)
-
-        n = 33000
-        A = csr_array(np.ones((n, n), dtype=bool))
-        B = A.copy()
-        C = construct._compressed_sparse_stack((A, B), axis=0,
-                                               return_spmatrix=False)
-
-        assert_(np.all(np.equal(np.diff(C.indptr), n)))
-        assert_equal(C.indices.dtype, np.int64)
-        assert_equal(C.indptr.dtype, np.int64)
-
-    def test_block_diag_basic(self):
-        """ basic test for block_diag """
-        A = coo_array([[1,2],[3,4]])
-        B = coo_array([[5],[6]])
-        C = coo_array([[7]])
-
-        expected = array([[1, 2, 0, 0],
-                          [3, 4, 0, 0],
-                          [0, 0, 5, 0],
-                          [0, 0, 6, 0],
-                          [0, 0, 0, 7]])
-
-        assert_equal(construct.block_diag((A, B, C)).toarray(), expected)
-
-    def test_block_diag_scalar_1d_args(self):
-        """ block_diag with scalar and 1d arguments """
-        # one 1d matrix and a scalar
-        assert_array_equal(construct.block_diag([[2,3], 4]).toarray(),
-                           [[2, 3, 0], [0, 0, 4]])
-        # 1d sparse arrays
-        A = coo_array([1,0,3])
-        B = coo_array([0,4])
-        assert_array_equal(construct.block_diag([A, B]).toarray(),
-                           [[1, 0, 3, 0, 0], [0, 0, 0, 0, 4]])
-
-
-    def test_block_diag_1(self):
-        """ block_diag with one matrix """
-        assert_equal(construct.block_diag([[1, 0]]).toarray(),
-                     array([[1, 0]]))
-        assert_equal(construct.block_diag([[[1, 0]]]).toarray(),
-                     array([[1, 0]]))
-        assert_equal(construct.block_diag([[[1], [0]]]).toarray(),
-                     array([[1], [0]]))
-        # just on scalar
-        assert_equal(construct.block_diag([1]).toarray(),
-                     array([[1]]))
-
-    def test_block_diag_sparse_arrays(self):
-        """ block_diag with sparse arrays """
-
-        A = coo_array([[1, 2, 3]], shape=(1, 3))
-        B = coo_array([[4, 5]], shape=(1, 2))
-        assert_equal(construct.block_diag([A, B]).toarray(),
-                     array([[1, 2, 3, 0, 0], [0, 0, 0, 4, 5]]))
-
-        A = coo_array([[1], [2], [3]], shape=(3, 1))
-        B = coo_array([[4], [5]], shape=(2, 1))
-        assert_equal(construct.block_diag([A, B]).toarray(),
-                     array([[1, 0], [2, 0], [3, 0], [0, 4], [0, 5]]))
-
-    def test_block_diag_return_type(self):
-        A, B = coo_array([[1, 2, 3]]), coo_matrix([[2, 3, 4]])
-        assert isinstance(construct.block_diag([A, A]), sparray)
-        assert isinstance(construct.block_diag([A, B]), sparray)
-        assert isinstance(construct.block_diag([B, A]), sparray)
-        assert isinstance(construct.block_diag([B, B]), spmatrix)
-
-    def test_random_sampling(self):
-        # Simple sanity checks for sparse random sampling.
-        for f in sprand, _sprandn:
-            for t in [np.float32, np.float64, np.longdouble,
-                      np.int32, np.int64, np.complex64, np.complex128]:
-                x = f(5, 10, density=0.1, dtype=t)
-                assert_equal(x.dtype, t)
-                assert_equal(x.shape, (5, 10))
-                assert_equal(x.nnz, 5)
-
-            x1 = f(5, 10, density=0.1, random_state=4321)
-            assert_equal(x1.dtype, np.float64)
-
-            x2 = f(5, 10, density=0.1,
-                   random_state=np.random.RandomState(4321))
-
-            assert_array_equal(x1.data, x2.data)
-            assert_array_equal(x1.row, x2.row)
-            assert_array_equal(x1.col, x2.col)
-
-            for density in [0.0, 0.1, 0.5, 1.0]:
-                x = f(5, 10, density=density)
-                assert_equal(x.nnz, int(density * np.prod(x.shape)))
-
-            for fmt in ['coo', 'csc', 'csr', 'lil']:
-                x = f(5, 10, format=fmt)
-                assert_equal(x.format, fmt)
-
-            assert_raises(ValueError, lambda: f(5, 10, 1.1))
-            assert_raises(ValueError, lambda: f(5, 10, -0.1))
-
-    def test_rand(self):
-        # Simple distributional checks for sparse.rand.
-        random_states = [None, 4321, np.random.RandomState()]
-        try:
-            gen = np.random.default_rng()
-            random_states.append(gen)
-        except AttributeError:
-            pass
-
-        for random_state in random_states:
-            x = sprand(10, 20, density=0.5, dtype=np.float64,
-                       random_state=random_state)
-            assert_(np.all(np.less_equal(0, x.data)))
-            assert_(np.all(np.less_equal(x.data, 1)))
-
-    def test_randn(self):
-        # Simple distributional checks for sparse.randn.
-        # Statistically, some of these should be negative
-        # and some should be greater than 1.
-        random_states = [None, 4321, np.random.RandomState()]
-        try:
-            gen = np.random.default_rng()
-            random_states.append(gen)
-        except AttributeError:
-            pass
-
-        for rs in random_states:
-            x = _sprandn(10, 20, density=0.5, dtype=np.float64, random_state=rs)
-            assert_(np.any(np.less(x.data, 0)))
-            assert_(np.any(np.less(1, x.data)))
-            x = _sprandn_array(10, 20, density=0.5, dtype=np.float64, random_state=rs)
-            assert_(np.any(np.less(x.data, 0)))
-            assert_(np.any(np.less(1, x.data)))
-
-    def test_random_accept_str_dtype(self):
-        # anything that np.dtype can convert to a dtype should be accepted
-        # for the dtype
-        construct.random(10, 10, dtype='d')
-        construct.random_array((10, 10), dtype='d')
-
-    def test_random_sparse_matrix_returns_correct_number_of_non_zero_elements(self):
-        # A 10 x 10 matrix, with density of 12.65%, should have 13 nonzero elements.
-        # 10 x 10 x 0.1265 = 12.65, which should be rounded up to 13, not 12.
-        sparse_matrix = construct.random(10, 10, density=0.1265)
-        assert_equal(sparse_matrix.count_nonzero(),13)
-        # check random_array
-        sparse_array = construct.random_array((10, 10), density=0.1265)
-        assert_equal(sparse_array.count_nonzero(),13)
-        assert isinstance(sparse_array, sparray)
-        # check big size
-        shape = (2**33, 2**33)
-        sparse_array = construct.random_array(shape, density=2.7105e-17)
-        assert_equal(sparse_array.count_nonzero(),2000)
-
-
-def test_diags_array():
-    """Tests of diags_array that do not rely on diags wrapper."""
-    diag = np.arange(1, 5)
-
-    assert_array_equal(construct.diags_array(diag).toarray(), np.diag(diag))
-
-    assert_array_equal(
-        construct.diags_array(diag, offsets=2).toarray(), np.diag(diag, k=2)
-    )
-
-    assert_array_equal(
-        construct.diags_array(diag, offsets=2, shape=(4, 4)).toarray(),
-        np.diag(diag, k=2)[:4, :4]
-    )
-
-    # Offset outside bounds when shape specified
-    with pytest.raises(ValueError, match=".*out of bounds"):
-        construct.diags(np.arange(1, 5), 5, shape=(4, 4))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_coo.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_coo.py
deleted file mode 100644
index ec00e11229132c830a64e4b1477f55ab684eda10..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_coo.py
+++ /dev/null
@@ -1,274 +0,0 @@
-import numpy as np
-from numpy.testing import assert_equal
-import pytest
-from scipy.sparse import coo_array
-
-
-def test_shape_constructor():
-    empty1d = coo_array((3,))
-    assert empty1d.shape == (3,)
-    assert_equal(empty1d.toarray(), np.zeros((3,)))
-
-    empty2d = coo_array((3, 2))
-    assert empty2d.shape == (3, 2)
-    assert_equal(empty2d.toarray(), np.zeros((3, 2)))
-
-    with pytest.raises(TypeError, match='invalid input format'):
-        coo_array((3, 2, 2))
-
-
-def test_dense_constructor():
-    res1d = coo_array([1, 2, 3])
-    assert res1d.shape == (3,)
-    assert_equal(res1d.toarray(), np.array([1, 2, 3]))
-
-    res2d = coo_array([[1, 2, 3], [4, 5, 6]])
-    assert res2d.shape == (2, 3)
-    assert_equal(res2d.toarray(), np.array([[1, 2, 3], [4, 5, 6]]))
-
-    with pytest.raises(ValueError, match='shape must be a 1- or 2-tuple'):
-        coo_array([[[3]], [[4]]])
-
-
-def test_dense_constructor_with_shape():
-    res1d = coo_array([1, 2, 3], shape=(3,))
-    assert res1d.shape == (3,)
-    assert_equal(res1d.toarray(), np.array([1, 2, 3]))
-
-    res2d = coo_array([[1, 2, 3], [4, 5, 6]], shape=(2, 3))
-    assert res2d.shape == (2, 3)
-    assert_equal(res2d.toarray(), np.array([[1, 2, 3], [4, 5, 6]]))
-
-    with pytest.raises(ValueError, match='shape must be a 1- or 2-tuple'):
-        coo_array([[[3]], [[4]]], shape=(2, 1, 1))
-
-
-def test_dense_constructor_with_inconsistent_shape():
-    with pytest.raises(ValueError, match='inconsistent shapes'):
-        coo_array([1, 2, 3], shape=(4,))
-
-    with pytest.raises(ValueError, match='inconsistent shapes'):
-        coo_array([1, 2, 3], shape=(3, 1))
-
-    with pytest.raises(ValueError, match='inconsistent shapes'):
-        coo_array([[1, 2, 3]], shape=(3,))
-
-    with pytest.raises(ValueError,
-                       match='axis 0 index 2 exceeds matrix dimension 2'):
-        coo_array(([1], ([2],)), shape=(2,))
-
-    with pytest.raises(ValueError, match='negative axis 0 index: -1'):
-        coo_array(([1], ([-1],)))
-
-
-def test_1d_sparse_constructor():
-    empty1d = coo_array((3,))
-    res = coo_array(empty1d)
-    assert res.shape == (3,)
-    assert_equal(res.toarray(), np.zeros((3,)))
-
-
-def test_1d_tuple_constructor():
-    res = coo_array(([9,8], ([1,2],)))
-    assert res.shape == (3,)
-    assert_equal(res.toarray(), np.array([0, 9, 8]))
-
-
-def test_1d_tuple_constructor_with_shape():
-    res = coo_array(([9,8], ([1,2],)), shape=(4,))
-    assert res.shape == (4,)
-    assert_equal(res.toarray(), np.array([0, 9, 8, 0]))
-
-def test_non_subscriptability():
-    coo_2d = coo_array((2, 2))
-
-    with pytest.raises(TypeError,
-                        match="'coo_array' object does not support item assignment"):
-        coo_2d[0, 0] = 1
-
-    with pytest.raises(TypeError,
-                       match="'coo_array' object is not subscriptable"):
-        coo_2d[0, :]
-
-def test_reshape():
-    arr1d = coo_array([1, 0, 3])
-    assert arr1d.shape == (3,)
-
-    col_vec = arr1d.reshape((3, 1))
-    assert col_vec.shape == (3, 1)
-    assert_equal(col_vec.toarray(), np.array([[1], [0], [3]]))
-
-    row_vec = arr1d.reshape((1, 3))
-    assert row_vec.shape == (1, 3)
-    assert_equal(row_vec.toarray(), np.array([[1, 0, 3]]))
-
-    arr2d = coo_array([[1, 2, 0], [0, 0, 3]])
-    assert arr2d.shape == (2, 3)
-
-    flat = arr2d.reshape((6,))
-    assert flat.shape == (6,)
-    assert_equal(flat.toarray(), np.array([1, 2, 0, 0, 0, 3]))
-
-
-def test_nnz():
-    arr1d = coo_array([1, 0, 3])
-    assert arr1d.shape == (3,)
-    assert arr1d.nnz == 2
-
-    arr2d = coo_array([[1, 2, 0], [0, 0, 3]])
-    assert arr2d.shape == (2, 3)
-    assert arr2d.nnz == 3
-
-
-def test_transpose():
-    arr1d = coo_array([1, 0, 3]).T
-    assert arr1d.shape == (3,)
-    assert_equal(arr1d.toarray(), np.array([1, 0, 3]))
-
-    arr2d = coo_array([[1, 2, 0], [0, 0, 3]]).T
-    assert arr2d.shape == (3, 2)
-    assert_equal(arr2d.toarray(), np.array([[1, 0], [2, 0], [0, 3]]))
-
-
-def test_transpose_with_axis():
-    arr1d = coo_array([1, 0, 3]).transpose(axes=(0,))
-    assert arr1d.shape == (3,)
-    assert_equal(arr1d.toarray(), np.array([1, 0, 3]))
-
-    arr2d = coo_array([[1, 2, 0], [0, 0, 3]]).transpose(axes=(0, 1))
-    assert arr2d.shape == (2, 3)
-    assert_equal(arr2d.toarray(), np.array([[1, 2, 0], [0, 0, 3]]))
-
-    with pytest.raises(ValueError, match="axes don't match matrix dimensions"):
-        coo_array([1, 0, 3]).transpose(axes=(0, 1))
-
-    with pytest.raises(ValueError, match="repeated axis in transpose"):
-        coo_array([[1, 2, 0], [0, 0, 3]]).transpose(axes=(1, 1))
-
-
-def test_1d_row_and_col():
-    res = coo_array([1, -2, -3])
-    assert_equal(res.col, np.array([0, 1, 2]))
-    assert_equal(res.row, np.zeros_like(res.col))
-    assert res.row.dtype == res.col.dtype
-    assert res.row.flags.writeable is False
-
-    res.col = [1, 2, 3]
-    assert len(res.coords) == 1
-    assert_equal(res.col, np.array([1, 2, 3]))
-    assert res.row.dtype == res.col.dtype
-
-    with pytest.raises(ValueError, match="cannot set row attribute"):
-        res.row = [1, 2, 3]
-
-
-def test_1d_toformats():
-    res = coo_array([1, -2, -3])
-    for f in [res.tobsr, res.tocsc, res.todia, res.tolil]:
-        with pytest.raises(ValueError, match='Cannot convert'):
-            f()
-    for f in [res.tocoo, res.tocsr, res.todok]:
-        assert_equal(f().toarray(), res.toarray())
-
-
-@pytest.mark.parametrize('arg', [1, 2, 4, 5, 8])
-def test_1d_resize(arg: int):
-    den = np.array([1, -2, -3])
-    res = coo_array(den)
-    den.resize(arg, refcheck=False)
-    res.resize(arg)
-    assert res.shape == den.shape
-    assert_equal(res.toarray(), den)
-
-
-@pytest.mark.parametrize('arg', zip([1, 2, 3, 4], [1, 2, 3, 4]))
-def test_1d_to_2d_resize(arg: tuple[int, int]):
-    den = np.array([1, 0, 3])
-    res = coo_array(den)
-
-    den.resize(arg, refcheck=False)
-    res.resize(arg)
-    assert res.shape == den.shape
-    assert_equal(res.toarray(), den)
-
-
-@pytest.mark.parametrize('arg', [1, 4, 6, 8])
-def test_2d_to_1d_resize(arg: int):
-    den = np.array([[1, 0, 3], [4, 0, 0]])
-    res = coo_array(den)
-    den.resize(arg, refcheck=False)
-    res.resize(arg)
-    assert res.shape == den.shape
-    assert_equal(res.toarray(), den)
-
-
-def test_sum_duplicates():
-    arr1d = coo_array(([2, 2, 2], ([1, 0, 1],)))
-    assert arr1d.nnz == 3
-    assert_equal(arr1d.toarray(), np.array([2, 4]))
-    arr1d.sum_duplicates()
-    assert arr1d.nnz == 2
-    assert_equal(arr1d.toarray(), np.array([2, 4]))
-
-
-def test_eliminate_zeros():
-    arr1d = coo_array(([0, 0, 1], ([1, 0, 1],)))
-    assert arr1d.nnz == 3
-    assert arr1d.count_nonzero() == 1
-    assert_equal(arr1d.toarray(), np.array([0, 1]))
-    arr1d.eliminate_zeros()
-    assert arr1d.nnz == 1
-    assert arr1d.count_nonzero() == 1
-    assert_equal(arr1d.toarray(), np.array([0, 1]))
-    assert_equal(arr1d.col, np.array([1]))
-    assert_equal(arr1d.row, np.array([0]))
-
-
-def test_1d_add_dense():
-    den_a = np.array([0, -2, -3, 0])
-    den_b = np.array([0, 1, 2, 3])
-    exp = den_a + den_b
-    res = coo_array(den_a) + den_b
-    assert type(res) == type(exp)
-    assert_equal(res, exp)
-
-
-def test_1d_add_sparse():
-    den_a = np.array([0, -2, -3, 0])
-    den_b = np.array([0, 1, 2, 3])
-    dense_sum = den_a + den_b
-    # this routes through CSR format
-    sparse_sum = coo_array(den_a) + coo_array(den_b)
-    assert_equal(dense_sum, sparse_sum.toarray())
-
-
-def test_1d_matmul_vector():
-    den_a = np.array([0, -2, -3, 0])
-    den_b = np.array([0, 1, 2, 3])
-    exp = den_a @ den_b
-    res = coo_array(den_a) @ den_b
-    assert np.ndim(res) == 0
-    assert_equal(res, exp)
-
-
-def test_1d_matmul_multivector():
-    den = np.array([0, -2, -3, 0])
-    other = np.array([[0, 1, 2, 3], [3, 2, 1, 0]]).T
-    exp = den @ other
-    res = coo_array(den) @ other
-    assert type(res) == type(exp)
-    assert_equal(res, exp)
-
-
-def test_2d_matmul_multivector():
-    den = np.array([[0, 1, 2, 3], [3, 2, 1, 0]])
-    arr2d = coo_array(den)
-    exp = den @ den.T
-    res = arr2d @ arr2d.T
-    assert_equal(res.toarray(), exp)
-
-
-def test_1d_diagonal():
-    den = np.array([0, -2, -3, 0])
-    with pytest.raises(ValueError, match='diagonal requires two dimensions'):
-        coo_array(den).diagonal()
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_csc.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_csc.py
deleted file mode 100644
index 6313751e41899ae7c5daf01fbdbbacdc1f303fa1..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_csc.py
+++ /dev/null
@@ -1,98 +0,0 @@
-import numpy as np
-from numpy.testing import assert_array_almost_equal, assert_
-from scipy.sparse import csr_matrix, csc_matrix, lil_matrix
-
-import pytest
-
-
-def test_csc_getrow():
-    N = 10
-    np.random.seed(0)
-    X = np.random.random((N, N))
-    X[X > 0.7] = 0
-    Xcsc = csc_matrix(X)
-
-    for i in range(N):
-        arr_row = X[i:i + 1, :]
-        csc_row = Xcsc.getrow(i)
-
-        assert_array_almost_equal(arr_row, csc_row.toarray())
-        assert_(type(csc_row) is csr_matrix)
-
-
-def test_csc_getcol():
-    N = 10
-    np.random.seed(0)
-    X = np.random.random((N, N))
-    X[X > 0.7] = 0
-    Xcsc = csc_matrix(X)
-
-    for i in range(N):
-        arr_col = X[:, i:i + 1]
-        csc_col = Xcsc.getcol(i)
-
-        assert_array_almost_equal(arr_col, csc_col.toarray())
-        assert_(type(csc_col) is csc_matrix)
-
-@pytest.mark.parametrize("matrix_input, axis, expected_shape",
-    [(csc_matrix([[1, 0],
-                [0, 0],
-                [0, 2]]),
-      0, (0, 2)),
-     (csc_matrix([[1, 0],
-                [0, 0],
-                [0, 2]]),
-      1, (3, 0)),
-     (csc_matrix([[1, 0],
-                [0, 0],
-                [0, 2]]),
-      'both', (0, 0)),
-     (csc_matrix([[0, 1, 0, 0, 0, 0],
-                [0, 0, 0, 0, 0, 0],
-                [0, 0, 2, 3, 0, 1]]),
-      0, (0, 6))])
-def test_csc_empty_slices(matrix_input, axis, expected_shape):
-    # see gh-11127 for related discussion
-    slice_1 = matrix_input.toarray().shape[0] - 1
-    slice_2 = slice_1
-    slice_3 = slice_2 - 1
-
-    if axis == 0:
-        actual_shape_1 = matrix_input[slice_1:slice_2, :].toarray().shape
-        actual_shape_2 = matrix_input[slice_1:slice_3, :].toarray().shape
-    elif axis == 1:
-        actual_shape_1 = matrix_input[:, slice_1:slice_2].toarray().shape
-        actual_shape_2 = matrix_input[:, slice_1:slice_3].toarray().shape
-    elif axis == 'both':
-        actual_shape_1 = matrix_input[slice_1:slice_2, slice_1:slice_2].toarray().shape
-        actual_shape_2 = matrix_input[slice_1:slice_3, slice_1:slice_3].toarray().shape
-
-    assert actual_shape_1 == expected_shape
-    assert actual_shape_1 == actual_shape_2
-
-
-@pytest.mark.parametrize('ax', (-2, -1, 0, 1, None))
-def test_argmax_overflow(ax):
-    # See gh-13646: Windows integer overflow for large sparse matrices.
-    dim = (100000, 100000)
-    A = lil_matrix(dim)
-    A[-2, -2] = 42
-    A[-3, -3] = 0.1234
-    A = csc_matrix(A)
-    idx = A.argmax(axis=ax)
-
-    if ax is None:
-        # idx is a single flattened index
-        # that we need to convert to a 2d index pair;
-        # can't do this with np.unravel_index because
-        # the dimensions are too large
-        ii = idx % dim[0]
-        jj = idx // dim[0]
-    else:
-        # idx is an array of size of A.shape[ax];
-        # check the max index to make sure no overflows
-        # we encountered
-        assert np.count_nonzero(idx) == A.nnz
-        ii, jj = np.max(idx), np.argmax(idx)
-
-    assert A[ii, jj] == A[-2, -2]
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_csr.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_csr.py
deleted file mode 100644
index 94b64a77869458d3da7ad9f3dd993c809119ccd6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_csr.py
+++ /dev/null
@@ -1,190 +0,0 @@
-import numpy as np
-from numpy.testing import assert_array_almost_equal, assert_
-from scipy.sparse import csr_matrix, csc_matrix, csr_array, csc_array, hstack
-from scipy import sparse
-import pytest
-
-
-def _check_csr_rowslice(i, sl, X, Xcsr):
-    np_slice = X[i, sl]
-    csr_slice = Xcsr[i, sl]
-    assert_array_almost_equal(np_slice, csr_slice.toarray()[0])
-    assert_(type(csr_slice) is csr_matrix)
-
-
-def test_csr_rowslice():
-    N = 10
-    np.random.seed(0)
-    X = np.random.random((N, N))
-    X[X > 0.7] = 0
-    Xcsr = csr_matrix(X)
-
-    slices = [slice(None, None, None),
-              slice(None, None, -1),
-              slice(1, -2, 2),
-              slice(-2, 1, -2)]
-
-    for i in range(N):
-        for sl in slices:
-            _check_csr_rowslice(i, sl, X, Xcsr)
-
-
-def test_csr_getrow():
-    N = 10
-    np.random.seed(0)
-    X = np.random.random((N, N))
-    X[X > 0.7] = 0
-    Xcsr = csr_matrix(X)
-
-    for i in range(N):
-        arr_row = X[i:i + 1, :]
-        csr_row = Xcsr.getrow(i)
-
-        assert_array_almost_equal(arr_row, csr_row.toarray())
-        assert_(type(csr_row) is csr_matrix)
-
-
-def test_csr_getcol():
-    N = 10
-    np.random.seed(0)
-    X = np.random.random((N, N))
-    X[X > 0.7] = 0
-    Xcsr = csr_matrix(X)
-
-    for i in range(N):
-        arr_col = X[:, i:i + 1]
-        csr_col = Xcsr.getcol(i)
-
-        assert_array_almost_equal(arr_col, csr_col.toarray())
-        assert_(type(csr_col) is csr_matrix)
-
-@pytest.mark.parametrize("matrix_input, axis, expected_shape",
-    [(csr_matrix([[1, 0, 0, 0],
-                [0, 0, 0, 0],
-                [0, 2, 3, 0]]),
-      0, (0, 4)),
-     (csr_matrix([[1, 0, 0, 0],
-                [0, 0, 0, 0],
-                [0, 2, 3, 0]]),
-      1, (3, 0)),
-     (csr_matrix([[1, 0, 0, 0],
-                [0, 0, 0, 0],
-                [0, 2, 3, 0]]),
-      'both', (0, 0)),
-     (csr_matrix([[0, 1, 0, 0, 0],
-                [0, 0, 0, 0, 0],
-                [0, 0, 2, 3, 0]]),
-      0, (0, 5))])
-def test_csr_empty_slices(matrix_input, axis, expected_shape):
-    # see gh-11127 for related discussion
-    slice_1 = matrix_input.toarray().shape[0] - 1
-    slice_2 = slice_1
-    slice_3 = slice_2 - 1
-
-    if axis == 0:
-        actual_shape_1 = matrix_input[slice_1:slice_2, :].toarray().shape
-        actual_shape_2 = matrix_input[slice_1:slice_3, :].toarray().shape
-    elif axis == 1:
-        actual_shape_1 = matrix_input[:, slice_1:slice_2].toarray().shape
-        actual_shape_2 = matrix_input[:, slice_1:slice_3].toarray().shape
-    elif axis == 'both':
-        actual_shape_1 = matrix_input[slice_1:slice_2, slice_1:slice_2].toarray().shape
-        actual_shape_2 = matrix_input[slice_1:slice_3, slice_1:slice_3].toarray().shape
-
-    assert actual_shape_1 == expected_shape
-    assert actual_shape_1 == actual_shape_2
-
-
-def test_csr_bool_indexing():
-    data = csr_matrix([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
-    list_indices1 = [False, True, False]
-    array_indices1 = np.array(list_indices1)
-    list_indices2 = [[False, True, False], [False, True, False], [False, True, False]]
-    array_indices2 = np.array(list_indices2)
-    list_indices3 = ([False, True, False], [False, True, False])
-    array_indices3 = (np.array(list_indices3[0]), np.array(list_indices3[1]))
-    slice_list1 = data[list_indices1].toarray()
-    slice_array1 = data[array_indices1].toarray()
-    slice_list2 = data[list_indices2]
-    slice_array2 = data[array_indices2]
-    slice_list3 = data[list_indices3]
-    slice_array3 = data[array_indices3]
-    assert (slice_list1 == slice_array1).all()
-    assert (slice_list2 == slice_array2).all()
-    assert (slice_list3 == slice_array3).all()
-
-
-def test_csr_hstack_int64():
-    """
-    Tests if hstack properly promotes to indices and indptr arrays to np.int64
-    when using np.int32 during concatenation would result in either array
-    overflowing.
-    """
-    max_int32 = np.iinfo(np.int32).max
-
-    # First case: indices would overflow with int32
-    data = [1.0]
-    row = [0]
-
-    max_indices_1 = max_int32 - 1
-    max_indices_2 = 3
-
-    # Individual indices arrays are representable with int32
-    col_1 = [max_indices_1 - 1]
-    col_2 = [max_indices_2 - 1]
-
-    X_1 = csr_matrix((data, (row, col_1)))
-    X_2 = csr_matrix((data, (row, col_2)))
-
-    assert max(max_indices_1 - 1, max_indices_2 - 1) < max_int32
-    assert X_1.indices.dtype == X_1.indptr.dtype == np.int32
-    assert X_2.indices.dtype == X_2.indptr.dtype == np.int32
-
-    # ... but when concatenating their CSR matrices, the resulting indices
-    # array can't be represented with int32 and must be promoted to int64.
-    X_hs = hstack([X_1, X_2], format="csr")
-
-    assert X_hs.indices.max() == max_indices_1 + max_indices_2 - 1
-    assert max_indices_1 + max_indices_2 - 1 > max_int32
-    assert X_hs.indices.dtype == X_hs.indptr.dtype == np.int64
-
-    # Even if the matrices are empty, we must account for their size
-    # contribution so that we may safely set the final elements.
-    X_1_empty = csr_matrix(X_1.shape)
-    X_2_empty = csr_matrix(X_2.shape)
-    X_hs_empty = hstack([X_1_empty, X_2_empty], format="csr")
-
-    assert X_hs_empty.shape == X_hs.shape
-    assert X_hs_empty.indices.dtype == np.int64
-
-    # Should be just small enough to stay in int32 after stack. Note that
-    # we theoretically could support indices.max() == max_int32, but due to an
-    # edge-case in the underlying sparsetools code
-    # (namely the `coo_tocsr` routine),
-    # we require that max(X_hs_32.shape) < max_int32 as well.
-    # Hence we can only support max_int32 - 1.
-    col_3 = [max_int32 - max_indices_1 - 1]
-    X_3 = csr_matrix((data, (row, col_3)))
-    X_hs_32 = hstack([X_1, X_3], format="csr")
-    assert X_hs_32.indices.dtype == np.int32
-    assert X_hs_32.indices.max() == max_int32 - 1
-
-@pytest.mark.parametrize("cls", [csr_matrix, csr_array, csc_matrix, csc_array])
-def test_mixed_index_dtype_int_indexing(cls):
-    # https://github.com/scipy/scipy/issues/20182
-    rng = np.random.default_rng(0)
-    base_mtx = cls(sparse.random(50, 50, random_state=rng, density=0.1))
-    indptr_64bit = base_mtx.copy()
-    indices_64bit = base_mtx.copy()
-    indptr_64bit.indptr = base_mtx.indptr.astype(np.int64)
-    indices_64bit.indices = base_mtx.indices.astype(np.int64)
-
-    for mtx in [base_mtx, indptr_64bit, indices_64bit]:
-        np.testing.assert_array_equal(
-            mtx[[1,2], :].toarray(),
-            base_mtx[[1, 2], :].toarray()
-        )
-        np.testing.assert_array_equal(
-            mtx[:, [1, 2]].toarray(),
-            base_mtx[:, [1, 2]].toarray()
-        )
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_dok.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_dok.py
deleted file mode 100644
index 8823ce8a2dbcf2ff3609f4e5df266458226744c2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_dok.py
+++ /dev/null
@@ -1,210 +0,0 @@
-import pytest
-import numpy as np
-from numpy.testing import assert_equal
-import scipy as sp
-from scipy.sparse import dok_array, dok_matrix
-
-
-@pytest.fixture
-def d():
-    return {(0, 1): 1, (0, 2): 2}
-
-@pytest.fixture
-def A():
-    return np.array([[0, 1, 2], [0, 0, 0], [0, 0, 0]])
-
-@pytest.fixture(params=[dok_array, dok_matrix])
-def Asp(request):
-    A = request.param((3, 3))
-    A[(0, 1)] = 1
-    A[(0, 2)] = 2
-    yield A
-
-# Note: __iter__ and comparison dunders act like ndarrays for DOK, not dict.
-# Dunders reversed, or, ror, ior work as dict for dok_matrix, raise for dok_array
-# All other dict methods on DOK format act like dict methods (with extra checks).
-
-# Start of tests
-################
-def test_dict_methods_covered(d, Asp):
-    d_methods = set(dir(d)) - {"__class_getitem__"}
-    asp_methods = set(dir(Asp))
-    assert d_methods < asp_methods
-
-def test_clear(d, Asp):
-    assert d.items() == Asp.items()
-    d.clear()
-    Asp.clear()
-    assert d.items() == Asp.items()
-
-def test_copy(d, Asp):
-    assert d.items() == Asp.items()
-    dd = d.copy()
-    asp = Asp.copy()
-    assert dd.items() == asp.items()
-    assert asp.items() == Asp.items()
-    asp[(0, 1)] = 3
-    assert Asp[(0, 1)] == 1
-
-def test_fromkeys_default():
-    # test with default value
-    edges = [(0, 2), (1, 0), (2, 1)]
-    Xdok = dok_array.fromkeys(edges)
-    X = [[0, 0, 1], [1, 0, 0], [0, 1, 0]]
-    assert_equal(Xdok.toarray(), X)
-
-def test_fromkeys_positional():
-    # test with positional value
-    edges = [(0, 2), (1, 0), (2, 1)]
-    Xdok = dok_array.fromkeys(edges, -1)
-    X = [[0, 0, -1], [-1, 0, 0], [0, -1, 0]]
-    assert_equal(Xdok.toarray(), X)
-
-def test_fromkeys_iterator():
-    it = ((a, a % 2) for a in range(4))
-    Xdok = dok_array.fromkeys(it)
-    X = [[1, 0], [0, 1], [1, 0], [0, 1]]
-    assert_equal(Xdok.toarray(), X)
-
-def test_get(d, Asp):
-    assert Asp.get((0, 1)) == d.get((0, 1))
-    assert Asp.get((0, 0), 99) == d.get((0, 0), 99)
-    with pytest.raises(IndexError, match="out of bounds"):
-        Asp.get((0, 4), 99)
-
-def test_items(d, Asp):
-    assert Asp.items() == d.items()
-
-def test_keys(d, Asp):
-    assert Asp.keys() == d.keys()
-
-def test_pop(d, Asp):
-    assert d.pop((0, 1)) == 1
-    assert Asp.pop((0, 1)) == 1
-    assert d.items() == Asp.items()
-
-    assert Asp.pop((22, 21), None) is None
-    assert Asp.pop((22, 21), "other") == "other"
-    with pytest.raises(KeyError, match="(22, 21)"):
-        Asp.pop((22, 21))
-    with pytest.raises(TypeError, match="got an unexpected keyword argument"):
-        Asp.pop((22, 21), default=5)
-
-def test_popitem(d, Asp):
-    assert d.popitem() == Asp.popitem()
-    assert d.items() == Asp.items()
-
-def test_setdefault(d, Asp):
-    assert Asp.setdefault((0, 1), 4) == 1
-    assert Asp.setdefault((2, 2), 4) == 4
-    d.setdefault((0, 1), 4)
-    d.setdefault((2, 2), 4)
-    assert d.items() == Asp.items()
-
-def test_update(d, Asp):
-    with pytest.raises(NotImplementedError):
-        Asp.update(Asp)
-
-def test_values(d, Asp):
-    # Note: dict.values are strange: d={1: 1}; d.values() == d.values() is False
-    # Using list(d.values()) makes them comparable.
-    assert list(Asp.values()) == list(d.values())
-
-def test_dunder_getitem(d, Asp):
-    assert Asp[(0, 1)] == d[(0, 1)]
-
-def test_dunder_setitem(d, Asp):
-    Asp[(1, 1)] = 5
-    d[(1, 1)] = 5
-    assert d.items() == Asp.items()
-
-def test_dunder_delitem(d, Asp):
-    del Asp[(0, 1)]
-    del d[(0, 1)]
-    assert d.items() == Asp.items()
-
-def test_dunder_contains(d, Asp):
-    assert ((0, 1) in d) == ((0, 1) in Asp)
-    assert ((0, 0) in d) == ((0, 0) in Asp)
-
-def test_dunder_len(d, Asp):
-    assert len(d) == len(Asp)
-
-# Note: dunders reversed, or, ror, ior work as dict for dok_matrix, raise for dok_array
-def test_dunder_reversed(d, Asp):
-    if isinstance(Asp, dok_array):
-        with pytest.raises(TypeError):
-            list(reversed(Asp))
-    else:
-        list(reversed(Asp)) == list(reversed(d))
-
-def test_dunder_ior(d, Asp):
-    if isinstance(Asp, dok_array):
-        with pytest.raises(TypeError):
-            Asp |= Asp
-    else:
-        dd = {(0, 0): 5}
-        Asp |= dd
-        assert Asp[(0, 0)] == 5
-        d |= dd
-        assert d.items() == Asp.items()
-        dd |= Asp
-        assert dd.items() == Asp.items()
-
-def test_dunder_or(d, Asp):
-    if isinstance(Asp, dok_array):
-        with pytest.raises(TypeError):
-            Asp | Asp
-    else:
-        assert d | d == Asp | d
-        assert d | d == Asp | Asp
-
-def test_dunder_ror(d, Asp):
-    if isinstance(Asp, dok_array):
-        with pytest.raises(TypeError):
-            Asp | Asp
-        with pytest.raises(TypeError):
-            d | Asp
-    else:
-        assert Asp.__ror__(d) == Asp.__ror__(Asp)
-        assert d.__ror__(d) == Asp.__ror__(d)
-        assert d | Asp
-
-# Note: comparison dunders, e.g. ==, >=, etc follow np.array not dict
-def test_dunder_eq(A, Asp):
-    with np.testing.suppress_warnings() as sup:
-        sup.filter(sp.sparse.SparseEfficiencyWarning)
-        assert (Asp == Asp).toarray().all()
-        assert (A == Asp).all()
-
-def test_dunder_ne(A, Asp):
-    assert not (Asp != Asp).toarray().any()
-    assert not (A != Asp).any()
-
-def test_dunder_lt(A, Asp):
-    assert not (Asp < Asp).toarray().any()
-    assert not (A < Asp).any()
-
-def test_dunder_gt(A, Asp):
-    assert not (Asp > Asp).toarray().any()
-    assert not (A > Asp).any()
-
-def test_dunder_le(A, Asp):
-    with np.testing.suppress_warnings() as sup:
-        sup.filter(sp.sparse.SparseEfficiencyWarning)
-        assert (Asp <= Asp).toarray().all()
-        assert (A <= Asp).all()
-
-def test_dunder_ge(A, Asp):
-    with np.testing.suppress_warnings() as sup:
-        sup.filter(sp.sparse.SparseEfficiencyWarning)
-        assert (Asp >= Asp).toarray().all()
-        assert (A >= Asp).all()
-
-# Note: iter dunder follows np.array not dict
-def test_dunder_iter(A, Asp):
-    if isinstance(Asp, dok_array):
-        with pytest.raises(NotImplementedError):
-            [a.toarray() for a in Asp]
-    else:
-        assert all((a == asp).all() for a, asp in zip(A, Asp))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_extract.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_extract.py
deleted file mode 100644
index a7c9f68bb2bde76d74ca767abba3c99b89d6e771..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_extract.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""test sparse matrix construction functions"""
-
-from numpy.testing import assert_equal
-from scipy.sparse import csr_matrix, csr_array, sparray
-
-import numpy as np
-from scipy.sparse import _extract
-
-
-class TestExtract:
-    def setup_method(self):
-        self.cases = [
-            csr_array([[1,2]]),
-            csr_array([[1,0]]),
-            csr_array([[0,0]]),
-            csr_array([[1],[2]]),
-            csr_array([[1],[0]]),
-            csr_array([[0],[0]]),
-            csr_array([[1,2],[3,4]]),
-            csr_array([[0,1],[0,0]]),
-            csr_array([[0,0],[1,0]]),
-            csr_array([[0,0],[0,0]]),
-            csr_array([[1,2,0,0,3],[4,5,0,6,7],[0,0,8,9,0]]),
-            csr_array([[1,2,0,0,3],[4,5,0,6,7],[0,0,8,9,0]]).T,
-        ]
-
-    def test_find(self):
-        for A in self.cases:
-            I,J,V = _extract.find(A)
-            B = csr_array((V,(I,J)), shape=A.shape)
-            assert_equal(A.toarray(), B.toarray())
-
-    def test_tril(self):
-        for A in self.cases:
-            B = A.toarray()
-            for k in [-3,-2,-1,0,1,2,3]:
-                assert_equal(_extract.tril(A,k=k).toarray(), np.tril(B,k=k))
-
-    def test_triu(self):
-        for A in self.cases:
-            B = A.toarray()
-            for k in [-3,-2,-1,0,1,2,3]:
-                assert_equal(_extract.triu(A,k=k).toarray(), np.triu(B,k=k))
-
-    def test_array_vs_matrix(self):
-        for A in self.cases:
-            assert isinstance(_extract.tril(A), sparray)
-            assert isinstance(_extract.triu(A), sparray)
-            M = csr_matrix(A)
-            assert not isinstance(_extract.tril(M), sparray)
-            assert not isinstance(_extract.triu(M), sparray)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_matrix_io.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_matrix_io.py
deleted file mode 100644
index 90b4ea64a8928073eb5dd3f1b2752379f57327d9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_matrix_io.py
+++ /dev/null
@@ -1,109 +0,0 @@
-import os
-import numpy as np
-import tempfile
-
-from pytest import raises as assert_raises
-from numpy.testing import assert_equal, assert_
-
-from scipy.sparse import (sparray, csc_matrix, csr_matrix, bsr_matrix, dia_matrix,
-                          coo_matrix, dok_matrix, csr_array, save_npz, load_npz)
-
-
-DATA_DIR = os.path.join(os.path.dirname(__file__), 'data')
-
-
-def _save_and_load(matrix):
-    fd, tmpfile = tempfile.mkstemp(suffix='.npz')
-    os.close(fd)
-    try:
-        save_npz(tmpfile, matrix)
-        loaded_matrix = load_npz(tmpfile)
-    finally:
-        os.remove(tmpfile)
-    return loaded_matrix
-
-def _check_save_and_load(dense_matrix):
-    for matrix_class in [csc_matrix, csr_matrix, bsr_matrix, dia_matrix, coo_matrix]:
-        matrix = matrix_class(dense_matrix)
-        loaded_matrix = _save_and_load(matrix)
-        assert_(type(loaded_matrix) is matrix_class)
-        assert_(loaded_matrix.shape == dense_matrix.shape)
-        assert_(loaded_matrix.dtype == dense_matrix.dtype)
-        assert_equal(loaded_matrix.toarray(), dense_matrix)
-
-def test_save_and_load_random():
-    N = 10
-    np.random.seed(0)
-    dense_matrix = np.random.random((N, N))
-    dense_matrix[dense_matrix > 0.7] = 0
-    _check_save_and_load(dense_matrix)
-
-def test_save_and_load_empty():
-    dense_matrix = np.zeros((4,6))
-    _check_save_and_load(dense_matrix)
-
-def test_save_and_load_one_entry():
-    dense_matrix = np.zeros((4,6))
-    dense_matrix[1,2] = 1
-    _check_save_and_load(dense_matrix)
-
-def test_sparray_vs_spmatrix():
-    #save/load matrix
-    fd, tmpfile = tempfile.mkstemp(suffix='.npz')
-    os.close(fd)
-    try:
-        save_npz(tmpfile, csr_matrix([[1.2, 0, 0.9], [0, 0.3, 0]]))
-        loaded_matrix = load_npz(tmpfile)
-    finally:
-        os.remove(tmpfile)
-
-    #save/load array
-    fd, tmpfile = tempfile.mkstemp(suffix='.npz')
-    os.close(fd)
-    try:
-        save_npz(tmpfile, csr_array([[1.2, 0, 0.9], [0, 0.3, 0]]))
-        loaded_array = load_npz(tmpfile)
-    finally:
-        os.remove(tmpfile)
-
-    assert not isinstance(loaded_matrix, sparray)
-    assert isinstance(loaded_array, sparray)
-    assert_(loaded_matrix.dtype == loaded_array.dtype)
-    assert_equal(loaded_matrix.toarray(), loaded_array.toarray())
-
-def test_malicious_load():
-    class Executor:
-        def __reduce__(self):
-            return (assert_, (False, 'unexpected code execution'))
-
-    fd, tmpfile = tempfile.mkstemp(suffix='.npz')
-    os.close(fd)
-    try:
-        np.savez(tmpfile, format=Executor())
-
-        # Should raise a ValueError, not execute code
-        assert_raises(ValueError, load_npz, tmpfile)
-    finally:
-        os.remove(tmpfile)
-
-
-def test_py23_compatibility():
-    # Try loading files saved on Python 2 and Python 3.  They are not
-    # the same, since files saved with SciPy versions < 1.0.0 may
-    # contain unicode.
-
-    a = load_npz(os.path.join(DATA_DIR, 'csc_py2.npz'))
-    b = load_npz(os.path.join(DATA_DIR, 'csc_py3.npz'))
-    c = csc_matrix([[0]])
-
-    assert_equal(a.toarray(), c.toarray())
-    assert_equal(b.toarray(), c.toarray())
-
-def test_implemented_error():
-    # Attempts to save an unsupported type and checks that an
-    # NotImplementedError is raised.
-
-    x = dok_matrix((2,3))
-    x[0,1] = 1
-
-    assert_raises(NotImplementedError, save_npz, 'x.npz', x)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_minmax1d.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_minmax1d.py
deleted file mode 100644
index dca3f44fa485070805995c2f76c0c511123ce355..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_minmax1d.py
+++ /dev/null
@@ -1,128 +0,0 @@
-"""Test of min-max 1D features of sparse array classes"""
-
-import pytest
-
-import numpy as np
-
-from numpy.testing import assert_equal, assert_array_equal
-
-from scipy.sparse import coo_array, csr_array, csc_array, bsr_array
-from scipy.sparse import coo_matrix, csr_matrix, csc_matrix, bsr_matrix
-from scipy.sparse._sputils import isscalarlike
-
-
-def toarray(a):
-    if isinstance(a, np.ndarray) or isscalarlike(a):
-        return a
-    return a.toarray()
-
-
-formats_for_minmax = [bsr_array, coo_array, csc_array, csr_array]
-formats_for_minmax_supporting_1d = [coo_array, csr_array]
-
-
-@pytest.mark.parametrize("spcreator", formats_for_minmax_supporting_1d)
-class Test_MinMaxMixin1D:
-    def test_minmax(self, spcreator):
-        D = np.arange(5)
-        X = spcreator(D)
-
-        assert_equal(X.min(), 0)
-        assert_equal(X.max(), 4)
-        assert_equal((-X).min(), -4)
-        assert_equal((-X).max(), 0)
-
-    def test_minmax_axis(self, spcreator):
-        D = np.arange(50)
-        X = spcreator(D)
-
-        for axis in [0, -1]:
-            assert_array_equal(
-                toarray(X.max(axis=axis)), D.max(axis=axis, keepdims=True)
-            )
-            assert_array_equal(
-                toarray(X.min(axis=axis)), D.min(axis=axis, keepdims=True)
-            )
-        for axis in [-2, 1]:
-            with pytest.raises(ValueError, match="axis out of range"):
-                X.min(axis=axis)
-            with pytest.raises(ValueError, match="axis out of range"):
-                X.max(axis=axis)
-
-    def test_numpy_minmax(self, spcreator):
-        dat = np.array([0, 1, 2])
-        datsp = spcreator(dat)
-        assert_array_equal(np.min(datsp), np.min(dat))
-        assert_array_equal(np.max(datsp), np.max(dat))
-
-
-    def test_argmax(self, spcreator):
-        D1 = np.array([-1, 5, 2, 3])
-        D2 = np.array([0, 0, -1, -2])
-        D3 = np.array([-1, -2, -3, -4])
-        D4 = np.array([1, 2, 3, 4])
-        D5 = np.array([1, 2, 0, 0])
-
-        for D in [D1, D2, D3, D4, D5]:
-            mat = spcreator(D)
-
-            assert_equal(mat.argmax(), np.argmax(D))
-            assert_equal(mat.argmin(), np.argmin(D))
-
-            assert_equal(mat.argmax(axis=0), np.argmax(D, axis=0))
-            assert_equal(mat.argmin(axis=0), np.argmin(D, axis=0))
-
-        D6 = np.empty((0,))
-
-        for axis in [None, 0]:
-            mat = spcreator(D6)
-            with pytest.raises(ValueError, match="to an empty matrix"):
-                mat.argmin(axis=axis)
-            with pytest.raises(ValueError, match="to an empty matrix"):
-                mat.argmax(axis=axis)
-
-
-@pytest.mark.parametrize("spcreator", formats_for_minmax)
-class Test_ShapeMinMax2DWithAxis:
-    def test_minmax(self, spcreator):
-        dat = np.array([[-1, 5, 0, 3], [0, 0, -1, -2], [0, 0, 1, 2]])
-        datsp = spcreator(dat)
-
-        for (spminmax, npminmax) in [
-            (datsp.min, np.min),
-            (datsp.max, np.max),
-            (datsp.nanmin, np.nanmin),
-            (datsp.nanmax, np.nanmax),
-        ]:
-            for ax, result_shape in [(0, (4,)), (1, (3,))]:
-                assert_equal(toarray(spminmax(axis=ax)), npminmax(dat, axis=ax))
-                assert_equal(spminmax(axis=ax).shape, result_shape)
-                assert spminmax(axis=ax).format == "coo"
-
-        for spminmax in [datsp.argmin, datsp.argmax]:
-            for ax in [0, 1]:
-                assert isinstance(spminmax(axis=ax), np.ndarray)
-
-        # verify spmatrix behavior
-        spmat_form = {
-            'coo': coo_matrix,
-            'csr': csr_matrix,
-            'csc': csc_matrix,
-            'bsr': bsr_matrix,
-        }
-        datspm = spmat_form[datsp.format](dat)
-
-        for spm, npm in [
-            (datspm.min, np.min),
-            (datspm.max, np.max),
-            (datspm.nanmin, np.nanmin),
-            (datspm.nanmax, np.nanmax),
-        ]:
-            for ax, result_shape in [(0, (1, 4)), (1, (3, 1))]:
-                assert_equal(toarray(spm(axis=ax)), npm(dat, axis=ax, keepdims=True))
-                assert_equal(spm(axis=ax).shape, result_shape)
-                assert spm(axis=ax).format == "coo"
-
-        for spminmax in [datspm.argmin, datspm.argmax]:
-            for ax in [0, 1]:
-                assert isinstance(spminmax(axis=ax), np.ndarray)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_sparsetools.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_sparsetools.py
deleted file mode 100644
index 6a8b94796116a22c210104fc446c5a17045ed21c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_sparsetools.py
+++ /dev/null
@@ -1,339 +0,0 @@
-import sys
-import os
-import gc
-import threading
-
-import numpy as np
-from numpy.testing import assert_equal, assert_, assert_allclose
-from scipy.sparse import (_sparsetools, coo_matrix, csr_matrix, csc_matrix,
-                          bsr_matrix, dia_matrix)
-from scipy.sparse._sputils import supported_dtypes
-from scipy._lib._testutils import check_free_memory
-
-import pytest
-from pytest import raises as assert_raises
-
-
-def int_to_int8(n):
-    """
-    Wrap an integer to the interval [-128, 127].
-    """
-    return (n + 128) % 256 - 128
-
-
-def test_exception():
-    assert_raises(MemoryError, _sparsetools.test_throw_error)
-
-
-def test_threads():
-    # Smoke test for parallel threaded execution; doesn't actually
-    # check that code runs in parallel, but just that it produces
-    # expected results.
-    nthreads = 10
-    niter = 100
-
-    n = 20
-    a = csr_matrix(np.ones([n, n]))
-    bres = []
-
-    class Worker(threading.Thread):
-        def run(self):
-            b = a.copy()
-            for j in range(niter):
-                _sparsetools.csr_plus_csr(n, n,
-                                          a.indptr, a.indices, a.data,
-                                          a.indptr, a.indices, a.data,
-                                          b.indptr, b.indices, b.data)
-            bres.append(b)
-
-    threads = [Worker() for _ in range(nthreads)]
-    for thread in threads:
-        thread.start()
-    for thread in threads:
-        thread.join()
-
-    for b in bres:
-        assert_(np.all(b.toarray() == 2))
-
-
-def test_regression_std_vector_dtypes():
-    # Regression test for gh-3780, checking the std::vector typemaps
-    # in sparsetools.cxx are complete.
-    for dtype in supported_dtypes:
-        ad = np.array([[1, 2], [3, 4]]).astype(dtype)
-        a = csr_matrix(ad, dtype=dtype)
-
-        # getcol is one function using std::vector typemaps, and should not fail
-        assert_equal(a.getcol(0).toarray(), ad[:, :1])
-
-
-@pytest.mark.slow
-@pytest.mark.xfail_on_32bit("Can't create large array for test")
-def test_nnz_overflow():
-    # Regression test for gh-7230 / gh-7871, checking that coo_toarray
-    # with nnz > int32max doesn't overflow.
-    nnz = np.iinfo(np.int32).max + 1
-    # Ensure ~20 GB of RAM is free to run this test.
-    check_free_memory((4 + 4 + 1) * nnz / 1e6 + 0.5)
-
-    # Use nnz duplicate entries to keep the dense version small.
-    row = np.zeros(nnz, dtype=np.int32)
-    col = np.zeros(nnz, dtype=np.int32)
-    data = np.zeros(nnz, dtype=np.int8)
-    data[-1] = 4
-    s = coo_matrix((data, (row, col)), shape=(1, 1), copy=False)
-    # Sums nnz duplicates to produce a 1x1 array containing 4.
-    d = s.toarray()
-
-    assert_allclose(d, [[4]])
-
-
-@pytest.mark.skipif(
-    not (sys.platform.startswith('linux') and np.dtype(np.intp).itemsize >= 8),
-    reason="test requires 64-bit Linux"
-)
-class TestInt32Overflow:
-    """
-    Some of the sparsetools routines use dense 2D matrices whose
-    total size is not bounded by the nnz of the sparse matrix. These
-    routines used to suffer from int32 wraparounds; here, we try to
-    check that the wraparounds don't occur any more.
-    """
-    # choose n large enough
-    n = 50000
-
-    def setup_method(self):
-        assert self.n**2 > np.iinfo(np.int32).max
-
-        # check there's enough memory even if everything is run at the
-        # same time
-        try:
-            parallel_count = int(os.environ.get('PYTEST_XDIST_WORKER_COUNT', '1'))
-        except ValueError:
-            parallel_count = np.inf
-
-        check_free_memory(3000 * parallel_count)
-
-    def teardown_method(self):
-        gc.collect()
-
-    def test_coo_todense(self):
-        # Check *_todense routines (cf. gh-2179)
-        #
-        # All of them in the end call coo_matrix.todense
-
-        n = self.n
-
-        i = np.array([0, n-1])
-        j = np.array([0, n-1])
-        data = np.array([1, 2], dtype=np.int8)
-        m = coo_matrix((data, (i, j)))
-
-        r = m.todense()
-        assert_equal(r[0,0], 1)
-        assert_equal(r[-1,-1], 2)
-        del r
-        gc.collect()
-
-    @pytest.mark.slow
-    def test_matvecs(self):
-        # Check *_matvecs routines
-        n = self.n
-
-        i = np.array([0, n-1])
-        j = np.array([0, n-1])
-        data = np.array([1, 2], dtype=np.int8)
-        m = coo_matrix((data, (i, j)))
-
-        b = np.ones((n, n), dtype=np.int8)
-        for sptype in (csr_matrix, csc_matrix, bsr_matrix):
-            m2 = sptype(m)
-            r = m2.dot(b)
-            assert_equal(r[0,0], 1)
-            assert_equal(r[-1,-1], 2)
-            del r
-            gc.collect()
-
-        del b
-        gc.collect()
-
-    @pytest.mark.slow
-    def test_dia_matvec(self):
-        # Check: huge dia_matrix _matvec
-        n = self.n
-        data = np.ones((n, n), dtype=np.int8)
-        offsets = np.arange(n)
-        m = dia_matrix((data, offsets), shape=(n, n))
-        v = np.ones(m.shape[1], dtype=np.int8)
-        r = m.dot(v)
-        assert_equal(r[0], int_to_int8(n))
-        del data, offsets, m, v, r
-        gc.collect()
-
-    _bsr_ops = [pytest.param("matmat", marks=pytest.mark.xslow),
-                pytest.param("matvecs", marks=pytest.mark.xslow),
-                "matvec",
-                "diagonal",
-                "sort_indices",
-                pytest.param("transpose", marks=pytest.mark.xslow)]
-
-    @pytest.mark.slow
-    @pytest.mark.parametrize("op", _bsr_ops)
-    def test_bsr_1_block(self, op):
-        # Check: huge bsr_matrix (1-block)
-        #
-        # The point here is that indices inside a block may overflow.
-
-        def get_matrix():
-            n = self.n
-            data = np.ones((1, n, n), dtype=np.int8)
-            indptr = np.array([0, 1], dtype=np.int32)
-            indices = np.array([0], dtype=np.int32)
-            m = bsr_matrix((data, indices, indptr), blocksize=(n, n), copy=False)
-            del data, indptr, indices
-            return m
-
-        gc.collect()
-        try:
-            getattr(self, "_check_bsr_" + op)(get_matrix)
-        finally:
-            gc.collect()
-
-    @pytest.mark.slow
-    @pytest.mark.parametrize("op", _bsr_ops)
-    def test_bsr_n_block(self, op):
-        # Check: huge bsr_matrix (n-block)
-        #
-        # The point here is that while indices within a block don't
-        # overflow, accumulators across many block may.
-
-        def get_matrix():
-            n = self.n
-            data = np.ones((n, n, 1), dtype=np.int8)
-            indptr = np.array([0, n], dtype=np.int32)
-            indices = np.arange(n, dtype=np.int32)
-            m = bsr_matrix((data, indices, indptr), blocksize=(n, 1), copy=False)
-            del data, indptr, indices
-            return m
-
-        gc.collect()
-        try:
-            getattr(self, "_check_bsr_" + op)(get_matrix)
-        finally:
-            gc.collect()
-
-    def _check_bsr_matvecs(self, m):  # skip name check
-        m = m()
-        n = self.n
-
-        # _matvecs
-        r = m.dot(np.ones((n, 2), dtype=np.int8))
-        assert_equal(r[0, 0], int_to_int8(n))
-
-    def _check_bsr_matvec(self, m):  # skip name check
-        m = m()
-        n = self.n
-
-        # _matvec
-        r = m.dot(np.ones((n,), dtype=np.int8))
-        assert_equal(r[0], int_to_int8(n))
-
-    def _check_bsr_diagonal(self, m):  # skip name check
-        m = m()
-        n = self.n
-
-        # _diagonal
-        r = m.diagonal()
-        assert_equal(r, np.ones(n))
-
-    def _check_bsr_sort_indices(self, m):  # skip name check
-        # _sort_indices
-        m = m()
-        m.sort_indices()
-
-    def _check_bsr_transpose(self, m):  # skip name check
-        # _transpose
-        m = m()
-        m.transpose()
-
-    def _check_bsr_matmat(self, m):  # skip name check
-        m = m()
-        n = self.n
-
-        # _bsr_matmat
-        m2 = bsr_matrix(np.ones((n, 2), dtype=np.int8), blocksize=(m.blocksize[1], 2))
-        m.dot(m2)  # shouldn't SIGSEGV
-        del m2
-
-        # _bsr_matmat
-        m2 = bsr_matrix(np.ones((2, n), dtype=np.int8), blocksize=(2, m.blocksize[0]))
-        m2.dot(m)  # shouldn't SIGSEGV
-
-
-@pytest.mark.skip(reason="64-bit indices in sparse matrices not available")
-def test_csr_matmat_int64_overflow():
-    n = 3037000500
-    assert n**2 > np.iinfo(np.int64).max
-
-    # the test would take crazy amounts of memory
-    check_free_memory(n * (8*2 + 1) * 3 / 1e6)
-
-    # int64 overflow
-    data = np.ones((n,), dtype=np.int8)
-    indptr = np.arange(n+1, dtype=np.int64)
-    indices = np.zeros(n, dtype=np.int64)
-    a = csr_matrix((data, indices, indptr))
-    b = a.T
-
-    assert_raises(RuntimeError, a.dot, b)
-
-
-def test_upcast():
-    a0 = csr_matrix([[np.pi, np.pi*1j], [3, 4]], dtype=complex)
-    b0 = np.array([256+1j, 2**32], dtype=complex)
-
-    for a_dtype in supported_dtypes:
-        for b_dtype in supported_dtypes:
-            msg = f"({a_dtype!r}, {b_dtype!r})"
-
-            if np.issubdtype(a_dtype, np.complexfloating):
-                a = a0.copy().astype(a_dtype)
-            else:
-                a = a0.real.copy().astype(a_dtype)
-
-            if np.issubdtype(b_dtype, np.complexfloating):
-                b = b0.copy().astype(b_dtype)
-            else:
-                with np.errstate(invalid="ignore"):
-                    # Casting a large value (2**32) to int8 causes a warning in
-                    # numpy >1.23
-                    b = b0.real.copy().astype(b_dtype)
-
-            if not (a_dtype == np.bool_ and b_dtype == np.bool_):
-                c = np.zeros((2,), dtype=np.bool_)
-                assert_raises(ValueError, _sparsetools.csr_matvec,
-                              2, 2, a.indptr, a.indices, a.data, b, c)
-
-            if ((np.issubdtype(a_dtype, np.complexfloating) and
-                 not np.issubdtype(b_dtype, np.complexfloating)) or
-                (not np.issubdtype(a_dtype, np.complexfloating) and
-                 np.issubdtype(b_dtype, np.complexfloating))):
-                c = np.zeros((2,), dtype=np.float64)
-                assert_raises(ValueError, _sparsetools.csr_matvec,
-                              2, 2, a.indptr, a.indices, a.data, b, c)
-
-            c = np.zeros((2,), dtype=np.result_type(a_dtype, b_dtype))
-            _sparsetools.csr_matvec(2, 2, a.indptr, a.indices, a.data, b, c)
-            assert_allclose(c, np.dot(a.toarray(), b), err_msg=msg)
-
-
-def test_endianness():
-    d = np.ones((3,4))
-    offsets = [-1,0,1]
-
-    a = dia_matrix((d.astype('f8'), offsets), (4, 4))
-    v = np.arange(4)
-
-    assert_allclose(a.dot(v), [1, 3, 6, 5])
-    assert_allclose(b.dot(v), [1, 3, 6, 5])
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_spfuncs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_spfuncs.py
deleted file mode 100644
index 75bc2d92c369be5799a904bc0938617f30321f12..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_spfuncs.py
+++ /dev/null
@@ -1,97 +0,0 @@
-from numpy import array, kron, diag
-from numpy.testing import assert_, assert_equal
-
-from scipy.sparse import _spfuncs as spfuncs
-from scipy.sparse import csr_matrix, csc_matrix, bsr_matrix
-from scipy.sparse._sparsetools import (csr_scale_rows, csr_scale_columns,
-                                       bsr_scale_rows, bsr_scale_columns)
-
-
-class TestSparseFunctions:
-    def test_scale_rows_and_cols(self):
-        D = array([[1, 0, 0, 2, 3],
-                   [0, 4, 0, 5, 0],
-                   [0, 0, 6, 7, 0]])
-
-        #TODO expose through function
-        S = csr_matrix(D)
-        v = array([1,2,3])
-        csr_scale_rows(3,5,S.indptr,S.indices,S.data,v)
-        assert_equal(S.toarray(), diag(v)@D)
-
-        S = csr_matrix(D)
-        v = array([1,2,3,4,5])
-        csr_scale_columns(3,5,S.indptr,S.indices,S.data,v)
-        assert_equal(S.toarray(), D@diag(v))
-
-        # blocks
-        E = kron(D,[[1,2],[3,4]])
-        S = bsr_matrix(E,blocksize=(2,2))
-        v = array([1,2,3,4,5,6])
-        bsr_scale_rows(3,5,2,2,S.indptr,S.indices,S.data,v)
-        assert_equal(S.toarray(), diag(v)@E)
-
-        S = bsr_matrix(E,blocksize=(2,2))
-        v = array([1,2,3,4,5,6,7,8,9,10])
-        bsr_scale_columns(3,5,2,2,S.indptr,S.indices,S.data,v)
-        assert_equal(S.toarray(), E@diag(v))
-
-        E = kron(D,[[1,2,3],[4,5,6]])
-        S = bsr_matrix(E,blocksize=(2,3))
-        v = array([1,2,3,4,5,6])
-        bsr_scale_rows(3,5,2,3,S.indptr,S.indices,S.data,v)
-        assert_equal(S.toarray(), diag(v)@E)
-
-        S = bsr_matrix(E,blocksize=(2,3))
-        v = array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
-        bsr_scale_columns(3,5,2,3,S.indptr,S.indices,S.data,v)
-        assert_equal(S.toarray(), E@diag(v))
-
-    def test_estimate_blocksize(self):
-        mats = []
-        mats.append([[0,1],[1,0]])
-        mats.append([[1,1,0],[0,0,1],[1,0,1]])
-        mats.append([[0],[0],[1]])
-        mats = [array(x) for x in mats]
-
-        blks = []
-        blks.append([[1]])
-        blks.append([[1,1],[1,1]])
-        blks.append([[1,1],[0,1]])
-        blks.append([[1,1,0],[1,0,1],[1,1,1]])
-        blks = [array(x) for x in blks]
-
-        for A in mats:
-            for B in blks:
-                X = kron(A,B)
-                r,c = spfuncs.estimate_blocksize(X)
-                assert_(r >= B.shape[0])
-                assert_(c >= B.shape[1])
-
-    def test_count_blocks(self):
-        def gold(A,bs):
-            R,C = bs
-            I,J = A.nonzero()
-            return len(set(zip(I//R,J//C)))
-
-        mats = []
-        mats.append([[0]])
-        mats.append([[1]])
-        mats.append([[1,0]])
-        mats.append([[1,1]])
-        mats.append([[0,1],[1,0]])
-        mats.append([[1,1,0],[0,0,1],[1,0,1]])
-        mats.append([[0],[0],[1]])
-
-        for A in mats:
-            for B in mats:
-                X = kron(A,B)
-                Y = csr_matrix(X)
-                for R in range(1,6):
-                    for C in range(1,6):
-                        assert_equal(spfuncs.count_blocks(Y, (R, C)), gold(X, (R, C)))
-
-        X = kron([[1,1,0],[0,0,1],[1,0,1]],[[1,1]])
-        Y = csc_matrix(X)
-        assert_equal(spfuncs.count_blocks(X, (1, 2)), gold(X, (1, 2)))
-        assert_equal(spfuncs.count_blocks(Y, (1, 2)), gold(X, (1, 2)))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_sputils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_sputils.py
deleted file mode 100644
index 4545b49bea2cce465ae039ea7fc0f5a48b3da140..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_sputils.py
+++ /dev/null
@@ -1,196 +0,0 @@
-"""unit tests for sparse utility functions"""
-
-import numpy as np
-from numpy.testing import assert_equal
-from pytest import raises as assert_raises
-from scipy.sparse import _sputils as sputils
-from scipy.sparse._sputils import matrix
-
-
-class TestSparseUtils:
-
-    def test_upcast(self):
-        assert_equal(sputils.upcast('intc'), np.intc)
-        assert_equal(sputils.upcast('int32', 'float32'), np.float64)
-        assert_equal(sputils.upcast('bool', complex, float), np.complex128)
-        assert_equal(sputils.upcast('i', 'd'), np.float64)
-
-    def test_getdtype(self):
-        A = np.array([1], dtype='int8')
-
-        assert_equal(sputils.getdtype(None, default=float), float)
-        assert_equal(sputils.getdtype(None, a=A), np.int8)
-
-        with assert_raises(
-            ValueError,
-            match="object dtype is not supported by sparse matrices",
-        ):
-            sputils.getdtype("O")
-
-    def test_isscalarlike(self):
-        assert_equal(sputils.isscalarlike(3.0), True)
-        assert_equal(sputils.isscalarlike(-4), True)
-        assert_equal(sputils.isscalarlike(2.5), True)
-        assert_equal(sputils.isscalarlike(1 + 3j), True)
-        assert_equal(sputils.isscalarlike(np.array(3)), True)
-        assert_equal(sputils.isscalarlike("16"), True)
-
-        assert_equal(sputils.isscalarlike(np.array([3])), False)
-        assert_equal(sputils.isscalarlike([[3]]), False)
-        assert_equal(sputils.isscalarlike((1,)), False)
-        assert_equal(sputils.isscalarlike((1, 2)), False)
-
-    def test_isintlike(self):
-        assert_equal(sputils.isintlike(-4), True)
-        assert_equal(sputils.isintlike(np.array(3)), True)
-        assert_equal(sputils.isintlike(np.array([3])), False)
-        with assert_raises(
-            ValueError,
-            match="Inexact indices into sparse matrices are not allowed"
-        ):
-            sputils.isintlike(3.0)
-
-        assert_equal(sputils.isintlike(2.5), False)
-        assert_equal(sputils.isintlike(1 + 3j), False)
-        assert_equal(sputils.isintlike((1,)), False)
-        assert_equal(sputils.isintlike((1, 2)), False)
-
-    def test_isshape(self):
-        assert_equal(sputils.isshape((1, 2)), True)
-        assert_equal(sputils.isshape((5, 2)), True)
-
-        assert_equal(sputils.isshape((1.5, 2)), False)
-        assert_equal(sputils.isshape((2, 2, 2)), False)
-        assert_equal(sputils.isshape(([2], 2)), False)
-        assert_equal(sputils.isshape((-1, 2), nonneg=False),True)
-        assert_equal(sputils.isshape((2, -1), nonneg=False),True)
-        assert_equal(sputils.isshape((-1, 2), nonneg=True),False)
-        assert_equal(sputils.isshape((2, -1), nonneg=True),False)
-
-        assert_equal(sputils.isshape((1.5, 2), allow_1d=True), False)
-        assert_equal(sputils.isshape(([2], 2), allow_1d=True), False)
-        assert_equal(sputils.isshape((2, 2, -2), nonneg=True, allow_1d=True),
-                     False)
-        assert_equal(sputils.isshape((2,), allow_1d=True), True)
-        assert_equal(sputils.isshape((2, 2,), allow_1d=True), True)
-        assert_equal(sputils.isshape((2, 2, 2), allow_1d=True), False)
-
-    def test_issequence(self):
-        assert_equal(sputils.issequence((1,)), True)
-        assert_equal(sputils.issequence((1, 2, 3)), True)
-        assert_equal(sputils.issequence([1]), True)
-        assert_equal(sputils.issequence([1, 2, 3]), True)
-        assert_equal(sputils.issequence(np.array([1, 2, 3])), True)
-
-        assert_equal(sputils.issequence(np.array([[1], [2], [3]])), False)
-        assert_equal(sputils.issequence(3), False)
-
-    def test_ismatrix(self):
-        assert_equal(sputils.ismatrix(((),)), True)
-        assert_equal(sputils.ismatrix([[1], [2]]), True)
-        assert_equal(sputils.ismatrix(np.arange(3)[None]), True)
-
-        assert_equal(sputils.ismatrix([1, 2]), False)
-        assert_equal(sputils.ismatrix(np.arange(3)), False)
-        assert_equal(sputils.ismatrix([[[1]]]), False)
-        assert_equal(sputils.ismatrix(3), False)
-
-    def test_isdense(self):
-        assert_equal(sputils.isdense(np.array([1])), True)
-        assert_equal(sputils.isdense(matrix([1])), True)
-
-    def test_validateaxis(self):
-        assert_raises(TypeError, sputils.validateaxis, (0, 1))
-        assert_raises(TypeError, sputils.validateaxis, 1.5)
-        assert_raises(ValueError, sputils.validateaxis, 3)
-
-        # These function calls should not raise errors
-        for axis in (-2, -1, 0, 1, None):
-            sputils.validateaxis(axis)
-
-    def test_get_index_dtype(self):
-        imax = np.int64(np.iinfo(np.int32).max)
-        too_big = imax + 1
-
-        # Check that uint32's with no values too large doesn't return
-        # int64
-        a1 = np.ones(90, dtype='uint32')
-        a2 = np.ones(90, dtype='uint32')
-        assert_equal(
-            np.dtype(sputils.get_index_dtype((a1, a2), check_contents=True)),
-            np.dtype('int32')
-        )
-
-        # Check that if we can not convert but all values are less than or
-        # equal to max that we can just convert to int32
-        a1[-1] = imax
-        assert_equal(
-            np.dtype(sputils.get_index_dtype((a1, a2), check_contents=True)),
-            np.dtype('int32')
-        )
-
-        # Check that if it can not convert directly and the contents are
-        # too large that we return int64
-        a1[-1] = too_big
-        assert_equal(
-            np.dtype(sputils.get_index_dtype((a1, a2), check_contents=True)),
-            np.dtype('int64')
-        )
-
-        # test that if can not convert and didn't specify to check_contents
-        # we return int64
-        a1 = np.ones(89, dtype='uint32')
-        a2 = np.ones(89, dtype='uint32')
-        assert_equal(
-            np.dtype(sputils.get_index_dtype((a1, a2))),
-            np.dtype('int64')
-        )
-
-        # Check that even if we have arrays that can be converted directly
-        # that if we specify a maxval directly it takes precedence
-        a1 = np.ones(12, dtype='uint32')
-        a2 = np.ones(12, dtype='uint32')
-        assert_equal(
-            np.dtype(sputils.get_index_dtype(
-                (a1, a2), maxval=too_big, check_contents=True
-            )),
-            np.dtype('int64')
-        )
-
-        # Check that an array with a too max size and maxval set
-        # still returns int64
-        a1[-1] = too_big
-        assert_equal(
-            np.dtype(sputils.get_index_dtype((a1, a2), maxval=too_big)),
-            np.dtype('int64')
-        )
-
-    def test_check_shape_overflow(self):
-        new_shape = sputils.check_shape([(10, -1)], (65535, 131070))
-        assert_equal(new_shape, (10, 858967245))
-
-    def test_matrix(self):
-        a = [[1, 2, 3]]
-        b = np.array(a)
-
-        assert isinstance(sputils.matrix(a), np.matrix)
-        assert isinstance(sputils.matrix(b), np.matrix)
-
-        c = sputils.matrix(b)
-        c[:, :] = 123
-        assert_equal(b, a)
-
-        c = sputils.matrix(b, copy=False)
-        c[:, :] = 123
-        assert_equal(b, [[123, 123, 123]])
-
-    def test_asmatrix(self):
-        a = [[1, 2, 3]]
-        b = np.array(a)
-
-        assert isinstance(sputils.asmatrix(a), np.matrix)
-        assert isinstance(sputils.asmatrix(b), np.matrix)
-
-        c = sputils.asmatrix(b)
-        c[:, :] = 123
-        assert_equal(b, [[123, 123, 123]])
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special.pxd
deleted file mode 100644
index 1daa9fb379572aac4bc9b6d74330a18c5c52bf79..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special.pxd
+++ /dev/null
@@ -1 +0,0 @@
-from scipy.special cimport cython_special
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/__init__.py
deleted file mode 100644
index a86d6f9f69f8be2186e2eb65b3185d0e4cb0ea4f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/__init__.py
+++ /dev/null
@@ -1,894 +0,0 @@
-"""
-========================================
-Special functions (:mod:`scipy.special`)
-========================================
-
-.. currentmodule:: scipy.special
-
-Almost all of the functions below accept NumPy arrays as input
-arguments as well as single numbers. This means they follow
-broadcasting and automatic array-looping rules. Technically,
-they are `NumPy universal functions
-`_.
-Functions which do not accept NumPy arrays are marked by a warning
-in the section description.
-
-.. seealso::
-
-   `scipy.special.cython_special` -- Typed Cython versions of special functions
-
-
-Error handling
-==============
-
-Errors are handled by returning NaNs or other appropriate values.
-Some of the special function routines can emit warnings or raise
-exceptions when an error occurs. By default this is disabled; to
-query and control the current error handling state the following
-functions are provided.
-
-.. autosummary::
-   :toctree: generated/
-
-   geterr                 -- Get the current way of handling special-function errors.
-   seterr                 -- Set how special-function errors are handled.
-   errstate               -- Context manager for special-function error handling.
-   SpecialFunctionWarning -- Warning that can be emitted by special functions.
-   SpecialFunctionError   -- Exception that can be raised by special functions.
-
-Available functions
-===================
-
-Airy functions
---------------
-
-.. autosummary::
-   :toctree: generated/
-
-   airy     -- Airy functions and their derivatives.
-   airye    -- Exponentially scaled Airy functions and their derivatives.
-   ai_zeros -- Compute `nt` zeros and values of the Airy function Ai and its derivative.
-   bi_zeros -- Compute `nt` zeros and values of the Airy function Bi and its derivative.
-   itairy   -- Integrals of Airy functions
-
-
-Elliptic functions and integrals
---------------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   ellipj    -- Jacobian elliptic functions.
-   ellipk    -- Complete elliptic integral of the first kind.
-   ellipkm1  -- Complete elliptic integral of the first kind around `m` = 1.
-   ellipkinc -- Incomplete elliptic integral of the first kind.
-   ellipe    -- Complete elliptic integral of the second kind.
-   ellipeinc -- Incomplete elliptic integral of the second kind.
-   elliprc   -- Degenerate symmetric integral RC.
-   elliprd   -- Symmetric elliptic integral of the second kind.
-   elliprf   -- Completely-symmetric elliptic integral of the first kind.
-   elliprg   -- Completely-symmetric elliptic integral of the second kind.
-   elliprj   -- Symmetric elliptic integral of the third kind.
-
-Bessel functions
-----------------
-
-.. autosummary::
-   :toctree: generated/
-
-   jv                -- Bessel function of the first kind of real order and \
-                        complex argument.
-   jve               -- Exponentially scaled Bessel function of order `v`.
-   yn                -- Bessel function of the second kind of integer order and \
-                        real argument.
-   yv                -- Bessel function of the second kind of real order and \
-                        complex argument.
-   yve               -- Exponentially scaled Bessel function of the second kind \
-                        of real order.
-   kn                -- Modified Bessel function of the second kind of integer \
-                        order `n`
-   kv                -- Modified Bessel function of the second kind of real order \
-                        `v`
-   kve               -- Exponentially scaled modified Bessel function of the \
-                        second kind.
-   iv                -- Modified Bessel function of the first kind of real order.
-   ive               -- Exponentially scaled modified Bessel function of the \
-                        first kind.
-   hankel1           -- Hankel function of the first kind.
-   hankel1e          -- Exponentially scaled Hankel function of the first kind.
-   hankel2           -- Hankel function of the second kind.
-   hankel2e          -- Exponentially scaled Hankel function of the second kind.
-   wright_bessel     -- Wright's generalized Bessel function.
-   log_wright_bessel -- Logarithm of Wright's generalized Bessel function.
-
-The following function does not accept NumPy arrays (it is not a
-universal function):
-
-.. autosummary::
-   :toctree: generated/
-
-   lmbda -- Jahnke-Emden Lambda function, Lambdav(x).
-
-Zeros of Bessel functions
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The following functions do not accept NumPy arrays (they are not
-universal functions):
-
-.. autosummary::
-   :toctree: generated/
-
-   jnjnp_zeros -- Compute zeros of integer-order Bessel functions Jn and Jn'.
-   jnyn_zeros  -- Compute nt zeros of Bessel functions Jn(x), Jn'(x), Yn(x), and Yn'(x).
-   jn_zeros    -- Compute zeros of integer-order Bessel function Jn(x).
-   jnp_zeros   -- Compute zeros of integer-order Bessel function derivative Jn'(x).
-   yn_zeros    -- Compute zeros of integer-order Bessel function Yn(x).
-   ynp_zeros   -- Compute zeros of integer-order Bessel function derivative Yn'(x).
-   y0_zeros    -- Compute nt zeros of Bessel function Y0(z), and derivative at each zero.
-   y1_zeros    -- Compute nt zeros of Bessel function Y1(z), and derivative at each zero.
-   y1p_zeros   -- Compute nt zeros of Bessel derivative Y1'(z), and value at each zero.
-
-Faster versions of common Bessel functions
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   j0  -- Bessel function of the first kind of order 0.
-   j1  -- Bessel function of the first kind of order 1.
-   y0  -- Bessel function of the second kind of order 0.
-   y1  -- Bessel function of the second kind of order 1.
-   i0  -- Modified Bessel function of order 0.
-   i0e -- Exponentially scaled modified Bessel function of order 0.
-   i1  -- Modified Bessel function of order 1.
-   i1e -- Exponentially scaled modified Bessel function of order 1.
-   k0  -- Modified Bessel function of the second kind of order 0, :math:`K_0`.
-   k0e -- Exponentially scaled modified Bessel function K of order 0
-   k1  -- Modified Bessel function of the second kind of order 1, :math:`K_1(x)`.
-   k1e -- Exponentially scaled modified Bessel function K of order 1.
-
-Integrals of Bessel functions
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   itj0y0     -- Integrals of Bessel functions of order 0.
-   it2j0y0    -- Integrals related to Bessel functions of order 0.
-   iti0k0     -- Integrals of modified Bessel functions of order 0.
-   it2i0k0    -- Integrals related to modified Bessel functions of order 0.
-   besselpoly -- Weighted integral of a Bessel function.
-
-Derivatives of Bessel functions
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   jvp  -- Compute nth derivative of Bessel function Jv(z) with respect to `z`.
-   yvp  -- Compute nth derivative of Bessel function Yv(z) with respect to `z`.
-   kvp  -- Compute nth derivative of real-order modified Bessel function Kv(z)
-   ivp  -- Compute nth derivative of modified Bessel function Iv(z) with respect to `z`.
-   h1vp -- Compute nth derivative of Hankel function H1v(z) with respect to `z`.
-   h2vp -- Compute nth derivative of Hankel function H2v(z) with respect to `z`.
-
-Spherical Bessel functions
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   spherical_jn -- Spherical Bessel function of the first kind or its derivative.
-   spherical_yn -- Spherical Bessel function of the second kind or its derivative.
-   spherical_in -- Modified spherical Bessel function of the first kind or its derivative.
-   spherical_kn -- Modified spherical Bessel function of the second kind or its derivative.
-
-Riccati-Bessel functions
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-The following functions do not accept NumPy arrays (they are not
-universal functions):
-
-.. autosummary::
-   :toctree: generated/
-
-   riccati_jn -- Compute Ricatti-Bessel function of the first kind and its derivative.
-   riccati_yn -- Compute Ricatti-Bessel function of the second kind and its derivative.
-
-Struve functions
-----------------
-
-.. autosummary::
-   :toctree: generated/
-
-   struve       -- Struve function.
-   modstruve    -- Modified Struve function.
-   itstruve0    -- Integral of the Struve function of order 0.
-   it2struve0   -- Integral related to the Struve function of order 0.
-   itmodstruve0 -- Integral of the modified Struve function of order 0.
-
-
-Raw statistical functions
--------------------------
-
-.. seealso:: :mod:`scipy.stats`: Friendly versions of these functions.
-
-Binomial distribution
-^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   bdtr         -- Binomial distribution cumulative distribution function.
-   bdtrc        -- Binomial distribution survival function.
-   bdtri        -- Inverse function to `bdtr` with respect to `p`.
-   bdtrik       -- Inverse function to `bdtr` with respect to `k`.
-   bdtrin       -- Inverse function to `bdtr` with respect to `n`.
-
-Beta distribution
-^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   btdtr        -- Cumulative distribution function of the beta distribution.
-   btdtri       -- The `p`-th quantile of the beta distribution.
-   btdtria      -- Inverse of `btdtr` with respect to `a`.
-   btdtrib      -- btdtria(a, p, x).
-
-F distribution
-^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   fdtr         -- F cumulative distribution function.
-   fdtrc        -- F survival function.
-   fdtri        -- The `p`-th quantile of the F-distribution.
-   fdtridfd     -- Inverse to `fdtr` vs dfd.
-
-Gamma distribution
-^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   gdtr         -- Gamma distribution cumulative distribution function.
-   gdtrc        -- Gamma distribution survival function.
-   gdtria       -- Inverse of `gdtr` vs a.
-   gdtrib       -- Inverse of `gdtr` vs b.
-   gdtrix       -- Inverse of `gdtr` vs x.
-
-Negative binomial distribution
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   nbdtr        -- Negative binomial cumulative distribution function.
-   nbdtrc       -- Negative binomial survival function.
-   nbdtri       -- Inverse of `nbdtr` vs `p`.
-   nbdtrik      -- Inverse of `nbdtr` vs `k`.
-   nbdtrin      -- Inverse of `nbdtr` vs `n`.
-
-Noncentral F distribution
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   ncfdtr       -- Cumulative distribution function of the non-central F distribution.
-   ncfdtridfd   -- Calculate degrees of freedom (denominator) for the noncentral F-distribution.
-   ncfdtridfn   -- Calculate degrees of freedom (numerator) for the noncentral F-distribution.
-   ncfdtri      -- Inverse cumulative distribution function of the non-central F distribution.
-   ncfdtrinc    -- Calculate non-centrality parameter for non-central F distribution.
-
-Noncentral t distribution
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   nctdtr       -- Cumulative distribution function of the non-central `t` distribution.
-   nctdtridf    -- Calculate degrees of freedom for non-central t distribution.
-   nctdtrit     -- Inverse cumulative distribution function of the non-central t distribution.
-   nctdtrinc    -- Calculate non-centrality parameter for non-central t distribution.
-
-Normal distribution
-^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   nrdtrimn     -- Calculate mean of normal distribution given other params.
-   nrdtrisd     -- Calculate standard deviation of normal distribution given other params.
-   ndtr         -- Normal cumulative distribution function.
-   log_ndtr     -- Logarithm of normal cumulative distribution function.
-   ndtri        -- Inverse of `ndtr` vs x.
-   ndtri_exp    -- Inverse of `log_ndtr` vs x.
-
-Poisson distribution
-^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   pdtr         -- Poisson cumulative distribution function.
-   pdtrc        -- Poisson survival function.
-   pdtri        -- Inverse to `pdtr` vs m.
-   pdtrik       -- Inverse to `pdtr` vs k.
-
-Student t distribution
-^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   stdtr        -- Student t distribution cumulative distribution function.
-   stdtridf     -- Inverse of `stdtr` vs df.
-   stdtrit      -- Inverse of `stdtr` vs `t`.
-
-Chi square distribution
-^^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   chdtr        -- Chi square cumulative distribution function.
-   chdtrc       -- Chi square survival function.
-   chdtri       -- Inverse to `chdtrc`.
-   chdtriv      -- Inverse to `chdtr` vs `v`.
-
-Non-central chi square distribution
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   chndtr       -- Non-central chi square cumulative distribution function.
-   chndtridf    -- Inverse to `chndtr` vs `df`.
-   chndtrinc    -- Inverse to `chndtr` vs `nc`.
-   chndtrix     -- Inverse to `chndtr` vs `x`.
-
-Kolmogorov distribution
-^^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   smirnov      -- Kolmogorov-Smirnov complementary cumulative distribution function.
-   smirnovi     -- Inverse to `smirnov`.
-   kolmogorov   -- Complementary cumulative distribution function of Kolmogorov distribution.
-   kolmogi      -- Inverse function to `kolmogorov`.
-
-Box-Cox transformation
-^^^^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   boxcox       -- Compute the Box-Cox transformation.
-   boxcox1p     -- Compute the Box-Cox transformation of 1 + `x`.
-   inv_boxcox   -- Compute the inverse of the Box-Cox transformation.
-   inv_boxcox1p -- Compute the inverse of the Box-Cox transformation.
-
-
-Sigmoidal functions
-^^^^^^^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   logit        -- Logit ufunc for ndarrays.
-   expit        -- Logistic sigmoid function.
-   log_expit    -- Logarithm of the logistic sigmoid function.
-
-Miscellaneous
-^^^^^^^^^^^^^
-
-.. autosummary::
-   :toctree: generated/
-
-   tklmbda      -- Tukey-Lambda cumulative distribution function.
-   owens_t      -- Owen's T Function.
-
-
-Information Theory functions
-----------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   entr         -- Elementwise function for computing entropy.
-   rel_entr     -- Elementwise function for computing relative entropy.
-   kl_div       -- Elementwise function for computing Kullback-Leibler divergence.
-   huber        -- Huber loss function.
-   pseudo_huber -- Pseudo-Huber loss function.
-
-
-Gamma and related functions
----------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   gamma        -- Gamma function.
-   gammaln      -- Logarithm of the absolute value of the Gamma function for real inputs.
-   loggamma     -- Principal branch of the logarithm of the Gamma function.
-   gammasgn     -- Sign of the gamma function.
-   gammainc     -- Regularized lower incomplete gamma function.
-   gammaincinv  -- Inverse to `gammainc`.
-   gammaincc    -- Regularized upper incomplete gamma function.
-   gammainccinv -- Inverse to `gammaincc`.
-   beta         -- Beta function.
-   betaln       -- Natural logarithm of absolute value of beta function.
-   betainc      -- Incomplete beta integral.
-   betaincc     -- Complemented incomplete beta integral.
-   betaincinv   -- Inverse function to beta integral.
-   betainccinv  -- Inverse of the complemented incomplete beta integral.
-   psi          -- The digamma function.
-   rgamma       -- Gamma function inverted.
-   polygamma    -- Polygamma function n.
-   multigammaln -- Returns the log of multivariate gamma, also sometimes called the generalized gamma.
-   digamma      -- psi(x[, out]).
-   poch         -- Rising factorial (z)_m.
-
-
-Error function and Fresnel integrals
-------------------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   erf           -- Returns the error function of complex argument.
-   erfc          -- Complementary error function, ``1 - erf(x)``.
-   erfcx         -- Scaled complementary error function, ``exp(x**2) * erfc(x)``.
-   erfi          -- Imaginary error function, ``-i erf(i z)``.
-   erfinv        -- Inverse function for erf.
-   erfcinv       -- Inverse function for erfc.
-   wofz          -- Faddeeva function.
-   dawsn         -- Dawson's integral.
-   fresnel       -- Fresnel sin and cos integrals.
-   fresnel_zeros -- Compute nt complex zeros of sine and cosine Fresnel integrals S(z) and C(z).
-   modfresnelp   -- Modified Fresnel positive integrals.
-   modfresnelm   -- Modified Fresnel negative integrals.
-   voigt_profile -- Voigt profile.
-
-The following functions do not accept NumPy arrays (they are not
-universal functions):
-
-.. autosummary::
-   :toctree: generated/
-
-   erf_zeros      -- Compute nt complex zeros of error function erf(z).
-   fresnelc_zeros -- Compute nt complex zeros of cosine Fresnel integral C(z).
-   fresnels_zeros -- Compute nt complex zeros of sine Fresnel integral S(z).
-
-Legendre functions
-------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   lpmv     -- Associated Legendre function of integer order and real degree.
-   sph_harm -- Compute spherical harmonics.
-
-.. autosummary::
-   :toctree: generated/
-
-   clpmn -- Associated Legendre function of the first kind for complex arguments.
-   lpn   -- Legendre function of the first kind.
-   lqn   -- Legendre function of the second kind.
-   lpmn  -- Sequence of associated Legendre functions of the first kind.
-   lqmn  -- Sequence of associated Legendre functions of the second kind.
-
-Ellipsoidal harmonics
----------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   ellip_harm   -- Ellipsoidal harmonic functions E^p_n(l).
-   ellip_harm_2 -- Ellipsoidal harmonic functions F^p_n(l).
-   ellip_normal -- Ellipsoidal harmonic normalization constants gamma^p_n.
-
-Orthogonal polynomials
-----------------------
-
-The following functions evaluate values of orthogonal polynomials:
-
-.. autosummary::
-   :toctree: generated/
-
-   assoc_laguerre   -- Compute the generalized (associated) Laguerre polynomial of degree n and order k.
-   eval_legendre    -- Evaluate Legendre polynomial at a point.
-   eval_chebyt      -- Evaluate Chebyshev polynomial of the first kind at a point.
-   eval_chebyu      -- Evaluate Chebyshev polynomial of the second kind at a point.
-   eval_chebyc      -- Evaluate Chebyshev polynomial of the first kind on [-2, 2] at a point.
-   eval_chebys      -- Evaluate Chebyshev polynomial of the second kind on [-2, 2] at a point.
-   eval_jacobi      -- Evaluate Jacobi polynomial at a point.
-   eval_laguerre    -- Evaluate Laguerre polynomial at a point.
-   eval_genlaguerre -- Evaluate generalized Laguerre polynomial at a point.
-   eval_hermite     -- Evaluate physicist's Hermite polynomial at a point.
-   eval_hermitenorm -- Evaluate probabilist's (normalized) Hermite polynomial at a point.
-   eval_gegenbauer  -- Evaluate Gegenbauer polynomial at a point.
-   eval_sh_legendre -- Evaluate shifted Legendre polynomial at a point.
-   eval_sh_chebyt   -- Evaluate shifted Chebyshev polynomial of the first kind at a point.
-   eval_sh_chebyu   -- Evaluate shifted Chebyshev polynomial of the second kind at a point.
-   eval_sh_jacobi   -- Evaluate shifted Jacobi polynomial at a point.
-
-The following functions compute roots and quadrature weights for
-orthogonal polynomials:
-
-.. autosummary::
-   :toctree: generated/
-
-   roots_legendre    -- Gauss-Legendre quadrature.
-   roots_chebyt      -- Gauss-Chebyshev (first kind) quadrature.
-   roots_chebyu      -- Gauss-Chebyshev (second kind) quadrature.
-   roots_chebyc      -- Gauss-Chebyshev (first kind) quadrature.
-   roots_chebys      -- Gauss-Chebyshev (second kind) quadrature.
-   roots_jacobi      -- Gauss-Jacobi quadrature.
-   roots_laguerre    -- Gauss-Laguerre quadrature.
-   roots_genlaguerre -- Gauss-generalized Laguerre quadrature.
-   roots_hermite     -- Gauss-Hermite (physicst's) quadrature.
-   roots_hermitenorm -- Gauss-Hermite (statistician's) quadrature.
-   roots_gegenbauer  -- Gauss-Gegenbauer quadrature.
-   roots_sh_legendre -- Gauss-Legendre (shifted) quadrature.
-   roots_sh_chebyt   -- Gauss-Chebyshev (first kind, shifted) quadrature.
-   roots_sh_chebyu   -- Gauss-Chebyshev (second kind, shifted) quadrature.
-   roots_sh_jacobi   -- Gauss-Jacobi (shifted) quadrature.
-
-The functions below, in turn, return the polynomial coefficients in
-``orthopoly1d`` objects, which function similarly as `numpy.poly1d`.
-The ``orthopoly1d`` class also has an attribute ``weights``, which returns
-the roots, weights, and total weights for the appropriate form of Gaussian
-quadrature. These are returned in an ``n x 3`` array with roots in the first
-column, weights in the second column, and total weights in the final column.
-Note that ``orthopoly1d`` objects are converted to `~numpy.poly1d` when doing
-arithmetic, and lose information of the original orthogonal polynomial.
-
-.. autosummary::
-   :toctree: generated/
-
-   legendre    -- Legendre polynomial.
-   chebyt      -- Chebyshev polynomial of the first kind.
-   chebyu      -- Chebyshev polynomial of the second kind.
-   chebyc      -- Chebyshev polynomial of the first kind on :math:`[-2, 2]`.
-   chebys      -- Chebyshev polynomial of the second kind on :math:`[-2, 2]`.
-   jacobi      -- Jacobi polynomial.
-   laguerre    -- Laguerre polynomial.
-   genlaguerre -- Generalized (associated) Laguerre polynomial.
-   hermite     -- Physicist's Hermite polynomial.
-   hermitenorm -- Normalized (probabilist's) Hermite polynomial.
-   gegenbauer  -- Gegenbauer (ultraspherical) polynomial.
-   sh_legendre -- Shifted Legendre polynomial.
-   sh_chebyt   -- Shifted Chebyshev polynomial of the first kind.
-   sh_chebyu   -- Shifted Chebyshev polynomial of the second kind.
-   sh_jacobi   -- Shifted Jacobi polynomial.
-
-.. warning::
-
-   Computing values of high-order polynomials (around ``order > 20``) using
-   polynomial coefficients is numerically unstable. To evaluate polynomial
-   values, the ``eval_*`` functions should be used instead.
-
-
-Hypergeometric functions
-------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   hyp2f1 -- Gauss hypergeometric function 2F1(a, b; c; z).
-   hyp1f1 -- Confluent hypergeometric function 1F1(a, b; x).
-   hyperu -- Confluent hypergeometric function U(a, b, x) of the second kind.
-   hyp0f1 -- Confluent hypergeometric limit function 0F1.
-
-
-Parabolic cylinder functions
-----------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   pbdv -- Parabolic cylinder function D.
-   pbvv -- Parabolic cylinder function V.
-   pbwa -- Parabolic cylinder function W.
-
-The following functions do not accept NumPy arrays (they are not
-universal functions):
-
-.. autosummary::
-   :toctree: generated/
-
-   pbdv_seq -- Parabolic cylinder functions Dv(x) and derivatives.
-   pbvv_seq -- Parabolic cylinder functions Vv(x) and derivatives.
-   pbdn_seq -- Parabolic cylinder functions Dn(z) and derivatives.
-
-Mathieu and related functions
------------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   mathieu_a -- Characteristic value of even Mathieu functions.
-   mathieu_b -- Characteristic value of odd Mathieu functions.
-
-The following functions do not accept NumPy arrays (they are not
-universal functions):
-
-.. autosummary::
-   :toctree: generated/
-
-   mathieu_even_coef -- Fourier coefficients for even Mathieu and modified Mathieu functions.
-   mathieu_odd_coef  -- Fourier coefficients for even Mathieu and modified Mathieu functions.
-
-The following return both function and first derivative:
-
-.. autosummary::
-   :toctree: generated/
-
-   mathieu_cem     -- Even Mathieu function and its derivative.
-   mathieu_sem     -- Odd Mathieu function and its derivative.
-   mathieu_modcem1 -- Even modified Mathieu function of the first kind and its derivative.
-   mathieu_modcem2 -- Even modified Mathieu function of the second kind and its derivative.
-   mathieu_modsem1 -- Odd modified Mathieu function of the first kind and its derivative.
-   mathieu_modsem2 -- Odd modified Mathieu function of the second kind and its derivative.
-
-Spheroidal wave functions
--------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   pro_ang1   -- Prolate spheroidal angular function of the first kind and its derivative.
-   pro_rad1   -- Prolate spheroidal radial function of the first kind and its derivative.
-   pro_rad2   -- Prolate spheroidal radial function of the second kind and its derivative.
-   obl_ang1   -- Oblate spheroidal angular function of the first kind and its derivative.
-   obl_rad1   -- Oblate spheroidal radial function of the first kind and its derivative.
-   obl_rad2   -- Oblate spheroidal radial function of the second kind and its derivative.
-   pro_cv     -- Characteristic value of prolate spheroidal function.
-   obl_cv     -- Characteristic value of oblate spheroidal function.
-   pro_cv_seq -- Characteristic values for prolate spheroidal wave functions.
-   obl_cv_seq -- Characteristic values for oblate spheroidal wave functions.
-
-The following functions require pre-computed characteristic value:
-
-.. autosummary::
-   :toctree: generated/
-
-   pro_ang1_cv -- Prolate spheroidal angular function pro_ang1 for precomputed characteristic value.
-   pro_rad1_cv -- Prolate spheroidal radial function pro_rad1 for precomputed characteristic value.
-   pro_rad2_cv -- Prolate spheroidal radial function pro_rad2 for precomputed characteristic value.
-   obl_ang1_cv -- Oblate spheroidal angular function obl_ang1 for precomputed characteristic value.
-   obl_rad1_cv -- Oblate spheroidal radial function obl_rad1 for precomputed characteristic value.
-   obl_rad2_cv -- Oblate spheroidal radial function obl_rad2 for precomputed characteristic value.
-
-Kelvin functions
-----------------
-
-.. autosummary::
-   :toctree: generated/
-
-   kelvin       -- Kelvin functions as complex numbers.
-   kelvin_zeros -- Compute nt zeros of all Kelvin functions.
-   ber          -- Kelvin function ber.
-   bei          -- Kelvin function bei
-   berp         -- Derivative of the Kelvin function `ber`.
-   beip         -- Derivative of the Kelvin function `bei`.
-   ker          -- Kelvin function ker.
-   kei          -- Kelvin function ker.
-   kerp         -- Derivative of the Kelvin function ker.
-   keip         -- Derivative of the Kelvin function kei.
-
-The following functions do not accept NumPy arrays (they are not
-universal functions):
-
-.. autosummary::
-   :toctree: generated/
-
-   ber_zeros  -- Compute nt zeros of the Kelvin function ber(x).
-   bei_zeros  -- Compute nt zeros of the Kelvin function bei(x).
-   berp_zeros -- Compute nt zeros of the Kelvin function ber'(x).
-   beip_zeros -- Compute nt zeros of the Kelvin function bei'(x).
-   ker_zeros  -- Compute nt zeros of the Kelvin function ker(x).
-   kei_zeros  -- Compute nt zeros of the Kelvin function kei(x).
-   kerp_zeros -- Compute nt zeros of the Kelvin function ker'(x).
-   keip_zeros -- Compute nt zeros of the Kelvin function kei'(x).
-
-Combinatorics
--------------
-
-.. autosummary::
-   :toctree: generated/
-
-   comb -- The number of combinations of N things taken k at a time.
-   perm -- Permutations of N things taken k at a time, i.e., k-permutations of N.
-   stirling2 -- Stirling numbers of the second kind.
-
-Lambert W and related functions
--------------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   lambertw    -- Lambert W function.
-   wrightomega -- Wright Omega function.
-
-Other special functions
------------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   agm         -- Arithmetic, Geometric Mean.
-   bernoulli   -- Bernoulli numbers B0..Bn (inclusive).
-   binom       -- Binomial coefficient
-   diric       -- Periodic sinc function, also called the Dirichlet function.
-   euler       -- Euler numbers E0..En (inclusive).
-   expn        -- Exponential integral E_n.
-   exp1        -- Exponential integral E_1 of complex argument z.
-   expi        -- Exponential integral Ei.
-   factorial   -- The factorial of a number or array of numbers.
-   factorial2  -- Double factorial.
-   factorialk  -- Multifactorial of n of order k, n(!!...!).
-   shichi      -- Hyperbolic sine and cosine integrals.
-   sici        -- Sine and cosine integrals.
-   softmax     -- Softmax function.
-   log_softmax -- Logarithm of softmax function.
-   spence      -- Spence's function, also known as the dilogarithm.
-   zeta        -- Riemann zeta function.
-   zetac       -- Riemann zeta function minus 1.
-
-Convenience functions
----------------------
-
-.. autosummary::
-   :toctree: generated/
-
-   cbrt      -- Cube root of `x`.
-   exp10     -- 10**x.
-   exp2      -- 2**x.
-   radian    -- Convert from degrees to radians.
-   cosdg     -- Cosine of the angle `x` given in degrees.
-   sindg     -- Sine of angle given in degrees.
-   tandg     -- Tangent of angle x given in degrees.
-   cotdg     -- Cotangent of the angle `x` given in degrees.
-   log1p     -- Calculates log(1+x) for use when `x` is near zero.
-   expm1     -- ``exp(x) - 1`` for use when `x` is near zero.
-   cosm1     -- ``cos(x) - 1`` for use when `x` is near zero.
-   powm1     -- ``x**y - 1`` for use when `y` is near zero or `x` is near 1.
-   round     -- Round to nearest integer.
-   xlogy     -- Compute ``x*log(y)`` so that the result is 0 if ``x = 0``.
-   xlog1py   -- Compute ``x*log1p(y)`` so that the result is 0 if ``x = 0``.
-   logsumexp -- Compute the log of the sum of exponentials of input elements.
-   exprel    -- Relative error exponential, (exp(x)-1)/x, for use when `x` is near zero.
-   sinc      -- Return the sinc function.
-
-"""  # noqa: E501
-
-import os
-import warnings
-
-
-def _load_libsf_error_state():
-    """Load libsf_error_state.dll shared library on Windows
-
-    libsf_error_state manages shared state used by
-    ``scipy.special.seterr`` and ``scipy.special.geterr`` so that these
-    can work consistently between special functions provided by different
-    extension modules. This shared library is installed in scipy/special
-    alongside this __init__.py file. Due to lack of rpath support, Windows
-    cannot find shared libraries installed within wheels. To circumvent this,
-    we pre-load ``lib_sf_error_state.dll`` when on Windows.
-
-    The logic for this function was borrowed from the function ``make_init``
-    in `scipy/tools/openblas_support.py`:
-    https://github.com/scipy/scipy/blob/bb92c8014e21052e7dde67a76b28214dd1dcb94a/tools/openblas_support.py#L239-L274
-    """  # noqa: E501
-    if os.name == "nt":
-        try:
-            from ctypes import WinDLL
-            basedir = os.path.dirname(__file__)
-        except:  # noqa: E722
-            pass
-        else:
-            dll_path = os.path.join(basedir, "libsf_error_state.dll")
-            if os.path.exists(dll_path):
-                WinDLL(dll_path)
-
-
-_load_libsf_error_state()
-
-
-from ._sf_error import SpecialFunctionWarning, SpecialFunctionError
-
-from . import _ufuncs
-from ._ufuncs import *
-
-# Replace some function definitions from _ufuncs to add Array API support
-from ._support_alternative_backends import (
-    log_ndtr, ndtr, ndtri, erf, erfc, i0, i0e, i1, i1e, gammaln,
-    gammainc, gammaincc, logit, expit, entr, rel_entr, xlogy, chdtrc)
-
-from . import _basic
-from ._basic import *
-
-from ._logsumexp import logsumexp, softmax, log_softmax
-
-from . import _orthogonal
-from ._orthogonal import *
-
-from ._spfun_stats import multigammaln
-from ._ellip_harm import (
-    ellip_harm,
-    ellip_harm_2,
-    ellip_normal
-)
-from ._lambertw import lambertw
-from ._spherical_bessel import (
-    spherical_jn,
-    spherical_yn,
-    spherical_in,
-    spherical_kn
-)
-
-# Deprecated namespaces, to be removed in v2.0.0
-from . import add_newdocs, basic, orthogonal, specfun, sf_error, spfun_stats
-
-# We replace some function definitions from _ufuncs with those from
-# _support_alternative_backends above, but those are all listed in _ufuncs.__all__,
-# so there is no need to consider _support_alternative_backends.__all__ here.
-__all__ = _ufuncs.__all__ + _basic.__all__ + _orthogonal.__all__
-__all__ += [
-    'SpecialFunctionWarning',
-    'SpecialFunctionError',
-    'logsumexp',
-    'softmax',
-    'log_softmax',
-    'multigammaln',
-    'ellip_harm',
-    'ellip_harm_2',
-    'ellip_normal',
-    'lambertw',
-    'spherical_jn',
-    'spherical_yn',
-    'spherical_in',
-    'spherical_kn',
-]
-
-from scipy._lib._testutils import PytestTester
-test = PytestTester(__name__)
-del PytestTester
-
-_depr_msg = ('\nThis function was deprecated in SciPy 1.12.0, and will be '
-             'removed in SciPy 1.14.0.  Use scipy.special.{} instead.')
-
-
-def btdtr(*args, **kwargs):  # type: ignore [no-redef]
-    warnings.warn(_depr_msg.format('betainc'), category=DeprecationWarning,
-                  stacklevel=2)
-    return _ufuncs.btdtr(*args, **kwargs)
-
-
-btdtr.__doc__ = _ufuncs.btdtr.__doc__  # type: ignore [misc]
-
-
-def btdtri(*args, **kwargs):  # type: ignore [no-redef]
-    warnings.warn(_depr_msg.format('betaincinv'), category=DeprecationWarning,
-                  stacklevel=2)
-    return _ufuncs.btdtri(*args, **kwargs)
-
-
-btdtri.__doc__ = _ufuncs.btdtri.__doc__  # type: ignore [misc]
-
-
-def _get_include():
-    """This function is for development purposes only.
-
-    This function could disappear or its behavior could change at any time.
-    """
-    import os
-    return os.path.dirname(__file__)
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_add_newdocs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_add_newdocs.py
deleted file mode 100644
index 17b4457e98197e55ccc115f23020df4e930e21e6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_add_newdocs.py
+++ /dev/null
@@ -1,12847 +0,0 @@
-# Docstrings for generated ufuncs
-#
-# The syntax is designed to look like the function add_newdoc is being
-# called from numpy.lib, but in this file add_newdoc puts the
-# docstrings in a dictionary. This dictionary is used in
-# _generate_pyx.py to generate the docstrings for the ufuncs in
-# scipy.special at the C level when the ufuncs are created at compile
-# time.
-
-docdict: dict[str, str] = {}
-
-
-def get(name):
-    return docdict.get(name)
-
-
-def add_newdoc(name, doc):
-    docdict[name] = doc
-
-
-add_newdoc("_sf_error_test_function",
-    """
-    Private function; do not use.
-    """)
-
-
-add_newdoc("_cosine_cdf",
-    """
-    _cosine_cdf(x)
-
-    Cumulative distribution function (CDF) of the cosine distribution::
-
-                 {             0,              x < -pi
-        cdf(x) = { (pi + x + sin(x))/(2*pi),   -pi <= x <= pi
-                 {             1,              x > pi
-
-    Parameters
-    ----------
-    x : array_like
-        `x` must contain real numbers.
-
-    Returns
-    -------
-    scalar or ndarray
-        The cosine distribution CDF evaluated at `x`.
-
-    """)
-
-add_newdoc("_cosine_invcdf",
-    """
-    _cosine_invcdf(p)
-
-    Inverse of the cumulative distribution function (CDF) of the cosine
-    distribution.
-
-    The CDF of the cosine distribution is::
-
-        cdf(x) = (pi + x + sin(x))/(2*pi)
-
-    This function computes the inverse of cdf(x).
-
-    Parameters
-    ----------
-    p : array_like
-        `p` must contain real numbers in the interval ``0 <= p <= 1``.
-        `nan` is returned for values of `p` outside the interval [0, 1].
-
-    Returns
-    -------
-    scalar or ndarray
-        The inverse of the cosine distribution CDF evaluated at `p`.
-
-    """)
-
-add_newdoc("_ellip_harm",
-    """
-    Internal function, use `ellip_harm` instead.
-    """)
-
-add_newdoc("_ellip_norm",
-    """
-    Internal function, use `ellip_norm` instead.
-    """)
-
-add_newdoc("voigt_profile",
-    r"""
-    voigt_profile(x, sigma, gamma, out=None)
-
-    Voigt profile.
-
-    The Voigt profile is a convolution of a 1-D Normal distribution with
-    standard deviation ``sigma`` and a 1-D Cauchy distribution with half-width at
-    half-maximum ``gamma``.
-
-    If ``sigma = 0``, PDF of Cauchy distribution is returned.
-    Conversely, if ``gamma = 0``, PDF of Normal distribution is returned.
-    If ``sigma = gamma = 0``, the return value is ``Inf`` for ``x = 0``,
-    and ``0`` for all other ``x``.
-
-    Parameters
-    ----------
-    x : array_like
-        Real argument
-    sigma : array_like
-        The standard deviation of the Normal distribution part
-    gamma : array_like
-        The half-width at half-maximum of the Cauchy distribution part
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        The Voigt profile at the given arguments
-
-    See Also
-    --------
-    wofz : Faddeeva function
-
-    Notes
-    -----
-    It can be expressed in terms of Faddeeva function
-
-    .. math:: V(x; \sigma, \gamma) = \frac{Re[w(z)]}{\sigma\sqrt{2\pi}},
-    .. math:: z = \frac{x + i\gamma}{\sqrt{2}\sigma}
-
-    where :math:`w(z)` is the Faddeeva function.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Voigt_profile
-
-    Examples
-    --------
-    Calculate the function at point 2 for ``sigma=1`` and ``gamma=1``.
-
-    >>> from scipy.special import voigt_profile
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> voigt_profile(2, 1., 1.)
-    0.09071519942627544
-
-    Calculate the function at several points by providing a NumPy array
-    for `x`.
-
-    >>> values = np.array([-2., 0., 5])
-    >>> voigt_profile(values, 1., 1.)
-    array([0.0907152 , 0.20870928, 0.01388492])
-
-    Plot the function for different parameter sets.
-
-    >>> fig, ax = plt.subplots(figsize=(8, 8))
-    >>> x = np.linspace(-10, 10, 500)
-    >>> parameters_list = [(1.5, 0., "solid"), (1.3, 0.5, "dashed"),
-    ...                    (0., 1.8, "dotted"), (1., 1., "dashdot")]
-    >>> for params in parameters_list:
-    ...     sigma, gamma, linestyle = params
-    ...     voigt = voigt_profile(x, sigma, gamma)
-    ...     ax.plot(x, voigt, label=rf"$\sigma={sigma},\, \gamma={gamma}$",
-    ...             ls=linestyle)
-    >>> ax.legend()
-    >>> plt.show()
-
-    Verify visually that the Voigt profile indeed arises as the convolution
-    of a normal and a Cauchy distribution.
-
-    >>> from scipy.signal import convolve
-    >>> x, dx = np.linspace(-10, 10, 500, retstep=True)
-    >>> def gaussian(x, sigma):
-    ...     return np.exp(-0.5 * x**2/sigma**2)/(sigma * np.sqrt(2*np.pi))
-    >>> def cauchy(x, gamma):
-    ...     return gamma/(np.pi * (np.square(x)+gamma**2))
-    >>> sigma = 2
-    >>> gamma = 1
-    >>> gauss_profile = gaussian(x, sigma)
-    >>> cauchy_profile = cauchy(x, gamma)
-    >>> convolved = dx * convolve(cauchy_profile, gauss_profile, mode="same")
-    >>> voigt = voigt_profile(x, sigma, gamma)
-    >>> fig, ax = plt.subplots(figsize=(8, 8))
-    >>> ax.plot(x, gauss_profile, label="Gauss: $G$", c='b')
-    >>> ax.plot(x, cauchy_profile, label="Cauchy: $C$", c='y', ls="dashed")
-    >>> xx = 0.5*(x[1:] + x[:-1])  # midpoints
-    >>> ax.plot(xx, convolved[1:], label="Convolution: $G * C$", ls='dashdot',
-    ...         c='k')
-    >>> ax.plot(x, voigt, label="Voigt", ls='dotted', c='r')
-    >>> ax.legend()
-    >>> plt.show()
-    """)
-
-add_newdoc("wrightomega",
-    r"""
-    wrightomega(z, out=None)
-
-    Wright Omega function.
-
-    Defined as the solution to
-
-    .. math::
-
-        \omega + \log(\omega) = z
-
-    where :math:`\log` is the principal branch of the complex logarithm.
-
-    Parameters
-    ----------
-    z : array_like
-        Points at which to evaluate the Wright Omega function
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    omega : scalar or ndarray
-        Values of the Wright Omega function
-
-    See Also
-    --------
-    lambertw : The Lambert W function
-
-    Notes
-    -----
-    .. versionadded:: 0.19.0
-
-    The function can also be defined as
-
-    .. math::
-
-        \omega(z) = W_{K(z)}(e^z)
-
-    where :math:`K(z) = \lceil (\Im(z) - \pi)/(2\pi) \rceil` is the
-    unwinding number and :math:`W` is the Lambert W function.
-
-    The implementation here is taken from [1]_.
-
-    References
-    ----------
-    .. [1] Lawrence, Corless, and Jeffrey, "Algorithm 917: Complex
-           Double-Precision Evaluation of the Wright :math:`\omega`
-           Function." ACM Transactions on Mathematical Software,
-           2012. :doi:`10.1145/2168773.2168779`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import wrightomega, lambertw
-
-    >>> wrightomega([-2, -1, 0, 1, 2])
-    array([0.12002824, 0.27846454, 0.56714329, 1.        , 1.5571456 ])
-
-    Complex input:
-
-    >>> wrightomega(3 + 5j)
-    (1.5804428632097158+3.8213626783287937j)
-
-    Verify that ``wrightomega(z)`` satisfies ``w + log(w) = z``:
-
-    >>> w = -5 + 4j
-    >>> wrightomega(w + np.log(w))
-    (-5+4j)
-
-    Verify the connection to ``lambertw``:
-
-    >>> z = 0.5 + 3j
-    >>> wrightomega(z)
-    (0.0966015889280649+1.4937828458191993j)
-    >>> lambertw(np.exp(z))
-    (0.09660158892806493+1.4937828458191993j)
-
-    >>> z = 0.5 + 4j
-    >>> wrightomega(z)
-    (-0.3362123489037213+2.282986001579032j)
-    >>> lambertw(np.exp(z), k=1)
-    (-0.33621234890372115+2.282986001579032j)
-    """)
-
-
-add_newdoc("agm",
-    """
-    agm(a, b, out=None)
-
-    Compute the arithmetic-geometric mean of `a` and `b`.
-
-    Start with a_0 = a and b_0 = b and iteratively compute::
-
-        a_{n+1} = (a_n + b_n)/2
-        b_{n+1} = sqrt(a_n*b_n)
-
-    a_n and b_n converge to the same limit as n increases; their common
-    limit is agm(a, b).
-
-    Parameters
-    ----------
-    a, b : array_like
-        Real values only. If the values are both negative, the result
-        is negative. If one value is negative and the other is positive,
-        `nan` is returned.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        The arithmetic-geometric mean of `a` and `b`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import agm
-    >>> a, b = 24.0, 6.0
-    >>> agm(a, b)
-    13.458171481725614
-
-    Compare that result to the iteration:
-
-    >>> while a != b:
-    ...     a, b = (a + b)/2, np.sqrt(a*b)
-    ...     print("a = %19.16f  b=%19.16f" % (a, b))
-    ...
-    a = 15.0000000000000000  b=12.0000000000000000
-    a = 13.5000000000000000  b=13.4164078649987388
-    a = 13.4582039324993694  b=13.4581390309909850
-    a = 13.4581714817451772  b=13.4581714817060547
-    a = 13.4581714817256159  b=13.4581714817256159
-
-    When array-like arguments are given, broadcasting applies:
-
-    >>> a = np.array([[1.5], [3], [6]])  # a has shape (3, 1).
-    >>> b = np.array([6, 12, 24, 48])    # b has shape (4,).
-    >>> agm(a, b)
-    array([[  3.36454287,   5.42363427,   9.05798751,  15.53650756],
-           [  4.37037309,   6.72908574,  10.84726853,  18.11597502],
-           [  6.        ,   8.74074619,  13.45817148,  21.69453707]])
-    """)
-
-add_newdoc("airy",
-    r"""
-    airy(z, out=None)
-
-    Airy functions and their derivatives.
-
-    Parameters
-    ----------
-    z : array_like
-        Real or complex argument.
-    out : tuple of ndarray, optional
-        Optional output arrays for the function values
-
-    Returns
-    -------
-    Ai, Aip, Bi, Bip : 4-tuple of scalar or ndarray
-        Airy functions Ai and Bi, and their derivatives Aip and Bip.
-
-    See Also
-    --------
-    airye : exponentially scaled Airy functions.
-
-    Notes
-    -----
-    The Airy functions Ai and Bi are two independent solutions of
-
-    .. math:: y''(x) = x y(x).
-
-    For real `z` in [-10, 10], the computation is carried out by calling
-    the Cephes [1]_ `airy` routine, which uses power series summation
-    for small `z` and rational minimax approximations for large `z`.
-
-    Outside this range, the AMOS [2]_ `zairy` and `zbiry` routines are
-    employed.  They are computed using power series for :math:`|z| < 1` and
-    the following relations to modified Bessel functions for larger `z`
-    (where :math:`t \equiv 2 z^{3/2}/3`):
-
-    .. math::
-
-        Ai(z) = \frac{1}{\pi \sqrt{3}} K_{1/3}(t)
-
-        Ai'(z) = -\frac{z}{\pi \sqrt{3}} K_{2/3}(t)
-
-        Bi(z) = \sqrt{\frac{z}{3}} \left(I_{-1/3}(t) + I_{1/3}(t) \right)
-
-        Bi'(z) = \frac{z}{\sqrt{3}} \left(I_{-2/3}(t) + I_{2/3}(t)\right)
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-    .. [2] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-
-    Examples
-    --------
-    Compute the Airy functions on the interval [-15, 5].
-
-    >>> import numpy as np
-    >>> from scipy import special
-    >>> x = np.linspace(-15, 5, 201)
-    >>> ai, aip, bi, bip = special.airy(x)
-
-    Plot Ai(x) and Bi(x).
-
-    >>> import matplotlib.pyplot as plt
-    >>> plt.plot(x, ai, 'r', label='Ai(x)')
-    >>> plt.plot(x, bi, 'b--', label='Bi(x)')
-    >>> plt.ylim(-0.5, 1.0)
-    >>> plt.grid()
-    >>> plt.legend(loc='upper left')
-    >>> plt.show()
-
-    """)
-
-add_newdoc("airye",
-    """
-    airye(z, out=None)
-
-    Exponentially scaled Airy functions and their derivatives.
-
-    Scaling::
-
-        eAi  = Ai  * exp(2.0/3.0*z*sqrt(z))
-        eAip = Aip * exp(2.0/3.0*z*sqrt(z))
-        eBi  = Bi  * exp(-abs(2.0/3.0*(z*sqrt(z)).real))
-        eBip = Bip * exp(-abs(2.0/3.0*(z*sqrt(z)).real))
-
-    Parameters
-    ----------
-    z : array_like
-        Real or complex argument.
-    out : tuple of ndarray, optional
-        Optional output arrays for the function values
-
-    Returns
-    -------
-    eAi, eAip, eBi, eBip : 4-tuple of scalar or ndarray
-        Exponentially scaled Airy functions eAi and eBi, and their derivatives
-        eAip and eBip
-
-    See Also
-    --------
-    airy
-
-    Notes
-    -----
-    Wrapper for the AMOS [1]_ routines `zairy` and `zbiry`.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-
-    Examples
-    --------
-    We can compute exponentially scaled Airy functions and their derivatives:
-
-    >>> import numpy as np
-    >>> from scipy.special import airye
-    >>> import matplotlib.pyplot as plt
-    >>> z = np.linspace(0, 50, 500)
-    >>> eAi, eAip, eBi, eBip = airye(z)
-    >>> f, ax = plt.subplots(2, 1, sharex=True)
-    >>> for ind, data in enumerate([[eAi, eAip, ["eAi", "eAip"]],
-    ...                             [eBi, eBip, ["eBi", "eBip"]]]):
-    ...     ax[ind].plot(z, data[0], "-r", z, data[1], "-b")
-    ...     ax[ind].legend(data[2])
-    ...     ax[ind].grid(True)
-    >>> plt.show()
-
-    We can compute these using usual non-scaled Airy functions by:
-
-    >>> from scipy.special import airy
-    >>> Ai, Aip, Bi, Bip = airy(z)
-    >>> np.allclose(eAi, Ai * np.exp(2.0 / 3.0 * z * np.sqrt(z)))
-    True
-    >>> np.allclose(eAip, Aip * np.exp(2.0 / 3.0 * z * np.sqrt(z)))
-    True
-    >>> np.allclose(eBi, Bi * np.exp(-abs(np.real(2.0 / 3.0 * z * np.sqrt(z)))))
-    True
-    >>> np.allclose(eBip, Bip * np.exp(-abs(np.real(2.0 / 3.0 * z * np.sqrt(z)))))
-    True
-
-    Comparing non-scaled and exponentially scaled ones, the usual non-scaled
-    function quickly underflows for large values, whereas the exponentially
-    scaled function does not.
-
-    >>> airy(200)
-    (0.0, 0.0, nan, nan)
-    >>> airye(200)
-    (0.07501041684381093, -1.0609012305109042, 0.15003188417418148, 2.1215836725571093)
-
-    """)
-
-add_newdoc("bdtr",
-    r"""
-    bdtr(k, n, p, out=None)
-
-    Binomial distribution cumulative distribution function.
-
-    Sum of the terms 0 through `floor(k)` of the Binomial probability density.
-
-    .. math::
-        \mathrm{bdtr}(k, n, p) =
-        \sum_{j=0}^{\lfloor k \rfloor} {{n}\choose{j}} p^j (1-p)^{n-j}
-
-    Parameters
-    ----------
-    k : array_like
-        Number of successes (double), rounded down to the nearest integer.
-    n : array_like
-        Number of events (int).
-    p : array_like
-        Probability of success in a single event (float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    y : scalar or ndarray
-        Probability of `floor(k)` or fewer successes in `n` independent events with
-        success probabilities of `p`.
-
-    Notes
-    -----
-    The terms are not summed directly; instead the regularized incomplete beta
-    function is employed, according to the formula,
-
-    .. math::
-        \mathrm{bdtr}(k, n, p) =
-        I_{1 - p}(n - \lfloor k \rfloor, \lfloor k \rfloor + 1).
-
-    Wrapper for the Cephes [1]_ routine `bdtr`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    """)
-
-add_newdoc("bdtrc",
-    r"""
-    bdtrc(k, n, p, out=None)
-
-    Binomial distribution survival function.
-
-    Sum of the terms `floor(k) + 1` through `n` of the binomial probability
-    density,
-
-    .. math::
-        \mathrm{bdtrc}(k, n, p) =
-        \sum_{j=\lfloor k \rfloor +1}^n {{n}\choose{j}} p^j (1-p)^{n-j}
-
-    Parameters
-    ----------
-    k : array_like
-        Number of successes (double), rounded down to nearest integer.
-    n : array_like
-        Number of events (int)
-    p : array_like
-        Probability of success in a single event.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    y : scalar or ndarray
-        Probability of `floor(k) + 1` or more successes in `n` independent
-        events with success probabilities of `p`.
-
-    See Also
-    --------
-    bdtr
-    betainc
-
-    Notes
-    -----
-    The terms are not summed directly; instead the regularized incomplete beta
-    function is employed, according to the formula,
-
-    .. math::
-        \mathrm{bdtrc}(k, n, p) = I_{p}(\lfloor k \rfloor + 1, n - \lfloor k \rfloor).
-
-    Wrapper for the Cephes [1]_ routine `bdtrc`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    """)
-
-add_newdoc("bdtri",
-    r"""
-    bdtri(k, n, y, out=None)
-
-    Inverse function to `bdtr` with respect to `p`.
-
-    Finds the event probability `p` such that the sum of the terms 0 through
-    `k` of the binomial probability density is equal to the given cumulative
-    probability `y`.
-
-    Parameters
-    ----------
-    k : array_like
-        Number of successes (float), rounded down to the nearest integer.
-    n : array_like
-        Number of events (float)
-    y : array_like
-        Cumulative probability (probability of `k` or fewer successes in `n`
-        events).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    p : scalar or ndarray
-        The event probability such that `bdtr(\lfloor k \rfloor, n, p) = y`.
-
-    See Also
-    --------
-    bdtr
-    betaincinv
-
-    Notes
-    -----
-    The computation is carried out using the inverse beta integral function
-    and the relation,::
-
-        1 - p = betaincinv(n - k, k + 1, y).
-
-    Wrapper for the Cephes [1]_ routine `bdtri`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-    """)
-
-add_newdoc("bdtrik",
-    """
-    bdtrik(y, n, p, out=None)
-
-    Inverse function to `bdtr` with respect to `k`.
-
-    Finds the number of successes `k` such that the sum of the terms 0 through
-    `k` of the Binomial probability density for `n` events with probability
-    `p` is equal to the given cumulative probability `y`.
-
-    Parameters
-    ----------
-    y : array_like
-        Cumulative probability (probability of `k` or fewer successes in `n`
-        events).
-    n : array_like
-        Number of events (float).
-    p : array_like
-        Success probability (float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    k : scalar or ndarray
-        The number of successes `k` such that `bdtr(k, n, p) = y`.
-
-    See Also
-    --------
-    bdtr
-
-    Notes
-    -----
-    Formula 26.5.24 of [1]_ is used to reduce the binomial distribution to the
-    cumulative incomplete beta distribution.
-
-    Computation of `k` involves a search for a value that produces the desired
-    value of `y`. The search relies on the monotonicity of `y` with `k`.
-
-    Wrapper for the CDFLIB [2]_ Fortran routine `cdfbin`.
-
-    References
-    ----------
-    .. [1] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-    .. [2] Barry Brown, James Lovato, and Kathy Russell,
-           CDFLIB: Library of Fortran Routines for Cumulative Distribution
-           Functions, Inverses, and Other Parameters.
-
-    """)
-
-add_newdoc("bdtrin",
-    """
-    bdtrin(k, y, p, out=None)
-
-    Inverse function to `bdtr` with respect to `n`.
-
-    Finds the number of events `n` such that the sum of the terms 0 through
-    `k` of the Binomial probability density for events with probability `p` is
-    equal to the given cumulative probability `y`.
-
-    Parameters
-    ----------
-    k : array_like
-        Number of successes (float).
-    y : array_like
-        Cumulative probability (probability of `k` or fewer successes in `n`
-        events).
-    p : array_like
-        Success probability (float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    n : scalar or ndarray
-        The number of events `n` such that `bdtr(k, n, p) = y`.
-
-    See Also
-    --------
-    bdtr
-
-    Notes
-    -----
-    Formula 26.5.24 of [1]_ is used to reduce the binomial distribution to the
-    cumulative incomplete beta distribution.
-
-    Computation of `n` involves a search for a value that produces the desired
-    value of `y`. The search relies on the monotonicity of `y` with `n`.
-
-    Wrapper for the CDFLIB [2]_ Fortran routine `cdfbin`.
-
-    References
-    ----------
-    .. [1] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-    .. [2] Barry Brown, James Lovato, and Kathy Russell,
-           CDFLIB: Library of Fortran Routines for Cumulative Distribution
-           Functions, Inverses, and Other Parameters.
-    """)
-
-add_newdoc("btdtria",
-    r"""
-    btdtria(p, b, x, out=None)
-
-    Inverse of `btdtr` with respect to `a`.
-
-    This is the inverse of the beta cumulative distribution function, `btdtr`,
-    considered as a function of `a`, returning the value of `a` for which
-    `btdtr(a, b, x) = p`, or
-
-    .. math::
-        p = \int_0^x \frac{\Gamma(a + b)}{\Gamma(a)\Gamma(b)} t^{a-1} (1-t)^{b-1}\,dt
-
-    Parameters
-    ----------
-    p : array_like
-        Cumulative probability, in [0, 1].
-    b : array_like
-        Shape parameter (`b` > 0).
-    x : array_like
-        The quantile, in [0, 1].
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    a : scalar or ndarray
-        The value of the shape parameter `a` such that `btdtr(a, b, x) = p`.
-
-    See Also
-    --------
-    btdtr : Cumulative distribution function of the beta distribution.
-    btdtri : Inverse with respect to `x`.
-    btdtrib : Inverse with respect to `b`.
-
-    Notes
-    -----
-    Wrapper for the CDFLIB [1]_ Fortran routine `cdfbet`.
-
-    The cumulative distribution function `p` is computed using a routine by
-    DiDinato and Morris [2]_. Computation of `a` involves a search for a value
-    that produces the desired value of `p`. The search relies on the
-    monotonicity of `p` with `a`.
-
-    References
-    ----------
-    .. [1] Barry Brown, James Lovato, and Kathy Russell,
-           CDFLIB: Library of Fortran Routines for Cumulative Distribution
-           Functions, Inverses, and Other Parameters.
-    .. [2] DiDinato, A. R. and Morris, A. H.,
-           Algorithm 708: Significant Digit Computation of the Incomplete Beta
-           Function Ratios. ACM Trans. Math. Softw. 18 (1993), 360-373.
-
-    """)
-
-add_newdoc("btdtrib",
-    r"""
-    btdtria(a, p, x, out=None)
-
-    Inverse of `btdtr` with respect to `b`.
-
-    This is the inverse of the beta cumulative distribution function, `btdtr`,
-    considered as a function of `b`, returning the value of `b` for which
-    `btdtr(a, b, x) = p`, or
-
-    .. math::
-        p = \int_0^x \frac{\Gamma(a + b)}{\Gamma(a)\Gamma(b)} t^{a-1} (1-t)^{b-1}\,dt
-
-    Parameters
-    ----------
-    a : array_like
-        Shape parameter (`a` > 0).
-    p : array_like
-        Cumulative probability, in [0, 1].
-    x : array_like
-        The quantile, in [0, 1].
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    b : scalar or ndarray
-        The value of the shape parameter `b` such that `btdtr(a, b, x) = p`.
-
-    See Also
-    --------
-    btdtr : Cumulative distribution function of the beta distribution.
-    btdtri : Inverse with respect to `x`.
-    btdtria : Inverse with respect to `a`.
-
-    Notes
-    -----
-    Wrapper for the CDFLIB [1]_ Fortran routine `cdfbet`.
-
-    The cumulative distribution function `p` is computed using a routine by
-    DiDinato and Morris [2]_. Computation of `b` involves a search for a value
-    that produces the desired value of `p`. The search relies on the
-    monotonicity of `p` with `b`.
-
-    References
-    ----------
-    .. [1] Barry Brown, James Lovato, and Kathy Russell,
-           CDFLIB: Library of Fortran Routines for Cumulative Distribution
-           Functions, Inverses, and Other Parameters.
-    .. [2] DiDinato, A. R. and Morris, A. H.,
-           Algorithm 708: Significant Digit Computation of the Incomplete Beta
-           Function Ratios. ACM Trans. Math. Softw. 18 (1993), 360-373.
-
-
-    """)
-
-add_newdoc("besselpoly",
-    r"""
-    besselpoly(a, lmb, nu, out=None)
-
-    Weighted integral of the Bessel function of the first kind.
-
-    Computes
-
-    .. math::
-
-       \int_0^1 x^\lambda J_\nu(2 a x) \, dx
-
-    where :math:`J_\nu` is a Bessel function and :math:`\lambda=lmb`,
-    :math:`\nu=nu`.
-
-    Parameters
-    ----------
-    a : array_like
-        Scale factor inside the Bessel function.
-    lmb : array_like
-        Power of `x`
-    nu : array_like
-        Order of the Bessel function.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Value of the integral.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Evaluate the function for one parameter set.
-
-    >>> from scipy.special import besselpoly
-    >>> besselpoly(1, 1, 1)
-    0.24449718372863877
-
-    Evaluate the function for different scale factors.
-
-    >>> import numpy as np
-    >>> factors = np.array([0., 3., 6.])
-    >>> besselpoly(factors, 1, 1)
-    array([ 0.        , -0.00549029,  0.00140174])
-
-    Plot the function for varying powers, orders and scales.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> powers = np.linspace(0, 10, 100)
-    >>> orders = [1, 2, 3]
-    >>> scales = [1, 2]
-    >>> all_combinations = [(order, scale) for order in orders
-    ...                     for scale in scales]
-    >>> for order, scale in all_combinations:
-    ...     ax.plot(powers, besselpoly(scale, powers, order),
-    ...             label=rf"$\nu={order}, a={scale}$")
-    >>> ax.legend()
-    >>> ax.set_xlabel(r"$\lambda$")
-    >>> ax.set_ylabel(r"$\int_0^1 x^{\lambda} J_{\nu}(2ax)\,dx$")
-    >>> plt.show()
-    """)
-
-add_newdoc("beta",
-    r"""
-    beta(a, b, out=None)
-
-    Beta function.
-
-    This function is defined in [1]_ as
-
-    .. math::
-
-        B(a, b) = \int_0^1 t^{a-1}(1-t)^{b-1}dt
-                = \frac{\Gamma(a)\Gamma(b)}{\Gamma(a+b)},
-
-    where :math:`\Gamma` is the gamma function.
-
-    Parameters
-    ----------
-    a, b : array_like
-        Real-valued arguments
-    out : ndarray, optional
-        Optional output array for the function result
-
-    Returns
-    -------
-    scalar or ndarray
-        Value of the beta function
-
-    See Also
-    --------
-    gamma : the gamma function
-    betainc :  the regularized incomplete beta function
-    betaln : the natural logarithm of the absolute
-             value of the beta function
-
-    References
-    ----------
-    .. [1] NIST Digital Library of Mathematical Functions,
-           Eq. 5.12.1. https://dlmf.nist.gov/5.12
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    The beta function relates to the gamma function by the
-    definition given above:
-
-    >>> sc.beta(2, 3)
-    0.08333333333333333
-    >>> sc.gamma(2)*sc.gamma(3)/sc.gamma(2 + 3)
-    0.08333333333333333
-
-    As this relationship demonstrates, the beta function
-    is symmetric:
-
-    >>> sc.beta(1.7, 2.4)
-    0.16567527689031739
-    >>> sc.beta(2.4, 1.7)
-    0.16567527689031739
-
-    This function satisfies :math:`B(1, b) = 1/b`:
-
-    >>> sc.beta(1, 4)
-    0.25
-
-    """)
-
-add_newdoc(
-    "betainc",
-    r"""
-    betainc(a, b, x, out=None)
-
-    Regularized incomplete beta function.
-
-    Computes the regularized incomplete beta function, defined as [1]_:
-
-    .. math::
-
-        I_x(a, b) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \int_0^x
-        t^{a-1}(1-t)^{b-1}dt,
-
-    for :math:`0 \leq x \leq 1`.
-
-    This function is the cumulative distribution function for the beta
-    distribution; its range is [0, 1].
-
-    Parameters
-    ----------
-    a, b : array_like
-           Positive, real-valued parameters
-    x : array_like
-        Real-valued such that :math:`0 \leq x \leq 1`,
-        the upper limit of integration
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Value of the regularized incomplete beta function
-
-    See Also
-    --------
-    beta : beta function
-    betaincinv : inverse of the regularized incomplete beta function
-    betaincc : complement of the regularized incomplete beta function
-    scipy.stats.beta : beta distribution
-
-    Notes
-    -----
-    The term *regularized* in the name of this function refers to the
-    scaling of the function by the gamma function terms shown in the
-    formula.  When not qualified as *regularized*, the name *incomplete
-    beta function* often refers to just the integral expression,
-    without the gamma terms.  One can use the function `beta` from
-    `scipy.special` to get this "nonregularized" incomplete beta
-    function by multiplying the result of ``betainc(a, b, x)`` by
-    ``beta(a, b)``.
-
-    References
-    ----------
-    .. [1] NIST Digital Library of Mathematical Functions
-           https://dlmf.nist.gov/8.17
-
-    Examples
-    --------
-
-    Let :math:`B(a, b)` be the `beta` function.
-
-    >>> import scipy.special as sc
-
-    The coefficient in terms of `gamma` is equal to
-    :math:`1/B(a, b)`. Also, when :math:`x=1`
-    the integral is equal to :math:`B(a, b)`.
-    Therefore, :math:`I_{x=1}(a, b) = 1` for any :math:`a, b`.
-
-    >>> sc.betainc(0.2, 3.5, 1.0)
-    1.0
-
-    It satisfies
-    :math:`I_x(a, b) = x^a F(a, 1-b, a+1, x)/ (aB(a, b))`,
-    where :math:`F` is the hypergeometric function `hyp2f1`:
-
-    >>> a, b, x = 1.4, 3.1, 0.5
-    >>> x**a * sc.hyp2f1(a, 1 - b, a + 1, x)/(a * sc.beta(a, b))
-    0.8148904036225295
-    >>> sc.betainc(a, b, x)
-    0.8148904036225296
-
-    This functions satisfies the relationship
-    :math:`I_x(a, b) = 1 - I_{1-x}(b, a)`:
-
-    >>> sc.betainc(2.2, 3.1, 0.4)
-    0.49339638807619446
-    >>> 1 - sc.betainc(3.1, 2.2, 1 - 0.4)
-    0.49339638807619446
-
-    """)
-
-
-add_newdoc(
-    "betaincc",
-    r"""
-    betaincc(a, b, x, out=None)
-
-    Complement of the regularized incomplete beta function.
-
-    Computes the complement of the regularized incomplete beta function,
-    defined as [1]_:
-
-    .. math::
-
-        \bar{I}_x(a, b) = 1 - I_x(a, b)
-                        = 1 - \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \int_0^x
-                                  t^{a-1}(1-t)^{b-1}dt,
-
-    for :math:`0 \leq x \leq 1`.
-
-    Parameters
-    ----------
-    a, b : array_like
-           Positive, real-valued parameters
-    x : array_like
-        Real-valued such that :math:`0 \leq x \leq 1`,
-        the upper limit of integration
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Value of the regularized incomplete beta function
-
-    See Also
-    --------
-    betainc : regularized incomplete beta function
-    betaincinv : inverse of the regularized incomplete beta function
-    betainccinv :
-        inverse of the complement of the regularized incomplete beta function
-    beta : beta function
-    scipy.stats.beta : beta distribution
-
-    Notes
-    -----
-    .. versionadded:: 1.11.0
-
-    References
-    ----------
-    .. [1] NIST Digital Library of Mathematical Functions
-           https://dlmf.nist.gov/8.17
-
-    Examples
-    --------
-    >>> from scipy.special import betaincc, betainc
-
-    The naive calculation ``1 - betainc(a, b, x)`` loses precision when
-    the values of ``betainc(a, b, x)`` are close to 1:
-
-    >>> 1 - betainc(0.5, 8, [0.9, 0.99, 0.999])
-    array([2.0574632e-09, 0.0000000e+00, 0.0000000e+00])
-
-    By using ``betaincc``, we get the correct values:
-
-    >>> betaincc(0.5, 8, [0.9, 0.99, 0.999])
-    array([2.05746321e-09, 1.97259354e-17, 1.96467954e-25])
-
-    """)
-
-add_newdoc(
-    "betaincinv",
-    r"""
-    betaincinv(a, b, y, out=None)
-
-    Inverse of the regularized incomplete beta function.
-
-    Computes :math:`x` such that:
-
-    .. math::
-
-        y = I_x(a, b) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}
-        \int_0^x t^{a-1}(1-t)^{b-1}dt,
-
-    where :math:`I_x` is the normalized incomplete beta function `betainc`
-    and :math:`\Gamma` is the `gamma` function [1]_.
-
-    Parameters
-    ----------
-    a, b : array_like
-        Positive, real-valued parameters
-    y : array_like
-        Real-valued input
-    out : ndarray, optional
-        Optional output array for function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Value of the inverse of the regularized incomplete beta function
-
-    See Also
-    --------
-    betainc : regularized incomplete beta function
-    gamma : gamma function
-
-    References
-    ----------
-    .. [1] NIST Digital Library of Mathematical Functions
-           https://dlmf.nist.gov/8.17
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    This function is the inverse of `betainc` for fixed
-    values of :math:`a` and :math:`b`.
-
-    >>> a, b = 1.2, 3.1
-    >>> y = sc.betainc(a, b, 0.2)
-    >>> sc.betaincinv(a, b, y)
-    0.2
-    >>>
-    >>> a, b = 7.5, 0.4
-    >>> x = sc.betaincinv(a, b, 0.5)
-    >>> sc.betainc(a, b, x)
-    0.5
-
-    """)
-
-
-add_newdoc(
-    "betainccinv",
-    r"""
-    betainccinv(a, b, y, out=None)
-
-    Inverse of the complemented regularized incomplete beta function.
-
-    Computes :math:`x` such that:
-
-    .. math::
-
-        y = 1 - I_x(a, b) = 1 - \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}
-        \int_0^x t^{a-1}(1-t)^{b-1}dt,
-
-    where :math:`I_x` is the normalized incomplete beta function `betainc`
-    and :math:`\Gamma` is the `gamma` function [1]_.
-
-    Parameters
-    ----------
-    a, b : array_like
-        Positive, real-valued parameters
-    y : array_like
-        Real-valued input
-    out : ndarray, optional
-        Optional output array for function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Value of the inverse of the regularized incomplete beta function
-
-    See Also
-    --------
-    betainc : regularized incomplete beta function
-    betaincc : complement of the regularized incomplete beta function
-
-    Notes
-    -----
-    .. versionadded:: 1.11.0
-
-    References
-    ----------
-    .. [1] NIST Digital Library of Mathematical Functions
-           https://dlmf.nist.gov/8.17
-
-    Examples
-    --------
-    >>> from scipy.special import betainccinv, betaincc
-
-    This function is the inverse of `betaincc` for fixed
-    values of :math:`a` and :math:`b`.
-
-    >>> a, b = 1.2, 3.1
-    >>> y = betaincc(a, b, 0.2)
-    >>> betainccinv(a, b, y)
-    0.2
-
-    >>> a, b = 7, 2.5
-    >>> x = betainccinv(a, b, 0.875)
-    >>> betaincc(a, b, x)
-    0.875
-
-    """)
-
-add_newdoc("betaln",
-    """
-    betaln(a, b, out=None)
-
-    Natural logarithm of absolute value of beta function.
-
-    Computes ``ln(abs(beta(a, b)))``.
-
-    Parameters
-    ----------
-    a, b : array_like
-        Positive, real-valued parameters
-    out : ndarray, optional
-        Optional output array for function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Value of the betaln function
-
-    See Also
-    --------
-    gamma : the gamma function
-    betainc :  the regularized incomplete beta function
-    beta : the beta function
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import betaln, beta
-
-    Verify that, for moderate values of ``a`` and ``b``, ``betaln(a, b)``
-    is the same as ``log(beta(a, b))``:
-
-    >>> betaln(3, 4)
-    -4.0943445622221
-
-    >>> np.log(beta(3, 4))
-    -4.0943445622221
-
-    In the following ``beta(a, b)`` underflows to 0, so we can't compute
-    the logarithm of the actual value.
-
-    >>> a = 400
-    >>> b = 900
-    >>> beta(a, b)
-    0.0
-
-    We can compute the logarithm of ``beta(a, b)`` by using `betaln`:
-
-    >>> betaln(a, b)
-    -804.3069951764146
-
-    """)
-
-add_newdoc("boxcox",
-    """
-    boxcox(x, lmbda, out=None)
-
-    Compute the Box-Cox transformation.
-
-    The Box-Cox transformation is::
-
-        y = (x**lmbda - 1) / lmbda  if lmbda != 0
-            log(x)                  if lmbda == 0
-
-    Returns `nan` if ``x < 0``.
-    Returns `-inf` if ``x == 0`` and ``lmbda < 0``.
-
-    Parameters
-    ----------
-    x : array_like
-        Data to be transformed.
-    lmbda : array_like
-        Power parameter of the Box-Cox transform.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    y : scalar or ndarray
-        Transformed data.
-
-    Notes
-    -----
-
-    .. versionadded:: 0.14.0
-
-    Examples
-    --------
-    >>> from scipy.special import boxcox
-    >>> boxcox([1, 4, 10], 2.5)
-    array([   0.        ,   12.4       ,  126.09110641])
-    >>> boxcox(2, [0, 1, 2])
-    array([ 0.69314718,  1.        ,  1.5       ])
-    """)
-
-add_newdoc("boxcox1p",
-    """
-    boxcox1p(x, lmbda, out=None)
-
-    Compute the Box-Cox transformation of 1 + `x`.
-
-    The Box-Cox transformation computed by `boxcox1p` is::
-
-        y = ((1+x)**lmbda - 1) / lmbda  if lmbda != 0
-            log(1+x)                    if lmbda == 0
-
-    Returns `nan` if ``x < -1``.
-    Returns `-inf` if ``x == -1`` and ``lmbda < 0``.
-
-    Parameters
-    ----------
-    x : array_like
-        Data to be transformed.
-    lmbda : array_like
-        Power parameter of the Box-Cox transform.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    y : scalar or ndarray
-        Transformed data.
-
-    Notes
-    -----
-
-    .. versionadded:: 0.14.0
-
-    Examples
-    --------
-    >>> from scipy.special import boxcox1p
-    >>> boxcox1p(1e-4, [0, 0.5, 1])
-    array([  9.99950003e-05,   9.99975001e-05,   1.00000000e-04])
-    >>> boxcox1p([0.01, 0.1], 0.25)
-    array([ 0.00996272,  0.09645476])
-    """)
-
-add_newdoc("inv_boxcox",
-    """
-    inv_boxcox(y, lmbda, out=None)
-
-    Compute the inverse of the Box-Cox transformation.
-
-    Find ``x`` such that::
-
-        y = (x**lmbda - 1) / lmbda  if lmbda != 0
-            log(x)                  if lmbda == 0
-
-    Parameters
-    ----------
-    y : array_like
-        Data to be transformed.
-    lmbda : array_like
-        Power parameter of the Box-Cox transform.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    x : scalar or ndarray
-        Transformed data.
-
-    Notes
-    -----
-
-    .. versionadded:: 0.16.0
-
-    Examples
-    --------
-    >>> from scipy.special import boxcox, inv_boxcox
-    >>> y = boxcox([1, 4, 10], 2.5)
-    >>> inv_boxcox(y, 2.5)
-    array([1., 4., 10.])
-    """)
-
-add_newdoc("inv_boxcox1p",
-    """
-    inv_boxcox1p(y, lmbda, out=None)
-
-    Compute the inverse of the Box-Cox transformation.
-
-    Find ``x`` such that::
-
-        y = ((1+x)**lmbda - 1) / lmbda  if lmbda != 0
-            log(1+x)                    if lmbda == 0
-
-    Parameters
-    ----------
-    y : array_like
-        Data to be transformed.
-    lmbda : array_like
-        Power parameter of the Box-Cox transform.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    x : scalar or ndarray
-        Transformed data.
-
-    Notes
-    -----
-
-    .. versionadded:: 0.16.0
-
-    Examples
-    --------
-    >>> from scipy.special import boxcox1p, inv_boxcox1p
-    >>> y = boxcox1p([1, 4, 10], 2.5)
-    >>> inv_boxcox1p(y, 2.5)
-    array([1., 4., 10.])
-    """)
-
-add_newdoc("btdtr",
-    r"""
-    btdtr(a, b, x, out=None)
-
-    Cumulative distribution function of the beta distribution.
-
-    Returns the integral from zero to `x` of the beta probability density
-    function,
-
-    .. math::
-        I = \int_0^x \frac{\Gamma(a + b)}{\Gamma(a)\Gamma(b)} t^{a-1} (1-t)^{b-1}\,dt
-
-    where :math:`\Gamma` is the gamma function.
-
-    .. deprecated:: 1.12.0
-        This function is deprecated and will be removed from SciPy 1.14.0.
-        Use `scipy.special.betainc` instead.
-
-    Parameters
-    ----------
-    a : array_like
-        Shape parameter (a > 0).
-    b : array_like
-        Shape parameter (b > 0).
-    x : array_like
-        Upper limit of integration, in [0, 1].
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    I : scalar or ndarray
-        Cumulative distribution function of the beta distribution with
-        parameters `a` and `b` at `x`.
-
-    See Also
-    --------
-    betainc
-
-    Notes
-    -----
-    This function is identical to the incomplete beta integral function
-    `betainc`.
-
-    Wrapper for the Cephes [1]_ routine `btdtr`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    """)
-
-add_newdoc("btdtri",
-    r"""
-    btdtri(a, b, p, out=None)
-
-    The `p`-th quantile of the beta distribution.
-
-    This function is the inverse of the beta cumulative distribution function,
-    `btdtr`, returning the value of `x` for which `btdtr(a, b, x) = p`, or
-
-    .. math::
-        p = \int_0^x \frac{\Gamma(a + b)}{\Gamma(a)\Gamma(b)} t^{a-1} (1-t)^{b-1}\,dt
-
-    .. deprecated:: 1.12.0
-        This function is deprecated and will be removed from SciPy 1.14.0.
-        Use `scipy.special.betaincinv` instead.
-
-    Parameters
-    ----------
-    a : array_like
-        Shape parameter (`a` > 0).
-    b : array_like
-        Shape parameter (`b` > 0).
-    p : array_like
-        Cumulative probability, in [0, 1].
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    x : scalar or ndarray
-        The quantile corresponding to `p`.
-
-    See Also
-    --------
-    betaincinv
-    btdtr
-
-    Notes
-    -----
-    The value of `x` is found by interval halving or Newton iterations.
-
-    Wrapper for the Cephes [1]_ routine `incbi`, which solves the equivalent
-    problem of finding the inverse of the incomplete beta integral.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    """)
-
-add_newdoc("cbrt",
-    """
-    cbrt(x, out=None)
-
-    Element-wise cube root of `x`.
-
-    Parameters
-    ----------
-    x : array_like
-        `x` must contain real numbers.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        The cube root of each value in `x`.
-
-    Examples
-    --------
-    >>> from scipy.special import cbrt
-
-    >>> cbrt(8)
-    2.0
-    >>> cbrt([-8, -3, 0.125, 1.331])
-    array([-2.        , -1.44224957,  0.5       ,  1.1       ])
-
-    """)
-
-add_newdoc("chdtr",
-    r"""
-    chdtr(v, x, out=None)
-
-    Chi square cumulative distribution function.
-
-    Returns the area under the left tail (from 0 to `x`) of the Chi
-    square probability density function with `v` degrees of freedom:
-
-    .. math::
-
-        \frac{1}{2^{v/2} \Gamma(v/2)} \int_0^x t^{v/2 - 1} e^{-t/2} dt
-
-    Here :math:`\Gamma` is the Gamma function; see `gamma`. This
-    integral can be expressed in terms of the regularized lower
-    incomplete gamma function `gammainc` as
-    ``gammainc(v / 2, x / 2)``. [1]_
-
-    Parameters
-    ----------
-    v : array_like
-        Degrees of freedom.
-    x : array_like
-        Upper bound of the integral.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the cumulative distribution function.
-
-    See Also
-    --------
-    chdtrc, chdtri, chdtriv, gammainc
-
-    References
-    ----------
-    .. [1] Chi-Square distribution,
-        https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It can be expressed in terms of the regularized lower incomplete
-    gamma function.
-
-    >>> v = 1
-    >>> x = np.arange(4)
-    >>> sc.chdtr(v, x)
-    array([0.        , 0.68268949, 0.84270079, 0.91673548])
-    >>> sc.gammainc(v / 2, x / 2)
-    array([0.        , 0.68268949, 0.84270079, 0.91673548])
-
-    """)
-
-add_newdoc("chdtrc",
-    r"""
-    chdtrc(v, x, out=None)
-
-    Chi square survival function.
-
-    Returns the area under the right hand tail (from `x` to infinity)
-    of the Chi square probability density function with `v` degrees of
-    freedom:
-
-    .. math::
-
-        \frac{1}{2^{v/2} \Gamma(v/2)} \int_x^\infty t^{v/2 - 1} e^{-t/2} dt
-
-    Here :math:`\Gamma` is the Gamma function; see `gamma`. This
-    integral can be expressed in terms of the regularized upper
-    incomplete gamma function `gammaincc` as
-    ``gammaincc(v / 2, x / 2)``. [1]_
-
-    Parameters
-    ----------
-    v : array_like
-        Degrees of freedom.
-    x : array_like
-        Lower bound of the integral.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the survival function.
-
-    See Also
-    --------
-    chdtr, chdtri, chdtriv, gammaincc
-
-    References
-    ----------
-    .. [1] Chi-Square distribution,
-        https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It can be expressed in terms of the regularized upper incomplete
-    gamma function.
-
-    >>> v = 1
-    >>> x = np.arange(4)
-    >>> sc.chdtrc(v, x)
-    array([1.        , 0.31731051, 0.15729921, 0.08326452])
-    >>> sc.gammaincc(v / 2, x / 2)
-    array([1.        , 0.31731051, 0.15729921, 0.08326452])
-
-    """)
-
-add_newdoc("chdtri",
-    """
-    chdtri(v, p, out=None)
-
-    Inverse to `chdtrc` with respect to `x`.
-
-    Returns `x` such that ``chdtrc(v, x) == p``.
-
-    Parameters
-    ----------
-    v : array_like
-        Degrees of freedom.
-    p : array_like
-        Probability.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    x : scalar or ndarray
-        Value so that the probability a Chi square random variable
-        with `v` degrees of freedom is greater than `x` equals `p`.
-
-    See Also
-    --------
-    chdtrc, chdtr, chdtriv
-
-    References
-    ----------
-    .. [1] Chi-Square distribution,
-        https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    It inverts `chdtrc`.
-
-    >>> v, p = 1, 0.3
-    >>> sc.chdtrc(v, sc.chdtri(v, p))
-    0.3
-    >>> x = 1
-    >>> sc.chdtri(v, sc.chdtrc(v, x))
-    1.0
-
-    """)
-
-add_newdoc("chdtriv",
-    """
-    chdtriv(p, x, out=None)
-
-    Inverse to `chdtr` with respect to `v`.
-
-    Returns `v` such that ``chdtr(v, x) == p``.
-
-    Parameters
-    ----------
-    p : array_like
-        Probability that the Chi square random variable is less than
-        or equal to `x`.
-    x : array_like
-        Nonnegative input.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Degrees of freedom.
-
-    See Also
-    --------
-    chdtr, chdtrc, chdtri
-
-    References
-    ----------
-    .. [1] Chi-Square distribution,
-        https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    It inverts `chdtr`.
-
-    >>> p, x = 0.5, 1
-    >>> sc.chdtr(sc.chdtriv(p, x), x)
-    0.5000000000202172
-    >>> v = 1
-    >>> sc.chdtriv(sc.chdtr(v, x), v)
-    1.0000000000000013
-
-    """)
-
-add_newdoc("chndtr",
-    r"""
-    chndtr(x, df, nc, out=None)
-
-    Non-central chi square cumulative distribution function
-
-    The cumulative distribution function is given by:
-
-    .. math::
-
-        P(\chi^{\prime 2} \vert \nu, \lambda) =\sum_{j=0}^{\infty}
-        e^{-\lambda /2}
-        \frac{(\lambda /2)^j}{j!} P(\chi^{\prime 2} \vert \nu + 2j),
-
-    where :math:`\nu > 0` is the degrees of freedom (``df``) and
-    :math:`\lambda \geq 0` is the non-centrality parameter (``nc``).
-
-    Parameters
-    ----------
-    x : array_like
-        Upper bound of the integral; must satisfy ``x >= 0``
-    df : array_like
-        Degrees of freedom; must satisfy ``df > 0``
-    nc : array_like
-        Non-centrality parameter; must satisfy ``nc >= 0``
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    x : scalar or ndarray
-        Value of the non-central chi square cumulative distribution function.
-
-    See Also
-    --------
-    chndtrix, chndtridf, chndtrinc
-
-    """)
-
-add_newdoc("chndtrix",
-    """
-    chndtrix(p, df, nc, out=None)
-
-    Inverse to `chndtr` vs `x`
-
-    Calculated using a search to find a value for `x` that produces the
-    desired value of `p`.
-
-    Parameters
-    ----------
-    p : array_like
-        Probability; must satisfy ``0 <= p < 1``
-    df : array_like
-        Degrees of freedom; must satisfy ``df > 0``
-    nc : array_like
-        Non-centrality parameter; must satisfy ``nc >= 0``
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    x : scalar or ndarray
-        Value so that the probability a non-central Chi square random variable
-        with `df` degrees of freedom and non-centrality, `nc`, is greater than
-        `x` equals `p`.
-
-    See Also
-    --------
-    chndtr, chndtridf, chndtrinc
-
-    """)
-
-add_newdoc("chndtridf",
-    """
-    chndtridf(x, p, nc, out=None)
-
-    Inverse to `chndtr` vs `df`
-
-    Calculated using a search to find a value for `df` that produces the
-    desired value of `p`.
-
-    Parameters
-    ----------
-    x : array_like
-        Upper bound of the integral; must satisfy ``x >= 0``
-    p : array_like
-        Probability; must satisfy ``0 <= p < 1``
-    nc : array_like
-        Non-centrality parameter; must satisfy ``nc >= 0``
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    df : scalar or ndarray
-        Degrees of freedom
-
-    See Also
-    --------
-    chndtr, chndtrix, chndtrinc
-
-    """)
-
-add_newdoc("chndtrinc",
-    """
-    chndtrinc(x, df, p, out=None)
-
-    Inverse to `chndtr` vs `nc`
-
-    Calculated using a search to find a value for `df` that produces the
-    desired value of `p`.
-
-    Parameters
-    ----------
-    x : array_like
-        Upper bound of the integral; must satisfy ``x >= 0``
-    df : array_like
-        Degrees of freedom; must satisfy ``df > 0``
-    p : array_like
-        Probability; must satisfy ``0 <= p < 1``
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    nc : scalar or ndarray
-        Non-centrality
-
-    See Also
-    --------
-    chndtr, chndtrix, chndtrinc
-
-    """)
-
-add_newdoc("cosdg",
-    """
-    cosdg(x, out=None)
-
-    Cosine of the angle `x` given in degrees.
-
-    Parameters
-    ----------
-    x : array_like
-        Angle, given in degrees.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Cosine of the input.
-
-    See Also
-    --------
-    sindg, tandg, cotdg
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is more accurate than using cosine directly.
-
-    >>> x = 90 + 180 * np.arange(3)
-    >>> sc.cosdg(x)
-    array([-0.,  0., -0.])
-    >>> np.cos(x * np.pi / 180)
-    array([ 6.1232340e-17, -1.8369702e-16,  3.0616170e-16])
-
-    """)
-
-add_newdoc("cosm1",
-    """
-    cosm1(x, out=None)
-
-    cos(x) - 1 for use when `x` is near zero.
-
-    Parameters
-    ----------
-    x : array_like
-        Real valued argument.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of ``cos(x) - 1``.
-
-    See Also
-    --------
-    expm1, log1p
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is more accurate than computing ``cos(x) - 1`` directly for
-    ``x`` around 0.
-
-    >>> x = 1e-30
-    >>> np.cos(x) - 1
-    0.0
-    >>> sc.cosm1(x)
-    -5.0000000000000005e-61
-
-    """)
-
-add_newdoc("cotdg",
-    """
-    cotdg(x, out=None)
-
-    Cotangent of the angle `x` given in degrees.
-
-    Parameters
-    ----------
-    x : array_like
-        Angle, given in degrees.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Cotangent at the input.
-
-    See Also
-    --------
-    sindg, cosdg, tandg
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is more accurate than using cotangent directly.
-
-    >>> x = 90 + 180 * np.arange(3)
-    >>> sc.cotdg(x)
-    array([0., 0., 0.])
-    >>> 1 / np.tan(x * np.pi / 180)
-    array([6.1232340e-17, 1.8369702e-16, 3.0616170e-16])
-
-    """)
-
-add_newdoc("dawsn",
-    """
-    dawsn(x, out=None)
-
-    Dawson's integral.
-
-    Computes::
-
-        exp(-x**2) * integral(exp(t**2), t=0..x).
-
-    Parameters
-    ----------
-    x : array_like
-        Function parameter.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    y : scalar or ndarray
-        Value of the integral.
-
-    See Also
-    --------
-    wofz, erf, erfc, erfcx, erfi
-
-    References
-    ----------
-    .. [1] Steven G. Johnson, Faddeeva W function implementation.
-       http://ab-initio.mit.edu/Faddeeva
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import special
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(-15, 15, num=1000)
-    >>> plt.plot(x, special.dawsn(x))
-    >>> plt.xlabel('$x$')
-    >>> plt.ylabel('$dawsn(x)$')
-    >>> plt.show()
-
-    """)
-
-add_newdoc("ellipe",
-    r"""
-    ellipe(m, out=None)
-
-    Complete elliptic integral of the second kind
-
-    This function is defined as
-
-    .. math:: E(m) = \int_0^{\pi/2} [1 - m \sin(t)^2]^{1/2} dt
-
-    Parameters
-    ----------
-    m : array_like
-        Defines the parameter of the elliptic integral.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    E : scalar or ndarray
-        Value of the elliptic integral.
-
-    See Also
-    --------
-    ellipkm1 : Complete elliptic integral of the first kind, near `m` = 1
-    ellipk : Complete elliptic integral of the first kind
-    ellipkinc : Incomplete elliptic integral of the first kind
-    ellipeinc : Incomplete elliptic integral of the second kind
-    elliprd : Symmetric elliptic integral of the second kind.
-    elliprg : Completely-symmetric elliptic integral of the second kind.
-
-    Notes
-    -----
-    Wrapper for the Cephes [1]_ routine `ellpe`.
-
-    For `m > 0` the computation uses the approximation,
-
-    .. math:: E(m) \approx P(1-m) - (1-m) \log(1-m) Q(1-m),
-
-    where :math:`P` and :math:`Q` are tenth-order polynomials.  For
-    `m < 0`, the relation
-
-    .. math:: E(m) = E(m/(m - 1)) \sqrt(1-m)
-
-    is used.
-
-    The parameterization in terms of :math:`m` follows that of section
-    17.2 in [2]_. Other parameterizations in terms of the
-    complementary parameter :math:`1 - m`, modular angle
-    :math:`\sin^2(\alpha) = m`, or modulus :math:`k^2 = m` are also
-    used, so be careful that you choose the correct parameter.
-
-    The Legendre E integral is related to Carlson's symmetric R_D or R_G
-    functions in multiple ways [3]_. For example,
-
-    .. math:: E(m) = 2 R_G(0, 1-k^2, 1) .
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-    .. [2] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-    .. [3] NIST Digital Library of Mathematical
-           Functions. http://dlmf.nist.gov/, Release 1.0.28 of
-           2020-09-15. See Sec. 19.25(i) https://dlmf.nist.gov/19.25#i
-
-    Examples
-    --------
-    This function is used in finding the circumference of an
-    ellipse with semi-major axis `a` and semi-minor axis `b`.
-
-    >>> import numpy as np
-    >>> from scipy import special
-
-    >>> a = 3.5
-    >>> b = 2.1
-    >>> e_sq = 1.0 - b**2/a**2  # eccentricity squared
-
-    Then the circumference is found using the following:
-
-    >>> C = 4*a*special.ellipe(e_sq)  # circumference formula
-    >>> C
-    17.868899204378693
-
-    When `a` and `b` are the same (meaning eccentricity is 0),
-    this reduces to the circumference of a circle.
-
-    >>> 4*a*special.ellipe(0.0)  # formula for ellipse with a = b
-    21.991148575128552
-    >>> 2*np.pi*a  # formula for circle of radius a
-    21.991148575128552
-
-    """)
-
-add_newdoc("ellipeinc",
-    r"""
-    ellipeinc(phi, m, out=None)
-
-    Incomplete elliptic integral of the second kind
-
-    This function is defined as
-
-    .. math:: E(\phi, m) = \int_0^{\phi} [1 - m \sin(t)^2]^{1/2} dt
-
-    Parameters
-    ----------
-    phi : array_like
-        amplitude of the elliptic integral.
-    m : array_like
-        parameter of the elliptic integral.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    E : scalar or ndarray
-        Value of the elliptic integral.
-
-    See Also
-    --------
-    ellipkm1 : Complete elliptic integral of the first kind, near `m` = 1
-    ellipk : Complete elliptic integral of the first kind
-    ellipkinc : Incomplete elliptic integral of the first kind
-    ellipe : Complete elliptic integral of the second kind
-    elliprd : Symmetric elliptic integral of the second kind.
-    elliprf : Completely-symmetric elliptic integral of the first kind.
-    elliprg : Completely-symmetric elliptic integral of the second kind.
-
-    Notes
-    -----
-    Wrapper for the Cephes [1]_ routine `ellie`.
-
-    Computation uses arithmetic-geometric means algorithm.
-
-    The parameterization in terms of :math:`m` follows that of section
-    17.2 in [2]_. Other parameterizations in terms of the
-    complementary parameter :math:`1 - m`, modular angle
-    :math:`\sin^2(\alpha) = m`, or modulus :math:`k^2 = m` are also
-    used, so be careful that you choose the correct parameter.
-
-    The Legendre E incomplete integral can be related to combinations
-    of Carlson's symmetric integrals R_D, R_F, and R_G in multiple
-    ways [3]_. For example, with :math:`c = \csc^2\phi`,
-
-    .. math::
-      E(\phi, m) = R_F(c-1, c-k^2, c)
-        - \frac{1}{3} k^2 R_D(c-1, c-k^2, c) .
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-    .. [2] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-    .. [3] NIST Digital Library of Mathematical
-           Functions. http://dlmf.nist.gov/, Release 1.0.28 of
-           2020-09-15. See Sec. 19.25(i) https://dlmf.nist.gov/19.25#i
-    """)
-
-add_newdoc("ellipj",
-    """
-    ellipj(u, m, out=None)
-
-    Jacobian elliptic functions
-
-    Calculates the Jacobian elliptic functions of parameter `m` between
-    0 and 1, and real argument `u`.
-
-    Parameters
-    ----------
-    m : array_like
-        Parameter.
-    u : array_like
-        Argument.
-    out : tuple of ndarray, optional
-        Optional output arrays for the function values
-
-    Returns
-    -------
-    sn, cn, dn, ph : 4-tuple of scalar or ndarray
-        The returned functions::
-
-            sn(u|m), cn(u|m), dn(u|m)
-
-        The value `ph` is such that if `u = ellipkinc(ph, m)`,
-        then `sn(u|m) = sin(ph)` and `cn(u|m) = cos(ph)`.
-
-    See Also
-    --------
-    ellipk : Complete elliptic integral of the first kind
-    ellipkinc : Incomplete elliptic integral of the first kind
-
-    Notes
-    -----
-    Wrapper for the Cephes [1]_ routine `ellpj`.
-
-    These functions are periodic, with quarter-period on the real axis
-    equal to the complete elliptic integral `ellipk(m)`.
-
-    Relation to incomplete elliptic integral: If `u = ellipkinc(phi,m)`, then
-    `sn(u|m) = sin(phi)`, and `cn(u|m) = cos(phi)`. The `phi` is called
-    the amplitude of `u`.
-
-    Computation is by means of the arithmetic-geometric mean algorithm,
-    except when `m` is within 1e-9 of 0 or 1. In the latter case with `m`
-    close to 1, the approximation applies only for `phi < pi/2`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-    """)
-
-add_newdoc("ellipkm1",
-    """
-    ellipkm1(p, out=None)
-
-    Complete elliptic integral of the first kind around `m` = 1
-
-    This function is defined as
-
-    .. math:: K(p) = \\int_0^{\\pi/2} [1 - m \\sin(t)^2]^{-1/2} dt
-
-    where `m = 1 - p`.
-
-    Parameters
-    ----------
-    p : array_like
-        Defines the parameter of the elliptic integral as `m = 1 - p`.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    K : scalar or ndarray
-        Value of the elliptic integral.
-
-    See Also
-    --------
-    ellipk : Complete elliptic integral of the first kind
-    ellipkinc : Incomplete elliptic integral of the first kind
-    ellipe : Complete elliptic integral of the second kind
-    ellipeinc : Incomplete elliptic integral of the second kind
-    elliprf : Completely-symmetric elliptic integral of the first kind.
-
-    Notes
-    -----
-    Wrapper for the Cephes [1]_ routine `ellpk`.
-
-    For `p <= 1`, computation uses the approximation,
-
-    .. math:: K(p) \\approx P(p) - \\log(p) Q(p),
-
-    where :math:`P` and :math:`Q` are tenth-order polynomials.  The
-    argument `p` is used internally rather than `m` so that the logarithmic
-    singularity at `m = 1` will be shifted to the origin; this preserves
-    maximum accuracy.  For `p > 1`, the identity
-
-    .. math:: K(p) = K(1/p)/\\sqrt(p)
-
-    is used.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-    """)
-
-add_newdoc("ellipk",
-    r"""
-    ellipk(m, out=None)
-
-    Complete elliptic integral of the first kind.
-
-    This function is defined as
-
-    .. math:: K(m) = \int_0^{\pi/2} [1 - m \sin(t)^2]^{-1/2} dt
-
-    Parameters
-    ----------
-    m : array_like
-        The parameter of the elliptic integral.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    K : scalar or ndarray
-        Value of the elliptic integral.
-
-    See Also
-    --------
-    ellipkm1 : Complete elliptic integral of the first kind around m = 1
-    ellipkinc : Incomplete elliptic integral of the first kind
-    ellipe : Complete elliptic integral of the second kind
-    ellipeinc : Incomplete elliptic integral of the second kind
-    elliprf : Completely-symmetric elliptic integral of the first kind.
-
-    Notes
-    -----
-    For more precision around point m = 1, use `ellipkm1`, which this
-    function calls.
-
-    The parameterization in terms of :math:`m` follows that of section
-    17.2 in [1]_. Other parameterizations in terms of the
-    complementary parameter :math:`1 - m`, modular angle
-    :math:`\sin^2(\alpha) = m`, or modulus :math:`k^2 = m` are also
-    used, so be careful that you choose the correct parameter.
-
-    The Legendre K integral is related to Carlson's symmetric R_F
-    function by [2]_:
-
-    .. math:: K(m) = R_F(0, 1-k^2, 1) .
-
-    References
-    ----------
-    .. [1] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-    .. [2] NIST Digital Library of Mathematical
-           Functions. http://dlmf.nist.gov/, Release 1.0.28 of
-           2020-09-15. See Sec. 19.25(i) https://dlmf.nist.gov/19.25#i
-
-    """)
-
-add_newdoc("ellipkinc",
-    r"""
-    ellipkinc(phi, m, out=None)
-
-    Incomplete elliptic integral of the first kind
-
-    This function is defined as
-
-    .. math:: K(\phi, m) = \int_0^{\phi} [1 - m \sin(t)^2]^{-1/2} dt
-
-    This function is also called :math:`F(\phi, m)`.
-
-    Parameters
-    ----------
-    phi : array_like
-        amplitude of the elliptic integral
-    m : array_like
-        parameter of the elliptic integral
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    K : scalar or ndarray
-        Value of the elliptic integral
-
-    See Also
-    --------
-    ellipkm1 : Complete elliptic integral of the first kind, near `m` = 1
-    ellipk : Complete elliptic integral of the first kind
-    ellipe : Complete elliptic integral of the second kind
-    ellipeinc : Incomplete elliptic integral of the second kind
-    elliprf : Completely-symmetric elliptic integral of the first kind.
-
-    Notes
-    -----
-    Wrapper for the Cephes [1]_ routine `ellik`.  The computation is
-    carried out using the arithmetic-geometric mean algorithm.
-
-    The parameterization in terms of :math:`m` follows that of section
-    17.2 in [2]_. Other parameterizations in terms of the
-    complementary parameter :math:`1 - m`, modular angle
-    :math:`\sin^2(\alpha) = m`, or modulus :math:`k^2 = m` are also
-    used, so be careful that you choose the correct parameter.
-
-    The Legendre K incomplete integral (or F integral) is related to
-    Carlson's symmetric R_F function [3]_.
-    Setting :math:`c = \csc^2\phi`,
-
-    .. math:: F(\phi, m) = R_F(c-1, c-k^2, c) .
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-    .. [2] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-    .. [3] NIST Digital Library of Mathematical
-           Functions. http://dlmf.nist.gov/, Release 1.0.28 of
-           2020-09-15. See Sec. 19.25(i) https://dlmf.nist.gov/19.25#i
-    """)
-
-add_newdoc(
-    "elliprc",
-    r"""
-    elliprc(x, y, out=None)
-
-    Degenerate symmetric elliptic integral.
-
-    The function RC is defined as [1]_
-
-    .. math::
-
-        R_{\mathrm{C}}(x, y) =
-           \frac{1}{2} \int_0^{+\infty} (t + x)^{-1/2} (t + y)^{-1} dt
-           = R_{\mathrm{F}}(x, y, y)
-
-    Parameters
-    ----------
-    x, y : array_like
-        Real or complex input parameters. `x` can be any number in the
-        complex plane cut along the negative real axis. `y` must be non-zero.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    R : scalar or ndarray
-        Value of the integral. If `y` is real and negative, the Cauchy
-        principal value is returned. If both of `x` and `y` are real, the
-        return value is real. Otherwise, the return value is complex.
-
-    See Also
-    --------
-    elliprf : Completely-symmetric elliptic integral of the first kind.
-    elliprd : Symmetric elliptic integral of the second kind.
-    elliprg : Completely-symmetric elliptic integral of the second kind.
-    elliprj : Symmetric elliptic integral of the third kind.
-
-    Notes
-    -----
-    RC is a degenerate case of the symmetric integral RF: ``elliprc(x, y) ==
-    elliprf(x, y, y)``. It is an elementary function rather than an elliptic
-    integral.
-
-    The code implements Carlson's algorithm based on the duplication theorems
-    and series expansion up to the 7th order. [2]_
-
-    .. versionadded:: 1.8.0
-
-    References
-    ----------
-    .. [1] B. C. Carlson, ed., Chapter 19 in "Digital Library of Mathematical
-           Functions," NIST, US Dept. of Commerce.
-           https://dlmf.nist.gov/19.16.E6
-    .. [2] B. C. Carlson, "Numerical computation of real or complex elliptic
-           integrals," Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.
-           https://arxiv.org/abs/math/9409227
-           https://doi.org/10.1007/BF02198293
-
-    Examples
-    --------
-    Basic homogeneity property:
-
-    >>> import numpy as np
-    >>> from scipy.special import elliprc
-
-    >>> x = 1.2 + 3.4j
-    >>> y = 5.
-    >>> scale = 0.3 + 0.4j
-    >>> elliprc(scale*x, scale*y)
-    (0.5484493976710874-0.4169557678995833j)
-
-    >>> elliprc(x, y)/np.sqrt(scale)
-    (0.5484493976710874-0.41695576789958333j)
-
-    When the two arguments coincide, the integral is particularly
-    simple:
-
-    >>> x = 1.2 + 3.4j
-    >>> elliprc(x, x)
-    (0.4299173120614631-0.3041729818745595j)
-
-    >>> 1/np.sqrt(x)
-    (0.4299173120614631-0.30417298187455954j)
-
-    Another simple case: the first argument vanishes:
-
-    >>> y = 1.2 + 3.4j
-    >>> elliprc(0, y)
-    (0.6753125346116815-0.47779380263880866j)
-
-    >>> np.pi/2/np.sqrt(y)
-    (0.6753125346116815-0.4777938026388088j)
-
-    When `x` and `y` are both positive, we can express
-    :math:`R_C(x,y)` in terms of more elementary functions.  For the
-    case :math:`0 \le x < y`,
-
-    >>> x = 3.2
-    >>> y = 6.
-    >>> elliprc(x, y)
-    0.44942991498453444
-
-    >>> np.arctan(np.sqrt((y-x)/x))/np.sqrt(y-x)
-    0.44942991498453433
-
-    And for the case :math:`0 \le y < x`,
-
-    >>> x = 6.
-    >>> y = 3.2
-    >>> elliprc(x,y)
-    0.4989837501576147
-
-    >>> np.log((np.sqrt(x)+np.sqrt(x-y))/np.sqrt(y))/np.sqrt(x-y)
-    0.49898375015761476
-
-    """)
-
-add_newdoc(
-    "elliprd",
-    r"""
-    elliprd(x, y, z, out=None)
-
-    Symmetric elliptic integral of the second kind.
-
-    The function RD is defined as [1]_
-
-    .. math::
-
-        R_{\mathrm{D}}(x, y, z) =
-           \frac{3}{2} \int_0^{+\infty} [(t + x) (t + y)]^{-1/2} (t + z)^{-3/2}
-           dt
-
-    Parameters
-    ----------
-    x, y, z : array_like
-        Real or complex input parameters. `x` or `y` can be any number in the
-        complex plane cut along the negative real axis, but at most one of them
-        can be zero, while `z` must be non-zero.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    R : scalar or ndarray
-        Value of the integral. If all of `x`, `y`, and `z` are real, the
-        return value is real. Otherwise, the return value is complex.
-
-    See Also
-    --------
-    elliprc : Degenerate symmetric elliptic integral.
-    elliprf : Completely-symmetric elliptic integral of the first kind.
-    elliprg : Completely-symmetric elliptic integral of the second kind.
-    elliprj : Symmetric elliptic integral of the third kind.
-
-    Notes
-    -----
-    RD is a degenerate case of the elliptic integral RJ: ``elliprd(x, y, z) ==
-    elliprj(x, y, z, z)``.
-
-    The code implements Carlson's algorithm based on the duplication theorems
-    and series expansion up to the 7th order. [2]_
-
-    .. versionadded:: 1.8.0
-
-    References
-    ----------
-    .. [1] B. C. Carlson, ed., Chapter 19 in "Digital Library of Mathematical
-           Functions," NIST, US Dept. of Commerce.
-           https://dlmf.nist.gov/19.16.E5
-    .. [2] B. C. Carlson, "Numerical computation of real or complex elliptic
-           integrals," Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.
-           https://arxiv.org/abs/math/9409227
-           https://doi.org/10.1007/BF02198293
-
-    Examples
-    --------
-    Basic homogeneity property:
-
-    >>> import numpy as np
-    >>> from scipy.special import elliprd
-
-    >>> x = 1.2 + 3.4j
-    >>> y = 5.
-    >>> z = 6.
-    >>> scale = 0.3 + 0.4j
-    >>> elliprd(scale*x, scale*y, scale*z)
-    (-0.03703043835680379-0.24500934665683802j)
-
-    >>> elliprd(x, y, z)*np.power(scale, -1.5)
-    (-0.0370304383568038-0.24500934665683805j)
-
-    All three arguments coincide:
-
-    >>> x = 1.2 + 3.4j
-    >>> elliprd(x, x, x)
-    (-0.03986825876151896-0.14051741840449586j)
-
-    >>> np.power(x, -1.5)
-    (-0.03986825876151894-0.14051741840449583j)
-
-    The so-called "second lemniscate constant":
-
-    >>> elliprd(0, 2, 1)/3
-    0.5990701173677961
-
-    >>> from scipy.special import gamma
-    >>> gamma(0.75)**2/np.sqrt(2*np.pi)
-    0.5990701173677959
-
-    """)
-
-add_newdoc(
-    "elliprf",
-    r"""
-    elliprf(x, y, z, out=None)
-
-    Completely-symmetric elliptic integral of the first kind.
-
-    The function RF is defined as [1]_
-
-    .. math::
-
-        R_{\mathrm{F}}(x, y, z) =
-           \frac{1}{2} \int_0^{+\infty} [(t + x) (t + y) (t + z)]^{-1/2} dt
-
-    Parameters
-    ----------
-    x, y, z : array_like
-        Real or complex input parameters. `x`, `y`, or `z` can be any number in
-        the complex plane cut along the negative real axis, but at most one of
-        them can be zero.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    R : scalar or ndarray
-        Value of the integral. If all of `x`, `y`, and `z` are real, the return
-        value is real. Otherwise, the return value is complex.
-
-    See Also
-    --------
-    elliprc : Degenerate symmetric integral.
-    elliprd : Symmetric elliptic integral of the second kind.
-    elliprg : Completely-symmetric elliptic integral of the second kind.
-    elliprj : Symmetric elliptic integral of the third kind.
-
-    Notes
-    -----
-    The code implements Carlson's algorithm based on the duplication theorems
-    and series expansion up to the 7th order (cf.:
-    https://dlmf.nist.gov/19.36.i) and the AGM algorithm for the complete
-    integral. [2]_
-
-    .. versionadded:: 1.8.0
-
-    References
-    ----------
-    .. [1] B. C. Carlson, ed., Chapter 19 in "Digital Library of Mathematical
-           Functions," NIST, US Dept. of Commerce.
-           https://dlmf.nist.gov/19.16.E1
-    .. [2] B. C. Carlson, "Numerical computation of real or complex elliptic
-           integrals," Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.
-           https://arxiv.org/abs/math/9409227
-           https://doi.org/10.1007/BF02198293
-
-    Examples
-    --------
-    Basic homogeneity property:
-
-    >>> import numpy as np
-    >>> from scipy.special import elliprf
-
-    >>> x = 1.2 + 3.4j
-    >>> y = 5.
-    >>> z = 6.
-    >>> scale = 0.3 + 0.4j
-    >>> elliprf(scale*x, scale*y, scale*z)
-    (0.5328051227278146-0.4008623567957094j)
-
-    >>> elliprf(x, y, z)/np.sqrt(scale)
-    (0.5328051227278147-0.4008623567957095j)
-
-    All three arguments coincide:
-
-    >>> x = 1.2 + 3.4j
-    >>> elliprf(x, x, x)
-    (0.42991731206146316-0.30417298187455954j)
-
-    >>> 1/np.sqrt(x)
-    (0.4299173120614631-0.30417298187455954j)
-
-    The so-called "first lemniscate constant":
-
-    >>> elliprf(0, 1, 2)
-    1.3110287771460598
-
-    >>> from scipy.special import gamma
-    >>> gamma(0.25)**2/(4*np.sqrt(2*np.pi))
-    1.3110287771460598
-
-    """)
-
-add_newdoc(
-    "elliprg",
-    r"""
-    elliprg(x, y, z, out=None)
-
-    Completely-symmetric elliptic integral of the second kind.
-
-    The function RG is defined as [1]_
-
-    .. math::
-
-        R_{\mathrm{G}}(x, y, z) =
-           \frac{1}{4} \int_0^{+\infty} [(t + x) (t + y) (t + z)]^{-1/2}
-           \left(\frac{x}{t + x} + \frac{y}{t + y} + \frac{z}{t + z}\right) t
-           dt
-
-    Parameters
-    ----------
-    x, y, z : array_like
-        Real or complex input parameters. `x`, `y`, or `z` can be any number in
-        the complex plane cut along the negative real axis.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    R : scalar or ndarray
-        Value of the integral. If all of `x`, `y`, and `z` are real, the return
-        value is real. Otherwise, the return value is complex.
-
-    See Also
-    --------
-    elliprc : Degenerate symmetric integral.
-    elliprd : Symmetric elliptic integral of the second kind.
-    elliprf : Completely-symmetric elliptic integral of the first kind.
-    elliprj : Symmetric elliptic integral of the third kind.
-
-    Notes
-    -----
-    The implementation uses the relation [1]_
-
-    .. math::
-
-        2 R_{\mathrm{G}}(x, y, z) =
-           z R_{\mathrm{F}}(x, y, z) -
-           \frac{1}{3} (x - z) (y - z) R_{\mathrm{D}}(x, y, z) +
-           \sqrt{\frac{x y}{z}}
-
-    and the symmetry of `x`, `y`, `z` when at least one non-zero parameter can
-    be chosen as the pivot. When one of the arguments is close to zero, the AGM
-    method is applied instead. Other special cases are computed following Ref.
-    [2]_
-
-    .. versionadded:: 1.8.0
-
-    References
-    ----------
-    .. [1] B. C. Carlson, "Numerical computation of real or complex elliptic
-           integrals," Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.
-           https://arxiv.org/abs/math/9409227
-           https://doi.org/10.1007/BF02198293
-    .. [2] B. C. Carlson, ed., Chapter 19 in "Digital Library of Mathematical
-           Functions," NIST, US Dept. of Commerce.
-           https://dlmf.nist.gov/19.16.E1
-           https://dlmf.nist.gov/19.20.ii
-
-    Examples
-    --------
-    Basic homogeneity property:
-
-    >>> import numpy as np
-    >>> from scipy.special import elliprg
-
-    >>> x = 1.2 + 3.4j
-    >>> y = 5.
-    >>> z = 6.
-    >>> scale = 0.3 + 0.4j
-    >>> elliprg(scale*x, scale*y, scale*z)
-    (1.195936862005246+0.8470988320464167j)
-
-    >>> elliprg(x, y, z)*np.sqrt(scale)
-    (1.195936862005246+0.8470988320464165j)
-
-    Simplifications:
-
-    >>> elliprg(0, y, y)
-    1.756203682760182
-
-    >>> 0.25*np.pi*np.sqrt(y)
-    1.7562036827601817
-
-    >>> elliprg(0, 0, z)
-    1.224744871391589
-
-    >>> 0.5*np.sqrt(z)
-    1.224744871391589
-
-    The surface area of a triaxial ellipsoid with semiaxes ``a``, ``b``, and
-    ``c`` is given by
-
-    .. math::
-
-        S = 4 \pi a b c R_{\mathrm{G}}(1 / a^2, 1 / b^2, 1 / c^2).
-
-    >>> def ellipsoid_area(a, b, c):
-    ...     r = 4.0 * np.pi * a * b * c
-    ...     return r * elliprg(1.0 / (a * a), 1.0 / (b * b), 1.0 / (c * c))
-    >>> print(ellipsoid_area(1, 3, 5))
-    108.62688289491807
-    """)
-
-add_newdoc(
-    "elliprj",
-    r"""
-    elliprj(x, y, z, p, out=None)
-
-    Symmetric elliptic integral of the third kind.
-
-    The function RJ is defined as [1]_
-
-    .. math::
-
-        R_{\mathrm{J}}(x, y, z, p) =
-           \frac{3}{2} \int_0^{+\infty} [(t + x) (t + y) (t + z)]^{-1/2}
-           (t + p)^{-1} dt
-
-    .. warning::
-        This function should be considered experimental when the inputs are
-        unbalanced.  Check correctness with another independent implementation.
-
-    Parameters
-    ----------
-    x, y, z, p : array_like
-        Real or complex input parameters. `x`, `y`, or `z` are numbers in
-        the complex plane cut along the negative real axis (subject to further
-        constraints, see Notes), and at most one of them can be zero. `p` must
-        be non-zero.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    R : scalar or ndarray
-        Value of the integral. If all of `x`, `y`, `z`, and `p` are real, the
-        return value is real. Otherwise, the return value is complex.
-
-        If `p` is real and negative, while `x`, `y`, and `z` are real,
-        non-negative, and at most one of them is zero, the Cauchy principal
-        value is returned. [1]_ [2]_
-
-    See Also
-    --------
-    elliprc : Degenerate symmetric integral.
-    elliprd : Symmetric elliptic integral of the second kind.
-    elliprf : Completely-symmetric elliptic integral of the first kind.
-    elliprg : Completely-symmetric elliptic integral of the second kind.
-
-    Notes
-    -----
-    The code implements Carlson's algorithm based on the duplication theorems
-    and series expansion up to the 7th order. [3]_ The algorithm is slightly
-    different from its earlier incarnation as it appears in [1]_, in that the
-    call to `elliprc` (or ``atan``/``atanh``, see [4]_) is no longer needed in
-    the inner loop. Asymptotic approximations are used where arguments differ
-    widely in the order of magnitude. [5]_
-
-    The input values are subject to certain sufficient but not necessary
-    constraints when input arguments are complex. Notably, ``x``, ``y``, and
-    ``z`` must have non-negative real parts, unless two of them are
-    non-negative and complex-conjugates to each other while the other is a real
-    non-negative number. [1]_ If the inputs do not satisfy the sufficient
-    condition described in Ref. [1]_ they are rejected outright with the output
-    set to NaN.
-
-    In the case where one of ``x``, ``y``, and ``z`` is equal to ``p``, the
-    function ``elliprd`` should be preferred because of its less restrictive
-    domain.
-
-    .. versionadded:: 1.8.0
-
-    References
-    ----------
-    .. [1] B. C. Carlson, "Numerical computation of real or complex elliptic
-           integrals," Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.
-           https://arxiv.org/abs/math/9409227
-           https://doi.org/10.1007/BF02198293
-    .. [2] B. C. Carlson, ed., Chapter 19 in "Digital Library of Mathematical
-           Functions," NIST, US Dept. of Commerce.
-           https://dlmf.nist.gov/19.20.iii
-    .. [3] B. C. Carlson, J. FitzSimmons, "Reduction Theorems for Elliptic
-           Integrands with the Square Root of Two Quadratic Factors," J.
-           Comput. Appl. Math., vol. 118, nos. 1-2, pp. 71-85, 2000.
-           https://doi.org/10.1016/S0377-0427(00)00282-X
-    .. [4] F. Johansson, "Numerical Evaluation of Elliptic Functions, Elliptic
-           Integrals and Modular Forms," in J. Blumlein, C. Schneider, P.
-           Paule, eds., "Elliptic Integrals, Elliptic Functions and Modular
-           Forms in Quantum Field Theory," pp. 269-293, 2019 (Cham,
-           Switzerland: Springer Nature Switzerland)
-           https://arxiv.org/abs/1806.06725
-           https://doi.org/10.1007/978-3-030-04480-0
-    .. [5] B. C. Carlson, J. L. Gustafson, "Asymptotic Approximations for
-           Symmetric Elliptic Integrals," SIAM J. Math. Anls., vol. 25, no. 2,
-           pp. 288-303, 1994.
-           https://arxiv.org/abs/math/9310223
-           https://doi.org/10.1137/S0036141092228477
-
-    Examples
-    --------
-    Basic homogeneity property:
-
-    >>> import numpy as np
-    >>> from scipy.special import elliprj
-
-    >>> x = 1.2 + 3.4j
-    >>> y = 5.
-    >>> z = 6.
-    >>> p = 7.
-    >>> scale = 0.3 - 0.4j
-    >>> elliprj(scale*x, scale*y, scale*z, scale*p)
-    (0.10834905565679157+0.19694950747103812j)
-
-    >>> elliprj(x, y, z, p)*np.power(scale, -1.5)
-    (0.10834905565679556+0.19694950747103854j)
-
-    Reduction to simpler elliptic integral:
-
-    >>> elliprj(x, y, z, z)
-    (0.08288462362195129-0.028376809745123258j)
-
-    >>> from scipy.special import elliprd
-    >>> elliprd(x, y, z)
-    (0.08288462362195136-0.028376809745123296j)
-
-    All arguments coincide:
-
-    >>> elliprj(x, x, x, x)
-    (-0.03986825876151896-0.14051741840449586j)
-
-    >>> np.power(x, -1.5)
-    (-0.03986825876151894-0.14051741840449583j)
-
-    """)
-
-add_newdoc("entr",
-    r"""
-    entr(x, out=None)
-
-    Elementwise function for computing entropy.
-
-    .. math:: \text{entr}(x) = \begin{cases} - x \log(x) & x > 0  \\ 0 & x = 0
-              \\ -\infty & \text{otherwise} \end{cases}
-
-    Parameters
-    ----------
-    x : ndarray
-        Input array.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    res : scalar or ndarray
-        The value of the elementwise entropy function at the given points `x`.
-
-    See Also
-    --------
-    kl_div, rel_entr, scipy.stats.entropy
-
-    Notes
-    -----
-    .. versionadded:: 0.15.0
-
-    This function is concave.
-
-    The origin of this function is in convex programming; see [1]_.
-    Given a probability distribution :math:`p_1, \ldots, p_n`,
-    the definition of entropy in the context of *information theory* is
-
-    .. math::
-
-        \sum_{i = 1}^n \mathrm{entr}(p_i).
-
-    To compute the latter quantity, use `scipy.stats.entropy`.
-
-    References
-    ----------
-    .. [1] Boyd, Stephen and Lieven Vandenberghe. *Convex optimization*.
-           Cambridge University Press, 2004.
-           :doi:`https://doi.org/10.1017/CBO9780511804441`
-
-    """)
-
-add_newdoc("erf",
-    """
-    erf(z, out=None)
-
-    Returns the error function of complex argument.
-
-    It is defined as ``2/sqrt(pi)*integral(exp(-t**2), t=0..z)``.
-
-    Parameters
-    ----------
-    x : ndarray
-        Input array.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    res : scalar or ndarray
-        The values of the error function at the given points `x`.
-
-    See Also
-    --------
-    erfc, erfinv, erfcinv, wofz, erfcx, erfi
-
-    Notes
-    -----
-    The cumulative of the unit normal distribution is given by
-    ``Phi(z) = 1/2[1 + erf(z/sqrt(2))]``.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Error_function
-    .. [2] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover,
-        1972. http://www.math.sfu.ca/~cbm/aands/page_297.htm
-    .. [3] Steven G. Johnson, Faddeeva W function implementation.
-       http://ab-initio.mit.edu/Faddeeva
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import special
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(-3, 3)
-    >>> plt.plot(x, special.erf(x))
-    >>> plt.xlabel('$x$')
-    >>> plt.ylabel('$erf(x)$')
-    >>> plt.show()
-
-    """)
-
-add_newdoc("erfc",
-    """
-    erfc(x, out=None)
-
-    Complementary error function, ``1 - erf(x)``.
-
-    Parameters
-    ----------
-    x : array_like
-        Real or complex valued argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the complementary error function
-
-    See Also
-    --------
-    erf, erfi, erfcx, dawsn, wofz
-
-    References
-    ----------
-    .. [1] Steven G. Johnson, Faddeeva W function implementation.
-       http://ab-initio.mit.edu/Faddeeva
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import special
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(-3, 3)
-    >>> plt.plot(x, special.erfc(x))
-    >>> plt.xlabel('$x$')
-    >>> plt.ylabel('$erfc(x)$')
-    >>> plt.show()
-
-    """)
-
-add_newdoc("erfi",
-    """
-    erfi(z, out=None)
-
-    Imaginary error function, ``-i erf(i z)``.
-
-    Parameters
-    ----------
-    z : array_like
-        Real or complex valued argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the imaginary error function
-
-    See Also
-    --------
-    erf, erfc, erfcx, dawsn, wofz
-
-    Notes
-    -----
-
-    .. versionadded:: 0.12.0
-
-    References
-    ----------
-    .. [1] Steven G. Johnson, Faddeeva W function implementation.
-       http://ab-initio.mit.edu/Faddeeva
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import special
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(-3, 3)
-    >>> plt.plot(x, special.erfi(x))
-    >>> plt.xlabel('$x$')
-    >>> plt.ylabel('$erfi(x)$')
-    >>> plt.show()
-
-    """)
-
-add_newdoc("erfcx",
-    """
-    erfcx(x, out=None)
-
-    Scaled complementary error function, ``exp(x**2) * erfc(x)``.
-
-    Parameters
-    ----------
-    x : array_like
-        Real or complex valued argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the scaled complementary error function
-
-
-    See Also
-    --------
-    erf, erfc, erfi, dawsn, wofz
-
-    Notes
-    -----
-
-    .. versionadded:: 0.12.0
-
-    References
-    ----------
-    .. [1] Steven G. Johnson, Faddeeva W function implementation.
-       http://ab-initio.mit.edu/Faddeeva
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import special
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(-3, 3)
-    >>> plt.plot(x, special.erfcx(x))
-    >>> plt.xlabel('$x$')
-    >>> plt.ylabel('$erfcx(x)$')
-    >>> plt.show()
-
-    """)
-
-add_newdoc(
-    "erfinv",
-    """
-    erfinv(y, out=None)
-
-    Inverse of the error function.
-
-    Computes the inverse of the error function.
-
-    In the complex domain, there is no unique complex number w satisfying
-    erf(w)=z. This indicates a true inverse function would be multivalued.
-    When the domain restricts to the real, -1 < x < 1, there is a unique real
-    number satisfying erf(erfinv(x)) = x.
-
-    Parameters
-    ----------
-    y : ndarray
-        Argument at which to evaluate. Domain: [-1, 1]
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    erfinv : scalar or ndarray
-        The inverse of erf of y, element-wise
-
-    See Also
-    --------
-    erf : Error function of a complex argument
-    erfc : Complementary error function, ``1 - erf(x)``
-    erfcinv : Inverse of the complementary error function
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import erfinv, erf
-
-    >>> erfinv(0.5)
-    0.4769362762044699
-
-    >>> y = np.linspace(-1.0, 1.0, num=9)
-    >>> x = erfinv(y)
-    >>> x
-    array([       -inf, -0.81341985, -0.47693628, -0.22531206,  0.        ,
-            0.22531206,  0.47693628,  0.81341985,         inf])
-
-    Verify that ``erf(erfinv(y))`` is ``y``.
-
-    >>> erf(x)
-    array([-1.  , -0.75, -0.5 , -0.25,  0.  ,  0.25,  0.5 ,  0.75,  1.  ])
-
-    Plot the function:
-
-    >>> y = np.linspace(-1, 1, 200)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(y, erfinv(y))
-    >>> ax.grid(True)
-    >>> ax.set_xlabel('y')
-    >>> ax.set_title('erfinv(y)')
-    >>> plt.show()
-
-    """)
-
-add_newdoc(
-    "erfcinv",
-    """
-    erfcinv(y, out=None)
-
-    Inverse of the complementary error function.
-
-    Computes the inverse of the complementary error function.
-
-    In the complex domain, there is no unique complex number w satisfying
-    erfc(w)=z. This indicates a true inverse function would be multivalued.
-    When the domain restricts to the real, 0 < x < 2, there is a unique real
-    number satisfying erfc(erfcinv(x)) = erfcinv(erfc(x)).
-
-    It is related to inverse of the error function by erfcinv(1-x) = erfinv(x)
-
-    Parameters
-    ----------
-    y : ndarray
-        Argument at which to evaluate. Domain: [0, 2]
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    erfcinv : scalar or ndarray
-        The inverse of erfc of y, element-wise
-
-    See Also
-    --------
-    erf : Error function of a complex argument
-    erfc : Complementary error function, ``1 - erf(x)``
-    erfinv : Inverse of the error function
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import erfcinv
-
-    >>> erfcinv(0.5)
-    0.4769362762044699
-
-    >>> y = np.linspace(0.0, 2.0, num=11)
-    >>> erfcinv(y)
-    array([        inf,  0.9061938 ,  0.59511608,  0.37080716,  0.17914345,
-           -0.        , -0.17914345, -0.37080716, -0.59511608, -0.9061938 ,
-                  -inf])
-
-    Plot the function:
-
-    >>> y = np.linspace(0, 2, 200)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(y, erfcinv(y))
-    >>> ax.grid(True)
-    >>> ax.set_xlabel('y')
-    >>> ax.set_title('erfcinv(y)')
-    >>> plt.show()
-
-    """)
-
-add_newdoc("eval_jacobi",
-    r"""
-    eval_jacobi(n, alpha, beta, x, out=None)
-
-    Evaluate Jacobi polynomial at a point.
-
-    The Jacobi polynomials can be defined via the Gauss hypergeometric
-    function :math:`{}_2F_1` as
-
-    .. math::
-
-        P_n^{(\alpha, \beta)}(x) = \frac{(\alpha + 1)_n}{\Gamma(n + 1)}
-          {}_2F_1(-n, 1 + \alpha + \beta + n; \alpha + 1; (1 - z)/2)
-
-    where :math:`(\cdot)_n` is the Pochhammer symbol; see `poch`. When
-    :math:`n` is an integer the result is a polynomial of degree
-    :math:`n`. See 22.5.42 in [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer the result is
-        determined via the relation to the Gauss hypergeometric
-        function.
-    alpha : array_like
-        Parameter
-    beta : array_like
-        Parameter
-    x : array_like
-        Points at which to evaluate the polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    P : scalar or ndarray
-        Values of the Jacobi polynomial
-
-    See Also
-    --------
-    roots_jacobi : roots and quadrature weights of Jacobi polynomials
-    jacobi : Jacobi polynomial object
-    hyp2f1 : Gauss hypergeometric function
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-add_newdoc("eval_sh_jacobi",
-    r"""
-    eval_sh_jacobi(n, p, q, x, out=None)
-
-    Evaluate shifted Jacobi polynomial at a point.
-
-    Defined by
-
-    .. math::
-
-        G_n^{(p, q)}(x)
-          = \binom{2n + p - 1}{n}^{-1} P_n^{(p - q, q - 1)}(2x - 1),
-
-    where :math:`P_n^{(\cdot, \cdot)}` is the n-th Jacobi
-    polynomial. See 22.5.2 in [AS]_ for details.
-
-    Parameters
-    ----------
-    n : int
-        Degree of the polynomial. If not an integer, the result is
-        determined via the relation to `binom` and `eval_jacobi`.
-    p : float
-        Parameter
-    q : float
-        Parameter
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    G : scalar or ndarray
-        Values of the shifted Jacobi polynomial.
-
-    See Also
-    --------
-    roots_sh_jacobi : roots and quadrature weights of shifted Jacobi
-                      polynomials
-    sh_jacobi : shifted Jacobi polynomial object
-    eval_jacobi : evaluate Jacobi polynomials
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-add_newdoc("eval_gegenbauer",
-    r"""
-    eval_gegenbauer(n, alpha, x, out=None)
-
-    Evaluate Gegenbauer polynomial at a point.
-
-    The Gegenbauer polynomials can be defined via the Gauss
-    hypergeometric function :math:`{}_2F_1` as
-
-    .. math::
-
-        C_n^{(\alpha)} = \frac{(2\alpha)_n}{\Gamma(n + 1)}
-          {}_2F_1(-n, 2\alpha + n; \alpha + 1/2; (1 - z)/2).
-
-    When :math:`n` is an integer the result is a polynomial of degree
-    :math:`n`. See 22.5.46 in [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer, the result is
-        determined via the relation to the Gauss hypergeometric
-        function.
-    alpha : array_like
-        Parameter
-    x : array_like
-        Points at which to evaluate the Gegenbauer polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    C : scalar or ndarray
-        Values of the Gegenbauer polynomial
-
-    See Also
-    --------
-    roots_gegenbauer : roots and quadrature weights of Gegenbauer
-                       polynomials
-    gegenbauer : Gegenbauer polynomial object
-    hyp2f1 : Gauss hypergeometric function
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-add_newdoc("eval_chebyt",
-    r"""
-    eval_chebyt(n, x, out=None)
-
-    Evaluate Chebyshev polynomial of the first kind at a point.
-
-    The Chebyshev polynomials of the first kind can be defined via the
-    Gauss hypergeometric function :math:`{}_2F_1` as
-
-    .. math::
-
-        T_n(x) = {}_2F_1(n, -n; 1/2; (1 - x)/2).
-
-    When :math:`n` is an integer the result is a polynomial of degree
-    :math:`n`. See 22.5.47 in [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer, the result is
-        determined via the relation to the Gauss hypergeometric
-        function.
-    x : array_like
-        Points at which to evaluate the Chebyshev polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    T : scalar or ndarray
-        Values of the Chebyshev polynomial
-
-    See Also
-    --------
-    roots_chebyt : roots and quadrature weights of Chebyshev
-                   polynomials of the first kind
-    chebyu : Chebychev polynomial object
-    eval_chebyu : evaluate Chebyshev polynomials of the second kind
-    hyp2f1 : Gauss hypergeometric function
-    numpy.polynomial.chebyshev.Chebyshev : Chebyshev series
-
-    Notes
-    -----
-    This routine is numerically stable for `x` in ``[-1, 1]`` at least
-    up to order ``10000``.
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-add_newdoc("eval_chebyu",
-    r"""
-    eval_chebyu(n, x, out=None)
-
-    Evaluate Chebyshev polynomial of the second kind at a point.
-
-    The Chebyshev polynomials of the second kind can be defined via
-    the Gauss hypergeometric function :math:`{}_2F_1` as
-
-    .. math::
-
-        U_n(x) = (n + 1) {}_2F_1(-n, n + 2; 3/2; (1 - x)/2).
-
-    When :math:`n` is an integer the result is a polynomial of degree
-    :math:`n`. See 22.5.48 in [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer, the result is
-        determined via the relation to the Gauss hypergeometric
-        function.
-    x : array_like
-        Points at which to evaluate the Chebyshev polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    U : scalar or ndarray
-        Values of the Chebyshev polynomial
-
-    See Also
-    --------
-    roots_chebyu : roots and quadrature weights of Chebyshev
-                   polynomials of the second kind
-    chebyu : Chebyshev polynomial object
-    eval_chebyt : evaluate Chebyshev polynomials of the first kind
-    hyp2f1 : Gauss hypergeometric function
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-add_newdoc("eval_chebys",
-    r"""
-    eval_chebys(n, x, out=None)
-
-    Evaluate Chebyshev polynomial of the second kind on [-2, 2] at a
-    point.
-
-    These polynomials are defined as
-
-    .. math::
-
-        S_n(x) = U_n(x/2)
-
-    where :math:`U_n` is a Chebyshev polynomial of the second
-    kind. See 22.5.13 in [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer, the result is
-        determined via the relation to `eval_chebyu`.
-    x : array_like
-        Points at which to evaluate the Chebyshev polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    S : scalar or ndarray
-        Values of the Chebyshev polynomial
-
-    See Also
-    --------
-    roots_chebys : roots and quadrature weights of Chebyshev
-                   polynomials of the second kind on [-2, 2]
-    chebys : Chebyshev polynomial object
-    eval_chebyu : evaluate Chebyshev polynomials of the second kind
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    They are a scaled version of the Chebyshev polynomials of the
-    second kind.
-
-    >>> x = np.linspace(-2, 2, 6)
-    >>> sc.eval_chebys(3, x)
-    array([-4.   ,  0.672,  0.736, -0.736, -0.672,  4.   ])
-    >>> sc.eval_chebyu(3, x / 2)
-    array([-4.   ,  0.672,  0.736, -0.736, -0.672,  4.   ])
-
-    """)
-
-add_newdoc("eval_chebyc",
-    r"""
-    eval_chebyc(n, x, out=None)
-
-    Evaluate Chebyshev polynomial of the first kind on [-2, 2] at a
-    point.
-
-    These polynomials are defined as
-
-    .. math::
-
-        C_n(x) = 2 T_n(x/2)
-
-    where :math:`T_n` is a Chebyshev polynomial of the first kind. See
-    22.5.11 in [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer, the result is
-        determined via the relation to `eval_chebyt`.
-    x : array_like
-        Points at which to evaluate the Chebyshev polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    C : scalar or ndarray
-        Values of the Chebyshev polynomial
-
-    See Also
-    --------
-    roots_chebyc : roots and quadrature weights of Chebyshev
-                   polynomials of the first kind on [-2, 2]
-    chebyc : Chebyshev polynomial object
-    numpy.polynomial.chebyshev.Chebyshev : Chebyshev series
-    eval_chebyt : evaluate Chebycshev polynomials of the first kind
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    They are a scaled version of the Chebyshev polynomials of the
-    first kind.
-
-    >>> x = np.linspace(-2, 2, 6)
-    >>> sc.eval_chebyc(3, x)
-    array([-2.   ,  1.872,  1.136, -1.136, -1.872,  2.   ])
-    >>> 2 * sc.eval_chebyt(3, x / 2)
-    array([-2.   ,  1.872,  1.136, -1.136, -1.872,  2.   ])
-
-    """)
-
-add_newdoc("eval_sh_chebyt",
-    r"""
-    eval_sh_chebyt(n, x, out=None)
-
-    Evaluate shifted Chebyshev polynomial of the first kind at a
-    point.
-
-    These polynomials are defined as
-
-    .. math::
-
-        T_n^*(x) = T_n(2x - 1)
-
-    where :math:`T_n` is a Chebyshev polynomial of the first kind. See
-    22.5.14 in [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer, the result is
-        determined via the relation to `eval_chebyt`.
-    x : array_like
-        Points at which to evaluate the shifted Chebyshev polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    T : scalar or ndarray
-        Values of the shifted Chebyshev polynomial
-
-    See Also
-    --------
-    roots_sh_chebyt : roots and quadrature weights of shifted
-                      Chebyshev polynomials of the first kind
-    sh_chebyt : shifted Chebyshev polynomial object
-    eval_chebyt : evaluate Chebyshev polynomials of the first kind
-    numpy.polynomial.chebyshev.Chebyshev : Chebyshev series
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-add_newdoc("eval_sh_chebyu",
-    r"""
-    eval_sh_chebyu(n, x, out=None)
-
-    Evaluate shifted Chebyshev polynomial of the second kind at a
-    point.
-
-    These polynomials are defined as
-
-    .. math::
-
-        U_n^*(x) = U_n(2x - 1)
-
-    where :math:`U_n` is a Chebyshev polynomial of the first kind. See
-    22.5.15 in [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer, the result is
-        determined via the relation to `eval_chebyu`.
-    x : array_like
-        Points at which to evaluate the shifted Chebyshev polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    U : scalar or ndarray
-        Values of the shifted Chebyshev polynomial
-
-    See Also
-    --------
-    roots_sh_chebyu : roots and quadrature weights of shifted
-                      Chebychev polynomials of the second kind
-    sh_chebyu : shifted Chebyshev polynomial object
-    eval_chebyu : evaluate Chebyshev polynomials of the second kind
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-add_newdoc("eval_legendre",
-    r"""
-    eval_legendre(n, x, out=None)
-
-    Evaluate Legendre polynomial at a point.
-
-    The Legendre polynomials can be defined via the Gauss
-    hypergeometric function :math:`{}_2F_1` as
-
-    .. math::
-
-        P_n(x) = {}_2F_1(-n, n + 1; 1; (1 - x)/2).
-
-    When :math:`n` is an integer the result is a polynomial of degree
-    :math:`n`. See 22.5.49 in [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer, the result is
-        determined via the relation to the Gauss hypergeometric
-        function.
-    x : array_like
-        Points at which to evaluate the Legendre polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    P : scalar or ndarray
-        Values of the Legendre polynomial
-
-    See Also
-    --------
-    roots_legendre : roots and quadrature weights of Legendre
-                     polynomials
-    legendre : Legendre polynomial object
-    hyp2f1 : Gauss hypergeometric function
-    numpy.polynomial.legendre.Legendre : Legendre series
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import eval_legendre
-
-    Evaluate the zero-order Legendre polynomial at x = 0
-
-    >>> eval_legendre(0, 0)
-    1.0
-
-    Evaluate the first-order Legendre polynomial between -1 and 1
-
-    >>> X = np.linspace(-1, 1, 5)  # Domain of Legendre polynomials
-    >>> eval_legendre(1, X)
-    array([-1. , -0.5,  0. ,  0.5,  1. ])
-
-    Evaluate Legendre polynomials of order 0 through 4 at x = 0
-
-    >>> N = range(0, 5)
-    >>> eval_legendre(N, 0)
-    array([ 1.   ,  0.   , -0.5  ,  0.   ,  0.375])
-
-    Plot Legendre polynomials of order 0 through 4
-
-    >>> X = np.linspace(-1, 1)
-
-    >>> import matplotlib.pyplot as plt
-    >>> for n in range(0, 5):
-    ...     y = eval_legendre(n, X)
-    ...     plt.plot(X, y, label=r'$P_{}(x)$'.format(n))
-
-    >>> plt.title("Legendre Polynomials")
-    >>> plt.xlabel("x")
-    >>> plt.ylabel(r'$P_n(x)$')
-    >>> plt.legend(loc='lower right')
-    >>> plt.show()
-
-    """)
-
-add_newdoc("eval_sh_legendre",
-    r"""
-    eval_sh_legendre(n, x, out=None)
-
-    Evaluate shifted Legendre polynomial at a point.
-
-    These polynomials are defined as
-
-    .. math::
-
-        P_n^*(x) = P_n(2x - 1)
-
-    where :math:`P_n` is a Legendre polynomial. See 2.2.11 in [AS]_
-    for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer, the value is
-        determined via the relation to `eval_legendre`.
-    x : array_like
-        Points at which to evaluate the shifted Legendre polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    P : scalar or ndarray
-        Values of the shifted Legendre polynomial
-
-    See Also
-    --------
-    roots_sh_legendre : roots and quadrature weights of shifted
-                        Legendre polynomials
-    sh_legendre : shifted Legendre polynomial object
-    eval_legendre : evaluate Legendre polynomials
-    numpy.polynomial.legendre.Legendre : Legendre series
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-add_newdoc("eval_genlaguerre",
-    r"""
-    eval_genlaguerre(n, alpha, x, out=None)
-
-    Evaluate generalized Laguerre polynomial at a point.
-
-    The generalized Laguerre polynomials can be defined via the
-    confluent hypergeometric function :math:`{}_1F_1` as
-
-    .. math::
-
-        L_n^{(\alpha)}(x) = \binom{n + \alpha}{n}
-          {}_1F_1(-n, \alpha + 1, x).
-
-    When :math:`n` is an integer the result is a polynomial of degree
-    :math:`n`. See 22.5.54 in [AS]_ for details. The Laguerre
-    polynomials are the special case where :math:`\alpha = 0`.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer, the result is
-        determined via the relation to the confluent hypergeometric
-        function.
-    alpha : array_like
-        Parameter; must have ``alpha > -1``
-    x : array_like
-        Points at which to evaluate the generalized Laguerre
-        polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    L : scalar or ndarray
-        Values of the generalized Laguerre polynomial
-
-    See Also
-    --------
-    roots_genlaguerre : roots and quadrature weights of generalized
-                        Laguerre polynomials
-    genlaguerre : generalized Laguerre polynomial object
-    hyp1f1 : confluent hypergeometric function
-    eval_laguerre : evaluate Laguerre polynomials
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-add_newdoc("eval_laguerre",
-    r"""
-    eval_laguerre(n, x, out=None)
-
-    Evaluate Laguerre polynomial at a point.
-
-    The Laguerre polynomials can be defined via the confluent
-    hypergeometric function :math:`{}_1F_1` as
-
-    .. math::
-
-        L_n(x) = {}_1F_1(-n, 1, x).
-
-    See 22.5.16 and 22.5.54 in [AS]_ for details. When :math:`n` is an
-    integer the result is a polynomial of degree :math:`n`.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial. If not an integer the result is
-        determined via the relation to the confluent hypergeometric
-        function.
-    x : array_like
-        Points at which to evaluate the Laguerre polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    L : scalar or ndarray
-        Values of the Laguerre polynomial
-
-    See Also
-    --------
-    roots_laguerre : roots and quadrature weights of Laguerre
-                     polynomials
-    laguerre : Laguerre polynomial object
-    numpy.polynomial.laguerre.Laguerre : Laguerre series
-    eval_genlaguerre : evaluate generalized Laguerre polynomials
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-     """)
-
-add_newdoc("eval_hermite",
-    r"""
-    eval_hermite(n, x, out=None)
-
-    Evaluate physicist's Hermite polynomial at a point.
-
-    Defined by
-
-    .. math::
-
-        H_n(x) = (-1)^n e^{x^2} \frac{d^n}{dx^n} e^{-x^2};
-
-    :math:`H_n` is a polynomial of degree :math:`n`. See 22.11.7 in
-    [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial
-    x : array_like
-        Points at which to evaluate the Hermite polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    H : scalar or ndarray
-        Values of the Hermite polynomial
-
-    See Also
-    --------
-    roots_hermite : roots and quadrature weights of physicist's
-                    Hermite polynomials
-    hermite : physicist's Hermite polynomial object
-    numpy.polynomial.hermite.Hermite : Physicist's Hermite series
-    eval_hermitenorm : evaluate Probabilist's Hermite polynomials
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-add_newdoc("eval_hermitenorm",
-    r"""
-    eval_hermitenorm(n, x, out=None)
-
-    Evaluate probabilist's (normalized) Hermite polynomial at a
-    point.
-
-    Defined by
-
-    .. math::
-
-        He_n(x) = (-1)^n e^{x^2/2} \frac{d^n}{dx^n} e^{-x^2/2};
-
-    :math:`He_n` is a polynomial of degree :math:`n`. See 22.11.8 in
-    [AS]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        Degree of the polynomial
-    x : array_like
-        Points at which to evaluate the Hermite polynomial
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    He : scalar or ndarray
-        Values of the Hermite polynomial
-
-    See Also
-    --------
-    roots_hermitenorm : roots and quadrature weights of probabilist's
-                        Hermite polynomials
-    hermitenorm : probabilist's Hermite polynomial object
-    numpy.polynomial.hermite_e.HermiteE : Probabilist's Hermite series
-    eval_hermite : evaluate physicist's Hermite polynomials
-
-    References
-    ----------
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    """)
-
-
-add_newdoc("exp10",
-    """
-    exp10(x, out=None)
-
-    Compute ``10**x`` element-wise.
-
-    Parameters
-    ----------
-    x : array_like
-        `x` must contain real numbers.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        ``10**x``, computed element-wise.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import exp10
-
-    >>> exp10(3)
-    1000.0
-    >>> x = np.array([[-1, -0.5, 0], [0.5, 1, 1.5]])
-    >>> exp10(x)
-    array([[  0.1       ,   0.31622777,   1.        ],
-           [  3.16227766,  10.        ,  31.6227766 ]])
-
-    """)
-
-add_newdoc("exp2",
-    """
-    exp2(x, out=None)
-
-    Compute ``2**x`` element-wise.
-
-    Parameters
-    ----------
-    x : array_like
-        `x` must contain real numbers.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        ``2**x``, computed element-wise.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import exp2
-
-    >>> exp2(3)
-    8.0
-    >>> x = np.array([[-1, -0.5, 0], [0.5, 1, 1.5]])
-    >>> exp2(x)
-    array([[ 0.5       ,  0.70710678,  1.        ],
-           [ 1.41421356,  2.        ,  2.82842712]])
-    """)
-
-add_newdoc("expm1",
-    """
-    expm1(x, out=None)
-
-    Compute ``exp(x) - 1``.
-
-    When `x` is near zero, ``exp(x)`` is near 1, so the numerical calculation
-    of ``exp(x) - 1`` can suffer from catastrophic loss of precision.
-    ``expm1(x)`` is implemented to avoid the loss of precision that occurs when
-    `x` is near zero.
-
-    Parameters
-    ----------
-    x : array_like
-        `x` must contain real numbers.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        ``exp(x) - 1`` computed element-wise.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import expm1
-
-    >>> expm1(1.0)
-    1.7182818284590451
-    >>> expm1([-0.2, -0.1, 0, 0.1, 0.2])
-    array([-0.18126925, -0.09516258,  0.        ,  0.10517092,  0.22140276])
-
-    The exact value of ``exp(7.5e-13) - 1`` is::
-
-        7.5000000000028125000000007031250000001318...*10**-13.
-
-    Here is what ``expm1(7.5e-13)`` gives:
-
-    >>> expm1(7.5e-13)
-    7.5000000000028135e-13
-
-    Compare that to ``exp(7.5e-13) - 1``, where the subtraction results in
-    a "catastrophic" loss of precision:
-
-    >>> np.exp(7.5e-13) - 1
-    7.5006667543675576e-13
-
-    """)
-
-add_newdoc("expn",
-    r"""
-    expn(n, x, out=None)
-
-    Generalized exponential integral En.
-
-    For integer :math:`n \geq 0` and real :math:`x \geq 0` the
-    generalized exponential integral is defined as [dlmf]_
-
-    .. math::
-
-        E_n(x) = x^{n - 1} \int_x^\infty \frac{e^{-t}}{t^n} dt.
-
-    Parameters
-    ----------
-    n : array_like
-        Non-negative integers
-    x : array_like
-        Real argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the generalized exponential integral
-
-    See Also
-    --------
-    exp1 : special case of :math:`E_n` for :math:`n = 1`
-    expi : related to :math:`E_n` when :math:`n = 1`
-
-    References
-    ----------
-    .. [dlmf] Digital Library of Mathematical Functions, 8.19.2
-              https://dlmf.nist.gov/8.19#E2
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    Its domain is nonnegative n and x.
-
-    >>> sc.expn(-1, 1.0), sc.expn(1, -1.0)
-    (nan, nan)
-
-    It has a pole at ``x = 0`` for ``n = 1, 2``; for larger ``n`` it
-    is equal to ``1 / (n - 1)``.
-
-    >>> sc.expn([0, 1, 2, 3, 4], 0)
-    array([       inf,        inf, 1.        , 0.5       , 0.33333333])
-
-    For n equal to 0 it reduces to ``exp(-x) / x``.
-
-    >>> x = np.array([1, 2, 3, 4])
-    >>> sc.expn(0, x)
-    array([0.36787944, 0.06766764, 0.01659569, 0.00457891])
-    >>> np.exp(-x) / x
-    array([0.36787944, 0.06766764, 0.01659569, 0.00457891])
-
-    For n equal to 1 it reduces to `exp1`.
-
-    >>> sc.expn(1, x)
-    array([0.21938393, 0.04890051, 0.01304838, 0.00377935])
-    >>> sc.exp1(x)
-    array([0.21938393, 0.04890051, 0.01304838, 0.00377935])
-
-    """)
-
-add_newdoc("fdtr",
-    r"""
-    fdtr(dfn, dfd, x, out=None)
-
-    F cumulative distribution function.
-
-    Returns the value of the cumulative distribution function of the
-    F-distribution, also known as Snedecor's F-distribution or the
-    Fisher-Snedecor distribution.
-
-    The F-distribution with parameters :math:`d_n` and :math:`d_d` is the
-    distribution of the random variable,
-
-    .. math::
-        X = \frac{U_n/d_n}{U_d/d_d},
-
-    where :math:`U_n` and :math:`U_d` are random variables distributed
-    :math:`\chi^2`, with :math:`d_n` and :math:`d_d` degrees of freedom,
-    respectively.
-
-    Parameters
-    ----------
-    dfn : array_like
-        First parameter (positive float).
-    dfd : array_like
-        Second parameter (positive float).
-    x : array_like
-        Argument (nonnegative float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    y : scalar or ndarray
-        The CDF of the F-distribution with parameters `dfn` and `dfd` at `x`.
-
-    See Also
-    --------
-    fdtrc : F distribution survival function
-    fdtri : F distribution inverse cumulative distribution
-    scipy.stats.f : F distribution
-
-    Notes
-    -----
-    The regularized incomplete beta function is used, according to the
-    formula,
-
-    .. math::
-        F(d_n, d_d; x) = I_{xd_n/(d_d + xd_n)}(d_n/2, d_d/2).
-
-    Wrapper for the Cephes [1]_ routine `fdtr`. The F distribution is also
-    available as `scipy.stats.f`. Calling `fdtr` directly can improve
-    performance compared to the ``cdf`` method of `scipy.stats.f` (see last
-    example below).
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Calculate the function for ``dfn=1`` and ``dfd=2`` at ``x=1``.
-
-    >>> import numpy as np
-    >>> from scipy.special import fdtr
-    >>> fdtr(1, 2, 1)
-    0.5773502691896258
-
-    Calculate the function at several points by providing a NumPy array for
-    `x`.
-
-    >>> x = np.array([0.5, 2., 3.])
-    >>> fdtr(1, 2, x)
-    array([0.4472136 , 0.70710678, 0.77459667])
-
-    Plot the function for several parameter sets.
-
-    >>> import matplotlib.pyplot as plt
-    >>> dfn_parameters = [1, 5, 10, 50]
-    >>> dfd_parameters = [1, 1, 2, 3]
-    >>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
-    >>> parameters_list = list(zip(dfn_parameters, dfd_parameters,
-    ...                            linestyles))
-    >>> x = np.linspace(0, 30, 1000)
-    >>> fig, ax = plt.subplots()
-    >>> for parameter_set in parameters_list:
-    ...     dfn, dfd, style = parameter_set
-    ...     fdtr_vals = fdtr(dfn, dfd, x)
-    ...     ax.plot(x, fdtr_vals, label=rf"$d_n={dfn},\, d_d={dfd}$",
-    ...             ls=style)
-    >>> ax.legend()
-    >>> ax.set_xlabel("$x$")
-    >>> ax.set_title("F distribution cumulative distribution function")
-    >>> plt.show()
-
-    The F distribution is also available as `scipy.stats.f`. Using `fdtr`
-    directly can be much faster than calling the ``cdf`` method of
-    `scipy.stats.f`, especially for small arrays or individual values.
-    To get the same results one must use the following parametrization:
-    ``stats.f(dfn, dfd).cdf(x)=fdtr(dfn, dfd, x)``.
-
-    >>> from scipy.stats import f
-    >>> dfn, dfd = 1, 2
-    >>> x = 1
-    >>> fdtr_res = fdtr(dfn, dfd, x)  # this will often be faster than below
-    >>> f_dist_res = f(dfn, dfd).cdf(x)
-    >>> fdtr_res == f_dist_res  # test that results are equal
-    True
-    """)
-
-add_newdoc("fdtrc",
-    r"""
-    fdtrc(dfn, dfd, x, out=None)
-
-    F survival function.
-
-    Returns the complemented F-distribution function (the integral of the
-    density from `x` to infinity).
-
-    Parameters
-    ----------
-    dfn : array_like
-        First parameter (positive float).
-    dfd : array_like
-        Second parameter (positive float).
-    x : array_like
-        Argument (nonnegative float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    y : scalar or ndarray
-        The complemented F-distribution function with parameters `dfn` and
-        `dfd` at `x`.
-
-    See Also
-    --------
-    fdtr : F distribution cumulative distribution function
-    fdtri : F distribution inverse cumulative distribution function
-    scipy.stats.f : F distribution
-
-    Notes
-    -----
-    The regularized incomplete beta function is used, according to the
-    formula,
-
-    .. math::
-        F(d_n, d_d; x) = I_{d_d/(d_d + xd_n)}(d_d/2, d_n/2).
-
-    Wrapper for the Cephes [1]_ routine `fdtrc`. The F distribution is also
-    available as `scipy.stats.f`. Calling `fdtrc` directly can improve
-    performance compared to the ``sf`` method of `scipy.stats.f` (see last
-    example below).
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Calculate the function for ``dfn=1`` and ``dfd=2`` at ``x=1``.
-
-    >>> import numpy as np
-    >>> from scipy.special import fdtrc
-    >>> fdtrc(1, 2, 1)
-    0.42264973081037427
-
-    Calculate the function at several points by providing a NumPy array for
-    `x`.
-
-    >>> x = np.array([0.5, 2., 3.])
-    >>> fdtrc(1, 2, x)
-    array([0.5527864 , 0.29289322, 0.22540333])
-
-    Plot the function for several parameter sets.
-
-    >>> import matplotlib.pyplot as plt
-    >>> dfn_parameters = [1, 5, 10, 50]
-    >>> dfd_parameters = [1, 1, 2, 3]
-    >>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
-    >>> parameters_list = list(zip(dfn_parameters, dfd_parameters,
-    ...                            linestyles))
-    >>> x = np.linspace(0, 30, 1000)
-    >>> fig, ax = plt.subplots()
-    >>> for parameter_set in parameters_list:
-    ...     dfn, dfd, style = parameter_set
-    ...     fdtrc_vals = fdtrc(dfn, dfd, x)
-    ...     ax.plot(x, fdtrc_vals, label=rf"$d_n={dfn},\, d_d={dfd}$",
-    ...             ls=style)
-    >>> ax.legend()
-    >>> ax.set_xlabel("$x$")
-    >>> ax.set_title("F distribution survival function")
-    >>> plt.show()
-
-    The F distribution is also available as `scipy.stats.f`. Using `fdtrc`
-    directly can be much faster than calling the ``sf`` method of
-    `scipy.stats.f`, especially for small arrays or individual values.
-    To get the same results one must use the following parametrization:
-    ``stats.f(dfn, dfd).sf(x)=fdtrc(dfn, dfd, x)``.
-
-    >>> from scipy.stats import f
-    >>> dfn, dfd = 1, 2
-    >>> x = 1
-    >>> fdtrc_res = fdtrc(dfn, dfd, x)  # this will often be faster than below
-    >>> f_dist_res = f(dfn, dfd).sf(x)
-    >>> f_dist_res == fdtrc_res  # test that results are equal
-    True
-    """)
-
-add_newdoc("fdtri",
-    r"""
-    fdtri(dfn, dfd, p, out=None)
-
-    The `p`-th quantile of the F-distribution.
-
-    This function is the inverse of the F-distribution CDF, `fdtr`, returning
-    the `x` such that `fdtr(dfn, dfd, x) = p`.
-
-    Parameters
-    ----------
-    dfn : array_like
-        First parameter (positive float).
-    dfd : array_like
-        Second parameter (positive float).
-    p : array_like
-        Cumulative probability, in [0, 1].
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    x : scalar or ndarray
-        The quantile corresponding to `p`.
-
-    See Also
-    --------
-    fdtr : F distribution cumulative distribution function
-    fdtrc : F distribution survival function
-    scipy.stats.f : F distribution
-
-    Notes
-    -----
-    The computation is carried out using the relation to the inverse
-    regularized beta function, :math:`I^{-1}_x(a, b)`.  Let
-    :math:`z = I^{-1}_p(d_d/2, d_n/2).`  Then,
-
-    .. math::
-        x = \frac{d_d (1 - z)}{d_n z}.
-
-    If `p` is such that :math:`x < 0.5`, the following relation is used
-    instead for improved stability: let
-    :math:`z' = I^{-1}_{1 - p}(d_n/2, d_d/2).` Then,
-
-    .. math::
-        x = \frac{d_d z'}{d_n (1 - z')}.
-
-    Wrapper for the Cephes [1]_ routine `fdtri`.
-
-    The F distribution is also available as `scipy.stats.f`. Calling
-    `fdtri` directly can improve performance compared to the ``ppf``
-    method of `scipy.stats.f` (see last example below).
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    `fdtri` represents the inverse of the F distribution CDF which is
-    available as `fdtr`. Here, we calculate the CDF for ``df1=1``, ``df2=2``
-    at ``x=3``. `fdtri` then returns ``3`` given the same values for `df1`,
-    `df2` and the computed CDF value.
-
-    >>> import numpy as np
-    >>> from scipy.special import fdtri, fdtr
-    >>> df1, df2 = 1, 2
-    >>> x = 3
-    >>> cdf_value =  fdtr(df1, df2, x)
-    >>> fdtri(df1, df2, cdf_value)
-    3.000000000000006
-
-    Calculate the function at several points by providing a NumPy array for
-    `x`.
-
-    >>> x = np.array([0.1, 0.4, 0.7])
-    >>> fdtri(1, 2, x)
-    array([0.02020202, 0.38095238, 1.92156863])
-
-    Plot the function for several parameter sets.
-
-    >>> import matplotlib.pyplot as plt
-    >>> dfn_parameters = [50, 10, 1, 50]
-    >>> dfd_parameters = [0.5, 1, 1, 5]
-    >>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
-    >>> parameters_list = list(zip(dfn_parameters, dfd_parameters,
-    ...                            linestyles))
-    >>> x = np.linspace(0, 1, 1000)
-    >>> fig, ax = plt.subplots()
-    >>> for parameter_set in parameters_list:
-    ...     dfn, dfd, style = parameter_set
-    ...     fdtri_vals = fdtri(dfn, dfd, x)
-    ...     ax.plot(x, fdtri_vals, label=rf"$d_n={dfn},\, d_d={dfd}$",
-    ...             ls=style)
-    >>> ax.legend()
-    >>> ax.set_xlabel("$x$")
-    >>> title = "F distribution inverse cumulative distribution function"
-    >>> ax.set_title(title)
-    >>> ax.set_ylim(0, 30)
-    >>> plt.show()
-
-    The F distribution is also available as `scipy.stats.f`. Using `fdtri`
-    directly can be much faster than calling the ``ppf`` method of
-    `scipy.stats.f`, especially for small arrays or individual values.
-    To get the same results one must use the following parametrization:
-    ``stats.f(dfn, dfd).ppf(x)=fdtri(dfn, dfd, x)``.
-
-    >>> from scipy.stats import f
-    >>> dfn, dfd = 1, 2
-    >>> x = 0.7
-    >>> fdtri_res = fdtri(dfn, dfd, x)  # this will often be faster than below
-    >>> f_dist_res = f(dfn, dfd).ppf(x)
-    >>> f_dist_res == fdtri_res  # test that results are equal
-    True
-    """)
-
-add_newdoc("fdtridfd",
-    """
-    fdtridfd(dfn, p, x, out=None)
-
-    Inverse to `fdtr` vs dfd
-
-    Finds the F density argument dfd such that ``fdtr(dfn, dfd, x) == p``.
-
-    Parameters
-    ----------
-    dfn : array_like
-        First parameter (positive float).
-    p : array_like
-        Cumulative probability, in [0, 1].
-    x : array_like
-        Argument (nonnegative float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    dfd : scalar or ndarray
-        `dfd` such that ``fdtr(dfn, dfd, x) == p``.
-
-    See Also
-    --------
-    fdtr : F distribution cumulative distribution function
-    fdtrc : F distribution survival function
-    fdtri : F distribution quantile function
-    scipy.stats.f : F distribution
-
-    Examples
-    --------
-    Compute the F distribution cumulative distribution function for one
-    parameter set.
-
-    >>> from scipy.special import fdtridfd, fdtr
-    >>> dfn, dfd, x = 10, 5, 2
-    >>> cdf_value = fdtr(dfn, dfd, x)
-    >>> cdf_value
-    0.7700248806501017
-
-    Verify that `fdtridfd` recovers the original value for `dfd`:
-
-    >>> fdtridfd(dfn, cdf_value, x)
-    5.0
-    """)
-
-'''
-commented out as fdtridfn seems to have bugs and is not in functions.json
-see: https://github.com/scipy/scipy/pull/15622#discussion_r811440983
-
-add_newdoc(
-    "fdtridfn",
-    """
-    fdtridfn(p, dfd, x, out=None)
-
-    Inverse to `fdtr` vs dfn
-
-    finds the F density argument dfn such that ``fdtr(dfn, dfd, x) == p``.
-
-
-    Parameters
-    ----------
-    p : array_like
-        Cumulative probability, in [0, 1].
-    dfd : array_like
-        Second parameter (positive float).
-    x : array_like
-        Argument (nonnegative float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    dfn : scalar or ndarray
-        `dfn` such that ``fdtr(dfn, dfd, x) == p``.
-
-    See Also
-    --------
-    fdtr, fdtrc, fdtri, fdtridfd
-
-
-    """)
-'''
-
-add_newdoc("fresnel",
-    r"""
-    fresnel(z, out=None)
-
-    Fresnel integrals.
-
-    The Fresnel integrals are defined as
-
-    .. math::
-
-       S(z) &= \int_0^z \sin(\pi t^2 /2) dt \\
-       C(z) &= \int_0^z \cos(\pi t^2 /2) dt.
-
-    See [dlmf]_ for details.
-
-    Parameters
-    ----------
-    z : array_like
-        Real or complex valued argument
-    out : 2-tuple of ndarrays, optional
-        Optional output arrays for the function results
-
-    Returns
-    -------
-    S, C : 2-tuple of scalar or ndarray
-        Values of the Fresnel integrals
-
-    See Also
-    --------
-    fresnel_zeros : zeros of the Fresnel integrals
-
-    References
-    ----------
-    .. [dlmf] NIST Digital Library of Mathematical Functions
-              https://dlmf.nist.gov/7.2#iii
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    As z goes to infinity along the real axis, S and C converge to 0.5.
-
-    >>> S, C = sc.fresnel([0.1, 1, 10, 100, np.inf])
-    >>> S
-    array([0.00052359, 0.43825915, 0.46816998, 0.4968169 , 0.5       ])
-    >>> C
-    array([0.09999753, 0.7798934 , 0.49989869, 0.4999999 , 0.5       ])
-
-    They are related to the error function `erf`.
-
-    >>> z = np.array([1, 2, 3, 4])
-    >>> zeta = 0.5 * np.sqrt(np.pi) * (1 - 1j) * z
-    >>> S, C = sc.fresnel(z)
-    >>> C + 1j*S
-    array([0.7798934 +0.43825915j, 0.48825341+0.34341568j,
-           0.60572079+0.496313j  , 0.49842603+0.42051575j])
-    >>> 0.5 * (1 + 1j) * sc.erf(zeta)
-    array([0.7798934 +0.43825915j, 0.48825341+0.34341568j,
-           0.60572079+0.496313j  , 0.49842603+0.42051575j])
-
-    """)
-
-add_newdoc("gammainc",
-    r"""
-    gammainc(a, x, out=None)
-
-    Regularized lower incomplete gamma function.
-
-    It is defined as
-
-    .. math::
-
-        P(a, x) = \frac{1}{\Gamma(a)} \int_0^x t^{a - 1}e^{-t} dt
-
-    for :math:`a > 0` and :math:`x \geq 0`. See [dlmf]_ for details.
-
-    Parameters
-    ----------
-    a : array_like
-        Positive parameter
-    x : array_like
-        Nonnegative argument
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the lower incomplete gamma function
-
-    See Also
-    --------
-    gammaincc : regularized upper incomplete gamma function
-    gammaincinv : inverse of the regularized lower incomplete gamma function
-    gammainccinv : inverse of the regularized upper incomplete gamma function
-
-    Notes
-    -----
-    The function satisfies the relation ``gammainc(a, x) +
-    gammaincc(a, x) = 1`` where `gammaincc` is the regularized upper
-    incomplete gamma function.
-
-    The implementation largely follows that of [boost]_.
-
-    References
-    ----------
-    .. [dlmf] NIST Digital Library of Mathematical functions
-              https://dlmf.nist.gov/8.2#E4
-    .. [boost] Maddock et. al., "Incomplete Gamma Functions",
-       https://www.boost.org/doc/libs/1_61_0/libs/math/doc/html/math_toolkit/sf_gamma/igamma.html
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    It is the CDF of the gamma distribution, so it starts at 0 and
-    monotonically increases to 1.
-
-    >>> sc.gammainc(0.5, [0, 1, 10, 100])
-    array([0.        , 0.84270079, 0.99999226, 1.        ])
-
-    It is equal to one minus the upper incomplete gamma function.
-
-    >>> a, x = 0.5, 0.4
-    >>> sc.gammainc(a, x)
-    0.6289066304773024
-    >>> 1 - sc.gammaincc(a, x)
-    0.6289066304773024
-
-    """)
-
-add_newdoc("gammaincc",
-    r"""
-    gammaincc(a, x, out=None)
-
-    Regularized upper incomplete gamma function.
-
-    It is defined as
-
-    .. math::
-
-        Q(a, x) = \frac{1}{\Gamma(a)} \int_x^\infty t^{a - 1}e^{-t} dt
-
-    for :math:`a > 0` and :math:`x \geq 0`. See [dlmf]_ for details.
-
-    Parameters
-    ----------
-    a : array_like
-        Positive parameter
-    x : array_like
-        Nonnegative argument
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the upper incomplete gamma function
-
-    See Also
-    --------
-    gammainc : regularized lower incomplete gamma function
-    gammaincinv : inverse of the regularized lower incomplete gamma function
-    gammainccinv : inverse of the regularized upper incomplete gamma function
-
-    Notes
-    -----
-    The function satisfies the relation ``gammainc(a, x) +
-    gammaincc(a, x) = 1`` where `gammainc` is the regularized lower
-    incomplete gamma function.
-
-    The implementation largely follows that of [boost]_.
-
-    References
-    ----------
-    .. [dlmf] NIST Digital Library of Mathematical functions
-              https://dlmf.nist.gov/8.2#E4
-    .. [boost] Maddock et. al., "Incomplete Gamma Functions",
-       https://www.boost.org/doc/libs/1_61_0/libs/math/doc/html/math_toolkit/sf_gamma/igamma.html
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    It is the survival function of the gamma distribution, so it
-    starts at 1 and monotonically decreases to 0.
-
-    >>> sc.gammaincc(0.5, [0, 1, 10, 100, 1000])
-    array([1.00000000e+00, 1.57299207e-01, 7.74421643e-06, 2.08848758e-45,
-           0.00000000e+00])
-
-    It is equal to one minus the lower incomplete gamma function.
-
-    >>> a, x = 0.5, 0.4
-    >>> sc.gammaincc(a, x)
-    0.37109336952269756
-    >>> 1 - sc.gammainc(a, x)
-    0.37109336952269756
-
-    """)
-
-add_newdoc("gammainccinv",
-    """
-    gammainccinv(a, y, out=None)
-
-    Inverse of the regularized upper incomplete gamma function.
-
-    Given an input :math:`y` between 0 and 1, returns :math:`x` such
-    that :math:`y = Q(a, x)`. Here :math:`Q` is the regularized upper
-    incomplete gamma function; see `gammaincc`. This is well-defined
-    because the upper incomplete gamma function is monotonic as can
-    be seen from its definition in [dlmf]_.
-
-    Parameters
-    ----------
-    a : array_like
-        Positive parameter
-    y : array_like
-        Argument between 0 and 1, inclusive
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the inverse of the upper incomplete gamma function
-
-    See Also
-    --------
-    gammaincc : regularized upper incomplete gamma function
-    gammainc : regularized lower incomplete gamma function
-    gammaincinv : inverse of the regularized lower incomplete gamma function
-
-    References
-    ----------
-    .. [dlmf] NIST Digital Library of Mathematical Functions
-              https://dlmf.nist.gov/8.2#E4
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    It starts at infinity and monotonically decreases to 0.
-
-    >>> sc.gammainccinv(0.5, [0, 0.1, 0.5, 1])
-    array([       inf, 1.35277173, 0.22746821, 0.        ])
-
-    It inverts the upper incomplete gamma function.
-
-    >>> a, x = 0.5, [0, 0.1, 0.5, 1]
-    >>> sc.gammaincc(a, sc.gammainccinv(a, x))
-    array([0. , 0.1, 0.5, 1. ])
-
-    >>> a, x = 0.5, [0, 10, 50]
-    >>> sc.gammainccinv(a, sc.gammaincc(a, x))
-    array([ 0., 10., 50.])
-
-    """)
-
-add_newdoc("gammaincinv",
-    """
-    gammaincinv(a, y, out=None)
-
-    Inverse to the regularized lower incomplete gamma function.
-
-    Given an input :math:`y` between 0 and 1, returns :math:`x` such
-    that :math:`y = P(a, x)`. Here :math:`P` is the regularized lower
-    incomplete gamma function; see `gammainc`. This is well-defined
-    because the lower incomplete gamma function is monotonic as can be
-    seen from its definition in [dlmf]_.
-
-    Parameters
-    ----------
-    a : array_like
-        Positive parameter
-    y : array_like
-        Parameter between 0 and 1, inclusive
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the inverse of the lower incomplete gamma function
-
-    See Also
-    --------
-    gammainc : regularized lower incomplete gamma function
-    gammaincc : regularized upper incomplete gamma function
-    gammainccinv : inverse of the regularized upper incomplete gamma function
-
-    References
-    ----------
-    .. [dlmf] NIST Digital Library of Mathematical Functions
-              https://dlmf.nist.gov/8.2#E4
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    It starts at 0 and monotonically increases to infinity.
-
-    >>> sc.gammaincinv(0.5, [0, 0.1 ,0.5, 1])
-    array([0.        , 0.00789539, 0.22746821,        inf])
-
-    It inverts the lower incomplete gamma function.
-
-    >>> a, x = 0.5, [0, 0.1, 0.5, 1]
-    >>> sc.gammainc(a, sc.gammaincinv(a, x))
-    array([0. , 0.1, 0.5, 1. ])
-
-    >>> a, x = 0.5, [0, 10, 25]
-    >>> sc.gammaincinv(a, sc.gammainc(a, x))
-    array([ 0.        , 10.        , 25.00001465])
-
-    """)
-
-add_newdoc("gammasgn",
-    r"""
-    gammasgn(x, out=None)
-
-    Sign of the gamma function.
-
-    It is defined as
-
-    .. math::
-
-       \text{gammasgn}(x) =
-       \begin{cases}
-         +1 & \Gamma(x) > 0 \\
-         -1 & \Gamma(x) < 0
-       \end{cases}
-
-    where :math:`\Gamma` is the gamma function; see `gamma`. This
-    definition is complete since the gamma function is never zero;
-    see the discussion after [dlmf]_.
-
-    Parameters
-    ----------
-    x : array_like
-        Real argument
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Sign of the gamma function
-
-    See Also
-    --------
-    gamma : the gamma function
-    gammaln : log of the absolute value of the gamma function
-    loggamma : analytic continuation of the log of the gamma function
-
-    Notes
-    -----
-    The gamma function can be computed as ``gammasgn(x) *
-    np.exp(gammaln(x))``.
-
-    References
-    ----------
-    .. [dlmf] NIST Digital Library of Mathematical Functions
-              https://dlmf.nist.gov/5.2#E1
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is 1 for `x > 0`.
-
-    >>> sc.gammasgn([1, 2, 3, 4])
-    array([1., 1., 1., 1.])
-
-    It alternates between -1 and 1 for negative integers.
-
-    >>> sc.gammasgn([-0.5, -1.5, -2.5, -3.5])
-    array([-1.,  1., -1.,  1.])
-
-    It can be used to compute the gamma function.
-
-    >>> x = [1.5, 0.5, -0.5, -1.5]
-    >>> sc.gammasgn(x) * np.exp(sc.gammaln(x))
-    array([ 0.88622693,  1.77245385, -3.5449077 ,  2.3632718 ])
-    >>> sc.gamma(x)
-    array([ 0.88622693,  1.77245385, -3.5449077 ,  2.3632718 ])
-
-    """)
-
-add_newdoc("gdtr",
-    r"""
-    gdtr(a, b, x, out=None)
-
-    Gamma distribution cumulative distribution function.
-
-    Returns the integral from zero to `x` of the gamma probability density
-    function,
-
-    .. math::
-
-        F = \int_0^x \frac{a^b}{\Gamma(b)} t^{b-1} e^{-at}\,dt,
-
-    where :math:`\Gamma` is the gamma function.
-
-    Parameters
-    ----------
-    a : array_like
-        The rate parameter of the gamma distribution, sometimes denoted
-        :math:`\beta` (float).  It is also the reciprocal of the scale
-        parameter :math:`\theta`.
-    b : array_like
-        The shape parameter of the gamma distribution, sometimes denoted
-        :math:`\alpha` (float).
-    x : array_like
-        The quantile (upper limit of integration; float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    F : scalar or ndarray
-        The CDF of the gamma distribution with parameters `a` and `b`
-        evaluated at `x`.
-
-    See Also
-    --------
-    gdtrc : 1 - CDF of the gamma distribution.
-    scipy.stats.gamma: Gamma distribution
-
-    Notes
-    -----
-    The evaluation is carried out using the relation to the incomplete gamma
-    integral (regularized gamma function).
-
-    Wrapper for the Cephes [1]_ routine `gdtr`. Calling `gdtr` directly can
-    improve performance compared to the ``cdf`` method of `scipy.stats.gamma`
-    (see last example below).
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Compute the function for ``a=1``, ``b=2`` at ``x=5``.
-
-    >>> import numpy as np
-    >>> from scipy.special import gdtr
-    >>> import matplotlib.pyplot as plt
-    >>> gdtr(1., 2., 5.)
-    0.9595723180054873
-
-    Compute the function for ``a=1`` and ``b=2`` at several points by
-    providing a NumPy array for `x`.
-
-    >>> xvalues = np.array([1., 2., 3., 4])
-    >>> gdtr(1., 1., xvalues)
-    array([0.63212056, 0.86466472, 0.95021293, 0.98168436])
-
-    `gdtr` can evaluate different parameter sets by providing arrays with
-    broadcasting compatible shapes for `a`, `b` and `x`. Here we compute the
-    function for three different `a` at four positions `x` and ``b=3``,
-    resulting in a 3x4 array.
-
-    >>> a = np.array([[0.5], [1.5], [2.5]])
-    >>> x = np.array([1., 2., 3., 4])
-    >>> a.shape, x.shape
-    ((3, 1), (4,))
-
-    >>> gdtr(a, 3., x)
-    array([[0.01438768, 0.0803014 , 0.19115317, 0.32332358],
-           [0.19115317, 0.57680992, 0.82642193, 0.9380312 ],
-           [0.45618688, 0.87534798, 0.97974328, 0.9972306 ]])
-
-    Plot the function for four different parameter sets.
-
-    >>> a_parameters = [0.3, 1, 2, 6]
-    >>> b_parameters = [2, 10, 15, 20]
-    >>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
-    >>> parameters_list = list(zip(a_parameters, b_parameters, linestyles))
-    >>> x = np.linspace(0, 30, 1000)
-    >>> fig, ax = plt.subplots()
-    >>> for parameter_set in parameters_list:
-    ...     a, b, style = parameter_set
-    ...     gdtr_vals = gdtr(a, b, x)
-    ...     ax.plot(x, gdtr_vals, label=fr"$a= {a},\, b={b}$", ls=style)
-    >>> ax.legend()
-    >>> ax.set_xlabel("$x$")
-    >>> ax.set_title("Gamma distribution cumulative distribution function")
-    >>> plt.show()
-
-    The gamma distribution is also available as `scipy.stats.gamma`. Using
-    `gdtr` directly can be much faster than calling the ``cdf`` method of
-    `scipy.stats.gamma`, especially for small arrays or individual values.
-    To get the same results one must use the following parametrization:
-    ``stats.gamma(b, scale=1/a).cdf(x)=gdtr(a, b, x)``.
-
-    >>> from scipy.stats import gamma
-    >>> a = 2.
-    >>> b = 3
-    >>> x = 1.
-    >>> gdtr_result = gdtr(a, b, x)  # this will often be faster than below
-    >>> gamma_dist_result = gamma(b, scale=1/a).cdf(x)
-    >>> gdtr_result == gamma_dist_result  # test that results are equal
-    True
-    """)
-
-add_newdoc("gdtrc",
-    r"""
-    gdtrc(a, b, x, out=None)
-
-    Gamma distribution survival function.
-
-    Integral from `x` to infinity of the gamma probability density function,
-
-    .. math::
-
-        F = \int_x^\infty \frac{a^b}{\Gamma(b)} t^{b-1} e^{-at}\,dt,
-
-    where :math:`\Gamma` is the gamma function.
-
-    Parameters
-    ----------
-    a : array_like
-        The rate parameter of the gamma distribution, sometimes denoted
-        :math:`\beta` (float). It is also the reciprocal of the scale
-        parameter :math:`\theta`.
-    b : array_like
-        The shape parameter of the gamma distribution, sometimes denoted
-        :math:`\alpha` (float).
-    x : array_like
-        The quantile (lower limit of integration; float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    F : scalar or ndarray
-        The survival function of the gamma distribution with parameters `a`
-        and `b` evaluated at `x`.
-
-    See Also
-    --------
-    gdtr: Gamma distribution cumulative distribution function
-    scipy.stats.gamma: Gamma distribution
-    gdtrix
-
-    Notes
-    -----
-    The evaluation is carried out using the relation to the incomplete gamma
-    integral (regularized gamma function).
-
-    Wrapper for the Cephes [1]_ routine `gdtrc`. Calling `gdtrc` directly can
-    improve performance compared to the ``sf`` method of `scipy.stats.gamma`
-    (see last example below).
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Compute the function for ``a=1`` and ``b=2`` at ``x=5``.
-
-    >>> import numpy as np
-    >>> from scipy.special import gdtrc
-    >>> import matplotlib.pyplot as plt
-    >>> gdtrc(1., 2., 5.)
-    0.04042768199451279
-
-    Compute the function for ``a=1``, ``b=2`` at several points by providing
-    a NumPy array for `x`.
-
-    >>> xvalues = np.array([1., 2., 3., 4])
-    >>> gdtrc(1., 1., xvalues)
-    array([0.36787944, 0.13533528, 0.04978707, 0.01831564])
-
-    `gdtrc` can evaluate different parameter sets by providing arrays with
-    broadcasting compatible shapes for `a`, `b` and `x`. Here we compute the
-    function for three different `a` at four positions `x` and ``b=3``,
-    resulting in a 3x4 array.
-
-    >>> a = np.array([[0.5], [1.5], [2.5]])
-    >>> x = np.array([1., 2., 3., 4])
-    >>> a.shape, x.shape
-    ((3, 1), (4,))
-
-    >>> gdtrc(a, 3., x)
-    array([[0.98561232, 0.9196986 , 0.80884683, 0.67667642],
-           [0.80884683, 0.42319008, 0.17357807, 0.0619688 ],
-           [0.54381312, 0.12465202, 0.02025672, 0.0027694 ]])
-
-    Plot the function for four different parameter sets.
-
-    >>> a_parameters = [0.3, 1, 2, 6]
-    >>> b_parameters = [2, 10, 15, 20]
-    >>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
-    >>> parameters_list = list(zip(a_parameters, b_parameters, linestyles))
-    >>> x = np.linspace(0, 30, 1000)
-    >>> fig, ax = plt.subplots()
-    >>> for parameter_set in parameters_list:
-    ...     a, b, style = parameter_set
-    ...     gdtrc_vals = gdtrc(a, b, x)
-    ...     ax.plot(x, gdtrc_vals, label=fr"$a= {a},\, b={b}$", ls=style)
-    >>> ax.legend()
-    >>> ax.set_xlabel("$x$")
-    >>> ax.set_title("Gamma distribution survival function")
-    >>> plt.show()
-
-    The gamma distribution is also available as `scipy.stats.gamma`.
-    Using `gdtrc` directly can be much faster than calling the ``sf`` method
-    of `scipy.stats.gamma`, especially for small arrays or individual
-    values. To get the same results one must use the following parametrization:
-    ``stats.gamma(b, scale=1/a).sf(x)=gdtrc(a, b, x)``.
-
-    >>> from scipy.stats import gamma
-    >>> a = 2
-    >>> b = 3
-    >>> x = 1.
-    >>> gdtrc_result = gdtrc(a, b, x)  # this will often be faster than below
-    >>> gamma_dist_result = gamma(b, scale=1/a).sf(x)
-    >>> gdtrc_result == gamma_dist_result  # test that results are equal
-    True
-    """)
-
-add_newdoc("gdtria",
-    """
-    gdtria(p, b, x, out=None)
-
-    Inverse of `gdtr` vs a.
-
-    Returns the inverse with respect to the parameter `a` of ``p =
-    gdtr(a, b, x)``, the cumulative distribution function of the gamma
-    distribution.
-
-    Parameters
-    ----------
-    p : array_like
-        Probability values.
-    b : array_like
-        `b` parameter values of `gdtr(a, b, x)`. `b` is the "shape" parameter
-        of the gamma distribution.
-    x : array_like
-        Nonnegative real values, from the domain of the gamma distribution.
-    out : ndarray, optional
-        If a fourth argument is given, it must be a numpy.ndarray whose size
-        matches the broadcast result of `a`, `b` and `x`.  `out` is then the
-        array returned by the function.
-
-    Returns
-    -------
-    a : scalar or ndarray
-        Values of the `a` parameter such that `p = gdtr(a, b, x)`.  `1/a`
-        is the "scale" parameter of the gamma distribution.
-
-    See Also
-    --------
-    gdtr : CDF of the gamma distribution.
-    gdtrib : Inverse with respect to `b` of `gdtr(a, b, x)`.
-    gdtrix : Inverse with respect to `x` of `gdtr(a, b, x)`.
-
-    Notes
-    -----
-    Wrapper for the CDFLIB [1]_ Fortran routine `cdfgam`.
-
-    The cumulative distribution function `p` is computed using a routine by
-    DiDinato and Morris [2]_. Computation of `a` involves a search for a value
-    that produces the desired value of `p`. The search relies on the
-    monotonicity of `p` with `a`.
-
-    References
-    ----------
-    .. [1] Barry Brown, James Lovato, and Kathy Russell,
-           CDFLIB: Library of Fortran Routines for Cumulative Distribution
-           Functions, Inverses, and Other Parameters.
-    .. [2] DiDinato, A. R. and Morris, A. H.,
-           Computation of the incomplete gamma function ratios and their
-           inverse.  ACM Trans. Math. Softw. 12 (1986), 377-393.
-
-    Examples
-    --------
-    First evaluate `gdtr`.
-
-    >>> from scipy.special import gdtr, gdtria
-    >>> p = gdtr(1.2, 3.4, 5.6)
-    >>> print(p)
-    0.94378087442
-
-    Verify the inverse.
-
-    >>> gdtria(p, 3.4, 5.6)
-    1.2
-    """)
-
-add_newdoc("gdtrib",
-    """
-    gdtrib(a, p, x, out=None)
-
-    Inverse of `gdtr` vs b.
-
-    Returns the inverse with respect to the parameter `b` of ``p =
-    gdtr(a, b, x)``, the cumulative distribution function of the gamma
-    distribution.
-
-    Parameters
-    ----------
-    a : array_like
-        `a` parameter values of `gdtr(a, b, x)`. `1/a` is the "scale"
-        parameter of the gamma distribution.
-    p : array_like
-        Probability values.
-    x : array_like
-        Nonnegative real values, from the domain of the gamma distribution.
-    out : ndarray, optional
-        If a fourth argument is given, it must be a numpy.ndarray whose size
-        matches the broadcast result of `a`, `b` and `x`.  `out` is then the
-        array returned by the function.
-
-    Returns
-    -------
-    b : scalar or ndarray
-        Values of the `b` parameter such that `p = gdtr(a, b, x)`.  `b` is
-        the "shape" parameter of the gamma distribution.
-
-    See Also
-    --------
-    gdtr : CDF of the gamma distribution.
-    gdtria : Inverse with respect to `a` of `gdtr(a, b, x)`.
-    gdtrix : Inverse with respect to `x` of `gdtr(a, b, x)`.
-
-    Notes
-    -----
-    Wrapper for the CDFLIB [1]_ Fortran routine `cdfgam`.
-
-    The cumulative distribution function `p` is computed using a routine by
-    DiDinato and Morris [2]_. Computation of `b` involves a search for a value
-    that produces the desired value of `p`. The search relies on the
-    monotonicity of `p` with `b`.
-
-    References
-    ----------
-    .. [1] Barry Brown, James Lovato, and Kathy Russell,
-           CDFLIB: Library of Fortran Routines for Cumulative Distribution
-           Functions, Inverses, and Other Parameters.
-    .. [2] DiDinato, A. R. and Morris, A. H.,
-           Computation of the incomplete gamma function ratios and their
-           inverse.  ACM Trans. Math. Softw. 12 (1986), 377-393.
-
-    Examples
-    --------
-    First evaluate `gdtr`.
-
-    >>> from scipy.special import gdtr, gdtrib
-    >>> p = gdtr(1.2, 3.4, 5.6)
-    >>> print(p)
-    0.94378087442
-
-    Verify the inverse.
-
-    >>> gdtrib(1.2, p, 5.6)
-    3.3999999999723882
-    """)
-
-add_newdoc("gdtrix",
-    """
-    gdtrix(a, b, p, out=None)
-
-    Inverse of `gdtr` vs x.
-
-    Returns the inverse with respect to the parameter `x` of ``p =
-    gdtr(a, b, x)``, the cumulative distribution function of the gamma
-    distribution. This is also known as the pth quantile of the
-    distribution.
-
-    Parameters
-    ----------
-    a : array_like
-        `a` parameter values of `gdtr(a, b, x)`. `1/a` is the "scale"
-        parameter of the gamma distribution.
-    b : array_like
-        `b` parameter values of `gdtr(a, b, x)`. `b` is the "shape" parameter
-        of the gamma distribution.
-    p : array_like
-        Probability values.
-    out : ndarray, optional
-        If a fourth argument is given, it must be a numpy.ndarray whose size
-        matches the broadcast result of `a`, `b` and `x`. `out` is then the
-        array returned by the function.
-
-    Returns
-    -------
-    x : scalar or ndarray
-        Values of the `x` parameter such that `p = gdtr(a, b, x)`.
-
-    See Also
-    --------
-    gdtr : CDF of the gamma distribution.
-    gdtria : Inverse with respect to `a` of `gdtr(a, b, x)`.
-    gdtrib : Inverse with respect to `b` of `gdtr(a, b, x)`.
-
-    Notes
-    -----
-    Wrapper for the CDFLIB [1]_ Fortran routine `cdfgam`.
-
-    The cumulative distribution function `p` is computed using a routine by
-    DiDinato and Morris [2]_. Computation of `x` involves a search for a value
-    that produces the desired value of `p`. The search relies on the
-    monotonicity of `p` with `x`.
-
-    References
-    ----------
-    .. [1] Barry Brown, James Lovato, and Kathy Russell,
-           CDFLIB: Library of Fortran Routines for Cumulative Distribution
-           Functions, Inverses, and Other Parameters.
-    .. [2] DiDinato, A. R. and Morris, A. H.,
-           Computation of the incomplete gamma function ratios and their
-           inverse.  ACM Trans. Math. Softw. 12 (1986), 377-393.
-
-    Examples
-    --------
-    First evaluate `gdtr`.
-
-    >>> from scipy.special import gdtr, gdtrix
-    >>> p = gdtr(1.2, 3.4, 5.6)
-    >>> print(p)
-    0.94378087442
-
-    Verify the inverse.
-
-    >>> gdtrix(1.2, 3.4, p)
-    5.5999999999999996
-    """)
-
-add_newdoc("hankel1",
-    r"""
-    hankel1(v, z, out=None)
-
-    Hankel function of the first kind
-
-    Parameters
-    ----------
-    v : array_like
-        Order (float).
-    z : array_like
-        Argument (float or complex).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the Hankel function of the first kind.
-
-    See Also
-    --------
-    hankel1e : ndarray
-        This function with leading exponential behavior stripped off.
-
-    Notes
-    -----
-    A wrapper for the AMOS [1]_ routine `zbesh`, which carries out the
-    computation using the relation,
-
-    .. math:: H^{(1)}_v(z) =
-              \frac{2}{\imath\pi} \exp(-\imath \pi v/2) K_v(z \exp(-\imath\pi/2))
-
-    where :math:`K_v` is the modified Bessel function of the second kind.
-    For negative orders, the relation
-
-    .. math:: H^{(1)}_{-v}(z) = H^{(1)}_v(z) \exp(\imath\pi v)
-
-    is used.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-    """)
-
-add_newdoc("hankel1e",
-    r"""
-    hankel1e(v, z, out=None)
-
-    Exponentially scaled Hankel function of the first kind
-
-    Defined as::
-
-        hankel1e(v, z) = hankel1(v, z) * exp(-1j * z)
-
-    Parameters
-    ----------
-    v : array_like
-        Order (float).
-    z : array_like
-        Argument (float or complex).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the exponentially scaled Hankel function.
-
-    Notes
-    -----
-    A wrapper for the AMOS [1]_ routine `zbesh`, which carries out the
-    computation using the relation,
-
-    .. math:: H^{(1)}_v(z) =
-              \frac{2}{\imath\pi} \exp(-\imath \pi v/2) K_v(z \exp(-\imath\pi/2))
-
-    where :math:`K_v` is the modified Bessel function of the second kind.
-    For negative orders, the relation
-
-    .. math:: H^{(1)}_{-v}(z) = H^{(1)}_v(z) \exp(\imath\pi v)
-
-    is used.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-    """)
-
-add_newdoc("hankel2",
-    r"""
-    hankel2(v, z, out=None)
-
-    Hankel function of the second kind
-
-    Parameters
-    ----------
-    v : array_like
-        Order (float).
-    z : array_like
-        Argument (float or complex).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the Hankel function of the second kind.
-
-    See Also
-    --------
-    hankel2e : this function with leading exponential behavior stripped off.
-
-    Notes
-    -----
-    A wrapper for the AMOS [1]_ routine `zbesh`, which carries out the
-    computation using the relation,
-
-    .. math:: H^{(2)}_v(z) =
-              -\frac{2}{\imath\pi} \exp(\imath \pi v/2) K_v(z \exp(\imath\pi/2))
-
-    where :math:`K_v` is the modified Bessel function of the second kind.
-    For negative orders, the relation
-
-    .. math:: H^{(2)}_{-v}(z) = H^{(2)}_v(z) \exp(-\imath\pi v)
-
-    is used.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-    """)
-
-add_newdoc("hankel2e",
-    r"""
-    hankel2e(v, z, out=None)
-
-    Exponentially scaled Hankel function of the second kind
-
-    Defined as::
-
-        hankel2e(v, z) = hankel2(v, z) * exp(1j * z)
-
-    Parameters
-    ----------
-    v : array_like
-        Order (float).
-    z : array_like
-        Argument (float or complex).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the exponentially scaled Hankel function of the second kind.
-
-    Notes
-    -----
-    A wrapper for the AMOS [1]_ routine `zbesh`, which carries out the
-    computation using the relation,
-
-    .. math:: H^{(2)}_v(z) = -\frac{2}{\imath\pi}
-              \exp(\frac{\imath \pi v}{2}) K_v(z exp(\frac{\imath\pi}{2}))
-
-    where :math:`K_v` is the modified Bessel function of the second kind.
-    For negative orders, the relation
-
-    .. math:: H^{(2)}_{-v}(z) = H^{(2)}_v(z) \exp(-\imath\pi v)
-
-    is used.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-
-    """)
-
-add_newdoc("huber",
-    r"""
-    huber(delta, r, out=None)
-
-    Huber loss function.
-
-    .. math:: \text{huber}(\delta, r) = \begin{cases} \infty & \delta < 0  \\
-              \frac{1}{2}r^2 & 0 \le \delta, | r | \le \delta \\
-              \delta ( |r| - \frac{1}{2}\delta ) & \text{otherwise} \end{cases}
-
-    Parameters
-    ----------
-    delta : ndarray
-        Input array, indicating the quadratic vs. linear loss changepoint.
-    r : ndarray
-        Input array, possibly representing residuals.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        The computed Huber loss function values.
-
-    See Also
-    --------
-    pseudo_huber : smooth approximation of this function
-
-    Notes
-    -----
-    `huber` is useful as a loss function in robust statistics or machine
-    learning to reduce the influence of outliers as compared to the common
-    squared error loss, residuals with a magnitude higher than `delta` are
-    not squared [1]_.
-
-    Typically, `r` represents residuals, the difference
-    between a model prediction and data. Then, for :math:`|r|\leq\delta`,
-    `huber` resembles the squared error and for :math:`|r|>\delta` the
-    absolute error. This way, the Huber loss often achieves
-    a fast convergence in model fitting for small residuals like the squared
-    error loss function and still reduces the influence of outliers
-    (:math:`|r|>\delta`) like the absolute error loss. As :math:`\delta` is
-    the cutoff between squared and absolute error regimes, it has
-    to be tuned carefully for each problem. `huber` is also
-    convex, making it suitable for gradient based optimization.
-
-    .. versionadded:: 0.15.0
-
-    References
-    ----------
-    .. [1] Peter Huber. "Robust Estimation of a Location Parameter",
-           1964. Annals of Statistics. 53 (1): 73 - 101.
-
-    Examples
-    --------
-    Import all necessary modules.
-
-    >>> import numpy as np
-    >>> from scipy.special import huber
-    >>> import matplotlib.pyplot as plt
-
-    Compute the function for ``delta=1`` at ``r=2``
-
-    >>> huber(1., 2.)
-    1.5
-
-    Compute the function for different `delta` by providing a NumPy array or
-    list for `delta`.
-
-    >>> huber([1., 3., 5.], 4.)
-    array([3.5, 7.5, 8. ])
-
-    Compute the function at different points by providing a NumPy array or
-    list for `r`.
-
-    >>> huber(2., np.array([1., 1.5, 3.]))
-    array([0.5  , 1.125, 4.   ])
-
-    The function can be calculated for different `delta` and `r` by
-    providing arrays for both with compatible shapes for broadcasting.
-
-    >>> r = np.array([1., 2.5, 8., 10.])
-    >>> deltas = np.array([[1.], [5.], [9.]])
-    >>> print(r.shape, deltas.shape)
-    (4,) (3, 1)
-
-    >>> huber(deltas, r)
-    array([[ 0.5  ,  2.   ,  7.5  ,  9.5  ],
-           [ 0.5  ,  3.125, 27.5  , 37.5  ],
-           [ 0.5  ,  3.125, 32.   , 49.5  ]])
-
-    Plot the function for different `delta`.
-
-    >>> x = np.linspace(-4, 4, 500)
-    >>> deltas = [1, 2, 3]
-    >>> linestyles = ["dashed", "dotted", "dashdot"]
-    >>> fig, ax = plt.subplots()
-    >>> combined_plot_parameters = list(zip(deltas, linestyles))
-    >>> for delta, style in combined_plot_parameters:
-    ...     ax.plot(x, huber(delta, x), label=fr"$\delta={delta}$", ls=style)
-    >>> ax.legend(loc="upper center")
-    >>> ax.set_xlabel("$x$")
-    >>> ax.set_title(r"Huber loss function $h_{\delta}(x)$")
-    >>> ax.set_xlim(-4, 4)
-    >>> ax.set_ylim(0, 8)
-    >>> plt.show()
-    """)
-
-add_newdoc("hyp0f1",
-    r"""
-    hyp0f1(v, z, out=None)
-
-    Confluent hypergeometric limit function 0F1.
-
-    Parameters
-    ----------
-    v : array_like
-        Real-valued parameter
-    z : array_like
-        Real- or complex-valued argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The confluent hypergeometric limit function
-
-    Notes
-    -----
-    This function is defined as:
-
-    .. math:: _0F_1(v, z) = \sum_{k=0}^{\infty}\frac{z^k}{(v)_k k!}.
-
-    It's also the limit as :math:`q \to \infty` of :math:`_1F_1(q; v; z/q)`,
-    and satisfies the differential equation :math:`f''(z) + vf'(z) =
-    f(z)`. See [1]_ for more information.
-
-    References
-    ----------
-    .. [1] Wolfram MathWorld, "Confluent Hypergeometric Limit Function",
-           http://mathworld.wolfram.com/ConfluentHypergeometricLimitFunction.html
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is one when `z` is zero.
-
-    >>> sc.hyp0f1(1, 0)
-    1.0
-
-    It is the limit of the confluent hypergeometric function as `q`
-    goes to infinity.
-
-    >>> q = np.array([1, 10, 100, 1000])
-    >>> v = 1
-    >>> z = 1
-    >>> sc.hyp1f1(q, v, z / q)
-    array([2.71828183, 2.31481985, 2.28303778, 2.27992985])
-    >>> sc.hyp0f1(v, z)
-    2.2795853023360673
-
-    It is related to Bessel functions.
-
-    >>> n = 1
-    >>> x = np.linspace(0, 1, 5)
-    >>> sc.jv(n, x)
-    array([0.        , 0.12402598, 0.24226846, 0.3492436 , 0.44005059])
-    >>> (0.5 * x)**n / sc.factorial(n) * sc.hyp0f1(n + 1, -0.25 * x**2)
-    array([0.        , 0.12402598, 0.24226846, 0.3492436 , 0.44005059])
-
-    """)
-
-add_newdoc("hyp1f1",
-    r"""
-    hyp1f1(a, b, x, out=None)
-
-    Confluent hypergeometric function 1F1.
-
-    The confluent hypergeometric function is defined by the series
-
-    .. math::
-
-       {}_1F_1(a; b; x) = \sum_{k = 0}^\infty \frac{(a)_k}{(b)_k k!} x^k.
-
-    See [dlmf]_ for more details. Here :math:`(\cdot)_k` is the
-    Pochhammer symbol; see `poch`.
-
-    Parameters
-    ----------
-    a, b : array_like
-        Real parameters
-    x : array_like
-        Real or complex argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the confluent hypergeometric function
-
-    See Also
-    --------
-    hyperu : another confluent hypergeometric function
-    hyp0f1 : confluent hypergeometric limit function
-    hyp2f1 : Gaussian hypergeometric function
-
-    References
-    ----------
-    .. [dlmf] NIST Digital Library of Mathematical Functions
-              https://dlmf.nist.gov/13.2#E2
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is one when `x` is zero:
-
-    >>> sc.hyp1f1(0.5, 0.5, 0)
-    1.0
-
-    It is singular when `b` is a nonpositive integer.
-
-    >>> sc.hyp1f1(0.5, -1, 0)
-    inf
-
-    It is a polynomial when `a` is a nonpositive integer.
-
-    >>> a, b, x = -1, 0.5, np.array([1.0, 2.0, 3.0, 4.0])
-    >>> sc.hyp1f1(a, b, x)
-    array([-1., -3., -5., -7.])
-    >>> 1 + (a / b) * x
-    array([-1., -3., -5., -7.])
-
-    It reduces to the exponential function when `a = b`.
-
-    >>> sc.hyp1f1(2, 2, [1, 2, 3, 4])
-    array([ 2.71828183,  7.3890561 , 20.08553692, 54.59815003])
-    >>> np.exp([1, 2, 3, 4])
-    array([ 2.71828183,  7.3890561 , 20.08553692, 54.59815003])
-
-    """)
-
-add_newdoc("hyperu",
-    r"""
-    hyperu(a, b, x, out=None)
-
-    Confluent hypergeometric function U
-
-    It is defined as the solution to the equation
-
-    .. math::
-
-       x \frac{d^2w}{dx^2} + (b - x) \frac{dw}{dx} - aw = 0
-
-    which satisfies the property
-
-    .. math::
-
-       U(a, b, x) \sim x^{-a}
-
-    as :math:`x \to \infty`. See [dlmf]_ for more details.
-
-    Parameters
-    ----------
-    a, b : array_like
-        Real-valued parameters
-    x : array_like
-        Real-valued argument
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of `U`
-
-    References
-    ----------
-    .. [dlmf] NIST Digital Library of Mathematics Functions
-              https://dlmf.nist.gov/13.2#E6
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It has a branch cut along the negative `x` axis.
-
-    >>> x = np.linspace(-0.1, -10, 5)
-    >>> sc.hyperu(1, 1, x)
-    array([nan, nan, nan, nan, nan])
-
-    It approaches zero as `x` goes to infinity.
-
-    >>> x = np.array([1, 10, 100])
-    >>> sc.hyperu(1, 1, x)
-    array([0.59634736, 0.09156333, 0.00990194])
-
-    It satisfies Kummer's transformation.
-
-    >>> a, b, x = 2, 1, 1
-    >>> sc.hyperu(a, b, x)
-    0.1926947246463881
-    >>> x**(1 - b) * sc.hyperu(a - b + 1, 2 - b, x)
-    0.1926947246463881
-
-    """)
-
-add_newdoc("i0",
-    r"""
-    i0(x, out=None)
-
-    Modified Bessel function of order 0.
-
-    Defined as,
-
-    .. math::
-        I_0(x) = \sum_{k=0}^\infty \frac{(x^2/4)^k}{(k!)^2} = J_0(\imath x),
-
-    where :math:`J_0` is the Bessel function of the first kind of order 0.
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float)
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    I : scalar or ndarray
-        Value of the modified Bessel function of order 0 at `x`.
-
-    See Also
-    --------
-    iv: Modified Bessel function of any order
-    i0e: Exponentially scaled modified Bessel function of order 0
-
-    Notes
-    -----
-    The range is partitioned into the two intervals [0, 8] and (8, infinity).
-    Chebyshev polynomial expansions are employed in each interval.
-
-    This function is a wrapper for the Cephes [1]_ routine `i0`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Calculate the function at one point:
-
-    >>> from scipy.special import i0
-    >>> i0(1.)
-    1.2660658777520082
-
-    Calculate at several points:
-
-    >>> import numpy as np
-    >>> i0(np.array([-2., 0., 3.5]))
-    array([2.2795853 , 1.        , 7.37820343])
-
-    Plot the function from -10 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-10., 10., 1000)
-    >>> y = i0(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("i0e",
-    """
-    i0e(x, out=None)
-
-    Exponentially scaled modified Bessel function of order 0.
-
-    Defined as::
-
-        i0e(x) = exp(-abs(x)) * i0(x).
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float)
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    I : scalar or ndarray
-        Value of the exponentially scaled modified Bessel function of order 0
-        at `x`.
-
-    See Also
-    --------
-    iv: Modified Bessel function of the first kind
-    i0: Modified Bessel function of order 0
-
-    Notes
-    -----
-    The range is partitioned into the two intervals [0, 8] and (8, infinity).
-    Chebyshev polynomial expansions are employed in each interval. The
-    polynomial expansions used are the same as those in `i0`, but
-    they are not multiplied by the dominant exponential factor.
-
-    This function is a wrapper for the Cephes [1]_ routine `i0e`. `i0e`
-    is useful for large arguments `x`: for these, `i0` quickly overflows.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    In the following example `i0` returns infinity whereas `i0e` still returns
-    a finite number.
-
-    >>> from scipy.special import i0, i0e
-    >>> i0(1000.), i0e(1000.)
-    (inf, 0.012617240455891257)
-
-    Calculate the function at several points by providing a NumPy array or
-    list for `x`:
-
-    >>> import numpy as np
-    >>> i0e(np.array([-2., 0., 3.]))
-    array([0.30850832, 1.        , 0.24300035])
-
-    Plot the function from -10 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-10., 10., 1000)
-    >>> y = i0e(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-    """)
-
-add_newdoc("i1",
-    r"""
-    i1(x, out=None)
-
-    Modified Bessel function of order 1.
-
-    Defined as,
-
-    .. math::
-        I_1(x) = \frac{1}{2}x \sum_{k=0}^\infty \frac{(x^2/4)^k}{k! (k + 1)!}
-               = -\imath J_1(\imath x),
-
-    where :math:`J_1` is the Bessel function of the first kind of order 1.
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float)
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    I : scalar or ndarray
-        Value of the modified Bessel function of order 1 at `x`.
-
-    See Also
-    --------
-    iv: Modified Bessel function of the first kind
-    i1e: Exponentially scaled modified Bessel function of order 1
-
-    Notes
-    -----
-    The range is partitioned into the two intervals [0, 8] and (8, infinity).
-    Chebyshev polynomial expansions are employed in each interval.
-
-    This function is a wrapper for the Cephes [1]_ routine `i1`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Calculate the function at one point:
-
-    >>> from scipy.special import i1
-    >>> i1(1.)
-    0.5651591039924851
-
-    Calculate the function at several points:
-
-    >>> import numpy as np
-    >>> i1(np.array([-2., 0., 6.]))
-    array([-1.59063685,  0.        , 61.34193678])
-
-    Plot the function between -10 and 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-10., 10., 1000)
-    >>> y = i1(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("i1e",
-    """
-    i1e(x, out=None)
-
-    Exponentially scaled modified Bessel function of order 1.
-
-    Defined as::
-
-        i1e(x) = exp(-abs(x)) * i1(x)
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float)
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    I : scalar or ndarray
-        Value of the exponentially scaled modified Bessel function of order 1
-        at `x`.
-
-    See Also
-    --------
-    iv: Modified Bessel function of the first kind
-    i1: Modified Bessel function of order 1
-
-    Notes
-    -----
-    The range is partitioned into the two intervals [0, 8] and (8, infinity).
-    Chebyshev polynomial expansions are employed in each interval. The
-    polynomial expansions used are the same as those in `i1`, but
-    they are not multiplied by the dominant exponential factor.
-
-    This function is a wrapper for the Cephes [1]_ routine `i1e`. `i1e`
-    is useful for large arguments `x`: for these, `i1` quickly overflows.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    In the following example `i1` returns infinity whereas `i1e` still returns
-    a finite number.
-
-    >>> from scipy.special import i1, i1e
-    >>> i1(1000.), i1e(1000.)
-    (inf, 0.01261093025692863)
-
-    Calculate the function at several points by providing a NumPy array or
-    list for `x`:
-
-    >>> import numpy as np
-    >>> i1e(np.array([-2., 0., 6.]))
-    array([-0.21526929,  0.        ,  0.15205146])
-
-    Plot the function between -10 and 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-10., 10., 1000)
-    >>> y = i1e(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-    """)
-
-add_newdoc("_igam_fac",
-    """
-    Internal function, do not use.
-    """)
-
-add_newdoc("iv",
-    r"""
-    iv(v, z, out=None)
-
-    Modified Bessel function of the first kind of real order.
-
-    Parameters
-    ----------
-    v : array_like
-        Order. If `z` is of real type and negative, `v` must be integer
-        valued.
-    z : array_like of float or complex
-        Argument.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the modified Bessel function.
-
-    See Also
-    --------
-    ive : This function with leading exponential behavior stripped off.
-    i0 : Faster version of this function for order 0.
-    i1 : Faster version of this function for order 1.
-
-    Notes
-    -----
-    For real `z` and :math:`v \in [-50, 50]`, the evaluation is carried out
-    using Temme's method [1]_.  For larger orders, uniform asymptotic
-    expansions are applied.
-
-    For complex `z` and positive `v`, the AMOS [2]_ `zbesi` routine is
-    called. It uses a power series for small `z`, the asymptotic expansion
-    for large `abs(z)`, the Miller algorithm normalized by the Wronskian
-    and a Neumann series for intermediate magnitudes, and the uniform
-    asymptotic expansions for :math:`I_v(z)` and :math:`J_v(z)` for large
-    orders. Backward recurrence is used to generate sequences or reduce
-    orders when necessary.
-
-    The calculations above are done in the right half plane and continued
-    into the left half plane by the formula,
-
-    .. math:: I_v(z \exp(\pm\imath\pi)) = \exp(\pm\pi v) I_v(z)
-
-    (valid when the real part of `z` is positive).  For negative `v`, the
-    formula
-
-    .. math:: I_{-v}(z) = I_v(z) + \frac{2}{\pi} \sin(\pi v) K_v(z)
-
-    is used, where :math:`K_v(z)` is the modified Bessel function of the
-    second kind, evaluated using the AMOS routine `zbesk`.
-
-    References
-    ----------
-    .. [1] Temme, Journal of Computational Physics, vol 21, 343 (1976)
-    .. [2] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-
-    Examples
-    --------
-    Evaluate the function of order 0 at one point.
-
-    >>> from scipy.special import iv
-    >>> iv(0, 1.)
-    1.2660658777520084
-
-    Evaluate the function at one point for different orders.
-
-    >>> iv(0, 1.), iv(1, 1.), iv(1.5, 1.)
-    (1.2660658777520084, 0.565159103992485, 0.2935253263474798)
-
-    The evaluation for different orders can be carried out in one call by
-    providing a list or NumPy array as argument for the `v` parameter:
-
-    >>> iv([0, 1, 1.5], 1.)
-    array([1.26606588, 0.5651591 , 0.29352533])
-
-    Evaluate the function at several points for order 0 by providing an
-    array for `z`.
-
-    >>> import numpy as np
-    >>> points = np.array([-2., 0., 3.])
-    >>> iv(0, points)
-    array([2.2795853 , 1.        , 4.88079259])
-
-    If `z` is an array, the order parameter `v` must be broadcastable to
-    the correct shape if different orders shall be computed in one call.
-    To calculate the orders 0 and 1 for an 1D array:
-
-    >>> orders = np.array([[0], [1]])
-    >>> orders.shape
-    (2, 1)
-
-    >>> iv(orders, points)
-    array([[ 2.2795853 ,  1.        ,  4.88079259],
-           [-1.59063685,  0.        ,  3.95337022]])
-
-    Plot the functions of order 0 to 3 from -5 to 5.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-5., 5., 1000)
-    >>> for i in range(4):
-    ...     ax.plot(x, iv(i, x), label=f'$I_{i!r}$')
-    >>> ax.legend()
-    >>> plt.show()
-
-    """)
-
-add_newdoc("ive",
-    r"""
-    ive(v, z, out=None)
-
-    Exponentially scaled modified Bessel function of the first kind.
-
-    Defined as::
-
-        ive(v, z) = iv(v, z) * exp(-abs(z.real))
-
-    For imaginary numbers without a real part, returns the unscaled
-    Bessel function of the first kind `iv`.
-
-    Parameters
-    ----------
-    v : array_like of float
-        Order.
-    z : array_like of float or complex
-        Argument.
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the exponentially scaled modified Bessel function.
-
-    See Also
-    --------
-    iv: Modified Bessel function of the first kind
-    i0e: Faster implementation of this function for order 0
-    i1e: Faster implementation of this function for order 1
-
-    Notes
-    -----
-    For positive `v`, the AMOS [1]_ `zbesi` routine is called. It uses a
-    power series for small `z`, the asymptotic expansion for large
-    `abs(z)`, the Miller algorithm normalized by the Wronskian and a
-    Neumann series for intermediate magnitudes, and the uniform asymptotic
-    expansions for :math:`I_v(z)` and :math:`J_v(z)` for large orders.
-    Backward recurrence is used to generate sequences or reduce orders when
-    necessary.
-
-    The calculations above are done in the right half plane and continued
-    into the left half plane by the formula,
-
-    .. math:: I_v(z \exp(\pm\imath\pi)) = \exp(\pm\pi v) I_v(z)
-
-    (valid when the real part of `z` is positive).  For negative `v`, the
-    formula
-
-    .. math:: I_{-v}(z) = I_v(z) + \frac{2}{\pi} \sin(\pi v) K_v(z)
-
-    is used, where :math:`K_v(z)` is the modified Bessel function of the
-    second kind, evaluated using the AMOS routine `zbesk`.
-
-    `ive` is useful for large arguments `z`: for these, `iv` easily overflows,
-    while `ive` does not due to the exponential scaling.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-
-    Examples
-    --------
-    In the following example `iv` returns infinity whereas `ive` still returns
-    a finite number.
-
-    >>> from scipy.special import iv, ive
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> iv(3, 1000.), ive(3, 1000.)
-    (inf, 0.01256056218254712)
-
-    Evaluate the function at one point for different orders by
-    providing a list or NumPy array as argument for the `v` parameter:
-
-    >>> ive([0, 1, 1.5], 1.)
-    array([0.46575961, 0.20791042, 0.10798193])
-
-    Evaluate the function at several points for order 0 by providing an
-    array for `z`.
-
-    >>> points = np.array([-2., 0., 3.])
-    >>> ive(0, points)
-    array([0.30850832, 1.        , 0.24300035])
-
-    Evaluate the function at several points for different orders by
-    providing arrays for both `v` for `z`. Both arrays have to be
-    broadcastable to the correct shape. To calculate the orders 0, 1
-    and 2 for a 1D array of points:
-
-    >>> ive([[0], [1], [2]], points)
-    array([[ 0.30850832,  1.        ,  0.24300035],
-           [-0.21526929,  0.        ,  0.19682671],
-           [ 0.09323903,  0.        ,  0.11178255]])
-
-    Plot the functions of order 0 to 3 from -5 to 5.
-
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-5., 5., 1000)
-    >>> for i in range(4):
-    ...     ax.plot(x, ive(i, x), label=fr'$I_{i!r}(z)\cdot e^{{-|z|}}$')
-    >>> ax.legend()
-    >>> ax.set_xlabel(r"$z$")
-    >>> plt.show()
-    """)
-
-add_newdoc("j0",
-    r"""
-    j0(x, out=None)
-
-    Bessel function of the first kind of order 0.
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    J : scalar or ndarray
-        Value of the Bessel function of the first kind of order 0 at `x`.
-
-    See Also
-    --------
-    jv : Bessel function of real order and complex argument.
-    spherical_jn : spherical Bessel functions.
-
-    Notes
-    -----
-    The domain is divided into the intervals [0, 5] and (5, infinity). In the
-    first interval the following rational approximation is used:
-
-    .. math::
-
-        J_0(x) \approx (w - r_1^2)(w - r_2^2) \frac{P_3(w)}{Q_8(w)},
-
-    where :math:`w = x^2` and :math:`r_1`, :math:`r_2` are the zeros of
-    :math:`J_0`, and :math:`P_3` and :math:`Q_8` are polynomials of degrees 3
-    and 8, respectively.
-
-    In the second interval, the Hankel asymptotic expansion is employed with
-    two rational functions of degree 6/6 and 7/7.
-
-    This function is a wrapper for the Cephes [1]_ routine `j0`.
-    It should not be confused with the spherical Bessel functions (see
-    `spherical_jn`).
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Calculate the function at one point:
-
-    >>> from scipy.special import j0
-    >>> j0(1.)
-    0.7651976865579665
-
-    Calculate the function at several points:
-
-    >>> import numpy as np
-    >>> j0(np.array([-2., 0., 4.]))
-    array([ 0.22389078,  1.        , -0.39714981])
-
-    Plot the function from -20 to 20.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-20., 20., 1000)
-    >>> y = j0(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("j1",
-    """
-    j1(x, out=None)
-
-    Bessel function of the first kind of order 1.
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    J : scalar or ndarray
-        Value of the Bessel function of the first kind of order 1 at `x`.
-
-    See Also
-    --------
-    jv: Bessel function of the first kind
-    spherical_jn: spherical Bessel functions.
-
-    Notes
-    -----
-    The domain is divided into the intervals [0, 8] and (8, infinity). In the
-    first interval a 24 term Chebyshev expansion is used. In the second, the
-    asymptotic trigonometric representation is employed using two rational
-    functions of degree 5/5.
-
-    This function is a wrapper for the Cephes [1]_ routine `j1`.
-    It should not be confused with the spherical Bessel functions (see
-    `spherical_jn`).
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Calculate the function at one point:
-
-    >>> from scipy.special import j1
-    >>> j1(1.)
-    0.44005058574493355
-
-    Calculate the function at several points:
-
-    >>> import numpy as np
-    >>> j1(np.array([-2., 0., 4.]))
-    array([-0.57672481,  0.        , -0.06604333])
-
-    Plot the function from -20 to 20.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-20., 20., 1000)
-    >>> y = j1(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("jn",
-    """
-    jn(n, x, out=None)
-
-    Bessel function of the first kind of integer order and real argument.
-
-    Parameters
-    ----------
-    n : array_like
-        order of the Bessel function
-    x : array_like
-        argument of the Bessel function
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    scalar or ndarray
-        The value of the bessel function
-
-    See Also
-    --------
-    jv
-    spherical_jn : spherical Bessel functions.
-
-    Notes
-    -----
-    `jn` is an alias of `jv`.
-    Not to be confused with the spherical Bessel functions (see
-    `spherical_jn`).
-
-    """)
-
-add_newdoc("jv",
-    r"""
-    jv(v, z, out=None)
-
-    Bessel function of the first kind of real order and complex argument.
-
-    Parameters
-    ----------
-    v : array_like
-        Order (float).
-    z : array_like
-        Argument (float or complex).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    J : scalar or ndarray
-        Value of the Bessel function, :math:`J_v(z)`.
-
-    See Also
-    --------
-    jve : :math:`J_v` with leading exponential behavior stripped off.
-    spherical_jn : spherical Bessel functions.
-    j0 : faster version of this function for order 0.
-    j1 : faster version of this function for order 1.
-
-    Notes
-    -----
-    For positive `v` values, the computation is carried out using the AMOS
-    [1]_ `zbesj` routine, which exploits the connection to the modified
-    Bessel function :math:`I_v`,
-
-    .. math::
-        J_v(z) = \exp(v\pi\imath/2) I_v(-\imath z)\qquad (\Im z > 0)
-
-        J_v(z) = \exp(-v\pi\imath/2) I_v(\imath z)\qquad (\Im z < 0)
-
-    For negative `v` values the formula,
-
-    .. math:: J_{-v}(z) = J_v(z) \cos(\pi v) - Y_v(z) \sin(\pi v)
-
-    is used, where :math:`Y_v(z)` is the Bessel function of the second
-    kind, computed using the AMOS routine `zbesy`.  Note that the second
-    term is exactly zero for integer `v`; to improve accuracy the second
-    term is explicitly omitted for `v` values such that `v = floor(v)`.
-
-    Not to be confused with the spherical Bessel functions (see `spherical_jn`).
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-
-    Examples
-    --------
-    Evaluate the function of order 0 at one point.
-
-    >>> from scipy.special import jv
-    >>> jv(0, 1.)
-    0.7651976865579666
-
-    Evaluate the function at one point for different orders.
-
-    >>> jv(0, 1.), jv(1, 1.), jv(1.5, 1.)
-    (0.7651976865579666, 0.44005058574493355, 0.24029783912342725)
-
-    The evaluation for different orders can be carried out in one call by
-    providing a list or NumPy array as argument for the `v` parameter:
-
-    >>> jv([0, 1, 1.5], 1.)
-    array([0.76519769, 0.44005059, 0.24029784])
-
-    Evaluate the function at several points for order 0 by providing an
-    array for `z`.
-
-    >>> import numpy as np
-    >>> points = np.array([-2., 0., 3.])
-    >>> jv(0, points)
-    array([ 0.22389078,  1.        , -0.26005195])
-
-    If `z` is an array, the order parameter `v` must be broadcastable to
-    the correct shape if different orders shall be computed in one call.
-    To calculate the orders 0 and 1 for an 1D array:
-
-    >>> orders = np.array([[0], [1]])
-    >>> orders.shape
-    (2, 1)
-
-    >>> jv(orders, points)
-    array([[ 0.22389078,  1.        , -0.26005195],
-           [-0.57672481,  0.        ,  0.33905896]])
-
-    Plot the functions of order 0 to 3 from -10 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-10., 10., 1000)
-    >>> for i in range(4):
-    ...     ax.plot(x, jv(i, x), label=f'$J_{i!r}$')
-    >>> ax.legend()
-    >>> plt.show()
-
-    """)
-
-add_newdoc("jve",
-    r"""
-    jve(v, z, out=None)
-
-    Exponentially scaled Bessel function of the first kind of order `v`.
-
-    Defined as::
-
-        jve(v, z) = jv(v, z) * exp(-abs(z.imag))
-
-    Parameters
-    ----------
-    v : array_like
-        Order (float).
-    z : array_like
-        Argument (float or complex).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    J : scalar or ndarray
-        Value of the exponentially scaled Bessel function.
-
-    See Also
-    --------
-    jv: Unscaled Bessel function of the first kind
-
-    Notes
-    -----
-    For positive `v` values, the computation is carried out using the AMOS
-    [1]_ `zbesj` routine, which exploits the connection to the modified
-    Bessel function :math:`I_v`,
-
-    .. math::
-        J_v(z) = \exp(v\pi\imath/2) I_v(-\imath z)\qquad (\Im z > 0)
-
-        J_v(z) = \exp(-v\pi\imath/2) I_v(\imath z)\qquad (\Im z < 0)
-
-    For negative `v` values the formula,
-
-    .. math:: J_{-v}(z) = J_v(z) \cos(\pi v) - Y_v(z) \sin(\pi v)
-
-    is used, where :math:`Y_v(z)` is the Bessel function of the second
-    kind, computed using the AMOS routine `zbesy`.  Note that the second
-    term is exactly zero for integer `v`; to improve accuracy the second
-    term is explicitly omitted for `v` values such that `v = floor(v)`.
-
-    Exponentially scaled Bessel functions are useful for large arguments `z`:
-    for these, the unscaled Bessel functions can easily under-or overflow.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-
-    Examples
-    --------
-    Compare the output of `jv` and `jve` for large complex arguments for `z`
-    by computing their values for order ``v=1`` at ``z=1000j``. We see that
-    `jv` overflows but `jve` returns a finite number:
-
-    >>> import numpy as np
-    >>> from scipy.special import jv, jve
-    >>> v = 1
-    >>> z = 1000j
-    >>> jv(v, z), jve(v, z)
-    ((inf+infj), (7.721967686709077e-19+0.012610930256928629j))
-
-    For real arguments for `z`, `jve` returns the same as `jv`.
-
-    >>> v, z = 1, 1000
-    >>> jv(v, z), jve(v, z)
-    (0.004728311907089523, 0.004728311907089523)
-
-    The function can be evaluated for several orders at the same time by
-    providing a list or NumPy array for `v`:
-
-    >>> jve([1, 3, 5], 1j)
-    array([1.27304208e-17+2.07910415e-01j, -4.99352086e-19-8.15530777e-03j,
-           6.11480940e-21+9.98657141e-05j])
-
-    In the same way, the function can be evaluated at several points in one
-    call by providing a list or NumPy array for `z`:
-
-    >>> jve(1, np.array([1j, 2j, 3j]))
-    array([1.27308412e-17+0.20791042j, 1.31814423e-17+0.21526929j,
-           1.20521602e-17+0.19682671j])
-
-    It is also possible to evaluate several orders at several points
-    at the same time by providing arrays for `v` and `z` with
-    compatible shapes for broadcasting. Compute `jve` for two different orders
-    `v` and three points `z` resulting in a 2x3 array.
-
-    >>> v = np.array([[1], [3]])
-    >>> z = np.array([1j, 2j, 3j])
-    >>> v.shape, z.shape
-    ((2, 1), (3,))
-
-    >>> jve(v, z)
-    array([[1.27304208e-17+0.20791042j,  1.31810070e-17+0.21526929j,
-            1.20517622e-17+0.19682671j],
-           [-4.99352086e-19-0.00815531j, -1.76289571e-18-0.02879122j,
-            -2.92578784e-18-0.04778332j]])
-    """)
-
-add_newdoc("k0",
-    r"""
-    k0(x, out=None)
-
-    Modified Bessel function of the second kind of order 0, :math:`K_0`.
-
-    This function is also sometimes referred to as the modified Bessel
-    function of the third kind of order 0.
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float).
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    K : scalar or ndarray
-        Value of the modified Bessel function :math:`K_0` at `x`.
-
-    See Also
-    --------
-    kv: Modified Bessel function of the second kind of any order
-    k0e: Exponentially scaled modified Bessel function of the second kind
-
-    Notes
-    -----
-    The range is partitioned into the two intervals [0, 2] and (2, infinity).
-    Chebyshev polynomial expansions are employed in each interval.
-
-    This function is a wrapper for the Cephes [1]_ routine `k0`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Calculate the function at one point:
-
-    >>> from scipy.special import k0
-    >>> k0(1.)
-    0.42102443824070823
-
-    Calculate the function at several points:
-
-    >>> import numpy as np
-    >>> k0(np.array([0.5, 2., 3.]))
-    array([0.92441907, 0.11389387, 0.0347395 ])
-
-    Plot the function from 0 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(0., 10., 1000)
-    >>> y = k0(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("k0e",
-    """
-    k0e(x, out=None)
-
-    Exponentially scaled modified Bessel function K of order 0
-
-    Defined as::
-
-        k0e(x) = exp(x) * k0(x).
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float)
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    K : scalar or ndarray
-        Value of the exponentially scaled modified Bessel function K of order
-        0 at `x`.
-
-    See Also
-    --------
-    kv: Modified Bessel function of the second kind of any order
-    k0: Modified Bessel function of the second kind
-
-    Notes
-    -----
-    The range is partitioned into the two intervals [0, 2] and (2, infinity).
-    Chebyshev polynomial expansions are employed in each interval.
-
-    This function is a wrapper for the Cephes [1]_ routine `k0e`. `k0e` is
-    useful for large arguments: for these, `k0` easily underflows.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    In the following example `k0` returns 0 whereas `k0e` still returns a
-    useful finite number:
-
-    >>> from scipy.special import k0, k0e
-    >>> k0(1000.), k0e(1000)
-    (0., 0.03962832160075422)
-
-    Calculate the function at several points by providing a NumPy array or
-    list for `x`:
-
-    >>> import numpy as np
-    >>> k0e(np.array([0.5, 2., 3.]))
-    array([1.52410939, 0.84156822, 0.6977616 ])
-
-    Plot the function from 0 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(0., 10., 1000)
-    >>> y = k0e(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-    """)
-
-add_newdoc("k1",
-    """
-    k1(x, out=None)
-
-    Modified Bessel function of the second kind of order 1, :math:`K_1(x)`.
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float)
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    K : scalar or ndarray
-        Value of the modified Bessel function K of order 1 at `x`.
-
-    See Also
-    --------
-    kv: Modified Bessel function of the second kind of any order
-    k1e: Exponentially scaled modified Bessel function K of order 1
-
-    Notes
-    -----
-    The range is partitioned into the two intervals [0, 2] and (2, infinity).
-    Chebyshev polynomial expansions are employed in each interval.
-
-    This function is a wrapper for the Cephes [1]_ routine `k1`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Calculate the function at one point:
-
-    >>> from scipy.special import k1
-    >>> k1(1.)
-    0.6019072301972346
-
-    Calculate the function at several points:
-
-    >>> import numpy as np
-    >>> k1(np.array([0.5, 2., 3.]))
-    array([1.65644112, 0.13986588, 0.04015643])
-
-    Plot the function from 0 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(0., 10., 1000)
-    >>> y = k1(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("k1e",
-    """
-    k1e(x, out=None)
-
-    Exponentially scaled modified Bessel function K of order 1
-
-    Defined as::
-
-        k1e(x) = exp(x) * k1(x)
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float)
-    out : ndarray, optional
-        Optional output array for the function values
-
-    Returns
-    -------
-    K : scalar or ndarray
-        Value of the exponentially scaled modified Bessel function K of order
-        1 at `x`.
-
-    See Also
-    --------
-    kv: Modified Bessel function of the second kind of any order
-    k1: Modified Bessel function of the second kind of order 1
-
-    Notes
-    -----
-    The range is partitioned into the two intervals [0, 2] and (2, infinity).
-    Chebyshev polynomial expansions are employed in each interval.
-
-    This function is a wrapper for the Cephes [1]_ routine `k1e`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    In the following example `k1` returns 0 whereas `k1e` still returns a
-    useful floating point number.
-
-    >>> from scipy.special import k1, k1e
-    >>> k1(1000.), k1e(1000.)
-    (0., 0.03964813081296021)
-
-    Calculate the function at several points by providing a NumPy array or
-    list for `x`:
-
-    >>> import numpy as np
-    >>> k1e(np.array([0.5, 2., 3.]))
-    array([2.73100971, 1.03347685, 0.80656348])
-
-    Plot the function from 0 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(0., 10., 1000)
-    >>> y = k1e(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-    """)
-
-add_newdoc("kelvin",
-    """
-    kelvin(x, out=None)
-
-    Kelvin functions as complex numbers
-
-    Parameters
-    ----------
-    x : array_like
-        Argument
-    out : tuple of ndarray, optional
-        Optional output arrays for the function values
-
-    Returns
-    -------
-    Be, Ke, Bep, Kep : 4-tuple of scalar or ndarray
-        The tuple (Be, Ke, Bep, Kep) contains complex numbers
-        representing the real and imaginary Kelvin functions and their
-        derivatives evaluated at `x`.  For example, kelvin(x)[0].real =
-        ber x and kelvin(x)[0].imag = bei x with similar relationships
-        for ker and kei.
-    """)
-
-add_newdoc("ker",
-    r"""
-    ker(x, out=None)
-
-    Kelvin function ker.
-
-    Defined as
-
-    .. math::
-
-        \mathrm{ker}(x) = \Re[K_0(x e^{\pi i / 4})]
-
-    Where :math:`K_0` is the modified Bessel function of the second
-    kind (see `kv`). See [dlmf]_ for more details.
-
-    Parameters
-    ----------
-    x : array_like
-        Real argument.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the Kelvin function.
-
-    See Also
-    --------
-    kei : the corresponding imaginary part
-    kerp : the derivative of ker
-    kv : modified Bessel function of the second kind
-
-    References
-    ----------
-    .. [dlmf] NIST, Digital Library of Mathematical Functions,
-        https://dlmf.nist.gov/10.61
-
-    Examples
-    --------
-    It can be expressed using the modified Bessel function of the
-    second kind.
-
-    >>> import numpy as np
-    >>> import scipy.special as sc
-    >>> x = np.array([1.0, 2.0, 3.0, 4.0])
-    >>> sc.kv(0, x * np.exp(np.pi * 1j / 4)).real
-    array([ 0.28670621, -0.04166451, -0.06702923, -0.03617885])
-    >>> sc.ker(x)
-    array([ 0.28670621, -0.04166451, -0.06702923, -0.03617885])
-
-    """)
-
-add_newdoc("kerp",
-    r"""
-    kerp(x, out=None)
-
-    Derivative of the Kelvin function ker.
-
-    Parameters
-    ----------
-    x : array_like
-        Real argument.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the derivative of ker.
-
-    See Also
-    --------
-    ker
-
-    References
-    ----------
-    .. [dlmf] NIST, Digital Library of Mathematical Functions,
-        https://dlmf.nist.gov/10#PT5
-
-    """)
-
-add_newdoc("kl_div",
-    r"""
-    kl_div(x, y, out=None)
-
-    Elementwise function for computing Kullback-Leibler divergence.
-
-    .. math::
-
-        \mathrm{kl\_div}(x, y) =
-          \begin{cases}
-            x \log(x / y) - x + y & x > 0, y > 0 \\
-            y & x = 0, y \ge 0 \\
-            \infty & \text{otherwise}
-          \end{cases}
-
-    Parameters
-    ----------
-    x, y : array_like
-        Real arguments
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the Kullback-Liebler divergence.
-
-    See Also
-    --------
-    entr, rel_entr, scipy.stats.entropy
-
-    Notes
-    -----
-    .. versionadded:: 0.15.0
-
-    This function is non-negative and is jointly convex in `x` and `y`.
-
-    The origin of this function is in convex programming; see [1]_ for
-    details. This is why the function contains the extra :math:`-x
-    + y` terms over what might be expected from the Kullback-Leibler
-    divergence. For a version of the function without the extra terms,
-    see `rel_entr`.
-
-    References
-    ----------
-    .. [1] Boyd, Stephen and Lieven Vandenberghe. *Convex optimization*.
-           Cambridge University Press, 2004.
-           :doi:`https://doi.org/10.1017/CBO9780511804441`
-
-    """)
-
-add_newdoc("kn",
-    r"""
-    kn(n, x, out=None)
-
-    Modified Bessel function of the second kind of integer order `n`
-
-    Returns the modified Bessel function of the second kind for integer order
-    `n` at real `z`.
-
-    These are also sometimes called functions of the third kind, Basset
-    functions, or Macdonald functions.
-
-    Parameters
-    ----------
-    n : array_like of int
-        Order of Bessel functions (floats will truncate with a warning)
-    x : array_like of float
-        Argument at which to evaluate the Bessel functions
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Value of the Modified Bessel function of the second kind,
-        :math:`K_n(x)`.
-
-    See Also
-    --------
-    kv : Same function, but accepts real order and complex argument
-    kvp : Derivative of this function
-
-    Notes
-    -----
-    Wrapper for AMOS [1]_ routine `zbesk`.  For a discussion of the
-    algorithm used, see [2]_ and the references therein.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-    .. [2] Donald E. Amos, "Algorithm 644: A portable package for Bessel
-           functions of a complex argument and nonnegative order", ACM
-           TOMS Vol. 12 Issue 3, Sept. 1986, p. 265
-
-    Examples
-    --------
-    Plot the function of several orders for real input:
-
-    >>> import numpy as np
-    >>> from scipy.special import kn
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(0, 5, 1000)
-    >>> for N in range(6):
-    ...     plt.plot(x, kn(N, x), label='$K_{}(x)$'.format(N))
-    >>> plt.ylim(0, 10)
-    >>> plt.legend()
-    >>> plt.title(r'Modified Bessel function of the second kind $K_n(x)$')
-    >>> plt.show()
-
-    Calculate for a single value at multiple orders:
-
-    >>> kn([4, 5, 6], 1)
-    array([   44.23241585,   360.9605896 ,  3653.83831186])
-    """)
-
-add_newdoc("kolmogi",
-    """
-    kolmogi(p, out=None)
-
-    Inverse Survival Function of Kolmogorov distribution
-
-    It is the inverse function to `kolmogorov`.
-    Returns y such that ``kolmogorov(y) == p``.
-
-    Parameters
-    ----------
-    p : float array_like
-        Probability
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The value(s) of kolmogi(p)
-
-    See Also
-    --------
-    kolmogorov : The Survival Function for the distribution
-    scipy.stats.kstwobign : Provides the functionality as a continuous distribution
-    smirnov, smirnovi : Functions for the one-sided distribution
-
-    Notes
-    -----
-    `kolmogorov` is used by `stats.kstest` in the application of the
-    Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this
-    function is exposed in `scpy.special`, but the recommended way to achieve
-    the most accurate CDF/SF/PDF/PPF/ISF computations is to use the
-    `stats.kstwobign` distribution.
-
-    Examples
-    --------
-    >>> from scipy.special import kolmogi
-    >>> kolmogi([0, 0.1, 0.25, 0.5, 0.75, 0.9, 1.0])
-    array([        inf,  1.22384787,  1.01918472,  0.82757356,  0.67644769,
-            0.57117327,  0.        ])
-
-    """)
-
-add_newdoc("kolmogorov",
-    r"""
-    kolmogorov(y, out=None)
-
-    Complementary cumulative distribution (Survival Function) function of
-    Kolmogorov distribution.
-
-    Returns the complementary cumulative distribution function of
-    Kolmogorov's limiting distribution (``D_n*\sqrt(n)`` as n goes to infinity)
-    of a two-sided test for equality between an empirical and a theoretical
-    distribution. It is equal to the (limit as n->infinity of the)
-    probability that ``sqrt(n) * max absolute deviation > y``.
-
-    Parameters
-    ----------
-    y : float array_like
-      Absolute deviation between the Empirical CDF (ECDF) and the target CDF,
-      multiplied by sqrt(n).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The value(s) of kolmogorov(y)
-
-    See Also
-    --------
-    kolmogi : The Inverse Survival Function for the distribution
-    scipy.stats.kstwobign : Provides the functionality as a continuous distribution
-    smirnov, smirnovi : Functions for the one-sided distribution
-
-    Notes
-    -----
-    `kolmogorov` is used by `stats.kstest` in the application of the
-    Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this
-    function is exposed in `scpy.special`, but the recommended way to achieve
-    the most accurate CDF/SF/PDF/PPF/ISF computations is to use the
-    `stats.kstwobign` distribution.
-
-    Examples
-    --------
-    Show the probability of a gap at least as big as 0, 0.5 and 1.0.
-
-    >>> import numpy as np
-    >>> from scipy.special import kolmogorov
-    >>> from scipy.stats import kstwobign
-    >>> kolmogorov([0, 0.5, 1.0])
-    array([ 1.        ,  0.96394524,  0.26999967])
-
-    Compare a sample of size 1000 drawn from a Laplace(0, 1) distribution against
-    the target distribution, a Normal(0, 1) distribution.
-
-    >>> from scipy.stats import norm, laplace
-    >>> rng = np.random.default_rng()
-    >>> n = 1000
-    >>> lap01 = laplace(0, 1)
-    >>> x = np.sort(lap01.rvs(n, random_state=rng))
-    >>> np.mean(x), np.std(x)
-    (-0.05841730131499543, 1.3968109101997568)
-
-    Construct the Empirical CDF and the K-S statistic Dn.
-
-    >>> target = norm(0,1)  # Normal mean 0, stddev 1
-    >>> cdfs = target.cdf(x)
-    >>> ecdfs = np.arange(n+1, dtype=float)/n
-    >>> gaps = np.column_stack([cdfs - ecdfs[:n], ecdfs[1:] - cdfs])
-    >>> Dn = np.max(gaps)
-    >>> Kn = np.sqrt(n) * Dn
-    >>> print('Dn=%f, sqrt(n)*Dn=%f' % (Dn, Kn))
-    Dn=0.043363, sqrt(n)*Dn=1.371265
-    >>> print(chr(10).join(['For a sample of size n drawn from a N(0, 1) distribution:',
-    ...   ' the approximate Kolmogorov probability that sqrt(n)*Dn>=%f is %f' %
-    ...    (Kn, kolmogorov(Kn)),
-    ...   ' the approximate Kolmogorov probability that sqrt(n)*Dn<=%f is %f' %
-    ...    (Kn, kstwobign.cdf(Kn))]))
-    For a sample of size n drawn from a N(0, 1) distribution:
-     the approximate Kolmogorov probability that sqrt(n)*Dn>=1.371265 is 0.046533
-     the approximate Kolmogorov probability that sqrt(n)*Dn<=1.371265 is 0.953467
-
-    Plot the Empirical CDF against the target N(0, 1) CDF.
-
-    >>> import matplotlib.pyplot as plt
-    >>> plt.step(np.concatenate([[-3], x]), ecdfs, where='post', label='Empirical CDF')
-    >>> x3 = np.linspace(-3, 3, 100)
-    >>> plt.plot(x3, target.cdf(x3), label='CDF for N(0, 1)')
-    >>> plt.ylim([0, 1]); plt.grid(True); plt.legend();
-    >>> # Add vertical lines marking Dn+ and Dn-
-    >>> iminus, iplus = np.argmax(gaps, axis=0)
-    >>> plt.vlines([x[iminus]], ecdfs[iminus], cdfs[iminus],
-    ...            color='r', linestyle='dashed', lw=4)
-    >>> plt.vlines([x[iplus]], cdfs[iplus], ecdfs[iplus+1],
-    ...            color='r', linestyle='dashed', lw=4)
-    >>> plt.show()
-    """)
-
-add_newdoc("_kolmogc",
-    r"""
-    Internal function, do not use.
-    """)
-
-add_newdoc("_kolmogci",
-    r"""
-    Internal function, do not use.
-    """)
-
-add_newdoc("_kolmogp",
-    r"""
-    Internal function, do not use.
-    """)
-
-add_newdoc("kv",
-    r"""
-    kv(v, z, out=None)
-
-    Modified Bessel function of the second kind of real order `v`
-
-    Returns the modified Bessel function of the second kind for real order
-    `v` at complex `z`.
-
-    These are also sometimes called functions of the third kind, Basset
-    functions, or Macdonald functions.  They are defined as those solutions
-    of the modified Bessel equation for which,
-
-    .. math::
-        K_v(x) \sim \sqrt{\pi/(2x)} \exp(-x)
-
-    as :math:`x \to \infty` [3]_.
-
-    Parameters
-    ----------
-    v : array_like of float
-        Order of Bessel functions
-    z : array_like of complex
-        Argument at which to evaluate the Bessel functions
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The results. Note that input must be of complex type to get complex
-        output, e.g. ``kv(3, -2+0j)`` instead of ``kv(3, -2)``.
-
-    See Also
-    --------
-    kve : This function with leading exponential behavior stripped off.
-    kvp : Derivative of this function
-
-    Notes
-    -----
-    Wrapper for AMOS [1]_ routine `zbesk`.  For a discussion of the
-    algorithm used, see [2]_ and the references therein.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-    .. [2] Donald E. Amos, "Algorithm 644: A portable package for Bessel
-           functions of a complex argument and nonnegative order", ACM
-           TOMS Vol. 12 Issue 3, Sept. 1986, p. 265
-    .. [3] NIST Digital Library of Mathematical Functions,
-           Eq. 10.25.E3. https://dlmf.nist.gov/10.25.E3
-
-    Examples
-    --------
-    Plot the function of several orders for real input:
-
-    >>> import numpy as np
-    >>> from scipy.special import kv
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(0, 5, 1000)
-    >>> for N in np.linspace(0, 6, 5):
-    ...     plt.plot(x, kv(N, x), label='$K_{{{}}}(x)$'.format(N))
-    >>> plt.ylim(0, 10)
-    >>> plt.legend()
-    >>> plt.title(r'Modified Bessel function of the second kind $K_\nu(x)$')
-    >>> plt.show()
-
-    Calculate for a single value at multiple orders:
-
-    >>> kv([4, 4.5, 5], 1+2j)
-    array([ 0.1992+2.3892j,  2.3493+3.6j   ,  7.2827+3.8104j])
-
-    """)
-
-add_newdoc("kve",
-    r"""
-    kve(v, z, out=None)
-
-    Exponentially scaled modified Bessel function of the second kind.
-
-    Returns the exponentially scaled, modified Bessel function of the
-    second kind (sometimes called the third kind) for real order `v` at
-    complex `z`::
-
-        kve(v, z) = kv(v, z) * exp(z)
-
-    Parameters
-    ----------
-    v : array_like of float
-        Order of Bessel functions
-    z : array_like of complex
-        Argument at which to evaluate the Bessel functions
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The exponentially scaled modified Bessel function of the second kind.
-
-    See Also
-    --------
-    kv : This function without exponential scaling.
-    k0e : Faster version of this function for order 0.
-    k1e : Faster version of this function for order 1.
-
-    Notes
-    -----
-    Wrapper for AMOS [1]_ routine `zbesk`.  For a discussion of the
-    algorithm used, see [2]_ and the references therein.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-    .. [2] Donald E. Amos, "Algorithm 644: A portable package for Bessel
-           functions of a complex argument and nonnegative order", ACM
-           TOMS Vol. 12 Issue 3, Sept. 1986, p. 265
-
-    Examples
-    --------
-    In the following example `kv` returns 0 whereas `kve` still returns
-    a useful finite number.
-
-    >>> import numpy as np
-    >>> from scipy.special import kv, kve
-    >>> import matplotlib.pyplot as plt
-    >>> kv(3, 1000.), kve(3, 1000.)
-    (0.0, 0.03980696128440973)
-
-    Evaluate the function at one point for different orders by
-    providing a list or NumPy array as argument for the `v` parameter:
-
-    >>> kve([0, 1, 1.5], 1.)
-    array([1.14446308, 1.63615349, 2.50662827])
-
-    Evaluate the function at several points for order 0 by providing an
-    array for `z`.
-
-    >>> points = np.array([1., 3., 10.])
-    >>> kve(0, points)
-    array([1.14446308, 0.6977616 , 0.39163193])
-
-    Evaluate the function at several points for different orders by
-    providing arrays for both `v` for `z`. Both arrays have to be
-    broadcastable to the correct shape. To calculate the orders 0, 1
-    and 2 for a 1D array of points:
-
-    >>> kve([[0], [1], [2]], points)
-    array([[1.14446308, 0.6977616 , 0.39163193],
-           [1.63615349, 0.80656348, 0.41076657],
-           [4.41677005, 1.23547058, 0.47378525]])
-
-    Plot the functions of order 0 to 3 from 0 to 5.
-
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(0., 5., 1000)
-    >>> for i in range(4):
-    ...     ax.plot(x, kve(i, x), label=fr'$K_{i!r}(z)\cdot e^z$')
-    >>> ax.legend()
-    >>> ax.set_xlabel(r"$z$")
-    >>> ax.set_ylim(0, 4)
-    >>> ax.set_xlim(0, 5)
-    >>> plt.show()
-    """)
-
-add_newdoc("_lanczos_sum_expg_scaled",
-    """
-    Internal function, do not use.
-    """)
-
-add_newdoc("_lgam1p",
-    """
-    Internal function, do not use.
-    """)
-
-add_newdoc("log1p",
-    """
-    log1p(x, out=None)
-
-    Calculates log(1 + x) for use when `x` is near zero.
-
-    Parameters
-    ----------
-    x : array_like
-        Real or complex valued input.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of ``log(1 + x)``.
-
-    See Also
-    --------
-    expm1, cosm1
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is more accurate than using ``log(1 + x)`` directly for ``x``
-    near 0. Note that in the below example ``1 + 1e-17 == 1`` to
-    double precision.
-
-    >>> sc.log1p(1e-17)
-    1e-17
-    >>> np.log(1 + 1e-17)
-    0.0
-
-    """)
-
-add_newdoc("_log1pmx",
-    """
-    Internal function, do not use.
-    """)
-
-add_newdoc("lpmv",
-    r"""
-    lpmv(m, v, x, out=None)
-
-    Associated Legendre function of integer order and real degree.
-
-    Defined as
-
-    .. math::
-
-        P_v^m = (-1)^m (1 - x^2)^{m/2} \frac{d^m}{dx^m} P_v(x)
-
-    where
-
-    .. math::
-
-        P_v = \sum_{k = 0}^\infty \frac{(-v)_k (v + 1)_k}{(k!)^2}
-                \left(\frac{1 - x}{2}\right)^k
-
-    is the Legendre function of the first kind. Here :math:`(\cdot)_k`
-    is the Pochhammer symbol; see `poch`.
-
-    Parameters
-    ----------
-    m : array_like
-        Order (int or float). If passed a float not equal to an
-        integer the function returns NaN.
-    v : array_like
-        Degree (float).
-    x : array_like
-        Argument (float). Must have ``|x| <= 1``.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    pmv : scalar or ndarray
-        Value of the associated Legendre function.
-
-    See Also
-    --------
-    lpmn : Compute the associated Legendre function for all orders
-           ``0, ..., m`` and degrees ``0, ..., n``.
-    clpmn : Compute the associated Legendre function at complex
-            arguments.
-
-    Notes
-    -----
-    Note that this implementation includes the Condon-Shortley phase.
-
-    References
-    ----------
-    .. [1] Zhang, Jin, "Computation of Special Functions", John Wiley
-           and Sons, Inc, 1996.
-
-    """)
-
-add_newdoc("modstruve",
-    r"""
-    modstruve(v, x, out=None)
-
-    Modified Struve function.
-
-    Return the value of the modified Struve function of order `v` at `x`.  The
-    modified Struve function is defined as,
-
-    .. math::
-        L_v(x) = -\imath \exp(-\pi\imath v/2) H_v(\imath x),
-
-    where :math:`H_v` is the Struve function.
-
-    Parameters
-    ----------
-    v : array_like
-        Order of the modified Struve function (float).
-    x : array_like
-        Argument of the Struve function (float; must be positive unless `v` is
-        an integer).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    L : scalar or ndarray
-        Value of the modified Struve function of order `v` at `x`.
-
-    See Also
-    --------
-    struve
-
-    Notes
-    -----
-    Three methods discussed in [1]_ are used to evaluate the function:
-
-    - power series
-    - expansion in Bessel functions (if :math:`|x| < |v| + 20`)
-    - asymptotic large-x expansion (if :math:`x \geq 0.7v + 12`)
-
-    Rounding errors are estimated based on the largest terms in the sums, and
-    the result associated with the smallest error is returned.
-
-    References
-    ----------
-    .. [1] NIST Digital Library of Mathematical Functions
-           https://dlmf.nist.gov/11
-
-    Examples
-    --------
-    Calculate the modified Struve function of order 1 at 2.
-
-    >>> import numpy as np
-    >>> from scipy.special import modstruve
-    >>> import matplotlib.pyplot as plt
-    >>> modstruve(1, 2.)
-    1.102759787367716
-
-    Calculate the modified Struve function at 2 for orders 1, 2 and 3 by
-    providing a list for the order parameter `v`.
-
-    >>> modstruve([1, 2, 3], 2.)
-    array([1.10275979, 0.41026079, 0.11247294])
-
-    Calculate the modified Struve function of order 1 for several points
-    by providing an array for `x`.
-
-    >>> points = np.array([2., 5., 8.])
-    >>> modstruve(1, points)
-    array([  1.10275979,  23.72821578, 399.24709139])
-
-    Compute the modified Struve function for several orders at several
-    points by providing arrays for `v` and `z`. The arrays have to be
-    broadcastable to the correct shapes.
-
-    >>> orders = np.array([[1], [2], [3]])
-    >>> points.shape, orders.shape
-    ((3,), (3, 1))
-
-    >>> modstruve(orders, points)
-    array([[1.10275979e+00, 2.37282158e+01, 3.99247091e+02],
-           [4.10260789e-01, 1.65535979e+01, 3.25973609e+02],
-           [1.12472937e-01, 9.42430454e+00, 2.33544042e+02]])
-
-    Plot the modified Struve functions of order 0 to 3 from -5 to 5.
-
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-5., 5., 1000)
-    >>> for i in range(4):
-    ...     ax.plot(x, modstruve(i, x), label=f'$L_{i!r}$')
-    >>> ax.legend(ncol=2)
-    >>> ax.set_xlim(-5, 5)
-    >>> ax.set_title(r"Modified Struve functions $L_{\nu}$")
-    >>> plt.show()
-    """)
-
-add_newdoc("nbdtr",
-    r"""
-    nbdtr(k, n, p, out=None)
-
-    Negative binomial cumulative distribution function.
-
-    Returns the sum of the terms 0 through `k` of the negative binomial
-    distribution probability mass function,
-
-    .. math::
-
-        F = \sum_{j=0}^k {{n + j - 1}\choose{j}} p^n (1 - p)^j.
-
-    In a sequence of Bernoulli trials with individual success probabilities
-    `p`, this is the probability that `k` or fewer failures precede the nth
-    success.
-
-    Parameters
-    ----------
-    k : array_like
-        The maximum number of allowed failures (nonnegative int).
-    n : array_like
-        The target number of successes (positive int).
-    p : array_like
-        Probability of success in a single event (float).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    F : scalar or ndarray
-        The probability of `k` or fewer failures before `n` successes in a
-        sequence of events with individual success probability `p`.
-
-    See Also
-    --------
-    nbdtrc : Negative binomial survival function
-    nbdtrik : Negative binomial quantile function
-    scipy.stats.nbinom : Negative binomial distribution
-
-    Notes
-    -----
-    If floating point values are passed for `k` or `n`, they will be truncated
-    to integers.
-
-    The terms are not summed directly; instead the regularized incomplete beta
-    function is employed, according to the formula,
-
-    .. math::
-        \mathrm{nbdtr}(k, n, p) = I_{p}(n, k + 1).
-
-    Wrapper for the Cephes [1]_ routine `nbdtr`.
-
-    The negative binomial distribution is also available as
-    `scipy.stats.nbinom`. Using `nbdtr` directly can improve performance
-    compared to the ``cdf`` method of `scipy.stats.nbinom` (see last example).
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Compute the function for ``k=10`` and ``n=5`` at ``p=0.5``.
-
-    >>> import numpy as np
-    >>> from scipy.special import nbdtr
-    >>> nbdtr(10, 5, 0.5)
-    0.940765380859375
-
-    Compute the function for ``n=10`` and ``p=0.5`` at several points by
-    providing a NumPy array or list for `k`.
-
-    >>> nbdtr([5, 10, 15], 10, 0.5)
-    array([0.15087891, 0.58809853, 0.88523853])
-
-    Plot the function for four different parameter sets.
-
-    >>> import matplotlib.pyplot as plt
-    >>> k = np.arange(130)
-    >>> n_parameters = [20, 20, 20, 80]
-    >>> p_parameters = [0.2, 0.5, 0.8, 0.5]
-    >>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
-    >>> parameters_list = list(zip(p_parameters, n_parameters,
-    ...                            linestyles))
-    >>> fig, ax = plt.subplots(figsize=(8, 8))
-    >>> for parameter_set in parameters_list:
-    ...     p, n, style = parameter_set
-    ...     nbdtr_vals = nbdtr(k, n, p)
-    ...     ax.plot(k, nbdtr_vals, label=rf"$n={n},\, p={p}$",
-    ...             ls=style)
-    >>> ax.legend()
-    >>> ax.set_xlabel("$k$")
-    >>> ax.set_title("Negative binomial cumulative distribution function")
-    >>> plt.show()
-
-    The negative binomial distribution is also available as
-    `scipy.stats.nbinom`. Using `nbdtr` directly can be much faster than
-    calling the ``cdf`` method of `scipy.stats.nbinom`, especially for small
-    arrays or individual values. To get the same results one must use the
-    following parametrization: ``nbinom(n, p).cdf(k)=nbdtr(k, n, p)``.
-
-    >>> from scipy.stats import nbinom
-    >>> k, n, p = 5, 3, 0.5
-    >>> nbdtr_res = nbdtr(k, n, p)  # this will often be faster than below
-    >>> stats_res = nbinom(n, p).cdf(k)
-    >>> stats_res, nbdtr_res  # test that results are equal
-    (0.85546875, 0.85546875)
-
-    `nbdtr` can evaluate different parameter sets by providing arrays with
-    shapes compatible for broadcasting for `k`, `n` and `p`. Here we compute
-    the function for three different `k` at four locations `p`, resulting in
-    a 3x4 array.
-
-    >>> k = np.array([[5], [10], [15]])
-    >>> p = np.array([0.3, 0.5, 0.7, 0.9])
-    >>> k.shape, p.shape
-    ((3, 1), (4,))
-
-    >>> nbdtr(k, 5, p)
-    array([[0.15026833, 0.62304687, 0.95265101, 0.9998531 ],
-           [0.48450894, 0.94076538, 0.99932777, 0.99999999],
-           [0.76249222, 0.99409103, 0.99999445, 1.        ]])
-    """)
-
-add_newdoc("nbdtrc",
-    r"""
-    nbdtrc(k, n, p, out=None)
-
-    Negative binomial survival function.
-
-    Returns the sum of the terms `k + 1` to infinity of the negative binomial
-    distribution probability mass function,
-
-    .. math::
-
-        F = \sum_{j=k + 1}^\infty {{n + j - 1}\choose{j}} p^n (1 - p)^j.
-
-    In a sequence of Bernoulli trials with individual success probabilities
-    `p`, this is the probability that more than `k` failures precede the nth
-    success.
-
-    Parameters
-    ----------
-    k : array_like
-        The maximum number of allowed failures (nonnegative int).
-    n : array_like
-        The target number of successes (positive int).
-    p : array_like
-        Probability of success in a single event (float).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    F : scalar or ndarray
-        The probability of `k + 1` or more failures before `n` successes in a
-        sequence of events with individual success probability `p`.
-
-    See Also
-    --------
-    nbdtr : Negative binomial cumulative distribution function
-    nbdtrik : Negative binomial percentile function
-    scipy.stats.nbinom : Negative binomial distribution
-
-    Notes
-    -----
-    If floating point values are passed for `k` or `n`, they will be truncated
-    to integers.
-
-    The terms are not summed directly; instead the regularized incomplete beta
-    function is employed, according to the formula,
-
-    .. math::
-        \mathrm{nbdtrc}(k, n, p) = I_{1 - p}(k + 1, n).
-
-    Wrapper for the Cephes [1]_ routine `nbdtrc`.
-
-    The negative binomial distribution is also available as
-    `scipy.stats.nbinom`. Using `nbdtrc` directly can improve performance
-    compared to the ``sf`` method of `scipy.stats.nbinom` (see last example).
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Compute the function for ``k=10`` and ``n=5`` at ``p=0.5``.
-
-    >>> import numpy as np
-    >>> from scipy.special import nbdtrc
-    >>> nbdtrc(10, 5, 0.5)
-    0.059234619140624986
-
-    Compute the function for ``n=10`` and ``p=0.5`` at several points by
-    providing a NumPy array or list for `k`.
-
-    >>> nbdtrc([5, 10, 15], 10, 0.5)
-    array([0.84912109, 0.41190147, 0.11476147])
-
-    Plot the function for four different parameter sets.
-
-    >>> import matplotlib.pyplot as plt
-    >>> k = np.arange(130)
-    >>> n_parameters = [20, 20, 20, 80]
-    >>> p_parameters = [0.2, 0.5, 0.8, 0.5]
-    >>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
-    >>> parameters_list = list(zip(p_parameters, n_parameters,
-    ...                            linestyles))
-    >>> fig, ax = plt.subplots(figsize=(8, 8))
-    >>> for parameter_set in parameters_list:
-    ...     p, n, style = parameter_set
-    ...     nbdtrc_vals = nbdtrc(k, n, p)
-    ...     ax.plot(k, nbdtrc_vals, label=rf"$n={n},\, p={p}$",
-    ...             ls=style)
-    >>> ax.legend()
-    >>> ax.set_xlabel("$k$")
-    >>> ax.set_title("Negative binomial distribution survival function")
-    >>> plt.show()
-
-    The negative binomial distribution is also available as
-    `scipy.stats.nbinom`. Using `nbdtrc` directly can be much faster than
-    calling the ``sf`` method of `scipy.stats.nbinom`, especially for small
-    arrays or individual values. To get the same results one must use the
-    following parametrization: ``nbinom(n, p).sf(k)=nbdtrc(k, n, p)``.
-
-    >>> from scipy.stats import nbinom
-    >>> k, n, p = 3, 5, 0.5
-    >>> nbdtr_res = nbdtrc(k, n, p)  # this will often be faster than below
-    >>> stats_res = nbinom(n, p).sf(k)
-    >>> stats_res, nbdtr_res  # test that results are equal
-    (0.6367187499999999, 0.6367187499999999)
-
-    `nbdtrc` can evaluate different parameter sets by providing arrays with
-    shapes compatible for broadcasting for `k`, `n` and `p`. Here we compute
-    the function for three different `k` at four locations `p`, resulting in
-    a 3x4 array.
-
-    >>> k = np.array([[5], [10], [15]])
-    >>> p = np.array([0.3, 0.5, 0.7, 0.9])
-    >>> k.shape, p.shape
-    ((3, 1), (4,))
-
-    >>> nbdtrc(k, 5, p)
-    array([[8.49731667e-01, 3.76953125e-01, 4.73489874e-02, 1.46902600e-04],
-           [5.15491059e-01, 5.92346191e-02, 6.72234070e-04, 9.29610100e-09],
-           [2.37507779e-01, 5.90896606e-03, 5.55025308e-06, 3.26346760e-13]])
-    """)
-
-add_newdoc(
-    "nbdtri",
-    r"""
-    nbdtri(k, n, y, out=None)
-
-    Returns the inverse with respect to the parameter `p` of
-    `y = nbdtr(k, n, p)`, the negative binomial cumulative distribution
-    function.
-
-    Parameters
-    ----------
-    k : array_like
-        The maximum number of allowed failures (nonnegative int).
-    n : array_like
-        The target number of successes (positive int).
-    y : array_like
-        The probability of `k` or fewer failures before `n` successes (float).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    p : scalar or ndarray
-        Probability of success in a single event (float) such that
-        `nbdtr(k, n, p) = y`.
-
-    See Also
-    --------
-    nbdtr : Cumulative distribution function of the negative binomial.
-    nbdtrc : Negative binomial survival function.
-    scipy.stats.nbinom : negative binomial distribution.
-    nbdtrik : Inverse with respect to `k` of `nbdtr(k, n, p)`.
-    nbdtrin : Inverse with respect to `n` of `nbdtr(k, n, p)`.
-    scipy.stats.nbinom : Negative binomial distribution
-
-    Notes
-    -----
-    Wrapper for the Cephes [1]_ routine `nbdtri`.
-
-    The negative binomial distribution is also available as
-    `scipy.stats.nbinom`. Using `nbdtri` directly can improve performance
-    compared to the ``ppf`` method of `scipy.stats.nbinom`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    `nbdtri` is the inverse of `nbdtr` with respect to `p`.
-    Up to floating point errors the following holds:
-    ``nbdtri(k, n, nbdtr(k, n, p))=p``.
-
-    >>> import numpy as np
-    >>> from scipy.special import nbdtri, nbdtr
-    >>> k, n, y = 5, 10, 0.2
-    >>> cdf_val = nbdtr(k, n, y)
-    >>> nbdtri(k, n, cdf_val)
-    0.20000000000000004
-
-    Compute the function for ``k=10`` and ``n=5`` at several points by
-    providing a NumPy array or list for `y`.
-
-    >>> y = np.array([0.1, 0.4, 0.8])
-    >>> nbdtri(3, 5, y)
-    array([0.34462319, 0.51653095, 0.69677416])
-
-    Plot the function for three different parameter sets.
-
-    >>> import matplotlib.pyplot as plt
-    >>> n_parameters = [5, 20, 30, 30]
-    >>> k_parameters = [20, 20, 60, 80]
-    >>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
-    >>> parameters_list = list(zip(n_parameters, k_parameters, linestyles))
-    >>> cdf_vals = np.linspace(0, 1, 1000)
-    >>> fig, ax = plt.subplots(figsize=(8, 8))
-    >>> for parameter_set in parameters_list:
-    ...     n, k, style = parameter_set
-    ...     nbdtri_vals = nbdtri(k, n, cdf_vals)
-    ...     ax.plot(cdf_vals, nbdtri_vals, label=rf"$k={k},\ n={n}$",
-    ...             ls=style)
-    >>> ax.legend()
-    >>> ax.set_ylabel("$p$")
-    >>> ax.set_xlabel("$CDF$")
-    >>> title = "nbdtri: inverse of negative binomial CDF with respect to $p$"
-    >>> ax.set_title(title)
-    >>> plt.show()
-
-    `nbdtri` can evaluate different parameter sets by providing arrays with
-    shapes compatible for broadcasting for `k`, `n` and `p`. Here we compute
-    the function for three different `k` at four locations `p`, resulting in
-    a 3x4 array.
-
-    >>> k = np.array([[5], [10], [15]])
-    >>> y = np.array([0.3, 0.5, 0.7, 0.9])
-    >>> k.shape, y.shape
-    ((3, 1), (4,))
-
-    >>> nbdtri(k, 5, y)
-    array([[0.37258157, 0.45169416, 0.53249956, 0.64578407],
-           [0.24588501, 0.30451981, 0.36778453, 0.46397088],
-           [0.18362101, 0.22966758, 0.28054743, 0.36066188]])
-    """)
-
-add_newdoc("nbdtrik",
-    r"""
-    nbdtrik(y, n, p, out=None)
-
-    Negative binomial percentile function.
-
-    Returns the inverse with respect to the parameter `k` of
-    `y = nbdtr(k, n, p)`, the negative binomial cumulative distribution
-    function.
-
-    Parameters
-    ----------
-    y : array_like
-        The probability of `k` or fewer failures before `n` successes (float).
-    n : array_like
-        The target number of successes (positive int).
-    p : array_like
-        Probability of success in a single event (float).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    k : scalar or ndarray
-        The maximum number of allowed failures such that `nbdtr(k, n, p) = y`.
-
-    See Also
-    --------
-    nbdtr : Cumulative distribution function of the negative binomial.
-    nbdtrc : Survival function of the negative binomial.
-    nbdtri : Inverse with respect to `p` of `nbdtr(k, n, p)`.
-    nbdtrin : Inverse with respect to `n` of `nbdtr(k, n, p)`.
-    scipy.stats.nbinom : Negative binomial distribution
-
-    Notes
-    -----
-    Wrapper for the CDFLIB [1]_ Fortran routine `cdfnbn`.
-
-    Formula 26.5.26 of [2]_,
-
-    .. math::
-        \sum_{j=k + 1}^\infty {{n + j - 1}
-        \choose{j}} p^n (1 - p)^j = I_{1 - p}(k + 1, n),
-
-    is used to reduce calculation of the cumulative distribution function to
-    that of a regularized incomplete beta :math:`I`.
-
-    Computation of `k` involves a search for a value that produces the desired
-    value of `y`.  The search relies on the monotonicity of `y` with `k`.
-
-    References
-    ----------
-    .. [1] Barry Brown, James Lovato, and Kathy Russell,
-           CDFLIB: Library of Fortran Routines for Cumulative Distribution
-           Functions, Inverses, and Other Parameters.
-    .. [2] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    Examples
-    --------
-    Compute the negative binomial cumulative distribution function for an
-    exemplary parameter set.
-
-    >>> import numpy as np
-    >>> from scipy.special import nbdtr, nbdtrik
-    >>> k, n, p = 5, 2, 0.5
-    >>> cdf_value = nbdtr(k, n, p)
-    >>> cdf_value
-    0.9375
-
-    Verify that `nbdtrik` recovers the original value for `k`.
-
-    >>> nbdtrik(cdf_value, n, p)
-    5.0
-
-    Plot the function for different parameter sets.
-
-    >>> import matplotlib.pyplot as plt
-    >>> p_parameters = [0.2, 0.5, 0.7, 0.5]
-    >>> n_parameters = [30, 30, 30, 80]
-    >>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']
-    >>> parameters_list = list(zip(p_parameters, n_parameters, linestyles))
-    >>> cdf_vals = np.linspace(0, 1, 1000)
-    >>> fig, ax = plt.subplots(figsize=(8, 8))
-    >>> for parameter_set in parameters_list:
-    ...     p, n, style = parameter_set
-    ...     nbdtrik_vals = nbdtrik(cdf_vals, n, p)
-    ...     ax.plot(cdf_vals, nbdtrik_vals, label=rf"$n={n},\ p={p}$",
-    ...             ls=style)
-    >>> ax.legend()
-    >>> ax.set_ylabel("$k$")
-    >>> ax.set_xlabel("$CDF$")
-    >>> ax.set_title("Negative binomial percentile function")
-    >>> plt.show()
-
-    The negative binomial distribution is also available as
-    `scipy.stats.nbinom`. The percentile function  method ``ppf``
-    returns the result of `nbdtrik` rounded up to integers:
-
-    >>> from scipy.stats import nbinom
-    >>> q, n, p = 0.6, 5, 0.5
-    >>> nbinom.ppf(q, n, p), nbdtrik(q, n, p)
-    (5.0, 4.800428460273882)
-
-    """)
-
-add_newdoc("nbdtrin",
-    r"""
-    nbdtrin(k, y, p, out=None)
-
-    Inverse of `nbdtr` vs `n`.
-
-    Returns the inverse with respect to the parameter `n` of
-    `y = nbdtr(k, n, p)`, the negative binomial cumulative distribution
-    function.
-
-    Parameters
-    ----------
-    k : array_like
-        The maximum number of allowed failures (nonnegative int).
-    y : array_like
-        The probability of `k` or fewer failures before `n` successes (float).
-    p : array_like
-        Probability of success in a single event (float).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    n : scalar or ndarray
-        The number of successes `n` such that `nbdtr(k, n, p) = y`.
-
-    See Also
-    --------
-    nbdtr : Cumulative distribution function of the negative binomial.
-    nbdtri : Inverse with respect to `p` of `nbdtr(k, n, p)`.
-    nbdtrik : Inverse with respect to `k` of `nbdtr(k, n, p)`.
-
-    Notes
-    -----
-    Wrapper for the CDFLIB [1]_ Fortran routine `cdfnbn`.
-
-    Formula 26.5.26 of [2]_,
-
-    .. math::
-        \sum_{j=k + 1}^\infty {{n + j - 1}
-        \choose{j}} p^n (1 - p)^j = I_{1 - p}(k + 1, n),
-
-    is used to reduce calculation of the cumulative distribution function to
-    that of a regularized incomplete beta :math:`I`.
-
-    Computation of `n` involves a search for a value that produces the desired
-    value of `y`.  The search relies on the monotonicity of `y` with `n`.
-
-    References
-    ----------
-    .. [1] Barry Brown, James Lovato, and Kathy Russell,
-           CDFLIB: Library of Fortran Routines for Cumulative Distribution
-           Functions, Inverses, and Other Parameters.
-    .. [2] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    Examples
-    --------
-    Compute the negative binomial cumulative distribution function for an
-    exemplary parameter set.
-
-    >>> from scipy.special import nbdtr, nbdtrin
-    >>> k, n, p = 5, 2, 0.5
-    >>> cdf_value = nbdtr(k, n, p)
-    >>> cdf_value
-    0.9375
-
-    Verify that `nbdtrin` recovers the original value for `n` up to floating
-    point accuracy.
-
-    >>> nbdtrin(k, cdf_value, p)
-    1.999999999998137
-    """)
-
-add_newdoc("ncfdtr",
-    r"""
-    ncfdtr(dfn, dfd, nc, f, out=None)
-
-    Cumulative distribution function of the non-central F distribution.
-
-    The non-central F describes the distribution of,
-
-    .. math::
-        Z = \frac{X/d_n}{Y/d_d}
-
-    where :math:`X` and :math:`Y` are independently distributed, with
-    :math:`X` distributed non-central :math:`\chi^2` with noncentrality
-    parameter `nc` and :math:`d_n` degrees of freedom, and :math:`Y`
-    distributed :math:`\chi^2` with :math:`d_d` degrees of freedom.
-
-    Parameters
-    ----------
-    dfn : array_like
-        Degrees of freedom of the numerator sum of squares.  Range (0, inf).
-    dfd : array_like
-        Degrees of freedom of the denominator sum of squares.  Range (0, inf).
-    nc : array_like
-        Noncentrality parameter.  Should be in range (0, 1e4).
-    f : array_like
-        Quantiles, i.e. the upper limit of integration.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    cdf : scalar or ndarray
-        The calculated CDF.  If all inputs are scalar, the return will be a
-        float.  Otherwise it will be an array.
-
-    See Also
-    --------
-    ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.
-    ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.
-    ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.
-    ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.
-
-    Notes
-    -----
-    Wrapper for the CDFLIB [1]_ Fortran routine `cdffnc`.
-
-    The cumulative distribution function is computed using Formula 26.6.20 of
-    [2]_:
-
-    .. math::
-        F(d_n, d_d, n_c, f) = \sum_{j=0}^\infty e^{-n_c/2}
-        \frac{(n_c/2)^j}{j!} I_{x}(\frac{d_n}{2} + j, \frac{d_d}{2}),
-
-    where :math:`I` is the regularized incomplete beta function, and
-    :math:`x = f d_n/(f d_n + d_d)`.
-
-    The computation time required for this routine is proportional to the
-    noncentrality parameter `nc`.  Very large values of this parameter can
-    consume immense computer resources.  This is why the search range is
-    bounded by 10,000.
-
-    References
-    ----------
-    .. [1] Barry Brown, James Lovato, and Kathy Russell,
-           CDFLIB: Library of Fortran Routines for Cumulative Distribution
-           Functions, Inverses, and Other Parameters.
-    .. [2] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import special
-    >>> from scipy import stats
-    >>> import matplotlib.pyplot as plt
-
-    Plot the CDF of the non-central F distribution, for nc=0.  Compare with the
-    F-distribution from scipy.stats:
-
-    >>> x = np.linspace(-1, 8, num=500)
-    >>> dfn = 3
-    >>> dfd = 2
-    >>> ncf_stats = stats.f.cdf(x, dfn, dfd)
-    >>> ncf_special = special.ncfdtr(dfn, dfd, 0, x)
-
-    >>> fig = plt.figure()
-    >>> ax = fig.add_subplot(111)
-    >>> ax.plot(x, ncf_stats, 'b-', lw=3)
-    >>> ax.plot(x, ncf_special, 'r-')
-    >>> plt.show()
-
-    """)
-
-add_newdoc("ncfdtri",
-    """
-    ncfdtri(dfn, dfd, nc, p, out=None)
-
-    Inverse with respect to `f` of the CDF of the non-central F distribution.
-
-    See `ncfdtr` for more details.
-
-    Parameters
-    ----------
-    dfn : array_like
-        Degrees of freedom of the numerator sum of squares.  Range (0, inf).
-    dfd : array_like
-        Degrees of freedom of the denominator sum of squares.  Range (0, inf).
-    nc : array_like
-        Noncentrality parameter.  Should be in range (0, 1e4).
-    p : array_like
-        Value of the cumulative distribution function.  Must be in the
-        range [0, 1].
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    f : scalar or ndarray
-        Quantiles, i.e., the upper limit of integration.
-
-    See Also
-    --------
-    ncfdtr : CDF of the non-central F distribution.
-    ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.
-    ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.
-    ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.
-
-    Examples
-    --------
-    >>> from scipy.special import ncfdtr, ncfdtri
-
-    Compute the CDF for several values of `f`:
-
-    >>> f = [0.5, 1, 1.5]
-    >>> p = ncfdtr(2, 3, 1.5, f)
-    >>> p
-    array([ 0.20782291,  0.36107392,  0.47345752])
-
-    Compute the inverse.  We recover the values of `f`, as expected:
-
-    >>> ncfdtri(2, 3, 1.5, p)
-    array([ 0.5,  1. ,  1.5])
-
-    """)
-
-add_newdoc("ncfdtridfd",
-    """
-    ncfdtridfd(dfn, p, nc, f, out=None)
-
-    Calculate degrees of freedom (denominator) for the noncentral F-distribution.
-
-    This is the inverse with respect to `dfd` of `ncfdtr`.
-    See `ncfdtr` for more details.
-
-    Parameters
-    ----------
-    dfn : array_like
-        Degrees of freedom of the numerator sum of squares.  Range (0, inf).
-    p : array_like
-        Value of the cumulative distribution function.  Must be in the
-        range [0, 1].
-    nc : array_like
-        Noncentrality parameter.  Should be in range (0, 1e4).
-    f : array_like
-        Quantiles, i.e., the upper limit of integration.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    dfd : scalar or ndarray
-        Degrees of freedom of the denominator sum of squares.
-
-    See Also
-    --------
-    ncfdtr : CDF of the non-central F distribution.
-    ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.
-    ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.
-    ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.
-
-    Notes
-    -----
-    The value of the cumulative noncentral F distribution is not necessarily
-    monotone in either degrees of freedom. There thus may be two values that
-    provide a given CDF value. This routine assumes monotonicity and will
-    find an arbitrary one of the two values.
-
-    Examples
-    --------
-    >>> from scipy.special import ncfdtr, ncfdtridfd
-
-    Compute the CDF for several values of `dfd`:
-
-    >>> dfd = [1, 2, 3]
-    >>> p = ncfdtr(2, dfd, 0.25, 15)
-    >>> p
-    array([ 0.8097138 ,  0.93020416,  0.96787852])
-
-    Compute the inverse.  We recover the values of `dfd`, as expected:
-
-    >>> ncfdtridfd(2, p, 0.25, 15)
-    array([ 1.,  2.,  3.])
-
-    """)
-
-add_newdoc("ncfdtridfn",
-    """
-    ncfdtridfn(p, dfd, nc, f, out=None)
-
-    Calculate degrees of freedom (numerator) for the noncentral F-distribution.
-
-    This is the inverse with respect to `dfn` of `ncfdtr`.
-    See `ncfdtr` for more details.
-
-    Parameters
-    ----------
-    p : array_like
-        Value of the cumulative distribution function. Must be in the
-        range [0, 1].
-    dfd : array_like
-        Degrees of freedom of the denominator sum of squares. Range (0, inf).
-    nc : array_like
-        Noncentrality parameter.  Should be in range (0, 1e4).
-    f : float
-        Quantiles, i.e., the upper limit of integration.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    dfn : scalar or ndarray
-        Degrees of freedom of the numerator sum of squares.
-
-    See Also
-    --------
-    ncfdtr : CDF of the non-central F distribution.
-    ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.
-    ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.
-    ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.
-
-    Notes
-    -----
-    The value of the cumulative noncentral F distribution is not necessarily
-    monotone in either degrees of freedom. There thus may be two values that
-    provide a given CDF value. This routine assumes monotonicity and will
-    find an arbitrary one of the two values.
-
-    Examples
-    --------
-    >>> from scipy.special import ncfdtr, ncfdtridfn
-
-    Compute the CDF for several values of `dfn`:
-
-    >>> dfn = [1, 2, 3]
-    >>> p = ncfdtr(dfn, 2, 0.25, 15)
-    >>> p
-    array([ 0.92562363,  0.93020416,  0.93188394])
-
-    Compute the inverse. We recover the values of `dfn`, as expected:
-
-    >>> ncfdtridfn(p, 2, 0.25, 15)
-    array([ 1.,  2.,  3.])
-
-    """)
-
-add_newdoc("ncfdtrinc",
-    """
-    ncfdtrinc(dfn, dfd, p, f, out=None)
-
-    Calculate non-centrality parameter for non-central F distribution.
-
-    This is the inverse with respect to `nc` of `ncfdtr`.
-    See `ncfdtr` for more details.
-
-    Parameters
-    ----------
-    dfn : array_like
-        Degrees of freedom of the numerator sum of squares. Range (0, inf).
-    dfd : array_like
-        Degrees of freedom of the denominator sum of squares. Range (0, inf).
-    p : array_like
-        Value of the cumulative distribution function. Must be in the
-        range [0, 1].
-    f : array_like
-        Quantiles, i.e., the upper limit of integration.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    nc : scalar or ndarray
-        Noncentrality parameter.
-
-    See Also
-    --------
-    ncfdtr : CDF of the non-central F distribution.
-    ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.
-    ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.
-    ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.
-
-    Examples
-    --------
-    >>> from scipy.special import ncfdtr, ncfdtrinc
-
-    Compute the CDF for several values of `nc`:
-
-    >>> nc = [0.5, 1.5, 2.0]
-    >>> p = ncfdtr(2, 3, nc, 15)
-    >>> p
-    array([ 0.96309246,  0.94327955,  0.93304098])
-
-    Compute the inverse. We recover the values of `nc`, as expected:
-
-    >>> ncfdtrinc(2, 3, p, 15)
-    array([ 0.5,  1.5,  2. ])
-
-    """)
-
-add_newdoc("nctdtr",
-    """
-    nctdtr(df, nc, t, out=None)
-
-    Cumulative distribution function of the non-central `t` distribution.
-
-    Parameters
-    ----------
-    df : array_like
-        Degrees of freedom of the distribution. Should be in range (0, inf).
-    nc : array_like
-        Noncentrality parameter. Should be in range (-1e6, 1e6).
-    t : array_like
-        Quantiles, i.e., the upper limit of integration.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    cdf : scalar or ndarray
-        The calculated CDF. If all inputs are scalar, the return will be a
-        float. Otherwise, it will be an array.
-
-    See Also
-    --------
-    nctdtrit : Inverse CDF (iCDF) of the non-central t distribution.
-    nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.
-    nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import special
-    >>> from scipy import stats
-    >>> import matplotlib.pyplot as plt
-
-    Plot the CDF of the non-central t distribution, for nc=0. Compare with the
-    t-distribution from scipy.stats:
-
-    >>> x = np.linspace(-5, 5, num=500)
-    >>> df = 3
-    >>> nct_stats = stats.t.cdf(x, df)
-    >>> nct_special = special.nctdtr(df, 0, x)
-
-    >>> fig = plt.figure()
-    >>> ax = fig.add_subplot(111)
-    >>> ax.plot(x, nct_stats, 'b-', lw=3)
-    >>> ax.plot(x, nct_special, 'r-')
-    >>> plt.show()
-
-    """)
-
-add_newdoc("nctdtridf",
-    """
-    nctdtridf(p, nc, t, out=None)
-
-    Calculate degrees of freedom for non-central t distribution.
-
-    See `nctdtr` for more details.
-
-    Parameters
-    ----------
-    p : array_like
-        CDF values, in range (0, 1].
-    nc : array_like
-        Noncentrality parameter. Should be in range (-1e6, 1e6).
-    t : array_like
-        Quantiles, i.e., the upper limit of integration.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    df : scalar or ndarray
-        The degrees of freedom. If all inputs are scalar, the return will be a
-        float. Otherwise, it will be an array.
-
-    See Also
-    --------
-    nctdtr :  CDF of the non-central `t` distribution.
-    nctdtrit : Inverse CDF (iCDF) of the non-central t distribution.
-    nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.
-
-    Examples
-    --------
-    >>> from scipy.special import nctdtr, nctdtridf
-
-    Compute the CDF for several values of `df`:
-
-    >>> df = [1, 2, 3]
-    >>> p = nctdtr(df, 0.25, 1)
-    >>> p
-    array([0.67491974, 0.716464  , 0.73349456])
-
-    Compute the inverse. We recover the values of `df`, as expected:
-
-    >>> nctdtridf(p, 0.25, 1)
-    array([1., 2., 3.])
-
-    """)
-
-add_newdoc("nctdtrinc",
-    """
-    nctdtrinc(df, p, t, out=None)
-
-    Calculate non-centrality parameter for non-central t distribution.
-
-    See `nctdtr` for more details.
-
-    Parameters
-    ----------
-    df : array_like
-        Degrees of freedom of the distribution. Should be in range (0, inf).
-    p : array_like
-        CDF values, in range (0, 1].
-    t : array_like
-        Quantiles, i.e., the upper limit of integration.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    nc : scalar or ndarray
-        Noncentrality parameter
-
-    See Also
-    --------
-    nctdtr :  CDF of the non-central `t` distribution.
-    nctdtrit : Inverse CDF (iCDF) of the non-central t distribution.
-    nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.
-
-    Examples
-    --------
-    >>> from scipy.special import nctdtr, nctdtrinc
-
-    Compute the CDF for several values of `nc`:
-
-    >>> nc = [0.5, 1.5, 2.5]
-    >>> p = nctdtr(3, nc, 1.5)
-    >>> p
-    array([0.77569497, 0.45524533, 0.1668691 ])
-
-    Compute the inverse. We recover the values of `nc`, as expected:
-
-    >>> nctdtrinc(3, p, 1.5)
-    array([0.5, 1.5, 2.5])
-
-    """)
-
-add_newdoc("nctdtrit",
-    """
-    nctdtrit(df, nc, p, out=None)
-
-    Inverse cumulative distribution function of the non-central t distribution.
-
-    See `nctdtr` for more details.
-
-    Parameters
-    ----------
-    df : array_like
-        Degrees of freedom of the distribution. Should be in range (0, inf).
-    nc : array_like
-        Noncentrality parameter. Should be in range (-1e6, 1e6).
-    p : array_like
-        CDF values, in range (0, 1].
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    t : scalar or ndarray
-        Quantiles
-
-    See Also
-    --------
-    nctdtr :  CDF of the non-central `t` distribution.
-    nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.
-    nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.
-
-    Examples
-    --------
-    >>> from scipy.special import nctdtr, nctdtrit
-
-    Compute the CDF for several values of `t`:
-
-    >>> t = [0.5, 1, 1.5]
-    >>> p = nctdtr(3, 1, t)
-    >>> p
-    array([0.29811049, 0.46922687, 0.6257559 ])
-
-    Compute the inverse. We recover the values of `t`, as expected:
-
-    >>> nctdtrit(3, 1, p)
-    array([0.5, 1. , 1.5])
-
-    """)
-
-add_newdoc("ndtr",
-    r"""
-    ndtr(x, out=None)
-
-    Cumulative distribution of the standard normal distribution.
-
-    Returns the area under the standard Gaussian probability
-    density function, integrated from minus infinity to `x`
-
-    .. math::
-
-       \frac{1}{\sqrt{2\pi}} \int_{-\infty}^x \exp(-t^2/2) dt
-
-    Parameters
-    ----------
-    x : array_like, real or complex
-        Argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The value of the normal CDF evaluated at `x`
-
-    See Also
-    --------
-    log_ndtr : Logarithm of ndtr
-    ndtri : Inverse of ndtr, standard normal percentile function
-    erf : Error function
-    erfc : 1 - erf
-    scipy.stats.norm : Normal distribution
-
-    Examples
-    --------
-    Evaluate `ndtr` at one point.
-
-    >>> import numpy as np
-    >>> from scipy.special import ndtr
-    >>> ndtr(0.5)
-    0.6914624612740131
-
-    Evaluate the function at several points by providing a NumPy array
-    or list for `x`.
-
-    >>> ndtr([0, 0.5, 2])
-    array([0.5       , 0.69146246, 0.97724987])
-
-    Plot the function.
-
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(-5, 5, 100)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, ndtr(x))
-    >>> ax.set_title(r"Standard normal cumulative distribution function $\Phi$")
-    >>> plt.show()
-    """)
-
-
-add_newdoc("nrdtrimn",
-    """
-    nrdtrimn(p, std, x, out=None)
-
-    Calculate mean of normal distribution given other params.
-
-    Parameters
-    ----------
-    p : array_like
-        CDF values, in range (0, 1].
-    std : array_like
-        Standard deviation.
-    x : array_like
-        Quantiles, i.e. the upper limit of integration.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    mn : scalar or ndarray
-        The mean of the normal distribution.
-
-    See Also
-    --------
-    scipy.stats.norm : Normal distribution
-    ndtr : Standard normal cumulative probability distribution
-    ndtri : Inverse of standard normal CDF with respect to quantile
-    nrdtrisd : Inverse of normal distribution CDF with respect to
-               standard deviation
-
-    Examples
-    --------
-    `nrdtrimn` can be used to recover the mean of a normal distribution
-    if we know the CDF value `p` for a given quantile `x` and the
-    standard deviation `std`. First, we calculate
-    the normal distribution CDF for an exemplary parameter set.
-
-    >>> from scipy.stats import norm
-    >>> mean = 3.
-    >>> std = 2.
-    >>> x = 6.
-    >>> p = norm.cdf(x, loc=mean, scale=std)
-    >>> p
-    0.9331927987311419
-
-    Verify that `nrdtrimn` returns the original value for `mean`.
-
-    >>> from scipy.special import nrdtrimn
-    >>> nrdtrimn(p, std, x)
-    3.0000000000000004
-
-    """)
-
-add_newdoc("nrdtrisd",
-    """
-    nrdtrisd(mn, p, x, out=None)
-
-    Calculate standard deviation of normal distribution given other params.
-
-    Parameters
-    ----------
-    mn : scalar or ndarray
-        The mean of the normal distribution.
-    p : array_like
-        CDF values, in range (0, 1].
-    x : array_like
-        Quantiles, i.e. the upper limit of integration.
-
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    std : scalar or ndarray
-        Standard deviation.
-
-    See Also
-    --------
-    scipy.stats.norm : Normal distribution
-    ndtr : Standard normal cumulative probability distribution
-    ndtri : Inverse of standard normal CDF with respect to quantile
-    nrdtrimn : Inverse of normal distribution CDF with respect to
-               mean
-
-    Examples
-    --------
-    `nrdtrisd` can be used to recover the standard deviation of a normal
-    distribution if we know the CDF value `p` for a given quantile `x` and
-    the mean `mn`. First, we calculate the normal distribution CDF for an
-    exemplary parameter set.
-
-    >>> from scipy.stats import norm
-    >>> mean = 3.
-    >>> std = 2.
-    >>> x = 6.
-    >>> p = norm.cdf(x, loc=mean, scale=std)
-    >>> p
-    0.9331927987311419
-
-    Verify that `nrdtrisd` returns the original value for `std`.
-
-    >>> from scipy.special import nrdtrisd
-    >>> nrdtrisd(mean, p, x)
-    2.0000000000000004
-
-    """)
-
-add_newdoc("log_ndtr",
-    """
-    log_ndtr(x, out=None)
-
-    Logarithm of Gaussian cumulative distribution function.
-
-    Returns the log of the area under the standard Gaussian probability
-    density function, integrated from minus infinity to `x`::
-
-        log(1/sqrt(2*pi) * integral(exp(-t**2 / 2), t=-inf..x))
-
-    Parameters
-    ----------
-    x : array_like, real or complex
-        Argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The value of the log of the normal CDF evaluated at `x`
-
-    See Also
-    --------
-    erf
-    erfc
-    scipy.stats.norm
-    ndtr
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import log_ndtr, ndtr
-
-    The benefit of ``log_ndtr(x)`` over the naive implementation
-    ``np.log(ndtr(x))`` is most evident with moderate to large positive
-    values of ``x``:
-
-    >>> x = np.array([6, 7, 9, 12, 15, 25])
-    >>> log_ndtr(x)
-    array([-9.86587646e-010, -1.27981254e-012, -1.12858841e-019,
-           -1.77648211e-033, -3.67096620e-051, -3.05669671e-138])
-
-    The results of the naive calculation for the moderate ``x`` values
-    have only 5 or 6 correct significant digits. For values of ``x``
-    greater than approximately 8.3, the naive expression returns 0:
-
-    >>> np.log(ndtr(x))
-    array([-9.86587701e-10, -1.27986510e-12,  0.00000000e+00,
-            0.00000000e+00,  0.00000000e+00,  0.00000000e+00])
-    """)
-
-add_newdoc("ndtri",
-    """
-    ndtri(y, out=None)
-
-    Inverse of `ndtr` vs x
-
-    Returns the argument x for which the area under the standard normal
-    probability density function (integrated from minus infinity to `x`)
-    is equal to y.
-
-    Parameters
-    ----------
-    p : array_like
-        Probability
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    x : scalar or ndarray
-        Value of x such that ``ndtr(x) == p``.
-
-    See Also
-    --------
-    ndtr : Standard normal cumulative probability distribution
-    ndtri_exp : Inverse of log_ndtr
-
-    Examples
-    --------
-    `ndtri` is the percentile function of the standard normal distribution.
-    This means it returns the inverse of the cumulative density `ndtr`. First,
-    let us compute a cumulative density value.
-
-    >>> import numpy as np
-    >>> from scipy.special import ndtri, ndtr
-    >>> cdf_val = ndtr(2)
-    >>> cdf_val
-    0.9772498680518208
-
-    Verify that `ndtri` yields the original value for `x` up to floating point
-    errors.
-
-    >>> ndtri(cdf_val)
-    2.0000000000000004
-
-    Plot the function. For that purpose, we provide a NumPy array as argument.
-
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(0.01, 1, 200)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, ndtri(x))
-    >>> ax.set_title("Standard normal percentile function")
-    >>> plt.show()
-    """)
-
-add_newdoc("pdtr",
-    r"""
-    pdtr(k, m, out=None)
-
-    Poisson cumulative distribution function.
-
-    Defined as the probability that a Poisson-distributed random
-    variable with event rate :math:`m` is less than or equal to
-    :math:`k`. More concretely, this works out to be [1]_
-
-    .. math::
-
-       \exp(-m) \sum_{j = 0}^{\lfloor{k}\rfloor} \frac{m^j}{j!}.
-
-    Parameters
-    ----------
-    k : array_like
-        Number of occurrences (nonnegative, real)
-    m : array_like
-        Shape parameter (nonnegative, real)
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the Poisson cumulative distribution function
-
-    See Also
-    --------
-    pdtrc : Poisson survival function
-    pdtrik : inverse of `pdtr` with respect to `k`
-    pdtri : inverse of `pdtr` with respect to `m`
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Poisson_distribution
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is a cumulative distribution function, so it converges to 1
-    monotonically as `k` goes to infinity.
-
-    >>> sc.pdtr([1, 10, 100, np.inf], 1)
-    array([0.73575888, 0.99999999, 1.        , 1.        ])
-
-    It is discontinuous at integers and constant between integers.
-
-    >>> sc.pdtr([1, 1.5, 1.9, 2], 1)
-    array([0.73575888, 0.73575888, 0.73575888, 0.9196986 ])
-
-    """)
-
-add_newdoc("pdtrc",
-    """
-    pdtrc(k, m, out=None)
-
-    Poisson survival function
-
-    Returns the sum of the terms from k+1 to infinity of the Poisson
-    distribution: sum(exp(-m) * m**j / j!, j=k+1..inf) = gammainc(
-    k+1, m). Arguments must both be non-negative doubles.
-
-    Parameters
-    ----------
-    k : array_like
-        Number of occurrences (nonnegative, real)
-    m : array_like
-        Shape parameter (nonnegative, real)
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the Poisson survival function
-
-    See Also
-    --------
-    pdtr : Poisson cumulative distribution function
-    pdtrik : inverse of `pdtr` with respect to `k`
-    pdtri : inverse of `pdtr` with respect to `m`
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is a survival function, so it decreases to 0
-    monotonically as `k` goes to infinity.
-
-    >>> k = np.array([1, 10, 100, np.inf])
-    >>> sc.pdtrc(k, 1)
-    array([2.64241118e-001, 1.00477664e-008, 3.94147589e-161, 0.00000000e+000])
-
-    It can be expressed in terms of the lower incomplete gamma
-    function `gammainc`.
-
-    >>> sc.gammainc(k + 1, 1)
-    array([2.64241118e-001, 1.00477664e-008, 3.94147589e-161, 0.00000000e+000])
-
-    """)
-
-add_newdoc("pdtri",
-    """
-    pdtri(k, y, out=None)
-
-    Inverse to `pdtr` vs m
-
-    Returns the Poisson variable `m` such that the sum from 0 to `k` of
-    the Poisson density is equal to the given probability `y`:
-    calculated by ``gammaincinv(k + 1, y)``. `k` must be a nonnegative
-    integer and `y` between 0 and 1.
-
-    Parameters
-    ----------
-    k : array_like
-        Number of occurrences (nonnegative, real)
-    y : array_like
-        Probability
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the shape parameter `m` such that ``pdtr(k, m) = p``
-
-    See Also
-    --------
-    pdtr : Poisson cumulative distribution function
-    pdtrc : Poisson survival function
-    pdtrik : inverse of `pdtr` with respect to `k`
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    Compute the CDF for several values of `m`:
-
-    >>> m = [0.5, 1, 1.5]
-    >>> p = sc.pdtr(1, m)
-    >>> p
-    array([0.90979599, 0.73575888, 0.5578254 ])
-
-    Compute the inverse. We recover the values of `m`, as expected:
-
-    >>> sc.pdtri(1, p)
-    array([0.5, 1. , 1.5])
-
-    """)
-
-add_newdoc("pdtrik",
-    """
-    pdtrik(p, m, out=None)
-
-    Inverse to `pdtr` vs `k`.
-
-    Parameters
-    ----------
-    p : array_like
-        Probability
-    m : array_like
-        Shape parameter (nonnegative, real)
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The number of occurrences `k` such that ``pdtr(k, m) = p``
-
-    See Also
-    --------
-    pdtr : Poisson cumulative distribution function
-    pdtrc : Poisson survival function
-    pdtri : inverse of `pdtr` with respect to `m`
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    Compute the CDF for several values of `k`:
-
-    >>> k = [1, 2, 3]
-    >>> p = sc.pdtr(k, 2)
-    >>> p
-    array([0.40600585, 0.67667642, 0.85712346])
-
-    Compute the inverse. We recover the values of `k`, as expected:
-
-    >>> sc.pdtrik(p, 2)
-    array([1., 2., 3.])
-
-    """)
-
-add_newdoc("poch",
-    r"""
-    poch(z, m, out=None)
-
-    Pochhammer symbol.
-
-    The Pochhammer symbol (rising factorial) is defined as
-
-    .. math::
-
-        (z)_m = \frac{\Gamma(z + m)}{\Gamma(z)}
-
-    For positive integer `m` it reads
-
-    .. math::
-
-        (z)_m = z (z + 1) ... (z + m - 1)
-
-    See [dlmf]_ for more details.
-
-    Parameters
-    ----------
-    z, m : array_like
-        Real-valued arguments.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The value of the function.
-
-    References
-    ----------
-    .. [dlmf] Nist, Digital Library of Mathematical Functions
-        https://dlmf.nist.gov/5.2#iii
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    It is 1 when m is 0.
-
-    >>> sc.poch([1, 2, 3, 4], 0)
-    array([1., 1., 1., 1.])
-
-    For z equal to 1 it reduces to the factorial function.
-
-    >>> sc.poch(1, 5)
-    120.0
-    >>> 1 * 2 * 3 * 4 * 5
-    120
-
-    It can be expressed in terms of the gamma function.
-
-    >>> z, m = 3.7, 2.1
-    >>> sc.poch(z, m)
-    20.529581933776953
-    >>> sc.gamma(z + m) / sc.gamma(z)
-    20.52958193377696
-
-    """)
-
-add_newdoc("powm1", """
-    powm1(x, y, out=None)
-
-    Computes ``x**y - 1``.
-
-    This function is useful when `y` is near 0, or when `x` is near 1.
-
-    The function is implemented for real types only (unlike ``numpy.power``,
-    which accepts complex inputs).
-
-    Parameters
-    ----------
-    x : array_like
-        The base. Must be a real type (i.e. integer or float, not complex).
-    y : array_like
-        The exponent. Must be a real type (i.e. integer or float, not complex).
-
-    Returns
-    -------
-    array_like
-        Result of the calculation
-
-    Notes
-    -----
-    .. versionadded:: 1.10.0
-
-    The underlying code is implemented for single precision and double
-    precision floats only.  Unlike `numpy.power`, integer inputs to
-    `powm1` are converted to floating point, and complex inputs are
-    not accepted.
-
-    Note the following edge cases:
-
-    * ``powm1(x, 0)`` returns 0 for any ``x``, including 0, ``inf``
-      and ``nan``.
-    * ``powm1(1, y)`` returns 0 for any ``y``, including ``nan``
-      and ``inf``.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import powm1
-
-    >>> x = np.array([1.2, 10.0, 0.9999999975])
-    >>> y = np.array([1e-9, 1e-11, 0.1875])
-    >>> powm1(x, y)
-    array([ 1.82321557e-10,  2.30258509e-11, -4.68749998e-10])
-
-    It can be verified that the relative errors in those results
-    are less than 2.5e-16.
-
-    Compare that to the result of ``x**y - 1``, where the
-    relative errors are all larger than 8e-8:
-
-    >>> x**y - 1
-    array([ 1.82321491e-10,  2.30258035e-11, -4.68750039e-10])
-
-    """)
-
-
-add_newdoc("pseudo_huber",
-    r"""
-    pseudo_huber(delta, r, out=None)
-
-    Pseudo-Huber loss function.
-
-    .. math:: \mathrm{pseudo\_huber}(\delta, r) =
-              \delta^2 \left( \sqrt{ 1 + \left( \frac{r}{\delta} \right)^2 } - 1 \right)
-
-    Parameters
-    ----------
-    delta : array_like
-        Input array, indicating the soft quadratic vs. linear loss changepoint.
-    r : array_like
-        Input array, possibly representing residuals.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    res : scalar or ndarray
-        The computed Pseudo-Huber loss function values.
-
-    See Also
-    --------
-    huber: Similar function which this function approximates
-
-    Notes
-    -----
-    Like `huber`, `pseudo_huber` often serves as a robust loss function
-    in statistics or machine learning to reduce the influence of outliers.
-    Unlike `huber`, `pseudo_huber` is smooth.
-
-    Typically, `r` represents residuals, the difference
-    between a model prediction and data. Then, for :math:`|r|\leq\delta`,
-    `pseudo_huber` resembles the squared error and for :math:`|r|>\delta` the
-    absolute error. This way, the Pseudo-Huber loss often achieves
-    a fast convergence in model fitting for small residuals like the squared
-    error loss function and still reduces the influence of outliers
-    (:math:`|r|>\delta`) like the absolute error loss. As :math:`\delta` is
-    the cutoff between squared and absolute error regimes, it has
-    to be tuned carefully for each problem. `pseudo_huber` is also
-    convex, making it suitable for gradient based optimization. [1]_ [2]_
-
-    .. versionadded:: 0.15.0
-
-    References
-    ----------
-    .. [1] Hartley, Zisserman, "Multiple View Geometry in Computer Vision".
-           2003. Cambridge University Press. p. 619
-    .. [2] Charbonnier et al. "Deterministic edge-preserving regularization
-           in computed imaging". 1997. IEEE Trans. Image Processing.
-           6 (2): 298 - 311.
-
-    Examples
-    --------
-    Import all necessary modules.
-
-    >>> import numpy as np
-    >>> from scipy.special import pseudo_huber, huber
-    >>> import matplotlib.pyplot as plt
-
-    Calculate the function for ``delta=1`` at ``r=2``.
-
-    >>> pseudo_huber(1., 2.)
-    1.2360679774997898
-
-    Calculate the function at ``r=2`` for different `delta` by providing
-    a list or NumPy array for `delta`.
-
-    >>> pseudo_huber([1., 2., 4.], 3.)
-    array([2.16227766, 3.21110255, 4.        ])
-
-    Calculate the function for ``delta=1`` at several points by providing
-    a list or NumPy array for `r`.
-
-    >>> pseudo_huber(2., np.array([1., 1.5, 3., 4.]))
-    array([0.47213595, 1.        , 3.21110255, 4.94427191])
-
-    The function can be calculated for different `delta` and `r` by
-    providing arrays for both with compatible shapes for broadcasting.
-
-    >>> r = np.array([1., 2.5, 8., 10.])
-    >>> deltas = np.array([[1.], [5.], [9.]])
-    >>> print(r.shape, deltas.shape)
-    (4,) (3, 1)
-
-    >>> pseudo_huber(deltas, r)
-    array([[ 0.41421356,  1.6925824 ,  7.06225775,  9.04987562],
-           [ 0.49509757,  2.95084972, 22.16990566, 30.90169944],
-           [ 0.49846624,  3.06693762, 27.37435121, 40.08261642]])
-
-    Plot the function for different `delta`.
-
-    >>> x = np.linspace(-4, 4, 500)
-    >>> deltas = [1, 2, 3]
-    >>> linestyles = ["dashed", "dotted", "dashdot"]
-    >>> fig, ax = plt.subplots()
-    >>> combined_plot_parameters = list(zip(deltas, linestyles))
-    >>> for delta, style in combined_plot_parameters:
-    ...     ax.plot(x, pseudo_huber(delta, x), label=rf"$\delta={delta}$",
-    ...             ls=style)
-    >>> ax.legend(loc="upper center")
-    >>> ax.set_xlabel("$x$")
-    >>> ax.set_title(r"Pseudo-Huber loss function $h_{\delta}(x)$")
-    >>> ax.set_xlim(-4, 4)
-    >>> ax.set_ylim(0, 8)
-    >>> plt.show()
-
-    Finally, illustrate the difference between `huber` and `pseudo_huber` by
-    plotting them and their gradients with respect to `r`. The plot shows
-    that `pseudo_huber` is continuously differentiable while `huber` is not
-    at the points :math:`\pm\delta`.
-
-    >>> def huber_grad(delta, x):
-    ...     grad = np.copy(x)
-    ...     linear_area = np.argwhere(np.abs(x) > delta)
-    ...     grad[linear_area]=delta*np.sign(x[linear_area])
-    ...     return grad
-    >>> def pseudo_huber_grad(delta, x):
-    ...     return x* (1+(x/delta)**2)**(-0.5)
-    >>> x=np.linspace(-3, 3, 500)
-    >>> delta = 1.
-    >>> fig, ax = plt.subplots(figsize=(7, 7))
-    >>> ax.plot(x, huber(delta, x), label="Huber", ls="dashed")
-    >>> ax.plot(x, huber_grad(delta, x), label="Huber Gradient", ls="dashdot")
-    >>> ax.plot(x, pseudo_huber(delta, x), label="Pseudo-Huber", ls="dotted")
-    >>> ax.plot(x, pseudo_huber_grad(delta, x), label="Pseudo-Huber Gradient",
-    ...         ls="solid")
-    >>> ax.legend(loc="upper center")
-    >>> plt.show()
-    """)
-
-add_newdoc("radian",
-    """
-    radian(d, m, s, out=None)
-
-    Convert from degrees to radians.
-
-    Returns the angle given in (d)egrees, (m)inutes, and (s)econds in
-    radians.
-
-    Parameters
-    ----------
-    d : array_like
-        Degrees, can be real-valued.
-    m : array_like
-        Minutes, can be real-valued.
-    s : array_like
-        Seconds, can be real-valued.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the inputs in radians.
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    There are many ways to specify an angle.
-
-    >>> sc.radian(90, 0, 0)
-    1.5707963267948966
-    >>> sc.radian(0, 60 * 90, 0)
-    1.5707963267948966
-    >>> sc.radian(0, 0, 60**2 * 90)
-    1.5707963267948966
-
-    The inputs can be real-valued.
-
-    >>> sc.radian(1.5, 0, 0)
-    0.02617993877991494
-    >>> sc.radian(1, 30, 0)
-    0.02617993877991494
-
-    """)
-
-add_newdoc("rel_entr",
-    r"""
-    rel_entr(x, y, out=None)
-
-    Elementwise function for computing relative entropy.
-
-    .. math::
-
-        \mathrm{rel\_entr}(x, y) =
-            \begin{cases}
-                x \log(x / y) & x > 0, y > 0 \\
-                0 & x = 0, y \ge 0 \\
-                \infty & \text{otherwise}
-            \end{cases}
-
-    Parameters
-    ----------
-    x, y : array_like
-        Input arrays
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Relative entropy of the inputs
-
-    See Also
-    --------
-    entr, kl_div, scipy.stats.entropy
-
-    Notes
-    -----
-    .. versionadded:: 0.15.0
-
-    This function is jointly convex in x and y.
-
-    The origin of this function is in convex programming; see
-    [1]_. Given two discrete probability distributions :math:`p_1,
-    \ldots, p_n` and :math:`q_1, \ldots, q_n`, the definition of relative
-    entropy in the context of *information theory* is
-
-    .. math::
-
-        \sum_{i = 1}^n \mathrm{rel\_entr}(p_i, q_i).
-
-    To compute the latter quantity, use `scipy.stats.entropy`.
-
-    See [2]_ for details.
-
-    References
-    ----------
-    .. [1] Boyd, Stephen and Lieven Vandenberghe. *Convex optimization*.
-           Cambridge University Press, 2004.
-           :doi:`https://doi.org/10.1017/CBO9780511804441`
-    .. [2] Kullback-Leibler divergence,
-           https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence
-
-    """)
-
-add_newdoc("round",
-    """
-    round(x, out=None)
-
-    Round to the nearest integer.
-
-    Returns the nearest integer to `x`.  If `x` ends in 0.5 exactly,
-    the nearest even integer is chosen.
-
-    Parameters
-    ----------
-    x : array_like
-        Real valued input.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        The nearest integers to the elements of `x`. The result is of
-        floating type, not integer type.
-
-    Examples
-    --------
-    >>> import scipy.special as sc
-
-    It rounds to even.
-
-    >>> sc.round([0.5, 1.5])
-    array([0., 2.])
-
-    """)
-
-add_newdoc("shichi",
-    r"""
-    shichi(x, out=None)
-
-    Hyperbolic sine and cosine integrals.
-
-    The hyperbolic sine integral is
-
-    .. math::
-
-      \int_0^x \frac{\sinh{t}}{t}dt
-
-    and the hyperbolic cosine integral is
-
-    .. math::
-
-      \gamma + \log(x) + \int_0^x \frac{\cosh{t} - 1}{t} dt
-
-    where :math:`\gamma` is Euler's constant and :math:`\log` is the
-    principal branch of the logarithm [1]_.
-
-    Parameters
-    ----------
-    x : array_like
-        Real or complex points at which to compute the hyperbolic sine
-        and cosine integrals.
-    out : tuple of ndarray, optional
-        Optional output arrays for the function results
-
-    Returns
-    -------
-    si : scalar or ndarray
-        Hyperbolic sine integral at ``x``
-    ci : scalar or ndarray
-        Hyperbolic cosine integral at ``x``
-
-    See Also
-    --------
-    sici : Sine and cosine integrals.
-    exp1 : Exponential integral E1.
-    expi : Exponential integral Ei.
-
-    Notes
-    -----
-    For real arguments with ``x < 0``, ``chi`` is the real part of the
-    hyperbolic cosine integral. For such points ``chi(x)`` and ``chi(x
-    + 0j)`` differ by a factor of ``1j*pi``.
-
-    For real arguments the function is computed by calling Cephes'
-    [2]_ *shichi* routine. For complex arguments the algorithm is based
-    on Mpmath's [3]_ *shi* and *chi* routines.
-
-    References
-    ----------
-    .. [1] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-           (See Section 5.2.)
-    .. [2] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-    .. [3] Fredrik Johansson and others.
-           "mpmath: a Python library for arbitrary-precision floating-point
-           arithmetic" (Version 0.19) http://mpmath.org/
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import shichi, sici
-
-    `shichi` accepts real or complex input:
-
-    >>> shichi(0.5)
-    (0.5069967498196671, -0.05277684495649357)
-    >>> shichi(0.5 + 2.5j)
-    ((0.11772029666668238+1.831091777729851j),
-     (0.29912435887648825+1.7395351121166562j))
-
-    The hyperbolic sine and cosine integrals Shi(z) and Chi(z) are
-    related to the sine and cosine integrals Si(z) and Ci(z) by
-
-    * Shi(z) = -i*Si(i*z)
-    * Chi(z) = Ci(-i*z) + i*pi/2
-
-    >>> z = 0.25 + 5j
-    >>> shi, chi = shichi(z)
-    >>> shi, -1j*sici(1j*z)[0]            # Should be the same.
-    ((-0.04834719325101729+1.5469354086921228j),
-     (-0.04834719325101729+1.5469354086921228j))
-    >>> chi, sici(-1j*z)[1] + 1j*np.pi/2  # Should be the same.
-    ((-0.19568708973868087+1.556276312103824j),
-     (-0.19568708973868087+1.556276312103824j))
-
-    Plot the functions evaluated on the real axis:
-
-    >>> xp = np.geomspace(1e-8, 4.0, 250)
-    >>> x = np.concatenate((-xp[::-1], xp))
-    >>> shi, chi = shichi(x)
-
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, shi, label='Shi(x)')
-    >>> ax.plot(x, chi, '--', label='Chi(x)')
-    >>> ax.set_xlabel('x')
-    >>> ax.set_title('Hyperbolic Sine and Cosine Integrals')
-    >>> ax.legend(shadow=True, framealpha=1, loc='lower right')
-    >>> ax.grid(True)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("sici",
-    r"""
-    sici(x, out=None)
-
-    Sine and cosine integrals.
-
-    The sine integral is
-
-    .. math::
-
-      \int_0^x \frac{\sin{t}}{t}dt
-
-    and the cosine integral is
-
-    .. math::
-
-      \gamma + \log(x) + \int_0^x \frac{\cos{t} - 1}{t}dt
-
-    where :math:`\gamma` is Euler's constant and :math:`\log` is the
-    principal branch of the logarithm [1]_.
-
-    Parameters
-    ----------
-    x : array_like
-        Real or complex points at which to compute the sine and cosine
-        integrals.
-    out : tuple of ndarray, optional
-        Optional output arrays for the function results
-
-    Returns
-    -------
-    si : scalar or ndarray
-        Sine integral at ``x``
-    ci : scalar or ndarray
-        Cosine integral at ``x``
-
-    See Also
-    --------
-    shichi : Hyperbolic sine and cosine integrals.
-    exp1 : Exponential integral E1.
-    expi : Exponential integral Ei.
-
-    Notes
-    -----
-    For real arguments with ``x < 0``, ``ci`` is the real part of the
-    cosine integral. For such points ``ci(x)`` and ``ci(x + 0j)``
-    differ by a factor of ``1j*pi``.
-
-    For real arguments the function is computed by calling Cephes'
-    [2]_ *sici* routine. For complex arguments the algorithm is based
-    on Mpmath's [3]_ *si* and *ci* routines.
-
-    References
-    ----------
-    .. [1] Milton Abramowitz and Irene A. Stegun, eds.
-           Handbook of Mathematical Functions with Formulas,
-           Graphs, and Mathematical Tables. New York: Dover, 1972.
-           (See Section 5.2.)
-    .. [2] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-    .. [3] Fredrik Johansson and others.
-           "mpmath: a Python library for arbitrary-precision floating-point
-           arithmetic" (Version 0.19) http://mpmath.org/
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import sici, exp1
-
-    `sici` accepts real or complex input:
-
-    >>> sici(2.5)
-    (1.7785201734438267, 0.2858711963653835)
-    >>> sici(2.5 + 3j)
-    ((4.505735874563953+0.06863305018999577j),
-    (0.0793644206906966-2.935510262937543j))
-
-    For z in the right half plane, the sine and cosine integrals are
-    related to the exponential integral E1 (implemented in SciPy as
-    `scipy.special.exp1`) by
-
-    * Si(z) = (E1(i*z) - E1(-i*z))/2i + pi/2
-    * Ci(z) = -(E1(i*z) + E1(-i*z))/2
-
-    See [1]_ (equations 5.2.21 and 5.2.23).
-
-    We can verify these relations:
-
-    >>> z = 2 - 3j
-    >>> sici(z)
-    ((4.54751388956229-1.3991965806460565j),
-    (1.408292501520851+2.9836177420296055j))
-
-    >>> (exp1(1j*z) - exp1(-1j*z))/2j + np.pi/2  # Same as sine integral
-    (4.54751388956229-1.3991965806460565j)
-
-    >>> -(exp1(1j*z) + exp1(-1j*z))/2            # Same as cosine integral
-    (1.408292501520851+2.9836177420296055j)
-
-    Plot the functions evaluated on the real axis; the dotted horizontal
-    lines are at pi/2 and -pi/2:
-
-    >>> x = np.linspace(-16, 16, 150)
-    >>> si, ci = sici(x)
-
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, si, label='Si(x)')
-    >>> ax.plot(x, ci, '--', label='Ci(x)')
-    >>> ax.legend(shadow=True, framealpha=1, loc='upper left')
-    >>> ax.set_xlabel('x')
-    >>> ax.set_title('Sine and Cosine Integrals')
-    >>> ax.axhline(np.pi/2, linestyle=':', alpha=0.5, color='k')
-    >>> ax.axhline(-np.pi/2, linestyle=':', alpha=0.5, color='k')
-    >>> ax.grid(True)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("sindg",
-    """
-    sindg(x, out=None)
-
-    Sine of the angle `x` given in degrees.
-
-    Parameters
-    ----------
-    x : array_like
-        Angle, given in degrees.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Sine at the input.
-
-    See Also
-    --------
-    cosdg, tandg, cotdg
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is more accurate than using sine directly.
-
-    >>> x = 180 * np.arange(3)
-    >>> sc.sindg(x)
-    array([ 0., -0.,  0.])
-    >>> np.sin(x * np.pi / 180)
-    array([ 0.0000000e+00,  1.2246468e-16, -2.4492936e-16])
-
-    """)
-
-add_newdoc("smirnov",
-    r"""
-    smirnov(n, d, out=None)
-
-    Kolmogorov-Smirnov complementary cumulative distribution function
-
-    Returns the exact Kolmogorov-Smirnov complementary cumulative
-    distribution function,(aka the Survival Function) of Dn+ (or Dn-)
-    for a one-sided test of equality between an empirical and a
-    theoretical distribution. It is equal to the probability that the
-    maximum difference between a theoretical distribution and an empirical
-    one based on `n` samples is greater than d.
-
-    Parameters
-    ----------
-    n : int
-      Number of samples
-    d : float array_like
-      Deviation between the Empirical CDF (ECDF) and the target CDF.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The value(s) of smirnov(n, d), Prob(Dn+ >= d) (Also Prob(Dn- >= d))
-
-    See Also
-    --------
-    smirnovi : The Inverse Survival Function for the distribution
-    scipy.stats.ksone : Provides the functionality as a continuous distribution
-    kolmogorov, kolmogi : Functions for the two-sided distribution
-
-    Notes
-    -----
-    `smirnov` is used by `stats.kstest` in the application of the
-    Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this
-    function is exposed in `scpy.special`, but the recommended way to achieve
-    the most accurate CDF/SF/PDF/PPF/ISF computations is to use the
-    `stats.ksone` distribution.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import smirnov
-    >>> from scipy.stats import norm
-
-    Show the probability of a gap at least as big as 0, 0.5 and 1.0 for a
-    sample of size 5.
-
-    >>> smirnov(5, [0, 0.5, 1.0])
-    array([ 1.   ,  0.056,  0.   ])
-
-    Compare a sample of size 5 against N(0, 1), the standard normal
-    distribution with mean 0 and standard deviation 1.
-
-    `x` is the sample.
-
-    >>> x = np.array([-1.392, -0.135, 0.114, 0.190, 1.82])
-
-    >>> target = norm(0, 1)
-    >>> cdfs = target.cdf(x)
-    >>> cdfs
-    array([0.0819612 , 0.44630594, 0.5453811 , 0.57534543, 0.9656205 ])
-
-    Construct the empirical CDF and the K-S statistics (Dn+, Dn-, Dn).
-
-    >>> n = len(x)
-    >>> ecdfs = np.arange(n+1, dtype=float)/n
-    >>> cols = np.column_stack([x, ecdfs[1:], cdfs, cdfs - ecdfs[:n],
-    ...                        ecdfs[1:] - cdfs])
-    >>> with np.printoptions(precision=3):
-    ...    print(cols)
-    [[-1.392  0.2    0.082  0.082  0.118]
-     [-0.135  0.4    0.446  0.246 -0.046]
-     [ 0.114  0.6    0.545  0.145  0.055]
-     [ 0.19   0.8    0.575 -0.025  0.225]
-     [ 1.82   1.     0.966  0.166  0.034]]
-    >>> gaps = cols[:, -2:]
-    >>> Dnpm = np.max(gaps, axis=0)
-    >>> print(f'Dn-={Dnpm[0]:f}, Dn+={Dnpm[1]:f}')
-    Dn-=0.246306, Dn+=0.224655
-    >>> probs = smirnov(n, Dnpm)
-    >>> print(f'For a sample of size {n} drawn from N(0, 1):',
-    ...       f' Smirnov n={n}: Prob(Dn- >= {Dnpm[0]:f}) = {probs[0]:.4f}',
-    ...       f' Smirnov n={n}: Prob(Dn+ >= {Dnpm[1]:f}) = {probs[1]:.4f}',
-    ...       sep='\n')
-    For a sample of size 5 drawn from N(0, 1):
-     Smirnov n=5: Prob(Dn- >= 0.246306) = 0.4711
-     Smirnov n=5: Prob(Dn+ >= 0.224655) = 0.5245
-
-    Plot the empirical CDF and the standard normal CDF.
-
-    >>> import matplotlib.pyplot as plt
-    >>> plt.step(np.concatenate(([-2.5], x, [2.5])),
-    ...          np.concatenate((ecdfs, [1])),
-    ...          where='post', label='Empirical CDF')
-    >>> xx = np.linspace(-2.5, 2.5, 100)
-    >>> plt.plot(xx, target.cdf(xx), '--', label='CDF for N(0, 1)')
-
-    Add vertical lines marking Dn+ and Dn-.
-
-    >>> iminus, iplus = np.argmax(gaps, axis=0)
-    >>> plt.vlines([x[iminus]], ecdfs[iminus], cdfs[iminus], color='r',
-    ...            alpha=0.5, lw=4)
-    >>> plt.vlines([x[iplus]], cdfs[iplus], ecdfs[iplus+1], color='m',
-    ...            alpha=0.5, lw=4)
-
-    >>> plt.grid(True)
-    >>> plt.legend(framealpha=1, shadow=True)
-    >>> plt.show()
-    """)
-
-add_newdoc("smirnovi",
-    """
-    smirnovi(n, p, out=None)
-
-    Inverse to `smirnov`
-
-    Returns `d` such that ``smirnov(n, d) == p``, the critical value
-    corresponding to `p`.
-
-    Parameters
-    ----------
-    n : int
-      Number of samples
-    p : float array_like
-        Probability
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        The value(s) of smirnovi(n, p), the critical values.
-
-    See Also
-    --------
-    smirnov : The Survival Function (SF) for the distribution
-    scipy.stats.ksone : Provides the functionality as a continuous distribution
-    kolmogorov, kolmogi : Functions for the two-sided distribution
-    scipy.stats.kstwobign : Two-sided Kolmogorov-Smirnov distribution, large n
-
-    Notes
-    -----
-    `smirnov` is used by `stats.kstest` in the application of the
-    Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this
-    function is exposed in `scpy.special`, but the recommended way to achieve
-    the most accurate CDF/SF/PDF/PPF/ISF computations is to use the
-    `stats.ksone` distribution.
-
-    Examples
-    --------
-    >>> from scipy.special import smirnovi, smirnov
-
-    >>> n = 24
-    >>> deviations = [0.1, 0.2, 0.3]
-
-    Use `smirnov` to compute the complementary CDF of the Smirnov
-    distribution for the given number of samples and deviations.
-
-    >>> p = smirnov(n, deviations)
-    >>> p
-    array([0.58105083, 0.12826832, 0.01032231])
-
-    The inverse function ``smirnovi(n, p)`` returns ``deviations``.
-
-    >>> smirnovi(n, p)
-    array([0.1, 0.2, 0.3])
-
-    """)
-
-add_newdoc("_smirnovc",
-    """
-    _smirnovc(n, d)
-     Internal function, do not use.
-    """)
-
-add_newdoc("_smirnovci",
-    """
-     Internal function, do not use.
-    """)
-
-add_newdoc("_smirnovp",
-    """
-    _smirnovp(n, p)
-     Internal function, do not use.
-    """)
-
-add_newdoc("spence",
-    r"""
-    spence(z, out=None)
-
-    Spence's function, also known as the dilogarithm.
-
-    It is defined to be
-
-    .. math::
-      \int_1^z \frac{\log(t)}{1 - t}dt
-
-    for complex :math:`z`, where the contour of integration is taken
-    to avoid the branch cut of the logarithm. Spence's function is
-    analytic everywhere except the negative real axis where it has a
-    branch cut.
-
-    Parameters
-    ----------
-    z : array_like
-        Points at which to evaluate Spence's function
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    s : scalar or ndarray
-        Computed values of Spence's function
-
-    Notes
-    -----
-    There is a different convention which defines Spence's function by
-    the integral
-
-    .. math::
-      -\int_0^z \frac{\log(1 - t)}{t}dt;
-
-    this is our ``spence(1 - z)``.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import spence
-    >>> import matplotlib.pyplot as plt
-
-    The function is defined for complex inputs:
-
-    >>> spence([1-1j, 1.5+2j, 3j, -10-5j])
-    array([-0.20561676+0.91596559j, -0.86766909-1.39560134j,
-           -0.59422064-2.49129918j, -1.14044398+6.80075924j])
-
-    For complex inputs on the branch cut, which is the negative real axis,
-    the function returns the limit for ``z`` with positive imaginary part.
-    For example, in the following, note the sign change of the imaginary
-    part of the output for ``z = -2`` and ``z = -2 - 1e-8j``:
-
-    >>> spence([-2 + 1e-8j, -2, -2 - 1e-8j])
-    array([2.32018041-3.45139229j, 2.32018042-3.4513923j ,
-           2.32018041+3.45139229j])
-
-    The function returns ``nan`` for real inputs on the branch cut:
-
-    >>> spence(-1.5)
-    nan
-
-    Verify some particular values: ``spence(0) = pi**2/6``,
-    ``spence(1) = 0`` and ``spence(2) = -pi**2/12``.
-
-    >>> spence([0, 1, 2])
-    array([ 1.64493407,  0.        , -0.82246703])
-    >>> np.pi**2/6, -np.pi**2/12
-    (1.6449340668482264, -0.8224670334241132)
-
-    Verify the identity::
-
-        spence(z) + spence(1 - z) = pi**2/6 - log(z)*log(1 - z)
-
-    >>> z = 3 + 4j
-    >>> spence(z) + spence(1 - z)
-    (-2.6523186143876067+1.8853470951513935j)
-    >>> np.pi**2/6 - np.log(z)*np.log(1 - z)
-    (-2.652318614387606+1.885347095151394j)
-
-    Plot the function for positive real input.
-
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(0, 6, 400)
-    >>> ax.plot(x, spence(x))
-    >>> ax.grid()
-    >>> ax.set_xlabel('x')
-    >>> ax.set_title('spence(x)')
-    >>> plt.show()
-    """)
-
-add_newdoc(
-    "stdtr",
-    r"""
-    stdtr(df, t, out=None)
-
-    Student t distribution cumulative distribution function
-
-    Returns the integral:
-
-    .. math::
-        \frac{\Gamma((df+1)/2)}{\sqrt{\pi df} \Gamma(df/2)}
-        \int_{-\infty}^t (1+x^2/df)^{-(df+1)/2}\, dx
-
-    Parameters
-    ----------
-    df : array_like
-        Degrees of freedom
-    t : array_like
-        Upper bound of the integral
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Value of the Student t CDF at t
-
-    See Also
-    --------
-    stdtridf : inverse of stdtr with respect to `df`
-    stdtrit : inverse of stdtr with respect to `t`
-    scipy.stats.t : student t distribution
-
-    Notes
-    -----
-    The student t distribution is also available as `scipy.stats.t`.
-    Calling `stdtr` directly can improve performance compared to the
-    ``cdf`` method of `scipy.stats.t` (see last example below).
-
-    Examples
-    --------
-    Calculate the function for ``df=3`` at ``t=1``.
-
-    >>> import numpy as np
-    >>> from scipy.special import stdtr
-    >>> import matplotlib.pyplot as plt
-    >>> stdtr(3, 1)
-    0.8044988905221148
-
-    Plot the function for three different degrees of freedom.
-
-    >>> x = np.linspace(-10, 10, 1000)
-    >>> fig, ax = plt.subplots()
-    >>> parameters = [(1, "solid"), (3, "dashed"), (10, "dotted")]
-    >>> for (df, linestyle) in parameters:
-    ...     ax.plot(x, stdtr(df, x), ls=linestyle, label=f"$df={df}$")
-    >>> ax.legend()
-    >>> ax.set_title("Student t distribution cumulative distribution function")
-    >>> plt.show()
-
-    The function can be computed for several degrees of freedom at the same
-    time by providing a NumPy array or list for `df`:
-
-    >>> stdtr([1, 2, 3], 1)
-    array([0.75      , 0.78867513, 0.80449889])
-
-    It is possible to calculate the function at several points for several
-    different degrees of freedom simultaneously by providing arrays for `df`
-    and `t` with shapes compatible for broadcasting. Compute `stdtr` at
-    4 points for 3 degrees of freedom resulting in an array of shape 3x4.
-
-    >>> dfs = np.array([[1], [2], [3]])
-    >>> t = np.array([2, 4, 6, 8])
-    >>> dfs.shape, t.shape
-    ((3, 1), (4,))
-
-    >>> stdtr(dfs, t)
-    array([[0.85241638, 0.92202087, 0.94743154, 0.96041658],
-           [0.90824829, 0.97140452, 0.98666426, 0.99236596],
-           [0.93033702, 0.98599577, 0.99536364, 0.99796171]])
-
-    The t distribution is also available as `scipy.stats.t`. Calling `stdtr`
-    directly can be much faster than calling the ``cdf`` method of
-    `scipy.stats.t`. To get the same results, one must use the following
-    parametrization: ``scipy.stats.t(df).cdf(x) = stdtr(df, x)``.
-
-    >>> from scipy.stats import t
-    >>> df, x = 3, 1
-    >>> stdtr_result = stdtr(df, x)  # this can be faster than below
-    >>> stats_result = t(df).cdf(x)
-    >>> stats_result == stdtr_result  # test that results are equal
-    True
-    """)
-
-add_newdoc("stdtridf",
-    """
-    stdtridf(p, t, out=None)
-
-    Inverse of `stdtr` vs df
-
-    Returns the argument df such that stdtr(df, t) is equal to `p`.
-
-    Parameters
-    ----------
-    p : array_like
-        Probability
-    t : array_like
-        Upper bound of the integral
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    df : scalar or ndarray
-        Value of `df` such that ``stdtr(df, t) == p``
-
-    See Also
-    --------
-    stdtr : Student t CDF
-    stdtrit : inverse of stdtr with respect to `t`
-    scipy.stats.t : Student t distribution
-
-    Examples
-    --------
-    Compute the student t cumulative distribution function for one
-    parameter set.
-
-    >>> from scipy.special import stdtr, stdtridf
-    >>> df, x = 5, 2
-    >>> cdf_value = stdtr(df, x)
-    >>> cdf_value
-    0.9490302605850709
-
-    Verify that `stdtridf` recovers the original value for `df` given
-    the CDF value and `x`.
-
-    >>> stdtridf(cdf_value, x)
-    5.0
-    """)
-
-add_newdoc("stdtrit",
-    """
-    stdtrit(df, p, out=None)
-
-    The `p`-th quantile of the student t distribution.
-
-    This function is the inverse of the student t distribution cumulative
-    distribution function (CDF), returning `t` such that `stdtr(df, t) = p`.
-
-    Returns the argument `t` such that stdtr(df, t) is equal to `p`.
-
-    Parameters
-    ----------
-    df : array_like
-        Degrees of freedom
-    p : array_like
-        Probability
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    t : scalar or ndarray
-        Value of `t` such that ``stdtr(df, t) == p``
-
-    See Also
-    --------
-    stdtr : Student t CDF
-    stdtridf : inverse of stdtr with respect to `df`
-    scipy.stats.t : Student t distribution
-
-    Notes
-    -----
-    The student t distribution is also available as `scipy.stats.t`. Calling
-    `stdtrit` directly can improve performance compared to the ``ppf``
-    method of `scipy.stats.t` (see last example below).
-
-    Examples
-    --------
-    `stdtrit` represents the inverse of the student t distribution CDF which
-    is available as `stdtr`. Here, we calculate the CDF for ``df`` at
-    ``x=1``. `stdtrit` then returns ``1`` up to floating point errors
-    given the same value for `df` and the computed CDF value.
-
-    >>> import numpy as np
-    >>> from scipy.special import stdtr, stdtrit
-    >>> import matplotlib.pyplot as plt
-    >>> df = 3
-    >>> x = 1
-    >>> cdf_value = stdtr(df, x)
-    >>> stdtrit(df, cdf_value)
-    0.9999999994418539
-
-    Plot the function for three different degrees of freedom.
-
-    >>> x = np.linspace(0, 1, 1000)
-    >>> parameters = [(1, "solid"), (2, "dashed"), (5, "dotted")]
-    >>> fig, ax = plt.subplots()
-    >>> for (df, linestyle) in parameters:
-    ...     ax.plot(x, stdtrit(df, x), ls=linestyle, label=f"$df={df}$")
-    >>> ax.legend()
-    >>> ax.set_ylim(-10, 10)
-    >>> ax.set_title("Student t distribution quantile function")
-    >>> plt.show()
-
-    The function can be computed for several degrees of freedom at the same
-    time by providing a NumPy array or list for `df`:
-
-    >>> stdtrit([1, 2, 3], 0.7)
-    array([0.72654253, 0.6172134 , 0.58438973])
-
-    It is possible to calculate the function at several points for several
-    different degrees of freedom simultaneously by providing arrays for `df`
-    and `p` with shapes compatible for broadcasting. Compute `stdtrit` at
-    4 points for 3 degrees of freedom resulting in an array of shape 3x4.
-
-    >>> dfs = np.array([[1], [2], [3]])
-    >>> p = np.array([0.2, 0.4, 0.7, 0.8])
-    >>> dfs.shape, p.shape
-    ((3, 1), (4,))
-
-    >>> stdtrit(dfs, p)
-    array([[-1.37638192, -0.3249197 ,  0.72654253,  1.37638192],
-           [-1.06066017, -0.28867513,  0.6172134 ,  1.06066017],
-           [-0.97847231, -0.27667066,  0.58438973,  0.97847231]])
-
-    The t distribution is also available as `scipy.stats.t`. Calling `stdtrit`
-    directly can be much faster than calling the ``ppf`` method of
-    `scipy.stats.t`. To get the same results, one must use the following
-    parametrization: ``scipy.stats.t(df).ppf(x) = stdtrit(df, x)``.
-
-    >>> from scipy.stats import t
-    >>> df, x = 3, 0.5
-    >>> stdtrit_result = stdtrit(df, x)  # this can be faster than below
-    >>> stats_result = t(df).ppf(x)
-    >>> stats_result == stdtrit_result  # test that results are equal
-    True
-    """)
-
-add_newdoc("struve",
-    r"""
-    struve(v, x, out=None)
-
-    Struve function.
-
-    Return the value of the Struve function of order `v` at `x`.  The Struve
-    function is defined as,
-
-    .. math::
-        H_v(x) = (z/2)^{v + 1} \sum_{n=0}^\infty
-        \frac{(-1)^n (z/2)^{2n}}{\Gamma(n + \frac{3}{2}) \Gamma(n + v + \frac{3}{2})},
-
-    where :math:`\Gamma` is the gamma function.
-
-    Parameters
-    ----------
-    v : array_like
-        Order of the Struve function (float).
-    x : array_like
-        Argument of the Struve function (float; must be positive unless `v` is
-        an integer).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    H : scalar or ndarray
-        Value of the Struve function of order `v` at `x`.
-
-    See Also
-    --------
-    modstruve: Modified Struve function
-
-    Notes
-    -----
-    Three methods discussed in [1]_ are used to evaluate the Struve function:
-
-    - power series
-    - expansion in Bessel functions (if :math:`|z| < |v| + 20`)
-    - asymptotic large-z expansion (if :math:`z \geq 0.7v + 12`)
-
-    Rounding errors are estimated based on the largest terms in the sums, and
-    the result associated with the smallest error is returned.
-
-    References
-    ----------
-    .. [1] NIST Digital Library of Mathematical Functions
-           https://dlmf.nist.gov/11
-
-    Examples
-    --------
-    Calculate the Struve function of order 1 at 2.
-
-    >>> import numpy as np
-    >>> from scipy.special import struve
-    >>> import matplotlib.pyplot as plt
-    >>> struve(1, 2.)
-    0.6467637282835622
-
-    Calculate the Struve function at 2 for orders 1, 2 and 3 by providing
-    a list for the order parameter `v`.
-
-    >>> struve([1, 2, 3], 2.)
-    array([0.64676373, 0.28031806, 0.08363767])
-
-    Calculate the Struve function of order 1 for several points by providing
-    an array for `x`.
-
-    >>> points = np.array([2., 5., 8.])
-    >>> struve(1, points)
-    array([0.64676373, 0.80781195, 0.48811605])
-
-    Compute the Struve function for several orders at several points by
-    providing arrays for `v` and `z`. The arrays have to be broadcastable
-    to the correct shapes.
-
-    >>> orders = np.array([[1], [2], [3]])
-    >>> points.shape, orders.shape
-    ((3,), (3, 1))
-
-    >>> struve(orders, points)
-    array([[0.64676373, 0.80781195, 0.48811605],
-           [0.28031806, 1.56937455, 1.51769363],
-           [0.08363767, 1.50872065, 2.98697513]])
-
-    Plot the Struve functions of order 0 to 3 from -10 to 10.
-
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-10., 10., 1000)
-    >>> for i in range(4):
-    ...     ax.plot(x, struve(i, x), label=f'$H_{i!r}$')
-    >>> ax.legend(ncol=2)
-    >>> ax.set_xlim(-10, 10)
-    >>> ax.set_title(r"Struve functions $H_{\nu}$")
-    >>> plt.show()
-    """)
-
-add_newdoc("tandg",
-    """
-    tandg(x, out=None)
-
-    Tangent of angle `x` given in degrees.
-
-    Parameters
-    ----------
-    x : array_like
-        Angle, given in degrees.
-    out : ndarray, optional
-        Optional output array for the function results.
-
-    Returns
-    -------
-    scalar or ndarray
-        Tangent at the input.
-
-    See Also
-    --------
-    sindg, cosdg, cotdg
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    It is more accurate than using tangent directly.
-
-    >>> x = 180 * np.arange(3)
-    >>> sc.tandg(x)
-    array([0., 0., 0.])
-    >>> np.tan(x * np.pi / 180)
-    array([ 0.0000000e+00, -1.2246468e-16, -2.4492936e-16])
-
-    """)
-
-add_newdoc(
-    "tklmbda",
-    r"""
-    tklmbda(x, lmbda, out=None)
-
-    Cumulative distribution function of the Tukey lambda distribution.
-
-    Parameters
-    ----------
-    x, lmbda : array_like
-        Parameters
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    cdf : scalar or ndarray
-        Value of the Tukey lambda CDF
-
-    See Also
-    --------
-    scipy.stats.tukeylambda : Tukey lambda distribution
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import tklmbda, expit
-
-    Compute the cumulative distribution function (CDF) of the Tukey lambda
-    distribution at several ``x`` values for `lmbda` = -1.5.
-
-    >>> x = np.linspace(-2, 2, 9)
-    >>> x
-    array([-2. , -1.5, -1. , -0.5,  0. ,  0.5,  1. ,  1.5,  2. ])
-    >>> tklmbda(x, -1.5)
-    array([0.34688734, 0.3786554 , 0.41528805, 0.45629737, 0.5       ,
-           0.54370263, 0.58471195, 0.6213446 , 0.65311266])
-
-    When `lmbda` is 0, the function is the logistic sigmoid function,
-    which is implemented in `scipy.special` as `expit`.
-
-    >>> tklmbda(x, 0)
-    array([0.11920292, 0.18242552, 0.26894142, 0.37754067, 0.5       ,
-           0.62245933, 0.73105858, 0.81757448, 0.88079708])
-    >>> expit(x)
-    array([0.11920292, 0.18242552, 0.26894142, 0.37754067, 0.5       ,
-           0.62245933, 0.73105858, 0.81757448, 0.88079708])
-
-    When `lmbda` is 1, the Tukey lambda distribution is uniform on the
-    interval [-1, 1], so the CDF increases linearly.
-
-    >>> t = np.linspace(-1, 1, 9)
-    >>> tklmbda(t, 1)
-    array([0.   , 0.125, 0.25 , 0.375, 0.5  , 0.625, 0.75 , 0.875, 1.   ])
-
-    In the following, we generate plots for several values of `lmbda`.
-
-    The first figure shows graphs for `lmbda` <= 0.
-
-    >>> styles = ['-', '-.', '--', ':']
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-12, 12, 500)
-    >>> for k, lmbda in enumerate([-1.0, -0.5, 0.0]):
-    ...     y = tklmbda(x, lmbda)
-    ...     ax.plot(x, y, styles[k], label=rf'$\lambda$ = {lmbda:-4.1f}')
-
-    >>> ax.set_title(r'tklmbda(x, $\lambda$)')
-    >>> ax.set_label('x')
-    >>> ax.legend(framealpha=1, shadow=True)
-    >>> ax.grid(True)
-
-    The second figure shows graphs for `lmbda` > 0.  The dots in the
-    graphs show the bounds of the support of the distribution.
-
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(-4.2, 4.2, 500)
-    >>> lmbdas = [0.25, 0.5, 1.0, 1.5]
-    >>> for k, lmbda in enumerate(lmbdas):
-    ...     y = tklmbda(x, lmbda)
-    ...     ax.plot(x, y, styles[k], label=fr'$\lambda$ = {lmbda}')
-
-    >>> ax.set_prop_cycle(None)
-    >>> for lmbda in lmbdas:
-    ...     ax.plot([-1/lmbda, 1/lmbda], [0, 1], '.', ms=8)
-
-    >>> ax.set_title(r'tklmbda(x, $\lambda$)')
-    >>> ax.set_xlabel('x')
-    >>> ax.legend(framealpha=1, shadow=True)
-    >>> ax.grid(True)
-
-    >>> plt.tight_layout()
-    >>> plt.show()
-
-    The CDF of the Tukey lambda distribution is also implemented as the
-    ``cdf`` method of `scipy.stats.tukeylambda`.  In the following,
-    ``tukeylambda.cdf(x, -0.5)`` and ``tklmbda(x, -0.5)`` compute the
-    same values:
-
-    >>> from scipy.stats import tukeylambda
-    >>> x = np.linspace(-2, 2, 9)
-
-    >>> tukeylambda.cdf(x, -0.5)
-    array([0.21995157, 0.27093858, 0.33541677, 0.41328161, 0.5       ,
-           0.58671839, 0.66458323, 0.72906142, 0.78004843])
-
-    >>> tklmbda(x, -0.5)
-    array([0.21995157, 0.27093858, 0.33541677, 0.41328161, 0.5       ,
-           0.58671839, 0.66458323, 0.72906142, 0.78004843])
-
-    The implementation in ``tukeylambda`` also provides location and scale
-    parameters, and other methods such as ``pdf()`` (the probability
-    density function) and ``ppf()`` (the inverse of the CDF), so for
-    working with the Tukey lambda distribution, ``tukeylambda`` is more
-    generally useful.  The primary advantage of ``tklmbda`` is that it is
-    significantly faster than ``tukeylambda.cdf``.
-    """)
-
-add_newdoc("wofz",
-    """
-    wofz(z, out=None)
-
-    Faddeeva function
-
-    Returns the value of the Faddeeva function for complex argument::
-
-        exp(-z**2) * erfc(-i*z)
-
-    Parameters
-    ----------
-    z : array_like
-        complex argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Value of the Faddeeva function
-
-    See Also
-    --------
-    dawsn, erf, erfc, erfcx, erfi
-
-    References
-    ----------
-    .. [1] Steven G. Johnson, Faddeeva W function implementation.
-       http://ab-initio.mit.edu/Faddeeva
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import special
-    >>> import matplotlib.pyplot as plt
-
-    >>> x = np.linspace(-3, 3)
-    >>> z = special.wofz(x)
-
-    >>> plt.plot(x, z.real, label='wofz(x).real')
-    >>> plt.plot(x, z.imag, label='wofz(x).imag')
-    >>> plt.xlabel('$x$')
-    >>> plt.legend(framealpha=1, shadow=True)
-    >>> plt.grid(alpha=0.25)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("xlogy",
-    """
-    xlogy(x, y, out=None)
-
-    Compute ``x*log(y)`` so that the result is 0 if ``x = 0``.
-
-    Parameters
-    ----------
-    x : array_like
-        Multiplier
-    y : array_like
-        Argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    z : scalar or ndarray
-        Computed x*log(y)
-
-    Notes
-    -----
-    The log function used in the computation is the natural log.
-
-    .. versionadded:: 0.13.0
-
-    Examples
-    --------
-    We can use this function to calculate the binary logistic loss also
-    known as the binary cross entropy. This loss function is used for
-    binary classification problems and is defined as:
-
-    .. math::
-        L = 1/n * \\sum_{i=0}^n -(y_i*log(y\\_pred_i) + (1-y_i)*log(1-y\\_pred_i))
-
-    We can define the parameters `x` and `y` as y and y_pred respectively.
-    y is the array of the actual labels which over here can be either 0 or 1.
-    y_pred is the array of the predicted probabilities with respect to
-    the positive class (1).
-
-    >>> import numpy as np
-    >>> from scipy.special import xlogy
-    >>> y = np.array([0, 1, 0, 1, 1, 0])
-    >>> y_pred = np.array([0.3, 0.8, 0.4, 0.7, 0.9, 0.2])
-    >>> n = len(y)
-    >>> loss = -(xlogy(y, y_pred) + xlogy(1 - y, 1 - y_pred)).sum()
-    >>> loss /= n
-    >>> loss
-    0.29597052165495025
-
-    A lower loss is usually better as it indicates that the predictions are
-    similar to the actual labels. In this example since our predicted
-    probabilities are close to the actual labels, we get an overall loss
-    that is reasonably low and appropriate.
-
-    """)
-
-add_newdoc("xlog1py",
-    """
-    xlog1py(x, y, out=None)
-
-    Compute ``x*log1p(y)`` so that the result is 0 if ``x = 0``.
-
-    Parameters
-    ----------
-    x : array_like
-        Multiplier
-    y : array_like
-        Argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    z : scalar or ndarray
-        Computed x*log1p(y)
-
-    Notes
-    -----
-
-    .. versionadded:: 0.13.0
-
-    Examples
-    --------
-    This example shows how the function can be used to calculate the log of
-    the probability mass function for a geometric discrete random variable.
-    The probability mass function of the geometric distribution is defined
-    as follows:
-
-    .. math:: f(k) = (1-p)^{k-1} p
-
-    where :math:`p` is the probability of a single success
-    and :math:`1-p` is the probability of a single failure
-    and :math:`k` is the number of trials to get the first success.
-
-    >>> import numpy as np
-    >>> from scipy.special import xlog1py
-    >>> p = 0.5
-    >>> k = 100
-    >>> _pmf = np.power(1 - p, k - 1) * p
-    >>> _pmf
-    7.888609052210118e-31
-
-    If we take k as a relatively large number the value of the probability
-    mass function can become very low. In such cases taking the log of the
-    pmf would be more suitable as the log function can change the values
-    to a scale that is more appropriate to work with.
-
-    >>> _log_pmf = xlog1py(k - 1, -p) + np.log(p)
-    >>> _log_pmf
-    -69.31471805599453
-
-    We can confirm that we get a value close to the original pmf value by
-    taking the exponential of the log pmf.
-
-    >>> _orig_pmf = np.exp(_log_pmf)
-    >>> np.isclose(_pmf, _orig_pmf)
-    True
-
-    """)
-
-add_newdoc("y0",
-    r"""
-    y0(x, out=None)
-
-    Bessel function of the second kind of order 0.
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    Y : scalar or ndarray
-        Value of the Bessel function of the second kind of order 0 at `x`.
-
-    See Also
-    --------
-    j0: Bessel function of the first kind of order 0
-    yv: Bessel function of the first kind
-
-    Notes
-    -----
-    The domain is divided into the intervals [0, 5] and (5, infinity). In the
-    first interval a rational approximation :math:`R(x)` is employed to
-    compute,
-
-    .. math::
-
-        Y_0(x) = R(x) + \frac{2 \log(x) J_0(x)}{\pi},
-
-    where :math:`J_0` is the Bessel function of the first kind of order 0.
-
-    In the second interval, the Hankel asymptotic expansion is employed with
-    two rational functions of degree 6/6 and 7/7.
-
-    This function is a wrapper for the Cephes [1]_ routine `y0`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Calculate the function at one point:
-
-    >>> from scipy.special import y0
-    >>> y0(1.)
-    0.08825696421567697
-
-    Calculate at several points:
-
-    >>> import numpy as np
-    >>> y0(np.array([0.5, 2., 3.]))
-    array([-0.44451873,  0.51037567,  0.37685001])
-
-    Plot the function from 0 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(0., 10., 1000)
-    >>> y = y0(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("y1",
-    """
-    y1(x, out=None)
-
-    Bessel function of the second kind of order 1.
-
-    Parameters
-    ----------
-    x : array_like
-        Argument (float).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    Y : scalar or ndarray
-        Value of the Bessel function of the second kind of order 1 at `x`.
-
-    See Also
-    --------
-    j1: Bessel function of the first kind of order 1
-    yn: Bessel function of the second kind
-    yv: Bessel function of the second kind
-
-    Notes
-    -----
-    The domain is divided into the intervals [0, 8] and (8, infinity). In the
-    first interval a 25 term Chebyshev expansion is used, and computing
-    :math:`J_1` (the Bessel function of the first kind) is required. In the
-    second, the asymptotic trigonometric representation is employed using two
-    rational functions of degree 5/5.
-
-    This function is a wrapper for the Cephes [1]_ routine `y1`.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Calculate the function at one point:
-
-    >>> from scipy.special import y1
-    >>> y1(1.)
-    -0.7812128213002888
-
-    Calculate at several points:
-
-    >>> import numpy as np
-    >>> y1(np.array([0.5, 2., 3.]))
-    array([-1.47147239, -0.10703243,  0.32467442])
-
-    Plot the function from 0 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(0., 10., 1000)
-    >>> y = y1(x)
-    >>> ax.plot(x, y)
-    >>> plt.show()
-
-    """)
-
-add_newdoc("yn",
-    r"""
-    yn(n, x, out=None)
-
-    Bessel function of the second kind of integer order and real argument.
-
-    Parameters
-    ----------
-    n : array_like
-        Order (integer).
-    x : array_like
-        Argument (float).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    Y : scalar or ndarray
-        Value of the Bessel function, :math:`Y_n(x)`.
-
-    See Also
-    --------
-    yv : For real order and real or complex argument.
-    y0: faster implementation of this function for order 0
-    y1: faster implementation of this function for order 1
-
-    Notes
-    -----
-    Wrapper for the Cephes [1]_ routine `yn`.
-
-    The function is evaluated by forward recurrence on `n`, starting with
-    values computed by the Cephes routines `y0` and `y1`. If `n = 0` or 1,
-    the routine for `y0` or `y1` is called directly.
-
-    References
-    ----------
-    .. [1] Cephes Mathematical Functions Library,
-           http://www.netlib.org/cephes/
-
-    Examples
-    --------
-    Evaluate the function of order 0 at one point.
-
-    >>> from scipy.special import yn
-    >>> yn(0, 1.)
-    0.08825696421567697
-
-    Evaluate the function at one point for different orders.
-
-    >>> yn(0, 1.), yn(1, 1.), yn(2, 1.)
-    (0.08825696421567697, -0.7812128213002888, -1.6506826068162546)
-
-    The evaluation for different orders can be carried out in one call by
-    providing a list or NumPy array as argument for the `v` parameter:
-
-    >>> yn([0, 1, 2], 1.)
-    array([ 0.08825696, -0.78121282, -1.65068261])
-
-    Evaluate the function at several points for order 0 by providing an
-    array for `z`.
-
-    >>> import numpy as np
-    >>> points = np.array([0.5, 3., 8.])
-    >>> yn(0, points)
-    array([-0.44451873,  0.37685001,  0.22352149])
-
-    If `z` is an array, the order parameter `v` must be broadcastable to
-    the correct shape if different orders shall be computed in one call.
-    To calculate the orders 0 and 1 for an 1D array:
-
-    >>> orders = np.array([[0], [1]])
-    >>> orders.shape
-    (2, 1)
-
-    >>> yn(orders, points)
-    array([[-0.44451873,  0.37685001,  0.22352149],
-           [-1.47147239,  0.32467442, -0.15806046]])
-
-    Plot the functions of order 0 to 3 from 0 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(0., 10., 1000)
-    >>> for i in range(4):
-    ...     ax.plot(x, yn(i, x), label=f'$Y_{i!r}$')
-    >>> ax.set_ylim(-3, 1)
-    >>> ax.legend()
-    >>> plt.show()
-    """)
-
-add_newdoc("yv",
-    r"""
-    yv(v, z, out=None)
-
-    Bessel function of the second kind of real order and complex argument.
-
-    Parameters
-    ----------
-    v : array_like
-        Order (float).
-    z : array_like
-        Argument (float or complex).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    Y : scalar or ndarray
-        Value of the Bessel function of the second kind, :math:`Y_v(x)`.
-
-    See Also
-    --------
-    yve : :math:`Y_v` with leading exponential behavior stripped off.
-    y0: faster implementation of this function for order 0
-    y1: faster implementation of this function for order 1
-
-    Notes
-    -----
-    For positive `v` values, the computation is carried out using the
-    AMOS [1]_ `zbesy` routine, which exploits the connection to the Hankel
-    Bessel functions :math:`H_v^{(1)}` and :math:`H_v^{(2)}`,
-
-    .. math:: Y_v(z) = \frac{1}{2\imath} (H_v^{(1)} - H_v^{(2)}).
-
-    For negative `v` values the formula,
-
-    .. math:: Y_{-v}(z) = Y_v(z) \cos(\pi v) + J_v(z) \sin(\pi v)
-
-    is used, where :math:`J_v(z)` is the Bessel function of the first kind,
-    computed using the AMOS routine `zbesj`.  Note that the second term is
-    exactly zero for integer `v`; to improve accuracy the second term is
-    explicitly omitted for `v` values such that `v = floor(v)`.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-
-    Examples
-    --------
-    Evaluate the function of order 0 at one point.
-
-    >>> from scipy.special import yv
-    >>> yv(0, 1.)
-    0.088256964215677
-
-    Evaluate the function at one point for different orders.
-
-    >>> yv(0, 1.), yv(1, 1.), yv(1.5, 1.)
-    (0.088256964215677, -0.7812128213002889, -1.102495575160179)
-
-    The evaluation for different orders can be carried out in one call by
-    providing a list or NumPy array as argument for the `v` parameter:
-
-    >>> yv([0, 1, 1.5], 1.)
-    array([ 0.08825696, -0.78121282, -1.10249558])
-
-    Evaluate the function at several points for order 0 by providing an
-    array for `z`.
-
-    >>> import numpy as np
-    >>> points = np.array([0.5, 3., 8.])
-    >>> yv(0, points)
-    array([-0.44451873,  0.37685001,  0.22352149])
-
-    If `z` is an array, the order parameter `v` must be broadcastable to
-    the correct shape if different orders shall be computed in one call.
-    To calculate the orders 0 and 1 for an 1D array:
-
-    >>> orders = np.array([[0], [1]])
-    >>> orders.shape
-    (2, 1)
-
-    >>> yv(orders, points)
-    array([[-0.44451873,  0.37685001,  0.22352149],
-           [-1.47147239,  0.32467442, -0.15806046]])
-
-    Plot the functions of order 0 to 3 from 0 to 10.
-
-    >>> import matplotlib.pyplot as plt
-    >>> fig, ax = plt.subplots()
-    >>> x = np.linspace(0., 10., 1000)
-    >>> for i in range(4):
-    ...     ax.plot(x, yv(i, x), label=f'$Y_{i!r}$')
-    >>> ax.set_ylim(-3, 1)
-    >>> ax.legend()
-    >>> plt.show()
-
-    """)
-
-add_newdoc("yve",
-    r"""
-    yve(v, z, out=None)
-
-    Exponentially scaled Bessel function of the second kind of real order.
-
-    Returns the exponentially scaled Bessel function of the second
-    kind of real order `v` at complex `z`::
-
-        yve(v, z) = yv(v, z) * exp(-abs(z.imag))
-
-    Parameters
-    ----------
-    v : array_like
-        Order (float).
-    z : array_like
-        Argument (float or complex).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    Y : scalar or ndarray
-        Value of the exponentially scaled Bessel function.
-
-    See Also
-    --------
-    yv: Unscaled Bessel function of the second kind of real order.
-
-    Notes
-    -----
-    For positive `v` values, the computation is carried out using the
-    AMOS [1]_ `zbesy` routine, which exploits the connection to the Hankel
-    Bessel functions :math:`H_v^{(1)}` and :math:`H_v^{(2)}`,
-
-    .. math:: Y_v(z) = \frac{1}{2\imath} (H_v^{(1)} - H_v^{(2)}).
-
-    For negative `v` values the formula,
-
-    .. math:: Y_{-v}(z) = Y_v(z) \cos(\pi v) + J_v(z) \sin(\pi v)
-
-    is used, where :math:`J_v(z)` is the Bessel function of the first kind,
-    computed using the AMOS routine `zbesj`.  Note that the second term is
-    exactly zero for integer `v`; to improve accuracy the second term is
-    explicitly omitted for `v` values such that `v = floor(v)`.
-
-    Exponentially scaled Bessel functions are useful for large `z`:
-    for these, the unscaled Bessel functions can easily under-or overflow.
-
-    References
-    ----------
-    .. [1] Donald E. Amos, "AMOS, A Portable Package for Bessel Functions
-           of a Complex Argument and Nonnegative Order",
-           http://netlib.org/amos/
-
-    Examples
-    --------
-    Compare the output of `yv` and `yve` for large complex arguments for `z`
-    by computing their values for order ``v=1`` at ``z=1000j``. We see that
-    `yv` returns nan but `yve` returns a finite number:
-
-    >>> import numpy as np
-    >>> from scipy.special import yv, yve
-    >>> v = 1
-    >>> z = 1000j
-    >>> yv(v, z), yve(v, z)
-    ((nan+nanj), (-0.012610930256928629+7.721967686709076e-19j))
-
-    For real arguments for `z`, `yve` returns the same as `yv` up to
-    floating point errors.
-
-    >>> v, z = 1, 1000
-    >>> yv(v, z), yve(v, z)
-    (-0.02478433129235178, -0.02478433129235179)
-
-    The function can be evaluated for several orders at the same time by
-    providing a list or NumPy array for `v`:
-
-    >>> yve([1, 2, 3], 1j)
-    array([-0.20791042+0.14096627j,  0.38053618-0.04993878j,
-           0.00815531-1.66311097j])
-
-    In the same way, the function can be evaluated at several points in one
-    call by providing a list or NumPy array for `z`:
-
-    >>> yve(1, np.array([1j, 2j, 3j]))
-    array([-0.20791042+0.14096627j, -0.21526929+0.01205044j,
-           -0.19682671+0.00127278j])
-
-    It is also possible to evaluate several orders at several points
-    at the same time by providing arrays for `v` and `z` with
-    broadcasting compatible shapes. Compute `yve` for two different orders
-    `v` and three points `z` resulting in a 2x3 array.
-
-    >>> v = np.array([[1], [2]])
-    >>> z = np.array([3j, 4j, 5j])
-    >>> v.shape, z.shape
-    ((2, 1), (3,))
-
-    >>> yve(v, z)
-    array([[-1.96826713e-01+1.27277544e-03j, -1.78750840e-01+1.45558819e-04j,
-            -1.63972267e-01+1.73494110e-05j],
-           [1.94960056e-03-1.11782545e-01j,  2.02902325e-04-1.17626501e-01j,
-            2.27727687e-05-1.17951906e-01j]])
-    """)
-
-add_newdoc("zetac",
-    """
-    zetac(x, out=None)
-
-    Riemann zeta function minus 1.
-
-    This function is defined as
-
-    .. math:: \\zeta(x) = \\sum_{k=2}^{\\infty} 1 / k^x,
-
-    where ``x > 1``.  For ``x < 1`` the analytic continuation is
-    computed. For more information on the Riemann zeta function, see
-    [dlmf]_.
-
-    Parameters
-    ----------
-    x : array_like of float
-        Values at which to compute zeta(x) - 1 (must be real).
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of zeta(x) - 1.
-
-    See Also
-    --------
-    zeta
-
-    References
-    ----------
-    .. [dlmf] NIST Digital Library of Mathematical Functions
-              https://dlmf.nist.gov/25
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import zetac, zeta
-
-    Some special values:
-
-    >>> zetac(2), np.pi**2/6 - 1
-    (0.64493406684822641, 0.6449340668482264)
-
-    >>> zetac(-1), -1.0/12 - 1
-    (-1.0833333333333333, -1.0833333333333333)
-
-    Compare ``zetac(x)`` to ``zeta(x) - 1`` for large `x`:
-
-    >>> zetac(60), zeta(60) - 1
-    (8.673617380119933e-19, 0.0)
-    """)
-
-add_newdoc("_riemann_zeta",
-    """
-    Internal function, use `zeta` instead.
-    """)
-
-add_newdoc("_struve_asymp_large_z",
-    """
-    _struve_asymp_large_z(v, z, is_h)
-
-    Internal function for testing `struve` & `modstruve`
-
-    Evaluates using asymptotic expansion
-
-    Returns
-    -------
-    v, err
-    """)
-
-add_newdoc("_struve_power_series",
-    """
-    _struve_power_series(v, z, is_h)
-
-    Internal function for testing `struve` & `modstruve`
-
-    Evaluates using power series
-
-    Returns
-    -------
-    v, err
-    """)
-
-add_newdoc("_struve_bessel_series",
-    """
-    _struve_bessel_series(v, z, is_h)
-
-    Internal function for testing `struve` & `modstruve`
-
-    Evaluates using Bessel function series
-
-    Returns
-    -------
-    v, err
-    """)
-
-add_newdoc("_spherical_jn",
-    """
-    Internal function, use `spherical_jn` instead.
-    """)
-
-add_newdoc("_spherical_jn_d",
-    """
-    Internal function, use `spherical_jn` instead.
-    """)
-
-add_newdoc("_spherical_yn",
-    """
-    Internal function, use `spherical_yn` instead.
-    """)
-
-add_newdoc("_spherical_yn_d",
-    """
-    Internal function, use `spherical_yn` instead.
-    """)
-
-add_newdoc("_spherical_in",
-    """
-    Internal function, use `spherical_in` instead.
-    """)
-
-add_newdoc("_spherical_in_d",
-    """
-    Internal function, use `spherical_in` instead.
-    """)
-
-add_newdoc("_spherical_kn",
-    """
-    Internal function, use `spherical_kn` instead.
-    """)
-
-add_newdoc("_spherical_kn_d",
-    """
-    Internal function, use `spherical_kn` instead.
-    """)
-
-add_newdoc("owens_t",
-    """
-    owens_t(h, a, out=None)
-
-    Owen's T Function.
-
-    The function T(h, a) gives the probability of the event
-    (X > h and 0 < Y < a * X) where X and Y are independent
-    standard normal random variables.
-
-    Parameters
-    ----------
-    h: array_like
-        Input value.
-    a: array_like
-        Input value.
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    t: scalar or ndarray
-        Probability of the event (X > h and 0 < Y < a * X),
-        where X and Y are independent standard normal random variables.
-
-    References
-    ----------
-    .. [1] M. Patefield and D. Tandy, "Fast and accurate calculation of
-           Owen's T Function", Statistical Software vol. 5, pp. 1-25, 2000.
-
-    Examples
-    --------
-    >>> from scipy import special
-    >>> a = 3.5
-    >>> h = 0.78
-    >>> special.owens_t(h, a)
-    0.10877216734852274
-    """)
-
-add_newdoc("_factorial",
-    """
-    Internal function, do not use.
-    """)
-
-add_newdoc("ndtri_exp",
-    r"""
-    ndtri_exp(y, out=None)
-
-    Inverse of `log_ndtr` vs x. Allows for greater precision than
-    `ndtri` composed with `numpy.exp` for very small values of y and for
-    y close to 0.
-
-    Parameters
-    ----------
-    y : array_like of float
-        Function argument
-    out : ndarray, optional
-        Optional output array for the function results
-
-    Returns
-    -------
-    scalar or ndarray
-        Inverse of the log CDF of the standard normal distribution, evaluated
-        at y.
-
-    See Also
-    --------
-    log_ndtr : log of the standard normal cumulative distribution function
-    ndtr : standard normal cumulative distribution function
-    ndtri : standard normal percentile function
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> import scipy.special as sc
-
-    `ndtri_exp` agrees with the naive implementation when the latter does
-    not suffer from underflow.
-
-    >>> sc.ndtri_exp(-1)
-    -0.33747496376420244
-    >>> sc.ndtri(np.exp(-1))
-    -0.33747496376420244
-
-    For extreme values of y, the naive approach fails
-
-    >>> sc.ndtri(np.exp(-800))
-    -inf
-    >>> sc.ndtri(np.exp(-1e-20))
-    inf
-
-    whereas `ndtri_exp` is still able to compute the result to high precision.
-
-    >>> sc.ndtri_exp(-800)
-    -39.88469483825668
-    >>> sc.ndtri_exp(-1e-20)
-    9.262340089798409
-    """)
-
-
-add_newdoc("_stirling2_inexact",
-    r"""
-    Internal function, do not use.
-    """)
-
-add_newdoc(
-    "_beta_pdf",
-    r"""
-    _beta_pdf(x, a, b)
-
-    Probability density function of beta distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued such that :math:`0 \leq x \leq 1`,
-        the upper limit of integration
-    a, b : array_like
-           Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_beta_ppf",
-    r"""
-    _beta_ppf(x, a, b)
-
-    Percent point function of beta distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued such that :math:`0 \leq x \leq 1`,
-        the upper limit of integration
-    a, b : array_like
-           Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_invgauss_ppf",
-    """
-    _invgauss_ppf(x, mu)
-
-    Percent point function of inverse gaussian distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    mu : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_invgauss_isf",
-    """
-    _invgauss_isf(x, mu, s)
-
-    Inverse survival function of inverse gaussian distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    mu : array_like
-        Positive, real-valued parameters
-    s : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncx2_pdf",
-    """
-    _ncx2_pdf(x, k, l)
-
-    Probability density function of Non-central chi-squared distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    k, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncx2_cdf",
-    """
-    _ncx2_cdf(x, k, l)
-
-    Cumulative density function of Non-central chi-squared distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    k, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncx2_ppf",
-    """
-    _ncx2_ppf(x, k, l)
-
-    Percent point function of Non-central chi-squared distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    k, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncx2_sf",
-    """
-    _ncx2_sf(x, k, l)
-
-    Survival function of Non-central chi-squared distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    k, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncx2_isf",
-    """
-    _ncx2_isf(x, k, l)
-
-    Inverse survival function of Non-central chi-squared distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    k, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncf_pdf",
-    """
-    _ncf_pdf(x, v1, v2, l)
-
-    Probability density function of noncentral F-distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    v1, v2, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncf_cdf",
-    """
-    _ncf_cdf(x, v1, v2, l)
-
-    Cumulative density function of noncentral F-distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    v1, v2, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncf_ppf",
-    """
-    _ncf_ppf(x, v1, v2, l)
-
-    Percent point function of noncentral F-distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    v1, v2, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncf_sf",
-    """
-    _ncf_sf(x, v1, v2, l)
-
-    Survival function of noncentral F-distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    v1, v2, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncf_isf",
-    """
-    _ncf_isf(x, v1, v2, l)
-
-    Inverse surivial function of noncentral F-distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Positive real-valued
-    v1, v2, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncf_mean",
-    """
-    _ncf_mean(v1, v2, l)
-
-    Mean of noncentral F-distribution.
-
-    Parameters
-    ----------
-    v1, v2, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncf_variance",
-    """
-    _ncf_variance(v1, v2, l)
-
-    Variance of noncentral F-distribution.
-
-    Parameters
-    ----------
-    v1, v2, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncf_skewness",
-    """
-    _ncf_skewness(v1, v2, l)
-
-    Skewness of noncentral F-distribution.
-
-    Parameters
-    ----------
-    v1, v2, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_ncf_kurtosis_excess",
-    """
-    _ncf_kurtosis_excess(v1, v2, l)
-
-    Kurtosis excess of noncentral F-distribution.
-
-    Parameters
-    ----------
-    v1, v2, l : array_like
-        Positive, real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nct_cdf",
-    """
-    _nct_cdf(x, v, l)
-
-    Cumulative density function of noncentral t-distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    v : array_like
-        Positive, real-valued parameters
-    l : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nct_ppf",
-    """
-    _nct_ppf(x, v, l)
-
-    Percent point function of noncentral t-distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    v : array_like
-        Positive, real-valued parameters
-    l : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nct_sf",
-    """
-    _nct_sf(x, v, l)
-
-    Survival function of noncentral t-distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    v : array_like
-        Positive, real-valued parameters
-    l : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nct_isf",
-    """
-    _nct_isf(x, v, l)
-
-    Inverse surivial function of noncentral t-distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    v : array_like
-        Positive, real-valued parameters
-    l : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nct_mean",
-    """
-    _nct_mean(v, l)
-
-    Mean of noncentral t-distribution.
-
-    Parameters
-    ----------
-    v : array_like
-        Positive, real-valued parameters
-    l : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nct_variance",
-    """
-    _nct_variance(v, l)
-
-    Variance of noncentral t-distribution.
-
-    Parameters
-    ----------
-    v : array_like
-        Positive, real-valued parameters
-    l : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nct_skewness",
-    """
-    _nct_skewness(v, l)
-
-    Skewness of noncentral t-distribution.
-
-    Parameters
-    ----------
-    v : array_like
-        Positive, real-valued parameters
-    l : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nct_kurtosis_excess",
-    """
-    _nct_kurtosis_excess(v, l)
-
-    Kurtosis excess of noncentral t-distribution.
-
-    Parameters
-    ----------
-    v : array_like
-        Positive, real-valued parameters
-    l : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_skewnorm_cdf",
-    """
-    _skewnorm_cdf(x, l, sc, sh)
-
-    Cumulative density function of skewnorm distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    l : array_like
-        Real-valued parameters
-    sc : array_like
-        Positive, Real-valued parameters
-    sh : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_skewnorm_ppf",
-    """
-    _skewnorm_ppf(x, l, sc, sh)
-
-    Percent point function of skewnorm distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    l : array_like
-        Real-valued parameters
-    sc : array_like
-        Positive, Real-valued parameters
-    sh : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_skewnorm_isf",
-    """
-    _skewnorm_isf(x, l, sc, sh)
-
-    Inverse surivial function of skewnorm distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    l : array_like
-        Real-valued parameters
-    sc : array_like
-        Positive, Real-valued parameters
-    sh : array_like
-        Real-valued parameters
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_binom_pmf",
-    """
-    _binom_pmf(x, n, p)
-
-    Probability mass function of binomial distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    n : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_binom_cdf",
-    """
-    _binom_cdf(x, n, p)
-
-    Cumulative density function of binomial distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    n : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_binom_ppf",
-    """
-    _binom_ppf(x, n, p)
-
-    Percent point function of binomial distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    n : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_binom_sf",
-    """
-    _binom_sf(x, n, p)
-
-    Survival function of binomial distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    n : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_binom_isf",
-    """
-    _binom_isf(x, n, p)
-
-    Inverse survival function of binomial distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    n : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nbinom_pmf",
-    """
-    _nbinom_pmf(x, r, p)
-
-    Probability mass function of negative binomial distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    r : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nbinom_cdf",
-    """
-    _nbinom_cdf(x, r, p)
-
-    Cumulative density function of negative binomial distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    r : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nbinom_ppf",
-    """
-    _nbinom_ppf(x, r, p)
-
-    Percent point function of negative binomial distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    r : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nbinom_sf",
-    """
-    _nbinom_sf(x, r, p)
-
-    Survival function of negative binomial distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    r : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nbinom_isf",
-    """
-    _nbinom_isf(x, r, p)
-
-    Inverse survival function of negative binomial distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    r : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nbinom_mean",
-    """
-    _nbinom_mean(r, p)
-
-    Mean of negative binomial distribution.
-
-    Parameters
-    ----------
-    r : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nbinom_variance",
-    """
-    _nbinom_variance(r, p)
-
-    Variance of negative binomial distribution.
-
-    Parameters
-    ----------
-    r : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nbinom_skewness",
-    """
-    _nbinom_skewness(r, p)
-
-    Skewness of negative binomial distribution.
-
-    Parameters
-    ----------
-    r : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_nbinom_kurtosis_excess",
-    """
-    _nbinom_kurtosis_excess(r, p)
-
-    Kurtosis excess of negative binomial distribution.
-
-    Parameters
-    ----------
-    r : array_like
-        Positive, integer-valued parameter
-    p : array_like
-        Positive, real-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_hypergeom_pmf",
-    """
-    _hypergeom_pmf(x, r, N, M)
-
-    Probability mass function of hypergeometric distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    r, N, M : array_like
-        Positive, integer-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_hypergeom_cdf",
-    """
-    _hypergeom_cdf(x, r, N, M)
-
-    Cumulative density function of hypergeometric distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    r, N, M : array_like
-        Positive, integer-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-    """)
-
-add_newdoc(
-    "_hypergeom_sf",
-    """
-    _hypergeom_sf(x, r, N, M)
-
-    Survival function of hypergeometric distribution.
-
-    Parameters
-    ----------
-    x : array_like
-        Real-valued
-    r, N, M : array_like
-        Positive, integer-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-    """)
-
-add_newdoc(
-    "_hypergeom_mean",
-    """
-    _hypergeom_mean(r, N, M)
-
-    Mean of hypergeometric distribution.
-
-    Parameters
-    ----------
-    r, N, M : array_like
-        Positive, integer-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_hypergeom_variance",
-    """
-    _hypergeom_variance(r, N, M)
-
-    Mean of hypergeometric distribution.
-
-    Parameters
-    ----------
-    r, N, M : array_like
-        Positive, integer-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
-
-add_newdoc(
-    "_hypergeom_skewness",
-    """
-    _hypergeom_skewness(r, N, M)
-
-    Skewness of hypergeometric distribution.
-
-    Parameters
-    ----------
-    r, N, M : array_like
-        Positive, integer-valued parameter
-
-    Returns
-    -------
-    scalar or ndarray
-
-    """)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_basic.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_basic.py
deleted file mode 100644
index d39649f4d259658a4ae5d45047ab4205103f0516..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_basic.py
+++ /dev/null
@@ -1,3451 +0,0 @@
-#
-# Author:  Travis Oliphant, 2002
-#
-
-import operator
-import numpy as np
-import math
-import warnings
-from collections import defaultdict
-from heapq import heapify, heappop
-from numpy import (pi, asarray, floor, isscalar, sqrt, where,
-                   sin, place, issubdtype, extract, inexact, nan, zeros, sinc)
-from . import _ufuncs
-from ._ufuncs import (mathieu_a, mathieu_b, iv, jv, gamma,
-                      psi, hankel1, hankel2, yv, kv, poch, binom,
-                      _stirling2_inexact)
-from ._gufuncs import (_lpn, _lpmn, _clpmn, _lqn, _lqmn, _rctj, _rcty,
-                       _sph_harm_all as _sph_harm_all_gufunc)
-from . import _specfun
-from ._comb import _comb_int
-
-
-__all__ = [
-    'ai_zeros',
-    'assoc_laguerre',
-    'bei_zeros',
-    'beip_zeros',
-    'ber_zeros',
-    'bernoulli',
-    'berp_zeros',
-    'bi_zeros',
-    'clpmn',
-    'comb',
-    'digamma',
-    'diric',
-    'erf_zeros',
-    'euler',
-    'factorial',
-    'factorial2',
-    'factorialk',
-    'fresnel_zeros',
-    'fresnelc_zeros',
-    'fresnels_zeros',
-    'h1vp',
-    'h2vp',
-    'ivp',
-    'jn_zeros',
-    'jnjnp_zeros',
-    'jnp_zeros',
-    'jnyn_zeros',
-    'jvp',
-    'kei_zeros',
-    'keip_zeros',
-    'kelvin_zeros',
-    'ker_zeros',
-    'kerp_zeros',
-    'kvp',
-    'lmbda',
-    'lpmn',
-    'lpn',
-    'lqmn',
-    'lqn',
-    'mathieu_even_coef',
-    'mathieu_odd_coef',
-    'obl_cv_seq',
-    'pbdn_seq',
-    'pbdv_seq',
-    'pbvv_seq',
-    'perm',
-    'polygamma',
-    'pro_cv_seq',
-    'riccati_jn',
-    'riccati_yn',
-    'sinc',
-    'stirling2',
-    'y0_zeros',
-    'y1_zeros',
-    'y1p_zeros',
-    'yn_zeros',
-    'ynp_zeros',
-    'yvp',
-    'zeta'
-]
-
-
-# mapping k to last n such that factorialk(n, k) < np.iinfo(np.int64).max
-_FACTORIALK_LIMITS_64BITS = {1: 20, 2: 33, 3: 44, 4: 54, 5: 65,
-                             6: 74, 7: 84, 8: 93, 9: 101}
-# mapping k to last n such that factorialk(n, k) < np.iinfo(np.int32).max
-_FACTORIALK_LIMITS_32BITS = {1: 12, 2: 19, 3: 25, 4: 31, 5: 37,
-                             6: 43, 7: 47, 8: 51, 9: 56}
-
-
-def _nonneg_int_or_fail(n, var_name, strict=True):
-    try:
-        if strict:
-            # Raises an exception if float
-            n = operator.index(n)
-        elif n == floor(n):
-            n = int(n)
-        else:
-            raise ValueError()
-        if n < 0:
-            raise ValueError()
-    except (ValueError, TypeError) as err:
-        raise err.__class__(f"{var_name} must be a non-negative integer") from err
-    return n
-
-
-def diric(x, n):
-    """Periodic sinc function, also called the Dirichlet function.
-
-    The Dirichlet function is defined as::
-
-        diric(x, n) = sin(x * n/2) / (n * sin(x / 2)),
-
-    where `n` is a positive integer.
-
-    Parameters
-    ----------
-    x : array_like
-        Input data
-    n : int
-        Integer defining the periodicity.
-
-    Returns
-    -------
-    diric : ndarray
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy import special
-    >>> import matplotlib.pyplot as plt
-
-    >>> x = np.linspace(-8*np.pi, 8*np.pi, num=201)
-    >>> plt.figure(figsize=(8, 8));
-    >>> for idx, n in enumerate([2, 3, 4, 9]):
-    ...     plt.subplot(2, 2, idx+1)
-    ...     plt.plot(x, special.diric(x, n))
-    ...     plt.title('diric, n={}'.format(n))
-    >>> plt.show()
-
-    The following example demonstrates that `diric` gives the magnitudes
-    (modulo the sign and scaling) of the Fourier coefficients of a
-    rectangular pulse.
-
-    Suppress output of values that are effectively 0:
-
-    >>> np.set_printoptions(suppress=True)
-
-    Create a signal `x` of length `m` with `k` ones:
-
-    >>> m = 8
-    >>> k = 3
-    >>> x = np.zeros(m)
-    >>> x[:k] = 1
-
-    Use the FFT to compute the Fourier transform of `x`, and
-    inspect the magnitudes of the coefficients:
-
-    >>> np.abs(np.fft.fft(x))
-    array([ 3.        ,  2.41421356,  1.        ,  0.41421356,  1.        ,
-            0.41421356,  1.        ,  2.41421356])
-
-    Now find the same values (up to sign) using `diric`. We multiply
-    by `k` to account for the different scaling conventions of
-    `numpy.fft.fft` and `diric`:
-
-    >>> theta = np.linspace(0, 2*np.pi, m, endpoint=False)
-    >>> k * special.diric(theta, k)
-    array([ 3.        ,  2.41421356,  1.        , -0.41421356, -1.        ,
-           -0.41421356,  1.        ,  2.41421356])
-    """
-    x, n = asarray(x), asarray(n)
-    n = asarray(n + (x-x))
-    x = asarray(x + (n-n))
-    if issubdtype(x.dtype, inexact):
-        ytype = x.dtype
-    else:
-        ytype = float
-    y = zeros(x.shape, ytype)
-
-    # empirical minval for 32, 64 or 128 bit float computations
-    # where sin(x/2) < minval, result is fixed at +1 or -1
-    if np.finfo(ytype).eps < 1e-18:
-        minval = 1e-11
-    elif np.finfo(ytype).eps < 1e-15:
-        minval = 1e-7
-    else:
-        minval = 1e-3
-
-    mask1 = (n <= 0) | (n != floor(n))
-    place(y, mask1, nan)
-
-    x = x / 2
-    denom = sin(x)
-    mask2 = (1-mask1) & (abs(denom) < minval)
-    xsub = extract(mask2, x)
-    nsub = extract(mask2, n)
-    zsub = xsub / pi
-    place(y, mask2, pow(-1, np.round(zsub)*(nsub-1)))
-
-    mask = (1-mask1) & (1-mask2)
-    xsub = extract(mask, x)
-    nsub = extract(mask, n)
-    dsub = extract(mask, denom)
-    place(y, mask, sin(nsub*xsub)/(nsub*dsub))
-    return y
-
-
-def jnjnp_zeros(nt):
-    """Compute zeros of integer-order Bessel functions Jn and Jn'.
-
-    Results are arranged in order of the magnitudes of the zeros.
-
-    Parameters
-    ----------
-    nt : int
-        Number (<=1200) of zeros to compute
-
-    Returns
-    -------
-    zo[l-1] : ndarray
-        Value of the lth zero of Jn(x) and Jn'(x). Of length `nt`.
-    n[l-1] : ndarray
-        Order of the Jn(x) or Jn'(x) associated with lth zero. Of length `nt`.
-    m[l-1] : ndarray
-        Serial number of the zeros of Jn(x) or Jn'(x) associated
-        with lth zero. Of length `nt`.
-    t[l-1] : ndarray
-        0 if lth zero in zo is zero of Jn(x), 1 if it is a zero of Jn'(x). Of
-        length `nt`.
-
-    See Also
-    --------
-    jn_zeros, jnp_zeros : to get separated arrays of zeros.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt > 1200):
-        raise ValueError("Number must be integer <= 1200.")
-    nt = int(nt)
-    n, m, t, zo = _specfun.jdzo(nt)
-    return zo[1:nt+1], n[:nt], m[:nt], t[:nt]
-
-
-def jnyn_zeros(n, nt):
-    """Compute nt zeros of Bessel functions Jn(x), Jn'(x), Yn(x), and Yn'(x).
-
-    Returns 4 arrays of length `nt`, corresponding to the first `nt`
-    zeros of Jn(x), Jn'(x), Yn(x), and Yn'(x), respectively. The zeros
-    are returned in ascending order.
-
-    Parameters
-    ----------
-    n : int
-        Order of the Bessel functions
-    nt : int
-        Number (<=1200) of zeros to compute
-
-    Returns
-    -------
-    Jn : ndarray
-        First `nt` zeros of Jn
-    Jnp : ndarray
-        First `nt` zeros of Jn'
-    Yn : ndarray
-        First `nt` zeros of Yn
-    Ynp : ndarray
-        First `nt` zeros of Yn'
-
-    See Also
-    --------
-    jn_zeros, jnp_zeros, yn_zeros, ynp_zeros
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    Compute the first three roots of :math:`J_1`, :math:`J_1'`,
-    :math:`Y_1` and :math:`Y_1'`.
-
-    >>> from scipy.special import jnyn_zeros
-    >>> jn_roots, jnp_roots, yn_roots, ynp_roots = jnyn_zeros(1, 3)
-    >>> jn_roots, yn_roots
-    (array([ 3.83170597,  7.01558667, 10.17346814]),
-     array([2.19714133, 5.42968104, 8.59600587]))
-
-    Plot :math:`J_1`, :math:`J_1'`, :math:`Y_1`, :math:`Y_1'` and their roots.
-
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import jnyn_zeros, jvp, jn, yvp, yn
-    >>> jn_roots, jnp_roots, yn_roots, ynp_roots = jnyn_zeros(1, 3)
-    >>> fig, ax = plt.subplots()
-    >>> xmax= 11
-    >>> x = np.linspace(0, xmax)
-    >>> x[0] += 1e-15
-    >>> ax.plot(x, jn(1, x), label=r"$J_1$", c='r')
-    >>> ax.plot(x, jvp(1, x, 1), label=r"$J_1'$", c='b')
-    >>> ax.plot(x, yn(1, x), label=r"$Y_1$", c='y')
-    >>> ax.plot(x, yvp(1, x, 1), label=r"$Y_1'$", c='c')
-    >>> zeros = np.zeros((3, ))
-    >>> ax.scatter(jn_roots, zeros, s=30, c='r', zorder=5,
-    ...            label=r"$J_1$ roots")
-    >>> ax.scatter(jnp_roots, zeros, s=30, c='b', zorder=5,
-    ...            label=r"$J_1'$ roots")
-    >>> ax.scatter(yn_roots, zeros, s=30, c='y', zorder=5,
-    ...            label=r"$Y_1$ roots")
-    >>> ax.scatter(ynp_roots, zeros, s=30, c='c', zorder=5,
-    ...            label=r"$Y_1'$ roots")
-    >>> ax.hlines(0, 0, xmax, color='k')
-    >>> ax.set_ylim(-0.6, 0.6)
-    >>> ax.set_xlim(0, xmax)
-    >>> ax.legend(ncol=2, bbox_to_anchor=(1., 0.75))
-    >>> plt.tight_layout()
-    >>> plt.show()
-    """
-    if not (isscalar(nt) and isscalar(n)):
-        raise ValueError("Arguments must be scalars.")
-    if (floor(n) != n) or (floor(nt) != nt):
-        raise ValueError("Arguments must be integers.")
-    if (nt <= 0):
-        raise ValueError("nt > 0")
-    return _specfun.jyzo(abs(n), nt)
-
-
-def jn_zeros(n, nt):
-    r"""Compute zeros of integer-order Bessel functions Jn.
-
-    Compute `nt` zeros of the Bessel functions :math:`J_n(x)` on the
-    interval :math:`(0, \infty)`. The zeros are returned in ascending
-    order. Note that this interval excludes the zero at :math:`x = 0`
-    that exists for :math:`n > 0`.
-
-    Parameters
-    ----------
-    n : int
-        Order of Bessel function
-    nt : int
-        Number of zeros to return
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the Bessel function.
-
-    See Also
-    --------
-    jv: Real-order Bessel functions of the first kind
-    jnp_zeros: Zeros of :math:`Jn'`
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    Compute the first four positive roots of :math:`J_3`.
-
-    >>> from scipy.special import jn_zeros
-    >>> jn_zeros(3, 4)
-    array([ 6.3801619 ,  9.76102313, 13.01520072, 16.22346616])
-
-    Plot :math:`J_3` and its first four positive roots. Note
-    that the root located at 0 is not returned by `jn_zeros`.
-
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import jn, jn_zeros
-    >>> j3_roots = jn_zeros(3, 4)
-    >>> xmax = 18
-    >>> xmin = -1
-    >>> x = np.linspace(xmin, xmax, 500)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, jn(3, x), label=r'$J_3$')
-    >>> ax.scatter(j3_roots, np.zeros((4, )), s=30, c='r',
-    ...            label=r"$J_3$_Zeros", zorder=5)
-    >>> ax.scatter(0, 0, s=30, c='k',
-    ...            label=r"Root at 0", zorder=5)
-    >>> ax.hlines(0, 0, xmax, color='k')
-    >>> ax.set_xlim(xmin, xmax)
-    >>> plt.legend()
-    >>> plt.show()
-    """
-    return jnyn_zeros(n, nt)[0]
-
-
-def jnp_zeros(n, nt):
-    r"""Compute zeros of integer-order Bessel function derivatives Jn'.
-
-    Compute `nt` zeros of the functions :math:`J_n'(x)` on the
-    interval :math:`(0, \infty)`. The zeros are returned in ascending
-    order. Note that this interval excludes the zero at :math:`x = 0`
-    that exists for :math:`n > 1`.
-
-    Parameters
-    ----------
-    n : int
-        Order of Bessel function
-    nt : int
-        Number of zeros to return
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the Bessel function.
-
-    See Also
-    --------
-    jvp: Derivatives of integer-order Bessel functions of the first kind
-    jv: Float-order Bessel functions of the first kind
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    Compute the first four roots of :math:`J_2'`.
-
-    >>> from scipy.special import jnp_zeros
-    >>> jnp_zeros(2, 4)
-    array([ 3.05423693,  6.70613319,  9.96946782, 13.17037086])
-
-    As `jnp_zeros` yields the roots of :math:`J_n'`, it can be used to
-    compute the locations of the peaks of :math:`J_n`. Plot
-    :math:`J_2`, :math:`J_2'` and the locations of the roots of :math:`J_2'`.
-
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import jn, jnp_zeros, jvp
-    >>> j2_roots = jnp_zeros(2, 4)
-    >>> xmax = 15
-    >>> x = np.linspace(0, xmax, 500)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, jn(2, x), label=r'$J_2$')
-    >>> ax.plot(x, jvp(2, x, 1), label=r"$J_2'$")
-    >>> ax.hlines(0, 0, xmax, color='k')
-    >>> ax.scatter(j2_roots, np.zeros((4, )), s=30, c='r',
-    ...            label=r"Roots of $J_2'$", zorder=5)
-    >>> ax.set_ylim(-0.4, 0.8)
-    >>> ax.set_xlim(0, xmax)
-    >>> plt.legend()
-    >>> plt.show()
-    """
-    return jnyn_zeros(n, nt)[1]
-
-
-def yn_zeros(n, nt):
-    r"""Compute zeros of integer-order Bessel function Yn(x).
-
-    Compute `nt` zeros of the functions :math:`Y_n(x)` on the interval
-    :math:`(0, \infty)`. The zeros are returned in ascending order.
-
-    Parameters
-    ----------
-    n : int
-        Order of Bessel function
-    nt : int
-        Number of zeros to return
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the Bessel function.
-
-    See Also
-    --------
-    yn: Bessel function of the second kind for integer order
-    yv: Bessel function of the second kind for real order
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    Compute the first four roots of :math:`Y_2`.
-
-    >>> from scipy.special import yn_zeros
-    >>> yn_zeros(2, 4)
-    array([ 3.38424177,  6.79380751, 10.02347798, 13.20998671])
-
-    Plot :math:`Y_2` and its first four roots.
-
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import yn, yn_zeros
-    >>> xmin = 2
-    >>> xmax = 15
-    >>> x = np.linspace(xmin, xmax, 500)
-    >>> fig, ax = plt.subplots()
-    >>> ax.hlines(0, xmin, xmax, color='k')
-    >>> ax.plot(x, yn(2, x), label=r'$Y_2$')
-    >>> ax.scatter(yn_zeros(2, 4), np.zeros((4, )), s=30, c='r',
-    ...            label='Roots', zorder=5)
-    >>> ax.set_ylim(-0.4, 0.4)
-    >>> ax.set_xlim(xmin, xmax)
-    >>> plt.legend()
-    >>> plt.show()
-    """
-    return jnyn_zeros(n, nt)[2]
-
-
-def ynp_zeros(n, nt):
-    r"""Compute zeros of integer-order Bessel function derivatives Yn'(x).
-
-    Compute `nt` zeros of the functions :math:`Y_n'(x)` on the
-    interval :math:`(0, \infty)`. The zeros are returned in ascending
-    order.
-
-    Parameters
-    ----------
-    n : int
-        Order of Bessel function
-    nt : int
-        Number of zeros to return
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the Bessel derivative function.
-
-
-    See Also
-    --------
-    yvp
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    Compute the first four roots of the first derivative of the
-    Bessel function of second kind for order 0 :math:`Y_0'`.
-
-    >>> from scipy.special import ynp_zeros
-    >>> ynp_zeros(0, 4)
-    array([ 2.19714133,  5.42968104,  8.59600587, 11.74915483])
-
-    Plot :math:`Y_0`, :math:`Y_0'` and confirm visually that the roots of
-    :math:`Y_0'` are located at local extrema of :math:`Y_0`.
-
-    >>> import numpy as np
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import yn, ynp_zeros, yvp
-    >>> zeros = ynp_zeros(0, 4)
-    >>> xmax = 13
-    >>> x = np.linspace(0, xmax, 500)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, yn(0, x), label=r'$Y_0$')
-    >>> ax.plot(x, yvp(0, x, 1), label=r"$Y_0'$")
-    >>> ax.scatter(zeros, np.zeros((4, )), s=30, c='r',
-    ...            label=r"Roots of $Y_0'$", zorder=5)
-    >>> for root in zeros:
-    ...     y0_extremum =  yn(0, root)
-    ...     lower = min(0, y0_extremum)
-    ...     upper = max(0, y0_extremum)
-    ...     ax.vlines(root, lower, upper, color='r')
-    >>> ax.hlines(0, 0, xmax, color='k')
-    >>> ax.set_ylim(-0.6, 0.6)
-    >>> ax.set_xlim(0, xmax)
-    >>> plt.legend()
-    >>> plt.show()
-    """
-    return jnyn_zeros(n, nt)[3]
-
-
-def y0_zeros(nt, complex=False):
-    """Compute nt zeros of Bessel function Y0(z), and derivative at each zero.
-
-    The derivatives are given by Y0'(z0) = -Y1(z0) at each zero z0.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to return
-    complex : bool, default False
-        Set to False to return only the real zeros; set to True to return only
-        the complex zeros with negative real part and positive imaginary part.
-        Note that the complex conjugates of the latter are also zeros of the
-        function, but are not returned by this routine.
-
-    Returns
-    -------
-    z0n : ndarray
-        Location of nth zero of Y0(z)
-    y0pz0n : ndarray
-        Value of derivative Y0'(z0) for nth zero
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    Compute the first 4 real roots and the derivatives at the roots of
-    :math:`Y_0`:
-
-    >>> import numpy as np
-    >>> from scipy.special import y0_zeros
-    >>> zeros, grads = y0_zeros(4)
-    >>> with np.printoptions(precision=5):
-    ...     print(f"Roots: {zeros}")
-    ...     print(f"Gradients: {grads}")
-    Roots: [ 0.89358+0.j  3.95768+0.j  7.08605+0.j 10.22235+0.j]
-    Gradients: [-0.87942+0.j  0.40254+0.j -0.3001 +0.j  0.2497 +0.j]
-
-    Plot the real part of :math:`Y_0` and the first four computed roots.
-
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import y0
-    >>> xmin = 0
-    >>> xmax = 11
-    >>> x = np.linspace(xmin, xmax, 500)
-    >>> fig, ax = plt.subplots()
-    >>> ax.hlines(0, xmin, xmax, color='k')
-    >>> ax.plot(x, y0(x), label=r'$Y_0$')
-    >>> zeros, grads = y0_zeros(4)
-    >>> ax.scatter(zeros.real, np.zeros((4, )), s=30, c='r',
-    ...            label=r'$Y_0$_zeros', zorder=5)
-    >>> ax.set_ylim(-0.5, 0.6)
-    >>> ax.set_xlim(xmin, xmax)
-    >>> plt.legend(ncol=2)
-    >>> plt.show()
-
-    Compute the first 4 complex roots and the derivatives at the roots of
-    :math:`Y_0` by setting ``complex=True``:
-
-    >>> y0_zeros(4, True)
-    (array([ -2.40301663+0.53988231j,  -5.5198767 +0.54718001j,
-             -8.6536724 +0.54841207j, -11.79151203+0.54881912j]),
-     array([ 0.10074769-0.88196771j, -0.02924642+0.5871695j ,
-             0.01490806-0.46945875j, -0.00937368+0.40230454j]))
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("Arguments must be scalar positive integer.")
-    kf = 0
-    kc = not complex
-    return _specfun.cyzo(nt, kf, kc)
-
-
-def y1_zeros(nt, complex=False):
-    """Compute nt zeros of Bessel function Y1(z), and derivative at each zero.
-
-    The derivatives are given by Y1'(z1) = Y0(z1) at each zero z1.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to return
-    complex : bool, default False
-        Set to False to return only the real zeros; set to True to return only
-        the complex zeros with negative real part and positive imaginary part.
-        Note that the complex conjugates of the latter are also zeros of the
-        function, but are not returned by this routine.
-
-    Returns
-    -------
-    z1n : ndarray
-        Location of nth zero of Y1(z)
-    y1pz1n : ndarray
-        Value of derivative Y1'(z1) for nth zero
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    Compute the first 4 real roots and the derivatives at the roots of
-    :math:`Y_1`:
-
-    >>> import numpy as np
-    >>> from scipy.special import y1_zeros
-    >>> zeros, grads = y1_zeros(4)
-    >>> with np.printoptions(precision=5):
-    ...     print(f"Roots: {zeros}")
-    ...     print(f"Gradients: {grads}")
-    Roots: [ 2.19714+0.j  5.42968+0.j  8.59601+0.j 11.74915+0.j]
-    Gradients: [ 0.52079+0.j -0.34032+0.j  0.27146+0.j -0.23246+0.j]
-
-    Extract the real parts:
-
-    >>> realzeros = zeros.real
-    >>> realzeros
-    array([ 2.19714133,  5.42968104,  8.59600587, 11.74915483])
-
-    Plot :math:`Y_1` and the first four computed roots.
-
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import y1
-    >>> xmin = 0
-    >>> xmax = 13
-    >>> x = np.linspace(xmin, xmax, 500)
-    >>> zeros, grads = y1_zeros(4)
-    >>> fig, ax = plt.subplots()
-    >>> ax.hlines(0, xmin, xmax, color='k')
-    >>> ax.plot(x, y1(x), label=r'$Y_1$')
-    >>> ax.scatter(zeros.real, np.zeros((4, )), s=30, c='r',
-    ...            label=r'$Y_1$_zeros', zorder=5)
-    >>> ax.set_ylim(-0.5, 0.5)
-    >>> ax.set_xlim(xmin, xmax)
-    >>> plt.legend()
-    >>> plt.show()
-
-    Compute the first 4 complex roots and the derivatives at the roots of
-    :math:`Y_1` by setting ``complex=True``:
-
-    >>> y1_zeros(4, True)
-    (array([ -0.50274327+0.78624371j,  -3.83353519+0.56235654j,
-             -7.01590368+0.55339305j, -10.17357383+0.55127339j]),
-     array([-0.45952768+1.31710194j,  0.04830191-0.69251288j,
-            -0.02012695+0.51864253j,  0.011614  -0.43203296j]))
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("Arguments must be scalar positive integer.")
-    kf = 1
-    kc = not complex
-    return _specfun.cyzo(nt, kf, kc)
-
-
-def y1p_zeros(nt, complex=False):
-    """Compute nt zeros of Bessel derivative Y1'(z), and value at each zero.
-
-    The values are given by Y1(z1) at each z1 where Y1'(z1)=0.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to return
-    complex : bool, default False
-        Set to False to return only the real zeros; set to True to return only
-        the complex zeros with negative real part and positive imaginary part.
-        Note that the complex conjugates of the latter are also zeros of the
-        function, but are not returned by this routine.
-
-    Returns
-    -------
-    z1pn : ndarray
-        Location of nth zero of Y1'(z)
-    y1z1pn : ndarray
-        Value of derivative Y1(z1) for nth zero
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    Compute the first four roots of :math:`Y_1'` and the values of
-    :math:`Y_1` at these roots.
-
-    >>> import numpy as np
-    >>> from scipy.special import y1p_zeros
-    >>> y1grad_roots, y1_values = y1p_zeros(4)
-    >>> with np.printoptions(precision=5):
-    ...     print(f"Y1' Roots: {y1grad_roots.real}")
-    ...     print(f"Y1 values: {y1_values.real}")
-    Y1' Roots: [ 3.68302  6.9415  10.1234  13.28576]
-    Y1 values: [ 0.41673 -0.30317  0.25091 -0.21897]
-
-    `y1p_zeros` can be used to calculate the extremal points of :math:`Y_1`
-    directly. Here we plot :math:`Y_1` and the first four extrema.
-
-    >>> import matplotlib.pyplot as plt
-    >>> from scipy.special import y1, yvp
-    >>> y1_roots, y1_values_at_roots = y1p_zeros(4)
-    >>> real_roots = y1_roots.real
-    >>> xmax = 15
-    >>> x = np.linspace(0, xmax, 500)
-    >>> x[0] += 1e-15
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, y1(x), label=r'$Y_1$')
-    >>> ax.plot(x, yvp(1, x, 1), label=r"$Y_1'$")
-    >>> ax.scatter(real_roots, np.zeros((4, )), s=30, c='r',
-    ...            label=r"Roots of $Y_1'$", zorder=5)
-    >>> ax.scatter(real_roots, y1_values_at_roots.real, s=30, c='k',
-    ...            label=r"Extrema of $Y_1$", zorder=5)
-    >>> ax.hlines(0, 0, xmax, color='k')
-    >>> ax.set_ylim(-0.5, 0.5)
-    >>> ax.set_xlim(0, xmax)
-    >>> ax.legend(ncol=2, bbox_to_anchor=(1., 0.75))
-    >>> plt.tight_layout()
-    >>> plt.show()
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("Arguments must be scalar positive integer.")
-    kf = 2
-    kc = not complex
-    return _specfun.cyzo(nt, kf, kc)
-
-
-def _bessel_diff_formula(v, z, n, L, phase):
-    # from AMS55.
-    # L(v, z) = J(v, z), Y(v, z), H1(v, z), H2(v, z), phase = -1
-    # L(v, z) = I(v, z) or exp(v*pi*i)K(v, z), phase = 1
-    # For K, you can pull out the exp((v-k)*pi*i) into the caller
-    v = asarray(v)
-    p = 1.0
-    s = L(v-n, z)
-    for i in range(1, n+1):
-        p = phase * (p * (n-i+1)) / i   # = choose(k, i)
-        s += p*L(v-n + i*2, z)
-    return s / (2.**n)
-
-
-def jvp(v, z, n=1):
-    """Compute derivatives of Bessel functions of the first kind.
-
-    Compute the nth derivative of the Bessel function `Jv` with
-    respect to `z`.
-
-    Parameters
-    ----------
-    v : array_like or float
-        Order of Bessel function
-    z : complex
-        Argument at which to evaluate the derivative; can be real or
-        complex.
-    n : int, default 1
-        Order of derivative. For 0 returns the Bessel function `jv` itself.
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the derivative of the Bessel function.
-
-    Notes
-    -----
-    The derivative is computed using the relation DLFM 10.6.7 [2]_.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    .. [2] NIST Digital Library of Mathematical Functions.
-           https://dlmf.nist.gov/10.6.E7
-
-    Examples
-    --------
-
-    Compute the Bessel function of the first kind of order 0 and
-    its first two derivatives at 1.
-
-    >>> from scipy.special import jvp
-    >>> jvp(0, 1, 0), jvp(0, 1, 1), jvp(0, 1, 2)
-    (0.7651976865579666, -0.44005058574493355, -0.3251471008130331)
-
-    Compute the first derivative of the Bessel function of the first
-    kind for several orders at 1 by providing an array for `v`.
-
-    >>> jvp([0, 1, 2], 1, 1)
-    array([-0.44005059,  0.3251471 ,  0.21024362])
-
-    Compute the first derivative of the Bessel function of the first
-    kind of order 0 at several points by providing an array for `z`.
-
-    >>> import numpy as np
-    >>> points = np.array([0., 1.5, 3.])
-    >>> jvp(0, points, 1)
-    array([-0.        , -0.55793651, -0.33905896])
-
-    Plot the Bessel function of the first kind of order 1 and its
-    first three derivatives.
-
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(-10, 10, 1000)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, jvp(1, x, 0), label=r"$J_1$")
-    >>> ax.plot(x, jvp(1, x, 1), label=r"$J_1'$")
-    >>> ax.plot(x, jvp(1, x, 2), label=r"$J_1''$")
-    >>> ax.plot(x, jvp(1, x, 3), label=r"$J_1'''$")
-    >>> plt.legend()
-    >>> plt.show()
-    """
-    n = _nonneg_int_or_fail(n, 'n')
-    if n == 0:
-        return jv(v, z)
-    else:
-        return _bessel_diff_formula(v, z, n, jv, -1)
-
-
-def yvp(v, z, n=1):
-    """Compute derivatives of Bessel functions of the second kind.
-
-    Compute the nth derivative of the Bessel function `Yv` with
-    respect to `z`.
-
-    Parameters
-    ----------
-    v : array_like of float
-        Order of Bessel function
-    z : complex
-        Argument at which to evaluate the derivative
-    n : int, default 1
-        Order of derivative. For 0 returns the BEssel function `yv`
-
-    Returns
-    -------
-    scalar or ndarray
-        nth derivative of the Bessel function.
-
-    See Also
-    --------
-    yv : Bessel functions of the second kind
-
-    Notes
-    -----
-    The derivative is computed using the relation DLFM 10.6.7 [2]_.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    .. [2] NIST Digital Library of Mathematical Functions.
-           https://dlmf.nist.gov/10.6.E7
-
-    Examples
-    --------
-    Compute the Bessel function of the second kind of order 0 and
-    its first two derivatives at 1.
-
-    >>> from scipy.special import yvp
-    >>> yvp(0, 1, 0), yvp(0, 1, 1), yvp(0, 1, 2)
-    (0.088256964215677, 0.7812128213002889, -0.8694697855159659)
-
-    Compute the first derivative of the Bessel function of the second
-    kind for several orders at 1 by providing an array for `v`.
-
-    >>> yvp([0, 1, 2], 1, 1)
-    array([0.78121282, 0.86946979, 2.52015239])
-
-    Compute the first derivative of the Bessel function of the
-    second kind of order 0 at several points by providing an array for `z`.
-
-    >>> import numpy as np
-    >>> points = np.array([0.5, 1.5, 3.])
-    >>> yvp(0, points, 1)
-    array([ 1.47147239,  0.41230863, -0.32467442])
-
-    Plot the Bessel function of the second kind of order 1 and its
-    first three derivatives.
-
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(0, 5, 1000)
-    >>> x[0] += 1e-15
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, yvp(1, x, 0), label=r"$Y_1$")
-    >>> ax.plot(x, yvp(1, x, 1), label=r"$Y_1'$")
-    >>> ax.plot(x, yvp(1, x, 2), label=r"$Y_1''$")
-    >>> ax.plot(x, yvp(1, x, 3), label=r"$Y_1'''$")
-    >>> ax.set_ylim(-10, 10)
-    >>> plt.legend()
-    >>> plt.show()
-    """
-    n = _nonneg_int_or_fail(n, 'n')
-    if n == 0:
-        return yv(v, z)
-    else:
-        return _bessel_diff_formula(v, z, n, yv, -1)
-
-
-def kvp(v, z, n=1):
-    """Compute derivatives of real-order modified Bessel function Kv(z)
-
-    Kv(z) is the modified Bessel function of the second kind.
-    Derivative is calculated with respect to `z`.
-
-    Parameters
-    ----------
-    v : array_like of float
-        Order of Bessel function
-    z : array_like of complex
-        Argument at which to evaluate the derivative
-    n : int, default 1
-        Order of derivative. For 0 returns the Bessel function `kv` itself.
-
-    Returns
-    -------
-    out : ndarray
-        The results
-
-    See Also
-    --------
-    kv
-
-    Notes
-    -----
-    The derivative is computed using the relation DLFM 10.29.5 [2]_.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 6.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    .. [2] NIST Digital Library of Mathematical Functions.
-           https://dlmf.nist.gov/10.29.E5
-
-    Examples
-    --------
-    Compute the modified bessel function of the second kind of order 0 and
-    its first two derivatives at 1.
-
-    >>> from scipy.special import kvp
-    >>> kvp(0, 1, 0), kvp(0, 1, 1), kvp(0, 1, 2)
-    (0.42102443824070834, -0.6019072301972346, 1.0229316684379428)
-
-    Compute the first derivative of the modified Bessel function of the second
-    kind for several orders at 1 by providing an array for `v`.
-
-    >>> kvp([0, 1, 2], 1, 1)
-    array([-0.60190723, -1.02293167, -3.85158503])
-
-    Compute the first derivative of the modified Bessel function of the
-    second kind of order 0 at several points by providing an array for `z`.
-
-    >>> import numpy as np
-    >>> points = np.array([0.5, 1.5, 3.])
-    >>> kvp(0, points, 1)
-    array([-1.65644112, -0.2773878 , -0.04015643])
-
-    Plot the modified bessel function of the second kind and its
-    first three derivatives.
-
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(0, 5, 1000)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, kvp(1, x, 0), label=r"$K_1$")
-    >>> ax.plot(x, kvp(1, x, 1), label=r"$K_1'$")
-    >>> ax.plot(x, kvp(1, x, 2), label=r"$K_1''$")
-    >>> ax.plot(x, kvp(1, x, 3), label=r"$K_1'''$")
-    >>> ax.set_ylim(-2.5, 2.5)
-    >>> plt.legend()
-    >>> plt.show()
-    """
-    n = _nonneg_int_or_fail(n, 'n')
-    if n == 0:
-        return kv(v, z)
-    else:
-        return (-1)**n * _bessel_diff_formula(v, z, n, kv, 1)
-
-
-def ivp(v, z, n=1):
-    """Compute derivatives of modified Bessel functions of the first kind.
-
-    Compute the nth derivative of the modified Bessel function `Iv`
-    with respect to `z`.
-
-    Parameters
-    ----------
-    v : array_like or float
-        Order of Bessel function
-    z : array_like
-        Argument at which to evaluate the derivative; can be real or
-        complex.
-    n : int, default 1
-        Order of derivative. For 0, returns the Bessel function `iv` itself.
-
-    Returns
-    -------
-    scalar or ndarray
-        nth derivative of the modified Bessel function.
-
-    See Also
-    --------
-    iv
-
-    Notes
-    -----
-    The derivative is computed using the relation DLFM 10.29.5 [2]_.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 6.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    .. [2] NIST Digital Library of Mathematical Functions.
-           https://dlmf.nist.gov/10.29.E5
-
-    Examples
-    --------
-    Compute the modified Bessel function of the first kind of order 0 and
-    its first two derivatives at 1.
-
-    >>> from scipy.special import ivp
-    >>> ivp(0, 1, 0), ivp(0, 1, 1), ivp(0, 1, 2)
-    (1.2660658777520084, 0.565159103992485, 0.7009067737595233)
-
-    Compute the first derivative of the modified Bessel function of the first
-    kind for several orders at 1 by providing an array for `v`.
-
-    >>> ivp([0, 1, 2], 1, 1)
-    array([0.5651591 , 0.70090677, 0.29366376])
-
-    Compute the first derivative of the modified Bessel function of the
-    first kind of order 0 at several points by providing an array for `z`.
-
-    >>> import numpy as np
-    >>> points = np.array([0., 1.5, 3.])
-    >>> ivp(0, points, 1)
-    array([0.        , 0.98166643, 3.95337022])
-
-    Plot the modified Bessel function of the first kind of order 1 and its
-    first three derivatives.
-
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.linspace(-5, 5, 1000)
-    >>> fig, ax = plt.subplots()
-    >>> ax.plot(x, ivp(1, x, 0), label=r"$I_1$")
-    >>> ax.plot(x, ivp(1, x, 1), label=r"$I_1'$")
-    >>> ax.plot(x, ivp(1, x, 2), label=r"$I_1''$")
-    >>> ax.plot(x, ivp(1, x, 3), label=r"$I_1'''$")
-    >>> plt.legend()
-    >>> plt.show()
-    """
-    n = _nonneg_int_or_fail(n, 'n')
-    if n == 0:
-        return iv(v, z)
-    else:
-        return _bessel_diff_formula(v, z, n, iv, 1)
-
-
-def h1vp(v, z, n=1):
-    """Compute derivatives of Hankel function H1v(z) with respect to `z`.
-
-    Parameters
-    ----------
-    v : array_like
-        Order of Hankel function
-    z : array_like
-        Argument at which to evaluate the derivative. Can be real or
-        complex.
-    n : int, default 1
-        Order of derivative. For 0 returns the Hankel function `h1v` itself.
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the derivative of the Hankel function.
-
-    See Also
-    --------
-    hankel1
-
-    Notes
-    -----
-    The derivative is computed using the relation DLFM 10.6.7 [2]_.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    .. [2] NIST Digital Library of Mathematical Functions.
-           https://dlmf.nist.gov/10.6.E7
-
-    Examples
-    --------
-    Compute the Hankel function of the first kind of order 0 and
-    its first two derivatives at 1.
-
-    >>> from scipy.special import h1vp
-    >>> h1vp(0, 1, 0), h1vp(0, 1, 1), h1vp(0, 1, 2)
-    ((0.7651976865579664+0.088256964215677j),
-     (-0.44005058574493355+0.7812128213002889j),
-     (-0.3251471008130329-0.8694697855159659j))
-
-    Compute the first derivative of the Hankel function of the first kind
-    for several orders at 1 by providing an array for `v`.
-
-    >>> h1vp([0, 1, 2], 1, 1)
-    array([-0.44005059+0.78121282j,  0.3251471 +0.86946979j,
-           0.21024362+2.52015239j])
-
-    Compute the first derivative of the Hankel function of the first kind
-    of order 0 at several points by providing an array for `z`.
-
-    >>> import numpy as np
-    >>> points = np.array([0.5, 1.5, 3.])
-    >>> h1vp(0, points, 1)
-    array([-0.24226846+1.47147239j, -0.55793651+0.41230863j,
-           -0.33905896-0.32467442j])
-    """
-    n = _nonneg_int_or_fail(n, 'n')
-    if n == 0:
-        return hankel1(v, z)
-    else:
-        return _bessel_diff_formula(v, z, n, hankel1, -1)
-
-
-def h2vp(v, z, n=1):
-    """Compute derivatives of Hankel function H2v(z) with respect to `z`.
-
-    Parameters
-    ----------
-    v : array_like
-        Order of Hankel function
-    z : array_like
-        Argument at which to evaluate the derivative. Can be real or
-        complex.
-    n : int, default 1
-        Order of derivative. For 0 returns the Hankel function `h2v` itself.
-
-    Returns
-    -------
-    scalar or ndarray
-        Values of the derivative of the Hankel function.
-
-    See Also
-    --------
-    hankel2
-
-    Notes
-    -----
-    The derivative is computed using the relation DLFM 10.6.7 [2]_.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 5.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    .. [2] NIST Digital Library of Mathematical Functions.
-           https://dlmf.nist.gov/10.6.E7
-
-    Examples
-    --------
-    Compute the Hankel function of the second kind of order 0 and
-    its first two derivatives at 1.
-
-    >>> from scipy.special import h2vp
-    >>> h2vp(0, 1, 0), h2vp(0, 1, 1), h2vp(0, 1, 2)
-    ((0.7651976865579664-0.088256964215677j),
-     (-0.44005058574493355-0.7812128213002889j),
-     (-0.3251471008130329+0.8694697855159659j))
-
-    Compute the first derivative of the Hankel function of the second kind
-    for several orders at 1 by providing an array for `v`.
-
-    >>> h2vp([0, 1, 2], 1, 1)
-    array([-0.44005059-0.78121282j,  0.3251471 -0.86946979j,
-           0.21024362-2.52015239j])
-
-    Compute the first derivative of the Hankel function of the second kind
-    of order 0 at several points by providing an array for `z`.
-
-    >>> import numpy as np
-    >>> points = np.array([0.5, 1.5, 3.])
-    >>> h2vp(0, points, 1)
-    array([-0.24226846-1.47147239j, -0.55793651-0.41230863j,
-           -0.33905896+0.32467442j])
-    """
-    n = _nonneg_int_or_fail(n, 'n')
-    if n == 0:
-        return hankel2(v, z)
-    else:
-        return _bessel_diff_formula(v, z, n, hankel2, -1)
-
-
-def riccati_jn(n, x):
-    r"""Compute Ricatti-Bessel function of the first kind and its derivative.
-
-    The Ricatti-Bessel function of the first kind is defined as :math:`x
-    j_n(x)`, where :math:`j_n` is the spherical Bessel function of the first
-    kind of order :math:`n`.
-
-    This function computes the value and first derivative of the
-    Ricatti-Bessel function for all orders up to and including `n`.
-
-    Parameters
-    ----------
-    n : int
-        Maximum order of function to compute
-    x : float
-        Argument at which to evaluate
-
-    Returns
-    -------
-    jn : ndarray
-        Value of j0(x), ..., jn(x)
-    jnp : ndarray
-        First derivative j0'(x), ..., jn'(x)
-
-    Notes
-    -----
-    The computation is carried out via backward recurrence, using the
-    relation DLMF 10.51.1 [2]_.
-
-    Wrapper for a Fortran routine created by Shanjie Zhang and Jianming
-    Jin [1]_.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-    .. [2] NIST Digital Library of Mathematical Functions.
-           https://dlmf.nist.gov/10.51.E1
-
-    """
-    if not (isscalar(n) and isscalar(x)):
-        raise ValueError("arguments must be scalars.")
-    n = _nonneg_int_or_fail(n, 'n', strict=False)
-    if (n == 0):
-        n1 = 1
-    else:
-        n1 = n
-
-    jn = np.empty((n1 + 1,), dtype = np.float64)
-    jnp = np.empty_like(jn)
-
-    _rctj(x, out = (jn, jnp))
-    return jn[:(n+1)], jnp[:(n+1)]
-
-
-def riccati_yn(n, x):
-    """Compute Ricatti-Bessel function of the second kind and its derivative.
-
-    The Ricatti-Bessel function of the second kind is defined as :math:`x
-    y_n(x)`, where :math:`y_n` is the spherical Bessel function of the second
-    kind of order :math:`n`.
-
-    This function computes the value and first derivative of the function for
-    all orders up to and including `n`.
-
-    Parameters
-    ----------
-    n : int
-        Maximum order of function to compute
-    x : float
-        Argument at which to evaluate
-
-    Returns
-    -------
-    yn : ndarray
-        Value of y0(x), ..., yn(x)
-    ynp : ndarray
-        First derivative y0'(x), ..., yn'(x)
-
-    Notes
-    -----
-    The computation is carried out via ascending recurrence, using the
-    relation DLMF 10.51.1 [2]_.
-
-    Wrapper for a Fortran routine created by Shanjie Zhang and Jianming
-    Jin [1]_.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-    .. [2] NIST Digital Library of Mathematical Functions.
-           https://dlmf.nist.gov/10.51.E1
-
-    """
-    if not (isscalar(n) and isscalar(x)):
-        raise ValueError("arguments must be scalars.")
-    n = _nonneg_int_or_fail(n, 'n', strict=False)
-    if (n == 0):
-        n1 = 1
-    else:
-        n1 = n
-
-    yn = np.empty((n1 + 1,), dtype = np.float64)
-    ynp = np.empty_like(yn)
-    _rcty(x, out = (yn, ynp))
-
-    return yn[:(n+1)], ynp[:(n+1)]
-
-
-def erf_zeros(nt):
-    """Compute the first nt zero in the first quadrant, ordered by absolute value.
-
-    Zeros in the other quadrants can be obtained by using the symmetries
-    erf(-z) = erf(z) and erf(conj(z)) = conj(erf(z)).
-
-
-    Parameters
-    ----------
-    nt : int
-        The number of zeros to compute
-
-    Returns
-    -------
-    The locations of the zeros of erf : ndarray (complex)
-        Complex values at which zeros of erf(z)
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    >>> from scipy import special
-    >>> special.erf_zeros(1)
-    array([1.45061616+1.880943j])
-
-    Check that erf is (close to) zero for the value returned by erf_zeros
-
-    >>> special.erf(special.erf_zeros(1))
-    array([4.95159469e-14-1.16407394e-16j])
-
-    """
-    if (floor(nt) != nt) or (nt <= 0) or not isscalar(nt):
-        raise ValueError("Argument must be positive scalar integer.")
-    return _specfun.cerzo(nt)
-
-
-def fresnelc_zeros(nt):
-    """Compute nt complex zeros of cosine Fresnel integral C(z).
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute
-
-    Returns
-    -------
-    fresnelc_zeros: ndarray
-        Zeros of the cosine Fresnel integral
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if (floor(nt) != nt) or (nt <= 0) or not isscalar(nt):
-        raise ValueError("Argument must be positive scalar integer.")
-    return _specfun.fcszo(1, nt)
-
-
-def fresnels_zeros(nt):
-    """Compute nt complex zeros of sine Fresnel integral S(z).
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute
-
-    Returns
-    -------
-    fresnels_zeros: ndarray
-        Zeros of the sine Fresnel integral
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if (floor(nt) != nt) or (nt <= 0) or not isscalar(nt):
-        raise ValueError("Argument must be positive scalar integer.")
-    return _specfun.fcszo(2, nt)
-
-
-def fresnel_zeros(nt):
-    """Compute nt complex zeros of sine and cosine Fresnel integrals S(z) and C(z).
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute
-
-    Returns
-    -------
-    zeros_sine: ndarray
-        Zeros of the sine Fresnel integral
-    zeros_cosine : ndarray
-        Zeros of the cosine Fresnel integral
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if (floor(nt) != nt) or (nt <= 0) or not isscalar(nt):
-        raise ValueError("Argument must be positive scalar integer.")
-    return _specfun.fcszo(2, nt), _specfun.fcszo(1, nt)
-
-
-def assoc_laguerre(x, n, k=0.0):
-    """Compute the generalized (associated) Laguerre polynomial of degree n and order k.
-
-    The polynomial :math:`L^{(k)}_n(x)` is orthogonal over ``[0, inf)``,
-    with weighting function ``exp(-x) * x**k`` with ``k > -1``.
-
-    Parameters
-    ----------
-    x : float or ndarray
-        Points where to evaluate the Laguerre polynomial
-    n : int
-        Degree of the Laguerre polynomial
-    k : int
-        Order of the Laguerre polynomial
-
-    Returns
-    -------
-    assoc_laguerre: float or ndarray
-        Associated laguerre polynomial values
-
-    Notes
-    -----
-    `assoc_laguerre` is a simple wrapper around `eval_genlaguerre`, with
-    reversed argument order ``(x, n, k=0.0) --> (n, k, x)``.
-
-    """
-    return _ufuncs.eval_genlaguerre(n, k, x)
-
-
-digamma = psi
-
-
-def polygamma(n, x):
-    r"""Polygamma functions.
-
-    Defined as :math:`\psi^{(n)}(x)` where :math:`\psi` is the
-    `digamma` function. See [dlmf]_ for details.
-
-    Parameters
-    ----------
-    n : array_like
-        The order of the derivative of the digamma function; must be
-        integral
-    x : array_like
-        Real valued input
-
-    Returns
-    -------
-    ndarray
-        Function results
-
-    See Also
-    --------
-    digamma
-
-    References
-    ----------
-    .. [dlmf] NIST, Digital Library of Mathematical Functions,
-        https://dlmf.nist.gov/5.15
-
-    Examples
-    --------
-    >>> from scipy import special
-    >>> x = [2, 3, 25.5]
-    >>> special.polygamma(1, x)
-    array([ 0.64493407,  0.39493407,  0.03999467])
-    >>> special.polygamma(0, x) == special.psi(x)
-    array([ True,  True,  True], dtype=bool)
-
-    """
-    n, x = asarray(n), asarray(x)
-    fac2 = (-1.0)**(n+1) * gamma(n+1.0) * zeta(n+1, x)
-    return where(n == 0, psi(x), fac2)
-
-
-def mathieu_even_coef(m, q):
-    r"""Fourier coefficients for even Mathieu and modified Mathieu functions.
-
-    The Fourier series of the even solutions of the Mathieu differential
-    equation are of the form
-
-    .. math:: \mathrm{ce}_{2n}(z, q) = \sum_{k=0}^{\infty} A_{(2n)}^{(2k)} \cos 2kz
-
-    .. math:: \mathrm{ce}_{2n+1}(z, q) =
-              \sum_{k=0}^{\infty} A_{(2n+1)}^{(2k+1)} \cos (2k+1)z
-
-    This function returns the coefficients :math:`A_{(2n)}^{(2k)}` for even
-    input m=2n, and the coefficients :math:`A_{(2n+1)}^{(2k+1)}` for odd input
-    m=2n+1.
-
-    Parameters
-    ----------
-    m : int
-        Order of Mathieu functions.  Must be non-negative.
-    q : float (>=0)
-        Parameter of Mathieu functions.  Must be non-negative.
-
-    Returns
-    -------
-    Ak : ndarray
-        Even or odd Fourier coefficients, corresponding to even or odd m.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-    .. [2] NIST Digital Library of Mathematical Functions
-           https://dlmf.nist.gov/28.4#i
-
-    """
-    if not (isscalar(m) and isscalar(q)):
-        raise ValueError("m and q must be scalars.")
-    if (q < 0):
-        raise ValueError("q >=0")
-    if (m != floor(m)) or (m < 0):
-        raise ValueError("m must be an integer >=0.")
-
-    if (q <= 1):
-        qm = 7.5 + 56.1*sqrt(q) - 134.7*q + 90.7*sqrt(q)*q
-    else:
-        qm = 17.0 + 3.1*sqrt(q) - .126*q + .0037*sqrt(q)*q
-    km = int(qm + 0.5*m)
-    if km > 251:
-        warnings.warn("Too many predicted coefficients.", RuntimeWarning, stacklevel=2)
-    kd = 1
-    m = int(floor(m))
-    if m % 2:
-        kd = 2
-
-    a = mathieu_a(m, q)
-    fc = _specfun.fcoef(kd, m, q, a)
-    return fc[:km]
-
-
-def mathieu_odd_coef(m, q):
-    r"""Fourier coefficients for even Mathieu and modified Mathieu functions.
-
-    The Fourier series of the odd solutions of the Mathieu differential
-    equation are of the form
-
-    .. math:: \mathrm{se}_{2n+1}(z, q) =
-              \sum_{k=0}^{\infty} B_{(2n+1)}^{(2k+1)} \sin (2k+1)z
-
-    .. math:: \mathrm{se}_{2n+2}(z, q) =
-              \sum_{k=0}^{\infty} B_{(2n+2)}^{(2k+2)} \sin (2k+2)z
-
-    This function returns the coefficients :math:`B_{(2n+2)}^{(2k+2)}` for even
-    input m=2n+2, and the coefficients :math:`B_{(2n+1)}^{(2k+1)}` for odd
-    input m=2n+1.
-
-    Parameters
-    ----------
-    m : int
-        Order of Mathieu functions.  Must be non-negative.
-    q : float (>=0)
-        Parameter of Mathieu functions.  Must be non-negative.
-
-    Returns
-    -------
-    Bk : ndarray
-        Even or odd Fourier coefficients, corresponding to even or odd m.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not (isscalar(m) and isscalar(q)):
-        raise ValueError("m and q must be scalars.")
-    if (q < 0):
-        raise ValueError("q >=0")
-    if (m != floor(m)) or (m <= 0):
-        raise ValueError("m must be an integer > 0")
-
-    if (q <= 1):
-        qm = 7.5 + 56.1*sqrt(q) - 134.7*q + 90.7*sqrt(q)*q
-    else:
-        qm = 17.0 + 3.1*sqrt(q) - .126*q + .0037*sqrt(q)*q
-    km = int(qm + 0.5*m)
-    if km > 251:
-        warnings.warn("Too many predicted coefficients.", RuntimeWarning, stacklevel=2)
-    kd = 4
-    m = int(floor(m))
-    if m % 2:
-        kd = 3
-
-    b = mathieu_b(m, q)
-    fc = _specfun.fcoef(kd, m, q, b)
-    return fc[:km]
-
-
-def lpmn(m, n, z):
-    """Sequence of associated Legendre functions of the first kind.
-
-    Computes the associated Legendre function of the first kind of order m and
-    degree n, ``Pmn(z)`` = :math:`P_n^m(z)`, and its derivative, ``Pmn'(z)``.
-    Returns two arrays of size ``(m+1, n+1)`` containing ``Pmn(z)`` and
-    ``Pmn'(z)`` for all orders from ``0..m`` and degrees from ``0..n``.
-
-    This function takes a real argument ``z``. For complex arguments ``z``
-    use clpmn instead.
-
-    Parameters
-    ----------
-    m : int
-       ``|m| <= n``; the order of the Legendre function.
-    n : int
-       where ``n >= 0``; the degree of the Legendre function.  Often
-       called ``l`` (lower case L) in descriptions of the associated
-       Legendre function
-    z : array_like
-        Input value.
-
-    Returns
-    -------
-    Pmn_z : (m+1, n+1) array
-       Values for all orders 0..m and degrees 0..n
-    Pmn_d_z : (m+1, n+1) array
-       Derivatives for all orders 0..m and degrees 0..n
-
-    See Also
-    --------
-    clpmn: associated Legendre functions of the first kind for complex z
-
-    Notes
-    -----
-    In the interval (-1, 1), Ferrer's function of the first kind is
-    returned. The phase convention used for the intervals (1, inf)
-    and (-inf, -1) is such that the result is always real.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-    .. [2] NIST Digital Library of Mathematical Functions
-           https://dlmf.nist.gov/14.3
-
-    """
-    n = _nonneg_int_or_fail(n, 'n', strict=False)
-    if not isscalar(m) or (abs(m) > n):
-        raise ValueError("m must be <= n.")
-    if not isscalar(n) or (n < 0):
-        raise ValueError("n must be a non-negative integer.")
-    if np.iscomplexobj(z):
-        raise ValueError("Argument must be real. Use clpmn instead.")
-
-    m, n = int(m), int(n)  # Convert to int to maintain backwards compatibility.
-    if (m < 0):
-        m_signbit = True
-        m_abs = -m
-    else:
-        m_signbit = False
-        m_abs = m
-
-    z = np.asarray(z)
-    if (not np.issubdtype(z.dtype, np.inexact)):
-        z = z.astype(np.float64)
-
-    p = np.empty((m_abs + 1, n + 1) + z.shape, dtype=np.float64)
-    pd = np.empty_like(p)
-    if (z.ndim == 0):
-        _lpmn(z, m_signbit, out = (p, pd))
-    else:
-        _lpmn(z, m_signbit, out = (np.moveaxis(p, (0, 1), (-2, -1)),
-            np.moveaxis(pd, (0, 1), (-2, -1))))  # new axes must be last for the ufunc
-
-    return p, pd
-
-
-def clpmn(m, n, z, type=3):
-    """Associated Legendre function of the first kind for complex arguments.
-
-    Computes the associated Legendre function of the first kind of order m and
-    degree n, ``Pmn(z)`` = :math:`P_n^m(z)`, and its derivative, ``Pmn'(z)``.
-    Returns two arrays of size ``(m+1, n+1)`` containing ``Pmn(z)`` and
-    ``Pmn'(z)`` for all orders from ``0..m`` and degrees from ``0..n``.
-
-    Parameters
-    ----------
-    m : int
-       ``|m| <= n``; the order of the Legendre function.
-    n : int
-       where ``n >= 0``; the degree of the Legendre function.  Often
-       called ``l`` (lower case L) in descriptions of the associated
-       Legendre function
-    z : array_like, float or complex
-        Input value.
-    type : int, optional
-       takes values 2 or 3
-       2: cut on the real axis ``|x| > 1``
-       3: cut on the real axis ``-1 < x < 1`` (default)
-
-    Returns
-    -------
-    Pmn_z : (m+1, n+1) array
-       Values for all orders ``0..m`` and degrees ``0..n``
-    Pmn_d_z : (m+1, n+1) array
-       Derivatives for all orders ``0..m`` and degrees ``0..n``
-
-    See Also
-    --------
-    lpmn: associated Legendre functions of the first kind for real z
-
-    Notes
-    -----
-    By default, i.e. for ``type=3``, phase conventions are chosen according
-    to [1]_ such that the function is analytic. The cut lies on the interval
-    (-1, 1). Approaching the cut from above or below in general yields a phase
-    factor with respect to Ferrer's function of the first kind
-    (cf. `lpmn`).
-
-    For ``type=2`` a cut at ``|x| > 1`` is chosen. Approaching the real values
-    on the interval (-1, 1) in the complex plane yields Ferrer's function
-    of the first kind.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-    .. [2] NIST Digital Library of Mathematical Functions
-           https://dlmf.nist.gov/14.21
-
-    """
-    if not isscalar(m) or (abs(m) > n):
-        raise ValueError("m must be <= n.")
-    if not isscalar(n) or (n < 0):
-        raise ValueError("n must be a non-negative integer.")
-    if not (type == 2 or type == 3):
-        raise ValueError("type must be either 2 or 3.")
-
-    m, n = int(m), int(n)  # Convert to int to maintain backwards compatibility.
-    if (m < 0):
-        mp = -m
-        m_signbit = True
-    else:
-        mp = m
-        m_signbit = False
-
-    z = np.asarray(z)
-    if (not np.issubdtype(z.dtype, np.inexact)):
-        z = z.astype(np.complex128)
-
-    p = np.empty((mp + 1, n + 1) + z.shape, dtype=np.complex128)
-    pd = np.empty_like(p)
-    if (z.ndim == 0):
-        _clpmn(z, type, m_signbit, out = (p, pd))
-    else:
-        _clpmn(z, type, m_signbit, out = (np.moveaxis(p, (0, 1), (-2, -1)),
-            np.moveaxis(pd, (0, 1), (-2, -1))))  # new axes must be last for the ufunc
-
-    return p, pd
-
-
-def lqmn(m, n, z):
-    """Sequence of associated Legendre functions of the second kind.
-
-    Computes the associated Legendre function of the second kind of order m and
-    degree n, ``Qmn(z)`` = :math:`Q_n^m(z)`, and its derivative, ``Qmn'(z)``.
-    Returns two arrays of size ``(m+1, n+1)`` containing ``Qmn(z)`` and
-    ``Qmn'(z)`` for all orders from ``0..m`` and degrees from ``0..n``.
-
-    Parameters
-    ----------
-    m : int
-       ``|m| <= n``; the order of the Legendre function.
-    n : int
-       where ``n >= 0``; the degree of the Legendre function.  Often
-       called ``l`` (lower case L) in descriptions of the associated
-       Legendre function
-    z : array_like, complex
-        Input value.
-
-    Returns
-    -------
-    Qmn_z : (m+1, n+1) array
-       Values for all orders 0..m and degrees 0..n
-    Qmn_d_z : (m+1, n+1) array
-       Derivatives for all orders 0..m and degrees 0..n
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(m) or (m < 0):
-        raise ValueError("m must be a non-negative integer.")
-    if not isscalar(n) or (n < 0):
-        raise ValueError("n must be a non-negative integer.")
-
-    m, n = int(m), int(n)  # Convert to int to maintain backwards compatibility.
-    # Ensure neither m nor n == 0
-    mm = max(1, m)
-    nn = max(1, n)
-
-    z = np.asarray(z)
-    if (not np.issubdtype(z.dtype, np.inexact)):
-        z = z.astype(np.float64)
-
-    if np.iscomplexobj(z):
-        q = np.empty((mm + 1, nn + 1) + z.shape, dtype = np.complex128)
-    else:
-        q = np.empty((mm + 1, nn + 1) + z.shape, dtype = np.float64)
-    qd = np.empty_like(q)
-    if (z.ndim == 0):
-        _lqmn(z, out = (q, qd))
-    else:
-        _lqmn(z, out = (np.moveaxis(q, (0, 1), (-2, -1)),
-            np.moveaxis(qd, (0, 1), (-2, -1))))  # new axes must be last for the ufunc
-
-    return q[:(m+1), :(n+1)], qd[:(m+1), :(n+1)]
-
-
-def bernoulli(n):
-    """Bernoulli numbers B0..Bn (inclusive).
-
-    Parameters
-    ----------
-    n : int
-        Indicated the number of terms in the Bernoulli series to generate.
-
-    Returns
-    -------
-    ndarray
-        The Bernoulli numbers ``[B(0), B(1), ..., B(n)]``.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-    .. [2] "Bernoulli number", Wikipedia, https://en.wikipedia.org/wiki/Bernoulli_number
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import bernoulli, zeta
-    >>> bernoulli(4)
-    array([ 1.        , -0.5       ,  0.16666667,  0.        , -0.03333333])
-
-    The Wikipedia article ([2]_) points out the relationship between the
-    Bernoulli numbers and the zeta function, ``B_n^+ = -n * zeta(1 - n)``
-    for ``n > 0``:
-
-    >>> n = np.arange(1, 5)
-    >>> -n * zeta(1 - n)
-    array([ 0.5       ,  0.16666667, -0.        , -0.03333333])
-
-    Note that, in the notation used in the wikipedia article,
-    `bernoulli` computes ``B_n^-`` (i.e. it used the convention that
-    ``B_1`` is -1/2).  The relation given above is for ``B_n^+``, so the
-    sign of 0.5 does not match the output of ``bernoulli(4)``.
-
-    """
-    if not isscalar(n) or (n < 0):
-        raise ValueError("n must be a non-negative integer.")
-    n = int(n)
-    if (n < 2):
-        n1 = 2
-    else:
-        n1 = n
-    return _specfun.bernob(int(n1))[:(n+1)]
-
-
-def euler(n):
-    """Euler numbers E(0), E(1), ..., E(n).
-
-    The Euler numbers [1]_ are also known as the secant numbers.
-
-    Because ``euler(n)`` returns floating point values, it does not give
-    exact values for large `n`.  The first inexact value is E(22).
-
-    Parameters
-    ----------
-    n : int
-        The highest index of the Euler number to be returned.
-
-    Returns
-    -------
-    ndarray
-        The Euler numbers [E(0), E(1), ..., E(n)].
-        The odd Euler numbers, which are all zero, are included.
-
-    References
-    ----------
-    .. [1] Sequence A122045, The On-Line Encyclopedia of Integer Sequences,
-           https://oeis.org/A122045
-    .. [2] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import euler
-    >>> euler(6)
-    array([  1.,   0.,  -1.,   0.,   5.,   0., -61.])
-
-    >>> euler(13).astype(np.int64)
-    array([      1,       0,      -1,       0,       5,       0,     -61,
-                 0,    1385,       0,  -50521,       0, 2702765,       0])
-
-    >>> euler(22)[-1]  # Exact value of E(22) is -69348874393137901.
-    -69348874393137976.0
-
-    """
-    if not isscalar(n) or (n < 0):
-        raise ValueError("n must be a non-negative integer.")
-    n = int(n)
-    if (n < 2):
-        n1 = 2
-    else:
-        n1 = n
-    return _specfun.eulerb(n1)[:(n+1)]
-
-
-def lpn(n, z):
-    """Legendre function of the first kind.
-
-    Compute sequence of Legendre functions of the first kind (polynomials),
-    Pn(z) and derivatives for all degrees from 0 to n (inclusive).
-
-    See also special.legendre for polynomial class.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    n = _nonneg_int_or_fail(n, 'n', strict=False)
-
-    z = np.asarray(z)
-    if (not np.issubdtype(z.dtype, np.inexact)):
-        z = z.astype(np.float64)
-
-    pn = np.empty((n + 1,) + z.shape, dtype=z.dtype)
-    pd = np.empty_like(pn)
-    if (z.ndim == 0):
-        _lpn(z, out = (pn, pd))
-    else:
-        _lpn(z, out = (np.moveaxis(pn, 0, -1),
-            np.moveaxis(pd, 0, -1))) # new axes must be last for the ufunc
-
-    return pn, pd
-
-
-def lqn(n, z):
-    """Legendre function of the second kind.
-
-    Compute sequence of Legendre functions of the second kind, Qn(z) and
-    derivatives for all degrees from 0 to n (inclusive).
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    n = _nonneg_int_or_fail(n, 'n', strict=False)
-    if (n < 1):
-        n1 = 1
-    else:
-        n1 = n
-
-    z = np.asarray(z)
-    if (not np.issubdtype(z.dtype, np.inexact)):
-        z = z.astype(float)
-
-    if np.iscomplexobj(z):
-        qn = np.empty((n1 + 1,) + z.shape, dtype=np.complex128)
-    else:
-        qn = np.empty((n1 + 1,) + z.shape, dtype=np.float64)
-    qd = np.empty_like(qn)
-    if (z.ndim == 0):
-        _lqn(z, out = (qn, qd))
-    else:
-        _lqn(z, out = (np.moveaxis(qn, 0, -1),
-            np.moveaxis(qd, 0, -1))) # new axes must be last for the ufunc
-
-    return qn[:(n+1)], qd[:(n+1)]
-
-
-def ai_zeros(nt):
-    """
-    Compute `nt` zeros and values of the Airy function Ai and its derivative.
-
-    Computes the first `nt` zeros, `a`, of the Airy function Ai(x);
-    first `nt` zeros, `ap`, of the derivative of the Airy function Ai'(x);
-    the corresponding values Ai(a');
-    and the corresponding values Ai'(a).
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute
-
-    Returns
-    -------
-    a : ndarray
-        First `nt` zeros of Ai(x)
-    ap : ndarray
-        First `nt` zeros of Ai'(x)
-    ai : ndarray
-        Values of Ai(x) evaluated at first `nt` zeros of Ai'(x)
-    aip : ndarray
-        Values of Ai'(x) evaluated at first `nt` zeros of Ai(x)
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    >>> from scipy import special
-    >>> a, ap, ai, aip = special.ai_zeros(3)
-    >>> a
-    array([-2.33810741, -4.08794944, -5.52055983])
-    >>> ap
-    array([-1.01879297, -3.24819758, -4.82009921])
-    >>> ai
-    array([ 0.53565666, -0.41901548,  0.38040647])
-    >>> aip
-    array([ 0.70121082, -0.80311137,  0.86520403])
-
-    """
-    kf = 1
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be a positive integer scalar.")
-    return _specfun.airyzo(nt, kf)
-
-
-def bi_zeros(nt):
-    """
-    Compute `nt` zeros and values of the Airy function Bi and its derivative.
-
-    Computes the first `nt` zeros, b, of the Airy function Bi(x);
-    first `nt` zeros, b', of the derivative of the Airy function Bi'(x);
-    the corresponding values Bi(b');
-    and the corresponding values Bi'(b).
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute
-
-    Returns
-    -------
-    b : ndarray
-        First `nt` zeros of Bi(x)
-    bp : ndarray
-        First `nt` zeros of Bi'(x)
-    bi : ndarray
-        Values of Bi(x) evaluated at first `nt` zeros of Bi'(x)
-    bip : ndarray
-        Values of Bi'(x) evaluated at first `nt` zeros of Bi(x)
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    Examples
-    --------
-    >>> from scipy import special
-    >>> b, bp, bi, bip = special.bi_zeros(3)
-    >>> b
-    array([-1.17371322, -3.2710933 , -4.83073784])
-    >>> bp
-    array([-2.29443968, -4.07315509, -5.51239573])
-    >>> bi
-    array([-0.45494438,  0.39652284, -0.36796916])
-    >>> bip
-    array([ 0.60195789, -0.76031014,  0.83699101])
-
-    """
-    kf = 2
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be a positive integer scalar.")
-    return _specfun.airyzo(nt, kf)
-
-
-def lmbda(v, x):
-    r"""Jahnke-Emden Lambda function, Lambdav(x).
-
-    This function is defined as [2]_,
-
-    .. math:: \Lambda_v(x) = \Gamma(v+1) \frac{J_v(x)}{(x/2)^v},
-
-    where :math:`\Gamma` is the gamma function and :math:`J_v` is the
-    Bessel function of the first kind.
-
-    Parameters
-    ----------
-    v : float
-        Order of the Lambda function
-    x : float
-        Value at which to evaluate the function and derivatives
-
-    Returns
-    -------
-    vl : ndarray
-        Values of Lambda_vi(x), for vi=v-int(v), vi=1+v-int(v), ..., vi=v.
-    dl : ndarray
-        Derivatives Lambda_vi'(x), for vi=v-int(v), vi=1+v-int(v), ..., vi=v.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-    .. [2] Jahnke, E. and Emde, F. "Tables of Functions with Formulae and
-           Curves" (4th ed.), Dover, 1945
-    """
-    if not (isscalar(v) and isscalar(x)):
-        raise ValueError("arguments must be scalars.")
-    if (v < 0):
-        raise ValueError("argument must be > 0.")
-    n = int(v)
-    v0 = v - n
-    if (n < 1):
-        n1 = 1
-    else:
-        n1 = n
-    v1 = n1 + v0
-    if (v != floor(v)):
-        vm, vl, dl = _specfun.lamv(v1, x)
-    else:
-        vm, vl, dl = _specfun.lamn(v1, x)
-    return vl[:(n+1)], dl[:(n+1)]
-
-
-def pbdv_seq(v, x):
-    """Parabolic cylinder functions Dv(x) and derivatives.
-
-    Parameters
-    ----------
-    v : float
-        Order of the parabolic cylinder function
-    x : float
-        Value at which to evaluate the function and derivatives
-
-    Returns
-    -------
-    dv : ndarray
-        Values of D_vi(x), for vi=v-int(v), vi=1+v-int(v), ..., vi=v.
-    dp : ndarray
-        Derivatives D_vi'(x), for vi=v-int(v), vi=1+v-int(v), ..., vi=v.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 13.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not (isscalar(v) and isscalar(x)):
-        raise ValueError("arguments must be scalars.")
-    n = int(v)
-    v0 = v-n
-    if (n < 1):
-        n1 = 1
-    else:
-        n1 = n
-    v1 = n1 + v0
-    dv, dp, pdf, pdd = _specfun.pbdv(v1, x)
-    return dv[:n1+1], dp[:n1+1]
-
-
-def pbvv_seq(v, x):
-    """Parabolic cylinder functions Vv(x) and derivatives.
-
-    Parameters
-    ----------
-    v : float
-        Order of the parabolic cylinder function
-    x : float
-        Value at which to evaluate the function and derivatives
-
-    Returns
-    -------
-    dv : ndarray
-        Values of V_vi(x), for vi=v-int(v), vi=1+v-int(v), ..., vi=v.
-    dp : ndarray
-        Derivatives V_vi'(x), for vi=v-int(v), vi=1+v-int(v), ..., vi=v.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 13.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not (isscalar(v) and isscalar(x)):
-        raise ValueError("arguments must be scalars.")
-    n = int(v)
-    v0 = v-n
-    if (n <= 1):
-        n1 = 1
-    else:
-        n1 = n
-    v1 = n1 + v0
-    dv, dp, pdf, pdd = _specfun.pbvv(v1, x)
-    return dv[:n1+1], dp[:n1+1]
-
-
-def pbdn_seq(n, z):
-    """Parabolic cylinder functions Dn(z) and derivatives.
-
-    Parameters
-    ----------
-    n : int
-        Order of the parabolic cylinder function
-    z : complex
-        Value at which to evaluate the function and derivatives
-
-    Returns
-    -------
-    dv : ndarray
-        Values of D_i(z), for i=0, ..., i=n.
-    dp : ndarray
-        Derivatives D_i'(z), for i=0, ..., i=n.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996, chapter 13.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not (isscalar(n) and isscalar(z)):
-        raise ValueError("arguments must be scalars.")
-    if (floor(n) != n):
-        raise ValueError("n must be an integer.")
-    if (abs(n) <= 1):
-        n1 = 1
-    else:
-        n1 = n
-    cpb, cpd = _specfun.cpbdn(n1, z)
-    return cpb[:n1+1], cpd[:n1+1]
-
-
-def ber_zeros(nt):
-    """Compute nt zeros of the Kelvin function ber.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute. Must be positive.
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the Kelvin function.
-
-    See Also
-    --------
-    ber
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be positive integer scalar.")
-    return _specfun.klvnzo(nt, 1)
-
-
-def bei_zeros(nt):
-    """Compute nt zeros of the Kelvin function bei.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute. Must be positive.
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the Kelvin function.
-
-    See Also
-    --------
-    bei
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be positive integer scalar.")
-    return _specfun.klvnzo(nt, 2)
-
-
-def ker_zeros(nt):
-    """Compute nt zeros of the Kelvin function ker.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute. Must be positive.
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the Kelvin function.
-
-    See Also
-    --------
-    ker
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be positive integer scalar.")
-    return _specfun.klvnzo(nt, 3)
-
-
-def kei_zeros(nt):
-    """Compute nt zeros of the Kelvin function kei.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute. Must be positive.
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the Kelvin function.
-
-    See Also
-    --------
-    kei
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be positive integer scalar.")
-    return _specfun.klvnzo(nt, 4)
-
-
-def berp_zeros(nt):
-    """Compute nt zeros of the derivative of the Kelvin function ber.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute. Must be positive.
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the derivative of the Kelvin function.
-
-    See Also
-    --------
-    ber, berp
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be positive integer scalar.")
-    return _specfun.klvnzo(nt, 5)
-
-
-def beip_zeros(nt):
-    """Compute nt zeros of the derivative of the Kelvin function bei.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute. Must be positive.
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the derivative of the Kelvin function.
-
-    See Also
-    --------
-    bei, beip
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be positive integer scalar.")
-    return _specfun.klvnzo(nt, 6)
-
-
-def kerp_zeros(nt):
-    """Compute nt zeros of the derivative of the Kelvin function ker.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute. Must be positive.
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the derivative of the Kelvin function.
-
-    See Also
-    --------
-    ker, kerp
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be positive integer scalar.")
-    return _specfun.klvnzo(nt, 7)
-
-
-def keip_zeros(nt):
-    """Compute nt zeros of the derivative of the Kelvin function kei.
-
-    Parameters
-    ----------
-    nt : int
-        Number of zeros to compute. Must be positive.
-
-    Returns
-    -------
-    ndarray
-        First `nt` zeros of the derivative of the Kelvin function.
-
-    See Also
-    --------
-    kei, keip
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be positive integer scalar.")
-    return _specfun.klvnzo(nt, 8)
-
-
-def kelvin_zeros(nt):
-    """Compute nt zeros of all Kelvin functions.
-
-    Returned in a length-8 tuple of arrays of length nt.  The tuple contains
-    the arrays of zeros of (ber, bei, ker, kei, ber', bei', ker', kei').
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not isscalar(nt) or (floor(nt) != nt) or (nt <= 0):
-        raise ValueError("nt must be positive integer scalar.")
-    return (_specfun.klvnzo(nt, 1),
-            _specfun.klvnzo(nt, 2),
-            _specfun.klvnzo(nt, 3),
-            _specfun.klvnzo(nt, 4),
-            _specfun.klvnzo(nt, 5),
-            _specfun.klvnzo(nt, 6),
-            _specfun.klvnzo(nt, 7),
-            _specfun.klvnzo(nt, 8))
-
-
-def pro_cv_seq(m, n, c):
-    """Characteristic values for prolate spheroidal wave functions.
-
-    Compute a sequence of characteristic values for the prolate
-    spheroidal wave functions for mode m and n'=m..n and spheroidal
-    parameter c.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not (isscalar(m) and isscalar(n) and isscalar(c)):
-        raise ValueError("Arguments must be scalars.")
-    if (n != floor(n)) or (m != floor(m)):
-        raise ValueError("Modes must be integers.")
-    if (n-m > 199):
-        raise ValueError("Difference between n and m is too large.")
-    maxL = n-m+1
-    return _specfun.segv(m, n, c, 1)[1][:maxL]
-
-
-def obl_cv_seq(m, n, c):
-    """Characteristic values for oblate spheroidal wave functions.
-
-    Compute a sequence of characteristic values for the oblate
-    spheroidal wave functions for mode m and n'=m..n and spheroidal
-    parameter c.
-
-    References
-    ----------
-    .. [1] Zhang, Shanjie and Jin, Jianming. "Computation of Special
-           Functions", John Wiley and Sons, 1996.
-           https://people.sc.fsu.edu/~jburkardt/f77_src/special_functions/special_functions.html
-
-    """
-    if not (isscalar(m) and isscalar(n) and isscalar(c)):
-        raise ValueError("Arguments must be scalars.")
-    if (n != floor(n)) or (m != floor(m)):
-        raise ValueError("Modes must be integers.")
-    if (n-m > 199):
-        raise ValueError("Difference between n and m is too large.")
-    maxL = n-m+1
-    return _specfun.segv(m, n, c, -1)[1][:maxL]
-
-
-def comb(N, k, *, exact=False, repetition=False):
-    """The number of combinations of N things taken k at a time.
-
-    This is often expressed as "N choose k".
-
-    Parameters
-    ----------
-    N : int, ndarray
-        Number of things.
-    k : int, ndarray
-        Number of elements taken.
-    exact : bool, optional
-        For integers, if `exact` is False, then floating point precision is
-        used, otherwise the result is computed exactly.
-
-        .. deprecated:: 1.14.0
-            ``exact=True`` is deprecated for non-integer `N` and `k` and will raise an
-            error in SciPy 1.16.0
-    repetition : bool, optional
-        If `repetition` is True, then the number of combinations with
-        repetition is computed.
-
-    Returns
-    -------
-    val : int, float, ndarray
-        The total number of combinations.
-
-    See Also
-    --------
-    binom : Binomial coefficient considered as a function of two real
-            variables.
-
-    Notes
-    -----
-    - Array arguments accepted only for exact=False case.
-    - If N < 0, or k < 0, then 0 is returned.
-    - If k > N and repetition=False, then 0 is returned.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import comb
-    >>> k = np.array([3, 4])
-    >>> n = np.array([10, 10])
-    >>> comb(n, k, exact=False)
-    array([ 120.,  210.])
-    >>> comb(10, 3, exact=True)
-    120
-    >>> comb(10, 3, exact=True, repetition=True)
-    220
-
-    """
-    if repetition:
-        return comb(N + k - 1, k, exact=exact)
-    if exact:
-        if int(N) == N and int(k) == k:
-            # _comb_int casts inputs to integers, which is safe & intended here
-            return _comb_int(N, k)
-        # otherwise, we disregard `exact=True`; it makes no sense for
-        # non-integral arguments
-        msg = ("`exact=True` is deprecated for non-integer `N` and `k` and will raise "
-               "an error in SciPy 1.16.0")
-        warnings.warn(msg, DeprecationWarning, stacklevel=2)
-        return comb(N, k)
-    else:
-        k, N = asarray(k), asarray(N)
-        cond = (k <= N) & (N >= 0) & (k >= 0)
-        vals = binom(N, k)
-        if isinstance(vals, np.ndarray):
-            vals[~cond] = 0
-        elif not cond:
-            vals = np.float64(0)
-        return vals
-
-
-def perm(N, k, exact=False):
-    """Permutations of N things taken k at a time, i.e., k-permutations of N.
-
-    It's also known as "partial permutations".
-
-    Parameters
-    ----------
-    N : int, ndarray
-        Number of things.
-    k : int, ndarray
-        Number of elements taken.
-    exact : bool, optional
-        If ``True``, calculate the answer exactly using long integer arithmetic (`N`
-        and `k` must be scalar integers). If ``False``, a floating point approximation
-        is calculated (more rapidly) using `poch`. Default is ``False``.
-
-    Returns
-    -------
-    val : int, ndarray
-        The number of k-permutations of N.
-
-    Notes
-    -----
-    - Array arguments accepted only for exact=False case.
-    - If k > N, N < 0, or k < 0, then a 0 is returned.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import perm
-    >>> k = np.array([3, 4])
-    >>> n = np.array([10, 10])
-    >>> perm(n, k)
-    array([  720.,  5040.])
-    >>> perm(10, 3, exact=True)
-    720
-
-    """
-    if exact:
-        N = np.squeeze(N)[()]  # for backward compatibility (accepted size 1 arrays)
-        k = np.squeeze(k)[()]
-        if not (isscalar(N) and isscalar(k)):
-            raise ValueError("`N` and `k` must scalar integers be with `exact=True`.")
-
-        floor_N, floor_k = int(N), int(k)
-        non_integral = not (floor_N == N and floor_k == k)
-        if (k > N) or (N < 0) or (k < 0):
-            if non_integral:
-                msg = ("Non-integer `N` and `k` with `exact=True` is deprecated and "
-                       "will raise an error in SciPy 1.16.0.")
-                warnings.warn(msg, DeprecationWarning, stacklevel=2)
-            return 0
-        if non_integral:
-            raise ValueError("Non-integer `N` and `k` with `exact=True` is not "
-                             "supported.")
-        val = 1
-        for i in range(floor_N - floor_k + 1, floor_N + 1):
-            val *= i
-        return val
-    else:
-        k, N = asarray(k), asarray(N)
-        cond = (k <= N) & (N >= 0) & (k >= 0)
-        vals = poch(N - k + 1, k)
-        if isinstance(vals, np.ndarray):
-            vals[~cond] = 0
-        elif not cond:
-            vals = np.float64(0)
-        return vals
-
-
-# https://stackoverflow.com/a/16327037
-def _range_prod(lo, hi, k=1):
-    """
-    Product of a range of numbers spaced k apart (from hi).
-
-    For k=1, this returns the product of
-    lo * (lo+1) * (lo+2) * ... * (hi-2) * (hi-1) * hi
-    = hi! / (lo-1)!
-
-    For k>1, it correspond to taking only every k'th number when
-    counting down from hi - e.g. 18!!!! = _range_prod(1, 18, 4).
-
-    Breaks into smaller products first for speed:
-    _range_prod(2, 9) = ((2*3)*(4*5))*((6*7)*(8*9))
-    """
-    if lo + k < hi:
-        mid = (hi + lo) // 2
-        if k > 1:
-            # make sure mid is a multiple of k away from hi
-            mid = mid - ((mid - hi) % k)
-        return _range_prod(lo, mid, k) * _range_prod(mid + k, hi, k)
-    elif lo + k == hi:
-        return lo * hi
-    else:
-        return hi
-
-
-def _factorialx_array_exact(n, k=1):
-    """
-    Exact computation of factorial for an array.
-
-    The factorials are computed in incremental fashion, by taking
-    the sorted unique values of n and multiplying the intervening
-    numbers between the different unique values.
-
-    In other words, the factorial for the largest input is only
-    computed once, with each other result computed in the process.
-
-    k > 1 corresponds to the multifactorial.
-    """
-    un = np.unique(n)
-    # numpy changed nan-sorting behaviour with 1.21, see numpy/numpy#18070;
-    # to unify the behaviour, we remove the nan's here; the respective
-    # values will be set separately at the end
-    un = un[~np.isnan(un)]
-
-    # Convert to object array if np.int64 can't handle size
-    if np.isnan(n).any():
-        dt = float
-    elif k in _FACTORIALK_LIMITS_64BITS.keys():
-        if un[-1] > _FACTORIALK_LIMITS_64BITS[k]:
-            # e.g. k=1: 21! > np.iinfo(np.int64).max
-            dt = object
-        elif un[-1] > _FACTORIALK_LIMITS_32BITS[k]:
-            # e.g. k=3: 26!!! > np.iinfo(np.int32).max
-            dt = np.int64
-        else:
-            dt = np.dtype("long")
-    else:
-        # for k >= 10, we always use object
-        dt = object
-
-    out = np.empty_like(n, dtype=dt)
-
-    # Handle invalid/trivial values
-    un = un[un > 1]
-    out[n < 2] = 1
-    out[n < 0] = 0
-
-    # Calculate products of each range of numbers
-    # we can only multiply incrementally if the values are k apart;
-    # therefore we partition `un` into "lanes", i.e. its residues modulo k
-    for lane in range(0, k):
-        ul = un[(un % k) == lane] if k > 1 else un
-        if ul.size:
-            # after np.unique, un resp. ul are sorted, ul[0] is the smallest;
-            # cast to python ints to avoid overflow with np.int-types
-            val = _range_prod(1, int(ul[0]), k=k)
-            out[n == ul[0]] = val
-            for i in range(len(ul) - 1):
-                # by the filtering above, we have ensured that prev & current
-                # are a multiple of k apart
-                prev = ul[i]
-                current = ul[i + 1]
-                # we already multiplied all factors until prev; continue
-                # building the full factorial from the following (`prev + 1`);
-                # use int() for the same reason as above
-                val *= _range_prod(int(prev + 1), int(current), k=k)
-                out[n == current] = val
-
-    if np.isnan(n).any():
-        out = out.astype(np.float64)
-        out[np.isnan(n)] = np.nan
-    return out
-
-
-def _factorialx_array_approx(n, k):
-    """
-    Calculate approximation to multifactorial for array n and integer k.
-
-    Ensure we only call _factorialx_approx_core where necessary/required.
-    """
-    result = zeros(n.shape)
-    # keep nans as nans
-    place(result, np.isnan(n), np.nan)
-    # only compute where n >= 0 (excludes nans), everything else is 0
-    cond = (n >= 0)
-    n_to_compute = extract(cond, n)
-    place(result, cond, _factorialx_approx_core(n_to_compute, k=k))
-    return result
-
-
-def _factorialx_approx_core(n, k):
-    """
-    Core approximation to multifactorial for array n and integer k.
-    """
-    if k == 1:
-        # shortcut for k=1
-        result = gamma(n + 1)
-        if isinstance(n, np.ndarray):
-            # gamma does not maintain 0-dim arrays
-            result = np.array(result)
-        return result
-
-    n_mod_k = n % k
-    # scalar case separately, unified handling would be inefficient for arrays;
-    # don't use isscalar due to numpy/numpy#23574; 0-dim arrays treated below
-    if not isinstance(n, np.ndarray):
-        return (
-            np.power(k, (n - n_mod_k) / k)
-            * gamma(n / k + 1) / gamma(n_mod_k / k + 1)
-            * max(n_mod_k, 1)
-        )
-
-    # factor that's independent of the residue class (see factorialk docstring)
-    result = np.power(k, n / k) * gamma(n / k + 1)
-    # factor dependent on residue r (for `r=0` it's 1, so we skip `r=0`
-    # below and thus also avoid evaluating `max(r, 1)`)
-    def corr(k, r): return np.power(k, -r / k) / gamma(r / k + 1) * r
-    for r in np.unique(n_mod_k):
-        if r == 0:
-            continue
-        # cast to int because uint types break on `-r`
-        result[n_mod_k == r] *= corr(k, int(r))
-    return result
-
-
-def factorial(n, exact=False):
-    """
-    The factorial of a number or array of numbers.
-
-    The factorial of non-negative integer `n` is the product of all
-    positive integers less than or equal to `n`::
-
-        n! = n * (n - 1) * (n - 2) * ... * 1
-
-    Parameters
-    ----------
-    n : int or array_like of ints
-        Input values.  If ``n < 0``, the return value is 0.
-    exact : bool, optional
-        If True, calculate the answer exactly using long integer arithmetic.
-        If False, result is approximated in floating point rapidly using the
-        `gamma` function.
-        Default is False.
-
-    Returns
-    -------
-    nf : float or int or ndarray
-        Factorial of `n`, as integer or float depending on `exact`.
-
-    Notes
-    -----
-    For arrays with ``exact=True``, the factorial is computed only once, for
-    the largest input, with each other result computed in the process.
-    The output dtype is increased to ``int64`` or ``object`` if necessary.
-
-    With ``exact=False`` the factorial is approximated using the gamma
-    function:
-
-    .. math:: n! = \\Gamma(n+1)
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import factorial
-    >>> arr = np.array([3, 4, 5])
-    >>> factorial(arr, exact=False)
-    array([   6.,   24.,  120.])
-    >>> factorial(arr, exact=True)
-    array([  6,  24, 120])
-    >>> factorial(5, exact=True)
-    120
-
-    """
-    # don't use isscalar due to numpy/numpy#23574; 0-dim arrays treated below
-    if np.ndim(n) == 0 and not isinstance(n, np.ndarray):
-        # scalar cases
-        if n is None or np.isnan(n):
-            return np.nan
-        elif not (np.issubdtype(type(n), np.integer)
-                  or np.issubdtype(type(n), np.floating)):
-            raise ValueError(
-                f"Unsupported datatype for factorial: {type(n)}\n"
-                "Permitted data types are integers and floating point numbers"
-            )
-        elif n < 0:
-            return 0
-        elif exact and np.issubdtype(type(n), np.integer):
-            return math.factorial(n)
-        elif exact:
-            msg = ("Non-integer values of `n` together with `exact=True` are "
-                   "deprecated. Either ensure integer `n` or use `exact=False`.")
-            warnings.warn(msg, DeprecationWarning, stacklevel=2)
-        return _factorialx_approx_core(n, k=1)
-
-    # arrays & array-likes
-    n = asarray(n)
-    if n.size == 0:
-        # return empty arrays unchanged
-        return n
-    if not (np.issubdtype(n.dtype, np.integer)
-            or np.issubdtype(n.dtype, np.floating)):
-        raise ValueError(
-            f"Unsupported datatype for factorial: {n.dtype}\n"
-            "Permitted data types are integers and floating point numbers"
-        )
-    if exact and not np.issubdtype(n.dtype, np.integer):
-        msg = ("factorial with `exact=True` does not "
-               "support non-integral arrays")
-        raise ValueError(msg)
-
-    if exact:
-        return _factorialx_array_exact(n, k=1)
-    return _factorialx_array_approx(n, k=1)
-
-
-def factorial2(n, exact=False):
-    """Double factorial.
-
-    This is the factorial with every second value skipped.  E.g., ``7!! = 7 * 5
-    * 3 * 1``.  It can be approximated numerically as::
-
-      n!! = 2 ** (n / 2) * gamma(n / 2 + 1) * sqrt(2 / pi)  n odd
-          = 2 ** (n / 2) * gamma(n / 2 + 1)                 n even
-          = 2 ** (n / 2) * (n / 2)!                         n even
-
-    Parameters
-    ----------
-    n : int or array_like
-        Calculate ``n!!``.  If ``n < 0``, the return value is 0.
-    exact : bool, optional
-        The result can be approximated rapidly using the gamma-formula
-        above (default).  If `exact` is set to True, calculate the
-        answer exactly using integer arithmetic.
-
-    Returns
-    -------
-    nff : float or int
-        Double factorial of `n`, as an int or a float depending on
-        `exact`.
-
-    Examples
-    --------
-    >>> from scipy.special import factorial2
-    >>> factorial2(7, exact=False)
-    array(105.00000000000001)
-    >>> factorial2(7, exact=True)
-    105
-
-    """
-
-    # don't use isscalar due to numpy/numpy#23574; 0-dim arrays treated below
-    if np.ndim(n) == 0 and not isinstance(n, np.ndarray):
-        # scalar cases
-        if n is None or np.isnan(n):
-            return np.nan
-        elif not np.issubdtype(type(n), np.integer):
-            msg = "factorial2 does not support non-integral scalar arguments"
-            raise ValueError(msg)
-        elif n < 0:
-            return 0
-        elif n in {0, 1}:
-            return 1
-        # general integer case
-        if exact:
-            return _range_prod(1, n, k=2)
-        return _factorialx_approx_core(n, k=2)
-    # arrays & array-likes
-    n = asarray(n)
-    if n.size == 0:
-        # return empty arrays unchanged
-        return n
-    if not np.issubdtype(n.dtype, np.integer):
-        raise ValueError("factorial2 does not support non-integral arrays")
-    if exact:
-        return _factorialx_array_exact(n, k=2)
-    return _factorialx_array_approx(n, k=2)
-
-
-def factorialk(n, k, exact=None):
-    """Multifactorial of n of order k, n(!!...!).
-
-    This is the multifactorial of n skipping k values.  For example,
-
-      factorialk(17, 4) = 17!!!! = 17 * 13 * 9 * 5 * 1
-
-    In particular, for any integer ``n``, we have
-
-      factorialk(n, 1) = factorial(n)
-
-      factorialk(n, 2) = factorial2(n)
-
-    Parameters
-    ----------
-    n : int or array_like
-        Calculate multifactorial. If ``n < 0``, the return value is 0.
-    k : int
-        Order of multifactorial.
-    exact : bool, optional
-        If exact is set to True, calculate the answer exactly using
-        integer arithmetic, otherwise use an approximation (faster,
-        but yields floats instead of integers)
-
-        .. warning::
-           The default value for ``exact`` will be changed to
-           ``False`` in SciPy 1.15.0.
-
-    Returns
-    -------
-    val : int
-        Multifactorial of `n`.
-
-    Examples
-    --------
-    >>> from scipy.special import factorialk
-    >>> factorialk(5, k=1, exact=True)
-    120
-    >>> factorialk(5, k=3, exact=True)
-    10
-    >>> factorialk([5, 7, 9], k=3, exact=True)
-    array([ 10,  28, 162])
-    >>> factorialk([5, 7, 9], k=3, exact=False)
-    array([ 10.,  28., 162.])
-
-    Notes
-    -----
-    While less straight-forward than for the double-factorial, it's possible to
-    calculate a general approximation formula of n!(k) by studying ``n`` for a given
-    remainder ``r < k`` (thus ``n = m * k + r``, resp. ``r = n % k``), which can be
-    put together into something valid for all integer values ``n >= 0`` & ``k > 0``::
-
-      n!(k) = k ** ((n - r)/k) * gamma(n/k + 1) / gamma(r/k + 1) * max(r, 1)
-
-    This is the basis of the approximation when ``exact=False``. Compare also [1].
-
-    References
-    ----------
-    .. [1] Complex extension to multifactorial
-            https://en.wikipedia.org/wiki/Double_factorial#Alternative_extension_of_the_multifactorial
-    """
-    if not np.issubdtype(type(k), np.integer) or k < 1:
-        raise ValueError(f"k must be a positive integer, received: {k}")
-    if exact is None:
-        msg = (
-            "factorialk will default to `exact=False` starting from SciPy "
-            "1.15.0. To avoid behaviour changes due to this, explicitly "
-            "specify either `exact=False` (faster, returns floats), or the "
-            "past default `exact=True` (slower, lossless result as integer)."
-        )
-        warnings.warn(msg, DeprecationWarning, stacklevel=2)
-        exact = True
-
-    helpmsg = ""
-    if k in {1, 2}:
-        func = "factorial" if k == 1 else "factorial2"
-        helpmsg = f"\nYou can try to use {func} instead"
-
-    # don't use isscalar due to numpy/numpy#23574; 0-dim arrays treated below
-    if np.ndim(n) == 0 and not isinstance(n, np.ndarray):
-        # scalar cases
-        if n is None or np.isnan(n):
-            return np.nan
-        elif not np.issubdtype(type(n), np.integer):
-            msg = "factorialk does not support non-integral scalar arguments!"
-            raise ValueError(msg + helpmsg)
-        elif n < 0:
-            return 0
-        elif n in {0, 1}:
-            return 1
-        # general integer case
-        if exact:
-            return _range_prod(1, n, k=k)
-        return _factorialx_approx_core(n, k=k)
-    # arrays & array-likes
-    n = asarray(n)
-    if n.size == 0:
-        # return empty arrays unchanged
-        return n
-    if not np.issubdtype(n.dtype, np.integer):
-        msg = "factorialk does not support non-integral arrays!"
-        raise ValueError(msg + helpmsg)
-    if exact:
-        return _factorialx_array_exact(n, k=k)
-    return _factorialx_array_approx(n, k=k)
-
-
-def stirling2(N, K, *, exact=False):
-    r"""Generate Stirling number(s) of the second kind.
-
-    Stirling numbers of the second kind count the number of ways to
-    partition a set with N elements into K non-empty subsets.
-
-    The values this function returns are calculated using a dynamic
-    program which avoids redundant computation across the subproblems
-    in the solution. For array-like input, this implementation also
-    avoids redundant computation across the different Stirling number
-    calculations.
-
-    The numbers are sometimes denoted
-
-    .. math::
-
-        {N \brace{K}}
-
-    see [1]_ for details. This is often expressed-verbally-as
-    "N subset K".
-
-    Parameters
-    ----------
-    N : int, ndarray
-        Number of things.
-    K : int, ndarray
-        Number of non-empty subsets taken.
-    exact : bool, optional
-        Uses dynamic programming (DP) with floating point
-        numbers for smaller arrays and uses a second order approximation due to
-        Temme for larger entries  of `N` and `K` that allows trading speed for
-        accuracy. See [2]_ for a description. Temme approximation is used for
-        values `n>50`. The max error from the DP has max relative error
-        `4.5*10^-16` for `n<=50` and the max error from the Temme approximation
-        has max relative error `5*10^-5` for `51 <= n < 70` and
-        `9*10^-6` for `70 <= n < 101`. Note that these max relative errors will
-        decrease further as `n` increases.
-
-    Returns
-    -------
-    val : int, float, ndarray
-        The number of partitions.
-
-    See Also
-    --------
-    comb : The number of combinations of N things taken k at a time.
-
-    Notes
-    -----
-    - If N < 0, or K < 0, then 0 is returned.
-    - If K > N, then 0 is returned.
-
-    The output type will always be `int` or ndarray of `object`.
-    The input must contain either numpy or python integers otherwise a
-    TypeError is raised.
-
-    References
-    ----------
-    .. [1] R. L. Graham, D. E. Knuth and O. Patashnik, "Concrete
-        Mathematics: A Foundation for Computer Science," Addison-Wesley
-        Publishing Company, Boston, 1989. Chapter 6, page 258.
-
-    .. [2] Temme, Nico M. "Asymptotic estimates of Stirling numbers."
-        Studies in Applied Mathematics 89.3 (1993): 233-243.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import stirling2
-    >>> k = np.array([3, -1, 3])
-    >>> n = np.array([10, 10, 9])
-    >>> stirling2(n, k)
-    array([9330, 0, 3025], dtype=object)
-
-    """
-    output_is_scalar = np.isscalar(N) and np.isscalar(K)
-    # make a min-heap of unique (n,k) pairs
-    N, K = asarray(N), asarray(K)
-    if not np.issubdtype(N.dtype, np.integer):
-        raise TypeError("Argument `N` must contain only integers")
-    if not np.issubdtype(K.dtype, np.integer):
-        raise TypeError("Argument `K` must contain only integers")
-    if not exact:
-        # NOTE: here we allow np.uint via casting to double types prior to
-        # passing to private ufunc dispatcher. All dispatched functions
-        # take double type for (n,k) arguments and return double.
-        return _stirling2_inexact(N.astype(float), K.astype(float))
-    nk_pairs = list(
-        set([(n.take(0), k.take(0))
-             for n, k in np.nditer([N, K], ['refs_ok'])])
-    )
-    heapify(nk_pairs)
-    # base mapping for small values
-    snsk_vals = defaultdict(int)
-    for pair in [(0, 0), (1, 1), (2, 1), (2, 2)]:
-        snsk_vals[pair] = 1
-    # for each pair in the min-heap, calculate the value, store for later
-    n_old, n_row = 2, [0, 1, 1]
-    while nk_pairs:
-        n, k = heappop(nk_pairs)
-        if n < 2 or k > n or k <= 0:
-            continue
-        elif k == n or k == 1:
-            snsk_vals[(n, k)] = 1
-            continue
-        elif n != n_old:
-            num_iters = n - n_old
-            while num_iters > 0:
-                n_row.append(1)
-                # traverse from back to remove second row
-                for j in range(len(n_row)-2, 1, -1):
-                    n_row[j] = n_row[j]*j + n_row[j-1]
-                num_iters -= 1
-            snsk_vals[(n, k)] = n_row[k]
-        else:
-            snsk_vals[(n, k)] = n_row[k]
-        n_old, n_row = n, n_row
-    out_types = [object, object, object] if exact else [float, float, float]
-    # for each pair in the map, fetch the value, and populate the array
-    it = np.nditer(
-        [N, K, None],
-        ['buffered', 'refs_ok'],
-        [['readonly'], ['readonly'], ['writeonly', 'allocate']],
-        op_dtypes=out_types,
-    )
-    with it:
-        while not it.finished:
-            it[2] = snsk_vals[(int(it[0]), int(it[1]))]
-            it.iternext()
-        output = it.operands[2]
-        # If N and K were both scalars, convert output to scalar.
-        if output_is_scalar:
-            output = output.take(0)
-    return output
-
-
-def zeta(x, q=None, out=None):
-    r"""
-    Riemann or Hurwitz zeta function.
-
-    Parameters
-    ----------
-    x : array_like of float
-        Input data, must be real
-    q : array_like of float, optional
-        Input data, must be real.  Defaults to Riemann zeta.
-    out : ndarray, optional
-        Output array for the computed values.
-
-    Returns
-    -------
-    out : array_like
-        Values of zeta(x).
-
-    See Also
-    --------
-    zetac
-
-    Notes
-    -----
-    The two-argument version is the Hurwitz zeta function
-
-    .. math::
-
-        \zeta(x, q) = \sum_{k=0}^{\infty} \frac{1}{(k + q)^x};
-
-    see [dlmf]_ for details. The Riemann zeta function corresponds to
-    the case when ``q = 1``.
-
-    References
-    ----------
-    .. [dlmf] NIST, Digital Library of Mathematical Functions,
-        https://dlmf.nist.gov/25.11#i
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import zeta, polygamma, factorial
-
-    Some specific values:
-
-    >>> zeta(2), np.pi**2/6
-    (1.6449340668482266, 1.6449340668482264)
-
-    >>> zeta(4), np.pi**4/90
-    (1.0823232337111381, 1.082323233711138)
-
-    Relation to the `polygamma` function:
-
-    >>> m = 3
-    >>> x = 1.25
-    >>> polygamma(m, x)
-    array(2.782144009188397)
-    >>> (-1)**(m+1) * factorial(m) * zeta(m+1, x)
-    2.7821440091883969
-
-    """
-    if q is None:
-        return _ufuncs._riemann_zeta(x, out)
-    else:
-        return _ufuncs._zeta(x, q, out)
-
-
-def _sph_harm_all(m, n, theta, phi):
-    """Private function. This may be removed or modified at any time."""
-
-    theta = np.asarray(theta)
-    if (not np.issubdtype(theta.dtype, np.inexact)):
-        theta = theta.astype(np.float64)
-
-    phi = np.asarray(phi)
-    if (not np.issubdtype(phi.dtype, np.inexact)):
-        phi = phi.astype(np.float64)
-
-    out = np.empty((2 * m + 1, n + 1) + np.broadcast_shapes(theta.shape, phi.shape),
-        dtype = np.result_type(1j, theta.dtype, phi.dtype))
-    _sph_harm_all_gufunc(theta, phi, out = np.moveaxis(out, (0, 1), (-2, -1)))
-
-    return out
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_comb.cpython-310-x86_64-linux-gnu.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_comb.cpython-310-x86_64-linux-gnu.so
deleted file mode 100644
index 13b43dfb31a9c86e2349baf128daf4fa490b2b9d..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_comb.cpython-310-x86_64-linux-gnu.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ellip_harm.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ellip_harm.py
deleted file mode 100644
index 1b1ce34aa58054be13edfd5d87f2059e8a0d9224..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ellip_harm.py
+++ /dev/null
@@ -1,214 +0,0 @@
-import numpy as np
-
-from ._ufuncs import _ellip_harm
-from ._ellip_harm_2 import _ellipsoid, _ellipsoid_norm
-
-
-def ellip_harm(h2, k2, n, p, s, signm=1, signn=1):
-    r"""
-    Ellipsoidal harmonic functions E^p_n(l)
-
-    These are also known as Lame functions of the first kind, and are
-    solutions to the Lame equation:
-
-    .. math:: (s^2 - h^2)(s^2 - k^2)E''(s)
-              + s(2s^2 - h^2 - k^2)E'(s) + (a - q s^2)E(s) = 0
-
-    where :math:`q = (n+1)n` and :math:`a` is the eigenvalue (not
-    returned) corresponding to the solutions.
-
-    Parameters
-    ----------
-    h2 : float
-        ``h**2``
-    k2 : float
-        ``k**2``; should be larger than ``h**2``
-    n : int
-        Degree
-    s : float
-        Coordinate
-    p : int
-        Order, can range between [1,2n+1]
-    signm : {1, -1}, optional
-        Sign of prefactor of functions. Can be +/-1. See Notes.
-    signn : {1, -1}, optional
-        Sign of prefactor of functions. Can be +/-1. See Notes.
-
-    Returns
-    -------
-    E : float
-        the harmonic :math:`E^p_n(s)`
-
-    See Also
-    --------
-    ellip_harm_2, ellip_normal
-
-    Notes
-    -----
-    The geometric interpretation of the ellipsoidal functions is
-    explained in [2]_, [3]_, [4]_. The `signm` and `signn` arguments control the
-    sign of prefactors for functions according to their type::
-
-        K : +1
-        L : signm
-        M : signn
-        N : signm*signn
-
-    .. versionadded:: 0.15.0
-
-    References
-    ----------
-    .. [1] Digital Library of Mathematical Functions 29.12
-       https://dlmf.nist.gov/29.12
-    .. [2] Bardhan and Knepley, "Computational science and
-       re-discovery: open-source implementations of
-       ellipsoidal harmonics for problems in potential theory",
-       Comput. Sci. Disc. 5, 014006 (2012)
-       :doi:`10.1088/1749-4699/5/1/014006`.
-    .. [3] David J.and Dechambre P, "Computation of Ellipsoidal
-       Gravity Field Harmonics for small solar system bodies"
-       pp. 30-36, 2000
-    .. [4] George Dassios, "Ellipsoidal Harmonics: Theory and Applications"
-       pp. 418, 2012
-
-    Examples
-    --------
-    >>> from scipy.special import ellip_harm
-    >>> w = ellip_harm(5,8,1,1,2.5)
-    >>> w
-    2.5
-
-    Check that the functions indeed are solutions to the Lame equation:
-
-    >>> import numpy as np
-    >>> from scipy.interpolate import UnivariateSpline
-    >>> def eigenvalue(f, df, ddf):
-    ...     r = (((s**2 - h**2) * (s**2 - k**2) * ddf
-    ...           + s * (2*s**2 - h**2 - k**2) * df
-    ...           - n * (n + 1)*s**2*f) / f)
-    ...     return -r.mean(), r.std()
-    >>> s = np.linspace(0.1, 10, 200)
-    >>> k, h, n, p = 8.0, 2.2, 3, 2
-    >>> E = ellip_harm(h**2, k**2, n, p, s)
-    >>> E_spl = UnivariateSpline(s, E)
-    >>> a, a_err = eigenvalue(E_spl(s), E_spl(s,1), E_spl(s,2))
-    >>> a, a_err
-    (583.44366156701483, 6.4580890640310646e-11)
-
-    """  # noqa: E501
-    return _ellip_harm(h2, k2, n, p, s, signm, signn)
-
-
-_ellip_harm_2_vec = np.vectorize(_ellipsoid, otypes='d')
-
-
-def ellip_harm_2(h2, k2, n, p, s):
-    r"""
-    Ellipsoidal harmonic functions F^p_n(l)
-
-    These are also known as Lame functions of the second kind, and are
-    solutions to the Lame equation:
-
-    .. math:: (s^2 - h^2)(s^2 - k^2)F''(s)
-              + s(2s^2 - h^2 - k^2)F'(s) + (a - q s^2)F(s) = 0
-
-    where :math:`q = (n+1)n` and :math:`a` is the eigenvalue (not
-    returned) corresponding to the solutions.
-
-    Parameters
-    ----------
-    h2 : float
-        ``h**2``
-    k2 : float
-        ``k**2``; should be larger than ``h**2``
-    n : int
-        Degree.
-    p : int
-        Order, can range between [1,2n+1].
-    s : float
-        Coordinate
-
-    Returns
-    -------
-    F : float
-        The harmonic :math:`F^p_n(s)`
-
-    See Also
-    --------
-    ellip_harm, ellip_normal
-
-    Notes
-    -----
-    Lame functions of the second kind are related to the functions of the first kind:
-
-    .. math::
-
-       F^p_n(s)=(2n + 1)E^p_n(s)\int_{0}^{1/s}
-       \frac{du}{(E^p_n(1/u))^2\sqrt{(1-u^2k^2)(1-u^2h^2)}}
-
-    .. versionadded:: 0.15.0
-
-    Examples
-    --------
-    >>> from scipy.special import ellip_harm_2
-    >>> w = ellip_harm_2(5,8,2,1,10)
-    >>> w
-    0.00108056853382
-
-    """
-    with np.errstate(all='ignore'):
-        return _ellip_harm_2_vec(h2, k2, n, p, s)
-
-
-def _ellip_normal_vec(h2, k2, n, p):
-    return _ellipsoid_norm(h2, k2, n, p)
-
-
-_ellip_normal_vec = np.vectorize(_ellip_normal_vec, otypes='d')
-
-
-def ellip_normal(h2, k2, n, p):
-    r"""
-    Ellipsoidal harmonic normalization constants gamma^p_n
-
-    The normalization constant is defined as
-
-    .. math::
-
-       \gamma^p_n=8\int_{0}^{h}dx\int_{h}^{k}dy
-       \frac{(y^2-x^2)(E^p_n(y)E^p_n(x))^2}{\sqrt((k^2-y^2)(y^2-h^2)(h^2-x^2)(k^2-x^2)}
-
-    Parameters
-    ----------
-    h2 : float
-        ``h**2``
-    k2 : float
-        ``k**2``; should be larger than ``h**2``
-    n : int
-        Degree.
-    p : int
-        Order, can range between [1,2n+1].
-
-    Returns
-    -------
-    gamma : float
-        The normalization constant :math:`\gamma^p_n`
-
-    See Also
-    --------
-    ellip_harm, ellip_harm_2
-
-    Notes
-    -----
-    .. versionadded:: 0.15.0
-
-    Examples
-    --------
-    >>> from scipy.special import ellip_normal
-    >>> w = ellip_normal(5,8,3,7)
-    >>> w
-    1723.38796997
-
-    """
-    with np.errstate(all='ignore'):
-        return _ellip_normal_vec(h2, k2, n, p)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_lambertw.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_lambertw.py
deleted file mode 100644
index f758c7c21fdddc0ec1b84727d90c6de7f34a094e..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_lambertw.py
+++ /dev/null
@@ -1,149 +0,0 @@
-from ._ufuncs import _lambertw
-
-import numpy as np
-
-
-def lambertw(z, k=0, tol=1e-8):
-    r"""
-    lambertw(z, k=0, tol=1e-8)
-
-    Lambert W function.
-
-    The Lambert W function `W(z)` is defined as the inverse function
-    of ``w * exp(w)``. In other words, the value of ``W(z)`` is
-    such that ``z = W(z) * exp(W(z))`` for any complex number
-    ``z``.
-
-    The Lambert W function is a multivalued function with infinitely
-    many branches. Each branch gives a separate solution of the
-    equation ``z = w exp(w)``. Here, the branches are indexed by the
-    integer `k`.
-
-    Parameters
-    ----------
-    z : array_like
-        Input argument.
-    k : int, optional
-        Branch index.
-    tol : float, optional
-        Evaluation tolerance.
-
-    Returns
-    -------
-    w : array
-        `w` will have the same shape as `z`.
-
-    See Also
-    --------
-    wrightomega : the Wright Omega function
-
-    Notes
-    -----
-    All branches are supported by `lambertw`:
-
-    * ``lambertw(z)`` gives the principal solution (branch 0)
-    * ``lambertw(z, k)`` gives the solution on branch `k`
-
-    The Lambert W function has two partially real branches: the
-    principal branch (`k = 0`) is real for real ``z > -1/e``, and the
-    ``k = -1`` branch is real for ``-1/e < z < 0``. All branches except
-    ``k = 0`` have a logarithmic singularity at ``z = 0``.
-
-    **Possible issues**
-
-    The evaluation can become inaccurate very close to the branch point
-    at ``-1/e``. In some corner cases, `lambertw` might currently
-    fail to converge, or can end up on the wrong branch.
-
-    **Algorithm**
-
-    Halley's iteration is used to invert ``w * exp(w)``, using a first-order
-    asymptotic approximation (O(log(w)) or `O(w)`) as the initial estimate.
-
-    The definition, implementation and choice of branches is based on [2]_.
-
-    References
-    ----------
-    .. [1] https://en.wikipedia.org/wiki/Lambert_W_function
-    .. [2] Corless et al, "On the Lambert W function", Adv. Comp. Math. 5
-       (1996) 329-359.
-       https://cs.uwaterloo.ca/research/tr/1993/03/W.pdf
-
-    Examples
-    --------
-    The Lambert W function is the inverse of ``w exp(w)``:
-
-    >>> import numpy as np
-    >>> from scipy.special import lambertw
-    >>> w = lambertw(1)
-    >>> w
-    (0.56714329040978384+0j)
-    >>> w * np.exp(w)
-    (1.0+0j)
-
-    Any branch gives a valid inverse:
-
-    >>> w = lambertw(1, k=3)
-    >>> w
-    (-2.8535817554090377+17.113535539412148j)
-    >>> w*np.exp(w)
-    (1.0000000000000002+1.609823385706477e-15j)
-
-    **Applications to equation-solving**
-
-    The Lambert W function may be used to solve various kinds of
-    equations.  We give two examples here.
-
-    First, the function can be used to solve implicit equations of the
-    form
-
-        :math:`x = a + b e^{c x}`
-
-    for :math:`x`.  We assume :math:`c` is not zero.  After a little
-    algebra, the equation may be written
-
-        :math:`z e^z = -b c e^{a c}`
-
-    where :math:`z = c (a - x)`.  :math:`z` may then be expressed using
-    the Lambert W function
-
-        :math:`z = W(-b c e^{a c})`
-
-    giving
-
-        :math:`x = a - W(-b c e^{a c})/c`
-
-    For example,
-
-    >>> a = 3
-    >>> b = 2
-    >>> c = -0.5
-
-    The solution to :math:`x = a + b e^{c x}` is:
-
-    >>> x = a - lambertw(-b*c*np.exp(a*c))/c
-    >>> x
-    (3.3707498368978794+0j)
-
-    Verify that it solves the equation:
-
-    >>> a + b*np.exp(c*x)
-    (3.37074983689788+0j)
-
-    The Lambert W function may also be used find the value of the infinite
-    power tower :math:`z^{z^{z^{\ldots}}}`:
-
-    >>> def tower(z, n):
-    ...     if n == 0:
-    ...         return z
-    ...     return z ** tower(z, n-1)
-    ...
-    >>> tower(0.5, 100)
-    0.641185744504986
-    >>> -lambertw(-np.log(0.5)) / np.log(0.5)
-    (0.64118574450498589+0j)
-    """
-    # TODO: special expert should inspect this
-    # interception; better place to do it?
-    k = np.asarray(k, dtype=np.dtype("long"))
-    return _lambertw(z, k, tol)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_logsumexp.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_logsumexp.py
deleted file mode 100644
index 50b59102822d64b794c7fe995df8ab64f40c145a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_logsumexp.py
+++ /dev/null
@@ -1,308 +0,0 @@
-import numpy as np
-from scipy._lib._util import _asarray_validated
-
-__all__ = ["logsumexp", "softmax", "log_softmax"]
-
-
-def logsumexp(a, axis=None, b=None, keepdims=False, return_sign=False):
-    """Compute the log of the sum of exponentials of input elements.
-
-    Parameters
-    ----------
-    a : array_like
-        Input array.
-    axis : None or int or tuple of ints, optional
-        Axis or axes over which the sum is taken. By default `axis` is None,
-        and all elements are summed.
-
-        .. versionadded:: 0.11.0
-    b : array-like, optional
-        Scaling factor for exp(`a`) must be of the same shape as `a` or
-        broadcastable to `a`. These values may be negative in order to
-        implement subtraction.
-
-        .. versionadded:: 0.12.0
-    keepdims : bool, optional
-        If this is set to True, the axes which are reduced are left in the
-        result as dimensions with size one. With this option, the result
-        will broadcast correctly against the original array.
-
-        .. versionadded:: 0.15.0
-    return_sign : bool, optional
-        If this is set to True, the result will be a pair containing sign
-        information; if False, results that are negative will be returned
-        as NaN. Default is False (no sign information).
-
-        .. versionadded:: 0.16.0
-
-    Returns
-    -------
-    res : ndarray
-        The result, ``np.log(np.sum(np.exp(a)))`` calculated in a numerically
-        more stable way. If `b` is given then ``np.log(np.sum(b*np.exp(a)))``
-        is returned. If ``return_sign`` is True, ``res`` contains the log of
-        the absolute value of the argument.
-    sgn : ndarray
-        If ``return_sign`` is True, this will be an array of floating-point
-        numbers matching res containing +1, 0, -1 (for real-valued inputs)
-        or a complex phase (for complex inputs). This gives the sign of the
-        argument of the logarithm in ``res``.
-        If ``return_sign`` is False, only one result is returned.
-
-    See Also
-    --------
-    numpy.logaddexp, numpy.logaddexp2
-
-    Notes
-    -----
-    NumPy has a logaddexp function which is very similar to `logsumexp`, but
-    only handles two arguments. `logaddexp.reduce` is similar to this
-    function, but may be less stable.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import logsumexp
-    >>> a = np.arange(10)
-    >>> logsumexp(a)
-    9.4586297444267107
-    >>> np.log(np.sum(np.exp(a)))
-    9.4586297444267107
-
-    With weights
-
-    >>> a = np.arange(10)
-    >>> b = np.arange(10, 0, -1)
-    >>> logsumexp(a, b=b)
-    9.9170178533034665
-    >>> np.log(np.sum(b*np.exp(a)))
-    9.9170178533034647
-
-    Returning a sign flag
-
-    >>> logsumexp([1,2],b=[1,-1],return_sign=True)
-    (1.5413248546129181, -1.0)
-
-    Notice that `logsumexp` does not directly support masked arrays. To use it
-    on a masked array, convert the mask into zero weights:
-
-    >>> a = np.ma.array([np.log(2), 2, np.log(3)],
-    ...                  mask=[False, True, False])
-    >>> b = (~a.mask).astype(int)
-    >>> logsumexp(a.data, b=b), np.log(5)
-    1.6094379124341005, 1.6094379124341005
-
-    """
-    a = _asarray_validated(a, check_finite=False)
-    if b is not None:
-        a, b = np.broadcast_arrays(a, b)
-        if np.any(b == 0):
-            a = a + 0.  # promote to at least float
-            a[b == 0] = -np.inf
-
-    # Scale by real part for complex inputs, because this affects
-    # the magnitude of the exponential.
-    initial_value = -np.inf if np.size(a) == 0 else None
-    a_max = np.amax(a.real, axis=axis, keepdims=True, initial=initial_value)
-
-    if a_max.ndim > 0:
-        a_max[~np.isfinite(a_max)] = 0
-    elif not np.isfinite(a_max):
-        a_max = 0
-
-    if b is not None:
-        b = np.asarray(b)
-        tmp = b * np.exp(a - a_max)
-    else:
-        tmp = np.exp(a - a_max)
-
-    # suppress warnings about log of zero
-    with np.errstate(divide='ignore'):
-        s = np.sum(tmp, axis=axis, keepdims=keepdims)
-        if return_sign:
-            # For complex, use the numpy>=2.0 convention for sign.
-            if np.issubdtype(s.dtype, np.complexfloating):
-                sgn = s / np.where(s == 0, 1, abs(s))
-            else:
-                sgn = np.sign(s)
-            s = abs(s)
-        out = np.log(s)
-
-    if not keepdims:
-        a_max = np.squeeze(a_max, axis=axis)
-    out += a_max
-
-    if return_sign:
-        return out, sgn
-    else:
-        return out
-
-
-def softmax(x, axis=None):
-    r"""Compute the softmax function.
-
-    The softmax function transforms each element of a collection by
-    computing the exponential of each element divided by the sum of the
-    exponentials of all the elements. That is, if `x` is a one-dimensional
-    numpy array::
-
-        softmax(x) = np.exp(x)/sum(np.exp(x))
-
-    Parameters
-    ----------
-    x : array_like
-        Input array.
-    axis : int or tuple of ints, optional
-        Axis to compute values along. Default is None and softmax will be
-        computed over the entire array `x`.
-
-    Returns
-    -------
-    s : ndarray
-        An array the same shape as `x`. The result will sum to 1 along the
-        specified axis.
-
-    Notes
-    -----
-    The formula for the softmax function :math:`\sigma(x)` for a vector
-    :math:`x = \{x_0, x_1, ..., x_{n-1}\}` is
-
-    .. math:: \sigma(x)_j = \frac{e^{x_j}}{\sum_k e^{x_k}}
-
-    The `softmax` function is the gradient of `logsumexp`.
-
-    The implementation uses shifting to avoid overflow. See [1]_ for more
-    details.
-
-    .. versionadded:: 1.2.0
-
-    References
-    ----------
-    .. [1] P. Blanchard, D.J. Higham, N.J. Higham, "Accurately computing the
-       log-sum-exp and softmax functions", IMA Journal of Numerical Analysis,
-       Vol.41(4), :doi:`10.1093/imanum/draa038`.
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import softmax
-    >>> np.set_printoptions(precision=5)
-
-    >>> x = np.array([[1, 0.5, 0.2, 3],
-    ...               [1,  -1,   7, 3],
-    ...               [2,  12,  13, 3]])
-    ...
-
-    Compute the softmax transformation over the entire array.
-
-    >>> m = softmax(x)
-    >>> m
-    array([[  4.48309e-06,   2.71913e-06,   2.01438e-06,   3.31258e-05],
-           [  4.48309e-06,   6.06720e-07,   1.80861e-03,   3.31258e-05],
-           [  1.21863e-05,   2.68421e-01,   7.29644e-01,   3.31258e-05]])
-
-    >>> m.sum()
-    1.0
-
-    Compute the softmax transformation along the first axis (i.e., the
-    columns).
-
-    >>> m = softmax(x, axis=0)
-
-    >>> m
-    array([[  2.11942e-01,   1.01300e-05,   2.75394e-06,   3.33333e-01],
-           [  2.11942e-01,   2.26030e-06,   2.47262e-03,   3.33333e-01],
-           [  5.76117e-01,   9.99988e-01,   9.97525e-01,   3.33333e-01]])
-
-    >>> m.sum(axis=0)
-    array([ 1.,  1.,  1.,  1.])
-
-    Compute the softmax transformation along the second axis (i.e., the rows).
-
-    >>> m = softmax(x, axis=1)
-    >>> m
-    array([[  1.05877e-01,   6.42177e-02,   4.75736e-02,   7.82332e-01],
-           [  2.42746e-03,   3.28521e-04,   9.79307e-01,   1.79366e-02],
-           [  1.22094e-05,   2.68929e-01,   7.31025e-01,   3.31885e-05]])
-
-    >>> m.sum(axis=1)
-    array([ 1.,  1.,  1.])
-
-    """
-    x = _asarray_validated(x, check_finite=False)
-    x_max = np.amax(x, axis=axis, keepdims=True)
-    exp_x_shifted = np.exp(x - x_max)
-    return exp_x_shifted / np.sum(exp_x_shifted, axis=axis, keepdims=True)
-
-
-def log_softmax(x, axis=None):
-    r"""Compute the logarithm of the softmax function.
-
-    In principle::
-
-        log_softmax(x) = log(softmax(x))
-
-    but using a more accurate implementation.
-
-    Parameters
-    ----------
-    x : array_like
-        Input array.
-    axis : int or tuple of ints, optional
-        Axis to compute values along. Default is None and softmax will be
-        computed over the entire array `x`.
-
-    Returns
-    -------
-    s : ndarray or scalar
-        An array with the same shape as `x`. Exponential of the result will
-        sum to 1 along the specified axis. If `x` is a scalar, a scalar is
-        returned.
-
-    Notes
-    -----
-    `log_softmax` is more accurate than ``np.log(softmax(x))`` with inputs that
-    make `softmax` saturate (see examples below).
-
-    .. versionadded:: 1.5.0
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import log_softmax
-    >>> from scipy.special import softmax
-    >>> np.set_printoptions(precision=5)
-
-    >>> x = np.array([1000.0, 1.0])
-
-    >>> y = log_softmax(x)
-    >>> y
-    array([   0., -999.])
-
-    >>> with np.errstate(divide='ignore'):
-    ...   y = np.log(softmax(x))
-    ...
-    >>> y
-    array([  0., -inf])
-
-    """
-
-    x = _asarray_validated(x, check_finite=False)
-
-    x_max = np.amax(x, axis=axis, keepdims=True)
-
-    if x_max.ndim > 0:
-        x_max[~np.isfinite(x_max)] = 0
-    elif not np.isfinite(x_max):
-        x_max = 0
-
-    tmp = x - x_max
-    exp_tmp = np.exp(tmp)
-
-    # suppress warnings about log of zero
-    with np.errstate(divide='ignore'):
-        s = np.sum(exp_tmp, axis=axis, keepdims=True)
-        out = np.log(s)
-
-    out = tmp - out
-    return out
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_mptestutils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_mptestutils.py
deleted file mode 100644
index f7b88f6b244bc5ff95af04a241f1959030df2568..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_mptestutils.py
+++ /dev/null
@@ -1,453 +0,0 @@
-import os
-import sys
-import time
-from itertools import zip_longest
-
-import numpy as np
-from numpy.testing import assert_
-import pytest
-
-from scipy.special._testutils import assert_func_equal
-
-try:
-    import mpmath
-except ImportError:
-    pass
-
-
-# ------------------------------------------------------------------------------
-# Machinery for systematic tests with mpmath
-# ------------------------------------------------------------------------------
-
-class Arg:
-    """Generate a set of numbers on the real axis, concentrating on
-    'interesting' regions and covering all orders of magnitude.
-
-    """
-
-    def __init__(self, a=-np.inf, b=np.inf, inclusive_a=True, inclusive_b=True):
-        if a > b:
-            raise ValueError("a should be less than or equal to b")
-        if a == -np.inf:
-            a = -0.5*np.finfo(float).max
-        if b == np.inf:
-            b = 0.5*np.finfo(float).max
-        self.a, self.b = a, b
-
-        self.inclusive_a, self.inclusive_b = inclusive_a, inclusive_b
-
-    def _positive_values(self, a, b, n):
-        if a < 0:
-            raise ValueError("a should be positive")
-
-        # Try to put half of the points into a linspace between a and
-        # 10 the other half in a logspace.
-        if n % 2 == 0:
-            nlogpts = n//2
-            nlinpts = nlogpts
-        else:
-            nlogpts = n//2
-            nlinpts = nlogpts + 1
-
-        if a >= 10:
-            # Outside of linspace range; just return a logspace.
-            pts = np.logspace(np.log10(a), np.log10(b), n)
-        elif a > 0 and b < 10:
-            # Outside of logspace range; just return a linspace
-            pts = np.linspace(a, b, n)
-        elif a > 0:
-            # Linspace between a and 10 and a logspace between 10 and
-            # b.
-            linpts = np.linspace(a, 10, nlinpts, endpoint=False)
-            logpts = np.logspace(1, np.log10(b), nlogpts)
-            pts = np.hstack((linpts, logpts))
-        elif a == 0 and b <= 10:
-            # Linspace between 0 and b and a logspace between 0 and
-            # the smallest positive point of the linspace
-            linpts = np.linspace(0, b, nlinpts)
-            if linpts.size > 1:
-                right = np.log10(linpts[1])
-            else:
-                right = -30
-            logpts = np.logspace(-30, right, nlogpts, endpoint=False)
-            pts = np.hstack((logpts, linpts))
-        else:
-            # Linspace between 0 and 10, logspace between 0 and the
-            # smallest positive point of the linspace, and a logspace
-            # between 10 and b.
-            if nlogpts % 2 == 0:
-                nlogpts1 = nlogpts//2
-                nlogpts2 = nlogpts1
-            else:
-                nlogpts1 = nlogpts//2
-                nlogpts2 = nlogpts1 + 1
-            linpts = np.linspace(0, 10, nlinpts, endpoint=False)
-            if linpts.size > 1:
-                right = np.log10(linpts[1])
-            else:
-                right = -30
-            logpts1 = np.logspace(-30, right, nlogpts1, endpoint=False)
-            logpts2 = np.logspace(1, np.log10(b), nlogpts2)
-            pts = np.hstack((logpts1, linpts, logpts2))
-
-        return np.sort(pts)
-
-    def values(self, n):
-        """Return an array containing n numbers."""
-        a, b = self.a, self.b
-        if a == b:
-            return np.zeros(n)
-
-        if not self.inclusive_a:
-            n += 1
-        if not self.inclusive_b:
-            n += 1
-
-        if n % 2 == 0:
-            n1 = n//2
-            n2 = n1
-        else:
-            n1 = n//2
-            n2 = n1 + 1
-
-        if a >= 0:
-            pospts = self._positive_values(a, b, n)
-            negpts = []
-        elif b <= 0:
-            pospts = []
-            negpts = -self._positive_values(-b, -a, n)
-        else:
-            pospts = self._positive_values(0, b, n1)
-            negpts = -self._positive_values(0, -a, n2 + 1)
-            # Don't want to get zero twice
-            negpts = negpts[1:]
-        pts = np.hstack((negpts[::-1], pospts))
-
-        if not self.inclusive_a:
-            pts = pts[1:]
-        if not self.inclusive_b:
-            pts = pts[:-1]
-        return pts
-
-
-class FixedArg:
-    def __init__(self, values):
-        self._values = np.asarray(values)
-
-    def values(self, n):
-        return self._values
-
-
-class ComplexArg:
-    def __init__(self, a=complex(-np.inf, -np.inf), b=complex(np.inf, np.inf)):
-        self.real = Arg(a.real, b.real)
-        self.imag = Arg(a.imag, b.imag)
-
-    def values(self, n):
-        m = int(np.floor(np.sqrt(n)))
-        x = self.real.values(m)
-        y = self.imag.values(m + 1)
-        return (x[:,None] + 1j*y[None,:]).ravel()
-
-
-class IntArg:
-    def __init__(self, a=-1000, b=1000):
-        self.a = a
-        self.b = b
-
-    def values(self, n):
-        v1 = Arg(self.a, self.b).values(max(1 + n//2, n-5)).astype(int)
-        v2 = np.arange(-5, 5)
-        v = np.unique(np.r_[v1, v2])
-        v = v[(v >= self.a) & (v < self.b)]
-        return v
-
-
-def get_args(argspec, n):
-    if isinstance(argspec, np.ndarray):
-        args = argspec.copy()
-    else:
-        nargs = len(argspec)
-        ms = np.asarray(
-            [1.5 if isinstance(spec, ComplexArg) else 1.0 for spec in argspec]
-        )
-        ms = (n**(ms/sum(ms))).astype(int) + 1
-
-        args = [spec.values(m) for spec, m in zip(argspec, ms)]
-        args = np.array(np.broadcast_arrays(*np.ix_(*args))).reshape(nargs, -1).T
-
-    return args
-
-
-class MpmathData:
-    def __init__(self, scipy_func, mpmath_func, arg_spec, name=None,
-                 dps=None, prec=None, n=None, rtol=1e-7, atol=1e-300,
-                 ignore_inf_sign=False, distinguish_nan_and_inf=True,
-                 nan_ok=True, param_filter=None):
-
-        # mpmath tests are really slow (see gh-6989).  Use a small number of
-        # points by default, increase back to 5000 (old default) if XSLOW is
-        # set
-        if n is None:
-            try:
-                is_xslow = int(os.environ.get('SCIPY_XSLOW', '0'))
-            except ValueError:
-                is_xslow = False
-
-            n = 5000 if is_xslow else 500
-
-        self.scipy_func = scipy_func
-        self.mpmath_func = mpmath_func
-        self.arg_spec = arg_spec
-        self.dps = dps
-        self.prec = prec
-        self.n = n
-        self.rtol = rtol
-        self.atol = atol
-        self.ignore_inf_sign = ignore_inf_sign
-        self.nan_ok = nan_ok
-        if isinstance(self.arg_spec, np.ndarray):
-            self.is_complex = np.issubdtype(self.arg_spec.dtype, np.complexfloating)
-        else:
-            self.is_complex = any(
-                [isinstance(arg, ComplexArg) for arg in self.arg_spec]
-            )
-        self.ignore_inf_sign = ignore_inf_sign
-        self.distinguish_nan_and_inf = distinguish_nan_and_inf
-        if not name or name == '':
-            name = getattr(scipy_func, '__name__', None)
-        if not name or name == '':
-            name = getattr(mpmath_func, '__name__', None)
-        self.name = name
-        self.param_filter = param_filter
-
-    def check(self):
-        np.random.seed(1234)
-
-        # Generate values for the arguments
-        argarr = get_args(self.arg_spec, self.n)
-
-        # Check
-        old_dps, old_prec = mpmath.mp.dps, mpmath.mp.prec
-        try:
-            if self.dps is not None:
-                dps_list = [self.dps]
-            else:
-                dps_list = [20]
-            if self.prec is not None:
-                mpmath.mp.prec = self.prec
-
-            # Proper casting of mpmath input and output types. Using
-            # native mpmath types as inputs gives improved precision
-            # in some cases.
-            if np.issubdtype(argarr.dtype, np.complexfloating):
-                pytype = mpc2complex
-
-                def mptype(x):
-                    return mpmath.mpc(complex(x))
-            else:
-                def mptype(x):
-                    return mpmath.mpf(float(x))
-
-                def pytype(x):
-                    if abs(x.imag) > 1e-16*(1 + abs(x.real)):
-                        return np.nan
-                    else:
-                        return mpf2float(x.real)
-
-            # Try out different dps until one (or none) works
-            for j, dps in enumerate(dps_list):
-                mpmath.mp.dps = dps
-
-                try:
-                    assert_func_equal(
-                        self.scipy_func,
-                        lambda *a: pytype(self.mpmath_func(*map(mptype, a))),
-                        argarr,
-                        vectorized=False,
-                        rtol=self.rtol,
-                        atol=self.atol,
-                        ignore_inf_sign=self.ignore_inf_sign,
-                        distinguish_nan_and_inf=self.distinguish_nan_and_inf,
-                        nan_ok=self.nan_ok,
-                        param_filter=self.param_filter
-                    )
-                    break
-                except AssertionError:
-                    if j >= len(dps_list)-1:
-                        # reraise the Exception
-                        tp, value, tb = sys.exc_info()
-                        if value.__traceback__ is not tb:
-                            raise value.with_traceback(tb)
-                        raise value
-        finally:
-            mpmath.mp.dps, mpmath.mp.prec = old_dps, old_prec
-
-    def __repr__(self):
-        if self.is_complex:
-            return f""
-        else:
-            return f""
-
-
-def assert_mpmath_equal(*a, **kw):
-    d = MpmathData(*a, **kw)
-    d.check()
-
-
-def nonfunctional_tooslow(func):
-    return pytest.mark.skip(
-        reason="    Test not yet functional (too slow), needs more work."
-    )(func)
-
-
-# ------------------------------------------------------------------------------
-# Tools for dealing with mpmath quirks
-# ------------------------------------------------------------------------------
-
-def mpf2float(x):
-    """
-    Convert an mpf to the nearest floating point number. Just using
-    float directly doesn't work because of results like this:
-
-    with mp.workdps(50):
-        float(mpf("0.99999999999999999")) = 0.9999999999999999
-
-    """
-    return float(mpmath.nstr(x, 17, min_fixed=0, max_fixed=0))
-
-
-def mpc2complex(x):
-    return complex(mpf2float(x.real), mpf2float(x.imag))
-
-
-def trace_args(func):
-    def tofloat(x):
-        if isinstance(x, mpmath.mpc):
-            return complex(x)
-        else:
-            return float(x)
-
-    def wrap(*a, **kw):
-        sys.stderr.write(f"{tuple(map(tofloat, a))!r}: ")
-        sys.stderr.flush()
-        try:
-            r = func(*a, **kw)
-            sys.stderr.write("-> %r" % r)
-        finally:
-            sys.stderr.write("\n")
-            sys.stderr.flush()
-        return r
-    return wrap
-
-
-try:
-    import signal
-    POSIX = ('setitimer' in dir(signal))
-except ImportError:
-    POSIX = False
-
-
-class TimeoutError(Exception):
-    pass
-
-
-def time_limited(timeout=0.5, return_val=np.nan, use_sigalrm=True):
-    """
-    Decorator for setting a timeout for pure-Python functions.
-
-    If the function does not return within `timeout` seconds, the
-    value `return_val` is returned instead.
-
-    On POSIX this uses SIGALRM by default. On non-POSIX, settrace is
-    used. Do not use this with threads: the SIGALRM implementation
-    does probably not work well. The settrace implementation only
-    traces the current thread.
-
-    The settrace implementation slows down execution speed. Slowdown
-    by a factor around 10 is probably typical.
-    """
-    if POSIX and use_sigalrm:
-        def sigalrm_handler(signum, frame):
-            raise TimeoutError()
-
-        def deco(func):
-            def wrap(*a, **kw):
-                old_handler = signal.signal(signal.SIGALRM, sigalrm_handler)
-                signal.setitimer(signal.ITIMER_REAL, timeout)
-                try:
-                    return func(*a, **kw)
-                except TimeoutError:
-                    return return_val
-                finally:
-                    signal.setitimer(signal.ITIMER_REAL, 0)
-                    signal.signal(signal.SIGALRM, old_handler)
-            return wrap
-    else:
-        def deco(func):
-            def wrap(*a, **kw):
-                start_time = time.time()
-
-                def trace(frame, event, arg):
-                    if time.time() - start_time > timeout:
-                        raise TimeoutError()
-                    return trace
-                sys.settrace(trace)
-                try:
-                    return func(*a, **kw)
-                except TimeoutError:
-                    sys.settrace(None)
-                    return return_val
-                finally:
-                    sys.settrace(None)
-            return wrap
-    return deco
-
-
-def exception_to_nan(func):
-    """Decorate function to return nan if it raises an exception"""
-    def wrap(*a, **kw):
-        try:
-            return func(*a, **kw)
-        except Exception:
-            return np.nan
-    return wrap
-
-
-def inf_to_nan(func):
-    """Decorate function to return nan if it returns inf"""
-    def wrap(*a, **kw):
-        v = func(*a, **kw)
-        if not np.isfinite(v):
-            return np.nan
-        return v
-    return wrap
-
-
-def mp_assert_allclose(res, std, atol=0, rtol=1e-17):
-    """
-    Compare lists of mpmath.mpf's or mpmath.mpc's directly so that it
-    can be done to higher precision than double.
-    """
-    failures = []
-    for k, (resval, stdval) in enumerate(zip_longest(res, std)):
-        if resval is None or stdval is None:
-            raise ValueError('Lengths of inputs res and std are not equal.')
-        if mpmath.fabs(resval - stdval) > atol + rtol*mpmath.fabs(stdval):
-            failures.append((k, resval, stdval))
-
-    nfail = len(failures)
-    if nfail > 0:
-        ndigits = int(abs(np.log10(rtol)))
-        msg = [""]
-        msg.append(f"Bad results ({nfail} out of {k + 1}) for the following points:")
-        for k, resval, stdval in failures:
-            resrep = mpmath.nstr(resval, ndigits, min_fixed=0, max_fixed=0)
-            stdrep = mpmath.nstr(stdval, ndigits, min_fixed=0, max_fixed=0)
-            if stdval == 0:
-                rdiff = "inf"
-            else:
-                rdiff = mpmath.fabs((resval - stdval)/stdval)
-                rdiff = mpmath.nstr(rdiff, 3)
-            msg.append(f"{k}: {resrep} != {stdrep} (rdiff {rdiff})")
-        assert_(False, "\n".join(msg))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_sf_error.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_sf_error.py
deleted file mode 100644
index e1edc9800759dfda9e49bde1becc775a64bce958..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_sf_error.py
+++ /dev/null
@@ -1,15 +0,0 @@
-"""Warnings and Exceptions that can be raised by special functions."""
-import warnings
-
-
-class SpecialFunctionWarning(Warning):
-    """Warning that can be emitted by special functions."""
-    pass
-
-
-warnings.simplefilter("always", category=SpecialFunctionWarning)
-
-
-class SpecialFunctionError(Exception):
-    """Exception that can be raised by special functions."""
-    pass
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_spfun_stats.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_spfun_stats.py
deleted file mode 100644
index 2525eceb47ec2b20b45ca693e19e741f4a666597..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_spfun_stats.py
+++ /dev/null
@@ -1,106 +0,0 @@
-# Last Change: Sat Mar 21 02:00 PM 2009 J
-
-# Copyright (c) 2001, 2002 Enthought, Inc.
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-#   a. Redistributions of source code must retain the above copyright notice,
-#      this list of conditions and the following disclaimer.
-#   b. Redistributions in binary form must reproduce the above copyright
-#      notice, this list of conditions and the following disclaimer in the
-#      documentation and/or other materials provided with the distribution.
-#   c. Neither the name of the Enthought nor the names of its contributors
-#      may be used to endorse or promote products derived from this software
-#      without specific prior written permission.
-#
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-# DAMAGE.
-
-"""Some more special functions which may be useful for multivariate statistical
-analysis."""
-
-import numpy as np
-from scipy.special import gammaln as loggam
-
-
-__all__ = ['multigammaln']
-
-
-def multigammaln(a, d):
-    r"""Returns the log of multivariate gamma, also sometimes called the
-    generalized gamma.
-
-    Parameters
-    ----------
-    a : ndarray
-        The multivariate gamma is computed for each item of `a`.
-    d : int
-        The dimension of the space of integration.
-
-    Returns
-    -------
-    res : ndarray
-        The values of the log multivariate gamma at the given points `a`.
-
-    Notes
-    -----
-    The formal definition of the multivariate gamma of dimension d for a real
-    `a` is
-
-    .. math::
-
-        \Gamma_d(a) = \int_{A>0} e^{-tr(A)} |A|^{a - (d+1)/2} dA
-
-    with the condition :math:`a > (d-1)/2`, and :math:`A > 0` being the set of
-    all the positive definite matrices of dimension `d`.  Note that `a` is a
-    scalar: the integrand only is multivariate, the argument is not (the
-    function is defined over a subset of the real set).
-
-    This can be proven to be equal to the much friendlier equation
-
-    .. math::
-
-        \Gamma_d(a) = \pi^{d(d-1)/4} \prod_{i=1}^{d} \Gamma(a - (i-1)/2).
-
-    References
-    ----------
-    R. J. Muirhead, Aspects of multivariate statistical theory (Wiley Series in
-    probability and mathematical statistics).
-
-    Examples
-    --------
-    >>> import numpy as np
-    >>> from scipy.special import multigammaln, gammaln
-    >>> a = 23.5
-    >>> d = 10
-    >>> multigammaln(a, d)
-    454.1488605074416
-
-    Verify that the result agrees with the logarithm of the equation
-    shown above:
-
-    >>> d*(d-1)/4*np.log(np.pi) + gammaln(a - 0.5*np.arange(0, d)).sum()
-    454.1488605074416
-    """
-    a = np.asarray(a)
-    if not np.isscalar(d) or (np.floor(d) != d):
-        raise ValueError("d should be a positive integer (dimension)")
-    if np.any(a <= 0.5 * (d - 1)):
-        raise ValueError(f"condition a ({a:f}) > 0.5 * (d-1) ({0.5 * (d-1):f}) not met")
-
-    res = (d * (d-1) * 0.25) * np.log(np.pi)
-    res += np.sum(loggam([(a - (j - 1.)/2) for j in range(1, d+1)]), axis=0)
-    return res
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_spherical_bessel.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_spherical_bessel.py
deleted file mode 100644
index 1f4feb3fa4a2dfaea75a8e8a37ae3b87565db1bc..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_spherical_bessel.py
+++ /dev/null
@@ -1,354 +0,0 @@
-import numpy as np
-from ._ufuncs import (_spherical_jn, _spherical_yn, _spherical_in,
-                      _spherical_kn, _spherical_jn_d, _spherical_yn_d,
-                      _spherical_in_d, _spherical_kn_d)
-
-def spherical_jn(n, z, derivative=False):
-    r"""Spherical Bessel function of the first kind or its derivative.
-
-    Defined as [1]_,
-
-    .. math:: j_n(z) = \sqrt{\frac{\pi}{2z}} J_{n + 1/2}(z),
-
-    where :math:`J_n` is the Bessel function of the first kind.
-
-    Parameters
-    ----------
-    n : int, array_like
-        Order of the Bessel function (n >= 0).
-    z : complex or float, array_like
-        Argument of the Bessel function.
-    derivative : bool, optional
-        If True, the value of the derivative (rather than the function
-        itself) is returned.
-
-    Returns
-    -------
-    jn : ndarray
-
-    Notes
-    -----
-    For real arguments greater than the order, the function is computed
-    using the ascending recurrence [2]_. For small real or complex
-    arguments, the definitional relation to the cylindrical Bessel function
-    of the first kind is used.
-
-    The derivative is computed using the relations [3]_,
-
-    .. math::
-        j_n'(z) = j_{n-1}(z) - \frac{n + 1}{z} j_n(z).
-
-        j_0'(z) = -j_1(z)
-
-
-    .. versionadded:: 0.18.0
-
-    References
-    ----------
-    .. [1] https://dlmf.nist.gov/10.47.E3
-    .. [2] https://dlmf.nist.gov/10.51.E1
-    .. [3] https://dlmf.nist.gov/10.51.E2
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    Examples
-    --------
-    The spherical Bessel functions of the first kind :math:`j_n` accept
-    both real and complex second argument. They can return a complex type:
-
-    >>> from scipy.special import spherical_jn
-    >>> spherical_jn(0, 3+5j)
-    (-9.878987731663194-8.021894345786002j)
-    >>> type(spherical_jn(0, 3+5j))
-    
-
-    We can verify the relation for the derivative from the Notes
-    for :math:`n=3` in the interval :math:`[1, 2]`:
-
-    >>> import numpy as np
-    >>> x = np.arange(1.0, 2.0, 0.01)
-    >>> np.allclose(spherical_jn(3, x, True),
-    ...             spherical_jn(2, x) - 4/x * spherical_jn(3, x))
-    True
-
-    The first few :math:`j_n` with real argument:
-
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.arange(0.0, 10.0, 0.01)
-    >>> fig, ax = plt.subplots()
-    >>> ax.set_ylim(-0.5, 1.5)
-    >>> ax.set_title(r'Spherical Bessel functions $j_n$')
-    >>> for n in np.arange(0, 4):
-    ...     ax.plot(x, spherical_jn(n, x), label=rf'$j_{n}$')
-    >>> plt.legend(loc='best')
-    >>> plt.show()
-
-    """
-    n = np.asarray(n, dtype=np.dtype("long"))
-    if derivative:
-        return _spherical_jn_d(n, z)
-    else:
-        return _spherical_jn(n, z)
-
-
-def spherical_yn(n, z, derivative=False):
-    r"""Spherical Bessel function of the second kind or its derivative.
-
-    Defined as [1]_,
-
-    .. math:: y_n(z) = \sqrt{\frac{\pi}{2z}} Y_{n + 1/2}(z),
-
-    where :math:`Y_n` is the Bessel function of the second kind.
-
-    Parameters
-    ----------
-    n : int, array_like
-        Order of the Bessel function (n >= 0).
-    z : complex or float, array_like
-        Argument of the Bessel function.
-    derivative : bool, optional
-        If True, the value of the derivative (rather than the function
-        itself) is returned.
-
-    Returns
-    -------
-    yn : ndarray
-
-    Notes
-    -----
-    For real arguments, the function is computed using the ascending
-    recurrence [2]_.  For complex arguments, the definitional relation to
-    the cylindrical Bessel function of the second kind is used.
-
-    The derivative is computed using the relations [3]_,
-
-    .. math::
-        y_n' = y_{n-1} - \frac{n + 1}{z} y_n.
-
-        y_0' = -y_1
-
-
-    .. versionadded:: 0.18.0
-
-    References
-    ----------
-    .. [1] https://dlmf.nist.gov/10.47.E4
-    .. [2] https://dlmf.nist.gov/10.51.E1
-    .. [3] https://dlmf.nist.gov/10.51.E2
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    Examples
-    --------
-    The spherical Bessel functions of the second kind :math:`y_n` accept
-    both real and complex second argument. They can return a complex type:
-
-    >>> from scipy.special import spherical_yn
-    >>> spherical_yn(0, 3+5j)
-    (8.022343088587197-9.880052589376795j)
-    >>> type(spherical_yn(0, 3+5j))
-    
-
-    We can verify the relation for the derivative from the Notes
-    for :math:`n=3` in the interval :math:`[1, 2]`:
-
-    >>> import numpy as np
-    >>> x = np.arange(1.0, 2.0, 0.01)
-    >>> np.allclose(spherical_yn(3, x, True),
-    ...             spherical_yn(2, x) - 4/x * spherical_yn(3, x))
-    True
-
-    The first few :math:`y_n` with real argument:
-
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.arange(0.0, 10.0, 0.01)
-    >>> fig, ax = plt.subplots()
-    >>> ax.set_ylim(-2.0, 1.0)
-    >>> ax.set_title(r'Spherical Bessel functions $y_n$')
-    >>> for n in np.arange(0, 4):
-    ...     ax.plot(x, spherical_yn(n, x), label=rf'$y_{n}$')
-    >>> plt.legend(loc='best')
-    >>> plt.show()
-
-    """
-    n = np.asarray(n, dtype=np.dtype("long"))
-    if derivative:
-        return _spherical_yn_d(n, z)
-    else:
-        return _spherical_yn(n, z)
-
-
-def spherical_in(n, z, derivative=False):
-    r"""Modified spherical Bessel function of the first kind or its derivative.
-
-    Defined as [1]_,
-
-    .. math:: i_n(z) = \sqrt{\frac{\pi}{2z}} I_{n + 1/2}(z),
-
-    where :math:`I_n` is the modified Bessel function of the first kind.
-
-    Parameters
-    ----------
-    n : int, array_like
-        Order of the Bessel function (n >= 0).
-    z : complex or float, array_like
-        Argument of the Bessel function.
-    derivative : bool, optional
-        If True, the value of the derivative (rather than the function
-        itself) is returned.
-
-    Returns
-    -------
-    in : ndarray
-
-    Notes
-    -----
-    The function is computed using its definitional relation to the
-    modified cylindrical Bessel function of the first kind.
-
-    The derivative is computed using the relations [2]_,
-
-    .. math::
-        i_n' = i_{n-1} - \frac{n + 1}{z} i_n.
-
-        i_1' = i_0
-
-
-    .. versionadded:: 0.18.0
-
-    References
-    ----------
-    .. [1] https://dlmf.nist.gov/10.47.E7
-    .. [2] https://dlmf.nist.gov/10.51.E5
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    Examples
-    --------
-    The modified spherical Bessel functions of the first kind :math:`i_n`
-    accept both real and complex second argument.
-    They can return a complex type:
-
-    >>> from scipy.special import spherical_in
-    >>> spherical_in(0, 3+5j)
-    (-1.1689867793369182-1.2697305267234222j)
-    >>> type(spherical_in(0, 3+5j))
-    
-
-    We can verify the relation for the derivative from the Notes
-    for :math:`n=3` in the interval :math:`[1, 2]`:
-
-    >>> import numpy as np
-    >>> x = np.arange(1.0, 2.0, 0.01)
-    >>> np.allclose(spherical_in(3, x, True),
-    ...             spherical_in(2, x) - 4/x * spherical_in(3, x))
-    True
-
-    The first few :math:`i_n` with real argument:
-
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.arange(0.0, 6.0, 0.01)
-    >>> fig, ax = plt.subplots()
-    >>> ax.set_ylim(-0.5, 5.0)
-    >>> ax.set_title(r'Modified spherical Bessel functions $i_n$')
-    >>> for n in np.arange(0, 4):
-    ...     ax.plot(x, spherical_in(n, x), label=rf'$i_{n}$')
-    >>> plt.legend(loc='best')
-    >>> plt.show()
-
-    """
-    n = np.asarray(n, dtype=np.dtype("long"))
-    if derivative:
-        return _spherical_in_d(n, z)
-    else:
-        return _spherical_in(n, z)
-
-
-def spherical_kn(n, z, derivative=False):
-    r"""Modified spherical Bessel function of the second kind or its derivative.
-
-    Defined as [1]_,
-
-    .. math:: k_n(z) = \sqrt{\frac{\pi}{2z}} K_{n + 1/2}(z),
-
-    where :math:`K_n` is the modified Bessel function of the second kind.
-
-    Parameters
-    ----------
-    n : int, array_like
-        Order of the Bessel function (n >= 0).
-    z : complex or float, array_like
-        Argument of the Bessel function.
-    derivative : bool, optional
-        If True, the value of the derivative (rather than the function
-        itself) is returned.
-
-    Returns
-    -------
-    kn : ndarray
-
-    Notes
-    -----
-    The function is computed using its definitional relation to the
-    modified cylindrical Bessel function of the second kind.
-
-    The derivative is computed using the relations [2]_,
-
-    .. math::
-        k_n' = -k_{n-1} - \frac{n + 1}{z} k_n.
-
-        k_0' = -k_1
-
-
-    .. versionadded:: 0.18.0
-
-    References
-    ----------
-    .. [1] https://dlmf.nist.gov/10.47.E9
-    .. [2] https://dlmf.nist.gov/10.51.E5
-    .. [AS] Milton Abramowitz and Irene A. Stegun, eds.
-        Handbook of Mathematical Functions with Formulas,
-        Graphs, and Mathematical Tables. New York: Dover, 1972.
-
-    Examples
-    --------
-    The modified spherical Bessel functions of the second kind :math:`k_n`
-    accept both real and complex second argument.
-    They can return a complex type:
-
-    >>> from scipy.special import spherical_kn
-    >>> spherical_kn(0, 3+5j)
-    (0.012985785614001561+0.003354691603137546j)
-    >>> type(spherical_kn(0, 3+5j))
-    
-
-    We can verify the relation for the derivative from the Notes
-    for :math:`n=3` in the interval :math:`[1, 2]`:
-
-    >>> import numpy as np
-    >>> x = np.arange(1.0, 2.0, 0.01)
-    >>> np.allclose(spherical_kn(3, x, True),
-    ...             - 4/x * spherical_kn(3, x) - spherical_kn(2, x))
-    True
-
-    The first few :math:`k_n` with real argument:
-
-    >>> import matplotlib.pyplot as plt
-    >>> x = np.arange(0.0, 4.0, 0.01)
-    >>> fig, ax = plt.subplots()
-    >>> ax.set_ylim(0.0, 5.0)
-    >>> ax.set_title(r'Modified spherical Bessel functions $k_n$')
-    >>> for n in np.arange(0, 4):
-    ...     ax.plot(x, spherical_kn(n, x), label=rf'$k_{n}$')
-    >>> plt.legend(loc='best')
-    >>> plt.show()
-
-    """
-    n = np.asarray(n, dtype=np.dtype("long"))
-    if derivative:
-        return _spherical_kn_d(n, z)
-    else:
-        return _spherical_kn(n, z)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_support_alternative_backends.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_support_alternative_backends.py
deleted file mode 100644
index 1be09d29cc2f3b9283c4cf851133d5c74fcbcb17..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_support_alternative_backends.py
+++ /dev/null
@@ -1,148 +0,0 @@
-import os
-import sys
-import functools
-
-import numpy as np
-import scipy
-from scipy._lib._array_api import (
-    array_namespace, scipy_namespace_for, is_numpy, is_torch
-)
-from . import _ufuncs
-# These don't really need to be imported, but otherwise IDEs might not realize
-# that these are defined in this file / report an error in __init__.py
-from ._ufuncs import (
-    log_ndtr, ndtr, ndtri, erf, erfc, i0, i0e, i1, i1e, gammaln,  # noqa: F401
-    gammainc, gammaincc, logit, expit, entr, rel_entr, xlogy,  # noqa: F401
-    chdtrc  # noqa: F401
-)
-
-_SCIPY_ARRAY_API = os.environ.get("SCIPY_ARRAY_API", False)
-array_api_compat_prefix = "scipy._lib.array_api_compat"
-
-
-def get_array_special_func(f_name, xp, n_array_args):
-    spx = scipy_namespace_for(xp)
-    f = None
-    if is_numpy(xp):
-        f = getattr(_ufuncs, f_name, None)
-    elif is_torch(xp):
-        f = getattr(xp.special, f_name, None)
-    elif spx is not scipy:
-        f = getattr(spx.special, f_name, None)
-
-    if f is not None:
-        return f
-
-    # if generic array-API implementation is available, use that;
-    # otherwise, fall back to NumPy/SciPy
-    if f_name in _generic_implementations:
-        _f = _generic_implementations[f_name](xp=xp, spx=spx)
-        if _f is not None:
-            return _f
-
-    _f = getattr(_ufuncs, f_name, None)
-    def f(*args, _f=_f, _xp=xp, **kwargs):
-        array_args = args[:n_array_args]
-        other_args = args[n_array_args:]
-        array_args = [np.asarray(arg) for arg in array_args]
-        out = _f(*array_args, *other_args, **kwargs)
-        return _xp.asarray(out)
-
-    return f
-
-
-def _get_shape_dtype(*args, xp):
-    args = xp.broadcast_arrays(*args)
-    shape = args[0].shape
-    dtype = xp.result_type(*args)
-    if xp.isdtype(dtype, 'integral'):
-        dtype = xp.float64
-        args = [xp.asarray(arg, dtype=dtype) for arg in args]
-    return args, shape, dtype
-
-
-def _rel_entr(xp, spx):
-    def __rel_entr(x, y, *, xp=xp):
-        args, shape, dtype = _get_shape_dtype(x, y, xp=xp)
-        x, y = args
-        res = xp.full(x.shape, xp.inf, dtype=dtype)
-        res[(x == 0) & (y >= 0)] = xp.asarray(0, dtype=dtype)
-        i = (x > 0) & (y > 0)
-        res[i] = x[i] * (xp.log(x[i]) - xp.log(y[i]))
-        return res
-    return __rel_entr
-
-
-def _xlogy(xp, spx):
-    def __xlogy(x, y, *, xp=xp):
-        with np.errstate(divide='ignore', invalid='ignore'):
-            temp = x * xp.log(y)
-        return xp.where(x == 0., xp.asarray(0., dtype=temp.dtype), temp)
-    return __xlogy
-
-
-def _chdtrc(xp, spx):
-    # The difference between this and just using `gammaincc`
-    # defined by `get_array_special_func` is that if `gammaincc`
-    # isn't found, we don't want to use the SciPy version; we'll
-    # return None here and use the SciPy version of `chdtrc`..
-    gammaincc = getattr(spx, 'gammaincc', None)  # noqa: F811
-    if gammaincc is None and hasattr(xp, 'special'):
-        gammaincc = getattr(xp.special, 'gammaincc', None)
-    if gammaincc is None:
-        return None
-
-    def __chdtrc(v, x):
-        res = xp.where(x >= 0, gammaincc(v/2, x/2), 1)
-        i_nan = ((x == 0) & (v == 0)) | xp.isnan(x) | xp.isnan(v)
-        res = xp.where(i_nan, xp.nan, res)
-        return res
-    return __chdtrc
-
-
-_generic_implementations = {'rel_entr': _rel_entr,
-                            'xlogy': _xlogy,
-                            'chdtrc': _chdtrc}
-
-
-# functools.wraps doesn't work because:
-# 'numpy.ufunc' object has no attribute '__module__'
-def support_alternative_backends(f_name, n_array_args):
-    func = getattr(_ufuncs, f_name)
-
-    @functools.wraps(func)
-    def wrapped(*args, **kwargs):
-        xp = array_namespace(*args[:n_array_args])
-        f = get_array_special_func(f_name, xp, n_array_args)
-        return f(*args, **kwargs)
-
-    return wrapped
-
-
-array_special_func_map = {
-    'log_ndtr': 1,
-    'ndtr': 1,
-    'ndtri': 1,
-    'erf': 1,
-    'erfc': 1,
-    'i0': 1,
-    'i0e': 1,
-    'i1': 1,
-    'i1e': 1,
-    'gammaln': 1,
-    'gammainc': 2,
-    'gammaincc': 2,
-    'logit': 1,
-    'expit': 1,
-    'entr': 1,
-    'rel_entr': 2,
-    'xlogy': 2,
-    'chdtrc': 2,
-}
-
-for f_name, n_array_args in array_special_func_map.items():
-    f = (support_alternative_backends(f_name, n_array_args) if _SCIPY_ARRAY_API
-         else getattr(_ufuncs, f_name))
-    sys.modules[__name__].__dict__[f_name] = f
-
-__all__ = list(array_special_func_map)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_test_internal.pyi b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_test_internal.pyi
deleted file mode 100644
index 0e209e366f0b37415159083434a053545bc78fae..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_test_internal.pyi
+++ /dev/null
@@ -1,9 +0,0 @@
-import numpy as np
-
-def have_fenv() -> bool: ...
-def random_double(size: int) -> np.float64: ...
-def test_add_round(size: int, mode: str): ...
-
-def _dd_exp(xhi: float, xlo: float) -> tuple[float, float]: ...
-def _dd_log(xhi: float, xlo: float) -> tuple[float, float]: ...
-def _dd_expm1(xhi: float, xlo: float) -> tuple[float, float]: ...
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_testutils.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_testutils.py
deleted file mode 100644
index 68c1eb3611143b3d6a4b7c02ca492d3b5d03bbcc..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_testutils.py
+++ /dev/null
@@ -1,321 +0,0 @@
-import os
-import functools
-import operator
-from scipy._lib import _pep440
-
-import numpy as np
-from numpy.testing import assert_
-import pytest
-
-import scipy.special as sc
-
-__all__ = ['with_special_errors', 'assert_func_equal', 'FuncData']
-
-
-#------------------------------------------------------------------------------
-# Check if a module is present to be used in tests
-#------------------------------------------------------------------------------
-
-class MissingModule:
-    def __init__(self, name):
-        self.name = name
-
-
-def check_version(module, min_ver):
-    if type(module) == MissingModule:
-        return pytest.mark.skip(reason=f"{module.name} is not installed")
-    return pytest.mark.skipif(
-        _pep440.parse(module.__version__) < _pep440.Version(min_ver),
-        reason=f"{module.__name__} version >= {min_ver} required"
-    )
-
-
-#------------------------------------------------------------------------------
-# Enable convergence and loss of precision warnings -- turn off one by one
-#------------------------------------------------------------------------------
-
-def with_special_errors(func):
-    """
-    Enable special function errors (such as underflow, overflow,
-    loss of precision, etc.)
-    """
-    @functools.wraps(func)
-    def wrapper(*a, **kw):
-        with sc.errstate(all='raise'):
-            res = func(*a, **kw)
-        return res
-    return wrapper
-
-
-#------------------------------------------------------------------------------
-# Comparing function values at many data points at once, with helpful
-# error reports
-#------------------------------------------------------------------------------
-
-def assert_func_equal(func, results, points, rtol=None, atol=None,
-                      param_filter=None, knownfailure=None,
-                      vectorized=True, dtype=None, nan_ok=False,
-                      ignore_inf_sign=False, distinguish_nan_and_inf=True):
-    if hasattr(points, 'next'):
-        # it's a generator
-        points = list(points)
-
-    points = np.asarray(points)
-    if points.ndim == 1:
-        points = points[:,None]
-    nparams = points.shape[1]
-
-    if hasattr(results, '__name__'):
-        # function
-        data = points
-        result_columns = None
-        result_func = results
-    else:
-        # dataset
-        data = np.c_[points, results]
-        result_columns = list(range(nparams, data.shape[1]))
-        result_func = None
-
-    fdata = FuncData(func, data, list(range(nparams)),
-                     result_columns=result_columns, result_func=result_func,
-                     rtol=rtol, atol=atol, param_filter=param_filter,
-                     knownfailure=knownfailure, nan_ok=nan_ok, vectorized=vectorized,
-                     ignore_inf_sign=ignore_inf_sign,
-                     distinguish_nan_and_inf=distinguish_nan_and_inf)
-    fdata.check()
-
-
-class FuncData:
-    """
-    Data set for checking a special function.
-
-    Parameters
-    ----------
-    func : function
-        Function to test
-    data : numpy array
-        columnar data to use for testing
-    param_columns : int or tuple of ints
-        Columns indices in which the parameters to `func` lie.
-        Can be imaginary integers to indicate that the parameter
-        should be cast to complex.
-    result_columns : int or tuple of ints, optional
-        Column indices for expected results from `func`.
-    result_func : callable, optional
-        Function to call to obtain results.
-    rtol : float, optional
-        Required relative tolerance. Default is 5*eps.
-    atol : float, optional
-        Required absolute tolerance. Default is 5*tiny.
-    param_filter : function, or tuple of functions/Nones, optional
-        Filter functions to exclude some parameter ranges.
-        If omitted, no filtering is done.
-    knownfailure : str, optional
-        Known failure error message to raise when the test is run.
-        If omitted, no exception is raised.
-    nan_ok : bool, optional
-        If nan is always an accepted result.
-    vectorized : bool, optional
-        Whether all functions passed in are vectorized.
-    ignore_inf_sign : bool, optional
-        Whether to ignore signs of infinities.
-        (Doesn't matter for complex-valued functions.)
-    distinguish_nan_and_inf : bool, optional
-        If True, treat numbers which contain nans or infs as
-        equal. Sets ignore_inf_sign to be True.
-
-    """
-
-    def __init__(self, func, data, param_columns, result_columns=None,
-                 result_func=None, rtol=None, atol=None, param_filter=None,
-                 knownfailure=None, dataname=None, nan_ok=False, vectorized=True,
-                 ignore_inf_sign=False, distinguish_nan_and_inf=True):
-        self.func = func
-        self.data = data
-        self.dataname = dataname
-        if not hasattr(param_columns, '__len__'):
-            param_columns = (param_columns,)
-        self.param_columns = tuple(param_columns)
-        if result_columns is not None:
-            if not hasattr(result_columns, '__len__'):
-                result_columns = (result_columns,)
-            self.result_columns = tuple(result_columns)
-            if result_func is not None:
-                message = "Only result_func or result_columns should be provided"
-                raise ValueError(message)
-        elif result_func is not None:
-            self.result_columns = None
-        else:
-            raise ValueError("Either result_func or result_columns should be provided")
-        self.result_func = result_func
-        self.rtol = rtol
-        self.atol = atol
-        if not hasattr(param_filter, '__len__'):
-            param_filter = (param_filter,)
-        self.param_filter = param_filter
-        self.knownfailure = knownfailure
-        self.nan_ok = nan_ok
-        self.vectorized = vectorized
-        self.ignore_inf_sign = ignore_inf_sign
-        self.distinguish_nan_and_inf = distinguish_nan_and_inf
-        if not self.distinguish_nan_and_inf:
-            self.ignore_inf_sign = True
-
-    def get_tolerances(self, dtype):
-        if not np.issubdtype(dtype, np.inexact):
-            dtype = np.dtype(float)
-        info = np.finfo(dtype)
-        rtol, atol = self.rtol, self.atol
-        if rtol is None:
-            rtol = 5*info.eps
-        if atol is None:
-            atol = 5*info.tiny
-        return rtol, atol
-
-    def check(self, data=None, dtype=None, dtypes=None):
-        """Check the special function against the data."""
-        __tracebackhide__ = operator.methodcaller(
-            'errisinstance', AssertionError
-        )
-
-        if self.knownfailure:
-            pytest.xfail(reason=self.knownfailure)
-
-        if data is None:
-            data = self.data
-
-        if dtype is None:
-            dtype = data.dtype
-        else:
-            data = data.astype(dtype)
-
-        rtol, atol = self.get_tolerances(dtype)
-
-        # Apply given filter functions
-        if self.param_filter:
-            param_mask = np.ones((data.shape[0],), np.bool_)
-            for j, filter in zip(self.param_columns, self.param_filter):
-                if filter:
-                    param_mask &= list(filter(data[:,j]))
-            data = data[param_mask]
-
-        # Pick parameters from the correct columns
-        params = []
-        for idx, j in enumerate(self.param_columns):
-            if np.iscomplexobj(j):
-                j = int(j.imag)
-                params.append(data[:,j].astype(complex))
-            elif dtypes and idx < len(dtypes):
-                params.append(data[:, j].astype(dtypes[idx]))
-            else:
-                params.append(data[:,j])
-
-        # Helper for evaluating results
-        def eval_func_at_params(func, skip_mask=None):
-            if self.vectorized:
-                got = func(*params)
-            else:
-                got = []
-                for j in range(len(params[0])):
-                    if skip_mask is not None and skip_mask[j]:
-                        got.append(np.nan)
-                        continue
-                    got.append(func(*tuple([params[i][j] for i in range(len(params))])))
-                got = np.asarray(got)
-            if not isinstance(got, tuple):
-                got = (got,)
-            return got
-
-        # Evaluate function to be tested
-        got = eval_func_at_params(self.func)
-
-        # Grab the correct results
-        if self.result_columns is not None:
-            # Correct results passed in with the data
-            wanted = tuple([data[:,icol] for icol in self.result_columns])
-        else:
-            # Function producing correct results passed in
-            skip_mask = None
-            if self.nan_ok and len(got) == 1:
-                # Don't spend time evaluating what doesn't need to be evaluated
-                skip_mask = np.isnan(got[0])
-            wanted = eval_func_at_params(self.result_func, skip_mask=skip_mask)
-
-        # Check the validity of each output returned
-        assert_(len(got) == len(wanted))
-
-        for output_num, (x, y) in enumerate(zip(got, wanted)):
-            if np.issubdtype(x.dtype, np.complexfloating) or self.ignore_inf_sign:
-                pinf_x = np.isinf(x)
-                pinf_y = np.isinf(y)
-                minf_x = np.isinf(x)
-                minf_y = np.isinf(y)
-            else:
-                pinf_x = np.isposinf(x)
-                pinf_y = np.isposinf(y)
-                minf_x = np.isneginf(x)
-                minf_y = np.isneginf(y)
-            nan_x = np.isnan(x)
-            nan_y = np.isnan(y)
-
-            with np.errstate(all='ignore'):
-                abs_y = np.absolute(y)
-                abs_y[~np.isfinite(abs_y)] = 0
-                diff = np.absolute(x - y)
-                diff[~np.isfinite(diff)] = 0
-
-                rdiff = diff / np.absolute(y)
-                rdiff[~np.isfinite(rdiff)] = 0
-
-            tol_mask = (diff <= atol + rtol*abs_y)
-            pinf_mask = (pinf_x == pinf_y)
-            minf_mask = (minf_x == minf_y)
-
-            nan_mask = (nan_x == nan_y)
-
-            bad_j = ~(tol_mask & pinf_mask & minf_mask & nan_mask)
-
-            point_count = bad_j.size
-            if self.nan_ok:
-                bad_j &= ~nan_x
-                bad_j &= ~nan_y
-                point_count -= (nan_x | nan_y).sum()
-
-            if not self.distinguish_nan_and_inf and not self.nan_ok:
-                # If nan's are okay we've already covered all these cases
-                inf_x = np.isinf(x)
-                inf_y = np.isinf(y)
-                both_nonfinite = (inf_x & nan_y) | (nan_x & inf_y)
-                bad_j &= ~both_nonfinite
-                point_count -= both_nonfinite.sum()
-
-            if np.any(bad_j):
-                # Some bad results: inform what, where, and how bad
-                msg = [""]
-                msg.append("Max |adiff|: %g" % diff[bad_j].max())
-                msg.append("Max |rdiff|: %g" % rdiff[bad_j].max())
-                msg.append("Bad results (%d out of %d) for the following points "
-                           "(in output %d):"
-                           % (np.sum(bad_j), point_count, output_num,))
-                for j in np.nonzero(bad_j)[0]:
-                    j = int(j)
-                    def fmt(x):
-                        return '%30s' % np.array2string(x[j], precision=18)
-                    a = "  ".join(map(fmt, params))
-                    b = "  ".join(map(fmt, got))
-                    c = "  ".join(map(fmt, wanted))
-                    d = fmt(rdiff)
-                    msg.append(f"{a} => {b} != {c}  (rdiff {d})")
-                assert_(False, "\n".join(msg))
-
-    def __repr__(self):
-        """Pretty-printing, esp. for Nose output"""
-        if np.any(list(map(np.iscomplexobj, self.param_columns))):
-            is_complex = " (complex)"
-        else:
-            is_complex = ""
-        if self.dataname:
-            return "".format(self.func.__name__, is_complex,
-                                            os.path.basename(self.dataname))
-        else:
-            return f""
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs.pyi b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs.pyi
deleted file mode 100644
index 3f0cf70149ae9e797c9e14ef8f51024ca5b9933f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs.pyi
+++ /dev/null
@@ -1,525 +0,0 @@
-from typing import Any, Dict
-
-import numpy as np
-
-__all__ = [
-    'geterr',
-    'seterr',
-    'errstate',
-    'agm',
-    'airy',
-    'airye',
-    'bdtr',
-    'bdtrc',
-    'bdtri',
-    'bdtrik',
-    'bdtrin',
-    'bei',
-    'beip',
-    'ber',
-    'berp',
-    'besselpoly',
-    'beta',
-    'betainc',
-    'betaincc',
-    'betainccinv',
-    'betaincinv',
-    'betaln',
-    'binom',
-    'boxcox',
-    'boxcox1p',
-    'btdtr',
-    'btdtri',
-    'btdtria',
-    'btdtrib',
-    'cbrt',
-    'chdtr',
-    'chdtrc',
-    'chdtri',
-    'chdtriv',
-    'chndtr',
-    'chndtridf',
-    'chndtrinc',
-    'chndtrix',
-    'cosdg',
-    'cosm1',
-    'cotdg',
-    'dawsn',
-    'ellipe',
-    'ellipeinc',
-    'ellipj',
-    'ellipk',
-    'ellipkinc',
-    'ellipkm1',
-    'elliprc',
-    'elliprd',
-    'elliprf',
-    'elliprg',
-    'elliprj',
-    'entr',
-    'erf',
-    'erfc',
-    'erfcinv',
-    'erfcx',
-    'erfi',
-    'erfinv',
-    'eval_chebyc',
-    'eval_chebys',
-    'eval_chebyt',
-    'eval_chebyu',
-    'eval_gegenbauer',
-    'eval_genlaguerre',
-    'eval_hermite',
-    'eval_hermitenorm',
-    'eval_jacobi',
-    'eval_laguerre',
-    'eval_legendre',
-    'eval_sh_chebyt',
-    'eval_sh_chebyu',
-    'eval_sh_jacobi',
-    'eval_sh_legendre',
-    'exp1',
-    'exp10',
-    'exp2',
-    'expi',
-    'expit',
-    'expm1',
-    'expn',
-    'exprel',
-    'fdtr',
-    'fdtrc',
-    'fdtri',
-    'fdtridfd',
-    'fresnel',
-    'gamma',
-    'gammainc',
-    'gammaincc',
-    'gammainccinv',
-    'gammaincinv',
-    'gammaln',
-    'gammasgn',
-    'gdtr',
-    'gdtrc',
-    'gdtria',
-    'gdtrib',
-    'gdtrix',
-    'hankel1',
-    'hankel1e',
-    'hankel2',
-    'hankel2e',
-    'huber',
-    'hyp0f1',
-    'hyp1f1',
-    'hyp2f1',
-    'hyperu',
-    'i0',
-    'i0e',
-    'i1',
-    'i1e',
-    'inv_boxcox',
-    'inv_boxcox1p',
-    'it2i0k0',
-    'it2j0y0',
-    'it2struve0',
-    'itairy',
-    'iti0k0',
-    'itj0y0',
-    'itmodstruve0',
-    'itstruve0',
-    'iv',
-    'ive',
-    'j0',
-    'j1',
-    'jn',
-    'jv',
-    'jve',
-    'k0',
-    'k0e',
-    'k1',
-    'k1e',
-    'kei',
-    'keip',
-    'kelvin',
-    'ker',
-    'kerp',
-    'kl_div',
-    'kn',
-    'kolmogi',
-    'kolmogorov',
-    'kv',
-    'kve',
-    'log1p',
-    'log_expit',
-    'log_ndtr',
-    'log_wright_bessel',
-    'loggamma',
-    'logit',
-    'lpmv',
-    'mathieu_a',
-    'mathieu_b',
-    'mathieu_cem',
-    'mathieu_modcem1',
-    'mathieu_modcem2',
-    'mathieu_modsem1',
-    'mathieu_modsem2',
-    'mathieu_sem',
-    'modfresnelm',
-    'modfresnelp',
-    'modstruve',
-    'nbdtr',
-    'nbdtrc',
-    'nbdtri',
-    'nbdtrik',
-    'nbdtrin',
-    'ncfdtr',
-    'ncfdtri',
-    'ncfdtridfd',
-    'ncfdtridfn',
-    'ncfdtrinc',
-    'nctdtr',
-    'nctdtridf',
-    'nctdtrinc',
-    'nctdtrit',
-    'ndtr',
-    'ndtri',
-    'ndtri_exp',
-    'nrdtrimn',
-    'nrdtrisd',
-    'obl_ang1',
-    'obl_ang1_cv',
-    'obl_cv',
-    'obl_rad1',
-    'obl_rad1_cv',
-    'obl_rad2',
-    'obl_rad2_cv',
-    'owens_t',
-    'pbdv',
-    'pbvv',
-    'pbwa',
-    'pdtr',
-    'pdtrc',
-    'pdtri',
-    'pdtrik',
-    'poch',
-    'powm1',
-    'pro_ang1',
-    'pro_ang1_cv',
-    'pro_cv',
-    'pro_rad1',
-    'pro_rad1_cv',
-    'pro_rad2',
-    'pro_rad2_cv',
-    'pseudo_huber',
-    'psi',
-    'radian',
-    'rel_entr',
-    'rgamma',
-    'round',
-    'shichi',
-    'sici',
-    'sindg',
-    'smirnov',
-    'smirnovi',
-    'spence',
-    'sph_harm',
-    'stdtr',
-    'stdtridf',
-    'stdtrit',
-    'struve',
-    'tandg',
-    'tklmbda',
-    'voigt_profile',
-    'wofz',
-    'wright_bessel',
-    'wrightomega',
-    'xlog1py',
-    'xlogy',
-    'y0',
-    'y1',
-    'yn',
-    'yv',
-    'yve',
-    'zetac'
-]
-
-def geterr() -> Dict[str, str]: ...
-def seterr(**kwargs: str) -> Dict[str, str]: ...
-
-class errstate:
-    def __init__(self, **kargs: str) -> None: ...
-    def __enter__(self) -> None: ...
-    def __exit__(
-        self,
-        exc_type: Any,  # Unused
-        exc_value: Any,  # Unused
-        traceback: Any,  # Unused
-    ) -> None: ...
-
-_cosine_cdf: np.ufunc
-_cosine_invcdf: np.ufunc
-_cospi: np.ufunc
-_ellip_harm: np.ufunc
-_factorial: np.ufunc
-_igam_fac: np.ufunc
-_kolmogc: np.ufunc
-_kolmogci: np.ufunc
-_kolmogp: np.ufunc
-_lambertw: np.ufunc
-_lanczos_sum_expg_scaled: np.ufunc
-_lgam1p: np.ufunc
-_log1pmx: np.ufunc
-_riemann_zeta: np.ufunc
-_scaled_exp1: np.ufunc
-_sf_error_test_function: np.ufunc
-_sinpi: np.ufunc
-_smirnovc: np.ufunc
-_smirnovci: np.ufunc
-_smirnovp: np.ufunc
-_spherical_in: np.ufunc
-_spherical_in_d: np.ufunc
-_spherical_jn: np.ufunc
-_spherical_jn_d: np.ufunc
-_spherical_kn: np.ufunc
-_spherical_kn_d: np.ufunc
-_spherical_yn: np.ufunc
-_spherical_yn_d: np.ufunc
-_stirling2_inexact: np.ufunc
-_struve_asymp_large_z: np.ufunc
-_struve_bessel_series: np.ufunc
-_struve_power_series: np.ufunc
-_zeta: np.ufunc
-agm: np.ufunc
-airy: np.ufunc
-airye: np.ufunc
-bdtr: np.ufunc
-bdtrc: np.ufunc
-bdtri: np.ufunc
-bdtrik: np.ufunc
-bdtrin: np.ufunc
-bei: np.ufunc
-beip: np.ufunc
-ber: np.ufunc
-berp: np.ufunc
-besselpoly: np.ufunc
-beta: np.ufunc
-betainc: np.ufunc
-betaincc: np.ufunc
-betainccinv: np.ufunc
-betaincinv: np.ufunc
-betaln: np.ufunc
-binom: np.ufunc
-boxcox1p: np.ufunc
-boxcox: np.ufunc
-btdtr: np.ufunc
-btdtri: np.ufunc
-btdtria: np.ufunc
-btdtrib: np.ufunc
-cbrt: np.ufunc
-chdtr: np.ufunc
-chdtrc: np.ufunc
-chdtri: np.ufunc
-chdtriv: np.ufunc
-chndtr: np.ufunc
-chndtridf: np.ufunc
-chndtrinc: np.ufunc
-chndtrix: np.ufunc
-cosdg: np.ufunc
-cosm1: np.ufunc
-cotdg: np.ufunc
-dawsn: np.ufunc
-ellipe: np.ufunc
-ellipeinc: np.ufunc
-ellipj: np.ufunc
-ellipk: np.ufunc
-ellipkinc: np.ufunc
-ellipkm1: np.ufunc
-elliprc: np.ufunc
-elliprd: np.ufunc
-elliprf: np.ufunc
-elliprg: np.ufunc
-elliprj: np.ufunc
-entr: np.ufunc
-erf: np.ufunc
-erfc: np.ufunc
-erfcinv: np.ufunc
-erfcx: np.ufunc
-erfi: np.ufunc
-erfinv: np.ufunc
-eval_chebyc: np.ufunc
-eval_chebys: np.ufunc
-eval_chebyt: np.ufunc
-eval_chebyu: np.ufunc
-eval_gegenbauer: np.ufunc
-eval_genlaguerre: np.ufunc
-eval_hermite: np.ufunc
-eval_hermitenorm: np.ufunc
-eval_jacobi: np.ufunc
-eval_laguerre: np.ufunc
-eval_legendre: np.ufunc
-eval_sh_chebyt: np.ufunc
-eval_sh_chebyu: np.ufunc
-eval_sh_jacobi: np.ufunc
-eval_sh_legendre: np.ufunc
-exp10: np.ufunc
-exp1: np.ufunc
-exp2: np.ufunc
-expi: np.ufunc
-expit: np.ufunc
-expm1: np.ufunc
-expn: np.ufunc
-exprel: np.ufunc
-fdtr: np.ufunc
-fdtrc: np.ufunc
-fdtri: np.ufunc
-fdtridfd: np.ufunc
-fresnel: np.ufunc
-gamma: np.ufunc
-gammainc: np.ufunc
-gammaincc: np.ufunc
-gammainccinv: np.ufunc
-gammaincinv: np.ufunc
-gammaln: np.ufunc
-gammasgn: np.ufunc
-gdtr: np.ufunc
-gdtrc: np.ufunc
-gdtria: np.ufunc
-gdtrib: np.ufunc
-gdtrix: np.ufunc
-hankel1: np.ufunc
-hankel1e: np.ufunc
-hankel2: np.ufunc
-hankel2e: np.ufunc
-huber: np.ufunc
-hyp0f1: np.ufunc
-hyp1f1: np.ufunc
-hyp2f1: np.ufunc
-hyperu: np.ufunc
-i0: np.ufunc
-i0e: np.ufunc
-i1: np.ufunc
-i1e: np.ufunc
-inv_boxcox1p: np.ufunc
-inv_boxcox: np.ufunc
-it2i0k0: np.ufunc
-it2j0y0: np.ufunc
-it2struve0: np.ufunc
-itairy: np.ufunc
-iti0k0: np.ufunc
-itj0y0: np.ufunc
-itmodstruve0: np.ufunc
-itstruve0: np.ufunc
-iv: np.ufunc
-ive: np.ufunc
-j0: np.ufunc
-j1: np.ufunc
-jn: np.ufunc
-jv: np.ufunc
-jve: np.ufunc
-k0: np.ufunc
-k0e: np.ufunc
-k1: np.ufunc
-k1e: np.ufunc
-kei: np.ufunc
-keip: np.ufunc
-kelvin: np.ufunc
-ker: np.ufunc
-kerp: np.ufunc
-kl_div: np.ufunc
-kn: np.ufunc
-kolmogi: np.ufunc
-kolmogorov: np.ufunc
-kv: np.ufunc
-kve: np.ufunc
-log1p: np.ufunc
-log_expit: np.ufunc
-log_ndtr: np.ufunc
-log_wright_bessel: np.ufunc
-loggamma: np.ufunc
-logit: np.ufunc
-lpmv: np.ufunc
-mathieu_a: np.ufunc
-mathieu_b: np.ufunc
-mathieu_cem: np.ufunc
-mathieu_modcem1: np.ufunc
-mathieu_modcem2: np.ufunc
-mathieu_modsem1: np.ufunc
-mathieu_modsem2: np.ufunc
-mathieu_sem: np.ufunc
-modfresnelm: np.ufunc
-modfresnelp: np.ufunc
-modstruve: np.ufunc
-nbdtr: np.ufunc
-nbdtrc: np.ufunc
-nbdtri: np.ufunc
-nbdtrik: np.ufunc
-nbdtrin: np.ufunc
-ncfdtr: np.ufunc
-ncfdtri: np.ufunc
-ncfdtridfd: np.ufunc
-ncfdtridfn: np.ufunc
-ncfdtrinc: np.ufunc
-nctdtr: np.ufunc
-nctdtridf: np.ufunc
-nctdtrinc: np.ufunc
-nctdtrit: np.ufunc
-ndtr: np.ufunc
-ndtri: np.ufunc
-ndtri_exp: np.ufunc
-nrdtrimn: np.ufunc
-nrdtrisd: np.ufunc
-obl_ang1: np.ufunc
-obl_ang1_cv: np.ufunc
-obl_cv: np.ufunc
-obl_rad1: np.ufunc
-obl_rad1_cv: np.ufunc
-obl_rad2: np.ufunc
-obl_rad2_cv: np.ufunc
-owens_t: np.ufunc
-pbdv: np.ufunc
-pbvv: np.ufunc
-pbwa: np.ufunc
-pdtr: np.ufunc
-pdtrc: np.ufunc
-pdtri: np.ufunc
-pdtrik: np.ufunc
-poch: np.ufunc
-powm1: np.ufunc
-pro_ang1: np.ufunc
-pro_ang1_cv: np.ufunc
-pro_cv: np.ufunc
-pro_rad1: np.ufunc
-pro_rad1_cv: np.ufunc
-pro_rad2: np.ufunc
-pro_rad2_cv: np.ufunc
-pseudo_huber: np.ufunc
-psi: np.ufunc
-radian: np.ufunc
-rel_entr: np.ufunc
-rgamma: np.ufunc
-round: np.ufunc
-shichi: np.ufunc
-sici: np.ufunc
-sindg: np.ufunc
-smirnov: np.ufunc
-smirnovi: np.ufunc
-spence: np.ufunc
-sph_harm: np.ufunc
-stdtr: np.ufunc
-stdtridf: np.ufunc
-stdtrit: np.ufunc
-struve: np.ufunc
-tandg: np.ufunc
-tklmbda: np.ufunc
-voigt_profile: np.ufunc
-wofz: np.ufunc
-wright_bessel: np.ufunc
-wrightomega: np.ufunc
-xlog1py: np.ufunc
-xlogy: np.ufunc
-y0: np.ufunc
-y1: np.ufunc
-yn: np.ufunc
-yv: np.ufunc
-yve: np.ufunc
-zetac: np.ufunc
-
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs.pyx b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs.pyx
deleted file mode 100644
index bdf10e7500b9b1757a0e160def9ba4de446b5471..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs.pyx
+++ /dev/null
@@ -1,17266 +0,0 @@
-# This file is automatically generated by _generate_pyx.py.
-# Do not edit manually!
-
-from libc.math cimport NAN
-
-include "_ufuncs_extra_code_common.pxi"
-include "_ufuncs_extra_code.pxi"
-__all__ = ['agm', 'bdtr', 'bdtrc', 'bdtri', 'bdtrik', 'bdtrin', 'besselpoly', 'beta', 'betainc', 'betaincc', 'betainccinv', 'betaincinv', 'betaln', 'boxcox', 'boxcox1p', 'btdtr', 'btdtri', 'btdtria', 'btdtrib', 'cbrt', 'chdtr', 'chdtrc', 'chdtri', 'chdtriv', 'chndtr', 'chndtridf', 'chndtrinc', 'chndtrix', 'cosdg', 'cosm1', 'cotdg', 'dawsn', 'ellipe', 'ellipeinc', 'ellipj', 'ellipk', 'ellipkinc', 'ellipkm1', 'elliprc', 'elliprd', 'elliprf', 'elliprg', 'elliprj', 'entr', 'erf', 'erfc', 'erfcinv', 'erfcx', 'erfi', 'erfinv', 'eval_chebyc', 'eval_chebys', 'eval_chebyt', 'eval_chebyu', 'eval_gegenbauer', 'eval_genlaguerre', 'eval_hermite', 'eval_hermitenorm', 'eval_jacobi', 'eval_laguerre', 'eval_legendre', 'eval_sh_chebyt', 'eval_sh_chebyu', 'eval_sh_jacobi', 'eval_sh_legendre', 'exp10', 'exp2', 'expm1', 'expn', 'fdtr', 'fdtrc', 'fdtri', 'fdtridfd', 'fresnel', 'gammainc', 'gammaincc', 'gammainccinv', 'gammaincinv', 'gammasgn', 'gdtr', 'gdtrc', 'gdtria', 'gdtrib', 'gdtrix', 'huber', 'hyp0f1', 'hyp1f1', 'hyperu', 'i0', 'i0e', 'i1', 'i1e', 'inv_boxcox', 'inv_boxcox1p', 'j0', 'j1', 'k0', 'k0e', 'k1', 'k1e', 'kl_div', 'kn', 'kolmogi', 'kolmogorov', 'log1p', 'log_ndtr', 'lpmv', 'modstruve', 'nbdtr', 'nbdtrc', 'nbdtri', 'nbdtrik', 'nbdtrin', 'ncfdtr', 'ncfdtri', 'ncfdtridfd', 'ncfdtridfn', 'ncfdtrinc', 'nctdtr', 'nctdtridf', 'nctdtrinc', 'nctdtrit', 'ndtr', 'ndtri', 'ndtri_exp', 'nrdtrimn', 'nrdtrisd', 'owens_t', 'pdtr', 'pdtrc', 'pdtri', 'pdtrik', 'poch', 'powm1', 'pseudo_huber', 'radian', 'rel_entr', 'round', 'shichi', 'sici', 'sindg', 'smirnov', 'smirnovi', 'spence', 'stdtr', 'stdtridf', 'stdtrit', 'struve', 'tandg', 'tklmbda', 'voigt_profile', 'wofz', 'wrightomega', 'xlog1py', 'xlogy', 'y0', 'y1', 'yn', 'zetac', 'geterr', 'seterr', 'errstate', 'jn', 'airy', 'airye', 'bei', 'beip', 'ber', 'berp', 'binom', 'exp1', 'expi', 'expit', 'exprel', 'gamma', 'gammaln', 'hankel1', 'hankel1e', 'hankel2', 'hankel2e', 'hyp2f1', 'it2i0k0', 'it2j0y0', 'it2struve0', 'itairy', 'iti0k0', 'itj0y0', 'itmodstruve0', 'itstruve0', 'iv', 'ive', 'jv', 'jve', 'kei', 'keip', 'kelvin', 'ker', 'kerp', 'kv', 'kve', 'log_expit', 'log_wright_bessel', 'loggamma', 'logit', 'mathieu_a', 'mathieu_b', 'mathieu_cem', 'mathieu_modcem1', 'mathieu_modcem2', 'mathieu_modsem1', 'mathieu_modsem2', 'mathieu_sem', 'modfresnelm', 'modfresnelp', 'obl_ang1', 'obl_ang1_cv', 'obl_cv', 'obl_rad1', 'obl_rad1_cv', 'obl_rad2', 'obl_rad2_cv', 'pbdv', 'pbvv', 'pbwa', 'pro_ang1', 'pro_ang1_cv', 'pro_cv', 'pro_rad1', 'pro_rad1_cv', 'pro_rad2', 'pro_rad2_cv', 'psi', 'rgamma', 'sph_harm', 'wright_bessel', 'yv', 'yve']
-cdef void loop_D_DDDD__As_DDDD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *op0 = args[4]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        op0 += steps[4]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_DDDD__As_FFFF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *op0 = args[4]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        op0 += steps[4]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_DDD__As_DDD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_DDD__As_FFF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_DD__As_DD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *op0 = args[2]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        op0 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_DD__As_FF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *op0 = args[2]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        op0 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_D__As_D_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *op0 = args[1]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        op0 += steps[1]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_D__As_F_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *op0 = args[1]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        op0 += steps[1]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_dD__As_dD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *op0 = args[2]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        op0 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_dD__As_fF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *op0 = args[2]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        op0 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_ddD__As_ddD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_ddD__As_ffF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_dddD__As_dddD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *op0 = args[4]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        op0 += steps[4]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_D_dddD__As_fffF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *op0 = args[4]
-    cdef double complex ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        op0 += steps[4]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_d__As_d_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *op0 = args[1]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        op0 += steps[1]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_d__As_f_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *op0 = args[1]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        op0 += steps[1]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_dd__As_dd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *op0 = args[2]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        op0 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_dd__As_ff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *op0 = args[2]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        op0 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_ddd__As_ddd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_ddd__As_fff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_dddd__As_dddd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *op0 = args[4]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        op0 += steps[4]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_dddd__As_ffff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *op0 = args[4]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        op0 += steps[4]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_ddddddd__As_ddddddd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *ip4 = args[4]
-    cdef char *ip5 = args[5]
-    cdef char *ip6 = args[6]
-    cdef char *op0 = args[7]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0], (ip4)[0], (ip5)[0], (ip6)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        ip4 += steps[4]
-        ip5 += steps[5]
-        ip6 += steps[6]
-        op0 += steps[7]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_ddddddd__As_fffffff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *ip4 = args[4]
-    cdef char *ip5 = args[5]
-    cdef char *ip6 = args[6]
-    cdef char *op0 = args[7]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0], (ip4)[0], (ip5)[0], (ip6)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        ip4 += steps[4]
-        ip5 += steps[5]
-        ip6 += steps[6]
-        op0 += steps[7]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_ddiiddd__As_ddllddd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *ip4 = args[4]
-    cdef char *ip5 = args[5]
-    cdef char *ip6 = args[6]
-    cdef char *op0 = args[7]
-    cdef double ov0
-    for i in range(n):
-        if (ip2)[0] == (ip2)[0] and (ip3)[0] == (ip3)[0]:
-            ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0], (ip4)[0], (ip5)[0], (ip6)[0])
-        else:
-            sf_error.error(func_name, sf_error.DOMAIN, "invalid input argument")
-            ov0 = NAN
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        ip4 += steps[4]
-        ip5 += steps[5]
-        ip6 += steps[6]
-        op0 += steps[7]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_ddp_d_As_ddp_dd(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef char *op1 = args[4]
-    cdef double ov0
-    cdef double ov1
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], &ov1)
-        (op0)[0] = ov0
-        (op1)[0] = ov1
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-        op1 += steps[4]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_dpd__As_dpd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_pd__As_pd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *op0 = args[2]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        op0 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_pdd__As_pdd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_pddd__As_pddd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *op0 = args[4]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        op0 += steps[4]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_d_ppd__As_ppd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef double ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_f_f__As_f_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *op0 = args[1]
-    cdef float ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        op0 += steps[1]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_f_ff__As_ff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *op0 = args[2]
-    cdef float ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        op0 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_f_fff__As_fff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *op0 = args[3]
-    cdef float ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        op0 += steps[3]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_f_ffff__As_ffff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *ip2 = args[2]
-    cdef char *ip3 = args[3]
-    cdef char *op0 = args[4]
-    cdef float ov0
-    for i in range(n):
-        ov0 = (func)((ip0)[0], (ip1)[0], (ip2)[0], (ip3)[0])
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        ip1 += steps[1]
-        ip2 += steps[2]
-        ip3 += steps[3]
-        op0 += steps[4]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_i_D_DD_As_D_DD(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *op0 = args[1]
-    cdef char *op1 = args[2]
-    cdef double complex ov0
-    cdef double complex ov1
-    for i in range(n):
-        (func)((ip0)[0], &ov0, &ov1)
-        (op0)[0] = ov0
-        (op1)[0] = ov1
-        ip0 += steps[0]
-        op0 += steps[1]
-        op1 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_i_D_DD_As_F_FF(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *op0 = args[1]
-    cdef char *op1 = args[2]
-    cdef double complex ov0
-    cdef double complex ov1
-    for i in range(n):
-        (func)((ip0)[0], &ov0, &ov1)
-        (op0)[0] = ov0
-        (op1)[0] = ov1
-        ip0 += steps[0]
-        op0 += steps[1]
-        op1 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_i_d_dd_As_d_dd(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *op0 = args[1]
-    cdef char *op1 = args[2]
-    cdef double ov0
-    cdef double ov1
-    for i in range(n):
-        (func)((ip0)[0], &ov0, &ov1)
-        (op0)[0] = ov0
-        (op1)[0] = ov1
-        ip0 += steps[0]
-        op0 += steps[1]
-        op1 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_i_d_dd_As_f_ff(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *op0 = args[1]
-    cdef char *op1 = args[2]
-    cdef double ov0
-    cdef double ov1
-    for i in range(n):
-        (func)((ip0)[0], &ov0, &ov1)
-        (op0)[0] = ov0
-        (op1)[0] = ov1
-        ip0 += steps[0]
-        op0 += steps[1]
-        op1 += steps[2]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_i_dd_dddd_As_dd_dddd(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *op0 = args[2]
-    cdef char *op1 = args[3]
-    cdef char *op2 = args[4]
-    cdef char *op3 = args[5]
-    cdef double ov0
-    cdef double ov1
-    cdef double ov2
-    cdef double ov3
-    for i in range(n):
-        (func)((ip0)[0], (ip1)[0], &ov0, &ov1, &ov2, &ov3)
-        (op0)[0] = ov0
-        (op1)[0] = ov1
-        (op2)[0] = ov2
-        (op3)[0] = ov3
-        ip0 += steps[0]
-        ip1 += steps[1]
-        op0 += steps[2]
-        op1 += steps[3]
-        op2 += steps[4]
-        op3 += steps[5]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_i_dd_dddd_As_ff_ffff(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *ip1 = args[1]
-    cdef char *op0 = args[2]
-    cdef char *op1 = args[3]
-    cdef char *op2 = args[4]
-    cdef char *op3 = args[5]
-    cdef double ov0
-    cdef double ov1
-    cdef double ov2
-    cdef double ov3
-    for i in range(n):
-        (func)((ip0)[0], (ip1)[0], &ov0, &ov1, &ov2, &ov3)
-        (op0)[0] = ov0
-        (op1)[0] = ov1
-        (op2)[0] = ov2
-        (op3)[0] = ov3
-        ip0 += steps[0]
-        ip1 += steps[1]
-        op0 += steps[2]
-        op1 += steps[3]
-        op2 += steps[4]
-        op3 += steps[5]
-    sf_error.check_fpe(func_name)
-
-cdef void loop_i_i__As_l_l(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
-    cdef np.npy_intp i, n = dims[0]
-    cdef void *func = (data)[0]
-    cdef char *func_name = (data)[1]
-    cdef char *ip0 = args[0]
-    cdef char *op0 = args[1]
-    cdef int ov0
-    for i in range(n):
-        if (ip0)[0] == (ip0)[0]:
-            ov0 = (func)((ip0)[0])
-        else:
-            sf_error.error(func_name, sf_error.DOMAIN, "invalid input argument")
-            ov0 = 0xbad0bad0
-        (op0)[0] = ov0
-        ip0 += steps[0]
-        op0 += steps[1]
-    sf_error.check_fpe(func_name)
-
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cosine_cdf "cosine_cdf"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cosine_invcdf "cosine_invcdf"(double) noexcept nogil
-from ._ellip_harm cimport ellip_harmonic as _func_ellip_harmonic
-ctypedef double _proto_ellip_harmonic_t(double, double, int, int, double, double, double) noexcept nogil
-cdef _proto_ellip_harmonic_t *_proto_ellip_harmonic_t_var = &_func_ellip_harmonic
-from ._legacy cimport ellip_harmonic_unsafe as _func_ellip_harmonic_unsafe
-ctypedef double _proto_ellip_harmonic_unsafe_t(double, double, double, double, double, double, double) noexcept nogil
-cdef _proto_ellip_harmonic_unsafe_t *_proto_ellip_harmonic_unsafe_t_var = &_func_ellip_harmonic_unsafe
-from ._factorial cimport _factorial as _func__factorial
-ctypedef double _proto__factorial_t(double) noexcept nogil
-cdef _proto__factorial_t *_proto__factorial_t_var = &_func__factorial
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_igam_fac "cephes_igam_fac"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_kolmogc "cephes_kolmogc"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_kolmogci "cephes_kolmogci"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_kolmogp "cephes_kolmogp"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_lanczos_sum_expg_scaled "cephes_lanczos_sum_expg_scaled"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_lgam1p "cephes_lgam1p"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_log1pmx "cephes_log1pmx"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_riemann_zeta "cephes_riemann_zeta"(double) noexcept nogil
-from .sf_error cimport _sf_error_test_function as _func__sf_error_test_function
-ctypedef int _proto__sf_error_test_function_t(int) noexcept nogil
-cdef _proto__sf_error_test_function_t *_proto__sf_error_test_function_t_var = &_func__sf_error_test_function
-from ._legacy cimport smirnovc_unsafe as _func_smirnovc_unsafe
-ctypedef double _proto_smirnovc_unsafe_t(double, double) noexcept nogil
-cdef _proto_smirnovc_unsafe_t *_proto_smirnovc_unsafe_t_var = &_func_smirnovc_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_smirnovc_wrap "cephes_smirnovc_wrap"(Py_ssize_t, double) noexcept nogil
-from ._legacy cimport smirnovci_unsafe as _func_smirnovci_unsafe
-ctypedef double _proto_smirnovci_unsafe_t(double, double) noexcept nogil
-cdef _proto_smirnovci_unsafe_t *_proto_smirnovci_unsafe_t_var = &_func_smirnovci_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_smirnovci_wrap "cephes_smirnovci_wrap"(Py_ssize_t, double) noexcept nogil
-from ._legacy cimport smirnovp_unsafe as _func_smirnovp_unsafe
-ctypedef double _proto_smirnovp_unsafe_t(double, double) noexcept nogil
-cdef _proto_smirnovp_unsafe_t *_proto_smirnovp_unsafe_t_var = &_func_smirnovp_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_smirnovp_wrap "cephes_smirnovp_wrap"(Py_ssize_t, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes__struve_asymp_large_z "cephes__struve_asymp_large_z"(double, double, Py_ssize_t, double *) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes__struve_bessel_series "cephes__struve_bessel_series"(double, double, Py_ssize_t, double *) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes__struve_power_series "cephes__struve_power_series"(double, double, Py_ssize_t, double *) noexcept nogil
-from ._agm cimport agm as _func_agm
-ctypedef double _proto_agm_t(double, double) noexcept nogil
-cdef _proto_agm_t *_proto_agm_t_var = &_func_agm
-from ._legacy cimport bdtr_unsafe as _func_bdtr_unsafe
-ctypedef double _proto_bdtr_unsafe_t(double, double, double) noexcept nogil
-cdef _proto_bdtr_unsafe_t *_proto_bdtr_unsafe_t_var = &_func_bdtr_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_bdtr_wrap "cephes_bdtr_wrap"(double, Py_ssize_t, double) noexcept nogil
-from ._legacy cimport bdtrc_unsafe as _func_bdtrc_unsafe
-ctypedef double _proto_bdtrc_unsafe_t(double, double, double) noexcept nogil
-cdef _proto_bdtrc_unsafe_t *_proto_bdtrc_unsafe_t_var = &_func_bdtrc_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_bdtrc_wrap "cephes_bdtrc_wrap"(double, Py_ssize_t, double) noexcept nogil
-from ._legacy cimport bdtri_unsafe as _func_bdtri_unsafe
-ctypedef double _proto_bdtri_unsafe_t(double, double, double) noexcept nogil
-cdef _proto_bdtri_unsafe_t *_proto_bdtri_unsafe_t_var = &_func_bdtri_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_bdtri_wrap "cephes_bdtri_wrap"(double, Py_ssize_t, double) noexcept nogil
-from ._cdflib_wrappers cimport bdtrik as _func_bdtrik
-ctypedef double _proto_bdtrik_t(double, double, double) noexcept nogil
-cdef _proto_bdtrik_t *_proto_bdtrik_t_var = &_func_bdtrik
-from ._cdflib_wrappers cimport bdtrin as _func_bdtrin
-ctypedef double _proto_bdtrin_t(double, double, double) noexcept nogil
-cdef _proto_bdtrin_t *_proto_bdtrin_t_var = &_func_bdtrin
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_besselpoly "cephes_besselpoly"(double, double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_beta "cephes_beta"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_lbeta "cephes_lbeta"(double, double) noexcept nogil
-from ._boxcox cimport boxcox as _func_boxcox
-ctypedef double _proto_boxcox_t(double, double) noexcept nogil
-cdef _proto_boxcox_t *_proto_boxcox_t_var = &_func_boxcox
-from ._boxcox cimport boxcox1p as _func_boxcox1p
-ctypedef double _proto_boxcox1p_t(double, double) noexcept nogil
-cdef _proto_boxcox1p_t *_proto_boxcox1p_t_var = &_func_boxcox1p
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_btdtr "cephes_btdtr"(double, double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_btdtri "cephes_btdtri"(double, double, double) noexcept nogil
-from ._cdflib_wrappers cimport btdtria as _func_btdtria
-ctypedef double _proto_btdtria_t(double, double, double) noexcept nogil
-cdef _proto_btdtria_t *_proto_btdtria_t_var = &_func_btdtria
-from ._cdflib_wrappers cimport btdtrib as _func_btdtrib
-ctypedef double _proto_btdtrib_t(double, double, double) noexcept nogil
-cdef _proto_btdtrib_t *_proto_btdtrib_t_var = &_func_btdtrib
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_cbrt "cephes_cbrt"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_chdtr "cephes_chdtr"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_chdtrc "cephes_chdtrc"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_chdtri "cephes_chdtri"(double, double) noexcept nogil
-from ._cdflib_wrappers cimport chdtriv as _func_chdtriv
-ctypedef double _proto_chdtriv_t(double, double) noexcept nogil
-cdef _proto_chdtriv_t *_proto_chdtriv_t_var = &_func_chdtriv
-from ._cdflib_wrappers cimport chndtr as _func_chndtr
-ctypedef double _proto_chndtr_t(double, double, double) noexcept nogil
-cdef _proto_chndtr_t *_proto_chndtr_t_var = &_func_chndtr
-from ._cdflib_wrappers cimport chndtridf as _func_chndtridf
-ctypedef double _proto_chndtridf_t(double, double, double) noexcept nogil
-cdef _proto_chndtridf_t *_proto_chndtridf_t_var = &_func_chndtridf
-from ._cdflib_wrappers cimport chndtrinc as _func_chndtrinc
-ctypedef double _proto_chndtrinc_t(double, double, double) noexcept nogil
-cdef _proto_chndtrinc_t *_proto_chndtrinc_t_var = &_func_chndtrinc
-from ._cdflib_wrappers cimport chndtrix as _func_chndtrix
-ctypedef double _proto_chndtrix_t(double, double, double) noexcept nogil
-cdef _proto_chndtrix_t *_proto_chndtrix_t_var = &_func_chndtrix
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_cosdg "cephes_cosdg"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_cosm1 "cephes_cosm1"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_cotdg "cephes_cotdg"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_ellpe "cephes_ellpe"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_ellie "cephes_ellie"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef int _func_cephes_ellpj_wrap "cephes_ellpj_wrap"(double, double, double *, double *, double *, double *) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_special_ellipk "special_ellipk"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_ellik "cephes_ellik"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_ellpk "cephes_ellpk"(double) noexcept nogil
-from ._convex_analysis cimport entr as _func_entr
-ctypedef double _proto_entr_t(double) noexcept nogil
-cdef _proto_entr_t *_proto_entr_t_var = &_func_entr
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_erf "cephes_erf"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_erfc "cephes_erfc"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_erfcinv "cephes_erfcinv"(double) noexcept nogil
-from .orthogonal_eval cimport eval_chebyc as _func_eval_chebyc
-ctypedef double complex _proto_eval_chebyc_double_complex__t(double, double complex) noexcept nogil
-cdef _proto_eval_chebyc_double_complex__t *_proto_eval_chebyc_double_complex__t_var = &_func_eval_chebyc[double_complex]
-from .orthogonal_eval cimport eval_chebyc as _func_eval_chebyc
-ctypedef double _proto_eval_chebyc_double__t(double, double) noexcept nogil
-cdef _proto_eval_chebyc_double__t *_proto_eval_chebyc_double__t_var = &_func_eval_chebyc[double]
-from .orthogonal_eval cimport eval_chebyc_l as _func_eval_chebyc_l
-ctypedef double _proto_eval_chebyc_l_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_chebyc_l_t *_proto_eval_chebyc_l_t_var = &_func_eval_chebyc_l
-from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
-ctypedef double complex _proto_eval_chebys_double_complex__t(double, double complex) noexcept nogil
-cdef _proto_eval_chebys_double_complex__t *_proto_eval_chebys_double_complex__t_var = &_func_eval_chebys[double_complex]
-from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
-ctypedef double _proto_eval_chebys_double__t(double, double) noexcept nogil
-cdef _proto_eval_chebys_double__t *_proto_eval_chebys_double__t_var = &_func_eval_chebys[double]
-from .orthogonal_eval cimport eval_chebys_l as _func_eval_chebys_l
-ctypedef double _proto_eval_chebys_l_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_chebys_l_t *_proto_eval_chebys_l_t_var = &_func_eval_chebys_l
-from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
-ctypedef double complex _proto_eval_chebyt_double_complex__t(double, double complex) noexcept nogil
-cdef _proto_eval_chebyt_double_complex__t *_proto_eval_chebyt_double_complex__t_var = &_func_eval_chebyt[double_complex]
-from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
-ctypedef double _proto_eval_chebyt_double__t(double, double) noexcept nogil
-cdef _proto_eval_chebyt_double__t *_proto_eval_chebyt_double__t_var = &_func_eval_chebyt[double]
-from .orthogonal_eval cimport eval_chebyt_l as _func_eval_chebyt_l
-ctypedef double _proto_eval_chebyt_l_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_chebyt_l_t *_proto_eval_chebyt_l_t_var = &_func_eval_chebyt_l
-from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
-ctypedef double complex _proto_eval_chebyu_double_complex__t(double, double complex) noexcept nogil
-cdef _proto_eval_chebyu_double_complex__t *_proto_eval_chebyu_double_complex__t_var = &_func_eval_chebyu[double_complex]
-from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
-ctypedef double _proto_eval_chebyu_double__t(double, double) noexcept nogil
-cdef _proto_eval_chebyu_double__t *_proto_eval_chebyu_double__t_var = &_func_eval_chebyu[double]
-from .orthogonal_eval cimport eval_chebyu_l as _func_eval_chebyu_l
-ctypedef double _proto_eval_chebyu_l_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_chebyu_l_t *_proto_eval_chebyu_l_t_var = &_func_eval_chebyu_l
-from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
-ctypedef double complex _proto_eval_gegenbauer_double_complex__t(double, double, double complex) noexcept nogil
-cdef _proto_eval_gegenbauer_double_complex__t *_proto_eval_gegenbauer_double_complex__t_var = &_func_eval_gegenbauer[double_complex]
-from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
-ctypedef double _proto_eval_gegenbauer_double__t(double, double, double) noexcept nogil
-cdef _proto_eval_gegenbauer_double__t *_proto_eval_gegenbauer_double__t_var = &_func_eval_gegenbauer[double]
-from .orthogonal_eval cimport eval_gegenbauer_l as _func_eval_gegenbauer_l
-ctypedef double _proto_eval_gegenbauer_l_t(Py_ssize_t, double, double) noexcept nogil
-cdef _proto_eval_gegenbauer_l_t *_proto_eval_gegenbauer_l_t_var = &_func_eval_gegenbauer_l
-from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
-ctypedef double complex _proto_eval_genlaguerre_double_complex__t(double, double, double complex) noexcept nogil
-cdef _proto_eval_genlaguerre_double_complex__t *_proto_eval_genlaguerre_double_complex__t_var = &_func_eval_genlaguerre[double_complex]
-from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
-ctypedef double _proto_eval_genlaguerre_double__t(double, double, double) noexcept nogil
-cdef _proto_eval_genlaguerre_double__t *_proto_eval_genlaguerre_double__t_var = &_func_eval_genlaguerre[double]
-from .orthogonal_eval cimport eval_genlaguerre_l as _func_eval_genlaguerre_l
-ctypedef double _proto_eval_genlaguerre_l_t(Py_ssize_t, double, double) noexcept nogil
-cdef _proto_eval_genlaguerre_l_t *_proto_eval_genlaguerre_l_t_var = &_func_eval_genlaguerre_l
-from .orthogonal_eval cimport eval_hermite as _func_eval_hermite
-ctypedef double _proto_eval_hermite_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_hermite_t *_proto_eval_hermite_t_var = &_func_eval_hermite
-from .orthogonal_eval cimport eval_hermitenorm as _func_eval_hermitenorm
-ctypedef double _proto_eval_hermitenorm_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_hermitenorm_t *_proto_eval_hermitenorm_t_var = &_func_eval_hermitenorm
-from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
-ctypedef double complex _proto_eval_jacobi_double_complex__t(double, double, double, double complex) noexcept nogil
-cdef _proto_eval_jacobi_double_complex__t *_proto_eval_jacobi_double_complex__t_var = &_func_eval_jacobi[double_complex]
-from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
-ctypedef double _proto_eval_jacobi_double__t(double, double, double, double) noexcept nogil
-cdef _proto_eval_jacobi_double__t *_proto_eval_jacobi_double__t_var = &_func_eval_jacobi[double]
-from .orthogonal_eval cimport eval_jacobi_l as _func_eval_jacobi_l
-ctypedef double _proto_eval_jacobi_l_t(Py_ssize_t, double, double, double) noexcept nogil
-cdef _proto_eval_jacobi_l_t *_proto_eval_jacobi_l_t_var = &_func_eval_jacobi_l
-from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
-ctypedef double complex _proto_eval_laguerre_double_complex__t(double, double complex) noexcept nogil
-cdef _proto_eval_laguerre_double_complex__t *_proto_eval_laguerre_double_complex__t_var = &_func_eval_laguerre[double_complex]
-from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
-ctypedef double _proto_eval_laguerre_double__t(double, double) noexcept nogil
-cdef _proto_eval_laguerre_double__t *_proto_eval_laguerre_double__t_var = &_func_eval_laguerre[double]
-from .orthogonal_eval cimport eval_laguerre_l as _func_eval_laguerre_l
-ctypedef double _proto_eval_laguerre_l_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_laguerre_l_t *_proto_eval_laguerre_l_t_var = &_func_eval_laguerre_l
-from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
-ctypedef double complex _proto_eval_legendre_double_complex__t(double, double complex) noexcept nogil
-cdef _proto_eval_legendre_double_complex__t *_proto_eval_legendre_double_complex__t_var = &_func_eval_legendre[double_complex]
-from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
-ctypedef double _proto_eval_legendre_double__t(double, double) noexcept nogil
-cdef _proto_eval_legendre_double__t *_proto_eval_legendre_double__t_var = &_func_eval_legendre[double]
-from .orthogonal_eval cimport eval_legendre_l as _func_eval_legendre_l
-ctypedef double _proto_eval_legendre_l_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_legendre_l_t *_proto_eval_legendre_l_t_var = &_func_eval_legendre_l
-from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
-ctypedef double complex _proto_eval_sh_chebyt_double_complex__t(double, double complex) noexcept nogil
-cdef _proto_eval_sh_chebyt_double_complex__t *_proto_eval_sh_chebyt_double_complex__t_var = &_func_eval_sh_chebyt[double_complex]
-from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
-ctypedef double _proto_eval_sh_chebyt_double__t(double, double) noexcept nogil
-cdef _proto_eval_sh_chebyt_double__t *_proto_eval_sh_chebyt_double__t_var = &_func_eval_sh_chebyt[double]
-from .orthogonal_eval cimport eval_sh_chebyt_l as _func_eval_sh_chebyt_l
-ctypedef double _proto_eval_sh_chebyt_l_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_sh_chebyt_l_t *_proto_eval_sh_chebyt_l_t_var = &_func_eval_sh_chebyt_l
-from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
-ctypedef double complex _proto_eval_sh_chebyu_double_complex__t(double, double complex) noexcept nogil
-cdef _proto_eval_sh_chebyu_double_complex__t *_proto_eval_sh_chebyu_double_complex__t_var = &_func_eval_sh_chebyu[double_complex]
-from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
-ctypedef double _proto_eval_sh_chebyu_double__t(double, double) noexcept nogil
-cdef _proto_eval_sh_chebyu_double__t *_proto_eval_sh_chebyu_double__t_var = &_func_eval_sh_chebyu[double]
-from .orthogonal_eval cimport eval_sh_chebyu_l as _func_eval_sh_chebyu_l
-ctypedef double _proto_eval_sh_chebyu_l_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_sh_chebyu_l_t *_proto_eval_sh_chebyu_l_t_var = &_func_eval_sh_chebyu_l
-from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
-ctypedef double complex _proto_eval_sh_jacobi_double_complex__t(double, double, double, double complex) noexcept nogil
-cdef _proto_eval_sh_jacobi_double_complex__t *_proto_eval_sh_jacobi_double_complex__t_var = &_func_eval_sh_jacobi[double_complex]
-from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
-ctypedef double _proto_eval_sh_jacobi_double__t(double, double, double, double) noexcept nogil
-cdef _proto_eval_sh_jacobi_double__t *_proto_eval_sh_jacobi_double__t_var = &_func_eval_sh_jacobi[double]
-from .orthogonal_eval cimport eval_sh_jacobi_l as _func_eval_sh_jacobi_l
-ctypedef double _proto_eval_sh_jacobi_l_t(Py_ssize_t, double, double, double) noexcept nogil
-cdef _proto_eval_sh_jacobi_l_t *_proto_eval_sh_jacobi_l_t_var = &_func_eval_sh_jacobi_l
-from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
-ctypedef double complex _proto_eval_sh_legendre_double_complex__t(double, double complex) noexcept nogil
-cdef _proto_eval_sh_legendre_double_complex__t *_proto_eval_sh_legendre_double_complex__t_var = &_func_eval_sh_legendre[double_complex]
-from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
-ctypedef double _proto_eval_sh_legendre_double__t(double, double) noexcept nogil
-cdef _proto_eval_sh_legendre_double__t *_proto_eval_sh_legendre_double__t_var = &_func_eval_sh_legendre[double]
-from .orthogonal_eval cimport eval_sh_legendre_l as _func_eval_sh_legendre_l
-ctypedef double _proto_eval_sh_legendre_l_t(Py_ssize_t, double) noexcept nogil
-cdef _proto_eval_sh_legendre_l_t *_proto_eval_sh_legendre_l_t_var = &_func_eval_sh_legendre_l
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_exp10 "cephes_exp10"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_exp2 "cephes_exp2"(double) noexcept nogil
-from ._cunity cimport cexpm1 as _func_cexpm1
-ctypedef double complex _proto_cexpm1_t(double complex) noexcept nogil
-cdef _proto_cexpm1_t *_proto_cexpm1_t_var = &_func_cexpm1
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_expm1 "cephes_expm1"(double) noexcept nogil
-from ._legacy cimport expn_unsafe as _func_expn_unsafe
-ctypedef double _proto_expn_unsafe_t(double, double) noexcept nogil
-cdef _proto_expn_unsafe_t *_proto_expn_unsafe_t_var = &_func_expn_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_expn_wrap "cephes_expn_wrap"(Py_ssize_t, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_fdtr "cephes_fdtr"(double, double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_fdtrc "cephes_fdtrc"(double, double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_fdtri "cephes_fdtri"(double, double, double) noexcept nogil
-from ._cdflib_wrappers cimport fdtridfd as _func_fdtridfd
-ctypedef double _proto_fdtridfd_t(double, double, double) noexcept nogil
-cdef _proto_fdtridfd_t *_proto_fdtridfd_t_var = &_func_fdtridfd
-cdef extern from r"_ufuncs_defs.h":
-    cdef int _func_cephes_fresnl_wrap "cephes_fresnl_wrap"(double, double *, double *) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef int _func_cfresnl_wrap "cfresnl_wrap"(double complex, double complex *, double complex *) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_igam "cephes_igam"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_igamc "cephes_igamc"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_igamci "cephes_igamci"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_igami "cephes_igami"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_gammasgn "cephes_gammasgn"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_gdtr "cephes_gdtr"(double, double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_gdtrc "cephes_gdtrc"(double, double, double) noexcept nogil
-from ._cdflib_wrappers cimport gdtria as _func_gdtria
-ctypedef double _proto_gdtria_t(double, double, double) noexcept nogil
-cdef _proto_gdtria_t *_proto_gdtria_t_var = &_func_gdtria
-from ._cdflib_wrappers cimport gdtrib as _func_gdtrib
-ctypedef double _proto_gdtrib_t(double, double, double) noexcept nogil
-cdef _proto_gdtrib_t *_proto_gdtrib_t_var = &_func_gdtrib
-from ._cdflib_wrappers cimport gdtrix as _func_gdtrix
-ctypedef double _proto_gdtrix_t(double, double, double) noexcept nogil
-cdef _proto_gdtrix_t *_proto_gdtrix_t_var = &_func_gdtrix
-from ._convex_analysis cimport huber as _func_huber
-ctypedef double _proto_huber_t(double, double) noexcept nogil
-cdef _proto_huber_t *_proto_huber_t_var = &_func_huber
-from ._hyp0f1 cimport _hyp0f1_cmplx as _func__hyp0f1_cmplx
-ctypedef double complex _proto__hyp0f1_cmplx_t(double, double complex) noexcept nogil
-cdef _proto__hyp0f1_cmplx_t *_proto__hyp0f1_cmplx_t_var = &_func__hyp0f1_cmplx
-from ._hyp0f1 cimport _hyp0f1_real as _func__hyp0f1_real
-ctypedef double _proto__hyp0f1_real_t(double, double) noexcept nogil
-cdef _proto__hyp0f1_real_t *_proto__hyp0f1_real_t_var = &_func__hyp0f1_real
-cdef extern from r"_ufuncs_defs.h":
-    cdef double complex _func_chyp1f1_wrap "chyp1f1_wrap"(double, double, double complex) noexcept nogil
-from ._hypergeometric cimport hyperu as _func_hyperu
-ctypedef double _proto_hyperu_t(double, double, double) noexcept nogil
-cdef _proto_hyperu_t *_proto_hyperu_t_var = &_func_hyperu
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_i0 "cephes_i0"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_i0e "cephes_i0e"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_i1 "cephes_i1"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_i1e "cephes_i1e"(double) noexcept nogil
-from ._boxcox cimport inv_boxcox as _func_inv_boxcox
-ctypedef double _proto_inv_boxcox_t(double, double) noexcept nogil
-cdef _proto_inv_boxcox_t *_proto_inv_boxcox_t_var = &_func_inv_boxcox
-from ._boxcox cimport inv_boxcox1p as _func_inv_boxcox1p
-ctypedef double _proto_inv_boxcox1p_t(double, double) noexcept nogil
-cdef _proto_inv_boxcox1p_t *_proto_inv_boxcox1p_t_var = &_func_inv_boxcox1p
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_j0 "cephes_j0"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_j1 "cephes_j1"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_k0 "cephes_k0"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_k0e "cephes_k0e"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_k1 "cephes_k1"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_k1e "cephes_k1e"(double) noexcept nogil
-from ._convex_analysis cimport kl_div as _func_kl_div
-ctypedef double _proto_kl_div_t(double, double) noexcept nogil
-cdef _proto_kl_div_t *_proto_kl_div_t_var = &_func_kl_div
-from ._legacy cimport kn_unsafe as _func_kn_unsafe
-ctypedef double _proto_kn_unsafe_t(double, double) noexcept nogil
-cdef _proto_kn_unsafe_t *_proto_kn_unsafe_t_var = &_func_kn_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_special_cyl_bessel_k_int "special_cyl_bessel_k_int"(Py_ssize_t, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_kolmogi "cephes_kolmogi"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_kolmogorov "cephes_kolmogorov"(double) noexcept nogil
-from ._cunity cimport clog1p as _func_clog1p
-ctypedef double complex _proto_clog1p_t(double complex) noexcept nogil
-cdef _proto_clog1p_t *_proto_clog1p_t_var = &_func_clog1p
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_log1p "cephes_log1p"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_pmv_wrap "pmv_wrap"(double, double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_struve_l "cephes_struve_l"(double, double) noexcept nogil
-from ._legacy cimport nbdtr_unsafe as _func_nbdtr_unsafe
-ctypedef double _proto_nbdtr_unsafe_t(double, double, double) noexcept nogil
-cdef _proto_nbdtr_unsafe_t *_proto_nbdtr_unsafe_t_var = &_func_nbdtr_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_nbdtr_wrap "cephes_nbdtr_wrap"(Py_ssize_t, Py_ssize_t, double) noexcept nogil
-from ._legacy cimport nbdtrc_unsafe as _func_nbdtrc_unsafe
-ctypedef double _proto_nbdtrc_unsafe_t(double, double, double) noexcept nogil
-cdef _proto_nbdtrc_unsafe_t *_proto_nbdtrc_unsafe_t_var = &_func_nbdtrc_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_nbdtrc_wrap "cephes_nbdtrc_wrap"(Py_ssize_t, Py_ssize_t, double) noexcept nogil
-from ._legacy cimport nbdtri_unsafe as _func_nbdtri_unsafe
-ctypedef double _proto_nbdtri_unsafe_t(double, double, double) noexcept nogil
-cdef _proto_nbdtri_unsafe_t *_proto_nbdtri_unsafe_t_var = &_func_nbdtri_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_nbdtri_wrap "cephes_nbdtri_wrap"(Py_ssize_t, Py_ssize_t, double) noexcept nogil
-from ._cdflib_wrappers cimport nbdtrik as _func_nbdtrik
-ctypedef double _proto_nbdtrik_t(double, double, double) noexcept nogil
-cdef _proto_nbdtrik_t *_proto_nbdtrik_t_var = &_func_nbdtrik
-from ._cdflib_wrappers cimport nbdtrin as _func_nbdtrin
-ctypedef double _proto_nbdtrin_t(double, double, double) noexcept nogil
-cdef _proto_nbdtrin_t *_proto_nbdtrin_t_var = &_func_nbdtrin
-from ._cdflib_wrappers cimport ncfdtr as _func_ncfdtr
-ctypedef double _proto_ncfdtr_t(double, double, double, double) noexcept nogil
-cdef _proto_ncfdtr_t *_proto_ncfdtr_t_var = &_func_ncfdtr
-from ._cdflib_wrappers cimport ncfdtri as _func_ncfdtri
-ctypedef double _proto_ncfdtri_t(double, double, double, double) noexcept nogil
-cdef _proto_ncfdtri_t *_proto_ncfdtri_t_var = &_func_ncfdtri
-from ._cdflib_wrappers cimport ncfdtridfd as _func_ncfdtridfd
-ctypedef double _proto_ncfdtridfd_t(double, double, double, double) noexcept nogil
-cdef _proto_ncfdtridfd_t *_proto_ncfdtridfd_t_var = &_func_ncfdtridfd
-from ._cdflib_wrappers cimport ncfdtridfn as _func_ncfdtridfn
-ctypedef double _proto_ncfdtridfn_t(double, double, double, double) noexcept nogil
-cdef _proto_ncfdtridfn_t *_proto_ncfdtridfn_t_var = &_func_ncfdtridfn
-from ._cdflib_wrappers cimport ncfdtrinc as _func_ncfdtrinc
-ctypedef double _proto_ncfdtrinc_t(double, double, double, double) noexcept nogil
-cdef _proto_ncfdtrinc_t *_proto_ncfdtrinc_t_var = &_func_ncfdtrinc
-from ._cdflib_wrappers cimport nctdtr as _func_nctdtr
-ctypedef double _proto_nctdtr_t(double, double, double) noexcept nogil
-cdef _proto_nctdtr_t *_proto_nctdtr_t_var = &_func_nctdtr
-from ._cdflib_wrappers cimport nctdtridf as _func_nctdtridf
-ctypedef double _proto_nctdtridf_t(double, double, double) noexcept nogil
-cdef _proto_nctdtridf_t *_proto_nctdtridf_t_var = &_func_nctdtridf
-from ._cdflib_wrappers cimport nctdtrinc as _func_nctdtrinc
-ctypedef double _proto_nctdtrinc_t(double, double, double) noexcept nogil
-cdef _proto_nctdtrinc_t *_proto_nctdtrinc_t_var = &_func_nctdtrinc
-from ._cdflib_wrappers cimport nctdtrit as _func_nctdtrit
-ctypedef double _proto_nctdtrit_t(double, double, double) noexcept nogil
-cdef _proto_nctdtrit_t *_proto_nctdtrit_t_var = &_func_nctdtrit
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_ndtr "cephes_ndtr"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_ndtri "cephes_ndtri"(double) noexcept nogil
-from ._ndtri_exp cimport ndtri_exp as _func_ndtri_exp
-ctypedef double _proto_ndtri_exp_t(double) noexcept nogil
-cdef _proto_ndtri_exp_t *_proto_ndtri_exp_t_var = &_func_ndtri_exp
-from ._cdflib_wrappers cimport nrdtrimn as _func_nrdtrimn
-ctypedef double _proto_nrdtrimn_t(double, double, double) noexcept nogil
-cdef _proto_nrdtrimn_t *_proto_nrdtrimn_t_var = &_func_nrdtrimn
-from ._cdflib_wrappers cimport nrdtrisd as _func_nrdtrisd
-ctypedef double _proto_nrdtrisd_t(double, double, double) noexcept nogil
-cdef _proto_nrdtrisd_t *_proto_nrdtrisd_t_var = &_func_nrdtrisd
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_owens_t "cephes_owens_t"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_pdtr "cephes_pdtr"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_pdtrc "cephes_pdtrc"(double, double) noexcept nogil
-from ._legacy cimport pdtri_unsafe as _func_pdtri_unsafe
-ctypedef double _proto_pdtri_unsafe_t(double, double) noexcept nogil
-cdef _proto_pdtri_unsafe_t *_proto_pdtri_unsafe_t_var = &_func_pdtri_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_pdtri_wrap "cephes_pdtri_wrap"(Py_ssize_t, double) noexcept nogil
-from ._cdflib_wrappers cimport pdtrik as _func_pdtrik
-ctypedef double _proto_pdtrik_t(double, double) noexcept nogil
-cdef _proto_pdtrik_t *_proto_pdtrik_t_var = &_func_pdtrik
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_poch "cephes_poch"(double, double) noexcept nogil
-from ._convex_analysis cimport pseudo_huber as _func_pseudo_huber
-ctypedef double _proto_pseudo_huber_t(double, double) noexcept nogil
-cdef _proto_pseudo_huber_t *_proto_pseudo_huber_t_var = &_func_pseudo_huber
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_radian "cephes_radian"(double, double, double) noexcept nogil
-from ._convex_analysis cimport rel_entr as _func_rel_entr
-ctypedef double _proto_rel_entr_t(double, double) noexcept nogil
-cdef _proto_rel_entr_t *_proto_rel_entr_t_var = &_func_rel_entr
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_round "cephes_round"(double) noexcept nogil
-from ._sici cimport cshichi as _func_cshichi
-ctypedef int _proto_cshichi_t(double complex, double complex *, double complex *) noexcept nogil
-cdef _proto_cshichi_t *_proto_cshichi_t_var = &_func_cshichi
-cdef extern from r"_ufuncs_defs.h":
-    cdef int _func_cephes_shichi_wrap "cephes_shichi_wrap"(double, double *, double *) noexcept nogil
-from ._sici cimport csici as _func_csici
-ctypedef int _proto_csici_t(double complex, double complex *, double complex *) noexcept nogil
-cdef _proto_csici_t *_proto_csici_t_var = &_func_csici
-cdef extern from r"_ufuncs_defs.h":
-    cdef int _func_cephes_sici_wrap "cephes_sici_wrap"(double, double *, double *) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_sindg "cephes_sindg"(double) noexcept nogil
-from ._legacy cimport smirnov_unsafe as _func_smirnov_unsafe
-ctypedef double _proto_smirnov_unsafe_t(double, double) noexcept nogil
-cdef _proto_smirnov_unsafe_t *_proto_smirnov_unsafe_t_var = &_func_smirnov_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_smirnov_wrap "cephes_smirnov_wrap"(Py_ssize_t, double) noexcept nogil
-from ._legacy cimport smirnovi_unsafe as _func_smirnovi_unsafe
-ctypedef double _proto_smirnovi_unsafe_t(double, double) noexcept nogil
-cdef _proto_smirnovi_unsafe_t *_proto_smirnovi_unsafe_t_var = &_func_smirnovi_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_smirnovi_wrap "cephes_smirnovi_wrap"(Py_ssize_t, double) noexcept nogil
-from ._spence cimport cspence as _func_cspence
-ctypedef double complex _proto_cspence_t(double complex) noexcept nogil
-cdef _proto_cspence_t *_proto_cspence_t_var = &_func_cspence
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_spence "cephes_spence"(double) noexcept nogil
-from ._cdflib_wrappers cimport stdtr as _func_stdtr
-ctypedef double _proto_stdtr_t(double, double) noexcept nogil
-cdef _proto_stdtr_t *_proto_stdtr_t_var = &_func_stdtr
-from ._cdflib_wrappers cimport stdtridf as _func_stdtridf
-ctypedef double _proto_stdtridf_t(double, double) noexcept nogil
-cdef _proto_stdtridf_t *_proto_stdtridf_t_var = &_func_stdtridf
-from ._cdflib_wrappers cimport stdtrit as _func_stdtrit
-ctypedef double _proto_stdtrit_t(double, double) noexcept nogil
-cdef _proto_stdtrit_t *_proto_stdtrit_t_var = &_func_stdtrit
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_struve_h "cephes_struve_h"(double, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_tandg "cephes_tandg"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_tukeylambdacdf "cephes_tukeylambdacdf"(double, double) noexcept nogil
-from ._xlogy cimport xlog1py as _func_xlog1py
-ctypedef double _proto_xlog1py_double__t(double, double) noexcept nogil
-cdef _proto_xlog1py_double__t *_proto_xlog1py_double__t_var = &_func_xlog1py[double]
-from ._xlogy cimport xlog1py as _func_xlog1py
-ctypedef double complex _proto_xlog1py_double_complex__t(double complex, double complex) noexcept nogil
-cdef _proto_xlog1py_double_complex__t *_proto_xlog1py_double_complex__t_var = &_func_xlog1py[double_complex]
-from ._xlogy cimport xlogy as _func_xlogy
-ctypedef double _proto_xlogy_double__t(double, double) noexcept nogil
-cdef _proto_xlogy_double__t *_proto_xlogy_double__t_var = &_func_xlogy[double]
-from ._xlogy cimport xlogy as _func_xlogy
-ctypedef double complex _proto_xlogy_double_complex__t(double complex, double complex) noexcept nogil
-cdef _proto_xlogy_double_complex__t *_proto_xlogy_double_complex__t_var = &_func_xlogy[double_complex]
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_y0 "cephes_y0"(double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_y1 "cephes_y1"(double) noexcept nogil
-from ._legacy cimport yn_unsafe as _func_yn_unsafe
-ctypedef double _proto_yn_unsafe_t(double, double) noexcept nogil
-cdef _proto_yn_unsafe_t *_proto_yn_unsafe_t_var = &_func_yn_unsafe
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_yn_wrap "cephes_yn_wrap"(Py_ssize_t, double) noexcept nogil
-cdef extern from r"_ufuncs_defs.h":
-    cdef double _func_cephes_zetac "cephes_zetac"(double) noexcept nogil
-cdef np.PyUFuncGenericFunction ufunc__beta_pdf_loops[2]
-cdef void *ufunc__beta_pdf_ptr[4]
-cdef void *ufunc__beta_pdf_data[2]
-cdef char ufunc__beta_pdf_types[8]
-cdef char *ufunc__beta_pdf_doc = (
-    "_beta_pdf(x, a, b)\n"
-    "\n"
-    "Probability density function of beta distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued such that :math:`0 \\leq x \\leq 1`,\n"
-    "    the upper limit of integration\n"
-    "a, b : array_like\n"
-    "       Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__beta_pdf_loops[0] = loop_f_fff__As_fff_f
-ufunc__beta_pdf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__beta_pdf_types[0] = NPY_FLOAT
-ufunc__beta_pdf_types[1] = NPY_FLOAT
-ufunc__beta_pdf_types[2] = NPY_FLOAT
-ufunc__beta_pdf_types[3] = NPY_FLOAT
-ufunc__beta_pdf_types[4] = NPY_DOUBLE
-ufunc__beta_pdf_types[5] = NPY_DOUBLE
-ufunc__beta_pdf_types[6] = NPY_DOUBLE
-ufunc__beta_pdf_types[7] = NPY_DOUBLE
-ufunc__beta_pdf_ptr[2*0] = scipy.special._ufuncs_cxx._export_beta_pdf_float
-ufunc__beta_pdf_ptr[2*0+1] = ("_beta_pdf")
-ufunc__beta_pdf_ptr[2*1] = scipy.special._ufuncs_cxx._export_beta_pdf_double
-ufunc__beta_pdf_ptr[2*1+1] = ("_beta_pdf")
-ufunc__beta_pdf_data[0] = &ufunc__beta_pdf_ptr[2*0]
-ufunc__beta_pdf_data[1] = &ufunc__beta_pdf_ptr[2*1]
-_beta_pdf = np.PyUFunc_FromFuncAndData(ufunc__beta_pdf_loops, ufunc__beta_pdf_data, ufunc__beta_pdf_types, 2, 3, 1, 0, "_beta_pdf", ufunc__beta_pdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__beta_ppf_loops[2]
-cdef void *ufunc__beta_ppf_ptr[4]
-cdef void *ufunc__beta_ppf_data[2]
-cdef char ufunc__beta_ppf_types[8]
-cdef char *ufunc__beta_ppf_doc = (
-    "_beta_ppf(x, a, b)\n"
-    "\n"
-    "Percent point function of beta distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued such that :math:`0 \\leq x \\leq 1`,\n"
-    "    the upper limit of integration\n"
-    "a, b : array_like\n"
-    "       Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__beta_ppf_loops[0] = loop_f_fff__As_fff_f
-ufunc__beta_ppf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__beta_ppf_types[0] = NPY_FLOAT
-ufunc__beta_ppf_types[1] = NPY_FLOAT
-ufunc__beta_ppf_types[2] = NPY_FLOAT
-ufunc__beta_ppf_types[3] = NPY_FLOAT
-ufunc__beta_ppf_types[4] = NPY_DOUBLE
-ufunc__beta_ppf_types[5] = NPY_DOUBLE
-ufunc__beta_ppf_types[6] = NPY_DOUBLE
-ufunc__beta_ppf_types[7] = NPY_DOUBLE
-ufunc__beta_ppf_ptr[2*0] = scipy.special._ufuncs_cxx._export_beta_ppf_float
-ufunc__beta_ppf_ptr[2*0+1] = ("_beta_ppf")
-ufunc__beta_ppf_ptr[2*1] = scipy.special._ufuncs_cxx._export_beta_ppf_double
-ufunc__beta_ppf_ptr[2*1+1] = ("_beta_ppf")
-ufunc__beta_ppf_data[0] = &ufunc__beta_ppf_ptr[2*0]
-ufunc__beta_ppf_data[1] = &ufunc__beta_ppf_ptr[2*1]
-_beta_ppf = np.PyUFunc_FromFuncAndData(ufunc__beta_ppf_loops, ufunc__beta_ppf_data, ufunc__beta_ppf_types, 2, 3, 1, 0, "_beta_ppf", ufunc__beta_ppf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__binom_cdf_loops[2]
-cdef void *ufunc__binom_cdf_ptr[4]
-cdef void *ufunc__binom_cdf_data[2]
-cdef char ufunc__binom_cdf_types[8]
-cdef char *ufunc__binom_cdf_doc = (
-    "_binom_cdf(x, n, p)\n"
-    "\n"
-    "Cumulative density function of binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "n : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__binom_cdf_loops[0] = loop_f_fff__As_fff_f
-ufunc__binom_cdf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__binom_cdf_types[0] = NPY_FLOAT
-ufunc__binom_cdf_types[1] = NPY_FLOAT
-ufunc__binom_cdf_types[2] = NPY_FLOAT
-ufunc__binom_cdf_types[3] = NPY_FLOAT
-ufunc__binom_cdf_types[4] = NPY_DOUBLE
-ufunc__binom_cdf_types[5] = NPY_DOUBLE
-ufunc__binom_cdf_types[6] = NPY_DOUBLE
-ufunc__binom_cdf_types[7] = NPY_DOUBLE
-ufunc__binom_cdf_ptr[2*0] = scipy.special._ufuncs_cxx._export_binom_cdf_float
-ufunc__binom_cdf_ptr[2*0+1] = ("_binom_cdf")
-ufunc__binom_cdf_ptr[2*1] = scipy.special._ufuncs_cxx._export_binom_cdf_double
-ufunc__binom_cdf_ptr[2*1+1] = ("_binom_cdf")
-ufunc__binom_cdf_data[0] = &ufunc__binom_cdf_ptr[2*0]
-ufunc__binom_cdf_data[1] = &ufunc__binom_cdf_ptr[2*1]
-_binom_cdf = np.PyUFunc_FromFuncAndData(ufunc__binom_cdf_loops, ufunc__binom_cdf_data, ufunc__binom_cdf_types, 2, 3, 1, 0, "_binom_cdf", ufunc__binom_cdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__binom_isf_loops[2]
-cdef void *ufunc__binom_isf_ptr[4]
-cdef void *ufunc__binom_isf_data[2]
-cdef char ufunc__binom_isf_types[8]
-cdef char *ufunc__binom_isf_doc = (
-    "_binom_isf(x, n, p)\n"
-    "\n"
-    "Inverse survival function of binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "n : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__binom_isf_loops[0] = loop_f_fff__As_fff_f
-ufunc__binom_isf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__binom_isf_types[0] = NPY_FLOAT
-ufunc__binom_isf_types[1] = NPY_FLOAT
-ufunc__binom_isf_types[2] = NPY_FLOAT
-ufunc__binom_isf_types[3] = NPY_FLOAT
-ufunc__binom_isf_types[4] = NPY_DOUBLE
-ufunc__binom_isf_types[5] = NPY_DOUBLE
-ufunc__binom_isf_types[6] = NPY_DOUBLE
-ufunc__binom_isf_types[7] = NPY_DOUBLE
-ufunc__binom_isf_ptr[2*0] = scipy.special._ufuncs_cxx._export_binom_isf_float
-ufunc__binom_isf_ptr[2*0+1] = ("_binom_isf")
-ufunc__binom_isf_ptr[2*1] = scipy.special._ufuncs_cxx._export_binom_isf_double
-ufunc__binom_isf_ptr[2*1+1] = ("_binom_isf")
-ufunc__binom_isf_data[0] = &ufunc__binom_isf_ptr[2*0]
-ufunc__binom_isf_data[1] = &ufunc__binom_isf_ptr[2*1]
-_binom_isf = np.PyUFunc_FromFuncAndData(ufunc__binom_isf_loops, ufunc__binom_isf_data, ufunc__binom_isf_types, 2, 3, 1, 0, "_binom_isf", ufunc__binom_isf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__binom_pmf_loops[2]
-cdef void *ufunc__binom_pmf_ptr[4]
-cdef void *ufunc__binom_pmf_data[2]
-cdef char ufunc__binom_pmf_types[8]
-cdef char *ufunc__binom_pmf_doc = (
-    "_binom_pmf(x, n, p)\n"
-    "\n"
-    "Probability mass function of binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "n : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__binom_pmf_loops[0] = loop_f_fff__As_fff_f
-ufunc__binom_pmf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__binom_pmf_types[0] = NPY_FLOAT
-ufunc__binom_pmf_types[1] = NPY_FLOAT
-ufunc__binom_pmf_types[2] = NPY_FLOAT
-ufunc__binom_pmf_types[3] = NPY_FLOAT
-ufunc__binom_pmf_types[4] = NPY_DOUBLE
-ufunc__binom_pmf_types[5] = NPY_DOUBLE
-ufunc__binom_pmf_types[6] = NPY_DOUBLE
-ufunc__binom_pmf_types[7] = NPY_DOUBLE
-ufunc__binom_pmf_ptr[2*0] = scipy.special._ufuncs_cxx._export_binom_pmf_float
-ufunc__binom_pmf_ptr[2*0+1] = ("_binom_pmf")
-ufunc__binom_pmf_ptr[2*1] = scipy.special._ufuncs_cxx._export_binom_pmf_double
-ufunc__binom_pmf_ptr[2*1+1] = ("_binom_pmf")
-ufunc__binom_pmf_data[0] = &ufunc__binom_pmf_ptr[2*0]
-ufunc__binom_pmf_data[1] = &ufunc__binom_pmf_ptr[2*1]
-_binom_pmf = np.PyUFunc_FromFuncAndData(ufunc__binom_pmf_loops, ufunc__binom_pmf_data, ufunc__binom_pmf_types, 2, 3, 1, 0, "_binom_pmf", ufunc__binom_pmf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__binom_ppf_loops[2]
-cdef void *ufunc__binom_ppf_ptr[4]
-cdef void *ufunc__binom_ppf_data[2]
-cdef char ufunc__binom_ppf_types[8]
-cdef char *ufunc__binom_ppf_doc = (
-    "_binom_ppf(x, n, p)\n"
-    "\n"
-    "Percent point function of binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "n : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__binom_ppf_loops[0] = loop_f_fff__As_fff_f
-ufunc__binom_ppf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__binom_ppf_types[0] = NPY_FLOAT
-ufunc__binom_ppf_types[1] = NPY_FLOAT
-ufunc__binom_ppf_types[2] = NPY_FLOAT
-ufunc__binom_ppf_types[3] = NPY_FLOAT
-ufunc__binom_ppf_types[4] = NPY_DOUBLE
-ufunc__binom_ppf_types[5] = NPY_DOUBLE
-ufunc__binom_ppf_types[6] = NPY_DOUBLE
-ufunc__binom_ppf_types[7] = NPY_DOUBLE
-ufunc__binom_ppf_ptr[2*0] = scipy.special._ufuncs_cxx._export_binom_ppf_float
-ufunc__binom_ppf_ptr[2*0+1] = ("_binom_ppf")
-ufunc__binom_ppf_ptr[2*1] = scipy.special._ufuncs_cxx._export_binom_ppf_double
-ufunc__binom_ppf_ptr[2*1+1] = ("_binom_ppf")
-ufunc__binom_ppf_data[0] = &ufunc__binom_ppf_ptr[2*0]
-ufunc__binom_ppf_data[1] = &ufunc__binom_ppf_ptr[2*1]
-_binom_ppf = np.PyUFunc_FromFuncAndData(ufunc__binom_ppf_loops, ufunc__binom_ppf_data, ufunc__binom_ppf_types, 2, 3, 1, 0, "_binom_ppf", ufunc__binom_ppf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__binom_sf_loops[2]
-cdef void *ufunc__binom_sf_ptr[4]
-cdef void *ufunc__binom_sf_data[2]
-cdef char ufunc__binom_sf_types[8]
-cdef char *ufunc__binom_sf_doc = (
-    "_binom_sf(x, n, p)\n"
-    "\n"
-    "Survival function of binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "n : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__binom_sf_loops[0] = loop_f_fff__As_fff_f
-ufunc__binom_sf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__binom_sf_types[0] = NPY_FLOAT
-ufunc__binom_sf_types[1] = NPY_FLOAT
-ufunc__binom_sf_types[2] = NPY_FLOAT
-ufunc__binom_sf_types[3] = NPY_FLOAT
-ufunc__binom_sf_types[4] = NPY_DOUBLE
-ufunc__binom_sf_types[5] = NPY_DOUBLE
-ufunc__binom_sf_types[6] = NPY_DOUBLE
-ufunc__binom_sf_types[7] = NPY_DOUBLE
-ufunc__binom_sf_ptr[2*0] = scipy.special._ufuncs_cxx._export_binom_sf_float
-ufunc__binom_sf_ptr[2*0+1] = ("_binom_sf")
-ufunc__binom_sf_ptr[2*1] = scipy.special._ufuncs_cxx._export_binom_sf_double
-ufunc__binom_sf_ptr[2*1+1] = ("_binom_sf")
-ufunc__binom_sf_data[0] = &ufunc__binom_sf_ptr[2*0]
-ufunc__binom_sf_data[1] = &ufunc__binom_sf_ptr[2*1]
-_binom_sf = np.PyUFunc_FromFuncAndData(ufunc__binom_sf_loops, ufunc__binom_sf_data, ufunc__binom_sf_types, 2, 3, 1, 0, "_binom_sf", ufunc__binom_sf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__cosine_cdf_loops[2]
-cdef void *ufunc__cosine_cdf_ptr[4]
-cdef void *ufunc__cosine_cdf_data[2]
-cdef char ufunc__cosine_cdf_types[4]
-cdef char *ufunc__cosine_cdf_doc = (
-    "_cosine_cdf(x)\n"
-    "\n"
-    "Cumulative distribution function (CDF) of the cosine distribution::\n"
-    "\n"
-    "             {             0,              x < -pi\n"
-    "    cdf(x) = { (pi + x + sin(x))/(2*pi),   -pi <= x <= pi\n"
-    "             {             1,              x > pi\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    `x` must contain real numbers.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The cosine distribution CDF evaluated at `x`.")
-ufunc__cosine_cdf_loops[0] = loop_d_d__As_f_f
-ufunc__cosine_cdf_loops[1] = loop_d_d__As_d_d
-ufunc__cosine_cdf_types[0] = NPY_FLOAT
-ufunc__cosine_cdf_types[1] = NPY_FLOAT
-ufunc__cosine_cdf_types[2] = NPY_DOUBLE
-ufunc__cosine_cdf_types[3] = NPY_DOUBLE
-ufunc__cosine_cdf_ptr[2*0] = _func_cosine_cdf
-ufunc__cosine_cdf_ptr[2*0+1] = ("_cosine_cdf")
-ufunc__cosine_cdf_ptr[2*1] = _func_cosine_cdf
-ufunc__cosine_cdf_ptr[2*1+1] = ("_cosine_cdf")
-ufunc__cosine_cdf_data[0] = &ufunc__cosine_cdf_ptr[2*0]
-ufunc__cosine_cdf_data[1] = &ufunc__cosine_cdf_ptr[2*1]
-_cosine_cdf = np.PyUFunc_FromFuncAndData(ufunc__cosine_cdf_loops, ufunc__cosine_cdf_data, ufunc__cosine_cdf_types, 2, 1, 1, 0, "_cosine_cdf", ufunc__cosine_cdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__cosine_invcdf_loops[2]
-cdef void *ufunc__cosine_invcdf_ptr[4]
-cdef void *ufunc__cosine_invcdf_data[2]
-cdef char ufunc__cosine_invcdf_types[4]
-cdef char *ufunc__cosine_invcdf_doc = (
-    "_cosine_invcdf(p)\n"
-    "\n"
-    "Inverse of the cumulative distribution function (CDF) of the cosine\n"
-    "distribution.\n"
-    "\n"
-    "The CDF of the cosine distribution is::\n"
-    "\n"
-    "    cdf(x) = (pi + x + sin(x))/(2*pi)\n"
-    "\n"
-    "This function computes the inverse of cdf(x).\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    `p` must contain real numbers in the interval ``0 <= p <= 1``.\n"
-    "    `nan` is returned for values of `p` outside the interval [0, 1].\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The inverse of the cosine distribution CDF evaluated at `p`.")
-ufunc__cosine_invcdf_loops[0] = loop_d_d__As_f_f
-ufunc__cosine_invcdf_loops[1] = loop_d_d__As_d_d
-ufunc__cosine_invcdf_types[0] = NPY_FLOAT
-ufunc__cosine_invcdf_types[1] = NPY_FLOAT
-ufunc__cosine_invcdf_types[2] = NPY_DOUBLE
-ufunc__cosine_invcdf_types[3] = NPY_DOUBLE
-ufunc__cosine_invcdf_ptr[2*0] = _func_cosine_invcdf
-ufunc__cosine_invcdf_ptr[2*0+1] = ("_cosine_invcdf")
-ufunc__cosine_invcdf_ptr[2*1] = _func_cosine_invcdf
-ufunc__cosine_invcdf_ptr[2*1+1] = ("_cosine_invcdf")
-ufunc__cosine_invcdf_data[0] = &ufunc__cosine_invcdf_ptr[2*0]
-ufunc__cosine_invcdf_data[1] = &ufunc__cosine_invcdf_ptr[2*1]
-_cosine_invcdf = np.PyUFunc_FromFuncAndData(ufunc__cosine_invcdf_loops, ufunc__cosine_invcdf_data, ufunc__cosine_invcdf_types, 2, 1, 1, 0, "_cosine_invcdf", ufunc__cosine_invcdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ellip_harm_loops[3]
-cdef void *ufunc__ellip_harm_ptr[6]
-cdef void *ufunc__ellip_harm_data[3]
-cdef char ufunc__ellip_harm_types[24]
-cdef char *ufunc__ellip_harm_doc = (
-    "Internal function, use `ellip_harm` instead.")
-ufunc__ellip_harm_loops[0] = loop_d_ddddddd__As_fffffff_f
-ufunc__ellip_harm_loops[1] = loop_d_ddiiddd__As_ddllddd_d
-ufunc__ellip_harm_loops[2] = loop_d_ddddddd__As_ddddddd_d
-ufunc__ellip_harm_types[0] = NPY_FLOAT
-ufunc__ellip_harm_types[1] = NPY_FLOAT
-ufunc__ellip_harm_types[2] = NPY_FLOAT
-ufunc__ellip_harm_types[3] = NPY_FLOAT
-ufunc__ellip_harm_types[4] = NPY_FLOAT
-ufunc__ellip_harm_types[5] = NPY_FLOAT
-ufunc__ellip_harm_types[6] = NPY_FLOAT
-ufunc__ellip_harm_types[7] = NPY_FLOAT
-ufunc__ellip_harm_types[8] = NPY_DOUBLE
-ufunc__ellip_harm_types[9] = NPY_DOUBLE
-ufunc__ellip_harm_types[10] = NPY_LONG
-ufunc__ellip_harm_types[11] = NPY_LONG
-ufunc__ellip_harm_types[12] = NPY_DOUBLE
-ufunc__ellip_harm_types[13] = NPY_DOUBLE
-ufunc__ellip_harm_types[14] = NPY_DOUBLE
-ufunc__ellip_harm_types[15] = NPY_DOUBLE
-ufunc__ellip_harm_types[16] = NPY_DOUBLE
-ufunc__ellip_harm_types[17] = NPY_DOUBLE
-ufunc__ellip_harm_types[18] = NPY_DOUBLE
-ufunc__ellip_harm_types[19] = NPY_DOUBLE
-ufunc__ellip_harm_types[20] = NPY_DOUBLE
-ufunc__ellip_harm_types[21] = NPY_DOUBLE
-ufunc__ellip_harm_types[22] = NPY_DOUBLE
-ufunc__ellip_harm_types[23] = NPY_DOUBLE
-ufunc__ellip_harm_ptr[2*0] = _func_ellip_harmonic_unsafe
-ufunc__ellip_harm_ptr[2*0+1] = ("_ellip_harm")
-ufunc__ellip_harm_ptr[2*1] = _func_ellip_harmonic
-ufunc__ellip_harm_ptr[2*1+1] = ("_ellip_harm")
-ufunc__ellip_harm_ptr[2*2] = _func_ellip_harmonic_unsafe
-ufunc__ellip_harm_ptr[2*2+1] = ("_ellip_harm")
-ufunc__ellip_harm_data[0] = &ufunc__ellip_harm_ptr[2*0]
-ufunc__ellip_harm_data[1] = &ufunc__ellip_harm_ptr[2*1]
-ufunc__ellip_harm_data[2] = &ufunc__ellip_harm_ptr[2*2]
-_ellip_harm = np.PyUFunc_FromFuncAndData(ufunc__ellip_harm_loops, ufunc__ellip_harm_data, ufunc__ellip_harm_types, 3, 7, 1, 0, "_ellip_harm", ufunc__ellip_harm_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__factorial_loops[2]
-cdef void *ufunc__factorial_ptr[4]
-cdef void *ufunc__factorial_data[2]
-cdef char ufunc__factorial_types[4]
-cdef char *ufunc__factorial_doc = (
-    "Internal function, do not use.")
-ufunc__factorial_loops[0] = loop_d_d__As_f_f
-ufunc__factorial_loops[1] = loop_d_d__As_d_d
-ufunc__factorial_types[0] = NPY_FLOAT
-ufunc__factorial_types[1] = NPY_FLOAT
-ufunc__factorial_types[2] = NPY_DOUBLE
-ufunc__factorial_types[3] = NPY_DOUBLE
-ufunc__factorial_ptr[2*0] = _func__factorial
-ufunc__factorial_ptr[2*0+1] = ("_factorial")
-ufunc__factorial_ptr[2*1] = _func__factorial
-ufunc__factorial_ptr[2*1+1] = ("_factorial")
-ufunc__factorial_data[0] = &ufunc__factorial_ptr[2*0]
-ufunc__factorial_data[1] = &ufunc__factorial_ptr[2*1]
-_factorial = np.PyUFunc_FromFuncAndData(ufunc__factorial_loops, ufunc__factorial_data, ufunc__factorial_types, 2, 1, 1, 0, "_factorial", ufunc__factorial_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__hypergeom_cdf_loops[2]
-cdef void *ufunc__hypergeom_cdf_ptr[4]
-cdef void *ufunc__hypergeom_cdf_data[2]
-cdef char ufunc__hypergeom_cdf_types[10]
-cdef char *ufunc__hypergeom_cdf_doc = (
-    "_hypergeom_cdf(x, r, N, M)\n"
-    "\n"
-    "Cumulative density function of hypergeometric distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "r, N, M : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__hypergeom_cdf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__hypergeom_cdf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__hypergeom_cdf_types[0] = NPY_FLOAT
-ufunc__hypergeom_cdf_types[1] = NPY_FLOAT
-ufunc__hypergeom_cdf_types[2] = NPY_FLOAT
-ufunc__hypergeom_cdf_types[3] = NPY_FLOAT
-ufunc__hypergeom_cdf_types[4] = NPY_FLOAT
-ufunc__hypergeom_cdf_types[5] = NPY_DOUBLE
-ufunc__hypergeom_cdf_types[6] = NPY_DOUBLE
-ufunc__hypergeom_cdf_types[7] = NPY_DOUBLE
-ufunc__hypergeom_cdf_types[8] = NPY_DOUBLE
-ufunc__hypergeom_cdf_types[9] = NPY_DOUBLE
-ufunc__hypergeom_cdf_ptr[2*0] = scipy.special._ufuncs_cxx._export_hypergeom_cdf_float
-ufunc__hypergeom_cdf_ptr[2*0+1] = ("_hypergeom_cdf")
-ufunc__hypergeom_cdf_ptr[2*1] = scipy.special._ufuncs_cxx._export_hypergeom_cdf_double
-ufunc__hypergeom_cdf_ptr[2*1+1] = ("_hypergeom_cdf")
-ufunc__hypergeom_cdf_data[0] = &ufunc__hypergeom_cdf_ptr[2*0]
-ufunc__hypergeom_cdf_data[1] = &ufunc__hypergeom_cdf_ptr[2*1]
-_hypergeom_cdf = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_cdf_loops, ufunc__hypergeom_cdf_data, ufunc__hypergeom_cdf_types, 2, 4, 1, 0, "_hypergeom_cdf", ufunc__hypergeom_cdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__hypergeom_mean_loops[2]
-cdef void *ufunc__hypergeom_mean_ptr[4]
-cdef void *ufunc__hypergeom_mean_data[2]
-cdef char ufunc__hypergeom_mean_types[8]
-cdef char *ufunc__hypergeom_mean_doc = (
-    "_hypergeom_mean(r, N, M)\n"
-    "\n"
-    "Mean of hypergeometric distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "r, N, M : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__hypergeom_mean_loops[0] = loop_f_fff__As_fff_f
-ufunc__hypergeom_mean_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__hypergeom_mean_types[0] = NPY_FLOAT
-ufunc__hypergeom_mean_types[1] = NPY_FLOAT
-ufunc__hypergeom_mean_types[2] = NPY_FLOAT
-ufunc__hypergeom_mean_types[3] = NPY_FLOAT
-ufunc__hypergeom_mean_types[4] = NPY_DOUBLE
-ufunc__hypergeom_mean_types[5] = NPY_DOUBLE
-ufunc__hypergeom_mean_types[6] = NPY_DOUBLE
-ufunc__hypergeom_mean_types[7] = NPY_DOUBLE
-ufunc__hypergeom_mean_ptr[2*0] = scipy.special._ufuncs_cxx._export_hypergeom_mean_float
-ufunc__hypergeom_mean_ptr[2*0+1] = ("_hypergeom_mean")
-ufunc__hypergeom_mean_ptr[2*1] = scipy.special._ufuncs_cxx._export_hypergeom_mean_double
-ufunc__hypergeom_mean_ptr[2*1+1] = ("_hypergeom_mean")
-ufunc__hypergeom_mean_data[0] = &ufunc__hypergeom_mean_ptr[2*0]
-ufunc__hypergeom_mean_data[1] = &ufunc__hypergeom_mean_ptr[2*1]
-_hypergeom_mean = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_mean_loops, ufunc__hypergeom_mean_data, ufunc__hypergeom_mean_types, 2, 3, 1, 0, "_hypergeom_mean", ufunc__hypergeom_mean_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__hypergeom_pmf_loops[2]
-cdef void *ufunc__hypergeom_pmf_ptr[4]
-cdef void *ufunc__hypergeom_pmf_data[2]
-cdef char ufunc__hypergeom_pmf_types[10]
-cdef char *ufunc__hypergeom_pmf_doc = (
-    "_hypergeom_pmf(x, r, N, M)\n"
-    "\n"
-    "Probability mass function of hypergeometric distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "r, N, M : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__hypergeom_pmf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__hypergeom_pmf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__hypergeom_pmf_types[0] = NPY_FLOAT
-ufunc__hypergeom_pmf_types[1] = NPY_FLOAT
-ufunc__hypergeom_pmf_types[2] = NPY_FLOAT
-ufunc__hypergeom_pmf_types[3] = NPY_FLOAT
-ufunc__hypergeom_pmf_types[4] = NPY_FLOAT
-ufunc__hypergeom_pmf_types[5] = NPY_DOUBLE
-ufunc__hypergeom_pmf_types[6] = NPY_DOUBLE
-ufunc__hypergeom_pmf_types[7] = NPY_DOUBLE
-ufunc__hypergeom_pmf_types[8] = NPY_DOUBLE
-ufunc__hypergeom_pmf_types[9] = NPY_DOUBLE
-ufunc__hypergeom_pmf_ptr[2*0] = scipy.special._ufuncs_cxx._export_hypergeom_pmf_float
-ufunc__hypergeom_pmf_ptr[2*0+1] = ("_hypergeom_pmf")
-ufunc__hypergeom_pmf_ptr[2*1] = scipy.special._ufuncs_cxx._export_hypergeom_pmf_double
-ufunc__hypergeom_pmf_ptr[2*1+1] = ("_hypergeom_pmf")
-ufunc__hypergeom_pmf_data[0] = &ufunc__hypergeom_pmf_ptr[2*0]
-ufunc__hypergeom_pmf_data[1] = &ufunc__hypergeom_pmf_ptr[2*1]
-_hypergeom_pmf = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_pmf_loops, ufunc__hypergeom_pmf_data, ufunc__hypergeom_pmf_types, 2, 4, 1, 0, "_hypergeom_pmf", ufunc__hypergeom_pmf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__hypergeom_sf_loops[2]
-cdef void *ufunc__hypergeom_sf_ptr[4]
-cdef void *ufunc__hypergeom_sf_data[2]
-cdef char ufunc__hypergeom_sf_types[10]
-cdef char *ufunc__hypergeom_sf_doc = (
-    "_hypergeom_sf(x, r, N, M)\n"
-    "\n"
-    "Survival function of hypergeometric distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "r, N, M : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__hypergeom_sf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__hypergeom_sf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__hypergeom_sf_types[0] = NPY_FLOAT
-ufunc__hypergeom_sf_types[1] = NPY_FLOAT
-ufunc__hypergeom_sf_types[2] = NPY_FLOAT
-ufunc__hypergeom_sf_types[3] = NPY_FLOAT
-ufunc__hypergeom_sf_types[4] = NPY_FLOAT
-ufunc__hypergeom_sf_types[5] = NPY_DOUBLE
-ufunc__hypergeom_sf_types[6] = NPY_DOUBLE
-ufunc__hypergeom_sf_types[7] = NPY_DOUBLE
-ufunc__hypergeom_sf_types[8] = NPY_DOUBLE
-ufunc__hypergeom_sf_types[9] = NPY_DOUBLE
-ufunc__hypergeom_sf_ptr[2*0] = scipy.special._ufuncs_cxx._export_hypergeom_sf_float
-ufunc__hypergeom_sf_ptr[2*0+1] = ("_hypergeom_sf")
-ufunc__hypergeom_sf_ptr[2*1] = scipy.special._ufuncs_cxx._export_hypergeom_sf_double
-ufunc__hypergeom_sf_ptr[2*1+1] = ("_hypergeom_sf")
-ufunc__hypergeom_sf_data[0] = &ufunc__hypergeom_sf_ptr[2*0]
-ufunc__hypergeom_sf_data[1] = &ufunc__hypergeom_sf_ptr[2*1]
-_hypergeom_sf = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_sf_loops, ufunc__hypergeom_sf_data, ufunc__hypergeom_sf_types, 2, 4, 1, 0, "_hypergeom_sf", ufunc__hypergeom_sf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__hypergeom_skewness_loops[2]
-cdef void *ufunc__hypergeom_skewness_ptr[4]
-cdef void *ufunc__hypergeom_skewness_data[2]
-cdef char ufunc__hypergeom_skewness_types[8]
-cdef char *ufunc__hypergeom_skewness_doc = (
-    "_hypergeom_skewness(r, N, M)\n"
-    "\n"
-    "Skewness of hypergeometric distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "r, N, M : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__hypergeom_skewness_loops[0] = loop_f_fff__As_fff_f
-ufunc__hypergeom_skewness_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__hypergeom_skewness_types[0] = NPY_FLOAT
-ufunc__hypergeom_skewness_types[1] = NPY_FLOAT
-ufunc__hypergeom_skewness_types[2] = NPY_FLOAT
-ufunc__hypergeom_skewness_types[3] = NPY_FLOAT
-ufunc__hypergeom_skewness_types[4] = NPY_DOUBLE
-ufunc__hypergeom_skewness_types[5] = NPY_DOUBLE
-ufunc__hypergeom_skewness_types[6] = NPY_DOUBLE
-ufunc__hypergeom_skewness_types[7] = NPY_DOUBLE
-ufunc__hypergeom_skewness_ptr[2*0] = scipy.special._ufuncs_cxx._export_hypergeom_skewness_float
-ufunc__hypergeom_skewness_ptr[2*0+1] = ("_hypergeom_skewness")
-ufunc__hypergeom_skewness_ptr[2*1] = scipy.special._ufuncs_cxx._export_hypergeom_skewness_double
-ufunc__hypergeom_skewness_ptr[2*1+1] = ("_hypergeom_skewness")
-ufunc__hypergeom_skewness_data[0] = &ufunc__hypergeom_skewness_ptr[2*0]
-ufunc__hypergeom_skewness_data[1] = &ufunc__hypergeom_skewness_ptr[2*1]
-_hypergeom_skewness = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_skewness_loops, ufunc__hypergeom_skewness_data, ufunc__hypergeom_skewness_types, 2, 3, 1, 0, "_hypergeom_skewness", ufunc__hypergeom_skewness_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__hypergeom_variance_loops[2]
-cdef void *ufunc__hypergeom_variance_ptr[4]
-cdef void *ufunc__hypergeom_variance_data[2]
-cdef char ufunc__hypergeom_variance_types[8]
-cdef char *ufunc__hypergeom_variance_doc = (
-    "_hypergeom_variance(r, N, M)\n"
-    "\n"
-    "Mean of hypergeometric distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "r, N, M : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__hypergeom_variance_loops[0] = loop_f_fff__As_fff_f
-ufunc__hypergeom_variance_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__hypergeom_variance_types[0] = NPY_FLOAT
-ufunc__hypergeom_variance_types[1] = NPY_FLOAT
-ufunc__hypergeom_variance_types[2] = NPY_FLOAT
-ufunc__hypergeom_variance_types[3] = NPY_FLOAT
-ufunc__hypergeom_variance_types[4] = NPY_DOUBLE
-ufunc__hypergeom_variance_types[5] = NPY_DOUBLE
-ufunc__hypergeom_variance_types[6] = NPY_DOUBLE
-ufunc__hypergeom_variance_types[7] = NPY_DOUBLE
-ufunc__hypergeom_variance_ptr[2*0] = scipy.special._ufuncs_cxx._export_hypergeom_variance_float
-ufunc__hypergeom_variance_ptr[2*0+1] = ("_hypergeom_variance")
-ufunc__hypergeom_variance_ptr[2*1] = scipy.special._ufuncs_cxx._export_hypergeom_variance_double
-ufunc__hypergeom_variance_ptr[2*1+1] = ("_hypergeom_variance")
-ufunc__hypergeom_variance_data[0] = &ufunc__hypergeom_variance_ptr[2*0]
-ufunc__hypergeom_variance_data[1] = &ufunc__hypergeom_variance_ptr[2*1]
-_hypergeom_variance = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_variance_loops, ufunc__hypergeom_variance_data, ufunc__hypergeom_variance_types, 2, 3, 1, 0, "_hypergeom_variance", ufunc__hypergeom_variance_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__igam_fac_loops[2]
-cdef void *ufunc__igam_fac_ptr[4]
-cdef void *ufunc__igam_fac_data[2]
-cdef char ufunc__igam_fac_types[6]
-cdef char *ufunc__igam_fac_doc = (
-    "Internal function, do not use.")
-ufunc__igam_fac_loops[0] = loop_d_dd__As_ff_f
-ufunc__igam_fac_loops[1] = loop_d_dd__As_dd_d
-ufunc__igam_fac_types[0] = NPY_FLOAT
-ufunc__igam_fac_types[1] = NPY_FLOAT
-ufunc__igam_fac_types[2] = NPY_FLOAT
-ufunc__igam_fac_types[3] = NPY_DOUBLE
-ufunc__igam_fac_types[4] = NPY_DOUBLE
-ufunc__igam_fac_types[5] = NPY_DOUBLE
-ufunc__igam_fac_ptr[2*0] = _func_cephes_igam_fac
-ufunc__igam_fac_ptr[2*0+1] = ("_igam_fac")
-ufunc__igam_fac_ptr[2*1] = _func_cephes_igam_fac
-ufunc__igam_fac_ptr[2*1+1] = ("_igam_fac")
-ufunc__igam_fac_data[0] = &ufunc__igam_fac_ptr[2*0]
-ufunc__igam_fac_data[1] = &ufunc__igam_fac_ptr[2*1]
-_igam_fac = np.PyUFunc_FromFuncAndData(ufunc__igam_fac_loops, ufunc__igam_fac_data, ufunc__igam_fac_types, 2, 2, 1, 0, "_igam_fac", ufunc__igam_fac_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__invgauss_isf_loops[2]
-cdef void *ufunc__invgauss_isf_ptr[4]
-cdef void *ufunc__invgauss_isf_data[2]
-cdef char ufunc__invgauss_isf_types[8]
-cdef char *ufunc__invgauss_isf_doc = (
-    "_invgauss_isf(x, mu, s)\n"
-    "\n"
-    "Inverse survival function of inverse gaussian distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "mu : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "s : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__invgauss_isf_loops[0] = loop_f_fff__As_fff_f
-ufunc__invgauss_isf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__invgauss_isf_types[0] = NPY_FLOAT
-ufunc__invgauss_isf_types[1] = NPY_FLOAT
-ufunc__invgauss_isf_types[2] = NPY_FLOAT
-ufunc__invgauss_isf_types[3] = NPY_FLOAT
-ufunc__invgauss_isf_types[4] = NPY_DOUBLE
-ufunc__invgauss_isf_types[5] = NPY_DOUBLE
-ufunc__invgauss_isf_types[6] = NPY_DOUBLE
-ufunc__invgauss_isf_types[7] = NPY_DOUBLE
-ufunc__invgauss_isf_ptr[2*0] = scipy.special._ufuncs_cxx._export_invgauss_isf_float
-ufunc__invgauss_isf_ptr[2*0+1] = ("_invgauss_isf")
-ufunc__invgauss_isf_ptr[2*1] = scipy.special._ufuncs_cxx._export_invgauss_isf_double
-ufunc__invgauss_isf_ptr[2*1+1] = ("_invgauss_isf")
-ufunc__invgauss_isf_data[0] = &ufunc__invgauss_isf_ptr[2*0]
-ufunc__invgauss_isf_data[1] = &ufunc__invgauss_isf_ptr[2*1]
-_invgauss_isf = np.PyUFunc_FromFuncAndData(ufunc__invgauss_isf_loops, ufunc__invgauss_isf_data, ufunc__invgauss_isf_types, 2, 3, 1, 0, "_invgauss_isf", ufunc__invgauss_isf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__invgauss_ppf_loops[2]
-cdef void *ufunc__invgauss_ppf_ptr[4]
-cdef void *ufunc__invgauss_ppf_data[2]
-cdef char ufunc__invgauss_ppf_types[8]
-cdef char *ufunc__invgauss_ppf_doc = (
-    "_invgauss_ppf(x, mu)\n"
-    "\n"
-    "Percent point function of inverse gaussian distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "mu : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__invgauss_ppf_loops[0] = loop_f_fff__As_fff_f
-ufunc__invgauss_ppf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__invgauss_ppf_types[0] = NPY_FLOAT
-ufunc__invgauss_ppf_types[1] = NPY_FLOAT
-ufunc__invgauss_ppf_types[2] = NPY_FLOAT
-ufunc__invgauss_ppf_types[3] = NPY_FLOAT
-ufunc__invgauss_ppf_types[4] = NPY_DOUBLE
-ufunc__invgauss_ppf_types[5] = NPY_DOUBLE
-ufunc__invgauss_ppf_types[6] = NPY_DOUBLE
-ufunc__invgauss_ppf_types[7] = NPY_DOUBLE
-ufunc__invgauss_ppf_ptr[2*0] = scipy.special._ufuncs_cxx._export_invgauss_ppf_float
-ufunc__invgauss_ppf_ptr[2*0+1] = ("_invgauss_ppf")
-ufunc__invgauss_ppf_ptr[2*1] = scipy.special._ufuncs_cxx._export_invgauss_ppf_double
-ufunc__invgauss_ppf_ptr[2*1+1] = ("_invgauss_ppf")
-ufunc__invgauss_ppf_data[0] = &ufunc__invgauss_ppf_ptr[2*0]
-ufunc__invgauss_ppf_data[1] = &ufunc__invgauss_ppf_ptr[2*1]
-_invgauss_ppf = np.PyUFunc_FromFuncAndData(ufunc__invgauss_ppf_loops, ufunc__invgauss_ppf_data, ufunc__invgauss_ppf_types, 2, 3, 1, 0, "_invgauss_ppf", ufunc__invgauss_ppf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__kolmogc_loops[2]
-cdef void *ufunc__kolmogc_ptr[4]
-cdef void *ufunc__kolmogc_data[2]
-cdef char ufunc__kolmogc_types[4]
-cdef char *ufunc__kolmogc_doc = (
-    "Internal function, do not use.")
-ufunc__kolmogc_loops[0] = loop_d_d__As_f_f
-ufunc__kolmogc_loops[1] = loop_d_d__As_d_d
-ufunc__kolmogc_types[0] = NPY_FLOAT
-ufunc__kolmogc_types[1] = NPY_FLOAT
-ufunc__kolmogc_types[2] = NPY_DOUBLE
-ufunc__kolmogc_types[3] = NPY_DOUBLE
-ufunc__kolmogc_ptr[2*0] = _func_cephes_kolmogc
-ufunc__kolmogc_ptr[2*0+1] = ("_kolmogc")
-ufunc__kolmogc_ptr[2*1] = _func_cephes_kolmogc
-ufunc__kolmogc_ptr[2*1+1] = ("_kolmogc")
-ufunc__kolmogc_data[0] = &ufunc__kolmogc_ptr[2*0]
-ufunc__kolmogc_data[1] = &ufunc__kolmogc_ptr[2*1]
-_kolmogc = np.PyUFunc_FromFuncAndData(ufunc__kolmogc_loops, ufunc__kolmogc_data, ufunc__kolmogc_types, 2, 1, 1, 0, "_kolmogc", ufunc__kolmogc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__kolmogci_loops[2]
-cdef void *ufunc__kolmogci_ptr[4]
-cdef void *ufunc__kolmogci_data[2]
-cdef char ufunc__kolmogci_types[4]
-cdef char *ufunc__kolmogci_doc = (
-    "Internal function, do not use.")
-ufunc__kolmogci_loops[0] = loop_d_d__As_f_f
-ufunc__kolmogci_loops[1] = loop_d_d__As_d_d
-ufunc__kolmogci_types[0] = NPY_FLOAT
-ufunc__kolmogci_types[1] = NPY_FLOAT
-ufunc__kolmogci_types[2] = NPY_DOUBLE
-ufunc__kolmogci_types[3] = NPY_DOUBLE
-ufunc__kolmogci_ptr[2*0] = _func_cephes_kolmogci
-ufunc__kolmogci_ptr[2*0+1] = ("_kolmogci")
-ufunc__kolmogci_ptr[2*1] = _func_cephes_kolmogci
-ufunc__kolmogci_ptr[2*1+1] = ("_kolmogci")
-ufunc__kolmogci_data[0] = &ufunc__kolmogci_ptr[2*0]
-ufunc__kolmogci_data[1] = &ufunc__kolmogci_ptr[2*1]
-_kolmogci = np.PyUFunc_FromFuncAndData(ufunc__kolmogci_loops, ufunc__kolmogci_data, ufunc__kolmogci_types, 2, 1, 1, 0, "_kolmogci", ufunc__kolmogci_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__kolmogp_loops[2]
-cdef void *ufunc__kolmogp_ptr[4]
-cdef void *ufunc__kolmogp_data[2]
-cdef char ufunc__kolmogp_types[4]
-cdef char *ufunc__kolmogp_doc = (
-    "Internal function, do not use.")
-ufunc__kolmogp_loops[0] = loop_d_d__As_f_f
-ufunc__kolmogp_loops[1] = loop_d_d__As_d_d
-ufunc__kolmogp_types[0] = NPY_FLOAT
-ufunc__kolmogp_types[1] = NPY_FLOAT
-ufunc__kolmogp_types[2] = NPY_DOUBLE
-ufunc__kolmogp_types[3] = NPY_DOUBLE
-ufunc__kolmogp_ptr[2*0] = _func_cephes_kolmogp
-ufunc__kolmogp_ptr[2*0+1] = ("_kolmogp")
-ufunc__kolmogp_ptr[2*1] = _func_cephes_kolmogp
-ufunc__kolmogp_ptr[2*1+1] = ("_kolmogp")
-ufunc__kolmogp_data[0] = &ufunc__kolmogp_ptr[2*0]
-ufunc__kolmogp_data[1] = &ufunc__kolmogp_ptr[2*1]
-_kolmogp = np.PyUFunc_FromFuncAndData(ufunc__kolmogp_loops, ufunc__kolmogp_data, ufunc__kolmogp_types, 2, 1, 1, 0, "_kolmogp", ufunc__kolmogp_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__lanczos_sum_expg_scaled_loops[2]
-cdef void *ufunc__lanczos_sum_expg_scaled_ptr[4]
-cdef void *ufunc__lanczos_sum_expg_scaled_data[2]
-cdef char ufunc__lanczos_sum_expg_scaled_types[4]
-cdef char *ufunc__lanczos_sum_expg_scaled_doc = (
-    "Internal function, do not use.")
-ufunc__lanczos_sum_expg_scaled_loops[0] = loop_d_d__As_f_f
-ufunc__lanczos_sum_expg_scaled_loops[1] = loop_d_d__As_d_d
-ufunc__lanczos_sum_expg_scaled_types[0] = NPY_FLOAT
-ufunc__lanczos_sum_expg_scaled_types[1] = NPY_FLOAT
-ufunc__lanczos_sum_expg_scaled_types[2] = NPY_DOUBLE
-ufunc__lanczos_sum_expg_scaled_types[3] = NPY_DOUBLE
-ufunc__lanczos_sum_expg_scaled_ptr[2*0] = _func_cephes_lanczos_sum_expg_scaled
-ufunc__lanczos_sum_expg_scaled_ptr[2*0+1] = ("_lanczos_sum_expg_scaled")
-ufunc__lanczos_sum_expg_scaled_ptr[2*1] = _func_cephes_lanczos_sum_expg_scaled
-ufunc__lanczos_sum_expg_scaled_ptr[2*1+1] = ("_lanczos_sum_expg_scaled")
-ufunc__lanczos_sum_expg_scaled_data[0] = &ufunc__lanczos_sum_expg_scaled_ptr[2*0]
-ufunc__lanczos_sum_expg_scaled_data[1] = &ufunc__lanczos_sum_expg_scaled_ptr[2*1]
-_lanczos_sum_expg_scaled = np.PyUFunc_FromFuncAndData(ufunc__lanczos_sum_expg_scaled_loops, ufunc__lanczos_sum_expg_scaled_data, ufunc__lanczos_sum_expg_scaled_types, 2, 1, 1, 0, "_lanczos_sum_expg_scaled", ufunc__lanczos_sum_expg_scaled_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__lgam1p_loops[2]
-cdef void *ufunc__lgam1p_ptr[4]
-cdef void *ufunc__lgam1p_data[2]
-cdef char ufunc__lgam1p_types[4]
-cdef char *ufunc__lgam1p_doc = (
-    "Internal function, do not use.")
-ufunc__lgam1p_loops[0] = loop_d_d__As_f_f
-ufunc__lgam1p_loops[1] = loop_d_d__As_d_d
-ufunc__lgam1p_types[0] = NPY_FLOAT
-ufunc__lgam1p_types[1] = NPY_FLOAT
-ufunc__lgam1p_types[2] = NPY_DOUBLE
-ufunc__lgam1p_types[3] = NPY_DOUBLE
-ufunc__lgam1p_ptr[2*0] = _func_cephes_lgam1p
-ufunc__lgam1p_ptr[2*0+1] = ("_lgam1p")
-ufunc__lgam1p_ptr[2*1] = _func_cephes_lgam1p
-ufunc__lgam1p_ptr[2*1+1] = ("_lgam1p")
-ufunc__lgam1p_data[0] = &ufunc__lgam1p_ptr[2*0]
-ufunc__lgam1p_data[1] = &ufunc__lgam1p_ptr[2*1]
-_lgam1p = np.PyUFunc_FromFuncAndData(ufunc__lgam1p_loops, ufunc__lgam1p_data, ufunc__lgam1p_types, 2, 1, 1, 0, "_lgam1p", ufunc__lgam1p_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__log1pmx_loops[2]
-cdef void *ufunc__log1pmx_ptr[4]
-cdef void *ufunc__log1pmx_data[2]
-cdef char ufunc__log1pmx_types[4]
-cdef char *ufunc__log1pmx_doc = (
-    "Internal function, do not use.")
-ufunc__log1pmx_loops[0] = loop_d_d__As_f_f
-ufunc__log1pmx_loops[1] = loop_d_d__As_d_d
-ufunc__log1pmx_types[0] = NPY_FLOAT
-ufunc__log1pmx_types[1] = NPY_FLOAT
-ufunc__log1pmx_types[2] = NPY_DOUBLE
-ufunc__log1pmx_types[3] = NPY_DOUBLE
-ufunc__log1pmx_ptr[2*0] = _func_cephes_log1pmx
-ufunc__log1pmx_ptr[2*0+1] = ("_log1pmx")
-ufunc__log1pmx_ptr[2*1] = _func_cephes_log1pmx
-ufunc__log1pmx_ptr[2*1+1] = ("_log1pmx")
-ufunc__log1pmx_data[0] = &ufunc__log1pmx_ptr[2*0]
-ufunc__log1pmx_data[1] = &ufunc__log1pmx_ptr[2*1]
-_log1pmx = np.PyUFunc_FromFuncAndData(ufunc__log1pmx_loops, ufunc__log1pmx_data, ufunc__log1pmx_types, 2, 1, 1, 0, "_log1pmx", ufunc__log1pmx_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nbinom_cdf_loops[2]
-cdef void *ufunc__nbinom_cdf_ptr[4]
-cdef void *ufunc__nbinom_cdf_data[2]
-cdef char ufunc__nbinom_cdf_types[8]
-cdef char *ufunc__nbinom_cdf_doc = (
-    "_nbinom_cdf(x, r, p)\n"
-    "\n"
-    "Cumulative density function of negative binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "r : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nbinom_cdf_loops[0] = loop_f_fff__As_fff_f
-ufunc__nbinom_cdf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__nbinom_cdf_types[0] = NPY_FLOAT
-ufunc__nbinom_cdf_types[1] = NPY_FLOAT
-ufunc__nbinom_cdf_types[2] = NPY_FLOAT
-ufunc__nbinom_cdf_types[3] = NPY_FLOAT
-ufunc__nbinom_cdf_types[4] = NPY_DOUBLE
-ufunc__nbinom_cdf_types[5] = NPY_DOUBLE
-ufunc__nbinom_cdf_types[6] = NPY_DOUBLE
-ufunc__nbinom_cdf_types[7] = NPY_DOUBLE
-ufunc__nbinom_cdf_ptr[2*0] = scipy.special._ufuncs_cxx._export_nbinom_cdf_float
-ufunc__nbinom_cdf_ptr[2*0+1] = ("_nbinom_cdf")
-ufunc__nbinom_cdf_ptr[2*1] = scipy.special._ufuncs_cxx._export_nbinom_cdf_double
-ufunc__nbinom_cdf_ptr[2*1+1] = ("_nbinom_cdf")
-ufunc__nbinom_cdf_data[0] = &ufunc__nbinom_cdf_ptr[2*0]
-ufunc__nbinom_cdf_data[1] = &ufunc__nbinom_cdf_ptr[2*1]
-_nbinom_cdf = np.PyUFunc_FromFuncAndData(ufunc__nbinom_cdf_loops, ufunc__nbinom_cdf_data, ufunc__nbinom_cdf_types, 2, 3, 1, 0, "_nbinom_cdf", ufunc__nbinom_cdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nbinom_isf_loops[2]
-cdef void *ufunc__nbinom_isf_ptr[4]
-cdef void *ufunc__nbinom_isf_data[2]
-cdef char ufunc__nbinom_isf_types[8]
-cdef char *ufunc__nbinom_isf_doc = (
-    "_nbinom_isf(x, r, p)\n"
-    "\n"
-    "Inverse survival function of negative binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "r : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nbinom_isf_loops[0] = loop_f_fff__As_fff_f
-ufunc__nbinom_isf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__nbinom_isf_types[0] = NPY_FLOAT
-ufunc__nbinom_isf_types[1] = NPY_FLOAT
-ufunc__nbinom_isf_types[2] = NPY_FLOAT
-ufunc__nbinom_isf_types[3] = NPY_FLOAT
-ufunc__nbinom_isf_types[4] = NPY_DOUBLE
-ufunc__nbinom_isf_types[5] = NPY_DOUBLE
-ufunc__nbinom_isf_types[6] = NPY_DOUBLE
-ufunc__nbinom_isf_types[7] = NPY_DOUBLE
-ufunc__nbinom_isf_ptr[2*0] = scipy.special._ufuncs_cxx._export_nbinom_isf_float
-ufunc__nbinom_isf_ptr[2*0+1] = ("_nbinom_isf")
-ufunc__nbinom_isf_ptr[2*1] = scipy.special._ufuncs_cxx._export_nbinom_isf_double
-ufunc__nbinom_isf_ptr[2*1+1] = ("_nbinom_isf")
-ufunc__nbinom_isf_data[0] = &ufunc__nbinom_isf_ptr[2*0]
-ufunc__nbinom_isf_data[1] = &ufunc__nbinom_isf_ptr[2*1]
-_nbinom_isf = np.PyUFunc_FromFuncAndData(ufunc__nbinom_isf_loops, ufunc__nbinom_isf_data, ufunc__nbinom_isf_types, 2, 3, 1, 0, "_nbinom_isf", ufunc__nbinom_isf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nbinom_kurtosis_excess_loops[2]
-cdef void *ufunc__nbinom_kurtosis_excess_ptr[4]
-cdef void *ufunc__nbinom_kurtosis_excess_data[2]
-cdef char ufunc__nbinom_kurtosis_excess_types[6]
-cdef char *ufunc__nbinom_kurtosis_excess_doc = (
-    "_nbinom_kurtosis_excess(r, p)\n"
-    "\n"
-    "Kurtosis excess of negative binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "r : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nbinom_kurtosis_excess_loops[0] = loop_f_ff__As_ff_f
-ufunc__nbinom_kurtosis_excess_loops[1] = loop_d_dd__As_dd_d
-ufunc__nbinom_kurtosis_excess_types[0] = NPY_FLOAT
-ufunc__nbinom_kurtosis_excess_types[1] = NPY_FLOAT
-ufunc__nbinom_kurtosis_excess_types[2] = NPY_FLOAT
-ufunc__nbinom_kurtosis_excess_types[3] = NPY_DOUBLE
-ufunc__nbinom_kurtosis_excess_types[4] = NPY_DOUBLE
-ufunc__nbinom_kurtosis_excess_types[5] = NPY_DOUBLE
-ufunc__nbinom_kurtosis_excess_ptr[2*0] = scipy.special._ufuncs_cxx._export_nbinom_kurtosis_excess_float
-ufunc__nbinom_kurtosis_excess_ptr[2*0+1] = ("_nbinom_kurtosis_excess")
-ufunc__nbinom_kurtosis_excess_ptr[2*1] = scipy.special._ufuncs_cxx._export_nbinom_kurtosis_excess_double
-ufunc__nbinom_kurtosis_excess_ptr[2*1+1] = ("_nbinom_kurtosis_excess")
-ufunc__nbinom_kurtosis_excess_data[0] = &ufunc__nbinom_kurtosis_excess_ptr[2*0]
-ufunc__nbinom_kurtosis_excess_data[1] = &ufunc__nbinom_kurtosis_excess_ptr[2*1]
-_nbinom_kurtosis_excess = np.PyUFunc_FromFuncAndData(ufunc__nbinom_kurtosis_excess_loops, ufunc__nbinom_kurtosis_excess_data, ufunc__nbinom_kurtosis_excess_types, 2, 2, 1, 0, "_nbinom_kurtosis_excess", ufunc__nbinom_kurtosis_excess_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nbinom_mean_loops[2]
-cdef void *ufunc__nbinom_mean_ptr[4]
-cdef void *ufunc__nbinom_mean_data[2]
-cdef char ufunc__nbinom_mean_types[6]
-cdef char *ufunc__nbinom_mean_doc = (
-    "_nbinom_mean(r, p)\n"
-    "\n"
-    "Mean of negative binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "r : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nbinom_mean_loops[0] = loop_f_ff__As_ff_f
-ufunc__nbinom_mean_loops[1] = loop_d_dd__As_dd_d
-ufunc__nbinom_mean_types[0] = NPY_FLOAT
-ufunc__nbinom_mean_types[1] = NPY_FLOAT
-ufunc__nbinom_mean_types[2] = NPY_FLOAT
-ufunc__nbinom_mean_types[3] = NPY_DOUBLE
-ufunc__nbinom_mean_types[4] = NPY_DOUBLE
-ufunc__nbinom_mean_types[5] = NPY_DOUBLE
-ufunc__nbinom_mean_ptr[2*0] = scipy.special._ufuncs_cxx._export_nbinom_mean_float
-ufunc__nbinom_mean_ptr[2*0+1] = ("_nbinom_mean")
-ufunc__nbinom_mean_ptr[2*1] = scipy.special._ufuncs_cxx._export_nbinom_mean_double
-ufunc__nbinom_mean_ptr[2*1+1] = ("_nbinom_mean")
-ufunc__nbinom_mean_data[0] = &ufunc__nbinom_mean_ptr[2*0]
-ufunc__nbinom_mean_data[1] = &ufunc__nbinom_mean_ptr[2*1]
-_nbinom_mean = np.PyUFunc_FromFuncAndData(ufunc__nbinom_mean_loops, ufunc__nbinom_mean_data, ufunc__nbinom_mean_types, 2, 2, 1, 0, "_nbinom_mean", ufunc__nbinom_mean_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nbinom_pmf_loops[2]
-cdef void *ufunc__nbinom_pmf_ptr[4]
-cdef void *ufunc__nbinom_pmf_data[2]
-cdef char ufunc__nbinom_pmf_types[8]
-cdef char *ufunc__nbinom_pmf_doc = (
-    "_nbinom_pmf(x, r, p)\n"
-    "\n"
-    "Probability mass function of negative binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "r : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nbinom_pmf_loops[0] = loop_f_fff__As_fff_f
-ufunc__nbinom_pmf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__nbinom_pmf_types[0] = NPY_FLOAT
-ufunc__nbinom_pmf_types[1] = NPY_FLOAT
-ufunc__nbinom_pmf_types[2] = NPY_FLOAT
-ufunc__nbinom_pmf_types[3] = NPY_FLOAT
-ufunc__nbinom_pmf_types[4] = NPY_DOUBLE
-ufunc__nbinom_pmf_types[5] = NPY_DOUBLE
-ufunc__nbinom_pmf_types[6] = NPY_DOUBLE
-ufunc__nbinom_pmf_types[7] = NPY_DOUBLE
-ufunc__nbinom_pmf_ptr[2*0] = scipy.special._ufuncs_cxx._export_nbinom_pmf_float
-ufunc__nbinom_pmf_ptr[2*0+1] = ("_nbinom_pmf")
-ufunc__nbinom_pmf_ptr[2*1] = scipy.special._ufuncs_cxx._export_nbinom_pmf_double
-ufunc__nbinom_pmf_ptr[2*1+1] = ("_nbinom_pmf")
-ufunc__nbinom_pmf_data[0] = &ufunc__nbinom_pmf_ptr[2*0]
-ufunc__nbinom_pmf_data[1] = &ufunc__nbinom_pmf_ptr[2*1]
-_nbinom_pmf = np.PyUFunc_FromFuncAndData(ufunc__nbinom_pmf_loops, ufunc__nbinom_pmf_data, ufunc__nbinom_pmf_types, 2, 3, 1, 0, "_nbinom_pmf", ufunc__nbinom_pmf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nbinom_ppf_loops[2]
-cdef void *ufunc__nbinom_ppf_ptr[4]
-cdef void *ufunc__nbinom_ppf_data[2]
-cdef char ufunc__nbinom_ppf_types[8]
-cdef char *ufunc__nbinom_ppf_doc = (
-    "_nbinom_ppf(x, r, p)\n"
-    "\n"
-    "Percent point function of negative binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "r : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nbinom_ppf_loops[0] = loop_f_fff__As_fff_f
-ufunc__nbinom_ppf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__nbinom_ppf_types[0] = NPY_FLOAT
-ufunc__nbinom_ppf_types[1] = NPY_FLOAT
-ufunc__nbinom_ppf_types[2] = NPY_FLOAT
-ufunc__nbinom_ppf_types[3] = NPY_FLOAT
-ufunc__nbinom_ppf_types[4] = NPY_DOUBLE
-ufunc__nbinom_ppf_types[5] = NPY_DOUBLE
-ufunc__nbinom_ppf_types[6] = NPY_DOUBLE
-ufunc__nbinom_ppf_types[7] = NPY_DOUBLE
-ufunc__nbinom_ppf_ptr[2*0] = scipy.special._ufuncs_cxx._export_nbinom_ppf_float
-ufunc__nbinom_ppf_ptr[2*0+1] = ("_nbinom_ppf")
-ufunc__nbinom_ppf_ptr[2*1] = scipy.special._ufuncs_cxx._export_nbinom_ppf_double
-ufunc__nbinom_ppf_ptr[2*1+1] = ("_nbinom_ppf")
-ufunc__nbinom_ppf_data[0] = &ufunc__nbinom_ppf_ptr[2*0]
-ufunc__nbinom_ppf_data[1] = &ufunc__nbinom_ppf_ptr[2*1]
-_nbinom_ppf = np.PyUFunc_FromFuncAndData(ufunc__nbinom_ppf_loops, ufunc__nbinom_ppf_data, ufunc__nbinom_ppf_types, 2, 3, 1, 0, "_nbinom_ppf", ufunc__nbinom_ppf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nbinom_sf_loops[2]
-cdef void *ufunc__nbinom_sf_ptr[4]
-cdef void *ufunc__nbinom_sf_data[2]
-cdef char ufunc__nbinom_sf_types[8]
-cdef char *ufunc__nbinom_sf_doc = (
-    "_nbinom_sf(x, r, p)\n"
-    "\n"
-    "Survival function of negative binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "r : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nbinom_sf_loops[0] = loop_f_fff__As_fff_f
-ufunc__nbinom_sf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__nbinom_sf_types[0] = NPY_FLOAT
-ufunc__nbinom_sf_types[1] = NPY_FLOAT
-ufunc__nbinom_sf_types[2] = NPY_FLOAT
-ufunc__nbinom_sf_types[3] = NPY_FLOAT
-ufunc__nbinom_sf_types[4] = NPY_DOUBLE
-ufunc__nbinom_sf_types[5] = NPY_DOUBLE
-ufunc__nbinom_sf_types[6] = NPY_DOUBLE
-ufunc__nbinom_sf_types[7] = NPY_DOUBLE
-ufunc__nbinom_sf_ptr[2*0] = scipy.special._ufuncs_cxx._export_nbinom_sf_float
-ufunc__nbinom_sf_ptr[2*0+1] = ("_nbinom_sf")
-ufunc__nbinom_sf_ptr[2*1] = scipy.special._ufuncs_cxx._export_nbinom_sf_double
-ufunc__nbinom_sf_ptr[2*1+1] = ("_nbinom_sf")
-ufunc__nbinom_sf_data[0] = &ufunc__nbinom_sf_ptr[2*0]
-ufunc__nbinom_sf_data[1] = &ufunc__nbinom_sf_ptr[2*1]
-_nbinom_sf = np.PyUFunc_FromFuncAndData(ufunc__nbinom_sf_loops, ufunc__nbinom_sf_data, ufunc__nbinom_sf_types, 2, 3, 1, 0, "_nbinom_sf", ufunc__nbinom_sf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nbinom_skewness_loops[2]
-cdef void *ufunc__nbinom_skewness_ptr[4]
-cdef void *ufunc__nbinom_skewness_data[2]
-cdef char ufunc__nbinom_skewness_types[6]
-cdef char *ufunc__nbinom_skewness_doc = (
-    "_nbinom_skewness(r, p)\n"
-    "\n"
-    "Skewness of negative binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "r : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nbinom_skewness_loops[0] = loop_f_ff__As_ff_f
-ufunc__nbinom_skewness_loops[1] = loop_d_dd__As_dd_d
-ufunc__nbinom_skewness_types[0] = NPY_FLOAT
-ufunc__nbinom_skewness_types[1] = NPY_FLOAT
-ufunc__nbinom_skewness_types[2] = NPY_FLOAT
-ufunc__nbinom_skewness_types[3] = NPY_DOUBLE
-ufunc__nbinom_skewness_types[4] = NPY_DOUBLE
-ufunc__nbinom_skewness_types[5] = NPY_DOUBLE
-ufunc__nbinom_skewness_ptr[2*0] = scipy.special._ufuncs_cxx._export_nbinom_skewness_float
-ufunc__nbinom_skewness_ptr[2*0+1] = ("_nbinom_skewness")
-ufunc__nbinom_skewness_ptr[2*1] = scipy.special._ufuncs_cxx._export_nbinom_skewness_double
-ufunc__nbinom_skewness_ptr[2*1+1] = ("_nbinom_skewness")
-ufunc__nbinom_skewness_data[0] = &ufunc__nbinom_skewness_ptr[2*0]
-ufunc__nbinom_skewness_data[1] = &ufunc__nbinom_skewness_ptr[2*1]
-_nbinom_skewness = np.PyUFunc_FromFuncAndData(ufunc__nbinom_skewness_loops, ufunc__nbinom_skewness_data, ufunc__nbinom_skewness_types, 2, 2, 1, 0, "_nbinom_skewness", ufunc__nbinom_skewness_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nbinom_variance_loops[2]
-cdef void *ufunc__nbinom_variance_ptr[4]
-cdef void *ufunc__nbinom_variance_data[2]
-cdef char ufunc__nbinom_variance_types[6]
-cdef char *ufunc__nbinom_variance_doc = (
-    "_nbinom_variance(r, p)\n"
-    "\n"
-    "Variance of negative binomial distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "r : array_like\n"
-    "    Positive, integer-valued parameter\n"
-    "p : array_like\n"
-    "    Positive, real-valued parameter\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nbinom_variance_loops[0] = loop_f_ff__As_ff_f
-ufunc__nbinom_variance_loops[1] = loop_d_dd__As_dd_d
-ufunc__nbinom_variance_types[0] = NPY_FLOAT
-ufunc__nbinom_variance_types[1] = NPY_FLOAT
-ufunc__nbinom_variance_types[2] = NPY_FLOAT
-ufunc__nbinom_variance_types[3] = NPY_DOUBLE
-ufunc__nbinom_variance_types[4] = NPY_DOUBLE
-ufunc__nbinom_variance_types[5] = NPY_DOUBLE
-ufunc__nbinom_variance_ptr[2*0] = scipy.special._ufuncs_cxx._export_nbinom_variance_float
-ufunc__nbinom_variance_ptr[2*0+1] = ("_nbinom_variance")
-ufunc__nbinom_variance_ptr[2*1] = scipy.special._ufuncs_cxx._export_nbinom_variance_double
-ufunc__nbinom_variance_ptr[2*1+1] = ("_nbinom_variance")
-ufunc__nbinom_variance_data[0] = &ufunc__nbinom_variance_ptr[2*0]
-ufunc__nbinom_variance_data[1] = &ufunc__nbinom_variance_ptr[2*1]
-_nbinom_variance = np.PyUFunc_FromFuncAndData(ufunc__nbinom_variance_loops, ufunc__nbinom_variance_data, ufunc__nbinom_variance_types, 2, 2, 1, 0, "_nbinom_variance", ufunc__nbinom_variance_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncf_cdf_loops[2]
-cdef void *ufunc__ncf_cdf_ptr[4]
-cdef void *ufunc__ncf_cdf_data[2]
-cdef char ufunc__ncf_cdf_types[10]
-cdef char *ufunc__ncf_cdf_doc = (
-    "_ncf_cdf(x, v1, v2, l)\n"
-    "\n"
-    "Cumulative density function of noncentral F-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "v1, v2, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncf_cdf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__ncf_cdf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__ncf_cdf_types[0] = NPY_FLOAT
-ufunc__ncf_cdf_types[1] = NPY_FLOAT
-ufunc__ncf_cdf_types[2] = NPY_FLOAT
-ufunc__ncf_cdf_types[3] = NPY_FLOAT
-ufunc__ncf_cdf_types[4] = NPY_FLOAT
-ufunc__ncf_cdf_types[5] = NPY_DOUBLE
-ufunc__ncf_cdf_types[6] = NPY_DOUBLE
-ufunc__ncf_cdf_types[7] = NPY_DOUBLE
-ufunc__ncf_cdf_types[8] = NPY_DOUBLE
-ufunc__ncf_cdf_types[9] = NPY_DOUBLE
-ufunc__ncf_cdf_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncf_cdf_float
-ufunc__ncf_cdf_ptr[2*0+1] = ("_ncf_cdf")
-ufunc__ncf_cdf_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncf_cdf_double
-ufunc__ncf_cdf_ptr[2*1+1] = ("_ncf_cdf")
-ufunc__ncf_cdf_data[0] = &ufunc__ncf_cdf_ptr[2*0]
-ufunc__ncf_cdf_data[1] = &ufunc__ncf_cdf_ptr[2*1]
-_ncf_cdf = np.PyUFunc_FromFuncAndData(ufunc__ncf_cdf_loops, ufunc__ncf_cdf_data, ufunc__ncf_cdf_types, 2, 4, 1, 0, "_ncf_cdf", ufunc__ncf_cdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncf_isf_loops[2]
-cdef void *ufunc__ncf_isf_ptr[4]
-cdef void *ufunc__ncf_isf_data[2]
-cdef char ufunc__ncf_isf_types[10]
-cdef char *ufunc__ncf_isf_doc = (
-    "_ncf_isf(x, v1, v2, l)\n"
-    "\n"
-    "Inverse surivial function of noncentral F-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "v1, v2, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncf_isf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__ncf_isf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__ncf_isf_types[0] = NPY_FLOAT
-ufunc__ncf_isf_types[1] = NPY_FLOAT
-ufunc__ncf_isf_types[2] = NPY_FLOAT
-ufunc__ncf_isf_types[3] = NPY_FLOAT
-ufunc__ncf_isf_types[4] = NPY_FLOAT
-ufunc__ncf_isf_types[5] = NPY_DOUBLE
-ufunc__ncf_isf_types[6] = NPY_DOUBLE
-ufunc__ncf_isf_types[7] = NPY_DOUBLE
-ufunc__ncf_isf_types[8] = NPY_DOUBLE
-ufunc__ncf_isf_types[9] = NPY_DOUBLE
-ufunc__ncf_isf_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncf_isf_float
-ufunc__ncf_isf_ptr[2*0+1] = ("_ncf_isf")
-ufunc__ncf_isf_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncf_isf_double
-ufunc__ncf_isf_ptr[2*1+1] = ("_ncf_isf")
-ufunc__ncf_isf_data[0] = &ufunc__ncf_isf_ptr[2*0]
-ufunc__ncf_isf_data[1] = &ufunc__ncf_isf_ptr[2*1]
-_ncf_isf = np.PyUFunc_FromFuncAndData(ufunc__ncf_isf_loops, ufunc__ncf_isf_data, ufunc__ncf_isf_types, 2, 4, 1, 0, "_ncf_isf", ufunc__ncf_isf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncf_kurtosis_excess_loops[2]
-cdef void *ufunc__ncf_kurtosis_excess_ptr[4]
-cdef void *ufunc__ncf_kurtosis_excess_data[2]
-cdef char ufunc__ncf_kurtosis_excess_types[8]
-cdef char *ufunc__ncf_kurtosis_excess_doc = (
-    "_ncf_kurtosis_excess(v1, v2, l)\n"
-    "\n"
-    "Kurtosis excess of noncentral F-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v1, v2, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncf_kurtosis_excess_loops[0] = loop_f_fff__As_fff_f
-ufunc__ncf_kurtosis_excess_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__ncf_kurtosis_excess_types[0] = NPY_FLOAT
-ufunc__ncf_kurtosis_excess_types[1] = NPY_FLOAT
-ufunc__ncf_kurtosis_excess_types[2] = NPY_FLOAT
-ufunc__ncf_kurtosis_excess_types[3] = NPY_FLOAT
-ufunc__ncf_kurtosis_excess_types[4] = NPY_DOUBLE
-ufunc__ncf_kurtosis_excess_types[5] = NPY_DOUBLE
-ufunc__ncf_kurtosis_excess_types[6] = NPY_DOUBLE
-ufunc__ncf_kurtosis_excess_types[7] = NPY_DOUBLE
-ufunc__ncf_kurtosis_excess_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncf_kurtosis_excess_float
-ufunc__ncf_kurtosis_excess_ptr[2*0+1] = ("_ncf_kurtosis_excess")
-ufunc__ncf_kurtosis_excess_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncf_kurtosis_excess_double
-ufunc__ncf_kurtosis_excess_ptr[2*1+1] = ("_ncf_kurtosis_excess")
-ufunc__ncf_kurtosis_excess_data[0] = &ufunc__ncf_kurtosis_excess_ptr[2*0]
-ufunc__ncf_kurtosis_excess_data[1] = &ufunc__ncf_kurtosis_excess_ptr[2*1]
-_ncf_kurtosis_excess = np.PyUFunc_FromFuncAndData(ufunc__ncf_kurtosis_excess_loops, ufunc__ncf_kurtosis_excess_data, ufunc__ncf_kurtosis_excess_types, 2, 3, 1, 0, "_ncf_kurtosis_excess", ufunc__ncf_kurtosis_excess_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncf_mean_loops[2]
-cdef void *ufunc__ncf_mean_ptr[4]
-cdef void *ufunc__ncf_mean_data[2]
-cdef char ufunc__ncf_mean_types[8]
-cdef char *ufunc__ncf_mean_doc = (
-    "_ncf_mean(v1, v2, l)\n"
-    "\n"
-    "Mean of noncentral F-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v1, v2, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncf_mean_loops[0] = loop_f_fff__As_fff_f
-ufunc__ncf_mean_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__ncf_mean_types[0] = NPY_FLOAT
-ufunc__ncf_mean_types[1] = NPY_FLOAT
-ufunc__ncf_mean_types[2] = NPY_FLOAT
-ufunc__ncf_mean_types[3] = NPY_FLOAT
-ufunc__ncf_mean_types[4] = NPY_DOUBLE
-ufunc__ncf_mean_types[5] = NPY_DOUBLE
-ufunc__ncf_mean_types[6] = NPY_DOUBLE
-ufunc__ncf_mean_types[7] = NPY_DOUBLE
-ufunc__ncf_mean_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncf_mean_float
-ufunc__ncf_mean_ptr[2*0+1] = ("_ncf_mean")
-ufunc__ncf_mean_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncf_mean_double
-ufunc__ncf_mean_ptr[2*1+1] = ("_ncf_mean")
-ufunc__ncf_mean_data[0] = &ufunc__ncf_mean_ptr[2*0]
-ufunc__ncf_mean_data[1] = &ufunc__ncf_mean_ptr[2*1]
-_ncf_mean = np.PyUFunc_FromFuncAndData(ufunc__ncf_mean_loops, ufunc__ncf_mean_data, ufunc__ncf_mean_types, 2, 3, 1, 0, "_ncf_mean", ufunc__ncf_mean_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncf_pdf_loops[2]
-cdef void *ufunc__ncf_pdf_ptr[4]
-cdef void *ufunc__ncf_pdf_data[2]
-cdef char ufunc__ncf_pdf_types[10]
-cdef char *ufunc__ncf_pdf_doc = (
-    "_ncf_pdf(x, v1, v2, l)\n"
-    "\n"
-    "Probability density function of noncentral F-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "v1, v2, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncf_pdf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__ncf_pdf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__ncf_pdf_types[0] = NPY_FLOAT
-ufunc__ncf_pdf_types[1] = NPY_FLOAT
-ufunc__ncf_pdf_types[2] = NPY_FLOAT
-ufunc__ncf_pdf_types[3] = NPY_FLOAT
-ufunc__ncf_pdf_types[4] = NPY_FLOAT
-ufunc__ncf_pdf_types[5] = NPY_DOUBLE
-ufunc__ncf_pdf_types[6] = NPY_DOUBLE
-ufunc__ncf_pdf_types[7] = NPY_DOUBLE
-ufunc__ncf_pdf_types[8] = NPY_DOUBLE
-ufunc__ncf_pdf_types[9] = NPY_DOUBLE
-ufunc__ncf_pdf_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncf_pdf_float
-ufunc__ncf_pdf_ptr[2*0+1] = ("_ncf_pdf")
-ufunc__ncf_pdf_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncf_pdf_double
-ufunc__ncf_pdf_ptr[2*1+1] = ("_ncf_pdf")
-ufunc__ncf_pdf_data[0] = &ufunc__ncf_pdf_ptr[2*0]
-ufunc__ncf_pdf_data[1] = &ufunc__ncf_pdf_ptr[2*1]
-_ncf_pdf = np.PyUFunc_FromFuncAndData(ufunc__ncf_pdf_loops, ufunc__ncf_pdf_data, ufunc__ncf_pdf_types, 2, 4, 1, 0, "_ncf_pdf", ufunc__ncf_pdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncf_ppf_loops[2]
-cdef void *ufunc__ncf_ppf_ptr[4]
-cdef void *ufunc__ncf_ppf_data[2]
-cdef char ufunc__ncf_ppf_types[10]
-cdef char *ufunc__ncf_ppf_doc = (
-    "_ncf_ppf(x, v1, v2, l)\n"
-    "\n"
-    "Percent point function of noncentral F-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "v1, v2, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncf_ppf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__ncf_ppf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__ncf_ppf_types[0] = NPY_FLOAT
-ufunc__ncf_ppf_types[1] = NPY_FLOAT
-ufunc__ncf_ppf_types[2] = NPY_FLOAT
-ufunc__ncf_ppf_types[3] = NPY_FLOAT
-ufunc__ncf_ppf_types[4] = NPY_FLOAT
-ufunc__ncf_ppf_types[5] = NPY_DOUBLE
-ufunc__ncf_ppf_types[6] = NPY_DOUBLE
-ufunc__ncf_ppf_types[7] = NPY_DOUBLE
-ufunc__ncf_ppf_types[8] = NPY_DOUBLE
-ufunc__ncf_ppf_types[9] = NPY_DOUBLE
-ufunc__ncf_ppf_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncf_ppf_float
-ufunc__ncf_ppf_ptr[2*0+1] = ("_ncf_ppf")
-ufunc__ncf_ppf_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncf_ppf_double
-ufunc__ncf_ppf_ptr[2*1+1] = ("_ncf_ppf")
-ufunc__ncf_ppf_data[0] = &ufunc__ncf_ppf_ptr[2*0]
-ufunc__ncf_ppf_data[1] = &ufunc__ncf_ppf_ptr[2*1]
-_ncf_ppf = np.PyUFunc_FromFuncAndData(ufunc__ncf_ppf_loops, ufunc__ncf_ppf_data, ufunc__ncf_ppf_types, 2, 4, 1, 0, "_ncf_ppf", ufunc__ncf_ppf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncf_sf_loops[2]
-cdef void *ufunc__ncf_sf_ptr[4]
-cdef void *ufunc__ncf_sf_data[2]
-cdef char ufunc__ncf_sf_types[10]
-cdef char *ufunc__ncf_sf_doc = (
-    "_ncf_sf(x, v1, v2, l)\n"
-    "\n"
-    "Survival function of noncentral F-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "v1, v2, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncf_sf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__ncf_sf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__ncf_sf_types[0] = NPY_FLOAT
-ufunc__ncf_sf_types[1] = NPY_FLOAT
-ufunc__ncf_sf_types[2] = NPY_FLOAT
-ufunc__ncf_sf_types[3] = NPY_FLOAT
-ufunc__ncf_sf_types[4] = NPY_FLOAT
-ufunc__ncf_sf_types[5] = NPY_DOUBLE
-ufunc__ncf_sf_types[6] = NPY_DOUBLE
-ufunc__ncf_sf_types[7] = NPY_DOUBLE
-ufunc__ncf_sf_types[8] = NPY_DOUBLE
-ufunc__ncf_sf_types[9] = NPY_DOUBLE
-ufunc__ncf_sf_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncf_sf_float
-ufunc__ncf_sf_ptr[2*0+1] = ("_ncf_sf")
-ufunc__ncf_sf_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncf_sf_double
-ufunc__ncf_sf_ptr[2*1+1] = ("_ncf_sf")
-ufunc__ncf_sf_data[0] = &ufunc__ncf_sf_ptr[2*0]
-ufunc__ncf_sf_data[1] = &ufunc__ncf_sf_ptr[2*1]
-_ncf_sf = np.PyUFunc_FromFuncAndData(ufunc__ncf_sf_loops, ufunc__ncf_sf_data, ufunc__ncf_sf_types, 2, 4, 1, 0, "_ncf_sf", ufunc__ncf_sf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncf_skewness_loops[2]
-cdef void *ufunc__ncf_skewness_ptr[4]
-cdef void *ufunc__ncf_skewness_data[2]
-cdef char ufunc__ncf_skewness_types[8]
-cdef char *ufunc__ncf_skewness_doc = (
-    "_ncf_skewness(v1, v2, l)\n"
-    "\n"
-    "Skewness of noncentral F-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v1, v2, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncf_skewness_loops[0] = loop_f_fff__As_fff_f
-ufunc__ncf_skewness_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__ncf_skewness_types[0] = NPY_FLOAT
-ufunc__ncf_skewness_types[1] = NPY_FLOAT
-ufunc__ncf_skewness_types[2] = NPY_FLOAT
-ufunc__ncf_skewness_types[3] = NPY_FLOAT
-ufunc__ncf_skewness_types[4] = NPY_DOUBLE
-ufunc__ncf_skewness_types[5] = NPY_DOUBLE
-ufunc__ncf_skewness_types[6] = NPY_DOUBLE
-ufunc__ncf_skewness_types[7] = NPY_DOUBLE
-ufunc__ncf_skewness_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncf_skewness_float
-ufunc__ncf_skewness_ptr[2*0+1] = ("_ncf_skewness")
-ufunc__ncf_skewness_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncf_skewness_double
-ufunc__ncf_skewness_ptr[2*1+1] = ("_ncf_skewness")
-ufunc__ncf_skewness_data[0] = &ufunc__ncf_skewness_ptr[2*0]
-ufunc__ncf_skewness_data[1] = &ufunc__ncf_skewness_ptr[2*1]
-_ncf_skewness = np.PyUFunc_FromFuncAndData(ufunc__ncf_skewness_loops, ufunc__ncf_skewness_data, ufunc__ncf_skewness_types, 2, 3, 1, 0, "_ncf_skewness", ufunc__ncf_skewness_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncf_variance_loops[2]
-cdef void *ufunc__ncf_variance_ptr[4]
-cdef void *ufunc__ncf_variance_data[2]
-cdef char ufunc__ncf_variance_types[8]
-cdef char *ufunc__ncf_variance_doc = (
-    "_ncf_variance(v1, v2, l)\n"
-    "\n"
-    "Variance of noncentral F-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v1, v2, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncf_variance_loops[0] = loop_f_fff__As_fff_f
-ufunc__ncf_variance_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__ncf_variance_types[0] = NPY_FLOAT
-ufunc__ncf_variance_types[1] = NPY_FLOAT
-ufunc__ncf_variance_types[2] = NPY_FLOAT
-ufunc__ncf_variance_types[3] = NPY_FLOAT
-ufunc__ncf_variance_types[4] = NPY_DOUBLE
-ufunc__ncf_variance_types[5] = NPY_DOUBLE
-ufunc__ncf_variance_types[6] = NPY_DOUBLE
-ufunc__ncf_variance_types[7] = NPY_DOUBLE
-ufunc__ncf_variance_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncf_variance_float
-ufunc__ncf_variance_ptr[2*0+1] = ("_ncf_variance")
-ufunc__ncf_variance_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncf_variance_double
-ufunc__ncf_variance_ptr[2*1+1] = ("_ncf_variance")
-ufunc__ncf_variance_data[0] = &ufunc__ncf_variance_ptr[2*0]
-ufunc__ncf_variance_data[1] = &ufunc__ncf_variance_ptr[2*1]
-_ncf_variance = np.PyUFunc_FromFuncAndData(ufunc__ncf_variance_loops, ufunc__ncf_variance_data, ufunc__ncf_variance_types, 2, 3, 1, 0, "_ncf_variance", ufunc__ncf_variance_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nct_cdf_loops[2]
-cdef void *ufunc__nct_cdf_ptr[4]
-cdef void *ufunc__nct_cdf_data[2]
-cdef char ufunc__nct_cdf_types[8]
-cdef char *ufunc__nct_cdf_doc = (
-    "_nct_cdf(x, v, l)\n"
-    "\n"
-    "Cumulative density function of noncentral t-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "v : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nct_cdf_loops[0] = loop_f_fff__As_fff_f
-ufunc__nct_cdf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__nct_cdf_types[0] = NPY_FLOAT
-ufunc__nct_cdf_types[1] = NPY_FLOAT
-ufunc__nct_cdf_types[2] = NPY_FLOAT
-ufunc__nct_cdf_types[3] = NPY_FLOAT
-ufunc__nct_cdf_types[4] = NPY_DOUBLE
-ufunc__nct_cdf_types[5] = NPY_DOUBLE
-ufunc__nct_cdf_types[6] = NPY_DOUBLE
-ufunc__nct_cdf_types[7] = NPY_DOUBLE
-ufunc__nct_cdf_ptr[2*0] = scipy.special._ufuncs_cxx._export_nct_cdf_float
-ufunc__nct_cdf_ptr[2*0+1] = ("_nct_cdf")
-ufunc__nct_cdf_ptr[2*1] = scipy.special._ufuncs_cxx._export_nct_cdf_double
-ufunc__nct_cdf_ptr[2*1+1] = ("_nct_cdf")
-ufunc__nct_cdf_data[0] = &ufunc__nct_cdf_ptr[2*0]
-ufunc__nct_cdf_data[1] = &ufunc__nct_cdf_ptr[2*1]
-_nct_cdf = np.PyUFunc_FromFuncAndData(ufunc__nct_cdf_loops, ufunc__nct_cdf_data, ufunc__nct_cdf_types, 2, 3, 1, 0, "_nct_cdf", ufunc__nct_cdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nct_isf_loops[2]
-cdef void *ufunc__nct_isf_ptr[4]
-cdef void *ufunc__nct_isf_data[2]
-cdef char ufunc__nct_isf_types[8]
-cdef char *ufunc__nct_isf_doc = (
-    "_nct_isf(x, v, l)\n"
-    "\n"
-    "Inverse surivial function of noncentral t-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "v : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nct_isf_loops[0] = loop_f_fff__As_fff_f
-ufunc__nct_isf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__nct_isf_types[0] = NPY_FLOAT
-ufunc__nct_isf_types[1] = NPY_FLOAT
-ufunc__nct_isf_types[2] = NPY_FLOAT
-ufunc__nct_isf_types[3] = NPY_FLOAT
-ufunc__nct_isf_types[4] = NPY_DOUBLE
-ufunc__nct_isf_types[5] = NPY_DOUBLE
-ufunc__nct_isf_types[6] = NPY_DOUBLE
-ufunc__nct_isf_types[7] = NPY_DOUBLE
-ufunc__nct_isf_ptr[2*0] = scipy.special._ufuncs_cxx._export_nct_isf_float
-ufunc__nct_isf_ptr[2*0+1] = ("_nct_isf")
-ufunc__nct_isf_ptr[2*1] = scipy.special._ufuncs_cxx._export_nct_isf_double
-ufunc__nct_isf_ptr[2*1+1] = ("_nct_isf")
-ufunc__nct_isf_data[0] = &ufunc__nct_isf_ptr[2*0]
-ufunc__nct_isf_data[1] = &ufunc__nct_isf_ptr[2*1]
-_nct_isf = np.PyUFunc_FromFuncAndData(ufunc__nct_isf_loops, ufunc__nct_isf_data, ufunc__nct_isf_types, 2, 3, 1, 0, "_nct_isf", ufunc__nct_isf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nct_kurtosis_excess_loops[2]
-cdef void *ufunc__nct_kurtosis_excess_ptr[4]
-cdef void *ufunc__nct_kurtosis_excess_data[2]
-cdef char ufunc__nct_kurtosis_excess_types[6]
-cdef char *ufunc__nct_kurtosis_excess_doc = (
-    "_nct_kurtosis_excess(v, l)\n"
-    "\n"
-    "Kurtosis excess of noncentral t-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nct_kurtosis_excess_loops[0] = loop_f_ff__As_ff_f
-ufunc__nct_kurtosis_excess_loops[1] = loop_d_dd__As_dd_d
-ufunc__nct_kurtosis_excess_types[0] = NPY_FLOAT
-ufunc__nct_kurtosis_excess_types[1] = NPY_FLOAT
-ufunc__nct_kurtosis_excess_types[2] = NPY_FLOAT
-ufunc__nct_kurtosis_excess_types[3] = NPY_DOUBLE
-ufunc__nct_kurtosis_excess_types[4] = NPY_DOUBLE
-ufunc__nct_kurtosis_excess_types[5] = NPY_DOUBLE
-ufunc__nct_kurtosis_excess_ptr[2*0] = scipy.special._ufuncs_cxx._export_nct_kurtosis_excess_float
-ufunc__nct_kurtosis_excess_ptr[2*0+1] = ("_nct_kurtosis_excess")
-ufunc__nct_kurtosis_excess_ptr[2*1] = scipy.special._ufuncs_cxx._export_nct_kurtosis_excess_double
-ufunc__nct_kurtosis_excess_ptr[2*1+1] = ("_nct_kurtosis_excess")
-ufunc__nct_kurtosis_excess_data[0] = &ufunc__nct_kurtosis_excess_ptr[2*0]
-ufunc__nct_kurtosis_excess_data[1] = &ufunc__nct_kurtosis_excess_ptr[2*1]
-_nct_kurtosis_excess = np.PyUFunc_FromFuncAndData(ufunc__nct_kurtosis_excess_loops, ufunc__nct_kurtosis_excess_data, ufunc__nct_kurtosis_excess_types, 2, 2, 1, 0, "_nct_kurtosis_excess", ufunc__nct_kurtosis_excess_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nct_mean_loops[2]
-cdef void *ufunc__nct_mean_ptr[4]
-cdef void *ufunc__nct_mean_data[2]
-cdef char ufunc__nct_mean_types[6]
-cdef char *ufunc__nct_mean_doc = (
-    "_nct_mean(v, l)\n"
-    "\n"
-    "Mean of noncentral t-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nct_mean_loops[0] = loop_f_ff__As_ff_f
-ufunc__nct_mean_loops[1] = loop_d_dd__As_dd_d
-ufunc__nct_mean_types[0] = NPY_FLOAT
-ufunc__nct_mean_types[1] = NPY_FLOAT
-ufunc__nct_mean_types[2] = NPY_FLOAT
-ufunc__nct_mean_types[3] = NPY_DOUBLE
-ufunc__nct_mean_types[4] = NPY_DOUBLE
-ufunc__nct_mean_types[5] = NPY_DOUBLE
-ufunc__nct_mean_ptr[2*0] = scipy.special._ufuncs_cxx._export_nct_mean_float
-ufunc__nct_mean_ptr[2*0+1] = ("_nct_mean")
-ufunc__nct_mean_ptr[2*1] = scipy.special._ufuncs_cxx._export_nct_mean_double
-ufunc__nct_mean_ptr[2*1+1] = ("_nct_mean")
-ufunc__nct_mean_data[0] = &ufunc__nct_mean_ptr[2*0]
-ufunc__nct_mean_data[1] = &ufunc__nct_mean_ptr[2*1]
-_nct_mean = np.PyUFunc_FromFuncAndData(ufunc__nct_mean_loops, ufunc__nct_mean_data, ufunc__nct_mean_types, 2, 2, 1, 0, "_nct_mean", ufunc__nct_mean_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nct_ppf_loops[2]
-cdef void *ufunc__nct_ppf_ptr[4]
-cdef void *ufunc__nct_ppf_data[2]
-cdef char ufunc__nct_ppf_types[8]
-cdef char *ufunc__nct_ppf_doc = (
-    "_nct_ppf(x, v, l)\n"
-    "\n"
-    "Percent point function of noncentral t-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "v : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nct_ppf_loops[0] = loop_f_fff__As_fff_f
-ufunc__nct_ppf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__nct_ppf_types[0] = NPY_FLOAT
-ufunc__nct_ppf_types[1] = NPY_FLOAT
-ufunc__nct_ppf_types[2] = NPY_FLOAT
-ufunc__nct_ppf_types[3] = NPY_FLOAT
-ufunc__nct_ppf_types[4] = NPY_DOUBLE
-ufunc__nct_ppf_types[5] = NPY_DOUBLE
-ufunc__nct_ppf_types[6] = NPY_DOUBLE
-ufunc__nct_ppf_types[7] = NPY_DOUBLE
-ufunc__nct_ppf_ptr[2*0] = scipy.special._ufuncs_cxx._export_nct_ppf_float
-ufunc__nct_ppf_ptr[2*0+1] = ("_nct_ppf")
-ufunc__nct_ppf_ptr[2*1] = scipy.special._ufuncs_cxx._export_nct_ppf_double
-ufunc__nct_ppf_ptr[2*1+1] = ("_nct_ppf")
-ufunc__nct_ppf_data[0] = &ufunc__nct_ppf_ptr[2*0]
-ufunc__nct_ppf_data[1] = &ufunc__nct_ppf_ptr[2*1]
-_nct_ppf = np.PyUFunc_FromFuncAndData(ufunc__nct_ppf_loops, ufunc__nct_ppf_data, ufunc__nct_ppf_types, 2, 3, 1, 0, "_nct_ppf", ufunc__nct_ppf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nct_sf_loops[2]
-cdef void *ufunc__nct_sf_ptr[4]
-cdef void *ufunc__nct_sf_data[2]
-cdef char ufunc__nct_sf_types[8]
-cdef char *ufunc__nct_sf_doc = (
-    "_nct_sf(x, v, l)\n"
-    "\n"
-    "Survival function of noncentral t-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "v : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nct_sf_loops[0] = loop_f_fff__As_fff_f
-ufunc__nct_sf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__nct_sf_types[0] = NPY_FLOAT
-ufunc__nct_sf_types[1] = NPY_FLOAT
-ufunc__nct_sf_types[2] = NPY_FLOAT
-ufunc__nct_sf_types[3] = NPY_FLOAT
-ufunc__nct_sf_types[4] = NPY_DOUBLE
-ufunc__nct_sf_types[5] = NPY_DOUBLE
-ufunc__nct_sf_types[6] = NPY_DOUBLE
-ufunc__nct_sf_types[7] = NPY_DOUBLE
-ufunc__nct_sf_ptr[2*0] = scipy.special._ufuncs_cxx._export_nct_sf_float
-ufunc__nct_sf_ptr[2*0+1] = ("_nct_sf")
-ufunc__nct_sf_ptr[2*1] = scipy.special._ufuncs_cxx._export_nct_sf_double
-ufunc__nct_sf_ptr[2*1+1] = ("_nct_sf")
-ufunc__nct_sf_data[0] = &ufunc__nct_sf_ptr[2*0]
-ufunc__nct_sf_data[1] = &ufunc__nct_sf_ptr[2*1]
-_nct_sf = np.PyUFunc_FromFuncAndData(ufunc__nct_sf_loops, ufunc__nct_sf_data, ufunc__nct_sf_types, 2, 3, 1, 0, "_nct_sf", ufunc__nct_sf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nct_skewness_loops[2]
-cdef void *ufunc__nct_skewness_ptr[4]
-cdef void *ufunc__nct_skewness_data[2]
-cdef char ufunc__nct_skewness_types[6]
-cdef char *ufunc__nct_skewness_doc = (
-    "_nct_skewness(v, l)\n"
-    "\n"
-    "Skewness of noncentral t-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nct_skewness_loops[0] = loop_f_ff__As_ff_f
-ufunc__nct_skewness_loops[1] = loop_d_dd__As_dd_d
-ufunc__nct_skewness_types[0] = NPY_FLOAT
-ufunc__nct_skewness_types[1] = NPY_FLOAT
-ufunc__nct_skewness_types[2] = NPY_FLOAT
-ufunc__nct_skewness_types[3] = NPY_DOUBLE
-ufunc__nct_skewness_types[4] = NPY_DOUBLE
-ufunc__nct_skewness_types[5] = NPY_DOUBLE
-ufunc__nct_skewness_ptr[2*0] = scipy.special._ufuncs_cxx._export_nct_skewness_float
-ufunc__nct_skewness_ptr[2*0+1] = ("_nct_skewness")
-ufunc__nct_skewness_ptr[2*1] = scipy.special._ufuncs_cxx._export_nct_skewness_double
-ufunc__nct_skewness_ptr[2*1+1] = ("_nct_skewness")
-ufunc__nct_skewness_data[0] = &ufunc__nct_skewness_ptr[2*0]
-ufunc__nct_skewness_data[1] = &ufunc__nct_skewness_ptr[2*1]
-_nct_skewness = np.PyUFunc_FromFuncAndData(ufunc__nct_skewness_loops, ufunc__nct_skewness_data, ufunc__nct_skewness_types, 2, 2, 1, 0, "_nct_skewness", ufunc__nct_skewness_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__nct_variance_loops[2]
-cdef void *ufunc__nct_variance_ptr[4]
-cdef void *ufunc__nct_variance_data[2]
-cdef char ufunc__nct_variance_types[6]
-cdef char *ufunc__nct_variance_doc = (
-    "_nct_variance(v, l)\n"
-    "\n"
-    "Variance of noncentral t-distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__nct_variance_loops[0] = loop_f_ff__As_ff_f
-ufunc__nct_variance_loops[1] = loop_d_dd__As_dd_d
-ufunc__nct_variance_types[0] = NPY_FLOAT
-ufunc__nct_variance_types[1] = NPY_FLOAT
-ufunc__nct_variance_types[2] = NPY_FLOAT
-ufunc__nct_variance_types[3] = NPY_DOUBLE
-ufunc__nct_variance_types[4] = NPY_DOUBLE
-ufunc__nct_variance_types[5] = NPY_DOUBLE
-ufunc__nct_variance_ptr[2*0] = scipy.special._ufuncs_cxx._export_nct_variance_float
-ufunc__nct_variance_ptr[2*0+1] = ("_nct_variance")
-ufunc__nct_variance_ptr[2*1] = scipy.special._ufuncs_cxx._export_nct_variance_double
-ufunc__nct_variance_ptr[2*1+1] = ("_nct_variance")
-ufunc__nct_variance_data[0] = &ufunc__nct_variance_ptr[2*0]
-ufunc__nct_variance_data[1] = &ufunc__nct_variance_ptr[2*1]
-_nct_variance = np.PyUFunc_FromFuncAndData(ufunc__nct_variance_loops, ufunc__nct_variance_data, ufunc__nct_variance_types, 2, 2, 1, 0, "_nct_variance", ufunc__nct_variance_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncx2_cdf_loops[2]
-cdef void *ufunc__ncx2_cdf_ptr[4]
-cdef void *ufunc__ncx2_cdf_data[2]
-cdef char ufunc__ncx2_cdf_types[8]
-cdef char *ufunc__ncx2_cdf_doc = (
-    "_ncx2_cdf(x, k, l)\n"
-    "\n"
-    "Cumulative density function of Non-central chi-squared distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "k, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncx2_cdf_loops[0] = loop_f_fff__As_fff_f
-ufunc__ncx2_cdf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__ncx2_cdf_types[0] = NPY_FLOAT
-ufunc__ncx2_cdf_types[1] = NPY_FLOAT
-ufunc__ncx2_cdf_types[2] = NPY_FLOAT
-ufunc__ncx2_cdf_types[3] = NPY_FLOAT
-ufunc__ncx2_cdf_types[4] = NPY_DOUBLE
-ufunc__ncx2_cdf_types[5] = NPY_DOUBLE
-ufunc__ncx2_cdf_types[6] = NPY_DOUBLE
-ufunc__ncx2_cdf_types[7] = NPY_DOUBLE
-ufunc__ncx2_cdf_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncx2_cdf_float
-ufunc__ncx2_cdf_ptr[2*0+1] = ("_ncx2_cdf")
-ufunc__ncx2_cdf_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncx2_cdf_double
-ufunc__ncx2_cdf_ptr[2*1+1] = ("_ncx2_cdf")
-ufunc__ncx2_cdf_data[0] = &ufunc__ncx2_cdf_ptr[2*0]
-ufunc__ncx2_cdf_data[1] = &ufunc__ncx2_cdf_ptr[2*1]
-_ncx2_cdf = np.PyUFunc_FromFuncAndData(ufunc__ncx2_cdf_loops, ufunc__ncx2_cdf_data, ufunc__ncx2_cdf_types, 2, 3, 1, 0, "_ncx2_cdf", ufunc__ncx2_cdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncx2_isf_loops[2]
-cdef void *ufunc__ncx2_isf_ptr[4]
-cdef void *ufunc__ncx2_isf_data[2]
-cdef char ufunc__ncx2_isf_types[8]
-cdef char *ufunc__ncx2_isf_doc = (
-    "_ncx2_isf(x, k, l)\n"
-    "\n"
-    "Inverse survival function of Non-central chi-squared distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "k, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncx2_isf_loops[0] = loop_f_fff__As_fff_f
-ufunc__ncx2_isf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__ncx2_isf_types[0] = NPY_FLOAT
-ufunc__ncx2_isf_types[1] = NPY_FLOAT
-ufunc__ncx2_isf_types[2] = NPY_FLOAT
-ufunc__ncx2_isf_types[3] = NPY_FLOAT
-ufunc__ncx2_isf_types[4] = NPY_DOUBLE
-ufunc__ncx2_isf_types[5] = NPY_DOUBLE
-ufunc__ncx2_isf_types[6] = NPY_DOUBLE
-ufunc__ncx2_isf_types[7] = NPY_DOUBLE
-ufunc__ncx2_isf_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncx2_isf_float
-ufunc__ncx2_isf_ptr[2*0+1] = ("_ncx2_isf")
-ufunc__ncx2_isf_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncx2_isf_double
-ufunc__ncx2_isf_ptr[2*1+1] = ("_ncx2_isf")
-ufunc__ncx2_isf_data[0] = &ufunc__ncx2_isf_ptr[2*0]
-ufunc__ncx2_isf_data[1] = &ufunc__ncx2_isf_ptr[2*1]
-_ncx2_isf = np.PyUFunc_FromFuncAndData(ufunc__ncx2_isf_loops, ufunc__ncx2_isf_data, ufunc__ncx2_isf_types, 2, 3, 1, 0, "_ncx2_isf", ufunc__ncx2_isf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncx2_pdf_loops[2]
-cdef void *ufunc__ncx2_pdf_ptr[4]
-cdef void *ufunc__ncx2_pdf_data[2]
-cdef char ufunc__ncx2_pdf_types[8]
-cdef char *ufunc__ncx2_pdf_doc = (
-    "_ncx2_pdf(x, k, l)\n"
-    "\n"
-    "Probability density function of Non-central chi-squared distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "k, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncx2_pdf_loops[0] = loop_f_fff__As_fff_f
-ufunc__ncx2_pdf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__ncx2_pdf_types[0] = NPY_FLOAT
-ufunc__ncx2_pdf_types[1] = NPY_FLOAT
-ufunc__ncx2_pdf_types[2] = NPY_FLOAT
-ufunc__ncx2_pdf_types[3] = NPY_FLOAT
-ufunc__ncx2_pdf_types[4] = NPY_DOUBLE
-ufunc__ncx2_pdf_types[5] = NPY_DOUBLE
-ufunc__ncx2_pdf_types[6] = NPY_DOUBLE
-ufunc__ncx2_pdf_types[7] = NPY_DOUBLE
-ufunc__ncx2_pdf_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncx2_pdf_float
-ufunc__ncx2_pdf_ptr[2*0+1] = ("_ncx2_pdf")
-ufunc__ncx2_pdf_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncx2_pdf_double
-ufunc__ncx2_pdf_ptr[2*1+1] = ("_ncx2_pdf")
-ufunc__ncx2_pdf_data[0] = &ufunc__ncx2_pdf_ptr[2*0]
-ufunc__ncx2_pdf_data[1] = &ufunc__ncx2_pdf_ptr[2*1]
-_ncx2_pdf = np.PyUFunc_FromFuncAndData(ufunc__ncx2_pdf_loops, ufunc__ncx2_pdf_data, ufunc__ncx2_pdf_types, 2, 3, 1, 0, "_ncx2_pdf", ufunc__ncx2_pdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncx2_ppf_loops[2]
-cdef void *ufunc__ncx2_ppf_ptr[4]
-cdef void *ufunc__ncx2_ppf_data[2]
-cdef char ufunc__ncx2_ppf_types[8]
-cdef char *ufunc__ncx2_ppf_doc = (
-    "_ncx2_ppf(x, k, l)\n"
-    "\n"
-    "Percent point function of Non-central chi-squared distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "k, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncx2_ppf_loops[0] = loop_f_fff__As_fff_f
-ufunc__ncx2_ppf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__ncx2_ppf_types[0] = NPY_FLOAT
-ufunc__ncx2_ppf_types[1] = NPY_FLOAT
-ufunc__ncx2_ppf_types[2] = NPY_FLOAT
-ufunc__ncx2_ppf_types[3] = NPY_FLOAT
-ufunc__ncx2_ppf_types[4] = NPY_DOUBLE
-ufunc__ncx2_ppf_types[5] = NPY_DOUBLE
-ufunc__ncx2_ppf_types[6] = NPY_DOUBLE
-ufunc__ncx2_ppf_types[7] = NPY_DOUBLE
-ufunc__ncx2_ppf_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncx2_ppf_float
-ufunc__ncx2_ppf_ptr[2*0+1] = ("_ncx2_ppf")
-ufunc__ncx2_ppf_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncx2_ppf_double
-ufunc__ncx2_ppf_ptr[2*1+1] = ("_ncx2_ppf")
-ufunc__ncx2_ppf_data[0] = &ufunc__ncx2_ppf_ptr[2*0]
-ufunc__ncx2_ppf_data[1] = &ufunc__ncx2_ppf_ptr[2*1]
-_ncx2_ppf = np.PyUFunc_FromFuncAndData(ufunc__ncx2_ppf_loops, ufunc__ncx2_ppf_data, ufunc__ncx2_ppf_types, 2, 3, 1, 0, "_ncx2_ppf", ufunc__ncx2_ppf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__ncx2_sf_loops[2]
-cdef void *ufunc__ncx2_sf_ptr[4]
-cdef void *ufunc__ncx2_sf_data[2]
-cdef char ufunc__ncx2_sf_types[8]
-cdef char *ufunc__ncx2_sf_doc = (
-    "_ncx2_sf(x, k, l)\n"
-    "\n"
-    "Survival function of Non-central chi-squared distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Positive real-valued\n"
-    "k, l : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__ncx2_sf_loops[0] = loop_f_fff__As_fff_f
-ufunc__ncx2_sf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc__ncx2_sf_types[0] = NPY_FLOAT
-ufunc__ncx2_sf_types[1] = NPY_FLOAT
-ufunc__ncx2_sf_types[2] = NPY_FLOAT
-ufunc__ncx2_sf_types[3] = NPY_FLOAT
-ufunc__ncx2_sf_types[4] = NPY_DOUBLE
-ufunc__ncx2_sf_types[5] = NPY_DOUBLE
-ufunc__ncx2_sf_types[6] = NPY_DOUBLE
-ufunc__ncx2_sf_types[7] = NPY_DOUBLE
-ufunc__ncx2_sf_ptr[2*0] = scipy.special._ufuncs_cxx._export_ncx2_sf_float
-ufunc__ncx2_sf_ptr[2*0+1] = ("_ncx2_sf")
-ufunc__ncx2_sf_ptr[2*1] = scipy.special._ufuncs_cxx._export_ncx2_sf_double
-ufunc__ncx2_sf_ptr[2*1+1] = ("_ncx2_sf")
-ufunc__ncx2_sf_data[0] = &ufunc__ncx2_sf_ptr[2*0]
-ufunc__ncx2_sf_data[1] = &ufunc__ncx2_sf_ptr[2*1]
-_ncx2_sf = np.PyUFunc_FromFuncAndData(ufunc__ncx2_sf_loops, ufunc__ncx2_sf_data, ufunc__ncx2_sf_types, 2, 3, 1, 0, "_ncx2_sf", ufunc__ncx2_sf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__riemann_zeta_loops[2]
-cdef void *ufunc__riemann_zeta_ptr[4]
-cdef void *ufunc__riemann_zeta_data[2]
-cdef char ufunc__riemann_zeta_types[4]
-cdef char *ufunc__riemann_zeta_doc = (
-    "Internal function, use `zeta` instead.")
-ufunc__riemann_zeta_loops[0] = loop_d_d__As_f_f
-ufunc__riemann_zeta_loops[1] = loop_d_d__As_d_d
-ufunc__riemann_zeta_types[0] = NPY_FLOAT
-ufunc__riemann_zeta_types[1] = NPY_FLOAT
-ufunc__riemann_zeta_types[2] = NPY_DOUBLE
-ufunc__riemann_zeta_types[3] = NPY_DOUBLE
-ufunc__riemann_zeta_ptr[2*0] = _func_cephes_riemann_zeta
-ufunc__riemann_zeta_ptr[2*0+1] = ("_riemann_zeta")
-ufunc__riemann_zeta_ptr[2*1] = _func_cephes_riemann_zeta
-ufunc__riemann_zeta_ptr[2*1+1] = ("_riemann_zeta")
-ufunc__riemann_zeta_data[0] = &ufunc__riemann_zeta_ptr[2*0]
-ufunc__riemann_zeta_data[1] = &ufunc__riemann_zeta_ptr[2*1]
-_riemann_zeta = np.PyUFunc_FromFuncAndData(ufunc__riemann_zeta_loops, ufunc__riemann_zeta_data, ufunc__riemann_zeta_types, 2, 1, 1, 0, "_riemann_zeta", ufunc__riemann_zeta_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__sf_error_test_function_loops[1]
-cdef void *ufunc__sf_error_test_function_ptr[2]
-cdef void *ufunc__sf_error_test_function_data[1]
-cdef char ufunc__sf_error_test_function_types[2]
-cdef char *ufunc__sf_error_test_function_doc = (
-    "Private function; do not use.")
-ufunc__sf_error_test_function_loops[0] = loop_i_i__As_l_l
-ufunc__sf_error_test_function_types[0] = NPY_LONG
-ufunc__sf_error_test_function_types[1] = NPY_LONG
-ufunc__sf_error_test_function_ptr[2*0] = _func__sf_error_test_function
-ufunc__sf_error_test_function_ptr[2*0+1] = ("_sf_error_test_function")
-ufunc__sf_error_test_function_data[0] = &ufunc__sf_error_test_function_ptr[2*0]
-_sf_error_test_function = np.PyUFunc_FromFuncAndData(ufunc__sf_error_test_function_loops, ufunc__sf_error_test_function_data, ufunc__sf_error_test_function_types, 1, 1, 1, 0, "_sf_error_test_function", ufunc__sf_error_test_function_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__skewnorm_cdf_loops[2]
-cdef void *ufunc__skewnorm_cdf_ptr[4]
-cdef void *ufunc__skewnorm_cdf_data[2]
-cdef char ufunc__skewnorm_cdf_types[10]
-cdef char *ufunc__skewnorm_cdf_doc = (
-    "_skewnorm_cdf(x, l, sc, sh)\n"
-    "\n"
-    "Cumulative density function of skewnorm distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "sc : array_like\n"
-    "    Positive, Real-valued parameters\n"
-    "sh : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__skewnorm_cdf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__skewnorm_cdf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__skewnorm_cdf_types[0] = NPY_FLOAT
-ufunc__skewnorm_cdf_types[1] = NPY_FLOAT
-ufunc__skewnorm_cdf_types[2] = NPY_FLOAT
-ufunc__skewnorm_cdf_types[3] = NPY_FLOAT
-ufunc__skewnorm_cdf_types[4] = NPY_FLOAT
-ufunc__skewnorm_cdf_types[5] = NPY_DOUBLE
-ufunc__skewnorm_cdf_types[6] = NPY_DOUBLE
-ufunc__skewnorm_cdf_types[7] = NPY_DOUBLE
-ufunc__skewnorm_cdf_types[8] = NPY_DOUBLE
-ufunc__skewnorm_cdf_types[9] = NPY_DOUBLE
-ufunc__skewnorm_cdf_ptr[2*0] = scipy.special._ufuncs_cxx._export_skewnorm_cdf_float
-ufunc__skewnorm_cdf_ptr[2*0+1] = ("_skewnorm_cdf")
-ufunc__skewnorm_cdf_ptr[2*1] = scipy.special._ufuncs_cxx._export_skewnorm_cdf_double
-ufunc__skewnorm_cdf_ptr[2*1+1] = ("_skewnorm_cdf")
-ufunc__skewnorm_cdf_data[0] = &ufunc__skewnorm_cdf_ptr[2*0]
-ufunc__skewnorm_cdf_data[1] = &ufunc__skewnorm_cdf_ptr[2*1]
-_skewnorm_cdf = np.PyUFunc_FromFuncAndData(ufunc__skewnorm_cdf_loops, ufunc__skewnorm_cdf_data, ufunc__skewnorm_cdf_types, 2, 4, 1, 0, "_skewnorm_cdf", ufunc__skewnorm_cdf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__skewnorm_isf_loops[2]
-cdef void *ufunc__skewnorm_isf_ptr[4]
-cdef void *ufunc__skewnorm_isf_data[2]
-cdef char ufunc__skewnorm_isf_types[10]
-cdef char *ufunc__skewnorm_isf_doc = (
-    "_skewnorm_isf(x, l, sc, sh)\n"
-    "\n"
-    "Inverse surivial function of skewnorm distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "sc : array_like\n"
-    "    Positive, Real-valued parameters\n"
-    "sh : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__skewnorm_isf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__skewnorm_isf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__skewnorm_isf_types[0] = NPY_FLOAT
-ufunc__skewnorm_isf_types[1] = NPY_FLOAT
-ufunc__skewnorm_isf_types[2] = NPY_FLOAT
-ufunc__skewnorm_isf_types[3] = NPY_FLOAT
-ufunc__skewnorm_isf_types[4] = NPY_FLOAT
-ufunc__skewnorm_isf_types[5] = NPY_DOUBLE
-ufunc__skewnorm_isf_types[6] = NPY_DOUBLE
-ufunc__skewnorm_isf_types[7] = NPY_DOUBLE
-ufunc__skewnorm_isf_types[8] = NPY_DOUBLE
-ufunc__skewnorm_isf_types[9] = NPY_DOUBLE
-ufunc__skewnorm_isf_ptr[2*0] = scipy.special._ufuncs_cxx._export_skewnorm_isf_float
-ufunc__skewnorm_isf_ptr[2*0+1] = ("_skewnorm_isf")
-ufunc__skewnorm_isf_ptr[2*1] = scipy.special._ufuncs_cxx._export_skewnorm_isf_double
-ufunc__skewnorm_isf_ptr[2*1+1] = ("_skewnorm_isf")
-ufunc__skewnorm_isf_data[0] = &ufunc__skewnorm_isf_ptr[2*0]
-ufunc__skewnorm_isf_data[1] = &ufunc__skewnorm_isf_ptr[2*1]
-_skewnorm_isf = np.PyUFunc_FromFuncAndData(ufunc__skewnorm_isf_loops, ufunc__skewnorm_isf_data, ufunc__skewnorm_isf_types, 2, 4, 1, 0, "_skewnorm_isf", ufunc__skewnorm_isf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__skewnorm_ppf_loops[2]
-cdef void *ufunc__skewnorm_ppf_ptr[4]
-cdef void *ufunc__skewnorm_ppf_data[2]
-cdef char ufunc__skewnorm_ppf_types[10]
-cdef char *ufunc__skewnorm_ppf_doc = (
-    "_skewnorm_ppf(x, l, sc, sh)\n"
-    "\n"
-    "Percent point function of skewnorm distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real-valued\n"
-    "l : array_like\n"
-    "    Real-valued parameters\n"
-    "sc : array_like\n"
-    "    Positive, Real-valued parameters\n"
-    "sh : array_like\n"
-    "    Real-valued parameters\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray")
-ufunc__skewnorm_ppf_loops[0] = loop_f_ffff__As_ffff_f
-ufunc__skewnorm_ppf_loops[1] = loop_d_dddd__As_dddd_d
-ufunc__skewnorm_ppf_types[0] = NPY_FLOAT
-ufunc__skewnorm_ppf_types[1] = NPY_FLOAT
-ufunc__skewnorm_ppf_types[2] = NPY_FLOAT
-ufunc__skewnorm_ppf_types[3] = NPY_FLOAT
-ufunc__skewnorm_ppf_types[4] = NPY_FLOAT
-ufunc__skewnorm_ppf_types[5] = NPY_DOUBLE
-ufunc__skewnorm_ppf_types[6] = NPY_DOUBLE
-ufunc__skewnorm_ppf_types[7] = NPY_DOUBLE
-ufunc__skewnorm_ppf_types[8] = NPY_DOUBLE
-ufunc__skewnorm_ppf_types[9] = NPY_DOUBLE
-ufunc__skewnorm_ppf_ptr[2*0] = scipy.special._ufuncs_cxx._export_skewnorm_ppf_float
-ufunc__skewnorm_ppf_ptr[2*0+1] = ("_skewnorm_ppf")
-ufunc__skewnorm_ppf_ptr[2*1] = scipy.special._ufuncs_cxx._export_skewnorm_ppf_double
-ufunc__skewnorm_ppf_ptr[2*1+1] = ("_skewnorm_ppf")
-ufunc__skewnorm_ppf_data[0] = &ufunc__skewnorm_ppf_ptr[2*0]
-ufunc__skewnorm_ppf_data[1] = &ufunc__skewnorm_ppf_ptr[2*1]
-_skewnorm_ppf = np.PyUFunc_FromFuncAndData(ufunc__skewnorm_ppf_loops, ufunc__skewnorm_ppf_data, ufunc__skewnorm_ppf_types, 2, 4, 1, 0, "_skewnorm_ppf", ufunc__skewnorm_ppf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__smirnovc_loops[3]
-cdef void *ufunc__smirnovc_ptr[6]
-cdef void *ufunc__smirnovc_data[3]
-cdef char ufunc__smirnovc_types[9]
-cdef char *ufunc__smirnovc_doc = (
-    "_smirnovc(n, d)\n"
-    " Internal function, do not use.")
-ufunc__smirnovc_loops[0] = loop_d_pd__As_pd_d
-ufunc__smirnovc_loops[1] = loop_d_dd__As_ff_f
-ufunc__smirnovc_loops[2] = loop_d_dd__As_dd_d
-ufunc__smirnovc_types[0] = NPY_INTP
-ufunc__smirnovc_types[1] = NPY_DOUBLE
-ufunc__smirnovc_types[2] = NPY_DOUBLE
-ufunc__smirnovc_types[3] = NPY_FLOAT
-ufunc__smirnovc_types[4] = NPY_FLOAT
-ufunc__smirnovc_types[5] = NPY_FLOAT
-ufunc__smirnovc_types[6] = NPY_DOUBLE
-ufunc__smirnovc_types[7] = NPY_DOUBLE
-ufunc__smirnovc_types[8] = NPY_DOUBLE
-ufunc__smirnovc_ptr[2*0] = _func_cephes_smirnovc_wrap
-ufunc__smirnovc_ptr[2*0+1] = ("_smirnovc")
-ufunc__smirnovc_ptr[2*1] = _func_smirnovc_unsafe
-ufunc__smirnovc_ptr[2*1+1] = ("_smirnovc")
-ufunc__smirnovc_ptr[2*2] = _func_smirnovc_unsafe
-ufunc__smirnovc_ptr[2*2+1] = ("_smirnovc")
-ufunc__smirnovc_data[0] = &ufunc__smirnovc_ptr[2*0]
-ufunc__smirnovc_data[1] = &ufunc__smirnovc_ptr[2*1]
-ufunc__smirnovc_data[2] = &ufunc__smirnovc_ptr[2*2]
-_smirnovc = np.PyUFunc_FromFuncAndData(ufunc__smirnovc_loops, ufunc__smirnovc_data, ufunc__smirnovc_types, 3, 2, 1, 0, "_smirnovc", ufunc__smirnovc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__smirnovci_loops[3]
-cdef void *ufunc__smirnovci_ptr[6]
-cdef void *ufunc__smirnovci_data[3]
-cdef char ufunc__smirnovci_types[9]
-cdef char *ufunc__smirnovci_doc = (
-    "Internal function, do not use.")
-ufunc__smirnovci_loops[0] = loop_d_pd__As_pd_d
-ufunc__smirnovci_loops[1] = loop_d_dd__As_ff_f
-ufunc__smirnovci_loops[2] = loop_d_dd__As_dd_d
-ufunc__smirnovci_types[0] = NPY_INTP
-ufunc__smirnovci_types[1] = NPY_DOUBLE
-ufunc__smirnovci_types[2] = NPY_DOUBLE
-ufunc__smirnovci_types[3] = NPY_FLOAT
-ufunc__smirnovci_types[4] = NPY_FLOAT
-ufunc__smirnovci_types[5] = NPY_FLOAT
-ufunc__smirnovci_types[6] = NPY_DOUBLE
-ufunc__smirnovci_types[7] = NPY_DOUBLE
-ufunc__smirnovci_types[8] = NPY_DOUBLE
-ufunc__smirnovci_ptr[2*0] = _func_cephes_smirnovci_wrap
-ufunc__smirnovci_ptr[2*0+1] = ("_smirnovci")
-ufunc__smirnovci_ptr[2*1] = _func_smirnovci_unsafe
-ufunc__smirnovci_ptr[2*1+1] = ("_smirnovci")
-ufunc__smirnovci_ptr[2*2] = _func_smirnovci_unsafe
-ufunc__smirnovci_ptr[2*2+1] = ("_smirnovci")
-ufunc__smirnovci_data[0] = &ufunc__smirnovci_ptr[2*0]
-ufunc__smirnovci_data[1] = &ufunc__smirnovci_ptr[2*1]
-ufunc__smirnovci_data[2] = &ufunc__smirnovci_ptr[2*2]
-_smirnovci = np.PyUFunc_FromFuncAndData(ufunc__smirnovci_loops, ufunc__smirnovci_data, ufunc__smirnovci_types, 3, 2, 1, 0, "_smirnovci", ufunc__smirnovci_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__smirnovp_loops[3]
-cdef void *ufunc__smirnovp_ptr[6]
-cdef void *ufunc__smirnovp_data[3]
-cdef char ufunc__smirnovp_types[9]
-cdef char *ufunc__smirnovp_doc = (
-    "_smirnovp(n, p)\n"
-    " Internal function, do not use.")
-ufunc__smirnovp_loops[0] = loop_d_pd__As_pd_d
-ufunc__smirnovp_loops[1] = loop_d_dd__As_ff_f
-ufunc__smirnovp_loops[2] = loop_d_dd__As_dd_d
-ufunc__smirnovp_types[0] = NPY_INTP
-ufunc__smirnovp_types[1] = NPY_DOUBLE
-ufunc__smirnovp_types[2] = NPY_DOUBLE
-ufunc__smirnovp_types[3] = NPY_FLOAT
-ufunc__smirnovp_types[4] = NPY_FLOAT
-ufunc__smirnovp_types[5] = NPY_FLOAT
-ufunc__smirnovp_types[6] = NPY_DOUBLE
-ufunc__smirnovp_types[7] = NPY_DOUBLE
-ufunc__smirnovp_types[8] = NPY_DOUBLE
-ufunc__smirnovp_ptr[2*0] = _func_cephes_smirnovp_wrap
-ufunc__smirnovp_ptr[2*0+1] = ("_smirnovp")
-ufunc__smirnovp_ptr[2*1] = _func_smirnovp_unsafe
-ufunc__smirnovp_ptr[2*1+1] = ("_smirnovp")
-ufunc__smirnovp_ptr[2*2] = _func_smirnovp_unsafe
-ufunc__smirnovp_ptr[2*2+1] = ("_smirnovp")
-ufunc__smirnovp_data[0] = &ufunc__smirnovp_ptr[2*0]
-ufunc__smirnovp_data[1] = &ufunc__smirnovp_ptr[2*1]
-ufunc__smirnovp_data[2] = &ufunc__smirnovp_ptr[2*2]
-_smirnovp = np.PyUFunc_FromFuncAndData(ufunc__smirnovp_loops, ufunc__smirnovp_data, ufunc__smirnovp_types, 3, 2, 1, 0, "_smirnovp", ufunc__smirnovp_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__stirling2_inexact_loops[2]
-cdef void *ufunc__stirling2_inexact_ptr[4]
-cdef void *ufunc__stirling2_inexact_data[2]
-cdef char ufunc__stirling2_inexact_types[6]
-cdef char *ufunc__stirling2_inexact_doc = (
-    "Internal function, do not use.")
-ufunc__stirling2_inexact_loops[0] = loop_d_dd__As_ff_f
-ufunc__stirling2_inexact_loops[1] = loop_d_dd__As_dd_d
-ufunc__stirling2_inexact_types[0] = NPY_FLOAT
-ufunc__stirling2_inexact_types[1] = NPY_FLOAT
-ufunc__stirling2_inexact_types[2] = NPY_FLOAT
-ufunc__stirling2_inexact_types[3] = NPY_DOUBLE
-ufunc__stirling2_inexact_types[4] = NPY_DOUBLE
-ufunc__stirling2_inexact_types[5] = NPY_DOUBLE
-ufunc__stirling2_inexact_ptr[2*0] = scipy.special._ufuncs_cxx._export__stirling2_inexact
-ufunc__stirling2_inexact_ptr[2*0+1] = ("_stirling2_inexact")
-ufunc__stirling2_inexact_ptr[2*1] = scipy.special._ufuncs_cxx._export__stirling2_inexact
-ufunc__stirling2_inexact_ptr[2*1+1] = ("_stirling2_inexact")
-ufunc__stirling2_inexact_data[0] = &ufunc__stirling2_inexact_ptr[2*0]
-ufunc__stirling2_inexact_data[1] = &ufunc__stirling2_inexact_ptr[2*1]
-_stirling2_inexact = np.PyUFunc_FromFuncAndData(ufunc__stirling2_inexact_loops, ufunc__stirling2_inexact_data, ufunc__stirling2_inexact_types, 2, 2, 1, 0, "_stirling2_inexact", ufunc__stirling2_inexact_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__struve_asymp_large_z_loops[1]
-cdef void *ufunc__struve_asymp_large_z_ptr[2]
-cdef void *ufunc__struve_asymp_large_z_data[1]
-cdef char ufunc__struve_asymp_large_z_types[5]
-cdef char *ufunc__struve_asymp_large_z_doc = (
-    "_struve_asymp_large_z(v, z, is_h)\n"
-    "\n"
-    "Internal function for testing `struve` & `modstruve`\n"
-    "\n"
-    "Evaluates using asymptotic expansion\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "v, err")
-ufunc__struve_asymp_large_z_loops[0] = loop_d_ddp_d_As_ddp_dd
-ufunc__struve_asymp_large_z_types[0] = NPY_DOUBLE
-ufunc__struve_asymp_large_z_types[1] = NPY_DOUBLE
-ufunc__struve_asymp_large_z_types[2] = NPY_INTP
-ufunc__struve_asymp_large_z_types[3] = NPY_DOUBLE
-ufunc__struve_asymp_large_z_types[4] = NPY_DOUBLE
-ufunc__struve_asymp_large_z_ptr[2*0] = _func_cephes__struve_asymp_large_z
-ufunc__struve_asymp_large_z_ptr[2*0+1] = ("_struve_asymp_large_z")
-ufunc__struve_asymp_large_z_data[0] = &ufunc__struve_asymp_large_z_ptr[2*0]
-_struve_asymp_large_z = np.PyUFunc_FromFuncAndData(ufunc__struve_asymp_large_z_loops, ufunc__struve_asymp_large_z_data, ufunc__struve_asymp_large_z_types, 1, 3, 2, 0, "_struve_asymp_large_z", ufunc__struve_asymp_large_z_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__struve_bessel_series_loops[1]
-cdef void *ufunc__struve_bessel_series_ptr[2]
-cdef void *ufunc__struve_bessel_series_data[1]
-cdef char ufunc__struve_bessel_series_types[5]
-cdef char *ufunc__struve_bessel_series_doc = (
-    "_struve_bessel_series(v, z, is_h)\n"
-    "\n"
-    "Internal function for testing `struve` & `modstruve`\n"
-    "\n"
-    "Evaluates using Bessel function series\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "v, err")
-ufunc__struve_bessel_series_loops[0] = loop_d_ddp_d_As_ddp_dd
-ufunc__struve_bessel_series_types[0] = NPY_DOUBLE
-ufunc__struve_bessel_series_types[1] = NPY_DOUBLE
-ufunc__struve_bessel_series_types[2] = NPY_INTP
-ufunc__struve_bessel_series_types[3] = NPY_DOUBLE
-ufunc__struve_bessel_series_types[4] = NPY_DOUBLE
-ufunc__struve_bessel_series_ptr[2*0] = _func_cephes__struve_bessel_series
-ufunc__struve_bessel_series_ptr[2*0+1] = ("_struve_bessel_series")
-ufunc__struve_bessel_series_data[0] = &ufunc__struve_bessel_series_ptr[2*0]
-_struve_bessel_series = np.PyUFunc_FromFuncAndData(ufunc__struve_bessel_series_loops, ufunc__struve_bessel_series_data, ufunc__struve_bessel_series_types, 1, 3, 2, 0, "_struve_bessel_series", ufunc__struve_bessel_series_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc__struve_power_series_loops[1]
-cdef void *ufunc__struve_power_series_ptr[2]
-cdef void *ufunc__struve_power_series_data[1]
-cdef char ufunc__struve_power_series_types[5]
-cdef char *ufunc__struve_power_series_doc = (
-    "_struve_power_series(v, z, is_h)\n"
-    "\n"
-    "Internal function for testing `struve` & `modstruve`\n"
-    "\n"
-    "Evaluates using power series\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "v, err")
-ufunc__struve_power_series_loops[0] = loop_d_ddp_d_As_ddp_dd
-ufunc__struve_power_series_types[0] = NPY_DOUBLE
-ufunc__struve_power_series_types[1] = NPY_DOUBLE
-ufunc__struve_power_series_types[2] = NPY_INTP
-ufunc__struve_power_series_types[3] = NPY_DOUBLE
-ufunc__struve_power_series_types[4] = NPY_DOUBLE
-ufunc__struve_power_series_ptr[2*0] = _func_cephes__struve_power_series
-ufunc__struve_power_series_ptr[2*0+1] = ("_struve_power_series")
-ufunc__struve_power_series_data[0] = &ufunc__struve_power_series_ptr[2*0]
-_struve_power_series = np.PyUFunc_FromFuncAndData(ufunc__struve_power_series_loops, ufunc__struve_power_series_data, ufunc__struve_power_series_types, 1, 3, 2, 0, "_struve_power_series", ufunc__struve_power_series_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_agm_loops[2]
-cdef void *ufunc_agm_ptr[4]
-cdef void *ufunc_agm_data[2]
-cdef char ufunc_agm_types[6]
-cdef char *ufunc_agm_doc = (
-    "agm(a, b, out=None)\n"
-    "\n"
-    "Compute the arithmetic-geometric mean of `a` and `b`.\n"
-    "\n"
-    "Start with a_0 = a and b_0 = b and iteratively compute::\n"
-    "\n"
-    "    a_{n+1} = (a_n + b_n)/2\n"
-    "    b_{n+1} = sqrt(a_n*b_n)\n"
-    "\n"
-    "a_n and b_n converge to the same limit as n increases; their common\n"
-    "limit is agm(a, b).\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a, b : array_like\n"
-    "    Real values only. If the values are both negative, the result\n"
-    "    is negative. If one value is negative and the other is positive,\n"
-    "    `nan` is returned.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The arithmetic-geometric mean of `a` and `b`.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import agm\n"
-    ">>> a, b = 24.0, 6.0\n"
-    ">>> agm(a, b)\n"
-    "13.458171481725614\n"
-    "\n"
-    "Compare that result to the iteration:\n"
-    "\n"
-    ">>> while a != b:\n"
-    "...     a, b = (a + b)/2, np.sqrt(a*b)\n"
-    "...     print(\"a = %19.16f  b=%19.16f\" % (a, b))\n"
-    "...\n"
-    "a = 15.0000000000000000  b=12.0000000000000000\n"
-    "a = 13.5000000000000000  b=13.4164078649987388\n"
-    "a = 13.4582039324993694  b=13.4581390309909850\n"
-    "a = 13.4581714817451772  b=13.4581714817060547\n"
-    "a = 13.4581714817256159  b=13.4581714817256159\n"
-    "\n"
-    "When array-like arguments are given, broadcasting applies:\n"
-    "\n"
-    ">>> a = np.array([[1.5], [3], [6]])  # a has shape (3, 1).\n"
-    ">>> b = np.array([6, 12, 24, 48])    # b has shape (4,).\n"
-    ">>> agm(a, b)\n"
-    "array([[  3.36454287,   5.42363427,   9.05798751,  15.53650756],\n"
-    "       [  4.37037309,   6.72908574,  10.84726853,  18.11597502],\n"
-    "       [  6.        ,   8.74074619,  13.45817148,  21.69453707]])")
-ufunc_agm_loops[0] = loop_d_dd__As_ff_f
-ufunc_agm_loops[1] = loop_d_dd__As_dd_d
-ufunc_agm_types[0] = NPY_FLOAT
-ufunc_agm_types[1] = NPY_FLOAT
-ufunc_agm_types[2] = NPY_FLOAT
-ufunc_agm_types[3] = NPY_DOUBLE
-ufunc_agm_types[4] = NPY_DOUBLE
-ufunc_agm_types[5] = NPY_DOUBLE
-ufunc_agm_ptr[2*0] = _func_agm
-ufunc_agm_ptr[2*0+1] = ("agm")
-ufunc_agm_ptr[2*1] = _func_agm
-ufunc_agm_ptr[2*1+1] = ("agm")
-ufunc_agm_data[0] = &ufunc_agm_ptr[2*0]
-ufunc_agm_data[1] = &ufunc_agm_ptr[2*1]
-agm = np.PyUFunc_FromFuncAndData(ufunc_agm_loops, ufunc_agm_data, ufunc_agm_types, 2, 2, 1, 0, "agm", ufunc_agm_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_bdtr_loops[3]
-cdef void *ufunc_bdtr_ptr[6]
-cdef void *ufunc_bdtr_data[3]
-cdef char ufunc_bdtr_types[12]
-cdef char *ufunc_bdtr_doc = (
-    "bdtr(k, n, p, out=None)\n"
-    "\n"
-    "Binomial distribution cumulative distribution function.\n"
-    "\n"
-    "Sum of the terms 0 through `floor(k)` of the Binomial probability density.\n"
-    "\n"
-    ".. math::\n"
-    "    \\mathrm{bdtr}(k, n, p) =\n"
-    "    \\sum_{j=0}^{\\lfloor k \\rfloor} {{n}\\choose{j}} p^j (1-p)^{n-j}\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    Number of successes (double), rounded down to the nearest integer.\n"
-    "n : array_like\n"
-    "    Number of events (int).\n"
-    "p : array_like\n"
-    "    Probability of success in a single event (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "y : scalar or ndarray\n"
-    "    Probability of `floor(k)` or fewer successes in `n` independent events with\n"
-    "    success probabilities of `p`.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The terms are not summed directly; instead the regularized incomplete beta\n"
-    "function is employed, according to the formula,\n"
-    "\n"
-    ".. math::\n"
-    "    \\mathrm{bdtr}(k, n, p) =\n"
-    "    I_{1 - p}(n - \\lfloor k \\rfloor, \\lfloor k \\rfloor + 1).\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `bdtr`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/")
-ufunc_bdtr_loops[0] = loop_d_ddd__As_fff_f
-ufunc_bdtr_loops[1] = loop_d_dpd__As_dpd_d
-ufunc_bdtr_loops[2] = loop_d_ddd__As_ddd_d
-ufunc_bdtr_types[0] = NPY_FLOAT
-ufunc_bdtr_types[1] = NPY_FLOAT
-ufunc_bdtr_types[2] = NPY_FLOAT
-ufunc_bdtr_types[3] = NPY_FLOAT
-ufunc_bdtr_types[4] = NPY_DOUBLE
-ufunc_bdtr_types[5] = NPY_INTP
-ufunc_bdtr_types[6] = NPY_DOUBLE
-ufunc_bdtr_types[7] = NPY_DOUBLE
-ufunc_bdtr_types[8] = NPY_DOUBLE
-ufunc_bdtr_types[9] = NPY_DOUBLE
-ufunc_bdtr_types[10] = NPY_DOUBLE
-ufunc_bdtr_types[11] = NPY_DOUBLE
-ufunc_bdtr_ptr[2*0] = _func_bdtr_unsafe
-ufunc_bdtr_ptr[2*0+1] = ("bdtr")
-ufunc_bdtr_ptr[2*1] = _func_cephes_bdtr_wrap
-ufunc_bdtr_ptr[2*1+1] = ("bdtr")
-ufunc_bdtr_ptr[2*2] = _func_bdtr_unsafe
-ufunc_bdtr_ptr[2*2+1] = ("bdtr")
-ufunc_bdtr_data[0] = &ufunc_bdtr_ptr[2*0]
-ufunc_bdtr_data[1] = &ufunc_bdtr_ptr[2*1]
-ufunc_bdtr_data[2] = &ufunc_bdtr_ptr[2*2]
-bdtr = np.PyUFunc_FromFuncAndData(ufunc_bdtr_loops, ufunc_bdtr_data, ufunc_bdtr_types, 3, 3, 1, 0, "bdtr", ufunc_bdtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_bdtrc_loops[3]
-cdef void *ufunc_bdtrc_ptr[6]
-cdef void *ufunc_bdtrc_data[3]
-cdef char ufunc_bdtrc_types[12]
-cdef char *ufunc_bdtrc_doc = (
-    "bdtrc(k, n, p, out=None)\n"
-    "\n"
-    "Binomial distribution survival function.\n"
-    "\n"
-    "Sum of the terms `floor(k) + 1` through `n` of the binomial probability\n"
-    "density,\n"
-    "\n"
-    ".. math::\n"
-    "    \\mathrm{bdtrc}(k, n, p) =\n"
-    "    \\sum_{j=\\lfloor k \\rfloor +1}^n {{n}\\choose{j}} p^j (1-p)^{n-j}\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    Number of successes (double), rounded down to nearest integer.\n"
-    "n : array_like\n"
-    "    Number of events (int)\n"
-    "p : array_like\n"
-    "    Probability of success in a single event.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "y : scalar or ndarray\n"
-    "    Probability of `floor(k) + 1` or more successes in `n` independent\n"
-    "    events with success probabilities of `p`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "bdtr\n"
-    "betainc\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The terms are not summed directly; instead the regularized incomplete beta\n"
-    "function is employed, according to the formula,\n"
-    "\n"
-    ".. math::\n"
-    "    \\mathrm{bdtrc}(k, n, p) = I_{p}(\\lfloor k \\rfloor + 1, n - \\lfloor k \\rfloor).\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `bdtrc`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/")
-ufunc_bdtrc_loops[0] = loop_d_ddd__As_fff_f
-ufunc_bdtrc_loops[1] = loop_d_dpd__As_dpd_d
-ufunc_bdtrc_loops[2] = loop_d_ddd__As_ddd_d
-ufunc_bdtrc_types[0] = NPY_FLOAT
-ufunc_bdtrc_types[1] = NPY_FLOAT
-ufunc_bdtrc_types[2] = NPY_FLOAT
-ufunc_bdtrc_types[3] = NPY_FLOAT
-ufunc_bdtrc_types[4] = NPY_DOUBLE
-ufunc_bdtrc_types[5] = NPY_INTP
-ufunc_bdtrc_types[6] = NPY_DOUBLE
-ufunc_bdtrc_types[7] = NPY_DOUBLE
-ufunc_bdtrc_types[8] = NPY_DOUBLE
-ufunc_bdtrc_types[9] = NPY_DOUBLE
-ufunc_bdtrc_types[10] = NPY_DOUBLE
-ufunc_bdtrc_types[11] = NPY_DOUBLE
-ufunc_bdtrc_ptr[2*0] = _func_bdtrc_unsafe
-ufunc_bdtrc_ptr[2*0+1] = ("bdtrc")
-ufunc_bdtrc_ptr[2*1] = _func_cephes_bdtrc_wrap
-ufunc_bdtrc_ptr[2*1+1] = ("bdtrc")
-ufunc_bdtrc_ptr[2*2] = _func_bdtrc_unsafe
-ufunc_bdtrc_ptr[2*2+1] = ("bdtrc")
-ufunc_bdtrc_data[0] = &ufunc_bdtrc_ptr[2*0]
-ufunc_bdtrc_data[1] = &ufunc_bdtrc_ptr[2*1]
-ufunc_bdtrc_data[2] = &ufunc_bdtrc_ptr[2*2]
-bdtrc = np.PyUFunc_FromFuncAndData(ufunc_bdtrc_loops, ufunc_bdtrc_data, ufunc_bdtrc_types, 3, 3, 1, 0, "bdtrc", ufunc_bdtrc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_bdtri_loops[3]
-cdef void *ufunc_bdtri_ptr[6]
-cdef void *ufunc_bdtri_data[3]
-cdef char ufunc_bdtri_types[12]
-cdef char *ufunc_bdtri_doc = (
-    "bdtri(k, n, y, out=None)\n"
-    "\n"
-    "Inverse function to `bdtr` with respect to `p`.\n"
-    "\n"
-    "Finds the event probability `p` such that the sum of the terms 0 through\n"
-    "`k` of the binomial probability density is equal to the given cumulative\n"
-    "probability `y`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    Number of successes (float), rounded down to the nearest integer.\n"
-    "n : array_like\n"
-    "    Number of events (float)\n"
-    "y : array_like\n"
-    "    Cumulative probability (probability of `k` or fewer successes in `n`\n"
-    "    events).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "p : scalar or ndarray\n"
-    "    The event probability such that `bdtr(\\lfloor k \\rfloor, n, p) = y`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "bdtr\n"
-    "betaincinv\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The computation is carried out using the inverse beta integral function\n"
-    "and the relation,::\n"
-    "\n"
-    "    1 - p = betaincinv(n - k, k + 1, y).\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `bdtri`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/")
-ufunc_bdtri_loops[0] = loop_d_ddd__As_fff_f
-ufunc_bdtri_loops[1] = loop_d_dpd__As_dpd_d
-ufunc_bdtri_loops[2] = loop_d_ddd__As_ddd_d
-ufunc_bdtri_types[0] = NPY_FLOAT
-ufunc_bdtri_types[1] = NPY_FLOAT
-ufunc_bdtri_types[2] = NPY_FLOAT
-ufunc_bdtri_types[3] = NPY_FLOAT
-ufunc_bdtri_types[4] = NPY_DOUBLE
-ufunc_bdtri_types[5] = NPY_INTP
-ufunc_bdtri_types[6] = NPY_DOUBLE
-ufunc_bdtri_types[7] = NPY_DOUBLE
-ufunc_bdtri_types[8] = NPY_DOUBLE
-ufunc_bdtri_types[9] = NPY_DOUBLE
-ufunc_bdtri_types[10] = NPY_DOUBLE
-ufunc_bdtri_types[11] = NPY_DOUBLE
-ufunc_bdtri_ptr[2*0] = _func_bdtri_unsafe
-ufunc_bdtri_ptr[2*0+1] = ("bdtri")
-ufunc_bdtri_ptr[2*1] = _func_cephes_bdtri_wrap
-ufunc_bdtri_ptr[2*1+1] = ("bdtri")
-ufunc_bdtri_ptr[2*2] = _func_bdtri_unsafe
-ufunc_bdtri_ptr[2*2+1] = ("bdtri")
-ufunc_bdtri_data[0] = &ufunc_bdtri_ptr[2*0]
-ufunc_bdtri_data[1] = &ufunc_bdtri_ptr[2*1]
-ufunc_bdtri_data[2] = &ufunc_bdtri_ptr[2*2]
-bdtri = np.PyUFunc_FromFuncAndData(ufunc_bdtri_loops, ufunc_bdtri_data, ufunc_bdtri_types, 3, 3, 1, 0, "bdtri", ufunc_bdtri_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_bdtrik_loops[2]
-cdef void *ufunc_bdtrik_ptr[4]
-cdef void *ufunc_bdtrik_data[2]
-cdef char ufunc_bdtrik_types[8]
-cdef char *ufunc_bdtrik_doc = (
-    "bdtrik(y, n, p, out=None)\n"
-    "\n"
-    "Inverse function to `bdtr` with respect to `k`.\n"
-    "\n"
-    "Finds the number of successes `k` such that the sum of the terms 0 through\n"
-    "`k` of the Binomial probability density for `n` events with probability\n"
-    "`p` is equal to the given cumulative probability `y`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "y : array_like\n"
-    "    Cumulative probability (probability of `k` or fewer successes in `n`\n"
-    "    events).\n"
-    "n : array_like\n"
-    "    Number of events (float).\n"
-    "p : array_like\n"
-    "    Success probability (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "k : scalar or ndarray\n"
-    "    The number of successes `k` such that `bdtr(k, n, p) = y`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "bdtr\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Formula 26.5.24 of [1]_ is used to reduce the binomial distribution to the\n"
-    "cumulative incomplete beta distribution.\n"
-    "\n"
-    "Computation of `k` involves a search for a value that produces the desired\n"
-    "value of `y`. The search relies on the monotonicity of `y` with `k`.\n"
-    "\n"
-    "Wrapper for the CDFLIB [2]_ Fortran routine `cdfbin`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    ".. [2] Barry Brown, James Lovato, and Kathy Russell,\n"
-    "       CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
-    "       Functions, Inverses, and Other Parameters.")
-ufunc_bdtrik_loops[0] = loop_d_ddd__As_fff_f
-ufunc_bdtrik_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_bdtrik_types[0] = NPY_FLOAT
-ufunc_bdtrik_types[1] = NPY_FLOAT
-ufunc_bdtrik_types[2] = NPY_FLOAT
-ufunc_bdtrik_types[3] = NPY_FLOAT
-ufunc_bdtrik_types[4] = NPY_DOUBLE
-ufunc_bdtrik_types[5] = NPY_DOUBLE
-ufunc_bdtrik_types[6] = NPY_DOUBLE
-ufunc_bdtrik_types[7] = NPY_DOUBLE
-ufunc_bdtrik_ptr[2*0] = _func_bdtrik
-ufunc_bdtrik_ptr[2*0+1] = ("bdtrik")
-ufunc_bdtrik_ptr[2*1] = _func_bdtrik
-ufunc_bdtrik_ptr[2*1+1] = ("bdtrik")
-ufunc_bdtrik_data[0] = &ufunc_bdtrik_ptr[2*0]
-ufunc_bdtrik_data[1] = &ufunc_bdtrik_ptr[2*1]
-bdtrik = np.PyUFunc_FromFuncAndData(ufunc_bdtrik_loops, ufunc_bdtrik_data, ufunc_bdtrik_types, 2, 3, 1, 0, "bdtrik", ufunc_bdtrik_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_bdtrin_loops[2]
-cdef void *ufunc_bdtrin_ptr[4]
-cdef void *ufunc_bdtrin_data[2]
-cdef char ufunc_bdtrin_types[8]
-cdef char *ufunc_bdtrin_doc = (
-    "bdtrin(k, y, p, out=None)\n"
-    "\n"
-    "Inverse function to `bdtr` with respect to `n`.\n"
-    "\n"
-    "Finds the number of events `n` such that the sum of the terms 0 through\n"
-    "`k` of the Binomial probability density for events with probability `p` is\n"
-    "equal to the given cumulative probability `y`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    Number of successes (float).\n"
-    "y : array_like\n"
-    "    Cumulative probability (probability of `k` or fewer successes in `n`\n"
-    "    events).\n"
-    "p : array_like\n"
-    "    Success probability (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "n : scalar or ndarray\n"
-    "    The number of events `n` such that `bdtr(k, n, p) = y`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "bdtr\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Formula 26.5.24 of [1]_ is used to reduce the binomial distribution to the\n"
-    "cumulative incomplete beta distribution.\n"
-    "\n"
-    "Computation of `n` involves a search for a value that produces the desired\n"
-    "value of `y`. The search relies on the monotonicity of `y` with `n`.\n"
-    "\n"
-    "Wrapper for the CDFLIB [2]_ Fortran routine `cdfbin`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    ".. [2] Barry Brown, James Lovato, and Kathy Russell,\n"
-    "       CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
-    "       Functions, Inverses, and Other Parameters.")
-ufunc_bdtrin_loops[0] = loop_d_ddd__As_fff_f
-ufunc_bdtrin_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_bdtrin_types[0] = NPY_FLOAT
-ufunc_bdtrin_types[1] = NPY_FLOAT
-ufunc_bdtrin_types[2] = NPY_FLOAT
-ufunc_bdtrin_types[3] = NPY_FLOAT
-ufunc_bdtrin_types[4] = NPY_DOUBLE
-ufunc_bdtrin_types[5] = NPY_DOUBLE
-ufunc_bdtrin_types[6] = NPY_DOUBLE
-ufunc_bdtrin_types[7] = NPY_DOUBLE
-ufunc_bdtrin_ptr[2*0] = _func_bdtrin
-ufunc_bdtrin_ptr[2*0+1] = ("bdtrin")
-ufunc_bdtrin_ptr[2*1] = _func_bdtrin
-ufunc_bdtrin_ptr[2*1+1] = ("bdtrin")
-ufunc_bdtrin_data[0] = &ufunc_bdtrin_ptr[2*0]
-ufunc_bdtrin_data[1] = &ufunc_bdtrin_ptr[2*1]
-bdtrin = np.PyUFunc_FromFuncAndData(ufunc_bdtrin_loops, ufunc_bdtrin_data, ufunc_bdtrin_types, 2, 3, 1, 0, "bdtrin", ufunc_bdtrin_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_besselpoly_loops[2]
-cdef void *ufunc_besselpoly_ptr[4]
-cdef void *ufunc_besselpoly_data[2]
-cdef char ufunc_besselpoly_types[8]
-cdef char *ufunc_besselpoly_doc = (
-    "besselpoly(a, lmb, nu, out=None)\n"
-    "\n"
-    "Weighted integral of the Bessel function of the first kind.\n"
-    "\n"
-    "Computes\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "   \\int_0^1 x^\\lambda J_\\nu(2 a x) \\, dx\n"
-    "\n"
-    "where :math:`J_\\nu` is a Bessel function and :math:`\\lambda=lmb`,\n"
-    ":math:`\\nu=nu`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    Scale factor inside the Bessel function.\n"
-    "lmb : array_like\n"
-    "    Power of `x`\n"
-    "nu : array_like\n"
-    "    Order of the Bessel function.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Value of the integral.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Evaluate the function for one parameter set.\n"
-    "\n"
-    ">>> from scipy.special import besselpoly\n"
-    ">>> besselpoly(1, 1, 1)\n"
-    "0.24449718372863877\n"
-    "\n"
-    "Evaluate the function for different scale factors.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> factors = np.array([0., 3., 6.])\n"
-    ">>> besselpoly(factors, 1, 1)\n"
-    "array([ 0.        , -0.00549029,  0.00140174])\n"
-    "\n"
-    "Plot the function for varying powers, orders and scales.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> powers = np.linspace(0, 10, 100)\n"
-    ">>> orders = [1, 2, 3]\n"
-    ">>> scales = [1, 2]\n"
-    ">>> all_combinations = [(order, scale) for order in orders\n"
-    "...                     for scale in scales]\n"
-    ">>> for order, scale in all_combinations:\n"
-    "...     ax.plot(powers, besselpoly(scale, powers, order),\n"
-    "...             label=rf\"$\\nu={order}, a={scale}$\")\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_xlabel(r\"$\\lambda$\")\n"
-    ">>> ax.set_ylabel(r\"$\\int_0^1 x^{\\lambda} J_{\\nu}(2ax)\\,dx$\")\n"
-    ">>> plt.show()")
-ufunc_besselpoly_loops[0] = loop_d_ddd__As_fff_f
-ufunc_besselpoly_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_besselpoly_types[0] = NPY_FLOAT
-ufunc_besselpoly_types[1] = NPY_FLOAT
-ufunc_besselpoly_types[2] = NPY_FLOAT
-ufunc_besselpoly_types[3] = NPY_FLOAT
-ufunc_besselpoly_types[4] = NPY_DOUBLE
-ufunc_besselpoly_types[5] = NPY_DOUBLE
-ufunc_besselpoly_types[6] = NPY_DOUBLE
-ufunc_besselpoly_types[7] = NPY_DOUBLE
-ufunc_besselpoly_ptr[2*0] = _func_cephes_besselpoly
-ufunc_besselpoly_ptr[2*0+1] = ("besselpoly")
-ufunc_besselpoly_ptr[2*1] = _func_cephes_besselpoly
-ufunc_besselpoly_ptr[2*1+1] = ("besselpoly")
-ufunc_besselpoly_data[0] = &ufunc_besselpoly_ptr[2*0]
-ufunc_besselpoly_data[1] = &ufunc_besselpoly_ptr[2*1]
-besselpoly = np.PyUFunc_FromFuncAndData(ufunc_besselpoly_loops, ufunc_besselpoly_data, ufunc_besselpoly_types, 2, 3, 1, 0, "besselpoly", ufunc_besselpoly_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_beta_loops[2]
-cdef void *ufunc_beta_ptr[4]
-cdef void *ufunc_beta_data[2]
-cdef char ufunc_beta_types[6]
-cdef char *ufunc_beta_doc = (
-    "beta(a, b, out=None)\n"
-    "\n"
-    "Beta function.\n"
-    "\n"
-    "This function is defined in [1]_ as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    B(a, b) = \\int_0^1 t^{a-1}(1-t)^{b-1}dt\n"
-    "            = \\frac{\\Gamma(a)\\Gamma(b)}{\\Gamma(a+b)},\n"
-    "\n"
-    "where :math:`\\Gamma` is the gamma function.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a, b : array_like\n"
-    "    Real-valued arguments\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function result\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Value of the beta function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gamma : the gamma function\n"
-    "betainc :  the regularized incomplete beta function\n"
-    "betaln : the natural logarithm of the absolute\n"
-    "         value of the beta function\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] NIST Digital Library of Mathematical Functions,\n"
-    "       Eq. 5.12.1. https://dlmf.nist.gov/5.12\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "The beta function relates to the gamma function by the\n"
-    "definition given above:\n"
-    "\n"
-    ">>> sc.beta(2, 3)\n"
-    "0.08333333333333333\n"
-    ">>> sc.gamma(2)*sc.gamma(3)/sc.gamma(2 + 3)\n"
-    "0.08333333333333333\n"
-    "\n"
-    "As this relationship demonstrates, the beta function\n"
-    "is symmetric:\n"
-    "\n"
-    ">>> sc.beta(1.7, 2.4)\n"
-    "0.16567527689031739\n"
-    ">>> sc.beta(2.4, 1.7)\n"
-    "0.16567527689031739\n"
-    "\n"
-    "This function satisfies :math:`B(1, b) = 1/b`:\n"
-    "\n"
-    ">>> sc.beta(1, 4)\n"
-    "0.25")
-ufunc_beta_loops[0] = loop_d_dd__As_ff_f
-ufunc_beta_loops[1] = loop_d_dd__As_dd_d
-ufunc_beta_types[0] = NPY_FLOAT
-ufunc_beta_types[1] = NPY_FLOAT
-ufunc_beta_types[2] = NPY_FLOAT
-ufunc_beta_types[3] = NPY_DOUBLE
-ufunc_beta_types[4] = NPY_DOUBLE
-ufunc_beta_types[5] = NPY_DOUBLE
-ufunc_beta_ptr[2*0] = _func_cephes_beta
-ufunc_beta_ptr[2*0+1] = ("beta")
-ufunc_beta_ptr[2*1] = _func_cephes_beta
-ufunc_beta_ptr[2*1+1] = ("beta")
-ufunc_beta_data[0] = &ufunc_beta_ptr[2*0]
-ufunc_beta_data[1] = &ufunc_beta_ptr[2*1]
-beta = np.PyUFunc_FromFuncAndData(ufunc_beta_loops, ufunc_beta_data, ufunc_beta_types, 2, 2, 1, 0, "beta", ufunc_beta_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_betainc_loops[2]
-cdef void *ufunc_betainc_ptr[4]
-cdef void *ufunc_betainc_data[2]
-cdef char ufunc_betainc_types[8]
-cdef char *ufunc_betainc_doc = (
-    "betainc(a, b, x, out=None)\n"
-    "\n"
-    "Regularized incomplete beta function.\n"
-    "\n"
-    "Computes the regularized incomplete beta function, defined as [1]_:\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    I_x(a, b) = \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)} \\int_0^x\n"
-    "    t^{a-1}(1-t)^{b-1}dt,\n"
-    "\n"
-    "for :math:`0 \\leq x \\leq 1`.\n"
-    "\n"
-    "This function is the cumulative distribution function for the beta\n"
-    "distribution; its range is [0, 1].\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a, b : array_like\n"
-    "       Positive, real-valued parameters\n"
-    "x : array_like\n"
-    "    Real-valued such that :math:`0 \\leq x \\leq 1`,\n"
-    "    the upper limit of integration\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Value of the regularized incomplete beta function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "beta : beta function\n"
-    "betaincinv : inverse of the regularized incomplete beta function\n"
-    "betaincc : complement of the regularized incomplete beta function\n"
-    "scipy.stats.beta : beta distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The term *regularized* in the name of this function refers to the\n"
-    "scaling of the function by the gamma function terms shown in the\n"
-    "formula.  When not qualified as *regularized*, the name *incomplete\n"
-    "beta function* often refers to just the integral expression,\n"
-    "without the gamma terms.  One can use the function `beta` from\n"
-    "`scipy.special` to get this \"nonregularized\" incomplete beta\n"
-    "function by multiplying the result of ``betainc(a, b, x)`` by\n"
-    "``beta(a, b)``.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] NIST Digital Library of Mathematical Functions\n"
-    "       https://dlmf.nist.gov/8.17\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "\n"
-    "Let :math:`B(a, b)` be the `beta` function.\n"
-    "\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "The coefficient in terms of `gamma` is equal to\n"
-    ":math:`1/B(a, b)`. Also, when :math:`x=1`\n"
-    "the integral is equal to :math:`B(a, b)`.\n"
-    "Therefore, :math:`I_{x=1}(a, b) = 1` for any :math:`a, b`.\n"
-    "\n"
-    ">>> sc.betainc(0.2, 3.5, 1.0)\n"
-    "1.0\n"
-    "\n"
-    "It satisfies\n"
-    ":math:`I_x(a, b) = x^a F(a, 1-b, a+1, x)/ (aB(a, b))`,\n"
-    "where :math:`F` is the hypergeometric function `hyp2f1`:\n"
-    "\n"
-    ">>> a, b, x = 1.4, 3.1, 0.5\n"
-    ">>> x**a * sc.hyp2f1(a, 1 - b, a + 1, x)/(a * sc.beta(a, b))\n"
-    "0.8148904036225295\n"
-    ">>> sc.betainc(a, b, x)\n"
-    "0.8148904036225296\n"
-    "\n"
-    "This functions satisfies the relationship\n"
-    ":math:`I_x(a, b) = 1 - I_{1-x}(b, a)`:\n"
-    "\n"
-    ">>> sc.betainc(2.2, 3.1, 0.4)\n"
-    "0.49339638807619446\n"
-    ">>> 1 - sc.betainc(3.1, 2.2, 1 - 0.4)\n"
-    "0.49339638807619446")
-ufunc_betainc_loops[0] = loop_f_fff__As_fff_f
-ufunc_betainc_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_betainc_types[0] = NPY_FLOAT
-ufunc_betainc_types[1] = NPY_FLOAT
-ufunc_betainc_types[2] = NPY_FLOAT
-ufunc_betainc_types[3] = NPY_FLOAT
-ufunc_betainc_types[4] = NPY_DOUBLE
-ufunc_betainc_types[5] = NPY_DOUBLE
-ufunc_betainc_types[6] = NPY_DOUBLE
-ufunc_betainc_types[7] = NPY_DOUBLE
-ufunc_betainc_ptr[2*0] = scipy.special._ufuncs_cxx._export_ibeta_float
-ufunc_betainc_ptr[2*0+1] = ("betainc")
-ufunc_betainc_ptr[2*1] = scipy.special._ufuncs_cxx._export_ibeta_double
-ufunc_betainc_ptr[2*1+1] = ("betainc")
-ufunc_betainc_data[0] = &ufunc_betainc_ptr[2*0]
-ufunc_betainc_data[1] = &ufunc_betainc_ptr[2*1]
-betainc = np.PyUFunc_FromFuncAndData(ufunc_betainc_loops, ufunc_betainc_data, ufunc_betainc_types, 2, 3, 1, 0, "betainc", ufunc_betainc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_betaincc_loops[2]
-cdef void *ufunc_betaincc_ptr[4]
-cdef void *ufunc_betaincc_data[2]
-cdef char ufunc_betaincc_types[8]
-cdef char *ufunc_betaincc_doc = (
-    "betaincc(a, b, x, out=None)\n"
-    "\n"
-    "Complement of the regularized incomplete beta function.\n"
-    "\n"
-    "Computes the complement of the regularized incomplete beta function,\n"
-    "defined as [1]_:\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    \\bar{I}_x(a, b) = 1 - I_x(a, b)\n"
-    "                    = 1 - \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)} \\int_0^x\n"
-    "                              t^{a-1}(1-t)^{b-1}dt,\n"
-    "\n"
-    "for :math:`0 \\leq x \\leq 1`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a, b : array_like\n"
-    "       Positive, real-valued parameters\n"
-    "x : array_like\n"
-    "    Real-valued such that :math:`0 \\leq x \\leq 1`,\n"
-    "    the upper limit of integration\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Value of the regularized incomplete beta function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "betainc : regularized incomplete beta function\n"
-    "betaincinv : inverse of the regularized incomplete beta function\n"
-    "betainccinv :\n"
-    "    inverse of the complement of the regularized incomplete beta function\n"
-    "beta : beta function\n"
-    "scipy.stats.beta : beta distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    ".. versionadded:: 1.11.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] NIST Digital Library of Mathematical Functions\n"
-    "       https://dlmf.nist.gov/8.17\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import betaincc, betainc\n"
-    "\n"
-    "The naive calculation ``1 - betainc(a, b, x)`` loses precision when\n"
-    "the values of ``betainc(a, b, x)`` are close to 1:\n"
-    "\n"
-    ">>> 1 - betainc(0.5, 8, [0.9, 0.99, 0.999])\n"
-    "array([2.0574632e-09, 0.0000000e+00, 0.0000000e+00])\n"
-    "\n"
-    "By using ``betaincc``, we get the correct values:\n"
-    "\n"
-    ">>> betaincc(0.5, 8, [0.9, 0.99, 0.999])\n"
-    "array([2.05746321e-09, 1.97259354e-17, 1.96467954e-25])")
-ufunc_betaincc_loops[0] = loop_f_fff__As_fff_f
-ufunc_betaincc_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_betaincc_types[0] = NPY_FLOAT
-ufunc_betaincc_types[1] = NPY_FLOAT
-ufunc_betaincc_types[2] = NPY_FLOAT
-ufunc_betaincc_types[3] = NPY_FLOAT
-ufunc_betaincc_types[4] = NPY_DOUBLE
-ufunc_betaincc_types[5] = NPY_DOUBLE
-ufunc_betaincc_types[6] = NPY_DOUBLE
-ufunc_betaincc_types[7] = NPY_DOUBLE
-ufunc_betaincc_ptr[2*0] = scipy.special._ufuncs_cxx._export_ibetac_float
-ufunc_betaincc_ptr[2*0+1] = ("betaincc")
-ufunc_betaincc_ptr[2*1] = scipy.special._ufuncs_cxx._export_ibetac_double
-ufunc_betaincc_ptr[2*1+1] = ("betaincc")
-ufunc_betaincc_data[0] = &ufunc_betaincc_ptr[2*0]
-ufunc_betaincc_data[1] = &ufunc_betaincc_ptr[2*1]
-betaincc = np.PyUFunc_FromFuncAndData(ufunc_betaincc_loops, ufunc_betaincc_data, ufunc_betaincc_types, 2, 3, 1, 0, "betaincc", ufunc_betaincc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_betainccinv_loops[2]
-cdef void *ufunc_betainccinv_ptr[4]
-cdef void *ufunc_betainccinv_data[2]
-cdef char ufunc_betainccinv_types[8]
-cdef char *ufunc_betainccinv_doc = (
-    "betainccinv(a, b, y, out=None)\n"
-    "\n"
-    "Inverse of the complemented regularized incomplete beta function.\n"
-    "\n"
-    "Computes :math:`x` such that:\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    y = 1 - I_x(a, b) = 1 - \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)}\n"
-    "    \\int_0^x t^{a-1}(1-t)^{b-1}dt,\n"
-    "\n"
-    "where :math:`I_x` is the normalized incomplete beta function `betainc`\n"
-    "and :math:`\\Gamma` is the `gamma` function [1]_.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a, b : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "y : array_like\n"
-    "    Real-valued input\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Value of the inverse of the regularized incomplete beta function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "betainc : regularized incomplete beta function\n"
-    "betaincc : complement of the regularized incomplete beta function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    ".. versionadded:: 1.11.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] NIST Digital Library of Mathematical Functions\n"
-    "       https://dlmf.nist.gov/8.17\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import betainccinv, betaincc\n"
-    "\n"
-    "This function is the inverse of `betaincc` for fixed\n"
-    "values of :math:`a` and :math:`b`.\n"
-    "\n"
-    ">>> a, b = 1.2, 3.1\n"
-    ">>> y = betaincc(a, b, 0.2)\n"
-    ">>> betainccinv(a, b, y)\n"
-    "0.2\n"
-    "\n"
-    ">>> a, b = 7, 2.5\n"
-    ">>> x = betainccinv(a, b, 0.875)\n"
-    ">>> betaincc(a, b, x)\n"
-    "0.875")
-ufunc_betainccinv_loops[0] = loop_f_fff__As_fff_f
-ufunc_betainccinv_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_betainccinv_types[0] = NPY_FLOAT
-ufunc_betainccinv_types[1] = NPY_FLOAT
-ufunc_betainccinv_types[2] = NPY_FLOAT
-ufunc_betainccinv_types[3] = NPY_FLOAT
-ufunc_betainccinv_types[4] = NPY_DOUBLE
-ufunc_betainccinv_types[5] = NPY_DOUBLE
-ufunc_betainccinv_types[6] = NPY_DOUBLE
-ufunc_betainccinv_types[7] = NPY_DOUBLE
-ufunc_betainccinv_ptr[2*0] = scipy.special._ufuncs_cxx._export_ibetac_inv_float
-ufunc_betainccinv_ptr[2*0+1] = ("betainccinv")
-ufunc_betainccinv_ptr[2*1] = scipy.special._ufuncs_cxx._export_ibetac_inv_double
-ufunc_betainccinv_ptr[2*1+1] = ("betainccinv")
-ufunc_betainccinv_data[0] = &ufunc_betainccinv_ptr[2*0]
-ufunc_betainccinv_data[1] = &ufunc_betainccinv_ptr[2*1]
-betainccinv = np.PyUFunc_FromFuncAndData(ufunc_betainccinv_loops, ufunc_betainccinv_data, ufunc_betainccinv_types, 2, 3, 1, 0, "betainccinv", ufunc_betainccinv_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_betaincinv_loops[2]
-cdef void *ufunc_betaincinv_ptr[4]
-cdef void *ufunc_betaincinv_data[2]
-cdef char ufunc_betaincinv_types[8]
-cdef char *ufunc_betaincinv_doc = (
-    "betaincinv(a, b, y, out=None)\n"
-    "\n"
-    "Inverse of the regularized incomplete beta function.\n"
-    "\n"
-    "Computes :math:`x` such that:\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    y = I_x(a, b) = \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)}\n"
-    "    \\int_0^x t^{a-1}(1-t)^{b-1}dt,\n"
-    "\n"
-    "where :math:`I_x` is the normalized incomplete beta function `betainc`\n"
-    "and :math:`\\Gamma` is the `gamma` function [1]_.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a, b : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "y : array_like\n"
-    "    Real-valued input\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Value of the inverse of the regularized incomplete beta function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "betainc : regularized incomplete beta function\n"
-    "gamma : gamma function\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] NIST Digital Library of Mathematical Functions\n"
-    "       https://dlmf.nist.gov/8.17\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "This function is the inverse of `betainc` for fixed\n"
-    "values of :math:`a` and :math:`b`.\n"
-    "\n"
-    ">>> a, b = 1.2, 3.1\n"
-    ">>> y = sc.betainc(a, b, 0.2)\n"
-    ">>> sc.betaincinv(a, b, y)\n"
-    "0.2\n"
-    ">>>\n"
-    ">>> a, b = 7.5, 0.4\n"
-    ">>> x = sc.betaincinv(a, b, 0.5)\n"
-    ">>> sc.betainc(a, b, x)\n"
-    "0.5")
-ufunc_betaincinv_loops[0] = loop_f_fff__As_fff_f
-ufunc_betaincinv_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_betaincinv_types[0] = NPY_FLOAT
-ufunc_betaincinv_types[1] = NPY_FLOAT
-ufunc_betaincinv_types[2] = NPY_FLOAT
-ufunc_betaincinv_types[3] = NPY_FLOAT
-ufunc_betaincinv_types[4] = NPY_DOUBLE
-ufunc_betaincinv_types[5] = NPY_DOUBLE
-ufunc_betaincinv_types[6] = NPY_DOUBLE
-ufunc_betaincinv_types[7] = NPY_DOUBLE
-ufunc_betaincinv_ptr[2*0] = scipy.special._ufuncs_cxx._export_ibeta_inv_float
-ufunc_betaincinv_ptr[2*0+1] = ("betaincinv")
-ufunc_betaincinv_ptr[2*1] = scipy.special._ufuncs_cxx._export_ibeta_inv_double
-ufunc_betaincinv_ptr[2*1+1] = ("betaincinv")
-ufunc_betaincinv_data[0] = &ufunc_betaincinv_ptr[2*0]
-ufunc_betaincinv_data[1] = &ufunc_betaincinv_ptr[2*1]
-betaincinv = np.PyUFunc_FromFuncAndData(ufunc_betaincinv_loops, ufunc_betaincinv_data, ufunc_betaincinv_types, 2, 3, 1, 0, "betaincinv", ufunc_betaincinv_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_betaln_loops[2]
-cdef void *ufunc_betaln_ptr[4]
-cdef void *ufunc_betaln_data[2]
-cdef char ufunc_betaln_types[6]
-cdef char *ufunc_betaln_doc = (
-    "betaln(a, b, out=None)\n"
-    "\n"
-    "Natural logarithm of absolute value of beta function.\n"
-    "\n"
-    "Computes ``ln(abs(beta(a, b)))``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a, b : array_like\n"
-    "    Positive, real-valued parameters\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Value of the betaln function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gamma : the gamma function\n"
-    "betainc :  the regularized incomplete beta function\n"
-    "beta : the beta function\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import betaln, beta\n"
-    "\n"
-    "Verify that, for moderate values of ``a`` and ``b``, ``betaln(a, b)``\n"
-    "is the same as ``log(beta(a, b))``:\n"
-    "\n"
-    ">>> betaln(3, 4)\n"
-    "-4.0943445622221\n"
-    "\n"
-    ">>> np.log(beta(3, 4))\n"
-    "-4.0943445622221\n"
-    "\n"
-    "In the following ``beta(a, b)`` underflows to 0, so we can't compute\n"
-    "the logarithm of the actual value.\n"
-    "\n"
-    ">>> a = 400\n"
-    ">>> b = 900\n"
-    ">>> beta(a, b)\n"
-    "0.0\n"
-    "\n"
-    "We can compute the logarithm of ``beta(a, b)`` by using `betaln`:\n"
-    "\n"
-    ">>> betaln(a, b)\n"
-    "-804.3069951764146")
-ufunc_betaln_loops[0] = loop_d_dd__As_ff_f
-ufunc_betaln_loops[1] = loop_d_dd__As_dd_d
-ufunc_betaln_types[0] = NPY_FLOAT
-ufunc_betaln_types[1] = NPY_FLOAT
-ufunc_betaln_types[2] = NPY_FLOAT
-ufunc_betaln_types[3] = NPY_DOUBLE
-ufunc_betaln_types[4] = NPY_DOUBLE
-ufunc_betaln_types[5] = NPY_DOUBLE
-ufunc_betaln_ptr[2*0] = _func_cephes_lbeta
-ufunc_betaln_ptr[2*0+1] = ("betaln")
-ufunc_betaln_ptr[2*1] = _func_cephes_lbeta
-ufunc_betaln_ptr[2*1+1] = ("betaln")
-ufunc_betaln_data[0] = &ufunc_betaln_ptr[2*0]
-ufunc_betaln_data[1] = &ufunc_betaln_ptr[2*1]
-betaln = np.PyUFunc_FromFuncAndData(ufunc_betaln_loops, ufunc_betaln_data, ufunc_betaln_types, 2, 2, 1, 0, "betaln", ufunc_betaln_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_boxcox_loops[2]
-cdef void *ufunc_boxcox_ptr[4]
-cdef void *ufunc_boxcox_data[2]
-cdef char ufunc_boxcox_types[6]
-cdef char *ufunc_boxcox_doc = (
-    "boxcox(x, lmbda, out=None)\n"
-    "\n"
-    "Compute the Box-Cox transformation.\n"
-    "\n"
-    "The Box-Cox transformation is::\n"
-    "\n"
-    "    y = (x**lmbda - 1) / lmbda  if lmbda != 0\n"
-    "        log(x)                  if lmbda == 0\n"
-    "\n"
-    "Returns `nan` if ``x < 0``.\n"
-    "Returns `-inf` if ``x == 0`` and ``lmbda < 0``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Data to be transformed.\n"
-    "lmbda : array_like\n"
-    "    Power parameter of the Box-Cox transform.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "y : scalar or ndarray\n"
-    "    Transformed data.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "\n"
-    ".. versionadded:: 0.14.0\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import boxcox\n"
-    ">>> boxcox([1, 4, 10], 2.5)\n"
-    "array([   0.        ,   12.4       ,  126.09110641])\n"
-    ">>> boxcox(2, [0, 1, 2])\n"
-    "array([ 0.69314718,  1.        ,  1.5       ])")
-ufunc_boxcox_loops[0] = loop_d_dd__As_ff_f
-ufunc_boxcox_loops[1] = loop_d_dd__As_dd_d
-ufunc_boxcox_types[0] = NPY_FLOAT
-ufunc_boxcox_types[1] = NPY_FLOAT
-ufunc_boxcox_types[2] = NPY_FLOAT
-ufunc_boxcox_types[3] = NPY_DOUBLE
-ufunc_boxcox_types[4] = NPY_DOUBLE
-ufunc_boxcox_types[5] = NPY_DOUBLE
-ufunc_boxcox_ptr[2*0] = _func_boxcox
-ufunc_boxcox_ptr[2*0+1] = ("boxcox")
-ufunc_boxcox_ptr[2*1] = _func_boxcox
-ufunc_boxcox_ptr[2*1+1] = ("boxcox")
-ufunc_boxcox_data[0] = &ufunc_boxcox_ptr[2*0]
-ufunc_boxcox_data[1] = &ufunc_boxcox_ptr[2*1]
-boxcox = np.PyUFunc_FromFuncAndData(ufunc_boxcox_loops, ufunc_boxcox_data, ufunc_boxcox_types, 2, 2, 1, 0, "boxcox", ufunc_boxcox_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_boxcox1p_loops[2]
-cdef void *ufunc_boxcox1p_ptr[4]
-cdef void *ufunc_boxcox1p_data[2]
-cdef char ufunc_boxcox1p_types[6]
-cdef char *ufunc_boxcox1p_doc = (
-    "boxcox1p(x, lmbda, out=None)\n"
-    "\n"
-    "Compute the Box-Cox transformation of 1 + `x`.\n"
-    "\n"
-    "The Box-Cox transformation computed by `boxcox1p` is::\n"
-    "\n"
-    "    y = ((1+x)**lmbda - 1) / lmbda  if lmbda != 0\n"
-    "        log(1+x)                    if lmbda == 0\n"
-    "\n"
-    "Returns `nan` if ``x < -1``.\n"
-    "Returns `-inf` if ``x == -1`` and ``lmbda < 0``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Data to be transformed.\n"
-    "lmbda : array_like\n"
-    "    Power parameter of the Box-Cox transform.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "y : scalar or ndarray\n"
-    "    Transformed data.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "\n"
-    ".. versionadded:: 0.14.0\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import boxcox1p\n"
-    ">>> boxcox1p(1e-4, [0, 0.5, 1])\n"
-    "array([  9.99950003e-05,   9.99975001e-05,   1.00000000e-04])\n"
-    ">>> boxcox1p([0.01, 0.1], 0.25)\n"
-    "array([ 0.00996272,  0.09645476])")
-ufunc_boxcox1p_loops[0] = loop_d_dd__As_ff_f
-ufunc_boxcox1p_loops[1] = loop_d_dd__As_dd_d
-ufunc_boxcox1p_types[0] = NPY_FLOAT
-ufunc_boxcox1p_types[1] = NPY_FLOAT
-ufunc_boxcox1p_types[2] = NPY_FLOAT
-ufunc_boxcox1p_types[3] = NPY_DOUBLE
-ufunc_boxcox1p_types[4] = NPY_DOUBLE
-ufunc_boxcox1p_types[5] = NPY_DOUBLE
-ufunc_boxcox1p_ptr[2*0] = _func_boxcox1p
-ufunc_boxcox1p_ptr[2*0+1] = ("boxcox1p")
-ufunc_boxcox1p_ptr[2*1] = _func_boxcox1p
-ufunc_boxcox1p_ptr[2*1+1] = ("boxcox1p")
-ufunc_boxcox1p_data[0] = &ufunc_boxcox1p_ptr[2*0]
-ufunc_boxcox1p_data[1] = &ufunc_boxcox1p_ptr[2*1]
-boxcox1p = np.PyUFunc_FromFuncAndData(ufunc_boxcox1p_loops, ufunc_boxcox1p_data, ufunc_boxcox1p_types, 2, 2, 1, 0, "boxcox1p", ufunc_boxcox1p_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_btdtr_loops[2]
-cdef void *ufunc_btdtr_ptr[4]
-cdef void *ufunc_btdtr_data[2]
-cdef char ufunc_btdtr_types[8]
-cdef char *ufunc_btdtr_doc = (
-    "btdtr(a, b, x, out=None)\n"
-    "\n"
-    "Cumulative distribution function of the beta distribution.\n"
-    "\n"
-    "Returns the integral from zero to `x` of the beta probability density\n"
-    "function,\n"
-    "\n"
-    ".. math::\n"
-    "    I = \\int_0^x \\frac{\\Gamma(a + b)}{\\Gamma(a)\\Gamma(b)} t^{a-1} (1-t)^{b-1}\\,dt\n"
-    "\n"
-    "where :math:`\\Gamma` is the gamma function.\n"
-    "\n"
-    ".. deprecated:: 1.12.0\n"
-    "    This function is deprecated and will be removed from SciPy 1.14.0.\n"
-    "    Use `scipy.special.betainc` instead.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    Shape parameter (a > 0).\n"
-    "b : array_like\n"
-    "    Shape parameter (b > 0).\n"
-    "x : array_like\n"
-    "    Upper limit of integration, in [0, 1].\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "I : scalar or ndarray\n"
-    "    Cumulative distribution function of the beta distribution with\n"
-    "    parameters `a` and `b` at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "betainc\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "This function is identical to the incomplete beta integral function\n"
-    "`betainc`.\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `btdtr`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/")
-ufunc_btdtr_loops[0] = loop_d_ddd__As_fff_f
-ufunc_btdtr_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_btdtr_types[0] = NPY_FLOAT
-ufunc_btdtr_types[1] = NPY_FLOAT
-ufunc_btdtr_types[2] = NPY_FLOAT
-ufunc_btdtr_types[3] = NPY_FLOAT
-ufunc_btdtr_types[4] = NPY_DOUBLE
-ufunc_btdtr_types[5] = NPY_DOUBLE
-ufunc_btdtr_types[6] = NPY_DOUBLE
-ufunc_btdtr_types[7] = NPY_DOUBLE
-ufunc_btdtr_ptr[2*0] = _func_cephes_btdtr
-ufunc_btdtr_ptr[2*0+1] = ("btdtr")
-ufunc_btdtr_ptr[2*1] = _func_cephes_btdtr
-ufunc_btdtr_ptr[2*1+1] = ("btdtr")
-ufunc_btdtr_data[0] = &ufunc_btdtr_ptr[2*0]
-ufunc_btdtr_data[1] = &ufunc_btdtr_ptr[2*1]
-btdtr = np.PyUFunc_FromFuncAndData(ufunc_btdtr_loops, ufunc_btdtr_data, ufunc_btdtr_types, 2, 3, 1, 0, "btdtr", ufunc_btdtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_btdtri_loops[2]
-cdef void *ufunc_btdtri_ptr[4]
-cdef void *ufunc_btdtri_data[2]
-cdef char ufunc_btdtri_types[8]
-cdef char *ufunc_btdtri_doc = (
-    "btdtri(a, b, p, out=None)\n"
-    "\n"
-    "The `p`-th quantile of the beta distribution.\n"
-    "\n"
-    "This function is the inverse of the beta cumulative distribution function,\n"
-    "`btdtr`, returning the value of `x` for which `btdtr(a, b, x) = p`, or\n"
-    "\n"
-    ".. math::\n"
-    "    p = \\int_0^x \\frac{\\Gamma(a + b)}{\\Gamma(a)\\Gamma(b)} t^{a-1} (1-t)^{b-1}\\,dt\n"
-    "\n"
-    ".. deprecated:: 1.12.0\n"
-    "    This function is deprecated and will be removed from SciPy 1.14.0.\n"
-    "    Use `scipy.special.betaincinv` instead.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    Shape parameter (`a` > 0).\n"
-    "b : array_like\n"
-    "    Shape parameter (`b` > 0).\n"
-    "p : array_like\n"
-    "    Cumulative probability, in [0, 1].\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "x : scalar or ndarray\n"
-    "    The quantile corresponding to `p`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "betaincinv\n"
-    "btdtr\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The value of `x` is found by interval halving or Newton iterations.\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `incbi`, which solves the equivalent\n"
-    "problem of finding the inverse of the incomplete beta integral.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/")
-ufunc_btdtri_loops[0] = loop_d_ddd__As_fff_f
-ufunc_btdtri_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_btdtri_types[0] = NPY_FLOAT
-ufunc_btdtri_types[1] = NPY_FLOAT
-ufunc_btdtri_types[2] = NPY_FLOAT
-ufunc_btdtri_types[3] = NPY_FLOAT
-ufunc_btdtri_types[4] = NPY_DOUBLE
-ufunc_btdtri_types[5] = NPY_DOUBLE
-ufunc_btdtri_types[6] = NPY_DOUBLE
-ufunc_btdtri_types[7] = NPY_DOUBLE
-ufunc_btdtri_ptr[2*0] = _func_cephes_btdtri
-ufunc_btdtri_ptr[2*0+1] = ("btdtri")
-ufunc_btdtri_ptr[2*1] = _func_cephes_btdtri
-ufunc_btdtri_ptr[2*1+1] = ("btdtri")
-ufunc_btdtri_data[0] = &ufunc_btdtri_ptr[2*0]
-ufunc_btdtri_data[1] = &ufunc_btdtri_ptr[2*1]
-btdtri = np.PyUFunc_FromFuncAndData(ufunc_btdtri_loops, ufunc_btdtri_data, ufunc_btdtri_types, 2, 3, 1, 0, "btdtri", ufunc_btdtri_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_btdtria_loops[2]
-cdef void *ufunc_btdtria_ptr[4]
-cdef void *ufunc_btdtria_data[2]
-cdef char ufunc_btdtria_types[8]
-cdef char *ufunc_btdtria_doc = (
-    "btdtria(p, b, x, out=None)\n"
-    "\n"
-    "Inverse of `btdtr` with respect to `a`.\n"
-    "\n"
-    "This is the inverse of the beta cumulative distribution function, `btdtr`,\n"
-    "considered as a function of `a`, returning the value of `a` for which\n"
-    "`btdtr(a, b, x) = p`, or\n"
-    "\n"
-    ".. math::\n"
-    "    p = \\int_0^x \\frac{\\Gamma(a + b)}{\\Gamma(a)\\Gamma(b)} t^{a-1} (1-t)^{b-1}\\,dt\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    Cumulative probability, in [0, 1].\n"
-    "b : array_like\n"
-    "    Shape parameter (`b` > 0).\n"
-    "x : array_like\n"
-    "    The quantile, in [0, 1].\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "a : scalar or ndarray\n"
-    "    The value of the shape parameter `a` such that `btdtr(a, b, x) = p`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "btdtr : Cumulative distribution function of the beta distribution.\n"
-    "btdtri : Inverse with respect to `x`.\n"
-    "btdtrib : Inverse with respect to `b`.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the CDFLIB [1]_ Fortran routine `cdfbet`.\n"
-    "\n"
-    "The cumulative distribution function `p` is computed using a routine by\n"
-    "DiDinato and Morris [2]_. Computation of `a` involves a search for a value\n"
-    "that produces the desired value of `p`. The search relies on the\n"
-    "monotonicity of `p` with `a`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
-    "       CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
-    "       Functions, Inverses, and Other Parameters.\n"
-    ".. [2] DiDinato, A. R. and Morris, A. H.,\n"
-    "       Algorithm 708: Significant Digit Computation of the Incomplete Beta\n"
-    "       Function Ratios. ACM Trans. Math. Softw. 18 (1993), 360-373.")
-ufunc_btdtria_loops[0] = loop_d_ddd__As_fff_f
-ufunc_btdtria_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_btdtria_types[0] = NPY_FLOAT
-ufunc_btdtria_types[1] = NPY_FLOAT
-ufunc_btdtria_types[2] = NPY_FLOAT
-ufunc_btdtria_types[3] = NPY_FLOAT
-ufunc_btdtria_types[4] = NPY_DOUBLE
-ufunc_btdtria_types[5] = NPY_DOUBLE
-ufunc_btdtria_types[6] = NPY_DOUBLE
-ufunc_btdtria_types[7] = NPY_DOUBLE
-ufunc_btdtria_ptr[2*0] = _func_btdtria
-ufunc_btdtria_ptr[2*0+1] = ("btdtria")
-ufunc_btdtria_ptr[2*1] = _func_btdtria
-ufunc_btdtria_ptr[2*1+1] = ("btdtria")
-ufunc_btdtria_data[0] = &ufunc_btdtria_ptr[2*0]
-ufunc_btdtria_data[1] = &ufunc_btdtria_ptr[2*1]
-btdtria = np.PyUFunc_FromFuncAndData(ufunc_btdtria_loops, ufunc_btdtria_data, ufunc_btdtria_types, 2, 3, 1, 0, "btdtria", ufunc_btdtria_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_btdtrib_loops[2]
-cdef void *ufunc_btdtrib_ptr[4]
-cdef void *ufunc_btdtrib_data[2]
-cdef char ufunc_btdtrib_types[8]
-cdef char *ufunc_btdtrib_doc = (
-    "btdtria(a, p, x, out=None)\n"
-    "\n"
-    "Inverse of `btdtr` with respect to `b`.\n"
-    "\n"
-    "This is the inverse of the beta cumulative distribution function, `btdtr`,\n"
-    "considered as a function of `b`, returning the value of `b` for which\n"
-    "`btdtr(a, b, x) = p`, or\n"
-    "\n"
-    ".. math::\n"
-    "    p = \\int_0^x \\frac{\\Gamma(a + b)}{\\Gamma(a)\\Gamma(b)} t^{a-1} (1-t)^{b-1}\\,dt\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    Shape parameter (`a` > 0).\n"
-    "p : array_like\n"
-    "    Cumulative probability, in [0, 1].\n"
-    "x : array_like\n"
-    "    The quantile, in [0, 1].\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "b : scalar or ndarray\n"
-    "    The value of the shape parameter `b` such that `btdtr(a, b, x) = p`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "btdtr : Cumulative distribution function of the beta distribution.\n"
-    "btdtri : Inverse with respect to `x`.\n"
-    "btdtria : Inverse with respect to `a`.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the CDFLIB [1]_ Fortran routine `cdfbet`.\n"
-    "\n"
-    "The cumulative distribution function `p` is computed using a routine by\n"
-    "DiDinato and Morris [2]_. Computation of `b` involves a search for a value\n"
-    "that produces the desired value of `p`. The search relies on the\n"
-    "monotonicity of `p` with `b`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
-    "       CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
-    "       Functions, Inverses, and Other Parameters.\n"
-    ".. [2] DiDinato, A. R. and Morris, A. H.,\n"
-    "       Algorithm 708: Significant Digit Computation of the Incomplete Beta\n"
-    "       Function Ratios. ACM Trans. Math. Softw. 18 (1993), 360-373.")
-ufunc_btdtrib_loops[0] = loop_d_ddd__As_fff_f
-ufunc_btdtrib_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_btdtrib_types[0] = NPY_FLOAT
-ufunc_btdtrib_types[1] = NPY_FLOAT
-ufunc_btdtrib_types[2] = NPY_FLOAT
-ufunc_btdtrib_types[3] = NPY_FLOAT
-ufunc_btdtrib_types[4] = NPY_DOUBLE
-ufunc_btdtrib_types[5] = NPY_DOUBLE
-ufunc_btdtrib_types[6] = NPY_DOUBLE
-ufunc_btdtrib_types[7] = NPY_DOUBLE
-ufunc_btdtrib_ptr[2*0] = _func_btdtrib
-ufunc_btdtrib_ptr[2*0+1] = ("btdtrib")
-ufunc_btdtrib_ptr[2*1] = _func_btdtrib
-ufunc_btdtrib_ptr[2*1+1] = ("btdtrib")
-ufunc_btdtrib_data[0] = &ufunc_btdtrib_ptr[2*0]
-ufunc_btdtrib_data[1] = &ufunc_btdtrib_ptr[2*1]
-btdtrib = np.PyUFunc_FromFuncAndData(ufunc_btdtrib_loops, ufunc_btdtrib_data, ufunc_btdtrib_types, 2, 3, 1, 0, "btdtrib", ufunc_btdtrib_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_cbrt_loops[2]
-cdef void *ufunc_cbrt_ptr[4]
-cdef void *ufunc_cbrt_data[2]
-cdef char ufunc_cbrt_types[4]
-cdef char *ufunc_cbrt_doc = (
-    "cbrt(x, out=None)\n"
-    "\n"
-    "Element-wise cube root of `x`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    `x` must contain real numbers.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The cube root of each value in `x`.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import cbrt\n"
-    "\n"
-    ">>> cbrt(8)\n"
-    "2.0\n"
-    ">>> cbrt([-8, -3, 0.125, 1.331])\n"
-    "array([-2.        , -1.44224957,  0.5       ,  1.1       ])")
-ufunc_cbrt_loops[0] = loop_d_d__As_f_f
-ufunc_cbrt_loops[1] = loop_d_d__As_d_d
-ufunc_cbrt_types[0] = NPY_FLOAT
-ufunc_cbrt_types[1] = NPY_FLOAT
-ufunc_cbrt_types[2] = NPY_DOUBLE
-ufunc_cbrt_types[3] = NPY_DOUBLE
-ufunc_cbrt_ptr[2*0] = _func_cephes_cbrt
-ufunc_cbrt_ptr[2*0+1] = ("cbrt")
-ufunc_cbrt_ptr[2*1] = _func_cephes_cbrt
-ufunc_cbrt_ptr[2*1+1] = ("cbrt")
-ufunc_cbrt_data[0] = &ufunc_cbrt_ptr[2*0]
-ufunc_cbrt_data[1] = &ufunc_cbrt_ptr[2*1]
-cbrt = np.PyUFunc_FromFuncAndData(ufunc_cbrt_loops, ufunc_cbrt_data, ufunc_cbrt_types, 2, 1, 1, 0, "cbrt", ufunc_cbrt_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_chdtr_loops[2]
-cdef void *ufunc_chdtr_ptr[4]
-cdef void *ufunc_chdtr_data[2]
-cdef char ufunc_chdtr_types[6]
-cdef char *ufunc_chdtr_doc = (
-    "chdtr(v, x, out=None)\n"
-    "\n"
-    "Chi square cumulative distribution function.\n"
-    "\n"
-    "Returns the area under the left tail (from 0 to `x`) of the Chi\n"
-    "square probability density function with `v` degrees of freedom:\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    \\frac{1}{2^{v/2} \\Gamma(v/2)} \\int_0^x t^{v/2 - 1} e^{-t/2} dt\n"
-    "\n"
-    "Here :math:`\\Gamma` is the Gamma function; see `gamma`. This\n"
-    "integral can be expressed in terms of the regularized lower\n"
-    "incomplete gamma function `gammainc` as\n"
-    "``gammainc(v / 2, x / 2)``. [1]_\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v : array_like\n"
-    "    Degrees of freedom.\n"
-    "x : array_like\n"
-    "    Upper bound of the integral.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the cumulative distribution function.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "chdtrc, chdtri, chdtriv, gammainc\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Chi-Square distribution,\n"
-    "    https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It can be expressed in terms of the regularized lower incomplete\n"
-    "gamma function.\n"
-    "\n"
-    ">>> v = 1\n"
-    ">>> x = np.arange(4)\n"
-    ">>> sc.chdtr(v, x)\n"
-    "array([0.        , 0.68268949, 0.84270079, 0.91673548])\n"
-    ">>> sc.gammainc(v / 2, x / 2)\n"
-    "array([0.        , 0.68268949, 0.84270079, 0.91673548])")
-ufunc_chdtr_loops[0] = loop_d_dd__As_ff_f
-ufunc_chdtr_loops[1] = loop_d_dd__As_dd_d
-ufunc_chdtr_types[0] = NPY_FLOAT
-ufunc_chdtr_types[1] = NPY_FLOAT
-ufunc_chdtr_types[2] = NPY_FLOAT
-ufunc_chdtr_types[3] = NPY_DOUBLE
-ufunc_chdtr_types[4] = NPY_DOUBLE
-ufunc_chdtr_types[5] = NPY_DOUBLE
-ufunc_chdtr_ptr[2*0] = _func_cephes_chdtr
-ufunc_chdtr_ptr[2*0+1] = ("chdtr")
-ufunc_chdtr_ptr[2*1] = _func_cephes_chdtr
-ufunc_chdtr_ptr[2*1+1] = ("chdtr")
-ufunc_chdtr_data[0] = &ufunc_chdtr_ptr[2*0]
-ufunc_chdtr_data[1] = &ufunc_chdtr_ptr[2*1]
-chdtr = np.PyUFunc_FromFuncAndData(ufunc_chdtr_loops, ufunc_chdtr_data, ufunc_chdtr_types, 2, 2, 1, 0, "chdtr", ufunc_chdtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_chdtrc_loops[2]
-cdef void *ufunc_chdtrc_ptr[4]
-cdef void *ufunc_chdtrc_data[2]
-cdef char ufunc_chdtrc_types[6]
-cdef char *ufunc_chdtrc_doc = (
-    "chdtrc(v, x, out=None)\n"
-    "\n"
-    "Chi square survival function.\n"
-    "\n"
-    "Returns the area under the right hand tail (from `x` to infinity)\n"
-    "of the Chi square probability density function with `v` degrees of\n"
-    "freedom:\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    \\frac{1}{2^{v/2} \\Gamma(v/2)} \\int_x^\\infty t^{v/2 - 1} e^{-t/2} dt\n"
-    "\n"
-    "Here :math:`\\Gamma` is the Gamma function; see `gamma`. This\n"
-    "integral can be expressed in terms of the regularized upper\n"
-    "incomplete gamma function `gammaincc` as\n"
-    "``gammaincc(v / 2, x / 2)``. [1]_\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v : array_like\n"
-    "    Degrees of freedom.\n"
-    "x : array_like\n"
-    "    Lower bound of the integral.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the survival function.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "chdtr, chdtri, chdtriv, gammaincc\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Chi-Square distribution,\n"
-    "    https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It can be expressed in terms of the regularized upper incomplete\n"
-    "gamma function.\n"
-    "\n"
-    ">>> v = 1\n"
-    ">>> x = np.arange(4)\n"
-    ">>> sc.chdtrc(v, x)\n"
-    "array([1.        , 0.31731051, 0.15729921, 0.08326452])\n"
-    ">>> sc.gammaincc(v / 2, x / 2)\n"
-    "array([1.        , 0.31731051, 0.15729921, 0.08326452])")
-ufunc_chdtrc_loops[0] = loop_d_dd__As_ff_f
-ufunc_chdtrc_loops[1] = loop_d_dd__As_dd_d
-ufunc_chdtrc_types[0] = NPY_FLOAT
-ufunc_chdtrc_types[1] = NPY_FLOAT
-ufunc_chdtrc_types[2] = NPY_FLOAT
-ufunc_chdtrc_types[3] = NPY_DOUBLE
-ufunc_chdtrc_types[4] = NPY_DOUBLE
-ufunc_chdtrc_types[5] = NPY_DOUBLE
-ufunc_chdtrc_ptr[2*0] = _func_cephes_chdtrc
-ufunc_chdtrc_ptr[2*0+1] = ("chdtrc")
-ufunc_chdtrc_ptr[2*1] = _func_cephes_chdtrc
-ufunc_chdtrc_ptr[2*1+1] = ("chdtrc")
-ufunc_chdtrc_data[0] = &ufunc_chdtrc_ptr[2*0]
-ufunc_chdtrc_data[1] = &ufunc_chdtrc_ptr[2*1]
-chdtrc = np.PyUFunc_FromFuncAndData(ufunc_chdtrc_loops, ufunc_chdtrc_data, ufunc_chdtrc_types, 2, 2, 1, 0, "chdtrc", ufunc_chdtrc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_chdtri_loops[2]
-cdef void *ufunc_chdtri_ptr[4]
-cdef void *ufunc_chdtri_data[2]
-cdef char ufunc_chdtri_types[6]
-cdef char *ufunc_chdtri_doc = (
-    "chdtri(v, p, out=None)\n"
-    "\n"
-    "Inverse to `chdtrc` with respect to `x`.\n"
-    "\n"
-    "Returns `x` such that ``chdtrc(v, x) == p``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v : array_like\n"
-    "    Degrees of freedom.\n"
-    "p : array_like\n"
-    "    Probability.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "x : scalar or ndarray\n"
-    "    Value so that the probability a Chi square random variable\n"
-    "    with `v` degrees of freedom is greater than `x` equals `p`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "chdtrc, chdtr, chdtriv\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Chi-Square distribution,\n"
-    "    https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It inverts `chdtrc`.\n"
-    "\n"
-    ">>> v, p = 1, 0.3\n"
-    ">>> sc.chdtrc(v, sc.chdtri(v, p))\n"
-    "0.3\n"
-    ">>> x = 1\n"
-    ">>> sc.chdtri(v, sc.chdtrc(v, x))\n"
-    "1.0")
-ufunc_chdtri_loops[0] = loop_d_dd__As_ff_f
-ufunc_chdtri_loops[1] = loop_d_dd__As_dd_d
-ufunc_chdtri_types[0] = NPY_FLOAT
-ufunc_chdtri_types[1] = NPY_FLOAT
-ufunc_chdtri_types[2] = NPY_FLOAT
-ufunc_chdtri_types[3] = NPY_DOUBLE
-ufunc_chdtri_types[4] = NPY_DOUBLE
-ufunc_chdtri_types[5] = NPY_DOUBLE
-ufunc_chdtri_ptr[2*0] = _func_cephes_chdtri
-ufunc_chdtri_ptr[2*0+1] = ("chdtri")
-ufunc_chdtri_ptr[2*1] = _func_cephes_chdtri
-ufunc_chdtri_ptr[2*1+1] = ("chdtri")
-ufunc_chdtri_data[0] = &ufunc_chdtri_ptr[2*0]
-ufunc_chdtri_data[1] = &ufunc_chdtri_ptr[2*1]
-chdtri = np.PyUFunc_FromFuncAndData(ufunc_chdtri_loops, ufunc_chdtri_data, ufunc_chdtri_types, 2, 2, 1, 0, "chdtri", ufunc_chdtri_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_chdtriv_loops[2]
-cdef void *ufunc_chdtriv_ptr[4]
-cdef void *ufunc_chdtriv_data[2]
-cdef char ufunc_chdtriv_types[6]
-cdef char *ufunc_chdtriv_doc = (
-    "chdtriv(p, x, out=None)\n"
-    "\n"
-    "Inverse to `chdtr` with respect to `v`.\n"
-    "\n"
-    "Returns `v` such that ``chdtr(v, x) == p``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    Probability that the Chi square random variable is less than\n"
-    "    or equal to `x`.\n"
-    "x : array_like\n"
-    "    Nonnegative input.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Degrees of freedom.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "chdtr, chdtrc, chdtri\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Chi-Square distribution,\n"
-    "    https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It inverts `chdtr`.\n"
-    "\n"
-    ">>> p, x = 0.5, 1\n"
-    ">>> sc.chdtr(sc.chdtriv(p, x), x)\n"
-    "0.5000000000202172\n"
-    ">>> v = 1\n"
-    ">>> sc.chdtriv(sc.chdtr(v, x), v)\n"
-    "1.0000000000000013")
-ufunc_chdtriv_loops[0] = loop_d_dd__As_ff_f
-ufunc_chdtriv_loops[1] = loop_d_dd__As_dd_d
-ufunc_chdtriv_types[0] = NPY_FLOAT
-ufunc_chdtriv_types[1] = NPY_FLOAT
-ufunc_chdtriv_types[2] = NPY_FLOAT
-ufunc_chdtriv_types[3] = NPY_DOUBLE
-ufunc_chdtriv_types[4] = NPY_DOUBLE
-ufunc_chdtriv_types[5] = NPY_DOUBLE
-ufunc_chdtriv_ptr[2*0] = _func_chdtriv
-ufunc_chdtriv_ptr[2*0+1] = ("chdtriv")
-ufunc_chdtriv_ptr[2*1] = _func_chdtriv
-ufunc_chdtriv_ptr[2*1+1] = ("chdtriv")
-ufunc_chdtriv_data[0] = &ufunc_chdtriv_ptr[2*0]
-ufunc_chdtriv_data[1] = &ufunc_chdtriv_ptr[2*1]
-chdtriv = np.PyUFunc_FromFuncAndData(ufunc_chdtriv_loops, ufunc_chdtriv_data, ufunc_chdtriv_types, 2, 2, 1, 0, "chdtriv", ufunc_chdtriv_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_chndtr_loops[2]
-cdef void *ufunc_chndtr_ptr[4]
-cdef void *ufunc_chndtr_data[2]
-cdef char ufunc_chndtr_types[8]
-cdef char *ufunc_chndtr_doc = (
-    "chndtr(x, df, nc, out=None)\n"
-    "\n"
-    "Non-central chi square cumulative distribution function\n"
-    "\n"
-    "The cumulative distribution function is given by:\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    P(\\chi^{\\prime 2} \\vert \\nu, \\lambda) =\\sum_{j=0}^{\\infty}\n"
-    "    e^{-\\lambda /2}\n"
-    "    \\frac{(\\lambda /2)^j}{j!} P(\\chi^{\\prime 2} \\vert \\nu + 2j),\n"
-    "\n"
-    "where :math:`\\nu > 0` is the degrees of freedom (``df``) and\n"
-    ":math:`\\lambda \\geq 0` is the non-centrality parameter (``nc``).\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Upper bound of the integral; must satisfy ``x >= 0``\n"
-    "df : array_like\n"
-    "    Degrees of freedom; must satisfy ``df > 0``\n"
-    "nc : array_like\n"
-    "    Non-centrality parameter; must satisfy ``nc >= 0``\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "x : scalar or ndarray\n"
-    "    Value of the non-central chi square cumulative distribution function.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "chndtrix, chndtridf, chndtrinc")
-ufunc_chndtr_loops[0] = loop_d_ddd__As_fff_f
-ufunc_chndtr_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_chndtr_types[0] = NPY_FLOAT
-ufunc_chndtr_types[1] = NPY_FLOAT
-ufunc_chndtr_types[2] = NPY_FLOAT
-ufunc_chndtr_types[3] = NPY_FLOAT
-ufunc_chndtr_types[4] = NPY_DOUBLE
-ufunc_chndtr_types[5] = NPY_DOUBLE
-ufunc_chndtr_types[6] = NPY_DOUBLE
-ufunc_chndtr_types[7] = NPY_DOUBLE
-ufunc_chndtr_ptr[2*0] = _func_chndtr
-ufunc_chndtr_ptr[2*0+1] = ("chndtr")
-ufunc_chndtr_ptr[2*1] = _func_chndtr
-ufunc_chndtr_ptr[2*1+1] = ("chndtr")
-ufunc_chndtr_data[0] = &ufunc_chndtr_ptr[2*0]
-ufunc_chndtr_data[1] = &ufunc_chndtr_ptr[2*1]
-chndtr = np.PyUFunc_FromFuncAndData(ufunc_chndtr_loops, ufunc_chndtr_data, ufunc_chndtr_types, 2, 3, 1, 0, "chndtr", ufunc_chndtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_chndtridf_loops[2]
-cdef void *ufunc_chndtridf_ptr[4]
-cdef void *ufunc_chndtridf_data[2]
-cdef char ufunc_chndtridf_types[8]
-cdef char *ufunc_chndtridf_doc = (
-    "chndtridf(x, p, nc, out=None)\n"
-    "\n"
-    "Inverse to `chndtr` vs `df`\n"
-    "\n"
-    "Calculated using a search to find a value for `df` that produces the\n"
-    "desired value of `p`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Upper bound of the integral; must satisfy ``x >= 0``\n"
-    "p : array_like\n"
-    "    Probability; must satisfy ``0 <= p < 1``\n"
-    "nc : array_like\n"
-    "    Non-centrality parameter; must satisfy ``nc >= 0``\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "df : scalar or ndarray\n"
-    "    Degrees of freedom\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "chndtr, chndtrix, chndtrinc")
-ufunc_chndtridf_loops[0] = loop_d_ddd__As_fff_f
-ufunc_chndtridf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_chndtridf_types[0] = NPY_FLOAT
-ufunc_chndtridf_types[1] = NPY_FLOAT
-ufunc_chndtridf_types[2] = NPY_FLOAT
-ufunc_chndtridf_types[3] = NPY_FLOAT
-ufunc_chndtridf_types[4] = NPY_DOUBLE
-ufunc_chndtridf_types[5] = NPY_DOUBLE
-ufunc_chndtridf_types[6] = NPY_DOUBLE
-ufunc_chndtridf_types[7] = NPY_DOUBLE
-ufunc_chndtridf_ptr[2*0] = _func_chndtridf
-ufunc_chndtridf_ptr[2*0+1] = ("chndtridf")
-ufunc_chndtridf_ptr[2*1] = _func_chndtridf
-ufunc_chndtridf_ptr[2*1+1] = ("chndtridf")
-ufunc_chndtridf_data[0] = &ufunc_chndtridf_ptr[2*0]
-ufunc_chndtridf_data[1] = &ufunc_chndtridf_ptr[2*1]
-chndtridf = np.PyUFunc_FromFuncAndData(ufunc_chndtridf_loops, ufunc_chndtridf_data, ufunc_chndtridf_types, 2, 3, 1, 0, "chndtridf", ufunc_chndtridf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_chndtrinc_loops[2]
-cdef void *ufunc_chndtrinc_ptr[4]
-cdef void *ufunc_chndtrinc_data[2]
-cdef char ufunc_chndtrinc_types[8]
-cdef char *ufunc_chndtrinc_doc = (
-    "chndtrinc(x, df, p, out=None)\n"
-    "\n"
-    "Inverse to `chndtr` vs `nc`\n"
-    "\n"
-    "Calculated using a search to find a value for `df` that produces the\n"
-    "desired value of `p`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Upper bound of the integral; must satisfy ``x >= 0``\n"
-    "df : array_like\n"
-    "    Degrees of freedom; must satisfy ``df > 0``\n"
-    "p : array_like\n"
-    "    Probability; must satisfy ``0 <= p < 1``\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "nc : scalar or ndarray\n"
-    "    Non-centrality\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "chndtr, chndtrix, chndtrinc")
-ufunc_chndtrinc_loops[0] = loop_d_ddd__As_fff_f
-ufunc_chndtrinc_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_chndtrinc_types[0] = NPY_FLOAT
-ufunc_chndtrinc_types[1] = NPY_FLOAT
-ufunc_chndtrinc_types[2] = NPY_FLOAT
-ufunc_chndtrinc_types[3] = NPY_FLOAT
-ufunc_chndtrinc_types[4] = NPY_DOUBLE
-ufunc_chndtrinc_types[5] = NPY_DOUBLE
-ufunc_chndtrinc_types[6] = NPY_DOUBLE
-ufunc_chndtrinc_types[7] = NPY_DOUBLE
-ufunc_chndtrinc_ptr[2*0] = _func_chndtrinc
-ufunc_chndtrinc_ptr[2*0+1] = ("chndtrinc")
-ufunc_chndtrinc_ptr[2*1] = _func_chndtrinc
-ufunc_chndtrinc_ptr[2*1+1] = ("chndtrinc")
-ufunc_chndtrinc_data[0] = &ufunc_chndtrinc_ptr[2*0]
-ufunc_chndtrinc_data[1] = &ufunc_chndtrinc_ptr[2*1]
-chndtrinc = np.PyUFunc_FromFuncAndData(ufunc_chndtrinc_loops, ufunc_chndtrinc_data, ufunc_chndtrinc_types, 2, 3, 1, 0, "chndtrinc", ufunc_chndtrinc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_chndtrix_loops[2]
-cdef void *ufunc_chndtrix_ptr[4]
-cdef void *ufunc_chndtrix_data[2]
-cdef char ufunc_chndtrix_types[8]
-cdef char *ufunc_chndtrix_doc = (
-    "chndtrix(p, df, nc, out=None)\n"
-    "\n"
-    "Inverse to `chndtr` vs `x`\n"
-    "\n"
-    "Calculated using a search to find a value for `x` that produces the\n"
-    "desired value of `p`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    Probability; must satisfy ``0 <= p < 1``\n"
-    "df : array_like\n"
-    "    Degrees of freedom; must satisfy ``df > 0``\n"
-    "nc : array_like\n"
-    "    Non-centrality parameter; must satisfy ``nc >= 0``\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "x : scalar or ndarray\n"
-    "    Value so that the probability a non-central Chi square random variable\n"
-    "    with `df` degrees of freedom and non-centrality, `nc`, is greater than\n"
-    "    `x` equals `p`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "chndtr, chndtridf, chndtrinc")
-ufunc_chndtrix_loops[0] = loop_d_ddd__As_fff_f
-ufunc_chndtrix_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_chndtrix_types[0] = NPY_FLOAT
-ufunc_chndtrix_types[1] = NPY_FLOAT
-ufunc_chndtrix_types[2] = NPY_FLOAT
-ufunc_chndtrix_types[3] = NPY_FLOAT
-ufunc_chndtrix_types[4] = NPY_DOUBLE
-ufunc_chndtrix_types[5] = NPY_DOUBLE
-ufunc_chndtrix_types[6] = NPY_DOUBLE
-ufunc_chndtrix_types[7] = NPY_DOUBLE
-ufunc_chndtrix_ptr[2*0] = _func_chndtrix
-ufunc_chndtrix_ptr[2*0+1] = ("chndtrix")
-ufunc_chndtrix_ptr[2*1] = _func_chndtrix
-ufunc_chndtrix_ptr[2*1+1] = ("chndtrix")
-ufunc_chndtrix_data[0] = &ufunc_chndtrix_ptr[2*0]
-ufunc_chndtrix_data[1] = &ufunc_chndtrix_ptr[2*1]
-chndtrix = np.PyUFunc_FromFuncAndData(ufunc_chndtrix_loops, ufunc_chndtrix_data, ufunc_chndtrix_types, 2, 3, 1, 0, "chndtrix", ufunc_chndtrix_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_cosdg_loops[2]
-cdef void *ufunc_cosdg_ptr[4]
-cdef void *ufunc_cosdg_data[2]
-cdef char ufunc_cosdg_types[4]
-cdef char *ufunc_cosdg_doc = (
-    "cosdg(x, out=None)\n"
-    "\n"
-    "Cosine of the angle `x` given in degrees.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Angle, given in degrees.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Cosine of the input.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "sindg, tandg, cotdg\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is more accurate than using cosine directly.\n"
-    "\n"
-    ">>> x = 90 + 180 * np.arange(3)\n"
-    ">>> sc.cosdg(x)\n"
-    "array([-0.,  0., -0.])\n"
-    ">>> np.cos(x * np.pi / 180)\n"
-    "array([ 6.1232340e-17, -1.8369702e-16,  3.0616170e-16])")
-ufunc_cosdg_loops[0] = loop_d_d__As_f_f
-ufunc_cosdg_loops[1] = loop_d_d__As_d_d
-ufunc_cosdg_types[0] = NPY_FLOAT
-ufunc_cosdg_types[1] = NPY_FLOAT
-ufunc_cosdg_types[2] = NPY_DOUBLE
-ufunc_cosdg_types[3] = NPY_DOUBLE
-ufunc_cosdg_ptr[2*0] = _func_cephes_cosdg
-ufunc_cosdg_ptr[2*0+1] = ("cosdg")
-ufunc_cosdg_ptr[2*1] = _func_cephes_cosdg
-ufunc_cosdg_ptr[2*1+1] = ("cosdg")
-ufunc_cosdg_data[0] = &ufunc_cosdg_ptr[2*0]
-ufunc_cosdg_data[1] = &ufunc_cosdg_ptr[2*1]
-cosdg = np.PyUFunc_FromFuncAndData(ufunc_cosdg_loops, ufunc_cosdg_data, ufunc_cosdg_types, 2, 1, 1, 0, "cosdg", ufunc_cosdg_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_cosm1_loops[2]
-cdef void *ufunc_cosm1_ptr[4]
-cdef void *ufunc_cosm1_data[2]
-cdef char ufunc_cosm1_types[4]
-cdef char *ufunc_cosm1_doc = (
-    "cosm1(x, out=None)\n"
-    "\n"
-    "cos(x) - 1 for use when `x` is near zero.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real valued argument.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of ``cos(x) - 1``.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "expm1, log1p\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is more accurate than computing ``cos(x) - 1`` directly for\n"
-    "``x`` around 0.\n"
-    "\n"
-    ">>> x = 1e-30\n"
-    ">>> np.cos(x) - 1\n"
-    "0.0\n"
-    ">>> sc.cosm1(x)\n"
-    "-5.0000000000000005e-61")
-ufunc_cosm1_loops[0] = loop_d_d__As_f_f
-ufunc_cosm1_loops[1] = loop_d_d__As_d_d
-ufunc_cosm1_types[0] = NPY_FLOAT
-ufunc_cosm1_types[1] = NPY_FLOAT
-ufunc_cosm1_types[2] = NPY_DOUBLE
-ufunc_cosm1_types[3] = NPY_DOUBLE
-ufunc_cosm1_ptr[2*0] = _func_cephes_cosm1
-ufunc_cosm1_ptr[2*0+1] = ("cosm1")
-ufunc_cosm1_ptr[2*1] = _func_cephes_cosm1
-ufunc_cosm1_ptr[2*1+1] = ("cosm1")
-ufunc_cosm1_data[0] = &ufunc_cosm1_ptr[2*0]
-ufunc_cosm1_data[1] = &ufunc_cosm1_ptr[2*1]
-cosm1 = np.PyUFunc_FromFuncAndData(ufunc_cosm1_loops, ufunc_cosm1_data, ufunc_cosm1_types, 2, 1, 1, 0, "cosm1", ufunc_cosm1_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_cotdg_loops[2]
-cdef void *ufunc_cotdg_ptr[4]
-cdef void *ufunc_cotdg_data[2]
-cdef char ufunc_cotdg_types[4]
-cdef char *ufunc_cotdg_doc = (
-    "cotdg(x, out=None)\n"
-    "\n"
-    "Cotangent of the angle `x` given in degrees.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Angle, given in degrees.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Cotangent at the input.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "sindg, cosdg, tandg\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is more accurate than using cotangent directly.\n"
-    "\n"
-    ">>> x = 90 + 180 * np.arange(3)\n"
-    ">>> sc.cotdg(x)\n"
-    "array([0., 0., 0.])\n"
-    ">>> 1 / np.tan(x * np.pi / 180)\n"
-    "array([6.1232340e-17, 1.8369702e-16, 3.0616170e-16])")
-ufunc_cotdg_loops[0] = loop_d_d__As_f_f
-ufunc_cotdg_loops[1] = loop_d_d__As_d_d
-ufunc_cotdg_types[0] = NPY_FLOAT
-ufunc_cotdg_types[1] = NPY_FLOAT
-ufunc_cotdg_types[2] = NPY_DOUBLE
-ufunc_cotdg_types[3] = NPY_DOUBLE
-ufunc_cotdg_ptr[2*0] = _func_cephes_cotdg
-ufunc_cotdg_ptr[2*0+1] = ("cotdg")
-ufunc_cotdg_ptr[2*1] = _func_cephes_cotdg
-ufunc_cotdg_ptr[2*1+1] = ("cotdg")
-ufunc_cotdg_data[0] = &ufunc_cotdg_ptr[2*0]
-ufunc_cotdg_data[1] = &ufunc_cotdg_ptr[2*1]
-cotdg = np.PyUFunc_FromFuncAndData(ufunc_cotdg_loops, ufunc_cotdg_data, ufunc_cotdg_types, 2, 1, 1, 0, "cotdg", ufunc_cotdg_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_dawsn_loops[4]
-cdef void *ufunc_dawsn_ptr[8]
-cdef void *ufunc_dawsn_data[4]
-cdef char ufunc_dawsn_types[8]
-cdef char *ufunc_dawsn_doc = (
-    "dawsn(x, out=None)\n"
-    "\n"
-    "Dawson's integral.\n"
-    "\n"
-    "Computes::\n"
-    "\n"
-    "    exp(-x**2) * integral(exp(t**2), t=0..x).\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Function parameter.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "y : scalar or ndarray\n"
-    "    Value of the integral.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "wofz, erf, erfc, erfcx, erfi\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Steven G. Johnson, Faddeeva W function implementation.\n"
-    "   http://ab-initio.mit.edu/Faddeeva\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy import special\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> x = np.linspace(-15, 15, num=1000)\n"
-    ">>> plt.plot(x, special.dawsn(x))\n"
-    ">>> plt.xlabel('$x$')\n"
-    ">>> plt.ylabel('$dawsn(x)$')\n"
-    ">>> plt.show()")
-ufunc_dawsn_loops[0] = loop_d_d__As_f_f
-ufunc_dawsn_loops[1] = loop_d_d__As_d_d
-ufunc_dawsn_loops[2] = loop_D_D__As_F_F
-ufunc_dawsn_loops[3] = loop_D_D__As_D_D
-ufunc_dawsn_types[0] = NPY_FLOAT
-ufunc_dawsn_types[1] = NPY_FLOAT
-ufunc_dawsn_types[2] = NPY_DOUBLE
-ufunc_dawsn_types[3] = NPY_DOUBLE
-ufunc_dawsn_types[4] = NPY_CFLOAT
-ufunc_dawsn_types[5] = NPY_CFLOAT
-ufunc_dawsn_types[6] = NPY_CDOUBLE
-ufunc_dawsn_types[7] = NPY_CDOUBLE
-ufunc_dawsn_ptr[2*0] = scipy.special._ufuncs_cxx._export_faddeeva_dawsn
-ufunc_dawsn_ptr[2*0+1] = ("dawsn")
-ufunc_dawsn_ptr[2*1] = scipy.special._ufuncs_cxx._export_faddeeva_dawsn
-ufunc_dawsn_ptr[2*1+1] = ("dawsn")
-ufunc_dawsn_ptr[2*2] = scipy.special._ufuncs_cxx._export_faddeeva_dawsn_complex
-ufunc_dawsn_ptr[2*2+1] = ("dawsn")
-ufunc_dawsn_ptr[2*3] = scipy.special._ufuncs_cxx._export_faddeeva_dawsn_complex
-ufunc_dawsn_ptr[2*3+1] = ("dawsn")
-ufunc_dawsn_data[0] = &ufunc_dawsn_ptr[2*0]
-ufunc_dawsn_data[1] = &ufunc_dawsn_ptr[2*1]
-ufunc_dawsn_data[2] = &ufunc_dawsn_ptr[2*2]
-ufunc_dawsn_data[3] = &ufunc_dawsn_ptr[2*3]
-dawsn = np.PyUFunc_FromFuncAndData(ufunc_dawsn_loops, ufunc_dawsn_data, ufunc_dawsn_types, 4, 1, 1, 0, "dawsn", ufunc_dawsn_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ellipe_loops[2]
-cdef void *ufunc_ellipe_ptr[4]
-cdef void *ufunc_ellipe_data[2]
-cdef char ufunc_ellipe_types[4]
-cdef char *ufunc_ellipe_doc = (
-    "ellipe(m, out=None)\n"
-    "\n"
-    "Complete elliptic integral of the second kind\n"
-    "\n"
-    "This function is defined as\n"
-    "\n"
-    ".. math:: E(m) = \\int_0^{\\pi/2} [1 - m \\sin(t)^2]^{1/2} dt\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "m : array_like\n"
-    "    Defines the parameter of the elliptic integral.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "E : scalar or ndarray\n"
-    "    Value of the elliptic integral.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ellipkm1 : Complete elliptic integral of the first kind, near `m` = 1\n"
-    "ellipk : Complete elliptic integral of the first kind\n"
-    "ellipkinc : Incomplete elliptic integral of the first kind\n"
-    "ellipeinc : Incomplete elliptic integral of the second kind\n"
-    "elliprd : Symmetric elliptic integral of the second kind.\n"
-    "elliprg : Completely-symmetric elliptic integral of the second kind.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the Cephes [1]_ routine `ellpe`.\n"
-    "\n"
-    "For `m > 0` the computation uses the approximation,\n"
-    "\n"
-    ".. math:: E(m) \\approx P(1-m) - (1-m) \\log(1-m) Q(1-m),\n"
-    "\n"
-    "where :math:`P` and :math:`Q` are tenth-order polynomials.  For\n"
-    "`m < 0`, the relation\n"
-    "\n"
-    ".. math:: E(m) = E(m/(m - 1)) \\sqrt(1-m)\n"
-    "\n"
-    "is used.\n"
-    "\n"
-    "The parameterization in terms of :math:`m` follows that of section\n"
-    "17.2 in [2]_. Other parameterizations in terms of the\n"
-    "complementary parameter :math:`1 - m`, modular angle\n"
-    ":math:`\\sin^2(\\alpha) = m`, or modulus :math:`k^2 = m` are also\n"
-    "used, so be careful that you choose the correct parameter.\n"
-    "\n"
-    "The Legendre E integral is related to Carlson's symmetric R_D or R_G\n"
-    "functions in multiple ways [3]_. For example,\n"
-    "\n"
-    ".. math:: E(m) = 2 R_G(0, 1-k^2, 1) .\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    ".. [2] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    ".. [3] NIST Digital Library of Mathematical\n"
-    "       Functions. http://dlmf.nist.gov/, Release 1.0.28 of\n"
-    "       2020-09-15. See Sec. 19.25(i) https://dlmf.nist.gov/19.25#i\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "This function is used in finding the circumference of an\n"
-    "ellipse with semi-major axis `a` and semi-minor axis `b`.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy import special\n"
-    "\n"
-    ">>> a = 3.5\n"
-    ">>> b = 2.1\n"
-    ">>> e_sq = 1.0 - b**2/a**2  # eccentricity squared\n"
-    "\n"
-    "Then the circumference is found using the following:\n"
-    "\n"
-    ">>> C = 4*a*special.ellipe(e_sq)  # circumference formula\n"
-    ">>> C\n"
-    "17.868899204378693\n"
-    "\n"
-    "When `a` and `b` are the same (meaning eccentricity is 0),\n"
-    "this reduces to the circumference of a circle.\n"
-    "\n"
-    ">>> 4*a*special.ellipe(0.0)  # formula for ellipse with a = b\n"
-    "21.991148575128552\n"
-    ">>> 2*np.pi*a  # formula for circle of radius a\n"
-    "21.991148575128552")
-ufunc_ellipe_loops[0] = loop_d_d__As_f_f
-ufunc_ellipe_loops[1] = loop_d_d__As_d_d
-ufunc_ellipe_types[0] = NPY_FLOAT
-ufunc_ellipe_types[1] = NPY_FLOAT
-ufunc_ellipe_types[2] = NPY_DOUBLE
-ufunc_ellipe_types[3] = NPY_DOUBLE
-ufunc_ellipe_ptr[2*0] = _func_cephes_ellpe
-ufunc_ellipe_ptr[2*0+1] = ("ellipe")
-ufunc_ellipe_ptr[2*1] = _func_cephes_ellpe
-ufunc_ellipe_ptr[2*1+1] = ("ellipe")
-ufunc_ellipe_data[0] = &ufunc_ellipe_ptr[2*0]
-ufunc_ellipe_data[1] = &ufunc_ellipe_ptr[2*1]
-ellipe = np.PyUFunc_FromFuncAndData(ufunc_ellipe_loops, ufunc_ellipe_data, ufunc_ellipe_types, 2, 1, 1, 0, "ellipe", ufunc_ellipe_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ellipeinc_loops[2]
-cdef void *ufunc_ellipeinc_ptr[4]
-cdef void *ufunc_ellipeinc_data[2]
-cdef char ufunc_ellipeinc_types[6]
-cdef char *ufunc_ellipeinc_doc = (
-    "ellipeinc(phi, m, out=None)\n"
-    "\n"
-    "Incomplete elliptic integral of the second kind\n"
-    "\n"
-    "This function is defined as\n"
-    "\n"
-    ".. math:: E(\\phi, m) = \\int_0^{\\phi} [1 - m \\sin(t)^2]^{1/2} dt\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "phi : array_like\n"
-    "    amplitude of the elliptic integral.\n"
-    "m : array_like\n"
-    "    parameter of the elliptic integral.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "E : scalar or ndarray\n"
-    "    Value of the elliptic integral.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ellipkm1 : Complete elliptic integral of the first kind, near `m` = 1\n"
-    "ellipk : Complete elliptic integral of the first kind\n"
-    "ellipkinc : Incomplete elliptic integral of the first kind\n"
-    "ellipe : Complete elliptic integral of the second kind\n"
-    "elliprd : Symmetric elliptic integral of the second kind.\n"
-    "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
-    "elliprg : Completely-symmetric elliptic integral of the second kind.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the Cephes [1]_ routine `ellie`.\n"
-    "\n"
-    "Computation uses arithmetic-geometric means algorithm.\n"
-    "\n"
-    "The parameterization in terms of :math:`m` follows that of section\n"
-    "17.2 in [2]_. Other parameterizations in terms of the\n"
-    "complementary parameter :math:`1 - m`, modular angle\n"
-    ":math:`\\sin^2(\\alpha) = m`, or modulus :math:`k^2 = m` are also\n"
-    "used, so be careful that you choose the correct parameter.\n"
-    "\n"
-    "The Legendre E incomplete integral can be related to combinations\n"
-    "of Carlson's symmetric integrals R_D, R_F, and R_G in multiple\n"
-    "ways [3]_. For example, with :math:`c = \\csc^2\\phi`,\n"
-    "\n"
-    ".. math::\n"
-    "  E(\\phi, m) = R_F(c-1, c-k^2, c)\n"
-    "    - \\frac{1}{3} k^2 R_D(c-1, c-k^2, c) .\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    ".. [2] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    ".. [3] NIST Digital Library of Mathematical\n"
-    "       Functions. http://dlmf.nist.gov/, Release 1.0.28 of\n"
-    "       2020-09-15. See Sec. 19.25(i) https://dlmf.nist.gov/19.25#i")
-ufunc_ellipeinc_loops[0] = loop_d_dd__As_ff_f
-ufunc_ellipeinc_loops[1] = loop_d_dd__As_dd_d
-ufunc_ellipeinc_types[0] = NPY_FLOAT
-ufunc_ellipeinc_types[1] = NPY_FLOAT
-ufunc_ellipeinc_types[2] = NPY_FLOAT
-ufunc_ellipeinc_types[3] = NPY_DOUBLE
-ufunc_ellipeinc_types[4] = NPY_DOUBLE
-ufunc_ellipeinc_types[5] = NPY_DOUBLE
-ufunc_ellipeinc_ptr[2*0] = _func_cephes_ellie
-ufunc_ellipeinc_ptr[2*0+1] = ("ellipeinc")
-ufunc_ellipeinc_ptr[2*1] = _func_cephes_ellie
-ufunc_ellipeinc_ptr[2*1+1] = ("ellipeinc")
-ufunc_ellipeinc_data[0] = &ufunc_ellipeinc_ptr[2*0]
-ufunc_ellipeinc_data[1] = &ufunc_ellipeinc_ptr[2*1]
-ellipeinc = np.PyUFunc_FromFuncAndData(ufunc_ellipeinc_loops, ufunc_ellipeinc_data, ufunc_ellipeinc_types, 2, 2, 1, 0, "ellipeinc", ufunc_ellipeinc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ellipj_loops[2]
-cdef void *ufunc_ellipj_ptr[4]
-cdef void *ufunc_ellipj_data[2]
-cdef char ufunc_ellipj_types[12]
-cdef char *ufunc_ellipj_doc = (
-    "ellipj(u, m, out=None)\n"
-    "\n"
-    "Jacobian elliptic functions\n"
-    "\n"
-    "Calculates the Jacobian elliptic functions of parameter `m` between\n"
-    "0 and 1, and real argument `u`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "m : array_like\n"
-    "    Parameter.\n"
-    "u : array_like\n"
-    "    Argument.\n"
-    "out : tuple of ndarray, optional\n"
-    "    Optional output arrays for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "sn, cn, dn, ph : 4-tuple of scalar or ndarray\n"
-    "    The returned functions::\n"
-    "\n"
-    "        sn(u|m), cn(u|m), dn(u|m)\n"
-    "\n"
-    "    The value `ph` is such that if `u = ellipkinc(ph, m)`,\n"
-    "    then `sn(u|m) = sin(ph)` and `cn(u|m) = cos(ph)`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ellipk : Complete elliptic integral of the first kind\n"
-    "ellipkinc : Incomplete elliptic integral of the first kind\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the Cephes [1]_ routine `ellpj`.\n"
-    "\n"
-    "These functions are periodic, with quarter-period on the real axis\n"
-    "equal to the complete elliptic integral `ellipk(m)`.\n"
-    "\n"
-    "Relation to incomplete elliptic integral: If `u = ellipkinc(phi,m)`, then\n"
-    "`sn(u|m) = sin(phi)`, and `cn(u|m) = cos(phi)`. The `phi` is called\n"
-    "the amplitude of `u`.\n"
-    "\n"
-    "Computation is by means of the arithmetic-geometric mean algorithm,\n"
-    "except when `m` is within 1e-9 of 0 or 1. In the latter case with `m`\n"
-    "close to 1, the approximation applies only for `phi < pi/2`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/")
-ufunc_ellipj_loops[0] = loop_i_dd_dddd_As_ff_ffff
-ufunc_ellipj_loops[1] = loop_i_dd_dddd_As_dd_dddd
-ufunc_ellipj_types[0] = NPY_FLOAT
-ufunc_ellipj_types[1] = NPY_FLOAT
-ufunc_ellipj_types[2] = NPY_FLOAT
-ufunc_ellipj_types[3] = NPY_FLOAT
-ufunc_ellipj_types[4] = NPY_FLOAT
-ufunc_ellipj_types[5] = NPY_FLOAT
-ufunc_ellipj_types[6] = NPY_DOUBLE
-ufunc_ellipj_types[7] = NPY_DOUBLE
-ufunc_ellipj_types[8] = NPY_DOUBLE
-ufunc_ellipj_types[9] = NPY_DOUBLE
-ufunc_ellipj_types[10] = NPY_DOUBLE
-ufunc_ellipj_types[11] = NPY_DOUBLE
-ufunc_ellipj_ptr[2*0] = _func_cephes_ellpj_wrap
-ufunc_ellipj_ptr[2*0+1] = ("ellipj")
-ufunc_ellipj_ptr[2*1] = _func_cephes_ellpj_wrap
-ufunc_ellipj_ptr[2*1+1] = ("ellipj")
-ufunc_ellipj_data[0] = &ufunc_ellipj_ptr[2*0]
-ufunc_ellipj_data[1] = &ufunc_ellipj_ptr[2*1]
-ellipj = np.PyUFunc_FromFuncAndData(ufunc_ellipj_loops, ufunc_ellipj_data, ufunc_ellipj_types, 2, 2, 4, 0, "ellipj", ufunc_ellipj_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ellipk_loops[2]
-cdef void *ufunc_ellipk_ptr[4]
-cdef void *ufunc_ellipk_data[2]
-cdef char ufunc_ellipk_types[4]
-cdef char *ufunc_ellipk_doc = (
-    "ellipk(m, out=None)\n"
-    "\n"
-    "Complete elliptic integral of the first kind.\n"
-    "\n"
-    "This function is defined as\n"
-    "\n"
-    ".. math:: K(m) = \\int_0^{\\pi/2} [1 - m \\sin(t)^2]^{-1/2} dt\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "m : array_like\n"
-    "    The parameter of the elliptic integral.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "K : scalar or ndarray\n"
-    "    Value of the elliptic integral.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ellipkm1 : Complete elliptic integral of the first kind around m = 1\n"
-    "ellipkinc : Incomplete elliptic integral of the first kind\n"
-    "ellipe : Complete elliptic integral of the second kind\n"
-    "ellipeinc : Incomplete elliptic integral of the second kind\n"
-    "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "For more precision around point m = 1, use `ellipkm1`, which this\n"
-    "function calls.\n"
-    "\n"
-    "The parameterization in terms of :math:`m` follows that of section\n"
-    "17.2 in [1]_. Other parameterizations in terms of the\n"
-    "complementary parameter :math:`1 - m`, modular angle\n"
-    ":math:`\\sin^2(\\alpha) = m`, or modulus :math:`k^2 = m` are also\n"
-    "used, so be careful that you choose the correct parameter.\n"
-    "\n"
-    "The Legendre K integral is related to Carlson's symmetric R_F\n"
-    "function by [2]_:\n"
-    "\n"
-    ".. math:: K(m) = R_F(0, 1-k^2, 1) .\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    ".. [2] NIST Digital Library of Mathematical\n"
-    "       Functions. http://dlmf.nist.gov/, Release 1.0.28 of\n"
-    "       2020-09-15. See Sec. 19.25(i) https://dlmf.nist.gov/19.25#i")
-ufunc_ellipk_loops[0] = loop_d_d__As_f_f
-ufunc_ellipk_loops[1] = loop_d_d__As_d_d
-ufunc_ellipk_types[0] = NPY_FLOAT
-ufunc_ellipk_types[1] = NPY_FLOAT
-ufunc_ellipk_types[2] = NPY_DOUBLE
-ufunc_ellipk_types[3] = NPY_DOUBLE
-ufunc_ellipk_ptr[2*0] = _func_special_ellipk
-ufunc_ellipk_ptr[2*0+1] = ("ellipk")
-ufunc_ellipk_ptr[2*1] = _func_special_ellipk
-ufunc_ellipk_ptr[2*1+1] = ("ellipk")
-ufunc_ellipk_data[0] = &ufunc_ellipk_ptr[2*0]
-ufunc_ellipk_data[1] = &ufunc_ellipk_ptr[2*1]
-ellipk = np.PyUFunc_FromFuncAndData(ufunc_ellipk_loops, ufunc_ellipk_data, ufunc_ellipk_types, 2, 1, 1, 0, "ellipk", ufunc_ellipk_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ellipkinc_loops[2]
-cdef void *ufunc_ellipkinc_ptr[4]
-cdef void *ufunc_ellipkinc_data[2]
-cdef char ufunc_ellipkinc_types[6]
-cdef char *ufunc_ellipkinc_doc = (
-    "ellipkinc(phi, m, out=None)\n"
-    "\n"
-    "Incomplete elliptic integral of the first kind\n"
-    "\n"
-    "This function is defined as\n"
-    "\n"
-    ".. math:: K(\\phi, m) = \\int_0^{\\phi} [1 - m \\sin(t)^2]^{-1/2} dt\n"
-    "\n"
-    "This function is also called :math:`F(\\phi, m)`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "phi : array_like\n"
-    "    amplitude of the elliptic integral\n"
-    "m : array_like\n"
-    "    parameter of the elliptic integral\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "K : scalar or ndarray\n"
-    "    Value of the elliptic integral\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ellipkm1 : Complete elliptic integral of the first kind, near `m` = 1\n"
-    "ellipk : Complete elliptic integral of the first kind\n"
-    "ellipe : Complete elliptic integral of the second kind\n"
-    "ellipeinc : Incomplete elliptic integral of the second kind\n"
-    "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the Cephes [1]_ routine `ellik`.  The computation is\n"
-    "carried out using the arithmetic-geometric mean algorithm.\n"
-    "\n"
-    "The parameterization in terms of :math:`m` follows that of section\n"
-    "17.2 in [2]_. Other parameterizations in terms of the\n"
-    "complementary parameter :math:`1 - m`, modular angle\n"
-    ":math:`\\sin^2(\\alpha) = m`, or modulus :math:`k^2 = m` are also\n"
-    "used, so be careful that you choose the correct parameter.\n"
-    "\n"
-    "The Legendre K incomplete integral (or F integral) is related to\n"
-    "Carlson's symmetric R_F function [3]_.\n"
-    "Setting :math:`c = \\csc^2\\phi`,\n"
-    "\n"
-    ".. math:: F(\\phi, m) = R_F(c-1, c-k^2, c) .\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    ".. [2] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    ".. [3] NIST Digital Library of Mathematical\n"
-    "       Functions. http://dlmf.nist.gov/, Release 1.0.28 of\n"
-    "       2020-09-15. See Sec. 19.25(i) https://dlmf.nist.gov/19.25#i")
-ufunc_ellipkinc_loops[0] = loop_d_dd__As_ff_f
-ufunc_ellipkinc_loops[1] = loop_d_dd__As_dd_d
-ufunc_ellipkinc_types[0] = NPY_FLOAT
-ufunc_ellipkinc_types[1] = NPY_FLOAT
-ufunc_ellipkinc_types[2] = NPY_FLOAT
-ufunc_ellipkinc_types[3] = NPY_DOUBLE
-ufunc_ellipkinc_types[4] = NPY_DOUBLE
-ufunc_ellipkinc_types[5] = NPY_DOUBLE
-ufunc_ellipkinc_ptr[2*0] = _func_cephes_ellik
-ufunc_ellipkinc_ptr[2*0+1] = ("ellipkinc")
-ufunc_ellipkinc_ptr[2*1] = _func_cephes_ellik
-ufunc_ellipkinc_ptr[2*1+1] = ("ellipkinc")
-ufunc_ellipkinc_data[0] = &ufunc_ellipkinc_ptr[2*0]
-ufunc_ellipkinc_data[1] = &ufunc_ellipkinc_ptr[2*1]
-ellipkinc = np.PyUFunc_FromFuncAndData(ufunc_ellipkinc_loops, ufunc_ellipkinc_data, ufunc_ellipkinc_types, 2, 2, 1, 0, "ellipkinc", ufunc_ellipkinc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ellipkm1_loops[2]
-cdef void *ufunc_ellipkm1_ptr[4]
-cdef void *ufunc_ellipkm1_data[2]
-cdef char ufunc_ellipkm1_types[4]
-cdef char *ufunc_ellipkm1_doc = (
-    "ellipkm1(p, out=None)\n"
-    "\n"
-    "Complete elliptic integral of the first kind around `m` = 1\n"
-    "\n"
-    "This function is defined as\n"
-    "\n"
-    ".. math:: K(p) = \\int_0^{\\pi/2} [1 - m \\sin(t)^2]^{-1/2} dt\n"
-    "\n"
-    "where `m = 1 - p`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    Defines the parameter of the elliptic integral as `m = 1 - p`.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "K : scalar or ndarray\n"
-    "    Value of the elliptic integral.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ellipk : Complete elliptic integral of the first kind\n"
-    "ellipkinc : Incomplete elliptic integral of the first kind\n"
-    "ellipe : Complete elliptic integral of the second kind\n"
-    "ellipeinc : Incomplete elliptic integral of the second kind\n"
-    "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the Cephes [1]_ routine `ellpk`.\n"
-    "\n"
-    "For `p <= 1`, computation uses the approximation,\n"
-    "\n"
-    ".. math:: K(p) \\approx P(p) - \\log(p) Q(p),\n"
-    "\n"
-    "where :math:`P` and :math:`Q` are tenth-order polynomials.  The\n"
-    "argument `p` is used internally rather than `m` so that the logarithmic\n"
-    "singularity at `m = 1` will be shifted to the origin; this preserves\n"
-    "maximum accuracy.  For `p > 1`, the identity\n"
-    "\n"
-    ".. math:: K(p) = K(1/p)/\\sqrt(p)\n"
-    "\n"
-    "is used.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/")
-ufunc_ellipkm1_loops[0] = loop_d_d__As_f_f
-ufunc_ellipkm1_loops[1] = loop_d_d__As_d_d
-ufunc_ellipkm1_types[0] = NPY_FLOAT
-ufunc_ellipkm1_types[1] = NPY_FLOAT
-ufunc_ellipkm1_types[2] = NPY_DOUBLE
-ufunc_ellipkm1_types[3] = NPY_DOUBLE
-ufunc_ellipkm1_ptr[2*0] = _func_cephes_ellpk
-ufunc_ellipkm1_ptr[2*0+1] = ("ellipkm1")
-ufunc_ellipkm1_ptr[2*1] = _func_cephes_ellpk
-ufunc_ellipkm1_ptr[2*1+1] = ("ellipkm1")
-ufunc_ellipkm1_data[0] = &ufunc_ellipkm1_ptr[2*0]
-ufunc_ellipkm1_data[1] = &ufunc_ellipkm1_ptr[2*1]
-ellipkm1 = np.PyUFunc_FromFuncAndData(ufunc_ellipkm1_loops, ufunc_ellipkm1_data, ufunc_ellipkm1_types, 2, 1, 1, 0, "ellipkm1", ufunc_ellipkm1_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_elliprc_loops[4]
-cdef void *ufunc_elliprc_ptr[8]
-cdef void *ufunc_elliprc_data[4]
-cdef char ufunc_elliprc_types[12]
-cdef char *ufunc_elliprc_doc = (
-    "elliprc(x, y, out=None)\n"
-    "\n"
-    "Degenerate symmetric elliptic integral.\n"
-    "\n"
-    "The function RC is defined as [1]_\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    R_{\\mathrm{C}}(x, y) =\n"
-    "       \\frac{1}{2} \\int_0^{+\\infty} (t + x)^{-1/2} (t + y)^{-1} dt\n"
-    "       = R_{\\mathrm{F}}(x, y, y)\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x, y : array_like\n"
-    "    Real or complex input parameters. `x` can be any number in the\n"
-    "    complex plane cut along the negative real axis. `y` must be non-zero.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "R : scalar or ndarray\n"
-    "    Value of the integral. If `y` is real and negative, the Cauchy\n"
-    "    principal value is returned. If both of `x` and `y` are real, the\n"
-    "    return value is real. Otherwise, the return value is complex.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
-    "elliprd : Symmetric elliptic integral of the second kind.\n"
-    "elliprg : Completely-symmetric elliptic integral of the second kind.\n"
-    "elliprj : Symmetric elliptic integral of the third kind.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "RC is a degenerate case of the symmetric integral RF: ``elliprc(x, y) ==\n"
-    "elliprf(x, y, y)``. It is an elementary function rather than an elliptic\n"
-    "integral.\n"
-    "\n"
-    "The code implements Carlson's algorithm based on the duplication theorems\n"
-    "and series expansion up to the 7th order. [2]_\n"
-    "\n"
-    ".. versionadded:: 1.8.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] B. C. Carlson, ed., Chapter 19 in \"Digital Library of Mathematical\n"
-    "       Functions,\" NIST, US Dept. of Commerce.\n"
-    "       https://dlmf.nist.gov/19.16.E6\n"
-    ".. [2] B. C. Carlson, \"Numerical computation of real or complex elliptic\n"
-    "       integrals,\" Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.\n"
-    "       https://arxiv.org/abs/math/9409227\n"
-    "       https://doi.org/10.1007/BF02198293\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Basic homogeneity property:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import elliprc\n"
-    "\n"
-    ">>> x = 1.2 + 3.4j\n"
-    ">>> y = 5.\n"
-    ">>> scale = 0.3 + 0.4j\n"
-    ">>> elliprc(scale*x, scale*y)\n"
-    "(0.5484493976710874-0.4169557678995833j)\n"
-    "\n"
-    ">>> elliprc(x, y)/np.sqrt(scale)\n"
-    "(0.5484493976710874-0.41695576789958333j)\n"
-    "\n"
-    "When the two arguments coincide, the integral is particularly\n"
-    "simple:\n"
-    "\n"
-    ">>> x = 1.2 + 3.4j\n"
-    ">>> elliprc(x, x)\n"
-    "(0.4299173120614631-0.3041729818745595j)\n"
-    "\n"
-    ">>> 1/np.sqrt(x)\n"
-    "(0.4299173120614631-0.30417298187455954j)\n"
-    "\n"
-    "Another simple case: the first argument vanishes:\n"
-    "\n"
-    ">>> y = 1.2 + 3.4j\n"
-    ">>> elliprc(0, y)\n"
-    "(0.6753125346116815-0.47779380263880866j)\n"
-    "\n"
-    ">>> np.pi/2/np.sqrt(y)\n"
-    "(0.6753125346116815-0.4777938026388088j)\n"
-    "\n"
-    "When `x` and `y` are both positive, we can express\n"
-    ":math:`R_C(x,y)` in terms of more elementary functions.  For the\n"
-    "case :math:`0 \\le x < y`,\n"
-    "\n"
-    ">>> x = 3.2\n"
-    ">>> y = 6.\n"
-    ">>> elliprc(x, y)\n"
-    "0.44942991498453444\n"
-    "\n"
-    ">>> np.arctan(np.sqrt((y-x)/x))/np.sqrt(y-x)\n"
-    "0.44942991498453433\n"
-    "\n"
-    "And for the case :math:`0 \\le y < x`,\n"
-    "\n"
-    ">>> x = 6.\n"
-    ">>> y = 3.2\n"
-    ">>> elliprc(x,y)\n"
-    "0.4989837501576147\n"
-    "\n"
-    ">>> np.log((np.sqrt(x)+np.sqrt(x-y))/np.sqrt(y))/np.sqrt(x-y)\n"
-    "0.49898375015761476")
-ufunc_elliprc_loops[0] = loop_d_dd__As_ff_f
-ufunc_elliprc_loops[1] = loop_d_dd__As_dd_d
-ufunc_elliprc_loops[2] = loop_D_DD__As_FF_F
-ufunc_elliprc_loops[3] = loop_D_DD__As_DD_D
-ufunc_elliprc_types[0] = NPY_FLOAT
-ufunc_elliprc_types[1] = NPY_FLOAT
-ufunc_elliprc_types[2] = NPY_FLOAT
-ufunc_elliprc_types[3] = NPY_DOUBLE
-ufunc_elliprc_types[4] = NPY_DOUBLE
-ufunc_elliprc_types[5] = NPY_DOUBLE
-ufunc_elliprc_types[6] = NPY_CFLOAT
-ufunc_elliprc_types[7] = NPY_CFLOAT
-ufunc_elliprc_types[8] = NPY_CFLOAT
-ufunc_elliprc_types[9] = NPY_CDOUBLE
-ufunc_elliprc_types[10] = NPY_CDOUBLE
-ufunc_elliprc_types[11] = NPY_CDOUBLE
-ufunc_elliprc_ptr[2*0] = scipy.special._ufuncs_cxx._export_fellint_RC
-ufunc_elliprc_ptr[2*0+1] = ("elliprc")
-ufunc_elliprc_ptr[2*1] = scipy.special._ufuncs_cxx._export_fellint_RC
-ufunc_elliprc_ptr[2*1+1] = ("elliprc")
-ufunc_elliprc_ptr[2*2] = scipy.special._ufuncs_cxx._export_cellint_RC
-ufunc_elliprc_ptr[2*2+1] = ("elliprc")
-ufunc_elliprc_ptr[2*3] = scipy.special._ufuncs_cxx._export_cellint_RC
-ufunc_elliprc_ptr[2*3+1] = ("elliprc")
-ufunc_elliprc_data[0] = &ufunc_elliprc_ptr[2*0]
-ufunc_elliprc_data[1] = &ufunc_elliprc_ptr[2*1]
-ufunc_elliprc_data[2] = &ufunc_elliprc_ptr[2*2]
-ufunc_elliprc_data[3] = &ufunc_elliprc_ptr[2*3]
-elliprc = np.PyUFunc_FromFuncAndData(ufunc_elliprc_loops, ufunc_elliprc_data, ufunc_elliprc_types, 4, 2, 1, 0, "elliprc", ufunc_elliprc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_elliprd_loops[4]
-cdef void *ufunc_elliprd_ptr[8]
-cdef void *ufunc_elliprd_data[4]
-cdef char ufunc_elliprd_types[16]
-cdef char *ufunc_elliprd_doc = (
-    "elliprd(x, y, z, out=None)\n"
-    "\n"
-    "Symmetric elliptic integral of the second kind.\n"
-    "\n"
-    "The function RD is defined as [1]_\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    R_{\\mathrm{D}}(x, y, z) =\n"
-    "       \\frac{3}{2} \\int_0^{+\\infty} [(t + x) (t + y)]^{-1/2} (t + z)^{-3/2}\n"
-    "       dt\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x, y, z : array_like\n"
-    "    Real or complex input parameters. `x` or `y` can be any number in the\n"
-    "    complex plane cut along the negative real axis, but at most one of them\n"
-    "    can be zero, while `z` must be non-zero.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "R : scalar or ndarray\n"
-    "    Value of the integral. If all of `x`, `y`, and `z` are real, the\n"
-    "    return value is real. Otherwise, the return value is complex.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "elliprc : Degenerate symmetric elliptic integral.\n"
-    "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
-    "elliprg : Completely-symmetric elliptic integral of the second kind.\n"
-    "elliprj : Symmetric elliptic integral of the third kind.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "RD is a degenerate case of the elliptic integral RJ: ``elliprd(x, y, z) ==\n"
-    "elliprj(x, y, z, z)``.\n"
-    "\n"
-    "The code implements Carlson's algorithm based on the duplication theorems\n"
-    "and series expansion up to the 7th order. [2]_\n"
-    "\n"
-    ".. versionadded:: 1.8.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] B. C. Carlson, ed., Chapter 19 in \"Digital Library of Mathematical\n"
-    "       Functions,\" NIST, US Dept. of Commerce.\n"
-    "       https://dlmf.nist.gov/19.16.E5\n"
-    ".. [2] B. C. Carlson, \"Numerical computation of real or complex elliptic\n"
-    "       integrals,\" Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.\n"
-    "       https://arxiv.org/abs/math/9409227\n"
-    "       https://doi.org/10.1007/BF02198293\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Basic homogeneity property:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import elliprd\n"
-    "\n"
-    ">>> x = 1.2 + 3.4j\n"
-    ">>> y = 5.\n"
-    ">>> z = 6.\n"
-    ">>> scale = 0.3 + 0.4j\n"
-    ">>> elliprd(scale*x, scale*y, scale*z)\n"
-    "(-0.03703043835680379-0.24500934665683802j)\n"
-    "\n"
-    ">>> elliprd(x, y, z)*np.power(scale, -1.5)\n"
-    "(-0.0370304383568038-0.24500934665683805j)\n"
-    "\n"
-    "All three arguments coincide:\n"
-    "\n"
-    ">>> x = 1.2 + 3.4j\n"
-    ">>> elliprd(x, x, x)\n"
-    "(-0.03986825876151896-0.14051741840449586j)\n"
-    "\n"
-    ">>> np.power(x, -1.5)\n"
-    "(-0.03986825876151894-0.14051741840449583j)\n"
-    "\n"
-    "The so-called \"second lemniscate constant\":\n"
-    "\n"
-    ">>> elliprd(0, 2, 1)/3\n"
-    "0.5990701173677961\n"
-    "\n"
-    ">>> from scipy.special import gamma\n"
-    ">>> gamma(0.75)**2/np.sqrt(2*np.pi)\n"
-    "0.5990701173677959")
-ufunc_elliprd_loops[0] = loop_d_ddd__As_fff_f
-ufunc_elliprd_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_elliprd_loops[2] = loop_D_DDD__As_FFF_F
-ufunc_elliprd_loops[3] = loop_D_DDD__As_DDD_D
-ufunc_elliprd_types[0] = NPY_FLOAT
-ufunc_elliprd_types[1] = NPY_FLOAT
-ufunc_elliprd_types[2] = NPY_FLOAT
-ufunc_elliprd_types[3] = NPY_FLOAT
-ufunc_elliprd_types[4] = NPY_DOUBLE
-ufunc_elliprd_types[5] = NPY_DOUBLE
-ufunc_elliprd_types[6] = NPY_DOUBLE
-ufunc_elliprd_types[7] = NPY_DOUBLE
-ufunc_elliprd_types[8] = NPY_CFLOAT
-ufunc_elliprd_types[9] = NPY_CFLOAT
-ufunc_elliprd_types[10] = NPY_CFLOAT
-ufunc_elliprd_types[11] = NPY_CFLOAT
-ufunc_elliprd_types[12] = NPY_CDOUBLE
-ufunc_elliprd_types[13] = NPY_CDOUBLE
-ufunc_elliprd_types[14] = NPY_CDOUBLE
-ufunc_elliprd_types[15] = NPY_CDOUBLE
-ufunc_elliprd_ptr[2*0] = scipy.special._ufuncs_cxx._export_fellint_RD
-ufunc_elliprd_ptr[2*0+1] = ("elliprd")
-ufunc_elliprd_ptr[2*1] = scipy.special._ufuncs_cxx._export_fellint_RD
-ufunc_elliprd_ptr[2*1+1] = ("elliprd")
-ufunc_elliprd_ptr[2*2] = scipy.special._ufuncs_cxx._export_cellint_RD
-ufunc_elliprd_ptr[2*2+1] = ("elliprd")
-ufunc_elliprd_ptr[2*3] = scipy.special._ufuncs_cxx._export_cellint_RD
-ufunc_elliprd_ptr[2*3+1] = ("elliprd")
-ufunc_elliprd_data[0] = &ufunc_elliprd_ptr[2*0]
-ufunc_elliprd_data[1] = &ufunc_elliprd_ptr[2*1]
-ufunc_elliprd_data[2] = &ufunc_elliprd_ptr[2*2]
-ufunc_elliprd_data[3] = &ufunc_elliprd_ptr[2*3]
-elliprd = np.PyUFunc_FromFuncAndData(ufunc_elliprd_loops, ufunc_elliprd_data, ufunc_elliprd_types, 4, 3, 1, 0, "elliprd", ufunc_elliprd_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_elliprf_loops[4]
-cdef void *ufunc_elliprf_ptr[8]
-cdef void *ufunc_elliprf_data[4]
-cdef char ufunc_elliprf_types[16]
-cdef char *ufunc_elliprf_doc = (
-    "elliprf(x, y, z, out=None)\n"
-    "\n"
-    "Completely-symmetric elliptic integral of the first kind.\n"
-    "\n"
-    "The function RF is defined as [1]_\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    R_{\\mathrm{F}}(x, y, z) =\n"
-    "       \\frac{1}{2} \\int_0^{+\\infty} [(t + x) (t + y) (t + z)]^{-1/2} dt\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x, y, z : array_like\n"
-    "    Real or complex input parameters. `x`, `y`, or `z` can be any number in\n"
-    "    the complex plane cut along the negative real axis, but at most one of\n"
-    "    them can be zero.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "R : scalar or ndarray\n"
-    "    Value of the integral. If all of `x`, `y`, and `z` are real, the return\n"
-    "    value is real. Otherwise, the return value is complex.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "elliprc : Degenerate symmetric integral.\n"
-    "elliprd : Symmetric elliptic integral of the second kind.\n"
-    "elliprg : Completely-symmetric elliptic integral of the second kind.\n"
-    "elliprj : Symmetric elliptic integral of the third kind.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The code implements Carlson's algorithm based on the duplication theorems\n"
-    "and series expansion up to the 7th order (cf.:\n"
-    "https://dlmf.nist.gov/19.36.i) and the AGM algorithm for the complete\n"
-    "integral. [2]_\n"
-    "\n"
-    ".. versionadded:: 1.8.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] B. C. Carlson, ed., Chapter 19 in \"Digital Library of Mathematical\n"
-    "       Functions,\" NIST, US Dept. of Commerce.\n"
-    "       https://dlmf.nist.gov/19.16.E1\n"
-    ".. [2] B. C. Carlson, \"Numerical computation of real or complex elliptic\n"
-    "       integrals,\" Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.\n"
-    "       https://arxiv.org/abs/math/9409227\n"
-    "       https://doi.org/10.1007/BF02198293\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Basic homogeneity property:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import elliprf\n"
-    "\n"
-    ">>> x = 1.2 + 3.4j\n"
-    ">>> y = 5.\n"
-    ">>> z = 6.\n"
-    ">>> scale = 0.3 + 0.4j\n"
-    ">>> elliprf(scale*x, scale*y, scale*z)\n"
-    "(0.5328051227278146-0.4008623567957094j)\n"
-    "\n"
-    ">>> elliprf(x, y, z)/np.sqrt(scale)\n"
-    "(0.5328051227278147-0.4008623567957095j)\n"
-    "\n"
-    "All three arguments coincide:\n"
-    "\n"
-    ">>> x = 1.2 + 3.4j\n"
-    ">>> elliprf(x, x, x)\n"
-    "(0.42991731206146316-0.30417298187455954j)\n"
-    "\n"
-    ">>> 1/np.sqrt(x)\n"
-    "(0.4299173120614631-0.30417298187455954j)\n"
-    "\n"
-    "The so-called \"first lemniscate constant\":\n"
-    "\n"
-    ">>> elliprf(0, 1, 2)\n"
-    "1.3110287771460598\n"
-    "\n"
-    ">>> from scipy.special import gamma\n"
-    ">>> gamma(0.25)**2/(4*np.sqrt(2*np.pi))\n"
-    "1.3110287771460598")
-ufunc_elliprf_loops[0] = loop_d_ddd__As_fff_f
-ufunc_elliprf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_elliprf_loops[2] = loop_D_DDD__As_FFF_F
-ufunc_elliprf_loops[3] = loop_D_DDD__As_DDD_D
-ufunc_elliprf_types[0] = NPY_FLOAT
-ufunc_elliprf_types[1] = NPY_FLOAT
-ufunc_elliprf_types[2] = NPY_FLOAT
-ufunc_elliprf_types[3] = NPY_FLOAT
-ufunc_elliprf_types[4] = NPY_DOUBLE
-ufunc_elliprf_types[5] = NPY_DOUBLE
-ufunc_elliprf_types[6] = NPY_DOUBLE
-ufunc_elliprf_types[7] = NPY_DOUBLE
-ufunc_elliprf_types[8] = NPY_CFLOAT
-ufunc_elliprf_types[9] = NPY_CFLOAT
-ufunc_elliprf_types[10] = NPY_CFLOAT
-ufunc_elliprf_types[11] = NPY_CFLOAT
-ufunc_elliprf_types[12] = NPY_CDOUBLE
-ufunc_elliprf_types[13] = NPY_CDOUBLE
-ufunc_elliprf_types[14] = NPY_CDOUBLE
-ufunc_elliprf_types[15] = NPY_CDOUBLE
-ufunc_elliprf_ptr[2*0] = scipy.special._ufuncs_cxx._export_fellint_RF
-ufunc_elliprf_ptr[2*0+1] = ("elliprf")
-ufunc_elliprf_ptr[2*1] = scipy.special._ufuncs_cxx._export_fellint_RF
-ufunc_elliprf_ptr[2*1+1] = ("elliprf")
-ufunc_elliprf_ptr[2*2] = scipy.special._ufuncs_cxx._export_cellint_RF
-ufunc_elliprf_ptr[2*2+1] = ("elliprf")
-ufunc_elliprf_ptr[2*3] = scipy.special._ufuncs_cxx._export_cellint_RF
-ufunc_elliprf_ptr[2*3+1] = ("elliprf")
-ufunc_elliprf_data[0] = &ufunc_elliprf_ptr[2*0]
-ufunc_elliprf_data[1] = &ufunc_elliprf_ptr[2*1]
-ufunc_elliprf_data[2] = &ufunc_elliprf_ptr[2*2]
-ufunc_elliprf_data[3] = &ufunc_elliprf_ptr[2*3]
-elliprf = np.PyUFunc_FromFuncAndData(ufunc_elliprf_loops, ufunc_elliprf_data, ufunc_elliprf_types, 4, 3, 1, 0, "elliprf", ufunc_elliprf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_elliprg_loops[4]
-cdef void *ufunc_elliprg_ptr[8]
-cdef void *ufunc_elliprg_data[4]
-cdef char ufunc_elliprg_types[16]
-cdef char *ufunc_elliprg_doc = (
-    "elliprg(x, y, z, out=None)\n"
-    "\n"
-    "Completely-symmetric elliptic integral of the second kind.\n"
-    "\n"
-    "The function RG is defined as [1]_\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    R_{\\mathrm{G}}(x, y, z) =\n"
-    "       \\frac{1}{4} \\int_0^{+\\infty} [(t + x) (t + y) (t + z)]^{-1/2}\n"
-    "       \\left(\\frac{x}{t + x} + \\frac{y}{t + y} + \\frac{z}{t + z}\\right) t\n"
-    "       dt\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x, y, z : array_like\n"
-    "    Real or complex input parameters. `x`, `y`, or `z` can be any number in\n"
-    "    the complex plane cut along the negative real axis.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "R : scalar or ndarray\n"
-    "    Value of the integral. If all of `x`, `y`, and `z` are real, the return\n"
-    "    value is real. Otherwise, the return value is complex.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "elliprc : Degenerate symmetric integral.\n"
-    "elliprd : Symmetric elliptic integral of the second kind.\n"
-    "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
-    "elliprj : Symmetric elliptic integral of the third kind.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The implementation uses the relation [1]_\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    2 R_{\\mathrm{G}}(x, y, z) =\n"
-    "       z R_{\\mathrm{F}}(x, y, z) -\n"
-    "       \\frac{1}{3} (x - z) (y - z) R_{\\mathrm{D}}(x, y, z) +\n"
-    "       \\sqrt{\\frac{x y}{z}}\n"
-    "\n"
-    "and the symmetry of `x`, `y`, `z` when at least one non-zero parameter can\n"
-    "be chosen as the pivot. When one of the arguments is close to zero, the AGM\n"
-    "method is applied instead. Other special cases are computed following Ref.\n"
-    "[2]_\n"
-    "\n"
-    ".. versionadded:: 1.8.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] B. C. Carlson, \"Numerical computation of real or complex elliptic\n"
-    "       integrals,\" Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.\n"
-    "       https://arxiv.org/abs/math/9409227\n"
-    "       https://doi.org/10.1007/BF02198293\n"
-    ".. [2] B. C. Carlson, ed., Chapter 19 in \"Digital Library of Mathematical\n"
-    "       Functions,\" NIST, US Dept. of Commerce.\n"
-    "       https://dlmf.nist.gov/19.16.E1\n"
-    "       https://dlmf.nist.gov/19.20.ii\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Basic homogeneity property:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import elliprg\n"
-    "\n"
-    ">>> x = 1.2 + 3.4j\n"
-    ">>> y = 5.\n"
-    ">>> z = 6.\n"
-    ">>> scale = 0.3 + 0.4j\n"
-    ">>> elliprg(scale*x, scale*y, scale*z)\n"
-    "(1.195936862005246+0.8470988320464167j)\n"
-    "\n"
-    ">>> elliprg(x, y, z)*np.sqrt(scale)\n"
-    "(1.195936862005246+0.8470988320464165j)\n"
-    "\n"
-    "Simplifications:\n"
-    "\n"
-    ">>> elliprg(0, y, y)\n"
-    "1.756203682760182\n"
-    "\n"
-    ">>> 0.25*np.pi*np.sqrt(y)\n"
-    "1.7562036827601817\n"
-    "\n"
-    ">>> elliprg(0, 0, z)\n"
-    "1.224744871391589\n"
-    "\n"
-    ">>> 0.5*np.sqrt(z)\n"
-    "1.224744871391589\n"
-    "\n"
-    "The surface area of a triaxial ellipsoid with semiaxes ``a``, ``b``, and\n"
-    "``c`` is given by\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    S = 4 \\pi a b c R_{\\mathrm{G}}(1 / a^2, 1 / b^2, 1 / c^2).\n"
-    "\n"
-    ">>> def ellipsoid_area(a, b, c):\n"
-    "...     r = 4.0 * np.pi * a * b * c\n"
-    "...     return r * elliprg(1.0 / (a * a), 1.0 / (b * b), 1.0 / (c * c))\n"
-    ">>> print(ellipsoid_area(1, 3, 5))\n"
-    "108.62688289491807")
-ufunc_elliprg_loops[0] = loop_d_ddd__As_fff_f
-ufunc_elliprg_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_elliprg_loops[2] = loop_D_DDD__As_FFF_F
-ufunc_elliprg_loops[3] = loop_D_DDD__As_DDD_D
-ufunc_elliprg_types[0] = NPY_FLOAT
-ufunc_elliprg_types[1] = NPY_FLOAT
-ufunc_elliprg_types[2] = NPY_FLOAT
-ufunc_elliprg_types[3] = NPY_FLOAT
-ufunc_elliprg_types[4] = NPY_DOUBLE
-ufunc_elliprg_types[5] = NPY_DOUBLE
-ufunc_elliprg_types[6] = NPY_DOUBLE
-ufunc_elliprg_types[7] = NPY_DOUBLE
-ufunc_elliprg_types[8] = NPY_CFLOAT
-ufunc_elliprg_types[9] = NPY_CFLOAT
-ufunc_elliprg_types[10] = NPY_CFLOAT
-ufunc_elliprg_types[11] = NPY_CFLOAT
-ufunc_elliprg_types[12] = NPY_CDOUBLE
-ufunc_elliprg_types[13] = NPY_CDOUBLE
-ufunc_elliprg_types[14] = NPY_CDOUBLE
-ufunc_elliprg_types[15] = NPY_CDOUBLE
-ufunc_elliprg_ptr[2*0] = scipy.special._ufuncs_cxx._export_fellint_RG
-ufunc_elliprg_ptr[2*0+1] = ("elliprg")
-ufunc_elliprg_ptr[2*1] = scipy.special._ufuncs_cxx._export_fellint_RG
-ufunc_elliprg_ptr[2*1+1] = ("elliprg")
-ufunc_elliprg_ptr[2*2] = scipy.special._ufuncs_cxx._export_cellint_RG
-ufunc_elliprg_ptr[2*2+1] = ("elliprg")
-ufunc_elliprg_ptr[2*3] = scipy.special._ufuncs_cxx._export_cellint_RG
-ufunc_elliprg_ptr[2*3+1] = ("elliprg")
-ufunc_elliprg_data[0] = &ufunc_elliprg_ptr[2*0]
-ufunc_elliprg_data[1] = &ufunc_elliprg_ptr[2*1]
-ufunc_elliprg_data[2] = &ufunc_elliprg_ptr[2*2]
-ufunc_elliprg_data[3] = &ufunc_elliprg_ptr[2*3]
-elliprg = np.PyUFunc_FromFuncAndData(ufunc_elliprg_loops, ufunc_elliprg_data, ufunc_elliprg_types, 4, 3, 1, 0, "elliprg", ufunc_elliprg_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_elliprj_loops[4]
-cdef void *ufunc_elliprj_ptr[8]
-cdef void *ufunc_elliprj_data[4]
-cdef char ufunc_elliprj_types[20]
-cdef char *ufunc_elliprj_doc = (
-    "elliprj(x, y, z, p, out=None)\n"
-    "\n"
-    "Symmetric elliptic integral of the third kind.\n"
-    "\n"
-    "The function RJ is defined as [1]_\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    R_{\\mathrm{J}}(x, y, z, p) =\n"
-    "       \\frac{3}{2} \\int_0^{+\\infty} [(t + x) (t + y) (t + z)]^{-1/2}\n"
-    "       (t + p)^{-1} dt\n"
-    "\n"
-    ".. warning::\n"
-    "    This function should be considered experimental when the inputs are\n"
-    "    unbalanced.  Check correctness with another independent implementation.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x, y, z, p : array_like\n"
-    "    Real or complex input parameters. `x`, `y`, or `z` are numbers in\n"
-    "    the complex plane cut along the negative real axis (subject to further\n"
-    "    constraints, see Notes), and at most one of them can be zero. `p` must\n"
-    "    be non-zero.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "R : scalar or ndarray\n"
-    "    Value of the integral. If all of `x`, `y`, `z`, and `p` are real, the\n"
-    "    return value is real. Otherwise, the return value is complex.\n"
-    "\n"
-    "    If `p` is real and negative, while `x`, `y`, and `z` are real,\n"
-    "    non-negative, and at most one of them is zero, the Cauchy principal\n"
-    "    value is returned. [1]_ [2]_\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "elliprc : Degenerate symmetric integral.\n"
-    "elliprd : Symmetric elliptic integral of the second kind.\n"
-    "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
-    "elliprg : Completely-symmetric elliptic integral of the second kind.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The code implements Carlson's algorithm based on the duplication theorems\n"
-    "and series expansion up to the 7th order. [3]_ The algorithm is slightly\n"
-    "different from its earlier incarnation as it appears in [1]_, in that the\n"
-    "call to `elliprc` (or ``atan``/``atanh``, see [4]_) is no longer needed in\n"
-    "the inner loop. Asymptotic approximations are used where arguments differ\n"
-    "widely in the order of magnitude. [5]_\n"
-    "\n"
-    "The input values are subject to certain sufficient but not necessary\n"
-    "constraints when input arguments are complex. Notably, ``x``, ``y``, and\n"
-    "``z`` must have non-negative real parts, unless two of them are\n"
-    "non-negative and complex-conjugates to each other while the other is a real\n"
-    "non-negative number. [1]_ If the inputs do not satisfy the sufficient\n"
-    "condition described in Ref. [1]_ they are rejected outright with the output\n"
-    "set to NaN.\n"
-    "\n"
-    "In the case where one of ``x``, ``y``, and ``z`` is equal to ``p``, the\n"
-    "function ``elliprd`` should be preferred because of its less restrictive\n"
-    "domain.\n"
-    "\n"
-    ".. versionadded:: 1.8.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] B. C. Carlson, \"Numerical computation of real or complex elliptic\n"
-    "       integrals,\" Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.\n"
-    "       https://arxiv.org/abs/math/9409227\n"
-    "       https://doi.org/10.1007/BF02198293\n"
-    ".. [2] B. C. Carlson, ed., Chapter 19 in \"Digital Library of Mathematical\n"
-    "       Functions,\" NIST, US Dept. of Commerce.\n"
-    "       https://dlmf.nist.gov/19.20.iii\n"
-    ".. [3] B. C. Carlson, J. FitzSimmons, \"Reduction Theorems for Elliptic\n"
-    "       Integrands with the Square Root of Two Quadratic Factors,\" J.\n"
-    "       Comput. Appl. Math., vol. 118, nos. 1-2, pp. 71-85, 2000.\n"
-    "       https://doi.org/10.1016/S0377-0427(00)00282-X\n"
-    ".. [4] F. Johansson, \"Numerical Evaluation of Elliptic Functions, Elliptic\n"
-    "       Integrals and Modular Forms,\" in J. Blumlein, C. Schneider, P.\n"
-    "       Paule, eds., \"Elliptic Integrals, Elliptic Functions and Modular\n"
-    "       Forms in Quantum Field Theory,\" pp. 269-293, 2019 (Cham,\n"
-    "       Switzerland: Springer Nature Switzerland)\n"
-    "       https://arxiv.org/abs/1806.06725\n"
-    "       https://doi.org/10.1007/978-3-030-04480-0\n"
-    ".. [5] B. C. Carlson, J. L. Gustafson, \"Asymptotic Approximations for\n"
-    "       Symmetric Elliptic Integrals,\" SIAM J. Math. Anls., vol. 25, no. 2,\n"
-    "       pp. 288-303, 1994.\n"
-    "       https://arxiv.org/abs/math/9310223\n"
-    "       https://doi.org/10.1137/S0036141092228477\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Basic homogeneity property:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import elliprj\n"
-    "\n"
-    ">>> x = 1.2 + 3.4j\n"
-    ">>> y = 5.\n"
-    ">>> z = 6.\n"
-    ">>> p = 7.\n"
-    ">>> scale = 0.3 - 0.4j\n"
-    ">>> elliprj(scale*x, scale*y, scale*z, scale*p)\n"
-    "(0.10834905565679157+0.19694950747103812j)\n"
-    "\n"
-    ">>> elliprj(x, y, z, p)*np.power(scale, -1.5)\n"
-    "(0.10834905565679556+0.19694950747103854j)\n"
-    "\n"
-    "Reduction to simpler elliptic integral:\n"
-    "\n"
-    ">>> elliprj(x, y, z, z)\n"
-    "(0.08288462362195129-0.028376809745123258j)\n"
-    "\n"
-    ">>> from scipy.special import elliprd\n"
-    ">>> elliprd(x, y, z)\n"
-    "(0.08288462362195136-0.028376809745123296j)\n"
-    "\n"
-    "All arguments coincide:\n"
-    "\n"
-    ">>> elliprj(x, x, x, x)\n"
-    "(-0.03986825876151896-0.14051741840449586j)\n"
-    "\n"
-    ">>> np.power(x, -1.5)\n"
-    "(-0.03986825876151894-0.14051741840449583j)")
-ufunc_elliprj_loops[0] = loop_d_dddd__As_ffff_f
-ufunc_elliprj_loops[1] = loop_d_dddd__As_dddd_d
-ufunc_elliprj_loops[2] = loop_D_DDDD__As_FFFF_F
-ufunc_elliprj_loops[3] = loop_D_DDDD__As_DDDD_D
-ufunc_elliprj_types[0] = NPY_FLOAT
-ufunc_elliprj_types[1] = NPY_FLOAT
-ufunc_elliprj_types[2] = NPY_FLOAT
-ufunc_elliprj_types[3] = NPY_FLOAT
-ufunc_elliprj_types[4] = NPY_FLOAT
-ufunc_elliprj_types[5] = NPY_DOUBLE
-ufunc_elliprj_types[6] = NPY_DOUBLE
-ufunc_elliprj_types[7] = NPY_DOUBLE
-ufunc_elliprj_types[8] = NPY_DOUBLE
-ufunc_elliprj_types[9] = NPY_DOUBLE
-ufunc_elliprj_types[10] = NPY_CFLOAT
-ufunc_elliprj_types[11] = NPY_CFLOAT
-ufunc_elliprj_types[12] = NPY_CFLOAT
-ufunc_elliprj_types[13] = NPY_CFLOAT
-ufunc_elliprj_types[14] = NPY_CFLOAT
-ufunc_elliprj_types[15] = NPY_CDOUBLE
-ufunc_elliprj_types[16] = NPY_CDOUBLE
-ufunc_elliprj_types[17] = NPY_CDOUBLE
-ufunc_elliprj_types[18] = NPY_CDOUBLE
-ufunc_elliprj_types[19] = NPY_CDOUBLE
-ufunc_elliprj_ptr[2*0] = scipy.special._ufuncs_cxx._export_fellint_RJ
-ufunc_elliprj_ptr[2*0+1] = ("elliprj")
-ufunc_elliprj_ptr[2*1] = scipy.special._ufuncs_cxx._export_fellint_RJ
-ufunc_elliprj_ptr[2*1+1] = ("elliprj")
-ufunc_elliprj_ptr[2*2] = scipy.special._ufuncs_cxx._export_cellint_RJ
-ufunc_elliprj_ptr[2*2+1] = ("elliprj")
-ufunc_elliprj_ptr[2*3] = scipy.special._ufuncs_cxx._export_cellint_RJ
-ufunc_elliprj_ptr[2*3+1] = ("elliprj")
-ufunc_elliprj_data[0] = &ufunc_elliprj_ptr[2*0]
-ufunc_elliprj_data[1] = &ufunc_elliprj_ptr[2*1]
-ufunc_elliprj_data[2] = &ufunc_elliprj_ptr[2*2]
-ufunc_elliprj_data[3] = &ufunc_elliprj_ptr[2*3]
-elliprj = np.PyUFunc_FromFuncAndData(ufunc_elliprj_loops, ufunc_elliprj_data, ufunc_elliprj_types, 4, 4, 1, 0, "elliprj", ufunc_elliprj_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_entr_loops[2]
-cdef void *ufunc_entr_ptr[4]
-cdef void *ufunc_entr_data[2]
-cdef char ufunc_entr_types[4]
-cdef char *ufunc_entr_doc = (
-    "entr(x, out=None)\n"
-    "\n"
-    "Elementwise function for computing entropy.\n"
-    "\n"
-    ".. math:: \\text{entr}(x) = \\begin{cases} - x \\log(x) & x > 0  \\\\ 0 & x = 0\n"
-    "          \\\\ -\\infty & \\text{otherwise} \\end{cases}\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : ndarray\n"
-    "    Input array.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "res : scalar or ndarray\n"
-    "    The value of the elementwise entropy function at the given points `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "kl_div, rel_entr, scipy.stats.entropy\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    ".. versionadded:: 0.15.0\n"
-    "\n"
-    "This function is concave.\n"
-    "\n"
-    "The origin of this function is in convex programming; see [1]_.\n"
-    "Given a probability distribution :math:`p_1, \\ldots, p_n`,\n"
-    "the definition of entropy in the context of *information theory* is\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    \\sum_{i = 1}^n \\mathrm{entr}(p_i).\n"
-    "\n"
-    "To compute the latter quantity, use `scipy.stats.entropy`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Boyd, Stephen and Lieven Vandenberghe. *Convex optimization*.\n"
-    "       Cambridge University Press, 2004.\n"
-    "       :doi:`https://doi.org/10.1017/CBO9780511804441`")
-ufunc_entr_loops[0] = loop_d_d__As_f_f
-ufunc_entr_loops[1] = loop_d_d__As_d_d
-ufunc_entr_types[0] = NPY_FLOAT
-ufunc_entr_types[1] = NPY_FLOAT
-ufunc_entr_types[2] = NPY_DOUBLE
-ufunc_entr_types[3] = NPY_DOUBLE
-ufunc_entr_ptr[2*0] = _func_entr
-ufunc_entr_ptr[2*0+1] = ("entr")
-ufunc_entr_ptr[2*1] = _func_entr
-ufunc_entr_ptr[2*1+1] = ("entr")
-ufunc_entr_data[0] = &ufunc_entr_ptr[2*0]
-ufunc_entr_data[1] = &ufunc_entr_ptr[2*1]
-entr = np.PyUFunc_FromFuncAndData(ufunc_entr_loops, ufunc_entr_data, ufunc_entr_types, 2, 1, 1, 0, "entr", ufunc_entr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_erf_loops[4]
-cdef void *ufunc_erf_ptr[8]
-cdef void *ufunc_erf_data[4]
-cdef char ufunc_erf_types[8]
-cdef char *ufunc_erf_doc = (
-    "erf(z, out=None)\n"
-    "\n"
-    "Returns the error function of complex argument.\n"
-    "\n"
-    "It is defined as ``2/sqrt(pi)*integral(exp(-t**2), t=0..z)``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : ndarray\n"
-    "    Input array.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "res : scalar or ndarray\n"
-    "    The values of the error function at the given points `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "erfc, erfinv, erfcinv, wofz, erfcx, erfi\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The cumulative of the unit normal distribution is given by\n"
-    "``Phi(z) = 1/2[1 + erf(z/sqrt(2))]``.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] https://en.wikipedia.org/wiki/Error_function\n"
-    ".. [2] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover,\n"
-    "    1972. http://www.math.sfu.ca/~cbm/aands/page_297.htm\n"
-    ".. [3] Steven G. Johnson, Faddeeva W function implementation.\n"
-    "   http://ab-initio.mit.edu/Faddeeva\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy import special\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> x = np.linspace(-3, 3)\n"
-    ">>> plt.plot(x, special.erf(x))\n"
-    ">>> plt.xlabel('$x$')\n"
-    ">>> plt.ylabel('$erf(x)$')\n"
-    ">>> plt.show()")
-ufunc_erf_loops[0] = loop_d_d__As_f_f
-ufunc_erf_loops[1] = loop_d_d__As_d_d
-ufunc_erf_loops[2] = loop_D_D__As_F_F
-ufunc_erf_loops[3] = loop_D_D__As_D_D
-ufunc_erf_types[0] = NPY_FLOAT
-ufunc_erf_types[1] = NPY_FLOAT
-ufunc_erf_types[2] = NPY_DOUBLE
-ufunc_erf_types[3] = NPY_DOUBLE
-ufunc_erf_types[4] = NPY_CFLOAT
-ufunc_erf_types[5] = NPY_CFLOAT
-ufunc_erf_types[6] = NPY_CDOUBLE
-ufunc_erf_types[7] = NPY_CDOUBLE
-ufunc_erf_ptr[2*0] = _func_cephes_erf
-ufunc_erf_ptr[2*0+1] = ("erf")
-ufunc_erf_ptr[2*1] = _func_cephes_erf
-ufunc_erf_ptr[2*1+1] = ("erf")
-ufunc_erf_ptr[2*2] = scipy.special._ufuncs_cxx._export_faddeeva_erf
-ufunc_erf_ptr[2*2+1] = ("erf")
-ufunc_erf_ptr[2*3] = scipy.special._ufuncs_cxx._export_faddeeva_erf
-ufunc_erf_ptr[2*3+1] = ("erf")
-ufunc_erf_data[0] = &ufunc_erf_ptr[2*0]
-ufunc_erf_data[1] = &ufunc_erf_ptr[2*1]
-ufunc_erf_data[2] = &ufunc_erf_ptr[2*2]
-ufunc_erf_data[3] = &ufunc_erf_ptr[2*3]
-erf = np.PyUFunc_FromFuncAndData(ufunc_erf_loops, ufunc_erf_data, ufunc_erf_types, 4, 1, 1, 0, "erf", ufunc_erf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_erfc_loops[4]
-cdef void *ufunc_erfc_ptr[8]
-cdef void *ufunc_erfc_data[4]
-cdef char ufunc_erfc_types[8]
-cdef char *ufunc_erfc_doc = (
-    "erfc(x, out=None)\n"
-    "\n"
-    "Complementary error function, ``1 - erf(x)``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real or complex valued argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the complementary error function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "erf, erfi, erfcx, dawsn, wofz\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Steven G. Johnson, Faddeeva W function implementation.\n"
-    "   http://ab-initio.mit.edu/Faddeeva\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy import special\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> x = np.linspace(-3, 3)\n"
-    ">>> plt.plot(x, special.erfc(x))\n"
-    ">>> plt.xlabel('$x$')\n"
-    ">>> plt.ylabel('$erfc(x)$')\n"
-    ">>> plt.show()")
-ufunc_erfc_loops[0] = loop_d_d__As_f_f
-ufunc_erfc_loops[1] = loop_d_d__As_d_d
-ufunc_erfc_loops[2] = loop_D_D__As_F_F
-ufunc_erfc_loops[3] = loop_D_D__As_D_D
-ufunc_erfc_types[0] = NPY_FLOAT
-ufunc_erfc_types[1] = NPY_FLOAT
-ufunc_erfc_types[2] = NPY_DOUBLE
-ufunc_erfc_types[3] = NPY_DOUBLE
-ufunc_erfc_types[4] = NPY_CFLOAT
-ufunc_erfc_types[5] = NPY_CFLOAT
-ufunc_erfc_types[6] = NPY_CDOUBLE
-ufunc_erfc_types[7] = NPY_CDOUBLE
-ufunc_erfc_ptr[2*0] = _func_cephes_erfc
-ufunc_erfc_ptr[2*0+1] = ("erfc")
-ufunc_erfc_ptr[2*1] = _func_cephes_erfc
-ufunc_erfc_ptr[2*1+1] = ("erfc")
-ufunc_erfc_ptr[2*2] = scipy.special._ufuncs_cxx._export_faddeeva_erfc_complex
-ufunc_erfc_ptr[2*2+1] = ("erfc")
-ufunc_erfc_ptr[2*3] = scipy.special._ufuncs_cxx._export_faddeeva_erfc_complex
-ufunc_erfc_ptr[2*3+1] = ("erfc")
-ufunc_erfc_data[0] = &ufunc_erfc_ptr[2*0]
-ufunc_erfc_data[1] = &ufunc_erfc_ptr[2*1]
-ufunc_erfc_data[2] = &ufunc_erfc_ptr[2*2]
-ufunc_erfc_data[3] = &ufunc_erfc_ptr[2*3]
-erfc = np.PyUFunc_FromFuncAndData(ufunc_erfc_loops, ufunc_erfc_data, ufunc_erfc_types, 4, 1, 1, 0, "erfc", ufunc_erfc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_erfcinv_loops[2]
-cdef void *ufunc_erfcinv_ptr[4]
-cdef void *ufunc_erfcinv_data[2]
-cdef char ufunc_erfcinv_types[4]
-cdef char *ufunc_erfcinv_doc = (
-    "erfcinv(y, out=None)\n"
-    "\n"
-    "Inverse of the complementary error function.\n"
-    "\n"
-    "Computes the inverse of the complementary error function.\n"
-    "\n"
-    "In the complex domain, there is no unique complex number w satisfying\n"
-    "erfc(w)=z. This indicates a true inverse function would be multivalued.\n"
-    "When the domain restricts to the real, 0 < x < 2, there is a unique real\n"
-    "number satisfying erfc(erfcinv(x)) = erfcinv(erfc(x)).\n"
-    "\n"
-    "It is related to inverse of the error function by erfcinv(1-x) = erfinv(x)\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "y : ndarray\n"
-    "    Argument at which to evaluate. Domain: [0, 2]\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "erfcinv : scalar or ndarray\n"
-    "    The inverse of erfc of y, element-wise\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "erf : Error function of a complex argument\n"
-    "erfc : Complementary error function, ``1 - erf(x)``\n"
-    "erfinv : Inverse of the error function\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> from scipy.special import erfcinv\n"
-    "\n"
-    ">>> erfcinv(0.5)\n"
-    "0.4769362762044699\n"
-    "\n"
-    ">>> y = np.linspace(0.0, 2.0, num=11)\n"
-    ">>> erfcinv(y)\n"
-    "array([        inf,  0.9061938 ,  0.59511608,  0.37080716,  0.17914345,\n"
-    "       -0.        , -0.17914345, -0.37080716, -0.59511608, -0.9061938 ,\n"
-    "              -inf])\n"
-    "\n"
-    "Plot the function:\n"
-    "\n"
-    ">>> y = np.linspace(0, 2, 200)\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> ax.plot(y, erfcinv(y))\n"
-    ">>> ax.grid(True)\n"
-    ">>> ax.set_xlabel('y')\n"
-    ">>> ax.set_title('erfcinv(y)')\n"
-    ">>> plt.show()")
-ufunc_erfcinv_loops[0] = loop_d_d__As_f_f
-ufunc_erfcinv_loops[1] = loop_d_d__As_d_d
-ufunc_erfcinv_types[0] = NPY_FLOAT
-ufunc_erfcinv_types[1] = NPY_FLOAT
-ufunc_erfcinv_types[2] = NPY_DOUBLE
-ufunc_erfcinv_types[3] = NPY_DOUBLE
-ufunc_erfcinv_ptr[2*0] = _func_cephes_erfcinv
-ufunc_erfcinv_ptr[2*0+1] = ("erfcinv")
-ufunc_erfcinv_ptr[2*1] = _func_cephes_erfcinv
-ufunc_erfcinv_ptr[2*1+1] = ("erfcinv")
-ufunc_erfcinv_data[0] = &ufunc_erfcinv_ptr[2*0]
-ufunc_erfcinv_data[1] = &ufunc_erfcinv_ptr[2*1]
-erfcinv = np.PyUFunc_FromFuncAndData(ufunc_erfcinv_loops, ufunc_erfcinv_data, ufunc_erfcinv_types, 2, 1, 1, 0, "erfcinv", ufunc_erfcinv_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_erfcx_loops[4]
-cdef void *ufunc_erfcx_ptr[8]
-cdef void *ufunc_erfcx_data[4]
-cdef char ufunc_erfcx_types[8]
-cdef char *ufunc_erfcx_doc = (
-    "erfcx(x, out=None)\n"
-    "\n"
-    "Scaled complementary error function, ``exp(x**2) * erfc(x)``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real or complex valued argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the scaled complementary error function\n"
-    "\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "erf, erfc, erfi, dawsn, wofz\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "\n"
-    ".. versionadded:: 0.12.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Steven G. Johnson, Faddeeva W function implementation.\n"
-    "   http://ab-initio.mit.edu/Faddeeva\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy import special\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> x = np.linspace(-3, 3)\n"
-    ">>> plt.plot(x, special.erfcx(x))\n"
-    ">>> plt.xlabel('$x$')\n"
-    ">>> plt.ylabel('$erfcx(x)$')\n"
-    ">>> plt.show()")
-ufunc_erfcx_loops[0] = loop_d_d__As_f_f
-ufunc_erfcx_loops[1] = loop_d_d__As_d_d
-ufunc_erfcx_loops[2] = loop_D_D__As_F_F
-ufunc_erfcx_loops[3] = loop_D_D__As_D_D
-ufunc_erfcx_types[0] = NPY_FLOAT
-ufunc_erfcx_types[1] = NPY_FLOAT
-ufunc_erfcx_types[2] = NPY_DOUBLE
-ufunc_erfcx_types[3] = NPY_DOUBLE
-ufunc_erfcx_types[4] = NPY_CFLOAT
-ufunc_erfcx_types[5] = NPY_CFLOAT
-ufunc_erfcx_types[6] = NPY_CDOUBLE
-ufunc_erfcx_types[7] = NPY_CDOUBLE
-ufunc_erfcx_ptr[2*0] = scipy.special._ufuncs_cxx._export_faddeeva_erfcx
-ufunc_erfcx_ptr[2*0+1] = ("erfcx")
-ufunc_erfcx_ptr[2*1] = scipy.special._ufuncs_cxx._export_faddeeva_erfcx
-ufunc_erfcx_ptr[2*1+1] = ("erfcx")
-ufunc_erfcx_ptr[2*2] = scipy.special._ufuncs_cxx._export_faddeeva_erfcx_complex
-ufunc_erfcx_ptr[2*2+1] = ("erfcx")
-ufunc_erfcx_ptr[2*3] = scipy.special._ufuncs_cxx._export_faddeeva_erfcx_complex
-ufunc_erfcx_ptr[2*3+1] = ("erfcx")
-ufunc_erfcx_data[0] = &ufunc_erfcx_ptr[2*0]
-ufunc_erfcx_data[1] = &ufunc_erfcx_ptr[2*1]
-ufunc_erfcx_data[2] = &ufunc_erfcx_ptr[2*2]
-ufunc_erfcx_data[3] = &ufunc_erfcx_ptr[2*3]
-erfcx = np.PyUFunc_FromFuncAndData(ufunc_erfcx_loops, ufunc_erfcx_data, ufunc_erfcx_types, 4, 1, 1, 0, "erfcx", ufunc_erfcx_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_erfi_loops[4]
-cdef void *ufunc_erfi_ptr[8]
-cdef void *ufunc_erfi_data[4]
-cdef char ufunc_erfi_types[8]
-cdef char *ufunc_erfi_doc = (
-    "erfi(z, out=None)\n"
-    "\n"
-    "Imaginary error function, ``-i erf(i z)``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "z : array_like\n"
-    "    Real or complex valued argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the imaginary error function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "erf, erfc, erfcx, dawsn, wofz\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "\n"
-    ".. versionadded:: 0.12.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Steven G. Johnson, Faddeeva W function implementation.\n"
-    "   http://ab-initio.mit.edu/Faddeeva\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy import special\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> x = np.linspace(-3, 3)\n"
-    ">>> plt.plot(x, special.erfi(x))\n"
-    ">>> plt.xlabel('$x$')\n"
-    ">>> plt.ylabel('$erfi(x)$')\n"
-    ">>> plt.show()")
-ufunc_erfi_loops[0] = loop_d_d__As_f_f
-ufunc_erfi_loops[1] = loop_d_d__As_d_d
-ufunc_erfi_loops[2] = loop_D_D__As_F_F
-ufunc_erfi_loops[3] = loop_D_D__As_D_D
-ufunc_erfi_types[0] = NPY_FLOAT
-ufunc_erfi_types[1] = NPY_FLOAT
-ufunc_erfi_types[2] = NPY_DOUBLE
-ufunc_erfi_types[3] = NPY_DOUBLE
-ufunc_erfi_types[4] = NPY_CFLOAT
-ufunc_erfi_types[5] = NPY_CFLOAT
-ufunc_erfi_types[6] = NPY_CDOUBLE
-ufunc_erfi_types[7] = NPY_CDOUBLE
-ufunc_erfi_ptr[2*0] = scipy.special._ufuncs_cxx._export_faddeeva_erfi
-ufunc_erfi_ptr[2*0+1] = ("erfi")
-ufunc_erfi_ptr[2*1] = scipy.special._ufuncs_cxx._export_faddeeva_erfi
-ufunc_erfi_ptr[2*1+1] = ("erfi")
-ufunc_erfi_ptr[2*2] = scipy.special._ufuncs_cxx._export_faddeeva_erfi_complex
-ufunc_erfi_ptr[2*2+1] = ("erfi")
-ufunc_erfi_ptr[2*3] = scipy.special._ufuncs_cxx._export_faddeeva_erfi_complex
-ufunc_erfi_ptr[2*3+1] = ("erfi")
-ufunc_erfi_data[0] = &ufunc_erfi_ptr[2*0]
-ufunc_erfi_data[1] = &ufunc_erfi_ptr[2*1]
-ufunc_erfi_data[2] = &ufunc_erfi_ptr[2*2]
-ufunc_erfi_data[3] = &ufunc_erfi_ptr[2*3]
-erfi = np.PyUFunc_FromFuncAndData(ufunc_erfi_loops, ufunc_erfi_data, ufunc_erfi_types, 4, 1, 1, 0, "erfi", ufunc_erfi_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_erfinv_loops[2]
-cdef void *ufunc_erfinv_ptr[4]
-cdef void *ufunc_erfinv_data[2]
-cdef char ufunc_erfinv_types[4]
-cdef char *ufunc_erfinv_doc = (
-    "erfinv(y, out=None)\n"
-    "\n"
-    "Inverse of the error function.\n"
-    "\n"
-    "Computes the inverse of the error function.\n"
-    "\n"
-    "In the complex domain, there is no unique complex number w satisfying\n"
-    "erf(w)=z. This indicates a true inverse function would be multivalued.\n"
-    "When the domain restricts to the real, -1 < x < 1, there is a unique real\n"
-    "number satisfying erf(erfinv(x)) = x.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "y : ndarray\n"
-    "    Argument at which to evaluate. Domain: [-1, 1]\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "erfinv : scalar or ndarray\n"
-    "    The inverse of erf of y, element-wise\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "erf : Error function of a complex argument\n"
-    "erfc : Complementary error function, ``1 - erf(x)``\n"
-    "erfcinv : Inverse of the complementary error function\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> from scipy.special import erfinv, erf\n"
-    "\n"
-    ">>> erfinv(0.5)\n"
-    "0.4769362762044699\n"
-    "\n"
-    ">>> y = np.linspace(-1.0, 1.0, num=9)\n"
-    ">>> x = erfinv(y)\n"
-    ">>> x\n"
-    "array([       -inf, -0.81341985, -0.47693628, -0.22531206,  0.        ,\n"
-    "        0.22531206,  0.47693628,  0.81341985,         inf])\n"
-    "\n"
-    "Verify that ``erf(erfinv(y))`` is ``y``.\n"
-    "\n"
-    ">>> erf(x)\n"
-    "array([-1.  , -0.75, -0.5 , -0.25,  0.  ,  0.25,  0.5 ,  0.75,  1.  ])\n"
-    "\n"
-    "Plot the function:\n"
-    "\n"
-    ">>> y = np.linspace(-1, 1, 200)\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> ax.plot(y, erfinv(y))\n"
-    ">>> ax.grid(True)\n"
-    ">>> ax.set_xlabel('y')\n"
-    ">>> ax.set_title('erfinv(y)')\n"
-    ">>> plt.show()")
-ufunc_erfinv_loops[0] = loop_f_f__As_f_f
-ufunc_erfinv_loops[1] = loop_d_d__As_d_d
-ufunc_erfinv_types[0] = NPY_FLOAT
-ufunc_erfinv_types[1] = NPY_FLOAT
-ufunc_erfinv_types[2] = NPY_DOUBLE
-ufunc_erfinv_types[3] = NPY_DOUBLE
-ufunc_erfinv_ptr[2*0] = scipy.special._ufuncs_cxx._export_erfinv_float
-ufunc_erfinv_ptr[2*0+1] = ("erfinv")
-ufunc_erfinv_ptr[2*1] = scipy.special._ufuncs_cxx._export_erfinv_double
-ufunc_erfinv_ptr[2*1+1] = ("erfinv")
-ufunc_erfinv_data[0] = &ufunc_erfinv_ptr[2*0]
-ufunc_erfinv_data[1] = &ufunc_erfinv_ptr[2*1]
-erfinv = np.PyUFunc_FromFuncAndData(ufunc_erfinv_loops, ufunc_erfinv_data, ufunc_erfinv_types, 2, 1, 1, 0, "erfinv", ufunc_erfinv_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_chebyc_loops[5]
-cdef void *ufunc_eval_chebyc_ptr[10]
-cdef void *ufunc_eval_chebyc_data[5]
-cdef char ufunc_eval_chebyc_types[15]
-cdef char *ufunc_eval_chebyc_doc = (
-    "eval_chebyc(n, x, out=None)\n"
-    "\n"
-    "Evaluate Chebyshev polynomial of the first kind on [-2, 2] at a\n"
-    "point.\n"
-    "\n"
-    "These polynomials are defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    C_n(x) = 2 T_n(x/2)\n"
-    "\n"
-    "where :math:`T_n` is a Chebyshev polynomial of the first kind. See\n"
-    "22.5.11 in [AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer, the result is\n"
-    "    determined via the relation to `eval_chebyt`.\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the Chebyshev polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "C : scalar or ndarray\n"
-    "    Values of the Chebyshev polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_chebyc : roots and quadrature weights of Chebyshev\n"
-    "               polynomials of the first kind on [-2, 2]\n"
-    "chebyc : Chebyshev polynomial object\n"
-    "numpy.polynomial.chebyshev.Chebyshev : Chebyshev series\n"
-    "eval_chebyt : evaluate Chebycshev polynomials of the first kind\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "They are a scaled version of the Chebyshev polynomials of the\n"
-    "first kind.\n"
-    "\n"
-    ">>> x = np.linspace(-2, 2, 6)\n"
-    ">>> sc.eval_chebyc(3, x)\n"
-    "array([-2.   ,  1.872,  1.136, -1.136, -1.872,  2.   ])\n"
-    ">>> 2 * sc.eval_chebyt(3, x / 2)\n"
-    "array([-2.   ,  1.872,  1.136, -1.136, -1.872,  2.   ])")
-ufunc_eval_chebyc_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_chebyc_loops[1] = loop_d_dd__As_ff_f
-ufunc_eval_chebyc_loops[2] = loop_D_dD__As_fF_F
-ufunc_eval_chebyc_loops[3] = loop_d_dd__As_dd_d
-ufunc_eval_chebyc_loops[4] = loop_D_dD__As_dD_D
-ufunc_eval_chebyc_types[0] = NPY_INTP
-ufunc_eval_chebyc_types[1] = NPY_DOUBLE
-ufunc_eval_chebyc_types[2] = NPY_DOUBLE
-ufunc_eval_chebyc_types[3] = NPY_FLOAT
-ufunc_eval_chebyc_types[4] = NPY_FLOAT
-ufunc_eval_chebyc_types[5] = NPY_FLOAT
-ufunc_eval_chebyc_types[6] = NPY_FLOAT
-ufunc_eval_chebyc_types[7] = NPY_CFLOAT
-ufunc_eval_chebyc_types[8] = NPY_CFLOAT
-ufunc_eval_chebyc_types[9] = NPY_DOUBLE
-ufunc_eval_chebyc_types[10] = NPY_DOUBLE
-ufunc_eval_chebyc_types[11] = NPY_DOUBLE
-ufunc_eval_chebyc_types[12] = NPY_DOUBLE
-ufunc_eval_chebyc_types[13] = NPY_CDOUBLE
-ufunc_eval_chebyc_types[14] = NPY_CDOUBLE
-ufunc_eval_chebyc_ptr[2*0] = _func_eval_chebyc_l
-ufunc_eval_chebyc_ptr[2*0+1] = ("eval_chebyc")
-ufunc_eval_chebyc_ptr[2*1] = _func_eval_chebyc[double]
-ufunc_eval_chebyc_ptr[2*1+1] = ("eval_chebyc")
-ufunc_eval_chebyc_ptr[2*2] = _func_eval_chebyc[double_complex]
-ufunc_eval_chebyc_ptr[2*2+1] = ("eval_chebyc")
-ufunc_eval_chebyc_ptr[2*3] = _func_eval_chebyc[double]
-ufunc_eval_chebyc_ptr[2*3+1] = ("eval_chebyc")
-ufunc_eval_chebyc_ptr[2*4] = _func_eval_chebyc[double_complex]
-ufunc_eval_chebyc_ptr[2*4+1] = ("eval_chebyc")
-ufunc_eval_chebyc_data[0] = &ufunc_eval_chebyc_ptr[2*0]
-ufunc_eval_chebyc_data[1] = &ufunc_eval_chebyc_ptr[2*1]
-ufunc_eval_chebyc_data[2] = &ufunc_eval_chebyc_ptr[2*2]
-ufunc_eval_chebyc_data[3] = &ufunc_eval_chebyc_ptr[2*3]
-ufunc_eval_chebyc_data[4] = &ufunc_eval_chebyc_ptr[2*4]
-eval_chebyc = np.PyUFunc_FromFuncAndData(ufunc_eval_chebyc_loops, ufunc_eval_chebyc_data, ufunc_eval_chebyc_types, 5, 2, 1, 0, "eval_chebyc", ufunc_eval_chebyc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_chebys_loops[5]
-cdef void *ufunc_eval_chebys_ptr[10]
-cdef void *ufunc_eval_chebys_data[5]
-cdef char ufunc_eval_chebys_types[15]
-cdef char *ufunc_eval_chebys_doc = (
-    "eval_chebys(n, x, out=None)\n"
-    "\n"
-    "Evaluate Chebyshev polynomial of the second kind on [-2, 2] at a\n"
-    "point.\n"
-    "\n"
-    "These polynomials are defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    S_n(x) = U_n(x/2)\n"
-    "\n"
-    "where :math:`U_n` is a Chebyshev polynomial of the second\n"
-    "kind. See 22.5.13 in [AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer, the result is\n"
-    "    determined via the relation to `eval_chebyu`.\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the Chebyshev polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "S : scalar or ndarray\n"
-    "    Values of the Chebyshev polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_chebys : roots and quadrature weights of Chebyshev\n"
-    "               polynomials of the second kind on [-2, 2]\n"
-    "chebys : Chebyshev polynomial object\n"
-    "eval_chebyu : evaluate Chebyshev polynomials of the second kind\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "They are a scaled version of the Chebyshev polynomials of the\n"
-    "second kind.\n"
-    "\n"
-    ">>> x = np.linspace(-2, 2, 6)\n"
-    ">>> sc.eval_chebys(3, x)\n"
-    "array([-4.   ,  0.672,  0.736, -0.736, -0.672,  4.   ])\n"
-    ">>> sc.eval_chebyu(3, x / 2)\n"
-    "array([-4.   ,  0.672,  0.736, -0.736, -0.672,  4.   ])")
-ufunc_eval_chebys_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_chebys_loops[1] = loop_d_dd__As_ff_f
-ufunc_eval_chebys_loops[2] = loop_D_dD__As_fF_F
-ufunc_eval_chebys_loops[3] = loop_d_dd__As_dd_d
-ufunc_eval_chebys_loops[4] = loop_D_dD__As_dD_D
-ufunc_eval_chebys_types[0] = NPY_INTP
-ufunc_eval_chebys_types[1] = NPY_DOUBLE
-ufunc_eval_chebys_types[2] = NPY_DOUBLE
-ufunc_eval_chebys_types[3] = NPY_FLOAT
-ufunc_eval_chebys_types[4] = NPY_FLOAT
-ufunc_eval_chebys_types[5] = NPY_FLOAT
-ufunc_eval_chebys_types[6] = NPY_FLOAT
-ufunc_eval_chebys_types[7] = NPY_CFLOAT
-ufunc_eval_chebys_types[8] = NPY_CFLOAT
-ufunc_eval_chebys_types[9] = NPY_DOUBLE
-ufunc_eval_chebys_types[10] = NPY_DOUBLE
-ufunc_eval_chebys_types[11] = NPY_DOUBLE
-ufunc_eval_chebys_types[12] = NPY_DOUBLE
-ufunc_eval_chebys_types[13] = NPY_CDOUBLE
-ufunc_eval_chebys_types[14] = NPY_CDOUBLE
-ufunc_eval_chebys_ptr[2*0] = _func_eval_chebys_l
-ufunc_eval_chebys_ptr[2*0+1] = ("eval_chebys")
-ufunc_eval_chebys_ptr[2*1] = _func_eval_chebys[double]
-ufunc_eval_chebys_ptr[2*1+1] = ("eval_chebys")
-ufunc_eval_chebys_ptr[2*2] = _func_eval_chebys[double_complex]
-ufunc_eval_chebys_ptr[2*2+1] = ("eval_chebys")
-ufunc_eval_chebys_ptr[2*3] = _func_eval_chebys[double]
-ufunc_eval_chebys_ptr[2*3+1] = ("eval_chebys")
-ufunc_eval_chebys_ptr[2*4] = _func_eval_chebys[double_complex]
-ufunc_eval_chebys_ptr[2*4+1] = ("eval_chebys")
-ufunc_eval_chebys_data[0] = &ufunc_eval_chebys_ptr[2*0]
-ufunc_eval_chebys_data[1] = &ufunc_eval_chebys_ptr[2*1]
-ufunc_eval_chebys_data[2] = &ufunc_eval_chebys_ptr[2*2]
-ufunc_eval_chebys_data[3] = &ufunc_eval_chebys_ptr[2*3]
-ufunc_eval_chebys_data[4] = &ufunc_eval_chebys_ptr[2*4]
-eval_chebys = np.PyUFunc_FromFuncAndData(ufunc_eval_chebys_loops, ufunc_eval_chebys_data, ufunc_eval_chebys_types, 5, 2, 1, 0, "eval_chebys", ufunc_eval_chebys_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_chebyt_loops[5]
-cdef void *ufunc_eval_chebyt_ptr[10]
-cdef void *ufunc_eval_chebyt_data[5]
-cdef char ufunc_eval_chebyt_types[15]
-cdef char *ufunc_eval_chebyt_doc = (
-    "eval_chebyt(n, x, out=None)\n"
-    "\n"
-    "Evaluate Chebyshev polynomial of the first kind at a point.\n"
-    "\n"
-    "The Chebyshev polynomials of the first kind can be defined via the\n"
-    "Gauss hypergeometric function :math:`{}_2F_1` as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    T_n(x) = {}_2F_1(n, -n; 1/2; (1 - x)/2).\n"
-    "\n"
-    "When :math:`n` is an integer the result is a polynomial of degree\n"
-    ":math:`n`. See 22.5.47 in [AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer, the result is\n"
-    "    determined via the relation to the Gauss hypergeometric\n"
-    "    function.\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the Chebyshev polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "T : scalar or ndarray\n"
-    "    Values of the Chebyshev polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_chebyt : roots and quadrature weights of Chebyshev\n"
-    "               polynomials of the first kind\n"
-    "chebyu : Chebychev polynomial object\n"
-    "eval_chebyu : evaluate Chebyshev polynomials of the second kind\n"
-    "hyp2f1 : Gauss hypergeometric function\n"
-    "numpy.polynomial.chebyshev.Chebyshev : Chebyshev series\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "This routine is numerically stable for `x` in ``[-1, 1]`` at least\n"
-    "up to order ``10000``.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_chebyt_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_chebyt_loops[1] = loop_d_dd__As_ff_f
-ufunc_eval_chebyt_loops[2] = loop_D_dD__As_fF_F
-ufunc_eval_chebyt_loops[3] = loop_d_dd__As_dd_d
-ufunc_eval_chebyt_loops[4] = loop_D_dD__As_dD_D
-ufunc_eval_chebyt_types[0] = NPY_INTP
-ufunc_eval_chebyt_types[1] = NPY_DOUBLE
-ufunc_eval_chebyt_types[2] = NPY_DOUBLE
-ufunc_eval_chebyt_types[3] = NPY_FLOAT
-ufunc_eval_chebyt_types[4] = NPY_FLOAT
-ufunc_eval_chebyt_types[5] = NPY_FLOAT
-ufunc_eval_chebyt_types[6] = NPY_FLOAT
-ufunc_eval_chebyt_types[7] = NPY_CFLOAT
-ufunc_eval_chebyt_types[8] = NPY_CFLOAT
-ufunc_eval_chebyt_types[9] = NPY_DOUBLE
-ufunc_eval_chebyt_types[10] = NPY_DOUBLE
-ufunc_eval_chebyt_types[11] = NPY_DOUBLE
-ufunc_eval_chebyt_types[12] = NPY_DOUBLE
-ufunc_eval_chebyt_types[13] = NPY_CDOUBLE
-ufunc_eval_chebyt_types[14] = NPY_CDOUBLE
-ufunc_eval_chebyt_ptr[2*0] = _func_eval_chebyt_l
-ufunc_eval_chebyt_ptr[2*0+1] = ("eval_chebyt")
-ufunc_eval_chebyt_ptr[2*1] = _func_eval_chebyt[double]
-ufunc_eval_chebyt_ptr[2*1+1] = ("eval_chebyt")
-ufunc_eval_chebyt_ptr[2*2] = _func_eval_chebyt[double_complex]
-ufunc_eval_chebyt_ptr[2*2+1] = ("eval_chebyt")
-ufunc_eval_chebyt_ptr[2*3] = _func_eval_chebyt[double]
-ufunc_eval_chebyt_ptr[2*3+1] = ("eval_chebyt")
-ufunc_eval_chebyt_ptr[2*4] = _func_eval_chebyt[double_complex]
-ufunc_eval_chebyt_ptr[2*4+1] = ("eval_chebyt")
-ufunc_eval_chebyt_data[0] = &ufunc_eval_chebyt_ptr[2*0]
-ufunc_eval_chebyt_data[1] = &ufunc_eval_chebyt_ptr[2*1]
-ufunc_eval_chebyt_data[2] = &ufunc_eval_chebyt_ptr[2*2]
-ufunc_eval_chebyt_data[3] = &ufunc_eval_chebyt_ptr[2*3]
-ufunc_eval_chebyt_data[4] = &ufunc_eval_chebyt_ptr[2*4]
-eval_chebyt = np.PyUFunc_FromFuncAndData(ufunc_eval_chebyt_loops, ufunc_eval_chebyt_data, ufunc_eval_chebyt_types, 5, 2, 1, 0, "eval_chebyt", ufunc_eval_chebyt_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_chebyu_loops[5]
-cdef void *ufunc_eval_chebyu_ptr[10]
-cdef void *ufunc_eval_chebyu_data[5]
-cdef char ufunc_eval_chebyu_types[15]
-cdef char *ufunc_eval_chebyu_doc = (
-    "eval_chebyu(n, x, out=None)\n"
-    "\n"
-    "Evaluate Chebyshev polynomial of the second kind at a point.\n"
-    "\n"
-    "The Chebyshev polynomials of the second kind can be defined via\n"
-    "the Gauss hypergeometric function :math:`{}_2F_1` as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    U_n(x) = (n + 1) {}_2F_1(-n, n + 2; 3/2; (1 - x)/2).\n"
-    "\n"
-    "When :math:`n` is an integer the result is a polynomial of degree\n"
-    ":math:`n`. See 22.5.48 in [AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer, the result is\n"
-    "    determined via the relation to the Gauss hypergeometric\n"
-    "    function.\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the Chebyshev polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "U : scalar or ndarray\n"
-    "    Values of the Chebyshev polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_chebyu : roots and quadrature weights of Chebyshev\n"
-    "               polynomials of the second kind\n"
-    "chebyu : Chebyshev polynomial object\n"
-    "eval_chebyt : evaluate Chebyshev polynomials of the first kind\n"
-    "hyp2f1 : Gauss hypergeometric function\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_chebyu_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_chebyu_loops[1] = loop_d_dd__As_ff_f
-ufunc_eval_chebyu_loops[2] = loop_D_dD__As_fF_F
-ufunc_eval_chebyu_loops[3] = loop_d_dd__As_dd_d
-ufunc_eval_chebyu_loops[4] = loop_D_dD__As_dD_D
-ufunc_eval_chebyu_types[0] = NPY_INTP
-ufunc_eval_chebyu_types[1] = NPY_DOUBLE
-ufunc_eval_chebyu_types[2] = NPY_DOUBLE
-ufunc_eval_chebyu_types[3] = NPY_FLOAT
-ufunc_eval_chebyu_types[4] = NPY_FLOAT
-ufunc_eval_chebyu_types[5] = NPY_FLOAT
-ufunc_eval_chebyu_types[6] = NPY_FLOAT
-ufunc_eval_chebyu_types[7] = NPY_CFLOAT
-ufunc_eval_chebyu_types[8] = NPY_CFLOAT
-ufunc_eval_chebyu_types[9] = NPY_DOUBLE
-ufunc_eval_chebyu_types[10] = NPY_DOUBLE
-ufunc_eval_chebyu_types[11] = NPY_DOUBLE
-ufunc_eval_chebyu_types[12] = NPY_DOUBLE
-ufunc_eval_chebyu_types[13] = NPY_CDOUBLE
-ufunc_eval_chebyu_types[14] = NPY_CDOUBLE
-ufunc_eval_chebyu_ptr[2*0] = _func_eval_chebyu_l
-ufunc_eval_chebyu_ptr[2*0+1] = ("eval_chebyu")
-ufunc_eval_chebyu_ptr[2*1] = _func_eval_chebyu[double]
-ufunc_eval_chebyu_ptr[2*1+1] = ("eval_chebyu")
-ufunc_eval_chebyu_ptr[2*2] = _func_eval_chebyu[double_complex]
-ufunc_eval_chebyu_ptr[2*2+1] = ("eval_chebyu")
-ufunc_eval_chebyu_ptr[2*3] = _func_eval_chebyu[double]
-ufunc_eval_chebyu_ptr[2*3+1] = ("eval_chebyu")
-ufunc_eval_chebyu_ptr[2*4] = _func_eval_chebyu[double_complex]
-ufunc_eval_chebyu_ptr[2*4+1] = ("eval_chebyu")
-ufunc_eval_chebyu_data[0] = &ufunc_eval_chebyu_ptr[2*0]
-ufunc_eval_chebyu_data[1] = &ufunc_eval_chebyu_ptr[2*1]
-ufunc_eval_chebyu_data[2] = &ufunc_eval_chebyu_ptr[2*2]
-ufunc_eval_chebyu_data[3] = &ufunc_eval_chebyu_ptr[2*3]
-ufunc_eval_chebyu_data[4] = &ufunc_eval_chebyu_ptr[2*4]
-eval_chebyu = np.PyUFunc_FromFuncAndData(ufunc_eval_chebyu_loops, ufunc_eval_chebyu_data, ufunc_eval_chebyu_types, 5, 2, 1, 0, "eval_chebyu", ufunc_eval_chebyu_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_gegenbauer_loops[5]
-cdef void *ufunc_eval_gegenbauer_ptr[10]
-cdef void *ufunc_eval_gegenbauer_data[5]
-cdef char ufunc_eval_gegenbauer_types[20]
-cdef char *ufunc_eval_gegenbauer_doc = (
-    "eval_gegenbauer(n, alpha, x, out=None)\n"
-    "\n"
-    "Evaluate Gegenbauer polynomial at a point.\n"
-    "\n"
-    "The Gegenbauer polynomials can be defined via the Gauss\n"
-    "hypergeometric function :math:`{}_2F_1` as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    C_n^{(\\alpha)} = \\frac{(2\\alpha)_n}{\\Gamma(n + 1)}\n"
-    "      {}_2F_1(-n, 2\\alpha + n; \\alpha + 1/2; (1 - z)/2).\n"
-    "\n"
-    "When :math:`n` is an integer the result is a polynomial of degree\n"
-    ":math:`n`. See 22.5.46 in [AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer, the result is\n"
-    "    determined via the relation to the Gauss hypergeometric\n"
-    "    function.\n"
-    "alpha : array_like\n"
-    "    Parameter\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the Gegenbauer polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "C : scalar or ndarray\n"
-    "    Values of the Gegenbauer polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_gegenbauer : roots and quadrature weights of Gegenbauer\n"
-    "                   polynomials\n"
-    "gegenbauer : Gegenbauer polynomial object\n"
-    "hyp2f1 : Gauss hypergeometric function\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_gegenbauer_loops[0] = loop_d_pdd__As_pdd_d
-ufunc_eval_gegenbauer_loops[1] = loop_d_ddd__As_fff_f
-ufunc_eval_gegenbauer_loops[2] = loop_D_ddD__As_ffF_F
-ufunc_eval_gegenbauer_loops[3] = loop_d_ddd__As_ddd_d
-ufunc_eval_gegenbauer_loops[4] = loop_D_ddD__As_ddD_D
-ufunc_eval_gegenbauer_types[0] = NPY_INTP
-ufunc_eval_gegenbauer_types[1] = NPY_DOUBLE
-ufunc_eval_gegenbauer_types[2] = NPY_DOUBLE
-ufunc_eval_gegenbauer_types[3] = NPY_DOUBLE
-ufunc_eval_gegenbauer_types[4] = NPY_FLOAT
-ufunc_eval_gegenbauer_types[5] = NPY_FLOAT
-ufunc_eval_gegenbauer_types[6] = NPY_FLOAT
-ufunc_eval_gegenbauer_types[7] = NPY_FLOAT
-ufunc_eval_gegenbauer_types[8] = NPY_FLOAT
-ufunc_eval_gegenbauer_types[9] = NPY_FLOAT
-ufunc_eval_gegenbauer_types[10] = NPY_CFLOAT
-ufunc_eval_gegenbauer_types[11] = NPY_CFLOAT
-ufunc_eval_gegenbauer_types[12] = NPY_DOUBLE
-ufunc_eval_gegenbauer_types[13] = NPY_DOUBLE
-ufunc_eval_gegenbauer_types[14] = NPY_DOUBLE
-ufunc_eval_gegenbauer_types[15] = NPY_DOUBLE
-ufunc_eval_gegenbauer_types[16] = NPY_DOUBLE
-ufunc_eval_gegenbauer_types[17] = NPY_DOUBLE
-ufunc_eval_gegenbauer_types[18] = NPY_CDOUBLE
-ufunc_eval_gegenbauer_types[19] = NPY_CDOUBLE
-ufunc_eval_gegenbauer_ptr[2*0] = _func_eval_gegenbauer_l
-ufunc_eval_gegenbauer_ptr[2*0+1] = ("eval_gegenbauer")
-ufunc_eval_gegenbauer_ptr[2*1] = _func_eval_gegenbauer[double]
-ufunc_eval_gegenbauer_ptr[2*1+1] = ("eval_gegenbauer")
-ufunc_eval_gegenbauer_ptr[2*2] = _func_eval_gegenbauer[double_complex]
-ufunc_eval_gegenbauer_ptr[2*2+1] = ("eval_gegenbauer")
-ufunc_eval_gegenbauer_ptr[2*3] = _func_eval_gegenbauer[double]
-ufunc_eval_gegenbauer_ptr[2*3+1] = ("eval_gegenbauer")
-ufunc_eval_gegenbauer_ptr[2*4] = _func_eval_gegenbauer[double_complex]
-ufunc_eval_gegenbauer_ptr[2*4+1] = ("eval_gegenbauer")
-ufunc_eval_gegenbauer_data[0] = &ufunc_eval_gegenbauer_ptr[2*0]
-ufunc_eval_gegenbauer_data[1] = &ufunc_eval_gegenbauer_ptr[2*1]
-ufunc_eval_gegenbauer_data[2] = &ufunc_eval_gegenbauer_ptr[2*2]
-ufunc_eval_gegenbauer_data[3] = &ufunc_eval_gegenbauer_ptr[2*3]
-ufunc_eval_gegenbauer_data[4] = &ufunc_eval_gegenbauer_ptr[2*4]
-eval_gegenbauer = np.PyUFunc_FromFuncAndData(ufunc_eval_gegenbauer_loops, ufunc_eval_gegenbauer_data, ufunc_eval_gegenbauer_types, 5, 3, 1, 0, "eval_gegenbauer", ufunc_eval_gegenbauer_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_genlaguerre_loops[5]
-cdef void *ufunc_eval_genlaguerre_ptr[10]
-cdef void *ufunc_eval_genlaguerre_data[5]
-cdef char ufunc_eval_genlaguerre_types[20]
-cdef char *ufunc_eval_genlaguerre_doc = (
-    "eval_genlaguerre(n, alpha, x, out=None)\n"
-    "\n"
-    "Evaluate generalized Laguerre polynomial at a point.\n"
-    "\n"
-    "The generalized Laguerre polynomials can be defined via the\n"
-    "confluent hypergeometric function :math:`{}_1F_1` as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    L_n^{(\\alpha)}(x) = \\binom{n + \\alpha}{n}\n"
-    "      {}_1F_1(-n, \\alpha + 1, x).\n"
-    "\n"
-    "When :math:`n` is an integer the result is a polynomial of degree\n"
-    ":math:`n`. See 22.5.54 in [AS]_ for details. The Laguerre\n"
-    "polynomials are the special case where :math:`\\alpha = 0`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer, the result is\n"
-    "    determined via the relation to the confluent hypergeometric\n"
-    "    function.\n"
-    "alpha : array_like\n"
-    "    Parameter; must have ``alpha > -1``\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the generalized Laguerre\n"
-    "    polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "L : scalar or ndarray\n"
-    "    Values of the generalized Laguerre polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_genlaguerre : roots and quadrature weights of generalized\n"
-    "                    Laguerre polynomials\n"
-    "genlaguerre : generalized Laguerre polynomial object\n"
-    "hyp1f1 : confluent hypergeometric function\n"
-    "eval_laguerre : evaluate Laguerre polynomials\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_genlaguerre_loops[0] = loop_d_pdd__As_pdd_d
-ufunc_eval_genlaguerre_loops[1] = loop_d_ddd__As_fff_f
-ufunc_eval_genlaguerre_loops[2] = loop_D_ddD__As_ffF_F
-ufunc_eval_genlaguerre_loops[3] = loop_d_ddd__As_ddd_d
-ufunc_eval_genlaguerre_loops[4] = loop_D_ddD__As_ddD_D
-ufunc_eval_genlaguerre_types[0] = NPY_INTP
-ufunc_eval_genlaguerre_types[1] = NPY_DOUBLE
-ufunc_eval_genlaguerre_types[2] = NPY_DOUBLE
-ufunc_eval_genlaguerre_types[3] = NPY_DOUBLE
-ufunc_eval_genlaguerre_types[4] = NPY_FLOAT
-ufunc_eval_genlaguerre_types[5] = NPY_FLOAT
-ufunc_eval_genlaguerre_types[6] = NPY_FLOAT
-ufunc_eval_genlaguerre_types[7] = NPY_FLOAT
-ufunc_eval_genlaguerre_types[8] = NPY_FLOAT
-ufunc_eval_genlaguerre_types[9] = NPY_FLOAT
-ufunc_eval_genlaguerre_types[10] = NPY_CFLOAT
-ufunc_eval_genlaguerre_types[11] = NPY_CFLOAT
-ufunc_eval_genlaguerre_types[12] = NPY_DOUBLE
-ufunc_eval_genlaguerre_types[13] = NPY_DOUBLE
-ufunc_eval_genlaguerre_types[14] = NPY_DOUBLE
-ufunc_eval_genlaguerre_types[15] = NPY_DOUBLE
-ufunc_eval_genlaguerre_types[16] = NPY_DOUBLE
-ufunc_eval_genlaguerre_types[17] = NPY_DOUBLE
-ufunc_eval_genlaguerre_types[18] = NPY_CDOUBLE
-ufunc_eval_genlaguerre_types[19] = NPY_CDOUBLE
-ufunc_eval_genlaguerre_ptr[2*0] = _func_eval_genlaguerre_l
-ufunc_eval_genlaguerre_ptr[2*0+1] = ("eval_genlaguerre")
-ufunc_eval_genlaguerre_ptr[2*1] = _func_eval_genlaguerre[double]
-ufunc_eval_genlaguerre_ptr[2*1+1] = ("eval_genlaguerre")
-ufunc_eval_genlaguerre_ptr[2*2] = _func_eval_genlaguerre[double_complex]
-ufunc_eval_genlaguerre_ptr[2*2+1] = ("eval_genlaguerre")
-ufunc_eval_genlaguerre_ptr[2*3] = _func_eval_genlaguerre[double]
-ufunc_eval_genlaguerre_ptr[2*3+1] = ("eval_genlaguerre")
-ufunc_eval_genlaguerre_ptr[2*4] = _func_eval_genlaguerre[double_complex]
-ufunc_eval_genlaguerre_ptr[2*4+1] = ("eval_genlaguerre")
-ufunc_eval_genlaguerre_data[0] = &ufunc_eval_genlaguerre_ptr[2*0]
-ufunc_eval_genlaguerre_data[1] = &ufunc_eval_genlaguerre_ptr[2*1]
-ufunc_eval_genlaguerre_data[2] = &ufunc_eval_genlaguerre_ptr[2*2]
-ufunc_eval_genlaguerre_data[3] = &ufunc_eval_genlaguerre_ptr[2*3]
-ufunc_eval_genlaguerre_data[4] = &ufunc_eval_genlaguerre_ptr[2*4]
-eval_genlaguerre = np.PyUFunc_FromFuncAndData(ufunc_eval_genlaguerre_loops, ufunc_eval_genlaguerre_data, ufunc_eval_genlaguerre_types, 5, 3, 1, 0, "eval_genlaguerre", ufunc_eval_genlaguerre_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_hermite_loops[1]
-cdef void *ufunc_eval_hermite_ptr[2]
-cdef void *ufunc_eval_hermite_data[1]
-cdef char ufunc_eval_hermite_types[3]
-cdef char *ufunc_eval_hermite_doc = (
-    "eval_hermite(n, x, out=None)\n"
-    "\n"
-    "Evaluate physicist's Hermite polynomial at a point.\n"
-    "\n"
-    "Defined by\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    H_n(x) = (-1)^n e^{x^2} \\frac{d^n}{dx^n} e^{-x^2};\n"
-    "\n"
-    ":math:`H_n` is a polynomial of degree :math:`n`. See 22.11.7 in\n"
-    "[AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the Hermite polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "H : scalar or ndarray\n"
-    "    Values of the Hermite polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_hermite : roots and quadrature weights of physicist's\n"
-    "                Hermite polynomials\n"
-    "hermite : physicist's Hermite polynomial object\n"
-    "numpy.polynomial.hermite.Hermite : Physicist's Hermite series\n"
-    "eval_hermitenorm : evaluate Probabilist's Hermite polynomials\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_hermite_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_hermite_types[0] = NPY_INTP
-ufunc_eval_hermite_types[1] = NPY_DOUBLE
-ufunc_eval_hermite_types[2] = NPY_DOUBLE
-ufunc_eval_hermite_ptr[2*0] = _func_eval_hermite
-ufunc_eval_hermite_ptr[2*0+1] = ("eval_hermite")
-ufunc_eval_hermite_data[0] = &ufunc_eval_hermite_ptr[2*0]
-eval_hermite = np.PyUFunc_FromFuncAndData(ufunc_eval_hermite_loops, ufunc_eval_hermite_data, ufunc_eval_hermite_types, 1, 2, 1, 0, "eval_hermite", ufunc_eval_hermite_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_hermitenorm_loops[1]
-cdef void *ufunc_eval_hermitenorm_ptr[2]
-cdef void *ufunc_eval_hermitenorm_data[1]
-cdef char ufunc_eval_hermitenorm_types[3]
-cdef char *ufunc_eval_hermitenorm_doc = (
-    "eval_hermitenorm(n, x, out=None)\n"
-    "\n"
-    "Evaluate probabilist's (normalized) Hermite polynomial at a\n"
-    "point.\n"
-    "\n"
-    "Defined by\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    He_n(x) = (-1)^n e^{x^2/2} \\frac{d^n}{dx^n} e^{-x^2/2};\n"
-    "\n"
-    ":math:`He_n` is a polynomial of degree :math:`n`. See 22.11.8 in\n"
-    "[AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the Hermite polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "He : scalar or ndarray\n"
-    "    Values of the Hermite polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_hermitenorm : roots and quadrature weights of probabilist's\n"
-    "                    Hermite polynomials\n"
-    "hermitenorm : probabilist's Hermite polynomial object\n"
-    "numpy.polynomial.hermite_e.HermiteE : Probabilist's Hermite series\n"
-    "eval_hermite : evaluate physicist's Hermite polynomials\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_hermitenorm_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_hermitenorm_types[0] = NPY_INTP
-ufunc_eval_hermitenorm_types[1] = NPY_DOUBLE
-ufunc_eval_hermitenorm_types[2] = NPY_DOUBLE
-ufunc_eval_hermitenorm_ptr[2*0] = _func_eval_hermitenorm
-ufunc_eval_hermitenorm_ptr[2*0+1] = ("eval_hermitenorm")
-ufunc_eval_hermitenorm_data[0] = &ufunc_eval_hermitenorm_ptr[2*0]
-eval_hermitenorm = np.PyUFunc_FromFuncAndData(ufunc_eval_hermitenorm_loops, ufunc_eval_hermitenorm_data, ufunc_eval_hermitenorm_types, 1, 2, 1, 0, "eval_hermitenorm", ufunc_eval_hermitenorm_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_jacobi_loops[5]
-cdef void *ufunc_eval_jacobi_ptr[10]
-cdef void *ufunc_eval_jacobi_data[5]
-cdef char ufunc_eval_jacobi_types[25]
-cdef char *ufunc_eval_jacobi_doc = (
-    "eval_jacobi(n, alpha, beta, x, out=None)\n"
-    "\n"
-    "Evaluate Jacobi polynomial at a point.\n"
-    "\n"
-    "The Jacobi polynomials can be defined via the Gauss hypergeometric\n"
-    "function :math:`{}_2F_1` as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    P_n^{(\\alpha, \\beta)}(x) = \\frac{(\\alpha + 1)_n}{\\Gamma(n + 1)}\n"
-    "      {}_2F_1(-n, 1 + \\alpha + \\beta + n; \\alpha + 1; (1 - z)/2)\n"
-    "\n"
-    "where :math:`(\\cdot)_n` is the Pochhammer symbol; see `poch`. When\n"
-    ":math:`n` is an integer the result is a polynomial of degree\n"
-    ":math:`n`. See 22.5.42 in [AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer the result is\n"
-    "    determined via the relation to the Gauss hypergeometric\n"
-    "    function.\n"
-    "alpha : array_like\n"
-    "    Parameter\n"
-    "beta : array_like\n"
-    "    Parameter\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "P : scalar or ndarray\n"
-    "    Values of the Jacobi polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_jacobi : roots and quadrature weights of Jacobi polynomials\n"
-    "jacobi : Jacobi polynomial object\n"
-    "hyp2f1 : Gauss hypergeometric function\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_jacobi_loops[0] = loop_d_pddd__As_pddd_d
-ufunc_eval_jacobi_loops[1] = loop_d_dddd__As_ffff_f
-ufunc_eval_jacobi_loops[2] = loop_D_dddD__As_fffF_F
-ufunc_eval_jacobi_loops[3] = loop_d_dddd__As_dddd_d
-ufunc_eval_jacobi_loops[4] = loop_D_dddD__As_dddD_D
-ufunc_eval_jacobi_types[0] = NPY_INTP
-ufunc_eval_jacobi_types[1] = NPY_DOUBLE
-ufunc_eval_jacobi_types[2] = NPY_DOUBLE
-ufunc_eval_jacobi_types[3] = NPY_DOUBLE
-ufunc_eval_jacobi_types[4] = NPY_DOUBLE
-ufunc_eval_jacobi_types[5] = NPY_FLOAT
-ufunc_eval_jacobi_types[6] = NPY_FLOAT
-ufunc_eval_jacobi_types[7] = NPY_FLOAT
-ufunc_eval_jacobi_types[8] = NPY_FLOAT
-ufunc_eval_jacobi_types[9] = NPY_FLOAT
-ufunc_eval_jacobi_types[10] = NPY_FLOAT
-ufunc_eval_jacobi_types[11] = NPY_FLOAT
-ufunc_eval_jacobi_types[12] = NPY_FLOAT
-ufunc_eval_jacobi_types[13] = NPY_CFLOAT
-ufunc_eval_jacobi_types[14] = NPY_CFLOAT
-ufunc_eval_jacobi_types[15] = NPY_DOUBLE
-ufunc_eval_jacobi_types[16] = NPY_DOUBLE
-ufunc_eval_jacobi_types[17] = NPY_DOUBLE
-ufunc_eval_jacobi_types[18] = NPY_DOUBLE
-ufunc_eval_jacobi_types[19] = NPY_DOUBLE
-ufunc_eval_jacobi_types[20] = NPY_DOUBLE
-ufunc_eval_jacobi_types[21] = NPY_DOUBLE
-ufunc_eval_jacobi_types[22] = NPY_DOUBLE
-ufunc_eval_jacobi_types[23] = NPY_CDOUBLE
-ufunc_eval_jacobi_types[24] = NPY_CDOUBLE
-ufunc_eval_jacobi_ptr[2*0] = _func_eval_jacobi_l
-ufunc_eval_jacobi_ptr[2*0+1] = ("eval_jacobi")
-ufunc_eval_jacobi_ptr[2*1] = _func_eval_jacobi[double]
-ufunc_eval_jacobi_ptr[2*1+1] = ("eval_jacobi")
-ufunc_eval_jacobi_ptr[2*2] = _func_eval_jacobi[double_complex]
-ufunc_eval_jacobi_ptr[2*2+1] = ("eval_jacobi")
-ufunc_eval_jacobi_ptr[2*3] = _func_eval_jacobi[double]
-ufunc_eval_jacobi_ptr[2*3+1] = ("eval_jacobi")
-ufunc_eval_jacobi_ptr[2*4] = _func_eval_jacobi[double_complex]
-ufunc_eval_jacobi_ptr[2*4+1] = ("eval_jacobi")
-ufunc_eval_jacobi_data[0] = &ufunc_eval_jacobi_ptr[2*0]
-ufunc_eval_jacobi_data[1] = &ufunc_eval_jacobi_ptr[2*1]
-ufunc_eval_jacobi_data[2] = &ufunc_eval_jacobi_ptr[2*2]
-ufunc_eval_jacobi_data[3] = &ufunc_eval_jacobi_ptr[2*3]
-ufunc_eval_jacobi_data[4] = &ufunc_eval_jacobi_ptr[2*4]
-eval_jacobi = np.PyUFunc_FromFuncAndData(ufunc_eval_jacobi_loops, ufunc_eval_jacobi_data, ufunc_eval_jacobi_types, 5, 4, 1, 0, "eval_jacobi", ufunc_eval_jacobi_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_laguerre_loops[5]
-cdef void *ufunc_eval_laguerre_ptr[10]
-cdef void *ufunc_eval_laguerre_data[5]
-cdef char ufunc_eval_laguerre_types[15]
-cdef char *ufunc_eval_laguerre_doc = (
-    "eval_laguerre(n, x, out=None)\n"
-    "\n"
-    "Evaluate Laguerre polynomial at a point.\n"
-    "\n"
-    "The Laguerre polynomials can be defined via the confluent\n"
-    "hypergeometric function :math:`{}_1F_1` as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    L_n(x) = {}_1F_1(-n, 1, x).\n"
-    "\n"
-    "See 22.5.16 and 22.5.54 in [AS]_ for details. When :math:`n` is an\n"
-    "integer the result is a polynomial of degree :math:`n`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer the result is\n"
-    "    determined via the relation to the confluent hypergeometric\n"
-    "    function.\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the Laguerre polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "L : scalar or ndarray\n"
-    "    Values of the Laguerre polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_laguerre : roots and quadrature weights of Laguerre\n"
-    "                 polynomials\n"
-    "laguerre : Laguerre polynomial object\n"
-    "numpy.polynomial.laguerre.Laguerre : Laguerre series\n"
-    "eval_genlaguerre : evaluate generalized Laguerre polynomials\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_laguerre_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_laguerre_loops[1] = loop_d_dd__As_ff_f
-ufunc_eval_laguerre_loops[2] = loop_D_dD__As_fF_F
-ufunc_eval_laguerre_loops[3] = loop_d_dd__As_dd_d
-ufunc_eval_laguerre_loops[4] = loop_D_dD__As_dD_D
-ufunc_eval_laguerre_types[0] = NPY_INTP
-ufunc_eval_laguerre_types[1] = NPY_DOUBLE
-ufunc_eval_laguerre_types[2] = NPY_DOUBLE
-ufunc_eval_laguerre_types[3] = NPY_FLOAT
-ufunc_eval_laguerre_types[4] = NPY_FLOAT
-ufunc_eval_laguerre_types[5] = NPY_FLOAT
-ufunc_eval_laguerre_types[6] = NPY_FLOAT
-ufunc_eval_laguerre_types[7] = NPY_CFLOAT
-ufunc_eval_laguerre_types[8] = NPY_CFLOAT
-ufunc_eval_laguerre_types[9] = NPY_DOUBLE
-ufunc_eval_laguerre_types[10] = NPY_DOUBLE
-ufunc_eval_laguerre_types[11] = NPY_DOUBLE
-ufunc_eval_laguerre_types[12] = NPY_DOUBLE
-ufunc_eval_laguerre_types[13] = NPY_CDOUBLE
-ufunc_eval_laguerre_types[14] = NPY_CDOUBLE
-ufunc_eval_laguerre_ptr[2*0] = _func_eval_laguerre_l
-ufunc_eval_laguerre_ptr[2*0+1] = ("eval_laguerre")
-ufunc_eval_laguerre_ptr[2*1] = _func_eval_laguerre[double]
-ufunc_eval_laguerre_ptr[2*1+1] = ("eval_laguerre")
-ufunc_eval_laguerre_ptr[2*2] = _func_eval_laguerre[double_complex]
-ufunc_eval_laguerre_ptr[2*2+1] = ("eval_laguerre")
-ufunc_eval_laguerre_ptr[2*3] = _func_eval_laguerre[double]
-ufunc_eval_laguerre_ptr[2*3+1] = ("eval_laguerre")
-ufunc_eval_laguerre_ptr[2*4] = _func_eval_laguerre[double_complex]
-ufunc_eval_laguerre_ptr[2*4+1] = ("eval_laguerre")
-ufunc_eval_laguerre_data[0] = &ufunc_eval_laguerre_ptr[2*0]
-ufunc_eval_laguerre_data[1] = &ufunc_eval_laguerre_ptr[2*1]
-ufunc_eval_laguerre_data[2] = &ufunc_eval_laguerre_ptr[2*2]
-ufunc_eval_laguerre_data[3] = &ufunc_eval_laguerre_ptr[2*3]
-ufunc_eval_laguerre_data[4] = &ufunc_eval_laguerre_ptr[2*4]
-eval_laguerre = np.PyUFunc_FromFuncAndData(ufunc_eval_laguerre_loops, ufunc_eval_laguerre_data, ufunc_eval_laguerre_types, 5, 2, 1, 0, "eval_laguerre", ufunc_eval_laguerre_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_legendre_loops[5]
-cdef void *ufunc_eval_legendre_ptr[10]
-cdef void *ufunc_eval_legendre_data[5]
-cdef char ufunc_eval_legendre_types[15]
-cdef char *ufunc_eval_legendre_doc = (
-    "eval_legendre(n, x, out=None)\n"
-    "\n"
-    "Evaluate Legendre polynomial at a point.\n"
-    "\n"
-    "The Legendre polynomials can be defined via the Gauss\n"
-    "hypergeometric function :math:`{}_2F_1` as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    P_n(x) = {}_2F_1(-n, n + 1; 1; (1 - x)/2).\n"
-    "\n"
-    "When :math:`n` is an integer the result is a polynomial of degree\n"
-    ":math:`n`. See 22.5.49 in [AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer, the result is\n"
-    "    determined via the relation to the Gauss hypergeometric\n"
-    "    function.\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the Legendre polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "P : scalar or ndarray\n"
-    "    Values of the Legendre polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_legendre : roots and quadrature weights of Legendre\n"
-    "                 polynomials\n"
-    "legendre : Legendre polynomial object\n"
-    "hyp2f1 : Gauss hypergeometric function\n"
-    "numpy.polynomial.legendre.Legendre : Legendre series\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import eval_legendre\n"
-    "\n"
-    "Evaluate the zero-order Legendre polynomial at x = 0\n"
-    "\n"
-    ">>> eval_legendre(0, 0)\n"
-    "1.0\n"
-    "\n"
-    "Evaluate the first-order Legendre polynomial between -1 and 1\n"
-    "\n"
-    ">>> X = np.linspace(-1, 1, 5)  # Domain of Legendre polynomials\n"
-    ">>> eval_legendre(1, X)\n"
-    "array([-1. , -0.5,  0. ,  0.5,  1. ])\n"
-    "\n"
-    "Evaluate Legendre polynomials of order 0 through 4 at x = 0\n"
-    "\n"
-    ">>> N = range(0, 5)\n"
-    ">>> eval_legendre(N, 0)\n"
-    "array([ 1.   ,  0.   , -0.5  ,  0.   ,  0.375])\n"
-    "\n"
-    "Plot Legendre polynomials of order 0 through 4\n"
-    "\n"
-    ">>> X = np.linspace(-1, 1)\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> for n in range(0, 5):\n"
-    "...     y = eval_legendre(n, X)\n"
-    "...     plt.plot(X, y, label=r'$P_{}(x)$'.format(n))\n"
-    "\n"
-    ">>> plt.title(\"Legendre Polynomials\")\n"
-    ">>> plt.xlabel(\"x\")\n"
-    ">>> plt.ylabel(r'$P_n(x)$')\n"
-    ">>> plt.legend(loc='lower right')\n"
-    ">>> plt.show()")
-ufunc_eval_legendre_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_legendre_loops[1] = loop_d_dd__As_ff_f
-ufunc_eval_legendre_loops[2] = loop_D_dD__As_fF_F
-ufunc_eval_legendre_loops[3] = loop_d_dd__As_dd_d
-ufunc_eval_legendre_loops[4] = loop_D_dD__As_dD_D
-ufunc_eval_legendre_types[0] = NPY_INTP
-ufunc_eval_legendre_types[1] = NPY_DOUBLE
-ufunc_eval_legendre_types[2] = NPY_DOUBLE
-ufunc_eval_legendre_types[3] = NPY_FLOAT
-ufunc_eval_legendre_types[4] = NPY_FLOAT
-ufunc_eval_legendre_types[5] = NPY_FLOAT
-ufunc_eval_legendre_types[6] = NPY_FLOAT
-ufunc_eval_legendre_types[7] = NPY_CFLOAT
-ufunc_eval_legendre_types[8] = NPY_CFLOAT
-ufunc_eval_legendre_types[9] = NPY_DOUBLE
-ufunc_eval_legendre_types[10] = NPY_DOUBLE
-ufunc_eval_legendre_types[11] = NPY_DOUBLE
-ufunc_eval_legendre_types[12] = NPY_DOUBLE
-ufunc_eval_legendre_types[13] = NPY_CDOUBLE
-ufunc_eval_legendre_types[14] = NPY_CDOUBLE
-ufunc_eval_legendre_ptr[2*0] = _func_eval_legendre_l
-ufunc_eval_legendre_ptr[2*0+1] = ("eval_legendre")
-ufunc_eval_legendre_ptr[2*1] = _func_eval_legendre[double]
-ufunc_eval_legendre_ptr[2*1+1] = ("eval_legendre")
-ufunc_eval_legendre_ptr[2*2] = _func_eval_legendre[double_complex]
-ufunc_eval_legendre_ptr[2*2+1] = ("eval_legendre")
-ufunc_eval_legendre_ptr[2*3] = _func_eval_legendre[double]
-ufunc_eval_legendre_ptr[2*3+1] = ("eval_legendre")
-ufunc_eval_legendre_ptr[2*4] = _func_eval_legendre[double_complex]
-ufunc_eval_legendre_ptr[2*4+1] = ("eval_legendre")
-ufunc_eval_legendre_data[0] = &ufunc_eval_legendre_ptr[2*0]
-ufunc_eval_legendre_data[1] = &ufunc_eval_legendre_ptr[2*1]
-ufunc_eval_legendre_data[2] = &ufunc_eval_legendre_ptr[2*2]
-ufunc_eval_legendre_data[3] = &ufunc_eval_legendre_ptr[2*3]
-ufunc_eval_legendre_data[4] = &ufunc_eval_legendre_ptr[2*4]
-eval_legendre = np.PyUFunc_FromFuncAndData(ufunc_eval_legendre_loops, ufunc_eval_legendre_data, ufunc_eval_legendre_types, 5, 2, 1, 0, "eval_legendre", ufunc_eval_legendre_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_sh_chebyt_loops[5]
-cdef void *ufunc_eval_sh_chebyt_ptr[10]
-cdef void *ufunc_eval_sh_chebyt_data[5]
-cdef char ufunc_eval_sh_chebyt_types[15]
-cdef char *ufunc_eval_sh_chebyt_doc = (
-    "eval_sh_chebyt(n, x, out=None)\n"
-    "\n"
-    "Evaluate shifted Chebyshev polynomial of the first kind at a\n"
-    "point.\n"
-    "\n"
-    "These polynomials are defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    T_n^*(x) = T_n(2x - 1)\n"
-    "\n"
-    "where :math:`T_n` is a Chebyshev polynomial of the first kind. See\n"
-    "22.5.14 in [AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer, the result is\n"
-    "    determined via the relation to `eval_chebyt`.\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the shifted Chebyshev polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "T : scalar or ndarray\n"
-    "    Values of the shifted Chebyshev polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_sh_chebyt : roots and quadrature weights of shifted\n"
-    "                  Chebyshev polynomials of the first kind\n"
-    "sh_chebyt : shifted Chebyshev polynomial object\n"
-    "eval_chebyt : evaluate Chebyshev polynomials of the first kind\n"
-    "numpy.polynomial.chebyshev.Chebyshev : Chebyshev series\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_sh_chebyt_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_sh_chebyt_loops[1] = loop_d_dd__As_ff_f
-ufunc_eval_sh_chebyt_loops[2] = loop_D_dD__As_fF_F
-ufunc_eval_sh_chebyt_loops[3] = loop_d_dd__As_dd_d
-ufunc_eval_sh_chebyt_loops[4] = loop_D_dD__As_dD_D
-ufunc_eval_sh_chebyt_types[0] = NPY_INTP
-ufunc_eval_sh_chebyt_types[1] = NPY_DOUBLE
-ufunc_eval_sh_chebyt_types[2] = NPY_DOUBLE
-ufunc_eval_sh_chebyt_types[3] = NPY_FLOAT
-ufunc_eval_sh_chebyt_types[4] = NPY_FLOAT
-ufunc_eval_sh_chebyt_types[5] = NPY_FLOAT
-ufunc_eval_sh_chebyt_types[6] = NPY_FLOAT
-ufunc_eval_sh_chebyt_types[7] = NPY_CFLOAT
-ufunc_eval_sh_chebyt_types[8] = NPY_CFLOAT
-ufunc_eval_sh_chebyt_types[9] = NPY_DOUBLE
-ufunc_eval_sh_chebyt_types[10] = NPY_DOUBLE
-ufunc_eval_sh_chebyt_types[11] = NPY_DOUBLE
-ufunc_eval_sh_chebyt_types[12] = NPY_DOUBLE
-ufunc_eval_sh_chebyt_types[13] = NPY_CDOUBLE
-ufunc_eval_sh_chebyt_types[14] = NPY_CDOUBLE
-ufunc_eval_sh_chebyt_ptr[2*0] = _func_eval_sh_chebyt_l
-ufunc_eval_sh_chebyt_ptr[2*0+1] = ("eval_sh_chebyt")
-ufunc_eval_sh_chebyt_ptr[2*1] = _func_eval_sh_chebyt[double]
-ufunc_eval_sh_chebyt_ptr[2*1+1] = ("eval_sh_chebyt")
-ufunc_eval_sh_chebyt_ptr[2*2] = _func_eval_sh_chebyt[double_complex]
-ufunc_eval_sh_chebyt_ptr[2*2+1] = ("eval_sh_chebyt")
-ufunc_eval_sh_chebyt_ptr[2*3] = _func_eval_sh_chebyt[double]
-ufunc_eval_sh_chebyt_ptr[2*3+1] = ("eval_sh_chebyt")
-ufunc_eval_sh_chebyt_ptr[2*4] = _func_eval_sh_chebyt[double_complex]
-ufunc_eval_sh_chebyt_ptr[2*4+1] = ("eval_sh_chebyt")
-ufunc_eval_sh_chebyt_data[0] = &ufunc_eval_sh_chebyt_ptr[2*0]
-ufunc_eval_sh_chebyt_data[1] = &ufunc_eval_sh_chebyt_ptr[2*1]
-ufunc_eval_sh_chebyt_data[2] = &ufunc_eval_sh_chebyt_ptr[2*2]
-ufunc_eval_sh_chebyt_data[3] = &ufunc_eval_sh_chebyt_ptr[2*3]
-ufunc_eval_sh_chebyt_data[4] = &ufunc_eval_sh_chebyt_ptr[2*4]
-eval_sh_chebyt = np.PyUFunc_FromFuncAndData(ufunc_eval_sh_chebyt_loops, ufunc_eval_sh_chebyt_data, ufunc_eval_sh_chebyt_types, 5, 2, 1, 0, "eval_sh_chebyt", ufunc_eval_sh_chebyt_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_sh_chebyu_loops[5]
-cdef void *ufunc_eval_sh_chebyu_ptr[10]
-cdef void *ufunc_eval_sh_chebyu_data[5]
-cdef char ufunc_eval_sh_chebyu_types[15]
-cdef char *ufunc_eval_sh_chebyu_doc = (
-    "eval_sh_chebyu(n, x, out=None)\n"
-    "\n"
-    "Evaluate shifted Chebyshev polynomial of the second kind at a\n"
-    "point.\n"
-    "\n"
-    "These polynomials are defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    U_n^*(x) = U_n(2x - 1)\n"
-    "\n"
-    "where :math:`U_n` is a Chebyshev polynomial of the first kind. See\n"
-    "22.5.15 in [AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer, the result is\n"
-    "    determined via the relation to `eval_chebyu`.\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the shifted Chebyshev polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "U : scalar or ndarray\n"
-    "    Values of the shifted Chebyshev polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_sh_chebyu : roots and quadrature weights of shifted\n"
-    "                  Chebychev polynomials of the second kind\n"
-    "sh_chebyu : shifted Chebyshev polynomial object\n"
-    "eval_chebyu : evaluate Chebyshev polynomials of the second kind\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_sh_chebyu_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_sh_chebyu_loops[1] = loop_d_dd__As_ff_f
-ufunc_eval_sh_chebyu_loops[2] = loop_D_dD__As_fF_F
-ufunc_eval_sh_chebyu_loops[3] = loop_d_dd__As_dd_d
-ufunc_eval_sh_chebyu_loops[4] = loop_D_dD__As_dD_D
-ufunc_eval_sh_chebyu_types[0] = NPY_INTP
-ufunc_eval_sh_chebyu_types[1] = NPY_DOUBLE
-ufunc_eval_sh_chebyu_types[2] = NPY_DOUBLE
-ufunc_eval_sh_chebyu_types[3] = NPY_FLOAT
-ufunc_eval_sh_chebyu_types[4] = NPY_FLOAT
-ufunc_eval_sh_chebyu_types[5] = NPY_FLOAT
-ufunc_eval_sh_chebyu_types[6] = NPY_FLOAT
-ufunc_eval_sh_chebyu_types[7] = NPY_CFLOAT
-ufunc_eval_sh_chebyu_types[8] = NPY_CFLOAT
-ufunc_eval_sh_chebyu_types[9] = NPY_DOUBLE
-ufunc_eval_sh_chebyu_types[10] = NPY_DOUBLE
-ufunc_eval_sh_chebyu_types[11] = NPY_DOUBLE
-ufunc_eval_sh_chebyu_types[12] = NPY_DOUBLE
-ufunc_eval_sh_chebyu_types[13] = NPY_CDOUBLE
-ufunc_eval_sh_chebyu_types[14] = NPY_CDOUBLE
-ufunc_eval_sh_chebyu_ptr[2*0] = _func_eval_sh_chebyu_l
-ufunc_eval_sh_chebyu_ptr[2*0+1] = ("eval_sh_chebyu")
-ufunc_eval_sh_chebyu_ptr[2*1] = _func_eval_sh_chebyu[double]
-ufunc_eval_sh_chebyu_ptr[2*1+1] = ("eval_sh_chebyu")
-ufunc_eval_sh_chebyu_ptr[2*2] = _func_eval_sh_chebyu[double_complex]
-ufunc_eval_sh_chebyu_ptr[2*2+1] = ("eval_sh_chebyu")
-ufunc_eval_sh_chebyu_ptr[2*3] = _func_eval_sh_chebyu[double]
-ufunc_eval_sh_chebyu_ptr[2*3+1] = ("eval_sh_chebyu")
-ufunc_eval_sh_chebyu_ptr[2*4] = _func_eval_sh_chebyu[double_complex]
-ufunc_eval_sh_chebyu_ptr[2*4+1] = ("eval_sh_chebyu")
-ufunc_eval_sh_chebyu_data[0] = &ufunc_eval_sh_chebyu_ptr[2*0]
-ufunc_eval_sh_chebyu_data[1] = &ufunc_eval_sh_chebyu_ptr[2*1]
-ufunc_eval_sh_chebyu_data[2] = &ufunc_eval_sh_chebyu_ptr[2*2]
-ufunc_eval_sh_chebyu_data[3] = &ufunc_eval_sh_chebyu_ptr[2*3]
-ufunc_eval_sh_chebyu_data[4] = &ufunc_eval_sh_chebyu_ptr[2*4]
-eval_sh_chebyu = np.PyUFunc_FromFuncAndData(ufunc_eval_sh_chebyu_loops, ufunc_eval_sh_chebyu_data, ufunc_eval_sh_chebyu_types, 5, 2, 1, 0, "eval_sh_chebyu", ufunc_eval_sh_chebyu_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_sh_jacobi_loops[5]
-cdef void *ufunc_eval_sh_jacobi_ptr[10]
-cdef void *ufunc_eval_sh_jacobi_data[5]
-cdef char ufunc_eval_sh_jacobi_types[25]
-cdef char *ufunc_eval_sh_jacobi_doc = (
-    "eval_sh_jacobi(n, p, q, x, out=None)\n"
-    "\n"
-    "Evaluate shifted Jacobi polynomial at a point.\n"
-    "\n"
-    "Defined by\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    G_n^{(p, q)}(x)\n"
-    "      = \\binom{2n + p - 1}{n}^{-1} P_n^{(p - q, q - 1)}(2x - 1),\n"
-    "\n"
-    "where :math:`P_n^{(\\cdot, \\cdot)}` is the n-th Jacobi\n"
-    "polynomial. See 22.5.2 in [AS]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : int\n"
-    "    Degree of the polynomial. If not an integer, the result is\n"
-    "    determined via the relation to `binom` and `eval_jacobi`.\n"
-    "p : float\n"
-    "    Parameter\n"
-    "q : float\n"
-    "    Parameter\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "G : scalar or ndarray\n"
-    "    Values of the shifted Jacobi polynomial.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_sh_jacobi : roots and quadrature weights of shifted Jacobi\n"
-    "                  polynomials\n"
-    "sh_jacobi : shifted Jacobi polynomial object\n"
-    "eval_jacobi : evaluate Jacobi polynomials\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_sh_jacobi_loops[0] = loop_d_pddd__As_pddd_d
-ufunc_eval_sh_jacobi_loops[1] = loop_d_dddd__As_ffff_f
-ufunc_eval_sh_jacobi_loops[2] = loop_D_dddD__As_fffF_F
-ufunc_eval_sh_jacobi_loops[3] = loop_d_dddd__As_dddd_d
-ufunc_eval_sh_jacobi_loops[4] = loop_D_dddD__As_dddD_D
-ufunc_eval_sh_jacobi_types[0] = NPY_INTP
-ufunc_eval_sh_jacobi_types[1] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[2] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[3] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[4] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[5] = NPY_FLOAT
-ufunc_eval_sh_jacobi_types[6] = NPY_FLOAT
-ufunc_eval_sh_jacobi_types[7] = NPY_FLOAT
-ufunc_eval_sh_jacobi_types[8] = NPY_FLOAT
-ufunc_eval_sh_jacobi_types[9] = NPY_FLOAT
-ufunc_eval_sh_jacobi_types[10] = NPY_FLOAT
-ufunc_eval_sh_jacobi_types[11] = NPY_FLOAT
-ufunc_eval_sh_jacobi_types[12] = NPY_FLOAT
-ufunc_eval_sh_jacobi_types[13] = NPY_CFLOAT
-ufunc_eval_sh_jacobi_types[14] = NPY_CFLOAT
-ufunc_eval_sh_jacobi_types[15] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[16] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[17] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[18] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[19] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[20] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[21] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[22] = NPY_DOUBLE
-ufunc_eval_sh_jacobi_types[23] = NPY_CDOUBLE
-ufunc_eval_sh_jacobi_types[24] = NPY_CDOUBLE
-ufunc_eval_sh_jacobi_ptr[2*0] = _func_eval_sh_jacobi_l
-ufunc_eval_sh_jacobi_ptr[2*0+1] = ("eval_sh_jacobi")
-ufunc_eval_sh_jacobi_ptr[2*1] = _func_eval_sh_jacobi[double]
-ufunc_eval_sh_jacobi_ptr[2*1+1] = ("eval_sh_jacobi")
-ufunc_eval_sh_jacobi_ptr[2*2] = _func_eval_sh_jacobi[double_complex]
-ufunc_eval_sh_jacobi_ptr[2*2+1] = ("eval_sh_jacobi")
-ufunc_eval_sh_jacobi_ptr[2*3] = _func_eval_sh_jacobi[double]
-ufunc_eval_sh_jacobi_ptr[2*3+1] = ("eval_sh_jacobi")
-ufunc_eval_sh_jacobi_ptr[2*4] = _func_eval_sh_jacobi[double_complex]
-ufunc_eval_sh_jacobi_ptr[2*4+1] = ("eval_sh_jacobi")
-ufunc_eval_sh_jacobi_data[0] = &ufunc_eval_sh_jacobi_ptr[2*0]
-ufunc_eval_sh_jacobi_data[1] = &ufunc_eval_sh_jacobi_ptr[2*1]
-ufunc_eval_sh_jacobi_data[2] = &ufunc_eval_sh_jacobi_ptr[2*2]
-ufunc_eval_sh_jacobi_data[3] = &ufunc_eval_sh_jacobi_ptr[2*3]
-ufunc_eval_sh_jacobi_data[4] = &ufunc_eval_sh_jacobi_ptr[2*4]
-eval_sh_jacobi = np.PyUFunc_FromFuncAndData(ufunc_eval_sh_jacobi_loops, ufunc_eval_sh_jacobi_data, ufunc_eval_sh_jacobi_types, 5, 4, 1, 0, "eval_sh_jacobi", ufunc_eval_sh_jacobi_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_eval_sh_legendre_loops[5]
-cdef void *ufunc_eval_sh_legendre_ptr[10]
-cdef void *ufunc_eval_sh_legendre_data[5]
-cdef char ufunc_eval_sh_legendre_types[15]
-cdef char *ufunc_eval_sh_legendre_doc = (
-    "eval_sh_legendre(n, x, out=None)\n"
-    "\n"
-    "Evaluate shifted Legendre polynomial at a point.\n"
-    "\n"
-    "These polynomials are defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    P_n^*(x) = P_n(2x - 1)\n"
-    "\n"
-    "where :math:`P_n` is a Legendre polynomial. See 2.2.11 in [AS]_\n"
-    "for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Degree of the polynomial. If not an integer, the value is\n"
-    "    determined via the relation to `eval_legendre`.\n"
-    "x : array_like\n"
-    "    Points at which to evaluate the shifted Legendre polynomial\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "P : scalar or ndarray\n"
-    "    Values of the shifted Legendre polynomial\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "roots_sh_legendre : roots and quadrature weights of shifted\n"
-    "                    Legendre polynomials\n"
-    "sh_legendre : shifted Legendre polynomial object\n"
-    "eval_legendre : evaluate Legendre polynomials\n"
-    "numpy.polynomial.legendre.Legendre : Legendre series\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "    Handbook of Mathematical Functions with Formulas,\n"
-    "    Graphs, and Mathematical Tables. New York: Dover, 1972.")
-ufunc_eval_sh_legendre_loops[0] = loop_d_pd__As_pd_d
-ufunc_eval_sh_legendre_loops[1] = loop_d_dd__As_ff_f
-ufunc_eval_sh_legendre_loops[2] = loop_D_dD__As_fF_F
-ufunc_eval_sh_legendre_loops[3] = loop_d_dd__As_dd_d
-ufunc_eval_sh_legendre_loops[4] = loop_D_dD__As_dD_D
-ufunc_eval_sh_legendre_types[0] = NPY_INTP
-ufunc_eval_sh_legendre_types[1] = NPY_DOUBLE
-ufunc_eval_sh_legendre_types[2] = NPY_DOUBLE
-ufunc_eval_sh_legendre_types[3] = NPY_FLOAT
-ufunc_eval_sh_legendre_types[4] = NPY_FLOAT
-ufunc_eval_sh_legendre_types[5] = NPY_FLOAT
-ufunc_eval_sh_legendre_types[6] = NPY_FLOAT
-ufunc_eval_sh_legendre_types[7] = NPY_CFLOAT
-ufunc_eval_sh_legendre_types[8] = NPY_CFLOAT
-ufunc_eval_sh_legendre_types[9] = NPY_DOUBLE
-ufunc_eval_sh_legendre_types[10] = NPY_DOUBLE
-ufunc_eval_sh_legendre_types[11] = NPY_DOUBLE
-ufunc_eval_sh_legendre_types[12] = NPY_DOUBLE
-ufunc_eval_sh_legendre_types[13] = NPY_CDOUBLE
-ufunc_eval_sh_legendre_types[14] = NPY_CDOUBLE
-ufunc_eval_sh_legendre_ptr[2*0] = _func_eval_sh_legendre_l
-ufunc_eval_sh_legendre_ptr[2*0+1] = ("eval_sh_legendre")
-ufunc_eval_sh_legendre_ptr[2*1] = _func_eval_sh_legendre[double]
-ufunc_eval_sh_legendre_ptr[2*1+1] = ("eval_sh_legendre")
-ufunc_eval_sh_legendre_ptr[2*2] = _func_eval_sh_legendre[double_complex]
-ufunc_eval_sh_legendre_ptr[2*2+1] = ("eval_sh_legendre")
-ufunc_eval_sh_legendre_ptr[2*3] = _func_eval_sh_legendre[double]
-ufunc_eval_sh_legendre_ptr[2*3+1] = ("eval_sh_legendre")
-ufunc_eval_sh_legendre_ptr[2*4] = _func_eval_sh_legendre[double_complex]
-ufunc_eval_sh_legendre_ptr[2*4+1] = ("eval_sh_legendre")
-ufunc_eval_sh_legendre_data[0] = &ufunc_eval_sh_legendre_ptr[2*0]
-ufunc_eval_sh_legendre_data[1] = &ufunc_eval_sh_legendre_ptr[2*1]
-ufunc_eval_sh_legendre_data[2] = &ufunc_eval_sh_legendre_ptr[2*2]
-ufunc_eval_sh_legendre_data[3] = &ufunc_eval_sh_legendre_ptr[2*3]
-ufunc_eval_sh_legendre_data[4] = &ufunc_eval_sh_legendre_ptr[2*4]
-eval_sh_legendre = np.PyUFunc_FromFuncAndData(ufunc_eval_sh_legendre_loops, ufunc_eval_sh_legendre_data, ufunc_eval_sh_legendre_types, 5, 2, 1, 0, "eval_sh_legendre", ufunc_eval_sh_legendre_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_exp10_loops[2]
-cdef void *ufunc_exp10_ptr[4]
-cdef void *ufunc_exp10_data[2]
-cdef char ufunc_exp10_types[4]
-cdef char *ufunc_exp10_doc = (
-    "exp10(x, out=None)\n"
-    "\n"
-    "Compute ``10**x`` element-wise.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    `x` must contain real numbers.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    ``10**x``, computed element-wise.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import exp10\n"
-    "\n"
-    ">>> exp10(3)\n"
-    "1000.0\n"
-    ">>> x = np.array([[-1, -0.5, 0], [0.5, 1, 1.5]])\n"
-    ">>> exp10(x)\n"
-    "array([[  0.1       ,   0.31622777,   1.        ],\n"
-    "       [  3.16227766,  10.        ,  31.6227766 ]])")
-ufunc_exp10_loops[0] = loop_d_d__As_f_f
-ufunc_exp10_loops[1] = loop_d_d__As_d_d
-ufunc_exp10_types[0] = NPY_FLOAT
-ufunc_exp10_types[1] = NPY_FLOAT
-ufunc_exp10_types[2] = NPY_DOUBLE
-ufunc_exp10_types[3] = NPY_DOUBLE
-ufunc_exp10_ptr[2*0] = _func_cephes_exp10
-ufunc_exp10_ptr[2*0+1] = ("exp10")
-ufunc_exp10_ptr[2*1] = _func_cephes_exp10
-ufunc_exp10_ptr[2*1+1] = ("exp10")
-ufunc_exp10_data[0] = &ufunc_exp10_ptr[2*0]
-ufunc_exp10_data[1] = &ufunc_exp10_ptr[2*1]
-exp10 = np.PyUFunc_FromFuncAndData(ufunc_exp10_loops, ufunc_exp10_data, ufunc_exp10_types, 2, 1, 1, 0, "exp10", ufunc_exp10_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_exp2_loops[2]
-cdef void *ufunc_exp2_ptr[4]
-cdef void *ufunc_exp2_data[2]
-cdef char ufunc_exp2_types[4]
-cdef char *ufunc_exp2_doc = (
-    "exp2(x, out=None)\n"
-    "\n"
-    "Compute ``2**x`` element-wise.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    `x` must contain real numbers.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    ``2**x``, computed element-wise.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import exp2\n"
-    "\n"
-    ">>> exp2(3)\n"
-    "8.0\n"
-    ">>> x = np.array([[-1, -0.5, 0], [0.5, 1, 1.5]])\n"
-    ">>> exp2(x)\n"
-    "array([[ 0.5       ,  0.70710678,  1.        ],\n"
-    "       [ 1.41421356,  2.        ,  2.82842712]])")
-ufunc_exp2_loops[0] = loop_d_d__As_f_f
-ufunc_exp2_loops[1] = loop_d_d__As_d_d
-ufunc_exp2_types[0] = NPY_FLOAT
-ufunc_exp2_types[1] = NPY_FLOAT
-ufunc_exp2_types[2] = NPY_DOUBLE
-ufunc_exp2_types[3] = NPY_DOUBLE
-ufunc_exp2_ptr[2*0] = _func_cephes_exp2
-ufunc_exp2_ptr[2*0+1] = ("exp2")
-ufunc_exp2_ptr[2*1] = _func_cephes_exp2
-ufunc_exp2_ptr[2*1+1] = ("exp2")
-ufunc_exp2_data[0] = &ufunc_exp2_ptr[2*0]
-ufunc_exp2_data[1] = &ufunc_exp2_ptr[2*1]
-exp2 = np.PyUFunc_FromFuncAndData(ufunc_exp2_loops, ufunc_exp2_data, ufunc_exp2_types, 2, 1, 1, 0, "exp2", ufunc_exp2_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_expm1_loops[4]
-cdef void *ufunc_expm1_ptr[8]
-cdef void *ufunc_expm1_data[4]
-cdef char ufunc_expm1_types[8]
-cdef char *ufunc_expm1_doc = (
-    "expm1(x, out=None)\n"
-    "\n"
-    "Compute ``exp(x) - 1``.\n"
-    "\n"
-    "When `x` is near zero, ``exp(x)`` is near 1, so the numerical calculation\n"
-    "of ``exp(x) - 1`` can suffer from catastrophic loss of precision.\n"
-    "``expm1(x)`` is implemented to avoid the loss of precision that occurs when\n"
-    "`x` is near zero.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    `x` must contain real numbers.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    ``exp(x) - 1`` computed element-wise.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import expm1\n"
-    "\n"
-    ">>> expm1(1.0)\n"
-    "1.7182818284590451\n"
-    ">>> expm1([-0.2, -0.1, 0, 0.1, 0.2])\n"
-    "array([-0.18126925, -0.09516258,  0.        ,  0.10517092,  0.22140276])\n"
-    "\n"
-    "The exact value of ``exp(7.5e-13) - 1`` is::\n"
-    "\n"
-    "    7.5000000000028125000000007031250000001318...*10**-13.\n"
-    "\n"
-    "Here is what ``expm1(7.5e-13)`` gives:\n"
-    "\n"
-    ">>> expm1(7.5e-13)\n"
-    "7.5000000000028135e-13\n"
-    "\n"
-    "Compare that to ``exp(7.5e-13) - 1``, where the subtraction results in\n"
-    "a \"catastrophic\" loss of precision:\n"
-    "\n"
-    ">>> np.exp(7.5e-13) - 1\n"
-    "7.5006667543675576e-13")
-ufunc_expm1_loops[0] = loop_d_d__As_f_f
-ufunc_expm1_loops[1] = loop_d_d__As_d_d
-ufunc_expm1_loops[2] = loop_D_D__As_F_F
-ufunc_expm1_loops[3] = loop_D_D__As_D_D
-ufunc_expm1_types[0] = NPY_FLOAT
-ufunc_expm1_types[1] = NPY_FLOAT
-ufunc_expm1_types[2] = NPY_DOUBLE
-ufunc_expm1_types[3] = NPY_DOUBLE
-ufunc_expm1_types[4] = NPY_CFLOAT
-ufunc_expm1_types[5] = NPY_CFLOAT
-ufunc_expm1_types[6] = NPY_CDOUBLE
-ufunc_expm1_types[7] = NPY_CDOUBLE
-ufunc_expm1_ptr[2*0] = _func_cephes_expm1
-ufunc_expm1_ptr[2*0+1] = ("expm1")
-ufunc_expm1_ptr[2*1] = _func_cephes_expm1
-ufunc_expm1_ptr[2*1+1] = ("expm1")
-ufunc_expm1_ptr[2*2] = _func_cexpm1
-ufunc_expm1_ptr[2*2+1] = ("expm1")
-ufunc_expm1_ptr[2*3] = _func_cexpm1
-ufunc_expm1_ptr[2*3+1] = ("expm1")
-ufunc_expm1_data[0] = &ufunc_expm1_ptr[2*0]
-ufunc_expm1_data[1] = &ufunc_expm1_ptr[2*1]
-ufunc_expm1_data[2] = &ufunc_expm1_ptr[2*2]
-ufunc_expm1_data[3] = &ufunc_expm1_ptr[2*3]
-expm1 = np.PyUFunc_FromFuncAndData(ufunc_expm1_loops, ufunc_expm1_data, ufunc_expm1_types, 4, 1, 1, 0, "expm1", ufunc_expm1_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_expn_loops[3]
-cdef void *ufunc_expn_ptr[6]
-cdef void *ufunc_expn_data[3]
-cdef char ufunc_expn_types[9]
-cdef char *ufunc_expn_doc = (
-    "expn(n, x, out=None)\n"
-    "\n"
-    "Generalized exponential integral En.\n"
-    "\n"
-    "For integer :math:`n \\geq 0` and real :math:`x \\geq 0` the\n"
-    "generalized exponential integral is defined as [dlmf]_\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    E_n(x) = x^{n - 1} \\int_x^\\infty \\frac{e^{-t}}{t^n} dt.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Non-negative integers\n"
-    "x : array_like\n"
-    "    Real argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the generalized exponential integral\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "exp1 : special case of :math:`E_n` for :math:`n = 1`\n"
-    "expi : related to :math:`E_n` when :math:`n = 1`\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] Digital Library of Mathematical Functions, 8.19.2\n"
-    "          https://dlmf.nist.gov/8.19#E2\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "Its domain is nonnegative n and x.\n"
-    "\n"
-    ">>> sc.expn(-1, 1.0), sc.expn(1, -1.0)\n"
-    "(nan, nan)\n"
-    "\n"
-    "It has a pole at ``x = 0`` for ``n = 1, 2``; for larger ``n`` it\n"
-    "is equal to ``1 / (n - 1)``.\n"
-    "\n"
-    ">>> sc.expn([0, 1, 2, 3, 4], 0)\n"
-    "array([       inf,        inf, 1.        , 0.5       , 0.33333333])\n"
-    "\n"
-    "For n equal to 0 it reduces to ``exp(-x) / x``.\n"
-    "\n"
-    ">>> x = np.array([1, 2, 3, 4])\n"
-    ">>> sc.expn(0, x)\n"
-    "array([0.36787944, 0.06766764, 0.01659569, 0.00457891])\n"
-    ">>> np.exp(-x) / x\n"
-    "array([0.36787944, 0.06766764, 0.01659569, 0.00457891])\n"
-    "\n"
-    "For n equal to 1 it reduces to `exp1`.\n"
-    "\n"
-    ">>> sc.expn(1, x)\n"
-    "array([0.21938393, 0.04890051, 0.01304838, 0.00377935])\n"
-    ">>> sc.exp1(x)\n"
-    "array([0.21938393, 0.04890051, 0.01304838, 0.00377935])")
-ufunc_expn_loops[0] = loop_d_pd__As_pd_d
-ufunc_expn_loops[1] = loop_d_dd__As_ff_f
-ufunc_expn_loops[2] = loop_d_dd__As_dd_d
-ufunc_expn_types[0] = NPY_INTP
-ufunc_expn_types[1] = NPY_DOUBLE
-ufunc_expn_types[2] = NPY_DOUBLE
-ufunc_expn_types[3] = NPY_FLOAT
-ufunc_expn_types[4] = NPY_FLOAT
-ufunc_expn_types[5] = NPY_FLOAT
-ufunc_expn_types[6] = NPY_DOUBLE
-ufunc_expn_types[7] = NPY_DOUBLE
-ufunc_expn_types[8] = NPY_DOUBLE
-ufunc_expn_ptr[2*0] = _func_cephes_expn_wrap
-ufunc_expn_ptr[2*0+1] = ("expn")
-ufunc_expn_ptr[2*1] = _func_expn_unsafe
-ufunc_expn_ptr[2*1+1] = ("expn")
-ufunc_expn_ptr[2*2] = _func_expn_unsafe
-ufunc_expn_ptr[2*2+1] = ("expn")
-ufunc_expn_data[0] = &ufunc_expn_ptr[2*0]
-ufunc_expn_data[1] = &ufunc_expn_ptr[2*1]
-ufunc_expn_data[2] = &ufunc_expn_ptr[2*2]
-expn = np.PyUFunc_FromFuncAndData(ufunc_expn_loops, ufunc_expn_data, ufunc_expn_types, 3, 2, 1, 0, "expn", ufunc_expn_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_fdtr_loops[2]
-cdef void *ufunc_fdtr_ptr[4]
-cdef void *ufunc_fdtr_data[2]
-cdef char ufunc_fdtr_types[8]
-cdef char *ufunc_fdtr_doc = (
-    "fdtr(dfn, dfd, x, out=None)\n"
-    "\n"
-    "F cumulative distribution function.\n"
-    "\n"
-    "Returns the value of the cumulative distribution function of the\n"
-    "F-distribution, also known as Snedecor's F-distribution or the\n"
-    "Fisher-Snedecor distribution.\n"
-    "\n"
-    "The F-distribution with parameters :math:`d_n` and :math:`d_d` is the\n"
-    "distribution of the random variable,\n"
-    "\n"
-    ".. math::\n"
-    "    X = \\frac{U_n/d_n}{U_d/d_d},\n"
-    "\n"
-    "where :math:`U_n` and :math:`U_d` are random variables distributed\n"
-    ":math:`\\chi^2`, with :math:`d_n` and :math:`d_d` degrees of freedom,\n"
-    "respectively.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "dfn : array_like\n"
-    "    First parameter (positive float).\n"
-    "dfd : array_like\n"
-    "    Second parameter (positive float).\n"
-    "x : array_like\n"
-    "    Argument (nonnegative float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "y : scalar or ndarray\n"
-    "    The CDF of the F-distribution with parameters `dfn` and `dfd` at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "fdtrc : F distribution survival function\n"
-    "fdtri : F distribution inverse cumulative distribution\n"
-    "scipy.stats.f : F distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The regularized incomplete beta function is used, according to the\n"
-    "formula,\n"
-    "\n"
-    ".. math::\n"
-    "    F(d_n, d_d; x) = I_{xd_n/(d_d + xd_n)}(d_n/2, d_d/2).\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `fdtr`. The F distribution is also\n"
-    "available as `scipy.stats.f`. Calling `fdtr` directly can improve\n"
-    "performance compared to the ``cdf`` method of `scipy.stats.f` (see last\n"
-    "example below).\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function for ``dfn=1`` and ``dfd=2`` at ``x=1``.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import fdtr\n"
-    ">>> fdtr(1, 2, 1)\n"
-    "0.5773502691896258\n"
-    "\n"
-    "Calculate the function at several points by providing a NumPy array for\n"
-    "`x`.\n"
-    "\n"
-    ">>> x = np.array([0.5, 2., 3.])\n"
-    ">>> fdtr(1, 2, x)\n"
-    "array([0.4472136 , 0.70710678, 0.77459667])\n"
-    "\n"
-    "Plot the function for several parameter sets.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> dfn_parameters = [1, 5, 10, 50]\n"
-    ">>> dfd_parameters = [1, 1, 2, 3]\n"
-    ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
-    ">>> parameters_list = list(zip(dfn_parameters, dfd_parameters,\n"
-    "...                            linestyles))\n"
-    ">>> x = np.linspace(0, 30, 1000)\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> for parameter_set in parameters_list:\n"
-    "...     dfn, dfd, style = parameter_set\n"
-    "...     fdtr_vals = fdtr(dfn, dfd, x)\n"
-    "...     ax.plot(x, fdtr_vals, label=rf\"$d_n={dfn},\\, d_d={dfd}$\",\n"
-    "...             ls=style)\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_xlabel(\"$x$\")\n"
-    ">>> ax.set_title(\"F distribution cumulative distribution function\")\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The F distribution is also available as `scipy.stats.f`. Using `fdtr`\n"
-    "directly can be much faster than calling the ``cdf`` method of\n"
-    "`scipy.stats.f`, especially for small arrays or individual values.\n"
-    "To get the same results one must use the following parametrization:\n"
-    "``stats.f(dfn, dfd).cdf(x)=fdtr(dfn, dfd, x)``.\n"
-    "\n"
-    ">>> from scipy.stats import f\n"
-    ">>> dfn, dfd = 1, 2\n"
-    ">>> x = 1\n"
-    ">>> fdtr_res = fdtr(dfn, dfd, x)  # this will often be faster than below\n"
-    ">>> f_dist_res = f(dfn, dfd).cdf(x)\n"
-    ">>> fdtr_res == f_dist_res  # test that results are equal\n"
-    "True")
-ufunc_fdtr_loops[0] = loop_d_ddd__As_fff_f
-ufunc_fdtr_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_fdtr_types[0] = NPY_FLOAT
-ufunc_fdtr_types[1] = NPY_FLOAT
-ufunc_fdtr_types[2] = NPY_FLOAT
-ufunc_fdtr_types[3] = NPY_FLOAT
-ufunc_fdtr_types[4] = NPY_DOUBLE
-ufunc_fdtr_types[5] = NPY_DOUBLE
-ufunc_fdtr_types[6] = NPY_DOUBLE
-ufunc_fdtr_types[7] = NPY_DOUBLE
-ufunc_fdtr_ptr[2*0] = _func_cephes_fdtr
-ufunc_fdtr_ptr[2*0+1] = ("fdtr")
-ufunc_fdtr_ptr[2*1] = _func_cephes_fdtr
-ufunc_fdtr_ptr[2*1+1] = ("fdtr")
-ufunc_fdtr_data[0] = &ufunc_fdtr_ptr[2*0]
-ufunc_fdtr_data[1] = &ufunc_fdtr_ptr[2*1]
-fdtr = np.PyUFunc_FromFuncAndData(ufunc_fdtr_loops, ufunc_fdtr_data, ufunc_fdtr_types, 2, 3, 1, 0, "fdtr", ufunc_fdtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_fdtrc_loops[2]
-cdef void *ufunc_fdtrc_ptr[4]
-cdef void *ufunc_fdtrc_data[2]
-cdef char ufunc_fdtrc_types[8]
-cdef char *ufunc_fdtrc_doc = (
-    "fdtrc(dfn, dfd, x, out=None)\n"
-    "\n"
-    "F survival function.\n"
-    "\n"
-    "Returns the complemented F-distribution function (the integral of the\n"
-    "density from `x` to infinity).\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "dfn : array_like\n"
-    "    First parameter (positive float).\n"
-    "dfd : array_like\n"
-    "    Second parameter (positive float).\n"
-    "x : array_like\n"
-    "    Argument (nonnegative float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "y : scalar or ndarray\n"
-    "    The complemented F-distribution function with parameters `dfn` and\n"
-    "    `dfd` at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "fdtr : F distribution cumulative distribution function\n"
-    "fdtri : F distribution inverse cumulative distribution function\n"
-    "scipy.stats.f : F distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The regularized incomplete beta function is used, according to the\n"
-    "formula,\n"
-    "\n"
-    ".. math::\n"
-    "    F(d_n, d_d; x) = I_{d_d/(d_d + xd_n)}(d_d/2, d_n/2).\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `fdtrc`. The F distribution is also\n"
-    "available as `scipy.stats.f`. Calling `fdtrc` directly can improve\n"
-    "performance compared to the ``sf`` method of `scipy.stats.f` (see last\n"
-    "example below).\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function for ``dfn=1`` and ``dfd=2`` at ``x=1``.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import fdtrc\n"
-    ">>> fdtrc(1, 2, 1)\n"
-    "0.42264973081037427\n"
-    "\n"
-    "Calculate the function at several points by providing a NumPy array for\n"
-    "`x`.\n"
-    "\n"
-    ">>> x = np.array([0.5, 2., 3.])\n"
-    ">>> fdtrc(1, 2, x)\n"
-    "array([0.5527864 , 0.29289322, 0.22540333])\n"
-    "\n"
-    "Plot the function for several parameter sets.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> dfn_parameters = [1, 5, 10, 50]\n"
-    ">>> dfd_parameters = [1, 1, 2, 3]\n"
-    ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
-    ">>> parameters_list = list(zip(dfn_parameters, dfd_parameters,\n"
-    "...                            linestyles))\n"
-    ">>> x = np.linspace(0, 30, 1000)\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> for parameter_set in parameters_list:\n"
-    "...     dfn, dfd, style = parameter_set\n"
-    "...     fdtrc_vals = fdtrc(dfn, dfd, x)\n"
-    "...     ax.plot(x, fdtrc_vals, label=rf\"$d_n={dfn},\\, d_d={dfd}$\",\n"
-    "...             ls=style)\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_xlabel(\"$x$\")\n"
-    ">>> ax.set_title(\"F distribution survival function\")\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The F distribution is also available as `scipy.stats.f`. Using `fdtrc`\n"
-    "directly can be much faster than calling the ``sf`` method of\n"
-    "`scipy.stats.f`, especially for small arrays or individual values.\n"
-    "To get the same results one must use the following parametrization:\n"
-    "``stats.f(dfn, dfd).sf(x)=fdtrc(dfn, dfd, x)``.\n"
-    "\n"
-    ">>> from scipy.stats import f\n"
-    ">>> dfn, dfd = 1, 2\n"
-    ">>> x = 1\n"
-    ">>> fdtrc_res = fdtrc(dfn, dfd, x)  # this will often be faster than below\n"
-    ">>> f_dist_res = f(dfn, dfd).sf(x)\n"
-    ">>> f_dist_res == fdtrc_res  # test that results are equal\n"
-    "True")
-ufunc_fdtrc_loops[0] = loop_d_ddd__As_fff_f
-ufunc_fdtrc_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_fdtrc_types[0] = NPY_FLOAT
-ufunc_fdtrc_types[1] = NPY_FLOAT
-ufunc_fdtrc_types[2] = NPY_FLOAT
-ufunc_fdtrc_types[3] = NPY_FLOAT
-ufunc_fdtrc_types[4] = NPY_DOUBLE
-ufunc_fdtrc_types[5] = NPY_DOUBLE
-ufunc_fdtrc_types[6] = NPY_DOUBLE
-ufunc_fdtrc_types[7] = NPY_DOUBLE
-ufunc_fdtrc_ptr[2*0] = _func_cephes_fdtrc
-ufunc_fdtrc_ptr[2*0+1] = ("fdtrc")
-ufunc_fdtrc_ptr[2*1] = _func_cephes_fdtrc
-ufunc_fdtrc_ptr[2*1+1] = ("fdtrc")
-ufunc_fdtrc_data[0] = &ufunc_fdtrc_ptr[2*0]
-ufunc_fdtrc_data[1] = &ufunc_fdtrc_ptr[2*1]
-fdtrc = np.PyUFunc_FromFuncAndData(ufunc_fdtrc_loops, ufunc_fdtrc_data, ufunc_fdtrc_types, 2, 3, 1, 0, "fdtrc", ufunc_fdtrc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_fdtri_loops[2]
-cdef void *ufunc_fdtri_ptr[4]
-cdef void *ufunc_fdtri_data[2]
-cdef char ufunc_fdtri_types[8]
-cdef char *ufunc_fdtri_doc = (
-    "fdtri(dfn, dfd, p, out=None)\n"
-    "\n"
-    "The `p`-th quantile of the F-distribution.\n"
-    "\n"
-    "This function is the inverse of the F-distribution CDF, `fdtr`, returning\n"
-    "the `x` such that `fdtr(dfn, dfd, x) = p`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "dfn : array_like\n"
-    "    First parameter (positive float).\n"
-    "dfd : array_like\n"
-    "    Second parameter (positive float).\n"
-    "p : array_like\n"
-    "    Cumulative probability, in [0, 1].\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "x : scalar or ndarray\n"
-    "    The quantile corresponding to `p`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "fdtr : F distribution cumulative distribution function\n"
-    "fdtrc : F distribution survival function\n"
-    "scipy.stats.f : F distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The computation is carried out using the relation to the inverse\n"
-    "regularized beta function, :math:`I^{-1}_x(a, b)`.  Let\n"
-    ":math:`z = I^{-1}_p(d_d/2, d_n/2).`  Then,\n"
-    "\n"
-    ".. math::\n"
-    "    x = \\frac{d_d (1 - z)}{d_n z}.\n"
-    "\n"
-    "If `p` is such that :math:`x < 0.5`, the following relation is used\n"
-    "instead for improved stability: let\n"
-    ":math:`z' = I^{-1}_{1 - p}(d_n/2, d_d/2).` Then,\n"
-    "\n"
-    ".. math::\n"
-    "    x = \\frac{d_d z'}{d_n (1 - z')}.\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `fdtri`.\n"
-    "\n"
-    "The F distribution is also available as `scipy.stats.f`. Calling\n"
-    "`fdtri` directly can improve performance compared to the ``ppf``\n"
-    "method of `scipy.stats.f` (see last example below).\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "`fdtri` represents the inverse of the F distribution CDF which is\n"
-    "available as `fdtr`. Here, we calculate the CDF for ``df1=1``, ``df2=2``\n"
-    "at ``x=3``. `fdtri` then returns ``3`` given the same values for `df1`,\n"
-    "`df2` and the computed CDF value.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import fdtri, fdtr\n"
-    ">>> df1, df2 = 1, 2\n"
-    ">>> x = 3\n"
-    ">>> cdf_value =  fdtr(df1, df2, x)\n"
-    ">>> fdtri(df1, df2, cdf_value)\n"
-    "3.000000000000006\n"
-    "\n"
-    "Calculate the function at several points by providing a NumPy array for\n"
-    "`x`.\n"
-    "\n"
-    ">>> x = np.array([0.1, 0.4, 0.7])\n"
-    ">>> fdtri(1, 2, x)\n"
-    "array([0.02020202, 0.38095238, 1.92156863])\n"
-    "\n"
-    "Plot the function for several parameter sets.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> dfn_parameters = [50, 10, 1, 50]\n"
-    ">>> dfd_parameters = [0.5, 1, 1, 5]\n"
-    ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
-    ">>> parameters_list = list(zip(dfn_parameters, dfd_parameters,\n"
-    "...                            linestyles))\n"
-    ">>> x = np.linspace(0, 1, 1000)\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> for parameter_set in parameters_list:\n"
-    "...     dfn, dfd, style = parameter_set\n"
-    "...     fdtri_vals = fdtri(dfn, dfd, x)\n"
-    "...     ax.plot(x, fdtri_vals, label=rf\"$d_n={dfn},\\, d_d={dfd}$\",\n"
-    "...             ls=style)\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_xlabel(\"$x$\")\n"
-    ">>> title = \"F distribution inverse cumulative distribution function\"\n"
-    ">>> ax.set_title(title)\n"
-    ">>> ax.set_ylim(0, 30)\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The F distribution is also available as `scipy.stats.f`. Using `fdtri`\n"
-    "directly can be much faster than calling the ``ppf`` method of\n"
-    "`scipy.stats.f`, especially for small arrays or individual values.\n"
-    "To get the same results one must use the following parametrization:\n"
-    "``stats.f(dfn, dfd).ppf(x)=fdtri(dfn, dfd, x)``.\n"
-    "\n"
-    ">>> from scipy.stats import f\n"
-    ">>> dfn, dfd = 1, 2\n"
-    ">>> x = 0.7\n"
-    ">>> fdtri_res = fdtri(dfn, dfd, x)  # this will often be faster than below\n"
-    ">>> f_dist_res = f(dfn, dfd).ppf(x)\n"
-    ">>> f_dist_res == fdtri_res  # test that results are equal\n"
-    "True")
-ufunc_fdtri_loops[0] = loop_d_ddd__As_fff_f
-ufunc_fdtri_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_fdtri_types[0] = NPY_FLOAT
-ufunc_fdtri_types[1] = NPY_FLOAT
-ufunc_fdtri_types[2] = NPY_FLOAT
-ufunc_fdtri_types[3] = NPY_FLOAT
-ufunc_fdtri_types[4] = NPY_DOUBLE
-ufunc_fdtri_types[5] = NPY_DOUBLE
-ufunc_fdtri_types[6] = NPY_DOUBLE
-ufunc_fdtri_types[7] = NPY_DOUBLE
-ufunc_fdtri_ptr[2*0] = _func_cephes_fdtri
-ufunc_fdtri_ptr[2*0+1] = ("fdtri")
-ufunc_fdtri_ptr[2*1] = _func_cephes_fdtri
-ufunc_fdtri_ptr[2*1+1] = ("fdtri")
-ufunc_fdtri_data[0] = &ufunc_fdtri_ptr[2*0]
-ufunc_fdtri_data[1] = &ufunc_fdtri_ptr[2*1]
-fdtri = np.PyUFunc_FromFuncAndData(ufunc_fdtri_loops, ufunc_fdtri_data, ufunc_fdtri_types, 2, 3, 1, 0, "fdtri", ufunc_fdtri_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_fdtridfd_loops[2]
-cdef void *ufunc_fdtridfd_ptr[4]
-cdef void *ufunc_fdtridfd_data[2]
-cdef char ufunc_fdtridfd_types[8]
-cdef char *ufunc_fdtridfd_doc = (
-    "fdtridfd(dfn, p, x, out=None)\n"
-    "\n"
-    "Inverse to `fdtr` vs dfd\n"
-    "\n"
-    "Finds the F density argument dfd such that ``fdtr(dfn, dfd, x) == p``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "dfn : array_like\n"
-    "    First parameter (positive float).\n"
-    "p : array_like\n"
-    "    Cumulative probability, in [0, 1].\n"
-    "x : array_like\n"
-    "    Argument (nonnegative float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "dfd : scalar or ndarray\n"
-    "    `dfd` such that ``fdtr(dfn, dfd, x) == p``.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "fdtr : F distribution cumulative distribution function\n"
-    "fdtrc : F distribution survival function\n"
-    "fdtri : F distribution quantile function\n"
-    "scipy.stats.f : F distribution\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Compute the F distribution cumulative distribution function for one\n"
-    "parameter set.\n"
-    "\n"
-    ">>> from scipy.special import fdtridfd, fdtr\n"
-    ">>> dfn, dfd, x = 10, 5, 2\n"
-    ">>> cdf_value = fdtr(dfn, dfd, x)\n"
-    ">>> cdf_value\n"
-    "0.7700248806501017\n"
-    "\n"
-    "Verify that `fdtridfd` recovers the original value for `dfd`:\n"
-    "\n"
-    ">>> fdtridfd(dfn, cdf_value, x)\n"
-    "5.0")
-ufunc_fdtridfd_loops[0] = loop_d_ddd__As_fff_f
-ufunc_fdtridfd_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_fdtridfd_types[0] = NPY_FLOAT
-ufunc_fdtridfd_types[1] = NPY_FLOAT
-ufunc_fdtridfd_types[2] = NPY_FLOAT
-ufunc_fdtridfd_types[3] = NPY_FLOAT
-ufunc_fdtridfd_types[4] = NPY_DOUBLE
-ufunc_fdtridfd_types[5] = NPY_DOUBLE
-ufunc_fdtridfd_types[6] = NPY_DOUBLE
-ufunc_fdtridfd_types[7] = NPY_DOUBLE
-ufunc_fdtridfd_ptr[2*0] = _func_fdtridfd
-ufunc_fdtridfd_ptr[2*0+1] = ("fdtridfd")
-ufunc_fdtridfd_ptr[2*1] = _func_fdtridfd
-ufunc_fdtridfd_ptr[2*1+1] = ("fdtridfd")
-ufunc_fdtridfd_data[0] = &ufunc_fdtridfd_ptr[2*0]
-ufunc_fdtridfd_data[1] = &ufunc_fdtridfd_ptr[2*1]
-fdtridfd = np.PyUFunc_FromFuncAndData(ufunc_fdtridfd_loops, ufunc_fdtridfd_data, ufunc_fdtridfd_types, 2, 3, 1, 0, "fdtridfd", ufunc_fdtridfd_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_fresnel_loops[4]
-cdef void *ufunc_fresnel_ptr[8]
-cdef void *ufunc_fresnel_data[4]
-cdef char ufunc_fresnel_types[12]
-cdef char *ufunc_fresnel_doc = (
-    "fresnel(z, out=None)\n"
-    "\n"
-    "Fresnel integrals.\n"
-    "\n"
-    "The Fresnel integrals are defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "   S(z) &= \\int_0^z \\sin(\\pi t^2 /2) dt \\\\\n"
-    "   C(z) &= \\int_0^z \\cos(\\pi t^2 /2) dt.\n"
-    "\n"
-    "See [dlmf]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "z : array_like\n"
-    "    Real or complex valued argument\n"
-    "out : 2-tuple of ndarrays, optional\n"
-    "    Optional output arrays for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "S, C : 2-tuple of scalar or ndarray\n"
-    "    Values of the Fresnel integrals\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "fresnel_zeros : zeros of the Fresnel integrals\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] NIST Digital Library of Mathematical Functions\n"
-    "          https://dlmf.nist.gov/7.2#iii\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "As z goes to infinity along the real axis, S and C converge to 0.5.\n"
-    "\n"
-    ">>> S, C = sc.fresnel([0.1, 1, 10, 100, np.inf])\n"
-    ">>> S\n"
-    "array([0.00052359, 0.43825915, 0.46816998, 0.4968169 , 0.5       ])\n"
-    ">>> C\n"
-    "array([0.09999753, 0.7798934 , 0.49989869, 0.4999999 , 0.5       ])\n"
-    "\n"
-    "They are related to the error function `erf`.\n"
-    "\n"
-    ">>> z = np.array([1, 2, 3, 4])\n"
-    ">>> zeta = 0.5 * np.sqrt(np.pi) * (1 - 1j) * z\n"
-    ">>> S, C = sc.fresnel(z)\n"
-    ">>> C + 1j*S\n"
-    "array([0.7798934 +0.43825915j, 0.48825341+0.34341568j,\n"
-    "       0.60572079+0.496313j  , 0.49842603+0.42051575j])\n"
-    ">>> 0.5 * (1 + 1j) * sc.erf(zeta)\n"
-    "array([0.7798934 +0.43825915j, 0.48825341+0.34341568j,\n"
-    "       0.60572079+0.496313j  , 0.49842603+0.42051575j])")
-ufunc_fresnel_loops[0] = loop_i_d_dd_As_f_ff
-ufunc_fresnel_loops[1] = loop_i_d_dd_As_d_dd
-ufunc_fresnel_loops[2] = loop_i_D_DD_As_F_FF
-ufunc_fresnel_loops[3] = loop_i_D_DD_As_D_DD
-ufunc_fresnel_types[0] = NPY_FLOAT
-ufunc_fresnel_types[1] = NPY_FLOAT
-ufunc_fresnel_types[2] = NPY_FLOAT
-ufunc_fresnel_types[3] = NPY_DOUBLE
-ufunc_fresnel_types[4] = NPY_DOUBLE
-ufunc_fresnel_types[5] = NPY_DOUBLE
-ufunc_fresnel_types[6] = NPY_CFLOAT
-ufunc_fresnel_types[7] = NPY_CFLOAT
-ufunc_fresnel_types[8] = NPY_CFLOAT
-ufunc_fresnel_types[9] = NPY_CDOUBLE
-ufunc_fresnel_types[10] = NPY_CDOUBLE
-ufunc_fresnel_types[11] = NPY_CDOUBLE
-ufunc_fresnel_ptr[2*0] = _func_cephes_fresnl_wrap
-ufunc_fresnel_ptr[2*0+1] = ("fresnel")
-ufunc_fresnel_ptr[2*1] = _func_cephes_fresnl_wrap
-ufunc_fresnel_ptr[2*1+1] = ("fresnel")
-ufunc_fresnel_ptr[2*2] = _func_cfresnl_wrap
-ufunc_fresnel_ptr[2*2+1] = ("fresnel")
-ufunc_fresnel_ptr[2*3] = _func_cfresnl_wrap
-ufunc_fresnel_ptr[2*3+1] = ("fresnel")
-ufunc_fresnel_data[0] = &ufunc_fresnel_ptr[2*0]
-ufunc_fresnel_data[1] = &ufunc_fresnel_ptr[2*1]
-ufunc_fresnel_data[2] = &ufunc_fresnel_ptr[2*2]
-ufunc_fresnel_data[3] = &ufunc_fresnel_ptr[2*3]
-fresnel = np.PyUFunc_FromFuncAndData(ufunc_fresnel_loops, ufunc_fresnel_data, ufunc_fresnel_types, 4, 1, 2, 0, "fresnel", ufunc_fresnel_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_gammainc_loops[2]
-cdef void *ufunc_gammainc_ptr[4]
-cdef void *ufunc_gammainc_data[2]
-cdef char ufunc_gammainc_types[6]
-cdef char *ufunc_gammainc_doc = (
-    "gammainc(a, x, out=None)\n"
-    "\n"
-    "Regularized lower incomplete gamma function.\n"
-    "\n"
-    "It is defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    P(a, x) = \\frac{1}{\\Gamma(a)} \\int_0^x t^{a - 1}e^{-t} dt\n"
-    "\n"
-    "for :math:`a > 0` and :math:`x \\geq 0`. See [dlmf]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    Positive parameter\n"
-    "x : array_like\n"
-    "    Nonnegative argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the lower incomplete gamma function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gammaincc : regularized upper incomplete gamma function\n"
-    "gammaincinv : inverse of the regularized lower incomplete gamma function\n"
-    "gammainccinv : inverse of the regularized upper incomplete gamma function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The function satisfies the relation ``gammainc(a, x) +\n"
-    "gammaincc(a, x) = 1`` where `gammaincc` is the regularized upper\n"
-    "incomplete gamma function.\n"
-    "\n"
-    "The implementation largely follows that of [boost]_.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] NIST Digital Library of Mathematical functions\n"
-    "          https://dlmf.nist.gov/8.2#E4\n"
-    ".. [boost] Maddock et. al., \"Incomplete Gamma Functions\",\n"
-    "   https://www.boost.org/doc/libs/1_61_0/libs/math/doc/html/math_toolkit/sf_gamma/igamma.html\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is the CDF of the gamma distribution, so it starts at 0 and\n"
-    "monotonically increases to 1.\n"
-    "\n"
-    ">>> sc.gammainc(0.5, [0, 1, 10, 100])\n"
-    "array([0.        , 0.84270079, 0.99999226, 1.        ])\n"
-    "\n"
-    "It is equal to one minus the upper incomplete gamma function.\n"
-    "\n"
-    ">>> a, x = 0.5, 0.4\n"
-    ">>> sc.gammainc(a, x)\n"
-    "0.6289066304773024\n"
-    ">>> 1 - sc.gammaincc(a, x)\n"
-    "0.6289066304773024")
-ufunc_gammainc_loops[0] = loop_d_dd__As_ff_f
-ufunc_gammainc_loops[1] = loop_d_dd__As_dd_d
-ufunc_gammainc_types[0] = NPY_FLOAT
-ufunc_gammainc_types[1] = NPY_FLOAT
-ufunc_gammainc_types[2] = NPY_FLOAT
-ufunc_gammainc_types[3] = NPY_DOUBLE
-ufunc_gammainc_types[4] = NPY_DOUBLE
-ufunc_gammainc_types[5] = NPY_DOUBLE
-ufunc_gammainc_ptr[2*0] = _func_cephes_igam
-ufunc_gammainc_ptr[2*0+1] = ("gammainc")
-ufunc_gammainc_ptr[2*1] = _func_cephes_igam
-ufunc_gammainc_ptr[2*1+1] = ("gammainc")
-ufunc_gammainc_data[0] = &ufunc_gammainc_ptr[2*0]
-ufunc_gammainc_data[1] = &ufunc_gammainc_ptr[2*1]
-gammainc = np.PyUFunc_FromFuncAndData(ufunc_gammainc_loops, ufunc_gammainc_data, ufunc_gammainc_types, 2, 2, 1, 0, "gammainc", ufunc_gammainc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_gammaincc_loops[2]
-cdef void *ufunc_gammaincc_ptr[4]
-cdef void *ufunc_gammaincc_data[2]
-cdef char ufunc_gammaincc_types[6]
-cdef char *ufunc_gammaincc_doc = (
-    "gammaincc(a, x, out=None)\n"
-    "\n"
-    "Regularized upper incomplete gamma function.\n"
-    "\n"
-    "It is defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    Q(a, x) = \\frac{1}{\\Gamma(a)} \\int_x^\\infty t^{a - 1}e^{-t} dt\n"
-    "\n"
-    "for :math:`a > 0` and :math:`x \\geq 0`. See [dlmf]_ for details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    Positive parameter\n"
-    "x : array_like\n"
-    "    Nonnegative argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the upper incomplete gamma function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gammainc : regularized lower incomplete gamma function\n"
-    "gammaincinv : inverse of the regularized lower incomplete gamma function\n"
-    "gammainccinv : inverse of the regularized upper incomplete gamma function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The function satisfies the relation ``gammainc(a, x) +\n"
-    "gammaincc(a, x) = 1`` where `gammainc` is the regularized lower\n"
-    "incomplete gamma function.\n"
-    "\n"
-    "The implementation largely follows that of [boost]_.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] NIST Digital Library of Mathematical functions\n"
-    "          https://dlmf.nist.gov/8.2#E4\n"
-    ".. [boost] Maddock et. al., \"Incomplete Gamma Functions\",\n"
-    "   https://www.boost.org/doc/libs/1_61_0/libs/math/doc/html/math_toolkit/sf_gamma/igamma.html\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is the survival function of the gamma distribution, so it\n"
-    "starts at 1 and monotonically decreases to 0.\n"
-    "\n"
-    ">>> sc.gammaincc(0.5, [0, 1, 10, 100, 1000])\n"
-    "array([1.00000000e+00, 1.57299207e-01, 7.74421643e-06, 2.08848758e-45,\n"
-    "       0.00000000e+00])\n"
-    "\n"
-    "It is equal to one minus the lower incomplete gamma function.\n"
-    "\n"
-    ">>> a, x = 0.5, 0.4\n"
-    ">>> sc.gammaincc(a, x)\n"
-    "0.37109336952269756\n"
-    ">>> 1 - sc.gammainc(a, x)\n"
-    "0.37109336952269756")
-ufunc_gammaincc_loops[0] = loop_d_dd__As_ff_f
-ufunc_gammaincc_loops[1] = loop_d_dd__As_dd_d
-ufunc_gammaincc_types[0] = NPY_FLOAT
-ufunc_gammaincc_types[1] = NPY_FLOAT
-ufunc_gammaincc_types[2] = NPY_FLOAT
-ufunc_gammaincc_types[3] = NPY_DOUBLE
-ufunc_gammaincc_types[4] = NPY_DOUBLE
-ufunc_gammaincc_types[5] = NPY_DOUBLE
-ufunc_gammaincc_ptr[2*0] = _func_cephes_igamc
-ufunc_gammaincc_ptr[2*0+1] = ("gammaincc")
-ufunc_gammaincc_ptr[2*1] = _func_cephes_igamc
-ufunc_gammaincc_ptr[2*1+1] = ("gammaincc")
-ufunc_gammaincc_data[0] = &ufunc_gammaincc_ptr[2*0]
-ufunc_gammaincc_data[1] = &ufunc_gammaincc_ptr[2*1]
-gammaincc = np.PyUFunc_FromFuncAndData(ufunc_gammaincc_loops, ufunc_gammaincc_data, ufunc_gammaincc_types, 2, 2, 1, 0, "gammaincc", ufunc_gammaincc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_gammainccinv_loops[2]
-cdef void *ufunc_gammainccinv_ptr[4]
-cdef void *ufunc_gammainccinv_data[2]
-cdef char ufunc_gammainccinv_types[6]
-cdef char *ufunc_gammainccinv_doc = (
-    "gammainccinv(a, y, out=None)\n"
-    "\n"
-    "Inverse of the regularized upper incomplete gamma function.\n"
-    "\n"
-    "Given an input :math:`y` between 0 and 1, returns :math:`x` such\n"
-    "that :math:`y = Q(a, x)`. Here :math:`Q` is the regularized upper\n"
-    "incomplete gamma function; see `gammaincc`. This is well-defined\n"
-    "because the upper incomplete gamma function is monotonic as can\n"
-    "be seen from its definition in [dlmf]_.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    Positive parameter\n"
-    "y : array_like\n"
-    "    Argument between 0 and 1, inclusive\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the inverse of the upper incomplete gamma function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gammaincc : regularized upper incomplete gamma function\n"
-    "gammainc : regularized lower incomplete gamma function\n"
-    "gammaincinv : inverse of the regularized lower incomplete gamma function\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] NIST Digital Library of Mathematical Functions\n"
-    "          https://dlmf.nist.gov/8.2#E4\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It starts at infinity and monotonically decreases to 0.\n"
-    "\n"
-    ">>> sc.gammainccinv(0.5, [0, 0.1, 0.5, 1])\n"
-    "array([       inf, 1.35277173, 0.22746821, 0.        ])\n"
-    "\n"
-    "It inverts the upper incomplete gamma function.\n"
-    "\n"
-    ">>> a, x = 0.5, [0, 0.1, 0.5, 1]\n"
-    ">>> sc.gammaincc(a, sc.gammainccinv(a, x))\n"
-    "array([0. , 0.1, 0.5, 1. ])\n"
-    "\n"
-    ">>> a, x = 0.5, [0, 10, 50]\n"
-    ">>> sc.gammainccinv(a, sc.gammaincc(a, x))\n"
-    "array([ 0., 10., 50.])")
-ufunc_gammainccinv_loops[0] = loop_d_dd__As_ff_f
-ufunc_gammainccinv_loops[1] = loop_d_dd__As_dd_d
-ufunc_gammainccinv_types[0] = NPY_FLOAT
-ufunc_gammainccinv_types[1] = NPY_FLOAT
-ufunc_gammainccinv_types[2] = NPY_FLOAT
-ufunc_gammainccinv_types[3] = NPY_DOUBLE
-ufunc_gammainccinv_types[4] = NPY_DOUBLE
-ufunc_gammainccinv_types[5] = NPY_DOUBLE
-ufunc_gammainccinv_ptr[2*0] = _func_cephes_igamci
-ufunc_gammainccinv_ptr[2*0+1] = ("gammainccinv")
-ufunc_gammainccinv_ptr[2*1] = _func_cephes_igamci
-ufunc_gammainccinv_ptr[2*1+1] = ("gammainccinv")
-ufunc_gammainccinv_data[0] = &ufunc_gammainccinv_ptr[2*0]
-ufunc_gammainccinv_data[1] = &ufunc_gammainccinv_ptr[2*1]
-gammainccinv = np.PyUFunc_FromFuncAndData(ufunc_gammainccinv_loops, ufunc_gammainccinv_data, ufunc_gammainccinv_types, 2, 2, 1, 0, "gammainccinv", ufunc_gammainccinv_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_gammaincinv_loops[2]
-cdef void *ufunc_gammaincinv_ptr[4]
-cdef void *ufunc_gammaincinv_data[2]
-cdef char ufunc_gammaincinv_types[6]
-cdef char *ufunc_gammaincinv_doc = (
-    "gammaincinv(a, y, out=None)\n"
-    "\n"
-    "Inverse to the regularized lower incomplete gamma function.\n"
-    "\n"
-    "Given an input :math:`y` between 0 and 1, returns :math:`x` such\n"
-    "that :math:`y = P(a, x)`. Here :math:`P` is the regularized lower\n"
-    "incomplete gamma function; see `gammainc`. This is well-defined\n"
-    "because the lower incomplete gamma function is monotonic as can be\n"
-    "seen from its definition in [dlmf]_.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    Positive parameter\n"
-    "y : array_like\n"
-    "    Parameter between 0 and 1, inclusive\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the inverse of the lower incomplete gamma function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gammainc : regularized lower incomplete gamma function\n"
-    "gammaincc : regularized upper incomplete gamma function\n"
-    "gammainccinv : inverse of the regularized upper incomplete gamma function\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] NIST Digital Library of Mathematical Functions\n"
-    "          https://dlmf.nist.gov/8.2#E4\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It starts at 0 and monotonically increases to infinity.\n"
-    "\n"
-    ">>> sc.gammaincinv(0.5, [0, 0.1 ,0.5, 1])\n"
-    "array([0.        , 0.00789539, 0.22746821,        inf])\n"
-    "\n"
-    "It inverts the lower incomplete gamma function.\n"
-    "\n"
-    ">>> a, x = 0.5, [0, 0.1, 0.5, 1]\n"
-    ">>> sc.gammainc(a, sc.gammaincinv(a, x))\n"
-    "array([0. , 0.1, 0.5, 1. ])\n"
-    "\n"
-    ">>> a, x = 0.5, [0, 10, 25]\n"
-    ">>> sc.gammaincinv(a, sc.gammainc(a, x))\n"
-    "array([ 0.        , 10.        , 25.00001465])")
-ufunc_gammaincinv_loops[0] = loop_d_dd__As_ff_f
-ufunc_gammaincinv_loops[1] = loop_d_dd__As_dd_d
-ufunc_gammaincinv_types[0] = NPY_FLOAT
-ufunc_gammaincinv_types[1] = NPY_FLOAT
-ufunc_gammaincinv_types[2] = NPY_FLOAT
-ufunc_gammaincinv_types[3] = NPY_DOUBLE
-ufunc_gammaincinv_types[4] = NPY_DOUBLE
-ufunc_gammaincinv_types[5] = NPY_DOUBLE
-ufunc_gammaincinv_ptr[2*0] = _func_cephes_igami
-ufunc_gammaincinv_ptr[2*0+1] = ("gammaincinv")
-ufunc_gammaincinv_ptr[2*1] = _func_cephes_igami
-ufunc_gammaincinv_ptr[2*1+1] = ("gammaincinv")
-ufunc_gammaincinv_data[0] = &ufunc_gammaincinv_ptr[2*0]
-ufunc_gammaincinv_data[1] = &ufunc_gammaincinv_ptr[2*1]
-gammaincinv = np.PyUFunc_FromFuncAndData(ufunc_gammaincinv_loops, ufunc_gammaincinv_data, ufunc_gammaincinv_types, 2, 2, 1, 0, "gammaincinv", ufunc_gammaincinv_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_gammasgn_loops[2]
-cdef void *ufunc_gammasgn_ptr[4]
-cdef void *ufunc_gammasgn_data[2]
-cdef char ufunc_gammasgn_types[4]
-cdef char *ufunc_gammasgn_doc = (
-    "gammasgn(x, out=None)\n"
-    "\n"
-    "Sign of the gamma function.\n"
-    "\n"
-    "It is defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "   \\text{gammasgn}(x) =\n"
-    "   \\begin{cases}\n"
-    "     +1 & \\Gamma(x) > 0 \\\\\n"
-    "     -1 & \\Gamma(x) < 0\n"
-    "   \\end{cases}\n"
-    "\n"
-    "where :math:`\\Gamma` is the gamma function; see `gamma`. This\n"
-    "definition is complete since the gamma function is never zero;\n"
-    "see the discussion after [dlmf]_.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Sign of the gamma function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gamma : the gamma function\n"
-    "gammaln : log of the absolute value of the gamma function\n"
-    "loggamma : analytic continuation of the log of the gamma function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The gamma function can be computed as ``gammasgn(x) *\n"
-    "np.exp(gammaln(x))``.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] NIST Digital Library of Mathematical Functions\n"
-    "          https://dlmf.nist.gov/5.2#E1\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is 1 for `x > 0`.\n"
-    "\n"
-    ">>> sc.gammasgn([1, 2, 3, 4])\n"
-    "array([1., 1., 1., 1.])\n"
-    "\n"
-    "It alternates between -1 and 1 for negative integers.\n"
-    "\n"
-    ">>> sc.gammasgn([-0.5, -1.5, -2.5, -3.5])\n"
-    "array([-1.,  1., -1.,  1.])\n"
-    "\n"
-    "It can be used to compute the gamma function.\n"
-    "\n"
-    ">>> x = [1.5, 0.5, -0.5, -1.5]\n"
-    ">>> sc.gammasgn(x) * np.exp(sc.gammaln(x))\n"
-    "array([ 0.88622693,  1.77245385, -3.5449077 ,  2.3632718 ])\n"
-    ">>> sc.gamma(x)\n"
-    "array([ 0.88622693,  1.77245385, -3.5449077 ,  2.3632718 ])")
-ufunc_gammasgn_loops[0] = loop_d_d__As_f_f
-ufunc_gammasgn_loops[1] = loop_d_d__As_d_d
-ufunc_gammasgn_types[0] = NPY_FLOAT
-ufunc_gammasgn_types[1] = NPY_FLOAT
-ufunc_gammasgn_types[2] = NPY_DOUBLE
-ufunc_gammasgn_types[3] = NPY_DOUBLE
-ufunc_gammasgn_ptr[2*0] = _func_cephes_gammasgn
-ufunc_gammasgn_ptr[2*0+1] = ("gammasgn")
-ufunc_gammasgn_ptr[2*1] = _func_cephes_gammasgn
-ufunc_gammasgn_ptr[2*1+1] = ("gammasgn")
-ufunc_gammasgn_data[0] = &ufunc_gammasgn_ptr[2*0]
-ufunc_gammasgn_data[1] = &ufunc_gammasgn_ptr[2*1]
-gammasgn = np.PyUFunc_FromFuncAndData(ufunc_gammasgn_loops, ufunc_gammasgn_data, ufunc_gammasgn_types, 2, 1, 1, 0, "gammasgn", ufunc_gammasgn_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_gdtr_loops[2]
-cdef void *ufunc_gdtr_ptr[4]
-cdef void *ufunc_gdtr_data[2]
-cdef char ufunc_gdtr_types[8]
-cdef char *ufunc_gdtr_doc = (
-    "gdtr(a, b, x, out=None)\n"
-    "\n"
-    "Gamma distribution cumulative distribution function.\n"
-    "\n"
-    "Returns the integral from zero to `x` of the gamma probability density\n"
-    "function,\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    F = \\int_0^x \\frac{a^b}{\\Gamma(b)} t^{b-1} e^{-at}\\,dt,\n"
-    "\n"
-    "where :math:`\\Gamma` is the gamma function.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    The rate parameter of the gamma distribution, sometimes denoted\n"
-    "    :math:`\\beta` (float).  It is also the reciprocal of the scale\n"
-    "    parameter :math:`\\theta`.\n"
-    "b : array_like\n"
-    "    The shape parameter of the gamma distribution, sometimes denoted\n"
-    "    :math:`\\alpha` (float).\n"
-    "x : array_like\n"
-    "    The quantile (upper limit of integration; float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "F : scalar or ndarray\n"
-    "    The CDF of the gamma distribution with parameters `a` and `b`\n"
-    "    evaluated at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gdtrc : 1 - CDF of the gamma distribution.\n"
-    "scipy.stats.gamma: Gamma distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The evaluation is carried out using the relation to the incomplete gamma\n"
-    "integral (regularized gamma function).\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `gdtr`. Calling `gdtr` directly can\n"
-    "improve performance compared to the ``cdf`` method of `scipy.stats.gamma`\n"
-    "(see last example below).\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Compute the function for ``a=1``, ``b=2`` at ``x=5``.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import gdtr\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> gdtr(1., 2., 5.)\n"
-    "0.9595723180054873\n"
-    "\n"
-    "Compute the function for ``a=1`` and ``b=2`` at several points by\n"
-    "providing a NumPy array for `x`.\n"
-    "\n"
-    ">>> xvalues = np.array([1., 2., 3., 4])\n"
-    ">>> gdtr(1., 1., xvalues)\n"
-    "array([0.63212056, 0.86466472, 0.95021293, 0.98168436])\n"
-    "\n"
-    "`gdtr` can evaluate different parameter sets by providing arrays with\n"
-    "broadcasting compatible shapes for `a`, `b` and `x`. Here we compute the\n"
-    "function for three different `a` at four positions `x` and ``b=3``,\n"
-    "resulting in a 3x4 array.\n"
-    "\n"
-    ">>> a = np.array([[0.5], [1.5], [2.5]])\n"
-    ">>> x = np.array([1., 2., 3., 4])\n"
-    ">>> a.shape, x.shape\n"
-    "((3, 1), (4,))\n"
-    "\n"
-    ">>> gdtr(a, 3., x)\n"
-    "array([[0.01438768, 0.0803014 , 0.19115317, 0.32332358],\n"
-    "       [0.19115317, 0.57680992, 0.82642193, 0.9380312 ],\n"
-    "       [0.45618688, 0.87534798, 0.97974328, 0.9972306 ]])\n"
-    "\n"
-    "Plot the function for four different parameter sets.\n"
-    "\n"
-    ">>> a_parameters = [0.3, 1, 2, 6]\n"
-    ">>> b_parameters = [2, 10, 15, 20]\n"
-    ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
-    ">>> parameters_list = list(zip(a_parameters, b_parameters, linestyles))\n"
-    ">>> x = np.linspace(0, 30, 1000)\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> for parameter_set in parameters_list:\n"
-    "...     a, b, style = parameter_set\n"
-    "...     gdtr_vals = gdtr(a, b, x)\n"
-    "...     ax.plot(x, gdtr_vals, label=fr\"$a= {a},\\, b={b}$\", ls=style)\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_xlabel(\"$x$\")\n"
-    ">>> ax.set_title(\"Gamma distribution cumulative distribution function\")\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The gamma distribution is also available as `scipy.stats.gamma`. Using\n"
-    "`gdtr` directly can be much faster than calling the ``cdf`` method of\n"
-    "`scipy.stats.gamma`, especially for small arrays or individual values.\n"
-    "To get the same results one must use the following parametrization:\n"
-    "``stats.gamma(b, scale=1/a).cdf(x)=gdtr(a, b, x)``.\n"
-    "\n"
-    ">>> from scipy.stats import gamma\n"
-    ">>> a = 2.\n"
-    ">>> b = 3\n"
-    ">>> x = 1.\n"
-    ">>> gdtr_result = gdtr(a, b, x)  # this will often be faster than below\n"
-    ">>> gamma_dist_result = gamma(b, scale=1/a).cdf(x)\n"
-    ">>> gdtr_result == gamma_dist_result  # test that results are equal\n"
-    "True")
-ufunc_gdtr_loops[0] = loop_d_ddd__As_fff_f
-ufunc_gdtr_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_gdtr_types[0] = NPY_FLOAT
-ufunc_gdtr_types[1] = NPY_FLOAT
-ufunc_gdtr_types[2] = NPY_FLOAT
-ufunc_gdtr_types[3] = NPY_FLOAT
-ufunc_gdtr_types[4] = NPY_DOUBLE
-ufunc_gdtr_types[5] = NPY_DOUBLE
-ufunc_gdtr_types[6] = NPY_DOUBLE
-ufunc_gdtr_types[7] = NPY_DOUBLE
-ufunc_gdtr_ptr[2*0] = _func_cephes_gdtr
-ufunc_gdtr_ptr[2*0+1] = ("gdtr")
-ufunc_gdtr_ptr[2*1] = _func_cephes_gdtr
-ufunc_gdtr_ptr[2*1+1] = ("gdtr")
-ufunc_gdtr_data[0] = &ufunc_gdtr_ptr[2*0]
-ufunc_gdtr_data[1] = &ufunc_gdtr_ptr[2*1]
-gdtr = np.PyUFunc_FromFuncAndData(ufunc_gdtr_loops, ufunc_gdtr_data, ufunc_gdtr_types, 2, 3, 1, 0, "gdtr", ufunc_gdtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_gdtrc_loops[2]
-cdef void *ufunc_gdtrc_ptr[4]
-cdef void *ufunc_gdtrc_data[2]
-cdef char ufunc_gdtrc_types[8]
-cdef char *ufunc_gdtrc_doc = (
-    "gdtrc(a, b, x, out=None)\n"
-    "\n"
-    "Gamma distribution survival function.\n"
-    "\n"
-    "Integral from `x` to infinity of the gamma probability density function,\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    F = \\int_x^\\infty \\frac{a^b}{\\Gamma(b)} t^{b-1} e^{-at}\\,dt,\n"
-    "\n"
-    "where :math:`\\Gamma` is the gamma function.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    The rate parameter of the gamma distribution, sometimes denoted\n"
-    "    :math:`\\beta` (float). It is also the reciprocal of the scale\n"
-    "    parameter :math:`\\theta`.\n"
-    "b : array_like\n"
-    "    The shape parameter of the gamma distribution, sometimes denoted\n"
-    "    :math:`\\alpha` (float).\n"
-    "x : array_like\n"
-    "    The quantile (lower limit of integration; float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "F : scalar or ndarray\n"
-    "    The survival function of the gamma distribution with parameters `a`\n"
-    "    and `b` evaluated at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gdtr: Gamma distribution cumulative distribution function\n"
-    "scipy.stats.gamma: Gamma distribution\n"
-    "gdtrix\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The evaluation is carried out using the relation to the incomplete gamma\n"
-    "integral (regularized gamma function).\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `gdtrc`. Calling `gdtrc` directly can\n"
-    "improve performance compared to the ``sf`` method of `scipy.stats.gamma`\n"
-    "(see last example below).\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Compute the function for ``a=1`` and ``b=2`` at ``x=5``.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import gdtrc\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> gdtrc(1., 2., 5.)\n"
-    "0.04042768199451279\n"
-    "\n"
-    "Compute the function for ``a=1``, ``b=2`` at several points by providing\n"
-    "a NumPy array for `x`.\n"
-    "\n"
-    ">>> xvalues = np.array([1., 2., 3., 4])\n"
-    ">>> gdtrc(1., 1., xvalues)\n"
-    "array([0.36787944, 0.13533528, 0.04978707, 0.01831564])\n"
-    "\n"
-    "`gdtrc` can evaluate different parameter sets by providing arrays with\n"
-    "broadcasting compatible shapes for `a`, `b` and `x`. Here we compute the\n"
-    "function for three different `a` at four positions `x` and ``b=3``,\n"
-    "resulting in a 3x4 array.\n"
-    "\n"
-    ">>> a = np.array([[0.5], [1.5], [2.5]])\n"
-    ">>> x = np.array([1., 2., 3., 4])\n"
-    ">>> a.shape, x.shape\n"
-    "((3, 1), (4,))\n"
-    "\n"
-    ">>> gdtrc(a, 3., x)\n"
-    "array([[0.98561232, 0.9196986 , 0.80884683, 0.67667642],\n"
-    "       [0.80884683, 0.42319008, 0.17357807, 0.0619688 ],\n"
-    "       [0.54381312, 0.12465202, 0.02025672, 0.0027694 ]])\n"
-    "\n"
-    "Plot the function for four different parameter sets.\n"
-    "\n"
-    ">>> a_parameters = [0.3, 1, 2, 6]\n"
-    ">>> b_parameters = [2, 10, 15, 20]\n"
-    ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
-    ">>> parameters_list = list(zip(a_parameters, b_parameters, linestyles))\n"
-    ">>> x = np.linspace(0, 30, 1000)\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> for parameter_set in parameters_list:\n"
-    "...     a, b, style = parameter_set\n"
-    "...     gdtrc_vals = gdtrc(a, b, x)\n"
-    "...     ax.plot(x, gdtrc_vals, label=fr\"$a= {a},\\, b={b}$\", ls=style)\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_xlabel(\"$x$\")\n"
-    ">>> ax.set_title(\"Gamma distribution survival function\")\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The gamma distribution is also available as `scipy.stats.gamma`.\n"
-    "Using `gdtrc` directly can be much faster than calling the ``sf`` method\n"
-    "of `scipy.stats.gamma`, especially for small arrays or individual\n"
-    "values. To get the same results one must use the following parametrization:\n"
-    "``stats.gamma(b, scale=1/a).sf(x)=gdtrc(a, b, x)``.\n"
-    "\n"
-    ">>> from scipy.stats import gamma\n"
-    ">>> a = 2\n"
-    ">>> b = 3\n"
-    ">>> x = 1.\n"
-    ">>> gdtrc_result = gdtrc(a, b, x)  # this will often be faster than below\n"
-    ">>> gamma_dist_result = gamma(b, scale=1/a).sf(x)\n"
-    ">>> gdtrc_result == gamma_dist_result  # test that results are equal\n"
-    "True")
-ufunc_gdtrc_loops[0] = loop_d_ddd__As_fff_f
-ufunc_gdtrc_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_gdtrc_types[0] = NPY_FLOAT
-ufunc_gdtrc_types[1] = NPY_FLOAT
-ufunc_gdtrc_types[2] = NPY_FLOAT
-ufunc_gdtrc_types[3] = NPY_FLOAT
-ufunc_gdtrc_types[4] = NPY_DOUBLE
-ufunc_gdtrc_types[5] = NPY_DOUBLE
-ufunc_gdtrc_types[6] = NPY_DOUBLE
-ufunc_gdtrc_types[7] = NPY_DOUBLE
-ufunc_gdtrc_ptr[2*0] = _func_cephes_gdtrc
-ufunc_gdtrc_ptr[2*0+1] = ("gdtrc")
-ufunc_gdtrc_ptr[2*1] = _func_cephes_gdtrc
-ufunc_gdtrc_ptr[2*1+1] = ("gdtrc")
-ufunc_gdtrc_data[0] = &ufunc_gdtrc_ptr[2*0]
-ufunc_gdtrc_data[1] = &ufunc_gdtrc_ptr[2*1]
-gdtrc = np.PyUFunc_FromFuncAndData(ufunc_gdtrc_loops, ufunc_gdtrc_data, ufunc_gdtrc_types, 2, 3, 1, 0, "gdtrc", ufunc_gdtrc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_gdtria_loops[2]
-cdef void *ufunc_gdtria_ptr[4]
-cdef void *ufunc_gdtria_data[2]
-cdef char ufunc_gdtria_types[8]
-cdef char *ufunc_gdtria_doc = (
-    "gdtria(p, b, x, out=None)\n"
-    "\n"
-    "Inverse of `gdtr` vs a.\n"
-    "\n"
-    "Returns the inverse with respect to the parameter `a` of ``p =\n"
-    "gdtr(a, b, x)``, the cumulative distribution function of the gamma\n"
-    "distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    Probability values.\n"
-    "b : array_like\n"
-    "    `b` parameter values of `gdtr(a, b, x)`. `b` is the \"shape\" parameter\n"
-    "    of the gamma distribution.\n"
-    "x : array_like\n"
-    "    Nonnegative real values, from the domain of the gamma distribution.\n"
-    "out : ndarray, optional\n"
-    "    If a fourth argument is given, it must be a numpy.ndarray whose size\n"
-    "    matches the broadcast result of `a`, `b` and `x`.  `out` is then the\n"
-    "    array returned by the function.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "a : scalar or ndarray\n"
-    "    Values of the `a` parameter such that `p = gdtr(a, b, x)`.  `1/a`\n"
-    "    is the \"scale\" parameter of the gamma distribution.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gdtr : CDF of the gamma distribution.\n"
-    "gdtrib : Inverse with respect to `b` of `gdtr(a, b, x)`.\n"
-    "gdtrix : Inverse with respect to `x` of `gdtr(a, b, x)`.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the CDFLIB [1]_ Fortran routine `cdfgam`.\n"
-    "\n"
-    "The cumulative distribution function `p` is computed using a routine by\n"
-    "DiDinato and Morris [2]_. Computation of `a` involves a search for a value\n"
-    "that produces the desired value of `p`. The search relies on the\n"
-    "monotonicity of `p` with `a`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
-    "       CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
-    "       Functions, Inverses, and Other Parameters.\n"
-    ".. [2] DiDinato, A. R. and Morris, A. H.,\n"
-    "       Computation of the incomplete gamma function ratios and their\n"
-    "       inverse.  ACM Trans. Math. Softw. 12 (1986), 377-393.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "First evaluate `gdtr`.\n"
-    "\n"
-    ">>> from scipy.special import gdtr, gdtria\n"
-    ">>> p = gdtr(1.2, 3.4, 5.6)\n"
-    ">>> print(p)\n"
-    "0.94378087442\n"
-    "\n"
-    "Verify the inverse.\n"
-    "\n"
-    ">>> gdtria(p, 3.4, 5.6)\n"
-    "1.2")
-ufunc_gdtria_loops[0] = loop_d_ddd__As_fff_f
-ufunc_gdtria_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_gdtria_types[0] = NPY_FLOAT
-ufunc_gdtria_types[1] = NPY_FLOAT
-ufunc_gdtria_types[2] = NPY_FLOAT
-ufunc_gdtria_types[3] = NPY_FLOAT
-ufunc_gdtria_types[4] = NPY_DOUBLE
-ufunc_gdtria_types[5] = NPY_DOUBLE
-ufunc_gdtria_types[6] = NPY_DOUBLE
-ufunc_gdtria_types[7] = NPY_DOUBLE
-ufunc_gdtria_ptr[2*0] = _func_gdtria
-ufunc_gdtria_ptr[2*0+1] = ("gdtria")
-ufunc_gdtria_ptr[2*1] = _func_gdtria
-ufunc_gdtria_ptr[2*1+1] = ("gdtria")
-ufunc_gdtria_data[0] = &ufunc_gdtria_ptr[2*0]
-ufunc_gdtria_data[1] = &ufunc_gdtria_ptr[2*1]
-gdtria = np.PyUFunc_FromFuncAndData(ufunc_gdtria_loops, ufunc_gdtria_data, ufunc_gdtria_types, 2, 3, 1, 0, "gdtria", ufunc_gdtria_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_gdtrib_loops[2]
-cdef void *ufunc_gdtrib_ptr[4]
-cdef void *ufunc_gdtrib_data[2]
-cdef char ufunc_gdtrib_types[8]
-cdef char *ufunc_gdtrib_doc = (
-    "gdtrib(a, p, x, out=None)\n"
-    "\n"
-    "Inverse of `gdtr` vs b.\n"
-    "\n"
-    "Returns the inverse with respect to the parameter `b` of ``p =\n"
-    "gdtr(a, b, x)``, the cumulative distribution function of the gamma\n"
-    "distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    `a` parameter values of `gdtr(a, b, x)`. `1/a` is the \"scale\"\n"
-    "    parameter of the gamma distribution.\n"
-    "p : array_like\n"
-    "    Probability values.\n"
-    "x : array_like\n"
-    "    Nonnegative real values, from the domain of the gamma distribution.\n"
-    "out : ndarray, optional\n"
-    "    If a fourth argument is given, it must be a numpy.ndarray whose size\n"
-    "    matches the broadcast result of `a`, `b` and `x`.  `out` is then the\n"
-    "    array returned by the function.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "b : scalar or ndarray\n"
-    "    Values of the `b` parameter such that `p = gdtr(a, b, x)`.  `b` is\n"
-    "    the \"shape\" parameter of the gamma distribution.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gdtr : CDF of the gamma distribution.\n"
-    "gdtria : Inverse with respect to `a` of `gdtr(a, b, x)`.\n"
-    "gdtrix : Inverse with respect to `x` of `gdtr(a, b, x)`.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the CDFLIB [1]_ Fortran routine `cdfgam`.\n"
-    "\n"
-    "The cumulative distribution function `p` is computed using a routine by\n"
-    "DiDinato and Morris [2]_. Computation of `b` involves a search for a value\n"
-    "that produces the desired value of `p`. The search relies on the\n"
-    "monotonicity of `p` with `b`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
-    "       CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
-    "       Functions, Inverses, and Other Parameters.\n"
-    ".. [2] DiDinato, A. R. and Morris, A. H.,\n"
-    "       Computation of the incomplete gamma function ratios and their\n"
-    "       inverse.  ACM Trans. Math. Softw. 12 (1986), 377-393.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "First evaluate `gdtr`.\n"
-    "\n"
-    ">>> from scipy.special import gdtr, gdtrib\n"
-    ">>> p = gdtr(1.2, 3.4, 5.6)\n"
-    ">>> print(p)\n"
-    "0.94378087442\n"
-    "\n"
-    "Verify the inverse.\n"
-    "\n"
-    ">>> gdtrib(1.2, p, 5.6)\n"
-    "3.3999999999723882")
-ufunc_gdtrib_loops[0] = loop_d_ddd__As_fff_f
-ufunc_gdtrib_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_gdtrib_types[0] = NPY_FLOAT
-ufunc_gdtrib_types[1] = NPY_FLOAT
-ufunc_gdtrib_types[2] = NPY_FLOAT
-ufunc_gdtrib_types[3] = NPY_FLOAT
-ufunc_gdtrib_types[4] = NPY_DOUBLE
-ufunc_gdtrib_types[5] = NPY_DOUBLE
-ufunc_gdtrib_types[6] = NPY_DOUBLE
-ufunc_gdtrib_types[7] = NPY_DOUBLE
-ufunc_gdtrib_ptr[2*0] = _func_gdtrib
-ufunc_gdtrib_ptr[2*0+1] = ("gdtrib")
-ufunc_gdtrib_ptr[2*1] = _func_gdtrib
-ufunc_gdtrib_ptr[2*1+1] = ("gdtrib")
-ufunc_gdtrib_data[0] = &ufunc_gdtrib_ptr[2*0]
-ufunc_gdtrib_data[1] = &ufunc_gdtrib_ptr[2*1]
-gdtrib = np.PyUFunc_FromFuncAndData(ufunc_gdtrib_loops, ufunc_gdtrib_data, ufunc_gdtrib_types, 2, 3, 1, 0, "gdtrib", ufunc_gdtrib_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_gdtrix_loops[2]
-cdef void *ufunc_gdtrix_ptr[4]
-cdef void *ufunc_gdtrix_data[2]
-cdef char ufunc_gdtrix_types[8]
-cdef char *ufunc_gdtrix_doc = (
-    "gdtrix(a, b, p, out=None)\n"
-    "\n"
-    "Inverse of `gdtr` vs x.\n"
-    "\n"
-    "Returns the inverse with respect to the parameter `x` of ``p =\n"
-    "gdtr(a, b, x)``, the cumulative distribution function of the gamma\n"
-    "distribution. This is also known as the pth quantile of the\n"
-    "distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a : array_like\n"
-    "    `a` parameter values of `gdtr(a, b, x)`. `1/a` is the \"scale\"\n"
-    "    parameter of the gamma distribution.\n"
-    "b : array_like\n"
-    "    `b` parameter values of `gdtr(a, b, x)`. `b` is the \"shape\" parameter\n"
-    "    of the gamma distribution.\n"
-    "p : array_like\n"
-    "    Probability values.\n"
-    "out : ndarray, optional\n"
-    "    If a fourth argument is given, it must be a numpy.ndarray whose size\n"
-    "    matches the broadcast result of `a`, `b` and `x`. `out` is then the\n"
-    "    array returned by the function.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "x : scalar or ndarray\n"
-    "    Values of the `x` parameter such that `p = gdtr(a, b, x)`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "gdtr : CDF of the gamma distribution.\n"
-    "gdtria : Inverse with respect to `a` of `gdtr(a, b, x)`.\n"
-    "gdtrib : Inverse with respect to `b` of `gdtr(a, b, x)`.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the CDFLIB [1]_ Fortran routine `cdfgam`.\n"
-    "\n"
-    "The cumulative distribution function `p` is computed using a routine by\n"
-    "DiDinato and Morris [2]_. Computation of `x` involves a search for a value\n"
-    "that produces the desired value of `p`. The search relies on the\n"
-    "monotonicity of `p` with `x`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
-    "       CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
-    "       Functions, Inverses, and Other Parameters.\n"
-    ".. [2] DiDinato, A. R. and Morris, A. H.,\n"
-    "       Computation of the incomplete gamma function ratios and their\n"
-    "       inverse.  ACM Trans. Math. Softw. 12 (1986), 377-393.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "First evaluate `gdtr`.\n"
-    "\n"
-    ">>> from scipy.special import gdtr, gdtrix\n"
-    ">>> p = gdtr(1.2, 3.4, 5.6)\n"
-    ">>> print(p)\n"
-    "0.94378087442\n"
-    "\n"
-    "Verify the inverse.\n"
-    "\n"
-    ">>> gdtrix(1.2, 3.4, p)\n"
-    "5.5999999999999996")
-ufunc_gdtrix_loops[0] = loop_d_ddd__As_fff_f
-ufunc_gdtrix_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_gdtrix_types[0] = NPY_FLOAT
-ufunc_gdtrix_types[1] = NPY_FLOAT
-ufunc_gdtrix_types[2] = NPY_FLOAT
-ufunc_gdtrix_types[3] = NPY_FLOAT
-ufunc_gdtrix_types[4] = NPY_DOUBLE
-ufunc_gdtrix_types[5] = NPY_DOUBLE
-ufunc_gdtrix_types[6] = NPY_DOUBLE
-ufunc_gdtrix_types[7] = NPY_DOUBLE
-ufunc_gdtrix_ptr[2*0] = _func_gdtrix
-ufunc_gdtrix_ptr[2*0+1] = ("gdtrix")
-ufunc_gdtrix_ptr[2*1] = _func_gdtrix
-ufunc_gdtrix_ptr[2*1+1] = ("gdtrix")
-ufunc_gdtrix_data[0] = &ufunc_gdtrix_ptr[2*0]
-ufunc_gdtrix_data[1] = &ufunc_gdtrix_ptr[2*1]
-gdtrix = np.PyUFunc_FromFuncAndData(ufunc_gdtrix_loops, ufunc_gdtrix_data, ufunc_gdtrix_types, 2, 3, 1, 0, "gdtrix", ufunc_gdtrix_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_huber_loops[2]
-cdef void *ufunc_huber_ptr[4]
-cdef void *ufunc_huber_data[2]
-cdef char ufunc_huber_types[6]
-cdef char *ufunc_huber_doc = (
-    "huber(delta, r, out=None)\n"
-    "\n"
-    "Huber loss function.\n"
-    "\n"
-    ".. math:: \\text{huber}(\\delta, r) = \\begin{cases} \\infty & \\delta < 0  \\\\\n"
-    "          \\frac{1}{2}r^2 & 0 \\le \\delta, | r | \\le \\delta \\\\\n"
-    "          \\delta ( |r| - \\frac{1}{2}\\delta ) & \\text{otherwise} \\end{cases}\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "delta : ndarray\n"
-    "    Input array, indicating the quadratic vs. linear loss changepoint.\n"
-    "r : ndarray\n"
-    "    Input array, possibly representing residuals.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The computed Huber loss function values.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "pseudo_huber : smooth approximation of this function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "`huber` is useful as a loss function in robust statistics or machine\n"
-    "learning to reduce the influence of outliers as compared to the common\n"
-    "squared error loss, residuals with a magnitude higher than `delta` are\n"
-    "not squared [1]_.\n"
-    "\n"
-    "Typically, `r` represents residuals, the difference\n"
-    "between a model prediction and data. Then, for :math:`|r|\\leq\\delta`,\n"
-    "`huber` resembles the squared error and for :math:`|r|>\\delta` the\n"
-    "absolute error. This way, the Huber loss often achieves\n"
-    "a fast convergence in model fitting for small residuals like the squared\n"
-    "error loss function and still reduces the influence of outliers\n"
-    "(:math:`|r|>\\delta`) like the absolute error loss. As :math:`\\delta` is\n"
-    "the cutoff between squared and absolute error regimes, it has\n"
-    "to be tuned carefully for each problem. `huber` is also\n"
-    "convex, making it suitable for gradient based optimization.\n"
-    "\n"
-    ".. versionadded:: 0.15.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Peter Huber. \"Robust Estimation of a Location Parameter\",\n"
-    "       1964. Annals of Statistics. 53 (1): 73 - 101.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Import all necessary modules.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import huber\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    "\n"
-    "Compute the function for ``delta=1`` at ``r=2``\n"
-    "\n"
-    ">>> huber(1., 2.)\n"
-    "1.5\n"
-    "\n"
-    "Compute the function for different `delta` by providing a NumPy array or\n"
-    "list for `delta`.\n"
-    "\n"
-    ">>> huber([1., 3., 5.], 4.)\n"
-    "array([3.5, 7.5, 8. ])\n"
-    "\n"
-    "Compute the function at different points by providing a NumPy array or\n"
-    "list for `r`.\n"
-    "\n"
-    ">>> huber(2., np.array([1., 1.5, 3.]))\n"
-    "array([0.5  , 1.125, 4.   ])\n"
-    "\n"
-    "The function can be calculated for different `delta` and `r` by\n"
-    "providing arrays for both with compatible shapes for broadcasting.\n"
-    "\n"
-    ">>> r = np.array([1., 2.5, 8., 10.])\n"
-    ">>> deltas = np.array([[1.], [5.], [9.]])\n"
-    ">>> print(r.shape, deltas.shape)\n"
-    "(4,) (3, 1)\n"
-    "\n"
-    ">>> huber(deltas, r)\n"
-    "array([[ 0.5  ,  2.   ,  7.5  ,  9.5  ],\n"
-    "       [ 0.5  ,  3.125, 27.5  , 37.5  ],\n"
-    "       [ 0.5  ,  3.125, 32.   , 49.5  ]])\n"
-    "\n"
-    "Plot the function for different `delta`.\n"
-    "\n"
-    ">>> x = np.linspace(-4, 4, 500)\n"
-    ">>> deltas = [1, 2, 3]\n"
-    ">>> linestyles = [\"dashed\", \"dotted\", \"dashdot\"]\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> combined_plot_parameters = list(zip(deltas, linestyles))\n"
-    ">>> for delta, style in combined_plot_parameters:\n"
-    "...     ax.plot(x, huber(delta, x), label=fr\"$\\delta={delta}$\", ls=style)\n"
-    ">>> ax.legend(loc=\"upper center\")\n"
-    ">>> ax.set_xlabel(\"$x$\")\n"
-    ">>> ax.set_title(r\"Huber loss function $h_{\\delta}(x)$\")\n"
-    ">>> ax.set_xlim(-4, 4)\n"
-    ">>> ax.set_ylim(0, 8)\n"
-    ">>> plt.show()")
-ufunc_huber_loops[0] = loop_d_dd__As_ff_f
-ufunc_huber_loops[1] = loop_d_dd__As_dd_d
-ufunc_huber_types[0] = NPY_FLOAT
-ufunc_huber_types[1] = NPY_FLOAT
-ufunc_huber_types[2] = NPY_FLOAT
-ufunc_huber_types[3] = NPY_DOUBLE
-ufunc_huber_types[4] = NPY_DOUBLE
-ufunc_huber_types[5] = NPY_DOUBLE
-ufunc_huber_ptr[2*0] = _func_huber
-ufunc_huber_ptr[2*0+1] = ("huber")
-ufunc_huber_ptr[2*1] = _func_huber
-ufunc_huber_ptr[2*1+1] = ("huber")
-ufunc_huber_data[0] = &ufunc_huber_ptr[2*0]
-ufunc_huber_data[1] = &ufunc_huber_ptr[2*1]
-huber = np.PyUFunc_FromFuncAndData(ufunc_huber_loops, ufunc_huber_data, ufunc_huber_types, 2, 2, 1, 0, "huber", ufunc_huber_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_hyp0f1_loops[4]
-cdef void *ufunc_hyp0f1_ptr[8]
-cdef void *ufunc_hyp0f1_data[4]
-cdef char ufunc_hyp0f1_types[12]
-cdef char *ufunc_hyp0f1_doc = (
-    "hyp0f1(v, z, out=None)\n"
-    "\n"
-    "Confluent hypergeometric limit function 0F1.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v : array_like\n"
-    "    Real-valued parameter\n"
-    "z : array_like\n"
-    "    Real- or complex-valued argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The confluent hypergeometric limit function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "This function is defined as:\n"
-    "\n"
-    ".. math:: _0F_1(v, z) = \\sum_{k=0}^{\\infty}\\frac{z^k}{(v)_k k!}.\n"
-    "\n"
-    "It's also the limit as :math:`q \\to \\infty` of :math:`_1F_1(q; v; z/q)`,\n"
-    "and satisfies the differential equation :math:`f''(z) + vf'(z) =\n"
-    "f(z)`. See [1]_ for more information.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Wolfram MathWorld, \"Confluent Hypergeometric Limit Function\",\n"
-    "       http://mathworld.wolfram.com/ConfluentHypergeometricLimitFunction.html\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is one when `z` is zero.\n"
-    "\n"
-    ">>> sc.hyp0f1(1, 0)\n"
-    "1.0\n"
-    "\n"
-    "It is the limit of the confluent hypergeometric function as `q`\n"
-    "goes to infinity.\n"
-    "\n"
-    ">>> q = np.array([1, 10, 100, 1000])\n"
-    ">>> v = 1\n"
-    ">>> z = 1\n"
-    ">>> sc.hyp1f1(q, v, z / q)\n"
-    "array([2.71828183, 2.31481985, 2.28303778, 2.27992985])\n"
-    ">>> sc.hyp0f1(v, z)\n"
-    "2.2795853023360673\n"
-    "\n"
-    "It is related to Bessel functions.\n"
-    "\n"
-    ">>> n = 1\n"
-    ">>> x = np.linspace(0, 1, 5)\n"
-    ">>> sc.jv(n, x)\n"
-    "array([0.        , 0.12402598, 0.24226846, 0.3492436 , 0.44005059])\n"
-    ">>> (0.5 * x)**n / sc.factorial(n) * sc.hyp0f1(n + 1, -0.25 * x**2)\n"
-    "array([0.        , 0.12402598, 0.24226846, 0.3492436 , 0.44005059])")
-ufunc_hyp0f1_loops[0] = loop_d_dd__As_ff_f
-ufunc_hyp0f1_loops[1] = loop_D_dD__As_fF_F
-ufunc_hyp0f1_loops[2] = loop_d_dd__As_dd_d
-ufunc_hyp0f1_loops[3] = loop_D_dD__As_dD_D
-ufunc_hyp0f1_types[0] = NPY_FLOAT
-ufunc_hyp0f1_types[1] = NPY_FLOAT
-ufunc_hyp0f1_types[2] = NPY_FLOAT
-ufunc_hyp0f1_types[3] = NPY_FLOAT
-ufunc_hyp0f1_types[4] = NPY_CFLOAT
-ufunc_hyp0f1_types[5] = NPY_CFLOAT
-ufunc_hyp0f1_types[6] = NPY_DOUBLE
-ufunc_hyp0f1_types[7] = NPY_DOUBLE
-ufunc_hyp0f1_types[8] = NPY_DOUBLE
-ufunc_hyp0f1_types[9] = NPY_DOUBLE
-ufunc_hyp0f1_types[10] = NPY_CDOUBLE
-ufunc_hyp0f1_types[11] = NPY_CDOUBLE
-ufunc_hyp0f1_ptr[2*0] = _func__hyp0f1_real
-ufunc_hyp0f1_ptr[2*0+1] = ("hyp0f1")
-ufunc_hyp0f1_ptr[2*1] = _func__hyp0f1_cmplx
-ufunc_hyp0f1_ptr[2*1+1] = ("hyp0f1")
-ufunc_hyp0f1_ptr[2*2] = _func__hyp0f1_real
-ufunc_hyp0f1_ptr[2*2+1] = ("hyp0f1")
-ufunc_hyp0f1_ptr[2*3] = _func__hyp0f1_cmplx
-ufunc_hyp0f1_ptr[2*3+1] = ("hyp0f1")
-ufunc_hyp0f1_data[0] = &ufunc_hyp0f1_ptr[2*0]
-ufunc_hyp0f1_data[1] = &ufunc_hyp0f1_ptr[2*1]
-ufunc_hyp0f1_data[2] = &ufunc_hyp0f1_ptr[2*2]
-ufunc_hyp0f1_data[3] = &ufunc_hyp0f1_ptr[2*3]
-hyp0f1 = np.PyUFunc_FromFuncAndData(ufunc_hyp0f1_loops, ufunc_hyp0f1_data, ufunc_hyp0f1_types, 4, 2, 1, 0, "hyp0f1", ufunc_hyp0f1_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_hyp1f1_loops[4]
-cdef void *ufunc_hyp1f1_ptr[8]
-cdef void *ufunc_hyp1f1_data[4]
-cdef char ufunc_hyp1f1_types[16]
-cdef char *ufunc_hyp1f1_doc = (
-    "hyp1f1(a, b, x, out=None)\n"
-    "\n"
-    "Confluent hypergeometric function 1F1.\n"
-    "\n"
-    "The confluent hypergeometric function is defined by the series\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "   {}_1F_1(a; b; x) = \\sum_{k = 0}^\\infty \\frac{(a)_k}{(b)_k k!} x^k.\n"
-    "\n"
-    "See [dlmf]_ for more details. Here :math:`(\\cdot)_k` is the\n"
-    "Pochhammer symbol; see `poch`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a, b : array_like\n"
-    "    Real parameters\n"
-    "x : array_like\n"
-    "    Real or complex argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the confluent hypergeometric function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "hyperu : another confluent hypergeometric function\n"
-    "hyp0f1 : confluent hypergeometric limit function\n"
-    "hyp2f1 : Gaussian hypergeometric function\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] NIST Digital Library of Mathematical Functions\n"
-    "          https://dlmf.nist.gov/13.2#E2\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is one when `x` is zero:\n"
-    "\n"
-    ">>> sc.hyp1f1(0.5, 0.5, 0)\n"
-    "1.0\n"
-    "\n"
-    "It is singular when `b` is a nonpositive integer.\n"
-    "\n"
-    ">>> sc.hyp1f1(0.5, -1, 0)\n"
-    "inf\n"
-    "\n"
-    "It is a polynomial when `a` is a nonpositive integer.\n"
-    "\n"
-    ">>> a, b, x = -1, 0.5, np.array([1.0, 2.0, 3.0, 4.0])\n"
-    ">>> sc.hyp1f1(a, b, x)\n"
-    "array([-1., -3., -5., -7.])\n"
-    ">>> 1 + (a / b) * x\n"
-    "array([-1., -3., -5., -7.])\n"
-    "\n"
-    "It reduces to the exponential function when `a = b`.\n"
-    "\n"
-    ">>> sc.hyp1f1(2, 2, [1, 2, 3, 4])\n"
-    "array([ 2.71828183,  7.3890561 , 20.08553692, 54.59815003])\n"
-    ">>> np.exp([1, 2, 3, 4])\n"
-    "array([ 2.71828183,  7.3890561 , 20.08553692, 54.59815003])")
-ufunc_hyp1f1_loops[0] = loop_d_ddd__As_fff_f
-ufunc_hyp1f1_loops[1] = loop_D_ddD__As_ffF_F
-ufunc_hyp1f1_loops[2] = loop_d_ddd__As_ddd_d
-ufunc_hyp1f1_loops[3] = loop_D_ddD__As_ddD_D
-ufunc_hyp1f1_types[0] = NPY_FLOAT
-ufunc_hyp1f1_types[1] = NPY_FLOAT
-ufunc_hyp1f1_types[2] = NPY_FLOAT
-ufunc_hyp1f1_types[3] = NPY_FLOAT
-ufunc_hyp1f1_types[4] = NPY_FLOAT
-ufunc_hyp1f1_types[5] = NPY_FLOAT
-ufunc_hyp1f1_types[6] = NPY_CFLOAT
-ufunc_hyp1f1_types[7] = NPY_CFLOAT
-ufunc_hyp1f1_types[8] = NPY_DOUBLE
-ufunc_hyp1f1_types[9] = NPY_DOUBLE
-ufunc_hyp1f1_types[10] = NPY_DOUBLE
-ufunc_hyp1f1_types[11] = NPY_DOUBLE
-ufunc_hyp1f1_types[12] = NPY_DOUBLE
-ufunc_hyp1f1_types[13] = NPY_DOUBLE
-ufunc_hyp1f1_types[14] = NPY_CDOUBLE
-ufunc_hyp1f1_types[15] = NPY_CDOUBLE
-ufunc_hyp1f1_ptr[2*0] = scipy.special._ufuncs_cxx._export_hyp1f1_double
-ufunc_hyp1f1_ptr[2*0+1] = ("hyp1f1")
-ufunc_hyp1f1_ptr[2*1] = _func_chyp1f1_wrap
-ufunc_hyp1f1_ptr[2*1+1] = ("hyp1f1")
-ufunc_hyp1f1_ptr[2*2] = scipy.special._ufuncs_cxx._export_hyp1f1_double
-ufunc_hyp1f1_ptr[2*2+1] = ("hyp1f1")
-ufunc_hyp1f1_ptr[2*3] = _func_chyp1f1_wrap
-ufunc_hyp1f1_ptr[2*3+1] = ("hyp1f1")
-ufunc_hyp1f1_data[0] = &ufunc_hyp1f1_ptr[2*0]
-ufunc_hyp1f1_data[1] = &ufunc_hyp1f1_ptr[2*1]
-ufunc_hyp1f1_data[2] = &ufunc_hyp1f1_ptr[2*2]
-ufunc_hyp1f1_data[3] = &ufunc_hyp1f1_ptr[2*3]
-hyp1f1 = np.PyUFunc_FromFuncAndData(ufunc_hyp1f1_loops, ufunc_hyp1f1_data, ufunc_hyp1f1_types, 4, 3, 1, 0, "hyp1f1", ufunc_hyp1f1_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_hyperu_loops[2]
-cdef void *ufunc_hyperu_ptr[4]
-cdef void *ufunc_hyperu_data[2]
-cdef char ufunc_hyperu_types[8]
-cdef char *ufunc_hyperu_doc = (
-    "hyperu(a, b, x, out=None)\n"
-    "\n"
-    "Confluent hypergeometric function U\n"
-    "\n"
-    "It is defined as the solution to the equation\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "   x \\frac{d^2w}{dx^2} + (b - x) \\frac{dw}{dx} - aw = 0\n"
-    "\n"
-    "which satisfies the property\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "   U(a, b, x) \\sim x^{-a}\n"
-    "\n"
-    "as :math:`x \\to \\infty`. See [dlmf]_ for more details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "a, b : array_like\n"
-    "    Real-valued parameters\n"
-    "x : array_like\n"
-    "    Real-valued argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of `U`\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] NIST Digital Library of Mathematics Functions\n"
-    "          https://dlmf.nist.gov/13.2#E6\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It has a branch cut along the negative `x` axis.\n"
-    "\n"
-    ">>> x = np.linspace(-0.1, -10, 5)\n"
-    ">>> sc.hyperu(1, 1, x)\n"
-    "array([nan, nan, nan, nan, nan])\n"
-    "\n"
-    "It approaches zero as `x` goes to infinity.\n"
-    "\n"
-    ">>> x = np.array([1, 10, 100])\n"
-    ">>> sc.hyperu(1, 1, x)\n"
-    "array([0.59634736, 0.09156333, 0.00990194])\n"
-    "\n"
-    "It satisfies Kummer's transformation.\n"
-    "\n"
-    ">>> a, b, x = 2, 1, 1\n"
-    ">>> sc.hyperu(a, b, x)\n"
-    "0.1926947246463881\n"
-    ">>> x**(1 - b) * sc.hyperu(a - b + 1, 2 - b, x)\n"
-    "0.1926947246463881")
-ufunc_hyperu_loops[0] = loop_d_ddd__As_fff_f
-ufunc_hyperu_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_hyperu_types[0] = NPY_FLOAT
-ufunc_hyperu_types[1] = NPY_FLOAT
-ufunc_hyperu_types[2] = NPY_FLOAT
-ufunc_hyperu_types[3] = NPY_FLOAT
-ufunc_hyperu_types[4] = NPY_DOUBLE
-ufunc_hyperu_types[5] = NPY_DOUBLE
-ufunc_hyperu_types[6] = NPY_DOUBLE
-ufunc_hyperu_types[7] = NPY_DOUBLE
-ufunc_hyperu_ptr[2*0] = _func_hyperu
-ufunc_hyperu_ptr[2*0+1] = ("hyperu")
-ufunc_hyperu_ptr[2*1] = _func_hyperu
-ufunc_hyperu_ptr[2*1+1] = ("hyperu")
-ufunc_hyperu_data[0] = &ufunc_hyperu_ptr[2*0]
-ufunc_hyperu_data[1] = &ufunc_hyperu_ptr[2*1]
-hyperu = np.PyUFunc_FromFuncAndData(ufunc_hyperu_loops, ufunc_hyperu_data, ufunc_hyperu_types, 2, 3, 1, 0, "hyperu", ufunc_hyperu_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_i0_loops[2]
-cdef void *ufunc_i0_ptr[4]
-cdef void *ufunc_i0_data[2]
-cdef char ufunc_i0_types[4]
-cdef char *ufunc_i0_doc = (
-    "i0(x, out=None)\n"
-    "\n"
-    "Modified Bessel function of order 0.\n"
-    "\n"
-    "Defined as,\n"
-    "\n"
-    ".. math::\n"
-    "    I_0(x) = \\sum_{k=0}^\\infty \\frac{(x^2/4)^k}{(k!)^2} = J_0(\\imath x),\n"
-    "\n"
-    "where :math:`J_0` is the Bessel function of the first kind of order 0.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float)\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "I : scalar or ndarray\n"
-    "    Value of the modified Bessel function of order 0 at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "iv: Modified Bessel function of any order\n"
-    "i0e: Exponentially scaled modified Bessel function of order 0\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The range is partitioned into the two intervals [0, 8] and (8, infinity).\n"
-    "Chebyshev polynomial expansions are employed in each interval.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `i0`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function at one point:\n"
-    "\n"
-    ">>> from scipy.special import i0\n"
-    ">>> i0(1.)\n"
-    "1.2660658777520082\n"
-    "\n"
-    "Calculate at several points:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> i0(np.array([-2., 0., 3.5]))\n"
-    "array([2.2795853 , 1.        , 7.37820343])\n"
-    "\n"
-    "Plot the function from -10 to 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(-10., 10., 1000)\n"
-    ">>> y = i0(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_i0_loops[0] = loop_d_d__As_f_f
-ufunc_i0_loops[1] = loop_d_d__As_d_d
-ufunc_i0_types[0] = NPY_FLOAT
-ufunc_i0_types[1] = NPY_FLOAT
-ufunc_i0_types[2] = NPY_DOUBLE
-ufunc_i0_types[3] = NPY_DOUBLE
-ufunc_i0_ptr[2*0] = _func_cephes_i0
-ufunc_i0_ptr[2*0+1] = ("i0")
-ufunc_i0_ptr[2*1] = _func_cephes_i0
-ufunc_i0_ptr[2*1+1] = ("i0")
-ufunc_i0_data[0] = &ufunc_i0_ptr[2*0]
-ufunc_i0_data[1] = &ufunc_i0_ptr[2*1]
-i0 = np.PyUFunc_FromFuncAndData(ufunc_i0_loops, ufunc_i0_data, ufunc_i0_types, 2, 1, 1, 0, "i0", ufunc_i0_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_i0e_loops[2]
-cdef void *ufunc_i0e_ptr[4]
-cdef void *ufunc_i0e_data[2]
-cdef char ufunc_i0e_types[4]
-cdef char *ufunc_i0e_doc = (
-    "i0e(x, out=None)\n"
-    "\n"
-    "Exponentially scaled modified Bessel function of order 0.\n"
-    "\n"
-    "Defined as::\n"
-    "\n"
-    "    i0e(x) = exp(-abs(x)) * i0(x).\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float)\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "I : scalar or ndarray\n"
-    "    Value of the exponentially scaled modified Bessel function of order 0\n"
-    "    at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "iv: Modified Bessel function of the first kind\n"
-    "i0: Modified Bessel function of order 0\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The range is partitioned into the two intervals [0, 8] and (8, infinity).\n"
-    "Chebyshev polynomial expansions are employed in each interval. The\n"
-    "polynomial expansions used are the same as those in `i0`, but\n"
-    "they are not multiplied by the dominant exponential factor.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `i0e`. `i0e`\n"
-    "is useful for large arguments `x`: for these, `i0` quickly overflows.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "In the following example `i0` returns infinity whereas `i0e` still returns\n"
-    "a finite number.\n"
-    "\n"
-    ">>> from scipy.special import i0, i0e\n"
-    ">>> i0(1000.), i0e(1000.)\n"
-    "(inf, 0.012617240455891257)\n"
-    "\n"
-    "Calculate the function at several points by providing a NumPy array or\n"
-    "list for `x`:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> i0e(np.array([-2., 0., 3.]))\n"
-    "array([0.30850832, 1.        , 0.24300035])\n"
-    "\n"
-    "Plot the function from -10 to 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(-10., 10., 1000)\n"
-    ">>> y = i0e(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_i0e_loops[0] = loop_d_d__As_f_f
-ufunc_i0e_loops[1] = loop_d_d__As_d_d
-ufunc_i0e_types[0] = NPY_FLOAT
-ufunc_i0e_types[1] = NPY_FLOAT
-ufunc_i0e_types[2] = NPY_DOUBLE
-ufunc_i0e_types[3] = NPY_DOUBLE
-ufunc_i0e_ptr[2*0] = _func_cephes_i0e
-ufunc_i0e_ptr[2*0+1] = ("i0e")
-ufunc_i0e_ptr[2*1] = _func_cephes_i0e
-ufunc_i0e_ptr[2*1+1] = ("i0e")
-ufunc_i0e_data[0] = &ufunc_i0e_ptr[2*0]
-ufunc_i0e_data[1] = &ufunc_i0e_ptr[2*1]
-i0e = np.PyUFunc_FromFuncAndData(ufunc_i0e_loops, ufunc_i0e_data, ufunc_i0e_types, 2, 1, 1, 0, "i0e", ufunc_i0e_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_i1_loops[2]
-cdef void *ufunc_i1_ptr[4]
-cdef void *ufunc_i1_data[2]
-cdef char ufunc_i1_types[4]
-cdef char *ufunc_i1_doc = (
-    "i1(x, out=None)\n"
-    "\n"
-    "Modified Bessel function of order 1.\n"
-    "\n"
-    "Defined as,\n"
-    "\n"
-    ".. math::\n"
-    "    I_1(x) = \\frac{1}{2}x \\sum_{k=0}^\\infty \\frac{(x^2/4)^k}{k! (k + 1)!}\n"
-    "           = -\\imath J_1(\\imath x),\n"
-    "\n"
-    "where :math:`J_1` is the Bessel function of the first kind of order 1.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float)\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "I : scalar or ndarray\n"
-    "    Value of the modified Bessel function of order 1 at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "iv: Modified Bessel function of the first kind\n"
-    "i1e: Exponentially scaled modified Bessel function of order 1\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The range is partitioned into the two intervals [0, 8] and (8, infinity).\n"
-    "Chebyshev polynomial expansions are employed in each interval.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `i1`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function at one point:\n"
-    "\n"
-    ">>> from scipy.special import i1\n"
-    ">>> i1(1.)\n"
-    "0.5651591039924851\n"
-    "\n"
-    "Calculate the function at several points:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> i1(np.array([-2., 0., 6.]))\n"
-    "array([-1.59063685,  0.        , 61.34193678])\n"
-    "\n"
-    "Plot the function between -10 and 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(-10., 10., 1000)\n"
-    ">>> y = i1(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_i1_loops[0] = loop_d_d__As_f_f
-ufunc_i1_loops[1] = loop_d_d__As_d_d
-ufunc_i1_types[0] = NPY_FLOAT
-ufunc_i1_types[1] = NPY_FLOAT
-ufunc_i1_types[2] = NPY_DOUBLE
-ufunc_i1_types[3] = NPY_DOUBLE
-ufunc_i1_ptr[2*0] = _func_cephes_i1
-ufunc_i1_ptr[2*0+1] = ("i1")
-ufunc_i1_ptr[2*1] = _func_cephes_i1
-ufunc_i1_ptr[2*1+1] = ("i1")
-ufunc_i1_data[0] = &ufunc_i1_ptr[2*0]
-ufunc_i1_data[1] = &ufunc_i1_ptr[2*1]
-i1 = np.PyUFunc_FromFuncAndData(ufunc_i1_loops, ufunc_i1_data, ufunc_i1_types, 2, 1, 1, 0, "i1", ufunc_i1_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_i1e_loops[2]
-cdef void *ufunc_i1e_ptr[4]
-cdef void *ufunc_i1e_data[2]
-cdef char ufunc_i1e_types[4]
-cdef char *ufunc_i1e_doc = (
-    "i1e(x, out=None)\n"
-    "\n"
-    "Exponentially scaled modified Bessel function of order 1.\n"
-    "\n"
-    "Defined as::\n"
-    "\n"
-    "    i1e(x) = exp(-abs(x)) * i1(x)\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float)\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "I : scalar or ndarray\n"
-    "    Value of the exponentially scaled modified Bessel function of order 1\n"
-    "    at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "iv: Modified Bessel function of the first kind\n"
-    "i1: Modified Bessel function of order 1\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The range is partitioned into the two intervals [0, 8] and (8, infinity).\n"
-    "Chebyshev polynomial expansions are employed in each interval. The\n"
-    "polynomial expansions used are the same as those in `i1`, but\n"
-    "they are not multiplied by the dominant exponential factor.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `i1e`. `i1e`\n"
-    "is useful for large arguments `x`: for these, `i1` quickly overflows.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "In the following example `i1` returns infinity whereas `i1e` still returns\n"
-    "a finite number.\n"
-    "\n"
-    ">>> from scipy.special import i1, i1e\n"
-    ">>> i1(1000.), i1e(1000.)\n"
-    "(inf, 0.01261093025692863)\n"
-    "\n"
-    "Calculate the function at several points by providing a NumPy array or\n"
-    "list for `x`:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> i1e(np.array([-2., 0., 6.]))\n"
-    "array([-0.21526929,  0.        ,  0.15205146])\n"
-    "\n"
-    "Plot the function between -10 and 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(-10., 10., 1000)\n"
-    ">>> y = i1e(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_i1e_loops[0] = loop_d_d__As_f_f
-ufunc_i1e_loops[1] = loop_d_d__As_d_d
-ufunc_i1e_types[0] = NPY_FLOAT
-ufunc_i1e_types[1] = NPY_FLOAT
-ufunc_i1e_types[2] = NPY_DOUBLE
-ufunc_i1e_types[3] = NPY_DOUBLE
-ufunc_i1e_ptr[2*0] = _func_cephes_i1e
-ufunc_i1e_ptr[2*0+1] = ("i1e")
-ufunc_i1e_ptr[2*1] = _func_cephes_i1e
-ufunc_i1e_ptr[2*1+1] = ("i1e")
-ufunc_i1e_data[0] = &ufunc_i1e_ptr[2*0]
-ufunc_i1e_data[1] = &ufunc_i1e_ptr[2*1]
-i1e = np.PyUFunc_FromFuncAndData(ufunc_i1e_loops, ufunc_i1e_data, ufunc_i1e_types, 2, 1, 1, 0, "i1e", ufunc_i1e_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_inv_boxcox_loops[2]
-cdef void *ufunc_inv_boxcox_ptr[4]
-cdef void *ufunc_inv_boxcox_data[2]
-cdef char ufunc_inv_boxcox_types[6]
-cdef char *ufunc_inv_boxcox_doc = (
-    "inv_boxcox(y, lmbda, out=None)\n"
-    "\n"
-    "Compute the inverse of the Box-Cox transformation.\n"
-    "\n"
-    "Find ``x`` such that::\n"
-    "\n"
-    "    y = (x**lmbda - 1) / lmbda  if lmbda != 0\n"
-    "        log(x)                  if lmbda == 0\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "y : array_like\n"
-    "    Data to be transformed.\n"
-    "lmbda : array_like\n"
-    "    Power parameter of the Box-Cox transform.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "x : scalar or ndarray\n"
-    "    Transformed data.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "\n"
-    ".. versionadded:: 0.16.0\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import boxcox, inv_boxcox\n"
-    ">>> y = boxcox([1, 4, 10], 2.5)\n"
-    ">>> inv_boxcox(y, 2.5)\n"
-    "array([1., 4., 10.])")
-ufunc_inv_boxcox_loops[0] = loop_d_dd__As_ff_f
-ufunc_inv_boxcox_loops[1] = loop_d_dd__As_dd_d
-ufunc_inv_boxcox_types[0] = NPY_FLOAT
-ufunc_inv_boxcox_types[1] = NPY_FLOAT
-ufunc_inv_boxcox_types[2] = NPY_FLOAT
-ufunc_inv_boxcox_types[3] = NPY_DOUBLE
-ufunc_inv_boxcox_types[4] = NPY_DOUBLE
-ufunc_inv_boxcox_types[5] = NPY_DOUBLE
-ufunc_inv_boxcox_ptr[2*0] = _func_inv_boxcox
-ufunc_inv_boxcox_ptr[2*0+1] = ("inv_boxcox")
-ufunc_inv_boxcox_ptr[2*1] = _func_inv_boxcox
-ufunc_inv_boxcox_ptr[2*1+1] = ("inv_boxcox")
-ufunc_inv_boxcox_data[0] = &ufunc_inv_boxcox_ptr[2*0]
-ufunc_inv_boxcox_data[1] = &ufunc_inv_boxcox_ptr[2*1]
-inv_boxcox = np.PyUFunc_FromFuncAndData(ufunc_inv_boxcox_loops, ufunc_inv_boxcox_data, ufunc_inv_boxcox_types, 2, 2, 1, 0, "inv_boxcox", ufunc_inv_boxcox_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_inv_boxcox1p_loops[2]
-cdef void *ufunc_inv_boxcox1p_ptr[4]
-cdef void *ufunc_inv_boxcox1p_data[2]
-cdef char ufunc_inv_boxcox1p_types[6]
-cdef char *ufunc_inv_boxcox1p_doc = (
-    "inv_boxcox1p(y, lmbda, out=None)\n"
-    "\n"
-    "Compute the inverse of the Box-Cox transformation.\n"
-    "\n"
-    "Find ``x`` such that::\n"
-    "\n"
-    "    y = ((1+x)**lmbda - 1) / lmbda  if lmbda != 0\n"
-    "        log(1+x)                    if lmbda == 0\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "y : array_like\n"
-    "    Data to be transformed.\n"
-    "lmbda : array_like\n"
-    "    Power parameter of the Box-Cox transform.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "x : scalar or ndarray\n"
-    "    Transformed data.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "\n"
-    ".. versionadded:: 0.16.0\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import boxcox1p, inv_boxcox1p\n"
-    ">>> y = boxcox1p([1, 4, 10], 2.5)\n"
-    ">>> inv_boxcox1p(y, 2.5)\n"
-    "array([1., 4., 10.])")
-ufunc_inv_boxcox1p_loops[0] = loop_d_dd__As_ff_f
-ufunc_inv_boxcox1p_loops[1] = loop_d_dd__As_dd_d
-ufunc_inv_boxcox1p_types[0] = NPY_FLOAT
-ufunc_inv_boxcox1p_types[1] = NPY_FLOAT
-ufunc_inv_boxcox1p_types[2] = NPY_FLOAT
-ufunc_inv_boxcox1p_types[3] = NPY_DOUBLE
-ufunc_inv_boxcox1p_types[4] = NPY_DOUBLE
-ufunc_inv_boxcox1p_types[5] = NPY_DOUBLE
-ufunc_inv_boxcox1p_ptr[2*0] = _func_inv_boxcox1p
-ufunc_inv_boxcox1p_ptr[2*0+1] = ("inv_boxcox1p")
-ufunc_inv_boxcox1p_ptr[2*1] = _func_inv_boxcox1p
-ufunc_inv_boxcox1p_ptr[2*1+1] = ("inv_boxcox1p")
-ufunc_inv_boxcox1p_data[0] = &ufunc_inv_boxcox1p_ptr[2*0]
-ufunc_inv_boxcox1p_data[1] = &ufunc_inv_boxcox1p_ptr[2*1]
-inv_boxcox1p = np.PyUFunc_FromFuncAndData(ufunc_inv_boxcox1p_loops, ufunc_inv_boxcox1p_data, ufunc_inv_boxcox1p_types, 2, 2, 1, 0, "inv_boxcox1p", ufunc_inv_boxcox1p_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_j0_loops[2]
-cdef void *ufunc_j0_ptr[4]
-cdef void *ufunc_j0_data[2]
-cdef char ufunc_j0_types[4]
-cdef char *ufunc_j0_doc = (
-    "j0(x, out=None)\n"
-    "\n"
-    "Bessel function of the first kind of order 0.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "J : scalar or ndarray\n"
-    "    Value of the Bessel function of the first kind of order 0 at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "jv : Bessel function of real order and complex argument.\n"
-    "spherical_jn : spherical Bessel functions.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The domain is divided into the intervals [0, 5] and (5, infinity). In the\n"
-    "first interval the following rational approximation is used:\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    J_0(x) \\approx (w - r_1^2)(w - r_2^2) \\frac{P_3(w)}{Q_8(w)},\n"
-    "\n"
-    "where :math:`w = x^2` and :math:`r_1`, :math:`r_2` are the zeros of\n"
-    ":math:`J_0`, and :math:`P_3` and :math:`Q_8` are polynomials of degrees 3\n"
-    "and 8, respectively.\n"
-    "\n"
-    "In the second interval, the Hankel asymptotic expansion is employed with\n"
-    "two rational functions of degree 6/6 and 7/7.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `j0`.\n"
-    "It should not be confused with the spherical Bessel functions (see\n"
-    "`spherical_jn`).\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function at one point:\n"
-    "\n"
-    ">>> from scipy.special import j0\n"
-    ">>> j0(1.)\n"
-    "0.7651976865579665\n"
-    "\n"
-    "Calculate the function at several points:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> j0(np.array([-2., 0., 4.]))\n"
-    "array([ 0.22389078,  1.        , -0.39714981])\n"
-    "\n"
-    "Plot the function from -20 to 20.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(-20., 20., 1000)\n"
-    ">>> y = j0(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_j0_loops[0] = loop_d_d__As_f_f
-ufunc_j0_loops[1] = loop_d_d__As_d_d
-ufunc_j0_types[0] = NPY_FLOAT
-ufunc_j0_types[1] = NPY_FLOAT
-ufunc_j0_types[2] = NPY_DOUBLE
-ufunc_j0_types[3] = NPY_DOUBLE
-ufunc_j0_ptr[2*0] = _func_cephes_j0
-ufunc_j0_ptr[2*0+1] = ("j0")
-ufunc_j0_ptr[2*1] = _func_cephes_j0
-ufunc_j0_ptr[2*1+1] = ("j0")
-ufunc_j0_data[0] = &ufunc_j0_ptr[2*0]
-ufunc_j0_data[1] = &ufunc_j0_ptr[2*1]
-j0 = np.PyUFunc_FromFuncAndData(ufunc_j0_loops, ufunc_j0_data, ufunc_j0_types, 2, 1, 1, 0, "j0", ufunc_j0_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_j1_loops[2]
-cdef void *ufunc_j1_ptr[4]
-cdef void *ufunc_j1_data[2]
-cdef char ufunc_j1_types[4]
-cdef char *ufunc_j1_doc = (
-    "j1(x, out=None)\n"
-    "\n"
-    "Bessel function of the first kind of order 1.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "J : scalar or ndarray\n"
-    "    Value of the Bessel function of the first kind of order 1 at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "jv: Bessel function of the first kind\n"
-    "spherical_jn: spherical Bessel functions.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The domain is divided into the intervals [0, 8] and (8, infinity). In the\n"
-    "first interval a 24 term Chebyshev expansion is used. In the second, the\n"
-    "asymptotic trigonometric representation is employed using two rational\n"
-    "functions of degree 5/5.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `j1`.\n"
-    "It should not be confused with the spherical Bessel functions (see\n"
-    "`spherical_jn`).\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function at one point:\n"
-    "\n"
-    ">>> from scipy.special import j1\n"
-    ">>> j1(1.)\n"
-    "0.44005058574493355\n"
-    "\n"
-    "Calculate the function at several points:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> j1(np.array([-2., 0., 4.]))\n"
-    "array([-0.57672481,  0.        , -0.06604333])\n"
-    "\n"
-    "Plot the function from -20 to 20.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(-20., 20., 1000)\n"
-    ">>> y = j1(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_j1_loops[0] = loop_d_d__As_f_f
-ufunc_j1_loops[1] = loop_d_d__As_d_d
-ufunc_j1_types[0] = NPY_FLOAT
-ufunc_j1_types[1] = NPY_FLOAT
-ufunc_j1_types[2] = NPY_DOUBLE
-ufunc_j1_types[3] = NPY_DOUBLE
-ufunc_j1_ptr[2*0] = _func_cephes_j1
-ufunc_j1_ptr[2*0+1] = ("j1")
-ufunc_j1_ptr[2*1] = _func_cephes_j1
-ufunc_j1_ptr[2*1+1] = ("j1")
-ufunc_j1_data[0] = &ufunc_j1_ptr[2*0]
-ufunc_j1_data[1] = &ufunc_j1_ptr[2*1]
-j1 = np.PyUFunc_FromFuncAndData(ufunc_j1_loops, ufunc_j1_data, ufunc_j1_types, 2, 1, 1, 0, "j1", ufunc_j1_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_k0_loops[2]
-cdef void *ufunc_k0_ptr[4]
-cdef void *ufunc_k0_data[2]
-cdef char ufunc_k0_types[4]
-cdef char *ufunc_k0_doc = (
-    "k0(x, out=None)\n"
-    "\n"
-    "Modified Bessel function of the second kind of order 0, :math:`K_0`.\n"
-    "\n"
-    "This function is also sometimes referred to as the modified Bessel\n"
-    "function of the third kind of order 0.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "K : scalar or ndarray\n"
-    "    Value of the modified Bessel function :math:`K_0` at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "kv: Modified Bessel function of the second kind of any order\n"
-    "k0e: Exponentially scaled modified Bessel function of the second kind\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The range is partitioned into the two intervals [0, 2] and (2, infinity).\n"
-    "Chebyshev polynomial expansions are employed in each interval.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `k0`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function at one point:\n"
-    "\n"
-    ">>> from scipy.special import k0\n"
-    ">>> k0(1.)\n"
-    "0.42102443824070823\n"
-    "\n"
-    "Calculate the function at several points:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> k0(np.array([0.5, 2., 3.]))\n"
-    "array([0.92441907, 0.11389387, 0.0347395 ])\n"
-    "\n"
-    "Plot the function from 0 to 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(0., 10., 1000)\n"
-    ">>> y = k0(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_k0_loops[0] = loop_d_d__As_f_f
-ufunc_k0_loops[1] = loop_d_d__As_d_d
-ufunc_k0_types[0] = NPY_FLOAT
-ufunc_k0_types[1] = NPY_FLOAT
-ufunc_k0_types[2] = NPY_DOUBLE
-ufunc_k0_types[3] = NPY_DOUBLE
-ufunc_k0_ptr[2*0] = _func_cephes_k0
-ufunc_k0_ptr[2*0+1] = ("k0")
-ufunc_k0_ptr[2*1] = _func_cephes_k0
-ufunc_k0_ptr[2*1+1] = ("k0")
-ufunc_k0_data[0] = &ufunc_k0_ptr[2*0]
-ufunc_k0_data[1] = &ufunc_k0_ptr[2*1]
-k0 = np.PyUFunc_FromFuncAndData(ufunc_k0_loops, ufunc_k0_data, ufunc_k0_types, 2, 1, 1, 0, "k0", ufunc_k0_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_k0e_loops[2]
-cdef void *ufunc_k0e_ptr[4]
-cdef void *ufunc_k0e_data[2]
-cdef char ufunc_k0e_types[4]
-cdef char *ufunc_k0e_doc = (
-    "k0e(x, out=None)\n"
-    "\n"
-    "Exponentially scaled modified Bessel function K of order 0\n"
-    "\n"
-    "Defined as::\n"
-    "\n"
-    "    k0e(x) = exp(x) * k0(x).\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float)\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "K : scalar or ndarray\n"
-    "    Value of the exponentially scaled modified Bessel function K of order\n"
-    "    0 at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "kv: Modified Bessel function of the second kind of any order\n"
-    "k0: Modified Bessel function of the second kind\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The range is partitioned into the two intervals [0, 2] and (2, infinity).\n"
-    "Chebyshev polynomial expansions are employed in each interval.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `k0e`. `k0e` is\n"
-    "useful for large arguments: for these, `k0` easily underflows.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "In the following example `k0` returns 0 whereas `k0e` still returns a\n"
-    "useful finite number:\n"
-    "\n"
-    ">>> from scipy.special import k0, k0e\n"
-    ">>> k0(1000.), k0e(1000)\n"
-    "(0., 0.03962832160075422)\n"
-    "\n"
-    "Calculate the function at several points by providing a NumPy array or\n"
-    "list for `x`:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> k0e(np.array([0.5, 2., 3.]))\n"
-    "array([1.52410939, 0.84156822, 0.6977616 ])\n"
-    "\n"
-    "Plot the function from 0 to 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(0., 10., 1000)\n"
-    ">>> y = k0e(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_k0e_loops[0] = loop_d_d__As_f_f
-ufunc_k0e_loops[1] = loop_d_d__As_d_d
-ufunc_k0e_types[0] = NPY_FLOAT
-ufunc_k0e_types[1] = NPY_FLOAT
-ufunc_k0e_types[2] = NPY_DOUBLE
-ufunc_k0e_types[3] = NPY_DOUBLE
-ufunc_k0e_ptr[2*0] = _func_cephes_k0e
-ufunc_k0e_ptr[2*0+1] = ("k0e")
-ufunc_k0e_ptr[2*1] = _func_cephes_k0e
-ufunc_k0e_ptr[2*1+1] = ("k0e")
-ufunc_k0e_data[0] = &ufunc_k0e_ptr[2*0]
-ufunc_k0e_data[1] = &ufunc_k0e_ptr[2*1]
-k0e = np.PyUFunc_FromFuncAndData(ufunc_k0e_loops, ufunc_k0e_data, ufunc_k0e_types, 2, 1, 1, 0, "k0e", ufunc_k0e_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_k1_loops[2]
-cdef void *ufunc_k1_ptr[4]
-cdef void *ufunc_k1_data[2]
-cdef char ufunc_k1_types[4]
-cdef char *ufunc_k1_doc = (
-    "k1(x, out=None)\n"
-    "\n"
-    "Modified Bessel function of the second kind of order 1, :math:`K_1(x)`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float)\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "K : scalar or ndarray\n"
-    "    Value of the modified Bessel function K of order 1 at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "kv: Modified Bessel function of the second kind of any order\n"
-    "k1e: Exponentially scaled modified Bessel function K of order 1\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The range is partitioned into the two intervals [0, 2] and (2, infinity).\n"
-    "Chebyshev polynomial expansions are employed in each interval.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `k1`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function at one point:\n"
-    "\n"
-    ">>> from scipy.special import k1\n"
-    ">>> k1(1.)\n"
-    "0.6019072301972346\n"
-    "\n"
-    "Calculate the function at several points:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> k1(np.array([0.5, 2., 3.]))\n"
-    "array([1.65644112, 0.13986588, 0.04015643])\n"
-    "\n"
-    "Plot the function from 0 to 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(0., 10., 1000)\n"
-    ">>> y = k1(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_k1_loops[0] = loop_d_d__As_f_f
-ufunc_k1_loops[1] = loop_d_d__As_d_d
-ufunc_k1_types[0] = NPY_FLOAT
-ufunc_k1_types[1] = NPY_FLOAT
-ufunc_k1_types[2] = NPY_DOUBLE
-ufunc_k1_types[3] = NPY_DOUBLE
-ufunc_k1_ptr[2*0] = _func_cephes_k1
-ufunc_k1_ptr[2*0+1] = ("k1")
-ufunc_k1_ptr[2*1] = _func_cephes_k1
-ufunc_k1_ptr[2*1+1] = ("k1")
-ufunc_k1_data[0] = &ufunc_k1_ptr[2*0]
-ufunc_k1_data[1] = &ufunc_k1_ptr[2*1]
-k1 = np.PyUFunc_FromFuncAndData(ufunc_k1_loops, ufunc_k1_data, ufunc_k1_types, 2, 1, 1, 0, "k1", ufunc_k1_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_k1e_loops[2]
-cdef void *ufunc_k1e_ptr[4]
-cdef void *ufunc_k1e_data[2]
-cdef char ufunc_k1e_types[4]
-cdef char *ufunc_k1e_doc = (
-    "k1e(x, out=None)\n"
-    "\n"
-    "Exponentially scaled modified Bessel function K of order 1\n"
-    "\n"
-    "Defined as::\n"
-    "\n"
-    "    k1e(x) = exp(x) * k1(x)\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float)\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "K : scalar or ndarray\n"
-    "    Value of the exponentially scaled modified Bessel function K of order\n"
-    "    1 at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "kv: Modified Bessel function of the second kind of any order\n"
-    "k1: Modified Bessel function of the second kind of order 1\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The range is partitioned into the two intervals [0, 2] and (2, infinity).\n"
-    "Chebyshev polynomial expansions are employed in each interval.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `k1e`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "In the following example `k1` returns 0 whereas `k1e` still returns a\n"
-    "useful floating point number.\n"
-    "\n"
-    ">>> from scipy.special import k1, k1e\n"
-    ">>> k1(1000.), k1e(1000.)\n"
-    "(0., 0.03964813081296021)\n"
-    "\n"
-    "Calculate the function at several points by providing a NumPy array or\n"
-    "list for `x`:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> k1e(np.array([0.5, 2., 3.]))\n"
-    "array([2.73100971, 1.03347685, 0.80656348])\n"
-    "\n"
-    "Plot the function from 0 to 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(0., 10., 1000)\n"
-    ">>> y = k1e(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_k1e_loops[0] = loop_d_d__As_f_f
-ufunc_k1e_loops[1] = loop_d_d__As_d_d
-ufunc_k1e_types[0] = NPY_FLOAT
-ufunc_k1e_types[1] = NPY_FLOAT
-ufunc_k1e_types[2] = NPY_DOUBLE
-ufunc_k1e_types[3] = NPY_DOUBLE
-ufunc_k1e_ptr[2*0] = _func_cephes_k1e
-ufunc_k1e_ptr[2*0+1] = ("k1e")
-ufunc_k1e_ptr[2*1] = _func_cephes_k1e
-ufunc_k1e_ptr[2*1+1] = ("k1e")
-ufunc_k1e_data[0] = &ufunc_k1e_ptr[2*0]
-ufunc_k1e_data[1] = &ufunc_k1e_ptr[2*1]
-k1e = np.PyUFunc_FromFuncAndData(ufunc_k1e_loops, ufunc_k1e_data, ufunc_k1e_types, 2, 1, 1, 0, "k1e", ufunc_k1e_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_kl_div_loops[2]
-cdef void *ufunc_kl_div_ptr[4]
-cdef void *ufunc_kl_div_data[2]
-cdef char ufunc_kl_div_types[6]
-cdef char *ufunc_kl_div_doc = (
-    "kl_div(x, y, out=None)\n"
-    "\n"
-    "Elementwise function for computing Kullback-Leibler divergence.\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    \\mathrm{kl\\_div}(x, y) =\n"
-    "      \\begin{cases}\n"
-    "        x \\log(x / y) - x + y & x > 0, y > 0 \\\\\n"
-    "        y & x = 0, y \\ge 0 \\\\\n"
-    "        \\infty & \\text{otherwise}\n"
-    "      \\end{cases}\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x, y : array_like\n"
-    "    Real arguments\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the Kullback-Liebler divergence.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "entr, rel_entr, scipy.stats.entropy\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    ".. versionadded:: 0.15.0\n"
-    "\n"
-    "This function is non-negative and is jointly convex in `x` and `y`.\n"
-    "\n"
-    "The origin of this function is in convex programming; see [1]_ for\n"
-    "details. This is why the function contains the extra :math:`-x\n"
-    "+ y` terms over what might be expected from the Kullback-Leibler\n"
-    "divergence. For a version of the function without the extra terms,\n"
-    "see `rel_entr`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Boyd, Stephen and Lieven Vandenberghe. *Convex optimization*.\n"
-    "       Cambridge University Press, 2004.\n"
-    "       :doi:`https://doi.org/10.1017/CBO9780511804441`")
-ufunc_kl_div_loops[0] = loop_d_dd__As_ff_f
-ufunc_kl_div_loops[1] = loop_d_dd__As_dd_d
-ufunc_kl_div_types[0] = NPY_FLOAT
-ufunc_kl_div_types[1] = NPY_FLOAT
-ufunc_kl_div_types[2] = NPY_FLOAT
-ufunc_kl_div_types[3] = NPY_DOUBLE
-ufunc_kl_div_types[4] = NPY_DOUBLE
-ufunc_kl_div_types[5] = NPY_DOUBLE
-ufunc_kl_div_ptr[2*0] = _func_kl_div
-ufunc_kl_div_ptr[2*0+1] = ("kl_div")
-ufunc_kl_div_ptr[2*1] = _func_kl_div
-ufunc_kl_div_ptr[2*1+1] = ("kl_div")
-ufunc_kl_div_data[0] = &ufunc_kl_div_ptr[2*0]
-ufunc_kl_div_data[1] = &ufunc_kl_div_ptr[2*1]
-kl_div = np.PyUFunc_FromFuncAndData(ufunc_kl_div_loops, ufunc_kl_div_data, ufunc_kl_div_types, 2, 2, 1, 0, "kl_div", ufunc_kl_div_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_kn_loops[3]
-cdef void *ufunc_kn_ptr[6]
-cdef void *ufunc_kn_data[3]
-cdef char ufunc_kn_types[9]
-cdef char *ufunc_kn_doc = (
-    "kn(n, x, out=None)\n"
-    "\n"
-    "Modified Bessel function of the second kind of integer order `n`\n"
-    "\n"
-    "Returns the modified Bessel function of the second kind for integer order\n"
-    "`n` at real `z`.\n"
-    "\n"
-    "These are also sometimes called functions of the third kind, Basset\n"
-    "functions, or Macdonald functions.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like of int\n"
-    "    Order of Bessel functions (floats will truncate with a warning)\n"
-    "x : array_like of float\n"
-    "    Argument at which to evaluate the Bessel functions\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Value of the Modified Bessel function of the second kind,\n"
-    "    :math:`K_n(x)`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "kv : Same function, but accepts real order and complex argument\n"
-    "kvp : Derivative of this function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for AMOS [1]_ routine `zbesk`.  For a discussion of the\n"
-    "algorithm used, see [2]_ and the references therein.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Donald E. Amos, \"AMOS, A Portable Package for Bessel Functions\n"
-    "       of a Complex Argument and Nonnegative Order\",\n"
-    "       http://netlib.org/amos/\n"
-    ".. [2] Donald E. Amos, \"Algorithm 644: A portable package for Bessel\n"
-    "       functions of a complex argument and nonnegative order\", ACM\n"
-    "       TOMS Vol. 12 Issue 3, Sept. 1986, p. 265\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Plot the function of several orders for real input:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import kn\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> x = np.linspace(0, 5, 1000)\n"
-    ">>> for N in range(6):\n"
-    "...     plt.plot(x, kn(N, x), label='$K_{}(x)$'.format(N))\n"
-    ">>> plt.ylim(0, 10)\n"
-    ">>> plt.legend()\n"
-    ">>> plt.title(r'Modified Bessel function of the second kind $K_n(x)$')\n"
-    ">>> plt.show()\n"
-    "\n"
-    "Calculate for a single value at multiple orders:\n"
-    "\n"
-    ">>> kn([4, 5, 6], 1)\n"
-    "array([   44.23241585,   360.9605896 ,  3653.83831186])")
-ufunc_kn_loops[0] = loop_d_pd__As_pd_d
-ufunc_kn_loops[1] = loop_d_dd__As_ff_f
-ufunc_kn_loops[2] = loop_d_dd__As_dd_d
-ufunc_kn_types[0] = NPY_INTP
-ufunc_kn_types[1] = NPY_DOUBLE
-ufunc_kn_types[2] = NPY_DOUBLE
-ufunc_kn_types[3] = NPY_FLOAT
-ufunc_kn_types[4] = NPY_FLOAT
-ufunc_kn_types[5] = NPY_FLOAT
-ufunc_kn_types[6] = NPY_DOUBLE
-ufunc_kn_types[7] = NPY_DOUBLE
-ufunc_kn_types[8] = NPY_DOUBLE
-ufunc_kn_ptr[2*0] = _func_special_cyl_bessel_k_int
-ufunc_kn_ptr[2*0+1] = ("kn")
-ufunc_kn_ptr[2*1] = _func_kn_unsafe
-ufunc_kn_ptr[2*1+1] = ("kn")
-ufunc_kn_ptr[2*2] = _func_kn_unsafe
-ufunc_kn_ptr[2*2+1] = ("kn")
-ufunc_kn_data[0] = &ufunc_kn_ptr[2*0]
-ufunc_kn_data[1] = &ufunc_kn_ptr[2*1]
-ufunc_kn_data[2] = &ufunc_kn_ptr[2*2]
-kn = np.PyUFunc_FromFuncAndData(ufunc_kn_loops, ufunc_kn_data, ufunc_kn_types, 3, 2, 1, 0, "kn", ufunc_kn_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_kolmogi_loops[2]
-cdef void *ufunc_kolmogi_ptr[4]
-cdef void *ufunc_kolmogi_data[2]
-cdef char ufunc_kolmogi_types[4]
-cdef char *ufunc_kolmogi_doc = (
-    "kolmogi(p, out=None)\n"
-    "\n"
-    "Inverse Survival Function of Kolmogorov distribution\n"
-    "\n"
-    "It is the inverse function to `kolmogorov`.\n"
-    "Returns y such that ``kolmogorov(y) == p``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : float array_like\n"
-    "    Probability\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The value(s) of kolmogi(p)\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "kolmogorov : The Survival Function for the distribution\n"
-    "scipy.stats.kstwobign : Provides the functionality as a continuous distribution\n"
-    "smirnov, smirnovi : Functions for the one-sided distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "`kolmogorov` is used by `stats.kstest` in the application of the\n"
-    "Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this\n"
-    "function is exposed in `scpy.special`, but the recommended way to achieve\n"
-    "the most accurate CDF/SF/PDF/PPF/ISF computations is to use the\n"
-    "`stats.kstwobign` distribution.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import kolmogi\n"
-    ">>> kolmogi([0, 0.1, 0.25, 0.5, 0.75, 0.9, 1.0])\n"
-    "array([        inf,  1.22384787,  1.01918472,  0.82757356,  0.67644769,\n"
-    "        0.57117327,  0.        ])")
-ufunc_kolmogi_loops[0] = loop_d_d__As_f_f
-ufunc_kolmogi_loops[1] = loop_d_d__As_d_d
-ufunc_kolmogi_types[0] = NPY_FLOAT
-ufunc_kolmogi_types[1] = NPY_FLOAT
-ufunc_kolmogi_types[2] = NPY_DOUBLE
-ufunc_kolmogi_types[3] = NPY_DOUBLE
-ufunc_kolmogi_ptr[2*0] = _func_cephes_kolmogi
-ufunc_kolmogi_ptr[2*0+1] = ("kolmogi")
-ufunc_kolmogi_ptr[2*1] = _func_cephes_kolmogi
-ufunc_kolmogi_ptr[2*1+1] = ("kolmogi")
-ufunc_kolmogi_data[0] = &ufunc_kolmogi_ptr[2*0]
-ufunc_kolmogi_data[1] = &ufunc_kolmogi_ptr[2*1]
-kolmogi = np.PyUFunc_FromFuncAndData(ufunc_kolmogi_loops, ufunc_kolmogi_data, ufunc_kolmogi_types, 2, 1, 1, 0, "kolmogi", ufunc_kolmogi_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_kolmogorov_loops[2]
-cdef void *ufunc_kolmogorov_ptr[4]
-cdef void *ufunc_kolmogorov_data[2]
-cdef char ufunc_kolmogorov_types[4]
-cdef char *ufunc_kolmogorov_doc = (
-    "kolmogorov(y, out=None)\n"
-    "\n"
-    "Complementary cumulative distribution (Survival Function) function of\n"
-    "Kolmogorov distribution.\n"
-    "\n"
-    "Returns the complementary cumulative distribution function of\n"
-    "Kolmogorov's limiting distribution (``D_n*\\sqrt(n)`` as n goes to infinity)\n"
-    "of a two-sided test for equality between an empirical and a theoretical\n"
-    "distribution. It is equal to the (limit as n->infinity of the)\n"
-    "probability that ``sqrt(n) * max absolute deviation > y``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "y : float array_like\n"
-    "  Absolute deviation between the Empirical CDF (ECDF) and the target CDF,\n"
-    "  multiplied by sqrt(n).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The value(s) of kolmogorov(y)\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "kolmogi : The Inverse Survival Function for the distribution\n"
-    "scipy.stats.kstwobign : Provides the functionality as a continuous distribution\n"
-    "smirnov, smirnovi : Functions for the one-sided distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "`kolmogorov` is used by `stats.kstest` in the application of the\n"
-    "Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this\n"
-    "function is exposed in `scpy.special`, but the recommended way to achieve\n"
-    "the most accurate CDF/SF/PDF/PPF/ISF computations is to use the\n"
-    "`stats.kstwobign` distribution.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Show the probability of a gap at least as big as 0, 0.5 and 1.0.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import kolmogorov\n"
-    ">>> from scipy.stats import kstwobign\n"
-    ">>> kolmogorov([0, 0.5, 1.0])\n"
-    "array([ 1.        ,  0.96394524,  0.26999967])\n"
-    "\n"
-    "Compare a sample of size 1000 drawn from a Laplace(0, 1) distribution against\n"
-    "the target distribution, a Normal(0, 1) distribution.\n"
-    "\n"
-    ">>> from scipy.stats import norm, laplace\n"
-    ">>> rng = np.random.default_rng()\n"
-    ">>> n = 1000\n"
-    ">>> lap01 = laplace(0, 1)\n"
-    ">>> x = np.sort(lap01.rvs(n, random_state=rng))\n"
-    ">>> np.mean(x), np.std(x)\n"
-    "(-0.05841730131499543, 1.3968109101997568)\n"
-    "\n"
-    "Construct the Empirical CDF and the K-S statistic Dn.\n"
-    "\n"
-    ">>> target = norm(0,1)  # Normal mean 0, stddev 1\n"
-    ">>> cdfs = target.cdf(x)\n"
-    ">>> ecdfs = np.arange(n+1, dtype=float)/n\n"
-    ">>> gaps = np.column_stack([cdfs - ecdfs[:n], ecdfs[1:] - cdfs])\n"
-    ">>> Dn = np.max(gaps)\n"
-    ">>> Kn = np.sqrt(n) * Dn\n"
-    ">>> print('Dn=%f, sqrt(n)*Dn=%f' % (Dn, Kn))\n"
-    "Dn=0.043363, sqrt(n)*Dn=1.371265\n"
-    ">>> print(chr(10).join(['For a sample of size n drawn from a N(0, 1) distribution:',\n"
-    "...   ' the approximate Kolmogorov probability that sqrt(n)*Dn>=%f is %f' %\n"
-    "...    (Kn, kolmogorov(Kn)),\n"
-    "...   ' the approximate Kolmogorov probability that sqrt(n)*Dn<=%f is %f' %\n"
-    "...    (Kn, kstwobign.cdf(Kn))]))\n"
-    "For a sample of size n drawn from a N(0, 1) distribution:\n"
-    " the approximate Kolmogorov probability that sqrt(n)*Dn>=1.371265 is 0.046533\n"
-    " the approximate Kolmogorov probability that sqrt(n)*Dn<=1.371265 is 0.953467\n"
-    "\n"
-    "Plot the Empirical CDF against the target N(0, 1) CDF.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> plt.step(np.concatenate([[-3], x]), ecdfs, where='post', label='Empirical CDF')\n"
-    ">>> x3 = np.linspace(-3, 3, 100)\n"
-    ">>> plt.plot(x3, target.cdf(x3), label='CDF for N(0, 1)')\n"
-    ">>> plt.ylim([0, 1]); plt.grid(True); plt.legend();\n"
-    ">>> # Add vertical lines marking Dn+ and Dn-\n"
-    ">>> iminus, iplus = np.argmax(gaps, axis=0)\n"
-    ">>> plt.vlines([x[iminus]], ecdfs[iminus], cdfs[iminus],\n"
-    "...            color='r', linestyle='dashed', lw=4)\n"
-    ">>> plt.vlines([x[iplus]], cdfs[iplus], ecdfs[iplus+1],\n"
-    "...            color='r', linestyle='dashed', lw=4)\n"
-    ">>> plt.show()")
-ufunc_kolmogorov_loops[0] = loop_d_d__As_f_f
-ufunc_kolmogorov_loops[1] = loop_d_d__As_d_d
-ufunc_kolmogorov_types[0] = NPY_FLOAT
-ufunc_kolmogorov_types[1] = NPY_FLOAT
-ufunc_kolmogorov_types[2] = NPY_DOUBLE
-ufunc_kolmogorov_types[3] = NPY_DOUBLE
-ufunc_kolmogorov_ptr[2*0] = _func_cephes_kolmogorov
-ufunc_kolmogorov_ptr[2*0+1] = ("kolmogorov")
-ufunc_kolmogorov_ptr[2*1] = _func_cephes_kolmogorov
-ufunc_kolmogorov_ptr[2*1+1] = ("kolmogorov")
-ufunc_kolmogorov_data[0] = &ufunc_kolmogorov_ptr[2*0]
-ufunc_kolmogorov_data[1] = &ufunc_kolmogorov_ptr[2*1]
-kolmogorov = np.PyUFunc_FromFuncAndData(ufunc_kolmogorov_loops, ufunc_kolmogorov_data, ufunc_kolmogorov_types, 2, 1, 1, 0, "kolmogorov", ufunc_kolmogorov_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_log1p_loops[4]
-cdef void *ufunc_log1p_ptr[8]
-cdef void *ufunc_log1p_data[4]
-cdef char ufunc_log1p_types[8]
-cdef char *ufunc_log1p_doc = (
-    "log1p(x, out=None)\n"
-    "\n"
-    "Calculates log(1 + x) for use when `x` is near zero.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real or complex valued input.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of ``log(1 + x)``.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "expm1, cosm1\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is more accurate than using ``log(1 + x)`` directly for ``x``\n"
-    "near 0. Note that in the below example ``1 + 1e-17 == 1`` to\n"
-    "double precision.\n"
-    "\n"
-    ">>> sc.log1p(1e-17)\n"
-    "1e-17\n"
-    ">>> np.log(1 + 1e-17)\n"
-    "0.0")
-ufunc_log1p_loops[0] = loop_d_d__As_f_f
-ufunc_log1p_loops[1] = loop_d_d__As_d_d
-ufunc_log1p_loops[2] = loop_D_D__As_F_F
-ufunc_log1p_loops[3] = loop_D_D__As_D_D
-ufunc_log1p_types[0] = NPY_FLOAT
-ufunc_log1p_types[1] = NPY_FLOAT
-ufunc_log1p_types[2] = NPY_DOUBLE
-ufunc_log1p_types[3] = NPY_DOUBLE
-ufunc_log1p_types[4] = NPY_CFLOAT
-ufunc_log1p_types[5] = NPY_CFLOAT
-ufunc_log1p_types[6] = NPY_CDOUBLE
-ufunc_log1p_types[7] = NPY_CDOUBLE
-ufunc_log1p_ptr[2*0] = _func_cephes_log1p
-ufunc_log1p_ptr[2*0+1] = ("log1p")
-ufunc_log1p_ptr[2*1] = _func_cephes_log1p
-ufunc_log1p_ptr[2*1+1] = ("log1p")
-ufunc_log1p_ptr[2*2] = _func_clog1p
-ufunc_log1p_ptr[2*2+1] = ("log1p")
-ufunc_log1p_ptr[2*3] = _func_clog1p
-ufunc_log1p_ptr[2*3+1] = ("log1p")
-ufunc_log1p_data[0] = &ufunc_log1p_ptr[2*0]
-ufunc_log1p_data[1] = &ufunc_log1p_ptr[2*1]
-ufunc_log1p_data[2] = &ufunc_log1p_ptr[2*2]
-ufunc_log1p_data[3] = &ufunc_log1p_ptr[2*3]
-log1p = np.PyUFunc_FromFuncAndData(ufunc_log1p_loops, ufunc_log1p_data, ufunc_log1p_types, 4, 1, 1, 0, "log1p", ufunc_log1p_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_log_ndtr_loops[4]
-cdef void *ufunc_log_ndtr_ptr[8]
-cdef void *ufunc_log_ndtr_data[4]
-cdef char ufunc_log_ndtr_types[8]
-cdef char *ufunc_log_ndtr_doc = (
-    "log_ndtr(x, out=None)\n"
-    "\n"
-    "Logarithm of Gaussian cumulative distribution function.\n"
-    "\n"
-    "Returns the log of the area under the standard Gaussian probability\n"
-    "density function, integrated from minus infinity to `x`::\n"
-    "\n"
-    "    log(1/sqrt(2*pi) * integral(exp(-t**2 / 2), t=-inf..x))\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like, real or complex\n"
-    "    Argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The value of the log of the normal CDF evaluated at `x`\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "erf\n"
-    "erfc\n"
-    "scipy.stats.norm\n"
-    "ndtr\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import log_ndtr, ndtr\n"
-    "\n"
-    "The benefit of ``log_ndtr(x)`` over the naive implementation\n"
-    "``np.log(ndtr(x))`` is most evident with moderate to large positive\n"
-    "values of ``x``:\n"
-    "\n"
-    ">>> x = np.array([6, 7, 9, 12, 15, 25])\n"
-    ">>> log_ndtr(x)\n"
-    "array([-9.86587646e-010, -1.27981254e-012, -1.12858841e-019,\n"
-    "       -1.77648211e-033, -3.67096620e-051, -3.05669671e-138])\n"
-    "\n"
-    "The results of the naive calculation for the moderate ``x`` values\n"
-    "have only 5 or 6 correct significant digits. For values of ``x``\n"
-    "greater than approximately 8.3, the naive expression returns 0:\n"
-    "\n"
-    ">>> np.log(ndtr(x))\n"
-    "array([-9.86587701e-10, -1.27986510e-12,  0.00000000e+00,\n"
-    "        0.00000000e+00,  0.00000000e+00,  0.00000000e+00])")
-ufunc_log_ndtr_loops[0] = loop_d_d__As_f_f
-ufunc_log_ndtr_loops[1] = loop_d_d__As_d_d
-ufunc_log_ndtr_loops[2] = loop_D_D__As_F_F
-ufunc_log_ndtr_loops[3] = loop_D_D__As_D_D
-ufunc_log_ndtr_types[0] = NPY_FLOAT
-ufunc_log_ndtr_types[1] = NPY_FLOAT
-ufunc_log_ndtr_types[2] = NPY_DOUBLE
-ufunc_log_ndtr_types[3] = NPY_DOUBLE
-ufunc_log_ndtr_types[4] = NPY_CFLOAT
-ufunc_log_ndtr_types[5] = NPY_CFLOAT
-ufunc_log_ndtr_types[6] = NPY_CDOUBLE
-ufunc_log_ndtr_types[7] = NPY_CDOUBLE
-ufunc_log_ndtr_ptr[2*0] = scipy.special._ufuncs_cxx._export_faddeeva_log_ndtr
-ufunc_log_ndtr_ptr[2*0+1] = ("log_ndtr")
-ufunc_log_ndtr_ptr[2*1] = scipy.special._ufuncs_cxx._export_faddeeva_log_ndtr
-ufunc_log_ndtr_ptr[2*1+1] = ("log_ndtr")
-ufunc_log_ndtr_ptr[2*2] = scipy.special._ufuncs_cxx._export_faddeeva_log_ndtr_complex
-ufunc_log_ndtr_ptr[2*2+1] = ("log_ndtr")
-ufunc_log_ndtr_ptr[2*3] = scipy.special._ufuncs_cxx._export_faddeeva_log_ndtr_complex
-ufunc_log_ndtr_ptr[2*3+1] = ("log_ndtr")
-ufunc_log_ndtr_data[0] = &ufunc_log_ndtr_ptr[2*0]
-ufunc_log_ndtr_data[1] = &ufunc_log_ndtr_ptr[2*1]
-ufunc_log_ndtr_data[2] = &ufunc_log_ndtr_ptr[2*2]
-ufunc_log_ndtr_data[3] = &ufunc_log_ndtr_ptr[2*3]
-log_ndtr = np.PyUFunc_FromFuncAndData(ufunc_log_ndtr_loops, ufunc_log_ndtr_data, ufunc_log_ndtr_types, 4, 1, 1, 0, "log_ndtr", ufunc_log_ndtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_lpmv_loops[2]
-cdef void *ufunc_lpmv_ptr[4]
-cdef void *ufunc_lpmv_data[2]
-cdef char ufunc_lpmv_types[8]
-cdef char *ufunc_lpmv_doc = (
-    "lpmv(m, v, x, out=None)\n"
-    "\n"
-    "Associated Legendre function of integer order and real degree.\n"
-    "\n"
-    "Defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    P_v^m = (-1)^m (1 - x^2)^{m/2} \\frac{d^m}{dx^m} P_v(x)\n"
-    "\n"
-    "where\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    P_v = \\sum_{k = 0}^\\infty \\frac{(-v)_k (v + 1)_k}{(k!)^2}\n"
-    "            \\left(\\frac{1 - x}{2}\\right)^k\n"
-    "\n"
-    "is the Legendre function of the first kind. Here :math:`(\\cdot)_k`\n"
-    "is the Pochhammer symbol; see `poch`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "m : array_like\n"
-    "    Order (int or float). If passed a float not equal to an\n"
-    "    integer the function returns NaN.\n"
-    "v : array_like\n"
-    "    Degree (float).\n"
-    "x : array_like\n"
-    "    Argument (float). Must have ``|x| <= 1``.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "pmv : scalar or ndarray\n"
-    "    Value of the associated Legendre function.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "lpmn : Compute the associated Legendre function for all orders\n"
-    "       ``0, ..., m`` and degrees ``0, ..., n``.\n"
-    "clpmn : Compute the associated Legendre function at complex\n"
-    "        arguments.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Note that this implementation includes the Condon-Shortley phase.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Zhang, Jin, \"Computation of Special Functions\", John Wiley\n"
-    "       and Sons, Inc, 1996.")
-ufunc_lpmv_loops[0] = loop_d_ddd__As_fff_f
-ufunc_lpmv_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_lpmv_types[0] = NPY_FLOAT
-ufunc_lpmv_types[1] = NPY_FLOAT
-ufunc_lpmv_types[2] = NPY_FLOAT
-ufunc_lpmv_types[3] = NPY_FLOAT
-ufunc_lpmv_types[4] = NPY_DOUBLE
-ufunc_lpmv_types[5] = NPY_DOUBLE
-ufunc_lpmv_types[6] = NPY_DOUBLE
-ufunc_lpmv_types[7] = NPY_DOUBLE
-ufunc_lpmv_ptr[2*0] = _func_pmv_wrap
-ufunc_lpmv_ptr[2*0+1] = ("lpmv")
-ufunc_lpmv_ptr[2*1] = _func_pmv_wrap
-ufunc_lpmv_ptr[2*1+1] = ("lpmv")
-ufunc_lpmv_data[0] = &ufunc_lpmv_ptr[2*0]
-ufunc_lpmv_data[1] = &ufunc_lpmv_ptr[2*1]
-lpmv = np.PyUFunc_FromFuncAndData(ufunc_lpmv_loops, ufunc_lpmv_data, ufunc_lpmv_types, 2, 3, 1, 0, "lpmv", ufunc_lpmv_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_modstruve_loops[2]
-cdef void *ufunc_modstruve_ptr[4]
-cdef void *ufunc_modstruve_data[2]
-cdef char ufunc_modstruve_types[6]
-cdef char *ufunc_modstruve_doc = (
-    "modstruve(v, x, out=None)\n"
-    "\n"
-    "Modified Struve function.\n"
-    "\n"
-    "Return the value of the modified Struve function of order `v` at `x`.  The\n"
-    "modified Struve function is defined as,\n"
-    "\n"
-    ".. math::\n"
-    "    L_v(x) = -\\imath \\exp(-\\pi\\imath v/2) H_v(\\imath x),\n"
-    "\n"
-    "where :math:`H_v` is the Struve function.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v : array_like\n"
-    "    Order of the modified Struve function (float).\n"
-    "x : array_like\n"
-    "    Argument of the Struve function (float; must be positive unless `v` is\n"
-    "    an integer).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "L : scalar or ndarray\n"
-    "    Value of the modified Struve function of order `v` at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "struve\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Three methods discussed in [1]_ are used to evaluate the function:\n"
-    "\n"
-    "- power series\n"
-    "- expansion in Bessel functions (if :math:`|x| < |v| + 20`)\n"
-    "- asymptotic large-x expansion (if :math:`x \\geq 0.7v + 12`)\n"
-    "\n"
-    "Rounding errors are estimated based on the largest terms in the sums, and\n"
-    "the result associated with the smallest error is returned.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] NIST Digital Library of Mathematical Functions\n"
-    "       https://dlmf.nist.gov/11\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the modified Struve function of order 1 at 2.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import modstruve\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> modstruve(1, 2.)\n"
-    "1.102759787367716\n"
-    "\n"
-    "Calculate the modified Struve function at 2 for orders 1, 2 and 3 by\n"
-    "providing a list for the order parameter `v`.\n"
-    "\n"
-    ">>> modstruve([1, 2, 3], 2.)\n"
-    "array([1.10275979, 0.41026079, 0.11247294])\n"
-    "\n"
-    "Calculate the modified Struve function of order 1 for several points\n"
-    "by providing an array for `x`.\n"
-    "\n"
-    ">>> points = np.array([2., 5., 8.])\n"
-    ">>> modstruve(1, points)\n"
-    "array([  1.10275979,  23.72821578, 399.24709139])\n"
-    "\n"
-    "Compute the modified Struve function for several orders at several\n"
-    "points by providing arrays for `v` and `z`. The arrays have to be\n"
-    "broadcastable to the correct shapes.\n"
-    "\n"
-    ">>> orders = np.array([[1], [2], [3]])\n"
-    ">>> points.shape, orders.shape\n"
-    "((3,), (3, 1))\n"
-    "\n"
-    ">>> modstruve(orders, points)\n"
-    "array([[1.10275979e+00, 2.37282158e+01, 3.99247091e+02],\n"
-    "       [4.10260789e-01, 1.65535979e+01, 3.25973609e+02],\n"
-    "       [1.12472937e-01, 9.42430454e+00, 2.33544042e+02]])\n"
-    "\n"
-    "Plot the modified Struve functions of order 0 to 3 from -5 to 5.\n"
-    "\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(-5., 5., 1000)\n"
-    ">>> for i in range(4):\n"
-    "...     ax.plot(x, modstruve(i, x), label=f'$L_{i!r}$')\n"
-    ">>> ax.legend(ncol=2)\n"
-    ">>> ax.set_xlim(-5, 5)\n"
-    ">>> ax.set_title(r\"Modified Struve functions $L_{\\nu}$\")\n"
-    ">>> plt.show()")
-ufunc_modstruve_loops[0] = loop_d_dd__As_ff_f
-ufunc_modstruve_loops[1] = loop_d_dd__As_dd_d
-ufunc_modstruve_types[0] = NPY_FLOAT
-ufunc_modstruve_types[1] = NPY_FLOAT
-ufunc_modstruve_types[2] = NPY_FLOAT
-ufunc_modstruve_types[3] = NPY_DOUBLE
-ufunc_modstruve_types[4] = NPY_DOUBLE
-ufunc_modstruve_types[5] = NPY_DOUBLE
-ufunc_modstruve_ptr[2*0] = _func_cephes_struve_l
-ufunc_modstruve_ptr[2*0+1] = ("modstruve")
-ufunc_modstruve_ptr[2*1] = _func_cephes_struve_l
-ufunc_modstruve_ptr[2*1+1] = ("modstruve")
-ufunc_modstruve_data[0] = &ufunc_modstruve_ptr[2*0]
-ufunc_modstruve_data[1] = &ufunc_modstruve_ptr[2*1]
-modstruve = np.PyUFunc_FromFuncAndData(ufunc_modstruve_loops, ufunc_modstruve_data, ufunc_modstruve_types, 2, 2, 1, 0, "modstruve", ufunc_modstruve_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nbdtr_loops[3]
-cdef void *ufunc_nbdtr_ptr[6]
-cdef void *ufunc_nbdtr_data[3]
-cdef char ufunc_nbdtr_types[12]
-cdef char *ufunc_nbdtr_doc = (
-    "nbdtr(k, n, p, out=None)\n"
-    "\n"
-    "Negative binomial cumulative distribution function.\n"
-    "\n"
-    "Returns the sum of the terms 0 through `k` of the negative binomial\n"
-    "distribution probability mass function,\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    F = \\sum_{j=0}^k {{n + j - 1}\\choose{j}} p^n (1 - p)^j.\n"
-    "\n"
-    "In a sequence of Bernoulli trials with individual success probabilities\n"
-    "`p`, this is the probability that `k` or fewer failures precede the nth\n"
-    "success.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    The maximum number of allowed failures (nonnegative int).\n"
-    "n : array_like\n"
-    "    The target number of successes (positive int).\n"
-    "p : array_like\n"
-    "    Probability of success in a single event (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "F : scalar or ndarray\n"
-    "    The probability of `k` or fewer failures before `n` successes in a\n"
-    "    sequence of events with individual success probability `p`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "nbdtrc : Negative binomial survival function\n"
-    "nbdtrik : Negative binomial quantile function\n"
-    "scipy.stats.nbinom : Negative binomial distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "If floating point values are passed for `k` or `n`, they will be truncated\n"
-    "to integers.\n"
-    "\n"
-    "The terms are not summed directly; instead the regularized incomplete beta\n"
-    "function is employed, according to the formula,\n"
-    "\n"
-    ".. math::\n"
-    "    \\mathrm{nbdtr}(k, n, p) = I_{p}(n, k + 1).\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `nbdtr`.\n"
-    "\n"
-    "The negative binomial distribution is also available as\n"
-    "`scipy.stats.nbinom`. Using `nbdtr` directly can improve performance\n"
-    "compared to the ``cdf`` method of `scipy.stats.nbinom` (see last example).\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Compute the function for ``k=10`` and ``n=5`` at ``p=0.5``.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import nbdtr\n"
-    ">>> nbdtr(10, 5, 0.5)\n"
-    "0.940765380859375\n"
-    "\n"
-    "Compute the function for ``n=10`` and ``p=0.5`` at several points by\n"
-    "providing a NumPy array or list for `k`.\n"
-    "\n"
-    ">>> nbdtr([5, 10, 15], 10, 0.5)\n"
-    "array([0.15087891, 0.58809853, 0.88523853])\n"
-    "\n"
-    "Plot the function for four different parameter sets.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> k = np.arange(130)\n"
-    ">>> n_parameters = [20, 20, 20, 80]\n"
-    ">>> p_parameters = [0.2, 0.5, 0.8, 0.5]\n"
-    ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
-    ">>> parameters_list = list(zip(p_parameters, n_parameters,\n"
-    "...                            linestyles))\n"
-    ">>> fig, ax = plt.subplots(figsize=(8, 8))\n"
-    ">>> for parameter_set in parameters_list:\n"
-    "...     p, n, style = parameter_set\n"
-    "...     nbdtr_vals = nbdtr(k, n, p)\n"
-    "...     ax.plot(k, nbdtr_vals, label=rf\"$n={n},\\, p={p}$\",\n"
-    "...             ls=style)\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_xlabel(\"$k$\")\n"
-    ">>> ax.set_title(\"Negative binomial cumulative distribution function\")\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The negative binomial distribution is also available as\n"
-    "`scipy.stats.nbinom`. Using `nbdtr` directly can be much faster than\n"
-    "calling the ``cdf`` method of `scipy.stats.nbinom`, especially for small\n"
-    "arrays or individual values. To get the same results one must use the\n"
-    "following parametrization: ``nbinom(n, p).cdf(k)=nbdtr(k, n, p)``.\n"
-    "\n"
-    ">>> from scipy.stats import nbinom\n"
-    ">>> k, n, p = 5, 3, 0.5\n"
-    ">>> nbdtr_res = nbdtr(k, n, p)  # this will often be faster than below\n"
-    ">>> stats_res = nbinom(n, p).cdf(k)\n"
-    ">>> stats_res, nbdtr_res  # test that results are equal\n"
-    "(0.85546875, 0.85546875)\n"
-    "\n"
-    "`nbdtr` can evaluate different parameter sets by providing arrays with\n"
-    "shapes compatible for broadcasting for `k`, `n` and `p`. Here we compute\n"
-    "the function for three different `k` at four locations `p`, resulting in\n"
-    "a 3x4 array.\n"
-    "\n"
-    ">>> k = np.array([[5], [10], [15]])\n"
-    ">>> p = np.array([0.3, 0.5, 0.7, 0.9])\n"
-    ">>> k.shape, p.shape\n"
-    "((3, 1), (4,))\n"
-    "\n"
-    ">>> nbdtr(k, 5, p)\n"
-    "array([[0.15026833, 0.62304687, 0.95265101, 0.9998531 ],\n"
-    "       [0.48450894, 0.94076538, 0.99932777, 0.99999999],\n"
-    "       [0.76249222, 0.99409103, 0.99999445, 1.        ]])")
-ufunc_nbdtr_loops[0] = loop_d_ppd__As_ppd_d
-ufunc_nbdtr_loops[1] = loop_d_ddd__As_fff_f
-ufunc_nbdtr_loops[2] = loop_d_ddd__As_ddd_d
-ufunc_nbdtr_types[0] = NPY_INTP
-ufunc_nbdtr_types[1] = NPY_INTP
-ufunc_nbdtr_types[2] = NPY_DOUBLE
-ufunc_nbdtr_types[3] = NPY_DOUBLE
-ufunc_nbdtr_types[4] = NPY_FLOAT
-ufunc_nbdtr_types[5] = NPY_FLOAT
-ufunc_nbdtr_types[6] = NPY_FLOAT
-ufunc_nbdtr_types[7] = NPY_FLOAT
-ufunc_nbdtr_types[8] = NPY_DOUBLE
-ufunc_nbdtr_types[9] = NPY_DOUBLE
-ufunc_nbdtr_types[10] = NPY_DOUBLE
-ufunc_nbdtr_types[11] = NPY_DOUBLE
-ufunc_nbdtr_ptr[2*0] = _func_cephes_nbdtr_wrap
-ufunc_nbdtr_ptr[2*0+1] = ("nbdtr")
-ufunc_nbdtr_ptr[2*1] = _func_nbdtr_unsafe
-ufunc_nbdtr_ptr[2*1+1] = ("nbdtr")
-ufunc_nbdtr_ptr[2*2] = _func_nbdtr_unsafe
-ufunc_nbdtr_ptr[2*2+1] = ("nbdtr")
-ufunc_nbdtr_data[0] = &ufunc_nbdtr_ptr[2*0]
-ufunc_nbdtr_data[1] = &ufunc_nbdtr_ptr[2*1]
-ufunc_nbdtr_data[2] = &ufunc_nbdtr_ptr[2*2]
-nbdtr = np.PyUFunc_FromFuncAndData(ufunc_nbdtr_loops, ufunc_nbdtr_data, ufunc_nbdtr_types, 3, 3, 1, 0, "nbdtr", ufunc_nbdtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nbdtrc_loops[3]
-cdef void *ufunc_nbdtrc_ptr[6]
-cdef void *ufunc_nbdtrc_data[3]
-cdef char ufunc_nbdtrc_types[12]
-cdef char *ufunc_nbdtrc_doc = (
-    "nbdtrc(k, n, p, out=None)\n"
-    "\n"
-    "Negative binomial survival function.\n"
-    "\n"
-    "Returns the sum of the terms `k + 1` to infinity of the negative binomial\n"
-    "distribution probability mass function,\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    F = \\sum_{j=k + 1}^\\infty {{n + j - 1}\\choose{j}} p^n (1 - p)^j.\n"
-    "\n"
-    "In a sequence of Bernoulli trials with individual success probabilities\n"
-    "`p`, this is the probability that more than `k` failures precede the nth\n"
-    "success.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    The maximum number of allowed failures (nonnegative int).\n"
-    "n : array_like\n"
-    "    The target number of successes (positive int).\n"
-    "p : array_like\n"
-    "    Probability of success in a single event (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "F : scalar or ndarray\n"
-    "    The probability of `k + 1` or more failures before `n` successes in a\n"
-    "    sequence of events with individual success probability `p`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "nbdtr : Negative binomial cumulative distribution function\n"
-    "nbdtrik : Negative binomial percentile function\n"
-    "scipy.stats.nbinom : Negative binomial distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "If floating point values are passed for `k` or `n`, they will be truncated\n"
-    "to integers.\n"
-    "\n"
-    "The terms are not summed directly; instead the regularized incomplete beta\n"
-    "function is employed, according to the formula,\n"
-    "\n"
-    ".. math::\n"
-    "    \\mathrm{nbdtrc}(k, n, p) = I_{1 - p}(k + 1, n).\n"
-    "\n"
-    "Wrapper for the Cephes [1]_ routine `nbdtrc`.\n"
-    "\n"
-    "The negative binomial distribution is also available as\n"
-    "`scipy.stats.nbinom`. Using `nbdtrc` directly can improve performance\n"
-    "compared to the ``sf`` method of `scipy.stats.nbinom` (see last example).\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Compute the function for ``k=10`` and ``n=5`` at ``p=0.5``.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import nbdtrc\n"
-    ">>> nbdtrc(10, 5, 0.5)\n"
-    "0.059234619140624986\n"
-    "\n"
-    "Compute the function for ``n=10`` and ``p=0.5`` at several points by\n"
-    "providing a NumPy array or list for `k`.\n"
-    "\n"
-    ">>> nbdtrc([5, 10, 15], 10, 0.5)\n"
-    "array([0.84912109, 0.41190147, 0.11476147])\n"
-    "\n"
-    "Plot the function for four different parameter sets.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> k = np.arange(130)\n"
-    ">>> n_parameters = [20, 20, 20, 80]\n"
-    ">>> p_parameters = [0.2, 0.5, 0.8, 0.5]\n"
-    ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
-    ">>> parameters_list = list(zip(p_parameters, n_parameters,\n"
-    "...                            linestyles))\n"
-    ">>> fig, ax = plt.subplots(figsize=(8, 8))\n"
-    ">>> for parameter_set in parameters_list:\n"
-    "...     p, n, style = parameter_set\n"
-    "...     nbdtrc_vals = nbdtrc(k, n, p)\n"
-    "...     ax.plot(k, nbdtrc_vals, label=rf\"$n={n},\\, p={p}$\",\n"
-    "...             ls=style)\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_xlabel(\"$k$\")\n"
-    ">>> ax.set_title(\"Negative binomial distribution survival function\")\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The negative binomial distribution is also available as\n"
-    "`scipy.stats.nbinom`. Using `nbdtrc` directly can be much faster than\n"
-    "calling the ``sf`` method of `scipy.stats.nbinom`, especially for small\n"
-    "arrays or individual values. To get the same results one must use the\n"
-    "following parametrization: ``nbinom(n, p).sf(k)=nbdtrc(k, n, p)``.\n"
-    "\n"
-    ">>> from scipy.stats import nbinom\n"
-    ">>> k, n, p = 3, 5, 0.5\n"
-    ">>> nbdtr_res = nbdtrc(k, n, p)  # this will often be faster than below\n"
-    ">>> stats_res = nbinom(n, p).sf(k)\n"
-    ">>> stats_res, nbdtr_res  # test that results are equal\n"
-    "(0.6367187499999999, 0.6367187499999999)\n"
-    "\n"
-    "`nbdtrc` can evaluate different parameter sets by providing arrays with\n"
-    "shapes compatible for broadcasting for `k`, `n` and `p`. Here we compute\n"
-    "the function for three different `k` at four locations `p`, resulting in\n"
-    "a 3x4 array.\n"
-    "\n"
-    ">>> k = np.array([[5], [10], [15]])\n"
-    ">>> p = np.array([0.3, 0.5, 0.7, 0.9])\n"
-    ">>> k.shape, p.shape\n"
-    "((3, 1), (4,))\n"
-    "\n"
-    ">>> nbdtrc(k, 5, p)\n"
-    "array([[8.49731667e-01, 3.76953125e-01, 4.73489874e-02, 1.46902600e-04],\n"
-    "       [5.15491059e-01, 5.92346191e-02, 6.72234070e-04, 9.29610100e-09],\n"
-    "       [2.37507779e-01, 5.90896606e-03, 5.55025308e-06, 3.26346760e-13]])")
-ufunc_nbdtrc_loops[0] = loop_d_ppd__As_ppd_d
-ufunc_nbdtrc_loops[1] = loop_d_ddd__As_fff_f
-ufunc_nbdtrc_loops[2] = loop_d_ddd__As_ddd_d
-ufunc_nbdtrc_types[0] = NPY_INTP
-ufunc_nbdtrc_types[1] = NPY_INTP
-ufunc_nbdtrc_types[2] = NPY_DOUBLE
-ufunc_nbdtrc_types[3] = NPY_DOUBLE
-ufunc_nbdtrc_types[4] = NPY_FLOAT
-ufunc_nbdtrc_types[5] = NPY_FLOAT
-ufunc_nbdtrc_types[6] = NPY_FLOAT
-ufunc_nbdtrc_types[7] = NPY_FLOAT
-ufunc_nbdtrc_types[8] = NPY_DOUBLE
-ufunc_nbdtrc_types[9] = NPY_DOUBLE
-ufunc_nbdtrc_types[10] = NPY_DOUBLE
-ufunc_nbdtrc_types[11] = NPY_DOUBLE
-ufunc_nbdtrc_ptr[2*0] = _func_cephes_nbdtrc_wrap
-ufunc_nbdtrc_ptr[2*0+1] = ("nbdtrc")
-ufunc_nbdtrc_ptr[2*1] = _func_nbdtrc_unsafe
-ufunc_nbdtrc_ptr[2*1+1] = ("nbdtrc")
-ufunc_nbdtrc_ptr[2*2] = _func_nbdtrc_unsafe
-ufunc_nbdtrc_ptr[2*2+1] = ("nbdtrc")
-ufunc_nbdtrc_data[0] = &ufunc_nbdtrc_ptr[2*0]
-ufunc_nbdtrc_data[1] = &ufunc_nbdtrc_ptr[2*1]
-ufunc_nbdtrc_data[2] = &ufunc_nbdtrc_ptr[2*2]
-nbdtrc = np.PyUFunc_FromFuncAndData(ufunc_nbdtrc_loops, ufunc_nbdtrc_data, ufunc_nbdtrc_types, 3, 3, 1, 0, "nbdtrc", ufunc_nbdtrc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nbdtri_loops[3]
-cdef void *ufunc_nbdtri_ptr[6]
-cdef void *ufunc_nbdtri_data[3]
-cdef char ufunc_nbdtri_types[12]
-cdef char *ufunc_nbdtri_doc = (
-    "nbdtri(k, n, y, out=None)\n"
-    "\n"
-    "Returns the inverse with respect to the parameter `p` of\n"
-    "`y = nbdtr(k, n, p)`, the negative binomial cumulative distribution\n"
-    "function.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    The maximum number of allowed failures (nonnegative int).\n"
-    "n : array_like\n"
-    "    The target number of successes (positive int).\n"
-    "y : array_like\n"
-    "    The probability of `k` or fewer failures before `n` successes (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "p : scalar or ndarray\n"
-    "    Probability of success in a single event (float) such that\n"
-    "    `nbdtr(k, n, p) = y`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "nbdtr : Cumulative distribution function of the negative binomial.\n"
-    "nbdtrc : Negative binomial survival function.\n"
-    "scipy.stats.nbinom : negative binomial distribution.\n"
-    "nbdtrik : Inverse with respect to `k` of `nbdtr(k, n, p)`.\n"
-    "nbdtrin : Inverse with respect to `n` of `nbdtr(k, n, p)`.\n"
-    "scipy.stats.nbinom : Negative binomial distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the Cephes [1]_ routine `nbdtri`.\n"
-    "\n"
-    "The negative binomial distribution is also available as\n"
-    "`scipy.stats.nbinom`. Using `nbdtri` directly can improve performance\n"
-    "compared to the ``ppf`` method of `scipy.stats.nbinom`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "`nbdtri` is the inverse of `nbdtr` with respect to `p`.\n"
-    "Up to floating point errors the following holds:\n"
-    "``nbdtri(k, n, nbdtr(k, n, p))=p``.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import nbdtri, nbdtr\n"
-    ">>> k, n, y = 5, 10, 0.2\n"
-    ">>> cdf_val = nbdtr(k, n, y)\n"
-    ">>> nbdtri(k, n, cdf_val)\n"
-    "0.20000000000000004\n"
-    "\n"
-    "Compute the function for ``k=10`` and ``n=5`` at several points by\n"
-    "providing a NumPy array or list for `y`.\n"
-    "\n"
-    ">>> y = np.array([0.1, 0.4, 0.8])\n"
-    ">>> nbdtri(3, 5, y)\n"
-    "array([0.34462319, 0.51653095, 0.69677416])\n"
-    "\n"
-    "Plot the function for three different parameter sets.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> n_parameters = [5, 20, 30, 30]\n"
-    ">>> k_parameters = [20, 20, 60, 80]\n"
-    ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
-    ">>> parameters_list = list(zip(n_parameters, k_parameters, linestyles))\n"
-    ">>> cdf_vals = np.linspace(0, 1, 1000)\n"
-    ">>> fig, ax = plt.subplots(figsize=(8, 8))\n"
-    ">>> for parameter_set in parameters_list:\n"
-    "...     n, k, style = parameter_set\n"
-    "...     nbdtri_vals = nbdtri(k, n, cdf_vals)\n"
-    "...     ax.plot(cdf_vals, nbdtri_vals, label=rf\"$k={k},\\ n={n}$\",\n"
-    "...             ls=style)\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_ylabel(\"$p$\")\n"
-    ">>> ax.set_xlabel(\"$CDF$\")\n"
-    ">>> title = \"nbdtri: inverse of negative binomial CDF with respect to $p$\"\n"
-    ">>> ax.set_title(title)\n"
-    ">>> plt.show()\n"
-    "\n"
-    "`nbdtri` can evaluate different parameter sets by providing arrays with\n"
-    "shapes compatible for broadcasting for `k`, `n` and `p`. Here we compute\n"
-    "the function for three different `k` at four locations `p`, resulting in\n"
-    "a 3x4 array.\n"
-    "\n"
-    ">>> k = np.array([[5], [10], [15]])\n"
-    ">>> y = np.array([0.3, 0.5, 0.7, 0.9])\n"
-    ">>> k.shape, y.shape\n"
-    "((3, 1), (4,))\n"
-    "\n"
-    ">>> nbdtri(k, 5, y)\n"
-    "array([[0.37258157, 0.45169416, 0.53249956, 0.64578407],\n"
-    "       [0.24588501, 0.30451981, 0.36778453, 0.46397088],\n"
-    "       [0.18362101, 0.22966758, 0.28054743, 0.36066188]])")
-ufunc_nbdtri_loops[0] = loop_d_ppd__As_ppd_d
-ufunc_nbdtri_loops[1] = loop_d_ddd__As_fff_f
-ufunc_nbdtri_loops[2] = loop_d_ddd__As_ddd_d
-ufunc_nbdtri_types[0] = NPY_INTP
-ufunc_nbdtri_types[1] = NPY_INTP
-ufunc_nbdtri_types[2] = NPY_DOUBLE
-ufunc_nbdtri_types[3] = NPY_DOUBLE
-ufunc_nbdtri_types[4] = NPY_FLOAT
-ufunc_nbdtri_types[5] = NPY_FLOAT
-ufunc_nbdtri_types[6] = NPY_FLOAT
-ufunc_nbdtri_types[7] = NPY_FLOAT
-ufunc_nbdtri_types[8] = NPY_DOUBLE
-ufunc_nbdtri_types[9] = NPY_DOUBLE
-ufunc_nbdtri_types[10] = NPY_DOUBLE
-ufunc_nbdtri_types[11] = NPY_DOUBLE
-ufunc_nbdtri_ptr[2*0] = _func_cephes_nbdtri_wrap
-ufunc_nbdtri_ptr[2*0+1] = ("nbdtri")
-ufunc_nbdtri_ptr[2*1] = _func_nbdtri_unsafe
-ufunc_nbdtri_ptr[2*1+1] = ("nbdtri")
-ufunc_nbdtri_ptr[2*2] = _func_nbdtri_unsafe
-ufunc_nbdtri_ptr[2*2+1] = ("nbdtri")
-ufunc_nbdtri_data[0] = &ufunc_nbdtri_ptr[2*0]
-ufunc_nbdtri_data[1] = &ufunc_nbdtri_ptr[2*1]
-ufunc_nbdtri_data[2] = &ufunc_nbdtri_ptr[2*2]
-nbdtri = np.PyUFunc_FromFuncAndData(ufunc_nbdtri_loops, ufunc_nbdtri_data, ufunc_nbdtri_types, 3, 3, 1, 0, "nbdtri", ufunc_nbdtri_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nbdtrik_loops[2]
-cdef void *ufunc_nbdtrik_ptr[4]
-cdef void *ufunc_nbdtrik_data[2]
-cdef char ufunc_nbdtrik_types[8]
-cdef char *ufunc_nbdtrik_doc = (
-    "nbdtrik(y, n, p, out=None)\n"
-    "\n"
-    "Negative binomial percentile function.\n"
-    "\n"
-    "Returns the inverse with respect to the parameter `k` of\n"
-    "`y = nbdtr(k, n, p)`, the negative binomial cumulative distribution\n"
-    "function.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "y : array_like\n"
-    "    The probability of `k` or fewer failures before `n` successes (float).\n"
-    "n : array_like\n"
-    "    The target number of successes (positive int).\n"
-    "p : array_like\n"
-    "    Probability of success in a single event (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "k : scalar or ndarray\n"
-    "    The maximum number of allowed failures such that `nbdtr(k, n, p) = y`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "nbdtr : Cumulative distribution function of the negative binomial.\n"
-    "nbdtrc : Survival function of the negative binomial.\n"
-    "nbdtri : Inverse with respect to `p` of `nbdtr(k, n, p)`.\n"
-    "nbdtrin : Inverse with respect to `n` of `nbdtr(k, n, p)`.\n"
-    "scipy.stats.nbinom : Negative binomial distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the CDFLIB [1]_ Fortran routine `cdfnbn`.\n"
-    "\n"
-    "Formula 26.5.26 of [2]_,\n"
-    "\n"
-    ".. math::\n"
-    "    \\sum_{j=k + 1}^\\infty {{n + j - 1}\n"
-    "    \\choose{j}} p^n (1 - p)^j = I_{1 - p}(k + 1, n),\n"
-    "\n"
-    "is used to reduce calculation of the cumulative distribution function to\n"
-    "that of a regularized incomplete beta :math:`I`.\n"
-    "\n"
-    "Computation of `k` involves a search for a value that produces the desired\n"
-    "value of `y`.  The search relies on the monotonicity of `y` with `k`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
-    "       CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
-    "       Functions, Inverses, and Other Parameters.\n"
-    ".. [2] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Compute the negative binomial cumulative distribution function for an\n"
-    "exemplary parameter set.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import nbdtr, nbdtrik\n"
-    ">>> k, n, p = 5, 2, 0.5\n"
-    ">>> cdf_value = nbdtr(k, n, p)\n"
-    ">>> cdf_value\n"
-    "0.9375\n"
-    "\n"
-    "Verify that `nbdtrik` recovers the original value for `k`.\n"
-    "\n"
-    ">>> nbdtrik(cdf_value, n, p)\n"
-    "5.0\n"
-    "\n"
-    "Plot the function for different parameter sets.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> p_parameters = [0.2, 0.5, 0.7, 0.5]\n"
-    ">>> n_parameters = [30, 30, 30, 80]\n"
-    ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
-    ">>> parameters_list = list(zip(p_parameters, n_parameters, linestyles))\n"
-    ">>> cdf_vals = np.linspace(0, 1, 1000)\n"
-    ">>> fig, ax = plt.subplots(figsize=(8, 8))\n"
-    ">>> for parameter_set in parameters_list:\n"
-    "...     p, n, style = parameter_set\n"
-    "...     nbdtrik_vals = nbdtrik(cdf_vals, n, p)\n"
-    "...     ax.plot(cdf_vals, nbdtrik_vals, label=rf\"$n={n},\\ p={p}$\",\n"
-    "...             ls=style)\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_ylabel(\"$k$\")\n"
-    ">>> ax.set_xlabel(\"$CDF$\")\n"
-    ">>> ax.set_title(\"Negative binomial percentile function\")\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The negative binomial distribution is also available as\n"
-    "`scipy.stats.nbinom`. The percentile function  method ``ppf``\n"
-    "returns the result of `nbdtrik` rounded up to integers:\n"
-    "\n"
-    ">>> from scipy.stats import nbinom\n"
-    ">>> q, n, p = 0.6, 5, 0.5\n"
-    ">>> nbinom.ppf(q, n, p), nbdtrik(q, n, p)\n"
-    "(5.0, 4.800428460273882)")
-ufunc_nbdtrik_loops[0] = loop_d_ddd__As_fff_f
-ufunc_nbdtrik_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_nbdtrik_types[0] = NPY_FLOAT
-ufunc_nbdtrik_types[1] = NPY_FLOAT
-ufunc_nbdtrik_types[2] = NPY_FLOAT
-ufunc_nbdtrik_types[3] = NPY_FLOAT
-ufunc_nbdtrik_types[4] = NPY_DOUBLE
-ufunc_nbdtrik_types[5] = NPY_DOUBLE
-ufunc_nbdtrik_types[6] = NPY_DOUBLE
-ufunc_nbdtrik_types[7] = NPY_DOUBLE
-ufunc_nbdtrik_ptr[2*0] = _func_nbdtrik
-ufunc_nbdtrik_ptr[2*0+1] = ("nbdtrik")
-ufunc_nbdtrik_ptr[2*1] = _func_nbdtrik
-ufunc_nbdtrik_ptr[2*1+1] = ("nbdtrik")
-ufunc_nbdtrik_data[0] = &ufunc_nbdtrik_ptr[2*0]
-ufunc_nbdtrik_data[1] = &ufunc_nbdtrik_ptr[2*1]
-nbdtrik = np.PyUFunc_FromFuncAndData(ufunc_nbdtrik_loops, ufunc_nbdtrik_data, ufunc_nbdtrik_types, 2, 3, 1, 0, "nbdtrik", ufunc_nbdtrik_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nbdtrin_loops[2]
-cdef void *ufunc_nbdtrin_ptr[4]
-cdef void *ufunc_nbdtrin_data[2]
-cdef char ufunc_nbdtrin_types[8]
-cdef char *ufunc_nbdtrin_doc = (
-    "nbdtrin(k, y, p, out=None)\n"
-    "\n"
-    "Inverse of `nbdtr` vs `n`.\n"
-    "\n"
-    "Returns the inverse with respect to the parameter `n` of\n"
-    "`y = nbdtr(k, n, p)`, the negative binomial cumulative distribution\n"
-    "function.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    The maximum number of allowed failures (nonnegative int).\n"
-    "y : array_like\n"
-    "    The probability of `k` or fewer failures before `n` successes (float).\n"
-    "p : array_like\n"
-    "    Probability of success in a single event (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "n : scalar or ndarray\n"
-    "    The number of successes `n` such that `nbdtr(k, n, p) = y`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "nbdtr : Cumulative distribution function of the negative binomial.\n"
-    "nbdtri : Inverse with respect to `p` of `nbdtr(k, n, p)`.\n"
-    "nbdtrik : Inverse with respect to `k` of `nbdtr(k, n, p)`.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the CDFLIB [1]_ Fortran routine `cdfnbn`.\n"
-    "\n"
-    "Formula 26.5.26 of [2]_,\n"
-    "\n"
-    ".. math::\n"
-    "    \\sum_{j=k + 1}^\\infty {{n + j - 1}\n"
-    "    \\choose{j}} p^n (1 - p)^j = I_{1 - p}(k + 1, n),\n"
-    "\n"
-    "is used to reduce calculation of the cumulative distribution function to\n"
-    "that of a regularized incomplete beta :math:`I`.\n"
-    "\n"
-    "Computation of `n` involves a search for a value that produces the desired\n"
-    "value of `y`.  The search relies on the monotonicity of `y` with `n`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
-    "       CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
-    "       Functions, Inverses, and Other Parameters.\n"
-    ".. [2] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Compute the negative binomial cumulative distribution function for an\n"
-    "exemplary parameter set.\n"
-    "\n"
-    ">>> from scipy.special import nbdtr, nbdtrin\n"
-    ">>> k, n, p = 5, 2, 0.5\n"
-    ">>> cdf_value = nbdtr(k, n, p)\n"
-    ">>> cdf_value\n"
-    "0.9375\n"
-    "\n"
-    "Verify that `nbdtrin` recovers the original value for `n` up to floating\n"
-    "point accuracy.\n"
-    "\n"
-    ">>> nbdtrin(k, cdf_value, p)\n"
-    "1.999999999998137")
-ufunc_nbdtrin_loops[0] = loop_d_ddd__As_fff_f
-ufunc_nbdtrin_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_nbdtrin_types[0] = NPY_FLOAT
-ufunc_nbdtrin_types[1] = NPY_FLOAT
-ufunc_nbdtrin_types[2] = NPY_FLOAT
-ufunc_nbdtrin_types[3] = NPY_FLOAT
-ufunc_nbdtrin_types[4] = NPY_DOUBLE
-ufunc_nbdtrin_types[5] = NPY_DOUBLE
-ufunc_nbdtrin_types[6] = NPY_DOUBLE
-ufunc_nbdtrin_types[7] = NPY_DOUBLE
-ufunc_nbdtrin_ptr[2*0] = _func_nbdtrin
-ufunc_nbdtrin_ptr[2*0+1] = ("nbdtrin")
-ufunc_nbdtrin_ptr[2*1] = _func_nbdtrin
-ufunc_nbdtrin_ptr[2*1+1] = ("nbdtrin")
-ufunc_nbdtrin_data[0] = &ufunc_nbdtrin_ptr[2*0]
-ufunc_nbdtrin_data[1] = &ufunc_nbdtrin_ptr[2*1]
-nbdtrin = np.PyUFunc_FromFuncAndData(ufunc_nbdtrin_loops, ufunc_nbdtrin_data, ufunc_nbdtrin_types, 2, 3, 1, 0, "nbdtrin", ufunc_nbdtrin_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ncfdtr_loops[2]
-cdef void *ufunc_ncfdtr_ptr[4]
-cdef void *ufunc_ncfdtr_data[2]
-cdef char ufunc_ncfdtr_types[10]
-cdef char *ufunc_ncfdtr_doc = (
-    "ncfdtr(dfn, dfd, nc, f, out=None)\n"
-    "\n"
-    "Cumulative distribution function of the non-central F distribution.\n"
-    "\n"
-    "The non-central F describes the distribution of,\n"
-    "\n"
-    ".. math::\n"
-    "    Z = \\frac{X/d_n}{Y/d_d}\n"
-    "\n"
-    "where :math:`X` and :math:`Y` are independently distributed, with\n"
-    ":math:`X` distributed non-central :math:`\\chi^2` with noncentrality\n"
-    "parameter `nc` and :math:`d_n` degrees of freedom, and :math:`Y`\n"
-    "distributed :math:`\\chi^2` with :math:`d_d` degrees of freedom.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "dfn : array_like\n"
-    "    Degrees of freedom of the numerator sum of squares.  Range (0, inf).\n"
-    "dfd : array_like\n"
-    "    Degrees of freedom of the denominator sum of squares.  Range (0, inf).\n"
-    "nc : array_like\n"
-    "    Noncentrality parameter.  Should be in range (0, 1e4).\n"
-    "f : array_like\n"
-    "    Quantiles, i.e. the upper limit of integration.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "cdf : scalar or ndarray\n"
-    "    The calculated CDF.  If all inputs are scalar, the return will be a\n"
-    "    float.  Otherwise it will be an array.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.\n"
-    "ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.\n"
-    "ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.\n"
-    "ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the CDFLIB [1]_ Fortran routine `cdffnc`.\n"
-    "\n"
-    "The cumulative distribution function is computed using Formula 26.6.20 of\n"
-    "[2]_:\n"
-    "\n"
-    ".. math::\n"
-    "    F(d_n, d_d, n_c, f) = \\sum_{j=0}^\\infty e^{-n_c/2}\n"
-    "    \\frac{(n_c/2)^j}{j!} I_{x}(\\frac{d_n}{2} + j, \\frac{d_d}{2}),\n"
-    "\n"
-    "where :math:`I` is the regularized incomplete beta function, and\n"
-    ":math:`x = f d_n/(f d_n + d_d)`.\n"
-    "\n"
-    "The computation time required for this routine is proportional to the\n"
-    "noncentrality parameter `nc`.  Very large values of this parameter can\n"
-    "consume immense computer resources.  This is why the search range is\n"
-    "bounded by 10,000.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
-    "       CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
-    "       Functions, Inverses, and Other Parameters.\n"
-    ".. [2] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy import special\n"
-    ">>> from scipy import stats\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    "\n"
-    "Plot the CDF of the non-central F distribution, for nc=0.  Compare with the\n"
-    "F-distribution from scipy.stats:\n"
-    "\n"
-    ">>> x = np.linspace(-1, 8, num=500)\n"
-    ">>> dfn = 3\n"
-    ">>> dfd = 2\n"
-    ">>> ncf_stats = stats.f.cdf(x, dfn, dfd)\n"
-    ">>> ncf_special = special.ncfdtr(dfn, dfd, 0, x)\n"
-    "\n"
-    ">>> fig = plt.figure()\n"
-    ">>> ax = fig.add_subplot(111)\n"
-    ">>> ax.plot(x, ncf_stats, 'b-', lw=3)\n"
-    ">>> ax.plot(x, ncf_special, 'r-')\n"
-    ">>> plt.show()")
-ufunc_ncfdtr_loops[0] = loop_d_dddd__As_ffff_f
-ufunc_ncfdtr_loops[1] = loop_d_dddd__As_dddd_d
-ufunc_ncfdtr_types[0] = NPY_FLOAT
-ufunc_ncfdtr_types[1] = NPY_FLOAT
-ufunc_ncfdtr_types[2] = NPY_FLOAT
-ufunc_ncfdtr_types[3] = NPY_FLOAT
-ufunc_ncfdtr_types[4] = NPY_FLOAT
-ufunc_ncfdtr_types[5] = NPY_DOUBLE
-ufunc_ncfdtr_types[6] = NPY_DOUBLE
-ufunc_ncfdtr_types[7] = NPY_DOUBLE
-ufunc_ncfdtr_types[8] = NPY_DOUBLE
-ufunc_ncfdtr_types[9] = NPY_DOUBLE
-ufunc_ncfdtr_ptr[2*0] = _func_ncfdtr
-ufunc_ncfdtr_ptr[2*0+1] = ("ncfdtr")
-ufunc_ncfdtr_ptr[2*1] = _func_ncfdtr
-ufunc_ncfdtr_ptr[2*1+1] = ("ncfdtr")
-ufunc_ncfdtr_data[0] = &ufunc_ncfdtr_ptr[2*0]
-ufunc_ncfdtr_data[1] = &ufunc_ncfdtr_ptr[2*1]
-ncfdtr = np.PyUFunc_FromFuncAndData(ufunc_ncfdtr_loops, ufunc_ncfdtr_data, ufunc_ncfdtr_types, 2, 4, 1, 0, "ncfdtr", ufunc_ncfdtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ncfdtri_loops[2]
-cdef void *ufunc_ncfdtri_ptr[4]
-cdef void *ufunc_ncfdtri_data[2]
-cdef char ufunc_ncfdtri_types[10]
-cdef char *ufunc_ncfdtri_doc = (
-    "ncfdtri(dfn, dfd, nc, p, out=None)\n"
-    "\n"
-    "Inverse with respect to `f` of the CDF of the non-central F distribution.\n"
-    "\n"
-    "See `ncfdtr` for more details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "dfn : array_like\n"
-    "    Degrees of freedom of the numerator sum of squares.  Range (0, inf).\n"
-    "dfd : array_like\n"
-    "    Degrees of freedom of the denominator sum of squares.  Range (0, inf).\n"
-    "nc : array_like\n"
-    "    Noncentrality parameter.  Should be in range (0, 1e4).\n"
-    "p : array_like\n"
-    "    Value of the cumulative distribution function.  Must be in the\n"
-    "    range [0, 1].\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "f : scalar or ndarray\n"
-    "    Quantiles, i.e., the upper limit of integration.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ncfdtr : CDF of the non-central F distribution.\n"
-    "ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.\n"
-    "ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.\n"
-    "ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import ncfdtr, ncfdtri\n"
-    "\n"
-    "Compute the CDF for several values of `f`:\n"
-    "\n"
-    ">>> f = [0.5, 1, 1.5]\n"
-    ">>> p = ncfdtr(2, 3, 1.5, f)\n"
-    ">>> p\n"
-    "array([ 0.20782291,  0.36107392,  0.47345752])\n"
-    "\n"
-    "Compute the inverse.  We recover the values of `f`, as expected:\n"
-    "\n"
-    ">>> ncfdtri(2, 3, 1.5, p)\n"
-    "array([ 0.5,  1. ,  1.5])")
-ufunc_ncfdtri_loops[0] = loop_d_dddd__As_ffff_f
-ufunc_ncfdtri_loops[1] = loop_d_dddd__As_dddd_d
-ufunc_ncfdtri_types[0] = NPY_FLOAT
-ufunc_ncfdtri_types[1] = NPY_FLOAT
-ufunc_ncfdtri_types[2] = NPY_FLOAT
-ufunc_ncfdtri_types[3] = NPY_FLOAT
-ufunc_ncfdtri_types[4] = NPY_FLOAT
-ufunc_ncfdtri_types[5] = NPY_DOUBLE
-ufunc_ncfdtri_types[6] = NPY_DOUBLE
-ufunc_ncfdtri_types[7] = NPY_DOUBLE
-ufunc_ncfdtri_types[8] = NPY_DOUBLE
-ufunc_ncfdtri_types[9] = NPY_DOUBLE
-ufunc_ncfdtri_ptr[2*0] = _func_ncfdtri
-ufunc_ncfdtri_ptr[2*0+1] = ("ncfdtri")
-ufunc_ncfdtri_ptr[2*1] = _func_ncfdtri
-ufunc_ncfdtri_ptr[2*1+1] = ("ncfdtri")
-ufunc_ncfdtri_data[0] = &ufunc_ncfdtri_ptr[2*0]
-ufunc_ncfdtri_data[1] = &ufunc_ncfdtri_ptr[2*1]
-ncfdtri = np.PyUFunc_FromFuncAndData(ufunc_ncfdtri_loops, ufunc_ncfdtri_data, ufunc_ncfdtri_types, 2, 4, 1, 0, "ncfdtri", ufunc_ncfdtri_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ncfdtridfd_loops[2]
-cdef void *ufunc_ncfdtridfd_ptr[4]
-cdef void *ufunc_ncfdtridfd_data[2]
-cdef char ufunc_ncfdtridfd_types[10]
-cdef char *ufunc_ncfdtridfd_doc = (
-    "ncfdtridfd(dfn, p, nc, f, out=None)\n"
-    "\n"
-    "Calculate degrees of freedom (denominator) for the noncentral F-distribution.\n"
-    "\n"
-    "This is the inverse with respect to `dfd` of `ncfdtr`.\n"
-    "See `ncfdtr` for more details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "dfn : array_like\n"
-    "    Degrees of freedom of the numerator sum of squares.  Range (0, inf).\n"
-    "p : array_like\n"
-    "    Value of the cumulative distribution function.  Must be in the\n"
-    "    range [0, 1].\n"
-    "nc : array_like\n"
-    "    Noncentrality parameter.  Should be in range (0, 1e4).\n"
-    "f : array_like\n"
-    "    Quantiles, i.e., the upper limit of integration.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "dfd : scalar or ndarray\n"
-    "    Degrees of freedom of the denominator sum of squares.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ncfdtr : CDF of the non-central F distribution.\n"
-    "ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.\n"
-    "ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.\n"
-    "ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The value of the cumulative noncentral F distribution is not necessarily\n"
-    "monotone in either degrees of freedom. There thus may be two values that\n"
-    "provide a given CDF value. This routine assumes monotonicity and will\n"
-    "find an arbitrary one of the two values.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import ncfdtr, ncfdtridfd\n"
-    "\n"
-    "Compute the CDF for several values of `dfd`:\n"
-    "\n"
-    ">>> dfd = [1, 2, 3]\n"
-    ">>> p = ncfdtr(2, dfd, 0.25, 15)\n"
-    ">>> p\n"
-    "array([ 0.8097138 ,  0.93020416,  0.96787852])\n"
-    "\n"
-    "Compute the inverse.  We recover the values of `dfd`, as expected:\n"
-    "\n"
-    ">>> ncfdtridfd(2, p, 0.25, 15)\n"
-    "array([ 1.,  2.,  3.])")
-ufunc_ncfdtridfd_loops[0] = loop_d_dddd__As_ffff_f
-ufunc_ncfdtridfd_loops[1] = loop_d_dddd__As_dddd_d
-ufunc_ncfdtridfd_types[0] = NPY_FLOAT
-ufunc_ncfdtridfd_types[1] = NPY_FLOAT
-ufunc_ncfdtridfd_types[2] = NPY_FLOAT
-ufunc_ncfdtridfd_types[3] = NPY_FLOAT
-ufunc_ncfdtridfd_types[4] = NPY_FLOAT
-ufunc_ncfdtridfd_types[5] = NPY_DOUBLE
-ufunc_ncfdtridfd_types[6] = NPY_DOUBLE
-ufunc_ncfdtridfd_types[7] = NPY_DOUBLE
-ufunc_ncfdtridfd_types[8] = NPY_DOUBLE
-ufunc_ncfdtridfd_types[9] = NPY_DOUBLE
-ufunc_ncfdtridfd_ptr[2*0] = _func_ncfdtridfd
-ufunc_ncfdtridfd_ptr[2*0+1] = ("ncfdtridfd")
-ufunc_ncfdtridfd_ptr[2*1] = _func_ncfdtridfd
-ufunc_ncfdtridfd_ptr[2*1+1] = ("ncfdtridfd")
-ufunc_ncfdtridfd_data[0] = &ufunc_ncfdtridfd_ptr[2*0]
-ufunc_ncfdtridfd_data[1] = &ufunc_ncfdtridfd_ptr[2*1]
-ncfdtridfd = np.PyUFunc_FromFuncAndData(ufunc_ncfdtridfd_loops, ufunc_ncfdtridfd_data, ufunc_ncfdtridfd_types, 2, 4, 1, 0, "ncfdtridfd", ufunc_ncfdtridfd_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ncfdtridfn_loops[2]
-cdef void *ufunc_ncfdtridfn_ptr[4]
-cdef void *ufunc_ncfdtridfn_data[2]
-cdef char ufunc_ncfdtridfn_types[10]
-cdef char *ufunc_ncfdtridfn_doc = (
-    "ncfdtridfn(p, dfd, nc, f, out=None)\n"
-    "\n"
-    "Calculate degrees of freedom (numerator) for the noncentral F-distribution.\n"
-    "\n"
-    "This is the inverse with respect to `dfn` of `ncfdtr`.\n"
-    "See `ncfdtr` for more details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    Value of the cumulative distribution function. Must be in the\n"
-    "    range [0, 1].\n"
-    "dfd : array_like\n"
-    "    Degrees of freedom of the denominator sum of squares. Range (0, inf).\n"
-    "nc : array_like\n"
-    "    Noncentrality parameter.  Should be in range (0, 1e4).\n"
-    "f : float\n"
-    "    Quantiles, i.e., the upper limit of integration.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "dfn : scalar or ndarray\n"
-    "    Degrees of freedom of the numerator sum of squares.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ncfdtr : CDF of the non-central F distribution.\n"
-    "ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.\n"
-    "ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.\n"
-    "ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The value of the cumulative noncentral F distribution is not necessarily\n"
-    "monotone in either degrees of freedom. There thus may be two values that\n"
-    "provide a given CDF value. This routine assumes monotonicity and will\n"
-    "find an arbitrary one of the two values.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import ncfdtr, ncfdtridfn\n"
-    "\n"
-    "Compute the CDF for several values of `dfn`:\n"
-    "\n"
-    ">>> dfn = [1, 2, 3]\n"
-    ">>> p = ncfdtr(dfn, 2, 0.25, 15)\n"
-    ">>> p\n"
-    "array([ 0.92562363,  0.93020416,  0.93188394])\n"
-    "\n"
-    "Compute the inverse. We recover the values of `dfn`, as expected:\n"
-    "\n"
-    ">>> ncfdtridfn(p, 2, 0.25, 15)\n"
-    "array([ 1.,  2.,  3.])")
-ufunc_ncfdtridfn_loops[0] = loop_d_dddd__As_ffff_f
-ufunc_ncfdtridfn_loops[1] = loop_d_dddd__As_dddd_d
-ufunc_ncfdtridfn_types[0] = NPY_FLOAT
-ufunc_ncfdtridfn_types[1] = NPY_FLOAT
-ufunc_ncfdtridfn_types[2] = NPY_FLOAT
-ufunc_ncfdtridfn_types[3] = NPY_FLOAT
-ufunc_ncfdtridfn_types[4] = NPY_FLOAT
-ufunc_ncfdtridfn_types[5] = NPY_DOUBLE
-ufunc_ncfdtridfn_types[6] = NPY_DOUBLE
-ufunc_ncfdtridfn_types[7] = NPY_DOUBLE
-ufunc_ncfdtridfn_types[8] = NPY_DOUBLE
-ufunc_ncfdtridfn_types[9] = NPY_DOUBLE
-ufunc_ncfdtridfn_ptr[2*0] = _func_ncfdtridfn
-ufunc_ncfdtridfn_ptr[2*0+1] = ("ncfdtridfn")
-ufunc_ncfdtridfn_ptr[2*1] = _func_ncfdtridfn
-ufunc_ncfdtridfn_ptr[2*1+1] = ("ncfdtridfn")
-ufunc_ncfdtridfn_data[0] = &ufunc_ncfdtridfn_ptr[2*0]
-ufunc_ncfdtridfn_data[1] = &ufunc_ncfdtridfn_ptr[2*1]
-ncfdtridfn = np.PyUFunc_FromFuncAndData(ufunc_ncfdtridfn_loops, ufunc_ncfdtridfn_data, ufunc_ncfdtridfn_types, 2, 4, 1, 0, "ncfdtridfn", ufunc_ncfdtridfn_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ncfdtrinc_loops[2]
-cdef void *ufunc_ncfdtrinc_ptr[4]
-cdef void *ufunc_ncfdtrinc_data[2]
-cdef char ufunc_ncfdtrinc_types[10]
-cdef char *ufunc_ncfdtrinc_doc = (
-    "ncfdtrinc(dfn, dfd, p, f, out=None)\n"
-    "\n"
-    "Calculate non-centrality parameter for non-central F distribution.\n"
-    "\n"
-    "This is the inverse with respect to `nc` of `ncfdtr`.\n"
-    "See `ncfdtr` for more details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "dfn : array_like\n"
-    "    Degrees of freedom of the numerator sum of squares. Range (0, inf).\n"
-    "dfd : array_like\n"
-    "    Degrees of freedom of the denominator sum of squares. Range (0, inf).\n"
-    "p : array_like\n"
-    "    Value of the cumulative distribution function. Must be in the\n"
-    "    range [0, 1].\n"
-    "f : array_like\n"
-    "    Quantiles, i.e., the upper limit of integration.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "nc : scalar or ndarray\n"
-    "    Noncentrality parameter.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ncfdtr : CDF of the non-central F distribution.\n"
-    "ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.\n"
-    "ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.\n"
-    "ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import ncfdtr, ncfdtrinc\n"
-    "\n"
-    "Compute the CDF for several values of `nc`:\n"
-    "\n"
-    ">>> nc = [0.5, 1.5, 2.0]\n"
-    ">>> p = ncfdtr(2, 3, nc, 15)\n"
-    ">>> p\n"
-    "array([ 0.96309246,  0.94327955,  0.93304098])\n"
-    "\n"
-    "Compute the inverse. We recover the values of `nc`, as expected:\n"
-    "\n"
-    ">>> ncfdtrinc(2, 3, p, 15)\n"
-    "array([ 0.5,  1.5,  2. ])")
-ufunc_ncfdtrinc_loops[0] = loop_d_dddd__As_ffff_f
-ufunc_ncfdtrinc_loops[1] = loop_d_dddd__As_dddd_d
-ufunc_ncfdtrinc_types[0] = NPY_FLOAT
-ufunc_ncfdtrinc_types[1] = NPY_FLOAT
-ufunc_ncfdtrinc_types[2] = NPY_FLOAT
-ufunc_ncfdtrinc_types[3] = NPY_FLOAT
-ufunc_ncfdtrinc_types[4] = NPY_FLOAT
-ufunc_ncfdtrinc_types[5] = NPY_DOUBLE
-ufunc_ncfdtrinc_types[6] = NPY_DOUBLE
-ufunc_ncfdtrinc_types[7] = NPY_DOUBLE
-ufunc_ncfdtrinc_types[8] = NPY_DOUBLE
-ufunc_ncfdtrinc_types[9] = NPY_DOUBLE
-ufunc_ncfdtrinc_ptr[2*0] = _func_ncfdtrinc
-ufunc_ncfdtrinc_ptr[2*0+1] = ("ncfdtrinc")
-ufunc_ncfdtrinc_ptr[2*1] = _func_ncfdtrinc
-ufunc_ncfdtrinc_ptr[2*1+1] = ("ncfdtrinc")
-ufunc_ncfdtrinc_data[0] = &ufunc_ncfdtrinc_ptr[2*0]
-ufunc_ncfdtrinc_data[1] = &ufunc_ncfdtrinc_ptr[2*1]
-ncfdtrinc = np.PyUFunc_FromFuncAndData(ufunc_ncfdtrinc_loops, ufunc_ncfdtrinc_data, ufunc_ncfdtrinc_types, 2, 4, 1, 0, "ncfdtrinc", ufunc_ncfdtrinc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nctdtr_loops[2]
-cdef void *ufunc_nctdtr_ptr[4]
-cdef void *ufunc_nctdtr_data[2]
-cdef char ufunc_nctdtr_types[8]
-cdef char *ufunc_nctdtr_doc = (
-    "nctdtr(df, nc, t, out=None)\n"
-    "\n"
-    "Cumulative distribution function of the non-central `t` distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "df : array_like\n"
-    "    Degrees of freedom of the distribution. Should be in range (0, inf).\n"
-    "nc : array_like\n"
-    "    Noncentrality parameter. Should be in range (-1e6, 1e6).\n"
-    "t : array_like\n"
-    "    Quantiles, i.e., the upper limit of integration.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "cdf : scalar or ndarray\n"
-    "    The calculated CDF. If all inputs are scalar, the return will be a\n"
-    "    float. Otherwise, it will be an array.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "nctdtrit : Inverse CDF (iCDF) of the non-central t distribution.\n"
-    "nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.\n"
-    "nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy import special\n"
-    ">>> from scipy import stats\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    "\n"
-    "Plot the CDF of the non-central t distribution, for nc=0. Compare with the\n"
-    "t-distribution from scipy.stats:\n"
-    "\n"
-    ">>> x = np.linspace(-5, 5, num=500)\n"
-    ">>> df = 3\n"
-    ">>> nct_stats = stats.t.cdf(x, df)\n"
-    ">>> nct_special = special.nctdtr(df, 0, x)\n"
-    "\n"
-    ">>> fig = plt.figure()\n"
-    ">>> ax = fig.add_subplot(111)\n"
-    ">>> ax.plot(x, nct_stats, 'b-', lw=3)\n"
-    ">>> ax.plot(x, nct_special, 'r-')\n"
-    ">>> plt.show()")
-ufunc_nctdtr_loops[0] = loop_d_ddd__As_fff_f
-ufunc_nctdtr_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_nctdtr_types[0] = NPY_FLOAT
-ufunc_nctdtr_types[1] = NPY_FLOAT
-ufunc_nctdtr_types[2] = NPY_FLOAT
-ufunc_nctdtr_types[3] = NPY_FLOAT
-ufunc_nctdtr_types[4] = NPY_DOUBLE
-ufunc_nctdtr_types[5] = NPY_DOUBLE
-ufunc_nctdtr_types[6] = NPY_DOUBLE
-ufunc_nctdtr_types[7] = NPY_DOUBLE
-ufunc_nctdtr_ptr[2*0] = _func_nctdtr
-ufunc_nctdtr_ptr[2*0+1] = ("nctdtr")
-ufunc_nctdtr_ptr[2*1] = _func_nctdtr
-ufunc_nctdtr_ptr[2*1+1] = ("nctdtr")
-ufunc_nctdtr_data[0] = &ufunc_nctdtr_ptr[2*0]
-ufunc_nctdtr_data[1] = &ufunc_nctdtr_ptr[2*1]
-nctdtr = np.PyUFunc_FromFuncAndData(ufunc_nctdtr_loops, ufunc_nctdtr_data, ufunc_nctdtr_types, 2, 3, 1, 0, "nctdtr", ufunc_nctdtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nctdtridf_loops[2]
-cdef void *ufunc_nctdtridf_ptr[4]
-cdef void *ufunc_nctdtridf_data[2]
-cdef char ufunc_nctdtridf_types[8]
-cdef char *ufunc_nctdtridf_doc = (
-    "nctdtridf(p, nc, t, out=None)\n"
-    "\n"
-    "Calculate degrees of freedom for non-central t distribution.\n"
-    "\n"
-    "See `nctdtr` for more details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    CDF values, in range (0, 1].\n"
-    "nc : array_like\n"
-    "    Noncentrality parameter. Should be in range (-1e6, 1e6).\n"
-    "t : array_like\n"
-    "    Quantiles, i.e., the upper limit of integration.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "df : scalar or ndarray\n"
-    "    The degrees of freedom. If all inputs are scalar, the return will be a\n"
-    "    float. Otherwise, it will be an array.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "nctdtr :  CDF of the non-central `t` distribution.\n"
-    "nctdtrit : Inverse CDF (iCDF) of the non-central t distribution.\n"
-    "nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import nctdtr, nctdtridf\n"
-    "\n"
-    "Compute the CDF for several values of `df`:\n"
-    "\n"
-    ">>> df = [1, 2, 3]\n"
-    ">>> p = nctdtr(df, 0.25, 1)\n"
-    ">>> p\n"
-    "array([0.67491974, 0.716464  , 0.73349456])\n"
-    "\n"
-    "Compute the inverse. We recover the values of `df`, as expected:\n"
-    "\n"
-    ">>> nctdtridf(p, 0.25, 1)\n"
-    "array([1., 2., 3.])")
-ufunc_nctdtridf_loops[0] = loop_d_ddd__As_fff_f
-ufunc_nctdtridf_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_nctdtridf_types[0] = NPY_FLOAT
-ufunc_nctdtridf_types[1] = NPY_FLOAT
-ufunc_nctdtridf_types[2] = NPY_FLOAT
-ufunc_nctdtridf_types[3] = NPY_FLOAT
-ufunc_nctdtridf_types[4] = NPY_DOUBLE
-ufunc_nctdtridf_types[5] = NPY_DOUBLE
-ufunc_nctdtridf_types[6] = NPY_DOUBLE
-ufunc_nctdtridf_types[7] = NPY_DOUBLE
-ufunc_nctdtridf_ptr[2*0] = _func_nctdtridf
-ufunc_nctdtridf_ptr[2*0+1] = ("nctdtridf")
-ufunc_nctdtridf_ptr[2*1] = _func_nctdtridf
-ufunc_nctdtridf_ptr[2*1+1] = ("nctdtridf")
-ufunc_nctdtridf_data[0] = &ufunc_nctdtridf_ptr[2*0]
-ufunc_nctdtridf_data[1] = &ufunc_nctdtridf_ptr[2*1]
-nctdtridf = np.PyUFunc_FromFuncAndData(ufunc_nctdtridf_loops, ufunc_nctdtridf_data, ufunc_nctdtridf_types, 2, 3, 1, 0, "nctdtridf", ufunc_nctdtridf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nctdtrinc_loops[2]
-cdef void *ufunc_nctdtrinc_ptr[4]
-cdef void *ufunc_nctdtrinc_data[2]
-cdef char ufunc_nctdtrinc_types[8]
-cdef char *ufunc_nctdtrinc_doc = (
-    "nctdtrinc(df, p, t, out=None)\n"
-    "\n"
-    "Calculate non-centrality parameter for non-central t distribution.\n"
-    "\n"
-    "See `nctdtr` for more details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "df : array_like\n"
-    "    Degrees of freedom of the distribution. Should be in range (0, inf).\n"
-    "p : array_like\n"
-    "    CDF values, in range (0, 1].\n"
-    "t : array_like\n"
-    "    Quantiles, i.e., the upper limit of integration.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "nc : scalar or ndarray\n"
-    "    Noncentrality parameter\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "nctdtr :  CDF of the non-central `t` distribution.\n"
-    "nctdtrit : Inverse CDF (iCDF) of the non-central t distribution.\n"
-    "nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import nctdtr, nctdtrinc\n"
-    "\n"
-    "Compute the CDF for several values of `nc`:\n"
-    "\n"
-    ">>> nc = [0.5, 1.5, 2.5]\n"
-    ">>> p = nctdtr(3, nc, 1.5)\n"
-    ">>> p\n"
-    "array([0.77569497, 0.45524533, 0.1668691 ])\n"
-    "\n"
-    "Compute the inverse. We recover the values of `nc`, as expected:\n"
-    "\n"
-    ">>> nctdtrinc(3, p, 1.5)\n"
-    "array([0.5, 1.5, 2.5])")
-ufunc_nctdtrinc_loops[0] = loop_d_ddd__As_fff_f
-ufunc_nctdtrinc_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_nctdtrinc_types[0] = NPY_FLOAT
-ufunc_nctdtrinc_types[1] = NPY_FLOAT
-ufunc_nctdtrinc_types[2] = NPY_FLOAT
-ufunc_nctdtrinc_types[3] = NPY_FLOAT
-ufunc_nctdtrinc_types[4] = NPY_DOUBLE
-ufunc_nctdtrinc_types[5] = NPY_DOUBLE
-ufunc_nctdtrinc_types[6] = NPY_DOUBLE
-ufunc_nctdtrinc_types[7] = NPY_DOUBLE
-ufunc_nctdtrinc_ptr[2*0] = _func_nctdtrinc
-ufunc_nctdtrinc_ptr[2*0+1] = ("nctdtrinc")
-ufunc_nctdtrinc_ptr[2*1] = _func_nctdtrinc
-ufunc_nctdtrinc_ptr[2*1+1] = ("nctdtrinc")
-ufunc_nctdtrinc_data[0] = &ufunc_nctdtrinc_ptr[2*0]
-ufunc_nctdtrinc_data[1] = &ufunc_nctdtrinc_ptr[2*1]
-nctdtrinc = np.PyUFunc_FromFuncAndData(ufunc_nctdtrinc_loops, ufunc_nctdtrinc_data, ufunc_nctdtrinc_types, 2, 3, 1, 0, "nctdtrinc", ufunc_nctdtrinc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nctdtrit_loops[2]
-cdef void *ufunc_nctdtrit_ptr[4]
-cdef void *ufunc_nctdtrit_data[2]
-cdef char ufunc_nctdtrit_types[8]
-cdef char *ufunc_nctdtrit_doc = (
-    "nctdtrit(df, nc, p, out=None)\n"
-    "\n"
-    "Inverse cumulative distribution function of the non-central t distribution.\n"
-    "\n"
-    "See `nctdtr` for more details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "df : array_like\n"
-    "    Degrees of freedom of the distribution. Should be in range (0, inf).\n"
-    "nc : array_like\n"
-    "    Noncentrality parameter. Should be in range (-1e6, 1e6).\n"
-    "p : array_like\n"
-    "    CDF values, in range (0, 1].\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "t : scalar or ndarray\n"
-    "    Quantiles\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "nctdtr :  CDF of the non-central `t` distribution.\n"
-    "nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.\n"
-    "nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import nctdtr, nctdtrit\n"
-    "\n"
-    "Compute the CDF for several values of `t`:\n"
-    "\n"
-    ">>> t = [0.5, 1, 1.5]\n"
-    ">>> p = nctdtr(3, 1, t)\n"
-    ">>> p\n"
-    "array([0.29811049, 0.46922687, 0.6257559 ])\n"
-    "\n"
-    "Compute the inverse. We recover the values of `t`, as expected:\n"
-    "\n"
-    ">>> nctdtrit(3, 1, p)\n"
-    "array([0.5, 1. , 1.5])")
-ufunc_nctdtrit_loops[0] = loop_d_ddd__As_fff_f
-ufunc_nctdtrit_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_nctdtrit_types[0] = NPY_FLOAT
-ufunc_nctdtrit_types[1] = NPY_FLOAT
-ufunc_nctdtrit_types[2] = NPY_FLOAT
-ufunc_nctdtrit_types[3] = NPY_FLOAT
-ufunc_nctdtrit_types[4] = NPY_DOUBLE
-ufunc_nctdtrit_types[5] = NPY_DOUBLE
-ufunc_nctdtrit_types[6] = NPY_DOUBLE
-ufunc_nctdtrit_types[7] = NPY_DOUBLE
-ufunc_nctdtrit_ptr[2*0] = _func_nctdtrit
-ufunc_nctdtrit_ptr[2*0+1] = ("nctdtrit")
-ufunc_nctdtrit_ptr[2*1] = _func_nctdtrit
-ufunc_nctdtrit_ptr[2*1+1] = ("nctdtrit")
-ufunc_nctdtrit_data[0] = &ufunc_nctdtrit_ptr[2*0]
-ufunc_nctdtrit_data[1] = &ufunc_nctdtrit_ptr[2*1]
-nctdtrit = np.PyUFunc_FromFuncAndData(ufunc_nctdtrit_loops, ufunc_nctdtrit_data, ufunc_nctdtrit_types, 2, 3, 1, 0, "nctdtrit", ufunc_nctdtrit_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ndtr_loops[4]
-cdef void *ufunc_ndtr_ptr[8]
-cdef void *ufunc_ndtr_data[4]
-cdef char ufunc_ndtr_types[8]
-cdef char *ufunc_ndtr_doc = (
-    "ndtr(x, out=None)\n"
-    "\n"
-    "Cumulative distribution of the standard normal distribution.\n"
-    "\n"
-    "Returns the area under the standard Gaussian probability\n"
-    "density function, integrated from minus infinity to `x`\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "   \\frac{1}{\\sqrt{2\\pi}} \\int_{-\\infty}^x \\exp(-t^2/2) dt\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like, real or complex\n"
-    "    Argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The value of the normal CDF evaluated at `x`\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "log_ndtr : Logarithm of ndtr\n"
-    "ndtri : Inverse of ndtr, standard normal percentile function\n"
-    "erf : Error function\n"
-    "erfc : 1 - erf\n"
-    "scipy.stats.norm : Normal distribution\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Evaluate `ndtr` at one point.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import ndtr\n"
-    ">>> ndtr(0.5)\n"
-    "0.6914624612740131\n"
-    "\n"
-    "Evaluate the function at several points by providing a NumPy array\n"
-    "or list for `x`.\n"
-    "\n"
-    ">>> ndtr([0, 0.5, 2])\n"
-    "array([0.5       , 0.69146246, 0.97724987])\n"
-    "\n"
-    "Plot the function.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> x = np.linspace(-5, 5, 100)\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> ax.plot(x, ndtr(x))\n"
-    ">>> ax.set_title(r\"Standard normal cumulative distribution function $\\Phi$\")\n"
-    ">>> plt.show()")
-ufunc_ndtr_loops[0] = loop_d_d__As_f_f
-ufunc_ndtr_loops[1] = loop_d_d__As_d_d
-ufunc_ndtr_loops[2] = loop_D_D__As_F_F
-ufunc_ndtr_loops[3] = loop_D_D__As_D_D
-ufunc_ndtr_types[0] = NPY_FLOAT
-ufunc_ndtr_types[1] = NPY_FLOAT
-ufunc_ndtr_types[2] = NPY_DOUBLE
-ufunc_ndtr_types[3] = NPY_DOUBLE
-ufunc_ndtr_types[4] = NPY_CFLOAT
-ufunc_ndtr_types[5] = NPY_CFLOAT
-ufunc_ndtr_types[6] = NPY_CDOUBLE
-ufunc_ndtr_types[7] = NPY_CDOUBLE
-ufunc_ndtr_ptr[2*0] = _func_cephes_ndtr
-ufunc_ndtr_ptr[2*0+1] = ("ndtr")
-ufunc_ndtr_ptr[2*1] = _func_cephes_ndtr
-ufunc_ndtr_ptr[2*1+1] = ("ndtr")
-ufunc_ndtr_ptr[2*2] = scipy.special._ufuncs_cxx._export_faddeeva_ndtr
-ufunc_ndtr_ptr[2*2+1] = ("ndtr")
-ufunc_ndtr_ptr[2*3] = scipy.special._ufuncs_cxx._export_faddeeva_ndtr
-ufunc_ndtr_ptr[2*3+1] = ("ndtr")
-ufunc_ndtr_data[0] = &ufunc_ndtr_ptr[2*0]
-ufunc_ndtr_data[1] = &ufunc_ndtr_ptr[2*1]
-ufunc_ndtr_data[2] = &ufunc_ndtr_ptr[2*2]
-ufunc_ndtr_data[3] = &ufunc_ndtr_ptr[2*3]
-ndtr = np.PyUFunc_FromFuncAndData(ufunc_ndtr_loops, ufunc_ndtr_data, ufunc_ndtr_types, 4, 1, 1, 0, "ndtr", ufunc_ndtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ndtri_loops[2]
-cdef void *ufunc_ndtri_ptr[4]
-cdef void *ufunc_ndtri_data[2]
-cdef char ufunc_ndtri_types[4]
-cdef char *ufunc_ndtri_doc = (
-    "ndtri(y, out=None)\n"
-    "\n"
-    "Inverse of `ndtr` vs x\n"
-    "\n"
-    "Returns the argument x for which the area under the standard normal\n"
-    "probability density function (integrated from minus infinity to `x`)\n"
-    "is equal to y.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    Probability\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "x : scalar or ndarray\n"
-    "    Value of x such that ``ndtr(x) == p``.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "ndtr : Standard normal cumulative probability distribution\n"
-    "ndtri_exp : Inverse of log_ndtr\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "`ndtri` is the percentile function of the standard normal distribution.\n"
-    "This means it returns the inverse of the cumulative density `ndtr`. First,\n"
-    "let us compute a cumulative density value.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import ndtri, ndtr\n"
-    ">>> cdf_val = ndtr(2)\n"
-    ">>> cdf_val\n"
-    "0.9772498680518208\n"
-    "\n"
-    "Verify that `ndtri` yields the original value for `x` up to floating point\n"
-    "errors.\n"
-    "\n"
-    ">>> ndtri(cdf_val)\n"
-    "2.0000000000000004\n"
-    "\n"
-    "Plot the function. For that purpose, we provide a NumPy array as argument.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> x = np.linspace(0.01, 1, 200)\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> ax.plot(x, ndtri(x))\n"
-    ">>> ax.set_title(\"Standard normal percentile function\")\n"
-    ">>> plt.show()")
-ufunc_ndtri_loops[0] = loop_d_d__As_f_f
-ufunc_ndtri_loops[1] = loop_d_d__As_d_d
-ufunc_ndtri_types[0] = NPY_FLOAT
-ufunc_ndtri_types[1] = NPY_FLOAT
-ufunc_ndtri_types[2] = NPY_DOUBLE
-ufunc_ndtri_types[3] = NPY_DOUBLE
-ufunc_ndtri_ptr[2*0] = _func_cephes_ndtri
-ufunc_ndtri_ptr[2*0+1] = ("ndtri")
-ufunc_ndtri_ptr[2*1] = _func_cephes_ndtri
-ufunc_ndtri_ptr[2*1+1] = ("ndtri")
-ufunc_ndtri_data[0] = &ufunc_ndtri_ptr[2*0]
-ufunc_ndtri_data[1] = &ufunc_ndtri_ptr[2*1]
-ndtri = np.PyUFunc_FromFuncAndData(ufunc_ndtri_loops, ufunc_ndtri_data, ufunc_ndtri_types, 2, 1, 1, 0, "ndtri", ufunc_ndtri_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_ndtri_exp_loops[2]
-cdef void *ufunc_ndtri_exp_ptr[4]
-cdef void *ufunc_ndtri_exp_data[2]
-cdef char ufunc_ndtri_exp_types[4]
-cdef char *ufunc_ndtri_exp_doc = (
-    "ndtri_exp(y, out=None)\n"
-    "\n"
-    "Inverse of `log_ndtr` vs x. Allows for greater precision than\n"
-    "`ndtri` composed with `numpy.exp` for very small values of y and for\n"
-    "y close to 0.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "y : array_like of float\n"
-    "    Function argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Inverse of the log CDF of the standard normal distribution, evaluated\n"
-    "    at y.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "log_ndtr : log of the standard normal cumulative distribution function\n"
-    "ndtr : standard normal cumulative distribution function\n"
-    "ndtri : standard normal percentile function\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "`ndtri_exp` agrees with the naive implementation when the latter does\n"
-    "not suffer from underflow.\n"
-    "\n"
-    ">>> sc.ndtri_exp(-1)\n"
-    "-0.33747496376420244\n"
-    ">>> sc.ndtri(np.exp(-1))\n"
-    "-0.33747496376420244\n"
-    "\n"
-    "For extreme values of y, the naive approach fails\n"
-    "\n"
-    ">>> sc.ndtri(np.exp(-800))\n"
-    "-inf\n"
-    ">>> sc.ndtri(np.exp(-1e-20))\n"
-    "inf\n"
-    "\n"
-    "whereas `ndtri_exp` is still able to compute the result to high precision.\n"
-    "\n"
-    ">>> sc.ndtri_exp(-800)\n"
-    "-39.88469483825668\n"
-    ">>> sc.ndtri_exp(-1e-20)\n"
-    "9.262340089798409")
-ufunc_ndtri_exp_loops[0] = loop_d_d__As_f_f
-ufunc_ndtri_exp_loops[1] = loop_d_d__As_d_d
-ufunc_ndtri_exp_types[0] = NPY_FLOAT
-ufunc_ndtri_exp_types[1] = NPY_FLOAT
-ufunc_ndtri_exp_types[2] = NPY_DOUBLE
-ufunc_ndtri_exp_types[3] = NPY_DOUBLE
-ufunc_ndtri_exp_ptr[2*0] = _func_ndtri_exp
-ufunc_ndtri_exp_ptr[2*0+1] = ("ndtri_exp")
-ufunc_ndtri_exp_ptr[2*1] = _func_ndtri_exp
-ufunc_ndtri_exp_ptr[2*1+1] = ("ndtri_exp")
-ufunc_ndtri_exp_data[0] = &ufunc_ndtri_exp_ptr[2*0]
-ufunc_ndtri_exp_data[1] = &ufunc_ndtri_exp_ptr[2*1]
-ndtri_exp = np.PyUFunc_FromFuncAndData(ufunc_ndtri_exp_loops, ufunc_ndtri_exp_data, ufunc_ndtri_exp_types, 2, 1, 1, 0, "ndtri_exp", ufunc_ndtri_exp_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nrdtrimn_loops[2]
-cdef void *ufunc_nrdtrimn_ptr[4]
-cdef void *ufunc_nrdtrimn_data[2]
-cdef char ufunc_nrdtrimn_types[8]
-cdef char *ufunc_nrdtrimn_doc = (
-    "nrdtrimn(p, std, x, out=None)\n"
-    "\n"
-    "Calculate mean of normal distribution given other params.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    CDF values, in range (0, 1].\n"
-    "std : array_like\n"
-    "    Standard deviation.\n"
-    "x : array_like\n"
-    "    Quantiles, i.e. the upper limit of integration.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "mn : scalar or ndarray\n"
-    "    The mean of the normal distribution.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "scipy.stats.norm : Normal distribution\n"
-    "ndtr : Standard normal cumulative probability distribution\n"
-    "ndtri : Inverse of standard normal CDF with respect to quantile\n"
-    "nrdtrisd : Inverse of normal distribution CDF with respect to\n"
-    "           standard deviation\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "`nrdtrimn` can be used to recover the mean of a normal distribution\n"
-    "if we know the CDF value `p` for a given quantile `x` and the\n"
-    "standard deviation `std`. First, we calculate\n"
-    "the normal distribution CDF for an exemplary parameter set.\n"
-    "\n"
-    ">>> from scipy.stats import norm\n"
-    ">>> mean = 3.\n"
-    ">>> std = 2.\n"
-    ">>> x = 6.\n"
-    ">>> p = norm.cdf(x, loc=mean, scale=std)\n"
-    ">>> p\n"
-    "0.9331927987311419\n"
-    "\n"
-    "Verify that `nrdtrimn` returns the original value for `mean`.\n"
-    "\n"
-    ">>> from scipy.special import nrdtrimn\n"
-    ">>> nrdtrimn(p, std, x)\n"
-    "3.0000000000000004")
-ufunc_nrdtrimn_loops[0] = loop_d_ddd__As_fff_f
-ufunc_nrdtrimn_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_nrdtrimn_types[0] = NPY_FLOAT
-ufunc_nrdtrimn_types[1] = NPY_FLOAT
-ufunc_nrdtrimn_types[2] = NPY_FLOAT
-ufunc_nrdtrimn_types[3] = NPY_FLOAT
-ufunc_nrdtrimn_types[4] = NPY_DOUBLE
-ufunc_nrdtrimn_types[5] = NPY_DOUBLE
-ufunc_nrdtrimn_types[6] = NPY_DOUBLE
-ufunc_nrdtrimn_types[7] = NPY_DOUBLE
-ufunc_nrdtrimn_ptr[2*0] = _func_nrdtrimn
-ufunc_nrdtrimn_ptr[2*0+1] = ("nrdtrimn")
-ufunc_nrdtrimn_ptr[2*1] = _func_nrdtrimn
-ufunc_nrdtrimn_ptr[2*1+1] = ("nrdtrimn")
-ufunc_nrdtrimn_data[0] = &ufunc_nrdtrimn_ptr[2*0]
-ufunc_nrdtrimn_data[1] = &ufunc_nrdtrimn_ptr[2*1]
-nrdtrimn = np.PyUFunc_FromFuncAndData(ufunc_nrdtrimn_loops, ufunc_nrdtrimn_data, ufunc_nrdtrimn_types, 2, 3, 1, 0, "nrdtrimn", ufunc_nrdtrimn_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_nrdtrisd_loops[2]
-cdef void *ufunc_nrdtrisd_ptr[4]
-cdef void *ufunc_nrdtrisd_data[2]
-cdef char ufunc_nrdtrisd_types[8]
-cdef char *ufunc_nrdtrisd_doc = (
-    "nrdtrisd(mn, p, x, out=None)\n"
-    "\n"
-    "Calculate standard deviation of normal distribution given other params.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "mn : scalar or ndarray\n"
-    "    The mean of the normal distribution.\n"
-    "p : array_like\n"
-    "    CDF values, in range (0, 1].\n"
-    "x : array_like\n"
-    "    Quantiles, i.e. the upper limit of integration.\n"
-    "\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "std : scalar or ndarray\n"
-    "    Standard deviation.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "scipy.stats.norm : Normal distribution\n"
-    "ndtr : Standard normal cumulative probability distribution\n"
-    "ndtri : Inverse of standard normal CDF with respect to quantile\n"
-    "nrdtrimn : Inverse of normal distribution CDF with respect to\n"
-    "           mean\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "`nrdtrisd` can be used to recover the standard deviation of a normal\n"
-    "distribution if we know the CDF value `p` for a given quantile `x` and\n"
-    "the mean `mn`. First, we calculate the normal distribution CDF for an\n"
-    "exemplary parameter set.\n"
-    "\n"
-    ">>> from scipy.stats import norm\n"
-    ">>> mean = 3.\n"
-    ">>> std = 2.\n"
-    ">>> x = 6.\n"
-    ">>> p = norm.cdf(x, loc=mean, scale=std)\n"
-    ">>> p\n"
-    "0.9331927987311419\n"
-    "\n"
-    "Verify that `nrdtrisd` returns the original value for `std`.\n"
-    "\n"
-    ">>> from scipy.special import nrdtrisd\n"
-    ">>> nrdtrisd(mean, p, x)\n"
-    "2.0000000000000004")
-ufunc_nrdtrisd_loops[0] = loop_d_ddd__As_fff_f
-ufunc_nrdtrisd_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_nrdtrisd_types[0] = NPY_FLOAT
-ufunc_nrdtrisd_types[1] = NPY_FLOAT
-ufunc_nrdtrisd_types[2] = NPY_FLOAT
-ufunc_nrdtrisd_types[3] = NPY_FLOAT
-ufunc_nrdtrisd_types[4] = NPY_DOUBLE
-ufunc_nrdtrisd_types[5] = NPY_DOUBLE
-ufunc_nrdtrisd_types[6] = NPY_DOUBLE
-ufunc_nrdtrisd_types[7] = NPY_DOUBLE
-ufunc_nrdtrisd_ptr[2*0] = _func_nrdtrisd
-ufunc_nrdtrisd_ptr[2*0+1] = ("nrdtrisd")
-ufunc_nrdtrisd_ptr[2*1] = _func_nrdtrisd
-ufunc_nrdtrisd_ptr[2*1+1] = ("nrdtrisd")
-ufunc_nrdtrisd_data[0] = &ufunc_nrdtrisd_ptr[2*0]
-ufunc_nrdtrisd_data[1] = &ufunc_nrdtrisd_ptr[2*1]
-nrdtrisd = np.PyUFunc_FromFuncAndData(ufunc_nrdtrisd_loops, ufunc_nrdtrisd_data, ufunc_nrdtrisd_types, 2, 3, 1, 0, "nrdtrisd", ufunc_nrdtrisd_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_owens_t_loops[2]
-cdef void *ufunc_owens_t_ptr[4]
-cdef void *ufunc_owens_t_data[2]
-cdef char ufunc_owens_t_types[6]
-cdef char *ufunc_owens_t_doc = (
-    "owens_t(h, a, out=None)\n"
-    "\n"
-    "Owen's T Function.\n"
-    "\n"
-    "The function T(h, a) gives the probability of the event\n"
-    "(X > h and 0 < Y < a * X) where X and Y are independent\n"
-    "standard normal random variables.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "h: array_like\n"
-    "    Input value.\n"
-    "a: array_like\n"
-    "    Input value.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "t: scalar or ndarray\n"
-    "    Probability of the event (X > h and 0 < Y < a * X),\n"
-    "    where X and Y are independent standard normal random variables.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] M. Patefield and D. Tandy, \"Fast and accurate calculation of\n"
-    "       Owen's T Function\", Statistical Software vol. 5, pp. 1-25, 2000.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy import special\n"
-    ">>> a = 3.5\n"
-    ">>> h = 0.78\n"
-    ">>> special.owens_t(h, a)\n"
-    "0.10877216734852274")
-ufunc_owens_t_loops[0] = loop_d_dd__As_ff_f
-ufunc_owens_t_loops[1] = loop_d_dd__As_dd_d
-ufunc_owens_t_types[0] = NPY_FLOAT
-ufunc_owens_t_types[1] = NPY_FLOAT
-ufunc_owens_t_types[2] = NPY_FLOAT
-ufunc_owens_t_types[3] = NPY_DOUBLE
-ufunc_owens_t_types[4] = NPY_DOUBLE
-ufunc_owens_t_types[5] = NPY_DOUBLE
-ufunc_owens_t_ptr[2*0] = _func_cephes_owens_t
-ufunc_owens_t_ptr[2*0+1] = ("owens_t")
-ufunc_owens_t_ptr[2*1] = _func_cephes_owens_t
-ufunc_owens_t_ptr[2*1+1] = ("owens_t")
-ufunc_owens_t_data[0] = &ufunc_owens_t_ptr[2*0]
-ufunc_owens_t_data[1] = &ufunc_owens_t_ptr[2*1]
-owens_t = np.PyUFunc_FromFuncAndData(ufunc_owens_t_loops, ufunc_owens_t_data, ufunc_owens_t_types, 2, 2, 1, 0, "owens_t", ufunc_owens_t_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_pdtr_loops[2]
-cdef void *ufunc_pdtr_ptr[4]
-cdef void *ufunc_pdtr_data[2]
-cdef char ufunc_pdtr_types[6]
-cdef char *ufunc_pdtr_doc = (
-    "pdtr(k, m, out=None)\n"
-    "\n"
-    "Poisson cumulative distribution function.\n"
-    "\n"
-    "Defined as the probability that a Poisson-distributed random\n"
-    "variable with event rate :math:`m` is less than or equal to\n"
-    ":math:`k`. More concretely, this works out to be [1]_\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "   \\exp(-m) \\sum_{j = 0}^{\\lfloor{k}\\rfloor} \\frac{m^j}{j!}.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    Number of occurrences (nonnegative, real)\n"
-    "m : array_like\n"
-    "    Shape parameter (nonnegative, real)\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the Poisson cumulative distribution function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "pdtrc : Poisson survival function\n"
-    "pdtrik : inverse of `pdtr` with respect to `k`\n"
-    "pdtri : inverse of `pdtr` with respect to `m`\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] https://en.wikipedia.org/wiki/Poisson_distribution\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is a cumulative distribution function, so it converges to 1\n"
-    "monotonically as `k` goes to infinity.\n"
-    "\n"
-    ">>> sc.pdtr([1, 10, 100, np.inf], 1)\n"
-    "array([0.73575888, 0.99999999, 1.        , 1.        ])\n"
-    "\n"
-    "It is discontinuous at integers and constant between integers.\n"
-    "\n"
-    ">>> sc.pdtr([1, 1.5, 1.9, 2], 1)\n"
-    "array([0.73575888, 0.73575888, 0.73575888, 0.9196986 ])")
-ufunc_pdtr_loops[0] = loop_d_dd__As_ff_f
-ufunc_pdtr_loops[1] = loop_d_dd__As_dd_d
-ufunc_pdtr_types[0] = NPY_FLOAT
-ufunc_pdtr_types[1] = NPY_FLOAT
-ufunc_pdtr_types[2] = NPY_FLOAT
-ufunc_pdtr_types[3] = NPY_DOUBLE
-ufunc_pdtr_types[4] = NPY_DOUBLE
-ufunc_pdtr_types[5] = NPY_DOUBLE
-ufunc_pdtr_ptr[2*0] = _func_cephes_pdtr
-ufunc_pdtr_ptr[2*0+1] = ("pdtr")
-ufunc_pdtr_ptr[2*1] = _func_cephes_pdtr
-ufunc_pdtr_ptr[2*1+1] = ("pdtr")
-ufunc_pdtr_data[0] = &ufunc_pdtr_ptr[2*0]
-ufunc_pdtr_data[1] = &ufunc_pdtr_ptr[2*1]
-pdtr = np.PyUFunc_FromFuncAndData(ufunc_pdtr_loops, ufunc_pdtr_data, ufunc_pdtr_types, 2, 2, 1, 0, "pdtr", ufunc_pdtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_pdtrc_loops[2]
-cdef void *ufunc_pdtrc_ptr[4]
-cdef void *ufunc_pdtrc_data[2]
-cdef char ufunc_pdtrc_types[6]
-cdef char *ufunc_pdtrc_doc = (
-    "pdtrc(k, m, out=None)\n"
-    "\n"
-    "Poisson survival function\n"
-    "\n"
-    "Returns the sum of the terms from k+1 to infinity of the Poisson\n"
-    "distribution: sum(exp(-m) * m**j / j!, j=k+1..inf) = gammainc(\n"
-    "k+1, m). Arguments must both be non-negative doubles.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    Number of occurrences (nonnegative, real)\n"
-    "m : array_like\n"
-    "    Shape parameter (nonnegative, real)\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the Poisson survival function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "pdtr : Poisson cumulative distribution function\n"
-    "pdtrik : inverse of `pdtr` with respect to `k`\n"
-    "pdtri : inverse of `pdtr` with respect to `m`\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is a survival function, so it decreases to 0\n"
-    "monotonically as `k` goes to infinity.\n"
-    "\n"
-    ">>> k = np.array([1, 10, 100, np.inf])\n"
-    ">>> sc.pdtrc(k, 1)\n"
-    "array([2.64241118e-001, 1.00477664e-008, 3.94147589e-161, 0.00000000e+000])\n"
-    "\n"
-    "It can be expressed in terms of the lower incomplete gamma\n"
-    "function `gammainc`.\n"
-    "\n"
-    ">>> sc.gammainc(k + 1, 1)\n"
-    "array([2.64241118e-001, 1.00477664e-008, 3.94147589e-161, 0.00000000e+000])")
-ufunc_pdtrc_loops[0] = loop_d_dd__As_ff_f
-ufunc_pdtrc_loops[1] = loop_d_dd__As_dd_d
-ufunc_pdtrc_types[0] = NPY_FLOAT
-ufunc_pdtrc_types[1] = NPY_FLOAT
-ufunc_pdtrc_types[2] = NPY_FLOAT
-ufunc_pdtrc_types[3] = NPY_DOUBLE
-ufunc_pdtrc_types[4] = NPY_DOUBLE
-ufunc_pdtrc_types[5] = NPY_DOUBLE
-ufunc_pdtrc_ptr[2*0] = _func_cephes_pdtrc
-ufunc_pdtrc_ptr[2*0+1] = ("pdtrc")
-ufunc_pdtrc_ptr[2*1] = _func_cephes_pdtrc
-ufunc_pdtrc_ptr[2*1+1] = ("pdtrc")
-ufunc_pdtrc_data[0] = &ufunc_pdtrc_ptr[2*0]
-ufunc_pdtrc_data[1] = &ufunc_pdtrc_ptr[2*1]
-pdtrc = np.PyUFunc_FromFuncAndData(ufunc_pdtrc_loops, ufunc_pdtrc_data, ufunc_pdtrc_types, 2, 2, 1, 0, "pdtrc", ufunc_pdtrc_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_pdtri_loops[3]
-cdef void *ufunc_pdtri_ptr[6]
-cdef void *ufunc_pdtri_data[3]
-cdef char ufunc_pdtri_types[9]
-cdef char *ufunc_pdtri_doc = (
-    "pdtri(k, y, out=None)\n"
-    "\n"
-    "Inverse to `pdtr` vs m\n"
-    "\n"
-    "Returns the Poisson variable `m` such that the sum from 0 to `k` of\n"
-    "the Poisson density is equal to the given probability `y`:\n"
-    "calculated by ``gammaincinv(k + 1, y)``. `k` must be a nonnegative\n"
-    "integer and `y` between 0 and 1.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "k : array_like\n"
-    "    Number of occurrences (nonnegative, real)\n"
-    "y : array_like\n"
-    "    Probability\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the shape parameter `m` such that ``pdtr(k, m) = p``\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "pdtr : Poisson cumulative distribution function\n"
-    "pdtrc : Poisson survival function\n"
-    "pdtrik : inverse of `pdtr` with respect to `k`\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "Compute the CDF for several values of `m`:\n"
-    "\n"
-    ">>> m = [0.5, 1, 1.5]\n"
-    ">>> p = sc.pdtr(1, m)\n"
-    ">>> p\n"
-    "array([0.90979599, 0.73575888, 0.5578254 ])\n"
-    "\n"
-    "Compute the inverse. We recover the values of `m`, as expected:\n"
-    "\n"
-    ">>> sc.pdtri(1, p)\n"
-    "array([0.5, 1. , 1.5])")
-ufunc_pdtri_loops[0] = loop_d_pd__As_pd_d
-ufunc_pdtri_loops[1] = loop_d_dd__As_ff_f
-ufunc_pdtri_loops[2] = loop_d_dd__As_dd_d
-ufunc_pdtri_types[0] = NPY_INTP
-ufunc_pdtri_types[1] = NPY_DOUBLE
-ufunc_pdtri_types[2] = NPY_DOUBLE
-ufunc_pdtri_types[3] = NPY_FLOAT
-ufunc_pdtri_types[4] = NPY_FLOAT
-ufunc_pdtri_types[5] = NPY_FLOAT
-ufunc_pdtri_types[6] = NPY_DOUBLE
-ufunc_pdtri_types[7] = NPY_DOUBLE
-ufunc_pdtri_types[8] = NPY_DOUBLE
-ufunc_pdtri_ptr[2*0] = _func_cephes_pdtri_wrap
-ufunc_pdtri_ptr[2*0+1] = ("pdtri")
-ufunc_pdtri_ptr[2*1] = _func_pdtri_unsafe
-ufunc_pdtri_ptr[2*1+1] = ("pdtri")
-ufunc_pdtri_ptr[2*2] = _func_pdtri_unsafe
-ufunc_pdtri_ptr[2*2+1] = ("pdtri")
-ufunc_pdtri_data[0] = &ufunc_pdtri_ptr[2*0]
-ufunc_pdtri_data[1] = &ufunc_pdtri_ptr[2*1]
-ufunc_pdtri_data[2] = &ufunc_pdtri_ptr[2*2]
-pdtri = np.PyUFunc_FromFuncAndData(ufunc_pdtri_loops, ufunc_pdtri_data, ufunc_pdtri_types, 3, 2, 1, 0, "pdtri", ufunc_pdtri_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_pdtrik_loops[2]
-cdef void *ufunc_pdtrik_ptr[4]
-cdef void *ufunc_pdtrik_data[2]
-cdef char ufunc_pdtrik_types[6]
-cdef char *ufunc_pdtrik_doc = (
-    "pdtrik(p, m, out=None)\n"
-    "\n"
-    "Inverse to `pdtr` vs `k`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    Probability\n"
-    "m : array_like\n"
-    "    Shape parameter (nonnegative, real)\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The number of occurrences `k` such that ``pdtr(k, m) = p``\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "pdtr : Poisson cumulative distribution function\n"
-    "pdtrc : Poisson survival function\n"
-    "pdtri : inverse of `pdtr` with respect to `m`\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "Compute the CDF for several values of `k`:\n"
-    "\n"
-    ">>> k = [1, 2, 3]\n"
-    ">>> p = sc.pdtr(k, 2)\n"
-    ">>> p\n"
-    "array([0.40600585, 0.67667642, 0.85712346])\n"
-    "\n"
-    "Compute the inverse. We recover the values of `k`, as expected:\n"
-    "\n"
-    ">>> sc.pdtrik(p, 2)\n"
-    "array([1., 2., 3.])")
-ufunc_pdtrik_loops[0] = loop_d_dd__As_ff_f
-ufunc_pdtrik_loops[1] = loop_d_dd__As_dd_d
-ufunc_pdtrik_types[0] = NPY_FLOAT
-ufunc_pdtrik_types[1] = NPY_FLOAT
-ufunc_pdtrik_types[2] = NPY_FLOAT
-ufunc_pdtrik_types[3] = NPY_DOUBLE
-ufunc_pdtrik_types[4] = NPY_DOUBLE
-ufunc_pdtrik_types[5] = NPY_DOUBLE
-ufunc_pdtrik_ptr[2*0] = _func_pdtrik
-ufunc_pdtrik_ptr[2*0+1] = ("pdtrik")
-ufunc_pdtrik_ptr[2*1] = _func_pdtrik
-ufunc_pdtrik_ptr[2*1+1] = ("pdtrik")
-ufunc_pdtrik_data[0] = &ufunc_pdtrik_ptr[2*0]
-ufunc_pdtrik_data[1] = &ufunc_pdtrik_ptr[2*1]
-pdtrik = np.PyUFunc_FromFuncAndData(ufunc_pdtrik_loops, ufunc_pdtrik_data, ufunc_pdtrik_types, 2, 2, 1, 0, "pdtrik", ufunc_pdtrik_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_poch_loops[2]
-cdef void *ufunc_poch_ptr[4]
-cdef void *ufunc_poch_data[2]
-cdef char ufunc_poch_types[6]
-cdef char *ufunc_poch_doc = (
-    "poch(z, m, out=None)\n"
-    "\n"
-    "Pochhammer symbol.\n"
-    "\n"
-    "The Pochhammer symbol (rising factorial) is defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    (z)_m = \\frac{\\Gamma(z + m)}{\\Gamma(z)}\n"
-    "\n"
-    "For positive integer `m` it reads\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    (z)_m = z (z + 1) ... (z + m - 1)\n"
-    "\n"
-    "See [dlmf]_ for more details.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "z, m : array_like\n"
-    "    Real-valued arguments.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The value of the function.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] Nist, Digital Library of Mathematical Functions\n"
-    "    https://dlmf.nist.gov/5.2#iii\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is 1 when m is 0.\n"
-    "\n"
-    ">>> sc.poch([1, 2, 3, 4], 0)\n"
-    "array([1., 1., 1., 1.])\n"
-    "\n"
-    "For z equal to 1 it reduces to the factorial function.\n"
-    "\n"
-    ">>> sc.poch(1, 5)\n"
-    "120.0\n"
-    ">>> 1 * 2 * 3 * 4 * 5\n"
-    "120\n"
-    "\n"
-    "It can be expressed in terms of the gamma function.\n"
-    "\n"
-    ">>> z, m = 3.7, 2.1\n"
-    ">>> sc.poch(z, m)\n"
-    "20.529581933776953\n"
-    ">>> sc.gamma(z + m) / sc.gamma(z)\n"
-    "20.52958193377696")
-ufunc_poch_loops[0] = loop_d_dd__As_ff_f
-ufunc_poch_loops[1] = loop_d_dd__As_dd_d
-ufunc_poch_types[0] = NPY_FLOAT
-ufunc_poch_types[1] = NPY_FLOAT
-ufunc_poch_types[2] = NPY_FLOAT
-ufunc_poch_types[3] = NPY_DOUBLE
-ufunc_poch_types[4] = NPY_DOUBLE
-ufunc_poch_types[5] = NPY_DOUBLE
-ufunc_poch_ptr[2*0] = _func_cephes_poch
-ufunc_poch_ptr[2*0+1] = ("poch")
-ufunc_poch_ptr[2*1] = _func_cephes_poch
-ufunc_poch_ptr[2*1+1] = ("poch")
-ufunc_poch_data[0] = &ufunc_poch_ptr[2*0]
-ufunc_poch_data[1] = &ufunc_poch_ptr[2*1]
-poch = np.PyUFunc_FromFuncAndData(ufunc_poch_loops, ufunc_poch_data, ufunc_poch_types, 2, 2, 1, 0, "poch", ufunc_poch_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_powm1_loops[2]
-cdef void *ufunc_powm1_ptr[4]
-cdef void *ufunc_powm1_data[2]
-cdef char ufunc_powm1_types[6]
-cdef char *ufunc_powm1_doc = (
-    "powm1(x, y, out=None)\n"
-    "\n"
-    "Computes ``x**y - 1``.\n"
-    "\n"
-    "This function is useful when `y` is near 0, or when `x` is near 1.\n"
-    "\n"
-    "The function is implemented for real types only (unlike ``numpy.power``,\n"
-    "which accepts complex inputs).\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    The base. Must be a real type (i.e. integer or float, not complex).\n"
-    "y : array_like\n"
-    "    The exponent. Must be a real type (i.e. integer or float, not complex).\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "array_like\n"
-    "    Result of the calculation\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    ".. versionadded:: 1.10.0\n"
-    "\n"
-    "The underlying code is implemented for single precision and double\n"
-    "precision floats only.  Unlike `numpy.power`, integer inputs to\n"
-    "`powm1` are converted to floating point, and complex inputs are\n"
-    "not accepted.\n"
-    "\n"
-    "Note the following edge cases:\n"
-    "\n"
-    "* ``powm1(x, 0)`` returns 0 for any ``x``, including 0, ``inf``\n"
-    "  and ``nan``.\n"
-    "* ``powm1(1, y)`` returns 0 for any ``y``, including ``nan``\n"
-    "  and ``inf``.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import powm1\n"
-    "\n"
-    ">>> x = np.array([1.2, 10.0, 0.9999999975])\n"
-    ">>> y = np.array([1e-9, 1e-11, 0.1875])\n"
-    ">>> powm1(x, y)\n"
-    "array([ 1.82321557e-10,  2.30258509e-11, -4.68749998e-10])\n"
-    "\n"
-    "It can be verified that the relative errors in those results\n"
-    "are less than 2.5e-16.\n"
-    "\n"
-    "Compare that to the result of ``x**y - 1``, where the\n"
-    "relative errors are all larger than 8e-8:\n"
-    "\n"
-    ">>> x**y - 1\n"
-    "array([ 1.82321491e-10,  2.30258035e-11, -4.68750039e-10])")
-ufunc_powm1_loops[0] = loop_f_ff__As_ff_f
-ufunc_powm1_loops[1] = loop_d_dd__As_dd_d
-ufunc_powm1_types[0] = NPY_FLOAT
-ufunc_powm1_types[1] = NPY_FLOAT
-ufunc_powm1_types[2] = NPY_FLOAT
-ufunc_powm1_types[3] = NPY_DOUBLE
-ufunc_powm1_types[4] = NPY_DOUBLE
-ufunc_powm1_types[5] = NPY_DOUBLE
-ufunc_powm1_ptr[2*0] = scipy.special._ufuncs_cxx._export_powm1_float
-ufunc_powm1_ptr[2*0+1] = ("powm1")
-ufunc_powm1_ptr[2*1] = scipy.special._ufuncs_cxx._export_powm1_double
-ufunc_powm1_ptr[2*1+1] = ("powm1")
-ufunc_powm1_data[0] = &ufunc_powm1_ptr[2*0]
-ufunc_powm1_data[1] = &ufunc_powm1_ptr[2*1]
-powm1 = np.PyUFunc_FromFuncAndData(ufunc_powm1_loops, ufunc_powm1_data, ufunc_powm1_types, 2, 2, 1, 0, "powm1", ufunc_powm1_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_pseudo_huber_loops[2]
-cdef void *ufunc_pseudo_huber_ptr[4]
-cdef void *ufunc_pseudo_huber_data[2]
-cdef char ufunc_pseudo_huber_types[6]
-cdef char *ufunc_pseudo_huber_doc = (
-    "pseudo_huber(delta, r, out=None)\n"
-    "\n"
-    "Pseudo-Huber loss function.\n"
-    "\n"
-    ".. math:: \\mathrm{pseudo\\_huber}(\\delta, r) =\n"
-    "          \\delta^2 \\left( \\sqrt{ 1 + \\left( \\frac{r}{\\delta} \\right)^2 } - 1 \\right)\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "delta : array_like\n"
-    "    Input array, indicating the soft quadratic vs. linear loss changepoint.\n"
-    "r : array_like\n"
-    "    Input array, possibly representing residuals.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "res : scalar or ndarray\n"
-    "    The computed Pseudo-Huber loss function values.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "huber: Similar function which this function approximates\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Like `huber`, `pseudo_huber` often serves as a robust loss function\n"
-    "in statistics or machine learning to reduce the influence of outliers.\n"
-    "Unlike `huber`, `pseudo_huber` is smooth.\n"
-    "\n"
-    "Typically, `r` represents residuals, the difference\n"
-    "between a model prediction and data. Then, for :math:`|r|\\leq\\delta`,\n"
-    "`pseudo_huber` resembles the squared error and for :math:`|r|>\\delta` the\n"
-    "absolute error. This way, the Pseudo-Huber loss often achieves\n"
-    "a fast convergence in model fitting for small residuals like the squared\n"
-    "error loss function and still reduces the influence of outliers\n"
-    "(:math:`|r|>\\delta`) like the absolute error loss. As :math:`\\delta` is\n"
-    "the cutoff between squared and absolute error regimes, it has\n"
-    "to be tuned carefully for each problem. `pseudo_huber` is also\n"
-    "convex, making it suitable for gradient based optimization. [1]_ [2]_\n"
-    "\n"
-    ".. versionadded:: 0.15.0\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Hartley, Zisserman, \"Multiple View Geometry in Computer Vision\".\n"
-    "       2003. Cambridge University Press. p. 619\n"
-    ".. [2] Charbonnier et al. \"Deterministic edge-preserving regularization\n"
-    "       in computed imaging\". 1997. IEEE Trans. Image Processing.\n"
-    "       6 (2): 298 - 311.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Import all necessary modules.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import pseudo_huber, huber\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    "\n"
-    "Calculate the function for ``delta=1`` at ``r=2``.\n"
-    "\n"
-    ">>> pseudo_huber(1., 2.)\n"
-    "1.2360679774997898\n"
-    "\n"
-    "Calculate the function at ``r=2`` for different `delta` by providing\n"
-    "a list or NumPy array for `delta`.\n"
-    "\n"
-    ">>> pseudo_huber([1., 2., 4.], 3.)\n"
-    "array([2.16227766, 3.21110255, 4.        ])\n"
-    "\n"
-    "Calculate the function for ``delta=1`` at several points by providing\n"
-    "a list or NumPy array for `r`.\n"
-    "\n"
-    ">>> pseudo_huber(2., np.array([1., 1.5, 3., 4.]))\n"
-    "array([0.47213595, 1.        , 3.21110255, 4.94427191])\n"
-    "\n"
-    "The function can be calculated for different `delta` and `r` by\n"
-    "providing arrays for both with compatible shapes for broadcasting.\n"
-    "\n"
-    ">>> r = np.array([1., 2.5, 8., 10.])\n"
-    ">>> deltas = np.array([[1.], [5.], [9.]])\n"
-    ">>> print(r.shape, deltas.shape)\n"
-    "(4,) (3, 1)\n"
-    "\n"
-    ">>> pseudo_huber(deltas, r)\n"
-    "array([[ 0.41421356,  1.6925824 ,  7.06225775,  9.04987562],\n"
-    "       [ 0.49509757,  2.95084972, 22.16990566, 30.90169944],\n"
-    "       [ 0.49846624,  3.06693762, 27.37435121, 40.08261642]])\n"
-    "\n"
-    "Plot the function for different `delta`.\n"
-    "\n"
-    ">>> x = np.linspace(-4, 4, 500)\n"
-    ">>> deltas = [1, 2, 3]\n"
-    ">>> linestyles = [\"dashed\", \"dotted\", \"dashdot\"]\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> combined_plot_parameters = list(zip(deltas, linestyles))\n"
-    ">>> for delta, style in combined_plot_parameters:\n"
-    "...     ax.plot(x, pseudo_huber(delta, x), label=rf\"$\\delta={delta}$\",\n"
-    "...             ls=style)\n"
-    ">>> ax.legend(loc=\"upper center\")\n"
-    ">>> ax.set_xlabel(\"$x$\")\n"
-    ">>> ax.set_title(r\"Pseudo-Huber loss function $h_{\\delta}(x)$\")\n"
-    ">>> ax.set_xlim(-4, 4)\n"
-    ">>> ax.set_ylim(0, 8)\n"
-    ">>> plt.show()\n"
-    "\n"
-    "Finally, illustrate the difference between `huber` and `pseudo_huber` by\n"
-    "plotting them and their gradients with respect to `r`. The plot shows\n"
-    "that `pseudo_huber` is continuously differentiable while `huber` is not\n"
-    "at the points :math:`\\pm\\delta`.\n"
-    "\n"
-    ">>> def huber_grad(delta, x):\n"
-    "...     grad = np.copy(x)\n"
-    "...     linear_area = np.argwhere(np.abs(x) > delta)\n"
-    "...     grad[linear_area]=delta*np.sign(x[linear_area])\n"
-    "...     return grad\n"
-    ">>> def pseudo_huber_grad(delta, x):\n"
-    "...     return x* (1+(x/delta)**2)**(-0.5)\n"
-    ">>> x=np.linspace(-3, 3, 500)\n"
-    ">>> delta = 1.\n"
-    ">>> fig, ax = plt.subplots(figsize=(7, 7))\n"
-    ">>> ax.plot(x, huber(delta, x), label=\"Huber\", ls=\"dashed\")\n"
-    ">>> ax.plot(x, huber_grad(delta, x), label=\"Huber Gradient\", ls=\"dashdot\")\n"
-    ">>> ax.plot(x, pseudo_huber(delta, x), label=\"Pseudo-Huber\", ls=\"dotted\")\n"
-    ">>> ax.plot(x, pseudo_huber_grad(delta, x), label=\"Pseudo-Huber Gradient\",\n"
-    "...         ls=\"solid\")\n"
-    ">>> ax.legend(loc=\"upper center\")\n"
-    ">>> plt.show()")
-ufunc_pseudo_huber_loops[0] = loop_d_dd__As_ff_f
-ufunc_pseudo_huber_loops[1] = loop_d_dd__As_dd_d
-ufunc_pseudo_huber_types[0] = NPY_FLOAT
-ufunc_pseudo_huber_types[1] = NPY_FLOAT
-ufunc_pseudo_huber_types[2] = NPY_FLOAT
-ufunc_pseudo_huber_types[3] = NPY_DOUBLE
-ufunc_pseudo_huber_types[4] = NPY_DOUBLE
-ufunc_pseudo_huber_types[5] = NPY_DOUBLE
-ufunc_pseudo_huber_ptr[2*0] = _func_pseudo_huber
-ufunc_pseudo_huber_ptr[2*0+1] = ("pseudo_huber")
-ufunc_pseudo_huber_ptr[2*1] = _func_pseudo_huber
-ufunc_pseudo_huber_ptr[2*1+1] = ("pseudo_huber")
-ufunc_pseudo_huber_data[0] = &ufunc_pseudo_huber_ptr[2*0]
-ufunc_pseudo_huber_data[1] = &ufunc_pseudo_huber_ptr[2*1]
-pseudo_huber = np.PyUFunc_FromFuncAndData(ufunc_pseudo_huber_loops, ufunc_pseudo_huber_data, ufunc_pseudo_huber_types, 2, 2, 1, 0, "pseudo_huber", ufunc_pseudo_huber_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_radian_loops[2]
-cdef void *ufunc_radian_ptr[4]
-cdef void *ufunc_radian_data[2]
-cdef char ufunc_radian_types[8]
-cdef char *ufunc_radian_doc = (
-    "radian(d, m, s, out=None)\n"
-    "\n"
-    "Convert from degrees to radians.\n"
-    "\n"
-    "Returns the angle given in (d)egrees, (m)inutes, and (s)econds in\n"
-    "radians.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "d : array_like\n"
-    "    Degrees, can be real-valued.\n"
-    "m : array_like\n"
-    "    Minutes, can be real-valued.\n"
-    "s : array_like\n"
-    "    Seconds, can be real-valued.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of the inputs in radians.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "There are many ways to specify an angle.\n"
-    "\n"
-    ">>> sc.radian(90, 0, 0)\n"
-    "1.5707963267948966\n"
-    ">>> sc.radian(0, 60 * 90, 0)\n"
-    "1.5707963267948966\n"
-    ">>> sc.radian(0, 0, 60**2 * 90)\n"
-    "1.5707963267948966\n"
-    "\n"
-    "The inputs can be real-valued.\n"
-    "\n"
-    ">>> sc.radian(1.5, 0, 0)\n"
-    "0.02617993877991494\n"
-    ">>> sc.radian(1, 30, 0)\n"
-    "0.02617993877991494")
-ufunc_radian_loops[0] = loop_d_ddd__As_fff_f
-ufunc_radian_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_radian_types[0] = NPY_FLOAT
-ufunc_radian_types[1] = NPY_FLOAT
-ufunc_radian_types[2] = NPY_FLOAT
-ufunc_radian_types[3] = NPY_FLOAT
-ufunc_radian_types[4] = NPY_DOUBLE
-ufunc_radian_types[5] = NPY_DOUBLE
-ufunc_radian_types[6] = NPY_DOUBLE
-ufunc_radian_types[7] = NPY_DOUBLE
-ufunc_radian_ptr[2*0] = _func_cephes_radian
-ufunc_radian_ptr[2*0+1] = ("radian")
-ufunc_radian_ptr[2*1] = _func_cephes_radian
-ufunc_radian_ptr[2*1+1] = ("radian")
-ufunc_radian_data[0] = &ufunc_radian_ptr[2*0]
-ufunc_radian_data[1] = &ufunc_radian_ptr[2*1]
-radian = np.PyUFunc_FromFuncAndData(ufunc_radian_loops, ufunc_radian_data, ufunc_radian_types, 2, 3, 1, 0, "radian", ufunc_radian_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_rel_entr_loops[2]
-cdef void *ufunc_rel_entr_ptr[4]
-cdef void *ufunc_rel_entr_data[2]
-cdef char ufunc_rel_entr_types[6]
-cdef char *ufunc_rel_entr_doc = (
-    "rel_entr(x, y, out=None)\n"
-    "\n"
-    "Elementwise function for computing relative entropy.\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    \\mathrm{rel\\_entr}(x, y) =\n"
-    "        \\begin{cases}\n"
-    "            x \\log(x / y) & x > 0, y > 0 \\\\\n"
-    "            0 & x = 0, y \\ge 0 \\\\\n"
-    "            \\infty & \\text{otherwise}\n"
-    "        \\end{cases}\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x, y : array_like\n"
-    "    Input arrays\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Relative entropy of the inputs\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "entr, kl_div, scipy.stats.entropy\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    ".. versionadded:: 0.15.0\n"
-    "\n"
-    "This function is jointly convex in x and y.\n"
-    "\n"
-    "The origin of this function is in convex programming; see\n"
-    "[1]_. Given two discrete probability distributions :math:`p_1,\n"
-    "\\ldots, p_n` and :math:`q_1, \\ldots, q_n`, the definition of relative\n"
-    "entropy in the context of *information theory* is\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    \\sum_{i = 1}^n \\mathrm{rel\\_entr}(p_i, q_i).\n"
-    "\n"
-    "To compute the latter quantity, use `scipy.stats.entropy`.\n"
-    "\n"
-    "See [2]_ for details.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Boyd, Stephen and Lieven Vandenberghe. *Convex optimization*.\n"
-    "       Cambridge University Press, 2004.\n"
-    "       :doi:`https://doi.org/10.1017/CBO9780511804441`\n"
-    ".. [2] Kullback-Leibler divergence,\n"
-    "       https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence")
-ufunc_rel_entr_loops[0] = loop_d_dd__As_ff_f
-ufunc_rel_entr_loops[1] = loop_d_dd__As_dd_d
-ufunc_rel_entr_types[0] = NPY_FLOAT
-ufunc_rel_entr_types[1] = NPY_FLOAT
-ufunc_rel_entr_types[2] = NPY_FLOAT
-ufunc_rel_entr_types[3] = NPY_DOUBLE
-ufunc_rel_entr_types[4] = NPY_DOUBLE
-ufunc_rel_entr_types[5] = NPY_DOUBLE
-ufunc_rel_entr_ptr[2*0] = _func_rel_entr
-ufunc_rel_entr_ptr[2*0+1] = ("rel_entr")
-ufunc_rel_entr_ptr[2*1] = _func_rel_entr
-ufunc_rel_entr_ptr[2*1+1] = ("rel_entr")
-ufunc_rel_entr_data[0] = &ufunc_rel_entr_ptr[2*0]
-ufunc_rel_entr_data[1] = &ufunc_rel_entr_ptr[2*1]
-rel_entr = np.PyUFunc_FromFuncAndData(ufunc_rel_entr_loops, ufunc_rel_entr_data, ufunc_rel_entr_types, 2, 2, 1, 0, "rel_entr", ufunc_rel_entr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_round_loops[2]
-cdef void *ufunc_round_ptr[4]
-cdef void *ufunc_round_data[2]
-cdef char ufunc_round_types[4]
-cdef char *ufunc_round_doc = (
-    "round(x, out=None)\n"
-    "\n"
-    "Round to the nearest integer.\n"
-    "\n"
-    "Returns the nearest integer to `x`.  If `x` ends in 0.5 exactly,\n"
-    "the nearest even integer is chosen.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real valued input.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The nearest integers to the elements of `x`. The result is of\n"
-    "    floating type, not integer type.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It rounds to even.\n"
-    "\n"
-    ">>> sc.round([0.5, 1.5])\n"
-    "array([0., 2.])")
-ufunc_round_loops[0] = loop_d_d__As_f_f
-ufunc_round_loops[1] = loop_d_d__As_d_d
-ufunc_round_types[0] = NPY_FLOAT
-ufunc_round_types[1] = NPY_FLOAT
-ufunc_round_types[2] = NPY_DOUBLE
-ufunc_round_types[3] = NPY_DOUBLE
-ufunc_round_ptr[2*0] = _func_cephes_round
-ufunc_round_ptr[2*0+1] = ("round")
-ufunc_round_ptr[2*1] = _func_cephes_round
-ufunc_round_ptr[2*1+1] = ("round")
-ufunc_round_data[0] = &ufunc_round_ptr[2*0]
-ufunc_round_data[1] = &ufunc_round_ptr[2*1]
-round = np.PyUFunc_FromFuncAndData(ufunc_round_loops, ufunc_round_data, ufunc_round_types, 2, 1, 1, 0, "round", ufunc_round_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_shichi_loops[4]
-cdef void *ufunc_shichi_ptr[8]
-cdef void *ufunc_shichi_data[4]
-cdef char ufunc_shichi_types[12]
-cdef char *ufunc_shichi_doc = (
-    "shichi(x, out=None)\n"
-    "\n"
-    "Hyperbolic sine and cosine integrals.\n"
-    "\n"
-    "The hyperbolic sine integral is\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "  \\int_0^x \\frac{\\sinh{t}}{t}dt\n"
-    "\n"
-    "and the hyperbolic cosine integral is\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "  \\gamma + \\log(x) + \\int_0^x \\frac{\\cosh{t} - 1}{t} dt\n"
-    "\n"
-    "where :math:`\\gamma` is Euler's constant and :math:`\\log` is the\n"
-    "principal branch of the logarithm [1]_.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real or complex points at which to compute the hyperbolic sine\n"
-    "    and cosine integrals.\n"
-    "out : tuple of ndarray, optional\n"
-    "    Optional output arrays for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "si : scalar or ndarray\n"
-    "    Hyperbolic sine integral at ``x``\n"
-    "ci : scalar or ndarray\n"
-    "    Hyperbolic cosine integral at ``x``\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "sici : Sine and cosine integrals.\n"
-    "exp1 : Exponential integral E1.\n"
-    "expi : Exponential integral Ei.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "For real arguments with ``x < 0``, ``chi`` is the real part of the\n"
-    "hyperbolic cosine integral. For such points ``chi(x)`` and ``chi(x\n"
-    "+ 0j)`` differ by a factor of ``1j*pi``.\n"
-    "\n"
-    "For real arguments the function is computed by calling Cephes'\n"
-    "[2]_ *shichi* routine. For complex arguments the algorithm is based\n"
-    "on Mpmath's [3]_ *shi* and *chi* routines.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    "       (See Section 5.2.)\n"
-    ".. [2] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    ".. [3] Fredrik Johansson and others.\n"
-    "       \"mpmath: a Python library for arbitrary-precision floating-point\n"
-    "       arithmetic\" (Version 0.19) http://mpmath.org/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> from scipy.special import shichi, sici\n"
-    "\n"
-    "`shichi` accepts real or complex input:\n"
-    "\n"
-    ">>> shichi(0.5)\n"
-    "(0.5069967498196671, -0.05277684495649357)\n"
-    ">>> shichi(0.5 + 2.5j)\n"
-    "((0.11772029666668238+1.831091777729851j),\n"
-    " (0.29912435887648825+1.7395351121166562j))\n"
-    "\n"
-    "The hyperbolic sine and cosine integrals Shi(z) and Chi(z) are\n"
-    "related to the sine and cosine integrals Si(z) and Ci(z) by\n"
-    "\n"
-    "* Shi(z) = -i*Si(i*z)\n"
-    "* Chi(z) = Ci(-i*z) + i*pi/2\n"
-    "\n"
-    ">>> z = 0.25 + 5j\n"
-    ">>> shi, chi = shichi(z)\n"
-    ">>> shi, -1j*sici(1j*z)[0]            # Should be the same.\n"
-    "((-0.04834719325101729+1.5469354086921228j),\n"
-    " (-0.04834719325101729+1.5469354086921228j))\n"
-    ">>> chi, sici(-1j*z)[1] + 1j*np.pi/2  # Should be the same.\n"
-    "((-0.19568708973868087+1.556276312103824j),\n"
-    " (-0.19568708973868087+1.556276312103824j))\n"
-    "\n"
-    "Plot the functions evaluated on the real axis:\n"
-    "\n"
-    ">>> xp = np.geomspace(1e-8, 4.0, 250)\n"
-    ">>> x = np.concatenate((-xp[::-1], xp))\n"
-    ">>> shi, chi = shichi(x)\n"
-    "\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> ax.plot(x, shi, label='Shi(x)')\n"
-    ">>> ax.plot(x, chi, '--', label='Chi(x)')\n"
-    ">>> ax.set_xlabel('x')\n"
-    ">>> ax.set_title('Hyperbolic Sine and Cosine Integrals')\n"
-    ">>> ax.legend(shadow=True, framealpha=1, loc='lower right')\n"
-    ">>> ax.grid(True)\n"
-    ">>> plt.show()")
-ufunc_shichi_loops[0] = loop_i_d_dd_As_f_ff
-ufunc_shichi_loops[1] = loop_i_d_dd_As_d_dd
-ufunc_shichi_loops[2] = loop_i_D_DD_As_F_FF
-ufunc_shichi_loops[3] = loop_i_D_DD_As_D_DD
-ufunc_shichi_types[0] = NPY_FLOAT
-ufunc_shichi_types[1] = NPY_FLOAT
-ufunc_shichi_types[2] = NPY_FLOAT
-ufunc_shichi_types[3] = NPY_DOUBLE
-ufunc_shichi_types[4] = NPY_DOUBLE
-ufunc_shichi_types[5] = NPY_DOUBLE
-ufunc_shichi_types[6] = NPY_CFLOAT
-ufunc_shichi_types[7] = NPY_CFLOAT
-ufunc_shichi_types[8] = NPY_CFLOAT
-ufunc_shichi_types[9] = NPY_CDOUBLE
-ufunc_shichi_types[10] = NPY_CDOUBLE
-ufunc_shichi_types[11] = NPY_CDOUBLE
-ufunc_shichi_ptr[2*0] = _func_cephes_shichi_wrap
-ufunc_shichi_ptr[2*0+1] = ("shichi")
-ufunc_shichi_ptr[2*1] = _func_cephes_shichi_wrap
-ufunc_shichi_ptr[2*1+1] = ("shichi")
-ufunc_shichi_ptr[2*2] = _func_cshichi
-ufunc_shichi_ptr[2*2+1] = ("shichi")
-ufunc_shichi_ptr[2*3] = _func_cshichi
-ufunc_shichi_ptr[2*3+1] = ("shichi")
-ufunc_shichi_data[0] = &ufunc_shichi_ptr[2*0]
-ufunc_shichi_data[1] = &ufunc_shichi_ptr[2*1]
-ufunc_shichi_data[2] = &ufunc_shichi_ptr[2*2]
-ufunc_shichi_data[3] = &ufunc_shichi_ptr[2*3]
-shichi = np.PyUFunc_FromFuncAndData(ufunc_shichi_loops, ufunc_shichi_data, ufunc_shichi_types, 4, 1, 2, 0, "shichi", ufunc_shichi_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_sici_loops[4]
-cdef void *ufunc_sici_ptr[8]
-cdef void *ufunc_sici_data[4]
-cdef char ufunc_sici_types[12]
-cdef char *ufunc_sici_doc = (
-    "sici(x, out=None)\n"
-    "\n"
-    "Sine and cosine integrals.\n"
-    "\n"
-    "The sine integral is\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "  \\int_0^x \\frac{\\sin{t}}{t}dt\n"
-    "\n"
-    "and the cosine integral is\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "  \\gamma + \\log(x) + \\int_0^x \\frac{\\cos{t} - 1}{t}dt\n"
-    "\n"
-    "where :math:`\\gamma` is Euler's constant and :math:`\\log` is the\n"
-    "principal branch of the logarithm [1]_.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real or complex points at which to compute the sine and cosine\n"
-    "    integrals.\n"
-    "out : tuple of ndarray, optional\n"
-    "    Optional output arrays for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "si : scalar or ndarray\n"
-    "    Sine integral at ``x``\n"
-    "ci : scalar or ndarray\n"
-    "    Cosine integral at ``x``\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "shichi : Hyperbolic sine and cosine integrals.\n"
-    "exp1 : Exponential integral E1.\n"
-    "expi : Exponential integral Ei.\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "For real arguments with ``x < 0``, ``ci`` is the real part of the\n"
-    "cosine integral. For such points ``ci(x)`` and ``ci(x + 0j)``\n"
-    "differ by a factor of ``1j*pi``.\n"
-    "\n"
-    "For real arguments the function is computed by calling Cephes'\n"
-    "[2]_ *sici* routine. For complex arguments the algorithm is based\n"
-    "on Mpmath's [3]_ *si* and *ci* routines.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Milton Abramowitz and Irene A. Stegun, eds.\n"
-    "       Handbook of Mathematical Functions with Formulas,\n"
-    "       Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
-    "       (See Section 5.2.)\n"
-    ".. [2] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    ".. [3] Fredrik Johansson and others.\n"
-    "       \"mpmath: a Python library for arbitrary-precision floating-point\n"
-    "       arithmetic\" (Version 0.19) http://mpmath.org/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> from scipy.special import sici, exp1\n"
-    "\n"
-    "`sici` accepts real or complex input:\n"
-    "\n"
-    ">>> sici(2.5)\n"
-    "(1.7785201734438267, 0.2858711963653835)\n"
-    ">>> sici(2.5 + 3j)\n"
-    "((4.505735874563953+0.06863305018999577j),\n"
-    "(0.0793644206906966-2.935510262937543j))\n"
-    "\n"
-    "For z in the right half plane, the sine and cosine integrals are\n"
-    "related to the exponential integral E1 (implemented in SciPy as\n"
-    "`scipy.special.exp1`) by\n"
-    "\n"
-    "* Si(z) = (E1(i*z) - E1(-i*z))/2i + pi/2\n"
-    "* Ci(z) = -(E1(i*z) + E1(-i*z))/2\n"
-    "\n"
-    "See [1]_ (equations 5.2.21 and 5.2.23).\n"
-    "\n"
-    "We can verify these relations:\n"
-    "\n"
-    ">>> z = 2 - 3j\n"
-    ">>> sici(z)\n"
-    "((4.54751388956229-1.3991965806460565j),\n"
-    "(1.408292501520851+2.9836177420296055j))\n"
-    "\n"
-    ">>> (exp1(1j*z) - exp1(-1j*z))/2j + np.pi/2  # Same as sine integral\n"
-    "(4.54751388956229-1.3991965806460565j)\n"
-    "\n"
-    ">>> -(exp1(1j*z) + exp1(-1j*z))/2            # Same as cosine integral\n"
-    "(1.408292501520851+2.9836177420296055j)\n"
-    "\n"
-    "Plot the functions evaluated on the real axis; the dotted horizontal\n"
-    "lines are at pi/2 and -pi/2:\n"
-    "\n"
-    ">>> x = np.linspace(-16, 16, 150)\n"
-    ">>> si, ci = sici(x)\n"
-    "\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> ax.plot(x, si, label='Si(x)')\n"
-    ">>> ax.plot(x, ci, '--', label='Ci(x)')\n"
-    ">>> ax.legend(shadow=True, framealpha=1, loc='upper left')\n"
-    ">>> ax.set_xlabel('x')\n"
-    ">>> ax.set_title('Sine and Cosine Integrals')\n"
-    ">>> ax.axhline(np.pi/2, linestyle=':', alpha=0.5, color='k')\n"
-    ">>> ax.axhline(-np.pi/2, linestyle=':', alpha=0.5, color='k')\n"
-    ">>> ax.grid(True)\n"
-    ">>> plt.show()")
-ufunc_sici_loops[0] = loop_i_d_dd_As_f_ff
-ufunc_sici_loops[1] = loop_i_d_dd_As_d_dd
-ufunc_sici_loops[2] = loop_i_D_DD_As_F_FF
-ufunc_sici_loops[3] = loop_i_D_DD_As_D_DD
-ufunc_sici_types[0] = NPY_FLOAT
-ufunc_sici_types[1] = NPY_FLOAT
-ufunc_sici_types[2] = NPY_FLOAT
-ufunc_sici_types[3] = NPY_DOUBLE
-ufunc_sici_types[4] = NPY_DOUBLE
-ufunc_sici_types[5] = NPY_DOUBLE
-ufunc_sici_types[6] = NPY_CFLOAT
-ufunc_sici_types[7] = NPY_CFLOAT
-ufunc_sici_types[8] = NPY_CFLOAT
-ufunc_sici_types[9] = NPY_CDOUBLE
-ufunc_sici_types[10] = NPY_CDOUBLE
-ufunc_sici_types[11] = NPY_CDOUBLE
-ufunc_sici_ptr[2*0] = _func_cephes_sici_wrap
-ufunc_sici_ptr[2*0+1] = ("sici")
-ufunc_sici_ptr[2*1] = _func_cephes_sici_wrap
-ufunc_sici_ptr[2*1+1] = ("sici")
-ufunc_sici_ptr[2*2] = _func_csici
-ufunc_sici_ptr[2*2+1] = ("sici")
-ufunc_sici_ptr[2*3] = _func_csici
-ufunc_sici_ptr[2*3+1] = ("sici")
-ufunc_sici_data[0] = &ufunc_sici_ptr[2*0]
-ufunc_sici_data[1] = &ufunc_sici_ptr[2*1]
-ufunc_sici_data[2] = &ufunc_sici_ptr[2*2]
-ufunc_sici_data[3] = &ufunc_sici_ptr[2*3]
-sici = np.PyUFunc_FromFuncAndData(ufunc_sici_loops, ufunc_sici_data, ufunc_sici_types, 4, 1, 2, 0, "sici", ufunc_sici_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_sindg_loops[2]
-cdef void *ufunc_sindg_ptr[4]
-cdef void *ufunc_sindg_data[2]
-cdef char ufunc_sindg_types[4]
-cdef char *ufunc_sindg_doc = (
-    "sindg(x, out=None)\n"
-    "\n"
-    "Sine of the angle `x` given in degrees.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Angle, given in degrees.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Sine at the input.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "cosdg, tandg, cotdg\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is more accurate than using sine directly.\n"
-    "\n"
-    ">>> x = 180 * np.arange(3)\n"
-    ">>> sc.sindg(x)\n"
-    "array([ 0., -0.,  0.])\n"
-    ">>> np.sin(x * np.pi / 180)\n"
-    "array([ 0.0000000e+00,  1.2246468e-16, -2.4492936e-16])")
-ufunc_sindg_loops[0] = loop_d_d__As_f_f
-ufunc_sindg_loops[1] = loop_d_d__As_d_d
-ufunc_sindg_types[0] = NPY_FLOAT
-ufunc_sindg_types[1] = NPY_FLOAT
-ufunc_sindg_types[2] = NPY_DOUBLE
-ufunc_sindg_types[3] = NPY_DOUBLE
-ufunc_sindg_ptr[2*0] = _func_cephes_sindg
-ufunc_sindg_ptr[2*0+1] = ("sindg")
-ufunc_sindg_ptr[2*1] = _func_cephes_sindg
-ufunc_sindg_ptr[2*1+1] = ("sindg")
-ufunc_sindg_data[0] = &ufunc_sindg_ptr[2*0]
-ufunc_sindg_data[1] = &ufunc_sindg_ptr[2*1]
-sindg = np.PyUFunc_FromFuncAndData(ufunc_sindg_loops, ufunc_sindg_data, ufunc_sindg_types, 2, 1, 1, 0, "sindg", ufunc_sindg_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_smirnov_loops[3]
-cdef void *ufunc_smirnov_ptr[6]
-cdef void *ufunc_smirnov_data[3]
-cdef char ufunc_smirnov_types[9]
-cdef char *ufunc_smirnov_doc = (
-    "smirnov(n, d, out=None)\n"
-    "\n"
-    "Kolmogorov-Smirnov complementary cumulative distribution function\n"
-    "\n"
-    "Returns the exact Kolmogorov-Smirnov complementary cumulative\n"
-    "distribution function,(aka the Survival Function) of Dn+ (or Dn-)\n"
-    "for a one-sided test of equality between an empirical and a\n"
-    "theoretical distribution. It is equal to the probability that the\n"
-    "maximum difference between a theoretical distribution and an empirical\n"
-    "one based on `n` samples is greater than d.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : int\n"
-    "  Number of samples\n"
-    "d : float array_like\n"
-    "  Deviation between the Empirical CDF (ECDF) and the target CDF.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The value(s) of smirnov(n, d), Prob(Dn+ >= d) (Also Prob(Dn- >= d))\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "smirnovi : The Inverse Survival Function for the distribution\n"
-    "scipy.stats.ksone : Provides the functionality as a continuous distribution\n"
-    "kolmogorov, kolmogi : Functions for the two-sided distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "`smirnov` is used by `stats.kstest` in the application of the\n"
-    "Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this\n"
-    "function is exposed in `scpy.special`, but the recommended way to achieve\n"
-    "the most accurate CDF/SF/PDF/PPF/ISF computations is to use the\n"
-    "`stats.ksone` distribution.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import smirnov\n"
-    ">>> from scipy.stats import norm\n"
-    "\n"
-    "Show the probability of a gap at least as big as 0, 0.5 and 1.0 for a\n"
-    "sample of size 5.\n"
-    "\n"
-    ">>> smirnov(5, [0, 0.5, 1.0])\n"
-    "array([ 1.   ,  0.056,  0.   ])\n"
-    "\n"
-    "Compare a sample of size 5 against N(0, 1), the standard normal\n"
-    "distribution with mean 0 and standard deviation 1.\n"
-    "\n"
-    "`x` is the sample.\n"
-    "\n"
-    ">>> x = np.array([-1.392, -0.135, 0.114, 0.190, 1.82])\n"
-    "\n"
-    ">>> target = norm(0, 1)\n"
-    ">>> cdfs = target.cdf(x)\n"
-    ">>> cdfs\n"
-    "array([0.0819612 , 0.44630594, 0.5453811 , 0.57534543, 0.9656205 ])\n"
-    "\n"
-    "Construct the empirical CDF and the K-S statistics (Dn+, Dn-, Dn).\n"
-    "\n"
-    ">>> n = len(x)\n"
-    ">>> ecdfs = np.arange(n+1, dtype=float)/n\n"
-    ">>> cols = np.column_stack([x, ecdfs[1:], cdfs, cdfs - ecdfs[:n],\n"
-    "...                        ecdfs[1:] - cdfs])\n"
-    ">>> with np.printoptions(precision=3):\n"
-    "...    print(cols)\n"
-    "[[-1.392  0.2    0.082  0.082  0.118]\n"
-    " [-0.135  0.4    0.446  0.246 -0.046]\n"
-    " [ 0.114  0.6    0.545  0.145  0.055]\n"
-    " [ 0.19   0.8    0.575 -0.025  0.225]\n"
-    " [ 1.82   1.     0.966  0.166  0.034]]\n"
-    ">>> gaps = cols[:, -2:]\n"
-    ">>> Dnpm = np.max(gaps, axis=0)\n"
-    ">>> print(f'Dn-={Dnpm[0]:f}, Dn+={Dnpm[1]:f}')\n"
-    "Dn-=0.246306, Dn+=0.224655\n"
-    ">>> probs = smirnov(n, Dnpm)\n"
-    ">>> print(f'For a sample of size {n} drawn from N(0, 1):',\n"
-    "...       f' Smirnov n={n}: Prob(Dn- >= {Dnpm[0]:f}) = {probs[0]:.4f}',\n"
-    "...       f' Smirnov n={n}: Prob(Dn+ >= {Dnpm[1]:f}) = {probs[1]:.4f}',\n"
-    "...       sep='\\n')\n"
-    "For a sample of size 5 drawn from N(0, 1):\n"
-    " Smirnov n=5: Prob(Dn- >= 0.246306) = 0.4711\n"
-    " Smirnov n=5: Prob(Dn+ >= 0.224655) = 0.5245\n"
-    "\n"
-    "Plot the empirical CDF and the standard normal CDF.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> plt.step(np.concatenate(([-2.5], x, [2.5])),\n"
-    "...          np.concatenate((ecdfs, [1])),\n"
-    "...          where='post', label='Empirical CDF')\n"
-    ">>> xx = np.linspace(-2.5, 2.5, 100)\n"
-    ">>> plt.plot(xx, target.cdf(xx), '--', label='CDF for N(0, 1)')\n"
-    "\n"
-    "Add vertical lines marking Dn+ and Dn-.\n"
-    "\n"
-    ">>> iminus, iplus = np.argmax(gaps, axis=0)\n"
-    ">>> plt.vlines([x[iminus]], ecdfs[iminus], cdfs[iminus], color='r',\n"
-    "...            alpha=0.5, lw=4)\n"
-    ">>> plt.vlines([x[iplus]], cdfs[iplus], ecdfs[iplus+1], color='m',\n"
-    "...            alpha=0.5, lw=4)\n"
-    "\n"
-    ">>> plt.grid(True)\n"
-    ">>> plt.legend(framealpha=1, shadow=True)\n"
-    ">>> plt.show()")
-ufunc_smirnov_loops[0] = loop_d_pd__As_pd_d
-ufunc_smirnov_loops[1] = loop_d_dd__As_ff_f
-ufunc_smirnov_loops[2] = loop_d_dd__As_dd_d
-ufunc_smirnov_types[0] = NPY_INTP
-ufunc_smirnov_types[1] = NPY_DOUBLE
-ufunc_smirnov_types[2] = NPY_DOUBLE
-ufunc_smirnov_types[3] = NPY_FLOAT
-ufunc_smirnov_types[4] = NPY_FLOAT
-ufunc_smirnov_types[5] = NPY_FLOAT
-ufunc_smirnov_types[6] = NPY_DOUBLE
-ufunc_smirnov_types[7] = NPY_DOUBLE
-ufunc_smirnov_types[8] = NPY_DOUBLE
-ufunc_smirnov_ptr[2*0] = _func_cephes_smirnov_wrap
-ufunc_smirnov_ptr[2*0+1] = ("smirnov")
-ufunc_smirnov_ptr[2*1] = _func_smirnov_unsafe
-ufunc_smirnov_ptr[2*1+1] = ("smirnov")
-ufunc_smirnov_ptr[2*2] = _func_smirnov_unsafe
-ufunc_smirnov_ptr[2*2+1] = ("smirnov")
-ufunc_smirnov_data[0] = &ufunc_smirnov_ptr[2*0]
-ufunc_smirnov_data[1] = &ufunc_smirnov_ptr[2*1]
-ufunc_smirnov_data[2] = &ufunc_smirnov_ptr[2*2]
-smirnov = np.PyUFunc_FromFuncAndData(ufunc_smirnov_loops, ufunc_smirnov_data, ufunc_smirnov_types, 3, 2, 1, 0, "smirnov", ufunc_smirnov_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_smirnovi_loops[3]
-cdef void *ufunc_smirnovi_ptr[6]
-cdef void *ufunc_smirnovi_data[3]
-cdef char ufunc_smirnovi_types[9]
-cdef char *ufunc_smirnovi_doc = (
-    "smirnovi(n, p, out=None)\n"
-    "\n"
-    "Inverse to `smirnov`\n"
-    "\n"
-    "Returns `d` such that ``smirnov(n, d) == p``, the critical value\n"
-    "corresponding to `p`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : int\n"
-    "  Number of samples\n"
-    "p : float array_like\n"
-    "    Probability\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The value(s) of smirnovi(n, p), the critical values.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "smirnov : The Survival Function (SF) for the distribution\n"
-    "scipy.stats.ksone : Provides the functionality as a continuous distribution\n"
-    "kolmogorov, kolmogi : Functions for the two-sided distribution\n"
-    "scipy.stats.kstwobign : Two-sided Kolmogorov-Smirnov distribution, large n\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "`smirnov` is used by `stats.kstest` in the application of the\n"
-    "Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this\n"
-    "function is exposed in `scpy.special`, but the recommended way to achieve\n"
-    "the most accurate CDF/SF/PDF/PPF/ISF computations is to use the\n"
-    "`stats.ksone` distribution.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> from scipy.special import smirnovi, smirnov\n"
-    "\n"
-    ">>> n = 24\n"
-    ">>> deviations = [0.1, 0.2, 0.3]\n"
-    "\n"
-    "Use `smirnov` to compute the complementary CDF of the Smirnov\n"
-    "distribution for the given number of samples and deviations.\n"
-    "\n"
-    ">>> p = smirnov(n, deviations)\n"
-    ">>> p\n"
-    "array([0.58105083, 0.12826832, 0.01032231])\n"
-    "\n"
-    "The inverse function ``smirnovi(n, p)`` returns ``deviations``.\n"
-    "\n"
-    ">>> smirnovi(n, p)\n"
-    "array([0.1, 0.2, 0.3])")
-ufunc_smirnovi_loops[0] = loop_d_pd__As_pd_d
-ufunc_smirnovi_loops[1] = loop_d_dd__As_ff_f
-ufunc_smirnovi_loops[2] = loop_d_dd__As_dd_d
-ufunc_smirnovi_types[0] = NPY_INTP
-ufunc_smirnovi_types[1] = NPY_DOUBLE
-ufunc_smirnovi_types[2] = NPY_DOUBLE
-ufunc_smirnovi_types[3] = NPY_FLOAT
-ufunc_smirnovi_types[4] = NPY_FLOAT
-ufunc_smirnovi_types[5] = NPY_FLOAT
-ufunc_smirnovi_types[6] = NPY_DOUBLE
-ufunc_smirnovi_types[7] = NPY_DOUBLE
-ufunc_smirnovi_types[8] = NPY_DOUBLE
-ufunc_smirnovi_ptr[2*0] = _func_cephes_smirnovi_wrap
-ufunc_smirnovi_ptr[2*0+1] = ("smirnovi")
-ufunc_smirnovi_ptr[2*1] = _func_smirnovi_unsafe
-ufunc_smirnovi_ptr[2*1+1] = ("smirnovi")
-ufunc_smirnovi_ptr[2*2] = _func_smirnovi_unsafe
-ufunc_smirnovi_ptr[2*2+1] = ("smirnovi")
-ufunc_smirnovi_data[0] = &ufunc_smirnovi_ptr[2*0]
-ufunc_smirnovi_data[1] = &ufunc_smirnovi_ptr[2*1]
-ufunc_smirnovi_data[2] = &ufunc_smirnovi_ptr[2*2]
-smirnovi = np.PyUFunc_FromFuncAndData(ufunc_smirnovi_loops, ufunc_smirnovi_data, ufunc_smirnovi_types, 3, 2, 1, 0, "smirnovi", ufunc_smirnovi_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_spence_loops[4]
-cdef void *ufunc_spence_ptr[8]
-cdef void *ufunc_spence_data[4]
-cdef char ufunc_spence_types[8]
-cdef char *ufunc_spence_doc = (
-    "spence(z, out=None)\n"
-    "\n"
-    "Spence's function, also known as the dilogarithm.\n"
-    "\n"
-    "It is defined to be\n"
-    "\n"
-    ".. math::\n"
-    "  \\int_1^z \\frac{\\log(t)}{1 - t}dt\n"
-    "\n"
-    "for complex :math:`z`, where the contour of integration is taken\n"
-    "to avoid the branch cut of the logarithm. Spence's function is\n"
-    "analytic everywhere except the negative real axis where it has a\n"
-    "branch cut.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "z : array_like\n"
-    "    Points at which to evaluate Spence's function\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "s : scalar or ndarray\n"
-    "    Computed values of Spence's function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "There is a different convention which defines Spence's function by\n"
-    "the integral\n"
-    "\n"
-    ".. math::\n"
-    "  -\\int_0^z \\frac{\\log(1 - t)}{t}dt;\n"
-    "\n"
-    "this is our ``spence(1 - z)``.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import spence\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    "\n"
-    "The function is defined for complex inputs:\n"
-    "\n"
-    ">>> spence([1-1j, 1.5+2j, 3j, -10-5j])\n"
-    "array([-0.20561676+0.91596559j, -0.86766909-1.39560134j,\n"
-    "       -0.59422064-2.49129918j, -1.14044398+6.80075924j])\n"
-    "\n"
-    "For complex inputs on the branch cut, which is the negative real axis,\n"
-    "the function returns the limit for ``z`` with positive imaginary part.\n"
-    "For example, in the following, note the sign change of the imaginary\n"
-    "part of the output for ``z = -2`` and ``z = -2 - 1e-8j``:\n"
-    "\n"
-    ">>> spence([-2 + 1e-8j, -2, -2 - 1e-8j])\n"
-    "array([2.32018041-3.45139229j, 2.32018042-3.4513923j ,\n"
-    "       2.32018041+3.45139229j])\n"
-    "\n"
-    "The function returns ``nan`` for real inputs on the branch cut:\n"
-    "\n"
-    ">>> spence(-1.5)\n"
-    "nan\n"
-    "\n"
-    "Verify some particular values: ``spence(0) = pi**2/6``,\n"
-    "``spence(1) = 0`` and ``spence(2) = -pi**2/12``.\n"
-    "\n"
-    ">>> spence([0, 1, 2])\n"
-    "array([ 1.64493407,  0.        , -0.82246703])\n"
-    ">>> np.pi**2/6, -np.pi**2/12\n"
-    "(1.6449340668482264, -0.8224670334241132)\n"
-    "\n"
-    "Verify the identity::\n"
-    "\n"
-    "    spence(z) + spence(1 - z) = pi**2/6 - log(z)*log(1 - z)\n"
-    "\n"
-    ">>> z = 3 + 4j\n"
-    ">>> spence(z) + spence(1 - z)\n"
-    "(-2.6523186143876067+1.8853470951513935j)\n"
-    ">>> np.pi**2/6 - np.log(z)*np.log(1 - z)\n"
-    "(-2.652318614387606+1.885347095151394j)\n"
-    "\n"
-    "Plot the function for positive real input.\n"
-    "\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(0, 6, 400)\n"
-    ">>> ax.plot(x, spence(x))\n"
-    ">>> ax.grid()\n"
-    ">>> ax.set_xlabel('x')\n"
-    ">>> ax.set_title('spence(x)')\n"
-    ">>> plt.show()")
-ufunc_spence_loops[0] = loop_d_d__As_f_f
-ufunc_spence_loops[1] = loop_d_d__As_d_d
-ufunc_spence_loops[2] = loop_D_D__As_F_F
-ufunc_spence_loops[3] = loop_D_D__As_D_D
-ufunc_spence_types[0] = NPY_FLOAT
-ufunc_spence_types[1] = NPY_FLOAT
-ufunc_spence_types[2] = NPY_DOUBLE
-ufunc_spence_types[3] = NPY_DOUBLE
-ufunc_spence_types[4] = NPY_CFLOAT
-ufunc_spence_types[5] = NPY_CFLOAT
-ufunc_spence_types[6] = NPY_CDOUBLE
-ufunc_spence_types[7] = NPY_CDOUBLE
-ufunc_spence_ptr[2*0] = _func_cephes_spence
-ufunc_spence_ptr[2*0+1] = ("spence")
-ufunc_spence_ptr[2*1] = _func_cephes_spence
-ufunc_spence_ptr[2*1+1] = ("spence")
-ufunc_spence_ptr[2*2] = _func_cspence
-ufunc_spence_ptr[2*2+1] = ("spence")
-ufunc_spence_ptr[2*3] = _func_cspence
-ufunc_spence_ptr[2*3+1] = ("spence")
-ufunc_spence_data[0] = &ufunc_spence_ptr[2*0]
-ufunc_spence_data[1] = &ufunc_spence_ptr[2*1]
-ufunc_spence_data[2] = &ufunc_spence_ptr[2*2]
-ufunc_spence_data[3] = &ufunc_spence_ptr[2*3]
-spence = np.PyUFunc_FromFuncAndData(ufunc_spence_loops, ufunc_spence_data, ufunc_spence_types, 4, 1, 1, 0, "spence", ufunc_spence_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_stdtr_loops[2]
-cdef void *ufunc_stdtr_ptr[4]
-cdef void *ufunc_stdtr_data[2]
-cdef char ufunc_stdtr_types[6]
-cdef char *ufunc_stdtr_doc = (
-    "stdtr(df, t, out=None)\n"
-    "\n"
-    "Student t distribution cumulative distribution function\n"
-    "\n"
-    "Returns the integral:\n"
-    "\n"
-    ".. math::\n"
-    "    \\frac{\\Gamma((df+1)/2)}{\\sqrt{\\pi df} \\Gamma(df/2)}\n"
-    "    \\int_{-\\infty}^t (1+x^2/df)^{-(df+1)/2}\\, dx\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "df : array_like\n"
-    "    Degrees of freedom\n"
-    "t : array_like\n"
-    "    Upper bound of the integral\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Value of the Student t CDF at t\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "stdtridf : inverse of stdtr with respect to `df`\n"
-    "stdtrit : inverse of stdtr with respect to `t`\n"
-    "scipy.stats.t : student t distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The student t distribution is also available as `scipy.stats.t`.\n"
-    "Calling `stdtr` directly can improve performance compared to the\n"
-    "``cdf`` method of `scipy.stats.t` (see last example below).\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function for ``df=3`` at ``t=1``.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import stdtr\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> stdtr(3, 1)\n"
-    "0.8044988905221148\n"
-    "\n"
-    "Plot the function for three different degrees of freedom.\n"
-    "\n"
-    ">>> x = np.linspace(-10, 10, 1000)\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> parameters = [(1, \"solid\"), (3, \"dashed\"), (10, \"dotted\")]\n"
-    ">>> for (df, linestyle) in parameters:\n"
-    "...     ax.plot(x, stdtr(df, x), ls=linestyle, label=f\"$df={df}$\")\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_title(\"Student t distribution cumulative distribution function\")\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The function can be computed for several degrees of freedom at the same\n"
-    "time by providing a NumPy array or list for `df`:\n"
-    "\n"
-    ">>> stdtr([1, 2, 3], 1)\n"
-    "array([0.75      , 0.78867513, 0.80449889])\n"
-    "\n"
-    "It is possible to calculate the function at several points for several\n"
-    "different degrees of freedom simultaneously by providing arrays for `df`\n"
-    "and `t` with shapes compatible for broadcasting. Compute `stdtr` at\n"
-    "4 points for 3 degrees of freedom resulting in an array of shape 3x4.\n"
-    "\n"
-    ">>> dfs = np.array([[1], [2], [3]])\n"
-    ">>> t = np.array([2, 4, 6, 8])\n"
-    ">>> dfs.shape, t.shape\n"
-    "((3, 1), (4,))\n"
-    "\n"
-    ">>> stdtr(dfs, t)\n"
-    "array([[0.85241638, 0.92202087, 0.94743154, 0.96041658],\n"
-    "       [0.90824829, 0.97140452, 0.98666426, 0.99236596],\n"
-    "       [0.93033702, 0.98599577, 0.99536364, 0.99796171]])\n"
-    "\n"
-    "The t distribution is also available as `scipy.stats.t`. Calling `stdtr`\n"
-    "directly can be much faster than calling the ``cdf`` method of\n"
-    "`scipy.stats.t`. To get the same results, one must use the following\n"
-    "parametrization: ``scipy.stats.t(df).cdf(x) = stdtr(df, x)``.\n"
-    "\n"
-    ">>> from scipy.stats import t\n"
-    ">>> df, x = 3, 1\n"
-    ">>> stdtr_result = stdtr(df, x)  # this can be faster than below\n"
-    ">>> stats_result = t(df).cdf(x)\n"
-    ">>> stats_result == stdtr_result  # test that results are equal\n"
-    "True")
-ufunc_stdtr_loops[0] = loop_d_dd__As_ff_f
-ufunc_stdtr_loops[1] = loop_d_dd__As_dd_d
-ufunc_stdtr_types[0] = NPY_FLOAT
-ufunc_stdtr_types[1] = NPY_FLOAT
-ufunc_stdtr_types[2] = NPY_FLOAT
-ufunc_stdtr_types[3] = NPY_DOUBLE
-ufunc_stdtr_types[4] = NPY_DOUBLE
-ufunc_stdtr_types[5] = NPY_DOUBLE
-ufunc_stdtr_ptr[2*0] = _func_stdtr
-ufunc_stdtr_ptr[2*0+1] = ("stdtr")
-ufunc_stdtr_ptr[2*1] = _func_stdtr
-ufunc_stdtr_ptr[2*1+1] = ("stdtr")
-ufunc_stdtr_data[0] = &ufunc_stdtr_ptr[2*0]
-ufunc_stdtr_data[1] = &ufunc_stdtr_ptr[2*1]
-stdtr = np.PyUFunc_FromFuncAndData(ufunc_stdtr_loops, ufunc_stdtr_data, ufunc_stdtr_types, 2, 2, 1, 0, "stdtr", ufunc_stdtr_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_stdtridf_loops[2]
-cdef void *ufunc_stdtridf_ptr[4]
-cdef void *ufunc_stdtridf_data[2]
-cdef char ufunc_stdtridf_types[6]
-cdef char *ufunc_stdtridf_doc = (
-    "stdtridf(p, t, out=None)\n"
-    "\n"
-    "Inverse of `stdtr` vs df\n"
-    "\n"
-    "Returns the argument df such that stdtr(df, t) is equal to `p`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "p : array_like\n"
-    "    Probability\n"
-    "t : array_like\n"
-    "    Upper bound of the integral\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "df : scalar or ndarray\n"
-    "    Value of `df` such that ``stdtr(df, t) == p``\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "stdtr : Student t CDF\n"
-    "stdtrit : inverse of stdtr with respect to `t`\n"
-    "scipy.stats.t : Student t distribution\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Compute the student t cumulative distribution function for one\n"
-    "parameter set.\n"
-    "\n"
-    ">>> from scipy.special import stdtr, stdtridf\n"
-    ">>> df, x = 5, 2\n"
-    ">>> cdf_value = stdtr(df, x)\n"
-    ">>> cdf_value\n"
-    "0.9490302605850709\n"
-    "\n"
-    "Verify that `stdtridf` recovers the original value for `df` given\n"
-    "the CDF value and `x`.\n"
-    "\n"
-    ">>> stdtridf(cdf_value, x)\n"
-    "5.0")
-ufunc_stdtridf_loops[0] = loop_d_dd__As_ff_f
-ufunc_stdtridf_loops[1] = loop_d_dd__As_dd_d
-ufunc_stdtridf_types[0] = NPY_FLOAT
-ufunc_stdtridf_types[1] = NPY_FLOAT
-ufunc_stdtridf_types[2] = NPY_FLOAT
-ufunc_stdtridf_types[3] = NPY_DOUBLE
-ufunc_stdtridf_types[4] = NPY_DOUBLE
-ufunc_stdtridf_types[5] = NPY_DOUBLE
-ufunc_stdtridf_ptr[2*0] = _func_stdtridf
-ufunc_stdtridf_ptr[2*0+1] = ("stdtridf")
-ufunc_stdtridf_ptr[2*1] = _func_stdtridf
-ufunc_stdtridf_ptr[2*1+1] = ("stdtridf")
-ufunc_stdtridf_data[0] = &ufunc_stdtridf_ptr[2*0]
-ufunc_stdtridf_data[1] = &ufunc_stdtridf_ptr[2*1]
-stdtridf = np.PyUFunc_FromFuncAndData(ufunc_stdtridf_loops, ufunc_stdtridf_data, ufunc_stdtridf_types, 2, 2, 1, 0, "stdtridf", ufunc_stdtridf_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_stdtrit_loops[2]
-cdef void *ufunc_stdtrit_ptr[4]
-cdef void *ufunc_stdtrit_data[2]
-cdef char ufunc_stdtrit_types[6]
-cdef char *ufunc_stdtrit_doc = (
-    "stdtrit(df, p, out=None)\n"
-    "\n"
-    "The `p`-th quantile of the student t distribution.\n"
-    "\n"
-    "This function is the inverse of the student t distribution cumulative\n"
-    "distribution function (CDF), returning `t` such that `stdtr(df, t) = p`.\n"
-    "\n"
-    "Returns the argument `t` such that stdtr(df, t) is equal to `p`.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "df : array_like\n"
-    "    Degrees of freedom\n"
-    "p : array_like\n"
-    "    Probability\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "t : scalar or ndarray\n"
-    "    Value of `t` such that ``stdtr(df, t) == p``\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "stdtr : Student t CDF\n"
-    "stdtridf : inverse of stdtr with respect to `df`\n"
-    "scipy.stats.t : Student t distribution\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The student t distribution is also available as `scipy.stats.t`. Calling\n"
-    "`stdtrit` directly can improve performance compared to the ``ppf``\n"
-    "method of `scipy.stats.t` (see last example below).\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "`stdtrit` represents the inverse of the student t distribution CDF which\n"
-    "is available as `stdtr`. Here, we calculate the CDF for ``df`` at\n"
-    "``x=1``. `stdtrit` then returns ``1`` up to floating point errors\n"
-    "given the same value for `df` and the computed CDF value.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import stdtr, stdtrit\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> df = 3\n"
-    ">>> x = 1\n"
-    ">>> cdf_value = stdtr(df, x)\n"
-    ">>> stdtrit(df, cdf_value)\n"
-    "0.9999999994418539\n"
-    "\n"
-    "Plot the function for three different degrees of freedom.\n"
-    "\n"
-    ">>> x = np.linspace(0, 1, 1000)\n"
-    ">>> parameters = [(1, \"solid\"), (2, \"dashed\"), (5, \"dotted\")]\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> for (df, linestyle) in parameters:\n"
-    "...     ax.plot(x, stdtrit(df, x), ls=linestyle, label=f\"$df={df}$\")\n"
-    ">>> ax.legend()\n"
-    ">>> ax.set_ylim(-10, 10)\n"
-    ">>> ax.set_title(\"Student t distribution quantile function\")\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The function can be computed for several degrees of freedom at the same\n"
-    "time by providing a NumPy array or list for `df`:\n"
-    "\n"
-    ">>> stdtrit([1, 2, 3], 0.7)\n"
-    "array([0.72654253, 0.6172134 , 0.58438973])\n"
-    "\n"
-    "It is possible to calculate the function at several points for several\n"
-    "different degrees of freedom simultaneously by providing arrays for `df`\n"
-    "and `p` with shapes compatible for broadcasting. Compute `stdtrit` at\n"
-    "4 points for 3 degrees of freedom resulting in an array of shape 3x4.\n"
-    "\n"
-    ">>> dfs = np.array([[1], [2], [3]])\n"
-    ">>> p = np.array([0.2, 0.4, 0.7, 0.8])\n"
-    ">>> dfs.shape, p.shape\n"
-    "((3, 1), (4,))\n"
-    "\n"
-    ">>> stdtrit(dfs, p)\n"
-    "array([[-1.37638192, -0.3249197 ,  0.72654253,  1.37638192],\n"
-    "       [-1.06066017, -0.28867513,  0.6172134 ,  1.06066017],\n"
-    "       [-0.97847231, -0.27667066,  0.58438973,  0.97847231]])\n"
-    "\n"
-    "The t distribution is also available as `scipy.stats.t`. Calling `stdtrit`\n"
-    "directly can be much faster than calling the ``ppf`` method of\n"
-    "`scipy.stats.t`. To get the same results, one must use the following\n"
-    "parametrization: ``scipy.stats.t(df).ppf(x) = stdtrit(df, x)``.\n"
-    "\n"
-    ">>> from scipy.stats import t\n"
-    ">>> df, x = 3, 0.5\n"
-    ">>> stdtrit_result = stdtrit(df, x)  # this can be faster than below\n"
-    ">>> stats_result = t(df).ppf(x)\n"
-    ">>> stats_result == stdtrit_result  # test that results are equal\n"
-    "True")
-ufunc_stdtrit_loops[0] = loop_d_dd__As_ff_f
-ufunc_stdtrit_loops[1] = loop_d_dd__As_dd_d
-ufunc_stdtrit_types[0] = NPY_FLOAT
-ufunc_stdtrit_types[1] = NPY_FLOAT
-ufunc_stdtrit_types[2] = NPY_FLOAT
-ufunc_stdtrit_types[3] = NPY_DOUBLE
-ufunc_stdtrit_types[4] = NPY_DOUBLE
-ufunc_stdtrit_types[5] = NPY_DOUBLE
-ufunc_stdtrit_ptr[2*0] = _func_stdtrit
-ufunc_stdtrit_ptr[2*0+1] = ("stdtrit")
-ufunc_stdtrit_ptr[2*1] = _func_stdtrit
-ufunc_stdtrit_ptr[2*1+1] = ("stdtrit")
-ufunc_stdtrit_data[0] = &ufunc_stdtrit_ptr[2*0]
-ufunc_stdtrit_data[1] = &ufunc_stdtrit_ptr[2*1]
-stdtrit = np.PyUFunc_FromFuncAndData(ufunc_stdtrit_loops, ufunc_stdtrit_data, ufunc_stdtrit_types, 2, 2, 1, 0, "stdtrit", ufunc_stdtrit_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_struve_loops[2]
-cdef void *ufunc_struve_ptr[4]
-cdef void *ufunc_struve_data[2]
-cdef char ufunc_struve_types[6]
-cdef char *ufunc_struve_doc = (
-    "struve(v, x, out=None)\n"
-    "\n"
-    "Struve function.\n"
-    "\n"
-    "Return the value of the Struve function of order `v` at `x`.  The Struve\n"
-    "function is defined as,\n"
-    "\n"
-    ".. math::\n"
-    "    H_v(x) = (z/2)^{v + 1} \\sum_{n=0}^\\infty\n"
-    "    \\frac{(-1)^n (z/2)^{2n}}{\\Gamma(n + \\frac{3}{2}) \\Gamma(n + v + \\frac{3}{2})},\n"
-    "\n"
-    "where :math:`\\Gamma` is the gamma function.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "v : array_like\n"
-    "    Order of the Struve function (float).\n"
-    "x : array_like\n"
-    "    Argument of the Struve function (float; must be positive unless `v` is\n"
-    "    an integer).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "H : scalar or ndarray\n"
-    "    Value of the Struve function of order `v` at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "modstruve: Modified Struve function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Three methods discussed in [1]_ are used to evaluate the Struve function:\n"
-    "\n"
-    "- power series\n"
-    "- expansion in Bessel functions (if :math:`|z| < |v| + 20`)\n"
-    "- asymptotic large-z expansion (if :math:`z \\geq 0.7v + 12`)\n"
-    "\n"
-    "Rounding errors are estimated based on the largest terms in the sums, and\n"
-    "the result associated with the smallest error is returned.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] NIST Digital Library of Mathematical Functions\n"
-    "       https://dlmf.nist.gov/11\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the Struve function of order 1 at 2.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import struve\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> struve(1, 2.)\n"
-    "0.6467637282835622\n"
-    "\n"
-    "Calculate the Struve function at 2 for orders 1, 2 and 3 by providing\n"
-    "a list for the order parameter `v`.\n"
-    "\n"
-    ">>> struve([1, 2, 3], 2.)\n"
-    "array([0.64676373, 0.28031806, 0.08363767])\n"
-    "\n"
-    "Calculate the Struve function of order 1 for several points by providing\n"
-    "an array for `x`.\n"
-    "\n"
-    ">>> points = np.array([2., 5., 8.])\n"
-    ">>> struve(1, points)\n"
-    "array([0.64676373, 0.80781195, 0.48811605])\n"
-    "\n"
-    "Compute the Struve function for several orders at several points by\n"
-    "providing arrays for `v` and `z`. The arrays have to be broadcastable\n"
-    "to the correct shapes.\n"
-    "\n"
-    ">>> orders = np.array([[1], [2], [3]])\n"
-    ">>> points.shape, orders.shape\n"
-    "((3,), (3, 1))\n"
-    "\n"
-    ">>> struve(orders, points)\n"
-    "array([[0.64676373, 0.80781195, 0.48811605],\n"
-    "       [0.28031806, 1.56937455, 1.51769363],\n"
-    "       [0.08363767, 1.50872065, 2.98697513]])\n"
-    "\n"
-    "Plot the Struve functions of order 0 to 3 from -10 to 10.\n"
-    "\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(-10., 10., 1000)\n"
-    ">>> for i in range(4):\n"
-    "...     ax.plot(x, struve(i, x), label=f'$H_{i!r}$')\n"
-    ">>> ax.legend(ncol=2)\n"
-    ">>> ax.set_xlim(-10, 10)\n"
-    ">>> ax.set_title(r\"Struve functions $H_{\\nu}$\")\n"
-    ">>> plt.show()")
-ufunc_struve_loops[0] = loop_d_dd__As_ff_f
-ufunc_struve_loops[1] = loop_d_dd__As_dd_d
-ufunc_struve_types[0] = NPY_FLOAT
-ufunc_struve_types[1] = NPY_FLOAT
-ufunc_struve_types[2] = NPY_FLOAT
-ufunc_struve_types[3] = NPY_DOUBLE
-ufunc_struve_types[4] = NPY_DOUBLE
-ufunc_struve_types[5] = NPY_DOUBLE
-ufunc_struve_ptr[2*0] = _func_cephes_struve_h
-ufunc_struve_ptr[2*0+1] = ("struve")
-ufunc_struve_ptr[2*1] = _func_cephes_struve_h
-ufunc_struve_ptr[2*1+1] = ("struve")
-ufunc_struve_data[0] = &ufunc_struve_ptr[2*0]
-ufunc_struve_data[1] = &ufunc_struve_ptr[2*1]
-struve = np.PyUFunc_FromFuncAndData(ufunc_struve_loops, ufunc_struve_data, ufunc_struve_types, 2, 2, 1, 0, "struve", ufunc_struve_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_tandg_loops[2]
-cdef void *ufunc_tandg_ptr[4]
-cdef void *ufunc_tandg_data[2]
-cdef char ufunc_tandg_types[4]
-cdef char *ufunc_tandg_doc = (
-    "tandg(x, out=None)\n"
-    "\n"
-    "Tangent of angle `x` given in degrees.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Angle, given in degrees.\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results.\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Tangent at the input.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "sindg, cosdg, cotdg\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import scipy.special as sc\n"
-    "\n"
-    "It is more accurate than using tangent directly.\n"
-    "\n"
-    ">>> x = 180 * np.arange(3)\n"
-    ">>> sc.tandg(x)\n"
-    "array([0., 0., 0.])\n"
-    ">>> np.tan(x * np.pi / 180)\n"
-    "array([ 0.0000000e+00, -1.2246468e-16, -2.4492936e-16])")
-ufunc_tandg_loops[0] = loop_d_d__As_f_f
-ufunc_tandg_loops[1] = loop_d_d__As_d_d
-ufunc_tandg_types[0] = NPY_FLOAT
-ufunc_tandg_types[1] = NPY_FLOAT
-ufunc_tandg_types[2] = NPY_DOUBLE
-ufunc_tandg_types[3] = NPY_DOUBLE
-ufunc_tandg_ptr[2*0] = _func_cephes_tandg
-ufunc_tandg_ptr[2*0+1] = ("tandg")
-ufunc_tandg_ptr[2*1] = _func_cephes_tandg
-ufunc_tandg_ptr[2*1+1] = ("tandg")
-ufunc_tandg_data[0] = &ufunc_tandg_ptr[2*0]
-ufunc_tandg_data[1] = &ufunc_tandg_ptr[2*1]
-tandg = np.PyUFunc_FromFuncAndData(ufunc_tandg_loops, ufunc_tandg_data, ufunc_tandg_types, 2, 1, 1, 0, "tandg", ufunc_tandg_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_tklmbda_loops[2]
-cdef void *ufunc_tklmbda_ptr[4]
-cdef void *ufunc_tklmbda_data[2]
-cdef char ufunc_tklmbda_types[6]
-cdef char *ufunc_tklmbda_doc = (
-    "tklmbda(x, lmbda, out=None)\n"
-    "\n"
-    "Cumulative distribution function of the Tukey lambda distribution.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x, lmbda : array_like\n"
-    "    Parameters\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "cdf : scalar or ndarray\n"
-    "    Value of the Tukey lambda CDF\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "scipy.stats.tukeylambda : Tukey lambda distribution\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> from scipy.special import tklmbda, expit\n"
-    "\n"
-    "Compute the cumulative distribution function (CDF) of the Tukey lambda\n"
-    "distribution at several ``x`` values for `lmbda` = -1.5.\n"
-    "\n"
-    ">>> x = np.linspace(-2, 2, 9)\n"
-    ">>> x\n"
-    "array([-2. , -1.5, -1. , -0.5,  0. ,  0.5,  1. ,  1.5,  2. ])\n"
-    ">>> tklmbda(x, -1.5)\n"
-    "array([0.34688734, 0.3786554 , 0.41528805, 0.45629737, 0.5       ,\n"
-    "       0.54370263, 0.58471195, 0.6213446 , 0.65311266])\n"
-    "\n"
-    "When `lmbda` is 0, the function is the logistic sigmoid function,\n"
-    "which is implemented in `scipy.special` as `expit`.\n"
-    "\n"
-    ">>> tklmbda(x, 0)\n"
-    "array([0.11920292, 0.18242552, 0.26894142, 0.37754067, 0.5       ,\n"
-    "       0.62245933, 0.73105858, 0.81757448, 0.88079708])\n"
-    ">>> expit(x)\n"
-    "array([0.11920292, 0.18242552, 0.26894142, 0.37754067, 0.5       ,\n"
-    "       0.62245933, 0.73105858, 0.81757448, 0.88079708])\n"
-    "\n"
-    "When `lmbda` is 1, the Tukey lambda distribution is uniform on the\n"
-    "interval [-1, 1], so the CDF increases linearly.\n"
-    "\n"
-    ">>> t = np.linspace(-1, 1, 9)\n"
-    ">>> tklmbda(t, 1)\n"
-    "array([0.   , 0.125, 0.25 , 0.375, 0.5  , 0.625, 0.75 , 0.875, 1.   ])\n"
-    "\n"
-    "In the following, we generate plots for several values of `lmbda`.\n"
-    "\n"
-    "The first figure shows graphs for `lmbda` <= 0.\n"
-    "\n"
-    ">>> styles = ['-', '-.', '--', ':']\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(-12, 12, 500)\n"
-    ">>> for k, lmbda in enumerate([-1.0, -0.5, 0.0]):\n"
-    "...     y = tklmbda(x, lmbda)\n"
-    "...     ax.plot(x, y, styles[k], label=rf'$\\lambda$ = {lmbda:-4.1f}')\n"
-    "\n"
-    ">>> ax.set_title(r'tklmbda(x, $\\lambda$)')\n"
-    ">>> ax.set_label('x')\n"
-    ">>> ax.legend(framealpha=1, shadow=True)\n"
-    ">>> ax.grid(True)\n"
-    "\n"
-    "The second figure shows graphs for `lmbda` > 0.  The dots in the\n"
-    "graphs show the bounds of the support of the distribution.\n"
-    "\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(-4.2, 4.2, 500)\n"
-    ">>> lmbdas = [0.25, 0.5, 1.0, 1.5]\n"
-    ">>> for k, lmbda in enumerate(lmbdas):\n"
-    "...     y = tklmbda(x, lmbda)\n"
-    "...     ax.plot(x, y, styles[k], label=fr'$\\lambda$ = {lmbda}')\n"
-    "\n"
-    ">>> ax.set_prop_cycle(None)\n"
-    ">>> for lmbda in lmbdas:\n"
-    "...     ax.plot([-1/lmbda, 1/lmbda], [0, 1], '.', ms=8)\n"
-    "\n"
-    ">>> ax.set_title(r'tklmbda(x, $\\lambda$)')\n"
-    ">>> ax.set_xlabel('x')\n"
-    ">>> ax.legend(framealpha=1, shadow=True)\n"
-    ">>> ax.grid(True)\n"
-    "\n"
-    ">>> plt.tight_layout()\n"
-    ">>> plt.show()\n"
-    "\n"
-    "The CDF of the Tukey lambda distribution is also implemented as the\n"
-    "``cdf`` method of `scipy.stats.tukeylambda`.  In the following,\n"
-    "``tukeylambda.cdf(x, -0.5)`` and ``tklmbda(x, -0.5)`` compute the\n"
-    "same values:\n"
-    "\n"
-    ">>> from scipy.stats import tukeylambda\n"
-    ">>> x = np.linspace(-2, 2, 9)\n"
-    "\n"
-    ">>> tukeylambda.cdf(x, -0.5)\n"
-    "array([0.21995157, 0.27093858, 0.33541677, 0.41328161, 0.5       ,\n"
-    "       0.58671839, 0.66458323, 0.72906142, 0.78004843])\n"
-    "\n"
-    ">>> tklmbda(x, -0.5)\n"
-    "array([0.21995157, 0.27093858, 0.33541677, 0.41328161, 0.5       ,\n"
-    "       0.58671839, 0.66458323, 0.72906142, 0.78004843])\n"
-    "\n"
-    "The implementation in ``tukeylambda`` also provides location and scale\n"
-    "parameters, and other methods such as ``pdf()`` (the probability\n"
-    "density function) and ``ppf()`` (the inverse of the CDF), so for\n"
-    "working with the Tukey lambda distribution, ``tukeylambda`` is more\n"
-    "generally useful.  The primary advantage of ``tklmbda`` is that it is\n"
-    "significantly faster than ``tukeylambda.cdf``.")
-ufunc_tklmbda_loops[0] = loop_d_dd__As_ff_f
-ufunc_tklmbda_loops[1] = loop_d_dd__As_dd_d
-ufunc_tklmbda_types[0] = NPY_FLOAT
-ufunc_tklmbda_types[1] = NPY_FLOAT
-ufunc_tklmbda_types[2] = NPY_FLOAT
-ufunc_tklmbda_types[3] = NPY_DOUBLE
-ufunc_tklmbda_types[4] = NPY_DOUBLE
-ufunc_tklmbda_types[5] = NPY_DOUBLE
-ufunc_tklmbda_ptr[2*0] = _func_cephes_tukeylambdacdf
-ufunc_tklmbda_ptr[2*0+1] = ("tklmbda")
-ufunc_tklmbda_ptr[2*1] = _func_cephes_tukeylambdacdf
-ufunc_tklmbda_ptr[2*1+1] = ("tklmbda")
-ufunc_tklmbda_data[0] = &ufunc_tklmbda_ptr[2*0]
-ufunc_tklmbda_data[1] = &ufunc_tklmbda_ptr[2*1]
-tklmbda = np.PyUFunc_FromFuncAndData(ufunc_tklmbda_loops, ufunc_tklmbda_data, ufunc_tklmbda_types, 2, 2, 1, 0, "tklmbda", ufunc_tklmbda_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_voigt_profile_loops[2]
-cdef void *ufunc_voigt_profile_ptr[4]
-cdef void *ufunc_voigt_profile_data[2]
-cdef char ufunc_voigt_profile_types[8]
-cdef char *ufunc_voigt_profile_doc = (
-    "voigt_profile(x, sigma, gamma, out=None)\n"
-    "\n"
-    "Voigt profile.\n"
-    "\n"
-    "The Voigt profile is a convolution of a 1-D Normal distribution with\n"
-    "standard deviation ``sigma`` and a 1-D Cauchy distribution with half-width at\n"
-    "half-maximum ``gamma``.\n"
-    "\n"
-    "If ``sigma = 0``, PDF of Cauchy distribution is returned.\n"
-    "Conversely, if ``gamma = 0``, PDF of Normal distribution is returned.\n"
-    "If ``sigma = gamma = 0``, the return value is ``Inf`` for ``x = 0``,\n"
-    "and ``0`` for all other ``x``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Real argument\n"
-    "sigma : array_like\n"
-    "    The standard deviation of the Normal distribution part\n"
-    "gamma : array_like\n"
-    "    The half-width at half-maximum of the Cauchy distribution part\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    The Voigt profile at the given arguments\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "wofz : Faddeeva function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "It can be expressed in terms of Faddeeva function\n"
-    "\n"
-    ".. math:: V(x; \\sigma, \\gamma) = \\frac{Re[w(z)]}{\\sigma\\sqrt{2\\pi}},\n"
-    ".. math:: z = \\frac{x + i\\gamma}{\\sqrt{2}\\sigma}\n"
-    "\n"
-    "where :math:`w(z)` is the Faddeeva function.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] https://en.wikipedia.org/wiki/Voigt_profile\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function at point 2 for ``sigma=1`` and ``gamma=1``.\n"
-    "\n"
-    ">>> from scipy.special import voigt_profile\n"
-    ">>> import numpy as np\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> voigt_profile(2, 1., 1.)\n"
-    "0.09071519942627544\n"
-    "\n"
-    "Calculate the function at several points by providing a NumPy array\n"
-    "for `x`.\n"
-    "\n"
-    ">>> values = np.array([-2., 0., 5])\n"
-    ">>> voigt_profile(values, 1., 1.)\n"
-    "array([0.0907152 , 0.20870928, 0.01388492])\n"
-    "\n"
-    "Plot the function for different parameter sets.\n"
-    "\n"
-    ">>> fig, ax = plt.subplots(figsize=(8, 8))\n"
-    ">>> x = np.linspace(-10, 10, 500)\n"
-    ">>> parameters_list = [(1.5, 0., \"solid\"), (1.3, 0.5, \"dashed\"),\n"
-    "...                    (0., 1.8, \"dotted\"), (1., 1., \"dashdot\")]\n"
-    ">>> for params in parameters_list:\n"
-    "...     sigma, gamma, linestyle = params\n"
-    "...     voigt = voigt_profile(x, sigma, gamma)\n"
-    "...     ax.plot(x, voigt, label=rf\"$\\sigma={sigma},\\, \\gamma={gamma}$\",\n"
-    "...             ls=linestyle)\n"
-    ">>> ax.legend()\n"
-    ">>> plt.show()\n"
-    "\n"
-    "Verify visually that the Voigt profile indeed arises as the convolution\n"
-    "of a normal and a Cauchy distribution.\n"
-    "\n"
-    ">>> from scipy.signal import convolve\n"
-    ">>> x, dx = np.linspace(-10, 10, 500, retstep=True)\n"
-    ">>> def gaussian(x, sigma):\n"
-    "...     return np.exp(-0.5 * x**2/sigma**2)/(sigma * np.sqrt(2*np.pi))\n"
-    ">>> def cauchy(x, gamma):\n"
-    "...     return gamma/(np.pi * (np.square(x)+gamma**2))\n"
-    ">>> sigma = 2\n"
-    ">>> gamma = 1\n"
-    ">>> gauss_profile = gaussian(x, sigma)\n"
-    ">>> cauchy_profile = cauchy(x, gamma)\n"
-    ">>> convolved = dx * convolve(cauchy_profile, gauss_profile, mode=\"same\")\n"
-    ">>> voigt = voigt_profile(x, sigma, gamma)\n"
-    ">>> fig, ax = plt.subplots(figsize=(8, 8))\n"
-    ">>> ax.plot(x, gauss_profile, label=\"Gauss: $G$\", c='b')\n"
-    ">>> ax.plot(x, cauchy_profile, label=\"Cauchy: $C$\", c='y', ls=\"dashed\")\n"
-    ">>> xx = 0.5*(x[1:] + x[:-1])  # midpoints\n"
-    ">>> ax.plot(xx, convolved[1:], label=\"Convolution: $G * C$\", ls='dashdot',\n"
-    "...         c='k')\n"
-    ">>> ax.plot(x, voigt, label=\"Voigt\", ls='dotted', c='r')\n"
-    ">>> ax.legend()\n"
-    ">>> plt.show()")
-ufunc_voigt_profile_loops[0] = loop_d_ddd__As_fff_f
-ufunc_voigt_profile_loops[1] = loop_d_ddd__As_ddd_d
-ufunc_voigt_profile_types[0] = NPY_FLOAT
-ufunc_voigt_profile_types[1] = NPY_FLOAT
-ufunc_voigt_profile_types[2] = NPY_FLOAT
-ufunc_voigt_profile_types[3] = NPY_FLOAT
-ufunc_voigt_profile_types[4] = NPY_DOUBLE
-ufunc_voigt_profile_types[5] = NPY_DOUBLE
-ufunc_voigt_profile_types[6] = NPY_DOUBLE
-ufunc_voigt_profile_types[7] = NPY_DOUBLE
-ufunc_voigt_profile_ptr[2*0] = scipy.special._ufuncs_cxx._export_faddeeva_voigt_profile
-ufunc_voigt_profile_ptr[2*0+1] = ("voigt_profile")
-ufunc_voigt_profile_ptr[2*1] = scipy.special._ufuncs_cxx._export_faddeeva_voigt_profile
-ufunc_voigt_profile_ptr[2*1+1] = ("voigt_profile")
-ufunc_voigt_profile_data[0] = &ufunc_voigt_profile_ptr[2*0]
-ufunc_voigt_profile_data[1] = &ufunc_voigt_profile_ptr[2*1]
-voigt_profile = np.PyUFunc_FromFuncAndData(ufunc_voigt_profile_loops, ufunc_voigt_profile_data, ufunc_voigt_profile_types, 2, 3, 1, 0, "voigt_profile", ufunc_voigt_profile_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_wofz_loops[2]
-cdef void *ufunc_wofz_ptr[4]
-cdef void *ufunc_wofz_data[2]
-cdef char ufunc_wofz_types[4]
-cdef char *ufunc_wofz_doc = (
-    "wofz(z, out=None)\n"
-    "\n"
-    "Faddeeva function\n"
-    "\n"
-    "Returns the value of the Faddeeva function for complex argument::\n"
-    "\n"
-    "    exp(-z**2) * erfc(-i*z)\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "z : array_like\n"
-    "    complex argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Value of the Faddeeva function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "dawsn, erf, erfc, erfcx, erfi\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Steven G. Johnson, Faddeeva W function implementation.\n"
-    "   http://ab-initio.mit.edu/Faddeeva\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy import special\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    "\n"
-    ">>> x = np.linspace(-3, 3)\n"
-    ">>> z = special.wofz(x)\n"
-    "\n"
-    ">>> plt.plot(x, z.real, label='wofz(x).real')\n"
-    ">>> plt.plot(x, z.imag, label='wofz(x).imag')\n"
-    ">>> plt.xlabel('$x$')\n"
-    ">>> plt.legend(framealpha=1, shadow=True)\n"
-    ">>> plt.grid(alpha=0.25)\n"
-    ">>> plt.show()")
-ufunc_wofz_loops[0] = loop_D_D__As_F_F
-ufunc_wofz_loops[1] = loop_D_D__As_D_D
-ufunc_wofz_types[0] = NPY_CFLOAT
-ufunc_wofz_types[1] = NPY_CFLOAT
-ufunc_wofz_types[2] = NPY_CDOUBLE
-ufunc_wofz_types[3] = NPY_CDOUBLE
-ufunc_wofz_ptr[2*0] = scipy.special._ufuncs_cxx._export_faddeeva_w
-ufunc_wofz_ptr[2*0+1] = ("wofz")
-ufunc_wofz_ptr[2*1] = scipy.special._ufuncs_cxx._export_faddeeva_w
-ufunc_wofz_ptr[2*1+1] = ("wofz")
-ufunc_wofz_data[0] = &ufunc_wofz_ptr[2*0]
-ufunc_wofz_data[1] = &ufunc_wofz_ptr[2*1]
-wofz = np.PyUFunc_FromFuncAndData(ufunc_wofz_loops, ufunc_wofz_data, ufunc_wofz_types, 2, 1, 1, 0, "wofz", ufunc_wofz_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_wrightomega_loops[4]
-cdef void *ufunc_wrightomega_ptr[8]
-cdef void *ufunc_wrightomega_data[4]
-cdef char ufunc_wrightomega_types[8]
-cdef char *ufunc_wrightomega_doc = (
-    "wrightomega(z, out=None)\n"
-    "\n"
-    "Wright Omega function.\n"
-    "\n"
-    "Defined as the solution to\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    \\omega + \\log(\\omega) = z\n"
-    "\n"
-    "where :math:`\\log` is the principal branch of the complex logarithm.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "z : array_like\n"
-    "    Points at which to evaluate the Wright Omega function\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function values\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "omega : scalar or ndarray\n"
-    "    Values of the Wright Omega function\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "lambertw : The Lambert W function\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    ".. versionadded:: 0.19.0\n"
-    "\n"
-    "The function can also be defined as\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    \\omega(z) = W_{K(z)}(e^z)\n"
-    "\n"
-    "where :math:`K(z) = \\lceil (\\Im(z) - \\pi)/(2\\pi) \\rceil` is the\n"
-    "unwinding number and :math:`W` is the Lambert W function.\n"
-    "\n"
-    "The implementation here is taken from [1]_.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Lawrence, Corless, and Jeffrey, \"Algorithm 917: Complex\n"
-    "       Double-Precision Evaluation of the Wright :math:`\\omega`\n"
-    "       Function.\" ACM Transactions on Mathematical Software,\n"
-    "       2012. :doi:`10.1145/2168773.2168779`.\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import wrightomega, lambertw\n"
-    "\n"
-    ">>> wrightomega([-2, -1, 0, 1, 2])\n"
-    "array([0.12002824, 0.27846454, 0.56714329, 1.        , 1.5571456 ])\n"
-    "\n"
-    "Complex input:\n"
-    "\n"
-    ">>> wrightomega(3 + 5j)\n"
-    "(1.5804428632097158+3.8213626783287937j)\n"
-    "\n"
-    "Verify that ``wrightomega(z)`` satisfies ``w + log(w) = z``:\n"
-    "\n"
-    ">>> w = -5 + 4j\n"
-    ">>> wrightomega(w + np.log(w))\n"
-    "(-5+4j)\n"
-    "\n"
-    "Verify the connection to ``lambertw``:\n"
-    "\n"
-    ">>> z = 0.5 + 3j\n"
-    ">>> wrightomega(z)\n"
-    "(0.0966015889280649+1.4937828458191993j)\n"
-    ">>> lambertw(np.exp(z))\n"
-    "(0.09660158892806493+1.4937828458191993j)\n"
-    "\n"
-    ">>> z = 0.5 + 4j\n"
-    ">>> wrightomega(z)\n"
-    "(-0.3362123489037213+2.282986001579032j)\n"
-    ">>> lambertw(np.exp(z), k=1)\n"
-    "(-0.33621234890372115+2.282986001579032j)")
-ufunc_wrightomega_loops[0] = loop_d_d__As_f_f
-ufunc_wrightomega_loops[1] = loop_d_d__As_d_d
-ufunc_wrightomega_loops[2] = loop_D_D__As_F_F
-ufunc_wrightomega_loops[3] = loop_D_D__As_D_D
-ufunc_wrightomega_types[0] = NPY_FLOAT
-ufunc_wrightomega_types[1] = NPY_FLOAT
-ufunc_wrightomega_types[2] = NPY_DOUBLE
-ufunc_wrightomega_types[3] = NPY_DOUBLE
-ufunc_wrightomega_types[4] = NPY_CFLOAT
-ufunc_wrightomega_types[5] = NPY_CFLOAT
-ufunc_wrightomega_types[6] = NPY_CDOUBLE
-ufunc_wrightomega_types[7] = NPY_CDOUBLE
-ufunc_wrightomega_ptr[2*0] = scipy.special._ufuncs_cxx._export_wrightomega_real
-ufunc_wrightomega_ptr[2*0+1] = ("wrightomega")
-ufunc_wrightomega_ptr[2*1] = scipy.special._ufuncs_cxx._export_wrightomega_real
-ufunc_wrightomega_ptr[2*1+1] = ("wrightomega")
-ufunc_wrightomega_ptr[2*2] = scipy.special._ufuncs_cxx._export_wrightomega
-ufunc_wrightomega_ptr[2*2+1] = ("wrightomega")
-ufunc_wrightomega_ptr[2*3] = scipy.special._ufuncs_cxx._export_wrightomega
-ufunc_wrightomega_ptr[2*3+1] = ("wrightomega")
-ufunc_wrightomega_data[0] = &ufunc_wrightomega_ptr[2*0]
-ufunc_wrightomega_data[1] = &ufunc_wrightomega_ptr[2*1]
-ufunc_wrightomega_data[2] = &ufunc_wrightomega_ptr[2*2]
-ufunc_wrightomega_data[3] = &ufunc_wrightomega_ptr[2*3]
-wrightomega = np.PyUFunc_FromFuncAndData(ufunc_wrightomega_loops, ufunc_wrightomega_data, ufunc_wrightomega_types, 4, 1, 1, 0, "wrightomega", ufunc_wrightomega_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_xlog1py_loops[4]
-cdef void *ufunc_xlog1py_ptr[8]
-cdef void *ufunc_xlog1py_data[4]
-cdef char ufunc_xlog1py_types[12]
-cdef char *ufunc_xlog1py_doc = (
-    "xlog1py(x, y, out=None)\n"
-    "\n"
-    "Compute ``x*log1p(y)`` so that the result is 0 if ``x = 0``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Multiplier\n"
-    "y : array_like\n"
-    "    Argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "z : scalar or ndarray\n"
-    "    Computed x*log1p(y)\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "\n"
-    ".. versionadded:: 0.13.0\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "This example shows how the function can be used to calculate the log of\n"
-    "the probability mass function for a geometric discrete random variable.\n"
-    "The probability mass function of the geometric distribution is defined\n"
-    "as follows:\n"
-    "\n"
-    ".. math:: f(k) = (1-p)^{k-1} p\n"
-    "\n"
-    "where :math:`p` is the probability of a single success\n"
-    "and :math:`1-p` is the probability of a single failure\n"
-    "and :math:`k` is the number of trials to get the first success.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import xlog1py\n"
-    ">>> p = 0.5\n"
-    ">>> k = 100\n"
-    ">>> _pmf = np.power(1 - p, k - 1) * p\n"
-    ">>> _pmf\n"
-    "7.888609052210118e-31\n"
-    "\n"
-    "If we take k as a relatively large number the value of the probability\n"
-    "mass function can become very low. In such cases taking the log of the\n"
-    "pmf would be more suitable as the log function can change the values\n"
-    "to a scale that is more appropriate to work with.\n"
-    "\n"
-    ">>> _log_pmf = xlog1py(k - 1, -p) + np.log(p)\n"
-    ">>> _log_pmf\n"
-    "-69.31471805599453\n"
-    "\n"
-    "We can confirm that we get a value close to the original pmf value by\n"
-    "taking the exponential of the log pmf.\n"
-    "\n"
-    ">>> _orig_pmf = np.exp(_log_pmf)\n"
-    ">>> np.isclose(_pmf, _orig_pmf)\n"
-    "True")
-ufunc_xlog1py_loops[0] = loop_d_dd__As_ff_f
-ufunc_xlog1py_loops[1] = loop_d_dd__As_dd_d
-ufunc_xlog1py_loops[2] = loop_D_DD__As_FF_F
-ufunc_xlog1py_loops[3] = loop_D_DD__As_DD_D
-ufunc_xlog1py_types[0] = NPY_FLOAT
-ufunc_xlog1py_types[1] = NPY_FLOAT
-ufunc_xlog1py_types[2] = NPY_FLOAT
-ufunc_xlog1py_types[3] = NPY_DOUBLE
-ufunc_xlog1py_types[4] = NPY_DOUBLE
-ufunc_xlog1py_types[5] = NPY_DOUBLE
-ufunc_xlog1py_types[6] = NPY_CFLOAT
-ufunc_xlog1py_types[7] = NPY_CFLOAT
-ufunc_xlog1py_types[8] = NPY_CFLOAT
-ufunc_xlog1py_types[9] = NPY_CDOUBLE
-ufunc_xlog1py_types[10] = NPY_CDOUBLE
-ufunc_xlog1py_types[11] = NPY_CDOUBLE
-ufunc_xlog1py_ptr[2*0] = _func_xlog1py[double]
-ufunc_xlog1py_ptr[2*0+1] = ("xlog1py")
-ufunc_xlog1py_ptr[2*1] = _func_xlog1py[double]
-ufunc_xlog1py_ptr[2*1+1] = ("xlog1py")
-ufunc_xlog1py_ptr[2*2] = _func_xlog1py[double_complex]
-ufunc_xlog1py_ptr[2*2+1] = ("xlog1py")
-ufunc_xlog1py_ptr[2*3] = _func_xlog1py[double_complex]
-ufunc_xlog1py_ptr[2*3+1] = ("xlog1py")
-ufunc_xlog1py_data[0] = &ufunc_xlog1py_ptr[2*0]
-ufunc_xlog1py_data[1] = &ufunc_xlog1py_ptr[2*1]
-ufunc_xlog1py_data[2] = &ufunc_xlog1py_ptr[2*2]
-ufunc_xlog1py_data[3] = &ufunc_xlog1py_ptr[2*3]
-xlog1py = np.PyUFunc_FromFuncAndData(ufunc_xlog1py_loops, ufunc_xlog1py_data, ufunc_xlog1py_types, 4, 2, 1, 0, "xlog1py", ufunc_xlog1py_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_xlogy_loops[4]
-cdef void *ufunc_xlogy_ptr[8]
-cdef void *ufunc_xlogy_data[4]
-cdef char ufunc_xlogy_types[12]
-cdef char *ufunc_xlogy_doc = (
-    "xlogy(x, y, out=None)\n"
-    "\n"
-    "Compute ``x*log(y)`` so that the result is 0 if ``x = 0``.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Multiplier\n"
-    "y : array_like\n"
-    "    Argument\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "z : scalar or ndarray\n"
-    "    Computed x*log(y)\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The log function used in the computation is the natural log.\n"
-    "\n"
-    ".. versionadded:: 0.13.0\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "We can use this function to calculate the binary logistic loss also\n"
-    "known as the binary cross entropy. This loss function is used for\n"
-    "binary classification problems and is defined as:\n"
-    "\n"
-    ".. math::\n"
-    "    L = 1/n * \\sum_{i=0}^n -(y_i*log(y\\_pred_i) + (1-y_i)*log(1-y\\_pred_i))\n"
-    "\n"
-    "We can define the parameters `x` and `y` as y and y_pred respectively.\n"
-    "y is the array of the actual labels which over here can be either 0 or 1.\n"
-    "y_pred is the array of the predicted probabilities with respect to\n"
-    "the positive class (1).\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import xlogy\n"
-    ">>> y = np.array([0, 1, 0, 1, 1, 0])\n"
-    ">>> y_pred = np.array([0.3, 0.8, 0.4, 0.7, 0.9, 0.2])\n"
-    ">>> n = len(y)\n"
-    ">>> loss = -(xlogy(y, y_pred) + xlogy(1 - y, 1 - y_pred)).sum()\n"
-    ">>> loss /= n\n"
-    ">>> loss\n"
-    "0.29597052165495025\n"
-    "\n"
-    "A lower loss is usually better as it indicates that the predictions are\n"
-    "similar to the actual labels. In this example since our predicted\n"
-    "probabilities are close to the actual labels, we get an overall loss\n"
-    "that is reasonably low and appropriate.")
-ufunc_xlogy_loops[0] = loop_d_dd__As_ff_f
-ufunc_xlogy_loops[1] = loop_d_dd__As_dd_d
-ufunc_xlogy_loops[2] = loop_D_DD__As_FF_F
-ufunc_xlogy_loops[3] = loop_D_DD__As_DD_D
-ufunc_xlogy_types[0] = NPY_FLOAT
-ufunc_xlogy_types[1] = NPY_FLOAT
-ufunc_xlogy_types[2] = NPY_FLOAT
-ufunc_xlogy_types[3] = NPY_DOUBLE
-ufunc_xlogy_types[4] = NPY_DOUBLE
-ufunc_xlogy_types[5] = NPY_DOUBLE
-ufunc_xlogy_types[6] = NPY_CFLOAT
-ufunc_xlogy_types[7] = NPY_CFLOAT
-ufunc_xlogy_types[8] = NPY_CFLOAT
-ufunc_xlogy_types[9] = NPY_CDOUBLE
-ufunc_xlogy_types[10] = NPY_CDOUBLE
-ufunc_xlogy_types[11] = NPY_CDOUBLE
-ufunc_xlogy_ptr[2*0] = _func_xlogy[double]
-ufunc_xlogy_ptr[2*0+1] = ("xlogy")
-ufunc_xlogy_ptr[2*1] = _func_xlogy[double]
-ufunc_xlogy_ptr[2*1+1] = ("xlogy")
-ufunc_xlogy_ptr[2*2] = _func_xlogy[double_complex]
-ufunc_xlogy_ptr[2*2+1] = ("xlogy")
-ufunc_xlogy_ptr[2*3] = _func_xlogy[double_complex]
-ufunc_xlogy_ptr[2*3+1] = ("xlogy")
-ufunc_xlogy_data[0] = &ufunc_xlogy_ptr[2*0]
-ufunc_xlogy_data[1] = &ufunc_xlogy_ptr[2*1]
-ufunc_xlogy_data[2] = &ufunc_xlogy_ptr[2*2]
-ufunc_xlogy_data[3] = &ufunc_xlogy_ptr[2*3]
-xlogy = np.PyUFunc_FromFuncAndData(ufunc_xlogy_loops, ufunc_xlogy_data, ufunc_xlogy_types, 4, 2, 1, 0, "xlogy", ufunc_xlogy_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_y0_loops[2]
-cdef void *ufunc_y0_ptr[4]
-cdef void *ufunc_y0_data[2]
-cdef char ufunc_y0_types[4]
-cdef char *ufunc_y0_doc = (
-    "y0(x, out=None)\n"
-    "\n"
-    "Bessel function of the second kind of order 0.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "Y : scalar or ndarray\n"
-    "    Value of the Bessel function of the second kind of order 0 at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "j0: Bessel function of the first kind of order 0\n"
-    "yv: Bessel function of the first kind\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The domain is divided into the intervals [0, 5] and (5, infinity). In the\n"
-    "first interval a rational approximation :math:`R(x)` is employed to\n"
-    "compute,\n"
-    "\n"
-    ".. math::\n"
-    "\n"
-    "    Y_0(x) = R(x) + \\frac{2 \\log(x) J_0(x)}{\\pi},\n"
-    "\n"
-    "where :math:`J_0` is the Bessel function of the first kind of order 0.\n"
-    "\n"
-    "In the second interval, the Hankel asymptotic expansion is employed with\n"
-    "two rational functions of degree 6/6 and 7/7.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `y0`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function at one point:\n"
-    "\n"
-    ">>> from scipy.special import y0\n"
-    ">>> y0(1.)\n"
-    "0.08825696421567697\n"
-    "\n"
-    "Calculate at several points:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> y0(np.array([0.5, 2., 3.]))\n"
-    "array([-0.44451873,  0.51037567,  0.37685001])\n"
-    "\n"
-    "Plot the function from 0 to 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(0., 10., 1000)\n"
-    ">>> y = y0(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_y0_loops[0] = loop_d_d__As_f_f
-ufunc_y0_loops[1] = loop_d_d__As_d_d
-ufunc_y0_types[0] = NPY_FLOAT
-ufunc_y0_types[1] = NPY_FLOAT
-ufunc_y0_types[2] = NPY_DOUBLE
-ufunc_y0_types[3] = NPY_DOUBLE
-ufunc_y0_ptr[2*0] = _func_cephes_y0
-ufunc_y0_ptr[2*0+1] = ("y0")
-ufunc_y0_ptr[2*1] = _func_cephes_y0
-ufunc_y0_ptr[2*1+1] = ("y0")
-ufunc_y0_data[0] = &ufunc_y0_ptr[2*0]
-ufunc_y0_data[1] = &ufunc_y0_ptr[2*1]
-y0 = np.PyUFunc_FromFuncAndData(ufunc_y0_loops, ufunc_y0_data, ufunc_y0_types, 2, 1, 1, 0, "y0", ufunc_y0_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_y1_loops[2]
-cdef void *ufunc_y1_ptr[4]
-cdef void *ufunc_y1_data[2]
-cdef char ufunc_y1_types[4]
-cdef char *ufunc_y1_doc = (
-    "y1(x, out=None)\n"
-    "\n"
-    "Bessel function of the second kind of order 1.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like\n"
-    "    Argument (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "Y : scalar or ndarray\n"
-    "    Value of the Bessel function of the second kind of order 1 at `x`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "j1: Bessel function of the first kind of order 1\n"
-    "yn: Bessel function of the second kind\n"
-    "yv: Bessel function of the second kind\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "The domain is divided into the intervals [0, 8] and (8, infinity). In the\n"
-    "first interval a 25 term Chebyshev expansion is used, and computing\n"
-    ":math:`J_1` (the Bessel function of the first kind) is required. In the\n"
-    "second, the asymptotic trigonometric representation is employed using two\n"
-    "rational functions of degree 5/5.\n"
-    "\n"
-    "This function is a wrapper for the Cephes [1]_ routine `y1`.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Calculate the function at one point:\n"
-    "\n"
-    ">>> from scipy.special import y1\n"
-    ">>> y1(1.)\n"
-    "-0.7812128213002888\n"
-    "\n"
-    "Calculate at several points:\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> y1(np.array([0.5, 2., 3.]))\n"
-    "array([-1.47147239, -0.10703243,  0.32467442])\n"
-    "\n"
-    "Plot the function from 0 to 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(0., 10., 1000)\n"
-    ">>> y = y1(x)\n"
-    ">>> ax.plot(x, y)\n"
-    ">>> plt.show()")
-ufunc_y1_loops[0] = loop_d_d__As_f_f
-ufunc_y1_loops[1] = loop_d_d__As_d_d
-ufunc_y1_types[0] = NPY_FLOAT
-ufunc_y1_types[1] = NPY_FLOAT
-ufunc_y1_types[2] = NPY_DOUBLE
-ufunc_y1_types[3] = NPY_DOUBLE
-ufunc_y1_ptr[2*0] = _func_cephes_y1
-ufunc_y1_ptr[2*0+1] = ("y1")
-ufunc_y1_ptr[2*1] = _func_cephes_y1
-ufunc_y1_ptr[2*1+1] = ("y1")
-ufunc_y1_data[0] = &ufunc_y1_ptr[2*0]
-ufunc_y1_data[1] = &ufunc_y1_ptr[2*1]
-y1 = np.PyUFunc_FromFuncAndData(ufunc_y1_loops, ufunc_y1_data, ufunc_y1_types, 2, 1, 1, 0, "y1", ufunc_y1_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_yn_loops[3]
-cdef void *ufunc_yn_ptr[6]
-cdef void *ufunc_yn_data[3]
-cdef char ufunc_yn_types[9]
-cdef char *ufunc_yn_doc = (
-    "yn(n, x, out=None)\n"
-    "\n"
-    "Bessel function of the second kind of integer order and real argument.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "n : array_like\n"
-    "    Order (integer).\n"
-    "x : array_like\n"
-    "    Argument (float).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "Y : scalar or ndarray\n"
-    "    Value of the Bessel function, :math:`Y_n(x)`.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "yv : For real order and real or complex argument.\n"
-    "y0: faster implementation of this function for order 0\n"
-    "y1: faster implementation of this function for order 1\n"
-    "\n"
-    "Notes\n"
-    "-----\n"
-    "Wrapper for the Cephes [1]_ routine `yn`.\n"
-    "\n"
-    "The function is evaluated by forward recurrence on `n`, starting with\n"
-    "values computed by the Cephes routines `y0` and `y1`. If `n = 0` or 1,\n"
-    "the routine for `y0` or `y1` is called directly.\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [1] Cephes Mathematical Functions Library,\n"
-    "       http://www.netlib.org/cephes/\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    "Evaluate the function of order 0 at one point.\n"
-    "\n"
-    ">>> from scipy.special import yn\n"
-    ">>> yn(0, 1.)\n"
-    "0.08825696421567697\n"
-    "\n"
-    "Evaluate the function at one point for different orders.\n"
-    "\n"
-    ">>> yn(0, 1.), yn(1, 1.), yn(2, 1.)\n"
-    "(0.08825696421567697, -0.7812128213002888, -1.6506826068162546)\n"
-    "\n"
-    "The evaluation for different orders can be carried out in one call by\n"
-    "providing a list or NumPy array as argument for the `v` parameter:\n"
-    "\n"
-    ">>> yn([0, 1, 2], 1.)\n"
-    "array([ 0.08825696, -0.78121282, -1.65068261])\n"
-    "\n"
-    "Evaluate the function at several points for order 0 by providing an\n"
-    "array for `z`.\n"
-    "\n"
-    ">>> import numpy as np\n"
-    ">>> points = np.array([0.5, 3., 8.])\n"
-    ">>> yn(0, points)\n"
-    "array([-0.44451873,  0.37685001,  0.22352149])\n"
-    "\n"
-    "If `z` is an array, the order parameter `v` must be broadcastable to\n"
-    "the correct shape if different orders shall be computed in one call.\n"
-    "To calculate the orders 0 and 1 for an 1D array:\n"
-    "\n"
-    ">>> orders = np.array([[0], [1]])\n"
-    ">>> orders.shape\n"
-    "(2, 1)\n"
-    "\n"
-    ">>> yn(orders, points)\n"
-    "array([[-0.44451873,  0.37685001,  0.22352149],\n"
-    "       [-1.47147239,  0.32467442, -0.15806046]])\n"
-    "\n"
-    "Plot the functions of order 0 to 3 from 0 to 10.\n"
-    "\n"
-    ">>> import matplotlib.pyplot as plt\n"
-    ">>> fig, ax = plt.subplots()\n"
-    ">>> x = np.linspace(0., 10., 1000)\n"
-    ">>> for i in range(4):\n"
-    "...     ax.plot(x, yn(i, x), label=f'$Y_{i!r}$')\n"
-    ">>> ax.set_ylim(-3, 1)\n"
-    ">>> ax.legend()\n"
-    ">>> plt.show()")
-ufunc_yn_loops[0] = loop_d_pd__As_pd_d
-ufunc_yn_loops[1] = loop_d_dd__As_ff_f
-ufunc_yn_loops[2] = loop_d_dd__As_dd_d
-ufunc_yn_types[0] = NPY_INTP
-ufunc_yn_types[1] = NPY_DOUBLE
-ufunc_yn_types[2] = NPY_DOUBLE
-ufunc_yn_types[3] = NPY_FLOAT
-ufunc_yn_types[4] = NPY_FLOAT
-ufunc_yn_types[5] = NPY_FLOAT
-ufunc_yn_types[6] = NPY_DOUBLE
-ufunc_yn_types[7] = NPY_DOUBLE
-ufunc_yn_types[8] = NPY_DOUBLE
-ufunc_yn_ptr[2*0] = _func_cephes_yn_wrap
-ufunc_yn_ptr[2*0+1] = ("yn")
-ufunc_yn_ptr[2*1] = _func_yn_unsafe
-ufunc_yn_ptr[2*1+1] = ("yn")
-ufunc_yn_ptr[2*2] = _func_yn_unsafe
-ufunc_yn_ptr[2*2+1] = ("yn")
-ufunc_yn_data[0] = &ufunc_yn_ptr[2*0]
-ufunc_yn_data[1] = &ufunc_yn_ptr[2*1]
-ufunc_yn_data[2] = &ufunc_yn_ptr[2*2]
-yn = np.PyUFunc_FromFuncAndData(ufunc_yn_loops, ufunc_yn_data, ufunc_yn_types, 3, 2, 1, 0, "yn", ufunc_yn_doc, 0)
-
-cdef np.PyUFuncGenericFunction ufunc_zetac_loops[2]
-cdef void *ufunc_zetac_ptr[4]
-cdef void *ufunc_zetac_data[2]
-cdef char ufunc_zetac_types[4]
-cdef char *ufunc_zetac_doc = (
-    "zetac(x, out=None)\n"
-    "\n"
-    "Riemann zeta function minus 1.\n"
-    "\n"
-    "This function is defined as\n"
-    "\n"
-    ".. math:: \\zeta(x) = \\sum_{k=2}^{\\infty} 1 / k^x,\n"
-    "\n"
-    "where ``x > 1``.  For ``x < 1`` the analytic continuation is\n"
-    "computed. For more information on the Riemann zeta function, see\n"
-    "[dlmf]_.\n"
-    "\n"
-    "Parameters\n"
-    "----------\n"
-    "x : array_like of float\n"
-    "    Values at which to compute zeta(x) - 1 (must be real).\n"
-    "out : ndarray, optional\n"
-    "    Optional output array for the function results\n"
-    "\n"
-    "Returns\n"
-    "-------\n"
-    "scalar or ndarray\n"
-    "    Values of zeta(x) - 1.\n"
-    "\n"
-    "See Also\n"
-    "--------\n"
-    "zeta\n"
-    "\n"
-    "References\n"
-    "----------\n"
-    ".. [dlmf] NIST Digital Library of Mathematical Functions\n"
-    "          https://dlmf.nist.gov/25\n"
-    "\n"
-    "Examples\n"
-    "--------\n"
-    ">>> import numpy as np\n"
-    ">>> from scipy.special import zetac, zeta\n"
-    "\n"
-    "Some special values:\n"
-    "\n"
-    ">>> zetac(2), np.pi**2/6 - 1\n"
-    "(0.64493406684822641, 0.6449340668482264)\n"
-    "\n"
-    ">>> zetac(-1), -1.0/12 - 1\n"
-    "(-1.0833333333333333, -1.0833333333333333)\n"
-    "\n"
-    "Compare ``zetac(x)`` to ``zeta(x) - 1`` for large `x`:\n"
-    "\n"
-    ">>> zetac(60), zeta(60) - 1\n"
-    "(8.673617380119933e-19, 0.0)")
-ufunc_zetac_loops[0] = loop_d_d__As_f_f
-ufunc_zetac_loops[1] = loop_d_d__As_d_d
-ufunc_zetac_types[0] = NPY_FLOAT
-ufunc_zetac_types[1] = NPY_FLOAT
-ufunc_zetac_types[2] = NPY_DOUBLE
-ufunc_zetac_types[3] = NPY_DOUBLE
-ufunc_zetac_ptr[2*0] = _func_cephes_zetac
-ufunc_zetac_ptr[2*0+1] = ("zetac")
-ufunc_zetac_ptr[2*1] = _func_cephes_zetac
-ufunc_zetac_ptr[2*1+1] = ("zetac")
-ufunc_zetac_data[0] = &ufunc_zetac_ptr[2*0]
-ufunc_zetac_data[1] = &ufunc_zetac_ptr[2*1]
-zetac = np.PyUFunc_FromFuncAndData(ufunc_zetac_loops, ufunc_zetac_data, ufunc_zetac_types, 2, 1, 1, 0, "zetac", ufunc_zetac_doc, 0)
-
-from ._special_ufuncs import (_cospi, _lambertw, _scaled_exp1, _sinpi, _spherical_jn, _spherical_jn_d, _spherical_yn, _spherical_yn_d, _spherical_in, _spherical_in_d, _spherical_kn, _spherical_kn_d, airy, airye, bei, beip, ber, berp, binom, exp1, expi, expit, exprel, gamma, gammaln, hankel1, hankel1e, hankel2, hankel2e, hyp2f1, it2i0k0, it2j0y0, it2struve0, itairy, iti0k0, itj0y0, itmodstruve0, itstruve0, iv, _iv_ratio, ive, jv, jve, kei, keip, kelvin, ker, kerp, kv, kve, log_expit, log_wright_bessel, loggamma, logit, mathieu_a, mathieu_b, mathieu_cem, mathieu_modcem1, mathieu_modcem2, mathieu_modsem1, mathieu_modsem2, mathieu_sem, modfresnelm, modfresnelp, obl_ang1, obl_ang1_cv, obl_cv, obl_rad1, obl_rad1_cv, obl_rad2, obl_rad2_cv, pbdv, pbvv, pbwa, pro_ang1, pro_ang1_cv, pro_cv, pro_rad1, pro_rad1_cv, pro_rad2, pro_rad2_cv, psi, rgamma, sph_harm, wright_bessel, yv, yve, _zeta)
-
-#
-# Aliases
-#
-jn = jv
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs_cxx.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs_cxx.pxd
deleted file mode 100644
index a5038ec6f6ef138cf9c0e295a77ece1c0eca005b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs_cxx.pxd
+++ /dev/null
@@ -1,139 +0,0 @@
-from . cimport sf_error
-cdef void _set_action(sf_error.sf_error_t, sf_error.sf_action_t) noexcept nogil
-cdef void *_export_beta_pdf_float
-cdef void *_export_beta_pdf_double
-cdef void *_export_beta_ppf_float
-cdef void *_export_beta_ppf_double
-cdef void *_export_binom_cdf_float
-cdef void *_export_binom_cdf_double
-cdef void *_export_binom_isf_float
-cdef void *_export_binom_isf_double
-cdef void *_export_binom_pmf_float
-cdef void *_export_binom_pmf_double
-cdef void *_export_binom_ppf_float
-cdef void *_export_binom_ppf_double
-cdef void *_export_binom_sf_float
-cdef void *_export_binom_sf_double
-cdef void *_export_hypergeom_cdf_float
-cdef void *_export_hypergeom_cdf_double
-cdef void *_export_hypergeom_mean_float
-cdef void *_export_hypergeom_mean_double
-cdef void *_export_hypergeom_pmf_float
-cdef void *_export_hypergeom_pmf_double
-cdef void *_export_hypergeom_sf_float
-cdef void *_export_hypergeom_sf_double
-cdef void *_export_hypergeom_skewness_float
-cdef void *_export_hypergeom_skewness_double
-cdef void *_export_hypergeom_variance_float
-cdef void *_export_hypergeom_variance_double
-cdef void *_export_invgauss_isf_float
-cdef void *_export_invgauss_isf_double
-cdef void *_export_invgauss_ppf_float
-cdef void *_export_invgauss_ppf_double
-cdef void *_export_nbinom_cdf_float
-cdef void *_export_nbinom_cdf_double
-cdef void *_export_nbinom_isf_float
-cdef void *_export_nbinom_isf_double
-cdef void *_export_nbinom_kurtosis_excess_float
-cdef void *_export_nbinom_kurtosis_excess_double
-cdef void *_export_nbinom_mean_float
-cdef void *_export_nbinom_mean_double
-cdef void *_export_nbinom_pmf_float
-cdef void *_export_nbinom_pmf_double
-cdef void *_export_nbinom_ppf_float
-cdef void *_export_nbinom_ppf_double
-cdef void *_export_nbinom_sf_float
-cdef void *_export_nbinom_sf_double
-cdef void *_export_nbinom_skewness_float
-cdef void *_export_nbinom_skewness_double
-cdef void *_export_nbinom_variance_float
-cdef void *_export_nbinom_variance_double
-cdef void *_export_ncf_cdf_float
-cdef void *_export_ncf_cdf_double
-cdef void *_export_ncf_isf_float
-cdef void *_export_ncf_isf_double
-cdef void *_export_ncf_kurtosis_excess_float
-cdef void *_export_ncf_kurtosis_excess_double
-cdef void *_export_ncf_mean_float
-cdef void *_export_ncf_mean_double
-cdef void *_export_ncf_pdf_float
-cdef void *_export_ncf_pdf_double
-cdef void *_export_ncf_ppf_float
-cdef void *_export_ncf_ppf_double
-cdef void *_export_ncf_sf_float
-cdef void *_export_ncf_sf_double
-cdef void *_export_ncf_skewness_float
-cdef void *_export_ncf_skewness_double
-cdef void *_export_ncf_variance_float
-cdef void *_export_ncf_variance_double
-cdef void *_export_nct_cdf_float
-cdef void *_export_nct_cdf_double
-cdef void *_export_nct_isf_float
-cdef void *_export_nct_isf_double
-cdef void *_export_nct_kurtosis_excess_float
-cdef void *_export_nct_kurtosis_excess_double
-cdef void *_export_nct_mean_float
-cdef void *_export_nct_mean_double
-cdef void *_export_nct_ppf_float
-cdef void *_export_nct_ppf_double
-cdef void *_export_nct_sf_float
-cdef void *_export_nct_sf_double
-cdef void *_export_nct_skewness_float
-cdef void *_export_nct_skewness_double
-cdef void *_export_nct_variance_float
-cdef void *_export_nct_variance_double
-cdef void *_export_ncx2_cdf_float
-cdef void *_export_ncx2_cdf_double
-cdef void *_export_ncx2_isf_float
-cdef void *_export_ncx2_isf_double
-cdef void *_export_ncx2_pdf_float
-cdef void *_export_ncx2_pdf_double
-cdef void *_export_ncx2_ppf_float
-cdef void *_export_ncx2_ppf_double
-cdef void *_export_ncx2_sf_float
-cdef void *_export_ncx2_sf_double
-cdef void *_export_skewnorm_cdf_float
-cdef void *_export_skewnorm_cdf_double
-cdef void *_export_skewnorm_isf_float
-cdef void *_export_skewnorm_isf_double
-cdef void *_export_skewnorm_ppf_float
-cdef void *_export_skewnorm_ppf_double
-cdef void *_export__stirling2_inexact
-cdef void *_export_ibeta_float
-cdef void *_export_ibeta_double
-cdef void *_export_ibetac_float
-cdef void *_export_ibetac_double
-cdef void *_export_ibetac_inv_float
-cdef void *_export_ibetac_inv_double
-cdef void *_export_ibeta_inv_float
-cdef void *_export_ibeta_inv_double
-cdef void *_export_faddeeva_dawsn
-cdef void *_export_faddeeva_dawsn_complex
-cdef void *_export_fellint_RC
-cdef void *_export_cellint_RC
-cdef void *_export_fellint_RD
-cdef void *_export_cellint_RD
-cdef void *_export_fellint_RF
-cdef void *_export_cellint_RF
-cdef void *_export_fellint_RG
-cdef void *_export_cellint_RG
-cdef void *_export_fellint_RJ
-cdef void *_export_cellint_RJ
-cdef void *_export_faddeeva_erf
-cdef void *_export_faddeeva_erfc_complex
-cdef void *_export_faddeeva_erfcx
-cdef void *_export_faddeeva_erfcx_complex
-cdef void *_export_faddeeva_erfi
-cdef void *_export_faddeeva_erfi_complex
-cdef void *_export_erfinv_float
-cdef void *_export_erfinv_double
-cdef void *_export_hyp1f1_double
-cdef void *_export_faddeeva_log_ndtr
-cdef void *_export_faddeeva_log_ndtr_complex
-cdef void *_export_faddeeva_ndtr
-cdef void *_export_powm1_float
-cdef void *_export_powm1_double
-cdef void *_export_faddeeva_voigt_profile
-cdef void *_export_faddeeva_w
-cdef void *_export_wrightomega
-cdef void *_export_wrightomega_real
\ No newline at end of file
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs_cxx.pyx b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs_cxx.pyx
deleted file mode 100644
index 4874418a8509c21e04979ec3e796936943397afd..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs_cxx.pyx
+++ /dev/null
@@ -1,418 +0,0 @@
-# This file is automatically generated by _generate_pyx.py.
-# Do not edit manually!
-
-from libc.math cimport NAN
-
-include "_ufuncs_extra_code_common.pxi"
-
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_beta_pdf_float "beta_pdf_float"(float, float, float) noexcept nogil
-cdef void *_export_beta_pdf_float = _func_beta_pdf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_beta_pdf_double "beta_pdf_double"(double, double, double) noexcept nogil
-cdef void *_export_beta_pdf_double = _func_beta_pdf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_beta_ppf_float "beta_ppf_float"(float, float, float) noexcept nogil
-cdef void *_export_beta_ppf_float = _func_beta_ppf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_beta_ppf_double "beta_ppf_double"(double, double, double) noexcept nogil
-cdef void *_export_beta_ppf_double = _func_beta_ppf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_binom_cdf_float "binom_cdf_float"(float, float, float) noexcept nogil
-cdef void *_export_binom_cdf_float = _func_binom_cdf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_binom_cdf_double "binom_cdf_double"(double, double, double) noexcept nogil
-cdef void *_export_binom_cdf_double = _func_binom_cdf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_binom_isf_float "binom_isf_float"(float, float, float) noexcept nogil
-cdef void *_export_binom_isf_float = _func_binom_isf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_binom_isf_double "binom_isf_double"(double, double, double) noexcept nogil
-cdef void *_export_binom_isf_double = _func_binom_isf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_binom_pmf_float "binom_pmf_float"(float, float, float) noexcept nogil
-cdef void *_export_binom_pmf_float = _func_binom_pmf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_binom_pmf_double "binom_pmf_double"(double, double, double) noexcept nogil
-cdef void *_export_binom_pmf_double = _func_binom_pmf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_binom_ppf_float "binom_ppf_float"(float, float, float) noexcept nogil
-cdef void *_export_binom_ppf_float = _func_binom_ppf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_binom_ppf_double "binom_ppf_double"(double, double, double) noexcept nogil
-cdef void *_export_binom_ppf_double = _func_binom_ppf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_binom_sf_float "binom_sf_float"(float, float, float) noexcept nogil
-cdef void *_export_binom_sf_float = _func_binom_sf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_binom_sf_double "binom_sf_double"(double, double, double) noexcept nogil
-cdef void *_export_binom_sf_double = _func_binom_sf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_hypergeom_cdf_float "hypergeom_cdf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_hypergeom_cdf_float = _func_hypergeom_cdf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_hypergeom_cdf_double "hypergeom_cdf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_hypergeom_cdf_double = _func_hypergeom_cdf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_hypergeom_mean_float "hypergeom_mean_float"(float, float, float) noexcept nogil
-cdef void *_export_hypergeom_mean_float = _func_hypergeom_mean_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_hypergeom_mean_double "hypergeom_mean_double"(double, double, double) noexcept nogil
-cdef void *_export_hypergeom_mean_double = _func_hypergeom_mean_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_hypergeom_pmf_float "hypergeom_pmf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_hypergeom_pmf_float = _func_hypergeom_pmf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_hypergeom_pmf_double "hypergeom_pmf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_hypergeom_pmf_double = _func_hypergeom_pmf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_hypergeom_sf_float "hypergeom_sf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_hypergeom_sf_float = _func_hypergeom_sf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_hypergeom_sf_double "hypergeom_sf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_hypergeom_sf_double = _func_hypergeom_sf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_hypergeom_skewness_float "hypergeom_skewness_float"(float, float, float) noexcept nogil
-cdef void *_export_hypergeom_skewness_float = _func_hypergeom_skewness_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_hypergeom_skewness_double "hypergeom_skewness_double"(double, double, double) noexcept nogil
-cdef void *_export_hypergeom_skewness_double = _func_hypergeom_skewness_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_hypergeom_variance_float "hypergeom_variance_float"(float, float, float) noexcept nogil
-cdef void *_export_hypergeom_variance_float = _func_hypergeom_variance_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_hypergeom_variance_double "hypergeom_variance_double"(double, double, double) noexcept nogil
-cdef void *_export_hypergeom_variance_double = _func_hypergeom_variance_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_invgauss_isf_float "invgauss_isf_float"(float, float, float) noexcept nogil
-cdef void *_export_invgauss_isf_float = _func_invgauss_isf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_invgauss_isf_double "invgauss_isf_double"(double, double, double) noexcept nogil
-cdef void *_export_invgauss_isf_double = _func_invgauss_isf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_invgauss_ppf_float "invgauss_ppf_float"(float, float, float) noexcept nogil
-cdef void *_export_invgauss_ppf_float = _func_invgauss_ppf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_invgauss_ppf_double "invgauss_ppf_double"(double, double, double) noexcept nogil
-cdef void *_export_invgauss_ppf_double = _func_invgauss_ppf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nbinom_cdf_float "nbinom_cdf_float"(float, float, float) noexcept nogil
-cdef void *_export_nbinom_cdf_float = _func_nbinom_cdf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nbinom_cdf_double "nbinom_cdf_double"(double, double, double) noexcept nogil
-cdef void *_export_nbinom_cdf_double = _func_nbinom_cdf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nbinom_isf_float "nbinom_isf_float"(float, float, float) noexcept nogil
-cdef void *_export_nbinom_isf_float = _func_nbinom_isf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nbinom_isf_double "nbinom_isf_double"(double, double, double) noexcept nogil
-cdef void *_export_nbinom_isf_double = _func_nbinom_isf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nbinom_kurtosis_excess_float "nbinom_kurtosis_excess_float"(float, float) noexcept nogil
-cdef void *_export_nbinom_kurtosis_excess_float = _func_nbinom_kurtosis_excess_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nbinom_kurtosis_excess_double "nbinom_kurtosis_excess_double"(double, double) noexcept nogil
-cdef void *_export_nbinom_kurtosis_excess_double = _func_nbinom_kurtosis_excess_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nbinom_mean_float "nbinom_mean_float"(float, float) noexcept nogil
-cdef void *_export_nbinom_mean_float = _func_nbinom_mean_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nbinom_mean_double "nbinom_mean_double"(double, double) noexcept nogil
-cdef void *_export_nbinom_mean_double = _func_nbinom_mean_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nbinom_pmf_float "nbinom_pmf_float"(float, float, float) noexcept nogil
-cdef void *_export_nbinom_pmf_float = _func_nbinom_pmf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nbinom_pmf_double "nbinom_pmf_double"(double, double, double) noexcept nogil
-cdef void *_export_nbinom_pmf_double = _func_nbinom_pmf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nbinom_ppf_float "nbinom_ppf_float"(float, float, float) noexcept nogil
-cdef void *_export_nbinom_ppf_float = _func_nbinom_ppf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nbinom_ppf_double "nbinom_ppf_double"(double, double, double) noexcept nogil
-cdef void *_export_nbinom_ppf_double = _func_nbinom_ppf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nbinom_sf_float "nbinom_sf_float"(float, float, float) noexcept nogil
-cdef void *_export_nbinom_sf_float = _func_nbinom_sf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nbinom_sf_double "nbinom_sf_double"(double, double, double) noexcept nogil
-cdef void *_export_nbinom_sf_double = _func_nbinom_sf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nbinom_skewness_float "nbinom_skewness_float"(float, float) noexcept nogil
-cdef void *_export_nbinom_skewness_float = _func_nbinom_skewness_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nbinom_skewness_double "nbinom_skewness_double"(double, double) noexcept nogil
-cdef void *_export_nbinom_skewness_double = _func_nbinom_skewness_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nbinom_variance_float "nbinom_variance_float"(float, float) noexcept nogil
-cdef void *_export_nbinom_variance_float = _func_nbinom_variance_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nbinom_variance_double "nbinom_variance_double"(double, double) noexcept nogil
-cdef void *_export_nbinom_variance_double = _func_nbinom_variance_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncf_cdf_float "ncf_cdf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_ncf_cdf_float = _func_ncf_cdf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncf_cdf_double "ncf_cdf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_ncf_cdf_double = _func_ncf_cdf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncf_isf_float "ncf_isf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_ncf_isf_float = _func_ncf_isf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncf_isf_double "ncf_isf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_ncf_isf_double = _func_ncf_isf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncf_kurtosis_excess_float "ncf_kurtosis_excess_float"(float, float, float) noexcept nogil
-cdef void *_export_ncf_kurtosis_excess_float = _func_ncf_kurtosis_excess_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncf_kurtosis_excess_double "ncf_kurtosis_excess_double"(double, double, double) noexcept nogil
-cdef void *_export_ncf_kurtosis_excess_double = _func_ncf_kurtosis_excess_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncf_mean_float "ncf_mean_float"(float, float, float) noexcept nogil
-cdef void *_export_ncf_mean_float = _func_ncf_mean_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncf_mean_double "ncf_mean_double"(double, double, double) noexcept nogil
-cdef void *_export_ncf_mean_double = _func_ncf_mean_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncf_pdf_float "ncf_pdf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_ncf_pdf_float = _func_ncf_pdf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncf_pdf_double "ncf_pdf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_ncf_pdf_double = _func_ncf_pdf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncf_ppf_float "ncf_ppf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_ncf_ppf_float = _func_ncf_ppf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncf_ppf_double "ncf_ppf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_ncf_ppf_double = _func_ncf_ppf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncf_sf_float "ncf_sf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_ncf_sf_float = _func_ncf_sf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncf_sf_double "ncf_sf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_ncf_sf_double = _func_ncf_sf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncf_skewness_float "ncf_skewness_float"(float, float, float) noexcept nogil
-cdef void *_export_ncf_skewness_float = _func_ncf_skewness_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncf_skewness_double "ncf_skewness_double"(double, double, double) noexcept nogil
-cdef void *_export_ncf_skewness_double = _func_ncf_skewness_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncf_variance_float "ncf_variance_float"(float, float, float) noexcept nogil
-cdef void *_export_ncf_variance_float = _func_ncf_variance_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncf_variance_double "ncf_variance_double"(double, double, double) noexcept nogil
-cdef void *_export_ncf_variance_double = _func_ncf_variance_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nct_cdf_float "nct_cdf_float"(float, float, float) noexcept nogil
-cdef void *_export_nct_cdf_float = _func_nct_cdf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nct_cdf_double "nct_cdf_double"(double, double, double) noexcept nogil
-cdef void *_export_nct_cdf_double = _func_nct_cdf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nct_isf_float "nct_isf_float"(float, float, float) noexcept nogil
-cdef void *_export_nct_isf_float = _func_nct_isf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nct_isf_double "nct_isf_double"(double, double, double) noexcept nogil
-cdef void *_export_nct_isf_double = _func_nct_isf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nct_kurtosis_excess_float "nct_kurtosis_excess_float"(float, float) noexcept nogil
-cdef void *_export_nct_kurtosis_excess_float = _func_nct_kurtosis_excess_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nct_kurtosis_excess_double "nct_kurtosis_excess_double"(double, double) noexcept nogil
-cdef void *_export_nct_kurtosis_excess_double = _func_nct_kurtosis_excess_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nct_mean_float "nct_mean_float"(float, float) noexcept nogil
-cdef void *_export_nct_mean_float = _func_nct_mean_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nct_mean_double "nct_mean_double"(double, double) noexcept nogil
-cdef void *_export_nct_mean_double = _func_nct_mean_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nct_ppf_float "nct_ppf_float"(float, float, float) noexcept nogil
-cdef void *_export_nct_ppf_float = _func_nct_ppf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nct_ppf_double "nct_ppf_double"(double, double, double) noexcept nogil
-cdef void *_export_nct_ppf_double = _func_nct_ppf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nct_sf_float "nct_sf_float"(float, float, float) noexcept nogil
-cdef void *_export_nct_sf_float = _func_nct_sf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nct_sf_double "nct_sf_double"(double, double, double) noexcept nogil
-cdef void *_export_nct_sf_double = _func_nct_sf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nct_skewness_float "nct_skewness_float"(float, float) noexcept nogil
-cdef void *_export_nct_skewness_float = _func_nct_skewness_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nct_skewness_double "nct_skewness_double"(double, double) noexcept nogil
-cdef void *_export_nct_skewness_double = _func_nct_skewness_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_nct_variance_float "nct_variance_float"(float, float) noexcept nogil
-cdef void *_export_nct_variance_float = _func_nct_variance_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_nct_variance_double "nct_variance_double"(double, double) noexcept nogil
-cdef void *_export_nct_variance_double = _func_nct_variance_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncx2_cdf_float "ncx2_cdf_float"(float, float, float) noexcept nogil
-cdef void *_export_ncx2_cdf_float = _func_ncx2_cdf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncx2_cdf_double "ncx2_cdf_double"(double, double, double) noexcept nogil
-cdef void *_export_ncx2_cdf_double = _func_ncx2_cdf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncx2_isf_float "ncx2_isf_float"(float, float, float) noexcept nogil
-cdef void *_export_ncx2_isf_float = _func_ncx2_isf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncx2_isf_double "ncx2_isf_double"(double, double, double) noexcept nogil
-cdef void *_export_ncx2_isf_double = _func_ncx2_isf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncx2_pdf_float "ncx2_pdf_float"(float, float, float) noexcept nogil
-cdef void *_export_ncx2_pdf_float = _func_ncx2_pdf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncx2_pdf_double "ncx2_pdf_double"(double, double, double) noexcept nogil
-cdef void *_export_ncx2_pdf_double = _func_ncx2_pdf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncx2_ppf_float "ncx2_ppf_float"(float, float, float) noexcept nogil
-cdef void *_export_ncx2_ppf_float = _func_ncx2_ppf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncx2_ppf_double "ncx2_ppf_double"(double, double, double) noexcept nogil
-cdef void *_export_ncx2_ppf_double = _func_ncx2_ppf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ncx2_sf_float "ncx2_sf_float"(float, float, float) noexcept nogil
-cdef void *_export_ncx2_sf_float = _func_ncx2_sf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ncx2_sf_double "ncx2_sf_double"(double, double, double) noexcept nogil
-cdef void *_export_ncx2_sf_double = _func_ncx2_sf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_skewnorm_cdf_float "skewnorm_cdf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_skewnorm_cdf_float = _func_skewnorm_cdf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_skewnorm_cdf_double "skewnorm_cdf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_skewnorm_cdf_double = _func_skewnorm_cdf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_skewnorm_isf_float "skewnorm_isf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_skewnorm_isf_float = _func_skewnorm_isf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_skewnorm_isf_double "skewnorm_isf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_skewnorm_isf_double = _func_skewnorm_isf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_skewnorm_ppf_float "skewnorm_ppf_float"(float, float, float, float) noexcept nogil
-cdef void *_export_skewnorm_ppf_float = _func_skewnorm_ppf_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_skewnorm_ppf_double "skewnorm_ppf_double"(double, double, double, double) noexcept nogil
-cdef void *_export_skewnorm_ppf_double = _func_skewnorm_ppf_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func__stirling2_inexact "_stirling2_inexact"(double, double) noexcept nogil
-cdef void *_export__stirling2_inexact = _func__stirling2_inexact
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ibeta_float "ibeta_float"(float, float, float) noexcept nogil
-cdef void *_export_ibeta_float = _func_ibeta_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ibeta_double "ibeta_double"(double, double, double) noexcept nogil
-cdef void *_export_ibeta_double = _func_ibeta_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ibetac_float "ibetac_float"(float, float, float) noexcept nogil
-cdef void *_export_ibetac_float = _func_ibetac_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ibetac_double "ibetac_double"(double, double, double) noexcept nogil
-cdef void *_export_ibetac_double = _func_ibetac_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ibetac_inv_float "ibetac_inv_float"(float, float, float) noexcept nogil
-cdef void *_export_ibetac_inv_float = _func_ibetac_inv_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ibetac_inv_double "ibetac_inv_double"(double, double, double) noexcept nogil
-cdef void *_export_ibetac_inv_double = _func_ibetac_inv_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_ibeta_inv_float "ibeta_inv_float"(float, float, float) noexcept nogil
-cdef void *_export_ibeta_inv_float = _func_ibeta_inv_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_ibeta_inv_double "ibeta_inv_double"(double, double, double) noexcept nogil
-cdef void *_export_ibeta_inv_double = _func_ibeta_inv_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_faddeeva_dawsn "faddeeva_dawsn"(double) noexcept nogil
-cdef void *_export_faddeeva_dawsn = _func_faddeeva_dawsn
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_faddeeva_dawsn_complex "faddeeva_dawsn_complex"(double complex) noexcept nogil
-cdef void *_export_faddeeva_dawsn_complex = _func_faddeeva_dawsn_complex
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_fellint_RC "fellint_RC"(double, double) noexcept nogil
-cdef void *_export_fellint_RC = _func_fellint_RC
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_cellint_RC "cellint_RC"(double complex, double complex) noexcept nogil
-cdef void *_export_cellint_RC = _func_cellint_RC
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_fellint_RD "fellint_RD"(double, double, double) noexcept nogil
-cdef void *_export_fellint_RD = _func_fellint_RD
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_cellint_RD "cellint_RD"(double complex, double complex, double complex) noexcept nogil
-cdef void *_export_cellint_RD = _func_cellint_RD
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_fellint_RF "fellint_RF"(double, double, double) noexcept nogil
-cdef void *_export_fellint_RF = _func_fellint_RF
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_cellint_RF "cellint_RF"(double complex, double complex, double complex) noexcept nogil
-cdef void *_export_cellint_RF = _func_cellint_RF
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_fellint_RG "fellint_RG"(double, double, double) noexcept nogil
-cdef void *_export_fellint_RG = _func_fellint_RG
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_cellint_RG "cellint_RG"(double complex, double complex, double complex) noexcept nogil
-cdef void *_export_cellint_RG = _func_cellint_RG
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_fellint_RJ "fellint_RJ"(double, double, double, double) noexcept nogil
-cdef void *_export_fellint_RJ = _func_fellint_RJ
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_cellint_RJ "cellint_RJ"(double complex, double complex, double complex, double complex) noexcept nogil
-cdef void *_export_cellint_RJ = _func_cellint_RJ
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_faddeeva_erf "faddeeva_erf"(double complex) noexcept nogil
-cdef void *_export_faddeeva_erf = _func_faddeeva_erf
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_faddeeva_erfc_complex "faddeeva_erfc_complex"(double complex) noexcept nogil
-cdef void *_export_faddeeva_erfc_complex = _func_faddeeva_erfc_complex
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_faddeeva_erfcx "faddeeva_erfcx"(double) noexcept nogil
-cdef void *_export_faddeeva_erfcx = _func_faddeeva_erfcx
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_faddeeva_erfcx_complex "faddeeva_erfcx_complex"(double complex) noexcept nogil
-cdef void *_export_faddeeva_erfcx_complex = _func_faddeeva_erfcx_complex
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_faddeeva_erfi "faddeeva_erfi"(double) noexcept nogil
-cdef void *_export_faddeeva_erfi = _func_faddeeva_erfi
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_faddeeva_erfi_complex "faddeeva_erfi_complex"(double complex) noexcept nogil
-cdef void *_export_faddeeva_erfi_complex = _func_faddeeva_erfi_complex
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_erfinv_float "erfinv_float"(float) noexcept nogil
-cdef void *_export_erfinv_float = _func_erfinv_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_erfinv_double "erfinv_double"(double) noexcept nogil
-cdef void *_export_erfinv_double = _func_erfinv_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_hyp1f1_double "hyp1f1_double"(double, double, double) noexcept nogil
-cdef void *_export_hyp1f1_double = _func_hyp1f1_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_faddeeva_log_ndtr "faddeeva_log_ndtr"(double) noexcept nogil
-cdef void *_export_faddeeva_log_ndtr = _func_faddeeva_log_ndtr
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_faddeeva_log_ndtr_complex "faddeeva_log_ndtr_complex"(double complex) noexcept nogil
-cdef void *_export_faddeeva_log_ndtr_complex = _func_faddeeva_log_ndtr_complex
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_faddeeva_ndtr "faddeeva_ndtr"(double complex) noexcept nogil
-cdef void *_export_faddeeva_ndtr = _func_faddeeva_ndtr
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef float _func_powm1_float "powm1_float"(float, float) noexcept nogil
-cdef void *_export_powm1_float = _func_powm1_float
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_powm1_double "powm1_double"(double, double) noexcept nogil
-cdef void *_export_powm1_double = _func_powm1_double
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_faddeeva_voigt_profile "faddeeva_voigt_profile"(double, double, double) noexcept nogil
-cdef void *_export_faddeeva_voigt_profile = _func_faddeeva_voigt_profile
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_faddeeva_w "faddeeva_w"(double complex) noexcept nogil
-cdef void *_export_faddeeva_w = _func_faddeeva_w
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double complex _func_wrightomega "wrightomega"(double complex) noexcept nogil
-cdef void *_export_wrightomega = _func_wrightomega
-cdef extern from r"_ufuncs_cxx_defs.h":
-    cdef double _func_wrightomega_real "wrightomega_real"(double) noexcept nogil
-cdef void *_export_wrightomega_real = _func_wrightomega_real
\ No newline at end of file
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs_cxx_defs.h b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs_cxx_defs.h
deleted file mode 100644
index 3dce5ff792fcaf1a793b92ddaaf4984acd1c4df7..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/_ufuncs_cxx_defs.h
+++ /dev/null
@@ -1,145 +0,0 @@
-#ifndef UFUNCS_PROTO_H
-#define UFUNCS_PROTO_H 1
-#include "boost_special_functions.h"
-npy_float beta_pdf_float(npy_float, npy_float, npy_float);
-npy_double beta_pdf_double(npy_double, npy_double, npy_double);
-npy_float beta_ppf_float(npy_float, npy_float, npy_float);
-npy_double beta_ppf_double(npy_double, npy_double, npy_double);
-npy_float binom_cdf_float(npy_float, npy_float, npy_float);
-npy_double binom_cdf_double(npy_double, npy_double, npy_double);
-npy_float binom_isf_float(npy_float, npy_float, npy_float);
-npy_double binom_isf_double(npy_double, npy_double, npy_double);
-npy_float binom_pmf_float(npy_float, npy_float, npy_float);
-npy_double binom_pmf_double(npy_double, npy_double, npy_double);
-npy_float binom_ppf_float(npy_float, npy_float, npy_float);
-npy_double binom_ppf_double(npy_double, npy_double, npy_double);
-npy_float binom_sf_float(npy_float, npy_float, npy_float);
-npy_double binom_sf_double(npy_double, npy_double, npy_double);
-npy_float hypergeom_cdf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double hypergeom_cdf_double(npy_double, npy_double, npy_double, npy_double);
-npy_float hypergeom_mean_float(npy_float, npy_float, npy_float);
-npy_double hypergeom_mean_double(npy_double, npy_double, npy_double);
-npy_float hypergeom_pmf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double hypergeom_pmf_double(npy_double, npy_double, npy_double, npy_double);
-npy_float hypergeom_sf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double hypergeom_sf_double(npy_double, npy_double, npy_double, npy_double);
-npy_float hypergeom_skewness_float(npy_float, npy_float, npy_float);
-npy_double hypergeom_skewness_double(npy_double, npy_double, npy_double);
-npy_float hypergeom_variance_float(npy_float, npy_float, npy_float);
-npy_double hypergeom_variance_double(npy_double, npy_double, npy_double);
-npy_float invgauss_isf_float(npy_float, npy_float, npy_float);
-npy_double invgauss_isf_double(npy_double, npy_double, npy_double);
-npy_float invgauss_ppf_float(npy_float, npy_float, npy_float);
-npy_double invgauss_ppf_double(npy_double, npy_double, npy_double);
-npy_float nbinom_cdf_float(npy_float, npy_float, npy_float);
-npy_double nbinom_cdf_double(npy_double, npy_double, npy_double);
-npy_float nbinom_isf_float(npy_float, npy_float, npy_float);
-npy_double nbinom_isf_double(npy_double, npy_double, npy_double);
-npy_float nbinom_kurtosis_excess_float(npy_float, npy_float);
-npy_double nbinom_kurtosis_excess_double(npy_double, npy_double);
-npy_float nbinom_mean_float(npy_float, npy_float);
-npy_double nbinom_mean_double(npy_double, npy_double);
-npy_float nbinom_pmf_float(npy_float, npy_float, npy_float);
-npy_double nbinom_pmf_double(npy_double, npy_double, npy_double);
-npy_float nbinom_ppf_float(npy_float, npy_float, npy_float);
-npy_double nbinom_ppf_double(npy_double, npy_double, npy_double);
-npy_float nbinom_sf_float(npy_float, npy_float, npy_float);
-npy_double nbinom_sf_double(npy_double, npy_double, npy_double);
-npy_float nbinom_skewness_float(npy_float, npy_float);
-npy_double nbinom_skewness_double(npy_double, npy_double);
-npy_float nbinom_variance_float(npy_float, npy_float);
-npy_double nbinom_variance_double(npy_double, npy_double);
-npy_float ncf_cdf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double ncf_cdf_double(npy_double, npy_double, npy_double, npy_double);
-npy_float ncf_isf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double ncf_isf_double(npy_double, npy_double, npy_double, npy_double);
-npy_float ncf_kurtosis_excess_float(npy_float, npy_float, npy_float);
-npy_double ncf_kurtosis_excess_double(npy_double, npy_double, npy_double);
-npy_float ncf_mean_float(npy_float, npy_float, npy_float);
-npy_double ncf_mean_double(npy_double, npy_double, npy_double);
-npy_float ncf_pdf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double ncf_pdf_double(npy_double, npy_double, npy_double, npy_double);
-npy_float ncf_ppf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double ncf_ppf_double(npy_double, npy_double, npy_double, npy_double);
-npy_float ncf_sf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double ncf_sf_double(npy_double, npy_double, npy_double, npy_double);
-npy_float ncf_skewness_float(npy_float, npy_float, npy_float);
-npy_double ncf_skewness_double(npy_double, npy_double, npy_double);
-npy_float ncf_variance_float(npy_float, npy_float, npy_float);
-npy_double ncf_variance_double(npy_double, npy_double, npy_double);
-npy_float nct_cdf_float(npy_float, npy_float, npy_float);
-npy_double nct_cdf_double(npy_double, npy_double, npy_double);
-npy_float nct_isf_float(npy_float, npy_float, npy_float);
-npy_double nct_isf_double(npy_double, npy_double, npy_double);
-npy_float nct_kurtosis_excess_float(npy_float, npy_float);
-npy_double nct_kurtosis_excess_double(npy_double, npy_double);
-npy_float nct_mean_float(npy_float, npy_float);
-npy_double nct_mean_double(npy_double, npy_double);
-npy_float nct_ppf_float(npy_float, npy_float, npy_float);
-npy_double nct_ppf_double(npy_double, npy_double, npy_double);
-npy_float nct_sf_float(npy_float, npy_float, npy_float);
-npy_double nct_sf_double(npy_double, npy_double, npy_double);
-npy_float nct_skewness_float(npy_float, npy_float);
-npy_double nct_skewness_double(npy_double, npy_double);
-npy_float nct_variance_float(npy_float, npy_float);
-npy_double nct_variance_double(npy_double, npy_double);
-npy_float ncx2_cdf_float(npy_float, npy_float, npy_float);
-npy_double ncx2_cdf_double(npy_double, npy_double, npy_double);
-npy_float ncx2_isf_float(npy_float, npy_float, npy_float);
-npy_double ncx2_isf_double(npy_double, npy_double, npy_double);
-npy_float ncx2_pdf_float(npy_float, npy_float, npy_float);
-npy_double ncx2_pdf_double(npy_double, npy_double, npy_double);
-npy_float ncx2_ppf_float(npy_float, npy_float, npy_float);
-npy_double ncx2_ppf_double(npy_double, npy_double, npy_double);
-npy_float ncx2_sf_float(npy_float, npy_float, npy_float);
-npy_double ncx2_sf_double(npy_double, npy_double, npy_double);
-npy_float skewnorm_cdf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double skewnorm_cdf_double(npy_double, npy_double, npy_double, npy_double);
-npy_float skewnorm_isf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double skewnorm_isf_double(npy_double, npy_double, npy_double, npy_double);
-npy_float skewnorm_ppf_float(npy_float, npy_float, npy_float, npy_float);
-npy_double skewnorm_ppf_double(npy_double, npy_double, npy_double, npy_double);
-#include "stirling2.h"
-npy_double _stirling2_inexact(npy_double, npy_double);
-npy_float ibeta_float(npy_float, npy_float, npy_float);
-npy_double ibeta_double(npy_double, npy_double, npy_double);
-npy_float ibetac_float(npy_float, npy_float, npy_float);
-npy_double ibetac_double(npy_double, npy_double, npy_double);
-npy_float ibetac_inv_float(npy_float, npy_float, npy_float);
-npy_double ibetac_inv_double(npy_double, npy_double, npy_double);
-npy_float ibeta_inv_float(npy_float, npy_float, npy_float);
-npy_double ibeta_inv_double(npy_double, npy_double, npy_double);
-#include "_faddeeva.h"
-npy_double faddeeva_dawsn(npy_double);
-npy_cdouble faddeeva_dawsn_complex(npy_cdouble);
-#include "ellint_carlson_wrap.hh"
-npy_double fellint_RC(npy_double, npy_double);
-npy_cdouble cellint_RC(npy_cdouble, npy_cdouble);
-npy_double fellint_RD(npy_double, npy_double, npy_double);
-npy_cdouble cellint_RD(npy_cdouble, npy_cdouble, npy_cdouble);
-npy_double fellint_RF(npy_double, npy_double, npy_double);
-npy_cdouble cellint_RF(npy_cdouble, npy_cdouble, npy_cdouble);
-npy_double fellint_RG(npy_double, npy_double, npy_double);
-npy_cdouble cellint_RG(npy_cdouble, npy_cdouble, npy_cdouble);
-npy_double fellint_RJ(npy_double, npy_double, npy_double, npy_double);
-npy_cdouble cellint_RJ(npy_cdouble, npy_cdouble, npy_cdouble, npy_cdouble);
-npy_cdouble faddeeva_erf(npy_cdouble);
-npy_cdouble faddeeva_erfc_complex(npy_cdouble);
-npy_double faddeeva_erfcx(npy_double);
-npy_cdouble faddeeva_erfcx_complex(npy_cdouble);
-npy_double faddeeva_erfi(npy_double);
-npy_cdouble faddeeva_erfi_complex(npy_cdouble);
-npy_float erfinv_float(npy_float);
-npy_double erfinv_double(npy_double);
-npy_double hyp1f1_double(npy_double, npy_double, npy_double);
-npy_double faddeeva_log_ndtr(npy_double);
-npy_cdouble faddeeva_log_ndtr_complex(npy_cdouble);
-npy_cdouble faddeeva_ndtr(npy_cdouble);
-npy_float powm1_float(npy_float, npy_float);
-npy_double powm1_double(npy_double, npy_double);
-npy_double faddeeva_voigt_profile(npy_double, npy_double, npy_double);
-npy_cdouble faddeeva_w(npy_cdouble);
-#include "_wright.h"
-npy_cdouble wrightomega(npy_cdouble);
-npy_double wrightomega_real(npy_double);
-#endif
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/add_newdocs.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/add_newdocs.py
deleted file mode 100644
index 5549717d35710d71655e42c836625cde9346bcc3..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/add_newdocs.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__: list[str] = []
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="special", module="add_newdocs",
-                                   private_modules=["_add_newdocs"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/basic.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/basic.py
deleted file mode 100644
index e55695f44d05187d6c83f1ebefd70270af2c2d76..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/basic.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.special` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-__all__ = [  # noqa: F822
-    'ai_zeros',
-    'assoc_laguerre',
-    'bei_zeros',
-    'beip_zeros',
-    'ber_zeros',
-    'bernoulli',
-    'berp_zeros',
-    'bi_zeros',
-    'clpmn',
-    'comb',
-    'digamma',
-    'diric',
-    'erf_zeros',
-    'euler',
-    'factorial',
-    'factorial2',
-    'factorialk',
-    'fresnel_zeros',
-    'fresnelc_zeros',
-    'fresnels_zeros',
-    'gamma',
-    'h1vp',
-    'h2vp',
-    'hankel1',
-    'hankel2',
-    'iv',
-    'ivp',
-    'jn_zeros',
-    'jnjnp_zeros',
-    'jnp_zeros',
-    'jnyn_zeros',
-    'jv',
-    'jvp',
-    'kei_zeros',
-    'keip_zeros',
-    'kelvin_zeros',
-    'ker_zeros',
-    'kerp_zeros',
-    'kv',
-    'kvp',
-    'lmbda',
-    'lpmn',
-    'lpn',
-    'lqmn',
-    'lqn',
-    'mathieu_a',
-    'mathieu_b',
-    'mathieu_even_coef',
-    'mathieu_odd_coef',
-    'obl_cv_seq',
-    'pbdn_seq',
-    'pbdv_seq',
-    'pbvv_seq',
-    'perm',
-    'polygamma',
-    'pro_cv_seq',
-    'psi',
-    'riccati_jn',
-    'riccati_yn',
-    'sinc',
-    'y0_zeros',
-    'y1_zeros',
-    'y1p_zeros',
-    'yn_zeros',
-    'ynp_zeros',
-    'yv',
-    'yvp',
-    'zeta'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="special", module="basic",
-                                   private_modules=["_basic", "_ufuncs"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/cython_special.pxd b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/cython_special.pxd
deleted file mode 100644
index a472206d75fd090c3ee4fede5a53decb58020e42..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/cython_special.pxd
+++ /dev/null
@@ -1,261 +0,0 @@
-
-ctypedef fused number_t:
-    double complex
-    double
-
-cpdef number_t spherical_jn(Py_ssize_t n, number_t z, bint derivative=*) noexcept nogil
-cpdef number_t spherical_yn(Py_ssize_t n, number_t z, bint derivative=*) noexcept nogil
-cpdef number_t spherical_in(Py_ssize_t n, number_t z, bint derivative=*) noexcept nogil
-cpdef number_t spherical_kn(Py_ssize_t n, number_t z, bint derivative=*) noexcept nogil
-
-ctypedef fused Dd_number_t:
-    double complex
-    double
-
-ctypedef fused df_number_t:
-    double
-    float
-
-ctypedef fused dfg_number_t:
-    double
-    float
-    long double
-
-ctypedef fused dlp_number_t:
-    double
-    long
-    Py_ssize_t
-
-cpdef double voigt_profile(double x0, double x1, double x2) noexcept nogil
-cpdef double agm(double x0, double x1) noexcept nogil
-cdef void airy(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) noexcept nogil
-cdef void airye(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) noexcept nogil
-cpdef double bdtr(double x0, dlp_number_t x1, double x2) noexcept nogil
-cpdef double bdtrc(double x0, dlp_number_t x1, double x2) noexcept nogil
-cpdef double bdtri(double x0, dlp_number_t x1, double x2) noexcept nogil
-cpdef double bdtrik(double x0, double x1, double x2) noexcept nogil
-cpdef double bdtrin(double x0, double x1, double x2) noexcept nogil
-cpdef double bei(double x0) noexcept nogil
-cpdef double beip(double x0) noexcept nogil
-cpdef double ber(double x0) noexcept nogil
-cpdef double berp(double x0) noexcept nogil
-cpdef double besselpoly(double x0, double x1, double x2) noexcept nogil
-cpdef double beta(double x0, double x1) noexcept nogil
-cpdef df_number_t betainc(df_number_t x0, df_number_t x1, df_number_t x2) noexcept nogil
-cpdef df_number_t betaincc(df_number_t x0, df_number_t x1, df_number_t x2) noexcept nogil
-cpdef df_number_t betaincinv(df_number_t x0, df_number_t x1, df_number_t x2) noexcept nogil
-cpdef df_number_t betainccinv(df_number_t x0, df_number_t x1, df_number_t x2) noexcept nogil
-cpdef double betaln(double x0, double x1) noexcept nogil
-cpdef double binom(double x0, double x1) noexcept nogil
-cpdef double boxcox(double x0, double x1) noexcept nogil
-cpdef double boxcox1p(double x0, double x1) noexcept nogil
-cpdef double btdtr(double x0, double x1, double x2) noexcept nogil
-cpdef double btdtri(double x0, double x1, double x2) noexcept nogil
-cpdef double btdtria(double x0, double x1, double x2) noexcept nogil
-cpdef double btdtrib(double x0, double x1, double x2) noexcept nogil
-cpdef double cbrt(double x0) noexcept nogil
-cpdef double chdtr(double x0, double x1) noexcept nogil
-cpdef double chdtrc(double x0, double x1) noexcept nogil
-cpdef double chdtri(double x0, double x1) noexcept nogil
-cpdef double chdtriv(double x0, double x1) noexcept nogil
-cpdef double chndtr(double x0, double x1, double x2) noexcept nogil
-cpdef double chndtridf(double x0, double x1, double x2) noexcept nogil
-cpdef double chndtrinc(double x0, double x1, double x2) noexcept nogil
-cpdef double chndtrix(double x0, double x1, double x2) noexcept nogil
-cpdef double cosdg(double x0) noexcept nogil
-cpdef double cosm1(double x0) noexcept nogil
-cpdef double cotdg(double x0) noexcept nogil
-cpdef Dd_number_t dawsn(Dd_number_t x0) noexcept nogil
-cpdef double ellipe(double x0) noexcept nogil
-cpdef double ellipeinc(double x0, double x1) noexcept nogil
-cdef void ellipj(double x0, double x1, double *y0, double *y1, double *y2, double *y3) noexcept nogil
-cpdef double ellipkinc(double x0, double x1) noexcept nogil
-cpdef double ellipkm1(double x0) noexcept nogil
-cpdef double ellipk(double x0) noexcept nogil
-cpdef Dd_number_t elliprc(Dd_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t elliprd(Dd_number_t x0, Dd_number_t x1, Dd_number_t x2) noexcept nogil
-cpdef Dd_number_t elliprf(Dd_number_t x0, Dd_number_t x1, Dd_number_t x2) noexcept nogil
-cpdef Dd_number_t elliprg(Dd_number_t x0, Dd_number_t x1, Dd_number_t x2) noexcept nogil
-cpdef Dd_number_t elliprj(Dd_number_t x0, Dd_number_t x1, Dd_number_t x2, Dd_number_t x3) noexcept nogil
-cpdef double entr(double x0) noexcept nogil
-cpdef Dd_number_t erf(Dd_number_t x0) noexcept nogil
-cpdef Dd_number_t erfc(Dd_number_t x0) noexcept nogil
-cpdef Dd_number_t erfcx(Dd_number_t x0) noexcept nogil
-cpdef Dd_number_t erfi(Dd_number_t x0) noexcept nogil
-cpdef df_number_t erfinv(df_number_t x0) noexcept nogil
-cpdef double erfcinv(double x0) noexcept nogil
-cpdef Dd_number_t eval_chebyc(dlp_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t eval_chebys(dlp_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t eval_chebyt(dlp_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t eval_chebyu(dlp_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t eval_gegenbauer(dlp_number_t x0, double x1, Dd_number_t x2) noexcept nogil
-cpdef Dd_number_t eval_genlaguerre(dlp_number_t x0, double x1, Dd_number_t x2) noexcept nogil
-cpdef double eval_hermite(Py_ssize_t x0, double x1) noexcept nogil
-cpdef double eval_hermitenorm(Py_ssize_t x0, double x1) noexcept nogil
-cpdef Dd_number_t eval_jacobi(dlp_number_t x0, double x1, double x2, Dd_number_t x3) noexcept nogil
-cpdef Dd_number_t eval_laguerre(dlp_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t eval_legendre(dlp_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t eval_sh_chebyt(dlp_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t eval_sh_chebyu(dlp_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t eval_sh_jacobi(dlp_number_t x0, double x1, double x2, Dd_number_t x3) noexcept nogil
-cpdef Dd_number_t eval_sh_legendre(dlp_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t exp1(Dd_number_t x0) noexcept nogil
-cpdef double exp10(double x0) noexcept nogil
-cpdef double exp2(double x0) noexcept nogil
-cpdef Dd_number_t expi(Dd_number_t x0) noexcept nogil
-cpdef dfg_number_t expit(dfg_number_t x0) noexcept nogil
-cpdef Dd_number_t expm1(Dd_number_t x0) noexcept nogil
-cpdef double expn(dlp_number_t x0, double x1) noexcept nogil
-cpdef double exprel(double x0) noexcept nogil
-cpdef double fdtr(double x0, double x1, double x2) noexcept nogil
-cpdef double fdtrc(double x0, double x1, double x2) noexcept nogil
-cpdef double fdtri(double x0, double x1, double x2) noexcept nogil
-cpdef double fdtridfd(double x0, double x1, double x2) noexcept nogil
-cdef void fresnel(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) noexcept nogil
-cpdef Dd_number_t gamma(Dd_number_t x0) noexcept nogil
-cpdef double gammainc(double x0, double x1) noexcept nogil
-cpdef double gammaincc(double x0, double x1) noexcept nogil
-cpdef double gammainccinv(double x0, double x1) noexcept nogil
-cpdef double gammaincinv(double x0, double x1) noexcept nogil
-cpdef double gammaln(double x0) noexcept nogil
-cpdef double gammasgn(double x0) noexcept nogil
-cpdef double gdtr(double x0, double x1, double x2) noexcept nogil
-cpdef double gdtrc(double x0, double x1, double x2) noexcept nogil
-cpdef double gdtria(double x0, double x1, double x2) noexcept nogil
-cpdef double gdtrib(double x0, double x1, double x2) noexcept nogil
-cpdef double gdtrix(double x0, double x1, double x2) noexcept nogil
-cpdef double complex hankel1(double x0, double complex x1) noexcept nogil
-cpdef double complex hankel1e(double x0, double complex x1) noexcept nogil
-cpdef double complex hankel2(double x0, double complex x1) noexcept nogil
-cpdef double complex hankel2e(double x0, double complex x1) noexcept nogil
-cpdef double huber(double x0, double x1) noexcept nogil
-cpdef Dd_number_t hyp0f1(double x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t hyp1f1(double x0, double x1, Dd_number_t x2) noexcept nogil
-cpdef Dd_number_t hyp2f1(double x0, double x1, double x2, Dd_number_t x3) noexcept nogil
-cpdef double hyperu(double x0, double x1, double x2) noexcept nogil
-cpdef double i0(double x0) noexcept nogil
-cpdef double i0e(double x0) noexcept nogil
-cpdef double i1(double x0) noexcept nogil
-cpdef double i1e(double x0) noexcept nogil
-cpdef double inv_boxcox(double x0, double x1) noexcept nogil
-cpdef double inv_boxcox1p(double x0, double x1) noexcept nogil
-cdef void it2i0k0(double x0, double *y0, double *y1) noexcept nogil
-cdef void it2j0y0(double x0, double *y0, double *y1) noexcept nogil
-cpdef double it2struve0(double x0) noexcept nogil
-cdef void itairy(double x0, double *y0, double *y1, double *y2, double *y3) noexcept nogil
-cdef void iti0k0(double x0, double *y0, double *y1) noexcept nogil
-cdef void itj0y0(double x0, double *y0, double *y1) noexcept nogil
-cpdef double itmodstruve0(double x0) noexcept nogil
-cpdef double itstruve0(double x0) noexcept nogil
-cpdef Dd_number_t iv(double x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t ive(double x0, Dd_number_t x1) noexcept nogil
-cpdef double j0(double x0) noexcept nogil
-cpdef double j1(double x0) noexcept nogil
-cpdef Dd_number_t jv(double x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t jve(double x0, Dd_number_t x1) noexcept nogil
-cpdef double k0(double x0) noexcept nogil
-cpdef double k0e(double x0) noexcept nogil
-cpdef double k1(double x0) noexcept nogil
-cpdef double k1e(double x0) noexcept nogil
-cpdef double kei(double x0) noexcept nogil
-cpdef double keip(double x0) noexcept nogil
-cdef void kelvin(double x0, double complex *y0, double complex *y1, double complex *y2, double complex *y3) noexcept nogil
-cpdef double ker(double x0) noexcept nogil
-cpdef double kerp(double x0) noexcept nogil
-cpdef double kl_div(double x0, double x1) noexcept nogil
-cpdef double kn(dlp_number_t x0, double x1) noexcept nogil
-cpdef double kolmogi(double x0) noexcept nogil
-cpdef double kolmogorov(double x0) noexcept nogil
-cpdef Dd_number_t kv(double x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t kve(double x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t log1p(Dd_number_t x0) noexcept nogil
-cpdef dfg_number_t log_expit(dfg_number_t x0) noexcept nogil
-cpdef Dd_number_t log_ndtr(Dd_number_t x0) noexcept nogil
-cpdef Dd_number_t loggamma(Dd_number_t x0) noexcept nogil
-cpdef dfg_number_t logit(dfg_number_t x0) noexcept nogil
-cpdef double lpmv(double x0, double x1, double x2) noexcept nogil
-cpdef double mathieu_a(double x0, double x1) noexcept nogil
-cpdef double mathieu_b(double x0, double x1) noexcept nogil
-cdef void mathieu_cem(double x0, double x1, double x2, double *y0, double *y1) noexcept nogil
-cdef void mathieu_modcem1(double x0, double x1, double x2, double *y0, double *y1) noexcept nogil
-cdef void mathieu_modcem2(double x0, double x1, double x2, double *y0, double *y1) noexcept nogil
-cdef void mathieu_modsem1(double x0, double x1, double x2, double *y0, double *y1) noexcept nogil
-cdef void mathieu_modsem2(double x0, double x1, double x2, double *y0, double *y1) noexcept nogil
-cdef void mathieu_sem(double x0, double x1, double x2, double *y0, double *y1) noexcept nogil
-cdef void modfresnelm(double x0, double complex *y0, double complex *y1) noexcept nogil
-cdef void modfresnelp(double x0, double complex *y0, double complex *y1) noexcept nogil
-cpdef double modstruve(double x0, double x1) noexcept nogil
-cpdef double nbdtr(dlp_number_t x0, dlp_number_t x1, double x2) noexcept nogil
-cpdef double nbdtrc(dlp_number_t x0, dlp_number_t x1, double x2) noexcept nogil
-cpdef double nbdtri(dlp_number_t x0, dlp_number_t x1, double x2) noexcept nogil
-cpdef double nbdtrik(double x0, double x1, double x2) noexcept nogil
-cpdef double nbdtrin(double x0, double x1, double x2) noexcept nogil
-cpdef double ncfdtr(double x0, double x1, double x2, double x3) noexcept nogil
-cpdef double ncfdtri(double x0, double x1, double x2, double x3) noexcept nogil
-cpdef double ncfdtridfd(double x0, double x1, double x2, double x3) noexcept nogil
-cpdef double ncfdtridfn(double x0, double x1, double x2, double x3) noexcept nogil
-cpdef double ncfdtrinc(double x0, double x1, double x2, double x3) noexcept nogil
-cpdef double nctdtr(double x0, double x1, double x2) noexcept nogil
-cpdef double nctdtridf(double x0, double x1, double x2) noexcept nogil
-cpdef double nctdtrinc(double x0, double x1, double x2) noexcept nogil
-cpdef double nctdtrit(double x0, double x1, double x2) noexcept nogil
-cpdef Dd_number_t ndtr(Dd_number_t x0) noexcept nogil
-cpdef double ndtri(double x0) noexcept nogil
-cpdef double nrdtrimn(double x0, double x1, double x2) noexcept nogil
-cpdef double nrdtrisd(double x0, double x1, double x2) noexcept nogil
-cdef void obl_ang1(double x0, double x1, double x2, double x3, double *y0, double *y1) noexcept nogil
-cdef void obl_ang1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) noexcept nogil
-cpdef double obl_cv(double x0, double x1, double x2) noexcept nogil
-cdef void obl_rad1(double x0, double x1, double x2, double x3, double *y0, double *y1) noexcept nogil
-cdef void obl_rad1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) noexcept nogil
-cdef void obl_rad2(double x0, double x1, double x2, double x3, double *y0, double *y1) noexcept nogil
-cdef void obl_rad2_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) noexcept nogil
-cpdef double owens_t(double x0, double x1) noexcept nogil
-cdef void pbdv(double x0, double x1, double *y0, double *y1) noexcept nogil
-cdef void pbvv(double x0, double x1, double *y0, double *y1) noexcept nogil
-cdef void pbwa(double x0, double x1, double *y0, double *y1) noexcept nogil
-cpdef double pdtr(double x0, double x1) noexcept nogil
-cpdef double pdtrc(double x0, double x1) noexcept nogil
-cpdef double pdtri(dlp_number_t x0, double x1) noexcept nogil
-cpdef double pdtrik(double x0, double x1) noexcept nogil
-cpdef double poch(double x0, double x1) noexcept nogil
-cpdef df_number_t powm1(df_number_t x0, df_number_t x1) noexcept nogil
-cdef void pro_ang1(double x0, double x1, double x2, double x3, double *y0, double *y1) noexcept nogil
-cdef void pro_ang1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) noexcept nogil
-cpdef double pro_cv(double x0, double x1, double x2) noexcept nogil
-cdef void pro_rad1(double x0, double x1, double x2, double x3, double *y0, double *y1) noexcept nogil
-cdef void pro_rad1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) noexcept nogil
-cdef void pro_rad2(double x0, double x1, double x2, double x3, double *y0, double *y1) noexcept nogil
-cdef void pro_rad2_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) noexcept nogil
-cpdef double pseudo_huber(double x0, double x1) noexcept nogil
-cpdef Dd_number_t psi(Dd_number_t x0) noexcept nogil
-cpdef double radian(double x0, double x1, double x2) noexcept nogil
-cpdef double rel_entr(double x0, double x1) noexcept nogil
-cpdef Dd_number_t rgamma(Dd_number_t x0) noexcept nogil
-cpdef double round(double x0) noexcept nogil
-cdef void shichi(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) noexcept nogil
-cdef void sici(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) noexcept nogil
-cpdef double sindg(double x0) noexcept nogil
-cpdef double smirnov(dlp_number_t x0, double x1) noexcept nogil
-cpdef double smirnovi(dlp_number_t x0, double x1) noexcept nogil
-cpdef Dd_number_t spence(Dd_number_t x0) noexcept nogil
-cpdef double complex sph_harm(dlp_number_t x0, dlp_number_t x1, double x2, double x3) noexcept nogil
-cpdef double stdtr(double x0, double x1) noexcept nogil
-cpdef double stdtridf(double x0, double x1) noexcept nogil
-cpdef double stdtrit(double x0, double x1) noexcept nogil
-cpdef double struve(double x0, double x1) noexcept nogil
-cpdef double tandg(double x0) noexcept nogil
-cpdef double tklmbda(double x0, double x1) noexcept nogil
-cpdef double complex wofz(double complex x0) noexcept nogil
-cpdef Dd_number_t wrightomega(Dd_number_t x0) noexcept nogil
-cpdef Dd_number_t xlog1py(Dd_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t xlogy(Dd_number_t x0, Dd_number_t x1) noexcept nogil
-cpdef double y0(double x0) noexcept nogil
-cpdef double y1(double x0) noexcept nogil
-cpdef double yn(dlp_number_t x0, double x1) noexcept nogil
-cpdef Dd_number_t yv(double x0, Dd_number_t x1) noexcept nogil
-cpdef Dd_number_t yve(double x0, Dd_number_t x1) noexcept nogil
-cpdef double zetac(double x0) noexcept nogil
-cpdef double wright_bessel(double x0, double x1, double x2) noexcept nogil
-cpdef double log_wright_bessel(double x0, double x1, double x2) noexcept nogil
-cpdef double ndtri_exp(double x0) noexcept nogil
\ No newline at end of file
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/cython_special.pyi b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/cython_special.pyi
deleted file mode 100644
index 024e962b10df8892631eaad20223f7fc8378ea83..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/cython_special.pyi
+++ /dev/null
@@ -1,3 +0,0 @@
-from typing import Any
-
-def __getattr__(name) -> Any: ...
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/libsf_error_state.so b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/libsf_error_state.so
deleted file mode 100644
index 4056cb019ba6f23334be96ba6851e50c06e89ef6..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/libsf_error_state.so and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/orthogonal.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/orthogonal.py
deleted file mode 100644
index 0b13a08a96cb683d72a4a00d6962446e1779c88a..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/orthogonal.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.special` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-
-_polyfuns = ['legendre', 'chebyt', 'chebyu', 'chebyc', 'chebys',
-             'jacobi', 'laguerre', 'genlaguerre', 'hermite',
-             'hermitenorm', 'gegenbauer', 'sh_legendre', 'sh_chebyt',
-             'sh_chebyu', 'sh_jacobi']
-
-# Correspondence between new and old names of root functions
-_rootfuns_map = {'roots_legendre': 'p_roots',
-               'roots_chebyt': 't_roots',
-               'roots_chebyu': 'u_roots',
-               'roots_chebyc': 'c_roots',
-               'roots_chebys': 's_roots',
-               'roots_jacobi': 'j_roots',
-               'roots_laguerre': 'l_roots',
-               'roots_genlaguerre': 'la_roots',
-               'roots_hermite': 'h_roots',
-               'roots_hermitenorm': 'he_roots',
-               'roots_gegenbauer': 'cg_roots',
-               'roots_sh_legendre': 'ps_roots',
-               'roots_sh_chebyt': 'ts_roots',
-               'roots_sh_chebyu': 'us_roots',
-               'roots_sh_jacobi': 'js_roots'}
-
-
-__all__ = _polyfuns + list(_rootfuns_map.keys()) + [  # noqa: F822
-    'airy', 'p_roots', 't_roots', 'u_roots', 'c_roots', 's_roots',
-    'j_roots', 'l_roots', 'la_roots', 'h_roots', 'he_roots', 'cg_roots',
-    'ps_roots', 'ts_roots', 'us_roots', 'js_roots'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="special", module="orthogonal",
-                                   private_modules=["_orthogonal"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/specfun.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/specfun.py
deleted file mode 100644
index 9fca00415a6406b8cdf41a42b6fbf991cea1f53f..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/specfun.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.special` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-# ruff: noqa: F822
-__all__ = [
-    'clpmn',
-    'lpmn',
-    'lpn',
-    'lqmn',
-    'pbdv'
-]
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="special", module="specfun",
-                                   private_modules=["_basic", "_specfun"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/spfun_stats.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/spfun_stats.py
deleted file mode 100644
index a1e58487aaa547483c9f2531ac4efc2ad5e4795c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/spfun_stats.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file is not meant for public use and will be removed in SciPy v2.0.0.
-# Use the `scipy.special` namespace for importing the functions
-# included below.
-
-from scipy._lib.deprecation import _sub_module_deprecation
-
-__all__ = ['multigammaln']  # noqa: F822
-
-
-def __dir__():
-    return __all__
-
-
-def __getattr__(name):
-    return _sub_module_deprecation(sub_package="special", module="spfun_stats",
-                                   private_modules=["_spfun_stats"], all=__all__,
-                                   attribute=name)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/tests/test_pcf.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/tests/test_pcf.py
deleted file mode 100644
index a8c42aa688081fb58f79ad2c8ea932d03b33523b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/special/tests/test_pcf.py
+++ /dev/null
@@ -1,24 +0,0 @@
-"""Tests for parabolic cylinder functions.
-
-"""
-import numpy as np
-from numpy.testing import assert_allclose, assert_equal
-import scipy.special as sc
-
-
-def test_pbwa_segfault():
-    # Regression test for https://github.com/scipy/scipy/issues/6208.
-    #
-    # Data generated by mpmath.
-    #
-    w = 1.02276567211316867161
-    wp = -0.48887053372346189882
-    assert_allclose(sc.pbwa(0, 0), (w, wp), rtol=1e-13, atol=0)
-
-
-def test_pbwa_nan():
-    # Check that NaN's are returned outside of the range in which the
-    # implementation is accurate.
-    pts = [(-6, -6), (-6, 6), (6, -6), (6, 6)]
-    for p in pts:
-        assert_equal(sc.pbwa(*p), (np.nan, np.nan))
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/version.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/version.py
deleted file mode 100644
index 067ba51c8ddea9d278f9c18e62d1bca6c96a2695..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/scipy/version.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# THIS FILE IS GENERATED DURING THE SCIPY BUILD
-# See tools/version_utils.py for details
-
-short_version = '1.14.1'
-version = '1.14.1'
-full_version = '1.14.1'
-git_revision = '92d2a85'
-commit_count = '1441'
-release = True
-
-if not release:
-    version = full_version
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/setuptools-59.6.0.virtualenv b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/setuptools-59.6.0.virtualenv
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/threadpoolctl.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/threadpoolctl.py
deleted file mode 100644
index 2a72d1b57e1d764d73052583d3c5a8e8b7697eae..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/threadpoolctl.py
+++ /dev/null
@@ -1,1280 +0,0 @@
-"""threadpoolctl
-
-This module provides utilities to introspect native libraries that relies on
-thread pools (notably BLAS and OpenMP implementations) and dynamically set the
-maximal number of threads they can use.
-"""
-
-# License: BSD 3-Clause
-
-# The code to introspect dynamically loaded libraries on POSIX systems is
-# adapted from code by Intel developer @anton-malakhov available at
-# https://github.com/IntelPython/smp (Copyright (c) 2017, Intel Corporation)
-# and also published under the BSD 3-Clause license
-import os
-import re
-import sys
-import ctypes
-import itertools
-import textwrap
-from typing import final
-import warnings
-from ctypes.util import find_library
-from abc import ABC, abstractmethod
-from functools import lru_cache
-from contextlib import ContextDecorator
-
-__version__ = "3.5.0"
-__all__ = [
-    "threadpool_limits",
-    "threadpool_info",
-    "ThreadpoolController",
-    "LibController",
-    "register",
-]
-
-
-# One can get runtime errors or even segfaults due to multiple OpenMP libraries
-# loaded simultaneously which can happen easily in Python when importing and
-# using compiled extensions built with different compilers and therefore
-# different OpenMP runtimes in the same program. In particular libiomp (used by
-# Intel ICC) and libomp used by clang/llvm tend to crash. This can happen for
-# instance when calling BLAS inside a prange. Setting the following environment
-# variable allows multiple OpenMP libraries to be loaded. It should not degrade
-# performances since we manually take care of potential over-subscription
-# performance issues, in sections of the code where nested OpenMP loops can
-# happen, by dynamically reconfiguring the inner OpenMP runtime to temporarily
-# disable it while under the scope of the outer OpenMP parallel section.
-os.environ.setdefault("KMP_DUPLICATE_LIB_OK", "True")
-
-# Structure to cast the info on dynamically loaded library. See
-# https://linux.die.net/man/3/dl_iterate_phdr for more details.
-_SYSTEM_UINT = ctypes.c_uint64 if sys.maxsize > 2**32 else ctypes.c_uint32
-_SYSTEM_UINT_HALF = ctypes.c_uint32 if sys.maxsize > 2**32 else ctypes.c_uint16
-
-
-class _dl_phdr_info(ctypes.Structure):
-    _fields_ = [
-        ("dlpi_addr", _SYSTEM_UINT),  # Base address of object
-        ("dlpi_name", ctypes.c_char_p),  # path to the library
-        ("dlpi_phdr", ctypes.c_void_p),  # pointer on dlpi_headers
-        ("dlpi_phnum", _SYSTEM_UINT_HALF),  # number of elements in dlpi_phdr
-    ]
-
-
-# The RTLD_NOLOAD flag for loading shared libraries is not defined on Windows.
-try:
-    _RTLD_NOLOAD = os.RTLD_NOLOAD
-except AttributeError:
-    _RTLD_NOLOAD = ctypes.DEFAULT_MODE
-
-
-class LibController(ABC):
-    """Abstract base class for the individual library controllers
-
-    A library controller must expose the following class attributes:
-        - user_api : str
-            Usually the name of the library or generic specification the library
-            implements, e.g. "blas" is a specification with different implementations.
-        - internal_api : str
-            Usually the name of the library or concrete implementation of some
-            specification, e.g. "openblas" is an implementation of the "blas"
-            specification.
-        - filename_prefixes : tuple
-            Possible prefixes of the shared library's filename that allow to
-            identify the library. e.g. "libopenblas" for libopenblas.so.
-
-    and implement the following methods: `get_num_threads`, `set_num_threads` and
-    `get_version`.
-
-    Threadpoolctl loops through all the loaded shared libraries and tries to match
-    the filename of each library with the `filename_prefixes`. If a match is found, a
-    controller is instantiated and a handler to the library is stored in the `dynlib`
-    attribute as a `ctypes.CDLL` object. It can be used to access the necessary symbols
-    of the shared library to implement the above methods.
-
-    The following information will be exposed in the info dictionary:
-      - user_api : standardized API, if any, or a copy of internal_api.
-      - internal_api : implementation-specific API.
-      - num_threads : the current thread limit.
-      - prefix : prefix of the shared library's filename.
-      - filepath : path to the loaded shared library.
-      - version : version of the library (if available).
-
-    In addition, each library controller may expose internal API specific entries. They
-    must be set as attributes in the `set_additional_attributes` method.
-    """
-
-    @final
-    def __init__(self, *, filepath=None, prefix=None, parent=None):
-        """This is not meant to be overriden by subclasses."""
-        self.parent = parent
-        self.prefix = prefix
-        self.filepath = filepath
-        self.dynlib = ctypes.CDLL(filepath, mode=_RTLD_NOLOAD)
-        self._symbol_prefix, self._symbol_suffix = self._find_affixes()
-        self.version = self.get_version()
-        self.set_additional_attributes()
-
-    def info(self):
-        """Return relevant info wrapped in a dict"""
-        hidden_attrs = ("dynlib", "parent", "_symbol_prefix", "_symbol_suffix")
-        return {
-            "user_api": self.user_api,
-            "internal_api": self.internal_api,
-            "num_threads": self.num_threads,
-            **{k: v for k, v in vars(self).items() if k not in hidden_attrs},
-        }
-
-    def set_additional_attributes(self):
-        """Set additional attributes meant to be exposed in the info dict"""
-
-    @property
-    def num_threads(self):
-        """Exposes the current thread limit as a dynamic property
-
-        This is not meant to be used or overriden by subclasses.
-        """
-        return self.get_num_threads()
-
-    @abstractmethod
-    def get_num_threads(self):
-        """Return the maximum number of threads available to use"""
-
-    @abstractmethod
-    def set_num_threads(self, num_threads):
-        """Set the maximum number of threads to use"""
-
-    @abstractmethod
-    def get_version(self):
-        """Return the version of the shared library"""
-
-    def _find_affixes(self):
-        """Return the affixes for the symbols of the shared library"""
-        return "", ""
-
-    def _get_symbol(self, name):
-        """Return the symbol of the shared library accounding for the affixes"""
-        return getattr(
-            self.dynlib, f"{self._symbol_prefix}{name}{self._symbol_suffix}", None
-        )
-
-
-class OpenBLASController(LibController):
-    """Controller class for OpenBLAS"""
-
-    user_api = "blas"
-    internal_api = "openblas"
-    filename_prefixes = ("libopenblas", "libblas", "libscipy_openblas")
-
-    _symbol_prefixes = ("", "scipy_")
-    _symbol_suffixes = ("", "64_", "_64")
-
-    # All variations of "openblas_get_num_threads", accounting for the affixes
-    check_symbols = tuple(
-        f"{prefix}openblas_get_num_threads{suffix}"
-        for prefix, suffix in itertools.product(_symbol_prefixes, _symbol_suffixes)
-    )
-
-    def _find_affixes(self):
-        for prefix, suffix in itertools.product(
-            self._symbol_prefixes, self._symbol_suffixes
-        ):
-            if hasattr(self.dynlib, f"{prefix}openblas_get_num_threads{suffix}"):
-                return prefix, suffix
-
-    def set_additional_attributes(self):
-        self.threading_layer = self._get_threading_layer()
-        self.architecture = self._get_architecture()
-
-    def get_num_threads(self):
-        get_num_threads_func = self._get_symbol("openblas_get_num_threads")
-        if get_num_threads_func is not None:
-            return get_num_threads_func()
-        return None
-
-    def set_num_threads(self, num_threads):
-        set_num_threads_func = self._get_symbol("openblas_set_num_threads")
-        if set_num_threads_func is not None:
-            return set_num_threads_func(num_threads)
-        return None
-
-    def get_version(self):
-        # None means OpenBLAS is not loaded or version < 0.3.4, since OpenBLAS
-        # did not expose its version before that.
-        get_version_func = self._get_symbol("openblas_get_config")
-        if get_version_func is not None:
-            get_version_func.restype = ctypes.c_char_p
-            config = get_version_func().split()
-            if config[0] == b"OpenBLAS":
-                return config[1].decode("utf-8")
-            return None
-        return None
-
-    def _get_threading_layer(self):
-        """Return the threading layer of OpenBLAS"""
-        get_threading_layer_func = self._get_symbol("openblas_get_parallel")
-        if get_threading_layer_func is not None:
-            threading_layer = get_threading_layer_func()
-            if threading_layer == 2:
-                return "openmp"
-            elif threading_layer == 1:
-                return "pthreads"
-            return "disabled"
-        return "unknown"
-
-    def _get_architecture(self):
-        """Return the architecture detected by OpenBLAS"""
-        get_architecture_func = self._get_symbol("openblas_get_corename")
-        if get_architecture_func is not None:
-            get_architecture_func.restype = ctypes.c_char_p
-            return get_architecture_func().decode("utf-8")
-        return None
-
-
-class BLISController(LibController):
-    """Controller class for BLIS"""
-
-    user_api = "blas"
-    internal_api = "blis"
-    filename_prefixes = ("libblis", "libblas")
-    check_symbols = (
-        "bli_thread_get_num_threads",
-        "bli_thread_set_num_threads",
-        "bli_info_get_version_str",
-        "bli_info_get_enable_openmp",
-        "bli_info_get_enable_pthreads",
-        "bli_arch_query_id",
-        "bli_arch_string",
-    )
-
-    def set_additional_attributes(self):
-        self.threading_layer = self._get_threading_layer()
-        self.architecture = self._get_architecture()
-
-    def get_num_threads(self):
-        get_func = getattr(self.dynlib, "bli_thread_get_num_threads", lambda: None)
-        num_threads = get_func()
-        # by default BLIS is single-threaded and get_num_threads
-        # returns -1. We map it to 1 for consistency with other libraries.
-        return 1 if num_threads == -1 else num_threads
-
-    def set_num_threads(self, num_threads):
-        set_func = getattr(
-            self.dynlib, "bli_thread_set_num_threads", lambda num_threads: None
-        )
-        return set_func(num_threads)
-
-    def get_version(self):
-        get_version_ = getattr(self.dynlib, "bli_info_get_version_str", None)
-        if get_version_ is None:
-            return None
-
-        get_version_.restype = ctypes.c_char_p
-        return get_version_().decode("utf-8")
-
-    def _get_threading_layer(self):
-        """Return the threading layer of BLIS"""
-        if getattr(self.dynlib, "bli_info_get_enable_openmp", lambda: False)():
-            return "openmp"
-        elif getattr(self.dynlib, "bli_info_get_enable_pthreads", lambda: False)():
-            return "pthreads"
-        return "disabled"
-
-    def _get_architecture(self):
-        """Return the architecture detected by BLIS"""
-        bli_arch_query_id = getattr(self.dynlib, "bli_arch_query_id", None)
-        bli_arch_string = getattr(self.dynlib, "bli_arch_string", None)
-        if bli_arch_query_id is None or bli_arch_string is None:
-            return None
-
-        # the true restype should be BLIS' arch_t (enum) but int should work
-        # for us:
-        bli_arch_query_id.restype = ctypes.c_int
-        bli_arch_string.restype = ctypes.c_char_p
-        return bli_arch_string(bli_arch_query_id()).decode("utf-8")
-
-
-class FlexiBLASController(LibController):
-    """Controller class for FlexiBLAS"""
-
-    user_api = "blas"
-    internal_api = "flexiblas"
-    filename_prefixes = ("libflexiblas",)
-    check_symbols = (
-        "flexiblas_get_num_threads",
-        "flexiblas_set_num_threads",
-        "flexiblas_get_version",
-        "flexiblas_list",
-        "flexiblas_list_loaded",
-        "flexiblas_current_backend",
-    )
-
-    @property
-    def loaded_backends(self):
-        return self._get_backend_list(loaded=True)
-
-    @property
-    def current_backend(self):
-        return self._get_current_backend()
-
-    def info(self):
-        """Return relevant info wrapped in a dict"""
-        # We override the info method because the loaded and current backends
-        # are dynamic properties
-        exposed_attrs = super().info()
-        exposed_attrs["loaded_backends"] = self.loaded_backends
-        exposed_attrs["current_backend"] = self.current_backend
-
-        return exposed_attrs
-
-    def set_additional_attributes(self):
-        self.available_backends = self._get_backend_list(loaded=False)
-
-    def get_num_threads(self):
-        get_func = getattr(self.dynlib, "flexiblas_get_num_threads", lambda: None)
-        num_threads = get_func()
-        # by default BLIS is single-threaded and get_num_threads
-        # returns -1. We map it to 1 for consistency with other libraries.
-        return 1 if num_threads == -1 else num_threads
-
-    def set_num_threads(self, num_threads):
-        set_func = getattr(
-            self.dynlib, "flexiblas_set_num_threads", lambda num_threads: None
-        )
-        return set_func(num_threads)
-
-    def get_version(self):
-        get_version_ = getattr(self.dynlib, "flexiblas_get_version", None)
-        if get_version_ is None:
-            return None
-
-        major = ctypes.c_int()
-        minor = ctypes.c_int()
-        patch = ctypes.c_int()
-        get_version_(ctypes.byref(major), ctypes.byref(minor), ctypes.byref(patch))
-        return f"{major.value}.{minor.value}.{patch.value}"
-
-    def _get_backend_list(self, loaded=False):
-        """Return the list of available backends for FlexiBLAS.
-
-        If loaded is False, return the list of available backends from the FlexiBLAS
-        configuration. If loaded is True, return the list of actually loaded backends.
-        """
-        func_name = f"flexiblas_list{'_loaded' if loaded else ''}"
-        get_backend_list_ = getattr(self.dynlib, func_name, None)
-        if get_backend_list_ is None:
-            return None
-
-        n_backends = get_backend_list_(None, 0, 0)
-
-        backends = []
-        for i in range(n_backends):
-            backend_name = ctypes.create_string_buffer(1024)
-            get_backend_list_(backend_name, 1024, i)
-            if backend_name.value.decode("utf-8") != "__FALLBACK__":
-                # We don't know when to expect __FALLBACK__ but it is not a real
-                # backend and does not show up when running flexiblas list.
-                backends.append(backend_name.value.decode("utf-8"))
-        return backends
-
-    def _get_current_backend(self):
-        """Return the backend of FlexiBLAS"""
-        get_backend_ = getattr(self.dynlib, "flexiblas_current_backend", None)
-        if get_backend_ is None:
-            return None
-
-        backend = ctypes.create_string_buffer(1024)
-        get_backend_(backend, ctypes.sizeof(backend))
-        return backend.value.decode("utf-8")
-
-    def switch_backend(self, backend):
-        """Switch the backend of FlexiBLAS
-
-        Parameters
-        ----------
-        backend : str
-            The name or the path to the shared library of the backend to switch to. If
-            the backend is not already loaded, it will be loaded first.
-        """
-        if backend not in self.loaded_backends:
-            if backend in self.available_backends:
-                load_func = getattr(self.dynlib, "flexiblas_load_backend", lambda _: -1)
-            else:  # assume backend is a path to a shared library
-                load_func = getattr(
-                    self.dynlib, "flexiblas_load_backend_library", lambda _: -1
-                )
-            res = load_func(str(backend).encode("utf-8"))
-            if res == -1:
-                raise RuntimeError(
-                    f"Failed to load backend {backend!r}. It must either be the name of"
-                    " a backend available in the FlexiBLAS configuration "
-                    f"{self.available_backends} or the path to a valid shared library."
-                )
-
-            # Trigger a new search of loaded shared libraries since loading a new
-            # backend caused a dlopen.
-            self.parent._load_libraries()
-
-        switch_func = getattr(self.dynlib, "flexiblas_switch", lambda _: -1)
-        idx = self.loaded_backends.index(backend)
-        res = switch_func(idx)
-        if res == -1:
-            raise RuntimeError(f"Failed to switch to backend {backend!r}.")
-
-
-class MKLController(LibController):
-    """Controller class for MKL"""
-
-    user_api = "blas"
-    internal_api = "mkl"
-    filename_prefixes = ("libmkl_rt", "mkl_rt", "libblas")
-    check_symbols = (
-        "MKL_Get_Max_Threads",
-        "MKL_Set_Num_Threads",
-        "MKL_Get_Version_String",
-        "MKL_Set_Threading_Layer",
-    )
-
-    def set_additional_attributes(self):
-        self.threading_layer = self._get_threading_layer()
-
-    def get_num_threads(self):
-        get_func = getattr(self.dynlib, "MKL_Get_Max_Threads", lambda: None)
-        return get_func()
-
-    def set_num_threads(self, num_threads):
-        set_func = getattr(self.dynlib, "MKL_Set_Num_Threads", lambda num_threads: None)
-        return set_func(num_threads)
-
-    def get_version(self):
-        if not hasattr(self.dynlib, "MKL_Get_Version_String"):
-            return None
-
-        res = ctypes.create_string_buffer(200)
-        self.dynlib.MKL_Get_Version_String(res, 200)
-
-        version = res.value.decode("utf-8")
-        group = re.search(r"Version ([^ ]+) ", version)
-        if group is not None:
-            version = group.groups()[0]
-        return version.strip()
-
-    def _get_threading_layer(self):
-        """Return the threading layer of MKL"""
-        # The function mkl_set_threading_layer returns the current threading
-        # layer. Calling it with an invalid threading layer allows us to safely
-        # get the threading layer
-        set_threading_layer = getattr(
-            self.dynlib, "MKL_Set_Threading_Layer", lambda layer: -1
-        )
-        layer_map = {
-            0: "intel",
-            1: "sequential",
-            2: "pgi",
-            3: "gnu",
-            4: "tbb",
-            -1: "not specified",
-        }
-        return layer_map[set_threading_layer(-1)]
-
-
-class OpenMPController(LibController):
-    """Controller class for OpenMP"""
-
-    user_api = "openmp"
-    internal_api = "openmp"
-    filename_prefixes = ("libiomp", "libgomp", "libomp", "vcomp")
-    check_symbols = (
-        "omp_get_max_threads",
-        "omp_get_num_threads",
-    )
-
-    def get_num_threads(self):
-        get_func = getattr(self.dynlib, "omp_get_max_threads", lambda: None)
-        return get_func()
-
-    def set_num_threads(self, num_threads):
-        set_func = getattr(self.dynlib, "omp_set_num_threads", lambda num_threads: None)
-        return set_func(num_threads)
-
-    def get_version(self):
-        # There is no way to get the version number programmatically in OpenMP.
-        return None
-
-
-# Controllers for the libraries that we'll look for in the loaded libraries.
-# Third party libraries can register their own controllers.
-_ALL_CONTROLLERS = [
-    OpenBLASController,
-    BLISController,
-    MKLController,
-    OpenMPController,
-    FlexiBLASController,
-]
-
-# Helpers for the doc and test names
-_ALL_USER_APIS = list(set(lib.user_api for lib in _ALL_CONTROLLERS))
-_ALL_INTERNAL_APIS = [lib.internal_api for lib in _ALL_CONTROLLERS]
-_ALL_PREFIXES = list(
-    set(prefix for lib in _ALL_CONTROLLERS for prefix in lib.filename_prefixes)
-)
-_ALL_BLAS_LIBRARIES = [
-    lib.internal_api for lib in _ALL_CONTROLLERS if lib.user_api == "blas"
-]
-_ALL_OPENMP_LIBRARIES = OpenMPController.filename_prefixes
-
-
-def register(controller):
-    """Register a new controller"""
-    _ALL_CONTROLLERS.append(controller)
-    _ALL_USER_APIS.append(controller.user_api)
-    _ALL_INTERNAL_APIS.append(controller.internal_api)
-    _ALL_PREFIXES.extend(controller.filename_prefixes)
-
-
-def _format_docstring(*args, **kwargs):
-    def decorator(o):
-        if o.__doc__ is not None:
-            o.__doc__ = o.__doc__.format(*args, **kwargs)
-        return o
-
-    return decorator
-
-
-@lru_cache(maxsize=10000)
-def _realpath(filepath):
-    """Small caching wrapper around os.path.realpath to limit system calls"""
-    return os.path.realpath(filepath)
-
-
-@_format_docstring(USER_APIS=list(_ALL_USER_APIS), INTERNAL_APIS=_ALL_INTERNAL_APIS)
-def threadpool_info():
-    """Return the maximal number of threads for each detected library.
-
-    Return a list with all the supported libraries that have been found. Each
-    library is represented by a dict with the following information:
-
-      - "user_api" : user API. Possible values are {USER_APIS}.
-      - "internal_api": internal API. Possible values are {INTERNAL_APIS}.
-      - "prefix" : filename prefix of the specific implementation.
-      - "filepath": path to the loaded library.
-      - "version": version of the library (if available).
-      - "num_threads": the current thread limit.
-
-    In addition, each library may contain internal_api specific entries.
-    """
-    return ThreadpoolController().info()
-
-
-class _ThreadpoolLimiter:
-    """The guts of ThreadpoolController.limit
-
-    Refer to the docstring of ThreadpoolController.limit for more details.
-
-    It will only act on the library controllers held by the provided `controller`.
-    Using the default constructor sets the limits right away such that it can be used as
-    a callable. Setting the limits can be delayed by using the `wrap` class method such
-    that it can be used as a decorator.
-    """
-
-    def __init__(self, controller, *, limits=None, user_api=None):
-        self._controller = controller
-        self._limits, self._user_api, self._prefixes = self._check_params(
-            limits, user_api
-        )
-        self._original_info = self._controller.info()
-        self._set_threadpool_limits()
-
-    def __enter__(self):
-        return self
-
-    def __exit__(self, type, value, traceback):
-        self.restore_original_limits()
-
-    @classmethod
-    def wrap(cls, controller, *, limits=None, user_api=None):
-        """Return an instance of this class that can be used as a decorator"""
-        return _ThreadpoolLimiterDecorator(
-            controller=controller, limits=limits, user_api=user_api
-        )
-
-    def restore_original_limits(self):
-        """Set the limits back to their original values"""
-        for lib_controller, original_info in zip(
-            self._controller.lib_controllers, self._original_info
-        ):
-            lib_controller.set_num_threads(original_info["num_threads"])
-
-    # Alias of `restore_original_limits` for backward compatibility
-    unregister = restore_original_limits
-
-    def get_original_num_threads(self):
-        """Original num_threads from before calling threadpool_limits
-
-        Return a dict `{user_api: num_threads}`.
-        """
-        num_threads = {}
-        warning_apis = []
-
-        for user_api in self._user_api:
-            limits = [
-                lib_info["num_threads"]
-                for lib_info in self._original_info
-                if lib_info["user_api"] == user_api
-            ]
-            limits = set(limits)
-            n_limits = len(limits)
-
-            if n_limits == 1:
-                limit = limits.pop()
-            elif n_limits == 0:
-                limit = None
-            else:
-                limit = min(limits)
-                warning_apis.append(user_api)
-
-            num_threads[user_api] = limit
-
-        if warning_apis:
-            warnings.warn(
-                "Multiple value possible for following user apis: "
-                + ", ".join(warning_apis)
-                + ". Returning the minimum."
-            )
-
-        return num_threads
-
-    def _check_params(self, limits, user_api):
-        """Suitable values for the _limits, _user_api and _prefixes attributes"""
-
-        if isinstance(limits, str) and limits == "sequential_blas_under_openmp":
-            (
-                limits,
-                user_api,
-            ) = self._controller._get_params_for_sequential_blas_under_openmp().values()
-
-        if limits is None or isinstance(limits, int):
-            if user_api is None:
-                user_api = _ALL_USER_APIS
-            elif user_api in _ALL_USER_APIS:
-                user_api = [user_api]
-            else:
-                raise ValueError(
-                    f"user_api must be either in {_ALL_USER_APIS} or None. Got "
-                    f"{user_api} instead."
-                )
-
-            if limits is not None:
-                limits = {api: limits for api in user_api}
-            prefixes = []
-        else:
-            if isinstance(limits, list):
-                # This should be a list of dicts of library info, for
-                # compatibility with the result from threadpool_info.
-                limits = {
-                    lib_info["prefix"]: lib_info["num_threads"] for lib_info in limits
-                }
-            elif isinstance(limits, ThreadpoolController):
-                # To set the limits from the library controllers of a
-                # ThreadpoolController object.
-                limits = {
-                    lib_controller.prefix: lib_controller.num_threads
-                    for lib_controller in limits.lib_controllers
-                }
-
-            if not isinstance(limits, dict):
-                raise TypeError(
-                    "limits must either be an int, a list, a dict, or "
-                    f"'sequential_blas_under_openmp'. Got {type(limits)} instead"
-                )
-
-            # With a dictionary, can set both specific limit for given
-            # libraries and global limit for user_api. Fetch each separately.
-            prefixes = [prefix for prefix in limits if prefix in _ALL_PREFIXES]
-            user_api = [api for api in limits if api in _ALL_USER_APIS]
-
-        return limits, user_api, prefixes
-
-    def _set_threadpool_limits(self):
-        """Change the maximal number of threads in selected thread pools.
-
-        Return a list with all the supported libraries that have been found
-        matching `self._prefixes` and `self._user_api`.
-        """
-        if self._limits is None:
-            return
-
-        for lib_controller in self._controller.lib_controllers:
-            # self._limits is a dict {key: num_threads} where key is either
-            # a prefix or a user_api. If a library matches both, the limit
-            # corresponding to the prefix is chosen.
-            if lib_controller.prefix in self._limits:
-                num_threads = self._limits[lib_controller.prefix]
-            elif lib_controller.user_api in self._limits:
-                num_threads = self._limits[lib_controller.user_api]
-            else:
-                continue
-
-            if num_threads is not None:
-                lib_controller.set_num_threads(num_threads)
-
-
-class _ThreadpoolLimiterDecorator(_ThreadpoolLimiter, ContextDecorator):
-    """Same as _ThreadpoolLimiter but to be used as a decorator"""
-
-    def __init__(self, controller, *, limits=None, user_api=None):
-        self._limits, self._user_api, self._prefixes = self._check_params(
-            limits, user_api
-        )
-        self._controller = controller
-
-    def __enter__(self):
-        # we need to set the limits here and not in the __init__ because we want the
-        # limits to be set when calling the decorated function, not when creating the
-        # decorator.
-        self._original_info = self._controller.info()
-        self._set_threadpool_limits()
-        return self
-
-
-@_format_docstring(
-    USER_APIS=", ".join(f'"{api}"' for api in _ALL_USER_APIS),
-    BLAS_LIBS=", ".join(_ALL_BLAS_LIBRARIES),
-    OPENMP_LIBS=", ".join(_ALL_OPENMP_LIBRARIES),
-)
-class threadpool_limits(_ThreadpoolLimiter):
-    """Change the maximal number of threads that can be used in thread pools.
-
-    This object can be used either as a callable (the construction of this object
-    limits the number of threads), as a context manager in a `with` block to
-    automatically restore the original state of the controlled libraries when exiting
-    the block, or as a decorator through its `wrap` method.
-
-    Set the maximal number of threads that can be used in thread pools used in
-    the supported libraries to `limit`. This function works for libraries that
-    are already loaded in the interpreter and can be changed dynamically.
-
-    This effect is global and impacts the whole Python process. There is no thread level
-    isolation as these libraries do not offer thread-local APIs to configure the number
-    of threads to use in nested parallel calls.
-
-    Parameters
-    ----------
-    limits : int, dict, 'sequential_blas_under_openmp' or None (default=None)
-        The maximal number of threads that can be used in thread pools
-
-        - If int, sets the maximum number of threads to `limits` for each
-          library selected by `user_api`.
-
-        - If it is a dictionary `{{key: max_threads}}`, this function sets a
-          custom maximum number of threads for each `key` which can be either a
-          `user_api` or a `prefix` for a specific library.
-
-        - If 'sequential_blas_under_openmp', it will chose the appropriate `limits`
-          and `user_api` parameters for the specific use case of sequential BLAS
-          calls within an OpenMP parallel region. The `user_api` parameter is
-          ignored.
-
-        - If None, this function does not do anything.
-
-    user_api : {USER_APIS} or None (default=None)
-        APIs of libraries to limit. Used only if `limits` is an int.
-
-        - If "blas", it will only limit BLAS supported libraries ({BLAS_LIBS}).
-
-        - If "openmp", it will only limit OpenMP supported libraries
-          ({OPENMP_LIBS}). Note that it can affect the number of threads used
-          by the BLAS libraries if they rely on OpenMP.
-
-        - If None, this function will apply to all supported libraries.
-    """
-
-    def __init__(self, limits=None, user_api=None):
-        super().__init__(ThreadpoolController(), limits=limits, user_api=user_api)
-
-    @classmethod
-    def wrap(cls, limits=None, user_api=None):
-        return super().wrap(ThreadpoolController(), limits=limits, user_api=user_api)
-
-
-class ThreadpoolController:
-    """Collection of LibController objects for all loaded supported libraries
-
-    Attributes
-    ----------
-    lib_controllers : list of `LibController` objects
-        The list of library controllers of all loaded supported libraries.
-    """
-
-    # Cache for libc under POSIX and a few system libraries under Windows.
-    # We use a class level cache instead of an instance level cache because
-    # it's very unlikely that a shared library will be unloaded and reloaded
-    # during the lifetime of a program.
-    _system_libraries = dict()
-
-    def __init__(self):
-        self.lib_controllers = []
-        self._load_libraries()
-        self._warn_if_incompatible_openmp()
-
-    @classmethod
-    def _from_controllers(cls, lib_controllers):
-        new_controller = cls.__new__(cls)
-        new_controller.lib_controllers = lib_controllers
-        return new_controller
-
-    def info(self):
-        """Return lib_controllers info as a list of dicts"""
-        return [lib_controller.info() for lib_controller in self.lib_controllers]
-
-    def select(self, **kwargs):
-        """Return a ThreadpoolController containing a subset of its current
-        library controllers
-
-        It will select all libraries matching at least one pair (key, value) from kwargs
-        where key is an entry of the library info dict (like "user_api", "internal_api",
-        "prefix", ...) and value is the value or a list of acceptable values for that
-        entry.
-
-        For instance, `ThreadpoolController().select(internal_api=["blis", "openblas"])`
-        will select all library controllers whose internal_api is either "blis" or
-        "openblas".
-        """
-        for key, vals in kwargs.items():
-            kwargs[key] = [vals] if not isinstance(vals, list) else vals
-
-        lib_controllers = [
-            lib_controller
-            for lib_controller in self.lib_controllers
-            if any(
-                getattr(lib_controller, key, None) in vals
-                for key, vals in kwargs.items()
-            )
-        ]
-
-        return ThreadpoolController._from_controllers(lib_controllers)
-
-    def _get_params_for_sequential_blas_under_openmp(self):
-        """Return appropriate params to use for a sequential BLAS call in an OpenMP loop
-
-        This function takes into account the unexpected behavior of OpenBLAS with the
-        OpenMP threading layer.
-        """
-        if self.select(
-            internal_api="openblas", threading_layer="openmp"
-        ).lib_controllers:
-            return {"limits": None, "user_api": None}
-        return {"limits": 1, "user_api": "blas"}
-
-    @_format_docstring(
-        USER_APIS=", ".join('"{}"'.format(api) for api in _ALL_USER_APIS),
-        BLAS_LIBS=", ".join(_ALL_BLAS_LIBRARIES),
-        OPENMP_LIBS=", ".join(_ALL_OPENMP_LIBRARIES),
-    )
-    def limit(self, *, limits=None, user_api=None):
-        """Change the maximal number of threads that can be used in thread pools.
-
-        This function returns an object that can be used either as a callable (the
-        construction of this object limits the number of threads) or as a context
-        manager, in a `with` block to automatically restore the original state of the
-        controlled libraries when exiting the block.
-
-        Set the maximal number of threads that can be used in thread pools used in
-        the supported libraries to `limits`. This function works for libraries that
-        are already loaded in the interpreter and can be changed dynamically.
-
-        This effect is global and impacts the whole Python process. There is no thread
-        level isolation as these libraries do not offer thread-local APIs to configure
-        the number of threads to use in nested parallel calls.
-
-        Parameters
-        ----------
-        limits : int, dict, 'sequential_blas_under_openmp' or None (default=None)
-            The maximal number of threads that can be used in thread pools
-
-            - If int, sets the maximum number of threads to `limits` for each
-              library selected by `user_api`.
-
-            - If it is a dictionary `{{key: max_threads}}`, this function sets a
-              custom maximum number of threads for each `key` which can be either a
-              `user_api` or a `prefix` for a specific library.
-
-            - If 'sequential_blas_under_openmp', it will chose the appropriate `limits`
-              and `user_api` parameters for the specific use case of sequential BLAS
-              calls within an OpenMP parallel region. The `user_api` parameter is
-              ignored.
-
-            - If None, this function does not do anything.
-
-        user_api : {USER_APIS} or None (default=None)
-            APIs of libraries to limit. Used only if `limits` is an int.
-
-            - If "blas", it will only limit BLAS supported libraries ({BLAS_LIBS}).
-
-            - If "openmp", it will only limit OpenMP supported libraries
-              ({OPENMP_LIBS}). Note that it can affect the number of threads used
-              by the BLAS libraries if they rely on OpenMP.
-
-            - If None, this function will apply to all supported libraries.
-        """
-        return _ThreadpoolLimiter(self, limits=limits, user_api=user_api)
-
-    @_format_docstring(
-        USER_APIS=", ".join('"{}"'.format(api) for api in _ALL_USER_APIS),
-        BLAS_LIBS=", ".join(_ALL_BLAS_LIBRARIES),
-        OPENMP_LIBS=", ".join(_ALL_OPENMP_LIBRARIES),
-    )
-    def wrap(self, *, limits=None, user_api=None):
-        """Change the maximal number of threads that can be used in thread pools.
-
-        This function returns an object that can be used as a decorator.
-
-        Set the maximal number of threads that can be used in thread pools used in
-        the supported libraries to `limits`. This function works for libraries that
-        are already loaded in the interpreter and can be changed dynamically.
-
-        Parameters
-        ----------
-        limits : int, dict or None (default=None)
-            The maximal number of threads that can be used in thread pools
-
-            - If int, sets the maximum number of threads to `limits` for each
-              library selected by `user_api`.
-
-            - If it is a dictionary `{{key: max_threads}}`, this function sets a
-              custom maximum number of threads for each `key` which can be either a
-              `user_api` or a `prefix` for a specific library.
-
-            - If None, this function does not do anything.
-
-        user_api : {USER_APIS} or None (default=None)
-            APIs of libraries to limit. Used only if `limits` is an int.
-
-            - If "blas", it will only limit BLAS supported libraries ({BLAS_LIBS}).
-
-            - If "openmp", it will only limit OpenMP supported libraries
-              ({OPENMP_LIBS}). Note that it can affect the number of threads used
-              by the BLAS libraries if they rely on OpenMP.
-
-            - If None, this function will apply to all supported libraries.
-        """
-        return _ThreadpoolLimiter.wrap(self, limits=limits, user_api=user_api)
-
-    def __len__(self):
-        return len(self.lib_controllers)
-
-    def _load_libraries(self):
-        """Loop through loaded shared libraries and store the supported ones"""
-        if sys.platform == "darwin":
-            self._find_libraries_with_dyld()
-        elif sys.platform == "win32":
-            self._find_libraries_with_enum_process_module_ex()
-        elif "pyodide" in sys.modules:
-            self._find_libraries_pyodide()
-        else:
-            self._find_libraries_with_dl_iterate_phdr()
-
-    def _find_libraries_with_dl_iterate_phdr(self):
-        """Loop through loaded libraries and return binders on supported ones
-
-        This function is expected to work on POSIX system only.
-        This code is adapted from code by Intel developer @anton-malakhov
-        available at https://github.com/IntelPython/smp
-
-        Copyright (c) 2017, Intel Corporation published under the BSD 3-Clause
-        license
-        """
-        libc = self._get_libc()
-        if not hasattr(libc, "dl_iterate_phdr"):  # pragma: no cover
-            warnings.warn(
-                "Could not find dl_iterate_phdr in the C standard library.",
-                RuntimeWarning,
-            )
-            return []
-
-        # Callback function for `dl_iterate_phdr` which is called for every
-        # library loaded in the current process until it returns 1.
-        def match_library_callback(info, size, data):
-            # Get the path of the current library
-            filepath = info.contents.dlpi_name
-            if filepath:
-                filepath = filepath.decode("utf-8")
-
-                # Store the library controller if it is supported and selected
-                self._make_controller_from_path(filepath)
-            return 0
-
-        c_func_signature = ctypes.CFUNCTYPE(
-            ctypes.c_int,  # Return type
-            ctypes.POINTER(_dl_phdr_info),
-            ctypes.c_size_t,
-            ctypes.c_char_p,
-        )
-        c_match_library_callback = c_func_signature(match_library_callback)
-
-        data = ctypes.c_char_p(b"")
-        libc.dl_iterate_phdr(c_match_library_callback, data)
-
-    def _find_libraries_with_dyld(self):
-        """Loop through loaded libraries and return binders on supported ones
-
-        This function is expected to work on OSX system only
-        """
-        libc = self._get_libc()
-        if not hasattr(libc, "_dyld_image_count"):  # pragma: no cover
-            warnings.warn(
-                "Could not find _dyld_image_count in the C standard library.",
-                RuntimeWarning,
-            )
-            return []
-
-        n_dyld = libc._dyld_image_count()
-        libc._dyld_get_image_name.restype = ctypes.c_char_p
-
-        for i in range(n_dyld):
-            filepath = ctypes.string_at(libc._dyld_get_image_name(i))
-            filepath = filepath.decode("utf-8")
-
-            # Store the library controller if it is supported and selected
-            self._make_controller_from_path(filepath)
-
-    def _find_libraries_with_enum_process_module_ex(self):
-        """Loop through loaded libraries and return binders on supported ones
-
-        This function is expected to work on windows system only.
-        This code is adapted from code by Philipp Hagemeister @phihag available
-        at https://stackoverflow.com/questions/17474574
-        """
-        from ctypes.wintypes import DWORD, HMODULE, MAX_PATH
-
-        PROCESS_QUERY_INFORMATION = 0x0400
-        PROCESS_VM_READ = 0x0010
-
-        LIST_LIBRARIES_ALL = 0x03
-
-        ps_api = self._get_windll("Psapi")
-        kernel_32 = self._get_windll("kernel32")
-
-        h_process = kernel_32.OpenProcess(
-            PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, False, os.getpid()
-        )
-        if not h_process:  # pragma: no cover
-            raise OSError(f"Could not open PID {os.getpid()}")
-
-        try:
-            buf_count = 256
-            needed = DWORD()
-            # Grow the buffer until it becomes large enough to hold all the
-            # module headers
-            while True:
-                buf = (HMODULE * buf_count)()
-                buf_size = ctypes.sizeof(buf)
-                if not ps_api.EnumProcessModulesEx(
-                    h_process,
-                    ctypes.byref(buf),
-                    buf_size,
-                    ctypes.byref(needed),
-                    LIST_LIBRARIES_ALL,
-                ):
-                    raise OSError("EnumProcessModulesEx failed")
-                if buf_size >= needed.value:
-                    break
-                buf_count = needed.value // (buf_size // buf_count)
-
-            count = needed.value // (buf_size // buf_count)
-            h_modules = map(HMODULE, buf[:count])
-
-            # Loop through all the module headers and get the library path
-            buf = ctypes.create_unicode_buffer(MAX_PATH)
-            n_size = DWORD()
-            for h_module in h_modules:
-                # Get the path of the current module
-                if not ps_api.GetModuleFileNameExW(
-                    h_process, h_module, ctypes.byref(buf), ctypes.byref(n_size)
-                ):
-                    raise OSError("GetModuleFileNameEx failed")
-                filepath = buf.value
-
-                # Store the library controller if it is supported and selected
-                self._make_controller_from_path(filepath)
-        finally:
-            kernel_32.CloseHandle(h_process)
-
-    def _find_libraries_pyodide(self):
-        """Pyodide specific implementation for finding loaded libraries.
-
-        Adapted from suggestion in https://github.com/joblib/threadpoolctl/pull/169#issuecomment-1946696449.
-
-        One day, we may have a simpler solution. libc dl_iterate_phdr needs to
-        be implemented in Emscripten and exposed in Pyodide, see
-        https://github.com/emscripten-core/emscripten/issues/21354 for more
-        details.
-        """
-        try:
-            from pyodide_js._module import LDSO
-        except ImportError:
-            warnings.warn(
-                "Unable to import LDSO from pyodide_js._module. This should never "
-                "happen."
-            )
-            return
-
-        for filepath in LDSO.loadedLibsByName.as_object_map():
-            # Some libraries are duplicated by Pyodide and do not exist in the
-            # filesystem, so we first check for the existence of the file. For
-            # more details, see
-            # https://github.com/joblib/threadpoolctl/pull/169#issuecomment-1947946728
-            if os.path.exists(filepath):
-                self._make_controller_from_path(filepath)
-
-    def _make_controller_from_path(self, filepath):
-        """Store a library controller if it is supported and selected"""
-        # Required to resolve symlinks
-        filepath = _realpath(filepath)
-        # `lower` required to take account of OpenMP dll case on Windows
-        # (vcomp, VCOMP, Vcomp, ...)
-        filename = os.path.basename(filepath).lower()
-
-        # Loop through supported libraries to find if this filename corresponds
-        # to a supported one.
-        for controller_class in _ALL_CONTROLLERS:
-            # check if filename matches a supported prefix
-            prefix = self._check_prefix(filename, controller_class.filename_prefixes)
-
-            # filename does not match any of the prefixes of the candidate
-            # library. move to next library.
-            if prefix is None:
-                continue
-
-            # workaround for BLAS libraries packaged by conda-forge on windows, which
-            # are all renamed "libblas.dll". We thus have to check to which BLAS
-            # implementation it actually corresponds looking for implementation
-            # specific symbols.
-            if prefix == "libblas":
-                if filename.endswith(".dll"):
-                    libblas = ctypes.CDLL(filepath, _RTLD_NOLOAD)
-                    if not any(
-                        hasattr(libblas, func)
-                        for func in controller_class.check_symbols
-                    ):
-                        continue
-                else:
-                    # We ignore libblas on other platforms than windows because there
-                    # might be a libblas dso comming with openblas for instance that
-                    # can't be used to instantiate a pertinent LibController (many
-                    # symbols are missing) and would create confusion by making a
-                    # duplicate entry in threadpool_info.
-                    continue
-
-            # filename matches a prefix. Now we check if the library has the symbols we
-            # are looking for. If none of the symbols exists, it's very likely not the
-            # expected library (e.g. a library having a common prefix with one of the
-            # our supported libraries). Otherwise, create and store the library
-            # controller.
-            lib_controller = controller_class(
-                filepath=filepath, prefix=prefix, parent=self
-            )
-
-            if filepath in (lib.filepath for lib in self.lib_controllers):
-                # We already have a controller for this library.
-                continue
-
-            if not hasattr(controller_class, "check_symbols") or any(
-                hasattr(lib_controller.dynlib, func)
-                for func in controller_class.check_symbols
-            ):
-                self.lib_controllers.append(lib_controller)
-
-    def _check_prefix(self, library_basename, filename_prefixes):
-        """Return the prefix library_basename starts with
-
-        Return None if none matches.
-        """
-        for prefix in filename_prefixes:
-            if library_basename.startswith(prefix):
-                return prefix
-        return None
-
-    def _warn_if_incompatible_openmp(self):
-        """Raise a warning if llvm-OpenMP and intel-OpenMP are both loaded"""
-        prefixes = [lib_controller.prefix for lib_controller in self.lib_controllers]
-        msg = textwrap.dedent(
-            """
-            Found Intel OpenMP ('libiomp') and LLVM OpenMP ('libomp') loaded at
-            the same time. Both libraries are known to be incompatible and this
-            can cause random crashes or deadlocks on Linux when loaded in the
-            same Python program.
-            Using threadpoolctl may cause crashes or deadlocks. For more
-            information and possible workarounds, please see
-                https://github.com/joblib/threadpoolctl/blob/master/multiple_openmp.md
-            """
-        )
-        if "libomp" in prefixes and "libiomp" in prefixes:
-            warnings.warn(msg, RuntimeWarning)
-
-    @classmethod
-    def _get_libc(cls):
-        """Load the lib-C for unix systems."""
-        libc = cls._system_libraries.get("libc")
-        if libc is None:
-            # Remark: If libc is statically linked or if Python is linked against an
-            # alternative implementation of libc like musl, find_library will return
-            # None and CDLL will load the main program itself which should contain the
-            # libc symbols. We still name it libc for convenience.
-            # If the main program does not contain the libc symbols, it's ok because
-            # we check their presence later anyway.
-            libc = ctypes.CDLL(find_library("c"), mode=_RTLD_NOLOAD)
-            cls._system_libraries["libc"] = libc
-        return libc
-
-    @classmethod
-    def _get_windll(cls, dll_name):
-        """Load a windows DLL"""
-        dll = cls._system_libraries.get(dll_name)
-        if dll is None:
-            dll = ctypes.WinDLL(f"{dll_name}.dll")
-            cls._system_libraries[dll_name] = dll
-        return dll
-
-
-def _main():
-    """Commandline interface to display thread-pool information and exit."""
-    import argparse
-    import importlib
-    import json
-    import sys
-
-    parser = argparse.ArgumentParser(
-        usage="python -m threadpoolctl -i numpy scipy.linalg xgboost",
-        description="Display thread-pool information and exit.",
-    )
-    parser.add_argument(
-        "-i",
-        "--import",
-        dest="modules",
-        nargs="*",
-        default=(),
-        help="Python modules to import before introspecting thread-pools.",
-    )
-    parser.add_argument(
-        "-c",
-        "--command",
-        help="a Python statement to execute before introspecting thread-pools.",
-    )
-
-    options = parser.parse_args(sys.argv[1:])
-    for module in options.modules:
-        try:
-            importlib.import_module(module, package=None)
-        except ImportError:
-            print("WARNING: could not import", module, file=sys.stderr)
-
-    if options.command:
-        exec(options.command)
-
-    print(json.dumps(threadpool_info(), indent=2))
-
-
-if __name__ == "__main__":
-    _main()
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__init__.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__pycache__/__init__.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 08eac9b68232f844276a8bb1be4b4f24069fef6b..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__pycache__/introspection.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__pycache__/introspection.cpython-310.pyc
deleted file mode 100644
index e7fd87123acd655cdede822cbbfea8f44b28e41a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__pycache__/introspection.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__pycache__/typing_objects.cpython-310.pyc b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__pycache__/typing_objects.cpython-310.pyc
deleted file mode 100644
index 97489a46c881300e7a81a71d59a6a7c1bd93b68a..0000000000000000000000000000000000000000
Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/__pycache__/typing_objects.cpython-310.pyc and /dev/null differ
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/introspection.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/introspection.py
deleted file mode 100644
index 43cce1e4b8da900928a0da78c6dfcad7aa7eef50..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/introspection.py
+++ /dev/null
@@ -1,548 +0,0 @@
-"""High-level introspection utilities, used to inspect type annotations."""
-
-from __future__ import annotations
-
-import sys
-import types
-from collections.abc import Generator, Sequence
-from dataclasses import InitVar
-from enum import Enum, IntEnum, auto
-from typing import Any, Literal, NamedTuple, cast
-
-from typing_extensions import TypeAlias, assert_never, get_args, get_origin
-
-from . import typing_objects
-
-__all__ = (
-    'AnnotationSource',
-    'ForbiddenQualifier',
-    'InspectedAnnotation',
-    'Qualifier',
-    'get_literal_values',
-    'inspect_annotation',
-    'is_union_origin',
-)
-
-if sys.version_info >= (3, 10):
-
-    def is_union_origin(obj: Any, /) -> bool:
-        """Return whether the provided origin is the union form.
-
-        ```pycon
-        >>> is_union_origin(typing.Union)
-        True
-        >>> is_union_origin(get_origin(int | str))
-        True
-        ```
-        """
-        return typing_objects.is_union(obj) or obj is types.UnionType
-
-else:
-
-    def is_union_origin(obj: Any, /) -> bool:
-        """Return whether the provided origin is the union form.
-
-        ```pycon
-        >>> is_union_origin(typing.Union)
-        True
-        >>> is_union_origin(get_origin(int | str))
-        True
-        ```
-        """
-        return typing_objects.is_union(obj)
-
-
-def _literal_type_check(value: Any, /) -> None:
-    """Type check the provided literal value against the legal parameters."""
-    if (
-        not isinstance(value, (int, bytes, str, bool, Enum, typing_objects.NoneType))
-        and value is not typing_objects.NoneType
-    ):
-        raise TypeError(f'{value} is not a valid literal value, must be one of: int, bytes, str, Enum, None.')
-
-
-def get_literal_values(
-    annotation: Any,
-    /,
-    *,
-    type_check: bool = False,
-    unpack_type_aliases: Literal['skip', 'lenient', 'eager'] = 'eager',
-) -> Generator[Any]:
-    """Yield the values contained in the provided [`Literal`][typing.Literal] [special form][].
-
-    Args:
-        annotation: The [`Literal`][typing.Literal] [special form][] to unpack.
-        type_check: Whether to check if the literal values are [legal parameters][literal-legal-parameters].
-            Raises a [`TypeError`][] otherwise.
-        unpack_type_aliases: What to do when encountering [PEP 695](https://peps.python.org/pep-0695/)
-            [type aliases][type-aliases]. Can be one of:
-
-            - `'skip'`: Do not try to parse type aliases. Note that this can lead to incorrect results:
-              ```pycon
-              >>> type MyAlias = Literal[1, 2]
-              >>> list(get_literal_values(Literal[MyAlias, 3], unpack_type_aliases="skip"))
-              [MyAlias, 3]
-              ```
-
-            - `'lenient'`: Try to parse type aliases, and fallback to `'skip'` if the type alias can't be inspected
-              (because of an undefined forward reference).
-
-            - `'eager'`: Parse type aliases and raise any encountered [`NameError`][] exceptions (the default):
-              ```pycon
-              >>> type MyAlias = Literal[1, 2]
-              >>> list(get_literal_values(Literal[MyAlias, 3], unpack_type_aliases="eager"))
-              [1, 2, 3]
-              ```
-
-    Note:
-        While `None` is [equivalent to][none] `type(None)`, the runtime implementation of [`Literal`][typing.Literal]
-        does not de-duplicate them. This function makes sure this de-duplication is applied:
-
-        ```pycon
-        >>> list(get_literal_values(Literal[NoneType, None]))
-        [None]
-        ```
-
-    Example:
-        ```pycon
-        >>> type Ints = Literal[1, 2]
-        >>> list(get_literal_values(Literal[1, Ints], unpack_type_alias="skip"))
-        ["a", Ints]
-        >>> list(get_literal_values(Literal[1, Ints]))
-        [1, 2]
-        >>> list(get_literal_values(Literal[1.0], type_check=True))
-        Traceback (most recent call last):
-        ...
-        TypeError: 1.0 is not a valid literal value, must be one of: int, bytes, str, Enum, None.
-        ```
-    """
-    # `literal` is guaranteed to be a `Literal[...]` special form, so use
-    # `__args__` directly instead of calling `get_args()`.
-
-    if unpack_type_aliases == 'skip':
-        _has_none = False
-        # `Literal` parameters are already deduplicated, no need to do it ourselves.
-        # (we only check for `None` and `NoneType`, which should be considered as duplicates).
-        for arg in annotation.__args__:
-            if type_check:
-                _literal_type_check(arg)
-            if arg is None or arg is typing_objects.NoneType:
-                if not _has_none:
-                    yield None
-                _has_none = True
-            else:
-                yield arg
-    else:
-        # We'll need to manually deduplicate parameters, see the `Literal` implementation in `typing`.
-        values_and_type: list[tuple[Any, type[Any]]] = []
-
-        for arg in annotation.__args__:
-            # Note: we could also check for generic aliases with a type alias as an origin.
-            # However, it is very unlikely that this happens as type variables can't appear in
-            # `Literal` forms, so the only valid (but unnecessary) use case would be something like:
-            # `type Test[T] = Literal['a']` (and then use `Test[SomeType]`).
-            if typing_objects.is_typealiastype(arg):
-                try:
-                    alias_value = arg.__value__
-                except NameError:
-                    if unpack_type_aliases == 'eager':
-                        raise
-                    # unpack_type_aliases == "lenient":
-                    if type_check:
-                        _literal_type_check(arg)
-                    values_and_type.append((arg, type(arg)))
-                else:
-                    sub_args = get_literal_values(
-                        alias_value, type_check=type_check, unpack_type_aliases=unpack_type_aliases
-                    )
-                    values_and_type.extend((a, type(a)) for a in sub_args)  # pyright: ignore[reportUnknownArgumentType]
-            else:
-                if type_check:
-                    _literal_type_check(arg)
-                if arg is typing_objects.NoneType:
-                    values_and_type.append((None, typing_objects.NoneType))
-                else:
-                    values_and_type.append((arg, type(arg)))  # pyright: ignore[reportUnknownArgumentType]
-
-        try:
-            dct = dict.fromkeys(values_and_type)
-        except TypeError:
-            # Unhashable parameters, the Python implementation allows them
-            yield from (p for p, _ in values_and_type)
-        else:
-            yield from (p for p, _ in dct)
-
-
-Qualifier: TypeAlias = Literal['required', 'not_required', 'read_only', 'class_var', 'init_var', 'final']
-"""A [type qualifier][]."""
-
-_all_qualifiers: set[Qualifier] = set(get_args(Qualifier))
-
-
-# TODO at some point, we could switch to an enum flag, so that multiple sources
-# can be combined. However, is there a need for this?
-class AnnotationSource(IntEnum):
-    # TODO if/when https://peps.python.org/pep-0767/ is accepted, add 'read_only'
-    # to CLASS and NAMED_TUPLE (even though for named tuples it is redundant).
-
-    """The source of an annotation, e.g. a class or a function.
-
-    Depending on the source, different [type qualifiers][type qualifier] may be (dis)allowed.
-    """
-
-    ASSIGNMENT_OR_VARIABLE = auto()
-    """An annotation used in an assignment or variable annotation:
-
-    ```python
-    x: Final[int] = 1
-    y: Final[str]
-    ```
-
-    **Allowed type qualifiers:** [`Final`][typing.Final].
-    """
-
-    CLASS = auto()
-    """An annotation used in the body of a class:
-
-    ```python
-    class Test:
-        x: Final[int] = 1
-        y: ClassVar[str]
-    ```
-
-    **Allowed type qualifiers:** [`ClassVar`][typing.ClassVar], [`Final`][typing.Final].
-    """
-
-    DATACLASS = auto()
-    """An annotation used in the body of a dataclass:
-
-    ```python
-    @dataclass
-    class Test:
-        x: Final[int] = 1
-        y: InitVar[str] = 'test'
-    ```
-
-    **Allowed type qualifiers:** [`ClassVar`][typing.ClassVar], [`Final`][typing.Final], [`InitVar`][dataclasses-init-only-variables].
-    """  # noqa: E501
-
-    TYPED_DICT = auto()
-    """An annotation used in the body of a [`TypedDict`][typing.TypedDict]:
-
-    ```python
-    class TD(TypedDict):
-        x: Required[ReadOnly[int]]
-        y: ReadOnly[NotRequired[str]]
-    ```
-
-    **Allowed type qualifiers:** [`ReadOnly`][typing.ReadOnly], [`Required`][typing.Required],
-    [`NotRequired`][typing.NotRequired].
-    """
-
-    NAMED_TUPLE = auto()
-    """An annotation used in the body of a [`NamedTuple`][typing.NamedTuple].
-
-    ```python
-    class NT(NamedTuple):
-        x: int
-        y: str
-    ```
-
-    **Allowed type qualifiers:** none.
-    """
-
-    FUNCTION = auto()
-    """An annotation used in a function, either for a parameter or the return value.
-
-    ```python
-    def func(a: int) -> str:
-        ...
-    ```
-
-    **Allowed type qualifiers:** none.
-    """
-
-    ANY = auto()
-    """An annotation that might come from any source.
-
-    **Allowed type qualifiers:** all.
-    """
-
-    BARE = auto()
-    """An annotation that is inspected as is.
-
-    **Allowed type qualifiers:** none.
-    """
-
-    @property
-    def allowed_qualifiers(self) -> set[Qualifier]:
-        """The allowed [type qualifiers][type qualifier] for this annotation source."""
-        # TODO use a match statement when Python 3.9 support is dropped.
-        if self is AnnotationSource.ASSIGNMENT_OR_VARIABLE:
-            return {'final'}
-        elif self is AnnotationSource.CLASS:
-            return {'final', 'class_var'}
-        elif self is AnnotationSource.DATACLASS:
-            return {'final', 'class_var', 'init_var'}
-        elif self is AnnotationSource.TYPED_DICT:
-            return {'required', 'not_required', 'read_only'}
-        elif self in (AnnotationSource.NAMED_TUPLE, AnnotationSource.FUNCTION, AnnotationSource.BARE):
-            return set()
-        elif self is AnnotationSource.ANY:
-            return _all_qualifiers
-        else:  # pragma: no cover
-            assert_never(self)
-
-
-class ForbiddenQualifier(Exception):
-    """The provided [type qualifier][] is forbidden."""
-
-    qualifier: Qualifier
-    """The forbidden qualifier."""
-
-    def __init__(self, qualifier: Qualifier, /) -> None:
-        self.qualifier = qualifier
-
-
-class _UnknownTypeEnum(Enum):
-    UNKNOWN = auto()
-
-    def __str__(self) -> str:
-        return 'UNKNOWN'
-
-    def __repr__(self) -> str:
-        return ''
-
-
-UNKNOWN = _UnknownTypeEnum.UNKNOWN
-"""A sentinel value used when no [type expression][] is present."""
-
-_UnkownType: TypeAlias = Literal[_UnknownTypeEnum.UNKNOWN]
-"""The type of the [`UNKNOWN`][typing_inspection.introspection.UNKNOWN] sentinel value."""
-
-
-class InspectedAnnotation(NamedTuple):
-    """The result of the inspected annotation."""
-
-    type: Any | _UnkownType
-    """The final [type expression][], with [type qualifiers][type qualifier] and annotated metadata stripped.
-
-    If no type expression is available, the [`UNKNOWN`][typing_inspection.introspection.UNKNOWN] sentinel
-    value is used instead. This is the case when a [type qualifier][] is used with no type annotation:
-
-    ```python
-    ID: Final = 1
-
-    class C:
-        x: ClassVar = 'test'
-    ```
-    """
-
-    qualifiers: set[Qualifier]
-    """The [type qualifiers][type qualifier] present on the annotation."""
-
-    metadata: Sequence[Any]
-    """The annotated metadata."""
-
-
-def inspect_annotation(  # noqa: PLR0915
-    annotation: Any,
-    /,
-    *,
-    annotation_source: AnnotationSource,
-    unpack_type_aliases: Literal['skip', 'lenient', 'eager'] = 'skip',
-) -> InspectedAnnotation:
-    """Inspect an [annotation expression][], extracting any [type qualifier][] and metadata.
-
-    An [annotation expression][] is a [type expression][] optionally surrounded by one or more
-    [type qualifiers][type qualifier] or by [`Annotated`][typing.Annotated]. This function will:
-
-    - Unwrap the type expression, keeping track of the type qualifiers.
-    - Unwrap [`Annotated`][typing.Annotated] forms, keeping track of the annotated metadata.
-
-    Args:
-        annotation: The annotation expression to be inspected.
-        annotation_source: The source of the annotation. Depending on the source (e.g. a class), different type
-            qualifiers may be (dis)allowed. To allow any type qualifier, use
-            [`AnnotationSource.ANY`][typing_inspection.introspection.AnnotationSource.ANY].
-        unpack_type_aliases: What to do when encountering [PEP 695](https://peps.python.org/pep-0695/)
-            [type aliases][type-aliases]. Can be one of:
-
-            - `'skip'`: Do not try to parse type aliases (the default):
-              ```pycon
-              >>> type MyInt = Annotated[int, 'meta']
-              >>> inspect_annotation(MyInt, annotation_source=AnnotationSource.BARE, unpack_type_aliases='skip')
-              InspectedAnnotation(type=MyInt, qualifiers={}, metadata=[])
-              ```
-
-            - `'lenient'`: Try to parse type aliases, and fallback to `'skip'` if the type alias
-              can't be inspected (because of an undefined forward reference):
-              ```pycon
-              >>> type MyInt = Annotated[Undefined, 'meta']
-              >>> inspect_annotation(MyInt, annotation_source=AnnotationSource.BARE, unpack_type_aliases='lenient')
-              InspectedAnnotation(type=MyInt, qualifiers={}, metadata=[])
-              >>> Undefined = int
-              >>> inspect_annotation(MyInt, annotation_source=AnnotationSource.BARE, unpack_type_aliases='lenient')
-              InspectedAnnotation(type=int, qualifiers={}, metadata=['meta'])
-              ```
-
-            - `'eager'`: Parse type aliases and raise any encountered [`NameError`][] exceptions.
-
-    Returns:
-        The result of the inspected annotation, where the type expression, used qualifiers and metadata is stored.
-
-    Example:
-        ```pycon
-        >>> inspect_annotation(
-        ...     Final[Annotated[ClassVar[Annotated[int, 'meta_1']], 'meta_2']],
-        ...     annotation_source=AnnotationSource.CLASS,
-        ... )
-        ...
-        InspectedAnnotation(type=int, qualifiers={'class_var', 'final'}, metadata=['meta_1', 'meta_2'])
-        ```
-    """
-    allowed_qualifiers = annotation_source.allowed_qualifiers
-    qualifiers: set[Qualifier] = set()
-    metadata: list[Any] = []
-
-    while True:
-        annotation, _meta = _unpack_annotated(annotation, unpack_type_aliases=unpack_type_aliases)
-        if _meta:
-            metadata = _meta + metadata
-            continue
-
-        origin = get_origin(annotation)
-        if origin is not None:
-            if typing_objects.is_classvar(origin):
-                if 'class_var' not in allowed_qualifiers:
-                    raise ForbiddenQualifier('class_var')
-                qualifiers.add('class_var')
-                annotation = annotation.__args__[0]
-            elif typing_objects.is_final(origin):
-                if 'final' not in allowed_qualifiers:
-                    raise ForbiddenQualifier('final')
-                qualifiers.add('final')
-                annotation = annotation.__args__[0]
-            elif typing_objects.is_required(origin):
-                if 'required' not in allowed_qualifiers:
-                    raise ForbiddenQualifier('required')
-                qualifiers.add('required')
-                annotation = annotation.__args__[0]
-            elif typing_objects.is_notrequired(origin):
-                if 'not_required' not in allowed_qualifiers:
-                    raise ForbiddenQualifier('not_required')
-                qualifiers.add('not_required')
-                annotation = annotation.__args__[0]
-            elif typing_objects.is_readonly(origin):
-                if 'read_only' not in allowed_qualifiers:
-                    raise ForbiddenQualifier('not_required')
-                qualifiers.add('read_only')
-                annotation = annotation.__args__[0]
-            else:
-                # origin is not None but not a type qualifier nor `Annotated` (e.g. `list[int]`):
-                break
-        elif isinstance(annotation, InitVar):
-            if 'init_var' not in allowed_qualifiers:
-                raise ForbiddenQualifier('init_var')
-            qualifiers.add('init_var')
-            annotation = cast(Any, annotation.type)
-        else:
-            break
-
-    # `Final`, `ClassVar` and `InitVar` are type qualifiers allowed to be used as a bare annotation:
-    if typing_objects.is_final(annotation):
-        if 'final' not in allowed_qualifiers:
-            raise ForbiddenQualifier('final')
-        qualifiers.add('final')
-        annotation = UNKNOWN
-    elif typing_objects.is_classvar(annotation):
-        if 'class_var' not in allowed_qualifiers:
-            raise ForbiddenQualifier('class_var')
-        qualifiers.add('class_var')
-        annotation = UNKNOWN
-    elif annotation is InitVar:
-        if 'init_var' not in allowed_qualifiers:
-            raise ForbiddenQualifier('init_var')
-        qualifiers.add('init_var')
-        annotation = UNKNOWN
-
-    return InspectedAnnotation(annotation, qualifiers, metadata)
-
-
-def _unpack_annotated_inner(
-    annotation: Any, unpack_type_aliases: Literal['lenient', 'eager'], check_annotated: bool
-) -> tuple[Any, list[Any]]:
-    origin = get_origin(annotation)
-    if check_annotated and typing_objects.is_annotated(origin):
-        annotated_type = annotation.__origin__
-        metadata = list(annotation.__metadata__)
-
-        # The annotated type might be a PEP 695 type alias, so we need to recursively
-        # unpack it. Because Python already flattens `Annotated[Annotated[, ...], ...]` forms,
-        # we can skip the `is_annotated()` check in the next call:
-        annotated_type, sub_meta = _unpack_annotated_inner(
-            annotated_type, unpack_type_aliases=unpack_type_aliases, check_annotated=False
-        )
-        metadata = sub_meta + metadata
-        return annotated_type, metadata
-    elif typing_objects.is_typealiastype(annotation):
-        try:
-            value = annotation.__value__
-        except NameError:
-            if unpack_type_aliases == 'eager':
-                raise
-        else:
-            typ, metadata = _unpack_annotated_inner(
-                value, unpack_type_aliases=unpack_type_aliases, check_annotated=True
-            )
-            if metadata:
-                # Having metadata means the type alias' `__value__` was an `Annotated` form
-                # (or, recursively, a type alias to an `Annotated` form). It is important to check
-                # for this, as we don't want to unpack other type aliases (e.g. `type MyInt = int`).
-                return typ, metadata
-            return annotation, []
-    elif typing_objects.is_typealiastype(origin):
-        # When parameterized, PEP 695 type aliases become generic aliases
-        # (e.g. with `type MyList[T] = Annotated[list[T], ...]`, `MyList[int]`
-        # is a generic alias).
-        try:
-            value = origin.__value__
-        except NameError:
-            if unpack_type_aliases == 'eager':
-                raise
-        else:
-            # While Python already handles type variable replacement for simple `Annotated` forms,
-            # we need to manually apply the same logic for PEP 695 type aliases:
-            # - With `MyList = Annotated[list[T], ...]`, `MyList[int] == Annotated[list[int], ...]`
-            # - With `type MyList[T] = Annotated[list[T], ...]`, `MyList[int].__value__ == Annotated[list[T], ...]`.
-
-            try:
-                # To do so, we emulate the parameterization of the value with the arguments:
-                # with `type MyList[T] = Annotated[list[T], ...]`, to emulate `MyList[int]`,
-                # we do `Annotated[list[T], ...][int]` (which gives `Annotated[list[T], ...]`):
-                value = value[annotation.__args__]
-            except TypeError:
-                # Might happen if the type alias is parameterized, but its value doesn't have any
-                # type variables, e.g. `type MyInt[T] = int`.
-                pass
-            typ, metadata = _unpack_annotated_inner(
-                value, unpack_type_aliases=unpack_type_aliases, check_annotated=True
-            )
-            if metadata:
-                return typ, metadata
-            return annotation, []
-
-    return annotation, []
-
-
-# This could eventually be made public:
-def _unpack_annotated(
-    annotation: Any, /, *, unpack_type_aliases: Literal['skip', 'lenient', 'eager'] = 'eager'
-) -> tuple[Any, list[Any]]:
-    if unpack_type_aliases == 'skip':
-        if typing_objects.is_annotated(get_origin(annotation)):
-            return annotation.__origin__, list(annotation.__metadata__)
-        else:
-            return annotation, []
-
-    return _unpack_annotated_inner(annotation, unpack_type_aliases=unpack_type_aliases, check_annotated=True)
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/py.typed b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/py.typed
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/typing_objects.py b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/typing_objects.py
deleted file mode 100644
index 7721c5e058d439448156ddf6bc23f7ccf60a56b9..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/typing_objects.py
+++ /dev/null
@@ -1,582 +0,0 @@
-"""Low-level introspection utilities for [`typing`][] members.
-
-The provided functions in this module check against both the [`typing`][] and [`typing_extensions`][]
-variants, if they exists and are different.
-"""
-# ruff: noqa: UP006
-
-import collections.abc
-import contextlib
-import re
-import sys
-import typing
-import warnings
-from textwrap import dedent
-from types import FunctionType, GenericAlias
-from typing import Any, Final
-
-import typing_extensions
-from typing_extensions import LiteralString, TypeAliasType, TypeIs, deprecated
-
-__all__ = (
-    'DEPRECATED_ALIASES',
-    'NoneType',
-    'is_annotated',
-    'is_any',
-    'is_classvar',
-    'is_concatenate',
-    'is_deprecated',
-    'is_final',
-    'is_generic',
-    'is_literal',
-    'is_literalstring',
-    'is_namedtuple',
-    'is_never',
-    'is_newtype',
-    'is_nodefault',
-    'is_noreturn',
-    'is_notrequired',
-    'is_paramspec',
-    'is_paramspecargs',
-    'is_paramspeckwargs',
-    'is_readonly',
-    'is_required',
-    'is_self',
-    'is_typealias',
-    'is_typealiastype',
-    'is_typeguard',
-    'is_typeis',
-    'is_typevar',
-    'is_typevartuple',
-    'is_union',
-    'is_unpack',
-)
-
-_IS_PY310 = sys.version_info[:2] == (3, 10)
-
-
-def _compile_identity_check_function(member: LiteralString, function_name: LiteralString) -> FunctionType:
-    """Create a function checking that the function argument is the (unparameterized) typing :paramref:`member`.
-
-    The function will make sure to check against both the `typing` and `typing_extensions`
-    variants as depending on the Python version, the `typing_extensions` variant might be different.
-    For instance, on Python 3.9:
-
-    ```pycon
-    >>> from typing import Literal as t_Literal
-    >>> from typing_extensions import Literal as te_Literal, get_origin
-
-    >>> t_Literal is te_Literal
-    False
-    >>> get_origin(t_Literal[1])
-    typing.Literal
-    >>> get_origin(te_Literal[1])
-    typing_extensions.Literal
-    ```
-    """
-    in_typing = hasattr(typing, member)
-    in_typing_extensions = hasattr(typing_extensions, member)
-
-    if in_typing and in_typing_extensions:
-        if getattr(typing, member) is getattr(typing_extensions, member):
-            check_code = f'obj is typing.{member}'
-        else:
-            check_code = f'obj is typing.{member} or obj is typing_extensions.{member}'
-    elif in_typing and not in_typing_extensions:
-        check_code = f'obj is typing.{member}'
-    elif not in_typing and in_typing_extensions:
-        check_code = f'obj is typing_extensions.{member}'
-    else:
-        check_code = 'False'
-
-    func_code = dedent(f"""
-    def {function_name}(obj: Any, /) -> bool:
-        return {check_code}
-    """)
-
-    locals_: dict[str, Any] = {}
-    globals_: dict[str, Any] = {'Any': Any, 'typing': typing, 'typing_extensions': typing_extensions}
-    exec(func_code, globals_, locals_)
-    return locals_[function_name]
-
-
-def _compile_isinstance_check_function(member: LiteralString, function_name: LiteralString) -> FunctionType:
-    """Create a function checking that the function is an instance of the typing `member`.
-
-    The function will make sure to check against both the `typing` and `typing_extensions`
-    variants as depending on the Python version, the `typing_extensions` variant might be different.
-    """
-    in_typing = hasattr(typing, member)
-    in_typing_extensions = hasattr(typing_extensions, member)
-
-    if in_typing and in_typing_extensions:
-        if getattr(typing, member) is getattr(typing_extensions, member):
-            check_code = f'isinstance(obj, typing.{member})'
-        else:
-            check_code = f'isinstance(obj, (typing.{member}, typing_extensions.{member}))'
-    elif in_typing and not in_typing_extensions:
-        check_code = f'isinstance(obj, typing.{member})'
-    elif not in_typing and in_typing_extensions:
-        check_code = f'isinstance(obj, typing_extensions.{member})'
-    else:
-        check_code = 'False'
-
-    func_code = dedent(f"""
-    def {function_name}(obj: Any, /) -> 'TypeIs[{member}]':
-        return {check_code}
-    """)
-
-    locals_: dict[str, Any] = {}
-    globals_: dict[str, Any] = {'Any': Any, 'typing': typing, 'typing_extensions': typing_extensions}
-    exec(func_code, globals_, locals_)
-    return locals_[function_name]
-
-
-if sys.version_info >= (3, 10):
-    from types import NoneType
-else:
-    NoneType = type(None)
-
-# Keep this ordered, as per `typing.__all__`:
-
-is_annotated = _compile_identity_check_function('Annotated', 'is_annotated')
-is_annotated.__doc__ = """
-Return whether the argument is the [`Annotated`][typing.Annotated] [special form][].
-
-```pycon
->>> is_annotated(Annotated)
-True
->>> is_annotated(Annotated[int, ...])
-False
-```
-"""
-
-is_any = _compile_identity_check_function('Any', 'is_any')
-is_any.__doc__ = """
-Return whether the argument is the [`Any`][typing.Any] [special form][].
-
-```pycon
->>> is_any(Any)
-True
-```
-"""
-
-is_classvar = _compile_identity_check_function('ClassVar', 'is_classvar')
-is_classvar.__doc__ = """
-Return whether the argument is the [`ClassVar`][typing.ClassVar] [type qualifier][].
-
-```pycon
->>> is_classvar(ClassVar)
-True
->>> is_classvar(ClassVar[int])
->>> False
-```
-"""
-
-is_concatenate = _compile_identity_check_function('Concatenate', 'is_concatenate')
-is_concatenate.__doc__ = """
-Return whether the argument is the [`Concatenate`][typing.Concatenate] [special form][].
-
-```pycon
->>> is_concatenate(Concatenate)
-True
->>> is_concatenate(Concatenate[int, P])
-False
-```
-"""
-
-is_final = _compile_identity_check_function('Final', 'is_final')
-is_final.__doc__ = """
-Return whether the argument is the [`Final`][typing.Final] [type qualifier][].
-
-```pycon
->>> is_final(Final)
-True
->>> is_final(Final[int])
-False
-```
-"""
-
-# ForwardRef?
-
-is_generic = _compile_identity_check_function('Generic', 'is_generic')
-is_generic.__doc__ = """
-Return whether the argument is the [`Generic`][typing.Generic] [special form][].
-
-```pycon
->>> is_generic(Generic)
-True
->>> is_generic(Generic[T])
-False
-```
-"""
-
-is_literal = _compile_identity_check_function('Literal', 'is_literal')
-is_literal.__doc__ = """
-Return whether the argument is the [`Literal`][typing.Literal] [special form][].
-
-```pycon
->>> is_literal(Literal)
-True
->>> is_literal(Literal["a"])
-False
-```
-"""
-
-
-# `get_origin(Optional[int]) is Union`, so `is_optional()` isn't implemented.
-
-is_paramspec = _compile_isinstance_check_function('ParamSpec', 'is_paramspec')
-is_paramspec.__doc__ = """
-Return whether the argument is an instance of [`ParamSpec`][typing.ParamSpec].
-
-```pycon
->>> P = ParamSpec('P')
->>> is_paramspec(P)
-True
-```
-"""
-
-# Protocol?
-
-is_typevar = _compile_isinstance_check_function('TypeVar', 'is_typevar')
-is_typevar.__doc__ = """
-Return whether the argument is an instance of [`TypeVar`][typing.TypeVar].
-
-```pycon
->>> T = TypeVar('T')
->>> is_typevar(T)
-True
-```
-"""
-
-is_typevartuple = _compile_isinstance_check_function('TypeVarTuple', 'is_typevartuple')
-is_typevartuple.__doc__ = """
-Return whether the argument is an instance of [`TypeVarTuple`][typing.TypeVarTuple].
-
-```pycon
->>> Ts = TypeVarTuple('Ts')
->>> is_typevartuple(Ts)
-True
-```
-"""
-
-is_union = _compile_identity_check_function('Union', 'is_union')
-is_union.__doc__ = """
-Return whether the argument is the [`Union`][typing.Union] [special form][].
-
-This function can also be used to check for the [`Optional`][typing.Optional] [special form][],
-as at runtime, `Optional[int]` is equivalent to `Union[int, None]`.
-
-```pycon
->>> is_union(Union)
-True
->>> is_union(Union[int, str])
-False
-```
-
-!!! warning
-    This does not check for unions using the [new syntax][types-union] (e.g. `int | str`).
-"""
-
-
-def is_namedtuple(obj: Any, /) -> bool:
-    """Return whether the argument is a named tuple type.
-
-    This includes [`NamedTuple`][typing.NamedTuple] subclasses and classes created from the
-    [`collections.namedtuple`][] factory function.
-
-    ```pycon
-    >>> class User(NamedTuple):
-    ...     name: str
-    ...
-    >>> is_namedtuple(User)
-    True
-    >>> City = collections.namedtuple('City', [])
-    >>> is_namedtuple(City)
-    True
-    >>> is_namedtuple(NamedTuple)
-    False
-    ```
-    """
-    return isinstance(obj, type) and issubclass(obj, tuple) and hasattr(obj, '_fields')  # pyright: ignore[reportUnknownArgumentType]
-
-
-# TypedDict?
-
-# BinaryIO? IO? TextIO?
-
-is_literalstring = _compile_identity_check_function('LiteralString', 'is_literalstring')
-is_literalstring.__doc__ = """
-Return whether the argument is the [`LiteralString`][typing.LiteralString] [special form][].
-
-```pycon
->>> is_literalstring(LiteralString)
-True
-```
-"""
-
-is_never = _compile_identity_check_function('Never', 'is_never')
-is_never.__doc__ = """
-Return whether the argument is the [`Never`][typing.Never] [special form][].
-
-```pycon
->>> is_never(Never)
-True
-```
-"""
-
-if sys.version_info >= (3, 10):
-    is_newtype = _compile_isinstance_check_function('NewType', 'is_newtype')
-else:  # On Python 3.10, `NewType` is a function.
-
-    def is_newtype(obj: Any, /) -> bool:
-        return hasattr(obj, '__supertype__')
-
-
-is_newtype.__doc__ = """
-Return whether the argument is a [`NewType`][typing.NewType].
-
-```pycon
->>> UserId = NewType("UserId", int)
->>> is_newtype(UserId)
-True
-```
-"""
-
-is_nodefault = _compile_identity_check_function('NoDefault', 'is_nodefault')
-is_nodefault.__doc__ = """
-Return whether the argument is the [`NoDefault`][typing.NoDefault] sentinel object.
-
-```pycon
->>> is_nodefault(NoDefault)
-True
-```
-"""
-
-is_noreturn = _compile_identity_check_function('NoReturn', 'is_noreturn')
-is_noreturn.__doc__ = """
-Return whether the argument is the [`NoReturn`][typing.NoReturn] [special form][].
-
-```pycon
->>> is_noreturn(NoReturn)
-True
->>> is_noreturn(Never)
-False
-```
-"""
-
-is_notrequired = _compile_identity_check_function('NotRequired', 'is_notrequired')
-is_notrequired.__doc__ = """
-Return whether the argument is the [`NotRequired`][typing.NotRequired] [special form][].
-
-```pycon
->>> is_notrequired(NotRequired)
-True
-```
-"""
-
-is_paramspecargs = _compile_isinstance_check_function('ParamSpecArgs', 'is_paramspecargs')
-is_paramspecargs.__doc__ = """
-Return whether the argument is an instance of [`ParamSpecArgs`][typing.ParamSpecArgs].
-
-```pycon
->>> P = ParamSpec('P')
->>> is_paramspecargs(P.args)
-True
-```
-"""
-
-is_paramspeckwargs = _compile_isinstance_check_function('ParamSpecKwargs', 'is_paramspeckwargs')
-is_paramspeckwargs.__doc__ = """
-Return whether the argument is an instance of [`ParamSpecKwargs`][typing.ParamSpecKwargs].
-
-```pycon
->>> P = ParamSpec('P')
->>> is_paramspeckwargs(P.kwargs)
-True
-```
-"""
-
-is_readonly = _compile_identity_check_function('ReadOnly', 'is_readonly')
-is_readonly.__doc__ = """
-Return whether the argument is the [`ReadOnly`][typing.ReadOnly] [special form][].
-
-```pycon
->>> is_readonly(ReadOnly)
-True
-```
-"""
-
-is_required = _compile_identity_check_function('Required', 'is_required')
-is_required.__doc__ = """
-Return whether the argument is the [`Required`][typing.Required] [special form][].
-
-```pycon
->>> is_required(Required)
-True
-```
-"""
-
-is_self = _compile_identity_check_function('Self', 'is_self')
-is_self.__doc__ = """
-Return whether the argument is the [`Self`][typing.Self] [special form][].
-
-```pycon
->>> is_self(Self)
-True
-```
-"""
-
-# TYPE_CHECKING?
-
-is_typealias = _compile_identity_check_function('TypeAlias', 'is_typealias')
-is_typealias.__doc__ = """
-Return whether the argument is the [`TypeAlias`][typing.TypeAlias] [special form][].
-
-```pycon
->>> is_typealias(TypeAlias)
-True
-```
-"""
-
-is_typeguard = _compile_identity_check_function('TypeGuard', 'is_typeguard')
-is_typeguard.__doc__ = """
-Return whether the argument is the [`TypeGuard`][typing.TypeGuard] [special form][].
-
-```pycon
->>> is_typeguard(TypeGuard)
-True
-```
-"""
-
-is_typeis = _compile_identity_check_function('TypeIs', 'is_typeis')
-is_typeis.__doc__ = """
-Return whether the argument is the [`TypeIs`][typing.TypeIs] [special form][].
-
-```pycon
->>> is_typeis(TypeIs)
-True
-```
-"""
-
-_is_typealiastype_inner = _compile_isinstance_check_function('TypeAliasType', '_is_typealiastype_inner')
-
-
-if _IS_PY310:
-    # Parameterized PEP 695 type aliases are instances of `types.GenericAlias` in typing_extensions>=4.13.0.
-    # On Python 3.10, with `Alias[int]` being such an instance of `GenericAlias`,
-    # `isinstance(Alias[int], TypeAliasType)` returns `True`.
-    # See https://github.com/python/cpython/issues/89828.
-    def is_typealiastype(obj: Any, /) -> 'TypeIs[TypeAliasType]':
-        return type(obj) is not GenericAlias and _is_typealiastype_inner(obj)
-else:
-    is_typealiastype = _compile_isinstance_check_function('TypeAliasType', 'is_typealiastype')
-
-is_typealiastype.__doc__ = """
-Return whether the argument is a [`TypeAliasType`][typing.TypeAliasType] instance.
-
-```pycon
->>> type MyInt = int
->>> is_typealiastype(MyInt)
-True
->>> MyStr = TypeAliasType("MyStr", str)
->>> is_typealiastype(MyStr):
-True
->>> type MyList[T] = list[T]
->>> is_typealiastype(MyList[int])
-False
-```
-"""
-
-is_unpack = _compile_identity_check_function('Unpack', 'is_unpack')
-is_unpack.__doc__ = """
-Return whether the argument is the [`Unpack`][typing.Unpack] [special form][].
-
-```pycon
->>> is_unpack(Unpack)
-True
->>> is_unpack(Unpack[Ts])
-False
-```
-"""
-
-
-if sys.version_info >= (3, 13):
-
-    def is_deprecated(obj: Any, /) -> 'TypeIs[deprecated]':
-        return isinstance(obj, (warnings.deprecated, typing_extensions.deprecated))
-
-else:
-
-    def is_deprecated(obj: Any, /) -> 'TypeIs[deprecated]':
-        return isinstance(obj, typing_extensions.deprecated)
-
-
-is_deprecated.__doc__ = """
-Return whether the argument is a [`deprecated`][warnings.deprecated] instance.
-
-This also includes the [`typing_extensions` backport][typing_extensions.deprecated].
-
-```pycon
->>> is_deprecated(warnings.deprecated('message'))
-True
->>> is_deprecated(typing_extensions('deprecated'))
-True
-```
-"""
-
-
-# Aliases defined in the `typing` module using `typing._SpecialGenericAlias` (itself aliases as `alias()`):
-DEPRECATED_ALIASES: Final[dict[Any, type[Any]]] = {
-    typing.Hashable: collections.abc.Hashable,
-    typing.Awaitable: collections.abc.Awaitable,
-    typing.Coroutine: collections.abc.Coroutine,
-    typing.AsyncIterable: collections.abc.AsyncIterable,
-    typing.AsyncIterator: collections.abc.AsyncIterator,
-    typing.Iterable: collections.abc.Iterable,
-    typing.Iterator: collections.abc.Iterator,
-    typing.Reversible: collections.abc.Reversible,
-    typing.Sized: collections.abc.Sized,
-    typing.Container: collections.abc.Container,
-    typing.Collection: collections.abc.Collection,
-    # type ignore reason: https://github.com/python/typeshed/issues/6257:
-    typing.Callable: collections.abc.Callable,  # pyright: ignore[reportAssignmentType, reportUnknownMemberType]
-    typing.AbstractSet: collections.abc.Set,
-    typing.MutableSet: collections.abc.MutableSet,
-    typing.Mapping: collections.abc.Mapping,
-    typing.MutableMapping: collections.abc.MutableMapping,
-    typing.Sequence: collections.abc.Sequence,
-    typing.MutableSequence: collections.abc.MutableSequence,
-    typing.Tuple: tuple,
-    typing.List: list,
-    typing.Deque: collections.deque,
-    typing.Set: set,
-    typing.FrozenSet: frozenset,
-    typing.MappingView: collections.abc.MappingView,
-    typing.KeysView: collections.abc.KeysView,
-    typing.ItemsView: collections.abc.ItemsView,
-    typing.ValuesView: collections.abc.ValuesView,
-    typing.Dict: dict,
-    typing.DefaultDict: collections.defaultdict,
-    typing.OrderedDict: collections.OrderedDict,
-    typing.Counter: collections.Counter,
-    typing.ChainMap: collections.ChainMap,
-    typing.Generator: collections.abc.Generator,
-    typing.AsyncGenerator: collections.abc.AsyncGenerator,
-    typing.Type: type,
-    # Defined in `typing.__getattr__`:
-    typing.Pattern: re.Pattern,
-    typing.Match: re.Match,
-    typing.ContextManager: contextlib.AbstractContextManager,
-    typing.AsyncContextManager: contextlib.AbstractAsyncContextManager,
-    # Skipped: `ByteString` (deprecated, removed in 3.14)
-}
-"""A mapping between the deprecated typing aliases to their replacement, as per [PEP 585](https://peps.python.org/pep-0585/)."""
-
-
-# Add the `typing_extensions` aliases:
-for alias, target in list(DEPRECATED_ALIASES.items()):
-    # Use `alias.__name__` when we drop support for Python 3.9
-    if (te_alias := getattr(typing_extensions, alias._name, None)) is not None:
-        DEPRECATED_ALIASES[te_alias] = target
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/typing_objects.pyi b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/typing_objects.pyi
deleted file mode 100644
index c2a9d8c2a4fc22209b0b35dbc904899c347ea7a6..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/lib/python3.10/site-packages/typing_inspection/typing_objects.pyi
+++ /dev/null
@@ -1,396 +0,0 @@
-# Stub file generated using:
-# `stubgen --inspect-mode --include-docstrings -m typing_inspection.typing_objects`
-# (manual edits need to be applied).
-"""Low-level introspection utilities for [`typing`][] members.
-
-The provided functions in this module check against both the [`typing`][] and [`typing_extensions`][]
-variants, if they exists and are different.
-"""
-
-import sys
-from typing import Any, Final, NewType, TypeVar
-
-from typing_extensions import ParamSpec, ParamSpecArgs, ParamSpecKwargs, TypeAliasType, TypeIs, TypeVarTuple, deprecated
-
-__all__ = [
-    'DEPRECATED_ALIASES',
-    'NoneType',
-    'is_annotated',
-    'is_any',
-    'is_classvar',
-    'is_concatenate',
-    'is_deprecated',
-    'is_final',
-    'is_generic',
-    'is_literal',
-    'is_literalstring',
-    'is_namedtuple',
-    'is_never',
-    'is_newtype',
-    'is_nodefault',
-    'is_noreturn',
-    'is_notrequired',
-    'is_paramspec',
-    'is_paramspecargs',
-    'is_paramspeckwargs',
-    'is_readonly',
-    'is_required',
-    'is_self',
-    'is_typealias',
-    'is_typealiastype',
-    'is_typeguard',
-    'is_typeis',
-    'is_typevar',
-    'is_typevartuple',
-    'is_union',
-    'is_unpack',
-]
-
-if sys.version_info >= (3, 10):
-    from types import NoneType
-else:
-    NoneType = type(None)
-
-def is_annotated(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Annotated`][typing.Annotated] [special form][].
-
-    ```pycon
-    >>> is_annotated(Annotated)
-    True
-    >>> is_annotated(Annotated[int, ...])
-    False
-    ```
-    """
-
-def is_any(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Any`][typing.Any] [special form][].
-
-    ```pycon
-    >>> is_any(Any)
-    True
-    ```
-    """
-
-def is_classvar(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`ClassVar`][typing.ClassVar] [type qualifier][].
-
-    ```pycon
-    >>> is_classvar(ClassVar)
-    True
-    >>> is_classvar(ClassVar[int])
-    >>> False
-    ```
-    """
-
-def is_concatenate(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Concatenate`][typing.Concatenate] [special form][].
-
-    ```pycon
-    >>> is_concatenate(Concatenate)
-    True
-    >>> is_concatenate(Concatenate[int, P])
-    False
-    ```
-    """
-
-def is_final(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Final`][typing.Final] [type qualifier][].
-
-    ```pycon
-    >>> is_final(Final)
-    True
-    >>> is_final(Final[int])
-    False
-    ```
-    """
-
-def is_generic(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Generic`][typing.Generic] [special form][].
-
-    ```pycon
-    >>> is_generic(Generic)
-    True
-    >>> is_generic(Generic[T])
-    False
-    ```
-    """
-
-def is_literal(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Literal`][typing.Literal] [special form][].
-
-    ```pycon
-    >>> is_literal(Literal)
-    True
-    >>> is_literal(Literal["a"])
-    False
-    ```
-    """
-
-def is_paramspec(obj: Any, /) -> TypeIs[ParamSpec]:
-    """
-    Return whether the argument is an instance of [`ParamSpec`][typing.ParamSpec].
-
-    ```pycon
-    >>> P = ParamSpec('P')
-    >>> is_paramspec(P)
-    True
-    ```
-    """
-
-def is_typevar(obj: Any, /) -> TypeIs[TypeVar]:
-    """
-    Return whether the argument is an instance of [`TypeVar`][typing.TypeVar].
-
-    ```pycon
-    >>> T = TypeVar('T')
-    >>> is_typevar(T)
-    True
-    ```
-    """
-
-def is_typevartuple(obj: Any, /) -> TypeIs[TypeVarTuple]:
-    """
-    Return whether the argument is an instance of [`TypeVarTuple`][typing.TypeVarTuple].
-
-    ```pycon
-    >>> Ts = TypeVarTuple('Ts')
-    >>> is_typevartuple(Ts)
-    True
-    ```
-    """
-
-def is_union(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Union`][typing.Union] [special form][].
-
-    This function can also be used to check for the [`Optional`][typing.Optional] [special form][],
-    as at runtime, `Optional[int]` is equivalent to `Union[int, None]`.
-
-    ```pycon
-    >>> is_union(Union)
-    True
-    >>> is_union(Union[int, str])
-    False
-    ```
-
-    !!! warning
-        This does not check for unions using the [new syntax][types-union] (e.g. `int | str`).
-    """
-
-def is_namedtuple(obj: Any, /) -> bool:
-    """Return whether the argument is a named tuple type.
-
-    This includes [`NamedTuple`][typing.NamedTuple] subclasses and classes created from the
-    [`collections.namedtuple`][] factory function.
-
-    ```pycon
-    >>> class User(NamedTuple):
-    ...     name: str
-    ...
-    >>> is_namedtuple(User)
-    True
-    >>> City = collections.namedtuple('City', [])
-    >>> is_namedtuple(City)
-    True
-    >>> is_namedtuple(NamedTuple)
-    False
-    ```
-    """
-
-def is_literalstring(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`LiteralString`][typing.LiteralString] [special form][].
-
-    ```pycon
-    >>> is_literalstring(LiteralString)
-    True
-    ```
-    """
-
-def is_never(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Never`][typing.Never] [special form][].
-
-    ```pycon
-    >>> is_never(Never)
-    True
-    ```
-    """
-
-def is_newtype(obj: Any, /) -> TypeIs[NewType]:
-    """
-    Return whether the argument is a [`NewType`][typing.NewType].
-
-    ```pycon
-    >>> UserId = NewType("UserId", int)
-    >>> is_newtype(UserId)
-    True
-    ```
-    """
-
-def is_nodefault(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`NoDefault`][typing.NoDefault] sentinel object.
-
-    ```pycon
-    >>> is_nodefault(NoDefault)
-    True
-    ```
-    """
-
-def is_noreturn(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`NoReturn`][typing.NoReturn] [special form][].
-
-    ```pycon
-    >>> is_noreturn(NoReturn)
-    True
-    >>> is_noreturn(Never)
-    False
-    ```
-    """
-
-def is_notrequired(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`NotRequired`][typing.NotRequired] [special form][].
-
-    ```pycon
-    >>> is_notrequired(NotRequired)
-    True
-    ```
-    """
-
-def is_paramspecargs(obj: Any, /) -> TypeIs[ParamSpecArgs]:
-    """
-    Return whether the argument is an instance of [`ParamSpecArgs`][typing.ParamSpecArgs].
-
-    ```pycon
-    >>> P = ParamSpec('P')
-    >>> is_paramspecargs(P.args)
-    True
-    ```
-    """
-
-def is_paramspeckwargs(obj: Any, /) -> TypeIs[ParamSpecKwargs]:
-    """
-    Return whether the argument is an instance of [`ParamSpecKwargs`][typing.ParamSpecKwargs].
-
-    ```pycon
-    >>> P = ParamSpec('P')
-    >>> is_paramspeckwargs(P.kwargs)
-    True
-    ```
-    """
-
-def is_readonly(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`ReadOnly`][typing.ReadOnly] [special form][].
-
-    ```pycon
-    >>> is_readonly(ReadOnly)
-    True
-    ```
-    """
-
-def is_required(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Required`][typing.Required] [special form][].
-
-    ```pycon
-    >>> is_required(Required)
-    True
-    ```
-    """
-
-def is_self(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Self`][typing.Self] [special form][].
-
-    ```pycon
-    >>> is_self(Self)
-    True
-    ```
-    """
-
-def is_typealias(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`TypeAlias`][typing.TypeAlias] [special form][].
-
-    ```pycon
-    >>> is_typealias(TypeAlias)
-    True
-    ```
-    """
-
-def is_typeguard(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`TypeGuard`][typing.TypeGuard] [special form][].
-
-    ```pycon
-    >>> is_typeguard(TypeGuard)
-    True
-    ```
-    """
-
-def is_typeis(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`TypeIs`][typing.TypeIs] [special form][].
-
-    ```pycon
-    >>> is_typeis(TypeIs)
-    True
-    ```
-    """
-
-def is_typealiastype(obj: Any, /) -> TypeIs[TypeAliasType]:
-    """
-    Return whether the argument is a [`TypeAliasType`][typing.TypeAliasType] instance.
-
-    ```pycon
-    >>> type MyInt = int
-    >>> is_typealiastype(MyInt)
-    True
-    >>> MyStr = TypeAliasType("MyStr", str)
-    >>> is_typealiastype(MyStr):
-    True
-    >>> type MyList[T] = list[T]
-    >>> is_typealiastype(MyList[int])
-    False
-    ```
-    """
-
-def is_unpack(obj: Any, /) -> bool:
-    """
-    Return whether the argument is the [`Unpack`][typing.Unpack] [special form][].
-
-    ```pycon
-    >>> is_unpack(Unpack)
-    True
-    >>> is_unpack(Unpack[Ts])
-    False
-    ```
-    """
-
-def is_deprecated(obj: Any, /) -> TypeIs[deprecated]:
-    """
-    Return whether the argument is a [`deprecated`][warnings.deprecated] instance.
-
-    This also includes the [`typing_extensions` backport][typing_extensions.deprecated].
-
-    ```pycon
-    >>> is_deprecated(warnings.deprecated('message'))
-    True
-    >>> is_deprecated(typing_extensions.deprecated('deprecated'))
-    True
-    ```
-    """
-
-DEPRECATED_ALIASES: Final[dict[Any, type[Any]]]
-"""A mapping between the deprecated typing aliases to their replacement, as per [PEP 585](https://peps.python.org/pep-0585/)."""
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/applications/jupyter-notebook.desktop b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/applications/jupyter-notebook.desktop
deleted file mode 100644
index 095d5ac65b4b7d7128bacfec560f3b24d34db890..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/applications/jupyter-notebook.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Name=Jupyter Notebook
-Comment=Run Jupyter Notebook
-Exec=jupyter-notebook %f
-Terminal=true
-Type=Application
-Icon=notebook
-StartupNotify=true
-MimeType=application/x-ipynb+json;
-Categories=Development;Education;
-Keywords=python;
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/inline-completer.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/inline-completer.json
deleted file mode 100644
index 9fc42d39cdc6aeaf9a4d14d4dd1649b2e8ba0094..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/inline-completer.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
-  "title": "Inline Completer",
-  "description": "Inline completer settings.",
-  "jupyter.lab.setting-icon": "completer:inline",
-  "jupyter.lab.setting-icon-label": "Inline Completer",
-  "jupyter.lab.transform": true,
-  "jupyter.lab.shortcuts": [
-    {
-      "command": "inline-completer:next",
-      "keys": ["Alt ]"],
-      "selector": ".jp-mod-completer-enabled",
-      "preventDefault": false
-    },
-    {
-      "command": "inline-completer:previous",
-      "keys": ["Alt ["],
-      "selector": ".jp-mod-completer-enabled",
-      "preventDefault": false
-    },
-    {
-      "command": "inline-completer:accept",
-      "keys": ["Tab"],
-      "selector": ".jp-mod-inline-completer-active"
-    },
-    {
-      "command": "inline-completer:accept",
-      "keys": ["Alt End"],
-      "selector": ".jp-mod-inline-completer-active"
-    },
-    {
-      "command": "inline-completer:invoke",
-      "keys": ["Alt \\"],
-      "selector": ".jp-mod-completer-enabled",
-      "preventDefault": false
-    }
-  ],
-  "properties": {
-    "providers": {
-      "title": "Inline completion providers",
-      "type": "object",
-      "default": {}
-    },
-    "showWidget": {
-      "title": "Show widget",
-      "description": "When to show the inline completer widget.",
-      "type": "string",
-      "oneOf": [
-        { "const": "always", "title": "Always" },
-        { "const": "onHover", "title": "On hover" },
-        { "const": "never", "title": "Never" }
-      ],
-      "default": "onHover"
-    },
-    "showShortcuts": {
-      "title": "Show shortcuts in the widget",
-      "description": "Whether to show shortcuts in the inline completer widget.",
-      "type": "boolean",
-      "default": true
-    },
-    "suppressIfTabCompleterActive": {
-      "title": "Suppress when the tab completer is active",
-      "description": "Whether to suppress the inline completer when the tab completer suggestions are shown.",
-      "type": "boolean",
-      "default": true
-    },
-    "streamingAnimation": {
-      "title": "Streaming animation",
-      "description": "Transition effect used when streaming tokens from model.",
-      "type": "string",
-      "oneOf": [
-        { "const": "none", "title": "None" },
-        { "const": "uncover", "title": "Uncover" }
-      ],
-      "default": "uncover"
-    },
-    "minLines": {
-      "title": "Reserve lines for inline completion",
-      "description": "Number of lines to reserve for the ghost text with inline completion suggestion.",
-      "type": "number",
-      "default": 0,
-      "minimum": 0
-    },
-    "maxLines": {
-      "title": "Limit inline completion lines",
-      "description": "Number of lines of inline completion to show before collapsing. Setting zero disables the limit.",
-      "type": "number",
-      "default": 0,
-      "minimum": 0
-    },
-    "reserveSpaceForLongest": {
-      "title": "Reserve space for the longest candidate",
-      "description": "When multiple completions are returned, reserve blank space for up to as many lines as in the longest completion candidate to avoid resizing editor when cycling between the suggestions.",
-      "type": "boolean",
-      "default": false
-    },
-    "editorResizeDelay": {
-      "title": "Editor resize delay",
-      "description": "When an inline completion gets cancelled the editor may change its size rapidly. When typing in the editor, the completions may get dismissed frequently causing a noticeable jitter of the editor height. Adding a delay prevents the jitter on typing. The value should be in milliseconds.",
-      "type": "number",
-      "default": 1000,
-      "minimum": 0
-    }
-  },
-  "additionalProperties": false,
-  "type": "object"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/manager.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/manager.json
deleted file mode 100644
index c23e30f70e074c606bbb22c8efe1c029f201a4bb..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/manager.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-  "title": "Code Completion",
-  "description": "Code Completion settings.",
-  "jupyter.lab.setting-icon": "completer:widget",
-  "jupyter.lab.setting-icon-label": "Code Completer",
-  "jupyter.lab.transform": true,
-  "properties": {
-    "availableProviders": {
-      "title": "Completion providers rank setting.",
-      "description": "Providers with higher rank will be shown before the ones with lower rank, providers with negative rank are disabled.",
-      "type": "object",
-      "patternProperties": {
-        "^.*$": {
-          "type": "integer"
-        }
-      },
-      "additionalProperties": false,
-      "default": {
-        "CompletionProvider:context": 500,
-        "CompletionProvider:kernel": 550
-      }
-    },
-    "providerTimeout": {
-      "title": "Default timeout for a provider.",
-      "description": "If a provider can not return the response for a completer request before timeout, the result of this provider will be ignored. Value is in millisecond",
-      "type": "number",
-      "default": 1000
-    },
-    "showDocumentationPanel": {
-      "title": "Show the documentation panel.",
-      "description": "Documentation panel setting.",
-      "type": "boolean",
-      "default": false
-    },
-    "autoCompletion": {
-      "title": "Enable autocompletion.",
-      "description": "Autocompletion setting.",
-      "type": "boolean",
-      "default": false
-    },
-    "suppressIfInlineCompleterActive": {
-      "title": "Suppress when the inline completer is active",
-      "description": "Whether to suppress the tab completer when inline completions are presented.",
-      "type": "boolean",
-      "default": true
-    }
-  },
-  "additionalProperties": false,
-  "type": "object"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/package.json.orig b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/package.json.orig
deleted file mode 100644
index 57ecaa7de666bc3338b738a66fd036b744aef225..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/package.json.orig
+++ /dev/null
@@ -1,63 +0,0 @@
-{
-  "name": "@jupyterlab/completer-extension",
-  "version": "4.4.2",
-  "description": "JupyterLab - Completer Extension",
-  "homepage": "https://github.com/jupyterlab/jupyterlab",
-  "bugs": {
-    "url": "https://github.com/jupyterlab/jupyterlab/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jupyterlab/jupyterlab.git"
-  },
-  "license": "BSD-3-Clause",
-  "author": "Project Jupyter",
-  "sideEffects": [
-    "style/**/*.css",
-    "style/index.js"
-  ],
-  "main": "lib/index.js",
-  "types": "lib/index.d.ts",
-  "style": "style/index.css",
-  "directories": {
-    "lib": "lib/"
-  },
-  "files": [
-    "lib/*.d.ts",
-    "lib/*.js.map",
-    "lib/*.js",
-    "schema/*.json",
-    "style/**/*.css",
-    "style/index.js",
-    "src/**/*.{ts,tsx}"
-  ],
-  "scripts": {
-    "build": "tsc -b",
-    "clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
-    "watch": "tsc -b --watch"
-  },
-  "dependencies": {
-    "@jupyterlab/application": "^4.4.2",
-    "@jupyterlab/codeeditor": "^4.4.2",
-    "@jupyterlab/completer": "^4.4.2",
-    "@jupyterlab/settingregistry": "^4.4.2",
-    "@jupyterlab/translation": "^4.4.2",
-    "@jupyterlab/ui-components": "^4.4.2",
-    "@lumino/commands": "^2.3.2",
-    "@lumino/coreutils": "^2.2.1",
-    "@rjsf/utils": "^5.13.4",
-    "react": "^18.2.0"
-  },
-  "devDependencies": {
-    "rimraf": "~5.0.5",
-    "typescript": "~5.5.4"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "jupyterlab": {
-    "extension": true,
-    "schemaDir": "schema"
-  },
-  "styleModule": "style/index.js"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/hub-extension/menu.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/hub-extension/menu.json
deleted file mode 100644
index 4e4620e99f34cea0745a158a66783d560ef56a19..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/hub-extension/menu.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  "jupyter.lab.menus": {
-    "main": [
-      {
-        "id": "jp-mainmenu-file",
-        "items": [
-          {
-            "type": "separator",
-            "rank": 100
-          },
-          {
-            "command": "hub:control-panel",
-            "rank": 100
-          },
-          {
-            "command": "hub:logout",
-            "rank": 100
-          },
-          {
-            "type": "separator",
-            "rank": 100
-          }
-        ]
-      }
-    ]
-  },
-  "title": "JupyterHub",
-  "description": "JupyterHub settings.",
-  "properties": {},
-  "additionalProperties": false,
-  "type": "object"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/hub-extension/package.json.orig b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/hub-extension/package.json.orig
deleted file mode 100644
index 34cf9512421e9415b7f208761a314783a70cc1af..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/hub-extension/package.json.orig
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "name": "@jupyterlab/hub-extension",
-  "version": "4.4.2",
-  "description": "JupyterLab integration for JupyterHub",
-  "homepage": "https://github.com/jupyterlab/jupyterlab",
-  "bugs": {
-    "url": "https://github.com/jupyterlab/jupyterlab/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jupyterlab/jupyterlab.git"
-  },
-  "license": "BSD-3-Clause",
-  "author": "Project Jupyter",
-  "sideEffects": [
-    "style/**/*"
-  ],
-  "main": "lib/index.js",
-  "types": "lib/index.d.ts",
-  "style": "style/index.css",
-  "directories": {
-    "lib": "lib/"
-  },
-  "files": [
-    "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
-    "schema/*.json",
-    "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}",
-    "style/index.js",
-    "src/**/*.{ts,tsx}"
-  ],
-  "scripts": {
-    "build": "tsc",
-    "build:test": "tsc --build tsconfig.test.json",
-    "clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
-    "test": "jest",
-    "test:cov": "jest --collect-coverage",
-    "test:debug": "node --inspect-brk ../../node_modules/.bin/jest --runInBand",
-    "test:debug:watch": "node --inspect-brk ../../node_modules/.bin/jest --runInBand --watch",
-    "watch": "tsc -w --listEmittedFiles"
-  },
-  "dependencies": {
-    "@jupyterlab/application": "^4.4.2",
-    "@jupyterlab/apputils": "^4.5.2",
-    "@jupyterlab/coreutils": "^6.4.2",
-    "@jupyterlab/services": "^7.4.2",
-    "@jupyterlab/translation": "^4.4.2"
-  },
-  "devDependencies": {
-    "@types/jest": "^29.2.0",
-    "jest": "^29.2.0",
-    "rimraf": "~5.0.5",
-    "typescript": "~5.5.4"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "jupyterlab": {
-    "extension": true,
-    "schemaDir": "schema"
-  },
-  "styleModule": "style/index.js"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/package.json.orig b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/package.json.orig
deleted file mode 100644
index 381408f8973d520c16cd79c8e02c39d0ddeefc6b..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/package.json.orig
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "name": "@jupyterlab/launcher-extension",
-  "version": "4.4.2",
-  "description": "JupyterLab - Launcher Page Extension",
-  "homepage": "https://github.com/jupyterlab/jupyterlab",
-  "bugs": {
-    "url": "https://github.com/jupyterlab/jupyterlab/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jupyterlab/jupyterlab.git"
-  },
-  "license": "BSD-3-Clause",
-  "author": "Project Jupyter",
-  "sideEffects": [
-    "style/*.css",
-    "style/index.js"
-  ],
-  "main": "lib/index.js",
-  "types": "lib/index.d.ts",
-  "style": "style/index.css",
-  "directories": {
-    "lib": "lib/"
-  },
-  "files": [
-    "lib/*.d.ts",
-    "lib/*.js.map",
-    "lib/*.js",
-    "schema/*.json",
-    "style/*.css",
-    "style/index.js",
-    "src/**/*.{ts,tsx}"
-  ],
-  "scripts": {
-    "build": "tsc -b",
-    "clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
-    "watch": "tsc -b --watch"
-  },
-  "dependencies": {
-    "@jupyterlab/application": "^4.4.2",
-    "@jupyterlab/apputils": "^4.5.2",
-    "@jupyterlab/filebrowser": "^4.4.2",
-    "@jupyterlab/launcher": "^4.4.2",
-    "@jupyterlab/translation": "^4.4.2",
-    "@jupyterlab/ui-components": "^4.4.2",
-    "@lumino/algorithm": "^2.0.3",
-    "@lumino/coreutils": "^2.2.1",
-    "@lumino/widgets": "^2.7.1"
-  },
-  "devDependencies": {
-    "rimraf": "~5.0.5",
-    "typescript": "~5.5.4"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "jupyterlab": {
-    "extension": true,
-    "schemaDir": "schema"
-  },
-  "styleModule": "style/index.js"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/plugin.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/plugin.json
deleted file mode 100644
index 748cdb3bda4b44319cabe00a7bf07c3ac6eb6689..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/plugin.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "title": "Launcher",
-  "description": "Launcher settings.",
-  "jupyter.lab.menus": {
-    "main": [
-      {
-        "id": "jp-mainmenu-file",
-        "items": [
-          {
-            "command": "launcher:create",
-            "rank": 0.99
-          }
-        ]
-      }
-    ]
-  },
-  "jupyter.lab.shortcuts": [
-    {
-      "command": "launcher:create",
-      "keys": ["Accel Shift L"],
-      "selector": "body"
-    }
-  ],
-  "jupyter.lab.toolbars": {
-    "FileBrowser": [
-      {
-        "name": "new-launcher",
-        "command": "launcher:create",
-        "rank": 1
-      }
-    ]
-  },
-  "properties": {},
-  "additionalProperties": false,
-  "type": "object"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/mathjax-extension/package.json.orig b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/mathjax-extension/package.json.orig
deleted file mode 100644
index 98e4501a98f760ef0604cd6aa3fa86e708130bb1..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/mathjax-extension/package.json.orig
+++ /dev/null
@@ -1,63 +0,0 @@
-{
-  "name": "@jupyterlab/mathjax-extension",
-  "version": "4.4.2",
-  "description": "A JupyterLab extension providing MathJax Typesetting",
-  "keywords": [
-    "jupyter",
-    "jupyterlab",
-    "mathjax"
-  ],
-  "homepage": "https://github.com/jupyterlab/jupyterlab",
-  "bugs": {
-    "url": "https://github.com/jupyterlab/jupyterlab/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jupyterlab/jupyterlab.git"
-  },
-  "license": "BSD-3-Clause",
-  "author": {
-    "name": "Project Jupyter",
-    "email": "jupyter@googlegroups.com"
-  },
-  "sideEffects": [
-    "style/**/*"
-  ],
-  "main": "lib/index.js",
-  "types": "lib/index.d.ts",
-  "style": "style/index.css",
-  "directories": {
-    "lib": "lib/"
-  },
-  "files": [
-    "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
-    "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}",
-    "schema/*.json",
-    "style/index.js",
-    "src/**/*.{ts,tsx}"
-  ],
-  "scripts": {
-    "build": "tsc -b",
-    "clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
-    "eslint": "eslint . --ext .ts,.tsx --fix",
-    "watch": "tsc -b --watch"
-  },
-  "dependencies": {
-    "@jupyterlab/application": "^4.4.2",
-    "@jupyterlab/rendermime": "^4.4.2",
-    "@lumino/coreutils": "^2.2.1",
-    "mathjax-full": "^3.2.2"
-  },
-  "devDependencies": {
-    "rimraf": "~5.0.5",
-    "typescript": "~5.5.4"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "jupyterlab": {
-    "extension": true,
-    "schemaDir": "schema"
-  },
-  "styleModule": "style/index.js"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/consoles.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/consoles.json
deleted file mode 100644
index e75d46883b4102d28678827ba1778351da90d305..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/consoles.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "title": "Console Tooltips",
-  "description": "Console tooltip settings.",
-  "jupyter.lab.shortcuts": [
-    {
-      "command": "tooltip:dismiss",
-      "keys": ["Escape"],
-      "selector": "body.jp-mod-tooltip .jp-CodeConsole-promptCell"
-    },
-    {
-      "command": "tooltip:launch-console",
-      "keys": ["Shift Tab"],
-      "selector": ".jp-CodeConsole-promptCell .jp-InputArea-editor:not(.jp-mod-has-primary-selection):not(.jp-mod-in-leading-whitespace)"
-    }
-  ],
-  "properties": {},
-  "additionalProperties": false,
-  "type": "object"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/notebooks.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/notebooks.json
deleted file mode 100644
index 137a137c3e4a4b96a973a6ba83b39d3448e99b08..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/notebooks.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "title": "Notebook Tooltips",
-  "description": "Notebook tooltip settings.",
-  "jupyter.lab.shortcuts": [
-    {
-      "command": "tooltip:dismiss",
-      "keys": ["Escape"],
-      "selector": "body.jp-mod-tooltip .jp-Notebook"
-    },
-    {
-      "command": "tooltip:launch-notebook",
-      "keys": ["Shift Tab"],
-      "selector": ".jp-Notebook.jp-mod-editMode .jp-InputArea-editor:not(.jp-mod-has-primary-selection):not(.jp-mod-in-leading-whitespace):not(.jp-mod-completer-active)"
-    }
-  ],
-  "properties": {},
-  "additionalProperties": false,
-  "type": "object"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/package.json.orig b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/package.json.orig
deleted file mode 100644
index 140e3bdf14d0c426799e235e95d768571f99aa42..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/package.json.orig
+++ /dev/null
@@ -1,66 +0,0 @@
-{
-  "name": "@jupyterlab/tooltip-extension",
-  "version": "4.4.2",
-  "description": "JupyterLab - Tooltip Extension",
-  "homepage": "https://github.com/jupyterlab/jupyterlab",
-  "bugs": {
-    "url": "https://github.com/jupyterlab/jupyterlab/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jupyterlab/jupyterlab.git"
-  },
-  "license": "BSD-3-Clause",
-  "author": "Project Jupyter",
-  "sideEffects": [
-    "style/**/*.css",
-    "style/index.js"
-  ],
-  "main": "lib/index.js",
-  "types": "lib/index.d.ts",
-  "style": "style/index.css",
-  "directories": {
-    "lib": "lib/"
-  },
-  "files": [
-    "lib/*.d.ts",
-    "lib/*.js.map",
-    "lib/*.js",
-    "schema/*.json",
-    "style/**/*.css",
-    "style/index.js",
-    "src/**/*.{ts,tsx}"
-  ],
-  "scripts": {
-    "build": "tsc -b",
-    "clean": "rimraf lib && rimraf tsconfig.tsbuildinfo",
-    "watch": "tsc -b --watch"
-  },
-  "dependencies": {
-    "@jupyterlab/application": "^4.4.2",
-    "@jupyterlab/codeeditor": "^4.4.2",
-    "@jupyterlab/console": "^4.4.2",
-    "@jupyterlab/coreutils": "^6.4.2",
-    "@jupyterlab/fileeditor": "^4.4.2",
-    "@jupyterlab/notebook": "^4.4.2",
-    "@jupyterlab/rendermime": "^4.4.2",
-    "@jupyterlab/services": "^7.4.2",
-    "@jupyterlab/tooltip": "^4.4.2",
-    "@jupyterlab/translation": "^4.4.2",
-    "@lumino/algorithm": "^2.0.3",
-    "@lumino/coreutils": "^2.2.1",
-    "@lumino/widgets": "^2.7.1"
-  },
-  "devDependencies": {
-    "rimraf": "~5.0.5",
-    "typescript": "~5.5.4"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "jupyterlab": {
-    "extension": true,
-    "schemaDir": "schema"
-  },
-  "styleModule": "style/index.js"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/translation-extension/package.json.orig b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/translation-extension/package.json.orig
deleted file mode 100644
index 505d7c67707a90fc9259a015f0d8f4c534503ac2..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/translation-extension/package.json.orig
+++ /dev/null
@@ -1,58 +0,0 @@
-{
-  "name": "@jupyterlab/translation-extension",
-  "version": "4.4.2",
-  "description": "JupyterLab - Translation services",
-  "keywords": [
-    "jupyter",
-    "jupyterlab",
-    "jupyterlab-extension"
-  ],
-  "homepage": "https://github.com/jupyterlab/jupyterlab",
-  "bugs": {
-    "url": "https://github.com/jupyterlab/jupyterlab/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jupyterlab/jupyterlab.git"
-  },
-  "license": "BSD-3-Clause",
-  "author": "Project Jupyter",
-  "sideEffects": [
-    "style/*.css",
-    "style/index.js"
-  ],
-  "main": "lib/index.js",
-  "types": "lib/index.d.ts",
-  "style": "style/index.css",
-  "files": [
-    "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
-    "schema/**/*.{json,}",
-    "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}",
-    "style/index.js",
-    "src/**/*.{ts,tsx}"
-  ],
-  "scripts": {
-    "build": "tsc",
-    "clean": "rimraf lib tsconfig.tsbuildinfo",
-    "watch": "tsc -w"
-  },
-  "dependencies": {
-    "@jupyterlab/application": "^4.4.2",
-    "@jupyterlab/apputils": "^4.5.2",
-    "@jupyterlab/mainmenu": "^4.4.2",
-    "@jupyterlab/settingregistry": "^4.4.2",
-    "@jupyterlab/translation": "^4.4.2"
-  },
-  "devDependencies": {
-    "rimraf": "~5.0.5",
-    "typescript": "~5.5.4"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "jupyterlab": {
-    "extension": true,
-    "schemaDir": "schema"
-  },
-  "styleModule": "style/index.js"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/translation-extension/plugin.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/translation-extension/plugin.json
deleted file mode 100644
index 15d3f582f4cbbbf1adccaf383f7f40f61a733705..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/translation-extension/plugin.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "jupyter.lab.setting-icon": "ui-components:settings",
-  "jupyter.lab.setting-icon-label": "Language",
-  "jupyter.lab.menus": {
-    "main": [
-      {
-        "id": "jp-mainmenu-settings",
-        "items": [
-          {
-            "type": "separator",
-            "rank": 1
-          },
-          {
-            "type": "submenu",
-            "rank": 1,
-            "submenu": {
-              "id": "jp-mainmenu-settings-language",
-              "label": "Language"
-            }
-          },
-          {
-            "type": "separator",
-            "rank": 1
-          }
-        ]
-      }
-    ]
-  },
-  "title": "Language",
-  "description": "Language settings.",
-  "type": "object",
-  "properties": {
-    "locale": {
-      "type": "string",
-      "title": "Language locale",
-      "description": "Set the interface display language. Examples: 'es_CO', 'fr_FR'. Set 'default' to use the server default locale. Requires corresponding language pack to be installed.",
-      "default": "default"
-    },
-    "stringsPrefix": {
-      "type": "string",
-      "title": "Localized strings prefix",
-      "description": "Add a prefix to localized strings.",
-      "default": "!!"
-    },
-    "displayStringsPrefix": {
-      "type": "boolean",
-      "title": "Display localized strings prefix",
-      "description": "Display the `stringsPrefix` on localized strings.",
-      "default": false
-    }
-  }
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/workspaces-extension/menu.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/workspaces-extension/menu.json
deleted file mode 100644
index 133787723e41addfe5356e69ba2f282166af0894..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/workspaces-extension/menu.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
-  "title": "Workspaces Menu",
-  "description": "Workspaces Menu",
-  "jupyter.lab.menus": {
-    "main": [
-      {
-        "id": "jp-mainmenu-file",
-        "items": [
-          {
-            "type": "submenu",
-            "rank": 10,
-            "submenu": {
-              "id": "jp-mainmenu-file-workspaces",
-              "label": "Workspaces",
-              "items": [
-                {
-                  "command": "workspace-ui:open",
-                  "rank": 0
-                },
-                {
-                  "command": "workspace-ui:create-new",
-                  "rank": 1
-                },
-                {
-                  "command": "workspace-ui:clone",
-                  "rank": 2
-                },
-                {
-                  "command": "workspace-ui:rename",
-                  "rank": 3
-                },
-                {
-                  "command": "workspace-ui:save",
-                  "rank": 4
-                },
-                {
-                  "command": "workspace-ui:save-as",
-                  "rank": 5
-                },
-                {
-                  "command": "workspace-ui:import",
-                  "rank": 6
-                },
-                {
-                  "command": "workspace-ui:export",
-                  "rank": 7
-                },
-                {
-                  "type": "separator",
-                  "rank": 8
-                },
-                {
-                  "command": "workspace-ui:reset",
-                  "rank": 9
-                },
-                {
-                  "command": "workspace-ui:delete",
-                  "rank": 10
-                }
-              ]
-            }
-          }
-        ]
-      }
-    ]
-  },
-  "properties": {},
-  "additionalProperties": false,
-  "type": "object"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/workspaces-extension/package.json.orig b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/workspaces-extension/package.json.orig
deleted file mode 100644
index 1e018519183999c2c8f22a39eb00af312da531a4..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/schemas/@jupyterlab/workspaces-extension/package.json.orig
+++ /dev/null
@@ -1,64 +0,0 @@
-{
-  "name": "@jupyterlab/workspaces-extension",
-  "version": "4.4.2",
-  "description": "JupyterLab Extension providing UI for workspace management",
-  "homepage": "https://github.com/jupyterlab/jupyterlab",
-  "bugs": {
-    "url": "https://github.com/jupyterlab/jupyterlab/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/jupyterlab/jupyterlab.git"
-  },
-  "license": "BSD-3-Clause",
-  "author": "Project Jupyter",
-  "sideEffects": [
-    "style/**/*"
-  ],
-  "main": "lib/index.js",
-  "types": "lib/index.d.ts",
-  "style": "style/index.css",
-  "directories": {
-    "lib": "lib/"
-  },
-  "files": [
-    "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}",
-    "schema/*.json",
-    "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}",
-    "src/**/*.{ts,tsx}",
-    "style/index.js"
-  ],
-  "scripts": {
-    "build": "tsc -b",
-    "build:test": "tsc --build tsconfig.test.json",
-    "clean": "rimraf lib tsconfig.tsbuildinfo",
-    "watch": "tsc -b --watch"
-  },
-  "dependencies": {
-    "@jupyterlab/application": "^4.4.2",
-    "@jupyterlab/apputils": "^4.5.2",
-    "@jupyterlab/coreutils": "^6.4.2",
-    "@jupyterlab/filebrowser": "^4.4.2",
-    "@jupyterlab/running": "^4.4.2",
-    "@jupyterlab/services": "^7.4.2",
-    "@jupyterlab/settingregistry": "^4.4.2",
-    "@jupyterlab/statedb": "^4.4.2",
-    "@jupyterlab/translation": "^4.4.2",
-    "@jupyterlab/ui-components": "^4.4.2",
-    "@jupyterlab/workspaces": "^4.4.2",
-    "react": "^18.2.0"
-  },
-  "devDependencies": {
-    "@types/jest": "^29.2.0",
-    "rimraf": "~5.0.5",
-    "typescript": "~5.5.4"
-  },
-  "publishConfig": {
-    "access": "public"
-  },
-  "jupyterlab": {
-    "extension": true,
-    "schemaDir": "schema"
-  },
-  "styleModule": "style/index.js"
-}
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/100.1d14ca44a3cc8849349f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/100.1d14ca44a3cc8849349f.js
deleted file mode 100644
index 7327c9aab1dde6ac5776e477d4ee30e78383f8f0..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/100.1d14ca44a3cc8849349f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[100,5338,2957],{5338:(a,e,t)=>{var p;var r=t(86672);if(true){e.H=r.createRoot;p=r.hydrateRoot}else{var o}}}]);
\ No newline at end of file
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1039.3fe94e87219c0ed159d3.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1039.3fe94e87219c0ed159d3.js
deleted file mode 100644
index 043513c1490790717b8cd8ab809efa86bc785309..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1039.3fe94e87219c0ed159d3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1039],{71471:(t,e)=>{Object.defineProperty(e,"__esModule",{value:true});e.VERSION=void 0;e.VERSION="3.2.2"},29796:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var o=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.HandlerList=void 0;var i=r(82776);var a=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.register=function(t){return this.add(t,t.priority)};e.prototype.unregister=function(t){this.remove(t)};e.prototype.handlesDocument=function(t){var e,r;try{for(var n=o(this),i=n.next();!i.done;i=n.next()){var a=i.value;var u=a.item;if(u.handlesDocument(t)){return u}}}catch(s){e={error:s}}finally{try{if(i&&!i.done&&(r=n.return))r.call(n)}finally{if(e)throw e.error}}throw new Error("Can't find handler for document")};e.prototype.document=function(t,e){if(e===void 0){e=null}return this.handlesDocument(t).create(t,e)};return e}(i.PrioritizedList);e.HandlerList=a},81039:(t,e,r)=>{Object.defineProperty(e,"__esModule",{value:true});e.mathjax=void 0;var n=r(71471);var o=r(29796);var i=r(9841);e.mathjax={version:n.VERSION,handlers:new o.HandlerList,document:function(t,r){return e.mathjax.handlers.document(t,r)},handleRetriesFor:i.handleRetriesFor,retryAfter:i.retryAfter,asyncLoad:null}},82776:(t,e)=>{Object.defineProperty(e,"__esModule",{value:true});e.PrioritizedList=void 0;var r=function(){function t(){this.items=[];this.items=[]}t.prototype[Symbol.iterator]=function(){var t=0;var e=this.items;return{next:function(){return{value:e[t++],done:t>e.length}}}};t.prototype.add=function(e,r){if(r===void 0){r=t.DEFAULTPRIORITY}var n=this.items.length;do{n--}while(n>=0&&r=0&&this.items[e].item!==t);if(e>=0){this.items.splice(e,1)}};t.DEFAULTPRIORITY=5;return t}();e.PrioritizedList=r},9841:(t,e)=>{Object.defineProperty(e,"__esModule",{value:true});e.retryAfter=e.handleRetriesFor=void 0;function r(t){return new Promise((function e(r,n){try{r(t())}catch(o){if(o.retry&&o.retry instanceof Promise){o.retry.then((function(){return e(r,n)})).catch((function(t){return n(t)}))}else if(o.restart&&o.restart.isCallback){MathJax.Callback.After((function(){return e(r,n)}),o.restart)}else{n(o)}}}))}e.handleRetriesFor=r;function n(t){var e=new Error("MathJax retry");e.retry=t;throw e}e.retryAfter=n}}]);
\ No newline at end of file
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1096.dd4c563e0483cbbeb9c9.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1096.dd4c563e0483cbbeb9c9.js
deleted file mode 100644
index d3d3b3e40346ad30dbeab73be34f9ab667274a1d..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1096.dd4c563e0483cbbeb9c9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1096],{80815:(e,f,o)=>{o.d(f,{A:()=>H});var t=o(31601);var n=o.n(t);var a=o(76314);var r=o.n(a);var c=o(4417);var i=o.n(c);var b=new URL(o(16811),o.b);var s=new URL(o(92459),o.b);var l=new URL(o(14451),o.b);var d=new URL(o(84189),o.b);var m=new URL(o(17868),o.b);var p=new URL(o(45425),o.b);var h=new URL(o(73321),o.b);var u=new URL(o(17129),o.b);var g=new URL(o(2539),o.b);var w=new URL(o(27740),o.b);var y=new URL(o(3537),o.b);var v=new URL(o(63369),o.b);var x=new URL(o(21833),o.b);var F=new URL(o(60651),o.b);var k=new URL(o(37800),o.b);var _=r()(n());var A=i()(b);var T=i()(b,{hash:"?#iefix"});var q=i()(s);var I=i()(l);var z=i()(d);var B=i()(m,{hash:"#fontawesome"});var O=i()(p);var R=i()(p,{hash:"?#iefix"});var j=i()(h);var L=i()(u);var E=i()(g);var S=i()(w,{hash:"#fontawesome"});var C=i()(y);var N=i()(y,{hash:"?#iefix"});var U=i()(v);var D=i()(x);var M=i()(F);var X=i()(k,{hash:"#fontawesome"});_.push([e.id,'/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\\f26e"}.fa-accessible-icon:before{content:"\\f368"}.fa-accusoft:before{content:"\\f369"}.fa-acquisitions-incorporated:before{content:"\\f6af"}.fa-ad:before{content:"\\f641"}.fa-address-book:before{content:"\\f2b9"}.fa-address-card:before{content:"\\f2bb"}.fa-adjust:before{content:"\\f042"}.fa-adn:before{content:"\\f170"}.fa-adversal:before{content:"\\f36a"}.fa-affiliatetheme:before{content:"\\f36b"}.fa-air-freshener:before{content:"\\f5d0"}.fa-airbnb:before{content:"\\f834"}.fa-algolia:before{content:"\\f36c"}.fa-align-center:before{content:"\\f037"}.fa-align-justify:before{content:"\\f039"}.fa-align-left:before{content:"\\f036"}.fa-align-right:before{content:"\\f038"}.fa-alipay:before{content:"\\f642"}.fa-allergies:before{content:"\\f461"}.fa-amazon:before{content:"\\f270"}.fa-amazon-pay:before{content:"\\f42c"}.fa-ambulance:before{content:"\\f0f9"}.fa-american-sign-language-interpreting:before{content:"\\f2a3"}.fa-amilia:before{content:"\\f36d"}.fa-anchor:before{content:"\\f13d"}.fa-android:before{content:"\\f17b"}.fa-angellist:before{content:"\\f209"}.fa-angle-double-down:before{content:"\\f103"}.fa-angle-double-left:before{content:"\\f100"}.fa-angle-double-right:before{content:"\\f101"}.fa-angle-double-up:before{content:"\\f102"}.fa-angle-down:before{content:"\\f107"}.fa-angle-left:before{content:"\\f104"}.fa-angle-right:before{content:"\\f105"}.fa-angle-up:before{content:"\\f106"}.fa-angry:before{content:"\\f556"}.fa-angrycreative:before{content:"\\f36e"}.fa-angular:before{content:"\\f420"}.fa-ankh:before{content:"\\f644"}.fa-app-store:before{content:"\\f36f"}.fa-app-store-ios:before{content:"\\f370"}.fa-apper:before{content:"\\f371"}.fa-apple:before{content:"\\f179"}.fa-apple-alt:before{content:"\\f5d1"}.fa-apple-pay:before{content:"\\f415"}.fa-archive:before{content:"\\f187"}.fa-archway:before{content:"\\f557"}.fa-arrow-alt-circle-down:before{content:"\\f358"}.fa-arrow-alt-circle-left:before{content:"\\f359"}.fa-arrow-alt-circle-right:before{content:"\\f35a"}.fa-arrow-alt-circle-up:before{content:"\\f35b"}.fa-arrow-circle-down:before{content:"\\f0ab"}.fa-arrow-circle-left:before{content:"\\f0a8"}.fa-arrow-circle-right:before{content:"\\f0a9"}.fa-arrow-circle-up:before{content:"\\f0aa"}.fa-arrow-down:before{content:"\\f063"}.fa-arrow-left:before{content:"\\f060"}.fa-arrow-right:before{content:"\\f061"}.fa-arrow-up:before{content:"\\f062"}.fa-arrows-alt:before{content:"\\f0b2"}.fa-arrows-alt-h:before{content:"\\f337"}.fa-arrows-alt-v:before{content:"\\f338"}.fa-artstation:before{content:"\\f77a"}.fa-assistive-listening-systems:before{content:"\\f2a2"}.fa-asterisk:before{content:"\\f069"}.fa-asymmetrik:before{content:"\\f372"}.fa-at:before{content:"\\f1fa"}.fa-atlas:before{content:"\\f558"}.fa-atlassian:before{content:"\\f77b"}.fa-atom:before{content:"\\f5d2"}.fa-audible:before{content:"\\f373"}.fa-audio-description:before{content:"\\f29e"}.fa-autoprefixer:before{content:"\\f41c"}.fa-avianex:before{content:"\\f374"}.fa-aviato:before{content:"\\f421"}.fa-award:before{content:"\\f559"}.fa-aws:before{content:"\\f375"}.fa-baby:before{content:"\\f77c"}.fa-baby-carriage:before{content:"\\f77d"}.fa-backspace:before{content:"\\f55a"}.fa-backward:before{content:"\\f04a"}.fa-bacon:before{content:"\\f7e5"}.fa-bacteria:before{content:"\\e059"}.fa-bacterium:before{content:"\\e05a"}.fa-bahai:before{content:"\\f666"}.fa-balance-scale:before{content:"\\f24e"}.fa-balance-scale-left:before{content:"\\f515"}.fa-balance-scale-right:before{content:"\\f516"}.fa-ban:before{content:"\\f05e"}.fa-band-aid:before{content:"\\f462"}.fa-bandcamp:before{content:"\\f2d5"}.fa-barcode:before{content:"\\f02a"}.fa-bars:before{content:"\\f0c9"}.fa-baseball-ball:before{content:"\\f433"}.fa-basketball-ball:before{content:"\\f434"}.fa-bath:before{content:"\\f2cd"}.fa-battery-empty:before{content:"\\f244"}.fa-battery-full:before{content:"\\f240"}.fa-battery-half:before{content:"\\f242"}.fa-battery-quarter:before{content:"\\f243"}.fa-battery-three-quarters:before{content:"\\f241"}.fa-battle-net:before{content:"\\f835"}.fa-bed:before{content:"\\f236"}.fa-beer:before{content:"\\f0fc"}.fa-behance:before{content:"\\f1b4"}.fa-behance-square:before{content:"\\f1b5"}.fa-bell:before{content:"\\f0f3"}.fa-bell-slash:before{content:"\\f1f6"}.fa-bezier-curve:before{content:"\\f55b"}.fa-bible:before{content:"\\f647"}.fa-bicycle:before{content:"\\f206"}.fa-biking:before{content:"\\f84a"}.fa-bimobject:before{content:"\\f378"}.fa-binoculars:before{content:"\\f1e5"}.fa-biohazard:before{content:"\\f780"}.fa-birthday-cake:before{content:"\\f1fd"}.fa-bitbucket:before{content:"\\f171"}.fa-bitcoin:before{content:"\\f379"}.fa-bity:before{content:"\\f37a"}.fa-black-tie:before{content:"\\f27e"}.fa-blackberry:before{content:"\\f37b"}.fa-blender:before{content:"\\f517"}.fa-blender-phone:before{content:"\\f6b6"}.fa-blind:before{content:"\\f29d"}.fa-blog:before{content:"\\f781"}.fa-blogger:before{content:"\\f37c"}.fa-blogger-b:before{content:"\\f37d"}.fa-bluetooth:before{content:"\\f293"}.fa-bluetooth-b:before{content:"\\f294"}.fa-bold:before{content:"\\f032"}.fa-bolt:before{content:"\\f0e7"}.fa-bomb:before{content:"\\f1e2"}.fa-bone:before{content:"\\f5d7"}.fa-bong:before{content:"\\f55c"}.fa-book:before{content:"\\f02d"}.fa-book-dead:before{content:"\\f6b7"}.fa-book-medical:before{content:"\\f7e6"}.fa-book-open:before{content:"\\f518"}.fa-book-reader:before{content:"\\f5da"}.fa-bookmark:before{content:"\\f02e"}.fa-bootstrap:before{content:"\\f836"}.fa-border-all:before{content:"\\f84c"}.fa-border-none:before{content:"\\f850"}.fa-border-style:before{content:"\\f853"}.fa-bowling-ball:before{content:"\\f436"}.fa-box:before{content:"\\f466"}.fa-box-open:before{content:"\\f49e"}.fa-box-tissue:before{content:"\\e05b"}.fa-boxes:before{content:"\\f468"}.fa-braille:before{content:"\\f2a1"}.fa-brain:before{content:"\\f5dc"}.fa-bread-slice:before{content:"\\f7ec"}.fa-briefcase:before{content:"\\f0b1"}.fa-briefcase-medical:before{content:"\\f469"}.fa-broadcast-tower:before{content:"\\f519"}.fa-broom:before{content:"\\f51a"}.fa-brush:before{content:"\\f55d"}.fa-btc:before{content:"\\f15a"}.fa-buffer:before{content:"\\f837"}.fa-bug:before{content:"\\f188"}.fa-building:before{content:"\\f1ad"}.fa-bullhorn:before{content:"\\f0a1"}.fa-bullseye:before{content:"\\f140"}.fa-burn:before{content:"\\f46a"}.fa-buromobelexperte:before{content:"\\f37f"}.fa-bus:before{content:"\\f207"}.fa-bus-alt:before{content:"\\f55e"}.fa-business-time:before{content:"\\f64a"}.fa-buy-n-large:before{content:"\\f8a6"}.fa-buysellads:before{content:"\\f20d"}.fa-calculator:before{content:"\\f1ec"}.fa-calendar:before{content:"\\f133"}.fa-calendar-alt:before{content:"\\f073"}.fa-calendar-check:before{content:"\\f274"}.fa-calendar-day:before{content:"\\f783"}.fa-calendar-minus:before{content:"\\f272"}.fa-calendar-plus:before{content:"\\f271"}.fa-calendar-times:before{content:"\\f273"}.fa-calendar-week:before{content:"\\f784"}.fa-camera:before{content:"\\f030"}.fa-camera-retro:before{content:"\\f083"}.fa-campground:before{content:"\\f6bb"}.fa-canadian-maple-leaf:before{content:"\\f785"}.fa-candy-cane:before{content:"\\f786"}.fa-cannabis:before{content:"\\f55f"}.fa-capsules:before{content:"\\f46b"}.fa-car:before{content:"\\f1b9"}.fa-car-alt:before{content:"\\f5de"}.fa-car-battery:before{content:"\\f5df"}.fa-car-crash:before{content:"\\f5e1"}.fa-car-side:before{content:"\\f5e4"}.fa-caravan:before{content:"\\f8ff"}.fa-caret-down:before{content:"\\f0d7"}.fa-caret-left:before{content:"\\f0d9"}.fa-caret-right:before{content:"\\f0da"}.fa-caret-square-down:before{content:"\\f150"}.fa-caret-square-left:before{content:"\\f191"}.fa-caret-square-right:before{content:"\\f152"}.fa-caret-square-up:before{content:"\\f151"}.fa-caret-up:before{content:"\\f0d8"}.fa-carrot:before{content:"\\f787"}.fa-cart-arrow-down:before{content:"\\f218"}.fa-cart-plus:before{content:"\\f217"}.fa-cash-register:before{content:"\\f788"}.fa-cat:before{content:"\\f6be"}.fa-cc-amazon-pay:before{content:"\\f42d"}.fa-cc-amex:before{content:"\\f1f3"}.fa-cc-apple-pay:before{content:"\\f416"}.fa-cc-diners-club:before{content:"\\f24c"}.fa-cc-discover:before{content:"\\f1f2"}.fa-cc-jcb:before{content:"\\f24b"}.fa-cc-mastercard:before{content:"\\f1f1"}.fa-cc-paypal:before{content:"\\f1f4"}.fa-cc-stripe:before{content:"\\f1f5"}.fa-cc-visa:before{content:"\\f1f0"}.fa-centercode:before{content:"\\f380"}.fa-centos:before{content:"\\f789"}.fa-certificate:before{content:"\\f0a3"}.fa-chair:before{content:"\\f6c0"}.fa-chalkboard:before{content:"\\f51b"}.fa-chalkboard-teacher:before{content:"\\f51c"}.fa-charging-station:before{content:"\\f5e7"}.fa-chart-area:before{content:"\\f1fe"}.fa-chart-bar:before{content:"\\f080"}.fa-chart-line:before{content:"\\f201"}.fa-chart-pie:before{content:"\\f200"}.fa-check:before{content:"\\f00c"}.fa-check-circle:before{content:"\\f058"}.fa-check-double:before{content:"\\f560"}.fa-check-square:before{content:"\\f14a"}.fa-cheese:before{content:"\\f7ef"}.fa-chess:before{content:"\\f439"}.fa-chess-bishop:before{content:"\\f43a"}.fa-chess-board:before{content:"\\f43c"}.fa-chess-king:before{content:"\\f43f"}.fa-chess-knight:before{content:"\\f441"}.fa-chess-pawn:before{content:"\\f443"}.fa-chess-queen:before{content:"\\f445"}.fa-chess-rook:before{content:"\\f447"}.fa-chevron-circle-down:before{content:"\\f13a"}.fa-chevron-circle-left:before{content:"\\f137"}.fa-chevron-circle-right:before{content:"\\f138"}.fa-chevron-circle-up:before{content:"\\f139"}.fa-chevron-down:before{content:"\\f078"}.fa-chevron-left:before{content:"\\f053"}.fa-chevron-right:before{content:"\\f054"}.fa-chevron-up:before{content:"\\f077"}.fa-child:before{content:"\\f1ae"}.fa-chrome:before{content:"\\f268"}.fa-chromecast:before{content:"\\f838"}.fa-church:before{content:"\\f51d"}.fa-circle:before{content:"\\f111"}.fa-circle-notch:before{content:"\\f1ce"}.fa-city:before{content:"\\f64f"}.fa-clinic-medical:before{content:"\\f7f2"}.fa-clipboard:before{content:"\\f328"}.fa-clipboard-check:before{content:"\\f46c"}.fa-clipboard-list:before{content:"\\f46d"}.fa-clock:before{content:"\\f017"}.fa-clone:before{content:"\\f24d"}.fa-closed-captioning:before{content:"\\f20a"}.fa-cloud:before{content:"\\f0c2"}.fa-cloud-download-alt:before{content:"\\f381"}.fa-cloud-meatball:before{content:"\\f73b"}.fa-cloud-moon:before{content:"\\f6c3"}.fa-cloud-moon-rain:before{content:"\\f73c"}.fa-cloud-rain:before{content:"\\f73d"}.fa-cloud-showers-heavy:before{content:"\\f740"}.fa-cloud-sun:before{content:"\\f6c4"}.fa-cloud-sun-rain:before{content:"\\f743"}.fa-cloud-upload-alt:before{content:"\\f382"}.fa-cloudflare:before{content:"\\e07d"}.fa-cloudscale:before{content:"\\f383"}.fa-cloudsmith:before{content:"\\f384"}.fa-cloudversify:before{content:"\\f385"}.fa-cocktail:before{content:"\\f561"}.fa-code:before{content:"\\f121"}.fa-code-branch:before{content:"\\f126"}.fa-codepen:before{content:"\\f1cb"}.fa-codiepie:before{content:"\\f284"}.fa-coffee:before{content:"\\f0f4"}.fa-cog:before{content:"\\f013"}.fa-cogs:before{content:"\\f085"}.fa-coins:before{content:"\\f51e"}.fa-columns:before{content:"\\f0db"}.fa-comment:before{content:"\\f075"}.fa-comment-alt:before{content:"\\f27a"}.fa-comment-dollar:before{content:"\\f651"}.fa-comment-dots:before{content:"\\f4ad"}.fa-comment-medical:before{content:"\\f7f5"}.fa-comment-slash:before{content:"\\f4b3"}.fa-comments:before{content:"\\f086"}.fa-comments-dollar:before{content:"\\f653"}.fa-compact-disc:before{content:"\\f51f"}.fa-compass:before{content:"\\f14e"}.fa-compress:before{content:"\\f066"}.fa-compress-alt:before{content:"\\f422"}.fa-compress-arrows-alt:before{content:"\\f78c"}.fa-concierge-bell:before{content:"\\f562"}.fa-confluence:before{content:"\\f78d"}.fa-connectdevelop:before{content:"\\f20e"}.fa-contao:before{content:"\\f26d"}.fa-cookie:before{content:"\\f563"}.fa-cookie-bite:before{content:"\\f564"}.fa-copy:before{content:"\\f0c5"}.fa-copyright:before{content:"\\f1f9"}.fa-cotton-bureau:before{content:"\\f89e"}.fa-couch:before{content:"\\f4b8"}.fa-cpanel:before{content:"\\f388"}.fa-creative-commons:before{content:"\\f25e"}.fa-creative-commons-by:before{content:"\\f4e7"}.fa-creative-commons-nc:before{content:"\\f4e8"}.fa-creative-commons-nc-eu:before{content:"\\f4e9"}.fa-creative-commons-nc-jp:before{content:"\\f4ea"}.fa-creative-commons-nd:before{content:"\\f4eb"}.fa-creative-commons-pd:before{content:"\\f4ec"}.fa-creative-commons-pd-alt:before{content:"\\f4ed"}.fa-creative-commons-remix:before{content:"\\f4ee"}.fa-creative-commons-sa:before{content:"\\f4ef"}.fa-creative-commons-sampling:before{content:"\\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\\f4f1"}.fa-creative-commons-share:before{content:"\\f4f2"}.fa-creative-commons-zero:before{content:"\\f4f3"}.fa-credit-card:before{content:"\\f09d"}.fa-critical-role:before{content:"\\f6c9"}.fa-crop:before{content:"\\f125"}.fa-crop-alt:before{content:"\\f565"}.fa-cross:before{content:"\\f654"}.fa-crosshairs:before{content:"\\f05b"}.fa-crow:before{content:"\\f520"}.fa-crown:before{content:"\\f521"}.fa-crutch:before{content:"\\f7f7"}.fa-css3:before{content:"\\f13c"}.fa-css3-alt:before{content:"\\f38b"}.fa-cube:before{content:"\\f1b2"}.fa-cubes:before{content:"\\f1b3"}.fa-cut:before{content:"\\f0c4"}.fa-cuttlefish:before{content:"\\f38c"}.fa-d-and-d:before{content:"\\f38d"}.fa-d-and-d-beyond:before{content:"\\f6ca"}.fa-dailymotion:before{content:"\\e052"}.fa-dashcube:before{content:"\\f210"}.fa-database:before{content:"\\f1c0"}.fa-deaf:before{content:"\\f2a4"}.fa-deezer:before{content:"\\e077"}.fa-delicious:before{content:"\\f1a5"}.fa-democrat:before{content:"\\f747"}.fa-deploydog:before{content:"\\f38e"}.fa-deskpro:before{content:"\\f38f"}.fa-desktop:before{content:"\\f108"}.fa-dev:before{content:"\\f6cc"}.fa-deviantart:before{content:"\\f1bd"}.fa-dharmachakra:before{content:"\\f655"}.fa-dhl:before{content:"\\f790"}.fa-diagnoses:before{content:"\\f470"}.fa-diaspora:before{content:"\\f791"}.fa-dice:before{content:"\\f522"}.fa-dice-d20:before{content:"\\f6cf"}.fa-dice-d6:before{content:"\\f6d1"}.fa-dice-five:before{content:"\\f523"}.fa-dice-four:before{content:"\\f524"}.fa-dice-one:before{content:"\\f525"}.fa-dice-six:before{content:"\\f526"}.fa-dice-three:before{content:"\\f527"}.fa-dice-two:before{content:"\\f528"}.fa-digg:before{content:"\\f1a6"}.fa-digital-ocean:before{content:"\\f391"}.fa-digital-tachograph:before{content:"\\f566"}.fa-directions:before{content:"\\f5eb"}.fa-discord:before{content:"\\f392"}.fa-discourse:before{content:"\\f393"}.fa-disease:before{content:"\\f7fa"}.fa-divide:before{content:"\\f529"}.fa-dizzy:before{content:"\\f567"}.fa-dna:before{content:"\\f471"}.fa-dochub:before{content:"\\f394"}.fa-docker:before{content:"\\f395"}.fa-dog:before{content:"\\f6d3"}.fa-dollar-sign:before{content:"\\f155"}.fa-dolly:before{content:"\\f472"}.fa-dolly-flatbed:before{content:"\\f474"}.fa-donate:before{content:"\\f4b9"}.fa-door-closed:before{content:"\\f52a"}.fa-door-open:before{content:"\\f52b"}.fa-dot-circle:before{content:"\\f192"}.fa-dove:before{content:"\\f4ba"}.fa-download:before{content:"\\f019"}.fa-draft2digital:before{content:"\\f396"}.fa-drafting-compass:before{content:"\\f568"}.fa-dragon:before{content:"\\f6d5"}.fa-draw-polygon:before{content:"\\f5ee"}.fa-dribbble:before{content:"\\f17d"}.fa-dribbble-square:before{content:"\\f397"}.fa-dropbox:before{content:"\\f16b"}.fa-drum:before{content:"\\f569"}.fa-drum-steelpan:before{content:"\\f56a"}.fa-drumstick-bite:before{content:"\\f6d7"}.fa-drupal:before{content:"\\f1a9"}.fa-dumbbell:before{content:"\\f44b"}.fa-dumpster:before{content:"\\f793"}.fa-dumpster-fire:before{content:"\\f794"}.fa-dungeon:before{content:"\\f6d9"}.fa-dyalog:before{content:"\\f399"}.fa-earlybirds:before{content:"\\f39a"}.fa-ebay:before{content:"\\f4f4"}.fa-edge:before{content:"\\f282"}.fa-edge-legacy:before{content:"\\e078"}.fa-edit:before{content:"\\f044"}.fa-egg:before{content:"\\f7fb"}.fa-eject:before{content:"\\f052"}.fa-elementor:before{content:"\\f430"}.fa-ellipsis-h:before{content:"\\f141"}.fa-ellipsis-v:before{content:"\\f142"}.fa-ello:before{content:"\\f5f1"}.fa-ember:before{content:"\\f423"}.fa-empire:before{content:"\\f1d1"}.fa-envelope:before{content:"\\f0e0"}.fa-envelope-open:before{content:"\\f2b6"}.fa-envelope-open-text:before{content:"\\f658"}.fa-envelope-square:before{content:"\\f199"}.fa-envira:before{content:"\\f299"}.fa-equals:before{content:"\\f52c"}.fa-eraser:before{content:"\\f12d"}.fa-erlang:before{content:"\\f39d"}.fa-ethereum:before{content:"\\f42e"}.fa-ethernet:before{content:"\\f796"}.fa-etsy:before{content:"\\f2d7"}.fa-euro-sign:before{content:"\\f153"}.fa-evernote:before{content:"\\f839"}.fa-exchange-alt:before{content:"\\f362"}.fa-exclamation:before{content:"\\f12a"}.fa-exclamation-circle:before{content:"\\f06a"}.fa-exclamation-triangle:before{content:"\\f071"}.fa-expand:before{content:"\\f065"}.fa-expand-alt:before{content:"\\f424"}.fa-expand-arrows-alt:before{content:"\\f31e"}.fa-expeditedssl:before{content:"\\f23e"}.fa-external-link-alt:before{content:"\\f35d"}.fa-external-link-square-alt:before{content:"\\f360"}.fa-eye:before{content:"\\f06e"}.fa-eye-dropper:before{content:"\\f1fb"}.fa-eye-slash:before{content:"\\f070"}.fa-facebook:before{content:"\\f09a"}.fa-facebook-f:before{content:"\\f39e"}.fa-facebook-messenger:before{content:"\\f39f"}.fa-facebook-square:before{content:"\\f082"}.fa-fan:before{content:"\\f863"}.fa-fantasy-flight-games:before{content:"\\f6dc"}.fa-fast-backward:before{content:"\\f049"}.fa-fast-forward:before{content:"\\f050"}.fa-faucet:before{content:"\\e005"}.fa-fax:before{content:"\\f1ac"}.fa-feather:before{content:"\\f52d"}.fa-feather-alt:before{content:"\\f56b"}.fa-fedex:before{content:"\\f797"}.fa-fedora:before{content:"\\f798"}.fa-female:before{content:"\\f182"}.fa-fighter-jet:before{content:"\\f0fb"}.fa-figma:before{content:"\\f799"}.fa-file:before{content:"\\f15b"}.fa-file-alt:before{content:"\\f15c"}.fa-file-archive:before{content:"\\f1c6"}.fa-file-audio:before{content:"\\f1c7"}.fa-file-code:before{content:"\\f1c9"}.fa-file-contract:before{content:"\\f56c"}.fa-file-csv:before{content:"\\f6dd"}.fa-file-download:before{content:"\\f56d"}.fa-file-excel:before{content:"\\f1c3"}.fa-file-export:before{content:"\\f56e"}.fa-file-image:before{content:"\\f1c5"}.fa-file-import:before{content:"\\f56f"}.fa-file-invoice:before{content:"\\f570"}.fa-file-invoice-dollar:before{content:"\\f571"}.fa-file-medical:before{content:"\\f477"}.fa-file-medical-alt:before{content:"\\f478"}.fa-file-pdf:before{content:"\\f1c1"}.fa-file-powerpoint:before{content:"\\f1c4"}.fa-file-prescription:before{content:"\\f572"}.fa-file-signature:before{content:"\\f573"}.fa-file-upload:before{content:"\\f574"}.fa-file-video:before{content:"\\f1c8"}.fa-file-word:before{content:"\\f1c2"}.fa-fill:before{content:"\\f575"}.fa-fill-drip:before{content:"\\f576"}.fa-film:before{content:"\\f008"}.fa-filter:before{content:"\\f0b0"}.fa-fingerprint:before{content:"\\f577"}.fa-fire:before{content:"\\f06d"}.fa-fire-alt:before{content:"\\f7e4"}.fa-fire-extinguisher:before{content:"\\f134"}.fa-firefox:before{content:"\\f269"}.fa-firefox-browser:before{content:"\\e007"}.fa-first-aid:before{content:"\\f479"}.fa-first-order:before{content:"\\f2b0"}.fa-first-order-alt:before{content:"\\f50a"}.fa-firstdraft:before{content:"\\f3a1"}.fa-fish:before{content:"\\f578"}.fa-fist-raised:before{content:"\\f6de"}.fa-flag:before{content:"\\f024"}.fa-flag-checkered:before{content:"\\f11e"}.fa-flag-usa:before{content:"\\f74d"}.fa-flask:before{content:"\\f0c3"}.fa-flickr:before{content:"\\f16e"}.fa-flipboard:before{content:"\\f44d"}.fa-flushed:before{content:"\\f579"}.fa-fly:before{content:"\\f417"}.fa-folder:before{content:"\\f07b"}.fa-folder-minus:before{content:"\\f65d"}.fa-folder-open:before{content:"\\f07c"}.fa-folder-plus:before{content:"\\f65e"}.fa-font:before{content:"\\f031"}.fa-font-awesome:before{content:"\\f2b4"}.fa-font-awesome-alt:before{content:"\\f35c"}.fa-font-awesome-flag:before{content:"\\f425"}.fa-font-awesome-logo-full:before{content:"\\f4e6"}.fa-fonticons:before{content:"\\f280"}.fa-fonticons-fi:before{content:"\\f3a2"}.fa-football-ball:before{content:"\\f44e"}.fa-fort-awesome:before{content:"\\f286"}.fa-fort-awesome-alt:before{content:"\\f3a3"}.fa-forumbee:before{content:"\\f211"}.fa-forward:before{content:"\\f04e"}.fa-foursquare:before{content:"\\f180"}.fa-free-code-camp:before{content:"\\f2c5"}.fa-freebsd:before{content:"\\f3a4"}.fa-frog:before{content:"\\f52e"}.fa-frown:before{content:"\\f119"}.fa-frown-open:before{content:"\\f57a"}.fa-fulcrum:before{content:"\\f50b"}.fa-funnel-dollar:before{content:"\\f662"}.fa-futbol:before{content:"\\f1e3"}.fa-galactic-republic:before{content:"\\f50c"}.fa-galactic-senate:before{content:"\\f50d"}.fa-gamepad:before{content:"\\f11b"}.fa-gas-pump:before{content:"\\f52f"}.fa-gavel:before{content:"\\f0e3"}.fa-gem:before{content:"\\f3a5"}.fa-genderless:before{content:"\\f22d"}.fa-get-pocket:before{content:"\\f265"}.fa-gg:before{content:"\\f260"}.fa-gg-circle:before{content:"\\f261"}.fa-ghost:before{content:"\\f6e2"}.fa-gift:before{content:"\\f06b"}.fa-gifts:before{content:"\\f79c"}.fa-git:before{content:"\\f1d3"}.fa-git-alt:before{content:"\\f841"}.fa-git-square:before{content:"\\f1d2"}.fa-github:before{content:"\\f09b"}.fa-github-alt:before{content:"\\f113"}.fa-github-square:before{content:"\\f092"}.fa-gitkraken:before{content:"\\f3a6"}.fa-gitlab:before{content:"\\f296"}.fa-gitter:before{content:"\\f426"}.fa-glass-cheers:before{content:"\\f79f"}.fa-glass-martini:before{content:"\\f000"}.fa-glass-martini-alt:before{content:"\\f57b"}.fa-glass-whiskey:before{content:"\\f7a0"}.fa-glasses:before{content:"\\f530"}.fa-glide:before{content:"\\f2a5"}.fa-glide-g:before{content:"\\f2a6"}.fa-globe:before{content:"\\f0ac"}.fa-globe-africa:before{content:"\\f57c"}.fa-globe-americas:before{content:"\\f57d"}.fa-globe-asia:before{content:"\\f57e"}.fa-globe-europe:before{content:"\\f7a2"}.fa-gofore:before{content:"\\f3a7"}.fa-golf-ball:before{content:"\\f450"}.fa-goodreads:before{content:"\\f3a8"}.fa-goodreads-g:before{content:"\\f3a9"}.fa-google:before{content:"\\f1a0"}.fa-google-drive:before{content:"\\f3aa"}.fa-google-pay:before{content:"\\e079"}.fa-google-play:before{content:"\\f3ab"}.fa-google-plus:before{content:"\\f2b3"}.fa-google-plus-g:before{content:"\\f0d5"}.fa-google-plus-square:before{content:"\\f0d4"}.fa-google-wallet:before{content:"\\f1ee"}.fa-gopuram:before{content:"\\f664"}.fa-graduation-cap:before{content:"\\f19d"}.fa-gratipay:before{content:"\\f184"}.fa-grav:before{content:"\\f2d6"}.fa-greater-than:before{content:"\\f531"}.fa-greater-than-equal:before{content:"\\f532"}.fa-grimace:before{content:"\\f57f"}.fa-grin:before{content:"\\f580"}.fa-grin-alt:before{content:"\\f581"}.fa-grin-beam:before{content:"\\f582"}.fa-grin-beam-sweat:before{content:"\\f583"}.fa-grin-hearts:before{content:"\\f584"}.fa-grin-squint:before{content:"\\f585"}.fa-grin-squint-tears:before{content:"\\f586"}.fa-grin-stars:before{content:"\\f587"}.fa-grin-tears:before{content:"\\f588"}.fa-grin-tongue:before{content:"\\f589"}.fa-grin-tongue-squint:before{content:"\\f58a"}.fa-grin-tongue-wink:before{content:"\\f58b"}.fa-grin-wink:before{content:"\\f58c"}.fa-grip-horizontal:before{content:"\\f58d"}.fa-grip-lines:before{content:"\\f7a4"}.fa-grip-lines-vertical:before{content:"\\f7a5"}.fa-grip-vertical:before{content:"\\f58e"}.fa-gripfire:before{content:"\\f3ac"}.fa-grunt:before{content:"\\f3ad"}.fa-guilded:before{content:"\\e07e"}.fa-guitar:before{content:"\\f7a6"}.fa-gulp:before{content:"\\f3ae"}.fa-h-square:before{content:"\\f0fd"}.fa-hacker-news:before{content:"\\f1d4"}.fa-hacker-news-square:before{content:"\\f3af"}.fa-hackerrank:before{content:"\\f5f7"}.fa-hamburger:before{content:"\\f805"}.fa-hammer:before{content:"\\f6e3"}.fa-hamsa:before{content:"\\f665"}.fa-hand-holding:before{content:"\\f4bd"}.fa-hand-holding-heart:before{content:"\\f4be"}.fa-hand-holding-medical:before{content:"\\e05c"}.fa-hand-holding-usd:before{content:"\\f4c0"}.fa-hand-holding-water:before{content:"\\f4c1"}.fa-hand-lizard:before{content:"\\f258"}.fa-hand-middle-finger:before{content:"\\f806"}.fa-hand-paper:before{content:"\\f256"}.fa-hand-peace:before{content:"\\f25b"}.fa-hand-point-down:before{content:"\\f0a7"}.fa-hand-point-left:before{content:"\\f0a5"}.fa-hand-point-right:before{content:"\\f0a4"}.fa-hand-point-up:before{content:"\\f0a6"}.fa-hand-pointer:before{content:"\\f25a"}.fa-hand-rock:before{content:"\\f255"}.fa-hand-scissors:before{content:"\\f257"}.fa-hand-sparkles:before{content:"\\e05d"}.fa-hand-spock:before{content:"\\f259"}.fa-hands:before{content:"\\f4c2"}.fa-hands-helping:before{content:"\\f4c4"}.fa-hands-wash:before{content:"\\e05e"}.fa-handshake:before{content:"\\f2b5"}.fa-handshake-alt-slash:before{content:"\\e05f"}.fa-handshake-slash:before{content:"\\e060"}.fa-hanukiah:before{content:"\\f6e6"}.fa-hard-hat:before{content:"\\f807"}.fa-hashtag:before{content:"\\f292"}.fa-hat-cowboy:before{content:"\\f8c0"}.fa-hat-cowboy-side:before{content:"\\f8c1"}.fa-hat-wizard:before{content:"\\f6e8"}.fa-hdd:before{content:"\\f0a0"}.fa-head-side-cough:before{content:"\\e061"}.fa-head-side-cough-slash:before{content:"\\e062"}.fa-head-side-mask:before{content:"\\e063"}.fa-head-side-virus:before{content:"\\e064"}.fa-heading:before{content:"\\f1dc"}.fa-headphones:before{content:"\\f025"}.fa-headphones-alt:before{content:"\\f58f"}.fa-headset:before{content:"\\f590"}.fa-heart:before{content:"\\f004"}.fa-heart-broken:before{content:"\\f7a9"}.fa-heartbeat:before{content:"\\f21e"}.fa-helicopter:before{content:"\\f533"}.fa-highlighter:before{content:"\\f591"}.fa-hiking:before{content:"\\f6ec"}.fa-hippo:before{content:"\\f6ed"}.fa-hips:before{content:"\\f452"}.fa-hire-a-helper:before{content:"\\f3b0"}.fa-history:before{content:"\\f1da"}.fa-hive:before{content:"\\e07f"}.fa-hockey-puck:before{content:"\\f453"}.fa-holly-berry:before{content:"\\f7aa"}.fa-home:before{content:"\\f015"}.fa-hooli:before{content:"\\f427"}.fa-hornbill:before{content:"\\f592"}.fa-horse:before{content:"\\f6f0"}.fa-horse-head:before{content:"\\f7ab"}.fa-hospital:before{content:"\\f0f8"}.fa-hospital-alt:before{content:"\\f47d"}.fa-hospital-symbol:before{content:"\\f47e"}.fa-hospital-user:before{content:"\\f80d"}.fa-hot-tub:before{content:"\\f593"}.fa-hotdog:before{content:"\\f80f"}.fa-hotel:before{content:"\\f594"}.fa-hotjar:before{content:"\\f3b1"}.fa-hourglass:before{content:"\\f254"}.fa-hourglass-end:before{content:"\\f253"}.fa-hourglass-half:before{content:"\\f252"}.fa-hourglass-start:before{content:"\\f251"}.fa-house-damage:before{content:"\\f6f1"}.fa-house-user:before{content:"\\e065"}.fa-houzz:before{content:"\\f27c"}.fa-hryvnia:before{content:"\\f6f2"}.fa-html5:before{content:"\\f13b"}.fa-hubspot:before{content:"\\f3b2"}.fa-i-cursor:before{content:"\\f246"}.fa-ice-cream:before{content:"\\f810"}.fa-icicles:before{content:"\\f7ad"}.fa-icons:before{content:"\\f86d"}.fa-id-badge:before{content:"\\f2c1"}.fa-id-card:before{content:"\\f2c2"}.fa-id-card-alt:before{content:"\\f47f"}.fa-ideal:before{content:"\\e013"}.fa-igloo:before{content:"\\f7ae"}.fa-image:before{content:"\\f03e"}.fa-images:before{content:"\\f302"}.fa-imdb:before{content:"\\f2d8"}.fa-inbox:before{content:"\\f01c"}.fa-indent:before{content:"\\f03c"}.fa-industry:before{content:"\\f275"}.fa-infinity:before{content:"\\f534"}.fa-info:before{content:"\\f129"}.fa-info-circle:before{content:"\\f05a"}.fa-innosoft:before{content:"\\e080"}.fa-instagram:before{content:"\\f16d"}.fa-instagram-square:before{content:"\\e055"}.fa-instalod:before{content:"\\e081"}.fa-intercom:before{content:"\\f7af"}.fa-internet-explorer:before{content:"\\f26b"}.fa-invision:before{content:"\\f7b0"}.fa-ioxhost:before{content:"\\f208"}.fa-italic:before{content:"\\f033"}.fa-itch-io:before{content:"\\f83a"}.fa-itunes:before{content:"\\f3b4"}.fa-itunes-note:before{content:"\\f3b5"}.fa-java:before{content:"\\f4e4"}.fa-jedi:before{content:"\\f669"}.fa-jedi-order:before{content:"\\f50e"}.fa-jenkins:before{content:"\\f3b6"}.fa-jira:before{content:"\\f7b1"}.fa-joget:before{content:"\\f3b7"}.fa-joint:before{content:"\\f595"}.fa-joomla:before{content:"\\f1aa"}.fa-journal-whills:before{content:"\\f66a"}.fa-js:before{content:"\\f3b8"}.fa-js-square:before{content:"\\f3b9"}.fa-jsfiddle:before{content:"\\f1cc"}.fa-kaaba:before{content:"\\f66b"}.fa-kaggle:before{content:"\\f5fa"}.fa-key:before{content:"\\f084"}.fa-keybase:before{content:"\\f4f5"}.fa-keyboard:before{content:"\\f11c"}.fa-keycdn:before{content:"\\f3ba"}.fa-khanda:before{content:"\\f66d"}.fa-kickstarter:before{content:"\\f3bb"}.fa-kickstarter-k:before{content:"\\f3bc"}.fa-kiss:before{content:"\\f596"}.fa-kiss-beam:before{content:"\\f597"}.fa-kiss-wink-heart:before{content:"\\f598"}.fa-kiwi-bird:before{content:"\\f535"}.fa-korvue:before{content:"\\f42f"}.fa-landmark:before{content:"\\f66f"}.fa-language:before{content:"\\f1ab"}.fa-laptop:before{content:"\\f109"}.fa-laptop-code:before{content:"\\f5fc"}.fa-laptop-house:before{content:"\\e066"}.fa-laptop-medical:before{content:"\\f812"}.fa-laravel:before{content:"\\f3bd"}.fa-lastfm:before{content:"\\f202"}.fa-lastfm-square:before{content:"\\f203"}.fa-laugh:before{content:"\\f599"}.fa-laugh-beam:before{content:"\\f59a"}.fa-laugh-squint:before{content:"\\f59b"}.fa-laugh-wink:before{content:"\\f59c"}.fa-layer-group:before{content:"\\f5fd"}.fa-leaf:before{content:"\\f06c"}.fa-leanpub:before{content:"\\f212"}.fa-lemon:before{content:"\\f094"}.fa-less:before{content:"\\f41d"}.fa-less-than:before{content:"\\f536"}.fa-less-than-equal:before{content:"\\f537"}.fa-level-down-alt:before{content:"\\f3be"}.fa-level-up-alt:before{content:"\\f3bf"}.fa-life-ring:before{content:"\\f1cd"}.fa-lightbulb:before{content:"\\f0eb"}.fa-line:before{content:"\\f3c0"}.fa-link:before{content:"\\f0c1"}.fa-linkedin:before{content:"\\f08c"}.fa-linkedin-in:before{content:"\\f0e1"}.fa-linode:before{content:"\\f2b8"}.fa-linux:before{content:"\\f17c"}.fa-lira-sign:before{content:"\\f195"}.fa-list:before{content:"\\f03a"}.fa-list-alt:before{content:"\\f022"}.fa-list-ol:before{content:"\\f0cb"}.fa-list-ul:before{content:"\\f0ca"}.fa-location-arrow:before{content:"\\f124"}.fa-lock:before{content:"\\f023"}.fa-lock-open:before{content:"\\f3c1"}.fa-long-arrow-alt-down:before{content:"\\f309"}.fa-long-arrow-alt-left:before{content:"\\f30a"}.fa-long-arrow-alt-right:before{content:"\\f30b"}.fa-long-arrow-alt-up:before{content:"\\f30c"}.fa-low-vision:before{content:"\\f2a8"}.fa-luggage-cart:before{content:"\\f59d"}.fa-lungs:before{content:"\\f604"}.fa-lungs-virus:before{content:"\\e067"}.fa-lyft:before{content:"\\f3c3"}.fa-magento:before{content:"\\f3c4"}.fa-magic:before{content:"\\f0d0"}.fa-magnet:before{content:"\\f076"}.fa-mail-bulk:before{content:"\\f674"}.fa-mailchimp:before{content:"\\f59e"}.fa-male:before{content:"\\f183"}.fa-mandalorian:before{content:"\\f50f"}.fa-map:before{content:"\\f279"}.fa-map-marked:before{content:"\\f59f"}.fa-map-marked-alt:before{content:"\\f5a0"}.fa-map-marker:before{content:"\\f041"}.fa-map-marker-alt:before{content:"\\f3c5"}.fa-map-pin:before{content:"\\f276"}.fa-map-signs:before{content:"\\f277"}.fa-markdown:before{content:"\\f60f"}.fa-marker:before{content:"\\f5a1"}.fa-mars:before{content:"\\f222"}.fa-mars-double:before{content:"\\f227"}.fa-mars-stroke:before{content:"\\f229"}.fa-mars-stroke-h:before{content:"\\f22b"}.fa-mars-stroke-v:before{content:"\\f22a"}.fa-mask:before{content:"\\f6fa"}.fa-mastodon:before{content:"\\f4f6"}.fa-maxcdn:before{content:"\\f136"}.fa-mdb:before{content:"\\f8ca"}.fa-medal:before{content:"\\f5a2"}.fa-medapps:before{content:"\\f3c6"}.fa-medium:before{content:"\\f23a"}.fa-medium-m:before{content:"\\f3c7"}.fa-medkit:before{content:"\\f0fa"}.fa-medrt:before{content:"\\f3c8"}.fa-meetup:before{content:"\\f2e0"}.fa-megaport:before{content:"\\f5a3"}.fa-meh:before{content:"\\f11a"}.fa-meh-blank:before{content:"\\f5a4"}.fa-meh-rolling-eyes:before{content:"\\f5a5"}.fa-memory:before{content:"\\f538"}.fa-mendeley:before{content:"\\f7b3"}.fa-menorah:before{content:"\\f676"}.fa-mercury:before{content:"\\f223"}.fa-meteor:before{content:"\\f753"}.fa-microblog:before{content:"\\e01a"}.fa-microchip:before{content:"\\f2db"}.fa-microphone:before{content:"\\f130"}.fa-microphone-alt:before{content:"\\f3c9"}.fa-microphone-alt-slash:before{content:"\\f539"}.fa-microphone-slash:before{content:"\\f131"}.fa-microscope:before{content:"\\f610"}.fa-microsoft:before{content:"\\f3ca"}.fa-minus:before{content:"\\f068"}.fa-minus-circle:before{content:"\\f056"}.fa-minus-square:before{content:"\\f146"}.fa-mitten:before{content:"\\f7b5"}.fa-mix:before{content:"\\f3cb"}.fa-mixcloud:before{content:"\\f289"}.fa-mixer:before{content:"\\e056"}.fa-mizuni:before{content:"\\f3cc"}.fa-mobile:before{content:"\\f10b"}.fa-mobile-alt:before{content:"\\f3cd"}.fa-modx:before{content:"\\f285"}.fa-monero:before{content:"\\f3d0"}.fa-money-bill:before{content:"\\f0d6"}.fa-money-bill-alt:before{content:"\\f3d1"}.fa-money-bill-wave:before{content:"\\f53a"}.fa-money-bill-wave-alt:before{content:"\\f53b"}.fa-money-check:before{content:"\\f53c"}.fa-money-check-alt:before{content:"\\f53d"}.fa-monument:before{content:"\\f5a6"}.fa-moon:before{content:"\\f186"}.fa-mortar-pestle:before{content:"\\f5a7"}.fa-mosque:before{content:"\\f678"}.fa-motorcycle:before{content:"\\f21c"}.fa-mountain:before{content:"\\f6fc"}.fa-mouse:before{content:"\\f8cc"}.fa-mouse-pointer:before{content:"\\f245"}.fa-mug-hot:before{content:"\\f7b6"}.fa-music:before{content:"\\f001"}.fa-napster:before{content:"\\f3d2"}.fa-neos:before{content:"\\f612"}.fa-network-wired:before{content:"\\f6ff"}.fa-neuter:before{content:"\\f22c"}.fa-newspaper:before{content:"\\f1ea"}.fa-nimblr:before{content:"\\f5a8"}.fa-node:before{content:"\\f419"}.fa-node-js:before{content:"\\f3d3"}.fa-not-equal:before{content:"\\f53e"}.fa-notes-medical:before{content:"\\f481"}.fa-npm:before{content:"\\f3d4"}.fa-ns8:before{content:"\\f3d5"}.fa-nutritionix:before{content:"\\f3d6"}.fa-object-group:before{content:"\\f247"}.fa-object-ungroup:before{content:"\\f248"}.fa-octopus-deploy:before{content:"\\e082"}.fa-odnoklassniki:before{content:"\\f263"}.fa-odnoklassniki-square:before{content:"\\f264"}.fa-oil-can:before{content:"\\f613"}.fa-old-republic:before{content:"\\f510"}.fa-om:before{content:"\\f679"}.fa-opencart:before{content:"\\f23d"}.fa-openid:before{content:"\\f19b"}.fa-opera:before{content:"\\f26a"}.fa-optin-monster:before{content:"\\f23c"}.fa-orcid:before{content:"\\f8d2"}.fa-osi:before{content:"\\f41a"}.fa-otter:before{content:"\\f700"}.fa-outdent:before{content:"\\f03b"}.fa-page4:before{content:"\\f3d7"}.fa-pagelines:before{content:"\\f18c"}.fa-pager:before{content:"\\f815"}.fa-paint-brush:before{content:"\\f1fc"}.fa-paint-roller:before{content:"\\f5aa"}.fa-palette:before{content:"\\f53f"}.fa-palfed:before{content:"\\f3d8"}.fa-pallet:before{content:"\\f482"}.fa-paper-plane:before{content:"\\f1d8"}.fa-paperclip:before{content:"\\f0c6"}.fa-parachute-box:before{content:"\\f4cd"}.fa-paragraph:before{content:"\\f1dd"}.fa-parking:before{content:"\\f540"}.fa-passport:before{content:"\\f5ab"}.fa-pastafarianism:before{content:"\\f67b"}.fa-paste:before{content:"\\f0ea"}.fa-patreon:before{content:"\\f3d9"}.fa-pause:before{content:"\\f04c"}.fa-pause-circle:before{content:"\\f28b"}.fa-paw:before{content:"\\f1b0"}.fa-paypal:before{content:"\\f1ed"}.fa-peace:before{content:"\\f67c"}.fa-pen:before{content:"\\f304"}.fa-pen-alt:before{content:"\\f305"}.fa-pen-fancy:before{content:"\\f5ac"}.fa-pen-nib:before{content:"\\f5ad"}.fa-pen-square:before{content:"\\f14b"}.fa-pencil-alt:before{content:"\\f303"}.fa-pencil-ruler:before{content:"\\f5ae"}.fa-penny-arcade:before{content:"\\f704"}.fa-people-arrows:before{content:"\\e068"}.fa-people-carry:before{content:"\\f4ce"}.fa-pepper-hot:before{content:"\\f816"}.fa-perbyte:before{content:"\\e083"}.fa-percent:before{content:"\\f295"}.fa-percentage:before{content:"\\f541"}.fa-periscope:before{content:"\\f3da"}.fa-person-booth:before{content:"\\f756"}.fa-phabricator:before{content:"\\f3db"}.fa-phoenix-framework:before{content:"\\f3dc"}.fa-phoenix-squadron:before{content:"\\f511"}.fa-phone:before{content:"\\f095"}.fa-phone-alt:before{content:"\\f879"}.fa-phone-slash:before{content:"\\f3dd"}.fa-phone-square:before{content:"\\f098"}.fa-phone-square-alt:before{content:"\\f87b"}.fa-phone-volume:before{content:"\\f2a0"}.fa-photo-video:before{content:"\\f87c"}.fa-php:before{content:"\\f457"}.fa-pied-piper:before{content:"\\f2ae"}.fa-pied-piper-alt:before{content:"\\f1a8"}.fa-pied-piper-hat:before{content:"\\f4e5"}.fa-pied-piper-pp:before{content:"\\f1a7"}.fa-pied-piper-square:before{content:"\\e01e"}.fa-piggy-bank:before{content:"\\f4d3"}.fa-pills:before{content:"\\f484"}.fa-pinterest:before{content:"\\f0d2"}.fa-pinterest-p:before{content:"\\f231"}.fa-pinterest-square:before{content:"\\f0d3"}.fa-pizza-slice:before{content:"\\f818"}.fa-place-of-worship:before{content:"\\f67f"}.fa-plane:before{content:"\\f072"}.fa-plane-arrival:before{content:"\\f5af"}.fa-plane-departure:before{content:"\\f5b0"}.fa-plane-slash:before{content:"\\e069"}.fa-play:before{content:"\\f04b"}.fa-play-circle:before{content:"\\f144"}.fa-playstation:before{content:"\\f3df"}.fa-plug:before{content:"\\f1e6"}.fa-plus:before{content:"\\f067"}.fa-plus-circle:before{content:"\\f055"}.fa-plus-square:before{content:"\\f0fe"}.fa-podcast:before{content:"\\f2ce"}.fa-poll:before{content:"\\f681"}.fa-poll-h:before{content:"\\f682"}.fa-poo:before{content:"\\f2fe"}.fa-poo-storm:before{content:"\\f75a"}.fa-poop:before{content:"\\f619"}.fa-portrait:before{content:"\\f3e0"}.fa-pound-sign:before{content:"\\f154"}.fa-power-off:before{content:"\\f011"}.fa-pray:before{content:"\\f683"}.fa-praying-hands:before{content:"\\f684"}.fa-prescription:before{content:"\\f5b1"}.fa-prescription-bottle:before{content:"\\f485"}.fa-prescription-bottle-alt:before{content:"\\f486"}.fa-print:before{content:"\\f02f"}.fa-procedures:before{content:"\\f487"}.fa-product-hunt:before{content:"\\f288"}.fa-project-diagram:before{content:"\\f542"}.fa-pump-medical:before{content:"\\e06a"}.fa-pump-soap:before{content:"\\e06b"}.fa-pushed:before{content:"\\f3e1"}.fa-puzzle-piece:before{content:"\\f12e"}.fa-python:before{content:"\\f3e2"}.fa-qq:before{content:"\\f1d6"}.fa-qrcode:before{content:"\\f029"}.fa-question:before{content:"\\f128"}.fa-question-circle:before{content:"\\f059"}.fa-quidditch:before{content:"\\f458"}.fa-quinscape:before{content:"\\f459"}.fa-quora:before{content:"\\f2c4"}.fa-quote-left:before{content:"\\f10d"}.fa-quote-right:before{content:"\\f10e"}.fa-quran:before{content:"\\f687"}.fa-r-project:before{content:"\\f4f7"}.fa-radiation:before{content:"\\f7b9"}.fa-radiation-alt:before{content:"\\f7ba"}.fa-rainbow:before{content:"\\f75b"}.fa-random:before{content:"\\f074"}.fa-raspberry-pi:before{content:"\\f7bb"}.fa-ravelry:before{content:"\\f2d9"}.fa-react:before{content:"\\f41b"}.fa-reacteurope:before{content:"\\f75d"}.fa-readme:before{content:"\\f4d5"}.fa-rebel:before{content:"\\f1d0"}.fa-receipt:before{content:"\\f543"}.fa-record-vinyl:before{content:"\\f8d9"}.fa-recycle:before{content:"\\f1b8"}.fa-red-river:before{content:"\\f3e3"}.fa-reddit:before{content:"\\f1a1"}.fa-reddit-alien:before{content:"\\f281"}.fa-reddit-square:before{content:"\\f1a2"}.fa-redhat:before{content:"\\f7bc"}.fa-redo:before{content:"\\f01e"}.fa-redo-alt:before{content:"\\f2f9"}.fa-registered:before{content:"\\f25d"}.fa-remove-format:before{content:"\\f87d"}.fa-renren:before{content:"\\f18b"}.fa-reply:before{content:"\\f3e5"}.fa-reply-all:before{content:"\\f122"}.fa-replyd:before{content:"\\f3e6"}.fa-republican:before{content:"\\f75e"}.fa-researchgate:before{content:"\\f4f8"}.fa-resolving:before{content:"\\f3e7"}.fa-restroom:before{content:"\\f7bd"}.fa-retweet:before{content:"\\f079"}.fa-rev:before{content:"\\f5b2"}.fa-ribbon:before{content:"\\f4d6"}.fa-ring:before{content:"\\f70b"}.fa-road:before{content:"\\f018"}.fa-robot:before{content:"\\f544"}.fa-rocket:before{content:"\\f135"}.fa-rocketchat:before{content:"\\f3e8"}.fa-rockrms:before{content:"\\f3e9"}.fa-route:before{content:"\\f4d7"}.fa-rss:before{content:"\\f09e"}.fa-rss-square:before{content:"\\f143"}.fa-ruble-sign:before{content:"\\f158"}.fa-ruler:before{content:"\\f545"}.fa-ruler-combined:before{content:"\\f546"}.fa-ruler-horizontal:before{content:"\\f547"}.fa-ruler-vertical:before{content:"\\f548"}.fa-running:before{content:"\\f70c"}.fa-rupee-sign:before{content:"\\f156"}.fa-rust:before{content:"\\e07a"}.fa-sad-cry:before{content:"\\f5b3"}.fa-sad-tear:before{content:"\\f5b4"}.fa-safari:before{content:"\\f267"}.fa-salesforce:before{content:"\\f83b"}.fa-sass:before{content:"\\f41e"}.fa-satellite:before{content:"\\f7bf"}.fa-satellite-dish:before{content:"\\f7c0"}.fa-save:before{content:"\\f0c7"}.fa-schlix:before{content:"\\f3ea"}.fa-school:before{content:"\\f549"}.fa-screwdriver:before{content:"\\f54a"}.fa-scribd:before{content:"\\f28a"}.fa-scroll:before{content:"\\f70e"}.fa-sd-card:before{content:"\\f7c2"}.fa-search:before{content:"\\f002"}.fa-search-dollar:before{content:"\\f688"}.fa-search-location:before{content:"\\f689"}.fa-search-minus:before{content:"\\f010"}.fa-search-plus:before{content:"\\f00e"}.fa-searchengin:before{content:"\\f3eb"}.fa-seedling:before{content:"\\f4d8"}.fa-sellcast:before{content:"\\f2da"}.fa-sellsy:before{content:"\\f213"}.fa-server:before{content:"\\f233"}.fa-servicestack:before{content:"\\f3ec"}.fa-shapes:before{content:"\\f61f"}.fa-share:before{content:"\\f064"}.fa-share-alt:before{content:"\\f1e0"}.fa-share-alt-square:before{content:"\\f1e1"}.fa-share-square:before{content:"\\f14d"}.fa-shekel-sign:before{content:"\\f20b"}.fa-shield-alt:before{content:"\\f3ed"}.fa-shield-virus:before{content:"\\e06c"}.fa-ship:before{content:"\\f21a"}.fa-shipping-fast:before{content:"\\f48b"}.fa-shirtsinbulk:before{content:"\\f214"}.fa-shoe-prints:before{content:"\\f54b"}.fa-shopify:before{content:"\\e057"}.fa-shopping-bag:before{content:"\\f290"}.fa-shopping-basket:before{content:"\\f291"}.fa-shopping-cart:before{content:"\\f07a"}.fa-shopware:before{content:"\\f5b5"}.fa-shower:before{content:"\\f2cc"}.fa-shuttle-van:before{content:"\\f5b6"}.fa-sign:before{content:"\\f4d9"}.fa-sign-in-alt:before{content:"\\f2f6"}.fa-sign-language:before{content:"\\f2a7"}.fa-sign-out-alt:before{content:"\\f2f5"}.fa-signal:before{content:"\\f012"}.fa-signature:before{content:"\\f5b7"}.fa-sim-card:before{content:"\\f7c4"}.fa-simplybuilt:before{content:"\\f215"}.fa-sink:before{content:"\\e06d"}.fa-sistrix:before{content:"\\f3ee"}.fa-sitemap:before{content:"\\f0e8"}.fa-sith:before{content:"\\f512"}.fa-skating:before{content:"\\f7c5"}.fa-sketch:before{content:"\\f7c6"}.fa-skiing:before{content:"\\f7c9"}.fa-skiing-nordic:before{content:"\\f7ca"}.fa-skull:before{content:"\\f54c"}.fa-skull-crossbones:before{content:"\\f714"}.fa-skyatlas:before{content:"\\f216"}.fa-skype:before{content:"\\f17e"}.fa-slack:before{content:"\\f198"}.fa-slack-hash:before{content:"\\f3ef"}.fa-slash:before{content:"\\f715"}.fa-sleigh:before{content:"\\f7cc"}.fa-sliders-h:before{content:"\\f1de"}.fa-slideshare:before{content:"\\f1e7"}.fa-smile:before{content:"\\f118"}.fa-smile-beam:before{content:"\\f5b8"}.fa-smile-wink:before{content:"\\f4da"}.fa-smog:before{content:"\\f75f"}.fa-smoking:before{content:"\\f48d"}.fa-smoking-ban:before{content:"\\f54d"}.fa-sms:before{content:"\\f7cd"}.fa-snapchat:before{content:"\\f2ab"}.fa-snapchat-ghost:before{content:"\\f2ac"}.fa-snapchat-square:before{content:"\\f2ad"}.fa-snowboarding:before{content:"\\f7ce"}.fa-snowflake:before{content:"\\f2dc"}.fa-snowman:before{content:"\\f7d0"}.fa-snowplow:before{content:"\\f7d2"}.fa-soap:before{content:"\\e06e"}.fa-socks:before{content:"\\f696"}.fa-solar-panel:before{content:"\\f5ba"}.fa-sort:before{content:"\\f0dc"}.fa-sort-alpha-down:before{content:"\\f15d"}.fa-sort-alpha-down-alt:before{content:"\\f881"}.fa-sort-alpha-up:before{content:"\\f15e"}.fa-sort-alpha-up-alt:before{content:"\\f882"}.fa-sort-amount-down:before{content:"\\f160"}.fa-sort-amount-down-alt:before{content:"\\f884"}.fa-sort-amount-up:before{content:"\\f161"}.fa-sort-amount-up-alt:before{content:"\\f885"}.fa-sort-down:before{content:"\\f0dd"}.fa-sort-numeric-down:before{content:"\\f162"}.fa-sort-numeric-down-alt:before{content:"\\f886"}.fa-sort-numeric-up:before{content:"\\f163"}.fa-sort-numeric-up-alt:before{content:"\\f887"}.fa-sort-up:before{content:"\\f0de"}.fa-soundcloud:before{content:"\\f1be"}.fa-sourcetree:before{content:"\\f7d3"}.fa-spa:before{content:"\\f5bb"}.fa-space-shuttle:before{content:"\\f197"}.fa-speakap:before{content:"\\f3f3"}.fa-speaker-deck:before{content:"\\f83c"}.fa-spell-check:before{content:"\\f891"}.fa-spider:before{content:"\\f717"}.fa-spinner:before{content:"\\f110"}.fa-splotch:before{content:"\\f5bc"}.fa-spotify:before{content:"\\f1bc"}.fa-spray-can:before{content:"\\f5bd"}.fa-square:before{content:"\\f0c8"}.fa-square-full:before{content:"\\f45c"}.fa-square-root-alt:before{content:"\\f698"}.fa-squarespace:before{content:"\\f5be"}.fa-stack-exchange:before{content:"\\f18d"}.fa-stack-overflow:before{content:"\\f16c"}.fa-stackpath:before{content:"\\f842"}.fa-stamp:before{content:"\\f5bf"}.fa-star:before{content:"\\f005"}.fa-star-and-crescent:before{content:"\\f699"}.fa-star-half:before{content:"\\f089"}.fa-star-half-alt:before{content:"\\f5c0"}.fa-star-of-david:before{content:"\\f69a"}.fa-star-of-life:before{content:"\\f621"}.fa-staylinked:before{content:"\\f3f5"}.fa-steam:before{content:"\\f1b6"}.fa-steam-square:before{content:"\\f1b7"}.fa-steam-symbol:before{content:"\\f3f6"}.fa-step-backward:before{content:"\\f048"}.fa-step-forward:before{content:"\\f051"}.fa-stethoscope:before{content:"\\f0f1"}.fa-sticker-mule:before{content:"\\f3f7"}.fa-sticky-note:before{content:"\\f249"}.fa-stop:before{content:"\\f04d"}.fa-stop-circle:before{content:"\\f28d"}.fa-stopwatch:before{content:"\\f2f2"}.fa-stopwatch-20:before{content:"\\e06f"}.fa-store:before{content:"\\f54e"}.fa-store-alt:before{content:"\\f54f"}.fa-store-alt-slash:before{content:"\\e070"}.fa-store-slash:before{content:"\\e071"}.fa-strava:before{content:"\\f428"}.fa-stream:before{content:"\\f550"}.fa-street-view:before{content:"\\f21d"}.fa-strikethrough:before{content:"\\f0cc"}.fa-stripe:before{content:"\\f429"}.fa-stripe-s:before{content:"\\f42a"}.fa-stroopwafel:before{content:"\\f551"}.fa-studiovinari:before{content:"\\f3f8"}.fa-stumbleupon:before{content:"\\f1a4"}.fa-stumbleupon-circle:before{content:"\\f1a3"}.fa-subscript:before{content:"\\f12c"}.fa-subway:before{content:"\\f239"}.fa-suitcase:before{content:"\\f0f2"}.fa-suitcase-rolling:before{content:"\\f5c1"}.fa-sun:before{content:"\\f185"}.fa-superpowers:before{content:"\\f2dd"}.fa-superscript:before{content:"\\f12b"}.fa-supple:before{content:"\\f3f9"}.fa-surprise:before{content:"\\f5c2"}.fa-suse:before{content:"\\f7d6"}.fa-swatchbook:before{content:"\\f5c3"}.fa-swift:before{content:"\\f8e1"}.fa-swimmer:before{content:"\\f5c4"}.fa-swimming-pool:before{content:"\\f5c5"}.fa-symfony:before{content:"\\f83d"}.fa-synagogue:before{content:"\\f69b"}.fa-sync:before{content:"\\f021"}.fa-sync-alt:before{content:"\\f2f1"}.fa-syringe:before{content:"\\f48e"}.fa-table:before{content:"\\f0ce"}.fa-table-tennis:before{content:"\\f45d"}.fa-tablet:before{content:"\\f10a"}.fa-tablet-alt:before{content:"\\f3fa"}.fa-tablets:before{content:"\\f490"}.fa-tachometer-alt:before{content:"\\f3fd"}.fa-tag:before{content:"\\f02b"}.fa-tags:before{content:"\\f02c"}.fa-tape:before{content:"\\f4db"}.fa-tasks:before{content:"\\f0ae"}.fa-taxi:before{content:"\\f1ba"}.fa-teamspeak:before{content:"\\f4f9"}.fa-teeth:before{content:"\\f62e"}.fa-teeth-open:before{content:"\\f62f"}.fa-telegram:before{content:"\\f2c6"}.fa-telegram-plane:before{content:"\\f3fe"}.fa-temperature-high:before{content:"\\f769"}.fa-temperature-low:before{content:"\\f76b"}.fa-tencent-weibo:before{content:"\\f1d5"}.fa-tenge:before{content:"\\f7d7"}.fa-terminal:before{content:"\\f120"}.fa-text-height:before{content:"\\f034"}.fa-text-width:before{content:"\\f035"}.fa-th:before{content:"\\f00a"}.fa-th-large:before{content:"\\f009"}.fa-th-list:before{content:"\\f00b"}.fa-the-red-yeti:before{content:"\\f69d"}.fa-theater-masks:before{content:"\\f630"}.fa-themeco:before{content:"\\f5c6"}.fa-themeisle:before{content:"\\f2b2"}.fa-thermometer:before{content:"\\f491"}.fa-thermometer-empty:before{content:"\\f2cb"}.fa-thermometer-full:before{content:"\\f2c7"}.fa-thermometer-half:before{content:"\\f2c9"}.fa-thermometer-quarter:before{content:"\\f2ca"}.fa-thermometer-three-quarters:before{content:"\\f2c8"}.fa-think-peaks:before{content:"\\f731"}.fa-thumbs-down:before{content:"\\f165"}.fa-thumbs-up:before{content:"\\f164"}.fa-thumbtack:before{content:"\\f08d"}.fa-ticket-alt:before{content:"\\f3ff"}.fa-tiktok:before{content:"\\e07b"}.fa-times:before{content:"\\f00d"}.fa-times-circle:before{content:"\\f057"}.fa-tint:before{content:"\\f043"}.fa-tint-slash:before{content:"\\f5c7"}.fa-tired:before{content:"\\f5c8"}.fa-toggle-off:before{content:"\\f204"}.fa-toggle-on:before{content:"\\f205"}.fa-toilet:before{content:"\\f7d8"}.fa-toilet-paper:before{content:"\\f71e"}.fa-toilet-paper-slash:before{content:"\\e072"}.fa-toolbox:before{content:"\\f552"}.fa-tools:before{content:"\\f7d9"}.fa-tooth:before{content:"\\f5c9"}.fa-torah:before{content:"\\f6a0"}.fa-torii-gate:before{content:"\\f6a1"}.fa-tractor:before{content:"\\f722"}.fa-trade-federation:before{content:"\\f513"}.fa-trademark:before{content:"\\f25c"}.fa-traffic-light:before{content:"\\f637"}.fa-trailer:before{content:"\\e041"}.fa-train:before{content:"\\f238"}.fa-tram:before{content:"\\f7da"}.fa-transgender:before{content:"\\f224"}.fa-transgender-alt:before{content:"\\f225"}.fa-trash:before{content:"\\f1f8"}.fa-trash-alt:before{content:"\\f2ed"}.fa-trash-restore:before{content:"\\f829"}.fa-trash-restore-alt:before{content:"\\f82a"}.fa-tree:before{content:"\\f1bb"}.fa-trello:before{content:"\\f181"}.fa-trophy:before{content:"\\f091"}.fa-truck:before{content:"\\f0d1"}.fa-truck-loading:before{content:"\\f4de"}.fa-truck-monster:before{content:"\\f63b"}.fa-truck-moving:before{content:"\\f4df"}.fa-truck-pickup:before{content:"\\f63c"}.fa-tshirt:before{content:"\\f553"}.fa-tty:before{content:"\\f1e4"}.fa-tumblr:before{content:"\\f173"}.fa-tumblr-square:before{content:"\\f174"}.fa-tv:before{content:"\\f26c"}.fa-twitch:before{content:"\\f1e8"}.fa-twitter:before{content:"\\f099"}.fa-twitter-square:before{content:"\\f081"}.fa-typo3:before{content:"\\f42b"}.fa-uber:before{content:"\\f402"}.fa-ubuntu:before{content:"\\f7df"}.fa-uikit:before{content:"\\f403"}.fa-umbraco:before{content:"\\f8e8"}.fa-umbrella:before{content:"\\f0e9"}.fa-umbrella-beach:before{content:"\\f5ca"}.fa-uncharted:before{content:"\\e084"}.fa-underline:before{content:"\\f0cd"}.fa-undo:before{content:"\\f0e2"}.fa-undo-alt:before{content:"\\f2ea"}.fa-uniregistry:before{content:"\\f404"}.fa-unity:before{content:"\\e049"}.fa-universal-access:before{content:"\\f29a"}.fa-university:before{content:"\\f19c"}.fa-unlink:before{content:"\\f127"}.fa-unlock:before{content:"\\f09c"}.fa-unlock-alt:before{content:"\\f13e"}.fa-unsplash:before{content:"\\e07c"}.fa-untappd:before{content:"\\f405"}.fa-upload:before{content:"\\f093"}.fa-ups:before{content:"\\f7e0"}.fa-usb:before{content:"\\f287"}.fa-user:before{content:"\\f007"}.fa-user-alt:before{content:"\\f406"}.fa-user-alt-slash:before{content:"\\f4fa"}.fa-user-astronaut:before{content:"\\f4fb"}.fa-user-check:before{content:"\\f4fc"}.fa-user-circle:before{content:"\\f2bd"}.fa-user-clock:before{content:"\\f4fd"}.fa-user-cog:before{content:"\\f4fe"}.fa-user-edit:before{content:"\\f4ff"}.fa-user-friends:before{content:"\\f500"}.fa-user-graduate:before{content:"\\f501"}.fa-user-injured:before{content:"\\f728"}.fa-user-lock:before{content:"\\f502"}.fa-user-md:before{content:"\\f0f0"}.fa-user-minus:before{content:"\\f503"}.fa-user-ninja:before{content:"\\f504"}.fa-user-nurse:before{content:"\\f82f"}.fa-user-plus:before{content:"\\f234"}.fa-user-secret:before{content:"\\f21b"}.fa-user-shield:before{content:"\\f505"}.fa-user-slash:before{content:"\\f506"}.fa-user-tag:before{content:"\\f507"}.fa-user-tie:before{content:"\\f508"}.fa-user-times:before{content:"\\f235"}.fa-users:before{content:"\\f0c0"}.fa-users-cog:before{content:"\\f509"}.fa-users-slash:before{content:"\\e073"}.fa-usps:before{content:"\\f7e1"}.fa-ussunnah:before{content:"\\f407"}.fa-utensil-spoon:before{content:"\\f2e5"}.fa-utensils:before{content:"\\f2e7"}.fa-vaadin:before{content:"\\f408"}.fa-vector-square:before{content:"\\f5cb"}.fa-venus:before{content:"\\f221"}.fa-venus-double:before{content:"\\f226"}.fa-venus-mars:before{content:"\\f228"}.fa-vest:before{content:"\\e085"}.fa-vest-patches:before{content:"\\e086"}.fa-viacoin:before{content:"\\f237"}.fa-viadeo:before{content:"\\f2a9"}.fa-viadeo-square:before{content:"\\f2aa"}.fa-vial:before{content:"\\f492"}.fa-vials:before{content:"\\f493"}.fa-viber:before{content:"\\f409"}.fa-video:before{content:"\\f03d"}.fa-video-slash:before{content:"\\f4e2"}.fa-vihara:before{content:"\\f6a7"}.fa-vimeo:before{content:"\\f40a"}.fa-vimeo-square:before{content:"\\f194"}.fa-vimeo-v:before{content:"\\f27d"}.fa-vine:before{content:"\\f1ca"}.fa-virus:before{content:"\\e074"}.fa-virus-slash:before{content:"\\e075"}.fa-viruses:before{content:"\\e076"}.fa-vk:before{content:"\\f189"}.fa-vnv:before{content:"\\f40b"}.fa-voicemail:before{content:"\\f897"}.fa-volleyball-ball:before{content:"\\f45f"}.fa-volume-down:before{content:"\\f027"}.fa-volume-mute:before{content:"\\f6a9"}.fa-volume-off:before{content:"\\f026"}.fa-volume-up:before{content:"\\f028"}.fa-vote-yea:before{content:"\\f772"}.fa-vr-cardboard:before{content:"\\f729"}.fa-vuejs:before{content:"\\f41f"}.fa-walking:before{content:"\\f554"}.fa-wallet:before{content:"\\f555"}.fa-warehouse:before{content:"\\f494"}.fa-watchman-monitoring:before{content:"\\e087"}.fa-water:before{content:"\\f773"}.fa-wave-square:before{content:"\\f83e"}.fa-waze:before{content:"\\f83f"}.fa-weebly:before{content:"\\f5cc"}.fa-weibo:before{content:"\\f18a"}.fa-weight:before{content:"\\f496"}.fa-weight-hanging:before{content:"\\f5cd"}.fa-weixin:before{content:"\\f1d7"}.fa-whatsapp:before{content:"\\f232"}.fa-whatsapp-square:before{content:"\\f40c"}.fa-wheelchair:before{content:"\\f193"}.fa-whmcs:before{content:"\\f40d"}.fa-wifi:before{content:"\\f1eb"}.fa-wikipedia-w:before{content:"\\f266"}.fa-wind:before{content:"\\f72e"}.fa-window-close:before{content:"\\f410"}.fa-window-maximize:before{content:"\\f2d0"}.fa-window-minimize:before{content:"\\f2d1"}.fa-window-restore:before{content:"\\f2d2"}.fa-windows:before{content:"\\f17a"}.fa-wine-bottle:before{content:"\\f72f"}.fa-wine-glass:before{content:"\\f4e3"}.fa-wine-glass-alt:before{content:"\\f5ce"}.fa-wix:before{content:"\\f5cf"}.fa-wizards-of-the-coast:before{content:"\\f730"}.fa-wodu:before{content:"\\e088"}.fa-wolf-pack-battalion:before{content:"\\f514"}.fa-won-sign:before{content:"\\f159"}.fa-wordpress:before{content:"\\f19a"}.fa-wordpress-simple:before{content:"\\f411"}.fa-wpbeginner:before{content:"\\f297"}.fa-wpexplorer:before{content:"\\f2de"}.fa-wpforms:before{content:"\\f298"}.fa-wpressr:before{content:"\\f3e4"}.fa-wrench:before{content:"\\f0ad"}.fa-x-ray:before{content:"\\f497"}.fa-xbox:before{content:"\\f412"}.fa-xing:before{content:"\\f168"}.fa-xing-square:before{content:"\\f169"}.fa-y-combinator:before{content:"\\f23b"}.fa-yahoo:before{content:"\\f19e"}.fa-yammer:before{content:"\\f840"}.fa-yandex:before{content:"\\f413"}.fa-yandex-international:before{content:"\\f414"}.fa-yarn:before{content:"\\f7e3"}.fa-yelp:before{content:"\\f1e9"}.fa-yen-sign:before{content:"\\f157"}.fa-yin-yang:before{content:"\\f6ad"}.fa-yoast:before{content:"\\f2b1"}.fa-youtube:before{content:"\\f167"}.fa-youtube-square:before{content:"\\f431"}.fa-zhihu:before{content:"\\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url('+A+");src:url("+T+') format("embedded-opentype"),url('+q+') format("woff2"),url('+I+') format("woff"),url('+z+') format("truetype"),url('+B+') format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url('+O+");src:url("+R+') format("embedded-opentype"),url('+j+') format("woff2"),url('+L+') format("woff"),url('+E+') format("truetype"),url('+S+') format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url('+C+");src:url("+N+') format("embedded-opentype"),url('+U+') format("woff2"),url('+D+') format("woff"),url('+M+') format("truetype"),url('+X+') format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}',""]);const H=_},14115:(e,f,o)=>{o.d(f,{A:()=>i});var t=o(31601);var n=o.n(t);var a=o(76314);var r=o.n(a);var c=r()(n());c.push([e.id,'/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa.fa-glass:before{content:"\\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\\f00d"}.fa.fa-gear:before{content:"\\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\\f01e"}.fa.fa-refresh:before{content:"\\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\\f03b"}.fa.fa-video-camera:before{content:"\\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\\f03e"}.fa.fa-pencil:before{content:"\\f303"}.fa.fa-map-marker:before{content:"\\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\\f14a"}.fa.fa-arrows:before{content:"\\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\\f058"}.fa.fa-mail-forward:before{content:"\\f064"}.fa.fa-expand:before{content:"\\f424"}.fa.fa-compress:before{content:"\\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\\f071"}.fa.fa-calendar:before{content:"\\f073"}.fa.fa-arrows-v:before{content:"\\f338"}.fa.fa-arrows-h:before{content:"\\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\\f004"}.fa.fa-sign-out:before{content:"\\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\\f08c"}.fa.fa-thumb-tack:before{content:"\\f08d"}.fa.fa-external-link:before{content:"\\f35d"}.fa.fa-sign-in:before{content:"\\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\\f0a7"}.fa.fa-arrows-alt:before{content:"\\f31e"}.fa.fa-group:before{content:"\\f0c0"}.fa.fa-chain:before{content:"\\f0c1"}.fa.fa-scissors:before{content:"\\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\\f3d1"}.fa.fa-unsorted:before{content:"\\f0dc"}.fa.fa-sort-desc:before{content:"\\f0dd"}.fa.fa-sort-asc:before{content:"\\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\\f0e1"}.fa.fa-rotate-left:before{content:"\\f0e2"}.fa.fa-legal:before{content:"\\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\\f086"}.fa.fa-flash:before{content:"\\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\\f0eb"}.fa.fa-exchange:before{content:"\\f362"}.fa.fa-cloud-download:before{content:"\\f381"}.fa.fa-cloud-upload:before{content:"\\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\\f0f3"}.fa.fa-cutlery:before{content:"\\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\\f0f8"}.fa.fa-tablet:before{content:"\\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\\f111"}.fa.fa-mail-reply:before{content:"\\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\\f024"}.fa.fa-mail-reply-all:before{content:"\\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\\f089"}.fa.fa-code-fork:before{content:"\\f126"}.fa.fa-chain-broken:before{content:"\\f127"}.fa.fa-shield:before{content:"\\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\\f146"}.fa.fa-level-up:before{content:"\\f3bf"}.fa.fa-level-down:before{content:"\\f3be"}.fa.fa-pencil-square:before{content:"\\f14b"}.fa.fa-external-link-square:before{content:"\\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\\f153"}.fa.fa-gbp:before{content:"\\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\\f15a"}.fa.fa-file-text:before{content:"\\f15c"}.fa.fa-sort-alpha-asc:before{content:"\\f15d"}.fa.fa-sort-alpha-desc:before{content:"\\f881"}.fa.fa-sort-amount-asc:before{content:"\\f160"}.fa.fa-sort-amount-desc:before{content:"\\f884"}.fa.fa-sort-numeric-asc:before{content:"\\f162"}.fa.fa-sort-numeric-desc:before{content:"\\f886"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\\f309"}.fa.fa-long-arrow-up:before{content:"\\f30c"}.fa.fa-long-arrow-left:before{content:"\\f30a"}.fa.fa-long-arrow-right:before{content:"\\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\\f19c"}.fa.fa-mortar-board:before{content:"\\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\\f1b9"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\\f1cd"}.fa.fa-circle-o-notch:before{content:"\\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\\f1d7"}.fa.fa-send:before{content:"\\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\\f111"}.fa.fa-header:before{content:"\\f1dc"}.fa.fa-sliders:before{content:"\\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\\f1f6"}.fa.fa-trash:before{content:"\\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\\f1fb"}.fa.fa-area-chart:before{content:"\\f1fe"}.fa.fa-pie-chart:before{content:"\\f200"}.fa.fa-line-chart:before{content:"\\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\\f3a5"}.fa.fa-intersex:before{content:"\\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\\f240"}.fa.fa-battery-3:before{content:"\\f241"}.fa.fa-battery-2:before{content:"\\f242"}.fa.fa-battery-1:before{content:"\\f243"}.fa.fa-battery-0:before{content:"\\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\\f254"}.fa.fa-hourglass-1:before{content:"\\f251"}.fa.fa-hourglass-2:before{content:"\\f252"}.fa.fa-hourglass-3:before{content:"\\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\\f279"}.fa.fa-commenting:before{content:"\\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\\f059"}.fa.fa-volume-control-phone:before{content:"\\f2a0"}.fa.fa-asl-interpreting:before{content:"\\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\\f2b9"}.fa.fa-vcard:before{content:"\\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\\f2c7"}.fa.fa-thermometer-3:before{content:"\\f2c8"}.fa.fa-thermometer-2:before{content:"\\f2c9"}.fa.fa-thermometer-1:before{content:"\\f2ca"}.fa.fa-thermometer-0:before{content:"\\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\\f2dc"}.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cab:before{content:"\\f1ba"}',""]);const i=c},86739:(e,f,o)=>{o.d(f,{A:()=>i});var t=o(31601);var n=o.n(t);var a=o(76314);var r=o.n(a);var c=r()(n());c.push([e.id,'/**\n * Copyright (c) 2014 The xterm.js authors. All rights reserved.\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\n * https://github.com/chjj/term.js\n * @license MIT\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the "Software"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * Originally forked from (with the author\'s permission):\n *   Fabrice Bellard\'s javascript vt100 for jslinux:\n *   http://bellard.org/jslinux/\n *   Copyright (c) 2011 Fabrice Bellard\n *   The original design remains. The terminal itself\n *   has been extended to include xterm CSI codes, among\n *   other features.\n */\n\n/**\n *  Default styles for xterm.js\n */\n\n.xterm {\n    cursor: text;\n    position: relative;\n    user-select: none;\n    -ms-user-select: none;\n    -webkit-user-select: none;\n}\n\n.xterm.focus,\n.xterm:focus {\n    outline: none;\n}\n\n.xterm .xterm-helpers {\n    position: absolute;\n    top: 0;\n    /**\n     * The z-index of the helpers must be higher than the canvases in order for\n     * IMEs to appear on top.\n     */\n    z-index: 5;\n}\n\n.xterm .xterm-helper-textarea {\n    padding: 0;\n    border: 0;\n    margin: 0;\n    /* Move textarea out of the screen to the far left, so that the cursor is not visible */\n    position: absolute;\n    opacity: 0;\n    left: -9999em;\n    top: 0;\n    width: 0;\n    height: 0;\n    z-index: -5;\n    /** Prevent wrapping so the IME appears against the textarea at the correct position */\n    white-space: nowrap;\n    overflow: hidden;\n    resize: none;\n}\n\n.xterm .composition-view {\n    /* TODO: Composition position got messed up somewhere */\n    background: #000;\n    color: #FFF;\n    display: none;\n    position: absolute;\n    white-space: nowrap;\n    z-index: 1;\n}\n\n.xterm .composition-view.active {\n    display: block;\n}\n\n.xterm .xterm-viewport {\n    /* On OS X this is required in order for the scroll bar to appear fully opaque */\n    background-color: #000;\n    overflow-y: scroll;\n    cursor: default;\n    position: absolute;\n    right: 0;\n    left: 0;\n    top: 0;\n    bottom: 0;\n}\n\n.xterm .xterm-screen {\n    position: relative;\n}\n\n.xterm .xterm-screen canvas {\n    position: absolute;\n    left: 0;\n    top: 0;\n}\n\n.xterm .xterm-scroll-area {\n    visibility: hidden;\n}\n\n.xterm-char-measure-element {\n    display: inline-block;\n    visibility: hidden;\n    position: absolute;\n    top: 0;\n    left: -9999em;\n    line-height: normal;\n}\n\n.xterm.enable-mouse-events {\n    /* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */\n    cursor: default;\n}\n\n.xterm.xterm-cursor-pointer,\n.xterm .xterm-cursor-pointer {\n    cursor: pointer;\n}\n\n.xterm.column-select.focus {\n    /* Column selection mode */\n    cursor: crosshair;\n}\n\n.xterm .xterm-accessibility:not(.debug),\n.xterm .xterm-message {\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    right: 0;\n    z-index: 10;\n    color: transparent;\n    pointer-events: none;\n}\n\n.xterm .xterm-accessibility-tree:not(.debug) *::selection {\n  color: transparent;\n}\n\n.xterm .xterm-accessibility-tree {\n  user-select: text;\n  white-space: pre;\n}\n\n.xterm .live-region {\n    position: absolute;\n    left: -9999px;\n    width: 1px;\n    height: 1px;\n    overflow: hidden;\n}\n\n.xterm-dim {\n    /* Dim should not apply to background, so the opacity of the foreground color is applied\n     * explicitly in the generated class and reset to 1 here */\n    opacity: 1 !important;\n}\n\n.xterm-underline-1 { text-decoration: underline; }\n.xterm-underline-2 { text-decoration: double underline; }\n.xterm-underline-3 { text-decoration: wavy underline; }\n.xterm-underline-4 { text-decoration: dotted underline; }\n.xterm-underline-5 { text-decoration: dashed underline; }\n\n.xterm-overline {\n    text-decoration: overline;\n}\n\n.xterm-overline.xterm-underline-1 { text-decoration: overline underline; }\n.xterm-overline.xterm-underline-2 { text-decoration: overline double underline; }\n.xterm-overline.xterm-underline-3 { text-decoration: overline wavy underline; }\n.xterm-overline.xterm-underline-4 { text-decoration: overline dotted underline; }\n.xterm-overline.xterm-underline-5 { text-decoration: overline dashed underline; }\n\n.xterm-strikethrough {\n    text-decoration: line-through;\n}\n\n.xterm-screen .xterm-decoration-container .xterm-decoration {\n\tz-index: 6;\n\tposition: absolute;\n}\n\n.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer {\n\tz-index: 7;\n}\n\n.xterm-decoration-overview-ruler {\n    z-index: 8;\n    position: absolute;\n    top: 0;\n    right: 0;\n    pointer-events: none;\n}\n\n.xterm-decoration-top {\n    z-index: 2;\n    position: relative;\n}\n',""]);const i=c},9112:(e,f,o)=>{o.d(f,{A:()=>i});var t=o(31601);var n=o.n(t);var a=o(76314);var r=o.n(a);var c=r()(n());c.push([e.id,":root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:hsla(0,0%,100%,.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error)}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translateZ(var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:1em;left:1em}.Toastify__toast-container--top-center{top:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--top-right{top:1em;right:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;padding:0;left:0;margin:0}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:0;transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:0;transform:translateX(0)}.Toastify__toast-container--rtl{right:0;left:auto}}.Toastify__toast{position:relative;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:4px;box-shadow:0 1px 10px 0 rgba(0,0,0,.1),0 2px 15px 0 rgba(0,0,0,.05);display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;max-height:var(--toastify-toast-max-height);overflow:hidden;font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;-ms-flex:1 1 auto;flex:1 1 auto;padding:6px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;-ms-flex:1;flex:1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.7s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width:480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;-ms-flex-item-align:start;align-self:flex-start}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:auto;transform-origin:right}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{transform:perspective(400px) rotateX(-20deg);opacity:1}to{transform:perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(110%,0,0)}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(-110%,0,0)}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}",""]);const i=c},76314:e=>{e.exports=function(e){var f=[];f.toString=function f(){return this.map((function(f){var o="";var t=typeof f[5]!=="undefined";if(f[4]){o+="@supports (".concat(f[4],") {")}if(f[2]){o+="@media ".concat(f[2]," {")}if(t){o+="@layer".concat(f[5].length>0?" ".concat(f[5]):""," {")}o+=e(f);if(t){o+="}"}if(f[2]){o+="}"}if(f[4]){o+="}"}return o})).join("")};f.i=function e(o,t,n,a,r){if(typeof o==="string"){o=[[null,o,undefined]]}var c={};if(n){for(var i=0;i0?" ".concat(l[5]):""," {").concat(l[1],"}");l[5]=r}}if(t){if(!l[2]){l[2]=t}else{l[1]="@media ".concat(l[2]," {").concat(l[1],"}");l[2]=t}}if(a){if(!l[4]){l[4]="".concat(a)}else{l[1]="@supports (".concat(l[4],") {").concat(l[1],"}");l[4]=a}}f.push(l)}};return f}},4417:e=>{e.exports=function(e,f){if(!f){f={}}if(!e){return e}e=String(e.__esModule?e.default:e);if(/^['"].*['"]$/.test(e)){e=e.slice(1,-1)}if(f.hash){e+=f.hash}if(/["'() \t\n]|(%20)/.test(e)||f.needQuotes){return'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"')}return e}},31601:e=>{e.exports=function(e){return e[1]}},2898:(e,f,o)=>{var t=o(85072);var n=o.n(t);var a=o(97825);var r=o.n(a);var c=o(77659);var i=o.n(c);var b=o(55056);var s=o.n(b);var l=o(10540);var d=o.n(l);var m=o(41113);var p=o.n(m);var h=o(80815);var u={};u.styleTagTransform=p();u.setAttributes=s();u.insert=i().bind(null,"head");u.domAPI=r();u.insertStyleElement=d();var g=n()(h.A,u);var w=h.A&&h.A.locals?h.A.locals:undefined},40244:(e,f,o)=>{var t=o(85072);var n=o.n(t);var a=o(97825);var r=o.n(a);var c=o(77659);var i=o.n(c);var b=o(55056);var s=o.n(b);var l=o(10540);var d=o.n(l);var m=o(41113);var p=o.n(m);var h=o(14115);var u={};u.styleTagTransform=p();u.setAttributes=s();u.insert=i().bind(null,"head");u.domAPI=r();u.insertStyleElement=d();var g=n()(h.A,u);var w=h.A&&h.A.locals?h.A.locals:undefined},69448:(e,f,o)=>{var t=o(85072);var n=o.n(t);var a=o(97825);var r=o.n(a);var c=o(77659);var i=o.n(c);var b=o(55056);var s=o.n(b);var l=o(10540);var d=o.n(l);var m=o(41113);var p=o.n(m);var h=o(86739);var u={};u.styleTagTransform=p();u.setAttributes=s();u.insert=i().bind(null,"head");u.domAPI=r();u.insertStyleElement=d();var g=n()(h.A,u);var w=h.A&&h.A.locals?h.A.locals:undefined},85072:e=>{var f=[];function o(e){var o=-1;for(var t=0;t{var f={};function o(e){if(typeof f[e]==="undefined"){var o=document.querySelector(e);if(window.HTMLIFrameElement&&o instanceof window.HTMLIFrameElement){try{o=o.contentDocument.head}catch(t){o=null}}f[e]=o}return f[e]}function t(e,f){var t=o(e);if(!t){throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.")}t.appendChild(f)}e.exports=t},10540:e=>{function f(e){var f=document.createElement("style");e.setAttributes(f,e.attributes);e.insert(f,e.options);return f}e.exports=f},55056:(e,f,o)=>{function t(e){var f=true?o.nc:0;if(f){e.setAttribute("nonce",f)}}e.exports=t},97825:e=>{function f(e,f,o){var t="";if(o.supports){t+="@supports (".concat(o.supports,") {")}if(o.media){t+="@media ".concat(o.media," {")}var n=typeof o.layer!=="undefined";if(n){t+="@layer".concat(o.layer.length>0?" ".concat(o.layer):""," {")}t+=o.css;if(n){t+="}"}if(o.media){t+="}"}if(o.supports){t+="}"}var a=o.sourceMap;if(a&&typeof btoa!=="undefined"){t+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")}f.styleTagTransform(t,e,f.options)}function o(e){if(e.parentNode===null){return false}e.parentNode.removeChild(e)}function t(e){var t=e.insertStyleElement(e);return{update:function o(n){f(t,e,n)},remove:function e(){o(t)}}}e.exports=t},41113:e=>{function f(e,f){if(f.styleSheet){f.styleSheet.cssText=e}else{while(f.firstChild){f.removeChild(f.firstChild)}f.appendChild(document.createTextNode(e))}}e.exports=f},16811:(e,f,o)=>{e.exports=o.p+"e4299464e7b012968eed.eot"},84189:(e,f,o)=>{e.exports=o.p+"cda59d6efffa685830fd.ttf"},14451:(e,f,o)=>{e.exports=o.p+"f9217f66874b0c01cd8c.woff"},92459:(e,f,o)=>{e.exports=o.p+"8ea8791754915a898a31.woff2"},45425:(e,f,o)=>{e.exports=o.p+"79d088064beb3826054f.eot"},2539:(e,f,o)=>{e.exports=o.p+"e8711bbb871afd8e9dea.ttf"},17129:(e,f,o)=>{e.exports=o.p+"cb9e9e693192413cde2b.woff"},73321:(e,f,o)=>{e.exports=o.p+"e42a88444448ac3d6054.woff2"},3537:(e,f,o)=>{e.exports=o.p+"373c04fd2418f5c77eea.eot"},60651:(e,f,o)=>{e.exports=o.p+"af6397503fcefbd61397.ttf"},21833:(e,f,o)=>{e.exports=o.p+"3f6d3488cf65374f6f67.woff"},63369:(e,f,o)=>{e.exports=o.p+"9834b82ad26e2a37583d.woff2"},23182:(e,f,o)=>{e.exports=o.p+"3de784d07b9fa8f104c1.woff"},27075:(e,f,o)=>{e.exports=o.p+"af04542b29eaac04550a.woff"},51508:(e,f,o)=>{e.exports=o.p+"26683bf201fb258a2237.woff"},31517:(e,f,o)=>{e.exports=o.p+"721921bab0d001ebff02.woff"},13110:(e,f,o)=>{e.exports=o.p+"870673df72e70f87c91a.woff"},91495:(e,f,o)=>{e.exports=o.p+"88b98cad3688915e50da.woff"},35492:(e,f,o)=>{e.exports=o.p+"355254db9ca10a09a3b5.woff"},98072:(e,f,o)=>{e.exports=o.p+"1cb1c39ea642f26a4dfe.woff"},13566:(e,f,o)=>{e.exports=o.p+"8ea8dbb1b02e6f730f55.woff"},21033:(e,f,o)=>{e.exports=o.p+"a009bea404f7a500ded4.woff"},50584:(e,f,o)=>{e.exports=o.p+"32792104b5ef69eded90.woff"},17739:(e,f,o)=>{e.exports=o.p+"fc6ddf5df402b263cfb1.woff"},49485:(e,f,o)=>{e.exports=o.p+"b418136e3b384baaadec.woff"},1910:(e,f,o)=>{e.exports=o.p+"af96f67d7accf5fd2a4a.woff"},4777:(e,f,o)=>{e.exports=o.p+"c49810b53ecc0d87d802.woff"},64452:(e,f,o)=>{e.exports=o.p+"30e889b58cbc51adfbb0.woff"},943:(e,f,o)=>{e.exports=o.p+"5cda41563a095bd70c78.woff"},71698:(e,f,o)=>{e.exports=o.p+"3bc6ecaae7ecf6f8d7f8.woff"},98786:(e,f,o)=>{e.exports=o.p+"c56da8d69f1a0208b8e0.woff"},94665:(e,f,o)=>{e.exports=o.p+"36e0d72d8a7afc696a3e.woff"},83202:(e,f,o)=>{e.exports=o.p+"72bc573386dd1d48c5bb.woff"},77778:(e,f,o)=>{e.exports=o.p+"481e39042508ae313a60.woff"},17868:(e,f,o)=>{e.exports=o.p+"a3b9817780214caf01e8.svg"},27740:(e,f,o)=>{e.exports=o.p+"be0a084962d8066884f7.svg"},37800:(e,f,o)=>{e.exports=o.p+"9674eb1bd55047179038.svg"}}]);
\ No newline at end of file
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1189.c1482e88f0e949753db6.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1189.c1482e88f0e949753db6.js
deleted file mode 100644
index fa51589242653d7fc169ae28b62d6d81a45d3871..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1189.c1482e88f0e949753db6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1189],{91189:(e,r,t)=>{t.r(r);t.d(r,{tcl:()=>p});function a(e){var r={},t=e.split(" ");for(var a=0;a!?^\/\|]/;function o(e,r,t){r.tokenize=t;return t(e,r)}function s(e,r){var t=r.beforeParams;r.beforeParams=false;var a=e.next();if((a=='"'||a=="'")&&r.inParams){return o(e,r,f(a))}else if(/[\[\]{}\(\),;\.]/.test(a)){if(a=="("&&t)r.inParams=true;else if(a==")")r.inParams=false;return null}else if(/\d/.test(a)){e.eatWhile(/[\w\.]/);return"number"}else if(a=="#"){if(e.eat("*"))return o(e,r,u);if(a=="#"&&e.match(/ *\[ *\[/))return o(e,r,c);e.skipToEnd();return"comment"}else if(a=='"'){e.skipTo(/"/);return"comment"}else if(a=="$"){e.eatWhile(/[$_a-z0-9A-Z\.{:]/);e.eatWhile(/}/);r.beforeParams=true;return"builtin"}else if(l.test(a)){e.eatWhile(l);return"comment"}else{e.eatWhile(/[\w\$_{}\xa1-\uffff]/);var s=e.current().toLowerCase();if(n&&n.propertyIsEnumerable(s))return"keyword";if(i&&i.propertyIsEnumerable(s)){r.beforeParams=true;return"keyword"}return null}}function f(e){return function(r,t){var a=false,n,i=false;while((n=r.next())!=null){if(n==e&&!a){i=true;break}a=!a&&n=="\\"}if(i)t.tokenize=s;return"string"}}function u(e,r){var t=false,a;while(a=e.next()){if(a=="#"&&t){r.tokenize=s;break}t=a=="*"}return"comment"}function c(e,r){var t=0,a;while(a=e.next()){if(a=="#"&&t==2){r.tokenize=s;break}if(a=="]")t++;else if(a!=" ")t=0}return"meta"}const p={name:"tcl",startState:function(){return{tokenize:s,beforeParams:false,inParams:false}},token:function(e,r){if(e.eatSpace())return null;return r.tokenize(e,r)},languageData:{commentTokens:{line:"#"}}}}}]);
\ No newline at end of file
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1208.4b9ab7b231d39ebdbc3f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1208.4b9ab7b231d39ebdbc3f.js
deleted file mode 100644
index e3cf6bbf3d56e2bd96243befc0ad79fe2e0a7a2c..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1208.4b9ab7b231d39ebdbc3f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1208],{91208:(e,t,r)=>{r.r(t);r.d(t,{DefaultBufferLength:()=>n,IterMode:()=>d,MountedTree:()=>o,NodeProp:()=>l,NodeSet:()=>u,NodeType:()=>h,NodeWeakMap:()=>E,Parser:()=>j,Tree:()=>c,TreeBuffer:()=>m,TreeCursor:()=>I,TreeFragment:()=>O,parseMixed:()=>D});const n=1024;let i=0;class s{constructor(e,t){this.from=e;this.to=t}}class l{constructor(e={}){this.id=i++;this.perNode=!!e.perNode;this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");if(typeof e!="function")e=h.match(e);return t=>{let r=e(t);return r===undefined?null:[this,r]}}}l.closedBy=new l({deserialize:e=>e.split(" ")});l.openedBy=new l({deserialize:e=>e.split(" ")});l.group=new l({deserialize:e=>e.split(" ")});l.isolate=new l({deserialize:e=>{if(e&&e!="rtl"&&e!="ltr"&&e!="auto")throw new RangeError("Invalid value for isolate: "+e);return e||"auto"}});l.contextHash=new l({perNode:true});l.lookAhead=new l({perNode:true});l.mounted=new l({perNode:true});class o{constructor(e,t,r){this.tree=e;this.overlay=t;this.parser=r}static get(e){return e&&e.props&&e.props[l.mounted.id]}}const f=Object.create(null);class h{constructor(e,t,r,n=0){this.name=e;this.props=t;this.id=r;this.flags=n}static define(e){let t=e.props&&e.props.length?Object.create(null):f;let r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0);let n=new h(e.name||"",t,e.id,r);if(e.props)for(let i of e.props){if(!Array.isArray(i))i=i(n);if(i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[i[0].id]=i[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return true;let t=this.prop(l.group);return t?t.indexOf(e)>-1:false}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let n of r.split(" "))t[n]=e[r];return e=>{for(let r=e.prop(l.group),n=-1;n<(r?r.length:0);n++){let i=t[n<0?e.name:r[n]];if(i)return i}}}}h.none=new h("",Object.create(null),0,8);class u{constructor(e){this.types=e;for(let t=0;t0;for(let o=this.cursor(s|d.IncludeAnonymous);;){let e=false;if(o.from<=i&&o.to>=n&&(!l&&o.type.isAnonymous||t(o)!==false)){if(o.firstChild())continue;e=true}for(;;){if(e&&r&&(l||!o.type.isAnonymous))r(o);if(o.nextSibling())break;if(!o.parent())return;e=true}}}prop(e){return!e.perNode?this.type.prop(e):this.props?this.props[e.id]:undefined}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:P(h.none,this.children,this.positions,0,this.children.length,0,this.length,((e,t,r)=>new c(this.type,e,t,r,this.propValues)),e.makeTree||((e,t,r)=>new c(h.none,e,t,r)))}static build(e){return T(e)}}c.empty=new c(h.none,[],[],0);class g{constructor(e,t){this.buffer=e;this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new g(this.buffer,this.index)}}class m{constructor(e,t,r){this.buffer=e;this.length=t;this.set=r}get type(){return h.none}toString(){let e=[];for(let t=0;t0)break}}return l}slice(e,t,r){let n=this.buffer;let i=new Uint16Array(t-e),s=0;for(let l=e,o=0;l=t&&rt;case 1:return r<=t&&n>t;case 2:return n>t;case 4:return true}}function x(e,t,r,n){var i;while(e.from==e.to||(r<1?e.from>=t:e.from>t)||(r>-1?e.to<=t:e.to0?l.length:-1;e!=h;e+=t){let h=l[e],u=f[e]+s.from;if(!b(n,r,u,u+h.length))continue;if(h instanceof m){if(i&d.ExcludeBuffers)continue;let l=h.findChild(0,h.buffer.length,t,r-u,n);if(l>-1)return new A(new k(s,h,e,u),null,l)}else if(i&d.IncludeAnonymous||(!h.type.isAnonymous||B(h))){let l;if(!(i&d.IgnoreMounts)&&(l=o.get(h))&&!l.overlay)return new w(l.tree,u,e,s);let f=new w(h,u,e,s);return i&d.IncludeAnonymous||!f.type.isAnonymous?f:f.nextChild(t<0?h.children.length-1:0,t,r,n)}}if(i&d.IncludeAnonymous||!s.type.isAnonymous)return null;if(s.index>=0)e=s.index+t;else e=t<0?-1:s._parent._tree.children.length;s=s._parent;if(!s)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,r=0){let n;if(!(r&d.IgnoreOverlays)&&(n=o.get(this._tree))&&n.overlay){let r=e-this.from;for(let{from:e,to:i}of n.overlay){if((t>0?e<=r:e=r:i>r))return new w(n.tree,n.overlay[0].from+this.from,-1,this)}}return this.nextChild(0,1,e,t,r)}nextSignificantParent(){let e=this;while(e.type.isAnonymous&&e._parent)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function v(e,t,r,n){let i=e.cursor(),s=[];if(!i.firstChild())return s;if(r!=null)for(let l=false;!l;){l=i.type.is(r);if(!i.nextSibling())return s}for(;;){if(n!=null&&i.type.is(n))return s;if(i.type.is(t))s.push(i.node);if(!i.nextSibling())return n==null?s:[]}}function _(e,t,r=t.length-1){for(let n=e.parent;r>=0;n=n.parent){if(!n)return false;if(!n.type.isAnonymous){if(t[r]&&t[r]!=n.name)return false;r--}}return true}class k{constructor(e,t,r,n){this.parent=e;this.buffer=t;this.index=r;this.start=n}}class A extends y{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,r){super();this.context=e;this._parent=t;this.index=r;this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:n}=this.context;let i=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.context.start,r);return i<0?null:new A(this.context,this,i)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,r=0){if(r&d.ExcludeBuffers)return null;let{buffer:n}=this.context;let i=n.findChild(this.index+4,n.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return i<0?null:new A(this.context,this,i)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context;let t=e.buffer[this.index+3];if(t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length))return new A(this.context,this._parent,t);return this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context;let t=this._parent?this._parent.index+4:0;if(this.index==t)return this.externalSibling(-1);return new A(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[];let{buffer:r}=this.context;let n=this.index+4,i=r.buffer[this.index+3];if(i>n){let s=r.buffer[this.index+1];e.push(r.slice(n,i,s));t.push(0)}return new c(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function C(e){if(!e.length)return null;let t=0,r=e[0];for(let s=1;sr.from||n.to=t){let l=new w(e.tree,e.overlay[0].from+s.from,-1,s);(i||(i=[n])).push(x(l,t,r,false))}}}return i?C(i):n}class I{get name(){return this.type.name}constructor(e,t=0){this.mode=t;this.buffer=null;this.stack=[];this.index=0;this.bufferNode=null;if(e instanceof w){this.yieldNode(e)}else{this._tree=e.context.parent;this.buffer=e.context;for(let t=e._parent;t;t=t._parent)this.stack.unshift(t.index);this.bufferNode=e;this.yieldBuf(e.index)}}yieldNode(e){if(!e)return false;this._tree=e;this.type=e.type;this.from=e.from;this.to=e.to;return true}yieldBuf(e,t){this.index=e;let{start:r,buffer:n}=this.buffer;this.type=t||n.set.types[n.buffer[e]];this.from=r+n.buffer[e+1];this.to=r+n.buffer[e+2];return true}yield(e){if(!e)return false;if(e instanceof w){this.buffer=null;return this.yieldNode(e)}this.buffer=e.context;return this.yieldBuf(e.index,e.type)}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:n}=this.buffer;let i=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.buffer.start,r);if(i<0)return false;this.stack.push(this.index);return this.yieldBuf(i)}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,r=this.mode){if(!this.buffer)return this.yield(this._tree.enter(e,t,r));return r&d.ExcludeBuffers?false:this.enterChild(1,e,t)}parent(){if(!this.buffer)return this.yieldNode(this.mode&d.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&d.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();this.buffer=null;return this.yieldNode(e)}sibling(e){if(!this.buffer)return!this._tree._parent?false:this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode));let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let e=r<0?0:this.stack[r]+4;if(this.index!=e)return this.yieldBuf(t.findChild(e,this.index,-1,0,4))}else{let e=t.buffer[this.index+3];if(e<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(e)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):false}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let n=t+e,i=e<0?-1:r._tree.children.length;n!=i;n+=e){let e=r._tree.children[n];if(this.mode&d.IncludeAnonymous||e instanceof m||!e.type.isAnonymous||B(e))return false}}return true}move(e,t){if(t&&this.enterChild(e,0,4))return true;for(;;){if(this.sibling(e))return true;if(this.atLastNode(e)||!this.parent())return false}}next(e=true){return this.move(1,e)}prev(e=true){return this.move(-1,e)}moveTo(e,t=0){while(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let s=e;s;s=s._parent)if(s.index==n){if(n==this.index)return s;t=s;r=i+1;break e}n=this.stack[--i]}}for(let n=r;n=0;i--){if(i<0)return _(this.node,e,n);let s=r[t.buffer[this.stack[i]]];if(!s.isAnonymous){if(e[n]&&e[n]!=s.name)return false;n--}}return true}}function B(e){return e.children.some((e=>e instanceof m||!e.type.isAnonymous||B(e)))}function T(e){var t;let{buffer:r,nodeSet:i,maxBufferLength:s=n,reused:o=[],minRepeatType:f=i.types.length}=e;let h=Array.isArray(r)?new g(r,r.length):r;let u=i.types;let a=0,p=0;function d(e,t,r,n,l,c){let{id:g,start:k,end:A,size:C}=h;let S=p;while(C<0){h.next();if(C==-1){let t=o[g];r.push(t);n.push(k-e);return}else if(C==-3){a=g;return}else if(C==-4){p=g;return}else{throw new RangeError(`Unrecognized record size: ${C}`)}}let N=u[g],I,B;let T=k-e;if(A-k<=s&&(B=v(h.pos-t,l))){let t=new Uint16Array(B.size-B.skip);let r=h.pos-B.size,n=t.length;while(h.pos>r)n=_(B.start,t,n);I=new m(t,A-B.start,i);T=B.start-e}else{let e=h.pos-C;h.next();let t=[],r=[];let n=g>=f?g:-1;let i=0,l=A;while(h.pos>e){if(n>=0&&h.id==n&&h.size>=0){if(h.end<=l-s){y(t,r,k,i,h.end,l,n,S);i=t.length;l=h.end}h.next()}else if(c>2500){b(k,e,t,r)}else{d(k,e,t,r,n,c+1)}}if(n>=0&&i>0&&i-1&&i>0){let e=x(N);I=P(N,t,r,0,t.length,0,A-k,e,e)}else{I=w(N,t,r,A-k,S-A)}}r.push(I);n.push(T)}function b(e,t,r,n){let l=[];let o=0,f=-1;while(h.pos>t){let{id:e,start:t,end:r,size:n}=h;if(n>4){h.next()}else if(f>-1&&t=0;e-=3){t[r++]=l[e];t[r++]=l[e+1]-s;t[r++]=l[e+2]-s;t[r++]=r}r.push(new m(t,l[2]-s,i));n.push(s-e)}}function x(e){return(t,r,n)=>{let i=0,s=t.length-1,o,f;if(s>=0&&(o=t[s])instanceof c){if(!s&&o.type==e&&o.length==n)return o;if(f=o.prop(l.lookAhead))i=r[s]+o.length+f}return w(e,t,r,n,i)}}function y(e,t,r,n,s,l,o,f){let h=[],u=[];while(e.length>n){h.push(e.pop());u.push(t.pop()+r-s)}e.push(w(i.types[o],h,u,l-s,f-l));t.push(s-r)}function w(e,t,r,n,i=0,s){if(a){let e=[l.contextHash,a];s=s?[e].concat(s):[e]}if(i>25){let e=[l.lookAhead,i];s=s?[e].concat(s):[e]}return new c(e,t,r,n,s)}function v(e,t){let r=h.fork();let n=0,i=0,l=0,o=r.end-s;let u={size:0,start:0,skip:0};e:for(let s=r.pos-e;r.pos>s;){let e=r.size;if(r.id==t&&e>=0){u.size=n;u.start=i;u.skip=l;l+=4;n+=4;r.next();continue}let h=r.pos-e;if(e<0||h=f?4:0;let p=r.start;r.next();while(r.pos>h){if(r.size<0){if(r.size==-3)a+=4;else break e}else if(r.id>=f){a+=4}r.next()}i=p;n+=e;l+=a}if(t<0||n==e){u.size=n;u.start=i;u.skip=l}return u.size>4?u:undefined}function _(e,t,r){let{id:n,start:i,end:s,size:l}=h;h.next();if(l>=0&&n4){let n=h.pos-(l-4);while(h.pos>n)r=_(e,t,r)}t[--r]=o;t[--r]=s-e;t[--r]=i-e;t[--r]=n}else if(l==-3){a=n}else if(l==-4){p=n}return r}let k=[],A=[];while(h.pos>0)d(e.start||0,e.bufferStart||0,k,A,-1,0);let C=(t=e.length)!==null&&t!==void 0?t:k.length?A[0]+k[0].length:0;return new c(u[e.topID],k.reverse(),A.reverse(),C)}const M=new WeakMap;function z(e,t){if(!e.isAnonymous||t instanceof m||t.type!=e)return 1;let r=M.get(t);if(r==null){r=1;for(let n of t.children){if(n.type!=e||!(n instanceof c)){r=1;break}r+=z(e,n)}M.set(t,r)}return r}function P(e,t,r,n,i,s,l,o,f){let h=0;for(let c=n;c=u)break;c+=r}if(o==n+1){if(c>u){let e=t[n];d(e.children,e.positions,0,e.children.length,r[n]+l);continue}a.push(t[n])}else{let i=r[o-1]+t[o-1].length-h;a.push(P(e,t,r,n,o,h,i,null,f))}p.push(h+l-s)}}d(t,r,n,i,0);return(o||f)(a,p,l)}class E{constructor(){this.map=new WeakMap}setBuffer(e,t,r){let n=this.map.get(e);if(!n)this.map.set(e,n=new Map);n.set(t,r)}getBuffer(e,t){let r=this.map.get(e);return r&&r.get(t)}set(e,t){if(e instanceof A)this.setBuffer(e.context.buffer,e.index,t);else if(e instanceof w)this.map.set(e.tree,t)}get(e){return e instanceof A?this.getBuffer(e.context.buffer,e.index):e instanceof w?this.map.get(e.tree):undefined}cursorSet(e,t){if(e.buffer)this.setBuffer(e.buffer.buffer,e.index,t);else this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class O{constructor(e,t,r,n,i=false,s=false){this.from=e;this.to=t;this.tree=r;this.offset=n;this.open=(i?1:0)|(s?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],r=false){let n=[new O(0,e.length,e,0,false,r)];for(let i of t)if(i.to>e.length)n.push(i);return n}static applyChanges(e,t,r=128){if(!t.length)return e;let n=[];let i=1,s=e.length?e[0]:null;for(let l=0,o=0,f=0;;l++){let h=l=r)while(s&&s.from=t.from||u<=t.to||f){let e=Math.max(t.from,o)-f,r=Math.min(t.to,u)-f;t=e>=r?null:new O(e,r,t.tree,t.offset+f,l>0,!!h)}if(t)n.push(t);if(s.to>u)break;s=inew s(e.from,e.to))):[new s(0,0)];return this.createParse(e,t||[],r)}parse(e,t,r){let n=this.startParse(e,t,r);for(;;){let e=n.advance();if(e)return e}}}class F{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return false}read(e,t){return this.string.slice(e,t)}}function D(e){return(t,r,n,i)=>new J(t,e,r,n,i)}class R{constructor(e,t,r,n,i){this.parser=e;this.parse=t;this.overlay=r;this.target=n;this.from=i}}function W(e){if(!e.length||e.some((e=>e.from>=e.to)))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(e))}class U{constructor(e,t,r,n,i,s,l){this.parser=e;this.predicate=t;this.mounts=r;this.index=n;this.start=i;this.target=s;this.prev=l;this.depth=0;this.ranges=[]}}const L=new l({perNode:true});class J{constructor(e,t,r,n,i){this.nest=t;this.input=r;this.fragments=n;this.ranges=i;this.inner=[];this.innerDone=0;this.baseTree=null;this.stoppedAt=null;this.baseParse=e}advance(){if(this.baseParse){let e=this.baseParse.advance();if(!e)return null;this.baseParse=null;this.baseTree=e;this.startInner();if(this.stoppedAt!=null)for(let t of this.inner)t.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let e=this.baseTree;if(this.stoppedAt!=null)e=new c(e.type,e.children,e.positions,e.length,e.propValues.concat([[L,this.stoppedAt]]));return e}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let r=Object.assign(Object.create(null),e.target.props);r[l.mounted.id]=new o(t,e.overlay,e.parser);e.target.props=r}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt){o=false}else if(e.hasNode(n)){if(t){let e=t.mounts.find((e=>e.frag.from<=n.from&&e.frag.to>=n.to&&e.mount.overlay));if(e)for(let r of e.mount.overlay){let i=r.from+e.pos,s=r.to+e.pos;if(i>=n.from&&s<=n.to&&!t.ranges.some((e=>e.fromi)))t.ranges.push({from:i,to:s})}}o=false}else if(r&&(l=V(r.ranges,n.from,n.to))){o=l!=2}else if(!n.type.isAnonymous&&(i=this.nest(n,this.input))&&(n.fromnew s(e.from-n.from,e.to-n.from))):null,n.tree,e.length?e[0].from:n.from));if(!i.overlay)o=false;else if(e.length)r={ranges:e,depth:0,prev:r}}}else if(t&&(f=t.predicate(n))){if(f===true)f=new s(n.from,n.to);if(f.fromnew s(e.from-t.start,e.to-t.start))),t.target,e[0].from))}t=t.prev}if(r&&! --r.depth)r=r.prev}}}}}function V(e,t,r){for(let n of e){if(n.from>=r)break;if(n.to>t)return n.from<=t&&n.to>=r?2:1}return 0}function H(e,t,r,n,i,s){if(t=e&&t.enter(r,1,d.IgnoreOverlays|d.ExcludeBuffers));else if(!t.next(false))this.done=true}}hasNode(e){this.moveTo(e.from);if(!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree){for(let t=this.cursor.tree;;){if(t==e.tree)return true;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof c)t=t.children[0];else break}}return false}}class q{constructor(e){var t;this.fragments=e;this.curTo=0;this.fragI=0;if(e.length){let r=this.curFrag=e[0];this.curTo=(t=r.tree.prop(L))!==null&&t!==void 0?t:r.to;this.inner=new $(r.tree,-r.offset)}else{this.curFrag=this.inner=null}}hasNode(e){while(this.curFrag&&e.from>=this.curTo)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;this.fragI++;if(this.fragI==this.fragments.length){this.curFrag=this.inner=null}else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(L))!==null&&e!==void 0?e:t.to;this.inner=new $(t.tree,-t.offset)}}findMounts(e,t){var r;let n=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let e=this.inner.cursor.node;e;e=e.parent){let i=(r=e.tree)===null||r===void 0?void 0:r.prop(l.mounted);if(i&&i.parser==t){for(let t=this.fragI;t=e.to)break;if(r.tree==this.curFrag.tree)n.push({frag:r,pos:e.from-r.offset,mount:i})}}}}return n}}function K(e,t){let r=null,n=t;for(let i=1,l=0;i=f)break;if(e.to<=o)continue;if(!r)n=r=t.slice();if(e.fromf)r.splice(l+1,0,new s(f,e.to))}else if(e.to>f){r[l--]=new s(f,e.to)}else{r.splice(l--,1)}}}return n}function Q(e,t,r,n){let i=0,l=0,o=false,f=false,h=-1e9;let u=[];for(;;){let a=i==e.length?1e9:o?e[i].to:e[i].from;let p=l==t.length?1e9:f?t[l].to:t[l].from;if(o!=f){let e=Math.max(h,r),t=Math.min(a,p,n);if(enew s(e.from+n,e.to+n)));let u=Q(t,o,f,h);for(let t=0,n=f;;t++){let s=t==u.length,o=s?h:u[t].from;if(o>n)r.push(new O(n,o,i.tree,-e,l.from>=n||l.openStart,l.to<=o||l.openEnd));if(s)break;n=u[t].to}}else{r.push(new O(f,h,i.tree,-e,l.from>=e||l.openStart,l.to<=o||l.openEnd))}}return r}}}]);
\ No newline at end of file
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1219.b5630aa3a46050fddc27.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1219.b5630aa3a46050fddc27.js
deleted file mode 100644
index 25845f3cd0408838886eb9fb66f3aede3de87c44..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1219.b5630aa3a46050fddc27.js
+++ /dev/null
@@ -1 +0,0 @@
-(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1219],{81219:function(u){(function(D,e){true?u.exports=e():0})(this,(function(){"use strict";function u(u,D){return D={exports:{}},u(D,D.exports),D.exports}var D=u((function(u){var D=u.exports=typeof window!="undefined"&&window.Math==Math?window:typeof self!="undefined"&&self.Math==Math?self:Function("return this")();if(typeof __g=="number"){__g=D}}));var e=u((function(u){var D=u.exports={version:"2.6.5"};if(typeof __e=="number"){__e=D}}));var r=e.version;var t=function(u){return typeof u==="object"?u!==null:typeof u==="function"};var n=function(u){if(!t(u)){throw TypeError(u+" is not an object!")}return u};var F=function(u){try{return!!u()}catch(D){return true}};var C=!F((function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7}));var A=D.document;var i=t(A)&&t(A.createElement);var a=function(u){return i?A.createElement(u):{}};var E=!C&&!F((function(){return Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a!=7}));var o=function(u,D){if(!t(u)){return u}var e,r;if(D&&typeof(e=u.toString)=="function"&&!t(r=e.call(u))){return r}if(typeof(e=u.valueOf)=="function"&&!t(r=e.call(u))){return r}if(!D&&typeof(e=u.toString)=="function"&&!t(r=e.call(u))){return r}throw TypeError("Can't convert object to primitive value")};var c=Object.defineProperty;var f=C?Object.defineProperty:function u(D,e,r){n(D);e=o(e,true);n(r);if(E){try{return c(D,e,r)}catch(t){}}if("get"in r||"set"in r){throw TypeError("Accessors not supported!")}if("value"in r){D[e]=r.value}return D};var B={f};var s=function(u,D){return{enumerable:!(u&1),configurable:!(u&2),writable:!(u&4),value:D}};var l=C?function(u,D,e){return B.f(u,D,s(1,e))}:function(u,D,e){u[D]=e;return u};var v={}.hasOwnProperty;var d=function(u,D){return v.call(u,D)};var p=0;var h=Math.random();var g=function(u){return"Symbol(".concat(u===undefined?"":u,")_",(++p+h).toString(36))};var m=false;var y=u((function(u){var r="__core-js_shared__";var t=D[r]||(D[r]={});(u.exports=function(u,D){return t[u]||(t[u]=D!==undefined?D:{})})("versions",[]).push({version:e.version,mode:m?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})}));var w=y("native-function-to-string",Function.toString);var b=u((function(u){var r=g("src");var t="toString";var n=(""+w).split(t);e.inspectSource=function(u){return w.call(u)};(u.exports=function(u,e,t,F){var C=typeof t=="function";if(C){d(t,"name")||l(t,"name",e)}if(u[e]===t){return}if(C){d(t,r)||l(t,r,u[e]?""+u[e]:n.join(String(e)))}if(u===D){u[e]=t}else if(!F){delete u[e];l(u,e,t)}else if(u[e]){u[e]=t}else{l(u,e,t)}})(Function.prototype,t,(function u(){return typeof this=="function"&&this[r]||w.call(this)}))}));var S=function(u){if(typeof u!="function"){throw TypeError(u+" is not a function!")}return u};var x=function(u,D,e){S(u);if(D===undefined){return u}switch(e){case 1:return function(e){return u.call(D,e)};case 2:return function(e,r){return u.call(D,e,r)};case 3:return function(e,r,t){return u.call(D,e,r,t)}}return function(){return u.apply(D,arguments)}};var N="prototype";var P=function(u,r,t){var n=u&P.F;var F=u&P.G;var C=u&P.S;var A=u&P.P;var i=u&P.B;var a=F?D:C?D[r]||(D[r]={}):(D[r]||{})[N];var E=F?e:e[r]||(e[r]={});var o=E[N]||(E[N]={});var c,f,B,s;if(F){t=r}for(c in t){f=!n&&a&&a[c]!==undefined;B=(f?a:t)[c];s=i&&f?x(B,D):A&&typeof B=="function"?x(Function.call,B):B;if(a){b(a,c,B,u&P.U)}if(E[c]!=B){l(E,c,s)}if(A&&o[c]!=B){o[c]=B}}};D.core=e;P.F=1;P.G=2;P.S=4;P.P=8;P.B=16;P.W=32;P.U=64;P.R=128;var _=P;var I=Math.ceil;var O=Math.floor;var j=function(u){return isNaN(u=+u)?0:(u>0?O:I)(u)};var k=function(u){if(u==undefined){throw TypeError("Can't call method on  "+u)}return u};var V=function(u){return function(D,e){var r=String(k(D));var t=j(e);var n=r.length;var F,C;if(t<0||t>=n){return u?"":undefined}F=r.charCodeAt(t);return F<55296||F>56319||t+1===n||(C=r.charCodeAt(t+1))<56320||C>57343?u?r.charAt(t):F:u?r.slice(t,t+2):(F-55296<<10)+(C-56320)+65536}};var M=V(false);_(_.P,"String",{codePointAt:function u(D){return M(this,D)}});var J=e.String.codePointAt;var L=Math.max;var T=Math.min;var z=function(u,D){u=j(u);return u<0?L(u+D,0):T(u,D)};var H=String.fromCharCode;var $=String.fromCodePoint;_(_.S+_.F*(!!$&&$.length!=1),"String",{fromCodePoint:function u(D){var e=arguments;var r=[];var t=arguments.length;var n=0;var F;while(t>n){F=+e[n++];if(z(F,1114111)!==F){throw RangeError(F+" is not a valid code point")}r.push(F<65536?H(F):H(((F-=65536)>>10)+55296,F%1024+56320))}return r.join("")}});var R=e.String.fromCodePoint;var G=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/;var U=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;var Z=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;var q={Space_Separator:G,ID_Start:U,ID_Continue:Z};var W={isSpaceSeparator:function u(D){return typeof D==="string"&&q.Space_Separator.test(D)},isIdStartChar:function u(D){return typeof D==="string"&&(D>="a"&&D<="z"||D>="A"&&D<="Z"||D==="$"||D==="_"||q.ID_Start.test(D))},isIdContinueChar:function u(D){return typeof D==="string"&&(D>="a"&&D<="z"||D>="A"&&D<="Z"||D>="0"&&D<="9"||D==="$"||D==="_"||D==="‌"||D==="‍"||q.ID_Continue.test(D))},isDigit:function u(D){return typeof D==="string"&&/[0-9]/.test(D)},isHexDigit:function u(D){return typeof D==="string"&&/[0-9A-Fa-f]/.test(D)}};var X;var K;var Q;var Y;var uu;var Du;var eu;var ru;var tu;var nu=function u(D,e){X=String(D);K="start";Q=[];Y=0;uu=1;Du=0;eu=undefined;ru=undefined;tu=undefined;do{eu=ou();hu[K]()}while(eu.type!=="eof");if(typeof e==="function"){return Fu({"":tu},"",e)}return tu};function Fu(u,D,e){var r=u[D];if(r!=null&&typeof r==="object"){if(Array.isArray(r)){for(var t=0;t0){var e=cu();if(!W.isHexDigit(e)){throw yu(fu())}u+=fu()}return String.fromCodePoint(parseInt(u,16))}var hu={start:function u(){if(eu.type==="eof"){throw wu()}gu()},beforePropertyName:function u(){switch(eu.type){case"identifier":case"string":ru=eu.value;K="afterPropertyName";return;case"punctuator":mu();return;case"eof":throw wu()}},afterPropertyName:function u(){if(eu.type==="eof"){throw wu()}K="beforePropertyValue"},beforePropertyValue:function u(){if(eu.type==="eof"){throw wu()}gu()},beforeArrayValue:function u(){if(eu.type==="eof"){throw wu()}if(eu.type==="punctuator"&&eu.value==="]"){mu();return}gu()},afterPropertyValue:function u(){if(eu.type==="eof"){throw wu()}switch(eu.value){case",":K="beforePropertyName";return;case"}":mu()}},afterArrayValue:function u(){if(eu.type==="eof"){throw wu()}switch(eu.value){case",":K="beforeArrayValue";return;case"]":mu()}},end:function u(){}};function gu(){var u;switch(eu.type){case"punctuator":switch(eu.value){case"{":u={};break;case"[":u=[];break}break;case"null":case"boolean":case"numeric":case"string":u=eu.value;break}if(tu===undefined){tu=u}else{var D=Q[Q.length-1];if(Array.isArray(D)){D.push(u)}else{Object.defineProperty(D,ru,{value:u,writable:true,enumerable:true,configurable:true})}}if(u!==null&&typeof u==="object"){Q.push(u);if(Array.isArray(u)){K="beforeArrayValue"}else{K="beforePropertyName"}}else{var e=Q[Q.length-1];if(e==null){K="end"}else if(Array.isArray(e)){K="afterArrayValue"}else{K="afterPropertyValue"}}}function mu(){Q.pop();var u=Q[Q.length-1];if(u==null){K="end"}else if(Array.isArray(u)){K="afterArrayValue"}else{K="afterPropertyValue"}}function yu(u){if(u===undefined){return Nu("JSON5: invalid end of input at "+uu+":"+Du)}return Nu("JSON5: invalid character '"+xu(u)+"' at "+uu+":"+Du)}function wu(){return Nu("JSON5: invalid end of input at "+uu+":"+Du)}function bu(){Du-=5;return Nu("JSON5: invalid identifier character at "+uu+":"+Du)}function Su(u){console.warn("JSON5: '"+xu(u)+"' in strings is not valid ECMAScript; consider escaping")}function xu(u){var D={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(D[u]){return D[u]}if(u<" "){var e=u.charCodeAt(0).toString(16);return"\\x"+("00"+e).substring(e.length)}return u}function Nu(u){var D=new SyntaxError(u);D.lineNumber=uu;D.columnNumber=Du;return D}var Pu=function u(D,e,r){var t=[];var n="";var F;var C;var A="";var i;if(e!=null&&typeof e==="object"&&!Array.isArray(e)){r=e.space;i=e.quote;e=e.replacer}if(typeof e==="function"){C=e}else if(Array.isArray(e)){F=[];for(var a=0,E=e;a0){r=Math.min(10,Math.floor(r));A="          ".substr(0,r)}}else if(typeof r==="string"){A=r.substr(0,10)}return f("",{"":D});function f(u,D){var e=D[u];if(e!=null){if(typeof e.toJSON5==="function"){e=e.toJSON5(u)}else if(typeof e.toJSON==="function"){e=e.toJSON(u)}}if(C){e=C.call(D,u,e)}if(e instanceof Number){e=Number(e)}else if(e instanceof String){e=String(e)}else if(e instanceof Boolean){e=e.valueOf()}switch(e){case null:return"null";case true:return"true";case false:return"false"}if(typeof e==="string"){return B(e,false)}if(typeof e==="number"){return String(e)}if(typeof e==="object"){return Array.isArray(e)?v(e):s(e)}return undefined}function B(u){var D={"'":.1,'"':.2};var e={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};var r="";for(var t=0;t=0){throw TypeError("Converting circular structure to JSON5")}t.push(u);var D=n;n=n+A;var e=F||Object.keys(u);var r=[];for(var C=0,i=e;C=0){throw TypeError("Converting circular structure to JSON5")}t.push(u);var D=n;n=n+A;var e=[];for(var r=0;r{s.d(t,{KO:()=>us});var i=s(66575);var n=s.n(i);var r=s(27421);var l=s(65606);class a{constructor(e){this.start=e}}class o extends a{constructor(e,t,s,i,n,r,l,a,o,u,h,f,c,p,d){super(e);this.rules=t;this.topRules=s;this.tokens=i;this.localTokens=n;this.context=r;this.externalTokens=l;this.externalSpecializers=a;this.externalPropSources=o;this.precedences=u;this.mainSkip=h;this.scopedSkip=f;this.dialects=c;this.externalProps=p;this.autoDelim=d}toString(){return Object.values(this.rules).join("\n")}}class u extends a{constructor(e,t,s,i,n){super(e);this.id=t;this.props=s;this.params=i;this.expr=n}toString(){return this.id.name+(this.params.length?`<${this.params.join()}>`:"")+" -> "+this.expr}}class h extends a{constructor(e,t){super(e);this.items=t}}class f extends a{constructor(e,t){super(e);this.items=t}}class c extends a{constructor(e,t,s){super(e);this.a=t;this.b=s}}class p extends a{constructor(e,t,s,i,n){super(e);this.precedences=t;this.conflicts=s;this.rules=i;this.literals=n}}class d extends a{constructor(e,t,s,i){super(e);this.precedences=t;this.rules=s;this.fallback=i}}class m extends a{constructor(e,t,s){super(e);this.literal=t;this.props=s}}class g extends a{constructor(e,t,s){super(e);this.id=t;this.source=s}}class k extends a{constructor(e,t,s,i){super(e);this.id=t;this.source=s;this.tokens=i}}class x extends a{constructor(e,t,s,i,n,r){super(e);this.type=t;this.token=s;this.id=i;this.source=n;this.tokens=r}}class b extends a{constructor(e,t,s){super(e);this.id=t;this.source=s}}class w extends a{constructor(e,t,s,i){super(e);this.id=t;this.externalID=s;this.source=i}}class y extends a{constructor(e,t){super(e);this.name=t}toString(){return this.name}}class $ extends a{walk(e){return e(this)}eq(e){return false}}$.prototype.prec=10;class v extends ${constructor(e,t,s){super(e);this.id=t;this.args=s}toString(){return this.id.name+(this.args.length?`<${this.args.join()}>`:"")}eq(e){return this.id.name==e.id.name&&G(this.args,e.args)}walk(e){let t=C(this.args,e);return e(t==this.args?this:new v(this.start,this.id,t))}}class S extends ${constructor(e,t,s,i,n){super(e);this.type=t;this.props=s;this.token=i;this.content=n}toString(){return`@${this.type}[${this.props.join(",")}]<${this.token}, ${this.content}>`}eq(e){return this.type==e.type&&E.eqProps(this.props,e.props)&&D(this.token,e.token)&&D(this.content,e.content)}walk(e){let t=this.token.walk(e),s=this.content.walk(e);return e(t==this.token&&s==this.content?this:new S(this.start,this.type,this.props,t,s))}}class T extends ${constructor(e,t){super(e);this.rule=t}toString(){let e=this.rule;return`${e.id}${e.props.length?`[${e.props.join(",")}]`:""} { ${e.expr} }`}eq(e){let t=this.rule,s=e.rule;return D(t.expr,s.expr)&&t.id.name==s.id.name&&E.eqProps(t.props,s.props)}walk(e){let t=this.rule,s=t.expr.walk(e);return e(s==t.expr?this:new T(this.start,new u(t.start,t.id,t.props,[],s)))}}class O extends ${constructor(e,t){super(e);this.exprs=t}toString(){return this.exprs.map((e=>_(e,this))).join(" | ")}eq(e){return G(this.exprs,e.exprs)}walk(e){let t=C(this.exprs,e);return e(t==this.exprs?this:new O(this.start,t))}}O.prototype.prec=1;class R extends ${constructor(e,t,s,i=false){super(e);this.exprs=t;this.markers=s;this.empty=i}toString(){return this.empty?"()":this.exprs.map((e=>_(e,this))).join(" ")}eq(e){return G(this.exprs,e.exprs)&&this.markers.every(((t,s)=>{let i=e.markers[s];return t.length==i.length&&t.every(((e,t)=>e.eq(i[t])))}))}walk(e){let t=C(this.exprs,e);return e(t==this.exprs?this:new R(this.start,t,this.markers,this.empty&&!t.length))}}R.prototype.prec=2;class P extends a{constructor(e,t,s){super(e);this.id=t;this.type=s}toString(){return(this.type=="ambig"?"~":"!")+this.id.name}eq(e){return this.id.name==e.id.name&&this.type==e.type}}class j extends ${constructor(e,t,s){super(e);this.expr=t;this.kind=s}toString(){return _(this.expr,this)+this.kind}eq(e){return D(this.expr,e.expr)&&this.kind==e.kind}walk(e){let t=this.expr.walk(e);return e(t==this.expr?this:new j(this.start,t,this.kind))}}j.prototype.prec=3;class N extends ${constructor(e,t){super(e);this.value=t}toString(){return JSON.stringify(this.value)}eq(e){return this.value==e.value}}class A extends ${constructor(e,t,s){super(e);this.ranges=t;this.inverted=s}toString(){return`[${this.inverted?"^":""}${this.ranges.map((([e,t])=>String.fromCodePoint(e)+(t==e+1?"":"-"+String.fromCodePoint(t))))}]`}eq(e){return this.inverted==e.inverted&&this.ranges.length==e.ranges.length&&this.ranges.every((([t,s],i)=>{let[n,r]=e.ranges[i];return t==n&&s==r}))}}class z extends ${constructor(e){super(e)}toString(){return"_"}eq(){return true}}function C(e,t){let s=null;for(let i=0;iD(e,t[s])))}class E extends a{constructor(e,t,s,i){super(e);this.at=t;this.name=s;this.value=i}eq(e){return this.name==e.name&&this.value.length==e.value.length&&this.value.every(((t,s)=>t.value==e.value[s].value&&t.name==e.value[s].name))}toString(){let e=(this.at?"@":"")+this.name;if(this.value.length){e+="=";for(let{name:t,value:s}of this.value)e+=t?`{${t}}`:/[^\w-]/.test(s)?JSON.stringify(s):s}return e}static eqProps(e,t){return e.length==t.length&&e.every(((e,s)=>e.eq(t[s])))}}class J extends a{constructor(e,t,s){super(e);this.value=t;this.name=s}}function _(e,t){return e.prec0}get eof(){return(this.flags&4)>0}get error(){return"error"in this.props}get top(){return(this.flags&2)>0}get interesting(){return this.flags>0||this.nodeName!=null}get repeated(){return(this.flags&16)>0}set preserve(e){this.flags=e?this.flags|8:this.flags&~8}get preserve(){return(this.flags&8)>0}set inline(e){this.flags=e?this.flags|32:this.flags&~32}get inline(){return(this.flags&32)>0}cmp(e){return this.hash-e.hash}}class L{constructor(){this.terms=[];this.names=Object.create(null);this.tops=[];this.eof=this.term("␄",null,1|4);this.error=this.term("⚠","⚠",8)}term(e,t,s=0,i={}){let n=new F(e,s,t,i);this.terms.push(n);this.names[e]=n;return n}makeTop(e,t){const s=this.term("@top",e,2,t);this.tops.push(s);return s}makeTerminal(e,t,s={}){return this.term(e,t,1,s)}makeNonTerminal(e,t,s={}){return this.term(e,t,0,s)}makeRepeat(e){return this.term(e,null,16)}uniqueName(e){for(let t=0;;t++){let s=t?`${e}-${t}`:e;if(!this.names[s])return s}}finish(e){for(let r of e)r.name.rules.push(r);this.terms=this.terms.filter((t=>t.terminal||t.preserve||e.some((e=>e.name==t||e.parts.includes(t)))));let t={};let s=[this.error];this.error.id=0;let i=0+1;for(let r of this.terms)if(r.id<0&&r.nodeType&&!r.repeated){r.id=i++;s.push(r)}let n=i;for(let r of this.terms)if(r.repeated){r.id=i++;s.push(r)}this.eof.id=i++;for(let r of this.terms){if(r.id<0)r.id=i++;if(r.name)t[r.id]=r.name}if(i>=65534)throw new B("Too many terms");return{nodeTypes:s,names:t,minRepeatTerm:n,maxTerm:i-1}}}function W(e,t,s){if(e.length!=t.length)return e.length-t.length;for(let i=0;iet?1:0))||this.cut-e.cut}}Y.none=new Y(0);function Z(e,t){if(e.length==0||e==t)return t;if(t.length==0)return e;let s=e.slice();for(let i of t)if(!e.includes(i))s.push(i);return s.sort()}let H=0;class Q{constructor(e,t,s,i){this.name=e;this.parts=t;this.conflicts=s;this.skip=i;this.id=H++}cmp(e){return this.id-e.id}cmpNoName(e){return this.parts.length-e.parts.length||this.skip.hash-e.skip.hash||this.parts.reduce(((t,s,i)=>t||s.cmp(e.parts[i])),0)||W(this.conflicts,e.conflicts,((e,t)=>e.cmp(t)))}toString(){return this.name+" -> "+this.parts.join(" ")}get isRepeatWrap(){return this.name.repeated&&this.parts.length==2&&this.parts[0]==this.name}sameReduce(e){return this.name==e.name&&this.parts.length==e.parts.length&&this.isRepeatWrap==e.isRepeatWrap}}const V=65535;class X{constructor(e,t,s){this.from=e;this.to=t;this.target=s}toString(){return`-> ${this.target.id}[label=${JSON.stringify(this.from<0?"ε":ee(this.from)+(this.to>this.from+1?"-"+ee(this.to-1):""))}]`}}function ee(e){return e>V?"∞":e==10?"\\n":e==13?"\\r":e<32||e>=55296&&e<57343?"\\u{"+e.toString(16)+"}":String.fromCharCode(e)}function te(e,t){let s=Object.create(null);let i=Object.create(null);for(let n of e){let e=oe(n.accepting);let t=i[e]||(i[e]=[]);t.push(n);s[n.id]=t}for(;;){let i=false,n=Object.create(null);for(let t of e){if(n[t.id])continue;let e=s[t.id];if(e.length==1){n[e[0].id]=e;continue}let r=[];e:for(let t of e){for(let e of r){if(se(t,e[0],s)){e.push(t);continue e}}r.push([t])}if(r.length>1)i=true;for(let t of r)for(let e of t)n[e.id]=t}if(!i)return ie(e,t,s);s=n}}function se(e,t,s){if(e.edges.length!=t.edges.length)return false;for(let i=0;ie.id-t.id)));return te(Object.values(t),i);function n(i){let r=t[oe(i)]=new e(i.reduce(((e,t)=>Z(e,t.accepting)),[]),s++);let l=[];for(let e of i)for(let t of e.edges){if(t.from>=0)l.push(t)}let a=fe(l);for(let e of a){let s=e.targets.sort(((e,t)=>e.id-t.id));r.edge(e.from,e.to,t[oe(s)]||n(s))}return r}}closure(){let e=[],t=Object.create(null);function s(i){if(t[i.id])return;t[i.id]=true;if(i.edges.some((e=>e.from>=0))||i.accepting.length>0&&!i.edges.some((e=>ue(i.accepting,e.target.accepting))))e.push(i);for(let e of i.edges)if(e.from<0)s(e.target)}s(this);return e}findConflicts(e){let t=[],s=this.cycleTerms();function i(e,s,i,n,r){if(e.idt.a==e&&t.b==s));if(!l)t.push(new le(e,s,i,ae(n),r&&ae(r)));else if(l.soft!=i)l.soft=0}this.reachable(((t,n)=>{if(t.accepting.length==0)return;for(let e=0;e{if(r!=t)for(let a of r.accepting){let r=s.includes(a);for(let o of t.accepting)if(a!=o)i(a,o,r||s.includes(o)||!e(a,o)?0:1,n,n.concat(l))}}))}));return t}cycleTerms(){let e=[];this.reachable((t=>{for(let{target:s}of t.edges)e.push(t,s)}));let t=new Map;let s=[];for(let n=0;n{if(t.accepting.length)e+=`  ${t.id} [label=${JSON.stringify(t.accepting.join())}];\n`;for(let s of t.edges)e+=`  ${t.id} ${s};\n`}));return e+"}"}toArray(e,t){let s=[];let i=[];this.reachable((n=>{let r=i.length;let l=r+3+n.accepting.length*2;s[n.id]=r;i.push(n.stateMask(e),l,n.edges.length);n.accepting.sort(((e,s)=>t.indexOf(e.id)-t.indexOf(s.id)));for(let t of n.accepting)i.push(t.id,e[t.id]||65535);for(let e of n.edges)i.push(e.from,e.to,-e.target.id-1)}));for(let n=0;nMath.pow(2,16))throw new B("Tokenizer tables too big to represent with 16-bit offsets.");return Uint16Array.from(i)}stateMask(e){let t=0;this.reachable((s=>{for(let i of s.accepting)t|=e[i.id]||65535}));return t}};let le=class e{constructor(e,t,s,i,n){this.a=e;this.b=t;this.soft=s;this.exampleA=i;this.exampleB=n}};function ae(e){let t="";for(let s=0;se-t));for(let n=1;ni&&t.frome.from==65535&&e.to==65535));if(i.length){let e=[];for(let t of i)for(let s of t.target.closure())if(!e.includes(s))e.push(s);if(e.length)s.push(new he(65535,65535,e))}return s}let ce=/[\w_-]+/gy;try{ce=/[\p{Alphabetic}\d_-]+/guy}catch(ds){}const pe=[];class de{constructor(e,t=null){this.string=e;this.fileName=t;this.type="sof";this.value=null;this.start=0;this.end=0;this.next()}lineInfo(e){for(let t=1,s=0;;){let i=this.string.indexOf("\n",s);if(i>-1&&i-1){let e=this.lineInfo(t);s+=(s?" ":"")+e.line+":"+e.ch}return s?e+` (${s})`:e}raise(e,t=-1){throw new B(this.message(e,t))}match(e,t){let s=t.exec(this.string.slice(e));return s?e+s[0].length:-1}next(){let e=this.match(this.end,/^(\s|\/\/.*|\/\*[^]*?\*\/)*/);if(e==this.string.length)return this.set("eof",null,e,e);let t=this.string[e];if(t=='"'){let t=this.match(e+1,/^(\\.|[^"\\])*"/);if(t==-1)this.raise("Unterminated string literal",e);return this.set("string",Je(this.string.slice(e+1,t-1)),e,t)}else if(t=="'"){let t=this.match(e+1,/^(\\.|[^'\\])*'/);if(t==-1)this.raise("Unterminated string literal",e);return this.set("string",Je(this.string.slice(e+1,t-1)),e,t)}else if(t=="@"){ce.lastIndex=e+1;let t=ce.exec(this.string);if(!t)return this.raise("@ without a name",e);return this.set("at",t[0],e,e+1+t[0].length)}else if((t=="$"||t=="!")&&this.string[e+1]=="["){let t=this.match(e+2,/^(?:\\.|[^\]\\])*\]/);if(t==-1)this.raise("Unterminated character set",e);return this.set("set",this.string.slice(e+2,t-1),e,t)}else if(/[\[\]()!~+*?{}<>\.,|:$=]/.test(t)){return this.set(t,null,e,e+1)}else{ce.lastIndex=e;let s=ce.exec(this.string);if(!s)return this.raise("Unexpected character "+JSON.stringify(t),e);return this.set("id",s[0],e,e+s[0].length)}}set(e,t,s,i){this.type=e;this.value=t;this.start=s;this.end=i}eat(e,t=null){if(this.type==e&&(t==null||this.value===t)){this.next();return true}else{return false}}unexpected(){return this.raise(`Unexpected token '${this.string.slice(this.start,this.end)}'`,this.start)}expect(e,t=null){let s=this.value;if(this.type!=e||!(t==null||s===t))this.unexpected();this.next();return s}parse(){return me(this)}}function me(e){let t=e.start;let s=[];let i=null;let n=null;let r=[];let l=null;let a=[];let u=[];let h=null;let f=[];let c=[];let p=[];let d=[];let m=[];let k=false;let x=false;while(e.type!="eof"){let t=e.start;if(e.eat("at","top")){if(e.type!="id")e.raise(`Top rules must have a name`,e.start);m.push(ge(e,Pe(e)));k=true}else if(e.type=="at"&&e.value=="tokens"){if(n)e.raise(`Multiple @tokens declaractions`,e.start);else n=Ne(e)}else if(e.eat("at","local")){e.expect("id","tokens");r.push(Ae(e,t))}else if(e.eat("at","context")){if(h)e.raise(`Multiple @context declarations`,t);let s=Pe(e);e.expect("id","from");let i=e.expect("string");h=new g(t,s,i)}else if(e.eat("at","external")){if(e.eat("id","tokens"))f.push(qe(e,t));else if(e.eat("id","prop"))p.push(Ee(e,t));else if(e.eat("id","extend"))c.push(De(e,"extend",t));else if(e.eat("id","specialize"))c.push(De(e,"specialize",t));else if(e.eat("id","propSource"))d.push(Ge(e,t));else e.unexpected()}else if(e.eat("at","dialects")){e.expect("{");for(let t=true;!e.eat("}");t=false){if(!t)e.eat(",");u.push(Pe(e))}}else if(e.type=="at"&&e.value=="precedence"){if(i)e.raise(`Multiple precedence declarations`,e.start);i=je(e)}else if(e.eat("at","detectDelim")){x=true}else if(e.eat("at","skip")){let t=be(e);if(e.type=="{"){e.next();let s=[],i=[];while(!e.eat("}")){if(e.eat("at","top")){i.push(ge(e,Pe(e)));k=true}else{s.push(ge(e))}}a.push({expr:t,topRules:i,rules:s})}else{if(l)e.raise(`Multiple top-level skip declarations`,e.start);l=t}}else{s.push(ge(e))}}if(!k)return e.raise(`Missing @top declaration`);return new o(t,s,m,n,r,h,f,c,d,i,l,a,u,p,x)}function ge(e,t){let s=t?t.start:e.start;let i=t||Pe(e);let n=ke(e);let r=[];if(e.eat("<"))while(!e.eat(">")){if(r.length)e.expect(",");r.push(Pe(e))}let l=be(e);return new u(s,i,n,r,l)}function ke(e){if(e.type!="[")return pe;let t=[];e.expect("[");while(!e.eat("]")){if(t.length)e.expect(",");t.push(xe(e))}return t}function xe(e){let t=e.start,s=[],i=e.value,n=e.type=="at";if(!e.eat("at")&&!e.eat("id"))e.unexpected();if(e.eat("="))for(;;){if(e.type=="string"||e.type=="id"){s.push(new J(e.start,e.value,null));e.next()}else if(e.eat(".")){s.push(new J(e.start,".",null))}else if(e.eat("{")){s.push(new J(e.start,null,e.expect("id")));e.expect("}")}else{break}}return new E(t,n,i,s)}function be(e){e.expect("{");let t=Re(e);e.expect("}");return t}const we="﷚";function ye(e){let t=e.start;if(e.eat("(")){if(e.eat(")"))return new R(t,pe,[pe,pe]);let s=Re(e);e.expect(")");return s}else if(e.type=="string"){let s=e.value;e.next();if(s.length==0)return new R(t,pe,[pe,pe]);return new N(t,s)}else if(e.eat("id","_")){return new z(t)}else if(e.type=="set"){let s=e.value,i=e.string[e.start]=="!";let n=Je(s.replace(/\\.|-|"/g,(e=>e=="-"?we:e=='"'?'\\"':e)));let r=[];for(let t=0;t65535?2:1;if(t65535?3:2;if(ie[0]-t[0])),i)}else if(e.type=="at"&&(e.value=="specialize"||e.value=="extend")){let{start:t,value:s}=e;e.next();let i=ke(e);e.expect("<");let n=Re(e),r;if(e.eat(",")){r=Re(e)}else if(n instanceof N){r=n}else{e.raise(`@${s} requires two arguments when its first argument isn't a literal string`)}e.expect(">");return new S(t,s,i,n,r)}else if(e.type=="at"&&I.hasOwnProperty(e.value)){let t=new q(e.start,e.value);e.next();return t}else if(e.type=="["){let s=ge(e,new y(t,"_anon"));if(s.params.length)e.raise(`Inline rules can't have parameters`,s.start);return new T(t,s)}else{let s=Pe(e);if(e.type=="["||e.type=="{"){let i=ge(e,s);if(i.params.length)e.raise(`Inline rules can't have parameters`,i.start);return new T(t,i)}else{if(e.eat(".")&&s.name=="std"&&I.hasOwnProperty(e.value)){let s=new q(t,e.value);e.next();return s}return new v(t,s,$e(e))}}}function $e(e){let t=[];if(e.eat("<"))while(!e.eat(">")){if(t.length)e.expect(",");t.push(Re(e))}return t}function ve(e,t,s,i){if(!t.every((([e,t])=>t<=s||e>=i)))e.raise("Overlapping character range",e.start);t.push([s,i])}function Se(e){let t=e.start;let s=ye(e);for(;;){let i=e.type;if(e.eat("*")||e.eat("?")||e.eat("+"))s=new j(t,s,i);else return s}}function Te(e){return e.type=="}"||e.type==")"||e.type=="|"||e.type=="/"||e.type=="/\\"||e.type=="{"||e.type==","||e.type==">"}function Oe(e){let t=e.start,s=[],i=[pe];do{for(;;){let t=e.start,s;if(e.eat("~"))s="ambig";else if(e.eat("!"))s="prec";else break;i[i.length-1]=i[i.length-1].concat(new P(t,Pe(e),s))}if(Te(e))break;s.push(Se(e));i.push(pe)}while(!Te(e));if(s.length==1&&i.every((e=>e.length==0)))return s[0];return new R(t,s,i,!s.length)}function Re(e){let t=e.start,s=Oe(e);if(!e.eat("|"))return s;let i=[s];do{i.push(Oe(e))}while(e.eat("|"));let n=i.find((e=>e instanceof R&&e.empty));if(n)e.raise("Empty expression in choice operator. If this is intentional, use () to make it explicit.",n.start);return new O(t,i)}function Pe(e){if(e.type!="id")e.unexpected();let t=e.start,s=e.value;e.next();return new y(t,s)}function je(e){let t=e.start;e.next();e.expect("{");let s=[];while(!e.eat("}")){if(s.length)e.eat(",");s.push({id:Pe(e),type:e.eat("at","left")?"left":e.eat("at","right")?"right":e.eat("at","cut")?"cut":null})}return new h(t,s)}function Ne(e){let t=e.start;e.next();e.expect("{");let s=[];let i=[];let n=[];let r=[];while(!e.eat("}")){if(e.type=="at"&&e.value=="precedence"){n.push(ze(e))}else if(e.type=="at"&&e.value=="conflict"){r.push(Ce(e))}else if(e.type=="string"){i.push(new m(e.start,e.expect("string"),ke(e)))}else{s.push(ge(e))}}return new p(t,n,r,s,i)}function Ae(e,t){e.expect("{");let s=[];let i=[];let n=null;while(!e.eat("}")){if(e.type=="at"&&e.value=="precedence"){i.push(ze(e))}else if(e.eat("at","else")&&!n){n={id:Pe(e),props:ke(e)}}else{s.push(ge(e))}}return new d(t,i,s,n)}function ze(e){let t=e.start;e.next();e.expect("{");let s=[];while(!e.eat("}")){if(s.length)e.eat(",");let t=ye(e);if(t instanceof N||t instanceof v)s.push(t);else e.raise(`Invalid expression in token precedences`,t.start)}return new f(t,s)}function Ce(e){let t=e.start;e.next();e.expect("{");let s=ye(e);if(!(s instanceof N||s instanceof v))e.raise(`Invalid expression in token conflict`,s.start);e.eat(",");let i=ye(e);if(!(i instanceof N||i instanceof v))e.raise(`Invalid expression in token conflict`,i.start);e.expect("}");return new c(t,s,i)}function Ie(e){let t=[];e.expect("{");while(!e.eat("}")){if(t.length)e.eat(",");let s=Pe(e);let i=ke(e);t.push({id:s,props:i})}return t}function qe(e,t){let s=Pe(e);e.expect("id","from");let i=e.expect("string");return new k(t,s,i,Ie(e))}function De(e,t,s){let i=be(e);let n=Pe(e);e.expect("id","from");let r=e.expect("string");return new x(s,t,i,n,r,Ie(e))}function Ge(e,t){let s=Pe(e);e.expect("id","from");return new b(t,s,e.expect("string"))}function Ee(e,t){let s=Pe(e);let i=e.eat("id","as")?Pe(e):s;e.expect("id","from");let n=e.expect("string");return new w(t,i,s,n)}function Je(e){let t=/\\(?:u\{([\da-f]+)\}|u([\da-f]{4})|x([\da-f]{2})|([ntbrf0])|(.))|[^]/giy;let s="",i;while(i=t.exec(e)){let[e,t,n,r,l,a]=i;if(t||n||r)s+=String.fromCodePoint(parseInt(t||n||r,16));else if(l)s+=l=="n"?"\n":l=="t"?"\t":l=="0"?"\0":l=="r"?"\r":l=="f"?"\f":"\b";else if(a)s+=a;else s+=e}return s}function _e(e,t){return(e<<5)+e+t}function Be(e,t){for(let s=0;s{let s=Date.now();let i=t();console.log(`${e} (${((Date.now()-s)/1e3).toFixed(2)}s)`);return i}:(e,t)=>t();class Le{constructor(e,t,s,i,n,r){this.rule=e;this.pos=t;this.ahead=s;this.ambigAhead=i;this.skipAhead=n;this.via=r;this.hash=0}finish(){let e=_e(_e(this.rule.id,this.pos),this.skipAhead.hash);for(let t of this.ahead)e=_e(e,t.hash);for(let t of this.ambigAhead)e=Be(e,t);this.hash=e;return this}get next(){return this.pose.cmp(t)))||W(this.ambigAhead,e.ambigAhead,Ye)}eqSimple(e){return e.rule==this.rule&&e.pos==this.pos}toString(){let e=this.rule.parts.map((e=>e.name));e.splice(this.pos,0,"·");return`${this.rule.name} -> ${e.join(" ")}`}eq(e){return this==e||this.hash==e.hash&&this.rule==e.rule&&this.pos==e.pos&&this.skipAhead==e.skipAhead&&Qe(this.ahead,e.ahead)&&Qe(this.ambigAhead,e.ambigAhead)}trail(e=60){let t=[];for(let i=this;i;i=i.via){for(let e=i.pos-1;e>=0;e--)t.push(i.rule.parts[e])}let s=t.reverse().join(" ");if(s.length>e)s=s.slice(s.length-e).replace(/.*? /,"… ");return s}conflicts(e=this.pos){let t=this.rule.conflicts[e];if(e==this.rule.parts.length&&this.ambigAhead.length)t=t.join(new Y(0,this.ambigAhead));return t}static addOrigins(e,t){let s=e.slice();for(let i=0;it?1:0}function Ze(e,t,s,i){let n=[];for(let r=t+1;re.term+"="+e)).join(",")+(this.goto.length?" | "+this.goto.map((e=>e.term+"="+e)).join(","):"");return this.id+": "+this.set.filter((e=>e.pos>0)).join()+(this.defaultReduce?`\n  always ${this.defaultReduce.name}(${this.defaultReduce.parts.length})`:e.length?"\n  "+e:"")}addActionInner(e,t){e:for(let s=0;s0){this.actions.splice(s,1);this.actionPositions.splice(s,1);s--;continue e}else if(o<0){return null}else if(l.ambigGroups.some((e=>a.ambigGroups.includes(e)))){continue e}else{return i}}}this.actions.push(e);this.actionPositions.push(t);return null}addAction(e,t,s){let i=this.addActionInner(e,t);if(i){let n=this.actionPositions[this.actions.indexOf(i)][0];let r=[t[0].rule.name,n.rule.name];if(s.conflicts.some((e=>e.rules.some((e=>r.includes(e))))))return;let l;if(i instanceof Ve)l=`shift/reduce conflict between\n  ${n}\nand\n  ${t[0].rule}`;else l=`reduce/reduce conflict between\n  ${n.rule}\nand\n  ${t[0].rule}`;l+=`\nWith input:\n  ${t[0].trail(70)} · ${e.term} …`;if(i instanceof Ve)l+=ut(t[0],i.term,s.first);l+=ot(n,t[0]);s.conflicts.push(new at(l,r))}}getGoto(e){return this.goto.find((t=>t.term==e))}hasSet(e){return He(this.set,e)}actionsByTerm(){let e=this._actionsByTerm;if(!e){this._actionsByTerm=e=Object.create(null);for(let t of this.actions)(e[t.term.id]||(e[t.term.id]=[])).push(t)}return e}finish(){if(this.actions.length){let e=this.actions[0];if(e instanceof Xe){let{rule:t}=e;if(this.actions.every((e=>e instanceof Xe&&e.rule.sameReduce(t))))this.defaultReduce=t}}this.actions.sort(((e,t)=>e.cmp(t)));this.goto.sort(((e,t)=>e.cmp(t)))}eq(e){let t=this.defaultReduce,s=e.defaultReduce;if(t||s)return t&&s?t.sameReduce(s):false;return this.skip==e.skip&&this.tokenGroup==e.tokenGroup&&He(this.actions,e.actions)&&He(this.goto,e.goto)}}function it(e,t){let s=[],i=[];function n(t,n,r,l,a){for(let o of t.rules){let t=s.find((e=>e.rule==o));if(!t){let i=e.find((e=>e.pos==0&&e.rule==o));t=i?new Le(o,0,i.ahead.slice(),i.ambigAhead,i.skipAhead,i.via):new Le(o,0,[],xt,l,a);s.push(t)}if(t.skipAhead!=l)throw new B("Inconsistent skip sets after "+a.trail());t.ambigAhead=Z(t.ambigAhead,r);for(let e of n)if(!t.ahead.includes(e)){t.ahead.push(e);if(t.rule.parts.length&&!t.rule.parts[0].terminal)nt(t,i)}}}for(let l of e){let e=l.next;if(e&&!e.terminal)n(e,Ze(l.rule,l.pos,l.ahead,t),l.conflicts(l.pos+1).ambigGroups,l.pos==l.rule.parts.length-1?l.skipAhead:l.rule.skip,l)}while(i.length){let e=i.pop();n(e.rule.parts[0],Ze(e.rule,0,e.ahead,t),Z(e.rule.conflicts[1].ambigGroups,e.rule.parts.length==1?e.ambigAhead:xt),e.rule.parts.length==1?e.skipAhead:e.rule.skip,e)}let r=e.slice();for(let l of s){l.ahead.sort(((e,t)=>e.hash-t.hash));l.finish();let t=e.findIndex((e=>e.pos==0&&e.rule==l.rule));if(t>-1)r[t]=l;else r.push(l)}return r.sort(((e,t)=>e.cmp(t)))}function nt(e,t){if(!t.includes(e))t.push(e)}function rt(e){let t=Object.create(null);for(let s of e.terms)if(!s.terminal)t[s.name]=[];for(;;){let s=false;for(let i of e.terms)if(!i.terminal)for(let e of i.rules){let n=t[i.name];let r=false,l=n.length;for(let s of e.parts){r=true;if(s.terminal){nt(s,n)}else{for(let e of t[s.name]){if(e==null)r=false;else nt(e,n)}}if(r)break}if(!r)nt(null,n);if(n.length>l)s=true}if(!s)return t}}class lt{constructor(e,t){this.set=e;this.state=t}}class at{constructor(e,t){this.error=e;this.rules=t}}function ot(e,t){if(e.eqSimple(t))return"";function s(e,t){let s=[];for(let i=t.via;!i.eqSimple(e);i=i.via)s.push(i);if(!s.length)return"";s.unshift(t);return s.reverse().map(((e,s)=>"\n"+"  ".repeat(s+1)+(e==t?"":"via ")+e)).join("")}for(let i=e;i;i=i.via)for(let n=t;n;n=n.via){if(i.eqSimple(n))return"\nShared origin: "+i+s(i,e)+s(i,t)}return""}function ut(e,t,s){let i=e,n=[];for(;;){for(let e=i.pos-1;e>=0;e--)n.push(i.rule.parts[e]);if(!i.via)break;i=i.via}n.reverse();let r=new Set;function l(i,a,o){if(a==n.length&&o&&!i.next)return`\nThe reduction of ${e.rule.name} is allowed before ${t} because of this rule:\n  ${o}`;for(let e;e=i.next;){if(anew Le(s,0,[e.eof],xt,t,null).finish())),u)}let o=new tt(s);for(let u=0;ue.advance()));if(i.terminal){let t=ft(r);let l=a(t);if(l)e.addAction(new Ve(i,l),n[s],o)}else{let t=a(r);if(t)e.goto.push(new Ve(i,t))}}let l=false;for(let s of r)for(let t of s.ahead){let i=e.actions.length;e.addAction(new Xe(t,s.rule),[s],o);if(e.actions.length==i)l=true}if(l)for(let i=0;ie.actions.some((e=>e.term==t&&e instanceof Ve)))))e.goto.splice(i--,1)}}if(o.conflicts.length)throw new B(o.conflicts.map((e=>e.error)).join("\n\n"));for(let u of i)u.finish();if(Me)console.log(`${i.length} states total.`);return i}function ft(e){let t=null,s=1;for(let i of e){let e=i.rule.conflicts[i.pos-1].cut;if(es){s=e;t=[]}t.push(i)}return t||e}function ct(e,t,s){for(let n of e.goto)for(let e of t.goto){if(n.term==e.term&&s[n.target.id]!=s[e.target.id])return false}let i=t.actionsByTerm();for(let n of e.actions){let t=i[n.term.id];if(t&&t.some((e=>!e.matches(n,s)))){if(t.length==1)return false;let i=e.actionsByTerm()[n.term.id];if(i.length!=t.length||i.some((e=>!t.some((t=>e.matches(t,s))))))return false}}return true}function pt(e,t){let s=[];for(let i of e){let e=t[i.id];if(!s[e]){s[e]=new st(e,i.set,0,i.skip,i.hash,i.startRule);s[e].tokenGroup=i.tokenGroup;s[e].defaultReduce=i.defaultReduce}}for(let i of e){let e=t[i.id],n=s[e];n.flags|=i.flags;for(let r=0;rt.eq(e)))){n.actions.push(e);n.actionPositions.push(i.actionPositions[r])}}for(let r of i.goto){let e=r.map(t,s);if(!n.goto.some((t=>t.eq(e))))n.goto.push(e)}}return s}class dt{constructor(e,t){this.origin=e;this.members=[t]}}function mt(e,t){if(e.length!=t.length)return false;for(let s=0;sct(l,e[s],t)))){s[o].members.push(l.id);return}}t[l.id]=s.length;s.push(new dt(r.origin,l.id))}for(let n=1;;n++){let r=false,l=Date.now();for(let n=0,a=s.length;nn.eq(e)));if(l<0){s[t]=r.length;r.push(n)}else{s[t]=l;i=true;let e=r[l],a=null;for(let t of n.set)if(!e.set.some((e=>e.eqSimple(t))))(a||(a=[])).push(t);if(a)e.set=a.concat(e.set).sort(((e,t)=>e.cmp(t)))}}if(Me)console.log(`Merge identical pass ${t}${i?"":", done"} (${((Date.now()-n)/1e3).toFixed(2)}s)`);if(!i)return e;for(let e of r)if(!e.defaultReduce){e.actions=e.actions.map((e=>e.map(s,r)));e.goto=e.goto.map((e=>e.map(s,r)))}for(let e=0;e=34)t++;if(t>=92)t++;return String.fromCharCode(t)}function yt(e,t=65535){if(e>t)throw new Error("Trying to encode a number that's too big: "+e);if(e==65535)return String.fromCharCode(126);let s="";for(let i=46;;i=0){let t=e%46,n=e-t;s=wt(t+i)+s;if(n==0)break;e=n/46}return s}function $t(e,t=65535){let s='"'+yt(e.length,4294967295);for(let i=0;i{this.input=new de(e,t.fileName);this.ast=this.input.parse()}));let s=i.NodeProp;for(let n in s){if(s[n]instanceof i.NodeProp&&!s[n].perNode)this.knownProps[n]={prop:s[n],source:{name:n,from:null}}}for(let n of this.ast.externalProps){this.knownProps[n.id.name]={prop:this.options.externalProp?this.options.externalProp(n.id.name):new i.NodeProp,source:{name:n.externalID.name,from:n.source}}}this.dialects=this.ast.dialects.map((e=>e.name));this.tokens=new Mt(this,this.ast.tokens);this.localTokens=this.ast.localTokens.map((e=>new Ft(this,e)));this.externalTokens=this.ast.externalTokens.map((e=>new ns(this,e)));this.externalSpecializers=this.ast.externalSpecializers.map((e=>new rs(this,e)));Fe("Build rules",(()=>{let e=this.newName("%noskip",true);this.defineRule(e,[]);let t=this.ast.mainSkip?this.newName("%mainskip",true):e;let s=[],i=[];for(let n of this.ast.rules)this.astRules.push({skip:t,rule:n});for(let n of this.ast.topRules)i.push({skip:t,rule:n});for(let n of this.ast.scopedSkip){let r=e,l=this.ast.scopedSkip.findIndex(((e,t)=>t-1)r=s[l];else if(this.ast.mainSkip&&D(n.expr,this.ast.mainSkip))r=t;else if(!es(n.expr))r=this.newName("%skip",true);s.push(r);for(let e of n.rules)this.astRules.push({skip:r,rule:e});for(let e of n.topRules)i.push({skip:r,rule:e})}for(let{rule:n}of this.astRules){this.unique(n.id)}this.currentSkip.push(e);this.skipRules=t==e?[t]:[e,t];if(t!=e)this.defineRule(t,this.normalizeExpr(this.ast.mainSkip));for(let n=0;ne.rule.start-t.rule.start))){this.unique(n.id);this.used(n.id.name);this.currentSkip.push(r);let{name:e,props:t}=this.nodeInfo(n.props,"a",n.id.name,vt,vt,n.expr);let s=this.terms.makeTop(e,t);this.namedTerms[e]=s;this.defineRule(s,this.normalizeExpr(n.expr));this.currentSkip.pop()}for(let n of this.externalSpecializers)n.finish();for(let{skip:n,rule:r}of this.astRules){if(this.ruleNames[r.id.name]&&ps(r)&&!r.params.length){this.buildRule(r,[],n,false);if(r.expr instanceof R&&r.expr.exprs.length==0)this.used(r.id.name)}}}));for(let i in this.ruleNames){let e=this.ruleNames[i];if(e)this.warn(`Unused rule '${e.name}'`,e.start)}this.tokens.takePrecedences();this.tokens.takeConflicts();for(let i of this.localTokens)i.takePrecedences();for(let{name:i,group:n,rule:r}of this.definedGroups)this.defineGroup(i,n,r);this.checkGroups()}unique(e){if(e.name in this.ruleNames)this.raise(`Duplicate definition of rule '${e.name}'`,e.start);this.ruleNames[e.name]=e}used(e){this.ruleNames[e]=null}newName(e,t=null,s={}){for(let i=t?0:1;;i++){let n=i?`${e}-${i}`:e;if(!this.terms.names[n])return this.terms.makeNonTerminal(n,t===true?null:t,s)}}prepareParser(){let e=Fe("Simplify rules",(()=>os(this.rules,[...this.skipRules,...this.terms.tops])));let{nodeTypes:t,names:s,minRepeatTerm:i,maxTerm:n}=this.terms.finish(e);for(let R in this.namedTerms)this.termTable[R]=this.namedTerms[R].id;if(/\bgrammar\b/.test(Ue))console.log(e.join("\n"));let r=this.terms.tops.slice();let l=rt(this.terms);let a=this.skipRules.map(((e,t)=>{let s=[],i=[],n=[];for(let r of e.rules){if(!r.parts.length)continue;let e=r.parts[0];for(let t of e.terminal?[e]:l[e.name]||[])if(t&&!i.includes(t))i.push(t);if(e.terminal&&r.parts.length==1&&!n.some((t=>t!=r&&t.parts[0]==e)))s.push(e);else n.push(r)}e.rules=n;if(n.length)r.push(e);return{skip:s,rule:n.length?e:null,startTokens:i,id:t}}));let o=Fe("Build full automaton",(()=>ht(this.terms,r,l)));let u=this.localTokens.map(((e,t)=>e.buildLocalGroup(o,a,t)));let{tokenGroups:h,tokenPrec:f,tokenData:c}=Fe("Build token groups",(()=>this.tokens.buildTokenGroups(o,a,u.length)));let p=Fe("Finish automaton",(()=>bt(o)));let d=It(p,this.terms.tops);if(/\blr\b/.test(Ue))console.log(p.join("\n"));let m=[];for(let R of this.externalSpecializers)m.push(R);for(let R in this.specialized)m.push({token:this.terms.names[R],table:At(this.specialized[R])});let g=e=>{if(e instanceof ns)return e.ast.start;return this.tokens.ast?this.tokens.ast.start:-1};let k=h.concat(this.externalTokens).sort(((e,t)=>g(e)-g(t))).concat(u);let x=new qt;let b=a.map((e=>{let t=[];for(let s of e.skip)t.push(s.id,0,262144>>16);if(e.rule){let s=p.find((t=>t.startRule==e.rule));for(let e of s.actions)t.push(e.term.id,s.id,131072>>16)}t.push(65535,0);return x.storeArray(t)}));let w=Fe("Finish states",(()=>{let e=new Uint32Array(p.length*6);let t=this.computeForceReductions(p,a);let s=new jt(k,x,e,b,a,p,this);for(let i of p)s.finish(i,d(i.id),t[i.id]);return e}));let y=Object.create(null);for(let R=0;Re.id)).concat(65535));let $=null;if(this.dynamicRulePrecedences.length){$=Object.create(null);for(let{rule:e,prec:t}of this.dynamicRulePrecedences)$[e.id]=t}let v=Object.create(null);for(let R of this.terms.tops)v[R.nodeName]=[p.find((e=>e.startRule==R)).id,R.id];let S=x.storeArray(f.concat(65535));let{nodeProps:T,skippedTypes:O}=this.gatherNodeProps(t);return{states:w,stateData:x.finish(),goto:Dt(p),nodeNames:t.filter((e=>e.ide.nodeName)).join(" "),nodeProps:T,skippedTypes:O,maxTerm:n,repeatNodeCount:t.length-i,tokenizers:k,tokenData:c,topRules:v,dialects:y,dynamicPrecedences:$,specialized:m,tokenPrec:S,termNames:s}}getParser(){let{states:e,stateData:t,goto:s,nodeNames:i,nodeProps:n,skippedTypes:l,maxTerm:a,repeatNodeCount:o,tokenizers:u,tokenData:h,topRules:f,dialects:c,dynamicPrecedences:p,specialized:d,tokenPrec:m,termNames:g}=this.prepareParser();let k=d.map((e=>{if(e instanceof rs){let t=this.options.externalSpecializer(e.ast.id.name,this.termTable);return{term:e.term.id,get:(s,i)=>t(s,i)<<1|(e.ast.type=="extend"?1:0),external:t,extend:e.ast.type=="extend"}}else{return{term:e.token.id,get:t=>e.table[t]||-1}}}));return r.U1.deserialize({version:14,states:e,stateData:t,goto:s,nodeNames:i,maxTerm:a,repeatNodeCount:o,nodeProps:n.map((({prop:e,terms:t})=>[this.knownProps[e].prop,...t])),propSources:!this.options.externalPropSource?undefined:this.ast.externalPropSources.map((e=>this.options.externalPropSource(e.id.name))),skippedNodes:l,tokenData:h,tokenizers:u.map((e=>e.create())),context:!this.ast.context?undefined:typeof this.options.contextTracker=="function"?this.options.contextTracker(this.termTable):this.options.contextTracker,topRules:f,dialects:c,dynamicPrecedences:p,specialized:k,tokenPrec:m,termNames:g})}getParserFile(){let{states:e,stateData:t,goto:s,nodeNames:i,nodeProps:n,skippedTypes:r,maxTerm:l,repeatNodeCount:a,tokenizers:o,tokenData:u,topRules:h,dialects:f,dynamicPrecedences:c,specialized:p,tokenPrec:d,termNames:m}=this.prepareParser();let g=this.options.moduleStyle||"es";let k="// This file was generated by lezer-generator. You probably shouldn't edit it.\n",x=k;let b={},w=Object.create(null);let y=Object.create(null);for(let G of hs)y[G]=true;let $=this.options.exportName||"parser";y[$]=true;let v=e=>{for(let t=0;;t++){let s=e+(t?"_"+t:"");if(!y[s])return s}};let S=(e,t,s=e)=>{let i=e+" from "+t;if(w[i])return w[i];let n=JSON.stringify(t),r=e;if(e in y){r=v(s);e+=`${g=="cjs"?":":" as"} ${r}`}y[r]=true;(b[n]||(b[n]=[])).push(e);return w[i]=r};let T=S("LRParser","@lezer/lr");let O=o.map((e=>e.createSource(S)));let R=this.ast.context?S(this.ast.context.id.name,this.ast.context.source):null;let P=n.map((({prop:e,terms:t})=>{let{source:s}=this.knownProps[e];let i=s.from?S(s.name,s.from):JSON.stringify(s.name);return`[${i}, ${t.map(C).join(",")}]`}));function j(e){return"{__proto__:null,"+Object.keys(e).map((t=>`${/^(\d+|[a-zA-Z_]\w*)$/.test(t)?t:JSON.stringify(t)}:${e[t]}`)).join(", ")+"}"}let N="";let A=p.map((e=>{if(e instanceof rs){let t=S(e.ast.id.name,e.ast.source);let s=this.options.typeScript?": any":"";return`{term: ${e.term.id}, get: (value${s}, stack${s}) => (${t}(value, stack) << 1)${e.ast.type=="extend"?` | ${1}`:""}, external: ${t}${e.ast.type=="extend"?", extend: true":""}}`}else{let t=v("spec_"+e.token.name.replace(/\W/g,""));y[t]=true;N+=`const ${t} = ${j(e.table)}\n`;let s=this.options.typeScript?`: keyof typeof ${t}`:"";return`{term: ${e.token.id}, get: (value${s}) => ${t}[value] || -1}`}}));let z=this.ast.externalPropSources.map((e=>S(e.id.name,e.source)));for(let G in b){if(g=="cjs")x+=`const {${b[G].join(", ")}} = require(${G})\n`;else x+=`import {${b[G].join(", ")}} from ${G}\n`}x+=N;function C(e){return typeof e!="string"||/^(true|false|\d+(\.\d+)?|\.\d+)$/.test(e)?e:JSON.stringify(e)}let I=Object.keys(f).map((e=>`${e}: ${f[e]}`));let q=`${T}.deserialize({\n  version: ${14},\n  states: ${$t(e,4294967295)},\n  stateData: ${$t(t)},\n  goto: ${$t(s)},\n  nodeNames: ${JSON.stringify(i)},\n  maxTerm: ${l}${R?`,\n  context: ${R}`:""}${P.length?`,\n  nodeProps: [\n    ${P.join(",\n    ")}\n  ]`:""}${z.length?`,\n  propSources: [${z.join()}]`:""}${r.length?`,\n  skippedNodes: ${JSON.stringify(r)}`:""},\n  repeatNodeCount: ${a},\n  tokenData: ${$t(u)},\n  tokenizers: [${O.join(", ")}],\n  topRules: ${JSON.stringify(h)}${I.length?`,\n  dialects: {${I.join(", ")}}`:""}${c?`,\n  dynamicPrecedences: ${JSON.stringify(c)}`:""}${A.length?`,\n  specialized: [${A.join(",")}]`:""},\n  tokenPrec: ${d}${this.options.includeNames?`,\n  termNames: ${JSON.stringify(m)}`:""}\n})`;let D=[];for(let G in this.termTable){let e=G;if(hs.includes(e))for(let t=1;;t++){e="_".repeat(t)+G;if(!(e in this.termTable))break}else if(!/^[\w$]+$/.test(G)){continue}D.push(`${e}${g=="cjs"?":":" ="} ${this.termTable[G]}`)}for(let G=0;G{if(!e[s.id]){e[s.id]=true;t.push(s)}};this.terms.tops.forEach(s);for(let i=0;it.prop==e));if(!s)i.push(s={prop:e,values:{}});(s.values[n.props[e]]||(s.values[n.props[e]]=[])).push(n.id)}}return{nodeProps:i.map((({prop:e,values:t})=>{let s=[];for(let i in t){let e=t[i];if(e.length==1){s.push(e[0],i)}else{s.push(-e.length);for(let t of e)s.push(t);s.push(i)}}return{prop:e,terms:s}})),skippedTypes:s}}makeTerminal(e,t,s){return this.terms.makeTerminal(this.terms.uniqueName(e),t,s)}computeForceReductions(e,t){let s=[];let i=[];let n=Object.create(null);for(let a of e){s.push(0);for(let e of a.goto){let t=n[e.term.id]||(n[e.term.id]=[]);let s=t.find((t=>t.target==e.target.id));if(s)s.parents.push(a.id);else t.push({parents:[a.id],target:e.target.id})}i[a.id]=a.set.filter((e=>e.pos>0&&!e.rule.name.top)).sort(((e,t)=>t.pos-e.pos||e.rule.parts.length-t.rule.parts.length))}let r=Object.create(null);function l(e,t,s=null){let i=n[e];if(!i)return false;return i.some((e=>{let i=s?s.filter((t=>e.parents.includes(t))):e.parents;if(i.length==0)return false;if(e.target==t)return true;let n=r[e.target];return n!=null&&l(n,t,i)}))}for(let a of e){if(a.defaultReduce&&a.defaultReduce.parts.length>0){s[a.id]=zt(a.defaultReduce,t);if(a.defaultReduce.parts.length==1)r[a.id]=a.defaultReduce.name.id}}for(let a=1;;a++){let n=true;for(let o of e){if(o.defaultReduce)continue;let e=i[o.id];if(e.length!=a){if(e.length>a)n=false;continue}for(let i of e){if(i.pos!=1||!l(i.rule.name.id,o.id)){s[o.id]=zt(i.rule,t,i.pos);if(i.pos==1)r[o.id]=i.rule.name.id;break}}}if(n)break}return s}substituteArgs(e,t,s){if(t.length==0)return e;return e.walk((e=>{let i;if(e instanceof v&&(i=s.findIndex((t=>t.name==e.id.name)))>-1){let s=t[i];if(e.args.length){if(s instanceof v&&!s.args.length)return new v(e.start,s.id,e.args);this.raise(`Passing arguments to a parameter that already has arguments`,e.start)}return s}else if(e instanceof T){let i=e.rule,n=this.substituteArgsInProps(i.props,t,s);return n==i.props?e:new T(e.start,new u(i.start,i.id,n,i.params,i.expr))}else if(e instanceof S){let i=this.substituteArgsInProps(e.props,t,s);return i==e.props?e:new S(e.start,e.type,i,e.token,e.content)}return e}))}substituteArgsInProps(e,t,s){let i=e=>{let i=e;for(let n=0;ne.name==r.name));if(l<0)continue;if(i==e)i=e.slice();let a=t[l];if(a instanceof v&&!a.args.length)i[n]=new J(r.start,a.id.name,null);else if(a instanceof N)i[n]=new J(r.start,a.value,null);else this.raise(`Trying to interpolate expression '${a}' into a prop`,r.start)}return i};let n=e;for(let r=0;re.id.name==i.id.name)):-1;if(n<0)this.raise(`Reference to unknown precedence: '${i.id.name}'`,i.id.start);let r=e.items[n],l=e.items.length-n;if(r.type=="cut"){t=t.join(new Y(0,vt,l))}else{t=t.join(new Y(l<<2));s=s.join(new Y((l<<2)+(r.type=="left"?1:r.type=="right"?-1:0)))}}}return{here:t,atEnd:s}}raise(e,t=1){return this.input.raise(e,t)}warn(e,t=-1){let s=this.input.message(e,t);if(this.options.warn)this.options.warn(s);else console.warn(s)}defineRule(e,t){let s=this.currentSkip[this.currentSkip.length-1];for(let i of t)this.rules.push(new Q(e,i.terms,i.ensureConflicts(),s))}resolve(e){for(let i of this.built)if(i.matches(e))return[Tt(i.term)];let t=this.tokens.getToken(e);if(t)return[Tt(t)];for(let i of this.localTokens){let t=i.getToken(e);if(t)return[Tt(t)]}for(let i of this.externalTokens){let t=i.getToken(e);if(t)return[Tt(t)]}for(let i of this.externalSpecializers){let t=i.getToken(e);if(t)return[Tt(t)]}let s=this.astRules.find((t=>t.rule.id.name==e.id.name));if(!s)return this.raise(`Reference to undefined rule '${e.id.name}'`,e.start);if(s.rule.params.length!=e.args.length)this.raise(`Wrong number or arguments for '${e.id.name}'`,e.start);this.used(s.rule.id.name);return[Tt(this.buildRule(s.rule,e.args,s.skip))]}normalizeRepeat(e){let t=this.built.find((t=>t.matchesRepeat(e)));if(t)return Tt(t.term);let s=e.expr.precthis.normalizeExpr(e)));let s=this;function i(n,r,l){let{here:a,atEnd:o}=s.conflictsFor(e.markers[r]);if(r==t.length)return[n.withConflicts(n.terms.length,a.join(l))];let u=[];for(let e of t[r]){for(let t of i(n.concat(e).withConflicts(n.terms.length,a),r+1,l.join(o)))u.push(t)}return u}return i(St.none,0,Y.none)}normalizeExpr(e){if(e instanceof j&&e.kind=="?"){return[St.none,...this.normalizeExpr(e.expr)]}else if(e instanceof j){let t=this.normalizeRepeat(e);return e.kind=="+"?[t]:[St.none,t]}else if(e instanceof O){return e.exprs.reduce(((e,t)=>e.concat(this.normalizeExpr(t))),[])}else if(e instanceof R){return this.normalizeSequence(e)}else if(e instanceof N){return[Tt(this.tokens.getLiteral(e))]}else if(e instanceof v){return this.resolve(e)}else if(e instanceof S){return[Tt(this.resolveSpecialization(e))]}else if(e instanceof T){return[Tt(this.buildRule(e.rule,vt,this.currentSkip[this.currentSkip.length-1],true))]}else{return this.raise(`This type of expression ('${e}') may not occur in non-token rules`,e.start)}}buildRule(e,t,s,i=false){let n=this.substituteArgs(e.expr,t,e.params);let{name:r,props:l,dynamicPrec:a,inline:o,group:u,exported:h}=this.nodeInfo(e.props||vt,i?"pg":"pgi",e.id.name,t,e.params,e.expr);if(h&&e.params.length)this.warn(`Can't export parameterized rules`,e.start);if(h&&i)this.warn(`Can't export inline rule`,e.start);let f=this.newName(e.id.name+(t.length?"<"+t.join(",")+">":""),r||true,l);if(o)f.inline=true;if(a)this.registerDynamicPrec(f,a);if((f.nodeType||h)&&e.params.length==0){if(!r)f.preserve=true;if(!i)this.namedTerms[h||e.id.name]=f}if(!i)this.built.push(new Ot(e.id.name,t,f));this.currentSkip.push(s);let c=this.normalizeExpr(n);if(c.length>100*(n instanceof O?n.exprs.length:1))this.warn(`Rule ${e.id.name} is generating a lot (${c.length}) of choices.\n  Consider splitting it up or reducing the amount of ? or | operator uses.`,e.start);if(/\brulesize\b/.test(Ue)&&c.length>10)console.log(`Rule ${e.id.name}: ${c.length} variants`);this.defineRule(f,c);this.currentSkip.pop();if(u)this.definedGroups.push({name:f,group:u,rule:e});return f}nodeInfo(e,t,s=null,i=vt,n=vt,r,l){let a={};let o=s&&(t.indexOf("a")>-1||!cs(s))&&!/ /.test(s)?s:null;let u=null,h=0,f=false,c=null,p=null;for(let d of e){if(!d.at){if(!this.knownProps[d.name]){let e=["name","dialect","dynamicPrecedence","export","isGroup"].includes(d.name)?` (did you mean '@${d.name}'?)`:"";this.raise(`Unknown prop name '${d.name}'${e}`,d.start)}a[d.name]=this.finishProp(d,i,n)}else if(d.name=="name"){o=this.finishProp(d,i,n);if(/ /.test(o))this.raise(`Node names cannot have spaces ('${o}')`,d.start)}else if(d.name=="dialect"){if(t.indexOf("d")<0)this.raise("Can't specify a dialect on non-token rules",e[0].start);if(d.value.length!=1&&!d.value[0].value)this.raise("The '@dialect' rule prop must hold a plain string value");let s=this.dialects.indexOf(d.value[0].value);if(s<0)this.raise(`Unknown dialect '${d.value[0].value}'`,d.value[0].start);u=s}else if(d.name=="dynamicPrecedence"){if(t.indexOf("p")<0)this.raise("Dynamic precedence can only be specified on nonterminals");if(d.value.length!=1||!/^-?(?:10|\d)$/.test(d.value[0].value))this.raise("The '@dynamicPrecedence' rule prop must hold an integer between -10 and 10");h=+d.value[0].value}else if(d.name=="inline"){if(d.value.length)this.raise("'@inline' doesn't take a value",d.value[0].start);if(t.indexOf("i")<0)this.raise("Inline can only be specified on nonterminals");f=true}else if(d.name=="isGroup"){if(t.indexOf("g")<0)this.raise("'@isGroup' can only be specified on nonterminals");c=d.value.length?this.finishProp(d,i,n):s}else if(d.name=="export"){if(d.value.length)p=this.finishProp(d,i,n);else p=s}else{this.raise(`Unknown built-in prop name '@${d.name}'`,d.start)}}if(r&&this.ast.autoDelim&&(o||U(a))){let e=this.findDelimiters(r);if(e){Nt(e[0],"closedBy",e[1].nodeName);Nt(e[1],"openedBy",e[0].nodeName)}}if(l&&U(l)){for(let e in l)if(!(e in a))a[e]=l[e]}if(U(a)&&!o)this.raise(`Node has properties but no name`,e.length?e[0].start:r.start);if(f&&(U(a)||u||h))this.raise(`Inline nodes can't have props, dynamic precedence, or a dialect`,e[0].start);if(f&&o)o=null;return{name:o,props:a,dialect:u,dynamicPrec:h,inline:f,group:c,exported:p}}finishProp(e,t,s){return e.value.map((e=>{if(e.value)return e.value;let i=s.findIndex((t=>t.name==e.name));if(i<0)this.raise(`Property refers to '${e.name}', but no parameter by that name is in scope`,e.start);let n=t[i];if(n instanceof v&&!n.args.length)return n.id.name;if(n instanceof N)return n.value;return this.raise(`Expression '${n}' can not be used as part of a property value`,e.start)})).join("")}resolveSpecialization(e){let t=e.type;let{name:s,props:i,dialect:n,exported:r}=this.nodeInfo(e.props,"d");let l=this.normalizeExpr(e.token);if(l.length!=1||l[0].terms.length!=1||!l[0].terms[0].terminal)this.raise(`The first argument to '${t}' must resolve to a token`,e.token.start);let a;if(e.content instanceof N)a=[e.content.value];else if(e.content instanceof O&&e.content.exprs.every((e=>e instanceof N)))a=e.content.exprs.map((e=>e.value));else return this.raise(`The second argument to '${e.type}' must be a literal or choice of literals`,e.content.start);let o=l[0].terms[0],u=null;let h=this.specialized[o.name]||(this.specialized[o.name]=[]);for(let f of a){let l=h.find((e=>e.value==f));if(l==null){if(!u){u=this.makeTerminal(o.name+"/"+JSON.stringify(f),s,i);if(n!=null)(this.tokens.byDialect[n]||(this.tokens.byDialect[n]=[])).push(u)}h.push({value:f,term:u,type:t,dialect:n,name:s});this.tokenOrigins[u.name]={spec:o};if(s||r){if(!s)u.preserve=true;this.namedTerms[r||s]=u}}else{if(l.type!=t)this.raise(`Conflicting specialization types for ${JSON.stringify(f)} of ${o.name} (${t} vs ${l.type})`,e.start);if(l.dialect!=n)this.raise(`Conflicting dialects for specialization ${JSON.stringify(f)} of ${o.name}`,e.start);if(l.name!=s)this.raise(`Conflicting names for specialization ${JSON.stringify(f)} of ${o.name}`,e.start);if(u&&l.term!=u)this.raise(`Conflicting specialization tokens for ${JSON.stringify(f)} of ${o.name}`,e.start);u=l.term}}return u}findDelimiters(e){if(!(e instanceof R)||e.exprs.length<2)return null;let t=e=>{if(e instanceof N)return{term:this.tokens.getLiteral(e),str:e.value};if(e instanceof v&&e.args.length==0){let s=this.ast.rules.find((t=>t.id.name==e.id.name));if(s)return t(s.expr);let i=this.tokens.rules.find((t=>t.id.name==e.id.name));if(i&&i.expr instanceof N)return{term:this.tokens.getToken(e),str:i.expr.value}}return null};let s=t(e.exprs[e.exprs.length-1]);if(!s||!s.term.nodeName)return null;const i=["()","[]","{}","<>"];let n=i.find((e=>s.str.indexOf(e[1])>-1&&s.str.indexOf(e[0])<0));if(!n)return null;let r=t(e.exprs[0]);if(!r||!r.term.nodeName||r.str.indexOf(n[0])<0||r.str.indexOf(n[1])>-1)return null;return[r.term,s.term]}registerDynamicPrec(e,t){this.dynamicRulePrecedences.push({rule:e,prec:t});e.preserve=true}defineGroup(e,t,s){var i;let n=[];let r=e=>{if(e.nodeName)return[e];if(n.includes(e))this.raise(`Rule '${s.id.name}' cannot define a group because it contains a non-named recursive rule ('${e.name}')`,s.start);let t=[];n.push(e);for(let i of this.rules)if(i.name==e){let e=i.parts.map(r).filter((e=>e.length));if(e.length>1)this.raise(`Rule '${s.id.name}' cannot define a group because some choices produce multiple named nodes`,s.start);if(e.length==1)for(let s of e[0])t.push(s)}n.pop();return t};for(let l of r(e))l.props["group"]=(((i=l.props["group"])===null||i===void 0?void 0:i.split(" "))||[]).concat(t).sort().join(" ")}checkGroups(){let e=Object.create(null),t=Object.create(null);for(let i of this.terms.terms)if(i.nodeName){t[i.nodeName]=true;if(i.props["group"])for(let t of i.props["group"].split(" ")){(e[t]||(e[t]=[])).push(i)}}let s=Object.keys(e);for(let i=0;ii.includes(e)))&&(r.length>i.length?i.some((e=>!r.includes(e))):r.some((e=>!i.includes(e)))))this.warn(`Groups '${n}' and '${s[t]}' overlap without one being a superset of the other`)}}}}const Pt=5;class jt{constructor(e,t,s,i,n,r,l){this.tokenizers=e;this.data=t;this.stateArray=s;this.skipData=i;this.skipInfo=n;this.states=r;this.builder=l;this.sharedActions=[]}findSharedActions(e){if(e.actions.lengtht.actions.length)&&r.actions.every((t=>e.actions.some((e=>e.eq(t))))))t=r}if(t)return t;let s=null,i=[];for(let r=e.id+1;r=Pt&&(!s||s.lengthe.eq(n))))continue;if(n instanceof Ve){i.push(n.term.id,n.target.id,0)}else{let e=zt(n.rule,this.skipInfo);if(e!=t)i.push(n.term.id,e&65535,e>>16)}}i.push(65535);if(t>-1)i.push(2,t&65535,t>>16);else if(s)i.push(1,s.addr&65535,s.addr>>16);else i.push(0);return this.data.storeArray(i)}finish(e,t,s){let i=this.builder;let n=i.skipRules.indexOf(e.skip);let r=this.skipData[n],l=this.skipInfo[n].startTokens;let a=e.defaultReduce?zt(e.defaultReduce,this.skipInfo):0;let o=t?1:0;let u=-1,h=null;if(a==0){if(t)for(const t of e.actions)if(t instanceof Xe&&t.term.eof)u=zt(t.rule,this.skipInfo);if(u<0)h=this.findSharedActions(e)}if(e.set.some((e=>e.rule.name.top&&e.pos==e.rule.parts.length)))o|=2;let f=[];for(let d=0;dt.rule==e.name))?262144:0)|s<<19}function Ct(e,t){e:for(let s=0;;){let i=e.indexOf(t[0],s);if(i==-1||i+t.length>e.length)break;for(let n=1;n{if(!s[e.id]){s[e.id]=true;i.push(e)}};for(let r of e)if(r.startRule&&t.includes(r.startRule))n(r);for(let r=0;r!s[e]}class qt{constructor(){this.data=[]}storeArray(e){let t=Ct(this.data,e);if(t>-1)return t;let s=this.data.length;for(let i of e)this.data.push(i);return s}finish(){return Uint16Array.from(this.data)}}function Dt(e){let t={};let s=0;for(let l of e){for(let e of l.goto){s=Math.max(e.term.id,s);let i=t[e.term.id]||(t[e.term.id]={});(i[e.target.id]||(i[e.target.id]=[])).push(l.id)}}let i=new qt;let n=[];let r=s+2;for(let l=0;l<=s;l++){let e=t[l];if(!e){n.push(1);continue}let s=[];let a=Object.keys(e);for(let t of a){let i=e[t];s.push((t==a[a.length-1]?1:0)+(i.length<<1));s.push(+t);for(let e of i)s.push(e)}n.push(i.storeArray(s)+r)}if(n.some((e=>e>65535)))throw new B("Goto table too large");return Uint16Array.from([s+1,...n,...i.data])}class Gt{constructor(e,t){this.tokens=e;this.groupID=t}create(){return this.groupID}createSource(){return String(this.groupID)}}function Et(e,t){if(!e.includes(t))e.push(t)}function Jt(e){let t=Object.create(null);for(let s of e){let e=1<e.id.name==t));if(!s)return null;let{name:i,props:n,dialect:r,exported:l}=this.b.nodeInfo(s.props,"d",t,e.args,s.params.length!=e.args.length?vt:s.params);let a=this.b.makeTerminal(e.toString(),i,n);if(r!=null)(this.byDialect[r]||(this.byDialect[r]=[])).push(a);if((a.nodeType||l)&&s.params.length==0){if(!a.nodeType)a.preserve=true;this.b.namedTerms[l||t]=a}this.buildRule(s,e,this.startState,new re([a]));this.built.push(new Ot(t,e.args,a));return a}buildRule(e,t,s,i,n=vt){let r=t.id.name;if(e.params.length!=t.args.length)this.b.raise(`Incorrect number of arguments for token '${r}'`,t.start);let l=this.building.find((e=>e.name==r&&G(t.args,e.args)));if(l){if(l.to==i){s.nullEdge(l.start);return}let e=this.building.length-1;while(this.building[e].name!=r)e--;this.b.raise(`Invalid (non-tail) recursion in token rules: ${this.building.slice(e).map((e=>e.name)).join(" -> ")}`,t.start)}this.b.used(e.id.name);let a=new re;s.nullEdge(a);this.building.push(new Bt(r,a,i,t.args));this.build(this.b.substituteArgs(e.expr,t.args,e.params),a,i,t.args.map(((t,s)=>new _t(e.params[s].name,t,n))));this.building.pop()}build(e,t,s,i){if(e instanceof v){let n=e.id.name,r=i.find((e=>e.name==n));if(r)return this.build(r.expr,t,s,r.scope);let l;for(let e=0,t=this.b.localTokens;e<=t.length;e++){let s=e==t.length?this.b.tokens:t[e];l=s.rules.find((e=>e.id.name==n))}if(!l)return this.b.raise(`Reference to token rule '${e.id.name}', which isn't found`,e.start);this.buildRule(l,e,t,s,i)}else if(e instanceof q){for(let[i,n]of I[e.type])t.edge(i,n,s)}else if(e instanceof O){for(let n of e.exprs)this.build(n,t,s,i)}else if(es(e)){t.nullEdge(s)}else if(e instanceof R){let n=e.markers.find((e=>e.length>0));if(n)this.b.raise("Conflict marker in token expression",n[0].start);for(let r=0;rt.id==e));if(s)t.push(s.term)}if(!t.length)this.b.warn(`Precedence specified for unknown token ${i}`,i.start);for(let i of t)is(e,i,s);s=s.concat(t)}}}precededBy(e,t){let s=this.precedenceRelations.find((t=>t.term==e));return s&&s.after.includes(t)}buildPrecTable(e){let t=[],s=this.precedenceRelations.slice();for(let{a:i,b:n,soft:r}of e)if(r){if(!s.some((e=>e.term==i))||!s.some((e=>e.term==n)))continue;if(r<0)[i,n]=[n,i];is(s,n,[i]);is(s,i,[])}e:while(s.length){for(let e=0;et.includes(e.id)))){t.push(i.term.id);if(s.length==1)break e;s[e]=s.pop();continue e}}this.b.raise(`Cyclic token precedence relation between ${s.map((e=>e.term)).join(", ")}`)}return t}}class Mt extends Ut{constructor(){super(...arguments);this.explicitConflicts=[]}getLiteral(e){let t=JSON.stringify(e.value);for(let o of this.built)if(o.id==t)return o.term;let s=null,i={},n=null,r=null;let l=this.ast?this.ast.literals.find((t=>t.literal==e.value)):null;if(l)({name:s,props:i,dialect:n,exported:r}=this.b.nodeInfo(l.props,"da",e.value));let a=this.b.makeTerminal(t,s,i);if(n!=null)(this.byDialect[n]||(this.byDialect[n]=[])).push(a);if(r)this.b.namedTerms[r]=a;this.build(e,this.startState,new re([a]),vt);this.built.push(new Ot(t,vt,a));return a}takeConflicts(){var e;let t=e=>{if(e instanceof v){for(let t of this.built)if(t.matches(e))return t.term}else{let t=JSON.stringify(e.value),s=this.built.find((e=>e.id==t));if(s)return s.term}this.b.warn(`Precedence specified for unknown token ${e}`,e.start);return null};for(let s of((e=this.ast)===null||e===void 0?void 0:e.conflicts)||[]){let e=t(s.a),i=t(s.b);if(e&&i){if(e.ide.id.name==i.accepting[0].name)).start);if(/\btokens\b/.test(Ue))console.log(i.toString());let n=i.findConflicts(Lt(e,this.b,t)).filter((({a:e,b:t})=>!this.precededBy(e,t)&&!this.precededBy(t,e)));for(let{a:h,b:f}of this.explicitConflicts){if(!n.some((e=>e.a==h&&e.b==f)))n.push(new le(h,f,0,"",""))}let r=n.filter((e=>e.soft)),l=n.filter((e=>!e.soft));let a=[];let o=[];for(let h of e){if(h.defaultReduce||h.tokenGroup>-1)continue;let e=[],i=[];let n=t[this.b.skipRules.indexOf(h.skip)].startTokens;for(let t of n)if(h.actions.some((e=>e.term==t)))this.b.raise(`Use of token ${t.name} conflicts with skip rule`);let r=[];for(let t=0;te.conflict==s))){let e=s.exampleA?` (example: ${JSON.stringify(s.exampleA)}${s.exampleB?` vs ${JSON.stringify(s.exampleB)}`:""})`:"";a.push({error:`Overlapping tokens ${t.name} and ${n.name} used in same context${e}\n`+`After: ${h.set[0].trail()}`,conflict:s})}Et(e,t);Et(i,n)}}let u=null;for(let t of o){if(i.some((e=>t.tokens.includes(e))))continue;for(let s of e)Et(t.tokens,s);u=t;break}if(!u){u=new Gt(e,o.length+s);o.push(u)}h.tokenGroup=u.groupID}if(a.length)this.b.raise(a.map((e=>e.error)).join("\n\n"));if(o.length+s>16)this.b.raise(`Too many different token groups (${o.length}) to represent them as a 16-bit bitfield`);let u=this.buildPrecTable(r);return{tokenGroups:o,tokenPrec:u,tokenData:i.toArray(Jt(o),u)}}}class Ft extends Ut{constructor(e,t){super(e,t);this.fallback=null;if(t.fallback)e.unique(t.fallback.id)}getToken(e){let t=null;if(this.ast.fallback&&this.ast.fallback.id.name==e.id.name){if(e.args.length)this.b.raise(`Incorrect number of arguments for ${e.id.name}`,e.start);if(!this.fallback){let{name:t,props:s,exported:i}=this.b.nodeInfo(this.ast.fallback.props,"",e.id.name,vt,vt);let n=this.fallback=this.b.makeTerminal(e.id.name,t,s);if(n.nodeType||i){if(!n.nodeType)n.preserve=true;this.b.namedTerms[i||e.id.name]=n}this.b.used(e.id.name)}t=this.fallback}else{t=super.getToken(e)}if(t&&!this.b.tokenOrigins[t.name])this.b.tokenOrigins[t.name]={group:this};return t}buildLocalGroup(e,t,s){let i=this.startState.compile();if(i.accepting.length)this.b.raise(`Grammar contains zero-length tokens (in '${i.accepting[0].name}')`,this.rules.find((e=>e.id.name==i.accepting[0].name)).start);for(let{a:r,b:u,exampleA:h}of i.findConflicts((()=>true))){if(!this.precededBy(r,u)&&!this.precededBy(u,r))this.b.raise(`Overlapping tokens ${r.name} and ${u.name} in local token group${h?` (example: ${JSON.stringify(h)})`:""}`)}for(let r of e){if(r.defaultReduce)continue;let e=null;let i=t[this.b.skipRules.indexOf(r.skip)].startTokens[0];for(let{term:t}of r.actions){let s=this.b.tokenOrigins[t.name];if((s===null||s===void 0?void 0:s.group)==this)e=t;else i=t}if(e){if(i)this.b.raise(`Tokens from a local token group used together with other tokens (${e.name} with ${i.name})`);r.tokenGroup=s}}let n=this.buildPrecTable(vt);let l=i.toArray({[s]:65535},n);let a=l.length;let o=new Uint16Array(l.length+n.length+1);o.set(l,0);o.set(n,a);o[o.length-1]=65535;return{groupID:s,create:()=>new r.uC(o,a,this.fallback?this.fallback.id:undefined),createSource:e=>`new ${e("LocalTokenGroup","@lezer/lr")}(${$t(o)}, ${a}${this.fallback?`, ${this.fallback.id}`:""})`}}}function Lt(e,t,s){let i=Object.create(null);function n(e,i){return e.actions.some((e=>e.term==i))||s[t.skipRules.indexOf(e.skip)].startTokens.includes(i)}return(t,s)=>{if(t.idn(e,t)&&n(e,s)))}}function Wt(e){let t=0,s=[];for(let[i,n]of e){if(i>t)s.push([t,i]);t=n}if(t<=Ht)s.push([t,Ht+1]);return s}const Kt=65536,Yt=55296,Zt=57344,Ht=1114111;const Qt=56320,Vt=57343;function Xt(e,t,s,i){if(sZt)e.edge(Math.max(s,Zt),Math.min(i,V+1),t);s=Kt}if(i<=Kt)return;let n=String.fromCodePoint(s),r=String.fromCodePoint(i-1);let l=n.charCodeAt(0),a=n.charCodeAt(1);let o=r.charCodeAt(0),u=r.charCodeAt(1);if(l==o){let s=new re;e.edge(l,l+1,s);s.edge(a,u+1,t)}else{let s=l,i=o;if(a>Qt){s++;let i=new re;e.edge(l,l+1,i);i.edge(a,Vt+1,t)}if(ue.term==t));if(i<0)e.push({term:t,after:s});else e[i]={term:t,after:e[i].after.concat(s)}}class ns{constructor(e,t){this.b=e;this.ast=t;this.tokens=ts(e,t.tokens);for(let s in this.tokens)this.b.tokenOrigins[this.tokens[s].name]={external:this}}getToken(e){return ss(this.b,this.tokens,e)}create(){return this.b.options.externalTokenizer(this.ast.id.name,this.b.termTable)}createSource(e){let{source:t,id:{name:s}}=this.ast;return e(s,t)}}class rs{constructor(e,t){this.b=e;this.ast=t;this.term=null;this.tokens=ts(e,t.tokens)}finish(){let e=this.b.normalizeExpr(this.ast.token);if(e.length!=1||e[0].terms.length!=1||!e[0].terms[0].terminal)this.b.raise(`The token expression to '@external ${this.ast.type}' must resolve to a token`,this.ast.token.start);this.term=e[0].terms[0];for(let t in this.tokens)this.b.tokenOrigins[this.tokens[t].name]={spec:this.term,external:this}}getToken(e){return ss(this.b,this.tokens,e)}}function ls(e,t){for(let s=0;;s++){let i=Object.create(null),n;if(s==0)for(let l of e){if(l.name.inline&&!i[l.name.name]){let a=e.filter((e=>e.name==l.name));if(a.some((e=>e.parts.includes(l.name))))continue;n=i[l.name.name]=a}}for(let o=0;oe.skip==u.skip||!e.parts.includes(u.name))))&&!u.parts.some((e=>!!i[e.name]))&&!e.some(((e,t)=>t!=o&&e.name==u.name)))n=i[u.name.name]=[u]}if(!n)return e;let r=[];for(let h of e){if(i[h.name.name])continue;if(!h.parts.some((e=>!!i[e.name]))){r.push(h);continue}function f(e,t,s){if(e==h.parts.length){r.push(new Q(h.name,s,t,h.skip));return}let n=h.parts[e],l=i[n.name];if(!l){f(e+1,t.concat(h.conflicts[e+1]),s.concat(n));return}for(let i of l)f(e+1,t.slice(0,t.length-1).concat(t[e].join(i.conflicts[0])).concat(i.conflicts.slice(1,i.conflicts.length-1)).concat(h.conflicts[e+1].join(i.conflicts[i.conflicts.length-1])),s.concat(i.parts))}f(0,[h.conflicts[0]],[])}e=r}}function as(e){let t=Object.create(null),s;for(let n=0;n!t[e.name]))?n:new Q(n.name,n.parts.map((e=>t[e.name]||e)),n.conflicts,n.skip))}return i}function os(e,t){return as(ls(e,t))}function us(e,t={}){let s=new Rt(e,t),i=s.getParser();i.termTable=s.termTable;return i}const hs=["await","break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","while","with","null","true","false","instanceof","typeof","void","delete","new","in","this","const","class","extends","export","import","super","enum","implements","interface","let","package","private","protected","public","static","yield","require"];function fs(e,t={}){return new Rt(e,t).getParserFile()}function cs(e){let t=e[0];return t=="_"||t.toUpperCase()!=t}function ps(e){return e.props.some((e=>e.at&&e.name=="export"))}}}]);
\ No newline at end of file
diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1359.d5f23f0e2a6f67b69751.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1359.d5f23f0e2a6f67b69751.js
deleted file mode 100644
index 84fec4a9a34c64d47e95e572ddadb82ef6f6ac94..0000000000000000000000000000000000000000
--- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1359.d5f23f0e2a6f67b69751.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1359],{41359:(e,t,s)=>{s.d(t,{Lh:()=>m,NM:()=>b,_$:()=>o,tM:()=>f});var i=s(15051);var n=s(94065);var a=s(96049);var r=s(75905);var u=s(24982);var l=function(){var e=(0,r.K2)((function(e,t,s,i){for(s=s||{},i=e.length;i--;s[e[i]]=t);return s}),"o"),t=[1,18],s=[1,19],i=[1,20],n=[1,41],a=[1,42],u=[1,26],l=[1,24],o=[1,25],c=[1,32],h=[1,33],p=[1,34],d=[1,45],A=[1,35],b=[1,36],y=[1,37],f=[1,38],k=[1,27],C=[1,28],g=[1,29],m=[1,30],E=[1,31],T=[1,44],D=[1,46],F=[1,43],B=[1,47],_=[1,9],S=[1,8,9],N=[1,58],L=[1,59],$=[1,60],v=[1,61],x=[1,62],O=[1,63],I=[1,64],w=[1,8,9,41],R=[1,76],P=[1,8,9,12,13,22,39,41,44,66,67,68,69,70,71,72,77,79],K=[1,8,9,12,13,17,20,22,39,41,44,48,58,66,67,68,69,70,71,72,77,79,84,99,101,102],M=[13,58,84,99,101,102],G=[13,58,71,72,84,99,101,102],U=[13,58,66,67,68,69,70,84,99,101,102],Y=[1,98],z=[1,115],Q=[1,107],j=[1,113],W=[1,108],X=[1,109],V=[1,110],q=[1,111],H=[1,112],J=[1,114],Z=[22,58,59,80,84,85,86,87,88,89],ee=[1,8,9,39,41,44],te=[1,8,9,22],se=[1,143],ie=[1,8,9,59],ne=[1,8,9,22,58,59,80,84,85,86,87,88,89];var ae={trace:(0,r.K2)((function e(){}),"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,DOT:17,className:18,classLiteralName:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,ANNOTATION_START:47,ANNOTATION_END:48,MEMBER:49,SEPARATOR:50,relation:51,NOTE_FOR:52,noteText:53,NOTE:54,CLASSDEF:55,classList:56,stylesOpt:57,ALPHA:58,COMMA:59,direction_tb:60,direction_bt:61,direction_rl:62,direction_lr:63,relationType:64,lineType:65,AGGREGATION:66,EXTENSION:67,COMPOSITION:68,DEPENDENCY:69,LOLLIPOP:70,LINE:71,DOTTED_LINE:72,CALLBACK:73,LINK:74,LINK_TARGET:75,CLICK:76,CALLBACK_NAME:77,CALLBACK_ARGS:78,HREF:79,STYLE:80,CSSCLASS:81,style:82,styleComponent:83,NUM:84,COLON:85,UNIT:86,SPACE:87,BRKT:88,PCT:89,commentToken:90,textToken:91,graphCodeTokens:92,textNoTagsToken:93,TAGSTART:94,TAGEND:95,"==":96,"--":97,DEFAULT:98,MINUS:99,keywords:100,UNICODE_TEXT:101,BQUOTE_STR:102,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",17:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",47:"ANNOTATION_START",48:"ANNOTATION_END",49:"MEMBER",50:"SEPARATOR",52:"NOTE_FOR",54:"NOTE",55:"CLASSDEF",58:"ALPHA",59:"COMMA",60:"direction_tb",61:"direction_bt",62:"direction_rl",63:"direction_lr",66:"AGGREGATION",67:"EXTENSION",68:"COMPOSITION",69:"DEPENDENCY",70:"LOLLIPOP",71:"LINE",72:"DOTTED_LINE",73:"CALLBACK",74:"LINK",75:"LINK_TARGET",76:"CLICK",77:"CALLBACK_NAME",78:"CALLBACK_ARGS",79:"HREF",80:"STYLE",81:"CSSCLASS",84:"NUM",85:"COLON",86:"UNIT",87:"SPACE",88:"BRKT",89:"PCT",92:"graphCodeTokens",94:"TAGSTART",95:"TAGEND",96:"==",97:"--",98:"DEFAULT",99:"MINUS",100:"keywords",101:"UNICODE_TEXT",102:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,3],[15,2],[18,1],[18,3],[18,1],[18,2],[18,2],[18,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,6],[43,2],[43,3],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[56,1],[56,3],[32,1],[32,1],[32,1],[32,1],[51,3],[51,2],[51,2],[51,1],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[57,1],[57,3],[82,1],[82,2],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[90,1],[90,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[93,1],[93,1],[93,1],[93,1],[16,1],[16,1],[16,1],[16,1],[19,1],[53,1]],performAction:(0,r.K2)((function e(t,s,i,n,a,r,u){var l=r.length-1;switch(a){case 8:this.$=r[l-1];break;case 9:case 12:case 14:this.$=r[l];break;case 10:case 13:this.$=r[l-2]+"."+r[l];break;case 11:case 15:this.$=r[l-1]+r[l];break;case 16:case 17:this.$=r[l-1]+"~"+r[l]+"~";break;case 18:n.addRelation(r[l]);break;case 19:r[l-1].title=n.cleanupLabel(r[l]);n.addRelation(r[l-1]);break;case 30:this.$=r[l].trim();n.setAccTitle(this.$);break;case 31:case 32:this.$=r[l].trim();n.setAccDescription(this.$);break;case 33:n.addClassesToNamespace(r[l-3],r[l-1]);break;case 34:n.addClassesToNamespace(r[l-4],r[l-1]);break;case 35:this.$=r[l];n.addNamespace(r[l]);break;case 36:this.$=[r[l]];break;case 37:this.$=[r[l-1]];break;case 38:r[l].unshift(r[l-2]);this.$=r[l];break;case 40:n.setCssClass(r[l-2],r[l]);break;case 41:n.addMembers(r[l-3],r[l-1]);break;case 42:n.setCssClass(r[l-5],r[l-3]);n.addMembers(r[l-5],r[l-1]);break;case 43:this.$=r[l];n.addClass(r[l]);break;case 44:this.$=r[l-1];n.addClass(r[l-1]);n.setClassLabel(r[l-1],r[l]);break;case 45:n.addAnnotation(r[l],r[l-2]);break;case 46:case 59:this.$=[r[l]];break;case 47:r[l].push(r[l-1]);this.$=r[l];break;case 48:break;case 49:n.addMember(r[l-1],n.cleanupLabel(r[l]));break;case 50:break;case 51:break;case 52:this.$={id1:r[l-2],id2:r[l],relation:r[l-1],relationTitle1:"none",relationTitle2:"none"};break;case 53:this.$={id1:r[l-3],id2:r[l],relation:r[l-1],relationTitle1:r[l-2],relationTitle2:"none"};break;case 54:this.$={id1:r[l-3],id2:r[l],relation:r[l-2],relationTitle1:"none",relationTitle2:r[l-1]};break;case 55:this.$={id1:r[l-4],id2:r[l],relation:r[l-2],relationTitle1:r[l-3],relationTitle2:r[l-1]};break;case 56:n.addNote(r[l],r[l-1]);break;case 57:n.addNote(r[l]);break;case 58:this.$=r[l-2];n.defineClass(r[l-1],r[l]);break;case 60:this.$=r[l-2].concat([r[l]]);break;case 61:n.setDirection("TB");break;case 62:n.setDirection("BT");break;case 63:n.setDirection("RL");break;case 64:n.setDirection("LR");break;case 65:this.$={type1:r[l-2],type2:r[l],lineType:r[l-1]};break;case 66:this.$={type1:"none",type2:r[l],lineType:r[l-1]};break;case 67:this.$={type1:r[l-1],type2:"none",lineType:r[l]};break;case 68:this.$={type1:"none",type2:"none",lineType:r[l]};break;case 69:this.$=n.relationType.AGGREGATION;break;case 70:this.$=n.relationType.EXTENSION;break;case 71:this.$=n.relationType.COMPOSITION;break;case 72:this.$=n.relationType.DEPENDENCY;break;case 73:this.$=n.relationType.LOLLIPOP;break;case 74:this.$=n.lineType.LINE;break;case 75:this.$=n.lineType.DOTTED_LINE;break;case 76:case 82:this.$=r[l-2];n.setClickEvent(r[l-1],r[l]);break;case 77:case 83:this.$=r[l-3];n.setClickEvent(r[l-2],r[l-1]);n.setTooltip(r[l-2],r[l]);break;case 78:this.$=r[l-2];n.setLink(r[l-1],r[l]);break;case 79:this.$=r[l-3];n.setLink(r[l-2],r[l-1],r[l]);break;case 80:this.$=r[l-3];n.setLink(r[l-2],r[l-1]);n.setTooltip(r[l-2],r[l]);break;case 81:this.$=r[l-4];n.setLink(r[l-3],r[l-2],r[l]);n.setTooltip(r[l-3],r[l-1]);break;case 84:this.$=r[l-3];n.setClickEvent(r[l-2],r[l-1],r[l]);break;case 85:this.$=r[l-4];n.setClickEvent(r[l-3],r[l-2],r[l-1]);n.setTooltip(r[l-3],r[l]);break;case 86:this.$=r[l-3];n.setLink(r[l-2],r[l]);break;case 87:this.$=r[l-4];n.setLink(r[l-3],r[l-1],r[l]);break;case 88:this.$=r[l-4];n.setLink(r[l-3],r[l-1]);n.setTooltip(r[l-3],r[l]);break;case 89:this.$=r[l-5];n.setLink(r[l-4],r[l-2],r[l]);n.setTooltip(r[l-4],r[l-1]);break;case 90:this.$=r[l-2];n.setCssStyle(r[l-1],r[l]);break;case 91:n.setCssClass(r[l-1],r[l]);break;case 92:this.$=[r[l]];break;case 93:r[l-2].push(r[l]);this.$=r[l-2];break;case 95:this.$=r[l-1]+r[l];break}}),"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:t,35:s,37:i,38:22,42:n,43:23,46:a,47:u,49:l,50:o,52:c,54:h,55:p,58:d,60:A,61:b,62:y,63:f,73:k,74:C,76:g,80:m,81:E,84:T,99:D,101:F,102:B},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(_,[2,5],{8:[1,48]}),{8:[1,49]},e(S,[2,18],{22:[1,50]}),e(S,[2,20]),e(S,[2,21]),e(S,[2,22]),e(S,[2,23]),e(S,[2,24]),e(S,[2,25]),e(S,[2,26]),e(S,[2,27]),e(S,[2,28]),e(S,[2,29]),{34:[1,51]},{36:[1,52]},e(S,[2,32]),e(S,[2,48],{51:53,64:56,65:57,13:[1,54],22:[1,55],66:N,67:L,68:$,69:v,70:x,71:O,72:I}),{39:[1,65]},e(w,[2,39],{39:[1,67],44:[1,66]}),e(S,[2,50]),e(S,[2,51]),{16:68,58:d,84:T,99:D,101:F},{16:39,18:69,19:40,58:d,84:T,99:D,101:F,102:B},{16:39,18:70,19:40,58:d,84:T,99:D,101:F,102:B},{16:39,18:71,19:40,58:d,84:T,99:D,101:F,102:B},{58:[1,72]},{13:[1,73]},{16:39,18:74,19:40,58:d,84:T,99:D,101:F,102:B},{13:R,53:75},{56:77,58:[1,78]},e(S,[2,61]),e(S,[2,62]),e(S,[2,63]),e(S,[2,64]),e(P,[2,12],{16:39,19:40,18:80,17:[1,79],20:[1,81],58:d,84:T,99:D,101:F,102:B}),e(P,[2,14],{20:[1,82]}),{15:83,16:84,58:d,84:T,99:D,101:F},{16:39,18:85,19:40,58:d,84:T,99:D,101:F,102:B},e(K,[2,118]),e(K,[2,119]),e(K,[2,120]),e(K,[2,121]),e([1,8,9,12,13,20,22,39,41,44,66,67,68,69,70,71,72,77,79],[2,122]),e(_,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,18:21,38:22,43:23,16:39,19:40,5:86,33:t,35:s,37:i,42:n,46:a,47:u,49:l,50:o,52:c,54:h,55:p,58:d,60:A,61:b,62:y,63:f,73:k,74:C,76:g,80:m,81:E,84:T,99:D,101:F,102:B}),{5:87,10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:t,35:s,37:i,38:22,42:n,43:23,46:a,47:u,49:l,50:o,52:c,54:h,55:p,58:d,60:A,61:b,62:y,63:f,73:k,74:C,76:g,80:m,81:E,84:T,99:D,101:F,102:B},e(S,[2,19]),e(S,[2,30]),e(S,[2,31]),{13:[1,89],16:39,18:88,19:40,58:d,84:T,99:D,101:F,102:B},{51:90,64:56,65:57,66:N,67:L,68:$,69:v,70:x,71:O,72:I},e(S,[2,49]),{65:91,71:O,72:I},e(M,[2,68],{64:92,66:N,67:L,68:$,69:v,70:x}),e(G,[2,69]),e(G,[2,70]),e(G,[2,71]),e(G,[2,72]),e(G,[2,73]),e(U,[2,74]),e(U,[2,75]),{8:[1,94],24:95,40:93,43:23,46:a},{16:96,58:d,84:T,99:D,101:F},{45:97,49:Y},{48:[1,99]},{13:[1,100]},{13:[1,101]},{77:[1,102],79:[1,103]},{22:z,57:104,58:Q,80:j,82:105,83:106,84:W,85:X,86:V,87:q,88:H,89:J},{58:[1,116]},{13:R,53:117},e(S,[2,57]),e(S,[2,123]),{22:z,57:118,58:Q,59:[1,119],80:j,82:105,83:106,84:W,85:X,86:V,87:q,88:H,89:J},e(Z,[2,59]),{16:39,18:120,19:40,58:d,84:T,99:D,101:F,102:B},e(P,[2,15]),e(P,[2,16]),e(P,[2,17]),{39:[2,35]},{15:122,16:84,17:[1,121],39:[2,9],58:d,84:T,99:D,101:F},e(ee,[2,43],{11:123,12:[1,124]}),e(_,[2,7]),{9:[1,125]},e(te,[2,52]),{16:39,18:126,19:40,58:d,84:T,99:D,101:F,102:B},{13:[1,128],16:39,18:127,19:40,58:d,84:T,99:D,101:F,102:B},e(M,[2,67],{64:129,66:N,67:L,68:$,69:v,70:x}),e(M,[2,66]),{41:[1,130]},{24:95,40:131,43:23,46:a},{8:[1,132],41:[2,36]},e(w,[2,40],{39:[1,133]}),{41:[1,134]},{41:[2,46],45:135,49:Y},{16:39,18:136,19:40,58:d,84:T,99:D,101:F,102:B},e(S,[2,76],{13:[1,137]}),e(S,[2,78],{13:[1,139],75:[1,138]}),e(S,[2,82],{13:[1,140],78:[1,141]}),{13:[1,142]},e(S,[2,90],{59:se}),e(ie,[2,92],{83:144,22:z,58:Q,80:j,84:W,85:X,86:V,87:q,88:H,89:J}),e(ne,[2,94]),e(ne,[2,96]),e(ne,[2,97]),e(ne,[2,98]),e(ne,[2,99]),e(ne,[2,100]),e(ne,[2,101]),e(ne,[2,102]),e(ne,[2,103]),e(ne,[2,104]),e(S,[2,91]),e(S,[2,56]),e(S,[2,58],{59:se}),{58:[1,145]},e(P,[2,13]),{15:146,16:84,58:d,84:T,99:D,101:F},{39:[2,11]},e(ee,[2,44]),{13:[1,147]},{1:[2,4]},e(te,[2,54]),e(te,[2,53]),{16:39,18:148,19:40,58:d,84:T,99:D,101:F,102:B},e(M,[2,65]),e(S,[2,33]),{41:[1,149]},{24:95,40:150,41:[2,37],43:23,46:a},{45:151,49:Y},e(w,[2,41]),{41:[2,47]},e(S,[2,45]),e(S,[2,77]),e(S,[2,79]),e(S,[2,80],{75:[1,152]}),e(S,[2,83]),e(S,[2,84],{13:[1,153]}),e(S,[2,86],{13:[1,155],75:[1,154]}),{22:z,58:Q,80:j,82:156,83:106,84:W,85:X,86:V,87:q,88:H,89:J},e(ne,[2,95]),e(Z,[2,60]),{39:[2,10]},{14:[1,157]},e(te,[2,55]),e(S,[2,34]),{41:[2,38]},{41:[1,158]},e(S,[2,81]),e(S,[2,85]),e(S,[2,87]),e(S,[2,88],{75:[1,159]}),e(ie,[2,93],{83:144,22:z,58:Q,80:j,84:W,85:X,86:V,87:q,88:H,89:J}),e(ee,[2,8]),e(w,[2,42]),e(S,[2,89])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,35],122:[2,11],125:[2,4],135:[2,47],146:[2,10],150:[2,38]},parseError:(0,r.K2)((function e(t,s){if(s.recoverable){this.trace(t)}else{var i=new Error(t);i.hash=s;throw i}}),"parseError"),parse:(0,r.K2)((function e(t){var s=this,i=[0],n=[],a=[null],u=[],l=this.table,o="",c=0,h=0,p=0,d=2,A=1;var b=u.slice.call(arguments,1);var y=Object.create(this.lexer);var f={yy:{}};for(var k in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,k)){f.yy[k]=this.yy[k]}}y.setInput(t,f.yy);f.yy.lexer=y;f.yy.parser=this;if(typeof y.yylloc=="undefined"){y.yylloc={}}var C=y.yylloc;u.push(C);var g=y.options&&y.options.ranges;if(typeof f.yy.parseError==="function"){this.parseError=f.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function m(e){i.length=i.length-2*e;a.length=a.length-e;u.length=u.length-e}(0,r.K2)(m,"popStack");function E(){var e;e=n.pop()||y.lex()||A;if(typeof e!=="number"){if(e instanceof Array){n=e;e=n.pop()}e=s.symbols_[e]||e}return e}(0,r.K2)(E,"lex");var T,D,F,B,_,S,N={},L,$,v,x;while(true){F=i[i.length-1];if(this.defaultActions[F]){B=this.defaultActions[F]}else{if(T===null||typeof T=="undefined"){T=E()}B=l[F]&&l[F][T]}if(typeof B==="undefined"||!B.length||!B[0]){var O="";x=[];for(L in l[F]){if(this.terminals_[L]&&L>d){x.push("'"+this.terminals_[L]+"'")}}if(y.showPosition){O="Parse error on line "+(c+1)+":\n"+y.showPosition()+"\nExpecting "+x.join(", ")+", got '"+(this.terminals_[T]||T)+"'"}else{O="Parse error on line "+(c+1)+": Unexpected "+(T==A?"end of input":"'"+(this.terminals_[T]||T)+"'")}this.parseError(O,{text:y.match,token:this.terminals_[T]||T,line:y.yylineno,loc:C,expected:x})}if(B[0]instanceof Array&&B.length>1){throw new Error("Parse Error: multiple actions possible at state: "+F+", token: "+T)}switch(B[0]){case 1:i.push(T);a.push(y.yytext);u.push(y.yylloc);i.push(B[1]);T=null;if(!D){h=y.yyleng;o=y.yytext;c=y.yylineno;C=y.yylloc;if(p>0){p--}}else{T=D;D=null}break;case 2:$=this.productions_[B[1]][1];N.$=a[a.length-$];N._$={first_line:u[u.length-($||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-($||1)].first_column,last_column:u[u.length-1].last_column};if(g){N._$.range=[u[u.length-($||1)].range[0],u[u.length-1].range[1]]}S=this.performAction.apply(N,[o,h,c,f.yy,B[1],a,u].concat(b));if(typeof S!=="undefined"){return S}if($){i=i.slice(0,-1*$*2);a=a.slice(0,-1*$);u=u.slice(0,-1*$)}i.push(this.productions_[B[1]][0]);a.push(N.$);u.push(N._$);v=l[i[i.length-2]][i[i.length-1]];i.push(v);break;case 3:return true}}return true}),"parse")};var re=function(){var e={EOF:1,parseError:(0,r.K2)((function e(t,s){if(this.yy.parser){this.yy.parser.parseError(t,s)}else{throw new Error(t)}}),"parseError"),setInput:(0,r.K2)((function(e,t){this.yy=t||this.yy||{};this._input=e;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,r.K2)((function(){var e=this._input[0];this.yytext+=e;this.yyleng++;this.offset++;this.match+=e;this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);if(t){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return e}),"input"),unput:(0,r.K2)((function(e){var t=e.length;var s=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-t);this.offset-=t;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(s.length-1){this.yylineno-=s.length-1}var n=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-t};if(this.options.ranges){this.yylloc.range=[n[0],n[0]+this.yyleng-t]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,r.K2)((function(){this._more=true;return this}),"more"),reject:(0,r.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,r.K2)((function(e){this.unput(this.match.slice(e))}),"less"),pastInput:(0,r.K2)((function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,r.K2)((function(){var e=this.match;if(e.length<20){e+=this._input.substr(0,20-e.length)}return(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,r.K2)((function(){var e=this.pastInput();var t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"}),"showPosition"),test_match:(0,r.K2)((function(e,t){var s,i,n;if(this.options.backtrack_lexer){n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){n.yylloc.range=this.yylloc.range.slice(0)}}i=e[0].match(/(?:\r\n?|\n).*/g);if(i){this.yylineno+=i.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length};this.yytext+=e[0];this.match+=e[0];this.matches=e;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(e[0].length);this.matched+=e[0];s=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(s){return s}else if(this._backtrack){for(var a in n){this[a]=n[a]}return false}return false}),"test_match"),next:(0,r.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var e,t,s,i;if(!this._more){this.yytext="";this.match=""}var n=this._currentRules();for(var a=0;at[0].length)){t=s;i=a;if(this.options.backtrack_lexer){e=this.test_match(s,n[a]);if(e!==false){return e}else if(this._backtrack){t=false;continue}else{return false}}else if(!this.options.flex){break}}}if(t){e=this.test_match(t,n[i]);if(e!==false){return e}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,r.K2)((function e(){var t=this.next();if(t){return t}else{return this.lex()}}),"lex"),begin:(0,r.K2)((function e(t){this.conditionStack.push(t)}),"begin"),popState:(0,r.K2)((function e(){var t=this.conditionStack.length-1;if(t>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,r.K2)((function e(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,r.K2)((function e(t){t=this.conditionStack.length-1-Math.abs(t||0);if(t>=0){return this.conditionStack[t]}else{return"INITIAL"}}),"topState"),pushState:(0,r.K2)((function e(t){this.begin(t)}),"pushState"),stateStackSize:(0,r.K2)((function e(){return this.conditionStack.length}),"stateStackSize"),options:{},performAction:(0,r.K2)((function e(t,s,i,n){var a=n;switch(i){case 0:return 60;break;case 1:return 61;break;case 2:return 62;break;case 3:return 63;break;case 4:break;case 5:break;case 6:this.begin("acc_title");return 33;break;case 7:this.popState();return"acc_title_value";break;case 8:this.begin("acc_descr");return 35;break;case 9:this.popState();return"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";break;case 13:return 8;break;case 14:break;case 15:return 7;break;case 16:return 7;break;case 17:return"EDGE_STATE";break;case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState();this.begin("callback_args");break;case 21:return 77;break;case 22:this.popState();break;case 23:return 78;break;case 24:this.popState();break;case 25:return"STR";break;case 26:this.begin("string");break;case 27:return 80;break;case 28:return 55;break;case 29:this.begin("namespace");return 42;break;case 30:this.popState();return 8;break;case 31:break;case 32:this.begin("namespace-body");return 39;break;case 33:this.popState();return 41;break;case 34:return"EOF_IN_STRUCT";break;case 35:return 8;break;case 36:break;case 37:return"EDGE_STATE";break;case 38:this.begin("class");return 46;break;case 39:this.popState();return 8;break;case 40:break;case 41:this.popState();this.popState();return 41;break;case 42:this.begin("class-body");return 39;break;case 43:this.popState();return 41;break;case 44:return"EOF_IN_STRUCT";break;case 45:return"EDGE_STATE";break;case 46:return"OPEN_IN_STRUCT";break;case 47:break;case 48:return"MEMBER";break;case 49:return 81;break;case 50:return 73;break;case 51:return 74;break;case 52:return 76;break;case 53:return 52;break;case 54:return 54;break;case 55:return 47;break;case 56:return 48;break;case 57:return 79;break;case 58:this.popState();break;case 59:return"GENERICTYPE";break;case 60:this.begin("generic");break;case 61:this.popState();break;case 62:return"BQUOTE_STR";break;case 63:this.begin("bqstring");break;case 64:return 75;break;case 65:return 75;break;case 66:return 75;break;case 67:return 75;break;case 68:return 67;break;case 69:return 67;break;case 70:return 69;break;case 71:return 69;break;case 72:return 68;break;case 73:return 66;break;case 74:return 70;break;case 75:return 71;break;case 76:return 72;break;case 77:return 22;break;case 78:return 44;break;case 79:return 99;break;case 80:return 17;break;case 81:return"PLUS";break;case 82:return 85;break;case 83:return 59;break;case 84:return 88;break;case 85:return 88;break;case 86:return 89;break;case 87:return"EQUALS";break;case 88:return"EQUALS";break;case 89:return 58;break;case 90:return 12;break;case 91:return 14;break;case 92:return"PUNCTUATION";break;case 93:return 84;break;case 94:return 101;break;case 95:return 87;break;case 96:return 87;break;case 97:return 9;break}}),"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:classDef\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,33,34,35,36,37,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},namespace:{rules:[26,29,30,31,32,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},"class-body":{rules:[26,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},class:{rules:[26,39,40,41,42,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},acc_descr_multiline:{rules:[11,12,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},acc_descr:{rules:[9,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},acc_title:{rules:[7,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},callback_args:{rules:[22,23,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},callback_name:{rules:[19,20,21,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},href:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},struct:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},generic:{rules:[26,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},bqstring:{rules:[26,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},string:{rules:[24,25,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:false},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],inclusive:true}}};return e}();ae.lexer=re;function ue(){this.yy={}}(0,r.K2)(ue,"Parser");ue.prototype=ae;ae.Parser=ue;return new ue}();l.parser=l;var o=l;var c=["#","+","~","-",""];var h=class{static{(0,r.K2)(this,"ClassMember")}constructor(e,t){this.memberType=t;this.visibility="";this.classifier="";this.text="";const s=(0,r.jZ)(e,(0,r.D7)());this.parseMember(s)}getDisplayDetails(){let e=this.visibility+(0,r.QO)(this.id);if(this.memberType==="method"){e+=`(${(0,r.QO)(this.parameters.trim())})`;if(this.returnType){e+=" : "+(0,r.QO)(this.returnType)}}e=e.trim();const t=this.parseClassifier();return{displayText:e,cssStyle:t}}parseMember(e){let t="";if(this.memberType==="method"){const s=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/;const i=s.exec(e);if(i){const e=i[1]?i[1].trim():"";if(c.includes(e)){this.visibility=e}this.id=i[2];this.parameters=i[3]?i[3].trim():"";t=i[4]?i[4].trim():"";this.returnType=i[5]?i[5].trim():"";if(t===""){const e=this.returnType.substring(this.returnType.length-1);if(/[$*]/.exec(e)){t=e;this.returnType=this.returnType.substring(0,this.returnType.length-1)}}}}else{const s=e.length;const i=e.substring(0,1);const n=e.substring(s-1);if(c.includes(i)){this.visibility=i}if(/[$*]/.exec(n)){t=n}this.id=e.substring(this.visibility===""?0:1,t===""?s:s-1)}this.classifier=t;this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();const s=`${this.visibility?"\\"+this.visibility:""}${(0,r.QO)(this.id)}${this.memberType==="method"?`(${(0,r.QO)(this.parameters)})${this.returnType?" : "+(0,r.QO)(this.returnType):""}`:""}`;this.text=s.replaceAll("<","<").replaceAll(">",">");if(this.text.startsWith("\\<")){this.text=this.text.replace("\\<","~")}}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}};var p="classId-";var d=0;var A=(0,r.K2)((e=>r.Y2.sanitizeText(e,(0,r.D7)())),"sanitizeText");var b=class{constructor(){this.relations=[];this.classes=new Map;this.styleClasses=new Map;this.notes=[];this.interfaces=[];this.namespaces=new Map;this.namespaceCounter=0;this.functions=[];this.lineType={LINE:0,DOTTED_LINE:1};this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4};this.setupToolTips=(0,r.K2)((e=>{let t=(0,u.Ltv)(".mermaidTooltip");if((t._groups||t)[0][0]===null){t=(0,u.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0)}const s=(0,u.Ltv)(e).select("svg");const i=s.selectAll("g.node");i.on("mouseover",(e=>{const s=(0,u.Ltv)(e.currentTarget);const i=s.attr("title");if(i===null){return}const n=this.getBoundingClientRect();t.transition().duration(200).style("opacity",".9");t.text(s.attr("title")).style("left",window.scrollX+n.left+(n.right-n.left)/2+"px").style("top",window.scrollY+n.top-14+document.body.scrollTop+"px");t.html(t.html().replace(/<br\/>/g,"
"));s.classed("hover",true)})).on("mouseout",(e=>{t.transition().duration(500).style("opacity",0);const s=(0,u.Ltv)(e.currentTarget);s.classed("hover",false)}))}),"setupToolTips");this.direction="TB";this.setAccTitle=r.SV;this.getAccTitle=r.iN;this.setAccDescription=r.EI;this.getAccDescription=r.m7;this.setDiagramTitle=r.ke;this.getDiagramTitle=r.ab;this.getConfig=(0,r.K2)((()=>(0,r.D7)().class),"getConfig");this.functions.push(this.setupToolTips.bind(this));this.clear();this.addRelation=this.addRelation.bind(this);this.addClassesToNamespace=this.addClassesToNamespace.bind(this);this.addNamespace=this.addNamespace.bind(this);this.setCssClass=this.setCssClass.bind(this);this.addMembers=this.addMembers.bind(this);this.addClass=this.addClass.bind(this);this.setClassLabel=this.setClassLabel.bind(this);this.addAnnotation=this.addAnnotation.bind(this);this.addMember=this.addMember.bind(this);this.cleanupLabel=this.cleanupLabel.bind(this);this.addNote=this.addNote.bind(this);this.defineClass=this.defineClass.bind(this);this.setDirection=this.setDirection.bind(this);this.setLink=this.setLink.bind(this);this.bindFunctions=this.bindFunctions.bind(this);this.clear=this.clear.bind(this);this.setTooltip=this.setTooltip.bind(this);this.setClickEvent=this.setClickEvent.bind(this);this.setCssStyle=this.setCssStyle.bind(this)}static{(0,r.K2)(this,"ClassDB")}splitClassNameAndType(e){const t=r.Y2.sanitizeText(e,(0,r.D7)());let s="";let i=t;if(t.indexOf("~")>0){const e=t.split("~");i=A(e[0]);s=A(e[1])}return{className:i,type:s}}setClassLabel(e,t){const s=r.Y2.sanitizeText(e,(0,r.D7)());if(t){t=A(t)}const{className:i}=this.splitClassNameAndType(s);this.classes.get(i).label=t;this.classes.get(i).text=`${t}${this.classes.get(i).type?`<${this.classes.get(i).type}>`:""}`}addClass(e){const t=r.Y2.sanitizeText(e,(0,r.D7)());const{className:s,type:i}=this.splitClassNameAndType(t);if(this.classes.has(s)){return}const n=r.Y2.sanitizeText(s,(0,r.D7)());this.classes.set(n,{id:n,type:i,label:n,text:`${n}${i?`<${i}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:p+n+"-"+d});d++}addInterface(e,t){const s={id:`interface${this.interfaces.length}`,label:e,classId:t};this.interfaces.push(s)}lookUpDomId(e){const t=r.Y2.sanitizeText(e,(0,r.D7)());if(this.classes.has(t)){return this.classes.get(t).domId}throw new Error("Class not found: "+t)}clear(){this.relations=[];this.classes=new Map;this.notes=[];this.interfaces=[];this.functions=[];this.functions.push(this.setupToolTips.bind(this));this.namespaces=new Map;this.namespaceCounter=0;this.direction="TB";(0,r.IU)()}getClass(e){return this.classes.get(e)}getClasses(){return this.classes}getRelations(){return this.relations}getNotes(){return this.notes}addRelation(e){r.Rm.debug("Adding relation: "+JSON.stringify(e));const t=[this.relationType.LOLLIPOP,this.relationType.AGGREGATION,this.relationType.COMPOSITION,this.relationType.DEPENDENCY,this.relationType.EXTENSION];if(e.relation.type1===this.relationType.LOLLIPOP&&!t.includes(e.relation.type2)){this.addClass(e.id2);this.addInterface(e.id1,e.id2);e.id1=`interface${this.interfaces.length-1}`}else if(e.relation.type2===this.relationType.LOLLIPOP&&!t.includes(e.relation.type1)){this.addClass(e.id1);this.addInterface(e.id2,e.id1);e.id2=`interface${this.interfaces.length-1}`}else{this.addClass(e.id1);this.addClass(e.id2)}e.id1=this.splitClassNameAndType(e.id1).className;e.id2=this.splitClassNameAndType(e.id2).className;e.relationTitle1=r.Y2.sanitizeText(e.relationTitle1.trim(),(0,r.D7)());e.relationTitle2=r.Y2.sanitizeText(e.relationTitle2.trim(),(0,r.D7)());this.relations.push(e)}addAnnotation(e,t){const s=this.splitClassNameAndType(e).className;this.classes.get(s).annotations.push(t)}addMember(e,t){this.addClass(e);const s=this.splitClassNameAndType(e).className;const i=this.classes.get(s);if(typeof t==="string"){const e=t.trim();if(e.startsWith("<<")&&e.endsWith(">>")){i.annotations.push(A(e.substring(2,e.length-2)))}else if(e.indexOf(")")>0){i.methods.push(new h(e,"method"))}else if(e){i.members.push(new h(e,"attribute"))}}}addMembers(e,t){if(Array.isArray(t)){t.reverse();t.forEach((t=>this.addMember(e,t)))}}addNote(e,t){const s={id:`note${this.notes.length}`,class:t,text:e};this.notes.push(s)}cleanupLabel(e){if(e.startsWith(":")){e=e.substring(1)}return A(e.trim())}setCssClass(e,t){e.split(",").forEach((e=>{let s=e;if(/\d/.exec(e[0])){s=p+s}const i=this.classes.get(s);if(i){i.cssClasses+=" "+t}}))}defineClass(e,t){for(const s of e){let e=this.styleClasses.get(s);if(e===void 0){e={id:s,styles:[],textStyles:[]};this.styleClasses.set(s,e)}if(t){t.forEach((t=>{if(/color/.exec(t)){const s=t.replace("fill","bgFill");e.textStyles.push(s)}e.styles.push(t)}))}this.classes.forEach((e=>{if(e.cssClasses.includes(s)){e.styles.push(...t.flatMap((e=>e.split(","))))}}))}}setTooltip(e,t){e.split(",").forEach((e=>{if(t!==void 0){this.classes.get(e).tooltip=A(t)}}))}getTooltip(e,t){if(t&&this.namespaces.has(t)){return this.namespaces.get(t).classes.get(e).tooltip}return this.classes.get(e).tooltip}setLink(e,t,s){const i=(0,r.D7)();e.split(",").forEach((e=>{let n=e;if(/\d/.exec(e[0])){n=p+n}const r=this.classes.get(n);if(r){r.link=a._K.formatUrl(t,i);if(i.securityLevel==="sandbox"){r.linkTarget="_top"}else if(typeof s==="string"){r.linkTarget=A(s)}else{r.linkTarget="_blank"}}}));this.setCssClass(e,"clickable")}setClickEvent(e,t,s){e.split(",").forEach((e=>{this.setClickFunc(e,t,s);this.classes.get(e).haveCallback=true}));this.setCssClass(e,"clickable")}setClickFunc(e,t,s){const i=r.Y2.sanitizeText(e,(0,r.D7)());const n=(0,r.D7)();if(n.securityLevel!=="loose"){return}if(t===void 0){return}const u=i;if(this.classes.has(u)){const e=this.lookUpDomId(u);let i=[];if(typeof s==="string"){i=s.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let e=0;e{const s=document.querySelector(`[id="${e}"]`);if(s!==null){s.addEventListener("click",(()=>{a._K.runFunc(t,...i)}),false)}}))}}bindFunctions(e){this.functions.forEach((t=>{t(e)}))}getDirection(){return this.direction}setDirection(e){this.direction=e}addNamespace(e){if(this.namespaces.has(e)){return}this.namespaces.set(e,{id:e,classes:new Map,children:{},domId:p+e+"-"+this.namespaceCounter});this.namespaceCounter++}getNamespace(e){return this.namespaces.get(e)}getNamespaces(){return this.namespaces}addClassesToNamespace(e,t){if(!this.namespaces.has(e)){return}for(const s of t){const{className:t}=this.splitClassNameAndType(s);this.classes.get(t).parent=e;this.namespaces.get(e).classes.set(t,this.classes.get(t))}}setCssStyle(e,t){const s=this.classes.get(e);if(!t||!s){return}for(const i of t){if(i.includes(",")){s.styles.push(...i.split(","))}else{s.styles.push(i)}}}getArrowMarker(e){let t;switch(e){case 0:t="aggregation";break;case 1:t="extension";break;case 2:t="composition";break;case 3:t="dependency";break;case 4:t="lollipop";break;default:t="none"}return t}getData(){const e=[];const t=[];const s=(0,r.D7)();for(const n of this.namespaces.keys()){const t=this.namespaces.get(n);if(t){const i={id:t.id,label:t.id,isGroup:true,padding:s.class.padding??16,shape:"rect",cssStyles:["fill: none","stroke: black"],look:s.look};e.push(i)}}for(const n of this.classes.keys()){const t=this.classes.get(n);if(t){const i=t;i.parentId=t.parent;i.look=s.look;e.push(i)}}let i=0;for(const n of this.notes){i++;const a={id:n.id,label:n.text,isGroup:false,shape:"note",padding:s.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${s.themeVariables.noteBkgColor}`,`stroke: ${s.themeVariables.noteBorderColor}`],look:s.look};e.push(a);const r=this.classes.get(n.class)?.id??"";if(r){const e={id:`edgeNote${i}`,start:n.id,end:r,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:s.look};t.push(e)}}for(const n of this.interfaces){const t={id:n.id,label:n.label,isGroup:false,shape:"rect",cssStyles:["opacity: 0;"],look:s.look};e.push(t)}i=0;for(const n of this.relations){i++;const e={id:(0,a.rY)(n.id1,n.id2,{prefix:"id",counter:i}),start:n.id1,end:n.id2,type:"normal",label:n.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:this.getArrowMarker(n.relation.type1),arrowTypeEnd:this.getArrowMarker(n.relation.type2),startLabelRight:n.relationTitle1==="none"?"":n.relationTitle1,endLabelLeft:n.relationTitle2==="none"?"":n.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:n.style||"",pattern:n.relation.lineType==1?"dashed":"solid",look:s.look};t.push(e)}return{nodes:e,edges:t,other:{},config:s,direction:this.getDirection()}}};var y=(0,r.K2)((e=>`g.classGroup text {\n fill: ${e.nodeBorder||e.classText};\n stroke: none;\n font-family: ${e.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${e.classText};\n}\n.edgeLabel .label rect {\n fill: ${e.mainBkg};\n}\n.label text {\n fill: ${e.classText};\n}\n\n.labelBkg {\n background: ${e.mainBkg};\n}\n.edgeLabel .label span {\n background: ${e.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${e.mainBkg};\n stroke: ${e.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${e.nodeBorder};\n stroke-width: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${e.mainBkg};\n stroke: ${e.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${e.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${e.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${e.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${e.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${e.lineColor} !important;\n stroke: ${e.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${e.lineColor} !important;\n stroke: ${e.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${e.lineColor} !important;\n stroke: ${e.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${e.lineColor} !important;\n stroke: ${e.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: transparent !important;\n stroke: ${e.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: transparent !important;\n stroke: ${e.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: transparent !important;\n stroke: ${e.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: transparent !important;\n stroke: ${e.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${e.mainBkg} !important;\n stroke: ${e.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${e.mainBkg} !important;\n stroke: ${e.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n line-height: initial;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${e.textColor};\n}\n`),"getStyles");var f=y;var k=(0,r.K2)(((e,t="TB")=>{if(!e.doc){return t}let s=t;for(const i of e.doc){if(i.stmt==="dir"){s=i.value}}return s}),"getDir");var C=(0,r.K2)((function(e,t){return t.db.getClasses()}),"getClasses");var g=(0,r.K2)((async function(e,t,s,u){r.Rm.info("REF0:");r.Rm.info("Drawing class diagram (v3)",t);const{securityLevel:l,state:o,layout:c}=(0,r.D7)();const h=u.db.getData();const p=(0,i.A)(t,l);h.type=u.type;h.layoutAlgorithm=(0,n.q7)(c);h.nodeSpacing=o?.nodeSpacing||50;h.rankSpacing=o?.rankSpacing||50;h.markers=["aggregation","extension","composition","dependency","lollipop"];h.diagramId=t;await(0,n.XX)(h,p);const d=8;a._K.insertTitle(p,"classDiagramTitleText",o?.titleTopMargin??25,u.db.getDiagramTitle());(0,i.P)(p,d,"classDiagram",o?.useMaxWidth??true)}),"draw");var m={getClasses:C,draw:g,getDir:k}},15051:(e,t,s)=>{s.d(t,{A:()=>a,P:()=>r});var i=s(75905);var n=s(24982);var a=(0,i.K2)(((e,t)=>{let s;if(t==="sandbox"){s=(0,n.Ltv)("#i"+e)}const i=t==="sandbox"?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body");const a=i.select(`[id="${e}"]`);return a}),"getDiagramElement");var r=(0,i.K2)(((e,t,s,n)=>{e.attr("class",s);const{width:a,height:r,x:o,y:c}=u(e,t);(0,i.a$)(e,r,a,n);const h=l(o,c,a,r,t);e.attr("viewBox",h);i.Rm.debug(`viewBox configured: ${h} with padding: ${t}`)}),"setupViewPortForSVG");var u=(0,i.K2)(((e,t)=>{const s=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+t*2,height:s.height+t*2,x:s.x,y:s.y}}),"calculateDimensionsWithPadding");var l=(0,i.K2)(((e,t,s,i,n)=>`${e-n} ${t-n} ${s} ${i}`),"createViewBox")}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1423.4bcf4453e1c1d12d872f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1423.4bcf4453e1c1d12d872f.js deleted file mode 100644 index b35d1eedde860a9c6f4278905c082d50edaab70e..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1423.4bcf4453e1c1d12d872f.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1423,5606],{75128:(t,e,s)=>{"use strict";s.d(e,{Ar:()=>d,Bc:()=>Qt,Gw:()=>Ot,_5:()=>h,et:()=>u,wm:()=>Wt});var i=s(71674);var n=s.n(i);var o=s(22819);var r=s.n(o);var l=s(4452);var a=s.n(l);class h{constructor(t,e,s,i){this.state=t;this.pos=e;this.explicit=s;this.view=i;this.abortListeners=[];this.abortOnDocChange=false}tokenBefore(t){let e=(0,l.syntaxTree)(this.state).resolveInner(this.pos,-1);while(e&&t.indexOf(e.name)<0)e=e.parent;return e?{from:e.from,to:this.pos,text:this.state.sliceDoc(e.from,this.pos),type:e.type}:null}matchBefore(t){let e=this.state.doc.lineAt(this.pos);let s=Math.max(e.from,this.pos-250);let i=e.text.slice(s-e.from,this.pos-e.from);let n=i.search(k(t,false));return n<0?null:{from:s+n,to:this.pos,text:i.slice(n)}}get aborted(){return this.abortListeners==null}addEventListener(t,e,s){if(t=="abort"&&this.abortListeners){this.abortListeners.push(e);if(s&&s.onDocChange)this.abortOnDocChange=true}}}function c(t){let e=Object.keys(t).join("");let s=/\w/.test(e);if(s)e=e.replace(/\w/g,"");return`[${s?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function f(t){let e=Object.create(null),s=Object.create(null);for(let{label:n}of t){e[n[0]]=true;for(let t=1;ttypeof t=="string"?{label:t}:t));let[s,i]=e.every((t=>/^\w+$/.test(t.label)))?[/\w*$/,/\w+$/]:f(e);return t=>{let n=t.matchBefore(i);return n||t.explicit?{from:n?n.from:t.pos,options:e,validFor:s}:null}}function p(t,e){return s=>{for(let i=syntaxTree(s.state).resolveInner(s.pos,-1);i;i=i.parent){if(t.indexOf(i.name)>-1)return e(s);if(i.type.isTop)break}return null}}function d(t,e){return s=>{for(let e=(0,l.syntaxTree)(s.state).resolveInner(s.pos,-1);e;e=e.parent){if(t.indexOf(e.name)>-1)return null;if(e.type.isTop)break}return e(s)}}class m{constructor(t,e,s,i){this.completion=t;this.source=e;this.match=s;this.score=i}}function g(t){return t.selection.main.from}function k(t,e){var s;let{source:i}=t;let n=e&&i[0]!="^",o=i[i.length-1]!="$";if(!n&&!o)return t;return new RegExp(`${n?"^":""}(?:${i})${o?"$":""}`,(s=t.flags)!==null&&s!==void 0?s:t.ignoreCase?"i":"")}const b=i.Annotation.define();function x(t,e,s,n){let{main:o}=t.selection,r=s-o.from,l=n-o.from;return Object.assign(Object.assign({},t.changeByRange((a=>{if(a!=o&&s!=n&&t.sliceDoc(a.from+r,a.from+l)!=t.sliceDoc(s,n))return{range:a};let h=t.toText(e);return{changes:{from:a.from+r,to:n==o.from?a.to:a.from+l,insert:h},range:i.EditorSelection.cursor(a.from+r+h.length)}}))),{scrollIntoView:true,userEvent:"input.complete"})}const v=new WeakMap;function w(t){if(!Array.isArray(t))return t;let e=v.get(t);if(!e)v.set(t,e=u(t));return e}const y=i.StateEffect.define();const S=i.StateEffect.define();class C{constructor(t){this.pattern=t;this.chars=[];this.folded=[];this.any=[];this.precise=[];this.byWord=[];this.score=0;this.matched=[];for(let e=0;e=48&&n<=57||n>=97&&n<=122?2:n>=65&&n<=90?1:0:(h=(0,i.fromCodePoint)(n))!=h.toLowerCase()?1:h!=h.toUpperCase()?2:0;if(!b||x==1&&g||v==0&&x!=0){if(e[f]==n||s[f]==n&&(u=true))r[f++]=b;else if(r.length)k=false}v=x;b+=(0,i.codePointSize)(n)}if(f==a&&r[0]==0&&k)return this.result(-100+(u?-200:0),r,t);if(p==a&&d==0)return this.ret(-200-t.length+(m==t.length?0:-100),[0,m]);if(l>-1)return this.ret(-700-t.length,[l,l+this.pattern.length]);if(p==a)return this.ret(-200+-700-t.length,[d,m]);if(f==a)return this.result(-100+(u?-200:0)+-700+(k?0:-1100),r,t);return e.length==2?null:this.result((n[0]?-700:0)+-200+-1100,n,t)}result(t,e,s){let n=[],o=0;for(let r of e){let t=r+(this.astral?(0,i.codePointSize)((0,i.codePointAt)(s,r)):1);if(o&&n[o-1]==r)n[o-1]=t;else{n[o++]=r;n[o++]=t}}return this.ret(t-s.length,n)}}class P{constructor(t){this.pattern=t;this.matched=[];this.score=0;this.folded=t.toLowerCase()}match(t){if(t.lengthfalse,activateOnTypingDelay:100,selectOnOpen:true,override:null,closeOnBlur:true,maxRenderedOptions:100,defaultKeymap:true,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:false,icons:true,addToOptions:[],positionInfo:I,filterStrict:false,compareCompletions:(t,e)=>t.label.localeCompare(e.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(t,e)=>t&&e,closeOnBlur:(t,e)=>t&&e,icons:(t,e)=>t&&e,tooltipClass:(t,e)=>s=>A(t(s),e(s)),optionClass:(t,e)=>s=>A(t(s),e(s)),addToOptions:(t,e)=>t.concat(e),filterStrict:(t,e)=>t||e})}});function A(t,e){return t?e?t+" "+e:t:e}function I(t,e,s,i,n,r){let l=t.textDirection==o.Direction.RTL,a=l,h=false;let c="top",f,u;let p=e.left-n.left,d=n.right-e.right;let m=i.right-i.left,g=i.bottom-i.top;if(a&&p=g||t>e.top){f=s.bottom-e.top}else{c="bottom";f=e.bottom-s.top}}let k=(e.bottom-e.top)/r.offsetHeight;let b=(e.right-e.left)/r.offsetWidth;return{style:`${c}: ${f/k}px; max-width: ${u/b}px`,class:"cm-completionInfo-"+(h?l?"left-narrow":"right-narrow":a?"left":"right")}}function O(t){let e=t.addToOptions.slice();if(t.icons)e.push({render(t){let e=document.createElement("div");e.classList.add("cm-completionIcon");if(t.type)e.classList.add(...t.type.split(/\s+/g).map((t=>"cm-completionIcon-"+t)));e.setAttribute("aria-hidden","true");return e},position:20});e.push({render(t,e,s,i){let n=document.createElement("span");n.className="cm-completionLabel";let o=t.displayLabel||t.label,r=0;for(let l=0;lr)n.appendChild(document.createTextNode(o.slice(r,t)));let s=n.appendChild(document.createElement("span"));s.appendChild(document.createTextNode(o.slice(t,e)));s.className="cm-completionMatchedText";r=e}if(rt.position-e.position)).map((t=>t.render))}function D(t,e,s){if(t<=s)return{from:0,to:t};if(e<0)e=0;if(e<=t>>1){let t=Math.floor(e/s);return{from:t*s,to:(t+1)*s}}let i=Math.floor((t-e)/s);return{from:t-(i+1)*s,to:t-i*s}}class R{constructor(t,e,s){this.view=t;this.stateField=e;this.applyCompletion=s;this.info=null;this.infoDestroy=null;this.placeInfoReq={read:()=>this.measureInfo(),write:t=>this.placeInfo(t),key:this};this.space=null;this.currentClass="";let i=t.state.field(e);let{options:n,selected:o}=i.open;let r=t.state.facet(T);this.optionContent=O(r);this.optionClass=r.optionClass;this.tooltipClass=r.tooltipClass;this.range=D(n.length,o,r.maxRenderedOptions);this.dom=document.createElement("div");this.dom.className="cm-tooltip-autocomplete";this.updateTooltipClass(t.state);this.dom.addEventListener("mousedown",(s=>{let{options:i}=t.state.field(e).open;for(let e=s.target,n;e&&e!=this.dom;e=e.parentNode){if(e.nodeName=="LI"&&(n=/-(\d+)$/.exec(e.id))&&+n[1]{let s=t.state.field(this.stateField,false);if(s&&s.tooltip&&t.state.facet(T).closeOnBlur&&e.relatedTarget!=t.contentDOM)t.dispatch({effects:S.of(null)})}));this.showOptions(n,i.id)}mount(){this.updateSel()}showOptions(t,e){if(this.list)this.list.remove();this.list=this.dom.appendChild(this.createListBox(t,e,this.range));this.list.addEventListener("scroll",(()=>{if(this.info)this.view.requestMeasure(this.placeInfoReq)}))}update(t){var e;let s=t.state.field(this.stateField);let i=t.startState.field(this.stateField);this.updateTooltipClass(t.state);if(s!=i){let{options:n,selected:o,disabled:r}=s.open;if(!i.open||i.open.options!=n){this.range=D(n.length,o,t.state.facet(T).maxRenderedOptions);this.showOptions(n,s.id)}this.updateSel();if(r!=((e=i.open)===null||e===void 0?void 0:e.disabled))this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!r)}}updateTooltipClass(t){let e=this.tooltipClass(t);if(e!=this.currentClass){for(let t of this.currentClass.split(" "))if(t)this.dom.classList.remove(t);for(let t of e.split(" "))if(t)this.dom.classList.add(t);this.currentClass=e}}positioned(t){this.space=t;if(this.info)this.view.requestMeasure(this.placeInfoReq)}updateSel(){let t=this.view.state.field(this.stateField),e=t.open;if(e.selected>-1&&e.selected=this.range.to){this.range=D(e.options.length,e.selected,this.view.state.facet(T).maxRenderedOptions);this.showOptions(e.options,t.id)}if(this.updateSelectedOption(e.selected)){this.destroyInfo();let{completion:s}=e.options[e.selected];let{info:i}=s;if(!i)return;let n=typeof i==="string"?document.createTextNode(i):i(s);if(!n)return;if("then"in n){n.then((e=>{if(e&&this.view.state.field(this.stateField,false)==t)this.addInfoPane(e,s)})).catch((t=>(0,o.logException)(this.view.state,t,"completion info")))}else{this.addInfoPane(n,s)}}}addInfoPane(t,e){this.destroyInfo();let s=this.info=document.createElement("div");s.className="cm-tooltip cm-completionInfo";if(t.nodeType!=null){s.appendChild(t);this.infoDestroy=null}else{let{dom:e,destroy:i}=t;s.appendChild(e);this.infoDestroy=i||null}this.dom.appendChild(s);this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(t){let e=null;for(let s=this.list.firstChild,i=this.range.from;s;s=s.nextSibling,i++){if(s.nodeName!="LI"||!s.id){i--}else if(i==t){if(!s.hasAttribute("aria-selected")){s.setAttribute("aria-selected","true");e=s}}else{if(s.hasAttribute("aria-selected"))s.removeAttribute("aria-selected")}}if(e)N(this.list,e);return e}measureInfo(){let t=this.dom.querySelector("[aria-selected]");if(!t||!this.info)return null;let e=this.dom.getBoundingClientRect();let s=this.info.getBoundingClientRect();let i=t.getBoundingClientRect();let n=this.space;if(!n){let t=this.dom.ownerDocument.documentElement;n={left:0,top:0,right:t.clientWidth,bottom:t.clientHeight}}if(i.top>Math.min(n.bottom,e.bottom)-10||i.bottom{if(t.target==i)t.preventDefault()}));let n=null;for(let o=s.from;os.from||s.from==0)){n=t;if(typeof a!="string"&&a.header){i.appendChild(a.header(a))}else{let e=i.appendChild(document.createElement("completion-section"));e.textContent=t}}}const h=i.appendChild(document.createElement("li"));h.id=e+"-"+o;h.setAttribute("role","option");let c=this.optionClass(r);if(c)h.className=c;for(let t of this.optionContent){let e=t(r,this.view.state,this.view,l);if(e)h.appendChild(e)}}if(s.from)i.classList.add("cm-completionListIncompleteTop");if(s.tonew R(s,t,e)}function N(t,e){let s=t.getBoundingClientRect();let i=e.getBoundingClientRect();let n=s.height/t.offsetHeight;if(i.tops.bottom)t.scrollTop+=(i.bottom-s.bottom)/n}function L(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function B(t,e){let s=[];let i=null;let n=t=>{s.push(t);let{section:e}=t.completion;if(e){if(!i)i=[];let t=typeof e=="string"?e:e.name;if(!i.some((e=>e.name==t)))i.push(typeof e=="string"?{name:t}:e)}};let o=e.facet(T);for(let h of t)if(h.hasResult()){let t=h.result.getMatch;if(h.result.filter===false){for(let e of h.result.options){n(new m(e,h.source,t?t(e):[],1e9-s.length))}}else{let s=e.sliceDoc(h.from,h.to),i;let r=o.filterStrict?new P(s):new C(s);for(let e of h.result.options)if(i=r.match(e.label)){let s=!e.displayLabel?i.matched:t?t(e,i.matched):[];n(new m(e,h.source,s,i.score+(e.boost||0)))}}}if(i){let t=Object.create(null),e=0;let n=(t,e)=>{var s,i;return((s=t.rank)!==null&&s!==void 0?s:1e9)-((i=e.rank)!==null&&i!==void 0?i:1e9)||(t.namee.score-t.score||a(t.completion,e.completion)))){let t=h.completion;if(!l||l.label!=t.label||l.detail!=t.detail||l.type!=null&&t.type!=null&&l.type!=t.type||l.apply!=t.apply||l.boost!=t.boost)r.push(h);else if(L(h.completion)>L(l))r[r.length-1]=h;l=h.completion}return r}class M{constructor(t,e,s,i,n,o){this.options=t;this.attrs=e;this.tooltip=s;this.timestamp=i;this.selected=n;this.disabled=o}setSelected(t,e){return t==this.selected||t>=this.options.length?this:new M(this.options,U(e,t),this.tooltip,this.timestamp,t,this.disabled)}static build(t,e,s,i,n,o){if(i&&!o&&t.some((t=>t.isPending)))return i.setDisabled();let r=B(t,e);if(!r.length)return i&&t.some((t=>t.isPending))?i.setDisabled():null;let l=e.facet(T).selectOnOpen?0:-1;if(i&&i.selected!=l&&i.selected!=-1){let t=i.options[i.selected].completion;for(let e=0;ee.hasResult()?Math.min(t,e.from):t),1e8),create:Y,above:n.aboveCursor},i?i.timestamp:Date.now(),l,false)}map(t){return new M(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:t.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new M(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,true)}}class z{constructor(t,e,s){this.active=t;this.id=e;this.open=s}static start(){return new z(W,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(t){let{state:e}=t,s=e.facet(T);let i=s.override||e.languageDataAt("autocomplete",g(e)).map(w);let n=i.map((e=>{let i=this.active.find((t=>t.source==e))||new q(e,this.active.some((t=>t.state!=0))?1:0);return i.update(t,s)}));if(n.length==this.active.length&&n.every(((t,e)=>t==this.active[e])))n=this.active;let o=this.open,r=t.effects.some((t=>t.is(_)));if(o&&t.docChanged)o=o.map(t.changes);if(t.selection||n.some((e=>e.hasResult()&&t.changes.touchesRange(e.from,e.to)))||!F(n,this.active)||r)o=M.build(n,e,this.id,o,s,r);else if(o&&o.disabled&&!n.some((t=>t.isPending)))o=null;if(!o&&n.every((t=>!t.isPending))&&n.some((t=>t.hasResult())))n=n.map((t=>t.hasResult()?new q(t.source,0):t));for(let l of t.effects)if(l.is(K))o=o&&o.setSelected(l.value,this.id);return n==this.active&&o==this.open?this:new z(n,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?$:j}}function F(t,e){if(t==e)return true;for(let s=0,i=0;;){while(s-1)s["aria-activedescendant"]=t+"-"+e;return s}const W=[];function V(t,e){if(t.isUserEvent("input.complete")){let s=t.annotation(b);if(s&&e.activateOnCompletion(s))return 4|8}let s=t.isUserEvent("input.type");return s&&e.activateOnTyping?4|1:s?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}class q{constructor(t,e,s=false){this.source=t;this.state=e;this.explicit=s}hasResult(){return false}get isPending(){return this.state==1}update(t,e){let s=V(t,e),i=this;if(s&8||s&16&&this.touches(t))i=new q(i.source,0);if(s&4&&i.state==0)i=new q(this.source,1);i=i.updateFor(t,s);for(let n of t.effects){if(n.is(y))i=new q(i.source,1,n.value);else if(n.is(S))i=new q(i.source,0);else if(n.is(_))for(let t of n.value)if(t.source==i.source)i=t}return i}updateFor(t,e){return this.map(t.changes)}map(t){return this}touches(t){return t.changes.touchesRange(g(t.state))}}class H extends q{constructor(t,e,s,i,n,o){super(t,3,e);this.limit=s;this.result=i;this.from=n;this.to=o}hasResult(){return true}updateFor(t,e){var s;if(!(e&3))return this.map(t.changes);let i=this.result;if(i.map&&!t.changes.empty)i=i.map(i,t.changes);let n=t.changes.mapPos(this.from),o=t.changes.mapPos(this.to,1);let r=g(t.state);if(r>o||!i||e&2&&(g(t.startState)==this.from||rt.map(e)))}});const K=i.StateEffect.define();const Q=i.StateField.define({create(){return z.start()},update(t,e){return t.update(e)},provide:t=>[o.showTooltip.from(t,(t=>t.tooltip)),o.EditorView.contentAttributes.from(t,(t=>t.attrs))]});function X(t,e){const s=e.completion.apply||e.completion.label;let i=t.state.field(Q).active.find((t=>t.source==e.source));if(!(i instanceof H))return false;if(typeof s=="string")t.dispatch(Object.assign(Object.assign({},x(t.state,s,i.from,i.to)),{annotations:b.of(e.completion)}));else s(t,e.completion,i.from,i.to);return true}const Y=E(Q,X);function J(t,e="option"){return s=>{let i=s.state.field(Q,false);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+n*(t?1:-1):t?0:l-1;if(a<0)a=e=="page"?0:l-1;else if(a>=l)a=e=="page"?l-1:0;s.dispatch({effects:K.of(a)});return true}}const Z=t=>{let e=t.state.field(Q,false);if(t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp{let e=t.state.field(Q,false);if(!e)return false;t.dispatch({effects:y.of(true)});return true};const et=t=>{let e=t.state.field(Q,false);if(!e||!e.active.some((t=>t.state!=0)))return false;t.dispatch({effects:S.of(null)});return true};class st{constructor(t,e){this.active=t;this.context=e;this.time=Date.now();this.updates=[];this.done=undefined}}const it=50,nt=1e3;const ot=o.ViewPlugin.fromClass(class{constructor(t){this.view=t;this.debounceUpdate=-1;this.running=[];this.debounceAccept=-1;this.pendingStart=false;this.composing=0;for(let e of t.state.field(Q).active)if(e.isPending)this.startQuery(e)}update(t){let e=t.state.field(Q);let s=t.state.facet(T);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Q)==e)return;let i=t.transactions.some((t=>{let e=V(t,s);return e&8||(t.selection||t.docChanged)&&!(e&3)}));for(let l=0;lit&&Date.now()-e.time>nt){for(let t of e.context.abortListeners){try{t()}catch(r){(0,o.logException)(this.view.state,r)}}e.context.abortListeners=null;this.running.splice(l--,1)}else{e.updates.push(...t.transactions)}}if(this.debounceUpdate>-1)clearTimeout(this.debounceUpdate);if(t.transactions.some((t=>t.effects.some((t=>t.is(y))))))this.pendingStart=true;let n=this.pendingStart?50:s.activateOnTypingDelay;this.debounceUpdate=e.active.some((t=>t.isPending&&!this.running.some((e=>e.active.source==t.source))))?setTimeout((()=>this.startUpdate()),n):-1;if(this.composing!=0)for(let o of t.transactions){if(o.isUserEvent("input.type"))this.composing=2;else if(this.composing==2&&o.selection)this.composing=3}}startUpdate(){this.debounceUpdate=-1;this.pendingStart=false;let{state:t}=this.view,e=t.field(Q);for(let s of e.active){if(s.isPending&&!this.running.some((t=>t.active.source==s.source)))this.startQuery(s)}if(this.running.length&&e.open&&e.open.disabled)this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(T).updateSyncTime)}startQuery(t){let{state:e}=this.view,s=g(e);let i=new h(e,s,t.explicit,this.view);let n=new st(t,i);this.running.push(n);Promise.resolve(t.source(i)).then((t=>{if(!n.context.aborted){n.done=t||null;this.scheduleAccept()}}),(t=>{this.view.dispatch({effects:S.of(null)});(0,o.logException)(this.view.state,t)}))}scheduleAccept(){if(this.running.every((t=>t.done!==undefined)))this.accept();else if(this.debounceAccept<0)this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(T).updateSyncTime)}accept(){var t;if(this.debounceAccept>-1)clearTimeout(this.debounceAccept);this.debounceAccept=-1;let e=[];let s=this.view.state.facet(T),i=this.view.state.field(Q);for(let n=0;nt.source==o.active.source));if(r&&r.isPending){if(o.done==null){let t=new q(o.active.source,0);for(let e of o.updates)t=t.update(e,s);if(!t.isPending)e.push(t)}else{this.startQuery(r)}}}if(e.length||i.open&&i.open.disabled)this.view.dispatch({effects:_.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Q,false);if(e&&e.tooltip&&this.view.state.facet(T).closeOnBlur){let s=e.open&&(0,o.getTooltip)(this.view,e.open.tooltip);if(!s||!s.dom.contains(t.relatedTarget))setTimeout((()=>this.view.dispatch({effects:S.of(null)})),10)}},compositionstart(){this.composing=1},compositionend(){if(this.composing==3){setTimeout((()=>this.view.dispatch({effects:y.of(false)})),20)}this.composing=0}}});const rt=typeof navigator=="object"&&/Win/.test(navigator.platform);const lt=i.Prec.highest(o.EditorView.domEventHandlers({keydown(t,e){let s=e.state.field(Q,false);if(!s||!s.open||s.open.disabled||s.open.selected<0||t.key.length>1||t.ctrlKey&&!(rt&&t.altKey)||t.metaKey)return false;let i=s.open.options[s.open.selected];let n=s.active.find((t=>t.source==i.source));let o=i.completion.commitCharacters||n.result.commitCharacters;if(o&&o.indexOf(t.key)>-1)X(e,i);return false}}));const at=o.EditorView.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:`${400}px`,boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:`${30}px`},".cm-completionInfo.cm-completionInfo-right-narrow":{left:`${30}px`},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class ht{constructor(t,e,s,i){this.field=t;this.line=e;this.from=s;this.to=i}}class ct{constructor(t,e,s){this.field=t;this.from=e;this.to=s}map(t){let e=t.mapPos(this.from,-1,i.MapMode.TrackDel);let s=t.mapPos(this.to,1,i.MapMode.TrackDel);return e==null||s==null?null:new ct(this.field,e,s)}}class ft{constructor(t,e){this.lines=t;this.fieldPositions=e}instantiate(t,e){let s=[],i=[e];let n=t.doc.lineAt(e),o=/^\s*/.exec(n.text)[0];for(let a of this.lines){if(s.length){let s=o,n=/^\t*/.exec(a)[0].length;for(let e=0;enew ct(t.field,i[t.line]+t.from,i[t.line]+t.to)));return{text:s,ranges:r}}static parse(t){let e=[];let s=[],i=[],n;for(let o of t.split(/\r\n?|\n/)){while(n=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(o)){let t=n[1]?+n[1]:null,r=n[2]||n[3]||"",l=-1;let a=r.replace(/\\[{}]/g,(t=>t[1]));for(let s=0;s=l)t.field++}i.push(new ht(l,s.length,n.index,n.index+a.length));o=o.slice(0,n.index)+r+o.slice(n.index+n[0].length)}o=o.replace(/\\([{}])/g,((t,e,n)=>{for(let o of i)if(o.line==s.length&&o.from>n){o.from--;o.to--}return e}));s.push(o)}return new ft(s,i)}}let ut=o.Decoration.widget({widget:new class extends o.WidgetType{toDOM(){let t=document.createElement("span");t.className="cm-snippetFieldPosition";return t}ignoreEvent(){return false}}});let pt=o.Decoration.mark({class:"cm-snippetField"});class dt{constructor(t,e){this.ranges=t;this.active=e;this.deco=o.Decoration.set(t.map((t=>(t.from==t.to?ut:pt).range(t.from,t.to))))}map(t){let e=[];for(let s of this.ranges){let i=s.map(t);if(!i)return null;e.push(i)}return new dt(e,this.active)}selectionInsideField(t){return t.ranges.every((t=>this.ranges.some((e=>e.field==this.active&&e.from<=t.from&&e.to>=t.to))))}}const mt=i.StateEffect.define({map(t,e){return t&&t.map(e)}});const gt=i.StateEffect.define();const kt=i.StateField.define({create(){return null},update(t,e){for(let s of e.effects){if(s.is(mt))return s.value;if(s.is(gt)&&t)return new dt(t.ranges,s.value)}if(t&&e.docChanged)t=t.map(e.changes);if(t&&e.selection&&!t.selectionInsideField(e.selection))t=null;return t},provide:t=>o.EditorView.decorations.from(t,(t=>t?t.deco:o.Decoration.none))});function bt(t,e){return i.EditorSelection.create(t.filter((t=>t.field==e)).map((t=>i.EditorSelection.range(t.from,t.to))))}function xt(t){let e=ft.parse(t);return(t,s,n,o)=>{let{text:r,ranges:l}=e.instantiate(t.state,n);let{main:a}=t.state.selection;let h={changes:{from:n,to:o==a.from?a.to:o,insert:i.Text.of(r)},scrollIntoView:true,annotations:s?[b.of(s),i.Transaction.userEvent.of("input.complete")]:undefined};if(l.length)h.selection=bt(l,0);if(l.some((t=>t.field>0))){let e=new dt(l,0);let s=h.effects=[mt.of(e)];if(t.state.field(kt,false)===undefined)s.push(i.StateEffect.appendConfig.of([kt,It,Dt,at]))}t.dispatch(t.state.update(h))}}function vt(t){return({state:e,dispatch:s})=>{let i=e.field(kt,false);if(!i||t<0&&i.active==0)return false;let n=i.active+t,o=t>0&&!i.ranges.some((e=>e.field==n+t));s(e.update({selection:bt(i.ranges,n),effects:mt.of(o?null:new dt(i.ranges,n)),scrollIntoView:true}));return true}}const wt=({state:t,dispatch:e})=>{let s=t.field(kt,false);if(!s)return false;e(t.update({effects:mt.of(null)}));return true};const yt=vt(1);const St=vt(-1);function Ct(t){let e=t.field(kt,false);return!!(e&&e.ranges.some((t=>t.field==e.active+1)))}function Pt(t){let e=t.field(kt,false);return!!(e&&e.active>0)}const Tt=[{key:"Tab",run:yt,shift:St},{key:"Escape",run:wt}];const At=i.Facet.define({combine(t){return t.length?t[0]:Tt}});const It=i.Prec.highest(o.keymap.compute([At],(t=>t.facet(At))));function Ot(t,e){return Object.assign(Object.assign({},e),{apply:xt(t)})}const Dt=o.EditorView.domEventHandlers({mousedown(t,e){let s=e.state.field(kt,false),i;if(!s||(i=e.posAtCoords({x:t.clientX,y:t.clientY}))==null)return false;let n=s.ranges.find((t=>t.from<=i&&t.to>=i));if(!n||n.field==s.active)return false;e.dispatch({selection:bt(s.ranges,n.field),effects:mt.of(s.ranges.some((t=>t.field>n.field))?new dt(s.ranges,n.field):null),scrollIntoView:true});return true}});function Rt(t){let e=t.replace(/[\]\-\\]/g,"\\$&");try{return new RegExp(`[\\p{Alphabetic}\\p{Number}_${e}]+`,"ug")}catch(s){return new RegExp(`[w${e}]`,"g")}}function Et(t,e){return new RegExp(e(t.source),t.unicode?"u":"")}const Nt=null&&Object.create(null);function Lt(t){return Nt[t]||(Nt[t]=new WeakMap)}function Bt(t,e,s,i,n){for(let o=t.iterLines(),r=0;!o.next().done;){let{value:t}=o,l;e.lastIndex=0;while(l=e.exec(t)){if(!i[l[0]]&&r+l.index!=n){s.push({type:"text",label:l[0]});i[l[0]]=true;if(s.length>=2e3)return}}r+=t.length+1}}function Mt(t,e,s,i,n){let o=t.length>=1e3;let r=o&&e.get(t);if(r)return r;let l=[],a=Object.create(null);if(t.children){let o=0;for(let r of t.children){if(r.length>=1e3){for(let t of Mt(r,e,s,i-o,n-o)){if(!a[t.label]){a[t.label]=true;l.push(t)}}}else{Bt(r,s,l,a,n-o)}o+=r.length+1}}else{Bt(t,s,l,a,n)}if(o&&l.length<2e3)e.set(t,l);return l}const zt=t=>{let e=t.state.languageDataAt("wordChars",t.pos).join("");let s=Rt(e);let i=t.matchBefore(Et(s,(t=>t+"$")));if(!i&&!t.explicit)return null;let n=i?i.from:t.pos;let o=Mt(t.state.doc,Lt(e),s,5e4,n);return{from:n,options:o,validFor:Et(s,(t=>"^"+t))}};const Ft={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]};const $t=i.StateEffect.define({map(t,e){let s=e.mapPos(t,-1,i.MapMode.TrackAfter);return s==null?undefined:s}});const jt=new class extends i.RangeValue{};jt.startSide=1;jt.endSide=-1;const Ut=i.StateField.define({create(){return i.RangeSet.empty},update(t,e){t=t.map(e.changes);if(e.selection){let s=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:t=>t>=s.from&&t<=s.to})}for(let s of e.effects)if(s.is($t))t=t.update({add:[jt.range(s.value,s.value+1)]});return t}});function Wt(){return[_t,Ut]}const Vt="()[]{}<>«»»«[]{}";function qt(t){for(let e=0;e{if((Gt?t.composing:t.compositionStarted)||t.state.readOnly)return false;let o=t.state.selection.main;if(n.length>2||n.length==2&&(0,i.codePointSize)((0,i.codePointAt)(n,0))==1||e!=o.from||s!=o.to)return false;let r=Xt(t.state,n);if(!r)return false;t.dispatch(r);return true}));const Kt=({state:t,dispatch:e})=>{if(t.readOnly)return false;let s=Ht(t,t.selection.main.head);let n=s.brackets||Ft.brackets;let o=null,r=t.changeByRange((e=>{if(e.empty){let s=Zt(t.doc,e.head);for(let o of n){if(o==s&&Jt(t.doc,e.head)==qt((0,i.codePointAt)(o,0)))return{changes:{from:e.head-o.length,to:e.head+o.length},range:i.EditorSelection.cursor(e.head-o.length)}}}return{range:o=e}}));if(!o)e(t.update(r,{scrollIntoView:true,userEvent:"delete.backward"}));return!o};const Qt=[{key:"Backspace",run:Kt}];function Xt(t,e){let s=Ht(t,t.selection.main.head);let n=s.brackets||Ft.brackets;for(let o of n){let r=qt((0,i.codePointAt)(o,0));if(e==o)return r==o?se(t,o,n.indexOf(o+o+o)>-1,s):te(t,o,r,s.before||Ft.before);if(e==r&&Yt(t,t.selection.main.from))return ee(t,o,r)}return null}function Yt(t,e){let s=false;t.field(Ut).between(0,t.doc.length,(t=>{if(t==e)s=true}));return s}function Jt(t,e){let s=t.sliceString(e,e+2);return s.slice(0,(0,i.codePointSize)((0,i.codePointAt)(s,0)))}function Zt(t,e){let s=t.sliceString(e-2,e);return(0,i.codePointSize)((0,i.codePointAt)(s,0))==s.length?s:s.slice(1)}function te(t,e,s,n){let o=null,r=t.changeByRange((r=>{if(!r.empty)return{changes:[{insert:e,from:r.from},{insert:s,from:r.to}],effects:$t.of(r.to+e.length),range:i.EditorSelection.range(r.anchor+e.length,r.head+e.length)};let l=Jt(t.doc,r.head);if(!l||/\s/.test(l)||n.indexOf(l)>-1)return{changes:{insert:e+s,from:r.head},effects:$t.of(r.head+e.length),range:i.EditorSelection.cursor(r.head+e.length)};return{range:o=r}}));return o?null:t.update(r,{scrollIntoView:true,userEvent:"input.type"})}function ee(t,e,s){let n=null,o=t.changeByRange((e=>{if(e.empty&&Jt(t.doc,e.head)==s)return{changes:{from:e.head,to:e.head+s.length,insert:s},range:i.EditorSelection.cursor(e.head+s.length)};return n={range:e}}));return n?null:t.update(o,{scrollIntoView:true,userEvent:"input.type"})}function se(t,e,s,n){let o=n.stringPrefixes||Ft.stringPrefixes;let r=null,l=t.changeByRange((n=>{if(!n.empty)return{changes:[{insert:e,from:n.from},{insert:e,from:n.to}],effects:$t.of(n.to+e.length),range:i.EditorSelection.range(n.anchor+e.length,n.head+e.length)};let l=n.head,a=Jt(t.doc,l),h;if(a==e){if(ie(t,l)){return{changes:{insert:e+e,from:l},effects:$t.of(l+e.length),range:i.EditorSelection.cursor(l+e.length)}}else if(Yt(t,l)){let n=s&&t.sliceDoc(l,l+e.length*3)==e+e+e;let o=n?e+e+e:e;return{changes:{from:l,to:l+o.length,insert:o},range:i.EditorSelection.cursor(l+o.length)}}}else if(s&&t.sliceDoc(l-2*e.length,l)==e+e&&(h=oe(t,l-2*e.length,o))>-1&&ie(t,h)){return{changes:{insert:e+e+e+e,from:l},effects:$t.of(l+e.length),range:i.EditorSelection.cursor(l+e.length)}}else if(t.charCategorizer(l)(a)!=i.CharCategory.Word){if(oe(t,l,o)>-1&&!ne(t,l,e,o))return{changes:{insert:e+e,from:l},effects:$t.of(l+e.length),range:i.EditorSelection.cursor(l+e.length)}}return{range:r=n}}));return r?null:t.update(l,{scrollIntoView:true,userEvent:"input.type"})}function ie(t,e){let s=(0,l.syntaxTree)(t).resolveInner(e+1);return s.parent&&s.from==e}function ne(t,e,s,i){let n=(0,l.syntaxTree)(t).resolveInner(e,-1);let o=i.reduce(((t,e)=>Math.max(t,e.length)),0);for(let r=0;r<5;r++){let r=t.sliceDoc(n.from,Math.min(n.to,n.from+s.length+o));let l=r.indexOf(s);if(!l||l>-1&&i.indexOf(r.slice(0,l))>-1){let e=n.firstChild;while(e&&e.from==n.from&&e.to-e.from>s.length+l){if(t.sliceDoc(e.to-s.length,e.to)==s)return false;e=e.firstChild}return true}let a=n.to==e&&n.parent;if(!a)break;n=a}return false}function oe(t,e,s){let n=t.charCategorizer(e);if(n(t.sliceDoc(e-1,e))!=i.CharCategory.Word)return e;for(let o of s){let s=e-o.length;if(t.sliceDoc(s,e)==o&&n(t.sliceDoc(s-1,s))!=i.CharCategory.Word)return s}return-1}function re(t={}){return[lt,Q,T.of(t),ot,ae,at]}const le=[{key:"Ctrl-Space",run:tt},{mac:"Alt-`",run:tt},{key:"Escape",run:et},{key:"ArrowDown",run:J(true)},{key:"ArrowUp",run:J(false)},{key:"PageDown",run:J(true,"page")},{key:"PageUp",run:J(false,"page")},{key:"Enter",run:Z}];const ae=i.Prec.highest(o.keymap.computeN([T],(t=>t.facet(T).defaultKeymap?[le]:[])));function he(t){let e=t.field(Q,false);return e&&e.active.some((t=>t.isPending))?"pending":e&&e.active.some((t=>t.state!=0))?"active":null}const ce=new WeakMap;function fe(t){var e;let s=(e=t.field(Q,false))===null||e===void 0?void 0:e.open;if(!s||s.disabled)return[];let i=ce.get(s.options);if(!i)ce.set(s.options,i=s.options.map((t=>t.completion)));return i}function ue(t){var e;let s=(e=t.field(Q,false))===null||e===void 0?void 0:e.open;return s&&!s.disabled&&s.selected>=0?s.options[s.selected].completion:null}function pe(t){var e;let s=(e=t.field(Q,false))===null||e===void 0?void 0:e.open;return s&&!s.disabled&&s.selected>=0?s.selected:null}function de(t){return K.of(t)}},27421:(t,e,s)=>{"use strict";s.d(e,{Aj:()=>O,Lu:()=>g,U1:()=>D,uC:()=>m});var i=s(66575);var n=s.n(i);var o=s(65606);class r{constructor(t,e,s,i,n,o,r,l,a,h=0,c){this.p=t;this.stack=e;this.state=s;this.reducePos=i;this.pos=n;this.score=o;this.buffer=r;this.bufferBase=l;this.curContext=a;this.lookAhead=h;this.parent=c}toString(){return`[${this.stack.filter(((t,e)=>e%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,s=0){let i=t.parser.context;return new r(t,[],e,s,s,0,[],0,i?new l(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length);this.state=t}reduce(t){var e;let s=t>>19,i=t&65535;let{parser:n}=this.p;let o=n.dynamicPrecedence(i);if(o)this.score+=o;if(s==0){this.pushState(n.getGoto(this.state,i,true),this.reducePos);if(i=2e3&&!((e=this.p.parser.nodeSet.types[i])===null||e===void 0?void 0:e.isAnonymous)){if(l==this.p.lastBigReductionStart){this.p.bigReductionCount++;this.p.lastBigReductionSize=a}else if(this.p.lastBigReductionSizer)this.stack.pop();this.reduceContext(i,l)}storeNode(t,e,s,i=4,n=false){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&t.buffer[i-4]==0&&t.buffer[i-1]>-1){if(e==s)return;if(t.buffer[i-2]>=e){t.buffer[i-2]=s;return}}}if(!n||this.pos==s){this.buffer.push(t,e,s,i)}else{let n=this.buffer.length;if(n>0&&this.buffer[n-4]!=0)while(n>0&&this.buffer[n-2]>s){this.buffer[n]=this.buffer[n-4];this.buffer[n+1]=this.buffer[n-3];this.buffer[n+2]=this.buffer[n-2];this.buffer[n+3]=this.buffer[n-1];n-=4;if(i>4)i-=4}this.buffer[n]=t;this.buffer[n+1]=e;this.buffer[n+2]=s;this.buffer[n+3]=i}}shift(t,e,s,i){if(t&131072){this.pushState(t&65535,this.pos)}else if((t&262144)==0){let n=t,{parser:o}=this.p;if(i>this.pos||e<=o.maxNode){this.pos=i;if(!o.stateFlag(n,1))this.reducePos=i}this.pushState(n,s);this.shiftContext(e,s);if(e<=o.maxNode)this.buffer.push(e,s,i,4)}else{this.pos=i;this.shiftContext(e,s);if(e<=this.p.parser.maxNode)this.buffer.push(e,s,i,4)}}apply(t,e,s,i){if(t&65536)this.reduce(t);else this.shift(t,e,s,i)}useNode(t,e){let s=this.p.reused.length-1;if(s<0||this.p.reused[s]!=t){this.p.reused.push(t);s++}let i=this.pos;this.reducePos=this.pos=i+t.length;this.pushState(e,i);this.buffer.push(s,i,this.reducePos,-1);if(this.curContext)this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this;let e=t.buffer.length;while(e>0&&t.buffer[e-2]>t.reducePos)e-=4;let s=t.buffer.slice(e),i=t.bufferBase+e;while(t&&i==t.bufferBase)t=t.parent;return new r(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,s,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let s=t<=this.p.parser.maxNode;if(s)this.storeNode(t,this.pos,e,4);this.storeNode(0,this.pos,e,s?8:4);this.pos=this.reducePos=e;this.score-=190}canShift(t){for(let e=new a(this);;){let s=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if(s==0)return false;if((s&65536)==0)return true;e.reduce(s)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>4<<1||this.stack.length>=120){let s=[];for(let i=0,n;ie&1&&t==i)))s.push(e[t],i)}e=s}let s=[];for(let i=0;i>19,i=e&65535;let n=this.stack.length-s*3;if(n<0||t.getGoto(this.stack[n],i,false)<0){let t=this.findForcedReduction();if(t==null)return false;e=t}this.storeNode(0,this.pos,this.pos,4,true);this.score-=100}this.reducePos=this.pos;this.reduce(e);return true}findForcedReduction(){let{parser:t}=this.p,e=[];let s=(i,n)=>{if(e.includes(i))return;e.push(i);return t.allActions(i,(e=>{if(e&(262144|131072));else if(e&65536){let s=(e>>19)-n;if(s>1){let i=e&65535,n=this.stack.length-s*3;if(n>=0&&t.getGoto(this.stack[n],i,false)>=0)return s<<19|65536|i}}else{let t=s(e,n+1);if(t!=null)return t}}))};return s(this.state,0)}forceAll(){while(!this.p.parser.stateFlag(this.state,2)){if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,true);break}}return this}get deadEnd(){if(this.stack.length!=3)return false;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,true);this.state=this.stack[0];this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return false;for(let e=0;ethis.lookAhead){this.emitLookAhead();this.lookAhead=t}}close(){if(this.curContext&&this.curContext.tracker.strict)this.emitContext();if(this.lookAhead>0)this.emitLookAhead()}}class l{constructor(t,e){this.tracker=t;this.context=e;this.hash=t.strict?t.hash(e):0}}class a{constructor(t){this.start=t;this.state=t.state;this.stack=t.stack;this.base=this.stack.length}reduce(t){let e=t&65535,s=t>>19;if(s==0){if(this.stack==this.start.stack)this.stack=this.stack.slice();this.stack.push(this.state,0,0);this.base+=3}else{this.base-=(s-1)*3}let i=this.start.p.parser.getGoto(this.stack[this.base-3],e,true);this.state=i}}class h{constructor(t,e,s){this.stack=t;this.pos=e;this.index=s;this.buffer=t.buffer;if(this.index==0)this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new h(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;if(t!=null){this.index=this.stack.bufferBase-t.bufferBase;this.stack=t;this.buffer=t.buffer}}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4;this.pos-=4;if(this.index==0)this.maybeNext()}fork(){return new h(this.stack,this.pos,this.index)}}function c(t,e=Uint16Array){if(typeof t!="string")return t;let s=null;for(let i=0,n=0;i=92)e--;if(e>=34)e--;let n=e-32;if(n>=46){n-=46;s=true}o+=n;if(s)break;o*=46}if(s)s[n++]=o;else s=new e(o)}return s}class f{constructor(){this.start=-1;this.value=-1;this.end=-1;this.extended=-1;this.lookAhead=0;this.mask=0;this.context=0}}const u=new f;class p{constructor(t,e){this.input=t;this.ranges=e;this.chunk="";this.chunkOff=0;this.chunk2="";this.chunk2Pos=0;this.next=-1;this.token=u;this.rangeIndex=0;this.pos=this.chunkPos=e[0].from;this.range=e[0];this.end=e[e.length-1].to;this.readNext()}resolveOffset(t,e){let s=this.range,i=this.rangeIndex;let n=this.pos+t;while(ns.to:n>=s.to){if(i==this.ranges.length-1)return null;let t=this.ranges[++i];n+=t.from-s.to;s=t}return n}clipPos(t){if(t>=this.range.from&&tt)return Math.max(t,e.from);return this.end}peek(t){let e=this.chunkOff+t,s,i;if(e>=0&&e=this.chunk2Pos&&se.to)this.chunk2=this.chunk2.slice(0,e.to-s);i=this.chunk2.charCodeAt(0)}}if(s>=this.token.lookAhead)this.token.lookAhead=s+1;return i}acceptToken(t,e=0){let s=e?this.resolveOffset(e,-1):this.pos;if(s==null||s=this.chunk2Pos&&this.posthis.range.to?t.slice(0,this.range.to-this.pos):t;this.chunkPos=this.pos;this.chunkOff=0}}readNext(){if(this.chunkOff>=this.chunk.length){this.getChunk();if(this.chunkOff==this.chunk.length)return this.next=-1}return this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){this.chunkOff+=t;while(this.pos+t>=this.range.to){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos;this.range=this.ranges[++this.rangeIndex];this.pos=this.range.from}this.pos+=t;if(this.pos>=this.token.lookAhead)this.token.lookAhead=this.pos+1;return this.readNext()}setDone(){this.pos=this.chunkPos=this.end;this.range=this.ranges[this.rangeIndex=this.ranges.length-1];this.chunk="";return this.next=-1}reset(t,e){if(e){this.token=e;e.start=t;e.lookAhead=t+1;e.value=e.extended=-1}else{this.token=u}if(this.pos!=t){this.pos=t;if(t==this.end){this.setDone();return this}while(t=this.range.to)this.range=this.ranges[++this.rangeIndex];if(t>=this.chunkPos&&t=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let s="";for(let i of this.ranges){if(i.from>=e)break;if(i.to>t)s+=this.input.read(Math.max(i.from,t),Math.min(i.to,e))}return s}}class d{constructor(t,e){this.data=t;this.id=e}token(t,e){let{parser:s}=e.p;k(this.data,t,e,this.id,s.data,s.tokenPrecTable)}}d.prototype.contextual=d.prototype.fallback=d.prototype.extend=false;class m{constructor(t,e,s){this.precTable=e;this.elseToken=s;this.data=typeof t=="string"?c(t):t}token(t,e){let s=t.pos,i=0;for(;;){let s=t.next<0,n=t.resolveOffset(1,1);k(this.data,t,e,0,this.data,this.precTable);if(t.token.value>-1)break;if(this.elseToken==null)return;if(!s)i++;if(n==null)break;t.reset(n,t.token)}if(i){t.reset(s,t.token);t.acceptToken(this.elseToken,i)}}}m.prototype.contextual=d.prototype.fallback=d.prototype.extend=false;class g{constructor(t,e={}){this.token=t;this.contextual=!!e.contextual;this.fallback=!!e.fallback;this.extend=!!e.extend}}function k(t,e,s,i,n,o){let r=0,l=1<0){let s=t[f];if(a.allows(s)&&(e.token.value==-1||e.token.value==s||x(s,e.token.value,n,o))){e.acceptToken(s);break}}let i=e.next,h=0,c=t[r+2];if(e.next<0&&c>h&&t[s+c*3-3]==65535){r=t[s+c*3-1];continue t}for(;h>1;let o=s+n+(n<<1);let l=t[o],a=t[o+1]||65536;if(i=a)h=n+1;else{r=t[o+2];e.advance();continue t}}break}}function b(t,e,s){for(let i=e,n;(n=t[i])!=65535;i++)if(n==s)return i-e;return-1}function x(t,e,s,i){let n=b(s,i,e);return n<0||b(s,i,t)e)&&!n.type.isError)return s<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(t.length,Math.max(n.from+1,e+25));if(s<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return s<0?0:t.length}}}class S{constructor(t,e){this.fragments=t;this.nodeSet=e;this.i=0;this.fragment=null;this.safeFrom=-1;this.safeTo=-1;this.trees=[];this.start=[];this.index=[];this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){this.safeFrom=t.openStart?y(t.tree,t.from+t.offset,1)-t.offset:t.from;this.safeTo=t.openEnd?y(t.tree,t.to+t.offset,-1)-t.offset:t.to;while(this.trees.length){this.trees.pop();this.start.pop();this.index.pop()}this.trees.push(t.tree);this.start.push(-t.offset);this.index.push(0);this.nextStart=this.safeFrom}else{this.nextStart=1e9}}nodeAt(t){if(tt){this.nextStart=r;return null}if(o instanceof i.Tree){if(r==t){if(r=Math.max(this.safeFrom,t)){this.trees.push(o);this.start.push(r);this.index.push(0)}}else{this.index[e]++;this.nextStart=r+o.length}}}}class C{constructor(t,e){this.stream=e;this.tokens=[];this.mainToken=null;this.actions=[];this.tokens=t.tokenizers.map((t=>new f))}getActions(t){let e=0;let s=null;let{parser:i}=t.p,{tokenizers:n}=i;let o=i.stateSlot(t.state,3);let r=t.curContext?t.curContext.hash:0;let l=0;for(let a=0;ah.end+25)l=Math.max(h.lookAhead,l);if(h.value!=0){let n=e;if(h.extended>-1)e=this.addActions(t,h.extended,h.end,e);e=this.addActions(t,h.value,h.end,e);if(!i.extend){s=h;if(e>n)break}}}while(this.actions.length>e)this.actions.pop();if(l)t.setLookAhead(l);if(!s&&t.pos==this.stream.end){s=new f;s.value=t.p.parser.eofTerm;s.start=s.end=t.pos;e=this.addActions(t,s.value,s.end,e)}this.mainToken=s;return this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let e=new f,{pos:s,p:i}=t;e.start=s;e.end=Math.min(s+1,i.stream.end);e.value=s==i.stream.end?i.parser.eofTerm:0;return e}updateCachedToken(t,e,s){let i=this.stream.clipPos(s.pos);e.token(this.stream.reset(i,t),s);if(t.value>-1){let{parser:e}=s.p;for(let i=0;i=0&&s.p.parser.dialect.allows(n>>1)){if((n&1)==0)t.value=n>>1;else t.extended=n>>1;break}}}else{t.value=0;t.end=this.stream.clipPos(i+1)}}putAction(t,e,s,i){for(let n=0;nt.bufferLength*4?new S(s,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,e=this.minStackPos;let s=this.stacks=[];let i,n;if(this.bigReductionCount>300&&t.length==1){let[e]=t;while(e.forceReduce()&&e.stack.length&&e.stack[e.stack.length-2]>=this.lastBigReductionStart){}this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;oe){s.push(r)}else if(this.advanceStack(r,s,t)){continue}else{if(!i){i=[];n=[]}i.push(r);let t=this.tokens.getMainToken(r);n.push(t.value,t.end)}break}}if(!s.length){let t=i&&E(i);if(t){if(v)console.log("Finish with "+this.stackID(t));return this.stackToTree(t)}if(this.parser.strict){if(v&&i)console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none"));throw new SyntaxError("No parse at "+e)}if(!this.recovering)this.recovering=5}if(this.recovering&&i){let t=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,n,s);if(t){if(v)console.log("Force-finish "+this.stackID(t));return this.stackToTree(t.forceAll())}}if(this.recovering){let t=this.recovering==1?1:this.recovering*3;if(s.length>t){s.sort(((t,e)=>e.score-t.score));while(s.length>t)s.pop()}if(s.some((t=>t.reducePos>e)))this.recovering--}else if(s.length>1){t:for(let t=0;t500&&n.buffer.length>500){if((e.score-n.score||e.buffer.length-n.buffer.length)>0){s.splice(i--,1)}else{s.splice(t--,1);continue t}}}}if(s.length>12)s.splice(12,s.length-12)}this.minStackPos=s[0].pos;for(let o=1;o ":"";if(this.stoppedAt!=null&&n>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let e=t.curContext&&t.curContext.tracker.strict,s=e?t.curContext.hash:0;for(let l=this.fragments.nodeAt(n);l;){let n=this.parser.nodeSet.types[l.type.id]==l.type?o.getGoto(t.state,l.type.id):-1;if(n>-1&&l.length&&(!e||(l.prop(i.NodeProp.contextHash)||0)==s)){t.useNode(l,n);if(v)console.log(r+this.stackID(t)+` (via reuse of ${o.getName(l.type.id)})`);return true}if(!(l instanceof i.Tree)||l.children.length==0||l.positions[0]>0)break;let a=l.children[0];if(a instanceof i.Tree&&l.positions[0]==0)l=a;else break}}let l=o.stateSlot(t.state,4);if(l>0){t.reduce(l);if(v)console.log(r+this.stackID(t)+` (via always-reduce ${o.getName(l&65535)})`);return true}if(t.stack.length>=8400){while(t.stack.length>6e3&&t.forceReduce()){}}let a=this.tokens.getActions(t);for(let i=0;in)e.push(u);else s.push(u)}return false}advanceFully(t,e){let s=t.pos;for(;;){if(!this.advanceStack(t,null,null))return false;if(t.pos>s){T(t,e);return true}}}runRecovery(t,e,s){let i=null,n=false;for(let o=0;o ":"";if(r.deadEnd){if(n)continue;n=true;r.restart();if(v)console.log(h+this.stackID(r)+" (restarted)");let t=this.advanceFully(r,s);if(t)continue}let c=r.split(),f=h;for(let t=0;c.forceReduce()&&t<10;t++){if(v)console.log(f+this.stackID(c)+" (via force-reduce)");let t=this.advanceFully(c,s);if(t)break;if(v)f=this.stackID(c)+" -> "}for(let t of r.recoverByInsert(l)){if(v)console.log(h+this.stackID(t)+" (via recover-insert)");this.advanceFully(t,s)}if(this.stream.end>r.pos){if(a==r.pos){a++;l=0}r.recoverByDelete(l,a);if(v)console.log(h+this.stackID(r)+` (via recover-delete ${this.parser.getName(l)})`);T(r,s)}else if(!i||i.scoret;class O{constructor(t){this.start=t.start;this.shift=t.shift||I;this.reduce=t.reduce||I;this.reuse=t.reuse||I;this.hash=t.hash||(()=>0);this.strict=t.strict!==false}}class D extends i.Parser{constructor(t){super();this.wrappers=[];if(t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (${14})`);let e=t.nodeNames.split(" ");this.minRepeatTerm=e.length;for(let i=0;it.topRules[e][1]));let n=[];for(let i=0;i=0){o(s,t,l[e++])}else{let i=l[e+-s];for(let n=-s;n>0;n--)o(l[e++],t,i);e++}}}this.nodeSet=new i.NodeSet(e.map(((e,o)=>i.NodeType.define({name:o>=this.minRepeatTerm?undefined:e,id:o,props:n[o],top:s.indexOf(o)>-1,error:o==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(o)>-1}))));if(t.propSources)this.nodeSet=this.nodeSet.extend(...t.propSources);this.strict=false;this.bufferLength=i.DefaultBufferLength;let r=c(t.tokenData);this.context=t.context;this.specializerSpecs=t.specialized||[];this.specialized=new Uint16Array(this.specializerSpecs.length);for(let i=0;itypeof t=="number"?new d(r,t):t));this.topRules=t.topRules;this.dialects=t.dialects||{};this.dynamicPrecedences=t.dynamicPrecedences||null;this.tokenPrecTable=t.tokenPrec;this.termNames=t.termNames||null;this.maxNode=this.nodeSet.types.length-1;this.dialect=this.parseDialect();this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,e,s){let i=new P(this,t,e,s);for(let n of this.wrappers)i=n(i,t,e,s);return i}getGoto(t,e,s=false){let i=this.goto;if(e>=i[0])return-1;for(let n=i[e+1];;){let e=i[n++],o=e&1;let r=i[n++];if(o&&s)return r;for(let s=n+(e>>1);n0}validAction(t,e){return!!this.allActions(t,(t=>t==e?true:null))}allActions(t,e){let s=this.stateSlot(t,4);let i=s?e(s):undefined;for(let n=this.stateSlot(t,1);i==null;n+=3){if(this.data[n]==65535){if(this.data[n+1]==1)n=R(this.data,n+2);else break}i=e(R(this.data,n+1))}return i}nextStates(t){let e=[];for(let s=this.stateSlot(t,1);;s+=3){if(this.data[s]==65535){if(this.data[s+1]==1)s=R(this.data,s+2);else break}if((this.data[s+2]&65536>>16)==0){let t=this.data[s+1];if(!e.some(((e,s)=>s&1&&e==t)))e.push(this.data[s],t)}}return e}configure(t){let e=Object.assign(Object.create(D.prototype),this);if(t.props)e.nodeSet=this.nodeSet.extend(...t.props);if(t.top){let s=this.topRules[t.top];if(!s)throw new RangeError(`Invalid top rule name ${t.top}`);e.top=s}if(t.tokenizers)e.tokenizers=this.tokenizers.map((e=>{let s=t.tokenizers.find((t=>t.from==e));return s?s.to:e}));if(t.specializers){e.specializers=this.specializers.slice();e.specializerSpecs=this.specializerSpecs.map(((s,i)=>{let n=t.specializers.find((t=>t.from==s.external));if(!n)return s;let o=Object.assign(Object.assign({},s),{external:n.to});e.specializers[i]=N(o);return o}))}if(t.contextTracker)e.context=t.contextTracker;if(t.dialect)e.dialect=this.parseDialect(t.dialect);if(t.strict!=null)e.strict=t.strict;if(t.wrap)e.wrappers=e.wrappers.concat(t.wrap);if(t.bufferLength!=null)e.bufferLength=t.bufferLength;return e}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return e==null?0:e[t]||0}parseDialect(t){let e=Object.keys(this.dialects),s=e.map((()=>false));if(t)for(let n of t.split(" ")){let t=e.indexOf(n);if(t>=0)s[t]=true}let i=null;for(let n=0;nt)&&s.p.parser.stateFlag(s.state,2)&&(!e||e.scoret.external(s,i)<<1|e}return t.get}},65606:t=>{var e=t.exports={};var s;var i;function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){s=setTimeout}else{s=n}}catch(t){s=n}try{if(typeof clearTimeout==="function"){i=clearTimeout}else{i=o}}catch(t){i=o}})();function r(t){if(s===setTimeout){return setTimeout(t,0)}if((s===n||!s)&&setTimeout){s=setTimeout;return setTimeout(t,0)}try{return s(t,0)}catch(e){try{return s.call(null,t,0)}catch(e){return s.call(this,t,0)}}}function l(t){if(i===clearTimeout){return clearTimeout(t)}if((i===o||!i)&&clearTimeout){i=clearTimeout;return clearTimeout(t)}try{return i(t)}catch(e){try{return i.call(null,t)}catch(e){return i.call(this,t)}}}var a=[];var h=false;var c;var f=-1;function u(){if(!h||!c){return}h=false;if(c.length){a=c.concat(a)}else{f=-1}if(a.length){p()}}function p(){if(h){return}var t=r(u);h=true;var e=a.length;while(e){c=a;a=[];while(++f1){for(var s=1;s{a.r(t);a.d(t,{asterisk:()=>o});var n=["exten","same","include","ignorepat","switch"],i=["#include","#exec"],r=["addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi","alarmreceiver","amd","answer","authenticate","background","backgrounddetect","bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent","changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge","congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge","dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility","datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa","dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy","externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif","goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete","ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus","jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme","meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete","minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode","mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish","originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce","parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones","privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten","readfile","receivefax","receivefax","receivefax","record","removequeuemember","resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun","saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax","sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags","setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel","slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground","speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound","speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor","stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec","trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate","vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring","waitforsilence","waitmusiconhold","waituntil","while","zapateller"];function s(e,t){var a="";var r=e.next();if(t.blockComment){if(r=="-"&&e.match("-;",true)){t.blockComment=false}else if(e.skipTo("--;")){e.next();e.next();e.next();t.blockComment=false}else{e.skipToEnd()}return"comment"}if(r==";"){if(e.match("--",true)){if(!e.match("-",false)){t.blockComment=true;return"comment"}}e.skipToEnd();return"comment"}if(r=="["){e.skipTo("]");e.eat("]");return"header"}if(r=='"'){e.skipTo('"');return"string"}if(r=="'"){e.skipTo("'");return"string.special"}if(r=="#"){e.eatWhile(/\w/);a=e.current();if(i.indexOf(a)!==-1){e.skipToEnd();return"strong"}}if(r=="$"){var s=e.peek();if(s=="{"){e.skipTo("}");e.eat("}");return"variableName.special"}}e.eatWhile(/\w/);a=e.current();if(n.indexOf(a)!==-1){t.extenStart=true;switch(a){case"same":t.extenSame=true;break;case"include":case"switch":case"ignorepat":t.extenInclude=true;break;default:break}return"atom"}}const o={name:"asterisk",startState:function(){return{blockComment:false,extenStart:false,extenSame:false,extenInclude:false,extenExten:false,extenPriority:false,extenApplication:false}},token:function(e,t){var a="";if(e.eatSpace())return null;if(t.extenStart){e.eatWhile(/[^\s]/);a=e.current();if(/^=>?$/.test(a)){t.extenExten=true;t.extenStart=false;return"strong"}else{t.extenStart=false;e.skipToEnd();return"error"}}else if(t.extenExten){t.extenExten=false;t.extenPriority=true;e.eatWhile(/[^,]/);if(t.extenInclude){e.skipToEnd();t.extenPriority=false;t.extenInclude=false}if(t.extenSame){t.extenPriority=false;t.extenSame=false;t.extenApplication=true}return"tag"}else if(t.extenPriority){t.extenPriority=false;t.extenApplication=true;e.next();if(t.extenSame)return null;e.eatWhile(/[^,]/);return"number"}else if(t.extenApplication){e.eatWhile(/,/);a=e.current();if(a===",")return null;e.eatWhile(/\w/);a=e.current().toLowerCase();t.extenApplication=false;if(r.indexOf(a)!==-1){return"def"}}else{return s(e,t)}return null},languageData:{commentTokens:{line:";",block:{open:";--",close:"--;"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1445.a0e099c27d073217031a.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1445.a0e099c27d073217031a.js deleted file mode 100644 index 7acc25e95b492bd98fc51bb34b5a693b533d45f6..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1445.a0e099c27d073217031a.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1445],{49746:()=>{},19977:()=>{},197:()=>{},21866:()=>{},52739:()=>{}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1449.7026e8748d2a77e15d5b.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1449.7026e8748d2a77e15d5b.js deleted file mode 100644 index bc96fc667e5b1301262bd037a543ea5bf4004790..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1449.7026e8748d2a77e15d5b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1449],{21449:(e,i,$)=>{$.r(i);$.d(i,{mirc:()=>m});function r(e){var i={},$=e.split(" ");for(var r=0;r<$.length;++r)i[$[r]]=true;return i}var t=r("$! $$ $& $? $+ $abook $abs $active $activecid "+"$activewid $address $addtok $agent $agentname $agentstat $agentver "+"$alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime "+"$asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind "+"$binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes "+"$chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color "+"$com $comcall $comchan $comerr $compact $compress $comval $cos $count "+"$cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight "+"$dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress "+"$deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll "+"$dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error "+"$eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir "+"$finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve "+"$fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt "+"$group $halted $hash $height $hfind $hget $highlight $hnick $hotline "+"$hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil "+"$inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect "+"$insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile "+"$isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive "+"$lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock "+"$lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer "+"$maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext "+"$menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode "+"$modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile "+"$nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly "+"$opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree "+"$pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo "+"$readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex "+"$reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline "+"$sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin "+"$site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname "+"$sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped "+"$syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp "+"$timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel "+"$ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver "+"$version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor");var a=r("abook ajinvite alias aline ame amsg anick aop auser autojoin avoice "+"away background ban bcopy beep bread break breplace bset btrunc bunset bwrite "+"channel clear clearall cline clipboard close cnick color comclose comopen "+"comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver "+"debug dec describe dialog did didtok disable disconnect dlevel dline dll "+"dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace "+"drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable "+"events exit fclose filter findtext finger firewall flash flist flood flush "+"flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove "+"gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd "+"halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear "+"ialmark identd if ignore iline inc invite iuser join kick linesep links list "+"load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice "+"notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice "+"qme qmsg query queryn quit raw reload remini remote remove rename renwin "+"reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini "+"say scid scon server set showmirc signam sline sockaccept sockclose socklist "+"socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite "+"sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize "+"toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho "+"var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum "+"isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower "+"isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs "+"elseif else goto menu nicklist status title icon size option text edit "+"button check radio box scroll list combo link tab item");var n=r("if elseif else and not or eq ne in ni for foreach while switch");var s=/[+\-*&%=<>!?^\/\|]/;function o(e,i,$){i.tokenize=$;return $(e,i)}function l(e,i){var $=i.beforeParams;i.beforeParams=false;var r=e.next();if(/[\[\]{}\(\),\.]/.test(r)){if(r=="("&&$)i.inParams=true;else if(r==")")i.inParams=false;return null}else if(/\d/.test(r)){e.eatWhile(/[\w\.]/);return"number"}else if(r=="\\"){e.eat("\\");e.eat(/./);return"number"}else if(r=="/"&&e.eat("*")){return o(e,i,c)}else if(r==";"&&e.match(/ *\( *\(/)){return o(e,i,d)}else if(r==";"&&!i.inParams){e.skipToEnd();return"comment"}else if(r=='"'){e.eat(/"/);return"keyword"}else if(r=="$"){e.eatWhile(/[$_a-z0-9A-Z\.:]/);if(t&&t.propertyIsEnumerable(e.current().toLowerCase())){return"keyword"}else{i.beforeParams=true;return"builtin"}}else if(r=="%"){e.eatWhile(/[^,\s()]/);i.beforeParams=true;return"string"}else if(s.test(r)){e.eatWhile(s);return"operator"}else{e.eatWhile(/[\w\$_{}]/);var l=e.current().toLowerCase();if(a&&a.propertyIsEnumerable(l))return"keyword";if(n&&n.propertyIsEnumerable(l)){i.beforeParams=true;return"keyword"}return null}}function c(e,i){var $=false,r;while(r=e.next()){if(r=="/"&&$){i.tokenize=l;break}$=r=="*"}return"comment"}function d(e,i){var $=0,r;while(r=e.next()){if(r==";"&&$==2){i.tokenize=l;break}if(r==")")$++;else if(r!=" ")$=0}return"meta"}const m={name:"mirc",startState:function(){return{tokenize:l,beforeParams:false,inParams:false}},token:function(e,i){if(e.eatSpace())return null;return i.tokenize(e,i)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1462.57e39f487257f25263d4.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1462.57e39f487257f25263d4.js deleted file mode 100644 index b8d66572298892c3b640102ac9b562a9de77f273..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1462.57e39f487257f25263d4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1462],{91462:(e,a,p)=>{p.d(a,{createPieServices:()=>t.f});var t=p(62409);var c=p(74888)}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1491.010c623dd546db976e95.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1491.010c623dd546db976e95.js deleted file mode 100644 index 9d6fec034e0b98e3e27e985c54a399c9934e3f3e..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1491.010c623dd546db976e95.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1491],{21491:(e,t,i)=>{i.r(t);i.d(t,{AsyncCellRenderer:()=>k,BasicKeyHandler:()=>y,BasicMouseHandler:()=>b,BasicSelectionModel:()=>O,BooleanCellEditor:()=>V,CellEditor:()=>D,CellEditorController:()=>K,CellGroup:()=>S,CellRenderer:()=>x,DataGrid:()=>ee,DataModel:()=>q,DateCellEditor:()=>X,DynamicOptionCellEditor:()=>Y,GraphicsContext:()=>$,HyperlinkRenderer:()=>M,ImageRenderer:()=>ne,InputCellEditor:()=>G,IntegerCellEditor:()=>P,IntegerInputValidator:()=>T,JSONModel:()=>ie,MutableDataModel:()=>j,NumberCellEditor:()=>A,NumberInputValidator:()=>B,OptionCellEditor:()=>N,PassInputValidator:()=>L,RendererMap:()=>J,SectionList:()=>Z,SelectionModel:()=>R,TextCellEditor:()=>I,TextInputValidator:()=>W,TextRenderer:()=>v,resolveOption:()=>F});var s=i(76326);var o=i.n(s);var r=i(77162);var n=i.n(r);var l=i(10970);var a=i.n(l);var h=i(34236);var c=i.n(h);var d=i(2336);var u=i.n(d);var f=i(1143);var _=i.n(f);var m=i(42856);var g=i.n(m);var p=i(5592);var w=i.n(p);class y{constructor(){this._disposed=false}get isDisposed(){return this._disposed}dispose(){this._disposed=true}onKeyDown(e,t){if(e.editable&&e.selectionModel.cursorRow!==-1&&e.selectionModel.cursorColumn!==-1){const i=String.fromCharCode(t.keyCode);if(/[a-zA-Z0-9-_ ]/.test(i)){const i=e.selectionModel.cursorRow;const s=e.selectionModel.cursorColumn;const o={grid:e,row:i,column:s};e.editorController.edit(o);if((0,r.getKeyboardLayout)().keyForKeydownEvent(t)==="Space"){t.stopPropagation();t.preventDefault()}return}}switch((0,r.getKeyboardLayout)().keyForKeydownEvent(t)){case"ArrowLeft":this.onArrowLeft(e,t);break;case"ArrowRight":this.onArrowRight(e,t);break;case"ArrowUp":this.onArrowUp(e,t);break;case"ArrowDown":this.onArrowDown(e,t);break;case"PageUp":this.onPageUp(e,t);break;case"PageDown":this.onPageDown(e,t);break;case"Escape":this.onEscape(e,t);break;case"Delete":this.onDelete(e,t);break;case"C":this.onKeyC(e,t);break;case"Enter":if(e.selectionModel){e.moveCursor(t.shiftKey?"up":"down");e.scrollToCursor()}break;case"Tab":if(e.selectionModel){e.moveCursor(t.shiftKey?"left":"right");e.scrollToCursor();t.stopPropagation();t.preventDefault()}break}}onArrowLeft(e,t){t.preventDefault();t.stopPropagation();let i=e.selectionModel;let o=t.shiftKey;let r=s.Platform.accelKey(t);if(!i&&r){e.scrollTo(0,e.scrollY);return}if(!i){e.scrollByStep("left");return}let n=i.selectionMode;if(n==="row"&&r){e.scrollTo(0,e.scrollY);return}if(n==="row"){e.scrollByStep("left");return}let l=i.cursorRow;let a=i.cursorColumn;let h=i.currentSelection();let c;let d;let u;let f;let _;let m;let g;if(r&&o){c=h?h.r1:0;d=h?h.r2:0;u=h?h.c1:0;f=0;_=l;m=a;g="current"}else if(o){c=h?h.r1:0;d=h?h.r2:0;u=h?h.c1:0;f=h?h.c2-1:0;_=l;m=a;g="current"}else if(r){c=l;d=l;u=0;f=0;_=c;m=u;g="all"}else{c=l;d=l;u=a-1;f=a-1;_=c;m=u;g="all"}i.select({r1:c,c1:u,r2:d,c2:f,cursorRow:_,cursorColumn:m,clear:g});h=i.currentSelection();if(!h){return}if(o||n==="column"){e.scrollToColumn(h.c2)}else{e.scrollToCursor()}}onArrowRight(e,t){t.preventDefault();t.stopPropagation();let i=e.selectionModel;let o=t.shiftKey;let r=s.Platform.accelKey(t);if(!i&&r){e.scrollTo(e.maxScrollX,e.scrollY);return}if(!i){e.scrollByStep("right");return}let n=i.selectionMode;if(n==="row"&&r){e.scrollTo(e.maxScrollX,e.scrollY);return}if(n==="row"){e.scrollByStep("right");return}let l=i.cursorRow;let a=i.cursorColumn;let h=i.currentSelection();let c;let d;let u;let f;let _;let m;let g;if(r&&o){c=h?h.r1:0;d=h?h.r2:0;u=h?h.c1:0;f=Infinity;_=l;m=a;g="current"}else if(o){c=h?h.r1:0;d=h?h.r2:0;u=h?h.c1:0;f=h?h.c2+1:0;_=l;m=a;g="current"}else if(r){c=l;d=l;u=Infinity;f=Infinity;_=c;m=u;g="all"}else{c=l;d=l;u=a+1;f=a+1;_=c;m=u;g="all"}i.select({r1:c,c1:u,r2:d,c2:f,cursorRow:_,cursorColumn:m,clear:g});h=i.currentSelection();if(!h){return}if(o||n==="column"){e.scrollToColumn(h.c2)}else{e.scrollToCursor()}}onArrowUp(e,t){t.preventDefault();t.stopPropagation();let i=e.selectionModel;let o=t.shiftKey;let r=s.Platform.accelKey(t);if(!i&&r){e.scrollTo(e.scrollX,0);return}if(!i){e.scrollByStep("up");return}let n=i.selectionMode;if(n==="column"&&r){e.scrollTo(e.scrollX,0);return}if(n==="column"){e.scrollByStep("up");return}let l=i.cursorRow;let a=i.cursorColumn;let h=i.currentSelection();let c;let d;let u;let f;let _;let m;let g;if(r&&o){c=h?h.r1:0;d=0;u=h?h.c1:0;f=h?h.c2:0;_=l;m=a;g="current"}else if(o){c=h?h.r1:0;d=h?h.r2-1:0;u=h?h.c1:0;f=h?h.c2:0;_=l;m=a;g="current"}else if(r){c=0;d=0;u=a;f=a;_=c;m=u;g="all"}else{c=l-1;d=l-1;u=a;f=a;_=c;m=u;g="all"}i.select({r1:c,c1:u,r2:d,c2:f,cursorRow:_,cursorColumn:m,clear:g});h=i.currentSelection();if(!h){return}if(o||n==="row"){e.scrollToRow(h.r2)}else{e.scrollToCursor()}}onArrowDown(e,t){t.preventDefault();t.stopPropagation();let i=e.selectionModel;let o=t.shiftKey;let r=s.Platform.accelKey(t);if(!i&&r){e.scrollTo(e.scrollX,e.maxScrollY);return}if(!i){e.scrollByStep("down");return}let n=i.selectionMode;if(n==="column"&&r){e.scrollTo(e.scrollX,e.maxScrollY);return}if(n==="column"){e.scrollByStep("down");return}let l=i.cursorRow;let a=i.cursorColumn;let h=i.currentSelection();let c;let d;let u;let f;let _;let m;let g;if(r&&o){c=h?h.r1:0;d=Infinity;u=h?h.c1:0;f=h?h.c2:0;_=l;m=a;g="current"}else if(o){c=h?h.r1:0;d=h?h.r2+1:0;u=h?h.c1:0;f=h?h.c2:0;_=l;m=a;g="current"}else if(r){c=Infinity;d=Infinity;u=a;f=a;_=c;m=u;g="all"}else{c=l+1;d=l+1;u=a;f=a;_=c;m=u;g="all"}i.select({r1:c,c1:u,r2:d,c2:f,cursorRow:_,cursorColumn:m,clear:g});h=i.currentSelection();if(!h){return}if(o||n==="row"){e.scrollToRow(h.r2)}else{e.scrollToCursor()}}onPageUp(e,t){if(s.Platform.accelKey(t)){return}t.preventDefault();t.stopPropagation();let i=e.selectionModel;if(!i||i.selectionMode==="column"){e.scrollByPage("up");return}let o=Math.floor(e.pageHeight/e.defaultSizes.rowHeight);let r=i.cursorRow;let n=i.cursorColumn;let l=i.currentSelection();let a;let h;let c;let d;let u;let f;let _;if(t.shiftKey){a=l?l.r1:0;h=l?l.r2-o:0;c=l?l.c1:0;d=l?l.c2:0;u=r;f=n;_="current"}else{a=l?l.r1-o:0;h=a;c=n;d=n;u=a;f=n;_="all"}i.select({r1:a,c1:c,r2:h,c2:d,cursorRow:u,cursorColumn:f,clear:_});l=i.currentSelection();if(!l){return}e.scrollToRow(l.r2)}onPageDown(e,t){if(s.Platform.accelKey(t)){return}t.preventDefault();t.stopPropagation();let i=e.selectionModel;if(!i||i.selectionMode==="column"){e.scrollByPage("down");return}let o=Math.floor(e.pageHeight/e.defaultSizes.rowHeight);let r=i.cursorRow;let n=i.cursorColumn;let l=i.currentSelection();let a;let h;let c;let d;let u;let f;let _;if(t.shiftKey){a=l?l.r1:0;h=l?l.r2+o:0;c=l?l.c1:0;d=l?l.c2:0;u=r;f=n;_="current"}else{a=l?l.r1+o:0;h=a;c=n;d=n;u=a;f=n;_="all"}i.select({r1:a,c1:c,r2:h,c2:d,cursorRow:u,cursorColumn:f,clear:_});l=i.currentSelection();if(!l){return}e.scrollToRow(l.r2)}onEscape(e,t){if(e.selectionModel){e.selectionModel.clear()}}onDelete(e,t){if(e.editable&&!e.selectionModel.isEmpty){const t=e.dataModel;let i=t.rowCount("body")-1;let s=t.columnCount("body")-1;for(let o of e.selectionModel.selections()){let e=Math.max(0,Math.min(o.r1,i));let r=Math.max(0,Math.min(o.c1,s));let n=Math.max(0,Math.min(o.r2,i));let l=Math.max(0,Math.min(o.c2,s));for(let i=e;i<=n;++i){for(let e=r;e<=l;++e){t.setData("body",i,e,null)}}}}}onKeyC(e,t){if(t.shiftKey||!s.Platform.accelKey(t)){return}t.preventDefault();t.stopPropagation();e.copyToClipboard()}}class x{}(function(e){function t(e,t){return typeof e==="function"?e(t):e}e.resolveOption=t})(x||(x={}));class v extends x{constructor(e={}){super();this.font=e.font||"12px sans-serif";this.textColor=e.textColor||"#000000";this.backgroundColor=e.backgroundColor||"";this.verticalAlignment=e.verticalAlignment||"center";this.horizontalAlignment=e.horizontalAlignment||"left";this.horizontalPadding=e.horizontalPadding||8;this.format=e.format||v.formatGeneric();this.elideDirection=e.elideDirection||"none";this.wrapText=e.wrapText||false}paint(e,t){this.drawBackground(e,t);this.drawText(e,t)}drawBackground(e,t){let i=x.resolveOption(this.backgroundColor,t);if(!i){return}e.fillStyle=i;e.fillRect(t.x,t.y,t.width,t.height)}getText(e){return this.format(e)}drawText(e,t){let i=x.resolveOption(this.font,t);if(!i){return}let s=x.resolveOption(this.textColor,t);if(!s){return}let o=this.getText(t);if(!o){return}let r=x.resolveOption(this.verticalAlignment,t);let n=x.resolveOption(this.horizontalAlignment,t);let l=x.resolveOption(this.elideDirection,t);let a=x.resolveOption(this.wrapText,t);let h=t.height-(r==="center"?1:2);if(h<=0){return}let c=v.measureFontHeight(i);let d;let u;let f;switch(r){case"top":u=t.y+2+c;break;case"center":u=t.y+t.height/2+c/2;break;case"bottom":u=t.y+t.height-2;break;default:throw"unreachable"}switch(n){case"left":d=t.x+this.horizontalPadding;f=t.width-14;break;case"center":d=t.x+t.width/2;f=t.width;break;case"right":d=t.x+t.width-this.horizontalPadding;f=t.width-14;break;default:throw"unreachable"}if(c>h){e.beginPath();e.rect(t.x,t.y,t.width,t.height-1);e.clip()}e.font=i;e.fillStyle=s;e.textAlign=n;e.textBaseline="bottom";if(l==="none"&&!a){e.fillText(o,d,u);return}let _=e.measureText(o).width;if(a&&_>f){e.beginPath();e.rect(t.x,t.y,t.width,t.height-1);e.clip();const i=o.split(/\s(?=\b)/);let s=u;let r=i.shift();if(i.length===0){let t=e.measureText(r).width;while(t>f&&r!==""){for(let i=r.length;i>0;i--){const o=r.substring(0,i);const n=e.measureText(o).width;if(nf){e.fillText(r,d,s);s+=c;r=t}else{r=o}}}e.fillText(r,d,s);return}const m="…";while(_>f&&o.length>1){const t=[...o];if(l==="right"){if(t.length>4&&_>=2*f){o=t.slice(0,Math.floor(t.length/2+1)).join("")+m}else{o=t.slice(0,t.length-2).join("")+m}}else{if(t.length>4&&_>=2*f){o=m+t.slice(Math.floor(t.length/2)).join("")}else{o=m+t.slice(2).join("")}}_=e.measureText(o).width}e.fillText(o,d,u)}}(function(e){function t(e={}){let t=e.missing||"";return({value:e})=>{if(e===null||e===undefined){return t}return String(e)}}e.formatGeneric=t;function i(e={}){let t=e.digits;let i=e.missing||"";return({value:e})=>{if(e===null||e===undefined){return i}return Number(e).toFixed(t)}}e.formatFixed=i;function s(e={}){let t=e.digits;let i=e.missing||"";return({value:e})=>{if(e===null||e===undefined){return i}return Number(e).toPrecision(t)}}e.formatPrecision=s;function o(e={}){let t=e.digits;let i=e.missing||"";return({value:e})=>{if(e===null||e===undefined){return i}return Number(e).toExponential(t)}}e.formatExponential=o;function r(e={}){let t=e.missing||"";let i=new Intl.NumberFormat(e.locales,e.options);return({value:e})=>{if(e===null||e===undefined){return t}return i.format(e)}}e.formatIntlNumber=r;function n(e={}){let t=e.missing||"";return({value:e})=>{if(e===null||e===undefined){return t}if(e instanceof Date){return e.toDateString()}return new Date(e).toDateString()}}e.formatDate=n;function l(e={}){let t=e.missing||"";return({value:e})=>{if(e===null||e===undefined){return t}if(e instanceof Date){return e.toTimeString()}return new Date(e).toTimeString()}}e.formatTime=l;function a(e={}){let t=e.missing||"";return({value:e})=>{if(e===null||e===undefined){return t}if(e instanceof Date){return e.toISOString()}return new Date(e).toISOString()}}e.formatISODateTime=a;function h(e={}){let t=e.missing||"";return({value:e})=>{if(e===null||e===undefined){return t}if(e instanceof Date){return e.toUTCString()}return new Date(e).toUTCString()}}e.formatUTCDateTime=h;function c(e={}){let t=e.missing||"";let i=new Intl.DateTimeFormat(e.locales,e.options);return({value:e})=>{if(e===null||e===undefined){return t}return i.format(e)}}e.formatIntlDateTime=c;function d(e){let t=C.fontHeightCache[e];if(t!==undefined){return t}C.fontMeasurementGC.font=e;let i=C.fontMeasurementGC.font;C.fontMeasurementNode.style.font=i;document.body.appendChild(C.fontMeasurementNode);t=C.fontMeasurementNode.offsetHeight;document.body.removeChild(C.fontMeasurementNode);C.fontHeightCache[e]=t;C.fontHeightCache[i]=t;return t}e.measureFontHeight=d})(v||(v={}));var C;(function(e){e.fontHeightCache=Object.create(null);e.fontMeasurementNode=(()=>{let e=document.createElement("div");e.style.position="absolute";e.style.top="-99999px";e.style.left="-99999px";e.style.visibility="hidden";e.textContent="M";return e})();e.fontMeasurementGC=(()=>{let e=document.createElement("canvas");e.width=0;e.height=0;return e.getContext("2d")})()})(C||(C={}));class M extends v{constructor(e={}){e.textColor=e.textColor||"navy";e.font=e.font||"bold 12px sans-serif";super(e);this.url=e.url;this.urlName=e.urlName}getText(e){let t=x.resolveOption(this.urlName,e);if(t){return this.format({...e,value:t})}return this.format(e)}drawText(e,t){let i=x.resolveOption(this.font,t);if(!i){return}let s=x.resolveOption(this.textColor,t);if(!s){return}let o=this.getText(t);if(!o){return}let r=x.resolveOption(this.verticalAlignment,t);let n=x.resolveOption(this.horizontalAlignment,t);let l=x.resolveOption(this.elideDirection,t);let a=x.resolveOption(this.wrapText,t);let h=t.height-(r==="center"?1:2);if(h<=0){return}let c=M.measureFontHeight(i);let d;let u;let f;switch(r){case"top":u=t.y+2+c;break;case"center":u=t.y+t.height/2+c/2;break;case"bottom":u=t.y+t.height-2;break;default:throw"unreachable"}switch(n){case"left":d=t.x+8;f=t.width-14;break;case"center":d=t.x+t.width/2;f=t.width;break;case"right":d=t.x+t.width-8;f=t.width-14;break;default:throw"unreachable"}if(c>h){e.beginPath();e.rect(t.x,t.y,t.width,t.height-1);e.clip()}e.font=i;e.fillStyle=s;e.textAlign=n;e.textBaseline="bottom";if(l==="none"&&!a){e.fillText(o,d,u);return}let _=e.measureText(o).width;if(a&&_>f){e.beginPath();e.rect(t.x,t.y,t.width,t.height-1);e.clip();const i=o.split(/\s(?=\b)/);let s=u;let r=i.shift();if(i.length===0){let t=e.measureText(r).width;while(t>f&&r!==""){for(let i=r.length;i>0;i--){const o=r.substring(0,i);const n=e.measureText(o).width;if(nf){e.fillText(r,d,s);s+=c;r=t}else{r=o}}}e.fillText(r,d,s);return}let m="…";if(l==="right"){while(_>f&&o.length>1){if(o.length>4&&_>=2*f){o=o.substring(0,o.length/2+1)+m}else{o=o.substring(0,o.length-2)+m}_=e.measureText(o).width}}else{while(_>f&&o.length>1){if(o.length>4&&_>=2*f){o=m+o.substring(o.length/2)}else{o=m+o.substring(2)}_=e.measureText(o).width}}e.fillText(o,d,u)}}var S;(function(e){function t(e,t,i){if(i==="row"){return e.r1>=t.r1&&e.r1<=t.r2||e.r2>=t.r1&&e.r2<=t.r2||t.r1>=e.r1&&t.r1<=e.r2||t.r2>=e.r1&&t.r2<=e.r2}return e.c1>=t.c1&&e.c1<=t.c2||e.c2>=t.c1&&e.c2<=t.c2||t.c1>=e.c1&&t.c1<=e.c2||t.c2>=e.c1&&t.c2<=e.c2}e.areCellGroupsIntersectingAtAxis=t;function i(e,t){return(e.r1>=t.r1&&e.r1<=t.r2||e.r2>=t.r1&&e.r2<=t.r2||t.r1>=e.r1&&t.r1<=e.r2||t.r2>=e.r1&&t.r2<=e.r2)&&(e.c1>=t.c1&&e.c1<=t.c2||e.c2>=t.c1&&e.c2<=t.c2||t.c1>=e.c1&&t.c1<=e.c2||t.c2>=e.c1&&t.c2<=e.c2)}e.areCellGroupsIntersecting=i;function s(e,t,i,s){const o=e.groupCount(t);for(let r=0;r=o.r1&&i<=o.r2&&s>=o.c1&&s<=o.c2){return r}}return-1}e.getGroupIndex=s;function o(e,t,i,o){const r=s(e,t,i,o);if(r===-1){return null}return e.group(t,r)}e.getGroup=o;function r(e,t){let i=[];const s=e.groupCount(t);for(let o=0;o=o.r1&&i<=o.r2){s.push(o)}}return s}e.getCellGroupsAtRow=a;function h(e,t,i){let s=[];const o=e.groupCount(t);for(let r=0;r=o.c1&&i<=o.c2){s.push(o)}}return s}e.getCellGroupsAtColumn=h;function c(t,i,s,o){let r=[];if(s==="row"){for(const s of i){for(let i=o.r1;i<=o.r2;i++){r=r.concat(e.getCellGroupsAtRow(t,s,i))}}}else{for(const s of i){for(let i=o.c1;i<=o.c2;i++){r=r.concat(e.getCellGroupsAtColumn(t,s,i))}}}let n=e.joinCellGroups(r);if(r.length>0){let o=[];for(const s of i){o=o.concat(e.getCellGroupsAtRegion(t,s))}for(let t=0;t0){m=H.computeTimeout(l-r)}else if(r>=h&&d0){m=H.computeTimeout(n-o)}else if(o>=a&&c0){m=H.computeTimeout(n-o)}else if(o>=a&&c0){m=H.computeTimeout(l-r)}else if(r>=h&&d=0){if(i.timeout<0){i.timeout=m;setTimeout((()=>{H.autoselect(e,i)}),m)}else{i.timeout=m}return}i.timeout=-1;let{vx:g,vy:p}=e.mapToVirtual(t.clientX,t.clientY);g=Math.max(0,Math.min(g,e.bodyWidth-1));p=Math.max(0,Math.min(p,e.bodyHeight-1));let w;let y;let x;let v;let C=s.cursorRow;let M=s.cursorColumn;let b="current";if(i.region==="row-header"||_==="row"){w=i.row;x=e.rowAt("body",p);const t={r1:w,c1:0,r2:x,c2:0};const s=S.joinCellGroupsIntersectingAtAxis(e.dataModel,["row-header","body"],"row",t);if(s.r1!=Number.MAX_VALUE){w=Math.min(w,s.r1);x=Math.max(x,s.r2)}y=0;v=Infinity}else if(i.region==="column-header"||_==="column"){w=0;x=Infinity;y=i.column;v=e.columnAt("body",g);const t={r1:0,c1:y,r2:0,c2:v};const s=S.joinCellGroupsIntersectingAtAxis(e.dataModel,["column-header","body"],"column",t);if(s.c1!=Number.MAX_VALUE){y=s.c1;v=s.c2}}else{w=C;x=e.rowAt("body",p);y=M;v=e.columnAt("body",g)}s.select({r1:w,c1:y,r2:x,c2:v,cursorRow:C,cursorColumn:M,clear:b})}onMouseUp(e,t){this.release()}onMouseDoubleClick(e,t){var i,s,o;if(!e.dataModel){this.release();return}let{clientX:r,clientY:n}=t;let l=e.hitTest(r,n);let{region:a,row:h,column:c}=l;if(a==="void"){this.release();return}if(a==="column-header"||a==="corner-header"){const t=H.resizeHandleForHitTest(l);if(t==="left"||t==="right"){let r=t==="left"?c-1:c;let n=a==="column-header"?"body":"row-header";if(r<0){if(a==="column-header"){r=e.dataModel.columnCount("row-header")-1;n="row-header"}else{return}}const l=(i=e.selectionModel)===null||i===void 0?void 0:i.currentSelection();const h=e.currentViewport;const d=(o=(s=e.selectionModel)===null||s===void 0?void 0:s.dataModel.rowCount("body"))!==null&&o!==void 0?o:0;if(n=="body"&&l!=null&&h!=null&&l.r1==0&&l.r2==d-1){let t=Math.max(Math.min(l.c1,l.c2),h.firstColumn);let i=Math.min(Math.max(l.c1,l.c2),h.lastColumn);if(t<=r&&r<=i){for(let s=t;s<=i;s++){e.resizeColumn(n,s,null)}}else{e.resizeColumn(n,r,null)}}else{e.resizeColumn(n,r,null)}}}if(a==="body"){if(e.editable){const t={grid:e,row:h,column:c};e.editorController.edit(t)}}this.release()}onContextMenu(e,t){}onWheel(e,t){if(this._pressData){return}let i=t.deltaX;let s=t.deltaY;switch(t.deltaMode){case 0:break;case 1:{let t=e.defaultSizes;i*=t.columnWidth;s*=t.rowHeight;break}case 2:i*=e.pageWidth;s*=e.pageHeight;break;default:throw"unreachable"}if(i<0&&e.scrollX!==0||i>0&&e.scrollX!==e.maxScrollX||s<0&&e.scrollY!==0||s>0&&e.scrollY!==e.maxScrollY){t.preventDefault();t.stopPropagation();e.scrollBy(i,s)}}cursorForHandle(e){return H.cursorMap[e]}get pressData(){return this._pressData}}var H;(function(e){function t(e,t){const{region:i,row:s,column:o}=t;if(i==="void"){return undefined}const r=e.dataModel.data(i,s,o);const n=e.dataModel.metadata(i,s,o);const l={...t,value:r,metadata:n};return l}e.createCellConfigObject=t;function i(e){let t=e.row;let i=e.column;let s=e.x;let o=e.y;let r=e.width-e.x;let n=e.height-e.y;let l;switch(e.region){case"corner-header":if(i>0&&s<=5){l="left"}else if(r<=6){l="right"}else if(t>0&&o<=5){l="top"}else if(n<=6){l="bottom"}else{l="none"}break;case"column-header":if(i>0&&s<=5){l="left"}else if(r<=6){l="right"}else if(t>0&&o<=5){l="top"}else if(n<=6){l="bottom"}else{l="none"}break;case"row-header":if(i>0&&s<=5){l="left"}else if(r<=6){l="right"}else if(t>0&&o<=5){l="top"}else if(n<=6){l="bottom"}else{l="none"}break;case"body":l="none";break;case"void":l="none";break;default:throw"unreachable"}return l}e.resizeHandleForHitTest=i;function s(e,t){if(t.timeout<0){return}let i=e.selectionModel;if(!i){return}let o=i.currentSelection();if(!o){return}let r=t.localX;let n=t.localY;let l=o.r1;let a=o.c1;let h=o.r2;let c=o.c2;let d=i.cursorRow;let u=i.cursorColumn;let f="current";let _=e.headerWidth;let m=e.headerHeight;let g=e.viewportWidth;let p=e.viewportHeight;let w=i.selectionMode;if(t.region==="row-header"||w==="row"){h+=n<=m?-1:n>=p?1:0}else if(t.region==="column-header"||w==="column"){c+=r<=_?-1:r>=g?1:0}else{h+=n<=m?-1:n>=p?1:0;c+=r<=_?-1:r>=g?1:0}i.select({r1:l,c1:a,r2:h,c2:c,cursorRow:d,cursorColumn:u,clear:f});o=i.currentSelection();if(!o){return}if(t.region==="row-header"||w==="row"){e.scrollToRow(o.r2)}else if(t.region==="column-header"||w=="column"){e.scrollToColumn(o.c2)}else if(w==="cell"){e.scrollToCell(o.r2,o.c2)}setTimeout((()=>{s(e,t)}),t.timeout)}e.autoselect=s;function o(e){return 5+120*(1-Math.min(128,Math.abs(e))/128)}e.computeTimeout=o;e.cursorMap={top:"ns-resize",left:"ew-resize",right:"ew-resize",bottom:"ns-resize",hyperlink:"pointer",none:"default"}})(H||(H={}));class R{constructor(e){this._changed=new d.Signal(this);this._selectionMode="cell";this.dataModel=e.dataModel;this._selectionMode=e.selectionMode||"cell";this.dataModel.changed.connect(this.onDataModelChanged,this)}get changed(){return this._changed}get selectionMode(){return this._selectionMode}set selectionMode(e){if(this._selectionMode===e){return}this._selectionMode=e;this.clear()}isRowSelected(e){return(0,h.some)(this.selections(),(t=>z.containsRow(t,e)))}isColumnSelected(e){return(0,h.some)(this.selections(),(t=>z.containsColumn(t,e)))}isCellSelected(e,t){return(0,h.some)(this.selections(),(i=>z.containsCell(i,e,t)))}onDataModelChanged(e,t){}emitChanged(){this._changed.emit(undefined)}}var z;(function(e){function t(e,t){let{r1:i,r2:s}=e;return t>=i&&t<=s||t>=s&&t<=i}e.containsRow=t;function i(e,t){let{c1:i,c2:s}=e;return t>=i&&t<=s||t>=s&&t<=i}e.containsColumn=i;function s(e,s,o){return t(e,s)&&i(e,o)}e.containsCell=s})(z||(z={}));class O extends R{constructor(){super(...arguments);this._cursorRow=-1;this._cursorColumn=-1;this._cursorRectIndex=-1;this._selections=[]}get isEmpty(){return this._selections.length===0}get cursorRow(){return this._cursorRow}get cursorColumn(){return this._cursorColumn}moveCursorWithinSelections(e){if(this.isEmpty||this.cursorRow===-1||this._cursorColumn===-1){return}const t=this._selections[0];if(this._selections.length===1&&t.r1===t.r2&&t.c1===t.c2){return}if(this._cursorRectIndex===-1){this._cursorRectIndex=this._selections.length-1}let i=this._selections[this._cursorRectIndex];const s=e==="down"?1:e==="up"?-1:0;const o=e==="right"?1:e==="left"?-1:0;let r=this._cursorRow+s;let n=this._cursorColumn+o;const l=Math.min(i.r1,i.r2);const a=Math.max(i.r1,i.r2);const h=Math.min(i.c1,i.c2);const c=Math.max(i.c1,i.c2);const d=()=>{this._cursorRectIndex=(this._cursorRectIndex+1)%this._selections.length;i=this._selections[this._cursorRectIndex];r=Math.min(i.r1,i.r2);n=Math.min(i.c1,i.c2)};const u=()=>{this._cursorRectIndex=this._cursorRectIndex===0?this._selections.length-1:this._cursorRectIndex-1;i=this._selections[this._cursorRectIndex];r=Math.max(i.r1,i.r2);n=Math.max(i.c1,i.c2)};if(r>a){r=l;n+=1;if(n>c){d()}}else if(rc){n=h;r+=1;if(r>a){d()}}else if(ne.r1===s)).length!==0;this._selections=c?this._selections.filter((e=>e.r1!==s)):this._selections}else if(this.selectionMode==="column"){s=0;r=t-1;c=this._selections.filter((e=>e.c1===o)).length!==0;this._selections=c?this._selections.filter((e=>e.c1!==o)):this._selections}let d=l;let u=a;if(d<0||ds&&d>r){d=s}if(u<0||uo&&u>n){u=o}this._cursorRow=d;this._cursorColumn=u;this._cursorRectIndex=this._selections.length;if(!c){this._selections.push({r1:s,c1:o,r2:r,c2:n})}this.emitChanged()}clear(){if(this._selections.length===0){return}this._cursorRow=-1;this._cursorColumn=-1;this._cursorRectIndex=-1;this._selections.length=0;this.emitChanged()}onDataModelChanged(e,t){if(this._selections.length===0){return}if(t.type==="cells-changed"){return}if(t.type==="rows-moved"||t.type==="columns-moved"){return}let i=e.rowCount("body")-1;let s=e.columnCount("body")-1;if(i<0||s<0){this._selections.length=0;this.emitChanged();return}let o=this.selectionMode;let r=0;for(let n=0,l=this._selections.length;nthis.maxLength){return{valid:false,message:`Text length must be less than ${this.maxLength}`}}if(this.pattern&&!this.pattern.test(t)){return{valid:false,message:`Text doesn't match the required pattern`}}return{valid:true}}}class T{constructor(){this.min=Number.NaN;this.max=Number.NaN}validate(e,t){if(t===null){return{valid:true}}if(isNaN(t)||t%1!==0){return{valid:false,message:"Input must be valid integer"}}if(!isNaN(this.min)&&tthis.max){return{valid:false,message:`Input must be less than ${this.max}`}}return{valid:true}}}class B{constructor(){this.min=Number.NaN;this.max=Number.NaN}validate(e,t){if(t===null){return{valid:true}}if(isNaN(t)){return{valid:false,message:"Input must be valid number"}}if(!isNaN(this.min)&&tthis.max){return{valid:false,message:`Input must be less than ${this.max}`}}return{valid:true}}}class D{constructor(){this.inputChanged=new d.Signal(this);this.validityNotification=null;this._disposed=false;this._validInput=true;this._gridWheelEventHandler=null;this.inputChanged.connect((()=>{this.validate()}))}get isDisposed(){return this._disposed}dispose(){if(this._disposed){return}if(this._gridWheelEventHandler){this.cell.grid.node.removeEventListener("wheel",this._gridWheelEventHandler);this._gridWheelEventHandler=null}this._closeValidityNotification();this._disposed=true;this.cell.grid.node.removeChild(this.viewportOccluder)}edit(e,t){this.cell=e;this.onCommit=t&&t.onCommit;this.onCancel=t&&t.onCancel;this.validator=t&&t.validator?t.validator:this.createValidatorBasedOnType();this._gridWheelEventHandler=()=>{this._closeValidityNotification();this.updatePosition()};e.grid.node.addEventListener("wheel",this._gridWheelEventHandler);this._addContainer();this.updatePosition();this.startEditing()}cancel(){if(this._disposed){return}this.dispose();if(this.onCancel){this.onCancel()}}get validInput(){return this._validInput}validate(){let e;try{e=this.getInput()}catch(t){console.log(`Input error: ${t.message}`);this.setValidity(false,t.message||E);return}if(this.validator){const t=this.validator.validate(this.cell,e);if(t.valid){this.setValidity(true)}else{this.setValidity(false,t.message||E)}}else{this.setValidity(true)}}setValidity(e,t=""){this._validInput=e;this._closeValidityNotification();if(e){this.editorContainer.classList.remove("lm-mod-invalid")}else{this.editorContainer.classList.add("lm-mod-invalid");if(t!==""){this.validityNotification=new D.Notification({target:this.editorContainer,message:t,placement:"bottom",timeout:5e3});this.validityNotification.show()}}}createValidatorBasedOnType(){const e=this.cell;const t=e.grid.dataModel.metadata("body",e.row,e.column);switch(t&&t.type){case"string":{const e=new W;if(typeof t.format==="string"){const i=t.format;switch(i){case"email":e.pattern=new RegExp("^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$");break;case"uuid":e.pattern=new RegExp("[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}");break}}if(t.constraint){if(t.constraint.minLength!==undefined){e.minLength=t.constraint.minLength}if(t.constraint.maxLength!==undefined){e.maxLength=t.constraint.maxLength}if(typeof t.constraint.pattern==="string"){e.pattern=new RegExp(t.constraint.pattern)}}return e}case"number":{const e=new B;if(t.constraint){if(t.constraint.minimum!==undefined){e.min=t.constraint.minimum}if(t.constraint.maximum!==undefined){e.max=t.constraint.maximum}}return e}case"integer":{const e=new T;if(t.constraint){if(t.constraint.minimum!==undefined){e.min=t.constraint.minimum}if(t.constraint.maximum!==undefined){e.max=t.constraint.maximum}}return e}}return undefined}getCellInfo(e){const{grid:t,row:i,column:s}=e;let o,r,n,l,a;const h=S.getGroup(t.dataModel,"body",i,s);if(h){r=t.headerWidth-t.scrollX+t.columnOffset("body",h.c1);n=t.headerHeight-t.scrollY+t.rowOffset("body",h.r1);l=0;a=0;for(let e=h.r1;e<=h.r2;e++){a+=t.rowSize("body",e)}for(let e=h.c1;e<=h.c2;e++){l+=t.columnSize("body",e)}o=t.dataModel.data("body",h.r1,h.c1)}else{r=t.headerWidth-t.scrollX+t.columnOffset("body",s);n=t.headerHeight-t.scrollY+t.rowOffset("body",i);l=t.columnSize("body",s);a=t.rowSize("body",i);o=t.dataModel.data("body",i,s)}return{grid:t,row:i,column:s,data:o,x:r,y:n,width:l,height:a}}updatePosition(){const e=this.cell.grid;const t=this.getCellInfo(this.cell);const i=e.headerHeight;const s=e.headerWidth;this.viewportOccluder.style.top=i+"px";this.viewportOccluder.style.left=s+"px";this.viewportOccluder.style.width=e.viewportWidth-s+"px";this.viewportOccluder.style.height=e.viewportHeight-i+"px";this.viewportOccluder.style.position="absolute";this.editorContainer.style.left=t.x-1-s+"px";this.editorContainer.style.top=t.y-1-i+"px";this.editorContainer.style.width=t.width+1+"px";this.editorContainer.style.height=t.height+1+"px";this.editorContainer.style.visibility="visible";this.editorContainer.style.position="absolute"}commit(e="none"){this.validate();if(!this._validInput){return false}let t;try{t=this.getInput()}catch(i){console.log(`Input error: ${i.message}`);return false}this.dispose();if(this.onCommit){this.onCommit({cell:this.cell,value:t,cursorMovement:e})}return true}_addContainer(){this.viewportOccluder=document.createElement("div");this.viewportOccluder.className="lm-DataGrid-cellEditorOccluder";this.cell.grid.node.appendChild(this.viewportOccluder);this.editorContainer=document.createElement("div");this.editorContainer.className="lm-DataGrid-cellEditorContainer";this.viewportOccluder.appendChild(this.editorContainer);this.editorContainer.addEventListener("mouseleave",(e=>{this.viewportOccluder.style.pointerEvents=this._validInput?"none":"auto"}));this.editorContainer.addEventListener("mouseenter",(e=>{this.viewportOccluder.style.pointerEvents="none"}))}_closeValidityNotification(){if(this.validityNotification){this.validityNotification.close();this.validityNotification=null}}}class G extends D{handleEvent(e){switch(e.type){case"keydown":this._onKeyDown(e);break;case"blur":this._onBlur(e);break;case"input":this._onInput(e);break}}dispose(){if(this.isDisposed){return}this._unbindEvents();super.dispose()}startEditing(){this.createWidget();const e=this.cell;const t=this.getCellInfo(e);this.input.value=this.deserialize(t.data);this.editorContainer.appendChild(this.input);this.input.focus();this.input.select();this.bindEvents()}deserialize(e){if(e===null||e===undefined){return""}return e.toString()}createWidget(){const e=document.createElement("input");e.classList.add("lm-DataGrid-cellEditorWidget");e.classList.add("lm-DataGrid-cellEditorInput");e.spellcheck=false;e.type=this.inputType;this.input=e}bindEvents(){this.input.addEventListener("keydown",this);this.input.addEventListener("blur",this);this.input.addEventListener("input",this)}_unbindEvents(){this.input.removeEventListener("keydown",this);this.input.removeEventListener("blur",this);this.input.removeEventListener("input",this)}_onKeyDown(e){switch((0,r.getKeyboardLayout)().keyForKeydownEvent(e)){case"Enter":this.commit(e.shiftKey?"up":"down");break;case"Tab":this.commit(e.shiftKey?"left":"right");e.stopPropagation();e.preventDefault();break;case"Escape":this.cancel();break}}_onBlur(e){if(this.isDisposed){return}if(!this.commit()){e.preventDefault();e.stopPropagation();this.input.focus()}}_onInput(e){this.inputChanged.emit(void 0)}}class I extends G{constructor(){super(...arguments);this.inputType="text"}getInput(){return this.input.value}}class A extends G{constructor(){super(...arguments);this.inputType="number"}startEditing(){super.startEditing();this.input.step="any";const e=this.cell;const t=e.grid.dataModel.metadata("body",e.row,e.column);const i=t.constraint;if(i){if(i.minimum){this.input.min=i.minimum}if(i.maximum){this.input.max=i.maximum}}}getInput(){let e=this.input.value;if(e.trim()===""){return null}const t=parseFloat(e);if(isNaN(t)){throw new Error("Invalid input")}return t}}class P extends G{constructor(){super(...arguments);this.inputType="number"}startEditing(){super.startEditing();this.input.step="1";const e=this.cell;const t=e.grid.dataModel.metadata("body",e.row,e.column);const i=t.constraint;if(i){if(i.minimum){this.input.min=i.minimum}if(i.maximum){this.input.max=i.maximum}}}getInput(){let e=this.input.value;if(e.trim()===""){return null}let t=parseInt(e);if(isNaN(t)){throw new Error("Invalid input")}return t}}class X extends D{handleEvent(e){switch(e.type){case"keydown":this._onKeyDown(e);break;case"blur":this._onBlur(e);break}}dispose(){if(this.isDisposed){return}this._unbindEvents();super.dispose()}startEditing(){this._createWidget();const e=this.cell;const t=this.getCellInfo(e);this._input.value=this._deserialize(t.data);this.editorContainer.appendChild(this._input);this._input.focus();this._bindEvents()}getInput(){return this._input.value}_deserialize(e){if(e===null||e===undefined){return""}return e.toString()}_createWidget(){const e=document.createElement("input");e.type="date";e.pattern="d{4}-d{2}-d{2}";e.classList.add("lm-DataGrid-cellEditorWidget");e.classList.add("lm-DataGrid-cellEditorInput");this._input=e}_bindEvents(){this._input.addEventListener("keydown",this);this._input.addEventListener("blur",this)}_unbindEvents(){this._input.removeEventListener("keydown",this);this._input.removeEventListener("blur",this)}_onKeyDown(e){switch((0,r.getKeyboardLayout)().keyForKeydownEvent(e)){case"Enter":this.commit(e.shiftKey?"up":"down");break;case"Tab":this.commit(e.shiftKey?"left":"right");e.stopPropagation();e.preventDefault();break;case"Escape":this.cancel();break}}_onBlur(e){if(this.isDisposed){return}if(!this.commit()){e.preventDefault();e.stopPropagation();this._input.focus()}}}class V extends D{handleEvent(e){switch(e.type){case"keydown":this._onKeyDown(e);break;case"mousedown":this._input.focus();e.stopPropagation();e.preventDefault();break;case"blur":this._onBlur(e);break}}dispose(){if(this.isDisposed){return}this._unbindEvents();super.dispose()}startEditing(){this._createWidget();const e=this.cell;const t=this.getCellInfo(e);this._input.checked=this._deserialize(t.data);this.editorContainer.appendChild(this._input);this._input.focus();this._bindEvents()}getInput(){return this._input.checked}_deserialize(e){if(e===null||e===undefined){return false}return e==true}_createWidget(){const e=document.createElement("input");e.classList.add("lm-DataGrid-cellEditorWidget");e.classList.add("lm-DataGrid-cellEditorCheckbox");e.type="checkbox";e.spellcheck=false;this._input=e}_bindEvents(){this._input.addEventListener("keydown",this);this._input.addEventListener("mousedown",this);this._input.addEventListener("blur",this)}_unbindEvents(){this._input.removeEventListener("keydown",this);this._input.removeEventListener("mousedown",this);this._input.removeEventListener("blur",this)}_onKeyDown(e){switch((0,r.getKeyboardLayout)().keyForKeydownEvent(e)){case"Enter":this.commit(e.shiftKey?"up":"down");break;case"Tab":this.commit(e.shiftKey?"left":"right");e.stopPropagation();e.preventDefault();break;case"Escape":this.cancel();break}}_onBlur(e){if(this.isDisposed){return}if(!this.commit()){e.preventDefault();e.stopPropagation();this._input.focus()}}}class N extends D{constructor(){super(...arguments);this._isMultiSelect=false}dispose(){if(this.isDisposed){return}super.dispose();if(this._isMultiSelect){document.body.removeChild(this._select)}}startEditing(){const e=this.cell;const t=this.getCellInfo(e);const i=e.grid.dataModel.metadata("body",e.row,e.column);this._isMultiSelect=i.type==="array";this._createWidget();if(this._isMultiSelect){this._select.multiple=true;const e=this._deserialize(t.data);for(let t=0;t{const t=document.createElement("option");t.value=e;t.text=e;r.appendChild(t)}));this.editorContainer.appendChild(r);n.setAttribute("list",o);this._input=n}_bindEvents(){this._input.addEventListener("keydown",this);this._input.addEventListener("blur",this)}_unbindEvents(){this._input.removeEventListener("keydown",this);this._input.removeEventListener("blur",this)}_onKeyDown(e){switch((0,r.getKeyboardLayout)().keyForKeydownEvent(e)){case"Enter":this.commit(e.shiftKey?"up":"down");break;case"Tab":this.commit(e.shiftKey?"left":"right");e.stopPropagation();e.preventDefault();break;case"Escape":this.cancel();break}}_onBlur(e){if(this.isDisposed){return}if(!this.commit()){e.preventDefault();e.stopPropagation();this._input.focus()}}}(function(e){class t extends f.Widget{constructor(e){super({node:t.createNode()});this._message="";this.addClass("lm-DataGrid-notification");this.setFlag(f.Widget.Flag.DisallowLayout);this._target=e.target;this._message=e.message||"";this._placement=e.placement||"bottom";f.Widget.attach(this,document.body);if(e.timeout&&e.timeout>0){setTimeout((()=>{this.close()}),e.timeout)}}handleEvent(e){switch(e.type){case"mousedown":this._evtMouseDown(e);break;case"contextmenu":e.preventDefault();e.stopPropagation();break}}get placement(){return this._placement}set placement(e){if(this._placement===e){return}this._placement=e;this.update()}get message(){return this._message}set message(e){if(this._message===e){return}this._message=e;this.update()}get messageNode(){return this.node.getElementsByClassName("lm-DataGrid-notificationMessage")[0]}onBeforeAttach(e){this.node.addEventListener("mousedown",this);this.update()}onAfterDetach(e){this.node.removeEventListener("mousedown",this)}onUpdateRequest(e){const t=this._target.getBoundingClientRect();const i=this.node.style;switch(this._placement){case"bottom":i.left=t.left+"px";i.top=t.bottom+"px";break;case"top":i.left=t.left+"px";i.height=t.top+"px";i.top="0";i.alignItems="flex-end";i.justifyContent="flex-end";break;case"left":i.left="0";i.width=t.left+"px";i.top=t.top+"px";i.alignItems="flex-end";i.justifyContent="flex-end";break;case"right":i.left=t.right+"px";i.top=t.top+"px";break}this.messageNode.innerHTML=this._message}_evtMouseDown(e){if(e.button!==0){return}e.preventDefault();e.stopPropagation();this.close()}}e.Notification=t;(function(e){function t(){const e=document.createElement("div");const t=document.createElement("div");t.className="lm-DataGrid-notificationContainer";const i=document.createElement("span");i.className="lm-DataGrid-notificationMessage";t.appendChild(i);e.appendChild(t);return e}e.createNode=t})(t=e.Notification||(e.Notification={}))})(D||(D={}));function F(e,t){return typeof e==="function"?e(t):e}class K{constructor(){this._editor=null;this._cell=null;this._typeBasedOverrides=new Map;this._metadataBasedOverrides=new Map}setEditor(e,t){if(typeof e==="string"){this._typeBasedOverrides.set(e,t)}else{const i=this._metadataIdentifierToKey(e);this._metadataBasedOverrides.set(i,[e,t])}}edit(e,t){const i=e.grid;if(!i.editable){console.error("Grid cannot be edited!");return false}this.cancel();this._cell=e;t=t||{};t.onCommit=t.onCommit||this._onCommit.bind(this);t.onCancel=t.onCancel||this._onCancel.bind(this);if(t.editor){this._editor=t.editor;t.editor.edit(e,t);return true}const s=this._getEditor(e);if(s){this._editor=s;s.edit(e,t);return true}return false}cancel(){if(this._editor){this._editor.cancel();this._editor=null}this._cell=null}_onCommit(e){const t=this._cell;if(!t){return}const i=t.grid;const s=i.dataModel;let o=t.row;let r=t.column;const n=S.getGroup(i.dataModel,"body",o,r);if(n){o=n.r1;r=n.c1}s.setData("body",o,r,e.value);i.viewport.node.focus();if(e.cursorMovement!=="none"){i.moveCursor(e.cursorMovement);i.scrollToCursor()}}_onCancel(){if(!this._cell){return}this._cell.grid.viewport.node.focus()}_getDataTypeKey(e){const t=e.grid.dataModel?e.grid.dataModel.metadata("body",e.row,e.column):null;if(!t){return"default"}let i="";if(t){i=t.type}if(t.constraint&&t.constraint.enum){if(t.constraint.enum==="dynamic"){i+=":dynamic-option"}else{i+=":option"}}return i}_objectToKey(e){let t="";for(let i in e){const s=e[i];if(typeof s==="object"){t+=`${i}:${this._objectToKey(s)}`}else{t+=`[${i}:${s}]`}}return t}_metadataIdentifierToKey(e){return this._objectToKey(e)}_metadataMatchesIdentifier(e,t){for(let i in t){if(!e.hasOwnProperty(i)){return false}const s=t[i];const o=e[i];if(typeof s==="object"){if(!this._metadataMatchesIdentifier(o,s)){return false}}else if(o!==s){return false}}return true}_getMetadataBasedEditor(e){let t;const i=e.grid.dataModel.metadata("body",e.row,e.column);if(i){this._metadataBasedOverrides.forEach((s=>{if(!t){let[o,r]=s;if(this._metadataMatchesIdentifier(i,o)){t=F(r,e)}}}))}return t}_getEditor(e){const t=this._getDataTypeKey(e);if(this._typeBasedOverrides.has(t)){const i=this._typeBasedOverrides.get(t);return F(i,e)}else if(this._metadataBasedOverrides.size>0){const t=this._getMetadataBasedEditor(e);if(t){return t}}switch(t){case"string":return new I;case"number":return new A;case"integer":return new P;case"boolean":return new V;case"date":return new X;case"string:option":case"number:option":case"integer:option":case"date:option":case"array:option":return new N;case"string:dynamic-option":case"number:dynamic-option":case"integer:dynamic-option":case"date:dynamic-option":return new Y}if(this._typeBasedOverrides.has("default")){const t=this._typeBasedOverrides.get("default");return F(t,e)}const i=e.grid.dataModel.data("body",e.row,e.column);if(!i||typeof i!=="object"){return new I}return undefined}}class q{constructor(){this._changed=new d.Signal(this)}get changed(){return this._changed}groupCount(e){return 0}metadata(e,t,i){return q.emptyMetadata}group(e,t){return null}emitChanged(e){this._changed.emit(e)}}class j extends q{}(function(e){e.emptyMetadata=Object.freeze({})})(q||(q={}));class ${constructor(e){this._disposed=false;this._context=e;this._state=U.State.create(e)}dispose(){if(this._disposed){return}this._disposed=true;while(this._state.next){this._state=this._state.next;this._context.restore()}}get isDisposed(){return this._disposed}get fillStyle(){return this._context.fillStyle}set fillStyle(e){if(this._state.fillStyle!==e){this._state.fillStyle=e;this._context.fillStyle=e}}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(e){if(this._state.strokeStyle!==e){this._state.strokeStyle=e;this._context.strokeStyle=e}}get font(){return this._context.font}set font(e){if(this._state.font!==e){this._state.font=e;this._context.font=e}}get textAlign(){return this._context.textAlign}set textAlign(e){if(this._state.textAlign!==e){this._state.textAlign=e;this._context.textAlign=e}}get textBaseline(){return this._context.textBaseline}set textBaseline(e){if(this._state.textBaseline!==e){this._state.textBaseline=e;this._context.textBaseline=e}}get lineCap(){return this._context.lineCap}set lineCap(e){if(this._state.lineCap!==e){this._state.lineCap=e;this._context.lineCap=e}}get lineDashOffset(){return this._context.lineDashOffset}set lineDashOffset(e){if(this._state.lineDashOffset!==e){this._state.lineDashOffset=e;this._context.lineDashOffset=e}}get lineJoin(){return this._context.lineJoin}set lineJoin(e){if(this._state.lineJoin!==e){this._state.lineJoin=e;this._context.lineJoin=e}}get lineWidth(){return this._context.lineWidth}set lineWidth(e){if(this._state.lineWidth!==e){this._state.lineWidth=e;this._context.lineWidth=e}}get miterLimit(){return this._context.miterLimit}set miterLimit(e){if(this._state.miterLimit!==e){this._state.miterLimit=e;this._context.miterLimit=e}}get shadowBlur(){return this._context.shadowBlur}set shadowBlur(e){if(this._state.shadowBlur!==e){this._state.shadowBlur=e;this._context.shadowBlur=e}}get shadowColor(){return this._context.shadowColor}set shadowColor(e){if(this._state.shadowColor!==e){this._state.shadowColor=e;this._context.shadowColor=e}}get shadowOffsetX(){return this._context.shadowOffsetX}set shadowOffsetX(e){if(this._state.shadowOffsetX!==e){this._state.shadowOffsetX=e;this._context.shadowOffsetX=e}}get shadowOffsetY(){return this._context.shadowOffsetY}set shadowOffsetY(e){if(this._state.shadowOffsetY!==e){this._state.shadowOffsetY=e;this._context.shadowOffsetY=e}}get imageSmoothingEnabled(){return this._context.imageSmoothingEnabled}set imageSmoothingEnabled(e){if(this._state.imageSmoothingEnabled!==e){this._state.imageSmoothingEnabled=e;this._context.imageSmoothingEnabled=e}}get globalAlpha(){return this._context.globalAlpha}set globalAlpha(e){if(this._state.globalAlpha!==e){this._state.globalAlpha=e;this._context.globalAlpha=e}}get globalCompositeOperation(){return this._context.globalCompositeOperation}set globalCompositeOperation(e){if(this._state.globalCompositeOperation!==e){this._state.globalCompositeOperation=e;this._context.globalCompositeOperation=e}}getLineDash(){return this._context.getLineDash()}setLineDash(e){this._context.setLineDash(e)}rotate(e){this._context.rotate(e)}scale(e,t){this._context.scale(e,t)}transform(e,t,i,s,o,r){this._context.transform(e,t,i,s,o,r)}translate(e,t){this._context.translate(e,t)}setTransform(e,t,i,s,o,r){this._context.setTransform(e,t,i,s,o,r)}save(){this._state=U.State.push(this._state);this._context.save()}restore(){if(!this._state.next){return}this._state=U.State.pop(this._state);this._context.restore()}beginPath(){return this._context.beginPath()}closePath(){this._context.closePath()}isPointInPath(e,t,i){let s;if(arguments.length===2){s=this._context.isPointInPath(e,t)}else{s=this._context.isPointInPath(e,t,i)}return s}arc(e,t,i,s,o,r){if(arguments.length===5){this._context.arc(e,t,i,s,o)}else{this._context.arc(e,t,i,s,o,r)}}arcTo(e,t,i,s,o){this._context.arcTo(e,t,i,s,o)}bezierCurveTo(e,t,i,s,o,r){this._context.bezierCurveTo(e,t,i,s,o,r)}ellipse(e,t,i,s,o,r,n,l){if(arguments.length===7){this._context.ellipse(e,t,i,s,o,r,n)}else{this._context.ellipse(e,t,i,s,o,r,n,l)}}lineTo(e,t){this._context.lineTo(e,t)}moveTo(e,t){this._context.moveTo(e,t)}quadraticCurveTo(e,t,i,s){this._context.quadraticCurveTo(e,t,i,s)}rect(e,t,i,s){this._context.rect(e,t,i,s)}clip(e){if(arguments.length===0){this._context.clip()}else{this._context.clip(e)}}fill(e){if(arguments.length===0){this._context.fill()}else{this._context.fill(e)}}stroke(){this._context.stroke()}clearRect(e,t,i,s){return this._context.clearRect(e,t,i,s)}fillRect(e,t,i,s){this._context.fillRect(e,t,i,s)}fillText(e,t,i,s){if(arguments.length===3){this._context.fillText(e,t,i)}else{this._context.fillText(e,t,i,s)}}strokeRect(e,t,i,s){this._context.strokeRect(e,t,i,s)}strokeText(e,t,i,s){if(arguments.length===3){this._context.strokeText(e,t,i)}else{this._context.strokeText(e,t,i,s)}}measureText(e){return this._context.measureText(e)}createLinearGradient(e,t,i,s){return this._context.createLinearGradient(e,t,i,s)}createRadialGradient(e,t,i,s,o,r){return this._context.createRadialGradient(e,t,i,s,o,r)}createPattern(e,t){return this._context.createPattern(e,t)}createImageData(){return this._context.createImageData.apply(this._context,arguments)}getImageData(e,t,i,s){return this._context.getImageData(e,t,i,s)}putImageData(){this._context.putImageData.apply(this._context,arguments)}drawImage(){this._context.drawImage.apply(this._context,arguments)}drawFocusIfNeeded(e){this._context.drawFocusIfNeeded(e)}}var U;(function(e){let t=-1;const i=[];class s{static create(e){let o=t<0?new s:i[t--];o.next=null;o.fillStyle=e.fillStyle;o.font=e.font;o.globalAlpha=e.globalAlpha;o.globalCompositeOperation=e.globalCompositeOperation;o.imageSmoothingEnabled=e.imageSmoothingEnabled;o.lineCap=e.lineCap;o.lineDashOffset=e.lineDashOffset;o.lineJoin=e.lineJoin;o.lineWidth=e.lineWidth;o.miterLimit=e.miterLimit;o.shadowBlur=e.shadowBlur;o.shadowColor=e.shadowColor;o.shadowOffsetX=e.shadowOffsetX;o.shadowOffsetY=e.shadowOffsetY;o.strokeStyle=e.strokeStyle;o.textAlign=e.textAlign;o.textBaseline=e.textBaseline;return o}static push(e){let o=t<0?new s:i[t--];o.next=e;o.fillStyle=e.fillStyle;o.font=e.font;o.globalAlpha=e.globalAlpha;o.globalCompositeOperation=e.globalCompositeOperation;o.imageSmoothingEnabled=e.imageSmoothingEnabled;o.lineCap=e.lineCap;o.lineDashOffset=e.lineDashOffset;o.lineJoin=e.lineJoin;o.lineWidth=e.lineWidth;o.miterLimit=e.miterLimit;o.shadowBlur=e.shadowBlur;o.shadowColor=e.shadowColor;o.shadowOffsetX=e.shadowOffsetX;o.shadowOffsetY=e.shadowOffsetY;o.strokeStyle=e.strokeStyle;o.textAlign=e.textAlign;o.textBaseline=e.textBaseline;return o}static pop(e){e.fillStyle="";e.strokeStyle="";i[++t]=e;return e.next}}e.State=s})(U||(U={}));class J{constructor(e={},t){this._changed=new d.Signal(this);this._values={...e};this._fallback=t||new v}get changed(){return this._changed}get(e){let t=this._values[e.region];if(typeof t==="function"){try{t=t(e)}catch(i){t=undefined;console.error(i)}}return t||this._fallback}update(e={},t){this._values={...this._values,...e};this._fallback=t||this._fallback;this._changed.emit(undefined)}}class Z{constructor(e){this._count=0;this._length=0;this._sections=[];this._minimumSize=e.minimumSize||2;this._defaultSize=Math.max(this._minimumSize,Math.floor(e.defaultSize))}get length(){return this._length}get count(){return this._count}get minimumSize(){return this._minimumSize}set minimumSize(e){e=Math.max(2,Math.floor(e));if(this._minimumSize===e){return}this._minimumSize=e;if(e>this._defaultSize){this.defaultSize=e}}get defaultSize(){return this._defaultSize}set defaultSize(e){e=Math.max(this._minimumSize,Math.floor(e));if(this._defaultSize===e){return}let t=e-this._defaultSize;this._defaultSize=e;this._length+=t*(this._count-this._sections.length);if(this._sections.length===0){return}for(let i=0,s=this._sections.length;i=this._length||this._count===0){return-1}if(this._sections.length===0){return Math.floor(e/this._defaultSize)}let t=h.ArrayExt.lowerBound(this._sections,e,Q.offsetCmp);if(t=this._count){return-1}if(this._sections.length===0){return e*this._defaultSize}let t=h.ArrayExt.lowerBound(this._sections,e,Q.indexCmp);if(t=this._count){return-1}if(this._sections.length===0){return(e+1)*this._defaultSize-1}let t=h.ArrayExt.lowerBound(this._sections,e,Q.indexCmp);if(t=this._count){return-1}if(this._sections.length===0){return this._defaultSize}let t=h.ArrayExt.lowerBound(this._sections,e,Q.indexCmp);if(t=this._count){return}t=Math.max(this._minimumSize,Math.floor(t));let i=h.ArrayExt.lowerBound(this._sections,e,Q.indexCmp);let s;if(i=this._count||t<=0){return}t=Math.min(this._count-e,t);if(this._sections.length===0){this._count-=t;this._length-=t*this._defaultSize;return}if(t===this._count){this._length=0;this._count=0;this._sections.length=0;return}let i=h.ArrayExt.lowerBound(this._sections,e,Q.indexCmp);let s=h.ArrayExt.lowerBound(this._sections,e+t,Q.indexCmp);let o=this._sections.splice(i,s-i);let r=(t-o.length)*this._defaultSize;for(let n=0,l=o.length;n=this._count||t<=0){return}if(this._sections.length===0){return}t=Math.min(t,this._count-e);i=Math.min(Math.max(0,i),this._count-t);if(e===i){return}let s=Math.min(e,i);let o=h.ArrayExt.lowerBound(this._sections,s,Q.indexCmp);if(o===this._sections.length){return}let r=Math.max(e+t-1,i+t-1);let n=h.ArrayExt.upperBound(this._sections,r,Q.indexCmp)-1;if(nr){n=s-r+10}if(n===0){return}this.scrollBy(0,n)}scrollToColumn(e){let t=this._columnSections.count;if(t===0){return}e=Math.floor(e);e=Math.max(0,Math.min(e,t-1));let i=this._columnSections.offsetOf(e);let s=this._columnSections.extentOf(e);let o=this._scrollX;let r=this._scrollX+this.pageWidth-1;let n=0;if(ir){n=s-r+10}if(n===0){return}this.scrollBy(n,0)}scrollToCell(e,t){let i=this._rowSections.count;let s=this._columnSections.count;if(i===0||s===0){return}e=Math.floor(e);t=Math.floor(t);e=Math.max(0,Math.min(e,i-1));t=Math.max(0,Math.min(t,s-1));let o=this._columnSections.offsetOf(t);let r=this._columnSections.extentOf(t);let n=this._rowSections.offsetOf(e);let l=this._rowSections.extentOf(e);let a=this._scrollX;let h=this._scrollX+this.pageWidth-1;let c=this._scrollY;let d=this._scrollY+this.pageHeight-1;let u=0;let f=0;if(oh){u=r-h+10}if(nd){f=l-d+10}if(u===0&&f===0){return}this.scrollBy(u,f)}moveCursor(e){if(!this.dataModel||!this._selectionModel||this._selectionModel.isEmpty){return}const t=this._selectionModel.selections();const i=t.next()&&!t.next();if(i){const t=this._selectionModel.currentSelection();if(t.r1===t.r2&&t.c1===t.c2){const i=e==="down"?1:e==="up"?-1:0;const s=e==="right"?1:e==="left"?-1:0;let o=t.r1+i;let r=t.c1+s;const n=this.dataModel.rowCount("body");const l=this.dataModel.columnCount("body");if(o>=n){o=0;r+=1}else if(o===-1){o=n-1;r-=1}if(r>=l){r=0;o+=1;if(o>=n){o=0}}else if(r===-1){r=l-1;o-=1;if(o===-1){o=n-1}}this._selectionModel.select({r1:o,c1:r,r2:o,c2:r,cursorRow:o,cursorColumn:r,clear:"all"});return}}this._selectionModel.moveCursorWithinSelections(e)}scrollToCursor(){if(!this._selectionModel){return}let e=this._selectionModel.cursorRow;let t=this._selectionModel.cursorColumn;this.scrollToCell(e,t)}scrollBy(e,t){this.scrollTo(this.scrollX+e,this.scrollY+t)}scrollByPage(e){let t=0;let i=0;switch(e){case"up":i=-this.pageHeight;break;case"down":i=this.pageHeight;break;case"left":t=-this.pageWidth;break;case"right":t=this.pageWidth;break;default:throw"unreachable"}this.scrollTo(this.scrollX+t,this.scrollY+i)}scrollByStep(e){let t;let i;let s=this.scrollX;let o=this.scrollY;let r=this._rowSections;let n=this._columnSections;switch(e){case"up":t=r.indexOf(o-1);o=t<0?o:r.offsetOf(t);break;case"down":t=r.indexOf(o);o=t<0?o:r.offsetOf(t)+r.sizeOf(t);break;case"left":i=n.indexOf(s-1);s=i<0?s:n.offsetOf(i);break;case"right":i=n.indexOf(s);s=i<0?s:n.offsetOf(i)+n.sizeOf(i);break;default:throw"unreachable"}this.scrollTo(s,o)}scrollTo(e,t){e=Math.max(0,Math.min(Math.floor(e),this.maxScrollX));t=Math.max(0,Math.min(Math.floor(t),this.maxScrollY));this._hScrollBar.value=e;this._vScrollBar.value=t;m.MessageLoop.postMessage(this._viewport,te.ScrollRequest)}rowCount(e){let t;if(e==="body"){t=this._rowSections.count}else{t=this._columnHeaderSections.count}return t}columnCount(e){let t;if(e==="body"){t=this._columnSections.count}else{t=this._rowHeaderSections.count}return t}rowAt(e,t){if(t<0){return-1}if(e==="column-header"){return this._columnHeaderSections.indexOf(t)}let i=this._rowSections.indexOf(t);if(i>=0){return i}if(!this._stretchLastRow){return-1}let s=this.bodyHeight;let o=this.pageHeight;if(o<=s){return-1}if(t>=o){return-1}return this._rowSections.count-1}columnAt(e,t){if(t<0){return-1}if(e==="row-header"){return this._rowHeaderSections.indexOf(t)}let i=this._columnSections.indexOf(t);if(i>=0){return i}if(!this._stretchLastColumn){return-1}let s=this.bodyWidth;let o=this.pageWidth;if(o<=s){return-1}if(t>=o){return-1}return this._columnSections.count-1}rowOffset(e,t){let i;if(e==="body"){i=this._rowSections.offsetOf(t)}else{i=this._columnHeaderSections.offsetOf(t)}return i}columnOffset(e,t){let i;if(e==="body"){i=this._columnSections.offsetOf(t)}else{i=this._rowHeaderSections.offsetOf(t)}return i}rowSize(e,t){if(e==="column-header"){return this._columnHeaderSections.sizeOf(t)}let i=this._rowSections.sizeOf(t);if(i<0){return i}if(!this._stretchLastRow){return i}if(tn){n=h}if(this._stretchLastRow&&a>l){l=a}if(i>=0&&i=0&&s=0&&s=0&&i=0&&i=0&&s=o&&i=r&&s1){alert("Cannot copy multiple grid selections.");return}let o=e.rowCount("body");let r=e.columnCount("body");if(o===0||r===0){return}let{r1:n,c1:l,r2:a,c2:h}=i[0];n=Math.max(0,Math.min(n,o-1));l=Math.max(0,Math.min(l,r-1));a=Math.max(0,Math.min(a,o-1));h=Math.max(0,Math.min(h,r-1));if(am){let e=`Copying ${w} cells may take a while. Continue?`;if(!window.confirm(e)){return}}let y={region:"body",row:0,column:0,value:null,metadata:{}};let x=new Array(g);for(let s=0;se.join(u)));let C=v.join("\n");s.ClipboardExt.copyText(C)}processMessage(e){if(e.type==="child-shown"||e.type==="child-hidden"){return}if(e.type==="fit-request"){let e=s.ElementExt.sizeLimits(this._vScrollBar.node);let t=s.ElementExt.sizeLimits(this._hScrollBar.node);this._vScrollBarMinWidth=e.minWidth;this._hScrollBarMinHeight=t.minHeight}super.processMessage(e)}messageHook(e,t){if(e===this._viewport){this._processViewportMessage(t);return true}if(e===this._hScrollBar&&t.type==="activate-request"){this.activate();return false}if(e===this._vScrollBar&&t.type==="activate-request"){this.activate();return false}return true}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":this._evtMouseMove(e);break;case"mouseup":this._evtMouseUp(e);break;case"dblclick":this._evtMouseDoubleClick(e);break;case"mouseleave":this._evtMouseLeave(e);break;case"contextmenu":this._evtContextMenu(e);break;case"wheel":this._evtWheel(e);break;case"resize":this._refreshDPI();break}}get currentViewport(){let e=this.viewport.node.offsetWidth;let t=this.viewport.node.offsetHeight;e=Math.round(e);t=Math.round(t);if(e<=0||t<=0){return}const i=this._columnSections.length-this.scrollX;const s=this._rowSections.length-this.scrollY;const o=this.headerWidth;const r=this.headerHeight;const n=o;const l=r;const a=Math.min(e-1,o+i-1);const h=Math.min(t-1,r+s-1);const c=this._rowSections.indexOf(l-r+this.scrollY);const d=this._columnSections.indexOf(n-o+this.scrollX);const u=this._rowSections.indexOf(h-r+this.scrollY);const f=this._columnSections.indexOf(a-o+this.scrollX);return{firstRow:c,firstColumn:d,lastRow:u,lastColumn:f}}onActivateRequest(e){this.viewport.node.focus({preventScroll:true})}onBeforeAttach(e){window.addEventListener("resize",this);this.node.addEventListener("wheel",this);this._viewport.node.addEventListener("keydown",this);this._viewport.node.addEventListener("mousedown",this);this._viewport.node.addEventListener("mousemove",this);this._viewport.node.addEventListener("dblclick",this);this._viewport.node.addEventListener("mouseleave",this);this._viewport.node.addEventListener("contextmenu",this);this.repaintContent();this.repaintOverlay()}onAfterDetach(e){window.removeEventListener("resize",this);this.node.removeEventListener("wheel",this);this._viewport.node.removeEventListener("keydown",this);this._viewport.node.removeEventListener("mousedown",this);this._viewport.node.removeEventListener("mousemove",this);this._viewport.node.removeEventListener("mouseleave",this);this._viewport.node.removeEventListener("dblclick",this);this._viewport.node.removeEventListener("contextmenu",this);this._releaseMouse()}onBeforeShow(e){this.repaintContent();this.repaintOverlay()}onResize(e){if(this._editorController){this._editorController.cancel()}this._syncScrollState()}repaintContent(){let e=new te.PaintRequest("all",0,0,0,0);m.MessageLoop.postMessage(this._viewport,e)}repaintRegion(e,t,i,s,o){let r=new te.PaintRequest(e,t,i,s,o);m.MessageLoop.postMessage(this._viewport,r)}repaintOverlay(){m.MessageLoop.postMessage(this._viewport,te.OverlayPaintRequest)}_getMaxWidthInColumn(e,t){const i=this.dataModel;if(!i){return null}const s=t=="row-header"?"corner-header":"column-header";return Math.max(this._getMaxWidthInArea(i,e,s,"column-header"),this._getMaxWidthInArea(i,e,t,"body"))}_getMaxWidthInArea(e,t,i,s){const o=e.rowCount(s);const r=Array.from({length:Math.min(o,1e6)},((s,o)=>ee._getConfig(e,o,t,i)));if(o>1e5){r.sort((e=>-this._getTextToRender(e).length))}let n=0;for(let l=0;l=e&&r>=t&&o<=i&&r<=s){return}let n=i-512;let l=s-512;this._canvasGC.setTransform(1,0,0,1,0,0);this._bufferGC.setTransform(1,0,0,1,0,0);this._overlayGC.setTransform(1,0,0,1,0,0);if(oi){this._buffer.width=i}if(rs){this._buffer.height=s}let a=o>0&&r>0&&e>0&&t>0;if(a){this._bufferGC.drawImage(this._canvas,0,0)}if(oi){this._canvas.width=i;this._canvas.style.width=`${i/this._dpiRatio}px`}if(rs){this._canvas.height=s;this._canvas.style.height=`${s/this._dpiRatio}px`}if(a){this._canvasGC.drawImage(this._buffer,0,0)}if(a){this._bufferGC.drawImage(this._overlay,0,0)}if(oi){this._overlay.width=i;this._overlay.style.width=`${i/this._dpiRatio}px`}if(rs){this._overlay.height=s;this._overlay.style.height=`${s/this._dpiRatio}px`}if(a){this._overlayGC.drawImage(this._buffer,0,0)}}_syncScrollState(){let e=this.bodyWidth;let t=this.bodyHeight;let i=this.pageWidth;let s=this.pageHeight;let o=!this._vScrollBar.isHidden;let r=!this._hScrollBar.isHidden;let n=this._vScrollBarMinWidth;let l=this._hScrollBarMinHeight;let a=i+(o?n:0);let h=s+(r?l:0);let c=hthis.bodyWidth){let e=this._columnSections.offsetOf(this._columnSections.count-1);let o=Math.min(this.headerWidth+e,s);this.paintContent(o,0,t-o,i)}else if(t>s){this.paintContent(s,0,t-s+1,i)}if(this._stretchLastRow&&this.pageHeight>this.bodyHeight){let e=this._rowSections.offsetOf(this._rowSections.count-1);let s=Math.min(this.headerHeight+e,o);this.paintContent(0,s,t,i-s)}else if(i>o){this.paintContent(0,o,t,i-o+1)}this._paintOverlay()}_onViewportScrollRequest(e){this._scrollTo(this._hScrollBar.value,this._vScrollBar.value)}_onViewportPaintRequest(e){if(!this._viewport.isVisible){return}if(this._viewportWidth===0||this._viewportHeight===0){return}let t=0;let i=0;let s=this._viewportWidth-1;let o=this._viewportHeight-1;let r=this._scrollX;let n=this._scrollY;let l=this.headerWidth;let a=this.headerHeight;let h=this._rowSections;let c=this._columnSections;let d=this._rowHeaderSections;let u=this._columnHeaderSections;let{region:f,r1:_,c1:m,r2:g,c2:p}=e;let w;let y;let x;let v;switch(f){case"all":w=t;y=i;x=s;v=o;break;case"body":_=Math.max(0,Math.min(_,h.count));m=Math.max(0,Math.min(m,c.count));g=Math.max(0,Math.min(g,h.count));p=Math.max(0,Math.min(p,c.count));w=c.offsetOf(m)-r+l;y=h.offsetOf(_)-n+a;x=c.extentOf(p)-r+l;v=h.extentOf(g)-n+a;break;case"row-header":_=Math.max(0,Math.min(_,h.count));m=Math.max(0,Math.min(m,d.count));g=Math.max(0,Math.min(g,h.count));p=Math.max(0,Math.min(p,d.count));w=d.offsetOf(m);y=h.offsetOf(_)-n+a;x=d.extentOf(p);v=h.extentOf(g)-n+a;break;case"column-header":_=Math.max(0,Math.min(_,u.count));m=Math.max(0,Math.min(m,c.count));g=Math.max(0,Math.min(g,u.count));p=Math.max(0,Math.min(p,c.count));w=c.offsetOf(m)-r+l;y=u.offsetOf(_);x=c.extentOf(p)-r+l;v=u.extentOf(g);break;case"corner-header":_=Math.max(0,Math.min(_,u.count));m=Math.max(0,Math.min(m,d.count));g=Math.max(0,Math.min(g,u.count));p=Math.max(0,Math.min(p,d.count));w=d.offsetOf(m);y=u.offsetOf(_);x=d.extentOf(p);v=u.extentOf(g);break;default:throw"unreachable"}if(xs||y>o){return}w=Math.max(t,Math.min(w,s));y=Math.max(i,Math.min(y,o));x=Math.max(t,Math.min(x,s));v=Math.max(i,Math.min(v,o));this.paintContent(w,y,x-w+1,v-y+1)}_onViewportOverlayPaintRequest(e){if(!this._viewport.isVisible){return}if(this._viewportWidth===0||this._viewportHeight===0){return}this._paintOverlay()}_onViewportRowResizeRequest(e){if(e.region==="body"){this._resizeRow(e.index,e.size)}else{this._resizeColumnHeader(e.index,e.size)}}_onViewportColumnResizeRequest(e){if(e.region==="body"){this._resizeColumn(e.index,e.size)}else{this._resizeRowHeader(e.index,e.size)}}_onThumbMoved(e){m.MessageLoop.postMessage(this._viewport,te.ScrollRequest)}_onPageRequested(e,t){if(e===this._vScrollBar){this.scrollByPage(t==="decrement"?"up":"down")}else{this.scrollByPage(t==="decrement"?"left":"right")}}_onStepRequested(e,t){if(e===this._vScrollBar){this.scrollByStep(t==="decrement"?"up":"down")}else{this.scrollByStep(t==="decrement"?"left":"right")}}_onDataModelChanged(e,t){switch(t.type){case"rows-inserted":this._onRowsInserted(t);break;case"columns-inserted":this._onColumnsInserted(t);break;case"rows-removed":this._onRowsRemoved(t);break;case"columns-removed":this._onColumnsRemoved(t);break;case"rows-moved":this._onRowsMoved(t);break;case"columns-moved":this._onColumnsMoved(t);break;case"cells-changed":this._onCellsChanged(t);break;case"model-reset":this._onModelReset(t);break;default:throw"unreachable"}}_onSelectionsChanged(e){this.repaintOverlay()}_onRowsInserted(e){let{region:t,index:i,span:s}=e;if(s<=0){return}let o;if(t==="body"){o=this._rowSections}else{o=this._columnHeaderSections}if(this._scrollY===this.maxScrollY&&this.maxScrollY>0){o.insert(i,s);this._scrollY=this.maxScrollY}else{o.insert(i,s)}this._syncViewport()}_onColumnsInserted(e){let{region:t,index:i,span:s}=e;if(s<=0){return}let o;if(t==="body"){o=this._columnSections}else{o=this._rowHeaderSections}if(this._scrollX===this.maxScrollX&&this.maxScrollX>0){o.insert(i,s);this._scrollX=this.maxScrollX}else{o.insert(i,s)}this._syncViewport()}_onRowsRemoved(e){let{region:t,index:i,span:s}=e;if(s<=0){return}let o;if(t==="body"){o=this._rowSections}else{o=this._columnHeaderSections}if(i<0||i>=o.count){return}if(this._scrollY===this.maxScrollY&&this.maxScrollY>0){o.remove(i,s);this._scrollY=this.maxScrollY}else{o.remove(i,s)}this._syncViewport()}_onColumnsRemoved(e){let{region:t,index:i,span:s}=e;if(s<=0){return}let o;if(t==="body"){o=this._columnSections}else{o=this._rowHeaderSections}if(i<0||i>=o.count){return}if(this._scrollX===this.maxScrollX&&this.maxScrollX>0){o.remove(i,s);this._scrollX=this.maxScrollX}else{o.remove(i,s)}this._syncViewport()}_onRowsMoved(e){let{region:t,index:i,span:s,destination:o}=e;if(s<=0){return}let r;if(t==="body"){r=this._rowSections}else{r=this._columnHeaderSections}if(i<0||i>=r.count){return}s=Math.min(s,r.count-i);o=Math.min(Math.max(0,o),r.count-s);if(i===o){return}let n=Math.min(i,o);let l=Math.max(i+s-1,o+s-1);r.move(i,s,o);if(t==="body"){this.repaintRegion("body",n,0,l,Infinity);this.repaintRegion("row-header",n,0,l,Infinity)}else{this.repaintRegion("column-header",n,0,l,Infinity);this.repaintRegion("corner-header",n,0,l,Infinity)}this._syncViewport()}_onColumnsMoved(e){let{region:t,index:i,span:s,destination:o}=e;if(s<=0){return}let r;if(t==="body"){r=this._columnSections}else{r=this._rowHeaderSections}if(i<0||i>=r.count){return}s=Math.min(s,r.count-i);o=Math.min(Math.max(0,o),r.count-s);if(i===o){return}r.move(i,s,o);let n=Math.min(i,o);let l=Math.max(i+s-1,o+s-1);if(t==="body"){this.repaintRegion("body",0,n,Infinity,l);this.repaintRegion("column-header",0,n,Infinity,l)}else{this.repaintRegion("row-header",0,n,Infinity,l);this.repaintRegion("corner-header",0,n,Infinity,l)}this._syncViewport()}_onCellsChanged(e){let{region:t,row:i,column:s,rowSpan:o,columnSpan:r}=e;if(o<=0&&r<=0){return}let n=i;let l=s;let a=n+o-1;let h=l+r-1;this.repaintRegion(t,n,l,a,h)}_onModelReset(e){let t=this._rowSections.count;let i=this._columnSections.count;let s=this._rowHeaderSections.count;let o=this._columnHeaderSections.count;let r=this._dataModel.rowCount("body")-t;let n=this._dataModel.columnCount("body")-i;let l=this._dataModel.columnCount("row-header")-s;let a=this._dataModel.rowCount("column-header")-o;if(r>0){this._rowSections.insert(t,r)}else if(r<0){this._rowSections.remove(t+r,-r)}if(n>0){this._columnSections.insert(i,n)}else if(n<0){this._columnSections.remove(i+n,-n)}if(l>0){this._rowHeaderSections.insert(s,l)}else if(l<0){this._rowHeaderSections.remove(s+l,-l)}if(a>0){this._columnHeaderSections.insert(o,a)}else if(a<0){this._columnHeaderSections.remove(o+a,-a)}this._syncViewport()}_onRenderersChanged(){this.repaintContent()}_evtKeyDown(e){if(this._mousedown){e.preventDefault();e.stopPropagation()}else if(this._keyHandler){this._keyHandler.onKeyDown(this,e)}}_evtMouseDown(e){if(e.button!==0){return}this.activate();e.preventDefault();e.stopPropagation();document.addEventListener("keydown",this,true);document.addEventListener("mouseup",this,true);document.addEventListener("mousedown",this,true);document.addEventListener("mousemove",this,true);document.addEventListener("contextmenu",this,true);this._mousedown=true;if(this._mouseHandler){this._mouseHandler.onMouseDown(this,e)}}_evtMouseMove(e){if(this._mousedown){e.preventDefault();e.stopPropagation()}if(!this._mouseHandler){return}if(this._mousedown){this._mouseHandler.onMouseMove(this,e)}else{this._mouseHandler.onMouseHover(this,e)}}_evtMouseUp(e){if(e.button!==0){return}e.preventDefault();e.stopPropagation();if(this._mouseHandler){this._mouseHandler.onMouseUp(this,e)}this._releaseMouse()}_evtMouseDoubleClick(e){if(e.button!==0){return}e.preventDefault();e.stopPropagation();if(this._mouseHandler){this._mouseHandler.onMouseDoubleClick(this,e)}this._releaseMouse()}_evtMouseLeave(e){if(this._mousedown){e.preventDefault();e.stopPropagation()}else if(this._mouseHandler){this._mouseHandler.onMouseLeave(this,e)}}_evtContextMenu(e){if(this._mousedown){e.preventDefault();e.stopPropagation()}else if(this._mouseHandler){this._mouseHandler.onContextMenu(this,e)}}_evtWheel(e){if(s.Platform.accelKey(e)){return}if(!this._mouseHandler){return}this._mouseHandler.onWheel(this,e)}_releaseMouse(){this._mousedown=false;if(this._mouseHandler){this._mouseHandler.release()}document.removeEventListener("keydown",this,true);document.removeEventListener("mouseup",this,true);document.removeEventListener("mousedown",this,true);document.removeEventListener("mousemove",this,true);document.removeEventListener("contextmenu",this,true)}_refreshDPI(){let e=Math.ceil(window.devicePixelRatio);if(this._dpiRatio===e){return}this._dpiRatio=e;this.repaintContent();this.repaintOverlay();this._resizeCanvasIfNeeded(this._viewportWidth,this._viewportHeight);this._canvas.style.width=`${this._canvas.width/this._dpiRatio}px`;this._canvas.style.height=`${this._canvas.height/this._dpiRatio}px`;this._overlay.style.width=`${this._overlay.width/this._dpiRatio}px`;this._overlay.style.height=`${this._overlay.height/this._dpiRatio}px`}_resizeRow(e,t){let i=this._rowSections;if(e<0||e>=i.count){return}let s=i.sizeOf(e);let o=i.clampSize(t);if(s===o){return}i.resize(e,o);let r=this._viewportWidth;let n=this._viewportHeight;if(!this._viewport.isVisible||r===0||n===0){this._syncScrollState();return}let l=o-s;let a=this.headerHeight;let h=i.offsetOf(e)+a-this._scrollY;if(a>=n||h>=n){this._syncScrollState();return}if(h+s<=a){this._scrollY+=l;this._syncScrollState();return}let c=Math.max(a,h);if(h+s>=n||h+o>=n){this.paintContent(0,c,r,n-c);this._paintOverlay();this._syncScrollState();return}let d=0;let u=r;let f=0;let _;let m;let g;if(h+o<=a){_=a-l;m=n-_;g=a}else{_=h+s;m=n-_;g=_+l}this._blitContent(this._canvas,d,_,u,m,f,g);if(o>0&&h+o>a){this.paintContent(0,c,r,h+o-c)}if(this._stretchLastRow&&this.pageHeight>this.bodyHeight){let e=this._rowSections.count-1;let t=a+this._rowSections.offsetOf(e);this.paintContent(0,t,r,n-t)}else if(l<0){this.paintContent(0,n+l,r,-l)}for(const p of["body","row-header"]){const t=S.getCellGroupsAtRow(this.dataModel,p,e);let i={region:p,xMin:0,xMax:0,yMin:0,yMax:0};let s=undefined;switch(p){case"body":i.xMin=this.headerWidth;i.xMax=this.headerWidth+this.bodyWidth;i.yMin=this.headerHeight;i.yMax=this.headerHeight+this.bodyHeight;s=this._style.backgroundColor;break;case"row-header":i.xMin=0;i.xMax=this.headerWidth;i.yMin=this.headerHeight;i.yMax=this.headerHeight+this.bodyHeight;s=this._style.headerBackgroundColor;break}this._paintMergedCells(t,i,s)}this._paintOverlay();this._syncScrollState()}_resizeColumn(e,t){let i=this._columnSections;if(e<0||e>=i.count){return}const s=t!==null&&t!==void 0?t:this._getMaxWidthInColumn(e,"body");if(!s||s==0){return}let o=i.sizeOf(e);let r=i.clampSize(s);if(o===r){return}i.resize(e,r);let n=this._viewportWidth;let l=this._viewportHeight;if(!this._viewport.isVisible||n===0||l===0){this._syncScrollState();return}let a=r-o;let h=this.headerWidth;let c=i.offsetOf(e)+h-this._scrollX;if(h>=n||c>=n){this._syncScrollState();return}if(c+o<=h){this._scrollX+=a;this._syncScrollState();return}let d=Math.max(h,c);if(c+o>=n||c+r>=n){this.paintContent(d,0,n-d,l);this._paintOverlay();this._syncScrollState();return}let u=0;let f=l;let _=0;let m;let g;let p;if(c+r<=h){m=h-a;g=n-m;p=h}else{m=c+o;g=n-m;p=m+a}this._blitContent(this._canvas,m,u,g,f,p,_);if(r>0&&c+r>h){this.paintContent(d,0,c+r-d,l)}if(this._stretchLastColumn&&this.pageWidth>this.bodyWidth){let e=this._columnSections.count-1;let t=h+this._columnSections.offsetOf(e);this.paintContent(t,0,n-t,l)}else if(a<0){this.paintContent(n+a,0,-a,l)}for(const w of["body","column-header"]){const t=S.getCellGroupsAtColumn(this.dataModel,w,e);let i={region:w,xMin:0,xMax:0,yMin:0,yMax:0};let s=undefined;switch(w){case"body":i.xMin=this.headerWidth;i.xMax=this.headerWidth+this.bodyWidth;i.yMin=this.headerHeight;i.yMax=this.headerHeight+this.bodyHeight;s=this._style.backgroundColor;break;case"column-header":i.xMin=this.headerWidth;i.xMax=this.headerWidth+this.bodyWidth;i.yMin=0;i.yMax=this.headerHeight;s=this._style.headerBackgroundColor;break}this._paintMergedCells(t,i,s)}this._paintOverlay();this._syncScrollState()}_resizeRowHeader(e,t){let i=this._rowHeaderSections;if(e<0||e>=i.count){return}const s=t!==null&&t!==void 0?t:this._getMaxWidthInColumn(e,"row-header");if(!s||s==0){return}let o=i.sizeOf(e);let r=i.clampSize(s);if(o===r){return}i.resize(e,r);let n=this._viewportWidth;let l=this._viewportHeight;if(!this._viewport.isVisible||n===0||l===0){this._syncScrollState();return}let a=r-o;let h=i.offsetOf(e);if(h>=n){this._syncScrollState();return}if(h+o>=n||h+r>=n){this.paintContent(h,0,n-h,l);this._paintOverlay();this._syncScrollState();return}let c=h+o;let d=0;let u=n-c;let f=l;let _=c+a;let m=0;this._blitContent(this._canvas,c,d,u,f,_,m);if(r>0){this.paintContent(h,0,r,l)}if(this._stretchLastColumn&&this.pageWidth>this.bodyWidth){let e=this._columnSections.count-1;let t=this.headerWidth+this._columnSections.offsetOf(e);this.paintContent(t,0,n-t,l)}else if(a<0){this.paintContent(n+a,0,-a,l)}for(const g of["corner-header","row-header"]){const t=S.getCellGroupsAtColumn(this.dataModel,g,e);let i={region:g,xMin:0,xMax:0,yMin:0,yMax:0};switch(g){case"corner-header":i.xMin=0;i.xMax=this.headerWidth;i.yMin=0;i.yMax=this.headerHeight;break;case"row-header":i.xMin=0;i.xMax=this.headerWidth;i.yMin=this.headerHeight;i.yMax=this.headerHeight+this.bodyHeight;break}this._paintMergedCells(t,i,this._style.headerBackgroundColor)}this._paintOverlay();this._syncScrollState()}_resizeColumnHeader(e,t){let i=this._columnHeaderSections;if(e<0||e>=i.count){return}let s=i.sizeOf(e);let o=i.clampSize(t);if(s===o){return}i.resize(e,o);let r=this._viewportWidth;let n=this._viewportHeight;if(!this._viewport.isVisible||r===0||n===0){this._syncScrollState();return}this._paintOverlay();let l=o-s;let a=i.offsetOf(e);if(a>=n){this._syncScrollState();return}if(a+s>=n||a+o>=n){this.paintContent(0,a,r,n-a);this._paintOverlay();this._syncScrollState();return}let h=0;let c=a+s;let d=r;let u=n-c;let f=0;let _=c+l;this._blitContent(this._canvas,h,c,d,u,f,_);if(o>0){this.paintContent(0,a,r,o)}if(this._stretchLastRow&&this.pageHeight>this.bodyHeight){let e=this._rowSections.count-1;let t=this.headerHeight+this._rowSections.offsetOf(e);this.paintContent(0,t,r,n-t)}else if(l<0){this.paintContent(0,n+l,r,-l)}for(const m of["corner-header","column-header"]){const t=S.getCellGroupsAtRow(this.dataModel,m,e);let i={region:m,xMin:0,xMax:0,yMin:0,yMax:0};switch(m){case"corner-header":i.xMin=0;i.xMax=this.headerWidth;i.yMin=0;i.yMax=this.headerHeight;break;case"column-header":i.xMin=this.headerWidth;i.xMax=this.headerWidth+this.bodyWidth;i.yMin=0;i.yMax=this.headerHeight;break}this._paintMergedCells(t,i,this._style.headerBackgroundColor)}this._paintOverlay();this._syncScrollState()}_scrollTo(e,t){if(!this.dataModel){return}e=Math.max(0,Math.min(Math.floor(e),this.maxScrollX));t=Math.max(0,Math.min(Math.floor(t),this.maxScrollY));this._hScrollBar.value=e;this._vScrollBar.value=t;let i=e-this._scrollX;let s=t-this._scrollY;if(i===0&&s===0){return}if(!this._viewport.isVisible){this._scrollX=e;this._scrollY=t;return}let o=this._viewportWidth;let r=this._viewportHeight;if(o===0||r===0){this._scrollX=e;this._scrollY=t;return}let n=this.headerWidth;let l=this.headerHeight;let a=o-n;let h=r-l;if(a<=0&&h<=0){this._scrollX=e;this._scrollY=t;return}let c=0;if(i!==0&&a>0){if(Math.abs(i)>=a){c=a*r}else{c=Math.abs(i)*r}}let d=0;if(s!==0&&h>0){if(Math.abs(s)>=h){d=o*h}else{d=o*Math.abs(s)}}if(c+d>=o*r){this._scrollX=e;this._scrollY=t;this.paintContent(0,0,o,r);this._paintOverlay();return}this._scrollY=t;if(s!==0&&h>0){if(Math.abs(s)>=h){this.paintContent(0,l,o,h)}else{const e=0;const t=s<0?l:l+s;const i=o;const n=h-Math.abs(s);this._blitContent(this._canvas,e,t,i,n,e,t-s);this.paintContent(0,s<0?l:r-s,o,Math.abs(s));for(const s of["body","row-header"]){const e=S.getCellGroupsAtRegion(this.dataModel,s);let t={region:s,xMin:0,xMax:0,yMin:0,yMax:0};let i=undefined;switch(s){case"body":t.xMin=this.headerWidth;t.xMax=this.headerWidth+this.bodyWidth;t.yMin=this.headerHeight;t.yMax=this.headerHeight+this.bodyHeight;i=this._style.backgroundColor;break;case"row-header":t.xMin=0;t.xMax=this.headerWidth;t.yMin=this.headerHeight;t.yMax=this.headerHeight+this.bodyHeight;i=this._style.headerBackgroundColor;break}this._paintMergedCells(e,t,i)}}}this._scrollX=e;if(i!==0&&a>0){if(Math.abs(i)>=a){this.paintContent(n,0,a,r)}else{const e=i<0?n:n+i;const t=0;const s=a-Math.abs(i);const l=r;this._blitContent(this._canvas,e,t,s,l,e-i,t);this.paintContent(i<0?n:o-i,0,Math.abs(i),r);for(const i of["body","column-header"]){const e=S.getCellGroupsAtRegion(this.dataModel,i);let t={region:i,xMin:0,xMax:0,yMin:0,yMax:0};let s=undefined;switch(i){case"body":t.xMin=this.headerWidth;t.xMax=this.headerWidth+this.bodyWidth;t.yMin=this.headerHeight;t.yMax=this.headerHeight+this.bodyHeight;s=this._style.backgroundColor;break;case"column-header":t.xMin=this.headerWidth;t.xMax=this.headerWidth+this.bodyWidth;t.yMin=0;t.yMax=this.headerHeight;s=this._style.headerBackgroundColor;break}this._paintMergedCells(e,t,s)}}}this._paintOverlay()}_blitContent(e,t,i,s,o,r,n){t*=this._dpiRatio;i*=this._dpiRatio;s*=this._dpiRatio;o*=this._dpiRatio;r*=this._dpiRatio;n*=this._dpiRatio;this._canvasGC.save();this._canvasGC.setTransform(1,0,0,1,0,0);this._canvasGC.drawImage(e,t,i,s,o,r,n,s,o);this._canvasGC.restore()}paintContent(e,t,i,s){this._canvasGC.setTransform(this._dpiRatio,0,0,this._dpiRatio,0,0);this._bufferGC.setTransform(this._dpiRatio,0,0,this._dpiRatio,0,0);this._canvasGC.clearRect(e,t,i,s);this._drawVoidRegion(e,t,i,s);this._drawBodyRegion(e,t,i,s);this._drawRowHeaderRegion(e,t,i,s);this._drawColumnHeaderRegion(e,t,i,s);this.drawCornerHeaderRegion(e,t,i,s)}_fitBodyColumnHeaders(e,t,i){const s=i===undefined?e.columnCount("body"):i;for(let o=0;o=n+o){return}if(t>=l+r){return}let a=this.bodyHeight;let h=this.bodyWidth;let c=this.pageHeight;let d=this.pageWidth;let u=Math.max(e,n);let f=Math.max(t,l);let _=Math.min(e+i-1,n+o-1);let m=Math.min(t+s-1,l+r-1);let g=this._rowSections.indexOf(f-l+this._scrollY);let p=this._columnSections.indexOf(u-n+this._scrollX);let w=this._rowSections.indexOf(m-l+this._scrollY);let y=this._columnSections.indexOf(_-n+this._scrollX);let x=this._rowSections.count-1;let v=this._columnSections.count-1;if(w<0){w=x}if(y<0){y=v}let C=this._columnSections.offsetOf(p)+n-this._scrollX;let M=this._rowSections.offsetOf(g)+l-this._scrollY;let b=0;let H=0;let R=new Array(w-g+1);let z=new Array(y-p+1);for(let S=g;S<=w;++S){let e=this._rowSections.sizeOf(S);R[S-g]=e;H+=e}for(let S=p;S<=y;++S){let e=this._columnSections.sizeOf(S);z[S-p]=e;b+=e}if(this._stretchLastRow&&c>a&&w===x){let e=this.pageHeight-this.bodyHeight;R[R.length-1]+=e;H+=e;m+=e}if(this._stretchLastColumn&&d>h&&y===v){let e=this.pageWidth-this.bodyWidth;z[z.length-1]+=e;b+=e;_+=e}let O={region:"body",xMin:u,yMin:f,xMax:_,yMax:m,x:C,y:M,width:b,height:H,row:g,column:p,rowSizes:R,columnSizes:z};this._drawBackground(O,this._style.backgroundColor);this._drawRowBackground(O,this._style.rowBackgroundColor);this._drawColumnBackground(O,this._style.columnBackgroundColor);this._drawCells(O);this._drawHorizontalGridLines(O,this._style.horizontalGridLineColor||this._style.gridLineColor);this._drawVerticalGridLines(O,this._style.verticalGridLineColor||this._style.gridLineColor);const k=S.getCellGroupsAtRegion(this.dataModel,O.region).filter((e=>this.cellGroupInteresectsRegion(e,O)));this._paintMergedCells(k,O,this._style.backgroundColor)}_drawRowHeaderRegion(e,t,i,s){let o=this.headerWidth;let r=this.bodyHeight-this._scrollY;if(o<=0||r<=0){return}let n=0;let l=this.headerHeight;if(e+i<=n){return}if(t+s<=l){return}if(e>=n+o){return}if(t>=l+r){return}let a=this.bodyHeight;let h=this.pageHeight;let c=e;let d=Math.max(t,l);let u=Math.min(e+i-1,n+o-1);let f=Math.min(t+s-1,l+r-1);let _=this._rowSections.indexOf(d-l+this._scrollY);let m=this._rowHeaderSections.indexOf(c);let g=this._rowSections.indexOf(f-l+this._scrollY);let p=this._rowHeaderSections.indexOf(u);let w=this._rowSections.count-1;let y=this._rowHeaderSections.count-1;if(g<0){g=w}if(p<0){p=y}let x=this._rowHeaderSections.offsetOf(m);let v=this._rowSections.offsetOf(_)+l-this._scrollY;let C=0;let M=0;let b=new Array(g-_+1);let H=new Array(p-m+1);for(let S=_;S<=g;++S){let e=this._rowSections.sizeOf(S);b[S-_]=e;M+=e}for(let S=m;S<=p;++S){let e=this._rowHeaderSections.sizeOf(S);H[S-m]=e;C+=e}if(this._stretchLastRow&&h>a&&g===w){let e=this.pageHeight-this.bodyHeight;b[b.length-1]+=e;M+=e;f+=e}let R={region:"row-header",xMin:c,yMin:d,xMax:u,yMax:f,x,y:v,width:C,height:M,row:_,column:m,rowSizes:b,columnSizes:H};this._drawBackground(R,this._style.headerBackgroundColor);this._drawCells(R);this._drawHorizontalGridLines(R,this._style.headerHorizontalGridLineColor||this._style.headerGridLineColor);this._drawVerticalGridLines(R,this._style.headerVerticalGridLineColor||this._style.headerGridLineColor);const z=S.getCellGroupsAtRegion(this.dataModel,R.region).filter((e=>this.cellGroupInteresectsRegion(e,R)));this._paintMergedCells(z,R,this._style.headerBackgroundColor)}_drawColumnHeaderRegion(e,t,i,s){let o=this.bodyWidth-this._scrollX;let r=this.headerHeight;if(o<=0||r<=0){return}let n=this.headerWidth;let l=0;if(e+i<=n){return}if(t+s<=l){return}if(e>=n+o){return}if(t>=l+r){return}let a=this.bodyWidth;let h=this.pageWidth;let c=Math.max(e,n);let d=t;let u=Math.min(e+i-1,n+o-1);let f=Math.min(t+s-1,l+r-1);let _=this._columnHeaderSections.indexOf(d);let m=this._columnSections.indexOf(c-n+this._scrollX);let g=this._columnHeaderSections.indexOf(f);let p=this._columnSections.indexOf(u-n+this._scrollX);let w=this._columnHeaderSections.count-1;let y=this._columnSections.count-1;if(g<0){g=w}if(p<0){p=y}let x=this._columnSections.offsetOf(m)+n-this._scrollX;let v=this._columnHeaderSections.offsetOf(_);let C=0;let M=0;let b=new Array(g-_+1);let H=new Array(p-m+1);for(let S=_;S<=g;++S){let e=this._columnHeaderSections.sizeOf(S);b[S-_]=e;M+=e}for(let S=m;S<=p;++S){let e=this._columnSections.sizeOf(S);H[S-m]=e;C+=e}if(this._stretchLastColumn&&h>a&&p===y){let e=this.pageWidth-this.bodyWidth;H[H.length-1]+=e;C+=e;u+=e}let R={region:"column-header",xMin:c,yMin:d,xMax:u,yMax:f,x,y:v,width:C,height:M,row:_,column:m,rowSizes:b,columnSizes:H};this._drawBackground(R,this._style.headerBackgroundColor);this._drawCells(R);this._drawHorizontalGridLines(R,this._style.headerHorizontalGridLineColor||this._style.headerGridLineColor);this._drawVerticalGridLines(R,this._style.headerVerticalGridLineColor||this._style.headerGridLineColor);const z=S.getCellGroupsAtRegion(this.dataModel,R.region).filter((e=>this.cellGroupInteresectsRegion(e,R)));this._paintMergedCells(z,R,this._style.headerBackgroundColor)}drawCornerHeaderRegion(e,t,i,s){let o=this.headerWidth;let r=this.headerHeight;if(o<=0||r<=0){return}let n=0;let l=0;if(e+i<=n){return}if(t+s<=l){return}if(e>=n+o){return}if(t>=l+r){return}let a=e;let h=t;let c=Math.min(e+i-1,n+o-1);let d=Math.min(t+s-1,l+r-1);let u=this._columnHeaderSections.indexOf(h);let f=this._rowHeaderSections.indexOf(a);let _=this._columnHeaderSections.indexOf(d);let m=this._rowHeaderSections.indexOf(c);if(_<0){_=this._columnHeaderSections.count-1}if(m<0){m=this._rowHeaderSections.count-1}let g=this._rowHeaderSections.offsetOf(f);let p=this._columnHeaderSections.offsetOf(u);let w=0;let y=0;let x=new Array(_-u+1);let v=new Array(m-f+1);for(let S=u;S<=_;++S){let e=this._columnHeaderSections.sizeOf(S);x[S-u]=e;y+=e}for(let S=f;S<=m;++S){let e=this._rowHeaderSections.sizeOf(S);v[S-f]=e;w+=e}let C={region:"corner-header",xMin:a,yMin:h,xMax:c,yMax:d,x:g,y:p,width:w,height:y,row:u,column:f,rowSizes:x,columnSizes:v};this._drawBackground(C,this._style.headerBackgroundColor);this._drawCells(C);this._drawHorizontalGridLines(C,this._style.headerHorizontalGridLineColor||this._style.headerGridLineColor);this._drawVerticalGridLines(C,this._style.headerVerticalGridLineColor||this._style.headerGridLineColor);const M=S.getCellGroupsAtRegion(this.dataModel,C.region).filter((e=>this.cellGroupInteresectsRegion(e,C)));this._paintMergedCells(M,C,this._style.headerBackgroundColor)}_drawBackground(e,t){if(!t){return}let{xMin:i,yMin:s,xMax:o,yMax:r}=e;this._canvasGC.fillStyle=t;this._canvasGC.fillRect(i,s,o-i+1,r-s+1)}_drawRowBackground(e,t){if(!t){return}let i=Math.max(e.xMin,e.x);let s=Math.min(e.x+e.width-1,e.xMax);for(let o=e.y,r=0,n=e.rowSizes.length;r{const t=d;const i=d+1;const s=h;const o=h+1;this.repaintRegion(e.region,t,s,i,o)}))}}else{_.paint(s,t)}}catch(r){console.error(r)}s.restore();let m=Math.max(e.xMin,t.x);let g=Math.min(t.x+t.width-1,e.xMax);let p=Math.max(e.yMin,t.y);let w=Math.min(t.y+t.height-1,e.yMax);this._blitContent(this._buffer,m,p,g-m+1,w-p+1,m,p);l+=o}s.restore();n+=a}s.dispose();this._bufferGC.restore()}cellGroupInteresectsRegion(e,t){const i=t.row;const s=t.row+t.rowSizes.length;const o=t.column;const r=t.column+t.columnSizes.length;const n=Math.min(e.r2,s)-Math.max(e.r1,i);const l=Math.min(e.c2,r)-Math.max(e.c1,o);return n>=0&&l>=0}static _getCellValue(e,t,i,s){try{return e.data(t,i,s)}catch(o){console.error(o);return null}}static _getCellMetadata(e,t,i,s){try{return e.metadata(t,i,s)}catch(o){console.error(o);return q.emptyMetadata}}_paintMergedCells(e,t,i){if(!this._dataModel){return}let s={x:0,y:0,width:0,height:0,region:t.region,row:0,column:0,value:null,metadata:q.emptyMetadata};if(i){this._canvasGC.fillStyle=i}this._canvasGC.lineWidth=1;this._bufferGC.save();let o=new $(this._bufferGC);for(const n of e){let e=0;for(let i=n.c1;i<=n.c2;i++){e+=this._getColumnSize(t.region,i)}let l=0;for(let i=n.r1;i<=n.r2;i++){l+=this._getRowSize(t.region,i)}let a=ee._getCellValue(this.dataModel,t.region,n.r1,n.c1);let h=ee._getCellMetadata(this.dataModel,t.region,n.r1,n.c2);let c=0;let d=0;switch(t.region){case"body":c=this._columnSections.offsetOf(n.c1)+this.headerWidth-this._scrollX;d=this._rowSections.offsetOf(n.r1)+this.headerHeight-this._scrollY;break;case"column-header":c=this._columnSections.offsetOf(n.c1)+this.headerWidth-this._scrollX;d=this._rowSections.offsetOf(n.r1);break;case"row-header":c=this._columnSections.offsetOf(n.c1);d=this._rowSections.offsetOf(n.r1)+this.headerHeight-this._scrollY;break;case"corner-header":c=this._columnSections.offsetOf(n.c1);d=this._rowSections.offsetOf(n.r1);break}s.x=c;s.y=d;s.width=e;s.height=l;s.region=t.region;s.row=n.r1;s.column=n.c1;s.value=a;s.metadata=h;const u=Math.max(t.xMin,c);const f=Math.min(c+e-2,t.xMax);const _=Math.max(t.yMin,d);const m=Math.min(d+l-2,t.yMax);if(f<=u||m<=_){continue}if(i){this._canvasGC.fillRect(u,_,f-u+1,m-_+1)}let g=this._cellRenderers.get(s);o.clearRect(s.x,s.y,e,l);o.save();try{if(g instanceof k){if(g.isReady(s)){g.paint(o,s)}else{g.paintPlaceholder(o,s);const e=n.r1;const i=n.r2;const r=n.c1;const l=n.c2;g.load(s).then((()=>{this.repaintRegion(t.region,e,r,i,l)}))}}else{g.paint(o,s)}}catch(r){console.error(r)}o.restore();this._blitContent(this._buffer,u,_,f-u+1,m-_+1,u,_)}o.dispose();this._bufferGC.restore()}_drawHorizontalGridLines(e,t){if(!t){return}const i=Math.max(e.xMin,e.x);const s=Math.min(e.x+e.width,e.xMax+1);this._canvasGC.beginPath();this._canvasGC.lineWidth=1;const o=this.bodyHeight;const r=this.pageHeight;let n=e.rowSizes.length;if(this._stretchLastRow&&r>o){if(e.row+n===this._rowSections.count){n-=1}}for(let l=e.y,a=0;a=e.yMin&&o<=e.yMax){this._canvasGC.moveTo(i,o+.5);this._canvasGC.lineTo(s,o+.5)}l+=t}this._canvasGC.strokeStyle=t;this._canvasGC.stroke()}_drawVerticalGridLines(e,t){if(!t){return}const i=Math.max(e.yMin,e.y);const s=Math.min(e.y+e.height,e.yMax+1);this._canvasGC.beginPath();this._canvasGC.lineWidth=1;const o=this.bodyWidth;const r=this.pageWidth;let n=e.columnSizes.length;if(this._stretchLastColumn&&r>o){if(e.column+n===this._columnSections.count){n-=1}}for(let l=e.x,a=0;a=e.xMin&&o<=e.xMax){this._canvasGC.moveTo(o+.5,i);this._canvasGC.lineTo(o+.5,s)}l+=t}this._canvasGC.strokeStyle=t;this._canvasGC.stroke()}_drawBodySelections(){let e=this._selectionModel;if(!e||e.isEmpty){return}let t=this._style.selectionFillColor;let i=this._style.selectionBorderColor;if(!t&&!i){return}let s=this._scrollX;let o=this._scrollY;let r=this._rowSections.indexOf(o);let n=this._columnSections.indexOf(s);if(r<0||n<0){return}let l=this.bodyWidth;let a=this.bodyHeight;let h=this.pageWidth;let c=this.pageHeight;let d=this.headerWidth;let u=this.headerHeight;let f=this._rowSections.indexOf(o+c);let _=this._columnSections.indexOf(s+h);let m=this._rowSections.count-1;let g=this._columnSections.count-1;f=f<0?m:f;_=_<0?g:_;let p=this._overlayGC;p.save();p.beginPath();p.rect(d,u,h,c);p.clip();if(t){p.fillStyle=t}if(i){p.strokeStyle=i;p.lineWidth=1}for(let w of e.selections()){if(w.r1f&&w.r2>f){continue}if(w.c1_&&w.c2>_){continue}let e=Math.max(0,Math.min(w.r1,m));let y=Math.max(0,Math.min(w.c1,g));let x=Math.max(0,Math.min(w.r2,m));let v=Math.max(0,Math.min(w.c2,g));let C;if(e>x){C=e;e=x;x=C}if(y>v){C=y;y=v;v=C}const M=S.joinCellGroupWithMergedCellGroups(this.dataModel,{r1:e,r2:x,c1:y,c2:v},"body");e=M.r1;x=M.r2;y=M.c1;v=M.c2;let b=this._columnSections.offsetOf(y)-s+d;let H=this._rowSections.offsetOf(e)-o+u;let R=this._columnSections.extentOf(v)-s+d;let z=this._rowSections.extentOf(x)-o+u;if(this._stretchLastColumn&&h>l&&v===g){R=d+h-1}if(this._stretchLastRow&&c>a&&x===m){z=u+c-1}b=Math.max(d-1,b);H=Math.max(u-1,H);R=Math.min(d+h+1,R);z=Math.min(u+c+1,z);if(Ro&&f===c){u=l+r-d}if(u===0){continue}if(t){h.fillRect(0,d,n,u)}if(i){h.beginPath();h.moveTo(n-.5,d-1);h.lineTo(n-.5,d+u);h.stroke()}}h.restore()}_drawColumnHeaderSelections(){let e=this._selectionModel;if(!e||e.isEmpty||e.selectionMode=="row"){return}if(this.headerHeight===0||this.pageWidth===0){return}let t=this._style.headerSelectionFillColor;let i=this._style.headerSelectionBorderColor;if(!t&&!i){return}let s=this._scrollX;let o=this.bodyWidth;let r=this.pageWidth;let n=this.headerWidth;let l=this.headerHeight;let a=this._columnSections;let h=this._overlayGC;h.save();h.beginPath();h.rect(n,0,r,l);h.clip();if(t){h.fillStyle=t}if(i){h.strokeStyle=i;h.lineWidth=1}let c=a.count-1;let d=a.indexOf(s);let u=a.indexOf(s+r-1);u=u<0?c:u;for(let f=d;f<=u;++f){if(!e.isColumnSelected(f)){continue}let d=a.offsetOf(f)-s+n;let u=a.sizeOf(f);if(this._stretchLastColumn&&r>o&&f===c){u=n+r-d}if(u===0){continue}if(t){h.fillRect(d,0,u,l)}if(i){h.beginPath();h.moveTo(d-1,l-.5);h.lineTo(d+u,l-.5);h.stroke()}}h.restore()}_drawCursor(){let e=this._selectionModel;if(!e||e.isEmpty||e.selectionMode!=="cell"){return}let t=this._style.cursorFillColor;let i=this._style.cursorBorderColor;if(!t&&!i){return}let s=e.cursorRow;let o=e.cursorColumn;let r=this._rowSections.count-1;let n=this._columnSections.count-1;if(s<0||s>r){return}if(o<0||o>n){return}let l=s;let a=o;const h=S.joinCellGroupWithMergedCellGroups(this.dataModel,{r1:s,r2:l,c1:o,c2:a},"body");s=h.r1;l=h.r2;o=h.c1;a=h.c2;let c=this._scrollX;let d=this._scrollY;let u=this.bodyWidth;let f=this.bodyHeight;let _=this.pageWidth;let m=this.pageHeight;let g=this.headerWidth;let p=this.headerHeight;let w=this._viewportWidth;let y=this._viewportHeight;let x=this._columnSections.offsetOf(o)-c+g;let v=this._columnSections.extentOf(a)-c+g;let C=this._rowSections.offsetOf(s)-d+p;let M=this._rowSections.extentOf(l)-d+p;if(this._stretchLastColumn&&_>u&&o===n){v=w-1}if(this._stretchLastRow&&m>f&&s===r){M=y-1}if(v=w||C-1>=y||v+1u){u=a}if(this._stretchLastColumn&&l>d){d=l}let f=this._overlayGC;f.save();if(i>0){let i=0;let s=n;let o=0;let a=s+e.size;let h=f.createLinearGradient(i,s,o,a);h.addColorStop(0,e.color1);h.addColorStop(.5,e.color2);h.addColorStop(1,e.color3);let c=0;let u=n;let _=r+Math.min(l,d-t);let m=e.size;f.fillStyle=h;f.fillRect(c,u,_,m)}if(t>0){let t=r;let s=0;let o=t+e.size;let l=0;let h=f.createLinearGradient(t,s,o,l);h.addColorStop(0,e.color1);h.addColorStop(.5,e.color2);h.addColorStop(1,e.color3);let c=r;let d=0;let _=e.size;let m=n+Math.min(a,u-i);f.fillStyle=h;f.fillRect(c,d,_,m)}if(i0}e.regionHasMergedCells=i;class s extends m.ConflatableMessage{constructor(e,t,i,s,o){super("paint-request");this._region=e;this._r1=t;this._c1=i;this._r2=s;this._c2=o}get region(){return this._region}get r1(){return this._r1}get c1(){return this._c1}get r2(){return this._r2}get c2(){return this._c2}conflate(e){if(this._region==="all"){return true}if(e._region==="all"){this._region="all";return true}if(this._region!==e._region){return false}this._r1=Math.min(this._r1,e._r1);this._c1=Math.min(this._c1,e._c1);this._r2=Math.max(this._r2,e._r2);this._c2=Math.max(this._c2,e._c2);return true}}e.PaintRequest=s;class o extends m.ConflatableMessage{constructor(e,t,i){super("row-resize-request");this._region=e;this._index=t;this._size=i}get region(){return this._region}get index(){return this._index}get size(){return this._size}conflate(e){if(this._region!==e._region||this._index!==e._index){return false}this._size=e._size;return true}}e.RowResizeRequest=o;class r extends m.ConflatableMessage{constructor(e,t,i){super("column-resize-request");this._region=e;this._index=t;this._size=i}get region(){return this._region}get index(){return this._index}get size(){return this._size}conflate(e){if(this._region!==e._region||this._index!==e._index){return false}this._size=e._size;return true}}e.ColumnResizeRequest=r})(te||(te={}));class ie extends q{constructor(e){super();let t=se.splitFields(e.schema);this._data=e.data;this._bodyFields=t.bodyFields;this._headerFields=t.headerFields;this._missingValues=se.createMissingMap(e.schema)}rowCount(e){if(e==="body"){return this._data.length}return 1}columnCount(e){if(e==="body"){return this._bodyFields.length}return this._headerFields.length}data(e,t,i){let s;let o;switch(e){case"body":s=this._bodyFields[i];o=this._data[t][s.name];break;case"column-header":s=this._bodyFields[i];o=s.title||s.name;break;case"row-header":s=this._headerFields[i];o=this._data[t][s.name];break;case"corner-header":s=this._headerFields[i];o=s.title||s.name;break;default:throw"unreachable"}let r=this._missingValues!==null&&typeof o==="string"&&this._missingValues[o]===true;return r?null:o}metadata(e,t,i){if(e==="body"||e==="column-header"){return this._bodyFields[i]}return this._headerFields[i]}}var se;(function(e){function t(e){let t;if(e.primaryKey===undefined){t=[]}else if(typeof e.primaryKey==="string"){t=[e.primaryKey]}else{t=e.primaryKey}let i=[];let s=[];for(let o of e.fields){if(t.indexOf(o.name)===-1){i.push(o)}else{s.push(o)}}return{bodyFields:i,headerFields:s}}e.splitFields=t;function i(e){if(!e.missingValues||e.missingValues.length===0){return null}let t=Object.create(null);for(let i of e.missingValues){t[i]=true}return t}e.createMissingMap=i})(se||(se={}));const oe=/^(\d+(\.\d+)?)%$/;const re=/^(\d+(\.\d+)?)px$/;class ne extends k{constructor(e={}){super();this.backgroundColor=e.backgroundColor||"";this.textColor=e.textColor||"#000000";this.placeholder=e.placeholder||"...";this.width=e.width||"";this.height=e.height===undefined?"100%":e.height}isReady(e){return!e.value||ne.dataCache.get(e.value)!==undefined}async load(e){if(!e.value){return}const t=e.value;const i=new p.PromiseDelegate;ne.dataCache.set(t,undefined);const s=new Image;s.onload=()=>{ne.dataCache.set(t,s);i.resolve()};s.src=t;return i.promise}paintPlaceholder(e,t){this.drawBackground(e,t);this.drawPlaceholder(e,t)}paint(e,t){this.drawBackground(e,t);this.drawImage(e,t)}drawBackground(e,t){const i=x.resolveOption(this.backgroundColor,t);if(!i){return}e.fillStyle=i;e.fillRect(t.x,t.y,t.width,t.height)}drawPlaceholder(e,t){const i=x.resolveOption(this.placeholder,t);const s=x.resolveOption(this.textColor,t);const o=t.x+t.width/2;const r=t.y+t.height/2;e.fillStyle=s;e.fillText(i,o,r)}drawImage(e,t){if(!t.value){return}const i=ne.dataCache.get(t.value);if(!i){return this.drawPlaceholder(e,t)}const s=x.resolveOption(this.width,t);const o=x.resolveOption(this.height,t);if(!s&&!o){e.drawImage(i,t.x,t.y);return}let r=i.width;let n=i.height;let l;let a;let h;let c;if(l=s.match(oe)){r=parseFloat(l[1])/100*t.width}else if(a=s.match(re)){r=parseFloat(a[1])}if(h=o.match(oe)){n=parseFloat(h[1])/100*t.height}else if(c=o.match(re)){n=parseFloat(c[1])}if(!s){r=i.width/i.height*n}if(!o){n=i.height/i.width*r}e.drawImage(i,t.x,t.y,r,n)}}ne.dataCache=new Map}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1495.13603dd823bbf5eb08b3.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1495.13603dd823bbf5eb08b3.js deleted file mode 100644 index 62f220228bf6c9a06acdbc313884e74d486f5117..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1495.13603dd823bbf5eb08b3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1495],{21495:(e,t,O)=>{O.r(t);O.d(t,{autoCloseTags:()=>D,completeFromSchema:()=>Z,xml:()=>I,xmlLanguage:()=>q});var n=O(27421);var r=O(45145);const a=1,l=2,s=3,o=4,i=5,y=35,c=36,p=37,u=11,$=13;function f(e){return e==45||e==46||e==58||e>=65&&e<=90||e==95||e>=97&&e<=122||e>=161}function g(e){return e==9||e==10||e==13||e==32}let S=null,m=null,d=0;function h(e,t){let O=e.pos+t;if(m==e&&d==O)return S;while(g(e.peek(t)))t++;let n="";for(;;){let O=e.peek(t);if(!f(O))break;n+=String.fromCharCode(O);t++}m=e;d=O;return S=n||null}function v(e,t){this.name=e;this.parent=t;this.hash=t?t.hash:0;for(let O=0;O{if(e.next!=60)return;e.advance();if(e.next==47){e.advance();let O=h(e,0);if(!O)return e.acceptToken(i);if(t.context&&O==t.context.name)return e.acceptToken(l);for(let n=t.context;n;n=n.parent)if(n.name==O)return e.acceptToken(s,-2);e.acceptToken(o)}else if(e.next!=33&&e.next!=63){return e.acceptToken(a)}}),{contextual:true});function _(e,t){return new n.Lu((O=>{for(let n=0,r=0;;r++){if(O.next<0){if(r)O.acceptToken(e);break}if(O.next==t.charCodeAt(n)){n++;if(n==t.length){if(r>=t.length)O.acceptToken(e,1-t.length);break}}else{n=O.next==t.charCodeAt(0)?1:0}O.advance()}}))}const C=_(y,"--\x3e");const b=_(c,"?>");const w=_(p,"]]>");const W=(0,r.styleTags)({Text:r.tags.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":r.tags.angleBracket,TagName:r.tags.tagName,"MismatchedCloseTag/Tagname":[r.tags.tagName,r.tags.invalid],AttributeName:r.tags.attributeName,AttributeValue:r.tags.attributeValue,Is:r.tags.definitionOperator,"EntityReference CharacterReference":r.tags.character,Comment:r.tags.blockComment,ProcessingInst:r.tags.processingInstruction,DoctypeDecl:r.tags.documentMeta,Cdata:r.tags.special(r.tags.string)});const V=n.U1.deserialize({version:14,states:",SOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DS'#DSOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C{'#C{O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C|'#C|O$dOrO,59^OOOP,59^,59^OOOS'#C}'#C}O$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6y-E6yOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6z-E6zOOOP1G.x1G.xOOOS-E6{-E6{OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'jO!bO,59eOOOO-E6w-E6wO'xOpO1G.uO'xOpO1G.uOOOP1G.u1G.uO(QOpO7+$fOOOP7+$f7+$fO(YO!bO<`#X;'S%y;'S;=`&_<%lO%yX>eV{WOr%ysv%yw#T%y#T#U>z#U;'S%y;'S;=`&_<%lO%yX?PV{WOr%ysv%yw#h%y#h#i?f#i;'S%y;'S;=`&_<%lO%yX?kV{WOr%ysv%yw#T%y#T#Ue.from<=O&&e.to>=O));let r=n&&n.getChild("AttributeName");return r?e.sliceString(r.from,r.to):""}function R(e){for(let t=e&&e.parent;t;t=t.parent)if(t.name=="Element")return t;return null}function Y(e,t){var O;let n=(0,x.syntaxTree)(e).resolveInner(t,-1),r=null;for(let a=n;!r&&a.parent;a=a.parent)if(a.name=="OpenTag"||a.name=="CloseTag"||a.name=="SelfClosingTag"||a.name=="MismatchedCloseTag")r=a;if(r&&(r.to>t||r.lastChild.type.isError)){let e=r.parent;if(n.name=="TagName")return r.name=="CloseTag"||r.name=="MismatchedCloseTag"?{type:"closeTag",from:n.from,context:e}:{type:"openTag",from:n.from,context:R(e)};if(n.name=="AttributeName")return{type:"attrName",from:n.from,context:r};if(n.name=="AttributeValue")return{type:"attrValue",from:n.from,context:r};let O=n==r||n.name=="Attribute"?n.childBefore(t):n;if((O===null||O===void 0?void 0:O.name)=="StartTag")return{type:"openTag",from:t,context:R(e)};if((O===null||O===void 0?void 0:O.name)=="StartCloseTag"&&O.to<=t)return{type:"closeTag",from:t,context:e};if((O===null||O===void 0?void 0:O.name)=="Is")return{type:"attrValue",from:t,context:r};if(O)return{type:"attrName",from:t,context:r};return null}else if(n.name=="StartCloseTag"){return{type:"closeTag",from:t,context:n.parent}}while(n.parent&&n.to==t&&!((O=n.lastChild)===null||O===void 0?void 0:O.type.isError))n=n.parent;if(n.name=="Element"||n.name=="Text"||n.name=="Document")return{type:"tag",from:t,context:n.name=="Element"?n:R(n)};return null}class j{constructor(e,t,O){this.attrs=t;this.attrValues=O;this.children=[];this.name=e.name;this.completion=Object.assign(Object.assign({type:"type"},e.completion||{}),{label:this.name});this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name});this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2});this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"});this.text=e.textContent?e.textContent.map((e=>({label:e,type:"text"}))):[]}}const z=/^[:\-\.\w\u00b7-\uffff]*$/;function A(e){return Object.assign(Object.assign({type:"property"},e.completion||{}),{label:e.name})}function N(e){return typeof e=="string"?{label:`"${e}"`,type:"constant"}:/^"/.test(e.label)?e:Object.assign(Object.assign({},e),{label:`"${e.label}"`})}function Z(e,t){let O=[],n=[];let r=Object.create(null);for(let o of t){let e=A(o);O.push(e);if(o.global)n.push(e);if(o.values)r[o.name]=o.values.map(N)}let a=[],l=[];let s=Object.create(null);for(let o of e){let e=n,t=r;if(o.attributes)e=e.concat(o.attributes.map((e=>{if(typeof e=="string")return O.find((t=>t.label==e))||{label:e,type:"property"};if(e.values){if(t==r)t=Object.create(t);t[e.name]=e.values.map(N)}return A(e)})));let i=new j(o,e,t);s[i.name]=i;a.push(i);if(o.top)l.push(i)}if(!l.length)l=a;for(let o=0;o{var t;let{doc:O}=e.state,o=Y(e.state,e.pos);if(!o||o.type=="tag"&&!e.explicit)return null;let{type:i,from:y,context:c}=o;if(i=="openTag"){let e=l;let t=E(O,c);if(t){let O=s[t];e=(O===null||O===void 0?void 0:O.children)||a}return{from:y,options:e.map((e=>e.completion)),validFor:z}}else if(i=="closeTag"){let n=E(O,c);return n?{from:y,to:e.pos+(O.sliceString(e.pos,e.pos+1)==">"?1:0),options:[((t=s[n])===null||t===void 0?void 0:t.closeNameCompletion)||{label:n+">",type:"type"}],validFor:z}:null}else if(i=="attrName"){let e=s[k(O,c)];return{from:y,options:(e===null||e===void 0?void 0:e.attrs)||n,validFor:z}}else if(i=="attrValue"){let t=G(O,c,y);if(!t)return null;let n=s[k(O,c)];let a=((n===null||n===void 0?void 0:n.attrValues)||r)[t];if(!a||!a.length)return null;return{from:y,to:e.pos+(O.sliceString(e.pos,e.pos+1)=='"'?1:0),options:a,validFor:/^"[^"]*"?$/}}else if(i=="tag"){let t=E(O,c),n=s[t];let r=[],o=c&&c.lastChild;if(t&&(!o||o.name!="CloseTag"||k(O,o)!=t))r.push(n?n.closeCompletion:{label:"",type:"type",boost:2});let i=r.concat(((n===null||n===void 0?void 0:n.children)||(c?a:l)).map((e=>e.openCompletion)));if(c&&(n===null||n===void 0?void 0:n.text.length)){let t=c.firstChild;if(t.to>e.pos-20&&!/\S/.test(e.state.sliceDoc(t.to,e.pos)))i=i.concat(n.text)}return{from:y,options:i,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else{return null}}}const q=x.LRLanguage.define({name:"xml",parser:V.configure({props:[x.indentNodeProp.add({Element(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),x.foldNodeProp.add({Element(e){let t=e.firstChild,O=e.lastChild;if(!t||t.name!="OpenTag")return null;return{from:t.to,to:O.name=="CloseTag"?O.from:e.to}}}),x.bracketMatchingHandle.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}},indentOnInput:/^\s*<\/$/}});function I(e={}){let t=[q.data.of({autocomplete:Z(e.elements||[],e.attributes||[])})];if(e.autoCloseTags!==false)t.push(D);return new x.LanguageSupport(q,t)}function U(e,t,O=e.length){if(!t)return"";let n=t.firstChild;let r=n&&n.getChild("TagName");return r?e.sliceString(r.from,Math.min(r.to,O)):""}const D=Q.EditorView.inputHandler.of(((e,t,O,n,r)=>{if(e.composing||e.state.readOnly||t!=O||n!=">"&&n!="/"||!q.isActiveAt(e.state,t,-1))return false;let a=r(),{state:l}=a;let s=l.changeByRange((e=>{var t,O,r;let{head:a}=e;let s=l.doc.sliceString(a-1,a)==n;let o=(0,x.syntaxTree)(l).resolveInner(a,-1),i;if(s&&n==">"&&o.name=="EndTag"){let n=o.parent;if(((O=(t=n.parent)===null||t===void 0?void 0:t.lastChild)===null||O===void 0?void 0:O.name)!="CloseTag"&&(i=U(l.doc,n.parent,a))){let t=a+(l.doc.sliceString(a,a+1)===">"?1:0);let O=``;return{range:e,changes:{from:a,to:t,insert:O}}}}else if(s&&n=="/"&&o.name=="StartCloseTag"){let e=o.parent;if(o.from==a-2&&((r=e.lastChild)===null||r===void 0?void 0:r.name)!="CloseTag"&&(i=U(l.doc,e,a))){let e=a+(l.doc.sliceString(a,a+1)===">"?1:0);let t=`${i}>`;return{range:X.EditorSelection.cursor(a+t.length,-1),changes:{from:a,to:e,insert:t}}}}return{range:e}}));if(s.changes.empty)return false;e.dispatch([a,l.update(s,{userEvent:"input.complete",scrollIntoView:true})]);return true}))}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1673.b0ee25168543434bdbca.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1673.b0ee25168543434bdbca.js deleted file mode 100644 index 8510e630d6149e4fce51efb25b00bcccbe8a2ebd..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1673.b0ee25168543434bdbca.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1673],{92952:function(c,t,e){var i=this&&this.__extends||function(){var c=function(t,e){c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,t){c.__proto__=t}||function(c,t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e))c[e]=t[e]};return c(t,e)};return function(t,e){if(typeof e!=="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");c(t,e);function i(){this.constructor=t}t.prototype=e===null?Object.create(e):(i.prototype=e.prototype,new i)}}();var f=this&&this.__assign||function(){f=Object.assign||function(c){for(var t,e=1,i=arguments.length;e=c.length)c=void 0;return{value:c&&c[i++],done:!c}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(c,t){var e=typeof Symbol==="function"&&c[Symbol.iterator];if(!e)return c;var i=e.call(c),f,r=[],s;try{while((t===void 0||t-- >0)&&!(f=i.next()).done)r.push(f.value)}catch(a){s={error:a}}finally{try{if(f&&!f.done&&(e=i["return"]))e.call(i)}finally{if(s)throw s.error}}return r};Object.defineProperty(t,"__esModule",{value:true});t.AddCSS=t.CHTMLFontData=void 0;var n=e(30861);var l=e(60854);var d=e(86810);s(e(30861),t);var S=function(c){i(t,c);function t(){var t=c!==null&&c.apply(this,arguments)||this;t.charUsage=new l.Usage;t.delimUsage=new l.Usage;return t}t.charOptions=function(t,e){return c.charOptions.call(this,t,e)};t.prototype.adaptiveCSS=function(c){this.options.adaptiveCSS=c};t.prototype.clearCache=function(){if(this.options.adaptiveCSS){this.charUsage.clear();this.delimUsage.clear()}};t.prototype.createVariant=function(t,e,i){if(e===void 0){e=null}if(i===void 0){i=null}c.prototype.createVariant.call(this,t,e,i);var f=this.constructor;this.variant[t].classes=f.defaultVariantClasses[t];this.variant[t].letter=f.defaultVariantLetters[t]};t.prototype.defineChars=function(e,i){var f,r;c.prototype.defineChars.call(this,e,i);var s=this.variant[e].letter;try{for(var o=a(Object.keys(i)),n=o.next();!n.done;n=o.next()){var l=n.value;var d=t.charOptions(i,parseInt(l));if(d.f===undefined){d.f=s}}}catch(S){f={error:S}}finally{try{if(n&&!n.done&&(r=o.return))r.call(o)}finally{if(f)throw f.error}}};Object.defineProperty(t.prototype,"styles",{get:function(){var c=this.constructor;var t=f({},c.defaultStyles);this.addFontURLs(t,c.defaultFonts,this.options.fontURL);if(this.options.adaptiveCSS){this.updateStyles(t)}else{this.allStyles(t)}return t},enumerable:false,configurable:true});t.prototype.updateStyles=function(c){var t,e,i,f;try{for(var r=a(this.delimUsage.update()),s=r.next();!s.done;s=r.next()){var n=s.value;this.addDelimiterStyles(c,n,this.delimiters[n])}}catch(p){t={error:p}}finally{try{if(s&&!s.done&&(e=r.return))e.call(r)}finally{if(t)throw t.error}}try{for(var l=a(this.charUsage.update()),d=l.next();!d.done;d=l.next()){var S=o(d.value,2),u=S[0],n=S[1];var h=this.variant[u];this.addCharStyles(c,h.letter,n,h.chars[n])}}catch(B){i={error:B}}finally{try{if(d&&!d.done&&(f=l.return))f.call(l)}finally{if(i)throw i.error}}return c};t.prototype.allStyles=function(c){var t,e,i,f,r,s;try{for(var o=a(Object.keys(this.delimiters)),n=o.next();!n.done;n=o.next()){var l=n.value;var d=parseInt(l);this.addDelimiterStyles(c,d,this.delimiters[d])}}catch(y){t={error:y}}finally{try{if(n&&!n.done&&(e=o.return))e.call(o)}finally{if(t)throw t.error}}try{for(var S=a(Object.keys(this.variant)),u=S.next();!u.done;u=S.next()){var h=u.value;var p=this.variant[h];var B=p.letter;try{for(var v=(r=void 0,a(Object.keys(p.chars))),m=v.next();!m.done;m=v.next()){var l=m.value;var d=parseInt(l);var k=p.chars[d];if((k[3]||{}).smp)continue;if(k.length<4){k[3]={}}this.addCharStyles(c,B,d,k)}}catch(I){r={error:I}}finally{try{if(m&&!m.done&&(s=v.return))s.call(v)}finally{if(r)throw r.error}}}}catch(A){i={error:A}}finally{try{if(u&&!u.done&&(f=S.return))f.call(S)}finally{if(i)throw i.error}}};t.prototype.addFontURLs=function(c,t,e){var i,r;try{for(var s=a(Object.keys(t)),o=s.next();!o.done;o=s.next()){var n=o.value;var l=f({},t[n]);l.src=l.src.replace(/%%URL%%/,e);c[n]=l}}catch(d){i={error:d}}finally{try{if(o&&!o.done&&(r=s.return))r.call(s)}finally{if(i)throw i.error}}};t.prototype.addDelimiterStyles=function(c,t,e){var i=this.charSelector(t);if(e.c&&e.c!==t){i=this.charSelector(e.c);c[".mjx-stretched mjx-c"+i+"::before"]={content:this.charContent(e.c)}}if(!e.stretch)return;if(e.dir===1){this.addDelimiterVStyles(c,i,e)}else{this.addDelimiterHStyles(c,i,e)}};t.prototype.addDelimiterVStyles=function(c,t,e){var i=e.HDW;var f=o(e.stretch,4),r=f[0],s=f[1],a=f[2],n=f[3];var l=this.addDelimiterVPart(c,t,"beg",r,i);this.addDelimiterVPart(c,t,"ext",s,i);var d=this.addDelimiterVPart(c,t,"end",a,i);var S={};if(n){var u=this.addDelimiterVPart(c,t,"mid",n,i);S.height="50%";c["mjx-stretchy-v"+t+" > mjx-mid"]={"margin-top":this.em(-u/2),"margin-bottom":this.em(-u/2)}}if(l){S["border-top-width"]=this.em0(l-.03)}if(d){S["border-bottom-width"]=this.em0(d-.03);c["mjx-stretchy-v"+t+" > mjx-end"]={"margin-top":this.em(-d)}}if(Object.keys(S).length){c["mjx-stretchy-v"+t+" > mjx-ext"]=S}};t.prototype.addDelimiterVPart=function(c,t,e,i,f){if(!i)return 0;var r=this.getDelimiterData(i);var s=(f[2]-r[2])/2;var a={content:this.charContent(i)};if(e!=="ext"){a.padding=this.padding(r,s)}else{a.width=this.em0(f[2]);if(s){a["padding-left"]=this.em0(s)}}c["mjx-stretchy-v"+t+" mjx-"+e+" mjx-c::before"]=a;return r[0]+r[1]};t.prototype.addDelimiterHStyles=function(c,t,e){var i=o(e.stretch,4),f=i[0],r=i[1],s=i[2],a=i[3];var n=e.HDW;this.addDelimiterHPart(c,t,"beg",f,n);this.addDelimiterHPart(c,t,"ext",r,n);this.addDelimiterHPart(c,t,"end",s,n);if(a){this.addDelimiterHPart(c,t,"mid",a,n);c["mjx-stretchy-h"+t+" > mjx-ext"]={width:"50%"}}};t.prototype.addDelimiterHPart=function(c,t,e,i,f){if(!i)return;var r=this.getDelimiterData(i);var s=r[3];var a={content:s&&s.c?'"'+s.c+'"':this.charContent(i)};a.padding=this.padding(f,0,-f[2]);c["mjx-stretchy-h"+t+" mjx-"+e+" mjx-c::before"]=a};t.prototype.addCharStyles=function(c,t,e,i){var f=i[3];var r=f.f!==undefined?f.f:t;var s="mjx-c"+this.charSelector(e)+(r?".TEX-"+r:"");c[s+"::before"]={padding:this.padding(i,0,f.ic||0),content:f.c!=null?'"'+f.c+'"':this.charContent(e)}};t.prototype.getDelimiterData=function(c){return this.getChar("-smallop",c)};t.prototype.em=function(c){return(0,d.em)(c)};t.prototype.em0=function(c){return(0,d.em)(Math.max(0,c))};t.prototype.padding=function(c,t,e){var i=o(c,3),f=i[0],r=i[1],s=i[2];if(t===void 0){t=0}if(e===void 0){e=0}return[f,s+e,r,t].map(this.em0).join(" ")};t.prototype.charContent=function(c){return'"'+(c>=32&&c<=126&&c!==34&&c!==39&&c!==92?String.fromCharCode(c):"\\"+c.toString(16).toUpperCase())+'"'};t.prototype.charSelector=function(c){return".mjx-c"+c.toString(16).toUpperCase()};t.OPTIONS=f(f({},n.FontData.OPTIONS),{fontURL:"js/output/chtml/fonts/tex-woff-v2"});t.JAX="CHTML";t.defaultVariantClasses={};t.defaultVariantLetters={};t.defaultStyles={"mjx-c::before":{display:"block",width:0}};t.defaultFonts={"@font-face /* 0 */":{"font-family":"MJXZERO",src:'url("%%URL%%/MathJax_Zero.woff") format("woff")'}};return t}(n.FontData);t.CHTMLFontData=S;function u(c,t){var e,i;try{for(var f=a(Object.keys(t)),r=f.next();!r.done;r=f.next()){var s=r.value;var o=parseInt(s);Object.assign(n.FontData.charOptions(c,o),t[o])}}catch(l){e={error:l}}finally{try{if(r&&!r.done&&(i=f.return))i.call(f)}finally{if(e)throw e.error}}return c}t.AddCSS=u},60854:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.Usage=void 0;var e=function(){function c(){this.used=new Set;this.needsUpdate=[]}c.prototype.add=function(c){var t=JSON.stringify(c);if(!this.used.has(t)){this.needsUpdate.push(c)}this.used.add(t)};c.prototype.has=function(c){return this.used.has(JSON.stringify(c))};c.prototype.clear=function(){this.used.clear();this.needsUpdate=[]};c.prototype.update=function(){var c=this.needsUpdate;this.needsUpdate=[];return c};return c}();t.Usage=e},1673:function(c,t,e){var i=this&&this.__extends||function(){var c=function(t,e){c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,t){c.__proto__=t}||function(c,t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e))c[e]=t[e]};return c(t,e)};return function(t,e){if(typeof e!=="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");c(t,e);function i(){this.constructor=t}t.prototype=e===null?Object.create(e):(i.prototype=e.prototype,new i)}}();var f=this&&this.__assign||function(){f=Object.assign||function(c){for(var t,e=1,i=arguments.length;e{Object.defineProperty(t,"__esModule",{value:true});t.boldItalic=void 0;var i=e(92952);var f=e(51091);t.boldItalic=(0,i.AddCSS)(f.boldItalic,{305:{f:"B"},567:{f:"B"},8260:{c:"/"},8710:{c:"\\394"},10744:{c:"/"}})},78451:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.bold=void 0;var i=e(92952);var f=e(95746);t.bold=(0,i.AddCSS)(f.bold,{183:{c:"\\22C5"},305:{f:""},567:{f:""},697:{c:"\\2032"},8194:{c:""},8195:{c:""},8196:{c:""},8197:{c:""},8198:{c:""},8201:{c:""},8202:{c:""},8213:{c:"\\2014"},8214:{c:"\\2225"},8215:{c:"_"},8226:{c:"\\2219"},8243:{c:"\\2032\\2032"},8244:{c:"\\2032\\2032\\2032"},8254:{c:"\\2C9"},8260:{c:"/"},8279:{c:"\\2032\\2032\\2032\\2032"},8407:{c:"\\2192",f:"VB"},8602:{c:"\\2190\\338"},8603:{c:"\\2192\\338"},8622:{c:"\\2194\\338"},8653:{c:"\\21D0\\338"},8654:{c:"\\21D4\\338"},8655:{c:"\\21D2\\338"},8708:{c:"\\2203\\338"},8710:{c:"\\394"},8716:{c:"\\220B\\338"},8740:{c:"\\2223\\338"},8742:{c:"\\2225\\338"},8769:{c:"\\223C\\338"},8772:{c:"\\2243\\338"},8775:{c:"\\2245\\338"},8777:{c:"\\2248\\338"},8802:{c:"\\2261\\338"},8813:{c:"\\224D\\338"},8814:{c:"<\\338"},8815:{c:">\\338"},8816:{c:"\\2264\\338"},8817:{c:"\\2265\\338"},8832:{c:"\\227A\\338"},8833:{c:"\\227B\\338"},8836:{c:"\\2282\\338"},8837:{c:"\\2283\\338"},8840:{c:"\\2286\\338"},8841:{c:"\\2287\\338"},8876:{c:"\\22A2\\338"},8877:{c:"\\22A8\\338"},8930:{c:"\\2291\\338"},8931:{c:"\\2292\\338"},9001:{c:"\\27E8"},9002:{c:"\\27E9"},9653:{c:"\\25B3"},9663:{c:"\\25BD"},10072:{c:"\\2223"},10744:{c:"/",f:"BI"},10799:{c:"\\D7"},12296:{c:"\\27E8"},12297:{c:"\\27E9"}})},18018:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.doubleStruck=void 0;var i=e(32249);Object.defineProperty(t,"doubleStruck",{enumerable:true,get:function(){return i.doubleStruck}})},74141:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.frakturBold=void 0;var i=e(92952);var f=e(45600);t.frakturBold=(0,i.AddCSS)(f.frakturBold,{8260:{c:"/"}})},3785:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.fraktur=void 0;var i=e(92952);var f=e(59534);t.fraktur=(0,i.AddCSS)(f.fraktur,{8260:{c:"/"}})},74868:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.italic=void 0;var i=e(92952);var f=e(14141);t.italic=(0,i.AddCSS)(f.italic,{47:{f:"I"},989:{c:"\\E008",f:"A"},8213:{c:"\\2014"},8215:{c:"_"},8260:{c:"/",f:"I"},8710:{c:"\\394",f:"I"},10744:{c:"/",f:"I"}})},87434:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.largeop=void 0;var i=e(92952);var f=e(63969);t.largeop=(0,i.AddCSS)(f.largeop,{8214:{f:"S1"},8260:{c:"/"},8593:{f:"S1"},8595:{f:"S1"},8657:{f:"S1"},8659:{f:"S1"},8739:{f:"S1"},8741:{f:"S1"},9001:{c:"\\27E8"},9002:{c:"\\27E9"},9168:{f:"S1"},10072:{c:"\\2223",f:"S1"},10764:{c:"\\222C\\222C"},12296:{c:"\\27E8"},12297:{c:"\\27E9"}})},82621:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.monospace=void 0;var i=e(92952);var f=e(58626);t.monospace=(0,i.AddCSS)(f.monospace,{697:{c:"\\2032"},913:{c:"A"},914:{c:"B"},917:{c:"E"},918:{c:"Z"},919:{c:"H"},921:{c:"I"},922:{c:"K"},924:{c:"M"},925:{c:"N"},927:{c:"O"},929:{c:"P"},932:{c:"T"},935:{c:"X"},8215:{c:"_"},8243:{c:"\\2032\\2032"},8244:{c:"\\2032\\2032\\2032"},8260:{c:"/"},8279:{c:"\\2032\\2032\\2032\\2032"},8710:{c:"\\394"}})},56979:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.normal=void 0;var i=e(92952);var f=e(25190);t.normal=(0,i.AddCSS)(f.normal,{163:{f:"MI"},165:{f:"A"},174:{f:"A"},183:{c:"\\22C5"},240:{f:"A"},697:{c:"\\2032"},913:{c:"A"},914:{c:"B"},917:{c:"E"},918:{c:"Z"},919:{c:"H"},921:{c:"I"},922:{c:"K"},924:{c:"M"},925:{c:"N"},927:{c:"O"},929:{c:"P"},932:{c:"T"},935:{c:"X"},8192:{c:""},8193:{c:""},8194:{c:""},8195:{c:""},8196:{c:""},8197:{c:""},8198:{c:""},8201:{c:""},8202:{c:""},8203:{c:""},8204:{c:""},8213:{c:"\\2014"},8214:{c:"\\2225"},8215:{c:"_"},8226:{c:"\\2219"},8243:{c:"\\2032\\2032"},8244:{c:"\\2032\\2032\\2032"},8245:{f:"A"},8246:{c:"\\2035\\2035",f:"A"},8247:{c:"\\2035\\2035\\2035",f:"A"},8254:{c:"\\2C9"},8260:{c:"/"},8279:{c:"\\2032\\2032\\2032\\2032"},8288:{c:""},8289:{c:""},8290:{c:""},8291:{c:""},8292:{c:""},8407:{c:"\\2192",f:"V"},8450:{c:"C",f:"A"},8459:{c:"H",f:"SC"},8460:{c:"H",f:"FR"},8461:{c:"H",f:"A"},8462:{c:"h",f:"I"},8463:{f:"A"},8464:{c:"I",f:"SC"},8465:{c:"I",f:"FR"},8466:{c:"L",f:"SC"},8469:{c:"N",f:"A"},8473:{c:"P",f:"A"},8474:{c:"Q",f:"A"},8475:{c:"R",f:"SC"},8476:{c:"R",f:"FR"},8477:{c:"R",f:"A"},8484:{c:"Z",f:"A"},8486:{c:"\\3A9"},8487:{f:"A"},8488:{c:"Z",f:"FR"},8492:{c:"B",f:"SC"},8493:{c:"C",f:"FR"},8496:{c:"E",f:"SC"},8497:{c:"F",f:"SC"},8498:{f:"A"},8499:{c:"M",f:"SC"},8502:{f:"A"},8503:{f:"A"},8504:{f:"A"},8513:{f:"A"},8602:{f:"A"},8603:{f:"A"},8606:{f:"A"},8608:{f:"A"},8610:{f:"A"},8611:{f:"A"},8619:{f:"A"},8620:{f:"A"},8621:{f:"A"},8622:{f:"A"},8624:{f:"A"},8625:{f:"A"},8630:{f:"A"},8631:{f:"A"},8634:{f:"A"},8635:{f:"A"},8638:{f:"A"},8639:{f:"A"},8642:{f:"A"},8643:{f:"A"},8644:{f:"A"},8646:{f:"A"},8647:{f:"A"},8648:{f:"A"},8649:{f:"A"},8650:{f:"A"},8651:{f:"A"},8653:{f:"A"},8654:{f:"A"},8655:{f:"A"},8666:{f:"A"},8667:{f:"A"},8669:{f:"A"},8672:{f:"A"},8674:{f:"A"},8705:{f:"A"},8708:{c:"\\2203\\338"},8710:{c:"\\394"},8716:{c:"\\220B\\338"},8717:{f:"A"},8719:{f:"S1"},8720:{f:"S1"},8721:{f:"S1"},8724:{f:"A"},8737:{f:"A"},8738:{f:"A"},8740:{f:"A"},8742:{f:"A"},8748:{f:"S1"},8749:{f:"S1"},8750:{f:"S1"},8756:{f:"A"},8757:{f:"A"},8765:{f:"A"},8769:{f:"A"},8770:{f:"A"},8772:{c:"\\2243\\338"},8775:{c:"\\2246",f:"A"},8777:{c:"\\2248\\338"},8778:{f:"A"},8782:{f:"A"},8783:{f:"A"},8785:{f:"A"},8786:{f:"A"},8787:{f:"A"},8790:{f:"A"},8791:{f:"A"},8796:{f:"A"},8802:{c:"\\2261\\338"},8806:{f:"A"},8807:{f:"A"},8808:{f:"A"},8809:{f:"A"},8812:{f:"A"},8813:{c:"\\224D\\338"},8814:{f:"A"},8815:{f:"A"},8816:{f:"A"},8817:{f:"A"},8818:{f:"A"},8819:{f:"A"},8820:{c:"\\2272\\338"},8821:{c:"\\2273\\338"},8822:{f:"A"},8823:{f:"A"},8824:{c:"\\2276\\338"},8825:{c:"\\2277\\338"},8828:{f:"A"},8829:{f:"A"},8830:{f:"A"},8831:{f:"A"},8832:{f:"A"},8833:{f:"A"},8836:{c:"\\2282\\338"},8837:{c:"\\2283\\338"},8840:{f:"A"},8841:{f:"A"},8842:{f:"A"},8843:{f:"A"},8847:{f:"A"},8848:{f:"A"},8858:{f:"A"},8859:{f:"A"},8861:{f:"A"},8862:{f:"A"},8863:{f:"A"},8864:{f:"A"},8865:{f:"A"},8873:{f:"A"},8874:{f:"A"},8876:{f:"A"},8877:{f:"A"},8878:{f:"A"},8879:{f:"A"},8882:{f:"A"},8883:{f:"A"},8884:{f:"A"},8885:{f:"A"},8888:{f:"A"},8890:{f:"A"},8891:{f:"A"},8892:{f:"A"},8896:{f:"S1"},8897:{f:"S1"},8898:{f:"S1"},8899:{f:"S1"},8903:{f:"A"},8905:{f:"A"},8906:{f:"A"},8907:{f:"A"},8908:{f:"A"},8909:{f:"A"},8910:{f:"A"},8911:{f:"A"},8912:{f:"A"},8913:{f:"A"},8914:{f:"A"},8915:{f:"A"},8916:{f:"A"},8918:{f:"A"},8919:{f:"A"},8920:{f:"A"},8921:{f:"A"},8922:{f:"A"},8923:{f:"A"},8926:{f:"A"},8927:{f:"A"},8928:{f:"A"},8929:{f:"A"},8930:{c:"\\2291\\338"},8931:{c:"\\2292\\338"},8934:{f:"A"},8935:{f:"A"},8936:{f:"A"},8937:{f:"A"},8938:{f:"A"},8939:{f:"A"},8940:{f:"A"},8941:{f:"A"},8965:{c:"\\22BC",f:"A"},8966:{c:"\\2A5E",f:"A"},8988:{c:"\\250C",f:"A"},8989:{c:"\\2510",f:"A"},8990:{c:"\\2514",f:"A"},8991:{c:"\\2518",f:"A"},9001:{c:"\\27E8"},9002:{c:"\\27E9"},9168:{f:"S1"},9416:{f:"A"},9484:{f:"A"},9488:{f:"A"},9492:{f:"A"},9496:{f:"A"},9585:{f:"A"},9586:{f:"A"},9632:{f:"A"},9633:{f:"A"},9642:{c:"\\25A0",f:"A"},9650:{f:"A"},9652:{c:"\\25B2",f:"A"},9653:{c:"\\25B3"},9654:{f:"A"},9656:{c:"\\25B6",f:"A"},9660:{f:"A"},9662:{c:"\\25BC",f:"A"},9663:{c:"\\25BD"},9664:{f:"A"},9666:{c:"\\25C0",f:"A"},9674:{f:"A"},9723:{c:"\\25A1",f:"A"},9724:{c:"\\25A0",f:"A"},9733:{f:"A"},10003:{f:"A"},10016:{f:"A"},10072:{c:"\\2223"},10731:{f:"A"},10744:{c:"/",f:"I"},10752:{f:"S1"},10753:{f:"S1"},10754:{f:"S1"},10756:{f:"S1"},10758:{f:"S1"},10764:{c:"\\222C\\222C",f:"S1"},10799:{c:"\\D7"},10846:{f:"A"},10877:{f:"A"},10878:{f:"A"},10885:{f:"A"},10886:{f:"A"},10887:{f:"A"},10888:{f:"A"},10889:{f:"A"},10890:{f:"A"},10891:{f:"A"},10892:{f:"A"},10901:{f:"A"},10902:{f:"A"},10933:{f:"A"},10934:{f:"A"},10935:{f:"A"},10936:{f:"A"},10937:{f:"A"},10938:{f:"A"},10949:{f:"A"},10950:{f:"A"},10955:{f:"A"},10956:{f:"A"},12296:{c:"\\27E8"},12297:{c:"\\27E9"},57350:{f:"A"},57351:{f:"A"},57352:{f:"A"},57353:{f:"A"},57356:{f:"A"},57357:{f:"A"},57358:{f:"A"},57359:{f:"A"},57360:{f:"A"},57361:{f:"A"},57366:{f:"A"},57367:{f:"A"},57368:{f:"A"},57369:{f:"A"},57370:{f:"A"},57371:{f:"A"},119808:{c:"A",f:"B"},119809:{c:"B",f:"B"},119810:{c:"C",f:"B"},119811:{c:"D",f:"B"},119812:{c:"E",f:"B"},119813:{c:"F",f:"B"},119814:{c:"G",f:"B"},119815:{c:"H",f:"B"},119816:{c:"I",f:"B"},119817:{c:"J",f:"B"},119818:{c:"K",f:"B"},119819:{c:"L",f:"B"},119820:{c:"M",f:"B"},119821:{c:"N",f:"B"},119822:{c:"O",f:"B"},119823:{c:"P",f:"B"},119824:{c:"Q",f:"B"},119825:{c:"R",f:"B"},119826:{c:"S",f:"B"},119827:{c:"T",f:"B"},119828:{c:"U",f:"B"},119829:{c:"V",f:"B"},119830:{c:"W",f:"B"},119831:{c:"X",f:"B"},119832:{c:"Y",f:"B"},119833:{c:"Z",f:"B"},119834:{c:"a",f:"B"},119835:{c:"b",f:"B"},119836:{c:"c",f:"B"},119837:{c:"d",f:"B"},119838:{c:"e",f:"B"},119839:{c:"f",f:"B"},119840:{c:"g",f:"B"},119841:{c:"h",f:"B"},119842:{c:"i",f:"B"},119843:{c:"j",f:"B"},119844:{c:"k",f:"B"},119845:{c:"l",f:"B"},119846:{c:"m",f:"B"},119847:{c:"n",f:"B"},119848:{c:"o",f:"B"},119849:{c:"p",f:"B"},119850:{c:"q",f:"B"},119851:{c:"r",f:"B"},119852:{c:"s",f:"B"},119853:{c:"t",f:"B"},119854:{c:"u",f:"B"},119855:{c:"v",f:"B"},119856:{c:"w",f:"B"},119857:{c:"x",f:"B"},119858:{c:"y",f:"B"},119859:{c:"z",f:"B"},119860:{c:"A",f:"I"},119861:{c:"B",f:"I"},119862:{c:"C",f:"I"},119863:{c:"D",f:"I"},119864:{c:"E",f:"I"},119865:{c:"F",f:"I"},119866:{c:"G",f:"I"},119867:{c:"H",f:"I"},119868:{c:"I",f:"I"},119869:{c:"J",f:"I"},119870:{c:"K",f:"I"},119871:{c:"L",f:"I"},119872:{c:"M",f:"I"},119873:{c:"N",f:"I"},119874:{c:"O",f:"I"},119875:{c:"P",f:"I"},119876:{c:"Q",f:"I"},119877:{c:"R",f:"I"},119878:{c:"S",f:"I"},119879:{c:"T",f:"I"},119880:{c:"U",f:"I"},119881:{c:"V",f:"I"},119882:{c:"W",f:"I"},119883:{c:"X",f:"I"},119884:{c:"Y",f:"I"},119885:{c:"Z",f:"I"},119886:{c:"a",f:"I"},119887:{c:"b",f:"I"},119888:{c:"c",f:"I"},119889:{c:"d",f:"I"},119890:{c:"e",f:"I"},119891:{c:"f",f:"I"},119892:{c:"g",f:"I"},119894:{c:"i",f:"I"},119895:{c:"j",f:"I"},119896:{c:"k",f:"I"},119897:{c:"l",f:"I"},119898:{c:"m",f:"I"},119899:{c:"n",f:"I"},119900:{c:"o",f:"I"},119901:{c:"p",f:"I"},119902:{c:"q",f:"I"},119903:{c:"r",f:"I"},119904:{c:"s",f:"I"},119905:{c:"t",f:"I"},119906:{c:"u",f:"I"},119907:{c:"v",f:"I"},119908:{c:"w",f:"I"},119909:{c:"x",f:"I"},119910:{c:"y",f:"I"},119911:{c:"z",f:"I"},119912:{c:"A",f:"BI"},119913:{c:"B",f:"BI"},119914:{c:"C",f:"BI"},119915:{c:"D",f:"BI"},119916:{c:"E",f:"BI"},119917:{c:"F",f:"BI"},119918:{c:"G",f:"BI"},119919:{c:"H",f:"BI"},119920:{c:"I",f:"BI"},119921:{c:"J",f:"BI"},119922:{c:"K",f:"BI"},119923:{c:"L",f:"BI"},119924:{c:"M",f:"BI"},119925:{c:"N",f:"BI"},119926:{c:"O",f:"BI"},119927:{c:"P",f:"BI"},119928:{c:"Q",f:"BI"},119929:{c:"R",f:"BI"},119930:{c:"S",f:"BI"},119931:{c:"T",f:"BI"},119932:{c:"U",f:"BI"},119933:{c:"V",f:"BI"},119934:{c:"W",f:"BI"},119935:{c:"X",f:"BI"},119936:{c:"Y",f:"BI"},119937:{c:"Z",f:"BI"},119938:{c:"a",f:"BI"},119939:{c:"b",f:"BI"},119940:{c:"c",f:"BI"},119941:{c:"d",f:"BI"},119942:{c:"e",f:"BI"},119943:{c:"f",f:"BI"},119944:{c:"g",f:"BI"},119945:{c:"h",f:"BI"},119946:{c:"i",f:"BI"},119947:{c:"j",f:"BI"},119948:{c:"k",f:"BI"},119949:{c:"l",f:"BI"},119950:{c:"m",f:"BI"},119951:{c:"n",f:"BI"},119952:{c:"o",f:"BI"},119953:{c:"p",f:"BI"},119954:{c:"q",f:"BI"},119955:{c:"r",f:"BI"},119956:{c:"s",f:"BI"},119957:{c:"t",f:"BI"},119958:{c:"u",f:"BI"},119959:{c:"v",f:"BI"},119960:{c:"w",f:"BI"},119961:{c:"x",f:"BI"},119962:{c:"y",f:"BI"},119963:{c:"z",f:"BI"},119964:{c:"A",f:"SC"},119966:{c:"C",f:"SC"},119967:{c:"D",f:"SC"},119970:{c:"G",f:"SC"},119973:{c:"J",f:"SC"},119974:{c:"K",f:"SC"},119977:{c:"N",f:"SC"},119978:{c:"O",f:"SC"},119979:{c:"P",f:"SC"},119980:{c:"Q",f:"SC"},119982:{c:"S",f:"SC"},119983:{c:"T",f:"SC"},119984:{c:"U",f:"SC"},119985:{c:"V",f:"SC"},119986:{c:"W",f:"SC"},119987:{c:"X",f:"SC"},119988:{c:"Y",f:"SC"},119989:{c:"Z",f:"SC"},120068:{c:"A",f:"FR"},120069:{c:"B",f:"FR"},120071:{c:"D",f:"FR"},120072:{c:"E",f:"FR"},120073:{c:"F",f:"FR"},120074:{c:"G",f:"FR"},120077:{c:"J",f:"FR"},120078:{c:"K",f:"FR"},120079:{c:"L",f:"FR"},120080:{c:"M",f:"FR"},120081:{c:"N",f:"FR"},120082:{c:"O",f:"FR"},120083:{c:"P",f:"FR"},120084:{c:"Q",f:"FR"},120086:{c:"S",f:"FR"},120087:{c:"T",f:"FR"},120088:{c:"U",f:"FR"},120089:{c:"V",f:"FR"},120090:{c:"W",f:"FR"},120091:{c:"X",f:"FR"},120092:{c:"Y",f:"FR"},120094:{c:"a",f:"FR"},120095:{c:"b",f:"FR"},120096:{c:"c",f:"FR"},120097:{c:"d",f:"FR"},120098:{c:"e",f:"FR"},120099:{c:"f",f:"FR"},120100:{c:"g",f:"FR"},120101:{c:"h",f:"FR"},120102:{c:"i",f:"FR"},120103:{c:"j",f:"FR"},120104:{c:"k",f:"FR"},120105:{c:"l",f:"FR"},120106:{c:"m",f:"FR"},120107:{c:"n",f:"FR"},120108:{c:"o",f:"FR"},120109:{c:"p",f:"FR"},120110:{c:"q",f:"FR"},120111:{c:"r",f:"FR"},120112:{c:"s",f:"FR"},120113:{c:"t",f:"FR"},120114:{c:"u",f:"FR"},120115:{c:"v",f:"FR"},120116:{c:"w",f:"FR"},120117:{c:"x",f:"FR"},120118:{c:"y",f:"FR"},120119:{c:"z",f:"FR"},120120:{c:"A",f:"A"},120121:{c:"B",f:"A"},120123:{c:"D",f:"A"},120124:{c:"E",f:"A"},120125:{c:"F",f:"A"},120126:{c:"G",f:"A"},120128:{c:"I",f:"A"},120129:{c:"J",f:"A"},120130:{c:"K",f:"A"},120131:{c:"L",f:"A"},120132:{c:"M",f:"A"},120134:{c:"O",f:"A"},120138:{c:"S",f:"A"},120139:{c:"T",f:"A"},120140:{c:"U",f:"A"},120141:{c:"V",f:"A"},120142:{c:"W",f:"A"},120143:{c:"X",f:"A"},120144:{c:"Y",f:"A"},120172:{c:"A",f:"FRB"},120173:{c:"B",f:"FRB"},120174:{c:"C",f:"FRB"},120175:{c:"D",f:"FRB"},120176:{c:"E",f:"FRB"},120177:{c:"F",f:"FRB"},120178:{c:"G",f:"FRB"},120179:{c:"H",f:"FRB"},120180:{c:"I",f:"FRB"},120181:{c:"J",f:"FRB"},120182:{c:"K",f:"FRB"},120183:{c:"L",f:"FRB"},120184:{c:"M",f:"FRB"},120185:{c:"N",f:"FRB"},120186:{c:"O",f:"FRB"},120187:{c:"P",f:"FRB"},120188:{c:"Q",f:"FRB"},120189:{c:"R",f:"FRB"},120190:{c:"S",f:"FRB"},120191:{c:"T",f:"FRB"},120192:{c:"U",f:"FRB"},120193:{c:"V",f:"FRB"},120194:{c:"W",f:"FRB"},120195:{c:"X",f:"FRB"},120196:{c:"Y",f:"FRB"},120197:{c:"Z",f:"FRB"},120198:{c:"a",f:"FRB"},120199:{c:"b",f:"FRB"},120200:{c:"c",f:"FRB"},120201:{c:"d",f:"FRB"},120202:{c:"e",f:"FRB"},120203:{c:"f",f:"FRB"},120204:{c:"g",f:"FRB"},120205:{c:"h",f:"FRB"},120206:{c:"i",f:"FRB"},120207:{c:"j",f:"FRB"},120208:{c:"k",f:"FRB"},120209:{c:"l",f:"FRB"},120210:{c:"m",f:"FRB"},120211:{c:"n",f:"FRB"},120212:{c:"o",f:"FRB"},120213:{c:"p",f:"FRB"},120214:{c:"q",f:"FRB"},120215:{c:"r",f:"FRB"},120216:{c:"s",f:"FRB"},120217:{c:"t",f:"FRB"},120218:{c:"u",f:"FRB"},120219:{c:"v",f:"FRB"},120220:{c:"w",f:"FRB"},120221:{c:"x",f:"FRB"},120222:{c:"y",f:"FRB"},120223:{c:"z",f:"FRB"},120224:{c:"A",f:"SS"},120225:{c:"B",f:"SS"},120226:{c:"C",f:"SS"},120227:{c:"D",f:"SS"},120228:{c:"E",f:"SS"},120229:{c:"F",f:"SS"},120230:{c:"G",f:"SS"},120231:{c:"H",f:"SS"},120232:{c:"I",f:"SS"},120233:{c:"J",f:"SS"},120234:{c:"K",f:"SS"},120235:{c:"L",f:"SS"},120236:{c:"M",f:"SS"},120237:{c:"N",f:"SS"},120238:{c:"O",f:"SS"},120239:{c:"P",f:"SS"},120240:{c:"Q",f:"SS"},120241:{c:"R",f:"SS"},120242:{c:"S",f:"SS"},120243:{c:"T",f:"SS"},120244:{c:"U",f:"SS"},120245:{c:"V",f:"SS"},120246:{c:"W",f:"SS"},120247:{c:"X",f:"SS"},120248:{c:"Y",f:"SS"},120249:{c:"Z",f:"SS"},120250:{c:"a",f:"SS"},120251:{c:"b",f:"SS"},120252:{c:"c",f:"SS"},120253:{c:"d",f:"SS"},120254:{c:"e",f:"SS"},120255:{c:"f",f:"SS"},120256:{c:"g",f:"SS"},120257:{c:"h",f:"SS"},120258:{c:"i",f:"SS"},120259:{c:"j",f:"SS"},120260:{c:"k",f:"SS"},120261:{c:"l",f:"SS"},120262:{c:"m",f:"SS"},120263:{c:"n",f:"SS"},120264:{c:"o",f:"SS"},120265:{c:"p",f:"SS"},120266:{c:"q",f:"SS"},120267:{c:"r",f:"SS"},120268:{c:"s",f:"SS"},120269:{c:"t",f:"SS"},120270:{c:"u",f:"SS"},120271:{c:"v",f:"SS"},120272:{c:"w",f:"SS"},120273:{c:"x",f:"SS"},120274:{c:"y",f:"SS"},120275:{c:"z",f:"SS"},120276:{c:"A",f:"SSB"},120277:{c:"B",f:"SSB"},120278:{c:"C",f:"SSB"},120279:{c:"D",f:"SSB"},120280:{c:"E",f:"SSB"},120281:{c:"F",f:"SSB"},120282:{c:"G",f:"SSB"},120283:{c:"H",f:"SSB"},120284:{c:"I",f:"SSB"},120285:{c:"J",f:"SSB"},120286:{c:"K",f:"SSB"},120287:{c:"L",f:"SSB"},120288:{c:"M",f:"SSB"},120289:{c:"N",f:"SSB"},120290:{c:"O",f:"SSB"},120291:{c:"P",f:"SSB"},120292:{c:"Q",f:"SSB"},120293:{c:"R",f:"SSB"},120294:{c:"S",f:"SSB"},120295:{c:"T",f:"SSB"},120296:{c:"U",f:"SSB"},120297:{c:"V",f:"SSB"},120298:{c:"W",f:"SSB"},120299:{c:"X",f:"SSB"},120300:{c:"Y",f:"SSB"},120301:{c:"Z",f:"SSB"},120302:{c:"a",f:"SSB"},120303:{c:"b",f:"SSB"},120304:{c:"c",f:"SSB"},120305:{c:"d",f:"SSB"},120306:{c:"e",f:"SSB"},120307:{c:"f",f:"SSB"},120308:{c:"g",f:"SSB"},120309:{c:"h",f:"SSB"},120310:{c:"i",f:"SSB"},120311:{c:"j",f:"SSB"},120312:{c:"k",f:"SSB"},120313:{c:"l",f:"SSB"},120314:{c:"m",f:"SSB"},120315:{c:"n",f:"SSB"},120316:{c:"o",f:"SSB"},120317:{c:"p",f:"SSB"},120318:{c:"q",f:"SSB"},120319:{c:"r",f:"SSB"},120320:{c:"s",f:"SSB"},120321:{c:"t",f:"SSB"},120322:{c:"u",f:"SSB"},120323:{c:"v",f:"SSB"},120324:{c:"w",f:"SSB"},120325:{c:"x",f:"SSB"},120326:{c:"y",f:"SSB"},120327:{c:"z",f:"SSB"},120328:{c:"A",f:"SSI"},120329:{c:"B",f:"SSI"},120330:{c:"C",f:"SSI"},120331:{c:"D",f:"SSI"},120332:{c:"E",f:"SSI"},120333:{c:"F",f:"SSI"},120334:{c:"G",f:"SSI"},120335:{c:"H",f:"SSI"},120336:{c:"I",f:"SSI"},120337:{c:"J",f:"SSI"},120338:{c:"K",f:"SSI"},120339:{c:"L",f:"SSI"},120340:{c:"M",f:"SSI"},120341:{c:"N",f:"SSI"},120342:{c:"O",f:"SSI"},120343:{c:"P",f:"SSI"},120344:{c:"Q",f:"SSI"},120345:{c:"R",f:"SSI"},120346:{c:"S",f:"SSI"},120347:{c:"T",f:"SSI"},120348:{c:"U",f:"SSI"},120349:{c:"V",f:"SSI"},120350:{c:"W",f:"SSI"},120351:{c:"X",f:"SSI"},120352:{c:"Y",f:"SSI"},120353:{c:"Z",f:"SSI"},120354:{c:"a",f:"SSI"},120355:{c:"b",f:"SSI"},120356:{c:"c",f:"SSI"},120357:{c:"d",f:"SSI"},120358:{c:"e",f:"SSI"},120359:{c:"f",f:"SSI"},120360:{c:"g",f:"SSI"},120361:{c:"h",f:"SSI"},120362:{c:"i",f:"SSI"},120363:{c:"j",f:"SSI"},120364:{c:"k",f:"SSI"},120365:{c:"l",f:"SSI"},120366:{c:"m",f:"SSI"},120367:{c:"n",f:"SSI"},120368:{c:"o",f:"SSI"},120369:{c:"p",f:"SSI"},120370:{c:"q",f:"SSI"},120371:{c:"r",f:"SSI"},120372:{c:"s",f:"SSI"},120373:{c:"t",f:"SSI"},120374:{c:"u",f:"SSI"},120375:{c:"v",f:"SSI"},120376:{c:"w",f:"SSI"},120377:{c:"x",f:"SSI"},120378:{c:"y",f:"SSI"},120379:{c:"z",f:"SSI"},120432:{c:"A",f:"T"},120433:{c:"B",f:"T"},120434:{c:"C",f:"T"},120435:{c:"D",f:"T"},120436:{c:"E",f:"T"},120437:{c:"F",f:"T"},120438:{c:"G",f:"T"},120439:{c:"H",f:"T"},120440:{c:"I",f:"T"},120441:{c:"J",f:"T"},120442:{c:"K",f:"T"},120443:{c:"L",f:"T"},120444:{c:"M",f:"T"},120445:{c:"N",f:"T"},120446:{c:"O",f:"T"},120447:{c:"P",f:"T"},120448:{c:"Q",f:"T"},120449:{c:"R",f:"T"},120450:{c:"S",f:"T"},120451:{c:"T",f:"T"},120452:{c:"U",f:"T"},120453:{c:"V",f:"T"},120454:{c:"W",f:"T"},120455:{c:"X",f:"T"},120456:{c:"Y",f:"T"},120457:{c:"Z",f:"T"},120458:{c:"a",f:"T"},120459:{c:"b",f:"T"},120460:{c:"c",f:"T"},120461:{c:"d",f:"T"},120462:{c:"e",f:"T"},120463:{c:"f",f:"T"},120464:{c:"g",f:"T"},120465:{c:"h",f:"T"},120466:{c:"i",f:"T"},120467:{c:"j",f:"T"},120468:{c:"k",f:"T"},120469:{c:"l",f:"T"},120470:{c:"m",f:"T"},120471:{c:"n",f:"T"},120472:{c:"o",f:"T"},120473:{c:"p",f:"T"},120474:{c:"q",f:"T"},120475:{c:"r",f:"T"},120476:{c:"s",f:"T"},120477:{c:"t",f:"T"},120478:{c:"u",f:"T"},120479:{c:"v",f:"T"},120480:{c:"w",f:"T"},120481:{c:"x",f:"T"},120482:{c:"y",f:"T"},120483:{c:"z",f:"T"},120488:{c:"A",f:"B"},120489:{c:"B",f:"B"},120490:{c:"\\393",f:"B"},120491:{c:"\\394",f:"B"},120492:{c:"E",f:"B"},120493:{c:"Z",f:"B"},120494:{c:"H",f:"B"},120495:{c:"\\398",f:"B"},120496:{c:"I",f:"B"},120497:{c:"K",f:"B"},120498:{c:"\\39B",f:"B"},120499:{c:"M",f:"B"},120500:{c:"N",f:"B"},120501:{c:"\\39E",f:"B"},120502:{c:"O",f:"B"},120503:{c:"\\3A0",f:"B"},120504:{c:"P",f:"B"},120506:{c:"\\3A3",f:"B"},120507:{c:"T",f:"B"},120508:{c:"\\3A5",f:"B"},120509:{c:"\\3A6",f:"B"},120510:{c:"X",f:"B"},120511:{c:"\\3A8",f:"B"},120512:{c:"\\3A9",f:"B"},120513:{c:"\\2207",f:"B"},120546:{c:"A",f:"I"},120547:{c:"B",f:"I"},120548:{c:"\\393",f:"I"},120549:{c:"\\394",f:"I"},120550:{c:"E",f:"I"},120551:{c:"Z",f:"I"},120552:{c:"H",f:"I"},120553:{c:"\\398",f:"I"},120554:{c:"I",f:"I"},120555:{c:"K",f:"I"},120556:{c:"\\39B",f:"I"},120557:{c:"M",f:"I"},120558:{c:"N",f:"I"},120559:{c:"\\39E",f:"I"},120560:{c:"O",f:"I"},120561:{c:"\\3A0",f:"I"},120562:{c:"P",f:"I"},120564:{c:"\\3A3",f:"I"},120565:{c:"T",f:"I"},120566:{c:"\\3A5",f:"I"},120567:{c:"\\3A6",f:"I"},120568:{c:"X",f:"I"},120569:{c:"\\3A8",f:"I"},120570:{c:"\\3A9",f:"I"},120572:{c:"\\3B1",f:"I"},120573:{c:"\\3B2",f:"I"},120574:{c:"\\3B3",f:"I"},120575:{c:"\\3B4",f:"I"},120576:{c:"\\3B5",f:"I"},120577:{c:"\\3B6",f:"I"},120578:{c:"\\3B7",f:"I"},120579:{c:"\\3B8",f:"I"},120580:{c:"\\3B9",f:"I"},120581:{c:"\\3BA",f:"I"},120582:{c:"\\3BB",f:"I"},120583:{c:"\\3BC",f:"I"},120584:{c:"\\3BD",f:"I"},120585:{c:"\\3BE",f:"I"},120586:{c:"\\3BF",f:"I"},120587:{c:"\\3C0",f:"I"},120588:{c:"\\3C1",f:"I"},120589:{c:"\\3C2",f:"I"},120590:{c:"\\3C3",f:"I"},120591:{c:"\\3C4",f:"I"},120592:{c:"\\3C5",f:"I"},120593:{c:"\\3C6",f:"I"},120594:{c:"\\3C7",f:"I"},120595:{c:"\\3C8",f:"I"},120596:{c:"\\3C9",f:"I"},120597:{c:"\\2202"},120598:{c:"\\3F5",f:"I"},120599:{c:"\\3D1",f:"I"},120600:{c:"\\E009",f:"A"},120601:{c:"\\3D5",f:"I"},120602:{c:"\\3F1",f:"I"},120603:{c:"\\3D6",f:"I"},120604:{c:"A",f:"BI"},120605:{c:"B",f:"BI"},120606:{c:"\\393",f:"BI"},120607:{c:"\\394",f:"BI"},120608:{c:"E",f:"BI"},120609:{c:"Z",f:"BI"},120610:{c:"H",f:"BI"},120611:{c:"\\398",f:"BI"},120612:{c:"I",f:"BI"},120613:{c:"K",f:"BI"},120614:{c:"\\39B",f:"BI"},120615:{c:"M",f:"BI"},120616:{c:"N",f:"BI"},120617:{c:"\\39E",f:"BI"},120618:{c:"O",f:"BI"},120619:{c:"\\3A0",f:"BI"},120620:{c:"P",f:"BI"},120622:{c:"\\3A3",f:"BI"},120623:{c:"T",f:"BI"},120624:{c:"\\3A5",f:"BI"},120625:{c:"\\3A6",f:"BI"},120626:{c:"X",f:"BI"},120627:{c:"\\3A8",f:"BI"},120628:{c:"\\3A9",f:"BI"},120630:{c:"\\3B1",f:"BI"},120631:{c:"\\3B2",f:"BI"},120632:{c:"\\3B3",f:"BI"},120633:{c:"\\3B4",f:"BI"},120634:{c:"\\3B5",f:"BI"},120635:{c:"\\3B6",f:"BI"},120636:{c:"\\3B7",f:"BI"},120637:{c:"\\3B8",f:"BI"},120638:{c:"\\3B9",f:"BI"},120639:{c:"\\3BA",f:"BI"},120640:{c:"\\3BB",f:"BI"},120641:{c:"\\3BC",f:"BI"},120642:{c:"\\3BD",f:"BI"},120643:{c:"\\3BE",f:"BI"},120644:{c:"\\3BF",f:"BI"},120645:{c:"\\3C0",f:"BI"},120646:{c:"\\3C1",f:"BI"},120647:{c:"\\3C2",f:"BI"},120648:{c:"\\3C3",f:"BI"},120649:{c:"\\3C4",f:"BI"},120650:{c:"\\3C5",f:"BI"},120651:{c:"\\3C6",f:"BI"},120652:{c:"\\3C7",f:"BI"},120653:{c:"\\3C8",f:"BI"},120654:{c:"\\3C9",f:"BI"},120655:{c:"\\2202",f:"B"},120656:{c:"\\3F5",f:"BI"},120657:{c:"\\3D1",f:"BI"},120658:{c:"\\E009",f:"A"},120659:{c:"\\3D5",f:"BI"},120660:{c:"\\3F1",f:"BI"},120661:{c:"\\3D6",f:"BI"},120662:{c:"A",f:"SSB"},120663:{c:"B",f:"SSB"},120664:{c:"\\393",f:"SSB"},120665:{c:"\\394",f:"SSB"},120666:{c:"E",f:"SSB"},120667:{c:"Z",f:"SSB"},120668:{c:"H",f:"SSB"},120669:{c:"\\398",f:"SSB"},120670:{c:"I",f:"SSB"},120671:{c:"K",f:"SSB"},120672:{c:"\\39B",f:"SSB"},120673:{c:"M",f:"SSB"},120674:{c:"N",f:"SSB"},120675:{c:"\\39E",f:"SSB"},120676:{c:"O",f:"SSB"},120677:{c:"\\3A0",f:"SSB"},120678:{c:"P",f:"SSB"},120680:{c:"\\3A3",f:"SSB"},120681:{c:"T",f:"SSB"},120682:{c:"\\3A5",f:"SSB"},120683:{c:"\\3A6",f:"SSB"},120684:{c:"X",f:"SSB"},120685:{c:"\\3A8",f:"SSB"},120686:{c:"\\3A9",f:"SSB"},120782:{c:"0",f:"B"},120783:{c:"1",f:"B"},120784:{c:"2",f:"B"},120785:{c:"3",f:"B"},120786:{c:"4",f:"B"},120787:{c:"5",f:"B"},120788:{c:"6",f:"B"},120789:{c:"7",f:"B"},120790:{c:"8",f:"B"},120791:{c:"9",f:"B"},120802:{c:"0",f:"SS"},120803:{c:"1",f:"SS"},120804:{c:"2",f:"SS"},120805:{c:"3",f:"SS"},120806:{c:"4",f:"SS"},120807:{c:"5",f:"SS"},120808:{c:"6",f:"SS"},120809:{c:"7",f:"SS"},120810:{c:"8",f:"SS"},120811:{c:"9",f:"SS"},120812:{c:"0",f:"SSB"},120813:{c:"1",f:"SSB"},120814:{c:"2",f:"SSB"},120815:{c:"3",f:"SSB"},120816:{c:"4",f:"SSB"},120817:{c:"5",f:"SSB"},120818:{c:"6",f:"SSB"},120819:{c:"7",f:"SSB"},120820:{c:"8",f:"SSB"},120821:{c:"9",f:"SSB"},120822:{c:"0",f:"T"},120823:{c:"1",f:"T"},120824:{c:"2",f:"T"},120825:{c:"3",f:"T"},120826:{c:"4",f:"T"},120827:{c:"5",f:"T"},120828:{c:"6",f:"T"},120829:{c:"7",f:"T"},120830:{c:"8",f:"T"},120831:{c:"9",f:"T"}})},83356:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.sansSerifBoldItalic=void 0;var i=e(92952);var f=e(47033);t.sansSerifBoldItalic=(0,i.AddCSS)(f.sansSerifBoldItalic,{305:{f:"SSB"},567:{f:"SSB"}})},11211:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.sansSerifBold=void 0;var i=e(92952);var f=e(94872);t.sansSerifBold=(0,i.AddCSS)(f.sansSerifBold,{8213:{c:"\\2014"},8215:{c:"_"},8260:{c:"/"},8710:{c:"\\394"}})},76316:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.sansSerifItalic=void 0;var i=e(92952);var f=e(9255);t.sansSerifItalic=(0,i.AddCSS)(f.sansSerifItalic,{913:{c:"A"},914:{c:"B"},917:{c:"E"},918:{c:"Z"},919:{c:"H"},921:{c:"I"},922:{c:"K"},924:{c:"M"},925:{c:"N"},927:{c:"O"},929:{c:"P"},932:{c:"T"},935:{c:"X"},8213:{c:"\\2014"},8215:{c:"_"},8260:{c:"/"},8710:{c:"\\394"}})},16651:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.sansSerif=void 0;var i=e(92952);var f=e(83366);t.sansSerif=(0,i.AddCSS)(f.sansSerif,{913:{c:"A"},914:{c:"B"},917:{c:"E"},918:{c:"Z"},919:{c:"H"},921:{c:"I"},922:{c:"K"},924:{c:"M"},925:{c:"N"},927:{c:"O"},929:{c:"P"},932:{c:"T"},935:{c:"X"},8213:{c:"\\2014"},8215:{c:"_"},8260:{c:"/"},8710:{c:"\\394"}})},56755:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.scriptBold=void 0;var i=e(21616);Object.defineProperty(t,"scriptBold",{enumerable:true,get:function(){return i.scriptBold}})},45491:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.script=void 0;var i=e(24062);Object.defineProperty(t,"script",{enumerable:true,get:function(){return i.script}})},7598:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.smallop=void 0;var i=e(92952);var f=e(22578);t.smallop=(0,i.AddCSS)(f.smallop,{8260:{c:"/"},9001:{c:"\\27E8"},9002:{c:"\\27E9"},10072:{c:"\\2223"},10764:{c:"\\222C\\222C"},12296:{c:"\\27E8"},12297:{c:"\\27E9"}})},83085:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.texCalligraphicBold=void 0;var i=e(92952);var f=e(70286);t.texCalligraphicBold=(0,i.AddCSS)(f.texCalligraphicBold,{305:{f:"B"},567:{f:"B"}})},74681:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.texCalligraphic=void 0;var i=e(57552);Object.defineProperty(t,"texCalligraphic",{enumerable:true,get:function(){return i.texCalligraphic}})},91611:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.texMathit=void 0;var i=e(24398);Object.defineProperty(t,"texMathit",{enumerable:true,get:function(){return i.texMathit}})},56848:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.texOldstyleBold=void 0;var i=e(20628);Object.defineProperty(t,"texOldstyleBold",{enumerable:true,get:function(){return i.texOldstyleBold}})},74878:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.texOldstyle=void 0;var i=e(41855);Object.defineProperty(t,"texOldstyle",{enumerable:true,get:function(){return i.texOldstyle}})},99652:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.texSize3=void 0;var i=e(92952);var f=e(75431);t.texSize3=(0,i.AddCSS)(f.texSize3,{8260:{c:"/"},9001:{c:"\\27E8"},9002:{c:"\\27E9"},12296:{c:"\\27E8"},12297:{c:"\\27E9"}})},39729:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.texSize4=void 0;var i=e(92952);var f=e(98278);t.texSize4=(0,i.AddCSS)(f.texSize4,{8260:{c:"/"},9001:{c:"\\27E8"},9002:{c:"\\27E9"},12296:{c:"\\27E8"},12297:{c:"\\27E9"},57685:{c:"\\E153\\E152"},57686:{c:"\\E151\\E150"}})},82599:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.texVariant=void 0;var i=e(92952);var f=e(90456);t.texVariant=(0,i.AddCSS)(f.texVariant,{1008:{c:"\\E009"},8463:{f:""},8740:{c:"\\E006"},8742:{c:"\\E007"},8808:{c:"\\E00C"},8809:{c:"\\E00D"},8816:{c:"\\E011"},8817:{c:"\\E00E"},8840:{c:"\\E016"},8841:{c:"\\E018"},8842:{c:"\\E01A"},8843:{c:"\\E01B"},10887:{c:"\\E010"},10888:{c:"\\E00F"},10955:{c:"\\E017"},10956:{c:"\\E019"}})},30861:function(c,t,e){var i=this&&this.__assign||function(){i=Object.assign||function(c){for(var t,e=1,i=arguments.length;e0)&&!(f=i.next()).done)r.push(f.value)}catch(a){s={error:a}}finally{try{if(f&&!f.done&&(e=i["return"]))e.call(i)}finally{if(s)throw s.error}}return r};var r=this&&this.__spreadArray||function(c,t,e){if(e||arguments.length===2)for(var i=0,f=t.length,r;i=c.length)c=void 0;return{value:c&&c[i++],done:!c}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(t,"__esModule",{value:true});t.FontData=t.NOSTRETCH=t.H=t.V=void 0;var a=e(34981);t.V=1;t.H=2;t.NOSTRETCH={dir:0};var o=function(){function c(c){var t,e,o,n;if(c===void 0){c=null}this.variant={};this.delimiters={};this.cssFontMap={};this.remapChars={};this.skewIcFactor=.75;var l=this.constructor;this.options=(0,a.userOptions)((0,a.defaultOptions)({},l.OPTIONS),c);this.params=i({},l.defaultParams);this.sizeVariants=r([],f(l.defaultSizeVariants),false);this.stretchVariants=r([],f(l.defaultStretchVariants),false);this.cssFontMap=i({},l.defaultCssFonts);try{for(var d=s(Object.keys(this.cssFontMap)),S=d.next();!S.done;S=d.next()){var u=S.value;if(this.cssFontMap[u][0]==="unknown"){this.cssFontMap[u][0]=this.options.unknownFamily}}}catch(v){t={error:v}}finally{try{if(S&&!S.done&&(e=d.return))e.call(d)}finally{if(t)throw t.error}}this.cssFamilyPrefix=l.defaultCssFamilyPrefix;this.createVariants(l.defaultVariants);this.defineDelimiters(l.defaultDelimiters);try{for(var h=s(Object.keys(l.defaultChars)),p=h.next();!p.done;p=h.next()){var B=p.value;this.defineChars(B,l.defaultChars[B])}}catch(m){o={error:m}}finally{try{if(p&&!p.done&&(n=h.return))n.call(h)}finally{if(o)throw o.error}}this.defineRemap("accent",l.defaultAccentMap);this.defineRemap("mo",l.defaultMoMap);this.defineRemap("mn",l.defaultMnMap)}c.charOptions=function(c,t){var e=c[t];if(e.length===3){e[3]={}}return e[3]};Object.defineProperty(c.prototype,"styles",{get:function(){return this._styles},set:function(c){this._styles=c},enumerable:false,configurable:true});c.prototype.createVariant=function(c,t,e){if(t===void 0){t=null}if(e===void 0){e=null}var i={linked:[],chars:t?Object.create(this.variant[t].chars):{}};if(e&&this.variant[e]){Object.assign(i.chars,this.variant[e].chars);this.variant[e].linked.push(i.chars);i.chars=Object.create(i.chars)}this.remapSmpChars(i.chars,c);this.variant[c]=i};c.prototype.remapSmpChars=function(c,t){var e,i,r,a;var o=this.constructor;if(o.VariantSmp[t]){var n=o.SmpRemap;var l=[null,null,o.SmpRemapGreekU,o.SmpRemapGreekL];try{for(var d=s(o.SmpRanges),S=d.next();!S.done;S=d.next()){var u=f(S.value,3),h=u[0],p=u[1],B=u[2];var v=o.VariantSmp[t][h];if(!v)continue;for(var m=p;m<=B;m++){if(m===930)continue;var k=v+m-p;c[m]=this.smpChar(n[k]||k)}if(l[h]){try{for(var y=(r=void 0,s(Object.keys(l[h]).map((function(c){return parseInt(c)})))),I=y.next();!I.done;I=y.next()){var m=I.value;c[m]=this.smpChar(v+l[h][m])}}catch(A){r={error:A}}finally{try{if(I&&!I.done&&(a=y.return))a.call(y)}finally{if(r)throw r.error}}}}}catch(b){e={error:b}}finally{try{if(S&&!S.done&&(i=d.return))i.call(d)}finally{if(e)throw e.error}}}if(t==="bold"){c[988]=this.smpChar(120778);c[989]=this.smpChar(120779)}};c.prototype.smpChar=function(c){return[,,,{smp:c}]};c.prototype.createVariants=function(c){var t,e;try{for(var i=s(c),f=i.next();!f.done;f=i.next()){var r=f.value;this.createVariant(r[0],r[1],r[2])}}catch(a){t={error:a}}finally{try{if(f&&!f.done&&(e=i.return))e.call(i)}finally{if(t)throw t.error}}};c.prototype.defineChars=function(c,t){var e,i;var f=this.variant[c];Object.assign(f.chars,t);try{for(var r=s(f.linked),a=r.next();!a.done;a=r.next()){var o=a.value;Object.assign(o,t)}}catch(n){e={error:n}}finally{try{if(a&&!a.done&&(i=r.return))i.call(r)}finally{if(e)throw e.error}}};c.prototype.defineDelimiters=function(c){Object.assign(this.delimiters,c)};c.prototype.defineRemap=function(c,t){if(!this.remapChars.hasOwnProperty(c)){this.remapChars[c]={}}Object.assign(this.remapChars[c],t)};c.prototype.getDelimiter=function(c){return this.delimiters[c]};c.prototype.getSizeVariant=function(c,t){if(this.delimiters[c].variants){t=this.delimiters[c].variants[t]}return this.sizeVariants[t]};c.prototype.getStretchVariant=function(c,t){return this.stretchVariants[this.delimiters[c].stretchv?this.delimiters[c].stretchv[t]:0]};c.prototype.getChar=function(c,t){return this.variant[c].chars[t]};c.prototype.getVariant=function(c){return this.variant[c]};c.prototype.getCssFont=function(c){return this.cssFontMap[c]||["serif",false,false]};c.prototype.getFamily=function(c){return this.cssFamilyPrefix?this.cssFamilyPrefix+", "+c:c};c.prototype.getRemappedChar=function(c,t){var e=this.remapChars[c]||{};return e[t]};c.OPTIONS={unknownFamily:"serif"};c.JAX="common";c.NAME="";c.defaultVariants=[["normal"],["bold","normal"],["italic","normal"],["bold-italic","italic","bold"],["double-struck","bold"],["fraktur","normal"],["bold-fraktur","bold","fraktur"],["script","italic"],["bold-script","bold-italic","script"],["sans-serif","normal"],["bold-sans-serif","bold","sans-serif"],["sans-serif-italic","italic","sans-serif"],["sans-serif-bold-italic","bold-italic","bold-sans-serif"],["monospace","normal"]];c.defaultCssFonts={normal:["unknown",false,false],bold:["unknown",false,true],italic:["unknown",true,false],"bold-italic":["unknown",true,true],"double-struck":["unknown",false,true],fraktur:["unknown",false,false],"bold-fraktur":["unknown",false,true],script:["cursive",false,false],"bold-script":["cursive",false,true],"sans-serif":["sans-serif",false,false],"bold-sans-serif":["sans-serif",false,true],"sans-serif-italic":["sans-serif",true,false],"sans-serif-bold-italic":["sans-serif",true,true],monospace:["monospace",false,false]};c.defaultCssFamilyPrefix="";c.VariantSmp={bold:[119808,119834,120488,120514,120782],italic:[119860,119886,120546,120572],"bold-italic":[119912,119938,120604,120630],script:[119964,119990],"bold-script":[120016,120042],fraktur:[120068,120094],"double-struck":[120120,120146,,,120792],"bold-fraktur":[120172,120198],"sans-serif":[120224,120250,,,120802],"bold-sans-serif":[120276,120302,120662,120688,120812],"sans-serif-italic":[120328,120354],"sans-serif-bold-italic":[120380,120406,120720,120746],monospace:[120432,120458,,,120822]};c.SmpRanges=[[0,65,90],[1,97,122],[2,913,937],[3,945,969],[4,48,57]];c.SmpRemap={119893:8462,119965:8492,119968:8496,119969:8497,119971:8459,119972:8464,119975:8466,119976:8499,119981:8475,119994:8495,119996:8458,120004:8500,120070:8493,120075:8460,120076:8465,120085:8476,120093:8488,120122:8450,120127:8461,120133:8469,120135:8473,120136:8474,120137:8477,120145:8484};c.SmpRemapGreekU={8711:25,1012:17};c.SmpRemapGreekL={977:27,981:29,982:31,1008:28,1009:30,1013:26,8706:25};c.defaultAccentMap={768:"ˋ",769:"ˊ",770:"ˆ",771:"˜",772:"ˉ",774:"˘",775:"˙",776:"¨",778:"˚",780:"ˇ",8594:"⃗",8242:"'",8243:"''",8244:"'''",8245:"`",8246:"``",8247:"```",8279:"''''",8400:"↼",8401:"⇀",8406:"←",8417:"↔",8432:"*",8411:"...",8412:"....",8428:"⇁",8429:"↽",8430:"←",8431:"→"};c.defaultMoMap={45:"−"};c.defaultMnMap={45:"−"};c.defaultParams={x_height:.442,quad:1,num1:.676,num2:.394,num3:.444,denom1:.686,denom2:.345,sup1:.413,sup2:.363,sup3:.289,sub1:.15,sub2:.247,sup_drop:.386,sub_drop:.05,delim1:2.39,delim2:1,axis_height:.25,rule_thickness:.06,big_op_spacing1:.111,big_op_spacing2:.167,big_op_spacing3:.2,big_op_spacing4:.6,big_op_spacing5:.1,surd_height:.075,scriptspace:.05,nulldelimiterspace:.12,delimiterfactor:901,delimitershortfall:.3,min_rule_thickness:1.25,separation_factor:1.75,extra_ic:.033};c.defaultDelimiters={};c.defaultChars={};c.defaultSizeVariants=[];c.defaultStretchVariants=[];return c}();t.FontData=o},6382:function(c,t){var e=this&&this.__extends||function(){var c=function(t,e){c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,t){c.__proto__=t}||function(c,t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e))c[e]=t[e]};return c(t,e)};return function(t,e){if(typeof e!=="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");c(t,e);function i(){this.constructor=t}t.prototype=e===null?Object.create(e):(i.prototype=e.prototype,new i)}}();var i=this&&this.__assign||function(){i=Object.assign||function(c){for(var t,e=1,i=arguments.length;e0)&&!(f=i.next()).done)r.push(f.value)}catch(a){s={error:a}}finally{try{if(f&&!f.done&&(e=i["return"]))e.call(i)}finally{if(s)throw s.error}}return r};var r=this&&this.__spreadArray||function(c,t,e){if(e||arguments.length===2)for(var i=0,f=t.length,r;i{Object.defineProperty(t,"__esModule",{value:true});t.boldItalic=void 0;t.boldItalic={47:[.711,.21,.894],305:[.452,.008,.394,{sk:.0319}],567:[.451,.201,.439,{sk:.0958}],8260:[.711,.21,.894],8710:[.711,0,.958,{sk:.192}],10744:[.711,.21,.894]}},95746:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.bold=void 0;t.bold={33:[.705,0,.35],34:[.694,-.329,.603],35:[.694,.193,.958],36:[.75,.056,.575],37:[.75,.056,.958],38:[.705,.011,.894],39:[.694,-.329,.319],40:[.75,.249,.447],41:[.75,.249,.447],42:[.75,-.306,.575],43:[.633,.131,.894],44:[.171,.194,.319],45:[.278,-.166,.383],46:[.171,0,.319],47:[.75,.25,.575],58:[.444,0,.319],59:[.444,.194,.319],60:[.587,.085,.894],61:[.393,-.109,.894],62:[.587,.085,.894],63:[.7,0,.543],64:[.699,.006,.894],91:[.75,.25,.319],92:[.75,.25,.575],93:[.75,.25,.319],94:[.694,-.52,.575],95:[-.01,.061,.575],96:[.706,-.503,.575],123:[.75,.25,.575],124:[.75,.249,.319],125:[.75,.25,.575],126:[.344,-.202,.575],168:[.695,-.535,.575],172:[.371,-.061,.767],175:[.607,-.54,.575],176:[.702,-.536,.575],177:[.728,.035,.894],180:[.706,-.503,.575],183:[.336,-.166,.319],215:[.53,.028,.894],247:[.597,.096,.894],305:[.442,0,.278,{sk:.0278}],567:[.442,.205,.306,{sk:.0833}],697:[.563,-.033,.344],710:[.694,-.52,.575],711:[.66,-.515,.575],713:[.607,-.54,.575],714:[.706,-.503,.575],715:[.706,-.503,.575],728:[.694,-.5,.575],729:[.695,-.525,.575],730:[.702,-.536,.575],732:[.694,-.552,.575],768:[.706,-.503,0],769:[.706,-.503,0],770:[.694,-.52,0],771:[.694,-.552,0],772:[.607,-.54,0],774:[.694,-.5,0],775:[.695,-.525,0],776:[.695,-.535,0],778:[.702,-.536,0],779:[.714,-.511,0],780:[.66,-.515,0],824:[.711,.21,0],8194:[0,0,.5],8195:[0,0,.999],8196:[0,0,.333],8197:[0,0,.25],8198:[0,0,.167],8201:[0,0,.167],8202:[0,0,.083],8211:[.3,-.249,.575],8212:[.3,-.249,1.15],8213:[.3,-.249,1.15],8214:[.75,.248,.575],8215:[-.01,.061,.575],8216:[.694,-.329,.319],8217:[.694,-.329,.319],8220:[.694,-.329,.603],8221:[.694,-.329,.603],8224:[.702,.211,.511],8225:[.702,.202,.511],8226:[.474,-.028,.575],8230:[.171,0,1.295],8242:[.563,-.033,.344],8243:[.563,0,.688],8244:[.563,0,1.032],8254:[.607,-.54,.575],8260:[.75,.25,.575],8279:[.563,0,1.376],8407:[.723,-.513,.575],8463:[.694,.008,.668,{sk:-.0319}],8467:[.702,.019,.474,{sk:.128}],8472:[.461,.21,.74],8501:[.694,0,.703],8592:[.518,.017,1.15],8593:[.694,.193,.575],8594:[.518,.017,1.15],8595:[.694,.194,.575],8596:[.518,.017,1.15],8597:[.767,.267,.575],8598:[.724,.194,1.15],8599:[.724,.193,1.15],8600:[.694,.224,1.15],8601:[.694,.224,1.15],8602:[.711,.21,1.15],8603:[.711,.21,1.15],8614:[.518,.017,1.15],8617:[.518,.017,1.282],8618:[.518,.017,1.282],8622:[.711,.21,1.15],8636:[.518,-.22,1.15],8637:[.281,.017,1.15],8640:[.518,-.22,1.15],8641:[.281,.017,1.15],8652:[.718,.017,1.15],8653:[.711,.21,1.15],8654:[.711,.21,1.15],8655:[.711,.21,1.15],8656:[.547,.046,1.15],8657:[.694,.193,.703],8658:[.547,.046,1.15],8659:[.694,.194,.703],8660:[.547,.046,1.15],8661:[.767,.267,.703],8704:[.694,.016,.639],8707:[.694,0,.639],8708:[.711,.21,.639],8709:[.767,.073,.575],8710:[.698,0,.958],8712:[.587,.086,.767],8713:[.711,.21,.767],8715:[.587,.086,.767],8716:[.711,.21,.767],8722:[.281,-.221,.894],8723:[.537,.227,.894],8725:[.75,.25,.575],8726:[.75,.25,.575],8727:[.472,-.028,.575],8728:[.474,-.028,.575],8729:[.474,-.028,.575],8730:[.82,.18,.958,{ic:.03}],8733:[.451,.008,.894],8734:[.452,.008,1.15],8736:[.714,0,.722],8739:[.75,.249,.319],8740:[.75,.249,.319],8741:[.75,.248,.575],8742:[.75,.248,.575],8743:[.604,.017,.767],8744:[.604,.016,.767],8745:[.603,.016,.767],8746:[.604,.016,.767],8747:[.711,.211,.569,{ic:.063}],8764:[.391,-.109,.894],8768:[.583,.082,.319],8769:[.711,.21,.894],8771:[.502,0,.894],8772:[.711,.21,.894],8773:[.638,.027,.894],8775:[.711,.21,.894],8776:[.524,-.032,.894],8777:[.711,.21,.894],8781:[.533,.032,.894],8784:[.721,-.109,.894],8800:[.711,.21,.894],8801:[.505,0,.894],8802:[.711,.21,.894],8804:[.697,.199,.894],8805:[.697,.199,.894],8810:[.617,.116,1.15],8811:[.618,.116,1.15],8813:[.711,.21,.894],8814:[.711,.21,.894],8815:[.711,.21,.894],8816:[.711,.21,.894],8817:[.711,.21,.894],8826:[.585,.086,.894],8827:[.586,.086,.894],8832:[.711,.21,.894],8833:[.711,.21,.894],8834:[.587,.085,.894],8835:[.587,.086,.894],8836:[.711,.21,.894],8837:[.711,.21,.894],8838:[.697,.199,.894],8839:[.697,.199,.894],8840:[.711,.21,.894],8841:[.711,.21,.894],8846:[.604,.016,.767],8849:[.697,.199,.894],8850:[.697,.199,.894],8851:[.604,0,.767],8852:[.604,0,.767],8853:[.632,.132,.894],8854:[.632,.132,.894],8855:[.632,.132,.894],8856:[.632,.132,.894],8857:[.632,.132,.894],8866:[.693,0,.703],8867:[.693,0,.703],8868:[.694,0,.894],8869:[.693,0,.894],8872:[.75,.249,.974],8876:[.711,.21,.703],8877:[.75,.249,.974],8900:[.523,.021,.575],8901:[.336,-.166,.319],8902:[.502,0,.575],8904:[.54,.039,1],8930:[.711,.21,.894],8931:[.711,.21,.894],8942:[.951,.029,.319],8943:[.336,-.166,1.295],8945:[.871,-.101,1.323],8968:[.75,.248,.511],8969:[.75,.248,.511],8970:[.749,.248,.511],8971:[.749,.248,.511],8994:[.405,-.108,1.15],8995:[.392,-.126,1.15],9001:[.75,.249,.447],9002:[.75,.249,.447],9651:[.711,0,1.022],9653:[.711,0,1.022],9657:[.54,.039,.575],9661:[.5,.21,1.022],9663:[.5,.21,1.022],9667:[.539,.038,.575],9711:[.711,.211,1.15],9824:[.719,.129,.894],9825:[.711,.024,.894],9826:[.719,.154,.894],9827:[.719,.129,.894],9837:[.75,.017,.447],9838:[.741,.223,.447],9839:[.724,.224,.447],10072:[.75,.249,.319],10216:[.75,.249,.447],10217:[.75,.249,.447],10229:[.518,.017,1.805],10230:[.518,.017,1.833],10231:[.518,.017,2.126],10232:[.547,.046,1.868],10233:[.547,.046,1.87],10234:[.547,.046,2.126],10236:[.518,.017,1.833],10744:[.711,.21,.894],10799:[.53,.028,.894],10815:[.686,0,.9],10927:[.696,.199,.894],10928:[.697,.199,.894],12296:[.75,.249,.447],12297:[.75,.249,.447]}},6987:(c,t,e)=>{Object.defineProperty(t,"__esModule",{value:true});t.delimiters=t.VSIZES=t.HDW3=t.HDW2=t.HDW1=void 0;var i=e(30861);t.HDW1=[.75,.25,.875];t.HDW2=[.85,.349,.667];t.HDW3=[.583,.082,.5];t.VSIZES=[1,1.2,1.8,2.4,3];var f={c:47,dir:i.V,sizes:t.VSIZES};var r={c:175,dir:i.H,sizes:[.5],stretch:[0,175],HDW:[.59,-.544,.5]};var s={c:710,dir:i.H,sizes:[.5,.556,1,1.444,1.889]};var a={c:732,dir:i.H,sizes:[.5,.556,1,1.444,1.889]};var o={c:8211,dir:i.H,sizes:[.5],stretch:[0,8211],HDW:[.285,-.248,.5]};var n={c:8592,dir:i.H,sizes:[1],stretch:[8592,8722],HDW:t.HDW3};var l={c:8594,dir:i.H,sizes:[1],stretch:[0,8722,8594],HDW:t.HDW3};var d={c:8596,dir:i.H,sizes:[1],stretch:[8592,8722,8594],HDW:t.HDW3};var S={c:8612,dir:i.H,stretch:[8592,8722,8739],HDW:t.HDW3,min:1.278};var u={c:8614,dir:i.H,sizes:[1],stretch:[8739,8722,8594],HDW:t.HDW3};var h={c:8656,dir:i.H,sizes:[1],stretch:[8656,61],HDW:t.HDW3};var p={c:8658,dir:i.H,sizes:[1],stretch:[0,61,8658],HDW:t.HDW3};var B={c:8660,dir:i.H,sizes:[1],stretch:[8656,61,8658],HDW:t.HDW3};var v={c:8722,dir:i.H,sizes:[.778],stretch:[0,8722],HDW:t.HDW3};var m={c:8739,dir:i.V,sizes:[1],stretch:[0,8739],HDW:[.627,.015,.333]};var k={c:9180,dir:i.H,sizes:[.778,1],schar:[8994,8994],variants:[5,0],stretch:[57680,57684,57681],HDW:[.32,.2,.5]};var y={c:9181,dir:i.H,sizes:[.778,1],schar:[8995,8995],variants:[5,0],stretch:[57682,57684,57683],HDW:[.32,.2,.5]};var I={c:9182,dir:i.H,stretch:[57680,57684,57681,57685],HDW:[.32,.2,.5],min:1.8};var A={c:9183,dir:i.H,stretch:[57682,57684,57683,57686],HDW:[.32,.2,.5],min:1.8};var b={c:10216,dir:i.V,sizes:t.VSIZES};var x={c:10217,dir:i.V,sizes:t.VSIZES};var M={c:10502,dir:i.H,stretch:[8656,61,8739],HDW:t.HDW3,min:1.278};var _={c:10503,dir:i.H,stretch:[8872,61,8658],HDW:t.HDW3,min:1.278};t.delimiters={40:{dir:i.V,sizes:t.VSIZES,stretch:[9115,9116,9117],HDW:[.85,.349,.875]},41:{dir:i.V,sizes:t.VSIZES,stretch:[9118,9119,9120],HDW:[.85,.349,.875]},45:v,47:f,61:{dir:i.H,sizes:[.778],stretch:[0,61],HDW:t.HDW3},91:{dir:i.V,sizes:t.VSIZES,stretch:[9121,9122,9123],HDW:t.HDW2},92:{dir:i.V,sizes:t.VSIZES},93:{dir:i.V,sizes:t.VSIZES,stretch:[9124,9125,9126],HDW:t.HDW2},94:s,95:o,123:{dir:i.V,sizes:t.VSIZES,stretch:[9127,9130,9129,9128],HDW:[.85,.349,.889]},124:{dir:i.V,sizes:[1],stretch:[0,8739],HDW:[.75,.25,.333]},125:{dir:i.V,sizes:t.VSIZES,stretch:[9131,9130,9133,9132],HDW:[.85,.349,.889]},126:a,175:r,710:s,713:r,732:a,770:s,771:a,818:o,8211:o,8212:o,8213:o,8214:{dir:i.V,sizes:[.602,1],schar:[0,8741],variants:[1,0],stretch:[0,8741],HDW:[.602,0,.556]},8215:o,8254:r,8407:l,8592:n,8593:{dir:i.V,sizes:[.888],stretch:[8593,9168],HDW:[.6,0,.667]},8594:l,8595:{dir:i.V,sizes:[.888],stretch:[0,9168,8595],HDW:[.6,0,.667]},8596:d,8597:{dir:i.V,sizes:[1.044],stretch:[8593,9168,8595],HDW:t.HDW1},8606:{dir:i.H,sizes:[1],stretch:[8606,8722],HDW:t.HDW3},8608:{dir:i.H,sizes:[1],stretch:[0,8722,8608],HDW:t.HDW3},8612:S,8613:{dir:i.V,stretch:[8593,9168,8869],HDW:t.HDW1,min:1.555},8614:u,8615:{dir:i.V,stretch:[8868,9168,8595],HDW:t.HDW1,min:1.555},8624:{dir:i.V,sizes:[.722],stretch:[8624,9168],HDW:t.HDW1},8625:{dir:i.V,sizes:[.722],stretch:[8625,9168],HDW:t.HDW1},8636:{dir:i.H,sizes:[1],stretch:[8636,8722],HDW:t.HDW3},8637:{dir:i.H,sizes:[1],stretch:[8637,8722],HDW:t.HDW3},8638:{dir:i.V,sizes:[.888],stretch:[8638,9168],HDW:t.HDW1},8639:{dir:i.V,sizes:[.888],stretch:[8639,9168],HDW:t.HDW1},8640:{dir:i.H,sizes:[1],stretch:[0,8722,8640],HDW:t.HDW3},8641:{dir:i.H,sizes:[1],stretch:[0,8722,8641],HDW:t.HDW3},8642:{dir:i.V,sizes:[.888],stretch:[0,9168,8642],HDW:t.HDW1},8643:{dir:i.V,sizes:[.888],stretch:[0,9168,8643],HDW:t.HDW1},8656:h,8657:{dir:i.V,sizes:[.888],stretch:[8657,8214],HDW:[.599,0,.778]},8658:p,8659:{dir:i.V,sizes:[.888],stretch:[0,8214,8659],HDW:[.6,0,.778]},8660:B,8661:{dir:i.V,sizes:[1.044],stretch:[8657,8214,8659],HDW:[.75,.25,.778]},8666:{dir:i.H,sizes:[1],stretch:[8666,8801],HDW:[.464,-.036,.5]},8667:{dir:i.H,sizes:[1],stretch:[0,8801,8667],HDW:[.464,-.036,.5]},8722:v,8725:f,8730:{dir:i.V,sizes:t.VSIZES,stretch:[57345,57344,9143],fullExt:[.65,2.3],HDW:[.85,.35,1.056]},8739:m,8741:{dir:i.V,sizes:[1],stretch:[0,8741],HDW:[.627,.015,.556]},8968:{dir:i.V,sizes:t.VSIZES,stretch:[9121,9122],HDW:t.HDW2},8969:{dir:i.V,sizes:t.VSIZES,stretch:[9124,9125],HDW:t.HDW2},8970:{dir:i.V,sizes:t.VSIZES,stretch:[0,9122,9123],HDW:t.HDW2},8971:{dir:i.V,sizes:t.VSIZES,stretch:[0,9125,9126],HDW:t.HDW2},8978:k,8994:k,8995:y,9001:b,9002:x,9130:{dir:i.V,sizes:[.32],stretch:[9130,9130,9130],HDW:[.29,.015,.889]},9135:o,9136:{dir:i.V,sizes:[.989],stretch:[9127,9130,9133],HDW:[.75,.25,.889]},9137:{dir:i.V,sizes:[.989],stretch:[9131,9130,9129],HDW:[.75,.25,.889]},9140:{dir:i.H,stretch:[9484,8722,9488],HDW:t.HDW3,min:1},9141:{dir:i.H,stretch:[9492,8722,9496],HDW:t.HDW3,min:1},9168:{dir:i.V,sizes:[.602,1],schar:[0,8739],variants:[1,0],stretch:[0,8739],HDW:[.602,0,.333]},9180:k,9181:y,9182:I,9183:A,9184:{dir:i.H,stretch:[714,713,715],HDW:[.59,-.544,.5],min:1},9185:{dir:i.H,stretch:[715,713,714],HDW:[.59,-.544,.5],min:1},9472:o,10072:m,10216:b,10217:x,10222:{dir:i.V,sizes:[.989],stretch:[9127,9130,9129],HDW:[.75,.25,.889]},10223:{dir:i.V,sizes:[.989],stretch:[9131,9130,9133],HDW:[.75,.25,.889]},10229:n,10230:l,10231:d,10232:h,10233:p,10234:B,10235:S,10236:u,10237:M,10238:_,10502:M,10503:_,10574:{dir:i.H,stretch:[8636,8722,8640],HDW:t.HDW3,min:2},10575:{dir:i.V,stretch:[8638,9168,8642],HDW:t.HDW1,min:1.776},10576:{dir:i.H,stretch:[8637,8722,8641],HDW:t.HDW3,min:2},10577:{dir:i.V,stretch:[8639,9168,8643],HDW:t.HDW1,min:.5},10586:{dir:i.H,stretch:[8636,8722,8739],HDW:t.HDW3,min:1.278},10587:{dir:i.H,stretch:[8739,8722,8640],HDW:t.HDW3,min:1.278},10588:{dir:i.V,stretch:[8638,9168,8869],HDW:t.HDW1,min:1.556},10589:{dir:i.V,stretch:[8868,9168,8642],HDW:t.HDW1,min:1.556},10590:{dir:i.H,stretch:[8637,8722,8739],HDW:t.HDW3,min:1.278},10591:{dir:i.H,stretch:[8739,8722,8641],HDW:t.HDW3,min:1.278},10592:{dir:i.V,stretch:[8639,9168,8869],HDW:t.HDW1,min:1.776},10593:{dir:i.V,stretch:[8868,9168,8643],HDW:t.HDW1,min:1.776},12296:b,12297:x,65079:I,65080:A}},32249:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.doubleStruck=void 0;t.doubleStruck={}},45600:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.frakturBold=void 0;t.frakturBold={33:[.689,.012,.349],34:[.695,-.432,.254],38:[.696,.016,.871],39:[.695,-.436,.25],40:[.737,.186,.459],41:[.735,.187,.459],42:[.692,-.449,.328],43:[.598,.082,.893],44:[.107,.191,.328],45:[.275,-.236,.893],46:[.102,.015,.328],47:[.721,.182,.593],48:[.501,.012,.593],49:[.489,0,.593],50:[.491,0,.593],51:[.487,.193,.593],52:[.495,.196,.593],53:[.481,.19,.593],54:[.704,.012,.593],55:[.479,.197,.593],56:[.714,.005,.593],57:[.487,.195,.593],58:[.457,.012,.255],59:[.458,.19,.255],61:[.343,-.168,.582],63:[.697,.014,.428],91:[.74,.13,.257],93:[.738,.132,.257],94:[.734,-.452,.59],8216:[.708,-.411,.254],8217:[.692,-.394,.254],8260:[.721,.182,.593],58113:[.63,.027,.587],58114:[.693,.212,.394,{ic:.014}],58115:[.681,.219,.387],58116:[.473,.212,.593],58117:[.684,.027,.393],58120:[.679,.22,.981],58121:[.717,.137,.727]}},59534:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.fraktur=void 0;t.fraktur={33:[.689,.012,.296],34:[.695,-.432,.215],38:[.698,.011,.738],39:[.695,-.436,.212],40:[.737,.186,.389],41:[.735,.187,.389],42:[.692,-.449,.278],43:[.598,.082,.756],44:[.107,.191,.278],45:[.275,-.236,.756],46:[.102,.015,.278],47:[.721,.182,.502],48:[.492,.013,.502],49:[.468,0,.502],50:[.474,0,.502],51:[.473,.182,.502],52:[.476,.191,.502],53:[.458,.184,.502],54:[.7,.013,.502],55:[.468,.181,.502],56:[.705,.01,.502],57:[.469,.182,.502],58:[.457,.012,.216],59:[.458,.189,.216],61:[.368,-.132,.756],63:[.693,.011,.362],91:[.74,.13,.278],93:[.738,.131,.278],94:[.734,-.452,.5],8216:[.708,-.41,.215],8217:[.692,-.395,.215],8260:[.721,.182,.502],58112:[.683,.032,.497],58113:[.616,.03,.498],58114:[.68,.215,.333],58115:[.679,.224,.329],58116:[.471,.214,.503],58117:[.686,.02,.333],58118:[.577,.021,.334,{ic:.013}],58119:[.475,.022,.501,{ic:.013}]}},14141:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.italic=void 0;t.italic={33:[.716,0,.307,{ic:.073}],34:[.694,-.379,.514,{ic:.024}],35:[.694,.194,.818,{ic:.01}],37:[.75,.056,.818,{ic:.029}],38:[.716,.022,.767,{ic:.035}],39:[.694,-.379,.307,{ic:.07}],40:[.75,.25,.409,{ic:.108}],41:[.75,.25,.409],42:[.75,-.32,.511,{ic:.073}],43:[.557,.057,.767],44:[.121,.194,.307],45:[.251,-.18,.358],46:[.121,0,.307],47:[.716,.215,.778],48:[.665,.021,.511,{ic:.051}],49:[.666,0,.511],50:[.666,.022,.511,{ic:.04}],51:[.666,.022,.511,{ic:.051}],52:[.666,.194,.511],53:[.666,.022,.511,{ic:.056}],54:[.665,.022,.511,{ic:.054}],55:[.666,.022,.511,{ic:.123}],56:[.666,.021,.511,{ic:.042}],57:[.666,.022,.511,{ic:.042}],58:[.431,0,.307],59:[.431,.194,.307],61:[.367,-.133,.767],63:[.716,0,.511,{ic:.04}],64:[.705,.011,.767,{ic:.022}],91:[.75,.25,.307,{ic:.139}],93:[.75,.25,.307,{ic:.052}],94:[.694,-.527,.511,{ic:.017}],95:[-.025,.062,.511,{ic:.043}],126:[.318,-.208,.511,{ic:.06}],305:[.441,.01,.307,{ic:.033}],567:[.442,.204,.332],768:[.697,-.5,0],769:[.697,-.5,0,{ic:.039}],770:[.694,-.527,0,{ic:.017}],771:[.668,-.558,0,{ic:.06}],772:[.589,-.544,0,{ic:.054}],774:[.694,-.515,0,{ic:.062}],775:[.669,-.548,0],776:[.669,-.554,0,{ic:.045}],778:[.716,-.542,0],779:[.697,-.503,0,{ic:.065}],780:[.638,-.502,0,{ic:.029}],989:[.605,.085,.778],8211:[.285,-.248,.511,{ic:.043}],8212:[.285,-.248,1.022,{ic:.016}],8213:[.285,-.248,1.022,{ic:.016}],8215:[-.025,.062,.511,{ic:.043}],8216:[.694,-.379,.307,{ic:.055}],8217:[.694,-.379,.307,{ic:.07}],8220:[.694,-.379,.514,{ic:.092}],8221:[.694,-.379,.514,{ic:.024}],8260:[.716,.215,.778],8463:[.695,.013,.54,{ic:.022}],8710:[.716,0,.833,{sk:.167}],10744:[.716,.215,.778]}},63969:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.largeop=void 0;t.largeop={40:[1.15,.649,.597],41:[1.15,.649,.597],47:[1.15,.649,.811],91:[1.15,.649,.472],92:[1.15,.649,.811],93:[1.15,.649,.472],123:[1.15,.649,.667],125:[1.15,.649,.667],710:[.772,-.565,1],732:[.75,-.611,1],770:[.772,-.565,0],771:[.75,-.611,0],8214:[.602,0,.778],8260:[1.15,.649,.811],8593:[.6,0,.667],8595:[.6,0,.667],8657:[.599,0,.778],8659:[.6,0,.778],8719:[.95,.45,1.278],8720:[.95,.45,1.278],8721:[.95,.45,1.444],8730:[1.15,.65,1,{ic:.02}],8739:[.627,.015,.333],8741:[.627,.015,.556],8747:[1.36,.862,.556,{ic:.388}],8748:[1.36,.862,1.084,{ic:.388}],8749:[1.36,.862,1.592,{ic:.388}],8750:[1.36,.862,.556,{ic:.388}],8896:[.95,.45,1.111],8897:[.95,.45,1.111],8898:[.949,.45,1.111],8899:[.95,.449,1.111],8968:[1.15,.649,.528],8969:[1.15,.649,.528],8970:[1.15,.649,.528],8971:[1.15,.649,.528],9001:[1.15,.649,.611],9002:[1.15,.649,.611],9168:[.602,0,.667],10072:[.627,.015,.333],10216:[1.15,.649,.611],10217:[1.15,.649,.611],10752:[.949,.449,1.511],10753:[.949,.449,1.511],10754:[.949,.449,1.511],10756:[.95,.449,1.111],10758:[.95,.45,1.111],10764:[1.36,.862,2.168,{ic:.388}],12296:[1.15,.649,.611],12297:[1.15,.649,.611]}},58626:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.monospace=void 0;t.monospace={32:[0,0,.525],33:[.622,0,.525],34:[.623,-.333,.525],35:[.611,0,.525],36:[.694,.082,.525],37:[.694,.083,.525],38:[.622,.011,.525],39:[.611,-.287,.525],40:[.694,.082,.525],41:[.694,.082,.525],42:[.52,-.09,.525],43:[.531,-.081,.525],44:[.14,.139,.525],45:[.341,-.271,.525],46:[.14,0,.525],47:[.694,.083,.525],58:[.431,0,.525],59:[.431,.139,.525],60:[.557,-.055,.525],61:[.417,-.195,.525],62:[.557,-.055,.525],63:[.617,0,.525],64:[.617,.006,.525],91:[.694,.082,.525],92:[.694,.083,.525],93:[.694,.082,.525],94:[.611,-.46,.525],95:[-.025,.095,.525],96:[.681,-.357,.525],123:[.694,.083,.525],124:[.694,.082,.525],125:[.694,.083,.525],126:[.611,-.466,.525],127:[.612,-.519,.525],160:[0,0,.525],305:[.431,0,.525],567:[.431,.228,.525],697:[.623,-.334,.525],768:[.611,-.485,0],769:[.611,-.485,0],770:[.611,-.46,0],771:[.611,-.466,0],772:[.577,-.5,0],774:[.611,-.504,0],776:[.612,-.519,0],778:[.619,-.499,0],780:[.577,-.449,0],913:[.623,0,.525],914:[.611,0,.525],915:[.611,0,.525],916:[.623,0,.525],917:[.611,0,.525],918:[.611,0,.525],919:[.611,0,.525],920:[.621,.01,.525],921:[.611,0,.525],922:[.611,0,.525],923:[.623,0,.525],924:[.611,0,.525],925:[.611,0,.525],926:[.611,0,.525],927:[.621,.01,.525],928:[.611,0,.525],929:[.611,0,.525],931:[.611,0,.525],932:[.611,0,.525],933:[.622,0,.525],934:[.611,0,.525],935:[.611,0,.525],936:[.611,0,.525],937:[.622,0,.525],8215:[-.025,.095,.525],8242:[.623,-.334,.525],8243:[.623,0,1.05],8244:[.623,0,1.575],8260:[.694,.083,.525],8279:[.623,0,2.1],8710:[.623,0,.525]}},25190:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.normal=void 0;t.normal={32:[0,0,.25],33:[.716,0,.278],34:[.694,-.379,.5],35:[.694,.194,.833],36:[.75,.056,.5],37:[.75,.056,.833],38:[.716,.022,.778],39:[.694,-.379,.278],40:[.75,.25,.389],41:[.75,.25,.389],42:[.75,-.32,.5],43:[.583,.082,.778],44:[.121,.194,.278],45:[.252,-.179,.333],46:[.12,0,.278],47:[.75,.25,.5],48:[.666,.022,.5],49:[.666,0,.5],50:[.666,0,.5],51:[.665,.022,.5],52:[.677,0,.5],53:[.666,.022,.5],54:[.666,.022,.5],55:[.676,.022,.5],56:[.666,.022,.5],57:[.666,.022,.5],58:[.43,0,.278],59:[.43,.194,.278],60:[.54,.04,.778],61:[.583,.082,.778],62:[.54,.04,.778],63:[.705,0,.472],64:[.705,.011,.778],65:[.716,0,.75],66:[.683,0,.708],67:[.705,.021,.722],68:[.683,0,.764],69:[.68,0,.681],70:[.68,0,.653],71:[.705,.022,.785],72:[.683,0,.75],73:[.683,0,.361],74:[.683,.022,.514],75:[.683,0,.778],76:[.683,0,.625],77:[.683,0,.917],78:[.683,0,.75],79:[.705,.022,.778],80:[.683,0,.681],81:[.705,.193,.778],82:[.683,.022,.736],83:[.705,.022,.556],84:[.677,0,.722],85:[.683,.022,.75],86:[.683,.022,.75],87:[.683,.022,1.028],88:[.683,0,.75],89:[.683,0,.75],90:[.683,0,.611],91:[.75,.25,.278],92:[.75,.25,.5],93:[.75,.25,.278],94:[.694,-.531,.5],95:[-.025,.062,.5],96:[.699,-.505,.5],97:[.448,.011,.5],98:[.694,.011,.556],99:[.448,.011,.444],100:[.694,.011,.556],101:[.448,.011,.444],102:[.705,0,.306,{ic:.066}],103:[.453,.206,.5],104:[.694,0,.556],105:[.669,0,.278],106:[.669,.205,.306],107:[.694,0,.528],108:[.694,0,.278],109:[.442,0,.833],110:[.442,0,.556],111:[.448,.01,.5],112:[.442,.194,.556],113:[.442,.194,.528],114:[.442,0,.392],115:[.448,.011,.394],116:[.615,.01,.389],117:[.442,.011,.556],118:[.431,.011,.528],119:[.431,.011,.722],120:[.431,0,.528],121:[.431,.204,.528],122:[.431,0,.444],123:[.75,.25,.5],124:[.75,.249,.278],125:[.75,.25,.5],126:[.318,-.215,.5],160:[0,0,.25],163:[.714,.011,.769],165:[.683,0,.75],168:[.669,-.554,.5],172:[.356,-.089,.667],174:[.709,.175,.947],175:[.59,-.544,.5],176:[.715,-.542,.5],177:[.666,0,.778],180:[.699,-.505,.5],183:[.31,-.19,.278],215:[.491,-.009,.778],240:[.749,.021,.556],247:[.537,.036,.778],305:[.442,0,.278,{sk:.0278}],567:[.442,.205,.306,{sk:.0833}],697:[.56,-.043,.275],710:[.694,-.531,.5],711:[.644,-.513,.5],713:[.59,-.544,.5],714:[.699,-.505,.5],715:[.699,-.505,.5],728:[.694,-.515,.5],729:[.669,-.549,.5],730:[.715,-.542,.5],732:[.668,-.565,.5],768:[.699,-.505,0],769:[.699,-.505,0],770:[.694,-.531,0],771:[.668,-.565,0],772:[.59,-.544,0],774:[.694,-.515,0],775:[.669,-.549,0],776:[.669,-.554,0],778:[.715,-.542,0],779:[.701,-.51,0],780:[.644,-.513,0],824:[.716,.215,0],913:[.716,0,.75],914:[.683,0,.708],915:[.68,0,.625],916:[.716,0,.833],917:[.68,0,.681],918:[.683,0,.611],919:[.683,0,.75],920:[.705,.022,.778],921:[.683,0,.361],922:[.683,0,.778],923:[.716,0,.694],924:[.683,0,.917],925:[.683,0,.75],926:[.677,0,.667],927:[.705,.022,.778],928:[.68,0,.75],929:[.683,0,.681],931:[.683,0,.722],932:[.677,0,.722],933:[.705,0,.778],934:[.683,0,.722],935:[.683,0,.75],936:[.683,0,.778],937:[.704,0,.722],8192:[0,0,.5],8193:[0,0,1],8194:[0,0,.5],8195:[0,0,1],8196:[0,0,.333],8197:[0,0,.25],8198:[0,0,.167],8201:[0,0,.167],8202:[0,0,.1],8203:[0,0,0],8204:[0,0,0],8211:[.285,-.248,.5],8212:[.285,-.248,1],8213:[.285,-.248,1],8214:[.75,.25,.5],8215:[-.025,.062,.5],8216:[.694,-.379,.278],8217:[.694,-.379,.278],8220:[.694,-.379,.5],8221:[.694,-.379,.5],8224:[.705,.216,.444],8225:[.705,.205,.444],8226:[.444,-.055,.5],8230:[.12,0,1.172],8242:[.56,-.043,.275],8243:[.56,0,.55],8244:[.56,0,.825],8245:[.56,-.043,.275],8246:[.56,0,.55],8247:[.56,0,.825],8254:[.59,-.544,.5],8260:[.75,.25,.5],8279:[.56,0,1.1],8288:[0,0,0],8289:[0,0,0],8290:[0,0,0],8291:[0,0,0],8292:[0,0,0],8407:[.714,-.516,.5],8450:[.702,.019,.722],8459:[.717,.036,.969,{ic:.272,sk:.333}],8460:[.666,.133,.72],8461:[.683,0,.778],8462:[.694,.011,.576,{sk:-.0278}],8463:[.695,.013,.54,{ic:.022}],8464:[.717,.017,.809,{ic:.137,sk:.333}],8465:[.686,.026,.554],8466:[.717,.017,.874,{ic:.161,sk:.306}],8467:[.705,.02,.417,{sk:.111}],8469:[.683,.02,.722],8472:[.453,.216,.636,{sk:.111}],8473:[.683,0,.611],8474:[.701,.181,.778],8475:[.717,.017,.85,{ic:.037,sk:.194}],8476:[.686,.026,.828],8477:[.683,0,.722],8484:[.683,0,.667],8486:[.704,0,.722],8487:[.684,.022,.722],8488:[.729,.139,.602],8492:[.708,.028,.908,{ic:.02,sk:.194}],8493:[.685,.024,.613],8496:[.707,.008,.562,{ic:.156,sk:.139}],8497:[.735,.036,.895,{ic:.095,sk:.222}],8498:[.695,0,.556],8499:[.721,.05,1.08,{ic:.136,sk:.444}],8501:[.694,0,.611],8502:[.763,.021,.667,{ic:.02}],8503:[.764,.043,.444],8504:[.764,.043,.667],8513:[.705,.023,.639],8592:[.511,.011,1],8593:[.694,.193,.5],8594:[.511,.011,1],8595:[.694,.194,.5],8596:[.511,.011,1],8597:[.772,.272,.5],8598:[.72,.195,1],8599:[.72,.195,1],8600:[.695,.22,1],8601:[.695,.22,1],8602:[.437,-.06,1],8603:[.437,-.06,1],8606:[.417,-.083,1],8608:[.417,-.083,1],8610:[.417,-.083,1.111],8611:[.417,-.083,1.111],8614:[.511,.011,1],8617:[.511,.011,1.126],8618:[.511,.011,1.126],8619:[.575,.041,1],8620:[.575,.041,1],8621:[.417,-.083,1.389],8622:[.437,-.06,1],8624:[.722,0,.5],8625:[.722,0,.5],8630:[.461,0,1],8631:[.46,0,1],8634:[.65,.083,.778],8635:[.65,.083,.778],8636:[.511,-.23,1],8637:[.27,.011,1],8638:[.694,.194,.417],8639:[.694,.194,.417],8640:[.511,-.23,1],8641:[.27,.011,1],8642:[.694,.194,.417],8643:[.694,.194,.417],8644:[.667,0,1],8646:[.667,0,1],8647:[.583,.083,1],8648:[.694,.193,.833],8649:[.583,.083,1],8650:[.694,.194,.833],8651:[.514,.014,1],8652:[.671,.011,1],8653:[.534,.035,1],8654:[.534,.037,1],8655:[.534,.035,1],8656:[.525,.024,1],8657:[.694,.194,.611],8658:[.525,.024,1],8659:[.694,.194,.611],8660:[.526,.025,1],8661:[.772,.272,.611],8666:[.611,.111,1],8667:[.611,.111,1],8669:[.417,-.083,1],8672:[.437,-.064,1.334],8674:[.437,-.064,1.334],8704:[.694,.022,.556],8705:[.846,.021,.5],8706:[.715,.022,.531,{ic:.035,sk:.0833}],8707:[.694,0,.556],8708:[.716,.215,.556],8709:[.772,.078,.5],8710:[.716,0,.833],8711:[.683,.033,.833],8712:[.54,.04,.667],8713:[.716,.215,.667],8715:[.54,.04,.667],8716:[.716,.215,.667],8717:[.44,0,.429,{ic:.027}],8719:[.75,.25,.944],8720:[.75,.25,.944],8721:[.75,.25,1.056],8722:[.583,.082,.778],8723:[.5,.166,.778],8724:[.766,.093,.778],8725:[.75,.25,.5],8726:[.75,.25,.5],8727:[.465,-.035,.5],8728:[.444,-.055,.5],8729:[.444,-.055,.5],8730:[.8,.2,.833,{ic:.02}],8733:[.442,.011,.778],8734:[.442,.011,1],8736:[.694,0,.722],8737:[.714,.02,.722],8738:[.551,.051,.722],8739:[.75,.249,.278],8740:[.75,.252,.278,{ic:.019}],8741:[.75,.25,.5],8742:[.75,.25,.5,{ic:.018}],8743:[.598,.022,.667],8744:[.598,.022,.667],8745:[.598,.022,.667],8746:[.598,.022,.667],8747:[.716,.216,.417,{ic:.055}],8748:[.805,.306,.819,{ic:.138}],8749:[.805,.306,1.166,{ic:.138}],8750:[.805,.306,.472,{ic:.138}],8756:[.471,.082,.667],8757:[.471,.082,.667],8764:[.367,-.133,.778],8765:[.367,-.133,.778],8768:[.583,.083,.278],8769:[.467,-.032,.778],8770:[.463,-.034,.778],8771:[.464,-.036,.778],8772:[.716,.215,.778],8773:[.589,-.022,.778],8775:[.652,.155,.778],8776:[.483,-.055,.778],8777:[.716,.215,.778],8778:[.579,.039,.778],8781:[.484,-.016,.778],8782:[.492,-.008,.778],8783:[.492,-.133,.778],8784:[.67,-.133,.778],8785:[.609,.108,.778],8786:[.601,.101,.778],8787:[.601,.102,.778],8790:[.367,-.133,.778],8791:[.721,-.133,.778],8796:[.859,-.133,.778],8800:[.716,.215,.778],8801:[.464,-.036,.778],8802:[.716,.215,.778],8804:[.636,.138,.778],8805:[.636,.138,.778],8806:[.753,.175,.778],8807:[.753,.175,.778],8808:[.752,.286,.778],8809:[.752,.286,.778],8810:[.568,.067,1],8811:[.567,.067,1],8812:[.75,.25,.5],8813:[.716,.215,.778],8814:[.708,.209,.778],8815:[.708,.209,.778],8816:[.801,.303,.778],8817:[.801,.303,.778],8818:[.732,.228,.778],8819:[.732,.228,.778],8820:[.732,.228,.778],8821:[.732,.228,.778],8822:[.681,.253,.778],8823:[.681,.253,.778],8824:[.716,.253,.778],8825:[.716,.253,.778],8826:[.539,.041,.778],8827:[.539,.041,.778],8828:[.58,.153,.778],8829:[.58,.154,.778],8830:[.732,.228,.778],8831:[.732,.228,.778],8832:[.705,.208,.778],8833:[.705,.208,.778],8834:[.54,.04,.778],8835:[.54,.04,.778],8836:[.716,.215,.778],8837:[.716,.215,.778],8838:[.636,.138,.778],8839:[.636,.138,.778],8840:[.801,.303,.778],8841:[.801,.303,.778],8842:[.635,.241,.778],8843:[.635,.241,.778],8846:[.598,.022,.667],8847:[.539,.041,.778],8848:[.539,.041,.778],8849:[.636,.138,.778],8850:[.636,.138,.778],8851:[.598,0,.667],8852:[.598,0,.667],8853:[.583,.083,.778],8854:[.583,.083,.778],8855:[.583,.083,.778],8856:[.583,.083,.778],8857:[.583,.083,.778],8858:[.582,.082,.778],8859:[.582,.082,.778],8861:[.582,.082,.778],8862:[.689,0,.778],8863:[.689,0,.778],8864:[.689,0,.778],8865:[.689,0,.778],8866:[.694,0,.611],8867:[.694,0,.611],8868:[.668,0,.778],8869:[.668,0,.778],8872:[.75,.249,.867],8873:[.694,0,.722],8874:[.694,0,.889],8876:[.695,0,.611],8877:[.695,0,.611],8878:[.695,0,.722],8879:[.695,0,.722],8882:[.539,.041,.778],8883:[.539,.041,.778],8884:[.636,.138,.778],8885:[.636,.138,.778],8888:[.408,-.092,1.111],8890:[.431,.212,.556],8891:[.716,0,.611],8892:[.716,0,.611],8896:[.75,.249,.833],8897:[.75,.249,.833],8898:[.75,.249,.833],8899:[.75,.249,.833],8900:[.488,-.012,.5],8901:[.31,-.19,.278],8902:[.486,-.016,.5],8903:[.545,.044,.778],8904:[.505,.005,.9],8905:[.492,-.008,.778],8906:[.492,-.008,.778],8907:[.694,.022,.778],8908:[.694,.022,.778],8909:[.464,-.036,.778],8910:[.578,.021,.76],8911:[.578,.022,.76],8912:[.54,.04,.778],8913:[.54,.04,.778],8914:[.598,.022,.667],8915:[.598,.022,.667],8916:[.736,.022,.667],8918:[.541,.041,.778],8919:[.541,.041,.778],8920:[.568,.067,1.333],8921:[.568,.067,1.333],8922:[.886,.386,.778],8923:[.886,.386,.778],8926:[.734,0,.778],8927:[.734,0,.778],8928:[.801,.303,.778],8929:[.801,.303,.778],8930:[.716,.215,.778],8931:[.716,.215,.778],8934:[.73,.359,.778],8935:[.73,.359,.778],8936:[.73,.359,.778],8937:[.73,.359,.778],8938:[.706,.208,.778],8939:[.706,.208,.778],8940:[.802,.303,.778],8941:[.801,.303,.778],8942:[1.3,.03,.278],8943:[.31,-.19,1.172],8945:[1.52,-.1,1.282],8965:[.716,0,.611],8966:[.813,.097,.611],8968:[.75,.25,.444],8969:[.75,.25,.444],8970:[.75,.25,.444],8971:[.75,.25,.444],8988:[.694,-.306,.5],8989:[.694,-.306,.5],8990:[.366,.022,.5],8991:[.366,.022,.5],8994:[.388,-.122,1],8995:[.378,-.134,1],9001:[.75,.25,.389],9002:[.75,.25,.389],9136:[.744,.244,.412],9137:[.744,.244,.412],9168:[.602,0,.667],9416:[.709,.175,.902],9484:[.694,-.306,.5],9488:[.694,-.306,.5],9492:[.366,.022,.5],9496:[.366,.022,.5],9585:[.694,.195,.889],9586:[.694,.195,.889],9632:[.689,0,.778],9633:[.689,0,.778],9642:[.689,0,.778],9650:[.575,.02,.722],9651:[.716,0,.889],9652:[.575,.02,.722],9653:[.716,0,.889],9654:[.539,.041,.778],9656:[.539,.041,.778],9657:[.505,.005,.5],9660:[.576,.019,.722],9661:[.5,.215,.889],9662:[.576,.019,.722],9663:[.5,.215,.889],9664:[.539,.041,.778],9666:[.539,.041,.778],9667:[.505,.005,.5],9674:[.716,.132,.667],9711:[.715,.215,1],9723:[.689,0,.778],9724:[.689,0,.778],9733:[.694,.111,.944],9824:[.727,.13,.778],9825:[.716,.033,.778],9826:[.727,.162,.778],9827:[.726,.13,.778],9837:[.75,.022,.389],9838:[.734,.223,.389],9839:[.723,.223,.389],10003:[.706,.034,.833],10016:[.716,.022,.833],10072:[.75,.249,.278],10216:[.75,.25,.389],10217:[.75,.25,.389],10222:[.744,.244,.412],10223:[.744,.244,.412],10229:[.511,.011,1.609],10230:[.511,.011,1.638],10231:[.511,.011,1.859],10232:[.525,.024,1.609],10233:[.525,.024,1.638],10234:[.525,.024,1.858],10236:[.511,.011,1.638],10731:[.716,.132,.667],10744:[.716,.215,.778],10752:[.75,.25,1.111],10753:[.75,.25,1.111],10754:[.75,.25,1.111],10756:[.75,.249,.833],10758:[.75,.249,.833],10764:[.805,.306,1.638,{ic:.138}],10799:[.491,-.009,.778],10815:[.683,0,.75],10846:[.813,.097,.611],10877:[.636,.138,.778],10878:[.636,.138,.778],10885:[.762,.29,.778],10886:[.762,.29,.778],10887:[.635,.241,.778],10888:[.635,.241,.778],10889:[.761,.387,.778],10890:[.761,.387,.778],10891:[1.003,.463,.778],10892:[1.003,.463,.778],10901:[.636,.138,.778],10902:[.636,.138,.778],10927:[.636,.138,.778],10928:[.636,.138,.778],10933:[.752,.286,.778],10934:[.752,.286,.778],10935:[.761,.294,.778],10936:[.761,.294,.778],10937:[.761,.337,.778],10938:[.761,.337,.778],10949:[.753,.215,.778],10950:[.753,.215,.778],10955:[.783,.385,.778],10956:[.783,.385,.778],12296:[.75,.25,.389],12297:[.75,.25,.389],57350:[.43,.023,.222,{ic:.018}],57351:[.431,.024,.389,{ic:.018}],57352:[.605,.085,.778],57353:[.434,.006,.667,{ic:.067}],57356:[.752,.284,.778],57357:[.752,.284,.778],57358:[.919,.421,.778],57359:[.801,.303,.778],57360:[.801,.303,.778],57361:[.919,.421,.778],57366:[.828,.33,.778],57367:[.752,.332,.778],57368:[.828,.33,.778],57369:[.752,.333,.778],57370:[.634,.255,.778],57371:[.634,.254,.778],119808:[.698,0,.869],119809:[.686,0,.818],119810:[.697,.011,.831],119811:[.686,0,.882],119812:[.68,0,.756],119813:[.68,0,.724],119814:[.697,.01,.904],119815:[.686,0,.9],119816:[.686,0,.436],119817:[.686,.011,.594],119818:[.686,0,.901],119819:[.686,0,.692],119820:[.686,0,1.092],119821:[.686,0,.9],119822:[.696,.01,.864],119823:[.686,0,.786],119824:[.696,.193,.864],119825:[.686,.011,.862],119826:[.697,.011,.639],119827:[.675,0,.8],119828:[.686,.011,.885],119829:[.686,.007,.869],119830:[.686,.007,1.189],119831:[.686,0,.869],119832:[.686,0,.869],119833:[.686,0,.703],119834:[.453,.006,.559],119835:[.694,.006,.639],119836:[.453,.006,.511],119837:[.694,.006,.639],119838:[.452,.006,.527],119839:[.7,0,.351,{ic:.101}],119840:[.455,.201,.575],119841:[.694,0,.639],119842:[.695,0,.319],119843:[.695,.2,.351],119844:[.694,0,.607],119845:[.694,0,.319],119846:[.45,0,.958],119847:[.45,0,.639],119848:[.452,.005,.575],119849:[.45,.194,.639],119850:[.45,.194,.607],119851:[.45,0,.474],119852:[.453,.006,.454],119853:[.635,.005,.447],119854:[.45,.006,.639],119855:[.444,0,.607],119856:[.444,0,.831],119857:[.444,0,.607],119858:[.444,.2,.607],119859:[.444,0,.511],119860:[.716,0,.75,{sk:.139}],119861:[.683,0,.759,{sk:.0833}],119862:[.705,.022,.715,{ic:.045,sk:.0833}],119863:[.683,0,.828,{sk:.0556}],119864:[.68,0,.738,{ic:.026,sk:.0833}],119865:[.68,0,.643,{ic:.106,sk:.0833}],119866:[.705,.022,.786,{sk:.0833}],119867:[.683,0,.831,{ic:.057,sk:.0556}],119868:[.683,0,.44,{ic:.064,sk:.111}],119869:[.683,.022,.555,{ic:.078,sk:.167}],119870:[.683,0,.849,{ic:.04,sk:.0556}],119871:[.683,0,.681,{sk:.0278}],119872:[.683,0,.97,{ic:.081,sk:.0833}],119873:[.683,0,.803,{ic:.085,sk:.0833}],119874:[.704,.022,.763,{sk:.0833}],119875:[.683,0,.642,{ic:.109,sk:.0833}],119876:[.704,.194,.791,{sk:.0833}],119877:[.683,.021,.759,{sk:.0833}],119878:[.705,.022,.613,{ic:.032,sk:.0833}],119879:[.677,0,.584,{ic:.12,sk:.0833}],119880:[.683,.022,.683,{ic:.084,sk:.0278}],119881:[.683,.022,.583,{ic:.186}],119882:[.683,.022,.944,{ic:.104}],119883:[.683,0,.828,{ic:.024,sk:.0833}],119884:[.683,0,.581,{ic:.182}],119885:[.683,0,.683,{ic:.04,sk:.0833}],119886:[.441,.01,.529],119887:[.694,.011,.429],119888:[.442,.011,.433,{sk:.0556}],119889:[.694,.01,.52,{sk:.167}],119890:[.442,.011,.466,{sk:.0556}],119891:[.705,.205,.49,{ic:.06,sk:.167}],119892:[.442,.205,.477,{sk:.0278}],119894:[.661,.011,.345],119895:[.661,.204,.412],119896:[.694,.011,.521],119897:[.694,.011,.298,{sk:.0833}],119898:[.442,.011,.878],119899:[.442,.011,.6],119900:[.441,.011,.485,{sk:.0556}],119901:[.442,.194,.503,{sk:.0833}],119902:[.442,.194,.446,{ic:.014,sk:.0833}],119903:[.442,.011,.451,{sk:.0556}],119904:[.442,.01,.469,{sk:.0556}],119905:[.626,.011,.361,{sk:.0833}],119906:[.442,.011,.572,{sk:.0278}],119907:[.443,.011,.485,{sk:.0278}],119908:[.443,.011,.716,{sk:.0833}],119909:[.442,.011,.572,{sk:.0278}],119910:[.442,.205,.49,{sk:.0556}],119911:[.442,.011,.465,{sk:.0556}],119912:[.711,0,.869,{sk:.16}],119913:[.686,0,.866,{sk:.0958}],119914:[.703,.017,.817,{ic:.038,sk:.0958}],119915:[.686,0,.938,{sk:.0639}],119916:[.68,0,.81,{ic:.015,sk:.0958}],119917:[.68,0,.689,{ic:.12,sk:.0958}],119918:[.703,.016,.887,{sk:.0958}],119919:[.686,0,.982,{ic:.045,sk:.0639}],119920:[.686,0,.511,{ic:.062,sk:.128}],119921:[.686,.017,.631,{ic:.063,sk:.192}],119922:[.686,0,.971,{ic:.032,sk:.0639}],119923:[.686,0,.756,{sk:.0319}],119924:[.686,0,1.142,{ic:.077,sk:.0958}],119925:[.686,0,.95,{ic:.077,sk:.0958}],119926:[.703,.017,.837,{sk:.0958}],119927:[.686,0,.723,{ic:.124,sk:.0958}],119928:[.703,.194,.869,{sk:.0958}],119929:[.686,.017,.872,{sk:.0958}],119930:[.703,.017,.693,{ic:.021,sk:.0958}],119931:[.675,0,.637,{ic:.135,sk:.0958}],119932:[.686,.016,.8,{ic:.077,sk:.0319}],119933:[.686,.016,.678,{ic:.208}],119934:[.686,.017,1.093,{ic:.114}],119935:[.686,0,.947,{sk:.0958}],119936:[.686,0,.675,{ic:.201}],119937:[.686,0,.773,{ic:.032,sk:.0958}],119938:[.452,.008,.633],119939:[.694,.008,.521],119940:[.451,.008,.513,{sk:.0639}],119941:[.694,.008,.61,{sk:.192}],119942:[.452,.008,.554,{sk:.0639}],119943:[.701,.201,.568,{ic:.056,sk:.192}],119944:[.452,.202,.545,{sk:.0319}],119945:[.694,.008,.668,{sk:-.0319}],119946:[.694,.008,.405],119947:[.694,.202,.471],119948:[.694,.008,.604],119949:[.694,.008,.348,{sk:.0958}],119950:[.452,.008,1.032],119951:[.452,.008,.713],119952:[.452,.008,.585,{sk:.0639}],119953:[.452,.194,.601,{sk:.0958}],119954:[.452,.194,.542,{sk:.0958}],119955:[.452,.008,.529,{sk:.0639}],119956:[.451,.008,.531,{sk:.0639}],119957:[.643,.007,.415,{sk:.0958}],119958:[.452,.008,.681,{sk:.0319}],119959:[.453,.008,.567,{sk:.0319}],119960:[.453,.008,.831,{sk:.0958}],119961:[.452,.008,.659,{sk:.0319}],119962:[.452,.202,.59,{sk:.0639}],119963:[.452,.008,.555,{sk:.0639}],119964:[.717,.008,.803,{ic:.213,sk:.389}],119966:[.728,.026,.666,{ic:.153,sk:.278}],119967:[.708,.031,.774,{ic:.081,sk:.111}],119970:[.717,.037,.61,{ic:.128,sk:.25}],119973:[.717,.314,1.052,{ic:.081,sk:.417}],119974:[.717,.037,.914,{ic:.29,sk:.361}],119977:[.726,.036,.902,{ic:.306,sk:.389}],119978:[.707,.008,.738,{ic:.067,sk:.167}],119979:[.716,.037,1.013,{ic:.018,sk:.222}],119980:[.717,.017,.883,{sk:.278}],119982:[.708,.036,.868,{ic:.148,sk:.333}],119983:[.735,.037,.747,{ic:.249,sk:.222}],119984:[.717,.017,.8,{ic:.16,sk:.25}],119985:[.717,.017,.622,{ic:.228,sk:.222}],119986:[.717,.017,.805,{ic:.221,sk:.25}],119987:[.717,.017,.944,{ic:.187,sk:.278}],119988:[.716,.017,.71,{ic:.249,sk:.194}],119989:[.717,.016,.821,{ic:.211,sk:.306}],120068:[.696,.026,.718],120069:[.691,.027,.884],120071:[.685,.027,.832],120072:[.685,.024,.663],120073:[.686,.153,.611],120074:[.69,.026,.785],120077:[.686,.139,.552],120078:[.68,.027,.668,{ic:.014}],120079:[.686,.026,.666],120080:[.692,.027,1.05],120081:[.686,.025,.832],120082:[.729,.027,.827],120083:[.692,.218,.828],120084:[.729,.069,.827],120086:[.692,.027,.829],120087:[.701,.027,.669],120088:[.697,.027,.646,{ic:.019}],120089:[.686,.026,.831],120090:[.686,.027,1.046],120091:[.688,.027,.719],120092:[.686,.218,.833],120094:[.47,.035,.5],120095:[.685,.031,.513],120096:[.466,.029,.389],120097:[.609,.033,.499],120098:[.467,.03,.401],120099:[.681,.221,.326],120100:[.47,.209,.504],120101:[.688,.205,.521],120102:[.673,.02,.279],120103:[.672,.208,.281],120104:[.689,.025,.389],120105:[.685,.02,.28],120106:[.475,.026,.767],120107:[.475,.022,.527],120108:[.48,.028,.489],120109:[.541,.212,.5],120110:[.479,.219,.489],120111:[.474,.021,.389],120112:[.478,.029,.443],120113:[.64,.02,.333,{ic:.015}],120114:[.474,.023,.517],120115:[.53,.028,.512],120116:[.532,.028,.774],120117:[.472,.188,.389],120118:[.528,.218,.499],120119:[.471,.214,.391],120120:[.701,0,.722],120121:[.683,0,.667],120123:[.683,0,.722],120124:[.683,0,.667],120125:[.683,0,.611],120126:[.702,.019,.778],120128:[.683,0,.389],120129:[.683,.077,.5],120130:[.683,0,.778],120131:[.683,0,.667],120132:[.683,0,.944],120134:[.701,.019,.778],120138:[.702,.012,.556],120139:[.683,0,.667],120140:[.683,.019,.722],120141:[.683,.02,.722],120142:[.683,.019,1],120143:[.683,0,.722],120144:[.683,0,.722],120172:[.686,.031,.847],120173:[.684,.031,1.044],120174:[.676,.032,.723],120175:[.683,.029,.982],120176:[.686,.029,.783],120177:[.684,.146,.722],120178:[.687,.029,.927],120179:[.683,.126,.851],120180:[.681,.025,.655],120181:[.68,.141,.652],120182:[.681,.026,.789,{ic:.017}],120183:[.683,.028,.786],120184:[.683,.032,1.239],120185:[.679,.03,.983],120186:[.726,.03,.976],120187:[.688,.223,.977],120188:[.726,.083,.976],120189:[.688,.028,.978],120190:[.685,.031,.978],120191:[.686,.03,.79,{ic:.012}],120192:[.688,.039,.851,{ic:.02}],120193:[.685,.029,.982],120194:[.683,.03,1.235],120195:[.681,.035,.849],120196:[.688,.214,.984],120197:[.677,.148,.711],120198:[.472,.032,.603],120199:[.69,.032,.59],120200:[.473,.026,.464],120201:[.632,.028,.589],120202:[.471,.027,.472],120203:[.687,.222,.388],120204:[.472,.208,.595],120205:[.687,.207,.615],120206:[.686,.025,.331],120207:[.682,.203,.332],120208:[.682,.025,.464],120209:[.681,.024,.337],120210:[.476,.031,.921],120211:[.473,.028,.654],120212:[.482,.034,.609],120213:[.557,.207,.604],120214:[.485,.211,.596],120215:[.472,.026,.46],120216:[.479,.034,.523],120217:[.648,.027,.393,{ic:.014}],120218:[.472,.032,.589,{ic:.014}],120219:[.546,.027,.604],120220:[.549,.032,.918],120221:[.471,.188,.459],120222:[.557,.221,.589],120223:[.471,.214,.461],120224:[.694,0,.667],120225:[.694,0,.667],120226:[.705,.011,.639],120227:[.694,0,.722],120228:[.691,0,.597],120229:[.691,0,.569],120230:[.704,.011,.667],120231:[.694,0,.708],120232:[.694,0,.278],120233:[.694,.022,.472],120234:[.694,0,.694],120235:[.694,0,.542],120236:[.694,0,.875],120237:[.694,0,.708],120238:[.715,.022,.736],120239:[.694,0,.639],120240:[.715,.125,.736],120241:[.694,0,.646],120242:[.716,.022,.556],120243:[.688,0,.681],120244:[.694,.022,.688],120245:[.694,0,.667],120246:[.694,0,.944],120247:[.694,0,.667],120248:[.694,0,.667],120249:[.694,0,.611],120250:[.46,.01,.481],120251:[.694,.011,.517],120252:[.46,.01,.444],120253:[.694,.01,.517],120254:[.461,.01,.444],120255:[.705,0,.306,{ic:.041}],120256:[.455,.206,.5],120257:[.694,0,.517],120258:[.68,0,.239],120259:[.68,.205,.267],120260:[.694,0,.489],120261:[.694,0,.239],120262:[.455,0,.794],120263:[.455,0,.517],120264:[.46,.01,.5],120265:[.455,.194,.517],120266:[.455,.194,.517],120267:[.455,0,.342],120268:[.46,.01,.383],120269:[.571,.01,.361],120270:[.444,.01,.517],120271:[.444,0,.461],120272:[.444,0,.683],120273:[.444,0,.461],120274:[.444,.204,.461],120275:[.444,0,.435],120276:[.694,0,.733],120277:[.694,0,.733],120278:[.704,.011,.703],120279:[.694,0,.794],120280:[.691,0,.642],120281:[.691,0,.611],120282:[.705,.011,.733],120283:[.694,0,.794],120284:[.694,0,.331],120285:[.694,.022,.519],120286:[.694,0,.764],120287:[.694,0,.581],120288:[.694,0,.978],120289:[.694,0,.794],120290:[.716,.022,.794],120291:[.694,0,.703],120292:[.716,.106,.794],120293:[.694,0,.703],120294:[.716,.022,.611],120295:[.688,0,.733],120296:[.694,.022,.764],120297:[.694,0,.733],120298:[.694,0,1.039],120299:[.694,0,.733],120300:[.694,0,.733],120301:[.694,0,.672],120302:[.475,.011,.525],120303:[.694,.01,.561],120304:[.475,.011,.489],120305:[.694,.011,.561],120306:[.474,.01,.511],120307:[.705,0,.336,{ic:.045}],120308:[.469,.206,.55],120309:[.694,0,.561],120310:[.695,0,.256],120311:[.695,.205,.286],120312:[.694,0,.531],120313:[.694,0,.256],120314:[.469,0,.867],120315:[.468,0,.561],120316:[.474,.011,.55],120317:[.469,.194,.561],120318:[.469,.194,.561],120319:[.469,0,.372],120320:[.474,.01,.422],120321:[.589,.01,.404],120322:[.458,.011,.561],120323:[.458,0,.5],120324:[.458,0,.744],120325:[.458,0,.5],120326:[.458,.205,.5],120327:[.458,0,.476],120328:[.694,0,.667],120329:[.694,0,.667,{ic:.029}],120330:[.705,.01,.639,{ic:.08}],120331:[.694,0,.722,{ic:.025}],120332:[.691,0,.597,{ic:.091}],120333:[.691,0,.569,{ic:.104}],120334:[.705,.011,.667,{ic:.063}],120335:[.694,0,.708,{ic:.06}],120336:[.694,0,.278,{ic:.06}],120337:[.694,.022,.472,{ic:.063}],120338:[.694,0,.694,{ic:.091}],120339:[.694,0,.542],120340:[.694,0,.875,{ic:.054}],120341:[.694,0,.708,{ic:.058}],120342:[.716,.022,.736,{ic:.027}],120343:[.694,0,.639,{ic:.051}],120344:[.716,.125,.736,{ic:.027}],120345:[.694,0,.646,{ic:.052}],120346:[.716,.022,.556,{ic:.053}],120347:[.688,0,.681,{ic:.109}],120348:[.694,.022,.688,{ic:.059}],120349:[.694,0,.667,{ic:.132}],120350:[.694,0,.944,{ic:.132}],120351:[.694,0,.667,{ic:.091}],120352:[.694,0,.667,{ic:.143}],120353:[.694,0,.611,{ic:.091}],120354:[.461,.01,.481],120355:[.694,.011,.517,{ic:.022}],120356:[.46,.011,.444,{ic:.055}],120357:[.694,.01,.517,{ic:.071}],120358:[.46,.011,.444,{ic:.028}],120359:[.705,0,.306,{ic:.188}],120360:[.455,.206,.5,{ic:.068}],120361:[.694,0,.517],120362:[.68,0,.239,{ic:.076}],120363:[.68,.204,.267,{ic:.069}],120364:[.694,0,.489,{ic:.054}],120365:[.694,0,.239,{ic:.072}],120366:[.455,0,.794],120367:[.454,0,.517],120368:[.461,.011,.5,{ic:.023}],120369:[.455,.194,.517,{ic:.021}],120370:[.455,.194,.517,{ic:.021}],120371:[.455,0,.342,{ic:.082}],120372:[.461,.011,.383,{ic:.053}],120373:[.571,.011,.361,{ic:.049}],120374:[.444,.01,.517,{ic:.02}],120375:[.444,0,.461,{ic:.079}],120376:[.444,0,.683,{ic:.079}],120377:[.444,0,.461,{ic:.076}],120378:[.444,.205,.461,{ic:.079}],120379:[.444,0,.435,{ic:.059}],120432:[.623,0,.525],120433:[.611,0,.525],120434:[.622,.011,.525],120435:[.611,0,.525],120436:[.611,0,.525],120437:[.611,0,.525],120438:[.622,.011,.525],120439:[.611,0,.525],120440:[.611,0,.525],120441:[.611,.011,.525],120442:[.611,0,.525],120443:[.611,0,.525],120444:[.611,0,.525],120445:[.611,0,.525],120446:[.621,.01,.525],120447:[.611,0,.525],120448:[.621,.138,.525],120449:[.611,.011,.525],120450:[.622,.011,.525],120451:[.611,0,.525],120452:[.611,.011,.525],120453:[.611,.007,.525],120454:[.611,.007,.525],120455:[.611,0,.525],120456:[.611,0,.525],120457:[.611,0,.525],120458:[.439,.006,.525],120459:[.611,.006,.525],120460:[.44,.006,.525],120461:[.611,.006,.525],120462:[.44,.006,.525],120463:[.617,0,.525],120464:[.442,.229,.525],120465:[.611,0,.525],120466:[.612,0,.525],120467:[.612,.228,.525],120468:[.611,0,.525],120469:[.611,0,.525],120470:[.436,0,.525,{ic:.011}],120471:[.436,0,.525],120472:[.44,.006,.525],120473:[.437,.221,.525],120474:[.437,.221,.525,{ic:.02}],120475:[.437,0,.525],120476:[.44,.006,.525],120477:[.554,.006,.525],120478:[.431,.005,.525],120479:[.431,0,.525],120480:[.431,0,.525],120481:[.431,0,.525],120482:[.431,.228,.525],120483:[.431,0,.525],120488:[.698,0,.869],120489:[.686,0,.818],120490:[.68,0,.692],120491:[.698,0,.958],120492:[.68,0,.756],120493:[.686,0,.703],120494:[.686,0,.9],120495:[.696,.01,.894],120496:[.686,0,.436],120497:[.686,0,.901],120498:[.698,0,.806],120499:[.686,0,1.092],120500:[.686,0,.9],120501:[.675,0,.767],120502:[.696,.01,.864],120503:[.68,0,.9],120504:[.686,0,.786],120506:[.686,0,.831],120507:[.675,0,.8],120508:[.697,0,.894],120509:[.686,0,.831],120510:[.686,0,.869],120511:[.686,0,.894],120512:[.696,0,.831],120513:[.686,.024,.958],120546:[.716,0,.75,{sk:.139}],120547:[.683,0,.759,{sk:.0833}],120548:[.68,0,.615,{ic:.106,sk:.0833}],120549:[.716,0,.833,{sk:.167}],120550:[.68,0,.738,{ic:.026,sk:.0833}],120551:[.683,0,.683,{ic:.04,sk:.0833}],120552:[.683,0,.831,{ic:.057,sk:.0556}],120553:[.704,.022,.763,{sk:.0833}],120554:[.683,0,.44,{ic:.064,sk:.111}],120555:[.683,0,.849,{ic:.04,sk:.0556}],120556:[.716,0,.694,{sk:.167}],120557:[.683,0,.97,{ic:.081,sk:.0833}],120558:[.683,0,.803,{ic:.085,sk:.0833}],120559:[.677,0,.742,{ic:.035,sk:.0833}],120560:[.704,.022,.763,{sk:.0833}],120561:[.68,0,.831,{ic:.056,sk:.0556}],120562:[.683,0,.642,{ic:.109,sk:.0833}],120564:[.683,0,.78,{ic:.026,sk:.0833}],120565:[.677,0,.584,{ic:.12,sk:.0833}],120566:[.705,0,.583,{ic:.117,sk:.0556}],120567:[.683,0,.667,{sk:.0833}],120568:[.683,0,.828,{ic:.024,sk:.0833}],120569:[.683,0,.612,{ic:.08,sk:.0556}],120570:[.704,0,.772,{ic:.014,sk:.0833}],120572:[.442,.011,.64,{sk:.0278}],120573:[.705,.194,.566,{sk:.0833}],120574:[.441,.216,.518,{ic:.025}],120575:[.717,.01,.444,{sk:.0556}],120576:[.452,.022,.466,{sk:.0833}],120577:[.704,.204,.438,{ic:.033,sk:.0833}],120578:[.442,.216,.497,{sk:.0556}],120579:[.705,.01,.469,{sk:.0833}],120580:[.442,.01,.354,{sk:.0556}],120581:[.442,.011,.576],120582:[.694,.012,.583],120583:[.442,.216,.603,{sk:.0278}],120584:[.442,0,.494,{ic:.036,sk:.0278}],120585:[.704,.205,.438,{sk:.111}],120586:[.441,.011,.485,{sk:.0556}],120587:[.431,.011,.57],120588:[.442,.216,.517,{sk:.0833}],120589:[.442,.107,.363,{ic:.042,sk:.0833}],120590:[.431,.011,.571],120591:[.431,.013,.437,{ic:.08,sk:.0278}],120592:[.443,.01,.54,{sk:.0278}],120593:[.442,.218,.654,{sk:.0833}],120594:[.442,.204,.626,{sk:.0556}],120595:[.694,.205,.651,{sk:.111}],120596:[.443,.011,.622],120597:[.715,.022,.531,{ic:.035,sk:.0833}],120598:[.431,.011,.406,{sk:.0556}],120599:[.705,.011,.591,{sk:.0833}],120600:[.434,.006,.667,{ic:.067}],120601:[.694,.205,.596,{sk:.0833}],120602:[.442,.194,.517,{sk:.0833}],120603:[.431,.01,.828],120604:[.711,0,.869,{sk:.16}],120605:[.686,0,.866,{sk:.0958}],120606:[.68,0,.657,{ic:.12,sk:.0958}],120607:[.711,0,.958,{sk:.192}],120608:[.68,0,.81,{ic:.015,sk:.0958}],120609:[.686,0,.773,{ic:.032,sk:.0958}],120610:[.686,0,.982,{ic:.045,sk:.0639}],120611:[.702,.017,.867,{sk:.0958}],120612:[.686,0,.511,{ic:.062,sk:.128}],120613:[.686,0,.971,{ic:.032,sk:.0639}],120614:[.711,0,.806,{sk:.192}],120615:[.686,0,1.142,{ic:.077,sk:.0958}],120616:[.686,0,.95,{ic:.077,sk:.0958}],120617:[.675,0,.841,{ic:.026,sk:.0958}],120618:[.703,.017,.837,{sk:.0958}],120619:[.68,0,.982,{ic:.044,sk:.0639}],120620:[.686,0,.723,{ic:.124,sk:.0958}],120622:[.686,0,.885,{ic:.017,sk:.0958}],120623:[.675,0,.637,{ic:.135,sk:.0958}],120624:[.703,0,.671,{ic:.131,sk:.0639}],120625:[.686,0,.767,{sk:.0958}],120626:[.686,0,.947,{sk:.0958}],120627:[.686,0,.714,{ic:.076,sk:.0639}],120628:[.703,0,.879,{sk:.0958}],120630:[.452,.008,.761,{sk:.0319}],120631:[.701,.194,.66,{sk:.0958}],120632:[.451,.211,.59,{ic:.027}],120633:[.725,.008,.522,{sk:.0639}],120634:[.461,.017,.529,{sk:.0958}],120635:[.711,.202,.508,{ic:.013,sk:.0958}],120636:[.452,.211,.6,{sk:.0639}],120637:[.702,.008,.562,{sk:.0958}],120638:[.452,.008,.412,{sk:.0639}],120639:[.452,.008,.668],120640:[.694,.013,.671],120641:[.452,.211,.708,{sk:.0319}],120642:[.452,0,.577,{ic:.031,sk:.0319}],120643:[.711,.201,.508,{sk:.128}],120644:[.452,.008,.585,{sk:.0639}],120645:[.444,.008,.682],120646:[.451,.211,.612,{sk:.0958}],120647:[.451,.105,.424,{ic:.033,sk:.0958}],120648:[.444,.008,.686],120649:[.444,.013,.521,{ic:.089,sk:.0319}],120650:[.453,.008,.631,{sk:.0319}],120651:[.452,.216,.747,{sk:.0958}],120652:[.452,.201,.718,{sk:.0639}],120653:[.694,.202,.758,{sk:.128}],120654:[.453,.008,.718],120655:[.71,.017,.628,{ic:.029,sk:.0958}],120656:[.444,.007,.483,{sk:.0639}],120657:[.701,.008,.692,{sk:.0958}],120658:[.434,.006,.667,{ic:.067}],120659:[.694,.202,.712,{sk:.0958}],120660:[.451,.194,.612,{sk:.0958}],120661:[.444,.008,.975],120662:[.694,0,.733],120663:[.694,0,.733],120664:[.691,0,.581],120665:[.694,0,.917],120666:[.691,0,.642],120667:[.694,0,.672],120668:[.694,0,.794],120669:[.716,.022,.856],120670:[.694,0,.331],120671:[.694,0,.764],120672:[.694,0,.672],120673:[.694,0,.978],120674:[.694,0,.794],120675:[.688,0,.733],120676:[.716,.022,.794],120677:[.691,0,.794],120678:[.694,0,.703],120680:[.694,0,.794],120681:[.688,0,.733],120682:[.715,0,.856],120683:[.694,0,.794],120684:[.694,0,.733],120685:[.694,0,.856],120686:[.716,0,.794],120782:[.654,.01,.575],120783:[.655,0,.575],120784:[.654,0,.575],120785:[.655,.011,.575],120786:[.656,0,.575],120787:[.655,.011,.575],120788:[.655,.011,.575],120789:[.676,.011,.575],120790:[.654,.011,.575],120791:[.654,.011,.575],120802:[.678,.022,.5],120803:[.678,0,.5],120804:[.677,0,.5],120805:[.678,.022,.5],120806:[.656,0,.5],120807:[.656,.021,.5],120808:[.677,.022,.5],120809:[.656,.011,.5],120810:[.678,.022,.5],120811:[.677,.022,.5],120812:[.715,.022,.55],120813:[.716,0,.55],120814:[.716,0,.55],120815:[.716,.022,.55],120816:[.694,0,.55],120817:[.694,.022,.55],120818:[.716,.022,.55],120819:[.695,.011,.55],120820:[.715,.022,.55],120821:[.716,.022,.55],120822:[.621,.01,.525],120823:[.622,0,.525],120824:[.622,0,.525],120825:[.622,.011,.525],120826:[.624,0,.525],120827:[.611,.01,.525],120828:[.622,.011,.525],120829:[.627,.01,.525],120830:[.621,.01,.525],120831:[.622,.011,.525]}},47033:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.sansSerifBoldItalic=void 0;t.sansSerifBoldItalic={305:[.458,0,.256],567:[.458,.205,.286]}},94872:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.sansSerifBold=void 0;t.sansSerifBold={33:[.694,0,.367],34:[.694,-.442,.558],35:[.694,.193,.917],36:[.75,.056,.55],37:[.75,.056,1.029],38:[.716,.022,.831],39:[.694,-.442,.306],40:[.75,.249,.428],41:[.75,.25,.428],42:[.75,-.293,.55],43:[.617,.116,.856],44:[.146,.106,.306],45:[.273,-.186,.367],46:[.146,0,.306],47:[.75,.249,.55],58:[.458,0,.306],59:[.458,.106,.306],61:[.407,-.094,.856],63:[.705,0,.519],64:[.704,.011,.733],91:[.75,.25,.343],93:[.75,.25,.343],94:[.694,-.537,.55],95:[-.023,.11,.55],126:[.344,-.198,.55],305:[.458,0,.256],567:[.458,.205,.286],768:[.694,-.537,0],769:[.694,-.537,0],770:[.694,-.537,0],771:[.694,-.548,0],772:[.66,-.56,0],774:[.694,-.552,0],775:[.695,-.596,0],776:[.695,-.595,0],778:[.694,-.538,0],779:[.694,-.537,0],780:[.657,-.5,0],8211:[.327,-.24,.55],8212:[.327,-.24,1.1],8213:[.327,-.24,1.1],8215:[-.023,.11,.55],8216:[.694,-.443,.306],8217:[.694,-.442,.306],8220:[.694,-.443,.558],8221:[.694,-.442,.558],8260:[.75,.249,.55],8710:[.694,0,.917]}},9255:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.sansSerifItalic=void 0;t.sansSerifItalic={33:[.694,0,.319,{ic:.036}],34:[.694,-.471,.5],35:[.694,.194,.833,{ic:.018}],36:[.75,.056,.5,{ic:.065}],37:[.75,.056,.833],38:[.716,.022,.758],39:[.694,-.471,.278,{ic:.057}],40:[.75,.25,.389,{ic:.102}],41:[.75,.25,.389],42:[.75,-.306,.5,{ic:.068}],43:[.583,.083,.778],44:[.098,.125,.278],45:[.259,-.186,.333],46:[.098,0,.278],47:[.75,.25,.5,{ic:.1}],48:[.678,.022,.5,{ic:.049}],49:[.678,0,.5],50:[.678,0,.5,{ic:.051}],51:[.678,.022,.5,{ic:.044}],52:[.656,0,.5,{ic:.021}],53:[.656,.022,.5,{ic:.055}],54:[.678,.022,.5,{ic:.048}],55:[.656,.011,.5,{ic:.096}],56:[.678,.022,.5,{ic:.054}],57:[.677,.022,.5,{ic:.045}],58:[.444,0,.278],59:[.444,.125,.278],61:[.37,-.13,.778,{ic:.018}],63:[.704,0,.472,{ic:.064}],64:[.705,.01,.667,{ic:.04}],91:[.75,.25,.289,{ic:.136}],93:[.75,.25,.289,{ic:.064}],94:[.694,-.527,.5,{ic:.033}],95:[-.038,.114,.5,{ic:.065}],126:[.327,-.193,.5,{ic:.06}],305:[.444,0,.239,{ic:.019}],567:[.444,.204,.267,{ic:.019}],768:[.694,-.527,0],769:[.694,-.527,0,{ic:.063}],770:[.694,-.527,0,{ic:.033}],771:[.677,-.543,0,{ic:.06}],772:[.631,-.552,0,{ic:.064}],774:[.694,-.508,0,{ic:.073}],775:[.68,-.576,0],776:[.68,-.582,0,{ic:.04}],778:[.693,-.527,0],779:[.694,-.527,0,{ic:.063}],780:[.654,-.487,0,{ic:.06}],913:[.694,0,.667],914:[.694,0,.667,{ic:.029}],915:[.691,0,.542,{ic:.104}],916:[.694,0,.833],917:[.691,0,.597,{ic:.091}],918:[.694,0,.611,{ic:.091}],919:[.694,0,.708,{ic:.06}],920:[.715,.022,.778,{ic:.026}],921:[.694,0,.278,{ic:.06}],922:[.694,0,.694,{ic:.091}],923:[.694,0,.611],924:[.694,0,.875,{ic:.054}],925:[.694,0,.708,{ic:.058}],926:[.688,0,.667,{ic:.098}],927:[.716,.022,.736,{ic:.027}],928:[.691,0,.708,{ic:.06}],929:[.694,0,.639,{ic:.051}],931:[.694,0,.722,{ic:.091}],932:[.688,0,.681,{ic:.109}],933:[.716,0,.778,{ic:.065}],934:[.694,0,.722,{ic:.021}],935:[.694,0,.667,{ic:.091}],936:[.694,0,.778,{ic:.076}],937:[.716,0,.722,{ic:.047}],8211:[.312,-.236,.5,{ic:.065}],8212:[.312,-.236,1,{ic:.065}],8213:[.312,-.236,1,{ic:.065}],8215:[-.038,.114,.5,{ic:.065}],8216:[.694,-.471,.278,{ic:.058}],8217:[.694,-.471,.278,{ic:.057}],8220:[.694,-.471,.5,{ic:.114}],8221:[.694,-.471,.5],8260:[.75,.25,.5,{ic:.1}],8710:[.694,0,.833]}},83366:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.sansSerif=void 0;t.sansSerif={33:[.694,0,.319],34:[.694,-.471,.5],35:[.694,.194,.833],36:[.75,.056,.5],37:[.75,.056,.833],38:[.716,.022,.758],39:[.694,-.471,.278],40:[.75,.25,.389],41:[.75,.25,.389],42:[.75,-.306,.5],43:[.583,.082,.778],44:[.098,.125,.278],45:[.259,-.186,.333],46:[.098,0,.278],47:[.75,.25,.5],58:[.444,0,.278],59:[.444,.125,.278],61:[.37,-.13,.778],63:[.704,0,.472],64:[.704,.011,.667],91:[.75,.25,.289],93:[.75,.25,.289],94:[.694,-.527,.5],95:[-.038,.114,.5],126:[.327,-.193,.5],305:[.444,0,.239],567:[.444,.205,.267],768:[.694,-.527,0],769:[.694,-.527,0],770:[.694,-.527,0],771:[.677,-.543,0],772:[.631,-.552,0],774:[.694,-.508,0],775:[.68,-.576,0],776:[.68,-.582,0],778:[.694,-.527,0],779:[.694,-.527,0],780:[.654,-.487,0],913:[.694,0,.667],914:[.694,0,.667],915:[.691,0,.542],916:[.694,0,.833],917:[.691,0,.597],918:[.694,0,.611],919:[.694,0,.708],920:[.716,.021,.778],921:[.694,0,.278],922:[.694,0,.694],923:[.694,0,.611],924:[.694,0,.875],925:[.694,0,.708],926:[.688,0,.667],927:[.715,.022,.736],928:[.691,0,.708],929:[.694,0,.639],931:[.694,0,.722],932:[.688,0,.681],933:[.716,0,.778],934:[.694,0,.722],935:[.694,0,.667],936:[.694,0,.778],937:[.716,0,.722],8211:[.312,-.236,.5],8212:[.312,-.236,1],8213:[.312,-.236,1],8215:[-.038,.114,.5],8216:[.694,-.471,.278],8217:[.694,-.471,.278],8220:[.694,-.471,.5],8221:[.694,-.471,.5],8260:[.75,.25,.5],8710:[.694,0,.833]}},21616:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.scriptBold=void 0;t.scriptBold={}},24062:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.script=void 0;t.script={}},22578:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.smallop=void 0;t.smallop={40:[.85,.349,.458],41:[.85,.349,.458],47:[.85,.349,.578],91:[.85,.349,.417],92:[.85,.349,.578],93:[.85,.349,.417],123:[.85,.349,.583],125:[.85,.349,.583],710:[.744,-.551,.556],732:[.722,-.597,.556],770:[.744,-.551,0],771:[.722,-.597,0],8214:[.602,0,.778],8260:[.85,.349,.578],8593:[.6,0,.667],8595:[.6,0,.667],8657:[.599,0,.778],8659:[.6,0,.778],8719:[.75,.25,.944],8720:[.75,.25,.944],8721:[.75,.25,1.056],8730:[.85,.35,1,{ic:.02}],8739:[.627,.015,.333],8741:[.627,.015,.556],8747:[.805,.306,.472,{ic:.138}],8748:[.805,.306,.819,{ic:.138}],8749:[.805,.306,1.166,{ic:.138}],8750:[.805,.306,.472,{ic:.138}],8896:[.75,.249,.833],8897:[.75,.249,.833],8898:[.75,.249,.833],8899:[.75,.249,.833],8968:[.85,.349,.472],8969:[.85,.349,.472],8970:[.85,.349,.472],8971:[.85,.349,.472],9001:[.85,.35,.472],9002:[.85,.35,.472],9168:[.602,0,.667],10072:[.627,.015,.333],10216:[.85,.35,.472],10217:[.85,.35,.472],10752:[.75,.25,1.111],10753:[.75,.25,1.111],10754:[.75,.25,1.111],10756:[.75,.249,.833],10758:[.75,.249,.833],10764:[.805,.306,1.638,{ic:.138}],12296:[.85,.35,.472],12297:[.85,.35,.472]}},70286:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.texCalligraphicBold=void 0;t.texCalligraphicBold={65:[.751,.049,.921,{ic:.068,sk:.224}],66:[.705,.017,.748,{sk:.16}],67:[.703,.02,.613,{sk:.16}],68:[.686,0,.892,{sk:.0958}],69:[.703,.016,.607,{ic:.02,sk:.128}],70:[.686,.03,.814,{ic:.116,sk:.128}],71:[.703,.113,.682,{sk:.128}],72:[.686,.048,.987,{sk:.128}],73:[.686,0,.642,{ic:.104,sk:.0319}],74:[.686,.114,.779,{ic:.158,sk:.192}],75:[.703,.017,.871,{sk:.0639}],76:[.703,.017,.788,{sk:.16}],77:[.703,.049,1.378,{sk:.16}],78:[.84,.049,.937,{ic:.168,sk:.0958}],79:[.703,.017,.906,{sk:.128}],80:[.686,.067,.81,{ic:.036,sk:.0958}],81:[.703,.146,.939,{sk:.128}],82:[.686,.017,.99,{sk:.0958}],83:[.703,.016,.696,{ic:.025,sk:.16}],84:[.72,.069,.644,{ic:.303,sk:.0319}],85:[.686,.024,.715,{ic:.056,sk:.0958}],86:[.686,.077,.737,{ic:.037,sk:.0319}],87:[.686,.077,1.169,{ic:.037,sk:.0958}],88:[.686,0,.817,{ic:.089,sk:.16}],89:[.686,.164,.759,{ic:.038,sk:.0958}],90:[.686,0,.818,{ic:.035,sk:.16}],305:[.452,.008,.394,{sk:.0319}],567:[.451,.201,.439,{sk:.0958}]}},57552:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.texCalligraphic=void 0;t.texCalligraphic={65:[.728,.05,.798,{ic:.021,sk:.194}],66:[.705,.022,.657,{sk:.139}],67:[.705,.025,.527,{sk:.139}],68:[.683,0,.771,{sk:.0833}],69:[.705,.022,.528,{ic:.036,sk:.111}],70:[.683,.032,.719,{ic:.11,sk:.111}],71:[.704,.119,.595,{sk:.111}],72:[.683,.048,.845,{sk:.111}],73:[.683,0,.545,{ic:.097,sk:.0278}],74:[.683,.119,.678,{ic:.161,sk:.167}],75:[.705,.022,.762,{sk:.0556}],76:[.705,.022,.69,{sk:.139}],77:[.705,.05,1.201,{sk:.139}],78:[.789,.05,.82,{ic:.159,sk:.0833}],79:[.705,.022,.796,{sk:.111}],80:[.683,.057,.696,{ic:.037,sk:.0833}],81:[.705,.131,.817,{sk:.111}],82:[.682,.022,.848,{sk:.0833}],83:[.705,.022,.606,{ic:.036,sk:.139}],84:[.717,.068,.545,{ic:.288,sk:.0278}],85:[.683,.028,.626,{ic:.061,sk:.0833}],86:[.683,.052,.613,{ic:.045,sk:.0278}],87:[.683,.053,.988,{ic:.046,sk:.0833}],88:[.683,0,.713,{ic:.094,sk:.139}],89:[.683,.143,.668,{ic:.046,sk:.0833}],90:[.683,0,.725,{ic:.042,sk:.139}]}},24398:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.texMathit=void 0;t.texMathit={65:[.716,0,.743],66:[.683,0,.704],67:[.705,.021,.716],68:[.683,0,.755],69:[.68,0,.678],70:[.68,0,.653],71:[.705,.022,.774],72:[.683,0,.743],73:[.683,0,.386],74:[.683,.021,.525],75:[.683,0,.769],76:[.683,0,.627],77:[.683,0,.897],78:[.683,0,.743],79:[.704,.022,.767],80:[.683,0,.678],81:[.704,.194,.767],82:[.683,.022,.729],83:[.705,.022,.562],84:[.677,0,.716],85:[.683,.022,.743],86:[.683,.022,.743],87:[.683,.022,.999],88:[.683,0,.743],89:[.683,0,.743],90:[.683,0,.613],97:[.442,.011,.511],98:[.694,.011,.46],99:[.441,.01,.46],100:[.694,.011,.511],101:[.442,.01,.46],102:[.705,.204,.307],103:[.442,.205,.46],104:[.694,.011,.511],105:[.656,.01,.307],106:[.656,.204,.307],107:[.694,.011,.46],108:[.694,.011,.256],109:[.442,.011,.818],110:[.442,.011,.562],111:[.442,.011,.511],112:[.442,.194,.511],113:[.442,.194,.46],114:[.442,.011,.422],115:[.442,.011,.409],116:[.626,.011,.332],117:[.441,.011,.537],118:[.443,.01,.46],119:[.443,.011,.664],120:[.442,.011,.464],121:[.441,.205,.486],122:[.442,.011,.409]}},20628:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.texOldstyleBold=void 0;t.texOldstyleBold={48:[.46,.017,.575],49:[.461,0,.575],50:[.46,0,.575],51:[.461,.211,.575],52:[.469,.194,.575],53:[.461,.211,.575],54:[.66,.017,.575],55:[.476,.211,.575],56:[.661,.017,.575],57:[.461,.21,.575],65:[.751,.049,.921,{ic:.068,sk:.224}],66:[.705,.017,.748,{sk:.16}],67:[.703,.02,.613,{sk:.16}],68:[.686,0,.892,{sk:.0958}],69:[.703,.016,.607,{ic:.02,sk:.128}],70:[.686,.03,.814,{ic:.116,sk:.128}],71:[.703,.113,.682,{sk:.128}],72:[.686,.048,.987,{sk:.128}],73:[.686,0,.642,{ic:.104,sk:.0319}],74:[.686,.114,.779,{ic:.158,sk:.192}],75:[.703,.017,.871,{sk:.0639}],76:[.703,.017,.788,{sk:.16}],77:[.703,.049,1.378,{sk:.16}],78:[.84,.049,.937,{ic:.168,sk:.0958}],79:[.703,.017,.906,{sk:.128}],80:[.686,.067,.81,{ic:.036,sk:.0958}],81:[.703,.146,.939,{sk:.128}],82:[.686,.017,.99,{sk:.0958}],83:[.703,.016,.696,{ic:.025,sk:.16}],84:[.72,.069,.644,{ic:.303,sk:.0319}],85:[.686,.024,.715,{ic:.056,sk:.0958}],86:[.686,.077,.737,{ic:.037,sk:.0319}],87:[.686,.077,1.169,{ic:.037,sk:.0958}],88:[.686,0,.817,{ic:.089,sk:.16}],89:[.686,.164,.759,{ic:.038,sk:.0958}],90:[.686,0,.818,{ic:.035,sk:.16}]}},41855:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.texOldstyle=void 0;t.texOldstyle={48:[.452,.022,.5],49:[.453,0,.5],50:[.453,0,.5],51:[.452,.216,.5],52:[.464,.194,.5],53:[.453,.216,.5],54:[.665,.022,.5],55:[.463,.216,.5],56:[.666,.021,.5],57:[.453,.216,.5],65:[.728,.05,.798,{ic:.021,sk:.194}],66:[.705,.022,.657,{sk:.139}],67:[.705,.025,.527,{sk:.139}],68:[.683,0,.771,{sk:.0833}],69:[.705,.022,.528,{ic:.036,sk:.111}],70:[.683,.032,.719,{ic:.11,sk:.111}],71:[.704,.119,.595,{sk:.111}],72:[.683,.048,.845,{sk:.111}],73:[.683,0,.545,{ic:.097,sk:.0278}],74:[.683,.119,.678,{ic:.161,sk:.167}],75:[.705,.022,.762,{sk:.0556}],76:[.705,.022,.69,{sk:.139}],77:[.705,.05,1.201,{sk:.139}],78:[.789,.05,.82,{ic:.159,sk:.0833}],79:[.705,.022,.796,{sk:.111}],80:[.683,.057,.696,{ic:.037,sk:.0833}],81:[.705,.131,.817,{sk:.111}],82:[.682,.022,.848,{sk:.0833}],83:[.705,.022,.606,{ic:.036,sk:.139}],84:[.717,.068,.545,{ic:.288,sk:.0278}],85:[.683,.028,.626,{ic:.061,sk:.0833}],86:[.683,.052,.613,{ic:.045,sk:.0278}],87:[.683,.053,.988,{ic:.046,sk:.0833}],88:[.683,0,.713,{ic:.094,sk:.139}],89:[.683,.143,.668,{ic:.046,sk:.0833}],90:[.683,0,.725,{ic:.042,sk:.139}]}},75431:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.texSize3=void 0;t.texSize3={40:[1.45,.949,.736],41:[1.45,.949,.736],47:[1.45,.949,1.044],91:[1.45,.949,.528],92:[1.45,.949,1.044],93:[1.45,.949,.528],123:[1.45,.949,.75],125:[1.45,.949,.75],710:[.772,-.564,1.444],732:[.749,-.61,1.444],770:[.772,-.564,0],771:[.749,-.61,0],8260:[1.45,.949,1.044],8730:[1.45,.95,1,{ic:.02}],8968:[1.45,.949,.583],8969:[1.45,.949,.583],8970:[1.45,.949,.583],8971:[1.45,.949,.583],9001:[1.45,.95,.75],9002:[1.45,.949,.75],10216:[1.45,.95,.75],10217:[1.45,.949,.75],12296:[1.45,.95,.75],12297:[1.45,.949,.75]}},98278:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.texSize4=void 0;t.texSize4={40:[1.75,1.249,.792],41:[1.75,1.249,.792],47:[1.75,1.249,1.278],91:[1.75,1.249,.583],92:[1.75,1.249,1.278],93:[1.75,1.249,.583],123:[1.75,1.249,.806],125:[1.75,1.249,.806],710:[.845,-.561,1.889,{ic:.013}],732:[.823,-.583,1.889],770:[.845,-.561,0,{ic:.013}],771:[.823,-.583,0],8260:[1.75,1.249,1.278],8730:[1.75,1.25,1,{ic:.02}],8968:[1.75,1.249,.639],8969:[1.75,1.249,.639],8970:[1.75,1.249,.639],8971:[1.75,1.249,.639],9001:[1.75,1.248,.806],9002:[1.75,1.248,.806],9115:[1.154,.655,.875],9116:[.61,.01,.875],9117:[1.165,.644,.875],9118:[1.154,.655,.875],9119:[.61,.01,.875],9120:[1.165,.644,.875],9121:[1.154,.645,.667],9122:[.602,0,.667],9123:[1.155,.644,.667],9124:[1.154,.645,.667],9125:[.602,0,.667],9126:[1.155,.644,.667],9127:[.899,.01,.889],9128:[1.16,.66,.889],9129:[.01,.899,.889],9130:[.29,.015,.889],9131:[.899,.01,.889],9132:[1.16,.66,.889],9133:[.01,.899,.889],9143:[.935,.885,1.056],10216:[1.75,1.248,.806],10217:[1.75,1.248,.806],12296:[1.75,1.248,.806],12297:[1.75,1.248,.806],57344:[.625,.014,1.056],57345:[.605,.014,1.056,{ic:.02}],57680:[.12,.213,.45,{ic:.01}],57681:[.12,.213,.45,{ic:.024}],57682:[.333,0,.45,{ic:.01}],57683:[.333,0,.45,{ic:.024}],57684:[.32,.2,.4,{ic:.01}],57685:[.333,0,.9,{ic:.01}],57686:[.12,.213,.9,{ic:.01}]}},90456:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.texVariant=void 0;t.texVariant={710:[.845,-.561,2.333,{ic:.013}],732:[.899,-.628,2.333],770:[.845,-.561,0,{ic:.013}],771:[.899,-.628,0],1008:[.434,.006,.667,{ic:.067}],8463:[.695,.013,.54,{ic:.022}],8592:[.437,-.064,.5],8594:[.437,-.064,.5],8652:[.514,.014,1],8708:[.86,.166,.556],8709:[.587,0,.778],8722:[.27,-.23,.5],8726:[.43,.023,.778],8733:[.472,-.028,.778],8739:[.43,.023,.222],8740:[.43,.023,.222,{ic:.018}],8741:[.431,.023,.389],8742:[.431,.024,.389,{ic:.018}],8764:[.365,-.132,.778],8776:[.481,-.05,.778],8808:[.752,.284,.778],8809:[.752,.284,.778],8816:[.919,.421,.778],8817:[.919,.421,.778],8840:[.828,.33,.778],8841:[.828,.33,.778],8842:[.634,.255,.778],8843:[.634,.254,.778],8872:[.694,0,.611],8901:[.189,0,.278],8994:[.378,-.122,.778],8995:[.378,-.143,.778],9651:[.575,.02,.722],9661:[.576,.019,.722],10887:[.801,.303,.778],10888:[.801,.303,.778],10955:[.752,.332,.778],10956:[.752,.333,.778]}},86810:(c,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.px=t.emRounded=t.em=t.percent=t.length2em=t.MATHSPACE=t.RELUNITS=t.UNITS=t.BIGDIMEN=void 0;t.BIGDIMEN=1e6;t.UNITS={px:1,in:96,cm:96/2.54,mm:96/25.4};t.RELUNITS={em:1,ex:.431,pt:1/10,pc:12/10,mu:1/18};t.MATHSPACE={veryverythinmathspace:1/18,verythinmathspace:2/18,thinmathspace:3/18,mediummathspace:4/18,thickmathspace:5/18,verythickmathspace:6/18,veryverythickmathspace:7/18,negativeveryverythinmathspace:-1/18,negativeverythinmathspace:-2/18,negativethinmathspace:-3/18,negativemediummathspace:-4/18,negativethickmathspace:-5/18,negativeverythickmathspace:-6/18,negativeveryverythickmathspace:-7/18,thin:.04,medium:.06,thick:.1,normal:1,big:2,small:1/Math.sqrt(2),infinity:t.BIGDIMEN};function e(c,e,i,f){if(e===void 0){e=0}if(i===void 0){i=1}if(f===void 0){f=16}if(typeof c!=="string"){c=String(c)}if(c===""||c==null){return e}if(t.MATHSPACE[c]){return t.MATHSPACE[c]}var r=c.match(/^\s*([-+]?(?:\.\d+|\d+(?:\.\d*)?))?(pt|em|ex|mu|px|pc|in|mm|cm|%)?/);if(!r){return e}var s=parseFloat(r[1]||"1"),a=r[2];if(t.UNITS.hasOwnProperty(a)){return s*t.UNITS[a]/f/i}if(t.RELUNITS.hasOwnProperty(a)){return s*t.RELUNITS[a]}if(a==="%"){return s/100*e}return s*e}t.length2em=e;function i(c){return(100*c).toFixed(1).replace(/\.?0+$/,"")+"%"}t.percent=i;function f(c){if(Math.abs(c)<.001)return"0";return c.toFixed(3).replace(/\.?0+$/,"")+"em"}t.em=f;function r(c,t){if(t===void 0){t=16}c=(Math.round(c*t)+.05)/t;if(Math.abs(c)<.001)return"0em";return c.toFixed(3).replace(/\.?0+$/,"")+"em"}t.emRounded=r;function s(c,e,i){if(e===void 0){e=-t.BIGDIMEN}if(i===void 0){i=16}c*=i;if(e&&c{n.r(t);n.d(t,{brainfuck:()=>r});var i="><+-.,[]".split("");const r={name:"brainfuck",startState:function(){return{commentLine:false,left:0,right:0,commentLoop:false}},token:function(e,t){if(e.eatSpace())return null;if(e.sol()){t.commentLine=false}var n=e.next().toString();if(i.indexOf(n)!==-1){if(t.commentLine===true){if(e.eol()){t.commentLine=false}return"comment"}if(n==="]"||n==="["){if(n==="["){t.left++}else{t.right++}return"bracket"}else if(n==="+"||n==="-"){return"keyword"}else if(n==="<"||n===">"){return"atom"}else if(n==="."||n===","){return"def"}}else{t.commentLine=true;if(e.eol()){t.commentLine=false}return"comment"}if(e.eol()){t.commentLine=false}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1832.b1ede2fe899bdec88938.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1832.b1ede2fe899bdec88938.js deleted file mode 100644 index c68f710a9435abdd406ec71b5af097524b8f785d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1832.b1ede2fe899bdec88938.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1832],{31832:e=>{!function(t,n){true?e.exports=n():0}(self,(()=>(()=>{"use strict";var e={6:(e,t)=>{function n(e){try{const t=new URL(e),n=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(n.toLocaleLowerCase())}catch(e){return!1}}Object.defineProperty(t,"__esModule",{value:!0}),t.LinkComputer=t.WebLinkProvider=void 0,t.WebLinkProvider=class{constructor(e,t,n,r={}){this._terminal=e,this._regex=t,this._handler=n,this._options=r}provideLinks(e,t){const n=r.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(n))}_addCallbacks(e){return e.map((e=>(e.leave=this._options.leave,e.hover=(t,n)=>{if(this._options.hover){const{range:r}=e;this._options.hover(t,n,r)}},e)))}};class r{static computeLink(e,t,i,o){const s=new RegExp(t.source,(t.flags||"")+"g"),[a,l]=r._getWindowedLineStrings(e-1,i),c=a.join("");let p;const d=[];for(;p=s.exec(c);){const e=p[0];if(!n(e))continue;const[t,s]=r._mapStrIdx(i,l,0,p.index),[a,c]=r._mapStrIdx(i,t,s,e.length);if(-1===t||-1===s||-1===a||-1===c)continue;const h={start:{x:s+1,y:t+1},end:{x:c,y:a+1}};d.push({range:h,text:e,activate:o})}return d}static _getWindowedLineStrings(e,t){let n,r=e,i=e,o=0,s="";const a=[];if(n=t.buffer.active.getLine(e)){const e=n.translateToString(!0);if(n.isWrapped&&" "!==e[0]){for(o=0;(n=t.buffer.active.getLine(--r))&&o<2048&&(s=n.translateToString(!0),o+=s.length,a.push(s),n.isWrapped&&-1===s.indexOf(" ")););a.reverse()}for(a.push(e),o=0;(n=t.buffer.active.getLine(++i))&&n.isWrapped&&o<2048&&(s=n.translateToString(!0),o+=s.length,a.push(s),-1===s.indexOf(" ")););}return[a,r]}static _mapStrIdx(e,t,n,r){const i=e.buffer.active,o=i.getNullCell();let s=n;for(;r;){const e=i.getLine(t);if(!e)return[-1,-1];for(let n=s;n{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.WebLinksAddon=void 0;const t=n(6),i=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function o(e,t){const n=window.open();if(n){try{n.opener=null}catch{}n.location.href=t}else console.warn("Opening link blocked as opener could not be cleared")}e.WebLinksAddon=class{constructor(e=o,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;const n=this._options,r=n.urlRegex||i;this._linkProvider=this._terminal.registerLinkProvider(new t.WebLinkProvider(this._terminal,r,this._handler,n))}dispose(){this._linkProvider?.dispose()}}})(),r})()))}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1834.7445ad0c82371ac40737.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1834.7445ad0c82371ac40737.js deleted file mode 100644 index 014fe29122f42bcc046373c4daf26e58446061ed..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1834.7445ad0c82371ac40737.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1834],{11834:(e,t,r)=>{r.r(t);r.d(t,{asciiArmor:()=>s});function a(e){var t=e.match(/^\s*\S/);e.skipToEnd();return t?"error":null}const s={name:"asciiarmor",token:function(e,t){var r;if(t.state=="top"){if(e.sol()&&(r=e.match(/^-----BEGIN (.*)?-----\s*$/))){t.state="headers";t.type=r[1];return"tag"}return a(e)}else if(t.state=="headers"){if(e.sol()&&e.match(/^\w+:/)){t.state="header";return"atom"}else{var s=a(e);if(s)t.state="body";return s}}else if(t.state=="header"){e.skipToEnd();t.state="headers";return"string"}else if(t.state=="body"){if(e.sol()&&(r=e.match(/^-----END (.*)?-----\s*$/))){if(r[1]!=t.type)return"error";t.state="end";return"tag"}else{if(e.eatWhile(/[A-Za-z0-9+\/=]/)){return null}else{e.next();return"error"}}}else if(t.state=="end"){return a(e)}},blankLine:function(e){if(e.state=="headers")e.state="body"},startState:function(){return{state:"top",type:null}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1838.839690ff17ec3c532f0a.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1838.839690ff17ec3c532f0a.js deleted file mode 100644 index 9baf100d8d6f0ad8b26c15c69374dd967975bbbc..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1838.839690ff17ec3c532f0a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1838],{63344:(r,n,t)=>{t.d(n,{A:()=>v});var e=t(9883);var a="__lodash_hash_undefined__";function u(r){this.__data__.set(r,a);return this}const c=u;function o(r){return this.__data__.has(r)}const i=o;function f(r){var n=-1,t=r==null?0:r.length;this.__data__=new e.A;while(++n{t.d(n,{A:()=>a});function e(r,n){var t=-1,e=r==null?0:r.length;while(++t{t.d(n,{A:()=>a});function e(r,n){var t=-1,e=r==null?0:r.length,a=0,u=[];while(++t{t.d(n,{A:()=>u});var e=t(54949);function a(r,n){var t=r==null?0:r.length;return!!t&&(0,e.A)(r,n,0)>-1}const u=a},7348:(r,n,t)=>{t.d(n,{A:()=>a});function e(r,n,t){var e=-1,a=r==null?0:r.length;while(++e{t.d(n,{A:()=>a});function e(r,n){var t=-1,e=r==null?0:r.length,a=Array(e);while(++t{t.d(n,{A:()=>a});function e(r,n){var t=-1,e=n.length,a=r.length;while(++t{t.d(n,{A:()=>a});function e(r,n){var t=-1,e=r==null?0:r.length;while(++t{t.d(n,{A:()=>en});var e=t(28478);var a=t(31392);var u=t(16542);var c=t(376);var o=t(37947);function i(r,n){return r&&(0,c.A)(n,(0,o.A)(n),r)}const f=i;var v=t(13839);function s(r,n){return r&&(0,c.A)(n,(0,v.A)(n),r)}const A=s;var l=t(65963);var b=t(91810);var d=t(49499);function h(r,n){return(0,c.A)(r,(0,d.A)(r),n)}const j=h;var p=t(54760);function y(r,n){return(0,c.A)(r,(0,p.A)(r),n)}const g=y;var w=t(62505);var _=t(37138);var O=t(88753);var m=Object.prototype;var S=m.hasOwnProperty;function k(r){var n=r.length,t=new r.constructor(n);if(n&&typeof r[0]=="string"&&S.call(r,"index")){t.index=r.index;t.input=r.input}return t}const E=k;var x=t(53458);function I(r,n){var t=n?(0,x.A)(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}const U=I;var B=/\w*$/;function C(r){var n=new r.constructor(r.source,B.exec(r));n.lastIndex=r.lastIndex;return n}const D=C;var F=t(38066);var M=F.A?F.A.prototype:undefined,z=M?M.valueOf:undefined;function L(r){return z?Object(z.call(r)):{}}const P=L;var $=t(93672);var N="[object Boolean]",R="[object Date]",V="[object Map]",G="[object Number]",W="[object RegExp]",q="[object Set]",H="[object String]",J="[object Symbol]";var K="[object ArrayBuffer]",Q="[object DataView]",T="[object Float32Array]",X="[object Float64Array]",Y="[object Int8Array]",Z="[object Int16Array]",rr="[object Int32Array]",nr="[object Uint8Array]",tr="[object Uint8ClampedArray]",er="[object Uint16Array]",ar="[object Uint32Array]";function ur(r,n,t){var e=r.constructor;switch(n){case K:return(0,x.A)(r);case N:case R:return new e(+r);case Q:return U(r,t);case T:case X:case Y:case Z:case rr:case nr:case tr:case er:case ar:return(0,$.A)(r,t);case V:return new e;case G:case H:return new e(r);case W:return D(r);case q:return new e;case J:return P(r)}}const cr=ur;var or=t(92768);var ir=t(39990);var fr=t(50895);var vr=t(53315);var sr="[object Map]";function Ar(r){return(0,vr.A)(r)&&(0,O.A)(r)==sr}const lr=Ar;var br=t(26132);var dr=t(89986);var hr=dr.A&&dr.A.isMap;var jr=hr?(0,br.A)(hr):lr;const pr=jr;var yr=t(85356);var gr="[object Set]";function wr(r){return(0,vr.A)(r)&&(0,O.A)(r)==gr}const _r=wr;var Or=dr.A&&dr.A.isSet;var mr=Or?(0,br.A)(Or):_r;const Sr=mr;var kr=1,Er=2,xr=4;var Ir="[object Arguments]",Ur="[object Array]",Br="[object Boolean]",Cr="[object Date]",Dr="[object Error]",Fr="[object Function]",Mr="[object GeneratorFunction]",zr="[object Map]",Lr="[object Number]",Pr="[object Object]",$r="[object RegExp]",Nr="[object Set]",Rr="[object String]",Vr="[object Symbol]",Gr="[object WeakMap]";var Wr="[object ArrayBuffer]",qr="[object DataView]",Hr="[object Float32Array]",Jr="[object Float64Array]",Kr="[object Int8Array]",Qr="[object Int16Array]",Tr="[object Int32Array]",Xr="[object Uint8Array]",Yr="[object Uint8ClampedArray]",Zr="[object Uint16Array]",rn="[object Uint32Array]";var nn={};nn[Ir]=nn[Ur]=nn[Wr]=nn[qr]=nn[Br]=nn[Cr]=nn[Hr]=nn[Jr]=nn[Kr]=nn[Qr]=nn[Tr]=nn[zr]=nn[Lr]=nn[Pr]=nn[$r]=nn[Nr]=nn[Rr]=nn[Vr]=nn[Xr]=nn[Yr]=nn[Zr]=nn[rn]=true;nn[Dr]=nn[Fr]=nn[Gr]=false;function tn(r,n,t,c,i,s){var d,h=n&kr,p=n&Er,y=n&xr;if(t){d=i?t(r,c,i,s):t(r)}if(d!==undefined){return d}if(!(0,yr.A)(r)){return r}var m=(0,ir.A)(r);if(m){d=E(r);if(!h){return(0,b.A)(r,d)}}else{var S=(0,O.A)(r),k=S==Fr||S==Mr;if((0,fr.A)(r)){return(0,l.A)(r,h)}if(S==Pr||S==Ir||k&&!i){d=p||k?{}:(0,or.A)(r);if(!h){return p?g(r,A(d,r)):j(r,f(d,r))}}else{if(!nn[S]){return i?r:{}}d=cr(r,S,h)}}s||(s=new e.A);var x=s.get(r);if(x){return x}s.set(r,d);if(Sr(r)){r.forEach((function(e){d.add(tn(e,n,t,e,r,s))}))}else if(pr(r)){r.forEach((function(e,a){d.set(a,tn(e,n,t,a,r,s))}))}var I=y?p?_.A:w.A:p?v.A:o.A;var U=m?undefined:I(r);(0,a.A)(U||r,(function(e,a){if(U){a=e;e=r[a]}(0,u.A)(d,a,tn(e,n,t,a,r,s))}));return d}const en=tn},15912:(r,n,t)=>{t.d(n,{A:()=>i});var e=t(27477);var a=t(21585);function u(r,n){return function(t,e){if(t==null){return t}if(!(0,a.A)(t)){return r(t,e)}var u=t.length,c=n?u:-1,o=Object(t);while(n?c--:++c{t.d(n,{A:()=>u});var e=t(15912);function a(r,n){var t=[];(0,e.A)(r,(function(r,e,a){if(n(r,e,a)){t.push(r)}}));return t}const u=a},97314:(r,n,t)=>{t.d(n,{A:()=>a});function e(r,n,t,e){var a=r.length,u=t+(e?1:-1);while(e?u--:++u{t.d(n,{A:()=>s});var e=t(70009);var a=t(38066);var u=t(71528);var c=t(39990);var o=a.A?a.A.isConcatSpreadable:undefined;function i(r){return(0,c.A)(r)||(0,u.A)(r)||!!(o&&r&&r[o])}const f=i;function v(r,n,t,a,u){var c=-1,o=r.length;t||(t=f);u||(u=[]);while(++c0&&t(i)){if(n>1){v(i,n-1,t,a,u)}else{(0,e.A)(u,i)}}else if(!a){u[u.length]=i}}return u}const s=v},27477:(r,n,t)=>{t.d(n,{A:()=>c});var e=t(40283);var a=t(37947);function u(r,n){return r&&(0,e.A)(r,n,a.A)}const c=u},22883:(r,n,t)=>{t.d(n,{A:()=>c});var e=t(65900);var a=t(43512);function u(r,n){n=(0,e.A)(n,r);var t=0,u=n.length;while(r!=null&&t{t.d(n,{A:()=>c});var e=t(70009);var a=t(39990);function u(r,n,t){var u=n(r);return(0,a.A)(r)?u:(0,e.A)(u,t(r))}const c=u},54949:(r,n,t)=>{t.d(n,{A:()=>f});var e=t(97314);function a(r){return r!==r}const u=a;function c(r,n,t){var e=t-1,a=r.length;while(++e{t.d(n,{A:()=>Cr});var e=t(28478);var a=t(63344);var u=t(95345);var c=t(4832);var o=1,i=2;function f(r,n,t,e,f,v){var s=t&o,A=r.length,l=n.length;if(A!=l&&!(s&&l>A)){return false}var b=v.get(r);var d=v.get(n);if(b&&d){return b==n&&d==r}var h=-1,j=true,p=t&i?new a.A:undefined;v.set(r,n);v.set(n,r);while(++h{t.d(n,{A:()=>a});function e(r){return function(n){return n==null?undefined:n[r]}}const a=e},19363:(r,n,t)=>{t.d(n,{A:()=>d});var e=t(63344);var a=t(43212);var u=t(7348);var c=t(4832);var o=t(88224);var i=t(42111);var f=t(71940);var v=1/0;var s=!(o.A&&1/(0,f.A)(new o.A([,-0]))[1]==v)?i.A:function(r){return new o.A(r)};const A=s;var l=200;function b(r,n,t){var o=-1,i=a.A,v=r.length,s=true,b=[],d=b;if(t){s=false;i=u.A}else if(v>=l){var h=n?null:A(r);if(h){return(0,f.A)(h)}s=false;i=c.A;d=new e.A}else{d=n?[]:b}r:while(++o{t.d(n,{A:()=>a});function e(r,n){return r.has(n)}const a=e},76253:(r,n,t)=>{t.d(n,{A:()=>u});var e=t(63077);function a(r){return typeof r=="function"?r:e.A}const u=a},65900:(r,n,t)=>{t.d(n,{A:()=>d});var e=t(39990);var a=t(17283);var u=t(307);var c=500;function o(r){var n=(0,u.A)(r,(function(r){if(t.size===c){t.clear()}return r}));var t=n.cache;return n}const i=o;var f=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;var v=/\\(\\)?/g;var s=i((function(r){var n=[];if(r.charCodeAt(0)===46){n.push("")}r.replace(f,(function(r,t,e,a){n.push(e?a.replace(v,"$1"):t||r)}));return n}));const A=s;var l=t(92911);function b(r,n){if((0,e.A)(r)){return r}return(0,a.A)(r,n)?[r]:A((0,l.A)(r))}const d=b},62505:(r,n,t)=>{t.d(n,{A:()=>o});var e=t(45300);var a=t(49499);var u=t(37947);function c(r){return(0,e.A)(r,u.A,a.A)}const o=c},37138:(r,n,t)=>{t.d(n,{A:()=>o});var e=t(45300);var a=t(54760);var u=t(13839);function c(r){return(0,e.A)(r,u.A,a.A)}const o=c},49499:(r,n,t)=>{t.d(n,{A:()=>f});var e=t(89191);var a=t(38058);var u=Object.prototype;var c=u.propertyIsEnumerable;var o=Object.getOwnPropertySymbols;var i=!o?a.A:function(r){if(r==null){return[]}r=Object(r);return(0,e.A)(o(r),(function(n){return c.call(r,n)}))};const f=i},54760:(r,n,t)=>{t.d(n,{A:()=>f});var e=t(70009);var a=t(86848);var u=t(49499);var c=t(38058);var o=Object.getOwnPropertySymbols;var i=!o?c.A:function(r){var n=[];while(r){(0,e.A)(n,(0,u.A)(r));r=(0,a.A)(r)}return n};const f=i},64491:(r,n,t)=>{t.d(n,{A:()=>v});var e=t(65900);var a=t(71528);var u=t(39990);var c=t(78912);var o=t(43627);var i=t(43512);function f(r,n,t){n=(0,e.A)(n,r);var f=-1,v=n.length,s=false;while(++f{t.d(n,{A:()=>i});var e=t(39990);var a=t(62579);var u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,c=/^\w*$/;function o(r,n){if((0,e.A)(r)){return false}var t=typeof r;if(t=="number"||t=="symbol"||t=="boolean"||r==null||(0,a.A)(r)){return true}return c.test(r)||!u.test(r)||n!=null&&r in Object(n)}const i=o},71940:(r,n,t)=>{t.d(n,{A:()=>a});function e(r){var n=-1,t=Array(r.size);r.forEach((function(r){t[++n]=r}));return t}const a=e},43512:(r,n,t)=>{t.d(n,{A:()=>c});var e=t(62579);var a=1/0;function u(r){if(typeof r=="string"||(0,e.A)(r)){return r}var n=r+"";return n=="0"&&1/r==-a?"-0":n}const c=u},97133:(r,n,t)=>{t.d(n,{A:()=>i});var e=t(89191);var a=t(64725);var u=t(1121);var c=t(39990);function o(r,n){var t=(0,c.A)(r)?e.A:a.A;return t(r,(0,u.A)(n,3))}const i=o},69769:(r,n,t)=>{t.d(n,{A:()=>i});var e=t(31392);var a=t(15912);var u=t(76253);var c=t(39990);function o(r,n){var t=(0,c.A)(r)?e.A:a.A;return t(r,(0,u.A)(n))}const i=o},78307:(r,n,t)=>{t.d(n,{A:()=>o});function e(r,n){return r!=null&&n in Object(r)}const a=e;var u=t(64491);function c(r,n){return r!=null&&(0,u.A)(r,n,a)}const o=c},62579:(r,n,t)=>{t.d(n,{A:()=>o});var e=t(64128);var a=t(53315);var u="[object Symbol]";function c(r){return typeof r=="symbol"||(0,a.A)(r)&&(0,e.A)(r)==u}const o=c},89523:(r,n,t)=>{t.d(n,{A:()=>a});function e(r){return r===undefined}const a=e},37947:(r,n,t)=>{t.d(n,{A:()=>o});var e=t(74578);var a=t(30568);var u=t(21585);function c(r){return(0,u.A)(r)?(0,e.A)(r):(0,a.A)(r)}const o=c},42111:(r,n,t)=>{t.d(n,{A:()=>a});function e(){}const a=e},65339:(r,n,t)=>{t.d(n,{A:()=>s});function e(r,n,t,e){var a=-1,u=r==null?0:r.length;if(e&&u){t=r[++a]}while(++a{t.d(n,{A:()=>a});function e(){return[]}const a=e},92911:(r,n,t)=>{t.d(n,{A:()=>l});var e=t(38066);var a=t(98519);var u=t(39990);var c=t(62579);var o=1/0;var i=e.A?e.A.prototype:undefined,f=i?i.toString:undefined;function v(r){if(typeof r=="string"){return r}if((0,u.A)(r)){return(0,a.A)(r,v)+""}if((0,c.A)(r)){return f?f.call(r):""}var n=r+"";return n=="0"&&1/r==-o?"-0":n}const s=v;function A(r){return r==null?"":s(r)}const l=A},44882:(r,n,t)=>{t.d(n,{A:()=>i});var e=t(98519);function a(r,n){return(0,e.A)(n,(function(n){return r[n]}))}const u=a;var c=t(37947);function o(r){return r==null?[]:u(r,(0,c.A)(r))}const i=o}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1887.56f83f163a18c61efb16.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1887.56f83f163a18c61efb16.js deleted file mode 100644 index 7e8c3e789a6e20a1d8a23cd843cf61063a774a64..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1887.56f83f163a18c61efb16.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1887],{81887:(e,t,r)=>{r.r(t);r.d(t,{eiffel:()=>s});function n(e){var t={};for(var r=0,n=e.length;r>"]);function u(e,t,r){r.tokenize.push(e);return e(t,r)}function l(e,t){if(e.eatSpace())return null;var r=e.next();if(r=='"'||r=="'"){return u(o(r,"string"),e,t)}else if(r=="-"&&e.eat("-")){e.skipToEnd();return"comment"}else if(r==":"&&e.eat("=")){return"operator"}else if(/[0-9]/.test(r)){e.eatWhile(/[xXbBCc0-9\.]/);e.eat(/[\?\!]/);return"variable"}else if(/[a-zA-Z_0-9]/.test(r)){e.eatWhile(/[a-zA-Z_0-9]/);e.eat(/[\?\!]/);return"variable"}else if(/[=+\-\/*^%<>~]/.test(r)){e.eatWhile(/[=+\-\/*^%<>~]/);return"operator"}else{return null}}function o(e,t,r){return function(n,a){var i=false,u;while((u=n.next())!=null){if(u==e&&(r||!i)){a.tokenize.pop();break}i=!i&&u=="%"}return t}}const s={name:"eiffel",startState:function(){return{tokenize:[l]}},token:function(e,t){var r=t.tokenize[t.tokenize.length-1](e,t);if(r=="variable"){var n=e.current();r=a.propertyIsEnumerable(e.current())?"keyword":i.propertyIsEnumerable(e.current())?"operator":/^[A-Z][A-Z_0-9]*$/g.test(n)?"tag":/^0[bB][0-1]+$/g.test(n)?"number":/^0[cC][0-7]+$/g.test(n)?"number":/^0[xX][a-fA-F0-9]+$/g.test(n)?"number":/^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(n)?"number":/^[0-9]+$/g.test(n)?"number":"variable"}return r},languageData:{commentTokens:{line:"--"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1909.7487a09fefbe7f9eabb6.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1909.7487a09fefbe7f9eabb6.js deleted file mode 100644 index cbbd9a0b6dbd358febfc6ae1d4ccd4eaba5d6012..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1909.7487a09fefbe7f9eabb6.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 1909.7487a09fefbe7f9eabb6.js.LICENSE.txt */ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1909],{31909:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.AllPackages=void 0;r(11252);r(3654);r(48600);r(62684);r(12512);r(79224);r(82792);r(77774);r(2362);r(12796);r(50228);r(79712);r(69600);r(90272);r(45320);r(13726);r(48128);r(15472);r(95120);r(98452);r(7932);r(75802);r(36912);r(21018);r(68916);r(23468);r(91610);r(18560);r(46370);r(29302);r(82736);r(69112);r(22232);if(typeof MathJax!=="undefined"&&MathJax.loader){MathJax.loader.preLoad("[tex]/action","[tex]/ams","[tex]/amscd","[tex]/bbox","[tex]/boldsymbol","[tex]/braket","[tex]/bussproofs","[tex]/cancel","[tex]/cases","[tex]/centernot","[tex]/color","[tex]/colorv2","[tex]/colortbl","[tex]/empheq","[tex]/enclose","[tex]/extpfeil","[tex]/gensymb","[tex]/html","[tex]/mathtools","[tex]/mhchem","[tex]/newcommand","[tex]/noerrors","[tex]/noundefined","[tex]/physics","[tex]/upgreek","[tex]/unicode","[tex]/verb","[tex]/configmacros","[tex]/tagformat","[tex]/textcomp","[tex]/textmacros","[tex]/setoptions")}t.AllPackages=["base","action","ams","amscd","bbox","boldsymbol","braket","bussproofs","cancel","cases","centernot","color","colortbl","empheq","enclose","extpfeil","gensymb","html","mathtools","mhchem","newcommand","noerrors","noundefined","upgreek","unicode","verb","configmacros","tagformat","textcomp","textmacros"]},3654:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.ActionConfiguration=t.ActionMethods=void 0;var n=r(56441);var o=a(r(75845));var i=r(80209);var s=a(r(38364));t.ActionMethods={};t.ActionMethods.Macro=s.default.Macro;t.ActionMethods.Toggle=function(e,t){var r=[];var a;while((a=e.GetArgument(t))!=="\\endtoggle"){r.push(new o.default(a,e.stack.env,e.configuration).mml())}e.Push(e.create("node","maction",r,{actiontype:"toggle"}))};t.ActionMethods.Mathtip=function(e,t){var r=e.ParseArg(t);var a=e.ParseArg(t);e.Push(e.create("node","maction",[r,a],{actiontype:"tooltip"}))};new i.CommandMap("action-macros",{toggle:"Toggle",mathtip:"Mathtip",texttip:["Macro","\\mathtip{#1}{\\text{#2}}",2]},t.ActionMethods);t.ActionConfiguration=n.Configuration.create("action",{handler:{macro:["action-macros"]}})},48600:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n;Object.defineProperty(t,"__esModule",{value:true});t.AmsConfiguration=t.AmsTags=void 0;var o=r(56441);var i=r(92902);var s=r(17782);var l=r(98840);r(97403);var u=r(80209);var c=function(e){a(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(s.AbstractTags);t.AmsTags=c;var f=function(e){new u.CommandMap(l.NEW_OPS,{},{});e.append(o.Configuration.local({handler:{macro:[l.NEW_OPS]},priority:-1}))};t.AmsConfiguration=o.Configuration.create("ams",{handler:{character:["AMSmath-operatorLetter"],delimiter:["AMSsymbols-delimiter","AMSmath-delimiter"],macro:["AMSsymbols-mathchar0mi","AMSsymbols-mathchar0mo","AMSsymbols-delimiter","AMSsymbols-macros","AMSmath-mathchar0mo","AMSmath-macros","AMSmath-delimiter"],environment:["AMSmath-environment"]},items:(n={},n[i.MultlineItem.prototype.kind]=i.MultlineItem,n[i.FlalignItem.prototype.kind]=i.FlalignItem,n),tags:{ams:c},init:f,config:function(e,t){if(t.parseOptions.options.multlineWidth){t.parseOptions.options.ams.multlineWidth=t.parseOptions.options.multlineWidth}delete t.parseOptions.options.multlineWidth},options:{multlineWidth:"",ams:{multlineWidth:"100%",multlineIndent:"1em"}}})},92902:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__assign||function(){n=Object.assign||function(e){for(var t,r=1,a=arguments.length;rt){throw new u.default("XalignOverflow","Extra %1 in row of %2","&",this.name)}};t.prototype.EndRow=function(){var t;var r=this.row;var a=this.getProperty("xalignat");while(r.lengththis.maxrow){this.maxrow=this.row.length}e.prototype.EndRow.call(this);var o=this.table[this.table.length-1];if(this.getProperty("zeroWidthLabel")&&o.isKind("mlabeledtr")){var i=l.default.getChildren(o)[0];var s=this.factory.configuration.options["tagSide"];var u=n({width:0},s==="right"?{lspace:"-1width"}:{});var c=this.create("node","mpadded",l.default.getChildren(i),u);i.setChildren([c])}};t.prototype.EndTable=function(){e.prototype.EndTable.call(this);if(this.center){if(this.maxrow<=2){var t=this.arraydef;delete t.width;delete this.global.indentalign}}};return t}(i.EqnArrayItem);t.FlalignItem=d},97403:function(e,t,r){var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var s=r(98840);var l=o(r(80209));var u=r(80469);var c=i(r(22960));var f=i(r(6980));var d=r(80747);var p=r(86810);new l.CharacterMap("AMSmath-mathchar0mo",c.default.mathchar0mo,{iiiint:["⨌",{texClass:d.TEXCLASS.OP}]});new l.RegExpMap("AMSmath-operatorLetter",s.AmsMethods.operatorLetter,/[-*]/i);new l.CommandMap("AMSmath-macros",{mathring:["Accent","02DA"],nobreakspace:"Tilde",negmedspace:["Spacer",p.MATHSPACE.negativemediummathspace],negthickspace:["Spacer",p.MATHSPACE.negativethickmathspace],idotsint:["MultiIntegral","\\int\\cdots\\int"],dddot:["Accent","20DB"],ddddot:["Accent","20DC"],sideset:"SideSet",boxed:["Macro","\\fbox{$\\displaystyle{#1}$}",1],tag:"HandleTag",notag:"HandleNoTag",eqref:["HandleRef",true],substack:["Macro","\\begin{subarray}{c}#1\\end{subarray}",1],injlim:["NamedOp","inj lim"],projlim:["NamedOp","proj lim"],varliminf:["Macro","\\mathop{\\underline{\\mmlToken{mi}{lim}}}"],varlimsup:["Macro","\\mathop{\\overline{\\mmlToken{mi}{lim}}}"],varinjlim:["Macro","\\mathop{\\underrightarrow{\\mmlToken{mi}{lim}}}"],varprojlim:["Macro","\\mathop{\\underleftarrow{\\mmlToken{mi}{lim}}}"],DeclareMathOperator:"HandleDeclareOp",operatorname:"HandleOperatorName",genfrac:"Genfrac",frac:["Genfrac","","","",""],tfrac:["Genfrac","","","","1"],dfrac:["Genfrac","","","","0"],binom:["Genfrac","(",")","0",""],tbinom:["Genfrac","(",")","0","1"],dbinom:["Genfrac","(",")","0","0"],cfrac:"CFrac",shoveleft:["HandleShove",u.TexConstant.Align.LEFT],shoveright:["HandleShove",u.TexConstant.Align.RIGHT],xrightarrow:["xArrow",8594,5,10],xleftarrow:["xArrow",8592,10,5]},s.AmsMethods);new l.EnvironmentMap("AMSmath-environment",c.default.environment,{"equation*":["Equation",null,false],"eqnarray*":["EqnArray",null,false,true,"rcl",f.default.cols(0,p.MATHSPACE.thickmathspace),".5em"],align:["EqnArray",null,true,true,"rl",f.default.cols(0,2)],"align*":["EqnArray",null,false,true,"rl",f.default.cols(0,2)],multline:["Multline",null,true],"multline*":["Multline",null,false],split:["EqnArray",null,false,false,"rl",f.default.cols(0)],gather:["EqnArray",null,true,true,"c"],"gather*":["EqnArray",null,false,true,"c"],alignat:["AlignAt",null,true,true],"alignat*":["AlignAt",null,false,true],alignedat:["AlignAt",null,false,false],aligned:["AmsEqnArray",null,null,null,"rl",f.default.cols(0,2),".5em","D"],gathered:["AmsEqnArray",null,null,null,"c",null,".5em","D"],xalignat:["XalignAt",null,true,true],"xalignat*":["XalignAt",null,false,true],xxalignat:["XalignAt",null,false,false],flalign:["FlalignArray",null,true,false,true,"rlc","auto auto fit"],"flalign*":["FlalignArray",null,false,false,true,"rlc","auto auto fit"],subarray:["Array",null,null,null,null,f.default.cols(0),"0.1em","S",1],smallmatrix:["Array",null,null,null,"c",f.default.cols(1/3),".2em","S",1],matrix:["Array",null,null,null,"c"],pmatrix:["Array",null,"(",")","c"],bmatrix:["Array",null,"[","]","c"],Bmatrix:["Array",null,"\\{","\\}","c"],vmatrix:["Array",null,"\\vert","\\vert","c"],Vmatrix:["Array",null,"\\Vert","\\Vert","c"],cases:["Array",null,"\\{",".","ll",null,".2em","T"]},s.AmsMethods);new l.DelimiterMap("AMSmath-delimiter",c.default.delimiter,{"\\lvert":["|",{texClass:d.TEXCLASS.OPEN}],"\\rvert":["|",{texClass:d.TEXCLASS.CLOSE}],"\\lVert":["‖",{texClass:d.TEXCLASS.OPEN}],"\\rVert":["‖",{texClass:d.TEXCLASS.CLOSE}]});new l.CharacterMap("AMSsymbols-mathchar0mi",c.default.mathchar0mi,{digamma:"ϝ",varkappa:"ϰ",varGamma:["Γ",{mathvariant:u.TexConstant.Variant.ITALIC}],varDelta:["Δ",{mathvariant:u.TexConstant.Variant.ITALIC}],varTheta:["Θ",{mathvariant:u.TexConstant.Variant.ITALIC}],varLambda:["Λ",{mathvariant:u.TexConstant.Variant.ITALIC}],varXi:["Ξ",{mathvariant:u.TexConstant.Variant.ITALIC}],varPi:["Π",{mathvariant:u.TexConstant.Variant.ITALIC}],varSigma:["Σ",{mathvariant:u.TexConstant.Variant.ITALIC}],varUpsilon:["Υ",{mathvariant:u.TexConstant.Variant.ITALIC}],varPhi:["Φ",{mathvariant:u.TexConstant.Variant.ITALIC}],varPsi:["Ψ",{mathvariant:u.TexConstant.Variant.ITALIC}],varOmega:["Ω",{mathvariant:u.TexConstant.Variant.ITALIC}],beth:"ℶ",gimel:"ℷ",daleth:"ℸ",backprime:["‵",{variantForm:true}],hslash:"ℏ",varnothing:["∅",{variantForm:true}],blacktriangle:"▴",triangledown:["▽",{variantForm:true}],blacktriangledown:"▾",square:"◻",Box:"◻",blacksquare:"◼",lozenge:"◊",Diamond:"◊",blacklozenge:"⧫",circledS:["Ⓢ",{mathvariant:u.TexConstant.Variant.NORMAL}],bigstar:"★",sphericalangle:"∢",measuredangle:"∡",nexists:"∄",complement:"∁",mho:"℧",eth:["ð",{mathvariant:u.TexConstant.Variant.NORMAL}],Finv:"Ⅎ",diagup:"╱",Game:"⅁",diagdown:"╲",Bbbk:["k",{mathvariant:u.TexConstant.Variant.DOUBLESTRUCK}],yen:"¥",circledR:"®",checkmark:"✓",maltese:"✠"});new l.CharacterMap("AMSsymbols-mathchar0mo",c.default.mathchar0mo,{dotplus:"∔",ltimes:"⋉",smallsetminus:["∖",{variantForm:true}],rtimes:"⋊",Cap:"⋒",doublecap:"⋒",leftthreetimes:"⋋",Cup:"⋓",doublecup:"⋓",rightthreetimes:"⋌",barwedge:"⊼",curlywedge:"⋏",veebar:"⊻",curlyvee:"⋎",doublebarwedge:"⩞",boxminus:"⊟",circleddash:"⊝",boxtimes:"⊠",circledast:"⊛",boxdot:"⊡",circledcirc:"⊚",boxplus:"⊞",centerdot:["⋅",{variantForm:true}],divideontimes:"⋇",intercal:"⊺",leqq:"≦",geqq:"≧",leqslant:"⩽",geqslant:"⩾",eqslantless:"⪕",eqslantgtr:"⪖",lesssim:"≲",gtrsim:"≳",lessapprox:"⪅",gtrapprox:"⪆",approxeq:"≊",lessdot:"⋖",gtrdot:"⋗",lll:"⋘",llless:"⋘",ggg:"⋙",gggtr:"⋙",lessgtr:"≶",gtrless:"≷",lesseqgtr:"⋚",gtreqless:"⋛",lesseqqgtr:"⪋",gtreqqless:"⪌",doteqdot:"≑",Doteq:"≑",eqcirc:"≖",risingdotseq:"≓",circeq:"≗",fallingdotseq:"≒",triangleq:"≜",backsim:"∽",thicksim:["∼",{variantForm:true}],backsimeq:"⋍",thickapprox:["≈",{variantForm:true}],subseteqq:"⫅",supseteqq:"⫆",Subset:"⋐",Supset:"⋑",sqsubset:"⊏",sqsupset:"⊐",preccurlyeq:"≼",succcurlyeq:"≽",curlyeqprec:"⋞",curlyeqsucc:"⋟",precsim:"≾",succsim:"≿",precapprox:"⪷",succapprox:"⪸",vartriangleleft:"⊲",lhd:"⊲",vartriangleright:"⊳",rhd:"⊳",trianglelefteq:"⊴",unlhd:"⊴",trianglerighteq:"⊵",unrhd:"⊵",vDash:["⊨",{variantForm:true}],Vdash:"⊩",Vvdash:"⊪",smallsmile:["⌣",{variantForm:true}],shortmid:["∣",{variantForm:true}],smallfrown:["⌢",{variantForm:true}],shortparallel:["∥",{variantForm:true}],bumpeq:"≏",between:"≬",Bumpeq:"≎",pitchfork:"⋔",varpropto:["∝",{variantForm:true}],backepsilon:"∍",blacktriangleleft:"◂",blacktriangleright:"▸",therefore:"∴",because:"∵",eqsim:"≂",vartriangle:["△",{variantForm:true}],Join:"⋈",nless:"≮",ngtr:"≯",nleq:"≰",ngeq:"≱",nleqslant:["⪇",{variantForm:true}],ngeqslant:["⪈",{variantForm:true}],nleqq:["≰",{variantForm:true}],ngeqq:["≱",{variantForm:true}],lneq:"⪇",gneq:"⪈",lneqq:"≨",gneqq:"≩",lvertneqq:["≨",{variantForm:true}],gvertneqq:["≩",{variantForm:true}],lnsim:"⋦",gnsim:"⋧",lnapprox:"⪉",gnapprox:"⪊",nprec:"⊀",nsucc:"⊁",npreceq:["⋠",{variantForm:true}],nsucceq:["⋡",{variantForm:true}],precneqq:"⪵",succneqq:"⪶",precnsim:"⋨",succnsim:"⋩",precnapprox:"⪹",succnapprox:"⪺",nsim:"≁",ncong:"≇",nshortmid:["∤",{variantForm:true}],nshortparallel:["∦",{variantForm:true}],nmid:"∤",nparallel:"∦",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",ntriangleleft:"⋪",ntriangleright:"⋫",ntrianglelefteq:"⋬",ntrianglerighteq:"⋭",nsubseteq:"⊈",nsupseteq:"⊉",nsubseteqq:["⊈",{variantForm:true}],nsupseteqq:["⊉",{variantForm:true}],subsetneq:"⊊",supsetneq:"⊋",varsubsetneq:["⊊",{variantForm:true}],varsupsetneq:["⊋",{variantForm:true}],subsetneqq:"⫋",supsetneqq:"⫌",varsubsetneqq:["⫋",{variantForm:true}],varsupsetneqq:["⫌",{variantForm:true}],leftleftarrows:"⇇",rightrightarrows:"⇉",leftrightarrows:"⇆",rightleftarrows:"⇄",Lleftarrow:"⇚",Rrightarrow:"⇛",twoheadleftarrow:"↞",twoheadrightarrow:"↠",leftarrowtail:"↢",rightarrowtail:"↣",looparrowleft:"↫",looparrowright:"↬",leftrightharpoons:"⇋",rightleftharpoons:["⇌",{variantForm:true}],curvearrowleft:"↶",curvearrowright:"↷",circlearrowleft:"↺",circlearrowright:"↻",Lsh:"↰",Rsh:"↱",upuparrows:"⇈",downdownarrows:"⇊",upharpoonleft:"↿",upharpoonright:"↾",downharpoonleft:"⇃",restriction:"↾",multimap:"⊸",downharpoonright:"⇂",leftrightsquigarrow:"↭",rightsquigarrow:"⇝",leadsto:"⇝",dashrightarrow:"⇢",dashleftarrow:"⇠",nleftarrow:"↚",nrightarrow:"↛",nLeftarrow:"⇍",nRightarrow:"⇏",nleftrightarrow:"↮",nLeftrightarrow:"⇎"});new l.DelimiterMap("AMSsymbols-delimiter",c.default.delimiter,{"\\ulcorner":"⌜","\\urcorner":"⌝","\\llcorner":"⌞","\\lrcorner":"⌟"});new l.CommandMap("AMSsymbols-macros",{implies:["Macro","\\;\\Longrightarrow\\;"],impliedby:["Macro","\\;\\Longleftarrow\\;"]},s.AmsMethods)},98840:function(e,t,r){var a=this&&this.__assign||function(){a=Object.assign||function(e){for(var t,r=1,a=arguments.length;r0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(i)throw i.error}}return o};var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.NEW_OPS=t.AmsMethods=void 0;var i=o(r(6980));var s=o(r(22960));var l=o(r(72691));var u=r(80469);var c=o(r(75845));var f=o(r(98770));var d=r(27151);var p=o(r(38364));var m=r(80747);t.AmsMethods={};t.AmsMethods.AmsEqnArray=function(e,t,r,a,n,o,s){var l=e.GetBrackets("\\begin{"+t.getName()+"}");var u=p.default.EqnArray(e,t,r,a,n,o,s);return i.default.setArrayAlign(u,l)};t.AmsMethods.AlignAt=function(e,r,a,n){var o=r.getName();var s,l,u="",c=[];if(!n){l=e.GetBrackets("\\begin{"+o+"}")}s=e.GetArgument("\\begin{"+o+"}");if(s.match(/[^0-9]/)){throw new f.default("PositiveIntegerArg","Argument to %1 must me a positive integer","\\begin{"+o+"}")}var d=parseInt(s,10);while(d>0){u+="rl";c.push("0em 0em");d--}var p=c.join(" ");if(n){return t.AmsMethods.EqnArray(e,r,a,n,u,p)}var m=t.AmsMethods.EqnArray(e,r,a,n,u,p);return i.default.setArrayAlign(m,l)};t.AmsMethods.Multline=function(e,t,r){e.Push(t);i.default.checkEqnEnv(e);var a=e.itemFactory.create("multline",r,e.stack);a.arraydef={displaystyle:true,rowspacing:".5em",columnspacing:"100%",width:e.options.ams["multlineWidth"],side:e.options["tagSide"],minlabelspacing:e.options["tagIndent"],framespacing:e.options.ams["multlineIndent"]+" 0",frame:"","data-width-includes-label":true};return a};t.AmsMethods.XalignAt=function(e,r,a,n){var o=e.GetArgument("\\begin{"+r.getName()+"}");if(o.match(/[^0-9]/)){throw new f.default("PositiveIntegerArg","Argument to %1 must me a positive integer","\\begin{"+r.getName()+"}")}var i=n?"crl":"rlc";var s=n?"fit auto auto":"auto auto fit";var l=t.AmsMethods.FlalignArray(e,r,a,n,false,i,s,true);l.setProperty("xalignat",2*parseInt(o));return l};t.AmsMethods.FlalignArray=function(e,t,r,a,n,o,s,l){if(l===void 0){l=false}e.Push(t);i.default.checkEqnEnv(e);o=o.split("").join(" ").replace(/r/g,"right").replace(/l/g,"left").replace(/c/g,"center");var u=e.itemFactory.create("flalign",t.getName(),r,a,n,e.stack);u.arraydef={width:"100%",displaystyle:true,columnalign:o,columnspacing:"0em",columnwidth:s,rowspacing:"3pt",side:e.options["tagSide"],minlabelspacing:l?"0":e.options["tagIndent"],"data-width-includes-label":true};u.setProperty("zeroWidthLabel",l);return u};t.NEW_OPS="ams-declare-ops";t.AmsMethods.HandleDeclareOp=function(e,r){var a=e.GetStar()?"*":"";var n=i.default.trimSpaces(e.GetArgument(r));if(n.charAt(0)==="\\"){n=n.substr(1)}var o=e.GetArgument(r);e.configuration.handlers.retrieve(t.NEW_OPS).add(n,new d.Macro(n,t.AmsMethods.Macro,["\\operatorname".concat(a,"{").concat(o,"}")]))};t.AmsMethods.HandleOperatorName=function(e,t){var r=e.GetStar();var n=i.default.trimSpaces(e.GetArgument(t));var o=new c.default(n,a(a({},e.stack.env),{font:u.TexConstant.Variant.NORMAL,multiLetterIdentifiers:/^[-*a-z]+/i,operatorLetters:true}),e.configuration).mml();if(!o.isKind("mi")){o=e.create("node","TeXAtom",[o])}l.default.setProperties(o,{movesupsub:r,movablelimits:true,texClass:m.TEXCLASS.OP});if(!r){var s=e.GetNext(),f=e.i;if(s==="\\"&&++e.i&&e.GetCS()!=="limits"){e.i=f}}e.Push(o)};t.AmsMethods.SideSet=function(e,t){var r=n(h(e.ParseArg(t)),2),a=r[0],o=r[1];var s=n(h(e.ParseArg(t)),2),u=s[0],c=s[1];var f=e.ParseArg(t);var d=f;if(a){if(o){a.replaceChild(e.create("node","mphantom",[e.create("node","mpadded",[i.default.copyNode(f,e)],{width:0})]),l.default.getChildAt(a,0))}else{d=e.create("node","mmultiscripts",[f]);if(u){l.default.appendChildren(d,[l.default.getChildAt(u,1)||e.create("node","none"),l.default.getChildAt(u,2)||e.create("node","none")])}l.default.setProperty(d,"scriptalign","left");l.default.appendChildren(d,[e.create("node","mprescripts"),l.default.getChildAt(a,1)||e.create("node","none"),l.default.getChildAt(a,2)||e.create("node","none")])}}if(u&&d===f){u.replaceChild(f,l.default.getChildAt(u,0));d=u}var p=e.create("node","TeXAtom",[],{texClass:m.TEXCLASS.OP,movesupsub:true,movablelimits:true});if(o){a&&p.appendChild(a);p.appendChild(o)}p.appendChild(d);c&&p.appendChild(c);e.Push(p)};function h(e){if(!e||e.isInferred&&e.childNodes.length===0)return[null,null];if(e.isKind("msubsup")&&v(e))return[e,null];var t=l.default.getChildAt(e,0);if(!(e.isInferred&&t&&v(t)))return[null,e];e.childNodes.splice(0,1);return[t,e]}function v(e){var t=e.childNodes[0];return t&&t.isKind("mi")&&t.getText()===""}t.AmsMethods.operatorLetter=function(e,t){return e.stack.env.operatorLetters?s.default.variable(e,t):false};t.AmsMethods.MultiIntegral=function(e,t,r){var a=e.GetNext();if(a==="\\"){var n=e.i;a=e.GetArgument(t);e.i=n;if(a==="\\limits"){if(t==="\\idotsint"){r="\\!\\!\\mathop{\\,\\,"+r+"}"}else{r="\\!\\!\\!\\mathop{\\,\\,\\,"+r+"}"}}}e.string=r+" "+e.string.slice(e.i);e.i=0};t.AmsMethods.xArrow=function(e,t,r,a,n){var o={width:"+"+i.default.Em((a+n)/18),lspace:i.default.Em(a/18)};var s=e.GetBrackets(t);var u=e.ParseArg(t);var f=e.create("node","mspace",[],{depth:".25em"});var d=e.create("token","mo",{stretchy:true,texClass:m.TEXCLASS.REL},String.fromCodePoint(r));d=e.create("node","mstyle",[d],{scriptlevel:0});var p=e.create("node","munderover",[d]);var h=e.create("node","mpadded",[u,f],o);l.default.setAttribute(h,"voffset","-.2em");l.default.setAttribute(h,"height","-.2em");l.default.setChild(p,p.over,h);if(s){var v=new c.default(s,e.stack.env,e.configuration).mml();var g=e.create("node","mspace",[],{height:".75em"});h=e.create("node","mpadded",[v,g],o);l.default.setAttribute(h,"voffset",".15em");l.default.setAttribute(h,"depth","-.15em");l.default.setChild(p,p.under,h)}l.default.setProperty(p,"subsupOK",true);e.Push(p)};t.AmsMethods.HandleShove=function(e,t,r){var a=e.stack.Top();if(a.kind!=="multline"){throw new f.default("CommandOnlyAllowedInEnv","%1 only allowed in %2 environment",e.currentCS,"multline")}if(a.Size()){throw new f.default("CommandAtTheBeginingOfLine","%1 must come at the beginning of the line",e.currentCS)}a.setProperty("shove",r)};t.AmsMethods.CFrac=function(e,t){var r=i.default.trimSpaces(e.GetBrackets(t,""));var a=e.GetArgument(t);var n=e.GetArgument(t);var o={l:u.TexConstant.Align.LEFT,r:u.TexConstant.Align.RIGHT,"":""};var s=new c.default("\\strut\\textstyle{"+a+"}",e.stack.env,e.configuration).mml();var d=new c.default("\\strut\\textstyle{"+n+"}",e.stack.env,e.configuration).mml();var p=e.create("node","mfrac",[s,d]);r=o[r];if(r==null){throw new f.default("IllegalAlign","Illegal alignment specified in %1",e.currentCS)}if(r){l.default.setProperties(p,{numalign:r,denomalign:r})}e.Push(p)};t.AmsMethods.Genfrac=function(e,t,r,a,n,o){if(r==null){r=e.GetDelimiterArg(t)}if(a==null){a=e.GetDelimiterArg(t)}if(n==null){n=e.GetArgument(t)}if(o==null){o=i.default.trimSpaces(e.GetArgument(t))}var s=e.ParseArg(t);var u=e.ParseArg(t);var c=e.create("node","mfrac",[s,u]);if(n!==""){l.default.setAttribute(c,"linethickness",n)}if(r||a){l.default.setProperty(c,"withDelims",true);c=i.default.fixedFence(e.configuration,r,c,a)}if(o!==""){var d=parseInt(o,10);var p=["D","T","S","SS"][d];if(p==null){throw new f.default("BadMathStyleFor","Bad math style for %1",e.currentCS)}c=e.create("node","mstyle",[c]);if(p==="D"){l.default.setProperties(c,{displaystyle:true,scriptlevel:0})}else{l.default.setProperties(c,{displaystyle:false,scriptlevel:d-1})}}e.Push(c)};t.AmsMethods.HandleTag=function(e,t){if(!e.tags.currentTag.taggable&&e.tags.env){throw new f.default("CommandNotAllowedInEnv","%1 not allowed in %2 environment",e.currentCS,e.tags.env)}if(e.tags.currentTag.tag){throw new f.default("MultipleCommand","Multiple %1",e.currentCS)}var r=e.GetStar();var a=i.default.trimSpaces(e.GetArgument(t));e.tags.tag(a,r)};t.AmsMethods.HandleNoTag=p.default.HandleNoTag;t.AmsMethods.HandleRef=p.default.HandleRef;t.AmsMethods.Macro=p.default.Macro;t.AmsMethods.Accent=p.default.Accent;t.AmsMethods.Tilde=p.default.Tilde;t.AmsMethods.Array=p.default.Array;t.AmsMethods.Spacer=p.default.Spacer;t.AmsMethods.NamedOp=p.default.NamedOp;t.AmsMethods.EqnArray=p.default.EqnArray;t.AmsMethods.Equation=p.default.Equation},62684:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.AmsCdConfiguration=void 0;var a=r(56441);r(14831);t.AmsCdConfiguration=a.Configuration.create("amscd",{handler:{character:["amscd_special"],macro:["amscd_macros"],environment:["amscd_environment"]},options:{amscd:{colspace:"5pt",rowspace:"5pt",harrowsize:"2.75em",varrowsize:"1.75em",hideHorizontalLabels:false}}})},14831:function(e,t,r){var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var s=o(r(80209));var l=i(r(22960));var u=i(r(55828));new s.EnvironmentMap("amscd_environment",l.default.environment,{CD:"CD"},u.default);new s.CommandMap("amscd_macros",{minCDarrowwidth:"minCDarrowwidth",minCDarrowheight:"minCDarrowheight"},u.default);new s.MacroMap("amscd_special",{"@":"arrow"},u.default)},55828:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=a(r(75845));var o=r(11252);var i=r(80747);var s=a(r(72691));var l={};l.CD=function(e,t){e.Push(t);var r=e.itemFactory.create("array");var a=e.configuration.options.amscd;r.setProperties({minw:e.stack.env.CD_minw||a.harrowsize,minh:e.stack.env.CD_minh||a.varrowsize});r.arraydef={columnalign:"center",columnspacing:a.colspace,rowspacing:a.rowspace,displaystyle:true};return r};l.arrow=function(e,t){var r=e.string.charAt(e.i);if(!r.match(/[>":"→","<":"←",V:"↓",A:"↑"}[r];var v=e.GetUpTo(t+r,r);var g=e.GetUpTo(t+r,r);if(r===">"||r==="<"){d=e.create("token","mo",p,h);if(!v){v="\\kern "+u.getProperty("minw")}if(v||g){var y={width:"+.67em",lspace:".33em"};d=e.create("node","munderover",[d]);if(v){var b=new n.default(v,e.stack.env,e.configuration).mml();var x=e.create("node","mpadded",[b],y);s.default.setAttribute(x,"voffset",".1em");s.default.setChild(d,d.over,x)}if(g){var _=new n.default(g,e.stack.env,e.configuration).mml();s.default.setChild(d,d.under,e.create("node","mpadded",[_],y))}if(e.configuration.options.amscd.hideHorizontalLabels){d=e.create("node","mpadded",d,{depth:0,height:".67em"})}}}else{var w=e.create("token","mo",m,h);d=w;if(v||g){d=e.create("node","mrow");if(v){s.default.appendChildren(d,[new n.default("\\scriptstyle\\llap{"+v+"}",e.stack.env,e.configuration).mml()])}w.texClass=i.TEXCLASS.ORD;s.default.appendChildren(d,[w]);if(g){s.default.appendChildren(d,[new n.default("\\scriptstyle\\rlap{"+g+"}",e.stack.env,e.configuration).mml()])}}}}if(d){e.Push(d)}l.cell(e,t)};l.cell=function(e,t){var r=e.stack.Top();if((r.table||[]).length%2===0&&(r.row||[]).length===0){e.Push(e.create("node","mpadded",[],{height:"8.5pt",depth:"2pt"}))}e.Push(e.itemFactory.create("cell").setProperties({isEntry:true,name:t}))};l.minCDarrowwidth=function(e,t){e.stack.env.CD_minw=e.GetDimen(t)};l.minCDarrowheight=function(e,t){e.stack.env.CD_minh=e.GetDimen(t)};t["default"]=l},12512:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BboxConfiguration=t.BboxMethods=void 0;var n=r(56441);var o=r(80209);var i=a(r(98770));t.BboxMethods={};t.BboxMethods.BBox=function(e,t){var r=e.GetBrackets(t,"");var a=e.ParseArg(t);var n=r.split(/,/);var o,u,c;for(var f=0,d=n.length;f=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BoldsymbolConfiguration=t.rewriteBoldTokens=t.createBoldToken=t.BoldsymbolMethods=void 0;var o=r(56441);var i=n(r(72691));var s=r(80469);var l=r(80209);var u=r(55361);var c={};c[s.TexConstant.Variant.NORMAL]=s.TexConstant.Variant.BOLD;c[s.TexConstant.Variant.ITALIC]=s.TexConstant.Variant.BOLDITALIC;c[s.TexConstant.Variant.FRAKTUR]=s.TexConstant.Variant.BOLDFRAKTUR;c[s.TexConstant.Variant.SCRIPT]=s.TexConstant.Variant.BOLDSCRIPT;c[s.TexConstant.Variant.SANSSERIF]=s.TexConstant.Variant.BOLDSANSSERIF;c["-tex-calligraphic"]="-tex-bold-calligraphic";c["-tex-oldstyle"]="-tex-bold-oldstyle";c["-tex-mathit"]=s.TexConstant.Variant.BOLDITALIC;t.BoldsymbolMethods={};t.BoldsymbolMethods.Boldsymbol=function(e,t){var r=e.stack.env["boldsymbol"];e.stack.env["boldsymbol"]=true;var a=e.ParseArg(t);e.stack.env["boldsymbol"]=r;e.Push(a)};new l.CommandMap("boldsymbol",{boldsymbol:"Boldsymbol"},t.BoldsymbolMethods);function f(e,t,r,a){var n=u.NodeFactory.createToken(e,t,r,a);if(t!=="mtext"&&e.configuration.parser.stack.env["boldsymbol"]){i.default.setProperty(n,"fixBold",true);e.configuration.addNode("fixBold",n)}return n}t.createBoldToken=f;function d(e){var t,r;try{for(var n=a(e.data.getList("fixBold")),o=n.next();!o.done;o=n.next()){var l=o.value;if(i.default.getProperty(l,"fixBold")){var u=i.default.getAttribute(l,"mathvariant");if(u==null){i.default.setAttribute(l,"mathvariant",s.TexConstant.Variant.BOLD)}else{i.default.setAttribute(l,"mathvariant",c[u]||u)}i.default.removeProperties(l,"fixBold")}}}catch(f){t={error:f}}finally{try{if(o&&!o.done&&(r=n.return))r.call(n)}finally{if(t)throw t.error}}}t.rewriteBoldTokens=d;t.BoldsymbolConfiguration=o.Configuration.create("boldsymbol",{handler:{macro:["boldsymbol"]},nodes:{token:f},postprocessors:[d]})},82792:(e,t,r)=>{var a;Object.defineProperty(t,"__esModule",{value:true});t.BraketConfiguration=void 0;var n=r(56441);var o=r(85046);r(75755);t.BraketConfiguration=n.Configuration.create("braket",{handler:{character:["Braket-characters"],macro:["Braket-macros"]},items:(a={},a[o.BraketItem.prototype.kind]=o.BraketItem,a)})},85046:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BraketItem=void 0;var o=r(37720);var i=r(80747);var s=n(r(6980));var l=function(e){a(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}Object.defineProperty(t.prototype,"kind",{get:function(){return"braket"},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"isOpen",{get:function(){return true},enumerable:false,configurable:true});t.prototype.checkItem=function(t){if(t.isKind("close")){return[[this.factory.create("mml",this.toMml())],true]}if(t.isKind("mml")){this.Push(t.toMml());if(this.getProperty("single")){return[[this.toMml()],true]}return o.BaseItem.fail}return e.prototype.checkItem.call(this,t)};t.prototype.toMml=function(){var t=e.prototype.toMml.call(this);var r=this.getProperty("open");var a=this.getProperty("close");if(this.getProperty("stretchy")){return s.default.fenced(this.factory.configuration,r,t,a)}var n={fence:true,stretchy:false,symmetric:true,texClass:i.TEXCLASS.OPEN};var o=this.create("token","mo",n,r);n.texClass=i.TEXCLASS.CLOSE;var l=this.create("token","mo",n,a);var u=this.create("node","mrow",[o,t,l],{open:r,close:a,texClass:i.TEXCLASS.INNER});return u};return t}(o.BaseItem);t.BraketItem=l},75755:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=r(80209);var o=a(r(22792));new n.CommandMap("Braket-macros",{bra:["Macro","{\\langle {#1} \\vert}",1],ket:["Macro","{\\vert {#1} \\rangle}",1],braket:["Braket","⟨","⟩",false,Infinity],set:["Braket","{","}",false,1],Bra:["Macro","{\\left\\langle {#1} \\right\\vert}",1],Ket:["Macro","{\\left\\vert {#1} \\right\\rangle}",1],Braket:["Braket","⟨","⟩",true,Infinity],Set:["Braket","{","}",true,1],ketbra:["Macro","{\\vert {#1} \\rangle\\langle {#2} \\vert}",2],Ketbra:["Macro","{\\left\\vert {#1} \\right\\rangle\\left\\langle {#2} \\right\\vert}",2],"|":"Bar"},o.default);new n.MacroMap("Braket-characters",{"|":"Bar"},o.default)},22792:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=a(r(38364));var o=r(80747);var i=a(r(98770));var s={};s.Macro=n.default.Macro;s.Braket=function(e,t,r,a,n,o){var s=e.GetNext();if(s===""){throw new i.default("MissingArgFor","Missing argument for %1",e.currentCS)}var l=true;if(s==="{"){e.i++;l=false}e.Push(e.itemFactory.create("braket").setProperties({barmax:o,barcount:0,open:r,close:a,stretchy:n,single:l}))};s.Bar=function(e,t){var r=t==="|"?"|":"∥";var a=e.stack.Top();if(a.kind!=="braket"||a.getProperty("barcount")>=a.getProperty("barmax")){var n=e.create("token","mo",{texClass:o.TEXCLASS.ORD,stretchy:false},r);e.Push(n);return}if(r==="|"&&e.GetNext()==="|"){e.i++;r="∥"}var i=a.getProperty("stretchy");if(!i){var s=e.create("token","mo",{stretchy:false,braketbar:true},r);e.Push(s);return}var l=e.create("node","TeXAtom",[],{texClass:o.TEXCLASS.CLOSE});e.Push(l);a.setProperty("barcount",a.getProperty("barcount")+1);l=e.create("token","mo",{stretchy:true,braketbar:true},r);e.Push(l);l=e.create("node","TeXAtom",[],{texClass:o.TEXCLASS.OPEN});e.Push(l)};t["default"]=s},77774:(e,t,r)=>{var a;Object.defineProperty(t,"__esModule",{value:true});t.BussproofsConfiguration=void 0;var n=r(56441);var o=r(13224);var i=r(86366);r(38529);t.BussproofsConfiguration=n.Configuration.create("bussproofs",{handler:{macro:["Bussproofs-macros"],environment:["Bussproofs-environments"]},items:(a={},a[o.ProofTreeItem.prototype.kind]=o.ProofTreeItem,a),preprocessors:[[i.saveDocument,1]],postprocessors:[[i.clearDocument,3],[i.makeBsprAttributes,2],[i.balanceRules,1]]})},13224:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);o(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.ProofTreeItem=void 0;var l=s(r(98770));var u=r(37720);var c=s(r(32859));var f=i(r(86366));var d=function(e){a(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;t.leftLabel=null;t.rigthLabel=null;t.innerStack=new c.default(t.factory,{},true);return t}Object.defineProperty(t.prototype,"kind",{get:function(){return"proofTree"},enumerable:false,configurable:true});t.prototype.checkItem=function(e){if(e.isKind("end")&&e.getName()==="prooftree"){var t=this.toMml();f.setProperty(t,"proof",true);return[[this.factory.create("mml",t),e],true]}if(e.isKind("stop")){throw new l.default("EnvMissingEnd","Missing \\end{%1}",this.getName())}this.innerStack.Push(e);return u.BaseItem.fail};t.prototype.toMml=function(){var t=e.prototype.toMml.call(this);var r=this.innerStack.Top();if(r.isKind("start")&&!r.Size()){return t}this.innerStack.Push(this.factory.create("stop"));var a=this.innerStack.Top().toMml();return this.create("node","mrow",[a,t],{})};return t}(u.BaseItem);t.ProofTreeItem=d},38529:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=a(r(86158));var o=a(r(22960));var i=r(80209);new i.CommandMap("Bussproofs-macros",{AxiomC:"Axiom",UnaryInfC:["Inference",1],BinaryInfC:["Inference",2],TrinaryInfC:["Inference",3],QuaternaryInfC:["Inference",4],QuinaryInfC:["Inference",5],RightLabel:["Label","right"],LeftLabel:["Label","left"],AXC:"Axiom",UIC:["Inference",1],BIC:["Inference",2],TIC:["Inference",3],RL:["Label","right"],LL:["Label","left"],noLine:["SetLine","none",false],singleLine:["SetLine","solid",false],solidLine:["SetLine","solid",false],dashedLine:["SetLine","dashed",false],alwaysNoLine:["SetLine","none",true],alwaysSingleLine:["SetLine","solid",true],alwaysSolidLine:["SetLine","solid",true],alwaysDashedLine:["SetLine","dashed",true],rootAtTop:["RootAtTop",true],alwaysRootAtTop:["RootAtTop",true],rootAtBottom:["RootAtTop",false],alwaysRootAtBottom:["RootAtTop",false],fCenter:"FCenter",Axiom:"AxiomF",UnaryInf:["InferenceF",1],BinaryInf:["InferenceF",2],TrinaryInf:["InferenceF",3],QuaternaryInf:["InferenceF",4],QuinaryInf:["InferenceF",5]},n.default);new i.EnvironmentMap("Bussproofs-environments",o.default.environment,{prooftree:["Prooftree",null,false]},n.default)},86158:function(e,t,r){var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var i=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,o=[],i;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(i)throw i.error}}return o};var s=this&&this.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var a=0,n=t.length,o;a0);var s=e.create("node","mtr",i,{});var l=e.create("node","mtable",[s],{framespacing:"0 0"});var c=m(e,e.GetArgument(t));var f=a.getProperty("currentLine");if(f!==a.getProperty("line")){a.setProperty("currentLine",a.getProperty("line"))}var p=h(e,l,[c],a.getProperty("left"),a.getProperty("right"),f,n);a.setProperty("left",null);a.setProperty("right",null);d.setProperty(p,"inference",o);e.configuration.addNode("inference",p);a.Push(p)};function h(e,t,r,a,n,o,i){var s=e.create("node","mtr",[e.create("node","mtd",[t],{})],{});var l=e.create("node","mtr",[e.create("node","mtd",r,{})],{});var u=e.create("node","mtable",i?[l,s]:[s,l],{align:"top 2",rowlines:o,framespacing:"0 0"});d.setProperty(u,"inferenceRule",i?"up":"down");var c,f;if(a){c=e.create("node","mpadded",[a],{height:"+.5em",width:"+.5em",voffset:"-.15em"});d.setProperty(c,"prooflabel","left")}if(n){f=e.create("node","mpadded",[n],{height:"+.5em",width:"+.5em",voffset:"-.15em"});d.setProperty(f,"prooflabel","right")}var p,m;if(a&&n){p=[c,u,f];m="both"}else if(a){p=[c,u];m="left"}else if(n){p=[u,f];m="right"}else{return u}u=e.create("node","mrow",p);d.setProperty(u,"labelledRule",m);return u}p.Label=function(e,t,r){var a=e.stack.Top();if(a.kind!=="proofTree"){throw new u.default("IllegalProofCommand","Proof commands only allowed in prooftree environment.")}var n=f.default.internalMath(e,e.GetArgument(t),0);var o=n.length>1?e.create("node","mrow",n,{}):n[0];a.setProperty(r,o)};p.SetLine=function(e,t,r,a){var n=e.stack.Top();if(n.kind!=="proofTree"){throw new u.default("IllegalProofCommand","Proof commands only allowed in prooftree environment.")}n.setProperty("currentLine",r);if(a){n.setProperty("line",r)}};p.RootAtTop=function(e,t,r){var a=e.stack.Top();if(a.kind!=="proofTree"){throw new u.default("IllegalProofCommand","Proof commands only allowed in prooftree environment.")}a.setProperty("rootAtTop",r)};p.AxiomF=function(e,t){var r=e.stack.Top();if(r.kind!=="proofTree"){throw new u.default("IllegalProofCommand","Proof commands only allowed in prooftree environment.")}var a=v(e,t);d.setProperty(a,"axiom",true);r.Push(a)};function v(e,t){var r=e.GetNext();if(r!=="$"){throw new u.default("IllegalUseOfCommand","Use of %1 does not match it's definition.",t)}e.i++;var a=e.GetUpTo(t,"$");if(a.indexOf("\\fCenter")===-1){throw new u.default("IllegalUseOfCommand","Missing \\fCenter in %1.",t)}var n=i(a.split("\\fCenter"),2),o=n[0],s=n[1];var l=new c.default(o,e.stack.env,e.configuration).mml();var f=new c.default(s,e.stack.env,e.configuration).mml();var p=new c.default("\\fCenter",e.stack.env,e.configuration).mml();var m=e.create("node","mtd",[l],{});var h=e.create("node","mtd",[p],{});var v=e.create("node","mtd",[f],{});var g=e.create("node","mtr",[m,h,v],{});var y=e.create("node","mtable",[g],{columnspacing:".5ex",columnalign:"center 2"});d.setProperty(y,"sequent",true);e.configuration.addNode("sequent",g);return y}p.FCenter=function(e,t){};p.InferenceF=function(e,t,r){var a=e.stack.Top();if(a.kind!=="proofTree"){throw new u.default("IllegalProofCommand","Proof commands only allowed in prooftree environment.")}if(a.Size()0);var s=e.create("node","mtr",i,{});var l=e.create("node","mtable",[s],{framespacing:"0 0"});var c=v(e,t);var f=a.getProperty("currentLine");if(f!==a.getProperty("line")){a.setProperty("currentLine",a.getProperty("line"))}var p=h(e,l,[c],a.getProperty("left"),a.getProperty("right"),f,n);a.setProperty("left",null);a.setProperty("right",null);d.setProperty(p,"inference",o);e.configuration.addNode("inference",p);a.Push(p)};t["default"]=p},86366:function(e,t,r){var a=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,o=[],i;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(i)throw i.error}}return o};var n=this&&this.__values||function(e){var t=typeof Symbol==="function"&&Symbol.iterator,r=t&&e[t],a=0;if(r)return r.call(e);if(e&&typeof e.length==="number")return{next:function(){if(e&&a>=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var i;Object.defineProperty(t,"__esModule",{value:true});t.clearDocument=t.saveDocument=t.makeBsprAttributes=t.removeProperty=t.getProperty=t.setProperty=t.balanceRules=void 0;var s=o(r(72691));var l=o(r(6980));var u=null;var c=null;var f=function(e){c.root=e;var t=u.outputJax.getBBox(c,u).w;return t};var d=function(e){var t=0;while(e&&!s.default.isType(e,"mtable")){if(s.default.isType(e,"text")){return null}if(s.default.isType(e,"mrow")){e=e.childNodes[0];t=0;continue}e=e.parent.childNodes[t];t++}return e};var p=function(e,t){return e.childNodes[t==="up"?1:0].childNodes[0].childNodes[0].childNodes[0].childNodes[0]};var m=function(e,t){return e.childNodes[t].childNodes[0].childNodes[0]};var h=function(e){return m(e,0)};var v=function(e){return m(e,e.childNodes.length-1)};var g=function(e,t){return e.childNodes[t==="up"?0:1].childNodes[0].childNodes[0].childNodes[0]};var y=function(e){while(e&&!s.default.isType(e,"mtd")){e=e.parent}return e};var b=function(e){return e.parent.childNodes[e.parent.childNodes.indexOf(e)+1]};var x=function(e){return e.parent.childNodes[e.parent.childNodes.indexOf(e)-1]};var _=function(e){while(e&&(0,t.getProperty)(e,"inference")==null){e=e.parent}return e};var w=function(e,t,r){if(r===void 0){r=false}var a=0;if(e===t){return a}if(e!==t.parent){var n=e.childNodes;var o=r?n.length-1:0;if(s.default.isType(n[o],"mspace")){a+=f(n[o])}e=t.parent}if(e===t){return a}var i=e.childNodes;var l=r?i.length-1:0;if(i[l]!==t){a+=f(i[l])}return a};var M=function(e,r){if(r===void 0){r=false}var a=d(e);var n=g(a,(0,t.getProperty)(a,"inferenceRule"));var o=w(e,a,r);var i=f(a);var s=f(n);return o+(i-s)/2};var A=function(e,r,a,n){if(n===void 0){n=false}if((0,t.getProperty)(r,"inferenceRule")||(0,t.getProperty)(r,"labelledRule")){var o=e.nodeFactory.create("node","mrow");r.parent.replaceChild(o,r);o.setChildren([r]);C(r,o);r=o}var i=n?r.childNodes.length-1:0;var u=r.childNodes[i];if(s.default.isType(u,"mspace")){s.default.setAttribute(u,"width",l.default.Em(l.default.dimen2em(s.default.getAttribute(u,"width"))+a));return}u=e.nodeFactory.create("node","mspace",[],{width:l.default.Em(a)});if(n){r.appendChild(u);return}u.parent=r;r.childNodes.unshift(u)};var C=function(e,r){var a=["inference","proof","maxAdjust","labelledRule"];a.forEach((function(a){var n=(0,t.getProperty)(e,a);if(n!=null){(0,t.setProperty)(r,a,n);(0,t.removeProperty)(e,a)}}))};var P=function(e){var r=e.nodeLists["sequent"];if(!r){return}for(var a=r.length-1,n=void 0;n=r[a];a--){if((0,t.getProperty)(n,"sequentProcessed")){(0,t.removeProperty)(n,"sequentProcessed");continue}var o=[];var i=_(n);if((0,t.getProperty)(i,"inference")!==1){continue}o.push(n);while((0,t.getProperty)(i,"inference")===1){i=d(i);var s=h(p(i,(0,t.getProperty)(i,"inferenceRule")));var l=(0,t.getProperty)(s,"inferenceRule")?g(s,(0,t.getProperty)(s,"inferenceRule")):s;if((0,t.getProperty)(l,"sequent")){n=l.childNodes[0];o.push(n);(0,t.setProperty)(n,"sequentProcessed",true)}i=s}k(e,o)}};var S=function(e,r,a,n,o){var i=e.nodeFactory.create("node","mspace",[],{width:l.default.Em(o)});if(n==="left"){var s=r.childNodes[a].childNodes[0];i.parent=s;s.childNodes.unshift(i)}else{r.childNodes[a].appendChild(i)}(0,t.setProperty)(r.parent,"sequentAdjust_"+n,o)};var k=function(e,r){var n=r.pop();while(r.length){var o=r.pop();var i=a(O(n,o),2),s=i[0],l=i[1];if((0,t.getProperty)(n.parent,"axiom")){S(e,s<0?n:o,0,"left",Math.abs(s));S(e,l<0?n:o,2,"right",Math.abs(l))}n=o}};var O=function(e,t){var r=f(e.childNodes[2]);var a=f(t.childNodes[2]);var n=f(e.childNodes[0]);var o=f(t.childNodes[0]);var i=n-o;var s=r-a;return[i,s]};var q=function(e){var r,a;c=new e.document.options.MathItem("",null,e.math.display);var o=e.data;P(o);var i=o.nodeLists["inference"]||[];try{for(var s=n(i),l=s.next();!l.done;l=s.next()){var u=l.value;var f=(0,t.getProperty)(u,"proof");var m=d(u);var g=p(m,(0,t.getProperty)(m,"inferenceRule"));var x=h(g);if((0,t.getProperty)(x,"inference")){var C=M(x);if(C){A(o,x,-C);var S=w(u,m,false);A(o,u,C-S)}}var k=v(g);if((0,t.getProperty)(k,"inference")==null){continue}var O=M(k,true);A(o,k,-O,true);var q=w(u,m,true);var T=(0,t.getProperty)(u,"maxAdjust");if(T!=null){O=Math.max(O,T)}var E=void 0;if(f||!(E=y(u))){A(o,(0,t.getProperty)(u,"proof")?u:u.parent,O-q,true);continue}var I=b(E);if(I){var D=o.nodeFactory.create("node","mspace",[],{width:O-q+"em"});I.appendChild(D);u.removeProperty("maxAdjust");continue}var N=_(E);if(!N){continue}O=(0,t.getProperty)(N,"maxAdjust")?Math.max((0,t.getProperty)(N,"maxAdjust"),O):O;(0,t.setProperty)(N,"maxAdjust",O)}}catch(G){r={error:G}}finally{try{if(l&&!l.done&&(a=s.return))a.call(s)}finally{if(r)throw r.error}}};t.balanceRules=q;var T="bspr_";var E=(i={},i[T+"maxAdjust"]=true,i);var I=function(e,t,r){s.default.setProperty(e,T+t,r)};t.setProperty=I;var D=function(e,t){return s.default.getProperty(e,T+t)};t.getProperty=D;var N=function(e,t){e.removeProperty(T+t)};t.removeProperty=N;var G=function(e){e.data.root.walkTree((function(e,t){var r=[];e.getPropertyNames().forEach((function(t){if(!E[t]&&t.match(RegExp("^"+T))){r.push(t+":"+e.getProperty(t))}}));if(r.length){s.default.setAttribute(e,"semantics",r.join(";"))}}))};t.makeBsprAttributes=G;var B=function(e){u=e.document;if(!("getBBox"in u.outputJax)){throw Error("The bussproofs extension requires an output jax with a getBBox() method")}};t.saveDocument=B;var F=function(e){u=null};t.clearDocument=F},2362:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.CancelConfiguration=t.CancelMethods=void 0;var n=r(56441);var o=r(80469);var i=r(80209);var s=a(r(6980));var l=r(48128);t.CancelMethods={};t.CancelMethods.Cancel=function(e,t,r){var a=e.GetBrackets(t,"");var n=e.ParseArg(t);var o=s.default.keyvalOptions(a,l.ENCLOSE_OPTIONS);o["notation"]=r;e.Push(e.create("node","menclose",[n],o))};t.CancelMethods.CancelTo=function(e,t){var r=e.GetBrackets(t,"");var a=e.ParseArg(t);var n=e.ParseArg(t);var i=s.default.keyvalOptions(r,l.ENCLOSE_OPTIONS);i["notation"]=[o.TexConstant.Notation.UPDIAGONALSTRIKE,o.TexConstant.Notation.UPDIAGONALARROW,o.TexConstant.Notation.NORTHEASTARROW].join(" ");a=e.create("node","mpadded",[a],{depth:"-.1em",height:"+.1em",voffset:".1em"});e.Push(e.create("node","msup",[e.create("node","menclose",[n],i),a]))};new i.CommandMap("cancel",{cancel:["Cancel",o.TexConstant.Notation.UPDIAGONALSTRIKE],bcancel:["Cancel",o.TexConstant.Notation.DOWNDIAGONALSTRIKE],xcancel:["Cancel",o.TexConstant.Notation.UPDIAGONALSTRIKE+" "+o.TexConstant.Notation.DOWNDIAGONALSTRIKE],cancelto:"CancelTo"},t.CancelMethods);t.CancelConfiguration=n.Configuration.create("cancel",{handler:{macro:["cancel"]}})},12796:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var o;Object.defineProperty(t,"__esModule",{value:true});t.CasesConfiguration=t.CasesMethods=t.CasesTags=t.CasesBeginItem=void 0;var i=r(56441);var s=r(80209);var l=n(r(6980));var u=n(r(38364));var c=n(r(98770));var f=r(94650);var d=r(48600);var p=r(99118);var m=function(e){a(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}Object.defineProperty(t.prototype,"kind",{get:function(){return"cases-begin"},enumerable:false,configurable:true});t.prototype.checkItem=function(t){if(t.isKind("end")&&t.getName()===this.getName()){if(this.getProperty("end")){this.setProperty("end",false);return[[],true]}}return e.prototype.checkItem.call(this,t)};return t}(f.BeginItem);t.CasesBeginItem=m;var h=function(e){a(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;t.subcounter=0;return t}t.prototype.start=function(t,r,a){this.subcounter=0;e.prototype.start.call(this,t,r,a)};t.prototype.autoTag=function(){if(this.currentTag.tag!=null)return;if(this.currentTag.env==="subnumcases"){if(this.subcounter===0)this.counter++;this.subcounter++;this.tag(this.formatNumber(this.counter,this.subcounter),false)}else{if(this.subcounter===0||this.currentTag.env!=="numcases-left")this.counter++;this.tag(this.formatNumber(this.counter),false)}};t.prototype.formatNumber=function(e,t){if(t===void 0){t=null}return e.toString()+(t===null?"":String.fromCharCode(96+t))};return t}(d.AmsTags);t.CasesTags=h;t.CasesMethods={NumCases:function(e,t){if(e.stack.env.closing===t.getName()){delete e.stack.env.closing;e.Push(e.itemFactory.create("end").setProperty("name",t.getName()));var r=e.stack.Top();var a=r.Last;var n=l.default.copyNode(a,e);var o=r.getProperty("left");p.EmpheqUtil.left(a,n,o+"\\empheqlbrace\\,",e,"numcases-left");e.Push(e.itemFactory.create("end").setProperty("name",t.getName()));return null}else{var o=e.GetArgument("\\begin{"+t.getName()+"}");t.setProperty("left",o);var i=u.default.EqnArray(e,t,true,true,"ll");i.arraydef.displaystyle=false;i.arraydef.rowspacing=".2em";i.setProperty("numCases",true);e.Push(t);return i}},Entry:function(e,t){if(!e.stack.Top().getProperty("numCases")){return u.default.Entry(e,t)}e.Push(e.itemFactory.create("cell").setProperties({isEntry:true,name:t}));var r=e.string;var a=0,n=e.i,o=r.length;while(n=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.CenternotConfiguration=t.filterCenterOver=void 0;var o=r(56441);var i=n(r(75845));var s=n(r(72691));var l=r(80209);var u=n(r(38364));new l.CommandMap("centernot",{centerOver:"CenterOver",centernot:["Macro","\\centerOver{#1}{{⧸}}",1]},{CenterOver:function(e,t){var r="{"+e.GetArgument(t)+"}";var a=e.ParseArg(t);var n=new i.default(r,e.stack.env,e.configuration).mml();var o=e.create("node","TeXAtom",[new i.default(r,e.stack.env,e.configuration).mml(),e.create("node","mpadded",[e.create("node","mpadded",[a],{width:0,lspace:"-.5width"}),e.create("node","mphantom",[n])],{width:0,lspace:"-.5width"})]);e.configuration.addNode("centerOver",n);e.Push(o)},Macro:u.default.Macro});function c(e){var t,r;var n=e.data;try{for(var o=a(n.getList("centerOver")),i=o.next();!i.done;i=o.next()){var l=i.value;var u=s.default.getTexClass(l.childNodes[0].childNodes[0]);if(u!==null){s.default.setProperties(l.parent.parent.parent.parent.parent.parent,{texClass:u})}}}catch(c){t={error:c}}finally{try{if(i&&!i.done&&(r=o.return))r.call(o)}finally{if(t)throw t.error}}}t.filterCenterOver=c;t.CenternotConfiguration=o.Configuration.create("centernot",{handler:{macro:["centernot"]},postprocessors:[c]})},79712:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ColorConfiguration=void 0;var a=r(80209);var n=r(56441);var o=r(8080);var i=r(21860);new a.CommandMap("color",{color:"Color",textcolor:"TextColor",definecolor:"DefineColor",colorbox:"ColorBox",fcolorbox:"FColorBox"},o.ColorMethods);var s=function(e,t){t.parseOptions.packageData.set("color",{model:new i.ColorModel})};t.ColorConfiguration=n.Configuration.create("color",{handler:{macro:["color"]},options:{color:{padding:"5px",borderWidth:"2px"}},config:s})},54187:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.COLORS=void 0;t.COLORS=new Map([["Apricot","#FBB982"],["Aquamarine","#00B5BE"],["Bittersweet","#C04F17"],["Black","#221E1F"],["Blue","#2D2F92"],["BlueGreen","#00B3B8"],["BlueViolet","#473992"],["BrickRed","#B6321C"],["Brown","#792500"],["BurntOrange","#F7921D"],["CadetBlue","#74729A"],["CarnationPink","#F282B4"],["Cerulean","#00A2E3"],["CornflowerBlue","#41B0E4"],["Cyan","#00AEEF"],["Dandelion","#FDBC42"],["DarkOrchid","#A4538A"],["Emerald","#00A99D"],["ForestGreen","#009B55"],["Fuchsia","#8C368C"],["Goldenrod","#FFDF42"],["Gray","#949698"],["Green","#00A64F"],["GreenYellow","#DFE674"],["JungleGreen","#00A99A"],["Lavender","#F49EC4"],["LimeGreen","#8DC73E"],["Magenta","#EC008C"],["Mahogany","#A9341F"],["Maroon","#AF3235"],["Melon","#F89E7B"],["MidnightBlue","#006795"],["Mulberry","#A93C93"],["NavyBlue","#006EB8"],["OliveGreen","#3C8031"],["Orange","#F58137"],["OrangeRed","#ED135A"],["Orchid","#AF72B0"],["Peach","#F7965A"],["Periwinkle","#7977B8"],["PineGreen","#008B72"],["Plum","#92268F"],["ProcessBlue","#00B0F0"],["Purple","#99479B"],["RawSienna","#974006"],["Red","#ED1B23"],["RedOrange","#F26035"],["RedViolet","#A1246B"],["Rhodamine","#EF559F"],["RoyalBlue","#0071BC"],["RoyalPurple","#613F99"],["RubineRed","#ED017D"],["Salmon","#F69289"],["SeaGreen","#3FBC9D"],["Sepia","#671800"],["SkyBlue","#46C5DD"],["SpringGreen","#C6DC67"],["Tan","#DA9D76"],["TealBlue","#00AEB3"],["Thistle","#D883B7"],["Turquoise","#00B4CE"],["Violet","#58429B"],["VioletRed","#EF58A0"],["White","#FFFFFF"],["WildStrawberry","#EE2967"],["Yellow","#FFF200"],["YellowGreen","#98CC70"],["YellowOrange","#FAA21A"]])},8080:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.ColorMethods=void 0;var n=a(r(72691));var o=a(r(6980));function i(e){var t="+".concat(e);var r=e.replace(/^.*?([a-z]*)$/,"$1");var a=2*parseFloat(t);return{width:"+".concat(a).concat(r),height:t,depth:t,lspace:e}}t.ColorMethods={};t.ColorMethods.Color=function(e,t){var r=e.GetBrackets(t,"");var a=e.GetArgument(t);var n=e.configuration.packageData.get("color").model;var o=n.getColor(r,a);var i=e.itemFactory.create("style").setProperties({styles:{mathcolor:o}});e.stack.env["color"]=o;e.Push(i)};t.ColorMethods.TextColor=function(e,t){var r=e.GetBrackets(t,"");var a=e.GetArgument(t);var n=e.configuration.packageData.get("color").model;var o=n.getColor(r,a);var i=e.stack.env["color"];e.stack.env["color"]=o;var s=e.ParseArg(t);if(i){e.stack.env["color"]=i}else{delete e.stack.env["color"]}var l=e.create("node","mstyle",[s],{mathcolor:o});e.Push(l)};t.ColorMethods.DefineColor=function(e,t){var r=e.GetArgument(t);var a=e.GetArgument(t);var n=e.GetArgument(t);var o=e.configuration.packageData.get("color").model;o.defineColor(a,r,n)};t.ColorMethods.ColorBox=function(e,t){var r=e.GetArgument(t);var a=o.default.internalMath(e,e.GetArgument(t));var s=e.configuration.packageData.get("color").model;var l=e.create("node","mpadded",a,{mathbackground:s.getColor("named",r)});n.default.setProperties(l,i(e.options.color.padding));e.Push(l)};t.ColorMethods.FColorBox=function(e,t){var r=e.GetArgument(t);var a=e.GetArgument(t);var s=o.default.internalMath(e,e.GetArgument(t));var l=e.options.color;var u=e.configuration.packageData.get("color").model;var c=e.create("node","mpadded",s,{mathbackground:u.getColor("named",a),style:"border: ".concat(l.borderWidth," solid ").concat(u.getColor("named",r))});n.default.setProperties(c,i(l.padding));e.Push(c)}},21860:function(e,t,r){var a=this&&this.__values||function(e){var t=typeof Symbol==="function"&&Symbol.iterator,r=t&&e[t],a=0;if(r)return r.call(e);if(e&&typeof e.length==="number")return{next:function(){if(e&&a>=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.ColorModel=void 0;var o=n(r(98770));var i=r(54187);var s=new Map;var l=function(){function e(){this.userColors=new Map}e.prototype.normalizeColor=function(e,t){if(!e||e==="named"){return t}if(s.has(e)){var r=s.get(e);return r(t)}throw new o.default("UndefinedColorModel","Color model '%1' not defined",e)};e.prototype.getColor=function(e,t){if(!e||e==="named"){return this.getColorByName(t)}return this.normalizeColor(e,t)};e.prototype.getColorByName=function(e){if(this.userColors.has(e)){return this.userColors.get(e)}if(i.COLORS.has(e)){return i.COLORS.get(e)}return e};e.prototype.defineColor=function(e,t,r){var a=this.normalizeColor(e,r);this.userColors.set(t,a)};return e}();t.ColorModel=l;s.set("rgb",(function(e){var t,r;var n=e.trim().split(/\s*,\s*/);var i="#";if(n.length!==3){throw new o.default("ModelArg1","Color values for the %1 model require 3 numbers","rgb")}try{for(var s=a(n),l=s.next();!l.done;l=s.next()){var u=l.value;if(!u.match(/^(\d+(\.\d*)?|\.\d+)$/)){throw new o.default("InvalidDecimalNumber","Invalid decimal number")}var c=parseFloat(u);if(c<0||c>1){throw new o.default("ModelArg2","Color values for the %1 model must be between %2 and %3","rgb","0","1")}var f=Math.floor(c*255).toString(16);if(f.length<2){f="0"+f}i+=f}}catch(d){t={error:d}}finally{try{if(l&&!l.done&&(r=s.return))r.call(s)}finally{if(t)throw t.error}}return i}));s.set("RGB",(function(e){var t,r;var n=e.trim().split(/\s*,\s*/);var i="#";if(n.length!==3){throw new o.default("ModelArg1","Color values for the %1 model require 3 numbers","RGB")}try{for(var s=a(n),l=s.next();!l.done;l=s.next()){var u=l.value;if(!u.match(/^\d+$/)){throw new o.default("InvalidNumber","Invalid number")}var c=parseInt(u);if(c>255){throw new o.default("ModelArg2","Color values for the %1 model must be between %2 and %3","RGB","0","255")}var f=c.toString(16);if(f.length<2){f="0"+f}i+=f}}catch(d){t={error:d}}finally{try{if(l&&!l.done&&(r=s.return))r.call(s)}finally{if(t)throw t.error}}return i}));s.set("gray",(function(e){if(!e.match(/^\s*(\d+(\.\d*)?|\.\d+)\s*$/)){throw new o.default("InvalidDecimalNumber","Invalid decimal number")}var t=parseFloat(e);if(t<0||t>1){throw new o.default("ModelArg2","Color values for the %1 model must be between %2 and %3","gray","0","1")}var r=Math.floor(t*255).toString(16);if(r.length<2){r="0"+r}return"#".concat(r).concat(r).concat(r)}))},90272:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.ColortblConfiguration=t.ColorArrayItem=void 0;var o=r(94650);var i=r(56441);var s=r(80209);var l=n(r(98770));var u=function(e){a(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;t.color={cell:"",row:"",col:[]};t.hasColor=false;return t}t.prototype.EndEntry=function(){e.prototype.EndEntry.call(this);var t=this.row[this.row.length-1];var r=this.color.cell||this.color.row||this.color.col[this.row.length-1];if(r){t.attributes.set("mathbackground",r);this.color.cell="";this.hasColor=true}};t.prototype.EndRow=function(){e.prototype.EndRow.call(this);this.color.row=""};t.prototype.createMml=function(){var t=e.prototype.createMml.call(this);var r=t.isKind("mrow")?t.childNodes[1]:t;if(r.isKind("menclose")){r=r.childNodes[0].childNodes[0]}if(this.hasColor&&r.attributes.get("frame")==="none"){r.attributes.set("frame","")}return t};return t}(o.ArrayItem);t.ColorArrayItem=u;new s.CommandMap("colortbl",{cellcolor:["TableColor","cell"],rowcolor:["TableColor","row"],columncolor:["TableColor","col"]},{TableColor:function(e,t,r){var a=e.configuration.packageData.get("color").model;var n=e.GetBrackets(t,"");var o=a.getColor(n,e.GetArgument(t));var i=e.stack.Top();if(!(i instanceof u)){throw new l.default("UnsupportedTableColor","Unsupported use of %1",e.currentCS)}if(r==="col"){if(i.table.length){throw new l.default("ColumnColorNotTop","%1 must be in the top row",t)}i.color.col[i.row.length]=o;if(e.GetBrackets(t,"")){e.GetBrackets(t,"")}}else{i.color[r]=o;if(r==="row"&&(i.Size()||i.row.length)){throw new l.default("RowColorNotFirst","%1 must be at the beginning of a row",t)}}}});var c=function(e,t){if(!t.parseOptions.packageData.has("color")){i.ConfigurationHandler.get("color").config(e,t)}};t.ColortblConfiguration=i.Configuration.create("colortbl",{handler:{macro:["colortbl"]},items:{array:u},priority:10,config:[c,10]})},69600:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ColorConfiguration=t.ColorV2Methods=void 0;var a=r(80209);var n=r(56441);t.ColorV2Methods={Color:function(e,t){var r=e.GetArgument(t);var a=e.stack.env["color"];e.stack.env["color"]=r;var n=e.ParseArg(t);if(a){e.stack.env["color"]=a}else{delete e.stack.env["color"]}var o=e.create("node","mstyle",[n],{mathcolor:r});e.Push(o)}};new a.CommandMap("colorv2",{color:"Color"},t.ColorV2Methods);t.ColorConfiguration=n.Configuration.create("colorv2",{handler:{macro:["colorv2"]}})},45320:function(e,t,r){var a=this&&this.__values||function(e){var t=typeof Symbol==="function"&&Symbol.iterator,r=t&&e[t],a=0;if(r)return r.call(e);if(e&&typeof e.length==="number")return{next:function(){if(e&&a>=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var o;Object.defineProperty(t,"__esModule",{value:true});t.ConfigMacrosConfiguration=void 0;var i=r(56441);var s=r(34981);var l=r(80209);var u=n(r(22960));var c=r(27151);var f=n(r(91200));var d=r(73694);var p="configmacros-map";var m="configmacros-env-map";function h(e){new l.CommandMap(p,{},{});new l.EnvironmentMap(m,u.default.environment,{},{});e.append(i.Configuration.local({handler:{macro:[p],environment:[m]},priority:3}))}function v(e,t){g(t);y(t)}function g(e){var t,r;var n=e.parseOptions.handlers.retrieve(p);var o=e.parseOptions.options.macros;try{for(var i=a(Object.keys(o)),s=i.next();!s.done;s=i.next()){var l=s.value;var u=typeof o[l]==="string"?[o[l]]:o[l];var d=Array.isArray(u[2])?new c.Macro(l,f.default.MacroWithTemplate,u.slice(0,2).concat(u[2])):new c.Macro(l,f.default.Macro,u);n.add(l,d)}}catch(m){t={error:m}}finally{try{if(s&&!s.done&&(r=i.return))r.call(i)}finally{if(t)throw t.error}}}function y(e){var t,r;var n=e.parseOptions.handlers.retrieve(m);var o=e.parseOptions.options.environments;try{for(var i=a(Object.keys(o)),s=i.next();!s.done;s=i.next()){var l=s.value;n.add(l,new c.Macro(l,f.default.BeginEnv,[true].concat(o[l])))}}catch(u){t={error:u}}finally{try{if(s&&!s.done&&(r=i.return))r.call(i)}finally{if(t)throw t.error}}}t.ConfigMacrosConfiguration=i.Configuration.create("configmacros",{init:h,config:v,items:(o={},o[d.BeginEnvItem.prototype.kind]=d.BeginEnvItem,o),options:{macros:(0,s.expandable)({}),environments:(0,s.expandable)({})}})},13726:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,o=[],i;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(i)throw i.error}}return o};var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var i;Object.defineProperty(t,"__esModule",{value:true});t.EmpheqConfiguration=t.EmpheqMethods=t.EmpheqBeginItem=void 0;var s=r(56441);var l=r(80209);var u=o(r(6980));var c=o(r(98770));var f=r(94650);var d=r(99118);var p=function(e){a(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}Object.defineProperty(t.prototype,"kind",{get:function(){return"empheq-begin"},enumerable:false,configurable:true});t.prototype.checkItem=function(t){if(t.isKind("end")&&t.getName()===this.getName()){this.setProperty("end",false)}return e.prototype.checkItem.call(this,t)};return t}(f.BeginItem);t.EmpheqBeginItem=p;t.EmpheqMethods={Empheq:function(e,t){if(e.stack.env.closing===t.getName()){delete e.stack.env.closing;e.Push(e.itemFactory.create("end").setProperty("name",e.stack.global.empheq));e.stack.global.empheq="";var r=e.stack.Top();d.EmpheqUtil.adjustTable(r,e);e.Push(e.itemFactory.create("end").setProperty("name","empheq"))}else{u.default.checkEqnEnv(e);delete e.stack.global.eqnenv;var a=e.GetBrackets("\\begin{"+t.getName()+"}")||"";var o=n((e.GetArgument("\\begin{"+t.getName()+"}")||"").split(/=/),2),i=o[0],s=o[1];if(!d.EmpheqUtil.checkEnv(i)){throw new c.default("UnknownEnv",'Unknown environment "%1"',i)}if(a){t.setProperties(d.EmpheqUtil.splitOptions(a,{left:1,right:1}))}e.stack.global.empheq=i;e.string="\\begin{"+i+"}"+(s?"{"+s+"}":"")+e.string.slice(e.i);e.i=0;e.Push(t)}},EmpheqMO:function(e,t,r){e.Push(e.create("token","mo",{},r))},EmpheqDelim:function(e,t){var r=e.GetDelimiter(t);e.Push(e.create("token","mo",{stretchy:true,symmetric:true},r))}};new l.EnvironmentMap("empheq-env",d.EmpheqUtil.environment,{empheq:["Empheq","empheq"]},t.EmpheqMethods);new l.CommandMap("empheq-macros",{empheqlbrace:["EmpheqMO","{"],empheqrbrace:["EmpheqMO","}"],empheqlbrack:["EmpheqMO","["],empheqrbrack:["EmpheqMO","]"],empheqlangle:["EmpheqMO","⟨"],empheqrangle:["EmpheqMO","⟩"],empheqlparen:["EmpheqMO","("],empheqrparen:["EmpheqMO",")"],empheqlvert:["EmpheqMO","|"],empheqrvert:["EmpheqMO","|"],empheqlVert:["EmpheqMO","‖"],empheqrVert:["EmpheqMO","‖"],empheqlfloor:["EmpheqMO","⌊"],empheqrfloor:["EmpheqMO","⌋"],empheqlceil:["EmpheqMO","⌈"],empheqrceil:["EmpheqMO","⌉"],empheqbiglbrace:["EmpheqMO","{"],empheqbigrbrace:["EmpheqMO","}"],empheqbiglbrack:["EmpheqMO","["],empheqbigrbrack:["EmpheqMO","]"],empheqbiglangle:["EmpheqMO","⟨"],empheqbigrangle:["EmpheqMO","⟩"],empheqbiglparen:["EmpheqMO","("],empheqbigrparen:["EmpheqMO",")"],empheqbiglvert:["EmpheqMO","|"],empheqbigrvert:["EmpheqMO","|"],empheqbiglVert:["EmpheqMO","‖"],empheqbigrVert:["EmpheqMO","‖"],empheqbiglfloor:["EmpheqMO","⌊"],empheqbigrfloor:["EmpheqMO","⌋"],empheqbiglceil:["EmpheqMO","⌈"],empheqbigrceil:["EmpheqMO","⌉"],empheql:"EmpheqDelim",empheqr:"EmpheqDelim",empheqbigl:"EmpheqDelim",empheqbigr:"EmpheqDelim"},t.EmpheqMethods);t.EmpheqConfiguration=s.Configuration.create("empheq",{handler:{macro:["empheq-macros"],environment:["empheq-env"]},items:(i={},i[p.prototype.kind]=p,i)})},99118:function(e,t,r){var a=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,o=[],i;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(i)throw i.error}}return o};var n=this&&this.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var a=0,n=t.length,o;a=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.EmpheqUtil=void 0;var s=i(r(6980));var l=i(r(75845));t.EmpheqUtil={environment:function(e,t,r,o){var i=o[0];var s=e.itemFactory.create(i+"-begin").setProperties({name:t,end:i});e.Push(r.apply(void 0,n([e,s],a(o.slice(1)),false)))},splitOptions:function(e,t){if(t===void 0){t=null}return s.default.keyvalOptions(e,t,true)},columnCount:function(e){var t,r;var a=0;try{for(var n=o(e.childNodes),i=n.next();!i.done;i=n.next()){var s=i.value;var l=s.childNodes.length-(s.isKind("mlabeledtr")?1:0);if(l>a)a=l}}catch(u){t={error:u}}finally{try{if(i&&!i.done&&(r=n.return))r.call(n)}finally{if(t)throw t.error}}return a},cellBlock:function(e,t,r,a){var n,i;var s=r.create("node","mpadded",[],{height:0,depth:0,voffset:"-1height"});var u=new l.default(e,r.stack.env,r.configuration);var c=u.mml();if(a&&u.configuration.tags.label){u.configuration.tags.currentTag.env=a;u.configuration.tags.getTag(true)}try{for(var f=o(c.isInferred?c.childNodes:[c]),d=f.next();!d.done;d=f.next()){var p=d.value;s.appendChild(p)}}catch(m){n={error:m}}finally{try{if(d&&!d.done&&(i=f.return))i.call(f)}finally{if(n)throw n.error}}s.appendChild(r.create("node","mphantom",[r.create("node","mpadded",[t],{width:0})]));return s},topRowTable:function(e,t){var r=s.default.copyNode(e,t);r.setChildren(r.childNodes.slice(0,1));r.attributes.set("align","baseline 1");return e.factory.create("mphantom",{},[t.create("node","mpadded",[r],{width:0})])},rowspanCell:function(e,t,r,a,n){e.appendChild(a.create("node","mpadded",[this.cellBlock(t,s.default.copyNode(r,a),a,n),this.topRowTable(r,a)],{height:0,depth:0,voffset:"height"}))},left:function(e,t,r,a,n){var i,s;if(n===void 0){n=""}e.attributes.set("columnalign","right "+(e.attributes.get("columnalign")||""));e.attributes.set("columnspacing","0em "+(e.attributes.get("columnspacing")||""));var l;try{for(var u=o(e.childNodes.slice(0).reverse()),c=u.next();!c.done;c=u.next()){var f=c.value;l=a.create("node","mtd");f.childNodes.unshift(l);l.parent=f;if(f.isKind("mlabeledtr")){f.childNodes[0]=f.childNodes[1];f.childNodes[1]=l}}}catch(d){i={error:d}}finally{try{if(c&&!c.done&&(s=u.return))s.call(u)}finally{if(i)throw i.error}}this.rowspanCell(l,r,t,a,n)},right:function(e,r,a,n,o){if(o===void 0){o=""}if(e.childNodes.length===0){e.appendChild(n.create("node","mtr"))}var i=t.EmpheqUtil.columnCount(e);var s=e.childNodes[0];while(s.childNodes.length{Object.defineProperty(t,"__esModule",{value:true});t.GensymbConfiguration=void 0;var a=r(56441);var n=r(80469);var o=r(80209);function i(e,t){var r=t.attributes||{};r.mathvariant=n.TexConstant.Variant.NORMAL;r.class="MathML-Unit";var a=e.create("token","mi",r,t.char);e.Push(a)}new o.CharacterMap("gensymb-symbols",i,{ohm:"Ω",degree:"°",celsius:"℃",perthousand:"‰",micro:"µ"});t.GensymbConfiguration=a.Configuration.create("gensymb",{handler:{macro:["gensymb-symbols"]}})},98452:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.HtmlConfiguration=void 0;var n=r(56441);var o=r(80209);var i=a(r(2140));new o.CommandMap("html_macros",{href:"Href",class:"Class",style:"Style",cssId:"Id"},i.default);t.HtmlConfiguration=n.Configuration.create("html",{handler:{macro:["html_macros"]}})},2140:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=a(r(72691));var o={};o.Href=function(e,t){var r=e.GetArgument(t);var a=i(e,t);n.default.setAttribute(a,"href",r);e.Push(a)};o.Class=function(e,t){var r=e.GetArgument(t);var a=i(e,t);var o=n.default.getAttribute(a,"class");if(o){r=o+" "+r}n.default.setAttribute(a,"class",r);e.Push(a)};o.Style=function(e,t){var r=e.GetArgument(t);var a=i(e,t);var o=n.default.getAttribute(a,"style");if(o){if(r.charAt(r.length-1)!==";"){r+=";"}r=o+" "+r}n.default.setAttribute(a,"style",r);e.Push(a)};o.Id=function(e,t){var r=e.GetArgument(t);var a=i(e,t);n.default.setAttribute(a,"id",r);e.Push(a)};var i=function(e,t){var r=e.ParseArg(t);if(!n.default.isInferred(r)){return r}var a=n.default.getChildren(r);if(a.length===1){return a[0]}var o=e.create("node","mrow");n.default.copyChildren(r,o);n.default.copyAttributes(r,o);return o};t["default"]=o},7932:function(e,t,r){var a=this&&this.__values||function(e){var t=typeof Symbol==="function"&&Symbol.iterator,r=t&&e[t],a=0;if(r)return r.call(e);if(e&&typeof e.length==="number")return{next:function(){if(e&&a>=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var o;Object.defineProperty(t,"__esModule",{value:true});t.MathtoolsConfiguration=t.fixPrescripts=t.PAIREDDELIMS=void 0;var i=r(56441);var s=r(80209);var l=n(r(72691));var u=r(34981);r(5615);var c=r(90352);var f=r(81197);var d=r(16226);t.PAIREDDELIMS="mathtools-paired-delims";function p(e){new s.CommandMap(t.PAIREDDELIMS,{},{});e.append(i.Configuration.local({handler:{macro:[t.PAIREDDELIMS]},priority:-5}))}function m(e,t){var r,n;var o=t.parseOptions;var i=o.options.mathtools.pairedDelimiters;try{for(var s=a(Object.keys(i)),l=s.next();!l.done;l=s.next()){var u=l.value;c.MathtoolsUtil.addPairedDelims(o,u,i[u])}}catch(d){r={error:d}}finally{try{if(l&&!l.done&&(n=s.return))n.call(s)}finally{if(r)throw r.error}}(0,f.MathtoolsTagFormat)(e,t)}function h(e){var t,r,n,o,i,s;var u=e.data;try{for(var c=a(u.getList("mmultiscripts")),f=c.next();!f.done;f=c.next()){var d=f.value;if(!d.getProperty("fixPrescript"))continue;var p=l.default.getChildren(d);var m=0;try{for(var h=(n=void 0,a([1,2])),v=h.next();!v.done;v=h.next()){var g=v.value;if(!p[g]){l.default.setChild(d,g,u.nodeFactory.create("node","none"));m++}}}catch(x){n={error:x}}finally{try{if(v&&!v.done&&(o=h.return))o.call(h)}finally{if(n)throw n.error}}try{for(var y=(i=void 0,a([4,5])),b=y.next();!b.done;b=y.next()){var g=b.value;if(l.default.isType(p[g],"mrow")&&l.default.getChildren(p[g]).length===0){l.default.setChild(d,g,u.nodeFactory.create("node","none"))}}}catch(_){i={error:_}}finally{try{if(b&&!b.done&&(s=y.return))s.call(y)}finally{if(i)throw i.error}}if(m===2){p.splice(1,2)}}}catch(w){t={error:w}}finally{try{if(f&&!f.done&&(r=c.return))r.call(c)}finally{if(t)throw t.error}}}t.fixPrescripts=h;t.MathtoolsConfiguration=i.Configuration.create("mathtools",{handler:{macro:["mathtools-macros","mathtools-delimiters"],environment:["mathtools-environments"],delimiter:["mathtools-delimiters"],character:["mathtools-characters"]},items:(o={},o[d.MultlinedItem.prototype.kind]=d.MultlinedItem,o),init:p,config:m,postprocessors:[[h,-6]],options:{mathtools:{multlinegap:"1em","multlined-pos":"c","firstline-afterskip":"","lastline-preskip":"","smallmatrix-align":"c",shortvdotsadjustabove:".2em",shortvdotsadjustbelow:".2em",centercolon:false,"centercolon-offset":".04em","thincolon-dx":"-.04em","thincolon-dw":"-.08em","use-unicode":false,"prescript-sub-format":"","prescript-sup-format":"","prescript-arg-format":"","allow-mathtoolsset":true,pairedDelimiters:(0,u.expandable)({}),tagforms:(0,u.expandable)({})}}})},16226:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.MultlinedItem=void 0;var o=r(92902);var i=n(r(72691));var s=r(80469);var l=function(e){a(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}Object.defineProperty(t.prototype,"kind",{get:function(){return"multlined"},enumerable:false,configurable:true});t.prototype.EndTable=function(){if(this.Size()||this.row.length){this.EndEntry();this.EndRow()}if(this.table.length>1){var t=this.factory.configuration.options.mathtools;var r=t.multlinegap;var a=t["firstline-afterskip"]||r;var n=t["lastline-preskip"]||r;var o=i.default.getChildren(this.table[0])[0];if(i.default.getAttribute(o,"columnalign")!==s.TexConstant.Align.RIGHT){o.appendChild(this.create("node","mspace",[],{width:a}))}var l=i.default.getChildren(this.table[this.table.length-1])[0];if(i.default.getAttribute(l,"columnalign")!==s.TexConstant.Align.LEFT){var u=i.default.getChildren(l)[0];u.childNodes.unshift(null);var c=this.create("node","mspace",[],{width:n});i.default.setChild(u,0,c)}}e.prototype.EndTable.call(this)};return t}(o.MultlineItem);t.MultlinedItem=l},5615:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=a(r(22960));var o=r(80209);var i=r(80469);var s=r(75316);new o.CommandMap("mathtools-macros",{shoveleft:["HandleShove",i.TexConstant.Align.LEFT],shoveright:["HandleShove",i.TexConstant.Align.RIGHT],xleftrightarrow:["xArrow",8596,10,10],xLeftarrow:["xArrow",8656,12,7],xRightarrow:["xArrow",8658,7,12],xLeftrightarrow:["xArrow",8660,12,12],xhookleftarrow:["xArrow",8617,10,5],xhookrightarrow:["xArrow",8618,5,10],xmapsto:["xArrow",8614,10,10],xrightharpoondown:["xArrow",8641,5,10],xleftharpoondown:["xArrow",8637,10,5],xrightleftharpoons:["xArrow",8652,10,10],xrightharpoonup:["xArrow",8640,5,10],xleftharpoonup:["xArrow",8636,10,5],xleftrightharpoons:["xArrow",8651,10,10],mathllap:["MathLap","l",false],mathrlap:["MathLap","r",false],mathclap:["MathLap","c",false],clap:["MtLap","c"],textllap:["MtLap","l"],textrlap:["MtLap","r"],textclap:["MtLap","c"],cramped:"Cramped",crampedllap:["MathLap","l",true],crampedrlap:["MathLap","r",true],crampedclap:["MathLap","c",true],crampedsubstack:["Macro","\\begin{crampedsubarray}{c}#1\\end{crampedsubarray}",1],mathmbox:"MathMBox",mathmakebox:"MathMakeBox",overbracket:"UnderOverBracket",underbracket:"UnderOverBracket",refeq:"HandleRef",MoveEqLeft:["Macro","\\hspace{#1em}&\\hspace{-#1em}",1,"2"],Aboxed:"Aboxed",ArrowBetweenLines:"ArrowBetweenLines",vdotswithin:"VDotsWithin",shortvdotswithin:"ShortVDotsWithin",MTFlushSpaceAbove:"FlushSpaceAbove",MTFlushSpaceBelow:"FlushSpaceBelow",DeclarePairedDelimiter:"DeclarePairedDelimiter",DeclarePairedDelimiterX:"DeclarePairedDelimiterX",DeclarePairedDelimiterXPP:"DeclarePairedDelimiterXPP",DeclarePairedDelimiters:"DeclarePairedDelimiter",DeclarePairedDelimitersX:"DeclarePairedDelimiterX",DeclarePairedDelimitersXPP:"DeclarePairedDelimiterXPP",centercolon:["CenterColon",true,true],ordinarycolon:["CenterColon",false],MTThinColon:["CenterColon",true,true,true],coloneqq:["Relation",":=","≔"],Coloneqq:["Relation","::=","⩴"],coloneq:["Relation",":-"],Coloneq:["Relation","::-"],eqqcolon:["Relation","=:","≕"],Eqqcolon:["Relation","=::"],eqcolon:["Relation","-:","∹"],Eqcolon:["Relation","-::"],colonapprox:["Relation",":\\approx"],Colonapprox:["Relation","::\\approx"],colonsim:["Relation",":\\sim"],Colonsim:["Relation","::\\sim"],dblcolon:["Relation","::","∷"],nuparrow:["NArrow","↑",".06em"],ndownarrow:["NArrow","↓",".25em"],bigtimes:["Macro","\\mathop{\\Large\\kern-.1em\\boldsymbol{\\times}\\kern-.1em}"],splitfrac:["SplitFrac",false],splitdfrac:["SplitFrac",true],xmathstrut:"XMathStrut",prescript:"Prescript",newtagform:["NewTagForm",false],renewtagform:["NewTagForm",true],usetagform:"UseTagForm",adjustlimits:["MacroWithTemplate","\\mathop{{#1}\\vphantom{{#3}}}_{{#2}\\vphantom{{#4}}}\\mathop{{#3}\\vphantom{{#1}}}_{{#4}\\vphantom{{#2}}}",4,,"_",,"_"],mathtoolsset:"SetOptions"},s.MathtoolsMethods);new o.EnvironmentMap("mathtools-environments",n.default.environment,{dcases:["Array",null,"\\{","","ll",null,".2em","D"],rcases:["Array",null,"","\\}","ll",null,".2em"],drcases:["Array",null,"","\\}","ll",null,".2em","D"],"dcases*":["Cases",null,"{","","D"],"rcases*":["Cases",null,"","}"],"drcases*":["Cases",null,"","}","D"],"cases*":["Cases",null,"{",""],"matrix*":["MtMatrix",null,null,null],"pmatrix*":["MtMatrix",null,"(",")"],"bmatrix*":["MtMatrix",null,"[","]"],"Bmatrix*":["MtMatrix",null,"\\{","\\}"],"vmatrix*":["MtMatrix",null,"\\vert","\\vert"],"Vmatrix*":["MtMatrix",null,"\\Vert","\\Vert"],"smallmatrix*":["MtSmallMatrix",null,null,null],psmallmatrix:["MtSmallMatrix",null,"(",")","c"],"psmallmatrix*":["MtSmallMatrix",null,"(",")"],bsmallmatrix:["MtSmallMatrix",null,"[","]","c"],"bsmallmatrix*":["MtSmallMatrix",null,"[","]"],Bsmallmatrix:["MtSmallMatrix",null,"\\{","\\}","c"],"Bsmallmatrix*":["MtSmallMatrix",null,"\\{","\\}"],vsmallmatrix:["MtSmallMatrix",null,"\\vert","\\vert","c"],"vsmallmatrix*":["MtSmallMatrix",null,"\\vert","\\vert"],Vsmallmatrix:["MtSmallMatrix",null,"\\Vert","\\Vert","c"],"Vsmallmatrix*":["MtSmallMatrix",null,"\\Vert","\\Vert"],crampedsubarray:["Array",null,null,null,null,"0em","0.1em","S'",1],multlined:"MtMultlined",spreadlines:["SpreadLines",true],lgathered:["AmsEqnArray",null,null,null,"l",null,".5em","D"],rgathered:["AmsEqnArray",null,null,null,"r",null,".5em","D"]},s.MathtoolsMethods);new o.DelimiterMap("mathtools-delimiters",n.default.delimiter,{"\\lparen":"(","\\rparen":")"});new o.CommandMap("mathtools-characters",{":":["CenterColon",true]},s.MathtoolsMethods)},75316:function(e,t,r){var a=this&&this.__assign||function(){a=Object.assign||function(e){for(var t,r=1,a=arguments.length;r0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(i)throw i.error}}return o};var o=this&&this.__values||function(e){var t=typeof Symbol==="function"&&Symbol.iterator,r=t&&e[t],a=0;if(r)return r.call(e);if(e&&typeof e.length==="number")return{next:function(){if(e&&a>=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.MathtoolsMethods=void 0;var s=i(r(6980));var l=r(98840);var u=i(r(38364));var c=i(r(75845));var f=i(r(98770));var d=i(r(72691));var p=r(80747);var m=r(86810);var h=r(34981);var v=i(r(67668));var g=i(r(91200));var y=r(90352);t.MathtoolsMethods={MtMatrix:function(e,r,a,n){var o=e.GetBrackets("\\begin{".concat(r.getName(),"}"),"c");return t.MathtoolsMethods.Array(e,r,a,n,o)},MtSmallMatrix:function(e,r,a,n,o){if(!o){o=e.GetBrackets("\\begin{".concat(r.getName(),"}"),e.options.mathtools["smallmatrix-align"])}return t.MathtoolsMethods.Array(e,r,a,n,o,s.default.Em(1/3),".2em","S",1)},MtMultlined:function(e,t){var r;var a="\\begin{".concat(t.getName(),"}");var o=e.GetBrackets(a,e.options.mathtools["multlined-pos"]||"c");var i=o?e.GetBrackets(a,""):"";if(o&&!o.match(/^[cbt]$/)){r=n([o,i],2),i=r[0],o=r[1]}e.Push(t);var l=e.itemFactory.create("multlined",e,t);l.arraydef={displaystyle:true,rowspacing:".5em",width:i||"auto",columnwidth:"100%"};return s.default.setArrayAlign(l,o||"c")},HandleShove:function(e,t,r){var a=e.stack.Top();if(a.kind!=="multline"&&a.kind!=="multlined"){throw new f.default("CommandInMultlined","%1 can only appear within the multline or multlined environments",t)}if(a.Size()){throw new f.default("CommandAtTheBeginingOfLine","%1 must come at the beginning of the line",t)}a.setProperty("shove",r);var n=e.GetBrackets(t);var o=e.ParseArg(t);if(n){var i=e.create("node","mrow",[]);var s=e.create("node","mspace",[],{width:n});if(r==="left"){i.appendChild(s);i.appendChild(o)}else{i.appendChild(o);i.appendChild(s)}o=i}e.Push(o)},SpreadLines:function(e,t){var r,a;if(e.stack.env.closing===t.getName()){delete e.stack.env.closing;var n=e.stack.Pop();var i=n.toMml();var s=n.getProperty("spread");if(i.isInferred){try{for(var l=o(d.default.getChildren(i)),u=l.next();!u.done;u=l.next()){var c=u.value;y.MathtoolsUtil.spreadLines(c,s)}}catch(f){r={error:f}}finally{try{if(u&&!u.done&&(a=l.return))a.call(l)}finally{if(r)throw r.error}}}else{y.MathtoolsUtil.spreadLines(i,s)}e.Push(i)}else{var s=e.GetDimen("\\begin{".concat(t.getName(),"}"));t.setProperty("spread",s);e.Push(t)}},Cases:function(e,t,r,a,n){var o=e.itemFactory.create("array").setProperty("casesEnv",t.getName());o.arraydef={rowspacing:".2em",columnspacing:"1em",columnalign:"left"};if(n==="D"){o.arraydef.displaystyle=true}o.setProperties({open:r,close:a});e.Push(t);return o},MathLap:function(e,t,r,n){var o=e.GetBrackets(t,"").trim();var i=e.create("node","mstyle",[e.create("node","mpadded",[e.ParseArg(t)],a({width:0},r==="r"?{}:{lspace:r==="l"?"-1width":"-.5width"}))],{"data-cramped":n});y.MathtoolsUtil.setDisplayLevel(i,o);e.Push(e.create("node","TeXAtom",[i]))},Cramped:function(e,t){var r=e.GetBrackets(t,"").trim();var a=e.ParseArg(t);var n=e.create("node","mstyle",[a],{"data-cramped":true});y.MathtoolsUtil.setDisplayLevel(n,r);e.Push(n)},MtLap:function(e,t,r){var a=s.default.internalMath(e,e.GetArgument(t),0);var n=e.create("node","mpadded",a,{width:0});if(r!=="r"){d.default.setAttribute(n,"lspace",r==="l"?"-1width":"-.5width")}e.Push(n)},MathMakeBox:function(e,t){var r=e.GetBrackets(t);var a=e.GetBrackets(t,"c");var n=e.create("node","mpadded",[e.ParseArg(t)]);if(r){d.default.setAttribute(n,"width",r)}var o=(0,h.lookup)(a,{c:"center",r:"right"},"");if(o){d.default.setAttribute(n,"data-align",o)}e.Push(n)},MathMBox:function(e,t){e.Push(e.create("node","mrow",[e.ParseArg(t)]))},UnderOverBracket:function(e,t){var r=(0,m.length2em)(e.GetBrackets(t,".1em"),.1);var a=e.GetBrackets(t,".2em");var o=e.GetArgument(t);var i=n(t.charAt(1)==="o"?["over","accent","bottom"]:["under","accentunder","top"],3),l=i[0],u=i[1],f=i[2];var p=(0,m.em)(r);var h=new c.default(o,e.stack.env,e.configuration).mml();var v=new c.default(o,e.stack.env,e.configuration).mml();var g=e.create("node","mpadded",[e.create("node","mphantom",[v])],{style:"border: ".concat(p," solid; border-").concat(f,": none"),height:a,depth:0});var y=s.default.underOver(e,h,g,l,true);var b=d.default.getChildAt(d.default.getChildAt(y,0),0);d.default.setAttribute(b,u,true);e.Push(y)},Aboxed:function(e,t){var r=y.MathtoolsUtil.checkAlignment(e,t);if(r.row.length%2===1){r.row.push(e.create("node","mtd",[]))}var a=e.GetArgument(t);var n=e.string.substr(e.i);e.string=a+"&&\\endAboxed";e.i=0;var o=e.GetUpTo(t,"&");var i=e.GetUpTo(t,"&");e.GetUpTo(t,"\\endAboxed");var l=s.default.substituteArgs(e,[o,i],"\\rlap{\\boxed{#1{}#2}}\\kern.267em\\phantom{#1}&\\phantom{{}#2}\\kern.267em");e.string=l+n;e.i=0},ArrowBetweenLines:function(e,t){var r=y.MathtoolsUtil.checkAlignment(e,t);if(r.Size()||r.row.length){throw new f.default("BetweenLines","%1 must be on a row by itself",t)}var a=e.GetStar();var n=e.GetBrackets(t,"\\Updownarrow");if(a){r.EndEntry();r.EndEntry()}var o=a?"\\quad"+n:n+"\\quad";var i=new c.default(o,e.stack.env,e.configuration).mml();e.Push(i);r.EndEntry();r.EndRow()},VDotsWithin:function(e,t){var r=e.stack.Top();var n=r.getProperty("flushspaceabove")===r.table.length;var o="\\mmlToken{mi}{}"+e.GetArgument(t)+"\\mmlToken{mi}{}";var i=new c.default(o,e.stack.env,e.configuration).mml();var s=e.create("node","mpadded",[e.create("node","mpadded",[e.create("node","mo",[e.create("text","⋮")])],a({width:0,lspace:"-.5width"},n?{height:"-.6em",voffset:"-.18em"}:{})),e.create("node","mphantom",[i])],{lspace:".5width"});e.Push(s)},ShortVDotsWithin:function(e,r){var a=e.stack.Top();var n=e.GetStar();t.MathtoolsMethods.FlushSpaceAbove(e,"\\MTFlushSpaceAbove");!n&&a.EndEntry();t.MathtoolsMethods.VDotsWithin(e,"\\vdotswithin");n&&a.EndEntry();t.MathtoolsMethods.FlushSpaceBelow(e,"\\MTFlushSpaceBelow")},FlushSpaceAbove:function(e,t){var r=y.MathtoolsUtil.checkAlignment(e,t);r.setProperty("flushspaceabove",r.table.length);r.addRowSpacing("-"+e.options.mathtools["shortvdotsadjustabove"])},FlushSpaceBelow:function(e,t){var r=y.MathtoolsUtil.checkAlignment(e,t);r.Size()&&r.EndEntry();r.EndRow();r.addRowSpacing("-"+e.options.mathtools["shortvdotsadjustbelow"])},PairedDelimiters:function(e,t,r,a,o,i,l,u){if(o===void 0){o="#1"}if(i===void 0){i=1}if(l===void 0){l=""}if(u===void 0){u=""}var c=e.GetStar();var f=c?"":e.GetBrackets(t);var d=n(c?["\\left","\\right"]:f?[f+"l",f+"r"]:["",""],2),p=d[0],m=d[1];var h=c?"\\middle":f||"";if(i){var v=[];for(var g=v.length;g=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,o=[],i;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(i)throw i.error}}return o};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.MathtoolsTagFormat=void 0;var s=i(r(98770));var l=r(17782);var u=0;function c(e,t){var r=t.parseOptions.options.tags;if(r!=="base"&&e.tags.hasOwnProperty(r)){l.TagsFactory.add(r,e.tags[r])}var i=l.TagsFactory.create(t.parseOptions.options.tags).constructor;var c=function(e){a(r,e);function r(){var r,a;var o=e.call(this)||this;o.mtFormats=new Map;o.mtCurrent=null;var i=t.parseOptions.options.mathtools.tagforms;try{for(var l=n(Object.keys(i)),u=l.next();!u.done;u=l.next()){var c=u.value;if(!Array.isArray(i[c])||i[c].length!==3){throw new s.default("InvalidTagFormDef",'The tag form definition for "%1" should be an array fo three strings',c)}o.mtFormats.set(c,i[c])}}catch(f){r={error:f}}finally{try{if(u&&!u.done&&(a=l.return))a.call(l)}finally{if(r)throw r.error}}return o}r.prototype.formatTag=function(t){if(this.mtCurrent){var r=o(this.mtCurrent,3),a=r[0],n=r[1],i=r[2];return i?"".concat(a).concat(i,"{").concat(t,"}").concat(n):"".concat(a).concat(t).concat(n)}return e.prototype.formatTag.call(this,t)};return r}(i);u++;var f="MathtoolsTags-"+u;l.TagsFactory.add(f,c);t.parseOptions.options.tags=f}t.MathtoolsTagFormat=c},90352:function(e,t,r){var a=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,o=[],i;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(i)throw i.error}}return o};var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.MathtoolsUtil=void 0;var o=r(94650);var i=n(r(6980));var s=n(r(75845));var l=n(r(98770));var u=r(27151);var c=r(34981);var f=r(75316);var d=r(7932);t.MathtoolsUtil={setDisplayLevel:function(e,t){if(!t)return;var r=a((0,c.lookup)(t,{"\\displaystyle":[true,0],"\\textstyle":[false,0],"\\scriptstyle":[false,1],"\\scriptscriptstyle":[false,2]},[null,null]),2),n=r[0],o=r[1];if(n!==null){e.attributes.set("displaystyle",n);e.attributes.set("scriptlevel",o)}},checkAlignment:function(e,t){var r=e.stack.Top();if(r.kind!==o.EqnArrayItem.prototype.kind){throw new l.default("NotInAlignment","%1 can only be used in aligment environments",t)}return r},addPairedDelims:function(e,t,r){var a=e.handlers.retrieve(d.PAIREDDELIMS);a.add(t,new u.Macro(t,f.MathtoolsMethods.PairedDelimiters,r))},spreadLines:function(e,t){if(!e.isKind("mtable"))return;var r=e.attributes.get("rowspacing");if(r){var a=i.default.dimen2em(t);r=r.split(/ /).map((function(e){return i.default.Em(Math.max(0,i.default.dimen2em(e)+a))})).join(" ")}else{r=t}e.attributes.set("rowspacing",r)},plusOrMinus:function(e,t){t=t.trim();if(!t.match(/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/)){throw new l.default("NotANumber","Argument to %1 is not a number",e)}return t.match(/^[-+]/)?t:"+"+t},getScript:function(e,t,r){var a=i.default.trimSpaces(e.GetArgument(t));if(a===""){return e.create("node","none")}var n=e.options.mathtools["prescript-".concat(r,"-format")];n&&(a="".concat(n,"{").concat(a,"}"));return new s.default(a,e.stack.env,e.configuration).mml()}}},75802:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.MhchemConfiguration=void 0;var n=r(56441);var o=r(80209);var i=a(r(98770));var s=a(r(38364));var l=r(98840);var u=r(62691);var c={};c.Macro=s.default.Macro;c.xArrow=l.AmsMethods.xArrow;c.Machine=function(e,t,r){var a=e.GetArgument(t);var n;try{n=u.mhchemParser.toTex(a,r)}catch(o){throw new i.default(o[0],o[1])}e.string=n+e.string.substr(e.i);e.i=0};new o.CommandMap("mhchem",{ce:["Machine","ce"],pu:["Machine","pu"],longrightleftharpoons:["Macro","\\stackrel{\\textstyle{-}\\!\\!{\\rightharpoonup}}{\\smash{{\\leftharpoondown}\\!\\!{-}}}"],longRightleftharpoons:["Macro","\\stackrel{\\textstyle{-}\\!\\!{\\rightharpoonup}}{\\smash{\\leftharpoondown}}"],longLeftrightharpoons:["Macro","\\stackrel{\\textstyle\\vphantom{{-}}{\\rightharpoonup}}{\\smash{{\\leftharpoondown}\\!\\!{-}}}"],longleftrightarrows:["Macro","\\stackrel{\\longrightarrow}{\\smash{\\longleftarrow}\\Rule{0px}{.25em}{0px}}"],tripledash:["Macro","\\vphantom{-}\\raise2mu{\\kern2mu\\tiny\\text{-}\\kern1mu\\text{-}\\kern1mu\\text{-}\\kern2mu}"],xleftrightarrow:["xArrow",8596,6,6],xrightleftharpoons:["xArrow",8652,5,7],xRightleftharpoons:["xArrow",8652,5,7],xLeftrightharpoons:["xArrow",8652,5,7]},c);t.MhchemConfiguration=n.Configuration.create("mhchem",{handler:{macro:["mhchem"]}})},36912:function(e,t,r){var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var s;Object.defineProperty(t,"__esModule",{value:true});t.NewcommandConfiguration=void 0;var l=r(56441);var u=r(73694);var c=i(r(67668));r(56819);var f=i(r(22960));var d=o(r(80209));var p=function(e){new d.DelimiterMap(c.default.NEW_DELIMITER,f.default.delimiter,{});new d.CommandMap(c.default.NEW_COMMAND,{},{});new d.EnvironmentMap(c.default.NEW_ENVIRONMENT,f.default.environment,{},{});e.append(l.Configuration.local({handler:{character:[],delimiter:[c.default.NEW_DELIMITER],macro:[c.default.NEW_DELIMITER,c.default.NEW_COMMAND],environment:[c.default.NEW_ENVIRONMENT]},priority:-1}))};t.NewcommandConfiguration=l.Configuration.create("newcommand",{handler:{macro:["Newcommand-macros"]},items:(s={},s[u.BeginEnvItem.prototype.kind]=u.BeginEnvItem,s),options:{maxMacros:1e3},init:p})},73694:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BeginEnvItem=void 0;var o=n(r(98770));var i=r(37720);var s=function(e){a(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}Object.defineProperty(t.prototype,"kind",{get:function(){return"beginEnv"},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"isOpen",{get:function(){return true},enumerable:false,configurable:true});t.prototype.checkItem=function(t){if(t.isKind("end")){if(t.getName()!==this.getName()){throw new o.default("EnvBadEnd","\\begin{%1} ended with \\end{%2}",this.getName(),t.getName())}return[[this.factory.create("mml",this.toMml())],true]}if(t.isKind("stop")){throw new o.default("EnvMissingEnd","Missing \\end{%1}",this.getName())}return e.prototype.checkItem.call(this,t)};return t}(i.BaseItem);t.BeginEnvItem=s},56819:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=a(r(91200));var o=r(80209);new o.CommandMap("Newcommand-macros",{newcommand:"NewCommand",renewcommand:"NewCommand",newenvironment:"NewEnvironment",renewenvironment:"NewEnvironment",def:"MacroDef",let:"Let"},n.default)},91200:function(e,t,r){var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var s=i(r(98770));var l=o(r(80209));var u=i(r(38364));var c=i(r(6980));var f=i(r(67668));var d={};d.NewCommand=function(e,t){var r=f.default.GetCsNameArgument(e,t);var a=f.default.GetArgCount(e,t);var n=e.GetBrackets(t);var o=e.GetArgument(t);f.default.addMacro(e,r,d.Macro,[o,a,n])};d.NewEnvironment=function(e,t){var r=c.default.trimSpaces(e.GetArgument(t));var a=f.default.GetArgCount(e,t);var n=e.GetBrackets(t);var o=e.GetArgument(t);var i=e.GetArgument(t);f.default.addEnvironment(e,r,d.BeginEnv,[true,o,i,a,n])};d.MacroDef=function(e,t){var r=f.default.GetCSname(e,t);var a=f.default.GetTemplate(e,t,"\\"+r);var n=e.GetArgument(t);!(a instanceof Array)?f.default.addMacro(e,r,d.Macro,[n,a]):f.default.addMacro(e,r,d.MacroWithTemplate,[n].concat(a))};d.Let=function(e,t){var r=f.default.GetCSname(e,t);var a=e.GetNext();if(a==="="){e.i++;a=e.GetNext()}var n=e.configuration.handlers;if(a==="\\"){t=f.default.GetCSname(e,t);var o=n.get("delimiter").lookup("\\"+t);if(o){f.default.addDelimiter(e,"\\"+r,o.char,o.attributes);return}var i=n.get("macro").applicable(t);if(!i){return}if(i instanceof l.MacroMap){var s=i.lookup(t);f.default.addMacro(e,r,s.func,s.args,s.symbol);return}o=i.lookup(t);var u=f.default.disassembleSymbol(r,o);var c=function(e,t){var r=[];for(var a=2;a0){return[i.toString()].concat(n)}else{return i}}e.i++}throw new o.default("MissingReplacementString","Missing replacement string for definition of %1",t)}e.GetTemplate=u;function c(e,t,r){if(r==null){return e.GetArgument(t)}var a=e.i;var n=0;var i=0;while(e.i{Object.defineProperty(t,"__esModule",{value:true});t.NoErrorsConfiguration=void 0;var a=r(56441);function n(e,t,r,a){var n=e.create("token","mtext",{},a.replace(/\n/g," "));var o=e.create("node","merror",[n],{"data-mjx-error":t,title:t});return o}t.NoErrorsConfiguration=a.Configuration.create("noerrors",{nodes:{error:n}})},68916:function(e,t,r){var a=this&&this.__values||function(e){var t=typeof Symbol==="function"&&Symbol.iterator,r=t&&e[t],a=0;if(r)return r.call(e);if(e&&typeof e.length==="number")return{next:function(){if(e&&a>=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(t,"__esModule",{value:true});t.NoUndefinedConfiguration=void 0;var n=r(56441);function o(e,t){var r,n;var o=e.create("text","\\"+t);var i=e.options.noundefined||{};var s={};try{for(var l=a(["color","background","size"]),u=l.next();!u.done;u=l.next()){var c=u.value;if(i[c]){s["math"+c]=i[c]}}}catch(f){r={error:f}}finally{try{if(u&&!u.done&&(n=l.return))n.call(l)}finally{if(r)throw r.error}}e.Push(e.create("node","mtext",[],s,o))}t.NoUndefinedConfiguration=n.Configuration.create("noundefined",{fallback:{macro:o},options:{noundefined:{color:"red",background:"",size:""}},priority:3})},23468:(e,t,r)=>{var a;Object.defineProperty(t,"__esModule",{value:true});t.PhysicsConfiguration=void 0;var n=r(56441);var o=r(34834);r(23423);t.PhysicsConfiguration=n.Configuration.create("physics",{handler:{macro:["Physics-automatic-bracing-macros","Physics-vector-macros","Physics-vector-mo","Physics-vector-mi","Physics-derivative-macros","Physics-expressions-macros","Physics-quick-quad-macros","Physics-bra-ket-macros","Physics-matrix-macros"],character:["Physics-characters"],environment:["Physics-aux-envs"]},items:(a={},a[o.AutoOpen.prototype.kind]=o.AutoOpen,a),options:{physics:{italicdiff:false,arrowdel:false}}})},34834:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.AutoOpen=void 0;var o=r(37720);var i=n(r(6980));var s=n(r(72691));var l=n(r(75845));var u=function(e){a(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;t.openCount=0;return t}Object.defineProperty(t.prototype,"kind",{get:function(){return"auto open"},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"isOpen",{get:function(){return true},enumerable:false,configurable:true});t.prototype.toMml=function(){var t=this.factory.configuration.parser;var r=this.getProperty("right");if(this.getProperty("smash")){var a=e.prototype.toMml.call(this);var n=t.create("node","mpadded",[a],{height:0,depth:0});this.Clear();this.Push(t.create("node","TeXAtom",[n]))}if(r){this.Push(new l.default(r,t.stack.env,t.configuration).mml())}var o=i.default.fenced(this.factory.configuration,this.getProperty("open"),e.prototype.toMml.call(this),this.getProperty("close"),this.getProperty("big"));s.default.removeProperties(o,"open","close","texClass");return o};t.prototype.checkItem=function(t){if(t.isKind("mml")&&t.Size()===1){var r=t.toMml();if(r.isKind("mo")&&r.getText()===this.getProperty("open")){this.openCount++}}var a=t.getProperty("autoclose");if(a&&a===this.getProperty("close")&&!this.openCount--){if(this.getProperty("ignore")){this.Clear();return[[],true]}return[[this.toMml()],true]}return e.prototype.checkItem.call(this,t)};t.errors=Object.assign(Object.create(o.BaseItem.errors),{stop:["ExtraOrMissingDelims","Extra open or missing close delimiter"]});return t}(o.BaseItem);t.AutoOpen=u},23423:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=r(80209);var o=a(r(66052));var i=r(80469);var s=a(r(22960));var l=r(80747);new n.CommandMap("Physics-automatic-bracing-macros",{quantity:"Quantity",qty:"Quantity",pqty:["Quantity","(",")",true],bqty:["Quantity","[","]",true],vqty:["Quantity","|","|",true],Bqty:["Quantity","\\{","\\}",true],absolutevalue:["Quantity","|","|",true],abs:["Quantity","|","|",true],norm:["Quantity","\\|","\\|",true],evaluated:"Eval",eval:"Eval",order:["Quantity","(",")",true,"O",i.TexConstant.Variant.CALLIGRAPHIC],commutator:"Commutator",comm:"Commutator",anticommutator:["Commutator","\\{","\\}"],acomm:["Commutator","\\{","\\}"],poissonbracket:["Commutator","\\{","\\}"],pb:["Commutator","\\{","\\}"]},o.default);new n.CharacterMap("Physics-vector-mo",s.default.mathchar0mo,{dotproduct:["⋅",{mathvariant:i.TexConstant.Variant.BOLD}],vdot:["⋅",{mathvariant:i.TexConstant.Variant.BOLD}],crossproduct:"×",cross:"×",cp:"×",gradientnabla:["∇",{mathvariant:i.TexConstant.Variant.BOLD}]});new n.CharacterMap("Physics-vector-mi",s.default.mathchar0mi,{real:["ℜ",{mathvariant:i.TexConstant.Variant.NORMAL}],imaginary:["ℑ",{mathvariant:i.TexConstant.Variant.NORMAL}]});new n.CommandMap("Physics-vector-macros",{vnabla:"Vnabla",vectorbold:"VectorBold",vb:"VectorBold",vectorarrow:["StarMacro",1,"\\vec{\\vb","{#1}}"],va:["StarMacro",1,"\\vec{\\vb","{#1}}"],vectorunit:["StarMacro",1,"\\hat{\\vb","{#1}}"],vu:["StarMacro",1,"\\hat{\\vb","{#1}}"],gradient:["OperatorApplication","\\vnabla","(","["],grad:["OperatorApplication","\\vnabla","(","["],divergence:["VectorOperator","\\vnabla\\vdot","(","["],div:["VectorOperator","\\vnabla\\vdot","(","["],curl:["VectorOperator","\\vnabla\\crossproduct","(","["],laplacian:["OperatorApplication","\\nabla^2","(","["]},o.default);new n.CommandMap("Physics-expressions-macros",{sin:"Expression",sinh:"Expression",arcsin:"Expression",asin:"Expression",cos:"Expression",cosh:"Expression",arccos:"Expression",acos:"Expression",tan:"Expression",tanh:"Expression",arctan:"Expression",atan:"Expression",csc:"Expression",csch:"Expression",arccsc:"Expression",acsc:"Expression",sec:"Expression",sech:"Expression",arcsec:"Expression",asec:"Expression",cot:"Expression",coth:"Expression",arccot:"Expression",acot:"Expression",exp:["Expression",false],log:"Expression",ln:"Expression",det:["Expression",false],Pr:["Expression",false],tr:["Expression",false],trace:["Expression",false,"tr"],Tr:["Expression",false],Trace:["Expression",false,"Tr"],rank:"NamedFn",erf:["Expression",false],Residue:["Macro","\\mathrm{Res}"],Res:["OperatorApplication","\\Residue","(","[","{"],principalvalue:["OperatorApplication","{\\cal P}"],pv:["OperatorApplication","{\\cal P}"],PV:["OperatorApplication","{\\rm P.V.}"],Re:["OperatorApplication","\\mathrm{Re}","{"],Im:["OperatorApplication","\\mathrm{Im}","{"],sine:["NamedFn","sin"],hypsine:["NamedFn","sinh"],arcsine:["NamedFn","arcsin"],asine:["NamedFn","asin"],cosine:["NamedFn","cos"],hypcosine:["NamedFn","cosh"],arccosine:["NamedFn","arccos"],acosine:["NamedFn","acos"],tangent:["NamedFn","tan"],hyptangent:["NamedFn","tanh"],arctangent:["NamedFn","arctan"],atangent:["NamedFn","atan"],cosecant:["NamedFn","csc"],hypcosecant:["NamedFn","csch"],arccosecant:["NamedFn","arccsc"],acosecant:["NamedFn","acsc"],secant:["NamedFn","sec"],hypsecant:["NamedFn","sech"],arcsecant:["NamedFn","arcsec"],asecant:["NamedFn","asec"],cotangent:["NamedFn","cot"],hypcotangent:["NamedFn","coth"],arccotangent:["NamedFn","arccot"],acotangent:["NamedFn","acot"],exponential:["NamedFn","exp"],logarithm:["NamedFn","log"],naturallogarithm:["NamedFn","ln"],determinant:["NamedFn","det"],Probability:["NamedFn","Pr"]},o.default);new n.CommandMap("Physics-quick-quad-macros",{qqtext:"Qqtext",qq:"Qqtext",qcomma:["Macro","\\qqtext*{,}"],qc:["Macro","\\qqtext*{,}"],qcc:["Qqtext","c.c."],qif:["Qqtext","if"],qthen:["Qqtext","then"],qelse:["Qqtext","else"],qotherwise:["Qqtext","otherwise"],qunless:["Qqtext","unless"],qgiven:["Qqtext","given"],qusing:["Qqtext","using"],qassume:["Qqtext","assume"],qsince:["Qqtext","since"],qlet:["Qqtext","let"],qfor:["Qqtext","for"],qall:["Qqtext","all"],qeven:["Qqtext","even"],qodd:["Qqtext","odd"],qinteger:["Qqtext","integer"],qand:["Qqtext","and"],qor:["Qqtext","or"],qas:["Qqtext","as"],qin:["Qqtext","in"]},o.default);new n.CommandMap("Physics-derivative-macros",{diffd:"DiffD",flatfrac:["Macro","\\left.#1\\middle/#2\\right.",2],differential:["Differential","\\diffd"],dd:["Differential","\\diffd"],variation:["Differential","\\delta"],var:["Differential","\\delta"],derivative:["Derivative",2,"\\diffd"],dv:["Derivative",2,"\\diffd"],partialderivative:["Derivative",3,"\\partial"],pderivative:["Derivative",3,"\\partial"],pdv:["Derivative",3,"\\partial"],functionalderivative:["Derivative",2,"\\delta"],fderivative:["Derivative",2,"\\delta"],fdv:["Derivative",2,"\\delta"]},o.default);new n.CommandMap("Physics-bra-ket-macros",{bra:"Bra",ket:"Ket",innerproduct:"BraKet",ip:"BraKet",braket:"BraKet",outerproduct:"KetBra",dyad:"KetBra",ketbra:"KetBra",op:"KetBra",expectationvalue:"Expectation",expval:"Expectation",ev:"Expectation",matrixelement:"MatrixElement",matrixel:"MatrixElement",mel:"MatrixElement"},o.default);new n.CommandMap("Physics-matrix-macros",{matrixquantity:"MatrixQuantity",mqty:"MatrixQuantity",pmqty:["Macro","\\mqty(#1)",1],Pmqty:["Macro","\\mqty*(#1)",1],bmqty:["Macro","\\mqty[#1]",1],vmqty:["Macro","\\mqty|#1|",1],smallmatrixquantity:["MatrixQuantity",true],smqty:["MatrixQuantity",true],spmqty:["Macro","\\smqty(#1)",1],sPmqty:["Macro","\\smqty*(#1)",1],sbmqty:["Macro","\\smqty[#1]",1],svmqty:["Macro","\\smqty|#1|",1],matrixdeterminant:["Macro","\\vmqty{#1}",1],mdet:["Macro","\\vmqty{#1}",1],smdet:["Macro","\\svmqty{#1}",1],identitymatrix:"IdentityMatrix",imat:"IdentityMatrix",xmatrix:"XMatrix",xmat:"XMatrix",zeromatrix:["Macro","\\xmat{0}{#1}{#2}",2],zmat:["Macro","\\xmat{0}{#1}{#2}",2],paulimatrix:"PauliMatrix",pmat:"PauliMatrix",diagonalmatrix:"DiagonalMatrix",dmat:"DiagonalMatrix",antidiagonalmatrix:["DiagonalMatrix",true],admat:["DiagonalMatrix",true]},o.default);new n.EnvironmentMap("Physics-aux-envs",s.default.environment,{smallmatrix:["Array",null,null,null,"c","0.333em",".2em","S",1]},o.default);new n.MacroMap("Physics-characters",{"|":["AutoClose",l.TEXCLASS.ORD],")":"AutoClose","]":"AutoClose"},o.default)},66052:function(e,t,r){var a=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,o=[],i;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(i)throw i.error}}return o};var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var o=n(r(38364));var i=n(r(75845));var s=n(r(98770));var l=r(80747);var u=n(r(6980));var c=n(r(72691));var f=r(55361);var d={};var p={"(":")","[":"]","{":"}","|":"|"};var m=/^(b|B)i(g{1,2})$/;d.Quantity=function(e,t,r,a,n,o,f){if(r===void 0){r="("}if(a===void 0){a=")"}if(n===void 0){n=false}if(o===void 0){o=""}if(f===void 0){f=""}var d=n?e.GetStar():false;var h=e.GetNext();var v=e.i;var g=null;if(h==="\\"){e.i++;g=e.GetCS();if(!g.match(m)){var y=e.create("node","mrow");e.Push(u.default.fenced(e.configuration,r,y,a));e.i=v;return}h=e.GetNext()}var b=p[h];if(n&&h!=="{"){throw new s.default("MissingArgFor","Missing argument for %1",e.currentCS)}if(!b){var y=e.create("node","mrow");e.Push(u.default.fenced(e.configuration,r,y,a));e.i=v;return}if(o){var x=e.create("token","mi",{texClass:l.TEXCLASS.OP},o);if(f){c.default.setAttribute(x,"mathvariant",f)}e.Push(e.itemFactory.create("fn",x))}if(h==="{"){var _=e.GetArgument(t);h=n?r:"\\{";b=n?a:"\\}";_=d?h+" "+_+" "+b:g?"\\"+g+"l"+h+" "+_+" "+"\\"+g+"r"+b:"\\left"+h+" "+_+" "+"\\right"+b;e.Push(new i.default(_,e.stack.env,e.configuration).mml());return}if(n){h=r;b=a}e.i++;e.Push(e.itemFactory.create("auto open").setProperties({open:h,close:b,big:g}))};d.Eval=function(e,t){var r=e.GetStar();var a=e.GetNext();if(a==="{"){var n=e.GetArgument(t);var o="\\left. "+(r?"\\smash{"+n+"}":n)+" "+"\\vphantom{\\int}\\right|";e.string=e.string.slice(0,e.i)+o+e.string.slice(e.i);return}if(a==="("||a==="["){e.i++;e.Push(e.itemFactory.create("auto open").setProperties({open:a,close:"|",smash:r,right:"\\vphantom{\\int}"}));return}throw new s.default("MissingArgFor","Missing argument for %1",e.currentCS)};d.Commutator=function(e,t,r,a){if(r===void 0){r="["}if(a===void 0){a="]"}var n=e.GetStar();var o=e.GetNext();var l=null;if(o==="\\"){e.i++;l=e.GetCS();if(!l.match(m)){throw new s.default("MissingArgFor","Missing argument for %1",e.currentCS)}o=e.GetNext()}if(o!=="{"){throw new s.default("MissingArgFor","Missing argument for %1",e.currentCS)}var u=e.GetArgument(t);var c=e.GetArgument(t);var f=u+","+c;f=n?r+" "+f+" "+a:l?"\\"+l+"l"+r+" "+f+" "+"\\"+l+"r"+a:"\\left"+r+" "+f+" "+"\\right"+a;e.Push(new i.default(f,e.stack.env,e.configuration).mml())};var h=[65,90];var v=[97,122];var g=[913,937];var y=[945,969];var b=[48,57];function x(e,t){return e>=t[0]&&e<=t[1]}function _(e,t,r,a){var n=e.configuration.parser;var o=f.NodeFactory.createToken(e,t,r,a);var i=a.codePointAt(0);if(a.length===1&&!n.stack.env.font&&n.stack.env.vectorFont&&(x(i,h)||x(i,v)||x(i,g)||x(i,b)||x(i,y)&&n.stack.env.vectorStar||c.default.getAttribute(o,"accent"))){c.default.setAttribute(o,"mathvariant",n.stack.env.vectorFont)}return o}d.VectorBold=function(e,t){var r=e.GetStar();var a=e.GetArgument(t);var n=e.configuration.nodeFactory.get("token");var o=e.stack.env.font;delete e.stack.env.font;e.configuration.nodeFactory.set("token",_);e.stack.env.vectorFont=r?"bold-italic":"bold";e.stack.env.vectorStar=r;var s=new i.default(a,e.stack.env,e.configuration).mml();if(o){e.stack.env.font=o}delete e.stack.env.vectorFont;delete e.stack.env.vectorStar;e.configuration.nodeFactory.set("token",n);e.Push(s)};d.StarMacro=function(e,t,r){var a=[];for(var n=3;n2&&l.length>2){c="^{"+(l.length-1)+"}";u=true}else if(o!=null){if(r>2&&l.length>1){u=true}c="^{"+o+"}";f=c}var d=n?"\\flatfrac":"\\frac";var p=l.length>1?l[0]:"";var m=l.length>1?l[1]:l[0];var h="";for(var v=2,g=void 0;g=l[v];v++){h+=a+" "+g}var y=d+"{"+a+c+p+"}"+"{"+a+" "+m+f+" "+h+"}";e.Push(new i.default(y,e.stack.env,e.configuration).mml());if(e.GetNext()==="("){e.i++;e.Push(e.itemFactory.create("auto open").setProperties({open:"(",close:")",ignore:u}))}};d.Bra=function(e,t){var r=e.GetStar();var a=e.GetArgument(t);var n="";var o=false;var s=false;if(e.GetNext()==="\\"){var l=e.i;e.i++;var u=e.GetCS();var c=e.lookup("macro",u);if(c&&c.symbol==="ket"){o=true;l=e.i;s=e.GetStar();if(e.GetNext()==="{"){n=e.GetArgument(u,true)}else{e.i=l;s=false}}else{e.i=l}}var f="";if(o){f=r||s?"\\langle{".concat(a,"}\\vert{").concat(n,"}\\rangle"):"\\left\\langle{".concat(a,"}\\middle\\vert{").concat(n,"}\\right\\rangle")}else{f=r||s?"\\langle{".concat(a,"}\\vert"):"\\left\\langle{".concat(a,"}\\right\\vert{").concat(n,"}")}e.Push(new i.default(f,e.stack.env,e.configuration).mml())};d.Ket=function(e,t){var r=e.GetStar();var a=e.GetArgument(t);var n=r?"\\vert{".concat(a,"}\\rangle"):"\\left\\vert{".concat(a,"}\\right\\rangle");e.Push(new i.default(n,e.stack.env,e.configuration).mml())};d.BraKet=function(e,t){var r=e.GetStar();var a=e.GetArgument(t);var n=null;if(e.GetNext()==="{"){n=e.GetArgument(t,true)}var o="";if(n==null){o=r?"\\langle{".concat(a,"}\\vert{").concat(a,"}\\rangle"):"\\left\\langle{".concat(a,"}\\middle\\vert{").concat(a,"}\\right\\rangle")}else{o=r?"\\langle{".concat(a,"}\\vert{").concat(n,"}\\rangle"):"\\left\\langle{".concat(a,"}\\middle\\vert{").concat(n,"}\\right\\rangle")}e.Push(new i.default(o,e.stack.env,e.configuration).mml())};d.KetBra=function(e,t){var r=e.GetStar();var a=e.GetArgument(t);var n=null;if(e.GetNext()==="{"){n=e.GetArgument(t,true)}var o="";if(n==null){o=r?"\\vert{".concat(a,"}\\rangle\\!\\langle{").concat(a,"}\\vert"):"\\left\\vert{".concat(a,"}\\middle\\rangle\\!\\middle\\langle{").concat(a,"}\\right\\vert")}else{o=r?"\\vert{".concat(a,"}\\rangle\\!\\langle{").concat(n,"}\\vert"):"\\left\\vert{".concat(a,"}\\middle\\rangle\\!\\middle\\langle{").concat(n,"}\\right\\vert")}e.Push(new i.default(o,e.stack.env,e.configuration).mml())};function M(e,t,r){var n=a(e,3),o=n[0],i=n[1],s=n[2];return t&&r?"\\left\\langle{".concat(o,"}\\middle\\vert{").concat(i,"}\\middle\\vert{").concat(s,"}\\right\\rangle"):t?"\\langle{".concat(o,"}\\vert{").concat(i,"}\\vert{").concat(s,"}\\rangle"):"\\left\\langle{".concat(o,"}\\right\\vert{").concat(i,"}\\left\\vert{").concat(s,"}\\right\\rangle")}d.Expectation=function(e,t){var r=e.GetStar();var a=r&&e.GetStar();var n=e.GetArgument(t);var o=null;if(e.GetNext()==="{"){o=e.GetArgument(t,true)}var s=n&&o?M([o,n,o],r,a):r?"\\langle {".concat(n,"} \\rangle"):"\\left\\langle {".concat(n,"} \\right\\rangle");e.Push(new i.default(s,e.stack.env,e.configuration).mml())};d.MatrixElement=function(e,t){var r=e.GetStar();var a=r&&e.GetStar();var n=e.GetArgument(t);var o=e.GetArgument(t);var s=e.GetArgument(t);var l=M([n,o,s],r,a);e.Push(new i.default(l,e.stack.env,e.configuration).mml())};d.MatrixQuantity=function(e,t,r){var a=e.GetStar();var n=e.GetNext();var o=r?"smallmatrix":"array";var s="";var l="";var u="";switch(n){case"{":s=e.GetArgument(t);break;case"(":e.i++;l=a?"\\lgroup":"(";u=a?"\\rgroup":")";s=e.GetUpTo(t,")");break;case"[":e.i++;l="[";u="]";s=e.GetUpTo(t,"]");break;case"|":e.i++;l="|";u="|";s=e.GetUpTo(t,"|");break;default:l="(";u=")";break}var c=(l?"\\left":"")+l+"\\begin{"+o+"}{} "+s+"\\end{"+o+"}"+(l?"\\right":"")+u;e.Push(new i.default(c,e.stack.env,e.configuration).mml())};d.IdentityMatrix=function(e,t){var r=e.GetArgument(t);var a=parseInt(r,10);if(isNaN(a)){throw new s.default("InvalidNumber","Invalid number")}if(a<=1){e.string="1"+e.string.slice(e.i);e.i=0;return}var n=Array(a).fill("0");var o=[];for(var i=0;i=n){o.push(e.string.slice(s,n));break}s=e.i;o.push(i)}e.string=A(o,r)+e.string.slice(n);e.i=0};function A(e,t){var r=e.length;var a=[];for(var n=0;n=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.SetOptionsConfiguration=t.SetOptionsUtil=void 0;var o=r(56441);var i=r(80209);var s=n(r(98770));var l=n(r(6980));var u=r(27151);var c=n(r(38364));var f=r(34981);t.SetOptionsUtil={filterPackage:function(e,t){if(t!=="tex"&&!o.ConfigurationHandler.get(t)){throw new s.default("NotAPackage","Not a defined package: %1",t)}var r=e.options.setoptions;var a=r.allowOptions[t];if(a===undefined&&!r.allowPackageDefault||a===false){throw new s.default("PackageNotSettable",'Options can\'t be set for package "%1"',t)}return true},filterOption:function(e,t,r){var a;var n=e.options.setoptions;var o=n.allowOptions[t]||{};var i=o.hasOwnProperty(r)&&!(0,f.isObject)(o[r])?o[r]:null;if(i===false||i===null&&!n.allowOptionsDefault){throw new s.default("OptionNotSettable",'Option "%1" is not allowed to be set',r)}if(!((a=t==="tex"?e.options:e.options[t])===null||a===void 0?void 0:a.hasOwnProperty(r))){if(t==="tex"){throw new s.default("InvalidTexOption",'Invalid TeX option "%1"',r)}else{throw new s.default("InvalidOptionKey",'Invalid option "%1" for package "%2"',r,t)}}return true},filterValue:function(e,t,r,a){return a}};var d=new i.CommandMap("setoptions",{setOptions:"SetOptions"},{SetOptions:function(e,t){var r,n;var o=e.GetBrackets(t)||"tex";var i=l.default.keyvalOptions(e.GetArgument(t));var s=e.options.setoptions;if(!s.filterPackage(e,o))return;try{for(var u=a(Object.keys(i)),c=u.next();!c.done;c=u.next()){var f=c.value;if(s.filterOption(e,o,f)){(o==="tex"?e.options:e.options[o])[f]=s.filterValue(e,o,f,i[f])}}}catch(d){r={error:d}}finally{try{if(c&&!c.done&&(n=u.return))n.call(u)}finally{if(r)throw r.error}}}});function p(e,t){var r=t.parseOptions.handlers.get("macro").lookup("require");if(r){d.add("Require",new u.Macro("Require",r._func));d.add("require",new u.Macro("require",c.default.Macro,["\\Require{#2}\\setOptions[#2]{#1}",2,""]))}}t.SetOptionsConfiguration=o.Configuration.create("setoptions",{handler:{macro:["setoptions"]},config:p,priority:3,options:{setoptions:{filterPackage:t.SetOptionsUtil.filterPackage,filterOption:t.SetOptionsUtil.filterOption,filterValue:t.SetOptionsUtil.filterValue,allowPackageDefault:true,allowOptionsDefault:true,allowOptions:(0,f.expandable)({tex:{FindTeX:false,formatError:false,package:false,baseURL:false,tags:false,maxBuffer:false,maxMaxros:false,macros:false,environments:false},setoptions:false,autoload:false,require:false,configmacros:false,tagformat:false})}}})},18560:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();Object.defineProperty(t,"__esModule",{value:true});t.TagFormatConfiguration=t.tagformatConfig=void 0;var n=r(56441);var o=r(17782);var i=0;function s(e,t){var r=t.parseOptions.options.tags;if(r!=="base"&&e.tags.hasOwnProperty(r)){o.TagsFactory.add(r,e.tags[r])}var n=o.TagsFactory.create(t.parseOptions.options.tags).constructor;var s=function(e){a(r,e);function r(){return e!==null&&e.apply(this,arguments)||this}r.prototype.formatNumber=function(e){return t.parseOptions.options.tagformat.number(e)};r.prototype.formatTag=function(e){return t.parseOptions.options.tagformat.tag(e)};r.prototype.formatId=function(e){return t.parseOptions.options.tagformat.id(e)};r.prototype.formatUrl=function(e,r){return t.parseOptions.options.tagformat.url(e,r)};return r}(n);i++;var l="configTags-"+i;o.TagsFactory.add(l,s);t.parseOptions.options.tags=l}t.tagformatConfig=s;t.TagFormatConfiguration=n.Configuration.create("tagformat",{config:[s,10],options:{tagformat:{number:function(e){return e.toString()},tag:function(e){return"("+e+")"},id:function(e){return"mjx-eqn:"+e.replace(/\s/g,"_")},url:function(e,t){return t+"#"+encodeURIComponent(e)}}}})},46370:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.TextcompConfiguration=void 0;var a=r(56441);r(47173);t.TextcompConfiguration=a.Configuration.create("textcomp",{handler:{macro:["textcomp-macros"]}})},47173:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=r(80209);var o=r(80469);var i=r(56774);var s=a(r(6980));var l=r(53880);new n.CommandMap("textcomp-macros",{textasciicircum:["Insert","^"],textasciitilde:["Insert","~"],textasteriskcentered:["Insert","*"],textbackslash:["Insert","\\"],textbar:["Insert","|"],textbraceleft:["Insert","{"],textbraceright:["Insert","}"],textbullet:["Insert","•"],textdagger:["Insert","†"],textdaggerdbl:["Insert","‡"],textellipsis:["Insert","…"],textemdash:["Insert","—"],textendash:["Insert","–"],textexclamdown:["Insert","¡"],textgreater:["Insert",">"],textless:["Insert","<"],textordfeminine:["Insert","ª"],textordmasculine:["Insert","º"],textparagraph:["Insert","¶"],textperiodcentered:["Insert","·"],textquestiondown:["Insert","¿"],textquotedblleft:["Insert","“"],textquotedblright:["Insert","”"],textquoteleft:["Insert","‘"],textquoteright:["Insert","’"],textsection:["Insert","§"],textunderscore:["Insert","_"],textvisiblespace:["Insert","␣"],textacutedbl:["Insert","˝"],textasciiacute:["Insert","´"],textasciibreve:["Insert","˘"],textasciicaron:["Insert","ˇ"],textasciidieresis:["Insert","¨"],textasciimacron:["Insert","¯"],textgravedbl:["Insert","˵"],texttildelow:["Insert","˷"],textbaht:["Insert","฿"],textcent:["Insert","¢"],textcolonmonetary:["Insert","₡"],textcurrency:["Insert","¤"],textdollar:["Insert","$"],textdong:["Insert","₫"],texteuro:["Insert","€"],textflorin:["Insert","ƒ"],textguarani:["Insert","₲"],textlira:["Insert","₤"],textnaira:["Insert","₦"],textpeso:["Insert","₱"],textsterling:["Insert","£"],textwon:["Insert","₩"],textyen:["Insert","¥"],textcircledP:["Insert","℗"],textcompwordmark:["Insert","‌"],textcopyleft:["Insert","🄯"],textcopyright:["Insert","©"],textregistered:["Insert","®"],textservicemark:["Insert","℠"],texttrademark:["Insert","™"],textbardbl:["Insert","‖"],textbigcircle:["Insert","◯"],textblank:["Insert","␢"],textbrokenbar:["Insert","¦"],textdiscount:["Insert","⁒"],textestimated:["Insert","℮"],textinterrobang:["Insert","‽"],textinterrobangdown:["Insert","⸘"],textmusicalnote:["Insert","♪"],textnumero:["Insert","№"],textopenbullet:["Insert","◦"],textpertenthousand:["Insert","‱"],textperthousand:["Insert","‰"],textrecipe:["Insert","℞"],textreferencemark:["Insert","※"],textlangle:["Insert","〈"],textrangle:["Insert","〉"],textlbrackdbl:["Insert","⟦"],textrbrackdbl:["Insert","⟧"],textlquill:["Insert","⁅"],textrquill:["Insert","⁆"],textcelsius:["Insert","℃"],textdegree:["Insert","°"],textdiv:["Insert","÷"],textdownarrow:["Insert","↓"],textfractionsolidus:["Insert","⁄"],textleftarrow:["Insert","←"],textlnot:["Insert","¬"],textmho:["Insert","℧"],textminus:["Insert","−"],textmu:["Insert","µ"],textohm:["Insert","Ω"],textonehalf:["Insert","½"],textonequarter:["Insert","¼"],textonesuperior:["Insert","¹"],textpm:["Insert","±"],textrightarrow:["Insert","→"],textsurd:["Insert","√"],textthreequarters:["Insert","¾"],textthreesuperior:["Insert","³"],texttimes:["Insert","×"],texttwosuperior:["Insert","²"],textuparrow:["Insert","↑"],textborn:["Insert","*"],textdied:["Insert","†"],textdivorced:["Insert","⚮"],textmarried:["Insert","⚭"],textcentoldstyle:["Insert","¢",o.TexConstant.Variant.OLDSTYLE],textdollaroldstyle:["Insert","$",o.TexConstant.Variant.OLDSTYLE],textzerooldstyle:["Insert","0",o.TexConstant.Variant.OLDSTYLE],textoneoldstyle:["Insert","1",o.TexConstant.Variant.OLDSTYLE],texttwooldstyle:["Insert","2",o.TexConstant.Variant.OLDSTYLE],textthreeoldstyle:["Insert","3",o.TexConstant.Variant.OLDSTYLE],textfouroldstyle:["Insert","4",o.TexConstant.Variant.OLDSTYLE],textfiveoldstyle:["Insert","5",o.TexConstant.Variant.OLDSTYLE],textsixoldstyle:["Insert","6",o.TexConstant.Variant.OLDSTYLE],textsevenoldstyle:["Insert","7",o.TexConstant.Variant.OLDSTYLE],texteightoldstyle:["Insert","8",o.TexConstant.Variant.OLDSTYLE],textnineoldstyle:["Insert","9",o.TexConstant.Variant.OLDSTYLE]},{Insert:function(e,t,r,a){if(e instanceof l.TextParser){if(!a){i.TextMacrosMethods.Insert(e,t,r);return}e.saveText()}e.Push(s.default.internalText(e,r,a?{mathvariant:a}:{}))}})},29302:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var n;Object.defineProperty(t,"__esModule",{value:true});t.TextMacrosConfiguration=t.TextBaseConfiguration=void 0;var o=r(56441);var i=a(r(24404));var s=r(17782);var l=r(94650);var u=r(53880);var c=r(56774);r(5705);t.TextBaseConfiguration=o.Configuration.create("text-base",{parser:"text",handler:{character:["command","text-special"],macro:["text-macros"]},fallback:{character:function(e,t){e.text+=t},macro:function(e,t){var r=e.texParser;var a=r.lookup("macro",t);if(a&&a._func!==c.TextMacrosMethods.Macro){e.Error("MathMacro","%1 is only supported in math mode","\\"+t)}r.parse("macro",[e,t])}},items:(n={},n[l.StartItem.prototype.kind]=l.StartItem,n[l.StopItem.prototype.kind]=l.StopItem,n[l.MmlItem.prototype.kind]=l.MmlItem,n[l.StyleItem.prototype.kind]=l.StyleItem,n)});function f(e,t,r,a){var n=e.configuration.packageData.get("textmacros");if(!(e instanceof u.TextParser)){n.texParser=e}return[new u.TextParser(t,a?{mathvariant:a}:{},n.parseOptions,r).mml()]}t.TextMacrosConfiguration=o.Configuration.create("textmacros",{config:function(e,t){var r=new o.ParserConfiguration(t.parseOptions.options.textmacros.packages,["tex","text"]);r.init();var a=new i.default(r,[]);a.options=t.parseOptions.options;r.config(t);s.TagsFactory.addTags(r.tags);a.tags=s.TagsFactory.getDefault();a.tags.configuration=a;a.packageData=t.parseOptions.packageData;a.packageData.set("textmacros",{parseOptions:a,jax:t,texParser:null});a.options.internalMath=f},preprocessors:[function(e){var t=e.data.packageData.get("textmacros");t.parseOptions.nodeFactory.setMmlFactory(t.jax.mmlFactory)}],options:{textmacros:{packages:["text-base"]}}})},5705:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});var a=r(80209);var n=r(80469);var o=r(56774);var i=r(86810);new a.MacroMap("text-special",{$:"Math","%":"Comment","^":"MathModeOnly",_:"MathModeOnly","&":"Misplaced","#":"Misplaced","~":"Tilde"," ":"Space","\t":"Space","\r":"Space","\n":"Space"," ":"Tilde","{":"OpenBrace","}":"CloseBrace","`":"OpenQuote","'":"CloseQuote"},o.TextMacrosMethods);new a.CommandMap("text-macros",{"(":"Math",$:"SelfQuote",_:"SelfQuote","%":"SelfQuote","{":"SelfQuote","}":"SelfQuote"," ":"SelfQuote","&":"SelfQuote","#":"SelfQuote","\\":"SelfQuote","'":["Accent","´"],"’":["Accent","´"],"`":["Accent","`"],"‘":["Accent","`"],"^":["Accent","^"],'"':["Accent","¨"],"~":["Accent","~"],"=":["Accent","¯"],".":["Accent","˙"],u:["Accent","˘"],v:["Accent","ˇ"],emph:"Emph",rm:["SetFont",n.TexConstant.Variant.NORMAL],mit:["SetFont",n.TexConstant.Variant.ITALIC],oldstyle:["SetFont",n.TexConstant.Variant.OLDSTYLE],cal:["SetFont",n.TexConstant.Variant.CALLIGRAPHIC],it:["SetFont","-tex-mathit"],bf:["SetFont",n.TexConstant.Variant.BOLD],bbFont:["SetFont",n.TexConstant.Variant.DOUBLESTRUCK],scr:["SetFont",n.TexConstant.Variant.SCRIPT],frak:["SetFont",n.TexConstant.Variant.FRAKTUR],sf:["SetFont",n.TexConstant.Variant.SANSSERIF],tt:["SetFont",n.TexConstant.Variant.MONOSPACE],tiny:["SetSize",.5],Tiny:["SetSize",.6],scriptsize:["SetSize",.7],small:["SetSize",.85],normalsize:["SetSize",1],large:["SetSize",1.2],Large:["SetSize",1.44],LARGE:["SetSize",1.73],huge:["SetSize",2.07],Huge:["SetSize",2.49],Bbb:["Macro","{\\bbFont #1}",1],textnormal:["Macro","{\\rm #1}",1],textup:["Macro","{\\rm #1}",1],textrm:["Macro","{\\rm #1}",1],textit:["Macro","{\\it #1}",1],textbf:["Macro","{\\bf #1}",1],textsf:["Macro","{\\sf #1}",1],texttt:["Macro","{\\tt #1}",1],dagger:["Insert","†"],ddagger:["Insert","‡"],S:["Insert","§"],",":["Spacer",i.MATHSPACE.thinmathspace],":":["Spacer",i.MATHSPACE.mediummathspace],">":["Spacer",i.MATHSPACE.mediummathspace],";":["Spacer",i.MATHSPACE.thickmathspace],"!":["Spacer",i.MATHSPACE.negativethinmathspace],enspace:["Spacer",.5],quad:["Spacer",1],qquad:["Spacer",2],thinspace:["Spacer",i.MATHSPACE.thinmathspace],negthinspace:["Spacer",i.MATHSPACE.negativethinmathspace],hskip:"Hskip",hspace:"Hskip",kern:"Hskip",mskip:"Hskip",mspace:"Hskip",mkern:"Hskip",rule:"rule",Rule:["Rule"],Space:["Rule","blank"],color:"CheckAutoload",textcolor:"CheckAutoload",colorbox:"CheckAutoload",fcolorbox:"CheckAutoload",href:"CheckAutoload",style:"CheckAutoload",class:"CheckAutoload",cssId:"CheckAutoload",unicode:"CheckAutoload",ref:["HandleRef",false],eqref:["HandleRef",true]},o.TextMacrosMethods)},56774:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.TextMacrosMethods=void 0;var n=a(r(75845));var o=r(9841);var i=a(r(38364));t.TextMacrosMethods={Comment:function(e,t){while(e.i=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,o=[],i;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(i)throw i.error}}return o};var i=this&&this.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var a=0,n=t.length,o;a{Object.defineProperty(t,"__esModule",{value:true});t.UpgreekConfiguration=void 0;var a=r(56441);var n=r(80209);var o=r(80469);function i(e,t){var r=t.attributes||{};r.mathvariant=o.TexConstant.Variant.NORMAL;var a=e.create("token","mi",r,t.char);e.Push(a)}new n.CharacterMap("upgreek",i,{upalpha:"α",upbeta:"β",upgamma:"γ",updelta:"δ",upepsilon:"ϵ",upzeta:"ζ",upeta:"η",uptheta:"θ",upiota:"ι",upkappa:"κ",uplambda:"λ",upmu:"μ",upnu:"ν",upxi:"ξ",upomicron:"ο",uppi:"π",uprho:"ρ",upsigma:"σ",uptau:"τ",upupsilon:"υ",upphi:"ϕ",upchi:"χ",uppsi:"ψ",upomega:"ω",upvarepsilon:"ε",upvartheta:"ϑ",upvarpi:"ϖ",upvarrho:"ϱ",upvarsigma:"ς",upvarphi:"φ",Upgamma:"Γ",Updelta:"Δ",Uptheta:"Θ",Uplambda:"Λ",Upxi:"Ξ",Uppi:"Π",Upsigma:"Σ",Upupsilon:"Υ",Upphi:"Φ",Uppsi:"Ψ",Upomega:"Ω"});t.UpgreekConfiguration=a.Configuration.create("upgreek",{handler:{macro:["upgreek"]}})},22232:function(e,t,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.VerbConfiguration=t.VerbMethods=void 0;var n=r(56441);var o=r(80469);var i=r(80209);var s=a(r(98770));t.VerbMethods={};t.VerbMethods.Verb=function(e,t){var r=e.GetNext();var a=++e.i;if(r===""){throw new s.default("MissingArgFor","Missing argument for %1",t)}while(e.i{Object.defineProperty(t,"__esModule",{value:true});t.mhchemParser=void 0;var r=function(){function e(){}e.toTex=function(e,t){return o.go(n.go(e,t),t!=="tex")};return e}();t.mhchemParser=r;function a(e){var t,r;var a={};for(t in e){for(r in e[t]){var n=r.split("|");e[t][r].stateArray=n;for(var o=0;o0){if(!d.revisit){e=f.remainder}if(!d.toContinue){break e}}else{return s}}}if(i<=0){throw["MhchemBugU","mhchem bug U. Please report."]}}},concatArray:function(e,t){if(t){if(Array.isArray(t)){for(var r=0;r":/^[=<>]/,"#":/^[#\u2261]/,"+":/^\+/,"-$":/^-(?=[\s_},;\]/]|$|\([a-z]+\))/,"-9":/^-(?=[0-9])/,"- orbital overlap":/^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/,"-":/^-/,"pm-operator":/^(?:\\pm|\$\\pm\$|\+-|\+\/-)/,operator:/^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/,arrowUpDown:/^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/,"\\bond{(...)}":function(e){return n.patterns.findObserveGroups(e,"\\bond{","","","}")},"->":/^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/,CMT:/^[CMT](?=\[)/,"[(...)]":function(e){return n.patterns.findObserveGroups(e,"[","","","]")},"1st-level escape":/^(&|\\\\|\\hline)\s*/,"\\,":/^(?:\\[,\ ;:])/,"\\x{}{}":function(e){return n.patterns.findObserveGroups(e,"",/^\\[a-zA-Z]+\{/,"}","","","{","}","",true)},"\\x{}":function(e){return n.patterns.findObserveGroups(e,"",/^\\[a-zA-Z]+\{/,"}","")},"\\ca":/^\\ca(?:\s+|(?![a-zA-Z]))/,"\\x":/^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/,orbital:/^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,others:/^[\/~|]/,"\\frac{(...)}":function(e){return n.patterns.findObserveGroups(e,"\\frac{","","","}","{","","","}")},"\\overset{(...)}":function(e){return n.patterns.findObserveGroups(e,"\\overset{","","","}","{","","","}")},"\\underset{(...)}":function(e){return n.patterns.findObserveGroups(e,"\\underset{","","","}","{","","","}")},"\\underbrace{(...)}":function(e){return n.patterns.findObserveGroups(e,"\\underbrace{","","","}_","{","","","}")},"\\color{(...)}":function(e){return n.patterns.findObserveGroups(e,"\\color{","","","}")},"\\color{(...)}{(...)}":function(e){return n.patterns.findObserveGroups(e,"\\color{","","","}","{","","","}")||n.patterns.findObserveGroups(e,"\\color","\\","",/^(?=\{)/,"{","","","}")},"\\ce{(...)}":function(e){return n.patterns.findObserveGroups(e,"\\ce{","","","}")},"\\pu{(...)}":function(e){return n.patterns.findObserveGroups(e,"\\pu{","","","}")},oxidation$:/^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"d-oxidation$":/^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"roman numeral":/^[IVX]+/,"1/2$":/^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/,amount:function(e){var t;t=e.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/);if(t){return{match_:t[0],remainder:e.substr(t[0].length)}}var r=n.patterns.findObserveGroups(e,"","$","$","");if(r){t=r.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/);if(t){return{match_:t[0],remainder:e.substr(t[0].length)}}}return null},amount2:function(e){return this["amount"](e)},"(KV letters),":/^(?:[A-Z][a-z]{0,2}|i)(?=,)/,formula$:function(e){if(e.match(/^\([a-z]+\)$/)){return null}var t=e.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/);if(t){return{match_:t[0],remainder:e.substr(t[0].length)}}return null},uprightEntities:/^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,"/":/^\s*(\/)\s*/,"//":/^\s*(\/\/)\s*/,"*":/^\s*[*.]\s*/},findObserveGroups:function(e,t,r,a,n,o,i,s,l,u){var c=function(e,t){if(typeof t==="string"){if(e.indexOf(t)!==0){return null}return t}else{var r=e.match(t);if(!r){return null}return r[0]}};var f=function(e,t,r){var a=0;while(t0){return null}return null};var d=c(e,t);if(d===null){return null}e=e.substr(d.length);d=c(e,r);if(d===null){return null}var p=f(e,d.length,a||n);if(p===null){return null}var m=e.substring(0,a?p.endMatchEnd:p.endMatchBegin);if(!(o||i)){return{match_:m,remainder:e.substr(p.endMatchEnd)}}else{var h=this.findObserveGroups(e.substr(p.endMatchEnd),o,i,s,l);if(h===null){return null}var v=[m,h.match_];return{match_:u?v.join(""):v,remainder:h.remainder}}},match_:function(e,t){var r=n.patterns.patterns[e];if(r===undefined){throw["MhchemBugP","mhchem bug P. Please report. ("+e+")"]}else if(typeof r==="function"){return n.patterns.patterns[e](t)}else{var a=t.match(r);if(a){if(a.length>2){return{match_:a.slice(1),remainder:t.substr(a[0].length)}}else{return{match_:a[1]||a[0],remainder:t.substr(a[0].length)}}}return null}}},actions:{"a=":function(e,t){e.a=(e.a||"")+t;return undefined},"b=":function(e,t){e.b=(e.b||"")+t;return undefined},"p=":function(e,t){e.p=(e.p||"")+t;return undefined},"o=":function(e,t){e.o=(e.o||"")+t;return undefined},"q=":function(e,t){e.q=(e.q||"")+t;return undefined},"d=":function(e,t){e.d=(e.d||"")+t;return undefined},"rm=":function(e,t){e.rm=(e.rm||"")+t;return undefined},"text=":function(e,t){e.text_=(e.text_||"")+t;return undefined},insert:function(e,t,r){return{type_:r}},"insert+p1":function(e,t,r){return{type_:r,p1:t}},"insert+p1+p2":function(e,t,r){return{type_:r,p1:t[0],p2:t[1]}},copy:function(e,t){return t},write:function(e,t,r){return r},rm:function(e,t){return{type_:"rm",p1:t}},text:function(e,t){return n.go(t,"text")},"tex-math":function(e,t){return n.go(t,"tex-math")},"tex-math tight":function(e,t){return n.go(t,"tex-math tight")},bond:function(e,t,r){return{type_:"bond",kind_:r||t}},"color0-output":function(e,t){return{type_:"color0",color:t}},ce:function(e,t){return n.go(t,"ce")},pu:function(e,t){return n.go(t,"pu")},"1/2":function(e,t){var r=[];if(t.match(/^[+\-]/)){r.push(t.substr(0,1));t=t.substr(1)}var a=t.match(/^([0-9]+|\$[a-z]\$|[a-z])\/([0-9]+)(\$[a-z]\$|[a-z])?$/);a[1]=a[1].replace(/\$/g,"");r.push({type_:"frac",p1:a[1],p2:a[2]});if(a[3]){a[3]=a[3].replace(/\$/g,"");r.push({type_:"tex-math",p1:a[3]})}return r},"9,9":function(e,t){return n.go(t,"9,9")}},stateMachines:{tex:{transitions:a({empty:{0:{action_:"copy"}},"\\ce{(...)}":{0:{action_:[{type_:"write",option:"{"},"ce",{type_:"write",option:"}"}]}},"\\pu{(...)}":{0:{action_:[{type_:"write",option:"{"},"pu",{type_:"write",option:"}"}]}},else:{0:{action_:"copy"}}}),actions:{}},ce:{transitions:a({empty:{"*":{action_:"output"}},else:{"0|1|2":{action_:"beginsWithBond=false",revisit:true,toContinue:true}},oxidation$:{0:{action_:"oxidation-output"}},CMT:{r:{action_:"rdt=",nextState:"rt"},rd:{action_:"rqt=",nextState:"rdt"}},arrowUpDown:{"0|1|2|as":{action_:["sb=false","output","operator"],nextState:"1"}},uprightEntities:{"0|1|2":{action_:["o=","output"],nextState:"1"}},orbital:{"0|1|2|3":{action_:"o=",nextState:"o"}},"->":{"0|1|2|3":{action_:"r=",nextState:"r"},"a|as":{action_:["output","r="],nextState:"r"},"*":{action_:["output","r="],nextState:"r"}},"+":{o:{action_:"d= kv",nextState:"d"},"d|D":{action_:"d=",nextState:"d"},q:{action_:"d=",nextState:"qd"},"qd|qD":{action_:"d=",nextState:"qd"},dq:{action_:["output","d="],nextState:"d"},3:{action_:["sb=false","output","operator"],nextState:"0"}},amount:{"0|2":{action_:"a=",nextState:"a"}},"pm-operator":{"0|1|2|a|as":{action_:["sb=false","output",{type_:"operator",option:"\\pm"}],nextState:"0"}},operator:{"0|1|2|a|as":{action_:["sb=false","output","operator"],nextState:"0"}},"-$":{"o|q":{action_:["charge or bond","output"],nextState:"qd"},d:{action_:"d=",nextState:"d"},D:{action_:["output",{type_:"bond",option:"-"}],nextState:"3"},q:{action_:"d=",nextState:"qd"},qd:{action_:"d=",nextState:"qd"},"qD|dq":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},"-9":{"3|o":{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"3"}},"- orbital overlap":{o:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},d:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"}},"-":{"0|1|2":{action_:[{type_:"output",option:1},"beginsWithBond=true",{type_:"bond",option:"-"}],nextState:"3"},3:{action_:{type_:"bond",option:"-"}},a:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},as:{action_:[{type_:"output",option:2},{type_:"bond",option:"-"}],nextState:"3"},b:{action_:"b="},o:{action_:{type_:"- after o/d",option:false},nextState:"2"},q:{action_:{type_:"- after o/d",option:false},nextState:"2"},"d|qd|dq":{action_:{type_:"- after o/d",option:true},nextState:"2"},"D|qD|p":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},amount2:{"1|3":{action_:"a=",nextState:"a"}},letters:{"0|1|2|3|a|as|b|p|bp|o":{action_:"o=",nextState:"o"},"q|dq":{action_:["output","o="],nextState:"o"},"d|D|qd|qD":{action_:"o after d",nextState:"o"}},digits:{o:{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},q:{action_:["output","o="],nextState:"o"},a:{action_:"o=",nextState:"o"}},"space A":{"b|p|bp":{action_:[]}},space:{a:{action_:[],nextState:"as"},0:{action_:"sb=false"},"1|2":{action_:"sb=true"},"r|rt|rd|rdt|rdq":{action_:"output",nextState:"0"},"*":{action_:["output","sb=true"],nextState:"1"}},"1st-level escape":{"1|2":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}]},"*":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}],nextState:"0"}},"[(...)]":{"r|rt":{action_:"rd=",nextState:"rd"},"rd|rdt":{action_:"rq=",nextState:"rdq"}},"...":{"o|d|D|dq|qd|qD":{action_:["output",{type_:"bond",option:"..."}],nextState:"3"},"*":{action_:[{type_:"output",option:1},{type_:"insert",option:"ellipsis"}],nextState:"1"}},". __* ":{"*":{action_:["output",{type_:"insert",option:"addition compound"}],nextState:"1"}},"state of aggregation $":{"*":{action_:["output","state of aggregation"],nextState:"1"}},"{[(":{"a|as|o":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"0|1|2|3":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"*":{action_:["output","o=","output","parenthesisLevel++"],nextState:"2"}},")]}":{"0|1|2|3|b|p|bp|o":{action_:["o=","parenthesisLevel--"],nextState:"o"},"a|as|d|D|q|qd|qD|dq":{action_:["output","o=","parenthesisLevel--"],nextState:"o"}},", ":{"*":{action_:["output","comma"],nextState:"0"}},"^_":{"*":{action_:[]}},"^{(...)}|^($...$)":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"D"},q:{action_:"d=",nextState:"qD"},"d|D|qd|qD|dq":{action_:["output","d="],nextState:"D"}},"^a|^\\x{}{}|^\\x{}|^\\x|'":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"d"},q:{action_:"d=",nextState:"qd"},"d|qd|D|qD":{action_:"d="},dq:{action_:["output","d="],nextState:"d"}},"_{(state of aggregation)}$":{"d|D|q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x":{"0|1|2|as":{action_:"p=",nextState:"p"},b:{action_:"p=",nextState:"bp"},"3|o":{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},"q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"=<>":{"0|1|2|3|a|as|o|q|d|D|qd|qD|dq":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"#":{"0|1|2|3|a|as|o":{action_:[{type_:"output",option:2},{type_:"bond",option:"#"}],nextState:"3"}},"{}^":{"*":{action_:[{type_:"output",option:1},{type_:"insert",option:"tinySkip"}],nextState:"1"}},"{}":{"*":{action_:{type_:"output",option:1},nextState:"1"}},"{...}":{"0|1|2|3|a|as|b|p|bp":{action_:"o=",nextState:"o"},"o|d|D|q|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"$...$":{a:{action_:"a="},"0|1|2|3|as|b|p|bp|o":{action_:"o=",nextState:"o"},"as|o":{action_:"o="},"q|d|D|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"\\bond{(...)}":{"*":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"\\frac{(...)}":{"*":{action_:[{type_:"output",option:1},"frac-output"],nextState:"3"}},"\\overset{(...)}":{"*":{action_:[{type_:"output",option:2},"overset-output"],nextState:"3"}},"\\underset{(...)}":{"*":{action_:[{type_:"output",option:2},"underset-output"],nextState:"3"}},"\\underbrace{(...)}":{"*":{action_:[{type_:"output",option:2},"underbrace-output"],nextState:"3"}},"\\color{(...)}{(...)}":{"*":{action_:[{type_:"output",option:2},"color-output"],nextState:"3"}},"\\color{(...)}":{"*":{action_:[{type_:"output",option:2},"color0-output"]}},"\\ce{(...)}":{"*":{action_:[{type_:"output",option:2},"ce"],nextState:"3"}},"\\,":{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"1"}},"\\pu{(...)}":{"*":{action_:["output",{type_:"write",option:"{"},"pu",{type_:"write",option:"}"}],nextState:"3"}},"\\x{}{}|\\x{}|\\x":{"0|1|2|3|a|as|b|p|bp|o|c0":{action_:["o=","output"],nextState:"3"},"*":{action_:["output","o=","output"],nextState:"3"}},others:{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"3"}},else2:{a:{action_:"a to o",nextState:"o",revisit:true},as:{action_:["output","sb=true"],nextState:"1",revisit:true},"r|rt|rd|rdt|rdq":{action_:["output"],nextState:"0",revisit:true},"*":{action_:["output","copy"],nextState:"3"}}}),actions:{"o after d":function(e,t){var r;if((e.d||"").match(/^[1-9][0-9]*$/)){var a=e.d;e.d=undefined;r=this["output"](e);r.push({type_:"tinySkip"});e.b=a}else{r=this["output"](e)}n.actions["o="](e,t);return r},"d= kv":function(e,t){e.d=t;e.dType="kv";return undefined},"charge or bond":function(e,t){if(e["beginsWithBond"]){var r=[];n.concatArray(r,this["output"](e));n.concatArray(r,n.actions["bond"](e,t,"-"));return r}else{e.d=t;return undefined}},"- after o/d":function(e,t,r){var a=n.patterns.match_("orbital",e.o||"");var o=n.patterns.match_("one lowercase greek letter $",e.o||"");var i=n.patterns.match_("one lowercase latin letter $",e.o||"");var s=n.patterns.match_("$one lowercase latin letter$ $",e.o||"");var l=t==="-"&&(a&&a.remainder===""||o||i||s);if(l&&!e.a&&!e.b&&!e.p&&!e.d&&!e.q&&!a&&i){e.o="$"+e.o+"$"}var u=[];if(l){n.concatArray(u,this["output"](e));u.push({type_:"hyphen"})}else{a=n.patterns.match_("digits",e.d||"");if(r&&a&&a.remainder===""){n.concatArray(u,n.actions["d="](e,t));n.concatArray(u,this["output"](e))}else{n.concatArray(u,this["output"](e));n.concatArray(u,n.actions["bond"](e,t,"-"))}}return u},"a to o":function(e){e.o=e.a;e.a=undefined;return undefined},"sb=true":function(e){e.sb=true;return undefined},"sb=false":function(e){e.sb=false;return undefined},"beginsWithBond=true":function(e){e["beginsWithBond"]=true;return undefined},"beginsWithBond=false":function(e){e["beginsWithBond"]=false;return undefined},"parenthesisLevel++":function(e){e["parenthesisLevel"]++;return undefined},"parenthesisLevel--":function(e){e["parenthesisLevel"]--;return undefined},"state of aggregation":function(e,t){return{type_:"state of aggregation",p1:n.go(t,"o")}},comma:function(e,t){var r=t.replace(/\s*$/,"");var a=r!==t;if(a&&e["parenthesisLevel"]===0){return{type_:"comma enumeration L",p1:r}}else{return{type_:"comma enumeration M",p1:r}}},output:function(e,t,r){var a;if(!e.r){a=[];if(!e.a&&!e.b&&!e.p&&!e.o&&!e.q&&!e.d&&!r){}else{if(e.sb){a.push({type_:"entitySkip"})}if(!e.o&&!e.q&&!e.d&&!e.b&&!e.p&&r!==2){e.o=e.a;e.a=undefined}else if(!e.o&&!e.q&&!e.d&&(e.b||e.p)){e.o=e.a;e.d=e.b;e.q=e.p;e.a=e.b=e.p=undefined}else{if(e.o&&e.dType==="kv"&&n.patterns.match_("d-oxidation$",e.d||"")){e.dType="oxidation"}else if(e.o&&e.dType==="kv"&&!e.q){e.dType=undefined}}a.push({type_:"chemfive",a:n.go(e.a,"a"),b:n.go(e.b,"bd"),p:n.go(e.p,"pq"),o:n.go(e.o,"o"),q:n.go(e.q,"pq"),d:n.go(e.d,e.dType==="oxidation"?"oxidation":"bd"),dType:e.dType})}}else{var o=void 0;if(e.rdt==="M"){o=n.go(e.rd,"tex-math")}else if(e.rdt==="T"){o=[{type_:"text",p1:e.rd||""}]}else{o=n.go(e.rd,"ce")}var i=void 0;if(e.rqt==="M"){i=n.go(e.rq,"tex-math")}else if(e.rqt==="T"){i=[{type_:"text",p1:e.rq||""}]}else{i=n.go(e.rq,"ce")}a={type_:"arrow",r:e.r,rd:o,rq:i}}for(var s in e){if(s!=="parenthesisLevel"&&s!=="beginsWithBond"){delete e[s]}}return a},"oxidation-output":function(e,t){var r=["{"];n.concatArray(r,n.go(t,"oxidation"));r.push("}");return r},"frac-output":function(e,t){return{type_:"frac-ce",p1:n.go(t[0],"ce"),p2:n.go(t[1],"ce")}},"overset-output":function(e,t){return{type_:"overset",p1:n.go(t[0],"ce"),p2:n.go(t[1],"ce")}},"underset-output":function(e,t){return{type_:"underset",p1:n.go(t[0],"ce"),p2:n.go(t[1],"ce")}},"underbrace-output":function(e,t){return{type_:"underbrace",p1:n.go(t[0],"ce"),p2:n.go(t[1],"ce")}},"color-output":function(e,t){return{type_:"color",color1:t[0],color2:n.go(t[1],"ce")}},"r=":function(e,t){e.r=t;return undefined},"rdt=":function(e,t){e.rdt=t;return undefined},"rd=":function(e,t){e.rd=t;return undefined},"rqt=":function(e,t){e.rqt=t;return undefined},"rq=":function(e,t){e.rq=t;return undefined},operator:function(e,t,r){return{type_:"operator",kind_:r||t}}}},a:{transitions:a({empty:{"*":{action_:[]}},"1/2$":{0:{action_:"1/2"}},else:{0:{action_:[],nextState:"1",revisit:true}},"${(...)}$__$(...)$":{"*":{action_:"tex-math tight",nextState:"1"}},",":{"*":{action_:{type_:"insert",option:"commaDecimal"}}},else2:{"*":{action_:"copy"}}}),actions:{}},o:{transitions:a({empty:{"*":{action_:[]}},"1/2$":{0:{action_:"1/2"}},else:{0:{action_:[],nextState:"1",revisit:true}},letters:{"*":{action_:"rm"}},"\\ca":{"*":{action_:{type_:"insert",option:"circa"}}},"\\pu{(...)}":{"*":{action_:[{type_:"write",option:"{"},"pu",{type_:"write",option:"}"}]}},"\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},"${(...)}$__$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:[{type_:"write",option:"{"},"text",{type_:"write",option:"}"}]}},else2:{"*":{action_:"copy"}}}),actions:{}},text:{transitions:a({empty:{"*":{action_:"output"}},"{...}":{"*":{action_:"text="}},"${(...)}$__$(...)$":{"*":{action_:"tex-math"}},"\\greek":{"*":{action_:["output","rm"]}},"\\pu{(...)}":{"*":{action_:["output",{type_:"write",option:"{"},"pu",{type_:"write",option:"}"}]}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:["output","copy"]}},else:{"*":{action_:"text="}}}),actions:{output:function(e){if(e.text_){var t={type_:"text",p1:e.text_};for(var r in e){delete e[r]}return t}return undefined}}},pq:{transitions:a({empty:{"*":{action_:[]}},"state of aggregation $":{"*":{action_:"state of aggregation"}},i$:{0:{action_:[],nextState:"!f",revisit:true}},"(KV letters),":{0:{action_:"rm",nextState:"0"}},formula$:{0:{action_:[],nextState:"f",revisit:true}},"1/2$":{0:{action_:"1/2"}},else:{0:{action_:[],nextState:"!f",revisit:true}},"${(...)}$__$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"a-z":{f:{action_:"tex-math"}},letters:{"*":{action_:"rm"}},"-9.,9":{"*":{action_:"9,9"}},",":{"*":{action_:{type_:"insert+p1",option:"comma enumeration S"}}},"\\color{(...)}{(...)}":{"*":{action_:"color-output"}},"\\color{(...)}":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\pu{(...)}":{"*":{action_:[{type_:"write",option:"{"},"pu",{type_:"write",option:"}"}]}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"state of aggregation":function(e,t){return{type_:"state of aggregation subscript",p1:n.go(t,"o")}},"color-output":function(e,t){return{type_:"color",color1:t[0],color2:n.go(t[1],"pq")}}}},bd:{transitions:a({empty:{"*":{action_:[]}},x$:{0:{action_:[],nextState:"!f",revisit:true}},formula$:{0:{action_:[],nextState:"f",revisit:true}},else:{0:{action_:[],nextState:"!f",revisit:true}},"-9.,9 no missing 0":{"*":{action_:"9,9"}},".":{"*":{action_:{type_:"insert",option:"electron dot"}}},"a-z":{f:{action_:"tex-math"}},x:{"*":{action_:{type_:"insert",option:"KV x"}}},letters:{"*":{action_:"rm"}},"'":{"*":{action_:{type_:"insert",option:"prime"}}},"${(...)}$__$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"\\color{(...)}{(...)}":{"*":{action_:"color-output"}},"\\color{(...)}":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\pu{(...)}":{"*":{action_:[{type_:"write",option:"{"},"pu",{type_:"write",option:"}"}]}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"color-output":function(e,t){return{type_:"color",color1:t[0],color2:n.go(t[1],"bd")}}}},oxidation:{transitions:a({empty:{"*":{action_:[]}},"roman numeral":{"*":{action_:"roman-numeral"}},"${(...)}$__$(...)$":{"*":{action_:"tex-math"}},else:{"*":{action_:"copy"}}}),actions:{"roman-numeral":function(e,t){return{type_:"roman numeral",p1:t}}}},"tex-math":{transitions:a({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"\\pu{(...)}":{"*":{action_:["output",{type_:"write",option:"{"},"pu",{type_:"write",option:"}"}]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},else:{"*":{action_:"o="}}}),actions:{output:function(e){if(e.o){var t={type_:"tex-math",p1:e.o};for(var r in e){delete e[r]}return t}return undefined}}},"tex-math tight":{transitions:a({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"\\pu{(...)}":{"*":{action_:["output",{type_:"write",option:"{"},"pu",{type_:"write",option:"}"}]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},"-|+":{"*":{action_:"tight operator"}},else:{"*":{action_:"o="}}}),actions:{"tight operator":function(e,t){e.o=(e.o||"")+"{"+t+"}";return undefined},output:function(e){if(e.o){var t={type_:"tex-math",p1:e.o};for(var r in e){delete e[r]}return t}return undefined}}},"9,9":{transitions:a({empty:{"*":{action_:[]}},",":{"*":{action_:"comma"}},else:{"*":{action_:"copy"}}}),actions:{comma:function(){return{type_:"commaDecimal"}}}},pu:{transitions:a({empty:{"*":{action_:"output"}},space$:{"*":{action_:["output","space"]}},"{[(|)]}":{"0|a":{action_:"copy"}},"(-)(9)^(-9)":{0:{action_:"number^",nextState:"a"}},"(-)(9.,9)(e)(99)":{0:{action_:"enumber",nextState:"a"}},space:{"0|a":{action_:[]}},"pm-operator":{"0|a":{action_:{type_:"operator",option:"\\pm"},nextState:"0"}},operator:{"0|a":{action_:"copy",nextState:"0"}},"//":{d:{action_:"o=",nextState:"/"}},"/":{d:{action_:"o=",nextState:"/"}},"{...}|else":{"0|d":{action_:"d=",nextState:"d"},a:{action_:["space","d="],nextState:"d"},"/|q":{action_:"q=",nextState:"q"}}}),actions:{enumber:function(e,t){var r=[];if(t[0]==="+-"||t[0]==="+/-"){r.push("\\pm ")}else if(t[0]){r.push(t[0])}if(t[1]){n.concatArray(r,n.go(t[1],"pu-9,9"));if(t[2]){if(t[2].match(/[,.]/)){n.concatArray(r,n.go(t[2],"pu-9,9"))}else{r.push(t[2])}}if(t[3]||t[4]){if(t[3]==="e"||t[4]==="*"){r.push({type_:"cdot"})}else{r.push({type_:"times"})}}}if(t[5]){r.push("10^{"+t[5]+"}")}return r},"number^":function(e,t){var r=[];if(t[0]==="+-"||t[0]==="+/-"){r.push("\\pm ")}else if(t[0]){r.push(t[0])}n.concatArray(r,n.go(t[1],"pu-9,9"));r.push("^{"+t[2]+"}");return r},operator:function(e,t,r){return{type_:"operator",kind_:r||t}},space:function(){return{type_:"pu-space-1"}},output:function(e){var t;var r=n.patterns.match_("{(...)}",e.d||"");if(r&&r.remainder===""){e.d=r.match_}var a=n.patterns.match_("{(...)}",e.q||"");if(a&&a.remainder===""){e.q=a.match_}if(e.d){e.d=e.d.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C");e.d=e.d.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F")}if(e.q){e.q=e.q.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C");e.q=e.q.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F");var o={d:n.go(e.d,"pu"),q:n.go(e.q,"pu")};if(e.o==="//"){t={type_:"pu-frac",p1:o.d,p2:o.q}}else{t=o.d;if(o.d.length>1||o.q.length>1){t.push({type_:" / "})}else{t.push({type_:"/"})}n.concatArray(t,o.q)}}else{t=n.go(e.d,"pu-2")}for(var i in e){delete e[i]}return t}}},"pu-2":{transitions:a({empty:{"*":{action_:"output"}},"*":{"*":{action_:["output","cdot"],nextState:"0"}},"\\x":{"*":{action_:"rm="}},space:{"*":{action_:["output","space"],nextState:"0"}},"^{(...)}|^(-1)":{1:{action_:"^(-1)"}},"-9.,9":{0:{action_:"rm=",nextState:"0"},1:{action_:"^(-1)",nextState:"0"}},"{...}|else":{"*":{action_:"rm=",nextState:"1"}}}),actions:{cdot:function(){return{type_:"tight cdot"}},"^(-1)":function(e,t){e.rm+="^{"+t+"}";return undefined},space:function(){return{type_:"pu-space-2"}},output:function(e){var t=[];if(e.rm){var r=n.patterns.match_("{(...)}",e.rm||"");if(r&&r.remainder===""){t=n.go(r.match_,"pu")}else{t={type_:"rm",p1:e.rm}}}for(var a in e){delete e[a]}return t}}},"pu-9,9":{transitions:a({empty:{0:{action_:"output-0"},o:{action_:"output-o"}},",":{0:{action_:["output-0","comma"],nextState:"o"}},".":{0:{action_:["output-0","copy"],nextState:"o"}},else:{"*":{action_:"text="}}}),actions:{comma:function(){return{type_:"commaDecimal"}},"output-0":function(e){var t=[];e.text_=e.text_||"";if(e.text_.length>4){var r=e.text_.length%3;if(r===0){r=3}for(var a=e.text_.length-3;a>0;a-=3){t.push(e.text_.substr(a,3));t.push({type_:"1000 separator"})}t.push(e.text_.substr(0,r));t.reverse()}else{t.push(e.text_)}for(var n in e){delete e[n]}return t},"output-o":function(e){var t=[];e.text_=e.text_||"";if(e.text_.length>4){var r=e.text_.length-3;var a=void 0;for(a=0;a"||e.r==="<=>>"||e.r==="<<=>"||e.r==="<--\x3e"){l="\\long"+l;if(s.rd){l="\\overset{"+s.rd+"}{"+l+"}"}if(s.rq){if(e.r==="<--\x3e"){l="\\underset{\\lower2mu{"+s.rq+"}}{"+l+"}"}else{l="\\underset{\\lower6mu{"+s.rq+"}}{"+l+"}"}}l=" {}\\mathrel{"+l+"}{} "}else{if(s.rq){l+="[{"+s.rq+"}]"}l+="{"+s.rd+"}";l=" {}\\mathrel{\\x"+l+"}{} "}}else{l=" {}\\mathrel{\\long"+l+"}{} "}t=l;break;case"operator":t=o._getOperator(e.kind_);break;case"1st-level escape":t=e.p1+" ";break;case"space":t=" ";break;case"tinySkip":t="\\mkern2mu";break;case"entitySkip":t="~";break;case"pu-space-1":t="~";break;case"pu-space-2":t="\\mkern3mu ";break;case"1000 separator":t="\\mkern2mu ";break;case"commaDecimal":t="{,}";break;case"comma enumeration L":t="{"+e.p1+"}\\mkern6mu ";break;case"comma enumeration M":t="{"+e.p1+"}\\mkern3mu ";break;case"comma enumeration S":t="{"+e.p1+"}\\mkern1mu ";break;case"hyphen":t="\\text{-}";break;case"addition compound":t="\\,{\\cdot}\\,";break;case"electron dot":t="\\mkern1mu \\bullet\\mkern1mu ";break;case"KV x":t="{\\times}";break;case"prime":t="\\prime ";break;case"cdot":t="\\cdot ";break;case"tight cdot":t="\\mkern1mu{\\cdot}\\mkern1mu ";break;case"times":t="\\times ";break;case"circa":t="{\\sim}";break;case"^":t="uparrow";break;case"v":t="downarrow";break;case"ellipsis":t="\\ldots ";break;case"/":t="/";break;case" / ":t="\\,/\\,";break;default:i(e);throw["MhchemBugT","mhchem bug T. Please report."]}return t},_getArrow:function(e){switch(e){case"->":return"rightarrow";case"→":return"rightarrow";case"⟶":return"rightarrow";case"<-":return"leftarrow";case"<->":return"leftrightarrow";case"<--\x3e":return"leftrightarrows";case"<=>":return"rightleftharpoons";case"⇌":return"rightleftharpoons";case"<=>>":return"Rightleftharpoons";case"<<=>":return"Leftrightharpoons";default:i(e);throw["MhchemBugT","mhchem bug T. Please report."]}},_getBond:function(e){switch(e){case"-":return"{-}";case"1":return"{-}";case"=":return"{=}";case"2":return"{=}";case"#":return"{\\equiv}";case"3":return"{\\equiv}";case"~":return"{\\tripledash}";case"~-":return"{\\rlap{\\lower.1em{-}}\\raise.1em{\\tripledash}}";case"~=":return"{\\rlap{\\lower.2em{-}}\\rlap{\\raise.2em{\\tripledash}}-}";case"~--":return"{\\rlap{\\lower.2em{-}}\\rlap{\\raise.2em{\\tripledash}}-}";case"-~-":return"{\\rlap{\\lower.2em{-}}\\rlap{\\raise.2em{-}}\\tripledash}";case"...":return"{{\\cdot}{\\cdot}{\\cdot}}";case"....":return"{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}";case"->":return"{\\rightarrow}";case"<-":return"{\\leftarrow}";case"<":return"{<}";case">":return"{>}";default:i(e);throw["MhchemBugT","mhchem bug T. Please report."]}},_getOperator:function(e){switch(e){case"+":return" {}+{} ";case"-":return" {}-{} ";case"=":return" {}={} ";case"<":return" {}<{} ";case">":return" {}>{} ";case"<<":return" {}\\ll{} ";case">>":return" {}\\gg{} ";case"\\pm":return" {}\\pm{} ";case"\\approx":return" {}\\approx{} ";case"$\\approx$":return" {}\\approx{} ";case"v":return" \\downarrow{} ";case"(v)":return" \\downarrow{} ";case"^":return" \\uparrow{} ";case"(^)":return" \\uparrow{} ";default:i(e);throw["MhchemBugT","mhchem bug T. Please report."]}}};function i(e){}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1909.7487a09fefbe7f9eabb6.js.LICENSE.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1909.7487a09fefbe7f9eabb6.js.LICENSE.txt deleted file mode 100644 index 48da7005c7f62573d18ba282fc9512b52d62032d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1909.7487a09fefbe7f9eabb6.js.LICENSE.txt +++ /dev/null @@ -1,32 +0,0 @@ -/*! - ************************************************************************* - * - * mhchemParser.ts - * 4.1.1 - * - * Parser for the \ce command and \pu command for MathJax and Co. - * - * mhchem's \ce is a tool for writing beautiful chemical equations easily. - * mhchem's \pu is a tool for writing physical units easily. - * - * ---------------------------------------------------------------------- - * - * Copyright (c) 2015-2021 Martin Hensel - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * ---------------------------------------------------------------------- - * - * https://github.com/mhchem/mhchemParser - * - */ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1912.f16dddc294d66c3c81e9.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1912.f16dddc294d66c3c81e9.js deleted file mode 100644 index fc0e9f539ef6cbcfc63debf8fbae04976fa837fa..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1912.f16dddc294d66c3c81e9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1912],{71912:(t,e,a)=>{a.d(e,{diagram:()=>Kt});var r=a(60148);var i=a(96049);var n=a(75905);var s=a(24982);var l=a(16750);var o=function(){var t=(0,n.K2)((function(t,e,a,r){for(a=a||{},r=t.length;r--;a[t[r]]=e);return a}),"o"),e=[1,24],a=[1,25],r=[1,26],i=[1,27],s=[1,28],l=[1,63],o=[1,64],h=[1,65],d=[1,66],u=[1,67],p=[1,68],f=[1,69],y=[1,29],b=[1,30],g=[1,31],x=[1,32],_=[1,33],m=[1,34],v=[1,35],k=[1,36],E=[1,37],S=[1,38],A=[1,39],C=[1,40],w=[1,41],O=[1,42],T=[1,43],R=[1,44],D=[1,45],N=[1,46],P=[1,47],B=[1,48],j=[1,50],I=[1,51],M=[1,52],K=[1,53],L=[1,54],Y=[1,55],U=[1,56],F=[1,57],X=[1,58],z=[1,59],W=[1,60],Q=[14,42],$=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],H=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],q=[1,82],V=[1,83],G=[1,84],J=[1,85],Z=[12,14,42],tt=[12,14,33,42],et=[12,14,33,42,76,77,79,80],at=[12,33],rt=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74];var it={trace:(0,n.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:(0,n.K2)((function t(e,a,r,i,n,s,l){var o=s.length-1;switch(n){case 3:i.setDirection("TB");break;case 4:i.setDirection("BT");break;case 5:i.setDirection("RL");break;case 6:i.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:i.setC4Type(s[o-3]);break;case 19:i.setTitle(s[o].substring(6));this.$=s[o].substring(6);break;case 20:i.setAccDescription(s[o].substring(15));this.$=s[o].substring(15);break;case 21:this.$=s[o].trim();i.setTitle(this.$);break;case 22:case 23:this.$=s[o].trim();i.setAccDescription(this.$);break;case 28:s[o].splice(2,0,"ENTERPRISE");i.addPersonOrSystemBoundary(...s[o]);this.$=s[o];break;case 29:s[o].splice(2,0,"SYSTEM");i.addPersonOrSystemBoundary(...s[o]);this.$=s[o];break;case 30:i.addPersonOrSystemBoundary(...s[o]);this.$=s[o];break;case 31:s[o].splice(2,0,"CONTAINER");i.addContainerBoundary(...s[o]);this.$=s[o];break;case 32:i.addDeploymentNode("node",...s[o]);this.$=s[o];break;case 33:i.addDeploymentNode("nodeL",...s[o]);this.$=s[o];break;case 34:i.addDeploymentNode("nodeR",...s[o]);this.$=s[o];break;case 35:i.popBoundaryParseStack();break;case 39:i.addPersonOrSystem("person",...s[o]);this.$=s[o];break;case 40:i.addPersonOrSystem("external_person",...s[o]);this.$=s[o];break;case 41:i.addPersonOrSystem("system",...s[o]);this.$=s[o];break;case 42:i.addPersonOrSystem("system_db",...s[o]);this.$=s[o];break;case 43:i.addPersonOrSystem("system_queue",...s[o]);this.$=s[o];break;case 44:i.addPersonOrSystem("external_system",...s[o]);this.$=s[o];break;case 45:i.addPersonOrSystem("external_system_db",...s[o]);this.$=s[o];break;case 46:i.addPersonOrSystem("external_system_queue",...s[o]);this.$=s[o];break;case 47:i.addContainer("container",...s[o]);this.$=s[o];break;case 48:i.addContainer("container_db",...s[o]);this.$=s[o];break;case 49:i.addContainer("container_queue",...s[o]);this.$=s[o];break;case 50:i.addContainer("external_container",...s[o]);this.$=s[o];break;case 51:i.addContainer("external_container_db",...s[o]);this.$=s[o];break;case 52:i.addContainer("external_container_queue",...s[o]);this.$=s[o];break;case 53:i.addComponent("component",...s[o]);this.$=s[o];break;case 54:i.addComponent("component_db",...s[o]);this.$=s[o];break;case 55:i.addComponent("component_queue",...s[o]);this.$=s[o];break;case 56:i.addComponent("external_component",...s[o]);this.$=s[o];break;case 57:i.addComponent("external_component_db",...s[o]);this.$=s[o];break;case 58:i.addComponent("external_component_queue",...s[o]);this.$=s[o];break;case 60:i.addRel("rel",...s[o]);this.$=s[o];break;case 61:i.addRel("birel",...s[o]);this.$=s[o];break;case 62:i.addRel("rel_u",...s[o]);this.$=s[o];break;case 63:i.addRel("rel_d",...s[o]);this.$=s[o];break;case 64:i.addRel("rel_l",...s[o]);this.$=s[o];break;case 65:i.addRel("rel_r",...s[o]);this.$=s[o];break;case 66:i.addRel("rel_b",...s[o]);this.$=s[o];break;case 67:s[o].splice(0,1);i.addRel("rel",...s[o]);this.$=s[o];break;case 68:i.updateElStyle("update_el_style",...s[o]);this.$=s[o];break;case 69:i.updateRelStyle("update_rel_style",...s[o]);this.$=s[o];break;case 70:i.updateLayoutConfig("update_layout_config",...s[o]);this.$=s[o];break;case 71:this.$=[s[o]];break;case 72:s[o].unshift(s[o-1]);this.$=s[o];break;case 73:case 75:this.$=s[o].trim();break;case 74:let t={};t[s[o-1].trim()]=s[o].trim();this.$=t;break;case 76:this.$="";break}}),"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:a,24:r,26:i,28:s,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:f,43:23,44:y,45:b,46:g,47:x,48:_,49:m,50:v,51:k,52:E,53:S,54:A,55:C,56:w,57:O,58:T,59:R,60:D,61:N,62:P,63:B,64:j,65:I,66:M,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{13:70,19:20,20:21,21:22,22:e,23:a,24:r,26:i,28:s,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:f,43:23,44:y,45:b,46:g,47:x,48:_,49:m,50:v,51:k,52:E,53:S,54:A,55:C,56:w,57:O,58:T,59:R,60:D,61:N,62:P,63:B,64:j,65:I,66:M,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{13:71,19:20,20:21,21:22,22:e,23:a,24:r,26:i,28:s,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:f,43:23,44:y,45:b,46:g,47:x,48:_,49:m,50:v,51:k,52:E,53:S,54:A,55:C,56:w,57:O,58:T,59:R,60:D,61:N,62:P,63:B,64:j,65:I,66:M,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{13:72,19:20,20:21,21:22,22:e,23:a,24:r,26:i,28:s,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:f,43:23,44:y,45:b,46:g,47:x,48:_,49:m,50:v,51:k,52:E,53:S,54:A,55:C,56:w,57:O,58:T,59:R,60:D,61:N,62:P,63:B,64:j,65:I,66:M,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{13:73,19:20,20:21,21:22,22:e,23:a,24:r,26:i,28:s,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:f,43:23,44:y,45:b,46:g,47:x,48:_,49:m,50:v,51:k,52:E,53:S,54:A,55:C,56:w,57:O,58:T,59:R,60:D,61:N,62:P,63:B,64:j,65:I,66:M,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{14:[1,74]},t(Q,[2,13],{43:23,29:49,30:61,32:62,20:75,34:l,36:o,37:h,38:d,39:u,40:p,41:f,44:y,45:b,46:g,47:x,48:_,49:m,50:v,51:k,52:E,53:S,54:A,55:C,56:w,57:O,58:T,59:R,60:D,61:N,62:P,63:B,64:j,65:I,66:M,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W}),t(Q,[2,14]),t($,[2,16],{12:[1,76]}),t(Q,[2,36],{12:[1,77]}),t(H,[2,19]),t(H,[2,20]),{25:[1,78]},{27:[1,79]},t(H,[2,23]),{35:80,75:81,76:q,77:V,79:G,80:J},{35:86,75:81,76:q,77:V,79:G,80:J},{35:87,75:81,76:q,77:V,79:G,80:J},{35:88,75:81,76:q,77:V,79:G,80:J},{35:89,75:81,76:q,77:V,79:G,80:J},{35:90,75:81,76:q,77:V,79:G,80:J},{35:91,75:81,76:q,77:V,79:G,80:J},{35:92,75:81,76:q,77:V,79:G,80:J},{35:93,75:81,76:q,77:V,79:G,80:J},{35:94,75:81,76:q,77:V,79:G,80:J},{35:95,75:81,76:q,77:V,79:G,80:J},{35:96,75:81,76:q,77:V,79:G,80:J},{35:97,75:81,76:q,77:V,79:G,80:J},{35:98,75:81,76:q,77:V,79:G,80:J},{35:99,75:81,76:q,77:V,79:G,80:J},{35:100,75:81,76:q,77:V,79:G,80:J},{35:101,75:81,76:q,77:V,79:G,80:J},{35:102,75:81,76:q,77:V,79:G,80:J},{35:103,75:81,76:q,77:V,79:G,80:J},{35:104,75:81,76:q,77:V,79:G,80:J},t(Z,[2,59]),{35:105,75:81,76:q,77:V,79:G,80:J},{35:106,75:81,76:q,77:V,79:G,80:J},{35:107,75:81,76:q,77:V,79:G,80:J},{35:108,75:81,76:q,77:V,79:G,80:J},{35:109,75:81,76:q,77:V,79:G,80:J},{35:110,75:81,76:q,77:V,79:G,80:J},{35:111,75:81,76:q,77:V,79:G,80:J},{35:112,75:81,76:q,77:V,79:G,80:J},{35:113,75:81,76:q,77:V,79:G,80:J},{35:114,75:81,76:q,77:V,79:G,80:J},{35:115,75:81,76:q,77:V,79:G,80:J},{20:116,29:49,30:61,32:62,34:l,36:o,37:h,38:d,39:u,40:p,41:f,43:23,44:y,45:b,46:g,47:x,48:_,49:m,50:v,51:k,52:E,53:S,54:A,55:C,56:w,57:O,58:T,59:R,60:D,61:N,62:P,63:B,64:j,65:I,66:M,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W},{12:[1,118],33:[1,117]},{35:119,75:81,76:q,77:V,79:G,80:J},{35:120,75:81,76:q,77:V,79:G,80:J},{35:121,75:81,76:q,77:V,79:G,80:J},{35:122,75:81,76:q,77:V,79:G,80:J},{35:123,75:81,76:q,77:V,79:G,80:J},{35:124,75:81,76:q,77:V,79:G,80:J},{35:125,75:81,76:q,77:V,79:G,80:J},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(Q,[2,15]),t($,[2,17],{21:22,19:130,22:e,23:a,24:r,26:i,28:s}),t(Q,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:a,24:r,26:i,28:s,34:l,36:o,37:h,38:d,39:u,40:p,41:f,44:y,45:b,46:g,47:x,48:_,49:m,50:v,51:k,52:E,53:S,54:A,55:C,56:w,57:O,58:T,59:R,60:D,61:N,62:P,63:B,64:j,65:I,66:M,67:K,68:L,69:Y,70:U,71:F,72:X,73:z,74:W}),t(H,[2,21]),t(H,[2,22]),t(Z,[2,39]),t(tt,[2,71],{75:81,35:132,76:q,77:V,79:G,80:J}),t(et,[2,73]),{78:[1,133]},t(et,[2,75]),t(et,[2,76]),t(Z,[2,40]),t(Z,[2,41]),t(Z,[2,42]),t(Z,[2,43]),t(Z,[2,44]),t(Z,[2,45]),t(Z,[2,46]),t(Z,[2,47]),t(Z,[2,48]),t(Z,[2,49]),t(Z,[2,50]),t(Z,[2,51]),t(Z,[2,52]),t(Z,[2,53]),t(Z,[2,54]),t(Z,[2,55]),t(Z,[2,56]),t(Z,[2,57]),t(Z,[2,58]),t(Z,[2,60]),t(Z,[2,61]),t(Z,[2,62]),t(Z,[2,63]),t(Z,[2,64]),t(Z,[2,65]),t(Z,[2,66]),t(Z,[2,67]),t(Z,[2,68]),t(Z,[2,69]),t(Z,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(at,[2,28]),t(at,[2,29]),t(at,[2,30]),t(at,[2,31]),t(at,[2,32]),t(at,[2,33]),t(at,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t($,[2,18]),t(Q,[2,38]),t(tt,[2,72]),t(et,[2,74]),t(Z,[2,24]),t(Z,[2,35]),t(rt,[2,25]),t(rt,[2,26],{12:[1,138]}),t(rt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:(0,n.K2)((function t(e,a){if(a.recoverable){this.trace(e)}else{var r=new Error(e);r.hash=a;throw r}}),"parseError"),parse:(0,n.K2)((function t(e){var a=this,r=[0],i=[],s=[null],l=[],o=this.table,c="",h=0,d=0,u=0,p=2,f=1;var y=l.slice.call(arguments,1);var b=Object.create(this.lexer);var g={yy:{}};for(var x in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,x)){g.yy[x]=this.yy[x]}}b.setInput(e,g.yy);g.yy.lexer=b;g.yy.parser=this;if(typeof b.yylloc=="undefined"){b.yylloc={}}var _=b.yylloc;l.push(_);var m=b.options&&b.options.ranges;if(typeof g.yy.parseError==="function"){this.parseError=g.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function v(t){r.length=r.length-2*t;s.length=s.length-t;l.length=l.length-t}(0,n.K2)(v,"popStack");function k(){var t;t=i.pop()||b.lex()||f;if(typeof t!=="number"){if(t instanceof Array){i=t;t=i.pop()}t=a.symbols_[t]||t}return t}(0,n.K2)(k,"lex");var E,S,A,C,w,O,T={},R,D,N,P;while(true){A=r[r.length-1];if(this.defaultActions[A]){C=this.defaultActions[A]}else{if(E===null||typeof E=="undefined"){E=k()}C=o[A]&&o[A][E]}if(typeof C==="undefined"||!C.length||!C[0]){var B="";P=[];for(R in o[A]){if(this.terminals_[R]&&R>p){P.push("'"+this.terminals_[R]+"'")}}if(b.showPosition){B="Parse error on line "+(h+1)+":\n"+b.showPosition()+"\nExpecting "+P.join(", ")+", got '"+(this.terminals_[E]||E)+"'"}else{B="Parse error on line "+(h+1)+": Unexpected "+(E==f?"end of input":"'"+(this.terminals_[E]||E)+"'")}this.parseError(B,{text:b.match,token:this.terminals_[E]||E,line:b.yylineno,loc:_,expected:P})}if(C[0]instanceof Array&&C.length>1){throw new Error("Parse Error: multiple actions possible at state: "+A+", token: "+E)}switch(C[0]){case 1:r.push(E);s.push(b.yytext);l.push(b.yylloc);r.push(C[1]);E=null;if(!S){d=b.yyleng;c=b.yytext;h=b.yylineno;_=b.yylloc;if(u>0){u--}}else{E=S;S=null}break;case 2:D=this.productions_[C[1]][1];T.$=s[s.length-D];T._$={first_line:l[l.length-(D||1)].first_line,last_line:l[l.length-1].last_line,first_column:l[l.length-(D||1)].first_column,last_column:l[l.length-1].last_column};if(m){T._$.range=[l[l.length-(D||1)].range[0],l[l.length-1].range[1]]}O=this.performAction.apply(T,[c,d,h,g.yy,C[1],s,l].concat(y));if(typeof O!=="undefined"){return O}if(D){r=r.slice(0,-1*D*2);s=s.slice(0,-1*D);l=l.slice(0,-1*D)}r.push(this.productions_[C[1]][0]);s.push(T.$);l.push(T._$);N=o[r[r.length-2]][r[r.length-1]];r.push(N);break;case 3:return true}}return true}),"parse")};var nt=function(){var t={EOF:1,parseError:(0,n.K2)((function t(e,a){if(this.yy.parser){this.yy.parser.parseError(e,a)}else{throw new Error(e)}}),"parseError"),setInput:(0,n.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,n.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,n.K2)((function(t){var e=t.length;var a=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(a.length-1){this.yylineno-=a.length-1}var i=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[i[0],i[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,n.K2)((function(){this._more=true;return this}),"more"),reject:(0,n.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,n.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,n.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,n.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,n.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,n.K2)((function(t,e){var a,r,i;if(this.options.backtrack_lexer){i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){i.yylloc.range=this.yylloc.range.slice(0)}}r=t[0].match(/(?:\r\n?|\n).*/g);if(r){this.yylineno+=r.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];a=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(a){return a}else if(this._backtrack){for(var n in i){this[n]=i[n]}return false}return false}),"test_match"),next:(0,n.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,a,r;if(!this._more){this.yytext="";this.match=""}var i=this._currentRules();for(var n=0;ne[0].length)){e=a;r=n;if(this.options.backtrack_lexer){t=this.test_match(a,i[n]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,i[r]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,n.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,n.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,n.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,n.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,n.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,n.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,n.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{},performAction:(0,n.K2)((function t(e,a,r,i){var n=i;switch(r){case 0:return 6;break;case 1:return 7;break;case 2:return 8;break;case 3:return 9;break;case 4:return 22;break;case 5:return 23;break;case 6:this.begin("acc_title");return 24;break;case 7:this.popState();return"acc_title_value";break;case 8:this.begin("acc_descr");return 26;break;case 9:this.popState();return"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";break;case 13:break;case 14:c;break;case 15:return 12;break;case 16:break;case 17:return 11;break;case 18:return 15;break;case 19:return 16;break;case 20:return 17;break;case 21:return 18;break;case 22:this.begin("person_ext");return 45;break;case 23:this.begin("person");return 44;break;case 24:this.begin("system_ext_queue");return 51;break;case 25:this.begin("system_ext_db");return 50;break;case 26:this.begin("system_ext");return 49;break;case 27:this.begin("system_queue");return 48;break;case 28:this.begin("system_db");return 47;break;case 29:this.begin("system");return 46;break;case 30:this.begin("boundary");return 37;break;case 31:this.begin("enterprise_boundary");return 34;break;case 32:this.begin("system_boundary");return 36;break;case 33:this.begin("container_ext_queue");return 57;break;case 34:this.begin("container_ext_db");return 56;break;case 35:this.begin("container_ext");return 55;break;case 36:this.begin("container_queue");return 54;break;case 37:this.begin("container_db");return 53;break;case 38:this.begin("container");return 52;break;case 39:this.begin("container_boundary");return 38;break;case 40:this.begin("component_ext_queue");return 63;break;case 41:this.begin("component_ext_db");return 62;break;case 42:this.begin("component_ext");return 61;break;case 43:this.begin("component_queue");return 60;break;case 44:this.begin("component_db");return 59;break;case 45:this.begin("component");return 58;break;case 46:this.begin("node");return 39;break;case 47:this.begin("node");return 39;break;case 48:this.begin("node_l");return 40;break;case 49:this.begin("node_r");return 41;break;case 50:this.begin("rel");return 64;break;case 51:this.begin("birel");return 65;break;case 52:this.begin("rel_u");return 66;break;case 53:this.begin("rel_u");return 66;break;case 54:this.begin("rel_d");return 67;break;case 55:this.begin("rel_d");return 67;break;case 56:this.begin("rel_l");return 68;break;case 57:this.begin("rel_l");return 68;break;case 58:this.begin("rel_r");return 69;break;case 59:this.begin("rel_r");return 69;break;case 60:this.begin("rel_b");return 70;break;case 61:this.begin("rel_index");return 71;break;case 62:this.begin("update_el_style");return 72;break;case 63:this.begin("update_rel_style");return 73;break;case 64:this.begin("update_layout_config");return 74;break;case 65:return"EOF_IN_STRUCT";break;case 66:this.begin("attribute");return"ATTRIBUTE_EMPTY";break;case 67:this.begin("attribute");break;case 68:this.popState();this.popState();break;case 69:return 80;break;case 70:break;case 71:return 80;break;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";break;case 75:this.begin("string_kv");break;case 76:this.begin("string_kv_key");return"STR_KEY";break;case 77:this.popState();this.begin("string_kv_value");break;case 78:return"STR_VALUE";break;case 79:this.popState();this.popState();break;case 80:return"STR";break;case 81:return"LBRACE";break;case 82:return"RBRACE";break;case 83:return"SPACE";break;case 84:return"EOL";break;case 85:return 14;break}}),"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:false},acc_descr:{rules:[9],inclusive:false},acc_title:{rules:[7],inclusive:false},string_kv_value:{rules:[78,79],inclusive:false},string_kv_key:{rules:[77],inclusive:false},string_kv:{rules:[76],inclusive:false},string:{rules:[73,74],inclusive:false},attribute:{rules:[68,69,70,71,72,75,80],inclusive:false},update_layout_config:{rules:[65,66,67,68],inclusive:false},update_rel_style:{rules:[65,66,67,68],inclusive:false},update_el_style:{rules:[65,66,67,68],inclusive:false},rel_b:{rules:[65,66,67,68],inclusive:false},rel_r:{rules:[65,66,67,68],inclusive:false},rel_l:{rules:[65,66,67,68],inclusive:false},rel_d:{rules:[65,66,67,68],inclusive:false},rel_u:{rules:[65,66,67,68],inclusive:false},rel_bi:{rules:[],inclusive:false},rel:{rules:[65,66,67,68],inclusive:false},node_r:{rules:[65,66,67,68],inclusive:false},node_l:{rules:[65,66,67,68],inclusive:false},node:{rules:[65,66,67,68],inclusive:false},index:{rules:[],inclusive:false},rel_index:{rules:[65,66,67,68],inclusive:false},component_ext_queue:{rules:[],inclusive:false},component_ext_db:{rules:[65,66,67,68],inclusive:false},component_ext:{rules:[65,66,67,68],inclusive:false},component_queue:{rules:[65,66,67,68],inclusive:false},component_db:{rules:[65,66,67,68],inclusive:false},component:{rules:[65,66,67,68],inclusive:false},container_boundary:{rules:[65,66,67,68],inclusive:false},container_ext_queue:{rules:[65,66,67,68],inclusive:false},container_ext_db:{rules:[65,66,67,68],inclusive:false},container_ext:{rules:[65,66,67,68],inclusive:false},container_queue:{rules:[65,66,67,68],inclusive:false},container_db:{rules:[65,66,67,68],inclusive:false},container:{rules:[65,66,67,68],inclusive:false},birel:{rules:[65,66,67,68],inclusive:false},system_boundary:{rules:[65,66,67,68],inclusive:false},enterprise_boundary:{rules:[65,66,67,68],inclusive:false},boundary:{rules:[65,66,67,68],inclusive:false},system_ext_queue:{rules:[65,66,67,68],inclusive:false},system_ext_db:{rules:[65,66,67,68],inclusive:false},system_ext:{rules:[65,66,67,68],inclusive:false},system_queue:{rules:[65,66,67,68],inclusive:false},system_db:{rules:[65,66,67,68],inclusive:false},system:{rules:[65,66,67,68],inclusive:false},person_ext:{rules:[65,66,67,68],inclusive:false},person:{rules:[65,66,67,68],inclusive:false},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:true}}};return t}();it.lexer=nt;function st(){this.yy={}}(0,n.K2)(st,"Parser");st.prototype=it;it.Parser=st;return new st}();o.parser=o;var h=o;var d=[];var u=[""];var p="global";var f="";var y=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}];var b=[];var g="";var x=false;var _=4;var m=2;var v;var k=(0,n.K2)((function(){return v}),"getC4Type");var E=(0,n.K2)((function(t){let e=(0,n.jZ)(t,(0,n.D7)());v=e}),"setC4Type");var S=(0,n.K2)((function(t,e,a,r,i,n,s,l,o){if(t===void 0||t===null||e===void 0||e===null||a===void 0||a===null||r===void 0||r===null){return}let c={};const h=b.find((t=>t.from===e&&t.to===a));if(h){c=h}else{b.push(c)}c.type=t;c.from=e;c.to=a;c.label={text:r};if(i===void 0||i===null){c.techn={text:""}}else{if(typeof i==="object"){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else{c.techn={text:i}}}if(n===void 0||n===null){c.descr={text:""}}else{if(typeof n==="object"){let[t,e]=Object.entries(n)[0];c[t]={text:e}}else{c.descr={text:n}}}if(typeof s==="object"){let[t,e]=Object.entries(s)[0];c[t]=e}else{c.sprite=s}if(typeof l==="object"){let[t,e]=Object.entries(l)[0];c[t]=e}else{c.tags=l}if(typeof o==="object"){let[t,e]=Object.entries(o)[0];c[t]=e}else{c.link=o}c.wrap=$()}),"addRel");var A=(0,n.K2)((function(t,e,a,r,i,n,s){if(e===null||a===null){return}let l={};const o=d.find((t=>t.alias===e));if(o&&e===o.alias){l=o}else{l.alias=e;d.push(l)}if(a===void 0||a===null){l.label={text:""}}else{l.label={text:a}}if(r===void 0||r===null){l.descr={text:""}}else{if(typeof r==="object"){let[t,e]=Object.entries(r)[0];l[t]={text:e}}else{l.descr={text:r}}}if(typeof i==="object"){let[t,e]=Object.entries(i)[0];l[t]=e}else{l.sprite=i}if(typeof n==="object"){let[t,e]=Object.entries(n)[0];l[t]=e}else{l.tags=n}if(typeof s==="object"){let[t,e]=Object.entries(s)[0];l[t]=e}else{l.link=s}l.typeC4Shape={text:t};l.parentBoundary=p;l.wrap=$()}),"addPersonOrSystem");var C=(0,n.K2)((function(t,e,a,r,i,n,s,l){if(e===null||a===null){return}let o={};const c=d.find((t=>t.alias===e));if(c&&e===c.alias){o=c}else{o.alias=e;d.push(o)}if(a===void 0||a===null){o.label={text:""}}else{o.label={text:a}}if(r===void 0||r===null){o.techn={text:""}}else{if(typeof r==="object"){let[t,e]=Object.entries(r)[0];o[t]={text:e}}else{o.techn={text:r}}}if(i===void 0||i===null){o.descr={text:""}}else{if(typeof i==="object"){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else{o.descr={text:i}}}if(typeof n==="object"){let[t,e]=Object.entries(n)[0];o[t]=e}else{o.sprite=n}if(typeof s==="object"){let[t,e]=Object.entries(s)[0];o[t]=e}else{o.tags=s}if(typeof l==="object"){let[t,e]=Object.entries(l)[0];o[t]=e}else{o.link=l}o.wrap=$();o.typeC4Shape={text:t};o.parentBoundary=p}),"addContainer");var w=(0,n.K2)((function(t,e,a,r,i,n,s,l){if(e===null||a===null){return}let o={};const c=d.find((t=>t.alias===e));if(c&&e===c.alias){o=c}else{o.alias=e;d.push(o)}if(a===void 0||a===null){o.label={text:""}}else{o.label={text:a}}if(r===void 0||r===null){o.techn={text:""}}else{if(typeof r==="object"){let[t,e]=Object.entries(r)[0];o[t]={text:e}}else{o.techn={text:r}}}if(i===void 0||i===null){o.descr={text:""}}else{if(typeof i==="object"){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else{o.descr={text:i}}}if(typeof n==="object"){let[t,e]=Object.entries(n)[0];o[t]=e}else{o.sprite=n}if(typeof s==="object"){let[t,e]=Object.entries(s)[0];o[t]=e}else{o.tags=s}if(typeof l==="object"){let[t,e]=Object.entries(l)[0];o[t]=e}else{o.link=l}o.wrap=$();o.typeC4Shape={text:t};o.parentBoundary=p}),"addComponent");var O=(0,n.K2)((function(t,e,a,r,i){if(t===null||e===null){return}let n={};const s=y.find((e=>e.alias===t));if(s&&t===s.alias){n=s}else{n.alias=t;y.push(n)}if(e===void 0||e===null){n.label={text:""}}else{n.label={text:e}}if(a===void 0||a===null){n.type={text:"system"}}else{if(typeof a==="object"){let[t,e]=Object.entries(a)[0];n[t]={text:e}}else{n.type={text:a}}}if(typeof r==="object"){let[t,e]=Object.entries(r)[0];n[t]=e}else{n.tags=r}if(typeof i==="object"){let[t,e]=Object.entries(i)[0];n[t]=e}else{n.link=i}n.parentBoundary=p;n.wrap=$();f=p;p=t;u.push(f)}),"addPersonOrSystemBoundary");var T=(0,n.K2)((function(t,e,a,r,i){if(t===null||e===null){return}let n={};const s=y.find((e=>e.alias===t));if(s&&t===s.alias){n=s}else{n.alias=t;y.push(n)}if(e===void 0||e===null){n.label={text:""}}else{n.label={text:e}}if(a===void 0||a===null){n.type={text:"container"}}else{if(typeof a==="object"){let[t,e]=Object.entries(a)[0];n[t]={text:e}}else{n.type={text:a}}}if(typeof r==="object"){let[t,e]=Object.entries(r)[0];n[t]=e}else{n.tags=r}if(typeof i==="object"){let[t,e]=Object.entries(i)[0];n[t]=e}else{n.link=i}n.parentBoundary=p;n.wrap=$();f=p;p=t;u.push(f)}),"addContainerBoundary");var R=(0,n.K2)((function(t,e,a,r,i,n,s,l){if(e===null||a===null){return}let o={};const c=y.find((t=>t.alias===e));if(c&&e===c.alias){o=c}else{o.alias=e;y.push(o)}if(a===void 0||a===null){o.label={text:""}}else{o.label={text:a}}if(r===void 0||r===null){o.type={text:"node"}}else{if(typeof r==="object"){let[t,e]=Object.entries(r)[0];o[t]={text:e}}else{o.type={text:r}}}if(i===void 0||i===null){o.descr={text:""}}else{if(typeof i==="object"){let[t,e]=Object.entries(i)[0];o[t]={text:e}}else{o.descr={text:i}}}if(typeof s==="object"){let[t,e]=Object.entries(s)[0];o[t]=e}else{o.tags=s}if(typeof l==="object"){let[t,e]=Object.entries(l)[0];o[t]=e}else{o.link=l}o.nodeType=t;o.parentBoundary=p;o.wrap=$();f=p;p=e;u.push(f)}),"addDeploymentNode");var D=(0,n.K2)((function(){p=f;u.pop();f=u.pop();u.push(f)}),"popBoundaryParseStack");var N=(0,n.K2)((function(t,e,a,r,i,n,s,l,o,c,h){let u=d.find((t=>t.alias===e));if(u===void 0){u=y.find((t=>t.alias===e));if(u===void 0){return}}if(a!==void 0&&a!==null){if(typeof a==="object"){let[t,e]=Object.entries(a)[0];u[t]=e}else{u.bgColor=a}}if(r!==void 0&&r!==null){if(typeof r==="object"){let[t,e]=Object.entries(r)[0];u[t]=e}else{u.fontColor=r}}if(i!==void 0&&i!==null){if(typeof i==="object"){let[t,e]=Object.entries(i)[0];u[t]=e}else{u.borderColor=i}}if(n!==void 0&&n!==null){if(typeof n==="object"){let[t,e]=Object.entries(n)[0];u[t]=e}else{u.shadowing=n}}if(s!==void 0&&s!==null){if(typeof s==="object"){let[t,e]=Object.entries(s)[0];u[t]=e}else{u.shape=s}}if(l!==void 0&&l!==null){if(typeof l==="object"){let[t,e]=Object.entries(l)[0];u[t]=e}else{u.sprite=l}}if(o!==void 0&&o!==null){if(typeof o==="object"){let[t,e]=Object.entries(o)[0];u[t]=e}else{u.techn=o}}if(c!==void 0&&c!==null){if(typeof c==="object"){let[t,e]=Object.entries(c)[0];u[t]=e}else{u.legendText=c}}if(h!==void 0&&h!==null){if(typeof h==="object"){let[t,e]=Object.entries(h)[0];u[t]=e}else{u.legendSprite=h}}}),"updateElStyle");var P=(0,n.K2)((function(t,e,a,r,i,n,s){const l=b.find((t=>t.from===e&&t.to===a));if(l===void 0){return}if(r!==void 0&&r!==null){if(typeof r==="object"){let[t,e]=Object.entries(r)[0];l[t]=e}else{l.textColor=r}}if(i!==void 0&&i!==null){if(typeof i==="object"){let[t,e]=Object.entries(i)[0];l[t]=e}else{l.lineColor=i}}if(n!==void 0&&n!==null){if(typeof n==="object"){let[t,e]=Object.entries(n)[0];l[t]=parseInt(e)}else{l.offsetX=parseInt(n)}}if(s!==void 0&&s!==null){if(typeof s==="object"){let[t,e]=Object.entries(s)[0];l[t]=parseInt(e)}else{l.offsetY=parseInt(s)}}}),"updateRelStyle");var B=(0,n.K2)((function(t,e,a){let r=_;let i=m;if(typeof e==="object"){const t=Object.values(e)[0];r=parseInt(t)}else{r=parseInt(e)}if(typeof a==="object"){const t=Object.values(a)[0];i=parseInt(t)}else{i=parseInt(a)}if(r>=1){_=r}if(i>=1){m=i}}),"updateLayoutConfig");var j=(0,n.K2)((function(){return _}),"getC4ShapeInRow");var I=(0,n.K2)((function(){return m}),"getC4BoundaryInRow");var M=(0,n.K2)((function(){return p}),"getCurrentBoundaryParse");var K=(0,n.K2)((function(){return f}),"getParentBoundaryParse");var L=(0,n.K2)((function(t){if(t===void 0||t===null){return d}else{return d.filter((e=>e.parentBoundary===t))}}),"getC4ShapeArray");var Y=(0,n.K2)((function(t){return d.find((e=>e.alias===t))}),"getC4Shape");var U=(0,n.K2)((function(t){return Object.keys(L(t))}),"getC4ShapeKeys");var F=(0,n.K2)((function(t){if(t===void 0||t===null){return y}else{return y.filter((e=>e.parentBoundary===t))}}),"getBoundaries");var X=F;var z=(0,n.K2)((function(){return b}),"getRels");var W=(0,n.K2)((function(){return g}),"getTitle");var Q=(0,n.K2)((function(t){x=t}),"setWrap");var $=(0,n.K2)((function(){return x}),"autoWrap");var H=(0,n.K2)((function(){d=[];y=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}];f="";p="global";u=[""];b=[];u=[""];g="";x=false;_=4;m=2}),"clear");var q={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25};var V={FILLED:0,OPEN:1};var G={LEFTOF:0,RIGHTOF:1,OVER:2};var J=(0,n.K2)((function(t){let e=(0,n.jZ)(t,(0,n.D7)());g=e}),"setTitle");var Z={addPersonOrSystem:A,addPersonOrSystemBoundary:O,addContainer:C,addContainerBoundary:T,addComponent:w,addDeploymentNode:R,popBoundaryParseStack:D,addRel:S,updateElStyle:N,updateRelStyle:P,updateLayoutConfig:B,autoWrap:$,setWrap:Q,getC4ShapeArray:L,getC4Shape:Y,getC4ShapeKeys:U,getBoundaries:F,getBoundarys:X,getCurrentBoundaryParse:M,getParentBoundaryParse:K,getRels:z,getTitle:W,getC4Type:k,getC4ShapeInRow:j,getC4BoundaryInRow:I,setAccTitle:n.SV,getAccTitle:n.iN,getAccDescription:n.m7,setAccDescription:n.EI,getConfig:(0,n.K2)((()=>(0,n.D7)().c4),"getConfig"),clear:H,LINETYPE:q,ARROWTYPE:V,PLACEMENT:G,setTitle:J,setC4Type:E};var tt=(0,n.K2)((function(t,e){return(0,r.tk)(t,e)}),"drawRect");var et=(0,n.K2)((function(t,e,a,r,i,n){const s=t.append("image");s.attr("width",e);s.attr("height",a);s.attr("x",r);s.attr("y",i);let o=n.startsWith("data:image/png;base64")?n:(0,l.J)(n);s.attr("xlink:href",o)}),"drawImage");var at=(0,n.K2)(((t,e,a)=>{const r=t.append("g");let i=0;for(let n of e){let t=n.textColor?n.textColor:"#444444";let e=n.lineColor?n.lineColor:"#444444";let s=n.offsetX?parseInt(n.offsetX):0;let l=n.offsetY?parseInt(n.offsetY):0;let o="";if(i===0){let t=r.append("line");t.attr("x1",n.startPoint.x);t.attr("y1",n.startPoint.y);t.attr("x2",n.endPoint.x);t.attr("y2",n.endPoint.y);t.attr("stroke-width","1");t.attr("stroke",e);t.style("fill","none");if(n.type!=="rel_b"){t.attr("marker-end","url("+o+"#arrowhead)")}if(n.type==="birel"||n.type==="rel_b"){t.attr("marker-start","url("+o+"#arrowend)")}i=-1}else{let t=r.append("path");t.attr("fill","none").attr("stroke-width","1").attr("stroke",e).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",n.startPoint.x).replaceAll("starty",n.startPoint.y).replaceAll("controlx",n.startPoint.x+(n.endPoint.x-n.startPoint.x)/2-(n.endPoint.x-n.startPoint.x)/4).replaceAll("controly",n.startPoint.y+(n.endPoint.y-n.startPoint.y)/2).replaceAll("stopx",n.endPoint.x).replaceAll("stopy",n.endPoint.y));if(n.type!=="rel_b"){t.attr("marker-end","url("+o+"#arrowhead)")}if(n.type==="birel"||n.type==="rel_b"){t.attr("marker-start","url("+o+"#arrowend)")}}let c=a.messageFont();ft(a)(n.label.text,r,Math.min(n.startPoint.x,n.endPoint.x)+Math.abs(n.endPoint.x-n.startPoint.x)/2+s,Math.min(n.startPoint.y,n.endPoint.y)+Math.abs(n.endPoint.y-n.startPoint.y)/2+l,n.label.width,n.label.height,{fill:t},c);if(n.techn&&n.techn.text!==""){c=a.messageFont();ft(a)("["+n.techn.text+"]",r,Math.min(n.startPoint.x,n.endPoint.x)+Math.abs(n.endPoint.x-n.startPoint.x)/2+s,Math.min(n.startPoint.y,n.endPoint.y)+Math.abs(n.endPoint.y-n.startPoint.y)/2+a.messageFontSize+5+l,Math.max(n.label.width,n.techn.width),n.techn.height,{fill:t,"font-style":"italic"},c)}}}),"drawRels");var rt=(0,n.K2)((function(t,e,a){const r=t.append("g");let i=e.bgColor?e.bgColor:"none";let n=e.borderColor?e.borderColor:"#444444";let s=e.fontColor?e.fontColor:"black";let l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};if(e.nodeType){l={"stroke-width":1}}let o={x:e.x,y:e.y,fill:i,stroke:n,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l};tt(r,o);let c=a.boundaryFont();c.fontWeight="bold";c.fontSize=c.fontSize+2;c.fontColor=s;ft(a)(e.label.text,r,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},c);if(e.type&&e.type.text!==""){c=a.boundaryFont();c.fontColor=s;ft(a)(e.type.text,r,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},c)}if(e.descr&&e.descr.text!==""){c=a.boundaryFont();c.fontSize=c.fontSize-2;c.fontColor=s;ft(a)(e.descr.text,r,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},c)}}),"drawBoundary");var it=(0,n.K2)((function(t,e,a){let i=e.bgColor?e.bgColor:a[e.typeC4Shape.text+"_bg_color"];let n=e.borderColor?e.borderColor:a[e.typeC4Shape.text+"_border_color"];let s=e.fontColor?e.fontColor:"#FFFFFF";let l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const o=t.append("g");o.attr("class","person-man");const c=(0,r.PB)();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":c.x=e.x;c.y=e.y;c.fill=i;c.width=e.width;c.height=e.height;c.stroke=n;c.rx=2.5;c.ry=2.5;c.attrs={"stroke-width":.5};tt(o,c);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":o.append("path").attr("fill",i).attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height));o.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":o.append("path").attr("fill",i).attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2));o.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",n).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2));break}let h=pt(a,e.typeC4Shape.text);o.append("text").attr("fill",s).attr("font-family",h.fontFamily).attr("font-size",h.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>");switch(e.typeC4Shape.text){case"person":case"external_person":et(o,48,48,e.x+e.width/2-24,e.y+e.image.Y,l);break}let d=a[e.typeC4Shape.text+"Font"]();d.fontWeight="bold";d.fontSize=d.fontSize+2;d.fontColor=s;ft(a)(e.label.text,o,e.x,e.y+e.label.Y,e.width,e.height,{fill:s},d);d=a[e.typeC4Shape.text+"Font"]();d.fontColor=s;if(e.techn&&e.techn?.text!==""){ft(a)(e.techn.text,o,e.x,e.y+e.techn.Y,e.width,e.height,{fill:s,"font-style":"italic"},d)}else if(e.type&&e.type.text!==""){ft(a)(e.type.text,o,e.x,e.y+e.type.Y,e.width,e.height,{fill:s,"font-style":"italic"},d)}if(e.descr&&e.descr.text!==""){d=a.personFont();d.fontColor=s;ft(a)(e.descr.text,o,e.x,e.y+e.descr.Y,e.width,e.height,{fill:s},d)}return e.height}),"drawC4Shape");var nt=(0,n.K2)((function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")}),"insertDatabaseIcon");var st=(0,n.K2)((function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")}),"insertComputerIcon");var lt=(0,n.K2)((function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")}),"insertClockIcon");var ot=(0,n.K2)((function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")}),"insertArrowHead");var ct=(0,n.K2)((function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")}),"insertArrowEnd");var ht=(0,n.K2)((function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")}),"insertArrowFilledHead");var dt=(0,n.K2)((function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)}),"insertDynamicNumber");var ut=(0,n.K2)((function(t){const e=t.append("defs");const a=e.append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);a.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z");a.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")}),"insertArrowCrossHead");var pt=(0,n.K2)(((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]})),"getC4ShapeFont");var ft=function(){function t(t,e,a,i,n,s,l){const o=e.append("text").attr("x",a+n/2).attr("y",i+s/2+5).style("text-anchor","middle").text(t);r(o,l)}(0,n.K2)(t,"byText");function e(t,e,a,i,s,l,o,c){const{fontSize:h,fontFamily:d,fontWeight:u}=c;const p=t.split(n.Y2.lineBreakRegex);for(let n=0;n=this.data.widthLimit||a>=this.data.widthLimit||this.nextData.cnt>xt){e=this.nextData.startx+t.margin+mt.nextLinePaddingX;r=this.nextData.stopy+t.margin*2;this.nextData.stopx=a=e+t.width;this.nextData.starty=this.nextData.stopy;this.nextData.stopy=i=r+t.height;this.nextData.cnt=1}t.x=e;t.y=r;this.updateVal(this.data,"startx",e,Math.min);this.updateVal(this.data,"starty",r,Math.min);this.updateVal(this.data,"stopx",a,Math.max);this.updateVal(this.data,"stopy",i,Math.max);this.updateVal(this.nextData,"startx",e,Math.min);this.updateVal(this.nextData,"starty",r,Math.min);this.updateVal(this.nextData,"stopx",a,Math.max);this.updateVal(this.nextData,"stopy",i,Math.max)}init(t){this.name="";this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0};this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0};kt(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t;this.data.stopy+=t}};var kt=(0,n.K2)((function(t){(0,n.hH)(mt,t);if(t.fontFamily){mt.personFontFamily=mt.systemFontFamily=mt.messageFontFamily=t.fontFamily}if(t.fontSize){mt.personFontSize=mt.systemFontSize=mt.messageFontSize=t.fontSize}if(t.fontWeight){mt.personFontWeight=mt.systemFontWeight=mt.messageFontWeight=t.fontWeight}}),"setConf");var Et=(0,n.K2)(((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]})),"c4ShapeFont");var St=(0,n.K2)((t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight})),"boundaryFont");var At=(0,n.K2)((t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight})),"messageFont");function Ct(t,e,a,r,s){if(!e[t].width){if(a){e[t].text=(0,i.bH)(e[t].text,s,r);e[t].textLines=e[t].text.split(n.Y2.lineBreakRegex).length;e[t].width=s;e[t].height=(0,i.ru)(e[t].text,r)}else{let a=e[t].text.split(n.Y2.lineBreakRegex);e[t].textLines=a.length;let s=0;e[t].height=0;e[t].width=0;for(const n of a){e[t].width=Math.max((0,i.Un)(n,r),e[t].width);s=(0,i.ru)(n,r);e[t].height=e[t].height+s}}}}(0,n.K2)(Ct,"calcC4ShapeTextWH");var wt=(0,n.K2)((function(t,e,a){e.x=a.data.startx;e.y=a.data.starty;e.width=a.data.stopx-a.data.startx;e.height=a.data.stopy-a.data.starty;e.label.y=mt.c4ShapeMargin-35;let r=e.wrap&&mt.wrap;let n=St(mt);n.fontSize=n.fontSize+2;n.fontWeight="bold";let s=(0,i.Un)(e.label.text,n);Ct("label",e,r,n,s);yt.drawBoundary(t,e,mt)}),"drawBoundary");var Ot=(0,n.K2)((function(t,e,a,r){let n=0;for(const s of r){n=0;const r=a[s];let l=Et(mt,r.typeC4Shape.text);l.fontSize=l.fontSize-2;r.typeC4Shape.width=(0,i.Un)("«"+r.typeC4Shape.text+"»",l);r.typeC4Shape.height=l.fontSize+2;r.typeC4Shape.Y=mt.c4ShapePadding;n=r.typeC4Shape.Y+r.typeC4Shape.height-4;r.image={width:0,height:0,Y:0};switch(r.typeC4Shape.text){case"person":case"external_person":r.image.width=48;r.image.height=48;r.image.Y=n;n=r.image.Y+r.image.height;break}if(r.sprite){r.image.width=48;r.image.height=48;r.image.Y=n;n=r.image.Y+r.image.height}let o=r.wrap&&mt.wrap;let c=mt.width-mt.c4ShapePadding*2;let h=Et(mt,r.typeC4Shape.text);h.fontSize=h.fontSize+2;h.fontWeight="bold";Ct("label",r,o,h,c);r.label.Y=n+8;n=r.label.Y+r.label.height;if(r.type&&r.type.text!==""){r.type.text="["+r.type.text+"]";let t=Et(mt,r.typeC4Shape.text);Ct("type",r,o,t,c);r.type.Y=n+5;n=r.type.Y+r.type.height}else if(r.techn&&r.techn.text!==""){r.techn.text="["+r.techn.text+"]";let t=Et(mt,r.techn.text);Ct("techn",r,o,t,c);r.techn.Y=n+5;n=r.techn.Y+r.techn.height}let d=n;let u=r.label.width;if(r.descr&&r.descr.text!==""){let t=Et(mt,r.typeC4Shape.text);Ct("descr",r,o,t,c);r.descr.Y=n+20;n=r.descr.Y+r.descr.height;u=Math.max(r.label.width,r.descr.width);d=n-r.descr.textLines*5}u=u+mt.c4ShapePadding;r.width=Math.max(r.width||mt.width,u,mt.width);r.height=Math.max(r.height||mt.height,d,mt.height);r.margin=r.margin||mt.c4ShapeMargin;t.insert(r);yt.drawC4Shape(e,r,mt)}t.bumpLastMargin(mt.c4ShapeMargin)}),"drawC4ShapeArray");var Tt=class{static{(0,n.K2)(this,"Point")}constructor(t,e){this.x=t;this.y=e}};var Rt=(0,n.K2)((function(t,e){let a=t.x;let r=t.y;let i=e.x;let n=e.y;let s=a+t.width/2;let l=r+t.height/2;let o=Math.abs(a-i);let c=Math.abs(r-n);let h=c/o;let d=t.height/t.width;let u=null;if(r==n&&ai){u=new Tt(a,l)}else if(a==i&&rn){u=new Tt(s,r)}if(a>i&&r=h){u=new Tt(a,l+h*t.width/2)}else{u=new Tt(s-o/c*t.height/2,r+t.height)}}else if(a=h){u=new Tt(a+t.width,l+h*t.width/2)}else{u=new Tt(s+o/c*t.height/2,r+t.height)}}else if(an){if(d>=h){u=new Tt(a+t.width,l-h*t.width/2)}else{u=new Tt(s+t.height/2*o/c,r)}}else if(a>i&&r>n){if(d>=h){u=new Tt(a,l-t.width/2*h)}else{u=new Tt(s-t.height/2*o/c,r)}}return u}),"getIntersectPoint");var Dt=(0,n.K2)((function(t,e){let a={x:0,y:0};a.x=e.x+e.width/2;a.y=e.y+e.height/2;let r=Rt(t,a);a.x=t.x+t.width/2;a.y=t.y+t.height/2;let i=Rt(e,a);return{startPoint:r,endPoint:i}}),"getIntersectPoints");var Nt=(0,n.K2)((function(t,e,a,r){let n=0;for(let s of e){n=n+1;let t=s.wrap&&mt.wrap;let e=At(mt);let l=r.db.getC4Type();if(l==="C4Dynamic"){s.label.text=n+": "+s.label.text}let o=(0,i.Un)(s.label.text,e);Ct("label",s,t,e,o);if(s.techn&&s.techn.text!==""){o=(0,i.Un)(s.techn.text,e);Ct("techn",s,t,e,o)}if(s.descr&&s.descr.text!==""){o=(0,i.Un)(s.descr.text,e);Ct("descr",s,t,e,o)}let c=a(s.from);let h=a(s.to);let d=Dt(c,h);s.startPoint=d.startPoint;s.endPoint=d.endPoint}yt.drawRels(t,e,mt)}),"drawRels");function Pt(t,e,a,r,i){let n=new vt(i);n.data.widthLimit=a.data.widthLimit/Math.min(_t,r.length);for(let[s,l]of r.entries()){let r=0;l.image={width:0,height:0,Y:0};if(l.sprite){l.image.width=48;l.image.height=48;l.image.Y=r;r=l.image.Y+l.image.height}let o=l.wrap&&mt.wrap;let c=St(mt);c.fontSize=c.fontSize+2;c.fontWeight="bold";Ct("label",l,o,c,n.data.widthLimit);l.label.Y=r+8;r=l.label.Y+l.label.height;if(l.type&&l.type.text!==""){l.type.text="["+l.type.text+"]";let t=St(mt);Ct("type",l,o,t,n.data.widthLimit);l.type.Y=r+5;r=l.type.Y+l.type.height}if(l.descr&&l.descr.text!==""){let t=St(mt);t.fontSize=t.fontSize-2;Ct("descr",l,o,t,n.data.widthLimit);l.descr.Y=r+20;r=l.descr.Y+l.descr.height}if(s==0||s%_t===0){let t=a.data.startx+mt.diagramMarginX;let e=a.data.stopy+mt.diagramMarginY+r;n.setData(t,t,e,e)}else{let t=n.data.stopx!==n.data.startx?n.data.stopx+mt.diagramMarginX:n.data.startx;let e=n.data.starty;n.setData(t,t,e,e)}n.name=l.alias;let h=i.db.getC4ShapeArray(l.alias);let d=i.db.getC4ShapeKeys(l.alias);if(d.length>0){Ot(n,t,h,d)}e=l.alias;let u=i.db.getBoundarys(e);if(u.length>0){Pt(t,e,n,u,i)}if(l.alias!=="global"){wt(t,l,n)}a.data.stopy=Math.max(n.data.stopy+mt.c4ShapeMargin,a.data.stopy);a.data.stopx=Math.max(n.data.stopx+mt.c4ShapeMargin,a.data.stopx);bt=Math.max(bt,a.data.stopx);gt=Math.max(gt,a.data.stopy)}}(0,n.K2)(Pt,"drawInsideBoundary");var Bt=(0,n.K2)((function(t,e,a,r){mt=(0,n.D7)().c4;const i=(0,n.D7)().securityLevel;let l;if(i==="sandbox"){l=(0,s.Ltv)("#i"+e)}const o=i==="sandbox"?(0,s.Ltv)(l.nodes()[0].contentDocument.body):(0,s.Ltv)("body");let c=r.db;r.db.setWrap(mt.wrap);xt=c.getC4ShapeInRow();_t=c.getC4BoundaryInRow();n.Rm.debug(`C:${JSON.stringify(mt,null,2)}`);const h=i==="sandbox"?o.select(`[id="${e}"]`):(0,s.Ltv)(`[id="${e}"]`);yt.insertComputerIcon(h);yt.insertDatabaseIcon(h);yt.insertClockIcon(h);let d=new vt(r);d.setData(mt.diagramMarginX,mt.diagramMarginX,mt.diagramMarginY,mt.diagramMarginY);d.data.widthLimit=screen.availWidth;bt=mt.diagramMarginX;gt=mt.diagramMarginY;const u=r.db.getTitle();let p=r.db.getBoundarys("");Pt(h,"",d,p,r);yt.insertArrowHead(h);yt.insertArrowEnd(h);yt.insertArrowCrossHead(h);yt.insertArrowFilledHead(h);Nt(h,r.db.getRels(),r.db.getC4Shape,r);d.data.stopx=bt;d.data.stopy=gt;const f=d.data;let y=f.stopy-f.starty;let b=y+2*mt.diagramMarginY;let g=f.stopx-f.startx;const x=g+2*mt.diagramMarginX;if(u){h.append("text").text(u).attr("x",(f.stopx-f.startx)/2-4*mt.diagramMarginX).attr("y",f.starty+mt.diagramMarginY)}(0,n.a$)(h,b,x,mt.useMaxWidth);const _=u?60:0;h.attr("viewBox",f.startx-mt.diagramMarginX+" -"+(mt.diagramMarginY+_)+" "+x+" "+(b+_));n.Rm.debug(`models:`,f)}),"draw");var jt={drawPersonOrSystemArray:Ot,drawBoundary:wt,setConf:kt,draw:Bt};var It=(0,n.K2)((t=>`.person {\n stroke: ${t.personBorder};\n fill: ${t.personBkg};\n }\n`),"getStyles");var Mt=It;var Kt={parser:h,db:Z,renderer:jt,styles:Mt,init:(0,n.K2)((({c4:t,wrap:e})=>{jt.setConf(t);Z.setWrap(e)}),"init")}},60148:(t,e,a)=>{a.d(e,{CP:()=>c,HT:()=>d,PB:()=>h,aC:()=>o,lC:()=>s,m:()=>l,tk:()=>n});var r=a(75905);var i=a(16750);var n=(0,r.K2)(((t,e)=>{const a=t.append("rect");a.attr("x",e.x);a.attr("y",e.y);a.attr("fill",e.fill);a.attr("stroke",e.stroke);a.attr("width",e.width);a.attr("height",e.height);if(e.name){a.attr("name",e.name)}if(e.rx){a.attr("rx",e.rx)}if(e.ry){a.attr("ry",e.ry)}if(e.attrs!==void 0){for(const t in e.attrs){a.attr(t,e.attrs[t])}}if(e.class){a.attr("class",e.class)}return a}),"drawRect");var s=(0,r.K2)(((t,e)=>{const a={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};const r=n(t,a);r.lower()}),"drawBackgroundRect");var l=(0,r.K2)(((t,e)=>{const a=e.text.replace(r.H1," ");const i=t.append("text");i.attr("x",e.x);i.attr("y",e.y);i.attr("class","legend");i.style("text-anchor",e.anchor);if(e.class){i.attr("class",e.class)}const n=i.append("tspan");n.attr("x",e.x+e.textMargin*2);n.text(a);return i}),"drawText");var o=(0,r.K2)(((t,e,a,r)=>{const n=t.append("image");n.attr("x",e);n.attr("y",a);const s=(0,i.J)(r);n.attr("xlink:href",s)}),"drawImage");var c=(0,r.K2)(((t,e,a,r)=>{const n=t.append("use");n.attr("x",e);n.attr("y",a);const s=(0,i.J)(r);n.attr("xlink:href",`#${s}`)}),"drawEmbeddedImage");var h=(0,r.K2)((()=>{const t={x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0};return t}),"getNoteRect");var d=(0,r.K2)((()=>{const t={x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:true};return t}),"getTextObj")}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1954.f1c519cb1415c7da3e8c.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1954.f1c519cb1415c7da3e8c.js deleted file mode 100644 index 90006b7ffccef76fef3d8174d089dec1a84ec9ee..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1954.f1c519cb1415c7da3e8c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1954],{21954:(e,r,o)=>{o.r(r);o.d(r,{fSharp:()=>n,oCaml:()=>i,sml:()=>d});function t(e){var r={as:"keyword",do:"keyword",else:"keyword",end:"keyword",exception:"keyword",fun:"keyword",functor:"keyword",if:"keyword",in:"keyword",include:"keyword",let:"keyword",of:"keyword",open:"keyword",rec:"keyword",struct:"keyword",then:"keyword",type:"keyword",val:"keyword",while:"keyword",with:"keyword"};var o=e.extraWords||{};for(var t in o){if(o.hasOwnProperty(t)){r[t]=e.extraWords[t]}}var i=[];for(var n in r){i.push(n)}function d(o,t){var i=o.next();if(i==='"'){t.tokenize=w;return t.tokenize(o,t)}if(i==="{"){if(o.eat("|")){t.longString=true;t.tokenize=l;return t.tokenize(o,t)}}if(i==="("){if(o.match(/^\*(?!\))/)){t.commentLevel++;t.tokenize=k;return t.tokenize(o,t)}}if(i==="~"||i==="?"){o.eatWhile(/\w/);return"variableName.special"}if(i==="`"){o.eatWhile(/\w/);return"quote"}if(i==="/"&&e.slashComments&&o.eat("/")){o.skipToEnd();return"comment"}if(/\d/.test(i)){if(i==="0"&&o.eat(/[bB]/)){o.eatWhile(/[01]/)}if(i==="0"&&o.eat(/[xX]/)){o.eatWhile(/[0-9a-fA-F]/)}if(i==="0"&&o.eat(/[oO]/)){o.eatWhile(/[0-7]/)}else{o.eatWhile(/[\d_]/);if(o.eat(".")){o.eatWhile(/[\d]/)}if(o.eat(/[eE]/)){o.eatWhile(/[\d\-+]/)}}return"number"}if(/[+\-*&%=<>!?|@\.~:]/.test(i)){return"operator"}if(/[\w\xa1-\uffff]/.test(i)){o.eatWhile(/[\w\xa1-\uffff]/);var n=o.current();return r.hasOwnProperty(n)?r[n]:"variable"}return null}function w(e,r){var o,t=false,i=false;while((o=e.next())!=null){if(o==='"'&&!i){t=true;break}i=!i&&o==="\\"}if(t&&!i){r.tokenize=d}return"string"}function k(e,r){var o,t;while(r.commentLevel>0&&(t=e.next())!=null){if(o==="("&&t==="*")r.commentLevel++;if(o==="*"&&t===")")r.commentLevel--;o=t}if(r.commentLevel<=0){r.tokenize=d}return"comment"}function l(e,r){var o,t;while(r.longString&&(t=e.next())!=null){if(o==="|"&&t==="}")r.longString=false;o=t}if(!r.longString){r.tokenize=d}return"string"}return{startState:function(){return{tokenize:d,commentLevel:0,longString:false}},token:function(e,r){if(e.eatSpace())return null;return r.tokenize(e,r)},languageData:{autocomplete:i,commentTokens:{line:e.slashComments?"//":undefined,block:{open:"(*",close:"*)"}}}}}const i=t({name:"ocaml",extraWords:{and:"keyword",assert:"keyword",begin:"keyword",class:"keyword",constraint:"keyword",done:"keyword",downto:"keyword",external:"keyword",function:"keyword",initializer:"keyword",lazy:"keyword",match:"keyword",method:"keyword",module:"keyword",mutable:"keyword",new:"keyword",nonrec:"keyword",object:"keyword",private:"keyword",sig:"keyword",to:"keyword",try:"keyword",value:"keyword",virtual:"keyword",when:"keyword",raise:"builtin",failwith:"builtin",true:"builtin",false:"builtin",asr:"builtin",land:"builtin",lor:"builtin",lsl:"builtin",lsr:"builtin",lxor:"builtin",mod:"builtin",or:"builtin",raise_notrace:"builtin",trace:"builtin",exit:"builtin",print_string:"builtin",print_endline:"builtin",int:"type",float:"type",bool:"type",char:"type",string:"type",unit:"type",List:"builtin"}});const n=t({name:"fsharp",extraWords:{abstract:"keyword",assert:"keyword",base:"keyword",begin:"keyword",class:"keyword",default:"keyword",delegate:"keyword","do!":"keyword",done:"keyword",downcast:"keyword",downto:"keyword",elif:"keyword",extern:"keyword",finally:"keyword",for:"keyword",function:"keyword",global:"keyword",inherit:"keyword",inline:"keyword",interface:"keyword",internal:"keyword",lazy:"keyword","let!":"keyword",match:"keyword",member:"keyword",module:"keyword",mutable:"keyword",namespace:"keyword",new:"keyword",null:"keyword",override:"keyword",private:"keyword",public:"keyword","return!":"keyword",return:"keyword",select:"keyword",static:"keyword",to:"keyword",try:"keyword",upcast:"keyword","use!":"keyword",use:"keyword",void:"keyword",when:"keyword","yield!":"keyword",yield:"keyword",atomic:"keyword",break:"keyword",checked:"keyword",component:"keyword",const:"keyword",constraint:"keyword",constructor:"keyword",continue:"keyword",eager:"keyword",event:"keyword",external:"keyword",fixed:"keyword",method:"keyword",mixin:"keyword",object:"keyword",parallel:"keyword",process:"keyword",protected:"keyword",pure:"keyword",sealed:"keyword",tailcall:"keyword",trait:"keyword",virtual:"keyword",volatile:"keyword",List:"builtin",Seq:"builtin",Map:"builtin",Set:"builtin",Option:"builtin",int:"builtin",string:"builtin",not:"builtin",true:"builtin",false:"builtin",raise:"builtin",failwith:"builtin"},slashComments:true});const d=t({name:"sml",extraWords:{abstype:"keyword",and:"keyword",andalso:"keyword",case:"keyword",datatype:"keyword",fn:"keyword",handle:"keyword",infix:"keyword",infixr:"keyword",local:"keyword",nonfix:"keyword",op:"keyword",orelse:"keyword",raise:"keyword",withtype:"keyword",eqtype:"keyword",sharing:"keyword",sig:"keyword",signature:"keyword",structure:"keyword",where:"keyword",true:"keyword",false:"keyword",int:"builtin",real:"builtin",string:"builtin",char:"builtin",bool:"builtin"},slashComments:true})}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1960.f8d8ef8a91360e60f0b9.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1960.f8d8ef8a91360e60f0b9.js deleted file mode 100644 index cb8a49a01702b4b42df6bef56691df44c6574797..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1960.f8d8ef8a91360e60f0b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1960],{41960:(e,t,n)=>{n.r(t);n.d(t,{lua:()=>d});function a(e){return new RegExp("^(?:"+e.join("|")+")","i")}function r(e){return new RegExp("^(?:"+e.join("|")+")$","i")}var i=r(["_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load","loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require","select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall","coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield","debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable","debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable","debug.setupvalue","debug.traceback","close","flush","lines","read","seek","setvbuf","write","io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin","io.stdout","io.tmpfile","io.type","io.write","math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg","math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max","math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh","math.sqrt","math.tan","math.tanh","os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale","os.time","os.tmpname","package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload","package.seeall","string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub","string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper","table.concat","table.insert","table.maxn","table.remove","table.sort"]);var o=r(["and","break","elseif","false","nil","not","or","return","true","function","end","if","then","else","do","while","repeat","until","for","in","local"]);var u=r(["function","if","repeat","do","\\(","{"]);var l=r(["end","until","\\)","}"]);var s=a(["end","until","\\)","}","else","elseif"]);function c(e){var t=0;while(e.eat("="))++t;e.eat("[");return t}function g(e,t){var n=e.next();if(n=="-"&&e.eat("-")){if(e.eat("[")&&e.eat("["))return(t.cur=m(c(e),"comment"))(e,t);e.skipToEnd();return"comment"}if(n=='"'||n=="'")return(t.cur=p(n))(e,t);if(n=="["&&/[\[=]/.test(e.peek()))return(t.cur=m(c(e),"string"))(e,t);if(/\d/.test(n)){e.eatWhile(/[\w.%]/);return"number"}if(/[\w_]/.test(n)){e.eatWhile(/[\w\\\-_.]/);return"variable"}return null}function m(e,t){return function(n,a){var r=null,i;while((i=n.next())!=null){if(r==null){if(i=="]")r=0}else if(i=="=")++r;else if(i=="]"&&r==e){a.cur=g;break}else r=null}return t}}function p(e){return function(t,n){var a=false,r;while((r=t.next())!=null){if(r==e&&!a)break;a=!a&&r=="\\"}if(!a)n.cur=g;return"string"}}const d={name:"lua",startState:function(){return{basecol:0,indentDepth:0,cur:g}},token:function(e,t){if(e.eatSpace())return null;var n=t.cur(e,t);var a=e.current();if(n=="variable"){if(o.test(a))n="keyword";else if(i.test(a))n="builtin"}if(n!="comment"&&n!="string"){if(u.test(a))++t.indentDepth;else if(l.test(a))--t.indentDepth}return n},indent:function(e,t,n){var a=s.test(t);return e.basecol+n.unit*(e.indentDepth-(a?1:0))},languageData:{indentOnInput:/^\s*(?:end|until|else|\)|\})$/,commentTokens:{line:"--",block:{open:"--[[",close:"]]--"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1962.6a7da74e809b70d5200d.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1962.6a7da74e809b70d5200d.js deleted file mode 100644 index 3e7497290d96eef46e2772f0dab8d09986b66f0b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1962.6a7da74e809b70d5200d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1962],{91962:(e,t,a)=>{a.r(t);a.d(t,{autoCloseTags:()=>ze,html:()=>Je,htmlCompletionSource:()=>Re,htmlCompletionSourceWith:()=>We,htmlLanguage:()=>Ue,htmlPlain:()=>je});var n=a(27421);var l=a(45145);var r=a(66575);const s=54,o=1,u=55,O=2,i=56,p=3,c=4,d=5,f=6,h=7,m=8,S=9,g=10,P=11,x=12,b=13,V=57,v=14,_=58,y=20,T=22,q=23,w=24,$=26,Q=27,X=28,A=31,C=34,k=36,Y=37,M=0,B=1;const G={area:true,base:true,br:true,col:true,command:true,embed:true,frame:true,hr:true,img:true,input:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true,menuitem:true};const E={dd:true,li:true,optgroup:true,option:true,p:true,rp:true,rt:true,tbody:true,td:true,tfoot:true,th:true,tr:true};const Z={dd:{dd:true,dt:true},dt:{dd:true,dt:true},li:{li:true},option:{option:true,optgroup:true},optgroup:{optgroup:true},p:{address:true,article:true,aside:true,blockquote:true,dir:true,div:true,dl:true,fieldset:true,footer:true,form:true,h1:true,h2:true,h3:true,h4:true,h5:true,h6:true,header:true,hgroup:true,hr:true,menu:true,nav:true,ol:true,p:true,pre:true,section:true,table:true,ul:true},rp:{rp:true,rt:true},rt:{rp:true,rt:true},tbody:{tbody:true,tfoot:true},td:{td:true,th:true},tfoot:{tbody:true},th:{td:true,th:true},thead:{tbody:true,tfoot:true},tr:{tr:true}};function D(e){return e==45||e==46||e==58||e>=65&&e<=90||e==95||e>=97&&e<=122||e>=161}function R(e){return e==9||e==10||e==13||e==32}let W=null,H=null,N=0;function I(e,t){let a=e.pos+t;if(N==a&&H==e)return W;let n=e.peek(t);while(R(n))n=e.peek(++t);let l="";for(;;){if(!D(n))break;l+=String.fromCharCode(n);n=e.peek(++t)}H=e;N=a;return W=l?l.toLowerCase():n==L||n==z?undefined:null}const j=60,U=62,J=47,L=63,z=33,F=45;function K(e,t){this.name=e;this.parent=t;this.hash=t?t.hash:0;for(let a=0;a-1?new K(I(n,1)||"",e):e},reduce(e,t){return t==y&&e?e.parent:e},reuse(e,t,a,n){let l=t.type.id;return l==f||l==k?new K(I(n,1)||"",e):e},hash(e){return e?e.hash:0},strict:false});const ae=new n.Lu(((e,t)=>{if(e.next!=j){if(e.next<0&&t.context)e.acceptToken(V);return}e.advance();let a=e.next==J;if(a)e.advance();let n=I(e,0);if(n===undefined)return;if(!n)return e.acceptToken(a?v:f);let l=t.context?t.context.name:null;if(a){if(n==l)return e.acceptToken(P);if(l&&E[l])return e.acceptToken(V,-2);if(t.dialectEnabled(M))return e.acceptToken(x);for(let e=t.context;e;e=e.parent)if(e.name==n)return;e.acceptToken(b)}else{if(n=="script")return e.acceptToken(h);if(n=="style")return e.acceptToken(m);if(n=="textarea")return e.acceptToken(S);if(G.hasOwnProperty(n))return e.acceptToken(g);if(l&&Z[l]&&Z[l][n])e.acceptToken(V,-1);else e.acceptToken(f)}}),{contextual:true});const ne=new n.Lu((e=>{for(let t=0,a=0;;a++){if(e.next<0){if(a)e.acceptToken(_);break}if(e.next==F){t++}else if(e.next==U&&t>=2){if(a>3)e.acceptToken(_,-2);break}else{t=0}e.advance()}}));function le(e){for(;e;e=e.parent)if(e.name=="svg"||e.name=="math")return true;return false}const re=new n.Lu(((e,t)=>{if(e.next==J&&e.peek(1)==U){let a=t.dialectEnabled(B)||le(t.context);e.acceptToken(a?d:c,2)}else if(e.next==U){e.acceptToken(c,1)}}));function se(e,t,a){let l=2+e.length;return new n.Lu((n=>{for(let r=0,s=0,o=0;;o++){if(n.next<0){if(o)n.acceptToken(t);break}if(r==0&&n.next==j||r==1&&n.next==J||r>=2&&rs)n.acceptToken(t,-s);else n.acceptToken(a,-(s-2));break}else if((n.next==10||n.next==13)&&o){n.acceptToken(t,1);break}else{r=s=0}n.advance()}}))}const oe=se("script",s,o);const ue=se("style",u,O);const Oe=se("textarea",i,p);const ie=(0,l.styleTags)({"Text RawText":l.tags.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":l.tags.angleBracket,TagName:l.tags.tagName,"MismatchedCloseTag/TagName":[l.tags.tagName,l.tags.invalid],AttributeName:l.tags.attributeName,"AttributeValue UnquotedAttributeValue":l.tags.attributeValue,Is:l.tags.definitionOperator,"EntityReference CharacterReference":l.tags.character,Comment:l.tags.blockComment,ProcessingInst:l.tags.processingInstruction,DoctypeDecl:l.tags.documentMeta});const pe=n.U1.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:te,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"]],propSources:[ie],skippedNodes:[0],repeatNodeCount:9,tokenData:"#%g!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs4ysv-_vw5iwxJ^x}-_}!OKP!O!P-_!P!Q$q!Q![-_![!]!!O!]!^-_!^!_!&W!_!`#$o!`!a&X!a!c-_!c!}!!O!}#R-_#R#S!!O#S#T3V#T#o!!O#o#s-_#s$f$q$f%W-_%W%o!!O%o%p-_%p&a!!O&a&b-_&b1p!!O1p4U-_4U4d!!O4d4e-_4e$IS!!O$IS$I`-_$I`$Ib!!O$Ib$Kh-_$Kh%#t!!O%#t&/x-_&/x&Et!!O&Et&FV-_&FV;'S!!O;'S;:j!&Q;:j;=`4s<%l?&r-_?&r?Ah!!O?Ah?BY$q?BY?Mn!!O?MnO$q!Z$|c`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT`POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYkWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]``P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_1n!_!a&X!a#S-_#S#T3V#T#s-_#s$f$q$f;'S-_;'S;=`4s<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/echSkWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!^!_0p!a#S/^#S#T0p#T#s/^#s$f+P$f;'S/^;'S;=`1h<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0uXhSqr0psw0px!P0p!Q!_0p!a#s0p$f;'S0p;'S;=`1b<%l?Ah0p?BY?Mn0pS1eP;=`<%l0p[1kP;=`<%l/^!U1wbhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!U3SP;=`<%l1n!V3bchS`P!a`!cpOq&Xqr3Vrs&}sv3Vvw0pwx(tx!P3V!P!Q&X!Q!^3V!^!_1n!_!a&X!a#s3V#s$f&X$f;'S3V;'S;=`4m<%l?Ah3V?Ah?BY&X?BY?Mn3V?MnO&X!V4pP;=`<%l3V!_4vP;=`<%l-_!Z5SV!`h`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_5rjhSkWc!ROX7dXZ8qZ[7d[^8q^p7dqr:crs8qst@Ttw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^/^!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!Z7ibkWOX7dXZ8qZ[7d[^8q^p7dqr7drs8qst+Ptw7dwx8qx!]7d!]!^9f!^!a8q!a#S7d#S#T8q#T;'S7d;'S;=`:]<%lO7d!R8tVOp8qqs8qt!]8q!]!^9Z!^;'S8q;'S;=`9`<%lO8q!R9`Oa!R!R9cP;=`<%l8q!Z9mYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z:`P;=`<%l7d!_:jjhSkWOX7dXZ8qZ[7d[^8q^p7dqr:crs8qst/^tw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^<[!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!_b#d#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!>kdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#V1n#V#W!?y#W#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!@SdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#h1n#h#i!Ab#i#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!AkdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#m1n#m#n!By#n#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!CSdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#d1n#d#e!Db#e#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!DkdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#X1n#X#Y!5]#Y#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!FSchS!a`!cpOq!G_qr!Eyrs!HUsv!Eyvw!Ncwx!Jvx!P!Ey!P!Q!G_!Q!_!Ey!_!a!G_!a!b##T!b#s!Ey#s$f!G_$f;'S!Ey;'S;=`#$i<%l?Ah!Ey?Ah?BY!G_?BY?Mn!Ey?MnO!G_!R!GfY!a`!cpOr!G_rs!HUsv!G_vw!Hpwx!Jvx!a!G_!a!b!Lv!b;'S!G_;'S;=`!N]<%lO!G_q!HZV!cpOv!HUvx!Hpx!a!HU!a!b!Iq!b;'S!HU;'S;=`!Jp<%lO!HUP!HsTO!a!Hp!a!b!IS!b;'S!Hp;'S;=`!Ik<%lO!HpP!IVTO!`!Hp!`!a!If!a;'S!Hp;'S;=`!Ik<%lO!HpP!IkOxPP!InP;=`<%l!Hpq!IvV!cpOv!HUvx!Hpx!`!HU!`!a!J]!a;'S!HU;'S;=`!Jp<%lO!HUq!JdS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!JsP;=`<%l!HUa!J{X!a`Or!Jvrs!Hpsv!Jvvw!Hpw!a!Jv!a!b!Kh!b;'S!Jv;'S;=`!Lp<%lO!Jva!KmX!a`Or!Jvrs!Hpsv!Jvvw!Hpw!`!Jv!`!a!LY!a;'S!Jv;'S;=`!Lp<%lO!Jva!LaT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!LsP;=`<%l!Jv!R!L}Y!a`!cpOr!G_rs!HUsv!G_vw!Hpwx!Jvx!`!G_!`!a!Mm!a;'S!G_;'S;=`!N]<%lO!G_!R!MvV!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!N`P;=`<%l!G_T!NhbhSOq!Hpqr!Ncrs!Hpsw!Ncwx!Hpx!P!Nc!P!Q!Hp!Q!_!Nc!_!a!Hp!a!b# p!b#s!Nc#s$f!Hp$f;'S!Nc;'S;=`#!}<%l?Ah!Nc?Ah?BY!Hp?BY?Mn!Nc?MnO!HpT# ubhSOq!Hpqr!Ncrs!Hpsw!Ncwx!Hpx!P!Nc!P!Q!Hp!Q!_!Nc!_!`!Hp!`!a!If!a#s!Nc#s$f!Hp$f;'S!Nc;'S;=`#!}<%l?Ah!Nc?Ah?BY!Hp?BY?Mn!Nc?MnO!HpT##QP;=`<%l!Nc!V##^chS!a`!cpOq!G_qr!Eyrs!HUsv!Eyvw!Ncwx!Jvx!P!Ey!P!Q!G_!Q!_!Ey!_!`!G_!`!a!Mm!a#s!Ey#s$f!G_$f;'S!Ey;'S;=`#$i<%l?Ah!Ey?Ah?BY!G_?BY?Mn!Ey?MnO!G_!V#$lP;=`<%l!Ey!V#$zXiS`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[oe,ue,Oe,re,ae,ne,0,1,2,3,4,5],topRules:{Document:[0,15]},dialects:{noMatch:0,selfClosing:485},tokenPrec:487});function ce(e,t){let a=Object.create(null);for(let n of e.getChildren(q)){let e=n.getChild(w),l=n.getChild($)||n.getChild(Q);if(e)a[t.read(e.from,e.to)]=!l?"":l.type.id==$?t.read(l.from+1,l.to-1):t.read(l.from,l.to)}return a}function de(e,t){let a=e.getChild(T);return a?t.read(a.from,a.to):" "}function fe(e,t,a){let n;for(let l of a){if(!l.attrs||l.attrs(n||(n=ce(e.node.parent.firstChild,t))))return{parser:l.parser}}return null}function he(e=[],t=[]){let a=[],n=[],l=[],s=[];for(let r of e){let e=r.tag=="script"?a:r.tag=="style"?n:r.tag=="textarea"?l:s;e.push(r)}let o=t.length?Object.create(null):null;for(let r of t)(o[r.name]||(o[r.name]=[])).push(r);return(0,r.parseMixed)(((e,t)=>{let r=e.type.id;if(r==X)return fe(e,t,a);if(r==A)return fe(e,t,n);if(r==C)return fe(e,t,l);if(r==k&&s.length){let a=e.node,n=de(a,t),l;for(let r of s){if(r.tag==n&&(!r.attrs||r.attrs(l||(l=ce(a,t))))){let t=a.parent.lastChild;return{parser:r.parser,overlay:[{from:e.to,to:t.type.id==Y?t.from:a.parent.to}]}}}}if(o&&r==q){let a=e.node,n;if(n=a.firstChild){let e=o[t.read(n.from,n.to)];if(e)for(let n of e){if(n.tagName&&n.tagName!=de(a.parent,t))continue;let e=a.lastChild;if(e.type.id==$){let t=e.from+1;let a=e.lastChild,l=e.to-(a&&a.isError?0:1);if(l>t)return{parser:n.parser,overlay:[{from:t,to:l}]}}else if(e.type.id==Q){return{parser:n.parser,overlay:[{from:e.from,to:e.to}]}}}}}return null}))}var me=a(37425);var Se=a(88103);var ge=a(22819);var Pe=a(71674);var xe=a(4452);const be=["_blank","_self","_top","_parent"];const Ve=["ascii","utf-8","utf-16","latin1","latin1"];const ve=["get","post","put","delete"];const _e=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];const ye=["true","false"];const Te={};const qe={a:{attrs:{href:null,ping:null,type:null,media:null,target:be,hreflang:null}},abbr:Te,address:Te,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:Te,aside:Te,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:Te,base:{attrs:{href:null,target:be}},bdi:Te,bdo:Te,blockquote:{attrs:{cite:null}},body:Te,br:Te,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:_e,formmethod:ve,formnovalidate:["novalidate"],formtarget:be,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:Te,center:Te,cite:Te,code:Te,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:Te,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:Te,div:Te,dl:Te,dt:Te,em:Te,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:Te,figure:Te,footer:Te,form:{attrs:{action:null,name:null,"accept-charset":Ve,autocomplete:["on","off"],enctype:_e,method:ve,novalidate:["novalidate"],target:be}},h1:Te,h2:Te,h3:Te,h4:Te,h5:Te,h6:Te,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:Te,hgroup:Te,hr:Te,html:{attrs:{manifest:null}},i:Te,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:_e,formmethod:ve,formnovalidate:["novalidate"],formtarget:be,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:Te,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:Te,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:Te,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Ve,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:Te,noscript:Te,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:Te,param:{attrs:{name:null,value:null}},pre:Te,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:Te,rt:Te,ruby:Te,samp:Te,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Ve}},section:Te,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:Te,source:{attrs:{src:null,type:null,media:null}},span:Te,strong:Te,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:Te,summary:Te,sup:Te,table:Te,tbody:Te,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:Te,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:Te,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:Te,time:{attrs:{datetime:null}},title:Te,tr:Te,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:Te,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:Te};const we={accesskey:null,class:null,contenteditable:ye,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:ye,autocorrect:ye,autocapitalize:ye,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":ye,"aria-autocomplete":["inline","list","both","none"],"aria-busy":ye,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":ye,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":ye,"aria-hidden":ye,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":ye,"aria-multiselectable":ye,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":ye,"aria-relevant":null,"aria-required":ye,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null};const $e=("beforeunload copy cut dragstart dragover dragleave dragenter dragend "+"drag paste focus blur change click load mousedown mouseenter mouseleave "+"mouseup keydown keyup resize scroll unload").split(" ").map((e=>"on"+e));for(let Fe of $e)we[Fe]=null;class Qe{constructor(e,t){this.tags=Object.assign(Object.assign({},qe),e);this.globalAttrs=Object.assign(Object.assign({},we),t);this.allTags=Object.keys(this.tags);this.globalAttrNames=Object.keys(this.globalAttrs)}}Qe.default=new Qe;function Xe(e,t,a=e.length){if(!t)return"";let n=t.firstChild;let l=n&&n.getChild("TagName");return l?e.sliceString(l.from,Math.min(l.to,a)):""}function Ae(e,t=false){for(;e;e=e.parent)if(e.name=="Element"){if(t)t=false;else return e}return null}function Ce(e,t,a){let n=a.tags[Xe(e,Ae(t))];return(n===null||n===void 0?void 0:n.children)||a.allTags}function ke(e,t){let a=[];for(let n=Ae(t);n&&!n.type.isTop;n=Ae(n.parent)){let l=Xe(e,n);if(l&&n.lastChild.name=="CloseTag")break;if(l&&a.indexOf(l)<0&&(t.name=="EndTag"||t.from>=n.firstChild.to))a.push(l)}return a}const Ye=/^[:\-\.\w\u00b7-\uffff]*$/;function Me(e,t,a,n,l){let r=/\s*>/.test(e.sliceDoc(l,l+5))?"":">";let s=Ae(a,true);return{from:n,to:l,options:Ce(e.doc,s,t).map((e=>({label:e,type:"type"}))).concat(ke(e.doc,a).map(((e,t)=>({label:"/"+e,apply:"/"+e+r,type:"type",boost:99-t})))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Be(e,t,a,n){let l=/\s*>/.test(e.sliceDoc(n,n+5))?"":">";return{from:a,to:n,options:ke(e.doc,t).map(((e,t)=>({label:e,apply:e+l,type:"type",boost:99-t}))),validFor:Ye}}function Ge(e,t,a,n){let l=[],r=0;for(let s of Ce(e.doc,a,t))l.push({label:"<"+s,type:"type"});for(let s of ke(e.doc,a))l.push({label:"",type:"type",boost:99-r++});return{from:n,to:n,options:l,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function Ee(e,t,a,n,l){let r=Ae(a),s=r?t.tags[Xe(e.doc,r)]:null;let o=s&&s.attrs?Object.keys(s.attrs):[];let u=s&&s.globalAttrs===false?o:o.length?o.concat(t.globalAttrNames):t.globalAttrNames;return{from:n,to:l,options:u.map((e=>({label:e,type:"property"}))),validFor:Ye}}function Ze(e,t,a,n,l){var r;let s=(r=a.parent)===null||r===void 0?void 0:r.getChild("AttributeName");let o=[],u=undefined;if(s){let r=e.sliceDoc(s.from,s.to);let O=t.globalAttrs[r];if(!O){let n=Ae(a),l=n?t.tags[Xe(e.doc,n)]:null;O=(l===null||l===void 0?void 0:l.attrs)&&l.attrs[r]}if(O){let t=e.sliceDoc(n,l).toLowerCase(),a='"',r='"';if(/^['"]/.test(t)){u=t[0]=='"'?/^[^"]*$/:/^[^']*$/;a="";r=e.sliceDoc(l,l+1)==t[0]?"":t[0];t=t.slice(1);n++}else{u=/^[^\s<>='"]*$/}for(let e of O)o.push({label:e,apply:a+e+r,type:"constant"})}}return{from:n,to:l,options:o,validFor:u}}function De(e,t){let{state:a,pos:n}=t,l=(0,xe.syntaxTree)(a).resolveInner(n,-1),r=l.resolve(n);for(let s=n,o;r==l&&(o=l.childBefore(s));){let e=o.lastChild;if(!e||!e.type.isError||e.fromDe(n,e)}const He=Se.javascriptLanguage.parser.configure({top:"SingleExpression"});const Ne=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:Se.typescriptLanguage.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:Se.jsxLanguage.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:Se.tsxLanguage.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:He},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:Se.javascriptLanguage.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:me.cssLanguage.parser}];const Ie=[{name:"style",parser:me.cssLanguage.parser.configure({top:"Styles"})}].concat($e.map((e=>({name:e,parser:Se.javascriptLanguage.parser}))));const je=xe.LRLanguage.define({name:"html",parser:pe.configure({props:[xe.indentNodeProp.add({Element(e){let t=/^(\s*)(<\/)?/.exec(e.textAfter);if(e.node.to<=e.pos+t[0].length)return e.continue();return e.lineIndent(e.node.from)+(t[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit},Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].lengthe.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}});const Ue=je.configure({wrap:he(Ne,Ie)});function Je(e={}){let t="",a;if(e.matchClosingTags===false)t="noMatch";if(e.selfClosingTags===true)t=(t?t+" ":"")+"selfClosing";if(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)a=he((e.nestedLanguages||[]).concat(Ne),(e.nestedAttributes||[]).concat(Ie));let n=a?je.configure({wrap:a,dialect:t}):t?Ue.configure({dialect:t}):Ue;return new xe.LanguageSupport(n,[Ue.data.of({autocomplete:We(e)}),e.autoCloseTags!==false?ze:[],(0,Se.javascript)().support,(0,me.css)().support])}const Le=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" "));const ze=ge.EditorView.inputHandler.of(((e,t,a,n,l)=>{if(e.composing||e.state.readOnly||t!=a||n!=">"&&n!="/"||!Ue.isActiveAt(e.state,t,-1))return false;let r=l(),{state:s}=r;let o=s.changeByRange((e=>{var t,a,l;let r=s.doc.sliceString(e.from-1,e.to)==n;let{head:o}=e,u=(0,xe.syntaxTree)(s).resolveInner(o,-1),O;if(r&&n==">"&&u.name=="EndTag"){let n=u.parent;if(((a=(t=n.parent)===null||t===void 0?void 0:t.lastChild)===null||a===void 0?void 0:a.name)!="CloseTag"&&(O=Xe(s.doc,n.parent,o))&&!Le.has(O)){let t=o+(s.doc.sliceString(o,o+1)===">"?1:0);let a=``;return{range:e,changes:{from:o,to:t,insert:a}}}}else if(r&&n=="/"&&u.name=="IncompleteCloseTag"){let e=u.parent;if(u.from==o-2&&((l=e.lastChild)===null||l===void 0?void 0:l.name)!="CloseTag"&&(O=Xe(s.doc,e,o))&&!Le.has(O)){let e=o+(s.doc.sliceString(o,o+1)===">"?1:0);let t=`${O}>`;return{range:Pe.EditorSelection.cursor(o+t.length,-1),changes:{from:o,to:e,insert:t}}}}return{range:e}}));if(o.changes.empty)return false;e.dispatch([r,s.update(o,{userEvent:"input.complete",scrollIntoView:true})]);return true}))}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1969.86e3168e52802569d650.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1969.86e3168e52802569d650.js deleted file mode 100644 index 69da8439ef79caf9365f376d7df3534223f502ac..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1969.86e3168e52802569d650.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1969],{50780:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:true});e.AbstractHandler=void 0;var i=r(10497);var o=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(i.AbstractMathDocument);var a=function(){function t(t,e){if(e===void 0){e=5}this.documentClass=o;this.adaptor=t;this.priority=e}Object.defineProperty(t.prototype,"name",{get:function(){return this.constructor.NAME},enumerable:false,configurable:true});t.prototype.handlesDocument=function(t){return false};t.prototype.create=function(t,e){return new this.documentClass(t,this.adaptor,e)};t.NAME="generic";return t}();e.AbstractHandler=a},77137:(t,e,r)=>{Object.defineProperty(e,"__esModule",{value:true});e.AbstractInputJax=void 0;var n=r(34981);var i=r(43899);var o=function(){function t(t){if(t===void 0){t={}}this.adaptor=null;this.mmlFactory=null;var e=this.constructor;this.options=(0,n.userOptions)((0,n.defaultOptions)({},e.OPTIONS),t);this.preFilters=new i.FunctionList;this.postFilters=new i.FunctionList}Object.defineProperty(t.prototype,"name",{get:function(){return this.constructor.NAME},enumerable:false,configurable:true});t.prototype.setAdaptor=function(t){this.adaptor=t};t.prototype.setMmlFactory=function(t){this.mmlFactory=t};t.prototype.initialize=function(){};t.prototype.reset=function(){var t=[];for(var e=0;e=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var a=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,o;n=e){if(s.item.renderDoc(t))return}}}catch(l){r={error:l}}finally{try{if(a&&!a.done&&(n=o.return))n.call(o)}finally{if(r)throw r.error}}};e.prototype.renderMath=function(t,e,r){var n,o;if(r===void 0){r=p.STATE.UNPROCESSED}try{for(var a=i(this.items),s=a.next();!s.done;s=a.next()){var l=s.value;if(l.priority>=r){if(l.item.renderMath(t,e))return}}}catch(u){n={error:u}}finally{try{if(s&&!s.done&&(o=a.return))o.call(a)}finally{if(n)throw n.error}}};e.prototype.renderConvert=function(t,e,r){var n,o;if(r===void 0){r=p.STATE.LAST}try{for(var a=i(this.items),s=a.next();!s.done;s=a.next()){var l=s.value;if(l.priority>r)return;if(l.item.convert){if(l.item.renderMath(t,e))return}}}catch(u){n={error:u}}finally{try{if(s&&!s.done&&(o=a.return))o.call(a)}finally{if(n)throw n.error}}};e.prototype.findID=function(t){var e,r;try{for(var n=i(this.items),o=n.next();!o.done;o=n.next()){var a=o.value;if(a.item.id===t){return a.item}}}catch(s){e={error:s}}finally{try{if(o&&!o.done&&(r=n.return))r.call(n)}finally{if(e)throw e.error}}return null};return e}(d.PrioritizedList);e.RenderList=y;e.resetOptions={all:false,processed:false,inputJax:null,outputJax:null};e.resetAllOptions={all:true,processed:true,inputJax:[],outputJax:[]};var v=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.compile=function(t){return null};return e}(l.AbstractInputJax);var m=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.typeset=function(t,e){if(e===void 0){e=null}return null};e.prototype.escaped=function(t,e){return null};return e}(u.AbstractOutputJax);var x=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(c.AbstractMathList);var b=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(p.AbstractMathItem);var g=function(){function t(e,r,n){var i=this;var o=this.constructor;this.document=e;this.options=(0,s.userOptions)((0,s.defaultOptions)({},o.OPTIONS),n);this.math=new(this.options["MathList"]||x);this.renderActions=y.create(this.options["renderActions"]);this.processed=new t.ProcessBits;this.outputJax=this.options["OutputJax"]||new m;var a=this.options["InputJax"]||[new v];if(!Array.isArray(a)){a=[a]}this.inputJax=a;this.adaptor=r;this.outputJax.setAdaptor(r);this.inputJax.map((function(t){return t.setAdaptor(r)}));this.mmlFactory=this.options["MmlFactory"]||new f.MmlFactory;this.inputJax.map((function(t){return t.setMmlFactory(i.mmlFactory)}));this.outputJax.initialize();this.inputJax.map((function(t){return t.initialize()}))}Object.defineProperty(t.prototype,"kind",{get:function(){return this.constructor.KIND},enumerable:false,configurable:true});t.prototype.addRenderAction=function(t){var e=[];for(var r=1;r{Object.defineProperty(e,"__esModule",{value:true});e.AbstractOutputJax=void 0;var n=r(34981);var i=r(43899);var o=function(){function t(t){if(t===void 0){t={}}this.adaptor=null;var e=this.constructor;this.options=(0,n.userOptions)((0,n.defaultOptions)({},e.OPTIONS),t);this.postFilters=new i.FunctionList}Object.defineProperty(t.prototype,"name",{get:function(){return this.constructor.NAME},enumerable:false,configurable:true});t.prototype.setAdaptor=function(t){this.adaptor=t};t.prototype.initialize=function(){};t.prototype.reset=function(){var t=[];for(var e=0;e0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var a=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.HTMLDocument=void 0;var s=r(10497);var l=r(34981);var u=r(72680);var c=r(16499);var p=r(15391);var f=r(24971);var h=function(t){n(e,t);function e(e,r,n){var i=this;var a=o((0,l.separateOptions)(n,p.HTMLDomStrings.OPTIONS),2),s=a[0],u=a[1];i=t.call(this,e,r,s)||this;i.domStrings=i.options["DomStrings"]||new p.HTMLDomStrings(u);i.domStrings.adaptor=r;i.styles=[];return i}e.prototype.findPosition=function(t,e,r,n){var i,s;var l=this.adaptor;try{for(var u=a(n[t]),c=u.next();!c.done;c=u.next()){var p=c.value;var f=o(p,2),h=f[0],d=f[1];if(e<=d&&l.kind(h)==="#text"){return{node:h,n:Math.max(e,0),delim:r}}e-=d}}catch(y){i={error:y}}finally{try{if(c&&!c.done&&(s=u.return))s.call(u)}finally{if(i)throw i.error}}return{node:null,n:0,delim:r}};e.prototype.mathItem=function(t,e,r){var n=t.math;var i=this.findPosition(t.n,t.start.n,t.open,r);var o=this.findPosition(t.n,t.end.n,t.close,r);return new this.options.MathItem(n,e,t.display,i,o)};e.prototype.findMath=function(t){var e,r,n,i,s,u,c,p,f;if(!this.processed.isSet("findMath")){this.adaptor.document=this.document;t=(0,l.userOptions)({elements:this.options.elements||[this.adaptor.body(this.document)]},t);try{for(var h=a(this.adaptor.getElements(t["elements"],this.document)),d=h.next();!d.done;d=h.next()){var y=d.value;var v=o([null,null],2),m=v[0],x=v[1];try{for(var b=(n=void 0,a(this.inputJax)),g=b.next();!g.done;g=b.next()){var _=g.value;var w=new this.options["MathList"];if(_.processStrings){if(m===null){s=o(this.domStrings.find(y),2),m=s[0],x=s[1]}try{for(var S=(u=void 0,a(_.findMath(m))),O=S.next();!O.done;O=S.next()){var T=O.value;w.push(this.mathItem(T,_,x))}}catch(D){u={error:D}}finally{try{if(O&&!O.done&&(c=S.return))c.call(S)}finally{if(u)throw u.error}}}else{try{for(var M=(p=void 0,a(_.findMath(y))),E=M.next();!E.done;E=M.next()){var T=E.value;var A=new this.options.MathItem(T.math,_,T.display,T.start,T.end);w.push(A)}}catch(P){p={error:P}}finally{try{if(E&&!E.done&&(f=M.return))f.call(M)}finally{if(p)throw p.error}}}this.math.merge(w)}}catch(j){n={error:j}}finally{try{if(g&&!g.done&&(i=b.return))i.call(b)}finally{if(n)throw n.error}}}}catch(I){e={error:I}}finally{try{if(d&&!d.done&&(r=h.return))r.call(h)}finally{if(e)throw e.error}}this.processed.set("findMath")}return this};e.prototype.updateDocument=function(){if(!this.processed.isSet("updateDocument")){this.addPageElements();this.addStyleSheet();t.prototype.updateDocument.call(this);this.processed.set("updateDocument")}return this};e.prototype.addPageElements=function(){var t=this.adaptor.body(this.document);var e=this.documentPageElements();if(e){this.adaptor.append(t,e)}};e.prototype.addStyleSheet=function(){var t=this.documentStyleSheet();var e=this.adaptor;if(t&&!e.parent(t)){var r=e.head(this.document);var n=this.findSheet(r,e.getAttribute(t,"id"));if(n){e.replace(t,n)}else{e.append(r,t)}}};e.prototype.findSheet=function(t,e){var r,n;if(e){try{for(var i=a(this.adaptor.tags(t,"style")),o=i.next();!o.done;o=i.next()){var s=o.value;if(this.adaptor.getAttribute(s,"id")===e){return s}}}catch(l){r={error:l}}finally{try{if(o&&!o.done&&(n=i.return))n.call(i)}finally{if(r)throw r.error}}}return null};e.prototype.removeFromDocument=function(t){var e,r;if(t===void 0){t=false}if(this.processed.isSet("updateDocument")){try{for(var n=a(this.math),i=n.next();!i.done;i=n.next()){var o=i.value;if(o.state()>=f.STATE.INSERTED){o.state(f.STATE.TYPESET,t)}}}catch(s){e={error:s}}finally{try{if(i&&!i.done&&(r=n.return))r.call(n)}finally{if(e)throw e.error}}}this.processed.clear("updateDocument");return this};e.prototype.documentStyleSheet=function(){return this.outputJax.styleSheet(this)};e.prototype.documentPageElements=function(){return this.outputJax.pageElements(this)};e.prototype.addStyles=function(t){this.styles.push(t)};e.prototype.getStyles=function(){return this.styles};e.KIND="HTML";e.OPTIONS=i(i({},s.AbstractMathDocument.OPTIONS),{renderActions:(0,l.expandable)(i(i({},s.AbstractMathDocument.OPTIONS.renderActions),{styles:[f.STATE.INSERTED+1,"","updateStyleSheet",false]})),MathList:c.HTMLMathList,MathItem:u.HTMLMathItem,DomStrings:null});return e}(s.AbstractMathDocument);e.HTMLDocument=h},15391:function(t,e,r){var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.HTMLDomStrings=void 0;var i=r(34981);var o=function(){function t(t){if(t===void 0){t=null}var e=this.constructor;this.options=(0,i.userOptions)((0,i.defaultOptions)({},e.OPTIONS),t);this.init();this.getPatterns()}t.prototype.init=function(){this.strings=[];this.string="";this.snodes=[];this.nodes=[];this.stack=[]};t.prototype.getPatterns=function(){var t=(0,i.makeArray)(this.options["skipHtmlTags"]);var e=(0,i.makeArray)(this.options["ignoreHtmlClass"]);var r=(0,i.makeArray)(this.options["processHtmlClass"]);this.skipHtmlTags=new RegExp("^(?:"+t.join("|")+")$","i");this.ignoreHtmlClass=new RegExp("(?:^| )(?:"+e.join("|")+")(?: |$)");this.processHtmlClass=new RegExp("(?:^| )(?:"+r+")(?: |$)")};t.prototype.pushString=function(){if(this.string.match(/\S/)){this.strings.push(this.string);this.nodes.push(this.snodes)}this.string="";this.snodes=[]};t.prototype.extendString=function(t,e){this.snodes.push([t,e.length]);this.string+=e};t.prototype.handleText=function(t,e){if(!e){this.extendString(t,this.adaptor.value(t))}return this.adaptor.next(t)};t.prototype.handleTag=function(t,e){if(!e){var r=this.options["includeHtmlTags"][this.adaptor.kind(t)];this.extendString(t,r)}return this.adaptor.next(t)};t.prototype.handleContainer=function(t,e){this.pushString();var r=this.adaptor.getAttribute(t,"class")||"";var n=this.adaptor.kind(t)||"";var i=this.processHtmlClass.exec(r);var o=t;if(this.adaptor.firstChild(t)&&!this.adaptor.getAttribute(t,"data-MJX")&&(i||!this.skipHtmlTags.exec(n))){if(this.adaptor.next(t)){this.stack.push([this.adaptor.next(t),e])}o=this.adaptor.firstChild(t);e=(e||this.ignoreHtmlClass.exec(r))&&!i}else{o=this.adaptor.next(t)}return[o,e]};t.prototype.handleOther=function(t,e){this.pushString();return this.adaptor.next(t)};t.prototype.find=function(t){var e,r;this.init();var i=this.adaptor.next(t);var o=false;var a=this.options["includeHtmlTags"];while(t&&t!==i){var s=this.adaptor.kind(t);if(s==="#text"){t=this.handleText(t,o)}else if(a.hasOwnProperty(s)){t=this.handleTag(t,o)}else if(s){e=n(this.handleContainer(t,o),2),t=e[0],o=e[1]}else{t=this.handleOther(t,o)}if(!t&&this.stack.length){this.pushString();r=n(this.stack.pop(),2),t=r[0],o=r[1]}}this.pushString();var l=[this.strings,this.nodes];this.init();return l};t.OPTIONS={skipHtmlTags:["script","noscript","style","textarea","pre","code","annotation","annotation-xml"],includeHtmlTags:{br:"\n",wbr:"","#comment":""},ignoreHtmlClass:"mathjax_ignore",processHtmlClass:"mathjax_process"};return t}();e.HTMLDomStrings=o},1969:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:true});e.HTMLHandler=void 0;var i=r(50780);var o=r(78608);var a=function(t){n(e,t);function e(){var e=t!==null&&t.apply(this,arguments)||this;e.documentClass=o.HTMLDocument;return e}e.prototype.handlesDocument=function(t){var e=this.adaptor;if(typeof t==="string"){try{t=e.parse(t,"text/html")}catch(r){}}if(t instanceof e.window.Document||t instanceof e.window.HTMLElement||t instanceof e.window.DocumentFragment){return true}return false};e.prototype.create=function(e,r){var n=this.adaptor;if(typeof e==="string"){e=n.parse(e,"text/html")}else if(e instanceof n.window.HTMLElement||e instanceof n.window.DocumentFragment){var i=e;e=n.parse("","text/html");n.append(n.body(e),i)}return t.prototype.create.call(this,e,r)};return e}(i.AbstractHandler);e.HTMLHandler=a},72680:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:true});e.HTMLMathItem=void 0;var i=r(24971);var o=function(t){n(e,t);function e(e,r,n,i,o){if(n===void 0){n=true}if(i===void 0){i={node:null,n:0,delim:""}}if(o===void 0){o={node:null,n:0,delim:""}}return t.call(this,e,r,n,i,o)||this}Object.defineProperty(e.prototype,"adaptor",{get:function(){return this.inputJax.adaptor},enumerable:false,configurable:true});e.prototype.updateDocument=function(t){if(this.state()=i.STATE.TYPESET){var e=this.adaptor;var r=this.start.node;var n=e.text("");if(t){var o=this.start.delim+this.math+this.end.delim;if(this.inputJax.processStrings){n=e.text(o)}else{var a=e.parse(o,"text/html");n=e.firstChild(e.body(a))}}if(e.parent(r)){e.replace(n,r)}this.start.node=this.end.node=n;this.start.n=this.end.n=0}};return e}(i.AbstractMathItem);e.HTMLMathItem=o},16499:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:true});e.HTMLMathList=void 0;var i=r(76808);var o=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(i.AbstractMathList);e.HTMLMathList=o},58578:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,o;n=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var a=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,o;n0&&o[o.length-1])&&(a[0]===6||a[0]===2)){r=0;continue}if(a[0]===3&&(!o||a[1]>o[0]&&a[1]0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var i=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,o;n=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.LinkedList=e.ListItem=e.END=void 0;e.END=Symbol();var a=function(){function t(t){if(t===void 0){t=null}this.next=null;this.prev=null;this.data=t}return t}();e.ListItem=a;var s=function(){function t(){var t=[];for(var r=0;r1){var u=i.shift();var c=i.shift();u.merge(c,e);i.push(u)}if(i.length){this.list=i[0].list}return this};t.prototype.merge=function(t,r){var i,o,a,s,l;if(r===void 0){r=null}if(r===null){r=this.isBefore.bind(this)}var u=this.list.next;var c=t.list.next;while(u.data!==e.END&&c.data!==e.END){if(r(c.data,u.data)){i=n([u,c],2),c.prev.next=i[0],u.prev.next=i[1];o=n([u.prev,c.prev],2),c.prev=o[0],u.prev=o[1];a=n([t.list,this.list],2),this.list.prev.next=a[0],t.list.prev.next=a[1];s=n([t.list.prev,this.list.prev],2),this.list.prev=s[0],t.list.prev=s[1];l=n([c.next,u],2),u=l[0],c=l[1]}else{u=u.next}}if(c.data!==e.END){this.list.prev.next=t.list.next;t.list.next.prev=this.list.prev;t.list.prev.next=this.list;this.list.prev=t.list.prev;t.list.next=t.list.prev=t.list}return this};return t}();e.LinkedList=s},82776:(t,e)=>{Object.defineProperty(e,"__esModule",{value:true});e.PrioritizedList=void 0;var r=function(){function t(){this.items=[];this.items=[]}t.prototype[Symbol.iterator]=function(){var t=0;var e=this.items;return{next:function(){return{value:e[t++],done:t>e.length}}}};t.prototype.add=function(e,r){if(r===void 0){r=t.DEFAULTPRIORITY}var n=this.items.length;do{n--}while(n>=0&&r=0&&this.items[e].item!==t);if(e>=0){this.items.splice(e,1)}};t.DEFAULTPRIORITY=5;return t}();e.PrioritizedList=r}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1986.26029e99ef54a5652df8.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1986.26029e99ef54a5652df8.js deleted file mode 100644 index abdf57f4e8e4fed04b418167716a0793840b9a50..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1986.26029e99ef54a5652df8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1986],{1986:(e,r,t)=>{t.r(r);t.d(r,{haskell:()=>w});function n(e,r,t){r(t);return t(e,r)}var a=/[a-z_]/;var i=/[A-Z]/;var o=/\d/;var l=/[0-9A-Fa-f]/;var u=/[0-7]/;var s=/[a-z_A-Z0-9'\xa1-\uffff]/;var f=/[-!#$%&*+.\/<=>?@\\^|~:]/;var c=/[(),;[\]`{}]/;var d=/[ \t\v\f]/;function p(e,r){if(e.eatWhile(d)){return null}var t=e.next();if(c.test(t)){if(t=="{"&&e.eat("-")){var p="comment";if(e.eat("#")){p="meta"}return n(e,r,m(p,1))}return null}if(t=="'"){if(e.eat("\\")){e.next()}else{e.next()}if(e.eat("'")){return"string"}return"error"}if(t=='"'){return n(e,r,h)}if(i.test(t)){e.eatWhile(s);if(e.eat(".")){return"qualifier"}return"type"}if(a.test(t)){e.eatWhile(s);return"variable"}if(o.test(t)){if(t=="0"){if(e.eat(/[xX]/)){e.eatWhile(l);return"integer"}if(e.eat(/[oO]/)){e.eatWhile(u);return"number"}}e.eatWhile(o);var p="number";if(e.match(/^\.\d+/)){p="number"}if(e.eat(/[eE]/)){p="number";e.eat(/[-+]/);e.eatWhile(o)}return p}if(t=="."&&e.eat("."))return"keyword";if(f.test(t)){if(t=="-"&&e.eat(/-/)){e.eatWhile(/-/);if(!e.eat(f)){e.skipToEnd();return"comment"}}e.eatWhile(f);return"variable"}return"error"}function m(e,r){if(r==0){return p}return function(t,n){var a=r;while(!t.eol()){var i=t.next();if(i=="{"&&t.eat("-")){++a}else if(i=="-"&&t.eat("}")){--a;if(a==0){n(p);return e}}}n(m(e,a));return e}}function h(e,r){while(!e.eol()){var t=e.next();if(t=='"'){r(p);return"string"}if(t=="\\"){if(e.eol()||e.eat(d)){r(g);return"string"}if(e.eat("&")){}else{e.next()}}}r(p);return"error"}function g(e,r){if(e.eat("\\")){return n(e,r,h)}e.next();r(p);return"error"}var v=function(){var e={};function r(r){return function(){for(var t=0;t","@","~","=>");r("builtin")("!!","$!","$","&&","+","++","-",".","/","/=","<","<*","<=","<$>","<*>","=<<","==",">",">=",">>",">>=","^","^^","||","*","*>","**");r("builtin")("Applicative","Bool","Bounded","Char","Double","EQ","Either","Enum","Eq","False","FilePath","Float","Floating","Fractional","Functor","GT","IO","IOError","Int","Integer","Integral","Just","LT","Left","Maybe","Monad","Nothing","Num","Ord","Ordering","Rational","Read","ReadS","Real","RealFloat","RealFrac","Right","Show","ShowS","String","True");r("builtin")("abs","acos","acosh","all","and","any","appendFile","asTypeOf","asin","asinh","atan","atan2","atanh","break","catch","ceiling","compare","concat","concatMap","const","cos","cosh","curry","cycle","decodeFloat","div","divMod","drop","dropWhile","either","elem","encodeFloat","enumFrom","enumFromThen","enumFromThenTo","enumFromTo","error","even","exp","exponent","fail","filter","flip","floatDigits","floatRadix","floatRange","floor","fmap","foldl","foldl1","foldr","foldr1","fromEnum","fromInteger","fromIntegral","fromRational","fst","gcd","getChar","getContents","getLine","head","id","init","interact","ioError","isDenormalized","isIEEE","isInfinite","isNaN","isNegativeZero","iterate","last","lcm","length","lex","lines","log","logBase","lookup","map","mapM","mapM_","max","maxBound","maximum","maybe","min","minBound","minimum","mod","negate","not","notElem","null","odd","or","otherwise","pi","pred","print","product","properFraction","pure","putChar","putStr","putStrLn","quot","quotRem","read","readFile","readIO","readList","readLn","readParen","reads","readsPrec","realToFrac","recip","rem","repeat","replicate","return","reverse","round","scaleFloat","scanl","scanl1","scanr","scanr1","seq","sequence","sequence_","show","showChar","showList","showParen","showString","shows","showsPrec","significand","signum","sin","sinh","snd","span","splitAt","sqrt","subtract","succ","sum","tail","take","takeWhile","tan","tanh","toEnum","toInteger","toRational","truncate","uncurry","undefined","unlines","until","unwords","unzip","unzip3","userError","words","writeFile","zip","zip3","zipWith","zipWith3");return e}();const w={name:"haskell",startState:function(){return{f:p}},copyState:function(e){return{f:e.f}},token:function(e,r){var t=r.f(e,(function(e){r.f=e}));var n=e.current();return v.hasOwnProperty(n)?v[n]:t},languageData:{commentTokens:{line:"--",block:{open:"{-",close:"-}"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1991.84fc123d7cfe8ae2948e.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1991.84fc123d7cfe8ae2948e.js deleted file mode 100644 index 8bf412b939c181f3f66d49a302db03cf40c1159a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1991.84fc123d7cfe8ae2948e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[1991],{91991:(e,r,t)=>{t.r(r);t.d(r,{diff:()=>p});var n={"+":"inserted","-":"deleted","@":"meta"};const p={name:"diff",token:function(e){var r=e.string.search(/[\t ]+?$/);if(!e.sol()||r===0){e.skipToEnd();return("error "+(n[e.string.charAt(0)]||"")).replace(/ $/,"")}var t=n[e.peek()]||e.skipToEnd();if(r===-1){e.skipToEnd()}else{e.pos=r}return t}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1cb1c39ea642f26a4dfe.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1cb1c39ea642f26a4dfe.woff deleted file mode 100644 index c28398e49210c7d03050f715fb5e5fd3cc1c39e5..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/1cb1c39ea642f26a4dfe.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2023.59b30086fbeff6d17e3b.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2023.59b30086fbeff6d17e3b.js deleted file mode 100644 index dc27e7cc7c31cea366940849e7a138350912f3b4..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2023.59b30086fbeff6d17e3b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2023],{27574:(e,t,s)=>{s.d(t,{A:()=>a});var i=s(57991);var r=s(63221);const n=(e,t)=>i.A.lang.round(r.A.parse(e)[t]);const a=n},15051:(e,t,s)=>{s.d(t,{A:()=>n,P:()=>a});var i=s(75905);var r=s(24982);var n=(0,i.K2)(((e,t)=>{let s;if(t==="sandbox"){s=(0,r.Ltv)("#i"+e)}const i=t==="sandbox"?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body");const n=i.select(`[id="${e}"]`);return n}),"getDiagramElement");var a=(0,i.K2)(((e,t,s,r)=>{e.attr("class",s);const{width:n,height:a,x:l,y:c}=u(e,t);(0,i.a$)(e,a,n,r);const h=o(l,c,n,a,t);e.attr("viewBox",h);i.Rm.debug(`viewBox configured: ${h} with padding: ${t}`)}),"setupViewPortForSVG");var u=(0,i.K2)(((e,t)=>{const s=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+t*2,height:s.height+t*2,x:s.x,y:s.y}}),"calculateDimensionsWithPadding");var o=(0,i.K2)(((e,t,s,i,r)=>`${e-r} ${t-r} ${s} ${i}`),"createViewBox")},52023:(e,t,s)=>{s.d(t,{diagram:()=>_});var i=s(97366);var r=s(15051);var n=s(94065);var a=s(33416);var u=s(94746);var o=s(20778);var l=s(57590);var c=s(68232);var h=s(76261);var d=s(96049);var p=s(75905);var f=s(24982);var b=s(27574);var k=s(3635);var g="flowchart-";var A=class{constructor(){this.vertexCounter=0;this.config=(0,p.D7)();this.vertices=new Map;this.edges=[];this.classes=new Map;this.subGraphs=[];this.subGraphLookup=new Map;this.tooltips=new Map;this.subCount=0;this.firstGraphFlag=true;this.secCount=-1;this.posCrossRef=[];this.funs=[];this.setAccTitle=p.SV;this.setAccDescription=p.EI;this.setDiagramTitle=p.ke;this.getAccTitle=p.iN;this.getAccDescription=p.m7;this.getDiagramTitle=p.ab;this.funs.push(this.setupToolTips.bind(this));this.addVertex=this.addVertex.bind(this);this.firstGraph=this.firstGraph.bind(this);this.setDirection=this.setDirection.bind(this);this.addSubGraph=this.addSubGraph.bind(this);this.addLink=this.addLink.bind(this);this.setLink=this.setLink.bind(this);this.updateLink=this.updateLink.bind(this);this.addClass=this.addClass.bind(this);this.setClass=this.setClass.bind(this);this.destructLink=this.destructLink.bind(this);this.setClickEvent=this.setClickEvent.bind(this);this.setTooltip=this.setTooltip.bind(this);this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this);this.setClickFun=this.setClickFun.bind(this);this.bindFunctions=this.bindFunctions.bind(this);this.lex={firstGraph:this.firstGraph.bind(this)};this.clear();this.setGen("gen-2")}static{(0,p.K2)(this,"FlowDB")}sanitizeText(e){return p.Y2.sanitizeText(e,this.config)}lookUpDomId(e){for(const t of this.vertices.values()){if(t.id===e){return t.domId}}return e}addVertex(e,t,s,r,n,a,u={},l){if(!e||e.trim().length===0){return}let c;if(l!==void 0){let e;if(!l.includes("\n")){e="{\n"+l+"\n}"}else{e=l+"\n"}c=(0,i.H)(e,{schema:i.r})}const h=this.edges.find((t=>t.id===e));if(h){const e=c;if(e?.animate!==void 0){h.animate=e.animate}if(e?.animation!==void 0){h.animation=e.animation}return}let d;let f=this.vertices.get(e);if(f===void 0){f={id:e,labelType:"text",domId:g+e+"-"+this.vertexCounter,styles:[],classes:[]};this.vertices.set(e,f)}this.vertexCounter++;if(t!==void 0){this.config=(0,p.D7)();d=this.sanitizeText(t.text.trim());f.labelType=t.type;if(d.startsWith('"')&&d.endsWith('"')){d=d.substring(1,d.length-1)}f.text=d}else{if(f.text===void 0){f.text=e}}if(s!==void 0){f.type=s}if(r!==void 0&&r!==null){r.forEach((e=>{f.styles.push(e)}))}if(n!==void 0&&n!==null){n.forEach((e=>{f.classes.push(e)}))}if(a!==void 0){f.dir=a}if(f.props===void 0){f.props=u}else if(u!==void 0){Object.assign(f.props,u)}if(c!==void 0){if(c.shape){if(c.shape!==c.shape.toLowerCase()||c.shape.includes("_")){throw new Error(`No such shape: ${c.shape}. Shape names should be lowercase.`)}else if(!(0,o.aP)(c.shape)){throw new Error(`No such shape: ${c.shape}.`)}f.type=c?.shape}if(c?.label){f.text=c?.label}if(c?.icon){f.icon=c?.icon;if(!c.label?.trim()&&f.text===e){f.text=""}}if(c?.form){f.form=c?.form}if(c?.pos){f.pos=c?.pos}if(c?.img){f.img=c?.img;if(!c.label?.trim()&&f.text===e){f.text=""}}if(c?.constraint){f.constraint=c.constraint}if(c.w){f.assetWidth=Number(c.w)}if(c.h){f.assetHeight=Number(c.h)}}}addSingleLink(e,t,s,i){const r=e;const n=t;const a={start:r,end:n,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:false,interpolate:this.edges.defaultInterpolate};p.Rm.info("abc78 Got edge...",a);const u=s.text;if(u!==void 0){a.text=this.sanitizeText(u.text.trim());if(a.text.startsWith('"')&&a.text.endsWith('"')){a.text=a.text.substring(1,a.text.length-1)}a.labelType=u.type}if(s!==void 0){a.type=s.type;a.stroke=s.stroke;a.length=s.length>10?10:s.length}if(i&&!this.edges.some((e=>e.id===i))){a.id=i;a.isUserDefinedId=true}else{const e=this.edges.filter((e=>e.start===a.start&&e.end===a.end));if(e.length===0){a.id=(0,d.rY)(a.start,a.end,{counter:0,prefix:"L"})}else{a.id=(0,d.rY)(a.start,a.end,{counter:e.length+1,prefix:"L"})}}if(this.edges.length<(this.config.maxEdges??500)){p.Rm.info("Pushing edge...");this.edges.push(a)}else{throw new Error(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.maxEdges}.\n\nInitialize mermaid with maxEdges set to a higher number to allow more edges.\nYou cannot set this config via configuration inside the diagram as it is a secure config.\nYou have to call mermaid.initialize.`)}}isLinkData(e){return e!==null&&typeof e==="object"&&"id"in e&&typeof e.id==="string"}addLink(e,t,s){const i=this.isLinkData(s)?s.id.replace("@",""):void 0;p.Rm.info("addLink",e,t,i);for(const r of e){for(const n of t){const a=r===e[e.length-1];const u=n===t[0];if(a&&u){this.addSingleLink(r,n,s,i)}else{this.addSingleLink(r,n,s,void 0)}}}}updateLinkInterpolate(e,t){e.forEach((e=>{if(e==="default"){this.edges.defaultInterpolate=t}else{this.edges[e].interpolate=t}}))}updateLink(e,t){e.forEach((e=>{if(typeof e==="number"&&e>=this.edges.length){throw new Error(`The index ${e} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`)}if(e==="default"){this.edges.defaultStyle=t}else{this.edges[e].style=t;if((this.edges[e]?.style?.length??0)>0&&!this.edges[e]?.style?.some((e=>e?.startsWith("fill")))){this.edges[e]?.style?.push("fill:none")}}}))}addClass(e,t){const s=t.join().replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");e.split(",").forEach((e=>{let t=this.classes.get(e);if(t===void 0){t={id:e,styles:[],textStyles:[]};this.classes.set(e,t)}if(s!==void 0&&s!==null){s.forEach((e=>{if(/color/.exec(e)){const s=e.replace("fill","bgFill");t.textStyles.push(s)}t.styles.push(e)}))}}))}setDirection(e){this.direction=e;if(/.*/.exec(this.direction)){this.direction="LR"}if(/.*v/.exec(this.direction)){this.direction="TB"}if(this.direction==="TD"){this.direction="TB"}}setClass(e,t){for(const s of e.split(",")){const e=this.vertices.get(s);if(e){e.classes.push(t)}const i=this.edges.find((e=>e.id===s));if(i){i.classes.push(t)}const r=this.subGraphLookup.get(s);if(r){r.classes.push(t)}}}setTooltip(e,t){if(t===void 0){return}t=this.sanitizeText(t);for(const s of e.split(",")){this.tooltips.set(this.version==="gen-1"?this.lookUpDomId(s):s,t)}}setClickFun(e,t,s){const i=this.lookUpDomId(e);if((0,p.D7)().securityLevel!=="loose"){return}if(t===void 0){return}let r=[];if(typeof s==="string"){r=s.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let e=0;e{const e=document.querySelector(`[id="${i}"]`);if(e!==null){e.addEventListener("click",(()=>{d._K.runFunc(t,...r)}),false)}}))}}setLink(e,t,s){e.split(",").forEach((e=>{const i=this.vertices.get(e);if(i!==void 0){i.link=d._K.formatUrl(t,this.config);i.linkTarget=s}}));this.setClass(e,"clickable")}getTooltip(e){return this.tooltips.get(e)}setClickEvent(e,t,s){e.split(",").forEach((e=>{this.setClickFun(e,t,s)}));this.setClass(e,"clickable")}bindFunctions(e){this.funs.forEach((t=>{t(e)}))}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(e){let t=(0,f.Ltv)(".mermaidTooltip");if((t._groups||t)[0][0]===null){t=(0,f.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0)}const s=(0,f.Ltv)(e).select("svg");const i=s.selectAll("g.node");i.on("mouseover",(e=>{const s=(0,f.Ltv)(e.currentTarget);const i=s.attr("title");if(i===null){return}const r=e.currentTarget?.getBoundingClientRect();t.transition().duration(200).style("opacity",".9");t.text(s.attr("title")).style("left",window.scrollX+r.left+(r.right-r.left)/2+"px").style("top",window.scrollY+r.bottom+"px");t.html(t.html().replace(/<br\/>/g,"
"));s.classed("hover",true)})).on("mouseout",(e=>{t.transition().duration(500).style("opacity",0);const s=(0,f.Ltv)(e.currentTarget);s.classed("hover",false)}))}clear(e="gen-2"){this.vertices=new Map;this.classes=new Map;this.edges=[];this.funs=[this.setupToolTips.bind(this)];this.subGraphs=[];this.subGraphLookup=new Map;this.subCount=0;this.tooltips=new Map;this.firstGraphFlag=true;this.version=e;this.config=(0,p.D7)();(0,p.IU)()}setGen(e){this.version=e||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(e,t,s){let i=e.text.trim();let r=s.text;if(e===s&&/\s/.exec(s.text)){i=void 0}const n=(0,p.K2)((e=>{const t={boolean:{},number:{},string:{}};const s=[];let i;const r=e.filter((function(e){const r=typeof e;if(e.stmt&&e.stmt==="dir"){i=e.value;return false}if(e.trim()===""){return false}if(r in t){return t[r].hasOwnProperty(e)?false:t[r][e]=true}else{return s.includes(e)?false:s.push(e)}}));return{nodeList:r,dir:i}}),"uniq");const{nodeList:a,dir:u}=n(t.flat());if(this.version==="gen-1"){for(let e=0;e2e3){return{result:false,count:0}}this.posCrossRef[this.secCount]=t;if(this.subGraphs[t].id===e){return{result:true,count:0}}let i=0;let r=1;while(i=0){const s=this.indexNodes2(e,t);if(s.result){return{result:true,count:r+s.count}}else{r=r+s.count}}i=i+1}return{result:false,count:r}}getDepthFirstPos(e){return this.posCrossRef[e]}indexNodes(){this.secCount=-1;if(this.subGraphs.length>0){this.indexNodes2("none",this.subGraphs.length-1)}}getSubGraphs(){return this.subGraphs}firstGraph(){if(this.firstGraphFlag){this.firstGraphFlag=false;return true}return false}destructStartLink(e){let t=e.trim();let s="arrow_open";switch(t[0]){case"<":s="arrow_point";t=t.slice(1);break;case"x":s="arrow_cross";t=t.slice(1);break;case"o":s="arrow_circle";t=t.slice(1);break}let i="normal";if(t.includes("=")){i="thick"}if(t.includes(".")){i="dotted"}return{type:s,stroke:i}}countChar(e,t){const s=t.length;let i=0;for(let r=0;r":i="arrow_point";if(t.startsWith("<")){i="double_"+i;s=s.slice(1)}break;case"o":i="arrow_circle";if(t.startsWith("o")){i="double_"+i;s=s.slice(1)}break}let r="normal";let n=s.length-1;if(s.startsWith("=")){r="thick"}if(s.startsWith("~")){r="invisible"}const a=this.countChar(".",s);if(a){r="dotted";n=a}return{type:i,stroke:r,length:n}}destructLink(e,t){const s=this.destructEndLink(e);let i;if(t){i=this.destructStartLink(t);if(i.stroke!==s.stroke){return{type:"INVALID",stroke:"INVALID"}}if(i.type==="arrow_open"){i.type=s.type}else{if(i.type!==s.type){return{type:"INVALID",stroke:"INVALID"}}i.type="double_"+i.type}if(i.type==="double_arrow"){i.type="double_arrow_point"}i.length=s.length;return i}return s}exists(e,t){for(const s of e){if(s.nodes.includes(t)){return true}}return false}makeUniq(e,t){const s=[];e.nodes.forEach(((i,r)=>{if(!this.exists(t,i)){s.push(e.nodes[r])}}));return{nodes:s}}getTypeFromVertex(e){if(e.img){return"imageSquare"}if(e.icon){if(e.form==="circle"){return"iconCircle"}if(e.form==="square"){return"iconSquare"}if(e.form==="rounded"){return"iconRounded"}return"icon"}switch(e.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return e.type}}findNode(e,t){return e.find((e=>e.id===t))}destructEdgeType(e){let t="none";let s="arrow_point";switch(e){case"arrow_point":case"arrow_circle":case"arrow_cross":s=e;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":t=e.replace("double_","");s=t;break}return{arrowTypeStart:t,arrowTypeEnd:s}}addNodeFromVertex(e,t,s,i,r,n){const a=s.get(e.id);const u=i.get(e.id)??false;const o=this.findNode(t,e.id);if(o){o.cssStyles=e.styles;o.cssCompiledStyles=this.getCompiledStyles(e.classes);o.cssClasses=e.classes.join(" ")}else{const s={id:e.id,label:e.text,labelStyle:"",parentId:a,padding:r.flowchart?.padding||8,cssStyles:e.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...e.classes]),cssClasses:"default "+e.classes.join(" "),dir:e.dir,domId:e.domId,look:n,link:e.link,linkTarget:e.linkTarget,tooltip:this.getTooltip(e.id),icon:e.icon,pos:e.pos,img:e.img,assetWidth:e.assetWidth,assetHeight:e.assetHeight,constraint:e.constraint};if(u){t.push({...s,isGroup:true,shape:"rect"})}else{t.push({...s,isGroup:false,shape:this.getTypeFromVertex(e)})}}}getCompiledStyles(e){let t=[];for(const s of e){const e=this.classes.get(s);if(e?.styles){t=[...t,...e.styles??[]].map((e=>e.trim()))}if(e?.textStyles){t=[...t,...e.textStyles??[]].map((e=>e.trim()))}}return t}getData(){const e=(0,p.D7)();const t=[];const s=[];const i=this.getSubGraphs();const r=new Map;const n=new Map;for(let o=i.length-1;o>=0;o--){const e=i[o];if(e.nodes.length>0){n.set(e.id,true)}for(const t of e.nodes){r.set(t,e.id)}}for(let o=i.length-1;o>=0;o--){const s=i[o];t.push({id:s.id,label:s.title,labelStyle:"",parentId:r.get(s.id),padding:8,cssCompiledStyles:this.getCompiledStyles(s.classes),cssClasses:s.classes.join(" "),shape:"rect",dir:s.dir,isGroup:true,look:e.look})}const a=this.getVertices();a.forEach((s=>{this.addNodeFromVertex(s,t,r,n,e,e.look||"classic")}));const u=this.getEdges();u.forEach(((t,i)=>{const{arrowTypeStart:r,arrowTypeEnd:n}=this.destructEdgeType(t.type);const a=[...u.defaultStyle??[]];if(t.style){a.push(...t.style)}const o={id:(0,d.rY)(t.start,t.end,{counter:i,prefix:"L"},t.id),isUserDefinedId:t.isUserDefinedId,start:t.start,end:t.end,type:t.type??"normal",label:t.text,labelpos:"c",thickness:t.stroke,minlen:t.length,classes:t?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:t?.stroke==="invisible"||t?.type==="arrow_open"?"none":r,arrowTypeEnd:t?.stroke==="invisible"||t?.type==="arrow_open"?"none":n,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(t.classes),labelStyle:a,style:a,pattern:t.stroke,look:e.look,animate:t.animate,animation:t.animation,curve:t.interpolate||this.edges.defaultInterpolate||e.flowchart?.curve};s.push(o)}));return{nodes:t,edges:s,other:{},config:e}}defaultConfig(){return p.ME.flowchart}};var y=(0,p.K2)((function(e,t){return t.db.getClasses()}),"getClasses");var m=(0,p.K2)((async function(e,t,s,i){p.Rm.info("REF0:");p.Rm.info("Drawing state diagram (v2)",t);const{securityLevel:a,flowchart:u,layout:o}=(0,p.D7)();let l;if(a==="sandbox"){l=(0,f.Ltv)("#i"+t)}const c=a==="sandbox"?l.nodes()[0].contentDocument:document;p.Rm.debug("Before getData: ");const h=i.db.getData();p.Rm.debug("Data: ",h);const b=(0,r.A)(t,a);const k=i.db.getDirection();h.type=i.type;h.layoutAlgorithm=(0,n.q7)(o);if(h.layoutAlgorithm==="dagre"&&o==="elk"){p.Rm.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback.")}h.direction=k;h.nodeSpacing=u?.nodeSpacing||50;h.rankSpacing=u?.rankSpacing||50;h.markers=["point","circle","cross"];h.diagramId=t;p.Rm.debug("REF1:",h);await(0,n.XX)(h,b);const g=h.config.flowchart?.diagramPadding??8;d._K.insertTitle(b,"flowchartTitleText",u?.titleTopMargin||0,i.db.getDiagramTitle());(0,r.P)(b,g,"flowchart",u?.useMaxWidth||false);for(const r of h.nodes){const e=(0,f.Ltv)(`#${t} [id="${r.id}"]`);if(!e||!r.link){continue}const s=c.createElementNS("http://www.w3.org/2000/svg","a");s.setAttributeNS("http://www.w3.org/2000/svg","class",r.cssClasses);s.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener");if(a==="sandbox"){s.setAttributeNS("http://www.w3.org/2000/svg","target","_top")}else if(r.linkTarget){s.setAttributeNS("http://www.w3.org/2000/svg","target",r.linkTarget)}const i=e.insert((function(){return s}),":first-child");const n=e.select(".label-container");if(n){i.append((function(){return n.node()}))}const u=e.select(".label");if(u){i.append((function(){return u.node()}))}}}),"draw");var E={getClasses:y,draw:m};var x=function(){var e=(0,p.K2)((function(e,t,s,i){for(s=s||{},i=e.length;i--;s[e[i]]=t);return s}),"o"),t=[1,4],s=[1,3],i=[1,5],r=[1,8,9,10,11,27,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],n=[2,2],a=[1,13],u=[1,14],o=[1,15],l=[1,16],c=[1,23],h=[1,25],d=[1,26],f=[1,27],b=[1,49],k=[1,48],g=[1,29],A=[1,30],y=[1,31],m=[1,32],E=[1,33],x=[1,44],C=[1,46],D=[1,42],S=[1,47],T=[1,43],v=[1,50],F=[1,45],_=[1,51],B=[1,52],w=[1,34],L=[1,35],$=[1,36],I=[1,37],R=[1,57],N=[1,8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],P=[1,61],G=[1,60],K=[1,62],O=[8,9,11,75,77,78],V=[1,78],M=[1,91],U=[1,96],W=[1,95],j=[1,92],Y=[1,88],z=[1,94],X=[1,90],H=[1,97],q=[1,93],Q=[1,98],Z=[1,89],J=[8,9,10,11,40,75,77,78],ee=[8,9,10,11,40,46,75,77,78],te=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,78,89,102,105,106,109,111,114,115,116],se=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],ie=[44,60,89,102,105,106,109,111,114,115,116],re=[1,121],ne=[1,122],ae=[1,124],ue=[1,123],oe=[44,60,62,74,89,102,105,106,109,111,114,115,116],le=[1,133],ce=[1,147],he=[1,148],de=[1,149],pe=[1,150],fe=[1,135],be=[1,137],ke=[1,141],ge=[1,142],Ae=[1,143],ye=[1,144],me=[1,145],Ee=[1,146],xe=[1,151],Ce=[1,152],De=[1,131],Se=[1,132],Te=[1,139],ve=[1,134],Fe=[1,138],_e=[1,136],Be=[8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124],we=[1,154],Le=[1,156],$e=[8,9,11],Ie=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],Re=[1,176],Ne=[1,172],Pe=[1,173],Ge=[1,177],Ke=[1,174],Oe=[1,175],Ve=[77,116,119],Me=[8,9,10,11,12,14,27,29,32,44,60,75,84,85,86,87,88,89,90,105,109,111,114,115,116],Ue=[10,106],We=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],je=[1,247],Ye=[1,245],ze=[1,249],Xe=[1,243],He=[1,244],qe=[1,246],Qe=[1,248],Ze=[1,250],Je=[1,268],et=[8,9,11,106],tt=[8,9,10,11,60,84,105,106,109,110,111,112];var st={trace:(0,p.K2)((function e(){}),"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,LINK_ID:78,edgeTextToken:79,STR:80,MD_STR:81,textToken:82,keywords:83,STYLE:84,LINKSTYLE:85,CLASSDEF:86,CLASS:87,CLICK:88,DOWN:89,UP:90,textNoTagsToken:91,stylesOpt:92,"idString[vertex]":93,"idString[class]":94,CALLBACKNAME:95,CALLBACKARGS:96,HREF:97,LINK_TARGET:98,"STR[link]":99,"STR[tooltip]":100,alphaNum:101,DEFAULT:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,NODE_STRING:109,UNIT:110,BRKT:111,PCT:112,idStringToken:113,MINUS:114,MULT:115,UNICODE_TEXT:116,TEXT:117,TAGSTART:118,EDGE_TEXT:119,alphaNumToken:120,direction_tb:121,direction_bt:122,direction_rl:123,direction_lr:124,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",78:"LINK_ID",80:"STR",81:"MD_STR",84:"STYLE",85:"LINKSTYLE",86:"CLASSDEF",87:"CLASS",88:"CLICK",89:"DOWN",90:"UP",93:"idString[vertex]",94:"idString[class]",95:"CALLBACKNAME",96:"CALLBACKARGS",97:"HREF",98:"LINK_TARGET",99:"STR[link]",100:"STR[tooltip]",102:"DEFAULT",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"NODE_STRING",110:"UNIT",111:"BRKT",112:"PCT",114:"MINUS",115:"MULT",116:"UNICODE_TEXT",117:"TEXT",118:"TAGSTART",119:"EDGE_TEXT",121:"direction_tb",122:"direction_bt",123:"direction_rl",124:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[41,4],[76,1],[76,2],[76,1],[76,1],[72,1],[72,2],[73,3],[30,1],[30,2],[30,1],[30,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[103,1],[103,3],[92,1],[92,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[82,1],[82,1],[82,1],[82,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[79,1],[79,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[47,1],[47,2],[101,1],[101,2],[33,1],[33,1],[33,1],[33,1]],performAction:(0,p.K2)((function e(t,s,i,r,n,a,u){var o=a.length-1;switch(n){case 2:this.$=[];break;case 3:if(!Array.isArray(a[o])||a[o].length>0){a[o-1].push(a[o])}this.$=a[o-1];break;case 4:case 183:this.$=a[o];break;case 11:r.setDirection("TB");this.$="TB";break;case 12:r.setDirection(a[o-1]);this.$=a[o-1];break;case 27:this.$=a[o-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=r.addSubGraph(a[o-6],a[o-1],a[o-4]);break;case 34:this.$=r.addSubGraph(a[o-3],a[o-1],a[o-3]);break;case 35:this.$=r.addSubGraph(void 0,a[o-1],void 0);break;case 37:this.$=a[o].trim();r.setAccTitle(this.$);break;case 38:case 39:this.$=a[o].trim();r.setAccDescription(this.$);break;case 43:this.$=a[o-1]+a[o];break;case 44:this.$=a[o];break;case 45:r.addVertex(a[o-1][a[o-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,a[o]);r.addLink(a[o-3].stmt,a[o-1],a[o-2]);this.$={stmt:a[o-1],nodes:a[o-1].concat(a[o-3].nodes)};break;case 46:r.addLink(a[o-2].stmt,a[o],a[o-1]);this.$={stmt:a[o],nodes:a[o].concat(a[o-2].nodes)};break;case 47:r.addLink(a[o-3].stmt,a[o-1],a[o-2]);this.$={stmt:a[o-1],nodes:a[o-1].concat(a[o-3].nodes)};break;case 48:this.$={stmt:a[o-1],nodes:a[o-1]};break;case 49:r.addVertex(a[o-1][a[o-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,a[o]);this.$={stmt:a[o-1],nodes:a[o-1],shapeData:a[o]};break;case 50:this.$={stmt:a[o],nodes:a[o]};break;case 51:this.$=[a[o]];break;case 52:r.addVertex(a[o-5][a[o-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,a[o-4]);this.$=a[o-5].concat(a[o]);break;case 53:this.$=a[o-4].concat(a[o]);break;case 54:this.$=a[o];break;case 55:this.$=a[o-2];r.setClass(a[o-2],a[o]);break;case 56:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"square");break;case 57:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"doublecircle");break;case 58:this.$=a[o-5];r.addVertex(a[o-5],a[o-2],"circle");break;case 59:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"ellipse");break;case 60:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"stadium");break;case 61:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"subroutine");break;case 62:this.$=a[o-7];r.addVertex(a[o-7],a[o-1],"rect",void 0,void 0,void 0,Object.fromEntries([[a[o-5],a[o-3]]]));break;case 63:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"cylinder");break;case 64:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"round");break;case 65:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"diamond");break;case 66:this.$=a[o-5];r.addVertex(a[o-5],a[o-2],"hexagon");break;case 67:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"odd");break;case 68:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"trapezoid");break;case 69:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"inv_trapezoid");break;case 70:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"lean_right");break;case 71:this.$=a[o-3];r.addVertex(a[o-3],a[o-1],"lean_left");break;case 72:this.$=a[o];r.addVertex(a[o]);break;case 73:a[o-1].text=a[o];this.$=a[o-1];break;case 74:case 75:a[o-2].text=a[o-1];this.$=a[o-2];break;case 76:this.$=a[o];break;case 77:var l=r.destructLink(a[o],a[o-2]);this.$={type:l.type,stroke:l.stroke,length:l.length,text:a[o-1]};break;case 78:var l=r.destructLink(a[o],a[o-2]);this.$={type:l.type,stroke:l.stroke,length:l.length,text:a[o-1],id:a[o-3]};break;case 79:this.$={text:a[o],type:"text"};break;case 80:this.$={text:a[o-1].text+""+a[o],type:a[o-1].type};break;case 81:this.$={text:a[o],type:"string"};break;case 82:this.$={text:a[o],type:"markdown"};break;case 83:var l=r.destructLink(a[o]);this.$={type:l.type,stroke:l.stroke,length:l.length};break;case 84:var l=r.destructLink(a[o]);this.$={type:l.type,stroke:l.stroke,length:l.length,id:a[o-1]};break;case 85:this.$=a[o-1];break;case 86:this.$={text:a[o],type:"text"};break;case 87:this.$={text:a[o-1].text+""+a[o],type:a[o-1].type};break;case 88:this.$={text:a[o],type:"string"};break;case 89:case 104:this.$={text:a[o],type:"markdown"};break;case 101:this.$={text:a[o],type:"text"};break;case 102:this.$={text:a[o-1].text+""+a[o],type:a[o-1].type};break;case 103:this.$={text:a[o],type:"text"};break;case 105:this.$=a[o-4];r.addClass(a[o-2],a[o]);break;case 106:this.$=a[o-4];r.setClass(a[o-2],a[o]);break;case 107:case 115:this.$=a[o-1];r.setClickEvent(a[o-1],a[o]);break;case 108:case 116:this.$=a[o-3];r.setClickEvent(a[o-3],a[o-2]);r.setTooltip(a[o-3],a[o]);break;case 109:this.$=a[o-2];r.setClickEvent(a[o-2],a[o-1],a[o]);break;case 110:this.$=a[o-4];r.setClickEvent(a[o-4],a[o-3],a[o-2]);r.setTooltip(a[o-4],a[o]);break;case 111:this.$=a[o-2];r.setLink(a[o-2],a[o]);break;case 112:this.$=a[o-4];r.setLink(a[o-4],a[o-2]);r.setTooltip(a[o-4],a[o]);break;case 113:this.$=a[o-4];r.setLink(a[o-4],a[o-2],a[o]);break;case 114:this.$=a[o-6];r.setLink(a[o-6],a[o-4],a[o]);r.setTooltip(a[o-6],a[o-2]);break;case 117:this.$=a[o-1];r.setLink(a[o-1],a[o]);break;case 118:this.$=a[o-3];r.setLink(a[o-3],a[o-2]);r.setTooltip(a[o-3],a[o]);break;case 119:this.$=a[o-3];r.setLink(a[o-3],a[o-2],a[o]);break;case 120:this.$=a[o-5];r.setLink(a[o-5],a[o-4],a[o]);r.setTooltip(a[o-5],a[o-2]);break;case 121:this.$=a[o-4];r.addVertex(a[o-2],void 0,void 0,a[o]);break;case 122:this.$=a[o-4];r.updateLink([a[o-2]],a[o]);break;case 123:this.$=a[o-4];r.updateLink(a[o-2],a[o]);break;case 124:this.$=a[o-8];r.updateLinkInterpolate([a[o-6]],a[o-2]);r.updateLink([a[o-6]],a[o]);break;case 125:this.$=a[o-8];r.updateLinkInterpolate(a[o-6],a[o-2]);r.updateLink(a[o-6],a[o]);break;case 126:this.$=a[o-6];r.updateLinkInterpolate([a[o-4]],a[o]);break;case 127:this.$=a[o-6];r.updateLinkInterpolate(a[o-4],a[o]);break;case 128:case 130:this.$=[a[o]];break;case 129:case 131:a[o-2].push(a[o]);this.$=a[o-2];break;case 133:this.$=a[o-1]+a[o];break;case 181:this.$=a[o];break;case 182:this.$=a[o-1]+""+a[o];break;case 184:this.$=a[o-1]+""+a[o];break;case 185:this.$={stmt:"dir",value:"TB"};break;case 186:this.$={stmt:"dir",value:"BT"};break;case 187:this.$={stmt:"dir",value:"RL"};break;case 188:this.$={stmt:"dir",value:"LR"};break}}),"anonymous"),table:[{3:1,4:2,9:t,10:s,12:i},{1:[3]},e(r,n,{5:6}),{4:7,9:t,10:s,12:i},{4:8,9:t,10:s,12:i},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:a,9:u,10:o,11:l,20:17,22:18,23:19,24:20,25:21,26:22,27:c,33:24,34:h,36:d,38:f,42:28,43:38,44:b,45:39,47:40,60:k,84:g,85:A,86:y,87:m,88:E,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B,121:w,122:L,123:$,124:I},e(r,[2,9]),e(r,[2,10]),e(r,[2,11]),{8:[1,54],9:[1,55],10:R,15:53,18:56},e(N,[2,3]),e(N,[2,4]),e(N,[2,5]),e(N,[2,6]),e(N,[2,7]),e(N,[2,8]),{8:P,9:G,11:K,21:58,41:59,72:63,75:[1,64],77:[1,66],78:[1,65]},{8:P,9:G,11:K,21:67},{8:P,9:G,11:K,21:68},{8:P,9:G,11:K,21:69},{8:P,9:G,11:K,21:70},{8:P,9:G,11:K,21:71},{8:P,9:G,10:[1,72],11:K,21:73},e(N,[2,36]),{35:[1,74]},{37:[1,75]},e(N,[2,39]),e(O,[2,50],{18:76,39:77,10:R,40:V}),{10:[1,79]},{10:[1,80]},{10:[1,81]},{10:[1,82]},{14:M,44:U,60:W,80:[1,86],89:j,95:[1,83],97:[1,84],101:85,105:Y,106:z,109:X,111:H,114:q,115:Q,116:Z,120:87},e(N,[2,185]),e(N,[2,186]),e(N,[2,187]),e(N,[2,188]),e(J,[2,51]),e(J,[2,54],{46:[1,99]}),e(ee,[2,72],{113:112,29:[1,100],44:b,48:[1,101],50:[1,102],52:[1,103],54:[1,104],56:[1,105],58:[1,106],60:k,63:[1,107],65:[1,108],67:[1,109],68:[1,110],70:[1,111],89:x,102:C,105:D,106:S,109:T,111:v,114:F,115:_,116:B}),e(te,[2,181]),e(te,[2,142]),e(te,[2,143]),e(te,[2,144]),e(te,[2,145]),e(te,[2,146]),e(te,[2,147]),e(te,[2,148]),e(te,[2,149]),e(te,[2,150]),e(te,[2,151]),e(te,[2,152]),e(r,[2,12]),e(r,[2,18]),e(r,[2,19]),{9:[1,113]},e(se,[2,26],{18:114,10:R}),e(N,[2,27]),{42:115,43:38,44:b,45:39,47:40,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B},e(N,[2,40]),e(N,[2,41]),e(N,[2,42]),e(ie,[2,76],{73:116,62:[1,118],74:[1,117]}),{76:119,79:120,80:re,81:ne,116:ae,119:ue},{75:[1,125],77:[1,126]},e(oe,[2,83]),e(N,[2,28]),e(N,[2,29]),e(N,[2,30]),e(N,[2,31]),e(N,[2,32]),{10:le,12:ce,14:he,27:de,28:127,32:pe,44:fe,60:be,75:ke,80:[1,129],81:[1,130],83:140,84:ge,85:Ae,86:ye,87:me,88:Ee,89:xe,90:Ce,91:128,105:De,109:Se,111:Te,114:ve,115:Fe,116:_e},e(Be,n,{5:153}),e(N,[2,37]),e(N,[2,38]),e(O,[2,48],{44:we}),e(O,[2,49],{18:155,10:R,40:Le}),e(J,[2,44]),{44:b,47:157,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B},{102:[1,158],103:159,105:[1,160]},{44:b,47:161,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B},{44:b,47:162,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B},e($e,[2,107],{10:[1,163],96:[1,164]}),{80:[1,165]},e($e,[2,115],{120:167,10:[1,166],14:M,44:U,60:W,89:j,105:Y,106:z,109:X,111:H,114:q,115:Q,116:Z}),e($e,[2,117],{10:[1,168]}),e(Ie,[2,183]),e(Ie,[2,170]),e(Ie,[2,171]),e(Ie,[2,172]),e(Ie,[2,173]),e(Ie,[2,174]),e(Ie,[2,175]),e(Ie,[2,176]),e(Ie,[2,177]),e(Ie,[2,178]),e(Ie,[2,179]),e(Ie,[2,180]),{44:b,47:169,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B},{30:170,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{30:178,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{30:180,50:[1,179],67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{30:181,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{30:182,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{30:183,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{109:[1,184]},{30:185,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{30:186,65:[1,187],67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{30:188,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{30:189,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{30:190,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},e(te,[2,182]),e(r,[2,20]),e(se,[2,25]),e(O,[2,46],{39:191,18:192,10:R,40:V}),e(ie,[2,73],{10:[1,193]}),{10:[1,194]},{30:195,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{77:[1,196],79:197,116:ae,119:ue},e(Ve,[2,79]),e(Ve,[2,81]),e(Ve,[2,82]),e(Ve,[2,168]),e(Ve,[2,169]),{76:198,79:120,80:re,81:ne,116:ae,119:ue},e(oe,[2,84]),{8:P,9:G,10:le,11:K,12:ce,14:he,21:200,27:de,29:[1,199],32:pe,44:fe,60:be,75:ke,83:140,84:ge,85:Ae,86:ye,87:me,88:Ee,89:xe,90:Ce,91:201,105:De,109:Se,111:Te,114:ve,115:Fe,116:_e},e(Me,[2,101]),e(Me,[2,103]),e(Me,[2,104]),e(Me,[2,157]),e(Me,[2,158]),e(Me,[2,159]),e(Me,[2,160]),e(Me,[2,161]),e(Me,[2,162]),e(Me,[2,163]),e(Me,[2,164]),e(Me,[2,165]),e(Me,[2,166]),e(Me,[2,167]),e(Me,[2,90]),e(Me,[2,91]),e(Me,[2,92]),e(Me,[2,93]),e(Me,[2,94]),e(Me,[2,95]),e(Me,[2,96]),e(Me,[2,97]),e(Me,[2,98]),e(Me,[2,99]),e(Me,[2,100]),{6:11,7:12,8:a,9:u,10:o,11:l,20:17,22:18,23:19,24:20,25:21,26:22,27:c,32:[1,202],33:24,34:h,36:d,38:f,42:28,43:38,44:b,45:39,47:40,60:k,84:g,85:A,86:y,87:m,88:E,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B,121:w,122:L,123:$,124:I},{10:R,18:203},{44:[1,204]},e(J,[2,43]),{10:[1,205],44:b,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:112,114:F,115:_,116:B},{10:[1,206]},{10:[1,207],106:[1,208]},e(Ue,[2,128]),{10:[1,209],44:b,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:112,114:F,115:_,116:B},{10:[1,210],44:b,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:112,114:F,115:_,116:B},{80:[1,211]},e($e,[2,109],{10:[1,212]}),e($e,[2,111],{10:[1,213]}),{80:[1,214]},e(Ie,[2,184]),{80:[1,215],98:[1,216]},e(J,[2,55],{113:112,44:b,60:k,89:x,102:C,105:D,106:S,109:T,111:v,114:F,115:_,116:B}),{31:[1,217],67:Re,82:218,116:Ge,117:Ke,118:Oe},e(We,[2,86]),e(We,[2,88]),e(We,[2,89]),e(We,[2,153]),e(We,[2,154]),e(We,[2,155]),e(We,[2,156]),{49:[1,219],67:Re,82:218,116:Ge,117:Ke,118:Oe},{30:220,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{51:[1,221],67:Re,82:218,116:Ge,117:Ke,118:Oe},{53:[1,222],67:Re,82:218,116:Ge,117:Ke,118:Oe},{55:[1,223],67:Re,82:218,116:Ge,117:Ke,118:Oe},{57:[1,224],67:Re,82:218,116:Ge,117:Ke,118:Oe},{60:[1,225]},{64:[1,226],67:Re,82:218,116:Ge,117:Ke,118:Oe},{66:[1,227],67:Re,82:218,116:Ge,117:Ke,118:Oe},{30:228,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},{31:[1,229],67:Re,82:218,116:Ge,117:Ke,118:Oe},{67:Re,69:[1,230],71:[1,231],82:218,116:Ge,117:Ke,118:Oe},{67:Re,69:[1,233],71:[1,232],82:218,116:Ge,117:Ke,118:Oe},e(O,[2,45],{18:155,10:R,40:Le}),e(O,[2,47],{44:we}),e(ie,[2,75]),e(ie,[2,74]),{62:[1,234],67:Re,82:218,116:Ge,117:Ke,118:Oe},e(ie,[2,77]),e(Ve,[2,80]),{77:[1,235],79:197,116:ae,119:ue},{30:236,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},e(Be,n,{5:237}),e(Me,[2,102]),e(N,[2,35]),{43:238,44:b,45:39,47:40,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B},{10:R,18:239},{10:je,60:Ye,84:ze,92:240,105:Xe,107:241,108:242,109:He,110:qe,111:Qe,112:Ze},{10:je,60:Ye,84:ze,92:251,104:[1,252],105:Xe,107:241,108:242,109:He,110:qe,111:Qe,112:Ze},{10:je,60:Ye,84:ze,92:253,104:[1,254],105:Xe,107:241,108:242,109:He,110:qe,111:Qe,112:Ze},{105:[1,255]},{10:je,60:Ye,84:ze,92:256,105:Xe,107:241,108:242,109:He,110:qe,111:Qe,112:Ze},{44:b,47:257,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B},e($e,[2,108]),{80:[1,258]},{80:[1,259],98:[1,260]},e($e,[2,116]),e($e,[2,118],{10:[1,261]}),e($e,[2,119]),e(ee,[2,56]),e(We,[2,87]),e(ee,[2,57]),{51:[1,262],67:Re,82:218,116:Ge,117:Ke,118:Oe},e(ee,[2,64]),e(ee,[2,59]),e(ee,[2,60]),e(ee,[2,61]),{109:[1,263]},e(ee,[2,63]),e(ee,[2,65]),{66:[1,264],67:Re,82:218,116:Ge,117:Ke,118:Oe},e(ee,[2,67]),e(ee,[2,68]),e(ee,[2,70]),e(ee,[2,69]),e(ee,[2,71]),e([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),e(ie,[2,78]),{31:[1,265],67:Re,82:218,116:Ge,117:Ke,118:Oe},{6:11,7:12,8:a,9:u,10:o,11:l,20:17,22:18,23:19,24:20,25:21,26:22,27:c,32:[1,266],33:24,34:h,36:d,38:f,42:28,43:38,44:b,45:39,47:40,60:k,84:g,85:A,86:y,87:m,88:E,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B,121:w,122:L,123:$,124:I},e(J,[2,53]),{43:267,44:b,45:39,47:40,60:k,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B},e($e,[2,121],{106:Je}),e(et,[2,130],{108:269,10:je,60:Ye,84:ze,105:Xe,109:He,110:qe,111:Qe,112:Ze}),e(tt,[2,132]),e(tt,[2,134]),e(tt,[2,135]),e(tt,[2,136]),e(tt,[2,137]),e(tt,[2,138]),e(tt,[2,139]),e(tt,[2,140]),e(tt,[2,141]),e($e,[2,122],{106:Je}),{10:[1,270]},e($e,[2,123],{106:Je}),{10:[1,271]},e(Ue,[2,129]),e($e,[2,105],{106:Je}),e($e,[2,106],{113:112,44:b,60:k,89:x,102:C,105:D,106:S,109:T,111:v,114:F,115:_,116:B}),e($e,[2,110]),e($e,[2,112],{10:[1,272]}),e($e,[2,113]),{98:[1,273]},{51:[1,274]},{62:[1,275]},{66:[1,276]},{8:P,9:G,11:K,21:277},e(N,[2,34]),e(J,[2,52]),{10:je,60:Ye,84:ze,105:Xe,107:278,108:242,109:He,110:qe,111:Qe,112:Ze},e(tt,[2,133]),{14:M,44:U,60:W,89:j,101:279,105:Y,106:z,109:X,111:H,114:q,115:Q,116:Z,120:87},{14:M,44:U,60:W,89:j,101:280,105:Y,106:z,109:X,111:H,114:q,115:Q,116:Z,120:87},{98:[1,281]},e($e,[2,120]),e(ee,[2,58]),{30:282,67:Re,80:Ne,81:Pe,82:171,116:Ge,117:Ke,118:Oe},e(ee,[2,66]),e(Be,n,{5:283}),e(et,[2,131],{108:269,10:je,60:Ye,84:ze,105:Xe,109:He,110:qe,111:Qe,112:Ze}),e($e,[2,126],{120:167,10:[1,284],14:M,44:U,60:W,89:j,105:Y,106:z,109:X,111:H,114:q,115:Q,116:Z}),e($e,[2,127],{120:167,10:[1,285],14:M,44:U,60:W,89:j,105:Y,106:z,109:X,111:H,114:q,115:Q,116:Z}),e($e,[2,114]),{31:[1,286],67:Re,82:218,116:Ge,117:Ke,118:Oe},{6:11,7:12,8:a,9:u,10:o,11:l,20:17,22:18,23:19,24:20,25:21,26:22,27:c,32:[1,287],33:24,34:h,36:d,38:f,42:28,43:38,44:b,45:39,47:40,60:k,84:g,85:A,86:y,87:m,88:E,89:x,102:C,105:D,106:S,109:T,111:v,113:41,114:F,115:_,116:B,121:w,122:L,123:$,124:I},{10:je,60:Ye,84:ze,92:288,105:Xe,107:241,108:242,109:He,110:qe,111:Qe,112:Ze},{10:je,60:Ye,84:ze,92:289,105:Xe,107:241,108:242,109:He,110:qe,111:Qe,112:Ze},e(ee,[2,62]),e(N,[2,33]),e($e,[2,124],{106:Je}),e($e,[2,125],{106:Je})],defaultActions:{},parseError:(0,p.K2)((function e(t,s){if(s.recoverable){this.trace(t)}else{var i=new Error(t);i.hash=s;throw i}}),"parseError"),parse:(0,p.K2)((function e(t){var s=this,i=[0],r=[],n=[null],a=[],u=this.table,o="",l=0,c=0,h=0,d=2,f=1;var b=a.slice.call(arguments,1);var k=Object.create(this.lexer);var g={yy:{}};for(var A in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,A)){g.yy[A]=this.yy[A]}}k.setInput(t,g.yy);g.yy.lexer=k;g.yy.parser=this;if(typeof k.yylloc=="undefined"){k.yylloc={}}var y=k.yylloc;a.push(y);var m=k.options&&k.options.ranges;if(typeof g.yy.parseError==="function"){this.parseError=g.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function E(e){i.length=i.length-2*e;n.length=n.length-e;a.length=a.length-e}(0,p.K2)(E,"popStack");function x(){var e;e=r.pop()||k.lex()||f;if(typeof e!=="number"){if(e instanceof Array){r=e;e=r.pop()}e=s.symbols_[e]||e}return e}(0,p.K2)(x,"lex");var C,D,S,T,v,F,_={},B,w,L,$;while(true){S=i[i.length-1];if(this.defaultActions[S]){T=this.defaultActions[S]}else{if(C===null||typeof C=="undefined"){C=x()}T=u[S]&&u[S][C]}if(typeof T==="undefined"||!T.length||!T[0]){var I="";$=[];for(B in u[S]){if(this.terminals_[B]&&B>d){$.push("'"+this.terminals_[B]+"'")}}if(k.showPosition){I="Parse error on line "+(l+1)+":\n"+k.showPosition()+"\nExpecting "+$.join(", ")+", got '"+(this.terminals_[C]||C)+"'"}else{I="Parse error on line "+(l+1)+": Unexpected "+(C==f?"end of input":"'"+(this.terminals_[C]||C)+"'")}this.parseError(I,{text:k.match,token:this.terminals_[C]||C,line:k.yylineno,loc:y,expected:$})}if(T[0]instanceof Array&&T.length>1){throw new Error("Parse Error: multiple actions possible at state: "+S+", token: "+C)}switch(T[0]){case 1:i.push(C);n.push(k.yytext);a.push(k.yylloc);i.push(T[1]);C=null;if(!D){c=k.yyleng;o=k.yytext;l=k.yylineno;y=k.yylloc;if(h>0){h--}}else{C=D;D=null}break;case 2:w=this.productions_[T[1]][1];_.$=n[n.length-w];_._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column};if(m){_._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]}F=this.performAction.apply(_,[o,c,l,g.yy,T[1],n,a].concat(b));if(typeof F!=="undefined"){return F}if(w){i=i.slice(0,-1*w*2);n=n.slice(0,-1*w);a=a.slice(0,-1*w)}i.push(this.productions_[T[1]][0]);n.push(_.$);a.push(_._$);L=u[i[i.length-2]][i[i.length-1]];i.push(L);break;case 3:return true}}return true}),"parse")};var it=function(){var e={EOF:1,parseError:(0,p.K2)((function e(t,s){if(this.yy.parser){this.yy.parser.parseError(t,s)}else{throw new Error(t)}}),"parseError"),setInput:(0,p.K2)((function(e,t){this.yy=t||this.yy||{};this._input=e;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,p.K2)((function(){var e=this._input[0];this.yytext+=e;this.yyleng++;this.offset++;this.match+=e;this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);if(t){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return e}),"input"),unput:(0,p.K2)((function(e){var t=e.length;var s=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-t);this.offset-=t;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(s.length-1){this.yylineno-=s.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-t};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-t]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,p.K2)((function(){this._more=true;return this}),"more"),reject:(0,p.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,p.K2)((function(e){this.unput(this.match.slice(e))}),"less"),pastInput:(0,p.K2)((function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,p.K2)((function(){var e=this.match;if(e.length<20){e+=this._input.substr(0,20-e.length)}return(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,p.K2)((function(){var e=this.pastInput();var t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"}),"showPosition"),test_match:(0,p.K2)((function(e,t){var s,i,r;if(this.options.backtrack_lexer){r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){r.yylloc.range=this.yylloc.range.slice(0)}}i=e[0].match(/(?:\r\n?|\n).*/g);if(i){this.yylineno+=i.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length};this.yytext+=e[0];this.match+=e[0];this.matches=e;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(e[0].length);this.matched+=e[0];s=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(s){return s}else if(this._backtrack){for(var n in r){this[n]=r[n]}return false}return false}),"test_match"),next:(0,p.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var e,t,s,i;if(!this._more){this.yytext="";this.match=""}var r=this._currentRules();for(var n=0;nt[0].length)){t=s;i=n;if(this.options.backtrack_lexer){e=this.test_match(s,r[n]);if(e!==false){return e}else if(this._backtrack){t=false;continue}else{return false}}else if(!this.options.flex){break}}}if(t){e=this.test_match(t,r[i]);if(e!==false){return e}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,p.K2)((function e(){var t=this.next();if(t){return t}else{return this.lex()}}),"lex"),begin:(0,p.K2)((function e(t){this.conditionStack.push(t)}),"begin"),popState:(0,p.K2)((function e(){var t=this.conditionStack.length-1;if(t>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,p.K2)((function e(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,p.K2)((function e(t){t=this.conditionStack.length-1-Math.abs(t||0);if(t>=0){return this.conditionStack[t]}else{return"INITIAL"}}),"topState"),pushState:(0,p.K2)((function e(t){this.begin(t)}),"pushState"),stateStackSize:(0,p.K2)((function e(){return this.conditionStack.length}),"stateStackSize"),options:{},performAction:(0,p.K2)((function e(t,s,i,r){var n=r;switch(i){case 0:this.begin("acc_title");return 34;break;case 1:this.popState();return"acc_title_value";break;case 2:this.begin("acc_descr");return 36;break;case 3:this.popState();return"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";break;case 7:this.pushState("shapeData");s.yytext="";return 40;break;case 8:this.pushState("shapeDataStr");return 40;break;case 9:this.popState();return 40;break;case 10:const e=/\n\s*/g;s.yytext=s.yytext.replace(e,"
");return 40;break;case 11:return 40;break;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState();this.begin("callbackargs");break;case 16:return 95;break;case 17:this.popState();break;case 18:return 96;break;case 19:return"MD_STR";break;case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";break;case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 84;break;case 26:return 102;break;case 27:return 85;break;case 28:return 104;break;case 29:return 86;break;case 30:return 87;break;case 31:return 97;break;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 88;break;case 35:if(t.lex.firstGraph()){this.begin("dir")}return 12;break;case 36:if(t.lex.firstGraph()){this.begin("dir")}return 12;break;case 37:if(t.lex.firstGraph()){this.begin("dir")}return 12;break;case 38:return 27;break;case 39:return 32;break;case 40:return 98;break;case 41:return 98;break;case 42:return 98;break;case 43:return 98;break;case 44:this.popState();return 13;break;case 45:this.popState();return 14;break;case 46:this.popState();return 14;break;case 47:this.popState();return 14;break;case 48:this.popState();return 14;break;case 49:this.popState();return 14;break;case 50:this.popState();return 14;break;case 51:this.popState();return 14;break;case 52:this.popState();return 14;break;case 53:this.popState();return 14;break;case 54:this.popState();return 14;break;case 55:return 121;break;case 56:return 122;break;case 57:return 123;break;case 58:return 124;break;case 59:return 78;break;case 60:return 105;break;case 61:return 111;break;case 62:return 46;break;case 63:return 60;break;case 64:return 44;break;case 65:return 8;break;case 66:return 106;break;case 67:return 115;break;case 68:this.popState();return 77;break;case 69:this.pushState("edgeText");return 75;break;case 70:return 119;break;case 71:this.popState();return 77;break;case 72:this.pushState("thickEdgeText");return 75;break;case 73:return 119;break;case 74:this.popState();return 77;break;case 75:this.pushState("dottedEdgeText");return 75;break;case 76:return 119;break;case 77:return 77;break;case 78:this.popState();return 53;break;case 79:return"TEXT";break;case 80:this.pushState("ellipseText");return 52;break;case 81:this.popState();return 55;break;case 82:this.pushState("text");return 54;break;case 83:this.popState();return 57;break;case 84:this.pushState("text");return 56;break;case 85:return 58;break;case 86:this.pushState("text");return 67;break;case 87:this.popState();return 64;break;case 88:this.pushState("text");return 63;break;case 89:this.popState();return 49;break;case 90:this.pushState("text");return 48;break;case 91:this.popState();return 69;break;case 92:this.popState();return 71;break;case 93:return 117;break;case 94:this.pushState("trapText");return 68;break;case 95:this.pushState("trapText");return 70;break;case 96:return 118;break;case 97:return 67;break;case 98:return 90;break;case 99:return"SEP";break;case 100:return 89;break;case 101:return 115;break;case 102:return 111;break;case 103:return 44;break;case 104:return 109;break;case 105:return 114;break;case 106:return 116;break;case 107:this.popState();return 62;break;case 108:this.pushState("text");return 62;break;case 109:this.popState();return 51;break;case 110:this.pushState("text");return 50;break;case 111:this.popState();return 31;break;case 112:this.pushState("text");return 29;break;case 113:this.popState();return 66;break;case 114:this.pushState("text");return 65;break;case 115:return"TEXT";break;case 116:return"QUOTE";break;case 117:return 9;break;case 118:return 10;break;case 119:return 11;break}}),"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[^\s\"]+@(?=[^\{\"]))/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},shapeDataStr:{rules:[9,10,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},shapeData:{rules:[8,11,12,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},callbackargs:{rules:[17,18,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},callbackname:{rules:[14,15,16,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},href:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},click:{rules:[21,24,33,34,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},dottedEdgeText:{rules:[21,24,74,76,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},thickEdgeText:{rules:[21,24,71,73,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},edgeText:{rules:[21,24,68,70,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},trapText:{rules:[21,24,77,80,82,84,88,90,91,92,93,94,95,108,110,112,114],inclusive:false},ellipseText:{rules:[21,24,77,78,79,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},text:{rules:[21,24,77,80,81,82,83,84,87,88,89,90,94,95,107,108,109,110,111,112,113,114,115],inclusive:false},vertex:{rules:[21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},acc_descr_multiline:{rules:[5,6,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},acc_descr:{rules:[3,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},acc_title:{rules:[1,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},md_string:{rules:[19,20,21,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},string:{rules:[21,22,23,24,77,80,82,84,88,90,94,95,108,110,112,114],inclusive:false},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,71,72,74,75,77,80,82,84,85,86,88,90,94,95,96,97,98,99,100,101,102,103,104,105,106,108,110,112,114,116,117,118,119],inclusive:true}}};return e}();st.lexer=it;function rt(){this.yy={}}(0,p.K2)(rt,"Parser");rt.prototype=st;st.Parser=rt;return new rt}();x.parser=x;var C=x;var D=Object.assign({},C);D.parse=e=>{const t=e.replace(/}\s*\n/g,"}\n");return C.parse(t)};var S=D;var T=(0,p.K2)(((e,t)=>{const s=b.A;const i=s(e,"r");const r=s(e,"g");const n=s(e,"b");return k.A(i,r,n,t)}),"fade");var v=(0,p.K2)((e=>`.label {\n font-family: ${e.fontFamily};\n color: ${e.nodeTextColor||e.textColor};\n }\n .cluster-label text {\n fill: ${e.titleColor};\n }\n .cluster-label span {\n color: ${e.titleColor};\n }\n .cluster-label span p {\n background-color: transparent;\n }\n\n .label text,span {\n fill: ${e.nodeTextColor||e.textColor};\n color: ${e.nodeTextColor||e.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${e.mainBkg};\n stroke: ${e.nodeBorder};\n stroke-width: 1px;\n }\n .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .katex path {\n fill: #000;\n stroke: #000;\n stroke-width: 1px;\n }\n\n .rough-node .label,.node .label, .image-shape .label, .icon-shape .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n\n .root .anchor path {\n fill: ${e.lineColor} !important;\n stroke-width: 0;\n stroke: ${e.lineColor};\n }\n\n .arrowheadPath {\n fill: ${e.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${e.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${e.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${e.edgeLabelBackground};\n p {\n background-color: ${e.edgeLabelBackground};\n }\n rect {\n opacity: 0.5;\n background-color: ${e.edgeLabelBackground};\n fill: ${e.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${T(e.edgeLabelBackground,.5)};\n // background-color:\n }\n\n .cluster rect {\n fill: ${e.clusterBkg};\n stroke: ${e.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${e.titleColor};\n }\n\n .cluster span {\n color: ${e.titleColor};\n }\n /* .cluster div {\n color: ${e.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${e.fontFamily};\n font-size: 12px;\n background: ${e.tertiaryColor};\n border: 1px solid ${e.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${e.textColor};\n }\n\n rect.text {\n fill: none;\n stroke-width: 0;\n }\n\n .icon-shape, .image-shape {\n background-color: ${e.edgeLabelBackground};\n p {\n background-color: ${e.edgeLabelBackground};\n padding: 2px;\n }\n rect {\n opacity: 0.5;\n background-color: ${e.edgeLabelBackground};\n fill: ${e.edgeLabelBackground};\n }\n text-align: center;\n }\n`),"getStyles");var F=v;var _={parser:S,get db(){return new A},renderer:E,styles:F,init:(0,p.K2)((e=>{if(!e.flowchart){e.flowchart={}}if(e.layout){(0,p.XV)({layout:e.layout})}e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute;(0,p.XV)({flowchart:{arrowMarkerAbsolute:e.arrowMarkerAbsolute}})}),"init")}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2211.3123543dcc217549bbb0.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2211.3123543dcc217549bbb0.js deleted file mode 100644 index 871fd4dee4ddd6a00f81cc9304817d190206ecf6..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2211.3123543dcc217549bbb0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2211],{82211:(e,r,n)=>{n.d(r,{Zp:()=>Qt});var t=n(69769);var i=n(92911);var o=0;function a(e){var r=++o;return(0,i.A)(e)+r}const u=a;var s=n(33659);var d=n(74033);var f=n(8937);var c=Math.ceil,v=Math.max;function h(e,r,n,t){var i=-1,o=v(c((r-e)/(n||1)),0),a=Array(o);while(o--){a[t?o:++i]=e;e+=n}return a}const l=h;var g=n(31943);var p=n(52712);function A(e){return function(r,n,t){if(t&&typeof t!="number"&&(0,g.A)(r,n,t)){n=t=undefined}r=(0,p.A)(r);if(n===undefined){n=r;r=0}else{n=(0,p.A)(n)}t=t===undefined?r0;--u){a=r[u].dequeue();if(a){t=t.concat(P(e,r,n,a,true));break}}}}return t}function P(e,r,n,i,o){var a=o?[]:undefined;t.A(e.inEdges(i.v),(function(t){var i=e.edge(t);var u=e.node(t.v);if(o){a.push({v:t.v,w:t.w})}u.out-=i;C(r,n,u)}));t.A(e.outEdges(i.v),(function(t){var i=e.edge(t);var o=t.w;var a=e.node(o);a["in"]-=i;C(r,n,a)}));e.removeNode(i.v);return a}function j(e,r){var n=new y.T;var i=0;var o=0;t.A(e.nodes(),(function(e){n.setNode(e,{v:e,in:0,out:0})}));t.A(e.edges(),(function(e){var t=n.edge(e.v,e.w)||0;var a=r(e);var u=t+a;n.setEdge(e.v,e.w,u);o=Math.max(o,n.node(e.v).out+=a);i=Math.max(i,n.node(e.w)["in"]+=a)}));var a=m(o+i+3).map((function(){return new E}));var u=i+1;t.A(n.nodes(),(function(e){C(a,u,n.node(e))}));return{graph:n,buckets:a,zeroIdx:u}}function C(e,r,n){if(!n.out){e[0].enqueue(n)}else if(!n["in"]){e[e.length-1].enqueue(n)}else{e[n.out-n["in"]+r].enqueue(n)}}function T(e){var r=e.graph().acyclicer==="greedy"?x(e,n(e)):L(e);t.A(r,(function(r){var n=e.edge(r);e.removeEdge(r);n.forwardName=r.name;n.reversed=true;e.setEdge(r.w,r.v,n,u("rev"))}));function n(e){return function(r){return e.edge(r).weight}}}function L(e){var r=[];var n={};var i={};function o(a){if(Object.prototype.hasOwnProperty.call(i,a)){return}i[a]=true;n[a]=true;t.A(e.outEdges(a),(function(e){if(Object.prototype.hasOwnProperty.call(n,e.w)){r.push(e)}else{o(e.w)}}));delete n[a]}t.A(e.nodes(),o);return r}function M(e){t.A(e.edges(),(function(r){var n=e.edge(r);if(n.reversed){e.removeEdge(r);var t=n.forwardName;delete n.reversed;delete n.forwardName;e.setEdge(r.w,r.v,n,t)}}))}var R=n(96901);var F=n(44835);var S=n(78307);function D(e,r){return(0,F.A)(e,r,(function(r,n){return(0,S.A)(e,n)}))}const V=D;var G=n(27401);var Y=n(4596);function z(e){return(0,Y.A)((0,G.A)(e,undefined,d.A),e+"")}const B=z;var q=B((function(e,r){return e==null?{}:V(e,r)}));const $=q;var Q=n(38693);var J=n(95852);function W(e,r){return e>r}const Z=W;var H=n(63077);function K(e){return e&&e.length?(0,J.A)(e,H.A,Z):undefined}const U=K;var X=n(80359);var ee=n(48657);var re=n(27477);var ne=n(1121);function te(e,r){var n={};r=(0,ne.A)(r,3);(0,re.A)(e,(function(e,t,i){(0,ee.A)(n,t,r(e,t,i))}));return n}const ie=te;var oe=n(89523);var ae=n(963);var ue=n(2850);var se=n(24606);var de=function(){return se.A.Date.now()};const fe=de;function ce(e,r,n,t){var i;do{i=u(t)}while(e.hasNode(i));n.dummy=r;e.setNode(i,n);return i}function ve(e){var r=(new y.T).setGraph(e.graph());t.A(e.nodes(),(function(n){r.setNode(n,e.node(n))}));t.A(e.edges(),(function(n){var t=r.edge(n.v,n.w)||{weight:0,minlen:1};var i=e.edge(n);r.setEdge(n.v,n.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}));return r}function he(e){var r=new y.T({multigraph:e.isMultigraph()}).setGraph(e.graph());t.A(e.nodes(),(function(n){if(!e.children(n).length){r.setNode(n,e.node(n))}}));t.A(e.edges(),(function(n){r.setEdge(n,e.edge(n))}));return r}function le(e){var r=_.map(e.nodes(),(function(r){var n={};_.forEach(e.outEdges(r),(function(r){n[r.w]=(n[r.w]||0)+e.edge(r).weight}));return n}));return _.zipObject(e.nodes(),r)}function ge(e){var r=_.map(e.nodes(),(function(r){var n={};_.forEach(e.inEdges(r),(function(r){n[r.v]=(n[r.v]||0)+e.edge(r).weight}));return n}));return _.zipObject(e.nodes(),r)}function pe(e,r){var n=e.x;var t=e.y;var i=r.x-n;var o=r.y-t;var a=e.width/2;var u=e.height/2;if(!i&&!o){throw new Error("Not possible to find intersection inside of the rectangle")}var s,d;if(Math.abs(o)*a>Math.abs(i)*u){if(o<0){u=-u}s=u*i/o;d=u}else{if(i<0){a=-a}s=a;d=a*o/i}return{x:n+s,y:t+d}}function Ae(e){var r=f.A(m(ye(e)+1),(function(){return[]}));t.A(e.nodes(),(function(n){var t=e.node(n);var i=t.rank;if(!oe.A(i)){r[i][t.order]=n}}));return r}function we(e){var r=ae.A(f.A(e.nodes(),(function(r){return e.node(r).rank})));t.A(e.nodes(),(function(n){var t=e.node(n);if(ue.A(t,"rank")){t.rank-=r}}))}function be(e){var r=ae.A(f.A(e.nodes(),(function(r){return e.node(r).rank})));var n=[];t.A(e.nodes(),(function(t){var i=e.node(t).rank-r;if(!n[i]){n[i]=[]}n[i].push(t)}));var i=0;var o=e.graph().nodeRankFactor;t.A(n,(function(r,n){if(oe.A(r)&&n%o!==0){--i}else if(i){t.A(r,(function(r){e.node(r).rank+=i}))}}))}function me(e,r,n,t){var i={width:0,height:0};if(arguments.length>=4){i.rank=n;i.order=t}return ce(e,"border",i,r)}function ye(e){return U(f.A(e.nodes(),(function(r){var n=e.node(r).rank;if(!oe.A(n)){return n}})))}function _e(e,r){var n={lhs:[],rhs:[]};t.A(e,(function(e){if(r(e)){n.lhs.push(e)}else{n.rhs.push(e)}}));return n}function Ee(e,r){var n=fe();try{return r()}finally{console.log(e+" time: "+(fe()-n)+"ms")}}function Oe(e,r){return r()}function ke(e){function r(n){var i=e.children(n);var o=e.node(n);if(i.length){t.A(i,r)}if(Object.prototype.hasOwnProperty.call(o,"minRank")){o.borderLeft=[];o.borderRight=[];for(var a=o.minRank,u=o.maxRank+1;a0){a=o.removeMin();u=i[a];if(u.distance===Number.POSITIVE_INFINITY){break}t(a).forEach(s)}return i}function Ue(e,r,n){return _.transform(e.nodes(),(function(t,i){t[i]=dijkstra(e,i,r,n)}),{})}var Xe=s.A(1);function er(e,r,n){return rr(e,r||Xe,n||function(r){return e.outEdges(r)})}function rr(e,r,n){var t={};var i=e.nodes();i.forEach((function(e){t[e]={};t[e][e]={distance:0};i.forEach((function(r){if(e!==r){t[e][r]={distance:Number.POSITIVE_INFINITY}}}));n(e).forEach((function(n){var i=n.v===e?n.w:n.v;var o=r(n);t[e][i]={distance:o,predecessor:e}}))}));i.forEach((function(e){var r=t[e];i.forEach((function(n){var o=t[n];i.forEach((function(n){var t=o[e];var i=r[n];var a=o[n];var u=t.distance+i.distance;if(u0){o=i.removeMin();if(Object.prototype.hasOwnProperty.call(t,o)){n.setEdge(o,t[o])}else if(u){throw new Error("Input graph is not connected: "+e)}else{u=true}e.nodeEdges(o).forEach(a)}return n}tn.initLowLimValues=sn;tn.initCutValues=on;tn.calcCutValue=un;tn.leaveEdge=fn;tn.enterEdge=cn;tn.exchangeEdges=vn;function tn(e){e=ve(e);Ye(e);var r=Be(e);sn(r);on(r,e);var n,t;while(n=fn(r)){t=cn(r,e,n);vn(r,e,n,t)}}function on(e,r){var n=Xr(e,e.nodes());n=n.slice(0,n.length-1);t.A(n,(function(n){an(e,r,n)}))}function an(e,r,n){var t=e.node(n);var i=t.parent;e.edge(n,i).cutvalue=un(e,r,n)}function un(e,r,n){var i=e.node(n);var o=i.parent;var a=true;var u=r.edge(n,o);var s=0;if(!u){a=false;u=r.edge(o,n)}s=u.weight;t.A(r.nodeEdges(n),(function(t){var i=t.v===n,u=i?t.w:t.v;if(u!==o){var d=i===a,f=r.edge(t).weight;s+=d?f:-f;if(ln(e,n,u)){var c=e.edge(n,u).cutvalue;s+=d?-c:c}}}));return s}function sn(e,r){if(arguments.length<2){r=e.nodes()[0]}dn(e,{},1,r)}function dn(e,r,n,i,o){var a=n;var u=e.node(i);r[i]=true;t.A(e.neighbors(i),(function(t){if(!Object.prototype.hasOwnProperty.call(r,t)){n=dn(e,r,n,t,i)}}));u.low=a;u.lim=n++;if(o){u.parent=o}else{delete u.parent}return n}function fn(e){return Je.A(e.edges(),(function(r){return e.edge(r).cutvalue<0}))}function cn(e,r,n){var t=n.v;var i=n.w;if(!r.hasEdge(t,i)){t=n.w;i=n.v}var o=e.node(t);var a=e.node(i);var u=o;var s=false;if(o.lim>a.lim){u=a;s=true}var d=We.A(r.edges(),(function(r){return s===gn(e,e.node(r.v),u)&&s!==gn(e,e.node(r.w),u)}));return Ge(d,(function(e){return ze(r,e)}))}function vn(e,r,n,t){var i=n.v;var o=n.w;e.removeEdge(i,o);e.setEdge(t.v,t.w,{});sn(e);on(e,r);hn(e,r)}function hn(e,r){var n=Je.A(e.nodes(),(function(e){return!r.node(e).parent}));var i=en(e,n);i=i.slice(1);t.A(i,(function(n){var t=e.node(n).parent,i=r.edge(n,t),o=false;if(!i){i=r.edge(t,n);o=true}r.node(n).rank=r.node(t).rank+(o?i.minlen:-i.minlen)}))}function ln(e,r,n){return e.hasEdge(r,n)}function gn(e,r,n){return n.low<=r.lim&&r.lim<=n.lim}function pn(e){switch(e.graph().ranker){case"network-simplex":bn(e);break;case"tight-tree":wn(e);break;case"longest-path":An(e);break;default:bn(e)}}var An=Ye;function wn(e){Ye(e);Be(e)}function bn(e){tn(e)}var mn=n(44882);var yn=n(65339);function _n(e){var r=ce(e,"root",{},"_root");var n=On(e);var i=U(mn.A(n))-1;var o=2*i+1;e.graph().nestingRoot=r;t.A(e.edges(),(function(r){e.edge(r).minlen*=o}));var a=kn(e)+1;t.A(e.children(),(function(t){En(e,r,o,a,i,n,t)}));e.graph().nodeRankFactor=o}function En(e,r,n,i,o,a,u){var s=e.children(u);if(!s.length){if(u!==r){e.setEdge(r,u,{weight:0,minlen:n})}return}var d=me(e,"_bt");var f=me(e,"_bb");var c=e.node(u);e.setParent(d,u);c.borderTop=d;e.setParent(f,u);c.borderBottom=f;t.A(s,(function(t){En(e,r,n,i,o,a,t);var s=e.node(t);var c=s.borderTop?s.borderTop:t;var v=s.borderBottom?s.borderBottom:t;var h=s.borderTop?i:2*i;var l=c!==v?1:o-a[u]+1;e.setEdge(d,c,{weight:h,minlen:l,nestingEdge:true});e.setEdge(v,f,{weight:h,minlen:l,nestingEdge:true})}));if(!e.parent(u)){e.setEdge(r,d,{weight:0,minlen:o+a[u]})}}function On(e){var r={};function n(i,o){var a=e.children(i);if(a&&a.length){t.A(a,(function(e){n(e,o+1)}))}r[i]=o}t.A(e.children(),(function(e){n(e,1)}));return r}function kn(e){return yn.A(e.edges(),(function(r,n){return r+e.edge(n).weight}),0)}function Nn(e){var r=e.graph();e.removeNode(r.nestingRoot);delete r.nestingRoot;t.A(e.edges(),(function(r){var n=e.edge(r);if(n.nestingEdge){e.removeEdge(r)}}))}var xn=n(59386);var In=1,Pn=4;function jn(e){return(0,xn.A)(e,In|Pn)}const Cn=jn;function Tn(e,r,n){var i={},o;t.A(n,(function(n){var t=e.parent(n),a,u;while(t){a=e.parent(t);if(a){u=i[a];i[a]=t}else{u=o;o=t}if(u&&u!==t){r.setEdge(u,t);return}t=a}}))}function Ln(e,r,n){var i=Mn(e),o=new y.T({compound:true}).setGraph({root:i}).setDefaultNodeLabel((function(r){return e.node(r)}));t.A(e.nodes(),(function(a){var u=e.node(a),s=e.parent(a);if(u.rank===r||u.minRank<=r&&r<=u.maxRank){o.setNode(a);o.setParent(a,s||i);t.A(e[n](a),(function(r){var n=r.v===a?r.w:r.v,t=o.edge(n,a),i=!oe.A(t)?t.weight:0;o.setEdge(n,a,{weight:e.edge(r).weight+i})}));if(Object.prototype.hasOwnProperty.call(u,"minRank")){o.setNode(a,{borderLeft:u.borderLeft[r],borderRight:u.borderRight[r]})}}}));return o}function Mn(e){var r;while(e.hasNode(r=u("_root")));return r}var Rn=n(16542);function Fn(e,r,n){var t=-1,i=e.length,o=r.length,a={};while(++tr||o&&a&&s&&!u&&!d||t&&a&&s||!n&&s||!i){return 1}if(!t&&!o&&!d&&e=u){return s}var d=n[t];return s*(d=="desc"?-1:1)}}return e.index-r.index}const Kn=Hn;function Un(e,r,n){if(r.length){r=(0,Yn.A)(r,(function(e){if((0,Hr.A)(e)){return function(r){return(0,zn.A)(r,e.length===1?e[0]:e)}}return e}))}else{r=[H.A]}var t=-1;r=(0,Yn.A)(r,(0,Qn.A)(ne.A));var i=(0,Bn.A)(e,(function(e,n,i){var o=(0,Yn.A)(r,(function(r){return r(e)}));return{criteria:o,index:++t,value:e}}));return $n(i,(function(e,r){return Kn(e,r,n)}))}const Xn=Un;var et=n(55881);var rt=(0,et.A)((function(e,r){if(e==null){return[]}var n=r.length;if(n>1&&(0,g.A)(e,r[0],r[1])){r=[]}else if(n>2&&(0,g.A)(r[0],r[1],r[2])){r=[r[0]]}return Xn(e,(0,Gn.A)(r,1),[])}));const nt=rt;function tt(e,r){var n=0;for(var t=1;t0){if(r%2){n+=s[r+1]}r=r-1>>1;s[r]+=e.weight}c+=e.weight*n})));return c}function ot(e){var r={};var n=We.A(e.nodes(),(function(r){return!e.children(r).length}));var i=U(f.A(n,(function(r){return e.node(r).rank})));var o=f.A(m(i+1),(function(){return[]}));function a(n){if(ue.A(r,n))return;r[n]=true;var i=e.node(n);o[i.rank].push(n);t.A(e.successors(n),a)}var u=nt(n,(function(r){return e.node(r).rank}));t.A(u,a);return o}function at(e,r){return f.A(r,(function(r){var n=e.inEdges(r);if(!n.length){return{v:r}}else{var t=yn.A(n,(function(r,n){var t=e.edge(n),i=e.node(n.v);return{sum:r.sum+t.weight*i.order,weight:r.weight+t.weight}}),{sum:0,weight:0});return{v:r,barycenter:t.sum/t.weight,weight:t.weight}}}))}function ut(e,r){var n={};t.A(e,(function(e,r){var t=n[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:r};if(!oe.A(e.barycenter)){t.barycenter=e.barycenter;t.weight=e.weight}}));t.A(r.edges(),(function(e){var r=n[e.v];var t=n[e.w];if(!oe.A(r)&&!oe.A(t)){t.indegree++;r.out.push(n[e.w])}}));var i=We.A(n,(function(e){return!e.indegree}));return st(i)}function st(e){var r=[];function n(e){return function(r){if(r.merged){return}if(oe.A(r.barycenter)||oe.A(e.barycenter)||r.barycenter>=e.barycenter){dt(e,r)}}}function i(r){return function(n){n["in"].push(r);if(--n.indegree===0){e.push(n)}}}while(e.length){var o=e.pop();r.push(o);t.A(o["in"].reverse(),n(o));t.A(o.out,i(o))}return f.A(We.A(r,(function(e){return!e.merged})),(function(e){return $(e,["vs","i","barycenter","weight"])}))}function dt(e,r){var n=0;var t=0;if(e.weight){n+=e.barycenter*e.weight;t+=e.weight}if(r.weight){n+=r.barycenter*r.weight;t+=r.weight}e.vs=r.vs.concat(e.vs);e.barycenter=n/t;e.weight=t;e.i=Math.min(r.i,e.i);r.merged=true}function ft(e,r){var n=_e(e,(function(e){return Object.prototype.hasOwnProperty.call(e,"barycenter")}));var i=n.lhs,o=nt(n.rhs,(function(e){return-e.i})),a=[],u=0,s=0,f=0;i.sort(vt(!!r));f=ct(a,o,f);t.A(i,(function(e){f+=e.vs.length;a.push(e.vs);u+=e.barycenter*e.weight;s+=e.weight;f=ct(a,o,f)}));var c={vs:d.A(a)};if(s){c.barycenter=u/s;c.weight=s}return c}function ct(e,r,n){var t;while(r.length&&(t=X.A(r)).i<=n){r.pop();e.push(t.vs);n++}return n}function vt(e){return function(r,n){if(r.barycentern.barycenter){return 1}return!e?r.i-n.i:n.i-r.i}}function ht(e,r,n,i){var o=e.children(r);var a=e.node(r);var u=a?a.borderLeft:undefined;var s=a?a.borderRight:undefined;var f={};if(u){o=We.A(o,(function(e){return e!==u&&e!==s}))}var c=at(e,o);t.A(c,(function(r){if(e.children(r.v).length){var t=ht(e,r.v,n,i);f[r.v]=t;if(Object.prototype.hasOwnProperty.call(t,"barycenter")){gt(r,t)}}}));var v=ut(c,n);lt(v,f);var h=ft(v,i);if(u){h.vs=d.A([u,h.vs,s]);if(e.predecessors(u).length){var l=e.node(e.predecessors(u)[0]),g=e.node(e.predecessors(s)[0]);if(!Object.prototype.hasOwnProperty.call(h,"barycenter")){h.barycenter=0;h.weight=0}h.barycenter=(h.barycenter*h.weight+l.order+g.order)/(h.weight+2);h.weight+=2}}return h}function lt(e,r){t.A(e,(function(e){e.vs=d.A(e.vs.map((function(e){if(r[e]){return r[e].vs}return e})))}))}function gt(e,r){if(!oe.A(e.barycenter)){e.barycenter=(e.barycenter*e.weight+r.barycenter*r.weight)/(e.weight+r.weight);e.weight+=r.weight}else{e.barycenter=r.barycenter;e.weight=r.weight}}function pt(e){var r=ye(e),n=At(e,m(1,r+1),"inEdges"),t=At(e,m(r-1,-1,-1),"outEdges");var i=ot(e);bt(e,i);var o=Number.POSITIVE_INFINITY,a;for(var u=0,s=0;s<4;++u,++s){wt(u%2?n:t,u%4>=2);i=Ae(e);var d=tt(e,i);if(da||u>r[s].lim));d=s;s=t;while((s=e.parent(s))!==d){o.push(s)}return{path:i.concat(o.reverse()),lca:d}}function _t(e){var r={};var n=0;function i(o){var a=n;t.A(e.children(o),i);r[o]={low:a,lim:n++}}t.A(e.children(),i);return r}var Et=n(76253);function Ot(e,r){return e&&(0,re.A)(e,(0,Et.A)(r))}const kt=Ot;var Nt=n(40283);var xt=n(13839);function It(e,r){return e==null?e:(0,Nt.A)(e,(0,Et.A)(r),xt.A)}const Pt=It;function jt(e,r){var n={};function i(r,i){var o=0,a=0,u=r.length,s=X.A(i);t.A(i,(function(r,d){var f=Tt(e,r),c=f?e.node(f).order:u;if(f||r===s){t.A(i.slice(a,d+1),(function(r){t.A(e.predecessors(r),(function(t){var i=e.node(t),a=i.order;if((au)){Lt(n,r,s)}}))}}))}function o(r,n){var o=-1,a,u=0;t.A(n,(function(t,s){if(e.node(t).dummy==="border"){var d=e.predecessors(t);if(d.length){a=e.node(d[0]).order;i(n,u,s,o,a);u=s;o=a}}i(n,u,n.length,a,r.length)}));return n}yn.A(r,o);return n}function Tt(e,r){if(e.node(r).dummy){return Je.A(e.predecessors(r),(function(r){return e.node(r).dummy}))}}function Lt(e,r,n){if(r>n){var t=r;r=n;n=t}var i=e[r];if(!i){e[r]=i={}}i[n]=true}function Mt(e,r,n){if(r>n){var t=r;r=n;n=t}return!!e[r]&&Object.prototype.hasOwnProperty.call(e[r],n)}function Rt(e,r,n,i){var o={},a={},u={};t.A(r,(function(e){t.A(e,(function(e,r){o[e]=e;a[e]=e;u[e]=r}))}));t.A(r,(function(e){var r=-1;t.A(e,(function(e){var t=i(e);if(t.length){t=nt(t,(function(e){return u[e]}));var s=(t.length-1)/2;for(var d=Math.floor(s),f=Math.ceil(s);d<=f;++d){var c=t[d];if(a[e]===e&&r{var r=n(" buildLayoutGraph",(()=>ti(e)));n(" runLayout",(()=>Jt(r,n)));n(" updateInputGraph",(()=>Wt(e,r)))}))}function Jt(e,r){r(" makeSpaceForEdgeLabels",(()=>ii(e)));r(" removeSelfEdges",(()=>hi(e)));r(" acyclic",(()=>T(e)));r(" nestingGraph.run",(()=>_n(e)));r(" rank",(()=>pn(he(e))));r(" injectEdgeLabelProxies",(()=>oi(e)));r(" removeEmptyRanks",(()=>be(e)));r(" nestingGraph.cleanup",(()=>Nn(e)));r(" normalizeRanks",(()=>we(e)));r(" assignRankMinMax",(()=>ai(e)));r(" removeEdgeLabelProxies",(()=>ui(e)));r(" normalize.run",(()=>Re(e)));r(" parentDummyChains",(()=>mt(e)));r(" addBorderSegments",(()=>ke(e)));r(" order",(()=>pt(e)));r(" insertSelfEdges",(()=>li(e)));r(" adjustCoordinateSystem",(()=>xe(e)));r(" position",(()=>qt(e)));r(" positionSelfEdges",(()=>gi(e)));r(" removeBorderNodes",(()=>vi(e)));r(" normalize.undo",(()=>Se(e)));r(" fixupEdgeLabelCoords",(()=>fi(e)));r(" undoCoordinateSystem",(()=>Ie(e)));r(" translateGraph",(()=>si(e)));r(" assignNodeIntersects",(()=>di(e)));r(" reversePoints",(()=>ci(e)));r(" acyclic.undo",(()=>M(e)))}function Wt(e,r){t.A(e.nodes(),(function(n){var t=e.node(n);var i=r.node(n);if(t){t.x=i.x;t.y=i.y;if(r.children(n).length){t.width=i.width;t.height=i.height}}}));t.A(e.edges(),(function(n){var t=e.edge(n);var i=r.edge(n);t.points=i.points;if(Object.prototype.hasOwnProperty.call(i,"x")){t.x=i.x;t.y=i.y}}));e.graph().width=r.graph().width;e.graph().height=r.graph().height}var Zt=["nodesep","edgesep","ranksep","marginx","marginy"];var Ht={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"};var Kt=["acyclicer","ranker","rankdir","align"];var Ut=["width","height"];var Xt={width:0,height:0};var ei=["minlen","weight","width","height","labeloffset"];var ri={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"};var ni=["labelpos"];function ti(e){var r=new y.T({multigraph:true,compound:true});var n=Ai(e.graph());r.setGraph(R.A({},Ht,pi(n,Zt),$(n,Kt)));t.A(e.nodes(),(function(n){var t=Ai(e.node(n));r.setNode(n,Q.A(pi(t,Ut),Xt));r.setParent(n,e.parent(n))}));t.A(e.edges(),(function(n){var t=Ai(e.edge(n));r.setEdge(n,R.A({},ri,pi(t,ei),$(t,ni)))}));return r}function ii(e){var r=e.graph();r.ranksep/=2;t.A(e.edges(),(function(n){var t=e.edge(n);t.minlen*=2;if(t.labelpos.toLowerCase()!=="c"){if(r.rankdir==="TB"||r.rankdir==="BT"){t.width+=t.labeloffset}else{t.height+=t.labeloffset}}}))}function oi(e){t.A(e.edges(),(function(r){var n=e.edge(r);if(n.width&&n.height){var t=e.node(r.v);var i=e.node(r.w);var o={rank:(i.rank-t.rank)/2+t.rank,e:r};ce(e,"edge-proxy",o,"_ep")}}))}function ai(e){var r=0;t.A(e.nodes(),(function(n){var t=e.node(n);if(t.borderTop){t.minRank=e.node(t.borderTop).rank;t.maxRank=e.node(t.borderBottom).rank;r=U(r,t.maxRank)}}));e.graph().maxRank=r}function ui(e){t.A(e.nodes(),(function(r){var n=e.node(r);if(n.dummy==="edge-proxy"){e.edge(n.e).labelRank=n.rank;e.removeNode(r)}}))}function si(e){var r=Number.POSITIVE_INFINITY;var n=0;var i=Number.POSITIVE_INFINITY;var o=0;var a=e.graph();var u=a.marginx||0;var s=a.marginy||0;function d(e){var t=e.x;var a=e.y;var u=e.width;var s=e.height;r=Math.min(r,t-u/2);n=Math.max(n,t+u/2);i=Math.min(i,a-s/2);o=Math.max(o,a+s/2)}t.A(e.nodes(),(function(r){d(e.node(r))}));t.A(e.edges(),(function(r){var n=e.edge(r);if(Object.prototype.hasOwnProperty.call(n,"x")){d(n)}}));r-=u;i-=s;t.A(e.nodes(),(function(n){var t=e.node(n);t.x-=r;t.y-=i}));t.A(e.edges(),(function(n){var o=e.edge(n);t.A(o.points,(function(e){e.x-=r;e.y-=i}));if(Object.prototype.hasOwnProperty.call(o,"x")){o.x-=r}if(Object.prototype.hasOwnProperty.call(o,"y")){o.y-=i}}));a.width=n-r+u;a.height=o-i+s}function di(e){t.A(e.edges(),(function(r){var n=e.edge(r);var t=e.node(r.v);var i=e.node(r.w);var o,a;if(!n.points){n.points=[];o=i;a=t}else{o=n.points[0];a=n.points[n.points.length-1]}n.points.unshift(pe(t,o));n.points.push(pe(i,a))}))}function fi(e){t.A(e.edges(),(function(r){var n=e.edge(r);if(Object.prototype.hasOwnProperty.call(n,"x")){if(n.labelpos==="l"||n.labelpos==="r"){n.width-=n.labeloffset}switch(n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset;break}}}))}function ci(e){t.A(e.edges(),(function(r){var n=e.edge(r);if(n.reversed){n.points.reverse()}}))}function vi(e){t.A(e.nodes(),(function(r){if(e.children(r).length){var n=e.node(r);var t=e.node(n.borderTop);var i=e.node(n.borderBottom);var o=e.node(X.A(n.borderLeft));var a=e.node(X.A(n.borderRight));n.width=Math.abs(a.x-o.x);n.height=Math.abs(i.y-t.y);n.x=o.x+n.width/2;n.y=t.y+n.height/2}}));t.A(e.nodes(),(function(r){if(e.node(r).dummy==="border"){e.removeNode(r)}}))}function hi(e){t.A(e.edges(),(function(r){if(r.v===r.w){var n=e.node(r.v);if(!n.selfEdges){n.selfEdges=[]}n.selfEdges.push({e:r,label:e.edge(r)});e.removeEdge(r)}}))}function li(e){var r=Ae(e);t.A(r,(function(r){var n=0;t.A(r,(function(r,i){var o=e.node(r);o.order=i+n;t.A(o.selfEdges,(function(r){ce(e,"selfedge",{width:r.label.width,height:r.label.height,rank:o.rank,order:i+ ++n,e:r.e,label:r.label},"_se")}));delete o.selfEdges}))}))}function gi(e){t.A(e.nodes(),(function(r){var n=e.node(r);if(n.dummy==="selfedge"){var t=e.node(n.e.v);var i=t.x+t.width/2;var o=t.y;var a=n.x-i;var u=t.height/2;e.setEdge(n.e,n.label);e.removeNode(r);n.label.points=[{x:i+2*a/3,y:o-u},{x:i+5*a/6,y:o-u},{x:i+a,y:o},{x:i+5*a/6,y:o+u},{x:i+2*a/3,y:o+u}];n.label.x=n.x;n.label.y=n.y}}))}function pi(e,r){return ie($(e,r),Number)}function Ai(e){var r={};t.A(e,(function(e,n){r[n.toLowerCase()]=e}));return r}},65791:(e,r,n)=>{n.d(r,{T:()=>y});var t=n(33659);var i=n(58807);var o=n(37947);var a=n(97133);var u=n(74650);var s=n(69769);var d=n(89523);var f=n(62040);var c=n(55881);var v=n(19363);var h=n(10654);var l=(0,c.A)((function(e){return(0,v.A)((0,f.A)(e,1,h.A,true))}));const g=l;var p=n(44882);var A=n(65339);var w="\0";var b="\0";var m="";class y{constructor(e={}){this._isDirected=Object.prototype.hasOwnProperty.call(e,"directed")?e.directed:true;this._isMultigraph=Object.prototype.hasOwnProperty.call(e,"multigraph")?e.multigraph:false;this._isCompound=Object.prototype.hasOwnProperty.call(e,"compound")?e.compound:false;this._label=undefined;this._defaultNodeLabelFn=t.A(undefined);this._defaultEdgeLabelFn=t.A(undefined);this._nodes={};if(this._isCompound){this._parent={};this._children={};this._children[b]={}}this._in={};this._preds={};this._out={};this._sucs={};this._edgeObjs={};this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){this._label=e;return this}graph(){return this._label}setDefaultNodeLabel(e){if(!i.A(e)){e=t.A(e)}this._defaultNodeLabelFn=e;return this}nodeCount(){return this._nodeCount}nodes(){return o.A(this._nodes)}sources(){var e=this;return a.A(this.nodes(),(function(r){return u.A(e._in[r])}))}sinks(){var e=this;return a.A(this.nodes(),(function(r){return u.A(e._out[r])}))}setNodes(e,r){var n=arguments;var t=this;s.A(e,(function(e){if(n.length>1){t.setNode(e,r)}else{t.setNode(e)}}));return this}setNode(e,r){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){if(arguments.length>1){this._nodes[e]=r}return this}this._nodes[e]=arguments.length>1?r:this._defaultNodeLabelFn(e);if(this._isCompound){this._parent[e]=b;this._children[e]={};this._children[b][e]=true}this._in[e]={};this._preds[e]={};this._out[e]={};this._sucs[e]={};++this._nodeCount;return this}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var r=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[e];if(this._isCompound){this._removeFromParentsChildList(e);delete this._parent[e];s.A(this.children(e),(e=>{this.setParent(e)}));delete this._children[e]}s.A(o.A(this._in[e]),r);delete this._in[e];delete this._preds[e];s.A(o.A(this._out[e]),r);delete this._out[e];delete this._sucs[e];--this._nodeCount}return this}setParent(e,r){if(!this._isCompound){throw new Error("Cannot set parent in a non-compound graph")}if(d.A(r)){r=b}else{r+="";for(var n=r;!d.A(n);n=this.parent(n)){if(n===e){throw new Error("Setting "+r+" as parent of "+e+" would create a cycle")}}this.setNode(r)}this.setNode(e);this._removeFromParentsChildList(e);this._parent[e]=r;this._children[r][e]=true;return this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var r=this._parent[e];if(r!==b){return r}}}children(e){if(d.A(e)){e=b}if(this._isCompound){var r=this._children[e];if(r){return o.A(r)}}else if(e===b){return this.nodes()}else if(this.hasNode(e)){return[]}}predecessors(e){var r=this._preds[e];if(r){return o.A(r)}}successors(e){var r=this._sucs[e];if(r){return o.A(r)}}neighbors(e){var r=this.predecessors(e);if(r){return g(r,this.successors(e))}}isLeaf(e){var r;if(this.isDirected()){r=this.successors(e)}else{r=this.neighbors(e)}return r.length===0}filterNodes(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;s.A(this._nodes,(function(n,t){if(e(t)){r.setNode(t,n)}}));s.A(this._edgeObjs,(function(e){if(r.hasNode(e.v)&&r.hasNode(e.w)){r.setEdge(e,n.edge(e))}}));var t={};function i(e){var o=n.parent(e);if(o===undefined||r.hasNode(o)){t[e]=o;return o}else if(o in t){return t[o]}else{return i(o)}}if(this._isCompound){s.A(r.nodes(),(function(e){r.setParent(e,i(e))}))}return r}setDefaultEdgeLabel(e){if(!i.A(e)){e=t.A(e)}this._defaultEdgeLabelFn=e;return this}edgeCount(){return this._edgeCount}edges(){return p.A(this._edgeObjs)}setPath(e,r){var n=this;var t=arguments;A.A(e,(function(e,i){if(t.length>1){n.setEdge(e,i,r)}else{n.setEdge(e,i)}return i}));return this}setEdge(){var e,r,n,t;var i=false;var o=arguments[0];if(typeof o==="object"&&o!==null&&"v"in o){e=o.v;r=o.w;n=o.name;if(arguments.length===2){t=arguments[1];i=true}}else{e=o;r=arguments[1];n=arguments[3];if(arguments.length>2){t=arguments[2];i=true}}e=""+e;r=""+r;if(!d.A(n)){n=""+n}var a=O(this._isDirected,e,r,n);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,a)){if(i){this._edgeLabels[a]=t}return this}if(!d.A(n)&&!this._isMultigraph){throw new Error("Cannot set a named edge when isMultigraph = false")}this.setNode(e);this.setNode(r);this._edgeLabels[a]=i?t:this._defaultEdgeLabelFn(e,r,n);var u=k(this._isDirected,e,r,n);e=u.v;r=u.w;Object.freeze(u);this._edgeObjs[a]=u;_(this._preds[r],e);_(this._sucs[e],r);this._in[r][a]=u;this._out[e][a]=u;this._edgeCount++;return this}edge(e,r,n){var t=arguments.length===1?N(this._isDirected,arguments[0]):O(this._isDirected,e,r,n);return this._edgeLabels[t]}hasEdge(e,r,n){var t=arguments.length===1?N(this._isDirected,arguments[0]):O(this._isDirected,e,r,n);return Object.prototype.hasOwnProperty.call(this._edgeLabels,t)}removeEdge(e,r,n){var t=arguments.length===1?N(this._isDirected,arguments[0]):O(this._isDirected,e,r,n);var i=this._edgeObjs[t];if(i){e=i.v;r=i.w;delete this._edgeLabels[t];delete this._edgeObjs[t];E(this._preds[r],e);E(this._sucs[e],r);delete this._in[r][t];delete this._out[e][t];this._edgeCount--}return this}inEdges(e,r){var n=this._in[e];if(n){var t=p.A(n);if(!r){return t}return a.A(t,(function(e){return e.v===r}))}}outEdges(e,r){var n=this._out[e];if(n){var t=p.A(n);if(!r){return t}return a.A(t,(function(e){return e.w===r}))}}nodeEdges(e,r){var n=this.inEdges(e,r);if(n){return n.concat(this.outEdges(e,r))}}}y.prototype._nodeCount=0;y.prototype._edgeCount=0;function _(e,r){if(e[r]){e[r]++}else{e[r]=1}}function E(e,r){if(! --e[r]){delete e[r]}}function O(e,r,n,t){var i=""+r;var o=""+n;if(!e&&i>o){var a=i;i=o;o=a}return i+m+o+m+(d.A(t)?w:t)}function k(e,r,n,t){var i=""+r;var o=""+n;if(!e&&i>o){var a=i;i=o;o=a}var u={v:i,w:o};if(t){u.name=t}return u}function N(e,r){return O(e,r.v,r.w,r.name)}},84416:(e,r,n)=>{n.d(r,{T:()=>t.T});var t=n(65791);const i="2.1.9-pre"},95852:(e,r,n)=>{n.d(r,{A:()=>o});var t=n(62579);function i(e,r,n){var i=-1,o=e.length;while(++i{n.d(r,{A:()=>i});function t(e,r){return e{n.d(r,{A:()=>a});var t=n(15912);var i=n(21585);function o(e,r){var n=-1,o=(0,i.A)(e)?Array(e.length):[];(0,t.A)(e,(function(e,t,i){o[++n]=r(e,t,i)}));return o}const a=o},44835:(e,r,n)=>{n.d(r,{A:()=>v});var t=n(22883);var i=n(16542);var o=n(65900);var a=n(78912);var u=n(85356);var s=n(43512);function d(e,r,n,t){if(!(0,u.A)(e)){return e}r=(0,o.A)(r,e);var d=-1,f=r.length,c=f-1,v=e;while(v!=null&&++d{n.d(r,{A:()=>f});var t=n(55881);var i=n(24461);var o=n(31943);var a=n(13839);var u=Object.prototype;var s=u.hasOwnProperty;var d=(0,t.A)((function(e,r){e=Object(e);var n=-1;var t=r.length;var d=t>2?r[2]:undefined;if(d&&(0,o.A)(r[0],r[1],d)){t=1}while(++n{n.d(r,{A:()=>l});var t=n(1121);var i=n(21585);var o=n(37947);function a(e){return function(r,n,a){var u=Object(r);if(!(0,i.A)(r)){var s=(0,t.A)(n,3);r=(0,o.A)(r);n=function(e){return s(u[e],e,u)}}var d=e(r,n,a);return d>-1?u[s?r[d]:d]:undefined}}const u=a;var s=n(97314);var d=n(29914);var f=Math.max;function c(e,r,n){var i=e==null?0:e.length;if(!i){return-1}var o=n==null?0:(0,d.A)(n);if(o<0){o=f(i+o,0)}return(0,s.A)(e,(0,t.A)(r,3),o)}const v=c;var h=u(v);const l=h},74033:(e,r,n)=>{n.d(r,{A:()=>o});var t=n(62040);function i(e){var r=e==null?0:e.length;return r?(0,t.A)(e,1):[]}const o=i},2850:(e,r,n)=>{n.d(r,{A:()=>d});var t=Object.prototype;var i=t.hasOwnProperty;function o(e,r){return e!=null&&i.call(e,r)}const a=o;var u=n(64491);function s(e,r){return e!=null&&(0,u.A)(e,r,a)}const d=s},86378:(e,r,n)=>{n.d(r,{A:()=>s});var t=n(64128);var i=n(39990);var o=n(53315);var a="[object String]";function u(e){return typeof e=="string"||!(0,i.A)(e)&&(0,o.A)(e)&&(0,t.A)(e)==a}const s=u},80359:(e,r,n)=>{n.d(r,{A:()=>i});function t(e){var r=e==null?0:e.length;return r?e[r-1]:undefined}const i=t},8937:(e,r,n)=>{n.d(r,{A:()=>s});var t=n(98519);var i=n(1121);var o=n(97457);var a=n(39990);function u(e,r){var n=(0,a.A)(e)?t.A:o.A;return n(e,(0,i.A)(r,3))}const s=u},963:(e,r,n)=>{n.d(r,{A:()=>u});var t=n(95852);var i=n(51135);var o=n(63077);function a(e){return e&&e.length?(0,t.A)(e,o.A,i.A):undefined}const u=a},52712:(e,r,n)=>{n.d(r,{A:()=>y});var t=/\s/;function i(e){var r=e.length;while(r--&&t.test(e.charAt(r))){}return r}const o=i;var a=/^\s+/;function u(e){return e?e.slice(0,o(e)+1).replace(a,""):e}const s=u;var d=n(85356);var f=n(62579);var c=0/0;var v=/^[-+]0x[0-9a-f]+$/i;var h=/^0b[01]+$/i;var l=/^0o[0-7]+$/i;var g=parseInt;function p(e){if(typeof e=="number"){return e}if((0,f.A)(e)){return c}if((0,d.A)(e)){var r=typeof e.valueOf=="function"?e.valueOf():e;e=(0,d.A)(r)?r+"":r}if(typeof e!="string"){return e===0?e:+e}e=s(e);var n=h.test(e);return n||l.test(e)?g(e.slice(2),n?2:8):v.test(e)?c:+e}const A=p;var w=1/0,b=17976931348623157e292;function m(e){if(!e){return e===0?e:0}e=A(e);if(e===w||e===-w){var r=e<0?-1:1;return r*b}return e===e?e:0}const y=m},29914:(e,r,n)=>{n.d(r,{A:()=>o});var t=n(52712);function i(e){var r=(0,t.A)(e),n=r%1;return r===r?n?r-n:r:0}const o=i}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/227.6bd3154334bb91c5ca1c.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/227.6bd3154334bb91c5ca1c.js deleted file mode 100644 index 718fd8a97830766b0f70154e07fb71dcb4e1aa0d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/227.6bd3154334bb91c5ca1c.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 227.6bd3154334bb91c5ca1c.js.LICENSE.txt */ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[227],{69119:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:true});e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0;e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;e.htmlCtrlEntityRegex=/&(newline|tab);/gi;e.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;e.urlSchemeRegex=/^.+(:|:)/gim;e.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;e.relativeFirstCharacters=[".","/"];e.BLANK_URL="about:blank"},16750:(t,e,r)=>{"use strict";var i;i={value:true};e.J=void 0;var a=r(69119);function n(t){return a.relativeFirstCharacters.indexOf(t[0])>-1}function o(t){var e=t.replace(a.ctrlCharactersRegex,"");return e.replace(a.htmlEntitiesRegex,(function(t,e){return String.fromCharCode(e)}))}function s(t){return URL.canParse(t)}function l(t){try{return decodeURIComponent(t)}catch(e){return t}}function c(t){if(!t){return a.BLANK_URL}var e;var r=l(t.trim());do{r=o(r).replace(a.htmlCtrlEntityRegex,"").replace(a.ctrlCharactersRegex,"").replace(a.whitespaceEscapeCharsRegex,"").trim();r=l(r);e=r.match(a.ctrlCharactersRegex)||r.match(a.htmlEntitiesRegex)||r.match(a.htmlCtrlEntityRegex)||r.match(a.whitespaceEscapeCharsRegex)}while(e&&e.length>0);var i=r;if(!i){return a.BLANK_URL}if(n(i)){return i}var c=i.trimStart();var h=c.match(a.urlSchemeRegex);if(!h){return i}var d=h[0].toLowerCase().trim();if(a.invalidProtocolRegex.test(d)){return a.BLANK_URL}var u=c.replace(/\\/g,"/");if(d==="mailto:"||d.includes("://")){return u}if(d==="http:"||d==="https:"){if(!s(u)){return a.BLANK_URL}var f=new URL(u);f.protocol=f.protocol.toLowerCase();f.hostname=f.hostname.toLowerCase();return f.toString()}return u}e.J=c},74353:function(t){!function(e,r){true?t.exports=r():0}(this,(function(){"use strict";var t=1e3,e=6e4,r=36e5,i="millisecond",a="second",n="minute",o="hour",s="day",l="week",c="month",h="quarter",d="year",u="date",f="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],r=t%100;return"["+t+(e[(r-20)%10]||e[r]||e[0])+"]"}},y=function(t,e,r){var i=String(t);return!i||i.length>=e?t:""+Array(e+1-i.length).join(r)+t},b={s:y,z:function(t){var e=-t.utcOffset(),r=Math.abs(e),i=Math.floor(r/60),a=r%60;return(e<=0?"+":"-")+y(i,2,"0")+":"+y(a,2,"0")},m:function t(e,r){if(e.date()1)return t(o[0])}else{var s=e.name;C[s]=e,a=s}return!i&&a&&(x=a),a||!i&&x},S=function(t,e){if(k(t))return t.clone();var r="object"==typeof e?e:{};return r.date=t,r.args=arguments,new T(r)},A=b;A.l=w,A.i=k,A.w=function(t,e){return S(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var T=function(){function m(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[v]=!0}var y=m.prototype;return y.parse=function(t){this.$d=function(t){var e=t.date,r=t.utc;if(null===e)return new Date(NaN);if(A.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var i=e.match(p);if(i){var a=i[2]-1||0,n=(i[7]||"0").substring(0,3);return r?new Date(Date.UTC(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,n)):new Date(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,n)}}return new Date(e)}(t),this.init()},y.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},y.$utils=function(){return A},y.isValid=function(){return!(this.$d.toString()===f)},y.isSame=function(t,e){var r=S(t);return this.startOf(e)<=r&&r<=this.endOf(e)},y.isAfter=function(t,e){return S(t){"use strict";r.d(e,{A:()=>ot});const{entries:i,setPrototypeOf:a,isFrozen:n,getPrototypeOf:o,getOwnPropertyDescriptor:s}=Object;let{freeze:l,seal:c,create:h}=Object;let{apply:d,construct:u}=typeof Reflect!=="undefined"&&Reflect;if(!l){l=function t(e){return e}}if(!c){c=function t(e){return e}}if(!d){d=function t(e,r,i){return e.apply(r,i)}}if(!u){u=function t(e,r){return new e(...r)}}const f=B(Array.prototype.forEach);const p=B(Array.prototype.lastIndexOf);const g=B(Array.prototype.pop);const m=B(Array.prototype.push);const y=B(Array.prototype.splice);const b=B(String.prototype.toLowerCase);const x=B(String.prototype.toString);const C=B(String.prototype.match);const v=B(String.prototype.replace);const k=B(String.prototype.indexOf);const w=B(String.prototype.trim);const S=B(Object.prototype.hasOwnProperty);const A=B(RegExp.prototype.test);const T=L(TypeError);function B(t){return function(e){for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;a2&&arguments[2]!==undefined?arguments[2]:b;if(a){a(t,null)}let i=e.length;while(i--){let a=e[i];if(typeof a==="string"){const t=r(a);if(t!==a){if(!n(e)){e[i]=t}a=t}}t[a]=true}return t}function _(t){for(let e=0;e/gm);const Y=c(/\$\{[\w\W]*/gm);const U=c(/^data-[\-\w.\u00B7-\uFFFF]+$/);const G=c(/^aria-[\-\w]+$/);const V=c(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i);const X=c(/^(?:\w+script|data):/i);const Z=c(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g);const J=c(/^html$/i);const Q=c(/^[a-z][.\w]*(-[.\w]+)+$/i);var tt=Object.freeze({__proto__:null,ARIA_ATTR:G,ATTR_WHITESPACE:Z,CUSTOM_ELEMENT:Q,DATA_ATTR:U,DOCTYPE_NAME:J,ERB_EXPR:H,IS_ALLOWED_URI:V,IS_SCRIPT_OR_DATA:X,MUSTACHE_EXPR:j,TMPLIT_EXPR:Y});const et={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12};const rt=function t(){return typeof window==="undefined"?null:window};const it=function t(e,r){if(typeof e!=="object"||typeof e.createPolicy!=="function"){return null}let i=null;const a="data-tt-policy-suffix";if(r&&r.hasAttribute(a)){i=r.getAttribute(a)}const n="dompurify"+(i?"#"+i:"");try{return e.createPolicy(n,{createHTML(t){return t},createScriptURL(t){return t}})}catch(o){console.warn("TrustedTypes policy "+n+" could not be created.");return null}};const at=function t(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function nt(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:rt();const e=t=>nt(t);e.version="3.2.4";e.removed=[];if(!t||!t.document||t.document.nodeType!==et.document||!t.Element){e.isSupported=false;return e}let{document:r}=t;const a=r;const n=a.currentScript;const{DocumentFragment:o,HTMLTemplateElement:s,Node:c,Element:d,NodeFilter:u,NamedNodeMap:B=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:L,DOMParser:_,trustedTypes:j}=t;const H=d.prototype;const Y=$(H,"cloneNode");const U=$(H,"remove");const G=$(H,"nextSibling");const X=$(H,"childNodes");const Z=$(H,"parentNode");if(typeof s==="function"){const t=r.createElement("template");if(t.content&&t.content.ownerDocument){r=t.content.ownerDocument}}let Q;let ot="";const{implementation:st,createNodeIterator:lt,createDocumentFragment:ct,getElementsByTagName:ht}=r;const{importNode:dt}=a;let ut=at();e.isSupported=typeof i==="function"&&typeof Z==="function"&&st&&st.createHTMLDocument!==undefined;const{MUSTACHE_EXPR:ft,ERB_EXPR:pt,TMPLIT_EXPR:gt,DATA_ATTR:mt,ARIA_ATTR:yt,IS_SCRIPT_OR_DATA:bt,ATTR_WHITESPACE:xt,CUSTOM_ELEMENT:Ct}=tt;let{IS_ALLOWED_URI:vt}=tt;let kt=null;const wt=M({},[...E,...O,...D,...K,...P]);let St=null;const At=M({},[...z,...q,...N,...W]);let Tt=Object.seal(h(null,{tagNameCheck:{writable:true,configurable:false,enumerable:true,value:null},attributeNameCheck:{writable:true,configurable:false,enumerable:true,value:null},allowCustomizedBuiltInElements:{writable:true,configurable:false,enumerable:true,value:false}}));let Bt=null;let Lt=null;let Mt=true;let _t=true;let Ft=false;let $t=true;let Et=false;let Ot=true;let Dt=false;let It=false;let Kt=false;let Rt=false;let Pt=false;let zt=false;let qt=true;let Nt=false;const Wt="user-content-";let jt=true;let Ht=false;let Yt={};let Ut=null;const Gt=M({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Vt=null;const Xt=M({},["audio","video","img","source","image","track"]);let Zt=null;const Jt=M({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]);const Qt="http://www.w3.org/1998/Math/MathML";const te="http://www.w3.org/2000/svg";const ee="http://www.w3.org/1999/xhtml";let re=ee;let ie=false;let ae=null;const ne=M({},[Qt,te,ee],x);let oe=M({},["mi","mo","mn","ms","mtext"]);let se=M({},["annotation-xml"]);const le=M({},["title","style","font","a","script"]);let ce=null;const he=["application/xhtml+xml","text/html"];const de="text/html";let ue=null;let fe=null;const pe=r.createElement("form");const ge=function t(e){return e instanceof RegExp||e instanceof Function};const me=function t(){let e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(fe&&fe===e){return}if(!e||typeof e!=="object"){e={}}e=F(e);ce=he.indexOf(e.PARSER_MEDIA_TYPE)===-1?de:e.PARSER_MEDIA_TYPE;ue=ce==="application/xhtml+xml"?x:b;kt=S(e,"ALLOWED_TAGS")?M({},e.ALLOWED_TAGS,ue):wt;St=S(e,"ALLOWED_ATTR")?M({},e.ALLOWED_ATTR,ue):At;ae=S(e,"ALLOWED_NAMESPACES")?M({},e.ALLOWED_NAMESPACES,x):ne;Zt=S(e,"ADD_URI_SAFE_ATTR")?M(F(Jt),e.ADD_URI_SAFE_ATTR,ue):Jt;Vt=S(e,"ADD_DATA_URI_TAGS")?M(F(Xt),e.ADD_DATA_URI_TAGS,ue):Xt;Ut=S(e,"FORBID_CONTENTS")?M({},e.FORBID_CONTENTS,ue):Gt;Bt=S(e,"FORBID_TAGS")?M({},e.FORBID_TAGS,ue):{};Lt=S(e,"FORBID_ATTR")?M({},e.FORBID_ATTR,ue):{};Yt=S(e,"USE_PROFILES")?e.USE_PROFILES:false;Mt=e.ALLOW_ARIA_ATTR!==false;_t=e.ALLOW_DATA_ATTR!==false;Ft=e.ALLOW_UNKNOWN_PROTOCOLS||false;$t=e.ALLOW_SELF_CLOSE_IN_ATTR!==false;Et=e.SAFE_FOR_TEMPLATES||false;Ot=e.SAFE_FOR_XML!==false;Dt=e.WHOLE_DOCUMENT||false;Rt=e.RETURN_DOM||false;Pt=e.RETURN_DOM_FRAGMENT||false;zt=e.RETURN_TRUSTED_TYPE||false;Kt=e.FORCE_BODY||false;qt=e.SANITIZE_DOM!==false;Nt=e.SANITIZE_NAMED_PROPS||false;jt=e.KEEP_CONTENT!==false;Ht=e.IN_PLACE||false;vt=e.ALLOWED_URI_REGEXP||V;re=e.NAMESPACE||ee;oe=e.MATHML_TEXT_INTEGRATION_POINTS||oe;se=e.HTML_INTEGRATION_POINTS||se;Tt=e.CUSTOM_ELEMENT_HANDLING||{};if(e.CUSTOM_ELEMENT_HANDLING&&ge(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)){Tt.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck}if(e.CUSTOM_ELEMENT_HANDLING&&ge(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)){Tt.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck}if(e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements==="boolean"){Tt.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements}if(Et){_t=false}if(Pt){Rt=true}if(Yt){kt=M({},P);St=[];if(Yt.html===true){M(kt,E);M(St,z)}if(Yt.svg===true){M(kt,O);M(St,q);M(St,W)}if(Yt.svgFilters===true){M(kt,D);M(St,q);M(St,W)}if(Yt.mathMl===true){M(kt,K);M(St,N);M(St,W)}}if(e.ADD_TAGS){if(kt===wt){kt=F(kt)}M(kt,e.ADD_TAGS,ue)}if(e.ADD_ATTR){if(St===At){St=F(St)}M(St,e.ADD_ATTR,ue)}if(e.ADD_URI_SAFE_ATTR){M(Zt,e.ADD_URI_SAFE_ATTR,ue)}if(e.FORBID_CONTENTS){if(Ut===Gt){Ut=F(Ut)}M(Ut,e.FORBID_CONTENTS,ue)}if(jt){kt["#text"]=true}if(Dt){M(kt,["html","head","body"])}if(kt.table){M(kt,["tbody"]);delete Bt.tbody}if(e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=="function"){throw T('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.')}if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=="function"){throw T('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.')}Q=e.TRUSTED_TYPES_POLICY;ot=Q.createHTML("")}else{if(Q===undefined){Q=it(j,n)}if(Q!==null&&typeof ot==="string"){ot=Q.createHTML("")}}if(l){l(e)}fe=e};const ye=M({},[...O,...D,...I]);const be=M({},[...K,...R]);const xe=function t(e){let r=Z(e);if(!r||!r.tagName){r={namespaceURI:re,tagName:"template"}}const i=b(e.tagName);const a=b(r.tagName);if(!ae[e.namespaceURI]){return false}if(e.namespaceURI===te){if(r.namespaceURI===ee){return i==="svg"}if(r.namespaceURI===Qt){return i==="svg"&&(a==="annotation-xml"||oe[a])}return Boolean(ye[i])}if(e.namespaceURI===Qt){if(r.namespaceURI===ee){return i==="math"}if(r.namespaceURI===te){return i==="math"&&se[a]}return Boolean(be[i])}if(e.namespaceURI===ee){if(r.namespaceURI===te&&!se[a]){return false}if(r.namespaceURI===Qt&&!oe[a]){return false}return!be[i]&&(le[i]||!ye[i])}if(ce==="application/xhtml+xml"&&ae[e.namespaceURI]){return true}return false};const Ce=function t(r){m(e.removed,{element:r});try{Z(r).removeChild(r)}catch(i){U(r)}};const ve=function t(r,i){try{m(e.removed,{attribute:i.getAttributeNode(r),from:i})}catch(a){m(e.removed,{attribute:null,from:i})}i.removeAttribute(r);if(r==="is"){if(Rt||Pt){try{Ce(i)}catch(a){}}else{try{i.setAttribute(r,"")}catch(a){}}}};const ke=function t(e){let i=null;let a=null;if(Kt){e=""+e}else{const t=C(e,/^[\r\n\t ]+/);a=t&&t[0]}if(ce==="application/xhtml+xml"&&re===ee){e=''+e+""}const n=Q?Q.createHTML(e):e;if(re===ee){try{i=(new _).parseFromString(n,ce)}catch(s){}}if(!i||!i.documentElement){i=st.createDocument(re,"template",null);try{i.documentElement.innerHTML=ie?ot:n}catch(s){}}const o=i.body||i.documentElement;if(e&&a){o.insertBefore(r.createTextNode(a),o.childNodes[0]||null)}if(re===ee){return ht.call(i,Dt?"html":"body")[0]}return Dt?i.documentElement:o};const we=function t(e){return lt.call(e.ownerDocument||e,e,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)};const Se=function t(e){return e instanceof L&&(typeof e.nodeName!=="string"||typeof e.textContent!=="string"||typeof e.removeChild!=="function"||!(e.attributes instanceof B)||typeof e.removeAttribute!=="function"||typeof e.setAttribute!=="function"||typeof e.namespaceURI!=="string"||typeof e.insertBefore!=="function"||typeof e.hasChildNodes!=="function")};const Ae=function t(e){return typeof c==="function"&&e instanceof c};function Te(t,r,i){f(t,(t=>{t.call(e,r,i,fe)}))}const Be=function t(r){let i=null;Te(ut.beforeSanitizeElements,r,null);if(Se(r)){Ce(r);return true}const a=ue(r.nodeName);Te(ut.uponSanitizeElement,r,{tagName:a,allowedTags:kt});if(r.hasChildNodes()&&!Ae(r.firstElementChild)&&A(/<[/\w]/g,r.innerHTML)&&A(/<[/\w]/g,r.textContent)){Ce(r);return true}if(r.nodeType===et.progressingInstruction){Ce(r);return true}if(Ot&&r.nodeType===et.comment&&A(/<[/\w]/g,r.data)){Ce(r);return true}if(!kt[a]||Bt[a]){if(!Bt[a]&&Me(a)){if(Tt.tagNameCheck instanceof RegExp&&A(Tt.tagNameCheck,a)){return false}if(Tt.tagNameCheck instanceof Function&&Tt.tagNameCheck(a)){return false}}if(jt&&!Ut[a]){const t=Z(r)||r.parentNode;const e=X(r)||r.childNodes;if(e&&t){const i=e.length;for(let a=i-1;a>=0;--a){const i=Y(e[a],true);i.__removalCount=(r.__removalCount||0)+1;t.insertBefore(i,G(r))}}}Ce(r);return true}if(r instanceof d&&!xe(r)){Ce(r);return true}if((a==="noscript"||a==="noembed"||a==="noframes")&&A(/<\/no(script|embed|frames)/i,r.innerHTML)){Ce(r);return true}if(Et&&r.nodeType===et.text){i=r.textContent;f([ft,pt,gt],(t=>{i=v(i,t," ")}));if(r.textContent!==i){m(e.removed,{element:r.cloneNode()});r.textContent=i}}Te(ut.afterSanitizeElements,r,null);return false};const Le=function t(e,i,a){if(qt&&(i==="id"||i==="name")&&(a in r||a in pe)){return false}if(_t&&!Lt[i]&&A(mt,i));else if(Mt&&A(yt,i));else if(!St[i]||Lt[i]){if(Me(e)&&(Tt.tagNameCheck instanceof RegExp&&A(Tt.tagNameCheck,e)||Tt.tagNameCheck instanceof Function&&Tt.tagNameCheck(e))&&(Tt.attributeNameCheck instanceof RegExp&&A(Tt.attributeNameCheck,i)||Tt.attributeNameCheck instanceof Function&&Tt.attributeNameCheck(i))||i==="is"&&Tt.allowCustomizedBuiltInElements&&(Tt.tagNameCheck instanceof RegExp&&A(Tt.tagNameCheck,a)||Tt.tagNameCheck instanceof Function&&Tt.tagNameCheck(a)));else{return false}}else if(Zt[i]);else if(A(vt,v(a,xt,"")));else if((i==="src"||i==="xlink:href"||i==="href")&&e!=="script"&&k(a,"data:")===0&&Vt[e]);else if(Ft&&!A(bt,v(a,xt,"")));else if(a){return false}else;return true};const Me=function t(e){return e!=="annotation-xml"&&C(e,Ct)};const _e=function t(r){Te(ut.beforeSanitizeAttributes,r,null);const{attributes:i}=r;if(!i||Se(r)){return}const a={attrName:"",attrValue:"",keepAttr:true,allowedAttributes:St,forceKeepAttr:undefined};let n=i.length;while(n--){const t=i[n];const{name:s,namespaceURI:l,value:c}=t;const h=ue(s);let d=s==="value"?c:w(c);a.attrName=h;a.attrValue=d;a.keepAttr=true;a.forceKeepAttr=undefined;Te(ut.uponSanitizeAttribute,r,a);d=a.attrValue;if(Nt&&(h==="id"||h==="name")){ve(s,r);d=Wt+d}if(Ot&&A(/((--!?|])>)|<\/(style|title)/i,d)){ve(s,r);continue}if(a.forceKeepAttr){continue}ve(s,r);if(!a.keepAttr){continue}if(!$t&&A(/\/>/i,d)){ve(s,r);continue}if(Et){f([ft,pt,gt],(t=>{d=v(d,t," ")}))}const u=ue(r.nodeName);if(!Le(u,h,d)){continue}if(Q&&typeof j==="object"&&typeof j.getAttributeType==="function"){if(l);else{switch(j.getAttributeType(u,h)){case"TrustedHTML":{d=Q.createHTML(d);break}case"TrustedScriptURL":{d=Q.createScriptURL(d);break}}}}try{if(l){r.setAttributeNS(l,s,d)}else{r.setAttribute(s,d)}if(Se(r)){Ce(r)}else{g(e.removed)}}catch(o){}}Te(ut.afterSanitizeAttributes,r,null)};const Fe=function t(e){let r=null;const i=we(e);Te(ut.beforeSanitizeShadowDOM,e,null);while(r=i.nextNode()){Te(ut.uponSanitizeShadowNode,r,null);Be(r);_e(r);if(r.content instanceof o){t(r.content)}}Te(ut.afterSanitizeShadowDOM,e,null)};e.sanitize=function(t){let r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};let i=null;let n=null;let s=null;let l=null;ie=!t;if(ie){t="\x3c!--\x3e"}if(typeof t!=="string"&&!Ae(t)){if(typeof t.toString==="function"){t=t.toString();if(typeof t!=="string"){throw T("dirty is not a string, aborting")}}else{throw T("toString is not a function")}}if(!e.isSupported){return t}if(!It){me(r)}e.removed=[];if(typeof t==="string"){Ht=false}if(Ht){if(t.nodeName){const e=ue(t.nodeName);if(!kt[e]||Bt[e]){throw T("root node is forbidden and cannot be sanitized in-place")}}}else if(t instanceof c){i=ke("\x3c!----\x3e");n=i.ownerDocument.importNode(t,true);if(n.nodeType===et.element&&n.nodeName==="BODY"){i=n}else if(n.nodeName==="HTML"){i=n}else{i.appendChild(n)}}else{if(!Rt&&!Et&&!Dt&&t.indexOf("<")===-1){return Q&&zt?Q.createHTML(t):t}i=ke(t);if(!i){return Rt?null:zt?ot:""}}if(i&&Kt){Ce(i.firstChild)}const h=we(Ht?t:i);while(s=h.nextNode()){Be(s);_e(s);if(s.content instanceof o){Fe(s.content)}}if(Ht){return t}if(Rt){if(Pt){l=ct.call(i.ownerDocument);while(i.firstChild){l.appendChild(i.firstChild)}}else{l=i}if(St.shadowroot||St.shadowrootmode){l=dt.call(a,l,true)}return l}let d=Dt?i.outerHTML:i.innerHTML;if(Dt&&kt["!doctype"]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&A(J,i.ownerDocument.doctype.name)){d="\n"+d}if(Et){f([ft,pt,gt],(t=>{d=v(d,t," ")}))}return Q&&zt?Q.createHTML(d):d};e.setConfig=function(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};me(t);It=true};e.clearConfig=function(){fe=null;It=false};e.isValidAttribute=function(t,e,r){if(!fe){me({})}const i=ue(t);const a=ue(e);return Le(i,a,r)};e.addHook=function(t,e){if(typeof e!=="function"){return}m(ut[t],e)};e.removeHook=function(t,e){if(e!==undefined){const r=p(ut[t],e);return r===-1?undefined:y(ut[t],r,1)[0]}return g(ut[t])};e.removeHooks=function(t){ut[t]=[]};e.removeAllHooks=function(){ut=at()};return e}var ot=nt()},25e3:(t,e,r)=>{"use strict";r.d(e,{A:()=>h});var i=r(57991);var a=r(59773);class n{constructor(){this.type=a.Z.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=a.Z.ALL}is(t){return this.type===t}}const o=n;class s{constructor(t,e){this.color=e;this.changed=false;this.data=t;this.type=new o}set(t,e){this.color=e;this.changed=false;this.data=t;this.type.type=a.Z.ALL;return this}_ensureHSL(){const t=this.data;const{h:e,s:r,l:a}=t;if(e===undefined)t.h=i.A.channel.rgb2hsl(t,"h");if(r===undefined)t.s=i.A.channel.rgb2hsl(t,"s");if(a===undefined)t.l=i.A.channel.rgb2hsl(t,"l")}_ensureRGB(){const t=this.data;const{r:e,g:r,b:a}=t;if(e===undefined)t.r=i.A.channel.hsl2rgb(t,"r");if(r===undefined)t.g=i.A.channel.hsl2rgb(t,"g");if(a===undefined)t.b=i.A.channel.hsl2rgb(t,"b")}get r(){const t=this.data;const e=t.r;if(!this.type.is(a.Z.HSL)&&e!==undefined)return e;this._ensureHSL();return i.A.channel.hsl2rgb(t,"r")}get g(){const t=this.data;const e=t.g;if(!this.type.is(a.Z.HSL)&&e!==undefined)return e;this._ensureHSL();return i.A.channel.hsl2rgb(t,"g")}get b(){const t=this.data;const e=t.b;if(!this.type.is(a.Z.HSL)&&e!==undefined)return e;this._ensureHSL();return i.A.channel.hsl2rgb(t,"b")}get h(){const t=this.data;const e=t.h;if(!this.type.is(a.Z.RGB)&&e!==undefined)return e;this._ensureRGB();return i.A.channel.rgb2hsl(t,"h")}get s(){const t=this.data;const e=t.s;if(!this.type.is(a.Z.RGB)&&e!==undefined)return e;this._ensureRGB();return i.A.channel.rgb2hsl(t,"s")}get l(){const t=this.data;const e=t.l;if(!this.type.is(a.Z.RGB)&&e!==undefined)return e;this._ensureRGB();return i.A.channel.rgb2hsl(t,"l")}get a(){return this.data.a}set r(t){this.type.set(a.Z.RGB);this.changed=true;this.data.r=t}set g(t){this.type.set(a.Z.RGB);this.changed=true;this.data.g=t}set b(t){this.type.set(a.Z.RGB);this.changed=true;this.data.b=t}set h(t){this.type.set(a.Z.HSL);this.changed=true;this.data.h=t}set s(t){this.type.set(a.Z.HSL);this.changed=true;this.data.s=t}set l(t){this.type.set(a.Z.HSL);this.changed=true;this.data.l=t}set a(t){this.changed=true;this.data.a=t}}const l=s;const c=new l({r:0,g:0,b:0,a:0},"transparent");const h=c},63221:(t,e,r)=>{"use strict";r.d(e,{A:()=>g});var i=r(25e3);var a=r(59773);const n={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;const e=t.match(n.re);if(!e)return;const r=e[1];const a=parseInt(r,16);const o=r.length;const s=o%4===0;const l=o>4;const c=l?1:17;const h=l?8:4;const d=s?0:-1;const u=l?255:15;return i.A.set({r:(a>>h*(d+3)&u)*c,g:(a>>h*(d+2)&u)*c,b:(a>>h*(d+1)&u)*c,a:s?(a&u)*c/255:1},t)},stringify:t=>{const{r:e,g:r,b:i,a:n}=t;if(n<1){return`#${a.Y[Math.round(e)]}${a.Y[Math.round(r)]}${a.Y[Math.round(i)]}${a.Y[Math.round(n*255)]}`}else{return`#${a.Y[Math.round(e)]}${a.Y[Math.round(r)]}${a.Y[Math.round(i)]}`}}};const o=n;var s=r(57991);const l={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{const e=t.match(l.hueRe);if(e){const[,t,r]=e;switch(r){case"grad":return s.A.channel.clamp.h(parseFloat(t)*.9);case"rad":return s.A.channel.clamp.h(parseFloat(t)*180/Math.PI);case"turn":return s.A.channel.clamp.h(parseFloat(t)*360)}}return s.A.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(e!==104&&e!==72)return;const r=t.match(l.re);if(!r)return;const[,a,n,o,c,h]=r;return i.A.set({h:l._hue2deg(a),s:s.A.channel.clamp.s(parseFloat(n)),l:s.A.channel.clamp.l(parseFloat(o)),a:c?s.A.channel.clamp.a(h?parseFloat(c)/100:parseFloat(c)):1},t)},stringify:t=>{const{h:e,s:r,l:i,a}=t;if(a<1){return`hsla(${s.A.lang.round(e)}, ${s.A.lang.round(r)}%, ${s.A.lang.round(i)}%, ${a})`}else{return`hsl(${s.A.lang.round(e)}, ${s.A.lang.round(r)}%, ${s.A.lang.round(i)}%)`}}};const c=l;const h={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();const e=h.colors[t];if(!e)return;return o.parse(e)},stringify:t=>{const e=o.stringify(t);for(const r in h.colors){if(h.colors[r]===e)return r}return}};const d=h;const u={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{const e=t.charCodeAt(0);if(e!==114&&e!==82)return;const r=t.match(u.re);if(!r)return;const[,a,n,o,l,c,h,d,f]=r;return i.A.set({r:s.A.channel.clamp.r(n?parseFloat(a)*2.55:parseFloat(a)),g:s.A.channel.clamp.g(l?parseFloat(o)*2.55:parseFloat(o)),b:s.A.channel.clamp.b(h?parseFloat(c)*2.55:parseFloat(c)),a:d?s.A.channel.clamp.a(f?parseFloat(d)/100:parseFloat(d)):1},t)},stringify:t=>{const{r:e,g:r,b:i,a}=t;if(a<1){return`rgba(${s.A.lang.round(e)}, ${s.A.lang.round(r)}, ${s.A.lang.round(i)}, ${s.A.lang.round(a)})`}else{return`rgb(${s.A.lang.round(e)}, ${s.A.lang.round(r)}, ${s.A.lang.round(i)})`}}};const f=u;const p={format:{keyword:d,hex:o,rgb:f,rgba:f,hsl:c,hsla:c},parse:t=>{if(typeof t!=="string")return t;const e=o.parse(t)||f.parse(t)||c.parse(t)||d.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>{if(!t.changed&&t.color)return t.color;if(t.type.is(a.Z.HSL)||t.data.r===undefined){return c.stringify(t)}else if(t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)){return f.stringify(t)}else{return o.stringify(t)}}};const g=p},59773:(t,e,r)=>{"use strict";r.d(e,{Y:()=>a,Z:()=>n});var i=r(57991);const a={};for(let o=0;o<=255;o++)a[o]=i.A.unit.dec2hex(o);const n={ALL:0,RGB:1,HSL:2}},42198:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=r(57991);var a=r(63221);const n=(t,e,r)=>{const n=a.A.parse(t);const o=n[e];const s=i.A.channel.clamp[e](o+r);if(o!==s)n[e]=s;return a.A.stringify(n)};const o=n},69745:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=r(57991);var a=r(63221);const n=(t,e)=>{const r=a.A.parse(t);for(const a in e){r[a]=i.A.channel.clamp[a](e[a])}return a.A.stringify(r)};const o=n},48750:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(42198);const a=(t,e)=>(0,i.A)(t,"l",-e);const n=a},63170:(t,e,r)=>{"use strict";r.d(e,{A:()=>h});var i=r(57991);var a=r(63221);const n=t=>{const{r:e,g:r,b:n}=a.A.parse(t);const o=.2126*i.A.channel.toLinear(e)+.7152*i.A.channel.toLinear(r)+.0722*i.A.channel.toLinear(n);return i.A.lang.round(o)};const o=n;const s=t=>o(t)>=.5;const l=s;const c=t=>!l(t);const h=c},77470:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(42198);const a=(t,e)=>(0,i.A)(t,"l",e);const n=a},3635:(t,e,r)=>{"use strict";r.d(e,{A:()=>l});var i=r(57991);var a=r(25e3);var n=r(63221);var o=r(69745);const s=(t,e,r=0,s=1)=>{if(typeof t!=="number")return(0,o.A)(t,{a:e});const l=a.A.set({r:i.A.channel.clamp.r(t),g:i.A.channel.clamp.g(e),b:i.A.channel.clamp.b(r),a:i.A.channel.clamp.a(s)});return n.A.stringify(l)};const l=s},57991:(t,e,r)=>{"use strict";r.d(e,{A:()=>h});const i={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,r)=>{if(r<0)r+=1;if(r>1)r-=1;if(r<1/6)return t+(e-t)*6*r;if(r<1/2)return e;if(r<2/3)return t+(e-t)*(2/3-r)*6;return t},hsl2rgb:({h:t,s:e,l:r},a)=>{if(!e)return r*2.55;t/=360;e/=100;r/=100;const n=r<.5?r*(1+e):r+e-r*e;const o=2*r-n;switch(a){case"r":return i.hue2rgb(o,n,t+1/3)*255;case"g":return i.hue2rgb(o,n,t)*255;case"b":return i.hue2rgb(o,n,t-1/3)*255}},rgb2hsl:({r:t,g:e,b:r},i)=>{t/=255;e/=255;r/=255;const a=Math.max(t,e,r);const n=Math.min(t,e,r);const o=(a+n)/2;if(i==="l")return o*100;if(a===n)return 0;const s=a-n;const l=o>.5?s/(2-a-n):s/(a+n);if(i==="s")return l*100;switch(a){case t:return((e-r)/s+(e{if(e>r)return Math.min(e,Math.max(r,t));return Math.min(r,Math.max(e,t))},round:t=>Math.round(t*1e10)/1e10};const o=n;const s={dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}};const l=s;const c={channel:a,lang:o,unit:l};const h=c},54951:(t,e,r)=>{"use strict";r.d(e,{A:()=>x});function i(){this.__data__=[];this.size=0}const a=i;var n=r(24461);function o(t,e){var r=t.length;while(r--){if((0,n.A)(t[r][0],e)){return r}}return-1}const s=o;var l=Array.prototype;var c=l.splice;function h(t){var e=this.__data__,r=s(e,t);if(r<0){return false}var i=e.length-1;if(r==i){e.pop()}else{c.call(e,r,1)}--this.size;return true}const d=h;function u(t){var e=this.__data__,r=s(e,t);return r<0?undefined:e[r][1]}const f=u;function p(t){return s(this.__data__,t)>-1}const g=p;function m(t,e){var r=this.__data__,i=s(r,t);if(i<0){++this.size;r.push([t,e])}else{r[i][1]=e}return this}const y=m;function b(t){var e=-1,r=t==null?0:t.length;this.clear();while(++e{"use strict";r.d(e,{A:()=>o});var i=r(39023);var a=r(24606);var n=(0,i.A)(a.A,"Map");const o=n},9883:(t,e,r)=>{"use strict";r.d(e,{A:()=>q});var i=r(39023);var a=(0,i.A)(Object,"create");const n=a;function o(){this.__data__=n?n(null):{};this.size=0}const s=o;function l(t){var e=this.has(t)&&delete this.__data__[t];this.size-=e?1:0;return e}const c=l;var h="__lodash_hash_undefined__";var d=Object.prototype;var u=d.hasOwnProperty;function f(t){var e=this.__data__;if(n){var r=e[t];return r===h?undefined:r}return u.call(e,t)?e[t]:undefined}const p=f;var g=Object.prototype;var m=g.hasOwnProperty;function y(t){var e=this.__data__;return n?e[t]!==undefined:m.call(e,t)}const b=y;var x="__lodash_hash_undefined__";function C(t,e){var r=this.__data__;this.size+=this.has(t)?0:1;r[t]=n&&e===undefined?x:e;return this}const v=C;function k(t){var e=-1,r=t==null?0:t.length;this.clear();while(++e{"use strict";r.d(e,{A:()=>o});var i=r(39023);var a=r(24606);var n=(0,i.A)(a.A,"Set");const o=n},28478:(t,e,r)=>{"use strict";r.d(e,{A:()=>b});var i=r(54951);function a(){this.__data__=new i.A;this.size=0}const n=a;function o(t){var e=this.__data__,r=e["delete"](t);this.size=e.size;return r}const s=o;function l(t){return this.__data__.get(t)}const c=l;function h(t){return this.__data__.has(t)}const d=h;var u=r(51482);var f=r(9883);var p=200;function g(t,e){var r=this.__data__;if(r instanceof i.A){var a=r.__data__;if(!u.A||a.length{"use strict";r.d(e,{A:()=>n});var i=r(24606);var a=i.A.Symbol;const n=a},92615:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(24606);var a=i.A.Uint8Array;const n=a},74578:(t,e,r)=>{"use strict";r.d(e,{A:()=>f});function i(t,e){var r=-1,i=Array(t);while(++r{"use strict";r.d(e,{A:()=>l});var i=r(48657);var a=r(24461);var n=Object.prototype;var o=n.hasOwnProperty;function s(t,e,r){var n=t[e];if(!(o.call(t,e)&&(0,a.A)(n,r))||r===undefined&&!(e in t)){(0,i.A)(t,e,r)}}const l=s},48657:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(51348);function a(t,e,r){if(e=="__proto__"&&i.A){(0,i.A)(t,e,{configurable:true,enumerable:true,value:r,writable:true})}else{t[e]=r}}const n=a},40283:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});function i(t){return function(e,r,i){var a=-1,n=Object(e),o=i(e),s=o.length;while(s--){var l=o[t?s:++a];if(r(n[l],l,n)===false){break}}return e}}const a=i;var n=a();const o=n},64128:(t,e,r)=>{"use strict";r.d(e,{A:()=>b});var i=r(38066);var a=Object.prototype;var n=a.hasOwnProperty;var o=a.toString;var s=i.A?i.A.toStringTag:undefined;function l(t){var e=n.call(t,s),r=t[s];try{t[s]=undefined;var i=true}catch(l){}var a=o.call(t);if(i){if(e){t[s]=r}else{delete t[s]}}return a}const c=l;var h=Object.prototype;var d=h.toString;function u(t){return d.call(t)}const f=u;var p="[object Null]",g="[object Undefined]";var m=i.A?i.A.toStringTag:undefined;function y(t){if(t==null){return t===undefined?g:p}return m&&m in Object(t)?c(t):f(t)}const b=y},30568:(t,e,r)=>{"use strict";r.d(e,{A:()=>h});var i=r(690);var a=r(24630);var n=(0,a.A)(Object.keys,Object);const o=n;var s=Object.prototype;var l=s.hasOwnProperty;function c(t){if(!(0,i.A)(t)){return o(t)}var e=[];for(var r in Object(t)){if(l.call(t,r)&&r!="constructor"){e.push(r)}}return e}const h=c},55881:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var i=r(63077);var a=r(27401);var n=r(4596);function o(t,e){return(0,n.A)((0,a.A)(t,e,i.A),t+"")}const s=o},26132:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});function i(t){return function(e){return t(e)}}const a=i},53458:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(92615);function a(t){var e=new t.constructor(t.byteLength);new i.A(e).set(new i.A(t));return e}const n=a},65963:(t,e,r)=>{"use strict";r.d(e,{A:()=>h});var i=r(24606);t=r.hmd(t);var a=typeof exports=="object"&&exports&&!exports.nodeType&&exports;var n=a&&"object"=="object"&&t&&!t.nodeType&&t;var o=n&&n.exports===a;var s=o?i.A.Buffer:undefined,l=s?s.allocUnsafe:undefined;function c(t,e){if(e){return t.slice()}var r=t.length,i=l?l(r):new t.constructor(r);t.copy(i);return i}const h=c},93672:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(53458);function a(t,e){var r=e?(0,i.A)(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}const n=a},91810:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});function i(t,e){var r=-1,i=t.length;e||(e=Array(i));while(++r{"use strict";r.d(e,{A:()=>o});var i=r(16542);var a=r(48657);function n(t,e,r,n){var o=!r;r||(r={});var s=-1,l=e.length;while(++s{"use strict";r.d(e,{A:()=>o});var i=r(55881);var a=r(31943);function n(t){return(0,i.A)((function(e,r){var i=-1,n=r.length,o=n>1?r[n-1]:undefined,s=n>2?r[2]:undefined;o=t.length>3&&typeof o=="function"?(n--,o):undefined;if(s&&(0,a.A)(r[0],r[1],s)){o=n<3?undefined:o;n=1}e=Object(e);while(++i{"use strict";r.d(e,{A:()=>n});var i=r(39023);var a=function(){try{var t=(0,i.A)(Object,"defineProperty");t({},"",{});return t}catch(e){}}();const n=a},7767:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=typeof r.g=="object"&&r.g&&r.g.Object===Object&&r.g;const a=i},39023:(t,e,r)=>{"use strict";r.d(e,{A:()=>S});var i=r(58807);var a=r(24606);var n=a.A["__core-js_shared__"];const o=n;var s=function(){var t=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function l(t){return!!s&&s in t}const c=l;var h=r(85356);var d=r(62210);var u=/[\\^$.*+?()[\]{}|]/g;var f=/^\[object .+?Constructor\]$/;var p=Function.prototype,g=Object.prototype;var m=p.toString;var y=g.hasOwnProperty;var b=RegExp("^"+m.call(y).replace(u,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function x(t){if(!(0,h.A)(t)||c(t)){return false}var e=(0,i.A)(t)?b:f;return e.test((0,d.A)(t))}const C=x;function v(t,e){return t==null?undefined:t[e]}const k=v;function w(t,e){var r=k(t,e);return C(r)?r:undefined}const S=w},86848:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=r(24630);var a=(0,i.A)(Object.getPrototypeOf,Object);const n=a},88753:(t,e,r)=>{"use strict";r.d(e,{A:()=>B});var i=r(39023);var a=r(24606);var n=(0,i.A)(a.A,"DataView");const o=n;var s=r(51482);var l=(0,i.A)(a.A,"Promise");const c=l;var h=r(88224);var d=(0,i.A)(a.A,"WeakMap");const u=d;var f=r(64128);var p=r(62210);var g="[object Map]",m="[object Object]",y="[object Promise]",b="[object Set]",x="[object WeakMap]";var C="[object DataView]";var v=(0,p.A)(o),k=(0,p.A)(s.A),w=(0,p.A)(c),S=(0,p.A)(h.A),A=(0,p.A)(u);var T=f.A;if(o&&T(new o(new ArrayBuffer(1)))!=C||s.A&&T(new s.A)!=g||c&&T(c.resolve())!=y||h.A&&T(new h.A)!=b||u&&T(new u)!=x){T=function(t){var e=(0,f.A)(t),r=e==m?t.constructor:undefined,i=r?(0,p.A)(r):"";if(i){switch(i){case v:return C;case k:return g;case w:return y;case S:return b;case A:return x}}return e}}const B=T},92768:(t,e,r)=>{"use strict";r.d(e,{A:()=>h});var i=r(85356);var a=Object.create;var n=function(){function t(){}return function(e){if(!(0,i.A)(e)){return{}}if(a){return a(e)}t.prototype=e;var r=new t;t.prototype=undefined;return r}}();const o=n;var s=r(86848);var l=r(690);function c(t){return typeof t.constructor=="function"&&!(0,l.A)(t)?o((0,s.A)(t)):{}}const h=c},78912:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=9007199254740991;var a=/^(?:0|[1-9]\d*)$/;function n(t,e){var r=typeof t;e=e==null?i:e;return!!e&&(r=="number"||r!="symbol"&&a.test(t))&&(t>-1&&t%1==0&&t{"use strict";r.d(e,{A:()=>l});var i=r(24461);var a=r(21585);var n=r(78912);var o=r(85356);function s(t,e,r){if(!(0,o.A)(r)){return false}var s=typeof e;if(s=="number"?(0,a.A)(r)&&(0,n.A)(e,r.length):s=="string"&&e in r){return(0,i.A)(r[e],t)}return false}const l=s},690:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=Object.prototype;function a(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||i;return t===r}const n=a},89986:(t,e,r)=>{"use strict";r.d(e,{A:()=>c});var i=r(7767);t=r.hmd(t);var a=typeof exports=="object"&&exports&&!exports.nodeType&&exports;var n=a&&"object"=="object"&&t&&!t.nodeType&&t;var o=n&&n.exports===a;var s=o&&i.A.process;var l=function(){try{var t=n&&n.require&&n.require("util").types;if(t){return t}return s&&s.binding&&s.binding("util")}catch(e){}}();const c=l},24630:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});function i(t,e){return function(r){return t(e(r))}}const a=i},27401:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});function i(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}const a=i;var n=Math.max;function o(t,e,r){e=n(e===undefined?t.length-1:e,0);return function(){var i=arguments,o=-1,s=n(i.length-e,0),l=Array(s);while(++o{"use strict";r.d(e,{A:()=>o});var i=r(7767);var a=typeof self=="object"&&self&&self.Object===Object&&self;var n=i.A||a||Function("return this")();const o=n},4596:(t,e,r)=>{"use strict";r.d(e,{A:()=>p});var i=r(33659);var a=r(51348);var n=r(63077);var o=!a.A?n.A:function(t,e){return(0,a.A)(t,"toString",{configurable:true,enumerable:false,value:(0,i.A)(e),writable:true})};const s=o;var l=800,c=16;var h=Date.now;function d(t){var e=0,r=0;return function(){var i=h(),a=c-(i-r);r=i;if(a>0){if(++e>=l){return arguments[0]}}else{e=0}return t.apply(undefined,arguments)}}const u=d;var f=u(s);const p=f},62210:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=Function.prototype;var a=i.toString;function n(t){if(t!=null){try{return a.call(t)}catch(e){}try{return t+""}catch(e){}}return""}const o=n},33659:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});function i(t){return function(){return t}}const a=i},24461:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});function i(t,e){return t===e||t!==t&&e!==e}const a=i},63077:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});function i(t){return t}const a=i},71528:(t,e,r)=>{"use strict";r.d(e,{A:()=>u});var i=r(64128);var a=r(53315);var n="[object Arguments]";function o(t){return(0,a.A)(t)&&(0,i.A)(t)==n}const s=o;var l=Object.prototype;var c=l.hasOwnProperty;var h=l.propertyIsEnumerable;var d=s(function(){return arguments}())?s:function(t){return(0,a.A)(t)&&c.call(t,"callee")&&!h.call(t,"callee")};const u=d},39990:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});var i=Array.isArray;const a=i},21585:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=r(58807);var a=r(43627);function n(t){return t!=null&&(0,a.A)(t.length)&&!(0,i.A)(t)}const o=n},10654:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=r(21585);var a=r(53315);function n(t){return(0,a.A)(t)&&(0,i.A)(t)}const o=n},50895:(t,e,r)=>{"use strict";r.d(e,{A:()=>u});var i=r(24606);function a(){return false}const n=a;t=r.hmd(t);var o=typeof exports=="object"&&exports&&!exports.nodeType&&exports;var s=o&&"object"=="object"&&t&&!t.nodeType&&t;var l=s&&s.exports===o;var c=l?i.A.Buffer:undefined;var h=c?c.isBuffer:undefined;var d=h||n;const u=d},74650:(t,e,r)=>{"use strict";r.d(e,{A:()=>m});var i=r(30568);var a=r(88753);var n=r(71528);var o=r(39990);var s=r(21585);var l=r(50895);var c=r(690);var h=r(82818);var d="[object Map]",u="[object Set]";var f=Object.prototype;var p=f.hasOwnProperty;function g(t){if(t==null){return true}if((0,s.A)(t)&&((0,o.A)(t)||typeof t=="string"||typeof t.splice=="function"||(0,l.A)(t)||(0,h.A)(t)||(0,n.A)(t))){return!t.length}var e=(0,a.A)(t);if(e==d||e==u){return!t.size}if((0,c.A)(t)){return!(0,i.A)(t).length}for(var r in t){if(p.call(t,r)){return false}}return true}const m=g},58807:(t,e,r)=>{"use strict";r.d(e,{A:()=>h});var i=r(64128);var a=r(85356);var n="[object AsyncFunction]",o="[object Function]",s="[object GeneratorFunction]",l="[object Proxy]";function c(t){if(!(0,a.A)(t)){return false}var e=(0,i.A)(t);return e==o||e==s||e==n||e==l}const h=c},43627:(t,e,r)=>{"use strict";r.d(e,{A:()=>n});var i=9007199254740991;function a(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=i}const n=a},85356:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});function i(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}const a=i},53315:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});function i(t){return t!=null&&typeof t=="object"}const a=i},82818:(t,e,r)=>{"use strict";r.d(e,{A:()=>K});var i=r(64128);var a=r(43627);var n=r(53315);var o="[object Arguments]",s="[object Array]",l="[object Boolean]",c="[object Date]",h="[object Error]",d="[object Function]",u="[object Map]",f="[object Number]",p="[object Object]",g="[object RegExp]",m="[object Set]",y="[object String]",b="[object WeakMap]";var x="[object ArrayBuffer]",C="[object DataView]",v="[object Float32Array]",k="[object Float64Array]",w="[object Int8Array]",S="[object Int16Array]",A="[object Int32Array]",T="[object Uint8Array]",B="[object Uint8ClampedArray]",L="[object Uint16Array]",M="[object Uint32Array]";var _={};_[v]=_[k]=_[w]=_[S]=_[A]=_[T]=_[B]=_[L]=_[M]=true;_[o]=_[s]=_[x]=_[l]=_[C]=_[c]=_[h]=_[d]=_[u]=_[f]=_[p]=_[g]=_[m]=_[y]=_[b]=false;function F(t){return(0,n.A)(t)&&(0,a.A)(t.length)&&!!_[(0,i.A)(t)]}const $=F;var E=r(26132);var O=r(89986);var D=O.A&&O.A.isTypedArray;var I=D?(0,E.A)(D):$;const K=I},13839:(t,e,r)=>{"use strict";r.d(e,{A:()=>p});var i=r(74578);var a=r(85356);var n=r(690);function o(t){var e=[];if(t!=null){for(var r in Object(t)){e.push(r)}}return e}const s=o;var l=Object.prototype;var c=l.hasOwnProperty;function h(t){if(!(0,a.A)(t)){return s(t)}var e=(0,n.A)(t),r=[];for(var i in t){if(!(i=="constructor"&&(e||!c.call(t,i)))){r.push(i)}}return r}const d=h;var u=r(21585);function f(t){return(0,u.A)(t)?(0,i.A)(t,true):d(t)}const p=f},307:(t,e,r)=>{"use strict";r.d(e,{A:()=>o});var i=r(9883);var a="Expected a function";function n(t,e){if(typeof t!="function"||e!=null&&typeof e!="function"){throw new TypeError(a)}var r=function(){var i=arguments,a=e?e.apply(this,i):i[0],n=r.cache;if(n.has(a)){return n.get(a)}var o=t.apply(this,i);r.cache=n.set(a,o)||n;return o};r.cache=new(n.Cache||i.A);return r}n.Cache=i.A;const o=n},96901:(t,e,r)=>{"use strict";r.d(e,{A:()=>W});var i=r(28478);var a=r(48657);var n=r(24461);function o(t,e,r){if(r!==undefined&&!(0,n.A)(t[e],r)||r===undefined&&!(e in t)){(0,a.A)(t,e,r)}}const s=o;var l=r(40283);var c=r(65963);var h=r(93672);var d=r(91810);var u=r(92768);var f=r(71528);var p=r(39990);var g=r(10654);var m=r(50895);var y=r(58807);var b=r(85356);var x=r(64128);var C=r(86848);var v=r(53315);var k="[object Object]";var w=Function.prototype,S=Object.prototype;var A=w.toString;var T=S.hasOwnProperty;var B=A.call(Object);function L(t){if(!(0,v.A)(t)||(0,x.A)(t)!=k){return false}var e=(0,C.A)(t);if(e===null){return true}var r=T.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&A.call(r)==B}const M=L;var _=r(82818);function F(t,e){if(e==="constructor"&&typeof t[e]==="function"){return}if(e=="__proto__"){return}return t[e]}const $=F;var E=r(376);var O=r(13839);function D(t){return(0,E.A)(t,(0,O.A)(t))}const I=D;function K(t,e,r,i,a,n,o){var l=$(t,r),x=$(e,r),C=o.get(x);if(C){s(t,r,C);return}var v=n?n(l,x,r+"",t,e,o):undefined;var k=v===undefined;if(k){var w=(0,p.A)(x),S=!w&&(0,m.A)(x),A=!w&&!S&&(0,_.A)(x);v=x;if(w||S||A){if((0,p.A)(l)){v=l}else if((0,g.A)(l)){v=(0,d.A)(l)}else if(S){k=false;v=(0,c.A)(x,true)}else if(A){k=false;v=(0,h.A)(x,true)}else{v=[]}}else if(M(x)||(0,f.A)(x)){v=l;if((0,f.A)(l)){v=I(l)}else if(!(0,b.A)(l)||(0,y.A)(l)){v=(0,u.A)(x)}}else{k=false}}if(k){o.set(x,v);a(v,x,i,n,o);o["delete"](x)}s(t,r,v)}const R=K;function P(t,e,r,a,n){if(t===e){return}(0,l.A)(e,(function(o,l){n||(n=new i.A);if((0,b.A)(o)){R(t,e,l,r,P,a,n)}else{var c=a?a($(t,l),o,l+"",t,e,n):undefined;if(c===undefined){c=o}s(t,l,c)}}),O.A)}const z=P;var q=r(56280);var N=(0,q.A)((function(t,e,r){z(t,e,r)}));const W=N},59357:(t,e,r)=>{"use strict";r.d(e,{n:()=>i});var i={name:"mermaid",version:"11.6.0",description:"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.",type:"module",module:"./dist/mermaid.core.mjs",types:"./dist/mermaid.d.ts",exports:{".":{types:"./dist/mermaid.d.ts",import:"./dist/mermaid.core.mjs",default:"./dist/mermaid.core.mjs"},"./*":"./*"},keywords:["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph","mindmap","packet diagram","c4 diagram","er diagram","pie chart","pie diagram","quadrant chart","requirement diagram","graph"],scripts:{clean:"rimraf dist",dev:"pnpm -w dev","docs:code":"typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup","docs:build":"rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts","docs:verify":"pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify","docs:pre:vitepress":"pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts","docs:build:vitepress":"pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing","docs:dev":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:dev:docker":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev:docker" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:serve":"pnpm docs:build:vitepress && vitepress serve src/vitepress","docs:spellcheck":'cspell "src/docs/**/*.md"',"docs:release-version":"tsx scripts/update-release-version.mts","docs:verify-version":"tsx scripts/update-release-version.mts --verify","types:build-config":"tsx scripts/create-types-from-json-schema.mts","types:verify-config":"tsx scripts/create-types-from-json-schema.mts --verify",checkCircle:"npx madge --circular ./src",prepublishOnly:"pnpm docs:verify-version"},repository:{type:"git",url:"https://github.com/mermaid-js/mermaid"},author:"Knut Sveidqvist",license:"MIT",standard:{ignore:["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],globals:["page"]},dependencies:{"@braintree/sanitize-url":"^7.0.4","@iconify/utils":"^2.1.33","@mermaid-js/parser":"workspace:^","@types/d3":"^7.4.3",cytoscape:"^3.29.3","cytoscape-cose-bilkent":"^4.1.0","cytoscape-fcose":"^2.2.0",d3:"^7.9.0","d3-sankey":"^0.12.3","dagre-d3-es":"7.0.11",dayjs:"^1.11.13",dompurify:"^3.2.4",katex:"^0.16.9",khroma:"^2.1.0","lodash-es":"^4.17.21",marked:"^15.0.7",roughjs:"^4.6.6",stylis:"^4.3.6","ts-dedent":"^2.2.0",uuid:"^11.1.0"},devDependencies:{"@adobe/jsonschema2md":"^8.0.2","@iconify/types":"^2.0.0","@types/cytoscape":"^3.21.9","@types/cytoscape-fcose":"^2.2.4","@types/d3-sankey":"^0.12.4","@types/d3-scale":"^4.0.9","@types/d3-scale-chromatic":"^3.1.0","@types/d3-selection":"^3.0.11","@types/d3-shape":"^3.1.7","@types/jsdom":"^21.1.7","@types/katex":"^0.16.7","@types/lodash-es":"^4.17.12","@types/micromatch":"^4.0.9","@types/stylis":"^4.2.7","@types/uuid":"^10.0.0",ajv:"^8.17.1",chokidar:"^4.0.3",concurrently:"^9.1.2","csstree-validator":"^4.0.1",globby:"^14.0.2",jison:"^0.4.18","js-base64":"^3.7.7",jsdom:"^26.0.0","json-schema-to-typescript":"^15.0.4",micromatch:"^4.0.8","path-browserify":"^1.0.1",prettier:"^3.5.2",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1",rimraf:"^6.0.1","start-server-and-test":"^2.0.10","type-fest":"^4.35.0",typedoc:"^0.27.8","typedoc-plugin-markdown":"^4.4.2",typescript:"~5.7.3","unist-util-flatmap":"^1.0.0","unist-util-visit":"^5.0.0",vitepress:"^1.0.2","vitepress-plugin-search":"1.0.4-alpha.22"},files:["dist/","README.md"],publishConfig:{access:"public"}}},97366:(t,e,r)=>{"use strict";r.d(e,{H:()=>ti,r:()=>Qr});var i=r(75905);function a(t){return typeof t==="undefined"||t===null}(0,i.K2)(a,"isNothing");function n(t){return typeof t==="object"&&t!==null}(0,i.K2)(n,"isObject");function o(t){if(Array.isArray(t))return t;else if(a(t))return[];return[t]}(0,i.K2)(o,"toArray");function s(t,e){var r,i,a,n;if(e){n=Object.keys(e);for(r=0,i=n.length;rs){n=" ... ";e=i-s+n.length}if(r-i>s){o=" ...";r=i+s-o.length}return{str:n+t.slice(e,r).replace(/\t/g,"→")+o,pos:i-e+n.length}}(0,i.K2)(C,"getLine");function v(t,e){return m.repeat(" ",e-t.length)+t}(0,i.K2)(v,"padStart");function k(t,e){e=Object.create(e||null);if(!t.buffer)return null;if(!e.maxLength)e.maxLength=79;if(typeof e.indent!=="number")e.indent=1;if(typeof e.linesBefore!=="number")e.linesBefore=3;if(typeof e.linesAfter!=="number")e.linesAfter=2;var r=/\r?\n|\r|\0/g;var i=[0];var a=[];var n;var o=-1;while(n=r.exec(t.buffer)){a.push(n.index);i.push(n.index+n[0].length);if(t.position<=n.index&&o<0){o=i.length-2}}if(o<0)o=i.length-1;var s="",l,c;var h=Math.min(t.line+e.linesAfter,a.length).toString().length;var d=e.maxLength-(e.indent+h+3);for(l=1;l<=e.linesBefore;l++){if(o-l<0)break;c=C(t.buffer,i[o-l],a[o-l],t.position-(i[o]-i[o-l]),d);s=m.repeat(" ",e.indent)+v((t.line-l+1).toString(),h)+" | "+c.str+"\n"+s}c=C(t.buffer,i[o],a[o],t.position,d);s+=m.repeat(" ",e.indent)+v((t.line+1).toString(),h)+" | "+c.str+"\n";s+=m.repeat("-",e.indent+h+3+c.pos)+"^\n";for(l=1;l<=e.linesAfter;l++){if(o+l>=a.length)break;c=C(t.buffer,i[o+l],a[o+l],t.position-(i[o]-i[o+l]),d);s+=m.repeat(" ",e.indent)+v((t.line+l+1).toString(),h)+" | "+c.str+"\n"}return s.replace(/\n$/,"")}(0,i.K2)(k,"makeSnippet");var w=k;var S=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"];var A=["scalar","sequence","mapping"];function T(t){var e={};if(t!==null){Object.keys(t).forEach((function(r){t[r].forEach((function(t){e[String(t)]=r}))}))}return e}(0,i.K2)(T,"compileStyleAliases");function B(t,e){e=e||{};Object.keys(e).forEach((function(e){if(S.indexOf(e)===-1){throw new x('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')}}));this.options=e;this.tag=t;this.kind=e["kind"]||null;this.resolve=e["resolve"]||function(){return true};this.construct=e["construct"]||function(t){return t};this.instanceOf=e["instanceOf"]||null;this.predicate=e["predicate"]||null;this.represent=e["represent"]||null;this.representName=e["representName"]||null;this.defaultStyle=e["defaultStyle"]||null;this.multi=e["multi"]||false;this.styleAliases=T(e["styleAliases"]||null);if(A.indexOf(this.kind)===-1){throw new x('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}}(0,i.K2)(B,"Type$1");var L=B;function M(t,e){var r=[];t[e].forEach((function(t){var e=r.length;r.forEach((function(r,i){if(r.tag===t.tag&&r.kind===t.kind&&r.multi===t.multi){e=i}}));r[e]=t}));return r}(0,i.K2)(M,"compileList");function _(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,r;function a(e){if(e.multi){t.multi[e.kind].push(e);t.multi["fallback"].push(e)}else{t[e.kind][e.tag]=t["fallback"][e.tag]=e}}(0,i.K2)(a,"collectType");for(e=0,r=arguments.length;e=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)}),"binary"),octal:(0,i.K2)((function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)}),"octal"),decimal:(0,i.K2)((function(t){return t.toString(10)}),"decimal"),hexadecimal:(0,i.K2)((function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}),"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}});var J=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Q(t){if(t===null)return false;if(!J.test(t)||t[t.length-1]==="_"){return false}return true}(0,i.K2)(Q,"resolveYamlFloat");function tt(t){var e,r;e=t.replace(/_/g,"").toLowerCase();r=e[0]==="-"?-1:1;if("+-".indexOf(e[0])>=0){e=e.slice(1)}if(e===".inf"){return r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY}else if(e===".nan"){return NaN}return r*parseFloat(e,10)}(0,i.K2)(tt,"constructYamlFloat");var et=/^[-+]?[0-9]+e/;function rt(t,e){var r;if(isNaN(t)){switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}}else if(Number.POSITIVE_INFINITY===t){switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}}else if(Number.NEGATIVE_INFINITY===t){switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}}else if(m.isNegativeZero(t)){return"-0.0"}r=t.toString(10);return et.test(r)?r.replace("e",".e"):r}(0,i.K2)(rt,"representYamlFloat");function it(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||m.isNegativeZero(t))}(0,i.K2)(it,"isFloat");var at=new L("tag:yaml.org,2002:float",{kind:"scalar",resolve:Q,construct:tt,predicate:it,represent:rt,defaultStyle:"lowercase"});var nt=I.extend({implicit:[z,j,Z,at]});var ot=nt;var st=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$");var lt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function ct(t){if(t===null)return false;if(st.exec(t)!==null)return true;if(lt.exec(t)!==null)return true;return false}(0,i.K2)(ct,"resolveYamlTimestamp");function ht(t){var e,r,i,a,n,o,s,l=0,c=null,h,d,u;e=st.exec(t);if(e===null)e=lt.exec(t);if(e===null)throw new Error("Date resolve error");r=+e[1];i=+e[2]-1;a=+e[3];if(!e[4]){return new Date(Date.UTC(r,i,a))}n=+e[4];o=+e[5];s=+e[6];if(e[7]){l=e[7].slice(0,3);while(l.length<3){l+="0"}l=+l}if(e[9]){h=+e[10];d=+(e[11]||0);c=(h*60+d)*6e4;if(e[9]==="-")c=-c}u=new Date(Date.UTC(r,i,a,n,o,s,l));if(c)u.setTime(u.getTime()-c);return u}(0,i.K2)(ht,"constructYamlTimestamp");function dt(t){return t.toISOString()}(0,i.K2)(dt,"representYamlTimestamp");var ut=new L("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:ct,construct:ht,instanceOf:Date,represent:dt});function ft(t){return t==="<<"||t===null}(0,i.K2)(ft,"resolveYamlMerge");var pt=new L("tag:yaml.org,2002:merge",{kind:"scalar",resolve:ft});var gt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";function mt(t){if(t===null)return false;var e,r,i=0,a=t.length,n=gt;for(r=0;r64)continue;if(e<0)return false;i+=6}return i%8===0}(0,i.K2)(mt,"resolveYamlBinary");function yt(t){var e,r,i=t.replace(/[\r\n=]/g,""),a=i.length,n=gt,o=0,s=[];for(e=0;e>16&255);s.push(o>>8&255);s.push(o&255)}o=o<<6|n.indexOf(i.charAt(e))}r=a%4*6;if(r===0){s.push(o>>16&255);s.push(o>>8&255);s.push(o&255)}else if(r===18){s.push(o>>10&255);s.push(o>>2&255)}else if(r===12){s.push(o>>4&255)}return new Uint8Array(s)}(0,i.K2)(yt,"constructYamlBinary");function bt(t){var e="",r=0,i,a,n=t.length,o=gt;for(i=0;i>18&63];e+=o[r>>12&63];e+=o[r>>6&63];e+=o[r&63]}r=(r<<8)+t[i]}a=n%3;if(a===0){e+=o[r>>18&63];e+=o[r>>12&63];e+=o[r>>6&63];e+=o[r&63]}else if(a===2){e+=o[r>>10&63];e+=o[r>>4&63];e+=o[r<<2&63];e+=o[64]}else if(a===1){e+=o[r>>2&63];e+=o[r<<4&63];e+=o[64];e+=o[64]}return e}(0,i.K2)(bt,"representYamlBinary");function xt(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}(0,i.K2)(xt,"isBinary");var Ct=new L("tag:yaml.org,2002:binary",{kind:"scalar",resolve:mt,construct:yt,predicate:xt,represent:bt});var vt=Object.prototype.hasOwnProperty;var kt=Object.prototype.toString;function wt(t){if(t===null)return true;var e=[],r,i,a,n,o,s=t;for(r=0,i=s.length;r>10)+55296,(t-65536&1023)+56320)}(0,i.K2)(ie,"charFromCodepoint");var ae=new Array(256);var ne=new Array(256);for(oe=0;oe<256;oe++){ae[oe]=re(oe)?1:0;ne[oe]=re(oe)}var oe;function se(t,e){this.input=t;this.filename=e["filename"]||null;this.schema=e["schema"]||Ot;this.onWarning=e["onWarning"]||null;this.legacy=e["legacy"]||false;this.json=e["json"]||false;this.listener=e["listener"]||null;this.implicitTypes=this.schema.compiledImplicit;this.typeMap=this.schema.compiledTypeMap;this.length=t.length;this.position=0;this.line=0;this.lineStart=0;this.lineIndent=0;this.firstTabInLine=-1;this.documents=[]}(0,i.K2)(se,"State$1");function le(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};r.snippet=w(r);return new x(e,r)}(0,i.K2)(le,"generateError");function ce(t,e){throw le(t,e)}(0,i.K2)(ce,"throwError");function he(t,e){if(t.onWarning){t.onWarning.call(null,le(t,e))}}(0,i.K2)(he,"throwWarning");var de={YAML:(0,i.K2)((function t(e,r,i){var a,n,o;if(e.version!==null){ce(e,"duplication of %YAML directive")}if(i.length!==1){ce(e,"YAML directive accepts exactly one argument")}a=/^([0-9]+)\.([0-9]+)$/.exec(i[0]);if(a===null){ce(e,"ill-formed argument of the YAML directive")}n=parseInt(a[1],10);o=parseInt(a[2],10);if(n!==1){ce(e,"unacceptable YAML version of the document")}e.version=i[0];e.checkLineBreaks=o<2;if(o!==1&&o!==2){he(e,"unsupported YAML version of the document")}}),"handleYamlDirective"),TAG:(0,i.K2)((function t(e,r,i){var a,n;if(i.length!==2){ce(e,"TAG directive accepts exactly two arguments")}a=i[0];n=i[1];if(!Yt.test(a)){ce(e,"ill-formed tag handle (first argument) of the TAG directive")}if(Dt.call(e.tagMap,a)){ce(e,'there is a previously declared suffix for "'+a+'" tag handle')}if(!Ut.test(n)){ce(e,"ill-formed tag prefix (second argument) of the TAG directive")}try{n=decodeURIComponent(n)}catch(o){ce(e,"tag prefix is malformed: "+n)}e.tagMap[a]=n}),"handleTagDirective")};function ue(t,e,r,i){var a,n,o,s;if(e1){t.result+=m.repeat("\n",e-1)}}(0,i.K2)(be,"writeFoldedLines");function xe(t,e,r){var i,a,n,o,s,l,c,h,d=t.kind,u=t.result,f;f=t.input.charCodeAt(t.position);if(Zt(f)||Jt(f)||f===35||f===38||f===42||f===33||f===124||f===62||f===39||f===34||f===37||f===64||f===96){return false}if(f===63||f===45){a=t.input.charCodeAt(t.position+1);if(Zt(a)||r&&Jt(a)){return false}}t.kind="scalar";t.result="";n=o=t.position;s=false;while(f!==0){if(f===58){a=t.input.charCodeAt(t.position+1);if(Zt(a)||r&&Jt(a)){break}}else if(f===35){i=t.input.charCodeAt(t.position-1);if(Zt(i)){break}}else if(t.position===t.lineStart&&ye(t)||r&&Jt(f)){break}else if(Vt(f)){l=t.line;c=t.lineStart;h=t.lineIndent;me(t,false,-1);if(t.lineIndent>=e){s=true;f=t.input.charCodeAt(t.position);continue}else{t.position=o;t.line=l;t.lineStart=c;t.lineIndent=h;break}}if(s){ue(t,n,o,false);be(t,t.line-l);n=o=t.position;s=false}if(!Xt(f)){o=t.position+1}f=t.input.charCodeAt(++t.position)}ue(t,n,o,false);if(t.result){return true}t.kind=d;t.result=u;return false}(0,i.K2)(xe,"readPlainScalar");function Ce(t,e){var r,i,a;r=t.input.charCodeAt(t.position);if(r!==39){return false}t.kind="scalar";t.result="";t.position++;i=a=t.position;while((r=t.input.charCodeAt(t.position))!==0){if(r===39){ue(t,i,t.position,true);r=t.input.charCodeAt(++t.position);if(r===39){i=t.position;t.position++;a=t.position}else{return true}}else if(Vt(r)){ue(t,i,a,true);be(t,me(t,false,e));i=a=t.position}else if(t.position===t.lineStart&&ye(t)){ce(t,"unexpected end of the document within a single quoted scalar")}else{t.position++;a=t.position}}ce(t,"unexpected end of the stream within a single quoted scalar")}(0,i.K2)(Ce,"readSingleQuotedScalar");function ve(t,e){var r,i,a,n,o,s;s=t.input.charCodeAt(t.position);if(s!==34){return false}t.kind="scalar";t.result="";t.position++;r=i=t.position;while((s=t.input.charCodeAt(t.position))!==0){if(s===34){ue(t,r,t.position,true);t.position++;return true}else if(s===92){ue(t,r,t.position,true);s=t.input.charCodeAt(++t.position);if(Vt(s)){me(t,false,e)}else if(s<256&&ae[s]){t.result+=ne[s];t.position++}else if((o=te(s))>0){a=o;n=0;for(;a>0;a--){s=t.input.charCodeAt(++t.position);if((o=Qt(s))>=0){n=(n<<4)+o}else{ce(t,"expected hexadecimal character")}}t.result+=ie(n);t.position++}else{ce(t,"unknown escape sequence")}r=i=t.position}else if(Vt(s)){ue(t,r,i,true);be(t,me(t,false,e));r=i=t.position}else if(t.position===t.lineStart&&ye(t)){ce(t,"unexpected end of the document within a double quoted scalar")}else{t.position++;i=t.position}}ce(t,"unexpected end of the stream within a double quoted scalar")}(0,i.K2)(ve,"readDoubleQuotedScalar");function ke(t,e){var r=true,i,a,n,o=t.tag,s,l=t.anchor,c,h,d,u,f,p=Object.create(null),g,m,y,b;b=t.input.charCodeAt(t.position);if(b===91){h=93;f=false;s=[]}else if(b===123){h=125;f=true;s={}}else{return false}if(t.anchor!==null){t.anchorMap[t.anchor]=s}b=t.input.charCodeAt(++t.position);while(b!==0){me(t,true,e);b=t.input.charCodeAt(t.position);if(b===h){t.position++;t.tag=o;t.anchor=l;t.kind=f?"mapping":"sequence";t.result=s;return true}else if(!r){ce(t,"missed comma between flow collection entries")}else if(b===44){ce(t,"expected the node content, but found ','")}m=g=y=null;d=u=false;if(b===63){c=t.input.charCodeAt(t.position+1);if(Zt(c)){d=u=true;t.position++;me(t,true,e)}}i=t.line;a=t.lineStart;n=t.position;Me(t,e,It,false,true);m=t.tag;g=t.result;me(t,true,e);b=t.input.charCodeAt(t.position);if((u||t.line===i)&&b===58){d=true;b=t.input.charCodeAt(++t.position);me(t,true,e);Me(t,e,It,false,true);y=t.result}if(f){pe(t,s,p,m,g,y,i,a,n)}else if(d){s.push(pe(t,null,p,m,g,y,i,a,n))}else{s.push(g)}me(t,true,e);b=t.input.charCodeAt(t.position);if(b===44){r=true;b=t.input.charCodeAt(++t.position)}else{r=false}}ce(t,"unexpected end of the stream within a flow collection")}(0,i.K2)(ke,"readFlowCollection");function we(t,e){var r,i,a=zt,n=false,o=false,s=e,l=0,c=false,h,d;d=t.input.charCodeAt(t.position);if(d===124){i=false}else if(d===62){i=true}else{return false}t.kind="scalar";t.result="";while(d!==0){d=t.input.charCodeAt(++t.position);if(d===43||d===45){if(zt===a){a=d===43?Nt:qt}else{ce(t,"repeat of a chomping mode identifier")}}else if((h=ee(d))>=0){if(h===0){ce(t,"bad explicit indentation width of a block scalar; it cannot be less than one")}else if(!o){s=e+h-1;o=true}else{ce(t,"repeat of an indentation width identifier")}}else{break}}if(Xt(d)){do{d=t.input.charCodeAt(++t.position)}while(Xt(d));if(d===35){do{d=t.input.charCodeAt(++t.position)}while(!Vt(d)&&d!==0)}}while(d!==0){ge(t);t.lineIndent=0;d=t.input.charCodeAt(t.position);while((!o||t.lineIndents){s=t.lineIndent}if(Vt(d)){l++;continue}if(t.lineIndente)&&l!==0){ce(t,"bad indentation of a sequence entry")}else if(t.lineIndente){if(m){o=t.line;s=t.lineStart;l=t.position}if(Me(t,e,Pt,true,a)){if(m){p=t.result}else{g=t.result}}if(!m){pe(t,d,u,f,p,g,o,s,l);f=p=g=null}me(t,true,-1);b=t.input.charCodeAt(t.position)}if((t.line===n||t.lineIndent>e)&&b!==0){ce(t,"bad indentation of a mapping entry")}else if(t.lineIndente){l=1}else if(t.lineIndent===e){l=0}else if(t.lineIndente){l=1}else if(t.lineIndent===e){l=0}else if(t.lineIndent tag; it should be "scalar", not "'+t.kind+'"')}for(d=0,u=t.implicitTypes.length;d")}if(t.result!==null&&p.kind!==t.kind){ce(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+p.kind+'", not "'+t.kind+'"')}if(!p.resolve(t.result,t.tag)){ce(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}else{t.result=p.construct(t.result,t.tag);if(t.anchor!==null){t.anchorMap[t.anchor]=t.result}}}if(t.listener!==null){t.listener("close",t)}return t.tag!==null||t.anchor!==null||h}(0,i.K2)(Me,"composeNode");function _e(t){var e=t.position,r,i,a,n=false,o;t.version=null;t.checkLineBreaks=t.legacy;t.tagMap=Object.create(null);t.anchorMap=Object.create(null);while((o=t.input.charCodeAt(t.position))!==0){me(t,true,-1);o=t.input.charCodeAt(t.position);if(t.lineIndent>0||o!==37){break}n=true;o=t.input.charCodeAt(++t.position);r=t.position;while(o!==0&&!Zt(o)){o=t.input.charCodeAt(++t.position)}i=t.input.slice(r,t.position);a=[];if(i.length<1){ce(t,"directive name must not be less than one character in length")}while(o!==0){while(Xt(o)){o=t.input.charCodeAt(++t.position)}if(o===35){do{o=t.input.charCodeAt(++t.position)}while(o!==0&&!Vt(o));break}if(Vt(o))break;r=t.position;while(o!==0&&!Zt(o)){o=t.input.charCodeAt(++t.position)}a.push(t.input.slice(r,t.position))}if(o!==0)ge(t);if(Dt.call(de,i)){de[i](t,i,a)}else{he(t,'unknown document directive "'+i+'"')}}me(t,true,-1);if(t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45){t.position+=3;me(t,true,-1)}else if(n){ce(t,"directives end mark is expected")}Me(t,t.lineIndent-1,Pt,false,true);me(t,true,-1);if(t.checkLineBreaks&&jt.test(t.input.slice(e,t.position))){he(t,"non-ASCII line breaks are interpreted as content")}t.documents.push(t.result);if(t.position===t.lineStart&&ye(t)){if(t.input.charCodeAt(t.position)===46){t.position+=3;me(t,true,-1)}return}if(t.position=55296&&r<=56319&&e+1=56320&&i<=57343){return(r-55296)*1024+i-56320+65536}}return r}(0,i.K2)(Br,"codePointAt");function Lr(t){var e=/^\n* /;return e.test(t)}(0,i.K2)(Lr,"needIndentIndicator");var Mr=1;var _r=2;var Fr=3;var $r=4;var Er=5;function Or(t,e,r,i,a,n,o,s){var l;var c=0;var h=null;var d=false;var u=false;var f=i!==-1;var p=-1;var g=Ar(Br(t,0))&&Tr(Br(t,t.length-1));if(e||o){for(l=0;l=65536?l+=2:l++){c=Br(t,l);if(!kr(c)){return Er}g=g&&Sr(c,h,s);h=c}}else{for(l=0;l=65536?l+=2:l++){c=Br(t,l);if(c===qe){d=true;if(f){u=u||l-p-1>i&&t[p+1]!==" ";p=l}}else if(!kr(c)){return Er}g=g&&Sr(c,h,s);h=c}u=u||f&&(l-p-1>i&&t[p+1]!==" ")}if(!d&&!u){if(g&&!o&&!a(t)){return Mr}return n===mr?Er:_r}if(r>9&&Lr(t)){return Er}if(!o){return u?$r:Fr}return n===mr?Er:_r}(0,i.K2)(Or,"chooseScalarStyle");function Dr(t,e,r,a,n){t.dump=function(){if(e.length===0){return t.quotingType===mr?'""':"''"}if(!t.noCompatMode){if(dr.indexOf(e)!==-1||ur.test(e)){return t.quotingType===mr?'"'+e+'"':"'"+e+"'"}}var o=t.indent*Math.max(1,r);var s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-o);var l=a||t.flowLevel>-1&&r>=t.flowLevel;function c(e){return Cr(t,e)}(0,i.K2)(c,"testAmbiguity");switch(Or(e,l,t.indent,s,c,t.quotingType,t.forceQuotes&&!a,n)){case Mr:return e;case _r:return"'"+e.replace(/'/g,"''")+"'";case Fr:return"|"+Ir(e,t.indent)+Kr(br(e,o));case $r:return">"+Ir(e,t.indent)+Kr(br(Rr(e,s),o));case Er:return'"'+zr(e)+'"';default:throw new x("impossible error: invalid scalar style")}}()}(0,i.K2)(Dr,"writeScalar");function Ir(t,e){var r=Lr(t)?String(e):"";var i=t[t.length-1]==="\n";var a=i&&(t[t.length-2]==="\n"||t==="\n");var n=a?"+":i?"":"-";return r+n+"\n"}(0,i.K2)(Ir,"blockHeader");function Kr(t){return t[t.length-1]==="\n"?t.slice(0,-1):t}(0,i.K2)(Kr,"dropEndingNewline");function Rr(t,e){var r=/(\n+)([^\n]*)/g;var i=function(){var i=t.indexOf("\n");i=i!==-1?i:t.length;r.lastIndex=i;return Pr(t.slice(0,i),e)}();var a=t[0]==="\n"||t[0]===" ";var n;var o;while(o=r.exec(t)){var s=o[1],l=o[2];n=l[0]===" ";i+=s+(!a&&!n&&l!==""?"\n":"")+Pr(l,e);a=n}return i}(0,i.K2)(Rr,"foldString");function Pr(t,e){if(t===""||t[0]===" ")return t;var r=/ [^ ]/g;var i;var a=0,n,o=0,s=0;var l="";while(i=r.exec(t)){s=i.index;if(s-a>e){n=o>a?o:s;l+="\n"+t.slice(a,n);a=n+1}o=s}l+="\n";if(t.length-a>e&&o>a){l+=t.slice(a,o)+"\n"+t.slice(o+1)}else{l+=t.slice(a)}return l.slice(1)}(0,i.K2)(Pr,"foldLine");function zr(t){var e="";var r=0;var i;for(var a=0;a=65536?a+=2:a++){r=Br(t,a);i=hr[r];if(!i&&kr(r)){e+=t[a];if(r>=65536)e+=t[a+1]}else{e+=i||pr(r)}}return e}(0,i.K2)(zr,"escapeString");function qr(t,e,r){var i="",a=t.tag,n,o,s;for(n=0,o=r.length;n1024)h+="? ";h+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" ");if(!Yr(t,e,c,false,false)){continue}h+=t.dump;i+=h}t.tag=a;t.dump="{"+i+"}"}(0,i.K2)(Wr,"writeFlowMapping");function jr(t,e,r,i){var a="",n=t.tag,o=Object.keys(r),s,l,c,h,d,u;if(t.sortKeys===true){o.sort()}else if(typeof t.sortKeys==="function"){o.sort(t.sortKeys)}else if(t.sortKeys){throw new x("sortKeys must be a boolean or a function")}for(s=0,l=o.length;s1024;if(d){if(t.dump&&qe===t.dump.charCodeAt(0)){u+="?"}else{u+="? "}}u+=t.dump;if(d){u+=xr(t,e)}if(!Yr(t,e+1,h,true,d)){continue}if(t.dump&&qe===t.dump.charCodeAt(0)){u+=":"}else{u+=": "}u+=t.dump;a+=u}t.tag=n;t.dump=a||"{}"}(0,i.K2)(jr,"writeBlockMapping");function Hr(t,e,r){var i,a,n,o,s,l;a=r?t.explicitTypes:t.implicitTypes;for(n=0,o=a.length;n tag resolver accepts not "'+l+'" style')}t.dump=i}return true}}return false}(0,i.K2)(Hr,"detectType");function Yr(t,e,r,i,a,n,o){t.tag=null;t.dump=r;if(!Hr(t,r,false)){Hr(t,r,true)}var s=Ke.call(t.dump);var l=i;var c;if(i){i=t.flowLevel<0||t.flowLevel>e}var h=s==="[object Object]"||s==="[object Array]",d,u;if(h){d=t.duplicates.indexOf(r);u=d!==-1}if(t.tag!==null&&t.tag!=="?"||u||t.indent!==2&&e>0){a=false}if(u&&t.usedDuplicates[d]){t.dump="*ref_"+d}else{if(h&&u&&!t.usedDuplicates[d]){t.usedDuplicates[d]=true}if(s==="[object Object]"){if(i&&Object.keys(t.dump).length!==0){jr(t,e,t.dump,a);if(u){t.dump="&ref_"+d+t.dump}}else{Wr(t,e,t.dump);if(u){t.dump="&ref_"+d+" "+t.dump}}}else if(s==="[object Array]"){if(i&&t.dump.length!==0){if(t.noArrayIndent&&!o&&e>0){Nr(t,e-1,t.dump,a)}else{Nr(t,e,t.dump,a)}if(u){t.dump="&ref_"+d+t.dump}}else{qr(t,e,t.dump);if(u){t.dump="&ref_"+d+" "+t.dump}}}else if(s==="[object String]"){if(t.tag!=="?"){Dr(t,t.dump,e,n,l)}}else if(s==="[object Undefined]"){return false}else{if(t.skipInvalid)return false;throw new x("unacceptable kind of an object to dump "+s)}if(t.tag!==null&&t.tag!=="?"){c=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21");if(t.tag[0]==="!"){c="!"+c}else if(c.slice(0,18)==="tag:yaml.org,2002:"){c="!!"+c.slice(18)}else{c="!<"+c+">"}t.dump=c+" "+t.dump}}return true}(0,i.K2)(Yr,"writeNode");function Ur(t,e){var r=[],i=[],a,n;Gr(t,r,i);for(a=0,n=i.length;a{"use strict";r.d(e,{D:()=>n});var i=r(75905);var a=r(24982);var n=(0,i.K2)((t=>{const{securityLevel:e}=(0,i.D7)();let r=(0,a.Ltv)("body");if(e==="sandbox"){const e=(0,a.Ltv)(`#i${t}`);const i=e.node()?.contentDocument??document;r=(0,a.Ltv)(i.body)}const n=r.select(`#${t}`);return n}),"selectSvgElement")},76261:(t,e,r)=>{"use strict";r.d(e,{GZ:()=>A,W6:()=>v,hE:()=>S});var i=r(96049);var a=r(75905);var n=r(24982);var o=r(14507);var s=r.n(o);var l=r(60513);function c(t,{markdownAutoWrap:e}){const r=t.replace(//g,"\n");const i=r.replace(/\n{2,}/g,"\n");const a=(0,l.T)(i);if(e===false){return a.replace(/ /g," ")}return a}(0,a.K2)(c,"preprocessMarkdown");function h(t,e={}){const r=c(t,e);const i=o.marked.lexer(r);const n=[[]];let s=0;function l(t,e="normal"){if(t.type==="text"){const r=t.text.split("\n");r.forEach(((t,r)=>{if(r!==0){s++;n.push([])}t.split(" ").forEach((t=>{t=t.replace(/'/g,`'`);if(t){n[s].push({content:t,type:e})}}))}))}else if(t.type==="strong"||t.type==="em"){t.tokens.forEach((e=>{l(e,t.type)}))}else if(t.type==="html"){n[s].push({content:t.text,type:"normal"})}}(0,a.K2)(l,"processNode");i.forEach((t=>{if(t.type==="paragraph"){t.tokens?.forEach((t=>{l(t)}))}else if(t.type==="html"){n[s].push({content:t.text,type:"normal"})}}));return n}(0,a.K2)(h,"markdownToLines");function d(t,{markdownAutoWrap:e}={}){const r=o.marked.lexer(t);function i(t){if(t.type==="text"){if(e===false){return t.text.replace(/\n */g,"
").replace(/ /g," ")}return t.text.replace(/\n */g,"
")}else if(t.type==="strong"){return`${t.tokens?.map(i).join("")}`}else if(t.type==="em"){return`${t.tokens?.map(i).join("")}`}else if(t.type==="paragraph"){return`

${t.tokens?.map(i).join("")}

`}else if(t.type==="space"){return""}else if(t.type==="html"){return`${t.text}`}else if(t.type==="escape"){return t.text}return`Unsupported markdown: ${t.type}`}(0,a.K2)(i,"output");return r.map(i).join("")}(0,a.K2)(d,"markdownToHTML");function u(t){if(Intl.Segmenter){return[...(new Intl.Segmenter).segment(t)].map((t=>t.segment))}return[...t]}(0,a.K2)(u,"splitTextToChars");function f(t,e){const r=u(e.content);return p(t,[],r,e.type)}(0,a.K2)(f,"splitWordToFitWidth");function p(t,e,r,i){if(r.length===0){return[{content:e.join(""),type:i},{content:"",type:i}]}const[a,...n]=r;const o=[...e,a];if(t([{content:o.join(""),type:i}])){return p(t,o,n,i)}if(e.length===0&&a){e.push(a);r.shift()}return[{content:e.join(""),type:i},{content:r.join(""),type:i}]}(0,a.K2)(p,"splitWordToFitWidthRecursion");function g(t,e){if(t.some((({content:t})=>t.includes("\n")))){throw new Error("splitLineToFitWidth does not support newlines in the line")}return m(t,e)}(0,a.K2)(g,"splitLineToFitWidth");function m(t,e,r=[],i=[]){if(t.length===0){if(i.length>0){r.push(i)}return r.length>0?r:[]}let a="";if(t[0].content===" "){a=" ";t.shift()}const n=t.shift()??{content:" ",type:"normal"};const o=[...i];if(a!==""){o.push({content:a,type:"normal"})}o.push(n);if(e(o)){return m(t,e,r,o)}if(i.length>0){r.push(i);t.unshift(n)}else if(n.content){const[i,a]=f(e,n);r.push([i]);if(a.content){t.unshift(a)}}return m(t,e,r)}(0,a.K2)(m,"splitLineToFitWidthRecursion");function y(t,e){if(e){t.attr("style",e)}}(0,a.K2)(y,"applyStyle");async function b(t,e,r,i,n=false){const o=t.append("foreignObject");o.attr("width",`${10*r}px`);o.attr("height",`${10*r}px`);const s=o.append("xhtml:div");let l=e.label;if(e.label&&(0,a.Wi)(e.label)){l=await(0,a.VJ)(e.label.replace(a.Y2.lineBreakRegex,"\n"),(0,a.D7)())}const c=e.isNode?"nodeLabel":"edgeLabel";const h=s.append("span");h.html(l);y(h,e.labelStyle);h.attr("class",`${c} ${i}`);y(s,e.labelStyle);s.style("display","table-cell");s.style("white-space","nowrap");s.style("line-height","1.5");s.style("max-width",r+"px");s.style("text-align","center");s.attr("xmlns","http://www.w3.org/1999/xhtml");if(n){s.attr("class","labelBkg")}let d=s.node().getBoundingClientRect();if(d.width===r){s.style("display","table");s.style("white-space","break-spaces");s.style("width",r+"px");d=s.node().getBoundingClientRect()}return o.node()}(0,a.K2)(b,"addHtmlSpan");function x(t,e,r){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em")}(0,a.K2)(x,"createTspan");function C(t,e,r){const i=t.append("text");const a=x(i,1,e);w(a,r);const n=a.node().getComputedTextLength();i.remove();return n}(0,a.K2)(C,"computeWidthOfText");function v(t,e,r){const i=t.append("text");const a=x(i,1,e);w(a,[{content:r,type:"normal"}]);const n=a.node()?.getBoundingClientRect();if(n){i.remove()}return n}(0,a.K2)(v,"computeDimensionOfText");function k(t,e,r,i=false){const n=1.1;const o=e.append("g");const s=o.insert("rect").attr("class","background").attr("style","stroke: none");const l=o.append("text").attr("y","-10.1");let c=0;for(const h of r){const e=(0,a.K2)((e=>C(o,n,e)<=t),"checkWidth");const r=e(h)?[h]:g(h,e);for(const t of r){const e=x(l,c,n);w(e,t);c++}}if(i){const t=l.node().getBBox();const e=2;s.attr("x",t.x-e).attr("y",t.y-e).attr("width",t.width+2*e).attr("height",t.height+2*e);return o.node()}else{return l.node()}}(0,a.K2)(k,"createFormattedText");function w(t,e){t.text("");e.forEach(((e,r)=>{const i=t.append("tspan").attr("font-style",e.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",e.type==="strong"?"bold":"normal");if(r===0){i.text(e.content)}else{i.text(" "+e.content)}}))}(0,a.K2)(w,"updateTextContentAndStyles");function S(t){return t.replace(/fa[bklrs]?:fa-[\w-]+/g,(t=>``))}(0,a.K2)(S,"replaceIconSubstring");var A=(0,a.K2)((async(t,e="",{style:r="",isTitle:o=false,classes:s="",useHtmlLabels:l=true,isNode:c=true,width:u=200,addSvgBackground:f=false}={},p)=>{a.Rm.debug("XYZ createText",e,r,o,s,l,c,"addSvgBackground: ",f);if(l){const n=d(e,p);const o=S((0,i.Sm)(n));const l=e.replace(/\\\\/g,"\\");const h={isNode:c,label:(0,a.Wi)(e)?l:o,labelStyle:r.replace("fill:","color:")};const g=await b(t,h,u,s,f);return g}else{const i=e.replace(//g,"
");const a=h(i.replace("
","
"),p);const o=k(u,t,a,e?f:false);if(c){if(/stroke:/.exec(r)){r=r.replace("stroke:","lineColor:")}const t=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");(0,n.Ltv)(o).attr("style",t)}else{const t=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");(0,n.Ltv)(o).select("rect").attr("style",t.replace(/background:/g,"fill:"));const e=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");(0,n.Ltv)(o).select("text").attr("style",e)}return o}}),"createText")},68232:(t,e,r)=>{"use strict";r.d(e,{WY:()=>I,pC:()=>O,Gc:()=>F});var i=r(75905);const a=/^[a-z0-9]+(-[a-z0-9]+)*$/;const n=(t,e,r,i="")=>{const a=t.split(":");if(t.slice(0,1)==="@"){if(a.length<2||a.length>3){return null}i=a.shift().slice(1)}if(a.length>3||!a.length){return null}if(a.length>1){const t=a.pop();const r=a.pop();const n={provider:a.length>0?a[0]:i,prefix:r,name:t};return e&&!o(n)?null:n}const n=a[0];const s=n.split("-");if(s.length>1){const t={provider:i,prefix:s.shift(),name:s.join("-")};return e&&!o(t)?null:t}if(r&&i===""){const t={provider:i,prefix:"",name:n};return e&&!o(t,r)?null:t}return null};const o=(t,e)=>{if(!t){return false}return!!((e&&t.prefix===""||!!t.prefix)&&!!t.name)};const s=Object.freeze({left:0,top:0,width:16,height:16});const l=Object.freeze({rotate:0,vFlip:false,hFlip:false});const c=Object.freeze({...s,...l});const h=Object.freeze({...c,body:"",hidden:false});function d(t,e){const r={};if(!t.hFlip!==!e.hFlip){r.hFlip=true}if(!t.vFlip!==!e.vFlip){r.vFlip=true}const i=((t.rotate||0)+(e.rotate||0))%4;if(i){r.rotate=i}return r}function u(t,e){const r=d(t,e);for(const i in h){if(i in l){if(i in t&&!(i in r)){r[i]=l[i]}}else if(i in e){r[i]=e[i]}else if(i in t){r[i]=t[i]}}return r}function f(t,e){const r=t.icons;const i=t.aliases||Object.create(null);const a=Object.create(null);function n(t){if(r[t]){return a[t]=[]}if(!(t in a)){a[t]=null;const e=i[t]&&i[t].parent;const r=e&&n(e);if(r){a[t]=[e].concat(r)}}return a[t]}(e||Object.keys(r).concat(Object.keys(i))).forEach(n);return a}function p(t,e,r){const i=t.icons;const a=t.aliases||Object.create(null);let n={};function o(t){n=u(i[t]||a[t],n)}o(e);r.forEach(o);return u(t,n)}function g(t,e){if(t.icons[e]){return p(t,e,[])}const r=f(t,[e])[e];return r?p(t,e,r):null}const m=Object.freeze({width:null,height:null});const y=Object.freeze({...m,...l});const b=/(-?[0-9.]*[0-9]+[0-9.]*)/g;const x=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function C(t,e,r){if(e===1){return t}r=r||100;if(typeof t==="number"){return Math.ceil(t*e*r)/r}if(typeof t!=="string"){return t}const i=t.split(b);if(i===null||!i.length){return t}const a=[];let n=i.shift();let o=x.test(n);while(true){if(o){const t=parseFloat(n);if(isNaN(t)){a.push(n)}else{a.push(Math.ceil(t*e*r)/r)}}else{a.push(n)}n=i.shift();if(n===void 0){return a.join("")}o=!o}}function v(t,e="defs"){let r="";const i=t.indexOf("<"+e);while(i>=0){const a=t.indexOf(">",i);const n=t.indexOf("",n);if(o===-1){break}r+=t.slice(a+1,n).trim();t=t.slice(0,i).trim()+t.slice(o+1)}return{defs:r,content:t}}function k(t,e){return t?""+t+""+e:e}function w(t,e,r){const i=v(t);return k(i.defs,e+i.content+r)}const S=t=>t==="unset"||t==="undefined"||t==="none";function A(t,e){const r={...c,...t};const i={...y,...e};const a={left:r.left,top:r.top,width:r.width,height:r.height};let n=r.body;[r,i].forEach((t=>{const e=[];const r=t.hFlip;const i=t.vFlip;let o=t.rotate;if(r){if(i){o+=2}else{e.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")");e.push("scale(-1 1)");a.top=a.left=0}}else if(i){e.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")");e.push("scale(1 -1)");a.top=a.left=0}let s;if(o<0){o-=Math.floor(o/4)*4}o=o%4;switch(o){case 1:s=a.height/2+a.top;e.unshift("rotate(90 "+s.toString()+" "+s.toString()+")");break;case 2:e.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:s=a.width/2+a.left;e.unshift("rotate(-90 "+s.toString()+" "+s.toString()+")");break}if(o%2===1){if(a.left!==a.top){s=a.left;a.left=a.top;a.top=s}if(a.width!==a.height){s=a.width;a.width=a.height;a.height=s}}if(e.length){n=w(n,'',"")}}));const o=i.width;const s=i.height;const l=a.width;const h=a.height;let d;let u;if(o===null){u=s===null?"1em":s==="auto"?h:s;d=C(u,l/h)}else{d=o==="auto"?l:o;u=s===null?C(d,h/l):s==="auto"?h:s}const f={};const p=(t,e)=>{if(!S(e)){f[t]=e.toString()}};p("width",d);p("height",u);const g=[a.left,a.top,l,h];f.viewBox=g.join(" ");return{attributes:f,viewBox:g,body:n}}function T(t,e){let r=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const i in e){r+=" "+i+'="'+e[i]+'"'}return'"+t+""}const B=/\sid="(\S+)"/g;const L="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let M=0;function _(t,e=L){const r=[];let i;while(i=B.exec(t)){r.push(i[1])}if(!r.length){return t}const a="suffix"+(Math.random()*16777216|Date.now()).toString(16);r.forEach((r=>{const i=typeof e==="function"?e(r):e+(M++).toString();const n=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+n+')([")]|\\.[a-z])',"g"),"$1"+i+a+"$3")}));t=t.replace(new RegExp(a,"g"),"");return t}var F={body:'?',height:80,width:80};var $=new Map;var E=new Map;var O=(0,i.K2)((t=>{for(const e of t){if(!e.name){throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.')}i.Rm.debug("Registering icon pack:",e.name);if("loader"in e){E.set(e.name,e.loader)}else if("icons"in e){$.set(e.name,e.icons)}else{i.Rm.error("Invalid icon loader:",e);throw new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}}}),"registerIconPacks");var D=(0,i.K2)((async(t,e)=>{const r=n(t,true,e!==void 0);if(!r){throw new Error(`Invalid icon name: ${t}`)}const a=r.prefix||e;if(!a){throw new Error(`Icon name must contain a prefix: ${t}`)}let o=$.get(a);if(!o){const t=E.get(a);if(!t){throw new Error(`Icon set not found: ${r.prefix}`)}try{const e=await t();o={...e,prefix:a};$.set(a,o)}catch(l){i.Rm.error(l);throw new Error(`Failed to load icon set: ${r.prefix}`)}}const s=g(o,r.name);if(!s){throw new Error(`Icon not found: ${t}`)}return s}),"getRegisteredIconData");var I=(0,i.K2)((async(t,e)=>{let r;try{r=await D(t,e?.fallbackPrefix)}catch(o){i.Rm.error(o);r=F}const a=A(r,e);const n=T(_(a.body),a.attributes);return n}),"getIconSVG")},20778:(t,e,r)=>{"use strict";r.d(e,{DA:()=>k,IU:()=>P,KX:()=>B,U:()=>R,U7:()=>Ee,U_:()=>De,Zk:()=>h,aP:()=>_e,gh:()=>Oe,lC:()=>u,on:()=>$e});var i=r(57590);var a=r(68232);var n=r(76261);var o=r(96049);var s=r(75905);var l=r(24982);var c=r(52274);var h=(0,s.K2)((async(t,e,r)=>{let i;const a=e.useHtmlLabels||(0,s._3)((0,s.D7)()?.htmlLabels);if(!r){i="node default"}else{i=r}const c=t.insert("g").attr("class",i).attr("id",e.domId||e.id);const h=c.insert("g").attr("class","label").attr("style",(0,o.KL)(e.labelStyle));let d;if(e.label===void 0){d=""}else{d=typeof e.label==="string"?e.label:e.label[0]}const u=await(0,n.GZ)(h,(0,s.jZ)((0,o.Sm)(d),(0,s.D7)()),{useHtmlLabels:a,width:e.width||(0,s.D7)().flowchart?.wrappingWidth,cssClasses:"markdown-node-label",style:e.labelStyle,addSvgBackground:!!e.icon||!!e.img});let f=u.getBBox();const p=(e?.padding??0)/2;if(a){const t=u.children[0];const e=(0,l.Ltv)(u);const r=t.getElementsByTagName("img");if(r){const t=d.replace(/]*>/g,"").trim()==="";await Promise.all([...r].map((e=>new Promise((r=>{function i(){e.style.display="flex";e.style.flexDirection="column";if(t){const t=(0,s.D7)().fontSize?(0,s.D7)().fontSize:window.getComputedStyle(document.body).fontSize;const r=5;const[i=s.UI.fontSize]=(0,o.I5)(t);const a=i*r+"px";e.style.minWidth=a;e.style.maxWidth=a}else{e.style.width="100%"}r(e)}(0,s.K2)(i,"setupImage");setTimeout((()=>{if(e.complete){i()}}));e.addEventListener("error",i);e.addEventListener("load",i)})))))}f=t.getBoundingClientRect();e.attr("width",f.width);e.attr("height",f.height)}if(a){h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")")}else{h.attr("transform","translate(0, "+-f.height/2+")")}if(e.centerLabel){h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")")}h.insert("rect",":first-child");return{shapeSvg:c,bbox:f,halfPadding:p,label:h}}),"labelHelper");var d=(0,s.K2)((async(t,e,r)=>{const i=r.useHtmlLabels||(0,s._3)((0,s.D7)()?.flowchart?.htmlLabels);const a=t.insert("g").attr("class","label").attr("style",r.labelStyle||"");const c=await(0,n.GZ)(a,(0,s.jZ)((0,o.Sm)(e),(0,s.D7)()),{useHtmlLabels:i,width:r.width||(0,s.D7)()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img});let h=c.getBBox();const d=r.padding/2;if((0,s._3)((0,s.D7)()?.flowchart?.htmlLabels)){const t=c.children[0];const e=(0,l.Ltv)(c);h=t.getBoundingClientRect();e.attr("width",h.width);e.attr("height",h.height)}if(i){a.attr("transform","translate("+-h.width/2+", "+-h.height/2+")")}else{a.attr("transform","translate(0, "+-h.height/2+")")}if(r.centerLabel){a.attr("transform","translate("+-h.width/2+", "+-h.height/2+")")}a.insert("rect",":first-child");return{shapeSvg:t,bbox:h,halfPadding:d,label:a}}),"insertLabel");var u=(0,s.K2)(((t,e)=>{const r=e.node().getBBox();t.width=r.width;t.height=r.height}),"updateNodeBounds");var f=(0,s.K2)(((t,e)=>(t.look==="handDrawn"?"rough-node":"node")+" "+t.cssClasses+" "+(e||"")),"getNodeClasses");function p(t){const e=t.map(((t,e)=>`${e===0?"M":"L"}${t.x},${t.y}`));e.push("Z");return e.join(" ")}(0,s.K2)(p,"createPathFromPoints");function g(t,e,r,i,a,n){const o=[];const s=50;const l=r-t;const c=i-e;const h=l/n;const d=2*Math.PI/h;const u=e+c/2;for(let f=0;f<=s;f++){const e=f/s;const r=t+e*l;const i=u+a*Math.sin(d*(r-t));o.push({x:r,y:i})}return o}(0,s.K2)(g,"generateFullSineWavePoints");function m(t,e,r,i,a,n){const o=[];const s=a*Math.PI/180;const l=n*Math.PI/180;const c=l-s;const h=c/(i-1);for(let d=0;d{var r=t.x;var i=t.y;var a=e.x-r;var n=e.y-i;var o=t.width/2;var s=t.height/2;var l,c;if(Math.abs(n)*o>Math.abs(a)*s){if(n<0){s=-s}l=n===0?0:s*a/n;c=s}else{if(a<0){o=-o}l=o;c=a===0?0:o*n/a}return{x:r+l,y:i+c}}),"intersectRect");var b=y;function x(t,e){if(e){t.attr("style",e)}}(0,s.K2)(x,"applyStyle");async function C(t){const e=(0,l.Ltv)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject"));const r=e.append("xhtml:div");let i=t.label;if(t.label&&(0,s.Wi)(t.label)){i=await(0,s.VJ)(t.label.replace(s.Y2.lineBreakRegex,"\n"),(0,s.D7)())}const a=t.isNode?"nodeLabel":"edgeLabel";r.html('"+i+"");x(r,t.labelStyle);r.style("display","inline-block");r.style("padding-right","1px");r.style("white-space","nowrap");r.attr("xmlns","http://www.w3.org/1999/xhtml");return e.node()}(0,s.K2)(C,"addHtmlLabel");var v=(0,s.K2)((async(t,e,r,i)=>{let a=t||"";if(typeof a==="object"){a=a[0]}if((0,s._3)((0,s.D7)().flowchart.htmlLabels)){a=a.replace(/\\n|\n/g,"
");s.Rm.info("vertexText"+a);const t={isNode:i,label:(0,o.Sm)(a).replace(/fa[blrs]?:fa-[\w-]+/g,(t=>``)),labelStyle:e?e.replace("fill:","color:"):e};let r=await C(t);return r}else{const t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));let i=[];if(typeof a==="string"){i=a.split(/\\n|\n|/gi)}else if(Array.isArray(a)){i=a}else{i=[]}for(const e of i){const i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve");i.setAttribute("dy","1em");i.setAttribute("x","0");if(r){i.setAttribute("class","title-row")}else{i.setAttribute("class","row")}i.textContent=e.trim();t.appendChild(i)}return t}}),"createLabel");var k=v;var w=(0,s.K2)(((t,e,r,i,a)=>["M",t+a,e,"H",t+r-a,"A",a,a,0,0,1,t+r,e+a,"V",e+i-a,"A",a,a,0,0,1,t+r-a,e+i,"H",t+a,"A",a,a,0,0,1,t,e+i-a,"V",e+a,"A",a,a,0,0,1,t+a,e,"Z"].join(" ")),"createRoundedRectPathD");var S=(0,s.K2)((t=>{const{handDrawnSeed:e}=(0,s.D7)();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}}),"solidStateFill");var A=(0,s.K2)((t=>{const e=T([...t.cssCompiledStyles||[],...t.cssStyles||[]]);return{stylesMap:e,stylesArray:[...e]}}),"compileStyles");var T=(0,s.K2)((t=>{const e=new Map;t.forEach((t=>{const[r,i]=t.split(":");e.set(r.trim(),i?.trim())}));return e}),"styles2Map");var B=(0,s.K2)((t=>t==="color"||t==="font-size"||t==="font-family"||t==="font-weight"||t==="font-style"||t==="text-decoration"||t==="text-align"||t==="text-transform"||t==="line-height"||t==="letter-spacing"||t==="word-spacing"||t==="text-shadow"||t==="text-overflow"||t==="white-space"||t==="word-wrap"||t==="word-break"||t==="overflow-wrap"||t==="hyphens"),"isLabelStyle");var L=(0,s.K2)((t=>{const{stylesArray:e}=A(t);const r=[];const i=[];const a=[];const n=[];e.forEach((t=>{const e=t[0];if(B(e)){r.push(t.join(":")+" !important")}else{i.push(t.join(":")+" !important");if(e.includes("stroke")){a.push(t.join(":")+" !important")}if(e==="fill"){n.push(t.join(":")+" !important")}}}));return{labelStyles:r.join(";"),nodeStyles:i.join(";"),stylesArray:e,borderStyles:a,backgroundStyles:n}}),"styles2String");var M=(0,s.K2)(((t,e)=>{const{themeVariables:r,handDrawnSeed:i}=(0,s.D7)();const{nodeBorder:a,mainBkg:n}=r;const{stylesMap:o}=A(t);const l=Object.assign({roughness:.7,fill:o.get("fill")||n,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:o.get("stroke")||a,seed:i,strokeWidth:o.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0]},e);return l}),"userNodeOverrides");var _=(0,s.K2)((async(t,e)=>{s.Rm.info("Creating subgraph rect for ",e.id,e);const r=(0,s.D7)();const{themeVariables:a,handDrawnSeed:o}=r;const{clusterBkg:h,clusterBorder:d}=a;const{labelStyles:u,nodeStyles:f,borderStyles:p,backgroundStyles:g}=L(e);const m=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look);const y=(0,s._3)(r.flowchart.htmlLabels);const x=m.insert("g").attr("class","cluster-label ");const C=await(0,n.GZ)(x,e.label,{style:e.labelStyle,useHtmlLabels:y,isNode:true});let v=C.getBBox();if((0,s._3)(r.flowchart.htmlLabels)){const t=C.children[0];const e=(0,l.Ltv)(C);v=t.getBoundingClientRect();e.attr("width",v.width);e.attr("height",v.height)}const k=e.width<=v.width+e.padding?v.width+e.padding:e.width;if(e.width<=v.width+e.padding){e.diff=(k-e.width)/2-e.padding}else{e.diff=-e.padding}const S=e.height;const A=e.x-k/2;const T=e.y-S/2;s.Rm.trace("Data ",e,JSON.stringify(e));let B;if(e.look==="handDrawn"){const t=c.A.svg(m);const r=M(e,{roughness:.7,fill:h,stroke:d,fillWeight:3,seed:o});const i=t.path(w(A,T,k,S,0),r);B=m.insert((()=>{s.Rm.debug("Rough node insert CXC",i);return i}),":first-child");B.select("path:nth-child(2)").attr("style",p.join(";"));B.select("path").attr("style",g.join(";").replace("fill","stroke"))}else{B=m.insert("rect",":first-child");B.attr("style",f).attr("rx",e.rx).attr("ry",e.ry).attr("x",A).attr("y",T).attr("width",k).attr("height",S)}const{subGraphTitleTopMargin:_}=(0,i.O)(r);x.attr("transform",`translate(${e.x-v.width/2}, ${e.y-e.height/2+_})`);if(u){const t=x.select("span");if(t){t.attr("style",u)}}const F=B.node().getBBox();e.offsetX=0;e.width=F.width;e.height=F.height;e.offsetY=v.height-e.padding/2;e.intersect=function(t){return b(e,t)};return{cluster:m,labelBBox:v}}),"rect");var F=(0,s.K2)(((t,e)=>{const r=t.insert("g").attr("class","note-cluster").attr("id",e.id);const i=r.insert("rect",":first-child");const a=0*e.padding;const n=a/2;i.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-n).attr("y",e.y-e.height/2-n).attr("width",e.width+a).attr("height",e.height+a).attr("fill","none");const o=i.node().getBBox();e.width=o.width;e.height=o.height;e.intersect=function(t){return b(e,t)};return{cluster:r,labelBBox:{width:0,height:0}}}),"noteGroup");var $=(0,s.K2)((async(t,e)=>{const r=(0,s.D7)();const{themeVariables:i,handDrawnSeed:a}=r;const{altBackground:n,compositeBackground:o,compositeTitleBackground:h,nodeBorder:d}=i;const u=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look);const f=u.insert("g",":first-child");const p=u.insert("g").attr("class","cluster-label");let g=u.append("rect");const m=p.node().appendChild(await k(e.label,e.labelStyle,void 0,true));let y=m.getBBox();if((0,s._3)(r.flowchart.htmlLabels)){const t=m.children[0];const e=(0,l.Ltv)(m);y=t.getBoundingClientRect();e.attr("width",y.width);e.attr("height",y.height)}const x=0*e.padding;const C=x/2;const v=(e.width<=y.width+e.padding?y.width+e.padding:e.width)+x;if(e.width<=y.width+e.padding){e.diff=(v-e.width)/2-e.padding}else{e.diff=-e.padding}const S=e.height+x;const A=e.height+x-y.height-6;const T=e.x-v/2;const B=e.y-S/2;e.width=v;const L=e.y-e.height/2-C+y.height+2;let M;if(e.look==="handDrawn"){const t=e.cssClasses.includes("statediagram-cluster-alt");const r=c.A.svg(u);const i=e.rx||e.ry?r.path(w(T,B,v,S,10),{roughness:.7,fill:h,fillStyle:"solid",stroke:d,seed:a}):r.rectangle(T,B,v,S,{seed:a});M=u.insert((()=>i),":first-child");const s=r.rectangle(T,L,v,A,{fill:t?n:o,fillStyle:t?"hachure":"solid",stroke:d,seed:a});M=u.insert((()=>i),":first-child");g=u.insert((()=>s))}else{M=f.insert("rect",":first-child");const t="outer";M.attr("class",t).attr("x",T).attr("y",B).attr("width",v).attr("height",S).attr("data-look",e.look);g.attr("class","inner").attr("x",T).attr("y",L).attr("width",v).attr("height",A)}p.attr("transform",`translate(${e.x-y.width/2}, ${B+1-((0,s._3)(r.flowchart.htmlLabels)?0:3)})`);const _=M.node().getBBox();e.height=_.height;e.offsetX=0;e.offsetY=y.height-e.padding/2;e.labelBBox=y;e.intersect=function(t){return b(e,t)};return{cluster:u,labelBBox:y}}),"roundedWithTitle");var E=(0,s.K2)((async(t,e)=>{s.Rm.info("Creating subgraph rect for ",e.id,e);const r=(0,s.D7)();const{themeVariables:a,handDrawnSeed:o}=r;const{clusterBkg:h,clusterBorder:d}=a;const{labelStyles:u,nodeStyles:f,borderStyles:p,backgroundStyles:g}=L(e);const m=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look);const y=(0,s._3)(r.flowchart.htmlLabels);const x=m.insert("g").attr("class","cluster-label ");const C=await(0,n.GZ)(x,e.label,{style:e.labelStyle,useHtmlLabels:y,isNode:true,width:e.width});let v=C.getBBox();if((0,s._3)(r.flowchart.htmlLabels)){const t=C.children[0];const e=(0,l.Ltv)(C);v=t.getBoundingClientRect();e.attr("width",v.width);e.attr("height",v.height)}const k=e.width<=v.width+e.padding?v.width+e.padding:e.width;if(e.width<=v.width+e.padding){e.diff=(k-e.width)/2-e.padding}else{e.diff=-e.padding}const S=e.height;const A=e.x-k/2;const T=e.y-S/2;s.Rm.trace("Data ",e,JSON.stringify(e));let B;if(e.look==="handDrawn"){const t=c.A.svg(m);const r=M(e,{roughness:.7,fill:h,stroke:d,fillWeight:4,seed:o});const i=t.path(w(A,T,k,S,e.rx),r);B=m.insert((()=>{s.Rm.debug("Rough node insert CXC",i);return i}),":first-child");B.select("path:nth-child(2)").attr("style",p.join(";"));B.select("path").attr("style",g.join(";").replace("fill","stroke"))}else{B=m.insert("rect",":first-child");B.attr("style",f).attr("rx",e.rx).attr("ry",e.ry).attr("x",A).attr("y",T).attr("width",k).attr("height",S)}const{subGraphTitleTopMargin:_}=(0,i.O)(r);x.attr("transform",`translate(${e.x-v.width/2}, ${e.y-e.height/2+_})`);if(u){const t=x.select("span");if(t){t.attr("style",u)}}const F=B.node().getBBox();e.offsetX=0;e.width=F.width;e.height=F.height;e.offsetY=v.height-e.padding/2;e.intersect=function(t){return b(e,t)};return{cluster:m,labelBBox:v}}),"kanbanSection");var O=(0,s.K2)(((t,e)=>{const r=(0,s.D7)();const{themeVariables:i,handDrawnSeed:a}=r;const{nodeBorder:n}=i;const o=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look);const l=o.insert("g",":first-child");const h=0*e.padding;const d=e.width+h;e.diff=-e.padding;const u=e.height+h;const f=e.x-d/2;const p=e.y-u/2;e.width=d;let g;if(e.look==="handDrawn"){const t=c.A.svg(o);const e=t.rectangle(f,p,d,u,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:n,seed:a});g=o.insert((()=>e),":first-child")}else{g=l.insert("rect",":first-child");const t="divider";g.attr("class",t).attr("x",f).attr("y",p).attr("width",d).attr("height",u).attr("data-look",e.look)}const m=g.node().getBBox();e.height=m.height;e.offsetX=0;e.offsetY=0;e.intersect=function(t){return b(e,t)};return{cluster:o,labelBBox:{}}}),"divider");var D=_;var I={rect:_,squareRect:D,roundedWithTitle:$,noteGroup:F,divider:O,kanbanSection:E};var K=new Map;var R=(0,s.K2)((async(t,e)=>{const r=e.shape||"rect";const i=await I[r](t,e);K.set(e.id,i);return i}),"insertCluster");var P=(0,s.K2)((()=>{K=new Map}),"clear");function z(t,e){return t.intersect(e)}(0,s.K2)(z,"intersectNode");var q=z;function N(t,e,r,i){var a=t.x;var n=t.y;var o=a-i.x;var s=n-i.y;var l=Math.sqrt(e*e*s*s+r*r*o*o);var c=Math.abs(e*r*o/l);if(i.x0}(0,s.K2)(U,"sameSign");var G=Y;function V(t,e,r){let i=t.x;let a=t.y;let n=[];let o=Number.POSITIVE_INFINITY;let s=Number.POSITIVE_INFINITY;if(typeof e.forEach==="function"){e.forEach((function(t){o=Math.min(o,t.x);s=Math.min(s,t.y)}))}else{o=Math.min(o,e.x);s=Math.min(s,e.y)}let l=i-t.width/2-o;let c=a-t.height/2-s;for(let h=0;h1){n.sort((function(t,e){let i=t.x-r.x;let a=t.y-r.y;let n=Math.sqrt(i*i+a*a);let o=e.x-r.x;let s=e.y-r.y;let l=Math.sqrt(o*o+s*s);return ng),":first-child");m.attr("class","anchor").attr("style",(0,o.KL)(h));u(e,m);e.intersect=function(t){s.Rm.info("Circle intersect",e,l,t);return Z.circle(e,l,t)};return n}(0,s.K2)(J,"anchor");function Q(t,e,r,i,a,n,o){const s=20;const l=(t+r)/2;const c=(e+i)/2;const h=Math.atan2(i-e,r-t);const d=(r-t)/2;const u=(i-e)/2;const f=d/a;const p=u/n;const g=Math.sqrt(f**2+p**2);if(g>1){throw new Error("The given radii are too small to create an arc between the points.")}const m=Math.sqrt(1-g**2);const y=l+m*n*Math.sin(h)*(o?-1:1);const b=c-m*a*Math.cos(h)*(o?-1:1);const x=Math.atan2((e-b)/n,(t-y)/a);const C=Math.atan2((i-b)/n,(r-y)/a);let v=C-x;if(o&&v<0){v+=2*Math.PI}if(!o&&v>0){v-=2*Math.PI}const k=[];for(let w=0;wC),":first-child");v.attr("class","basic label-container");if(g&&e.look!=="handDrawn"){v.selectAll("path").attr("style",g)}if(i&&e.look!=="handDrawn"){v.selectAll("path").attr("style",i)}v.attr("transform",`translate(${d/2}, 0)`);u(e,v);e.intersect=function(t){const r=Z.polygon(e,m,t);return r};return a}(0,s.K2)(tt,"bowTieRect");function et(t,e,r,i){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}(0,s.K2)(et,"insertPolygonShape");async function rt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=n.height+e.padding;const s=12;const l=n.width+e.padding+s;const d=0;const g=l;const m=-o;const y=0;const b=[{x:d+s,y:m},{x:g,y:m},{x:g,y},{x:d,y},{x:d,y:m+s},{x:d+s,y:m}];let x;const{cssStyles:C}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{});const i=p(b);const n=t.path(i,r);x=a.insert((()=>n),":first-child").attr("transform",`translate(${-l/2}, ${o/2})`);if(C){x.attr("style",C)}}else{x=et(a,l,o,b)}if(i){x.attr("style",i)}u(e,x);e.intersect=function(t){return Z.polygon(e,b,t)};return a}(0,s.K2)(rt,"card");function it(t,e){const{nodeStyles:r}=L(e);e.label="";const i=t.insert("g").attr("class",f(e)).attr("id",e.domId??e.id);const{cssStyles:a}=e;const n=Math.max(28,e.width??0);const o=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];const s=c.A.svg(i);const l=M(e,{});if(e.look!=="handDrawn"){l.roughness=0;l.fillStyle="solid"}const h=p(o);const d=s.path(h,l);const u=i.insert((()=>d),":first-child");if(a&&e.look!=="handDrawn"){u.selectAll("path").attr("style",a)}if(r&&e.look!=="handDrawn"){u.selectAll("path").attr("style",r)}e.width=28;e.height=28;e.intersect=function(t){return Z.polygon(e,o,t)};return i}(0,s.K2)(it,"choice");async function at(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,halfPadding:l}=await h(t,e,f(e));const d=n.width/2+l;let p;const{cssStyles:g}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{});const i=t.circle(0,0,d*2,r);p=a.insert((()=>i),":first-child");p.attr("class","basic label-container").attr("style",(0,o.KL)(g))}else{p=a.insert("circle",":first-child").attr("class","basic label-container").attr("style",i).attr("r",d).attr("cx",0).attr("cy",0)}u(e,p);e.intersect=function(t){s.Rm.info("Circle intersect",e,d,t);return Z.circle(e,d,t)};return a}(0,s.K2)(at,"circle");function nt(t){const e=Math.cos(Math.PI/4);const r=Math.sin(Math.PI/4);const i=t*2;const a={x:i/2*e,y:i/2*r};const n={x:-(i/2)*e,y:i/2*r};const o={x:-(i/2)*e,y:-(i/2)*r};const s={x:i/2*e,y:-(i/2)*r};return`M ${n.x},${n.y} L ${s.x},${s.y}\n M ${a.x},${a.y} L ${o.x},${o.y}`}(0,s.K2)(nt,"createLine");function ot(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;e.label="";const a=t.insert("g").attr("class",f(e)).attr("id",e.domId??e.id);const n=Math.max(30,e?.width??0);const{cssStyles:o}=e;const l=c.A.svg(a);const h=M(e,{});if(e.look!=="handDrawn"){h.roughness=0;h.fillStyle="solid"}const d=l.circle(0,0,n*2,h);const p=nt(n);const g=l.path(p,h);const m=a.insert((()=>d),":first-child");m.insert((()=>g));if(o&&e.look!=="handDrawn"){m.selectAll("path").attr("style",o)}if(i&&e.look!=="handDrawn"){m.selectAll("path").attr("style",i)}u(e,m);e.intersect=function(t){s.Rm.info("crossedCircle intersect",e,{radius:n,point:t});const r=Z.circle(e,n,t);return r};return a}(0,s.K2)(ot,"crossedCircle");function st(t,e,r,i=100,a=0,n=180){const o=[];const s=a*Math.PI/180;const l=n*Math.PI/180;const c=l-s;const h=c/(i-1);for(let d=0;dS),":first-child").attr("stroke-opacity",0);A.insert((()=>k),":first-child");A.attr("class","text");if(g&&e.look!=="handDrawn"){A.selectAll("path").attr("style",g)}if(i&&e.look!=="handDrawn"){A.selectAll("path").attr("style",i)}A.attr("transform",`translate(${d}, 0)`);o.attr("transform",`translate(${-s/2+d-(n.x-(n.left??0))},${-l/2+(e.padding??0)/2-(n.y-(n.top??0))})`);u(e,A);e.intersect=function(t){const r=Z.polygon(e,y,t);return r};return a}(0,s.K2)(lt,"curlyBraceLeft");function ct(t,e,r,i=100,a=0,n=180){const o=[];const s=a*Math.PI/180;const l=n*Math.PI/180;const c=l-s;const h=c/(i-1);for(let d=0;dS),":first-child").attr("stroke-opacity",0);A.insert((()=>k),":first-child");A.attr("class","text");if(g&&e.look!=="handDrawn"){A.selectAll("path").attr("style",g)}if(i&&e.look!=="handDrawn"){A.selectAll("path").attr("style",i)}A.attr("transform",`translate(${-d}, 0)`);o.attr("transform",`translate(${-s/2+(e.padding??0)/2-(n.x-(n.left??0))},${-l/2+(e.padding??0)/2-(n.y-(n.top??0))})`);u(e,A);e.intersect=function(t){const r=Z.polygon(e,y,t);return r};return a}(0,s.K2)(ht,"curlyBraceRight");function dt(t,e,r,i=100,a=0,n=180){const o=[];const s=a*Math.PI/180;const l=n*Math.PI/180;const c=l-s;const h=c/(i-1);for(let d=0;d_),":first-child").attr("stroke-opacity",0);F.insert((()=>w),":first-child");F.insert((()=>T),":first-child");F.attr("class","text");if(g&&e.look!=="handDrawn"){F.selectAll("path").attr("style",g)}if(i&&e.look!=="handDrawn"){F.selectAll("path").attr("style",i)}F.attr("transform",`translate(${d-d/4}, 0)`);o.attr("transform",`translate(${-s/2+(e.padding??0)/2-(n.x-(n.left??0))},${-l/2+(e.padding??0)/2-(n.y-(n.top??0))})`);u(e,F);e.intersect=function(t){const r=Z.polygon(e,b,t);return r};return a}(0,s.K2)(ut,"curlyBraces");async function ft(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=80,s=20;const l=Math.max(o,(n.width+(e.padding??0)*2)*1.25,e?.width??0);const d=Math.max(s,n.height+(e.padding??0)*2,e?.height??0);const g=d/2;const{cssStyles:y}=e;const b=c.A.svg(a);const x=M(e,{});if(e.look!=="handDrawn"){x.roughness=0;x.fillStyle="solid"}const C=l,v=d;const k=C-g;const w=v/4;const S=[{x:k,y:0},{x:w,y:0},{x:0,y:v/2},{x:w,y:v},{x:k,y:v},...m(-k,-v/2,g,50,270,90)];const A=p(S);const T=b.path(A,x);const B=a.insert((()=>T),":first-child");B.attr("class","basic label-container");if(y&&e.look!=="handDrawn"){B.selectChildren("path").attr("style",y)}if(i&&e.look!=="handDrawn"){B.selectChildren("path").attr("style",i)}B.attr("transform",`translate(${-l/2}, ${-d/2})`);u(e,B);e.intersect=function(t){const r=Z.polygon(e,S,t);return r};return a}(0,s.K2)(ft,"curvedTrapezoid");var pt=(0,s.K2)(((t,e,r,i,a,n)=>[`M${t},${e+n}`,`a${a},${n} 0,0,0 ${r},0`,`a${a},${n} 0,0,0 ${-r},0`,`l0,${i}`,`a${a},${n} 0,0,0 ${r},0`,`l0,${-i}`].join(" ")),"createCylinderPathD");var gt=(0,s.K2)(((t,e,r,i,a,n)=>[`M${t},${e+n}`,`M${t+r},${e+n}`,`a${a},${n} 0,0,0 ${-r},0`,`l0,${i}`,`a${a},${n} 0,0,0 ${r},0`,`l0,${-i}`].join(" ")),"createOuterCylinderPathD");var mt=(0,s.K2)(((t,e,r,i,a,n)=>[`M${t-r/2},${-i/2}`,`a${a},${n} 0,0,0 ${r},0`].join(" ")),"createInnerCylinderPathD");async function yt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:s}=await h(t,e,f(e));const l=Math.max(n.width+e.padding,e.width??0);const d=l/2;const p=d/(2.5+l/50);const g=Math.max(n.height+p+e.padding,e.height??0);let m;const{cssStyles:y}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=gt(0,0,l,g,d,p);const i=mt(0,p,l,g,d,p);const n=t.path(r,M(e,{}));const o=t.path(i,M(e,{fill:"none"}));m=a.insert((()=>o),":first-child");m=a.insert((()=>n),":first-child");m.attr("class","basic label-container");if(y){m.attr("style",y)}}else{const t=pt(0,0,l,g,d,p);m=a.insert("path",":first-child").attr("d",t).attr("class","basic label-container").attr("style",(0,o.KL)(y)).attr("style",i)}m.attr("label-offset-y",p);m.attr("transform",`translate(${-l/2}, ${-(g/2+p)})`);u(e,m);s.attr("transform",`translate(${-(n.width/2)-(n.x-(n.left??0))}, ${-(n.height/2)+(e.padding??0)/1.5-(n.y-(n.top??0))})`);e.intersect=function(t){const r=Z.rect(e,t);const i=r.x-(e.x??0);if(d!=0&&(Math.abs(i)<(e.width??0)/2||Math.abs(i)==(e.width??0)/2&&Math.abs(r.y-(e.y??0))>(e.height??0)/2-p)){let a=p*p*(1-i*i/(d*d));if(a>0){a=Math.sqrt(a)}a=p-a;if(t.y-(e.y??0)>0){a=-a}r.y+=a}return r};return a}(0,s.K2)(yt,"cylinder");async function bt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const s=n.width+e.padding;const l=n.height+e.padding;const d=l*.2;const p=-s/2;const g=-l/2-d/2;const{cssStyles:m}=e;const y=c.A.svg(a);const b=M(e,{});if(e.look!=="handDrawn"){b.roughness=0;b.fillStyle="solid"}const x=[{x:p,y:g+d},{x:-p,y:g+d},{x:-p,y:-g},{x:p,y:-g},{x:p,y:g},{x:-p,y:g},{x:-p,y:g+d}];const C=y.polygon(x.map((t=>[t.x,t.y])),b);const v=a.insert((()=>C),":first-child");v.attr("class","basic label-container");if(m&&e.look!=="handDrawn"){v.selectAll("path").attr("style",m)}if(i&&e.look!=="handDrawn"){v.selectAll("path").attr("style",i)}o.attr("transform",`translate(${p+(e.padding??0)/2-(n.x-(n.left??0))}, ${g+d+(e.padding??0)/2-(n.y-(n.top??0))})`);u(e,v);e.intersect=function(t){const r=Z.rect(e,t);return r};return a}(0,s.K2)(bt,"dividedRectangle");async function xt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,halfPadding:l}=await h(t,e,f(e));const d=5;const p=n.width/2+l+d;const g=n.width/2+l;let m;const{cssStyles:y}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{roughness:.2,strokeWidth:2.5});const i=M(e,{roughness:.2,strokeWidth:1.5});const n=t.circle(0,0,p*2,r);const s=t.circle(0,0,g*2,i);m=a.insert("g",":first-child");m.attr("class",(0,o.KL)(e.cssClasses)).attr("style",(0,o.KL)(y));m.node()?.appendChild(n);m.node()?.appendChild(s)}else{m=a.insert("g",":first-child");const t=m.insert("circle",":first-child");const e=m.insert("circle");m.attr("class","basic label-container").attr("style",i);t.attr("class","outer-circle").attr("style",i).attr("r",p).attr("cx",0).attr("cy",0);e.attr("class","inner-circle").attr("style",i).attr("r",g).attr("cx",0).attr("cy",0)}u(e,m);e.intersect=function(t){s.Rm.info("DoubleCircle intersect",e,p,t);return Z.circle(e,p,t)};return a}(0,s.K2)(xt,"doublecircle");function Ct(t,e,{config:{themeVariables:r}}){const{labelStyles:i,nodeStyles:a}=L(e);e.label="";e.labelStyle=i;const n=t.insert("g").attr("class",f(e)).attr("id",e.domId??e.id);const o=7;const{cssStyles:l}=e;const h=c.A.svg(n);const{nodeBorder:d}=r;const p=M(e,{fillStyle:"solid"});if(e.look!=="handDrawn"){p.roughness=0}const g=h.circle(0,0,o*2,p);const m=n.insert((()=>g),":first-child");m.selectAll("path").attr("style",`fill: ${d} !important;`);if(l&&l.length>0&&e.look!=="handDrawn"){m.selectAll("path").attr("style",l)}if(a&&e.look!=="handDrawn"){m.selectAll("path").attr("style",a)}u(e,m);e.intersect=function(t){s.Rm.info("filledCircle intersect",e,{radius:o,point:t});const r=Z.circle(e,o,t);return r};return n}(0,s.K2)(Ct,"filledCircle");async function vt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const l=n.width+(e.padding??0);const d=l+n.height;const g=l+n.height;const m=[{x:0,y:-d},{x:g,y:-d},{x:g/2,y:0}];const{cssStyles:y}=e;const b=c.A.svg(a);const x=M(e,{});if(e.look!=="handDrawn"){x.roughness=0;x.fillStyle="solid"}const C=p(m);const v=b.path(C,x);const k=a.insert((()=>v),":first-child").attr("transform",`translate(${-d/2}, ${d/2})`);if(y&&e.look!=="handDrawn"){k.selectChildren("path").attr("style",y)}if(i&&e.look!=="handDrawn"){k.selectChildren("path").attr("style",i)}e.width=l;e.height=d;u(e,k);o.attr("transform",`translate(${-n.width/2-(n.x-(n.left??0))}, ${-d/2+(e.padding??0)/2+(n.y-(n.top??0))})`);e.intersect=function(t){s.Rm.info("Triangle intersect",e,m,t);return Z.polygon(e,m,t)};return a}(0,s.K2)(vt,"flippedTriangle");function kt(t,e,{dir:r,config:{state:i,themeVariables:a}}){const{nodeStyles:n}=L(e);e.label="";const o=t.insert("g").attr("class",f(e)).attr("id",e.domId??e.id);const{cssStyles:s}=e;let l=Math.max(70,e?.width??0);let h=Math.max(10,e?.height??0);if(r==="LR"){l=Math.max(10,e?.width??0);h=Math.max(70,e?.height??0)}const d=-1*l/2;const p=-1*h/2;const g=c.A.svg(o);const m=M(e,{stroke:a.lineColor,fill:a.lineColor});if(e.look!=="handDrawn"){m.roughness=0;m.fillStyle="solid"}const y=g.rectangle(d,p,l,h,m);const b=o.insert((()=>y),":first-child");if(s&&e.look!=="handDrawn"){b.selectAll("path").attr("style",s)}if(n&&e.look!=="handDrawn"){b.selectAll("path").attr("style",n)}u(e,b);const x=i?.padding??0;if(e.width&&e.height){e.width+=x/2||0;e.height+=x/2||0}e.intersect=function(t){return Z.rect(e,t)};return o}(0,s.K2)(kt,"forkJoin");async function wt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const a=80,n=50;const{shapeSvg:o,bbox:l}=await h(t,e,f(e));const d=Math.max(a,l.width+(e.padding??0)*2,e?.width??0);const g=Math.max(n,l.height+(e.padding??0)*2,e?.height??0);const y=g/2;const{cssStyles:b}=e;const x=c.A.svg(o);const C=M(e,{});if(e.look!=="handDrawn"){C.roughness=0;C.fillStyle="solid"}const v=[{x:-d/2,y:-g/2},{x:d/2-y,y:-g/2},...m(-d/2+y,0,y,50,90,270),{x:d/2-y,y:g/2},{x:-d/2,y:g/2}];const k=p(v);const w=x.path(k,C);const S=o.insert((()=>w),":first-child");S.attr("class","basic label-container");if(b&&e.look!=="handDrawn"){S.selectChildren("path").attr("style",b)}if(i&&e.look!=="handDrawn"){S.selectChildren("path").attr("style",i)}u(e,S);e.intersect=function(t){s.Rm.info("Pill intersect",e,{radius:y,point:t});const r=Z.polygon(e,v,t);return r};return o}(0,s.K2)(wt,"halfRoundedRectangle");var St=(0,s.K2)(((t,e,r,i,a)=>[`M${t+a},${e}`,`L${t+r-a},${e}`,`L${t+r},${e-i/2}`,`L${t+r-a},${e-i}`,`L${t+a},${e-i}`,`L${t},${e-i/2}`,"Z"].join(" ")),"createHexagonPathD");async function At(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=4;const s=n.height+e.padding;const l=s/o;const d=n.width+2*l+e.padding;const p=[{x:l,y:0},{x:d-l,y:0},{x:d,y:-s/2},{x:d-l,y:-s},{x:l,y:-s},{x:0,y:-s/2}];let g;const{cssStyles:m}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{});const i=St(0,0,d,s,l);const n=t.path(i,r);g=a.insert((()=>n),":first-child").attr("transform",`translate(${-d/2}, ${s/2})`);if(m){g.attr("style",m)}}else{g=et(a,d,s,p)}if(i){g.attr("style",i)}e.width=d;e.height=s;u(e,g);e.intersect=function(t){return Z.polygon(e,p,t)};return a}(0,s.K2)(At,"hexagon");async function Tt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.label="";e.labelStyle=r;const{shapeSvg:a}=await h(t,e,f(e));const n=Math.max(30,e?.width??0);const o=Math.max(30,e?.height??0);const{cssStyles:l}=e;const d=c.A.svg(a);const g=M(e,{});if(e.look!=="handDrawn"){g.roughness=0;g.fillStyle="solid"}const m=[{x:0,y:0},{x:n,y:0},{x:0,y:o},{x:n,y:o}];const y=p(m);const b=d.path(y,g);const x=a.insert((()=>b),":first-child");x.attr("class","basic label-container");if(l&&e.look!=="handDrawn"){x.selectChildren("path").attr("style",l)}if(i&&e.look!=="handDrawn"){x.selectChildren("path").attr("style",i)}x.attr("transform",`translate(${-n/2}, ${-o/2})`);u(e,x);e.intersect=function(t){s.Rm.info("Pill intersect",e,{points:m});const r=Z.polygon(e,m,t);return r};return a}(0,s.K2)(Tt,"hourglass");async function Bt(t,e,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:n}=L(e);e.labelStyle=n;const o=e.assetHeight??48;const l=e.assetWidth??48;const d=Math.max(o,l);const f=i?.wrappingWidth;e.width=Math.max(d,f??0);const{shapeSvg:p,bbox:g,label:m}=await h(t,e,"icon-shape default");const y=e.pos==="t";const b=d;const x=d;const{nodeBorder:C}=r;const{stylesMap:v}=A(e);const k=-x/2;const w=-b/2;const S=e.label?8:0;const T=c.A.svg(p);const B=M(e,{stroke:"none",fill:"none"});if(e.look!=="handDrawn"){B.roughness=0;B.fillStyle="solid"}const _=T.rectangle(k,w,x,b,B);const F=Math.max(x,g.width);const $=b+g.height+S;const E=T.rectangle(-F/2,-$/2,F,$,{...B,fill:"transparent",stroke:"none"});const O=p.insert((()=>_),":first-child");const D=p.insert((()=>E));if(e.icon){const t=p.append("g");t.html(`${await(0,a.WY)(e.icon,{height:d,width:d,fallbackPrefix:""})}`);const r=t.node().getBBox();const i=r.width;const n=r.height;const o=r.x;const s=r.y;t.attr("transform",`translate(${-i/2-o},${y?g.height/2+S/2-n/2-s:-g.height/2-S/2-n/2-s})`);t.attr("style",`color: ${v.get("stroke")??C};`)}m.attr("transform",`translate(${-g.width/2-(g.x-(g.left??0))},${y?-$/2:$/2-g.height})`);O.attr("transform",`translate(${0},${y?g.height/2+S/2:-g.height/2-S/2})`);u(e,D);e.intersect=function(t){s.Rm.info("iconSquare intersect",e,t);if(!e.label){return Z.rect(e,t)}const r=e.x??0;const i=e.y??0;const a=e.height??0;let n=[];if(y){n=[{x:r-g.width/2,y:i-a/2},{x:r+g.width/2,y:i-a/2},{x:r+g.width/2,y:i-a/2+g.height+S},{x:r+x/2,y:i-a/2+g.height+S},{x:r+x/2,y:i+a/2},{x:r-x/2,y:i+a/2},{x:r-x/2,y:i-a/2+g.height+S},{x:r-g.width/2,y:i-a/2+g.height+S}]}else{n=[{x:r-x/2,y:i-a/2},{x:r+x/2,y:i-a/2},{x:r+x/2,y:i-a/2+b},{x:r+g.width/2,y:i-a/2+b},{x:r+g.width/2/2,y:i+a/2},{x:r-g.width/2,y:i+a/2},{x:r-g.width/2,y:i-a/2+b},{x:r-x/2,y:i-a/2+b}]}const o=Z.polygon(e,n,t);return o};return p}(0,s.K2)(Bt,"icon");async function Lt(t,e,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:n}=L(e);e.labelStyle=n;const o=e.assetHeight??48;const l=e.assetWidth??48;const d=Math.max(o,l);const f=i?.wrappingWidth;e.width=Math.max(d,f??0);const{shapeSvg:p,bbox:g,label:m}=await h(t,e,"icon-shape default");const y=20;const b=e.label?8:0;const x=e.pos==="t";const{nodeBorder:C,mainBkg:v}=r;const{stylesMap:k}=A(e);const w=c.A.svg(p);const S=M(e,{});if(e.look!=="handDrawn"){S.roughness=0;S.fillStyle="solid"}const T=k.get("fill");S.stroke=T??v;const B=p.append("g");if(e.icon){B.html(`${await(0,a.WY)(e.icon,{height:d,width:d,fallbackPrefix:""})}`)}const _=B.node().getBBox();const F=_.width;const $=_.height;const E=_.x;const O=_.y;const D=Math.max(F,$)*Math.SQRT2+y*2;const I=w.circle(0,0,D,S);const K=Math.max(D,g.width);const R=D+g.height+b;const P=w.rectangle(-K/2,-R/2,K,R,{...S,fill:"transparent",stroke:"none"});const z=p.insert((()=>I),":first-child");const q=p.insert((()=>P));B.attr("transform",`translate(${-F/2-E},${x?g.height/2+b/2-$/2-O:-g.height/2-b/2-$/2-O})`);B.attr("style",`color: ${k.get("stroke")??C};`);m.attr("transform",`translate(${-g.width/2-(g.x-(g.left??0))},${x?-R/2:R/2-g.height})`);z.attr("transform",`translate(${0},${x?g.height/2+b/2:-g.height/2-b/2})`);u(e,q);e.intersect=function(t){s.Rm.info("iconSquare intersect",e,t);const r=Z.rect(e,t);return r};return p}(0,s.K2)(Lt,"iconCircle");async function Mt(t,e,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:n}=L(e);e.labelStyle=n;const o=e.assetHeight??48;const l=e.assetWidth??48;const d=Math.max(o,l);const f=i?.wrappingWidth;e.width=Math.max(d,f??0);const{shapeSvg:p,bbox:g,halfPadding:m,label:y}=await h(t,e,"icon-shape default");const b=e.pos==="t";const x=d+m*2;const C=d+m*2;const{nodeBorder:v,mainBkg:k}=r;const{stylesMap:S}=A(e);const T=-C/2;const B=-x/2;const _=e.label?8:0;const F=c.A.svg(p);const $=M(e,{});if(e.look!=="handDrawn"){$.roughness=0;$.fillStyle="solid"}const E=S.get("fill");$.stroke=E??k;const O=F.path(w(T,B,C,x,5),$);const D=Math.max(C,g.width);const I=x+g.height+_;const K=F.rectangle(-D/2,-I/2,D,I,{...$,fill:"transparent",stroke:"none"});const R=p.insert((()=>O),":first-child").attr("class","icon-shape2");const P=p.insert((()=>K));if(e.icon){const t=p.append("g");t.html(`${await(0,a.WY)(e.icon,{height:d,width:d,fallbackPrefix:""})}`);const r=t.node().getBBox();const i=r.width;const n=r.height;const o=r.x;const s=r.y;t.attr("transform",`translate(${-i/2-o},${b?g.height/2+_/2-n/2-s:-g.height/2-_/2-n/2-s})`);t.attr("style",`color: ${S.get("stroke")??v};`)}y.attr("transform",`translate(${-g.width/2-(g.x-(g.left??0))},${b?-I/2:I/2-g.height})`);R.attr("transform",`translate(${0},${b?g.height/2+_/2:-g.height/2-_/2})`);u(e,P);e.intersect=function(t){s.Rm.info("iconSquare intersect",e,t);if(!e.label){return Z.rect(e,t)}const r=e.x??0;const i=e.y??0;const a=e.height??0;let n=[];if(b){n=[{x:r-g.width/2,y:i-a/2},{x:r+g.width/2,y:i-a/2},{x:r+g.width/2,y:i-a/2+g.height+_},{x:r+C/2,y:i-a/2+g.height+_},{x:r+C/2,y:i+a/2},{x:r-C/2,y:i+a/2},{x:r-C/2,y:i-a/2+g.height+_},{x:r-g.width/2,y:i-a/2+g.height+_}]}else{n=[{x:r-C/2,y:i-a/2},{x:r+C/2,y:i-a/2},{x:r+C/2,y:i-a/2+x},{x:r+g.width/2,y:i-a/2+x},{x:r+g.width/2/2,y:i+a/2},{x:r-g.width/2,y:i+a/2},{x:r-g.width/2,y:i-a/2+x},{x:r-C/2,y:i-a/2+x}]}const o=Z.polygon(e,n,t);return o};return p}(0,s.K2)(Mt,"iconRounded");async function _t(t,e,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:n}=L(e);e.labelStyle=n;const o=e.assetHeight??48;const l=e.assetWidth??48;const d=Math.max(o,l);const f=i?.wrappingWidth;e.width=Math.max(d,f??0);const{shapeSvg:p,bbox:g,halfPadding:m,label:y}=await h(t,e,"icon-shape default");const b=e.pos==="t";const x=d+m*2;const C=d+m*2;const{nodeBorder:v,mainBkg:k}=r;const{stylesMap:S}=A(e);const T=-C/2;const B=-x/2;const _=e.label?8:0;const F=c.A.svg(p);const $=M(e,{});if(e.look!=="handDrawn"){$.roughness=0;$.fillStyle="solid"}const E=S.get("fill");$.stroke=E??k;const O=F.path(w(T,B,C,x,.1),$);const D=Math.max(C,g.width);const I=x+g.height+_;const K=F.rectangle(-D/2,-I/2,D,I,{...$,fill:"transparent",stroke:"none"});const R=p.insert((()=>O),":first-child");const P=p.insert((()=>K));if(e.icon){const t=p.append("g");t.html(`${await(0,a.WY)(e.icon,{height:d,width:d,fallbackPrefix:""})}`);const r=t.node().getBBox();const i=r.width;const n=r.height;const o=r.x;const s=r.y;t.attr("transform",`translate(${-i/2-o},${b?g.height/2+_/2-n/2-s:-g.height/2-_/2-n/2-s})`);t.attr("style",`color: ${S.get("stroke")??v};`)}y.attr("transform",`translate(${-g.width/2-(g.x-(g.left??0))},${b?-I/2:I/2-g.height})`);R.attr("transform",`translate(${0},${b?g.height/2+_/2:-g.height/2-_/2})`);u(e,P);e.intersect=function(t){s.Rm.info("iconSquare intersect",e,t);if(!e.label){return Z.rect(e,t)}const r=e.x??0;const i=e.y??0;const a=e.height??0;let n=[];if(b){n=[{x:r-g.width/2,y:i-a/2},{x:r+g.width/2,y:i-a/2},{x:r+g.width/2,y:i-a/2+g.height+_},{x:r+C/2,y:i-a/2+g.height+_},{x:r+C/2,y:i+a/2},{x:r-C/2,y:i+a/2},{x:r-C/2,y:i-a/2+g.height+_},{x:r-g.width/2,y:i-a/2+g.height+_}]}else{n=[{x:r-C/2,y:i-a/2},{x:r+C/2,y:i-a/2},{x:r+C/2,y:i-a/2+x},{x:r+g.width/2,y:i-a/2+x},{x:r+g.width/2/2,y:i+a/2},{x:r-g.width/2,y:i+a/2},{x:r-g.width/2,y:i-a/2+x},{x:r-C/2,y:i-a/2+x}]}const o=Z.polygon(e,n,t);return o};return p}(0,s.K2)(_t,"iconSquare");async function Ft(t,e,{config:{flowchart:r}}){const i=new Image;i.src=e?.img??"";await i.decode();const a=Number(i.naturalWidth.toString().replace("px",""));const n=Number(i.naturalHeight.toString().replace("px",""));e.imageAspectRatio=a/n;const{labelStyles:o}=L(e);e.labelStyle=o;const l=r?.wrappingWidth;e.defaultWidth=r?.wrappingWidth;const d=Math.max(e.label?l??0:0,e?.assetWidth??a);const f=e.constraint==="on"?e?.assetHeight?e.assetHeight*e.imageAspectRatio:d:d;const p=e.constraint==="on"?f/e.imageAspectRatio:e?.assetHeight??n;e.width=Math.max(f,l??0);const{shapeSvg:g,bbox:m,label:y}=await h(t,e,"image-shape default");const b=e.pos==="t";const x=-f/2;const C=-p/2;const v=e.label?8:0;const k=c.A.svg(g);const w=M(e,{});if(e.look!=="handDrawn"){w.roughness=0;w.fillStyle="solid"}const S=k.rectangle(x,C,f,p,w);const A=Math.max(f,m.width);const T=p+m.height+v;const B=k.rectangle(-A/2,-T/2,A,T,{...w,fill:"none",stroke:"none"});const _=g.insert((()=>S),":first-child");const F=g.insert((()=>B));if(e.img){const t=g.append("image");t.attr("href",e.img);t.attr("width",f);t.attr("height",p);t.attr("preserveAspectRatio","none");t.attr("transform",`translate(${-f/2},${b?T/2-p:-T/2})`)}y.attr("transform",`translate(${-m.width/2-(m.x-(m.left??0))},${b?-p/2-m.height/2-v/2:p/2-m.height/2+v/2})`);_.attr("transform",`translate(${0},${b?m.height/2+v/2:-m.height/2-v/2})`);u(e,F);e.intersect=function(t){s.Rm.info("iconSquare intersect",e,t);if(!e.label){return Z.rect(e,t)}const r=e.x??0;const i=e.y??0;const a=e.height??0;let n=[];if(b){n=[{x:r-m.width/2,y:i-a/2},{x:r+m.width/2,y:i-a/2},{x:r+m.width/2,y:i-a/2+m.height+v},{x:r+f/2,y:i-a/2+m.height+v},{x:r+f/2,y:i+a/2},{x:r-f/2,y:i+a/2},{x:r-f/2,y:i-a/2+m.height+v},{x:r-m.width/2,y:i-a/2+m.height+v}]}else{n=[{x:r-f/2,y:i-a/2},{x:r+f/2,y:i-a/2},{x:r+f/2,y:i-a/2+p},{x:r+m.width/2,y:i-a/2+p},{x:r+m.width/2/2,y:i+a/2},{x:r-m.width/2,y:i+a/2},{x:r-m.width/2,y:i-a/2+p},{x:r-f/2,y:i-a/2+p}]}const o=Z.polygon(e,n,t);return o};return g}(0,s.K2)(Ft,"imageSquare");async function $t(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=Math.max(n.width+(e.padding??0)*2,e?.width??0);const s=Math.max(n.height+(e.padding??0)*2,e?.height??0);const l=[{x:0,y:0},{x:o,y:0},{x:o+3*s/6,y:-s},{x:-3*s/6,y:-s}];let d;const{cssStyles:g}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{});const i=p(l);const n=t.path(i,r);d=a.insert((()=>n),":first-child").attr("transform",`translate(${-o/2}, ${s/2})`);if(g){d.attr("style",g)}}else{d=et(a,o,s,l)}if(i){d.attr("style",i)}e.width=o;e.height=s;u(e,d);e.intersect=function(t){return Z.polygon(e,l,t)};return a}(0,s.K2)($t,"inv_trapezoid");async function Et(t,e,r){const{labelStyles:i,nodeStyles:a}=L(e);e.labelStyle=i;const{shapeSvg:n,bbox:s}=await h(t,e,f(e));const l=Math.max(s.width+r.labelPaddingX*2,e?.width||0);const d=Math.max(s.height+r.labelPaddingY*2,e?.height||0);const p=-l/2;const g=-d/2;let m;let{rx:y,ry:b}=e;const{cssStyles:x}=e;if(r?.rx&&r.ry){y=r.rx;b=r.ry}if(e.look==="handDrawn"){const t=c.A.svg(n);const r=M(e,{});const i=y||b?t.path(w(p,g,l,d,y||0),r):t.rectangle(p,g,l,d,r);m=n.insert((()=>i),":first-child");m.attr("class","basic label-container").attr("style",(0,o.KL)(x))}else{m=n.insert("rect",":first-child");m.attr("class","basic label-container").attr("style",a).attr("rx",(0,o.KL)(y)).attr("ry",(0,o.KL)(b)).attr("x",p).attr("y",g).attr("width",l).attr("height",d)}u(e,m);e.intersect=function(t){return Z.rect(e,t)};return n}(0,s.K2)(Et,"drawRect");async function Ot(t,e){const{shapeSvg:r,bbox:i,label:a}=await h(t,e,"label");const n=r.insert("rect",":first-child");const o=.1;const s=.1;n.attr("width",o).attr("height",s);r.attr("class","label edgeLabel");a.attr("transform",`translate(${-(i.width/2)-(i.x-(i.left??0))}, ${-(i.height/2)-(i.y-(i.top??0))})`);u(e,n);e.intersect=function(t){return Z.rect(e,t)};return r}(0,s.K2)(Ot,"labelRect");async function Dt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=Math.max(n.width+(e.padding??0),e?.width??0);const s=Math.max(n.height+(e.padding??0),e?.height??0);const l=[{x:0,y:0},{x:o+3*s/6,y:0},{x:o,y:-s},{x:-(3*s)/6,y:-s}];let d;const{cssStyles:g}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{});const i=p(l);const n=t.path(i,r);d=a.insert((()=>n),":first-child").attr("transform",`translate(${-o/2}, ${s/2})`);if(g){d.attr("style",g)}}else{d=et(a,o,s,l)}if(i){d.attr("style",i)}e.width=o;e.height=s;u(e,d);e.intersect=function(t){return Z.polygon(e,l,t)};return a}(0,s.K2)(Dt,"lean_left");async function It(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=Math.max(n.width+(e.padding??0),e?.width??0);const s=Math.max(n.height+(e.padding??0),e?.height??0);const l=[{x:-3*s/6,y:0},{x:o,y:0},{x:o+3*s/6,y:-s},{x:0,y:-s}];let d;const{cssStyles:g}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{});const i=p(l);const n=t.path(i,r);d=a.insert((()=>n),":first-child").attr("transform",`translate(${-o/2}, ${s/2})`);if(g){d.attr("style",g)}}else{d=et(a,o,s,l)}if(i){d.attr("style",i)}e.width=o;e.height=s;u(e,d);e.intersect=function(t){return Z.polygon(e,l,t)};return a}(0,s.K2)(It,"lean_right");function Kt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.label="";e.labelStyle=r;const a=t.insert("g").attr("class",f(e)).attr("id",e.domId??e.id);const{cssStyles:n}=e;const o=Math.max(35,e?.width??0);const l=Math.max(35,e?.height??0);const h=7;const d=[{x:o,y:0},{x:0,y:l+h/2},{x:o-2*h,y:l+h/2},{x:0,y:2*l},{x:o,y:l-h/2},{x:2*h,y:l-h/2}];const g=c.A.svg(a);const m=M(e,{});if(e.look!=="handDrawn"){m.roughness=0;m.fillStyle="solid"}const y=p(d);const b=g.path(y,m);const x=a.insert((()=>b),":first-child");if(n&&e.look!=="handDrawn"){x.selectAll("path").attr("style",n)}if(i&&e.look!=="handDrawn"){x.selectAll("path").attr("style",i)}x.attr("transform",`translate(-${o/2},${-l})`);u(e,x);e.intersect=function(t){s.Rm.info("lightningBolt intersect",e,t);const r=Z.polygon(e,d,t);return r};return a}(0,s.K2)(Kt,"lightningBolt");var Rt=(0,s.K2)(((t,e,r,i,a,n,o)=>[`M${t},${e+n}`,`a${a},${n} 0,0,0 ${r},0`,`a${a},${n} 0,0,0 ${-r},0`,`l0,${i}`,`a${a},${n} 0,0,0 ${r},0`,`l0,${-i}`,`M${t},${e+n+o}`,`a${a},${n} 0,0,0 ${r},0`].join(" ")),"createCylinderPathD");var Pt=(0,s.K2)(((t,e,r,i,a,n,o)=>[`M${t},${e+n}`,`M${t+r},${e+n}`,`a${a},${n} 0,0,0 ${-r},0`,`l0,${i}`,`a${a},${n} 0,0,0 ${r},0`,`l0,${-i}`,`M${t},${e+n+o}`,`a${a},${n} 0,0,0 ${r},0`].join(" ")),"createOuterCylinderPathD");var zt=(0,s.K2)(((t,e,r,i,a,n)=>[`M${t-r/2},${-i/2}`,`a${a},${n} 0,0,0 ${r},0`].join(" ")),"createInnerCylinderPathD");async function qt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:s}=await h(t,e,f(e));const l=Math.max(n.width+(e.padding??0),e.width??0);const d=l/2;const p=d/(2.5+l/50);const g=Math.max(n.height+p+(e.padding??0),e.height??0);const m=g*.1;let y;const{cssStyles:b}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=Pt(0,0,l,g,d,p,m);const i=zt(0,p,l,g,d,p);const n=M(e,{});const o=t.path(r,n);const s=t.path(i,n);const h=a.insert((()=>s),":first-child");h.attr("class","line");y=a.insert((()=>o),":first-child");y.attr("class","basic label-container");if(b){y.attr("style",b)}}else{const t=Rt(0,0,l,g,d,p,m);y=a.insert("path",":first-child").attr("d",t).attr("class","basic label-container").attr("style",(0,o.KL)(b)).attr("style",i)}y.attr("label-offset-y",p);y.attr("transform",`translate(${-l/2}, ${-(g/2+p)})`);u(e,y);s.attr("transform",`translate(${-(n.width/2)-(n.x-(n.left??0))}, ${-(n.height/2)+p-(n.y-(n.top??0))})`);e.intersect=function(t){const r=Z.rect(e,t);const i=r.x-(e.x??0);if(d!=0&&(Math.abs(i)<(e.width??0)/2||Math.abs(i)==(e.width??0)/2&&Math.abs(r.y-(e.y??0))>(e.height??0)/2-p)){let a=p*p*(1-i*i/(d*d));if(a>0){a=Math.sqrt(a)}a=p-a;if(t.y-(e.y??0)>0){a=-a}r.y+=a}return r};return a}(0,s.K2)(qt,"linedCylinder");async function Nt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const s=Math.max(n.width+(e.padding??0)*2,e?.width??0);const l=Math.max(n.height+(e.padding??0)*2,e?.height??0);const d=l/4;const p=l+d;const{cssStyles:m}=e;const y=c.A.svg(a);const b=M(e,{});if(e.look!=="handDrawn"){b.roughness=0;b.fillStyle="solid"}const x=[{x:-s/2-s/2*.1,y:-p/2},{x:-s/2-s/2*.1,y:p/2},...g(-s/2-s/2*.1,p/2,s/2+s/2*.1,p/2,d,.8),{x:s/2+s/2*.1,y:-p/2},{x:-s/2-s/2*.1,y:-p/2},{x:-s/2,y:-p/2},{x:-s/2,y:p/2*1.1},{x:-s/2,y:-p/2}];const C=y.polygon(x.map((t=>[t.x,t.y])),b);const v=a.insert((()=>C),":first-child");v.attr("class","basic label-container");if(m&&e.look!=="handDrawn"){v.selectAll("path").attr("style",m)}if(i&&e.look!=="handDrawn"){v.selectAll("path").attr("style",i)}v.attr("transform",`translate(0,${-d/2})`);o.attr("transform",`translate(${-s/2+(e.padding??0)+s/2*.1/2-(n.x-(n.left??0))},${-l/2+(e.padding??0)-d/2-(n.y-(n.top??0))})`);u(e,v);e.intersect=function(t){const r=Z.polygon(e,x,t);return r};return a}(0,s.K2)(Nt,"linedWaveEdgedRect");async function Wt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const s=Math.max(n.width+(e.padding??0)*2,e?.width??0);const l=Math.max(n.height+(e.padding??0)*2,e?.height??0);const d=5;const g=-s/2;const m=-l/2;const{cssStyles:y}=e;const b=c.A.svg(a);const x=M(e,{});const C=[{x:g-d,y:m+d},{x:g-d,y:m+l+d},{x:g+s-d,y:m+l+d},{x:g+s-d,y:m+l},{x:g+s,y:m+l},{x:g+s,y:m+l-d},{x:g+s+d,y:m+l-d},{x:g+s+d,y:m-d},{x:g+d,y:m-d},{x:g+d,y:m},{x:g,y:m},{x:g,y:m+d}];const v=[{x:g,y:m+d},{x:g+s-d,y:m+d},{x:g+s-d,y:m+l},{x:g+s,y:m+l},{x:g+s,y:m},{x:g,y:m}];if(e.look!=="handDrawn"){x.roughness=0;x.fillStyle="solid"}const k=p(C);const w=b.path(k,x);const S=p(v);const A=b.path(S,{...x,fill:"none"});const T=a.insert((()=>A),":first-child");T.insert((()=>w),":first-child");T.attr("class","basic label-container");if(y&&e.look!=="handDrawn"){T.selectAll("path").attr("style",y)}if(i&&e.look!=="handDrawn"){T.selectAll("path").attr("style",i)}o.attr("transform",`translate(${-(n.width/2)-d-(n.x-(n.left??0))}, ${-(n.height/2)+d-(n.y-(n.top??0))})`);u(e,T);e.intersect=function(t){const r=Z.polygon(e,C,t);return r};return a}(0,s.K2)(Wt,"multiRect");async function jt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const s=Math.max(n.width+(e.padding??0)*2,e?.width??0);const l=Math.max(n.height+(e.padding??0)*2,e?.height??0);const d=l/4;const m=l+d;const y=-s/2;const b=-m/2;const x=5;const{cssStyles:C}=e;const v=g(y-x,b+m+x,y+s-x,b+m+x,d,.8);const k=v?.[v.length-1];const w=[{x:y-x,y:b+x},{x:y-x,y:b+m+x},...v,{x:y+s-x,y:k.y-x},{x:y+s,y:k.y-x},{x:y+s,y:k.y-2*x},{x:y+s+x,y:k.y-2*x},{x:y+s+x,y:b-x},{x:y+x,y:b-x},{x:y+x,y:b},{x:y,y:b},{x:y,y:b+x}];const S=[{x:y,y:b+x},{x:y+s-x,y:b+x},{x:y+s-x,y:k.y-x},{x:y+s,y:k.y-x},{x:y+s,y:b},{x:y,y:b}];const A=c.A.svg(a);const T=M(e,{});if(e.look!=="handDrawn"){T.roughness=0;T.fillStyle="solid"}const B=p(w);const _=A.path(B,T);const F=p(S);const $=A.path(F,T);const E=a.insert((()=>_),":first-child");E.insert((()=>$));E.attr("class","basic label-container");if(C&&e.look!=="handDrawn"){E.selectAll("path").attr("style",C)}if(i&&e.look!=="handDrawn"){E.selectAll("path").attr("style",i)}E.attr("transform",`translate(0,${-d/2})`);o.attr("transform",`translate(${-(n.width/2)-x-(n.x-(n.left??0))}, ${-(n.height/2)+x-d/2-(n.y-(n.top??0))})`);u(e,E);e.intersect=function(t){const r=Z.polygon(e,w,t);return r};return a}(0,s.K2)(jt,"multiWaveEdgedRectangle");async function Ht(t,e,{config:{themeVariables:r}}){const{labelStyles:i,nodeStyles:a}=L(e);e.labelStyle=i;const n=e.useHtmlLabels||(0,s.zj)().flowchart?.htmlLabels!==false;if(!n){e.centerLabel=true}const{shapeSvg:o,bbox:l}=await h(t,e,f(e));const d=Math.max(l.width+(e.padding??0)*2,e?.width??0);const p=Math.max(l.height+(e.padding??0)*2,e?.height??0);const g=-d/2;const m=-p/2;const{cssStyles:y}=e;const b=c.A.svg(o);const x=M(e,{fill:r.noteBkgColor,stroke:r.noteBorderColor});if(e.look!=="handDrawn"){x.roughness=0;x.fillStyle="solid"}const C=b.rectangle(g,m,d,p,x);const v=o.insert((()=>C),":first-child");v.attr("class","basic label-container");if(y&&e.look!=="handDrawn"){v.selectAll("path").attr("style",y)}if(a&&e.look!=="handDrawn"){v.selectAll("path").attr("style",a)}u(e,v);e.intersect=function(t){return Z.rect(e,t)};return o}(0,s.K2)(Ht,"note");var Yt=(0,s.K2)(((t,e,r)=>[`M${t+r/2},${e}`,`L${t+r},${e-r/2}`,`L${t+r/2},${e-r}`,`L${t},${e-r/2}`,"Z"].join(" ")),"createDecisionBoxPathD");async function Ut(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=n.width+e.padding;const l=n.height+e.padding;const d=o+l;const p=[{x:d/2,y:0},{x:d,y:-d/2},{x:d/2,y:-d},{x:0,y:-d/2}];let g;const{cssStyles:m}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{});const i=Yt(0,0,d);const n=t.path(i,r);g=a.insert((()=>n),":first-child").attr("transform",`translate(${-d/2}, ${d/2})`);if(m){g.attr("style",m)}}else{g=et(a,d,d,p)}if(i){g.attr("style",i)}u(e,g);e.intersect=function(t){s.Rm.debug("APA12 Intersect called SPLIT\npoint:",t,"\nnode:\n",e,"\nres:",Z.polygon(e,p,t));return Z.polygon(e,p,t)};return a}(0,s.K2)(Ut,"question");async function Gt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const s=Math.max(n.width+(e.padding??0),e?.width??0);const l=Math.max(n.height+(e.padding??0),e?.height??0);const d=-s/2;const g=-l/2;const m=g/2;const y=[{x:d+m,y:g},{x:d,y:0},{x:d+m,y:-g},{x:-d,y:-g},{x:-d,y:g}];const{cssStyles:b}=e;const x=c.A.svg(a);const C=M(e,{});if(e.look!=="handDrawn"){C.roughness=0;C.fillStyle="solid"}const v=p(y);const k=x.path(v,C);const w=a.insert((()=>k),":first-child");w.attr("class","basic label-container");if(b&&e.look!=="handDrawn"){w.selectAll("path").attr("style",b)}if(i&&e.look!=="handDrawn"){w.selectAll("path").attr("style",i)}w.attr("transform",`translate(${-m/2},0)`);o.attr("transform",`translate(${-m/2-n.width/2-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`);u(e,w);e.intersect=function(t){return Z.polygon(e,y,t)};return a}(0,s.K2)(Gt,"rect_left_inv_arrow");async function Vt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;let a;if(!e.cssClasses){a="node default"}else{a="node "+e.cssClasses}const n=t.insert("g").attr("class",a).attr("id",e.domId||e.id);const o=n.insert("g");const h=n.insert("g").attr("class","label").attr("style",i);const d=e.description;const f=e.label;const p=h.node().appendChild(await k(f,e.labelStyle,true,true));let g={width:0,height:0};if((0,s._3)((0,s.D7)()?.flowchart?.htmlLabels)){const t=p.children[0];const e=(0,l.Ltv)(p);g=t.getBoundingClientRect();e.attr("width",g.width);e.attr("height",g.height)}s.Rm.info("Text 2",d);const m=d||[];const y=p.getBBox();const b=h.node().appendChild(await k(m.join?m.join("
"):m,e.labelStyle,true,true));const x=b.children[0];const C=(0,l.Ltv)(b);g=x.getBoundingClientRect();C.attr("width",g.width);C.attr("height",g.height);const v=(e.padding||0)/2;(0,l.Ltv)(b).attr("transform","translate( "+(g.width>y.width?0:(y.width-g.width)/2)+", "+(y.height+v+5)+")");(0,l.Ltv)(p).attr("transform","translate( "+(g.width{s.Rm.debug("Rough node insert CXC",i);return a}),":first-child");_=n.insert((()=>{s.Rm.debug("Rough node insert CXC",i);return i}),":first-child")}else{_=o.insert("rect",":first-child");F=o.insert("line");_.attr("class","outer title-state").attr("style",i).attr("x",-g.width/2-v).attr("y",-g.height/2-v).attr("width",g.width+(e.padding||0)).attr("height",g.height+(e.padding||0));F.attr("class","divider").attr("x1",-g.width/2-v).attr("x2",g.width/2+v).attr("y1",-g.height/2-v+y.height+v).attr("y2",-g.height/2-v+y.height+v)}u(e,_);e.intersect=function(t){return Z.rect(e,t)};return n}(0,s.K2)(Vt,"rectWithTitle");async function Xt(t,e){const r={rx:5,ry:5,classes:"",labelPaddingX:(e?.padding||0)*1,labelPaddingY:(e?.padding||0)*1};return Et(t,e,r)}(0,s.K2)(Xt,"roundedRect");async function Zt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:s}=await h(t,e,f(e));const l=e?.padding??0;const d=Math.max(n.width+(e.padding??0)*2,e?.width??0);const p=Math.max(n.height+(e.padding??0)*2,e?.height??0);const g=-n.width/2-l;const m=-n.height/2-l;const{cssStyles:y}=e;const b=c.A.svg(a);const x=M(e,{});if(e.look!=="handDrawn"){x.roughness=0;x.fillStyle="solid"}const C=[{x:g,y:m},{x:g+d+8,y:m},{x:g+d+8,y:m+p},{x:g-8,y:m+p},{x:g-8,y:m},{x:g,y:m},{x:g,y:m+p}];const v=b.polygon(C.map((t=>[t.x,t.y])),x);const k=a.insert((()=>v),":first-child");k.attr("class","basic label-container").attr("style",(0,o.KL)(y));if(i&&e.look!=="handDrawn"){k.selectAll("path").attr("style",i)}if(y&&e.look!=="handDrawn"){k.selectAll("path").attr("style",i)}s.attr("transform",`translate(${-d/2+4+(e.padding??0)-(n.x-(n.left??0))},${-p/2+(e.padding??0)-(n.y-(n.top??0))})`);u(e,k);e.intersect=function(t){return Z.rect(e,t)};return a}(0,s.K2)(Zt,"shadedProcess");async function Jt(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const s=Math.max(n.width+(e.padding??0)*2,e?.width??0);const l=Math.max(n.height+(e.padding??0)*2,e?.height??0);const d=-s/2;const g=-l/2;const{cssStyles:m}=e;const y=c.A.svg(a);const b=M(e,{});if(e.look!=="handDrawn"){b.roughness=0;b.fillStyle="solid"}const x=[{x:d,y:g},{x:d,y:g+l},{x:d+s,y:g+l},{x:d+s,y:g-l/2}];const C=p(x);const v=y.path(C,b);const k=a.insert((()=>v),":first-child");k.attr("class","basic label-container");if(m&&e.look!=="handDrawn"){k.selectChildren("path").attr("style",m)}if(i&&e.look!=="handDrawn"){k.selectChildren("path").attr("style",i)}k.attr("transform",`translate(0, ${l/4})`);o.attr("transform",`translate(${-s/2+(e.padding??0)-(n.x-(n.left??0))}, ${-l/4+(e.padding??0)-(n.y-(n.top??0))})`);u(e,k);e.intersect=function(t){const r=Z.polygon(e,x,t);return r};return a}(0,s.K2)(Jt,"slopedRect");async function Qt(t,e){const r={rx:0,ry:0,classes:"",labelPaddingX:(e?.padding||0)*2,labelPaddingY:(e?.padding||0)*1};return Et(t,e,r)}(0,s.K2)(Qt,"squareRect");async function te(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const s=n.height+e.padding;const l=n.width+s/4+e.padding;let d;const{cssStyles:p}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{});const i=w(-l/2,-s/2,l,s,s/2);const n=t.path(i,r);d=a.insert((()=>n),":first-child");d.attr("class","basic label-container").attr("style",(0,o.KL)(p))}else{d=a.insert("rect",":first-child");d.attr("class","basic label-container").attr("style",i).attr("rx",s/2).attr("ry",s/2).attr("x",-l/2).attr("y",-s/2).attr("width",l).attr("height",s)}u(e,d);e.intersect=function(t){return Z.rect(e,t)};return a}(0,s.K2)(te,"stadium");async function ee(t,e){const r={rx:5,ry:5,classes:"flowchart-node"};return Et(t,e,r)}(0,s.K2)(ee,"state");function re(t,e,{config:{themeVariables:r}}){const{labelStyles:i,nodeStyles:a}=L(e);e.labelStyle=i;const{cssStyles:n}=e;const{lineColor:o,stateBorder:s,nodeBorder:l}=r;const h=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);const d=c.A.svg(h);const f=M(e,{});if(e.look!=="handDrawn"){f.roughness=0;f.fillStyle="solid"}const p=d.circle(0,0,14,{...f,stroke:o,strokeWidth:2});const g=s??l;const m=d.circle(0,0,5,{...f,fill:g,stroke:g,strokeWidth:2,fillStyle:"solid"});const y=h.insert((()=>p),":first-child");y.insert((()=>m));if(n){y.selectAll("path").attr("style",n)}if(a){y.selectAll("path").attr("style",a)}u(e,y);e.intersect=function(t){return Z.circle(e,7,t)};return h}(0,s.K2)(re,"stateEnd");function ie(t,e,{config:{themeVariables:r}}){const{lineColor:i}=r;const a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let n;if(e.look==="handDrawn"){const t=c.A.svg(a);const e=t.circle(0,0,14,S(i));n=a.insert((()=>e));n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else{n=a.insert("circle",":first-child");n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}u(e,n);e.intersect=function(t){return Z.circle(e,7,t)};return a}(0,s.K2)(ie,"stateStart");async function ae(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const s=(e?.padding||0)/2;const l=n.width+e.padding;const d=n.height+e.padding;const p=-n.width/2-s;const g=-n.height/2-s;const m=[{x:0,y:0},{x:l,y:0},{x:l,y:-d},{x:0,y:-d},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-d},{x:-8,y:-d},{x:-8,y:0}];if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{});const i=t.rectangle(p-8,g,l+16,d,r);const n=t.line(p,g,p,g+d,r);const s=t.line(p+l,g,p+l,g+d,r);a.insert((()=>n),":first-child");a.insert((()=>s),":first-child");const h=a.insert((()=>i),":first-child");const{cssStyles:f}=e;h.attr("class","basic label-container").attr("style",(0,o.KL)(f));u(e,h)}else{const t=et(a,l,d,m);if(i){t.attr("style",i)}u(e,t)}e.intersect=function(t){return Z.polygon(e,m,t)};return a}(0,s.K2)(ae,"subroutine");async function ne(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=Math.max(n.width+(e.padding??0)*2,e?.width??0);const s=Math.max(n.height+(e.padding??0)*2,e?.height??0);const l=-o/2;const d=-s/2;const g=.2*s;const m=.2*s;const{cssStyles:y}=e;const b=c.A.svg(a);const x=M(e,{});const C=[{x:l-g/2,y:d},{x:l+o+g/2,y:d},{x:l+o+g/2,y:d+s},{x:l-g/2,y:d+s}];const v=[{x:l+o-g/2,y:d+s},{x:l+o+g/2,y:d+s},{x:l+o+g/2,y:d+s-m}];if(e.look!=="handDrawn"){x.roughness=0;x.fillStyle="solid"}const k=p(C);const w=b.path(k,x);const S=p(v);const A=b.path(S,{...x,fillStyle:"solid"});const T=a.insert((()=>A),":first-child");T.insert((()=>w),":first-child");T.attr("class","basic label-container");if(y&&e.look!=="handDrawn"){T.selectAll("path").attr("style",y)}if(i&&e.look!=="handDrawn"){T.selectAll("path").attr("style",i)}u(e,T);e.intersect=function(t){const r=Z.polygon(e,C,t);return r};return a}(0,s.K2)(ne,"taggedRect");async function oe(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const s=Math.max(n.width+(e.padding??0)*2,e?.width??0);const l=Math.max(n.height+(e.padding??0)*2,e?.height??0);const d=l/4;const m=.2*s;const y=.2*l;const b=l+d;const{cssStyles:x}=e;const C=c.A.svg(a);const v=M(e,{});if(e.look!=="handDrawn"){v.roughness=0;v.fillStyle="solid"}const k=[{x:-s/2-s/2*.1,y:b/2},...g(-s/2-s/2*.1,b/2,s/2+s/2*.1,b/2,d,.8),{x:s/2+s/2*.1,y:-b/2},{x:-s/2-s/2*.1,y:-b/2}];const w=-s/2+s/2*.1;const S=-b/2-y*.4;const A=[{x:w+s-m,y:(S+l)*1.4},{x:w+s,y:S+l-y},{x:w+s,y:(S+l)*.9},...g(w+s,(S+l)*1.3,w+s-m,(S+l)*1.5,-l*.03,.5)];const T=p(k);const B=C.path(T,v);const _=p(A);const F=C.path(_,{...v,fillStyle:"solid"});const $=a.insert((()=>F),":first-child");$.insert((()=>B),":first-child");$.attr("class","basic label-container");if(x&&e.look!=="handDrawn"){$.selectAll("path").attr("style",x)}if(i&&e.look!=="handDrawn"){$.selectAll("path").attr("style",i)}$.attr("transform",`translate(0,${-d/2})`);o.attr("transform",`translate(${-s/2+(e.padding??0)-(n.x-(n.left??0))},${-l/2+(e.padding??0)-d/2-(n.y-(n.top??0))})`);u(e,$);e.intersect=function(t){const r=Z.polygon(e,k,t);return r};return a}(0,s.K2)(oe,"taggedWaveEdgedRectangle");async function se(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=Math.max(n.width+e.padding,e?.width||0);const s=Math.max(n.height+e.padding,e?.height||0);const l=-o/2;const c=-s/2;const d=a.insert("rect",":first-child");d.attr("class","text").attr("style",i).attr("rx",0).attr("ry",0).attr("x",l).attr("y",c).attr("width",o).attr("height",s);u(e,d);e.intersect=function(t){return Z.rect(e,t)};return a}(0,s.K2)(se,"text");var le=(0,s.K2)(((t,e,r,i,a,n)=>`M${t},${e}\n a${a},${n} 0,0,1 ${0},${-i}\n l${r},${0}\n a${a},${n} 0,0,1 ${0},${i}\n M${r},${-i}\n a${a},${n} 0,0,0 ${0},${i}\n l${-r},${0}`),"createCylinderPathD");var ce=(0,s.K2)(((t,e,r,i,a,n)=>[`M${t},${e}`,`M${t+r},${e}`,`a${a},${n} 0,0,0 ${0},${-i}`,`l${-r},0`,`a${a},${n} 0,0,0 ${0},${i}`,`l${r},0`].join(" ")),"createOuterCylinderPathD");var he=(0,s.K2)(((t,e,r,i,a,n)=>[`M${t+r/2},${-i/2}`,`a${a},${n} 0,0,0 0,${i}`].join(" ")),"createInnerCylinderPathD");async function de(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:s,halfPadding:l}=await h(t,e,f(e));const d=e.look==="neo"?l*2:l;const p=n.height+d;const g=p/2;const m=g/(2.5+p/50);const y=n.width+m+d;const{cssStyles:b}=e;let x;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=ce(0,0,y,p,m,g);const i=he(0,0,y,p,m,g);const n=t.path(r,M(e,{}));const o=t.path(i,M(e,{fill:"none"}));x=a.insert((()=>o),":first-child");x=a.insert((()=>n),":first-child");x.attr("class","basic label-container");if(b){x.attr("style",b)}}else{const t=le(0,0,y,p,m,g);x=a.insert("path",":first-child").attr("d",t).attr("class","basic label-container").attr("style",(0,o.KL)(b)).attr("style",i);x.attr("class","basic label-container");if(b){x.selectAll("path").attr("style",b)}if(i){x.selectAll("path").attr("style",i)}}x.attr("label-offset-x",m);x.attr("transform",`translate(${-y/2}, ${p/2} )`);s.attr("transform",`translate(${-(n.width/2)-m-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`);u(e,x);e.intersect=function(t){const r=Z.rect(e,t);const i=r.y-(e.y??0);if(g!=0&&(Math.abs(i)<(e.height??0)/2||Math.abs(i)==(e.height??0)/2&&Math.abs(r.x-(e.x??0))>(e.width??0)/2-m)){let a=m*m*(1-i*i/(g*g));if(a!=0){a=Math.sqrt(Math.abs(a))}a=m-a;if(t.x-(e.x??0)>0){a=-a}r.x+=a}return r};return a}(0,s.K2)(de,"tiltedCylinder");async function ue(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=n.width+e.padding;const s=n.height+e.padding;const l=[{x:-3*s/6,y:0},{x:o+3*s/6,y:0},{x:o,y:-s},{x:0,y:-s}];let d;const{cssStyles:g}=e;if(e.look==="handDrawn"){const t=c.A.svg(a);const r=M(e,{});const i=p(l);const n=t.path(i,r);d=a.insert((()=>n),":first-child").attr("transform",`translate(${-o/2}, ${s/2})`);if(g){d.attr("style",g)}}else{d=et(a,o,s,l)}if(i){d.attr("style",i)}e.width=o;e.height=s;u(e,d);e.intersect=function(t){return Z.polygon(e,l,t)};return a}(0,s.K2)(ue,"trapezoid");async function fe(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=60,s=20;const l=Math.max(o,n.width+(e.padding??0)*2,e?.width??0);const d=Math.max(s,n.height+(e.padding??0)*2,e?.height??0);const{cssStyles:g}=e;const m=c.A.svg(a);const y=M(e,{});if(e.look!=="handDrawn"){y.roughness=0;y.fillStyle="solid"}const b=[{x:-l/2*.8,y:-d/2},{x:l/2*.8,y:-d/2},{x:l/2,y:-d/2*.6},{x:l/2,y:d/2},{x:-l/2,y:d/2},{x:-l/2,y:-d/2*.6}];const x=p(b);const C=m.path(x,y);const v=a.insert((()=>C),":first-child");v.attr("class","basic label-container");if(g&&e.look!=="handDrawn"){v.selectChildren("path").attr("style",g)}if(i&&e.look!=="handDrawn"){v.selectChildren("path").attr("style",i)}u(e,v);e.intersect=function(t){const r=Z.polygon(e,b,t);return r};return a}(0,s.K2)(fe,"trapezoidalPentagon");async function pe(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const l=(0,s._3)((0,s.D7)().flowchart?.htmlLabels);const d=n.width+(e.padding??0);const g=d+n.height;const m=d+n.height;const y=[{x:0,y:0},{x:m,y:0},{x:m/2,y:-g}];const{cssStyles:b}=e;const x=c.A.svg(a);const C=M(e,{});if(e.look!=="handDrawn"){C.roughness=0;C.fillStyle="solid"}const v=p(y);const k=x.path(v,C);const w=a.insert((()=>k),":first-child").attr("transform",`translate(${-g/2}, ${g/2})`);if(b&&e.look!=="handDrawn"){w.selectChildren("path").attr("style",b)}if(i&&e.look!=="handDrawn"){w.selectChildren("path").attr("style",i)}e.width=d;e.height=g;u(e,w);o.attr("transform",`translate(${-n.width/2-(n.x-(n.left??0))}, ${g/2-(n.height+(e.padding??0)/(l?2:1)-(n.y-(n.top??0)))})`);e.intersect=function(t){s.Rm.info("Triangle intersect",e,y,t);return Z.polygon(e,y,t)};return a}(0,s.K2)(pe,"triangle");async function ge(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const s=Math.max(n.width+(e.padding??0)*2,e?.width??0);const l=Math.max(n.height+(e.padding??0)*2,e?.height??0);const d=l/8;const m=l+d;const{cssStyles:y}=e;const b=70;const x=b-s;const C=x>0?x/2:0;const v=c.A.svg(a);const k=M(e,{});if(e.look!=="handDrawn"){k.roughness=0;k.fillStyle="solid"}const w=[{x:-s/2-C,y:m/2},...g(-s/2-C,m/2,s/2+C,m/2,d,.8),{x:s/2+C,y:-m/2},{x:-s/2-C,y:-m/2}];const S=p(w);const A=v.path(S,k);const T=a.insert((()=>A),":first-child");T.attr("class","basic label-container");if(y&&e.look!=="handDrawn"){T.selectAll("path").attr("style",y)}if(i&&e.look!=="handDrawn"){T.selectAll("path").attr("style",i)}T.attr("transform",`translate(0,${-d/2})`);o.attr("transform",`translate(${-s/2+(e.padding??0)-(n.x-(n.left??0))},${-l/2+(e.padding??0)-d-(n.y-(n.top??0))})`);u(e,T);e.intersect=function(t){const r=Z.polygon(e,w,t);return r};return a}(0,s.K2)(ge,"waveEdgedRectangle");async function me(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n}=await h(t,e,f(e));const o=100;const s=50;const l=Math.max(n.width+(e.padding??0)*2,e?.width??0);const d=Math.max(n.height+(e.padding??0)*2,e?.height??0);const m=l/d;let y=l;let b=d;if(y>b*m){b=y/m}else{y=b*m}y=Math.max(y,o);b=Math.max(b,s);const x=Math.min(b*.2,b/4);const C=b+x*2;const{cssStyles:v}=e;const k=c.A.svg(a);const w=M(e,{});if(e.look!=="handDrawn"){w.roughness=0;w.fillStyle="solid"}const S=[{x:-y/2,y:C/2},...g(-y/2,C/2,y/2,C/2,x,1),{x:y/2,y:-C/2},...g(y/2,-C/2,-y/2,-C/2,x,-1)];const A=p(S);const T=k.path(A,w);const B=a.insert((()=>T),":first-child");B.attr("class","basic label-container");if(v&&e.look!=="handDrawn"){B.selectAll("path").attr("style",v)}if(i&&e.look!=="handDrawn"){B.selectAll("path").attr("style",i)}u(e,B);e.intersect=function(t){const r=Z.polygon(e,S,t);return r};return a}(0,s.K2)(me,"waveRectangle");async function ye(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const{shapeSvg:a,bbox:n,label:o}=await h(t,e,f(e));const s=Math.max(n.width+(e.padding??0)*2,e?.width??0);const l=Math.max(n.height+(e.padding??0)*2,e?.height??0);const d=5;const p=-s/2;const g=-l/2;const{cssStyles:m}=e;const y=c.A.svg(a);const b=M(e,{});const x=[{x:p-d,y:g-d},{x:p-d,y:g+l},{x:p+s,y:g+l},{x:p+s,y:g-d}];const C=`M${p-d},${g-d} L${p+s},${g-d} L${p+s},${g+l} L${p-d},${g+l} L${p-d},${g-d}\n M${p-d},${g} L${p+s},${g}\n M${p},${g-d} L${p},${g+l}`;if(e.look!=="handDrawn"){b.roughness=0;b.fillStyle="solid"}const v=y.path(C,b);const k=a.insert((()=>v),":first-child");k.attr("transform",`translate(${d/2}, ${d/2})`);k.attr("class","basic label-container");if(m&&e.look!=="handDrawn"){k.selectAll("path").attr("style",m)}if(i&&e.look!=="handDrawn"){k.selectAll("path").attr("style",i)}o.attr("transform",`translate(${-(n.width/2)+d/2-(n.x-(n.left??0))}, ${-(n.height/2)+d/2-(n.y-(n.top??0))})`);u(e,k);e.intersect=function(t){const r=Z.polygon(e,x,t);return r};return a}(0,s.K2)(ye,"windowPane");async function be(t,e){const r=e;if(r.alias){e.label=r.alias}if(e.look==="handDrawn"){const{themeVariables:r}=(0,s.zj)();const{background:i}=r;const a={...e,id:e.id+"-background",look:"default",cssStyles:["stroke: none",`fill: ${i}`]};await be(t,a)}const i=(0,s.zj)();e.useHtmlLabels=i.htmlLabels;let a=i.er?.diagramPadding??10;let n=i.er?.entityPadding??6;const{cssStyles:h}=e;const{labelStyles:d}=L(e);if(r.attributes.length===0&&e.label){const r={rx:0,ry:0,labelPaddingX:a,labelPaddingY:a*1.5,classes:""};if((0,o.Un)(e.label,i)+r.labelPaddingX*20){const t=m.width+a*2-(x+C+v+k);x+=t/A;C+=t/A;if(v>0){v+=t/A}if(k>0){k+=t/A}}const B=x+C+v+k;const _=c.A.svg(g);const F=M(e,{});if(e.look!=="handDrawn"){F.roughness=0;F.fillStyle="solid"}const $=Math.max(T.width+a*2,e?.width||0,B);const E=Math.max(T.height+(b[0]||y)+n,e?.height||0);const O=-$/2;const D=-E/2;g.selectAll("g:not(:first-child)").each(((t,e,r)=>{const i=(0,l.Ltv)(r[e]);const o=i.attr("transform");let s=0;let c=0;if(o){const t=RegExp(/translate\(([^,]+),([^)]+)\)/);const e=t.exec(o);if(e){s=parseFloat(e[1]);c=parseFloat(e[2]);if(i.attr("class").includes("attribute-name")){s+=x}else if(i.attr("class").includes("attribute-keys")){s+=x+C}else if(i.attr("class").includes("attribute-comment")){s+=x+C+v}}}i.attr("transform",`translate(${O+a/2+s}, ${c+D+m.height+n/2})`)}));g.select(".name").attr("transform","translate("+-m.width/2+", "+(D+n/2)+")");const I=_.rectangle(O,D,$,E,F);const K=g.insert((()=>I),":first-child").attr("style",h.join(""));const{themeVariables:R}=(0,s.zj)();const{rowEven:P,rowOdd:z,nodeBorder:q}=R;b.push(0);for(const[o,s]of b.entries()){if(o===0&&b.length>1){continue}const t=o%2===0&&s!==0;const e=_.rectangle(O,m.height+D+s,$,m.height,{...F,fill:t?P:z,stroke:q});g.insert((()=>e),"g.label").attr("style",h.join("")).attr("class",`row-rect-${o%2===0?"even":"odd"}`)}let N=_.line(O,m.height+D,$+O,m.height+D,F);g.insert((()=>N)).attr("class","divider");N=_.line(x+O,m.height+D,x+O,E+D,F);g.insert((()=>N)).attr("class","divider");if(w){N=_.line(x+C+O,m.height+D,x+C+O,E+D,F);g.insert((()=>N)).attr("class","divider")}if(S){N=_.line(x+C+v+O,m.height+D,x+C+v+O,E+D,F);g.insert((()=>N)).attr("class","divider")}for(const o of b){N=_.line(O,m.height+D+o,$+O,m.height+D+o,F);g.insert((()=>N)).attr("class","divider")}u(e,K);e.intersect=function(t){return Z.rect(e,t)};return g}(0,s.K2)(be,"erBox");async function xe(t,e,r,i=0,a=0,c=[],h=""){const d=t.insert("g").attr("class",`label ${c.join(" ")}`).attr("transform",`translate(${i}, ${a})`).attr("style",h);if(e!==(0,s.QO)(e)){e=(0,s.QO)(e);e=e.replaceAll("<","<").replaceAll(">",">")}const u=d.node().appendChild(await(0,n.GZ)(d,e,{width:(0,o.Un)(e,r)+100,style:h,useHtmlLabels:r.htmlLabels},r));if(e.includes("<")||e.includes(">")){let t=u.children[0];t.textContent=t.textContent.replaceAll("<","<").replaceAll(">",">");while(t.childNodes[0]){t=t.childNodes[0];t.textContent=t.textContent.replaceAll("<","<").replaceAll(">",">")}}let f=u.getBBox();if((0,s._3)(r.htmlLabels)){const t=u.children[0];t.style.textAlign="start";const e=(0,l.Ltv)(u);f=t.getBoundingClientRect();e.attr("width",f.width);e.attr("height",f.height)}return f}(0,s.K2)(xe,"addText");async function Ce(t,e,r,i,a=r.class.padding??12){const n=!i?3:0;const o=t.insert("g").attr("class",f(e)).attr("id",e.domId||e.id);let s=null;let l=null;let c=null;let h=null;let d=0;let u=0;let p=0;s=o.insert("g").attr("class","annotation-group text");if(e.annotations.length>0){const t=e.annotations[0];await ve(s,{text:`«${t}»`},0);const r=s.node().getBBox();d=r.height}l=o.insert("g").attr("class","label-group text");await ve(l,e,0,["font-weight: bolder"]);const g=l.node().getBBox();u=g.height;c=o.insert("g").attr("class","members-group text");let m=0;for(const f of e.members){const t=await ve(c,f,m,[f.parseClassifier()]);m+=t+n}p=c.node().getBBox().height;if(p<=0){p=a/2}h=o.insert("g").attr("class","methods-group text");let y=0;for(const f of e.methods){const t=await ve(h,f,y,[f.parseClassifier()]);y+=t+n}let b=o.node().getBBox();if(s!==null){const t=s.node().getBBox();s.attr("transform",`translate(${-t.width/2})`)}l.attr("transform",`translate(${-g.width/2}, ${d})`);b=o.node().getBBox();c.attr("transform",`translate(${0}, ${d+u+a*2})`);b=o.node().getBBox();h.attr("transform",`translate(${0}, ${d+u+(p?p+a*4:a*2)})`);b=o.node().getBBox();return{shapeSvg:o,bbox:b}}(0,s.K2)(Ce,"textHelper");async function ve(t,e,r,i=[]){const a=t.insert("g").attr("class","label").attr("style",i.join("; "));const c=(0,s.zj)();let h="useHtmlLabels"in e?e.useHtmlLabels:(0,s._3)(c.htmlLabels)??true;let d="";if("text"in e){d=e.text}else{d=e.label}if(!h&&d.startsWith("\\")){d=d.substring(1)}if((0,s.Wi)(d)){h=true}const u=await(0,n.GZ)(a,(0,s.oB)((0,o.Sm)(d)),{width:(0,o.Un)(d,c)+50,classes:"markdown-node-label",useHtmlLabels:h},c);let f;let p=1;if(!h){if(i.includes("font-weight: bolder")){(0,l.Ltv)(u).selectAll("tspan").attr("font-weight","")}p=u.children.length;const t=u.children[0];if(u.textContent===""||u.textContent.includes(">")){t.textContent=d[0]+d.substring(1).replaceAll(">",">").replaceAll("<","<").trim();const e=d[1]===" ";if(e){t.textContent=t.textContent[0]+" "+t.textContent.substring(1)}}if(t.textContent==="undefined"){t.textContent=""}f=u.getBBox()}else{const t=u.children[0];const e=(0,l.Ltv)(u);p=t.innerHTML.split("
").length;if(t.innerHTML.includes("")){p+=t.innerHTML.split("").length-1}const r=t.getElementsByTagName("img");if(r){const t=d.replace(/]*>/g,"").trim()==="";await Promise.all([...r].map((e=>new Promise((r=>{function i(){e.style.display="flex";e.style.flexDirection="column";if(t){const t=c.fontSize?.toString()??window.getComputedStyle(document.body).fontSize;const r=5;const i=parseInt(t,10)*r+"px";e.style.minWidth=i;e.style.maxWidth=i}else{e.style.width="100%"}r(e)}(0,s.K2)(i,"setupImage");setTimeout((()=>{if(e.complete){i()}}));e.addEventListener("error",i);e.addEventListener("load",i)})))))}f=t.getBoundingClientRect();e.attr("width",f.width);e.attr("height",f.height)}a.attr("transform","translate(0,"+(-f.height/(2*p)+r)+")");return f.height}(0,s.K2)(ve,"addText");async function ke(t,e){const r=(0,s.D7)();const i=r.class.padding??12;const a=i;const n=e.useHtmlLabels??(0,s._3)(r.htmlLabels)??true;const o=e;o.annotations=o.annotations??[];o.members=o.members??[];o.methods=o.methods??[];const{shapeSvg:h,bbox:d}=await Ce(t,e,r,n,a);const{labelStyles:f,nodeStyles:p}=L(e);e.labelStyle=f;e.cssStyles=o.styles||"";const g=o.styles?.join(";")||p||"";if(!e.cssStyles){e.cssStyles=g.replaceAll("!important","").split(";")}const m=o.members.length===0&&o.methods.length===0&&!r.class?.hideEmptyMembersBox;const y=c.A.svg(h);const b=M(e,{});if(e.look!=="handDrawn"){b.roughness=0;b.fillStyle="solid"}const x=d.width;let C=d.height;if(o.members.length===0&&o.methods.length===0){C+=a}else if(o.members.length>0&&o.methods.length===0){C+=a*2}const v=-x/2;const k=-C/2;const w=y.rectangle(v-i,k-i-(m?i:o.members.length===0&&o.methods.length===0?-i/2:0),x+2*i,C+2*i+(m?i*2:o.members.length===0&&o.methods.length===0?-i:0),b);const S=h.insert((()=>w),":first-child");S.attr("class","basic label-container");const A=S.node().getBBox();h.selectAll(".text").each(((t,e,r)=>{const a=(0,l.Ltv)(r[e]);const s=a.attr("transform");let c=0;if(s){const t=RegExp(/translate\(([^,]+),([^)]+)\)/);const e=t.exec(s);if(e){c=parseFloat(e[2])}}let d=c+k+i-(m?i:o.members.length===0&&o.methods.length===0?-i/2:0);if(!n){d-=4}let u=v;if(a.attr("class").includes("label-group")||a.attr("class").includes("annotation-group")){u=-a.node()?.getBBox().width/2||0;h.selectAll("text").each((function(t,e,r){if(window.getComputedStyle(r[e]).textAnchor==="middle"){u=0}}))}a.attr("transform",`translate(${u}, ${d})`)}));const T=h.select(".annotation-group").node().getBBox().height-(m?i/2:0)||0;const B=h.select(".label-group").node().getBBox().height-(m?i/2:0)||0;const _=h.select(".members-group").node().getBBox().height-(m?i/2:0)||0;if(o.members.length>0||o.methods.length>0||m){const t=y.line(A.x,T+B+k+i,A.x+A.width,T+B+k+i,b);const e=h.insert((()=>t));e.attr("class","divider").attr("style",g)}if(m||o.members.length>0||o.methods.length>0){const t=y.line(A.x,T+B+_+k+a*2+i,A.x+A.width,T+B+_+k+i+a*2,b);const e=h.insert((()=>t));e.attr("class","divider").attr("style",g)}if(o.look!=="handDrawn"){h.selectAll("path").attr("style",g)}S.select(":nth-child(2)").attr("style",g);h.selectAll(".divider").select("path").attr("style",g);if(e.labelStyle){h.selectAll("span").attr("style",e.labelStyle)}else{h.selectAll("span").attr("style",g)}if(!n){const t=RegExp(/color\s*:\s*([^;]*)/);const e=t.exec(g);if(e){const t=e[0].replace("color","fill");h.selectAll("tspan").attr("style",t)}else if(f){const e=t.exec(f);if(e){const t=e[0].replace("color","fill");h.selectAll("tspan").attr("style",t)}}}u(e,S);e.intersect=function(t){return Z.rect(e,t)};return h}(0,s.K2)(ke,"classBox");async function we(t,e){const{labelStyles:r,nodeStyles:i}=L(e);e.labelStyle=r;const a=e;const n=e;const o=20;const s=20;const h="verifyMethod"in e;const d=f(e);const p=t.insert("g").attr("class",d).attr("id",e.domId??e.id);let g;if(h){g=await Se(p,`<<${a.type}>>`,0,e.labelStyle)}else{g=await Se(p,"<<Element>>",0,e.labelStyle)}let m=g;const y=await Se(p,a.name,m,e.labelStyle+"; font-weight: bold;");m+=y+s;if(h){const t=await Se(p,`${a.requirementId?`Id: ${a.requirementId}`:""}`,m,e.labelStyle);m+=t;const r=await Se(p,`${a.text?`Text: ${a.text}`:""}`,m,e.labelStyle);m+=r;const i=await Se(p,`${a.risk?`Risk: ${a.risk}`:""}`,m,e.labelStyle);m+=i;await Se(p,`${a.verifyMethod?`Verification: ${a.verifyMethod}`:""}`,m,e.labelStyle)}else{const t=await Se(p,`${n.type?`Type: ${n.type}`:""}`,m,e.labelStyle);m+=t;await Se(p,`${n.docRef?`Doc Ref: ${n.docRef}`:""}`,m,e.labelStyle)}const b=(p.node()?.getBBox().width??200)+o;const x=(p.node()?.getBBox().height??200)+o;const C=-b/2;const v=-x/2;const k=c.A.svg(p);const w=M(e,{});if(e.look!=="handDrawn"){w.roughness=0;w.fillStyle="solid"}const S=k.rectangle(C,v,b,x,w);const A=p.insert((()=>S),":first-child");A.attr("class","basic label-container").attr("style",i);p.selectAll(".label").each(((t,e,r)=>{const i=(0,l.Ltv)(r[e]);const a=i.attr("transform");let n=0;let s=0;if(a){const t=RegExp(/translate\(([^,]+),([^)]+)\)/);const e=t.exec(a);if(e){n=parseFloat(e[1]);s=parseFloat(e[2])}}const c=s-x/2;let h=C+o/2;if(e===0||e===1){h=n}i.attr("transform",`translate(${h}, ${c+o})`)}));if(m>g+y+s){const t=k.line(C,v+g+y+s,C+b,v+g+y+s,w);const e=p.insert((()=>t));e.attr("style",i)}u(e,A);e.intersect=function(t){return Z.rect(e,t)};return p}(0,s.K2)(we,"requirementBox");async function Se(t,e,r,i=""){if(e===""){return 0}const a=t.insert("g").attr("class","label").attr("style",i);const c=(0,s.D7)();const h=c.htmlLabels??true;const d=await(0,n.GZ)(a,(0,s.oB)((0,o.Sm)(e)),{width:(0,o.Un)(e,c)+50,classes:"markdown-node-label",useHtmlLabels:h,style:i},c);let u;if(!h){const t=d.children[0];for(const e of t.children){e.textContent=e.textContent.replaceAll(">",">").replaceAll("<","<");if(i){e.setAttribute("style",i)}}u=d.getBBox();u.height+=6}else{const t=d.children[0];const e=(0,l.Ltv)(d);u=t.getBoundingClientRect();e.attr("width",u.width);e.attr("height",u.height)}a.attr("transform",`translate(${-u.width/2},${-u.height/2+r})`);return u.height}(0,s.K2)(Se,"addText");var Ae=(0,s.K2)((t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}}),"colorFromPriority");async function Te(t,e,{config:r}){const{labelStyles:i,nodeStyles:a}=L(e);e.labelStyle=i||"";const n=10;const o=e.width;e.width=(e.width??200)-10;const{shapeSvg:s,bbox:l,label:p}=await h(t,e,f(e));const g=e.padding||10;let m="";let y;if("ticket"in e&&e.ticket&&r?.kanban?.ticketBaseUrl){m=r?.kanban?.ticketBaseUrl.replace("#TICKET#",e.ticket);y=s.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",m).attr("target","_blank")}const b={useHtmlLabels:e.useHtmlLabels,labelStyle:e.labelStyle||"",width:e.width,img:e.img,padding:e.padding||8,centerLabel:false};let x,C;if(y){({label:x,bbox:C}=await d(y,"ticket"in e&&e.ticket||"",b))}else{({label:x,bbox:C}=await d(s,"ticket"in e&&e.ticket||"",b))}const{label:v,bbox:k}=await d(s,"assigned"in e&&e.assigned||"",b);e.width=o;const S=10;const A=e?.width||0;const T=Math.max(C.height,k.height)/2;const B=Math.max(l.height+S*2,e?.height||0)+T;const _=-A/2;const F=-B/2;p.attr("transform","translate("+(g-A/2)+", "+(-T-l.height/2)+")");x.attr("transform","translate("+(g-A/2)+", "+(-T+l.height/2)+")");v.attr("transform","translate("+(g+A/2-k.width-2*n)+", "+(-T+l.height/2)+")");let $;const{rx:E,ry:O}=e;const{cssStyles:D}=e;if(e.look==="handDrawn"){const t=c.A.svg(s);const r=M(e,{});const i=E||O?t.path(w(_,F,A,B,E||0),r):t.rectangle(_,F,A,B,r);$=s.insert((()=>i),":first-child");$.attr("class","basic label-container").attr("style",D?D:null)}else{$=s.insert("rect",":first-child");$.attr("class","basic label-container __APA__").attr("style",a).attr("rx",E??5).attr("ry",O??5).attr("x",_).attr("y",F).attr("width",A).attr("height",B);const t="priority"in e&&e.priority;if(t){const e=s.append("line");const r=_+2;const i=F+Math.floor((E??0)/2);const a=F+B-Math.floor((E??0)/2);e.attr("x1",r).attr("y1",i).attr("x2",r).attr("y2",a).attr("stroke-width","4").attr("stroke",Ae(t))}}u(e,$);e.height=B;e.intersect=function(t){return Z.rect(e,t)};return s}(0,s.K2)(Te,"kanbanItem");var Be=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:Qt},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:Xt},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:te},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:ae},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:yt},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:at},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:Ut},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:At},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:It},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:Dt},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:ue},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:$t},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:xt},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:se},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:rt},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:Zt},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:ie},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:re},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:kt},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:Tt},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:lt},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:ht},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:ut},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:Kt},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:ge},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:wt},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:de},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:qt},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:ft},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:bt},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:pe},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:ye},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:Ct},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:fe},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:vt},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:Jt},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:jt},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:Wt},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:tt},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:ot},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:oe},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:ne},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:me},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:Gt},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:Nt}];var Le=(0,s.K2)((()=>{const t={state:ee,choice:it,note:Ht,rectWithTitle:Vt,labelRect:Ot,iconSquare:_t,iconCircle:Lt,icon:Bt,iconRounded:Mt,imageSquare:Ft,anchor:J,kanbanItem:Te,classBox:ke,erBox:be,requirementBox:we};const e=[...Object.entries(t),...Be.flatMap((t=>{const e=[t.shortName,..."aliases"in t?t.aliases:[],..."internalAliases"in t?t.internalAliases:[]];return e.map((e=>[e,t.handler]))}))];return Object.fromEntries(e)}),"generateShapeMap");var Me=Le();function _e(t){return t in Me}(0,s.K2)(_e,"isValidShape");var Fe=new Map;async function $e(t,e,r){let i;let a;if(e.shape==="rect"){if(e.rx&&e.ry){e.shape="roundedRect"}else{e.shape="squareRect"}}const n=e.shape?Me[e.shape]:void 0;if(!n){throw new Error(`No such shape: ${e.shape}. Please check your syntax.`)}if(e.link){let o;if(r.config.securityLevel==="sandbox"){o="_top"}else if(e.linkTarget){o=e.linkTarget||"_blank"}i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",o??null);a=await n(i,e,r)}else{a=await n(t,e,r);i=a}if(e.tooltip){a.attr("title",e.tooltip)}Fe.set(e.id,i);if(e.haveCallback){i.attr("class",i.attr("class")+" clickable")}return i}(0,s.K2)($e,"insertNode");var Ee=(0,s.K2)(((t,e)=>{Fe.set(e.id,t)}),"setNodeElem");var Oe=(0,s.K2)((()=>{Fe.clear()}),"clear");var De=(0,s.K2)((t=>{const e=Fe.get(t.id);s.Rm.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const r=8;const i=t.diff||0;if(t.clusterNode){e.attr("transform","translate("+(t.x+i-t.width/2)+", "+(t.y-t.height/2-r)+")")}else{e.attr("transform","translate("+t.x+", "+t.y+")")}return i}),"positionNode")},33416:(t,e,r)=>{"use strict";r.d(e,{IU:()=>m,Jo:()=>B,T_:()=>C,g0:()=>H,jP:()=>b});var i=r(94746);var a=r(20778);var n=r(57590);var o=r(76261);var s=r(96049);var l=r(75905);var c=r(24982);var h=r(52274);var d=(0,l.K2)(((t,e,r,i,a,n)=>{if(e.arrowTypeStart){f(t,"start",e.arrowTypeStart,r,i,a,n)}if(e.arrowTypeEnd){f(t,"end",e.arrowTypeEnd,r,i,a,n)}}),"addEdgeMarkers");var u={arrow_cross:{type:"cross",fill:false},arrow_point:{type:"point",fill:true},arrow_barb:{type:"barb",fill:true},arrow_circle:{type:"circle",fill:false},aggregation:{type:"aggregation",fill:false},extension:{type:"extension",fill:false},composition:{type:"composition",fill:true},dependency:{type:"dependency",fill:true},lollipop:{type:"lollipop",fill:false},only_one:{type:"onlyOne",fill:false},zero_or_one:{type:"zeroOrOne",fill:false},one_or_more:{type:"oneOrMore",fill:false},zero_or_more:{type:"zeroOrMore",fill:false},requirement_arrow:{type:"requirement_arrow",fill:false},requirement_contains:{type:"requirement_contains",fill:false}};var f=(0,l.K2)(((t,e,r,i,a,n,o)=>{const s=u[r];if(!s){l.Rm.warn(`Unknown arrow type: ${r}`);return}const c=s.type;const h=e==="start"?"Start":"End";const d=`${a}_${n}-${c}${h}`;if(o&&o.trim()!==""){const r=o.replace(/[^\dA-Za-z]/g,"_");const a=`${d}_${r}`;if(!document.getElementById(a)){const t=document.getElementById(d);if(t){const e=t.cloneNode(true);e.id=a;const r=e.querySelectorAll("path, circle, line");r.forEach((t=>{t.setAttribute("stroke",o);if(s.fill){t.setAttribute("fill",o)}}));t.parentNode?.appendChild(e)}}t.attr(`marker-${e}`,`url(${i}#${a})`)}else{t.attr(`marker-${e}`,`url(${i}#${d})`)}}),"addEdgeMarker");var p=new Map;var g=new Map;var m=(0,l.K2)((()=>{p.clear();g.clear()}),"clear");var y=(0,l.K2)((t=>{let e=t?t.reduce(((t,e)=>t+";"+e),""):"";return e}),"getLabelStyles");var b=(0,l.K2)((async(t,e)=>{let r=(0,l._3)((0,l.D7)().flowchart.htmlLabels);const i=await(0,o.GZ)(t,e.label,{style:y(e.labelStyle),useHtmlLabels:r,addSvgBackground:true,isNode:false});l.Rm.info("abc82",e,e.labelType);const n=t.insert("g").attr("class","edgeLabel");const s=n.insert("g").attr("class","label");s.node().appendChild(i);let h=i.getBBox();if(r){const t=i.children[0];const e=(0,c.Ltv)(i);h=t.getBoundingClientRect();e.attr("width",h.width);e.attr("height",h.height)}s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")");p.set(e.id,n);e.width=h.width;e.height=h.height;let d;if(e.startLabelLeft){const r=await(0,a.DA)(e.startLabelLeft,y(e.labelStyle));const i=t.insert("g").attr("class","edgeTerminals");const n=i.insert("g").attr("class","inner");d=n.node().appendChild(r);const o=r.getBBox();n.attr("transform","translate("+-o.width/2+", "+-o.height/2+")");if(!g.get(e.id)){g.set(e.id,{})}g.get(e.id).startLeft=i;x(d,e.startLabelLeft)}if(e.startLabelRight){const r=await(0,a.DA)(e.startLabelRight,y(e.labelStyle));const i=t.insert("g").attr("class","edgeTerminals");const n=i.insert("g").attr("class","inner");d=i.node().appendChild(r);n.node().appendChild(r);const o=r.getBBox();n.attr("transform","translate("+-o.width/2+", "+-o.height/2+")");if(!g.get(e.id)){g.set(e.id,{})}g.get(e.id).startRight=i;x(d,e.startLabelRight)}if(e.endLabelLeft){const r=await(0,a.DA)(e.endLabelLeft,y(e.labelStyle));const i=t.insert("g").attr("class","edgeTerminals");const n=i.insert("g").attr("class","inner");d=n.node().appendChild(r);const o=r.getBBox();n.attr("transform","translate("+-o.width/2+", "+-o.height/2+")");i.node().appendChild(r);if(!g.get(e.id)){g.set(e.id,{})}g.get(e.id).endLeft=i;x(d,e.endLabelLeft)}if(e.endLabelRight){const r=await(0,a.DA)(e.endLabelRight,y(e.labelStyle));const i=t.insert("g").attr("class","edgeTerminals");const n=i.insert("g").attr("class","inner");d=n.node().appendChild(r);const o=r.getBBox();n.attr("transform","translate("+-o.width/2+", "+-o.height/2+")");i.node().appendChild(r);if(!g.get(e.id)){g.set(e.id,{})}g.get(e.id).endRight=i;x(d,e.endLabelRight)}return i}),"insertEdgeLabel");function x(t,e){if((0,l.D7)().flowchart.htmlLabels&&t){t.style.width=e.length*9+"px";t.style.height="12px"}}(0,l.K2)(x,"setTerminalWidth");var C=(0,l.K2)(((t,e)=>{l.Rm.debug("Moving label abc88 ",t.id,t.label,p.get(t.id),e);let r=e.updatedPath?e.updatedPath:e.originalPath;const i=(0,l.D7)();const{subGraphTitleTotalMargin:a}=(0,n.O)(i);if(t.label){const i=p.get(t.id);let n=t.x;let o=t.y;if(r){const i=s._K.calcLabelPosition(r);l.Rm.debug("Moving label "+t.label+" from (",n,",",o,") to (",i.x,",",i.y,") abc88");if(e.updatedPath){n=i.x;o=i.y}}i.attr("transform",`translate(${n}, ${o+a/2})`)}if(t.startLabelLeft){const e=g.get(t.id).startLeft;let i=t.x;let a=t.y;if(r){const e=s._K.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);i=e.x;a=e.y}e.attr("transform",`translate(${i}, ${a})`)}if(t.startLabelRight){const e=g.get(t.id).startRight;let i=t.x;let a=t.y;if(r){const e=s._K.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);i=e.x;a=e.y}e.attr("transform",`translate(${i}, ${a})`)}if(t.endLabelLeft){const e=g.get(t.id).endLeft;let i=t.x;let a=t.y;if(r){const e=s._K.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);i=e.x;a=e.y}e.attr("transform",`translate(${i}, ${a})`)}if(t.endLabelRight){const e=g.get(t.id).endRight;let i=t.x;let a=t.y;if(r){const e=s._K.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);i=e.x;a=e.y}e.attr("transform",`translate(${i}, ${a})`)}}),"positionEdgeLabel");var v=(0,l.K2)(((t,e)=>{const r=t.x;const i=t.y;const a=Math.abs(e.x-r);const n=Math.abs(e.y-i);const o=t.width/2;const s=t.height/2;return a>=o||n>=s}),"outsideNode");var k=(0,l.K2)(((t,e,r)=>{l.Rm.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(r)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const i=t.x;const a=t.y;const n=Math.abs(i-r.x);const o=t.width/2;let s=r.xMath.abs(i-e.x)*c){let t=r.y{l.Rm.warn("abc88 cutPathAtIntersect",t,e);let r=[];let i=t[0];let a=false;t.forEach((t=>{l.Rm.info("abc88 checking point",t,e);if(!v(e,t)&&!a){const n=k(e,i,t);l.Rm.debug("abc88 inside",t,i,n);l.Rm.debug("abc88 intersection",n,e);let o=false;r.forEach((t=>{o=o||t.x===n.x&&t.y===n.y}));if(!r.some((t=>t.x===n.x&&t.y===n.y))){r.push(n)}else{l.Rm.warn("abc88 no intersect",n,r)}a=true}else{l.Rm.warn("abc88 outside",t,i);i=t;if(!a){r.push(t)}}}));l.Rm.debug("returning points",r);return r}),"cutPathAtIntersect");function S(t){const e=[];const r=[];for(let i=1;i5&&Math.abs(n.y-a.y)>5){e.push(n);r.push(i)}else if(a.y===n.y&&n.x===o.x&&Math.abs(n.x-a.x)>5&&Math.abs(n.y-o.y)>5){e.push(n);r.push(i)}}return{cornerPoints:e,cornerPointPositions:r}}(0,l.K2)(S,"extractCornerPoints");var A=(0,l.K2)((function(t,e,r){const i=e.x-t.x;const a=e.y-t.y;const n=Math.sqrt(i*i+a*a);const o=r/n;return{x:e.x-o*i,y:e.y-o*a}}),"findAdjacentPoint");var T=(0,l.K2)((function(t){const{cornerPointPositions:e}=S(t);const r=[];for(let i=0;i10&&Math.abs(a.y-e.y)>=10){l.Rm.debug("Corner point fixing",Math.abs(a.x-e.x),Math.abs(a.y-e.y));const t=5;if(n.x===o.x){u={x:c<0?o.x-t+d:o.x+t-d,y:h<0?o.y-d:o.y+d}}else{u={x:c<0?o.x-d:o.x+d,y:h<0?o.y-t+d:o.y+t-d}}}else{l.Rm.debug("Corner point skipping fixing",Math.abs(a.x-e.x),Math.abs(a.y-e.y))}r.push(u,s)}else{r.push(t[i])}}return r}),"fixCorners");var B=(0,l.K2)((function(t,e,r,n,o,s,u){const{handDrawnSeed:f}=(0,l.D7)();let p=e.points;let g=false;const m=o;var y=s;const b=[];for(const i in e.cssCompiledStyles){if((0,a.KX)(i)){continue}b.push(e.cssCompiledStyles[i])}if(y.intersect&&m.intersect){p=p.slice(1,e.points.length-1);p.unshift(m.intersect(p[0]));l.Rm.debug("Last point APA12",e.start,"--\x3e",e.end,p[p.length-1],y,y.intersect(p[p.length-1]));p.push(y.intersect(p[p.length-1]))}if(e.toCluster){l.Rm.info("to cluster abc88",r.get(e.toCluster));p=w(e.points,r.get(e.toCluster).node);g=true}if(e.fromCluster){l.Rm.debug("from cluster abc88",r.get(e.fromCluster),JSON.stringify(p,null,2));p=w(p.reverse(),r.get(e.fromCluster).node).reverse();g=true}let x=p.filter((t=>!Number.isNaN(t.y)));x=T(x);let C=c.qrM;C=c.lUB;switch(e.curve){case"linear":C=c.lUB;break;case"basis":C=c.qrM;break;case"cardinal":C=c.y8u;break;case"bumpX":C=c.Wi0;break;case"bumpY":C=c.PGM;break;case"catmullRom":C=c.oDi;break;case"monotoneX":C=c.nVG;break;case"monotoneY":C=c.uxU;break;case"natural":C=c.Xf2;break;case"step":C=c.GZz;break;case"stepAfter":C=c.UPb;break;case"stepBefore":C=c.dyv;break;default:C=c.qrM}const{x:v,y:k}=(0,i.R)(e);const S=(0,c.n8j)().x(v).y(k).curve(C);let A;switch(e.thickness){case"normal":A="edge-thickness-normal";break;case"thick":A="edge-thickness-thick";break;case"invisible":A="edge-thickness-invisible";break;default:A="edge-thickness-normal"}switch(e.pattern){case"solid":A+=" edge-pattern-solid";break;case"dotted":A+=" edge-pattern-dotted";break;case"dashed":A+=" edge-pattern-dashed";break;default:A+=" edge-pattern-solid"}let B;let L=S(x);const M=Array.isArray(e.style)?e.style:[e.style];let _=M.find((t=>t?.startsWith("stroke:")));if(e.look==="handDrawn"){const r=h.A.svg(t);Object.assign([],x);const i=r.path(L,{roughness:.3,seed:f});A+=" transition";B=(0,c.Ltv)(i).select("path").attr("id",e.id).attr("class"," "+A+(e.classes?" "+e.classes:"")).attr("style",M?M.reduce(((t,e)=>t+";"+e),""):"");let a=B.attr("d");B.attr("d",a);t.node().appendChild(B.node())}else{const r=b.join(";");const i=M?M.reduce(((t,e)=>t+e+";"),""):"";let a="";if(e.animate){a=" edge-animation-fast"}if(e.animation){a=" edge-animation-"+e.animation}const n=r?r+";"+i+";":i;B=t.append("path").attr("d",L).attr("id",e.id).attr("class"," "+A+(e.classes?" "+e.classes:"")+(a??"")).attr("style",n);_=n.match(/stroke:([^;]+)/)?.[1]}let F="";if((0,l.D7)().flowchart.arrowMarkerAbsolute||(0,l.D7)().state.arrowMarkerAbsolute){F=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search;F=F.replace(/\(/g,"\\(").replace(/\)/g,"\\)")}l.Rm.info("arrowTypeStart",e.arrowTypeStart);l.Rm.info("arrowTypeEnd",e.arrowTypeEnd);d(B,e,F,u,n,_);let $={};if(g){$.updatedPath=p}$.originalPath=e.points;return $}),"insertEdge");var L=(0,l.K2)(((t,e,r,i)=>{e.forEach((e=>{j[e](t,r,i)}))}),"insertMarkers");var M=(0,l.K2)(((t,e,r)=>{l.Rm.trace("Making markers for ",r);t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z");t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")}),"extension");var _=(0,l.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z");t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")}),"composition");var F=(0,l.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z");t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")}),"aggregation");var $=(0,l.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z");t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")}),"dependency");var E=(0,l.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6);t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)}),"lollipop");var O=(0,l.K2)(((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0");t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")}),"point");var D=(0,l.K2)(((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0");t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")}),"circle");var I=(0,l.K2)(((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0");t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")}),"cross");var K=(0,l.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}),"barb");var R=(0,l.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-onlyOneStart").attr("class","marker onlyOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18");t.append("defs").append("marker").attr("id",r+"_"+e+"-onlyOneEnd").attr("class","marker onlyOne "+e).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")}),"only_one");var P=(0,l.K2)(((t,e,r)=>{const i=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrOneStart").attr("class","marker zeroOrOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6);i.append("path").attr("d","M9,0 L9,18");const a=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+e).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");a.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6);a.append("path").attr("d","M21,0 L21,18")}),"zero_or_one");var z=(0,l.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-oneOrMoreStart").attr("class","marker oneOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27");t.append("defs").append("marker").attr("id",r+"_"+e+"-oneOrMoreEnd").attr("class","marker oneOrMore "+e).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")}),"one_or_more");var q=(0,l.K2)(((t,e,r)=>{const i=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6);i.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");const a=t.append("defs").append("marker").attr("id",r+"_"+e+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+e).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");a.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6);a.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")}),"zero_or_more");var N=(0,l.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0\n L20,10\n M20,10\n L0,20`)}),"requirement_arrow");var W=(0,l.K2)(((t,e,r)=>{const i=t.append("defs").append("marker").attr("id",r+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");i.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none");i.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10);i.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)}),"requirement_contains");var j={extension:M,composition:_,aggregation:F,dependency:$,lollipop:E,point:O,circle:D,cross:I,barb:K,only_one:R,zero_or_one:P,one_or_more:z,zero_or_more:q,requirement_arrow:N,requirement_contains:W};var H=L},57590:(t,e,r)=>{"use strict";r.d(e,{O:()=>a});var i=r(75905);var a=(0,i.K2)((({flowchart:t})=>{const e=t?.subGraphTitleMargin?.top??0;const r=t?.subGraphTitleMargin?.bottom??0;const i=e+r;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:i}}),"getSubGraphTitleMargins")},96049:(t,e,r)=>{"use strict";r.d(e,{$C:()=>B,$t:()=>W,C4:()=>H,I5:()=>N,Ib:()=>g,KL:()=>G,Sm:()=>Y,Un:()=>D,_K:()=>j,bH:()=>$,dq:()=>z,pe:()=>l,rY:()=>U,ru:()=>O,sM:()=>A,vU:()=>f,yT:()=>M});var i=r(75905);var a=r(16750);var n=r(24982);var o=r(307);var s=r(96901);var l="​";var c={curveBasis:n.qrM,curveBasisClosed:n.Yu4,curveBasisOpen:n.IA3,curveBumpX:n.Wi0,curveBumpY:n.PGM,curveBundle:n.OEq,curveCardinalClosed:n.olC,curveCardinalOpen:n.IrU,curveCardinal:n.y8u,curveCatmullRomClosed:n.Q7f,curveCatmullRomOpen:n.cVp,curveCatmullRom:n.oDi,curveLinear:n.lUB,curveLinearClosed:n.Lx9,curveMonotoneX:n.nVG,curveMonotoneY:n.uxU,curveNatural:n.Xf2,curveStep:n.GZz,curveStepAfter:n.UPb,curveStepBefore:n.dyv};var h=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;var d=(0,i.K2)((function(t,e){const r=u(t,/(?:init\b)|(?:initialize\b)/);let a={};if(Array.isArray(r)){const t=r.map((t=>t.args));(0,i.$i)(t);a=(0,i.hH)(a,[...t])}else{a=r.args}if(!a){return}let n=(0,i.Ch)(t,e);const o="config";if(a[o]!==void 0){if(n==="flowchart-v2"){n="flowchart"}a[n]=a[o];delete a[o]}return a}),"detectInit");var u=(0,i.K2)((function(t,e=null){try{const r=new RegExp(`[%]{2}(?![{]${h.source})(?=[}][%]{2}).*\n`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"');i.Rm.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let a;const n=[];while((a=i.DB.exec(t))!==null){if(a.index===i.DB.lastIndex){i.DB.lastIndex++}if(a&&!e||e&&a[1]?.match(e)||e&&a[2]?.match(e)){const t=a[1]?a[1]:a[2];const e=a[3]?a[3].trim():a[4]?JSON.parse(a[4].trim()):null;n.push({type:t,args:e})}}if(n.length===0){return{type:t,args:null}}return n.length===1?n[0]:n}catch(r){i.Rm.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`);return{type:void 0,args:null}}}),"detectDirective");var f=(0,i.K2)((function(t){return t.replace(i.DB,"")}),"removeDirectives");var p=(0,i.K2)((function(t,e){for(const[r,i]of e.entries()){if(i.match(t)){return r}}return-1}),"isSubstringInArray");function g(t,e){if(!t){return e}const r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return c[r]??e}(0,i.K2)(g,"interpolateToCurve");function m(t,e){const r=t.trim();if(!r){return void 0}if(e.securityLevel!=="loose"){return(0,a.J)(r)}return r}(0,i.K2)(m,"formatUrl");var y=(0,i.K2)(((t,...e)=>{const r=t.split(".");const a=r.length-1;const n=r[a];let o=window;for(let s=0;s{r+=b(t,e);e=t}));const i=r/2;return k(t,i)}(0,i.K2)(x,"traverseEdge");function C(t){if(t.length===1){return t[0]}return x(t)}(0,i.K2)(C,"calcLabelPosition");var v=(0,i.K2)(((t,e=2)=>{const r=Math.pow(10,e);return Math.round(t*r)/r}),"roundNumber");var k=(0,i.K2)(((t,e)=>{let r=void 0;let i=e;for(const a of t){if(r){const t=b(a,r);if(t===0){return r}if(t=1){return{x:a.x,y:a.y}}if(e>0&&e<1){return{x:v((1-e)*r.x+e*a.x,5),y:v((1-e)*r.y+e*a.y,5)}}}}r=a}throw new Error("Could not find a suitable point for the given distance")}),"calculatePoint");var w=(0,i.K2)(((t,e,r)=>{i.Rm.info(`our points ${JSON.stringify(e)}`);if(e[0]!==r){e=e.reverse()}const a=25;const n=k(e,a);const o=t?10:5;const s=Math.atan2(e[0].y-n.y,e[0].x-n.x);const l={x:0,y:0};l.x=Math.sin(s)*o+(e[0].x+n.x)/2;l.y=-Math.cos(s)*o+(e[0].y+n.y)/2;return l}),"calcCardinalityPosition");function S(t,e,r){const a=structuredClone(r);i.Rm.info("our points",a);if(e!=="start_left"&&e!=="start_right"){a.reverse()}const n=25+t;const o=k(a,n);const s=10+t*.5;const l=Math.atan2(a[0].y-o.y,a[0].x-o.x);const c={x:0,y:0};if(e==="start_left"){c.x=Math.sin(l+Math.PI)*s+(a[0].x+o.x)/2;c.y=-Math.cos(l+Math.PI)*s+(a[0].y+o.y)/2}else if(e==="end_right"){c.x=Math.sin(l-Math.PI)*s+(a[0].x+o.x)/2-5;c.y=-Math.cos(l-Math.PI)*s+(a[0].y+o.y)/2-5}else if(e==="end_left"){c.x=Math.sin(l)*s+(a[0].x+o.x)/2-5;c.y=-Math.cos(l)*s+(a[0].y+o.y)/2-5}else{c.x=Math.sin(l)*s+(a[0].x+o.x)/2;c.y=-Math.cos(l)*s+(a[0].y+o.y)/2}return c}(0,i.K2)(S,"calcTerminalLabelPosition");function A(t){let e="";let r="";for(const i of t){if(i!==void 0){if(i.startsWith("color:")||i.startsWith("text-align:")){r=r+i+";"}else{e=e+i+";"}}}return{style:e,labelStyle:r}}(0,i.K2)(A,"getStylesFromArray");var T=0;var B=(0,i.K2)((()=>{T++;return"id-"+Math.random().toString(36).substr(2,12)+"-"+T}),"generateId");function L(t){let e="";const r="0123456789abcdef";const i=r.length;for(let a=0;aL(t.length)),"random");var _=(0,i.K2)((function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}}),"getTextObj");var F=(0,i.K2)((function(t,e){const r=e.text.replace(i.Y2.lineBreakRegex," ");const[,a]=N(e.fontSize);const n=t.append("text");n.attr("x",e.x);n.attr("y",e.y);n.style("text-anchor",e.anchor);n.style("font-family",e.fontFamily);n.style("font-size",a);n.style("font-weight",e.fontWeight);n.attr("fill",e.fill);if(e.class!==void 0){n.attr("class",e.class)}const o=n.append("tspan");o.attr("x",e.x+e.textMargin*2);o.attr("fill",e.fill);o.text(r);return n}),"drawSimpleText");var $=(0,o.A)(((t,e,r)=>{if(!t){return t}r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},r);if(i.Y2.lineBreakRegex.test(t)){return t}const a=t.split(" ").filter(Boolean);const n=[];let o="";a.forEach(((t,i)=>{const s=D(`${t} `,r);const l=D(o,r);if(s>e){const{hyphenatedStrings:i,remainingWord:a}=E(t,e,"-",r);n.push(o,...i);o=a}else if(l+s>=e){n.push(o);o=t}else{o=[o,t].filter(Boolean).join(" ")}const c=i+1;const h=c===a.length;if(h){n.push(o)}}));return n.filter((t=>t!=="")).join(r.joinWith)}),((t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`));var E=(0,o.A)(((t,e,r="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);const a=[...t];const n=[];let o="";a.forEach(((t,s)=>{const l=`${o}${t}`;const c=D(l,i);if(c>=e){const t=s+1;const e=a.length===t;const i=`${l}${r}`;n.push(e?l:i);o=""}else{o=l}}));return{hyphenatedStrings:n,remainingWord:o}}),((t,e,r="-",i)=>`${t}${e}${r}${i.fontSize}${i.fontWeight}${i.fontFamily}`));function O(t,e){return I(t,e).height}(0,i.K2)(O,"calculateTextHeight");function D(t,e){return I(t,e).width}(0,i.K2)(D,"calculateTextWidth");var I=(0,o.A)(((t,e)=>{const{fontSize:r=12,fontFamily:a="Arial",fontWeight:o=400}=e;if(!t){return{width:0,height:0}}const[,s]=N(r);const c=["sans-serif",a];const h=t.split(i.Y2.lineBreakRegex);const d=[];const u=(0,n.Ltv)("body");if(!u.remove){return{width:0,height:0,lineHeight:0}}const f=u.append("svg");for(const i of c){let t=0;const e={width:0,height:0,lineHeight:0};for(const r of h){const a=_();a.text=r||l;const n=F(f,a).style("font-size",s).style("font-weight",o).style("font-family",i);const c=(n._groups||n)[0][0].getBBox();if(c.width===0&&c.height===0){throw new Error("svg element not in render tree")}e.width=Math.round(Math.max(e.width,c.width));t=Math.round(c.height);e.height+=t;e.lineHeight=Math.round(Math.max(e.lineHeight,t))}d.push(e)}f.remove();const p=isNaN(d[1].height)||isNaN(d[1].width)||isNaN(d[1].lineHeight)||d[0].height>d[1].height&&d[0].width>d[1].width&&d[0].lineHeight>d[1].lineHeight?0:1;return d[p]}),((t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`));var K=class{constructor(t=false,e){this.count=0;this.count=e?e.length:0;this.next=t?()=>this.count++:()=>Date.now()}static{(0,i.K2)(this,"InitIDGenerator")}};var R;var P=(0,i.K2)((function(t){R=R||document.createElement("div");t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";");R.innerHTML=t;return unescape(R.textContent)}),"entityDecode");function z(t){return"str"in t}(0,i.K2)(z,"isDetailedError");var q=(0,i.K2)(((t,e,r,i)=>{if(!i){return}const a=t.node()?.getBBox();if(!a){return}t.append("text").text(i).attr("text-anchor","middle").attr("x",a.x+a.width/2).attr("y",-r).attr("class",e)}),"insertTitle");var N=(0,i.K2)((t=>{if(typeof t==="number"){return[t,t+"px"]}const e=parseInt(t??"",10);if(Number.isNaN(e)){return[void 0,void 0]}else if(t===String(e)){return[e,t+"px"]}else{return[e,t]}}),"parseFontSize");function W(t,e){return(0,s.A)({},t,e)}(0,i.K2)(W,"cleanAndMerge");var j={assignWithDepth:i.hH,wrapLabel:$,calculateTextHeight:O,calculateTextWidth:D,calculateTextDimensions:I,cleanAndMerge:W,detectInit:d,detectDirective:u,isSubstringInArray:p,interpolateToCurve:g,calcLabelPosition:C,calcCardinalityPosition:w,calcTerminalLabelPosition:S,formatUrl:m,getStylesFromArray:A,generateId:B,random:M,runFunc:y,entityDecode:P,insertTitle:q,parseFontSize:N,InitIDGenerator:K};var H=(0,i.K2)((function(t){let e=t;e=e.replace(/style.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)}));e=e.replace(/classDef.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)}));e=e.replace(/#\w+;/g,(function(t){const e=t.substring(1,t.length-1);const r=/^\+?\d+$/.test(e);if(r){return"fl°°"+e+"¶ß"}else{return"fl°"+e+"¶ß"}}));return e}),"encodeEntities");var Y=(0,i.K2)((function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")}),"decodeEntities");var U=(0,i.K2)(((t,e,{counter:r=0,prefix:i,suffix:a},n)=>{if(n){return n}return`${i?`${i}_`:""}${t}_${e}_${r}${a?`_${a}`:""}`}),"getEdgeId");function G(t){return t??null}(0,i.K2)(G,"handleUndefinedAttr")},94065:(t,e,r)=>{"use strict";r.d(e,{XX:()=>d,q7:()=>u,sO:()=>c});var i=r(33416);var a=r(20778);var n=r(96049);var o=r(75905);var s={common:o.Y2,getConfig:o.zj,insertCluster:a.U,insertEdge:i.Jo,insertEdgeLabel:i.jP,insertMarkers:i.g0,insertNode:a.on,interpolateToCurve:n.Ib,labelHelper:a.Zk,log:o.Rm,positionEdgeLabel:i.T_};var l={};var c=(0,o.K2)((t=>{for(const e of t){l[e.name]=e}}),"registerLayoutLoaders");var h=(0,o.K2)((()=>{c([{name:"dagre",loader:(0,o.K2)((async()=>await Promise.all([r.e(1838),r.e(2211),r.e(6974)]).then(r.bind(r,66974))),"loader")}])}),"registerDefaultLayoutLoaders");h();var d=(0,o.K2)((async(t,e)=>{if(!(t.layoutAlgorithm in l)){throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`)}const r=l[t.layoutAlgorithm];const i=await r.loader();return i.render(t,e,s,{algorithm:r.algorithm})}),"render");var u=(0,o.K2)(((t="",{fallback:e="dagre"}={})=>{if(t in l){return t}if(e in l){o.Rm.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`);return e}throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)}),"getRegisteredLayoutAlgorithm")},94746:(t,e,r)=>{"use strict";r.d(e,{R:()=>s});var i=r(75905);var a={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};function n(t,e){if(t===void 0||e===void 0){return{angle:0,deltaX:0,deltaY:0}}t=o(t);e=o(e);const[r,i]=[t.x,t.y];const[a,n]=[e.x,e.y];const s=a-r;const l=n-i;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}(0,i.K2)(n,"calculateDeltaAndAngle");var o=(0,i.K2)((t=>{if(Array.isArray(t)){return{x:t[0],y:t[1]}}return t}),"pointTransformer");var s=(0,i.K2)((t=>({x:(0,i.K2)((function(e,r,i){let s=0;const l=o(i[0]).x=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(a,t.arrowTypeEnd)){const{angle:e,deltaX:r}=n(i[i.length-1],i[i.length-2]);s=a[t.arrowTypeEnd]*Math.cos(e)*(r>=0?1:-1)}const c=Math.abs(o(e).x-o(i[i.length-1]).x);const h=Math.abs(o(e).y-o(i[i.length-1]).y);const d=Math.abs(o(e).x-o(i[0]).x);const u=Math.abs(o(e).y-o(i[0]).y);const f=a[t.arrowTypeStart];const p=a[t.arrowTypeEnd];const g=1;if(c0&&h0&&u=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(a,t.arrowTypeEnd)){const{angle:e,deltaY:r}=n(i[i.length-1],i[i.length-2]);s=a[t.arrowTypeEnd]*Math.abs(Math.sin(e))*(r>=0?1:-1)}const c=Math.abs(o(e).y-o(i[i.length-1]).y);const h=Math.abs(o(e).x-o(i[i.length-1]).x);const d=Math.abs(o(e).y-o(i[0]).y);const u=Math.abs(o(e).x-o(i[0]).x);const f=a[t.arrowTypeStart];const p=a[t.arrowTypeEnd];const g=1;if(c0&&h0&&u{t("should calculate the angle and deltas between two points",(()=>{e(n([0,0],[0,1])).toStrictEqual({angle:1.5707963267948966,deltaX:0,deltaY:1});e(n([1,0],[0,-1])).toStrictEqual({angle:.7853981633974483,deltaX:-1,deltaY:-1});e(n({x:1,y:0},[0,-1])).toStrictEqual({angle:.7853981633974483,deltaX:-1,deltaY:-1});e(n({x:1,y:0},{x:1,y:0})).toStrictEqual({angle:NaN,deltaX:0,deltaY:0})}));t("should calculate the angle and deltas if one point in undefined",(()=>{e(n(void 0,[0,1])).toStrictEqual({angle:0,deltaX:0,deltaY:0});e(n([0,1],void 0)).toStrictEqual({angle:0,deltaX:0,deltaY:0})}))}))}},75905:(t,e,r)=>{"use strict";r.d(e,{C0:()=>L,VA:()=>C,K2:()=>x,xA:()=>mt,hH:()=>D,Dl:()=>Ht,IU:()=>se,Wt:()=>re,Y2:()=>Ut,a$:()=>Xt,sb:()=>it,ME:()=>be,UI:()=>tt,Ch:()=>_,mW:()=>M,DB:()=>T,_3:()=>Dt,EJ:()=>A,m7:()=>de,iN:()=>ce,zj:()=>pt,D7:()=>me,Gs:()=>Se,J$:()=>E,ab:()=>fe,Q2:()=>ut,P$:()=>j,Wi:()=>jt,H1:()=>kt,Rm:()=>k,QO:()=>Rt,Js:()=>we,Xd:()=>F,VJ:()=>Yt,cL:()=>yt,$i:()=>et,jZ:()=>Lt,oB:()=>xe,wZ:()=>ht,EI:()=>he,SV:()=>le,Nk:()=>ft,XV:()=>ye,ke:()=>ue,He:()=>w,UU:()=>ct,ot:()=>Zt,mj:()=>Ce,tM:()=>ee,H$:()=>V,B6:()=>dt});var i=r(74353);var a=r.n(i);var n=r(63221);var o=r(69745);const s=(t,e)=>{const r=n.A.parse(t);const i={};for(const a in e){if(!e[a])continue;i[a]=r[a]+e[a]}return(0,o.A)(t,i)};const l=s;var c=r(3635);const h=(t,e,r=50)=>{const{r:i,g:a,b:o,a:s}=n.A.parse(t);const{r:l,g:h,b:d,a:u}=n.A.parse(e);const f=r/100;const p=f*2-1;const g=s-u;const m=p*g===-1?p:(p+g)/(1+p*g);const y=(m+1)/2;const b=1-y;const x=i*y+l*b;const C=a*y+h*b;const v=o*y+d*b;const k=s*f+u*(1-f);return(0,c.A)(x,C,v,k)};const d=h;const u=(t,e=100)=>{const r=n.A.parse(t);r.r=255-r.r;r.g=255-r.g;r.b=255-r.b;return d(r,t,e)};const f=u;var p=r(48750);var g=r(77470);var m=r(63170);var y=r(84997);var b=Object.defineProperty;var x=(t,e)=>b(t,"name",{value:e,configurable:true});var C=(t,e)=>{for(var r in e)b(t,r,{get:e[r],enumerable:true})};var v={trace:0,debug:1,info:2,warn:3,error:4,fatal:5};var k={trace:x(((...t)=>{}),"trace"),debug:x(((...t)=>{}),"debug"),info:x(((...t)=>{}),"info"),warn:x(((...t)=>{}),"warn"),error:x(((...t)=>{}),"error"),fatal:x(((...t)=>{}),"fatal")};var w=x((function(t="fatal"){let e=v.fatal;if(typeof t==="string"){if(t.toLowerCase()in v){e=v[t]}}else if(typeof t==="number"){e=t}k.trace=()=>{};k.debug=()=>{};k.info=()=>{};k.warn=()=>{};k.error=()=>{};k.fatal=()=>{};if(e<=v.fatal){k.fatal=console.error?console.error.bind(console,S("FATAL"),"color: orange"):console.log.bind(console,"",S("FATAL"))}if(e<=v.error){k.error=console.error?console.error.bind(console,S("ERROR"),"color: orange"):console.log.bind(console,"",S("ERROR"))}if(e<=v.warn){k.warn=console.warn?console.warn.bind(console,S("WARN"),"color: orange"):console.log.bind(console,``,S("WARN"))}if(e<=v.info){k.info=console.info?console.info.bind(console,S("INFO"),"color: lightblue"):console.log.bind(console,"",S("INFO"))}if(e<=v.debug){k.debug=console.debug?console.debug.bind(console,S("DEBUG"),"color: lightgreen"):console.log.bind(console,"",S("DEBUG"))}if(e<=v.trace){k.trace=console.debug?console.debug.bind(console,S("TRACE"),"color: lightgreen"):console.log.bind(console,"",S("TRACE"))}}),"setLogLevel");var S=x((t=>{const e=a()().format("ss.SSS");return`%c${e} : ${t} : `}),"format");var A=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;var T=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;var B=/\s*%%.*\n/gm;var L=class extends Error{static{x(this,"UnknownDiagramError")}constructor(t){super(t);this.name="UnknownDiagramError"}};var M={};var _=x((function(t,e){t=t.replace(A,"").replace(T,"").replace(B,"\n");for(const[r,{detector:i}]of Object.entries(M)){const a=i(t,e);if(a){return r}}throw new L(`No diagram type detected matching given configuration for text: ${t}`)}),"detectType");var F=x(((...t)=>{for(const{id:e,detector:r,loader:i}of t){$(e,r,i)}}),"registerLazyLoadedDiagrams");var $=x(((t,e,r)=>{if(M[t]){k.warn(`Detector with key ${t} already exists. Overwriting.`)}M[t]={detector:e,loader:r};k.debug(`Detector with key ${t} added${r?" with loader":""}`)}),"addDetector");var E=x((t=>M[t].loader),"getDiagramLoader");var O=x(((t,e,{depth:r=2,clobber:i=false}={})=>{const a={depth:r,clobber:i};if(Array.isArray(e)&&!Array.isArray(t)){e.forEach((e=>O(t,e,a)));return t}else if(Array.isArray(e)&&Array.isArray(t)){e.forEach((e=>{if(!t.includes(e)){t.push(e)}}));return t}if(t===void 0||r<=0){if(t!==void 0&&t!==null&&typeof t==="object"&&typeof e==="object"){return Object.assign(t,e)}else{return e}}if(e!==void 0&&typeof t==="object"&&typeof e==="object"){Object.keys(e).forEach((a=>{if(typeof e[a]==="object"&&(t[a]===void 0||typeof t[a]==="object")){if(t[a]===void 0){t[a]=Array.isArray(e[a])?[]:{}}t[a]=O(t[a],e[a],{depth:r-1,clobber:i})}else if(i||typeof t[a]!=="object"&&typeof e[a]!=="object"){t[a]=e[a]}}))}return t}),"assignWithDepth");var D=O;var I="#ffffff";var K="#f2f2f2";var R=x(((t,e)=>e?l(t,{s:-40,l:10}):l(t,{s:-40,l:-10})),"mkBorder");var P=class{static{x(this,"Theme")}constructor(){this.background="#f4f4f4";this.primaryColor="#fff4dd";this.noteBkgColor="#fff5ad";this.noteTextColor="#333";this.THEME_COLOR_LIMIT=12;this.fontFamily='"trebuchet ms", verdana, arial, sans-serif';this.fontSize="16px"}updateColors(){this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333");this.secondaryColor=this.secondaryColor||l(this.primaryColor,{h:-120});this.tertiaryColor=this.tertiaryColor||l(this.primaryColor,{h:180,l:5});this.primaryBorderColor=this.primaryBorderColor||R(this.primaryColor,this.darkMode);this.secondaryBorderColor=this.secondaryBorderColor||R(this.secondaryColor,this.darkMode);this.tertiaryBorderColor=this.tertiaryBorderColor||R(this.tertiaryColor,this.darkMode);this.noteBorderColor=this.noteBorderColor||R(this.noteBkgColor,this.darkMode);this.noteBkgColor=this.noteBkgColor||"#fff5ad";this.noteTextColor=this.noteTextColor||"#333";this.secondaryTextColor=this.secondaryTextColor||f(this.secondaryColor);this.tertiaryTextColor=this.tertiaryTextColor||f(this.tertiaryColor);this.lineColor=this.lineColor||f(this.background);this.arrowheadColor=this.arrowheadColor||f(this.background);this.textColor=this.textColor||this.primaryTextColor;this.border2=this.border2||this.tertiaryBorderColor;this.nodeBkg=this.nodeBkg||this.primaryColor;this.mainBkg=this.mainBkg||this.primaryColor;this.nodeBorder=this.nodeBorder||this.primaryBorderColor;this.clusterBkg=this.clusterBkg||this.tertiaryColor;this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor;this.defaultLinkColor=this.defaultLinkColor||this.lineColor;this.titleColor=this.titleColor||this.tertiaryTextColor;this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?(0,p.A)(this.secondaryColor,30):this.secondaryColor);this.nodeTextColor=this.nodeTextColor||this.primaryTextColor;this.actorBorder=this.actorBorder||this.primaryBorderColor;this.actorBkg=this.actorBkg||this.mainBkg;this.actorTextColor=this.actorTextColor||this.primaryTextColor;this.actorLineColor=this.actorLineColor||this.actorBorder;this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg;this.signalColor=this.signalColor||this.textColor;this.signalTextColor=this.signalTextColor||this.textColor;this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder;this.labelTextColor=this.labelTextColor||this.actorTextColor;this.loopTextColor=this.loopTextColor||this.actorTextColor;this.activationBorderColor=this.activationBorderColor||(0,p.A)(this.secondaryColor,10);this.activationBkgColor=this.activationBkgColor||this.secondaryColor;this.sequenceNumberColor=this.sequenceNumberColor||f(this.lineColor);this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor;this.altSectionBkgColor=this.altSectionBkgColor||"white";this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor;this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor;this.excludeBkgColor=this.excludeBkgColor||"#eeeeee";this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor;this.taskBkgColor=this.taskBkgColor||this.primaryColor;this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor;this.activeTaskBkgColor=this.activeTaskBkgColor||(0,g.A)(this.primaryColor,23);this.gridColor=this.gridColor||"lightgrey";this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey";this.doneTaskBorderColor=this.doneTaskBorderColor||"grey";this.critBorderColor=this.critBorderColor||"#ff8888";this.critBkgColor=this.critBkgColor||"red";this.todayLineColor=this.todayLineColor||"red";this.taskTextColor=this.taskTextColor||this.textColor;this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor;this.taskTextLightColor=this.taskTextLightColor||this.textColor;this.taskTextColor=this.taskTextColor||this.primaryTextColor;this.taskTextDarkColor=this.taskTextDarkColor||this.textColor;this.taskTextClickableColor=this.taskTextClickableColor||"#003163";this.personBorder=this.personBorder||this.primaryBorderColor;this.personBkg=this.personBkg||this.mainBkg;if(this.darkMode){this.rowOdd=this.rowOdd||(0,p.A)(this.mainBkg,5)||"#ffffff";this.rowEven=this.rowEven||(0,p.A)(this.mainBkg,10)}else{this.rowOdd=this.rowOdd||(0,g.A)(this.mainBkg,75)||"#ffffff";this.rowEven=this.rowEven||(0,g.A)(this.mainBkg,5)}this.transitionColor=this.transitionColor||this.lineColor;this.transitionLabelColor=this.transitionLabelColor||this.textColor;this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor;this.stateBkg=this.stateBkg||this.mainBkg;this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg;this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor;this.altBackground=this.altBackground||this.tertiaryColor;this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg;this.compositeBorder=this.compositeBorder||this.nodeBorder;this.innerEndBackground=this.nodeBorder;this.errorBkgColor=this.errorBkgColor||this.tertiaryColor;this.errorTextColor=this.errorTextColor||this.tertiaryTextColor;this.transitionColor=this.transitionColor||this.lineColor;this.specialStateColor=this.lineColor;this.cScale0=this.cScale0||this.primaryColor;this.cScale1=this.cScale1||this.secondaryColor;this.cScale2=this.cScale2||this.tertiaryColor;this.cScale3=this.cScale3||l(this.primaryColor,{h:30});this.cScale4=this.cScale4||l(this.primaryColor,{h:60});this.cScale5=this.cScale5||l(this.primaryColor,{h:90});this.cScale6=this.cScale6||l(this.primaryColor,{h:120});this.cScale7=this.cScale7||l(this.primaryColor,{h:150});this.cScale8=this.cScale8||l(this.primaryColor,{h:210,l:150});this.cScale9=this.cScale9||l(this.primaryColor,{h:270});this.cScale10=this.cScale10||l(this.primaryColor,{h:300});this.cScale11=this.cScale11||l(this.primaryColor,{h:330});if(this.darkMode){for(let t=0;t{this[e]=t[e]}));this.updateColors();e.forEach((e=>{this[e]=t[e]}))}};var z=x((t=>{const e=new P;e.calculate(t);return e}),"getThemeVariables");var q=class{static{x(this,"Theme")}constructor(){this.background="#333";this.primaryColor="#1f2020";this.secondaryColor=(0,g.A)(this.primaryColor,16);this.tertiaryColor=l(this.primaryColor,{h:-160});this.primaryBorderColor=f(this.background);this.secondaryBorderColor=R(this.secondaryColor,this.darkMode);this.tertiaryBorderColor=R(this.tertiaryColor,this.darkMode);this.primaryTextColor=f(this.primaryColor);this.secondaryTextColor=f(this.secondaryColor);this.tertiaryTextColor=f(this.tertiaryColor);this.lineColor=f(this.background);this.textColor=f(this.background);this.mainBkg="#1f2020";this.secondBkg="calculated";this.mainContrastColor="lightgrey";this.darkTextColor=(0,g.A)(f("#323D47"),10);this.lineColor="calculated";this.border1="#ccc";this.border2=(0,c.A)(255,255,255,.25);this.arrowheadColor="calculated";this.fontFamily='"trebuchet ms", verdana, arial, sans-serif';this.fontSize="16px";this.labelBackground="#181818";this.textColor="#ccc";this.THEME_COLOR_LIMIT=12;this.nodeBkg="calculated";this.nodeBorder="calculated";this.clusterBkg="calculated";this.clusterBorder="calculated";this.defaultLinkColor="calculated";this.titleColor="#F9FFFE";this.edgeLabelBackground="calculated";this.actorBorder="calculated";this.actorBkg="calculated";this.actorTextColor="calculated";this.actorLineColor="calculated";this.signalColor="calculated";this.signalTextColor="calculated";this.labelBoxBkgColor="calculated";this.labelBoxBorderColor="calculated";this.labelTextColor="calculated";this.loopTextColor="calculated";this.noteBorderColor="calculated";this.noteBkgColor="#fff5ad";this.noteTextColor="calculated";this.activationBorderColor="calculated";this.activationBkgColor="calculated";this.sequenceNumberColor="black";this.sectionBkgColor=(0,p.A)("#EAE8D9",30);this.altSectionBkgColor="calculated";this.sectionBkgColor2="#EAE8D9";this.excludeBkgColor=(0,p.A)(this.sectionBkgColor,10);this.taskBorderColor=(0,c.A)(255,255,255,70);this.taskBkgColor="calculated";this.taskTextColor="calculated";this.taskTextLightColor="calculated";this.taskTextOutsideColor="calculated";this.taskTextClickableColor="#003163";this.activeTaskBorderColor=(0,c.A)(255,255,255,50);this.activeTaskBkgColor="#81B1DB";this.gridColor="calculated";this.doneTaskBkgColor="calculated";this.doneTaskBorderColor="grey";this.critBorderColor="#E83737";this.critBkgColor="#E83737";this.taskTextDarkColor="calculated";this.todayLineColor="#DB5757";this.personBorder=this.primaryBorderColor;this.personBkg=this.mainBkg;this.archEdgeColor="calculated";this.archEdgeArrowColor="calculated";this.archEdgeWidth="3";this.archGroupBorderColor=this.primaryBorderColor;this.archGroupBorderWidth="2px";this.rowOdd=this.rowOdd||(0,g.A)(this.mainBkg,5)||"#ffffff";this.rowEven=this.rowEven||(0,p.A)(this.mainBkg,10);this.labelColor="calculated";this.errorBkgColor="#a44141";this.errorTextColor="#ddd"}updateColors(){this.secondBkg=(0,g.A)(this.mainBkg,16);this.lineColor=this.mainContrastColor;this.arrowheadColor=this.mainContrastColor;this.nodeBkg=this.mainBkg;this.nodeBorder=this.border1;this.clusterBkg=this.secondBkg;this.clusterBorder=this.border2;this.defaultLinkColor=this.lineColor;this.edgeLabelBackground=(0,g.A)(this.labelBackground,25);this.actorBorder=this.border1;this.actorBkg=this.mainBkg;this.actorTextColor=this.mainContrastColor;this.actorLineColor=this.actorBorder;this.signalColor=this.mainContrastColor;this.signalTextColor=this.mainContrastColor;this.labelBoxBkgColor=this.actorBkg;this.labelBoxBorderColor=this.actorBorder;this.labelTextColor=this.mainContrastColor;this.loopTextColor=this.mainContrastColor;this.noteBorderColor=this.secondaryBorderColor;this.noteBkgColor=this.secondBkg;this.noteTextColor=this.secondaryTextColor;this.activationBorderColor=this.border1;this.activationBkgColor=this.secondBkg;this.altSectionBkgColor=this.background;this.taskBkgColor=(0,g.A)(this.mainBkg,23);this.taskTextColor=this.darkTextColor;this.taskTextLightColor=this.mainContrastColor;this.taskTextOutsideColor=this.taskTextLightColor;this.gridColor=this.mainContrastColor;this.doneTaskBkgColor=this.mainContrastColor;this.taskTextDarkColor=this.darkTextColor;this.archEdgeColor=this.lineColor;this.archEdgeArrowColor=this.lineColor;this.transitionColor=this.transitionColor||this.lineColor;this.transitionLabelColor=this.transitionLabelColor||this.textColor;this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor;this.stateBkg=this.stateBkg||this.mainBkg;this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg;this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor;this.altBackground=this.altBackground||"#555";this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg;this.compositeBorder=this.compositeBorder||this.nodeBorder;this.innerEndBackground=this.primaryBorderColor;this.specialStateColor="#f4f4f4";this.errorBkgColor=this.errorBkgColor||this.tertiaryColor;this.errorTextColor=this.errorTextColor||this.tertiaryTextColor;this.fillType0=this.primaryColor;this.fillType1=this.secondaryColor;this.fillType2=l(this.primaryColor,{h:64});this.fillType3=l(this.secondaryColor,{h:64});this.fillType4=l(this.primaryColor,{h:-64});this.fillType5=l(this.secondaryColor,{h:-64});this.fillType6=l(this.primaryColor,{h:128});this.fillType7=l(this.secondaryColor,{h:128});this.cScale1=this.cScale1||"#0b0000";this.cScale2=this.cScale2||"#4d1037";this.cScale3=this.cScale3||"#3f5258";this.cScale4=this.cScale4||"#4f2f1b";this.cScale5=this.cScale5||"#6e0a0a";this.cScale6=this.cScale6||"#3b0048";this.cScale7=this.cScale7||"#995a01";this.cScale8=this.cScale8||"#154706";this.cScale9=this.cScale9||"#161722";this.cScale10=this.cScale10||"#00296f";this.cScale11=this.cScale11||"#01629c";this.cScale12=this.cScale12||"#010029";this.cScale0=this.cScale0||this.primaryColor;this.cScale1=this.cScale1||this.secondaryColor;this.cScale2=this.cScale2||this.tertiaryColor;this.cScale3=this.cScale3||l(this.primaryColor,{h:30});this.cScale4=this.cScale4||l(this.primaryColor,{h:60});this.cScale5=this.cScale5||l(this.primaryColor,{h:90});this.cScale6=this.cScale6||l(this.primaryColor,{h:120});this.cScale7=this.cScale7||l(this.primaryColor,{h:150});this.cScale8=this.cScale8||l(this.primaryColor,{h:210});this.cScale9=this.cScale9||l(this.primaryColor,{h:270});this.cScale10=this.cScale10||l(this.primaryColor,{h:300});this.cScale11=this.cScale11||l(this.primaryColor,{h:330});for(let t=0;t{this[e]=t[e]}));this.updateColors();e.forEach((e=>{this[e]=t[e]}))}};var N=x((t=>{const e=new q;e.calculate(t);return e}),"getThemeVariables");var W=class{static{x(this,"Theme")}constructor(){this.background="#f4f4f4";this.primaryColor="#ECECFF";this.secondaryColor=l(this.primaryColor,{h:120});this.secondaryColor="#ffffde";this.tertiaryColor=l(this.primaryColor,{h:-160});this.primaryBorderColor=R(this.primaryColor,this.darkMode);this.secondaryBorderColor=R(this.secondaryColor,this.darkMode);this.tertiaryBorderColor=R(this.tertiaryColor,this.darkMode);this.primaryTextColor=f(this.primaryColor);this.secondaryTextColor=f(this.secondaryColor);this.tertiaryTextColor=f(this.tertiaryColor);this.lineColor=f(this.background);this.textColor=f(this.background);this.background="white";this.mainBkg="#ECECFF";this.secondBkg="#ffffde";this.lineColor="#333333";this.border1="#9370DB";this.border2="#aaaa33";this.arrowheadColor="#333333";this.fontFamily='"trebuchet ms", verdana, arial, sans-serif';this.fontSize="16px";this.labelBackground="rgba(232,232,232, 0.8)";this.textColor="#333";this.THEME_COLOR_LIMIT=12;this.nodeBkg="calculated";this.nodeBorder="calculated";this.clusterBkg="calculated";this.clusterBorder="calculated";this.defaultLinkColor="calculated";this.titleColor="calculated";this.edgeLabelBackground="calculated";this.actorBorder="calculated";this.actorBkg="calculated";this.actorTextColor="black";this.actorLineColor="calculated";this.signalColor="calculated";this.signalTextColor="calculated";this.labelBoxBkgColor="calculated";this.labelBoxBorderColor="calculated";this.labelTextColor="calculated";this.loopTextColor="calculated";this.noteBorderColor="calculated";this.noteBkgColor="#fff5ad";this.noteTextColor="calculated";this.activationBorderColor="#666";this.activationBkgColor="#f4f4f4";this.sequenceNumberColor="white";this.sectionBkgColor="calculated";this.altSectionBkgColor="calculated";this.sectionBkgColor2="calculated";this.excludeBkgColor="#eeeeee";this.taskBorderColor="calculated";this.taskBkgColor="calculated";this.taskTextLightColor="calculated";this.taskTextColor=this.taskTextLightColor;this.taskTextDarkColor="calculated";this.taskTextOutsideColor=this.taskTextDarkColor;this.taskTextClickableColor="calculated";this.activeTaskBorderColor="calculated";this.activeTaskBkgColor="calculated";this.gridColor="calculated";this.doneTaskBkgColor="calculated";this.doneTaskBorderColor="calculated";this.critBorderColor="calculated";this.critBkgColor="calculated";this.todayLineColor="calculated";this.sectionBkgColor=(0,c.A)(102,102,255,.49);this.altSectionBkgColor="white";this.sectionBkgColor2="#fff400";this.taskBorderColor="#534fbc";this.taskBkgColor="#8a90dd";this.taskTextLightColor="white";this.taskTextColor="calculated";this.taskTextDarkColor="black";this.taskTextOutsideColor="calculated";this.taskTextClickableColor="#003163";this.activeTaskBorderColor="#534fbc";this.activeTaskBkgColor="#bfc7ff";this.gridColor="lightgrey";this.doneTaskBkgColor="lightgrey";this.doneTaskBorderColor="grey";this.critBorderColor="#ff8888";this.critBkgColor="red";this.todayLineColor="red";this.personBorder=this.primaryBorderColor;this.personBkg=this.mainBkg;this.archEdgeColor="calculated";this.archEdgeArrowColor="calculated";this.archEdgeWidth="3";this.archGroupBorderColor=this.primaryBorderColor;this.archGroupBorderWidth="2px";this.rowOdd="calculated";this.rowEven="calculated";this.labelColor="black";this.errorBkgColor="#552222";this.errorTextColor="#552222";this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor;this.cScale1=this.cScale1||this.secondaryColor;this.cScale2=this.cScale2||this.tertiaryColor;this.cScale3=this.cScale3||l(this.primaryColor,{h:30});this.cScale4=this.cScale4||l(this.primaryColor,{h:60});this.cScale5=this.cScale5||l(this.primaryColor,{h:90});this.cScale6=this.cScale6||l(this.primaryColor,{h:120});this.cScale7=this.cScale7||l(this.primaryColor,{h:150});this.cScale8=this.cScale8||l(this.primaryColor,{h:210});this.cScale9=this.cScale9||l(this.primaryColor,{h:270});this.cScale10=this.cScale10||l(this.primaryColor,{h:300});this.cScale11=this.cScale11||l(this.primaryColor,{h:330});this["cScalePeer1"]=this["cScalePeer1"]||(0,p.A)(this.secondaryColor,45);this["cScalePeer2"]=this["cScalePeer2"]||(0,p.A)(this.tertiaryColor,40);for(let t=0;t{if(this[t]==="calculated"){this[t]=void 0}}));if(typeof t!=="object"){this.updateColors();return}const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]}));this.updateColors();e.forEach((e=>{this[e]=t[e]}))}};var j=x((t=>{const e=new W;e.calculate(t);return e}),"getThemeVariables");var H=class{static{x(this,"Theme")}constructor(){this.background="#f4f4f4";this.primaryColor="#cde498";this.secondaryColor="#cdffb2";this.background="white";this.mainBkg="#cde498";this.secondBkg="#cdffb2";this.lineColor="green";this.border1="#13540c";this.border2="#6eaa49";this.arrowheadColor="green";this.fontFamily='"trebuchet ms", verdana, arial, sans-serif';this.fontSize="16px";this.tertiaryColor=(0,g.A)("#cde498",10);this.primaryBorderColor=R(this.primaryColor,this.darkMode);this.secondaryBorderColor=R(this.secondaryColor,this.darkMode);this.tertiaryBorderColor=R(this.tertiaryColor,this.darkMode);this.primaryTextColor=f(this.primaryColor);this.secondaryTextColor=f(this.secondaryColor);this.tertiaryTextColor=f(this.primaryColor);this.lineColor=f(this.background);this.textColor=f(this.background);this.THEME_COLOR_LIMIT=12;this.nodeBkg="calculated";this.nodeBorder="calculated";this.clusterBkg="calculated";this.clusterBorder="calculated";this.defaultLinkColor="calculated";this.titleColor="#333";this.edgeLabelBackground="#e8e8e8";this.actorBorder="calculated";this.actorBkg="calculated";this.actorTextColor="black";this.actorLineColor="calculated";this.signalColor="#333";this.signalTextColor="#333";this.labelBoxBkgColor="calculated";this.labelBoxBorderColor="#326932";this.labelTextColor="calculated";this.loopTextColor="calculated";this.noteBorderColor="calculated";this.noteBkgColor="#fff5ad";this.noteTextColor="calculated";this.activationBorderColor="#666";this.activationBkgColor="#f4f4f4";this.sequenceNumberColor="white";this.sectionBkgColor="#6eaa49";this.altSectionBkgColor="white";this.sectionBkgColor2="#6eaa49";this.excludeBkgColor="#eeeeee";this.taskBorderColor="calculated";this.taskBkgColor="#487e3a";this.taskTextLightColor="white";this.taskTextColor="calculated";this.taskTextDarkColor="black";this.taskTextOutsideColor="calculated";this.taskTextClickableColor="#003163";this.activeTaskBorderColor="calculated";this.activeTaskBkgColor="calculated";this.gridColor="lightgrey";this.doneTaskBkgColor="lightgrey";this.doneTaskBorderColor="grey";this.critBorderColor="#ff8888";this.critBkgColor="red";this.todayLineColor="red";this.personBorder=this.primaryBorderColor;this.personBkg=this.mainBkg;this.archEdgeColor="calculated";this.archEdgeArrowColor="calculated";this.archEdgeWidth="3";this.archGroupBorderColor=this.primaryBorderColor;this.archGroupBorderWidth="2px";this.labelColor="black";this.errorBkgColor="#552222";this.errorTextColor="#552222"}updateColors(){this.actorBorder=(0,p.A)(this.mainBkg,20);this.actorBkg=this.mainBkg;this.labelBoxBkgColor=this.actorBkg;this.labelTextColor=this.actorTextColor;this.loopTextColor=this.actorTextColor;this.noteBorderColor=this.border2;this.noteTextColor=this.actorTextColor;this.actorLineColor=this.actorBorder;this.cScale0=this.cScale0||this.primaryColor;this.cScale1=this.cScale1||this.secondaryColor;this.cScale2=this.cScale2||this.tertiaryColor;this.cScale3=this.cScale3||l(this.primaryColor,{h:30});this.cScale4=this.cScale4||l(this.primaryColor,{h:60});this.cScale5=this.cScale5||l(this.primaryColor,{h:90});this.cScale6=this.cScale6||l(this.primaryColor,{h:120});this.cScale7=this.cScale7||l(this.primaryColor,{h:150});this.cScale8=this.cScale8||l(this.primaryColor,{h:210});this.cScale9=this.cScale9||l(this.primaryColor,{h:270});this.cScale10=this.cScale10||l(this.primaryColor,{h:300});this.cScale11=this.cScale11||l(this.primaryColor,{h:330});this["cScalePeer1"]=this["cScalePeer1"]||(0,p.A)(this.secondaryColor,45);this["cScalePeer2"]=this["cScalePeer2"]||(0,p.A)(this.tertiaryColor,40);for(let t=0;t{this[e]=t[e]}));this.updateColors();e.forEach((e=>{this[e]=t[e]}))}};var Y=x((t=>{const e=new H;e.calculate(t);return e}),"getThemeVariables");var U=class{static{x(this,"Theme")}constructor(){this.primaryColor="#eee";this.contrast="#707070";this.secondaryColor=(0,g.A)(this.contrast,55);this.background="#ffffff";this.tertiaryColor=l(this.primaryColor,{h:-160});this.primaryBorderColor=R(this.primaryColor,this.darkMode);this.secondaryBorderColor=R(this.secondaryColor,this.darkMode);this.tertiaryBorderColor=R(this.tertiaryColor,this.darkMode);this.primaryTextColor=f(this.primaryColor);this.secondaryTextColor=f(this.secondaryColor);this.tertiaryTextColor=f(this.tertiaryColor);this.lineColor=f(this.background);this.textColor=f(this.background);this.mainBkg="#eee";this.secondBkg="calculated";this.lineColor="#666";this.border1="#999";this.border2="calculated";this.note="#ffa";this.text="#333";this.critical="#d42";this.done="#bbb";this.arrowheadColor="#333333";this.fontFamily='"trebuchet ms", verdana, arial, sans-serif';this.fontSize="16px";this.THEME_COLOR_LIMIT=12;this.nodeBkg="calculated";this.nodeBorder="calculated";this.clusterBkg="calculated";this.clusterBorder="calculated";this.defaultLinkColor="calculated";this.titleColor="calculated";this.edgeLabelBackground="white";this.actorBorder="calculated";this.actorBkg="calculated";this.actorTextColor="calculated";this.actorLineColor=this.actorBorder;this.signalColor="calculated";this.signalTextColor="calculated";this.labelBoxBkgColor="calculated";this.labelBoxBorderColor="calculated";this.labelTextColor="calculated";this.loopTextColor="calculated";this.noteBorderColor="calculated";this.noteBkgColor="calculated";this.noteTextColor="calculated";this.activationBorderColor="#666";this.activationBkgColor="#f4f4f4";this.sequenceNumberColor="white";this.sectionBkgColor="calculated";this.altSectionBkgColor="white";this.sectionBkgColor2="calculated";this.excludeBkgColor="#eeeeee";this.taskBorderColor="calculated";this.taskBkgColor="calculated";this.taskTextLightColor="white";this.taskTextColor="calculated";this.taskTextDarkColor="calculated";this.taskTextOutsideColor="calculated";this.taskTextClickableColor="#003163";this.activeTaskBorderColor="calculated";this.activeTaskBkgColor="calculated";this.gridColor="calculated";this.doneTaskBkgColor="calculated";this.doneTaskBorderColor="calculated";this.critBkgColor="calculated";this.critBorderColor="calculated";this.todayLineColor="calculated";this.personBorder=this.primaryBorderColor;this.personBkg=this.mainBkg;this.archEdgeColor="calculated";this.archEdgeArrowColor="calculated";this.archEdgeWidth="3";this.archGroupBorderColor=this.primaryBorderColor;this.archGroupBorderWidth="2px";this.rowOdd=this.rowOdd||(0,g.A)(this.mainBkg,75)||"#ffffff";this.rowEven=this.rowEven||"#f4f4f4";this.labelColor="black";this.errorBkgColor="#552222";this.errorTextColor="#552222"}updateColors(){this.secondBkg=(0,g.A)(this.contrast,55);this.border2=this.contrast;this.actorBorder=(0,g.A)(this.border1,23);this.actorBkg=this.mainBkg;this.actorTextColor=this.text;this.actorLineColor=this.actorBorder;this.signalColor=this.text;this.signalTextColor=this.text;this.labelBoxBkgColor=this.actorBkg;this.labelBoxBorderColor=this.actorBorder;this.labelTextColor=this.text;this.loopTextColor=this.text;this.noteBorderColor="#999";this.noteBkgColor="#666";this.noteTextColor="#fff";this.cScale0=this.cScale0||"#555";this.cScale1=this.cScale1||"#F4F4F4";this.cScale2=this.cScale2||"#555";this.cScale3=this.cScale3||"#BBB";this.cScale4=this.cScale4||"#777";this.cScale5=this.cScale5||"#999";this.cScale6=this.cScale6||"#DDD";this.cScale7=this.cScale7||"#FFF";this.cScale8=this.cScale8||"#DDD";this.cScale9=this.cScale9||"#BBB";this.cScale10=this.cScale10||"#999";this.cScale11=this.cScale11||"#777";for(let t=0;t{this[e]=t[e]}));this.updateColors();e.forEach((e=>{this[e]=t[e]}))}};var G=x((t=>{const e=new U;e.calculate(t);return e}),"getThemeVariables");var V={base:{getThemeVariables:z},dark:{getThemeVariables:N},default:{getThemeVariables:j},forest:{getThemeVariables:Y},neutral:{getThemeVariables:G}};var X={flowchart:{useMaxWidth:true,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:true,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:true,hideUnusedParticipants:false,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:true,forceMenus:false,bottomMarginAdj:1,rightAngles:false,showSequenceNumbers:false,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:false,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:true,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:false,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:true,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:false,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:true,titleTopMargin:25,arrowMarkerAbsolute:false,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:false,hideEmptyMembersBox:false},state:{useMaxWidth:true,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:true,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,nodeSpacing:140,rankSpacing:80,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:true,textPosition:.75},quadrantChart:{useMaxWidth:true,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:true,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:true,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:true,labelFontSize:14,labelPadding:5,showTitle:true,titleFontSize:16,titlePadding:5,showTick:true,tickLength:5,tickWidth:2,showAxisLine:true,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:true,labelFontSize:14,labelPadding:5,showTitle:true,titleFontSize:16,titlePadding:5,showTick:true,tickLength:5,tickWidth:2,showAxisLine:true,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:true,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:true,padding:10,maxNodeWidth:200},kanban:{useMaxWidth:true,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:true,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:false,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:false},gitGraph:{useMaxWidth:true,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:true,showBranches:true,rotateCommitLabel:true,parallelCommits:false,arrowMarkerAbsolute:false},c4:{useMaxWidth:true,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:true,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:true,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:true,prefix:"",suffix:""},block:{useMaxWidth:true,padding:8},packet:{useMaxWidth:true,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:true,paddingX:5,paddingY:5},architecture:{useMaxWidth:true,padding:40,iconSize:80,fontSize:16},radar:{useMaxWidth:true,width:600,height:600,marginTop:50,marginRight:50,marginBottom:50,marginLeft:50,axisScaleFactor:1,axisLabelFactor:1.05,curveTension:.17},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:false,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:true,arrowMarkerAbsolute:false,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:false,forceLegacyMathML:false,deterministicIds:false,fontSize:16,markdownAutoWrap:true,suppressErrorRendering:false};var Z={...X,deterministicIDSeed:void 0,elk:{mergeEdges:false,nodePlacementStrategy:"BRANDES_KOEPF"},themeCSS:void 0,themeVariables:V.default.getThemeVariables(),sequence:{...X.sequence,messageFont:x((function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}),"messageFont"),noteFont:x((function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}}),"noteFont"),actorFont:x((function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}),"actorFont")},class:{hideEmptyMembersBox:false},gantt:{...X.gantt,tickInterval:void 0,useWidth:void 0},c4:{...X.c4,useWidth:void 0,personFont:x((function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}}),"personFont"),external_personFont:x((function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}}),"external_personFont"),systemFont:x((function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}}),"systemFont"),external_systemFont:x((function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}}),"external_systemFont"),system_dbFont:x((function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}}),"system_dbFont"),external_system_dbFont:x((function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}}),"external_system_dbFont"),system_queueFont:x((function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}}),"system_queueFont"),external_system_queueFont:x((function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}}),"external_system_queueFont"),containerFont:x((function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}}),"containerFont"),external_containerFont:x((function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}}),"external_containerFont"),container_dbFont:x((function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}}),"container_dbFont"),external_container_dbFont:x((function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}}),"external_container_dbFont"),container_queueFont:x((function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}}),"container_queueFont"),external_container_queueFont:x((function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}}),"external_container_queueFont"),componentFont:x((function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}}),"componentFont"),external_componentFont:x((function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}}),"external_componentFont"),component_dbFont:x((function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}}),"component_dbFont"),external_component_dbFont:x((function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}}),"external_component_dbFont"),component_queueFont:x((function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}}),"component_queueFont"),external_component_queueFont:x((function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}}),"external_component_queueFont"),boundaryFont:x((function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}}),"boundaryFont"),messageFont:x((function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}),"messageFont")},pie:{...X.pie,useWidth:984},xyChart:{...X.xyChart,useWidth:void 0},requirement:{...X.requirement,useWidth:void 0},packet:{...X.packet},radar:{...X.radar}};var J=x(((t,e="")=>Object.keys(t).reduce(((r,i)=>{if(Array.isArray(t[i])){return r}else if(typeof t[i]==="object"&&t[i]!==null){return[...r,e+i,...J(t[i],"")]}return[...r,e+i]}),[])),"keyify");var Q=new Set(J(Z,""));var tt=Z;var et=x((t=>{k.debug("sanitizeDirective called with",t);if(typeof t!=="object"||t==null){return}if(Array.isArray(t)){t.forEach((t=>et(t)));return}for(const e of Object.keys(t)){k.debug("Checking key",e);if(e.startsWith("__")||e.includes("proto")||e.includes("constr")||!Q.has(e)||t[e]==null){k.debug("sanitize deleting key: ",e);delete t[e];continue}if(typeof t[e]==="object"){k.debug("sanitizing object",e);et(t[e]);continue}const r=["themeCSS","fontFamily","altFontFamily"];for(const i of r){if(e.includes(i)){k.debug("sanitizing css option",e);t[e]=rt(t[e])}}}if(t.themeVariables){for(const e of Object.keys(t.themeVariables)){const r=t.themeVariables[e];if(r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)){t.themeVariables[e]=""}}}k.debug("After sanitization",t)}),"sanitizeDirective");var rt=x((t=>{let e=0;let r=0;for(const i of t){if(e{let r=D({},t);let i={};for(const a of e){gt(a);i=D(i,a)}r=D(r,i);if(i.theme&&i.theme in V){const t=D({},nt);const e=D(t.themeVariables||{},i.themeVariables);if(r.theme&&r.theme in V){r.themeVariables=V[r.theme].getThemeVariables(e)}}st=r;vt(st);return st}),"updateCurrentConfig");var ct=x((t=>{at=D({},it);at=D(at,t);if(t.theme&&V[t.theme]){at.themeVariables=V[t.theme].getThemeVariables(t.themeVariables)}lt(at,ot);return at}),"setSiteConfig");var ht=x((t=>{nt=D({},t)}),"saveConfigFromInitialize");var dt=x((t=>{at=D(at,t);lt(at,ot);return at}),"updateSiteConfig");var ut=x((()=>D({},at)),"getSiteConfig");var ft=x((t=>{vt(t);D(st,t);return pt()}),"setConfig");var pt=x((()=>D({},st)),"getConfig");var gt=x((t=>{if(!t){return}["secure",...at.secure??[]].forEach((e=>{if(Object.hasOwn(t,e)){k.debug(`Denied attempt to modify a secure key ${e}`,t[e]);delete t[e]}}));Object.keys(t).forEach((e=>{if(e.startsWith("__")){delete t[e]}}));Object.keys(t).forEach((e=>{if(typeof t[e]==="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))){delete t[e]}if(typeof t[e]==="object"){gt(t[e])}}))}),"sanitize");var mt=x((t=>{et(t);if(t.fontFamily&&!t.themeVariables?.fontFamily){t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}}ot.push(t);lt(at,ot)}),"addDirective");var yt=x(((t=at)=>{ot=[];lt(t,ot)}),"reset");var bt={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."};var xt={};var Ct=x((t=>{if(xt[t]){return}k.warn(bt[t]);xt[t]=true}),"issueWarning");var vt=x((t=>{if(!t){return}if(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup){Ct("LAZY_LOAD_DEPRECATED")}}),"checkConfig");var kt=//gi;var wt=x((t=>{if(!t){return[""]}const e=Et(t).replace(/\\n/g,"#br#");return e.split("#br#")}),"getRows");var St=(()=>{let t=false;return()=>{if(!t){At();t=true}}})();function At(){const t="data-temp-href-target";y.A.addHook("beforeSanitizeAttributes",(e=>{if(e instanceof Element&&e.tagName==="A"&&e.hasAttribute("target")){e.setAttribute(t,e.getAttribute("target")??"")}}));y.A.addHook("afterSanitizeAttributes",(e=>{if(e instanceof Element&&e.tagName==="A"&&e.hasAttribute(t)){e.setAttribute("target",e.getAttribute(t)??"");e.removeAttribute(t);if(e.getAttribute("target")==="_blank"){e.setAttribute("rel","noopener")}}}))}x(At,"setupDompurifyHooks");var Tt=x((t=>{St();const e=y.A.sanitize(t);return e}),"removeScript");var Bt=x(((t,e)=>{if(e.flowchart?.htmlLabels!==false){const r=e.securityLevel;if(r==="antiscript"||r==="strict"){t=Tt(t)}else if(r!=="loose"){t=Et(t);t=t.replace(//g,">");t=t.replace(/=/g,"=");t=$t(t)}}return t}),"sanitizeMore");var Lt=x(((t,e)=>{if(!t){return t}if(e.dompurifyConfig){t=y.A.sanitize(Bt(t,e),e.dompurifyConfig).toString()}else{t=y.A.sanitize(Bt(t,e),{FORBID_TAGS:["style"]}).toString()}return t}),"sanitizeText");var Mt=x(((t,e)=>{if(typeof t==="string"){return Lt(t,e)}return t.flat().map((t=>Lt(t,e)))}),"sanitizeTextOrArray");var _t=x((t=>kt.test(t)),"hasBreaks");var Ft=x((t=>t.split(kt)),"splitBreaks");var $t=x((t=>t.replace(/#br#/g,"
")),"placeholderToBreak");var Et=x((t=>t.replace(kt,"#br#")),"breakToPlaceholder");var Ot=x((t=>{let e="";if(t){e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search;e=e.replaceAll(/\(/g,"\\(");e=e.replaceAll(/\)/g,"\\)")}return e}),"getUrl");var Dt=x((t=>t===false||["false","null","0"].includes(String(t).trim().toLowerCase())?false:true),"evaluate");var It=x((function(...t){const e=t.filter((t=>!isNaN(t)));return Math.max(...e)}),"getMax");var Kt=x((function(...t){const e=t.filter((t=>!isNaN(t)));return Math.min(...e)}),"getMin");var Rt=x((function(t){const e=t.split(/(,)/);const r=[];for(let i=0;i0&&i+1Math.max(0,t.split(e).length-1)),"countOccurrence");var zt=x(((t,e)=>{const r=Pt(t,"~");const i=Pt(e,"~");return r===1&&i===1}),"shouldCombineSets");var qt=x((t=>{const e=Pt(t,"~");let r=false;if(e<=1){return t}if(e%2!==0&&t.startsWith("~")){t=t.substring(1);r=true}const i=[...t];let a=i.indexOf("~");let n=i.lastIndexOf("~");while(a!==-1&&n!==-1&&a!==n){i[a]="<";i[n]=">";a=i.indexOf("~");n=i.lastIndexOf("~")}if(r){i.unshift("~")}return i.join("")}),"processSet");var Nt=x((()=>window.MathMLElement!==void 0),"isMathMLSupported");var Wt=/\$\$(.*)\$\$/g;var jt=x((t=>(t.match(Wt)?.length??0)>0),"hasKatex");var Ht=x((async(t,e)=>{t=await Yt(t,e);const r=document.createElement("div");r.innerHTML=t;r.id="katex-temp";r.style.visibility="hidden";r.style.position="absolute";r.style.top="0";const i=document.querySelector("body");i?.insertAdjacentElement("beforeend",r);const a={width:r.clientWidth,height:r.clientHeight};r.remove();return a}),"calculateMathMLDimensions");var Yt=x((async(t,e)=>{if(!jt(t)){return t}if(!(Nt()||e.legacyMathML||e.forceLegacyMathML)){return t.replace(Wt,"MathML is unsupported in this environment.")}const{default:i}=await r.e(5489).then(r.bind(r,25489));const a=e.forceLegacyMathML||!Nt()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(kt).map((t=>jt(t)?`
${t}
`:`
${t}
`)).join("").replace(Wt,((t,e)=>i.renderToString(e,{throwOnError:true,displayMode:true,output:a}).replace(/\n/g," ").replace(//g,"")))}),"renderKatex");var Ut={getRows:wt,sanitizeText:Lt,sanitizeTextOrArray:Mt,hasBreaks:_t,splitBreaks:Ft,lineBreakRegex:kt,removeScript:Tt,getUrl:Ot,evaluate:Dt,getMax:It,getMin:Kt};var Gt=x((function(t,e){for(let r of e){t.attr(r[0],r[1])}}),"d3Attrs");var Vt=x((function(t,e,r){let i=new Map;if(r){i.set("width","100%");i.set("style",`max-width: ${e}px;`)}else{i.set("height",t);i.set("width",e)}return i}),"calculateSvgSizeAttrs");var Xt=x((function(t,e,r,i){const a=Vt(e,r,i);Gt(t,a)}),"configureSvgSize");var Zt=x((function(t,e,r,i){const a=e.node().getBBox();const n=a.width;const o=a.height;k.info(`SVG bounds: ${n}x${o}`,a);let s=0;let l=0;k.info(`Graph bounds: ${s}x${l}`,t);s=n+r*2;l=o+r*2;k.info(`Calculated bounds: ${s}x${l}`);Xt(e,l,s,i);const c=`${a.x-r} ${a.y-r} ${a.width+2*r} ${a.height+2*r}`;e.attr("viewBox",c)}),"setupGraphViewbox");var Jt={};var Qt=x(((t,e,r)=>{let i="";if(t in Jt&&Jt[t]){i=Jt[t](r)}else{k.warn(`No theme found for ${t}`)}return` & {\n font-family: ${r.fontFamily};\n font-size: ${r.fontSize};\n fill: ${r.textColor}\n }\n @keyframes edge-animation-frame {\n from {\n stroke-dashoffset: 0;\n }\n }\n @keyframes dash {\n to {\n stroke-dashoffset: 0;\n }\n }\n & .edge-animation-slow {\n stroke-dasharray: 9,5 !important;\n stroke-dashoffset: 900;\n animation: dash 50s linear infinite;\n stroke-linecap: round;\n }\n & .edge-animation-fast {\n stroke-dasharray: 9,5 !important;\n stroke-dashoffset: 900;\n animation: dash 20s linear infinite;\n stroke-linecap: round;\n }\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${r.errorBkgColor};\n }\n & .error-text {\n fill: ${r.errorTextColor};\n stroke: ${r.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 1px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n & .edge-thickness-invisible {\n stroke-width: 0;\n fill: none;\n }\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${r.lineColor};\n stroke: ${r.lineColor};\n }\n & .marker.cross {\n stroke: ${r.lineColor};\n }\n\n & svg {\n font-family: ${r.fontFamily};\n font-size: ${r.fontSize};\n }\n & p {\n margin: 0\n }\n\n ${i}\n\n ${e}\n`}),"getStyles");var te=x(((t,e)=>{if(e!==void 0){Jt[t]=e}}),"addStylesForDiagram");var ee=Qt;var re={};C(re,{clear:()=>se,getAccDescription:()=>de,getAccTitle:()=>ce,getDiagramTitle:()=>fe,setAccDescription:()=>he,setAccTitle:()=>le,setDiagramTitle:()=>ue});var ie="";var ae="";var ne="";var oe=x((t=>Lt(t,pt())),"sanitizeText");var se=x((()=>{ie="";ne="";ae=""}),"clear");var le=x((t=>{ie=oe(t).replace(/^\s+/g,"")}),"setAccTitle");var ce=x((()=>ie),"getAccTitle");var he=x((t=>{ne=oe(t).replace(/\n\s+/g,"\n")}),"setAccDescription");var de=x((()=>ne),"getAccDescription");var ue=x((t=>{ae=oe(t)}),"setDiagramTitle");var fe=x((()=>ae),"getDiagramTitle");var pe=k;var ge=w;var me=pt;var ye=ft;var be=it;var xe=x((t=>Lt(t,me())),"sanitizeText");var Ce=Zt;var ve=x((()=>re),"getCommonDb");var ke={};var we=x(((t,e,r)=>{if(ke[t]){pe.warn(`Diagram with id ${t} already registered. Overwriting.`)}ke[t]=e;if(r){$(t,r)}te(t,e.styles);e.injectUtils?.(pe,ge,me,xe,Ce,ve(),(()=>{}))}),"registerDiagram");var Se=x((t=>{if(t in ke){return ke[t]}throw new Ae(t)}),"getDiagram");var Ae=class extends Error{static{x(this,"DiagramNotFoundError")}constructor(t){super(`Diagram ${t} not found.`)}}},90227:(t,e,r)=>{"use strict";r.r(e);r.d(e,{default:()=>la});var i=r(97366);var a=r(94065);var n=r(33416);var o=r(94746);var s=r(20778);var l=r(57590);var c=r(68232);var h=r(76261);var d=r(96049);var u=r(59357);var f=r(93113);var p=r(75905);var g=r(60513);var m=r(24982);var y="-ms-";var b="-moz-";var x="-webkit-";var C="comm";var v="rule";var k="decl";var w="@page";var S="@media";var A="@import";var T="@charset";var B="@viewport";var L="@supports";var M="@document";var _="@namespace";var F="@keyframes";var $="@font-face";var E="@counter-style";var O="@font-feature-values";var D="@layer";var I="@scope";var K=Math.abs;var R=String.fromCharCode;var P=Object.assign;function z(t,e){return H(t,0)^45?(((e<<2^H(t,0))<<2^H(t,1))<<2^H(t,2))<<2^H(t,3):0}function q(t){return t.trim()}function N(t,e){return(t=e.exec(t))?t[0]:t}function W(t,e,r){return t.replace(e,r)}function j(t,e,r){return t.indexOf(e,r)}function H(t,e){return t.charCodeAt(e)|0}function Y(t,e,r){return t.slice(e,r)}function U(t){return t.length}function G(t){return t.length}function V(t,e){return e.push(t),t}function X(t,e){return t.map(e).join("")}function Z(t,e){return t.filter((function(t){return!N(t,e)}))}function J(t,e){var r="";for(var i=0;i0?H(nt,--it):0;if(et--,at===10)et=1,tt--;return at}function dt(){at=it2||gt(at)>3?"":" "}function vt(t){while(dt())switch(gt(at)){case 0:append(At(it-1),t);break;case 2:append(bt(at),t);break;default:append(from(at),t)}return t}function kt(t,e){while(--e&&dt())if(at<48||at>102||at>57&&at<65||at>70&&at<97)break;return pt(t,ft()+(e<6&&ut()==32&&dt()==32))}function wt(t){while(dt())switch(at){case t:return it;case 34:case 39:if(t!==34&&t!==39)wt(at);break;case 40:if(t===41)wt(t);break;case 92:dt();break}return it}function St(t,e){while(dt())if(t+at===47+10)break;else if(t+at===42+42&&ut()===47)break;return"/*"+pt(e,it-1)+"*"+R(t===47?t:dt())}function At(t){while(!gt(ut()))dt();return pt(t,it)}function Tt(t){return yt(Bt("",null,null,null,[""],t=mt(t),0,[0],t))}function Bt(t,e,r,i,a,n,o,s,l){var c=0;var h=0;var d=o;var u=0;var f=0;var p=0;var g=1;var m=1;var y=1;var b=0;var x="";var C=a;var v=n;var k=i;var w=x;while(m)switch(p=b,b=dt()){case 40:if(p!=108&&H(w,d-1)==58){if(j(w+=W(bt(b),"&","&\f"),"&\f",K(c?s[c-1]:0))!=-1)y=-1;break}case 34:case 39:case 91:w+=bt(b);break;case 9:case 10:case 13:case 32:w+=Ct(p);break;case 92:w+=kt(ft()-1,7);continue;case 47:switch(ut()){case 42:case 47:V(Mt(St(dt(),ft()),e,r,l),l);if((gt(p||1)==5||gt(ut()||1)==5)&&U(w)&&Y(w,-1,void 0)!==" ")w+=" ";break;default:w+="/"}break;case 123*g:s[c++]=U(w)*y;case 125*g:case 59:case 0:switch(b){case 0:case 125:m=0;case 59+h:if(y==-1)w=W(w,/\f/g,"");if(f>0&&(U(w)-d||g===0&&p===47))V(f>32?_t(w+";",i,r,d-1,l):_t(W(w," ","")+";",i,r,d-2,l),l);break;case 59:w+=";";default:V(k=Lt(w,e,r,c,h,a,s,x,C=[],v=[],d,n),n);if(b===123)if(h===0)Bt(w,e,k,k,C,n,d,s,v);else{switch(u){case 99:if(H(w,3)===110)break;case 108:if(H(w,2)===97)break;default:h=0;case 100:case 109:case 115:}if(h)Bt(t,k,k,i&&V(Lt(t,k,k,0,0,a,s,x,a,C=[],d,v),v),a,v,d,s,i?C:v);else Bt(w,k,k,k,[""],v,0,s,v)}}c=h=f=0,g=y=1,x=w="",d=o;break;case 58:d=1+U(w),f=p;default:if(g<1)if(b==123)--g;else if(b==125&&g++==0&&ht()==125)continue;switch(w+=R(b),b*g){case 38:y=h>0?1:(w+="\f",-1);break;case 44:s[c++]=(U(w)-1)*y,y=1;break;case 64:if(ut()===45)w+=bt(dt());u=ut(),h=d=U(x=w+=At(ft())),b++;break;case 45:if(p===45&&U(w)==2)g=0}}return n}function Lt(t,e,r,i,a,n,o,s,l,c,h,d){var u=a-1;var f=a===0?n:[""];var p=G(f);for(var g=0,m=0,y=0;g0?f[b]+" "+x:W(x,/&\f/g,f[b])))l[y++]=C;return ot(t,e,r,a===0?v:s,l,c,h,d)}function Mt(t,e,r,i){return ot(t,e,r,C,R(ct()),Y(t,2,-2),0,i)}function _t(t,e,r,i,a){return ot(t,e,r,k,Y(t,0,i),Y(t,i+1,-1),i,a)}var Ft=r(84997);var $t=r(74650);var Et="c4";var Ot=(0,p.K2)((t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t)),"detector");var Dt=(0,p.K2)((async()=>{const{diagram:t}=await r.e(1912).then(r.bind(r,71912));return{id:Et,diagram:t}}),"loader");var It={id:Et,detector:Ot,loader:Dt};var Kt=It;var Rt="flowchart";var Pt=(0,p.K2)(((t,e)=>{if(e?.flowchart?.defaultRenderer==="dagre-wrapper"||e?.flowchart?.defaultRenderer==="elk"){return false}return/^\s*graph/.test(t)}),"detector");var zt=(0,p.K2)((async()=>{const{diagram:t}=await r.e(2023).then(r.bind(r,52023));return{id:Rt,diagram:t}}),"loader");var qt={id:Rt,detector:Pt,loader:zt};var Nt=qt;var Wt="flowchart-v2";var jt=(0,p.K2)(((t,e)=>{if(e?.flowchart?.defaultRenderer==="dagre-d3"){return false}if(e?.flowchart?.defaultRenderer==="elk"){e.layout="elk"}if(/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"){return true}return/^\s*flowchart/.test(t)}),"detector");var Ht=(0,p.K2)((async()=>{const{diagram:t}=await r.e(2023).then(r.bind(r,52023));return{id:Wt,diagram:t}}),"loader");var Yt={id:Wt,detector:jt,loader:Ht};var Ut=Yt;var Gt="er";var Vt=(0,p.K2)((t=>/^\s*erDiagram/.test(t)),"detector");var Xt=(0,p.K2)((async()=>{const{diagram:t}=await r.e(805).then(r.bind(r,70805));return{id:Gt,diagram:t}}),"loader");var Zt={id:Gt,detector:Vt,loader:Xt};var Jt=Zt;var Qt="gitGraph";var te=(0,p.K2)((t=>/^\s*gitGraph/.test(t)),"detector");var ee=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(1838),r.e(4010),r.e(9890)]).then(r.bind(r,99890));return{id:Qt,diagram:t}}),"loader");var re={id:Qt,detector:te,loader:ee};var ie=re;var ae="gantt";var ne=(0,p.K2)((t=>/^\s*gantt/.test(t)),"detector");var oe=(0,p.K2)((async()=>{const{diagram:t}=await r.e(9572).then(r.bind(r,87191));return{id:ae,diagram:t}}),"loader");var se={id:ae,detector:ne,loader:oe};var le=se;var ce="info";var he=(0,p.K2)((t=>/^\s*info/.test(t)),"detector");var de=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(1838),r.e(4010),r.e(8537)]).then(r.bind(r,98537));return{id:ce,diagram:t}}),"loader");var ue={id:ce,detector:he,loader:de};var fe="pie";var pe=(0,p.K2)((t=>/^\s*pie/.test(t)),"detector");var ge=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(1838),r.e(4010),r.e(649)]).then(r.bind(r,70649));return{id:fe,diagram:t}}),"loader");var me={id:fe,detector:pe,loader:ge};var ye="quadrantChart";var be=(0,p.K2)((t=>/^\s*quadrantChart/.test(t)),"detector");var xe=(0,p.K2)((async()=>{const{diagram:t}=await r.e(4311).then(r.bind(r,4311));return{id:ye,diagram:t}}),"loader");var Ce={id:ye,detector:be,loader:xe};var ve=Ce;var ke="xychart";var we=(0,p.K2)((t=>/^\s*xychart-beta/.test(t)),"detector");var Se=(0,p.K2)((async()=>{const{diagram:t}=await r.e(9881).then(r.bind(r,79881));return{id:ke,diagram:t}}),"loader");var Ae={id:ke,detector:we,loader:Se};var Te=Ae;var Be="requirement";var Le=(0,p.K2)((t=>/^\s*requirement(Diagram)?/.test(t)),"detector");var Me=(0,p.K2)((async()=>{const{diagram:t}=await r.e(580).then(r.bind(r,90580));return{id:Be,diagram:t}}),"loader");var _e={id:Be,detector:Le,loader:Me};var Fe=_e;var $e="sequence";var Ee=(0,p.K2)((t=>/^\s*sequenceDiagram/.test(t)),"detector");var Oe=(0,p.K2)((async()=>{const{diagram:t}=await r.e(8038).then(r.bind(r,38038));return{id:$e,diagram:t}}),"loader");var De={id:$e,detector:Ee,loader:Oe};var Ie=De;var Ke="class";var Re=(0,p.K2)(((t,e)=>{if(e?.class?.defaultRenderer==="dagre-wrapper"){return false}return/^\s*classDiagram/.test(t)}),"detector");var Pe=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(1359),r.e(3048)]).then(r.bind(r,53048));return{id:Ke,diagram:t}}),"loader");var ze={id:Ke,detector:Re,loader:Pe};var qe=ze;var Ne="classDiagram";var We=(0,p.K2)(((t,e)=>{if(/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"){return true}return/^\s*classDiagram-v2/.test(t)}),"detector");var je=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(1359),r.e(874)]).then(r.bind(r,874));return{id:Ne,diagram:t}}),"loader");var He={id:Ne,detector:We,loader:je};var Ye=He;var Ue="state";var Ge=(0,p.K2)(((t,e)=>{if(e?.state?.defaultRenderer==="dagre-wrapper"){return false}return/^\s*stateDiagram/.test(t)}),"detector");var Ve=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(1838),r.e(2211),r.e(8855),r.e(8391)]).then(r.bind(r,78391));return{id:Ue,diagram:t}}),"loader");var Xe={id:Ue,detector:Ge,loader:Ve};var Ze=Xe;var Je="stateDiagram";var Qe=(0,p.K2)(((t,e)=>{if(/^\s*stateDiagram-v2/.test(t)){return true}if(/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper"){return true}return false}),"detector");var tr=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(8855),r.e(6779)]).then(r.bind(r,16779));return{id:Je,diagram:t}}),"loader");var er={id:Je,detector:Qe,loader:tr};var rr=er;var ir="journey";var ar=(0,p.K2)((t=>/^\s*journey/.test(t)),"detector");var nr=(0,p.K2)((async()=>{const{diagram:t}=await r.e(5135).then(r.bind(r,85135));return{id:ir,diagram:t}}),"loader");var or={id:ir,detector:ar,loader:nr};var sr=or;var lr=(0,p.K2)(((t,e,r)=>{p.Rm.debug("rendering svg for syntax error\n");const i=(0,f.D)(e);const a=i.append("g");i.attr("viewBox","0 0 2412 512");(0,p.a$)(i,100,512,true);a.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z");a.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z");a.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z");a.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z");a.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z");a.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z");a.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text");a.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)}),"draw");var cr={draw:lr};var hr=cr;var dr={db:{},renderer:cr,parser:{parse:(0,p.K2)((()=>{}),"parse")}};var ur=dr;var fr="flowchart-elk";var pr=(0,p.K2)(((t,e={})=>{if(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&e?.flowchart?.defaultRenderer==="elk"){e.layout="elk";return true}return false}),"detector");var gr=(0,p.K2)((async()=>{const{diagram:t}=await r.e(2023).then(r.bind(r,52023));return{id:fr,diagram:t}}),"loader");var mr={id:fr,detector:pr,loader:gr};var yr=mr;var br="timeline";var xr=(0,p.K2)((t=>/^\s*timeline/.test(t)),"detector");var Cr=(0,p.K2)((async()=>{const{diagram:t}=await r.e(6214).then(r.bind(r,26214));return{id:br,diagram:t}}),"loader");var vr={id:br,detector:xr,loader:Cr};var kr=vr;var wr="mindmap";var Sr=(0,p.K2)((t=>/^\s*mindmap/.test(t)),"detector");var Ar=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(8786),r.e(8915)]).then(r.bind(r,18915));return{id:wr,diagram:t}}),"loader");var Tr={id:wr,detector:Sr,loader:Ar};var Br=Tr;var Lr="kanban";var Mr=(0,p.K2)((t=>/^\s*kanban/.test(t)),"detector");var _r=(0,p.K2)((async()=>{const{diagram:t}=await r.e(4982).then(r.bind(r,4982));return{id:Lr,diagram:t}}),"loader");var Fr={id:Lr,detector:Mr,loader:_r};var $r=Fr;var Er="sankey";var Or=(0,p.K2)((t=>/^\s*sankey-beta/.test(t)),"detector");var Dr=(0,p.K2)((async()=>{const{diagram:t}=await r.e(3358).then(r.bind(r,33358));return{id:Er,diagram:t}}),"loader");var Ir={id:Er,detector:Or,loader:Dr};var Kr=Ir;var Rr="packet";var Pr=(0,p.K2)((t=>/^\s*packet-beta/.test(t)),"detector");var zr=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(1838),r.e(4010),r.e(2550)]).then(r.bind(r,92550));return{id:Rr,diagram:t}}),"loader");var qr={id:Rr,detector:Pr,loader:zr};var Nr="radar";var Wr=(0,p.K2)((t=>/^\s*radar-beta/.test(t)),"detector");var jr=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(1838),r.e(4010),r.e(898)]).then(r.bind(r,80898));return{id:Nr,diagram:t}}),"loader");var Hr={id:Nr,detector:Wr,loader:jr};var Yr="block";var Ur=(0,p.K2)((t=>/^\s*block-beta/.test(t)),"detector");var Gr=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(1838),r.e(6364)]).then(r.bind(r,46364));return{id:Yr,diagram:t}}),"loader");var Vr={id:Yr,detector:Ur,loader:Gr};var Xr=Vr;var Zr="architecture";var Jr=(0,p.K2)((t=>/^\s*architecture/.test(t)),"detector");var Qr=(0,p.K2)((async()=>{const{diagram:t}=await Promise.all([r.e(1838),r.e(4010),r.e(8786),r.e(7371)]).then(r.bind(r,17371));return{id:Zr,diagram:t}}),"loader");var ti={id:Zr,detector:Jr,loader:Qr};var ei=ti;var ri=false;var ii=(0,p.K2)((()=>{if(ri){return}ri=true;(0,p.Js)("error",ur,(t=>t.toLowerCase().trim()==="error"));(0,p.Js)("---",{db:{clear:(0,p.K2)((()=>{}),"clear")},styles:{},renderer:{draw:(0,p.K2)((()=>{}),"draw")},parser:{parse:(0,p.K2)((()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}),"parse")},init:(0,p.K2)((()=>null),"init")},(t=>t.toLowerCase().trimStart().startsWith("---")));(0,p.Xd)(Kt,$r,Ye,qe,Jt,le,ue,me,Fe,Ie,yr,Ut,Nt,Br,kr,ie,rr,Ze,sr,ve,Kr,qr,Te,Xr,ei,Hr)}),"addDiagrams");var ai=(0,p.K2)((async()=>{p.Rm.debug(`Loading registered diagrams`);const t=await Promise.allSettled(Object.entries(p.mW).map((async([t,{detector:e,loader:r}])=>{if(r){try{(0,p.Gs)(t)}catch{try{const{diagram:t,id:i}=await r();(0,p.Js)(i,t,e)}catch(i){p.Rm.error(`Failed to load external diagram with key ${t}. Removing from detectors.`);delete p.mW[t];throw i}}}})));const e=t.filter((t=>t.status==="rejected"));if(e.length>0){p.Rm.error(`Failed to load ${e.length} external diagrams`);for(const t of e){p.Rm.error(t)}throw new Error(`Failed to load ${e.length} external diagrams`)}}),"loadRegisteredDiagrams");var ni="graphics-document document";function oi(t,e){t.attr("role",ni);if(e!==""){t.attr("aria-roledescription",e)}}(0,p.K2)(oi,"setA11yDiagramInfo");function si(t,e,r,i){if(t.insert===void 0){return}if(r){const e=`chart-desc-${i}`;t.attr("aria-describedby",e);t.insert("desc",":first-child").attr("id",e).text(r)}if(e){const r=`chart-title-${i}`;t.attr("aria-labelledby",r);t.insert("title",":first-child").attr("id",r).text(e)}}(0,p.K2)(si,"addSVGa11yTitleDescription");var li=class t{constructor(t,e,r,i,a){this.type=t;this.text=e;this.db=r;this.parser=i;this.renderer=a}static{(0,p.K2)(this,"Diagram")}static async fromText(e,r={}){const i=(0,p.zj)();const a=(0,p.Ch)(e,i);e=(0,d.C4)(e)+"\n";try{(0,p.Gs)(a)}catch{const t=(0,p.J$)(a);if(!t){throw new p.C0(`Diagram ${a} not found.`)}const{id:e,diagram:r}=await t();(0,p.Js)(e,r)}const{db:n,parser:o,renderer:s,init:l}=(0,p.Gs)(a);if(o.parser){o.parser.yy=n}n.clear?.();l?.(i);if(r.title){n.setDiagramTitle?.(r.title)}await o.parse(e);return new t(a,e,n,o,s)}async render(t,e){await this.renderer.draw(this.text,t,e,this)}getParser(){return this.parser}getType(){return this.type}};var ci=[];var hi=(0,p.K2)((()=>{ci.forEach((t=>{t()}));ci=[]}),"attachFunctions");var di=(0,p.K2)((t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart()),"cleanupComments");function ui(t){const e=t.match(p.EJ);if(!e){return{text:t,metadata:{}}}let r=(0,i.H)(e[1],{schema:i.r})??{};r=typeof r==="object"&&!Array.isArray(r)?r:{};const a={};if(r.displayMode){a.displayMode=r.displayMode.toString()}if(r.title){a.title=r.title.toString()}if(r.config){a.config=r.config}return{text:t.slice(e[0].length),metadata:a}}(0,p.K2)(ui,"extractFrontMatter");var fi=(0,p.K2)((t=>t.replace(/\r\n?/g,"\n").replace(/<(\w+)([^>]*)>/g,((t,e,r)=>"<"+e+r.replace(/="([^"]*)"/g,"='$1'")+">"))),"cleanupText");var pi=(0,p.K2)((t=>{const{text:e,metadata:r}=ui(t);const{displayMode:i,title:a,config:n={}}=r;if(i){if(!n.gantt){n.gantt={}}n.gantt.displayMode=i}return{title:a,config:n,text:e}}),"processFrontmatter");var gi=(0,p.K2)((t=>{const e=d._K.detectInit(t)??{};const r=d._K.detectDirective(t,"wrap");if(Array.isArray(r)){e.wrap=r.some((({type:t})=>t==="wrap"))}else if(r?.type==="wrap"){e.wrap=true}return{text:(0,d.vU)(t),directive:e}}),"processDirectives");function mi(t){const e=fi(t);const r=pi(e);const i=gi(r.text);const a=(0,d.$t)(r.config,i.directive);t=di(i.text);return{code:t,title:r.title,config:a}}(0,p.K2)(mi,"preprocessDiagram");function yi(t){const e=(new TextEncoder).encode(t);const r=Array.from(e,(t=>String.fromCodePoint(t))).join("");return btoa(r)}(0,p.K2)(yi,"toBase64");var bi=5e4;var xi="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa";var Ci="sandbox";var vi="loose";var ki="http://www.w3.org/2000/svg";var wi="http://www.w3.org/1999/xlink";var Si="http://www.w3.org/1999/xhtml";var Ai="100%";var Ti="100%";var Bi="border:0;margin:0;";var Li="margin:0";var Mi="allow-top-navigation-by-user-activation allow-popups";var _i='The "iframe" tag is not supported by your browser.';var Fi=["foreignobject"];var $i=["dominant-baseline"];function Ei(t){const e=mi(t);(0,p.cL)();(0,p.xA)(e.config??{});return e}(0,p.K2)(Ei,"processAndSetConfigs");async function Oi(t,e){ii();try{const{code:e,config:r}=Ei(t);const i=await Hi(e);return{diagramType:i.type,config:r}}catch(r){if(e?.suppressErrors){return false}throw r}}(0,p.K2)(Oi,"parse");var Di=(0,p.K2)(((t,e,r=[])=>`\n.${t} ${e} { ${r.join(" !important; ")} !important; }`),"cssImportantStyles");var Ii=(0,p.K2)(((t,e=new Map)=>{let r="";if(t.themeCSS!==void 0){r+=`\n${t.themeCSS}`}if(t.fontFamily!==void 0){r+=`\n:root { --mermaid-font-family: ${t.fontFamily}}`}if(t.altFontFamily!==void 0){r+=`\n:root { --mermaid-alt-font-family: ${t.altFontFamily}}`}if(e instanceof Map){const i=t.htmlLabels??t.flowchart?.htmlLabels;const a=["> *","span"];const n=["rect","polygon","ellipse","circle","path"];const o=i?a:n;e.forEach((t=>{if(!(0,$t.A)(t.styles)){o.forEach((e=>{r+=Di(t.id,e,t.styles)}))}if(!(0,$t.A)(t.textStyles)){r+=Di(t.id,"tspan",(t?.textStyles||[]).map((t=>t.replace("color","fill"))))}}))}return r}),"createCssStyles");var Ki=(0,p.K2)(((t,e,r,i)=>{const a=Ii(t,r);const n=(0,p.tM)(e,a,t.themeVariables);return J(Tt(`${i}{${n}}`),Q)}),"createUserStyles");var Ri=(0,p.K2)(((t="",e,r)=>{let i=t;if(!r&&!e){i=i.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')}i=(0,d.Sm)(i);i=i.replace(/
/g,"
");return i}),"cleanUpSvgCode");var Pi=(0,p.K2)(((t="",e)=>{const r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":Ti;const i=yi(`${t}`);return``}),"putIntoIFrame");var zi=(0,p.K2)(((t,e,r,i,a)=>{const n=t.append("div");n.attr("id",r);if(i){n.attr("style",i)}const o=n.append("svg").attr("id",e).attr("width","100%").attr("xmlns",ki);if(a){o.attr("xmlns:xlink",a)}o.append("g");return t}),"appendDivSvgG");function qi(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}(0,p.K2)(qi,"sandboxedIframe");var Ni=(0,p.K2)(((t,e,r,i)=>{t.getElementById(e)?.remove();t.getElementById(r)?.remove();t.getElementById(i)?.remove()}),"removeExistingElements");var Wi=(0,p.K2)((async function(t,e,r){ii();const i=Ei(e);e=i.code;const a=(0,p.zj)();p.Rm.debug(a);if(e.length>(a?.maxTextSize??bi)){e=xi}const n="#"+t;const o="i"+t;const s="#"+o;const l="d"+t;const c="#"+l;const h=(0,p.K2)((()=>{const t=f?s:c;const e=(0,m.Ltv)(t).node();if(e&&"remove"in e){e.remove()}}),"removeTempElements");let d=(0,m.Ltv)("body");const f=a.securityLevel===Ci;const g=a.securityLevel===vi;const y=a.fontFamily;if(r!==void 0){if(r){r.innerHTML=""}if(f){const t=qi((0,m.Ltv)(r),o);d=(0,m.Ltv)(t.nodes()[0].contentDocument.body);d.node().style.margin=0}else{d=(0,m.Ltv)(r)}zi(d,t,l,`font-family: ${y}`,wi)}else{Ni(document,t,l,o);if(f){const t=qi((0,m.Ltv)("body"),o);d=(0,m.Ltv)(t.nodes()[0].contentDocument.body);d.node().style.margin=0}else{d=(0,m.Ltv)("body")}zi(d,t,l)}let b;let x;try{b=await li.fromText(e,{title:i.title})}catch(F){if(a.suppressErrorRendering){h();throw F}b=await li.fromText("error");x=F}const C=d.select(c).node();const v=b.type;const k=C.firstChild;const w=k.firstChild;const S=b.renderer.getClasses?.(e,b);const A=Ki(a,v,S,n);const T=document.createElement("style");T.innerHTML=A;k.insertBefore(T,w);try{await b.renderer.draw(e,t,u.n.version,b)}catch($){if(a.suppressErrorRendering){h()}else{hr.draw(e,t,u.n.version)}throw $}const B=d.select(`${c} svg`);const L=b.db.getAccTitle?.();const M=b.db.getAccDescription?.();Yi(v,B,L,M);d.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",Si);let _=d.select(c).node().innerHTML;p.Rm.debug("config.arrowMarkerAbsolute",a.arrowMarkerAbsolute);_=Ri(_,f,(0,p._3)(a.arrowMarkerAbsolute));if(f){const t=d.select(c+" svg").node();_=Pi(_,t)}else if(!g){_=Ft.A.sanitize(_,{ADD_TAGS:Fi,ADD_ATTR:$i,HTML_INTEGRATION_POINTS:{foreignobject:true}})}hi();if(x){throw x}h();return{diagramType:v,svg:_,bindFunctions:b.db.bindFunctions}}),"render");function ji(t={}){const e=(0,p.hH)({},t);if(e?.fontFamily&&!e.themeVariables?.fontFamily){if(!e.themeVariables){e.themeVariables={}}e.themeVariables.fontFamily=e.fontFamily}(0,p.wZ)(e);if(e?.theme&&e.theme in p.H$){e.themeVariables=p.H$[e.theme].getThemeVariables(e.themeVariables)}else if(e){e.themeVariables=p.H$.default.getThemeVariables(e.themeVariables)}const r=typeof e==="object"?(0,p.UU)(e):(0,p.Q2)();(0,p.He)(r.logLevel);ii()}(0,p.K2)(ji,"initialize");var Hi=(0,p.K2)(((t,e={})=>{const{code:r}=mi(t);return li.fromText(r,e)}),"getDiagramFromText");function Yi(t,e,r,i){oi(e,t);si(e,r,i,e.attr("id"))}(0,p.K2)(Yi,"addA11yInfo");var Ui=Object.freeze({render:Wi,parse:Oi,getDiagramFromText:Hi,initialize:ji,getConfig:p.zj,setConfig:p.Nk,getSiteConfig:p.Q2,updateSiteConfig:p.B6,reset:(0,p.K2)((()=>{(0,p.cL)()}),"reset"),globalReset:(0,p.K2)((()=>{(0,p.cL)(p.sb)}),"globalReset"),defaultConfig:p.sb});(0,p.He)((0,p.zj)().logLevel);(0,p.cL)((0,p.zj)());var Gi=(0,p.K2)(((t,e,r)=>{p.Rm.warn(t);if((0,d.dq)(t)){if(r){r(t.str,t.hash)}e.push({...t,message:t.str,error:t})}else{if(r){r(t)}if(t instanceof Error){e.push({str:t.message,message:t.message,hash:t.name,error:t})}}}),"handleError");var Vi=(0,p.K2)((async function(t={querySelector:".mermaid"}){try{await Xi(t)}catch(e){if((0,d.dq)(e)){p.Rm.error(e.str)}if(sa.parseError){sa.parseError(e)}if(!t.suppressErrors){p.Rm.error("Use the suppressErrors option to suppress these errors");throw e}}}),"run");var Xi=(0,p.K2)((async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){const i=Ui.getConfig();p.Rm.debug(`${!t?"No ":""}Callback function found`);let a;if(r){a=r}else if(e){a=document.querySelectorAll(e)}else{throw new Error("Nodes and querySelector are both undefined")}p.Rm.debug(`Found ${a.length} diagrams`);if(i?.startOnLoad!==void 0){p.Rm.debug("Start On Load: "+i?.startOnLoad);Ui.updateSiteConfig({startOnLoad:i?.startOnLoad})}const n=new d._K.InitIDGenerator(i.deterministicIds,i.deterministicIDSeed);let o;const s=[];for(const c of Array.from(a)){p.Rm.info("Rendering diagram: "+c.id);if(c.getAttribute("data-processed")){continue}c.setAttribute("data-processed","true");const e=`mermaid-${n.next()}`;o=c.innerHTML;o=(0,g.T)(d._K.entityDecode(o)).trim().replace(//gi,"
");const r=d._K.detectInit(o);if(r){p.Rm.debug("Detected early reinit: ",r)}try{const{svg:r,bindFunctions:i}=await oa(e,o,c);c.innerHTML=r;if(t){await t(e)}if(i){i(c)}}catch(l){Gi(l,s,sa.parseError)}}if(s.length>0){throw s[0]}}),"runThrowsErrors");var Zi=(0,p.K2)((function(t){Ui.initialize(t)}),"initialize");var Ji=(0,p.K2)((async function(t,e,r){p.Rm.warn("mermaid.init is deprecated. Please use run instead.");if(t){Zi(t)}const i={postRenderCallback:r,querySelector:".mermaid"};if(typeof e==="string"){i.querySelector=e}else if(e){if(e instanceof HTMLElement){i.nodes=[e]}else{i.nodes=e}}await Vi(i)}),"init");var Qi=(0,p.K2)((async(t,{lazyLoad:e=true}={})=>{ii();(0,p.Xd)(...t);if(e===false){await ai()}}),"registerExternalDiagrams");var ta=(0,p.K2)((function(){if(sa.startOnLoad){const{startOnLoad:t}=Ui.getConfig();if(t){sa.run().catch((t=>p.Rm.error("Mermaid failed to initialize",t)))}}}),"contentLoaded");if(typeof document!=="undefined"){window.addEventListener("load",ta,false)}var ea=(0,p.K2)((function(t){sa.parseError=t}),"setParseErrorHandler");var ra=[];var ia=false;var aa=(0,p.K2)((async()=>{if(ia){return}ia=true;while(ra.length>0){const e=ra.shift();if(e){try{await e()}catch(t){p.Rm.error("Error executing queue",t)}}}ia=false}),"executeQueue");var na=(0,p.K2)((async(t,e)=>new Promise(((r,i)=>{const a=(0,p.K2)((()=>new Promise(((a,n)=>{Ui.parse(t,e).then((t=>{a(t);r(t)}),(t=>{p.Rm.error("Error parsing",t);sa.parseError?.(t);n(t);i(t)}))}))),"performCall");ra.push(a);aa().catch(i)}))),"parse");var oa=(0,p.K2)(((t,e,r)=>new Promise(((i,a)=>{const n=(0,p.K2)((()=>new Promise(((n,o)=>{Ui.render(t,e,r).then((t=>{n(t);i(t)}),(t=>{p.Rm.error("Error parsing",t);sa.parseError?.(t);o(t);a(t)}))}))),"performCall");ra.push(n);aa().catch(a)}))),"render");var sa={startOnLoad:true,mermaidAPI:Ui,parse:na,render:oa,init:Ji,run:Vi,registerExternalDiagrams:Qi,registerLayoutLoaders:a.sO,initialize:Zi,parseError:void 0,contentLoaded:ta,setParseErrorHandler:ea,detectType:p.Ch,registerIconPacks:c.pC};var la=sa},52274:(t,e,r)=>{"use strict";r.d(e,{A:()=>lt});function i(t,e,r){if(t&&t.length){const[i,a]=e,n=Math.PI/180*r,o=Math.cos(n),s=Math.sin(n);for(const e of t){const[t,r]=e;e[0]=(t-i)*o-(r-a)*s+i,e[1]=(t-i)*s+(r-a)*o+a}}}function a(t,e){return t[0]===e[0]&&t[1]===e[1]}function n(t,e,r,n=1){const o=r,s=Math.max(e,.1),l=t[0]&&t[0][0]&&"number"==typeof t[0][0]?[t]:t,c=[0,0];if(o)for(const a of l)i(a,c,o);const h=function(t,e,r){const i=[];for(const h of t){const t=[...h];a(t[0],t[t.length-1])||t.push([t[0][0],t[0][1]]),t.length>2&&i.push(t)}const n=[];e=Math.max(e,.1);const o=[];for(const a of i)for(let t=0;tt.ymine.ymin?1:t.xe.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax))),!o.length)return n;let s=[],l=o[0].ymin,c=0;for(;s.length||o.length;){if(o.length){let t=-1;for(let e=0;el);e++)t=e;o.splice(0,t+1).forEach((t=>{s.push({s:l,edge:t})}))}if(s=s.filter((t=>!(t.edge.ymax<=l))),s.sort(((t,e)=>t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x))),(1!==r||c%e==0)&&s.length>1)for(let t=0;t=s.length)break;const r=s[t].edge,i=s[e].edge;n.push([[Math.round(r.x),l],[Math.round(i.x),l]])}l+=r,s.forEach((t=>{t.edge.x=t.edge.x+r*t.edge.islope})),c++}return n}(l,s,n);if(o){for(const t of l)i(t,c,-o);!function(t,e,r){const a=[];t.forEach((t=>a.push(...t))),i(a,e,r)}(h,c,-o)}return h}function o(t,e){var r;const i=e.hachureAngle+90;let a=e.hachureGap;a<0&&(a=4*e.strokeWidth),a=Math.round(Math.max(a,.1));let o=1;return e.roughness>=1&&((null===(r=e.randomizer)||void 0===r?void 0:r.next())||Math.random())>.7&&(o=a),n(t,a,i,o||1)}class s{constructor(t){this.helper=t}fillPolygons(t,e){return this._fillPolygons(t,e)}_fillPolygons(t,e){const r=o(t,e);return{type:"fillSketch",ops:this.renderLines(r,e)}}renderLines(t,e){const r=[];for(const i of t)r.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],e));return r}}function l(t){const e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}class c extends s{fillPolygons(t,e){let r=e.hachureGap;r<0&&(r=4*e.strokeWidth),r=Math.max(r,.1);const i=o(t,Object.assign({},e,{hachureGap:r})),a=Math.PI/180*e.hachureAngle,n=[],s=.5*r*Math.cos(a),c=.5*r*Math.sin(a);for(const[o,h]of i)l([o,h])&&n.push([[o[0]-s,o[1]+c],[...h]],[[o[0]+s,o[1]-c],[...h]]);return{type:"fillSketch",ops:this.renderLines(n,e)}}}class h extends s{fillPolygons(t,e){const r=this._fillPolygons(t,e),i=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),a=this._fillPolygons(t,i);return r.ops=r.ops.concat(a.ops),r}}class d{constructor(t){this.helper=t}fillPolygons(t,e){const r=o(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(r,e)}dotsOnLines(t,e){const r=[];let i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.max(i,.1);let a=e.fillWeight;a<0&&(a=e.strokeWidth/2);const n=i/4;for(const o of t){const t=l(o),s=t/i,c=Math.ceil(s)-1,h=t-c*i,d=(o[0][0]+o[1][0])/2-i/4,u=Math.min(o[0][1],o[1][1]);for(let o=0;o{const n=l(t),o=Math.floor(n/(r+i)),s=(n+i-o*(r+i))/2;let c=t[0],h=t[1];c[0]>h[0]&&(c=t[1],h=t[0]);const d=Math.atan((h[1]-c[1])/(h[0]-c[0]));for(let l=0;l{const a=l(t),n=Math.round(a/(2*e));let o=t[0],s=t[1];o[0]>s[0]&&(o=t[1],s=t[0]);const c=Math.atan((s[1]-o[1])/(s[0]-o[0]));for(let l=0;li%2?t+r:t+e));n.push({key:"C",data:t}),e=t[4],r=t[5];break}case"Q":n.push({key:"Q",data:[...s]}),e=s[2],r=s[3];break;case"q":{const t=s.map(((t,i)=>i%2?t+r:t+e));n.push({key:"Q",data:t}),e=t[2],r=t[3];break}case"A":n.push({key:"A",data:[...s]}),e=s[5],r=s[6];break;case"a":e+=s[5],r+=s[6],n.push({key:"A",data:[s[0],s[1],s[2],s[3],s[4],e,r]});break;case"H":n.push({key:"H",data:[...s]}),e=s[0];break;case"h":e+=s[0],n.push({key:"H",data:[e]});break;case"V":n.push({key:"V",data:[...s]}),r=s[0];break;case"v":r+=s[0],n.push({key:"V",data:[r]});break;case"S":n.push({key:"S",data:[...s]}),e=s[2],r=s[3];break;case"s":{const t=s.map(((t,i)=>i%2?t+r:t+e));n.push({key:"S",data:t}),e=t[2],r=t[3];break}case"T":n.push({key:"T",data:[...s]}),e=s[0],r=s[1];break;case"t":e+=s[0],r+=s[1],n.push({key:"T",data:[e,r]});break;case"Z":case"z":n.push({key:"Z",data:[]}),e=i,r=a}return n}function w(t){const e=[];let r="",i=0,a=0,n=0,o=0,s=0,l=0;for(const{key:c,data:h}of t){switch(c){case"M":e.push({key:"M",data:[...h]}),[i,a]=h,[n,o]=h;break;case"C":e.push({key:"C",data:[...h]}),i=h[4],a=h[5],s=h[2],l=h[3];break;case"L":e.push({key:"L",data:[...h]}),[i,a]=h;break;case"H":i=h[0],e.push({key:"L",data:[i,a]});break;case"V":a=h[0],e.push({key:"L",data:[i,a]});break;case"S":{let t=0,n=0;"C"===r||"S"===r?(t=i+(i-s),n=a+(a-l)):(t=i,n=a),e.push({key:"C",data:[t,n,...h]}),s=h[0],l=h[1],i=h[2],a=h[3];break}case"T":{const[t,n]=h;let o=0,c=0;"Q"===r||"T"===r?(o=i+(i-s),c=a+(a-l)):(o=i,c=a);const d=i+2*(o-i)/3,u=a+2*(c-a)/3,f=t+2*(o-t)/3,p=n+2*(c-n)/3;e.push({key:"C",data:[d,u,f,p,t,n]}),s=o,l=c,i=t,a=n;break}case"Q":{const[t,r,n,o]=h,c=i+2*(t-i)/3,d=a+2*(r-a)/3,u=n+2*(t-n)/3,f=o+2*(r-o)/3;e.push({key:"C",data:[c,d,u,f,n,o]}),s=t,l=r,i=n,a=o;break}case"A":{const t=Math.abs(h[0]),r=Math.abs(h[1]),n=h[2],o=h[3],s=h[4],l=h[5],c=h[6];if(0===t||0===r)e.push({key:"C",data:[i,a,l,c,l,c]}),i=l,a=c;else if(i!==l||a!==c){A(i,a,l,c,t,r,n,o,s).forEach((function(t){e.push({key:"C",data:t})})),i=l,a=c}break}case"Z":e.push({key:"Z",data:[]}),i=n,a=o}r=c}return e}function S(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function A(t,e,r,i,a,n,o,s,l,c){const h=(d=o,Math.PI*d/180);var d;let u=[],f=0,p=0,g=0,m=0;if(c)[f,p,g,m]=c;else{[t,e]=S(t,e,-h),[r,i]=S(r,i,-h);const o=(t-r)/2,c=(e-i)/2;let d=o*o/(a*a)+c*c/(n*n);d>1&&(d=Math.sqrt(d),a*=d,n*=d);const u=a*a,y=n*n,b=u*y-u*c*c-y*o*o,x=u*c*c+y*o*o,C=(s===l?-1:1)*Math.sqrt(Math.abs(b/x));g=C*a*c/n+(t+r)/2,m=C*-n*o/a+(e+i)/2,f=Math.asin(parseFloat(((e-m)/n).toFixed(9))),p=Math.asin(parseFloat(((i-m)/n).toFixed(9))),tp&&(f-=2*Math.PI),!l&&p>f&&(p-=2*Math.PI)}let y=p-f;if(Math.abs(y)>120*Math.PI/180){const t=p,e=r,s=i;p=l&&p>f?f+120*Math.PI/180*1:f+120*Math.PI/180*-1,u=A(r=g+a*Math.cos(p),i=m+n*Math.sin(p),e,s,a,n,o,0,l,[p,t,g,m])}y=p-f;const b=Math.cos(f),x=Math.sin(f),C=Math.cos(p),v=Math.sin(p),k=Math.tan(y/4),w=4/3*a*k,T=4/3*n*k,B=[t,e],L=[t+w*x,e-T*b],M=[r+w*v,i-T*C],_=[r,i];if(L[0]=2*B[0]-L[0],L[1]=2*B[1]-L[1],c)return[L,M,_].concat(u);{u=[L,M,_].concat(u);const t=[];for(let e=0;e2){const a=[];for(let e=0;e2*Math.PI&&(f=0,p=2*Math.PI);const g=2*Math.PI/l.curveStepCount,m=Math.min(g/2,(p-f)/2),y=Y(m,c,h,d,u,f,p,1,l);if(!l.disableMultiStroke){const t=Y(m,c,h,d,u,f,p,1.5,l);y.push(...t)}return o&&(s?y.push(...q(c,h,c+d*Math.cos(f),h+u*Math.sin(f),l),...q(c,h,c+d*Math.cos(p),h+u*Math.sin(p),l)):y.push({op:"lineTo",data:[c,h]},{op:"lineTo",data:[c+d*Math.cos(f),h+u*Math.sin(f)]})),{type:"path",ops:y}}function O(t,e){const r=w(k(v(t))),i=[];let a=[0,0],n=[0,0];for(const{key:o,data:s}of r)switch(o){case"M":n=[s[0],s[1]],a=[s[0],s[1]];break;case"L":i.push(...q(n[0],n[1],s[0],s[1],e)),n=[s[0],s[1]];break;case"C":{const[t,r,a,o,l,c]=s;i.push(...U(t,r,a,o,l,c,n,e)),n=[l,c];break}case"Z":i.push(...q(n[0],n[1],a[0],a[1],e)),n=[a[0],a[1]]}return{type:"path",ops:i}}function D(t,e){const r=[];for(const i of t)if(i.length){const t=e.maxRandomnessOffset||0,a=i.length;if(a>2){r.push({op:"move",data:[i[0][0]+z(t,e),i[0][1]+z(t,e)]});for(let n=1;n500?.4:-.0016668*l+1.233334;let h=a.maxRandomnessOffset||0;h*h*100>s&&(h=l/10);const d=h/2,u=.2+.2*R(a);let f=a.bowing*a.maxRandomnessOffset*(i-e)/200,p=a.bowing*a.maxRandomnessOffset*(t-r)/200;f=z(f,a,c),p=z(p,a,c);const g=[],m=()=>z(d,a,c),y=()=>z(h,a,c),b=a.preserveVertices;return n&&(o?g.push({op:"move",data:[t+(b?0:m()),e+(b?0:m())]}):g.push({op:"move",data:[t+(b?0:z(h,a,c)),e+(b?0:z(h,a,c))]})),o?g.push({op:"bcurveTo",data:[f+t+(r-t)*u+m(),p+e+(i-e)*u+m(),f+t+2*(r-t)*u+m(),p+e+2*(i-e)*u+m(),r+(b?0:m()),i+(b?0:m())]}):g.push({op:"bcurveTo",data:[f+t+(r-t)*u+y(),p+e+(i-e)*u+y(),f+t+2*(r-t)*u+y(),p+e+2*(i-e)*u+y(),r+(b?0:y()),i+(b?0:y())]}),g}function W(t,e,r){if(!t.length)return[];const i=[];i.push([t[0][0]+z(e,r),t[0][1]+z(e,r)]),i.push([t[0][0]+z(e,r),t[0][1]+z(e,r)]);for(let a=1;a3){const n=[],o=1-r.curveTightness;a.push({op:"move",data:[t[1][0],t[1][1]]});for(let e=1;e+21&&a.push(r)}else a.push(r);a.push(t[e+3])}else{const i=.5,n=t[e+0],o=t[e+1],s=t[e+2],l=t[e+3],c=J(n,o,i),h=J(o,s,i),d=J(s,l,i),u=J(c,h,i),f=J(h,d,i),p=J(u,f,i);Q([n,c,u,p],0,r,a),Q([p,f,d,l],0,r,a)}var n,o;return a}function tt(t,e){return et(t,0,t.length,e)}function et(t,e,r,i,a){const n=a||[],o=t[e],s=t[r-1];let l=0,c=1;for(let h=e+1;hl&&(l=e,c=h)}return Math.sqrt(l)>i?(et(t,e,c+1,i,n),et(t,c,r,i,n)):(n.length||n.push(o),n.push(s)),n}function rt(t,e=.15,r){const i=[],a=(t.length-1)/3;for(let n=0;n0?et(i,0,i.length,r):i}const it="none";class at{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,e,r){return{shape:t,sets:e||[],options:r||this.defaultOptions}}line(t,e,r,i,a){const n=this._o(a);return this._d("line",[B(t,e,r,i,n)],n)}rectangle(t,e,r,i,a){const n=this._o(a),o=[],s=M(t,e,r,i,n);if(n.fill){const a=[[t,e],[t+r,e],[t+r,e+i],[t,e+i]];"solid"===n.fillStyle?o.push(D([a],n)):o.push(I([a],n))}return n.stroke!==it&&o.push(s),this._d("rectangle",o,n)}ellipse(t,e,r,i,a){const n=this._o(a),o=[],s=F(r,i,n),l=$(t,e,n,s);if(n.fill)if("solid"===n.fillStyle){const r=$(t,e,n,s).opset;r.type="fillPath",o.push(r)}else o.push(I([l.estimatedPoints],n));return n.stroke!==it&&o.push(l.opset),this._d("ellipse",o,n)}circle(t,e,r,i){const a=this.ellipse(t,e,r,r,i);return a.shape="circle",a}linearPath(t,e){const r=this._o(e);return this._d("linearPath",[L(t,!1,r)],r)}arc(t,e,r,i,a,n,o=!1,s){const l=this._o(s),c=[],h=E(t,e,r,i,a,n,o,!0,l);if(o&&l.fill)if("solid"===l.fillStyle){const o=Object.assign({},l);o.disableMultiStroke=!0;const s=E(t,e,r,i,a,n,!0,!1,o);s.type="fillPath",c.push(s)}else c.push(function(t,e,r,i,a,n,o){const s=t,l=e;let c=Math.abs(r/2),h=Math.abs(i/2);c+=z(.01*c,o),h+=z(.01*h,o);let d=a,u=n;for(;d<0;)d+=2*Math.PI,u+=2*Math.PI;u-d>2*Math.PI&&(d=0,u=2*Math.PI);const f=(u-d)/o.curveStepCount,p=[];for(let g=d;g<=u;g+=f)p.push([s+c*Math.cos(g),l+h*Math.sin(g)]);return p.push([s+c*Math.cos(u),l+h*Math.sin(u)]),p.push([s,l]),I([p],o)}(t,e,r,i,a,n,l));return l.stroke!==it&&c.push(h),this._d("arc",c,l)}curve(t,e){const r=this._o(e),i=[],a=_(t,r);if(r.fill&&r.fill!==it)if("solid"===r.fillStyle){const e=_(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else{const e=[],a=t;if(a.length){const t="number"==typeof a[0][0]?[a]:a;for(const i of t)i.length<3?e.push(...i):3===i.length?e.push(...rt(V([i[0],i[0],i[1],i[2]]),10,(1+r.roughness)/2)):e.push(...rt(V(i),10,(1+r.roughness)/2))}e.length&&i.push(I([e],r))}return r.stroke!==it&&i.push(a),this._d("curve",i,r)}polygon(t,e){const r=this._o(e),i=[],a=L(t,!0,r);return r.fill&&("solid"===r.fillStyle?i.push(D([t],r)):i.push(I([t],r))),r.stroke!==it&&i.push(a),this._d("polygon",i,r)}path(t,e){const r=this._o(e),i=[];if(!t)return this._d("path",i,r);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");const a=r.fill&&"transparent"!==r.fill&&r.fill!==it,n=r.stroke!==it,o=!!(r.simplification&&r.simplification<1),s=function(t,e,r){const i=w(k(v(t))),a=[];let n=[],o=[0,0],s=[];const l=()=>{s.length>=4&&n.push(...rt(s,e)),s=[]},c=()=>{l(),n.length&&(a.push(n),n=[])};for(const{key:d,data:u}of i)switch(d){case"M":c(),o=[u[0],u[1]],n.push(o);break;case"L":l(),n.push([u[0],u[1]]);break;case"C":if(!s.length){const t=n.length?n[n.length-1]:o;s.push([t[0],t[1]])}s.push([u[0],u[1]]),s.push([u[2],u[3]]),s.push([u[4],u[5]]);break;case"Z":l(),n.push([o[0],o[1]])}if(c(),!r)return a;const h=[];for(const d of a){const t=tt(d,r);t.length&&h.push(t)}return h}(t,1,o?4-4*(r.simplification||1):(1+r.roughness)/2),l=O(t,r);if(a)if("solid"===r.fillStyle)if(1===s.length){const e=O(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(e.ops)})}else i.push(D(s,r));else i.push(I(s,r));return n&&(o?s.forEach((t=>{i.push(L(t,!1,r))})):i.push(l)),this._d("path",i,r)}opsToPath(t,e){let r="";for(const i of t.ops){const t="number"==typeof e&&e>=0?i.data.map((t=>+t.toFixed(e))):i.data;switch(i.op){case"move":r+=`M${t[0]} ${t[1]} `;break;case"bcurveTo":r+=`C${t[0]} ${t[1]}, ${t[2]} ${t[3]}, ${t[4]} ${t[5]} `;break;case"lineTo":r+=`L${t[0]} ${t[1]} `}}return r.trim()}toPaths(t){const e=t.sets||[],r=t.options||this.defaultOptions,i=[];for(const a of e){let t=null;switch(a.type){case"path":t={d:this.opsToPath(a),stroke:r.stroke,strokeWidth:r.strokeWidth,fill:it};break;case"fillPath":t={d:this.opsToPath(a),stroke:it,strokeWidth:0,fill:r.fill||it};break;case"fillSketch":t=this.fillSketch(a,r)}t&&i.push(t)}return i}fillSketch(t,e){let r=e.fillWeight;return r<0&&(r=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||it,strokeWidth:r,fill:it}}_mergedShape(t){return t.filter(((t,e)=>0===e||"move"!==t.op))}}class nt{constructor(t,e){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new at(e)}draw(t){const e=t.sets||[],r=t.options||this.getDefaultOptions(),i=this.ctx,a=t.options.fixedDecimalPlaceDigits;for(const n of e)switch(n.type){case"path":i.save(),i.strokeStyle="none"===r.stroke?"transparent":r.stroke,i.lineWidth=r.strokeWidth,r.strokeLineDash&&i.setLineDash(r.strokeLineDash),r.strokeLineDashOffset&&(i.lineDashOffset=r.strokeLineDashOffset),this._drawToContext(i,n,a),i.restore();break;case"fillPath":{i.save(),i.fillStyle=r.fill||"";const e="curve"===t.shape||"polygon"===t.shape||"path"===t.shape?"evenodd":"nonzero";this._drawToContext(i,n,a,e),i.restore();break}case"fillSketch":this.fillSketch(i,n,r)}}fillSketch(t,e,r){let i=r.fillWeight;i<0&&(i=r.strokeWidth/2),t.save(),r.fillLineDash&&t.setLineDash(r.fillLineDash),r.fillLineDashOffset&&(t.lineDashOffset=r.fillLineDashOffset),t.strokeStyle=r.fill||"",t.lineWidth=i,this._drawToContext(t,e,r.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,e,r,i="nonzero"){t.beginPath();for(const a of e.ops){const e="number"==typeof r&&r>=0?a.data.map((t=>+t.toFixed(r))):a.data;switch(a.op){case"move":t.moveTo(e[0],e[1]);break;case"bcurveTo":t.bezierCurveTo(e[0],e[1],e[2],e[3],e[4],e[5]);break;case"lineTo":t.lineTo(e[0],e[1])}}"fillPath"===e.type?t.fill(i):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,e,r,i,a){const n=this.gen.line(t,e,r,i,a);return this.draw(n),n}rectangle(t,e,r,i,a){const n=this.gen.rectangle(t,e,r,i,a);return this.draw(n),n}ellipse(t,e,r,i,a){const n=this.gen.ellipse(t,e,r,i,a);return this.draw(n),n}circle(t,e,r,i){const a=this.gen.circle(t,e,r,i);return this.draw(a),a}linearPath(t,e){const r=this.gen.linearPath(t,e);return this.draw(r),r}polygon(t,e){const r=this.gen.polygon(t,e);return this.draw(r),r}arc(t,e,r,i,a,n,o=!1,s){const l=this.gen.arc(t,e,r,i,a,n,o,s);return this.draw(l),l}curve(t,e){const r=this.gen.curve(t,e);return this.draw(r),r}path(t,e){const r=this.gen.path(t,e);return this.draw(r),r}}const ot="http://www.w3.org/2000/svg";class st{constructor(t,e){this.svg=t,this.gen=new at(e)}draw(t){const e=t.sets||[],r=t.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,a=i.createElementNS(ot,"g"),n=t.options.fixedDecimalPlaceDigits;for(const o of e){let e=null;switch(o.type){case"path":e=i.createElementNS(ot,"path"),e.setAttribute("d",this.opsToPath(o,n)),e.setAttribute("stroke",r.stroke),e.setAttribute("stroke-width",r.strokeWidth+""),e.setAttribute("fill","none"),r.strokeLineDash&&e.setAttribute("stroke-dasharray",r.strokeLineDash.join(" ").trim()),r.strokeLineDashOffset&&e.setAttribute("stroke-dashoffset",`${r.strokeLineDashOffset}`);break;case"fillPath":e=i.createElementNS(ot,"path"),e.setAttribute("d",this.opsToPath(o,n)),e.setAttribute("stroke","none"),e.setAttribute("stroke-width","0"),e.setAttribute("fill",r.fill||""),"curve"!==t.shape&&"polygon"!==t.shape||e.setAttribute("fill-rule","evenodd");break;case"fillSketch":e=this.fillSketch(i,o,r)}e&&a.appendChild(e)}return a}fillSketch(t,e,r){let i=r.fillWeight;i<0&&(i=r.strokeWidth/2);const a=t.createElementNS(ot,"path");return a.setAttribute("d",this.opsToPath(e,r.fixedDecimalPlaceDigits)),a.setAttribute("stroke",r.fill||""),a.setAttribute("stroke-width",i+""),a.setAttribute("fill","none"),r.fillLineDash&&a.setAttribute("stroke-dasharray",r.fillLineDash.join(" ").trim()),r.fillLineDashOffset&&a.setAttribute("stroke-dashoffset",`${r.fillLineDashOffset}`),a}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,e){return this.gen.opsToPath(t,e)}line(t,e,r,i,a){const n=this.gen.line(t,e,r,i,a);return this.draw(n)}rectangle(t,e,r,i,a){const n=this.gen.rectangle(t,e,r,i,a);return this.draw(n)}ellipse(t,e,r,i,a){const n=this.gen.ellipse(t,e,r,i,a);return this.draw(n)}circle(t,e,r,i){const a=this.gen.circle(t,e,r,i);return this.draw(a)}linearPath(t,e){const r=this.gen.linearPath(t,e);return this.draw(r)}polygon(t,e){const r=this.gen.polygon(t,e);return this.draw(r)}arc(t,e,r,i,a,n,o=!1,s){const l=this.gen.arc(t,e,r,i,a,n,o,s);return this.draw(l)}curve(t,e){const r=this.gen.curve(t,e);return this.draw(r)}path(t,e){const r=this.gen.path(t,e);return this.draw(r)}}var lt={canvas:(t,e)=>new nt(t,e),svg:(t,e)=>new st(t,e),generator:t=>new at(t),newSeed:()=>at.newSeed()}},60513:(t,e,r)=>{"use strict";r.d(e,{T:()=>i});function i(t){var e=[];for(var r=1;r{n.r(t);n.d(t,{solr:()=>p});var r=/[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\"\\]/;var i=/[\|\!\+\-\*\?\~\^\&]/;var o=/^(OR|AND|NOT|TO)$/;function u(e){return parseFloat(e).toString()===e}function a(e){return function(t,n){var r=false,i;while((i=t.next())!=null){if(i==e&&!r)break;r=!r&&i=="\\"}if(!r)n.tokenize=s;return"string"}}function l(e){return function(t,n){if(e=="|")t.eat(/\|/);else if(e=="&")t.eat(/\&/);n.tokenize=s;return"operator"}}function f(e){return function(t,n){var i=e;while((e=t.peek())&&e.match(r)!=null){i+=t.next()}n.tokenize=s;if(o.test(i))return"operator";else if(u(i))return"number";else if(t.peek()==":")return"propertyName";else return"string"}}function s(e,t){var n=e.next();if(n=='"')t.tokenize=a(n);else if(i.test(n))t.tokenize=l(n);else if(r.test(n))t.tokenize=f(n);return t.tokenize!=s?t.tokenize(e,t):null}const p={name:"solr",startState:function(){return{tokenize:s}},token:function(e,t){if(e.eatSpace())return null;return t.tokenize(e,t)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/232.5419cbec68e3fd0cf431.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/232.5419cbec68e3fd0cf431.js deleted file mode 100644 index ddda5a050f46acecad455c294d7af8564186598a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/232.5419cbec68e3fd0cf431.js +++ /dev/null @@ -1,1465 +0,0 @@ -/*! For license information please see 232.5419cbec68e3fd0cf431.js.LICENSE.txt */ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[232],{50232:(e,t,i)=>{i.r(t);i.d(t,{ARIAGlobalStatesAndProperties:()=>je,Accordion:()=>qe,AccordionExpandMode:()=>Be,AccordionItem:()=>He,Anchor:()=>_e,AnchoredRegion:()=>Os,Avatar:()=>Ms,Badge:()=>Hs,BaseProgress:()=>zr,Breadcrumb:()=>Bs,BreadcrumbItem:()=>zs,Button:()=>Qs,Calendar:()=>eo,CalendarTitleTemplate:()=>ho,Card:()=>go,CheckableFormAssociated:()=>Gs,Checkbox:()=>wo,Combobox:()=>Zo,ComboboxAutocomplete:()=>Qo,ComponentPresentation:()=>Se,Container:()=>U,ContainerConfiguration:()=>V,ContainerImpl:()=>ge,DI:()=>q,DataGrid:()=>lo,DataGridCell:()=>ro,DataGridCellTypes:()=>io,DataGridRow:()=>ao,DataGridRowTypes:()=>so,DateFormatter:()=>Js,DefaultComponentPresentation:()=>Ae,DefaultResolver:()=>H,DelegatesARIAButton:()=>Zs,DelegatesARIACombobox:()=>Jo,DelegatesARIALink:()=>Ke,DelegatesARIAListbox:()=>Wo,DelegatesARIAListboxOption:()=>_o,DelegatesARIASearch:()=>ea,DelegatesARIASelect:()=>oa,DelegatesARIATextbox:()=>Fr,DelegatesARIAToolbar:()=>Ha,DesignSystem:()=>Pn,DesignToken:()=>Dn,Dialog:()=>qn,Disclosure:()=>Gn,Divider:()=>Zn,DividerRole:()=>Qn,ElementDisambiguation:()=>Sn,FactoryImpl:()=>de,Flipper:()=>tr,FlipperDirection:()=>Jn,FlyoutPosBottom:()=>Rs,FlyoutPosBottomFill:()=>As,FlyoutPosTallest:()=>Ds,FlyoutPosTallestFill:()=>Fs,FlyoutPosTop:()=>Es,FlyoutPosTopFill:()=>Ss,FormAssociated:()=>Ws,FoundationElement:()=>Fe,FoundationElementRegistry:()=>Me,GenerateHeaderOptions:()=>to,HorizontalScroll:()=>Wr,Listbox:()=>Ko,ListboxElement:()=>sr,ListboxOption:()=>jo,MatchMediaBehavior:()=>Ka,MatchMediaStyleSheetBehavior:()=>Wa,Menu:()=>Tr,MenuItem:()=>kr,MenuItemRole:()=>wr,NumberField:()=>Pr,Picker:()=>br,PickerList:()=>lr,PickerListItem:()=>hr,PickerMenu:()=>nr,PickerMenuOption:()=>ar,PropertyStyleSheetBehavior:()=>Qa,Radio:()=>Kr,RadioGroup:()=>qr,Registration:()=>xe,ResolverBuilder:()=>M,ResolverImpl:()=>re,Search:()=>Jr,Select:()=>sa,SelectPosition:()=>Go,ServiceLocator:()=>j,Skeleton:()=>aa,Slider:()=>va,SliderLabel:()=>ca,SliderMode:()=>ma,StartEnd:()=>o,Switch:()=>Ca,Tab:()=>Ia,TabPanel:()=>wa,Tabs:()=>Ta,TabsOrientation:()=>Oa,TextArea:()=>Aa,TextAreaResize:()=>Ea,TextField:()=>Ar,TextFieldType:()=>Sr,Toolbar:()=>Pa,Tooltip:()=>Na,TooltipPosition:()=>za,TreeItem:()=>Ua,TreeView:()=>_a,accordionItemTemplate:()=>d,accordionTemplate:()=>Ve,all:()=>J,anchorTemplate:()=>Ue,anchoredRegionTemplate:()=>We,applyMixins:()=>Pe,avatarTemplate:()=>Ls,badgeTemplate:()=>Ps,breadcrumbItemTemplate:()=>Vs,breadcrumbTemplate:()=>Ns,buttonTemplate:()=>qs,calendarCellTemplate:()=>uo,calendarRowTemplate:()=>po,calendarTemplate:()=>vo,calendarWeekdayTemplate:()=>co,cardTemplate:()=>bo,checkboxTemplate:()=>yo,comboboxTemplate:()=>en,composedContains:()=>dn,composedParent:()=>ln,darkModeStylesheetBehavior:()=>Xa,dataGridCellTemplate:()=>an,dataGridRowTemplate:()=>rn,dataGridTemplate:()=>sn,dialogTemplate:()=>Nn,disabledCursor:()=>Za,disclosureTemplate:()=>Wn,display:()=>el,dividerTemplate:()=>Xn,endSlotTemplate:()=>n,endTemplate:()=>a,flipperTemplate:()=>er,focusVisible:()=>tl,forcedColorsStylesheetBehavior:()=>Ga,getDirection:()=>Is,hidden:()=>Ja,horizontalScrollTemplate:()=>Gr,ignore:()=>ie,inject:()=>K,interactiveCalendarGridTemplate:()=>fo,isListboxOption:()=>Uo,isTreeItemElement:()=>qa,lazy:()=>ee,lightModeStylesheetBehavior:()=>Ya,listboxOptionTemplate:()=>ir,listboxTemplate:()=>or,menuItemTemplate:()=>Ir,menuTemplate:()=>Or,newInstanceForScope:()=>se,newInstanceOf:()=>oe,noninteractiveCalendarTemplate:()=>mo,numberFieldTemplate:()=>Er,optional:()=>te,pickerListItemTemplate:()=>xr,pickerListTemplate:()=>Cr,pickerMenuOptionTemplate:()=>yr,pickerMenuTemplate:()=>gr,pickerTemplate:()=>pr,progressRingTemplate:()=>Vr,progressTemplate:()=>Nr,radioGroupTemplate:()=>Br,radioTemplate:()=>Ur,reflectAttributes:()=>Kn,roleForMenuItem:()=>$r,searchTemplate:()=>Yr,selectTemplate:()=>na,singleton:()=>Q,skeletonTemplate:()=>ra,sliderLabelTemplate:()=>la,sliderTemplate:()=>ua,startSlotTemplate:()=>r,startTemplate:()=>l,supportsElementInternals:()=>_s,switchTemplate:()=>ba,tabPanelTemplate:()=>xa,tabTemplate:()=>$a,tabsTemplate:()=>ka,textAreaTemplate:()=>Ra,textFieldTemplate:()=>Fa,toolbarTemplate:()=>La,tooltipTemplate:()=>Va,transient:()=>G,treeItemTemplate:()=>Ba,treeViewTemplate:()=>ja,validateKey:()=>we,whitespaceFilter:()=>Xr});var s=i(29690);class o{handleStartContentChange(){this.startContainer.classList.toggle("start",this.start.assignedNodes().length>0)}handleEndContentChange(){this.endContainer.classList.toggle("end",this.end.assignedNodes().length>0)}}const n=(e,t)=>(0,s.html)` - t.end?"end":void 0} - > - - ${t.end||""} - - -`;const r=(e,t)=>(0,s.html)` - - - ${t.start||""} - - -`;const a=(0,s.html)` - - - -`;const l=(0,s.html)` - - - -`;const d=(e,t)=>(0,s.html)` - -`;var h=function(e,t){h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)if(t.hasOwnProperty(i))e[i]=t[i]};return h(e,t)};function c(e,t){h(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}var u=function(){u=Object.assign||function e(t){for(var i,s=1,o=arguments.length;s=0;a--)if(r=e[a])n=(o<3?r(n):o>3?r(t,i,n):r(t,i))||n;return o>3&&n&&Object.defineProperty(t,i,n),n}function m(e,t){return function(i,s){t(i,s,e)}}function v(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)}function b(e,t,i,s){function o(e){return e instanceof i?e:new i((function(t){t(e)}))}return new(i||(i=Promise))((function(i,n){function r(e){try{l(s.next(e))}catch(t){n(t)}}function a(e){try{l(s["throw"](e))}catch(t){n(t)}}function l(e){e.done?i(e.value):o(e.value).then(r,a)}l((s=s.apply(e,t||[])).next())}))}function g(e,t){var i={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},s,o,n,r;return r={next:a(0),throw:a(1),return:a(2)},typeof Symbol==="function"&&(r[Symbol.iterator]=function(){return this}),r;function a(e){return function(t){return l([e,t])}}function l(r){if(s)throw new TypeError("Generator is already executing.");while(i)try{if(s=1,o&&(n=r[0]&2?o["return"]:r[0]?o["throw"]||((n=o["return"])&&n.call(o),0):o.next)&&!(n=n.call(o,r[1])).done)return n;if(o=0,n)r=[r[0]&2,n.value];switch(r[0]){case 0:case 1:n=r;break;case 4:i.label++;return{value:r[1],done:false};case 5:i.label++;o=r[1];r=[0];continue;case 7:r=i.ops.pop();i.trys.pop();continue;default:if(!(n=i.trys,n=n.length>0&&n[n.length-1])&&(r[0]===6||r[0]===2)){i=0;continue}if(r[0]===3&&(!n||r[1]>n[0]&&r[1]=e.length)e=void 0;return{value:e&&e[s++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var i=typeof Symbol==="function"&&e[Symbol.iterator];if(!i)return e;var s=i.call(e),o,n=[],r;try{while((t===void 0||t-- >0)&&!(o=s.next()).done)n.push(o.value)}catch(a){r={error:a}}finally{try{if(o&&!o.done&&(i=s["return"]))i.call(s)}finally{if(r)throw r.error}}return n}function $(){for(var e=[],t=0;t1||a(e,t)}))}}function a(e,t){try{l(s[e](t))}catch(i){c(n[0][3],i)}}function l(e){e.value instanceof k?Promise.resolve(e.value.v).then(d,h):c(n[0][2],e)}function d(e){a("next",e)}function h(e){a("throw",e)}function c(e,t){if(e(t),n.shift(),n.length)a(n[0][0],n[0][1])}}function T(e){var t,i;return t={},s("next"),s("throw",(function(e){throw e})),s("return"),t[Symbol.iterator]=function(){return this},t;function s(s,o){t[s]=e[s]?function(t){return(i=!i)?{value:k(e[s](t)),done:s==="return"}:o?o(t):t}:o}}function E(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],i;return t?t.call(e):(e=typeof x==="function"?x(e):e[Symbol.iterator](),i={},s("next"),s("throw"),s("return"),i[Symbol.asyncIterator]=function(){return this},i);function s(t){i[t]=e[t]&&function(i){return new Promise((function(s,n){i=e[t](i),o(s,n,i.done,i.value)}))}}function o(e,t,i,s){Promise.resolve(s).then((function(t){e({value:t,done:i})}),t)}}function R(e,t){if(Object.defineProperty){Object.defineProperty(e,"raw",{value:t})}else{e.raw=t}return e}function D(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var i in e)if(Object.hasOwnProperty.call(e,i))t[i]=e[i];t.default=e;return t}function S(e){return e&&e.__esModule?e:{default:e}}function A(e,t){if(!t.has(e)){throw new TypeError("attempted to get private field on non-instance")}return t.get(e)}function F(e,t,i){if(!t.has(e)){throw new TypeError("attempted to set private field on non-instance")}t.set(e,i);return i}const L=new Map;if(!("metadata"in Reflect)){Reflect.metadata=function(e,t){return function(i){Reflect.defineMetadata(e,t,i)}};Reflect.defineMetadata=function(e,t,i){let s=L.get(i);if(s===void 0){L.set(i,s=new Map)}s.set(e,t)};Reflect.getOwnMetadata=function(e,t){const i=L.get(t);if(i!==void 0){return i.get(e)}return void 0}}class M{constructor(e,t){this.container=e;this.key=t}instance(e){return this.registerResolver(0,e)}singleton(e){return this.registerResolver(1,e)}transient(e){return this.registerResolver(2,e)}callback(e){return this.registerResolver(3,e)}cachedCallback(e){return this.registerResolver(3,Ce(e))}aliasTo(e){return this.registerResolver(5,e)}registerResolver(e,t){const{container:i,key:s}=this;this.container=this.key=void 0;return i.registerResolver(s,new re(s,e,t))}}function P(e){const t=e.slice();const i=Object.keys(e);const s=i.length;let o;for(let n=0;nnull,responsibleForOwnerRequests:false,defaultResolver:H.singleton})});const z=new Map;function N(e){return t=>Reflect.getOwnMetadata(e,t)}let B=null;const q=Object.freeze({createContainer(e){return new ge(null,Object.assign({},V.default,e))},findResponsibleContainer(e){const t=e.$$container$$;if(t&&t.responsibleForOwnerRequests){return t}return q.findParentContainer(e)},findParentContainer(e){const t=new CustomEvent(ve,{bubbles:true,composed:true,cancelable:true,detail:{container:void 0}});e.dispatchEvent(t);return t.detail.container||q.getOrCreateDOMContainer()},getOrCreateDOMContainer(e,t){if(!e){return B||(B=new ge(null,Object.assign({},V.default,t,{parentLocator:()=>null})))}return e.$$container$$||new ge(e,Object.assign({},V.default,t,{parentLocator:q.findParentContainer}))},getDesignParamtypes:N("design:paramtypes"),getAnnotationParamtypes:N("di:paramtypes"),getOrCreateAnnotationParamTypes(e){let t=this.getAnnotationParamtypes(e);if(t===void 0){Reflect.defineMetadata("di:paramtypes",t=[],e)}return t},getDependencies(e){let t=z.get(e);if(t===void 0){const i=e.inject;if(i===void 0){const i=q.getDesignParamtypes(e);const s=q.getAnnotationParamtypes(e);if(i===void 0){if(s===void 0){const i=Object.getPrototypeOf(e);if(typeof i==="function"&&i!==Function.prototype){t=P(q.getDependencies(i))}else{t=[]}}else{t=P(s)}}else if(s===void 0){t=P(i)}else{t=P(i);let e=s.length;let o;for(let i=0;i{const o=q.findResponsibleContainer(this);const r=o.get(i);const a=this[n];if(r!==a){this[n]=e;s.notify(t)}};s.subscribe({handleChange:o},"isConnected")}}return e}})},createInterface(e,t){const i=typeof e==="function"?e:t;const s=typeof e==="string"?e:e&&"friendlyName"in e?e.friendlyName||Ie:Ie;const o=typeof e==="string"?false:e&&"respectConnection"in e?e.respectConnection||false:false;const n=function(e,t,i){if(e==null||new.target!==undefined){throw new Error(`No registration for interface: '${n.friendlyName}'`)}if(t){q.defineProperty(e,t,n,o)}else{const t=q.getOrCreateAnnotationParamTypes(e);t[i]=n}};n.$isInterface=true;n.friendlyName=s==null?"(anonymous)":s;if(i!=null){n.register=function(e,t){return i(new M(e,t!==null&&t!==void 0?t:n))}}n.toString=function e(){return`InterfaceSymbol<${n.friendlyName}>`};return n},inject(...e){return function(t,i,s){if(typeof s==="number"){const i=q.getOrCreateAnnotationParamTypes(t);const o=e[0];if(o!==void 0){i[s]=o}}else if(i){q.defineProperty(t,i,e[0])}else{const i=s?q.getOrCreateAnnotationParamTypes(s.value):q.getOrCreateAnnotationParamTypes(t);let o;for(let t=0;ti.getAll(e,s)));const ee=_(((e,t,i)=>()=>i.get(e)));const te=_(((e,t,i)=>{if(i.has(e,true)){return i.get(e)}else{return undefined}}));function ie(e,t,i){q.inject(ie)(e,t,i)}ie.$isResolver=true;ie.resolve=()=>undefined;const se=_(((e,t,i)=>{const s=ne(e,t);const o=new re(e,0,s);i.registerResolver(e,o);return s}));const oe=_(((e,t,i)=>ne(e,t)));function ne(e,t){return t.getFactory(e).construct(t)}class re{constructor(e,t,i){this.key=e;this.strategy=t;this.state=i;this.resolving=false}get $isResolver(){return true}register(e){return e.registerResolver(this.key,this)}resolve(e,t){switch(this.strategy){case 0:return this.state;case 1:{if(this.resolving){throw new Error(`Cyclic dependency found: ${this.state.name}`)}this.resolving=true;this.state=e.getFactory(this.state).construct(t);this.strategy=0;this.resolving=false;return this.state}case 2:{const i=e.getFactory(this.state);if(i===null){throw new Error(`Resolver for ${String(this.key)} returned a null factory`)}return i.construct(t)}case 3:return this.state(e,t,this);case 4:return this.state[0].resolve(e,t);case 5:return t.get(this.state);default:throw new Error(`Invalid resolver strategy specified: ${this.strategy}.`)}}getFactory(e){var t,i,s;switch(this.strategy){case 1:case 2:return e.getFactory(this.state);case 5:return(s=(i=(t=e.getResolver(this.state))===null||t===void 0?void 0:t.getFactory)===null||i===void 0?void 0:i.call(t,e))!==null&&s!==void 0?s:null;default:return null}}}function ae(e){return this.get(e)}function le(e,t){return t(e)}class de{constructor(e,t){this.Type=e;this.dependencies=t;this.transformers=null}construct(e,t){let i;if(t===void 0){i=new this.Type(...this.dependencies.map(ae,e))}else{i=new this.Type(...this.dependencies.map(ae,e),...t)}if(this.transformers==null){return i}return this.transformers.reduce(le,i)}registerTransformer(e){(this.transformers||(this.transformers=[])).push(e)}}const he={$isResolver:true,resolve(e,t){return t}};function ce(e){return typeof e.register==="function"}function ue(e){return ce(e)&&typeof e.registerInRequestor==="boolean"}function pe(e){return ue(e)&&e.registerInRequestor}function fe(e){return e.prototype!==void 0}const me=new Set(["Array","ArrayBuffer","Boolean","DataView","Date","Error","EvalError","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Number","Object","Promise","RangeError","ReferenceError","RegExp","Set","SharedArrayBuffer","String","SyntaxError","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakSet"]);const ve="__DI_LOCATE_PARENT__";const be=new Map;class ge{constructor(e,t){this.owner=e;this.config=t;this._parent=void 0;this.registerDepth=0;this.context=null;if(e!==null){e.$$container$$=this}this.resolvers=new Map;this.resolvers.set(U,he);if(e instanceof Node){e.addEventListener(ve,(e=>{if(e.composedPath()[0]!==this.owner){e.detail.container=this;e.stopImmediatePropagation()}}))}}get parent(){if(this._parent===void 0){this._parent=this.config.parentLocator(this.owner)}return this._parent}get depth(){return this.parent===null?0:this.parent.depth+1}get responsibleForOwnerRequests(){return this.config.responsibleForOwnerRequests}registerWithContext(e,...t){this.context=e;this.register(...t);this.context=null;return this}register(...e){if(++this.registerDepth===100){throw new Error("Unable to autoregister dependency")}let t;let i;let s;let o;let n;const r=this.context;for(let a=0,l=e.length;athis}))}jitRegister(e,t){if(typeof e!=="function"){throw new Error(`Attempted to jitRegister something that is not a constructor: '${e}'. Did you forget to register this dependency?`)}if(me.has(e.name)){throw new Error(`Attempted to jitRegister an intrinsic type: ${e.name}. Did you forget to add @inject(Key)`)}if(ce(e)){const i=e.register(t);if(!(i instanceof Object)||i.resolve==null){const i=t.resolvers.get(e);if(i!=void 0){return i}throw new Error("A valid resolver was not returned from the static register method")}return i}else if(e.$isInterface){throw new Error(`Attempted to jitRegister an interface: ${e.friendlyName}`)}else{const i=this.config.defaultResolver(e,t);t.resolvers.set(e,i);return i}}}const ye=new WeakMap;function Ce(e){return function(t,i,s){if(ye.has(s)){return ye.get(s)}const o=e(t,i,s);ye.set(s,o);return o}}const xe=Object.freeze({instance(e,t){return new re(e,0,t)},singleton(e,t){return new re(e,1,t)},transient(e,t){return new re(e,2,t)},callback(e,t){return new re(e,3,t)},cachedCallback(e,t){return new re(e,3,Ce(t))},aliasTo(e,t){return new re(t,5,e)}});function we(e){if(e===null||e===void 0){throw new Error("key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?")}}function $e(e,t,i){if(e instanceof re&&e.strategy===4){const s=e.state;let o=s.length;const n=new Array(o);while(o--){n[o]=s[o].resolve(t,i)}return n}return[e.resolve(t,i)]}const Ie="(anonymous)";function ke(e){return typeof e==="object"&&e!==null||typeof e==="function"}const Oe=function(){const e=new WeakMap;let t=false;let i="";let s=0;return function(o){t=e.get(o);if(t===void 0){i=o.toString();s=i.length;t=s>=29&&s<=100&&i.charCodeAt(s-1)===125&&i.charCodeAt(s-2)<=32&&i.charCodeAt(s-3)===93&&i.charCodeAt(s-4)===101&&i.charCodeAt(s-5)===100&&i.charCodeAt(s-6)===111&&i.charCodeAt(s-7)===99&&i.charCodeAt(s-8)===32&&i.charCodeAt(s-9)===101&&i.charCodeAt(s-10)===118&&i.charCodeAt(s-11)===105&&i.charCodeAt(s-12)===116&&i.charCodeAt(s-13)===97&&i.charCodeAt(s-14)===110&&i.charCodeAt(s-15)===88;e.set(o,t)}return t}}();const Te={};function Ee(e){switch(typeof e){case"number":return e>=0&&(e|0)===e;case"string":{const t=Te[e];if(t!==void 0){return t}const i=e.length;if(i===0){return Te[e]=false}let s=0;for(let o=0;o1||s<48||s>57){return Te[e]=false}}return Te[e]=true}default:return false}}function Re(e){return`${e.toLowerCase()}:presentation`}const De=new Map;const Se=Object.freeze({define(e,t,i){const s=Re(e);const o=De.get(s);if(o===void 0){De.set(s,t)}else{De.set(s,false)}i.register(xe.instance(s,t))},forTag(e,t){const i=Re(e);const s=De.get(i);if(s===false){const e=q.findResponsibleContainer(t);return e.get(i)}return s||null}});class Ae{constructor(e,t){this.template=e||null;this.styles=t===void 0?null:Array.isArray(t)?s.ElementStyles.create(t):t instanceof s.ElementStyles?t:s.ElementStyles.create([t])}applyTo(e){const t=e.$fastController;if(t.template===null){t.template=this.template}if(t.styles===null){t.styles=this.styles}}}class Fe extends s.FASTElement{constructor(){super(...arguments);this._presentation=void 0}get $presentation(){if(this._presentation===void 0){this._presentation=Se.forTag(this.tagName,this)}return this._presentation}templateChanged(){if(this.template!==undefined){this.$fastController.template=this.template}}stylesChanged(){if(this.styles!==undefined){this.$fastController.styles=this.styles}}connectedCallback(){if(this.$presentation!==null){this.$presentation.applyTo(this)}super.connectedCallback()}static compose(e){return(t={})=>new Me(this===Fe?class extends Fe{}:this,e,t)}}f([s.observable],Fe.prototype,"template",void 0);f([s.observable],Fe.prototype,"styles",void 0);function Le(e,t,i){if(typeof e==="function"){return e(t,i)}return e}class Me{constructor(e,t,i){this.type=e;this.elementDefinition=t;this.overrideDefinition=i;this.definition=Object.assign(Object.assign({},this.elementDefinition),this.overrideDefinition)}register(e,t){const i=this.definition;const s=this.overrideDefinition;const o=i.prefix||t.elementPrefix;const n=`${o}-${i.baseName}`;t.tryDefineElement({name:n,type:this.type,baseClass:this.elementDefinition.baseClass,callback:e=>{const t=new Ae(Le(i.template,e,i),Le(i.styles,e,i));e.definePresentation(t);let o=Le(i.shadowOptions,e,i);if(e.shadowRootMode){if(o){if(!s.shadowOptions){o.mode=e.shadowRootMode}}else if(o!==null){o={mode:e.shadowRootMode}}}e.defineElement({elementOptions:Le(i.elementOptions,e,i),shadowOptions:o,attributes:Le(i.attributes,e,i)})}})}}function Pe(e,...t){const i=s.AttributeConfiguration.locate(e);t.forEach((t=>{Object.getOwnPropertyNames(t.prototype).forEach((i=>{if(i!=="constructor"){Object.defineProperty(e.prototype,i,Object.getOwnPropertyDescriptor(t.prototype,i))}}));const o=s.AttributeConfiguration.locate(t);o.forEach((e=>i.push(e)))}))}class He extends Fe{constructor(){super(...arguments);this.headinglevel=2;this.expanded=false;this.clickHandler=e=>{this.expanded=!this.expanded;this.change()};this.change=()=>{this.$emit("change")}}}f([(0,s.attr)({attribute:"heading-level",mode:"fromView",converter:s.nullableNumberConverter})],He.prototype,"headinglevel",void 0);f([(0,s.attr)({mode:"boolean"})],He.prototype,"expanded",void 0);f([s.attr],He.prototype,"id",void 0);Pe(He,o);const Ve=(e,t)=>(0,s.html)` - -`;var ze=i(74291);var Ne=i(83021);const Be={single:"single",multi:"multi"};class qe extends Fe{constructor(){super(...arguments);this.expandmode=Be.multi;this.activeItemIndex=0;this.change=()=>{this.$emit("change",this.activeid)};this.setItems=()=>{var e;if(this.accordionItems.length===0){return}this.accordionIds=this.getItemIds();this.accordionItems.forEach(((e,t)=>{if(e instanceof He){e.addEventListener("change",this.activeItemChange);if(this.isSingleExpandMode()){this.activeItemIndex!==t?e.expanded=false:e.expanded=true}}const i=this.accordionIds[t];e.setAttribute("id",typeof i!=="string"?`accordion-${t+1}`:i);this.activeid=this.accordionIds[this.activeItemIndex];e.addEventListener("keydown",this.handleItemKeyDown);e.addEventListener("focus",this.handleItemFocus)}));if(this.isSingleExpandMode()){const t=(e=this.findExpandedItem())!==null&&e!==void 0?e:this.accordionItems[0];t.setAttribute("aria-disabled","true")}};this.removeItemListeners=e=>{e.forEach(((e,t)=>{e.removeEventListener("change",this.activeItemChange);e.removeEventListener("keydown",this.handleItemKeyDown);e.removeEventListener("focus",this.handleItemFocus)}))};this.activeItemChange=e=>{if(e.defaultPrevented||e.target!==e.currentTarget){return}e.preventDefault();const t=e.target;this.activeid=t.getAttribute("id");if(this.isSingleExpandMode()){this.resetItems();t.expanded=true;t.setAttribute("aria-disabled","true");this.accordionItems.forEach((e=>{if(!e.hasAttribute("disabled")&&e.id!==this.activeid){e.removeAttribute("aria-disabled")}}))}this.activeItemIndex=Array.from(this.accordionItems).indexOf(t);this.change()};this.handleItemKeyDown=e=>{if(e.target!==e.currentTarget){return}this.accordionIds=this.getItemIds();switch(e.key){case ze.I5:e.preventDefault();this.adjust(-1);break;case ze.HX:e.preventDefault();this.adjust(1);break;case ze.Tg:this.activeItemIndex=0;this.focusItem();break;case ze.FM:this.activeItemIndex=this.accordionItems.length-1;this.focusItem();break}};this.handleItemFocus=e=>{if(e.target===e.currentTarget){const t=e.target;const i=this.activeItemIndex=Array.from(this.accordionItems).indexOf(t);if(this.activeItemIndex!==i&&i!==-1){this.activeItemIndex=i;this.activeid=this.accordionIds[this.activeItemIndex]}}}}accordionItemsChanged(e,t){if(this.$fastController.isConnected){this.removeItemListeners(e);this.setItems()}}findExpandedItem(){for(let e=0;e{e.expanded=false}))}getItemIds(){return this.accordionItems.map((e=>e.getAttribute("id")))}isSingleExpandMode(){return this.expandmode===Be.single}adjust(e){this.activeItemIndex=(0,Ne.Vf)(0,this.accordionItems.length-1,this.activeItemIndex+e);this.focusItem()}focusItem(){const e=this.accordionItems[this.activeItemIndex];if(e instanceof He){e.expandbutton.focus()}}}f([(0,s.attr)({attribute:"expand-mode"})],qe.prototype,"expandmode",void 0);f([s.observable],qe.prototype,"accordionItems",void 0);const Ue=(e,t)=>(0,s.html)` - - ${r(e,t)} - - - - ${n(e,t)} - -`;class je{}f([(0,s.attr)({attribute:"aria-atomic"})],je.prototype,"ariaAtomic",void 0);f([(0,s.attr)({attribute:"aria-busy"})],je.prototype,"ariaBusy",void 0);f([(0,s.attr)({attribute:"aria-controls"})],je.prototype,"ariaControls",void 0);f([(0,s.attr)({attribute:"aria-current"})],je.prototype,"ariaCurrent",void 0);f([(0,s.attr)({attribute:"aria-describedby"})],je.prototype,"ariaDescribedby",void 0);f([(0,s.attr)({attribute:"aria-details"})],je.prototype,"ariaDetails",void 0);f([(0,s.attr)({attribute:"aria-disabled"})],je.prototype,"ariaDisabled",void 0);f([(0,s.attr)({attribute:"aria-errormessage"})],je.prototype,"ariaErrormessage",void 0);f([(0,s.attr)({attribute:"aria-flowto"})],je.prototype,"ariaFlowto",void 0);f([(0,s.attr)({attribute:"aria-haspopup"})],je.prototype,"ariaHaspopup",void 0);f([(0,s.attr)({attribute:"aria-hidden"})],je.prototype,"ariaHidden",void 0);f([(0,s.attr)({attribute:"aria-invalid"})],je.prototype,"ariaInvalid",void 0);f([(0,s.attr)({attribute:"aria-keyshortcuts"})],je.prototype,"ariaKeyshortcuts",void 0);f([(0,s.attr)({attribute:"aria-label"})],je.prototype,"ariaLabel",void 0);f([(0,s.attr)({attribute:"aria-labelledby"})],je.prototype,"ariaLabelledby",void 0);f([(0,s.attr)({attribute:"aria-live"})],je.prototype,"ariaLive",void 0);f([(0,s.attr)({attribute:"aria-owns"})],je.prototype,"ariaOwns",void 0);f([(0,s.attr)({attribute:"aria-relevant"})],je.prototype,"ariaRelevant",void 0);f([(0,s.attr)({attribute:"aria-roledescription"})],je.prototype,"ariaRoledescription",void 0);class _e extends Fe{constructor(){super(...arguments);this.handleUnsupportedDelegatesFocus=()=>{var e;if(window.ShadowRoot&&!window.ShadowRoot.prototype.hasOwnProperty("delegatesFocus")&&((e=this.$fastController.definition.shadowOptions)===null||e===void 0?void 0:e.delegatesFocus)){this.focus=()=>{var e;(e=this.control)===null||e===void 0?void 0:e.focus()}}}}connectedCallback(){super.connectedCallback();this.handleUnsupportedDelegatesFocus()}}f([s.attr],_e.prototype,"download",void 0);f([s.attr],_e.prototype,"href",void 0);f([s.attr],_e.prototype,"hreflang",void 0);f([s.attr],_e.prototype,"ping",void 0);f([s.attr],_e.prototype,"referrerpolicy",void 0);f([s.attr],_e.prototype,"rel",void 0);f([s.attr],_e.prototype,"target",void 0);f([s.attr],_e.prototype,"type",void 0);f([s.observable],_e.prototype,"defaultSlottedContent",void 0);class Ke{}f([(0,s.attr)({attribute:"aria-expanded"})],Ke.prototype,"ariaExpanded",void 0);Pe(Ke,je);Pe(_e,o,Ke);const We=(e,t)=>(0,s.html)` - -`;var Ge=i(30086);const Xe="abort";const Ye="afterprint";const Qe="animationcancel";const Ze="animationend";const Je="animationiteration";const et="animationstart";const tt="appinstalled";const it="beforeprint";const st="beforeunload";const ot="beginEvent";const nt="blocked";const rt="blur";const at="canplay";const lt="canplaythrough";const dt="change";const ht="chargingchange";const ct="chargingtimechange";const ut="click";const pt="close";const ft="complete";const mt="compositionend";const vt="compositionstart";const bt="compositionupdate";const gt="contextmenu";const yt="copy";const Ct="cut";const xt="dblclick";const wt="devicechange";const $t="devicemotion";const It="deviceorientation";const kt="dischargingtimechange";const Ot="drag";const Tt="dragend";const Et="dragenter";const Rt="dragleave";const Dt="dragover";const St="dragstart";const At="drop";const Ft="durationchange";const Lt="emptied";const Mt="ended";const Pt="endevent";const Ht="error";const Vt="focus";const zt="focusin";const Nt="focusout";const Bt="fullscreenchange";const qt="fullscreenerror";const Ut="gamepadconnected";const jt="gamepaddisconnected";const _t="gotpointercapture";const Kt="hashchange";const Wt="lostpointercapture";const Gt="input";const Xt="invalid";const Yt="keydown";const Qt="keyup";const Zt="levelchange";const Jt="load";const ei="loadeddata";const ti="loadedmetadata";const ii="loadend";const si="loadstart";const oi="message";const ni="messageerror";const ri="mousedown";const ai="mouseenter";const li="mouseleave";const di="mousemove";const hi="mouseout";const ci="mouseover";const ui="mouseup";const pi="notificationclick";const fi="offline";const mi="online";const vi="open";const bi="orientationchange";const gi="pagehide";const yi="pageshow";const Ci="paste";const xi="pause";const wi="pointercancel";const $i="pointerdown";const Ii="pointerenter";const ki="pointerleave";const Oi="pointerlockchange";const Ti="pointerlockerror";const Ei="pointermove";const Ri="pointerout";const Di="pointerover";const Si="pointerup";const Ai="play";const Fi="playing";const Li="popstate";const Mi="progress";const Pi="push";const Hi="pushsubscriptionchange";const Vi="ratechange";const zi="readystatechange";const Ni="repeatevent";const Bi="reset";const qi="resize";const Ui="resourcetimingbufferfull";const ji="scroll";const _i="seeked";const Ki="seeking";const Wi="select";const Gi="show";const Xi="slotchange";const Yi="stalled";const Qi="start";const Zi="storage";const Ji="submit";const es="success";const ts="suspend";const is="SVGAbort";const ss="SVGError";const os="SVGLoad";const ns="SVGResize";const rs="SVGScroll";const as="SVGUnload";const ls="SVGZoom";const ds="timeout";const hs="timeupdate";const cs="touchcancel";const us="touchend";const ps="touchmove";const fs="touchstart";const ms="transitionend";const vs="unload";const bs="upgradeneeded";const gs="userproximity";const ys="versionchange";const Cs="visibilitychange";const xs="volumechange";const ws="waiting";const $s="wheel";const Is=e=>{const t=e.closest("[dir]");return t!==null&&t.dir==="rtl"?Ge.O.rtl:Ge.O.ltr};class ks{constructor(){this.intersectionDetector=null;this.observedElements=new Map;this.requestPosition=(e,t)=>{var i;if(this.intersectionDetector===null){return}if(this.observedElements.has(e)){(i=this.observedElements.get(e))===null||i===void 0?void 0:i.push(t);return}this.observedElements.set(e,[t]);this.intersectionDetector.observe(e)};this.cancelRequestPosition=(e,t)=>{const i=this.observedElements.get(e);if(i!==undefined){const e=i.indexOf(t);if(e!==-1){i.splice(e,1)}}};this.initializeIntersectionDetector=()=>{if(!s.$global.IntersectionObserver){return}this.intersectionDetector=new IntersectionObserver(this.handleIntersection,{root:null,rootMargin:"0px",threshold:[0,1]})};this.handleIntersection=e=>{if(this.intersectionDetector===null){return}const t=[];const i=[];e.forEach((e=>{var s;(s=this.intersectionDetector)===null||s===void 0?void 0:s.unobserve(e.target);const o=this.observedElements.get(e.target);if(o!==undefined){o.forEach((s=>{let o=t.indexOf(s);if(o===-1){o=t.length;t.push(s);i.push([])}i[o].push(e)}));this.observedElements.delete(e.target)}}));t.forEach(((e,t)=>{e(i[t])}))};this.initializeIntersectionDetector()}}class Os extends Fe{constructor(){super(...arguments);this.anchor="";this.viewport="";this.horizontalPositioningMode="uncontrolled";this.horizontalDefaultPosition="unset";this.horizontalViewportLock=false;this.horizontalInset=false;this.horizontalScaling="content";this.verticalPositioningMode="uncontrolled";this.verticalDefaultPosition="unset";this.verticalViewportLock=false;this.verticalInset=false;this.verticalScaling="content";this.fixedPlacement=false;this.autoUpdateMode="anchor";this.anchorElement=null;this.viewportElement=null;this.initialLayoutComplete=false;this.resizeDetector=null;this.baseHorizontalOffset=0;this.baseVerticalOffset=0;this.pendingPositioningUpdate=false;this.pendingReset=false;this.currentDirection=Ge.O.ltr;this.regionVisible=false;this.forceUpdate=false;this.updateThreshold=.5;this.update=()=>{if(!this.pendingPositioningUpdate){this.requestPositionUpdates()}};this.startObservers=()=>{this.stopObservers();if(this.anchorElement===null){return}this.requestPositionUpdates();if(this.resizeDetector!==null){this.resizeDetector.observe(this.anchorElement);this.resizeDetector.observe(this)}};this.requestPositionUpdates=()=>{if(this.anchorElement===null||this.pendingPositioningUpdate){return}Os.intersectionService.requestPosition(this,this.handleIntersection);Os.intersectionService.requestPosition(this.anchorElement,this.handleIntersection);if(this.viewportElement!==null){Os.intersectionService.requestPosition(this.viewportElement,this.handleIntersection)}this.pendingPositioningUpdate=true};this.stopObservers=()=>{if(this.pendingPositioningUpdate){this.pendingPositioningUpdate=false;Os.intersectionService.cancelRequestPosition(this,this.handleIntersection);if(this.anchorElement!==null){Os.intersectionService.cancelRequestPosition(this.anchorElement,this.handleIntersection)}if(this.viewportElement!==null){Os.intersectionService.cancelRequestPosition(this.viewportElement,this.handleIntersection)}}if(this.resizeDetector!==null){this.resizeDetector.disconnect()}};this.getViewport=()=>{if(typeof this.viewport!=="string"||this.viewport===""){return document.documentElement}return document.getElementById(this.viewport)};this.getAnchor=()=>document.getElementById(this.anchor);this.handleIntersection=e=>{if(!this.pendingPositioningUpdate){return}this.pendingPositioningUpdate=false;if(!this.applyIntersectionEntries(e)){return}this.updateLayout()};this.applyIntersectionEntries=e=>{const t=e.find((e=>e.target===this));const i=e.find((e=>e.target===this.anchorElement));const s=e.find((e=>e.target===this.viewportElement));if(t===undefined||s===undefined||i===undefined){return false}if(!this.regionVisible||this.forceUpdate||this.regionRect===undefined||this.anchorRect===undefined||this.viewportRect===undefined||this.isRectDifferent(this.anchorRect,i.boundingClientRect)||this.isRectDifferent(this.viewportRect,s.boundingClientRect)||this.isRectDifferent(this.regionRect,t.boundingClientRect)){this.regionRect=t.boundingClientRect;this.anchorRect=i.boundingClientRect;if(this.viewportElement===document.documentElement){this.viewportRect=new DOMRectReadOnly(s.boundingClientRect.x+document.documentElement.scrollLeft,s.boundingClientRect.y+document.documentElement.scrollTop,s.boundingClientRect.width,s.boundingClientRect.height)}else{this.viewportRect=s.boundingClientRect}this.updateRegionOffset();this.forceUpdate=false;return true}return false};this.updateRegionOffset=()=>{if(this.anchorRect&&this.regionRect){this.baseHorizontalOffset=this.baseHorizontalOffset+(this.anchorRect.left-this.regionRect.left)+(this.translateX-this.baseHorizontalOffset);this.baseVerticalOffset=this.baseVerticalOffset+(this.anchorRect.top-this.regionRect.top)+(this.translateY-this.baseVerticalOffset)}};this.isRectDifferent=(e,t)=>{if(Math.abs(e.top-t.top)>this.updateThreshold||Math.abs(e.right-t.right)>this.updateThreshold||Math.abs(e.bottom-t.bottom)>this.updateThreshold||Math.abs(e.left-t.left)>this.updateThreshold){return true}return false};this.handleResize=e=>{this.update()};this.reset=()=>{if(!this.pendingReset){return}this.pendingReset=false;if(this.anchorElement===null){this.anchorElement=this.getAnchor()}if(this.viewportElement===null){this.viewportElement=this.getViewport()}this.currentDirection=Is(this);this.startObservers()};this.updateLayout=()=>{let e=undefined;let t=undefined;if(this.horizontalPositioningMode!=="uncontrolled"){const e=this.getPositioningOptions(this.horizontalInset);if(this.horizontalDefaultPosition==="center"){t="center"}else if(this.horizontalDefaultPosition!=="unset"){let e=this.horizontalDefaultPosition;if(e==="start"||e==="end"){const t=Is(this);if(t!==this.currentDirection){this.currentDirection=t;this.initialize();return}if(this.currentDirection===Ge.O.ltr){e=e==="start"?"left":"right"}else{e=e==="start"?"right":"left"}}switch(e){case"left":t=this.horizontalInset?"insetStart":"start";break;case"right":t=this.horizontalInset?"insetEnd":"end";break}}const i=this.horizontalThreshold!==undefined?this.horizontalThreshold:this.regionRect!==undefined?this.regionRect.width:0;const s=this.anchorRect!==undefined?this.anchorRect.left:0;const o=this.anchorRect!==undefined?this.anchorRect.right:0;const n=this.anchorRect!==undefined?this.anchorRect.width:0;const r=this.viewportRect!==undefined?this.viewportRect.left:0;const a=this.viewportRect!==undefined?this.viewportRect.right:0;if(t===undefined||!(this.horizontalPositioningMode==="locktodefault")&&this.getAvailableSpace(t,s,o,n,r,a)this.getAvailableSpace(e[1],s,o,n,r,a)?e[0]:e[1]}}if(this.verticalPositioningMode!=="uncontrolled"){const t=this.getPositioningOptions(this.verticalInset);if(this.verticalDefaultPosition==="center"){e="center"}else if(this.verticalDefaultPosition!=="unset"){switch(this.verticalDefaultPosition){case"top":e=this.verticalInset?"insetStart":"start";break;case"bottom":e=this.verticalInset?"insetEnd":"end";break}}const i=this.verticalThreshold!==undefined?this.verticalThreshold:this.regionRect!==undefined?this.regionRect.height:0;const s=this.anchorRect!==undefined?this.anchorRect.top:0;const o=this.anchorRect!==undefined?this.anchorRect.bottom:0;const n=this.anchorRect!==undefined?this.anchorRect.height:0;const r=this.viewportRect!==undefined?this.viewportRect.top:0;const a=this.viewportRect!==undefined?this.viewportRect.bottom:0;if(e===undefined||!(this.verticalPositioningMode==="locktodefault")&&this.getAvailableSpace(e,s,o,n,r,a)this.getAvailableSpace(t[1],s,o,n,r,a)?t[0]:t[1]}}const i=this.getNextRegionDimension(t,e);const s=this.horizontalPosition!==t||this.verticalPosition!==e;this.setHorizontalPosition(t,i);this.setVerticalPosition(e,i);this.updateRegionStyle();if(!this.initialLayoutComplete){this.initialLayoutComplete=true;this.requestPositionUpdates();return}if(!this.regionVisible){this.regionVisible=true;this.style.removeProperty("pointer-events");this.style.removeProperty("opacity");this.classList.toggle("loaded",true);this.$emit("loaded",this,{bubbles:false})}this.updatePositionClasses();if(s){this.$emit("positionchange",this,{bubbles:false})}};this.updateRegionStyle=()=>{this.style.width=this.regionWidth;this.style.height=this.regionHeight;this.style.transform=`translate(${this.translateX}px, ${this.translateY}px)`};this.updatePositionClasses=()=>{this.classList.toggle("top",this.verticalPosition==="start");this.classList.toggle("bottom",this.verticalPosition==="end");this.classList.toggle("inset-top",this.verticalPosition==="insetStart");this.classList.toggle("inset-bottom",this.verticalPosition==="insetEnd");this.classList.toggle("vertical-center",this.verticalPosition==="center");this.classList.toggle("left",this.horizontalPosition==="start");this.classList.toggle("right",this.horizontalPosition==="end");this.classList.toggle("inset-left",this.horizontalPosition==="insetStart");this.classList.toggle("inset-right",this.horizontalPosition==="insetEnd");this.classList.toggle("horizontal-center",this.horizontalPosition==="center")};this.setHorizontalPosition=(e,t)=>{if(e===undefined||this.regionRect===undefined||this.anchorRect===undefined||this.viewportRect===undefined){return}let i=0;switch(this.horizontalScaling){case"anchor":case"fill":i=this.horizontalViewportLock?this.viewportRect.width:t.width;this.regionWidth=`${i}px`;break;case"content":i=this.regionRect.width;this.regionWidth="unset";break}let s=0;switch(e){case"start":this.translateX=this.baseHorizontalOffset-i;if(this.horizontalViewportLock&&this.anchorRect.left>this.viewportRect.right){this.translateX=this.translateX-(this.anchorRect.left-this.viewportRect.right)}break;case"insetStart":this.translateX=this.baseHorizontalOffset-i+this.anchorRect.width;if(this.horizontalViewportLock&&this.anchorRect.right>this.viewportRect.right){this.translateX=this.translateX-(this.anchorRect.right-this.viewportRect.right)}break;case"insetEnd":this.translateX=this.baseHorizontalOffset;if(this.horizontalViewportLock&&this.anchorRect.leftthis.viewportRect.right)){this.translateX=this.translateX-(e-this.viewportRect.left)}else if(t>this.viewportRect.right&&!(e{if(e===undefined||this.regionRect===undefined||this.anchorRect===undefined||this.viewportRect===undefined){return}let i=0;switch(this.verticalScaling){case"anchor":case"fill":i=this.verticalViewportLock?this.viewportRect.height:t.height;this.regionHeight=`${i}px`;break;case"content":i=this.regionRect.height;this.regionHeight="unset";break}let s=0;switch(e){case"start":this.translateY=this.baseVerticalOffset-i;if(this.verticalViewportLock&&this.anchorRect.top>this.viewportRect.bottom){this.translateY=this.translateY-(this.anchorRect.top-this.viewportRect.bottom)}break;case"insetStart":this.translateY=this.baseVerticalOffset-i+this.anchorRect.height;if(this.verticalViewportLock&&this.anchorRect.bottom>this.viewportRect.bottom){this.translateY=this.translateY-(this.anchorRect.bottom-this.viewportRect.bottom)}break;case"insetEnd":this.translateY=this.baseVerticalOffset;if(this.verticalViewportLock&&this.anchorRect.topthis.viewportRect.bottom)){this.translateY=this.translateY-(e-this.viewportRect.top)}else if(t>this.viewportRect.bottom&&!(e{if(e){return["insetStart","insetEnd"]}return["start","end"]};this.getAvailableSpace=(e,t,i,s,o,n)=>{const r=t-o;const a=n-(t+s);switch(e){case"start":return r;case"insetStart":return r+s;case"insetEnd":return a+s;case"end":return a;case"center":return Math.min(r,a)*2+s}};this.getNextRegionDimension=(e,t)=>{const i={height:this.regionRect!==undefined?this.regionRect.height:0,width:this.regionRect!==undefined?this.regionRect.width:0};if(e!==undefined&&this.horizontalScaling==="fill"){i.width=this.getAvailableSpace(e,this.anchorRect!==undefined?this.anchorRect.left:0,this.anchorRect!==undefined?this.anchorRect.right:0,this.anchorRect!==undefined?this.anchorRect.width:0,this.viewportRect!==undefined?this.viewportRect.left:0,this.viewportRect!==undefined?this.viewportRect.right:0)}else if(this.horizontalScaling==="anchor"){i.width=this.anchorRect!==undefined?this.anchorRect.width:0}if(t!==undefined&&this.verticalScaling==="fill"){i.height=this.getAvailableSpace(t,this.anchorRect!==undefined?this.anchorRect.top:0,this.anchorRect!==undefined?this.anchorRect.bottom:0,this.anchorRect!==undefined?this.anchorRect.height:0,this.viewportRect!==undefined?this.viewportRect.top:0,this.viewportRect!==undefined?this.viewportRect.bottom:0)}else if(this.verticalScaling==="anchor"){i.height=this.anchorRect!==undefined?this.anchorRect.height:0}return i};this.startAutoUpdateEventListeners=()=>{window.addEventListener(qi,this.update,{passive:true});window.addEventListener(ji,this.update,{passive:true,capture:true});if(this.resizeDetector!==null&&this.viewportElement!==null){this.resizeDetector.observe(this.viewportElement)}};this.stopAutoUpdateEventListeners=()=>{window.removeEventListener(qi,this.update);window.removeEventListener(ji,this.update);if(this.resizeDetector!==null&&this.viewportElement!==null){this.resizeDetector.unobserve(this.viewportElement)}}}anchorChanged(){if(this.initialLayoutComplete){this.anchorElement=this.getAnchor()}}viewportChanged(){if(this.initialLayoutComplete){this.viewportElement=this.getViewport()}}horizontalPositioningModeChanged(){this.requestReset()}horizontalDefaultPositionChanged(){this.updateForAttributeChange()}horizontalViewportLockChanged(){this.updateForAttributeChange()}horizontalInsetChanged(){this.updateForAttributeChange()}horizontalThresholdChanged(){this.updateForAttributeChange()}horizontalScalingChanged(){this.updateForAttributeChange()}verticalPositioningModeChanged(){this.requestReset()}verticalDefaultPositionChanged(){this.updateForAttributeChange()}verticalViewportLockChanged(){this.updateForAttributeChange()}verticalInsetChanged(){this.updateForAttributeChange()}verticalThresholdChanged(){this.updateForAttributeChange()}verticalScalingChanged(){this.updateForAttributeChange()}fixedPlacementChanged(){if(this.$fastController.isConnected&&this.initialLayoutComplete){this.initialize()}}autoUpdateModeChanged(e,t){if(this.$fastController.isConnected&&this.initialLayoutComplete){if(e==="auto"){this.stopAutoUpdateEventListeners()}if(t==="auto"){this.startAutoUpdateEventListeners()}}}anchorElementChanged(){this.requestReset()}viewportElementChanged(){if(this.$fastController.isConnected&&this.initialLayoutComplete){this.initialize()}}connectedCallback(){super.connectedCallback();if(this.autoUpdateMode==="auto"){this.startAutoUpdateEventListeners()}this.initialize()}disconnectedCallback(){super.disconnectedCallback();if(this.autoUpdateMode==="auto"){this.stopAutoUpdateEventListeners()}this.stopObservers();this.disconnectResizeDetector()}adoptedCallback(){this.initialize()}disconnectResizeDetector(){if(this.resizeDetector!==null){this.resizeDetector.disconnect();this.resizeDetector=null}}initializeResizeDetector(){this.disconnectResizeDetector();this.resizeDetector=new window.ResizeObserver(this.handleResize)}updateForAttributeChange(){if(this.$fastController.isConnected&&this.initialLayoutComplete){this.forceUpdate=true;this.update()}}initialize(){this.initializeResizeDetector();if(this.anchorElement===null){this.anchorElement=this.getAnchor()}this.requestReset()}requestReset(){if(this.$fastController.isConnected&&this.pendingReset===false){this.setInitialState();s.DOM.queueUpdate((()=>this.reset()));this.pendingReset=true}}setInitialState(){this.initialLayoutComplete=false;this.regionVisible=false;this.translateX=0;this.translateY=0;this.baseHorizontalOffset=0;this.baseVerticalOffset=0;this.viewportRect=undefined;this.regionRect=undefined;this.anchorRect=undefined;this.verticalPosition=undefined;this.horizontalPosition=undefined;this.style.opacity="0";this.style.pointerEvents="none";this.forceUpdate=false;this.style.position=this.fixedPlacement?"fixed":"absolute";this.updatePositionClasses();this.updateRegionStyle()}}Os.intersectionService=new ks;f([s.attr],Os.prototype,"anchor",void 0);f([s.attr],Os.prototype,"viewport",void 0);f([(0,s.attr)({attribute:"horizontal-positioning-mode"})],Os.prototype,"horizontalPositioningMode",void 0);f([(0,s.attr)({attribute:"horizontal-default-position"})],Os.prototype,"horizontalDefaultPosition",void 0);f([(0,s.attr)({attribute:"horizontal-viewport-lock",mode:"boolean"})],Os.prototype,"horizontalViewportLock",void 0);f([(0,s.attr)({attribute:"horizontal-inset",mode:"boolean"})],Os.prototype,"horizontalInset",void 0);f([(0,s.attr)({attribute:"horizontal-threshold"})],Os.prototype,"horizontalThreshold",void 0);f([(0,s.attr)({attribute:"horizontal-scaling"})],Os.prototype,"horizontalScaling",void 0);f([(0,s.attr)({attribute:"vertical-positioning-mode"})],Os.prototype,"verticalPositioningMode",void 0);f([(0,s.attr)({attribute:"vertical-default-position"})],Os.prototype,"verticalDefaultPosition",void 0);f([(0,s.attr)({attribute:"vertical-viewport-lock",mode:"boolean"})],Os.prototype,"verticalViewportLock",void 0);f([(0,s.attr)({attribute:"vertical-inset",mode:"boolean"})],Os.prototype,"verticalInset",void 0);f([(0,s.attr)({attribute:"vertical-threshold"})],Os.prototype,"verticalThreshold",void 0);f([(0,s.attr)({attribute:"vertical-scaling"})],Os.prototype,"verticalScaling",void 0);f([(0,s.attr)({attribute:"fixed-placement",mode:"boolean"})],Os.prototype,"fixedPlacement",void 0);f([(0,s.attr)({attribute:"auto-update-mode"})],Os.prototype,"autoUpdateMode",void 0);f([s.observable],Os.prototype,"anchorElement",void 0);f([s.observable],Os.prototype,"viewportElement",void 0);f([s.observable],Os.prototype,"initialLayoutComplete",void 0);const Ts={horizontalDefaultPosition:"center",horizontalPositioningMode:"locktodefault",horizontalInset:false,horizontalScaling:"anchor"};const Es=Object.assign(Object.assign({},Ts),{verticalDefaultPosition:"top",verticalPositioningMode:"locktodefault",verticalInset:false,verticalScaling:"content"});const Rs=Object.assign(Object.assign({},Ts),{verticalDefaultPosition:"bottom",verticalPositioningMode:"locktodefault",verticalInset:false,verticalScaling:"content"});const Ds=Object.assign(Object.assign({},Ts),{verticalPositioningMode:"dynamic",verticalInset:false,verticalScaling:"content"});const Ss=Object.assign(Object.assign({},Es),{verticalScaling:"fill"});const As=Object.assign(Object.assign({},Rs),{verticalScaling:"fill"});const Fs=Object.assign(Object.assign({},Ds),{verticalScaling:"fill"});const Ls=(e,t)=>(0,s.html)` - - -`;class Ms extends Fe{connectedCallback(){super.connectedCallback();if(!this.shape){this.shape="circle"}}}f([s.attr],Ms.prototype,"fill",void 0);f([s.attr],Ms.prototype,"color",void 0);f([s.attr],Ms.prototype,"link",void 0);f([s.attr],Ms.prototype,"shape",void 0);const Ps=(e,t)=>(0,s.html)` - -`;class Hs extends Fe{constructor(){super(...arguments);this.generateBadgeStyle=()=>{if(!this.fill&&!this.color){return}const e=`background-color: var(--badge-fill-${this.fill});`;const t=`color: var(--badge-color-${this.color});`;if(this.fill&&!this.color){return e}else if(this.color&&!this.fill){return t}else{return`${t} ${e}`}}}}f([(0,s.attr)({attribute:"fill"})],Hs.prototype,"fill",void 0);f([(0,s.attr)({attribute:"color"})],Hs.prototype,"color",void 0);f([(0,s.attr)({mode:"boolean"})],Hs.prototype,"circular",void 0);const Vs=(e,t)=>(0,s.html)` -
- ${(0,s.when)((e=>e.href&&e.href.length>0),(0,s.html)` - ${Ue(e,t)} - `)} - ${(0,s.when)((e=>!e.href),(0,s.html)` - ${r(e,t)} - - ${n(e,t)} - `)} - ${(0,s.when)((e=>e.separator),(0,s.html)` - - `)} -
-`;class zs extends _e{constructor(){super(...arguments);this.separator=true}}f([s.observable],zs.prototype,"separator",void 0);Pe(zs,o,Ke);const Ns=(e,t)=>(0,s.html)` - -`;class Bs extends Fe{slottedBreadcrumbItemsChanged(){if(this.$fastController.isConnected){if(this.slottedBreadcrumbItems===undefined||this.slottedBreadcrumbItems.length===0){return}const e=this.slottedBreadcrumbItems[this.slottedBreadcrumbItems.length-1];this.slottedBreadcrumbItems.forEach((t=>{const i=t===e;this.setItemSeparator(t,i);this.setAriaCurrent(t,i)}))}}setItemSeparator(e,t){if(e instanceof zs){e.separator=!t}}findChildWithHref(e){var t,i;if(e.childElementCount>0){return e.querySelector("a[href]")}else if((t=e.shadowRoot)===null||t===void 0?void 0:t.childElementCount){return(i=e.shadowRoot)===null||i===void 0?void 0:i.querySelector("a[href]")}else return null}setAriaCurrent(e,t){const i=this.findChildWithHref(e);if(i===null&&e.hasAttribute("href")&&e instanceof zs){t?e.setAttribute("aria-current","page"):e.removeAttribute("aria-current")}else if(i!==null){t?i.setAttribute("aria-current","page"):i.removeAttribute("aria-current")}}}f([s.observable],Bs.prototype,"slottedBreadcrumbItems",void 0);const qs=(e,t)=>(0,s.html)` - -`;const Us="form-associated-proxy";const js="ElementInternals";const _s=js in window&&"setFormValue"in window[js].prototype;const Ks=new WeakMap;function Ws(e){const t=class extends e{constructor(...e){super(...e);this.dirtyValue=false;this.disabled=false;this.proxyEventsToBlock=["change","click"];this.proxyInitialized=false;this.required=false;this.initialValue=this.initialValue||"";if(!this.elementInternals){this.formResetCallback=this.formResetCallback.bind(this)}}static get formAssociated(){return _s}get validity(){return this.elementInternals?this.elementInternals.validity:this.proxy.validity}get form(){return this.elementInternals?this.elementInternals.form:this.proxy.form}get validationMessage(){return this.elementInternals?this.elementInternals.validationMessage:this.proxy.validationMessage}get willValidate(){return this.elementInternals?this.elementInternals.willValidate:this.proxy.willValidate}get labels(){if(this.elementInternals){return Object.freeze(Array.from(this.elementInternals.labels))}else if(this.proxy instanceof HTMLElement&&this.proxy.ownerDocument&&this.id){const e=this.proxy.labels;const t=Array.from(this.proxy.getRootNode().querySelectorAll(`[for='${this.id}']`));const i=e?t.concat(Array.from(e)):t;return Object.freeze(i)}else{return s.emptyArray}}valueChanged(e,t){this.dirtyValue=true;if(this.proxy instanceof HTMLElement){this.proxy.value=this.value}this.currentValue=this.value;this.setFormValue(this.value);this.validate()}currentValueChanged(){this.value=this.currentValue}initialValueChanged(e,t){if(!this.dirtyValue){this.value=this.initialValue;this.dirtyValue=false}}disabledChanged(e,t){if(this.proxy instanceof HTMLElement){this.proxy.disabled=this.disabled}s.DOM.queueUpdate((()=>this.classList.toggle("disabled",this.disabled)))}nameChanged(e,t){if(this.proxy instanceof HTMLElement){this.proxy.name=this.name}}requiredChanged(e,t){if(this.proxy instanceof HTMLElement){this.proxy.required=this.required}s.DOM.queueUpdate((()=>this.classList.toggle("required",this.required)));this.validate()}get elementInternals(){if(!_s){return null}let e=Ks.get(this);if(!e){e=this.attachInternals();Ks.set(this,e)}return e}connectedCallback(){super.connectedCallback();this.addEventListener("keypress",this._keypressHandler);if(!this.value){this.value=this.initialValue;this.dirtyValue=false}if(!this.elementInternals){this.attachProxy();if(this.form){this.form.addEventListener("reset",this.formResetCallback)}}}disconnectedCallback(){super.disconnectedCallback();this.proxyEventsToBlock.forEach((e=>this.proxy.removeEventListener(e,this.stopPropagation)));if(!this.elementInternals&&this.form){this.form.removeEventListener("reset",this.formResetCallback)}}checkValidity(){return this.elementInternals?this.elementInternals.checkValidity():this.proxy.checkValidity()}reportValidity(){return this.elementInternals?this.elementInternals.reportValidity():this.proxy.reportValidity()}setValidity(e,t,i){if(this.elementInternals){this.elementInternals.setValidity(e,t,i)}else if(typeof t==="string"){this.proxy.setCustomValidity(t)}}formDisabledCallback(e){this.disabled=e}formResetCallback(){this.value=this.initialValue;this.dirtyValue=false}attachProxy(){var e;if(!this.proxyInitialized){this.proxyInitialized=true;this.proxy.style.display="none";this.proxyEventsToBlock.forEach((e=>this.proxy.addEventListener(e,this.stopPropagation)));this.proxy.disabled=this.disabled;this.proxy.required=this.required;if(typeof this.name==="string"){this.proxy.name=this.name}if(typeof this.value==="string"){this.proxy.value=this.value}this.proxy.setAttribute("slot",Us);this.proxySlot=document.createElement("slot");this.proxySlot.setAttribute("name",Us)}(e=this.shadowRoot)===null||e===void 0?void 0:e.appendChild(this.proxySlot);this.appendChild(this.proxy)}detachProxy(){var e;this.removeChild(this.proxy);(e=this.shadowRoot)===null||e===void 0?void 0:e.removeChild(this.proxySlot)}validate(e){if(this.proxy instanceof HTMLElement){this.setValidity(this.proxy.validity,this.proxy.validationMessage,e)}}setFormValue(e,t){if(this.elementInternals){this.elementInternals.setFormValue(e,t||e)}}_keypressHandler(e){switch(e.key){case ze.Mm:if(this.form instanceof HTMLFormElement){const e=this.form.querySelector("[type=submit]");e===null||e===void 0?void 0:e.click()}break}}stopPropagation(e){e.stopPropagation()}};(0,s.attr)({mode:"boolean"})(t.prototype,"disabled");(0,s.attr)({mode:"fromView",attribute:"value"})(t.prototype,"initialValue");(0,s.attr)({attribute:"current-value"})(t.prototype,"currentValue");(0,s.attr)(t.prototype,"name");(0,s.attr)({mode:"boolean"})(t.prototype,"required");(0,s.observable)(t.prototype,"value");return t}function Gs(e){class t extends(Ws(e)){}class i extends t{constructor(...e){super(e);this.dirtyChecked=false;this.checkedAttribute=false;this.checked=false;this.dirtyChecked=false}checkedAttributeChanged(){this.defaultChecked=this.checkedAttribute}defaultCheckedChanged(){if(!this.dirtyChecked){this.checked=this.defaultChecked;this.dirtyChecked=false}}checkedChanged(e,t){if(!this.dirtyChecked){this.dirtyChecked=true}this.currentChecked=this.checked;this.updateForm();if(this.proxy instanceof HTMLInputElement){this.proxy.checked=this.checked}if(e!==undefined){this.$emit("change")}this.validate()}currentCheckedChanged(e,t){this.checked=this.currentChecked}updateForm(){const e=this.checked?this.value:null;this.setFormValue(e,e)}connectedCallback(){super.connectedCallback();this.updateForm()}formResetCallback(){super.formResetCallback();this.checked=!!this.checkedAttribute;this.dirtyChecked=false}}(0,s.attr)({attribute:"checked",mode:"boolean"})(i.prototype,"checkedAttribute");(0,s.attr)({attribute:"current-checked",converter:s.booleanConverter})(i.prototype,"currentChecked");(0,s.observable)(i.prototype,"defaultChecked");(0,s.observable)(i.prototype,"checked");return i}class Xs extends Fe{}class Ys extends(Ws(Xs)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}class Qs extends Ys{constructor(){super(...arguments);this.handleClick=e=>{var t;if(this.disabled&&((t=this.defaultSlottedContent)===null||t===void 0?void 0:t.length)<=1){e.stopPropagation()}};this.handleSubmission=()=>{if(!this.form){return}const e=this.proxy.isConnected;if(!e){this.attachProxy()}typeof this.form.requestSubmit==="function"?this.form.requestSubmit(this.proxy):this.proxy.click();if(!e){this.detachProxy()}};this.handleFormReset=()=>{var e;(e=this.form)===null||e===void 0?void 0:e.reset()};this.handleUnsupportedDelegatesFocus=()=>{var e;if(window.ShadowRoot&&!window.ShadowRoot.prototype.hasOwnProperty("delegatesFocus")&&((e=this.$fastController.definition.shadowOptions)===null||e===void 0?void 0:e.delegatesFocus)){this.focus=()=>{this.control.focus()}}}}formactionChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.formAction=this.formaction}}formenctypeChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.formEnctype=this.formenctype}}formmethodChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.formMethod=this.formmethod}}formnovalidateChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.formNoValidate=this.formnovalidate}}formtargetChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.formTarget=this.formtarget}}typeChanged(e,t){if(this.proxy instanceof HTMLInputElement){this.proxy.type=this.type}t==="submit"&&this.addEventListener("click",this.handleSubmission);e==="submit"&&this.removeEventListener("click",this.handleSubmission);t==="reset"&&this.addEventListener("click",this.handleFormReset);e==="reset"&&this.removeEventListener("click",this.handleFormReset)}validate(){super.validate(this.control)}connectedCallback(){var e;super.connectedCallback();this.proxy.setAttribute("type",this.type);this.handleUnsupportedDelegatesFocus();const t=Array.from((e=this.control)===null||e===void 0?void 0:e.children);if(t){t.forEach((e=>{e.addEventListener("click",this.handleClick)}))}}disconnectedCallback(){var e;super.disconnectedCallback();const t=Array.from((e=this.control)===null||e===void 0?void 0:e.children);if(t){t.forEach((e=>{e.removeEventListener("click",this.handleClick)}))}}}f([(0,s.attr)({mode:"boolean"})],Qs.prototype,"autofocus",void 0);f([(0,s.attr)({attribute:"form"})],Qs.prototype,"formId",void 0);f([s.attr],Qs.prototype,"formaction",void 0);f([s.attr],Qs.prototype,"formenctype",void 0);f([s.attr],Qs.prototype,"formmethod",void 0);f([(0,s.attr)({mode:"boolean"})],Qs.prototype,"formnovalidate",void 0);f([s.attr],Qs.prototype,"formtarget",void 0);f([s.attr],Qs.prototype,"type",void 0);f([s.observable],Qs.prototype,"defaultSlottedContent",void 0);class Zs{}f([(0,s.attr)({attribute:"aria-expanded"})],Zs.prototype,"ariaExpanded",void 0);f([(0,s.attr)({attribute:"aria-pressed"})],Zs.prototype,"ariaPressed",void 0);Pe(Zs,je);Pe(Qs,o,Zs);class Js{constructor(e){this.dayFormat="numeric";this.weekdayFormat="long";this.monthFormat="long";this.yearFormat="numeric";this.date=new Date;if(e){for(const t in e){const i=e[t];if(t==="date"){this.date=this.getDateObject(i)}else{this[t]=i}}}}getDateObject(e){if(typeof e==="string"){const t=e.split(/[/-]/);if(t.length<3){return new Date}return new Date(parseInt(t[2],10),parseInt(t[0],10)-1,parseInt(t[1],10))}else if("day"in e&&"month"in e&&"year"in e){const{day:t,month:i,year:s}=e;return new Date(s,i-1,t)}return e}getDate(e=this.date,t={weekday:this.weekdayFormat,month:this.monthFormat,day:this.dayFormat,year:this.yearFormat},i=this.locale){const s=this.getDateObject(e);if(!s.getTime()){return""}const o=Object.assign({timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone},t);return new Intl.DateTimeFormat(i,o).format(s)}getDay(e=this.date.getDate(),t=this.dayFormat,i=this.locale){return this.getDate({month:1,day:e,year:2020},{day:t},i)}getMonth(e=this.date.getMonth()+1,t=this.monthFormat,i=this.locale){return this.getDate({month:e,day:2,year:2020},{month:t},i)}getYear(e=this.date.getFullYear(),t=this.yearFormat,i=this.locale){return this.getDate({month:2,day:2,year:e},{year:t},i)}getWeekday(e=0,t=this.weekdayFormat,i=this.locale){const s=`1-${e+1}-2017`;return this.getDate(s,{weekday:t},i)}getWeekdays(e=this.weekdayFormat,t=this.locale){return Array(7).fill(null).map(((i,s)=>this.getWeekday(s,e,t)))}}class eo extends Fe{constructor(){super(...arguments);this.dateFormatter=new Js;this.readonly=false;this.locale="en-US";this.month=(new Date).getMonth()+1;this.year=(new Date).getFullYear();this.dayFormat="numeric";this.weekdayFormat="short";this.monthFormat="long";this.yearFormat="numeric";this.minWeeks=0;this.disabledDates="";this.selectedDates="";this.oneDayInMs=864e5}localeChanged(){this.dateFormatter.locale=this.locale}dayFormatChanged(){this.dateFormatter.dayFormat=this.dayFormat}weekdayFormatChanged(){this.dateFormatter.weekdayFormat=this.weekdayFormat}monthFormatChanged(){this.dateFormatter.monthFormat=this.monthFormat}yearFormatChanged(){this.dateFormatter.yearFormat=this.yearFormat}getMonthInfo(e=this.month,t=this.year){const i=e=>new Date(e.getFullYear(),e.getMonth(),1).getDay();const s=e=>{const t=new Date(e.getFullYear(),e.getMonth()+1,1);return new Date(t.getTime()-this.oneDayInMs).getDate()};const o=new Date(t,e-1);const n=new Date(t,e);const r=new Date(t,e-2);return{length:s(o),month:e,start:i(o),year:t,previous:{length:s(r),month:r.getMonth()+1,start:i(r),year:r.getFullYear()},next:{length:s(n),month:n.getMonth()+1,start:i(n),year:n.getFullYear()}}}getDays(e=this.getMonthInfo(),t=this.minWeeks){t=t>10?10:t;const{start:i,length:s,previous:o,next:n}=e;const r=[];let a=1-i;while(as?n:e;const l=a<1?o.length+a:a>s?a-s:a;const d=`${t}-${l}-${i}`;const h=this.dateInString(d,this.disabledDates);const c=this.dateInString(d,this.selectedDates);const u={day:l,month:t,year:i,disabled:h,selected:c};const p=r[r.length-1];if(r.length===0||p.length%7===0){r.push([u])}else{p.push(u)}a++}return r}dateInString(e,t){const i=t.split(",").map((e=>e.trim()));e=typeof e==="string"?e:`${e.getMonth()+1}-${e.getDate()}-${e.getFullYear()}`;return i.some((t=>t===e))}getDayClassNames(e,t){const{day:i,month:s,year:o,disabled:n,selected:r}=e;const a=t===`${s}-${i}-${o}`;const l=this.month!==s;return["day",a&&"today",l&&"inactive",n&&"disabled",r&&"selected"].filter(Boolean).join(" ")}getWeekdayText(){const e=this.dateFormatter.getWeekdays().map((e=>({text:e})));if(this.weekdayFormat!=="long"){const t=this.dateFormatter.getWeekdays("long");e.forEach(((e,i)=>{e.abbr=t[i]}))}return e}handleDateSelect(e,t){e.preventDefault;this.$emit("dateselected",t)}handleKeydown(e,t){if(e.key===ze.Mm){this.handleDateSelect(e,t)}return true}}f([(0,s.attr)({mode:"boolean"})],eo.prototype,"readonly",void 0);f([s.attr],eo.prototype,"locale",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],eo.prototype,"month",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],eo.prototype,"year",void 0);f([(0,s.attr)({attribute:"day-format",mode:"fromView"})],eo.prototype,"dayFormat",void 0);f([(0,s.attr)({attribute:"weekday-format",mode:"fromView"})],eo.prototype,"weekdayFormat",void 0);f([(0,s.attr)({attribute:"month-format",mode:"fromView"})],eo.prototype,"monthFormat",void 0);f([(0,s.attr)({attribute:"year-format",mode:"fromView"})],eo.prototype,"yearFormat",void 0);f([(0,s.attr)({attribute:"min-weeks",converter:s.nullableNumberConverter})],eo.prototype,"minWeeks",void 0);f([(0,s.attr)({attribute:"disabled-dates"})],eo.prototype,"disabledDates",void 0);f([(0,s.attr)({attribute:"selected-dates"})],eo.prototype,"selectedDates",void 0);const to={none:"none",default:"default",sticky:"sticky"};const io={default:"default",columnHeader:"columnheader",rowHeader:"rowheader"};const so={default:"default",header:"header",stickyHeader:"sticky-header"};const oo=(0,s.html)` - -`;const no=(0,s.html)` - -`;class ro extends Fe{constructor(){super(...arguments);this.cellType=io.default;this.rowData=null;this.columnDefinition=null;this.isActiveCell=false;this.customCellView=null;this.updateCellStyle=()=>{this.style.gridColumn=this.gridColumn}}cellTypeChanged(){if(this.$fastController.isConnected){this.updateCellView()}}gridColumnChanged(){if(this.$fastController.isConnected){this.updateCellStyle()}}columnDefinitionChanged(e,t){if(this.$fastController.isConnected){this.updateCellView()}}connectedCallback(){var e;super.connectedCallback();this.addEventListener(zt,this.handleFocusin);this.addEventListener(Nt,this.handleFocusout);this.addEventListener(Yt,this.handleKeydown);this.style.gridColumn=`${((e=this.columnDefinition)===null||e===void 0?void 0:e.gridColumn)===undefined?0:this.columnDefinition.gridColumn}`;this.updateCellView();this.updateCellStyle()}disconnectedCallback(){super.disconnectedCallback();this.removeEventListener(zt,this.handleFocusin);this.removeEventListener(Nt,this.handleFocusout);this.removeEventListener(Yt,this.handleKeydown);this.disconnectCellView()}handleFocusin(e){if(this.isActiveCell){return}this.isActiveCell=true;switch(this.cellType){case io.columnHeader:if(this.columnDefinition!==null&&this.columnDefinition.headerCellInternalFocusQueue!==true&&typeof this.columnDefinition.headerCellFocusTargetCallback==="function"){const e=this.columnDefinition.headerCellFocusTargetCallback(this);if(e!==null){e.focus()}}break;default:if(this.columnDefinition!==null&&this.columnDefinition.cellInternalFocusQueue!==true&&typeof this.columnDefinition.cellFocusTargetCallback==="function"){const e=this.columnDefinition.cellFocusTargetCallback(this);if(e!==null){e.focus()}}break}this.$emit("cell-focused",this)}handleFocusout(e){if(this!==document.activeElement&&!this.contains(document.activeElement)){this.isActiveCell=false}}handleKeydown(e){if(e.defaultPrevented||this.columnDefinition===null||this.cellType===io.default&&this.columnDefinition.cellInternalFocusQueue!==true||this.cellType===io.columnHeader&&this.columnDefinition.headerCellInternalFocusQueue!==true){return}switch(e.key){case ze.Mm:case ze.Ac:if(this.contains(document.activeElement)&&document.activeElement!==this){return}switch(this.cellType){case io.columnHeader:if(this.columnDefinition.headerCellFocusTargetCallback!==undefined){const t=this.columnDefinition.headerCellFocusTargetCallback(this);if(t!==null){t.focus()}e.preventDefault()}break;default:if(this.columnDefinition.cellFocusTargetCallback!==undefined){const t=this.columnDefinition.cellFocusTargetCallback(this);if(t!==null){t.focus()}e.preventDefault()}break}break;case ze.F9:if(this.contains(document.activeElement)&&document.activeElement!==this){this.focus();e.preventDefault()}break}}updateCellView(){this.disconnectCellView();if(this.columnDefinition===null){return}switch(this.cellType){case io.columnHeader:if(this.columnDefinition.headerCellTemplate!==undefined){this.customCellView=this.columnDefinition.headerCellTemplate.render(this,this)}else{this.customCellView=no.render(this,this)}break;case undefined:case io.rowHeader:case io.default:if(this.columnDefinition.cellTemplate!==undefined){this.customCellView=this.columnDefinition.cellTemplate.render(this,this)}else{this.customCellView=oo.render(this,this)}break}}disconnectCellView(){if(this.customCellView!==null){this.customCellView.dispose();this.customCellView=null}}}f([(0,s.attr)({attribute:"cell-type"})],ro.prototype,"cellType",void 0);f([(0,s.attr)({attribute:"grid-column"})],ro.prototype,"gridColumn",void 0);f([s.observable],ro.prototype,"rowData",void 0);f([s.observable],ro.prototype,"columnDefinition",void 0);class ao extends Fe{constructor(){super(...arguments);this.rowType=so.default;this.rowData=null;this.columnDefinitions=null;this.isActiveRow=false;this.cellsRepeatBehavior=null;this.cellsPlaceholder=null;this.focusColumnIndex=0;this.refocusOnLoad=false;this.updateRowStyle=()=>{this.style.gridTemplateColumns=this.gridTemplateColumns}}gridTemplateColumnsChanged(){if(this.$fastController.isConnected){this.updateRowStyle()}}rowTypeChanged(){if(this.$fastController.isConnected){this.updateItemTemplate()}}rowDataChanged(){if(this.rowData!==null&&this.isActiveRow){this.refocusOnLoad=true;return}}cellItemTemplateChanged(){this.updateItemTemplate()}headerCellItemTemplateChanged(){this.updateItemTemplate()}connectedCallback(){super.connectedCallback();if(this.cellsRepeatBehavior===null){this.cellsPlaceholder=document.createComment("");this.appendChild(this.cellsPlaceholder);this.updateItemTemplate();this.cellsRepeatBehavior=new s.RepeatDirective((e=>e.columnDefinitions),(e=>e.activeCellItemTemplate),{positioning:true}).createBehavior(this.cellsPlaceholder);this.$fastController.addBehaviors([this.cellsRepeatBehavior])}this.addEventListener("cell-focused",this.handleCellFocus);this.addEventListener(Nt,this.handleFocusout);this.addEventListener(Yt,this.handleKeydown);this.updateRowStyle();if(this.refocusOnLoad){this.refocusOnLoad=false;if(this.cellElements.length>this.focusColumnIndex){this.cellElements[this.focusColumnIndex].focus()}}}disconnectedCallback(){super.disconnectedCallback();this.removeEventListener("cell-focused",this.handleCellFocus);this.removeEventListener(Nt,this.handleFocusout);this.removeEventListener(Yt,this.handleKeydown)}handleFocusout(e){if(!this.contains(e.target)){this.isActiveRow=false;this.focusColumnIndex=0}}handleCellFocus(e){this.isActiveRow=true;this.focusColumnIndex=this.cellElements.indexOf(e.target);this.$emit("row-focused",this)}handleKeydown(e){if(e.defaultPrevented){return}let t=0;switch(e.key){case ze.kT:t=Math.max(0,this.focusColumnIndex-1);this.cellElements[t].focus();e.preventDefault();break;case ze.bb:t=Math.min(this.cellElements.length-1,this.focusColumnIndex+1);this.cellElements[t].focus();e.preventDefault();break;case ze.Tg:if(!e.ctrlKey){this.cellElements[0].focus();e.preventDefault()}break;case ze.FM:if(!e.ctrlKey){this.cellElements[this.cellElements.length-1].focus();e.preventDefault()}break}}updateItemTemplate(){this.activeCellItemTemplate=this.rowType===so.default&&this.cellItemTemplate!==undefined?this.cellItemTemplate:this.rowType===so.default&&this.cellItemTemplate===undefined?this.defaultCellItemTemplate:this.headerCellItemTemplate!==undefined?this.headerCellItemTemplate:this.defaultHeaderCellItemTemplate}}f([(0,s.attr)({attribute:"grid-template-columns"})],ao.prototype,"gridTemplateColumns",void 0);f([(0,s.attr)({attribute:"row-type"})],ao.prototype,"rowType",void 0);f([s.observable],ao.prototype,"rowData",void 0);f([s.observable],ao.prototype,"columnDefinitions",void 0);f([s.observable],ao.prototype,"cellItemTemplate",void 0);f([s.observable],ao.prototype,"headerCellItemTemplate",void 0);f([s.observable],ao.prototype,"rowIndex",void 0);f([s.observable],ao.prototype,"isActiveRow",void 0);f([s.observable],ao.prototype,"activeCellItemTemplate",void 0);f([s.observable],ao.prototype,"defaultCellItemTemplate",void 0);f([s.observable],ao.prototype,"defaultHeaderCellItemTemplate",void 0);f([s.observable],ao.prototype,"cellElements",void 0);class lo extends Fe{constructor(){super();this.noTabbing=false;this.generateHeader=to.default;this.rowsData=[];this.columnDefinitions=null;this.focusRowIndex=0;this.focusColumnIndex=0;this.rowsPlaceholder=null;this.generatedHeader=null;this.isUpdatingFocus=false;this.pendingFocusUpdate=false;this.rowindexUpdateQueued=false;this.columnDefinitionsStale=true;this.generatedGridTemplateColumns="";this.focusOnCell=(e,t,i)=>{if(this.rowElements.length===0){this.focusRowIndex=0;this.focusColumnIndex=0;return}const s=Math.max(0,Math.min(this.rowElements.length-1,e));const o=this.rowElements[s];const n=o.querySelectorAll('[role="cell"], [role="gridcell"], [role="columnheader"], [role="rowheader"]');const r=Math.max(0,Math.min(n.length-1,t));const a=n[r];if(i&&this.scrollHeight!==this.clientHeight&&(s0||s>this.focusRowIndex&&this.scrollTop{if(e&&e.length){e.forEach((e=>{e.addedNodes.forEach((e=>{if(e.nodeType===1&&e.getAttribute("role")==="row"){e.columnDefinitions=this.columnDefinitions}}))}));this.queueRowIndexUpdate()}};this.queueRowIndexUpdate=()=>{if(!this.rowindexUpdateQueued){this.rowindexUpdateQueued=true;s.DOM.queueUpdate(this.updateRowIndexes)}};this.updateRowIndexes=()=>{let e=this.gridTemplateColumns;if(e===undefined){if(this.generatedGridTemplateColumns===""&&this.rowElements.length>0){const e=this.rowElements[0];this.generatedGridTemplateColumns=new Array(e.cellElements.length).fill("1fr").join(" ")}e=this.generatedGridTemplateColumns}this.rowElements.forEach(((t,i)=>{const s=t;s.rowIndex=i;s.gridTemplateColumns=e;if(this.columnDefinitionsStale){s.columnDefinitions=this.columnDefinitions}}));this.rowindexUpdateQueued=false;this.columnDefinitionsStale=false}}static generateTemplateColumns(e){let t="";e.forEach((e=>{t=`${t}${t===""?"":" "}${"1fr"}`}));return t}noTabbingChanged(){if(this.$fastController.isConnected){if(this.noTabbing){this.setAttribute("tabIndex","-1")}else{this.setAttribute("tabIndex",this.contains(document.activeElement)||this===document.activeElement?"-1":"0")}}}generateHeaderChanged(){if(this.$fastController.isConnected){this.toggleGeneratedHeader()}}gridTemplateColumnsChanged(){if(this.$fastController.isConnected){this.updateRowIndexes()}}rowsDataChanged(){if(this.columnDefinitions===null&&this.rowsData.length>0){this.columnDefinitions=lo.generateColumns(this.rowsData[0])}if(this.$fastController.isConnected){this.toggleGeneratedHeader()}}columnDefinitionsChanged(){if(this.columnDefinitions===null){this.generatedGridTemplateColumns="";return}this.generatedGridTemplateColumns=lo.generateTemplateColumns(this.columnDefinitions);if(this.$fastController.isConnected){this.columnDefinitionsStale=true;this.queueRowIndexUpdate()}}headerCellItemTemplateChanged(){if(this.$fastController.isConnected){if(this.generatedHeader!==null){this.generatedHeader.headerCellItemTemplate=this.headerCellItemTemplate}}}focusRowIndexChanged(){if(this.$fastController.isConnected){this.queueFocusUpdate()}}focusColumnIndexChanged(){if(this.$fastController.isConnected){this.queueFocusUpdate()}}connectedCallback(){super.connectedCallback();if(this.rowItemTemplate===undefined){this.rowItemTemplate=this.defaultRowItemTemplate}this.rowsPlaceholder=document.createComment("");this.appendChild(this.rowsPlaceholder);this.toggleGeneratedHeader();this.rowsRepeatBehavior=new s.RepeatDirective((e=>e.rowsData),(e=>e.rowItemTemplate),{positioning:true}).createBehavior(this.rowsPlaceholder);this.$fastController.addBehaviors([this.rowsRepeatBehavior]);this.addEventListener("row-focused",this.handleRowFocus);this.addEventListener(Vt,this.handleFocus);this.addEventListener(Yt,this.handleKeydown);this.addEventListener(Nt,this.handleFocusOut);this.observer=new MutationObserver(this.onChildListChange);this.observer.observe(this,{childList:true});if(this.noTabbing){this.setAttribute("tabindex","-1")}s.DOM.queueUpdate(this.queueRowIndexUpdate)}disconnectedCallback(){super.disconnectedCallback();this.removeEventListener("row-focused",this.handleRowFocus);this.removeEventListener(Vt,this.handleFocus);this.removeEventListener(Yt,this.handleKeydown);this.removeEventListener(Nt,this.handleFocusOut);this.observer.disconnect();this.rowsPlaceholder=null;this.generatedHeader=null}handleRowFocus(e){this.isUpdatingFocus=true;const t=e.target;this.focusRowIndex=this.rowElements.indexOf(t);this.focusColumnIndex=t.focusColumnIndex;this.setAttribute("tabIndex","-1");this.isUpdatingFocus=false}handleFocus(e){this.focusOnCell(this.focusRowIndex,this.focusColumnIndex,true)}handleFocusOut(e){if(e.relatedTarget===null||!this.contains(e.relatedTarget)){this.setAttribute("tabIndex",this.noTabbing?"-1":"0")}}handleKeydown(e){if(e.defaultPrevented){return}let t;const i=this.rowElements.length-1;const s=this.offsetHeight+this.scrollTop;const o=this.rowElements[i];switch(e.key){case ze.I5:e.preventDefault();this.focusOnCell(this.focusRowIndex-1,this.focusColumnIndex,true);break;case ze.HX:e.preventDefault();this.focusOnCell(this.focusRowIndex+1,this.focusColumnIndex,true);break;case ze.oK:e.preventDefault();if(this.rowElements.length===0){this.focusOnCell(0,0,false);break}if(this.focusRowIndex===0){this.focusOnCell(0,this.focusColumnIndex,false);return}t=this.focusRowIndex-1;for(t;t>=0;t--){const e=this.rowElements[t];if(e.offsetTop=i||o.offsetTop+o.offsetHeight<=s){this.focusOnCell(i,this.focusColumnIndex,false);return}t=this.focusRowIndex+1;for(t;t<=i;t++){const e=this.rowElements[t];if(e.offsetTop+e.offsetHeight>s){let t=0;if(this.generateHeader===to.sticky&&this.generatedHeader!==null){t=this.generatedHeader.clientHeight}this.scrollTop=e.offsetTop-t;break}}this.focusOnCell(t,this.focusColumnIndex,false);break;case ze.Tg:if(e.ctrlKey){e.preventDefault();this.focusOnCell(0,0,true)}break;case ze.FM:if(e.ctrlKey&&this.columnDefinitions!==null){e.preventDefault();this.focusOnCell(this.rowElements.length-1,this.columnDefinitions.length-1,true)}break}}queueFocusUpdate(){if(this.isUpdatingFocus&&(this.contains(document.activeElement)||this===document.activeElement)){return}if(this.pendingFocusUpdate===false){this.pendingFocusUpdate=true;s.DOM.queueUpdate((()=>this.updateFocus()))}}updateFocus(){this.pendingFocusUpdate=false;this.focusOnCell(this.focusRowIndex,this.focusColumnIndex,true)}toggleGeneratedHeader(){if(this.generatedHeader!==null){this.removeChild(this.generatedHeader);this.generatedHeader=null}if(this.generateHeader!==to.none&&this.rowsData.length>0){const e=document.createElement(this.rowElementTag);this.generatedHeader=e;this.generatedHeader.columnDefinitions=this.columnDefinitions;this.generatedHeader.gridTemplateColumns=this.gridTemplateColumns;this.generatedHeader.rowType=this.generateHeader===to.sticky?so.stickyHeader:so.header;if(this.firstChild!==null||this.rowsPlaceholder!==null){this.insertBefore(e,this.firstChild!==null?this.firstChild:this.rowsPlaceholder)}return}}}lo.generateColumns=e=>Object.getOwnPropertyNames(e).map(((e,t)=>({columnDataKey:e,gridColumn:`${t}`})));f([(0,s.attr)({attribute:"no-tabbing",mode:"boolean"})],lo.prototype,"noTabbing",void 0);f([(0,s.attr)({attribute:"generate-header"})],lo.prototype,"generateHeader",void 0);f([(0,s.attr)({attribute:"grid-template-columns"})],lo.prototype,"gridTemplateColumns",void 0);f([s.observable],lo.prototype,"rowsData",void 0);f([s.observable],lo.prototype,"columnDefinitions",void 0);f([s.observable],lo.prototype,"rowItemTemplate",void 0);f([s.observable],lo.prototype,"cellItemTemplate",void 0);f([s.observable],lo.prototype,"headerCellItemTemplate",void 0);f([s.observable],lo.prototype,"focusRowIndex",void 0);f([s.observable],lo.prototype,"focusColumnIndex",void 0);f([s.observable],lo.prototype,"defaultRowItemTemplate",void 0);f([s.observable],lo.prototype,"rowElementTag",void 0);f([s.observable],lo.prototype,"rowElements",void 0);const ho=(0,s.html)` -
- - ${e=>e.dateFormatter.getMonth(e.month)} - - ${e=>e.dateFormatter.getYear(e.year)} -
-`;const co=e=>{const t=e.tagFor(ro);return(0,s.html)` - <${t} - class="week-day" - part="week-day" - tabindex="-1" - grid-column="${(e,t)=>t.index+1}" - abbr="${e=>e.abbr}" - > - ${e=>e.text} - - `};const uo=(e,t)=>{const i=e.tagFor(ro);return(0,s.html)` - <${i} - class="${(e,i)=>i.parentContext.parent.getDayClassNames(e,t)}" - part="day" - tabindex="-1" - role="gridcell" - grid-column="${(e,t)=>t.index+1}" - @click="${(e,t)=>t.parentContext.parent.handleDateSelect(t.event,e)}" - @keydown="${(e,t)=>t.parentContext.parent.handleKeydown(t.event,e)}" - aria-label="${(e,t)=>t.parentContext.parent.dateFormatter.getDate(`${e.month}-${e.day}-${e.year}`,{month:"long",day:"numeric"})}" - > -
- ${(e,t)=>t.parentContext.parent.dateFormatter.getDay(e.day)} -
- - - `};const po=(e,t)=>{const i=e.tagFor(ao);return(0,s.html)` - <${i} - class="week" - part="week" - role="row" - role-type="default" - grid-template-columns="1fr 1fr 1fr 1fr 1fr 1fr 1fr" - > - ${(0,s.repeat)((e=>e),uo(e,t),{positioning:true})} - - `};const fo=(e,t)=>{const i=e.tagFor(lo);const o=e.tagFor(ao);return(0,s.html)` - <${i} class="days interact" part="days" generate-header="none"> - <${o} - class="week-days" - part="week-days" - role="row" - row-type="header" - grid-template-columns="1fr 1fr 1fr 1fr 1fr 1fr 1fr" - > - ${(0,s.repeat)((e=>e.getWeekdayText()),co(e),{positioning:true})} - - ${(0,s.repeat)((e=>e.getDays()),po(e,t))} - -`};const mo=e=>(0,s.html)` -
-
- ${(0,s.repeat)((e=>e.getWeekdayText()),(0,s.html)` -
- ${e=>e.text} -
- `)} -
- ${(0,s.repeat)((e=>e.getDays()),(0,s.html)` -
- ${(0,s.repeat)((e=>e),(0,s.html)` -
-
- ${(e,t)=>t.parentContext.parent.dateFormatter.getDay(e.day)} -
- -
- `)} -
- `)} -
- `;const vo=(e,t)=>{var i;const o=new Date;const n=`${o.getMonth()+1}-${o.getDate()}-${o.getFullYear()}`;return(0,s.html)` - - `};const bo=(e,t)=>(0,s.html)` - -`;class go extends Fe{}const yo=(e,t)=>(0,s.html)` - -`;class Co extends Fe{}class xo extends(Gs(Co)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}class wo extends xo{constructor(){super();this.initialValue="on";this.indeterminate=false;this.keypressHandler=e=>{if(this.readOnly){return}switch(e.key){case ze.gG:if(this.indeterminate){this.indeterminate=false}this.checked=!this.checked;break}};this.clickHandler=e=>{if(!this.disabled&&!this.readOnly){if(this.indeterminate){this.indeterminate=false}this.checked=!this.checked}};this.proxy.setAttribute("type","checkbox")}readOnlyChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.readOnly=this.readOnly}}}f([(0,s.attr)({attribute:"readonly",mode:"boolean"})],wo.prototype,"readOnly",void 0);f([s.observable],wo.prototype,"defaultSlottedNodes",void 0);f([s.observable],wo.prototype,"indeterminate",void 0);let $o=0;function Io(e=""){return`${e}${$o++}`}function ko(e,...t){return e.replace(/{(\d+)}/g,(function(e,i){if(i>=t.length){return e}const s=t[i];if(typeof s!=="number"&&!s){return""}return s}))}function Oo(e,t,i=0){if(!e||!t){return false}return e.substr(i,t.length)===t}function To(e){return!e||!e.trim()}function Eo(e){let t=`${e}`.replace(new RegExp(/[-_]+/,"g")," ").replace(new RegExp(/[^\w\s]/,"g"),"").replace(/^\s+|\s+$|\s+(?=\s)/g,"").replace(new RegExp(/\s+(.)(\w*)/,"g"),((e,t,i)=>`${t.toUpperCase()+i.toLowerCase()}`)).replace(new RegExp(/\w/),(e=>e.toUpperCase()));let i=0;for(let s=0;s1){t=`${t.charAt(0).toUpperCase()}${t.slice(1,i-1).toLowerCase()}`+t.slice(i-1)}return t}function Ro(e){const t=`${e.charAt(0).toLowerCase()}${e.slice(1)}`;return t.replace(/([A-Z]|[0-9])/g,(function(e,t){return`-${t.toLowerCase()}`}))}function Do(e,t){let i=e.length;while(i--){if(t(e[i],i,e)){return i}}return-1}function So(){return!!(typeof window!=="undefined"&&window.document&&window.document.createElement)}function Ao(...e){return e.every((e=>e instanceof HTMLElement))}function Fo(e,t){if(!e||!t||!Ao(e)){return}const i=Array.from(e.querySelectorAll(t));return i.filter((e=>e.offsetParent!==null))}function Lo(e){return e===null?null:e.which||e.keyCode||e.charCode}function Mo(){const e=document.querySelector('meta[property="csp-nonce"]');if(e){return e.getAttribute("content")}else{return null}}let Po;function Ho(){if(typeof Po==="boolean"){return Po}if(!So()){Po=false;return Po}const e=document.createElement("style");const t=Mo();if(t!==null){e.setAttribute("nonce",t)}document.head.appendChild(e);try{e.sheet.insertRule("foo:focus-visible {color:inherit}",0);Po=true}catch(i){Po=false}finally{document.head.removeChild(e)}return Po}let Vo;function zo(){if(typeof Vo==="boolean"){return Vo}try{Vo=CSS.supports("display","grid")}catch(e){Vo=false}return Vo}function No(){return canUseDOM()&&(window.matchMedia("(forced-colors: none)").matches||window.matchMedia("(forced-colors: active)").matches)}function Bo(){Vo=undefined;Po=undefined}const qo=null&&No;function Uo(e){return Ao(e)&&(e.getAttribute("role")==="option"||e instanceof HTMLOptionElement)}class jo extends Fe{constructor(e,t,i,s){super();this.defaultSelected=false;this.dirtySelected=false;this.selected=this.defaultSelected;this.dirtyValue=false;if(e){this.textContent=e}if(t){this.initialValue=t}if(i){this.defaultSelected=i}if(s){this.selected=s}this.proxy=new Option(`${this.textContent}`,this.initialValue,this.defaultSelected,this.selected);this.proxy.disabled=this.disabled}checkedChanged(e,t){if(typeof t==="boolean"){this.ariaChecked=t?"true":"false";return}this.ariaChecked=null}contentChanged(e,t){if(this.proxy instanceof HTMLOptionElement){this.proxy.textContent=this.textContent}this.$emit("contentchange",null,{bubbles:true})}defaultSelectedChanged(){if(!this.dirtySelected){this.selected=this.defaultSelected;if(this.proxy instanceof HTMLOptionElement){this.proxy.selected=this.defaultSelected}}}disabledChanged(e,t){this.ariaDisabled=this.disabled?"true":"false";if(this.proxy instanceof HTMLOptionElement){this.proxy.disabled=this.disabled}}selectedAttributeChanged(){this.defaultSelected=this.selectedAttribute;if(this.proxy instanceof HTMLOptionElement){this.proxy.defaultSelected=this.defaultSelected}}selectedChanged(){this.ariaSelected=this.selected?"true":"false";if(!this.dirtySelected){this.dirtySelected=true}if(this.proxy instanceof HTMLOptionElement){this.proxy.selected=this.selected}}initialValueChanged(e,t){if(!this.dirtyValue){this.value=this.initialValue;this.dirtyValue=false}}get label(){var e;return(e=this.value)!==null&&e!==void 0?e:this.text}get text(){var e,t;return(t=(e=this.textContent)===null||e===void 0?void 0:e.replace(/\s+/g," ").trim())!==null&&t!==void 0?t:""}set value(e){const t=`${e!==null&&e!==void 0?e:""}`;this._value=t;this.dirtyValue=true;if(this.proxy instanceof HTMLOptionElement){this.proxy.value=t}s.Observable.notify(this,"value")}get value(){var e;s.Observable.track(this,"value");return(e=this._value)!==null&&e!==void 0?e:this.text}get form(){return this.proxy?this.proxy.form:null}}f([s.observable],jo.prototype,"checked",void 0);f([s.observable],jo.prototype,"content",void 0);f([s.observable],jo.prototype,"defaultSelected",void 0);f([(0,s.attr)({mode:"boolean"})],jo.prototype,"disabled",void 0);f([(0,s.attr)({attribute:"selected",mode:"boolean"})],jo.prototype,"selectedAttribute",void 0);f([s.observable],jo.prototype,"selected",void 0);f([(0,s.attr)({attribute:"value",mode:"fromView"})],jo.prototype,"initialValue",void 0);class _o{}f([s.observable],_o.prototype,"ariaChecked",void 0);f([s.observable],_o.prototype,"ariaPosInSet",void 0);f([s.observable],_o.prototype,"ariaSelected",void 0);f([s.observable],_o.prototype,"ariaSetSize",void 0);Pe(_o,je);Pe(jo,o,_o);class Ko extends Fe{constructor(){super(...arguments);this._options=[];this.selectedIndex=-1;this.selectedOptions=[];this.shouldSkipFocus=false;this.typeaheadBuffer="";this.typeaheadExpired=true;this.typeaheadTimeout=-1}get firstSelectedOption(){var e;return(e=this.selectedOptions[0])!==null&&e!==void 0?e:null}get hasSelectableOptions(){return this.options.length>0&&!this.options.every((e=>e.disabled))}get length(){var e,t;return(t=(e=this.options)===null||e===void 0?void 0:e.length)!==null&&t!==void 0?t:0}get options(){s.Observable.track(this,"options");return this._options}set options(e){this._options=e;s.Observable.notify(this,"options")}get typeAheadExpired(){return this.typeaheadExpired}set typeAheadExpired(e){this.typeaheadExpired=e}clickHandler(e){const t=e.target.closest(`option,[role=option]`);if(t&&!t.disabled){this.selectedIndex=this.options.indexOf(t);return true}}focusAndScrollOptionIntoView(e=this.firstSelectedOption){if(this.contains(document.activeElement)&&e!==null){e.focus();requestAnimationFrame((()=>{e.scrollIntoView({block:"nearest"})}))}}focusinHandler(e){if(!this.shouldSkipFocus&&e.target===e.currentTarget){this.setSelectedOptions();this.focusAndScrollOptionIntoView()}this.shouldSkipFocus=false}getTypeaheadMatches(){const e=this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&");const t=new RegExp(`^${e}`,"gi");return this.options.filter((e=>e.text.trim().match(t)))}getSelectableIndex(e=this.selectedIndex,t){const i=e>t?-1:e!e&&!t.disabled&&i!e&&!t.disabled&&i>s?t:e),o);break}}return this.options.indexOf(o)}handleChange(e,t){switch(t){case"selected":{if(Ko.slottedOptionFilter(e)){this.selectedIndex=this.options.indexOf(e)}this.setSelectedOptions();break}}}handleTypeAhead(e){if(this.typeaheadTimeout){window.clearTimeout(this.typeaheadTimeout)}this.typeaheadTimeout=window.setTimeout((()=>this.typeaheadExpired=true),Ko.TYPE_AHEAD_TIMEOUT_MS);if(e.length>1){return}this.typeaheadBuffer=`${this.typeaheadExpired?"":this.typeaheadBuffer}${e}`}keydownHandler(e){if(this.disabled){return true}this.shouldSkipFocus=false;const t=e.key;switch(t){case ze.Tg:{if(!e.shiftKey){e.preventDefault();this.selectFirstOption()}break}case ze.HX:{if(!e.shiftKey){e.preventDefault();this.selectNextOption()}break}case ze.I5:{if(!e.shiftKey){e.preventDefault();this.selectPreviousOption()}break}case ze.FM:{e.preventDefault();this.selectLastOption();break}case ze.J9:{this.focusAndScrollOptionIntoView();return true}case ze.Mm:case ze.F9:{return true}case ze.gG:{if(this.typeaheadExpired){return true}}default:{if(t.length===1){this.handleTypeAhead(`${t}`)}return true}}}mousedownHandler(e){this.shouldSkipFocus=!this.contains(document.activeElement);return true}multipleChanged(e,t){this.ariaMultiSelectable=t?"true":null}selectedIndexChanged(e,t){var i;if(!this.hasSelectableOptions){this.selectedIndex=-1;return}if(((i=this.options[this.selectedIndex])===null||i===void 0?void 0:i.disabled)&&typeof e==="number"){const i=this.getSelectableIndex(e,t);const s=i>-1?i:e;this.selectedIndex=s;if(t===s){this.selectedIndexChanged(t,s)}return}this.setSelectedOptions()}selectedOptionsChanged(e,t){var i;const o=t.filter(Ko.slottedOptionFilter);(i=this.options)===null||i===void 0?void 0:i.forEach((e=>{const t=s.Observable.getNotifier(e);t.unsubscribe(this,"selected");e.selected=o.includes(e);t.subscribe(this,"selected")}))}selectFirstOption(){var e,t;if(!this.disabled){this.selectedIndex=(t=(e=this.options)===null||e===void 0?void 0:e.findIndex((e=>!e.disabled)))!==null&&t!==void 0?t:-1}}selectLastOption(){if(!this.disabled){this.selectedIndex=Do(this.options,(e=>!e.disabled))}}selectNextOption(){if(!this.disabled&&this.selectedIndex0){this.selectedIndex=this.selectedIndex-1}}setDefaultSelectedOption(){var e,t;this.selectedIndex=(t=(e=this.options)===null||e===void 0?void 0:e.findIndex((e=>e.defaultSelected)))!==null&&t!==void 0?t:-1}setSelectedOptions(){var e,t,i;if((e=this.options)===null||e===void 0?void 0:e.length){this.selectedOptions=[this.options[this.selectedIndex]];this.ariaActiveDescendant=(i=(t=this.firstSelectedOption)===null||t===void 0?void 0:t.id)!==null&&i!==void 0?i:"";this.focusAndScrollOptionIntoView()}}slottedOptionsChanged(e,t){this.options=t.reduce(((e,t)=>{if(Uo(t)){e.push(t)}return e}),[]);const i=`${this.options.length}`;this.options.forEach(((e,t)=>{if(!e.id){e.id=Io("option-")}e.ariaPosInSet=`${t+1}`;e.ariaSetSize=i}));if(this.$fastController.isConnected){this.setSelectedOptions();this.setDefaultSelectedOption()}}typeaheadBufferChanged(e,t){if(this.$fastController.isConnected){const e=this.getTypeaheadMatches();if(e.length){const t=this.options.indexOf(e[0]);if(t>-1){this.selectedIndex=t}}this.typeaheadExpired=false}}}Ko.slottedOptionFilter=e=>Uo(e)&&!e.hidden;Ko.TYPE_AHEAD_TIMEOUT_MS=1e3;f([(0,s.attr)({mode:"boolean"})],Ko.prototype,"disabled",void 0);f([s.observable],Ko.prototype,"selectedIndex",void 0);f([s.observable],Ko.prototype,"selectedOptions",void 0);f([s.observable],Ko.prototype,"slottedOptions",void 0);f([s.observable],Ko.prototype,"typeaheadBuffer",void 0);class Wo{}f([s.observable],Wo.prototype,"ariaActiveDescendant",void 0);f([s.observable],Wo.prototype,"ariaDisabled",void 0);f([s.observable],Wo.prototype,"ariaExpanded",void 0);f([s.observable],Wo.prototype,"ariaMultiSelectable",void 0);Pe(Wo,je);Pe(Ko,Wo);const Go={above:"above",below:"below"};class Xo extends Ko{}class Yo extends(Ws(Xo)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}const Qo={inline:"inline",list:"list",both:"both",none:"none"};class Zo extends Yo{constructor(){super(...arguments);this._value="";this.filteredOptions=[];this.filter="";this.forcedPosition=false;this.listboxId=Io("listbox-");this.maxHeight=0;this.open=false}formResetCallback(){super.formResetCallback();this.setDefaultSelectedOption();this.updateValue()}validate(){super.validate(this.control)}get isAutocompleteInline(){return this.autocomplete===Qo.inline||this.isAutocompleteBoth}get isAutocompleteList(){return this.autocomplete===Qo.list||this.isAutocompleteBoth}get isAutocompleteBoth(){return this.autocomplete===Qo.both}openChanged(){if(this.open){this.ariaControls=this.listboxId;this.ariaExpanded="true";this.setPositioning();this.focusAndScrollOptionIntoView();s.DOM.queueUpdate((()=>this.focus()));return}this.ariaControls="";this.ariaExpanded="false"}get options(){s.Observable.track(this,"options");return this.filteredOptions.length?this.filteredOptions:this._options}set options(e){this._options=e;s.Observable.notify(this,"options")}placeholderChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.placeholder=this.placeholder}}positionChanged(e,t){this.positionAttribute=t;this.setPositioning()}get value(){s.Observable.track(this,"value");return this._value}set value(e){var t,i,o;const n=`${this._value}`;if(this.$fastController.isConnected&&this.options){const s=this.options.findIndex((t=>t.text.toLowerCase()===e.toLowerCase()));const n=(t=this.options[this.selectedIndex])===null||t===void 0?void 0:t.text;const r=(i=this.options[s])===null||i===void 0?void 0:i.text;this.selectedIndex=n!==r?s:this.selectedIndex;e=((o=this.firstSelectedOption)===null||o===void 0?void 0:o.text)||e}if(n!==e){this._value=e;super.valueChanged(n,e);s.Observable.notify(this,"value")}}clickHandler(e){if(this.disabled){return}if(this.open){const t=e.target.closest(`option,[role=option]`);if(!t||t.disabled){return}this.selectedOptions=[t];this.control.value=t.text;this.clearSelectionRange();this.updateValue(true)}this.open=!this.open;if(this.open){this.control.focus()}return true}connectedCallback(){super.connectedCallback();this.forcedPosition=!!this.positionAttribute;if(this.value){this.initialValue=this.value}}disabledChanged(e,t){if(super.disabledChanged){super.disabledChanged(e,t)}this.ariaDisabled=this.disabled?"true":"false"}filterOptions(){if(!this.autocomplete||this.autocomplete===Qo.none){this.filter=""}const e=this.filter.toLowerCase();this.filteredOptions=this._options.filter((e=>e.text.toLowerCase().startsWith(this.filter.toLowerCase())));if(this.isAutocompleteList){if(!this.filteredOptions.length&&!e){this.filteredOptions=this._options}this._options.forEach((e=>{e.hidden=!this.filteredOptions.includes(e)}))}}focusAndScrollOptionIntoView(){if(this.contains(document.activeElement)){this.control.focus();if(this.firstSelectedOption){requestAnimationFrame((()=>{var e;(e=this.firstSelectedOption)===null||e===void 0?void 0:e.scrollIntoView({block:"nearest"})}))}}}focusoutHandler(e){this.syncValue();if(!this.open){return true}const t=e.relatedTarget;if(this.isSameNode(t)){this.focus();return}if(!this.options||!this.options.includes(t)){this.open=false}}inputHandler(e){this.filter=this.control.value;this.filterOptions();if(!this.isAutocompleteInline){this.selectedIndex=this.options.map((e=>e.text)).indexOf(this.control.value)}if(e.inputType.includes("deleteContent")||!this.filter.length){return true}if(this.isAutocompleteList&&!this.open){this.open=true}if(this.isAutocompleteInline){if(this.filteredOptions.length){this.selectedOptions=[this.filteredOptions[0]];this.selectedIndex=this.options.indexOf(this.firstSelectedOption);this.setInlineSelection()}else{this.selectedIndex=-1}}return}keydownHandler(e){const t=e.key;if(e.ctrlKey||e.shiftKey){return true}switch(t){case"Enter":{this.syncValue();if(this.isAutocompleteInline){this.filter=this.value}this.open=false;this.clearSelectionRange();break}case"Escape":{if(!this.isAutocompleteInline){this.selectedIndex=-1}if(this.open){this.open=false;break}this.value="";this.control.value="";this.filter="";this.filterOptions();break}case"Tab":{this.setInputToSelection();if(!this.open){return true}e.preventDefault();this.open=false;break}case"ArrowUp":case"ArrowDown":{this.filterOptions();if(!this.open){this.open=true;break}if(this.filteredOptions.length>0){super.keydownHandler(e)}if(this.isAutocompleteInline){this.setInlineSelection()}break}default:{return true}}}keyupHandler(e){const t=e.key;switch(t){case"ArrowLeft":case"ArrowRight":case"Backspace":case"Delete":case"Home":case"End":{this.filter=this.control.value;this.selectedIndex=-1;this.filterOptions();break}}}selectedIndexChanged(e,t){if(this.$fastController.isConnected){t=(0,Ne.AB)(-1,this.options.length-1,t);if(t!==this.selectedIndex){this.selectedIndex=t;return}super.selectedIndexChanged(e,t)}}selectPreviousOption(){if(!this.disabled&&this.selectedIndex>=0){this.selectedIndex=this.selectedIndex-1}}setDefaultSelectedOption(){if(this.$fastController.isConnected&&this.options){const e=this.options.findIndex((e=>e.getAttribute("selected")!==null||e.selected));this.selectedIndex=e;if(!this.dirtyValue&&this.firstSelectedOption){this.value=this.firstSelectedOption.text}this.setSelectedOptions()}}setInputToSelection(){if(this.firstSelectedOption){this.control.value=this.firstSelectedOption.text;this.control.focus()}}setInlineSelection(){if(this.firstSelectedOption){this.setInputToSelection();this.control.setSelectionRange(this.filter.length,this.control.value.length,"backward")}}syncValue(){var e;const t=this.selectedIndex>-1?(e=this.firstSelectedOption)===null||e===void 0?void 0:e.text:this.control.value;this.updateValue(this.value!==t)}setPositioning(){const e=this.getBoundingClientRect();const t=window.innerHeight;const i=t-e.bottom;this.position=this.forcedPosition?this.positionAttribute:e.top>i?Go.above:Go.below;this.positionAttribute=this.forcedPosition?this.positionAttribute:this.position;this.maxHeight=this.position===Go.above?~~e.top:~~i}selectedOptionsChanged(e,t){if(this.$fastController.isConnected){this._options.forEach((e=>{e.selected=t.includes(e)}))}}slottedOptionsChanged(e,t){super.slottedOptionsChanged(e,t);this.updateValue()}updateValue(e){var t;if(this.$fastController.isConnected){this.value=((t=this.firstSelectedOption)===null||t===void 0?void 0:t.text)||this.control.value;this.control.value=this.value}if(e){this.$emit("change")}}clearSelectionRange(){const e=this.control.value.length;this.control.setSelectionRange(e,e)}}f([(0,s.attr)({attribute:"autocomplete",mode:"fromView"})],Zo.prototype,"autocomplete",void 0);f([s.observable],Zo.prototype,"maxHeight",void 0);f([(0,s.attr)({attribute:"open",mode:"boolean"})],Zo.prototype,"open",void 0);f([s.attr],Zo.prototype,"placeholder",void 0);f([(0,s.attr)({attribute:"position"})],Zo.prototype,"positionAttribute",void 0);f([s.observable],Zo.prototype,"position",void 0);class Jo{}f([s.observable],Jo.prototype,"ariaAutoComplete",void 0);f([s.observable],Jo.prototype,"ariaControls",void 0);Pe(Jo,Wo);Pe(Zo,o,Jo);const en=(e,t)=>(0,s.html)` - -`;function tn(e){const t=e.tagFor(ao);return(0,s.html)` - <${t} - :rowData="${e=>e}" - :cellItemTemplate="${(e,t)=>t.parent.cellItemTemplate}" - :headerCellItemTemplate="${(e,t)=>t.parent.headerCellItemTemplate}" - > -`}const sn=(e,t)=>{const i=tn(e);const o=e.tagFor(ao);return(0,s.html)` - - `};function on(e){const t=e.tagFor(ro);return(0,s.html)` - <${t} - cell-type="${e=>e.isRowHeader?"rowheader":undefined}" - grid-column="${(e,t)=>t.index+1}" - :rowData="${(e,t)=>t.parent.rowData}" - :columnDefinition="${e=>e}" - > -`}function nn(e){const t=e.tagFor(ro);return(0,s.html)` - <${t} - cell-type="columnheader" - grid-column="${(e,t)=>t.index+1}" - :columnDefinition="${e=>e}" - > -`}const rn=(e,t)=>{const i=on(e);const o=nn(e);return(0,s.html)` - - `};const an=(e,t)=>(0,s.html)` - - `;function ln(e){const t=e.parentElement;if(t){return t}else{const t=e.getRootNode();if(t.host instanceof HTMLElement){return t.host}}return null}function dn(e,t){let i=t;while(i!==null){if(i===e){return true}i=ln(i)}return false}const hn=document.createElement("div");function cn(e){return e instanceof s.FASTElement}class un{setProperty(e,t){s.DOM.queueUpdate((()=>this.target.setProperty(e,t)))}removeProperty(e){s.DOM.queueUpdate((()=>this.target.removeProperty(e)))}}class pn extends un{constructor(e){super();const t=new CSSStyleSheet;this.target=t.cssRules[t.insertRule(":host{}")].style;e.$fastController.addStyles(s.ElementStyles.create([t]))}}class fn extends un{constructor(){super();const e=new CSSStyleSheet;this.target=e.cssRules[e.insertRule(":root{}")].style;document.adoptedStyleSheets=[...document.adoptedStyleSheets,e]}}class mn extends un{constructor(){super();this.style=document.createElement("style");document.head.appendChild(this.style);const{sheet:e}=this.style;if(e){const t=e.insertRule(":root{}",e.cssRules.length);this.target=e.cssRules[t].style}}}class vn{constructor(e){this.store=new Map;this.target=null;const t=e.$fastController;this.style=document.createElement("style");t.addStyles(this.style);s.Observable.getNotifier(t).subscribe(this,"isConnected");this.handleChange(t,"isConnected")}targetChanged(){if(this.target!==null){for(const[e,t]of this.store.entries()){this.target.setProperty(e,t)}}}setProperty(e,t){this.store.set(e,t);s.DOM.queueUpdate((()=>{if(this.target!==null){this.target.setProperty(e,t)}}))}removeProperty(e){this.store.delete(e);s.DOM.queueUpdate((()=>{if(this.target!==null){this.target.removeProperty(e)}}))}handleChange(e,t){const{sheet:i}=this.style;if(i){const e=i.insertRule(":host{}",i.cssRules.length);this.target=i.cssRules[e].style}else{this.target=null}}}f([s.observable],vn.prototype,"target",void 0);class bn{constructor(e){this.target=e.style}setProperty(e,t){s.DOM.queueUpdate((()=>this.target.setProperty(e,t)))}removeProperty(e){s.DOM.queueUpdate((()=>this.target.removeProperty(e)))}}class gn{setProperty(e,t){gn.properties[e]=t;for(const i of gn.roots.values()){xn.getOrCreate(gn.normalizeRoot(i)).setProperty(e,t)}}removeProperty(e){delete gn.properties[e];for(const t of gn.roots.values()){xn.getOrCreate(gn.normalizeRoot(t)).removeProperty(e)}}static registerRoot(e){const{roots:t}=gn;if(!t.has(e)){t.add(e);const i=xn.getOrCreate(this.normalizeRoot(e));for(const e in gn.properties){i.setProperty(e,gn.properties[e])}}}static unregisterRoot(e){const{roots:t}=gn;if(t.has(e)){t.delete(e);const i=xn.getOrCreate(gn.normalizeRoot(e));for(const e in gn.properties){i.removeProperty(e)}}}static normalizeRoot(e){return e===hn?document:e}}gn.roots=new Set;gn.properties={};const yn=new WeakMap;const Cn=s.DOM.supportsAdoptedStyleSheets?pn:vn;const xn=Object.freeze({getOrCreate(e){if(yn.has(e)){return yn.get(e)}let t;if(e===hn){t=new gn}else if(e instanceof Document){t=s.DOM.supportsAdoptedStyleSheets?new fn:new mn}else if(cn(e)){t=new Cn(e)}else{t=new bn(e)}yn.set(e,t);return t}});class wn extends s.CSSDirective{constructor(e){super();this.subscribers=new WeakMap;this._appliedTo=new Set;this.name=e.name;if(e.cssCustomPropertyName!==null){this.cssCustomProperty=`--${e.cssCustomPropertyName}`;this.cssVar=`var(${this.cssCustomProperty})`}this.id=wn.uniqueId();wn.tokensById.set(this.id,this)}get appliedTo(){return[...this._appliedTo]}static from(e){return new wn({name:typeof e==="string"?e:e.name,cssCustomPropertyName:typeof e==="string"?e:e.cssCustomPropertyName===void 0?e.name:e.cssCustomPropertyName})}static isCSSDesignToken(e){return typeof e.cssCustomProperty==="string"}static isDerivedDesignTokenValue(e){return typeof e==="function"}static getTokenById(e){return wn.tokensById.get(e)}getOrCreateSubscriberSet(e=this){return this.subscribers.get(e)||this.subscribers.set(e,new Set)&&this.subscribers.get(e)}createCSS(){return this.cssVar||""}getValueFor(e){const t=En.getOrCreate(e).get(this);if(t!==undefined){return t}throw new Error(`Value could not be retrieved for token named "${this.name}". Ensure the value is set for ${e} or an ancestor of ${e}.`)}setValueFor(e,t){this._appliedTo.add(e);if(t instanceof wn){t=this.alias(t)}En.getOrCreate(e).set(this,t);return this}deleteValueFor(e){this._appliedTo.delete(e);if(En.existsFor(e)){En.getOrCreate(e).delete(this)}return this}withDefault(e){this.setValueFor(hn,e);return this}subscribe(e,t){const i=this.getOrCreateSubscriberSet(t);if(t&&!En.existsFor(t)){En.getOrCreate(t)}if(!i.has(e)){i.add(e)}}unsubscribe(e,t){const i=this.subscribers.get(t||this);if(i&&i.has(e)){i.delete(e)}}notify(e){const t=Object.freeze({token:this,target:e});if(this.subscribers.has(this)){this.subscribers.get(this).forEach((e=>e.handleChange(t)))}if(this.subscribers.has(e)){this.subscribers.get(e).forEach((e=>e.handleChange(t)))}}alias(e){return t=>e.getValueFor(t)}}wn.uniqueId=(()=>{let e=0;return()=>{e++;return e.toString(16)}})();wn.tokensById=new Map;class $n{startReflection(e,t){e.subscribe(this,t);this.handleChange({token:e,target:t})}stopReflection(e,t){e.unsubscribe(this,t);this.remove(e,t)}handleChange(e){const{token:t,target:i}=e;this.add(t,i)}add(e,t){xn.getOrCreate(t).setProperty(e.cssCustomProperty,this.resolveCSSValue(En.getOrCreate(t).get(e)))}remove(e,t){xn.getOrCreate(t).removeProperty(e.cssCustomProperty)}resolveCSSValue(e){return e&&typeof e.createCSS==="function"?e.createCSS():e}}class In{constructor(e,t,i){this.source=e;this.token=t;this.node=i;this.dependencies=new Set;this.observer=s.Observable.binding(e,this,false);this.observer.handleChange=this.observer.call;this.handleChange()}disconnect(){this.observer.disconnect()}handleChange(){this.node.store.set(this.token,this.observer.observe(this.node.target,s.defaultExecutionContext))}}class kn{constructor(){this.values=new Map}set(e,t){if(this.values.get(e)!==t){this.values.set(e,t);s.Observable.getNotifier(this).notify(e.id)}}get(e){s.Observable.track(this,e.id);return this.values.get(e)}delete(e){this.values.delete(e)}all(){return this.values.entries()}}const On=new WeakMap;const Tn=new WeakMap;class En{constructor(e){this.target=e;this.store=new kn;this.children=[];this.assignedValues=new Map;this.reflecting=new Set;this.bindingObservers=new Map;this.tokenValueChangeHandler={handleChange:(e,t)=>{const i=wn.getTokenById(t);if(i){i.notify(this.target);if(wn.isCSSDesignToken(i)){const t=this.parent;const s=this.isReflecting(i);if(t){const o=t.get(i);const n=e.get(i);if(o!==n&&!s){this.reflectToCSS(i)}else if(o===n&&s){this.stopReflectToCSS(i)}}else if(!s){this.reflectToCSS(i)}}}}};On.set(e,this);s.Observable.getNotifier(this.store).subscribe(this.tokenValueChangeHandler);if(e instanceof s.FASTElement){e.$fastController.addBehaviors([this])}else if(e.isConnected){this.bind()}}static getOrCreate(e){return On.get(e)||new En(e)}static existsFor(e){return On.has(e)}static findParent(e){if(!(hn===e.target)){let t=ln(e.target);while(t!==null){if(On.has(t)){return On.get(t)}t=ln(t)}return En.getOrCreate(hn)}return null}static findClosestAssignedNode(e,t){let i=t;do{if(i.has(e)){return i}i=i.parent?i.parent:i.target!==hn?En.getOrCreate(hn):null}while(i!==null);return null}get parent(){return Tn.get(this)||null}has(e){return this.assignedValues.has(e)}get(e){const t=this.store.get(e);if(t!==undefined){return t}const i=this.getRaw(e);if(i!==undefined){this.hydrate(e,i);return this.get(e)}}getRaw(e){var t;if(this.assignedValues.has(e)){return this.assignedValues.get(e)}return(t=En.findClosestAssignedNode(e,this))===null||t===void 0?void 0:t.getRaw(e)}set(e,t){if(wn.isDerivedDesignTokenValue(this.assignedValues.get(e))){this.tearDownBindingObserver(e)}this.assignedValues.set(e,t);if(wn.isDerivedDesignTokenValue(t)){this.setupBindingObserver(e,t)}else{this.store.set(e,t)}}delete(e){this.assignedValues.delete(e);this.tearDownBindingObserver(e);const t=this.getRaw(e);if(t){this.hydrate(e,t)}else{this.store.delete(e)}}bind(){const e=En.findParent(this);if(e){e.appendChild(this)}for(const t of this.assignedValues.keys()){t.notify(this.target)}}unbind(){if(this.parent){const e=Tn.get(this);e.removeChild(this)}}appendChild(e){if(e.parent){Tn.get(e).removeChild(e)}const t=this.children.filter((t=>e.contains(t)));Tn.set(e,this);this.children.push(e);t.forEach((t=>e.appendChild(t)));s.Observable.getNotifier(this.store).subscribe(e);for(const[i,s]of this.store.all()){e.hydrate(i,this.bindingObservers.has(i)?this.getRaw(i):s)}}removeChild(e){const t=this.children.indexOf(e);if(t!==-1){this.children.splice(t,1)}s.Observable.getNotifier(this.store).unsubscribe(e);return e.parent===this?Tn.delete(e):false}contains(e){return dn(this.target,e.target)}reflectToCSS(e){if(!this.isReflecting(e)){this.reflecting.add(e);En.cssCustomPropertyReflector.startReflection(e,this.target)}}stopReflectToCSS(e){if(this.isReflecting(e)){this.reflecting.delete(e);En.cssCustomPropertyReflector.stopReflection(e,this.target)}}isReflecting(e){return this.reflecting.has(e)}handleChange(e,t){const i=wn.getTokenById(t);if(!i){return}this.hydrate(i,this.getRaw(i))}hydrate(e,t){if(!this.has(e)){const i=this.bindingObservers.get(e);if(wn.isDerivedDesignTokenValue(t)){if(i){if(i.source!==t){this.tearDownBindingObserver(e);this.setupBindingObserver(e,t)}}else{this.setupBindingObserver(e,t)}}else{if(i){this.tearDownBindingObserver(e)}this.store.set(e,t)}}}setupBindingObserver(e,t){const i=new In(t,e,this);this.bindingObservers.set(e,i);return i}tearDownBindingObserver(e){if(this.bindingObservers.has(e)){this.bindingObservers.get(e).disconnect();this.bindingObservers.delete(e);return true}return false}}En.cssCustomPropertyReflector=new $n;f([s.observable],En.prototype,"children",void 0);function Rn(e){return wn.from(e)}const Dn=Object.freeze({create:Rn,notifyConnection(e){if(!e.isConnected||!En.existsFor(e)){return false}En.getOrCreate(e).bind();return true},notifyDisconnection(e){if(e.isConnected||!En.existsFor(e)){return false}En.getOrCreate(e).unbind();return true},registerRoot(e=hn){gn.registerRoot(e)},unregisterRoot(e=hn){gn.unregisterRoot(e)}});const Sn=Object.freeze({definitionCallbackOnly:null,ignoreDuplicate:Symbol()});const An=new Map;const Fn=new Map;let Ln=null;const Mn=q.createInterface((e=>e.cachedCallback((e=>{if(Ln===null){Ln=new Vn(null,e)}return Ln}))));const Pn=Object.freeze({tagFor(e){return Fn.get(e)},responsibleFor(e){const t=e.$$designSystem$$;if(t){return t}const i=q.findResponsibleContainer(e);return i.get(Mn)},getOrCreate(e){if(!e){if(Ln===null){Ln=q.getOrCreateDOMContainer().get(Mn)}return Ln}const t=e.$$designSystem$$;if(t){return t}const i=q.getOrCreateDOMContainer(e);if(i.has(Mn,false)){return i.get(Mn)}else{const t=new Vn(e,i);i.register(xe.instance(Mn,t));return t}}});function Hn(e,t,i){if(typeof e==="string"){return{name:e,type:t,callback:i}}else{return e}}class Vn{constructor(e,t){this.owner=e;this.container=t;this.designTokensInitialized=false;this.prefix="fast";this.shadowRootMode=undefined;this.disambiguate=()=>Sn.definitionCallbackOnly;if(e!==null){e.$$designSystem$$=this}}withPrefix(e){this.prefix=e;return this}withShadowRootMode(e){this.shadowRootMode=e;return this}withElementDisambiguation(e){this.disambiguate=e;return this}withDesignTokenRoot(e){this.designTokenRoot=e;return this}register(...e){const t=this.container;const i=[];const s=this.disambiguate;const o=this.shadowRootMode;const n={elementPrefix:this.prefix,tryDefineElement(e,n,r){const a=Hn(e,n,r);const{name:l,callback:d,baseClass:h}=a;let{type:c}=a;let u=l;let p=An.get(u);let f=true;while(p){const e=s(u,c,p);switch(e){case Sn.ignoreDuplicate:return;case Sn.definitionCallbackOnly:f=false;p=void 0;break;default:u=e;p=An.get(u);break}}if(f){if(Fn.has(c)||c===Fe){c=class extends c{}}An.set(u,c);Fn.set(c,u);if(h){Fn.set(h,u)}}i.push(new zn(t,u,c,o,d,f))}};if(!this.designTokensInitialized){this.designTokensInitialized=true;if(this.designTokenRoot!==null){Dn.registerRoot(this.designTokenRoot)}}t.registerWithContext(n,...e);for(const r of i){r.callback(r);if(r.willDefine&&r.definition!==null){r.definition.define()}}return this}}class zn{constructor(e,t,i,s,o,n){this.container=e;this.name=t;this.type=i;this.shadowRootMode=s;this.callback=o;this.willDefine=n;this.definition=null}definePresentation(e){Se.define(this.name,e,this.container)}defineElement(e){this.definition=new s.FASTElementDefinition(this.type,Object.assign(Object.assign({},e),{name:this.name}))}tagFor(e){return Pn.tagFor(e)}}const Nn=(e,t)=>(0,s.html)` -
- ${(0,s.when)((e=>e.modal),(0,s.html)` - - `)} - -
-`;var Bn=i(49054);class qn extends Fe{constructor(){super(...arguments);this.modal=true;this.hidden=false;this.trapFocus=true;this.trapFocusChanged=()=>{if(this.$fastController.isConnected){this.updateTrapFocus()}};this.isTrappingFocus=false;this.handleDocumentKeydown=e=>{if(!e.defaultPrevented&&!this.hidden){switch(e.key){case ze.F9:this.dismiss();e.preventDefault();break;case ze.J9:this.handleTabKeyDown(e);break}}};this.handleDocumentFocus=e=>{if(!e.defaultPrevented&&this.shouldForceFocus(e.target)){this.focusFirstElement();e.preventDefault()}};this.handleTabKeyDown=e=>{if(!this.trapFocus||this.hidden){return}const t=this.getTabQueueBounds();if(t.length===0){return}if(t.length===1){t[0].focus();e.preventDefault();return}if(e.shiftKey&&e.target===t[0]){t[t.length-1].focus();e.preventDefault()}else if(!e.shiftKey&&e.target===t[t.length-1]){t[0].focus();e.preventDefault()}return};this.getTabQueueBounds=()=>{const e=[];return qn.reduceTabbableItems(e,this)};this.focusFirstElement=()=>{const e=this.getTabQueueBounds();if(e.length>0){e[0].focus()}else{if(this.dialog instanceof HTMLElement){this.dialog.focus()}}};this.shouldForceFocus=e=>this.isTrappingFocus&&!this.contains(e);this.shouldTrapFocus=()=>this.trapFocus&&!this.hidden;this.updateTrapFocus=e=>{const t=e===undefined?this.shouldTrapFocus():e;if(t&&!this.isTrappingFocus){this.isTrappingFocus=true;document.addEventListener("focusin",this.handleDocumentFocus);s.DOM.queueUpdate((()=>{if(this.shouldForceFocus(document.activeElement)){this.focusFirstElement()}}))}else if(!t&&this.isTrappingFocus){this.isTrappingFocus=false;document.removeEventListener("focusin",this.handleDocumentFocus)}}}dismiss(){this.$emit("dismiss");this.$emit("cancel")}show(){this.hidden=false}hide(){this.hidden=true;this.$emit("close")}connectedCallback(){super.connectedCallback();document.addEventListener("keydown",this.handleDocumentKeydown);this.notifier=s.Observable.getNotifier(this);this.notifier.subscribe(this,"hidden");this.updateTrapFocus()}disconnectedCallback(){super.disconnectedCallback();document.removeEventListener("keydown",this.handleDocumentKeydown);this.updateTrapFocus(false);this.notifier.unsubscribe(this,"hidden")}handleChange(e,t){switch(t){case"hidden":this.updateTrapFocus();break;default:break}}static reduceTabbableItems(e,t){if(t.getAttribute("tabindex")==="-1"){return e}if((0,Bn.AO)(t)||qn.isFocusableFastElement(t)&&qn.hasTabbableShadow(t)){e.push(t);return e}if(t.childElementCount){return e.concat(Array.from(t.children).reduce(qn.reduceTabbableItems,[]))}return e}static isFocusableFastElement(e){var t,i;return!!((i=(t=e.$fastController)===null||t===void 0?void 0:t.definition.shadowOptions)===null||i===void 0?void 0:i.delegatesFocus)}static hasTabbableShadow(e){var t,i;return Array.from((i=(t=e.shadowRoot)===null||t===void 0?void 0:t.querySelectorAll("*"))!==null&&i!==void 0?i:[]).some((e=>(0,Bn.AO)(e)))}}f([(0,s.attr)({mode:"boolean"})],qn.prototype,"modal",void 0);f([(0,s.attr)({mode:"boolean"})],qn.prototype,"hidden",void 0);f([(0,s.attr)({attribute:"trap-focus",mode:"boolean"})],qn.prototype,"trapFocus",void 0);f([(0,s.attr)({attribute:"aria-describedby"})],qn.prototype,"ariaDescribedby",void 0);f([(0,s.attr)({attribute:"aria-labelledby"})],qn.prototype,"ariaLabelledby",void 0);f([(0,s.attr)({attribute:"aria-label"})],qn.prototype,"ariaLabel",void 0);const Un=new MutationObserver((e=>{for(const t of e){jn.getOrCreateFor(t.target).notify(t.attributeName)}}));class jn extends s.SubscriberSet{constructor(e){super(e);this.watchedAttributes=new Set;jn.subscriberCache.set(e,this)}subscribe(e){super.subscribe(e);if(!this.watchedAttributes.has(e.attributes)){this.watchedAttributes.add(e.attributes);this.observe()}}unsubscribe(e){super.unsubscribe(e);if(this.watchedAttributes.has(e.attributes)){this.watchedAttributes.delete(e.attributes);this.observe()}}static getOrCreateFor(e){return this.subscriberCache.get(e)||new jn(e)}observe(){const e=[];for(const t of this.watchedAttributes.values()){for(let i=0;i(0,s.html)` -
- - - ${e=>e.title} - - -
-
-`;class Gn extends Fe{connectedCallback(){super.connectedCallback();this.setup()}disconnectedCallback(){super.disconnectedCallback();this.details.removeEventListener("toggle",this.onToggle)}show(){this.details.open=true}hide(){this.details.open=false}toggle(){this.details.open=!this.details.open}setup(){this.onToggle=this.onToggle.bind(this);this.details.addEventListener("toggle",this.onToggle);if(this.expanded){this.show()}}onToggle(){this.expanded=this.details.open;this.$emit("toggle")}}f([(0,s.attr)({mode:"boolean"})],Gn.prototype,"expanded",void 0);f([s.attr],Gn.prototype,"title",void 0);const Xn=(e,t)=>(0,s.html)` - -`;var Yn=i(67002);const Qn={separator:"separator",presentation:"presentation"};class Zn extends Fe{constructor(){super(...arguments);this.role=Qn.separator;this.orientation=Yn.t.horizontal}}f([s.attr],Zn.prototype,"role",void 0);f([s.attr],Zn.prototype,"orientation",void 0);const Jn={next:"next",previous:"previous"};const er=(e,t)=>(0,s.html)` - -`;class tr extends Fe{constructor(){super(...arguments);this.hiddenFromAT=true;this.direction=Jn.next}keyupHandler(e){if(!this.hiddenFromAT){const t=e.key;if(t==="Enter"||t==="Space"){this.$emit("click",e)}if(t==="Escape"){this.blur()}}}}f([(0,s.attr)({mode:"boolean"})],tr.prototype,"disabled",void 0);f([(0,s.attr)({attribute:"aria-hidden",converter:s.booleanConverter})],tr.prototype,"hiddenFromAT",void 0);f([s.attr],tr.prototype,"direction",void 0);const ir=(e,t)=>(0,s.html)` - -`;class sr extends Ko{constructor(){super(...arguments);this.activeIndex=-1;this.rangeStartIndex=-1}get activeOption(){return this.options[this.activeIndex]}get checkedOptions(){var e;return(e=this.options)===null||e===void 0?void 0:e.filter((e=>e.checked))}get firstSelectedOptionIndex(){return this.options.indexOf(this.firstSelectedOption)}activeIndexChanged(e,t){var i,s;this.ariaActiveDescendant=(s=(i=this.options[t])===null||i===void 0?void 0:i.id)!==null&&s!==void 0?s:"";this.focusAndScrollOptionIntoView()}checkActiveIndex(){if(!this.multiple){return}const e=this.activeOption;if(e){e.checked=true}}checkFirstOption(e=false){if(e){if(this.rangeStartIndex===-1){this.rangeStartIndex=this.activeIndex+1}this.options.forEach(((e,t)=>{e.checked=(0,Ne.r4)(t,this.rangeStartIndex)}))}else{this.uncheckAllOptions()}this.activeIndex=0;this.checkActiveIndex()}checkLastOption(e=false){if(e){if(this.rangeStartIndex===-1){this.rangeStartIndex=this.activeIndex}this.options.forEach(((e,t)=>{e.checked=(0,Ne.r4)(t,this.rangeStartIndex,this.options.length)}))}else{this.uncheckAllOptions()}this.activeIndex=this.options.length-1;this.checkActiveIndex()}connectedCallback(){super.connectedCallback();this.addEventListener("focusout",this.focusoutHandler)}disconnectedCallback(){this.removeEventListener("focusout",this.focusoutHandler);super.disconnectedCallback()}checkNextOption(e=false){if(e){if(this.rangeStartIndex===-1){this.rangeStartIndex=this.activeIndex}this.options.forEach(((e,t)=>{e.checked=(0,Ne.r4)(t,this.rangeStartIndex,this.activeIndex+1)}))}else{this.uncheckAllOptions()}this.activeIndex+=this.activeIndex{e.checked=(0,Ne.r4)(t,this.activeIndex,this.rangeStartIndex)}))}else{this.uncheckAllOptions()}this.activeIndex-=this.activeIndex>0?1:0;this.checkActiveIndex()}clickHandler(e){var t;if(!this.multiple){return super.clickHandler(e)}const i=(t=e.target)===null||t===void 0?void 0:t.closest(`[role=option]`);if(!i||i.disabled){return}this.uncheckAllOptions();this.activeIndex=this.options.indexOf(i);this.checkActiveIndex();this.toggleSelectedForAllCheckedOptions();return true}focusAndScrollOptionIntoView(){super.focusAndScrollOptionIntoView(this.activeOption)}focusinHandler(e){if(!this.multiple){return super.focusinHandler(e)}if(!this.shouldSkipFocus&&e.target===e.currentTarget){this.uncheckAllOptions();if(this.activeIndex===-1){this.activeIndex=this.firstSelectedOptionIndex!==-1?this.firstSelectedOptionIndex:0}this.checkActiveIndex();this.setSelectedOptions();this.focusAndScrollOptionIntoView()}this.shouldSkipFocus=false}focusoutHandler(e){if(this.multiple){this.uncheckAllOptions()}}keydownHandler(e){if(!this.multiple){return super.keydownHandler(e)}if(this.disabled){return true}const{key:t,shiftKey:i}=e;this.shouldSkipFocus=false;switch(t){case ze.Tg:{this.checkFirstOption(i);return}case ze.HX:{this.checkNextOption(i);return}case ze.I5:{this.checkPreviousOption(i);return}case ze.FM:{this.checkLastOption(i);return}case ze.J9:{this.focusAndScrollOptionIntoView();return true}case ze.F9:{this.uncheckAllOptions();this.checkActiveIndex();return true}case ze.gG:{e.preventDefault();if(this.typeAheadExpired){this.toggleSelectedForAllCheckedOptions();return}}default:{if(t.length===1){this.handleTypeAhead(`${t}`)}return true}}}mousedownHandler(e){if(e.offsetX>=0&&e.offsetX<=this.scrollWidth){return super.mousedownHandler(e)}}multipleChanged(e,t){var i;this.ariaMultiSelectable=t?"true":null;(i=this.options)===null||i===void 0?void 0:i.forEach((e=>{e.checked=t?false:undefined}));this.setSelectedOptions()}setSelectedOptions(){if(!this.multiple){super.setSelectedOptions();return}if(this.$fastController.isConnected&&this.options){this.selectedOptions=this.options.filter((e=>e.selected));this.focusAndScrollOptionIntoView()}}sizeChanged(e,t){var i;const o=Math.max(0,parseInt((i=t===null||t===void 0?void 0:t.toFixed())!==null&&i!==void 0?i:"",10));if(o!==t){s.DOM.queueUpdate((()=>{this.size=o}))}}toggleSelectedForAllCheckedOptions(){const e=this.checkedOptions.filter((e=>!e.disabled));const t=!e.every((e=>e.selected));e.forEach((e=>e.selected=t));this.selectedIndex=this.options.indexOf(e[e.length-1]);this.setSelectedOptions()}typeaheadBufferChanged(e,t){if(!this.multiple){super.typeaheadBufferChanged(e,t);return}if(this.$fastController.isConnected){const e=this.getTypeaheadMatches();const t=this.options.indexOf(e[0]);if(t>-1){this.activeIndex=t;this.uncheckAllOptions();this.checkActiveIndex()}this.typeAheadExpired=false}}uncheckAllOptions(e=false){this.options.forEach((e=>e.checked=this.multiple?false:undefined));if(!e){this.rangeStartIndex=-1}}}f([s.observable],sr.prototype,"activeIndex",void 0);f([(0,s.attr)({mode:"boolean"})],sr.prototype,"multiple",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],sr.prototype,"size",void 0);const or=(e,t)=>(0,s.html)` - -`;class nr extends Fe{constructor(){super(...arguments);this.optionElements=[]}menuElementsChanged(){this.updateOptions()}headerElementsChanged(){this.updateOptions()}footerElementsChanged(){this.updateOptions()}updateOptions(){this.optionElements.splice(0,this.optionElements.length);this.addSlottedListItems(this.headerElements);this.addSlottedListItems(this.menuElements);this.addSlottedListItems(this.footerElements);this.$emit("optionsupdated",{bubbles:false})}addSlottedListItems(e){if(e===undefined){return}e.forEach((e=>{if(e.nodeType===1&&e.getAttribute("role")==="listitem"){e.id=e.id||Io("option-");this.optionElements.push(e)}}))}}f([s.observable],nr.prototype,"menuElements",void 0);f([s.observable],nr.prototype,"headerElements",void 0);f([s.observable],nr.prototype,"footerElements",void 0);f([s.observable],nr.prototype,"suggestionsAvailableText",void 0);const rr=(0,s.html)` - -`;class ar extends Fe{contentsTemplateChanged(){if(this.$fastController.isConnected){this.updateView()}}connectedCallback(){super.connectedCallback();this.updateView()}disconnectedCallback(){super.disconnectedCallback();this.disconnectView()}handleClick(e){if(e.defaultPrevented){return false}this.handleInvoked();return false}handleInvoked(){this.$emit("pickeroptioninvoked")}updateView(){var e,t;this.disconnectView();this.customView=(t=(e=this.contentsTemplate)===null||e===void 0?void 0:e.render(this,this))!==null&&t!==void 0?t:rr.render(this,this)}disconnectView(){var e;(e=this.customView)===null||e===void 0?void 0:e.dispose();this.customView=undefined}}f([(0,s.attr)({attribute:"value"})],ar.prototype,"value",void 0);f([s.observable],ar.prototype,"contentsTemplate",void 0);class lr extends Fe{}const dr=(0,s.html)` - -`;class hr extends Fe{contentsTemplateChanged(){if(this.$fastController.isConnected){this.updateView()}}connectedCallback(){super.connectedCallback();this.updateView()}disconnectedCallback(){this.disconnectView();super.disconnectedCallback()}handleKeyDown(e){if(e.defaultPrevented){return false}if(e.key===ze.Mm){this.handleInvoke();return false}return true}handleClick(e){if(!e.defaultPrevented){this.handleInvoke()}return false}handleInvoke(){this.$emit("pickeriteminvoked")}updateView(){var e,t;this.disconnectView();this.customView=(t=(e=this.contentsTemplate)===null||e===void 0?void 0:e.render(this,this))!==null&&t!==void 0?t:dr.render(this,this)}disconnectView(){var e;(e=this.customView)===null||e===void 0?void 0:e.dispose();this.customView=undefined}}f([(0,s.attr)({attribute:"value"})],hr.prototype,"value",void 0);f([s.observable],hr.prototype,"contentsTemplate",void 0);function cr(e){const t=e.tagFor(hr);return(0,s.html)` - <${t} - value="${e=>e}" - :contentsTemplate="${(e,t)=>t.parent.listItemContentsTemplate}" - > - - `}function ur(e){const t=e.tagFor(ar);return(0,s.html)` - <${t} - value="${e=>e}" - :contentsTemplate="${(e,t)=>t.parent.menuOptionContentsTemplate}" - > - - `}const pr=(e,t)=>{const i=e.tagFor(Os);const o=e.tagFor(nr);const n=e.tagFor(lr);const r=e.tagFor(lr);const a=cr(e);const l=ur(e);return(0,s.html)` - - `};class fr extends Fe{}class mr extends(Ws(fr)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}const vr=(0,s.html)` - -`;class br extends mr{constructor(){super(...arguments);this.selection="";this.filterSelected=true;this.filterQuery=true;this.noSuggestionsText="No suggestions available";this.suggestionsAvailableText="Suggestions available";this.loadingText="Loading suggestions";this.menuPlacement="bottom-fill";this.showLoading=false;this.optionsList=[];this.filteredOptionsList=[];this.flyoutOpen=false;this.menuFocusIndex=-1;this.showNoOptions=false;this.selectedItems=[];this.inputElementView=null;this.handleTextInput=e=>{this.query=this.inputElement.value};this.handleInputClick=e=>{e.preventDefault();this.toggleFlyout(true)};this.setRegionProps=()=>{if(!this.flyoutOpen){return}if(this.region===null||this.region===undefined){s.DOM.queueUpdate(this.setRegionProps);return}this.region.anchorElement=this.inputElement};this.configLookup={top:Es,bottom:Rs,tallest:Ds,"top-fill":Ss,"bottom-fill":As,"tallest-fill":Fs}}selectionChanged(){if(this.$fastController.isConnected){this.handleSelectionChange();if(this.proxy instanceof HTMLInputElement){this.proxy.value=this.selection;this.validate()}}}optionsChanged(){this.optionsList=this.options.split(",").map((e=>e.trim())).filter((e=>e!==""))}menuPlacementChanged(){if(this.$fastController.isConnected){this.updateMenuConfig()}}showLoadingChanged(){if(this.$fastController.isConnected){s.DOM.queueUpdate((()=>{this.setFocusedOption(0)}))}}listItemTemplateChanged(){this.updateListItemTemplate()}defaultListItemTemplateChanged(){this.updateListItemTemplate()}menuOptionTemplateChanged(){this.updateOptionTemplate()}defaultMenuOptionTemplateChanged(){this.updateOptionTemplate()}optionsListChanged(){this.updateFilteredOptions()}queryChanged(){if(this.$fastController.isConnected){if(this.inputElement.value!==this.query){this.inputElement.value=this.query}this.updateFilteredOptions();this.$emit("querychange",{bubbles:false})}}filteredOptionsListChanged(){if(this.$fastController.isConnected){this.showNoOptions=this.filteredOptionsList.length===0&&this.menuElement.querySelectorAll('[role="listitem"]').length===0;this.setFocusedOption(this.showNoOptions?-1:0)}}flyoutOpenChanged(){if(this.flyoutOpen){s.DOM.queueUpdate(this.setRegionProps);this.$emit("menuopening",{bubbles:false})}else{this.$emit("menuclosing",{bubbles:false})}}showNoOptionsChanged(){if(this.$fastController.isConnected){s.DOM.queueUpdate((()=>{this.setFocusedOption(0)}))}}connectedCallback(){super.connectedCallback();this.listElement=document.createElement(this.selectedListTag);this.appendChild(this.listElement);this.itemsPlaceholderElement=document.createComment("");this.listElement.append(this.itemsPlaceholderElement);this.inputElementView=vr.render(this,this.listElement);const e=this.menuTag.toUpperCase();this.menuElement=Array.from(this.children).find((t=>t.tagName===e));if(this.menuElement===undefined){this.menuElement=document.createElement(this.menuTag);this.appendChild(this.menuElement)}if(this.menuElement.id===""){this.menuElement.id=Io("listbox-")}this.menuId=this.menuElement.id;this.optionsPlaceholder=document.createComment("");this.menuElement.append(this.optionsPlaceholder);this.updateMenuConfig();s.DOM.queueUpdate((()=>this.initialize()))}disconnectedCallback(){super.disconnectedCallback();this.toggleFlyout(false);this.inputElement.removeEventListener("input",this.handleTextInput);this.inputElement.removeEventListener("click",this.handleInputClick);if(this.inputElementView!==null){this.inputElementView.dispose();this.inputElementView=null}}focus(){this.inputElement.focus()}initialize(){this.updateListItemTemplate();this.updateOptionTemplate();this.itemsRepeatBehavior=new s.RepeatDirective((e=>e.selectedItems),(e=>e.activeListItemTemplate),{positioning:true}).createBehavior(this.itemsPlaceholderElement);this.inputElement.addEventListener("input",this.handleTextInput);this.inputElement.addEventListener("click",this.handleInputClick);this.$fastController.addBehaviors([this.itemsRepeatBehavior]);this.menuElement.suggestionsAvailableText=this.suggestionsAvailableText;this.menuElement.addEventListener("optionsupdated",this.handleMenuOptionsUpdated);this.optionsRepeatBehavior=new s.RepeatDirective((e=>e.filteredOptionsList),(e=>e.activeMenuOptionTemplate),{positioning:true}).createBehavior(this.optionsPlaceholder);this.$fastController.addBehaviors([this.optionsRepeatBehavior]);this.handleSelectionChange()}toggleFlyout(e){if(this.flyoutOpen===e){return}if(e&&document.activeElement===this.inputElement){this.flyoutOpen=e;s.DOM.queueUpdate((()=>{if(this.menuElement!==undefined){this.setFocusedOption(0)}else{this.disableMenu()}}));return}this.flyoutOpen=false;this.disableMenu();return}handleMenuOptionsUpdated(e){e.preventDefault();if(this.flyoutOpen){this.setFocusedOption(0)}}handleKeyDown(e){if(e.defaultPrevented){return false}switch(e.key){case ze.HX:{if(!this.flyoutOpen){this.toggleFlyout(true)}else{const e=this.flyoutOpen?Math.min(this.menuFocusIndex+1,this.menuElement.optionElements.length-1):0;this.setFocusedOption(e)}return false}case ze.I5:{if(!this.flyoutOpen){this.toggleFlyout(true)}else{const e=this.flyoutOpen?Math.max(this.menuFocusIndex-1,0):0;this.setFocusedOption(e)}return false}case ze.F9:{this.toggleFlyout(false);return false}case ze.Mm:{if(this.menuFocusIndex!==-1&&this.menuElement.optionElements.length>this.menuFocusIndex){this.menuElement.optionElements[this.menuFocusIndex].click()}return false}case ze.bb:{if(document.activeElement!==this.inputElement){this.incrementFocusedItem(1);return false}return true}case ze.kT:{if(this.inputElement.selectionStart===0){this.incrementFocusedItem(-1);return false}return true}case ze.De:case ze.R9:{if(document.activeElement===null){return true}if(document.activeElement===this.inputElement){if(this.inputElement.selectionStart===0){this.selection=this.selectedItems.slice(0,this.selectedItems.length-1).toString();this.toggleFlyout(false);return false}return true}const e=Array.from(this.listElement.children);const t=e.indexOf(document.activeElement);if(t>-1){this.selection=this.selectedItems.splice(t,1).toString();s.DOM.queueUpdate((()=>{e[Math.min(e.length,t)].focus()}));return false}return true}}this.toggleFlyout(true);return true}handleFocusIn(e){return false}handleFocusOut(e){if(this.menuElement===undefined||!this.menuElement.contains(e.relatedTarget)){this.toggleFlyout(false)}return false}handleSelectionChange(){if(this.selectedItems.toString()===this.selection){return}this.selectedItems=this.selection===""?[]:this.selection.split(",");this.updateFilteredOptions();s.DOM.queueUpdate((()=>{this.checkMaxItems()}));this.$emit("selectionchange",{bubbles:false})}handleRegionLoaded(e){s.DOM.queueUpdate((()=>{this.setFocusedOption(0);this.$emit("menuloaded",{bubbles:false})}))}checkMaxItems(){if(this.inputElement===undefined){return}if(this.maxSelected!==undefined&&this.selectedItems.length>=this.maxSelected){if(document.activeElement===this.inputElement){const e=Array.from(this.listElement.querySelectorAll("[role='listitem']"));e[e.length-1].focus()}this.inputElement.hidden=true}else{this.inputElement.hidden=false}}handleItemInvoke(e){if(e.defaultPrevented){return false}if(e.target instanceof hr){const t=Array.from(this.listElement.querySelectorAll("[role='listitem']"));const i=t.indexOf(e.target);if(i!==-1){const e=this.selectedItems.slice();e.splice(i,1);this.selection=e.toString();s.DOM.queueUpdate((()=>this.incrementFocusedItem(0)))}return false}return true}handleOptionInvoke(e){if(e.defaultPrevented){return false}if(e.target instanceof ar){if(e.target.value!==undefined){this.selection=`${this.selection}${this.selection===""?"":","}${e.target.value}`}this.inputElement.value="";this.query="";this.inputElement.focus();this.toggleFlyout(false);return false}return true}incrementFocusedItem(e){if(this.selectedItems.length===0){this.inputElement.focus();return}const t=Array.from(this.listElement.querySelectorAll("[role='listitem']"));if(document.activeElement!==null){let i=t.indexOf(document.activeElement);if(i===-1){i=t.length}const s=Math.min(t.length,Math.max(0,i+e));if(s===t.length){if(this.maxSelected!==undefined&&this.selectedItems.length>=this.maxSelected){t[s-1].focus()}else{this.inputElement.focus()}}else{t[s].focus()}}}disableMenu(){var e,t,i;this.menuFocusIndex=-1;this.menuFocusOptionId=undefined;(e=this.inputElement)===null||e===void 0?void 0:e.removeAttribute("aria-activedescendant");(t=this.inputElement)===null||t===void 0?void 0:t.removeAttribute("aria-owns");(i=this.inputElement)===null||i===void 0?void 0:i.removeAttribute("aria-expanded")}setFocusedOption(e){if(!this.flyoutOpen||e===-1||this.showNoOptions||this.showLoading){this.disableMenu();return}if(this.menuElement.optionElements.length===0){return}this.menuElement.optionElements.forEach((e=>{e.setAttribute("aria-selected","false")}));this.menuFocusIndex=e;if(this.menuFocusIndex>this.menuElement.optionElements.length-1){this.menuFocusIndex=this.menuElement.optionElements.length-1}this.menuFocusOptionId=this.menuElement.optionElements[this.menuFocusIndex].id;this.inputElement.setAttribute("aria-owns",this.menuId);this.inputElement.setAttribute("aria-expanded","true");this.inputElement.setAttribute("aria-activedescendant",this.menuFocusOptionId);const t=this.menuElement.optionElements[this.menuFocusIndex];t.setAttribute("aria-selected","true");this.menuElement.scrollTo(0,t.offsetTop)}updateListItemTemplate(){var e;this.activeListItemTemplate=(e=this.listItemTemplate)!==null&&e!==void 0?e:this.defaultListItemTemplate}updateOptionTemplate(){var e;this.activeMenuOptionTemplate=(e=this.menuOptionTemplate)!==null&&e!==void 0?e:this.defaultMenuOptionTemplate}updateFilteredOptions(){this.filteredOptionsList=this.optionsList.slice(0);if(this.filterSelected){this.filteredOptionsList=this.filteredOptionsList.filter((e=>this.selectedItems.indexOf(e)===-1))}if(this.filterQuery&&this.query!==""&&this.query!==undefined){this.filteredOptionsList=this.filteredOptionsList.filter((e=>e.indexOf(this.query)!==-1))}}updateMenuConfig(){let e=this.configLookup[this.menuPlacement];if(e===null){e=As}this.menuConfig=Object.assign(Object.assign({},e),{autoUpdateMode:"auto",fixedPlacement:true,horizontalViewportLock:false,verticalViewportLock:false})}}f([(0,s.attr)({attribute:"selection"})],br.prototype,"selection",void 0);f([(0,s.attr)({attribute:"options"})],br.prototype,"options",void 0);f([(0,s.attr)({attribute:"filter-selected",mode:"boolean"})],br.prototype,"filterSelected",void 0);f([(0,s.attr)({attribute:"filter-query",mode:"boolean"})],br.prototype,"filterQuery",void 0);f([(0,s.attr)({attribute:"max-selected"})],br.prototype,"maxSelected",void 0);f([(0,s.attr)({attribute:"no-suggestions-text"})],br.prototype,"noSuggestionsText",void 0);f([(0,s.attr)({attribute:"suggestions-available-text"})],br.prototype,"suggestionsAvailableText",void 0);f([(0,s.attr)({attribute:"loading-text"})],br.prototype,"loadingText",void 0);f([(0,s.attr)({attribute:"label"})],br.prototype,"label",void 0);f([(0,s.attr)({attribute:"labelledby"})],br.prototype,"labelledBy",void 0);f([(0,s.attr)({attribute:"placeholder"})],br.prototype,"placeholder",void 0);f([(0,s.attr)({attribute:"menu-placement"})],br.prototype,"menuPlacement",void 0);f([s.observable],br.prototype,"showLoading",void 0);f([s.observable],br.prototype,"listItemTemplate",void 0);f([s.observable],br.prototype,"defaultListItemTemplate",void 0);f([s.observable],br.prototype,"activeListItemTemplate",void 0);f([s.observable],br.prototype,"menuOptionTemplate",void 0);f([s.observable],br.prototype,"defaultMenuOptionTemplate",void 0);f([s.observable],br.prototype,"activeMenuOptionTemplate",void 0);f([s.observable],br.prototype,"listItemContentsTemplate",void 0);f([s.observable],br.prototype,"menuOptionContentsTemplate",void 0);f([s.observable],br.prototype,"optionsList",void 0);f([s.observable],br.prototype,"query",void 0);f([s.observable],br.prototype,"filteredOptionsList",void 0);f([s.observable],br.prototype,"flyoutOpen",void 0);f([s.observable],br.prototype,"menuId",void 0);f([s.observable],br.prototype,"selectedListTag",void 0);f([s.observable],br.prototype,"menuTag",void 0);f([s.observable],br.prototype,"menuFocusIndex",void 0);f([s.observable],br.prototype,"menuFocusOptionId",void 0);f([s.observable],br.prototype,"showNoOptions",void 0);f([s.observable],br.prototype,"menuConfig",void 0);f([s.observable],br.prototype,"selectedItems",void 0);const gr=(e,t)=>(0,s.html)` - - `;const yr=(e,t)=>(0,s.html)` - - `;const Cr=(e,t)=>(0,s.html)` - - `;const xr=(e,t)=>(0,s.html)` - - `;const wr={menuitem:"menuitem",menuitemcheckbox:"menuitemcheckbox",menuitemradio:"menuitemradio"};const $r={[wr.menuitem]:"menuitem",[wr.menuitemcheckbox]:"menuitemcheckbox",[wr.menuitemradio]:"menuitemradio"};const Ir=(e,t)=>(0,s.html)` - -`;class kr extends Fe{constructor(){super(...arguments);this.role=wr.menuitem;this.hasSubmenu=false;this.currentDirection=Ge.O.ltr;this.focusSubmenuOnLoad=false;this.handleMenuItemKeyDown=e=>{if(e.defaultPrevented){return false}switch(e.key){case ze.Mm:case ze.gG:this.invoke();return false;case ze.bb:this.expandAndFocus();return false;case ze.kT:if(this.expanded){this.expanded=false;this.focus();return false}}return true};this.handleMenuItemClick=e=>{if(e.defaultPrevented||this.disabled){return false}this.invoke();return false};this.submenuLoaded=()=>{if(!this.focusSubmenuOnLoad){return}this.focusSubmenuOnLoad=false;if(this.hasSubmenu){this.submenu.focus();this.setAttribute("tabindex","-1")}};this.handleMouseOver=e=>{if(this.disabled||!this.hasSubmenu||this.expanded){return false}this.expanded=true;return false};this.handleMouseOut=e=>{if(!this.expanded||this.contains(document.activeElement)){return false}this.expanded=false;return false};this.expandAndFocus=()=>{if(!this.hasSubmenu){return}this.focusSubmenuOnLoad=true;this.expanded=true};this.invoke=()=>{if(this.disabled){return}switch(this.role){case wr.menuitemcheckbox:this.checked=!this.checked;break;case wr.menuitem:this.updateSubmenu();if(this.hasSubmenu){this.expandAndFocus()}else{this.$emit("change")}break;case wr.menuitemradio:if(!this.checked){this.checked=true}break}};this.updateSubmenu=()=>{this.submenu=this.domChildren().find((e=>e.getAttribute("role")==="menu"));this.hasSubmenu=this.submenu===undefined?false:true}}expandedChanged(e){if(this.$fastController.isConnected){if(this.submenu===undefined){return}if(this.expanded===false){this.submenu.collapseExpandedItem()}else{this.currentDirection=Is(this)}this.$emit("expanded-change",this,{bubbles:false})}}checkedChanged(e,t){if(this.$fastController.isConnected){this.$emit("change")}}connectedCallback(){super.connectedCallback();s.DOM.queueUpdate((()=>{this.updateSubmenu()}));if(!this.startColumnCount){this.startColumnCount=1}this.observer=new MutationObserver(this.updateSubmenu)}disconnectedCallback(){super.disconnectedCallback();this.submenu=undefined;if(this.observer!==undefined){this.observer.disconnect();this.observer=undefined}}domChildren(){return Array.from(this.children).filter((e=>!e.hasAttribute("hidden")))}}f([(0,s.attr)({mode:"boolean"})],kr.prototype,"disabled",void 0);f([(0,s.attr)({mode:"boolean"})],kr.prototype,"expanded",void 0);f([s.observable],kr.prototype,"startColumnCount",void 0);f([s.attr],kr.prototype,"role",void 0);f([(0,s.attr)({mode:"boolean"})],kr.prototype,"checked",void 0);f([s.observable],kr.prototype,"submenuRegion",void 0);f([s.observable],kr.prototype,"hasSubmenu",void 0);f([s.observable],kr.prototype,"currentDirection",void 0);f([s.observable],kr.prototype,"submenu",void 0);Pe(kr,o);const Or=(e,t)=>(0,s.html)` - -`;class Tr extends Fe{constructor(){super(...arguments);this.expandedItem=null;this.focusIndex=-1;this.isNestedMenu=()=>this.parentElement!==null&&Ao(this.parentElement)&&this.parentElement.getAttribute("role")==="menuitem";this.handleFocusOut=e=>{if(!this.contains(e.relatedTarget)&&this.menuItems!==undefined){this.collapseExpandedItem();const e=this.menuItems.findIndex(this.isFocusableElement);this.menuItems[this.focusIndex].setAttribute("tabindex","-1");this.menuItems[e].setAttribute("tabindex","0");this.focusIndex=e}};this.handleItemFocus=e=>{const t=e.target;if(this.menuItems!==undefined&&t!==this.menuItems[this.focusIndex]){this.menuItems[this.focusIndex].setAttribute("tabindex","-1");this.focusIndex=this.menuItems.indexOf(t);t.setAttribute("tabindex","0")}};this.handleExpandedChanged=e=>{if(e.defaultPrevented||e.target===null||this.menuItems===undefined||this.menuItems.indexOf(e.target)<0){return}e.preventDefault();const t=e.target;if(this.expandedItem!==null&&t===this.expandedItem&&t.expanded===false){this.expandedItem=null;return}if(t.expanded){if(this.expandedItem!==null&&this.expandedItem!==t){this.expandedItem.expanded=false}this.menuItems[this.focusIndex].setAttribute("tabindex","-1");this.expandedItem=t;this.focusIndex=this.menuItems.indexOf(t);t.setAttribute("tabindex","0")}};this.removeItemListeners=()=>{if(this.menuItems!==undefined){this.menuItems.forEach((e=>{e.removeEventListener("expanded-change",this.handleExpandedChanged);e.removeEventListener("focus",this.handleItemFocus)}))}};this.setItems=()=>{const e=this.domChildren();this.removeItemListeners();this.menuItems=e;const t=this.menuItems.filter(this.isMenuItemElement);if(t.length){this.focusIndex=0}function i(e){const t=e.getAttribute("role");const i=e.querySelector("[slot=start]");if(t!==wr.menuitem&&i===null){return 1}else if(t===wr.menuitem&&i!==null){return 1}else if(t!==wr.menuitem&&i!==null){return 2}else{return 0}}const s=t.reduce(((e,t)=>{const s=i(t);return e>s?e:s}),0);t.forEach(((e,t)=>{e.setAttribute("tabindex",t===0?"0":"-1");e.addEventListener("expanded-change",this.handleExpandedChanged);e.addEventListener("focus",this.handleItemFocus);if(e instanceof kr){e.startColumnCount=s}}))};this.changeHandler=e=>{if(this.menuItems===undefined){return}const t=e.target;const i=this.menuItems.indexOf(t);if(i===-1){return}if(t.role==="menuitemradio"&&t.checked===true){for(let t=i-1;t>=0;--t){const e=this.menuItems[t];const i=e.getAttribute("role");if(i===wr.menuitemradio){e.checked=false}if(i==="separator"){break}}const e=this.menuItems.length-1;for(let t=i+1;t<=e;++t){const e=this.menuItems[t];const i=e.getAttribute("role");if(i===wr.menuitemradio){e.checked=false}if(i==="separator"){break}}}};this.isMenuItemElement=e=>Ao(e)&&Tr.focusableElementRoles.hasOwnProperty(e.getAttribute("role"));this.isFocusableElement=e=>this.isMenuItemElement(e)}itemsChanged(e,t){if(this.$fastController.isConnected&&this.menuItems!==undefined){this.setItems()}}connectedCallback(){super.connectedCallback();s.DOM.queueUpdate((()=>{this.setItems()}));this.addEventListener("change",this.changeHandler)}disconnectedCallback(){super.disconnectedCallback();this.removeItemListeners();this.menuItems=undefined;this.removeEventListener("change",this.changeHandler)}focus(){this.setFocus(0,1)}collapseExpandedItem(){if(this.expandedItem!==null){this.expandedItem.expanded=false;this.expandedItem=null}}handleMenuKeyDown(e){if(e.defaultPrevented||this.menuItems===undefined){return}switch(e.key){case ze.HX:this.setFocus(this.focusIndex+1,1);return;case ze.I5:this.setFocus(this.focusIndex-1,-1);return;case ze.FM:this.setFocus(this.menuItems.length-1,-1);return;case ze.Tg:this.setFocus(0,1);return;default:return true}}domChildren(){return Array.from(this.children).filter((e=>!e.hasAttribute("hidden")))}setFocus(e,t){if(this.menuItems===undefined){return}while(e>=0&&e-1&&this.menuItems.length>=this.focusIndex-1){this.menuItems[this.focusIndex].setAttribute("tabindex","-1")}this.focusIndex=e;i.setAttribute("tabindex","0");i.focus();break}e+=t}}}Tr.focusableElementRoles=$r;f([s.observable],Tr.prototype,"items",void 0);const Er=(e,t)=>(0,s.html)` - -`;class Rr extends Fe{}class Dr extends(Ws(Rr)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}const Sr={email:"email",password:"password",tel:"tel",text:"text",url:"url"};class Ar extends Dr{constructor(){super(...arguments);this.type=Sr.text}readOnlyChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.readOnly=this.readOnly;this.validate()}}autofocusChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.autofocus=this.autofocus;this.validate()}}placeholderChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.placeholder=this.placeholder}}typeChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.type=this.type;this.validate()}}listChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.setAttribute("list",this.list);this.validate()}}maxlengthChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.maxLength=this.maxlength;this.validate()}}minlengthChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.minLength=this.minlength;this.validate()}}patternChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.pattern=this.pattern;this.validate()}}sizeChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.size=this.size}}spellcheckChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.spellcheck=this.spellcheck}}connectedCallback(){super.connectedCallback();this.proxy.setAttribute("type",this.type);this.validate();if(this.autofocus){s.DOM.queueUpdate((()=>{this.focus()}))}}select(){this.control.select();this.$emit("select")}handleTextInput(){this.value=this.control.value}handleChange(){this.$emit("change")}validate(){super.validate(this.control)}}f([(0,s.attr)({attribute:"readonly",mode:"boolean"})],Ar.prototype,"readOnly",void 0);f([(0,s.attr)({mode:"boolean"})],Ar.prototype,"autofocus",void 0);f([s.attr],Ar.prototype,"placeholder",void 0);f([s.attr],Ar.prototype,"type",void 0);f([s.attr],Ar.prototype,"list",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Ar.prototype,"maxlength",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Ar.prototype,"minlength",void 0);f([s.attr],Ar.prototype,"pattern",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Ar.prototype,"size",void 0);f([(0,s.attr)({mode:"boolean"})],Ar.prototype,"spellcheck",void 0);f([s.observable],Ar.prototype,"defaultSlottedNodes",void 0);class Fr{}Pe(Fr,je);Pe(Ar,o,Fr);class Lr extends Fe{}class Mr extends(Ws(Lr)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}class Pr extends Mr{constructor(){super(...arguments);this.hideStep=false;this.step=1;this.isUserInput=false}maxChanged(e,t){var i;this.max=Math.max(t,(i=this.min)!==null&&i!==void 0?i:t);const s=Math.min(this.min,this.max);if(this.min!==undefined&&this.min!==s){this.min=s}this.value=this.getValidValue(this.value)}minChanged(e,t){var i;this.min=Math.min(t,(i=this.max)!==null&&i!==void 0?i:t);const s=Math.max(this.min,this.max);if(this.max!==undefined&&this.max!==s){this.max=s}this.value=this.getValidValue(this.value)}get valueAsNumber(){return parseFloat(super.value)}set valueAsNumber(e){this.value=e.toString()}valueChanged(e,t){this.value=this.getValidValue(t);if(t!==this.value){return}if(this.control&&!this.isUserInput){this.control.value=this.value}super.valueChanged(e,this.value);if(e!==undefined&&!this.isUserInput){this.$emit("input");this.$emit("change")}this.isUserInput=false}validate(){super.validate(this.control)}getValidValue(e){var t,i;let s=parseFloat(parseFloat(e).toPrecision(12));if(isNaN(s)){s=""}else{s=Math.min(s,(t=this.max)!==null&&t!==void 0?t:s);s=Math.max(s,(i=this.min)!==null&&i!==void 0?i:s).toString()}return s}stepUp(){const e=parseFloat(this.value);const t=!isNaN(e)?e+this.step:this.min>0?this.min:this.max<0?this.max:!this.min?this.step:0;this.value=t.toString()}stepDown(){const e=parseFloat(this.value);const t=!isNaN(e)?e-this.step:this.min>0?this.min:this.max<0?this.max:!this.min?0-this.step:0;this.value=t.toString()}connectedCallback(){super.connectedCallback();this.proxy.setAttribute("type","number");this.validate();this.control.value=this.value;if(this.autofocus){s.DOM.queueUpdate((()=>{this.focus()}))}}select(){this.control.select();this.$emit("select")}handleTextInput(){this.control.value=this.control.value.replace(/[^0-9\-+e.]/g,"");this.isUserInput=true;this.value=this.control.value}handleChange(){this.$emit("change")}handleKeyDown(e){const t=e.key;switch(t){case ze.I5:this.stepUp();return false;case ze.HX:this.stepDown();return false}return true}handleBlur(){this.control.value=this.value}}f([(0,s.attr)({attribute:"readonly",mode:"boolean"})],Pr.prototype,"readOnly",void 0);f([(0,s.attr)({mode:"boolean"})],Pr.prototype,"autofocus",void 0);f([(0,s.attr)({attribute:"hide-step",mode:"boolean"})],Pr.prototype,"hideStep",void 0);f([s.attr],Pr.prototype,"placeholder",void 0);f([s.attr],Pr.prototype,"list",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Pr.prototype,"maxlength",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Pr.prototype,"minlength",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Pr.prototype,"size",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Pr.prototype,"step",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Pr.prototype,"max",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Pr.prototype,"min",void 0);f([s.observable],Pr.prototype,"defaultSlottedNodes",void 0);Pe(Pr,o,Fr);const Hr=44;const Vr=(e,t)=>(0,s.html)` - -`;class zr extends Fe{constructor(){super(...arguments);this.percentComplete=0}valueChanged(){if(this.$fastController.isConnected){this.updatePercentComplete()}}minChanged(){if(this.$fastController.isConnected){this.updatePercentComplete()}}maxChanged(){if(this.$fastController.isConnected){this.updatePercentComplete()}}connectedCallback(){super.connectedCallback();this.updatePercentComplete()}updatePercentComplete(){const e=typeof this.min==="number"?this.min:0;const t=typeof this.max==="number"?this.max:100;const i=typeof this.value==="number"?this.value:0;const s=t-e;this.percentComplete=s===0?0:Math.fround((i-e)/s*100)}}f([(0,s.attr)({converter:s.nullableNumberConverter})],zr.prototype,"value",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],zr.prototype,"min",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],zr.prototype,"max",void 0);f([(0,s.attr)({mode:"boolean"})],zr.prototype,"paused",void 0);f([s.observable],zr.prototype,"percentComplete",void 0);const Nr=(e,t)=>(0,s.html)` - -`;const Br=(e,t)=>(0,s.html)` - -`;class qr extends Fe{constructor(){super(...arguments);this.orientation=Yn.t.horizontal;this.radioChangeHandler=e=>{const t=e.target;if(t.checked){this.slottedRadioButtons.forEach((e=>{if(e!==t){e.checked=false;if(!this.isInsideFoundationToolbar){e.setAttribute("tabindex","-1")}}}));this.selectedRadio=t;this.value=t.value;t.setAttribute("tabindex","0");this.focusedRadio=t}e.stopPropagation()};this.moveToRadioByIndex=(e,t)=>{const i=e[t];if(!this.isInsideToolbar){i.setAttribute("tabindex","0");if(i.readOnly){this.slottedRadioButtons.forEach((e=>{if(e!==i){e.setAttribute("tabindex","-1")}}))}else{i.checked=true;this.selectedRadio=i}}this.focusedRadio=i;i.focus()};this.moveRightOffGroup=()=>{var e;(e=this.nextElementSibling)===null||e===void 0?void 0:e.focus()};this.moveLeftOffGroup=()=>{var e;(e=this.previousElementSibling)===null||e===void 0?void 0:e.focus()};this.focusOutHandler=e=>{const t=this.slottedRadioButtons;const i=e.target;const s=i!==null?t.indexOf(i):0;const o=this.focusedRadio?t.indexOf(this.focusedRadio):-1;if(o===0&&s===o||o===t.length-1&&o===s){if(!this.selectedRadio){this.focusedRadio=t[0];this.focusedRadio.setAttribute("tabindex","0");t.forEach((e=>{if(e!==this.focusedRadio){e.setAttribute("tabindex","-1")}}))}else{this.focusedRadio=this.selectedRadio;if(!this.isInsideFoundationToolbar){this.selectedRadio.setAttribute("tabindex","0");t.forEach((e=>{if(e!==this.selectedRadio){e.setAttribute("tabindex","-1")}}))}}}return true};this.clickHandler=e=>{const t=e.target;if(t){const e=this.slottedRadioButtons;if(t.checked||e.indexOf(t)===0){t.setAttribute("tabindex","0");this.selectedRadio=t}else{t.setAttribute("tabindex","-1");this.selectedRadio=null}this.focusedRadio=t}e.preventDefault()};this.shouldMoveOffGroupToTheRight=(e,t,i)=>e===t.length&&this.isInsideToolbar&&i===ze.bb;this.shouldMoveOffGroupToTheLeft=(e,t)=>{const i=this.focusedRadio?e.indexOf(this.focusedRadio)-1:0;return i<0&&this.isInsideToolbar&&t===ze.kT};this.checkFocusedRadio=()=>{if(this.focusedRadio!==null&&!this.focusedRadio.readOnly&&!this.focusedRadio.checked){this.focusedRadio.checked=true;this.focusedRadio.setAttribute("tabindex","0");this.focusedRadio.focus();this.selectedRadio=this.focusedRadio}};this.moveRight=e=>{const t=this.slottedRadioButtons;let i=0;i=this.focusedRadio?t.indexOf(this.focusedRadio)+1:1;if(this.shouldMoveOffGroupToTheRight(i,t,e.key)){this.moveRightOffGroup();return}else if(i===t.length){i=0}while(i1){if(!t[i].disabled){this.moveToRadioByIndex(t,i);break}else if(this.focusedRadio&&i===t.indexOf(this.focusedRadio)){break}else if(i+1>=t.length){if(this.isInsideToolbar){break}else{i=0}}else{i+=1}}};this.moveLeft=e=>{const t=this.slottedRadioButtons;let i=0;i=this.focusedRadio?t.indexOf(this.focusedRadio)-1:0;i=i<0?t.length-1:i;if(this.shouldMoveOffGroupToTheLeft(t,e.key)){this.moveLeftOffGroup();return}while(i>=0&&t.length>1){if(!t[i].disabled){this.moveToRadioByIndex(t,i);break}else if(this.focusedRadio&&i===t.indexOf(this.focusedRadio)){break}else if(i-1<0){i=t.length-1}else{i-=1}}};this.keydownHandler=e=>{const t=e.key;if(t in ze.Is&&this.isInsideFoundationToolbar){return true}switch(t){case ze.Mm:{this.checkFocusedRadio();break}case ze.bb:case ze.HX:{if(this.direction===Ge.O.ltr){this.moveRight(e)}else{this.moveLeft(e)}break}case ze.kT:case ze.I5:{if(this.direction===Ge.O.ltr){this.moveLeft(e)}else{this.moveRight(e)}break}default:{return true}}}}readOnlyChanged(){if(this.slottedRadioButtons!==undefined){this.slottedRadioButtons.forEach((e=>{if(this.readOnly){e.readOnly=true}else{e.readOnly=false}}))}}disabledChanged(){if(this.slottedRadioButtons!==undefined){this.slottedRadioButtons.forEach((e=>{if(this.disabled){e.disabled=true}else{e.disabled=false}}))}}nameChanged(){if(this.slottedRadioButtons){this.slottedRadioButtons.forEach((e=>{e.setAttribute("name",this.name)}))}}valueChanged(){if(this.slottedRadioButtons){this.slottedRadioButtons.forEach((e=>{if(e.value===this.value){e.checked=true;this.selectedRadio=e}}))}this.$emit("change")}slottedRadioButtonsChanged(e,t){if(this.slottedRadioButtons&&this.slottedRadioButtons.length>0){this.setupRadioButtons()}}get parentToolbar(){return this.closest('[role="toolbar"]')}get isInsideToolbar(){var e;return(e=this.parentToolbar)!==null&&e!==void 0?e:false}get isInsideFoundationToolbar(){var e;return!!((e=this.parentToolbar)===null||e===void 0?void 0:e["$fastController"])}connectedCallback(){super.connectedCallback();this.direction=Is(this);this.setupRadioButtons()}disconnectedCallback(){this.slottedRadioButtons.forEach((e=>{e.removeEventListener("change",this.radioChangeHandler)}))}setupRadioButtons(){const e=this.slottedRadioButtons.filter((e=>e.hasAttribute("checked")));const t=e?e.length:0;if(t>1){const i=e[t-1];i.checked=true}let i=false;this.slottedRadioButtons.forEach((e=>{if(this.name!==undefined){e.setAttribute("name",this.name)}if(this.disabled){e.disabled=true}if(this.readOnly){e.readOnly=true}if(this.value&&this.value===e.value){this.selectedRadio=e;this.focusedRadio=e;e.checked=true;e.setAttribute("tabindex","0");i=true}else{if(!this.isInsideFoundationToolbar){e.setAttribute("tabindex","-1")}e.checked=false}e.addEventListener("change",this.radioChangeHandler)}));if(this.value===undefined&&this.slottedRadioButtons.length>0){const e=this.slottedRadioButtons.filter((e=>e.hasAttribute("checked")));const t=e!==null?e.length:0;if(t>0&&!i){const i=e[t-1];i.checked=true;this.focusedRadio=i;i.setAttribute("tabindex","0")}else{this.slottedRadioButtons[0].setAttribute("tabindex","0");this.focusedRadio=this.slottedRadioButtons[0]}}}}f([(0,s.attr)({attribute:"readonly",mode:"boolean"})],qr.prototype,"readOnly",void 0);f([(0,s.attr)({attribute:"disabled",mode:"boolean"})],qr.prototype,"disabled",void 0);f([s.attr],qr.prototype,"name",void 0);f([s.attr],qr.prototype,"value",void 0);f([s.attr],qr.prototype,"orientation",void 0);f([s.observable],qr.prototype,"childItems",void 0);f([s.observable],qr.prototype,"slottedRadioButtons",void 0);const Ur=(e,t)=>(0,s.html)` - -`;class jr extends Fe{}class _r extends(Gs(jr)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}class Kr extends _r{constructor(){super();this.initialValue="on";this.keypressHandler=e=>{switch(e.key){case ze.gG:if(!this.checked&&!this.readOnly){this.checked=true}return}return true};this.proxy.setAttribute("type","radio")}readOnlyChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.readOnly=this.readOnly}}defaultCheckedChanged(){var e;if(this.$fastController.isConnected&&!this.dirtyChecked){if(!this.isInsideRadioGroup()){this.checked=(e=this.defaultChecked)!==null&&e!==void 0?e:false;this.dirtyChecked=false}}}connectedCallback(){var e,t;super.connectedCallback();this.validate();if(((e=this.parentElement)===null||e===void 0?void 0:e.getAttribute("role"))!=="radiogroup"&&this.getAttribute("tabindex")===null){if(!this.disabled){this.setAttribute("tabindex","0")}}if(this.checkedAttribute){if(!this.dirtyChecked){if(!this.isInsideRadioGroup()){this.checked=(t=this.defaultChecked)!==null&&t!==void 0?t:false;this.dirtyChecked=false}}}}isInsideRadioGroup(){const e=this.closest("[role=radiogroup]");return e!==null}clickHandler(e){if(!this.disabled&&!this.readOnly&&!this.checked){this.checked=true}}}f([(0,s.attr)({attribute:"readonly",mode:"boolean"})],Kr.prototype,"readOnly",void 0);f([s.observable],Kr.prototype,"name",void 0);f([s.observable],Kr.prototype,"defaultSlottedNodes",void 0);class Wr extends Fe{constructor(){super(...arguments);this.framesPerSecond=60;this.updatingItems=false;this.speed=600;this.easing="ease-in-out";this.flippersHiddenFromAT=false;this.scrolling=false;this.resizeDetector=null}get frameTime(){return 1e3/this.framesPerSecond}scrollingChanged(e,t){if(this.scrollContainer){const e=this.scrolling==true?"scrollstart":"scrollend";this.$emit(e,this.scrollContainer.scrollLeft)}}get isRtl(){return this.scrollItems.length>1&&this.scrollItems[0].offsetLeft>this.scrollItems[1].offsetLeft}connectedCallback(){super.connectedCallback();this.initializeResizeDetector()}disconnectedCallback(){this.disconnectResizeDetector();super.disconnectedCallback()}scrollItemsChanged(e,t){if(t&&!this.updatingItems){s.DOM.queueUpdate((()=>this.setStops()))}}disconnectResizeDetector(){if(this.resizeDetector){this.resizeDetector.disconnect();this.resizeDetector=null}}initializeResizeDetector(){this.disconnectResizeDetector();this.resizeDetector=new window.ResizeObserver(this.resized.bind(this));this.resizeDetector.observe(this)}updateScrollStops(){this.updatingItems=true;const e=this.scrollItems.reduce(((e,t)=>{if(t instanceof HTMLSlotElement){return e.concat(t.assignedElements())}e.push(t);return e}),[]);this.scrollItems=e;this.updatingItems=false}setStops(){this.updateScrollStops();const{scrollContainer:e}=this;const{scrollLeft:t}=e;const{width:i,left:s}=e.getBoundingClientRect();this.width=i;let o=0;let n=this.scrollItems.map(((e,i)=>{const{left:n,width:r}=e.getBoundingClientRect();const a=Math.round(n+t-s);const l=Math.round(a+r);if(this.isRtl){return-l}o=l;return i===0?0:a})).concat(o);n=this.fixScrollMisalign(n);n.sort(((e,t)=>Math.abs(e)-Math.abs(t)));this.scrollStops=n;this.setFlippers()}validateStops(e=true){const t=()=>!!this.scrollStops.find((e=>e>0));if(!t()&&e){this.setStops()}return t()}fixScrollMisalign(e){if(this.isRtl&&e.some((e=>e>0))){e.sort(((e,t)=>t-e));const t=e[0];e=e.map((e=>e-t))}return e}setFlippers(){var e,t;const i=this.scrollContainer.scrollLeft;(e=this.previousFlipperContainer)===null||e===void 0?void 0:e.classList.toggle("disabled",i===0);if(this.scrollStops){const e=Math.abs(this.scrollStops[this.scrollStops.length-1]);(t=this.nextFlipperContainer)===null||t===void 0?void 0:t.classList.toggle("disabled",this.validateStops(false)&&Math.abs(i)+this.width>=e)}}scrollInView(e,t=0,i){var s;if(typeof e!=="number"&&e){e=this.scrollItems.findIndex((t=>t===e||t.contains(e)))}if(e!==undefined){i=i!==null&&i!==void 0?i:t;const{scrollContainer:o,scrollStops:n,scrollItems:r}=this;const{scrollLeft:a}=this.scrollContainer;const{width:l}=o.getBoundingClientRect();const d=n[e];const{width:h}=r[e].getBoundingClientRect();const c=d+h;const u=a+t>d;if(u||a+l-iu?t-e:e-t));const o=(s=e.find((e=>u?e+tc)))!==null&&s!==void 0?s:0;this.scrollToPosition(o)}}}keyupHandler(e){const t=e.key;switch(t){case"ArrowLeft":this.scrollToPrevious();break;case"ArrowRight":this.scrollToNext();break}}scrollToPrevious(){this.validateStops();const e=this.scrollContainer.scrollLeft;const t=this.scrollStops.findIndex(((t,i)=>t>=e&&(this.isRtl||i===this.scrollStops.length-1||this.scrollStops[i+1]>e)));const i=Math.abs(this.scrollStops[t+1]);let s=this.scrollStops.findIndex((e=>Math.abs(e)+this.width>i));if(s>=t||s===-1){s=t>0?t-1:0}this.scrollToPosition(this.scrollStops[s],e)}scrollToNext(){this.validateStops();const e=this.scrollContainer.scrollLeft;const t=this.scrollStops.findIndex((t=>Math.abs(t)>=Math.abs(e)));const i=this.scrollStops.findIndex((t=>Math.abs(e)+this.width<=Math.abs(t)));let s=t;if(i>t+2){s=i-2}else if(t{if(t&&t.target!==t.currentTarget){return}this.content.style.setProperty("transition-duration","0s");this.content.style.removeProperty("transform");this.scrollContainer.style.setProperty("scroll-behavior","auto");this.scrollContainer.scrollLeft=e;this.setFlippers();this.content.removeEventListener("transitionend",n);this.scrolling=false};if(o===0){n();return}this.content.addEventListener("transitionend",n);const r=this.scrollContainer.scrollWidth-this.scrollContainer.clientWidth;let a=this.scrollContainer.scrollLeft-Math.min(e,r);if(this.isRtl){a=this.scrollContainer.scrollLeft+Math.min(Math.abs(e),r)}this.content.style.setProperty("transition-property","transform");this.content.style.setProperty("transition-timing-function",this.easing);this.content.style.setProperty("transform",`translateX(${a}px)`)}resized(){if(this.resizeTimeout){this.resizeTimeout=clearTimeout(this.resizeTimeout)}this.resizeTimeout=setTimeout((()=>{this.width=this.scrollContainer.offsetWidth;this.setFlippers()}),this.frameTime)}scrolled(){if(this.scrollTimeout){this.scrollTimeout=clearTimeout(this.scrollTimeout)}this.scrollTimeout=setTimeout((()=>{this.setFlippers()}),this.frameTime)}}f([(0,s.attr)({converter:s.nullableNumberConverter})],Wr.prototype,"speed",void 0);f([s.attr],Wr.prototype,"duration",void 0);f([s.attr],Wr.prototype,"easing",void 0);f([(0,s.attr)({attribute:"flippers-hidden-from-at",converter:s.booleanConverter})],Wr.prototype,"flippersHiddenFromAT",void 0);f([s.observable],Wr.prototype,"scrolling",void 0);f([s.observable],Wr.prototype,"scrollItems",void 0);f([(0,s.attr)({attribute:"view"})],Wr.prototype,"view",void 0);const Gr=(e,t)=>{var i,o;return(0,s.html)` - -`};function Xr(e,t,i){return e.nodeType!==Node.TEXT_NODE?true:typeof e.nodeValue==="string"&&!!e.nodeValue.trim().length}const Yr=(e,t)=>(0,s.html)` - -`;class Qr extends Fe{}class Zr extends(Ws(Qr)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}class Jr extends Zr{readOnlyChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.readOnly=this.readOnly;this.validate()}}autofocusChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.autofocus=this.autofocus;this.validate()}}placeholderChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.placeholder=this.placeholder}}listChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.setAttribute("list",this.list);this.validate()}}maxlengthChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.maxLength=this.maxlength;this.validate()}}minlengthChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.minLength=this.minlength;this.validate()}}patternChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.pattern=this.pattern;this.validate()}}sizeChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.size=this.size}}spellcheckChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.spellcheck=this.spellcheck}}connectedCallback(){super.connectedCallback();this.validate();if(this.autofocus){s.DOM.queueUpdate((()=>{this.focus()}))}}validate(){super.validate(this.control)}handleTextInput(){this.value=this.control.value}handleClearInput(){this.value="";this.control.focus();this.handleChange()}handleChange(){this.$emit("change")}}f([(0,s.attr)({attribute:"readonly",mode:"boolean"})],Jr.prototype,"readOnly",void 0);f([(0,s.attr)({mode:"boolean"})],Jr.prototype,"autofocus",void 0);f([s.attr],Jr.prototype,"placeholder",void 0);f([s.attr],Jr.prototype,"list",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Jr.prototype,"maxlength",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Jr.prototype,"minlength",void 0);f([s.attr],Jr.prototype,"pattern",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Jr.prototype,"size",void 0);f([(0,s.attr)({mode:"boolean"})],Jr.prototype,"spellcheck",void 0);f([s.observable],Jr.prototype,"defaultSlottedNodes",void 0);class ea{}Pe(ea,je);Pe(Jr,o,ea);class ta extends sr{}class ia extends(Ws(ta)){constructor(){super(...arguments);this.proxy=document.createElement("select")}}class sa extends ia{constructor(){super(...arguments);this.open=false;this.forcedPosition=false;this.listboxId=Io("listbox-");this.maxHeight=0}openChanged(e,t){if(!this.collapsible){return}if(this.open){this.ariaControls=this.listboxId;this.ariaExpanded="true";this.setPositioning();this.focusAndScrollOptionIntoView();this.indexWhenOpened=this.selectedIndex;s.DOM.queueUpdate((()=>this.focus()));return}this.ariaControls="";this.ariaExpanded="false"}get collapsible(){return!(this.multiple||typeof this.size==="number")}get value(){s.Observable.track(this,"value");return this._value}set value(e){var t,i,o,n,r,a,l;const d=`${this._value}`;if((t=this._options)===null||t===void 0?void 0:t.length){const t=this._options.findIndex((t=>t.value===e));const s=(o=(i=this._options[this.selectedIndex])===null||i===void 0?void 0:i.value)!==null&&o!==void 0?o:null;const d=(r=(n=this._options[t])===null||n===void 0?void 0:n.value)!==null&&r!==void 0?r:null;if(t===-1||s!==d){e="";this.selectedIndex=t}e=(l=(a=this.firstSelectedOption)===null||a===void 0?void 0:a.value)!==null&&l!==void 0?l:e}if(d!==e){this._value=e;super.valueChanged(d,e);s.Observable.notify(this,"value");this.updateDisplayValue()}}updateValue(e){var t,i;if(this.$fastController.isConnected){this.value=(i=(t=this.firstSelectedOption)===null||t===void 0?void 0:t.value)!==null&&i!==void 0?i:""}if(e){this.$emit("input");this.$emit("change",this,{bubbles:true,composed:undefined})}}selectedIndexChanged(e,t){super.selectedIndexChanged(e,t);this.updateValue()}positionChanged(e,t){this.positionAttribute=t;this.setPositioning()}setPositioning(){const e=this.getBoundingClientRect();const t=window.innerHeight;const i=t-e.bottom;this.position=this.forcedPosition?this.positionAttribute:e.top>i?Go.above:Go.below;this.positionAttribute=this.forcedPosition?this.positionAttribute:this.position;this.maxHeight=this.position===Go.above?~~e.top:~~i}get displayValue(){var e,t;s.Observable.track(this,"displayValue");return(t=(e=this.firstSelectedOption)===null||e===void 0?void 0:e.text)!==null&&t!==void 0?t:""}disabledChanged(e,t){if(super.disabledChanged){super.disabledChanged(e,t)}this.ariaDisabled=this.disabled?"true":"false"}formResetCallback(){this.setProxyOptions();super.setDefaultSelectedOption();if(this.selectedIndex===-1){this.selectedIndex=0}}clickHandler(e){if(this.disabled){return}if(this.open){const t=e.target.closest(`option,[role=option]`);if(t&&t.disabled){return}}super.clickHandler(e);this.open=this.collapsible&&!this.open;if(!this.open&&this.indexWhenOpened!==this.selectedIndex){this.updateValue(true)}return true}focusoutHandler(e){var t;super.focusoutHandler(e);if(!this.open){return true}const i=e.relatedTarget;if(this.isSameNode(i)){this.focus();return}if(!((t=this.options)===null||t===void 0?void 0:t.includes(i))){this.open=false;if(this.indexWhenOpened!==this.selectedIndex){this.updateValue(true)}}}handleChange(e,t){super.handleChange(e,t);if(t==="value"){this.updateValue()}}slottedOptionsChanged(e,t){this.options.forEach((e=>{const t=s.Observable.getNotifier(e);t.unsubscribe(this,"value")}));super.slottedOptionsChanged(e,t);this.options.forEach((e=>{const t=s.Observable.getNotifier(e);t.subscribe(this,"value")}));this.setProxyOptions();this.updateValue()}mousedownHandler(e){var t;if(e.offsetX>=0&&e.offsetX<=((t=this.listbox)===null||t===void 0?void 0:t.scrollWidth)){return super.mousedownHandler(e)}return this.collapsible}multipleChanged(e,t){super.multipleChanged(e,t);if(this.proxy){this.proxy.multiple=t}}selectedOptionsChanged(e,t){var i;super.selectedOptionsChanged(e,t);(i=this.options)===null||i===void 0?void 0:i.forEach(((e,t)=>{var i;const s=(i=this.proxy)===null||i===void 0?void 0:i.options.item(t);if(s){s.selected=e.selected}}))}setDefaultSelectedOption(){var e;const t=(e=this.options)!==null&&e!==void 0?e:Array.from(this.children).filter(Ko.slottedOptionFilter);const i=t===null||t===void 0?void 0:t.findIndex((e=>e.hasAttribute("selected")||e.selected||e.value===this.value));if(i!==-1){this.selectedIndex=i;return}this.selectedIndex=0}setProxyOptions(){if(this.proxy instanceof HTMLSelectElement&&this.options){this.proxy.options.length=0;this.options.forEach((e=>{const t=e.proxy||(e instanceof HTMLOptionElement?e.cloneNode():null);if(t){this.proxy.options.add(t)}}))}}keydownHandler(e){super.keydownHandler(e);const t=e.key||e.key.charCodeAt(0);switch(t){case ze.gG:{e.preventDefault();if(this.collapsible&&this.typeAheadExpired){this.open=!this.open}break}case ze.Tg:case ze.FM:{e.preventDefault();break}case ze.Mm:{e.preventDefault();this.open=!this.open;break}case ze.F9:{if(this.collapsible&&this.open){e.preventDefault();this.open=false}break}case ze.J9:{if(this.collapsible&&this.open){e.preventDefault();this.open=false}return true}}if(!this.open&&this.indexWhenOpened!==this.selectedIndex){this.updateValue(true);this.indexWhenOpened=this.selectedIndex}return!(t===ze.HX||t===ze.I5)}connectedCallback(){super.connectedCallback();this.forcedPosition=!!this.positionAttribute;this.addEventListener("contentchange",this.updateDisplayValue)}disconnectedCallback(){this.removeEventListener("contentchange",this.updateDisplayValue);super.disconnectedCallback()}sizeChanged(e,t){super.sizeChanged(e,t);if(this.proxy){this.proxy.size=t}}updateDisplayValue(){if(this.collapsible){s.Observable.notify(this,"displayValue")}}}f([(0,s.attr)({attribute:"open",mode:"boolean"})],sa.prototype,"open",void 0);f([s.volatile],sa.prototype,"collapsible",null);f([s.observable],sa.prototype,"control",void 0);f([(0,s.attr)({attribute:"position"})],sa.prototype,"positionAttribute",void 0);f([s.observable],sa.prototype,"position",void 0);f([s.observable],sa.prototype,"maxHeight",void 0);class oa{}f([s.observable],oa.prototype,"ariaControls",void 0);Pe(oa,Wo);Pe(sa,o,oa);const na=(e,t)=>(0,s.html)` - -`;const ra=(e,t)=>(0,s.html)` - -`;class aa extends Fe{constructor(){super(...arguments);this.shape="rect"}}f([s.attr],aa.prototype,"fill",void 0);f([s.attr],aa.prototype,"shape",void 0);f([s.attr],aa.prototype,"pattern",void 0);f([(0,s.attr)({mode:"boolean"})],aa.prototype,"shimmer",void 0);const la=(e,t)=>(0,s.html)` - -`;function da(e,t,i,s){let o=(0,Ne.AB)(0,1,(e-t)/(i-t));if(s===Ge.O.rtl){o=1-o}return o}const ha={min:0,max:0,direction:Ge.O.ltr,orientation:Yn.t.horizontal,disabled:false};class ca extends Fe{constructor(){super(...arguments);this.hideMark=false;this.sliderDirection=Ge.O.ltr;this.getSliderConfiguration=()=>{if(!this.isSliderConfig(this.parentNode)){this.sliderDirection=ha.direction||Ge.O.ltr;this.sliderOrientation=ha.orientation||Yn.t.horizontal;this.sliderMaxPosition=ha.max;this.sliderMinPosition=ha.min}else{const e=this.parentNode;const{min:t,max:i,direction:s,orientation:o,disabled:n}=e;if(n!==undefined){this.disabled=n}this.sliderDirection=s||Ge.O.ltr;this.sliderOrientation=o||Yn.t.horizontal;this.sliderMaxPosition=i;this.sliderMinPosition=t}};this.positionAsStyle=()=>{const e=this.sliderDirection?this.sliderDirection:Ge.O.ltr;const t=da(Number(this.position),Number(this.sliderMinPosition),Number(this.sliderMaxPosition));let i=Math.round((1-t)*100);let s=Math.round(t*100);if(Number.isNaN(s)&&Number.isNaN(i)){i=50;s=50}if(this.sliderOrientation===Yn.t.horizontal){return e===Ge.O.rtl?`right: ${s}%; left: ${i}%;`:`left: ${s}%; right: ${i}%;`}else{return`top: ${s}%; bottom: ${i}%;`}}}positionChanged(){this.positionStyle=this.positionAsStyle()}sliderOrientationChanged(){void 0}connectedCallback(){super.connectedCallback();this.getSliderConfiguration();this.positionStyle=this.positionAsStyle();this.notifier=s.Observable.getNotifier(this.parentNode);this.notifier.subscribe(this,"orientation");this.notifier.subscribe(this,"direction");this.notifier.subscribe(this,"max");this.notifier.subscribe(this,"min")}disconnectedCallback(){super.disconnectedCallback();this.notifier.unsubscribe(this,"orientation");this.notifier.unsubscribe(this,"direction");this.notifier.unsubscribe(this,"max");this.notifier.unsubscribe(this,"min")}handleChange(e,t){switch(t){case"direction":this.sliderDirection=e.direction;break;case"orientation":this.sliderOrientation=e.orientation;break;case"max":this.sliderMaxPosition=e.max;break;case"min":this.sliderMinPosition=e.min;break;default:break}this.positionStyle=this.positionAsStyle()}isSliderConfig(e){return e.max!==undefined&&e.min!==undefined}}f([s.observable],ca.prototype,"positionStyle",void 0);f([s.attr],ca.prototype,"position",void 0);f([(0,s.attr)({attribute:"hide-mark",mode:"boolean"})],ca.prototype,"hideMark",void 0);f([(0,s.attr)({attribute:"disabled",mode:"boolean"})],ca.prototype,"disabled",void 0);f([s.observable],ca.prototype,"sliderOrientation",void 0);f([s.observable],ca.prototype,"sliderMinPosition",void 0);f([s.observable],ca.prototype,"sliderMaxPosition",void 0);f([s.observable],ca.prototype,"sliderDirection",void 0);const ua=(e,t)=>(0,s.html)` - -`;class pa extends Fe{}class fa extends(Ws(pa)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}const ma={singleValue:"single-value"};class va extends fa{constructor(){super(...arguments);this.direction=Ge.O.ltr;this.isDragging=false;this.trackWidth=0;this.trackMinWidth=0;this.trackHeight=0;this.trackLeft=0;this.trackMinHeight=0;this.valueTextFormatter=()=>null;this.min=0;this.max=10;this.step=1;this.orientation=Yn.t.horizontal;this.mode=ma.singleValue;this.keypressHandler=e=>{if(this.readOnly){return}if(e.key===ze.Tg){e.preventDefault();this.value=`${this.min}`}else if(e.key===ze.FM){e.preventDefault();this.value=`${this.max}`}else if(!e.shiftKey){switch(e.key){case ze.bb:case ze.I5:e.preventDefault();this.increment();break;case ze.kT:case ze.HX:e.preventDefault();this.decrement();break}}};this.setupTrackConstraints=()=>{const e=this.track.getBoundingClientRect();this.trackWidth=this.track.clientWidth;this.trackMinWidth=this.track.clientLeft;this.trackHeight=e.bottom;this.trackMinHeight=e.top;this.trackLeft=this.getBoundingClientRect().left;if(this.trackWidth===0){this.trackWidth=1}};this.setupListeners=(e=false)=>{const t=`${e?"remove":"add"}EventListener`;this[t]("keydown",this.keypressHandler);this[t]("mousedown",this.handleMouseDown);this.thumb[t]("mousedown",this.handleThumbMouseDown,{passive:true});this.thumb[t]("touchstart",this.handleThumbMouseDown,{passive:true});if(e){this.handleMouseDown(null);this.handleThumbMouseDown(null)}};this.initialValue="";this.handleThumbMouseDown=e=>{if(e){if(this.readOnly||this.disabled||e.defaultPrevented){return}e.target.focus()}const t=`${e!==null?"add":"remove"}EventListener`;window[t]("mouseup",this.handleWindowMouseUp);window[t]("mousemove",this.handleMouseMove,{passive:true});window[t]("touchmove",this.handleMouseMove,{passive:true});window[t]("touchend",this.handleWindowMouseUp);this.isDragging=e!==null};this.handleMouseMove=e=>{if(this.readOnly||this.disabled||e.defaultPrevented){return}const t=window.TouchEvent&&e instanceof TouchEvent?e.touches[0]:e;const i=this.orientation===Yn.t.horizontal?t.pageX-document.documentElement.scrollLeft-this.trackLeft:t.pageY-document.documentElement.scrollTop;this.value=`${this.calculateNewValue(i)}`};this.calculateNewValue=e=>{const t=da(e,this.orientation===Yn.t.horizontal?this.trackMinWidth:this.trackMinHeight,this.orientation===Yn.t.horizontal?this.trackWidth:this.trackHeight,this.direction);const i=(this.max-this.min)*t+this.min;return this.convertToConstrainedValue(i)};this.handleWindowMouseUp=e=>{this.stopDragging()};this.stopDragging=()=>{this.isDragging=false;this.handleMouseDown(null);this.handleThumbMouseDown(null)};this.handleMouseDown=e=>{const t=`${e!==null?"add":"remove"}EventListener`;if(e===null||!this.disabled&&!this.readOnly){window[t]("mouseup",this.handleWindowMouseUp);window.document[t]("mouseleave",this.handleWindowMouseUp);window[t]("mousemove",this.handleMouseMove);if(e){e.preventDefault();this.setupTrackConstraints();e.target.focus();const t=this.orientation===Yn.t.horizontal?e.pageX-document.documentElement.scrollLeft-this.trackLeft:e.pageY-document.documentElement.scrollTop;this.value=`${this.calculateNewValue(t)}`}}};this.convertToConstrainedValue=e=>{if(isNaN(e)){e=this.min}let t=e-this.min;const i=Math.round(t/this.step);const s=t-i*(this.stepMultiplier*this.step)/this.stepMultiplier;t=s>=Number(this.step)/2?t-s+Number(this.step):t-s;return t+this.min}}readOnlyChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.readOnly=this.readOnly}}get valueAsNumber(){return parseFloat(super.value)}set valueAsNumber(e){this.value=e.toString()}valueChanged(e,t){super.valueChanged(e,t);if(this.$fastController.isConnected){this.setThumbPositionForOrientation(this.direction)}this.$emit("change")}minChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.min=`${this.min}`}this.validate()}maxChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.max=`${this.max}`}this.validate()}stepChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.step=`${this.step}`}this.updateStepMultiplier();this.validate()}orientationChanged(){if(this.$fastController.isConnected){this.setThumbPositionForOrientation(this.direction)}}connectedCallback(){super.connectedCallback();this.proxy.setAttribute("type","range");this.direction=Is(this);this.updateStepMultiplier();this.setupTrackConstraints();this.setupListeners();this.setupDefaultValue();this.setThumbPositionForOrientation(this.direction)}disconnectedCallback(){this.setupListeners(true)}increment(){const e=this.direction!==Ge.O.rtl&&this.orientation!==Yn.t.vertical?Number(this.value)+Number(this.step):Number(this.value)-Number(this.step);const t=this.convertToConstrainedValue(e);const i=tNumber(this.min)?`${t}`:`${this.min}`;this.value=i}setThumbPositionForOrientation(e){const t=da(Number(this.value),Number(this.min),Number(this.max),e);const i=(1-t)*100;if(this.orientation===Yn.t.horizontal){this.position=this.isDragging?`right: ${i}%; transition: none;`:`right: ${i}%; transition: all 0.2s ease;`}else{this.position=this.isDragging?`bottom: ${i}%; transition: none;`:`bottom: ${i}%; transition: all 0.2s ease;`}}updateStepMultiplier(){const e=this.step+"";const t=!!(this.step%1)?e.length-e.indexOf(".")-1:0;this.stepMultiplier=Math.pow(10,t)}get midpoint(){return`${this.convertToConstrainedValue((this.max+this.min)/2)}`}setupDefaultValue(){if(typeof this.value==="string"){if(this.value.length===0){this.initialValue=this.midpoint}else{const e=parseFloat(this.value);if(!Number.isNaN(e)&&(ethis.max)){this.value=this.midpoint}}}}}f([(0,s.attr)({attribute:"readonly",mode:"boolean"})],va.prototype,"readOnly",void 0);f([s.observable],va.prototype,"direction",void 0);f([s.observable],va.prototype,"isDragging",void 0);f([s.observable],va.prototype,"position",void 0);f([s.observable],va.prototype,"trackWidth",void 0);f([s.observable],va.prototype,"trackMinWidth",void 0);f([s.observable],va.prototype,"trackHeight",void 0);f([s.observable],va.prototype,"trackLeft",void 0);f([s.observable],va.prototype,"trackMinHeight",void 0);f([s.observable],va.prototype,"valueTextFormatter",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],va.prototype,"min",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],va.prototype,"max",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],va.prototype,"step",void 0);f([s.attr],va.prototype,"orientation",void 0);f([s.attr],va.prototype,"mode",void 0);const ba=(e,t)=>(0,s.html)` - -`;class ga extends Fe{}class ya extends(Gs(ga)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}class Ca extends ya{constructor(){super();this.initialValue="on";this.keypressHandler=e=>{if(this.readOnly){return}switch(e.key){case ze.Mm:case ze.gG:this.checked=!this.checked;break}};this.clickHandler=e=>{if(!this.disabled&&!this.readOnly){this.checked=!this.checked}};this.proxy.setAttribute("type","checkbox")}readOnlyChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.readOnly=this.readOnly}this.readOnly?this.classList.add("readonly"):this.classList.remove("readonly")}checkedChanged(e,t){super.checkedChanged(e,t);this.checked?this.classList.add("checked"):this.classList.remove("checked")}}f([(0,s.attr)({attribute:"readonly",mode:"boolean"})],Ca.prototype,"readOnly",void 0);f([s.observable],Ca.prototype,"defaultSlottedNodes",void 0);const xa=(e,t)=>(0,s.html)` - -`;class wa extends Fe{}const $a=(e,t)=>(0,s.html)` - -`;class Ia extends Fe{}f([(0,s.attr)({mode:"boolean"})],Ia.prototype,"disabled",void 0);const ka=(e,t)=>(0,s.html)` - -`;const Oa={vertical:"vertical",horizontal:"horizontal"};class Ta extends Fe{constructor(){super(...arguments);this.orientation=Oa.horizontal;this.activeindicator=true;this.showActiveIndicator=true;this.prevActiveTabIndex=0;this.activeTabIndex=0;this.ticking=false;this.change=()=>{this.$emit("change",this.activetab)};this.isDisabledElement=e=>e.getAttribute("aria-disabled")==="true";this.isHiddenElement=e=>e.hasAttribute("hidden");this.isFocusableElement=e=>!this.isDisabledElement(e)&&!this.isHiddenElement(e);this.setTabs=()=>{const e="gridColumn";const t="gridRow";const i=this.isHorizontal()?e:t;this.activeTabIndex=this.getActiveIndex();this.showActiveIndicator=false;this.tabs.forEach(((s,o)=>{if(s.slot==="tab"){const e=this.activeTabIndex===o&&this.isFocusableElement(s);if(this.activeindicator&&this.isFocusableElement(s)){this.showActiveIndicator=true}const t=this.tabIds[o];const i=this.tabpanelIds[o];s.setAttribute("id",t);s.setAttribute("aria-selected",e?"true":"false");s.setAttribute("aria-controls",i);s.addEventListener("click",this.handleTabClick);s.addEventListener("keydown",this.handleTabKeyDown);s.setAttribute("tabindex",e?"0":"-1");if(e){this.activetab=s;this.activeid=t}}s.style[e]="";s.style[t]="";s.style[i]=`${o+1}`;!this.isHorizontal()?s.classList.add("vertical"):s.classList.remove("vertical")}))};this.setTabPanels=()=>{this.tabpanels.forEach(((e,t)=>{const i=this.tabIds[t];const s=this.tabpanelIds[t];e.setAttribute("id",s);e.setAttribute("aria-labelledby",i);this.activeTabIndex!==t?e.setAttribute("hidden",""):e.removeAttribute("hidden")}))};this.handleTabClick=e=>{const t=e.currentTarget;if(t.nodeType===1&&this.isFocusableElement(t)){this.prevActiveTabIndex=this.activeTabIndex;this.activeTabIndex=this.tabs.indexOf(t);this.setComponent()}};this.handleTabKeyDown=e=>{if(this.isHorizontal()){switch(e.key){case ze.kT:e.preventDefault();this.adjustBackward(e);break;case ze.bb:e.preventDefault();this.adjustForward(e);break}}else{switch(e.key){case ze.I5:e.preventDefault();this.adjustBackward(e);break;case ze.HX:e.preventDefault();this.adjustForward(e);break}}switch(e.key){case ze.Tg:e.preventDefault();this.adjust(-this.activeTabIndex);break;case ze.FM:e.preventDefault();this.adjust(this.tabs.length-this.activeTabIndex-1);break}};this.adjustForward=e=>{const t=this.tabs;let i=0;i=this.activetab?t.indexOf(this.activetab)+1:1;if(i===t.length){i=0}while(i1){if(this.isFocusableElement(t[i])){this.moveToTabByIndex(t,i);break}else if(this.activetab&&i===t.indexOf(this.activetab)){break}else if(i+1>=t.length){i=0}else{i+=1}}};this.adjustBackward=e=>{const t=this.tabs;let i=0;i=this.activetab?t.indexOf(this.activetab)-1:0;i=i<0?t.length-1:i;while(i>=0&&t.length>1){if(this.isFocusableElement(t[i])){this.moveToTabByIndex(t,i);break}else if(i-1<0){i=t.length-1}else{i-=1}}};this.moveToTabByIndex=(e,t)=>{const i=e[t];this.activetab=i;this.prevActiveTabIndex=this.activeTabIndex;this.activeTabIndex=t;i.focus();this.setComponent()}}orientationChanged(){if(this.$fastController.isConnected){this.setTabs();this.setTabPanels();this.handleActiveIndicatorPosition()}}activeidChanged(e,t){if(this.$fastController.isConnected&&this.tabs.length<=this.tabpanels.length){this.prevActiveTabIndex=this.tabs.findIndex((t=>t.id===e));this.setTabs();this.setTabPanels();this.handleActiveIndicatorPosition()}}tabsChanged(){if(this.$fastController.isConnected&&this.tabs.length<=this.tabpanels.length){this.tabIds=this.getTabIds();this.tabpanelIds=this.getTabPanelIds();this.setTabs();this.setTabPanels();this.handleActiveIndicatorPosition()}}tabpanelsChanged(){if(this.$fastController.isConnected&&this.tabpanels.length<=this.tabs.length){this.tabIds=this.getTabIds();this.tabpanelIds=this.getTabPanelIds();this.setTabs();this.setTabPanels();this.handleActiveIndicatorPosition()}}getActiveIndex(){const e=this.activeid;if(e!==undefined){return this.tabIds.indexOf(this.activeid)===-1?0:this.tabIds.indexOf(this.activeid)}else{return 0}}getTabIds(){return this.tabs.map((e=>{var t;return(t=e.getAttribute("id"))!==null&&t!==void 0?t:`tab-${Io()}`}))}getTabPanelIds(){return this.tabpanels.map((e=>{var t;return(t=e.getAttribute("id"))!==null&&t!==void 0?t:`panel-${Io()}`}))}setComponent(){if(this.activeTabIndex!==this.prevActiveTabIndex){this.activeid=this.tabIds[this.activeTabIndex];this.focusTab();this.change()}}isHorizontal(){return this.orientation===Oa.horizontal}handleActiveIndicatorPosition(){if(this.showActiveIndicator&&this.activeindicator&&this.activeTabIndex!==this.prevActiveTabIndex){if(this.ticking){this.ticking=false}else{this.ticking=true;this.animateActiveIndicator()}}}animateActiveIndicator(){this.ticking=true;const e=this.isHorizontal()?"gridColumn":"gridRow";const t=this.isHorizontal()?"translateX":"translateY";const i=this.isHorizontal()?"offsetLeft":"offsetTop";const s=this.activeIndicatorRef[i];this.activeIndicatorRef.style[e]=`${this.activeTabIndex+1}`;const o=this.activeIndicatorRef[i];this.activeIndicatorRef.style[e]=`${this.prevActiveTabIndex+1}`;const n=o-s;this.activeIndicatorRef.style.transform=`${t}(${n}px)`;this.activeIndicatorRef.classList.add("activeIndicatorTransition");this.activeIndicatorRef.addEventListener("transitionend",(()=>{this.ticking=false;this.activeIndicatorRef.style[e]=`${this.activeTabIndex+1}`;this.activeIndicatorRef.style.transform=`${t}(0px)`;this.activeIndicatorRef.classList.remove("activeIndicatorTransition")}))}adjust(e){const t=this.tabs.filter((e=>this.isFocusableElement(e)));const i=t.indexOf(this.activetab);const s=(0,Ne.AB)(0,t.length-1,i+e);const o=this.tabs.indexOf(t[s]);if(o>-1){this.moveToTabByIndex(this.tabs,o)}}focusTab(){this.tabs[this.activeTabIndex].focus()}connectedCallback(){super.connectedCallback();this.tabIds=this.getTabIds();this.tabpanelIds=this.getTabPanelIds();this.activeTabIndex=this.getActiveIndex()}}f([s.attr],Ta.prototype,"orientation",void 0);f([s.attr],Ta.prototype,"activeid",void 0);f([s.observable],Ta.prototype,"tabs",void 0);f([s.observable],Ta.prototype,"tabpanels",void 0);f([(0,s.attr)({mode:"boolean"})],Ta.prototype,"activeindicator",void 0);f([s.observable],Ta.prototype,"activeIndicatorRef",void 0);f([s.observable],Ta.prototype,"showActiveIndicator",void 0);Pe(Ta,o);const Ea={none:"none",both:"both",horizontal:"horizontal",vertical:"vertical"};const Ra=(e,t)=>(0,s.html)` - -`;class Da extends Fe{}class Sa extends(Ws(Da)){constructor(){super(...arguments);this.proxy=document.createElement("textarea")}}class Aa extends Sa{constructor(){super(...arguments);this.resize=Ea.none;this.cols=20;this.handleTextInput=()=>{this.value=this.control.value}}readOnlyChanged(){if(this.proxy instanceof HTMLTextAreaElement){this.proxy.readOnly=this.readOnly}}autofocusChanged(){if(this.proxy instanceof HTMLTextAreaElement){this.proxy.autofocus=this.autofocus}}listChanged(){if(this.proxy instanceof HTMLTextAreaElement){this.proxy.setAttribute("list",this.list)}}maxlengthChanged(){if(this.proxy instanceof HTMLTextAreaElement){this.proxy.maxLength=this.maxlength}}minlengthChanged(){if(this.proxy instanceof HTMLTextAreaElement){this.proxy.minLength=this.minlength}}spellcheckChanged(){if(this.proxy instanceof HTMLTextAreaElement){this.proxy.spellcheck=this.spellcheck}}select(){this.control.select();this.$emit("select")}handleChange(){this.$emit("change")}validate(){super.validate(this.control)}}f([(0,s.attr)({mode:"boolean"})],Aa.prototype,"readOnly",void 0);f([s.attr],Aa.prototype,"resize",void 0);f([(0,s.attr)({mode:"boolean"})],Aa.prototype,"autofocus",void 0);f([(0,s.attr)({attribute:"form"})],Aa.prototype,"formId",void 0);f([s.attr],Aa.prototype,"list",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Aa.prototype,"maxlength",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter})],Aa.prototype,"minlength",void 0);f([s.attr],Aa.prototype,"name",void 0);f([s.attr],Aa.prototype,"placeholder",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter,mode:"fromView"})],Aa.prototype,"cols",void 0);f([(0,s.attr)({converter:s.nullableNumberConverter,mode:"fromView"})],Aa.prototype,"rows",void 0);f([(0,s.attr)({mode:"boolean"})],Aa.prototype,"spellcheck",void 0);f([s.observable],Aa.prototype,"defaultSlottedNodes",void 0);Pe(Aa,Fr);const Fa=(e,t)=>(0,s.html)` - -`;const La=(e,t)=>(0,s.html)` - -`;const Ma=Object.freeze({[ze.Is.ArrowUp]:{[Yn.t.vertical]:-1},[ze.Is.ArrowDown]:{[Yn.t.vertical]:1},[ze.Is.ArrowLeft]:{[Yn.t.horizontal]:{[Ge.O.ltr]:-1,[Ge.O.rtl]:1}},[ze.Is.ArrowRight]:{[Yn.t.horizontal]:{[Ge.O.ltr]:1,[Ge.O.rtl]:-1}}});class Pa extends Fe{constructor(){super(...arguments);this._activeIndex=0;this.direction=Ge.O.ltr;this.orientation=Yn.t.horizontal}get activeIndex(){s.Observable.track(this,"activeIndex");return this._activeIndex}set activeIndex(e){if(this.$fastController.isConnected){this._activeIndex=(0,Ne.AB)(0,this.focusableElements.length-1,e);s.Observable.notify(this,"activeIndex")}}slottedItemsChanged(){if(this.$fastController.isConnected){this.reduceFocusableElements()}}mouseDownHandler(e){var t;const i=(t=this.focusableElements)===null||t===void 0?void 0:t.findIndex((t=>t.contains(e.target)));if(i>-1&&this.activeIndex!==i){this.setFocusedElement(i)}return true}childItemsChanged(e,t){if(this.$fastController.isConnected){this.reduceFocusableElements()}}connectedCallback(){super.connectedCallback();this.direction=Is(this)}focusinHandler(e){const t=e.relatedTarget;if(!t||this.contains(t)){return}this.setFocusedElement()}getDirectionalIncrementer(e){var t,i,s,o,n;return(n=(s=(i=(t=Ma[e])===null||t===void 0?void 0:t[this.orientation])===null||i===void 0?void 0:i[this.direction])!==null&&s!==void 0?s:(o=Ma[e])===null||o===void 0?void 0:o[this.orientation])!==null&&n!==void 0?n:0}keydownHandler(e){const t=e.key;if(!(t in ze.Is)||e.defaultPrevented||e.shiftKey){return true}const i=this.getDirectionalIncrementer(t);if(!i){return!e.target.closest("[role=radiogroup]")}const s=this.activeIndex+i;if(this.focusableElements[s]){e.preventDefault()}this.setFocusedElement(s);return true}get allSlottedItems(){return[...this.start.assignedElements(),...this.slottedItems,...this.end.assignedElements()]}reduceFocusableElements(){var e;const t=(e=this.focusableElements)===null||e===void 0?void 0:e[this.activeIndex];this.focusableElements=this.allSlottedItems.reduce(Pa.reduceFocusableItems,[]);const i=this.focusableElements.indexOf(t);this.activeIndex=Math.max(0,i);this.setFocusableElements()}setFocusedElement(e=this.activeIndex){var t;this.activeIndex=e;this.setFocusableElements();(t=this.focusableElements[this.activeIndex])===null||t===void 0?void 0:t.focus()}static reduceFocusableItems(e,t){var i,s,o,n;const r=t.getAttribute("role")==="radio";const a=(s=(i=t.$fastController)===null||i===void 0?void 0:i.definition.shadowOptions)===null||s===void 0?void 0:s.delegatesFocus;const l=Array.from((n=(o=t.shadowRoot)===null||o===void 0?void 0:o.querySelectorAll("*"))!==null&&n!==void 0?n:[]).some((e=>(0,Bn.tp)(e)));if(!t.hasAttribute("disabled")&&!t.hasAttribute("hidden")&&((0,Bn.tp)(t)||r||a||l)){e.push(t);return e}if(t.childElementCount){return e.concat(Array.from(t.children).reduce(Pa.reduceFocusableItems,[]))}return e}setFocusableElements(){if(this.$fastController.isConnected&&this.focusableElements.length>0){this.focusableElements.forEach(((e,t)=>{e.tabIndex=this.activeIndex===t?0:-1}))}}}f([s.observable],Pa.prototype,"direction",void 0);f([s.attr],Pa.prototype,"orientation",void 0);f([s.observable],Pa.prototype,"slottedItems",void 0);f([s.observable],Pa.prototype,"slottedLabel",void 0);f([s.observable],Pa.prototype,"childItems",void 0);class Ha{}f([(0,s.attr)({attribute:"aria-labelledby"})],Ha.prototype,"ariaLabelledby",void 0);f([(0,s.attr)({attribute:"aria-label"})],Ha.prototype,"ariaLabel",void 0);Pe(Ha,je);Pe(Pa,o,Ha);const Va=(e,t)=>(0,s.html)` - ${(0,s.when)((e=>e.tooltipVisible),(0,s.html)` - <${e.tagFor(Os)} - fixed-placement="true" - auto-update-mode="${e=>e.autoUpdateMode}" - vertical-positioning-mode="${e=>e.verticalPositioningMode}" - vertical-default-position="${e=>e.verticalDefaultPosition}" - vertical-inset="${e=>e.verticalInset}" - vertical-scaling="${e=>e.verticalScaling}" - horizontal-positioning-mode="${e=>e.horizontalPositioningMode}" - horizontal-default-position="${e=>e.horizontalDefaultPosition}" - horizontal-scaling="${e=>e.horizontalScaling}" - horizontal-inset="${e=>e.horizontalInset}" - vertical-viewport-lock="${e=>e.horizontalViewportLock}" - horizontal-viewport-lock="${e=>e.verticalViewportLock}" - dir="${e=>e.currentDirection}" - ${(0,s.ref)("region")} - > - - - `)} - `;const za={top:"top",right:"right",bottom:"bottom",left:"left",start:"start",end:"end",topLeft:"top-left",topRight:"top-right",bottomLeft:"bottom-left",bottomRight:"bottom-right",topStart:"top-start",topEnd:"top-end",bottomStart:"bottom-start",bottomEnd:"bottom-end"};class Na extends Fe{constructor(){super(...arguments);this.anchor="";this.delay=300;this.autoUpdateMode="anchor";this.anchorElement=null;this.viewportElement=null;this.verticalPositioningMode="dynamic";this.horizontalPositioningMode="dynamic";this.horizontalInset="false";this.verticalInset="false";this.horizontalScaling="content";this.verticalScaling="content";this.verticalDefaultPosition=undefined;this.horizontalDefaultPosition=undefined;this.tooltipVisible=false;this.currentDirection=Ge.O.ltr;this.showDelayTimer=null;this.hideDelayTimer=null;this.isAnchorHoveredFocused=false;this.isRegionHovered=false;this.handlePositionChange=e=>{this.classList.toggle("top",this.region.verticalPosition==="start");this.classList.toggle("bottom",this.region.verticalPosition==="end");this.classList.toggle("inset-top",this.region.verticalPosition==="insetStart");this.classList.toggle("inset-bottom",this.region.verticalPosition==="insetEnd");this.classList.toggle("center-vertical",this.region.verticalPosition==="center");this.classList.toggle("left",this.region.horizontalPosition==="start");this.classList.toggle("right",this.region.horizontalPosition==="end");this.classList.toggle("inset-left",this.region.horizontalPosition==="insetStart");this.classList.toggle("inset-right",this.region.horizontalPosition==="insetEnd");this.classList.toggle("center-horizontal",this.region.horizontalPosition==="center")};this.handleRegionMouseOver=e=>{this.isRegionHovered=true};this.handleRegionMouseOut=e=>{this.isRegionHovered=false;this.startHideDelayTimer()};this.handleAnchorMouseOver=e=>{if(this.tooltipVisible){this.isAnchorHoveredFocused=true;return}this.startShowDelayTimer()};this.handleAnchorMouseOut=e=>{this.isAnchorHoveredFocused=false;this.clearShowDelayTimer();this.startHideDelayTimer()};this.handleAnchorFocusIn=e=>{this.startShowDelayTimer()};this.handleAnchorFocusOut=e=>{this.isAnchorHoveredFocused=false;this.clearShowDelayTimer();this.startHideDelayTimer()};this.startHideDelayTimer=()=>{this.clearHideDelayTimer();if(!this.tooltipVisible){return}this.hideDelayTimer=window.setTimeout((()=>{this.updateTooltipVisibility()}),60)};this.clearHideDelayTimer=()=>{if(this.hideDelayTimer!==null){clearTimeout(this.hideDelayTimer);this.hideDelayTimer=null}};this.startShowDelayTimer=()=>{if(this.isAnchorHoveredFocused){return}if(this.delay>1){if(this.showDelayTimer===null)this.showDelayTimer=window.setTimeout((()=>{this.startHover()}),this.delay);return}this.startHover()};this.startHover=()=>{this.isAnchorHoveredFocused=true;this.updateTooltipVisibility()};this.clearShowDelayTimer=()=>{if(this.showDelayTimer!==null){clearTimeout(this.showDelayTimer);this.showDelayTimer=null}};this.getAnchor=()=>{const e=this.getRootNode();if(e instanceof ShadowRoot){return e.getElementById(this.anchor)}return document.getElementById(this.anchor)};this.handleDocumentKeydown=e=>{if(!e.defaultPrevented&&this.tooltipVisible){switch(e.key){case ze.F9:this.isAnchorHoveredFocused=false;this.updateTooltipVisibility();this.$emit("dismiss");break}}};this.updateTooltipVisibility=()=>{if(this.visible===false){this.hideTooltip()}else if(this.visible===true){this.showTooltip();return}else{if(this.isAnchorHoveredFocused||this.isRegionHovered){this.showTooltip();return}this.hideTooltip()}};this.showTooltip=()=>{if(this.tooltipVisible){return}this.currentDirection=Is(this);this.tooltipVisible=true;document.addEventListener("keydown",this.handleDocumentKeydown);s.DOM.queueUpdate(this.setRegionProps)};this.hideTooltip=()=>{if(!this.tooltipVisible){return}this.clearHideDelayTimer();if(this.region!==null&&this.region!==undefined){this.region.removeEventListener("positionchange",this.handlePositionChange);this.region.viewportElement=null;this.region.anchorElement=null;this.region.removeEventListener("mouseover",this.handleRegionMouseOver);this.region.removeEventListener("mouseout",this.handleRegionMouseOut)}document.removeEventListener("keydown",this.handleDocumentKeydown);this.tooltipVisible=false};this.setRegionProps=()=>{if(!this.tooltipVisible){return}this.region.viewportElement=this.viewportElement;this.region.anchorElement=this.anchorElement;this.region.addEventListener("positionchange",this.handlePositionChange);this.region.addEventListener("mouseover",this.handleRegionMouseOver,{passive:true});this.region.addEventListener("mouseout",this.handleRegionMouseOut,{passive:true})}}visibleChanged(){if(this.$fastController.isConnected){this.updateTooltipVisibility();this.updateLayout()}}anchorChanged(){if(this.$fastController.isConnected){this.anchorElement=this.getAnchor()}}positionChanged(){if(this.$fastController.isConnected){this.updateLayout()}}anchorElementChanged(e){if(this.$fastController.isConnected){if(e!==null&&e!==undefined){e.removeEventListener("mouseover",this.handleAnchorMouseOver);e.removeEventListener("mouseout",this.handleAnchorMouseOut);e.removeEventListener("focusin",this.handleAnchorFocusIn);e.removeEventListener("focusout",this.handleAnchorFocusOut)}if(this.anchorElement!==null&&this.anchorElement!==undefined){this.anchorElement.addEventListener("mouseover",this.handleAnchorMouseOver,{passive:true});this.anchorElement.addEventListener("mouseout",this.handleAnchorMouseOut,{passive:true});this.anchorElement.addEventListener("focusin",this.handleAnchorFocusIn,{passive:true});this.anchorElement.addEventListener("focusout",this.handleAnchorFocusOut,{passive:true});const e=this.anchorElement.id;if(this.anchorElement.parentElement!==null){this.anchorElement.parentElement.querySelectorAll(":hover").forEach((t=>{if(t.id===e){this.startShowDelayTimer()}}))}}if(this.region!==null&&this.region!==undefined&&this.tooltipVisible){this.region.anchorElement=this.anchorElement}this.updateLayout()}}viewportElementChanged(){if(this.region!==null&&this.region!==undefined){this.region.viewportElement=this.viewportElement}this.updateLayout()}connectedCallback(){super.connectedCallback();this.anchorElement=this.getAnchor();this.updateTooltipVisibility()}disconnectedCallback(){this.hideTooltip();this.clearShowDelayTimer();this.clearHideDelayTimer();super.disconnectedCallback()}updateLayout(){this.verticalPositioningMode="locktodefault";this.horizontalPositioningMode="locktodefault";switch(this.position){case za.top:case za.bottom:this.verticalDefaultPosition=this.position;this.horizontalDefaultPosition="center";break;case za.right:case za.left:case za.start:case za.end:this.verticalDefaultPosition="center";this.horizontalDefaultPosition=this.position;break;case za.topLeft:this.verticalDefaultPosition="top";this.horizontalDefaultPosition="left";break;case za.topRight:this.verticalDefaultPosition="top";this.horizontalDefaultPosition="right";break;case za.bottomLeft:this.verticalDefaultPosition="bottom";this.horizontalDefaultPosition="left";break;case za.bottomRight:this.verticalDefaultPosition="bottom";this.horizontalDefaultPosition="right";break;case za.topStart:this.verticalDefaultPosition="top";this.horizontalDefaultPosition="start";break;case za.topEnd:this.verticalDefaultPosition="top";this.horizontalDefaultPosition="end";break;case za.bottomStart:this.verticalDefaultPosition="bottom";this.horizontalDefaultPosition="start";break;case za.bottomEnd:this.verticalDefaultPosition="bottom";this.horizontalDefaultPosition="end";break;default:this.verticalPositioningMode="dynamic";this.horizontalPositioningMode="dynamic";this.verticalDefaultPosition=void 0;this.horizontalDefaultPosition="center";break}}}f([(0,s.attr)({mode:"boolean"})],Na.prototype,"visible",void 0);f([s.attr],Na.prototype,"anchor",void 0);f([s.attr],Na.prototype,"delay",void 0);f([s.attr],Na.prototype,"position",void 0);f([(0,s.attr)({attribute:"auto-update-mode"})],Na.prototype,"autoUpdateMode",void 0);f([(0,s.attr)({attribute:"horizontal-viewport-lock"})],Na.prototype,"horizontalViewportLock",void 0);f([(0,s.attr)({attribute:"vertical-viewport-lock"})],Na.prototype,"verticalViewportLock",void 0);f([s.observable],Na.prototype,"anchorElement",void 0);f([s.observable],Na.prototype,"viewportElement",void 0);f([s.observable],Na.prototype,"verticalPositioningMode",void 0);f([s.observable],Na.prototype,"horizontalPositioningMode",void 0);f([s.observable],Na.prototype,"horizontalInset",void 0);f([s.observable],Na.prototype,"verticalInset",void 0);f([s.observable],Na.prototype,"horizontalScaling",void 0);f([s.observable],Na.prototype,"verticalScaling",void 0);f([s.observable],Na.prototype,"verticalDefaultPosition",void 0);f([s.observable],Na.prototype,"horizontalDefaultPosition",void 0);f([s.observable],Na.prototype,"tooltipVisible",void 0);f([s.observable],Na.prototype,"currentDirection",void 0);const Ba=(e,t)=>(0,s.html)` - -`;function qa(e){return Ao(e)&&e.getAttribute("role")==="treeitem"}class Ua extends Fe{constructor(){super(...arguments);this.expanded=false;this.focusable=false;this.isNestedItem=()=>qa(this.parentElement);this.handleExpandCollapseButtonClick=e=>{if(!this.disabled&&!e.defaultPrevented){this.expanded=!this.expanded}};this.handleFocus=e=>{this.setAttribute("tabindex","0")};this.handleBlur=e=>{this.setAttribute("tabindex","-1")}}expandedChanged(){if(this.$fastController.isConnected){this.$emit("expanded-change",this)}}selectedChanged(){if(this.$fastController.isConnected){this.$emit("selected-change",this)}}itemsChanged(e,t){if(this.$fastController.isConnected){this.items.forEach((e=>{if(qa(e)){e.nested=true}}))}}static focusItem(e){e.focusable=true;e.focus()}childItemLength(){const e=this.childItems.filter((e=>qa(e)));return e?e.length:0}}f([(0,s.attr)({mode:"boolean"})],Ua.prototype,"expanded",void 0);f([(0,s.attr)({mode:"boolean"})],Ua.prototype,"selected",void 0);f([(0,s.attr)({mode:"boolean"})],Ua.prototype,"disabled",void 0);f([s.observable],Ua.prototype,"focusable",void 0);f([s.observable],Ua.prototype,"childItems",void 0);f([s.observable],Ua.prototype,"items",void 0);f([s.observable],Ua.prototype,"nested",void 0);f([s.observable],Ua.prototype,"renderCollapsedChildren",void 0);Pe(Ua,o);const ja=(e,t)=>(0,s.html)` - -`;class _a extends Fe{constructor(){super(...arguments);this.currentFocused=null;this.handleFocus=e=>{if(this.slottedTreeItems.length<1){return}if(e.target===this){if(this.currentFocused===null){this.currentFocused=this.getValidFocusableItem()}if(this.currentFocused!==null){Ua.focusItem(this.currentFocused)}return}if(this.contains(e.target)){this.setAttribute("tabindex","-1");this.currentFocused=e.target}};this.handleBlur=e=>{if(e.target instanceof HTMLElement&&(e.relatedTarget===null||!this.contains(e.relatedTarget))){this.setAttribute("tabindex","0")}};this.handleKeyDown=e=>{if(e.defaultPrevented){return}if(this.slottedTreeItems.length<1){return true}const t=this.getVisibleNodes();switch(e.key){case ze.Tg:if(t.length){Ua.focusItem(t[0])}return;case ze.FM:if(t.length){Ua.focusItem(t[t.length-1])}return;case ze.kT:if(e.target&&this.isFocusableElement(e.target)){const t=e.target;if(t instanceof Ua&&t.childItemLength()>0&&t.expanded){t.expanded=false}else if(t instanceof Ua&&t.parentElement instanceof Ua){Ua.focusItem(t.parentElement)}}return false;case ze.bb:if(e.target&&this.isFocusableElement(e.target)){const t=e.target;if(t instanceof Ua&&t.childItemLength()>0&&!t.expanded){t.expanded=true}else if(t instanceof Ua&&t.childItemLength()>0){this.focusNextNode(1,e.target)}}return;case ze.HX:if(e.target&&this.isFocusableElement(e.target)){this.focusNextNode(1,e.target)}return;case ze.I5:if(e.target&&this.isFocusableElement(e.target)){this.focusNextNode(-1,e.target)}return;case ze.Mm:this.handleClick(e);return}return true};this.handleSelectedChange=e=>{if(e.defaultPrevented){return}if(!(e.target instanceof Element)||!qa(e.target)){return true}const t=e.target;if(t.selected){if(this.currentSelected&&this.currentSelected!==t){this.currentSelected.selected=false}this.currentSelected=t}else if(!t.selected&&this.currentSelected===t){this.currentSelected=null}return};this.setItems=()=>{const e=this.treeView.querySelector("[aria-selected='true']");this.currentSelected=e;if(this.currentFocused===null||!this.contains(this.currentFocused)){this.currentFocused=this.getValidFocusableItem()}this.nested=this.checkForNestedItems();const t=this.getVisibleNodes();t.forEach((e=>{if(qa(e)){e.nested=this.nested}}))};this.isFocusableElement=e=>qa(e);this.isSelectedElement=e=>e.selected}slottedTreeItemsChanged(){if(this.$fastController.isConnected){this.setItems()}}connectedCallback(){super.connectedCallback();this.setAttribute("tabindex","0");s.DOM.queueUpdate((()=>{this.setItems()}))}handleClick(e){if(e.defaultPrevented){return}if(!(e.target instanceof Element)||!qa(e.target)){return true}const t=e.target;if(!t.disabled){t.selected=!t.selected}return}focusNextNode(e,t){const i=this.getVisibleNodes();if(!i){return}const s=i[i.indexOf(t)+e];if(Ao(s)){Ua.focusItem(s)}}getValidFocusableItem(){const e=this.getVisibleNodes();let t=e.findIndex(this.isSelectedElement);if(t===-1){t=e.findIndex(this.isFocusableElement)}if(t!==-1){return e[t]}return null}checkForNestedItems(){return this.slottedTreeItems.some((e=>qa(e)&&e.querySelector("[role='treeitem']")))}getVisibleNodes(){return Fo(this,"[role='treeitem']")||[]}}f([(0,s.attr)({attribute:"render-collapsed-nodes"})],_a.prototype,"renderCollapsedNodes",void 0);f([s.observable],_a.prototype,"currentSelected",void 0);f([s.observable],_a.prototype,"slottedTreeItems",void 0);class Ka{constructor(e){this.listenerCache=new WeakMap;this.query=e}bind(e){const{query:t}=this;const i=this.constructListener(e);i.bind(t)();t.addListener(i);this.listenerCache.set(e,i)}unbind(e){const t=this.listenerCache.get(e);if(t){this.query.removeListener(t);this.listenerCache.delete(e)}}}class Wa extends Ka{constructor(e,t){super(e);this.styles=t}static with(e){return t=>new Wa(e,t)}constructListener(e){let t=false;const i=this.styles;return function s(){const{matches:o}=this;if(o&&!t){e.$fastController.addStyles(i);t=o}else if(!o&&t){e.$fastController.removeStyles(i);t=o}}}unbind(e){super.unbind(e);e.$fastController.removeStyles(this.styles)}}const Ga=Wa.with(window.matchMedia("(forced-colors)"));const Xa=Wa.with(window.matchMedia("(prefers-color-scheme: dark)"));const Ya=Wa.with(window.matchMedia("(prefers-color-scheme: light)"));class Qa{constructor(e,t,i){this.propertyName=e;this.value=t;this.styles=i}bind(e){s.Observable.getNotifier(e).subscribe(this,this.propertyName);this.handleChange(e,this.propertyName)}unbind(e){s.Observable.getNotifier(e).unsubscribe(this,this.propertyName);e.$fastController.removeStyles(this.styles)}handleChange(e,t){if(e[t]===this.value){e.$fastController.addStyles(this.styles)}else{e.$fastController.removeStyles(this.styles)}}}const Za="not-allowed";const Ja=`:host([hidden]){display:none}`;function el(e){return`${Ja}:host{display:${e}}`}const tl=Ho()?"focus-visible":"focus"}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/232.5419cbec68e3fd0cf431.js.LICENSE.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/232.5419cbec68e3fd0cf431.js.LICENSE.txt deleted file mode 100644 index c18ab1d93b2fc57c416607c6e61c93c115208722..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/232.5419cbec68e3fd0cf431.js.LICENSE.txt +++ /dev/null @@ -1,14 +0,0 @@ -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2353.ab70488f07a7c0a7a3fd.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2353.ab70488f07a7c0a7a3fd.js deleted file mode 100644 index d9a9ad265dfa1b076a377ba6be1f4faaf8e29677..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2353.ab70488f07a7c0a7a3fd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2353,4981],{98128:function(t,e){var r=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.Attributes=e.INHERIT=void 0;e.INHERIT="_inherit_";var i=function(){function t(t,e){this.global=e;this.defaults=Object.create(e);this.inherited=Object.create(this.defaults);this.attributes=Object.create(this.inherited);Object.assign(this.defaults,t)}t.prototype.set=function(t,e){this.attributes[t]=e};t.prototype.setList=function(t){Object.assign(this.attributes,t)};t.prototype.get=function(t){var r=this.attributes[t];if(r===e.INHERIT){r=this.global[t]}return r};t.prototype.getExplicit=function(t){if(!this.attributes.hasOwnProperty(t)){return undefined}return this.attributes[t]};t.prototype.getList=function(){var t,e;var i=[];for(var n=0;n=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,O=[],o;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)O.push(n.value)}catch(E){o={error:E}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(o)throw o.error}}return O};Object.defineProperty(e,"__esModule",{value:true});e.XMLNode=e.TextNode=e.AbstractMmlEmptyNode=e.AbstractMmlBaseNode=e.AbstractMmlLayoutNode=e.AbstractMmlTokenNode=e.AbstractMmlNode=e.indentAttributes=e.TEXCLASSNAMES=e.TEXCLASS=void 0;var E=r(98128);var s=r(84465);e.TEXCLASS={ORD:0,OP:1,BIN:2,REL:3,OPEN:4,CLOSE:5,PUNCT:6,INNER:7,VCENTER:8,NONE:-1};e.TEXCLASSNAMES=["ORD","OP","BIN","REL","OPEN","CLOSE","PUNCT","INNER","VCENTER"];var a=["","thinmathspace","mediummathspace","thickmathspace"];var M=[[0,-1,2,3,0,0,0,1],[-1,-1,0,3,0,0,0,1],[2,2,0,0,2,0,0,2],[3,3,0,0,3,0,0,3],[0,0,0,0,0,0,0,0],[0,-1,2,3,0,0,0,1],[1,1,0,1,1,1,1,1],[1,-1,2,3,1,0,1,1]];e.indentAttributes=["indentalign","indentalignfirst","indentshift","indentshiftfirst"];var l=function(t){i(r,t);function r(e,r,i){if(r===void 0){r={}}if(i===void 0){i=[]}var n=t.call(this,e)||this;n.prevClass=null;n.prevLevel=null;n.texclass=null;if(n.arity<0){n.childNodes=[e.create("inferredMrow")];n.childNodes[0].parent=n}n.setChildren(i);n.attributes=new E.Attributes(e.getNodeClass(n.kind).defaults,e.getNodeClass("math").defaults);n.attributes.setList(r);return n}r.prototype.copy=function(t){var e,r,i,o;if(t===void 0){t=false}var E=this.factory.create(this.kind);E.properties=n({},this.properties);if(this.attributes){var s=this.attributes.getAllAttributes();try{for(var a=O(Object.keys(s)),M=a.next();!M.done;M=a.next()){var l=M.value;if(l!=="id"||t){E.attributes.set(l,s[l])}}}catch(R){e={error:R}}finally{try{if(M&&!M.done&&(r=a.return))r.call(a)}finally{if(e)throw e.error}}}if(this.childNodes&&this.childNodes.length){var u=this.childNodes;if(u.length===1&&u[0].isInferred){u=u[0].childNodes}try{for(var c=O(u),f=c.next();!f.done;f=c.next()){var L=f.value;if(L){E.appendChild(L.copy())}else{E.childNodes.push(null)}}}catch(p){i={error:p}}finally{try{if(f&&!f.done&&(o=c.return))o.call(c)}finally{if(i)throw i.error}}}return E};Object.defineProperty(r.prototype,"texClass",{get:function(){return this.texclass},set:function(t){this.texclass=t},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"isToken",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"isEmbellished",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"isSpacelike",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"linebreakContainer",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"hasNewLine",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"arity",{get:function(){return Infinity},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"isInferred",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"Parent",{get:function(){var t=this.parent;while(t&&t.notParent){t=t.Parent}return t},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"notParent",{get:function(){return false},enumerable:false,configurable:true});r.prototype.setChildren=function(e){if(this.arity<0){return this.childNodes[0].setChildren(e)}return t.prototype.setChildren.call(this,e)};r.prototype.appendChild=function(e){var r,i;var n=this;if(this.arity<0){this.childNodes[0].appendChild(e);return e}if(e.isInferred){if(this.arity===Infinity){e.childNodes.forEach((function(e){return t.prototype.appendChild.call(n,e)}));return e}var o=e;e=this.factory.create("mrow");e.setChildren(o.childNodes);e.attributes=o.attributes;try{for(var E=O(o.getPropertyNames()),s=E.next();!s.done;s=E.next()){var a=s.value;e.setProperty(a,o.getProperty(a))}}catch(M){r={error:M}}finally{try{if(s&&!s.done&&(i=E.return))i.call(E)}finally{if(r)throw r.error}}}return t.prototype.appendChild.call(this,e)};r.prototype.replaceChild=function(e,r){if(this.arity<0){this.childNodes[0].replaceChild(e,r);return e}return t.prototype.replaceChild.call(this,e,r)};r.prototype.core=function(){return this};r.prototype.coreMO=function(){return this};r.prototype.coreIndex=function(){return 0};r.prototype.childPosition=function(){var t,e;var r=this;var i=r.parent;while(i&&i.notParent){r=i;i=i.parent}if(i){var n=0;try{for(var o=O(i.childNodes),E=o.next();!E.done;E=o.next()){var s=E.value;if(s===r){return n}n++}}catch(a){t={error:a}}finally{try{if(E&&!E.done&&(e=o.return))e.call(o)}finally{if(t)throw t.error}}}return null};r.prototype.setTeXclass=function(t){this.getPrevClass(t);return this.texClass!=null?this:t};r.prototype.updateTeXclass=function(t){if(t){this.prevClass=t.prevClass;this.prevLevel=t.prevLevel;t.prevClass=t.prevLevel=null;this.texClass=t.texClass}};r.prototype.getPrevClass=function(t){if(t){this.prevClass=t.texClass;this.prevLevel=t.attributes.get("scriptlevel")}};r.prototype.texSpacing=function(){var t=this.prevClass!=null?this.prevClass:e.TEXCLASS.NONE;var r=this.texClass||e.TEXCLASS.ORD;if(t===e.TEXCLASS.NONE||r===e.TEXCLASS.NONE){return""}if(t===e.TEXCLASS.VCENTER){t=e.TEXCLASS.ORD}if(r===e.TEXCLASS.VCENTER){r=e.TEXCLASS.ORD}var i=M[t][r];if((this.prevLevel>0||this.attributes.get("scriptlevel")>0)&&i>=0){return""}return a[Math.abs(i)]};r.prototype.hasSpacingAttributes=function(){return this.isEmbellished&&this.coreMO().hasSpacingAttributes()};r.prototype.setInheritedAttributes=function(t,e,i,n){var E,s;if(t===void 0){t={}}if(e===void 0){e=false}if(i===void 0){i=0}if(n===void 0){n=false}var a=this.attributes.getAllDefaults();try{for(var M=O(Object.keys(t)),l=M.next();!l.done;l=M.next()){var u=l.value;if(a.hasOwnProperty(u)||r.alwaysInherit.hasOwnProperty(u)){var c=o(t[u],2),f=c[0],L=c[1];var R=(r.noInherit[f]||{})[this.kind]||{};if(!R[u]){this.attributes.setInherited(u,L)}}}}catch(C){E={error:C}}finally{try{if(l&&!l.done&&(s=M.return))s.call(M)}finally{if(E)throw E.error}}var p=this.attributes.getExplicit("displaystyle");if(p===undefined){this.attributes.setInherited("displaystyle",e)}var h=this.attributes.getExplicit("scriptlevel");if(h===undefined){this.attributes.setInherited("scriptlevel",i)}if(n){this.setProperty("texprimestyle",n)}var N=this.arity;if(N>=0&&N!==Infinity&&(N===1&&this.childNodes.length===0||N!==1&&this.childNodes.length!==N)){if(N=0&&e!==Infinity&&(e===1&&this.childNodes.length===0||e!==1&&this.childNodes.length!==e)){this.mError('Wrong number of children for "'+this.kind+'" node',t,true)}}this.verifyChildren(t)};r.prototype.verifyAttributes=function(t){var e,r;if(t["checkAttributes"]){var i=this.attributes;var n=[];try{for(var o=O(i.getExplicitNames()),E=o.next();!E.done;E=o.next()){var s=E.value;if(s.substr(0,5)!=="data-"&&i.getDefault(s)===undefined&&!s.match(/^(?:class|style|id|(?:xlink:)?href)$/)){n.push(s)}}}catch(a){e={error:a}}finally{try{if(E&&!E.done&&(r=o.return))r.call(o)}finally{if(e)throw e.error}}if(n.length){this.mError("Unknown attributes for "+this.kind+" node: "+n.join(", "),t)}}};r.prototype.verifyChildren=function(t){var e,r;try{for(var i=O(this.childNodes),n=i.next();!n.done;n=i.next()){var o=n.value;o.verifyTree(t)}}catch(E){e={error:E}}finally{try{if(n&&!n.done&&(r=i.return))r.call(i)}finally{if(e)throw e.error}}};r.prototype.mError=function(t,e,r){if(r===void 0){r=false}if(this.parent&&this.parent.isKind("merror")){return null}var i=this.factory.create("merror");i.attributes.set("data-mjx-message",t);if(e["fullErrors"]||r){var n=this.factory.create("mtext");var O=this.factory.create("text");O.setText(e["fullErrors"]?t:this.kind);n.appendChild(O);i.appendChild(n);this.parent.replaceChild(i,this)}else{this.parent.replaceChild(i,this);i.appendChild(this)}return i};r.defaults={mathbackground:E.INHERIT,mathcolor:E.INHERIT,mathsize:E.INHERIT,dir:E.INHERIT};r.noInherit={mstyle:{mpadded:{width:true,height:true,depth:true,lspace:true,voffset:true},mtable:{width:true,height:true,depth:true,align:true}},maligngroup:{mrow:{groupalign:true},mtable:{groupalign:true}}};r.alwaysInherit={scriptminsize:true,scriptsizemultiplier:true};r.verifyDefaults={checkArity:true,checkAttributes:false,fullErrors:false,fixMmultiscripts:true,fixMtables:true};return r}(s.AbstractNode);e.AbstractMmlNode=l;var u=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"isToken",{get:function(){return true},enumerable:false,configurable:true});e.prototype.getText=function(){var t,e;var r="";try{for(var i=O(this.childNodes),n=i.next();!n.done;n=i.next()){var o=n.value;if(o instanceof R){r+=o.getText()}}}catch(E){t={error:E}}finally{try{if(n&&!n.done&&(e=i.return))e.call(i)}finally{if(t)throw t.error}}return r};e.prototype.setChildInheritedAttributes=function(t,e,r,i){var n,o;try{for(var E=O(this.childNodes),s=E.next();!s.done;s=E.next()){var a=s.value;if(a instanceof l){a.setInheritedAttributes(t,e,r,i)}}}catch(M){n={error:M}}finally{try{if(s&&!s.done&&(o=E.return))o.call(E)}finally{if(n)throw n.error}}};e.prototype.walkTree=function(t,e){var r,i;t(this,e);try{for(var n=O(this.childNodes),o=n.next();!o.done;o=n.next()){var E=o.value;if(E instanceof l){E.walkTree(t,e)}}}catch(s){r={error:s}}finally{try{if(o&&!o.done&&(i=n.return))i.call(n)}finally{if(r)throw r.error}}return e};e.defaults=n(n({},l.defaults),{mathvariant:"normal",mathsize:E.INHERIT});return e}(l);e.AbstractMmlTokenNode=u;var c=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"isSpacelike",{get:function(){return this.childNodes[0].isSpacelike},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"isEmbellished",{get:function(){return this.childNodes[0].isEmbellished},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"arity",{get:function(){return-1},enumerable:false,configurable:true});e.prototype.core=function(){return this.childNodes[0]};e.prototype.coreMO=function(){return this.childNodes[0].coreMO()};e.prototype.setTeXclass=function(t){t=this.childNodes[0].setTeXclass(t);this.updateTeXclass(this.childNodes[0]);return t};e.defaults=l.defaults;return e}(l);e.AbstractMmlLayoutNode=c;var f=function(t){i(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(r.prototype,"isEmbellished",{get:function(){return this.childNodes[0].isEmbellished},enumerable:false,configurable:true});r.prototype.core=function(){return this.childNodes[0]};r.prototype.coreMO=function(){return this.childNodes[0].coreMO()};r.prototype.setTeXclass=function(t){var r,i;this.getPrevClass(t);this.texClass=e.TEXCLASS.ORD;var n=this.childNodes[0];if(n){if(this.isEmbellished||n.isKind("mi")){t=n.setTeXclass(t);this.updateTeXclass(this.core())}else{n.setTeXclass(null);t=this}}else{t=this}try{for(var o=O(this.childNodes.slice(1)),E=o.next();!E.done;E=o.next()){var s=E.value;if(s){s.setTeXclass(null)}}}catch(a){r={error:a}}finally{try{if(E&&!E.done&&(i=o.return))i.call(o)}finally{if(r)throw r.error}}return t};r.defaults=l.defaults;return r}(l);e.AbstractMmlBaseNode=f;var L=function(t){i(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(r.prototype,"isToken",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"isEmbellished",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"isSpacelike",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"linebreakContainer",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"hasNewLine",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"arity",{get:function(){return 0},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"isInferred",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"notParent",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"Parent",{get:function(){return this.parent},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"texClass",{get:function(){return e.TEXCLASS.NONE},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"prevClass",{get:function(){return e.TEXCLASS.NONE},enumerable:false,configurable:true});Object.defineProperty(r.prototype,"prevLevel",{get:function(){return 0},enumerable:false,configurable:true});r.prototype.hasSpacingAttributes=function(){return false};Object.defineProperty(r.prototype,"attributes",{get:function(){return null},enumerable:false,configurable:true});r.prototype.core=function(){return this};r.prototype.coreMO=function(){return this};r.prototype.coreIndex=function(){return 0};r.prototype.childPosition=function(){return 0};r.prototype.setTeXclass=function(t){return t};r.prototype.texSpacing=function(){return""};r.prototype.setInheritedAttributes=function(t,e,r,i){};r.prototype.inheritAttributesFrom=function(t){};r.prototype.verifyTree=function(t){};r.prototype.mError=function(t,e,r){if(r===void 0){r=false}return null};return r}(s.AbstractEmptyNode);e.AbstractMmlEmptyNode=L;var R=function(t){i(e,t);function e(){var e=t!==null&&t.apply(this,arguments)||this;e.text="";return e}Object.defineProperty(e.prototype,"kind",{get:function(){return"text"},enumerable:false,configurable:true});e.prototype.getText=function(){return this.text};e.prototype.setText=function(t){this.text=t;return this};e.prototype.copy=function(){return this.factory.create(this.kind).setText(this.getText())};e.prototype.toString=function(){return this.text};return e}(L);e.TextNode=R;var p=function(t){i(e,t);function e(){var e=t!==null&&t.apply(this,arguments)||this;e.xml=null;e.adaptor=null;return e}Object.defineProperty(e.prototype,"kind",{get:function(){return"XML"},enumerable:false,configurable:true});e.prototype.getXML=function(){return this.xml};e.prototype.setXML=function(t,e){if(e===void 0){e=null}this.xml=t;this.adaptor=e;return this};e.prototype.getSerializedXML=function(){return this.adaptor.serializeXML(this.xml)};e.prototype.copy=function(){return this.factory.create(this.kind).setXML(this.adaptor.clone(this.xml))};e.prototype.toString=function(){return"XML data"};return e}(L);e.XMLNode=p},38669:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__assign||function(){n=Object.assign||function(t){for(var e,r=1,i=arguments.length;r0)&&!(n=i.next()).done)O.push(n.value)}catch(E){o={error:E}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(o)throw o.error}}return O};var o=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.MmlMo=void 0;var E=r(80747);var s=r(56893);var a=r(41278);var M=function(t){i(e,t);function e(){var e=t!==null&&t.apply(this,arguments)||this;e._texClass=null;e.lspace=5/18;e.rspace=5/18;return e}Object.defineProperty(e.prototype,"texClass",{get:function(){if(this._texClass===null){var t=this.getText();var e=O(this.handleExplicitForm(this.getForms()),3),r=e[0],i=e[1],n=e[2];var o=this.constructor.OPTABLE;var s=o[r][t]||o[i][t]||o[n][t];return s?s[2]:E.TEXCLASS.REL}return this._texClass},set:function(t){this._texClass=t},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"kind",{get:function(){return"mo"},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"isEmbellished",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"hasNewLine",{get:function(){return this.attributes.get("linebreak")==="newline"},enumerable:false,configurable:true});e.prototype.coreParent=function(){var t=this;var e=this;var r=this.factory.getNodeClass("math");while(e&&e.isEmbellished&&e.coreMO()===this&&!(e instanceof r)){t=e;e=e.parent}return t};e.prototype.coreText=function(t){if(!t){return""}if(t.isEmbellished){return t.coreMO().getText()}while(((t.isKind("mrow")||t.isKind("TeXAtom")&&t.texClass!==E.TEXCLASS.VCENTER||t.isKind("mstyle")||t.isKind("mphantom"))&&t.childNodes.length===1||t.isKind("munderover"))&&t.childNodes[0]){t=t.childNodes[0]}return t.isToken?t.getText():""};e.prototype.hasSpacingAttributes=function(){return this.attributes.isSet("lspace")||this.attributes.isSet("rspace")};Object.defineProperty(e.prototype,"isAccent",{get:function(){var t=false;var e=this.coreParent().parent;if(e){var r=e.isKind("mover")?e.childNodes[e.over].coreMO()?"accent":"":e.isKind("munder")?e.childNodes[e.under].coreMO()?"accentunder":"":e.isKind("munderover")?this===e.childNodes[e.over].coreMO()?"accent":this===e.childNodes[e.under].coreMO()?"accentunder":"":"";if(r){var i=e.attributes.getExplicit(r);t=i!==undefined?t:this.attributes.get("accent")}}return t},enumerable:false,configurable:true});e.prototype.setTeXclass=function(t){var e=this.attributes.getList("form","fence"),r=e.form,i=e.fence;if(this.getProperty("texClass")===undefined&&(this.attributes.isSet("lspace")||this.attributes.isSet("rspace"))){return null}if(i&&this.texClass===E.TEXCLASS.REL){if(r==="prefix"){this.texClass=E.TEXCLASS.OPEN}if(r==="postfix"){this.texClass=E.TEXCLASS.CLOSE}}return this.adjustTeXclass(t)};e.prototype.adjustTeXclass=function(t){var e=this.texClass;var r=this.prevClass;if(e===E.TEXCLASS.NONE){return t}if(t){if(t.getProperty("autoOP")&&(e===E.TEXCLASS.BIN||e===E.TEXCLASS.REL)){r=t.texClass=E.TEXCLASS.ORD}r=this.prevClass=t.texClass||E.TEXCLASS.ORD;this.prevLevel=this.attributes.getInherited("scriptlevel")}else{r=this.prevClass=E.TEXCLASS.NONE}if(e===E.TEXCLASS.BIN&&(r===E.TEXCLASS.NONE||r===E.TEXCLASS.BIN||r===E.TEXCLASS.OP||r===E.TEXCLASS.REL||r===E.TEXCLASS.OPEN||r===E.TEXCLASS.PUNCT)){this.texClass=E.TEXCLASS.ORD}else if(r===E.TEXCLASS.BIN&&(e===E.TEXCLASS.REL||e===E.TEXCLASS.CLOSE||e===E.TEXCLASS.PUNCT)){t.texClass=this.prevClass=E.TEXCLASS.ORD}else if(e===E.TEXCLASS.BIN){var i=this;var n=this.parent;while(n&&n.parent&&n.isEmbellished&&(n.childNodes.length===1||!n.isKind("mrow")&&n.core()===i)){i=n;n=n.parent}if(n.childNodes[n.childNodes.length-1]===i){this.texClass=E.TEXCLASS.ORD}}return this};e.prototype.setInheritedAttributes=function(e,r,i,n){if(e===void 0){e={}}if(r===void 0){r=false}if(i===void 0){i=0}if(n===void 0){n=false}t.prototype.setInheritedAttributes.call(this,e,r,i,n);var O=this.getText();this.checkOperatorTable(O);this.checkPseudoScripts(O);this.checkPrimes(O);this.checkMathAccent(O)};e.prototype.checkOperatorTable=function(t){var e,r;var i=O(this.handleExplicitForm(this.getForms()),3),n=i[0],E=i[1],a=i[2];this.attributes.setInherited("form",n);var M=this.constructor.OPTABLE;var l=M[n][t]||M[E][t]||M[a][t];if(l){if(this.getProperty("texClass")===undefined){this.texClass=l[2]}try{for(var u=o(Object.keys(l[3]||{})),c=u.next();!c.done;c=u.next()){var f=c.value;this.attributes.setInherited(f,l[3][f])}}catch(p){e={error:p}}finally{try{if(c&&!c.done&&(r=u.return))r.call(u)}finally{if(e)throw e.error}}this.lspace=(l[0]+1)/18;this.rspace=(l[1]+1)/18}else{var L=(0,s.getRange)(t);if(L){if(this.getProperty("texClass")===undefined){this.texClass=L[2]}var R=this.constructor.MMLSPACING[L[2]];this.lspace=(R[0]+1)/18;this.rspace=(R[1]+1)/18}}};e.prototype.getForms=function(){var t=this;var e=this.parent;var r=this.Parent;while(r&&r.isEmbellished){t=e;e=r.parent;r=r.Parent}if(e&&e.isKind("mrow")&&e.nonSpaceLength()!==1){if(e.firstNonSpace()===t){return["prefix","infix","postfix"]}if(e.lastNonSpace()===t){return["postfix","infix","prefix"]}}return["infix","prefix","postfix"]};e.prototype.handleExplicitForm=function(t){if(this.attributes.isSet("form")){var e=this.attributes.get("form");t=[e].concat(t.filter((function(t){return t!==e})))}return t};e.prototype.checkPseudoScripts=function(t){var e=this.constructor.pseudoScripts;if(!t.match(e))return;var r=this.coreParent().Parent;var i=!r||!(r.isKind("msubsup")&&!r.isKind("msub"));this.setProperty("pseudoscript",i);if(i){this.attributes.setInherited("lspace",0);this.attributes.setInherited("rspace",0)}};e.prototype.checkPrimes=function(t){var e=this.constructor.primes;if(!t.match(e))return;var r=this.constructor.remapPrimes;var i=(0,a.unicodeString)((0,a.unicodeChars)(t).map((function(t){return r[t]})));this.setProperty("primes",i)};e.prototype.checkMathAccent=function(t){var e=this.Parent;if(this.getProperty("mathaccent")!==undefined||!e||!e.isKind("munderover"))return;var r=e.childNodes[0];if(r.isEmbellished&&r.coreMO()===this)return;var i=this.constructor.mathaccents;if(t.match(i)){this.setProperty("mathaccent",true)}};e.defaults=n(n({},E.AbstractMmlTokenNode.defaults),{form:"infix",fence:false,separator:false,lspace:"thickmathspace",rspace:"thickmathspace",stretchy:false,symmetric:false,maxsize:"infinity",minsize:"0em",largeop:false,movablelimits:false,accent:false,linebreak:"auto",lineleading:"1ex",linebreakstyle:"before",indentalign:"auto",indentshift:"0",indenttarget:"",indentalignfirst:"indentalign",indentshiftfirst:"indentshift",indentalignlast:"indentalign",indentshiftlast:"indentshift"});e.MMLSPACING=s.MMLSPACING;e.OPTABLE=s.OPTABLE;e.pseudoScripts=new RegExp(["^[\"'*`","ª","°","²-´","¹","º","‘-‟","′-‷⁗","⁰ⁱ","⁴-ⁿ","₀-₎","]+$"].join(""));e.primes=new RegExp(["^[\"'`","‘-‟","]+$"].join(""));e.remapPrimes={34:8243,39:8242,96:8245,8216:8245,8217:8242,8218:8242,8219:8245,8220:8246,8221:8243,8222:8243,8223:8246};e.mathaccents=new RegExp(["^[","´́ˊ","`̀ˋ","¨̈","~̃˜","¯̄ˉ","˘̆","ˇ̌","^̂ˆ","→⃗","˙̇","˚̊","⃛","⃜","]$"].join(""));return e}(E.AbstractMmlTokenNode);e.MmlMo=M},56893:function(t,e,r){var i=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.OPTABLE=e.MMLSPACING=e.getRange=e.RANGES=e.MO=e.OPDEF=void 0;var n=r(80747);function O(t,e,r,i){if(r===void 0){r=n.TEXCLASS.BIN}if(i===void 0){i=null}return[t,e,r,i]}e.OPDEF=O;e.MO={ORD:O(0,0,n.TEXCLASS.ORD),ORD11:O(1,1,n.TEXCLASS.ORD),ORD21:O(2,1,n.TEXCLASS.ORD),ORD02:O(0,2,n.TEXCLASS.ORD),ORD55:O(5,5,n.TEXCLASS.ORD),NONE:O(0,0,n.TEXCLASS.NONE),OP:O(1,2,n.TEXCLASS.OP,{largeop:true,movablelimits:true,symmetric:true}),OPFIXED:O(1,2,n.TEXCLASS.OP,{largeop:true,movablelimits:true}),INTEGRAL:O(0,1,n.TEXCLASS.OP,{largeop:true,symmetric:true}),INTEGRAL2:O(1,2,n.TEXCLASS.OP,{largeop:true,symmetric:true}),BIN3:O(3,3,n.TEXCLASS.BIN),BIN4:O(4,4,n.TEXCLASS.BIN),BIN01:O(0,1,n.TEXCLASS.BIN),BIN5:O(5,5,n.TEXCLASS.BIN),TALLBIN:O(4,4,n.TEXCLASS.BIN,{stretchy:true}),BINOP:O(4,4,n.TEXCLASS.BIN,{largeop:true,movablelimits:true}),REL:O(5,5,n.TEXCLASS.REL),REL1:O(1,1,n.TEXCLASS.REL,{stretchy:true}),REL4:O(4,4,n.TEXCLASS.REL),RELSTRETCH:O(5,5,n.TEXCLASS.REL,{stretchy:true}),RELACCENT:O(5,5,n.TEXCLASS.REL,{accent:true}),WIDEREL:O(5,5,n.TEXCLASS.REL,{accent:true,stretchy:true}),OPEN:O(0,0,n.TEXCLASS.OPEN,{fence:true,stretchy:true,symmetric:true}),CLOSE:O(0,0,n.TEXCLASS.CLOSE,{fence:true,stretchy:true,symmetric:true}),INNER:O(0,0,n.TEXCLASS.INNER),PUNCT:O(0,3,n.TEXCLASS.PUNCT),ACCENT:O(0,0,n.TEXCLASS.ORD,{accent:true}),WIDEACCENT:O(0,0,n.TEXCLASS.ORD,{accent:true,stretchy:true})};e.RANGES=[[32,127,n.TEXCLASS.REL,"mo"],[160,191,n.TEXCLASS.ORD,"mo"],[192,591,n.TEXCLASS.ORD,"mi"],[688,879,n.TEXCLASS.ORD,"mo"],[880,6688,n.TEXCLASS.ORD,"mi"],[6832,6911,n.TEXCLASS.ORD,"mo"],[6912,7615,n.TEXCLASS.ORD,"mi"],[7616,7679,n.TEXCLASS.ORD,"mo"],[7680,8191,n.TEXCLASS.ORD,"mi"],[8192,8303,n.TEXCLASS.ORD,"mo"],[8304,8351,n.TEXCLASS.ORD,"mo"],[8448,8527,n.TEXCLASS.ORD,"mi"],[8528,8591,n.TEXCLASS.ORD,"mn"],[8592,8703,n.TEXCLASS.REL,"mo"],[8704,8959,n.TEXCLASS.BIN,"mo"],[8960,9215,n.TEXCLASS.ORD,"mo"],[9312,9471,n.TEXCLASS.ORD,"mn"],[9472,10223,n.TEXCLASS.ORD,"mo"],[10224,10239,n.TEXCLASS.REL,"mo"],[10240,10495,n.TEXCLASS.ORD,"mtext"],[10496,10623,n.TEXCLASS.REL,"mo"],[10624,10751,n.TEXCLASS.ORD,"mo"],[10752,11007,n.TEXCLASS.BIN,"mo"],[11008,11055,n.TEXCLASS.ORD,"mo"],[11056,11087,n.TEXCLASS.REL,"mo"],[11088,11263,n.TEXCLASS.ORD,"mo"],[11264,11744,n.TEXCLASS.ORD,"mi"],[11776,11903,n.TEXCLASS.ORD,"mo"],[11904,12255,n.TEXCLASS.ORD,"mi","normal"],[12272,12351,n.TEXCLASS.ORD,"mo"],[12352,42143,n.TEXCLASS.ORD,"mi","normal"],[42192,43055,n.TEXCLASS.ORD,"mi"],[43056,43071,n.TEXCLASS.ORD,"mn"],[43072,55295,n.TEXCLASS.ORD,"mi"],[63744,64255,n.TEXCLASS.ORD,"mi","normal"],[64256,65023,n.TEXCLASS.ORD,"mi"],[65024,65135,n.TEXCLASS.ORD,"mo"],[65136,65791,n.TEXCLASS.ORD,"mi"],[65792,65935,n.TEXCLASS.ORD,"mn"],[65936,74751,n.TEXCLASS.ORD,"mi","normal"],[74752,74879,n.TEXCLASS.ORD,"mn"],[74880,113823,n.TEXCLASS.ORD,"mi","normal"],[113824,119391,n.TEXCLASS.ORD,"mo"],[119648,119679,n.TEXCLASS.ORD,"mn"],[119808,120781,n.TEXCLASS.ORD,"mi"],[120782,120831,n.TEXCLASS.ORD,"mn"],[122624,129023,n.TEXCLASS.ORD,"mo"],[129024,129279,n.TEXCLASS.REL,"mo"],[129280,129535,n.TEXCLASS.ORD,"mo"],[131072,195103,n.TEXCLASS.ORD,"mi","normnal"]];function o(t){var r,n;var O=t.codePointAt(0);try{for(var o=i(e.RANGES),E=o.next();!E.done;E=o.next()){var s=E.value;if(O<=s[1]){if(O>=s[0]){return s}break}}}catch(a){r={error:a}}finally{try{if(E&&!E.done&&(n=o.return))n.call(o)}finally{if(r)throw r.error}}return null}e.getRange=o;e.MMLSPACING=[[0,0],[1,2],[3,3],[4,4],[0,0],[0,0],[0,3]];e.OPTABLE={prefix:{"(":e.MO.OPEN,"+":e.MO.BIN01,"-":e.MO.BIN01,"[":e.MO.OPEN,"{":e.MO.OPEN,"|":e.MO.OPEN,"||":[0,0,n.TEXCLASS.BIN,{fence:true,stretchy:true,symmetric:true}],"|||":[0,0,n.TEXCLASS.ORD,{fence:true,stretchy:true,symmetric:true}],"¬":e.MO.ORD21,"±":e.MO.BIN01,"‖":[0,0,n.TEXCLASS.ORD,{fence:true,stretchy:true}],"‘":[0,0,n.TEXCLASS.OPEN,{fence:true}],"“":[0,0,n.TEXCLASS.OPEN,{fence:true}],"ⅅ":e.MO.ORD21,"ⅆ":O(2,0,n.TEXCLASS.ORD),"∀":e.MO.ORD21,"∂":e.MO.ORD21,"∃":e.MO.ORD21,"∄":e.MO.ORD21,"∇":e.MO.ORD21,"∏":e.MO.OP,"∐":e.MO.OP,"∑":e.MO.OP,"−":e.MO.BIN01,"∓":e.MO.BIN01,"√":[1,1,n.TEXCLASS.ORD,{stretchy:true}],"∛":e.MO.ORD11,"∜":e.MO.ORD11,"∠":e.MO.ORD,"∡":e.MO.ORD,"∢":e.MO.ORD,"∫":e.MO.INTEGRAL,"∬":e.MO.INTEGRAL,"∭":e.MO.INTEGRAL,"∮":e.MO.INTEGRAL,"∯":e.MO.INTEGRAL,"∰":e.MO.INTEGRAL,"∱":e.MO.INTEGRAL,"∲":e.MO.INTEGRAL,"∳":e.MO.INTEGRAL,"⋀":e.MO.OP,"⋁":e.MO.OP,"⋂":e.MO.OP,"⋃":e.MO.OP,"⌈":e.MO.OPEN,"⌊":e.MO.OPEN,"〈":e.MO.OPEN,"❲":e.MO.OPEN,"⟦":e.MO.OPEN,"⟨":e.MO.OPEN,"⟪":e.MO.OPEN,"⟬":e.MO.OPEN,"⟮":e.MO.OPEN,"⦀":[0,0,n.TEXCLASS.ORD,{fence:true,stretchy:true}],"⦃":e.MO.OPEN,"⦅":e.MO.OPEN,"⦇":e.MO.OPEN,"⦉":e.MO.OPEN,"⦋":e.MO.OPEN,"⦍":e.MO.OPEN,"⦏":e.MO.OPEN,"⦑":e.MO.OPEN,"⦓":e.MO.OPEN,"⦕":e.MO.OPEN,"⦗":e.MO.OPEN,"⧼":e.MO.OPEN,"⨀":e.MO.OP,"⨁":e.MO.OP,"⨂":e.MO.OP,"⨃":e.MO.OP,"⨄":e.MO.OP,"⨅":e.MO.OP,"⨆":e.MO.OP,"⨇":e.MO.OP,"⨈":e.MO.OP,"⨉":e.MO.OP,"⨊":e.MO.OP,"⨋":e.MO.INTEGRAL2,"⨌":e.MO.INTEGRAL,"⨍":e.MO.INTEGRAL2,"⨎":e.MO.INTEGRAL2,"⨏":e.MO.INTEGRAL2,"⨐":e.MO.OP,"⨑":e.MO.OP,"⨒":e.MO.OP,"⨓":e.MO.OP,"⨔":e.MO.OP,"⨕":e.MO.INTEGRAL2,"⨖":e.MO.INTEGRAL2,"⨗":e.MO.INTEGRAL2,"⨘":e.MO.INTEGRAL2,"⨙":e.MO.INTEGRAL2,"⨚":e.MO.INTEGRAL2,"⨛":e.MO.INTEGRAL2,"⨜":e.MO.INTEGRAL2,"⫼":e.MO.OP,"⫿":e.MO.OP},postfix:{"!!":O(1,0),"!":[1,0,n.TEXCLASS.CLOSE,null],'"':e.MO.ACCENT,"&":e.MO.ORD,")":e.MO.CLOSE,"++":O(0,0),"--":O(0,0),"..":O(0,0),"...":e.MO.ORD,"'":e.MO.ACCENT,"]":e.MO.CLOSE,"^":e.MO.WIDEACCENT,_:e.MO.WIDEACCENT,"`":e.MO.ACCENT,"|":e.MO.CLOSE,"}":e.MO.CLOSE,"~":e.MO.WIDEACCENT,"||":[0,0,n.TEXCLASS.BIN,{fence:true,stretchy:true,symmetric:true}],"|||":[0,0,n.TEXCLASS.ORD,{fence:true,stretchy:true,symmetric:true}],"¨":e.MO.ACCENT,"ª":e.MO.ACCENT,"¯":e.MO.WIDEACCENT,"°":e.MO.ORD,"²":e.MO.ACCENT,"³":e.MO.ACCENT,"´":e.MO.ACCENT,"¸":e.MO.ACCENT,"¹":e.MO.ACCENT,"º":e.MO.ACCENT,"ˆ":e.MO.WIDEACCENT,"ˇ":e.MO.WIDEACCENT,"ˉ":e.MO.WIDEACCENT,"ˊ":e.MO.ACCENT,"ˋ":e.MO.ACCENT,"ˍ":e.MO.WIDEACCENT,"˘":e.MO.ACCENT,"˙":e.MO.ACCENT,"˚":e.MO.ACCENT,"˜":e.MO.WIDEACCENT,"˝":e.MO.ACCENT,"˷":e.MO.WIDEACCENT,"̂":e.MO.WIDEACCENT,"̑":e.MO.ACCENT,"϶":e.MO.REL,"‖":[0,0,n.TEXCLASS.ORD,{fence:true,stretchy:true}],"’":[0,0,n.TEXCLASS.CLOSE,{fence:true}],"‚":e.MO.ACCENT,"‛":e.MO.ACCENT,"”":[0,0,n.TEXCLASS.CLOSE,{fence:true}],"„":e.MO.ACCENT,"‟":e.MO.ACCENT,"′":e.MO.ORD,"″":e.MO.ACCENT,"‴":e.MO.ACCENT,"‵":e.MO.ACCENT,"‶":e.MO.ACCENT,"‷":e.MO.ACCENT,"‾":e.MO.WIDEACCENT,"⁗":e.MO.ACCENT,"⃛":e.MO.ACCENT,"⃜":e.MO.ACCENT,"⌉":e.MO.CLOSE,"⌋":e.MO.CLOSE,"〉":e.MO.CLOSE,"⎴":e.MO.WIDEACCENT,"⎵":e.MO.WIDEACCENT,"⏜":e.MO.WIDEACCENT,"⏝":e.MO.WIDEACCENT,"⏞":e.MO.WIDEACCENT,"⏟":e.MO.WIDEACCENT,"⏠":e.MO.WIDEACCENT,"⏡":e.MO.WIDEACCENT,"■":e.MO.BIN3,"□":e.MO.BIN3,"▪":e.MO.BIN3,"▫":e.MO.BIN3,"▭":e.MO.BIN3,"▮":e.MO.BIN3,"▯":e.MO.BIN3,"▰":e.MO.BIN3,"▱":e.MO.BIN3,"▲":e.MO.BIN4,"▴":e.MO.BIN4,"▶":e.MO.BIN4,"▷":e.MO.BIN4,"▸":e.MO.BIN4,"▼":e.MO.BIN4,"▾":e.MO.BIN4,"◀":e.MO.BIN4,"◁":e.MO.BIN4,"◂":e.MO.BIN4,"◄":e.MO.BIN4,"◅":e.MO.BIN4,"◆":e.MO.BIN4,"◇":e.MO.BIN4,"◈":e.MO.BIN4,"◉":e.MO.BIN4,"◌":e.MO.BIN4,"◍":e.MO.BIN4,"◎":e.MO.BIN4,"●":e.MO.BIN4,"◖":e.MO.BIN4,"◗":e.MO.BIN4,"◦":e.MO.BIN4,"♭":e.MO.ORD02,"♮":e.MO.ORD02,"♯":e.MO.ORD02,"❳":e.MO.CLOSE,"⟧":e.MO.CLOSE,"⟩":e.MO.CLOSE,"⟫":e.MO.CLOSE,"⟭":e.MO.CLOSE,"⟯":e.MO.CLOSE,"⦀":[0,0,n.TEXCLASS.ORD,{fence:true,stretchy:true}],"⦄":e.MO.CLOSE,"⦆":e.MO.CLOSE,"⦈":e.MO.CLOSE,"⦊":e.MO.CLOSE,"⦌":e.MO.CLOSE,"⦎":e.MO.CLOSE,"⦐":e.MO.CLOSE,"⦒":e.MO.CLOSE,"⦔":e.MO.CLOSE,"⦖":e.MO.CLOSE,"⦘":e.MO.CLOSE,"⧽":e.MO.CLOSE},infix:{"!=":e.MO.BIN4,"#":e.MO.ORD,$:e.MO.ORD,"%":[3,3,n.TEXCLASS.ORD,null],"&&":e.MO.BIN4,"":e.MO.ORD,"*":e.MO.BIN3,"**":O(1,1),"*=":e.MO.BIN4,"+":e.MO.BIN4,"+=":e.MO.BIN4,",":[0,3,n.TEXCLASS.PUNCT,{linebreakstyle:"after",separator:true}],"-":e.MO.BIN4,"-=":e.MO.BIN4,"->":e.MO.BIN5,".":[0,3,n.TEXCLASS.PUNCT,{separator:true}],"/":e.MO.ORD11,"//":O(1,1),"/=":e.MO.BIN4,":":[1,2,n.TEXCLASS.REL,null],":=":e.MO.BIN4,";":[0,3,n.TEXCLASS.PUNCT,{linebreakstyle:"after",separator:true}],"<":e.MO.REL,"<=":e.MO.BIN5,"<>":O(1,1),"=":e.MO.REL,"==":e.MO.BIN4,">":e.MO.REL,">=":e.MO.BIN5,"?":[1,1,n.TEXCLASS.CLOSE,null],"@":e.MO.ORD11,"\\":e.MO.ORD,"^":e.MO.ORD11,_:e.MO.ORD11,"|":[2,2,n.TEXCLASS.ORD,{fence:true,stretchy:true,symmetric:true}],"||":[2,2,n.TEXCLASS.BIN,{fence:true,stretchy:true,symmetric:true}],"|||":[2,2,n.TEXCLASS.ORD,{fence:true,stretchy:true,symmetric:true}],"±":e.MO.BIN4,"·":e.MO.BIN4,"×":e.MO.BIN4,"÷":e.MO.BIN4,"ʹ":e.MO.ORD,"̀":e.MO.ACCENT,"́":e.MO.ACCENT,"̃":e.MO.WIDEACCENT,"̄":e.MO.ACCENT,"̆":e.MO.ACCENT,"̇":e.MO.ACCENT,"̈":e.MO.ACCENT,"̌":e.MO.ACCENT,"̲":e.MO.WIDEACCENT,"̸":e.MO.REL4,"―":[0,0,n.TEXCLASS.ORD,{stretchy:true}],"‗":[0,0,n.TEXCLASS.ORD,{stretchy:true}],"†":e.MO.BIN3,"‡":e.MO.BIN3,"•":e.MO.BIN4,"…":e.MO.INNER,"⁃":e.MO.BIN4,"⁄":e.MO.TALLBIN,"⁡":e.MO.NONE,"⁢":e.MO.NONE,"⁣":[0,0,n.TEXCLASS.NONE,{linebreakstyle:"after",separator:true}],"⁤":e.MO.NONE,"⃗":e.MO.ACCENT,"ℑ":e.MO.ORD,"ℓ":e.MO.ORD,"℘":e.MO.ORD,"ℜ":e.MO.ORD,"←":e.MO.WIDEREL,"↑":e.MO.RELSTRETCH,"→":e.MO.WIDEREL,"↓":e.MO.RELSTRETCH,"↔":e.MO.WIDEREL,"↕":e.MO.RELSTRETCH,"↖":e.MO.RELSTRETCH,"↗":e.MO.RELSTRETCH,"↘":e.MO.RELSTRETCH,"↙":e.MO.RELSTRETCH,"↚":e.MO.RELACCENT,"↛":e.MO.RELACCENT,"↜":e.MO.WIDEREL,"↝":e.MO.WIDEREL,"↞":e.MO.WIDEREL,"↟":e.MO.WIDEREL,"↠":e.MO.WIDEREL,"↡":e.MO.RELSTRETCH,"↢":e.MO.WIDEREL,"↣":e.MO.WIDEREL,"↤":e.MO.WIDEREL,"↥":e.MO.RELSTRETCH,"↦":e.MO.WIDEREL,"↧":e.MO.RELSTRETCH,"↨":e.MO.RELSTRETCH,"↩":e.MO.WIDEREL,"↪":e.MO.WIDEREL,"↫":e.MO.WIDEREL,"↬":e.MO.WIDEREL,"↭":e.MO.WIDEREL,"↮":e.MO.RELACCENT,"↯":e.MO.RELSTRETCH,"↰":e.MO.RELSTRETCH,"↱":e.MO.RELSTRETCH,"↲":e.MO.RELSTRETCH,"↳":e.MO.RELSTRETCH,"↴":e.MO.RELSTRETCH,"↵":e.MO.RELSTRETCH,"↶":e.MO.RELACCENT,"↷":e.MO.RELACCENT,"↸":e.MO.REL,"↹":e.MO.WIDEREL,"↺":e.MO.REL,"↻":e.MO.REL,"↼":e.MO.WIDEREL,"↽":e.MO.WIDEREL,"↾":e.MO.RELSTRETCH,"↿":e.MO.RELSTRETCH,"⇀":e.MO.WIDEREL,"⇁":e.MO.WIDEREL,"⇂":e.MO.RELSTRETCH,"⇃":e.MO.RELSTRETCH,"⇄":e.MO.WIDEREL,"⇅":e.MO.RELSTRETCH,"⇆":e.MO.WIDEREL,"⇇":e.MO.WIDEREL,"⇈":e.MO.RELSTRETCH,"⇉":e.MO.WIDEREL,"⇊":e.MO.RELSTRETCH,"⇋":e.MO.WIDEREL,"⇌":e.MO.WIDEREL,"⇍":e.MO.RELACCENT,"⇎":e.MO.RELACCENT,"⇏":e.MO.RELACCENT,"⇐":e.MO.WIDEREL,"⇑":e.MO.RELSTRETCH,"⇒":e.MO.WIDEREL,"⇓":e.MO.RELSTRETCH,"⇔":e.MO.WIDEREL,"⇕":e.MO.RELSTRETCH,"⇖":e.MO.RELSTRETCH,"⇗":e.MO.RELSTRETCH,"⇘":e.MO.RELSTRETCH,"⇙":e.MO.RELSTRETCH,"⇚":e.MO.WIDEREL,"⇛":e.MO.WIDEREL,"⇜":e.MO.WIDEREL,"⇝":e.MO.WIDEREL,"⇞":e.MO.REL,"⇟":e.MO.REL,"⇠":e.MO.WIDEREL,"⇡":e.MO.RELSTRETCH,"⇢":e.MO.WIDEREL,"⇣":e.MO.RELSTRETCH,"⇤":e.MO.WIDEREL,"⇥":e.MO.WIDEREL,"⇦":e.MO.WIDEREL,"⇧":e.MO.RELSTRETCH,"⇨":e.MO.WIDEREL,"⇩":e.MO.RELSTRETCH,"⇪":e.MO.RELSTRETCH,"⇫":e.MO.RELSTRETCH,"⇬":e.MO.RELSTRETCH,"⇭":e.MO.RELSTRETCH,"⇮":e.MO.RELSTRETCH,"⇯":e.MO.RELSTRETCH,"⇰":e.MO.WIDEREL,"⇱":e.MO.REL,"⇲":e.MO.REL,"⇳":e.MO.RELSTRETCH,"⇴":e.MO.RELACCENT,"⇵":e.MO.RELSTRETCH,"⇶":e.MO.WIDEREL,"⇷":e.MO.RELACCENT,"⇸":e.MO.RELACCENT,"⇹":e.MO.RELACCENT,"⇺":e.MO.RELACCENT,"⇻":e.MO.RELACCENT,"⇼":e.MO.RELACCENT,"⇽":e.MO.WIDEREL,"⇾":e.MO.WIDEREL,"⇿":e.MO.WIDEREL,"∁":O(1,2,n.TEXCLASS.ORD),"∅":e.MO.ORD,"∆":e.MO.BIN3,"∈":e.MO.REL,"∉":e.MO.REL,"∊":e.MO.REL,"∋":e.MO.REL,"∌":e.MO.REL,"∍":e.MO.REL,"∎":e.MO.BIN3,"−":e.MO.BIN4,"∓":e.MO.BIN4,"∔":e.MO.BIN4,"∕":e.MO.TALLBIN,"∖":e.MO.BIN4,"∗":e.MO.BIN4,"∘":e.MO.BIN4,"∙":e.MO.BIN4,"∝":e.MO.REL,"∞":e.MO.ORD,"∟":e.MO.REL,"∣":e.MO.REL,"∤":e.MO.REL,"∥":e.MO.REL,"∦":e.MO.REL,"∧":e.MO.BIN4,"∨":e.MO.BIN4,"∩":e.MO.BIN4,"∪":e.MO.BIN4,"∴":e.MO.REL,"∵":e.MO.REL,"∶":e.MO.REL,"∷":e.MO.REL,"∸":e.MO.BIN4,"∹":e.MO.REL,"∺":e.MO.BIN4,"∻":e.MO.REL,"∼":e.MO.REL,"∽":e.MO.REL,"∽̱":e.MO.BIN3,"∾":e.MO.REL,"∿":e.MO.BIN3,"≀":e.MO.BIN4,"≁":e.MO.REL,"≂":e.MO.REL,"≂̸":e.MO.REL,"≃":e.MO.REL,"≄":e.MO.REL,"≅":e.MO.REL,"≆":e.MO.REL,"≇":e.MO.REL,"≈":e.MO.REL,"≉":e.MO.REL,"≊":e.MO.REL,"≋":e.MO.REL,"≌":e.MO.REL,"≍":e.MO.REL,"≎":e.MO.REL,"≎̸":e.MO.REL,"≏":e.MO.REL,"≏̸":e.MO.REL,"≐":e.MO.REL,"≑":e.MO.REL,"≒":e.MO.REL,"≓":e.MO.REL,"≔":e.MO.REL,"≕":e.MO.REL,"≖":e.MO.REL,"≗":e.MO.REL,"≘":e.MO.REL,"≙":e.MO.REL,"≚":e.MO.REL,"≛":e.MO.REL,"≜":e.MO.REL,"≝":e.MO.REL,"≞":e.MO.REL,"≟":e.MO.REL,"≠":e.MO.REL,"≡":e.MO.REL,"≢":e.MO.REL,"≣":e.MO.REL,"≤":e.MO.REL,"≥":e.MO.REL,"≦":e.MO.REL,"≦̸":e.MO.REL,"≧":e.MO.REL,"≨":e.MO.REL,"≩":e.MO.REL,"≪":e.MO.REL,"≪̸":e.MO.REL,"≫":e.MO.REL,"≫̸":e.MO.REL,"≬":e.MO.REL,"≭":e.MO.REL,"≮":e.MO.REL,"≯":e.MO.REL,"≰":e.MO.REL,"≱":e.MO.REL,"≲":e.MO.REL,"≳":e.MO.REL,"≴":e.MO.REL,"≵":e.MO.REL,"≶":e.MO.REL,"≷":e.MO.REL,"≸":e.MO.REL,"≹":e.MO.REL,"≺":e.MO.REL,"≻":e.MO.REL,"≼":e.MO.REL,"≽":e.MO.REL,"≾":e.MO.REL,"≿":e.MO.REL,"≿̸":e.MO.REL,"⊀":e.MO.REL,"⊁":e.MO.REL,"⊂":e.MO.REL,"⊂⃒":e.MO.REL,"⊃":e.MO.REL,"⊃⃒":e.MO.REL,"⊄":e.MO.REL,"⊅":e.MO.REL,"⊆":e.MO.REL,"⊇":e.MO.REL,"⊈":e.MO.REL,"⊉":e.MO.REL,"⊊":e.MO.REL,"⊋":e.MO.REL,"⊌":e.MO.BIN4,"⊍":e.MO.BIN4,"⊎":e.MO.BIN4,"⊏":e.MO.REL,"⊏̸":e.MO.REL,"⊐":e.MO.REL,"⊐̸":e.MO.REL,"⊑":e.MO.REL,"⊒":e.MO.REL,"⊓":e.MO.BIN4,"⊔":e.MO.BIN4,"⊕":e.MO.BIN4,"⊖":e.MO.BIN4,"⊗":e.MO.BIN4,"⊘":e.MO.BIN4,"⊙":e.MO.BIN4,"⊚":e.MO.BIN4,"⊛":e.MO.BIN4,"⊜":e.MO.BIN4,"⊝":e.MO.BIN4,"⊞":e.MO.BIN4,"⊟":e.MO.BIN4,"⊠":e.MO.BIN4,"⊡":e.MO.BIN4,"⊢":e.MO.REL,"⊣":e.MO.REL,"⊤":e.MO.ORD55,"⊥":e.MO.REL,"⊦":e.MO.REL,"⊧":e.MO.REL,"⊨":e.MO.REL,"⊩":e.MO.REL,"⊪":e.MO.REL,"⊫":e.MO.REL,"⊬":e.MO.REL,"⊭":e.MO.REL,"⊮":e.MO.REL,"⊯":e.MO.REL,"⊰":e.MO.REL,"⊱":e.MO.REL,"⊲":e.MO.REL,"⊳":e.MO.REL,"⊴":e.MO.REL,"⊵":e.MO.REL,"⊶":e.MO.REL,"⊷":e.MO.REL,"⊸":e.MO.REL,"⊹":e.MO.REL,"⊺":e.MO.BIN4,"⊻":e.MO.BIN4,"⊼":e.MO.BIN4,"⊽":e.MO.BIN4,"⊾":e.MO.BIN3,"⊿":e.MO.BIN3,"⋄":e.MO.BIN4,"⋅":e.MO.BIN4,"⋆":e.MO.BIN4,"⋇":e.MO.BIN4,"⋈":e.MO.REL,"⋉":e.MO.BIN4,"⋊":e.MO.BIN4,"⋋":e.MO.BIN4,"⋌":e.MO.BIN4,"⋍":e.MO.REL,"⋎":e.MO.BIN4,"⋏":e.MO.BIN4,"⋐":e.MO.REL,"⋑":e.MO.REL,"⋒":e.MO.BIN4,"⋓":e.MO.BIN4,"⋔":e.MO.REL,"⋕":e.MO.REL,"⋖":e.MO.REL,"⋗":e.MO.REL,"⋘":e.MO.REL,"⋙":e.MO.REL,"⋚":e.MO.REL,"⋛":e.MO.REL,"⋜":e.MO.REL,"⋝":e.MO.REL,"⋞":e.MO.REL,"⋟":e.MO.REL,"⋠":e.MO.REL,"⋡":e.MO.REL,"⋢":e.MO.REL,"⋣":e.MO.REL,"⋤":e.MO.REL,"⋥":e.MO.REL,"⋦":e.MO.REL,"⋧":e.MO.REL,"⋨":e.MO.REL,"⋩":e.MO.REL,"⋪":e.MO.REL,"⋫":e.MO.REL,"⋬":e.MO.REL,"⋭":e.MO.REL,"⋮":e.MO.ORD55,"⋯":e.MO.INNER,"⋰":e.MO.REL,"⋱":[5,5,n.TEXCLASS.INNER,null],"⋲":e.MO.REL,"⋳":e.MO.REL,"⋴":e.MO.REL,"⋵":e.MO.REL,"⋶":e.MO.REL,"⋷":e.MO.REL,"⋸":e.MO.REL,"⋹":e.MO.REL,"⋺":e.MO.REL,"⋻":e.MO.REL,"⋼":e.MO.REL,"⋽":e.MO.REL,"⋾":e.MO.REL,"⋿":e.MO.REL,"⌅":e.MO.BIN3,"⌆":e.MO.BIN3,"⌢":e.MO.REL4,"⌣":e.MO.REL4,"〈":e.MO.OPEN,"〉":e.MO.CLOSE,"⎪":e.MO.ORD,"⎯":[0,0,n.TEXCLASS.ORD,{stretchy:true}],"⎰":e.MO.OPEN,"⎱":e.MO.CLOSE,"─":e.MO.ORD,"△":e.MO.BIN4,"▵":e.MO.BIN4,"▹":e.MO.BIN4,"▽":e.MO.BIN4,"▿":e.MO.BIN4,"◃":e.MO.BIN4,"◯":e.MO.BIN3,"♠":e.MO.ORD,"♡":e.MO.ORD,"♢":e.MO.ORD,"♣":e.MO.ORD,"❘":e.MO.REL,"⟰":e.MO.RELSTRETCH,"⟱":e.MO.RELSTRETCH,"⟵":e.MO.WIDEREL,"⟶":e.MO.WIDEREL,"⟷":e.MO.WIDEREL,"⟸":e.MO.WIDEREL,"⟹":e.MO.WIDEREL,"⟺":e.MO.WIDEREL,"⟻":e.MO.WIDEREL,"⟼":e.MO.WIDEREL,"⟽":e.MO.WIDEREL,"⟾":e.MO.WIDEREL,"⟿":e.MO.WIDEREL,"⤀":e.MO.RELACCENT,"⤁":e.MO.RELACCENT,"⤂":e.MO.RELACCENT,"⤃":e.MO.RELACCENT,"⤄":e.MO.RELACCENT,"⤅":e.MO.RELACCENT,"⤆":e.MO.RELACCENT,"⤇":e.MO.RELACCENT,"⤈":e.MO.REL,"⤉":e.MO.REL,"⤊":e.MO.RELSTRETCH,"⤋":e.MO.RELSTRETCH,"⤌":e.MO.WIDEREL,"⤍":e.MO.WIDEREL,"⤎":e.MO.WIDEREL,"⤏":e.MO.WIDEREL,"⤐":e.MO.WIDEREL,"⤑":e.MO.RELACCENT,"⤒":e.MO.RELSTRETCH,"⤓":e.MO.RELSTRETCH,"⤔":e.MO.RELACCENT,"⤕":e.MO.RELACCENT,"⤖":e.MO.RELACCENT,"⤗":e.MO.RELACCENT,"⤘":e.MO.RELACCENT,"⤙":e.MO.RELACCENT,"⤚":e.MO.RELACCENT,"⤛":e.MO.RELACCENT,"⤜":e.MO.RELACCENT,"⤝":e.MO.RELACCENT,"⤞":e.MO.RELACCENT,"⤟":e.MO.RELACCENT,"⤠":e.MO.RELACCENT,"⤡":e.MO.RELSTRETCH,"⤢":e.MO.RELSTRETCH,"⤣":e.MO.REL,"⤤":e.MO.REL,"⤥":e.MO.REL,"⤦":e.MO.REL,"⤧":e.MO.REL,"⤨":e.MO.REL,"⤩":e.MO.REL,"⤪":e.MO.REL,"⤫":e.MO.REL,"⤬":e.MO.REL,"⤭":e.MO.REL,"⤮":e.MO.REL,"⤯":e.MO.REL,"⤰":e.MO.REL,"⤱":e.MO.REL,"⤲":e.MO.REL,"⤳":e.MO.RELACCENT,"⤴":e.MO.REL,"⤵":e.MO.REL,"⤶":e.MO.REL,"⤷":e.MO.REL,"⤸":e.MO.REL,"⤹":e.MO.REL,"⤺":e.MO.RELACCENT,"⤻":e.MO.RELACCENT,"⤼":e.MO.RELACCENT,"⤽":e.MO.RELACCENT,"⤾":e.MO.REL,"⤿":e.MO.REL,"⥀":e.MO.REL,"⥁":e.MO.REL,"⥂":e.MO.RELACCENT,"⥃":e.MO.RELACCENT,"⥄":e.MO.RELACCENT,"⥅":e.MO.RELACCENT,"⥆":e.MO.RELACCENT,"⥇":e.MO.RELACCENT,"⥈":e.MO.RELACCENT,"⥉":e.MO.REL,"⥊":e.MO.RELACCENT,"⥋":e.MO.RELACCENT,"⥌":e.MO.REL,"⥍":e.MO.REL,"⥎":e.MO.WIDEREL,"⥏":e.MO.RELSTRETCH,"⥐":e.MO.WIDEREL,"⥑":e.MO.RELSTRETCH,"⥒":e.MO.WIDEREL,"⥓":e.MO.WIDEREL,"⥔":e.MO.RELSTRETCH,"⥕":e.MO.RELSTRETCH,"⥖":e.MO.RELSTRETCH,"⥗":e.MO.RELSTRETCH,"⥘":e.MO.RELSTRETCH,"⥙":e.MO.RELSTRETCH,"⥚":e.MO.WIDEREL,"⥛":e.MO.WIDEREL,"⥜":e.MO.RELSTRETCH,"⥝":e.MO.RELSTRETCH,"⥞":e.MO.WIDEREL,"⥟":e.MO.WIDEREL,"⥠":e.MO.RELSTRETCH,"⥡":e.MO.RELSTRETCH,"⥢":e.MO.RELACCENT,"⥣":e.MO.REL,"⥤":e.MO.RELACCENT,"⥥":e.MO.REL,"⥦":e.MO.RELACCENT,"⥧":e.MO.RELACCENT,"⥨":e.MO.RELACCENT,"⥩":e.MO.RELACCENT,"⥪":e.MO.RELACCENT,"⥫":e.MO.RELACCENT,"⥬":e.MO.RELACCENT,"⥭":e.MO.RELACCENT,"⥮":e.MO.RELSTRETCH,"⥯":e.MO.RELSTRETCH,"⥰":e.MO.RELACCENT,"⥱":e.MO.RELACCENT,"⥲":e.MO.RELACCENT,"⥳":e.MO.RELACCENT,"⥴":e.MO.RELACCENT,"⥵":e.MO.RELACCENT,"⥶":e.MO.RELACCENT,"⥷":e.MO.RELACCENT,"⥸":e.MO.RELACCENT,"⥹":e.MO.RELACCENT,"⥺":e.MO.RELACCENT,"⥻":e.MO.RELACCENT,"⥼":e.MO.RELACCENT,"⥽":e.MO.RELACCENT,"⥾":e.MO.REL,"⥿":e.MO.REL,"⦁":e.MO.BIN3,"⦂":e.MO.BIN3,"⦙":e.MO.BIN3,"⦚":e.MO.BIN3,"⦛":e.MO.BIN3,"⦜":e.MO.BIN3,"⦝":e.MO.BIN3,"⦞":e.MO.BIN3,"⦟":e.MO.BIN3,"⦠":e.MO.BIN3,"⦡":e.MO.BIN3,"⦢":e.MO.BIN3,"⦣":e.MO.BIN3,"⦤":e.MO.BIN3,"⦥":e.MO.BIN3,"⦦":e.MO.BIN3,"⦧":e.MO.BIN3,"⦨":e.MO.BIN3,"⦩":e.MO.BIN3,"⦪":e.MO.BIN3,"⦫":e.MO.BIN3,"⦬":e.MO.BIN3,"⦭":e.MO.BIN3,"⦮":e.MO.BIN3,"⦯":e.MO.BIN3,"⦰":e.MO.BIN3,"⦱":e.MO.BIN3,"⦲":e.MO.BIN3,"⦳":e.MO.BIN3,"⦴":e.MO.BIN3,"⦵":e.MO.BIN3,"⦶":e.MO.BIN4,"⦷":e.MO.BIN4,"⦸":e.MO.BIN4,"⦹":e.MO.BIN4,"⦺":e.MO.BIN4,"⦻":e.MO.BIN4,"⦼":e.MO.BIN4,"⦽":e.MO.BIN4,"⦾":e.MO.BIN4,"⦿":e.MO.BIN4,"⧀":e.MO.REL,"⧁":e.MO.REL,"⧂":e.MO.BIN3,"⧃":e.MO.BIN3,"⧄":e.MO.BIN4,"⧅":e.MO.BIN4,"⧆":e.MO.BIN4,"⧇":e.MO.BIN4,"⧈":e.MO.BIN4,"⧉":e.MO.BIN3,"⧊":e.MO.BIN3,"⧋":e.MO.BIN3,"⧌":e.MO.BIN3,"⧍":e.MO.BIN3,"⧎":e.MO.REL,"⧏":e.MO.REL,"⧏̸":e.MO.REL,"⧐":e.MO.REL,"⧐̸":e.MO.REL,"⧑":e.MO.REL,"⧒":e.MO.REL,"⧓":e.MO.REL,"⧔":e.MO.REL,"⧕":e.MO.REL,"⧖":e.MO.BIN4,"⧗":e.MO.BIN4,"⧘":e.MO.BIN3,"⧙":e.MO.BIN3,"⧛":e.MO.BIN3,"⧜":e.MO.BIN3,"⧝":e.MO.BIN3,"⧞":e.MO.REL,"⧟":e.MO.BIN3,"⧠":e.MO.BIN3,"⧡":e.MO.REL,"⧢":e.MO.BIN4,"⧣":e.MO.REL,"⧤":e.MO.REL,"⧥":e.MO.REL,"⧦":e.MO.REL,"⧧":e.MO.BIN3,"⧨":e.MO.BIN3,"⧩":e.MO.BIN3,"⧪":e.MO.BIN3,"⧫":e.MO.BIN3,"⧬":e.MO.BIN3,"⧭":e.MO.BIN3,"⧮":e.MO.BIN3,"⧯":e.MO.BIN3,"⧰":e.MO.BIN3,"⧱":e.MO.BIN3,"⧲":e.MO.BIN3,"⧳":e.MO.BIN3,"⧴":e.MO.REL,"⧵":e.MO.BIN4,"⧶":e.MO.BIN4,"⧷":e.MO.BIN4,"⧸":e.MO.BIN3,"⧹":e.MO.BIN3,"⧺":e.MO.BIN3,"⧻":e.MO.BIN3,"⧾":e.MO.BIN4,"⧿":e.MO.BIN4,"⨝":e.MO.BIN3,"⨞":e.MO.BIN3,"⨟":e.MO.BIN3,"⨠":e.MO.BIN3,"⨡":e.MO.BIN3,"⨢":e.MO.BIN4,"⨣":e.MO.BIN4,"⨤":e.MO.BIN4,"⨥":e.MO.BIN4,"⨦":e.MO.BIN4,"⨧":e.MO.BIN4,"⨨":e.MO.BIN4,"⨩":e.MO.BIN4,"⨪":e.MO.BIN4,"⨫":e.MO.BIN4,"⨬":e.MO.BIN4,"⨭":e.MO.BIN4,"⨮":e.MO.BIN4,"⨯":e.MO.BIN4,"⨰":e.MO.BIN4,"⨱":e.MO.BIN4,"⨲":e.MO.BIN4,"⨳":e.MO.BIN4,"⨴":e.MO.BIN4,"⨵":e.MO.BIN4,"⨶":e.MO.BIN4,"⨷":e.MO.BIN4,"⨸":e.MO.BIN4,"⨹":e.MO.BIN4,"⨺":e.MO.BIN4,"⨻":e.MO.BIN4,"⨼":e.MO.BIN4,"⨽":e.MO.BIN4,"⨾":e.MO.BIN4,"⨿":e.MO.BIN4,"⩀":e.MO.BIN4,"⩁":e.MO.BIN4,"⩂":e.MO.BIN4,"⩃":e.MO.BIN4,"⩄":e.MO.BIN4,"⩅":e.MO.BIN4,"⩆":e.MO.BIN4,"⩇":e.MO.BIN4,"⩈":e.MO.BIN4,"⩉":e.MO.BIN4,"⩊":e.MO.BIN4,"⩋":e.MO.BIN4,"⩌":e.MO.BIN4,"⩍":e.MO.BIN4,"⩎":e.MO.BIN4,"⩏":e.MO.BIN4,"⩐":e.MO.BIN4,"⩑":e.MO.BIN4,"⩒":e.MO.BIN4,"⩓":e.MO.BIN4,"⩔":e.MO.BIN4,"⩕":e.MO.BIN4,"⩖":e.MO.BIN4,"⩗":e.MO.BIN4,"⩘":e.MO.BIN4,"⩙":e.MO.REL,"⩚":e.MO.BIN4,"⩛":e.MO.BIN4,"⩜":e.MO.BIN4,"⩝":e.MO.BIN4,"⩞":e.MO.BIN4,"⩟":e.MO.BIN4,"⩠":e.MO.BIN4,"⩡":e.MO.BIN4,"⩢":e.MO.BIN4,"⩣":e.MO.BIN4,"⩤":e.MO.BIN4,"⩥":e.MO.BIN4,"⩦":e.MO.REL,"⩧":e.MO.REL,"⩨":e.MO.REL,"⩩":e.MO.REL,"⩪":e.MO.REL,"⩫":e.MO.REL,"⩬":e.MO.REL,"⩭":e.MO.REL,"⩮":e.MO.REL,"⩯":e.MO.REL,"⩰":e.MO.REL,"⩱":e.MO.BIN4,"⩲":e.MO.BIN4,"⩳":e.MO.REL,"⩴":e.MO.REL,"⩵":e.MO.REL,"⩶":e.MO.REL,"⩷":e.MO.REL,"⩸":e.MO.REL,"⩹":e.MO.REL,"⩺":e.MO.REL,"⩻":e.MO.REL,"⩼":e.MO.REL,"⩽":e.MO.REL,"⩽̸":e.MO.REL,"⩾":e.MO.REL,"⩾̸":e.MO.REL,"⩿":e.MO.REL,"⪀":e.MO.REL,"⪁":e.MO.REL,"⪂":e.MO.REL,"⪃":e.MO.REL,"⪄":e.MO.REL,"⪅":e.MO.REL,"⪆":e.MO.REL,"⪇":e.MO.REL,"⪈":e.MO.REL,"⪉":e.MO.REL,"⪊":e.MO.REL,"⪋":e.MO.REL,"⪌":e.MO.REL,"⪍":e.MO.REL,"⪎":e.MO.REL,"⪏":e.MO.REL,"⪐":e.MO.REL,"⪑":e.MO.REL,"⪒":e.MO.REL,"⪓":e.MO.REL,"⪔":e.MO.REL,"⪕":e.MO.REL,"⪖":e.MO.REL,"⪗":e.MO.REL,"⪘":e.MO.REL,"⪙":e.MO.REL,"⪚":e.MO.REL,"⪛":e.MO.REL,"⪜":e.MO.REL,"⪝":e.MO.REL,"⪞":e.MO.REL,"⪟":e.MO.REL,"⪠":e.MO.REL,"⪡":e.MO.REL,"⪡̸":e.MO.REL,"⪢":e.MO.REL,"⪢̸":e.MO.REL,"⪣":e.MO.REL,"⪤":e.MO.REL,"⪥":e.MO.REL,"⪦":e.MO.REL,"⪧":e.MO.REL,"⪨":e.MO.REL,"⪩":e.MO.REL,"⪪":e.MO.REL,"⪫":e.MO.REL,"⪬":e.MO.REL,"⪭":e.MO.REL,"⪮":e.MO.REL,"⪯":e.MO.REL,"⪯̸":e.MO.REL,"⪰":e.MO.REL,"⪰̸":e.MO.REL,"⪱":e.MO.REL,"⪲":e.MO.REL,"⪳":e.MO.REL,"⪴":e.MO.REL,"⪵":e.MO.REL,"⪶":e.MO.REL,"⪷":e.MO.REL,"⪸":e.MO.REL,"⪹":e.MO.REL,"⪺":e.MO.REL,"⪻":e.MO.REL,"⪼":e.MO.REL,"⪽":e.MO.REL,"⪾":e.MO.REL,"⪿":e.MO.REL,"⫀":e.MO.REL,"⫁":e.MO.REL,"⫂":e.MO.REL,"⫃":e.MO.REL,"⫄":e.MO.REL,"⫅":e.MO.REL,"⫆":e.MO.REL,"⫇":e.MO.REL,"⫈":e.MO.REL,"⫉":e.MO.REL,"⫊":e.MO.REL,"⫋":e.MO.REL,"⫌":e.MO.REL,"⫍":e.MO.REL,"⫎":e.MO.REL,"⫏":e.MO.REL,"⫐":e.MO.REL,"⫑":e.MO.REL,"⫒":e.MO.REL,"⫓":e.MO.REL,"⫔":e.MO.REL,"⫕":e.MO.REL,"⫖":e.MO.REL,"⫗":e.MO.REL,"⫘":e.MO.REL,"⫙":e.MO.REL,"⫚":e.MO.REL,"⫛":e.MO.REL,"⫝":e.MO.REL,"⫝̸":e.MO.REL,"⫞":e.MO.REL,"⫟":e.MO.REL,"⫠":e.MO.REL,"⫡":e.MO.REL,"⫢":e.MO.REL,"⫣":e.MO.REL,"⫤":e.MO.REL,"⫥":e.MO.REL,"⫦":e.MO.REL,"⫧":e.MO.REL,"⫨":e.MO.REL,"⫩":e.MO.REL,"⫪":e.MO.REL,"⫫":e.MO.REL,"⫬":e.MO.REL,"⫭":e.MO.REL,"⫮":e.MO.REL,"⫯":e.MO.REL,"⫰":e.MO.REL,"⫱":e.MO.REL,"⫲":e.MO.REL,"⫳":e.MO.REL,"⫴":e.MO.BIN4,"⫵":e.MO.BIN4,"⫶":e.MO.BIN4,"⫷":e.MO.REL,"⫸":e.MO.REL,"⫹":e.MO.REL,"⫺":e.MO.REL,"⫻":e.MO.BIN4,"⫽":e.MO.BIN4,"⫾":e.MO.BIN3,"⭅":e.MO.RELSTRETCH,"⭆":e.MO.RELSTRETCH,"〈":e.MO.OPEN,"〉":e.MO.CLOSE,"︷":e.MO.WIDEACCENT,"︸":e.MO.WIDEACCENT}};e.OPTABLE.infix["^"]=e.MO.WIDEREL;e.OPTABLE.infix._=e.MO.WIDEREL;e.OPTABLE.infix["⫝̸"]=e.MO.REL},84465:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var i=this&&this.__assign||function(){i=Object.assign||function(t){for(var e,r=1,i=arguments.length;r=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.AbstractEmptyNode=e.AbstractNode=void 0;var O=function(){function t(t,e,r){var i,O;if(e===void 0){e={}}if(r===void 0){r=[]}this.factory=t;this.parent=null;this.properties={};this.childNodes=[];try{for(var o=n(Object.keys(e)),E=o.next();!E.done;E=o.next()){var s=E.value;this.setProperty(s,e[s])}}catch(a){i={error:a}}finally{try{if(E&&!E.done&&(O=o.return))O.call(o)}finally{if(i)throw i.error}}if(r.length){this.setChildren(r)}}Object.defineProperty(t.prototype,"kind",{get:function(){return"unknown"},enumerable:false,configurable:true});t.prototype.setProperty=function(t,e){this.properties[t]=e};t.prototype.getProperty=function(t){return this.properties[t]};t.prototype.getPropertyNames=function(){return Object.keys(this.properties)};t.prototype.getAllProperties=function(){return this.properties};t.prototype.removeProperty=function(){var t,e;var r=[];for(var i=0;i=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,O=[],o;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)O.push(n.value)}catch(E){o={error:E}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(o)throw o.error}}return O};var n=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,O;i0)&&!(n=i.next()).done)O.push(n.value)}catch(E){o={error:E}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(o)throw o.error}}return O};var i=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,O;i{n.r(t);n.d(t,{dtd:()=>f});var r;function l(e,t){r=t;return e}function a(e,t){var n=e.next();if(n=="<"&&e.eat("!")){if(e.eatWhile(/[\-]/)){t.tokenize=i;return i(e,t)}else if(e.eatWhile(/[\w]/))return l("keyword","doindent")}else if(n=="<"&&e.eat("?")){t.tokenize=s("meta","?>");return l("meta",n)}else if(n=="#"&&e.eatWhile(/[\w]/))return l("atom","tag");else if(n=="|")return l("keyword","separator");else if(n.match(/[\(\)\[\]\-\.,\+\?>]/))return l(null,n);else if(n.match(/[\[\]]/))return l("rule",n);else if(n=='"'||n=="'"){t.tokenize=u(n);return t.tokenize(e,t)}else if(e.eatWhile(/[a-zA-Z\?\+\d]/)){var r=e.current();if(r.substr(r.length-1,r.length).match(/\?|\+/)!==null)e.backUp(1);return l("tag","tag")}else if(n=="%"||n=="*")return l("number","number");else{e.eatWhile(/[\w\\\-_%.{,]/);return l(null,null)}}function i(e,t){var n=0,r;while((r=e.next())!=null){if(n>=2&&r==">"){t.tokenize=a;break}n=r=="-"?n+1:0}return l("comment","comment")}function u(e){return function(t,n){var r=false,i;while((i=t.next())!=null){if(i==e&&!r){n.tokenize=a;break}r=!r&&i=="\\"}return l("string","tag")}}function s(e,t){return function(n,r){while(!n.eol()){if(n.match(t)){r.tokenize=a;break}n.next()}return e}}const f={name:"dtd",startState:function(){return{tokenize:a,baseIndent:0,stack:[]}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t);var l=t.stack[t.stack.length-1];if(e.current()=="["||r==="doindent"||r=="[")t.stack.push("rule");else if(r==="endtag")t.stack[t.stack.length-1]="endtag";else if(e.current()=="]"||r=="]"||r==">"&&l=="rule")t.stack.pop();else if(r=="[")t.stack.push("[");return n},indent:function(e,t,n){var l=e.stack.length;if(t.charAt(0)==="]")l--;else if(t.substr(t.length-1,t.length)===">"){if(t.substr(0,1)==="<"){}else if(r=="doindent"&&t.length>1){}else if(r=="doindent")l--;else if(r==">"&&t.length>1){}else if(r=="tag"&&t!==">"){}else if(r=="tag"&&e.stack[e.stack.length-1]=="rule")l--;else if(r=="tag")l++;else if(t===">"&&e.stack[e.stack.length-1]=="rule"&&r===">")l--;else if(t===">"&&e.stack[e.stack.length-1]=="rule"){}else if(t.substr(0,1)!=="<"&&t.substr(0,1)===">")l=l-1;else if(t===">"){}else l=l-1;if(r==null||r=="]")l--}return e.baseIndent+l*n.unit},languageData:{indentOnInput:/^\s*[\]>]$/}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2467.4227742ac4b60289f222.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2467.4227742ac4b60289f222.js deleted file mode 100644 index b92148cb8dee51dfb0ea1b11c7a2d59cb3b26869..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2467.4227742ac4b60289f222.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2467],{2467:(e,t,r)=>{r.r(t);r.d(t,{velocity:()=>p});function n(e){var t={},r=e.split(" ");for(var n=0;n!?:\/|]/;function o(e,t,r){t.tokenize=r;return r(e,t)}function u(e,t){var r=t.beforeParams;t.beforeParams=false;var n=e.next();if(n=="'"&&!t.inString&&t.inParams){t.lastTokenWasBuiltin=false;return o(e,t,f(n))}else if(n=='"'){t.lastTokenWasBuiltin=false;if(t.inString){t.inString=false;return"string"}else if(t.inParams)return o(e,t,f(n))}else if(/[\[\]{}\(\),;\.]/.test(n)){if(n=="("&&r)t.inParams=true;else if(n==")"){t.inParams=false;t.lastTokenWasBuiltin=true}return null}else if(/\d/.test(n)){t.lastTokenWasBuiltin=false;e.eatWhile(/[\w\.]/);return"number"}else if(n=="#"&&e.eat("*")){t.lastTokenWasBuiltin=false;return o(e,t,c)}else if(n=="#"&&e.match(/ *\[ *\[/)){t.lastTokenWasBuiltin=false;return o(e,t,k)}else if(n=="#"&&e.eat("#")){t.lastTokenWasBuiltin=false;e.skipToEnd();return"comment"}else if(n=="$"){e.eat("!");e.eatWhile(/[\w\d\$_\.{}-]/);if(s&&s.propertyIsEnumerable(e.current())){return"keyword"}else{t.lastTokenWasBuiltin=true;t.beforeParams=true;return"builtin"}}else if(l.test(n)){t.lastTokenWasBuiltin=false;e.eatWhile(l);return"operator"}else{e.eatWhile(/[\w\$_{}@]/);var u=e.current();if(a&&a.propertyIsEnumerable(u))return"keyword";if(i&&i.propertyIsEnumerable(u)||e.current().match(/^#@?[a-z0-9_]+ *$/i)&&e.peek()=="("&&!(i&&i.propertyIsEnumerable(u.toLowerCase()))){t.beforeParams=true;t.lastTokenWasBuiltin=false;return"keyword"}if(t.inString){t.lastTokenWasBuiltin=false;return"string"}if(e.pos>u.length&&e.string.charAt(e.pos-u.length-1)=="."&&t.lastTokenWasBuiltin)return"builtin";t.lastTokenWasBuiltin=false;return null}}function f(e){return function(t,r){var n=false,a,i=false;while((a=t.next())!=null){if(a==e&&!n){i=true;break}if(e=='"'&&t.peek()=="$"&&!n){r.inString=true;i=true;break}n=!n&&a=="\\"}if(i)r.tokenize=u;return"string"}}function c(e,t){var r=false,n;while(n=e.next()){if(n=="#"&&r){t.tokenize=u;break}r=n=="*"}return"comment"}function k(e,t){var r=0,n;while(n=e.next()){if(n=="#"&&r==2){t.tokenize=u;break}if(n=="]")r++;else if(n!=" ")r=0}return"meta"}const p={name:"velocity",startState:function(){return{tokenize:u,beforeParams:false,inParams:false,inString:false,lastTokenWasBuiltin:false}},token:function(e,t){if(e.eatSpace())return null;return t.tokenize(e,t)},languageData:{commentTokens:{line:"##",block:{open:"#*",close:"*#"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/247.84259ab142dd8c151fc2.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/247.84259ab142dd8c151fc2.js deleted file mode 100644 index 3893e315aa1feb2e53aaccea1516a806977ed430..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/247.84259ab142dd8c151fc2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[247],{90247:(e,t,n)=>{n.r(t);n.d(t,{sas:()=>c});var r={};var s={eq:"operator",lt:"operator",le:"operator",gt:"operator",ge:"operator",in:"operator",ne:"operator",or:"operator"};var a=/(<=|>=|!=|<>)/;var o=/[=\(:\),{}.*<>+\-\/^\[\]]/;function i(e,t,n){if(n){var s=t.split(" ");for(var a=0;a{var n=1/0;var o="[object Symbol]";var u=/[&<>"'`]/g,a=RegExp(u.source);var c={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};var p=typeof r.g=="object"&&r.g&&r.g.Object===Object&&r.g;var f=typeof self=="object"&&self&&self.Object===Object&&self;var l=p||f||Function("return this")();function i(t){return function(e){return t==null?undefined:t[e]}}var b=i(c);var s=Object.prototype;var v=s.toString;var y=l.Symbol;var j=y?y.prototype:undefined,g=j?j.toString:undefined;function d(t){if(typeof t=="string"){return t}if(O(t)){return g?g.call(t):""}var e=t+"";return e=="0"&&1/t==-n?"-0":e}function _(t){return!!t&&typeof t=="object"}function O(t){return typeof t=="symbol"||_(t)&&v.call(t)==o}function h(t){return t==null?"":d(t)}function k(t){t=h(t);return t&&a.test(t)?t.replace(u,b):t}t.exports=k}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2550.75fcaa650ffac405c0dc.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2550.75fcaa650ffac405c0dc.js deleted file mode 100644 index d2414e3c1ac7591ef91700b5cc3cfb29e9300dae..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2550.75fcaa650ffac405c0dc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2550],{19163:(t,e,a)=>{a.d(e,{S:()=>n});var r=a(75905);function n(t,e){if(t.accDescr){e.setAccDescription?.(t.accDescr)}if(t.accTitle){e.setAccTitle?.(t.accTitle)}if(t.title){e.setDiagramTitle?.(t.title)}}(0,r.K2)(n,"populateCommonDb")},92550:(t,e,a)=>{a.d(e,{diagram:()=>B});var r=a(19163);var n=a(96049);var o=a(93113);var l=a(75905);var i=a(24010);var c={packet:[]};var s=structuredClone(c);var d=l.UI.packet;var p=(0,l.K2)((()=>{const t=(0,n.$t)({...d,...(0,l.zj)().packet});if(t.showBits){t.paddingY+=10}return t}),"getConfig");var k=(0,l.K2)((()=>s.packet),"getPacket");var b=(0,l.K2)((t=>{if(t.length>0){s.packet.push(t)}}),"pushWord");var g=(0,l.K2)((()=>{(0,l.IU)();s=structuredClone(c)}),"clear");var f={pushWord:b,getPacket:k,getConfig:p,clear:g,setAccTitle:l.SV,getAccTitle:l.iN,setDiagramTitle:l.ke,getDiagramTitle:l.ab,getAccDescription:l.m7,setAccDescription:l.EI};var h=1e4;var u=(0,l.K2)((t=>{(0,r.S)(t,f);let e=-1;let a=[];let n=1;const{bitsPerRow:o}=f.getConfig();for(let{start:r,end:i,label:c}of t.blocks){if(i&&i{if(t.end===void 0){t.end=t.start}if(t.start>t.end){throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`)}if(t.end+1<=e*a){return[t,void 0]}return[{start:t.start,end:e*a-1,label:t.label},{start:e*a,end:t.end,label:t.label}]}),"getNextFittingBlock");var $={parse:(0,l.K2)((async t=>{const e=await(0,i.qg)("packet",t);l.Rm.debug(e);u(e)}),"parse")};var w=(0,l.K2)(((t,e,a,r)=>{const n=r.db;const i=n.getConfig();const{rowHeight:c,paddingY:s,bitWidth:d,bitsPerRow:p}=i;const k=n.getPacket();const b=n.getDiagramTitle();const g=c+s;const f=g*(k.length+1)-(b?0:c);const h=d*p+2;const u=(0,o.D)(e);u.attr("viewbox",`0 0 ${h} ${f}`);(0,l.a$)(u,f,h,i.useMaxWidth);for(const[o,l]of k.entries()){x(u,l,o,i)}u.append("text").text(b).attr("x",h/2).attr("y",f-g/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")}),"draw");var x=(0,l.K2)(((t,e,a,{rowHeight:r,paddingX:n,paddingY:o,bitWidth:l,bitsPerRow:i,showBits:c})=>{const s=t.append("g");const d=a*(r+o)+o;for(const p of e){const t=p.start%i*l+1;const e=(p.end-p.start+1)*l-n;s.append("rect").attr("x",t).attr("y",d).attr("width",e).attr("height",r).attr("class","packetBlock");s.append("text").attr("x",t+e/2).attr("y",d+r/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(p.label);if(!c){continue}const a=p.end===p.start;const o=d-2;s.append("text").attr("x",t+(a?e/2:0)).attr("y",o).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",a?"middle":"start").text(p.start);if(!a){s.append("text").attr("x",t+e).attr("y",o).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(p.end)}}}),"drawWord");var m={draw:w};var y={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"};var C=(0,l.K2)((({packet:t}={})=>{const e=(0,n.$t)(y,t);return`\n\t.packetByte {\n\t\tfont-size: ${e.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${e.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${e.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${e.labelColor};\n\t\tfont-size: ${e.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${e.titleColor};\n\t\tfont-size: ${e.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${e.blockStrokeColor};\n\t\tstroke-width: ${e.blockStrokeWidth};\n\t\tfill: ${e.blockFillColor};\n\t}\n\t`}),"styles");var B={parser:$,db:f,renderer:m,styles:C}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2574.327dadfe49120269ff31.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2574.327dadfe49120269ff31.js deleted file mode 100644 index 0db996f79a395cc56b7db4591dd1ea13c512a04e..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2574.327dadfe49120269ff31.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2574],{92574:(e,t,n)=>{n.r(t);n.d(t,{dockerFile:()=>f});var r=n(47228);var a="from";var s=new RegExp("^(\\s*)\\b("+a+")\\b","i");var o=["run","cmd","entrypoint","shell"];var l=new RegExp("^(\\s*)("+o.join("|")+")(\\s+\\[)","i");var i="expose";var u=new RegExp("^(\\s*)("+i+")(\\s+)","i");var g=["arg","from","maintainer","label","env","add","copy","volume","user","workdir","onbuild","stopsignal","healthcheck","shell"];var d=[a,i].concat(o).concat(g),p="("+d.join("|")+")",x=new RegExp("^(\\s*)"+p+"(\\s*)(#.*)?$","i"),k=new RegExp("^(\\s*)"+p+"(\\s+)","i");const f=(0,r.I)({start:[{regex:/^\s*#.*$/,sol:true,token:"comment"},{regex:s,token:[null,"keyword"],sol:true,next:"from"},{regex:x,token:[null,"keyword",null,"error"],sol:true},{regex:l,token:[null,"keyword",null],sol:true,next:"array"},{regex:u,token:[null,"keyword",null],sol:true,next:"expose"},{regex:k,token:[null,"keyword",null],sol:true,next:"arguments"},{regex:/./,token:null}],from:[{regex:/\s*$/,token:null,next:"start"},{regex:/(\s*)(#.*)$/,token:[null,"error"],next:"start"},{regex:/(\s*\S+\s+)(as)/i,token:[null,"keyword"],next:"start"},{token:null,next:"start"}],single:[{regex:/(?:[^\\']|\\.)/,token:"string"},{regex:/'/,token:"string",pop:true}],double:[{regex:/(?:[^\\"]|\\.)/,token:"string"},{regex:/"/,token:"string",pop:true}],array:[{regex:/\]/,token:null,next:"start"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"}],expose:[{regex:/\d+$/,token:"number",next:"start"},{regex:/[^\d]+$/,token:null,next:"start"},{regex:/\d+/,token:"number"},{regex:/[^\d]+/,token:null},{token:null,next:"start"}],arguments:[{regex:/^\s*#.*$/,sol:true,token:"comment"},{regex:/"(?:[^\\"]|\\.)*"?$/,token:"string",next:"start"},{regex:/"/,token:"string",push:"double"},{regex:/'(?:[^\\']|\\.)*'?$/,token:"string",next:"start"},{regex:/'/,token:"string",push:"single"},{regex:/[^#"']+[\\`]$/,token:null},{regex:/[^#"']+$/,token:null,next:"start"},{regex:/[^#"']+/,token:null},{token:null,next:"start"}],languageData:{commentTokens:{line:"#"}}})},47228:(e,t,n)=>{n.d(t,{I:()=>r});function r(e){a(e,"start");var t={},n=e.languageData||{},r=false;for(var s in e)if(s!=n&&e.hasOwnProperty(s)){var o=t[s]=[],g=e[s];for(var d=0;d2&&o.token&&typeof o.token!="string"){n.pending=[];for(var u=2;u-1)return null;var a=n.indent.length-1,s=e[n.state];e:for(;;){for(var o=0;o{o.r(t);o.d(t,{Accordion:()=>oi,AccordionItem:()=>ei,Anchor:()=>_i,AnchoredRegion:()=>Ui,Avatar:()=>en,Badge:()=>an,Breadcrumb:()=>sn,BreadcrumbItem:()=>un,Button:()=>gn,Card:()=>xn,Checkbox:()=>Fn,Combobox:()=>Dn,DataGrid:()=>Rn,DataGridCell:()=>On,DataGridRow:()=>Nn,DateField:()=>qn,DelegatesARIAToolbar:()=>Ds,DesignSystemProvider:()=>Qn,Dialog:()=>al,DirectionalStyleSheetBehavior:()=>Zi,Disclosure:()=>ll,Divider:()=>dl,FoundationToolbar:()=>Vs,Listbox:()=>hl,Menu:()=>bl,MenuItem:()=>vl,NumberField:()=>yl,Option:()=>Fl,PaletteRGB:()=>nt,Picker:()=>Js,PickerList:()=>rc,PickerListItem:()=>ic,PickerMenu:()=>Qs,PickerMenuOption:()=>tc,Progress:()=>Tl,ProgressRing:()=>jl,Radio:()=>Ol,RadioGroup:()=>Pl,Search:()=>Gl,Select:()=>_l,Skeleton:()=>Ul,Slider:()=>Kl,SliderLabel:()=>as,StandardLuminance:()=>he,SwatchRGB:()=>se,Switch:()=>ls,Tab:()=>ps,TabPanel:()=>ds,Tabs:()=>fs,TextArea:()=>$s,TextField:()=>ws,Toolbar:()=>js,Tooltip:()=>Ls,TreeItem:()=>Ms,TreeView:()=>_s,accentColor:()=>Xo,accentFillActive:()=>pr,accentFillActiveDelta:()=>vo,accentFillFocus:()=>gr,accentFillFocusDelta:()=>$o,accentFillHover:()=>hr,accentFillHoverDelta:()=>mo,accentFillRecipe:()=>dr,accentFillRest:()=>ur,accentFillRestDelta:()=>fo,accentForegroundActive:()=>jr,accentForegroundActiveDelta:()=>wo,accentForegroundFocus:()=>zr,accentForegroundFocusDelta:()=>ko,accentForegroundHover:()=>Dr,accentForegroundHoverDelta:()=>yo,accentForegroundRecipe:()=>Tr,accentForegroundRest:()=>Vr,accentForegroundRestDelta:()=>xo,accentPalette:()=>Zo,accordionItemStyles:()=>Qa,accordionStyles:()=>Ya,addJupyterLabThemeChangeListener:()=>_a,allComponents:()=>lc,anchorStyles:()=>Ei,anchoredRegionStyles:()=>Wi,applyJupyterTheme:()=>Xa,avatarStyles:()=>Qi,badgeStyles:()=>rn,baseHeightMultiplier:()=>At,baseHorizontalSpacingMultiplier:()=>Mt,baseLayerLuminance:()=>Gt,bodyFont:()=>It,breadcrumbItemStyles:()=>dn,breadcrumbStyles:()=>ln,buttonStyles:()=>pn,cardStyles:()=>$n,checkboxStyles:()=>wn,checkboxTemplate:()=>kn,comboboxStyles:()=>Vn,controlCornerRadius:()=>Et,dataGridCellStyles:()=>Ln,dataGridRowStyles:()=>Bn,dataGridStyles:()=>zn,dateFieldStyles:()=>Un,dateFieldTemplate:()=>Xn,density:()=>_t,designSystemProviderStyles:()=>tl,designSystemProviderTemplate:()=>el,designUnit:()=>qt,dialogStyles:()=>rl,direction:()=>Ut,disabledOpacity:()=>Xt,disclosureStyles:()=>nl,dividerStyles:()=>cl,elementScale:()=>Wt,errorColor:()=>fa,errorFillActive:()=>ya,errorFillFocus:()=>wa,errorFillHover:()=>xa,errorFillRecipe:()=>va,errorFillRest:()=>$a,errorForegroundActive:()=>Ra,errorForegroundFocus:()=>Ia,errorForegroundHover:()=>Pa,errorForegroundRecipe:()=>Ha,errorForegroundRest:()=>Na,errorPalette:()=>ma,fillColor:()=>sr,focusStrokeInner:()=>ra,focusStrokeInnerRecipe:()=>oa,focusStrokeOuter:()=>ta,focusStrokeOuterRecipe:()=>ea,focusStrokeWidth:()=>Yt,foregroundOnAccentActive:()=>$r,foregroundOnAccentActiveLarge:()=>Fr,foregroundOnAccentFocus:()=>xr,foregroundOnAccentFocusLarge:()=>Cr,foregroundOnAccentHover:()=>vr,foregroundOnAccentHoverLarge:()=>kr,foregroundOnAccentLargeRecipe:()=>yr,foregroundOnAccentRecipe:()=>fr,foregroundOnAccentRest:()=>mr,foregroundOnAccentRestLarge:()=>wr,foregroundOnErrorActive:()=>Ta,foregroundOnErrorActiveLarge:()=>Ba,foregroundOnErrorFocus:()=>Va,foregroundOnErrorFocusLarge:()=>La,foregroundOnErrorHover:()=>Sa,foregroundOnErrorHoverLarge:()=>za,foregroundOnErrorLargeRecipe:()=>Da,foregroundOnErrorRecipe:()=>Fa,foregroundOnErrorRest:()=>Ca,foregroundOnErrorRestLarge:()=>ja,heightNumberAsToken:()=>ba,horizontalSliderLabelStyles:()=>ts,imgTemplate:()=>tn,isDark:()=>ge,jpAccordion:()=>ri,jpAccordionItem:()=>ti,jpAnchor:()=>qi,jpAnchoredRegion:()=>Xi,jpAvatar:()=>on,jpBadge:()=>nn,jpBreadcrumb:()=>cn,jpBreadcrumbItem:()=>hn,jpButton:()=>bn,jpCard:()=>yn,jpCheckbox:()=>Cn,jpCombobox:()=>jn,jpDataGrid:()=>In,jpDataGridCell:()=>Hn,jpDataGridRow:()=>Pn,jpDateField:()=>Zn,jpDesignSystemProvider:()=>ol,jpDialog:()=>il,jpDisclosure:()=>sl,jpDivider:()=>ul,jpListbox:()=>pl,jpMenu:()=>fl,jpMenuItem:()=>$l,jpNumberField:()=>wl,jpOption:()=>Cl,jpPicker:()=>Ks,jpPickerList:()=>ac,jpPickerListItem:()=>nc,jpPickerMenu:()=>ec,jpPickerMenuOption:()=>oc,jpProgress:()=>Vl,jpProgressRing:()=>zl,jpRadio:()=>Hl,jpRadioGroup:()=>Rl,jpSearch:()=>El,jpSelect:()=>ql,jpSkeleton:()=>Xl,jpSlider:()=>Ql,jpSliderLabel:()=>is,jpSwitch:()=>ss,jpTab:()=>gs,jpTabPanel:()=>us,jpTabs:()=>ms,jpTextArea:()=>xs,jpTextField:()=>ks,jpToolbar:()=>zs,jpTooltip:()=>Os,jpTreeItem:()=>Gs,jpTreeView:()=>qs,listboxStyles:()=>Sn,menuItemStyles:()=>ml,menuStyles:()=>gl,neutralColor:()=>Wo,neutralFillActive:()=>Hr,neutralFillActiveDelta:()=>So,neutralFillFocus:()=>Nr,neutralFillFocusDelta:()=>To,neutralFillHover:()=>Or,neutralFillHoverDelta:()=>Co,neutralFillInputActive:()=>Ar,neutralFillInputActiveDelta:()=>jo,neutralFillInputFocus:()=>Mr,neutralFillInputFocusDelta:()=>zo,neutralFillInputHover:()=>Ir,neutralFillInputHoverDelta:()=>Do,neutralFillInputRecipe:()=>Pr,neutralFillInputRest:()=>Rr,neutralFillInputRestDelta:()=>Vo,neutralFillLayerRecipe:()=>Kr,neutralFillLayerRest:()=>Qr,neutralFillLayerRestDelta:()=>Ao,neutralFillRecipe:()=>Br,neutralFillRest:()=>Lr,neutralFillRestDelta:()=>Fo,neutralFillStealthActive:()=>qr,neutralFillStealthActiveDelta:()=>Oo,neutralFillStealthFocus:()=>Wr,neutralFillStealthFocusDelta:()=>Ho,neutralFillStealthHover:()=>_r,neutralFillStealthHoverDelta:()=>Lo,neutralFillStealthRecipe:()=>Gr,neutralFillStealthRest:()=>Er,neutralFillStealthRestDelta:()=>Bo,neutralFillStrongActive:()=>Yr,neutralFillStrongActiveDelta:()=>Ro,neutralFillStrongFocus:()=>Jr,neutralFillStrongFocusDelta:()=>Io,neutralFillStrongHover:()=>Zr,neutralFillStrongHoverDelta:()=>Po,neutralFillStrongRecipe:()=>Ur,neutralFillStrongRest:()=>Xr,neutralFillStrongRestDelta:()=>No,neutralForegroundHint:()=>ia,neutralForegroundHintRecipe:()=>aa,neutralForegroundRecipe:()=>na,neutralForegroundRest:()=>la,neutralLayer1:()=>tr,neutralLayer1Recipe:()=>er,neutralLayer2:()=>rr,neutralLayer2Recipe:()=>or,neutralLayer3:()=>ir,neutralLayer3Recipe:()=>ar,neutralLayer4:()=>lr,neutralLayer4Recipe:()=>nr,neutralLayerCardContainer:()=>Jo,neutralLayerCardContainerRecipe:()=>Yo,neutralLayerFloating:()=>Qo,neutralLayerFloatingRecipe:()=>Ko,neutralPalette:()=>Uo,neutralStrokeActive:()=>ua,neutralStrokeActiveDelta:()=>Eo,neutralStrokeDividerRecipe:()=>pa,neutralStrokeDividerRest:()=>ga,neutralStrokeDividerRestDelta:()=>qo,neutralStrokeFocus:()=>ha,neutralStrokeFocusDelta:()=>_o,neutralStrokeHover:()=>da,neutralStrokeHoverDelta:()=>Go,neutralStrokeRecipe:()=>sa,neutralStrokeRest:()=>ca,neutralStrokeRestDelta:()=>Mo,numberFieldStyles:()=>xl,optionStyles:()=>kl,pickerListItemStyles:()=>Ys,pickerMenuOptionStyles:()=>Xs,pickerMenuStyles:()=>Us,pickerStyles:()=>Ws,progressRingStyles:()=>Dl,progressStyles:()=>Sl,provideJupyterDesignSystem:()=>sc,radioGroupStyles:()=>Nl,radioStyles:()=>Bl,radioTemplate:()=>Ll,searchStyles:()=>Ml,selectStyles:()=>Tn,skeletonStyles:()=>Wl,sliderLabelStyles:()=>rs,sliderStyles:()=>Jl,strokeWidth:()=>Zt,switchStyles:()=>ns,tabPanelStyles:()=>cs,tabStyles:()=>hs,tabsStyles:()=>bs,textAreaStyles:()=>vs,textFieldStyles:()=>ys,toolbarStyles:()=>Ss,tooltipStyles:()=>Bs,treeItemStyles:()=>As,treeViewStyles:()=>Es,typeRampBaseFontSize:()=>Jt,typeRampBaseLineHeight:()=>Kt,typeRampMinus1FontSize:()=>Qt,typeRampMinus1LineHeight:()=>eo,typeRampMinus2FontSize:()=>to,typeRampMinus2LineHeight:()=>oo,typeRampPlus1FontSize:()=>ro,typeRampPlus1LineHeight:()=>ao,typeRampPlus2FontSize:()=>io,typeRampPlus2LineHeight:()=>no,typeRampPlus3FontSize:()=>lo,typeRampPlus3LineHeight:()=>so,typeRampPlus4FontSize:()=>co,typeRampPlus4LineHeight:()=>uo,typeRampPlus5FontSize:()=>ho,typeRampPlus5LineHeight:()=>po,typeRampPlus6FontSize:()=>go,typeRampPlus6LineHeight:()=>bo,verticalSliderLabelStyles:()=>os});function r(e,t,o){if(isNaN(e)||e<=t){return t}else if(e>=o){return o}return e}function a(e,t,o){if(isNaN(e)||e<=t){return 0}else if(e>=o){return 1}return e/(o-t)}function i(e,t,o){if(isNaN(e)){return t}return t+e*(o-t)}function n(e){return e*(Math.PI/180)}function l(e){return e*(180/Math.PI)}function s(e){const t=Math.round(r(e,0,255)).toString(16);if(t.length===1){return"0"+t}return t}function c(e,t,o){if(isNaN(e)||e<=0){return t}else if(e>=1){return o}return t+e*(o-t)}function d(e,t,o){if(e<=0){return t%360}else if(e>=1){return o%360}const r=(t-o+360)%360;const a=(o-t+360)%360;if(r<=a){return(t-r*e+360)%360}return(t+r*e+360)%360}const u=Math.PI*2;function h(e,t,o){if(isNaN(e)||e<=0){return t%u}else if(e>=1){return o%u}const r=(t-o+u)%u;const a=(o-t+u)%u;if(r<=a){return(t-r*e+u)%u}return(t+r*e+u)%u}function p(e,t){const o=Math.pow(10,t);return Math.round(e*o)/o}class g{constructor(e,t,o,r){this.r=e;this.g=t;this.b=o;this.a=typeof r==="number"&&!isNaN(r)?r:1}static fromObject(e){return e&&!isNaN(e.r)&&!isNaN(e.g)&&!isNaN(e.b)?new g(e.r,e.g,e.b,e.a):null}equalValue(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}toStringHexRGB(){return"#"+[this.r,this.g,this.b].map(this.formatHexValue).join("")}toStringHexRGBA(){return this.toStringHexRGB()+this.formatHexValue(this.a)}toStringHexARGB(){return"#"+[this.a,this.r,this.g,this.b].map(this.formatHexValue).join("")}toStringWebRGB(){return`rgb(${Math.round(i(this.r,0,255))},${Math.round(i(this.g,0,255))},${Math.round(i(this.b,0,255))})`}toStringWebRGBA(){return`rgba(${Math.round(i(this.r,0,255))},${Math.round(i(this.g,0,255))},${Math.round(i(this.b,0,255))},${r(this.a,0,1)})`}roundToPrecision(e){return new g(p(this.r,e),p(this.g,e),p(this.b,e),p(this.a,e))}clamp(){return new g(r(this.r,0,1),r(this.g,0,1),r(this.b,0,1),r(this.a,0,1))}toObject(){return{r:this.r,g:this.g,b:this.b,a:this.a}}formatHexValue(e){return s(i(e,0,255))}}const b={aliceblue:{r:.941176,g:.972549,b:1},antiquewhite:{r:.980392,g:.921569,b:.843137},aqua:{r:0,g:1,b:1},aquamarine:{r:.498039,g:1,b:.831373},azure:{r:.941176,g:1,b:1},beige:{r:.960784,g:.960784,b:.862745},bisque:{r:1,g:.894118,b:.768627},black:{r:0,g:0,b:0},blanchedalmond:{r:1,g:.921569,b:.803922},blue:{r:0,g:0,b:1},blueviolet:{r:.541176,g:.168627,b:.886275},brown:{r:.647059,g:.164706,b:.164706},burlywood:{r:.870588,g:.721569,b:.529412},cadetblue:{r:.372549,g:.619608,b:.627451},chartreuse:{r:.498039,g:1,b:0},chocolate:{r:.823529,g:.411765,b:.117647},coral:{r:1,g:.498039,b:.313725},cornflowerblue:{r:.392157,g:.584314,b:.929412},cornsilk:{r:1,g:.972549,b:.862745},crimson:{r:.862745,g:.078431,b:.235294},cyan:{r:0,g:1,b:1},darkblue:{r:0,g:0,b:.545098},darkcyan:{r:0,g:.545098,b:.545098},darkgoldenrod:{r:.721569,g:.52549,b:.043137},darkgray:{r:.662745,g:.662745,b:.662745},darkgreen:{r:0,g:.392157,b:0},darkgrey:{r:.662745,g:.662745,b:.662745},darkkhaki:{r:.741176,g:.717647,b:.419608},darkmagenta:{r:.545098,g:0,b:.545098},darkolivegreen:{r:.333333,g:.419608,b:.184314},darkorange:{r:1,g:.54902,b:0},darkorchid:{r:.6,g:.196078,b:.8},darkred:{r:.545098,g:0,b:0},darksalmon:{r:.913725,g:.588235,b:.478431},darkseagreen:{r:.560784,g:.737255,b:.560784},darkslateblue:{r:.282353,g:.239216,b:.545098},darkslategray:{r:.184314,g:.309804,b:.309804},darkslategrey:{r:.184314,g:.309804,b:.309804},darkturquoise:{r:0,g:.807843,b:.819608},darkviolet:{r:.580392,g:0,b:.827451},deeppink:{r:1,g:.078431,b:.576471},deepskyblue:{r:0,g:.74902,b:1},dimgray:{r:.411765,g:.411765,b:.411765},dimgrey:{r:.411765,g:.411765,b:.411765},dodgerblue:{r:.117647,g:.564706,b:1},firebrick:{r:.698039,g:.133333,b:.133333},floralwhite:{r:1,g:.980392,b:.941176},forestgreen:{r:.133333,g:.545098,b:.133333},fuchsia:{r:1,g:0,b:1},gainsboro:{r:.862745,g:.862745,b:.862745},ghostwhite:{r:.972549,g:.972549,b:1},gold:{r:1,g:.843137,b:0},goldenrod:{r:.854902,g:.647059,b:.12549},gray:{r:.501961,g:.501961,b:.501961},green:{r:0,g:.501961,b:0},greenyellow:{r:.678431,g:1,b:.184314},grey:{r:.501961,g:.501961,b:.501961},honeydew:{r:.941176,g:1,b:.941176},hotpink:{r:1,g:.411765,b:.705882},indianred:{r:.803922,g:.360784,b:.360784},indigo:{r:.294118,g:0,b:.509804},ivory:{r:1,g:1,b:.941176},khaki:{r:.941176,g:.901961,b:.54902},lavender:{r:.901961,g:.901961,b:.980392},lavenderblush:{r:1,g:.941176,b:.960784},lawngreen:{r:.486275,g:.988235,b:0},lemonchiffon:{r:1,g:.980392,b:.803922},lightblue:{r:.678431,g:.847059,b:.901961},lightcoral:{r:.941176,g:.501961,b:.501961},lightcyan:{r:.878431,g:1,b:1},lightgoldenrodyellow:{r:.980392,g:.980392,b:.823529},lightgray:{r:.827451,g:.827451,b:.827451},lightgreen:{r:.564706,g:.933333,b:.564706},lightgrey:{r:.827451,g:.827451,b:.827451},lightpink:{r:1,g:.713725,b:.756863},lightsalmon:{r:1,g:.627451,b:.478431},lightseagreen:{r:.12549,g:.698039,b:.666667},lightskyblue:{r:.529412,g:.807843,b:.980392},lightslategray:{r:.466667,g:.533333,b:.6},lightslategrey:{r:.466667,g:.533333,b:.6},lightsteelblue:{r:.690196,g:.768627,b:.870588},lightyellow:{r:1,g:1,b:.878431},lime:{r:0,g:1,b:0},limegreen:{r:.196078,g:.803922,b:.196078},linen:{r:.980392,g:.941176,b:.901961},magenta:{r:1,g:0,b:1},maroon:{r:.501961,g:0,b:0},mediumaquamarine:{r:.4,g:.803922,b:.666667},mediumblue:{r:0,g:0,b:.803922},mediumorchid:{r:.729412,g:.333333,b:.827451},mediumpurple:{r:.576471,g:.439216,b:.858824},mediumseagreen:{r:.235294,g:.701961,b:.443137},mediumslateblue:{r:.482353,g:.407843,b:.933333},mediumspringgreen:{r:0,g:.980392,b:.603922},mediumturquoise:{r:.282353,g:.819608,b:.8},mediumvioletred:{r:.780392,g:.082353,b:.521569},midnightblue:{r:.098039,g:.098039,b:.439216},mintcream:{r:.960784,g:1,b:.980392},mistyrose:{r:1,g:.894118,b:.882353},moccasin:{r:1,g:.894118,b:.709804},navajowhite:{r:1,g:.870588,b:.678431},navy:{r:0,g:0,b:.501961},oldlace:{r:.992157,g:.960784,b:.901961},olive:{r:.501961,g:.501961,b:0},olivedrab:{r:.419608,g:.556863,b:.137255},orange:{r:1,g:.647059,b:0},orangered:{r:1,g:.270588,b:0},orchid:{r:.854902,g:.439216,b:.839216},palegoldenrod:{r:.933333,g:.909804,b:.666667},palegreen:{r:.596078,g:.984314,b:.596078},paleturquoise:{r:.686275,g:.933333,b:.933333},palevioletred:{r:.858824,g:.439216,b:.576471},papayawhip:{r:1,g:.937255,b:.835294},peachpuff:{r:1,g:.854902,b:.72549},peru:{r:.803922,g:.521569,b:.247059},pink:{r:1,g:.752941,b:.796078},plum:{r:.866667,g:.627451,b:.866667},powderblue:{r:.690196,g:.878431,b:.901961},purple:{r:.501961,g:0,b:.501961},red:{r:1,g:0,b:0},rosybrown:{r:.737255,g:.560784,b:.560784},royalblue:{r:.254902,g:.411765,b:.882353},saddlebrown:{r:.545098,g:.270588,b:.07451},salmon:{r:.980392,g:.501961,b:.447059},sandybrown:{r:.956863,g:.643137,b:.376471},seagreen:{r:.180392,g:.545098,b:.341176},seashell:{r:1,g:.960784,b:.933333},sienna:{r:.627451,g:.321569,b:.176471},silver:{r:.752941,g:.752941,b:.752941},skyblue:{r:.529412,g:.807843,b:.921569},slateblue:{r:.415686,g:.352941,b:.803922},slategray:{r:.439216,g:.501961,b:.564706},slategrey:{r:.439216,g:.501961,b:.564706},snow:{r:1,g:.980392,b:.980392},springgreen:{r:0,g:1,b:.498039},steelblue:{r:.27451,g:.509804,b:.705882},tan:{r:.823529,g:.705882,b:.54902},teal:{r:0,g:.501961,b:.501961},thistle:{r:.847059,g:.74902,b:.847059},tomato:{r:1,g:.388235,b:.278431},transparent:{r:0,g:0,b:0,a:0},turquoise:{r:.25098,g:.878431,b:.815686},violet:{r:.933333,g:.509804,b:.933333},wheat:{r:.960784,g:.870588,b:.701961},white:{r:1,g:1,b:1},whitesmoke:{r:.960784,g:.960784,b:.960784},yellow:{r:1,g:1,b:0},yellowgreen:{r:.603922,g:.803922,b:.196078}};const f=/^rgb\(\s*((?:(?:25[0-5]|2[0-4]\d|1\d\d|\d{1,2})\s*,\s*){2}(?:25[0-5]|2[0-4]\d|1\d\d|\d{1,2})\s*)\)$/i;const m=/^rgba\(\s*((?:(?:25[0-5]|2[0-4]\d|1\d\d|\d{1,2})\s*,\s*){3}(?:0|1|0?\.\d*)\s*)\)$/i;const v=/^#((?:[0-9a-f]{6}|[0-9a-f]{3}))$/i;const $=/^#((?:[0-9a-f]{8}|[0-9a-f]{4}))$/i;function x(e){return v.test(e)}function y(e){return $.test(e)}function w(e){return y(e)}function k(e){return f.test(e)}function F(e){return m.test(e)}function C(e){return b.hasOwnProperty(e)}function S(e){const t=v.exec(e);if(t===null){return null}let o=t[1];if(o.length===3){const e=o.charAt(0);const t=o.charAt(1);const r=o.charAt(2);o=e.concat(e,t,t,r,r)}const r=parseInt(o,16);if(isNaN(r)){return null}return new g(a((r&16711680)>>>16,0,255),a((r&65280)>>>8,0,255),a(r&255,0,255),1)}function T(e){const t=$.exec(e);if(t===null){return null}let o=t[1];if(o.length===4){const e=o.charAt(0);const t=o.charAt(1);const r=o.charAt(2);const a=o.charAt(3);o=e.concat(e,t,t,r,r,a,a)}const r=parseInt(o,16);if(isNaN(r)){return null}return new g(a((r&16711680)>>>16,0,255),a((r&65280)>>>8,0,255),a(r&255,0,255),a((r&4278190080)>>>24,0,255))}function V(e){const t=$.exec(e);if(t===null){return null}let o=t[1];if(o.length===4){const e=o.charAt(0);const t=o.charAt(1);const r=o.charAt(2);const a=o.charAt(3);o=e.concat(e,t,t,r,r,a,a)}const r=parseInt(o,16);if(isNaN(r)){return null}return new ColorRGBA64(normalize((r&4278190080)>>>24,0,255),normalize((r&16711680)>>>16,0,255),normalize((r&65280)>>>8,0,255),normalize(r&255,0,255))}function D(e){const t=f.exec(e);if(t===null){return null}const o=t[1].split(",");return new g(a(Number(o[0]),0,255),a(Number(o[1]),0,255),a(Number(o[2]),0,255),1)}function j(e){const t=m.exec(e);if(t===null){return null}const o=t[1].split(",");if(o.length===4){return new g(a(Number(o[0]),0,255),a(Number(o[1]),0,255),a(Number(o[2]),0,255),Number(o[3]))}return null}function z(e){const t=b[e.toLowerCase()];return t?new g(t.r,t.g,t.b,t.hasOwnProperty("a")?t.a:void 0):null}function B(e){const t=e.toLowerCase();return x(t)?S(t):w(t)?T(t):k(t)?D(t):F(t)?j(t):C(t)?z(t):null}class L{constructor(e,t,o){this.h=e;this.s=t;this.l=o}static fromObject(e){if(e&&!isNaN(e.h)&&!isNaN(e.s)&&!isNaN(e.l)){return new L(e.h,e.s,e.l)}return null}equalValue(e){return this.h===e.h&&this.s===e.s&&this.l===e.l}roundToPrecision(e){return new L(p(this.h,e),p(this.s,e),p(this.l,e))}toObject(){return{h:this.h,s:this.s,l:this.l}}}class O{constructor(e,t,o){this.h=e;this.s=t;this.v=o}static fromObject(e){if(e&&!isNaN(e.h)&&!isNaN(e.s)&&!isNaN(e.v)){return new O(e.h,e.s,e.v)}return null}equalValue(e){return this.h===e.h&&this.s===e.s&&this.v===e.v}roundToPrecision(e){return new O(p(this.h,e),p(this.s,e),p(this.v,e))}toObject(){return{h:this.h,s:this.s,v:this.v}}}class H{constructor(e,t,o){this.l=e;this.a=t;this.b=o}static fromObject(e){if(e&&!isNaN(e.l)&&!isNaN(e.a)&&!isNaN(e.b)){return new H(e.l,e.a,e.b)}return null}equalValue(e){return this.l===e.l&&this.a===e.a&&this.b===e.b}roundToPrecision(e){return new H(p(this.l,e),p(this.a,e),p(this.b,e))}toObject(){return{l:this.l,a:this.a,b:this.b}}}H.epsilon=216/24389;H.kappa=24389/27;class N{constructor(e,t,o){this.l=e;this.c=t;this.h=o}static fromObject(e){if(e&&!isNaN(e.l)&&!isNaN(e.c)&&!isNaN(e.h)){return new N(e.l,e.c,e.h)}return null}equalValue(e){return this.l===e.l&&this.c===e.c&&this.h===e.h}roundToPrecision(e){return new N(p(this.l,e),p(this.c,e),p(this.h,e))}toObject(){return{l:this.l,c:this.c,h:this.h}}}class P{constructor(e,t,o){this.x=e;this.y=t;this.z=o}static fromObject(e){if(e&&!isNaN(e.x)&&!isNaN(e.y)&&!isNaN(e.z)){return new P(e.x,e.y,e.z)}return null}equalValue(e){return this.x===e.x&&this.y===e.y&&this.z===e.z}roundToPrecision(e){return new P(p(this.x,e),p(this.y,e),p(this.z,e))}toObject(){return{x:this.x,y:this.y,z:this.z}}}P.whitePoint=new P(.95047,1,1.08883);function R(e){return e.r*.2126+e.g*.7152+e.b*.0722}function I(e){function t(e){if(e<=.03928){return e/12.92}return Math.pow((e+.055)/1.055,2.4)}return R(new g(t(e.r),t(e.g),t(e.b),1))}const A=(e,t)=>(e+.05)/(t+.05);function M(e,t){const o=I(e);const r=I(t);return o>r?A(o,r):A(r,o)}function G(e,t,o){if(o-t===0){return 0}else{return(e-t)/(o-t)}}function E(e,t,o){const r=G(e.r,t.r,o.r);const a=G(e.g,t.g,o.g);const i=G(e.b,t.b,o.b);return(r+a+i)/3}function _(e,t,o=null){let r=0;let a=o;if(a!==null){r=E(e,t,a)}else{a=new ColorRGBA64(0,0,0,1);r=E(e,t,a);if(r<=0){a=new ColorRGBA64(1,1,1,1);r=E(e,t,a)}}r=Math.round(r*1e3)/1e3;return new ColorRGBA64(a.r,a.g,a.b,r)}function q(e){const t=Math.max(e.r,e.g,e.b);const o=Math.min(e.r,e.g,e.b);const r=t-o;let a=0;if(r!==0){if(t===e.r){a=60*((e.g-e.b)/r%6)}else if(t===e.g){a=60*((e.b-e.r)/r+2)}else{a=60*((e.r-e.g)/r+4)}}if(a<0){a+=360}const i=(t+o)/2;let n=0;if(r!==0){n=r/(1-Math.abs(2*i-1))}return new L(a,n,i)}function W(e,t=1){const o=(1-Math.abs(2*e.l-1))*e.s;const r=o*(1-Math.abs(e.h/60%2-1));const a=e.l-o/2;let i=0;let n=0;let l=0;if(e.h<60){i=o;n=r;l=0}else if(e.h<120){i=r;n=o;l=0}else if(e.h<180){i=0;n=o;l=r}else if(e.h<240){i=0;n=r;l=o}else if(e.h<300){i=r;n=0;l=o}else if(e.h<360){i=o;n=0;l=r}return new g(i+a,n+a,l+a,t)}function U(e){const t=Math.max(e.r,e.g,e.b);const o=Math.min(e.r,e.g,e.b);const r=t-o;let a=0;if(r!==0){if(t===e.r){a=60*((e.g-e.b)/r%6)}else if(t===e.g){a=60*((e.b-e.r)/r+2)}else{a=60*((e.r-e.g)/r+4)}}if(a<0){a+=360}let i=0;if(t!==0){i=r/t}return new O(a,i,t)}function X(e,t=1){const o=e.s*e.v;const r=o*(1-Math.abs(e.h/60%2-1));const a=e.v-o;let i=0;let n=0;let l=0;if(e.h<60){i=o;n=r;l=0}else if(e.h<120){i=r;n=o;l=0}else if(e.h<180){i=0;n=o;l=r}else if(e.h<240){i=0;n=r;l=o}else if(e.h<300){i=r;n=0;l=o}else if(e.h<360){i=o;n=0;l=r}return new g(i+a,n+a,l+a,t)}function Z(e){let t=0;let o=0;if(e.h!==0){t=Math.cos(n(e.h))*e.c;o=Math.sin(n(e.h))*e.c}return new H(e.l,t,o)}function Y(e){let t=0;if(Math.abs(e.b)>.001||Math.abs(e.a)>.001){t=l(Math.atan2(e.b,e.a))}if(t<0){t+=360}const o=Math.sqrt(e.a*e.a+e.b*e.b);return new N(e.l,o,t)}function J(e){const t=(e.l+16)/116;const o=t+e.a/500;const r=t-e.b/200;const a=Math.pow(o,3);const i=Math.pow(t,3);const n=Math.pow(r,3);let l=0;if(a>H.epsilon){l=a}else{l=(116*o-16)/H.kappa}let s=0;if(e.l>H.epsilon*H.kappa){s=i}else{s=e.l/H.kappa}let c=0;if(n>H.epsilon){c=n}else{c=(116*r-16)/H.kappa}l=P.whitePoint.x*l;s=P.whitePoint.y*s;c=P.whitePoint.z*c;return new P(l,s,c)}function K(e){function t(e){if(e>H.epsilon){return Math.pow(e,1/3)}return(H.kappa*e+16)/116}const o=t(e.x/P.whitePoint.x);const r=t(e.y/P.whitePoint.y);const a=t(e.z/P.whitePoint.z);const i=116*r-16;const n=500*(o-r);const l=200*(r-a);return new H(i,n,l)}function Q(e){function t(e){if(e<=.04045){return e/12.92}return Math.pow((e+.055)/1.055,2.4)}const o=t(e.r);const r=t(e.g);const a=t(e.b);const i=o*.4124564+r*.3575761+a*.1804375;const n=o*.2126729+r*.7151522+a*.072175;const l=o*.0193339+r*.119192+a*.9503041;return new P(i,n,l)}function ee(e,t=1){function o(e){if(e<=.0031308){return e*12.92}return 1.055*Math.pow(e,1/2.4)-.055}const r=o(e.x*3.2404542-e.y*1.5371385-e.z*.4985314);const a=o(e.x*-.969266+e.y*1.8760108+e.z*.041556);const i=o(e.x*.0556434-e.y*.2040259+e.z*1.0572252);return new g(r,a,i,t)}function te(e){return K(Q(e))}function oe(e,t=1){return ee(J(e),t)}function re(e){return Y(te(e))}function ae(e,t=1){return oe(Z(e),t)}function ie(e,t=1){let o=0;let r=0;let a=0;if(e<=1e3){e=1e3}else if(e>=4e4){e=4e4}if(e<6600){o=255;r=e/100-2;r=-155.25485562709179-.44596950469579133*r+104.49216199393888*Math.log(r)}else{o=e/100-55;o=351.97690566805693+.114206453784165*o-40.25366309332127*Math.log(o);r=e/100-50;r=325.4494125711974+.07943456536662342*r-28.0852963507957*Math.log(r)}if(e>=6600){a=255}else if(e<2e3){a=0}else{a=e/100-10;a=-254.76935184120902+.8274096064007395*a+115.67994401066147*Math.log(a)}return new ColorRGBA64(o/255,r/255,a/255,t)}function ne(e){let t=0;let o=1e3;let r=4e4;while(r-o>.4){t=(r+o)/2;const a=ie(t);if(a.b/a.r>=e.b/e.r){r=t}else{o=t}}return Math.round(t)}function le(e,t){const o=e.relativeLuminance>t.relativeLuminance?e:t;const r=e.relativeLuminance>t.relativeLuminance?t:e;return(o.relativeLuminance+.05)/(r.relativeLuminance+.05)}const se=Object.freeze({create(e,t,o){return new de(e,t,o)},from(e){return new de(e.r,e.g,e.b)}});function ce(e){const t={r:0,g:0,b:0,toColorString:()=>"",contrast:()=>0,relativeLuminance:0};for(const o in t){if(typeof t[o]!==typeof e[o]){return false}}return true}class de extends g{constructor(e,t,o){super(e,t,o,1);this.toColorString=this.toStringHexRGB;this.contrast=le.bind(null,this);this.createCSS=this.toColorString;this.relativeLuminance=I(this)}static fromObject(e){return new de(e.r,e.g,e.b)}}function ue(e){return se.create(e,e,e)}const he={LightMode:1,DarkMode:.23};const pe=(-.1+Math.sqrt(.21))/2;function ge(e){return e.relativeLuminance<=pe}var be=o(63073);var fe=o(30086);function me(e,t,o=18){const r=re(e);let a=r.c+t*o;if(a<0){a=0}return ae(new N(r.l,a,r.h))}function ve(e,t,o=18){return me(e,-1*t,o)}function $e(e,t,o=18){const r=rgbToLAB(e);const a=r.l-t*o;return labToRGB(new ColorLAB(a,r.a,r.b))}function xe(e,t,o=18){return $e(e,-1*t,o)}function ye(e,t){if(t===0){return 0}return 1-(1-e)/t}function we(e,t){return new ColorRGBA64(ye(e.r,t.r),ye(e.g,t.g),ye(e.b,t.b),1)}function ke(e,t){const o=rgbToHSL(e);const r=rgbToHSL(t);if(r.s===0){return new ColorRGBA64(o.l,o.l,o.l,1)}return hslToRGB(new ColorHSL(r.h,r.s,o.l))}function Fe(e,t){return Math.min(e,t)}function Ce(e,t){return new ColorRGBA64(Fe(e.r,t.r),Fe(e.g,t.g),Fe(e.b,t.b),1)}function Se(e,t){if(t>=1){return 1}const o=e/(1-t);if(o>=1){return 1}return o}function Te(e,t){return new ColorRGBA64(Se(e.r,t.r),Se(e.g,t.g),Se(e.b,t.b),1)}function Ve(e,t){return Math.max(e,t)}function De(e,t){return new ColorRGBA64(Ve(e.r,t.r),Ve(e.g,t.g),Ve(e.b,t.b),1)}function je(e,t){return e*t}function ze(e,t){return new g(je(e.r,t.r),je(e.g,t.g),je(e.b,t.b),1)}function Be(e,t){if(e<.5){return r(2*t*e,0,1)}return r(1-2*(1-t)*(1-e),0,1)}function Le(e,t){return new g(Be(e.r,t.r),Be(e.g,t.g),Be(e.b,t.b),1)}function Oe(e,t){return 1-(1-t)*(1-e)}function He(e,t){return new ColorRGBA64(Oe(e.r,t.r),Oe(e.g,t.g),Oe(e.b,t.b),1)}var Ne;(function(e){e[e["Burn"]=0]="Burn";e[e["Color"]=1]="Color";e[e["Darken"]=2]="Darken";e[e["Dodge"]=3]="Dodge";e[e["Lighten"]=4]="Lighten";e[e["Multiply"]=5]="Multiply";e[e["Overlay"]=6]="Overlay";e[e["Screen"]=7]="Screen"})(Ne||(Ne={}));function Pe(e,t,o){switch(e){case Ne.Burn:return we(t,o);case Ne.Color:return ke(t,o);case Ne.Darken:return Ce(t,o);case Ne.Dodge:return Te(t,o);case Ne.Lighten:return De(t,o);case Ne.Multiply:return ze(t,o);case Ne.Overlay:return Le(t,o);case Ne.Screen:return He(t,o);default:throw new Error("Unknown blend mode")}}function Re(e,t){if(t.a>=1){return t}else if(t.a<=0){return new ColorRGBA64(e.r,e.g,e.b,1)}const o=t.a*t.r+(1-t.a)*e.r;const r=t.a*t.g+(1-t.a)*e.g;const a=t.a*t.b+(1-t.a)*e.b;return new ColorRGBA64(o,r,a,1)}function Ie(e,t,o){if(isNaN(e)||e<=0){return t}else if(e>=1){return o}return new g(c(e,t.r,o.r),c(e,t.g,o.g),c(e,t.b,o.b),c(e,t.a,o.a))}function Ae(e,t,o){if(isNaN(e)||e<=0){return t}else if(e>=1){return o}return new L(d(e,t.h,o.h),c(e,t.s,o.s),c(e,t.l,o.l))}function Me(e,t,o){if(isNaN(e)||e<=0){return t}else if(e>=1){return o}return new O(d(e,t.h,o.h),c(e,t.s,o.s),c(e,t.v,o.v))}function Ge(e,t,o){if(isNaN(e)||e<=0){return t}else if(e>=1){return o}return new P(c(e,t.x,o.x),c(e,t.y,o.y),c(e,t.z,o.z))}function Ee(e,t,o){if(isNaN(e)||e<=0){return t}else if(e>=1){return o}return new H(c(e,t.l,o.l),c(e,t.a,o.a),c(e,t.b,o.b))}function _e(e,t,o){if(isNaN(e)||e<=0){return t}else if(e>=1){return o}return new N(c(e,t.l,o.l),c(e,t.c,o.c),d(e,t.h,o.h))}var qe;(function(e){e[e["RGB"]=0]="RGB";e[e["HSL"]=1]="HSL";e[e["HSV"]=2]="HSV";e[e["XYZ"]=3]="XYZ";e[e["LAB"]=4]="LAB";e[e["LCH"]=5]="LCH"})(qe||(qe={}));function We(e,t,o,r){if(isNaN(e)||e<=0){return o}else if(e>=1){return r}switch(t){case qe.HSL:return W(Ae(e,q(o),q(r)));case qe.HSV:return X(Me(e,U(o),U(r)));case qe.XYZ:return ee(Ge(e,Q(o),Q(r)));case qe.LAB:return oe(Ee(e,te(o),te(r)));case qe.LCH:return ae(_e(e,re(o),re(r)));default:return Ie(e,o,r)}}class Ue{constructor(e){if(e==null||e.length===0){throw new Error("The stops argument must be non-empty")}else{this.stops=this.sortColorScaleStops(e)}}static createBalancedColorScale(e){if(e==null||e.length===0){throw new Error("The colors argument must be non-empty")}const t=new Array(e.length);for(let o=0;o=1){return this.stops[this.stops.length-1].color}let o=0;for(let i=0;i=this.stops.length){r=this.stops.length-1}const a=(e-this.stops[o].position)*(1/(this.stops[r].position-this.stops[o].position));return We(a,t,this.stops[o].color,this.stops[r].color)}trim(e,t,o=qe.RGB){if(e<0||t>1||t=e&&this.stops[n].position<=t){r.push(this.stops[n])}}if(r.length===0){return new Ue([{color:this.getColor(e),position:e},{color:this.getColor(t),position:t}])}if(r[0].position!==e){r.unshift({color:this.getColor(e),position:e})}if(r[r.length-1].position!==t){r.push({color:this.getColor(t),position:t})}const a=t-e;const i=new Array(r.length);for(let n=0;n=1){e=1}const n=this.getColor(e,r);const l=o?0:1;const s=this.getColor(l,r);const c=M(n,s);if(c<=t){return l}let d=o?0:e;let u=o?e:0;let h=l;let p=0;while(p<=i){h=Math.abs(u-d)/2+d;const e=this.getColor(h,r);const i=M(n,e);if(Math.abs(i-t)<=a){return h}else if(i>t){if(o){d=h}else{u=h}}else{if(o){u=h}else{d=h}}p++}return h}clone(){const e=new Array(this.stops.length);for(let t=0;t{const o=e.position;const r=t.position;if(or){return 1}else{return 0}}))}}class Xe{constructor(e){this.config=Object.assign({},Xe.defaultPaletteConfig,e);this.palette=[];this.updatePaletteColors()}updatePaletteGenerationValues(e){let t=false;for(const o in e){if(this.config[o]){if(this.config[o].equalValue){if(!this.config[o].equalValue(e[o])){this.config[o]=e[o];t=true}}else{if(e[o]!==this.config[o]){this.config[o]=e[o];t=true}}}}if(t){this.updatePaletteColors()}return t}updatePaletteColors(){const e=this.generatePaletteColorScale();for(let t=0;t=this.config.saturationAdjustmentCutoff){i=me(i,this.config.saturationLight);n=me(n,this.config.saturationDark)}if(this.config.multiplyLight!==0){const e=ze(this.config.baseColor,i);i=We(this.config.multiplyLight,this.config.interpolationMode,i,e)}if(this.config.multiplyDark!==0){const e=ze(this.config.baseColor,n);n=We(this.config.multiplyDark,this.config.interpolationMode,n,e)}if(this.config.overlayLight!==0){const e=Le(this.config.baseColor,i);i=We(this.config.overlayLight,this.config.interpolationMode,i,e)}if(this.config.overlayDark!==0){const e=Le(this.config.baseColor,n);n=We(this.config.overlayDark,this.config.interpolationMode,n,e)}if(this.config.baseScalePosition){if(this.config.baseScalePosition<=0){return new Ue([{position:0,color:this.config.baseColor},{position:1,color:n.clamp()}])}else if(this.config.baseScalePosition>=1){return new Ue([{position:0,color:i.clamp()},{position:1,color:this.config.baseColor}])}return new Ue([{position:0,color:i.clamp()},{position:this.config.baseScalePosition,color:this.config.baseColor},{position:1,color:n.clamp()}])}return new Ue([{position:0,color:i.clamp()},{position:.5,color:this.config.baseColor},{position:1,color:n.clamp()}])}}Xe.defaultPaletteConfig={baseColor:S("#808080"),steps:11,interpolationMode:qe.RGB,scaleColorLight:new g(1,1,1,1),scaleColorDark:new g(0,0,0,1),clipLight:.185,clipDark:.16,saturationAdjustmentCutoff:.05,saturationLight:.35,saturationDark:1.25,overlayLight:0,overlayDark:.25,multiplyLight:0,multiplyDark:0,baseScalePosition:.5};Xe.greyscalePaletteConfig={baseColor:S("#808080"),steps:11,interpolationMode:qe.RGB,scaleColorLight:new g(1,1,1,1),scaleColorDark:new g(0,0,0,1),clipLight:0,clipDark:0,saturationAdjustmentCutoff:0,saturationLight:0,saturationDark:0,overlayLight:0,overlayDark:0,multiplyLight:0,multiplyDark:0,baseScalePosition:.5};function Ze(e,t){const o=rgbToHSL(e);let r=Number.MAX_VALUE;let a=0;for(let i=0;i= 0")}const r=new Array(e.length+2);r[0]={position:0,color:t.scaleColorLight};r[r.length-1]={position:1,color:t.scaleColorDark};for(let n=0;nle(e,o)>=t;if(r===-1){a=this.reversedSwatches;n=i-n}return ot(a,l,n,i)}get(e){return this.swatches[e]||this.swatches[r(e,0,this.lastIndex)]}closestIndexOf(e){if(this.closestIndexCache.has(e.relativeLuminance)){return this.closestIndexCache.get(e.relativeLuminance)}let t=this.swatches.indexOf(e);if(t!==-1){this.closestIndexCache.set(e.relativeLuminance,t);return t}const o=this.swatches.reduce(((t,o)=>Math.abs(o.relativeLuminance-e.relativeLuminance){const t=S(e.toStringHexRGB());return se.create(t.r,t.g,t.b)}))))}}function st(e,t,o,r,a,i,n,l,s){const c=e.source;const d=t.closestIndexOf(o);const u=Math.max(n,l,s);const h=d>=u?-1:1;const p=e.closestIndexOf(c);const g=p;const b=g+h*-1*r;const f=b+h*a;const m=b+h*i;return{rest:e.get(b),hover:e.get(g),active:e.get(f),focus:e.get(m)}}function ct(e,t,o,r,a,i,n){const l=e.source;const s=e.closestIndexOf(l);const c=rt(t);const d=s+(c===1?Math.min(r,a):Math.max(c*r,c*a));const u=e.colorContrast(t,o,d,c);const h=e.closestIndexOf(u);const p=h+c*Math.abs(r-a);const g=c===1?rc*a;let b;let f;if(g){b=h;f=p}else{b=p;f=h}return{rest:e.get(b),hover:e.get(f),active:e.get(b+c*i),focus:e.get(b+c*n)}}const dt=se.create(1,1,1);const ut=se.create(0,0,0);const ht=se.from(S("#808080"));const pt=se.from(S("#DA1A5F"));const gt=se.from(S("#D32F2F"));function bt(e,t){return e.contrast(dt)>=t?dt:ut}function ft(e,t,o,r,a,i){const n=e.closestIndexOf(t);const l=Math.max(o,r,a,i);const s=n>=l?-1:1;return{rest:e.get(n+s*o),hover:e.get(n+s*r),active:e.get(n+s*a),focus:e.get(n+s*i)}}function mt(e,t,o,r,a,i){const n=rt(t);const l=e.closestIndexOf(t);return{rest:e.get(l-n*o),hover:e.get(l-n*r),active:e.get(l-n*a),focus:e.get(l-n*i)}}function vt(e,t,o){const r=e.closestIndexOf(t);return e.get(r-(r=d?-1:1;return{rest:e.get(u+h*o),hover:e.get(u+h*r),active:e.get(u+h*a),focus:e.get(u+h*i)}}function xt(e,t,o,r,a,i){const n=rt(t);const l=e.closestIndexOf(e.colorContrast(t,4.5));const s=l+n*Math.abs(o-r);const c=n===1?on*r;let d;let u;if(c){d=l;u=s}else{d=s;u=l}return{rest:e.get(d),hover:e.get(u),active:e.get(d+n*a),focus:e.get(d+n*i)}}function yt(e,t){return e.colorContrast(t,3.5)}function wt(e,t,o){return e.colorContrast(o,3.5,e.closestIndexOf(e.source),rt(t)*-1)}function kt(e,t){return e.colorContrast(t,14)}function Ft(e,t){return e.colorContrast(t,4.5)}function Ct(e,t,o){return e.get(e.closestIndexOf(ue(t))+o)}function St(e,t,o){const r=e.closestIndexOf(ue(t))-o;return e.get(r-o)}function Tt(e,t){return e.get(e.closestIndexOf(ue(t)))}function Vt(e,t,o,r,a,i){return Math.max(e.closestIndexOf(ue(t))+o,r,a,i)}function Dt(e,t,o,r,a,i){return e.get(Vt(e,t,o,r,a,i))}function jt(e,t,o,r,a,i){return e.get(Vt(e,t,o,r,a,i)+o)}function zt(e,t,o,r,a,i){return e.get(Vt(e,t,o,r,a,i)+o*2)}function Bt(e,t,o,r,a,i){const n=e.closestIndexOf(t);const l=rt(t);const s=n+l*o;const c=s+l*(r-o);const d=s+l*(a-o);const u=s+l*(i-o);return{rest:e.get(s),hover:e.get(c),active:e.get(d),focus:e.get(u)}}function Lt(e,t,o){return e.get(e.closestIndexOf(t)+rt(t)*o)}function Ot(e,t,o,r,a,i,n,l,s){const c=e.source;const d=t.closestIndexOf(o);const u=Math.max(n,l,s);const h=d>=u?-1:1;const p=e.closestIndexOf(c);const g=p;const b=g+h*-1*r;const f=b+h*a;const m=b+h*i;return{rest:e.get(b),hover:e.get(g),active:e.get(f),focus:e.get(m)}}function Ht(e,t,o,r,a,i,n){const l=e.source;const s=e.closestIndexOf(l);const c=ge(t)?-1:1;const d=s+(c===1?Math.min(r,a):Math.max(c*r,c*a));const u=e.colorContrast(t,o,d,c);const h=e.closestIndexOf(u);const p=h+c*Math.abs(r-a);const g=c===1?rc*a;let b;let f;if(g){b=h;f=p}else{b=p;f=h}return{rest:e.get(b),hover:e.get(f),active:e.get(b+c*i),focus:e.get(b+c*n)}}function Nt(e,t){return e.contrast(dt)>=t?dt:ut}const{create:Pt}=be.DesignToken;function Rt(e){return be.DesignToken.create({name:e,cssCustomPropertyName:null})}const It=Pt("body-font").withDefault('aktiv-grotesk, "Segoe UI", Arial, Helvetica, sans-serif');const At=Pt("base-height-multiplier").withDefault(10);const Mt=Pt("base-horizontal-spacing-multiplier").withDefault(3);const Gt=Pt("base-layer-luminance").withDefault(he.DarkMode);const Et=Pt("control-corner-radius").withDefault(4);const _t=Pt("density").withDefault(0);const qt=Pt("design-unit").withDefault(4);const Wt=Pt("element-scale").withDefault(0);const Ut=Pt("direction").withDefault(fe.O.ltr);const Xt=Pt("disabled-opacity").withDefault(.4);const Zt=Pt("stroke-width").withDefault(1);const Yt=Pt("focus-stroke-width").withDefault(2);const Jt=Pt("type-ramp-base-font-size").withDefault("14px");const Kt=Pt("type-ramp-base-line-height").withDefault("20px");const Qt=Pt("type-ramp-minus-1-font-size").withDefault("12px");const eo=Pt("type-ramp-minus-1-line-height").withDefault("16px");const to=Pt("type-ramp-minus-2-font-size").withDefault("10px");const oo=Pt("type-ramp-minus-2-line-height").withDefault("16px");const ro=Pt("type-ramp-plus-1-font-size").withDefault("16px");const ao=Pt("type-ramp-plus-1-line-height").withDefault("24px");const io=Pt("type-ramp-plus-2-font-size").withDefault("20px");const no=Pt("type-ramp-plus-2-line-height").withDefault("28px");const lo=Pt("type-ramp-plus-3-font-size").withDefault("28px");const so=Pt("type-ramp-plus-3-line-height").withDefault("36px");const co=Pt("type-ramp-plus-4-font-size").withDefault("34px");const uo=Pt("type-ramp-plus-4-line-height").withDefault("44px");const ho=Pt("type-ramp-plus-5-font-size").withDefault("46px");const po=Pt("type-ramp-plus-5-line-height").withDefault("56px");const go=Pt("type-ramp-plus-6-font-size").withDefault("60px");const bo=Pt("type-ramp-plus-6-line-height").withDefault("72px");const fo=Rt("accent-fill-rest-delta").withDefault(0);const mo=Rt("accent-fill-hover-delta").withDefault(4);const vo=Rt("accent-fill-active-delta").withDefault(-5);const $o=Rt("accent-fill-focus-delta").withDefault(0);const xo=Rt("accent-foreground-rest-delta").withDefault(0);const yo=Rt("accent-foreground-hover-delta").withDefault(6);const wo=Rt("accent-foreground-active-delta").withDefault(-4);const ko=Rt("accent-foreground-focus-delta").withDefault(0);const Fo=Rt("neutral-fill-rest-delta").withDefault(7);const Co=Rt("neutral-fill-hover-delta").withDefault(10);const So=Rt("neutral-fill-active-delta").withDefault(5);const To=Rt("neutral-fill-focus-delta").withDefault(0);const Vo=Rt("neutral-fill-input-rest-delta").withDefault(0);const Do=Rt("neutral-fill-input-hover-delta").withDefault(0);const jo=Rt("neutral-fill-input-active-delta").withDefault(0);const zo=Rt("neutral-fill-input-focus-delta").withDefault(0);const Bo=Rt("neutral-fill-stealth-rest-delta").withDefault(0);const Lo=Rt("neutral-fill-stealth-hover-delta").withDefault(5);const Oo=Rt("neutral-fill-stealth-active-delta").withDefault(3);const Ho=Rt("neutral-fill-stealth-focus-delta").withDefault(0);const No=Rt("neutral-fill-strong-rest-delta").withDefault(0);const Po=Rt("neutral-fill-strong-hover-delta").withDefault(8);const Ro=Rt("neutral-fill-strong-active-delta").withDefault(-5);const Io=Rt("neutral-fill-strong-focus-delta").withDefault(0);const Ao=Rt("neutral-fill-layer-rest-delta").withDefault(3);const Mo=Rt("neutral-stroke-rest-delta").withDefault(25);const Go=Rt("neutral-stroke-hover-delta").withDefault(40);const Eo=Rt("neutral-stroke-active-delta").withDefault(16);const _o=Rt("neutral-stroke-focus-delta").withDefault(25);const qo=Rt("neutral-stroke-divider-rest-delta").withDefault(8);const Wo=Pt("neutral-color").withDefault(ht);const Uo=Rt("neutral-palette").withDefault((e=>nt.from(Wo.getValueFor(e))));const Xo=Pt("accent-color").withDefault(pt);const Zo=Rt("accent-palette").withDefault((e=>nt.from(Xo.getValueFor(e))));const Yo=Rt("neutral-layer-card-container-recipe").withDefault({evaluate:e=>Ct(Uo.getValueFor(e),Gt.getValueFor(e),Ao.getValueFor(e))});const Jo=Pt("neutral-layer-card-container").withDefault((e=>Yo.getValueFor(e).evaluate(e)));const Ko=Rt("neutral-layer-floating-recipe").withDefault({evaluate:e=>St(Uo.getValueFor(e),Gt.getValueFor(e),Ao.getValueFor(e))});const Qo=Pt("neutral-layer-floating").withDefault((e=>Ko.getValueFor(e).evaluate(e)));const er=Rt("neutral-layer-1-recipe").withDefault({evaluate:e=>Tt(Uo.getValueFor(e),Gt.getValueFor(e))});const tr=Pt("neutral-layer-1").withDefault((e=>er.getValueFor(e).evaluate(e)));const or=Rt("neutral-layer-2-recipe").withDefault({evaluate:e=>Dt(Uo.getValueFor(e),Gt.getValueFor(e),Ao.getValueFor(e),Fo.getValueFor(e),Co.getValueFor(e),So.getValueFor(e))});const rr=Pt("neutral-layer-2").withDefault((e=>or.getValueFor(e).evaluate(e)));const ar=Rt("neutral-layer-3-recipe").withDefault({evaluate:e=>jt(Uo.getValueFor(e),Gt.getValueFor(e),Ao.getValueFor(e),Fo.getValueFor(e),Co.getValueFor(e),So.getValueFor(e))});const ir=Pt("neutral-layer-3").withDefault((e=>ar.getValueFor(e).evaluate(e)));const nr=Rt("neutral-layer-4-recipe").withDefault({evaluate:e=>zt(Uo.getValueFor(e),Gt.getValueFor(e),Ao.getValueFor(e),Fo.getValueFor(e),Co.getValueFor(e),So.getValueFor(e))});const lr=Pt("neutral-layer-4").withDefault((e=>nr.getValueFor(e).evaluate(e)));const sr=Pt("fill-color").withDefault((e=>tr.getValueFor(e)));var cr;(function(e){e[e["normal"]=4.5]="normal";e[e["large"]=7]="large"})(cr||(cr={}));const dr=Pt({name:"accent-fill-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(e,t)=>st(Zo.getValueFor(e),Uo.getValueFor(e),t||sr.getValueFor(e),mo.getValueFor(e),vo.getValueFor(e),$o.getValueFor(e),Fo.getValueFor(e),Co.getValueFor(e),So.getValueFor(e))});const ur=Pt("accent-fill-rest").withDefault((e=>dr.getValueFor(e).evaluate(e).rest));const hr=Pt("accent-fill-hover").withDefault((e=>dr.getValueFor(e).evaluate(e).hover));const pr=Pt("accent-fill-active").withDefault((e=>dr.getValueFor(e).evaluate(e).active));const gr=Pt("accent-fill-focus").withDefault((e=>dr.getValueFor(e).evaluate(e).focus));const br=e=>(t,o)=>bt(o||ur.getValueFor(t),e);const fr=Rt("foreground-on-accent-recipe").withDefault({evaluate:(e,t)=>br(cr.normal)(e,t)});const mr=Pt("foreground-on-accent-rest").withDefault((e=>fr.getValueFor(e).evaluate(e,ur.getValueFor(e))));const vr=Pt("foreground-on-accent-hover").withDefault((e=>fr.getValueFor(e).evaluate(e,hr.getValueFor(e))));const $r=Pt("foreground-on-accent-active").withDefault((e=>fr.getValueFor(e).evaluate(e,pr.getValueFor(e))));const xr=Pt("foreground-on-accent-focus").withDefault((e=>fr.getValueFor(e).evaluate(e,gr.getValueFor(e))));const yr=Rt("foreground-on-accent-large-recipe").withDefault({evaluate:(e,t)=>br(cr.large)(e,t)});const wr=Pt("foreground-on-accent-rest-large").withDefault((e=>yr.getValueFor(e).evaluate(e,ur.getValueFor(e))));const kr=Pt("foreground-on-accent-hover-large").withDefault((e=>yr.getValueFor(e).evaluate(e,hr.getValueFor(e))));const Fr=Pt("foreground-on-accent-active-large").withDefault((e=>yr.getValueFor(e).evaluate(e,pr.getValueFor(e))));const Cr=Pt("foreground-on-accent-focus-large").withDefault((e=>yr.getValueFor(e).evaluate(e,gr.getValueFor(e))));const Sr=e=>(t,o)=>ct(Zo.getValueFor(t),o||sr.getValueFor(t),e,xo.getValueFor(t),yo.getValueFor(t),wo.getValueFor(t),ko.getValueFor(t));const Tr=Pt({name:"accent-foreground-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(e,t)=>Sr(cr.normal)(e,t)});const Vr=Pt("accent-foreground-rest").withDefault((e=>Tr.getValueFor(e).evaluate(e).rest));const Dr=Pt("accent-foreground-hover").withDefault((e=>Tr.getValueFor(e).evaluate(e).hover));const jr=Pt("accent-foreground-active").withDefault((e=>Tr.getValueFor(e).evaluate(e).active));const zr=Pt("accent-foreground-focus").withDefault((e=>Tr.getValueFor(e).evaluate(e).focus));const Br=Pt({name:"neutral-fill-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(e,t)=>ft(Uo.getValueFor(e),t||sr.getValueFor(e),Fo.getValueFor(e),Co.getValueFor(e),So.getValueFor(e),To.getValueFor(e))});const Lr=Pt("neutral-fill-rest").withDefault((e=>Br.getValueFor(e).evaluate(e).rest));const Or=Pt("neutral-fill-hover").withDefault((e=>Br.getValueFor(e).evaluate(e).hover));const Hr=Pt("neutral-fill-active").withDefault((e=>Br.getValueFor(e).evaluate(e).active));const Nr=Pt("neutral-fill-focus").withDefault((e=>Br.getValueFor(e).evaluate(e).focus));const Pr=Pt({name:"neutral-fill-input-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(e,t)=>mt(Uo.getValueFor(e),t||sr.getValueFor(e),Vo.getValueFor(e),Do.getValueFor(e),jo.getValueFor(e),zo.getValueFor(e))});const Rr=Pt("neutral-fill-input-rest").withDefault((e=>Pr.getValueFor(e).evaluate(e).rest));const Ir=Pt("neutral-fill-input-hover").withDefault((e=>Pr.getValueFor(e).evaluate(e).hover));const Ar=Pt("neutral-fill-input-active").withDefault((e=>Pr.getValueFor(e).evaluate(e).active));const Mr=Pt("neutral-fill-input-focus").withDefault((e=>Pr.getValueFor(e).evaluate(e).focus));const Gr=Pt({name:"neutral-fill-stealth-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(e,t)=>$t(Uo.getValueFor(e),t||sr.getValueFor(e),Bo.getValueFor(e),Lo.getValueFor(e),Oo.getValueFor(e),Ho.getValueFor(e),Fo.getValueFor(e),Co.getValueFor(e),So.getValueFor(e),To.getValueFor(e))});const Er=Pt("neutral-fill-stealth-rest").withDefault((e=>Gr.getValueFor(e).evaluate(e).rest));const _r=Pt("neutral-fill-stealth-hover").withDefault((e=>Gr.getValueFor(e).evaluate(e).hover));const qr=Pt("neutral-fill-stealth-active").withDefault((e=>Gr.getValueFor(e).evaluate(e).active));const Wr=Pt("neutral-fill-stealth-focus").withDefault((e=>Gr.getValueFor(e).evaluate(e).focus));const Ur=Pt({name:"neutral-fill-strong-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(e,t)=>xt(Uo.getValueFor(e),t||sr.getValueFor(e),No.getValueFor(e),Po.getValueFor(e),Ro.getValueFor(e),Io.getValueFor(e))});const Xr=Pt("neutral-fill-strong-rest").withDefault((e=>Ur.getValueFor(e).evaluate(e).rest));const Zr=Pt("neutral-fill-strong-hover").withDefault((e=>Ur.getValueFor(e).evaluate(e).hover));const Yr=Pt("neutral-fill-strong-active").withDefault((e=>Ur.getValueFor(e).evaluate(e).active));const Jr=Pt("neutral-fill-strong-focus").withDefault((e=>Ur.getValueFor(e).evaluate(e).focus));const Kr=Rt("neutral-fill-layer-recipe").withDefault({evaluate:(e,t)=>vt(Uo.getValueFor(e),t||sr.getValueFor(e),Ao.getValueFor(e))});const Qr=Pt("neutral-fill-layer-rest").withDefault((e=>Kr.getValueFor(e).evaluate(e)));const ea=Rt("focus-stroke-outer-recipe").withDefault({evaluate:e=>yt(Uo.getValueFor(e),sr.getValueFor(e))});const ta=Pt("focus-stroke-outer").withDefault((e=>ea.getValueFor(e).evaluate(e)));const oa=Rt("focus-stroke-inner-recipe").withDefault({evaluate:e=>wt(Zo.getValueFor(e),sr.getValueFor(e),ta.getValueFor(e))});const ra=Pt("focus-stroke-inner").withDefault((e=>oa.getValueFor(e).evaluate(e)));const aa=Rt("neutral-foreground-hint-recipe").withDefault({evaluate:e=>Ft(Uo.getValueFor(e),sr.getValueFor(e))});const ia=Pt("neutral-foreground-hint").withDefault((e=>aa.getValueFor(e).evaluate(e)));const na=Rt("neutral-foreground-recipe").withDefault({evaluate:e=>kt(Uo.getValueFor(e),sr.getValueFor(e))});const la=Pt("neutral-foreground-rest").withDefault((e=>na.getValueFor(e).evaluate(e)));const sa=Pt({name:"neutral-stroke-recipe",cssCustomPropertyName:null}).withDefault({evaluate:e=>Bt(Uo.getValueFor(e),sr.getValueFor(e),Mo.getValueFor(e),Go.getValueFor(e),Eo.getValueFor(e),_o.getValueFor(e))});const ca=Pt("neutral-stroke-rest").withDefault((e=>sa.getValueFor(e).evaluate(e).rest));const da=Pt("neutral-stroke-hover").withDefault((e=>sa.getValueFor(e).evaluate(e).hover));const ua=Pt("neutral-stroke-active").withDefault((e=>sa.getValueFor(e).evaluate(e).active));const ha=Pt("neutral-stroke-focus").withDefault((e=>sa.getValueFor(e).evaluate(e).focus));const pa=Rt("neutral-stroke-divider-recipe").withDefault({evaluate:(e,t)=>Lt(Uo.getValueFor(e),t||sr.getValueFor(e),qo.getValueFor(e))});const ga=Pt("neutral-stroke-divider-rest").withDefault((e=>pa.getValueFor(e).evaluate(e)));const ba=be.DesignToken.create({name:"height-number",cssCustomPropertyName:null}).withDefault((e=>(At.getValueFor(e)+_t.getValueFor(e))*qt.getValueFor(e)));const fa=Pt("error-color").withDefault(gt);const ma=Rt("error-palette").withDefault((e=>nt.from(fa.getValueFor(e))));const va=Pt({name:"error-fill-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(e,t)=>Ot(ma.getValueFor(e),Uo.getValueFor(e),t||sr.getValueFor(e),mo.getValueFor(e),vo.getValueFor(e),$o.getValueFor(e),Fo.getValueFor(e),Co.getValueFor(e),So.getValueFor(e))});const $a=Pt("error-fill-rest").withDefault((e=>va.getValueFor(e).evaluate(e).rest));const xa=Pt("error-fill-hover").withDefault((e=>va.getValueFor(e).evaluate(e).hover));const ya=Pt("error-fill-active").withDefault((e=>va.getValueFor(e).evaluate(e).active));const wa=Pt("error-fill-focus").withDefault((e=>va.getValueFor(e).evaluate(e).focus));const ka=e=>(t,o)=>Nt(o||$a.getValueFor(t),e);const Fa=Pt({name:"foreground-on-error-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(e,t)=>ka(cr.normal)(e,t)});const Ca=Pt("foreground-on-error-rest").withDefault((e=>Fa.getValueFor(e).evaluate(e,$a.getValueFor(e))));const Sa=Pt("foreground-on-error-hover").withDefault((e=>Fa.getValueFor(e).evaluate(e,xa.getValueFor(e))));const Ta=Pt("foreground-on-error-active").withDefault((e=>Fa.getValueFor(e).evaluate(e,ya.getValueFor(e))));const Va=Pt("foreground-on-error-focus").withDefault((e=>Fa.getValueFor(e).evaluate(e,wa.getValueFor(e))));const Da=Pt({name:"foreground-on-error-large-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(e,t)=>ka(cr.large)(e,t)});const ja=Pt("foreground-on-error-rest-large").withDefault((e=>Da.getValueFor(e).evaluate(e,$a.getValueFor(e))));const za=Pt("foreground-on-error-hover-large").withDefault((e=>Da.getValueFor(e).evaluate(e,xa.getValueFor(e))));const Ba=Pt("foreground-on-error-active-large").withDefault((e=>Da.getValueFor(e).evaluate(e,ya.getValueFor(e))));const La=Pt("foreground-on-error-focus-large").withDefault((e=>Da.getValueFor(e).evaluate(e,wa.getValueFor(e))));const Oa=e=>(t,o)=>Ht(ma.getValueFor(t),o||sr.getValueFor(t),e,xo.getValueFor(t),yo.getValueFor(t),wo.getValueFor(t),ko.getValueFor(t));const Ha=Pt({name:"error-foreground-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(e,t)=>Oa(cr.normal)(e,t)});const Na=Pt("error-foreground-rest").withDefault((e=>Ha.getValueFor(e).evaluate(e).rest));const Pa=Pt("error-foreground-hover").withDefault((e=>Ha.getValueFor(e).evaluate(e).hover));const Ra=Pt("error-foreground-active").withDefault((e=>Ha.getValueFor(e).evaluate(e).active));const Ia=Pt("error-foreground-focus").withDefault((e=>Ha.getValueFor(e).evaluate(e).focus));const Aa="data-jp-theme-name";const Ma="data-jp-theme-light";const Ga="--jp-layout-color1";let Ea=false;function _a(){if(!Ea){Ea=true;qa()}}function qa(){const e=()=>{const e=new MutationObserver((()=>{Xa()}));e.observe(document.body,{attributes:true,attributeFilter:[Aa],childList:false,characterData:false});Xa()};if(document.readyState==="complete"){e()}else{window.addEventListener("load",e)}}const Wa=e=>{const t=parseInt(e,10);return isNaN(t)?null:t};const Ua={"--jp-border-width":{converter:Wa,token:Zt},"--jp-border-radius":{converter:Wa,token:Et},[Ga]:{converter:(e,t)=>{const o=B(e);if(o){const e=q(o);const t=L.fromObject({h:e.h,s:e.s,l:.5});const r=W(t);return se.create(r.r,r.g,r.b)}else{return null}},token:Wo},"--jp-brand-color1":{converter:(e,t)=>{const o=B(e);if(o){const e=q(o);const r=t?1:-1;const a=L.fromObject({h:e.h,s:e.s,l:e.l+r*mo.getValueFor(document.body)/94});const i=W(a);return se.create(i.r,i.g,i.b)}else{return null}},token:Xo},"--jp-error-color1":{converter:(e,t)=>{const o=B(e);if(o){const e=q(o);const r=t?1:-1;const a=L.fromObject({h:e.h,s:e.s,l:e.l+r*mo.getValueFor(document.body)/94});const i=W(a);return se.create(i.r,i.g,i.b)}else{return null}},token:fa},"--jp-ui-font-family":{token:It},"--jp-ui-font-size1":{token:Jt}};function Xa(){var e;const t=getComputedStyle(document.body);const o=document.body.getAttribute(Ma);let r=false;if(o){r=o==="false"}else{const e=t.getPropertyValue(Ga).toString();if(e){const t=B(e);if(t){r=ge(se.create(t.r,t.g,t.b));console.debug(`Theme is ${r?"dark":"light"} based on '${Ga}' value: ${e}.`)}}}Gt.setValueFor(document.body,r?he.DarkMode:he.LightMode);for(const a in Ua){const o=Ua[a];const i=t.getPropertyValue(a).toString();if(document.body&&i!==""){const t=((e=o.converter)!==null&&e!==void 0?e:e=>e)(i.trim(),r);if(t!==null){o.token.setValueFor(document.body,t)}else{console.error(`Fail to parse value '${i}' for '${a}' as FAST design token.`)}}}}var Za=o(29690);const Ya=(e,t)=>(0,Za.css)` - ${(0,be.display)("flex")} :host { - box-sizing: border-box; - flex-direction: column; - font-family: ${It}; - font-size: ${Qt}; - line-height: ${eo}; - color: ${la}; - border-top: calc(${Zt} * 1px) solid ${ga}; - } -`;var Ja;(function(e){e["Canvas"]="Canvas";e["CanvasText"]="CanvasText";e["LinkText"]="LinkText";e["VisitedText"]="VisitedText";e["ActiveText"]="ActiveText";e["ButtonFace"]="ButtonFace";e["ButtonText"]="ButtonText";e["Field"]="Field";e["FieldText"]="FieldText";e["Highlight"]="Highlight";e["HighlightText"]="HighlightText";e["GrayText"]="GrayText"})(Ja||(Ja={}));const Ka=(0,Za.cssPartial)`(${At} + ${_t} + ${Wt}) * ${qt}`;const Qa=(e,t)=>(0,Za.css)` - ${(0,be.display)("flex")} :host { - box-sizing: border-box; - font-family: ${It}; - flex-direction: column; - font-size: ${Qt}; - line-height: ${eo}; - border-bottom: calc(${Zt} * 1px) solid - ${ga}; - } - - .region { - display: none; - padding: calc((6 + (${qt} * 2 * ${_t})) * 1px); - } - - div.heading { - display: grid; - position: relative; - grid-template-columns: calc(${Ka} * 1px) auto 1fr auto; - color: ${la}; - } - - .button { - appearance: none; - border: none; - background: none; - grid-column: 3; - outline: none; - padding: 0 calc((6 + (${qt} * 2 * ${_t})) * 1px); - text-align: left; - height: calc(${Ka} * 1px); - color: currentcolor; - cursor: pointer; - font-family: inherit; - } - - .button:hover { - color: currentcolor; - } - - .button:active { - color: currentcolor; - } - - .button::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - cursor: pointer; - } - - /* prettier-ignore */ - .button:${be.focusVisible}::before { - outline: none; - border: calc(${Yt} * 1px) solid ${gr}; - border-radius: calc(${Et} * 1px); - } - - :host([expanded]) .region { - display: block; - } - - .icon { - display: flex; - align-items: center; - justify-content: center; - grid-column: 1; - grid-row: 1; - pointer-events: none; - position: relative; - } - - slot[name='expanded-icon'], - slot[name='collapsed-icon'] { - fill: currentcolor; - } - - slot[name='collapsed-icon'] { - display: flex; - } - - :host([expanded]) slot[name='collapsed-icon'] { - display: none; - } - - slot[name='expanded-icon'] { - display: none; - } - - :host([expanded]) slot[name='expanded-icon'] { - display: flex; - } - - .start { - display: flex; - align-items: center; - padding-inline-start: calc(${qt} * 1px); - justify-content: center; - grid-column: 2; - position: relative; - } - - .end { - display: flex; - align-items: center; - justify-content: center; - grid-column: 4; - position: relative; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - /* prettier-ignore */ - .button:${be.focusVisible}::before { - border-color: ${Ja.Highlight}; - } - :host slot[name='collapsed-icon'], - :host([expanded]) slot[name='expanded-icon'] { - fill: ${Ja.ButtonText}; - } - `));class ei extends be.AccordionItem{}const ti=ei.compose({baseName:"accordion-item",baseClass:be.AccordionItem,template:be.accordionItemTemplate,styles:Qa,collapsedIcon:`\n \n \n \n `,expandedIcon:`\n \n \n \n `});class oi extends be.Accordion{}const ri=oi.compose({baseName:"accordion",baseClass:be.Accordion,template:be.accordionTemplate,styles:Ya});var ai=function(e,t){ai=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o))e[o]=t[o]};return ai(e,t)};function ii(e,t){if(typeof t!=="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");ai(e,t);function o(){this.constructor=e}e.prototype=t===null?Object.create(t):(o.prototype=t.prototype,new o)}var ni=function(){ni=Object.assign||function e(t){for(var o,r=1,a=arguments.length;r=0;l--)if(n=e[l])i=(a<3?n(i):a>3?n(t,o,i):n(t,o))||i;return a>3&&i&&Object.defineProperty(t,o,i),i}function ci(e,t){return function(o,r){t(o,r,e)}}function di(e,t,o,r,a,i){function n(e){if(e!==void 0&&typeof e!=="function")throw new TypeError("Function expected");return e}var l=r.kind,s=l==="getter"?"get":l==="setter"?"set":"value";var c=!t&&e?r["static"]?e:e.prototype:null;var d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{});var u,h=false;for(var p=o.length-1;p>=0;p--){var g={};for(var b in r)g[b]=b==="access"?{}:r[b];for(var b in r.access)g.access[b]=r.access[b];g.addInitializer=function(e){if(h)throw new TypeError("Cannot add initializers after decoration has completed");i.push(n(e||null))};var f=(0,o[p])(l==="accessor"?{get:d.get,set:d.set}:d[s],g);if(l==="accessor"){if(f===void 0)continue;if(f===null||typeof f!=="object")throw new TypeError("Object expected");if(u=n(f.get))d.get=u;if(u=n(f.set))d.set=u;if(u=n(f.init))a.push(u)}else if(u=n(f)){if(l==="field")a.push(u);else d[s]=u}}if(c)Object.defineProperty(c,r.name,d);h=true}function ui(e,t,o){var r=arguments.length>2;for(var a=0;a0&&i[i.length-1])&&(l[0]===6||l[0]===2)){o=0;continue}if(l[0]===3&&(!i||l[1]>i[0]&&l[1]=e.length)e=void 0;return{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function xi(e,t){var o=typeof Symbol==="function"&&e[Symbol.iterator];if(!o)return e;var r=o.call(e),a,i=[],n;try{while((t===void 0||t-- >0)&&!(a=r.next()).done)i.push(a.value)}catch(l){n={error:l}}finally{try{if(a&&!a.done&&(o=r["return"]))o.call(r)}finally{if(n)throw n.error}}return i}function yi(){for(var e=[],t=0;t1||l(e,t)}))}}function l(e,t){try{s(r[e](t))}catch(o){u(i[0][3],o)}}function s(e){e.value instanceof Fi?Promise.resolve(e.value.v).then(c,d):u(i[0][2],e)}function c(e){l("next",e)}function d(e){l("throw",e)}function u(e,t){if(e(t),i.shift(),i.length)l(i[0][0],i[0][1])}}function Si(e){var t,o;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,a){t[r]=e[r]?function(t){return(o=!o)?{value:Fi(e[r](t)),done:false}:a?a(t):t}:a}}function Ti(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],o;return t?t.call(e):(e=typeof $i==="function"?$i(e):e[Symbol.iterator](),o={},r("next"),r("throw"),r("return"),o[Symbol.asyncIterator]=function(){return this},o);function r(t){o[t]=e[t]&&function(o){return new Promise((function(r,i){o=e[t](o),a(r,i,o.done,o.value)}))}}function a(e,t,o,r){Promise.resolve(r).then((function(t){e({value:t,done:o})}),t)}}function Vi(e,t){if(Object.defineProperty){Object.defineProperty(e,"raw",{value:t})}else{e.raw=t}return e}var Di=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t};function ji(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var o in e)if(o!=="default"&&Object.prototype.hasOwnProperty.call(e,o))mi(t,e,o);Di(t,e);return t}function zi(e){return e&&e.__esModule?e:{default:e}}function Bi(e,t,o,r){if(o==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return o==="m"?r:o==="a"?r.call(e):r?r.value:t.get(e)}function Li(e,t,o,r,a){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t==="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?a.call(e,o):a?a.value=o:t.set(e,o),o}function Oi(e,t){if(t===null||typeof t!=="object"&&typeof t!=="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e==="function"?t===e:e.has(t)}const Hi=(0,Za.css)` - ${(0,be.display)("inline-flex")} :host { - font-family: ${It}; - outline: none; - font-size: ${Jt}; - line-height: ${Kt}; - height: calc(${Ka} * 1px); - min-width: calc(${Ka} * 1px); - background-color: ${Lr}; - color: ${la}; - border-radius: calc(${Et} * 1px); - fill: currentcolor; - cursor: pointer; - margin: calc((${Yt} + 2) * 1px); - } - - .control { - background: transparent; - height: inherit; - flex-grow: 1; - box-sizing: border-box; - display: inline-flex; - justify-content: center; - align-items: center; - padding: 0 - max( - 1px, - calc((10 + (${qt} * 2 * (${_t} + ${Wt})))) * 1px - ); - white-space: nowrap; - outline: none; - text-decoration: none; - border: calc(${Zt} * 1px) solid transparent; - color: inherit; - border-radius: inherit; - fill: inherit; - cursor: inherit; - font-family: inherit; - font-size: inherit; - line-height: inherit; - } - - :host(:hover) { - background-color: ${Or}; - } - - :host(:active) { - background-color: ${Hr}; - } - - :host([aria-pressed='true']) { - box-shadow: inset 0px 0px 2px 2px ${Yr}; - } - - :host([minimal]), - :host([scale='xsmall']) { - --element-scale: -4; - } - - :host([scale='small']) { - --element-scale: -2; - } - - :host([scale='medium']) { - --element-scale: 0; - } - - :host([scale='large']) { - --element-scale: 2; - } - - :host([scale='xlarge']) { - --element-scale: 4; - } - - /* prettier-ignore */ - .control:${be.focusVisible} { - outline: calc(${Yt} * 1px) solid ${Jr}; - outline-offset: 2px; - -moz-outline-radius: 0px; - } - - .control::-moz-focus-inner { - border: 0; - } - - .start, - .end { - display: flex; - } - - .control.icon-only { - padding: 0; - line-height: 0; - } - - ::slotted(svg) { - ${""} width: 16px; - height: 16px; - pointer-events: none; - } - - .start { - margin-inline-end: 11px; - } - - .end { - margin-inline-start: 11px; - } -`.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host .control { - background-color: ${Ja.ButtonFace}; - border-color: ${Ja.ButtonText}; - color: ${Ja.ButtonText}; - fill: currentColor; - } - - :host(:hover) .control { - forced-color-adjust: none; - background-color: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - } - - /* prettier-ignore */ - .control:${be.focusVisible} { - forced-color-adjust: none; - background-color: ${Ja.Highlight}; - outline-color: ${Ja.ButtonText}; - color: ${Ja.HighlightText}; - } - - .control:hover, - :host([appearance='outline']) .control:hover { - border-color: ${Ja.ButtonText}; - } - - :host([href]) .control { - border-color: ${Ja.LinkText}; - color: ${Ja.LinkText}; - } - - :host([href]) .control:hover, - :host([href]) .control:${be.focusVisible} { - forced-color-adjust: none; - background: ${Ja.ButtonFace}; - outline-color: ${Ja.LinkText}; - color: ${Ja.LinkText}; - fill: currentColor; - } - `));const Ni=(0,Za.css)` - :host([appearance='accent']) { - background: ${ur}; - color: ${mr}; - } - - :host([appearance='accent']:hover) { - background: ${hr}; - color: ${vr}; - } - - :host([appearance='accent'][aria-pressed='true']) { - box-shadow: inset 0px 0px 2px 2px ${jr}; - } - - :host([appearance='accent']:active) .control:active { - background: ${pr}; - color: ${$r}; - } - - :host([appearance="accent"]) .control:${be.focusVisible} { - outline-color: ${gr}; - } -`.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance='accent']) .control { - forced-color-adjust: none; - background: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - } - - :host([appearance='accent']) .control:hover, - :host([appearance='accent']:active) .control:active { - background: ${Ja.HighlightText}; - border-color: ${Ja.Highlight}; - color: ${Ja.Highlight}; - } - - :host([appearance="accent"]) .control:${be.focusVisible} { - outline-color: ${Ja.Highlight}; - } - - :host([appearance='accent'][href]) .control { - background: ${Ja.LinkText}; - color: ${Ja.HighlightText}; - } - - :host([appearance='accent'][href]) .control:hover { - background: ${Ja.ButtonFace}; - border-color: ${Ja.LinkText}; - box-shadow: none; - color: ${Ja.LinkText}; - fill: currentColor; - } - - :host([appearance="accent"][href]) .control:${be.focusVisible} { - outline-color: ${Ja.HighlightText}; - } - `));const Pi=(0,Za.css)` - :host([appearance='error']) { - background: ${$a}; - color: ${mr}; - } - - :host([appearance='error']:hover) { - background: ${xa}; - color: ${vr}; - } - - :host([appearance='error'][aria-pressed='true']) { - box-shadow: inset 0px 0px 2px 2px ${Ra}; - } - - :host([appearance='error']:active) .control:active { - background: ${ya}; - color: ${$r}; - } - - :host([appearance="error"]) .control:${be.focusVisible} { - outline-color: ${wa}; - } -`.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance='error']) .control { - forced-color-adjust: none; - background: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - } - - :host([appearance='error']) .control:hover, - :host([appearance='error']:active) .control:active { - background: ${Ja.HighlightText}; - border-color: ${Ja.Highlight}; - color: ${Ja.Highlight}; - } - - :host([appearance="error"]) .control:${be.focusVisible} { - outline-color: ${Ja.Highlight}; - } - - :host([appearance='error'][href]) .control { - background: ${Ja.LinkText}; - color: ${Ja.HighlightText}; - } - - :host([appearance='error'][href]) .control:hover { - background: ${Ja.ButtonFace}; - border-color: ${Ja.LinkText}; - box-shadow: none; - color: ${Ja.LinkText}; - fill: currentColor; - } - - :host([appearance="error"][href]) .control:${be.focusVisible} { - outline-color: ${Ja.HighlightText}; - } - `));const Ri=(0,Za.css)` - :host([appearance='hypertext']) { - font-size: inherit; - line-height: inherit; - height: auto; - min-width: 0; - background: transparent; - } - - :host([appearance='hypertext']) .control { - display: inline; - padding: 0; - border: none; - box-shadow: none; - border-radius: 0; - line-height: 1; - } - - :host a.control:not(:link) { - background-color: transparent; - cursor: default; - } - :host([appearance='hypertext']) .control:link, - :host([appearance='hypertext']) .control:visited { - background: transparent; - color: ${Vr}; - border-bottom: calc(${Zt} * 1px) solid ${Vr}; - } - - :host([appearance='hypertext']:hover), - :host([appearance='hypertext']) .control:hover { - background: transparent; - border-bottom-color: ${Dr}; - } - - :host([appearance='hypertext']:active), - :host([appearance='hypertext']) .control:active { - background: transparent; - border-bottom-color: ${jr}; - } - - :host([appearance="hypertext"]) .control:${be.focusVisible} { - outline-color: transparent; - border-bottom: calc(${Yt} * 1px) solid ${ta}; - margin-bottom: calc(calc(${Zt} - ${Yt}) * 1px); - } -`.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance='hypertext']:hover) { - background-color: ${Ja.ButtonFace}; - color: ${Ja.ButtonText}; - } - :host([appearance="hypertext"][href]) .control:hover, - :host([appearance="hypertext"][href]) .control:active, - :host([appearance="hypertext"][href]) .control:${be.focusVisible} { - color: ${Ja.LinkText}; - border-bottom-color: ${Ja.LinkText}; - box-shadow: none; - } - `));const Ii=(0,Za.css)` - :host([appearance='lightweight']) { - background: transparent; - color: ${Vr}; - } - - :host([appearance='lightweight']) .control { - padding: 0; - height: initial; - border: none; - box-shadow: none; - border-radius: 0; - } - - :host([appearance='lightweight']:hover) { - background: transparent; - color: ${Dr}; - } - - :host([appearance='lightweight']:active) { - background: transparent; - color: ${jr}; - } - - :host([appearance='lightweight']) .content { - position: relative; - } - - :host([appearance='lightweight']) .content::before { - content: ''; - display: block; - height: calc(${Zt} * 1px); - position: absolute; - top: calc(1em + 4px); - width: 100%; - } - - :host([appearance='lightweight']:hover) .content::before { - background: ${Dr}; - } - - :host([appearance='lightweight']:active) .content::before { - background: ${jr}; - } - - :host([appearance="lightweight"]) .control:${be.focusVisible} { - outline-color: transparent; - } - - :host([appearance="lightweight"]) .control:${be.focusVisible} .content::before { - background: ${la}; - height: calc(${Yt} * 1px); - } -`.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance="lightweight"]) .control:hover, - :host([appearance="lightweight"]) .control:${be.focusVisible} { - forced-color-adjust: none; - background: ${Ja.ButtonFace}; - color: ${Ja.Highlight}; - } - :host([appearance="lightweight"]) .control:hover .content::before, - :host([appearance="lightweight"]) .control:${be.focusVisible} .content::before { - background: ${Ja.Highlight}; - } - - :host([appearance="lightweight"][href]) .control:hover, - :host([appearance="lightweight"][href]) .control:${be.focusVisible} { - background: ${Ja.ButtonFace}; - box-shadow: none; - color: ${Ja.LinkText}; - } - - :host([appearance="lightweight"][href]) .control:hover .content::before, - :host([appearance="lightweight"][href]) .control:${be.focusVisible} .content::before { - background: ${Ja.LinkText}; - } - `));const Ai=(0,Za.css)` - :host([appearance='outline']) { - background: transparent; - border-color: ${ur}; - } - - :host([appearance='outline']:hover) { - border-color: ${hr}; - } - - :host([appearance='outline']:active) { - border-color: ${pr}; - } - - :host([appearance='outline']) .control { - border-color: inherit; - } - - :host([appearance="outline"]) .control:${be.focusVisible} { - outline-color: ${gr}; - } -`.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance='outline']) .control { - border-color: ${Ja.ButtonText}; - } - :host([appearance="outline"]) .control:${be.focusVisible} { - forced-color-adjust: none; - background-color: ${Ja.Highlight}; - outline-color: ${Ja.ButtonText}; - color: ${Ja.HighlightText}; - fill: currentColor; - } - :host([appearance='outline'][href]) .control { - background: ${Ja.ButtonFace}; - border-color: ${Ja.LinkText}; - color: ${Ja.LinkText}; - fill: currentColor; - } - :host([appearance="outline"][href]) .control:hover, - :host([appearance="outline"][href]) .control:${be.focusVisible} { - forced-color-adjust: none; - outline-color: ${Ja.LinkText}; - } - `));const Mi=(0,Za.css)` - :host([appearance='stealth']), - :host([appearance='stealth'][disabled]:active), - :host([appearance='stealth'][disabled]:hover) { - background: transparent; - } - - :host([appearance='stealth']:hover) { - background: ${_r}; - } - - :host([appearance='stealth']:active) { - background: ${qr}; - } - - :host([appearance='stealth']) .control:${be.focusVisible} { - outline-color: ${gr}; - } - - /* Make the focus outline displayed within the button if - it is in a start or end slot; e.g. in a tree item - This will make the focus outline bounded within the container. - */ - :host([appearance='stealth'][slot="end"]) .control:${be.focusVisible}, - :host([appearance='stealth'][slot="start"]) .control:${be.focusVisible} { - outline-offset: -2px; - } -`.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance='stealth']), - :host([appearance='stealth']) .control { - forced-color-adjust: none; - background: ${Ja.ButtonFace}; - border-color: transparent; - color: ${Ja.ButtonText}; - fill: currentColor; - } - - :host([appearance='stealth']:hover) .control { - background: ${Ja.Highlight}; - border-color: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - fill: currentColor; - } - - :host([appearance="stealth"]:${be.focusVisible}) .control { - outline-color: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - fill: currentColor; - } - - :host([appearance='stealth'][href]) .control { - color: ${Ja.LinkText}; - } - - :host([appearance="stealth"][href]:hover) .control, - :host([appearance="stealth"][href]:${be.focusVisible}) .control { - background: ${Ja.LinkText}; - border-color: ${Ja.LinkText}; - color: ${Ja.HighlightText}; - fill: currentColor; - } - - :host([appearance="stealth"][href]:${be.focusVisible}) .control { - forced-color-adjust: none; - box-shadow: 0 0 0 1px ${Ja.LinkText}; - } - `));function Gi(e,t){return new be.PropertyStyleSheetBehavior("appearance",e,t)}const Ei=(e,t)=>(0,Za.css)` - ${Hi} - `.withBehaviors(Gi("accent",Ni),Gi("hypertext",Ri),Gi("lightweight",Ii),Gi("outline",Ai),Gi("stealth",Mi));class _i extends be.Anchor{appearanceChanged(e,t){if(this.$fastController.isConnected){this.classList.remove(e);this.classList.add(t)}}connectedCallback(){super.connectedCallback();if(!this.appearance){this.appearance="neutral"}}defaultSlottedContentChanged(e,t){const o=this.defaultSlottedContent.filter((e=>e.nodeType===Node.ELEMENT_NODE));if(o.length===1&&o[0]instanceof SVGElement){this.control.classList.add("icon-only")}else{this.control.classList.remove("icon-only")}}}si([Za.attr],_i.prototype,"appearance",void 0);const qi=_i.compose({baseName:"anchor",baseClass:be.Anchor,template:be.anchorTemplate,styles:Ei,shadowOptions:{delegatesFocus:true}});const Wi=(e,t)=>(0,Za.css)` - :host { - contain: layout; - display: block; - } -`;class Ui extends be.AnchoredRegion{}const Xi=Ui.compose({baseName:"anchored-region",baseClass:be.AnchoredRegion,template:be.anchoredRegionTemplate,styles:Wi});class Zi{constructor(e,t){this.cache=new WeakMap;this.ltr=e;this.rtl=t}bind(e){this.attach(e)}unbind(e){const t=this.cache.get(e);if(t){Ut.unsubscribe(t)}}attach(e){const t=this.cache.get(e)||new Yi(this.ltr,this.rtl,e);const o=Ut.getValueFor(e);Ut.subscribe(t);t.attach(o);this.cache.set(e,t)}}class Yi{constructor(e,t,o){this.ltr=e;this.rtl=t;this.source=o;this.attached=null}handleChange({target:e,token:t}){this.attach(t.getValueFor(e))}attach(e){if(this.attached!==this[e]){if(this.attached!==null){this.source.$fastController.removeStyles(this.attached)}this.attached=this[e];if(this.attached!==null){this.source.$fastController.addStyles(this.attached)}}}}const Ji=(e,t)=>(0,Za.css)` - ::slotted(${e.tagFor(be.Badge)}) { - left: 0; - } -`;const Ki=(e,t)=>(0,Za.css)` - ::slotted(${e.tagFor(be.Badge)}) { - right: 0; - } -`;const Qi=(e,t)=>(0,Za.css)` - ${(0,be.display)("flex")} :host { - position: relative; - height: var(--avatar-size, var(--avatar-size-default)); - width: var(--avatar-size, var(--avatar-size-default)); - --avatar-size-default: calc( - ( - (${At} + ${_t}) * ${qt} + - ((${qt} * 8) - 40) - ) * 1px - ); - --avatar-text-size: ${Jt}; - --avatar-text-ratio: ${qt}; - } - - .link { - text-decoration: none; - color: ${la}; - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - min-width: 100%; - } - - .square { - border-radius: calc(${Et} * 1px); - min-width: 100%; - overflow: hidden; - } - - .circle { - border-radius: 100%; - min-width: 100%; - overflow: hidden; - } - - .backplate { - position: relative; - display: flex; - background-color: ${ur}; - } - - .media, - ::slotted(img) { - max-width: 100%; - position: absolute; - display: block; - } - - .content { - font-size: calc( - ( - var(--avatar-text-size) + - var(--avatar-size, var(--avatar-size-default)) - ) / var(--avatar-text-ratio) - ); - line-height: var(--avatar-size, var(--avatar-size-default)); - display: block; - min-height: var(--avatar-size, var(--avatar-size-default)); - } - - ::slotted(${e.tagFor(be.Badge)}) { - position: absolute; - display: block; - } - `.withBehaviors(new Zi(Ki(e,t),Ji(e,t)));class en extends be.Avatar{}si([(0,Za.attr)({attribute:"src"})],en.prototype,"imgSrc",void 0);si([Za.attr],en.prototype,"alt",void 0);const tn=(0,Za.html)` - ${(0,Za.when)((e=>e.imgSrc),(0,Za.html)` - ${e=>e.alt} - `)} -`;const on=en.compose({baseName:"avatar",baseClass:be.Avatar,template:be.avatarTemplate,styles:Qi,media:tn,shadowOptions:{delegatesFocus:true}});const rn=(e,t)=>(0,Za.css)` - ${(0,be.display)("inline-block")} :host { - box-sizing: border-box; - font-family: ${It}; - font-size: ${Qt}; - line-height: ${eo}; - } - - .control { - border-radius: calc(${Et} * 1px); - padding: calc(((${qt} * 0.5) - ${Zt}) * 1px) - calc((${qt} - ${Zt}) * 1px); - color: ${la}; - font-weight: 600; - border: calc(${Zt} * 1px) solid transparent; - background-color: ${Lr}; - } - - .control[style] { - font-weight: 400; - } - - :host([circular]) .control { - border-radius: 100px; - padding: 0 calc(${qt} * 1px); - height: calc((${Ka} - (${qt} * 3)) * 1px); - min-width: calc((${Ka} - (${qt} * 3)) * 1px); - display: flex; - align-items: center; - justify-content: center; - box-sizing: border-box; - } -`;class an extends be.Badge{}const nn=an.compose({baseName:"badge",baseClass:be.Badge,template:be.badgeTemplate,styles:rn});const ln=(e,t)=>(0,Za.css)` - ${(0,be.display)("inline-block")} :host { - box-sizing: border-box; - font-family: ${It}; - font-size: ${Jt}; - line-height: ${Kt}; - } - - .list { - display: flex; - flex-wrap: wrap; - } -`;class sn extends be.Breadcrumb{}const cn=sn.compose({baseName:"breadcrumb",baseClass:be.Breadcrumb,template:be.breadcrumbTemplate,styles:ln});const dn=(e,t)=>(0,Za.css)` - ${(0,be.display)("inline-flex")} :host { - background: transparent; - box-sizing: border-box; - font-family: ${It}; - font-size: ${Jt}; - fill: currentColor; - line-height: ${Kt}; - min-width: calc(${Ka} * 1px); - outline: none; - color: ${la} - } - - .listitem { - display: flex; - align-items: center; - width: max-content; - } - - .separator { - margin: 0 6px; - display: flex; - } - - .control { - align-items: center; - box-sizing: border-box; - color: ${Vr}; - cursor: pointer; - display: flex; - fill: inherit; - outline: none; - text-decoration: none; - white-space: nowrap; - } - - .control:hover { - color: ${Dr}; - } - - .control:active { - color: ${jr}; - } - - .control .content { - position: relative; - } - - .control .content::before { - content: ""; - display: block; - height: calc(${Zt} * 1px); - left: 0; - position: absolute; - right: 0; - top: calc(1em + 4px); - width: 100%; - } - - .control:hover .content::before { - background: ${Dr}; - } - - .control:active .content::before { - background: ${jr}; - } - - .control:${be.focusVisible} .content::before { - background: ${zr}; - height: calc(${Yt} * 1px); - } - - .control:not([href]) { - color: ${la}; - cursor: default; - } - - .control:not([href]) .content::before { - background: none; - } - - .start, - .end { - display: flex; - } - - ::slotted(svg) { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - width: 16px; - height: 16px; - } - - .start { - margin-inline-end: 6px; - } - - .end { - margin-inline-start: 6px; - } -`.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - .control:hover .content::before, - .control:${be.focusVisible} .content::before { - background: ${Ja.LinkText}; - } - .start, - .end { - fill: ${Ja.ButtonText}; - } - `));class un extends be.BreadcrumbItem{}const hn=un.compose({baseName:"breadcrumb-item",baseClass:be.BreadcrumbItem,template:be.breadcrumbItemTemplate,styles:dn,separator:"/",shadowOptions:{delegatesFocus:true}});const pn=(e,t)=>(0,Za.css)` - :host([disabled]), - :host([disabled]:hover), - :host([disabled]:active) { - opacity: ${Xt}; - background-color: ${Lr}; - cursor: ${be.disabledCursor}; - } - - ${Hi} - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([disabled]), - :host([disabled]) .control, - :host([disabled]:hover), - :host([disabled]:active) { - forced-color-adjust: none; - background-color: ${Ja.ButtonFace}; - outline-color: ${Ja.GrayText}; - color: ${Ja.GrayText}; - cursor: ${be.disabledCursor}; - opacity: 1; - } - `),Gi("accent",(0,Za.css)` - :host([appearance='accent'][disabled]), - :host([appearance='accent'][disabled]:hover), - :host([appearance='accent'][disabled]:active) { - background: ${ur}; - } - - ${Ni} - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance='accent'][disabled]) .control, - :host([appearance='accent'][disabled]) .control:hover { - background: ${Ja.ButtonFace}; - border-color: ${Ja.GrayText}; - color: ${Ja.GrayText}; - } - `))),Gi("error",(0,Za.css)` - :host([appearance='error'][disabled]), - :host([appearance='error'][disabled]:hover), - :host([appearance='error'][disabled]:active) { - background: ${$a}; - } - - ${Pi} - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance='error'][disabled]) .control, - :host([appearance='error'][disabled]) .control:hover { - background: ${Ja.ButtonFace}; - border-color: ${Ja.GrayText}; - color: ${Ja.GrayText}; - } - `))),Gi("lightweight",(0,Za.css)` - :host([appearance='lightweight'][disabled]:hover), - :host([appearance='lightweight'][disabled]:active) { - background-color: transparent; - color: ${Vr}; - } - - :host([appearance='lightweight'][disabled]) .content::before, - :host([appearance='lightweight'][disabled]:hover) .content::before, - :host([appearance='lightweight'][disabled]:active) .content::before { - background: transparent; - } - - ${Ii} - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance='lightweight'].disabled) .control { - forced-color-adjust: none; - color: ${Ja.GrayText}; - } - - :host([appearance='lightweight'].disabled) - .control:hover - .content::before { - background: none; - } - `))),Gi("outline",(0,Za.css)` - :host([appearance='outline'][disabled]), - :host([appearance='outline'][disabled]:hover), - :host([appearance='outline'][disabled]:active) { - background: transparent; - border-color: ${ur}; - } - - ${Ai} - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance='outline'][disabled]) .control { - border-color: ${Ja.GrayText}; - } - `))),Gi("stealth",(0,Za.css)` - ${Mi} - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([appearance='stealth'][disabled]) { - background: ${Ja.ButtonFace}; - } - - :host([appearance='stealth'][disabled]) .control { - background: ${Ja.ButtonFace}; - border-color: transparent; - color: ${Ja.GrayText}; - } - `))));class gn extends be.Button{constructor(){super(...arguments);this.appearance="neutral"}defaultSlottedContentChanged(e,t){const o=this.defaultSlottedContent.filter((e=>e.nodeType===Node.ELEMENT_NODE));if(o.length===1&&(o[0]instanceof SVGElement||o[0].classList.contains("fa")||o[0].classList.contains("fas"))){this.control.classList.add("icon-only")}else{this.control.classList.remove("icon-only")}}}si([Za.attr],gn.prototype,"appearance",void 0);si([(0,Za.attr)({attribute:"minimal",mode:"boolean"})],gn.prototype,"minimal",void 0);si([Za.attr],gn.prototype,"scale",void 0);const bn=gn.compose({baseName:"button",baseClass:be.Button,template:be.buttonTemplate,styles:pn,shadowOptions:{delegatesFocus:true}});const fn="0 0 calc((var(--elevation) * 0.225px) + 2px) rgba(0, 0, 0, calc(.11 * (2 - var(--background-luminance, 1))))";const mn="0 calc(var(--elevation) * 0.4px) calc((var(--elevation) * 0.9px)) rgba(0, 0, 0, calc(.13 * (2 - var(--background-luminance, 1))))";const vn=`box-shadow: ${fn}, ${mn};`;const $n=(e,t)=>(0,Za.css)` - ${(0,be.display)("block")} :host { - --elevation: 4; - display: block; - contain: content; - height: var(--card-height, 100%); - width: var(--card-width, 100%); - box-sizing: border-box; - background: ${sr}; - border-radius: calc(${Et} * 1px); - ${vn} - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - forced-color-adjust: none; - background: ${Ja.Canvas}; - box-shadow: 0 0 0 1px ${Ja.CanvasText}; - } - `));class xn extends be.Card{connectedCallback(){super.connectedCallback();const e=(0,be.composedParent)(this);if(e){sr.setValueFor(this,(t=>Kr.getValueFor(t).evaluate(t,sr.getValueFor(e))))}}}const yn=xn.compose({baseName:"card",baseClass:be.Card,template:be.cardTemplate,styles:$n});const wn=(e,t)=>(0,Za.css)` - ${(0,be.display)("inline-flex")} :host { - align-items: center; - outline: none; - margin: calc(${qt} * 1px) 0; - /* Chromium likes to select label text or the default slot when the checkbox is - clicked. Maybe there is a better solution here? */ - user-select: none; - } - - .control { - position: relative; - width: calc((${Ka} / 2 + ${qt}) * 1px); - height: calc((${Ka} / 2 + ${qt}) * 1px); - box-sizing: border-box; - border-radius: calc(${Et} * 1px); - border: calc(${Zt} * 1px) solid ${ca}; - background: ${Rr}; - outline: none; - cursor: pointer; - } - - :host([aria-invalid='true']) .control { - border-color: ${$a}; - } - - .label { - font-family: ${It}; - color: ${la}; - /* Need to discuss with Brian how HorizontalSpacingNumber can work. - https://github.com/microsoft/fast/issues/2766 */ - padding-inline-start: calc(${qt} * 2px + 2px); - margin-inline-end: calc(${qt} * 2px + 2px); - cursor: pointer; - font-size: ${Jt}; - line-height: ${Kt}; - } - - .label__hidden { - display: none; - visibility: hidden; - } - - .checked-indicator { - width: 100%; - height: 100%; - display: block; - fill: ${mr}; - opacity: 0; - pointer-events: none; - } - - .indeterminate-indicator { - border-radius: calc(${Et} * 1px); - background: ${mr}; - position: absolute; - top: 50%; - left: 50%; - width: 50%; - height: 50%; - transform: translate(-50%, -50%); - opacity: 0; - } - - :host(:not([disabled])) .control:hover { - background: ${Ir}; - border-color: ${da}; - } - - :host(:not([disabled])) .control:active { - background: ${Ar}; - border-color: ${ua}; - } - - :host([aria-invalid='true']:not([disabled])) .control:hover { - border-color: ${xa}; - } - - :host([aria-invalid='true']:not([disabled])) .control:active { - border-color: ${ya}; - } - - :host(:${be.focusVisible}) .control { - outline: calc(${Yt} * 1px) solid ${gr}; - outline-offset: 2px; - } - - :host([aria-invalid='true']:${be.focusVisible}) .control { - outline-color: ${wa}; - } - - :host([aria-checked='true']) .control { - background: ${ur}; - border: calc(${Zt} * 1px) solid ${ur}; - } - - :host([aria-checked='true']:not([disabled])) .control:hover { - background: ${hr}; - border: calc(${Zt} * 1px) solid ${hr}; - } - - :host([aria-invalid='true'][aria-checked='true']) .control { - background-color: ${$a}; - border-color: ${$a}; - } - - :host([aria-invalid='true'][aria-checked='true']:not([disabled])) - .control:hover { - background-color: ${xa}; - border-color: ${xa}; - } - - :host([aria-checked='true']:not([disabled])) - .control:hover - .checked-indicator { - fill: ${vr}; - } - - :host([aria-checked='true']:not([disabled])) - .control:hover - .indeterminate-indicator { - background: ${vr}; - } - - :host([aria-checked='true']:not([disabled])) .control:active { - background: ${pr}; - border: calc(${Zt} * 1px) solid ${pr}; - } - - :host([aria-invalid='true'][aria-checked='true']:not([disabled])) - .control:active { - background-color: ${ya}; - border-color: ${ya}; - } - - :host([aria-checked='true']:not([disabled])) - .control:active - .checked-indicator { - fill: ${$r}; - } - - :host([aria-checked='true']:not([disabled])) - .control:active - .indeterminate-indicator { - background: ${$r}; - } - - :host([aria-checked="true"]:${be.focusVisible}:not([disabled])) .control { - outline: calc(${Yt} * 1px) solid ${gr}; - outline-offset: 2px; - } - - :host([aria-invalid='true'][aria-checked="true"]:${be.focusVisible}:not([disabled])) .control { - outline-color: ${wa}; - } - - :host([disabled]) .label, - :host([readonly]) .label, - :host([readonly]) .control, - :host([disabled]) .control { - cursor: ${be.disabledCursor}; - } - - :host([aria-checked='true']:not(.indeterminate)) .checked-indicator, - :host(.indeterminate) .indeterminate-indicator { - opacity: 1; - } - - :host([disabled]) { - opacity: ${Xt}; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - .control { - forced-color-adjust: none; - border-color: ${Ja.FieldText}; - background: ${Ja.Field}; - } - :host([aria-invalid='true']) .control { - border-style: dashed; - } - .checked-indicator { - fill: ${Ja.FieldText}; - } - .indeterminate-indicator { - background: ${Ja.FieldText}; - } - :host(:not([disabled])) .control:hover, - .control:active { - border-color: ${Ja.Highlight}; - background: ${Ja.Field}; - } - :host(:${be.focusVisible}) .control { - outline: calc(${Yt} * 1px) solid ${Ja.FieldText}; - outline-offset: 2px; - } - :host([aria-checked="true"]:${be.focusVisible}:not([disabled])) .control { - outline: calc(${Yt} * 1px) solid ${Ja.FieldText}; - outline-offset: 2px; - } - :host([aria-checked='true']) .control { - background: ${Ja.Highlight}; - border-color: ${Ja.Highlight}; - } - :host([aria-checked='true']:not([disabled])) .control:hover, - .control:active { - border-color: ${Ja.Highlight}; - background: ${Ja.HighlightText}; - } - :host([aria-checked='true']) .checked-indicator { - fill: ${Ja.HighlightText}; - } - :host([aria-checked='true']:not([disabled])) - .control:hover - .checked-indicator { - fill: ${Ja.Highlight}; - } - :host([aria-checked='true']) .indeterminate-indicator { - background: ${Ja.HighlightText}; - } - :host([aria-checked='true']) .control:hover .indeterminate-indicator { - background: ${Ja.Highlight}; - } - :host([disabled]) { - opacity: 1; - } - :host([disabled]) .control { - forced-color-adjust: none; - border-color: ${Ja.GrayText}; - background: ${Ja.Field}; - } - :host([disabled]) .indeterminate-indicator, - :host([aria-checked='true'][disabled]) - .control:hover - .indeterminate-indicator { - forced-color-adjust: none; - background: ${Ja.GrayText}; - } - :host([disabled]) .checked-indicator, - :host([aria-checked='true'][disabled]) .control:hover .checked-indicator { - forced-color-adjust: none; - fill: ${Ja.GrayText}; - } - `));const kn=(e,t)=>(0,Za.html)` - -`;class Fn extends be.Checkbox{indeterminateChanged(e,t){if(this.indeterminate){this.classList.add("indeterminate")}else{this.classList.remove("indeterminate")}}}const Cn=Fn.compose({baseName:"checkbox",baseClass:be.Checkbox,template:kn,styles:wn,checkedIndicator:`\n \n \n \n `,indeterminateIndicator:`\n
\n `});const Sn=(e,t)=>{const o=e.tagFor(be.ListboxOption);const r=e.name===e.tagFor(be.ListboxElement)?"":".listbox";return(0,Za.css)` - ${!r?(0,be.display)("inline-flex"):""} - - :host ${r} { - background: ${sr}; - border: calc(${Zt} * 1px) solid ${ca}; - border-radius: calc(${Et} * 1px); - box-sizing: border-box; - flex-direction: column; - padding: calc(${qt} * 1px) 0; - } - - ${!r?(0,Za.css)` -:host(:${be.focusVisible}:not([disabled])) { - outline: none; - } - - :host(:focus-within:not([disabled])) { - border-color: ${ta}; - box-shadow: 0 0 0 - calc((${Yt} - ${Zt}) * 1px) - ${ta} inset; - } - - :host([disabled]) ::slotted(*) { - cursor: ${be.disabledCursor}; - opacity: ${Xt}; - pointer-events: none; - } - `:""} - - ${r||":host([size])"} { - max-height: calc( - (var(--size) * ${Ka} + (${qt} * ${Zt} * 2)) * 1px - ); - overflow-y: auto; - } - - :host([size="0"]) ${r} { - max-height: none; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host(:not([multiple]):${be.focusVisible}) ::slotted(${o}[aria-selected="true"]), - :host([multiple]:${be.focusVisible}) ::slotted(${o}[aria-checked="true"]) { - border-color: ${Ja.ButtonText}; - box-shadow: 0 0 0 calc(${Yt} * 1px) inset ${Ja.HighlightText}; - } - - :host(:not([multiple]):${be.focusVisible}) ::slotted(${o}[aria-selected="true"]) { - background: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - fill: currentcolor; - } - - ::slotted(${o}[aria-selected="true"]:not([aria-checked="true"])) { - background: ${Ja.Highlight}; - border-color: ${Ja.HighlightText}; - color: ${Ja.HighlightText}; - } - `))};const Tn=(e,t)=>{const o=e.name===e.tagFor(be.Select);return(0,Za.css)` - ${(0,be.display)("inline-flex")} - - :host { - --elevation: 14; - background: ${Rr}; - border-radius: calc(${Et} * 1px); - border: calc(${Zt} * 1px) solid ${Xr}; - box-sizing: border-box; - color: ${la}; - font-family: ${It}; - height: calc(${Ka} * 1px); - position: relative; - user-select: none; - min-width: 250px; - outline: none; - vertical-align: top; - } - - :host([aria-invalid='true']) { - border-color: ${$a}; - } - - :host(:not([autowidth])) { - min-width: 250px; - } - - ${o?(0,Za.css)` - :host(:not([aria-haspopup])) { - --elevation: 0; - border: 0; - height: auto; - min-width: 0; - } - `:""} - - ${Sn(e,t)} - - :host .listbox { - ${vn} - border: none; - display: flex; - left: 0; - position: absolute; - width: 100%; - z-index: 1; - } - - .control + .listbox { - --stroke-size: calc(${qt} * ${Zt} * 2); - max-height: calc( - (var(--listbox-max-height) * ${Ka} + var(--stroke-size)) * 1px - ); - } - - ${o?(0,Za.css)` - :host(:not([aria-haspopup])) .listbox { - left: auto; - position: static; - z-index: auto; - } - `:""} - - :host(:not([autowidth])) .listbox { - width: 100%; - } - - :host([autowidth]) ::slotted([role='option']), - :host([autowidth]) ::slotted(option) { - padding: 0 calc(1em + ${qt} * 1.25px + 1px); - } - - .listbox[hidden] { - display: none; - } - - .control { - align-items: center; - box-sizing: border-box; - cursor: pointer; - display: flex; - font-size: ${Jt}; - font-family: inherit; - line-height: ${Kt}; - min-height: 100%; - padding: 0 calc(${qt} * 2.25px); - width: 100%; - } - - :host([minimal]), - :host([scale='xsmall']) { - --element-scale: -4; - } - - :host([scale='small']) { - --element-scale: -2; - } - - :host([scale='medium']) { - --element-scale: 0; - } - - :host([scale='large']) { - --element-scale: 2; - } - - :host([scale='xlarge']) { - --element-scale: 4; - } - - :host(:not([disabled]):hover) { - background: ${Ir}; - border-color: ${Zr}; - } - - :host([aria-invalid='true']:not([disabled]):hover) { - border-color: ${xa}; - } - - :host(:${be.focusVisible}) { - border-color: ${gr}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${gr}; - } - - :host([aria-invalid='true']:${be.focusVisible}) { - border-color: ${wa}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${wa}; - } - - :host(:not([size]):not([multiple]):not([open]):${be.focusVisible}), - :host([multiple]:${be.focusVisible}), - :host([size]:${be.focusVisible}) { - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${gr}; - } - - :host([aria-invalid='true']:not([size]):not([multiple]):not([open]):${be.focusVisible}), - :host([aria-invalid='true'][multiple]:${be.focusVisible}), - :host([aria-invalid='true'][size]:${be.focusVisible}) { - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${wa}; - } - - :host(:not([multiple]):not([size]):${be.focusVisible}) ::slotted(${e.tagFor(be.ListboxOption)}[aria-selected="true"]:not([disabled])) { - box-shadow: 0 0 0 calc(${Yt} * 1px) inset ${gr}; - border-color: ${gr}; - background: ${gr}; - color: ${xr}; - } - - :host([disabled]) { - cursor: ${be.disabledCursor}; - opacity: ${Xt}; - } - - :host([disabled]) .control { - cursor: ${be.disabledCursor}; - user-select: none; - } - - :host([disabled]:hover) { - background: ${Er}; - color: ${la}; - fill: currentcolor; - } - - :host(:not([disabled])) .control:active { - background: ${Ar}; - border-color: ${pr}; - border-radius: calc(${Et} * 1px); - } - - :host([open][position="above"]) .listbox { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - border-bottom: 0; - bottom: calc(${Ka} * 1px); - } - - :host([open][position="below"]) .listbox { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-top: 0; - top: calc(${Ka} * 1px); - } - - .selected-value { - flex: 1 1 auto; - font-family: inherit; - overflow: hidden; - text-align: start; - text-overflow: ellipsis; - white-space: nowrap; - } - - .indicator { - flex: 0 0 auto; - margin-inline-start: 1em; - } - - slot[name="listbox"] { - display: none; - width: 100%; - } - - :host([open]) slot[name="listbox"] { - display: flex; - position: absolute; - ${vn} - } - - .end { - margin-inline-start: auto; - } - - .start, - .end, - .indicator, - .select-indicator, - ::slotted(svg) { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - fill: currentcolor; - height: 1em; - min-height: calc(${qt} * 4px); - min-width: calc(${qt} * 4px); - width: 1em; - } - - ::slotted([role="option"]), - ::slotted(option) { - flex: 0 0 auto; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host(:not([disabled]):hover), - :host(:not([disabled]):active) { - border-color: ${Ja.Highlight}; - } - - :host([aria-invalid='true']) { - border-style: dashed; - } - - :host(:not([disabled]):${be.focusVisible}) { - background-color: ${Ja.ButtonFace}; - box-shadow: 0 0 0 calc(${Yt} * 1px) ${Ja.Highlight}; - color: ${Ja.ButtonText}; - fill: currentcolor; - forced-color-adjust: none; - } - - :host(:not([disabled]):${be.focusVisible}) .listbox { - background: ${Ja.ButtonFace}; - } - - :host([disabled]) { - border-color: ${Ja.GrayText}; - background-color: ${Ja.ButtonFace}; - color: ${Ja.GrayText}; - fill: currentcolor; - opacity: 1; - forced-color-adjust: none; - } - - :host([disabled]:hover) { - background: ${Ja.ButtonFace}; - } - - :host([disabled]) .control { - color: ${Ja.GrayText}; - border-color: ${Ja.GrayText}; - } - - :host([disabled]) .control .select-indicator { - fill: ${Ja.GrayText}; - } - - :host(:${be.focusVisible}) ::slotted([aria-selected="true"][role="option"]), - :host(:${be.focusVisible}) ::slotted(option[aria-selected="true"]), - :host(:${be.focusVisible}) ::slotted([aria-selected="true"][role="option"]:not([disabled])) { - background: ${Ja.Highlight}; - border-color: ${Ja.ButtonText}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${Ja.HighlightText}; - color: ${Ja.HighlightText}; - fill: currentcolor; - } - - .start, - .end, - .indicator, - .select-indicator, - ::slotted(svg) { - color: ${Ja.ButtonText}; - fill: currentcolor; - } - `))};const Vn=(e,t)=>(0,Za.css)` - ${Tn(e,t)} - - :host(:empty) .listbox { - display: none; - } - - :host([disabled]) *, - :host([disabled]) { - cursor: ${be.disabledCursor}; - user-select: none; - } - - :host(:focus-within:not([disabled])) { - border-color: ${gr}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${gr}; - } - - :host([aria-invalid='true']:focus-within:not([disabled])) { - border-color: ${wa}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${wa}; - } - - .selected-value { - -webkit-appearance: none; - background: transparent; - border: none; - color: inherit; - font-size: ${Jt}; - line-height: ${Kt}; - height: calc(100% - (${Zt} * 1px)); - margin: auto 0; - width: 100%; - } - - .selected-value:hover, - .selected-value:${be.focusVisible}, - .selected-value:disabled, - .selected-value:active { - outline: none; - } -`;class Dn extends be.Combobox{connectedCallback(){super.connectedCallback();this.setAutoWidth()}slottedOptionsChanged(e,t){super.slottedOptionsChanged(e,t);this.setAutoWidth()}autoWidthChanged(e,t){if(t){this.setAutoWidth()}else{this.style.removeProperty("width")}}setAutoWidth(){if(!this.autoWidth||!this.isConnected){return}let e=this.listbox.getBoundingClientRect().width;if(e===0&&this.listbox.hidden){Object.assign(this.listbox.style,{visibility:"hidden"});this.listbox.removeAttribute("hidden");e=this.listbox.getBoundingClientRect().width;this.listbox.setAttribute("hidden","");this.listbox.style.removeProperty("visibility")}if(e>0){Object.assign(this.style,{width:`${e}px`})}}maxHeightChanged(e,t){this.updateComputedStylesheet()}updateComputedStylesheet(){if(this.computedStylesheet){this.$fastController.removeStyles(this.computedStylesheet)}const e=Math.floor(this.maxHeight/ba.getValueFor(this)).toString();this.computedStylesheet=(0,Za.css)` - :host { - --listbox-max-height: ${e}; - } - `;this.$fastController.addStyles(this.computedStylesheet)}}si([(0,Za.attr)({attribute:"autowidth",mode:"boolean"})],Dn.prototype,"autoWidth",void 0);si([(0,Za.attr)({attribute:"minimal",mode:"boolean"})],Dn.prototype,"minimal",void 0);si([Za.attr],Dn.prototype,"scale",void 0);const jn=Dn.compose({baseName:"combobox",baseClass:be.Combobox,template:be.comboboxTemplate,styles:Vn,shadowOptions:{delegatesFocus:true},indicator:`\n \n \n \n `});const zn=(e,t)=>(0,Za.css)` - :host { - display: flex; - position: relative; - flex-direction: column; - } -`;const Bn=(e,t)=>(0,Za.css)` - :host { - display: grid; - padding: 1px 0; - box-sizing: border-box; - width: 100%; - border-bottom: calc(${Zt} * 1px) solid ${ga}; - } - - :host(.header) { - } - - :host(.sticky-header) { - background: ${Lr}; - position: sticky; - top: 0; - } -`;const Ln=(e,t)=>(0,Za.css)` - :host { - padding: calc(${qt} * 1px) calc(${qt} * 3px); - color: ${la}; - box-sizing: border-box; - font-family: ${It}; - font-size: ${Jt}; - line-height: ${Kt}; - font-weight: 400; - border: transparent calc(${Yt} * 1px) solid; - overflow: hidden; - white-space: nowrap; - border-radius: calc(${Et} * 1px); - } - - :host(.column-header) { - font-weight: 600; - } - - :host(:${be.focusVisible}) { - outline: calc(${Yt} * 1px) solid ${gr}; - color: ${la}; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - forced-color-adjust: none; - border-color: transparent; - background: ${Ja.Field}; - color: ${Ja.FieldText}; - } - - :host(:${be.focusVisible}) { - border-color: ${Ja.FieldText}; - box-shadow: 0 0 0 2px inset ${Ja.Field}; - color: ${Ja.FieldText}; - } - `));class On extends be.DataGridCell{}const Hn=On.compose({baseName:"data-grid-cell",baseClass:be.DataGridCell,template:be.dataGridCellTemplate,styles:Ln});class Nn extends be.DataGridRow{}const Pn=Nn.compose({baseName:"data-grid-row",baseClass:be.DataGridRow,template:be.dataGridRowTemplate,styles:Bn});class Rn extends be.DataGrid{}const In=Rn.compose({baseName:"data-grid",baseClass:be.DataGrid,template:be.dataGridTemplate,styles:zn});var An=o(74291);class Mn extends be.FoundationElement{}class Gn extends((0,be.FormAssociated)(Mn)){constructor(){super(...arguments);this.proxy=document.createElement("input")}}const En={toView(e){if(e===null||e===undefined){return null}const t=new Date(e);return t.toString()==="Invalid Date"?null:`${t.getFullYear().toString().padStart(4,"0")}-${(t.getMonth()+1).toString().padStart(2,"0")}-${t.getDate().toString().padStart(2,"0")}`},fromView(e){if(e===null||e===undefined){return null}const t=new Date(e);return t.toString()==="Invalid Date"?null:t}};const _n="Invalid Date";class qn extends Gn{constructor(){super(...arguments);this.step=1;this.isUserInput=false}readOnlyChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.readOnly=this.readOnly;this.validate()}}autofocusChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.autofocus=this.autofocus;this.validate()}}listChanged(){if(this.proxy instanceof HTMLInputElement){this.proxy.setAttribute("list",this.list);this.validate()}}maxChanged(e,t){var o;this.max=t<((o=this.min)!==null&&o!==void 0?o:t)?this.min:t;this.value=this.getValidValue(this.value)}minChanged(e,t){var o;this.min=t>((o=this.max)!==null&&o!==void 0?o:t)?this.max:t;this.value=this.getValidValue(this.value)}get valueAsNumber(){return new Date(super.value).valueOf()}set valueAsNumber(e){this.value=new Date(e).toString()}get valueAsDate(){return new Date(super.value)}set valueAsDate(e){this.value=e.toString()}valueChanged(e,t){this.value=this.getValidValue(t);if(t!==this.value){return}if(this.control&&!this.isUserInput){this.control.value=this.value}super.valueChanged(e,this.value);if(e!==undefined&&!this.isUserInput){this.$emit("change")}this.isUserInput=false}getValidValue(e){var t,o;let r=new Date(e);if(r.toString()===_n){r=""}else{r=r>((t=this.max)!==null&&t!==void 0?t:r)?this.max:r;r=r<((o=this.min)!==null&&o!==void 0?o:r)?this.min:r;r=`${r.getFullYear().toString().padStart(4,"0")}-${(r.getMonth()+1).toString().padStart(2,"0")}-${r.getDate().toString().padStart(2,"0")}`}return r}stepUp(){const e=864e5*this.step;const t=new Date(this.value);this.value=new Date(t.toString()!==_n?t.valueOf()+e:0).toString()}stepDown(){const e=864e5*this.step;const t=new Date(this.value);this.value=new Date(t.toString()!==_n?Math.max(t.valueOf()-e,0):0).toString()}connectedCallback(){super.connectedCallback();this.validate();this.control.value=this.value;if(this.autofocus){Za.DOM.queueUpdate((()=>{this.focus()}))}if(!this.appearance){this.appearance="outline"}}handleTextInput(){this.isUserInput=true;this.value=this.control.value}handleChange(){this.$emit("change")}handleKeyDown(e){const t=e.key;switch(t){case An.I5:this.stepUp();return false;case An.HX:this.stepDown();return false}return true}handleBlur(){this.control.value=this.value}}si([Za.attr],qn.prototype,"appearance",void 0);si([(0,Za.attr)({attribute:"readonly",mode:"boolean"})],qn.prototype,"readOnly",void 0);si([(0,Za.attr)({mode:"boolean"})],qn.prototype,"autofocus",void 0);si([Za.attr],qn.prototype,"list",void 0);si([(0,Za.attr)({converter:Za.nullableNumberConverter})],qn.prototype,"step",void 0);si([(0,Za.attr)({converter:En})],qn.prototype,"max",void 0);si([(0,Za.attr)({converter:En})],qn.prototype,"min",void 0);si([Za.observable],qn.prototype,"defaultSlottedNodes",void 0);(0,be.applyMixins)(qn,be.StartEnd,be.DelegatesARIATextbox);const Wn=(0,Za.css)` - ${(0,be.display)("inline-block")} :host { - font-family: ${It}; - outline: none; - user-select: none; - /* Ensure to display focus highlight */ - margin: calc((${Yt} - ${Zt}) * 1px); - } - - .root { - box-sizing: border-box; - position: relative; - display: flex; - flex-direction: row; - color: ${la}; - background: ${Rr}; - border-radius: calc(${Et} * 1px); - border: calc(${Zt} * 1px) solid ${Xr}; - height: calc(${Ka} * 1px); - } - - :host([aria-invalid='true']) .root { - border-color: ${$a}; - } - - .control { - -webkit-appearance: none; - font: inherit; - background: transparent; - border: 0; - color: inherit; - height: calc(100% - 4px); - width: 100%; - margin-top: auto; - margin-bottom: auto; - border: none; - padding: 0 calc(${qt} * 2px + 1px); - font-size: ${Jt}; - line-height: ${Kt}; - } - - .control:placeholder-shown { - text-overflow: ellipsis; - } - - .control:hover, - .control:${be.focusVisible}, - .control:disabled, - .control:active { - outline: none; - } - - .label { - display: block; - color: ${la}; - cursor: pointer; - font-size: ${Jt}; - line-height: ${Kt}; - margin-bottom: 4px; - } - - .label__hidden { - display: none; - visibility: hidden; - } - - .start, - .end { - margin: auto; - fill: currentcolor; - } - - ::slotted(svg) { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - width: 16px; - height: 16px; - } - - .start { - margin-inline-start: 11px; - } - - .end { - margin-inline-end: 11px; - } - - :host(:hover:not([disabled])) .root { - background: ${Ir}; - border-color: ${Zr}; - } - - :host([aria-invalid='true']:hover:not([disabled])) .root { - border-color: ${xa}; - } - - :host(:active:not([disabled])) .root { - background: ${Ir}; - border-color: ${Yr}; - } - - :host([aria-invalid='true']:active:not([disabled])) .root { - border-color: ${ya}; - } - - :host(:focus-within:not([disabled])) .root { - border-color: ${gr}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${gr}; - } - - :host([aria-invalid='true']:focus-within:not([disabled])) .root { - border-color: ${wa}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${wa}; - } - - :host([appearance='filled']) .root { - background: ${Lr}; - } - - :host([appearance='filled']:hover:not([disabled])) .root { - background: ${Or}; - } - - :host([disabled]) .label, - :host([readonly]) .label, - :host([readonly]) .control, - :host([disabled]) .control { - cursor: ${be.disabledCursor}; - } - - :host([disabled]) { - opacity: ${Xt}; - } - - :host([disabled]) .control { - border-color: ${ca}; - } -`.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - .root, - :host([appearance='filled']) .root { - forced-color-adjust: none; - background: ${Ja.Field}; - border-color: ${Ja.FieldText}; - } - :host([aria-invalid='true']) .root { - border-style: dashed; - } - :host(:hover:not([disabled])) .root, - :host([appearance='filled']:hover:not([disabled])) .root, - :host([appearance='filled']:hover) .root { - background: ${Ja.Field}; - border-color: ${Ja.Highlight}; - } - .start, - .end { - fill: currentcolor; - } - :host([disabled]) { - opacity: 1; - } - :host([disabled]) .root, - :host([appearance='filled']:hover[disabled]) .root { - border-color: ${Ja.GrayText}; - background: ${Ja.Field}; - } - :host(:focus-within:enabled) .root { - border-color: ${Ja.Highlight}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${Ja.Highlight}; - } - input::placeholder { - color: ${Ja.GrayText}; - } - `));const Un=(e,t)=>(0,Za.css)` - ${Wn} -`;const Xn=(e,t)=>(0,Za.html)` - -`;const Zn=qn.compose({baseName:"date-field",styles:Un,template:Xn,shadowOptions:{delegatesFocus:true}});const Yn={toView(e){if(e===null||e===undefined){return null}return e===null||e===void 0?void 0:e.toColorString()},fromView(e){if(e===null||e===undefined){return null}const t=S(e);return t?se.create(t.r,t.g,t.b):null}};const Jn=(0,Za.css)` - :host { - background-color: ${sr}; - color: ${la}; - } -`.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - background-color: ${Ja.ButtonFace}; - box-shadow: 0 0 0 1px ${Ja.CanvasText}; - color: ${Ja.ButtonText}; - } - `));function Kn(e){return(t,o)=>{t[o+"Changed"]=function(t,o){if(o!==undefined&&o!==null){e.setValueFor(this,o)}else{e.deleteValueFor(this)}}}}class Qn extends be.FoundationElement{constructor(){super();this.noPaint=false;const e={handleChange:this.noPaintChanged.bind(this)};Za.Observable.getNotifier(this).subscribe(e,"fillColor");Za.Observable.getNotifier(this).subscribe(e,"baseLayerLuminance")}noPaintChanged(){if(!this.noPaint&&(this.fillColor!==void 0||this.baseLayerLuminance)){this.$fastController.addStyles(Jn)}else{this.$fastController.removeStyles(Jn)}}}si([(0,Za.attr)({attribute:"no-paint",mode:"boolean"})],Qn.prototype,"noPaint",void 0);si([(0,Za.attr)({attribute:"fill-color",converter:Yn}),Kn(sr)],Qn.prototype,"fillColor",void 0);si([(0,Za.attr)({attribute:"accent-color",converter:Yn,mode:"fromView"}),Kn(Xo)],Qn.prototype,"accentColor",void 0);si([(0,Za.attr)({attribute:"neutral-color",converter:Yn,mode:"fromView"}),Kn(Wo)],Qn.prototype,"neutralColor",void 0);si([(0,Za.attr)({attribute:"error-color",converter:Yn,mode:"fromView"}),Kn(fa)],Qn.prototype,"errorColor",void 0);si([(0,Za.attr)({converter:Za.nullableNumberConverter}),Kn(_t)],Qn.prototype,"density",void 0);si([(0,Za.attr)({attribute:"design-unit",converter:Za.nullableNumberConverter}),Kn(qt)],Qn.prototype,"designUnit",void 0);si([(0,Za.attr)({attribute:"direction"}),Kn(Ut)],Qn.prototype,"direction",void 0);si([(0,Za.attr)({attribute:"base-height-multiplier",converter:Za.nullableNumberConverter}),Kn(At)],Qn.prototype,"baseHeightMultiplier",void 0);si([(0,Za.attr)({attribute:"base-horizontal-spacing-multiplier",converter:Za.nullableNumberConverter}),Kn(Mt)],Qn.prototype,"baseHorizontalSpacingMultiplier",void 0);si([(0,Za.attr)({attribute:"control-corner-radius",converter:Za.nullableNumberConverter}),Kn(Et)],Qn.prototype,"controlCornerRadius",void 0);si([(0,Za.attr)({attribute:"stroke-width",converter:Za.nullableNumberConverter}),Kn(Zt)],Qn.prototype,"strokeWidth",void 0);si([(0,Za.attr)({attribute:"focus-stroke-width",converter:Za.nullableNumberConverter}),Kn(Yt)],Qn.prototype,"focusStrokeWidth",void 0);si([(0,Za.attr)({attribute:"disabled-opacity",converter:Za.nullableNumberConverter}),Kn(Xt)],Qn.prototype,"disabledOpacity",void 0);si([(0,Za.attr)({attribute:"type-ramp-minus-2-font-size"}),Kn(to)],Qn.prototype,"typeRampMinus2FontSize",void 0);si([(0,Za.attr)({attribute:"type-ramp-minus-2-line-height"}),Kn(oo)],Qn.prototype,"typeRampMinus2LineHeight",void 0);si([(0,Za.attr)({attribute:"type-ramp-minus-1-font-size"}),Kn(Qt)],Qn.prototype,"typeRampMinus1FontSize",void 0);si([(0,Za.attr)({attribute:"type-ramp-minus-1-line-height"}),Kn(eo)],Qn.prototype,"typeRampMinus1LineHeight",void 0);si([(0,Za.attr)({attribute:"type-ramp-base-font-size"}),Kn(Jt)],Qn.prototype,"typeRampBaseFontSize",void 0);si([(0,Za.attr)({attribute:"type-ramp-base-line-height"}),Kn(Kt)],Qn.prototype,"typeRampBaseLineHeight",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-1-font-size"}),Kn(ro)],Qn.prototype,"typeRampPlus1FontSize",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-1-line-height"}),Kn(ao)],Qn.prototype,"typeRampPlus1LineHeight",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-2-font-size"}),Kn(io)],Qn.prototype,"typeRampPlus2FontSize",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-2-line-height"}),Kn(no)],Qn.prototype,"typeRampPlus2LineHeight",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-3-font-size"}),Kn(lo)],Qn.prototype,"typeRampPlus3FontSize",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-3-line-height"}),Kn(so)],Qn.prototype,"typeRampPlus3LineHeight",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-4-font-size"}),Kn(co)],Qn.prototype,"typeRampPlus4FontSize",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-4-line-height"}),Kn(uo)],Qn.prototype,"typeRampPlus4LineHeight",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-5-font-size"}),Kn(ho)],Qn.prototype,"typeRampPlus5FontSize",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-5-line-height"}),Kn(po)],Qn.prototype,"typeRampPlus5LineHeight",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-6-font-size"}),Kn(go)],Qn.prototype,"typeRampPlus6FontSize",void 0);si([(0,Za.attr)({attribute:"type-ramp-plus-6-line-height"}),Kn(bo)],Qn.prototype,"typeRampPlus6LineHeight",void 0);si([(0,Za.attr)({attribute:"accent-fill-rest-delta",converter:Za.nullableNumberConverter}),Kn(fo)],Qn.prototype,"accentFillRestDelta",void 0);si([(0,Za.attr)({attribute:"accent-fill-hover-delta",converter:Za.nullableNumberConverter}),Kn(mo)],Qn.prototype,"accentFillHoverDelta",void 0);si([(0,Za.attr)({attribute:"accent-fill-active-delta",converter:Za.nullableNumberConverter}),Kn(vo)],Qn.prototype,"accentFillActiveDelta",void 0);si([(0,Za.attr)({attribute:"accent-fill-focus-delta",converter:Za.nullableNumberConverter}),Kn($o)],Qn.prototype,"accentFillFocusDelta",void 0);si([(0,Za.attr)({attribute:"accent-foreground-rest-delta",converter:Za.nullableNumberConverter}),Kn(xo)],Qn.prototype,"accentForegroundRestDelta",void 0);si([(0,Za.attr)({attribute:"accent-foreground-hover-delta",converter:Za.nullableNumberConverter}),Kn(yo)],Qn.prototype,"accentForegroundHoverDelta",void 0);si([(0,Za.attr)({attribute:"accent-foreground-active-delta",converter:Za.nullableNumberConverter}),Kn(wo)],Qn.prototype,"accentForegroundActiveDelta",void 0);si([(0,Za.attr)({attribute:"accent-foreground-focus-delta",converter:Za.nullableNumberConverter}),Kn(ko)],Qn.prototype,"accentForegroundFocusDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-rest-delta",converter:Za.nullableNumberConverter}),Kn(Fo)],Qn.prototype,"neutralFillRestDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-hover-delta",converter:Za.nullableNumberConverter}),Kn(Co)],Qn.prototype,"neutralFillHoverDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-active-delta",converter:Za.nullableNumberConverter}),Kn(So)],Qn.prototype,"neutralFillActiveDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-focus-delta",converter:Za.nullableNumberConverter}),Kn(To)],Qn.prototype,"neutralFillFocusDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-input-rest-delta",converter:Za.nullableNumberConverter}),Kn(Vo)],Qn.prototype,"neutralFillInputRestDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-input-hover-delta",converter:Za.nullableNumberConverter}),Kn(Do)],Qn.prototype,"neutralFillInputHoverDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-input-active-delta",converter:Za.nullableNumberConverter}),Kn(jo)],Qn.prototype,"neutralFillInputActiveDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-input-focus-delta",converter:Za.nullableNumberConverter}),Kn(zo)],Qn.prototype,"neutralFillInputFocusDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-stealth-rest-delta",converter:Za.nullableNumberConverter}),Kn(Bo)],Qn.prototype,"neutralFillStealthRestDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-stealth-hover-delta",converter:Za.nullableNumberConverter}),Kn(Lo)],Qn.prototype,"neutralFillStealthHoverDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-stealth-active-delta",converter:Za.nullableNumberConverter}),Kn(Oo)],Qn.prototype,"neutralFillStealthActiveDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-stealth-focus-delta",converter:Za.nullableNumberConverter}),Kn(Ho)],Qn.prototype,"neutralFillStealthFocusDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-strong-hover-delta",converter:Za.nullableNumberConverter}),Kn(Po)],Qn.prototype,"neutralFillStrongHoverDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-strong-active-delta",converter:Za.nullableNumberConverter}),Kn(Ro)],Qn.prototype,"neutralFillStrongActiveDelta",void 0);si([(0,Za.attr)({attribute:"neutral-fill-strong-focus-delta",converter:Za.nullableNumberConverter}),Kn(Io)],Qn.prototype,"neutralFillStrongFocusDelta",void 0);si([(0,Za.attr)({attribute:"base-layer-luminance",converter:Za.nullableNumberConverter}),Kn(Gt)],Qn.prototype,"baseLayerLuminance",void 0);si([(0,Za.attr)({attribute:"neutral-fill-layer-rest-delta",converter:Za.nullableNumberConverter}),Kn(Ao)],Qn.prototype,"neutralFillLayerRestDelta",void 0);si([(0,Za.attr)({attribute:"neutral-stroke-divider-rest-delta",converter:Za.nullableNumberConverter}),Kn(qo)],Qn.prototype,"neutralStrokeDividerRestDelta",void 0);si([(0,Za.attr)({attribute:"neutral-stroke-rest-delta",converter:Za.nullableNumberConverter}),Kn(Mo)],Qn.prototype,"neutralStrokeRestDelta",void 0);si([(0,Za.attr)({attribute:"neutral-stroke-hover-delta",converter:Za.nullableNumberConverter}),Kn(Go)],Qn.prototype,"neutralStrokeHoverDelta",void 0);si([(0,Za.attr)({attribute:"neutral-stroke-active-delta",converter:Za.nullableNumberConverter}),Kn(Eo)],Qn.prototype,"neutralStrokeActiveDelta",void 0);si([(0,Za.attr)({attribute:"neutral-stroke-focus-delta",converter:Za.nullableNumberConverter}),Kn(_o)],Qn.prototype,"neutralStrokeFocusDelta",void 0);const el=(e,t)=>(0,Za.html)` `;const tl=(e,t)=>(0,Za.css)` - ${(0,be.display)("block")} -`;const ol=Qn.compose({baseName:"design-system-provider",template:el,styles:tl});const rl=(e,t)=>(0,Za.css)` - :host([hidden]) { - display: none; - } - - :host { - --elevation: 14; - --dialog-height: 480px; - --dialog-width: 640px; - display: block; - } - - .overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(0, 0, 0, 0.3); - touch-action: none; - } - - .positioning-region { - display: flex; - justify-content: center; - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - overflow: auto; - } - - .control { - ${vn} - margin-top: auto; - margin-bottom: auto; - width: var(--dialog-width); - height: var(--dialog-height); - background-color: ${sr}; - z-index: 1; - border-radius: calc(${Et} * 1px); - border: calc(${Zt} * 1px) solid transparent; - } -`;class al extends be.Dialog{}const il=al.compose({baseName:"dialog",baseClass:be.Dialog,template:be.dialogTemplate,styles:rl});const nl=(e,t)=>(0,Za.css)` - .disclosure { - transition: height 0.35s; - } - - .disclosure .invoker::-webkit-details-marker { - display: none; - } - - .disclosure .invoker { - list-style-type: none; - } - - :host([appearance='accent']) .invoker { - background: ${ur}; - color: ${mr}; - font-family: ${It}; - font-size: ${Jt}; - border-radius: calc(${Et} * 1px); - outline: none; - cursor: pointer; - margin: 16px 0; - padding: 12px; - max-width: max-content; - } - - :host([appearance='accent']) .invoker:active { - background: ${pr}; - color: ${$r}; - } - - :host([appearance='accent']) .invoker:hover { - background: ${hr}; - color: ${vr}; - } - - :host([appearance='lightweight']) .invoker { - background: transparent; - color: ${Vr}; - border-bottom: calc(${Zt} * 1px) solid ${Vr}; - cursor: pointer; - width: max-content; - margin: 16px 0; - } - - :host([appearance='lightweight']) .invoker:active { - border-bottom-color: ${jr}; - } - - :host([appearance='lightweight']) .invoker:hover { - border-bottom-color: ${Dr}; - } - - .disclosure[open] .invoker ~ * { - animation: fadeIn 0.5s ease-in-out; - } - - @keyframes fadeIn { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } - } -`;class ll extends be.Disclosure{constructor(){super(...arguments);this.height=0;this.totalHeight=0}connectedCallback(){super.connectedCallback();if(!this.appearance){this.appearance="accent"}}appearanceChanged(e,t){if(e!==t){this.classList.add(t);this.classList.remove(e)}}onToggle(){super.onToggle();this.details.style.setProperty("height",`${this.disclosureHeight}px`)}setup(){super.setup();const e=()=>this.details.getBoundingClientRect().height;this.show();this.totalHeight=e();this.hide();this.height=e();if(this.expanded){this.show()}}get disclosureHeight(){return this.expanded?this.totalHeight:this.height}}si([Za.attr],ll.prototype,"appearance",void 0);const sl=ll.compose({baseName:"disclosure",baseClass:be.Disclosure,template:be.disclosureTemplate,styles:nl});const cl=(e,t)=>(0,Za.css)` - ${(0,be.display)("block")} :host { - box-sizing: content-box; - height: 0; - margin: calc(${qt} * 1px) 0; - border-top: calc(${Zt} * 1px) solid ${ga}; - border-left: none; - } - - :host([orientation='vertical']) { - height: 100%; - margin: 0 calc(${qt} * 1px); - border-top: none; - border-left: calc(${Zt} * 1px) solid ${ga}; - } -`;class dl extends be.Divider{}const ul=dl.compose({baseName:"divider",baseClass:be.Divider,template:be.dividerTemplate,styles:cl});class hl extends be.ListboxElement{sizeChanged(e,t){super.sizeChanged(e,t);this.updateComputedStylesheet()}updateComputedStylesheet(){if(this.computedStylesheet){this.$fastController.removeStyles(this.computedStylesheet)}const e=`${this.size}`;this.computedStylesheet=(0,Za.css)` - :host { - --size: ${e}; - } - `;this.$fastController.addStyles(this.computedStylesheet)}}const pl=hl.compose({baseName:"listbox",baseClass:be.ListboxElement,template:be.listboxTemplate,styles:Sn});const gl=(e,t)=>(0,Za.css)` - ${(0,be.display)("block")} :host { - --elevation: 11; - background: ${sr}; - border: calc(${Zt} * 1px) solid transparent; - ${vn} - margin: 0; - border-radius: calc(${Et} * 1px); - padding: calc(${qt} * 1px) 0; - max-width: 368px; - min-width: 64px; - } - - :host([slot='submenu']) { - width: max-content; - margin: 0 calc(${qt} * 1px); - } - - ::slotted(hr) { - box-sizing: content-box; - height: 0; - margin: 0; - border: none; - border-top: calc(${Zt} * 1px) solid ${ga}; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - background: ${Ja.Canvas}; - border-color: ${Ja.CanvasText}; - } - `));class bl extends be.Menu{connectedCallback(){super.connectedCallback();sr.setValueFor(this,Qo)}}const fl=bl.compose({baseName:"menu",baseClass:be.Menu,template:be.menuTemplate,styles:gl});const ml=(e,t)=>(0,Za.css)` - ${(0,be.display)("grid")} :host { - contain: layout; - overflow: visible; - font-family: ${It}; - outline: none; - box-sizing: border-box; - height: calc(${Ka} * 1px); - grid-template-columns: minmax(42px, auto) 1fr minmax(42px, auto); - grid-template-rows: auto; - justify-items: center; - align-items: center; - padding: 0; - margin: 0 calc(${qt} * 1px); - white-space: nowrap; - background: ${Er}; - color: ${la}; - fill: currentcolor; - cursor: pointer; - font-size: ${Jt}; - line-height: ${Kt}; - border-radius: calc(${Et} * 1px); - border: calc(${Yt} * 1px) solid transparent; - } - - :host(:hover) { - position: relative; - z-index: 1; - } - - :host(.indent-0) { - grid-template-columns: auto 1fr minmax(42px, auto); - } - :host(.indent-0) .content { - grid-column: 1; - grid-row: 1; - margin-inline-start: 10px; - } - :host(.indent-0) .expand-collapse-glyph-container { - grid-column: 5; - grid-row: 1; - } - :host(.indent-2) { - grid-template-columns: - minmax(42px, auto) minmax(42px, auto) 1fr minmax(42px, auto) - minmax(42px, auto); - } - :host(.indent-2) .content { - grid-column: 3; - grid-row: 1; - margin-inline-start: 10px; - } - :host(.indent-2) .expand-collapse-glyph-container { - grid-column: 5; - grid-row: 1; - } - :host(.indent-2) .start { - grid-column: 2; - } - :host(.indent-2) .end { - grid-column: 4; - } - - :host(:${be.focusVisible}) { - border-color: ${gr}; - background: ${Wr}; - color: ${la}; - } - - :host(:hover) { - background: ${_r}; - color: ${la}; - } - - :host(:active) { - background: ${qr}; - } - - :host([aria-checked='true']), - :host(.expanded) { - background: ${Lr}; - color: ${la}; - } - - :host([disabled]) { - cursor: ${be.disabledCursor}; - opacity: ${Xt}; - } - - :host([disabled]:hover) { - color: ${la}; - fill: currentcolor; - background: ${Er}; - } - - :host([disabled]:hover) .start, - :host([disabled]:hover) .end, - :host([disabled]:hover)::slotted(svg) { - fill: ${la}; - } - - .expand-collapse-glyph { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - width: calc((16 + ${_t}) * 1px); - height: calc((16 + ${_t}) * 1px); - fill: currentcolor; - } - - .content { - grid-column-start: 2; - justify-self: start; - overflow: hidden; - text-overflow: ellipsis; - } - - .start, - .end { - display: flex; - justify-content: center; - } - - ::slotted(svg) { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - width: 16px; - height: 16px; - - /* Something like that would do if the typography is adaptive - font-size: inherit; - width: ${ro}; - height: ${ro}; - */ - } - - :host(:hover) .start, - :host(:hover) .end, - :host(:hover)::slotted(svg), - :host(:active) .start, - :host(:active) .end, - :host(:active)::slotted(svg) { - fill: ${la}; - } - - :host(.indent-0[aria-haspopup='menu']) { - display: grid; - grid-template-columns: minmax(42px, auto) auto 1fr minmax(42px, auto) minmax( - 42px, - auto - ); - align-items: center; - min-height: 32px; - } - - :host(.indent-1[aria-haspopup='menu']), - :host(.indent-1[role='menuitemcheckbox']), - :host(.indent-1[role='menuitemradio']) { - display: grid; - grid-template-columns: minmax(42px, auto) auto 1fr minmax(42px, auto) minmax( - 42px, - auto - ); - align-items: center; - min-height: 32px; - } - - :host(.indent-2:not([aria-haspopup='menu'])) .end { - grid-column: 5; - } - - :host .input-container, - :host .expand-collapse-glyph-container { - display: none; - } - - :host([aria-haspopup='menu']) .expand-collapse-glyph-container, - :host([role='menuitemcheckbox']) .input-container, - :host([role='menuitemradio']) .input-container { - display: grid; - margin-inline-end: 10px; - } - - :host([aria-haspopup='menu']) .content, - :host([role='menuitemcheckbox']) .content, - :host([role='menuitemradio']) .content { - grid-column-start: 3; - } - - :host([aria-haspopup='menu'].indent-0) .content { - grid-column-start: 1; - } - - :host([aria-haspopup='menu']) .end, - :host([role='menuitemcheckbox']) .end, - :host([role='menuitemradio']) .end { - grid-column-start: 4; - } - - :host .expand-collapse, - :host .checkbox, - :host .radio { - display: flex; - align-items: center; - justify-content: center; - position: relative; - width: 20px; - height: 20px; - box-sizing: border-box; - outline: none; - margin-inline-start: 10px; - } - - :host .checkbox, - :host .radio { - border: calc(${Zt} * 1px) solid ${la}; - } - - :host([aria-checked='true']) .checkbox, - :host([aria-checked='true']) .radio { - background: ${ur}; - border-color: ${ur}; - } - - :host .checkbox { - border-radius: calc(${Et} * 1px); - } - - :host .radio { - border-radius: 999px; - } - - :host .checkbox-indicator, - :host .radio-indicator, - :host .expand-collapse-indicator, - ::slotted([slot='checkbox-indicator']), - ::slotted([slot='radio-indicator']), - ::slotted([slot='expand-collapse-indicator']) { - display: none; - } - - ::slotted([slot='end']:not(svg)) { - margin-inline-end: 10px; - color: ${ia}; - } - - :host([aria-checked='true']) .checkbox-indicator, - :host([aria-checked='true']) ::slotted([slot='checkbox-indicator']) { - width: 100%; - height: 100%; - display: block; - fill: ${mr}; - pointer-events: none; - } - - :host([aria-checked='true']) .radio-indicator { - position: absolute; - top: 4px; - left: 4px; - right: 4px; - bottom: 4px; - border-radius: 999px; - display: block; - background: ${mr}; - pointer-events: none; - } - - :host([aria-checked='true']) ::slotted([slot='radio-indicator']) { - display: block; - pointer-events: none; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - border-color: transparent; - color: ${Ja.ButtonText}; - forced-color-adjust: none; - } - - :host(:hover) { - background: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - } - - :host(:hover) .start, - :host(:hover) .end, - :host(:hover)::slotted(svg), - :host(:active) .start, - :host(:active) .end, - :host(:active)::slotted(svg) { - fill: ${Ja.HighlightText}; - } - - :host(.expanded) { - background: ${Ja.Highlight}; - border-color: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - } - - :host(:${be.focusVisible}) { - background: ${Ja.Highlight}; - border-color: ${Ja.ButtonText}; - box-shadow: 0 0 0 calc(${Yt} * 1px) inset - ${Ja.HighlightText}; - color: ${Ja.HighlightText}; - fill: currentcolor; - } - - :host([disabled]), - :host([disabled]:hover), - :host([disabled]:hover) .start, - :host([disabled]:hover) .end, - :host([disabled]:hover)::slotted(svg) { - background: ${Ja.Canvas}; - color: ${Ja.GrayText}; - fill: currentcolor; - opacity: 1; - } - - :host .expanded-toggle, - :host .checkbox, - :host .radio { - border-color: ${Ja.ButtonText}; - background: ${Ja.HighlightText}; - } - - :host([checked='true']) .checkbox, - :host([checked='true']) .radio { - background: ${Ja.HighlightText}; - border-color: ${Ja.HighlightText}; - } - - :host(:hover) .expanded-toggle, - :host(:hover) .checkbox, - :host(:hover) .radio, - :host(:${be.focusVisible}) .expanded-toggle, - :host(:${be.focusVisible}) .checkbox, - :host(:${be.focusVisible}) .radio, - :host([checked="true"]:hover) .checkbox, - :host([checked="true"]:hover) .radio, - :host([checked="true"]:${be.focusVisible}) .checkbox, - :host([checked="true"]:${be.focusVisible}) .radio { - border-color: ${Ja.HighlightText}; - } - - :host([aria-checked='true']) { - background: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - } - - :host([aria-checked='true']) .checkbox-indicator, - :host([aria-checked='true']) ::slotted([slot='checkbox-indicator']), - :host([aria-checked='true']) ::slotted([slot='radio-indicator']) { - fill: ${Ja.Highlight}; - } - - :host([aria-checked='true']) .radio-indicator { - background: ${Ja.Highlight}; - } - - ::slotted([slot='end']:not(svg)) { - color: ${Ja.ButtonText}; - } - - :host(:hover) ::slotted([slot="end"]:not(svg)), - :host(:${be.focusVisible}) ::slotted([slot="end"]:not(svg)) { - color: ${Ja.HighlightText}; - } - `),new Zi((0,Za.css)` - .expand-collapse-glyph { - transform: rotate(0deg); - } - `,(0,Za.css)` - .expand-collapse-glyph { - transform: rotate(180deg); - } - `));class vl extends be.MenuItem{}const $l=vl.compose({baseName:"menu-item",baseClass:be.MenuItem,template:be.menuItemTemplate,styles:ml,checkboxIndicator:`\n \n \n \n `,expandCollapseGlyph:`\n \n \n \n `,radioIndicator:`\n \n `});const xl=(e,t)=>(0,Za.css)` - ${Wn} - - .controls { - opacity: 0; - } - - .step-up-glyph, - .step-down-glyph { - display: block; - padding: 4px 10px; - cursor: pointer; - } - - .step-up-glyph:before, - .step-down-glyph:before { - content: ''; - display: block; - border: solid transparent 6px; - } - - .step-up-glyph:before { - border-bottom-color: ${la}; - } - - .step-down-glyph:before { - border-top-color: ${la}; - } - - :host(:hover:not([disabled])) .controls, - :host(:focus-within:not([disabled])) .controls { - opacity: 1; - } -`;class yl extends be.NumberField{constructor(){super(...arguments);this.appearance="outline"}}si([Za.attr],yl.prototype,"appearance",void 0);const wl=yl.compose({baseName:"number-field",baseClass:be.NumberField,styles:xl,template:be.numberFieldTemplate,shadowOptions:{delegatesFocus:true},stepDownGlyph:`\n \n `,stepUpGlyph:`\n \n `});const kl=(e,t)=>(0,Za.css)` - ${(0,be.display)("inline-flex")} :host { - align-items: center; - font-family: ${It}; - border-radius: calc(${Et} * 1px); - border: calc(${Yt} * 1px) solid transparent; - box-sizing: border-box; - background: ${Er}; - color: ${la}; - cursor: pointer; - flex: 0 0 auto; - fill: currentcolor; - font-size: ${Jt}; - height: calc(${Ka} * 1px); - line-height: ${Kt}; - margin: 0 calc((${qt} - ${Yt}) * 1px); - outline: none; - overflow: hidden; - padding: 0 1ch; - user-select: none; - white-space: nowrap; - } - - :host(:not([disabled]):not([aria-selected='true']):hover) { - background: ${_r}; - } - - :host(:not([disabled]):not([aria-selected='true']):active) { - background: ${qr}; - } - - :host([aria-selected='true']) { - background: ${ur}; - color: ${mr}; - } - - :host(:not([disabled])[aria-selected='true']:hover) { - background: ${hr}; - color: ${vr}; - } - - :host(:not([disabled])[aria-selected='true']:active) { - background: ${pr}; - color: ${$r}; - } - - :host([disabled]) { - cursor: ${be.disabledCursor}; - opacity: ${Xt}; - } - - .content { - grid-column-start: 2; - justify-self: start; - overflow: hidden; - text-overflow: ellipsis; - } - - .start, - .end, - ::slotted(svg) { - display: flex; - } - - ::slotted(svg) { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - height: calc(${qt} * 4px); - width: calc(${qt} * 4px); - } - - ::slotted([slot='end']) { - margin-inline-start: 1ch; - } - - ::slotted([slot='start']) { - margin-inline-end: 1ch; - } - - :host([aria-checked='true'][aria-selected='false']) { - border-color: ${ta}; - } - - :host([aria-checked='true'][aria-selected='true']) { - border-color: ${ta}; - box-shadow: 0 0 0 calc(${Yt} * 2 * 1px) inset - ${ra}; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - border-color: transparent; - forced-color-adjust: none; - color: ${Ja.ButtonText}; - fill: currentcolor; - } - - :host(:not([aria-selected='true']):hover), - :host([aria-selected='true']) { - background: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - } - - :host([disabled]), - :host([disabled][aria-selected='false']:hover) { - background: ${Ja.Canvas}; - color: ${Ja.GrayText}; - fill: currentcolor; - opacity: 1; - } - - :host([aria-checked='true'][aria-selected='false']) { - background: ${Ja.ButtonFace}; - color: ${Ja.ButtonText}; - border-color: ${Ja.ButtonText}; - } - - :host([aria-checked='true'][aria-selected='true']), - :host([aria-checked='true'][aria-selected='true']:hover) { - background: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - border-color: ${Ja.ButtonText}; - } - `));class Fl extends be.ListboxOption{}const Cl=Fl.compose({baseName:"option",baseClass:be.ListboxOption,template:be.listboxOptionTemplate,styles:kl});const Sl=(e,t)=>(0,Za.css)` - ${(0,be.display)("flex")} :host { - align-items: center; - outline: none; - height: calc(${qt} * 1px); - margin: calc(${qt} * 1px) 0; - } - - .progress { - background-color: ${Lr}; - border-radius: calc(${qt} * 1px); - width: 100%; - height: 100%; - display: flex; - align-items: center; - position: relative; - } - - .determinate { - background-color: ${Vr}; - border-radius: calc(${qt} * 1px); - height: 100%; - transition: all 0.2s ease-in-out; - display: flex; - } - - .indeterminate { - height: 100%; - border-radius: calc(${qt} * 1px); - display: flex; - width: 100%; - position: relative; - overflow: hidden; - } - - .indeterminate-indicator-1 { - position: absolute; - opacity: 0; - height: 100%; - background-color: ${Vr}; - border-radius: calc(${qt} * 1px); - animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1); - width: 40%; - animation: indeterminate-1 2s infinite; - } - - .indeterminate-indicator-2 { - position: absolute; - opacity: 0; - height: 100%; - background-color: ${Vr}; - border-radius: calc(${qt} * 1px); - animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1); - width: 60%; - animation: indeterminate-2 2s infinite; - } - - :host([paused]) .indeterminate-indicator-1, - :host([paused]) .indeterminate-indicator-2 { - animation-play-state: paused; - background-color: ${Lr}; - } - - :host([paused]) .determinate { - background-color: ${ia}; - } - - @keyframes indeterminate-1 { - 0% { - opacity: 1; - transform: translateX(-100%); - } - 70% { - opacity: 1; - transform: translateX(300%); - } - 70.01% { - opacity: 0; - } - 100% { - opacity: 0; - transform: translateX(300%); - } - } - - @keyframes indeterminate-2 { - 0% { - opacity: 0; - transform: translateX(-150%); - } - 29.99% { - opacity: 0; - } - 30% { - opacity: 1; - transform: translateX(-150%); - } - 100% { - transform: translateX(166.66%); - opacity: 1; - } - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - .progress { - forced-color-adjust: none; - background-color: ${Ja.Field}; - box-shadow: 0 0 0 1px inset ${Ja.FieldText}; - } - .determinate, - .indeterminate-indicator-1, - .indeterminate-indicator-2 { - forced-color-adjust: none; - background-color: ${Ja.FieldText}; - } - :host([paused]) .determinate, - :host([paused]) .indeterminate-indicator-1, - :host([paused]) .indeterminate-indicator-2 { - background-color: ${Ja.GrayText}; - } - `));class Tl extends be.BaseProgress{}const Vl=Tl.compose({baseName:"progress",baseClass:be.BaseProgress,template:be.progressTemplate,styles:Sl,indeterminateIndicator1:`\n \n `,indeterminateIndicator2:`\n \n `});const Dl=(e,t)=>(0,Za.css)` - ${(0,be.display)("flex")} :host { - align-items: center; - outline: none; - height: calc(${Ka} * 1px); - width: calc(${Ka} * 1px); - margin: calc(${Ka} * 1px) 0; - } - - .progress { - height: 100%; - width: 100%; - } - - .background { - stroke: ${Lr}; - fill: none; - stroke-width: 2px; - } - - .determinate { - stroke: ${Vr}; - fill: none; - stroke-width: 2px; - stroke-linecap: round; - transform-origin: 50% 50%; - transform: rotate(-90deg); - transition: all 0.2s ease-in-out; - } - - .indeterminate-indicator-1 { - stroke: ${Vr}; - fill: none; - stroke-width: 2px; - stroke-linecap: round; - transform-origin: 50% 50%; - transform: rotate(-90deg); - transition: all 0.2s ease-in-out; - animation: spin-infinite 2s linear infinite; - } - - :host([paused]) .indeterminate-indicator-1 { - animation-play-state: paused; - stroke: ${Lr}; - } - - :host([paused]) .determinate { - stroke: ${ia}; - } - - @keyframes spin-infinite { - 0% { - stroke-dasharray: 0.01px 43.97px; - transform: rotate(0deg); - } - 50% { - stroke-dasharray: 21.99px 21.99px; - transform: rotate(450deg); - } - 100% { - stroke-dasharray: 0.01px 43.97px; - transform: rotate(1080deg); - } - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - .indeterminate-indicator-1, - .determinate { - stroke: ${Ja.FieldText}; - } - .background { - stroke: ${Ja.Field}; - } - :host([paused]) .indeterminate-indicator-1 { - stroke: ${Ja.Field}; - } - :host([paused]) .determinate { - stroke: ${Ja.GrayText}; - } - `));class jl extends be.BaseProgress{}const zl=jl.compose({baseName:"progress-ring",baseClass:be.BaseProgress,template:be.progressRingTemplate,styles:Dl,indeterminateIndicator:`\n \n \n \n \n `});const Bl=(e,t)=>(0,Za.css)` - ${(0,be.display)("inline-flex")} :host { - --input-size: calc((${Ka} / 2) + ${qt}); - align-items: center; - outline: none; - margin: calc(${qt} * 1px) 0; - /* Chromium likes to select label text or the default slot when - the radio is clicked. Maybe there is a better solution here? */ - user-select: none; - position: relative; - flex-direction: row; - transition: all 0.2s ease-in-out; - } - - .control { - position: relative; - width: calc((${Ka} / 2 + ${qt}) * 1px); - height: calc((${Ka} / 2 + ${qt}) * 1px); - box-sizing: border-box; - border-radius: 999px; - border: calc(${Zt} * 1px) solid ${ca}; - background: ${Rr}; - outline: none; - cursor: pointer; - } - - :host([aria-invalid='true']) .control { - border-color: ${$a}; - } - - .label { - font-family: ${It}; - color: ${la}; - padding-inline-start: calc(${qt} * 2px + 2px); - margin-inline-end: calc(${qt} * 2px + 2px); - cursor: pointer; - font-size: ${Jt}; - line-height: ${Kt}; - } - - .label__hidden { - display: none; - visibility: hidden; - } - - .control, - .checked-indicator { - flex-shrink: 0; - } - - .checked-indicator { - position: absolute; - top: 5px; - left: 5px; - right: 5px; - bottom: 5px; - border-radius: 999px; - display: inline-block; - background: ${mr}; - fill: ${mr}; - opacity: 0; - pointer-events: none; - } - - :host(:not([disabled])) .control:hover { - background: ${Ir}; - border-color: ${da}; - } - - :host([aria-invalid='true']:not([disabled])) .control:hover { - border-color: ${xa}; - } - - :host(:not([disabled])) .control:active { - background: ${Ar}; - border-color: ${ua}; - } - - :host([aria-invalid='true']:not([disabled])) .control:active { - border-color: ${ya}; - } - - :host(:${be.focusVisible}) .control { - outline: solid calc(${Yt} * 1px) ${gr}; - } - - :host([aria-invalid='true']:${be.focusVisible}) .control { - outline-color: ${wa}; - } - - :host([aria-checked='true']) .control { - background: ${ur}; - border: calc(${Zt} * 1px) solid ${ur}; - } - - :host([aria-invalid='true'][aria-checked='true']) .control { - background-color: ${$a}; - border-color: ${$a}; - } - - :host([aria-checked='true']:not([disabled])) .control:hover { - background: ${hr}; - border: calc(${Zt} * 1px) solid ${hr}; - } - - :host([aria-invalid='true'][aria-checked='true']:not([disabled])) - .control:hover { - background-color: ${xa}; - border-color: ${xa}; - } - - :host([aria-checked='true']:not([disabled])) - .control:hover - .checked-indicator { - background: ${vr}; - fill: ${vr}; - } - - :host([aria-checked='true']:not([disabled])) .control:active { - background: ${pr}; - border: calc(${Zt} * 1px) solid ${pr}; - } - - :host([aria-invalid='true'][aria-checked='true']:not([disabled])) - .control:active { - background-color: ${ya}; - border-color: ${ya}; - } - - :host([aria-checked='true']:not([disabled])) - .control:active - .checked-indicator { - background: ${$r}; - fill: ${$r}; - } - - :host([aria-checked="true"]:${be.focusVisible}:not([disabled])) .control { - outline-offset: 2px; - outline: solid calc(${Yt} * 1px) ${gr}; - } - - :host([aria-invalid='true'][aria-checked="true"]:${be.focusVisible}:not([disabled])) .control { - outline-color: ${wa}; - } - - :host([disabled]) .label, - :host([readonly]) .label, - :host([readonly]) .control, - :host([disabled]) .control { - cursor: ${be.disabledCursor}; - } - - :host([aria-checked='true']) .checked-indicator { - opacity: 1; - } - - :host([disabled]) { - opacity: ${Xt}; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - .control, - :host([aria-checked='true']:not([disabled])) .control { - forced-color-adjust: none; - border-color: ${Ja.FieldText}; - background: ${Ja.Field}; - } - :host([aria-invalid='true']) { - border-style: dashed; - } - :host(:not([disabled])) .control:hover { - border-color: ${Ja.Highlight}; - background: ${Ja.Field}; - } - :host([aria-checked='true']:not([disabled])) .control:hover, - :host([aria-checked='true']:not([disabled])) .control:active { - border-color: ${Ja.Highlight}; - background: ${Ja.Highlight}; - } - :host([aria-checked='true']) .checked-indicator { - background: ${Ja.Highlight}; - fill: ${Ja.Highlight}; - } - :host([aria-checked='true']:not([disabled])) - .control:hover - .checked-indicator, - :host([aria-checked='true']:not([disabled])) - .control:active - .checked-indicator { - background: ${Ja.HighlightText}; - fill: ${Ja.HighlightText}; - } - :host(:${be.focusVisible}) .control { - border-color: ${Ja.Highlight}; - outline-offset: 2px; - outline: solid calc(${Yt} * 1px) ${Ja.FieldText}; - } - :host([aria-checked="true"]:${be.focusVisible}:not([disabled])) .control { - border-color: ${Ja.Highlight}; - outline: solid calc(${Yt} * 1px) ${Ja.FieldText}; - } - :host([disabled]) { - forced-color-adjust: none; - opacity: 1; - } - :host([disabled]) .label { - color: ${Ja.GrayText}; - } - :host([disabled]) .control, - :host([aria-checked='true'][disabled]) .control:hover, - .control:active { - background: ${Ja.Field}; - border-color: ${Ja.GrayText}; - } - :host([disabled]) .checked-indicator, - :host([aria-checked='true'][disabled]) .control:hover .checked-indicator { - fill: ${Ja.GrayText}; - background: ${Ja.GrayText}; - } - `));const Ll=(e,t)=>(0,Za.html)` - -`;class Ol extends be.Radio{}const Hl=Ol.compose({baseName:"radio",baseClass:be.Radio,template:Ll,styles:Bl,checkedIndicator:`\n
\n `});const Nl=(e,t)=>(0,Za.css)` - ${(0,be.display)("flex")} :host { - align-items: flex-start; - margin: calc(${qt} * 1px) 0; - flex-direction: column; - } - .positioning-region { - display: flex; - flex-wrap: wrap; - } - :host([orientation='vertical']) .positioning-region { - flex-direction: column; - } - :host([orientation='horizontal']) .positioning-region { - flex-direction: row; - } -`;class Pl extends be.RadioGroup{constructor(){super();const e=Za.Observable.getNotifier(this);const t={handleChange(e,t){if(t==="slottedRadioButtons"){e.ariaInvalidChanged()}}};e.subscribe(t,"slottedRadioButtons")}ariaInvalidChanged(){if(this.slottedRadioButtons){this.slottedRadioButtons.forEach((e=>{var t;e.setAttribute("aria-invalid",(t=this.getAttribute("aria-invalid"))!==null&&t!==void 0?t:"false")}))}}}const Rl=Pl.compose({baseName:"radio-group",baseClass:be.RadioGroup,template:be.radioGroupTemplate,styles:Nl});const Il=be.DesignToken.create("clear-button-hover").withDefault((e=>{const t=Gr.getValueFor(e);const o=Br.getValueFor(e);return t.evaluate(e,o.evaluate(e).hover).hover}));const Al=be.DesignToken.create("clear-button-active").withDefault((e=>{const t=Gr.getValueFor(e);const o=Br.getValueFor(e);return t.evaluate(e,o.evaluate(e).hover).active}));const Ml=(e,t)=>(0,Za.css)` - ${Wn} - - .control::-webkit-search-cancel-button { - -webkit-appearance: none; - } - - .control:hover, - .control:${be.focusVisible}, - .control:disabled, - .control:active { - outline: none; - } - - .clear-button { - height: calc(100% - 2px); - opacity: 0; - margin: 1px; - background: transparent; - color: ${la}; - fill: currentcolor; - border: none; - border-radius: calc(${Et} * 1px); - min-width: calc(${Ka} * 1px); - font-size: ${Jt}; - line-height: ${Kt}; - outline: none; - font-family: ${It}; - padding: 0 calc((10 + (${qt} * 2 * ${_t})) * 1px); - } - - .clear-button:hover { - background: ${_r}; - } - - .clear-button:active { - background: ${qr}; - } - - :host([appearance='filled']) .clear-button:hover { - background: ${Il}; - } - - :host([appearance='filled']) .clear-button:active { - background: ${Al}; - } - - .input-wrapper { - display: flex; - position: relative; - width: 100%; - } - - .start, - .end { - display: flex; - margin: 1px; - fill: currentcolor; - } - - ::slotted([slot='end']) { - height: 100%; - } - - .end { - margin-inline-end: 1px; - height: calc(100% - 2px); - } - - ::slotted(svg) { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - width: 16px; - height: 16px; - margin-inline-end: 11px; - margin-inline-start: 11px; - margin-top: auto; - margin-bottom: auto; - } - - .clear-button__hidden { - opacity: 0; - } - - :host(:hover:not([disabled], [readOnly])) .clear-button, - :host(:active:not([disabled], [readOnly])) .clear-button, - :host(:focus-within:not([disabled], [readOnly])) .clear-button { - opacity: 1; - } - - :host(:hover:not([disabled], [readOnly])) .clear-button__hidden, - :host(:active:not([disabled], [readOnly])) .clear-button__hidden, - :host(:focus-within:not([disabled], [readOnly])) .clear-button__hidden { - opacity: 0; - } -`;class Gl extends be.Search{constructor(){super(...arguments);this.appearance="outline"}}si([Za.attr],Gl.prototype,"appearance",void 0);const El=Gl.compose({baseName:"search",baseClass:be.Search,template:be.searchTemplate,styles:Ml,shadowOptions:{delegatesFocus:true}});class _l extends be.Select{constructor(){super(...arguments);this.listboxScrollWidth=""}autoWidthChanged(e,t){if(t){this.setAutoWidth()}else{this.style.removeProperty("width")}}setAutoWidth(){if(!this.autoWidth||!this.isConnected){return}let e=this.listbox.getBoundingClientRect().width;if(e===0&&this.listbox.hidden){Object.assign(this.listbox.style,{visibility:"hidden"});this.listbox.removeAttribute("hidden");e=this.listbox.getBoundingClientRect().width;this.listbox.setAttribute("hidden","");this.listbox.style.removeProperty("visibility")}if(e>0){Object.assign(this.style,{width:`${e}px`})}}connectedCallback(){super.connectedCallback();this.setAutoWidth();if(this.listbox){sr.setValueFor(this.listbox,Qo)}}slottedOptionsChanged(e,t){super.slottedOptionsChanged(e,t);this.setAutoWidth()}get listboxMaxHeight(){return Math.floor(this.maxHeight/ba.getValueFor(this)).toString()}listboxScrollWidthChanged(){this.updateComputedStylesheet()}get selectSize(){var e;return`${(e=this.size)!==null&&e!==void 0?e:this.multiple?4:0}`}multipleChanged(e,t){super.multipleChanged(e,t);this.updateComputedStylesheet()}maxHeightChanged(e,t){if(this.collapsible){this.updateComputedStylesheet()}}setPositioning(){super.setPositioning();this.updateComputedStylesheet()}sizeChanged(e,t){super.sizeChanged(e,t);this.updateComputedStylesheet();if(this.collapsible){requestAnimationFrame((()=>{this.listbox.style.setProperty("display","flex");this.listbox.style.setProperty("overflow","visible");this.listbox.style.setProperty("visibility","hidden");this.listbox.style.setProperty("width","auto");this.listbox.hidden=false;this.listboxScrollWidth=`${this.listbox.scrollWidth}`;this.listbox.hidden=true;this.listbox.style.removeProperty("display");this.listbox.style.removeProperty("overflow");this.listbox.style.removeProperty("visibility");this.listbox.style.removeProperty("width")}));return}this.listboxScrollWidth=""}updateComputedStylesheet(){if(this.computedStylesheet){this.$fastController.removeStyles(this.computedStylesheet)}this.computedStylesheet=(0,Za.css)` - :host { - --listbox-max-height: ${this.listboxMaxHeight}; - --listbox-scroll-width: ${this.listboxScrollWidth}; - --size: ${this.selectSize}; - } - `;this.$fastController.addStyles(this.computedStylesheet)}}si([(0,Za.attr)({attribute:"autowidth",mode:"boolean"})],_l.prototype,"autoWidth",void 0);si([(0,Za.attr)({attribute:"minimal",mode:"boolean"})],_l.prototype,"minimal",void 0);si([Za.attr],_l.prototype,"scale",void 0);si([Za.observable],_l.prototype,"listboxScrollWidth",void 0);const ql=_l.compose({baseName:"select",baseClass:be.Select,template:be.selectTemplate,styles:Tn,indicator:`\n \n \n \n `});const Wl=(e,t)=>(0,Za.css)` - ${(0,be.display)("block")} :host { - --skeleton-fill-default: #e1dfdd; - overflow: hidden; - width: 100%; - position: relative; - background-color: var(--skeleton-fill, var(--skeleton-fill-default)); - --skeleton-animation-gradient-default: linear-gradient( - 270deg, - var(--skeleton-fill, var(--skeleton-fill-default)) 0%, - #f3f2f1 51.13%, - var(--skeleton-fill, var(--skeleton-fill-default)) 100% - ); - --skeleton-animation-timing-default: ease-in-out; - } - - :host([shape='rect']) { - border-radius: calc(${Et} * 1px); - } - - :host([shape='circle']) { - border-radius: 100%; - overflow: hidden; - } - - object { - position: absolute; - width: 100%; - height: auto; - z-index: 2; - } - - object img { - width: 100%; - height: auto; - } - - ${(0,be.display)("block")} span.shimmer { - position: absolute; - width: 100%; - height: 100%; - background-image: var( - --skeleton-animation-gradient, - var(--skeleton-animation-gradient-default) - ); - background-size: 0px 0px / 90% 100%; - background-repeat: no-repeat; - background-color: var(--skeleton-animation-fill, ${Lr}); - animation: shimmer 2s infinite; - animation-timing-function: var( - --skeleton-animation-timing, - var(--skeleton-timing-default) - ); - animation-direction: normal; - z-index: 1; - } - - ::slotted(svg) { - z-index: 2; - } - - ::slotted(.pattern) { - width: 100%; - height: 100%; - } - - @keyframes shimmer { - 0% { - transform: translateX(-100%); - } - 100% { - transform: translateX(100%); - } - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - forced-color-adjust: none; - background-color: ${Ja.ButtonFace}; - box-shadow: 0 0 0 1px ${Ja.ButtonText}; - } - - ${(0,be.display)("block")} span.shimmer { - display: none; - } - `));class Ul extends be.Skeleton{}const Xl=Ul.compose({baseName:"skeleton",baseClass:be.Skeleton,template:be.skeletonTemplate,styles:Wl});const Zl=(0,Za.css)` - .track-start { - left: 0; - } -`;const Yl=(0,Za.css)` - .track-start { - right: 0; - } -`;const Jl=(e,t)=>(0,Za.css)` - :host([hidden]) { - display: none; - } - - ${(0,be.display)("inline-grid")} :host { - --thumb-size: calc(${Ka} * 0.5 - ${qt}); - --thumb-translate: calc( - var(--thumb-size) * -0.5 + var(--track-width) / 2 - ); - --track-overhang: calc((${qt} / 2) * -1); - --track-width: ${qt}; - --jp-slider-height: calc(var(--thumb-size) * 10); - align-items: center; - width: 100%; - margin: calc(${qt} * 1px) 0; - user-select: none; - box-sizing: border-box; - border-radius: calc(${Et} * 1px); - outline: none; - cursor: pointer; - } - :host([orientation='horizontal']) .positioning-region { - position: relative; - margin: 0 8px; - display: grid; - grid-template-rows: calc(var(--thumb-size) * 1px) 1fr; - } - :host([orientation='vertical']) .positioning-region { - position: relative; - margin: 0 8px; - display: grid; - height: 100%; - grid-template-columns: calc(var(--thumb-size) * 1px) 1fr; - } - - :host(:${be.focusVisible}) .thumb-cursor { - box-shadow: - 0 0 0 2px ${sr}, - 0 0 0 calc((2 + ${Yt}) * 1px) ${gr}; - } - - :host([aria-invalid='true']:${be.focusVisible}) .thumb-cursor { - box-shadow: - 0 0 0 2px ${sr}, - 0 0 0 calc((2 + ${Yt}) * 1px) ${wa}; - } - - .thumb-container { - position: absolute; - height: calc(var(--thumb-size) * 1px); - width: calc(var(--thumb-size) * 1px); - transition: all 0.2s ease; - color: ${la}; - fill: currentcolor; - } - .thumb-cursor { - border: none; - width: calc(var(--thumb-size) * 1px); - height: calc(var(--thumb-size) * 1px); - background: ${la}; - border-radius: calc(${Et} * 1px); - } - .thumb-cursor:hover { - background: ${la}; - border-color: ${da}; - } - .thumb-cursor:active { - background: ${la}; - } - .track-start { - background: ${Vr}; - position: absolute; - height: 100%; - left: 0; - border-radius: calc(${Et} * 1px); - } - :host([aria-invalid='true']) .track-start { - background-color: ${$a}; - } - :host([orientation='horizontal']) .thumb-container { - transform: translateX(calc(var(--thumb-size) * 0.5px)) - translateY(calc(var(--thumb-translate) * 1px)); - } - :host([orientation='vertical']) .thumb-container { - transform: translateX(calc(var(--thumb-translate) * 1px)) - translateY(calc(var(--thumb-size) * 0.5px)); - } - :host([orientation='horizontal']) { - min-width: calc(var(--thumb-size) * 1px); - } - :host([orientation='horizontal']) .track { - right: calc(var(--track-overhang) * 1px); - left: calc(var(--track-overhang) * 1px); - align-self: start; - height: calc(var(--track-width) * 1px); - } - :host([orientation='vertical']) .track { - top: calc(var(--track-overhang) * 1px); - bottom: calc(var(--track-overhang) * 1px); - width: calc(var(--track-width) * 1px); - height: 100%; - } - .track { - background: ${ca}; - position: absolute; - border-radius: calc(${Et} * 1px); - } - :host([orientation='vertical']) { - height: calc(var(--fast-slider-height) * 1px); - min-height: calc(var(--thumb-size) * 1px); - min-width: calc(${qt} * 20px); - } - :host([orientation='vertical']) .track-start { - height: auto; - width: 100%; - top: 0; - } - :host([disabled]), - :host([readonly]) { - cursor: ${be.disabledCursor}; - } - :host([disabled]) { - opacity: ${Xt}; - } - `.withBehaviors(new Zi(Zl,Yl),(0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - .thumb-cursor { - forced-color-adjust: none; - border-color: ${Ja.FieldText}; - background: ${Ja.FieldText}; - } - .thumb-cursor:hover, - .thumb-cursor:active { - background: ${Ja.Highlight}; - } - .track { - forced-color-adjust: none; - background: ${Ja.FieldText}; - } - :host(:${be.focusVisible}) .thumb-cursor { - border-color: ${Ja.Highlight}; - } - :host([disabled]) { - opacity: 1; - } - :host([disabled]) .track, - :host([disabled]) .thumb-cursor { - forced-color-adjust: none; - background: ${Ja.GrayText}; - } - - :host(:${be.focusVisible}) .thumb-cursor { - background: ${Ja.Highlight}; - border-color: ${Ja.Highlight}; - box-shadow: - 0 0 0 2px ${Ja.Field}, - 0 0 0 4px ${Ja.FieldText}; - } - `));class Kl extends be.Slider{}const Ql=Kl.compose({baseName:"slider",baseClass:be.Slider,template:be.sliderTemplate,styles:Jl,thumb:`\n
\n `});var es=o(67002);const ts=(0,Za.css)` - :host { - align-self: start; - grid-row: 2; - margin-top: -2px; - height: calc((${Ka} / 2 + ${qt}) * 1px); - width: auto; - } - .container { - grid-template-rows: auto auto; - grid-template-columns: 0; - } - .label { - margin: 2px 0; - } -`;const os=(0,Za.css)` - :host { - justify-self: start; - grid-column: 2; - margin-left: 2px; - height: auto; - width: calc((${Ka} / 2 + ${qt}) * 1px); - } - .container { - grid-template-columns: auto auto; - grid-template-rows: 0; - min-width: calc(var(--thumb-size) * 1px); - height: calc(var(--thumb-size) * 1px); - } - .mark { - transform: rotate(90deg); - align-self: center; - } - .label { - margin-left: calc((${qt} / 2) * 3px); - align-self: center; - } -`;const rs=(e,t)=>(0,Za.css)` - ${(0,be.display)("block")} :host { - font-family: ${It}; - color: ${la}; - fill: currentcolor; - } - .root { - position: absolute; - display: grid; - } - .container { - display: grid; - justify-self: center; - } - .label { - justify-self: center; - align-self: center; - white-space: nowrap; - max-width: 30px; - } - .mark { - width: calc((${qt} / 4) * 1px); - height: calc(${Ka} * 0.25 * 1px); - background: ${ca}; - justify-self: center; - } - :host(.disabled) { - opacity: ${Xt}; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - .mark { - forced-color-adjust: none; - background: ${Ja.FieldText}; - } - :host(.disabled) { - forced-color-adjust: none; - opacity: 1; - } - :host(.disabled) .label { - color: ${Ja.GrayText}; - } - :host(.disabled) .mark { - background: ${Ja.GrayText}; - } - `));class as extends be.SliderLabel{sliderOrientationChanged(){if(this.sliderOrientation===es.t.horizontal){this.$fastController.addStyles(ts);this.$fastController.removeStyles(os)}else{this.$fastController.addStyles(os);this.$fastController.removeStyles(ts)}}}const is=as.compose({baseName:"slider-label",baseClass:be.SliderLabel,template:be.sliderLabelTemplate,styles:rs});const ns=(e,t)=>(0,Za.css)` - :host([hidden]) { - display: none; - } - - ${(0,be.display)("inline-flex")} :host { - align-items: center; - outline: none; - font-family: ${It}; - margin: calc(${qt} * 1px) 0; - ${""} user-select: none; - } - - :host([disabled]) { - opacity: ${Xt}; - } - - :host([disabled]) .label, - :host([readonly]) .label, - :host([readonly]) .switch, - :host([disabled]) .switch { - cursor: ${be.disabledCursor}; - } - - .switch { - position: relative; - outline: none; - box-sizing: border-box; - width: calc(${Ka} * 1px); - height: calc((${Ka} / 2 + ${qt}) * 1px); - background: ${Rr}; - border-radius: calc(${Et} * 1px); - border: calc(${Zt} * 1px) solid ${ca}; - } - - :host([aria-invalid='true']) .switch { - border-color: ${$a}; - } - - .switch:hover { - background: ${Ir}; - border-color: ${da}; - cursor: pointer; - } - - :host([disabled]) .switch:hover, - :host([readonly]) .switch:hover { - background: ${Ir}; - border-color: ${da}; - cursor: ${be.disabledCursor}; - } - - :host([aria-invalid='true'][disabled]) .switch:hover, - :host([aria-invalid='true'][readonly]) .switch:hover { - border-color: ${xa}; - } - - :host(:not([disabled])) .switch:active { - background: ${Ar}; - border-color: ${ua}; - } - - :host([aria-invalid='true']:not([disabled])) .switch:active { - border-color: ${ya}; - } - - :host(:${be.focusVisible}) .switch { - outline-offset: 2px; - outline: solid calc(${Yt} * 1px) ${gr}; - } - - :host([aria-invalid='true']:${be.focusVisible}) .switch { - outline-color: ${wa}; - } - - .checked-indicator { - position: absolute; - top: 5px; - bottom: 5px; - background: ${la}; - border-radius: calc(${Et} * 1px); - transition: all 0.2s ease-in-out; - } - - .status-message { - color: ${la}; - cursor: pointer; - font-size: ${Jt}; - line-height: ${Kt}; - } - - :host([disabled]) .status-message, - :host([readonly]) .status-message { - cursor: ${be.disabledCursor}; - } - - .label { - color: ${la}; - margin-inline-end: calc(${qt} * 2px + 2px); - font-size: ${Jt}; - line-height: ${Kt}; - cursor: pointer; - } - - .label__hidden { - display: none; - visibility: hidden; - } - - ::slotted([slot='checked-message']), - ::slotted([slot='unchecked-message']) { - margin-inline-start: calc(${qt} * 2px + 2px); - } - - :host([aria-checked='true']) .checked-indicator { - background: ${mr}; - } - - :host([aria-checked='true']) .switch { - background: ${ur}; - border-color: ${ur}; - } - - :host([aria-checked='true']:not([disabled])) .switch:hover { - background: ${hr}; - border-color: ${hr}; - } - - :host([aria-invalid='true'][aria-checked='true']) .switch { - background-color: ${$a}; - border-color: ${$a}; - } - - :host([aria-invalid='true'][aria-checked='true']:not([disabled])) - .switch:hover { - background-color: ${xa}; - border-color: ${xa}; - } - - :host([aria-checked='true']:not([disabled])) - .switch:hover - .checked-indicator { - background: ${vr}; - } - - :host([aria-checked='true']:not([disabled])) .switch:active { - background: ${pr}; - border-color: ${pr}; - } - - :host([aria-invalid='true'][aria-checked='true']:not([disabled])) - .switch:active { - background-color: ${ya}; - border-color: ${ya}; - } - - :host([aria-checked='true']:not([disabled])) - .switch:active - .checked-indicator { - background: ${$r}; - } - - :host([aria-checked="true"]:${be.focusVisible}:not([disabled])) .switch { - outline: solid calc(${Yt} * 1px) ${gr}; - } - - :host([aria-invalid='true'][aria-checked="true"]:${be.focusVisible}:not([disabled])) .switch { - outline-color: ${wa}; - } - - .unchecked-message { - display: block; - } - - .checked-message { - display: none; - } - - :host([aria-checked='true']) .unchecked-message { - display: none; - } - - :host([aria-checked='true']) .checked-message { - display: block; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - .checked-indicator, - :host(:not([disabled])) .switch:active .checked-indicator { - forced-color-adjust: none; - background: ${Ja.FieldText}; - } - .switch { - forced-color-adjust: none; - background: ${Ja.Field}; - border-color: ${Ja.FieldText}; - } - :host([aria-invalid='true']) .switch { - border-style: dashed; - } - :host(:not([disabled])) .switch:hover { - background: ${Ja.HighlightText}; - border-color: ${Ja.Highlight}; - } - :host([aria-checked='true']) .switch { - background: ${Ja.Highlight}; - border-color: ${Ja.Highlight}; - } - :host([aria-checked='true']:not([disabled])) .switch:hover, - :host(:not([disabled])) .switch:active { - background: ${Ja.HighlightText}; - border-color: ${Ja.Highlight}; - } - :host([aria-checked='true']) .checked-indicator { - background: ${Ja.HighlightText}; - } - :host([aria-checked='true']:not([disabled])) - .switch:hover - .checked-indicator { - background: ${Ja.Highlight}; - } - :host([disabled]) { - opacity: 1; - } - :host(:${be.focusVisible}) .switch { - border-color: ${Ja.Highlight}; - outline-offset: 2px; - outline: solid calc(${Yt} * 1px) ${Ja.FieldText}; - } - :host([aria-checked="true"]:${be.focusVisible}:not([disabled])) .switch { - outline: solid calc(${Yt} * 1px) ${Ja.FieldText}; - } - :host([disabled]) .checked-indicator { - background: ${Ja.GrayText}; - } - :host([disabled]) .switch { - background: ${Ja.Field}; - border-color: ${Ja.GrayText}; - } - `),new Zi((0,Za.css)` - .checked-indicator { - left: 5px; - right: calc(((${Ka} / 2) + 1) * 1px); - } - - :host([aria-checked='true']) .checked-indicator { - left: calc(((${Ka} / 2) + 1) * 1px); - right: 5px; - } - `,(0,Za.css)` - .checked-indicator { - right: 5px; - left: calc(((${Ka} / 2) + 1) * 1px); - } - - :host([aria-checked='true']) .checked-indicator { - right: calc(((${Ka} / 2) + 1) * 1px); - left: 5px; - } - `));class ls extends be.Switch{}const ss=ls.compose({baseName:"switch",baseClass:be.Switch,template:be.switchTemplate,styles:ns,switch:`\n \n `});const cs=(e,t)=>(0,Za.css)` - ${(0,be.display)("block")} :host { - box-sizing: border-box; - font-size: ${Jt}; - line-height: ${Kt}; - padding: 0 calc((6 + (${qt} * 2 * ${_t})) * 1px); - } -`;class ds extends be.TabPanel{}const us=ds.compose({baseName:"tab-panel",baseClass:be.TabPanel,template:be.tabPanelTemplate,styles:cs});const hs=(e,t)=>(0,Za.css)` - ${(0,be.display)("inline-flex")} :host { - box-sizing: border-box; - font-family: ${It}; - font-size: ${Jt}; - line-height: ${Kt}; - height: calc(${Ka} * 1px); - padding: calc(${qt} * 5px) calc(${qt} * 4px); - color: ${ia}; - fill: currentcolor; - border-radius: 0 0 calc(${Et} * 1px) - calc(${Et} * 1px); - border: calc(${Zt} * 1px) solid transparent; - align-items: center; - justify-content: center; - grid-row: 2; - cursor: pointer; - } - - :host(:hover) { - color: ${la}; - fill: currentcolor; - } - - :host(:active) { - color: ${la}; - fill: currentcolor; - } - - :host([disabled]) { - cursor: ${be.disabledCursor}; - opacity: ${Xt}; - } - - :host([disabled]:hover) { - color: ${ia}; - background: ${Er}; - } - - :host([aria-selected='true']) { - background: ${Lr}; - color: ${la}; - fill: currentcolor; - } - - :host([aria-selected='true']:hover) { - background: ${Or}; - color: ${la}; - fill: currentcolor; - } - - :host([aria-selected='true']:active) { - background: ${Hr}; - color: ${la}; - fill: currentcolor; - } - - :host(:${be.focusVisible}) { - outline: none; - border-color: ${gr}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${gr}; - } - - :host(:focus) { - outline: none; - } - - :host(.vertical) { - justify-content: end; - grid-column: 2; - border-bottom-left-radius: 0; - border-top-right-radius: calc(${Et} * 1px); - } - - :host(.vertical[aria-selected='true']) { - z-index: 2; - } - - :host(.vertical:hover) { - color: ${la}; - } - - :host(.vertical:active) { - color: ${la}; - } - - :host(.vertical:hover[aria-selected='true']) { - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - forced-color-adjust: none; - border-color: transparent; - color: ${Ja.ButtonText}; - fill: currentcolor; - } - :host(:hover), - :host(.vertical:hover), - :host([aria-selected='true']:hover) { - background: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - fill: currentcolor; - } - :host([aria-selected='true']) { - background: ${Ja.HighlightText}; - color: ${Ja.Highlight}; - fill: currentcolor; - } - :host(:${be.focusVisible}) { - border-color: ${Ja.ButtonText}; - box-shadow: none; - } - :host([disabled]), - :host([disabled]:hover) { - opacity: 1; - color: ${Ja.GrayText}; - background: ${Ja.ButtonFace}; - } - `));class ps extends be.Tab{}const gs=ps.compose({baseName:"tab",baseClass:be.Tab,template:be.tabTemplate,styles:hs});const bs=(e,t)=>(0,Za.css)` - ${(0,be.display)("grid")} :host { - box-sizing: border-box; - font-family: ${It}; - font-size: ${Jt}; - line-height: ${Kt}; - color: ${la}; - grid-template-columns: auto 1fr auto; - grid-template-rows: auto 1fr; - } - - .tablist { - display: grid; - grid-template-rows: auto auto; - grid-template-columns: auto; - position: relative; - width: max-content; - align-self: end; - padding: calc(${qt} * 4px) calc(${qt} * 4px) 0; - box-sizing: border-box; - } - - .start, - .end { - align-self: center; - } - - .activeIndicator { - grid-row: 1; - grid-column: 1; - width: 100%; - height: 4px; - justify-self: center; - background: ${ur}; - margin-top: 0; - border-radius: calc(${Et} * 1px) - calc(${Et} * 1px) 0 0; - } - - .activeIndicatorTransition { - transition: transform 0.01s ease-in-out; - } - - .tabpanel { - grid-row: 2; - grid-column-start: 1; - grid-column-end: 4; - position: relative; - } - - :host([orientation='vertical']) { - grid-template-rows: auto 1fr auto; - grid-template-columns: auto 1fr; - } - - :host([orientation='vertical']) .tablist { - grid-row-start: 2; - grid-row-end: 2; - display: grid; - grid-template-rows: auto; - grid-template-columns: auto 1fr; - position: relative; - width: max-content; - justify-self: end; - align-self: flex-start; - width: 100%; - padding: 0 calc(${qt} * 4px) - calc((${Ka} - ${qt}) * 1px) 0; - } - - :host([orientation='vertical']) .tabpanel { - grid-column: 2; - grid-row-start: 1; - grid-row-end: 4; - } - - :host([orientation='vertical']) .end { - grid-row: 3; - } - - :host([orientation='vertical']) .activeIndicator { - grid-column: 1; - grid-row: 1; - width: 4px; - height: 100%; - margin-inline-end: 0px; - align-self: center; - background: ${ur}; - border-radius: calc(${Et} * 1px) 0 0 - calc(${Et} * 1px); - } - - :host([orientation='vertical']) .activeIndicatorTransition { - transition: transform 0.01s ease-in-out; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - .activeIndicator, - :host([orientation='vertical']) .activeIndicator { - forced-color-adjust: none; - background: ${Ja.Highlight}; - } - `));class fs extends be.Tabs{}const ms=fs.compose({baseName:"tabs",baseClass:be.Tabs,template:be.tabsTemplate,styles:bs});const vs=(e,t)=>(0,Za.css)` - ${(0,be.display)("inline-block")} :host { - font-family: ${It}; - outline: none; - user-select: none; - } - - .control { - box-sizing: border-box; - position: relative; - color: ${la}; - background: ${Rr}; - border-radius: calc(${Et} * 1px); - border: calc(${Zt} * 1px) solid ${Xr}; - height: calc(${Ka} * 2px); - font: inherit; - font-size: ${Jt}; - line-height: ${Kt}; - padding: calc(${qt} * 2px + 1px); - width: 100%; - resize: none; - } - - :host([aria-invalid='true']) .control { - border-color: ${$a}; - } - - .control:hover:enabled { - background: ${Ir}; - border-color: ${Zr}; - } - - :host([aria-invalid='true']) .control:hover:enabled { - border-color: ${xa}; - } - - .control:active:enabled { - background: ${Ar}; - border-color: ${Yr}; - } - - :host([aria-invalid='true']) .control:active:enabled { - border-color: ${ya}; - } - - .control:hover, - .control:${be.focusVisible}, - .control:disabled, - .control:active { - outline: none; - } - - :host(:focus-within) .control { - border-color: ${gr}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${gr}; - } - - :host([aria-invalid='true']:focus-within) .control { - border-color: ${wa}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${wa}; - } - - :host([appearance='filled']) .control { - background: ${Lr}; - } - - :host([appearance='filled']:hover:not([disabled])) .control { - background: ${Or}; - } - - :host([resize='both']) .control { - resize: both; - } - - :host([resize='horizontal']) .control { - resize: horizontal; - } - - :host([resize='vertical']) .control { - resize: vertical; - } - - .label { - display: block; - color: ${la}; - cursor: pointer; - font-size: ${Jt}; - line-height: ${Kt}; - margin-bottom: 4px; - } - - .label__hidden { - display: none; - visibility: hidden; - } - - :host([disabled]) .label, - :host([readonly]) .label, - :host([readonly]) .control, - :host([disabled]) .control { - cursor: ${be.disabledCursor}; - } - :host([disabled]) { - opacity: ${Xt}; - } - :host([disabled]) .control { - border-color: ${ca}; - } - - :host([cols]) { - width: initial; - } - - :host([rows]) .control { - height: initial; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([disabled]) { - opacity: 1; - } - - :host([aria-invalid='true']) .control { - border-style: dashed; - } - `));class $s extends be.TextArea{constructor(){super(...arguments);this.appearance="outline"}}si([Za.attr],$s.prototype,"appearance",void 0);const xs=$s.compose({baseName:"text-area",baseClass:be.TextArea,template:be.textAreaTemplate,styles:vs,shadowOptions:{delegatesFocus:true}});const ys=(e,t)=>(0,Za.css)` - ${Wn} - - .start, - .end { - display: flex; - } -`;class ws extends be.TextField{constructor(){super(...arguments);this.appearance="outline"}}si([Za.attr],ws.prototype,"appearance",void 0);const ks=ws.compose({baseName:"text-field",baseClass:be.TextField,template:be.textFieldTemplate,styles:ys,shadowOptions:{delegatesFocus:true}});var Fs=o(83021);var Cs=o(49054);const Ss=(e,t)=>(0,Za.css)` - ${(0,be.display)("inline-flex")} :host { - --toolbar-item-gap: calc( - (var(--design-unit) + calc(var(--density) + 2)) * 1px - ); - background-color: ${sr}; - border-radius: calc(${Et} * 1px); - fill: currentcolor; - padding: var(--toolbar-item-gap); - } - - :host(${be.focusVisible}) { - outline: calc(${Zt} * 1px) solid ${gr}; - } - - .positioning-region { - align-items: flex-start; - display: inline-flex; - flex-flow: row wrap; - justify-content: flex-start; - width: 100%; - height: 100%; - } - - :host([orientation='vertical']) .positioning-region { - flex-direction: column; - } - - ::slotted(:not([slot])) { - flex: 0 0 auto; - margin: 0 var(--toolbar-item-gap); - } - - :host([orientation='vertical']) ::slotted(:not([slot])) { - margin: var(--toolbar-item-gap) 0; - } - - .start, - .end { - display: flex; - margin: auto; - margin-inline: 0; - } - - ::slotted(svg) { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - width: 16px; - height: 16px; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host(:${be.focusVisible}) { - box-shadow: 0 0 0 calc(${Yt} * 1px) - ${Ja.Highlight}; - color: ${Ja.ButtonText}; - forced-color-adjust: none; - } - `));const Ts=Object.freeze({[An.Is.ArrowUp]:{[es.t.vertical]:-1},[An.Is.ArrowDown]:{[es.t.vertical]:1},[An.Is.ArrowLeft]:{[es.t.horizontal]:{[fe.O.ltr]:-1,[fe.O.rtl]:1}},[An.Is.ArrowRight]:{[es.t.horizontal]:{[fe.O.ltr]:1,[fe.O.rtl]:-1}}});class Vs extends be.FoundationElement{constructor(){super(...arguments);this._activeIndex=0;this.direction=fe.O.ltr;this.orientation=es.t.horizontal}get activeIndex(){Za.Observable.track(this,"activeIndex");return this._activeIndex}set activeIndex(e){if(this.$fastController.isConnected){this._activeIndex=(0,Fs.AB)(0,this.focusableElements.length-1,e);Za.Observable.notify(this,"activeIndex")}}slottedItemsChanged(){if(this.$fastController.isConnected){this.reduceFocusableElements()}}mouseDownHandler(e){var t;const o=(t=this.focusableElements)===null||t===void 0?void 0:t.findIndex((t=>t.contains(e.target)));if(o>-1&&this.activeIndex!==o){this.setFocusedElement(o)}return true}childItemsChanged(e,t){if(this.$fastController.isConnected){this.reduceFocusableElements()}}connectedCallback(){super.connectedCallback();this.direction=(0,be.getDirection)(this)}focusinHandler(e){const t=e.relatedTarget;if(!t||this.contains(t)){return}this.setFocusedElement()}getDirectionalIncrementer(e){var t,o,r,a,i;return(i=(r=(o=(t=Ts[e])===null||t===void 0?void 0:t[this.orientation])===null||o===void 0?void 0:o[this.direction])!==null&&r!==void 0?r:(a=Ts[e])===null||a===void 0?void 0:a[this.orientation])!==null&&i!==void 0?i:0}keydownHandler(e){const t=e.key;if(!(t in An.Is)||e.defaultPrevented||e.shiftKey){return true}const o=this.getDirectionalIncrementer(t);if(!o){return!e.target.closest("[role=radiogroup]")}const r=this.activeIndex+o;if(this.focusableElements[r]){e.preventDefault()}this.setFocusedElement(r);return true}get allSlottedItems(){return[...this.start.assignedElements(),...this.slottedItems,...this.end.assignedElements()]}reduceFocusableElements(){var e;const t=(e=this.focusableElements)===null||e===void 0?void 0:e[this.activeIndex];this.focusableElements=this.allSlottedItems.reduce(Vs.reduceFocusableItems,[]);const o=this.focusableElements.indexOf(t);this.activeIndex=Math.max(0,o);this.setFocusableElements()}setFocusedElement(e=this.activeIndex){this.activeIndex=e;this.setFocusableElements();if(this.focusableElements[this.activeIndex]&&this.contains(document.activeElement)){this.focusableElements[this.activeIndex].focus()}}static reduceFocusableItems(e,t){var o,r,a,i;const n=t.getAttribute("role")==="radio";const l=(r=(o=t.$fastController)===null||o===void 0?void 0:o.definition.shadowOptions)===null||r===void 0?void 0:r.delegatesFocus;const s=Array.from((i=(a=t.shadowRoot)===null||a===void 0?void 0:a.querySelectorAll("*"))!==null&&i!==void 0?i:[]).some((e=>(0,Cs.tp)(e)));if(!t.hasAttribute("disabled")&&!t.hasAttribute("hidden")&&((0,Cs.tp)(t)||n||l||s)){e.push(t);return e}if(t.childElementCount){return e.concat(Array.from(t.children).reduce(Vs.reduceFocusableItems,[]))}return e}setFocusableElements(){if(this.$fastController.isConnected&&this.focusableElements.length>0){this.focusableElements.forEach(((e,t)=>{e.tabIndex=this.activeIndex===t?0:-1}))}}}si([Za.observable],Vs.prototype,"direction",void 0);si([Za.attr],Vs.prototype,"orientation",void 0);si([Za.observable],Vs.prototype,"slottedItems",void 0);si([Za.observable],Vs.prototype,"slottedLabel",void 0);si([Za.observable],Vs.prototype,"childItems",void 0);class Ds{}si([(0,Za.attr)({attribute:"aria-labelledby"})],Ds.prototype,"ariaLabelledby",void 0);si([(0,Za.attr)({attribute:"aria-label"})],Ds.prototype,"ariaLabel",void 0);(0,be.applyMixins)(Ds,be.ARIAGlobalStatesAndProperties);(0,be.applyMixins)(Vs,be.StartEnd,Ds);class js extends Vs{connectedCallback(){super.connectedCallback();const e=(0,be.composedParent)(this);if(e){sr.setValueFor(this,(t=>Kr.getValueFor(t).evaluate(t,sr.getValueFor(e))))}}}const zs=js.compose({baseName:"toolbar",baseClass:Vs,template:be.toolbarTemplate,styles:Ss,shadowOptions:{delegatesFocus:true}});const Bs=(e,t)=>{const o=e.tagFor(be.AnchoredRegion);return(0,Za.css)` - :host { - contain: size; - overflow: visible; - height: 0; - width: 0; - } - - .tooltip { - box-sizing: border-box; - border-radius: calc(${Et} * 1px); - border: calc(${Zt} * 1px) solid ${ta}; - box-shadow: 0 0 0 1px ${ta} inset; - background: ${Lr}; - color: ${la}; - padding: 4px; - height: fit-content; - width: fit-content; - font-family: ${It}; - font-size: ${Jt}; - line-height: ${Kt}; - white-space: nowrap; - /* TODO: a mechanism to manage z-index across components - https://github.com/microsoft/fast/issues/3813 */ - z-index: 10000; - } - - ${o} { - display: flex; - justify-content: center; - align-items: center; - overflow: visible; - flex-direction: row; - } - - ${o}.right, - ${o}.left { - flex-direction: column; - } - - ${o}.top .tooltip { - margin-bottom: 4px; - } - - ${o}.bottom .tooltip { - margin-top: 4px; - } - - ${o}.left .tooltip { - margin-right: 4px; - } - - ${o}.right .tooltip { - margin-left: 4px; - } - - ${o}.top.left .tooltip, - ${o}.top.right .tooltip { - margin-bottom: 0px; - } - - ${o}.bottom.left .tooltip, - ${o}.bottom.right .tooltip { - margin-top: 0px; - } - - ${o}.top.left .tooltip, - ${o}.bottom.left .tooltip { - margin-right: 0px; - } - - ${o}.top.right .tooltip, - ${o}.bottom.right .tooltip { - margin-left: 0px; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host([disabled]) { - opacity: 1; - } - `))};class Ls extends be.Tooltip{}const Os=Ls.compose({baseName:"tooltip",baseClass:be.Tooltip,template:be.tooltipTemplate,styles:Bs});const Hs=(0,Za.cssPartial)`(((${At} + ${_t}) * 0.5 + 2) * ${qt})`;const Ns=(0,Za.css)` - .expand-collapse-glyph { - transform: rotate(0deg); - } - :host(.nested) .expand-collapse-button { - left: var( - --expand-collapse-button-nested-width, - calc( - ( - ${Hs} + - ((${At} + ${_t}) * 1.25) - ) * -1px - ) - ); - } - :host([selected])::after { - left: calc(${Yt} * 1px); - } - :host([expanded]) > .positioning-region .expand-collapse-glyph { - transform: rotate(90deg); - } -`;const Ps=(0,Za.css)` - .expand-collapse-glyph { - transform: rotate(180deg); - } - :host(.nested) .expand-collapse-button { - right: var( - --expand-collapse-button-nested-width, - calc( - ( - ${Hs} + - ((${At} + ${_t}) * 1.25) - ) * -1px - ) - ); - } - :host([selected])::after { - right: calc(${Yt} * 1px); - } - :host([expanded]) > .positioning-region .expand-collapse-glyph { - transform: rotate(90deg); - } -`;const Rs=be.DesignToken.create("tree-item-expand-collapse-hover").withDefault((e=>{const t=Gr.getValueFor(e);return t.evaluate(e,t.evaluate(e).hover).hover}));const Is=be.DesignToken.create("tree-item-expand-collapse-selected-hover").withDefault((e=>{const t=Br.getValueFor(e);const o=Gr.getValueFor(e);return o.evaluate(e,t.evaluate(e).rest).hover}));const As=(e,t)=>(0,Za.css)` - /** - * This animation exists because when tree item children are conditionally loaded - * there is a visual bug where the DOM exists but styles have not yet been applied (essentially FOUC). - * This subtle animation provides a ever so slight timing adjustment for loading that solves the issue. - */ - @keyframes treeItemLoading { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } - } - - ${(0,be.display)("block")} :host { - contain: content; - position: relative; - outline: none; - color: ${la}; - background: ${Er}; - cursor: pointer; - font-family: ${It}; - --tree-item-nested-width: 0; - } - - :host(:focus) > .positioning-region { - outline: none; - } - - :host(:focus) .content-region { - outline: none; - } - - :host(:${be.focusVisible}) .positioning-region { - border-color: ${gr}; - box-shadow: 0 0 0 calc((${Yt} - ${Zt}) * 1px) - ${gr} inset; - color: ${la}; - } - - .positioning-region { - display: flex; - position: relative; - box-sizing: border-box; - background: ${Er}; - border: transparent calc(${Zt} * 1px) solid; - border-radius: calc(${Et} * 1px); - height: calc((${Ka} + 1) * 1px); - } - - .positioning-region::before { - content: ''; - display: block; - width: var(--tree-item-nested-width); - flex-shrink: 0; - } - - :host(:not([disabled])) .positioning-region:hover { - background: ${_r}; - } - - :host(:not([disabled])) .positioning-region:active { - background: ${qr}; - } - - .content-region { - display: inline-flex; - align-items: center; - white-space: nowrap; - width: 100%; - min-width: 0; - height: calc(${Ka} * 1px); - margin-inline-start: calc(${qt} * 2px + 8px); - font-size: ${Jt}; - line-height: ${Kt}; - font-weight: 400; - } - - .items { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - font-size: calc(1em + (${qt} + 16) * 1px); - } - - .expand-collapse-button { - background: none; - border: none; - outline: none; - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - width: calc(${Hs} * 1px); - height: calc(${Hs} * 1px); - padding: 0; - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; - margin-left: 6px; - margin-right: 6px; - } - - .expand-collapse-glyph { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - width: calc((16 + ${_t}) * 1px); - height: calc((16 + ${_t}) * 1px); - transition: transform 0.1s linear; - - pointer-events: none; - fill: currentcolor; - } - - .start, - .end { - display: flex; - fill: currentcolor; - } - - ::slotted(svg) { - /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ - width: 16px; - height: 16px; - - /* Something like that would do if the typography is adaptive - font-size: inherit; - width: ${ro}; - height: ${ro}; - */ - } - - .start { - /* TODO: horizontalSpacing https://github.com/microsoft/fast/issues/2766 */ - margin-inline-end: calc(${qt} * 2px + 2px); - } - - .end { - /* TODO: horizontalSpacing https://github.com/microsoft/fast/issues/2766 */ - margin-inline-start: calc(${qt} * 2px + 2px); - } - - :host([expanded]) > .items { - animation: treeItemLoading ease-in 10ms; - animation-iteration-count: 1; - animation-fill-mode: forwards; - } - - :host([disabled]) .content-region { - opacity: ${Xt}; - cursor: ${be.disabledCursor}; - } - - :host(.nested) .content-region { - position: relative; - /* Add left margin to collapse button size */ - margin-inline-start: calc( - ( - ${Hs} + - ((${At} + ${_t}) * 1.25) - ) * 1px - ); - } - - :host(.nested) .expand-collapse-button { - position: absolute; - } - - :host(.nested:not([disabled])) .expand-collapse-button:hover { - background: ${Rs}; - } - - :host([selected]) .positioning-region { - background: ${Lr}; - } - - :host([selected]:not([disabled])) .positioning-region:hover { - background: ${Or}; - } - - :host([selected]:not([disabled])) .positioning-region:active { - background: ${Hr}; - } - - :host([selected]:not([disabled])) .expand-collapse-button:hover { - background: ${Is}; - } - - :host([selected])::after { - /* The background needs to be calculated based on the selected background state - for this control. We currently have no way of changing that, so setting to - accent-foreground-rest for the time being */ - background: ${Vr}; - border-radius: calc(${Et} * 1px); - content: ''; - display: block; - position: absolute; - top: calc((${Ka} / 4) * 1px); - width: 3px; - height: calc((${Ka} / 2) * 1px); - } - - ::slotted(${e.tagFor(be.TreeItem)}) { - --tree-item-nested-width: 1em; - --expand-collapse-button-nested-width: calc( - ( - ${Hs} + - ((${At} + ${_t}) * 1.25) - ) * -1px - ); - } - `.withBehaviors(new Zi(Ns,Ps),(0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - forced-color-adjust: none; - border-color: transparent; - background: ${Ja.Field}; - color: ${Ja.FieldText}; - } - :host .content-region .expand-collapse-glyph { - fill: ${Ja.FieldText}; - } - :host .positioning-region:hover, - :host([selected]) .positioning-region { - background: ${Ja.Highlight}; - } - :host .positioning-region:hover .content-region, - :host([selected]) .positioning-region .content-region { - color: ${Ja.HighlightText}; - } - :host .positioning-region:hover .content-region .expand-collapse-glyph, - :host .positioning-region:hover .content-region .start, - :host .positioning-region:hover .content-region .end, - :host([selected]) .content-region .expand-collapse-glyph, - :host([selected]) .content-region .start, - :host([selected]) .content-region .end { - fill: ${Ja.HighlightText}; - } - :host([selected])::after { - background: ${Ja.Field}; - } - :host(:${be.focusVisible}) .positioning-region { - border-color: ${Ja.FieldText}; - box-shadow: 0 0 0 2px inset ${Ja.Field}; - color: ${Ja.FieldText}; - } - :host([disabled]) .content-region, - :host([disabled]) .positioning-region:hover .content-region { - opacity: 1; - color: ${Ja.GrayText}; - } - :host([disabled]) .content-region .expand-collapse-glyph, - :host([disabled]) .content-region .start, - :host([disabled]) .content-region .end, - :host([disabled]) - .positioning-region:hover - .content-region - .expand-collapse-glyph, - :host([disabled]) .positioning-region:hover .content-region .start, - :host([disabled]) .positioning-region:hover .content-region .end { - fill: ${Ja.GrayText}; - } - :host([disabled]) .positioning-region:hover { - background: ${Ja.Field}; - } - .expand-collapse-glyph, - .start, - .end { - fill: ${Ja.FieldText}; - } - :host(.nested) .expand-collapse-button:hover { - background: ${Ja.Field}; - } - :host(.nested) .expand-collapse-button:hover .expand-collapse-glyph { - fill: ${Ja.FieldText}; - } - `));class Ms extends be.TreeItem{}const Gs=Ms.compose({baseName:"tree-item",baseClass:be.TreeItem,template:be.treeItemTemplate,styles:As,expandCollapseGlyph:`\n \n \n \n `});const Es=(e,t)=>(0,Za.css)` - ${(0,be.display)("flex")} :host { - flex-direction: column; - align-items: stretch; - min-width: fit-content; - font-size: 0; - } - - :host:focus-visible { - outline: none; - } -`;class _s extends be.TreeView{handleClick(e){if(e.defaultPrevented){return}if(!(e.target instanceof Element)){return true}let t=e.target;while(t&&!(0,be.isTreeItemElement)(t)){t=t.parentElement;if(t===this){t=null}}if(t&&!t.disabled){t.selected=true}return}}const qs=_s.compose({baseName:"tree-view",baseClass:be.TreeView,template:be.treeViewTemplate,styles:Es});const Ws=(e,t)=>(0,Za.css)` - .region { - z-index: 1000; - overflow: hidden; - display: flex; - font-family: ${It}; - font-size: ${Jt}; - } - - .loaded { - opacity: 1; - pointer-events: none; - } - - .loading-display, - .no-options-display { - background: ${sr}; - width: 100%; - min-height: calc(${Ka} * 1px); - display: flex; - flex-direction: column; - align-items: center; - justify-items: center; - padding: calc(${qt} * 1px); - } - - .loading-progress { - width: 42px; - height: 42px; - } - - .bottom { - flex-direction: column; - } - - .top { - flex-direction: column-reverse; - } -`;const Us=(e,t)=>(0,Za.css)` - :host { - background: ${sr}; - --elevation: 11; - /* TODO: a mechanism to manage z-index across components - https://github.com/microsoft/fast/issues/3813 */ - z-index: 1000; - display: flex; - width: 100%; - max-height: 100%; - min-height: 58px; - box-sizing: border-box; - flex-direction: column; - overflow-y: auto; - overflow-x: hidden; - pointer-events: auto; - border-radius: calc(${Et} * 1px); - padding: calc(${qt} * 1px) 0; - border: calc(${Zt} * 1px) solid transparent; - ${vn} - } - - .suggestions-available-alert { - height: 0; - opacity: 0; - overflow: hidden; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - background: ${Ja.Canvas}; - border-color: ${Ja.CanvasText}; - } - `));const Xs=(e,t)=>(0,Za.css)` - :host { - display: flex; - align-items: center; - justify-items: center; - font-family: ${It}; - border-radius: calc(${Et} * 1px); - border: calc(${Yt} * 1px) solid transparent; - box-sizing: border-box; - background: ${Er}; - color: ${la}; - cursor: pointer; - fill: currentcolor; - font-size: ${Jt}; - min-height: calc(${Ka} * 1px); - line-height: ${Kt}; - margin: 0 calc(${qt} * 1px); - outline: none; - overflow: hidden; - padding: 0 calc(${qt} * 2.25px); - user-select: none; - white-space: nowrap; - } - - :host(:${be.focusVisible}[role="listitem"]) { - border-color: ${ta}; - background: ${Wr}; - } - - :host(:hover) { - background: ${_r}; - } - - :host(:active) { - background: ${qr}; - } - - :host([aria-selected='true']) { - background: ${ur}; - color: ${mr}; - } - - :host([aria-selected='true']:hover) { - background: ${hr}; - color: ${vr}; - } - - :host([aria-selected='true']:active) { - background: ${pr}; - color: ${$r}; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - border-color: transparent; - forced-color-adjust: none; - color: ${Ja.ButtonText}; - fill: currentcolor; - } - - :host(:not([aria-selected='true']):hover), - :host([aria-selected='true']) { - background: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - } - - :host([disabled]), - :host([disabled]:not([aria-selected='true']):hover) { - background: ${Ja.Canvas}; - color: ${Ja.GrayText}; - fill: currentcolor; - opacity: 1; - } - `));const Zs=(e,t)=>(0,Za.css)` - :host { - display: flex; - flex-direction: row; - column-gap: calc(${qt} * 1px); - row-gap: calc(${qt} * 1px); - flex-wrap: wrap; - } - - ::slotted([role="combobox"]) { - min-width: 260px; - width: auto; - box-sizing: border-box; - color: ${la}; - background: ${Rr}; - border-radius: calc(${Et} * 1px); - border: calc(${Zt} * 1px) solid ${ur}; - height: calc(${Ka} * 1px); - font-family: ${It}; - outline: none; - user-select: none; - font-size: ${Jt}; - line-height: ${Kt}; - padding: 0 calc(${qt} * 2px + 1px); - } - - ::slotted([role="combobox"]:active) { { - background: ${Ir}; - border-color: ${pr}; - } - - ::slotted([role="combobox"]:focus-within) { - border-color: ${ta}; - box-shadow: 0 0 0 1px ${ta} inset; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - ::slotted([role='combobox']:active) { - background: ${Ja.Field}; - border-color: ${Ja.Highlight}; - } - ::slotted([role='combobox']:focus-within) { - border-color: ${Ja.Highlight}; - box-shadow: 0 0 0 1px ${Ja.Highlight} inset; - } - ::slotted(input:placeholder) { - color: ${Ja.GrayText}; - } - `));const Ys=(e,t)=>(0,Za.css)` - :host { - display: flex; - align-items: center; - justify-items: center; - font-family: ${It}; - border-radius: calc(${Et} * 1px); - border: calc(${Yt} * 1px) solid transparent; - box-sizing: border-box; - background: ${Er}; - color: ${la}; - cursor: pointer; - fill: currentcolor; - font-size: ${Jt}; - height: calc(${Ka} * 1px); - line-height: ${Kt}; - outline: none; - overflow: hidden; - padding: 0 calc(${qt} * 2.25px); - user-select: none; - white-space: nowrap; - } - - :host(:hover) { - background: ${_r}; - } - - :host(:active) { - background: ${qr}; - } - - :host(:${be.focusVisible}) { - background: ${Wr}; - border-color: ${ta}; - } - - :host([aria-selected='true']) { - background: ${ur}; - color: ${$r}; - } - `.withBehaviors((0,be.forcedColorsStylesheetBehavior)((0,Za.css)` - :host { - border-color: transparent; - forced-color-adjust: none; - color: ${Ja.ButtonText}; - fill: currentcolor; - } - - :host(:not([aria-selected='true']):hover), - :host([aria-selected='true']) { - background: ${Ja.Highlight}; - color: ${Ja.HighlightText}; - } - - :host([disabled]), - :host([disabled]:not([aria-selected='true']):hover) { - background: ${Ja.Canvas}; - color: ${Ja.GrayText}; - fill: currentcolor; - opacity: 1; - } - `));class Js extends be.Picker{}const Ks=Js.compose({baseName:"draft-picker",baseClass:be.Picker,template:be.pickerTemplate,styles:Ws,shadowOptions:{}});class Qs extends be.PickerMenu{connectedCallback(){sr.setValueFor(this,Qo);super.connectedCallback()}}const ec=Qs.compose({baseName:"draft-picker-menu",baseClass:be.PickerMenu,template:be.pickerMenuTemplate,styles:Us});class tc extends be.PickerMenuOption{}const oc=tc.compose({baseName:"draft-picker-menu-option",baseClass:be.PickerMenuOption,template:be.pickerMenuOptionTemplate,styles:Xs});class rc extends be.PickerList{}const ac=rc.compose({baseName:"draft-picker-list",baseClass:be.PickerList,template:be.pickerListTemplate,styles:Zs});class ic extends be.PickerListItem{}const nc=ic.compose({baseName:"draft-picker-list-item",baseClass:be.PickerListItem,template:be.pickerListItemTemplate,styles:Ys});const lc={jpAccordion:ri,jpAccordionItem:ti,jpAnchor:qi,jpAnchoredRegion:Xi,jpAvatar:on,jpBadge:nn,jpBreadcrumb:cn,jpBreadcrumbItem:hn,jpButton:bn,jpCard:yn,jpCheckbox:Cn,jpCombobox:jn,jpDataGrid:In,jpDataGridCell:Hn,jpDataGridRow:Pn,jpDateField:Zn,jpDesignSystemProvider:ol,jpDialog:il,jpDisclosure:sl,jpDivider:ul,jpListbox:pl,jpMenu:fl,jpMenuItem:$l,jpNumberField:wl,jpOption:Cl,jpPicker:Ks,jpPickerList:ac,jpPickerListItem:nc,jpPickerMenu:ec,jpPickerMenuOption:oc,jpProgress:Vl,jpProgressRing:zl,jpRadio:Hl,jpRadioGroup:Rl,jpSearch:El,jpSelect:ql,jpSkeleton:Xl,jpSlider:Ql,jpSliderLabel:is,jpSwitch:ss,jpTab:gs,jpTabPanel:us,jpTabs:ms,jpTextArea:xs,jpTextField:ks,jpToolbar:zs,jpTooltip:Os,jpTreeItem:Gs,jpTreeView:qs,register(e,...t){if(!e){return}for(const o in this){if(o==="register"){continue}this[o]().register(e,...t)}}};function sc(e){return be.DesignSystem.getOrCreate(e).withPrefix("jp")}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2590.99e505d19b964439aa31.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2590.99e505d19b964439aa31.js deleted file mode 100644 index 6148d2294beae4eecd87b3642b3523288fc992a5..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2590.99e505d19b964439aa31.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2590],{62590:(e,t,s)=>{s.r(t);s.d(t,{$global:()=>i,AttachedBehaviorHTMLDirective:()=>T,AttributeConfiguration:()=>oe,AttributeDefinition:()=>ae,BindingBehavior:()=>L,CSSDirective:()=>we,ChildrenBehavior:()=>ht,Controller:()=>me,DOM:()=>p,ElementStyles:()=>X,ExecutionContext:()=>x,FAST:()=>r,FASTElement:()=>Ce,FASTElementDefinition:()=>pe,HTMLBindingDirective:()=>E,HTMLDirective:()=>S,HTMLView:()=>W,Observable:()=>v,PropertyChangeNotifier:()=>b,RefBehavior:()=>Ue,RepeatBehavior:()=>tt,RepeatDirective:()=>st,SlottedBehavior:()=>ot,SubscriberSet:()=>g,TargetedHTMLDirective:()=>B,ViewTemplate:()=>G,attr:()=>ce,booleanConverter:()=>le,children:()=>at,compileTemplate:()=>Q,createMetadataLocator:()=>l,css:()=>Be,cssPartial:()=>Oe,customElement:()=>xe,defaultExecutionContext:()=>w,elements:()=>nt,emptyArray:()=>o,enableArrayObservation:()=>Qe,html:()=>K,nullableNumberConverter:()=>he,observable:()=>m,ref:()=>We,repeat:()=>it,slotted:()=>lt,volatile:()=>y,when:()=>Xe});const i=function(){if(typeof globalThis!=="undefined"){return globalThis}if(typeof s.g!=="undefined"){return s.g}if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}try{return new Function("return this")()}catch(e){return{}}}();if(i.trustedTypes===void 0){i.trustedTypes={createPolicy:(e,t)=>t}}const n={configurable:false,enumerable:false,writable:false};if(i.FAST===void 0){Reflect.defineProperty(i,"FAST",Object.assign({value:Object.create(null)},n))}const r=i.FAST;if(r.getById===void 0){const e=Object.create(null);Reflect.defineProperty(r,"getById",Object.assign({value(t,s){let i=e[t];if(i===void 0){i=s?e[t]=s():null}return i}},n))}const o=Object.freeze([]);function l(){const e=new WeakMap;return function(t){let s=e.get(t);if(s===void 0){let i=Reflect.getPrototypeOf(t);while(s===void 0&&i!==null){s=e.get(i);i=Reflect.getPrototypeOf(i)}s=s===void 0?[]:s.slice(0);e.set(t,s)}return s}}const h=i.FAST.getById(1,(()=>{const e=[];const t=[];function s(){if(t.length){throw t.shift()}}function n(e){try{e.call()}catch(i){t.push(i);setTimeout(s,0)}}function r(){const t=1024;let s=0;while(st){for(let t=0,i=e.length-s;te});let c=a;const u=`fast-${Math.random().toString(36).substring(2,8)}`;const d=`${u}{`;const f=`}${u}`;const p=Object.freeze({supportsAdoptedStyleSheets:Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype,setHTMLPolicy(e){if(c!==a){throw new Error("The HTML policy can only be set once.")}c=e},createHTML(e){return c.createHTML(e)},isMarker(e){return e&&e.nodeType===8&&e.data.startsWith(u)},extractDirectiveIndexFromMarker(e){return parseInt(e.data.replace(`${u}:`,""))},createInterpolationPlaceholder(e){return`${d}${e}${f}`},createCustomAttributePlaceholder(e,t){return`${e}="${this.createInterpolationPlaceholder(t)}"`},createBlockPlaceholder(e){return`\x3c!--${u}:${e}--\x3e`},queueUpdate:h.enqueue,processUpdates:h.process,nextUpdate(){return new Promise(h.enqueue)},setAttribute(e,t,s){if(s===null||s===undefined){e.removeAttribute(t)}else{e.setAttribute(t,s)}},setBooleanAttribute(e,t,s){s?e.setAttribute(t,""):e.removeAttribute(t)},removeChildNodes(e){for(let t=e.firstChild;t!==null;t=e.firstChild){e.removeChild(t)}},createTemplateWalker(e){return document.createTreeWalker(e,133,null,false)}});class g{constructor(e,t){this.sub1=void 0;this.sub2=void 0;this.spillover=void 0;this.source=e;this.sub1=t}has(e){return this.spillover===void 0?this.sub1===e||this.sub2===e:this.spillover.indexOf(e)!==-1}subscribe(e){const t=this.spillover;if(t===void 0){if(this.has(e)){return}if(this.sub1===void 0){this.sub1=e;return}if(this.sub2===void 0){this.sub2=e;return}this.spillover=[this.sub1,this.sub2,e];this.sub1=void 0;this.sub2=void 0}else{const s=t.indexOf(e);if(s===-1){t.push(e)}}}unsubscribe(e){const t=this.spillover;if(t===void 0){if(this.sub1===e){this.sub1=void 0}else if(this.sub2===e){this.sub2=void 0}}else{const s=t.indexOf(e);if(s!==-1){t.splice(s,1)}}}notify(e){const t=this.spillover;const s=this.source;if(t===void 0){const t=this.sub1;const i=this.sub2;if(t!==void 0){t.handleChange(s,e)}if(i!==void 0){i.handleChange(s,e)}}else{for(let i=0,n=t.length;i{const e=/(:|&&|\|\||if)/;const t=new WeakMap;const s=p.queueUpdate;let i=void 0;let n=e=>{throw new Error("Must call enableArrayObservation before observing arrays.")};function r(e){let s=e.$fastController||t.get(e);if(s===void 0){if(Array.isArray(e)){s=n(e)}else{t.set(e,s=new b(e))}}return s}const o=l();class h{constructor(e){this.name=e;this.field=`_${e}`;this.callback=`${e}Changed`}getValue(e){if(i!==void 0){i.watch(e,this.name)}return e[this.field]}setValue(e,t){const s=this.field;const i=e[s];if(i!==t){e[s]=t;const n=e[this.callback];if(typeof n==="function"){n.call(e,i,t)}r(e).notify(this.name)}}}class a extends g{constructor(e,t,s=false){super(e,t);this.binding=e;this.isVolatileBinding=s;this.needsRefresh=true;this.needsQueue=true;this.first=this;this.last=null;this.propertySource=void 0;this.propertyName=void 0;this.notifier=void 0;this.next=void 0}observe(e,t){if(this.needsRefresh&&this.last!==null){this.disconnect()}const s=i;i=this.needsRefresh?this:void 0;this.needsRefresh=this.isVolatileBinding;const n=this.binding(e,t);i=s;return n}disconnect(){if(this.last!==null){let e=this.first;while(e!==void 0){e.notifier.unsubscribe(this,e.propertyName);e=e.next}this.last=null;this.needsRefresh=this.needsQueue=true}}watch(e,t){const s=this.last;const n=r(e);const o=s===null?this.first:{};o.propertySource=e;o.propertyName=t;o.notifier=n;n.subscribe(this,t);if(s!==null){if(!this.needsRefresh){let t;i=void 0;t=s.propertySource[s.propertyName];i=this;if(e===t){this.needsRefresh=true}}s.next=o}this.last=o}handleChange(){if(this.needsQueue){this.needsQueue=false;s(this)}}call(){if(this.last!==null){this.needsQueue=true;this.notify(this)}}records(){let e=this.first;return{next:()=>{const t=e;if(t===undefined){return{value:void 0,done:true}}else{e=e.next;return{value:t,done:false}}},[Symbol.iterator]:function(){return this}}}}return Object.freeze({setArrayObserverFactory(e){n=e},getNotifier:r,track(e,t){if(i!==void 0){i.watch(e,t)}},trackVolatile(){if(i!==void 0){i.needsRefresh=true}},notify(e,t){r(e).notify(t)},defineProperty(e,t){if(typeof t==="string"){t=new h(t)}o(e).push(t);Reflect.defineProperty(e,t.name,{enumerable:true,get:function(){return t.getValue(this)},set:function(e){t.setValue(this,e)}})},getAccessors:o,binding(e,t,s=this.isVolatileBinding(e)){return new a(e,t,s)},isVolatileBinding(t){return e.test(t.toString())}})}));function m(e,t){v.defineProperty(e,t)}function y(e,t,s){return Object.assign({},s,{get:function(){v.trackVolatile();return s.get.apply(this)}})}const C=r.getById(3,(()=>{let e=null;return{get(){return e},set(t){e=t}}}));class x{constructor(){this.index=0;this.length=0;this.parent=null;this.parentContext=null}get event(){return C.get()}get isEven(){return this.index%2===0}get isOdd(){return this.index%2!==0}get isFirst(){return this.index===0}get isInMiddle(){return!this.isFirst&&!this.isLast}get isLast(){return this.index===this.length-1}static setEvent(e){C.set(e)}}v.defineProperty(x.prototype,"index");v.defineProperty(x.prototype,"length");const w=Object.seal(new x);class S{constructor(){this.targetIndex=0}}class B extends S{constructor(){super(...arguments);this.createPlaceholder=p.createInterpolationPlaceholder}}class T extends S{constructor(e,t,s){super();this.name=e;this.behavior=t;this.options=s}createPlaceholder(e){return p.createCustomAttributePlaceholder(this.name,e)}createBehavior(e){return new this.behavior(e,this.options)}}function O(e,t){this.source=e;this.context=t;if(this.bindingObserver===null){this.bindingObserver=v.binding(this.binding,this,this.isBindingVolatile)}this.updateTarget(this.bindingObserver.observe(e,t))}function A(e,t){this.source=e;this.context=t;this.target.addEventListener(this.targetName,this)}function N(){this.bindingObserver.disconnect();this.source=null;this.context=null}function k(){this.bindingObserver.disconnect();this.source=null;this.context=null;const e=this.target.$fastView;if(e!==void 0&&e.isComposed){e.unbind();e.needsBindOnly=true}}function V(){this.target.removeEventListener(this.targetName,this);this.source=null;this.context=null}function $(e){p.setAttribute(this.target,this.targetName,e)}function F(e){p.setBooleanAttribute(this.target,this.targetName,e)}function _(e){if(e===null||e===undefined){e=""}if(e.create){this.target.textContent="";let t=this.target.$fastView;if(t===void 0){t=e.create()}else{if(this.target.$fastTemplate!==e){if(t.isComposed){t.remove();t.unbind()}t=e.create()}}if(!t.isComposed){t.isComposed=true;t.bind(this.source,this.context);t.insertBefore(this.target);this.target.$fastView=t;this.target.$fastTemplate=e}else if(t.needsBindOnly){t.needsBindOnly=false;t.bind(this.source,this.context)}}else{const t=this.target.$fastView;if(t!==void 0&&t.isComposed){t.isComposed=false;t.remove();if(t.needsBindOnly){t.needsBindOnly=false}else{t.unbind()}}this.target.textContent=e}}function I(e){this.target[this.targetName]=e}function M(e){const t=this.classVersions||Object.create(null);const s=this.target;let i=this.version||0;if(e!==null&&e!==undefined&&e.length){const n=e.split(/\s+/);for(let e=0,r=n.length;ep.createHTML(e(t,s))}break;case"?":this.cleanedTargetName=e.substr(1);this.updateTarget=F;break;case"@":this.cleanedTargetName=e.substr(1);this.bind=A;this.unbind=V;break;default:this.cleanedTargetName=e;if(e==="class"){this.updateTarget=M}break}}targetAtContent(){this.updateTarget=_;this.unbind=k}createBehavior(e){return new L(e,this.binding,this.isBindingVolatile,this.bind,this.unbind,this.updateTarget,this.cleanedTargetName)}}class L{constructor(e,t,s,i,n,r,o){this.source=null;this.context=null;this.bindingObserver=null;this.target=e;this.binding=t;this.isBindingVolatile=s;this.bind=i;this.unbind=n;this.updateTarget=r;this.targetName=o}handleChange(){this.updateTarget(this.bindingObserver.observe(this.source,this.context))}handleEvent(e){x.setEvent(e);const t=this.binding(this.source,this.context);x.setEvent(null);if(t!==true){e.preventDefault()}}}let P=null;class j{addFactory(e){e.targetIndex=this.targetIndex;this.behaviorFactories.push(e)}captureContentBinding(e){e.targetAtContent();this.addFactory(e)}reset(){this.behaviorFactories=[];this.targetIndex=-1}release(){P=this}static borrow(e){const t=P||new j;t.directives=e;t.reset();P=null;return t}}function R(e){if(e.length===1){return e[0]}let t;const s=e.length;const i=e.map((e=>{if(typeof e==="string"){return()=>e}t=e.targetName||t;return e.binding}));const n=(e,t)=>{let n="";for(let r=0;rl));a.targetName=o.name}}else{a=R(h)}if(a!==null){t.removeAttributeNode(o);n--;r--;e.addFactory(a)}}}function q(e,t,s){const i=z(e,t.textContent);if(i!==null){let n=t;for(let r=0,o=i.length;r0}const t=this.fragment.cloneNode(true);const s=this.viewBehaviorFactories;const i=new Array(this.behaviorCount);const n=p.createTemplateWalker(t);let r=0;let o=this.targetOffset;let l=n.nextNode();for(let h=s.length;r=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function K(e,...t){const s=[];let i="";for(let n=0,r=e.length-1;ne}if(typeof o==="function"){o=new E(o)}if(o instanceof B){const e=J.exec(r);if(e!==null){o.targetName=e[2]}}if(o instanceof S){i+=o.createPlaceholder(s.length);s.push(o)}else{i+=o}}i+=e[e.length-1];return new G(i,s)}class X{constructor(){this.targets=new WeakSet}addStylesTo(e){this.targets.add(e)}removeStylesFrom(e){this.targets.delete(e)}isAttachedTo(e){return this.targets.has(e)}withBehaviors(...e){this.behaviors=this.behaviors===null?e:this.behaviors.concat(e);return this}}X.create=(()=>{if(p.supportsAdoptedStyleSheets){const e=new Map;return t=>new se(t,e)}return e=>new re(e)})();function Y(e){return e.map((e=>e instanceof X?Y(e.styles):[e])).reduce(((e,t)=>e.concat(t)),[])}function Z(e){return e.map((e=>e instanceof X?e.behaviors:null)).reduce(((e,t)=>{if(t===null){return e}if(e===null){e=[]}return e.concat(t)}),null)}let ee=(e,t)=>{e.adoptedStyleSheets=[...e.adoptedStyleSheets,...t]};let te=(e,t)=>{e.adoptedStyleSheets=e.adoptedStyleSheets.filter((e=>t.indexOf(e)===-1))};if(p.supportsAdoptedStyleSheets){try{document.adoptedStyleSheets.push();document.adoptedStyleSheets.splice();ee=(e,t)=>{e.adoptedStyleSheets.push(...t)};te=(e,t)=>{for(const s of t){const t=e.adoptedStyleSheets.indexOf(s);if(t!==-1){e.adoptedStyleSheets.splice(t,1)}}}}catch(ct){}}class se extends X{constructor(e,t){super();this.styles=e;this.styleSheetCache=t;this._styleSheets=void 0;this.behaviors=Z(e)}get styleSheets(){if(this._styleSheets===void 0){const e=this.styles;const t=this.styleSheetCache;this._styleSheets=Y(e).map((e=>{if(e instanceof CSSStyleSheet){return e}let s=t.get(e);if(s===void 0){s=new CSSStyleSheet;s.replaceSync(e);t.set(e,s)}return s}))}return this._styleSheets}addStylesTo(e){ee(e,this.styleSheets);super.addStylesTo(e)}removeStylesFrom(e){te(e,this.styleSheets);super.removeStylesFrom(e)}}let ie=0;function ne(){return`fast-style-class-${++ie}`}class re extends X{constructor(e){super();this.styles=e;this.behaviors=null;this.behaviors=Z(e);this.styleSheets=Y(e);this.styleClass=ne()}addStylesTo(e){const t=this.styleSheets;const s=this.styleClass;e=this.normalizeTarget(e);for(let i=0;i{s.add(e);const i=e[this.fieldName];switch(t){case"reflect":const t=this.converter;p.setAttribute(e,this.attribute,t!==void 0?t.toView(i):i);break;case"boolean":p.setBooleanAttribute(e,this.attribute,i);break}s.delete(e)}))}static collect(e,...t){const s=[];t.push(oe.locate(e));for(let i=0,n=t.length;i1){s.property=t}oe.locate(e.constructor).push(s)}if(arguments.length>1){s={};i(e,t);return}s=e===void 0?{}:e;return i}const ue={mode:"open"};const de={};const fe=r.getById(4,(()=>{const e=new Map;return Object.freeze({register(t){if(e.has(t.type)){return false}e.set(t.type,t);return true},getByType(t){return e.get(t)}})}));class pe{constructor(e,t=e.definition){if(typeof t==="string"){t={name:t}}this.type=e;this.name=t.name;this.template=t.template;const s=ae.collect(e,t.attributes);const i=new Array(s.length);const n={};const r={};for(let o=0,l=s.length;o0){const t=this.boundObservables=Object.create(null);for(let s=0,n=i.length;s{if(typeof t==="string"){this.css+=t}else{e.push(t)}return e}),[]);if(s.length){this.styles=X.create(s)}}createBehavior(){return this}createCSS(){return this.css}bind(e){if(this.styles){e.$fastController.addStyles(this.styles)}if(this.behaviors.length){e.$fastController.addBehaviors(this.behaviors)}}unbind(e){if(this.styles){e.$fastController.removeStyles(this.styles)}if(this.behaviors.length){e.$fastController.removeBehaviors(this.behaviors)}}}function Oe(e,...t){const{styles:s,behaviors:i}=Se(e,t);return new Te(s,i)}function Ae(e,t,s){return{index:e,removed:t,addedCount:s}}const Ne=0;const ke=1;const Ve=2;const $e=3;function Fe(e,t,s,i,n,r){const o=r-n+1;const l=s-t+1;const h=new Array(o);let a;let c;for(let u=0;u0||s>0){if(t===0){n.push(Ve);s--;continue}if(s===0){n.push($e);t--;continue}const r=e[t-1][s-1];const o=e[t-1][s];const l=e[t][s-1];let h;if(o=0){e.splice(l,1);l--;o-=t.addedCount-t.removed.length;n.addedCount+=t.addedCount-s;const i=n.removed.length+t.removed.length-s;if(!n.addedCount&&!i){r=true}else{let e=t.removed;if(n.indext.index+t.addedCount){const s=n.removed.slice(t.index+t.addedCount-n.index);Pe.apply(e,s)}n.removed=e;if(t.indexi){s=i-e.addedCount}else if(s<0){s=i+e.removed.length+s-e.addedCount}if(s<0){s=0}e.index=s;return e}class qe extends g{constructor(e){super(e);this.oldCollection=void 0;this.splices=void 0;this.needsQueue=true;this.call=this.flush;Reflect.defineProperty(e,"$fastController",{value:this,enumerable:false})}subscribe(e){this.flush();super.subscribe(e)}addSplice(e){if(this.splices===void 0){this.splices=[e]}else{this.splices.push(e)}if(this.needsQueue){this.needsQueue=false;p.queueUpdate(this)}}reset(e){this.oldCollection=e;if(this.needsQueue){this.needsQueue=false;p.queueUpdate(this)}}flush(){const e=this.splices;const t=this.oldCollection;if(e===void 0&&t===void 0){return}this.needsQueue=true;this.splices=void 0;this.oldCollection=void 0;const s=t===void 0?He(this.source,e):Le(this.source,0,this.source.length,t,0,t.length);this.notify(s)}}function Qe(){if(ze){return}ze=true;v.setArrayObserverFactory((e=>new qe(e)));const e=Array.prototype;if(e.$fastPatch){return}Reflect.defineProperty(e,"$fastPatch",{value:1,enumerable:false});const t=e.pop;const s=e.push;const i=e.reverse;const n=e.shift;const r=e.sort;const o=e.splice;const l=e.unshift;e.pop=function(){const e=this.length>0;const s=t.apply(this,arguments);const i=this.$fastController;if(i!==void 0&&e){i.addSplice(Ae(this.length,[s],0))}return s};e.push=function(){const e=s.apply(this,arguments);const t=this.$fastController;if(t!==void 0){t.addSplice(De(Ae(this.length-arguments.length,[],arguments.length),this))}return e};e.reverse=function(){let e;const t=this.$fastController;if(t!==void 0){t.flush();e=this.slice()}const s=i.apply(this,arguments);if(t!==void 0){t.reset(e)}return s};e.shift=function(){const e=this.length>0;const t=n.apply(this,arguments);const s=this.$fastController;if(s!==void 0&&e){s.addSplice(Ae(0,[t],0))}return t};e.sort=function(){let e;const t=this.$fastController;if(t!==void 0){t.flush();e=this.slice()}const s=r.apply(this,arguments);if(t!==void 0){t.reset(e)}return s};e.splice=function(){const e=o.apply(this,arguments);const t=this.$fastController;if(t!==void 0){t.addSplice(De(Ae(+arguments[0],e,arguments.length>2?arguments.length-2:0),this))}return e};e.unshift=function(){const e=l.apply(this,arguments);const t=this.$fastController;if(t!==void 0){t.addSplice(De(Ae(0,[],arguments.length),this))}return e}}class Ue{constructor(e,t){this.target=e;this.propertyName=t}bind(e){e[this.propertyName]=this.target}unbind(){}}function We(e){return new T("fast-ref",Ue,e)}const Ge=e=>typeof e==="function";const Je=()=>null;function Ke(e){return e===undefined?Je:Ge(e)?e:()=>e}function Xe(e,t,s){const i=Ge(e)?e:()=>e;const n=Ke(t);const r=Ke(s);return(e,t)=>i(e,t)?n(e,t):r(e,t)}const Ye=Object.freeze({positioning:false,recycle:true});function Ze(e,t,s,i){e.bind(t[s],i)}function et(e,t,s,i){const n=Object.create(i);n.index=s;n.length=t.length;e.bind(t[s],n)}class tt{constructor(e,t,s,i,n,r){this.location=e;this.itemsBinding=t;this.templateBinding=i;this.options=r;this.source=null;this.views=[];this.items=null;this.itemsObserver=null;this.originalContext=void 0;this.childContext=void 0;this.bindView=Ze;this.itemsBindingObserver=v.binding(t,this,s);this.templateBindingObserver=v.binding(i,this,n);if(r.positioning){this.bindView=et}}bind(e,t){this.source=e;this.originalContext=t;this.childContext=Object.create(t);this.childContext.parent=e;this.childContext.parentContext=this.originalContext;this.items=this.itemsBindingObserver.observe(e,this.originalContext);this.template=this.templateBindingObserver.observe(e,this.originalContext);this.observeItems(true);this.refreshAllViews()}unbind(){this.source=null;this.items=null;if(this.itemsObserver!==null){this.itemsObserver.unsubscribe(this)}this.unbindAllViews();this.itemsBindingObserver.disconnect();this.templateBindingObserver.disconnect()}handleChange(e,t){if(e===this.itemsBinding){this.items=this.itemsBindingObserver.observe(this.source,this.originalContext);this.observeItems();this.refreshAllViews()}else if(e===this.templateBinding){this.template=this.templateBindingObserver.observe(this.source,this.originalContext);this.refreshAllViews(true)}else{this.updateViews(t)}}observeItems(e=false){if(!this.items){this.items=o;return}const t=this.itemsObserver;const s=this.itemsObserver=v.getNotifier(this.items);const i=t!==s;if(i&&t!==null){t.unsubscribe(this)}if(i||e){s.subscribe(this)}}updateViews(e){const t=this.childContext;const s=this.views;const i=this.bindView;const n=this.items;const r=this.template;const o=this.options.recycle;const l=[];let h=0;let a=0;for(let c=0,u=e.length;c0){if(f<=v&&b.length>0){u=b[f];f++}else{u=l[h];h++}a--}else{u=r.create()}s.splice(p,0,u);i(u,n,p,t);u.insertBefore(c)}if(b[f]){l.push(...b.slice(f))}}for(let c=h,u=l.length;ct;return new st(e,i,Object.assign(Object.assign({},Ye),s))}function nt(e){if(e){return function(t,s,i){return t.nodeType===1&&t.matches(e)}}return function(e,t,s){return e.nodeType===1}}class rt{constructor(e,t){this.target=e;this.options=t;this.source=null}bind(e){const t=this.options.property;this.shouldUpdate=v.getAccessors(e).some((e=>e.name===t));this.source=e;this.updateTarget(this.computeNodes());if(this.shouldUpdate){this.observe()}}unbind(){this.updateTarget(o);this.source=null;if(this.shouldUpdate){this.disconnect()}}handleEvent(){this.updateTarget(this.computeNodes())}computeNodes(){let e=this.getNodes();if(this.options.filter!==void 0){e=e.filter(this.options.filter)}return e}updateTarget(e){this.source[this.options.property]=e}}class ot extends rt{constructor(e,t){super(e,t)}observe(){this.target.addEventListener("slotchange",this)}disconnect(){this.target.removeEventListener("slotchange",this)}getNodes(){return this.target.assignedNodes(this.options)}}function lt(e){if(typeof e==="string"){e={property:e}}return new T("fast-slotted",ot,e)}class ht extends rt{constructor(e,t){super(e,t);this.observer=null;t.childList=true}observe(){if(this.observer===null){this.observer=new MutationObserver(this.handleEvent.bind(this))}this.observer.observe(this.target,this.options)}disconnect(){this.observer.disconnect()}getNodes(){if("subtree"in this.options){return Array.from(this.target.querySelectorAll(this.options.selector))}return Array.from(this.target.childNodes)}}function at(e){if(typeof e==="string"){e={property:e}}return new T("fast-children",ht,e)}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2601.367168ef0bb1b13c3b83.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2601.367168ef0bb1b13c3b83.js deleted file mode 100644 index 859aabcc409110b91f8139b0a08b35da81e1ec4f..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2601.367168ef0bb1b13c3b83.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2601],{24982:(t,n,e)=>{e.d(n,{JLW:()=>Xr.A,l78:()=>g,tlR:()=>_,qrM:()=>ti.Ay,Yu4:()=>Qr.A,IA3:()=>$r.A,Wi0:()=>ri,PGM:()=>ii,OEq:()=>ui.A,y8u:()=>li.Ay,olC:()=>ai.A,IrU:()=>si.A,oDi:()=>hi.A,Q7f:()=>ci.A,cVp:()=>fi.A,lUB:()=>vi.A,Lx9:()=>pi.A,nVG:()=>di.G,uxU:()=>di.N,Xf2:()=>yi.A,GZz:()=>_i.Ay,UPb:()=>_i.Ps,dyv:()=>_i.Ko,bEH:()=>Pr.interpolateHcl,n8j:()=>qr.A,T9B:()=>r.A,jkA:()=>i.A,rLf:()=>Jr,WH:()=>Dr,m4Y:()=>Lr.A,UMr:()=>Ir.A,w7C:()=>Or.A,zt:()=>Yr,Ltv:()=>Rr,UAC:()=>bi.UA,DCK:()=>zi.DC,TUC:()=>xi.TU,Agd:()=>Ai.Ag,t6C:()=>mi.y,wXd:()=>wi.wX,ABi:()=>xi.AB,Ui6:()=>ki.Ui,rGn:()=>xi.rG,ucG:()=>gi.R,YPH:()=>xi.YP,Mol:()=>xi.Mo,PGu:()=>xi.PG,GuW:()=>xi.Gu});var r=e(21671);var i=e(44317);function o(t){return t}var u=1,a=2,s=3,l=4,c=1e-6;function f(t){return"translate("+t+",0)"}function h(t){return"translate(0,"+t+")"}function p(t){return n=>+t(n)}function v(t,n){n=Math.max(0,t.bandwidth()-n*2)/2;if(t.round())n=Math.round(n);return e=>+t(e)+n}function d(){return!this.__axis}function y(t,n){var e=[],r=null,i=null,y=6,_=6,m=3,g=typeof window!=="undefined"&&window.devicePixelRatio>1?0:.5,w=t===u||t===l?-1:1,A=t===l||t===a?"x":"y",b=t===u||t===s?f:h;function x(f){var h=r==null?n.ticks?n.ticks.apply(n,e):n.domain():r,x=i==null?n.tickFormat?n.tickFormat.apply(n,e):o:i,k=Math.max(y,0)+m,z=n.range(),M=+z[0]+g,E=+z[z.length-1]+g,T=(n.bandwidth?v:p)(n.copy(),g),C=f.selection?f.selection():f,S=C.selectAll(".domain").data([null]),N=C.selectAll(".tick").data(h,n).order(),P=N.exit(),V=N.enter().append("g").attr("class","tick"),B=N.select("line"),I=N.select("text");S=S.merge(S.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor"));N=N.merge(V);B=B.merge(V.append("line").attr("stroke","currentColor").attr(A+"2",w*y));I=I.merge(V.append("text").attr("fill","currentColor").attr(A,w*k).attr("dy",t===u?"0em":t===s?"0.71em":"0.32em"));if(f!==C){S=S.transition(f);N=N.transition(f);B=B.transition(f);I=I.transition(f);P=P.transition(f).attr("opacity",c).attr("transform",(function(t){return isFinite(t=T(t))?b(t+g):this.getAttribute("transform")}));V.attr("opacity",c).attr("transform",(function(t){var n=this.parentNode.__axis;return b((n&&isFinite(n=n(t))?n:T(t))+g)}))}P.remove();S.attr("d",t===l||t===a?_?"M"+w*_+","+M+"H"+g+"V"+E+"H"+w*_:"M"+g+","+M+"V"+E:_?"M"+M+","+w*_+"V"+g+"H"+E+"V"+w*_:"M"+M+","+g+"H"+E);N.attr("opacity",1).attr("transform",(function(t){return b(T(t)+g)}));B.attr(A+"2",w*y);I.attr(A,w*k).text(x);C.filter(d).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===a?"start":t===l?"end":"middle");C.each((function(){this.__axis=T}))}x.scale=function(t){return arguments.length?(n=t,x):n};x.ticks=function(){return e=Array.from(arguments),x};x.tickArguments=function(t){return arguments.length?(e=t==null?[]:Array.from(t),x):e.slice()};x.tickValues=function(t){return arguments.length?(r=t==null?null:Array.from(t),x):r&&r.slice()};x.tickFormat=function(t){return arguments.length?(i=t,x):i};x.tickSize=function(t){return arguments.length?(y=_=+t,x):y};x.tickSizeInner=function(t){return arguments.length?(y=+t,x):y};x.tickSizeOuter=function(t){return arguments.length?(_=+t,x):_};x.tickPadding=function(t){return arguments.length?(m=+t,x):m};x.offset=function(t){return arguments.length?(g=+t,x):g};return x}function _(t){return y(u,t)}function m(t){return y(a,t)}function g(t){return y(s,t)}function w(t){return y(l,t)}function A(){}function b(t){return t==null?A:function(){return this.querySelector(t)}}function x(t){if(typeof t!=="function")t=b(t);for(var n=this._groups,e=n.length,r=new Array(e),i=0;i=g)g=m+1;while(!(A=y[g])&&++g=0;){if(u=r[i]){if(o&&u.compareDocumentPosition(o)^4)o.parentNode.insertBefore(u,o);o=u}}}return this}function $(t){if(!t)t=tt;function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}for(var e=this._groups,r=e.length,i=new Array(r),o=0;on?1:t>=n?0:NaN}function nt(){var t=arguments[0];arguments[0]=this;t.apply(null,arguments);return this}function et(){return Array.from(this)}function rt(){for(var t=this._groups,n=0,e=t.length;n=0&&(n=t.slice(0,e))!=="xmlns")t=t.slice(e+1);return st.hasOwnProperty(n)?{space:st[n],local:t}:t}function ct(t){return function(){this.removeAttribute(t)}}function ft(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ht(t,n){return function(){this.setAttribute(t,n)}}function pt(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function vt(t,n){return function(){var e=n.apply(this,arguments);if(e==null)this.removeAttribute(t);else this.setAttribute(t,e)}}function dt(t,n){return function(){var e=n.apply(this,arguments);if(e==null)this.removeAttributeNS(t.space,t.local);else this.setAttributeNS(t.space,t.local,e)}}function yt(t,n){var e=lt(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((n==null?e.local?ft:ct:typeof n==="function"?e.local?dt:vt:e.local?pt:ht)(e,n))}function _t(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function mt(t){return function(){this.style.removeProperty(t)}}function gt(t,n,e){return function(){this.style.setProperty(t,n,e)}}function wt(t,n,e){return function(){var r=n.apply(this,arguments);if(r==null)this.style.removeProperty(t);else this.style.setProperty(t,r,e)}}function At(t,n,e){return arguments.length>1?this.each((n==null?mt:typeof n==="function"?wt:gt)(t,n,e==null?"":e)):bt(this.node(),t)}function bt(t,n){return t.style.getPropertyValue(n)||_t(t).getComputedStyle(t,null).getPropertyValue(n)}function xt(t){return function(){delete this[t]}}function kt(t,n){return function(){this[t]=n}}function zt(t,n){return function(){var e=n.apply(this,arguments);if(e==null)delete this[t];else this[t]=e}}function Mt(t,n){return arguments.length>1?this.each((n==null?xt:typeof n==="function"?zt:kt)(t,n)):this.node()[t]}function Et(t){return t.trim().split(/^|\s+/)}function Tt(t){return t.classList||new Ct(t)}function Ct(t){this._node=t;this._names=Et(t.getAttribute("class")||"")}Ct.prototype={add:function(t){var n=this._names.indexOf(t);if(n<0){this._names.push(t);this._node.setAttribute("class",this._names.join(" "))}},remove:function(t){var n=this._names.indexOf(t);if(n>=0){this._names.splice(n,1);this._node.setAttribute("class",this._names.join(" "))}},contains:function(t){return this._names.indexOf(t)>=0}};function St(t,n){var e=Tt(t),r=-1,i=n.length;while(++r=0)n=t.slice(e+1),t=t.slice(0,e);return{type:t,name:n}}))}function ln(t){return function(){var n=this.__on;if(!n)return;for(var e=0,r=-1,i=n.length,o;e{r.stop();t(e+n)}),n,e);return r}var zn=(0,bn.A)("start","end","cancel","interrupt");var Mn=[];var En=0;var Tn=1;var Cn=2;var Sn=3;var Nn=4;var Pn=5;var Vn=6;function Bn(t,n,e,r,i,o){var u=t.__transition;if(!u)t.__transition={};else if(e in u)return;Gn(t,e,{name:n,index:r,group:i,on:zn,tween:Mn,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:En})}function In(t,n){var e=Un(t,n);if(e.state>En)throw new Error("too late; already scheduled");return e}function Dn(t,n){var e=Un(t,n);if(e.state>Sn)throw new Error("too late; already running");return e}function Un(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Gn(t,n,e){var r=t.__transition,i;r[n]=e;e.timer=(0,xn.O1)(o,0,e.time);function o(t){e.state=Tn;e.timer.restart(u,e.delay,e.time);if(e.delay<=t)u(t-e.delay)}function u(o){var l,c,f,h;if(e.state!==Tn)return s();for(l in r){h=r[l];if(h.name!==e.name)continue;if(h.state===Sn)return kn(u);if(h.state===Nn){h.state=Vn;h.timer.stop();h.on.call("interrupt",t,t.__data__,h.index,h.group);delete r[l]}else if(+lCn&&r.state=0)t=t.slice(0,n);return!t||t==="start"}))}function be(t,n,e){var r,i,o=Ae(n)?In:Dn;return function(){var u=o(this,t),a=u.on;if(a!==r)(i=(r=a).copy()).on(n,e);u.on=i}}function xe(t,n){var e=this._id;return arguments.length<2?Un(this.node(),e).on.on(t):this.each(be(e,t,n))}function ke(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;if(n)n.removeChild(this)}}function ze(){return this.on("end.remove",ke(this._id))}function Me(t){var n=this._name,e=this._id;if(typeof t!=="function")t=b(t);for(var r=this._groups,i=r.length,o=new Array(i),u=0;u{const n=t.identifier;t=pointer(t,r);t.point0=t.slice();t.identifier=n;return t}));interrupt(r);var B=c(r,arguments,true).beforestart();if(o==="overlay"){if(v)C=true;const e=[V[0],V[1]||V[0]];h.selection=v=[[y=t===vr?d:cr(e[0][0],e[1][0]),g=t===pr?m:cr(e[0][1],e[1][1])],[b=t===vr?A:lr(e[0][0],e[1][0]),z=t===pr?k:lr(e[0][1],e[1][1])]];if(V.length>1)L(n)}else{y=v[0][0];g=v[0][1];b=v[1][0];z=v[1][1]}_=y;w=g;x=b;M=z;var I=select(r).attr("pointer-events","none");var D=I.selectAll(".overlay").attr("cursor",yr[o]);if(n.touches){B.moved=G;B.ended=O}else{var U=select(n.view).on("mousemove.brush",G,true).on("mouseup.brush",O,true);if(i)U.on("keydown.brush",H,true).on("keyup.brush",Y,true);dragDisable(n.view)}l.call(r);B.start(n,u.name);function G(t){for(const n of t.changedTouches||[t]){for(const t of V)if(t.identifier===n.identifier)t.cur=pointer(n,r)}if(S&&!N&&!P&&V.length===1){const t=V[0];if(sr(t.cur[0]-t[0])>sr(t.cur[1]-t[1]))P=true;else N=true}for(const n of V)if(n.cur)n[0]=n.cur[0],n[1]=n.cur[1];C=true;noevent(t);L(t)}function L(t){const n=V[0],e=n.point0;var i;E=n[0]-e[0];T=n[1]-e[1];switch(u){case or:case ir:{if(s)E=lr(d-y,cr(A-b,E)),_=y+E,x=b+E;if(f)T=lr(m-g,cr(k-z,T)),w=g+T,M=z+T;break}case ur:{if(V[1]){if(s)_=lr(d,cr(A,V[0][0])),x=lr(d,cr(A,V[1][0])),s=1;if(f)w=lr(m,cr(k,V[0][1])),M=lr(m,cr(k,V[1][1])),f=1}else{if(s<0)E=lr(d-y,cr(A-y,E)),_=y+E,x=b;else if(s>0)E=lr(d-b,cr(A-b,E)),_=y,x=b+E;if(f<0)T=lr(m-g,cr(k-g,T)),w=g+T,M=z;else if(f>0)T=lr(m-z,cr(k-z,T)),w=g,M=z+T}break}case ar:{if(s)_=lr(d,cr(A,y-E*s)),x=lr(d,cr(A,b+E*s));if(f)w=lr(m,cr(k,g-T*f)),M=lr(m,cr(k,z+T*f));break}}if(x<_){s*=-1;i=y,y=b,b=i;i=_,_=x,x=i;if(o in _r)D.attr("cursor",yr[o=_r[o]])}if(M0)y=_-E;if(f<0)z=M-T;else if(f>0)g=w-T;u=or;D.attr("cursor",yr.selection);L(t)}break}default:return}noevent(t)}function Y(t){switch(t.keyCode){case 16:{if(S){N=P=S=false;L(t)}break}case 18:{if(u===ar){if(s<0)b=x;else if(s>0)y=_;if(f<0)z=M;else if(f>0)g=w;u=ur;L(t)}break}case 32:{if(u===or){if(t.altKey){if(s)b=x-E*s,y=_+E*s;if(f)z=M-T*f,g=w+T*f;u=ar}else{if(s<0)b=x;else if(s>0)y=_;if(f<0)z=M;else if(f>0)g=w;u=ur}D.attr("cursor",yr[o]);L(t)}break}default:return}noevent(t)}}function p(t){c(this,arguments).moved(t)}function v(t){c(this,arguments).ended(t)}function d(){var e=this.__brush||{selection:null};e.extent=hr(n.apply(this,arguments));e.dim=t;return e}s.extent=function(t){return arguments.length?(n=typeof t==="function"?t:constant(hr(t)),s):n};s.filter=function(t){return arguments.length?(e=typeof t==="function"?t:constant(!!t),s):e};s.touchable=function(t){return arguments.length?(r=typeof t==="function"?t:constant(!!t),s):r};s.handleSize=function(t){return arguments.length?(u=+t,s):u};s.keyModifiers=function(t){return arguments.length?(i=!!t,s):i};s.on=function(){var t=o.on.apply(o,arguments);return t===o?s:t};return s}var Pr=e(67360);var Vr=e(18312);var Br=e(25758);var Ir=e(16527);function Dr(){var t=(0,Ir.A)().unknown(undefined),n=t.domain,e=t.range,r=0,i=1,o,u,a=false,s=0,l=0,c=.5;delete t.unknown;function f(){var t=n().length,f=it?1:n>=t?0:NaN}function Wr(t){return t}var Zr=e(98247);function Jr(){var t=Wr,n=Fr,e=null,r=(0,jr.A)(0),i=(0,jr.A)(Zr.FA),o=(0,jr.A)(0);function u(u){var a,s=(u=(0,Kr.A)(u)).length,l,c,f=0,h=new Array(s),p=new Array(s),v=+r.apply(this,arguments),d=Math.min(Zr.FA,Math.max(-Zr.FA,i.apply(this,arguments)-v)),y,_=Math.min(Math.abs(d)/s,o.apply(this,arguments)),m=_*(d<0?-1:1),g;for(a=0;a0){f+=g}}if(n!=null)h.sort((function(t,e){return n(p[t],p[e])}));else if(e!=null)h.sort((function(t,n){return e(u[t],u[n])}));for(a=0,c=f?(d-s*m)/f:0;a0?g*c:0)+m,p[l]={data:u[l],index:a,value:g,startAngle:v,endAngle:y,padAngle:_}}return p}u.value=function(n){return arguments.length?(t=typeof n==="function"?n:(0,jr.A)(+n),u):t};u.sortValues=function(t){return arguments.length?(n=t,e=null,u):n};u.sort=function(t){return arguments.length?(e=t,n=null,u):e};u.startAngle=function(t){return arguments.length?(r=typeof t==="function"?t:(0,jr.A)(+t),u):r};u.endAngle=function(t){return arguments.length?(i=typeof t==="function"?t:(0,jr.A)(+t),u):i};u.padAngle=function(t){return arguments.length?(o=typeof t==="function"?t:(0,jr.A)(+t),u):o};return u}var Qr=e(82456);var $r=e(69683);var ti=e(24363);class ni{constructor(t,n){this._context=t;this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){if(this._line||this._line!==0&&this._point===1)this._context.closePath();this._line=1-this._line}point(t,n){t=+t,n=+n;switch(this._point){case 0:{this._point=1;if(this._line)this._context.lineTo(t,n);else this._context.moveTo(t,n);break}case 1:this._point=2;default:{if(this._x)this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n);else this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}class ei{constructor(t){this._context=t}lineStart(){this._point=0}lineEnd(){}point(t,n){t=+t,n=+n;if(this._point===0){this._point=1}else{const e=pointRadial(this._x0,this._y0);const r=pointRadial(this._x0,this._y0=(this._y0+n)/2);const i=pointRadial(t,this._y0);const o=pointRadial(t,n);this._context.moveTo(...e);this._context.bezierCurveTo(...r,...i,...o)}this._x0=t,this._y0=n}}function ri(t){return new ni(t,true)}function ii(t){return new ni(t,false)}function oi(t){return new ei(t)}var ui=e(54545);var ai=e(13893);var si=e(46457);var li=e(43793);var ci=e(25633);var fi=e(13309);var hi=e(76413);var pi=e(43272);var vi=e(71228);var di=e(67694);var yi=e(29944);var _i=e(79011);var mi=e(26530);var gi=e(61147);var wi=e(23383);var Ai=e(9017);var bi=e(20293);var xi=e(61779);var ki=e(77849);var zi=e(82692);function Mi(t,n,e){this.k=t;this.x=n;this.y=e}Mi.prototype={constructor:Mi,scale:function(t){return t===1?this:new Mi(this.k*t,this.x,this.y)},translate:function(t,n){return t===0&n===0?this:new Mi(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ei=new Mi(1,0,0);Ti.prototype=Mi.prototype;function Ti(t){while(!t.__zoom)if(!(t=t.parentNode))return Ei;return t.__zoom}function Ci(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Si(){var t=this;if(t instanceof SVGElement){t=t.ownerSVGElement||t;if(t.hasAttribute("viewBox")){t=t.viewBox.baseVal;return[[t.x,t.y],[t.x+t.width,t.y+t.height]]}return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}return[[0,0],[t.clientWidth,t.clientHeight]]}function Ni(){return this.__zoom||identity}function Pi(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Vi(){return navigator.maxTouchPoints||"ontouchstart"in this}function Bi(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],u=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),u>o?(o+u)/2:Math.min(0,o)||Math.max(0,u))}function Ii(){var t=Ci,n=Si,e=Bi,r=Pi,i=Vi,o=[0,Infinity],u=[[-Infinity,-Infinity],[Infinity,Infinity]],a=250,s=interpolateZoom,l=dispatch("start","zoom","end"),c,f,h,p=500,v=150,d=0,y=10;function _(t){t.property("__zoom",Ni).on("wheel.zoom",k,{passive:false}).on("mousedown.zoom",z).on("dblclick.zoom",M).filter(i).on("touchstart.zoom",E).on("touchmove.zoom",T).on("touchend.zoom touchcancel.zoom",C).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}_.transform=function(t,n,e,r){var i=t.selection?t.selection():t;i.property("__zoom",Ni);if(t!==i){A(t,n,e,r)}else{i.interrupt().each((function(){b(this,arguments).event(r).start().zoom(null,typeof n==="function"?n.apply(this,arguments):n).end()}))}};_.scaleBy=function(t,n,e,r){_.scaleTo(t,(function(){var t=this.__zoom.k,e=typeof n==="function"?n.apply(this,arguments):n;return t*e}),e,r)};_.scaleTo=function(t,r,i,o){_.transform(t,(function(){var t=n.apply(this,arguments),o=this.__zoom,a=i==null?w(t):typeof i==="function"?i.apply(this,arguments):i,s=o.invert(a),l=typeof r==="function"?r.apply(this,arguments):r;return e(g(m(o,l),a,s),t,u)}),i,o)};_.translateBy=function(t,r,i,o){_.transform(t,(function(){return e(this.__zoom.translate(typeof r==="function"?r.apply(this,arguments):r,typeof i==="function"?i.apply(this,arguments):i),n.apply(this,arguments),u)}),null,o)};_.translateTo=function(t,r,i,o,a){_.transform(t,(function(){var t=n.apply(this,arguments),a=this.__zoom,s=o==null?w(t):typeof o==="function"?o.apply(this,arguments):o;return e(identity.translate(s[0],s[1]).scale(a.k).translate(typeof r==="function"?-r.apply(this,arguments):-r,typeof i==="function"?-i.apply(this,arguments):-i),t,u)}),o,a)};function m(t,n){n=Math.max(o[0],Math.min(o[1],n));return n===t.k?t:new Transform(n,t.x,t.y)}function g(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new Transform(t.k,r,i)}function w(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function A(t,e,r,i){t.on("start.zoom",(function(){b(this,arguments).event(i).start()})).on("interrupt.zoom end.zoom",(function(){b(this,arguments).event(i).end()})).tween("zoom",(function(){var t=this,o=arguments,u=b(t,o).event(i),a=n.apply(t,o),l=r==null?w(a):typeof r==="function"?r.apply(t,o):r,c=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),f=t.__zoom,h=typeof e==="function"?e.apply(t,o):e,p=s(f.invert(l).concat(c/f.k),h.invert(l).concat(c/h.k));return function(t){if(t===1)t=h;else{var n=p(t),e=c/n[2];t=new Transform(e,l[0]-n[0]*e,l[1]-n[1]*e)}u.zoom(null,t)}}))}function b(t,n,e){return!e&&t.__zooming||new x(t,n)}function x(t,e){this.that=t;this.args=e;this.active=0;this.sourceEvent=null;this.extent=n.apply(t,e);this.taps=0}x.prototype={event:function(t){if(t)this.sourceEvent=t;return this},start:function(){if(++this.active===1){this.that.__zooming=this;this.emit("start")}return this},zoom:function(t,n){if(this.mouse&&t!=="mouse")this.mouse[1]=n.invert(this.mouse[0]);if(this.touch0&&t!=="touch")this.touch0[1]=n.invert(this.touch0[0]);if(this.touch1&&t!=="touch")this.touch1[1]=n.invert(this.touch1[0]);this.that.__zoom=n;this.emit("zoom");return this},end:function(){if(--this.active===0){delete this.that.__zooming;this.emit("end")}return this},emit:function(t){var n=select(this.that).datum();l.call(t,this.that,new ZoomEvent(t,{sourceEvent:this.sourceEvent,target:_,type:t,transform:this.that.__zoom,dispatch:l}),n)}};function k(n,...i){if(!t.apply(this,arguments))return;var a=b(this,i).event(n),s=this.__zoom,l=Math.max(o[0],Math.min(o[1],s.k*Math.pow(2,r.apply(this,arguments)))),c=pointer(n);if(a.wheel){if(a.mouse[0][0]!==c[0]||a.mouse[0][1]!==c[1]){a.mouse[1]=s.invert(a.mouse[0]=c)}clearTimeout(a.wheel)}else if(s.k===l)return;else{a.mouse=[c,s.invert(c)];interrupt(this);a.start()}noevent(n);a.wheel=setTimeout(f,v);a.zoom("mouse",e(g(m(s,l),a.mouse[0],a.mouse[1]),a.extent,u));function f(){a.wheel=null;a.end()}}function z(n,...r){if(h||!t.apply(this,arguments))return;var i=n.currentTarget,o=b(this,r,true).event(n),a=select(n.view).on("mousemove.zoom",f,true).on("mouseup.zoom",p,true),s=pointer(n,i),l=n.clientX,c=n.clientY;dragDisable(n.view);nopropagation(n);o.mouse=[s,this.__zoom.invert(s)];interrupt(this);o.start();function f(t){noevent(t);if(!o.moved){var n=t.clientX-l,r=t.clientY-c;o.moved=n*n+r*r>d}o.event(t).zoom("mouse",e(g(o.that.__zoom,o.mouse[0]=pointer(t,i),o.mouse[1]),o.extent,u))}function p(t){a.on("mousemove.zoom mouseup.zoom",null);dragEnable(t.view,o.moved);noevent(t);o.event(t).end()}}function M(r,...i){if(!t.apply(this,arguments))return;var o=this.__zoom,s=pointer(r.changedTouches?r.changedTouches[0]:r,this),l=o.invert(s),c=o.k*(r.shiftKey?.5:2),f=e(g(m(o,c),s,l),n.apply(this,i),u);noevent(r);if(a>0)select(this).transition().duration(a).call(A,f,s,r);else select(this).call(_.transform,f,s,r)}function E(n,...e){if(!t.apply(this,arguments))return;var r=n.touches,i=r.length,o=b(this,e,n.changedTouches.length===i).event(n),u,a,s,l;nopropagation(n);for(a=0;a{Object.defineProperty(e,"__esModule",{value:true});e.VERSION=void 0;e.VERSION="3.2.2"},29796:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var i=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.HandlerList=void 0;var o=r(82776);var a=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.register=function(t){return this.add(t,t.priority)};e.prototype.unregister=function(t){this.remove(t)};e.prototype.handlesDocument=function(t){var e,r;try{for(var n=i(this),o=n.next();!o.done;o=n.next()){var a=o.value;var s=a.item;if(s.handlesDocument(t)){return s}}}catch(l){e={error:l}}finally{try{if(o&&!o.done&&(r=n.return))r.call(n)}finally{if(e)throw e.error}}throw new Error("Can't find handler for document")};e.prototype.document=function(t,e){if(e===void 0){e=null}return this.handlesDocument(t).create(t,e)};return e}(o.PrioritizedList);e.HandlerList=a},56441:function(t,e,r){var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.ParserConfiguration=e.ConfigurationHandler=e.Configuration=void 0;var o=r(34981);var a=r(18437);var s=r(43899);var l=r(82776);var u=r(17782);var c=function(){function t(t,e,r,n,i,o,a,s,l,u,c,f,h){if(e===void 0){e={}}if(r===void 0){r={}}if(n===void 0){n={}}if(i===void 0){i={}}if(o===void 0){o={}}if(a===void 0){a={}}if(s===void 0){s=[]}if(l===void 0){l=[]}if(u===void 0){u=null}if(c===void 0){c=null}this.name=t;this.handler=e;this.fallback=r;this.items=n;this.tags=i;this.options=o;this.nodes=a;this.preprocessors=s;this.postprocessors=l;this.initMethod=u;this.configMethod=c;this.priority=f;this.parser=h;this.handler=Object.assign({character:[],delimiter:[],macro:[],environment:[]},e)}t.makeProcessor=function(t,e){return Array.isArray(t)?t:[t,e]};t._create=function(e,r){var n=this;if(r===void 0){r={}}var i=r.priority||l.PrioritizedList.DEFAULTPRIORITY;var o=r.init?this.makeProcessor(r.init,i):null;var a=r.config?this.makeProcessor(r.config,i):null;var s=(r.preprocessors||[]).map((function(t){return n.makeProcessor(t,i)}));var u=(r.postprocessors||[]).map((function(t){return n.makeProcessor(t,i)}));var c=r.parser||"tex";return new t(e,r.handler||{},r.fallback||{},r.items||{},r.tags||{},r.options||{},r.nodes||{},s,u,o,a,i,c)};t.create=function(e,r){if(r===void 0){r={}}var n=t._create(e,r);f.set(e,n);return n};t.local=function(e){if(e===void 0){e={}}return t._create("",e)};Object.defineProperty(t.prototype,"init",{get:function(){return this.initMethod?this.initMethod[0]:null},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"config",{get:function(){return this.configMethod?this.configMethod[0]:null},enumerable:false,configurable:true});return t}();e.Configuration=c;var f;(function(t){var e=new Map;t.set=function(t,r){e.set(t,r)};t.get=function(t){return e.get(t)};t.keys=function(){return e.keys()}})(f=e.ConfigurationHandler||(e.ConfigurationHandler={}));var h=function(){function t(t,e){var r,i,o,u;if(e===void 0){e=["tex"]}this.initMethod=new s.FunctionList;this.configMethod=new s.FunctionList;this.configurations=new l.PrioritizedList;this.parsers=[];this.handlers=new a.SubHandlers;this.items={};this.tags={};this.options={};this.nodes={};this.parsers=e;try{for(var c=n(t.slice().reverse()),f=c.next();!f.done;f=c.next()){var h=f.value;this.addPackage(h)}}catch(m){r={error:m}}finally{try{if(f&&!f.done&&(i=c.return))i.call(c)}finally{if(r)throw r.error}}try{for(var p=n(this.configurations),d=p.next();!d.done;d=p.next()){var v=d.value,y=v.item,g=v.priority;this.append(y,g)}}catch(b){o={error:b}}finally{try{if(d&&!d.done&&(u=p.return))u.call(p)}finally{if(o)throw o.error}}}t.prototype.init=function(){this.initMethod.execute(this)};t.prototype.config=function(t){var e,r;this.configMethod.execute(this,t);try{for(var i=n(this.configurations),o=i.next();!o.done;o=i.next()){var a=o.value;this.addFilters(t,a.item)}}catch(s){e={error:s}}finally{try{if(o&&!o.done&&(r=i.return))r.call(i)}finally{if(e)throw e.error}}};t.prototype.addPackage=function(t){var e=typeof t==="string"?t:t[0];var r=this.getPackage(e);r&&this.configurations.add(r,typeof t==="string"?r.priority:t[1])};t.prototype.add=function(t,e,r){var i,a;if(r===void 0){r={}}var s=this.getPackage(t);this.append(s);this.configurations.add(s,s.priority);this.init();var l=e.parseOptions;l.nodeFactory.setCreators(s.nodes);try{for(var c=n(Object.keys(s.items)),f=c.next();!f.done;f=c.next()){var h=f.value;l.itemFactory.setNodeClass(h,s.items[h])}}catch(p){i={error:p}}finally{try{if(f&&!f.done&&(a=c.return))a.call(c)}finally{if(i)throw i.error}}u.TagsFactory.addTags(s.tags);(0,o.defaultOptions)(l.options,s.options);(0,o.userOptions)(l.options,r);this.addFilters(e,s);if(s.config){s.config(this,e)}};t.prototype.getPackage=function(t){var e=f.get(t);if(e&&this.parsers.indexOf(e.parser)<0){throw Error("Package ".concat(t," doesn't target the proper parser"))}return e};t.prototype.append=function(t,e){e=e||t.priority;if(t.initMethod){this.initMethod.add(t.initMethod[0],t.initMethod[1])}if(t.configMethod){this.configMethod.add(t.configMethod[0],t.configMethod[1])}this.handlers.add(t.handler,t.fallback,e);Object.assign(this.items,t.items);Object.assign(this.tags,t.tags);(0,o.defaultOptions)(this.options,t.options);Object.assign(this.nodes,t.nodes)};t.prototype.addFilters=function(t,e){var r,o,a,s;try{for(var l=n(e.preprocessors),u=l.next();!u.done;u=l.next()){var c=i(u.value,2),f=c[0],h=c[1];t.preFilters.add(f,h)}}catch(g){r={error:g}}finally{try{if(u&&!u.done&&(o=l.return))o.call(l)}finally{if(r)throw r.error}}try{for(var p=n(e.postprocessors),d=p.next();!d.done;d=p.next()){var v=i(d.value,2),y=v[0],h=v[1];t.postFilters.add(y,h)}}catch(m){a={error:m}}finally{try{if(d&&!d.done&&(s=p.return))s.call(p)}finally{if(a)throw a.error}}};return t}();e.ParserConfiguration=h},18437:function(t,e,r){var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.SubHandlers=e.SubHandler=e.MapHandler=void 0;var o=r(82776);var a=r(43899);var s;(function(t){var e=new Map;t.register=function(t){e.set(t.name,t)};t.getMap=function(t){return e.get(t)}})(s=e.MapHandler||(e.MapHandler={}));var l=function(){function t(){this._configuration=new o.PrioritizedList;this._fallback=new a.FunctionList}t.prototype.add=function(t,e,r){var i,a;if(r===void 0){r=o.PrioritizedList.DEFAULTPRIORITY}try{for(var l=n(t.slice().reverse()),u=l.next();!u.done;u=l.next()){var c=u.value;var f=s.getMap(c);if(!f){this.warn("Configuration "+c+" not found! Omitted.");return}this._configuration.add(f,r)}}catch(h){i={error:h}}finally{try{if(u&&!u.done&&(a=l.return))a.call(l)}finally{if(i)throw i.error}}if(e){this._fallback.add(e,r)}};t.prototype.parse=function(t){var e,r;try{for(var o=n(this._configuration),a=o.next();!a.done;a=o.next()){var s=a.value.item;var l=s.parse(t);if(l){return l}}}catch(h){e={error:h}}finally{try{if(a&&!a.done&&(r=o.return))r.call(o)}finally{if(e)throw e.error}}var u=i(t,2),c=u[0],f=u[1];Array.from(this._fallback)[0].item(c,f)};t.prototype.lookup=function(t){var e=this.applicable(t);return e?e.lookup(t):null};t.prototype.contains=function(t){return this.applicable(t)?true:false};t.prototype.toString=function(){var t,e;var r=[];try{for(var i=n(this._configuration),o=i.next();!o.done;o=i.next()){var a=o.value.item;r.push(a.name)}}catch(s){t={error:s}}finally{try{if(o&&!o.done&&(e=i.return))e.call(i)}finally{if(t)throw t.error}}return r.join(", ")};t.prototype.applicable=function(t){var e,r;try{for(var i=n(this._configuration),o=i.next();!o.done;o=i.next()){var a=o.value.item;if(a.contains(t)){return a}}}catch(s){e={error:s}}finally{try{if(o&&!o.done&&(r=i.return))r.call(i)}finally{if(e)throw e.error}}return null};t.prototype.retrieve=function(t){var e,r;try{for(var i=n(this._configuration),o=i.next();!o.done;o=i.next()){var a=o.value.item;if(a.name===t){return a}}}catch(s){e={error:s}}finally{try{if(o&&!o.done&&(r=i.return))r.call(i)}finally{if(e)throw e.error}}return null};t.prototype.warn=function(t){console.log("TexParser Warning: "+t)};return t}();e.SubHandler=l;var u=function(){function t(){this.map=new Map}t.prototype.add=function(t,e,r){var i,a;if(r===void 0){r=o.PrioritizedList.DEFAULTPRIORITY}try{for(var s=n(Object.keys(t)),u=s.next();!u.done;u=s.next()){var c=u.value;var f=c;var h=this.get(f);if(!h){h=new l;this.set(f,h)}h.add(t[f],e[f],r)}}catch(p){i={error:p}}finally{try{if(u&&!u.done&&(a=s.return))a.call(s)}finally{if(i)throw i.error}}};t.prototype.set=function(t,e){this.map.set(t,e)};t.prototype.get=function(t){return this.map.get(t)};t.prototype.retrieve=function(t){var e,r;try{for(var i=n(this.map.values()),o=i.next();!o.done;o=i.next()){var a=o.value;var s=a.retrieve(t);if(s){return s}}}catch(l){e={error:l}}finally{try{if(o&&!o.done&&(r=i.return))r.call(i)}finally{if(e)throw e.error}}return null};t.prototype.keys=function(){return this.map.keys()};return t}();e.SubHandlers=u},72691:function(t,e,r){var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,o;n0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var i=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:true});var a=r(80747);var s=o(r(72691));var l=o(r(75845));var u=o(r(98770));var c=r(38316);var f;(function(t){var e=7.2;var r=72;var o={em:function(t){return t},ex:function(t){return t*.43},pt:function(t){return t/10},pc:function(t){return t*1.2},px:function(t){return t*e/r},in:function(t){return t*e},cm:function(t){return t*e/2.54},mm:function(t){return t*e/25.4},mu:function(t){return t/18}};var f="([-+]?([.,]\\d+|\\d+([.,]\\d*)?))";var h="(pt|em|ex|mu|px|mm|cm|in|pc)";var p=RegExp("^\\s*"+f+"\\s*"+h+"\\s*$");var d=RegExp("^\\s*"+f+"\\s*"+h+" ?");function v(t,e){if(e===void 0){e=false}var r=t.match(e?d:p);return r?y([r[1].replace(/,/,"."),r[4],r[0].length]):[null,null,0]}t.matchDimen=v;function y(t){var e=n(t,3),r=e[0],i=e[1],a=e[2];if(i!=="mu"){return[r,i,a]}var s=m(o[i](parseFloat(r||"1")));return[s.slice(0,-2),"em",a]}function g(t){var e=n(v(t),2),r=e[0],i=e[1];var a=parseFloat(r||"1");var s=o[i];return s?s(a):0}t.dimen2em=g;function m(t){if(Math.abs(t)<6e-4){return"0em"}return t.toFixed(3).replace(/\.?0+$/,"")+"em"}t.Em=m;function b(){var t=[];for(var e=0;e1){a=[t.create("node","mrow",a)]}return a}t.internalMath=S;function P(t,e,r){e=e.replace(/^\s+/,c.entities.nbsp).replace(/\s+$/,c.entities.nbsp);var n=t.create("text",e);return t.create("node","mtext",[],r,n)}t.internalText=P;function k(e,r,n,i,o){t.checkMovableLimits(r);if(s.default.isType(r,"munderover")&&s.default.isEmbellished(r)){s.default.setProperties(s.default.getCoreMO(r),{lspace:0,rspace:0});var l=e.create("node","mo",[],{rspace:0});r=e.create("node","mrow",[l,r])}var u=e.create("node","munderover",[r]);s.default.setChild(u,i==="over"?u.over:u.under,n);var c=u;if(o){c=e.create("node","TeXAtom",[u],{texClass:a.TEXCLASS.OP,movesupsub:true})}s.default.setProperty(c,"subsupOK",true);return c}t.underOver=k;function O(t){var e=s.default.isType(t,"mo")?s.default.getForm(t):null;if(s.default.getProperty(t,"movablelimits")||e&&e[3]&&e[3].movablelimits){s.default.setProperties(t,{movablelimits:false})}}t.checkMovableLimits=O;function M(t){if(typeof t!=="string"){return t}var e=t.trim();if(e.match(/\\$/)&&t.match(/ $/)){e+=" "}return e}t.trimSpaces=M;function E(e,r){r=t.trimSpaces(r||"");if(r==="t"){e.arraydef.align="baseline 1"}else if(r==="b"){e.arraydef.align="baseline -1"}else if(r==="c"){e.arraydef.align="axis"}else if(r){e.arraydef.align=r}return e}t.setArrayAlign=E;function C(t,e,r){var n="";var i="";var o=0;while(oe.length){throw new u.default("IllegalMacroParam","Illegal macro parameter reference")}i=A(t,A(t,i,n),e[parseInt(a,10)-1]);n=""}}else{n+=a}}return A(t,i,n)}t.substituteArgs=C;function A(t,e,r){if(r.match(/^[a-z]/i)&&e.match(/(^|[^\\])(\\\\)*\\[a-z]+$/i)){e+=" "}if(e.length+r.length>t.configuration.options["maxBuffer"]){throw new u.default("MaxBufferSize","MathJax internal buffer size exceeded; is there a"+" recursive macro call?")}return e+r}t.addArgs=A;function L(t,e){if(e===void 0){e=true}if(++t.macroCount<=t.configuration.options["maxMacros"]){return}if(e){throw new u.default("MaxMacroSub1","MathJax maximum macro substitution count exceeded; "+"is here a recursive macro call?")}else{throw new u.default("MaxMacroSub2","MathJax maximum substitution count exceeded; "+"is there a recursive latex environment?")}}t.checkMaxMacros=L;function j(t){if(t.stack.global.eqnenv){throw new u.default("ErroneousNestingEq","Erroneous nesting of equation structures")}t.stack.global.eqnenv=true}t.checkEqnEnv=j;function F(t,e){var r=t.copy();var n=e.configuration;r.walkTree((function(t){var e,r;n.addNode(t.kind,t);var o=(t.getProperty("in-lists")||"").split(/,/);try{for(var a=i(o),s=a.next();!s.done;s=a.next()){var l=s.value;l&&n.addNode(l,t)}}catch(u){e={error:u}}finally{try{if(s&&!s.done&&(r=a.return))r.call(a)}finally{if(e)throw e.error}}}));return r}t.copyNode=F;function I(t,e,r){return r}t.MmlFilterAttribute=I;function q(t){var e=t.stack.env["font"];return e?{mathvariant:e}:{}}t.getFontDef=q;function D(t,e,r){var n,o;if(e===void 0){e=null}if(r===void 0){r=false}var a=N(t);if(e){try{for(var s=i(Object.keys(a)),l=s.next();!l.done;l=s.next()){var c=l.value;if(!e.hasOwnProperty(c)){if(r){throw new u.default("InvalidOption","Invalid option: %1",c)}delete a[c]}}}catch(f){n={error:f}}finally{try{if(l&&!l.done&&(o=s.return))o.call(s)}finally{if(n)throw n.error}}}return a}t.keyvalOptions=D;function N(t){var e,r;var i={};var o=t;var a,s,l;while(o){e=n(G(o,["=",","]),3),s=e[0],a=e[1],o=e[2];if(a==="="){r=n(G(o,[","]),3),l=r[0],a=r[1],o=r[2];l=l==="false"||l==="true"?JSON.parse(l):l;i[s]=l}else if(s){i[s]=true}}return i}function R(t,e){while(e>0){t=t.trim().slice(1,-1);e--}return t.trim()}function G(t,e){var r=t.length;var n=0;var i="";var o=0;var a=0;var s=true;var l=false;while(on){a=n}}n++;break;case"}":if(n){n--}if(s||l){a--;l=true}s=false;break;default:if(!n&&e.indexOf(c)!==-1){return[l?"true":R(i,a),c,t.slice(o)]}s=false;l=false}i+=c}if(n){throw new u.default("ExtraOpenMissingClose","Extra open brace or missing close brace")}return[l?"true":R(i,a),"",t.slice(o)]}})(f||(f={}));e["default"]=f},32859:function(t,e,r){var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,o;n{Object.defineProperty(e,"__esModule",{value:true});e.Macro=e.Symbol=void 0;var r=function(){function t(t,e,r){this._symbol=t;this._char=e;this._attributes=r}Object.defineProperty(t.prototype,"symbol",{get:function(){return this._symbol},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"char",{get:function(){return this._char},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"attributes",{get:function(){return this._attributes},enumerable:false,configurable:true});return t}();e.Symbol=r;var n=function(){function t(t,e,r){if(r===void 0){r=[]}this._symbol=t;this._func=e;this._args=r}Object.defineProperty(t.prototype,"symbol",{get:function(){return this._symbol},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"func",{get:function(){return this._func},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"args",{get:function(){return this._args},enumerable:false,configurable:true});return t}();e.Macro=n},80209:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var o=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var a=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,o;n=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:true});e.TagsFactory=e.AllTags=e.NoTags=e.AbstractTags=e.TagInfo=e.Label=void 0;var a=o(r(75845));var s=function(){function t(t,e){if(t===void 0){t="???"}if(e===void 0){e=""}this.tag=t;this.id=e}return t}();e.Label=s;var l=function(){function t(t,e,r,n,i,o,a,s){if(t===void 0){t=""}if(e===void 0){e=false}if(r===void 0){r=false}if(n===void 0){n=null}if(i===void 0){i=""}if(o===void 0){o=""}if(a===void 0){a=false}if(s===void 0){s=""}this.env=t;this.taggable=e;this.defaultTags=r;this.tag=n;this.tagId=i;this.tagFormat=o;this.noTag=a;this.labelId=s}return t}();e.TagInfo=l;var u=function(){function t(){this.counter=0;this.allCounter=0;this.configuration=null;this.ids={};this.allIds={};this.labels={};this.allLabels={};this.redo=false;this.refUpdate=false;this.currentTag=new l;this.history=[];this.stack=[];this.enTag=function(t,e){var r=this.configuration.nodeFactory;var n=r.create("node","mtd",[t]);var i=r.create("node","mlabeledtr",[e,n]);var o=r.create("node","mtable",[i],{side:this.configuration.options["tagSide"],minlabelspacing:this.configuration.options["tagIndent"],displaystyle:true});return o}}t.prototype.start=function(t,e,r){if(this.currentTag){this.stack.push(this.currentTag)}this.currentTag=new l(t,e,r)};Object.defineProperty(t.prototype,"env",{get:function(){return this.currentTag.env},enumerable:false,configurable:true});t.prototype.end=function(){this.history.push(this.currentTag);this.currentTag=this.stack.pop()};t.prototype.tag=function(t,e){this.currentTag.tag=t;this.currentTag.tagFormat=e?t:this.formatTag(t);this.currentTag.noTag=false};t.prototype.notag=function(){this.tag("",true);this.currentTag.noTag=true};Object.defineProperty(t.prototype,"noTag",{get:function(){return this.currentTag.noTag},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"label",{get:function(){return this.currentTag.labelId},set:function(t){this.currentTag.labelId=t},enumerable:false,configurable:true});t.prototype.formatUrl=function(t,e){return e+"#"+encodeURIComponent(t)};t.prototype.formatTag=function(t){return"("+t+")"};t.prototype.formatId=function(t){return"mjx-eqn:"+t.replace(/\s/g,"_")};t.prototype.formatNumber=function(t){return t.toString()};t.prototype.autoTag=function(){if(this.currentTag.tag==null){this.counter++;this.tag(this.formatNumber(this.counter),false)}};t.prototype.clearTag=function(){this.label="";this.tag(null,true);this.currentTag.tagId=""};t.prototype.getTag=function(t){if(t===void 0){t=false}if(t){this.autoTag();return this.makeTag()}var e=this.currentTag;if(e.taggable&&!e.noTag){if(e.defaultTags){this.autoTag()}if(e.tag){return this.makeTag()}}return null};t.prototype.resetTag=function(){this.history=[];this.redo=false;this.refUpdate=false;this.clearTag()};t.prototype.reset=function(t){if(t===void 0){t=0}this.resetTag();this.counter=this.allCounter=t;this.allLabels={};this.allIds={}};t.prototype.startEquation=function(t){this.history=[];this.stack=[];this.clearTag();this.currentTag=new l("",undefined,undefined);this.labels={};this.ids={};this.counter=this.allCounter;this.redo=false;var e=t.inputData.recompile;if(e){this.refUpdate=true;this.counter=e.counter}};t.prototype.finishEquation=function(t){if(this.redo){t.inputData.recompile={state:t.state(),counter:this.allCounter}}if(!this.refUpdate){this.allCounter=this.counter}Object.assign(this.allIds,this.ids);Object.assign(this.allLabels,this.labels)};t.prototype.finalize=function(t,e){if(!e.display||this.currentTag.env||this.currentTag.tag==null){return t}var r=this.makeTag();var n=this.enTag(t,r);return n};t.prototype.makeId=function(){this.currentTag.tagId=this.formatId(this.configuration.options["useLabelIds"]?this.label||this.currentTag.tag:this.currentTag.tag)};t.prototype.makeTag=function(){this.makeId();if(this.label){this.labels[this.label]=new s(this.currentTag.tag,this.currentTag.tagId)}var t=new a.default("\\text{"+this.currentTag.tagFormat+"}",{},this.configuration).mml();return this.configuration.nodeFactory.create("node","mtd",[t],{id:this.currentTag.tagId})};return t}();e.AbstractTags=u;var c=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.autoTag=function(){};e.prototype.getTag=function(){return!this.currentTag.tag?null:t.prototype.getTag.call(this)};return e}(u);e.NoTags=c;var f=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.finalize=function(t,e){if(!e.display||this.history.find((function(t){return t.taggable}))){return t}var r=this.getTag(true);return this.enTag(t,r)};return e}(u);e.AllTags=f;var h;(function(t){var e=new Map([["none",c],["all",f]]);var r="none";t.OPTIONS={tags:r,tagSide:"right",tagIndent:"0.8em",useLabelIds:true,ignoreDuplicateLabels:false};t.add=function(t,r){e.set(t,r)};t.addTags=function(e){var r,n;try{for(var o=i(Object.keys(e)),a=o.next();!a.done;a=o.next()){var s=a.value;t.add(s,e[s])}}catch(l){r={error:l}}finally{try{if(a&&!a.done&&(n=o.return))n.call(o)}finally{if(r)throw r.error}}};t.create=function(t){var n=e.get(t)||e.get(r);if(!n){throw Error("Unknown tags class")}return new n};t.setDefault=function(t){r=t};t.getDefault=function(){return t.create(r)}})(h=e.TagsFactory||(e.TagsFactory={}))},98770:(t,e)=>{Object.defineProperty(e,"__esModule",{value:true});var r=function(){function t(e,r){var n=[];for(var i=2;i="0"&&a<="9"){n[i]=r[parseInt(n[i],10)-1];if(typeof n[i]==="number"){n[i]=n[i].toString()}}else if(a==="{"){a=n[i].substr(1);if(a>="0"&&a<="9"){n[i]=r[parseInt(n[i].substr(1,n[i].length-2),10)-1];if(typeof n[i]==="number"){n[i]=n[i].toString()}}else{var s=n[i].match(/^\{([a-z]+):%(\d+)\|(.*)\}$/);if(s){n[i]="%"+n[i]}}}if(n[i]==null){n[i]="???"}}return n.join("")};t.pattern=/%(\d+|\{\d+\}|\{[a-z]+:\%\d+(?:\|(?:%\{\d+\}|%.|[^\}])*)+\}|.)/g;return t}();e["default"]=r},75845:function(t,e,r){var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,o;n{Object.defineProperty(e,"__esModule",{value:true});e.mathjax=void 0;var n=r(71471);var i=r(29796);var o=r(9841);e.mathjax={version:n.VERSION,handlers:new i.HandlerList,document:function(t,r){return e.mathjax.handlers.document(t,r)},handleRetriesFor:o.handleRetriesFor,retryAfter:o.retryAfter,asyncLoad:null}},92787:(t,e,r)=>{Object.defineProperty(e,"__esModule",{value:true});e.asyncLoad=void 0;var n=r(81039);function i(t){if(!n.mathjax.asyncLoad){return Promise.reject("Can't load '".concat(t,"': No asyncLoad method specified"))}return new Promise((function(e,r){var i=n.mathjax.asyncLoad(t);if(i instanceof Promise){i.then((function(t){return e(t)})).catch((function(t){return r(t)}))}else{e(i)}}))}e.asyncLoad=i},38316:(t,e,r)=>{Object.defineProperty(e,"__esModule",{value:true});e.numeric=e.translate=e.remove=e.add=e.entities=e.options=void 0;var n=r(9841);var i=r(92787);e.options={loadMissingEntities:true};e.entities={ApplyFunction:"⁡",Backslash:"∖",Because:"∵",Breve:"˘",Cap:"⋒",CenterDot:"·",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",Congruent:"≡",ContourIntegral:"∮",Coproduct:"∐",Cross:"⨯",Cup:"⋓",CupCap:"≍",Dagger:"‡",Del:"∇",Delta:"Δ",Diamond:"⋄",DifferentialD:"ⅆ",DotEqual:"≐",DoubleDot:"¨",DoubleRightTee:"⊨",DoubleVerticalBar:"∥",DownArrow:"↓",DownLeftVector:"↽",DownRightVector:"⇁",DownTee:"⊤",Downarrow:"⇓",Element:"∈",EqualTilde:"≂",Equilibrium:"⇌",Exists:"∃",ExponentialE:"ⅇ",FilledVerySmallSquare:"▪",ForAll:"∀",Gamma:"Γ",Gg:"⋙",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Hacek:"ˇ",Hat:"^",HumpDownHump:"≎",HumpEqual:"≏",Im:"ℑ",ImaginaryI:"ⅈ",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Lambda:"Λ",Larr:"↞",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDownVector:"⇃",LeftFloor:"⌊",LeftRightArrow:"↔",LeftTee:"⊣",LeftTriangle:"⊲",LeftTriangleEqual:"⊴",LeftUpVector:"↿",LeftVector:"↼",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessSlantEqual:"⩽",LessTilde:"≲",Ll:"⋘",Lleftarrow:"⇚",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lsh:"↰",MinusPlus:"∓",NestedGreaterGreater:"≫",NestedLessLess:"≪",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotLeftTriangle:"⋪",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotPrecedes:"⊀",NotPrecedesSlantEqual:"⋠",NotRightTriangle:"⋫",NotRightTriangleEqual:"⋭",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsSlantEqual:"⋡",NotSupersetEqual:"⊉",NotTilde:"≁",NotVerticalBar:"∤",Omega:"Ω",OverBar:"‾",OverBrace:"⏞",PartialD:"∂",Phi:"Φ",Pi:"Π",PlusMinus:"±",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Product:"∏",Proportional:"∝",Psi:"Ψ",Rarr:"↠",Re:"ℜ",ReverseEquilibrium:"⇋",RightAngleBracket:"⟩",RightArrow:"→",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDownVector:"⇂",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTriangle:"⊳",RightTriangleEqual:"⊵",RightUpVector:"↾",RightVector:"⇀",Rightarrow:"⇒",Rrightarrow:"⇛",Rsh:"↱",Sigma:"Σ",SmallCircle:"∘",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Star:"⋆",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",Therefore:"∴",Theta:"Θ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",UnderBar:"_",UnderBrace:"⏟",Union:"⋃",UnionPlus:"⊎",UpArrow:"↑",UpDownArrow:"↕",UpTee:"⊥",Uparrow:"⇑",Updownarrow:"⇕",Upsilon:"Υ",Vdash:"⊩",Vee:"⋁",VerticalBar:"∣",VerticalTilde:"≀",Vvdash:"⊪",Wedge:"⋀",Xi:"Ξ",amp:"&",acute:"´",aleph:"ℵ",alpha:"α",amalg:"⨿",and:"∧",ang:"∠",angmsd:"∡",angsph:"∢",ape:"≊",backprime:"‵",backsim:"∽",backsimeq:"⋍",beta:"β",beth:"ℶ",between:"≬",bigcirc:"◯",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",blacklozenge:"⧫",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",bowtie:"⋈",boxdl:"┐",boxdr:"┌",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxur:"└",bsol:"\\",bull:"•",cap:"∩",check:"✓",chi:"χ",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",clubs:"♣",colon:":",comp:"∁",ctdot:"⋯",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cup:"∪",curarr:"↷",curlyvee:"⋎",curlywedge:"⋏",dagger:"†",daleth:"ℸ",ddarr:"⇊",deg:"°",delta:"δ",digamma:"ϝ",div:"÷",divideontimes:"⋇",dot:"˙",doteqdot:"≑",dotplus:"∔",dotsquare:"⊡",dtdot:"⋱",ecir:"≖",efDot:"≒",egs:"⪖",ell:"ℓ",els:"⪕",empty:"∅",epsi:"ε",epsiv:"ϵ",erDot:"≓",eta:"η",eth:"ð",flat:"♭",fork:"⋔",frown:"⌢",gEl:"⪌",gamma:"γ",gap:"⪆",gimel:"ℷ",gnE:"≩",gnap:"⪊",gne:"⪈",gnsim:"⋧",gt:">",gtdot:"⋗",harrw:"↭",hbar:"ℏ",hellip:"…",hookleftarrow:"↩",hookrightarrow:"↪",imath:"ı",infin:"∞",intcal:"⊺",iota:"ι",jmath:"ȷ",kappa:"κ",kappav:"ϰ",lEg:"⪋",lambda:"λ",lap:"⪅",larrlp:"↫",larrtl:"↢",lbrace:"{",lbrack:"[",le:"≤",leftleftarrows:"⇇",leftthreetimes:"⋋",lessdot:"⋖",lmoust:"⎰",lnE:"≨",lnap:"⪉",lne:"⪇",lnsim:"⋦",longmapsto:"⟼",looparrowright:"↬",lowast:"∗",loz:"◊",lt:"<",ltimes:"⋉",ltri:"◃",macr:"¯",malt:"✠",mho:"℧",mu:"μ",multimap:"⊸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",natur:"♮",nearr:"↗",nharr:"↮",nlarr:"↚",not:"¬",nrarr:"↛",nu:"ν",nvDash:"⊭",nvdash:"⊬",nwarr:"↖",omega:"ω",omicron:"ο",or:"∨",osol:"⊘",period:".",phi:"φ",phiv:"ϕ",pi:"π",piv:"ϖ",prap:"⪷",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",prime:"′",psi:"ψ",quot:'"',rarrtl:"↣",rbrace:"}",rbrack:"]",rho:"ρ",rhov:"ϱ",rightrightarrows:"⇉",rightthreetimes:"⋌",ring:"˚",rmoust:"⎱",rtimes:"⋊",rtri:"▹",scap:"⪸",scnE:"⪶",scnap:"⪺",scnsim:"⋩",sdot:"⋅",searr:"↘",sect:"§",sharp:"♯",sigma:"σ",sigmav:"ς",simne:"≆",smile:"⌣",spades:"♠",sub:"⊂",subE:"⫅",subnE:"⫋",subne:"⊊",supE:"⫆",supnE:"⫌",supne:"⊋",swarr:"↙",tau:"τ",theta:"θ",thetav:"ϑ",tilde:"˜",times:"×",triangle:"▵",triangleq:"≜",upsi:"υ",upuparrows:"⇈",veebar:"⊻",vellip:"⋮",weierp:"℘",xi:"ξ",yen:"¥",zeta:"ζ",zigrarr:"⇝",nbsp:" ",rsquo:"’",lsquo:"‘"};var o={};function a(t,r){Object.assign(e.entities,t);o[r]=true}e.add=a;function s(t){delete e.entities[t]}e.remove=s;function l(t){return t.replace(/&([a-z][a-z0-9]*|#(?:[0-9]+|x[0-9a-f]+));/gi,u)}e.translate=l;function u(t,r){if(r.charAt(0)==="#"){return c(r.slice(1))}if(e.entities[r]){return e.entities[r]}if(e.options["loadMissingEntities"]){var a=r.match(/^[a-zA-Z](fr|scr|opf)$/)?RegExp.$1:r.charAt(0).toLowerCase();if(!o[a]){o[a]=true;(0,n.retryAfter)((0,i.asyncLoad)("./util/entities/"+a+".js"))}}return t}function c(t){var e=t.charAt(0)==="x"?parseInt(t.slice(1),16):parseInt(t);return String.fromCodePoint(e)}e.numeric=c},43899:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var i=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,o=[],a;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)o.push(i.value)}catch(s){a={error:s}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(a)throw a.error}}return o};var a=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,o;n{Object.defineProperty(e,"__esModule",{value:true});e.PrioritizedList=void 0;var r=function(){function t(){this.items=[];this.items=[]}t.prototype[Symbol.iterator]=function(){var t=0;var e=this.items;return{next:function(){return{value:e[t++],done:t>e.length}}}};t.prototype.add=function(e,r){if(r===void 0){r=t.DEFAULTPRIORITY}var n=this.items.length;do{n--}while(n>=0&&r=0&&this.items[e].item!==t);if(e>=0){this.items.splice(e,1)}};t.DEFAULTPRIORITY=5;return t}();e.PrioritizedList=r},9841:(t,e)=>{Object.defineProperty(e,"__esModule",{value:true});e.retryAfter=e.handleRetriesFor=void 0;function r(t){return new Promise((function e(r,n){try{r(t())}catch(i){if(i.retry&&i.retry instanceof Promise){i.retry.then((function(){return e(r,n)})).catch((function(t){return n(t)}))}else if(i.restart&&i.restart.isCallback){MathJax.Callback.After((function(){return e(r,n)}),i.restart)}else{n(i)}}}))}e.handleRetriesFor=r;function n(t){var e=new Error("MathJax retry");e.retry=t;throw e}e.retryAfter=n}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2641.e77441e7a3e0d12834c5.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2641.e77441e7a3e0d12834c5.js deleted file mode 100644 index 3a98f233bb2e74da58baed1f1435265ee4fc157d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2641.e77441e7a3e0d12834c5.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2641],{8394:(e,t,r)=>{e=r.nmd(e);var n=200;var s="__lodash_hash_undefined__";var i=800,o=16;var a=9007199254740991;var c="[object Arguments]",u="[object Array]",f="[object AsyncFunction]",l="[object Boolean]",d="[object Date]",h="[object Error]",p="[object Function]",g="[object GeneratorFunction]",m="[object Map]",y="[object Number]",b="[object Null]",v="[object Object]",_="[object Proxy]",w="[object RegExp]",T="[object Set]",E="[object String]",S="[object Undefined]",k="[object WeakMap]";var C="[object ArrayBuffer]",R="[object DataView]",M="[object Float32Array]",j="[object Float64Array]",O="[object Int8Array]",P="[object Int16Array]",N="[object Int32Array]",x="[object Uint8Array]",L="[object Uint8ClampedArray]",q="[object Uint16Array]",A="[object Uint32Array]";var $=/[\\^$.*+?()[\]{}|]/g;var D=/^\[object .+?Constructor\]$/;var z=/^(?:0|[1-9]\d*)$/;var I={};I[M]=I[j]=I[O]=I[P]=I[N]=I[x]=I[L]=I[q]=I[A]=true;I[c]=I[u]=I[C]=I[l]=I[R]=I[d]=I[h]=I[p]=I[m]=I[y]=I[v]=I[w]=I[T]=I[E]=I[k]=false;var B=typeof r.g=="object"&&r.g&&r.g.Object===Object&&r.g;var W=typeof self=="object"&&self&&self.Object===Object&&self;var U=B||W||Function("return this")();var F=true&&t&&!t.nodeType&&t;var J=F&&"object"=="object"&&e&&!e.nodeType&&e;var V=J&&J.exports===F;var H=V&&B.process;var G=function(){try{var e=J&&J.require&&J.require("util").types;if(e){return e}return H&&H.binding&&H.binding("util")}catch(t){}}();var K=G&&G.isTypedArray;function Q(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function X(e,t){var r=-1,n=Array(e);while(++r-1}function De(e,t){var r=this.__data__,n=et(r,e);if(n<0){++this.size;r.push([e,t])}else{r[n][1]=t}return this}xe.prototype.clear=Le;xe.prototype["delete"]=qe;xe.prototype.get=Ae;xe.prototype.has=$e;xe.prototype.set=De;function ze(e){var t=-1,r=e==null?0:e.length;this.clear();while(++t1?r[s-1]:undefined,o=s>2?r[2]:undefined;i=e.length>3&&typeof i=="function"?(s--,i):undefined;if(o&&St(r[0],r[1],o)){i=s<3?undefined:i;s=1}t=Object(t);while(++n-1&&e%1==0&&e0){if(++t>=i){return arguments[0]}}else{t=0}return e.apply(undefined,arguments)}}function Lt(e){if(e!=null){try{return ie.call(e)}catch(t){}try{return e+""}catch(t){}}return""}function qt(e,t){return e===t||e!==e&&t!==t}var At=st(function(){return arguments}())?st:function(e){return Ft(e)&&oe.call(e,"callee")&&!ye.call(e,"callee")};var $t=Array.isArray;function Dt(e){return e!=null&&Wt(e.length)&&!Bt(e)}function zt(e){return Ft(e)&&Dt(e)}var It=we||Yt;function Bt(e){if(!Ut(e)){return false}var t=nt(e);return t==p||t==g||t==f||t==_}function Wt(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=a}function Ut(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function Ft(e){return e!=null&&typeof e=="object"}function Jt(e){if(!Ft(e)||nt(e)!=v){return false}var t=ge(e);if(t===null){return true}var r=oe.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&ie.call(r)==ue}var Vt=K?Y(K):ot;function Ht(e){return mt(e,Gt(e))}function Gt(e){return Dt(e)?Xe(e,true):at(e)}var Kt=yt((function(e,t,r,n){ct(e,t,r,n)}));function Qt(e){return function(){return e}}function Xt(e){return e}function Yt(){return false}e.exports=Kt},76439:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var s=Object.getOwnPropertyDescriptor(t,r);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,s)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});t.createMessageConnection=t.BrowserMessageWriter=t.BrowserMessageReader=void 0;const i=r(54615);i.default.install();const o=r(53281);s(r(53281),t);class a extends o.AbstractMessageReader{constructor(e){super();this._onData=new o.Emitter;this._messageListener=e=>{this._onData.fire(e.data)};e.addEventListener("error",(e=>this.fireError(e)));e.onmessage=this._messageListener}listen(e){return this._onData.event(e)}}t.BrowserMessageReader=a;class c extends o.AbstractMessageWriter{constructor(e){super();this.port=e;this.errorCount=0;e.addEventListener("error",(e=>this.fireError(e)))}write(e){try{this.port.postMessage(e);return Promise.resolve()}catch(t){this.handleError(t,e);return Promise.reject(t)}}handleError(e,t){this.errorCount++;this.fireError(e,t,this.errorCount)}end(){}}t.BrowserMessageWriter=c;function u(e,t,r,n){if(r===undefined){r=o.NullLogger}if(o.ConnectionStrategy.is(n)){n={connectionStrategy:n}}return(0,o.createMessageConnection)(e,t,r,n)}t.createMessageConnection=u},54615:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const n=r(53281);class s extends n.AbstractMessageBuffer{constructor(e="utf-8"){super(e);this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return s.emptyBuffer}fromString(e,t){return(new TextEncoder).encode(e)}toString(e,t){if(t==="ascii"){return this.asciiDecoder.decode(e)}else{return new TextDecoder(t).decode(e)}}asNative(e,t){if(t===undefined){return e}else{return e.slice(0,t)}}allocNative(e){return new Uint8Array(e)}}s.emptyBuffer=new Uint8Array(0);class i{constructor(e){this.socket=e;this._onData=new n.Emitter;this._messageListener=e=>{const t=e.data;t.arrayBuffer().then((e=>{this._onData.fire(new Uint8Array(e))}),(()=>{(0,n.RAL)().console.error(`Converting blob to array buffer failed.`)}))};this.socket.addEventListener("message",this._messageListener)}onClose(e){this.socket.addEventListener("close",e);return n.Disposable.create((()=>this.socket.removeEventListener("close",e)))}onError(e){this.socket.addEventListener("error",e);return n.Disposable.create((()=>this.socket.removeEventListener("error",e)))}onEnd(e){this.socket.addEventListener("end",e);return n.Disposable.create((()=>this.socket.removeEventListener("end",e)))}onData(e){return this._onData.event(e)}}class o{constructor(e){this.socket=e}onClose(e){this.socket.addEventListener("close",e);return n.Disposable.create((()=>this.socket.removeEventListener("close",e)))}onError(e){this.socket.addEventListener("error",e);return n.Disposable.create((()=>this.socket.removeEventListener("error",e)))}onEnd(e){this.socket.addEventListener("end",e);return n.Disposable.create((()=>this.socket.removeEventListener("end",e)))}write(e,t){if(typeof e==="string"){if(t!==undefined&&t!=="utf-8"){throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${t}`)}this.socket.send(e)}else{this.socket.send(e)}return Promise.resolve()}end(){this.socket.close()}}const a=new TextEncoder;const c=Object.freeze({messageBuffer:Object.freeze({create:e=>new s(e)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(e,t)=>{if(t.charset!=="utf-8"){throw new Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${t.charset}`)}return Promise.resolve(a.encode(JSON.stringify(e,undefined,0)))}}),decoder:Object.freeze({name:"application/json",decode:(e,t)=>{if(!(e instanceof Uint8Array)){throw new Error(`In a Browser environments only Uint8Arrays are supported.`)}return Promise.resolve(JSON.parse(new TextDecoder(t.charset).decode(e)))}})}),stream:Object.freeze({asReadableStream:e=>new i(e),asWritableStream:e=>new o(e)}),console,timer:Object.freeze({setTimeout(e,t,...r){const n=setTimeout(e,t,...r);return{dispose:()=>clearTimeout(n)}},setImmediate(e,...t){const r=setTimeout(e,0,...t);return{dispose:()=>clearTimeout(r)}},setInterval(e,t,...r){const n=setInterval(e,t,...r);return{dispose:()=>clearInterval(n)}}})});function u(){return c}(function(e){function t(){n.RAL.install(c)}e.install=t})(u||(u={}));t["default"]=u},53281:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ProgressType=t.ProgressToken=t.createMessageConnection=t.NullLogger=t.ConnectionOptions=t.ConnectionStrategy=t.AbstractMessageBuffer=t.WriteableStreamMessageWriter=t.AbstractMessageWriter=t.MessageWriter=t.ReadableStreamMessageReader=t.AbstractMessageReader=t.MessageReader=t.SharedArrayReceiverStrategy=t.SharedArraySenderStrategy=t.CancellationToken=t.CancellationTokenSource=t.Emitter=t.Event=t.Disposable=t.LRUCache=t.Touch=t.LinkedMap=t.ParameterStructures=t.NotificationType9=t.NotificationType8=t.NotificationType7=t.NotificationType6=t.NotificationType5=t.NotificationType4=t.NotificationType3=t.NotificationType2=t.NotificationType1=t.NotificationType0=t.NotificationType=t.ErrorCodes=t.ResponseError=t.RequestType9=t.RequestType8=t.RequestType7=t.RequestType6=t.RequestType5=t.RequestType4=t.RequestType3=t.RequestType2=t.RequestType1=t.RequestType0=t.RequestType=t.Message=t.RAL=void 0;t.MessageStrategy=t.CancellationStrategy=t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.TraceValues=t.Trace=void 0;const n=r(96177);Object.defineProperty(t,"Message",{enumerable:true,get:function(){return n.Message}});Object.defineProperty(t,"RequestType",{enumerable:true,get:function(){return n.RequestType}});Object.defineProperty(t,"RequestType0",{enumerable:true,get:function(){return n.RequestType0}});Object.defineProperty(t,"RequestType1",{enumerable:true,get:function(){return n.RequestType1}});Object.defineProperty(t,"RequestType2",{enumerable:true,get:function(){return n.RequestType2}});Object.defineProperty(t,"RequestType3",{enumerable:true,get:function(){return n.RequestType3}});Object.defineProperty(t,"RequestType4",{enumerable:true,get:function(){return n.RequestType4}});Object.defineProperty(t,"RequestType5",{enumerable:true,get:function(){return n.RequestType5}});Object.defineProperty(t,"RequestType6",{enumerable:true,get:function(){return n.RequestType6}});Object.defineProperty(t,"RequestType7",{enumerable:true,get:function(){return n.RequestType7}});Object.defineProperty(t,"RequestType8",{enumerable:true,get:function(){return n.RequestType8}});Object.defineProperty(t,"RequestType9",{enumerable:true,get:function(){return n.RequestType9}});Object.defineProperty(t,"ResponseError",{enumerable:true,get:function(){return n.ResponseError}});Object.defineProperty(t,"ErrorCodes",{enumerable:true,get:function(){return n.ErrorCodes}});Object.defineProperty(t,"NotificationType",{enumerable:true,get:function(){return n.NotificationType}});Object.defineProperty(t,"NotificationType0",{enumerable:true,get:function(){return n.NotificationType0}});Object.defineProperty(t,"NotificationType1",{enumerable:true,get:function(){return n.NotificationType1}});Object.defineProperty(t,"NotificationType2",{enumerable:true,get:function(){return n.NotificationType2}});Object.defineProperty(t,"NotificationType3",{enumerable:true,get:function(){return n.NotificationType3}});Object.defineProperty(t,"NotificationType4",{enumerable:true,get:function(){return n.NotificationType4}});Object.defineProperty(t,"NotificationType5",{enumerable:true,get:function(){return n.NotificationType5}});Object.defineProperty(t,"NotificationType6",{enumerable:true,get:function(){return n.NotificationType6}});Object.defineProperty(t,"NotificationType7",{enumerable:true,get:function(){return n.NotificationType7}});Object.defineProperty(t,"NotificationType8",{enumerable:true,get:function(){return n.NotificationType8}});Object.defineProperty(t,"NotificationType9",{enumerable:true,get:function(){return n.NotificationType9}});Object.defineProperty(t,"ParameterStructures",{enumerable:true,get:function(){return n.ParameterStructures}});const s=r(93352);Object.defineProperty(t,"LinkedMap",{enumerable:true,get:function(){return s.LinkedMap}});Object.defineProperty(t,"LRUCache",{enumerable:true,get:function(){return s.LRUCache}});Object.defineProperty(t,"Touch",{enumerable:true,get:function(){return s.Touch}});const i=r(34019);Object.defineProperty(t,"Disposable",{enumerable:true,get:function(){return i.Disposable}});const o=r(62676);Object.defineProperty(t,"Event",{enumerable:true,get:function(){return o.Event}});Object.defineProperty(t,"Emitter",{enumerable:true,get:function(){return o.Emitter}});const a=r(59850);Object.defineProperty(t,"CancellationTokenSource",{enumerable:true,get:function(){return a.CancellationTokenSource}});Object.defineProperty(t,"CancellationToken",{enumerable:true,get:function(){return a.CancellationToken}});const c=r(74996);Object.defineProperty(t,"SharedArraySenderStrategy",{enumerable:true,get:function(){return c.SharedArraySenderStrategy}});Object.defineProperty(t,"SharedArrayReceiverStrategy",{enumerable:true,get:function(){return c.SharedArrayReceiverStrategy}});const u=r(59085);Object.defineProperty(t,"MessageReader",{enumerable:true,get:function(){return u.MessageReader}});Object.defineProperty(t,"AbstractMessageReader",{enumerable:true,get:function(){return u.AbstractMessageReader}});Object.defineProperty(t,"ReadableStreamMessageReader",{enumerable:true,get:function(){return u.ReadableStreamMessageReader}});const f=r(23193);Object.defineProperty(t,"MessageWriter",{enumerable:true,get:function(){return f.MessageWriter}});Object.defineProperty(t,"AbstractMessageWriter",{enumerable:true,get:function(){return f.AbstractMessageWriter}});Object.defineProperty(t,"WriteableStreamMessageWriter",{enumerable:true,get:function(){return f.WriteableStreamMessageWriter}});const l=r(89244);Object.defineProperty(t,"AbstractMessageBuffer",{enumerable:true,get:function(){return l.AbstractMessageBuffer}});const d=r(90577);Object.defineProperty(t,"ConnectionStrategy",{enumerable:true,get:function(){return d.ConnectionStrategy}});Object.defineProperty(t,"ConnectionOptions",{enumerable:true,get:function(){return d.ConnectionOptions}});Object.defineProperty(t,"NullLogger",{enumerable:true,get:function(){return d.NullLogger}});Object.defineProperty(t,"createMessageConnection",{enumerable:true,get:function(){return d.createMessageConnection}});Object.defineProperty(t,"ProgressToken",{enumerable:true,get:function(){return d.ProgressToken}});Object.defineProperty(t,"ProgressType",{enumerable:true,get:function(){return d.ProgressType}});Object.defineProperty(t,"Trace",{enumerable:true,get:function(){return d.Trace}});Object.defineProperty(t,"TraceValues",{enumerable:true,get:function(){return d.TraceValues}});Object.defineProperty(t,"TraceFormat",{enumerable:true,get:function(){return d.TraceFormat}});Object.defineProperty(t,"SetTraceNotification",{enumerable:true,get:function(){return d.SetTraceNotification}});Object.defineProperty(t,"LogTraceNotification",{enumerable:true,get:function(){return d.LogTraceNotification}});Object.defineProperty(t,"ConnectionErrors",{enumerable:true,get:function(){return d.ConnectionErrors}});Object.defineProperty(t,"ConnectionError",{enumerable:true,get:function(){return d.ConnectionError}});Object.defineProperty(t,"CancellationReceiverStrategy",{enumerable:true,get:function(){return d.CancellationReceiverStrategy}});Object.defineProperty(t,"CancellationSenderStrategy",{enumerable:true,get:function(){return d.CancellationSenderStrategy}});Object.defineProperty(t,"CancellationStrategy",{enumerable:true,get:function(){return d.CancellationStrategy}});Object.defineProperty(t,"MessageStrategy",{enumerable:true,get:function(){return d.MessageStrategy}});const h=r(69590);t.RAL=h.default},59850:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CancellationTokenSource=t.CancellationToken=void 0;const n=r(69590);const s=r(78585);const i=r(62676);var o;(function(e){e.None=Object.freeze({isCancellationRequested:false,onCancellationRequested:i.Event.None});e.Cancelled=Object.freeze({isCancellationRequested:true,onCancellationRequested:i.Event.None});function t(t){const r=t;return r&&(r===e.None||r===e.Cancelled||s.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}e.is=t})(o||(t.CancellationToken=o={}));const a=Object.freeze((function(e,t){const r=(0,n.default)().timer.setTimeout(e.bind(t),0);return{dispose(){r.dispose()}}}));class c{constructor(){this._isCancelled=false}cancel(){if(!this._isCancelled){this._isCancelled=true;if(this._emitter){this._emitter.fire(undefined);this.dispose()}}}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){if(this._isCancelled){return a}if(!this._emitter){this._emitter=new i.Emitter}return this._emitter.event}dispose(){if(this._emitter){this._emitter.dispose();this._emitter=undefined}}}class u{get token(){if(!this._token){this._token=new c}return this._token}cancel(){if(!this._token){this._token=o.Cancelled}else{this._token.cancel()}}dispose(){if(!this._token){this._token=o.None}else if(this._token instanceof c){this._token.dispose()}}}t.CancellationTokenSource=u},90577:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.createMessageConnection=t.ConnectionOptions=t.MessageStrategy=t.CancellationStrategy=t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.RequestCancellationReceiverStrategy=t.IdCancellationReceiverStrategy=t.ConnectionStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.TraceValues=t.Trace=t.NullLogger=t.ProgressType=t.ProgressToken=void 0;const n=r(69590);const s=r(78585);const i=r(96177);const o=r(93352);const a=r(62676);const c=r(59850);var u;(function(e){e.type=new i.NotificationType("$/cancelRequest")})(u||(u={}));var f;(function(e){function t(e){return typeof e==="string"||typeof e==="number"}e.is=t})(f||(t.ProgressToken=f={}));var l;(function(e){e.type=new i.NotificationType("$/progress")})(l||(l={}));class d{constructor(){}}t.ProgressType=d;var h;(function(e){function t(e){return s.func(e)}e.is=t})(h||(h={}));t.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var p;(function(e){e[e["Off"]=0]="Off";e[e["Messages"]=1]="Messages";e[e["Compact"]=2]="Compact";e[e["Verbose"]=3]="Verbose"})(p||(t.Trace=p={}));var g;(function(e){e.Off="off";e.Messages="messages";e.Compact="compact";e.Verbose="verbose"})(g||(t.TraceValues=g={}));(function(e){function t(t){if(!s.string(t)){return e.Off}t=t.toLowerCase();switch(t){case"off":return e.Off;case"messages":return e.Messages;case"compact":return e.Compact;case"verbose":return e.Verbose;default:return e.Off}}e.fromString=t;function r(t){switch(t){case e.Off:return"off";case e.Messages:return"messages";case e.Compact:return"compact";case e.Verbose:return"verbose";default:return"off"}}e.toString=r})(p||(t.Trace=p={}));var m;(function(e){e["Text"]="text";e["JSON"]="json"})(m||(t.TraceFormat=m={}));(function(e){function t(t){if(!s.string(t)){return e.Text}t=t.toLowerCase();if(t==="json"){return e.JSON}else{return e.Text}}e.fromString=t})(m||(t.TraceFormat=m={}));var y;(function(e){e.type=new i.NotificationType("$/setTrace")})(y||(t.SetTraceNotification=y={}));var b;(function(e){e.type=new i.NotificationType("$/logTrace")})(b||(t.LogTraceNotification=b={}));var v;(function(e){e[e["Closed"]=1]="Closed";e[e["Disposed"]=2]="Disposed";e[e["AlreadyListening"]=3]="AlreadyListening"})(v||(t.ConnectionErrors=v={}));class _ extends Error{constructor(e,t){super(t);this.code=e;Object.setPrototypeOf(this,_.prototype)}}t.ConnectionError=_;var w;(function(e){function t(e){const t=e;return t&&s.func(t.cancelUndispatched)}e.is=t})(w||(t.ConnectionStrategy=w={}));var T;(function(e){function t(e){const t=e;return t&&(t.kind===undefined||t.kind==="id")&&s.func(t.createCancellationTokenSource)&&(t.dispose===undefined||s.func(t.dispose))}e.is=t})(T||(t.IdCancellationReceiverStrategy=T={}));var E;(function(e){function t(e){const t=e;return t&&t.kind==="request"&&s.func(t.createCancellationTokenSource)&&(t.dispose===undefined||s.func(t.dispose))}e.is=t})(E||(t.RequestCancellationReceiverStrategy=E={}));var S;(function(e){e.Message=Object.freeze({createCancellationTokenSource(e){return new c.CancellationTokenSource}});function t(e){return T.is(e)||E.is(e)}e.is=t})(S||(t.CancellationReceiverStrategy=S={}));var k;(function(e){e.Message=Object.freeze({sendCancellation(e,t){return e.sendNotification(u.type,{id:t})},cleanup(e){}});function t(e){const t=e;return t&&s.func(t.sendCancellation)&&s.func(t.cleanup)}e.is=t})(k||(t.CancellationSenderStrategy=k={}));var C;(function(e){e.Message=Object.freeze({receiver:S.Message,sender:k.Message});function t(e){const t=e;return t&&S.is(t.receiver)&&k.is(t.sender)}e.is=t})(C||(t.CancellationStrategy=C={}));var R;(function(e){function t(e){const t=e;return t&&s.func(t.handleMessage)}e.is=t})(R||(t.MessageStrategy=R={}));var M;(function(e){function t(e){const t=e;return t&&(C.is(t.cancellationStrategy)||w.is(t.connectionStrategy)||R.is(t.messageStrategy))}e.is=t})(M||(t.ConnectionOptions=M={}));var j;(function(e){e[e["New"]=1]="New";e[e["Listening"]=2]="Listening";e[e["Closed"]=3]="Closed";e[e["Disposed"]=4]="Disposed"})(j||(j={}));function O(e,r,d,g){const w=d!==undefined?d:t.NullLogger;let E=0;let S=0;let k=0;const M="2.0";let O=undefined;const P=new Map;let N=undefined;const x=new Map;const L=new Map;let q;let A=new o.LinkedMap;let $=new Map;let D=new Set;let z=new Map;let I=p.Off;let B=m.Text;let W;let U=j.New;const F=new a.Emitter;const J=new a.Emitter;const V=new a.Emitter;const H=new a.Emitter;const G=new a.Emitter;const K=g&&g.cancellationStrategy?g.cancellationStrategy:C.Message;function Q(e){if(e===null){throw new Error(`Can't send requests with id null since the response can't be correlated.`)}return"req-"+e.toString()}function X(e){if(e===null){return"res-unknown-"+(++k).toString()}else{return"res-"+e.toString()}}function Y(){return"not-"+(++S).toString()}function Z(e,t){if(i.Message.isRequest(t)){e.set(Q(t.id),t)}else if(i.Message.isResponse(t)){e.set(X(t.id),t)}else{e.set(Y(),t)}}function ee(e){return undefined}function te(){return U===j.Listening}function re(){return U===j.Closed}function ne(){return U===j.Disposed}function se(){if(U===j.New||U===j.Listening){U=j.Closed;J.fire(undefined)}}function ie(e){F.fire([e,undefined,undefined])}function oe(e){F.fire(e)}e.onClose(se);e.onError(ie);r.onClose(se);r.onError(oe);function ae(){if(q||A.size===0){return}q=(0,n.default)().timer.setImmediate((()=>{q=undefined;ue()}))}function ce(e){if(i.Message.isRequest(e)){le(e)}else if(i.Message.isNotification(e)){he(e)}else if(i.Message.isResponse(e)){de(e)}else{pe(e)}}function ue(){if(A.size===0){return}const e=A.shift();try{const t=g?.messageStrategy;if(R.is(t)){t.handleMessage(e,ce)}else{ce(e)}}finally{ae()}}const fe=e=>{try{if(i.Message.isNotification(e)&&e.method===u.type.method){const t=e.params.id;const n=Q(t);const s=A.get(n);if(i.Message.isRequest(s)){const i=g?.connectionStrategy;const o=i&&i.cancelUndispatched?i.cancelUndispatched(s,ee):ee(s);if(o&&(o.error!==undefined||o.result!==undefined)){A.delete(n);z.delete(t);o.id=s.id;be(o,e.method,Date.now());r.write(o).catch((()=>w.error(`Sending response for canceled message failed.`)));return}}const o=z.get(t);if(o!==undefined){o.cancel();_e(e);return}else{D.add(t)}}Z(A,e)}finally{ae()}};function le(e){if(ne()){return}function t(t,n,s){const o={jsonrpc:M,id:e.id};if(t instanceof i.ResponseError){o.error=t.toJson()}else{o.result=t===undefined?null:t}be(o,n,s);r.write(o).catch((()=>w.error(`Sending response failed.`)))}function n(t,n,s){const i={jsonrpc:M,id:e.id,error:t.toJson()};be(i,n,s);r.write(i).catch((()=>w.error(`Sending response failed.`)))}function o(t,n,s){if(t===undefined){t=null}const i={jsonrpc:M,id:e.id,result:t};be(i,n,s);r.write(i).catch((()=>w.error(`Sending response failed.`)))}ve(e);const a=P.get(e.method);let c;let u;if(a){c=a.type;u=a.handler}const f=Date.now();if(u||O){const r=e.id??String(Date.now());const a=T.is(K.receiver)?K.receiver.createCancellationTokenSource(r):K.receiver.createCancellationTokenSource(e);if(e.id!==null&&D.has(e.id)){a.cancel()}if(e.id!==null){z.set(r,a)}try{let l;if(u){if(e.params===undefined){if(c!==undefined&&c.numberOfParams!==0){n(new i.ResponseError(i.ErrorCodes.InvalidParams,`Request ${e.method} defines ${c.numberOfParams} params but received none.`),e.method,f);return}l=u(a.token)}else if(Array.isArray(e.params)){if(c!==undefined&&c.parameterStructures===i.ParameterStructures.byName){n(new i.ResponseError(i.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by name but received parameters by position`),e.method,f);return}l=u(...e.params,a.token)}else{if(c!==undefined&&c.parameterStructures===i.ParameterStructures.byPosition){n(new i.ResponseError(i.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by position but received parameters by name`),e.method,f);return}l=u(e.params,a.token)}}else if(O){l=O(e.method,e.params,a.token)}const d=l;if(!l){z.delete(r);o(l,e.method,f)}else if(d.then){d.then((n=>{z.delete(r);t(n,e.method,f)}),(t=>{z.delete(r);if(t instanceof i.ResponseError){n(t,e.method,f)}else if(t&&s.string(t.message)){n(new i.ResponseError(i.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,f)}else{n(new i.ResponseError(i.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,f)}}))}else{z.delete(r);t(l,e.method,f)}}catch(l){z.delete(r);if(l instanceof i.ResponseError){t(l,e.method,f)}else if(l&&s.string(l.message)){n(new i.ResponseError(i.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${l.message}`),e.method,f)}else{n(new i.ResponseError(i.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,f)}}}else{n(new i.ResponseError(i.ErrorCodes.MethodNotFound,`Unhandled method ${e.method}`),e.method,f)}}function de(e){if(ne()){return}if(e.id===null){if(e.error){w.error(`Received response message without id: Error is: \n${JSON.stringify(e.error,undefined,4)}`)}else{w.error(`Received response message without id. No further error information provided.`)}}else{const r=e.id;const n=$.get(r);we(e,n);if(n!==undefined){$.delete(r);try{if(e.error){const t=e.error;n.reject(new i.ResponseError(t.code,t.message,t.data))}else if(e.result!==undefined){n.resolve(e.result)}else{throw new Error("Should never happen.")}}catch(t){if(t.message){w.error(`Response handler '${n.method}' failed with message: ${t.message}`)}else{w.error(`Response handler '${n.method}' failed unexpectedly.`)}}}}}function he(e){if(ne()){return}let t=undefined;let r;if(e.method===u.type.method){const t=e.params.id;D.delete(t);_e(e);return}else{const n=x.get(e.method);if(n){r=n.handler;t=n.type}}if(r||N){try{_e(e);if(r){if(e.params===undefined){if(t!==undefined){if(t.numberOfParams!==0&&t.parameterStructures!==i.ParameterStructures.byName){w.error(`Notification ${e.method} defines ${t.numberOfParams} params but received none.`)}}r()}else if(Array.isArray(e.params)){const n=e.params;if(e.method===l.type.method&&n.length===2&&f.is(n[0])){r({token:n[0],value:n[1]})}else{if(t!==undefined){if(t.parameterStructures===i.ParameterStructures.byName){w.error(`Notification ${e.method} defines parameters by name but received parameters by position`)}if(t.numberOfParams!==e.params.length){w.error(`Notification ${e.method} defines ${t.numberOfParams} params but received ${n.length} arguments`)}}r(...n)}}else{if(t!==undefined&&t.parameterStructures===i.ParameterStructures.byPosition){w.error(`Notification ${e.method} defines parameters by position but received parameters by name`)}r(e.params)}}else if(N){N(e.method,e.params)}}catch(n){if(n.message){w.error(`Notification handler '${e.method}' failed with message: ${n.message}`)}else{w.error(`Notification handler '${e.method}' failed unexpectedly.`)}}}else{V.fire(e)}}function pe(e){if(!e){w.error("Received empty message.");return}w.error(`Received message which is neither a response nor a notification message:\n${JSON.stringify(e,null,4)}`);const t=e;if(s.string(t.id)||s.number(t.id)){const e=t.id;const r=$.get(e);if(r){r.reject(new Error("The received response has neither a result nor an error property."))}}}function ge(e){if(e===undefined||e===null){return undefined}switch(I){case p.Verbose:return JSON.stringify(e,null,4);case p.Compact:return JSON.stringify(e);default:return undefined}}function me(e){if(I===p.Off||!W){return}if(B===m.Text){let t=undefined;if((I===p.Verbose||I===p.Compact)&&e.params){t=`Params: ${ge(e.params)}\n\n`}W.log(`Sending request '${e.method} - (${e.id})'.`,t)}else{Te("send-request",e)}}function ye(e){if(I===p.Off||!W){return}if(B===m.Text){let t=undefined;if(I===p.Verbose||I===p.Compact){if(e.params){t=`Params: ${ge(e.params)}\n\n`}else{t="No parameters provided.\n\n"}}W.log(`Sending notification '${e.method}'.`,t)}else{Te("send-notification",e)}}function be(e,t,r){if(I===p.Off||!W){return}if(B===m.Text){let n=undefined;if(I===p.Verbose||I===p.Compact){if(e.error&&e.error.data){n=`Error data: ${ge(e.error.data)}\n\n`}else{if(e.result){n=`Result: ${ge(e.result)}\n\n`}else if(e.error===undefined){n="No result returned.\n\n"}}}W.log(`Sending response '${t} - (${e.id})'. Processing request took ${Date.now()-r}ms`,n)}else{Te("send-response",e)}}function ve(e){if(I===p.Off||!W){return}if(B===m.Text){let t=undefined;if((I===p.Verbose||I===p.Compact)&&e.params){t=`Params: ${ge(e.params)}\n\n`}W.log(`Received request '${e.method} - (${e.id})'.`,t)}else{Te("receive-request",e)}}function _e(e){if(I===p.Off||!W||e.method===b.type.method){return}if(B===m.Text){let t=undefined;if(I===p.Verbose||I===p.Compact){if(e.params){t=`Params: ${ge(e.params)}\n\n`}else{t="No parameters provided.\n\n"}}W.log(`Received notification '${e.method}'.`,t)}else{Te("receive-notification",e)}}function we(e,t){if(I===p.Off||!W){return}if(B===m.Text){let r=undefined;if(I===p.Verbose||I===p.Compact){if(e.error&&e.error.data){r=`Error data: ${ge(e.error.data)}\n\n`}else{if(e.result){r=`Result: ${ge(e.result)}\n\n`}else if(e.error===undefined){r="No result returned.\n\n"}}}if(t){const n=e.error?` Request failed: ${e.error.message} (${e.error.code}).`:"";W.log(`Received response '${t.method} - (${e.id})' in ${Date.now()-t.timerStart}ms.${n}`,r)}else{W.log(`Received response ${e.id} without active response promise.`,r)}}else{Te("receive-response",e)}}function Te(e,t){if(!W||I===p.Off){return}const r={isLSPMessage:true,type:e,message:t,timestamp:Date.now()};W.log(r)}function Ee(){if(re()){throw new _(v.Closed,"Connection is closed.")}if(ne()){throw new _(v.Disposed,"Connection is disposed.")}}function Se(){if(te()){throw new _(v.AlreadyListening,"Connection is already listening")}}function ke(){if(!te()){throw new Error("Call listen() first.")}}function Ce(e){if(e===undefined){return null}else{return e}}function Re(e){if(e===null){return undefined}else{return e}}function Me(e){return e!==undefined&&e!==null&&!Array.isArray(e)&&typeof e==="object"}function je(e,t){switch(e){case i.ParameterStructures.auto:if(Me(t)){return Re(t)}else{return[Ce(t)]}case i.ParameterStructures.byName:if(!Me(t)){throw new Error(`Received parameters by name but param is not an object literal.`)}return Re(t);case i.ParameterStructures.byPosition:return[Ce(t)];default:throw new Error(`Unknown parameter structure ${e.toString()}`)}}function Oe(e,t){let r;const n=e.numberOfParams;switch(n){case 0:r=undefined;break;case 1:r=je(e.parameterStructures,t[0]);break;default:r=[];for(let e=0;e{Ee();let n;let o;if(s.string(e)){n=e;const r=t[0];let s=0;let a=i.ParameterStructures.auto;if(i.ParameterStructures.is(r)){s=1;a=r}let c=t.length;const u=c-s;switch(u){case 0:o=undefined;break;case 1:o=je(a,t[s]);break;default:if(a===i.ParameterStructures.byName){throw new Error(`Received ${u} parameters for 'by Name' notification parameter structure.`)}o=t.slice(s,c).map((e=>Ce(e)));break}}else{const r=t;n=e.method;o=Oe(e,r)}const a={jsonrpc:M,method:n,params:o};ye(a);return r.write(a).catch((e=>{w.error(`Sending notification failed.`);throw e}))},onNotification:(e,t)=>{Ee();let r;if(s.func(e)){N=e}else if(t){if(s.string(e)){r=e;x.set(e,{type:undefined,handler:t})}else{r=e.method;x.set(e.method,{type:e,handler:t})}}return{dispose:()=>{if(r!==undefined){x.delete(r)}else{N=undefined}}}},onProgress:(e,t,r)=>{if(L.has(t)){throw new Error(`Progress handler for token ${t} already registered`)}L.set(t,r);return{dispose:()=>{L.delete(t)}}},sendProgress:(e,t,r)=>Pe.sendNotification(l.type,{token:t,value:r}),onUnhandledProgress:H.event,sendRequest:(e,...t)=>{Ee();ke();let n;let o;let a=undefined;if(s.string(e)){n=e;const r=t[0];const s=t[t.length-1];let u=0;let f=i.ParameterStructures.auto;if(i.ParameterStructures.is(r)){u=1;f=r}let l=t.length;if(c.CancellationToken.is(s)){l=l-1;a=s}const d=l-u;switch(d){case 0:o=undefined;break;case 1:o=je(f,t[u]);break;default:if(f===i.ParameterStructures.byName){throw new Error(`Received ${d} parameters for 'by Name' request parameter structure.`)}o=t.slice(u,l).map((e=>Ce(e)));break}}else{const r=t;n=e.method;o=Oe(e,r);const s=e.numberOfParams;a=c.CancellationToken.is(r[s])?r[s]:undefined}const u=E++;let f;if(a){f=a.onCancellationRequested((()=>{const e=K.sender.sendCancellation(Pe,u);if(e===undefined){w.log(`Received no promise from cancellation strategy when cancelling id ${u}`);return Promise.resolve()}else{return e.catch((()=>{w.log(`Sending cancellation messages for id ${u} failed`)}))}}))}const l={jsonrpc:M,id:u,method:n,params:o};me(l);if(typeof K.sender.enableCancellation==="function"){K.sender.enableCancellation(l)}return new Promise((async(e,t)=>{const s=t=>{e(t);K.sender.cleanup(u);f?.dispose()};const o=e=>{t(e);K.sender.cleanup(u);f?.dispose()};const a={method:n,timerStart:Date.now(),resolve:s,reject:o};try{await r.write(l);$.set(u,a)}catch(c){w.error(`Sending request failed.`);a.reject(new i.ResponseError(i.ErrorCodes.MessageWriteError,c.message?c.message:"Unknown reason"));throw c}}))},onRequest:(e,t)=>{Ee();let r=null;if(h.is(e)){r=undefined;O=e}else if(s.string(e)){r=null;if(t!==undefined){r=e;P.set(e,{handler:t,type:undefined})}}else{if(t!==undefined){r=e.method;P.set(e.method,{type:e,handler:t})}}return{dispose:()=>{if(r===null){return}if(r!==undefined){P.delete(r)}else{O=undefined}}}},hasPendingResponse:()=>$.size>0,trace:async(e,t,r)=>{let n=false;let i=m.Text;if(r!==undefined){if(s.boolean(r)){n=r}else{n=r.sendNotification||false;i=r.traceFormat||m.Text}}I=e;B=i;if(I===p.Off){W=undefined}else{W=t}if(n&&!re()&&!ne()){await Pe.sendNotification(y.type,{value:p.toString(e)})}},onError:F.event,onClose:J.event,onUnhandledNotification:V.event,onDispose:G.event,end:()=>{r.end()},dispose:()=>{if(ne()){return}U=j.Disposed;G.fire(undefined);const t=new i.ResponseError(i.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(const e of $.values()){e.reject(t)}$=new Map;z=new Map;D=new Set;A=new o.LinkedMap;if(s.func(r.dispose)){r.dispose()}if(s.func(e.dispose)){e.dispose()}},listen:()=>{Ee();Se();U=j.Listening;e.listen(fe)},inspect:()=>{(0,n.default)().console.log("inspect")}};Pe.onNotification(b.type,(e=>{if(I===p.Off||!W){return}const t=I===p.Verbose||I===p.Compact;W.log(e.message,t?e.verbose:undefined)}));Pe.onNotification(l.type,(e=>{const t=L.get(e.token);if(t){t(e.value)}else{H.fire(e)}}));return Pe}t.createMessageConnection=O},34019:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Disposable=void 0;var r;(function(e){function t(e){return{dispose:e}}e.create=t})(r||(t.Disposable=r={}))},62676:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Emitter=t.Event=void 0;const n=r(69590);var s;(function(e){const t={dispose(){}};e.None=function(){return t}})(s||(t.Event=s={}));class i{add(e,t=null,r){if(!this._callbacks){this._callbacks=[];this._contexts=[]}this._callbacks.push(e);this._contexts.push(t);if(Array.isArray(r)){r.push({dispose:()=>this.remove(e,t)})}}remove(e,t=null){if(!this._callbacks){return}let r=false;for(let n=0,s=this._callbacks.length;n{if(!this._callbacks){this._callbacks=new i}if(this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()){this._options.onFirstListenerAdd(this)}this._callbacks.add(e,t);const n={dispose:()=>{if(!this._callbacks){return}this._callbacks.remove(e,t);n.dispose=o._noop;if(this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()){this._options.onLastListenerRemove(this)}}};if(Array.isArray(r)){r.push(n)}return n}}return this._event}fire(e){if(this._callbacks){this._callbacks.invoke.call(this._callbacks,e)}}dispose(){if(this._callbacks){this._callbacks.dispose();this._callbacks=undefined}}}t.Emitter=o;o._noop=function(){}},78585:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.stringArray=t.array=t.func=t.error=t.number=t.string=t.boolean=void 0;function r(e){return e===true||e===false}t.boolean=r;function n(e){return typeof e==="string"||e instanceof String}t.string=n;function s(e){return typeof e==="number"||e instanceof Number}t.number=s;function i(e){return e instanceof Error}t.error=i;function o(e){return typeof e==="function"}t.func=o;function a(e){return Array.isArray(e)}t.array=a;function c(e){return a(e)&&e.every((e=>n(e)))}t.stringArray=c},93352:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:true});t.LRUCache=t.LinkedMap=t.Touch=void 0;var n;(function(e){e.None=0;e.First=1;e.AsOld=e.First;e.Last=2;e.AsNew=e.Last})(n||(t.Touch=n={}));class s{constructor(){this[r]="LinkedMap";this._map=new Map;this._head=undefined;this._tail=undefined;this._size=0;this._state=0}clear(){this._map.clear();this._head=undefined;this._tail=undefined;this._size=0;this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=n.None){const r=this._map.get(e);if(!r){return undefined}if(t!==n.None){this.touch(r,t)}return r.value}set(e,t,r=n.None){let s=this._map.get(e);if(s){s.value=t;if(r!==n.None){this.touch(s,r)}}else{s={key:e,value:t,next:undefined,previous:undefined};switch(r){case n.None:this.addItemLast(s);break;case n.First:this.addItemFirst(s);break;case n.Last:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s);this._size++}return this}delete(e){return!!this.remove(e)}remove(e){const t=this._map.get(e);if(!t){return undefined}this._map.delete(e);this.removeItem(t);this._size--;return t.value}shift(){if(!this._head&&!this._tail){return undefined}if(!this._head||!this._tail){throw new Error("Invalid list")}const e=this._head;this._map.delete(e.key);this.removeItem(e);this._size--;return e.value}forEach(e,t){const r=this._state;let n=this._head;while(n){if(t){e.bind(t)(n.value,n.key,this)}else{e(n.value,n.key,this)}if(this._state!==r){throw new Error(`LinkedMap got modified during iteration.`)}n=n.next}}keys(){const e=this._state;let t=this._head;const r={[Symbol.iterator]:()=>r,next:()=>{if(this._state!==e){throw new Error(`LinkedMap got modified during iteration.`)}if(t){const e={value:t.key,done:false};t=t.next;return e}else{return{value:undefined,done:true}}}};return r}values(){const e=this._state;let t=this._head;const r={[Symbol.iterator]:()=>r,next:()=>{if(this._state!==e){throw new Error(`LinkedMap got modified during iteration.`)}if(t){const e={value:t.value,done:false};t=t.next;return e}else{return{value:undefined,done:true}}}};return r}entries(){const e=this._state;let t=this._head;const r={[Symbol.iterator]:()=>r,next:()=>{if(this._state!==e){throw new Error(`LinkedMap got modified during iteration.`)}if(t){const e={value:[t.key,t.value],done:false};t=t.next;return e}else{return{value:undefined,done:true}}}};return r}[(r=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size){return}if(e===0){this.clear();return}let t=this._head;let r=this.size;while(t&&r>e){this._map.delete(t.key);t=t.next;r--}this._head=t;this._size=r;if(t){t.previous=undefined}this._state++}addItemFirst(e){if(!this._head&&!this._tail){this._tail=e}else if(!this._head){throw new Error("Invalid list")}else{e.next=this._head;this._head.previous=e}this._head=e;this._state++}addItemLast(e){if(!this._head&&!this._tail){this._head=e}else if(!this._tail){throw new Error("Invalid list")}else{e.previous=this._tail;this._tail.next=e}this._tail=e;this._state++}removeItem(e){if(e===this._head&&e===this._tail){this._head=undefined;this._tail=undefined}else if(e===this._head){if(!e.next){throw new Error("Invalid list")}e.next.previous=undefined;this._head=e.next}else if(e===this._tail){if(!e.previous){throw new Error("Invalid list")}e.previous.next=undefined;this._tail=e.previous}else{const t=e.next;const r=e.previous;if(!t||!r){throw new Error("Invalid list")}t.previous=r;r.next=t}e.next=undefined;e.previous=undefined;this._state++}touch(e,t){if(!this._head||!this._tail){throw new Error("Invalid list")}if(t!==n.First&&t!==n.Last){return}if(t===n.First){if(e===this._head){return}const t=e.next;const r=e.previous;if(e===this._tail){r.next=undefined;this._tail=r}else{t.previous=r;r.next=t}e.previous=undefined;e.next=this._head;this._head.previous=e;this._head=e;this._state++}else if(t===n.Last){if(e===this._tail){return}const t=e.next;const r=e.previous;if(e===this._head){t.previous=undefined;this._head=t}else{t.previous=r;r.next=t}e.next=undefined;e.previous=this._tail;this._tail.next=e;this._tail=e;this._state++}}toJSON(){const e=[];this.forEach(((t,r)=>{e.push([r,t])}));return e}fromJSON(e){this.clear();for(const[t,r]of e){this.set(t,r)}}}t.LinkedMap=s;class i extends s{constructor(e,t=1){super();this._limit=e;this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e;this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1);this.checkTrim()}get(e,t=n.AsNew){return super.get(e,t)}peek(e){return super.get(e,n.None)}set(e,t){super.set(e,t,n.Last);this.checkTrim();return this}checkTrim(){if(this.size>this._limit){this.trimOld(Math.round(this._limit*this._ratio))}}}t.LRUCache=i},89244:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.AbstractMessageBuffer=void 0;const r=13;const n=10;const s="\r\n";class i{constructor(e="utf-8"){this._encoding=e;this._chunks=[];this._totalLength=0}get encoding(){return this._encoding}append(e){const t=typeof e==="string"?this.fromString(e,this._encoding):e;this._chunks.push(t);this._totalLength+=t.byteLength}tryReadHeaders(e=false){if(this._chunks.length===0){return undefined}let t=0;let i=0;let o=0;let a=0;e:while(ithis._totalLength){throw new Error(`Cannot read so many bytes!`)}if(this._chunks[0].byteLength===e){const t=this._chunks[0];this._chunks.shift();this._totalLength-=e;return this.asNative(t)}if(this._chunks[0].byteLength>e){const t=this._chunks[0];const r=this.asNative(t,e);this._chunks[0]=t.slice(e);this._totalLength-=e;return r}const t=this.allocNative(e);let r=0;let n=0;while(e>0){const s=this._chunks[n];if(s.byteLength>e){const i=s.slice(0,e);t.set(i,r);r+=e;this._chunks[n]=s.slice(e);this._totalLength-=e;e-=e}else{t.set(s,r);r+=s.byteLength;this._chunks.shift();this._totalLength-=s.byteLength;e-=s.byteLength}}return t}}t.AbstractMessageBuffer=i},59085:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ReadableStreamMessageReader=t.AbstractMessageReader=t.MessageReader=void 0;const n=r(69590);const s=r(78585);const i=r(62676);const o=r(94323);var a;(function(e){function t(e){let t=e;return t&&s.func(t.listen)&&s.func(t.dispose)&&s.func(t.onError)&&s.func(t.onClose)&&s.func(t.onPartialMessage)}e.is=t})(a||(t.MessageReader=a={}));class c{constructor(){this.errorEmitter=new i.Emitter;this.closeEmitter=new i.Emitter;this.partialMessageEmitter=new i.Emitter}dispose(){this.errorEmitter.dispose();this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(undefined)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){if(e instanceof Error){return e}else{return new Error(`Reader received error. Reason: ${s.string(e.message)?e.message:"unknown"}`)}}}t.AbstractMessageReader=c;var u;(function(e){function t(e){let t;let r;let s;const i=new Map;let o;const a=new Map;if(e===undefined||typeof e==="string"){t=e??"utf-8"}else{t=e.charset??"utf-8";if(e.contentDecoder!==undefined){s=e.contentDecoder;i.set(s.name,s)}if(e.contentDecoders!==undefined){for(const t of e.contentDecoders){i.set(t.name,t)}}if(e.contentTypeDecoder!==undefined){o=e.contentTypeDecoder;a.set(o.name,o)}if(e.contentTypeDecoders!==undefined){for(const t of e.contentTypeDecoders){a.set(t.name,t)}}}if(o===undefined){o=(0,n.default)().applicationJson.decoder;a.set(o.name,o)}return{charset:t,contentDecoder:s,contentDecoders:i,contentTypeDecoder:o,contentTypeDecoders:a}}e.fromOptions=t})(u||(u={}));class f extends c{constructor(e,t){super();this.readable=e;this.options=u.fromOptions(t);this.buffer=(0,n.default)().messageBuffer.create(this.options.charset);this._partialMessageTimeout=1e4;this.nextMessageLength=-1;this.messageToken=0;this.readSemaphore=new o.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1;this.messageToken=0;this.partialMessageTimer=undefined;this.callback=e;const t=this.readable.onData((e=>{this.onData(e)}));this.readable.onError((e=>this.fireError(e)));this.readable.onClose((()=>this.fireClose()));return t}onData(e){try{this.buffer.append(e);while(true){if(this.nextMessageLength===-1){const e=this.buffer.tryReadHeaders(true);if(!e){return}const t=e.get("content-length");if(!t){this.fireError(new Error(`Header must provide a Content-Length property.\n${JSON.stringify(Object.fromEntries(e))}`));return}const r=parseInt(t);if(isNaN(r)){this.fireError(new Error(`Content-Length value must be a number. Got ${t}`));return}this.nextMessageLength=r}const e=this.buffer.tryReadBody(this.nextMessageLength);if(e===undefined){this.setPartialMessageTimer();return}this.clearPartialMessageTimer();this.nextMessageLength=-1;this.readSemaphore.lock((async()=>{const t=this.options.contentDecoder!==undefined?await this.options.contentDecoder.decode(e):e;const r=await this.options.contentTypeDecoder.decode(t,this.options);this.callback(r)})).catch((e=>{this.fireError(e)}))}}catch(t){this.fireError(t)}}clearPartialMessageTimer(){if(this.partialMessageTimer){this.partialMessageTimer.dispose();this.partialMessageTimer=undefined}}setPartialMessageTimer(){this.clearPartialMessageTimer();if(this._partialMessageTimeout<=0){return}this.partialMessageTimer=(0,n.default)().timer.setTimeout(((e,t)=>{this.partialMessageTimer=undefined;if(e===this.messageToken){this.firePartialMessage({messageToken:e,waitingTime:t});this.setPartialMessageTimer()}}),this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout)}}t.ReadableStreamMessageReader=f},23193:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.WriteableStreamMessageWriter=t.AbstractMessageWriter=t.MessageWriter=void 0;const n=r(69590);const s=r(78585);const i=r(94323);const o=r(62676);const a="Content-Length: ";const c="\r\n";var u;(function(e){function t(e){let t=e;return t&&s.func(t.dispose)&&s.func(t.onClose)&&s.func(t.onError)&&s.func(t.write)}e.is=t})(u||(t.MessageWriter=u={}));class f{constructor(){this.errorEmitter=new o.Emitter;this.closeEmitter=new o.Emitter}dispose(){this.errorEmitter.dispose();this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,t,r){this.errorEmitter.fire([this.asError(e),t,r])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(undefined)}asError(e){if(e instanceof Error){return e}else{return new Error(`Writer received error. Reason: ${s.string(e.message)?e.message:"unknown"}`)}}}t.AbstractMessageWriter=f;var l;(function(e){function t(e){if(e===undefined||typeof e==="string"){return{charset:e??"utf-8",contentTypeEncoder:(0,n.default)().applicationJson.encoder}}else{return{charset:e.charset??"utf-8",contentEncoder:e.contentEncoder,contentTypeEncoder:e.contentTypeEncoder??(0,n.default)().applicationJson.encoder}}}e.fromOptions=t})(l||(l={}));class d extends f{constructor(e,t){super();this.writable=e;this.options=l.fromOptions(t);this.errorCount=0;this.writeSemaphore=new i.Semaphore(1);this.writable.onError((e=>this.fireError(e)));this.writable.onClose((()=>this.fireClose()))}async write(e){return this.writeSemaphore.lock((async()=>{const t=this.options.contentTypeEncoder.encode(e,this.options).then((e=>{if(this.options.contentEncoder!==undefined){return this.options.contentEncoder.encode(e)}else{return e}}));return t.then((t=>{const r=[];r.push(a,t.byteLength.toString(),c);r.push(c);return this.doWrite(e,r,t)}),(e=>{this.fireError(e);throw e}))}))}async doWrite(e,t,r){try{await this.writable.write(t.join(""),"ascii");return this.writable.write(r)}catch(n){this.handleError(n,e);return Promise.reject(n)}}handleError(e,t){this.errorCount++;this.fireError(e,t,this.errorCount)}end(){this.writable.end()}}t.WriteableStreamMessageWriter=d},96177:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Message=t.NotificationType9=t.NotificationType8=t.NotificationType7=t.NotificationType6=t.NotificationType5=t.NotificationType4=t.NotificationType3=t.NotificationType2=t.NotificationType1=t.NotificationType0=t.NotificationType=t.RequestType9=t.RequestType8=t.RequestType7=t.RequestType6=t.RequestType5=t.RequestType4=t.RequestType3=t.RequestType2=t.RequestType1=t.RequestType=t.RequestType0=t.AbstractMessageSignature=t.ParameterStructures=t.ResponseError=t.ErrorCodes=void 0;const n=r(78585);var s;(function(e){e.ParseError=-32700;e.InvalidRequest=-32600;e.MethodNotFound=-32601;e.InvalidParams=-32602;e.InternalError=-32603;e.jsonrpcReservedErrorRangeStart=-32099;e.serverErrorStart=-32099;e.MessageWriteError=-32099;e.MessageReadError=-32098;e.PendingResponseRejected=-32097;e.ConnectionInactive=-32096;e.ServerNotInitialized=-32002;e.UnknownErrorCode=-32001;e.jsonrpcReservedErrorRangeEnd=-32e3;e.serverErrorEnd=-32e3})(s||(t.ErrorCodes=s={}));class i extends Error{constructor(e,t,r){super(t);this.code=n.number(e)?e:s.UnknownErrorCode;this.data=r;Object.setPrototypeOf(this,i.prototype)}toJson(){const e={code:this.code,message:this.message};if(this.data!==undefined){e.data=this.data}return e}}t.ResponseError=i;class o{constructor(e){this.kind=e}static is(e){return e===o.auto||e===o.byName||e===o.byPosition}toString(){return this.kind}}t.ParameterStructures=o;o.auto=new o("auto");o.byPosition=new o("byPosition");o.byName=new o("byName");class a{constructor(e,t){this.method=e;this.numberOfParams=t}get parameterStructures(){return o.auto}}t.AbstractMessageSignature=a;class c extends a{constructor(e){super(e,0)}}t.RequestType0=c;class u extends a{constructor(e,t=o.auto){super(e,1);this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}}t.RequestType=u;class f extends a{constructor(e,t=o.auto){super(e,1);this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}}t.RequestType1=f;class l extends a{constructor(e){super(e,2)}}t.RequestType2=l;class d extends a{constructor(e){super(e,3)}}t.RequestType3=d;class h extends a{constructor(e){super(e,4)}}t.RequestType4=h;class p extends a{constructor(e){super(e,5)}}t.RequestType5=p;class g extends a{constructor(e){super(e,6)}}t.RequestType6=g;class m extends a{constructor(e){super(e,7)}}t.RequestType7=m;class y extends a{constructor(e){super(e,8)}}t.RequestType8=y;class b extends a{constructor(e){super(e,9)}}t.RequestType9=b;class v extends a{constructor(e,t=o.auto){super(e,1);this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}}t.NotificationType=v;class _ extends a{constructor(e){super(e,0)}}t.NotificationType0=_;class w extends a{constructor(e,t=o.auto){super(e,1);this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}}t.NotificationType1=w;class T extends a{constructor(e){super(e,2)}}t.NotificationType2=T;class E extends a{constructor(e){super(e,3)}}t.NotificationType3=E;class S extends a{constructor(e){super(e,4)}}t.NotificationType4=S;class k extends a{constructor(e){super(e,5)}}t.NotificationType5=k;class C extends a{constructor(e){super(e,6)}}t.NotificationType6=C;class R extends a{constructor(e){super(e,7)}}t.NotificationType7=R;class M extends a{constructor(e){super(e,8)}}t.NotificationType8=M;class j extends a{constructor(e){super(e,9)}}t.NotificationType9=j;var O;(function(e){function t(e){const t=e;return t&&n.string(t.method)&&(n.string(t.id)||n.number(t.id))}e.isRequest=t;function r(e){const t=e;return t&&n.string(t.method)&&e.id===void 0}e.isNotification=r;function s(e){const t=e;return t&&(t.result!==void 0||!!t.error)&&(n.string(t.id)||n.number(t.id)||t.id===null)}e.isResponse=s})(O||(t.Message=O={}))},69590:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});let r;function n(){if(r===undefined){throw new Error(`No runtime abstraction layer installed`)}return r}(function(e){function t(e){if(e===undefined){throw new Error(`No runtime abstraction layer provided`)}r=e}e.install=t})(n||(n={}));t["default"]=n},94323:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Semaphore=void 0;const n=r(69590);class s{constructor(e=1){if(e<=0){throw new Error("Capacity must be greater than 0")}this._capacity=e;this._active=0;this._waiting=[]}lock(e){return new Promise(((t,r)=>{this._waiting.push({thunk:e,resolve:t,reject:r});this.runNext()}))}get active(){return this._active}runNext(){if(this._waiting.length===0||this._active===this._capacity){return}(0,n.default)().timer.setImmediate((()=>this.doRunNext()))}doRunNext(){if(this._waiting.length===0||this._active===this._capacity){return}const e=this._waiting.shift();this._active++;if(this._active>this._capacity){throw new Error(`To many thunks active`)}try{const t=e.thunk();if(t instanceof Promise){t.then((t=>{this._active--;e.resolve(t);this.runNext()}),(t=>{this._active--;e.reject(t);this.runNext()}))}else{this._active--;e.resolve(t);this.runNext()}}catch(t){this._active--;e.reject(t);this.runNext()}}}t.Semaphore=s},74996:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.SharedArrayReceiverStrategy=t.SharedArraySenderStrategy=void 0;const n=r(59850);var s;(function(e){e.Continue=0;e.Cancelled=1})(s||(s={}));class i{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null){return}const t=new SharedArrayBuffer(4);const r=new Int32Array(t,0,1);r[0]=s.Continue;this.buffers.set(e.id,t);e.$cancellationData=t}async sendCancellation(e,t){const r=this.buffers.get(t);if(r===undefined){return}const n=new Int32Array(r,0,1);Atomics.store(n,0,s.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}}t.SharedArraySenderStrategy=i;class o{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===s.Cancelled}get onCancellationRequested(){throw new Error(`Cancellation over SharedArrayBuffer doesn't support cancellation events`)}}class a{constructor(e){this.token=new o(e)}cancel(){}dispose(){}}class c{constructor(){this.kind="request"}createCancellationTokenSource(e){const t=e.$cancellationData;if(t===undefined){return new n.CancellationTokenSource}return new a(t)}}t.SharedArrayReceiverStrategy=c},96092:(e,t,r)=>{"use strict";r.d(t,{ConsoleLogger:()=>l,listen:()=>d});var n=r(76439);var s=r(96177);class i{constructor(){this.disposables=[]}dispose(){while(this.disposables.length!==0){this.disposables.pop().dispose()}}push(e){const t=this.disposables;t.push(e);return{dispose(){const r=t.indexOf(e);if(r!==-1){t.splice(r,1)}}}}}var o=r(59085);class a extends o.AbstractMessageReader{constructor(e){super();this.socket=e;this.state="initial";this.events=[];this.socket.onMessage((e=>this.readMessage(e)));this.socket.onError((e=>this.fireError(e)));this.socket.onClose(((e,t)=>{if(e!==1e3){const r={name:""+e,message:`Error during socket reconnect: code = ${e}, reason = ${t}`};this.fireError(r)}this.fireClose()}))}listen(e){if(this.state==="initial"){this.state="listening";this.callback=e;while(this.events.length!==0){const e=this.events.pop();if(e.message){this.readMessage(e.message)}else if(e.error){this.fireError(e.error)}else{this.fireClose()}}}return{dispose:()=>{if(this.callback===e){this.callback=undefined}}}}readMessage(e){if(this.state==="initial"){this.events.splice(0,0,{message:e})}else if(this.state==="listening"){const t=JSON.parse(e);this.callback(t)}}fireError(e){if(this.state==="initial"){this.events.splice(0,0,{error:e})}else if(this.state==="listening"){super.fireError(e)}}fireClose(){if(this.state==="initial"){this.events.splice(0,0,{})}else if(this.state==="listening"){super.fireClose()}this.state="closed"}}var c=r(23193);class u extends c.AbstractMessageWriter{constructor(e){super();this.socket=e;this.errorCount=0}end(){}async write(e){try{const t=JSON.stringify(e);this.socket.send(t)}catch(t){this.errorCount++;this.fireError(t,e,this.errorCount)}}}function f(e,t){const r=new a(e);const s=new u(e);const i=(0,n.createMessageConnection)(r,s,t);i.onClose((()=>i.dispose()));return i}class l{error(e){console.error(e)}warn(e){console.warn(e)}info(e){console.info(e)}log(e){console.log(e)}debug(e){console.debug(e)}}function d(e){const{webSocket:t,onConnection:r}=e;const n=e.logger||new l;t.onopen=()=>{const e=h(t);const s=f(e,n);r(s)}}function h(e){return{send:t=>e.send(t),onMessage:t=>{e.onmessage=e=>t(e.data)},onError:t=>{e.onerror=e=>{if("message"in e){t(e.message)}}},onClose:t=>{e.onclose=e=>t(e.code,e.reason)},dispose:()=>e.close()}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/265.6f9e37c0b72db64203b1.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/265.6f9e37c0b72db64203b1.js deleted file mode 100644 index 1fd7af59340e9ea902c1cac3fdc97b821109b8b1..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/265.6f9e37c0b72db64203b1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[265],{50265:(e,t,r)=>{r.r(t);r.d(t,{webIDL:()=>_});function a(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var n=["Clamp","Constructor","EnforceRange","Exposed","ImplicitThis","Global","PrimaryGlobal","LegacyArrayClass","LegacyUnenumerableNamedProperties","LenientThis","NamedConstructor","NewObject","NoInterfaceObject","OverrideBuiltins","PutForwards","Replaceable","SameObject","TreatNonObjectAsNull","TreatNullAs","EmptyString","Unforgeable","Unscopeable"];var i=a(n);var l=["unsigned","short","long","unrestricted","float","double","boolean","byte","octet","Promise","ArrayBuffer","DataView","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray","Float32Array","Float64Array","ByteString","DOMString","USVString","sequence","object","RegExp","Error","DOMException","FrozenArray","any","void"];var c=a(l);var o=["attribute","callback","const","deleter","dictionary","enum","getter","implements","inherit","interface","iterable","legacycaller","maplike","partial","required","serializer","setlike","setter","static","stringifier","typedef","optional","readonly","or"];var f=a(o);var s=["true","false","Infinity","NaN","null"];var m=a(s);var u=["callback","dictionary","enum","interface"];var p=a(u);var y=["typedef"];var b=a(y);var d=/^[:<=>?]/;var v=/^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/;var h=/^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/;var A=/^_?[A-Za-z][0-9A-Z_a-z-]*/;var g=/^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/;var k=/^"[^"]*"/;var D=/^\/\*.*?\*\//;var C=/^\/\*.*/;var E=/^.*?\*\//;function w(e,t){if(e.eatSpace())return null;if(t.inComment){if(e.match(E)){t.inComment=false;return"comment"}e.skipToEnd();return"comment"}if(e.match("//")){e.skipToEnd();return"comment"}if(e.match(D))return"comment";if(e.match(C)){t.inComment=true;return"comment"}if(e.match(/^-?[0-9\.]/,false)){if(e.match(v)||e.match(h))return"number"}if(e.match(k))return"string";if(t.startDef&&e.match(A))return"def";if(t.endDef&&e.match(g)){t.endDef=false;return"def"}if(e.match(f))return"keyword";if(e.match(c)){var r=t.lastToken;var a=(e.match(/^\s*(.+?)\b/,false)||[])[1];if(r===":"||r==="implements"||a==="implements"||a==="="){return"builtin"}else{return"type"}}if(e.match(i))return"builtin";if(e.match(m))return"atom";if(e.match(A))return"variable";if(e.match(d))return"operator";e.next();return null}const _={name:"webidl",startState:function(){return{inComment:false,lastToken:"",startDef:false,endDef:false}},token:function(e,t){var r=w(e,t);if(r){var a=e.current();t.lastToken=a;if(r==="keyword"){t.startDef=p.test(a);t.endDef=t.endDef||b.test(a)}else{t.startDef=false}}return r},languageData:{autocomplete:n.concat(l).concat(o).concat(s)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2658.d1cae1b08b068d864368.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2658.d1cae1b08b068d864368.js deleted file mode 100644 index d849ade0cc03d6690f44316c26e07f89df96ce8e..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2658.d1cae1b08b068d864368.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2658],{12658:(e,t,r)=>{r.r(t);r.d(t,{mumps:()=>f});function n(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var a=new RegExp("^[\\+\\-\\*/&#!_?\\\\<>=\\'\\[\\]]");var o=new RegExp("^(('=)|(<=)|(>=)|('>)|('<)|([[)|(]])|(^$))");var $=new RegExp("^[\\.,:]");var i=new RegExp("[()]");var c=new RegExp("^[%A-Za-z][A-Za-z0-9]*");var l=["break","close","do","else","for","goto","halt","hang","if","job","kill","lock","merge","new","open","quit","read","set","tcommit","trollback","tstart","use","view","write","xecute","b","c","d","e","f","g","h","i","j","k","l","m","n","o","q","r","s","tc","tro","ts","u","v","w","x"];var s=["\\$ascii","\\$char","\\$data","\\$ecode","\\$estack","\\$etrap","\\$extract","\\$find","\\$fnumber","\\$get","\\$horolog","\\$io","\\$increment","\\$job","\\$justify","\\$length","\\$name","\\$next","\\$order","\\$piece","\\$qlength","\\$qsubscript","\\$query","\\$quit","\\$random","\\$reverse","\\$select","\\$stack","\\$test","\\$text","\\$translate","\\$view","\\$x","\\$y","\\$a","\\$c","\\$d","\\$e","\\$ec","\\$es","\\$et","\\$f","\\$fn","\\$g","\\$h","\\$i","\\$j","\\$l","\\$n","\\$na","\\$o","\\$p","\\$q","\\$ql","\\$qs","\\$r","\\$re","\\$s","\\$st","\\$t","\\$tr","\\$v","\\$z"];var m=n(s);var u=n(l);function d(e,t){if(e.sol()){t.label=true;t.commandMode=0}var r=e.peek();if(r==" "||r=="\t"){t.label=false;if(t.commandMode==0)t.commandMode=1;else if(t.commandMode<0||t.commandMode==2)t.commandMode=0}else if(r!="."&&t.commandMode>0){if(r==":")t.commandMode=-1;else t.commandMode=2}if(r==="("||r==="\t")t.label=false;if(r===";"){e.skipToEnd();return"comment"}if(e.match(/^[-+]?\d+(\.\d+)?([eE][-+]?\d+)?/))return"number";if(r=='"'){if(e.skipTo('"')){e.next();return"string"}else{e.skipToEnd();return"error"}}if(e.match(o)||e.match(a))return"operator";if(e.match($))return null;if(i.test(r)){e.next();return"bracket"}if(t.commandMode>0&&e.match(u))return"controlKeyword";if(e.match(m))return"builtin";if(e.match(c))return"variable";if(r==="$"||r==="^"){e.next();return"builtin"}if(r==="@"){e.next();return"string.special"}if(/[\w%]/.test(r)){e.eatWhile(/[\w%]/);return"variable"}e.next();return"error"}const f={name:"mumps",startState:function(){return{label:false,commandMode:0}},token:function(e,t){var r=d(e,t);if(t.label)return"tag";return r}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/26683bf201fb258a2237.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/26683bf201fb258a2237.woff deleted file mode 100644 index eb66c4617f4772e838453ff7403b87cc0c51b86f..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/26683bf201fb258a2237.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2681.a47f40e38ecd31ccd687.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2681.a47f40e38ecd31ccd687.js deleted file mode 100644 index 5e15ae0d0d8995650ff1d15736e262f92c3a8277..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2681.a47f40e38ecd31ccd687.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2681],{82681:(e,t,r)=>{r.r(t);r.d(t,{yacas:()=>h});function n(e){var t={},r=e.split(" ");for(var n=0;n|<|&|\||_|`|'|\^|\?|!|%|#)/,true,false)){return"operator"}return"error"}function p(e,t){var r,n=false,a=false;while((r=e.next())!=null){if(r==='"'&&!a){n=true;break}a=!a&&r==="\\"}if(n&&!a){t.tokenize=f}return"string"}function k(e,t){var r,n;while((n=e.next())!=null){if(r==="*"&&n==="/"){t.tokenize=f;break}r=n}return"comment"}function m(e){var t=null;if(e.scopes.length>0)t=e.scopes[e.scopes.length-1];return t}const h={name:"yacas",startState:function(){return{tokenize:f,scopes:[]}},token:function(e,t){if(e.eatSpace())return null;return t.tokenize(e,t)},indent:function(e,t,r){if(e.tokenize!==f&&e.tokenize!==null)return null;var n=0;if(t==="]"||t==="];"||t==="}"||t==="};"||t===");")n=-1;return(e.scopes.length+n)*r.unit},languageData:{electricInput:/[{}\[\]()\;]/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2707.61050e600b0aa9624127.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2707.61050e600b0aa9624127.js deleted file mode 100644 index e96ee69e09421c892820b3b80e504ae7f7b0e782..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2707.61050e600b0aa9624127.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2707],{59171:function(e,t){var r=this&&this.__values||function(e){var t=typeof Symbol==="function"&&Symbol.iterator,r=t&&e[t],a=0;if(r)return r.call(e);if(e&&typeof e.length==="number")return{next:function(){if(e&&a>=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var a=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,i=[],o;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)i.push(n.value)}catch(s){o={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(o)throw o.error}}return i};var n=this&&this.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var a=0,n=t.length,i;a0)&&!(n=a.next()).done)i.push(n.value)}catch(s){o={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(o)throw o.error}}return i};var n=this&&this.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var a=0,n=t.length,i;a0)&&!(n=a.next()).done)i.push(n.value)}catch(s){o={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(o)throw o.error}}return i};var n=this&&this.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var a=0,n=t.length,i;a1){r.autoOP=false}}var n=e.create("token","mi",r,t);e.Push(n)}e.variable=t;function r(e,t){var r;var a=e.configuration.options["digits"];var n=e.string.slice(e.i-1).match(a);var i=l.default.getFontDef(e);if(n){r=e.create("token","mn",i,n[0].replace(/[{}]/g,""));e.i+=n[0].length-1}else{r=e.create("token","mo",i,t)}e.Push(r)}e.digit=r;function i(e,t){var r=e.GetCS();e.parse("macro",[e,r])}e.controlSequence=i;function u(e,t){var r=t.attributes||{mathvariant:s.TexConstant.Variant.ITALIC};var a=e.create("token","mi",r,t.char);e.Push(a)}e.mathchar0mi=u;function c(e,t){var r=t.attributes||{};r["stretchy"]=false;var a=e.create("token","mo",r,t.char);o.default.setProperty(a,"fixStretchy",true);e.configuration.addNode("fixStretchy",a);e.Push(a)}e.mathchar0mo=c;function f(e,t){var r=t.attributes||{mathvariant:s.TexConstant.Variant.NORMAL};if(e.stack.env["font"]){r["mathvariant"]=e.stack.env["font"]}var a=e.create("token","mi",r,t.char);e.Push(a)}e.mathchar7=f;function p(e,t){var r=t.attributes||{};r=Object.assign({fence:false,stretchy:false},r);var a=e.create("token","mo",r,t.char);e.Push(a)}e.delimiter=p;function h(e,t,r,i){var o=i[0];var s=e.itemFactory.create("begin").setProperties({name:t,end:o});s=r.apply(void 0,n([e,s],a(i.slice(1)),false));e.Push(s)}e.environment=h})(u||(u={}));t["default"]=u},24404:function(e,t,r){var a=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,i=[],o;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)i.push(n.value)}catch(s){o={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(o)throw o.error}}return i};var n=this&&this.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var a=0,n=t.length,i;a=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var s=o(r(37564));var l=r(55361);var u=o(r(72691));var c=r(34981);var f=function(){function e(e,t){if(t===void 0){t=[]}this.options={};this.packageData=new Map;this.parsers=[];this.root=null;this.nodeLists={};this.error=false;this.handlers=e.handlers;this.nodeFactory=new l.NodeFactory;this.nodeFactory.configuration=this;this.nodeFactory.setCreators(e.nodes);this.itemFactory=new s.default(e.items);this.itemFactory.configuration=this;c.defaultOptions.apply(void 0,n([this.options],a(t),false));(0,c.defaultOptions)(this.options,e.options)}e.prototype.pushParser=function(e){this.parsers.unshift(e)};e.prototype.popParser=function(){this.parsers.shift()};Object.defineProperty(e.prototype,"parser",{get:function(){return this.parsers[0]},enumerable:false,configurable:true});e.prototype.clear=function(){this.parsers=[];this.root=null;this.nodeLists={};this.error=false;this.tags.resetTag()};e.prototype.addNode=function(e,t){var r=this.nodeLists[e];if(!r){r=this.nodeLists[e]=[]}r.push(t);if(t.kind!==e){var a=u.default.getProperty(t,"in-lists")||"";var n=(a?a.split(/,/):[]).concat(e).join(",");u.default.setProperty(t,"in-lists",n)}};e.prototype.getList=function(e){var t,r;var a=this.nodeLists[e]||[];var n=[];try{for(var o=i(a),s=o.next();!s.done;s=o.next()){var l=s.value;if(this.inTree(l)){n.push(l)}}}catch(u){t={error:u}}finally{try{if(s&&!s.done&&(r=o.return))r.call(o)}finally{if(t)throw t.error}}this.nodeLists[e]=n;return n};e.prototype.removeFromList=function(e,t){var r,a;var n=this.nodeLists[e]||[];try{for(var o=i(t),s=o.next();!s.done;s=o.next()){var l=s.value;var u=n.indexOf(l);if(u>=0){n.splice(u,1)}}}catch(c){r={error:c}}finally{try{if(s&&!s.done&&(a=o.return))a.call(o)}finally{if(r)throw r.error}}};e.prototype.inTree=function(e){while(e&&e!==this.root){e=e.parent}return!!e};return e}();t["default"]=f},37720:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,i=[],o;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)i.push(n.value)}catch(s){o={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(o)throw o.error}}return i};var i=this&&this.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var a=0,n=t.length,i;a=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BaseItem=t.MmlStack=void 0;var l=s(r(98770));var u=function(){function e(e){this._nodes=e}Object.defineProperty(e.prototype,"nodes",{get:function(){return this._nodes},enumerable:false,configurable:true});e.prototype.Push=function(){var e;var t=[];for(var r=0;r{Object.defineProperty(t,"__esModule",{value:true});t.TexConstant=void 0;var r;(function(e){e.Variant={NORMAL:"normal",BOLD:"bold",ITALIC:"italic",BOLDITALIC:"bold-italic",DOUBLESTRUCK:"double-struck",FRAKTUR:"fraktur",BOLDFRAKTUR:"bold-fraktur",SCRIPT:"script",BOLDSCRIPT:"bold-script",SANSSERIF:"sans-serif",BOLDSANSSERIF:"bold-sans-serif",SANSSERIFITALIC:"sans-serif-italic",SANSSERIFBOLDITALIC:"sans-serif-bold-italic",MONOSPACE:"monospace",INITIAL:"inital",TAILED:"tailed",LOOPED:"looped",STRETCHED:"stretched",CALLIGRAPHIC:"-tex-calligraphic",BOLDCALLIGRAPHIC:"-tex-bold-calligraphic",OLDSTYLE:"-tex-oldstyle",BOLDOLDSTYLE:"-tex-bold-oldstyle",MATHITALIC:"-tex-mathit"};e.Form={PREFIX:"prefix",INFIX:"infix",POSTFIX:"postfix"};e.LineBreak={AUTO:"auto",NEWLINE:"newline",NOBREAK:"nobreak",GOODBREAK:"goodbreak",BADBREAK:"badbreak"};e.LineBreakStyle={BEFORE:"before",AFTER:"after",DUPLICATE:"duplicate",INFIXLINBREAKSTYLE:"infixlinebreakstyle"};e.IndentAlign={LEFT:"left",CENTER:"center",RIGHT:"right",AUTO:"auto",ID:"id",INDENTALIGN:"indentalign"};e.IndentShift={INDENTSHIFT:"indentshift"};e.LineThickness={THIN:"thin",MEDIUM:"medium",THICK:"thick"};e.Notation={LONGDIV:"longdiv",ACTUARIAL:"actuarial",PHASORANGLE:"phasorangle",RADICAL:"radical",BOX:"box",ROUNDEDBOX:"roundedbox",CIRCLE:"circle",LEFT:"left",RIGHT:"right",TOP:"top",BOTTOM:"bottom",UPDIAGONALSTRIKE:"updiagonalstrike",DOWNDIAGONALSTRIKE:"downdiagonalstrike",VERTICALSTRIKE:"verticalstrike",HORIZONTALSTRIKE:"horizontalstrike",NORTHEASTARROW:"northeastarrow",MADRUWB:"madruwb",UPDIAGONALARROW:"updiagonalarrow"};e.Align={TOP:"top",BOTTOM:"bottom",CENTER:"center",BASELINE:"baseline",AXIS:"axis",LEFT:"left",RIGHT:"right"};e.Lines={NONE:"none",SOLID:"solid",DASHED:"dashed"};e.Side={LEFT:"left",RIGHT:"right",LEFTOVERLAP:"leftoverlap",RIGHTOVERLAP:"rightoverlap"};e.Width={AUTO:"auto",FIT:"fit"};e.Actiontype={TOGGLE:"toggle",STATUSLINE:"statusline",TOOLTIP:"tooltip",INPUT:"input"};e.Overflow={LINBREAK:"linebreak",SCROLL:"scroll",ELIDE:"elide",TRUNCATE:"truncate",SCALE:"scale"};e.Unit={EM:"em",EX:"ex",PX:"px",IN:"in",CM:"cm",MM:"mm",PT:"pt",PC:"pc"}})(r=t.TexConstant||(t.TexConstant={}))},11252:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);i(t,e);return t};var s=this&&this.__values||function(e){var t=typeof Symbol==="function"&&Symbol.iterator,r=t&&e[t],a=0;if(r)return r.call(e);if(e&&typeof e.length==="number")return{next:function(){if(e&&a>=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};var l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var u;Object.defineProperty(t,"__esModule",{value:true});t.BaseConfiguration=t.BaseTags=t.Other=void 0;var c=r(56441);var f=r(18437);var p=l(r(98770));var h=l(r(72691));var d=r(80209);var m=o(r(94650));var v=r(17782);r(69447);var y=r(56893);new d.CharacterMap("remap",null,{"-":"−","*":"∗","`":"‘"});function g(e,t){var r=e.stack.env["font"];var a=r?{mathvariant:e.stack.env["font"]}:{};var n=f.MapHandler.getMap("remap").lookup(t);var i=(0,y.getRange)(t);var o=i?i[3]:"mo";var s=e.create("token",o,a,n?n.char:t);i[4]&&s.attributes.set("mathvariant",i[4]);if(o==="mo"){h.default.setProperty(s,"fixStretchy",true);e.configuration.addNode("fixStretchy",s)}e.Push(s)}t.Other=g;function b(e,t){throw new p.default("UndefinedControlSequence","Undefined control sequence %1","\\"+t)}function A(e,t){throw new p.default("UnknownEnv","Unknown environment '%1'",t)}function S(e){var t,r;var a=e.data;try{for(var n=s(a.getList("nonscript")),i=n.next();!i.done;i=n.next()){var o=i.value;if(o.attributes.get("scriptlevel")>0){var l=o.parent;l.childNodes.splice(l.childIndex(o),1);a.removeFromList(o.kind,[o]);if(o.isKind("mrow")){var u=o.childNodes[0];a.removeFromList("mstyle",[u]);a.removeFromList("mspace",u.childNodes[0].childNodes)}}else if(o.isKind("mrow")){o.parent.replaceChild(o.childNodes[0],o);a.removeFromList("mrow",[o])}}}catch(c){t={error:c}}finally{try{if(i&&!i.done&&(r=n.return))r.call(n)}finally{if(t)throw t.error}}}var P=function(e){a(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(v.AbstractTags);t.BaseTags=P;t.BaseConfiguration=c.Configuration.create("base",{handler:{character:["command","special","letter","digit"],delimiter:["delimiter"],macro:["delimiter","macros","mathchar0mi","mathchar0mo","mathchar7"],environment:["environment"]},fallback:{character:g,macro:b,environment:A},items:(u={},u[m.StartItem.prototype.kind]=m.StartItem,u[m.StopItem.prototype.kind]=m.StopItem,u[m.OpenItem.prototype.kind]=m.OpenItem,u[m.CloseItem.prototype.kind]=m.CloseItem,u[m.PrimeItem.prototype.kind]=m.PrimeItem,u[m.SubsupItem.prototype.kind]=m.SubsupItem,u[m.OverItem.prototype.kind]=m.OverItem,u[m.LeftItem.prototype.kind]=m.LeftItem,u[m.Middle.prototype.kind]=m.Middle,u[m.RightItem.prototype.kind]=m.RightItem,u[m.BeginItem.prototype.kind]=m.BeginItem,u[m.EndItem.prototype.kind]=m.EndItem,u[m.StyleItem.prototype.kind]=m.StyleItem,u[m.PositionItem.prototype.kind]=m.PositionItem,u[m.CellItem.prototype.kind]=m.CellItem,u[m.MmlItem.prototype.kind]=m.MmlItem,u[m.FnItem.prototype.kind]=m.FnItem,u[m.NotItem.prototype.kind]=m.NotItem,u[m.NonscriptItem.prototype.kind]=m.NonscriptItem,u[m.DotsItem.prototype.kind]=m.DotsItem,u[m.ArrayItem.prototype.kind]=m.ArrayItem,u[m.EqnArrayItem.prototype.kind]=m.EqnArrayItem,u[m.EquationItem.prototype.kind]=m.EquationItem,u),options:{maxMacros:1e3,baseURL:typeof document==="undefined"||document.getElementsByTagName("base").length===0?"":String(document.location).replace(/#.*$/,"")},tags:{base:P},postprocessors:[[S,-4]]})},94650:function(e,t,r){var a=this&&this.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))e[r]=t[r]};return e(t,r)};return function(t,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function a(){this.constructor=t}t.prototype=r===null?Object.create(r):(a.prototype=r.prototype,new a)}}();var n=this&&this.__read||function(e,t){var r=typeof Symbol==="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),n,i=[],o;try{while((t===void 0||t-- >0)&&!(n=a.next()).done)i.push(n.value)}catch(s){o={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(o)throw o.error}}return i};var i=this&&this.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var a=0,n=t.length,i;athis.maxrow){this.maxrow=this.row.length}var e="mtr";var t=this.factory.configuration.tags.getTag();if(t){this.row=[t].concat(this.row);e="mlabeledtr"}this.factory.configuration.tags.clearTag();var r=this.create("node",e,this.row);this.table.push(r);this.row=[]};t.prototype.EndTable=function(){e.prototype.EndTable.call(this);this.factory.configuration.tags.end();this.extendArray("columnalign",this.maxrow);this.extendArray("columnwidth",this.maxrow);this.extendArray("columnspacing",this.maxrow-1)};t.prototype.extendArray=function(e,t){if(!this.arraydef[e])return;var r=this.arraydef[e].split(/ /);var a=i([],n(r),false);if(a.length>1){while(a.length",succ:"≻",prec:"≺",approx:"≈",succeq:"⪰",preceq:"⪯",supset:"⊃",subset:"⊂",supseteq:"⊇",subseteq:"⊆",in:"∈",ni:"∋",notin:"∉",owns:"∋",gg:"≫",ll:"≪",sim:"∼",simeq:"≃",perp:"⊥",equiv:"≡",asymp:"≍",smile:"⌣",frown:"⌢",ne:"≠",neq:"≠",cong:"≅",doteq:"≐",bowtie:"⋈",models:"⊨",notChar:"⧸",Leftrightarrow:"⇔",Leftarrow:"⇐",Rightarrow:"⇒",leftrightarrow:"↔",leftarrow:"←",gets:"←",rightarrow:"→",to:["→",{accent:false}],mapsto:"↦",leftharpoonup:"↼",leftharpoondown:"↽",rightharpoonup:"⇀",rightharpoondown:"⇁",nearrow:"↗",searrow:"↘",nwarrow:"↖",swarrow:"↙",rightleftharpoons:"⇌",hookrightarrow:"↪",hookleftarrow:"↩",longleftarrow:"⟵",Longleftarrow:"⟸",longrightarrow:"⟶",Longrightarrow:"⟹",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",ldots:"…",cdots:"⋯",vdots:"⋮",ddots:"⋱",dotsc:"…",dotsb:"⋯",dotsm:"⋯",dotsi:"⋯",dotso:"…",ldotp:[".",{texClass:p.TEXCLASS.PUNCT}],cdotp:["⋅",{texClass:p.TEXCLASS.PUNCT}],colon:[":",{texClass:p.TEXCLASS.PUNCT}]});new s.CharacterMap("mathchar7",c.default.mathchar7,{Gamma:"Γ",Delta:"Δ",Theta:"Θ",Lambda:"Λ",Xi:"Ξ",Pi:"Π",Sigma:"Σ",Upsilon:"Υ",Phi:"Φ",Psi:"Ψ",Omega:"Ω",_:"_","#":"#",$:"$","%":"%","&":"&",And:"&"});new s.DelimiterMap("delimiter",c.default.delimiter,{"(":"(",")":")","[":"[","]":"]","<":"⟨",">":"⟩","\\lt":"⟨","\\gt":"⟩","/":"/","|":["|",{texClass:p.TEXCLASS.ORD}],".":"","\\\\":"\\","\\lmoustache":"⎰","\\rmoustache":"⎱","\\lgroup":"⟮","\\rgroup":"⟯","\\arrowvert":"⏐","\\Arrowvert":"‖","\\bracevert":"⎪","\\Vert":["‖",{texClass:p.TEXCLASS.ORD}],"\\|":["‖",{texClass:p.TEXCLASS.ORD}],"\\vert":["|",{texClass:p.TEXCLASS.ORD}],"\\uparrow":"↑","\\downarrow":"↓","\\updownarrow":"↕","\\Uparrow":"⇑","\\Downarrow":"⇓","\\Updownarrow":"⇕","\\backslash":"\\","\\rangle":"⟩","\\langle":"⟨","\\rbrace":"}","\\lbrace":"{","\\}":"}","\\{":"{","\\rceil":"⌉","\\lceil":"⌈","\\rfloor":"⌋","\\lfloor":"⌊","\\lbrack":"[","\\rbrack":"]"});new s.CommandMap("macros",{displaystyle:["SetStyle","D",true,0],textstyle:["SetStyle","T",false,0],scriptstyle:["SetStyle","S",false,1],scriptscriptstyle:["SetStyle","SS",false,2],rm:["SetFont",l.TexConstant.Variant.NORMAL],mit:["SetFont",l.TexConstant.Variant.ITALIC],oldstyle:["SetFont",l.TexConstant.Variant.OLDSTYLE],cal:["SetFont",l.TexConstant.Variant.CALLIGRAPHIC],it:["SetFont",l.TexConstant.Variant.MATHITALIC],bf:["SetFont",l.TexConstant.Variant.BOLD],bbFont:["SetFont",l.TexConstant.Variant.DOUBLESTRUCK],scr:["SetFont",l.TexConstant.Variant.SCRIPT],frak:["SetFont",l.TexConstant.Variant.FRAKTUR],sf:["SetFont",l.TexConstant.Variant.SANSSERIF],tt:["SetFont",l.TexConstant.Variant.MONOSPACE],mathrm:["MathFont",l.TexConstant.Variant.NORMAL],mathup:["MathFont",l.TexConstant.Variant.NORMAL],mathnormal:["MathFont",""],mathbf:["MathFont",l.TexConstant.Variant.BOLD],mathbfup:["MathFont",l.TexConstant.Variant.BOLD],mathit:["MathFont",l.TexConstant.Variant.MATHITALIC],mathbfit:["MathFont",l.TexConstant.Variant.BOLDITALIC],mathbb:["MathFont",l.TexConstant.Variant.DOUBLESTRUCK],Bbb:["MathFont",l.TexConstant.Variant.DOUBLESTRUCK],mathfrak:["MathFont",l.TexConstant.Variant.FRAKTUR],mathbffrak:["MathFont",l.TexConstant.Variant.BOLDFRAKTUR],mathscr:["MathFont",l.TexConstant.Variant.SCRIPT],mathbfscr:["MathFont",l.TexConstant.Variant.BOLDSCRIPT],mathsf:["MathFont",l.TexConstant.Variant.SANSSERIF],mathsfup:["MathFont",l.TexConstant.Variant.SANSSERIF],mathbfsf:["MathFont",l.TexConstant.Variant.BOLDSANSSERIF],mathbfsfup:["MathFont",l.TexConstant.Variant.BOLDSANSSERIF],mathsfit:["MathFont",l.TexConstant.Variant.SANSSERIFITALIC],mathbfsfit:["MathFont",l.TexConstant.Variant.SANSSERIFBOLDITALIC],mathtt:["MathFont",l.TexConstant.Variant.MONOSPACE],mathcal:["MathFont",l.TexConstant.Variant.CALLIGRAPHIC],mathbfcal:["MathFont",l.TexConstant.Variant.BOLDCALLIGRAPHIC],symrm:["MathFont",l.TexConstant.Variant.NORMAL],symup:["MathFont",l.TexConstant.Variant.NORMAL],symnormal:["MathFont",""],symbf:["MathFont",l.TexConstant.Variant.BOLD],symbfup:["MathFont",l.TexConstant.Variant.BOLD],symit:["MathFont",l.TexConstant.Variant.ITALIC],symbfit:["MathFont",l.TexConstant.Variant.BOLDITALIC],symbb:["MathFont",l.TexConstant.Variant.DOUBLESTRUCK],symfrak:["MathFont",l.TexConstant.Variant.FRAKTUR],symbffrak:["MathFont",l.TexConstant.Variant.BOLDFRAKTUR],symscr:["MathFont",l.TexConstant.Variant.SCRIPT],symbfscr:["MathFont",l.TexConstant.Variant.BOLDSCRIPT],symsf:["MathFont",l.TexConstant.Variant.SANSSERIF],symsfup:["MathFont",l.TexConstant.Variant.SANSSERIF],symbfsf:["MathFont",l.TexConstant.Variant.BOLDSANSSERIF],symbfsfup:["MathFont",l.TexConstant.Variant.BOLDSANSSERIF],symsfit:["MathFont",l.TexConstant.Variant.SANSSERIFITALIC],symbfsfit:["MathFont",l.TexConstant.Variant.SANSSERIFBOLDITALIC],symtt:["MathFont",l.TexConstant.Variant.MONOSPACE],symcal:["MathFont",l.TexConstant.Variant.CALLIGRAPHIC],symbfcal:["MathFont",l.TexConstant.Variant.BOLDCALLIGRAPHIC],textrm:["HBox",null,l.TexConstant.Variant.NORMAL],textup:["HBox",null,l.TexConstant.Variant.NORMAL],textnormal:["HBox"],textit:["HBox",null,l.TexConstant.Variant.ITALIC],textbf:["HBox",null,l.TexConstant.Variant.BOLD],textsf:["HBox",null,l.TexConstant.Variant.SANSSERIF],texttt:["HBox",null,l.TexConstant.Variant.MONOSPACE],tiny:["SetSize",.5],Tiny:["SetSize",.6],scriptsize:["SetSize",.7],small:["SetSize",.85],normalsize:["SetSize",1],large:["SetSize",1.2],Large:["SetSize",1.44],LARGE:["SetSize",1.73],huge:["SetSize",2.07],Huge:["SetSize",2.49],arcsin:"NamedFn",arccos:"NamedFn",arctan:"NamedFn",arg:"NamedFn",cos:"NamedFn",cosh:"NamedFn",cot:"NamedFn",coth:"NamedFn",csc:"NamedFn",deg:"NamedFn",det:"NamedOp",dim:"NamedFn",exp:"NamedFn",gcd:"NamedOp",hom:"NamedFn",inf:"NamedOp",ker:"NamedFn",lg:"NamedFn",lim:"NamedOp",liminf:["NamedOp","lim inf"],limsup:["NamedOp","lim sup"],ln:"NamedFn",log:"NamedFn",max:"NamedOp",min:"NamedOp",Pr:"NamedOp",sec:"NamedFn",sin:"NamedFn",sinh:"NamedFn",sup:"NamedOp",tan:"NamedFn",tanh:"NamedFn",limits:["Limits",1],nolimits:["Limits",0],overline:["UnderOver","2015"],underline:["UnderOver","2015"],overbrace:["UnderOver","23DE",1],underbrace:["UnderOver","23DF",1],overparen:["UnderOver","23DC"],underparen:["UnderOver","23DD"],overrightarrow:["UnderOver","2192"],underrightarrow:["UnderOver","2192"],overleftarrow:["UnderOver","2190"],underleftarrow:["UnderOver","2190"],overleftrightarrow:["UnderOver","2194"],underleftrightarrow:["UnderOver","2194"],overset:"Overset",underset:"Underset",overunderset:"Overunderset",stackrel:["Macro","\\mathrel{\\mathop{#2}\\limits^{#1}}",2],stackbin:["Macro","\\mathbin{\\mathop{#2}\\limits^{#1}}",2],over:"Over",overwithdelims:"Over",atop:"Over",atopwithdelims:"Over",above:"Over",abovewithdelims:"Over",brace:["Over","{","}"],brack:["Over","[","]"],choose:["Over","(",")"],frac:"Frac",sqrt:"Sqrt",root:"Root",uproot:["MoveRoot","upRoot"],leftroot:["MoveRoot","leftRoot"],left:"LeftRight",right:"LeftRight",middle:"LeftRight",llap:"Lap",rlap:"Lap",raise:"RaiseLower",lower:"RaiseLower",moveleft:"MoveLeftRight",moveright:"MoveLeftRight",",":["Spacer",h.MATHSPACE.thinmathspace],":":["Spacer",h.MATHSPACE.mediummathspace],">":["Spacer",h.MATHSPACE.mediummathspace],";":["Spacer",h.MATHSPACE.thickmathspace],"!":["Spacer",h.MATHSPACE.negativethinmathspace],enspace:["Spacer",.5],quad:["Spacer",1],qquad:["Spacer",2],thinspace:["Spacer",h.MATHSPACE.thinmathspace],negthinspace:["Spacer",h.MATHSPACE.negativethinmathspace],hskip:"Hskip",hspace:"Hskip",kern:"Hskip",mskip:"Hskip",mspace:"Hskip",mkern:"Hskip",rule:"rule",Rule:["Rule"],Space:["Rule","blank"],nonscript:"Nonscript",big:["MakeBig",p.TEXCLASS.ORD,.85],Big:["MakeBig",p.TEXCLASS.ORD,1.15],bigg:["MakeBig",p.TEXCLASS.ORD,1.45],Bigg:["MakeBig",p.TEXCLASS.ORD,1.75],bigl:["MakeBig",p.TEXCLASS.OPEN,.85],Bigl:["MakeBig",p.TEXCLASS.OPEN,1.15],biggl:["MakeBig",p.TEXCLASS.OPEN,1.45],Biggl:["MakeBig",p.TEXCLASS.OPEN,1.75],bigr:["MakeBig",p.TEXCLASS.CLOSE,.85],Bigr:["MakeBig",p.TEXCLASS.CLOSE,1.15],biggr:["MakeBig",p.TEXCLASS.CLOSE,1.45],Biggr:["MakeBig",p.TEXCLASS.CLOSE,1.75],bigm:["MakeBig",p.TEXCLASS.REL,.85],Bigm:["MakeBig",p.TEXCLASS.REL,1.15],biggm:["MakeBig",p.TEXCLASS.REL,1.45],Biggm:["MakeBig",p.TEXCLASS.REL,1.75],mathord:["TeXAtom",p.TEXCLASS.ORD],mathop:["TeXAtom",p.TEXCLASS.OP],mathopen:["TeXAtom",p.TEXCLASS.OPEN],mathclose:["TeXAtom",p.TEXCLASS.CLOSE],mathbin:["TeXAtom",p.TEXCLASS.BIN],mathrel:["TeXAtom",p.TEXCLASS.REL],mathpunct:["TeXAtom",p.TEXCLASS.PUNCT],mathinner:["TeXAtom",p.TEXCLASS.INNER],vcenter:["TeXAtom",p.TEXCLASS.VCENTER],buildrel:"BuildRel",hbox:["HBox",0],text:"HBox",mbox:["HBox",0],fbox:"FBox",boxed:["Macro","\\fbox{$\\displaystyle{#1}$}",1],framebox:"FrameBox",strut:"Strut",mathstrut:["Macro","\\vphantom{(}"],phantom:"Phantom",vphantom:["Phantom",1,0],hphantom:["Phantom",0,1],smash:"Smash",acute:["Accent","00B4"],grave:["Accent","0060"],ddot:["Accent","00A8"],tilde:["Accent","007E"],bar:["Accent","00AF"],breve:["Accent","02D8"],check:["Accent","02C7"],hat:["Accent","005E"],vec:["Accent","2192"],dot:["Accent","02D9"],widetilde:["Accent","007E",1],widehat:["Accent","005E",1],matrix:"Matrix",array:"Matrix",pmatrix:["Matrix","(",")"],cases:["Matrix","{","","left left",null,".1em",null,true],eqalign:["Matrix",null,null,"right left",(0,h.em)(h.MATHSPACE.thickmathspace),".5em","D"],displaylines:["Matrix",null,null,"center",null,".5em","D"],cr:"Cr","\\":"CrLaTeX",newline:["CrLaTeX",true],hline:["HLine","solid"],hdashline:["HLine","dashed"],eqalignno:["Matrix",null,null,"right left",(0,h.em)(h.MATHSPACE.thickmathspace),".5em","D",null,"right"],leqalignno:["Matrix",null,null,"right left",(0,h.em)(h.MATHSPACE.thickmathspace),".5em","D",null,"left"],hfill:"HFill",hfil:"HFill",hfilll:"HFill",bmod:["Macro",'\\mmlToken{mo}[lspace="thickmathspace"'+' rspace="thickmathspace"]{mod}'],pmod:["Macro","\\pod{\\mmlToken{mi}{mod}\\kern 6mu #1}",1],mod:["Macro","\\mathchoice{\\kern18mu}{\\kern12mu}"+"{\\kern12mu}{\\kern12mu}\\mmlToken{mi}{mod}\\,\\,#1",1],pod:["Macro","\\mathchoice{\\kern18mu}{\\kern8mu}"+"{\\kern8mu}{\\kern8mu}(#1)",1],iff:["Macro","\\;\\Longleftrightarrow\\;"],skew:["Macro","{{#2{#3\\mkern#1mu}\\mkern-#1mu}{}}",3],pmb:["Macro","\\rlap{#1}\\kern1px{#1}",1],TeX:["Macro","T\\kern-.14em\\lower.5ex{E}\\kern-.115em X"],LaTeX:["Macro","L\\kern-.325em\\raise.21em"+"{\\scriptstyle{A}}\\kern-.17em\\TeX"]," ":["Macro","\\text{ }"],not:"Not",dots:"Dots",space:"Tilde"," ":"Tilde",begin:"BeginEnd",end:"BeginEnd",label:"HandleLabel",ref:"HandleRef",nonumber:"HandleNoTag",mathchoice:"MathChoice",mmlToken:"MmlToken"},u.default);new s.EnvironmentMap("environment",c.default.environment,{array:["AlignedArray"],equation:["Equation",null,true],eqnarray:["EqnArray",null,true,true,"rcl",f.default.cols(0,h.MATHSPACE.thickmathspace),".5em"]},u.default);new s.CharacterMap("not_remap",null,{"←":"↚","→":"↛","↔":"↮","⇐":"⇍","⇒":"⇏","⇔":"⇎","∈":"∉","∋":"∌","∣":"∤","∥":"∦","∼":"≁","~":"≁","≃":"≄","≅":"≇","≈":"≉","≍":"≭","=":"≠","≡":"≢","<":"≮",">":"≯","≤":"≰","≥":"≱","≲":"≴","≳":"≵","≶":"≸","≷":"≹","≺":"⊀","≻":"⊁","⊂":"⊄","⊃":"⊅","⊆":"⊈","⊇":"⊉","⊢":"⊬","⊨":"⊭","⊩":"⊮","⊫":"⊯","≼":"⋠","≽":"⋡","⊑":"⋢","⊒":"⋣","⊲":"⋪","⊳":"⋫","⊴":"⋬","⊵":"⋭","∃":"∄"})},38364:function(e,t,r){var a=this&&this.__assign||function(){a=Object.assign||function(e){for(var t,r=1,a=arguments.length;r0)&&!(n=a.next()).done)i.push(n.value)}catch(s){o={error:s}}finally{try{if(n&&!n.done&&(r=a["return"]))r.call(a)}finally{if(o)throw o.error}}return i};var l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var u=o(r(94650));var c=l(r(72691));var f=l(r(98770));var p=l(r(75845));var h=r(80469);var d=l(r(6980));var m=r(80747);var v=r(17782);var y=r(86810);var g=r(38316);var b=r(34981);var A={};var S=1.2/.85;var P={fontfamily:1,fontsize:1,fontweight:1,fontstyle:1,color:1,background:1,id:1,class:1,href:1,style:1};A.Open=function(e,t){e.Push(e.itemFactory.create("open"))};A.Close=function(e,t){e.Push(e.itemFactory.create("close"))};A.Tilde=function(e,t){e.Push(e.create("token","mtext",{},g.entities.nbsp))};A.Space=function(e,t){};A.Superscript=function(e,t){var r;if(e.GetNext().match(/\d/)){e.string=e.string.substr(0,e.i+1)+" "+e.string.substr(e.i+1)}var a;var n;var i=e.stack.Top();if(i.isKind("prime")){r=s(i.Peek(2),2),n=r[0],a=r[1];e.stack.Pop()}else{n=e.stack.Prev();if(!n){n=e.create("token","mi",{},"")}}var o=c.default.getProperty(n,"movesupsub");var l=c.default.isType(n,"msubsup")?n.sup:n.over;if(c.default.isType(n,"msubsup")&&!c.default.isType(n,"msup")&&c.default.getChildAt(n,n.sup)||c.default.isType(n,"munderover")&&!c.default.isType(n,"mover")&&c.default.getChildAt(n,n.over)&&!c.default.getProperty(n,"subsupOK")){throw new f.default("DoubleExponent","Double exponent: use braces to clarify")}if(!c.default.isType(n,"msubsup")||c.default.isType(n,"msup")){if(o){if(!c.default.isType(n,"munderover")||c.default.isType(n,"mover")||c.default.getChildAt(n,n.over)){n=e.create("node","munderover",[n],{movesupsub:true})}l=n.over}else{n=e.create("node","msubsup",[n]);l=n.sup}}e.Push(e.itemFactory.create("subsup",n).setProperties({position:l,primes:a,movesupsub:o}))};A.Subscript=function(e,t){var r;if(e.GetNext().match(/\d/)){e.string=e.string.substr(0,e.i+1)+" "+e.string.substr(e.i+1)}var a,n;var i=e.stack.Top();if(i.isKind("prime")){r=s(i.Peek(2),2),n=r[0],a=r[1];e.stack.Pop()}else{n=e.stack.Prev();if(!n){n=e.create("token","mi",{},"")}}var o=c.default.getProperty(n,"movesupsub");var l=c.default.isType(n,"msubsup")?n.sub:n.under;if(c.default.isType(n,"msubsup")&&!c.default.isType(n,"msup")&&c.default.getChildAt(n,n.sub)||c.default.isType(n,"munderover")&&!c.default.isType(n,"mover")&&c.default.getChildAt(n,n.under)&&!c.default.getProperty(n,"subsupOK")){throw new f.default("DoubleSubscripts","Double subscripts: use braces to clarify")}if(!c.default.isType(n,"msubsup")||c.default.isType(n,"msup")){if(o){if(!c.default.isType(n,"munderover")||c.default.isType(n,"mover")||c.default.getChildAt(n,n.under)){n=e.create("node","munderover",[n],{movesupsub:true})}l=n.under}else{n=e.create("node","msubsup",[n]);l=n.sub}}e.Push(e.itemFactory.create("subsup",n).setProperties({position:l,primes:a,movesupsub:o}))};A.Prime=function(e,t){var r=e.stack.Prev();if(!r){r=e.create("node","mi")}if(c.default.isType(r,"msubsup")&&!c.default.isType(r,"msup")&&c.default.getChildAt(r,r.sup)){throw new f.default("DoubleExponentPrime","Prime causes double exponent: use braces to clarify")}var a="";e.i--;do{a+=g.entities.prime;e.i++,t=e.GetNext()}while(t==="'"||t===g.entities.rsquo);a=["","′","″","‴","⁗"][a.length]||a;var n=e.create("token","mo",{variantForm:true},a);e.Push(e.itemFactory.create("prime",r,n))};A.Comment=function(e,t){while(e.i{Object.defineProperty(t,"__esModule",{value:true});t.px=t.emRounded=t.em=t.percent=t.length2em=t.MATHSPACE=t.RELUNITS=t.UNITS=t.BIGDIMEN=void 0;t.BIGDIMEN=1e6;t.UNITS={px:1,in:96,cm:96/2.54,mm:96/25.4};t.RELUNITS={em:1,ex:.431,pt:1/10,pc:12/10,mu:1/18};t.MATHSPACE={veryverythinmathspace:1/18,verythinmathspace:2/18,thinmathspace:3/18,mediummathspace:4/18,thickmathspace:5/18,verythickmathspace:6/18,veryverythickmathspace:7/18,negativeveryverythinmathspace:-1/18,negativeverythinmathspace:-2/18,negativethinmathspace:-3/18,negativemediummathspace:-4/18,negativethickmathspace:-5/18,negativeverythickmathspace:-6/18,negativeveryverythickmathspace:-7/18,thin:.04,medium:.06,thick:.1,normal:1,big:2,small:1/Math.sqrt(2),infinity:t.BIGDIMEN};function r(e,r,a,n){if(r===void 0){r=0}if(a===void 0){a=1}if(n===void 0){n=16}if(typeof e!=="string"){e=String(e)}if(e===""||e==null){return r}if(t.MATHSPACE[e]){return t.MATHSPACE[e]}var i=e.match(/^\s*([-+]?(?:\.\d+|\d+(?:\.\d*)?))?(pt|em|ex|mu|px|pc|in|mm|cm|%)?/);if(!i){return r}var o=parseFloat(i[1]||"1"),s=i[2];if(t.UNITS.hasOwnProperty(s)){return o*t.UNITS[s]/n/a}if(t.RELUNITS.hasOwnProperty(s)){return o*t.RELUNITS[s]}if(s==="%"){return o/100*r}return o*r}t.length2em=r;function a(e){return(100*e).toFixed(1).replace(/\.?0+$/,"")+"%"}t.percent=a;function n(e){if(Math.abs(e)<.001)return"0";return e.toFixed(3).replace(/\.?0+$/,"")+"em"}t.em=n;function i(e,t){if(t===void 0){t=16}e=(Math.round(e*t)+.05)/t;if(Math.abs(e)<.001)return"0em";return e.toFixed(3).replace(/\.?0+$/,"")+"em"}t.emRounded=i;function o(e,r,a){if(r===void 0){r=-t.BIGDIMEN}if(a===void 0){a=16}e*=a;if(r&&e{t.r(e);t.d(e,{json:()=>c,jsonLanguage:()=>i,jsonParseLinter:()=>P});var r=t(27421);var a=t(45145);const n=(0,a.styleTags)({String:a.tags.string,Number:a.tags.number,"True False":a.tags.bool,PropertyName:a.tags.propertyName,Null:a.tags.null,",":a.tags.separator,"[ ]":a.tags.squareBracket,"{ }":a.tags.brace});const s=r.U1.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#CjOOQO'#Cp'#CpQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CrOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59U,59UO!iQPO,59UOVQPO,59QOqQPO'#CkO!nQPO,59^OOQO1G.k1G.kOVQPO'#ClO!vQPO,59aOOQO1G.p1G.pOOQO1G.l1G.lOOQO,59V,59VOOQO-E6i-E6iOOQO,59W,59WOOQO-E6j-E6j",stateData:"#O~OcOS~OQSORSOSSOTSOWQO]ROePO~OVXOeUO~O[[O~PVOg^O~Oh_OVfX~OVaO~OhbO[iX~O[dO~Oh_OVfa~OhbO[ia~O",goto:"!kjPPPPPPkPPkqwPPk{!RPPP!XP!ePP!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName ] [ Array",maxTerm:25,nodeProps:[["openedBy",7,"{",12,"["],["closedBy",8,"}",13,"]"]],propSources:[n],skippedNodes:[0],repeatNodeCount:2,tokenData:"(p~RaXY!WYZ!W]^!Wpq!Wrs!]|}$i}!O$n!Q!R$w!R![&V![!]&h!}#O&m#P#Q&r#Y#Z&w#b#c'f#h#i'}#o#p(f#q#r(k~!]Oc~~!`Upq!]qr!]rs!rs#O!]#O#P!w#P~!]~!wOe~~!zXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#g~#jR!Q![#s!c!i#s#T#Z#s~#vR!Q![$P!c!i$P#T#Z$P~$SR!Q![$]!c!i$]#T#Z$]~$`R!Q![!]!c!i!]#T#Z!]~$nOh~~$qQ!Q!R$w!R![&V~$|RT~!O!P%V!g!h%k#X#Y%k~%YP!Q![%]~%bRT~!Q![%]!g!h%k#X#Y%k~%nR{|%w}!O%w!Q![%}~%zP!Q![%}~&SPT~!Q![%}~&[ST~!O!P%V!Q![&V!g!h%k#X#Y%k~&mOg~~&rO]~~&wO[~~&zP#T#U&}~'QP#`#a'T~'WP#g#h'Z~'^P#X#Y'a~'fOR~~'iP#i#j'l~'oP#`#a'r~'uP#`#a'x~'}OS~~(QP#f#g(T~(WP#i#j(Z~(^P#X#Y(a~(fOQ~~(kOW~~(pOV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var o=t(4452);const P=()=>O=>{try{JSON.parse(O.state.doc.toString())}catch(e){if(!(e instanceof SyntaxError))throw e;const t=Q(e,O.state.doc);return[{from:t,message:e.message,severity:"error",to:t}]}return[]};function Q(O,e){let t;if(t=O.message.match(/at position (\d+)/))return Math.min(+t[1],e.length);if(t=O.message.match(/at line (\d+) column (\d+)/))return Math.min(e.line(+t[1]).from+ +t[2]-1,e.length);return 0}const i=o.LRLanguage.define({name:"json",parser:s.configure({props:[o.indentNodeProp.add({Object:(0,o.continuedIndent)({except:/^\s*\}/}),Array:(0,o.continuedIndent)({except:/^\s*\]/})}),o.foldNodeProp.add({"Object Array":o.foldInside})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function c(){return new o.LanguageSupport(i)}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2794.05495c139ed000b57598.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2794.05495c139ed000b57598.js deleted file mode 100644 index 9fe2f9ce0f8923233fefcfc83036753884e82220..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2794.05495c139ed000b57598.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2794],{12794:(e,t,r)=>{r.r(t);r.d(t,{Accordion:()=>i,AccordionItem:()=>d,Anchor:()=>p,AnchoredRegion:()=>c,Avatar:()=>u,Badge:()=>m,Breadcrumb:()=>f,BreadcrumbItem:()=>h,Button:()=>y,Card:()=>x,Checkbox:()=>g,Combobox:()=>b,DataGrid:()=>R,DataGridCell:()=>I,DataGridRow:()=>w,DateField:()=>v,Dialog:()=>j,Disclosure:()=>N,Divider:()=>T,Listbox:()=>D,Menu:()=>E,MenuItem:()=>S,NumberField:()=>k,Option:()=>F,Picker:()=>X,PickerList:()=>ee,PickerListItem:()=>te,PickerMenu:()=>Y,PickerMenuOption:()=>Z,Progress:()=>O,ProgressRing:()=>C,Radio:()=>H,RadioGroup:()=>J,Search:()=>z,Select:()=>q,Skeleton:()=>P,Slider:()=>L,SliderLabel:()=>A,Switch:()=>M,Tab:()=>V,TabPanel:()=>B,Tabs:()=>G,TextArea:()=>W,TextField:()=>_,Toolbar:()=>U,Tooltip:()=>Q,TreeItem:()=>$,TreeView:()=>K});var a=r(78173);var n=r(44914);var l=r.n(n);function s(e,t,r){(0,n.useEffect)((()=>{if(r!==undefined&&e.current&&e.current[t]!==r){try{e.current[t]=r}catch(a){console.warn(a)}}}),[r,e.current])}function o(e,t,r){(0,n.useLayoutEffect)((()=>{if(r!==undefined){e?.current?.addEventListener(t,r)}return()=>{if(r?.cancel){r.cancel()}e?.current?.removeEventListener(t,r)}}),[t,r,e.current])}(0,a.provideJupyterDesignSystem)().register((0,a.jpAccordion)());const i=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,expandMode:s,...i}=e;o(r,"change",e.onChange);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-accordion",{ref:r,...i,"expand-mode":e.expandMode||e["expand-mode"],class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpAccordionItem)());const d=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,headingLevel:i,id:d,expanded:c,...p}=e;o(r,"change",e.onChange);s(r,"expanded",e.expanded);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-accordion-item",{ref:r,...p,"heading-level":e.headingLevel||e["heading-level"],id:e.id,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpAnchoredRegion)());const c=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,horizontalViewportLock:i,horizontalInset:d,verticalViewportLock:c,verticalInset:p,fixedPlacement:u,anchor:m,viewport:f,horizontalPositioningMode:h,horizontalDefaultPosition:y,horizontalThreshold:x,horizontalScaling:g,verticalPositioningMode:b,verticalDefaultPosition:v,verticalThreshold:I,verticalScaling:w,autoUpdateMode:R,anchorElement:j,viewportElement:N,verticalPosition:T,horizontalPosition:D,update:S,...E}=e;o(r,"loaded",e.onLoaded);o(r,"positionchange",e.onPositionchange);s(r,"anchorElement",e.anchorElement);s(r,"viewportElement",e.viewportElement);s(r,"verticalPosition",e.verticalPosition);s(r,"horizontalPosition",e.horizontalPosition);s(r,"update",e.update);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-anchored-region",{ref:r,...E,anchor:e.anchor,viewport:e.viewport,"horizontal-positioning-mode":e.horizontalPositioningMode||e["horizontal-positioning-mode"],"horizontal-default-position":e.horizontalDefaultPosition||e["horizontal-default-position"],"horizontal-threshold":e.horizontalThreshold||e["horizontal-threshold"],"horizontal-scaling":e.horizontalScaling||e["horizontal-scaling"],"vertical-positioning-mode":e.verticalPositioningMode||e["vertical-positioning-mode"],"vertical-default-position":e.verticalDefaultPosition||e["vertical-default-position"],"vertical-threshold":e.verticalThreshold||e["vertical-threshold"],"vertical-scaling":e.verticalScaling||e["vertical-scaling"],"auto-update-mode":e.autoUpdateMode||e["auto-update-mode"],class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,"horizontal-viewport-lock":e.horizontalViewportLock?"":undefined,"horizontal-inset":e.horizontalInset?"":undefined,"vertical-viewport-lock":e.verticalViewportLock?"":undefined,"vertical-inset":e.verticalInset?"":undefined,"fixed-placement":e.fixedPlacement?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpAnchor)());const p=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,appearance:o,download:i,href:d,hreflang:c,ping:p,referrerpolicy:u,rel:m,target:f,type:h,control:y,...x}=e;s(r,"control",e.control);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-anchor",{ref:r,...x,appearance:e.appearance,download:e.download,href:e.href,hreflang:e.hreflang,ping:e.ping,referrerpolicy:e.referrerpolicy,rel:e.rel,target:e.target,type:e.type,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpAvatar)());const u=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,src:s,alt:o,fill:i,color:d,link:c,shape:p,...u}=e;(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-avatar",{ref:r,...u,src:e.src,alt:e.alt,fill:e.fill,color:e.color,link:e.link,shape:e.shape,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpBadge)());const m=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,fill:o,color:i,circular:d,...c}=e;s(r,"circular",e.circular);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-badge",{ref:r,...c,fill:e.fill,color:e.color,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpBreadcrumb)());const f=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,...s}=e;(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-breadcrumb",{ref:r,...s,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpBreadcrumbItem)());const h=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,download:o,href:i,hreflang:d,ping:c,referrerpolicy:p,rel:u,target:m,type:f,control:h,...y}=e;s(r,"control",e.control);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-breadcrumb-item",{ref:r,...y,download:e.download,href:e.href,hreflang:e.hreflang,ping:e.ping,referrerpolicy:e.referrerpolicy,rel:e.rel,target:e.target,type:e.type,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpButton)());const y=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,minimal:o,appearance:i,form:d,formaction:c,formenctype:p,formmethod:u,formtarget:m,type:f,autofocus:h,formnovalidate:y,defaultSlottedContent:x,disabled:g,required:b,...v}=e;s(r,"autofocus",e.autofocus);s(r,"formnovalidate",e.formnovalidate);s(r,"defaultSlottedContent",e.defaultSlottedContent);s(r,"disabled",e.disabled);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-button",{ref:r,...v,appearance:e.appearance,form:e.form,formaction:e.formaction,formenctype:e.formenctype,formmethod:e.formmethod,formtarget:e.formtarget,type:e.type,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,minimal:e.minimal?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpCard)());const x=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,...s}=e;(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-card",{ref:r,...s,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpCheckbox)());const g=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,readonly:i,readOnly:d,indeterminate:c,checked:p,disabled:u,required:m,...f}=e;o(r,"change",e.onChange);s(r,"readOnly",e.readOnly);s(r,"indeterminate",e.indeterminate);s(r,"checked",e.checked);s(r,"disabled",e.disabled);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);let h=a??"";if(r.current?.indeterminate){h+=" indeterminate"}return l().createElement("jp-checkbox",{ref:r,...f,class:h.trim(),exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,readonly:e.readonly?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpCombobox)());const b=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,autowidth:i,minimal:d,open:c,autocomplete:p,placeholder:u,position:m,autoWidth:f,filteredOptions:h,options:y,value:x,length:g,disabled:b,selectedIndex:v,selectedOptions:I,required:w,...R}=e;o(r,"input",e.onInput);o(r,"change",e.onChange);s(r,"autoWidth",e.autoWidth);s(r,"filteredOptions",e.filteredOptions);s(r,"options",e.options);s(r,"value",e.value);s(r,"length",e.length);s(r,"disabled",e.disabled);s(r,"selectedIndex",e.selectedIndex);s(r,"selectedOptions",e.selectedOptions);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-combobox",{ref:r,...R,autocomplete:e.autocomplete,placeholder:e.placeholder,position:e.position,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,autowidth:e.autowidth?"":undefined,minimal:e.minimal?"":undefined,open:e.open?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpDateField)());const v=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,autofocus:i,step:d,max:c,min:p,disabled:u,required:m,...f}=e;o(r,"input",e.onInput);o(r,"change",e.onChange);s(r,"autofocus",e.autofocus);s(r,"step",e.step);s(r,"max",e.max);s(r,"min",e.min);s(r,"disabled",e.disabled);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-date-field",{ref:r,...f,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpDataGridCell)());const I=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,cellType:i,gridColumn:d,rowData:c,columnDefinition:p,...u}=e;o(r,"cell-focused",e.onCellFocused);s(r,"rowData",e.rowData);s(r,"columnDefinition",e.columnDefinition);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);let m=a??"";if(r.current?.cellType==="columnheader"){m+=" column-header"}return l().createElement("jp-data-grid-cell",{ref:r,...u,"cell-type":e.cellType||e["cell-type"],"grid-column":e.gridColumn||e["grid-column"],class:m.trim(),exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpDataGridRow)());const w=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,gridTemplateColumns:i,rowType:d,rowData:c,columnDefinitions:p,cellItemTemplate:u,headerCellItemTemplate:m,rowIndex:f,...h}=e;o(r,"row-focused",e.onRowFocused);s(r,"rowData",e.rowData);s(r,"columnDefinitions",e.columnDefinitions);s(r,"cellItemTemplate",e.cellItemTemplate);s(r,"headerCellItemTemplate",e.headerCellItemTemplate);s(r,"rowIndex",e.rowIndex);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);let y=a??"";if(r.current){if(r.current.rowType!=="default"){y+=` ${r.current.rowType}`}}return l().createElement("jp-data-grid-row",{ref:r,...h,"grid-template-columns":e.gridTemplateColumns||e["grid-template-columns"],"row-type":e.rowType||e["row-type"],class:y.trim(),exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpDataGrid)());const R=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,noTabbing:o,generateHeader:i,gridTemplateColumns:d,rowsData:c,columnDefinitions:p,rowItemTemplate:u,cellItemTemplate:m,headerCellItemTemplate:f,focusRowIndex:h,focusColumnIndex:y,rowElementTag:x,...g}=e;s(r,"rowsData",e.rowsData);s(r,"columnDefinitions",e.columnDefinitions);s(r,"rowItemTemplate",e.rowItemTemplate);s(r,"cellItemTemplate",e.cellItemTemplate);s(r,"headerCellItemTemplate",e.headerCellItemTemplate);s(r,"focusRowIndex",e.focusRowIndex);s(r,"focusColumnIndex",e.focusColumnIndex);s(r,"rowElementTag",e.rowElementTag);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-data-grid",{ref:r,...g,"generate-header":e.generateHeader||e["generate-header"],"grid-template-columns":e.gridTemplateColumns||e["grid-template-columns"],class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,"no-tabbing":e.noTabbing?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpDialog)());const j=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,trapFocus:i,ariaDescribedby:d,ariaLabelledby:c,ariaLabel:p,modal:u,hidden:m,...f}=e;o(r,"cancel",e.onCancel);o(r,"close",e.onClose);s(r,"modal",e.modal);s(r,"hidden",e.hidden);(0,n.useImperativeHandle)(t,(()=>({show:()=>r.current.show(),hide:()=>r.current.hide(),compose:(e,t)=>r.current.compose(e,t)})));return l().createElement("jp-dialog",{ref:r,...f,"aria-describedby":e.ariaDescribedby||e["aria-describedby"],"aria-labelledby":e.ariaLabelledby||e["aria-labelledby"],"aria-label":e.ariaLabel||e["aria-label"],class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,"trap-focus":e.trapFocus?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpDisclosure)());const N=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,appearance:i,title:d,expanded:c,...p}=e;o(r,"toggle",e.onToggle);s(r,"expanded",e.expanded);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-disclosure",{ref:r,...p,appearance:e.appearance,title:e.title,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpDivider)());const T=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,role:s,orientation:o,...i}=e;(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-divider",{ref:r,...i,role:e.role,orientation:e.orientation,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpListbox)());const D=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,multiple:i,size:d,length:c,options:p,disabled:u,selectedIndex:m,selectedOptions:f,...h}=e;o(r,"change",e.onChange);s(r,"multiple",e.multiple);s(r,"size",e.size);s(r,"length",e.length);s(r,"options",e.options);s(r,"disabled",e.disabled);s(r,"selectedIndex",e.selectedIndex);s(r,"selectedOptions",e.selectedOptions);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-listbox",{ref:r,...h,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpMenuItem)());const S=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,role:i,disabled:d,expanded:c,checked:p,...u}=e;o(r,"expanded-change",e.onExpand);o(r,"change",e.onChange);s(r,"disabled",e.disabled);s(r,"expanded",e.expanded);s(r,"checked",e.checked);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);let m=a??"";if(r.current){m+=` indent-${r.current.startColumnCount}`;if(r.current.expanded){m+=" expanded"}}return l().createElement("jp-menu-item",{ref:r,...u,role:e.role,class:m.trim(),exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpMenu)());const E=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,...s}=e;(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-menu",{ref:r,...s,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpNumberField)());const k=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,readonly:i,hideStep:d,appearance:c,placeholder:p,list:u,readOnly:m,autofocus:f,maxlength:h,minlength:y,size:x,step:g,max:b,min:v,disabled:I,required:w,...R}=e;o(r,"input",e.onInput);o(r,"change",e.onChange);s(r,"readOnly",e.readOnly);s(r,"autofocus",e.autofocus);s(r,"maxlength",e.maxlength);s(r,"minlength",e.minlength);s(r,"size",e.size);s(r,"step",e.step);s(r,"max",e.max);s(r,"min",e.min);s(r,"disabled",e.disabled);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-number-field",{ref:r,...R,appearance:e.appearance,placeholder:e.placeholder,list:e.list,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,readonly:e.readonly?"":undefined,"hide-step":e.hideStep?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpOption)());const F=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,selected:o,value:i,checked:d,content:c,defaultSelected:p,disabled:u,selectedAttribute:m,dirtyValue:f,...h}=e;s(r,"checked",e.checked);s(r,"content",e.content);s(r,"defaultSelected",e.defaultSelected);s(r,"disabled",e.disabled);s(r,"selectedAttribute",e.selectedAttribute);s(r,"dirtyValue",e.dirtyValue);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-option",{ref:r,...h,value:e.value,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,selected:e.selected?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpProgressRing)());const C=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,value:o,min:i,max:d,paused:c,...p}=e;s(r,"value",e.value);s(r,"min",e.min);s(r,"max",e.max);s(r,"paused",e.paused);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-progress-ring",{ref:r,...p,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpProgress)());const O=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,value:o,min:i,max:d,paused:c,...p}=e;s(r,"value",e.value);s(r,"min",e.min);s(r,"max",e.max);s(r,"paused",e.paused);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-progress",{ref:r,...p,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpRadio)());const H=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,readonly:i,readOnly:d,name:c,checked:p,disabled:u,required:m,...f}=e;o(r,"change",e.onChange);s(r,"readOnly",e.readOnly);s(r,"name",e.name);s(r,"checked",e.checked);s(r,"disabled",e.disabled);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-radio",{ref:r,...f,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,readonly:e.readonly?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpRadioGroup)());const J=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,readonly:i,disabled:d,name:c,value:p,orientation:u,readOnly:m,...f}=e;o(r,"change",e.onChange);s(r,"readOnly",e.readOnly);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-radio-group",{ref:r,...f,name:e.name,value:e.value,orientation:e.orientation,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,readonly:e.readonly?"":undefined,disabled:e.disabled?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpSearch)());const z=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,readonly:i,appearance:d,placeholder:c,list:p,pattern:u,readOnly:m,autofocus:f,maxlength:h,minlength:y,size:x,spellcheck:g,disabled:b,required:v,...I}=e;o(r,"input",e.onInput);o(r,"change",e.onChange);s(r,"readOnly",e.readOnly);s(r,"autofocus",e.autofocus);s(r,"maxlength",e.maxlength);s(r,"minlength",e.minlength);s(r,"size",e.size);s(r,"spellcheck",e.spellcheck);s(r,"disabled",e.disabled);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-search",{ref:r,...I,appearance:e.appearance,placeholder:e.placeholder,list:e.list,pattern:e.pattern,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,readonly:e.readonly?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpSelect)());const q=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,autowidth:i,minimal:d,open:c,position:p,autoWidth:u,value:m,displayValue:f,multiple:h,size:y,length:x,options:g,disabled:b,selectedIndex:v,selectedOptions:I,required:w,...R}=e;o(r,"input",e.onInput);o(r,"change",e.onChange);s(r,"autoWidth",e.autoWidth);s(r,"value",e.value);s(r,"displayValue",e.displayValue);s(r,"multiple",e.multiple);s(r,"size",e.size);s(r,"length",e.length);s(r,"options",e.options);s(r,"disabled",e.disabled);s(r,"selectedIndex",e.selectedIndex);s(r,"selectedOptions",e.selectedOptions);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-select",{ref:r,...R,position:e.position,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,autowidth:e.autowidth?"":undefined,minimal:e.minimal?"":undefined,open:e.open?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpSkeleton)());const P=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,fill:o,shape:i,pattern:d,shimmer:c,...p}=e;s(r,"shimmer",e.shimmer);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-skeleton",{ref:r,...p,fill:e.fill,shape:e.shape,pattern:e.pattern,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpSlider)());const L=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,readonly:i,orientation:d,mode:c,readOnly:p,valueAsNumber:u,valueTextFormatter:m,min:f,max:h,step:y,disabled:x,required:g,...b}=e;o(r,"change",e.onChange);s(r,"readOnly",e.readOnly);s(r,"valueAsNumber",e.valueAsNumber);s(r,"valueTextFormatter",e.valueTextFormatter);s(r,"min",e.min);s(r,"max",e.max);s(r,"step",e.step);s(r,"disabled",e.disabled);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-slider",{ref:r,...b,orientation:e.orientation,mode:e.mode,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,readonly:e.readonly?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpSliderLabel)());const A=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,hideMark:s,disabled:o,position:i,...d}=e;(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);let c=a??"";if(r.current?.disabled){c+=" disabled"}return l().createElement("jp-slider-label",{ref:r,...d,position:e.position,class:c.trim(),exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,"hide-mark":e.hideMark?"":undefined,disabled:e.disabled?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpSwitch)());const M=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,readonly:i,readOnly:d,checked:c,disabled:p,required:u,...m}=e;o(r,"change",e.onChange);s(r,"readOnly",e.readOnly);s(r,"checked",e.checked);s(r,"disabled",e.disabled);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-switch",{ref:r,...m,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,readonly:e.readonly?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpTab)());const V=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,disabled:o,...i}=e;s(r,"disabled",e.disabled);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);let d=a??"";if(r.current?.classList.contains("vertical")){d+=" vertical"}return l().createElement("jp-tab",{ref:r,...i,class:d.trim(),exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpTabPanel)());const B=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,...s}=e;(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-tab-panel",{ref:r,...s,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpTabs)());const G=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,orientation:i,activeid:d,activeindicator:c,activetab:p,...u}=e;o(r,"change",e.onChange);s(r,"activeindicator",e.activeindicator);s(r,"activetab",e.activetab);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-tabs",{ref:r,...u,orientation:e.orientation,activeid:e.activeid,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpTextArea)());const W=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,appearance:i,resize:d,form:c,list:p,name:u,placeholder:m,readOnly:f,autofocus:h,maxlength:y,minlength:x,cols:g,rows:b,spellcheck:v,disabled:I,required:w,...R}=e;o(r,"select",e.onSelect);o(r,"change",e.onChange);s(r,"readOnly",e.readOnly);s(r,"autofocus",e.autofocus);s(r,"maxlength",e.maxlength);s(r,"minlength",e.minlength);s(r,"cols",e.cols);s(r,"rows",e.rows);s(r,"spellcheck",e.spellcheck);s(r,"disabled",e.disabled);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-text-area",{ref:r,...R,appearance:e.appearance,resize:e.resize,form:e.form,list:e.list,name:e.name,placeholder:e.placeholder,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpTextField)());const _=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,readonly:i,appearance:d,placeholder:c,type:p,list:u,pattern:m,readOnly:f,autofocus:h,maxlength:y,minlength:x,size:g,spellcheck:b,disabled:v,required:I,...w}=e;o(r,"change",e.onChange);o(r,"input",e.onInput);s(r,"readOnly",e.readOnly);s(r,"autofocus",e.autofocus);s(r,"maxlength",e.maxlength);s(r,"minlength",e.minlength);s(r,"size",e.size);s(r,"spellcheck",e.spellcheck);s(r,"disabled",e.disabled);s(r,"required",e.required);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-text-field",{ref:r,...w,appearance:e.appearance,placeholder:e.placeholder,type:e.type,list:e.list,pattern:e.pattern,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,readonly:e.readonly?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpToolbar)());const U=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,...s}=e;(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-toolbar",{ref:r,...s,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpTooltip)());const Q=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,horizontalViewportLock:i,verticalViewportLock:d,anchor:c,delay:p,position:u,autoUpdateMode:m,visible:f,anchorElement:h,...y}=e;o(r,"dismiss",e.onDismiss);s(r,"visible",e.visible);s(r,"anchorElement",e.anchorElement);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-tooltip",{ref:r,...y,anchor:e.anchor,delay:e.delay,position:e.position,"auto-update-mode":e.autoUpdateMode||e["auto-update-mode"],class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,"horizontal-viewport-lock":e.horizontalViewportLock?"":undefined,"vertical-viewport-lock":e.verticalViewportLock?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpTreeItem)());const $=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,expanded:i,selected:d,disabled:c,...p}=e;o(r,"expanded-change",e.onExpand);o(r,"selected-change",e.onSelect);s(r,"expanded",e.expanded);s(r,"selected",e.selected);s(r,"disabled",e.disabled);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);let u=a??"";if(r.current?.nested){u+=" nested"}return l().createElement("jp-tree-item",{ref:r,...p,class:u.trim(),exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpTreeView)());const K=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,renderCollapsedNodes:o,currentSelected:i,...d}=e;(0,n.useLayoutEffect)((()=>{r.current?.setItems()}),[r.current]);s(r,"currentSelected",e.currentSelected);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-tree-view",{ref:r,...d,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,"render-collapsed-nodes":e.renderCollapsedNodes?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpPicker)());const X=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,filterSelected:o,filterQuery:i,selection:d,options:c,maxSelected:p,noSuggestionsText:u,suggestionsAvailableText:m,loadingText:f,label:h,labelledby:y,placeholder:x,menuPlacement:g,showLoading:b,listItemTemplate:v,defaultListItemTemplate:I,menuOptionTemplate:w,defaultMenuOptionTemplate:R,listItemContentsTemplate:j,menuOptionContentsTemplate:N,optionsList:T,query:D,itemsPlaceholderElement:S,...E}=e;s(r,"showLoading",e.showLoading);s(r,"listItemTemplate",e.listItemTemplate);s(r,"defaultListItemTemplate",e.defaultListItemTemplate);s(r,"menuOptionTemplate",e.menuOptionTemplate);s(r,"defaultMenuOptionTemplate",e.defaultMenuOptionTemplate);s(r,"listItemContentsTemplate",e.listItemContentsTemplate);s(r,"menuOptionContentsTemplate",e.menuOptionContentsTemplate);s(r,"optionsList",e.optionsList);s(r,"query",e.query);s(r,"itemsPlaceholderElement",e.itemsPlaceholderElement);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-draft-picker",{ref:r,...E,selection:e.selection,options:e.options,"max-selected":e.maxSelected||e["max-selected"],"no-suggestions-text":e.noSuggestionsText||e["no-suggestions-text"],"suggestions-available-text":e.suggestionsAvailableText||e["suggestions-available-text"],"loading-text":e.loadingText||e["loading-text"],label:e.label,labelledby:e.labelledby,placeholder:e.placeholder,"menu-placement":e.menuPlacement||e["menu-placement"],class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,"filter-selected":e.filterSelected?"":undefined,"filter-query":e.filterQuery?"":undefined,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpPickerMenu)());const Y=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,suggestionsAvailableText:o,...i}=e;s(r,"suggestionsAvailableText",e.suggestionsAvailableText);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-draft-picker-menu",{ref:r,...i,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpPickerMenuOption)());const Z=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,value:o,contentsTemplate:i,...d}=e;s(r,"contentsTemplate",e.contentsTemplate);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-draft-picker-menu-option",{ref:r,...d,value:e.value,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpPickerList)());const ee=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,...s}=e;(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-draft-picker-list",{ref:r,...s,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}));(0,a.provideJupyterDesignSystem)().register((0,a.jpPickerListItem)());const te=(0,n.forwardRef)(((e,t)=>{const r=(0,n.useRef)(null);const{className:a,value:o,contentsTemplate:i,...d}=e;s(r,"contentsTemplate",e.contentsTemplate);(0,n.useImperativeHandle)(t,(()=>r.current),[r.current]);return l().createElement("jp-draft-picker-list-item",{ref:r,...d,value:e.value,class:e.className,exportparts:e.exportparts,for:e.htmlFor,part:e.part,tabindex:e.tabIndex,style:{...e.style}},e.children)}))}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2823.0b6015b5e03c08281f41.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2823.0b6015b5e03c08281f41.js deleted file mode 100644 index 79e51c3b7fb8ac33ce5ee421efea87a9c35f6b63..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2823.0b6015b5e03c08281f41.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2823],{82823:(e,t,r)=>{r.r(t);r.d(t,{coffeeScript:()=>x});var n="error";function i(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var f=/^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/;var a=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/;var o=/^[_A-Za-z$][_A-Za-z$0-9]*/;var c=/^@[_A-Za-z$][_A-Za-z$0-9]*/;var p=i(["and","or","not","is","isnt","in","instanceof","typeof"]);var s=["for","while","loop","if","unless","else","switch","try","catch","finally","class"];var u=["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"];var l=i(s.concat(u));s=i(s);var v=/^('{3}|\"{3}|['\"])/;var d=/^(\/{3}|\/)/;var h=["Infinity","NaN","undefined","null","true","false","on","off","yes","no"];var m=i(h);function k(e,t){if(e.sol()){if(t.scope.align===null)t.scope.align=false;var r=t.scope.offset;if(e.eatSpace()){var i=e.indentation();if(i>r&&t.scope.type=="coffee"){return"indent"}else if(i0){z(e,t)}}}if(e.eatSpace()){return null}var s=e.peek();if(e.match("####")){e.skipToEnd();return"comment"}if(e.match("###")){t.tokenize=g;return t.tokenize(e,t)}if(s==="#"){e.skipToEnd();return"comment"}if(e.match(/^-?[0-9\.]/,false)){var u=false;if(e.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)){u=true}if(e.match(/^-?\d+\.\d*/)){u=true}if(e.match(/^-?\.\d+/)){u=true}if(u){if(e.peek()=="."){e.backUp(1)}return"number"}var h=false;if(e.match(/^-?0x[0-9a-f]+/i)){h=true}if(e.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)){h=true}if(e.match(/^-?0(?![\dx])/i)){h=true}if(h){return"number"}}if(e.match(v)){t.tokenize=y(e.current(),false,"string");return t.tokenize(e,t)}if(e.match(d)){if(e.current()!="/"||e.match(/^.*\//,false)){t.tokenize=y(e.current(),true,"string.special");return t.tokenize(e,t)}else{e.backUp(1)}}if(e.match(f)||e.match(p)){return"operator"}if(e.match(a)){return"punctuation"}if(e.match(m)){return"atom"}if(e.match(c)||t.prop&&e.match(o)){return"property"}if(e.match(l)){return"keyword"}if(e.match(o)){return"variable"}e.next();return n}function y(e,t,r){return function(n,i){while(!n.eol()){n.eatWhile(/[^'"\/\\]/);if(n.eat("\\")){n.next();if(t&&n.eol()){return r}}else if(n.match(e)){i.tokenize=k;return r}else{n.eat(/['"\/]/)}}if(t){i.tokenize=k}return r}}function g(e,t){while(!e.eol()){e.eatWhile(/[^#]/);if(e.match("###")){t.tokenize=k;break}e.eatWhile("#")}return"comment"}function b(e,t,r="coffee"){var n=0,i=false,f=null;for(var a=t.scope;a;a=a.prev){if(a.type==="coffee"||a.type=="}"){n=a.offset+e.indentUnit;break}}if(r!=="coffee"){i=null;f=e.column()+e.current().length}else if(t.scope.align){t.scope.align=false}t.scope={offset:n,type:r,prev:t.scope,align:i,alignOffset:f}}function z(e,t){if(!t.scope.prev)return;if(t.scope.type==="coffee"){var r=e.indentation();var n=false;for(var i=t.scope;i;i=i.prev){if(r===i.offset){n=true;break}}if(!n){return true}while(t.scope.prev&&t.scope.offset!==r){t.scope=t.scope.prev}return false}else{t.scope=t.scope.prev;return false}}function w(e,t){var r=t.tokenize(e,t);var i=e.current();if(i==="return"){t.dedent=true}if((i==="->"||i==="=>")&&e.eol()||r==="indent"){b(e,t)}var f="[({".indexOf(i);if(f!==-1){b(e,t,"])}".slice(f,f+1))}if(s.exec(i)){b(e,t)}if(i=="then"){z(e,t)}if(r==="dedent"){if(z(e,t)){return n}}f="])}".indexOf(i);if(f!==-1){while(t.scope.type=="coffee"&&t.scope.prev)t.scope=t.scope.prev;if(t.scope.type==i)t.scope=t.scope.prev}if(t.dedent&&e.eol()){if(t.scope.type=="coffee"&&t.scope.prev)t.scope=t.scope.prev;t.dedent=false}return r=="indent"||r=="dedent"?null:r}const x={name:"coffeescript",startState:function(){return{tokenize:k,scope:{offset:0,type:"coffee",prev:null,align:false},prop:false,dedent:0}},token:function(e,t){var r=t.scope.align===null&&t.scope;if(r&&e.sol())r.align=false;var n=w(e,t);if(n&&n!="comment"){if(r)r.align=true;t.prop=n=="punctuation"&&e.current()=="."}return n},indent:function(e,t){if(e.tokenize!=k)return 0;var r=e.scope;var n=t&&"])}".indexOf(t.charAt(0))>-1;if(n)while(r.type=="coffee"&&r.prev)r=r.prev;var i=n&&r.type===t.charAt(0);if(r.align)return r.alignOffset-(i?1:0);else return(i?r.prev:r).offset},languageData:{commentTokens:{line:"#"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2880.8483d51b11998bfe8e4b.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2880.8483d51b11998bfe8e4b.js deleted file mode 100644 index b4f503dbbc978fc8efb37c8d2c2f5fe4994945d8..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2880.8483d51b11998bfe8e4b.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2880,5606],{52880:(e,t,i)=>{var s=i(65606);!function(t,i){true?e.exports=i():0}(self,(()=>(()=>{"use strict";var e={903:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseRenderLayer=void 0;const s=i(274),r=i(627),o=i(237),n=i(860),a=i(374),h=i(296),l=i(345),c=i(859),d=i(399),_=i(855);class u extends c.Disposable{get canvas(){return this._canvas}get cacheCanvas(){return this._charAtlas?.pages[0].canvas}constructor(e,t,i,r,o,n,a,d,_,u){super(),this._terminal=e,this._container=t,this._alpha=o,this._themeService=n,this._bufferService=a,this._optionsService=d,this._decorationService=_,this._coreBrowserService=u,this._deviceCharWidth=0,this._deviceCharHeight=0,this._deviceCellWidth=0,this._deviceCellHeight=0,this._deviceCharLeft=0,this._deviceCharTop=0,this._selectionModel=(0,h.createSelectionRenderModel)(),this._bitmapGenerator=[],this._charAtlasDisposable=this.register(new c.MutableDisposable),this._onAddTextureAtlasCanvas=this.register(new l.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._cellColorResolver=new s.CellColorResolver(this._terminal,this._optionsService,this._selectionModel,this._decorationService,this._coreBrowserService,this._themeService),this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add(`xterm-${i}-layer`),this._canvas.style.zIndex=r.toString(),this._initCanvas(),this._container.appendChild(this._canvas),this._refreshCharAtlas(this._themeService.colors),this.register(this._themeService.onChangeColors((e=>{this._refreshCharAtlas(e),this.reset(),this.handleSelectionChanged(this._selectionModel.selectionStart,this._selectionModel.selectionEnd,this._selectionModel.columnSelectMode)}))),this.register((0,c.toDisposable)((()=>{this._canvas.remove()})))}_initCanvas(){this._ctx=(0,a.throwIfFalsy)(this._canvas.getContext("2d",{alpha:this._alpha})),this._alpha||this._clearAll()}handleBlur(){}handleFocus(){}handleCursorMove(){}handleGridChanged(e,t){}handleSelectionChanged(e,t,i=!1){this._selectionModel.update(this._terminal._core,e,t,i)}_setTransparency(e){if(e===this._alpha)return;const t=this._canvas;this._alpha=e,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,t),this._refreshCharAtlas(this._themeService.colors),this.handleGridChanged(0,this._bufferService.rows-1)}_refreshCharAtlas(e){if(!(this._deviceCharWidth<=0&&this._deviceCharHeight<=0)){this._charAtlas=(0,r.acquireTextureAtlas)(this._terminal,this._optionsService.rawOptions,e,this._deviceCellWidth,this._deviceCellHeight,this._deviceCharWidth,this._deviceCharHeight,this._coreBrowserService.dpr),this._charAtlasDisposable.value=(0,l.forwardEvent)(this._charAtlas.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas),this._charAtlas.warmUp();for(let e=0;e1?this._charAtlas.getRasterizedGlyphCombinedChar(s,this._cellColorResolver.result.bg,this._cellColorResolver.result.fg,this._cellColorResolver.result.ext,!0):this._charAtlas.getRasterizedGlyph(e.getCode()||_.WHITESPACE_CELL_CODE,this._cellColorResolver.result.bg,this._cellColorResolver.result.fg,this._cellColorResolver.result.ext,!0),!n.size.x||!n.size.y)return;this._ctx.save(),this._clipRow(i),this._bitmapGenerator[n.texturePage]&&this._charAtlas.pages[n.texturePage].canvas!==this._bitmapGenerator[n.texturePage].canvas&&(this._bitmapGenerator[n.texturePage]?.bitmap?.close(),delete this._bitmapGenerator[n.texturePage]),this._charAtlas.pages[n.texturePage].version!==this._bitmapGenerator[n.texturePage]?.version&&(this._bitmapGenerator[n.texturePage]||(this._bitmapGenerator[n.texturePage]=new g(this._charAtlas.pages[n.texturePage].canvas)),this._bitmapGenerator[n.texturePage].refresh(),this._bitmapGenerator[n.texturePage].version=this._charAtlas.pages[n.texturePage].version);let h=n.size.x;this._optionsService.rawOptions.rescaleOverlappingGlyphs&&(0,a.allowRescaling)(r,o,n.size.x,this._deviceCellWidth)&&(h=this._deviceCellWidth-1),this._ctx.drawImage(this._bitmapGenerator[n.texturePage]?.bitmap||this._charAtlas.pages[n.texturePage].canvas,n.texturePosition.x,n.texturePosition.y,n.size.x,n.size.y,t*this._deviceCellWidth+this._deviceCharLeft-n.offset.x,i*this._deviceCellHeight+this._deviceCharTop-n.offset.y,h,n.size.y),this._ctx.restore()}_clipRow(e){this._ctx.beginPath(),this._ctx.rect(0,e*this._deviceCellHeight,this._bufferService.cols*this._deviceCellWidth,this._deviceCellHeight),this._ctx.clip()}_getFont(e,t){return`${t?"italic":""} ${e?this._optionsService.rawOptions.fontWeightBold:this._optionsService.rawOptions.fontWeight} ${this._optionsService.rawOptions.fontSize*this._coreBrowserService.dpr}px ${this._optionsService.rawOptions.fontFamily}`}}t.BaseRenderLayer=u;class g{get bitmap(){return this._bitmap}constructor(e){this.canvas=e,this._state=0,this._commitTimeout=void 0,this._bitmap=void 0,this.version=-1}refresh(){this._bitmap?.close(),this._bitmap=void 0,d.isSafari||(void 0===this._commitTimeout&&(this._commitTimeout=window.setTimeout((()=>this._generate()),100)),1===this._state&&(this._state=2))}_generate(){0===this._state&&(this._bitmap?.close(),this._bitmap=void 0,this._state=1,window.createImageBitmap(this.canvas).then((e=>{2===this._state?this.refresh():this._bitmap=e,this._state=0})),this._commitTimeout&&(this._commitTimeout=void 0))}}},949:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CanvasRenderer=void 0;const s=i(627),r=i(56),o=i(374),n=i(345),a=i(859),h=i(873),l=i(43),c=i(630),d=i(744);class _ extends a.Disposable{constructor(e,t,i,_,u,g,f,v,C,p,m){super(),this._terminal=e,this._screenElement=t,this._bufferService=_,this._charSizeService=u,this._optionsService=g,this._coreBrowserService=C,this._themeService=m,this._observerDisposable=this.register(new a.MutableDisposable),this._onRequestRedraw=this.register(new n.EventEmitter),this.onRequestRedraw=this._onRequestRedraw.event,this._onChangeTextureAtlas=this.register(new n.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new n.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event;const w=this._optionsService.rawOptions.allowTransparency;this._renderLayers=[new d.TextRenderLayer(this._terminal,this._screenElement,0,w,this._bufferService,this._optionsService,f,p,this._coreBrowserService,m),new c.SelectionRenderLayer(this._terminal,this._screenElement,1,this._bufferService,this._coreBrowserService,p,this._optionsService,m),new l.LinkRenderLayer(this._terminal,this._screenElement,2,i,this._bufferService,this._optionsService,p,this._coreBrowserService,m),new h.CursorRenderLayer(this._terminal,this._screenElement,3,this._onRequestRedraw,this._bufferService,this._optionsService,v,this._coreBrowserService,p,m)];for(const s of this._renderLayers)(0,n.forwardEvent)(s.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas);this.dimensions=(0,o.createRenderDimensions)(),this._devicePixelRatio=this._coreBrowserService.dpr,this._updateDimensions(),this._observerDisposable.value=(0,r.observeDevicePixelDimensions)(this._renderLayers[0].canvas,this._coreBrowserService.window,((e,t)=>this._setCanvasDevicePixelDimensions(e,t))),this.register(this._coreBrowserService.onWindowChange((e=>{this._observerDisposable.value=(0,r.observeDevicePixelDimensions)(this._renderLayers[0].canvas,e,((e,t)=>this._setCanvasDevicePixelDimensions(e,t)))}))),this.register((0,a.toDisposable)((()=>{for(const e of this._renderLayers)e.dispose();(0,s.removeTerminalFromCache)(this._terminal)})))}get textureAtlas(){return this._renderLayers[0].cacheCanvas}handleDevicePixelRatioChange(){this._devicePixelRatio!==this._coreBrowserService.dpr&&(this._devicePixelRatio=this._coreBrowserService.dpr,this.handleResize(this._bufferService.cols,this._bufferService.rows))}handleResize(e,t){this._updateDimensions();for(const i of this._renderLayers)i.resize(this.dimensions);this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}handleCharSizeChanged(){this.handleResize(this._bufferService.cols,this._bufferService.rows)}handleBlur(){this._runOperation((e=>e.handleBlur()))}handleFocus(){this._runOperation((e=>e.handleFocus()))}handleSelectionChanged(e,t,i=!1){this._runOperation((s=>s.handleSelectionChanged(e,t,i))),this._themeService.colors.selectionForeground&&this._onRequestRedraw.fire({start:0,end:this._bufferService.rows-1})}handleCursorMove(){this._runOperation((e=>e.handleCursorMove()))}clear(){this._runOperation((e=>e.reset()))}_runOperation(e){for(const t of this._renderLayers)e(t)}renderRows(e,t){for(const i of this._renderLayers)i.handleGridChanged(e,t)}clearTextureAtlas(){for(const e of this._renderLayers)e.clearTextureAtlas()}_updateDimensions(){if(!this._charSizeService.hasValidSize)return;const e=this._coreBrowserService.dpr;this.dimensions.device.char.width=Math.floor(this._charSizeService.width*e),this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.top=1===this._optionsService.rawOptions.lineHeight?0:Math.round((this.dimensions.device.cell.height-this.dimensions.device.char.height)/2),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.char.left=Math.floor(this._optionsService.rawOptions.letterSpacing/2),this.dimensions.device.canvas.height=this._bufferService.rows*this.dimensions.device.cell.height,this.dimensions.device.canvas.width=this._bufferService.cols*this.dimensions.device.cell.width,this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows,this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols}_setCanvasDevicePixelDimensions(e,t){this.dimensions.device.canvas.height=t,this.dimensions.device.canvas.width=e;for(const i of this._renderLayers)i.resize(this.dimensions);this._requestRedrawViewport()}_requestRedrawViewport(){this._onRequestRedraw.fire({start:0,end:this._bufferService.rows-1})}}t.CanvasRenderer=_},873:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CursorRenderLayer=void 0;const s=i(457),r=i(859),o=i(399),n=i(782),a=i(903);class h extends a.BaseRenderLayer{constructor(e,t,i,s,o,a,h,l,c,d){super(e,t,"cursor",i,!0,d,o,a,c,l),this._onRequestRedraw=s,this._coreService=h,this._cursorBlinkStateManager=this.register(new r.MutableDisposable),this._cell=new n.CellData,this._state={x:0,y:0,isFocused:!1,style:"",width:0},this._cursorRenderers={bar:this._renderBarCursor.bind(this),block:this._renderBlockCursor.bind(this),underline:this._renderUnderlineCursor.bind(this),outline:this._renderOutlineCursor.bind(this)},this.register(a.onOptionChange((()=>this._handleOptionsChanged()))),this._handleOptionsChanged()}resize(e){super.resize(e),this._state={x:0,y:0,isFocused:!1,style:"",width:0}}reset(){this._clearCursor(),this._cursorBlinkStateManager.value?.restartBlinkAnimation(),this._handleOptionsChanged()}handleBlur(){this._cursorBlinkStateManager.value?.pause(),this._onRequestRedraw.fire({start:this._bufferService.buffer.y,end:this._bufferService.buffer.y})}handleFocus(){this._cursorBlinkStateManager.value?.resume(),this._onRequestRedraw.fire({start:this._bufferService.buffer.y,end:this._bufferService.buffer.y})}_handleOptionsChanged(){this._optionsService.rawOptions.cursorBlink?this._cursorBlinkStateManager.value||(this._cursorBlinkStateManager.value=new s.CursorBlinkStateManager((()=>this._render(!0)),this._coreBrowserService)):this._cursorBlinkStateManager.clear(),this._onRequestRedraw.fire({start:this._bufferService.buffer.y,end:this._bufferService.buffer.y})}handleCursorMove(){this._cursorBlinkStateManager.value?.restartBlinkAnimation()}handleGridChanged(e,t){!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isPaused?this._render(!1):this._cursorBlinkStateManager.value.restartBlinkAnimation()}_render(e){if(!this._coreService.isCursorInitialized||this._coreService.isCursorHidden)return void this._clearCursor();const t=this._bufferService.buffer.ybase+this._bufferService.buffer.y,i=t-this._bufferService.buffer.ydisp;if(i<0||i>=this._bufferService.rows)return void this._clearCursor();const s=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1);if(this._bufferService.buffer.lines.get(t).loadCell(s,this._cell),void 0!==this._cell.content){if(!this._coreBrowserService.isFocused){this._clearCursor(),this._ctx.save(),this._ctx.fillStyle=this._themeService.colors.cursor.css;const e=this._optionsService.rawOptions.cursorStyle,t=this._optionsService.rawOptions.cursorInactiveStyle;return t&&"none"!==t&&this._cursorRenderers[t](s,i,this._cell),this._ctx.restore(),this._state.x=s,this._state.y=i,this._state.isFocused=!1,this._state.style=e,void(this._state.width=this._cell.getWidth())}if(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible){if(this._state){if(this._state.x===s&&this._state.y===i&&this._state.isFocused===this._coreBrowserService.isFocused&&this._state.style===this._optionsService.rawOptions.cursorStyle&&this._state.width===this._cell.getWidth())return;this._clearCursor()}this._ctx.save(),this._cursorRenderers[this._optionsService.rawOptions.cursorStyle||"block"](s,i,this._cell),this._ctx.restore(),this._state.x=s,this._state.y=i,this._state.isFocused=!1,this._state.style=this._optionsService.rawOptions.cursorStyle,this._state.width=this._cell.getWidth()}else this._clearCursor()}}_clearCursor(){this._state&&(o.isFirefox||this._coreBrowserService.dpr<1?this._clearAll():this._clearCells(this._state.x,this._state.y,this._state.width,1),this._state={x:0,y:0,isFocused:!1,style:"",width:0})}_renderBarCursor(e,t,i){this._ctx.save(),this._ctx.fillStyle=this._themeService.colors.cursor.css,this._fillLeftLineAtCell(e,t,this._optionsService.rawOptions.cursorWidth),this._ctx.restore()}_renderBlockCursor(e,t,i){this._ctx.save(),this._ctx.fillStyle=this._themeService.colors.cursor.css,this._fillCells(e,t,i.getWidth(),1),this._ctx.fillStyle=this._themeService.colors.cursorAccent.css,this._fillCharTrueColor(i,e,t),this._ctx.restore()}_renderUnderlineCursor(e,t,i){this._ctx.save(),this._ctx.fillStyle=this._themeService.colors.cursor.css,this._fillBottomLineAtCells(e,t),this._ctx.restore()}_renderOutlineCursor(e,t,i){this._ctx.save(),this._ctx.strokeStyle=this._themeService.colors.cursor.css,this._strokeRectAtCell(e,t,i.getWidth(),1),this._ctx.restore()}}t.CursorRenderLayer=h},574:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GridCache=void 0,t.GridCache=class{constructor(){this.cache=[]}resize(e,t){for(let i=0;i{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkRenderLayer=void 0;const s=i(197),r=i(237),o=i(903);class n extends o.BaseRenderLayer{constructor(e,t,i,s,r,o,n,a,h){super(e,t,"link",i,!0,h,r,o,n,a),this.register(s.onShowLinkUnderline((e=>this._handleShowLinkUnderline(e)))),this.register(s.onHideLinkUnderline((e=>this._handleHideLinkUnderline(e))))}resize(e){super.resize(e),this._state=void 0}reset(){this._clearCurrentLink()}_clearCurrentLink(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);const e=this._state.y2-this._state.y1-1;e>0&&this._clearCells(0,this._state.y1+1,this._state.cols,e),this._clearCells(0,this._state.y2,this._state.x2,1),this._state=void 0}}_handleShowLinkUnderline(e){if(e.fg===r.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._themeService.colors.background.css:e.fg&&(0,s.is256Color)(e.fg)?this._ctx.fillStyle=this._themeService.colors.ansi[e.fg].css:this._ctx.fillStyle=this._themeService.colors.foreground.css,e.y1===e.y2)this._fillBottomLineAtCells(e.x1,e.y1,e.x2-e.x1);else{this._fillBottomLineAtCells(e.x1,e.y1,e.cols-e.x1);for(let t=e.y1+1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionRenderLayer=void 0;const s=i(903);class r extends s.BaseRenderLayer{constructor(e,t,i,s,r,o,n,a){super(e,t,"selection",i,!0,a,s,n,o,r),this._clearState()}_clearState(){this._state={start:void 0,end:void 0,columnSelectMode:void 0,ydisp:void 0}}resize(e){super.resize(e),this._selectionModel.selectionStart&&this._selectionModel.selectionEnd&&(this._clearState(),this._redrawSelection(this._selectionModel.selectionStart,this._selectionModel.selectionEnd,this._selectionModel.columnSelectMode))}reset(){this._state.start&&this._state.end&&(this._clearState(),this._clearAll())}handleBlur(){this.reset(),this._redrawSelection(this._selectionModel.selectionStart,this._selectionModel.selectionEnd,this._selectionModel.columnSelectMode)}handleFocus(){this.reset(),this._redrawSelection(this._selectionModel.selectionStart,this._selectionModel.selectionEnd,this._selectionModel.columnSelectMode)}handleSelectionChanged(e,t,i){super.handleSelectionChanged(e,t,i),this._redrawSelection(e,t,i)}_redrawSelection(e,t,i){if(!this._didStateChange(e,t,i,this._bufferService.buffer.ydisp))return;if(this._clearAll(),!e||!t)return void this._clearState();const s=e[1]-this._bufferService.buffer.ydisp,r=t[1]-this._bufferService.buffer.ydisp,o=Math.max(s,0),n=Math.min(r,this._bufferService.rows-1);if(o>=this._bufferService.rows||n<0)this._state.ydisp=this._bufferService.buffer.ydisp;else{if(this._ctx.fillStyle=(this._coreBrowserService.isFocused?this._themeService.colors.selectionBackgroundTransparent:this._themeService.colors.selectionInactiveBackgroundTransparent).css,i){const i=e[0],s=t[0]-i,r=n-o+1;this._fillCells(i,o,s,r)}else{const i=s===o?e[0]:0,a=o===r?t[0]:this._bufferService.cols;this._fillCells(i,o,a-i,1);const h=Math.max(n-o-1,0);if(this._fillCells(0,o+1,this._bufferService.cols,h),o!==n){const e=r===n?t[0]:this._bufferService.cols;this._fillCells(0,n,e,1)}}this._state.start=[e[0],e[1]],this._state.end=[t[0],t[1]],this._state.columnSelectMode=i,this._state.ydisp=this._bufferService.buffer.ydisp}}_didStateChange(e,t,i,s){return!this._areCoordinatesEqual(e,this._state.start)||!this._areCoordinatesEqual(t,this._state.end)||i!==this._state.columnSelectMode||s!==this._state.ydisp}_areCoordinatesEqual(e,t){return!(!e||!t)&&e[0]===t[0]&&e[1]===t[1]}}t.SelectionRenderLayer=r},744:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextRenderLayer=void 0;const s=i(577),r=i(147),o=i(782),n=i(855),a=i(903),h=i(574);class l extends a.BaseRenderLayer{constructor(e,t,i,s,r,n,a,l,c,d){super(e,t,"text",i,s,d,r,n,l,c),this._characterJoinerService=a,this._characterWidth=0,this._characterFont="",this._characterOverlapCache={},this._workCell=new o.CellData,this._state=new h.GridCache,this.register(n.onSpecificOptionChange("allowTransparency",(e=>this._setTransparency(e))))}resize(e){super.resize(e);const t=this._getFont(!1,!1);this._characterWidth===e.device.char.width&&this._characterFont===t||(this._characterWidth=e.device.char.width,this._characterFont=t,this._characterOverlapCache={}),this._state.clear(),this._state.resize(this._bufferService.cols,this._bufferService.rows)}reset(){this._state.clear(),this._clearAll()}_forEachCell(e,t,i){for(let r=e;r<=t;r++){const e=r+this._bufferService.buffer.ydisp,t=this._bufferService.buffer.lines.get(e),o=this._characterJoinerService.getJoinedCharacters(e);for(let a=0;a0&&a===o[0][0]){h=!0;const i=o.shift();e=new s.JoinedCellData(this._workCell,t.translateToString(!0,i[0],i[1]),i[1]-i[0]),l=i[1]-1}!h&&this._isOverlapping(e)&&l{let l=null;e.isInverse()?l=e.isFgDefault()?this._themeService.colors.foreground.css:e.isFgRGB()?`rgb(${r.AttributeData.toColorRGB(e.getFgColor()).join(",")})`:this._themeService.colors.ansi[e.getFgColor()].css:e.isBgRGB()?l=`rgb(${r.AttributeData.toColorRGB(e.getBgColor()).join(",")})`:e.isBgPalette()&&(l=this._themeService.colors.ansi[e.getBgColor()].css);let c=!1;this._decorationService.forEachDecorationAtCell(t,this._bufferService.buffer.ydisp+h,void 0,(e=>{"top"!==e.options.layer&&c||(e.backgroundColorRGB&&(l=e.backgroundColorRGB.css),c="top"===e.options.layer)})),null===a&&(o=t,n=h),h!==n?(i.fillStyle=a||"",this._fillCells(o,n,s-o,1),o=t,n=h):a!==l&&(i.fillStyle=a||"",this._fillCells(o,n,t-o,1),o=t,n=h),a=l})),null!==a&&(i.fillStyle=a,this._fillCells(o,n,s-o,1)),i.restore()}_drawForeground(e,t){this._forEachCell(e,t,((e,t,i)=>this._drawChars(e,t,i)))}handleGridChanged(e,t){0!==this._state.cache.length&&(this._charAtlas&&this._charAtlas.beginFrame(),this._clearCells(0,e,this._bufferService.cols,t-e+1),this._drawBackground(e,t),this._drawForeground(e,t))}_isOverlapping(e){if(1!==e.getWidth())return!1;if(e.getCode()<256)return!1;const t=e.getChars();if(this._characterOverlapCache.hasOwnProperty(t))return this._characterOverlapCache[t];this._ctx.save(),this._ctx.font=this._characterFont;const i=Math.floor(this._ctx.measureText(t).width)>this._characterWidth;return this._ctx.restore(),this._characterOverlapCache[t]=i,i}}t.TextRenderLayer=l},274:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellColorResolver=void 0;const s=i(855),r=i(160),o=i(374);let n,a=0,h=0,l=!1,c=!1,d=!1,_=0;t.CellColorResolver=class{constructor(e,t,i,s,r,o){this._terminal=e,this._optionService=t,this._selectionRenderModel=i,this._decorationService=s,this._coreBrowserService=r,this._themeService=o,this.result={fg:0,bg:0,ext:0}}resolve(e,t,i,u){if(this.result.bg=e.bg,this.result.fg=e.fg,this.result.ext=268435456&e.bg?e.extended.ext:0,h=0,a=0,c=!1,l=!1,d=!1,n=this._themeService.colors,_=0,e.getCode()!==s.NULL_CELL_CODE&&4===e.extended.underlineStyle){const e=Math.max(1,Math.floor(this._optionService.rawOptions.fontSize*this._coreBrowserService.dpr/15));_=t*u%(2*Math.round(e))}if(this._decorationService.forEachDecorationAtCell(t,i,"bottom",(e=>{e.backgroundColorRGB&&(h=e.backgroundColorRGB.rgba>>8&16777215,c=!0),e.foregroundColorRGB&&(a=e.foregroundColorRGB.rgba>>8&16777215,l=!0)})),d=this._selectionRenderModel.isCellSelected(this._terminal,t,i),d){if(67108864&this.result.fg||0!=(50331648&this.result.bg)){if(67108864&this.result.fg)switch(50331648&this.result.fg){case 16777216:case 33554432:h=this._themeService.colors.ansi[255&this.result.fg].rgba;break;case 50331648:h=(16777215&this.result.fg)<<8|255;break;default:h=this._themeService.colors.foreground.rgba}else switch(50331648&this.result.bg){case 16777216:case 33554432:h=this._themeService.colors.ansi[255&this.result.bg].rgba;break;case 50331648:h=(16777215&this.result.bg)<<8|255}h=r.rgba.blend(h,4294967040&(this._coreBrowserService.isFocused?n.selectionBackgroundOpaque:n.selectionInactiveBackgroundOpaque).rgba|128)>>8&16777215}else h=(this._coreBrowserService.isFocused?n.selectionBackgroundOpaque:n.selectionInactiveBackgroundOpaque).rgba>>8&16777215;if(c=!0,n.selectionForeground&&(a=n.selectionForeground.rgba>>8&16777215,l=!0),(0,o.treatGlyphAsBackgroundColor)(e.getCode())){if(67108864&this.result.fg&&0==(50331648&this.result.bg))a=(this._coreBrowserService.isFocused?n.selectionBackgroundOpaque:n.selectionInactiveBackgroundOpaque).rgba>>8&16777215;else{if(67108864&this.result.fg)switch(50331648&this.result.bg){case 16777216:case 33554432:a=this._themeService.colors.ansi[255&this.result.bg].rgba;break;case 50331648:a=(16777215&this.result.bg)<<8|255}else switch(50331648&this.result.fg){case 16777216:case 33554432:a=this._themeService.colors.ansi[255&this.result.fg].rgba;break;case 50331648:a=(16777215&this.result.fg)<<8|255;break;default:a=this._themeService.colors.foreground.rgba}a=r.rgba.blend(a,4294967040&(this._coreBrowserService.isFocused?n.selectionBackgroundOpaque:n.selectionInactiveBackgroundOpaque).rgba|128)>>8&16777215}l=!0}}this._decorationService.forEachDecorationAtCell(t,i,"top",(e=>{e.backgroundColorRGB&&(h=e.backgroundColorRGB.rgba>>8&16777215,c=!0),e.foregroundColorRGB&&(a=e.foregroundColorRGB.rgba>>8&16777215,l=!0)})),c&&(h=d?-16777216&e.bg&-134217729|h|50331648:-16777216&e.bg|h|50331648),l&&(a=-16777216&e.fg&-67108865|a|50331648),67108864&this.result.fg&&(c&&!l&&(a=0==(50331648&this.result.bg)?-134217728&this.result.fg|16777215&n.background.rgba>>8|50331648:-134217728&this.result.fg|67108863&this.result.bg,l=!0),!c&&l&&(h=0==(50331648&this.result.fg)?-67108864&this.result.bg|16777215&n.foreground.rgba>>8|50331648:-67108864&this.result.bg|67108863&this.result.fg,c=!0)),n=void 0,this.result.bg=c?h:this.result.bg,this.result.fg=l?a:this.result.fg,this.result.ext&=536870911,this.result.ext|=_<<29&3758096384}}},627:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.removeTerminalFromCache=t.acquireTextureAtlas=void 0;const s=i(509),r=i(197),o=[];t.acquireTextureAtlas=function(e,t,i,n,a,h,l,c){const d=(0,r.generateConfig)(n,a,h,l,t,i,c);for(let s=0;s=0){if((0,r.configEquals)(t.config,d))return t.atlas;1===t.ownedBy.length?(t.atlas.dispose(),o.splice(s,1)):t.ownedBy.splice(i,1);break}}for(let s=0;s{Object.defineProperty(t,"__esModule",{value:!0}),t.is256Color=t.configEquals=t.generateConfig=void 0;const s=i(160);t.generateConfig=function(e,t,i,r,o,n,a){const h={foreground:n.foreground,background:n.background,cursor:s.NULL_COLOR,cursorAccent:s.NULL_COLOR,selectionForeground:s.NULL_COLOR,selectionBackgroundTransparent:s.NULL_COLOR,selectionBackgroundOpaque:s.NULL_COLOR,selectionInactiveBackgroundTransparent:s.NULL_COLOR,selectionInactiveBackgroundOpaque:s.NULL_COLOR,ansi:n.ansi.slice(),contrastCache:n.contrastCache,halfContrastCache:n.halfContrastCache};return{customGlyphs:o.customGlyphs,devicePixelRatio:a,letterSpacing:o.letterSpacing,lineHeight:o.lineHeight,deviceCellWidth:e,deviceCellHeight:t,deviceCharWidth:i,deviceCharHeight:r,fontFamily:o.fontFamily,fontSize:o.fontSize,fontWeight:o.fontWeight,fontWeightBold:o.fontWeightBold,allowTransparency:o.allowTransparency,drawBoldTextInBrightColors:o.drawBoldTextInBrightColors,minimumContrastRatio:o.minimumContrastRatio,colors:h}},t.configEquals=function(e,t){for(let i=0;i{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(399);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?"bottom":"ideographic"},457:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CursorBlinkStateManager=void 0;t.CursorBlinkStateManager=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this.isCursorVisible=!0,this._coreBrowserService.isFocused&&this._restartInterval()}get isPaused(){return!(this._blinkStartTimeout||this._blinkInterval)}dispose(){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}restartBlinkAnimation(){this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0}))))}_restartInterval(e=600){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout=this._coreBrowserService.window.setTimeout((()=>{if(this._animationTimeRestarted){const e=600-(Date.now()-this._animationTimeRestarted);if(this._animationTimeRestarted=void 0,e>0)return void this._restartInterval(e)}this.isCursorVisible=!1,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0})),this._blinkInterval=this._coreBrowserService.window.setInterval((()=>{if(this._animationTimeRestarted){const e=600-(Date.now()-this._animationTimeRestarted);return this._animationTimeRestarted=void 0,void this._restartInterval(e)}this.isCursorVisible=!this.isCursorVisible,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0}))}),600)}),e)}pause(){this.isCursorVisible=!0,this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}resume(){this.pause(),this._animationTimeRestarted=void 0,this._restartInterval(),this.restartBlinkAnimation()}}},860:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tryDrawCustomChar=t.powerlineDefinitions=t.boxDrawingDefinitions=t.blockElementDefinitions=void 0;const s=i(374);t.blockElementDefinitions={"▀":[{x:0,y:0,w:8,h:4}],"▁":[{x:0,y:7,w:8,h:1}],"▂":[{x:0,y:6,w:8,h:2}],"▃":[{x:0,y:5,w:8,h:3}],"▄":[{x:0,y:4,w:8,h:4}],"▅":[{x:0,y:3,w:8,h:5}],"▆":[{x:0,y:2,w:8,h:6}],"▇":[{x:0,y:1,w:8,h:7}],"█":[{x:0,y:0,w:8,h:8}],"▉":[{x:0,y:0,w:7,h:8}],"▊":[{x:0,y:0,w:6,h:8}],"▋":[{x:0,y:0,w:5,h:8}],"▌":[{x:0,y:0,w:4,h:8}],"▍":[{x:0,y:0,w:3,h:8}],"▎":[{x:0,y:0,w:2,h:8}],"▏":[{x:0,y:0,w:1,h:8}],"▐":[{x:4,y:0,w:4,h:8}],"▔":[{x:0,y:0,w:8,h:1}],"▕":[{x:7,y:0,w:1,h:8}],"▖":[{x:0,y:4,w:4,h:4}],"▗":[{x:4,y:4,w:4,h:4}],"▘":[{x:0,y:0,w:4,h:4}],"▙":[{x:0,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"▚":[{x:0,y:0,w:4,h:4},{x:4,y:4,w:4,h:4}],"▛":[{x:0,y:0,w:4,h:8},{x:4,y:0,w:4,h:4}],"▜":[{x:0,y:0,w:8,h:4},{x:4,y:0,w:4,h:8}],"▝":[{x:4,y:0,w:4,h:4}],"▞":[{x:4,y:0,w:4,h:4},{x:0,y:4,w:4,h:4}],"▟":[{x:4,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"🭰":[{x:1,y:0,w:1,h:8}],"🭱":[{x:2,y:0,w:1,h:8}],"🭲":[{x:3,y:0,w:1,h:8}],"🭳":[{x:4,y:0,w:1,h:8}],"🭴":[{x:5,y:0,w:1,h:8}],"🭵":[{x:6,y:0,w:1,h:8}],"🭶":[{x:0,y:1,w:8,h:1}],"🭷":[{x:0,y:2,w:8,h:1}],"🭸":[{x:0,y:3,w:8,h:1}],"🭹":[{x:0,y:4,w:8,h:1}],"🭺":[{x:0,y:5,w:8,h:1}],"🭻":[{x:0,y:6,w:8,h:1}],"🭼":[{x:0,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"🭽":[{x:0,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"🭾":[{x:7,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"🭿":[{x:7,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"🮀":[{x:0,y:0,w:8,h:1},{x:0,y:7,w:8,h:1}],"🮁":[{x:0,y:0,w:8,h:1},{x:0,y:2,w:8,h:1},{x:0,y:4,w:8,h:1},{x:0,y:7,w:8,h:1}],"🮂":[{x:0,y:0,w:8,h:2}],"🮃":[{x:0,y:0,w:8,h:3}],"🮄":[{x:0,y:0,w:8,h:5}],"🮅":[{x:0,y:0,w:8,h:6}],"🮆":[{x:0,y:0,w:8,h:7}],"🮇":[{x:6,y:0,w:2,h:8}],"🮈":[{x:5,y:0,w:3,h:8}],"🮉":[{x:3,y:0,w:5,h:8}],"🮊":[{x:2,y:0,w:6,h:8}],"🮋":[{x:1,y:0,w:7,h:8}],"🮕":[{x:0,y:0,w:2,h:2},{x:4,y:0,w:2,h:2},{x:2,y:2,w:2,h:2},{x:6,y:2,w:2,h:2},{x:0,y:4,w:2,h:2},{x:4,y:4,w:2,h:2},{x:2,y:6,w:2,h:2},{x:6,y:6,w:2,h:2}],"🮖":[{x:2,y:0,w:2,h:2},{x:6,y:0,w:2,h:2},{x:0,y:2,w:2,h:2},{x:4,y:2,w:2,h:2},{x:2,y:4,w:2,h:2},{x:6,y:4,w:2,h:2},{x:0,y:6,w:2,h:2},{x:4,y:6,w:2,h:2}],"🮗":[{x:0,y:2,w:8,h:2},{x:0,y:6,w:8,h:2}]};const r={"░":[[1,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],"▒":[[1,0],[0,0],[0,1],[0,0]],"▓":[[0,1],[1,1],[1,0],[1,1]]};t.boxDrawingDefinitions={"─":{1:"M0,.5 L1,.5"},"━":{3:"M0,.5 L1,.5"},"│":{1:"M.5,0 L.5,1"},"┃":{3:"M.5,0 L.5,1"},"┌":{1:"M0.5,1 L.5,.5 L1,.5"},"┏":{3:"M0.5,1 L.5,.5 L1,.5"},"┐":{1:"M0,.5 L.5,.5 L.5,1"},"┓":{3:"M0,.5 L.5,.5 L.5,1"},"└":{1:"M.5,0 L.5,.5 L1,.5"},"┗":{3:"M.5,0 L.5,.5 L1,.5"},"┘":{1:"M.5,0 L.5,.5 L0,.5"},"┛":{3:"M.5,0 L.5,.5 L0,.5"},"├":{1:"M.5,0 L.5,1 M.5,.5 L1,.5"},"┣":{3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"┤":{1:"M.5,0 L.5,1 M.5,.5 L0,.5"},"┫":{3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"┬":{1:"M0,.5 L1,.5 M.5,.5 L.5,1"},"┳":{3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"┴":{1:"M0,.5 L1,.5 M.5,.5 L.5,0"},"┻":{3:"M0,.5 L1,.5 M.5,.5 L.5,0"},"┼":{1:"M0,.5 L1,.5 M.5,0 L.5,1"},"╋":{3:"M0,.5 L1,.5 M.5,0 L.5,1"},"╴":{1:"M.5,.5 L0,.5"},"╸":{3:"M.5,.5 L0,.5"},"╵":{1:"M.5,.5 L.5,0"},"╹":{3:"M.5,.5 L.5,0"},"╶":{1:"M.5,.5 L1,.5"},"╺":{3:"M.5,.5 L1,.5"},"╷":{1:"M.5,.5 L.5,1"},"╻":{3:"M.5,.5 L.5,1"},"═":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"║":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╒":{1:(e,t)=>`M.5,1 L.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"╓":{1:(e,t)=>`M${.5-e},1 L${.5-e},.5 L1,.5 M${.5+e},.5 L${.5+e},1`},"╔":{1:(e,t)=>`M1,${.5-t} L${.5-e},${.5-t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"╕":{1:(e,t)=>`M0,${.5-t} L.5,${.5-t} L.5,1 M0,${.5+t} L.5,${.5+t}`},"╖":{1:(e,t)=>`M${.5+e},1 L${.5+e},.5 L0,.5 M${.5-e},.5 L${.5-e},1`},"╗":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5+e},${.5-t} L${.5+e},1`},"╘":{1:(e,t)=>`M.5,0 L.5,${.5+t} L1,${.5+t} M.5,${.5-t} L1,${.5-t}`},"╙":{1:(e,t)=>`M1,.5 L${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"╚":{1:(e,t)=>`M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0 M1,${.5+t} L${.5-e},${.5+t} L${.5-e},0`},"╛":{1:(e,t)=>`M0,${.5+t} L.5,${.5+t} L.5,0 M0,${.5-t} L.5,${.5-t}`},"╜":{1:(e,t)=>`M0,.5 L${.5+e},.5 L${.5+e},0 M${.5-e},.5 L${.5-e},0`},"╝":{1:(e,t)=>`M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M0,${.5+t} L${.5+e},${.5+t} L${.5+e},0`},"╞":{1:(e,t)=>`M.5,0 L.5,1 M.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"╟":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1 M${.5+e},.5 L1,.5`},"╠":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╡":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L.5,${.5-t} M0,${.5+t} L.5,${.5+t}`},"╢":{1:(e,t)=>`M0,.5 L${.5-e},.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╣":{1:(e,t)=>`M${.5+e},0 L${.5+e},1 M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0`},"╤":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t} M.5,${.5+t} L.5,1`},"╥":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},1 M${.5+e},.5 L${.5+e},1`},"╦":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"╧":{1:(e,t)=>`M.5,0 L.5,${.5-t} M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"╨":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"╩":{1:(e,t)=>`M0,${.5+t} L1,${.5+t} M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╪":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"╫":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╬":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╱":{1:"M1,0 L0,1"},"╲":{1:"M0,0 L1,1"},"╳":{1:"M1,0 L0,1 M0,0 L1,1"},"╼":{1:"M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"╽":{1:"M.5,.5 L.5,0",3:"M.5,.5 L.5,1"},"╾":{1:"M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"╿":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"┍":{1:"M.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"┎":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"┑":{1:"M.5,.5 L.5,1",3:"M.5,.5 L0,.5"},"┒":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"┕":{1:"M.5,.5 L.5,0",3:"M.5,.5 L1,.5"},"┖":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"┙":{1:"M.5,.5 L.5,0",3:"M.5,.5 L0,.5"},"┚":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,0"},"┝":{1:"M.5,0 L.5,1",3:"M.5,.5 L1,.5"},"┞":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"┟":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"┠":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1"},"┡":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"┢":{1:"M.5,.5 L.5,0",3:"M0.5,1 L.5,.5 L1,.5"},"┥":{1:"M.5,0 L.5,1",3:"M.5,.5 L0,.5"},"┦":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"┧":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"┨":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1"},"┩":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L0,.5"},"┪":{1:"M.5,.5 L.5,0",3:"M0,.5 L.5,.5 L.5,1"},"┭":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"┮":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"┯":{1:"M.5,.5 L.5,1",3:"M0,.5 L1,.5"},"┰":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"┱":{1:"M.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"┲":{1:"M.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"┵":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"┶":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"┷":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5"},"┸":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,0"},"┹":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"┺":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,.5 L1,.5"},"┽":{1:"M.5,0 L.5,1 M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"┾":{1:"M.5,0 L.5,1 M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"┿":{1:"M.5,0 L.5,1",3:"M0,.5 L1,.5"},"╀":{1:"M0,.5 L1,.5 M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"╁":{1:"M.5,.5 L.5,0 M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"╂":{1:"M0,.5 L1,.5",3:"M.5,0 L.5,1"},"╃":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"╄":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"╅":{1:"M.5,0 L.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"╆":{1:"M.5,0 L.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"╇":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0 M0,.5 L1,.5"},"╈":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"╉":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"╊":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"╌":{1:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"╍":{3:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"┄":{1:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"┅":{3:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"┈":{1:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"┉":{3:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"╎":{1:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"╏":{3:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"┆":{1:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"┇":{3:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"┊":{1:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"┋":{3:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"╭":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,1,.5`},"╮":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,0,.5`},"╯":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,0,.5`},"╰":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,1,.5`}},t.powerlineDefinitions={"":{d:"M0,0 L1,.5 L0,1",type:0,rightPadding:2},"":{d:"M-1,-.5 L1,.5 L-1,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M1,0 L0,.5 L1,1",type:0,leftPadding:2},"":{d:"M2,-.5 L0,.5 L2,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M0,0 L0,1 C0.552,1,1,0.776,1,.5 C1,0.224,0.552,0,0,0",type:0,rightPadding:1},"":{d:"M.2,1 C.422,1,.8,.826,.78,.5 C.8,.174,0.422,0,.2,0",type:1,rightPadding:1},"":{d:"M1,0 L1,1 C0.448,1,0,0.776,0,.5 C0,0.224,0.448,0,1,0",type:0,leftPadding:1},"":{d:"M.8,1 C0.578,1,0.2,.826,.22,.5 C0.2,0.174,0.578,0,0.8,0",type:1,leftPadding:1},"":{d:"M-.5,-.5 L1.5,1.5 L-.5,1.5",type:0},"":{d:"M-.5,-.5 L1.5,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M1.5,-.5 L-.5,1.5 L1.5,1.5",type:0},"":{d:"M1.5,-.5 L-.5,1.5 L-.5,-.5",type:0},"":{d:"M1.5,-.5 L-.5,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M-.5,-.5 L1.5,1.5 L1.5,-.5",type:0}},t.powerlineDefinitions[""]=t.powerlineDefinitions[""],t.powerlineDefinitions[""]=t.powerlineDefinitions[""],t.tryDrawCustomChar=function(e,i,n,l,c,d,_,u){const g=t.blockElementDefinitions[i];if(g)return function(e,t,i,s,r,o){for(let n=0;n7&&parseInt(l.slice(7,9),16)||1;else{if(!l.startsWith("rgba"))throw new Error(`Unexpected fillStyle color format "${l}" when drawing pattern glyph`);[d,_,u,g]=l.substring(5,l.length-1).split(",").map((e=>parseFloat(e)))}for(let e=0;ee.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5]),L:(e,t)=>e.lineTo(t[0],t[1]),M:(e,t)=>e.moveTo(t[0],t[1])};function h(e,t,i,s,r,o,a,h=0,l=0){const c=e.map((e=>parseFloat(e)||parseInt(e)));if(c.length<2)throw new Error("Too few arguments for instruction");for(let d=0;d{Object.defineProperty(t,"__esModule",{value:!0}),t.observeDevicePixelDimensions=void 0;const s=i(859);t.observeDevicePixelDimensions=function(e,t,i){let r=new t.ResizeObserver((t=>{const s=t.find((t=>t.target===e));if(!s)return;if(!("devicePixelContentBoxSize"in s))return r?.disconnect(),void(r=void 0);const o=s.devicePixelContentBoxSize[0].inlineSize,n=s.devicePixelContentBoxSize[0].blockSize;o>0&&n>0&&i(o,n)}));try{r.observe(e,{box:["device-pixel-content-box"]})}catch{r.disconnect(),r=void 0}return(0,s.toDisposable)((()=>r?.disconnect()))}},374:(e,t)=>{function i(e){return 57508<=e&&e<=57558}function s(e){return e>=128512&&e<=128591||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=129280&&e<=129535||e>=127462&&e<=127487}Object.defineProperty(t,"__esModule",{value:!0}),t.computeNextVariantOffset=t.createRenderDimensions=t.treatGlyphAsBackgroundColor=t.allowRescaling=t.isEmoji=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error("value must not be falsy");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.isEmoji=s,t.allowRescaling=function(e,t,r,o){return 1===t&&r>Math.ceil(1.5*o)&&void 0!==e&&e>255&&!s(e)&&!i(e)&&!function(e){return 57344<=e&&e<=63743}(e)},t.treatGlyphAsBackgroundColor=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}},t.computeNextVariantOffset=function(e,t,i=0){return(e-(2*Math.round(t)-i))%(2*Math.round(t))}},296:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createSelectionRenderModel=void 0;class i{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,i,s=!1){if(this.selectionStart=t,this.selectionEnd=i,!t||!i||t[0]===i[0]&&t[1]===i[1])return void this.clear();const r=e.buffers.active.ydisp,o=t[1]-r,n=i[1]-r,a=Math.max(o,0),h=Math.min(n,e.rows-1);a>=e.rows||h<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=o,this.viewportEndRow=n,this.viewportCappedStartRow=a,this.viewportCappedEndRow=h,this.startCol=t[0],this.endCol=i[0])}isCellSelected(e,t,i){return!!this.hasSelection&&(i-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&i>=this.viewportCappedStartRow&&t=this.viewportCappedStartRow&&t>=this.endCol&&i<=this.viewportCappedEndRow:i>this.viewportStartRow&&i=this.startCol&&t=this.startCol)}}t.createSelectionRenderModel=function(){return new i}},509:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextureAtlas=void 0;const s=i(237),r=i(860),o=i(374),n=i(160),a=i(345),h=i(485),l=i(385),c=i(147),d=i(855),_={texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},offset:{x:0,y:0},size:{x:0,y:0},sizeClipSpace:{x:0,y:0}};let u;class g{get pages(){return this._pages}constructor(e,t,i){this._document=e,this._config=t,this._unicodeService=i,this._didWarmUp=!1,this._cacheMap=new h.FourKeyMap,this._cacheMapCombined=new h.FourKeyMap,this._pages=[],this._activePages=[],this._workBoundingBox={top:0,left:0,bottom:0,right:0},this._workAttributeData=new c.AttributeData,this._textureSize=512,this._onAddTextureAtlasCanvas=new a.EventEmitter,this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=new a.EventEmitter,this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._requestClearModel=!1,this._createNewPage(),this._tmpCanvas=C(e,4*this._config.deviceCellWidth+4,this._config.deviceCellHeight+4),this._tmpCtx=(0,o.throwIfFalsy)(this._tmpCanvas.getContext("2d",{alpha:this._config.allowTransparency,willReadFrequently:!0}))}dispose(){for(const e of this.pages)e.canvas.remove();this._onAddTextureAtlasCanvas.dispose()}warmUp(){this._didWarmUp||(this._doWarmUp(),this._didWarmUp=!0)}_doWarmUp(){const e=new l.IdleTaskQueue;for(let t=33;t<126;t++)e.enqueue((()=>{if(!this._cacheMap.get(t,d.DEFAULT_COLOR,d.DEFAULT_COLOR,d.DEFAULT_EXT)){const e=this._drawToCache(t,d.DEFAULT_COLOR,d.DEFAULT_COLOR,d.DEFAULT_EXT);this._cacheMap.set(t,d.DEFAULT_COLOR,d.DEFAULT_COLOR,d.DEFAULT_EXT,e)}}))}beginFrame(){return this._requestClearModel}clearTexture(){if(0!==this._pages[0].currentRow.x||0!==this._pages[0].currentRow.y){for(const e of this._pages)e.clear();this._cacheMap.clear(),this._cacheMapCombined.clear(),this._didWarmUp=!1}}_createNewPage(){if(g.maxAtlasPages&&this._pages.length>=Math.max(4,g.maxAtlasPages)){const e=this._pages.filter((e=>2*e.canvas.width<=(g.maxTextureSize||4096))).sort(((e,t)=>t.canvas.width!==e.canvas.width?t.canvas.width-e.canvas.width:t.percentageUsed-e.percentageUsed));let t=-1,i=0;for(let a=0;ae.glyphs[0].texturePage)).sort(((e,t)=>e>t?1:-1)),o=this.pages.length-s.length,n=this._mergePages(s,o);n.version++;for(let a=r.length-1;a>=0;a--)this._deletePage(r[a]);this.pages.push(n),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(n.canvas)}const e=new f(this._document,this._textureSize);return this._pages.push(e),this._activePages.push(e),this._onAddTextureAtlasCanvas.fire(e.canvas),e}_mergePages(e,t){const i=2*e[0].canvas.width,s=new f(this._document,i,e);for(const[r,o]of e.entries()){const e=r*o.canvas.width%i,n=Math.floor(r/2)*o.canvas.height;s.ctx.drawImage(o.canvas,e,n);for(const s of o.glyphs)s.texturePage=t,s.sizeClipSpace.x=s.size.x/i,s.sizeClipSpace.y=s.size.y/i,s.texturePosition.x+=e,s.texturePosition.y+=n,s.texturePositionClipSpace.x=s.texturePosition.x/i,s.texturePositionClipSpace.y=s.texturePosition.y/i;this._onRemoveTextureAtlasCanvas.fire(o.canvas);const a=this._activePages.indexOf(o);-1!==a&&this._activePages.splice(a,1)}return s}_deletePage(e){this._pages.splice(e,1);for(let t=e;t=this._config.colors.ansi.length)throw new Error("No color found for idx "+e);return this._config.colors.ansi[e]}_getBackgroundColor(e,t,i,s){if(this._config.allowTransparency)return n.NULL_COLOR;let r;switch(e){case 16777216:case 33554432:r=this._getColorFromAnsiIndex(t);break;case 50331648:const e=c.AttributeData.toColorRGB(t);r=n.channels.toColor(e[0],e[1],e[2]);break;default:r=i?n.color.opaque(this._config.colors.foreground):this._config.colors.background}return r}_getForegroundColor(e,t,i,r,o,a,h,l,d,_){const u=this._getMinimumContrastColor(e,t,i,r,o,a,h,d,l,_);if(u)return u;let g;switch(o){case 16777216:case 33554432:this._config.drawBoldTextInBrightColors&&d&&a<8&&(a+=8),g=this._getColorFromAnsiIndex(a);break;case 50331648:const e=c.AttributeData.toColorRGB(a);g=n.channels.toColor(e[0],e[1],e[2]);break;default:g=h?this._config.colors.background:this._config.colors.foreground}return this._config.allowTransparency&&(g=n.color.opaque(g)),l&&(g=n.color.multiplyOpacity(g,s.DIM_OPACITY)),g}_resolveBackgroundRgba(e,t,i){switch(e){case 16777216:case 33554432:return this._getColorFromAnsiIndex(t).rgba;case 50331648:return t<<8;default:return i?this._config.colors.foreground.rgba:this._config.colors.background.rgba}}_resolveForegroundRgba(e,t,i,s){switch(e){case 16777216:case 33554432:return this._config.drawBoldTextInBrightColors&&s&&t<8&&(t+=8),this._getColorFromAnsiIndex(t).rgba;case 50331648:return t<<8;default:return i?this._config.colors.background.rgba:this._config.colors.foreground.rgba}}_getMinimumContrastColor(e,t,i,s,r,o,a,h,l,c){if(1===this._config.minimumContrastRatio||c)return;const d=this._getContrastCache(l),_=d.getColor(e,s);if(void 0!==_)return _||void 0;const u=this._resolveBackgroundRgba(t,i,a),g=this._resolveForegroundRgba(r,o,a,h),f=n.rgba.ensureContrastRatio(u,g,this._config.minimumContrastRatio/(l?2:1));if(!f)return void d.setColor(e,s,null);const v=n.channels.toColor(f>>24&255,f>>16&255,f>>8&255);return d.setColor(e,s,v),v}_getContrastCache(e){return e?this._config.colors.halfContrastCache:this._config.colors.contrastCache}_drawToCache(e,t,i,n,a=!1){const h="number"==typeof e?String.fromCharCode(e):e,l=Math.min(this._config.deviceCellWidth*Math.max(h.length,2)+4,this._textureSize);this._tmpCanvas.width=e?2*e-l:e-l;!1==!(l>=e)||0===u?(this._tmpCtx.setLineDash([Math.round(e),Math.round(e)]),this._tmpCtx.moveTo(h+u,s),this._tmpCtx.lineTo(c,s)):(this._tmpCtx.setLineDash([Math.round(e),Math.round(e)]),this._tmpCtx.moveTo(h,s),this._tmpCtx.lineTo(h+u,s),this._tmpCtx.moveTo(h+u+e,s),this._tmpCtx.lineTo(c,s)),l=(0,o.computeNextVariantOffset)(c-h,e,l);break;case 5:const g=.6,f=.3,v=c-h,C=Math.floor(g*v),p=Math.floor(f*v),m=v-C-p;this._tmpCtx.setLineDash([C,p,m]),this._tmpCtx.moveTo(h,s),this._tmpCtx.lineTo(c,s);break;default:this._tmpCtx.moveTo(h,s),this._tmpCtx.lineTo(c,s)}this._tmpCtx.stroke(),this._tmpCtx.restore()}if(this._tmpCtx.restore(),!B&&this._config.fontSize>=12&&!this._config.allowTransparency&&" "!==h){this._tmpCtx.save(),this._tmpCtx.textBaseline="alphabetic";const t=this._tmpCtx.measureText(h);if(this._tmpCtx.restore(),"actualBoundingBoxDescent"in t&&t.actualBoundingBoxDescent>0){this._tmpCtx.save();const t=new Path2D;t.rect(i,s-Math.ceil(e/2),this._config.deviceCellWidth*$,n-s+Math.ceil(e/2)),this._tmpCtx.clip(t),this._tmpCtx.lineWidth=3*this._config.devicePixelRatio,this._tmpCtx.strokeStyle=y.css,this._tmpCtx.strokeText(h,E,E+this._config.deviceCharHeight),this._tmpCtx.restore()}}}if(x){const e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),t=e%2==1?.5:0;this._tmpCtx.lineWidth=e,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(E,E+t),this._tmpCtx.lineTo(E+this._config.deviceCharWidth*$,E+t),this._tmpCtx.stroke()}if(B||this._tmpCtx.fillText(h,E,E+this._config.deviceCharHeight),"_"===h&&!this._config.allowTransparency){let e=v(this._tmpCtx.getImageData(E,E,this._config.deviceCellWidth,this._config.deviceCellHeight),y,k,O);if(e)for(let t=1;t<=5&&(this._tmpCtx.save(),this._tmpCtx.fillStyle=y.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.restore(),this._tmpCtx.fillText(h,E,E+this._config.deviceCharHeight-t),e=v(this._tmpCtx.getImageData(E,E,this._config.deviceCellWidth,this._config.deviceCellHeight),y,k,O),e);t++);}if(w){const e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/10)),t=this._tmpCtx.lineWidth%2==1?.5:0;this._tmpCtx.lineWidth=e,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(E,E+Math.floor(this._config.deviceCharHeight/2)-t),this._tmpCtx.lineTo(E+this._config.deviceCharWidth*$,E+Math.floor(this._config.deviceCharHeight/2)-t),this._tmpCtx.stroke()}this._tmpCtx.restore();const P=this._tmpCtx.getImageData(0,0,this._tmpCanvas.width,this._tmpCanvas.height);let I;if(I=this._config.allowTransparency?function(e){for(let t=0;t0)return!1;return!0}(P):v(P,y,k,O),I)return _;const F=this._findGlyphBoundingBox(P,this._workBoundingBox,l,D,B,E);let W,H;for(;;){if(0===this._activePages.length){const e=this._createNewPage();W=e,H=e.currentRow,H.height=F.size.y;break}W=this._activePages[this._activePages.length-1],H=W.currentRow;for(const e of this._activePages)F.size.y<=e.currentRow.height&&(W=e,H=e.currentRow);for(let e=this._activePages.length-1;e>=0;e--)for(const t of this._activePages[e].fixedRows)t.height<=H.height&&F.size.y<=t.height&&(W=this._activePages[e],H=t);if(H.y+F.size.y>=W.canvas.height||H.height>F.size.y+2){let e=!1;if(W.currentRow.y+W.currentRow.height+F.size.y>=W.canvas.height){let t;for(const e of this._activePages)if(e.currentRow.y+e.currentRow.height+F.size.y=g.maxAtlasPages&&H.y+F.size.y<=W.canvas.height&&H.height>=F.size.y&&H.x+F.size.x<=W.canvas.width)e=!0;else{const t=this._createNewPage();W=t,H=t.currentRow,H.height=F.size.y,e=!0}}e||(W.currentRow.height>0&&W.fixedRows.push(W.currentRow),H={x:0,y:W.currentRow.y+W.currentRow.height,height:F.size.y},W.fixedRows.push(H),W.currentRow={x:0,y:H.y+H.height,height:0})}if(H.x+F.size.x<=W.canvas.width)break;H===W.currentRow?(H.x=0,H.y+=H.height,H.height=0):W.fixedRows.splice(W.fixedRows.indexOf(H),1)}return F.texturePage=this._pages.indexOf(W),F.texturePosition.x=H.x,F.texturePosition.y=H.y,F.texturePositionClipSpace.x=H.x/W.canvas.width,F.texturePositionClipSpace.y=H.y/W.canvas.height,F.sizeClipSpace.x/=W.canvas.width,F.sizeClipSpace.y/=W.canvas.height,H.height=Math.max(H.height,F.size.y),H.x+=F.size.x,W.ctx.putImageData(P,F.texturePosition.x-this._workBoundingBox.left,F.texturePosition.y-this._workBoundingBox.top,this._workBoundingBox.left,this._workBoundingBox.top,F.size.x,F.size.y),W.addGlyph(F),W.version++,F}_findGlyphBoundingBox(e,t,i,s,r,o){t.top=0;const n=s?this._config.deviceCellHeight:this._tmpCanvas.height,a=s?this._config.deviceCellWidth:i;let h=!1;for(let l=0;l=o;l--){for(let i=0;i=0;l--){for(let i=0;i>>24,o=t.rgba>>>16&255,n=t.rgba>>>8&255,a=i.rgba>>>24,h=i.rgba>>>16&255,l=i.rgba>>>8&255,c=Math.floor((Math.abs(r-a)+Math.abs(o-h)+Math.abs(n-l))/12);let d=!0;for(let _=0;_=0;a--)(r=e[a])&&(n=(o<3?r(n):o>3?r(t,i,n):r(t,i))||n);return o>3&&n&&Object.defineProperty(t,i,n),n},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;const o=i(147),n=i(855),a=i(782),h=i(97);class l extends o.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData="",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=l;let c=t.CharacterJoinerService=class e{constructor(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new a.CellData}register(e){const t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id}deregister(e){for(let t=0;t1){const e=this._getJoinedRanges(s,a,o,t,r);for(let t=0;t1){const e=this._getJoinedRanges(s,a,o,t,r);for(let t=0;t{Object.defineProperty(t,"__esModule",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let i=0,s=0,r=0,o=0;var n,a,h,l,c;function d(e){const t=e.toString(16);return t.length<2?"0"+t:t}function _(e,t){return e>>0},e.toColor=function(t,i,s,r){return{css:e.toCss(t,i,s,r),rgba:e.toRgba(t,i,s,r)}}}(n||(t.channels=n={})),function(e){function t(e,t){return o=Math.round(255*t),[i,s,r]=c.toChannels(e.rgba),{css:n.toCss(i,s,r,o),rgba:n.toRgba(i,s,r,o)}}e.blend=function(e,t){if(o=(255&t.rgba)/255,1===o)return{css:t.css,rgba:t.rgba};const a=t.rgba>>24&255,h=t.rgba>>16&255,l=t.rgba>>8&255,c=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return i=c+Math.round((a-c)*o),s=d+Math.round((h-d)*o),r=_+Math.round((l-_)*o),{css:n.toCss(i,s,r),rgba:n.toRgba(i,s,r)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=c.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return n.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[i,s,r]=c.toChannels(t),{css:n.toCss(i,s,r),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return o=255&e.rgba,t(e,o*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(a||(t.color=a={})),function(e){let t,a;try{const e=document.createElement("canvas");e.width=1,e.height=1;const i=e.getContext("2d",{willReadFrequently:!0});i&&(t=i,t.globalCompositeOperation="copy",a=t.createLinearGradient(0,0,1,1))}catch{}e.toColor=function(e){if(e.match(/#[\da-f]{3,8}/i))switch(e.length){case 4:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),n.toColor(i,s,r);case 5:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),o=parseInt(e.slice(4,5).repeat(2),16),n.toColor(i,s,r,o);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const h=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(h)return i=parseInt(h[1]),s=parseInt(h[2]),r=parseInt(h[3]),o=Math.round(255*(void 0===h[5]?1:parseFloat(h[5]))),n.toColor(i,s,r,o);if(!t||!a)throw new Error("css.toColor: Unsupported css format");if(t.fillStyle=a,t.fillStyle=e,"string"!=typeof t.fillStyle)throw new Error("css.toColor: Unsupported css format");if(t.fillRect(0,0,1,1),[i,s,r,o]=t.getImageData(0,0,1,1).data,255!==o)throw new Error("css.toColor: Unsupported css format");return{rgba:n.toRgba(i,s,r,o),css:e}}}(h||(t.css=h={})),function(e){function t(e,t,i){const s=e/255,r=t/255,o=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(l||(t.rgb=l={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,o=e>>8&255;let n=t>>24&255,a=t>>16&255,h=t>>8&255,c=_(l.relativeLuminance2(n,a,h),l.relativeLuminance2(s,r,o));for(;c0||a>0||h>0);)n-=Math.max(0,Math.ceil(.1*n)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),c=_(l.relativeLuminance2(n,a,h),l.relativeLuminance2(s,r,o));return(n<<24|a<<16|h<<8|255)>>>0}function a(e,t,i){const s=e>>24&255,r=e>>16&255,o=e>>8&255;let n=t>>24&255,a=t>>16&255,h=t>>8&255,c=_(l.relativeLuminance2(n,a,h),l.relativeLuminance2(s,r,o));for(;c>>0}e.blend=function(e,t){if(o=(255&t)/255,1===o)return t;const a=t>>24&255,h=t>>16&255,l=t>>8&255,c=e>>24&255,d=e>>16&255,_=e>>8&255;return i=c+Math.round((a-c)*o),s=d+Math.round((h-d)*o),r=_+Math.round((l-_)*o),n.toRgba(i,s,r)},e.ensureContrastRatio=function(e,i,s){const r=l.relativeLuminance(e>>8),o=l.relativeLuminance(i>>8);if(_(r,o)>8));if(n_(r,l.relativeLuminance(t>>8))?o:t}return o}const n=a(e,i,s),h=_(r,l.relativeLuminance(n>>8));if(h_(r,l.relativeLuminance(o>>8))?n:o}return n}},e.reduceLuminance=t,e.increaseLuminance=a,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}}(c||(t.rgba=c={})),t.toPaddedHex=d,t.contrastRatio=_},345:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;tt.fire(e)))},t.runAndSubscribe=function(e,t){return t(void 0),e((e=>t(e)))}},859:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},485:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,o){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,o)}get(e,t,i,s){return this._data.get(e,t)?.get(i,s)}clear(){this._data.clear()}}},399:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode="undefined"!=typeof s&&"title"in s;const i=t.isNode?"node":navigator.userAgent,r=t.isNode?"node":navigator.platform;t.isFirefox=i.includes("Firefox"),t.isLegacyEdge=i.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\/(\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(r),t.isIpad="iPad"===r,t.isIphone="iPhone"===r,t.isWindows=["Windows","Win16","Win32","WinCE"].includes(r),t.isLinux=r.indexOf("Linux")>=0,t.isChromeOS=/\bCrOS\b/.test(i)},385:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const s=i(399);class r{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._ir)return s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),void this._start();s=r}this.clear()}}class o extends r{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=o,t.IdleTaskQueue=!s.isNode&&"requestIdleCallback"in window?class extends r{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:o,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},147:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}t.AttributeData=i;class s{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){const e=(3758096384&this._ext)>>29;return e<0?4294967288^e:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},782:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;const s=i(133),r=i(855),o=i(147);class n extends o.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new o.ExtendedAttrs,this.combinedData=""}static fromCharData(e){const t=new n;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=n},855:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},133:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s="";for(let r=t;r65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let o=r;o=i)return this._interim=r,s;const n=e.charCodeAt(o);56320<=n&&n<=57343?t[s++]=1024*(r-55296)+n-56320+65536:(t[s++]=r,t[s++]=n)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,o,n,a=0,h=0,l=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let o,n=0;for(;(o=63&this.interim[++n])&&n<4;)r<<=6,r|=o;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,c=h-n;for(;l=i)return 0;if(o=e[l++],128!=(192&o)){l--,s=!0;break}this.interim[n++]=o,r<<=6,r|=63&o}s||(2===h?r<128?l--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const c=i-4;let d=l;for(;d=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&o,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(o=e[d++],128!=(192&o)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=o,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&o)<<6|63&n,h<65536||h>1114111)continue;t[a++]=h}}return a}}},776:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,o=arguments.length,n=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(n=(o<3?r(n):o>3?r(t,i,n):r(t,i))||n);return o>3&&n&&Object.defineProperty(t,i,n),n},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;const o=i(859),n=i(97),a={trace:n.LogLevelEnum.TRACE,debug:n.LogLevelEnum.DEBUG,info:n.LogLevelEnum.INFO,warn:n.LogLevelEnum.WARN,error:n.LogLevelEnum.ERROR,off:n.LogLevelEnum.OFF};let h,l=t.LogService=class extends o.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=n.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",(()=>this._updateLogLevel()))),h=this}_updateLogLevel(){this._logLevel=a[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;tJSON.stringify(e))).join(", ")})`);const t=s.apply(this,e);return h.trace(`GlyphRenderer#${s.name} return`,t),t}}},726:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;const i="di$target",s="di$dependencies";t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[s]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const r=function(e,t,o){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");!function(e,t,r){t[i]===t?t[s].push({id:e,index:r}):(t[s]=[{id:e,index:r}],t[i]=t)}(r,e,o)};return r.toString=()=>e,t.serviceRegistry.set(e,r),r}},97:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(726);var r;t.IBufferService=(0,s.createDecorator)("BufferService"),t.ICoreMouseService=(0,s.createDecorator)("CoreMouseService"),t.ICoreService=(0,s.createDecorator)("CoreService"),t.ICharsetService=(0,s.createDecorator)("CharsetService"),t.IInstantiationService=(0,s.createDecorator)("InstantiationService"),function(e){e[e.TRACE=0]="TRACE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.OFF=5]="OFF"}(r||(t.LogLevelEnum=r={})),t.ILogService=(0,s.createDecorator)("LogService"),t.IOptionsService=(0,s.createDecorator)("OptionsService"),t.IOscLinkService=(0,s.createDecorator)("OscLinkService"),t.IUnicodeService=(0,s.createDecorator)("UnicodeService"),t.IDecorationService=(0,s.createDecorator)("DecorationService")}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var o=t[s]={exports:{}};return e[s].call(o.exports,o,o.exports,i),o.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.CanvasAddon=void 0;const t=i(345),s=i(859),o=i(776),n=i(949);class a extends s.Disposable{constructor(){super(...arguments),this._onChangeTextureAtlas=this.register(new t.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new t.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event}get textureAtlas(){return this._renderer?.textureAtlas}activate(e){const i=e._core;if(!e.element)return void this.register(i.onWillOpen((()=>this.activate(e))));this._terminal=e;const r=i.coreService,a=i.optionsService,h=i.screenElement,l=i.linkifier,c=i,d=c._bufferService,_=c._renderService,u=c._characterJoinerService,g=c._charSizeService,f=c._coreBrowserService,v=c._decorationService,C=c._logService,p=c._themeService;(0,o.setTraceLogger)(C),this._renderer=new n.CanvasRenderer(e,h,l,d,g,a,u,r,f,v,p),this.register((0,t.forwardEvent)(this._renderer.onChangeTextureAtlas,this._onChangeTextureAtlas)),this.register((0,t.forwardEvent)(this._renderer.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas)),_.setRenderer(this._renderer),_.handleResize(d.cols,d.rows),this.register((0,s.toDisposable)((()=>{_.setRenderer(this._terminal._core._createRenderer()),_.handleResize(e.cols,e.rows),this._renderer?.dispose(),this._renderer=void 0})))}clearTextureAtlas(){this._renderer?.clearTextureAtlas()}}e.CanvasAddon=a})(),r})()))},65606:e=>{var t=e.exports={};var i;var s;function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){i=setTimeout}else{i=r}}catch(e){i=r}try{if(typeof clearTimeout==="function"){s=clearTimeout}else{s=o}}catch(e){s=o}})();function n(e){if(i===setTimeout){return setTimeout(e,0)}if((i===r||!i)&&setTimeout){i=setTimeout;return setTimeout(e,0)}try{return i(e,0)}catch(t){try{return i.call(null,e,0)}catch(t){return i.call(this,e,0)}}}function a(e){if(s===clearTimeout){return clearTimeout(e)}if((s===o||!s)&&clearTimeout){s=clearTimeout;return clearTimeout(e)}try{return s(e)}catch(t){try{return s.call(null,e)}catch(t){return s.call(this,e)}}}var h=[];var l=false;var c;var d=-1;function _(){if(!l||!c){return}l=false;if(c.length){h=c.concat(h)}else{d=-1}if(h.length){u()}}function u(){if(l){return}var e=n(_);l=true;var t=h.length;while(t){c=h;h=[];while(++d1){for(var i=1;i{var p;var r=t(86672);if(true){e.H=r.createRoot;p=r.hydrateRoot}else{var o}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2959.b24c9f67d639376f5ead.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2959.b24c9f67d639376f5ead.js deleted file mode 100644 index 1c5d8f13e8fb305637065abcb50877de3f74fba8..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/2959.b24c9f67d639376f5ead.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[2959],{42959:(e,t,n)=>{n.r(t);n.d(t,{scheme:()=>C});var a="builtin",i="comment",r="string",s="symbol",l="atom",c="number",o="bracket";var d=2;function f(e){var t={},n=e.split(" ");for(var a=0;ainteger char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?");var p=f("define let letrec let* lambda define-macro defmacro let-syntax letrec-syntax let-values let*-values define-syntax syntax-rules define-values when unless");function m(e,t,n){this.indent=e;this.type=t;this.prev=n}function h(e,t,n){e.indentStack=new m(t,n,e.indentStack)}function g(e){e.indentStack=e.indentStack.prev}var x=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i);var b=new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i);var v=new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i);var k=new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);function y(e){return e.match(x)}function w(e){return e.match(b)}function E(e,t){if(t===true){e.backUp(1)}return e.match(k)}function S(e){return e.match(v)}function q(e,t){var n,a=false;while((n=e.next())!=null){if(n==t.token&&!a){t.state.mode=false;break}a=!a&&n=="\\"}}const C={name:"scheme",startState:function(){return{indentStack:null,indentation:0,mode:false,sExprComment:false,sExprQuote:false}},token:function(e,t){if(t.indentStack==null&&e.sol()){t.indentation=e.indentation()}if(e.eatSpace()){return null}var n=null;switch(t.mode){case"string":q(e,{token:'"',state:t});n=r;break;case"symbol":q(e,{token:"|",state:t});n=s;break;case"comment":var f,m=false;while((f=e.next())!=null){if(f=="#"&&m){t.mode=false;break}m=f=="|"}n=i;break;case"s-expr-comment":t.mode=false;if(e.peek()=="("||e.peek()=="["){t.sExprComment=0}else{e.eatWhile(/[^\s\(\)\[\]]/);n=i;break}default:var x=e.next();if(x=='"'){t.mode="string";n=r}else if(x=="'"){if(e.peek()=="("||e.peek()=="["){if(typeof t.sExprQuote!="number"){t.sExprQuote=0}n=l}else{e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/);n=l}}else if(x=="|"){t.mode="symbol";n=s}else if(x=="#"){if(e.eat("|")){t.mode="comment";n=i}else if(e.eat(/[tf]/i)){n=l}else if(e.eat(";")){t.mode="s-expr-comment";n=i}else{var b=null,v=false,k=true;if(e.eat(/[ei]/i)){v=true}else{e.backUp(1)}if(e.match(/^#b/i)){b=y}else if(e.match(/^#o/i)){b=w}else if(e.match(/^#x/i)){b=S}else if(e.match(/^#d/i)){b=E}else if(e.match(/^[-+0-9.]/,false)){k=false;b=E}else if(!v){e.eat("#")}if(b!=null){if(k&&!v){e.match(/^#[ei]/i)}if(b(e))n=c}}}else if(/^[-+0-9.]/.test(x)&&E(e,true)){n=c}else if(x==";"){e.skipToEnd();n=i}else if(x=="("||x=="["){var C="";var Q=e.column(),_;while((_=e.eat(/[^\s\(\[\;\)\]]/))!=null){C+=_}if(C.length>0&&p.propertyIsEnumerable(C)){h(t,Q+d,x)}else{e.eatSpace();if(e.eol()||e.peek()==";"){h(t,Q+1,x)}else{h(t,Q+e.current().length,x)}}e.backUp(e.current().length-1);if(typeof t.sExprComment=="number")t.sExprComment++;if(typeof t.sExprQuote=="number")t.sExprQuote++;n=o}else if(x==")"||x=="]"){n=o;if(t.indentStack!=null&&t.indentStack.type==(x==")"?"(":"[")){g(t);if(typeof t.sExprComment=="number"){if(--t.sExprComment==0){n=i;t.sExprComment=false}}if(typeof t.sExprQuote=="number"){if(--t.sExprQuote==0){n=l;t.sExprQuote=false}}}}else{e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/);if(u&&u.propertyIsEnumerable(e.current())){n=a}else n="variable"}}return typeof t.sExprComment=="number"?i:typeof t.sExprQuote=="number"?l:n},indent:function(e){if(e.indentStack==null)return e.indentation;return e.indentStack.indent},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:";;"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3048.59e6166a886a78f4f698.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3048.59e6166a886a78f4f698.js deleted file mode 100644 index 56644abb92fee3e308b72c511e75e4d1bd36a89b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3048.59e6166a886a78f4f698.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3048],{53048:(r,a,e)=>{e.d(a,{diagram:()=>_});var s=e(41359);var t=e(15051);var l=e(94065);var p=e(33416);var v=e(94746);var i=e(20778);var n=e(57590);var u=e(68232);var c=e(76261);var o=e(96049);var b=e(75905);var _={parser:s._$,get db(){return new s.NM},renderer:s.Lh,styles:s.tM,init:(0,b.K2)((r=>{if(!r.class){r.class={}}r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute}),"init")}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/30e889b58cbc51adfbb0.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/30e889b58cbc51adfbb0.woff deleted file mode 100644 index 4048e4bd6e17113e418683b90b8a5d6b4352d72a..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/30e889b58cbc51adfbb0.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3111.33574d9124842f355bce.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3111.33574d9124842f355bce.js deleted file mode 100644 index 027f6aef3332dc158a444864ad084afc79676ac7..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3111.33574d9124842f355bce.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3111,5492],{13111:(e,t,n)=>{n.r(t);n.d(t,{Bounce:()=>N,Flip:()=>k,Icons:()=>v,Slide:()=>R,ToastContainer:()=>M,Zoom:()=>w,collapseToast:()=>f,cssTransition:()=>m,toast:()=>H,useToast:()=>b,useToastContainer:()=>T});var o=n(44914);var s=n.n(o);function a(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t"number"==typeof e&&!isNaN(e),c=e=>"string"==typeof e,u=e=>"function"==typeof e,d=e=>c(e)||u(e)?e:null,p=e=>(0,o.isValidElement)(e)||c(e)||u(e)||l(e);function f(e,t,n){void 0===n&&(n=300);const{scrollHeight:o,style:s}=e;requestAnimationFrame((()=>{s.minHeight="initial",s.height=o+"px",s.transition=`all ${n}ms`,requestAnimationFrame((()=>{s.height="0",s.padding="0",s.margin="0",setTimeout(t,n)}))}))}function m(e){let{enter:t,exit:n,appendPosition:a=!1,collapse:i=!0,collapseDuration:r=300}=e;return function(e){let{children:l,position:c,preventExitTransition:u,done:d,nodeRef:p,isIn:m}=e;const g=a?`${t}--${c}`:t,h=a?`${n}--${c}`:n,y=(0,o.useRef)(0);return(0,o.useLayoutEffect)((()=>{const e=p.current,t=g.split(" "),n=o=>{o.target===p.current&&(e.dispatchEvent(new Event("d")),e.removeEventListener("animationend",n),e.removeEventListener("animationcancel",n),0===y.current&&"animationcancel"!==o.type&&e.classList.remove(...t))};e.classList.add(...t),e.addEventListener("animationend",n),e.addEventListener("animationcancel",n)}),[]),(0,o.useEffect)((()=>{const e=p.current,t=()=>{e.removeEventListener("animationend",t),i?f(e,d,r):d()};m||(u?t():(y.current=1,e.className+=` ${h}`,e.addEventListener("animationend",t)))}),[m]),s().createElement(s().Fragment,null,l)}}function g(e,t){return{content:e.content,containerId:e.props.containerId,id:e.props.toastId,theme:e.props.theme,type:e.props.type,data:e.props.data||{},isLoading:e.props.isLoading,icon:e.props.icon,status:t}}const h={list:new Map,emitQueue:new Map,on(e,t){return this.list.has(e)||this.list.set(e,[]),this.list.get(e).push(t),this},off(e,t){if(t){const n=this.list.get(e).filter((e=>e!==t));return this.list.set(e,n),this}return this.list.delete(e),this},cancelEmit(e){const t=this.emitQueue.get(e);return t&&(t.forEach(clearTimeout),this.emitQueue.delete(e)),this},emit(e){this.list.has(e)&&this.list.get(e).forEach((t=>{const n=setTimeout((()=>{t(...[].slice.call(arguments,1))}),0);this.emitQueue.has(e)||this.emitQueue.set(e,[]),this.emitQueue.get(e).push(n)}))}},y=e=>{let{theme:t,type:n,...o}=e;return s().createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:"colored"===t?"currentColor":`var(--toastify-icon-color-${n})`,...o})},v={info:function(e){return s().createElement(y,{...e},s().createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))},warning:function(e){return s().createElement(y,{...e},s().createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))},success:function(e){return s().createElement(y,{...e},s().createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))},error:function(e){return s().createElement(y,{...e},s().createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))},spinner:function(){return s().createElement("div",{className:"Toastify__spinner"})}};function T(e){const[,t]=(0,o.useReducer)((e=>e+1),0),[n,s]=(0,o.useState)([]),a=(0,o.useRef)(null),i=(0,o.useRef)(new Map).current,r=e=>-1!==n.indexOf(e),f=(0,o.useRef)({toastKey:1,displayedToast:0,count:0,queue:[],props:e,containerId:null,isToastActive:r,getToast:e=>i.get(e)}).current;function m(e){let{containerId:t}=e;const{limit:n}=f.props;!n||t&&f.containerId!==t||(f.count-=f.queue.length,f.queue=[])}function y(e){s((t=>null==e?[]:t.filter((t=>t!==e))))}function T(){const{toastContent:e,toastProps:t,staleId:n}=f.queue.shift();C(e,t,n)}function E(e,n){let{delay:s,staleId:r,...m}=n;if(!p(e)||function(e){return!a.current||f.props.enableMultiContainer&&e.containerId!==f.props.containerId||i.has(e.toastId)&&null==e.updateId}(m))return;const{toastId:E,updateId:b,data:_}=m,{props:I}=f,L=()=>y(E),O=null==b;O&&f.count++;const N={...I,style:I.toastStyle,key:f.toastKey++,...m,toastId:E,updateId:b,data:_,closeToast:L,isIn:!1,className:d(m.className||I.toastClassName),bodyClassName:d(m.bodyClassName||I.bodyClassName),progressClassName:d(m.progressClassName||I.progressClassName),autoClose:!m.isLoading&&(R=m.autoClose,w=I.autoClose,!1===R||l(R)&&R>0?R:w),deleteToast(){const e=g(i.get(E),"removed");i.delete(E),h.emit(4,e);const n=f.queue.length;if(f.count=null==E?f.count-f.displayedToast:f.count-1,f.count<0&&(f.count=0),n>0){const e=null==E?f.props.limit:1;if(1===n||1===e)f.displayedToast++,T();else{const t=e>n?n:e;f.displayedToast=t;for(let e=0;ee in v)(n)&&(i=v[n](r))),i}(N),u(m.onOpen)&&(N.onOpen=m.onOpen),u(m.onClose)&&(N.onClose=m.onClose),N.closeButton=I.closeButton,!1===m.closeButton||p(m.closeButton)?N.closeButton=m.closeButton:!0===m.closeButton&&(N.closeButton=!p(I.closeButton)||I.closeButton);let k=e;(0,o.isValidElement)(e)&&!c(e.type)?k=(0,o.cloneElement)(e,{closeToast:L,toastProps:N,data:_}):u(e)&&(k=e({closeToast:L,toastProps:N,data:_})),I.limit&&I.limit>0&&f.count>I.limit&&O?f.queue.push({toastContent:k,toastProps:N,staleId:r}):l(s)?setTimeout((()=>{C(k,N,r)}),s):C(k,N,r)}function C(e,t,n){const{toastId:o}=t;n&&i.delete(n);const a={content:e,props:t};i.set(o,a),s((e=>[...e,o].filter((e=>e!==n)))),h.emit(4,g(a,null==a.props.updateId?"added":"updated"))}return(0,o.useEffect)((()=>(f.containerId=e.containerId,h.cancelEmit(3).on(0,E).on(1,(e=>a.current&&y(e))).on(5,m).emit(2,f),()=>{i.clear(),h.emit(3,f)})),[]),(0,o.useEffect)((()=>{f.props=e,f.isToastActive=r,f.displayedToast=n.length})),{getToastToRender:function(t){const n=new Map,o=Array.from(i.values());return e.newestOnTop&&o.reverse(),o.forEach((e=>{const{position:t}=e.props;n.has(t)||n.set(t,[]),n.get(t).push(e)})),Array.from(n,(e=>t(e[0],e[1])))},containerRef:a,isToastActive:r}}function E(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientX:e.clientX}function C(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientY:e.clientY}function b(e){const[t,n]=(0,o.useState)(!1),[s,a]=(0,o.useState)(!1),i=(0,o.useRef)(null),r=(0,o.useRef)({start:0,x:0,y:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,boundingRect:null,didMove:!1}).current,l=(0,o.useRef)(e),{autoClose:c,pauseOnHover:d,closeToast:p,onClick:f,closeOnClick:m}=e;function g(t){if(e.draggable){"touchstart"===t.nativeEvent.type&&t.nativeEvent.preventDefault(),r.didMove=!1,document.addEventListener("mousemove",T),document.addEventListener("mouseup",b),document.addEventListener("touchmove",T),document.addEventListener("touchend",b);const n=i.current;r.canCloseOnClick=!0,r.canDrag=!0,r.boundingRect=n.getBoundingClientRect(),n.style.transition="",r.x=E(t.nativeEvent),r.y=C(t.nativeEvent),"x"===e.draggableDirection?(r.start=r.x,r.removalDistance=n.offsetWidth*(e.draggablePercent/100)):(r.start=r.y,r.removalDistance=n.offsetHeight*(80===e.draggablePercent?1.5*e.draggablePercent:e.draggablePercent/100))}}function h(t){if(r.boundingRect){const{top:n,bottom:o,left:s,right:a}=r.boundingRect;"touchend"!==t.nativeEvent.type&&e.pauseOnHover&&r.x>=s&&r.x<=a&&r.y>=n&&r.y<=o?v():y()}}function y(){n(!0)}function v(){n(!1)}function T(n){const o=i.current;r.canDrag&&o&&(r.didMove=!0,t&&v(),r.x=E(n),r.y=C(n),r.delta="x"===e.draggableDirection?r.x-r.start:r.y-r.start,r.start!==r.x&&(r.canCloseOnClick=!1),o.style.transform=`translate${e.draggableDirection}(${r.delta}px)`,o.style.opacity=""+(1-Math.abs(r.delta/r.removalDistance)))}function b(){document.removeEventListener("mousemove",T),document.removeEventListener("mouseup",b),document.removeEventListener("touchmove",T),document.removeEventListener("touchend",b);const t=i.current;if(r.canDrag&&r.didMove&&t){if(r.canDrag=!1,Math.abs(r.delta)>r.removalDistance)return a(!0),void e.closeToast();t.style.transition="transform 0.2s, opacity 0.2s",t.style.transform=`translate${e.draggableDirection}(0)`,t.style.opacity="1"}}(0,o.useEffect)((()=>{l.current=e})),(0,o.useEffect)((()=>(i.current&&i.current.addEventListener("d",y,{once:!0}),u(e.onOpen)&&e.onOpen((0,o.isValidElement)(e.children)&&e.children.props),()=>{const e=l.current;u(e.onClose)&&e.onClose((0,o.isValidElement)(e.children)&&e.children.props)})),[]),(0,o.useEffect)((()=>(e.pauseOnFocusLoss&&(document.hasFocus()||v(),window.addEventListener("focus",y),window.addEventListener("blur",v)),()=>{e.pauseOnFocusLoss&&(window.removeEventListener("focus",y),window.removeEventListener("blur",v))})),[e.pauseOnFocusLoss]);const _={onMouseDown:g,onTouchStart:g,onMouseUp:h,onTouchEnd:h};return c&&d&&(_.onMouseEnter=v,_.onMouseLeave=y),m&&(_.onClick=e=>{f&&f(e),r.canCloseOnClick&&p()}),{playToast:y,pauseToast:v,isRunning:t,preventExitTransition:s,toastRef:i,eventHandlers:_}}function _(e){let{closeToast:t,theme:n,ariaLabel:o="close"}=e;return s().createElement("button",{className:`Toastify__close-button Toastify__close-button--${n}`,type:"button",onClick:e=>{e.stopPropagation(),t(e)},"aria-label":o},s().createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},s().createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function I(e){let{delay:t,isRunning:n,closeToast:o,type:a="default",hide:i,className:l,style:c,controlledProgress:d,progress:p,rtl:f,isIn:m,theme:g}=e;const h=i||d&&0===p,y={...c,animationDuration:`${t}ms`,animationPlayState:n?"running":"paused",opacity:h?0:1};d&&(y.transform=`scaleX(${p})`);const v=r("Toastify__progress-bar",d?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${g}`,`Toastify__progress-bar--${a}`,{"Toastify__progress-bar--rtl":f}),T=u(l)?l({rtl:f,type:a,defaultClassName:v}):r(v,l);return s().createElement("div",{role:"progressbar","aria-hidden":h?"true":"false","aria-label":"notification timer",className:T,style:y,[d&&p>=1?"onTransitionEnd":"onAnimationEnd"]:d&&p<1?null:()=>{m&&o()}})}const L=e=>{const{isRunning:t,preventExitTransition:n,toastRef:a,eventHandlers:i}=b(e),{closeButton:l,children:c,autoClose:d,onClick:p,type:f,hideProgressBar:m,closeToast:g,transition:h,position:y,className:v,style:T,bodyClassName:E,bodyStyle:C,progressClassName:L,progressStyle:O,updateId:N,role:R,progress:w,rtl:k,toastId:M,deleteToast:x,isIn:$,isLoading:B,iconOut:P,closeOnClick:A,theme:D}=e,z=r("Toastify__toast",`Toastify__toast-theme--${D}`,`Toastify__toast--${f}`,{"Toastify__toast--rtl":k},{"Toastify__toast--close-on-click":A}),F=u(v)?v({rtl:k,position:y,type:f,defaultClassName:z}):r(z,v),S=!!w||!d,H={closeToast:g,type:f,theme:D};let q=null;return!1===l||(q=u(l)?l(H):(0,o.isValidElement)(l)?(0,o.cloneElement)(l,H):_(H)),s().createElement(h,{isIn:$,done:x,position:y,preventExitTransition:n,nodeRef:a},s().createElement("div",{id:M,onClick:p,className:F,...i,style:T,ref:a},s().createElement("div",{...$&&{role:R},className:u(E)?E({type:f}):r("Toastify__toast-body",E),style:C},null!=P&&s().createElement("div",{className:r("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!B})},P),s().createElement("div",null,c)),q,s().createElement(I,{...N&&!S?{key:`pb-${N}`}:{},rtl:k,theme:D,delay:d,isRunning:t,isIn:$,closeToast:g,hide:m,type:f,style:O,className:L,controlledProgress:S,progress:w||0})))},O=function(e,t){return void 0===t&&(t=!1),{enter:`Toastify--animate Toastify__${e}-enter`,exit:`Toastify--animate Toastify__${e}-exit`,appendPosition:t}},N=m(O("bounce",!0)),R=m(O("slide",!0)),w=m(O("zoom")),k=m(O("flip")),M=(0,o.forwardRef)(((e,t)=>{const{getToastToRender:n,containerRef:a,isToastActive:i}=T(e),{className:l,style:c,rtl:p,containerId:f}=e;function m(e){const t=r("Toastify__toast-container",`Toastify__toast-container--${e}`,{"Toastify__toast-container--rtl":p});return u(l)?l({position:e,rtl:p,defaultClassName:t}):r(t,d(l))}return(0,o.useEffect)((()=>{t&&(t.current=a.current)}),[]),s().createElement("div",{ref:a,className:"Toastify",id:f},n(((e,t)=>{const n=t.length?{...c}:{...c,pointerEvents:"none"};return s().createElement("div",{className:m(e),style:n,key:`container-${e}`},t.map(((e,n)=>{let{content:o,props:a}=e;return s().createElement(L,{...a,isIn:i(a.toastId),style:{...a.style,"--nth":n+1,"--len":t.length},key:`toast-${a.key}`},o)})))})))}));M.displayName="ToastContainer",M.defaultProps={position:"top-right",transition:N,autoClose:5e3,closeButton:_,pauseOnHover:!0,pauseOnFocusLoss:!0,closeOnClick:!0,draggable:!0,draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};let x,$=new Map,B=[],P=1;function A(){return""+P++}function D(e){return e&&(c(e.toastId)||l(e.toastId))?e.toastId:A()}function z(e,t){return $.size>0?h.emit(0,e,t):B.push({content:e,options:t}),t.toastId}function F(e,t){return{...t,type:t&&t.type||e,toastId:D(t)}}function S(e){return(t,n)=>z(t,F(e,n))}function H(e,t){return z(e,F("default",t))}H.loading=(e,t)=>z(e,F("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...t})),H.promise=function(e,t,n){let o,{pending:s,error:a,success:i}=t;s&&(o=c(s)?H.loading(s,n):H.loading(s.render,{...n,...s}));const r={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null,delay:100},l=(e,t,s)=>{if(null==t)return void H.dismiss(o);const a={type:e,...r,...n,data:s},i=c(t)?{render:t}:t;return o?H.update(o,{...a,...i}):H(i.render,{...a,...i}),s},d=u(e)?e():e;return d.then((e=>l("success",i,e))).catch((e=>l("error",a,e))),d},H.success=S("success"),H.info=S("info"),H.error=S("error"),H.warning=S("warning"),H.warn=H.warning,H.dark=(e,t)=>z(e,F("default",{theme:"dark",...t})),H.dismiss=e=>{$.size>0?h.emit(1,e):B=B.filter((t=>null!=e&&t.options.toastId!==e))},H.clearWaitingQueue=function(e){return void 0===e&&(e={}),h.emit(5,e)},H.isActive=e=>{let t=!1;return $.forEach((n=>{n.isToastActive&&n.isToastActive(e)&&(t=!0)})),t},H.update=function(e,t){void 0===t&&(t={}),setTimeout((()=>{const n=function(e,t){let{containerId:n}=t;const o=$.get(n||x);return o&&o.getToast(e)}(e,t);if(n){const{props:o,content:s}=n,a={...o,...t,toastId:t.toastId||e,updateId:A()};a.toastId!==e&&(a.staleId=e);const i=a.render||s;delete a.render,z(i,a)}}),0)},H.done=e=>{H.update(e,{progress:1})},H.onChange=e=>(h.on(4,e),()=>{h.off(4,e)}),H.POSITION={TOP_LEFT:"top-left",TOP_RIGHT:"top-right",TOP_CENTER:"top-center",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",BOTTOM_CENTER:"bottom-center"},H.TYPE={INFO:"info",SUCCESS:"success",WARNING:"warning",ERROR:"error",DEFAULT:"default"},h.on(2,(e=>{x=e.containerId||e,$.set(x,e),B.forEach((e=>{h.emit(0,e.content,e.options)})),B=[]})).on(3,(e=>{$.delete(e.containerId||e),0===$.size&&h.off(0).off(1).off(5)}))}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3112.0757b31e24c5334fda73.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3112.0757b31e24c5334fda73.js deleted file mode 100644 index 81788da1a64eedbb1e635833f2cef701635f115d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3112.0757b31e24c5334fda73.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3112],{3112:(r,t,n)=>{n.r(t);n.d(t,{http:()=>f});function e(r,t){r.skipToEnd();t.cur=s;return"error"}function u(r,t){if(r.match(/^HTTP\/\d\.\d/)){t.cur=c;return"keyword"}else if(r.match(/^[A-Z]+/)&&/[ \t]/.test(r.peek())){t.cur=o;return"keyword"}else{return e(r,t)}}function c(r,t){var n=r.match(/^\d+/);if(!n)return e(r,t);t.cur=i;var u=Number(n[0]);if(u>=100&&u<400){return"atom"}else{return"error"}}function i(r,t){r.skipToEnd();t.cur=s;return null}function o(r,t){r.eatWhile(/\S/);t.cur=a;return"string.special"}function a(r,t){if(r.match(/^HTTP\/\d\.\d$/)){t.cur=s;return"keyword"}else{return e(r,t)}}function s(r){if(r.sol()&&!r.eat(/[ \t]/)){if(r.match(/^.*?:/)){return"atom"}else{r.skipToEnd();return"error"}}else{r.skipToEnd();return"string"}}function l(r){r.skipToEnd();return null}const f={name:"http",token:function(r,t){var n=t.cur;if(n!=s&&n!=l&&r.eatSpace())return null;return n(r,t)},blankLine:function(r){r.cur=l},startState:function(){return{cur:u}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3122.fed5688acdcf6ff6aa6b.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3122.fed5688acdcf6ff6aa6b.js deleted file mode 100644 index 93874cb77a1721595922e6a7dcd4ad68f9ed9436..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3122.fed5688acdcf6ff6aa6b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3122],{63122:(a,e,p)=>{p.d(e,{createPacketServices:()=>t.$});var t=p(69602);var c=p(74888)}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/321.0fb994fd384a54491584.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/321.0fb994fd384a54491584.js deleted file mode 100644 index 1c61e1e26e879f302fac93235b0834f7e74899f4..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/321.0fb994fd384a54491584.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[321],{90321:(e,t,n)=>{n.r(t);n.d(t,{swift:()=>A});function r(e){var t={};for(var n=0;n-1){e.next();return"operator"}if(f.indexOf(r)>-1){e.next();e.match("..");return"punctuation"}var k;if(k=e.match(/("""|"|')/)){var w=y.bind(null,k[0]);t.tokenize.push(w);return w(e,t)}if(e.match(v)){var b=e.current();if(u.hasOwnProperty(b))return"type";if(o.hasOwnProperty(b))return"atom";if(i.hasOwnProperty(b)){if(a.hasOwnProperty(b))t.prev="define";return"keyword"}if(n=="define")return"def";return"variable"}e.next();return null}function w(){var e=0;return function(t,n,r){var i=k(t,n,r);if(i=="punctuation"){if(t.current()=="(")++e;else if(t.current()==")"){if(e==0){t.backUp(1);n.tokenize.pop();return n.tokenize[n.tokenize.length-1](t,n)}else--e}}return i}}function y(e,t,n){var r=e.length==1;var i,a=false;while(i=t.peek()){if(a){t.next();if(i=="("){n.tokenize.push(w());return"string"}a=false}else if(t.match(e)){n.tokenize.pop();return"string"}else{t.next();a=i=="\\"}}if(r){n.tokenize.pop()}return"string"}function x(e,t){var n;while(n=e.next()){if(n==="/"&&e.eat("*")){t.tokenize.push(x)}else if(n==="*"&&e.eat("/")){t.tokenize.pop();break}}return"comment"}function b(e,t,n){this.prev=e;this.align=t;this.indented=n}function g(e,t){var n=t.match(/^\s*($|\/[\/\*]|[)}\]])/,false)?null:t.column()+1;e.context=new b(e.context,n,e.indented)}function z(e){if(e.context){e.indented=e.context.indented;e.context=e.context.prev}}const A={name:"swift",startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(e,t){var n=t.prev;t.prev=null;var r=t.tokenize[t.tokenize.length-1]||k;var i=r(e,t,n);if(!i||i=="comment")t.prev=n;else if(!t.prev)t.prev=i;if(i=="punctuation"){var a=/[\(\[\{]|([\]\)\}])/.exec(e.current());if(a)(a[1]?z:g)(t,e)}return i},indent:function(e,t,n){var r=e.context;if(!r)return 0;var i=/^[\]\}\)]/.test(t);if(r.align!=null)return r.align-(i?1:0);return r.indented+(i?0:n.unit)},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3257.30af681f0c294efb65f7.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3257.30af681f0c294efb65f7.js deleted file mode 100644 index e407a5cf47c32e8584a12eccaa7f74b231ad9eea..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3257.30af681f0c294efb65f7.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 3257.30af681f0c294efb65f7.js.LICENSE.txt */ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3257],{23257:(e,r,t)=>{e.exports=function(e){var r={};function t(n){if(r[n])return r[n].exports;var a=r[n]={exports:{},id:n,loaded:false};e[n].call(a.exports,a,a.exports,t);a.loaded=true;return a.exports}t.m=e;t.c=r;t.p="";return t(0)}([function(e,r,t){e.exports=t(1)},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});function n(e){return e&&e.__esModule?e:{default:e}}var a=t(2);var i=n(a);r["default"]=i["default"];e.exports=r["default"]},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var n=Object.assign||function(e){for(var r=1;r=0)continue;if(!Object.prototype.hasOwnProperty.call(e,n))continue;t[n]=e[n]}return t}var u=t(3);var o=t(4);var s=a(o);var f=t(14);var l=t(15);var c=a(l);p.propTypes={activeClassName:s["default"].string,activeIndex:s["default"].number,activeStyle:s["default"].object,autoEscape:s["default"].bool,className:s["default"].string,findChunks:s["default"].func,highlightClassName:s["default"].oneOfType([s["default"].object,s["default"].string]),highlightStyle:s["default"].object,highlightTag:s["default"].oneOfType([s["default"].node,s["default"].func,s["default"].string]),sanitize:s["default"].func,searchWords:s["default"].arrayOf(s["default"].oneOfType([s["default"].string,s["default"].instanceOf(RegExp)])).isRequired,textToHighlight:s["default"].string.isRequired,unhighlightTag:s["default"].oneOfType([s["default"].node,s["default"].func,s["default"].string]),unhighlightClassName:s["default"].string,unhighlightStyle:s["default"].object};function p(e){var r=e.activeClassName;var t=r===undefined?"":r;var a=e.activeIndex;var o=a===undefined?-1:a;var s=e.activeStyle;var l=e.autoEscape;var p=e.caseSensitive;var d=p===undefined?false:p;var v=e.className;var h=e.findChunks;var y=e.highlightClassName;var g=y===undefined?"":y;var m=e.highlightStyle;var b=m===undefined?{}:m;var O=e.highlightTag;var x=O===undefined?"mark":O;var w=e.sanitize;var T=e.searchWords;var E=e.textToHighlight;var j=e.unhighlightTag;var k=j===undefined?"span":j;var N=e.unhighlightClassName;var _=N===undefined?"":N;var S=e.unhighlightStyle;var P=i(e,["activeClassName","activeIndex","activeStyle","autoEscape","caseSensitive","className","findChunks","highlightClassName","highlightStyle","highlightTag","sanitize","searchWords","textToHighlight","unhighlightTag","unhighlightClassName","unhighlightStyle"]);var C=(0,u.findAll)({autoEscape:l,caseSensitive:d,findChunks:h,sanitize:w,searchWords:T,textToHighlight:E});var I=x;var R=-1;var A="";var D=undefined;var q=function e(r){var t={};for(var n in r){t[n.toLowerCase()]=r[n]}return t};var L=(0,c["default"])(q);return(0,f.createElement)("span",n({className:v},P,{children:C.map((function(e,r){var n=E.substr(e.start,e.end-e.start);if(e.highlight){R++;var a=undefined;if(typeof g==="object"){if(!d){g=L(g);a=g[n.toLowerCase()]}else{a=g[n]}}else{a=g}var i=R===+o;A=a+" "+(i?t:"");D=i===true&&s!=null?Object.assign({},b,s):b;var u={children:n,className:A,key:r,style:D};if(typeof I!=="string"){u.highlightIndex=R}return(0,f.createElement)(I,u)}else{return(0,f.createElement)(k,{children:n,className:_,key:r,style:S})}}))}))}e.exports=r["default"]},function(e,r){e.exports=function(e){var r={};function t(n){if(r[n])return r[n].exports;var a=r[n]={exports:{},id:n,loaded:false};e[n].call(a.exports,a,a.exports,t);a.loaded=true;return a.exports}t.m=e;t.c=r;t.p="";return t(0)}([function(e,r,t){e.exports=t(1)},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});var n=t(2);Object.defineProperty(r,"combineChunks",{enumerable:true,get:function e(){return n.combineChunks}});Object.defineProperty(r,"fillInChunks",{enumerable:true,get:function e(){return n.fillInChunks}});Object.defineProperty(r,"findAll",{enumerable:true,get:function e(){return n.findAll}});Object.defineProperty(r,"findChunks",{enumerable:true,get:function e(){return n.findChunks}})},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});var t=r.findAll=function e(r){var t=r.autoEscape,u=r.caseSensitive,o=u===undefined?false:u,s=r.findChunks,f=s===undefined?a:s,l=r.sanitize,c=r.searchWords,p=r.textToHighlight;return i({chunksToHighlight:n({chunks:f({autoEscape:t,caseSensitive:o,sanitize:l,searchWords:c,textToHighlight:p})}),totalLength:p?p.length:0})};var n=r.combineChunks=function e(r){var t=r.chunks;t=t.sort((function(e,r){return e.start-r.start})).reduce((function(e,r){if(e.length===0){return[r]}else{var t=e.pop();if(r.start<=t.end){var n=Math.max(t.end,r.end);e.push({start:t.start,end:n})}else{e.push(t,r)}return e}}),[]);return t};var a=function e(r){var t=r.autoEscape,n=r.caseSensitive,a=r.sanitize,i=a===undefined?u:a,s=r.searchWords,f=r.textToHighlight;f=i(f);return s.filter((function(e){return e})).reduce((function(e,r){r=i(r);if(t){r=o(r)}var a=new RegExp(r,n?"g":"gi");var u=void 0;while(u=a.exec(f)){var s=u.index;var l=a.lastIndex;if(l>s){e.push({start:s,end:l})}if(u.index==a.lastIndex){a.lastIndex++}}return e}),[])};r.findChunks=a;var i=r.fillInChunks=function e(r){var t=r.chunksToHighlight,n=r.totalLength;var a=[];var i=function e(r,t,n){if(t-r>0){a.push({start:r,end:t,highlight:n})}};if(t.length===0){i(0,n,false)}else{var u=0;t.forEach((function(e){i(u,e.start,false);i(e.start,e.end,true);u=e.end}));i(u,n,false)}return a};function u(e){return e}function o(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}}])},function(e,r,t){(function(r){if(r.env.NODE_ENV!=="production"){var n=typeof Symbol==="function"&&Symbol.for&&Symbol.for("react.element")||60103;var a=function(e){return typeof e==="object"&&e!==null&&e.$$typeof===n};var i=true;e.exports=t(6)(a,i)}else{e.exports=t(13)()}}).call(r,t(5))},function(e,r){var t=e.exports={};var n;var a;function i(){throw new Error("setTimeout has not been defined")}function u(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){n=setTimeout}else{n=i}}catch(e){n=i}try{if(typeof clearTimeout==="function"){a=clearTimeout}else{a=u}}catch(e){a=u}})();function o(e){if(n===setTimeout){return setTimeout(e,0)}if((n===i||!n)&&setTimeout){n=setTimeout;return setTimeout(e,0)}try{return n(e,0)}catch(r){try{return n.call(null,e,0)}catch(r){return n.call(this,e,0)}}}function s(e){if(a===clearTimeout){return clearTimeout(e)}if((a===u||!a)&&clearTimeout){a=clearTimeout;return clearTimeout(e)}try{return a(e)}catch(r){try{return a.call(null,e)}catch(r){return a.call(this,e)}}}var f=[];var l=false;var c;var p=-1;function d(){if(!l||!c){return}l=false;if(c.length){f=c.concat(f)}else{p=-1}if(f.length){v()}}function v(){if(l){return}var e=o(d);l=true;var r=f.length;while(r){c=f;f=[];while(++p1){for(var t=1;t1?t-1:0),a=1;a2?n-2:0),u=2;u1&&arguments[1]!==undefined?arguments[1]:t;var n=void 0;var a=[];var i=void 0;var u=false;var o=function e(t,n){return r(t,a[n])};var s=function r(){for(var t=arguments.length,s=Array(t),f=0;f{Object.defineProperty(t,"__esModule",{value:true});t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;const s=r(4042);const n=r(63763);const o=r(36653);const a=r(72079);const i=["/properties"];const c="http://json-schema.org/draft-07/schema";class u extends s.default{_addVocabularies(){super._addVocabularies();n.default.forEach((e=>this.addVocabulary(e)));if(this.opts.discriminator)this.addKeyword(o.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();if(!this.opts.meta)return;const e=this.opts.$data?this.$dataMetaSchema(a,i):a;this.addMetaSchema(e,c,false);this.refs["http://json-schema.org/schema"]=c}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(c)?c:undefined)}}t.Ajv=u;e.exports=t=u;e.exports.Ajv=u;Object.defineProperty(t,"__esModule",{value:true});t["default"]=u;var d=r(62586);Object.defineProperty(t,"KeywordCxt",{enumerable:true,get:function(){return d.KeywordCxt}});var l=r(99029);Object.defineProperty(t,"_",{enumerable:true,get:function(){return l._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return l.str}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.stringify}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return l.nil}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return l.Name}});Object.defineProperty(t,"CodeGen",{enumerable:true,get:function(){return l.CodeGen}});var f=r(13558);Object.defineProperty(t,"ValidationError",{enumerable:true,get:function(){return f.default}});var h=r(34551);Object.defineProperty(t,"MissingRefError",{enumerable:true,get:function(){return h.default}})},41520:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class r{}t._CodeOrName=r;t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class s extends r{constructor(e){super();if(!t.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return false}get names(){return{[this.str]:1}}}t.Name=s;class n extends r{constructor(e){super();this._items=typeof e==="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return false;const e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce(((e,t)=>`${e}${t}`),"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce(((e,t)=>{if(t instanceof s)e[t.str]=(e[t.str]||0)+1;return e}),{})}}t._Code=n;t.nil=new n("");function o(e,...t){const r=[e[0]];let s=0;while(s{Object.defineProperty(t,"__esModule",{value:true});t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;const s=r(41520);const n=r(57845);var o=r(41520);Object.defineProperty(t,"_",{enumerable:true,get:function(){return o._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return o.str}});Object.defineProperty(t,"strConcat",{enumerable:true,get:function(){return o.strConcat}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return o.nil}});Object.defineProperty(t,"getProperty",{enumerable:true,get:function(){return o.getProperty}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return o.stringify}});Object.defineProperty(t,"regexpCode",{enumerable:true,get:function(){return o.regexpCode}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return o.Name}});var a=r(57845);Object.defineProperty(t,"Scope",{enumerable:true,get:function(){return a.Scope}});Object.defineProperty(t,"ValueScope",{enumerable:true,get:function(){return a.ValueScope}});Object.defineProperty(t,"ValueScopeName",{enumerable:true,get:function(){return a.ValueScopeName}});Object.defineProperty(t,"varKinds",{enumerable:true,get:function(){return a.varKinds}});t.operators={GT:new s._Code(">"),GTE:new s._Code(">="),LT:new s._Code("<"),LTE:new s._Code("<="),EQ:new s._Code("==="),NEQ:new s._Code("!=="),NOT:new s._Code("!"),OR:new s._Code("||"),AND:new s._Code("&&"),ADD:new s._Code("+")};class i{optimizeNodes(){return this}optimizeNames(e,t){return this}}class c extends i{constructor(e,t,r){super();this.varKind=e;this.name=t;this.rhs=r}render({es5:e,_n:t}){const r=e?n.varKinds.var:this.varKind;const s=this.rhs===undefined?"":` = ${this.rhs}`;return`${r} ${this.name}${s};`+t}optimizeNames(e,t){if(!e[this.name.str])return;if(this.rhs)this.rhs=x(this.rhs,e,t);return this}get names(){return this.rhs instanceof s._CodeOrName?this.rhs.names:{}}}class u extends i{constructor(e,t,r){super();this.lhs=e;this.rhs=t;this.sideEffects=r}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(this.lhs instanceof s.Name&&!e[this.lhs.str]&&!this.sideEffects)return;this.rhs=x(this.rhs,e,t);return this}get names(){const e=this.lhs instanceof s.Name?{}:{...this.lhs.names};return I(e,this.rhs)}}class d extends u{constructor(e,t,r,s){super(e,r,s);this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}}class l extends i{constructor(e){super();this.label=e;this.names={}}render({_n:e}){return`${this.label}:`+e}}class f extends i{constructor(e){super();this.label=e;this.names={}}render({_n:e}){const t=this.label?` ${this.label}`:"";return`break${t};`+e}}class h extends i{constructor(e){super();this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}}class p extends i{constructor(e){super();this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:undefined}optimizeNames(e,t){this.code=x(this.code,e,t);return this}get names(){return this.code instanceof s._CodeOrName?this.code.names:{}}}class m extends i{constructor(e=[]){super();this.nodes=e}render(e){return this.nodes.reduce(((t,r)=>t+r.render(e)),"")}optimizeNodes(){const{nodes:e}=this;let t=e.length;while(t--){const r=e[t].optimizeNodes();if(Array.isArray(r))e.splice(t,1,...r);else if(r)e[t]=r;else e.splice(t,1)}return e.length>0?this:undefined}optimizeNames(e,t){const{nodes:r}=this;let s=r.length;while(s--){const n=r[s];if(n.optimizeNames(e,t))continue;T(e,n.names);r.splice(s,1)}return r.length>0?this:undefined}get names(){return this.nodes.reduce(((e,t)=>C(e,t.names)),{})}}class y extends m{render(e){return"{"+e._n+super.render(e)+"}"+e._n}}class g extends m{}class $ extends y{}$.kind="else";class v extends y{constructor(e,t){super(t);this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);if(this.else)t+="else "+this.else.render(e);return t}optimizeNodes(){super.optimizeNodes();const e=this.condition;if(e===true)return this.nodes;let t=this.else;if(t){const e=t.optimizeNodes();t=this.else=Array.isArray(e)?new $(e):e}if(t){if(e===false)return t instanceof v?t:t.nodes;if(this.nodes.length)return this;return new v(R(e),t instanceof v?[t]:t.nodes)}if(e===false||!this.nodes.length)return undefined;return this}optimizeNames(e,t){var r;this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(e,t);if(!(super.optimizeNames(e,t)||this.else))return;this.condition=x(this.condition,e,t);return this}get names(){const e=super.names;I(e,this.condition);if(this.else)C(e,this.else.names);return e}}v.kind="if";class _ extends y{}_.kind="for";class w extends _{constructor(e){super();this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(!super.optimizeNames(e,t))return;this.iteration=x(this.iteration,e,t);return this}get names(){return C(super.names,this.iteration.names)}}class b extends _{constructor(e,t,r,s){super();this.varKind=e;this.name=t;this.from=r;this.to=s}render(e){const t=e.es5?n.varKinds.var:this.varKind;const{name:r,from:s,to:o}=this;return`for(${t} ${r}=${s}; ${r}<${o}; ${r}++)`+super.render(e)}get names(){const e=I(super.names,this.from);return I(e,this.to)}}class P extends _{constructor(e,t,r,s){super();this.loop=e;this.varKind=t;this.name=r;this.iterable=s}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(!super.optimizeNames(e,t))return;this.iterable=x(this.iterable,e,t);return this}get names(){return C(super.names,this.iterable.names)}}class E extends y{constructor(e,t,r){super();this.name=e;this.args=t;this.async=r}render(e){const t=this.async?"async ":"";return`${t}function ${this.name}(${this.args})`+super.render(e)}}E.kind="func";class S extends m{render(e){return"return "+super.render(e)}}S.kind="return";class k extends y{render(e){let t="try"+super.render(e);if(this.catch)t+=this.catch.render(e);if(this.finally)t+=this.finally.render(e);return t}optimizeNodes(){var e,t;super.optimizeNodes();(e=this.catch)===null||e===void 0?void 0:e.optimizeNodes();(t=this.finally)===null||t===void 0?void 0:t.optimizeNodes();return this}optimizeNames(e,t){var r,s;super.optimizeNames(e,t);(r=this.catch)===null||r===void 0?void 0:r.optimizeNames(e,t);(s=this.finally)===null||s===void 0?void 0:s.optimizeNames(e,t);return this}get names(){const e=super.names;if(this.catch)C(e,this.catch.names);if(this.finally)C(e,this.finally.names);return e}}class N extends y{constructor(e){super();this.error=e}render(e){return`catch(${this.error})`+super.render(e)}}N.kind="catch";class j extends y{render(e){return"finally"+super.render(e)}}j.kind="finally";class O{constructor(e,t={}){this._values={};this._blockStarts=[];this._constants={};this.opts={...t,_n:t.lines?"\n":""};this._extScope=e;this._scope=new n.Scope({parent:e});this._nodes=[new g]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){const r=this._extScope.value(e,t);const s=this._values[r.prefix]||(this._values[r.prefix]=new Set);s.add(r);return r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,s){const n=this._scope.toName(t);if(r!==undefined&&s)this._constants[n.str]=r;this._leafNode(new c(e,n,r));return n}const(e,t,r){return this._def(n.varKinds.const,e,t,r)}let(e,t,r){return this._def(n.varKinds.let,e,t,r)}var(e,t,r){return this._def(n.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new u(e,t,r))}add(e,r){return this._leafNode(new d(e,t.operators.ADD,r))}code(e){if(typeof e=="function")e();else if(e!==s.nil)this._leafNode(new p(e));return this}object(...e){const t=["{"];for(const[r,n]of e){if(t.length>1)t.push(",");t.push(r);if(r!==n||this.opts.es5){t.push(":");(0,s.addCodeArg)(t,n)}}t.push("}");return new s._Code(t)}if(e,t,r){this._blockNode(new v(e));if(t&&r){this.code(t).else().code(r).endIf()}else if(t){this.code(t).endIf()}else if(r){throw new Error('CodeGen: "else" body without "then" body')}return this}elseIf(e){return this._elseNode(new v(e))}else(){return this._elseNode(new $)}endIf(){return this._endBlockNode(v,$)}_for(e,t){this._blockNode(e);if(t)this.code(t).endFor();return this}for(e,t){return this._for(new w(e),t)}forRange(e,t,r,s,o=(this.opts.es5?n.varKinds.var:n.varKinds.let)){const a=this._scope.toName(e);return this._for(new b(o,a,t,r),(()=>s(a)))}forOf(e,t,r,o=n.varKinds.const){const a=this._scope.toName(e);if(this.opts.es5){const e=t instanceof s.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0,s._)`${e}.length`,(t=>{this.var(a,(0,s._)`${e}[${t}]`);r(a)}))}return this._for(new P("of",o,a,t),(()=>r(a)))}forIn(e,t,r,o=(this.opts.es5?n.varKinds.var:n.varKinds.const)){if(this.opts.ownProperties){return this.forOf(e,(0,s._)`Object.keys(${t})`,r)}const a=this._scope.toName(e);return this._for(new P("in",o,a,t),(()=>r(a)))}endFor(){return this._endBlockNode(_)}label(e){return this._leafNode(new l(e))}break(e){return this._leafNode(new f(e))}return(e){const t=new S;this._blockNode(t);this.code(e);if(t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(S)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');const s=new k;this._blockNode(s);this.code(e);if(t){const e=this.name("e");this._currNode=s.catch=new N(e);t(e)}if(r){this._currNode=s.finally=new j;this.code(r)}return this._endBlockNode(N,j)}throw(e){return this._leafNode(new h(e))}block(e,t){this._blockStarts.push(this._nodes.length);if(e)this.code(e).endBlock(t);return this}endBlock(e){const t=this._blockStarts.pop();if(t===undefined)throw new Error("CodeGen: not in self-balancing block");const r=this._nodes.length-t;if(r<0||e!==undefined&&r!==e){throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`)}this._nodes.length=t;return this}func(e,t=s.nil,r,n){this._blockNode(new E(e,t,r));if(n)this.code(n).endFunc();return this}endFunc(){return this._endBlockNode(E)}optimize(e=1){while(e-- >0){this._root.optimizeNodes();this._root.optimizeNames(this._root.names,this._constants)}}_leafNode(e){this._currNode.nodes.push(e);return this}_blockNode(e){this._currNode.nodes.push(e);this._nodes.push(e)}_endBlockNode(e,t){const r=this._currNode;if(r instanceof e||t&&r instanceof t){this._nodes.pop();return this}throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){const t=this._currNode;if(!(t instanceof v)){throw new Error('CodeGen: "else" without "if"')}this._currNode=t.else=e;return this}get _root(){return this._nodes[0]}get _currNode(){const e=this._nodes;return e[e.length-1]}set _currNode(e){const t=this._nodes;t[t.length-1]=e}}t.CodeGen=O;function C(e,t){for(const r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function I(e,t){return t instanceof s._CodeOrName?C(e,t.names):e}function x(e,t,r){if(e instanceof s.Name)return n(e);if(!o(e))return e;return new s._Code(e._items.reduce(((e,t)=>{if(t instanceof s.Name)t=n(t);if(t instanceof s._Code)e.push(...t._items);else e.push(t);return e}),[]));function n(e){const s=r[e.str];if(s===undefined||t[e.str]!==1)return e;delete t[e.str];return s}function o(e){return e instanceof s._Code&&e._items.some((e=>e instanceof s.Name&&t[e.str]===1&&r[e.str]!==undefined))}}function T(e,t){for(const r in t)e[r]=(e[r]||0)-(t[r]||0)}function R(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,s._)`!${q(e)}`}t.not=R;const M=z(t.operators.AND);function A(...e){return e.reduce(M)}t.and=A;const D=z(t.operators.OR);function V(...e){return e.reduce(D)}t.or=V;function z(e){return(t,r)=>t===s.nil?r:r===s.nil?t:(0,s._)`${q(t)} ${e} ${q(r)}`}function q(e){return e instanceof s.Name?e:(0,s._)`(${e})`}},57845:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;const s=r(41520);class n extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`);this.value=e.value}}var o;(function(e){e[e["Started"]=0]="Started";e[e["Completed"]=1]="Completed"})(o||(t.UsedValueState=o={}));t.varKinds={const:new s.Name("const"),let:new s.Name("let"),var:new s.Name("var")};class a{constructor({prefixes:e,parent:t}={}){this._names={};this._prefixes=e;this._parent=t}toName(e){return e instanceof s.Name?e:this.name(e)}name(e){return new s.Name(this._newName(e))}_newName(e){const t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){var t,r;if(((r=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||r===void 0?void 0:r.has(e))||this._prefixes&&!this._prefixes.has(e)){throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`)}return this._names[e]={prefix:e,index:0}}}t.Scope=a;class i extends s.Name{constructor(e,t){super(t);this.prefix=e}setValue(e,{property:t,itemIndex:r}){this.value=e;this.scopePath=(0,s._)`.${new s.Name(t)}[${r}]`}}t.ValueScopeName=i;const c=(0,s._)`\n`;class u extends a{constructor(e){super(e);this._values={};this._scope=e.scope;this.opts={...e,_n:e.lines?c:s.nil}}get(){return this._scope}name(e){return new i(e,this._newName(e))}value(e,t){var r;if(t.ref===undefined)throw new Error("CodeGen: ref must be passed in value");const s=this.toName(e);const{prefix:n}=s;const o=(r=t.key)!==null&&r!==void 0?r:t.ref;let a=this._values[n];if(a){const e=a.get(o);if(e)return e}else{a=this._values[n]=new Map}a.set(o,s);const i=this._scope[n]||(this._scope[n]=[]);const c=i.length;i[c]=t.ref;s.setValue(t,{property:n,itemIndex:c});return s}getValue(e,t){const r=this._values[e];if(!r)return;return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,(t=>{if(t.scopePath===undefined)throw new Error(`CodeGen: name "${t}" has no value`);return(0,s._)`${e}${t.scopePath}`}))}scopeCode(e=this._values,t,r){return this._reduceValues(e,(e=>{if(e.value===undefined)throw new Error(`CodeGen: name "${e}" has no value`);return e.value.code}),t,r)}_reduceValues(e,r,a={},i){let c=s.nil;for(const u in e){const d=e[u];if(!d)continue;const l=a[u]=a[u]||new Map;d.forEach((e=>{if(l.has(e))return;l.set(e,o.Started);let a=r(e);if(a){const r=this.opts.es5?t.varKinds.var:t.varKinds.const;c=(0,s._)`${c}${r} ${e} = ${a};${this.opts._n}`}else if(a=i===null||i===void 0?void 0:i(e)){c=(0,s._)`${c}${a}${this.opts._n}`}else{throw new n(e)}l.set(e,o.Completed)}))}return c}}t.ValueScope=u},48708:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;const s=r(99029);const n=r(94227);const o=r(42023);t.keywordError={message:({keyword:e})=>(0,s.str)`must pass "${e}" keyword validation`};t.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,s.str)`"${e}" keyword must be ${t} ($data)`:(0,s.str)`"${e}" keyword is invalid ($data)`};function a(e,r=t.keywordError,n,o){const{it:a}=e;const{gen:i,compositeRule:c,allErrors:u}=a;const f=h(e,r,n);if(o!==null&&o!==void 0?o:c||u){d(i,f)}else{l(a,(0,s._)`[${f}]`)}}t.reportError=a;function i(e,r=t.keywordError,s){const{it:n}=e;const{gen:a,compositeRule:i,allErrors:c}=n;const u=h(e,r,s);d(a,u);if(!(i||c)){l(n,o.default.vErrors)}}t.reportExtraError=i;function c(e,t){e.assign(o.default.errors,t);e.if((0,s._)`${o.default.vErrors} !== null`,(()=>e.if(t,(()=>e.assign((0,s._)`${o.default.vErrors}.length`,t)),(()=>e.assign(o.default.vErrors,null)))))}t.resetErrorsCount=c;function u({gen:e,keyword:t,schemaValue:r,data:n,errsCount:a,it:i}){if(a===undefined)throw new Error("ajv implementation error");const c=e.name("err");e.forRange("i",a,o.default.errors,(a=>{e.const(c,(0,s._)`${o.default.vErrors}[${a}]`);e.if((0,s._)`${c}.instancePath === undefined`,(()=>e.assign((0,s._)`${c}.instancePath`,(0,s.strConcat)(o.default.instancePath,i.errorPath))));e.assign((0,s._)`${c}.schemaPath`,(0,s.str)`${i.errSchemaPath}/${t}`);if(i.opts.verbose){e.assign((0,s._)`${c}.schema`,r);e.assign((0,s._)`${c}.data`,n)}}))}t.extendErrors=u;function d(e,t){const r=e.const("err",t);e.if((0,s._)`${o.default.vErrors} === null`,(()=>e.assign(o.default.vErrors,(0,s._)`[${r}]`)),(0,s._)`${o.default.vErrors}.push(${r})`);e.code((0,s._)`${o.default.errors}++`)}function l(e,t){const{gen:r,validateName:n,schemaEnv:o}=e;if(o.$async){r.throw((0,s._)`new ${e.ValidationError}(${t})`)}else{r.assign((0,s._)`${n}.errors`,t);r.return(false)}}const f={keyword:new s.Name("keyword"),schemaPath:new s.Name("schemaPath"),params:new s.Name("params"),propertyName:new s.Name("propertyName"),message:new s.Name("message"),schema:new s.Name("schema"),parentSchema:new s.Name("parentSchema")};function h(e,t,r){const{createErrors:n}=e.it;if(n===false)return(0,s._)`{}`;return p(e,t,r)}function p(e,t,r={}){const{gen:s,it:n}=e;const o=[m(n,r),y(e,r)];g(e,t,o);return s.object(...o)}function m({errorPath:e},{instancePath:t}){const r=t?(0,s.str)`${e}${(0,n.getErrorPath)(t,n.Type.Str)}`:e;return[o.default.instancePath,(0,s.strConcat)(o.default.instancePath,r)]}function y({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:o}){let a=o?t:(0,s.str)`${t}/${e}`;if(r){a=(0,s.str)`${a}${(0,n.getErrorPath)(r,n.Type.Str)}`}return[f.schemaPath,a]}function g(e,{params:t,message:r},n){const{keyword:a,data:i,schemaValue:c,it:u}=e;const{opts:d,propertyName:l,topSchemaRef:h,schemaPath:p}=u;n.push([f.keyword,a],[f.params,typeof t=="function"?t(e):t||(0,s._)`{}`]);if(d.messages){n.push([f.message,typeof r=="function"?r(e):r])}if(d.verbose){n.push([f.schema,c],[f.parentSchema,(0,s._)`${h}${p}`],[o.default.data,i])}if(l)n.push([f.propertyName,l])}},73835:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;const s=r(99029);const n=r(13558);const o=r(42023);const a=r(66939);const i=r(94227);const c=r(62586);class u{constructor(e){var t;this.refs={};this.dynamicAnchors={};let r;if(typeof e.schema=="object")r=e.schema;this.schema=e.schema;this.schemaId=e.schemaId;this.root=e.root||this;this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0,a.normalizeId)(r===null||r===void 0?void 0:r[e.schemaId||"$id"]);this.schemaPath=e.schemaPath;this.localRefs=e.localRefs;this.meta=e.meta;this.$async=r===null||r===void 0?void 0:r.$async;this.refs={}}}t.SchemaEnv=u;function d(e){const t=h.call(this,e);if(t)return t;const r=(0,a.getFullPath)(this.opts.uriResolver,e.root.baseId);const{es5:i,lines:u}=this.opts.code;const{ownProperties:d}=this.opts;const l=new s.CodeGen(this.scope,{es5:i,lines:u,ownProperties:d});let f;if(e.$async){f=l.scopeValue("Error",{ref:n.default,code:(0,s._)`require("ajv/dist/runtime/validation_error").default`})}const p=l.scopeName("validate");e.validateName=p;const m={gen:l,allErrors:this.opts.allErrors,data:o.default.data,parentData:o.default.parentData,parentDataProperty:o.default.parentDataProperty,dataNames:[o.default.data],dataPathArr:[s.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:l.scopeValue("schema",this.opts.code.source===true?{ref:e.schema,code:(0,s.stringify)(e.schema)}:{ref:e.schema}),validateName:p,ValidationError:f,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:s.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,s._)`""`,opts:this.opts,self:this};let y;try{this._compilations.add(e);(0,c.validateFunctionCode)(m);l.optimize(this.opts.code.optimize);const t=l.toString();y=`${l.scopeRefs(o.default.scope)}return ${t}`;if(this.opts.code.process)y=this.opts.code.process(y,e);const r=new Function(`${o.default.self}`,`${o.default.scope}`,y);const n=r(this,this.scope.get());this.scope.value(p,{ref:n});n.errors=null;n.schema=e.schema;n.schemaEnv=e;if(e.$async)n.$async=true;if(this.opts.code.source===true){n.source={validateName:p,validateCode:t,scopeValues:l._values}}if(this.opts.unevaluated){const{props:e,items:t}=m;n.evaluated={props:e instanceof s.Name?undefined:e,items:t instanceof s.Name?undefined:t,dynamicProps:e instanceof s.Name,dynamicItems:t instanceof s.Name};if(n.source)n.source.evaluated=(0,s.stringify)(n.evaluated)}e.validate=n;return e}catch(g){delete e.validate;delete e.validateName;if(y)this.logger.error("Error compiling schema, function code:",y);throw g}finally{this._compilations.delete(e)}}t.compileSchema=d;function l(e,t,r){var s;r=(0,a.resolveUrl)(this.opts.uriResolver,t,r);const n=e.refs[r];if(n)return n;let o=m.call(this,e,r);if(o===undefined){const n=(s=e.localRefs)===null||s===void 0?void 0:s[r];const{schemaId:a}=this.opts;if(n)o=new u({schema:n,schemaId:a,root:e,baseId:t})}if(o===undefined)return;return e.refs[r]=f.call(this,o)}t.resolveRef=l;function f(e){if((0,a.inlineRef)(e.schema,this.opts.inlineRefs))return e.schema;return e.validate?e:d.call(this,e)}function h(e){for(const t of this._compilations){if(p(t,e))return t}}t.getCompilingSchema=h;function p(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function m(e,t){let r;while(typeof(r=this.refs[t])=="string")t=r;return r||this.schemas[t]||y.call(this,e,t)}function y(e,t){const r=this.opts.uriResolver.parse(t);const s=(0,a._getFullPath)(this.opts.uriResolver,r);let n=(0,a.getFullPath)(this.opts.uriResolver,e.baseId,undefined);if(Object.keys(e.schema).length>0&&s===n){return $.call(this,r,e)}const o=(0,a.normalizeId)(s);const i=this.refs[o]||this.schemas[o];if(typeof i=="string"){const t=y.call(this,e,i);if(typeof(t===null||t===void 0?void 0:t.schema)!=="object")return;return $.call(this,r,t)}if(typeof(i===null||i===void 0?void 0:i.schema)!=="object")return;if(!i.validate)d.call(this,i);if(o===(0,a.normalizeId)(t)){const{schema:t}=i;const{schemaId:r}=this.opts;const s=t[r];if(s)n=(0,a.resolveUrl)(this.opts.uriResolver,n,s);return new u({schema:t,schemaId:r,root:e,baseId:n})}return $.call(this,r,i)}t.resolveSchema=y;const g=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function $(e,{baseId:t,schema:r,root:s}){var n;if(((n=e.fragment)===null||n===void 0?void 0:n[0])!=="/")return;for(const u of e.fragment.slice(1).split("/")){if(typeof r==="boolean")return;const e=r[(0,i.unescapeFragment)(u)];if(e===undefined)return;r=e;const s=typeof r==="object"&&r[this.opts.schemaId];if(!g.has(u)&&s){t=(0,a.resolveUrl)(this.opts.uriResolver,t,s)}}let o;if(typeof r!="boolean"&&r.$ref&&!(0,i.schemaHasRulesButRef)(r,this.RULES)){const e=(0,a.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=y.call(this,s,e)}const{schemaId:c}=this.opts;o=o||new u({schema:r,schemaId:c,root:s,baseId:t});if(o.schema!==o.root.schema)return o;return undefined}},42023:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n={data:new s.Name("data"),valCxt:new s.Name("valCxt"),instancePath:new s.Name("instancePath"),parentData:new s.Name("parentData"),parentDataProperty:new s.Name("parentDataProperty"),rootData:new s.Name("rootData"),dynamicAnchors:new s.Name("dynamicAnchors"),vErrors:new s.Name("vErrors"),errors:new s.Name("errors"),this:new s.Name("this"),self:new s.Name("self"),scope:new s.Name("scope"),json:new s.Name("json"),jsonPos:new s.Name("jsonPos"),jsonLen:new s.Name("jsonLen"),jsonPart:new s.Name("jsonPart")};t["default"]=n},34551:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(66939);class n extends Error{constructor(e,t,r,n){super(n||`can't resolve reference ${r} from id ${t}`);this.missingRef=(0,s.resolveUrl)(e,t,r);this.missingSchema=(0,s.normalizeId)((0,s.getFullPath)(e,this.missingRef))}}t["default"]=n},66939:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;const s=r(94227);const n=r(32017);const o=r(7106);const a=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function i(e,t=true){if(typeof e=="boolean")return true;if(t===true)return!u(e);if(!t)return false;return d(e)<=t}t.inlineRef=i;const c=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function u(e){for(const t in e){if(c.has(t))return true;const r=e[t];if(Array.isArray(r)&&r.some(u))return true;if(typeof r=="object"&&u(r))return true}return false}function d(e){let t=0;for(const r in e){if(r==="$ref")return Infinity;t++;if(a.has(r))continue;if(typeof e[r]=="object"){(0,s.eachItem)(e[r],(e=>t+=d(e)))}if(t===Infinity)return Infinity}return t}function l(e,t="",r){if(r!==false)t=p(t);const s=e.parse(t);return f(e,s)}t.getFullPath=l;function f(e,t){const r=e.serialize(t);return r.split("#")[0]+"#"}t._getFullPath=f;const h=/#\/?$/;function p(e){return e?e.replace(h,""):""}t.normalizeId=p;function m(e,t,r){r=p(r);return e.resolve(t,r)}t.resolveUrl=m;const y=/^[a-z_][-a-z0-9._]*$/i;function g(e,t){if(typeof e=="boolean")return{};const{schemaId:r,uriResolver:s}=this.opts;const a=p(e[r]||t);const i={"":a};const c=l(s,a,false);const u={};const d=new Set;o(e,{allKeys:true},((e,t,s,n)=>{if(n===undefined)return;const o=c+t;let a=i[n];if(typeof e[r]=="string")a=l.call(this,e[r]);m.call(this,e.$anchor);m.call(this,e.$dynamicAnchor);i[t]=a;function l(t){const r=this.opts.uriResolver.resolve;t=p(a?r(a,t):t);if(d.has(t))throw h(t);d.add(t);let s=this.refs[t];if(typeof s=="string")s=this.refs[s];if(typeof s=="object"){f(e,s.schema,t)}else if(t!==p(o)){if(t[0]==="#"){f(e,u[t],t);u[t]=e}else{this.refs[t]=o}}return t}function m(e){if(typeof e=="string"){if(!y.test(e))throw new Error(`invalid anchor "${e}"`);l.call(this,`#${e}`)}}}));return u;function f(e,t,r){if(t!==undefined&&!n(e,t))throw h(r)}function h(e){return new Error(`reference "${e}" resolves to more than one schema`)}}t.getSchemaRefs=g},10396:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.getRules=t.isJSONType=void 0;const r=["string","number","integer","boolean","null","object","array"];const s=new Set(r);function n(e){return typeof e=="string"&&s.has(e)}t.isJSONType=n;function o(){const e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:true,boolean:true,null:true},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=o},94227:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;const s=r(99029);const n=r(41520);function o(e){const t={};for(const r of e)t[r]=true;return t}t.toHash=o;function a(e,t){if(typeof t=="boolean")return t;if(Object.keys(t).length===0)return true;i(e,t);return!c(t,e.self.RULES.all)}t.alwaysValidSchema=a;function i(e,t=e.schema){const{opts:r,self:s}=e;if(!r.strictSchema)return;if(typeof t==="boolean")return;const n=s.RULES.keywords;for(const o in t){if(!n[o])P(e,`unknown keyword: "${o}"`)}}t.checkUnknownRules=i;function c(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(t[r])return true;return false}t.schemaHasRules=c;function u(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(r!=="$ref"&&t.all[r])return true;return false}t.schemaHasRulesButRef=u;function d({topSchemaRef:e,schemaPath:t},r,n,o){if(!o){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,s._)`${r}`}return(0,s._)`${e}${t}${(0,s.getProperty)(n)}`}t.schemaRefOrVal=d;function l(e){return p(decodeURIComponent(e))}t.unescapeFragment=l;function f(e){return encodeURIComponent(h(e))}t.escapeFragment=f;function h(e){if(typeof e=="number")return`${e}`;return e.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=h;function p(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=p;function m(e,t){if(Array.isArray(e)){for(const r of e)t(r)}else{t(e)}}t.eachItem=m;function y({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(o,a,i,c)=>{const u=i===undefined?a:i instanceof s.Name?(a instanceof s.Name?e(o,a,i):t(o,a,i),i):a instanceof s.Name?(t(o,i,a),a):r(a,i);return c===s.Name&&!(u instanceof s.Name)?n(o,u):u}}t.mergeEvaluated={props:y({mergeNames:(e,t,r)=>e.if((0,s._)`${r} !== true && ${t} !== undefined`,(()=>{e.if((0,s._)`${t} === true`,(()=>e.assign(r,true)),(()=>e.assign(r,(0,s._)`${r} || {}`).code((0,s._)`Object.assign(${r}, ${t})`)))})),mergeToName:(e,t,r)=>e.if((0,s._)`${r} !== true`,(()=>{if(t===true){e.assign(r,true)}else{e.assign(r,(0,s._)`${r} || {}`);$(e,r,t)}})),mergeValues:(e,t)=>e===true?true:{...e,...t},resultToName:g}),items:y({mergeNames:(e,t,r)=>e.if((0,s._)`${r} !== true && ${t} !== undefined`,(()=>e.assign(r,(0,s._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`))),mergeToName:(e,t,r)=>e.if((0,s._)`${r} !== true`,(()=>e.assign(r,t===true?true:(0,s._)`${r} > ${t} ? ${r} : ${t}`))),mergeValues:(e,t)=>e===true?true:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function g(e,t){if(t===true)return e.var("props",true);const r=e.var("props",(0,s._)`{}`);if(t!==undefined)$(e,r,t);return r}t.evaluatedPropsToName=g;function $(e,t,r){Object.keys(r).forEach((r=>e.assign((0,s._)`${t}${(0,s.getProperty)(r)}`,true)))}t.setEvaluated=$;const v={};function _(e,t){return e.scopeValue("func",{ref:t,code:v[t.code]||(v[t.code]=new n._Code(t.code))})}t.useFunc=_;var w;(function(e){e[e["Num"]=0]="Num";e[e["Str"]=1]="Str"})(w||(t.Type=w={}));function b(e,t,r){if(e instanceof s.Name){const n=t===w.Num;return r?n?(0,s._)`"[" + ${e} + "]"`:(0,s._)`"['" + ${e} + "']"`:n?(0,s._)`"/" + ${e}`:(0,s._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,s.getProperty)(e).toString():"/"+h(e)}t.getErrorPath=b;function P(e,t,r=e.opts.strictSchema){if(!r)return;t=`strict mode: ${t}`;if(r===true)throw new Error(t);e.self.logger.warn(t)}t.checkStrictMode=P},7887:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function r({schema:e,self:t},r){const n=t.RULES.types[r];return n&&n!==true&&s(e,n)}t.schemaHasRulesForType=r;function s(e,t){return t.rules.some((t=>n(e,t)))}t.shouldUseGroup=s;function n(e,t){var r;return e[t.keyword]!==undefined||((r=t.definition.implements)===null||r===void 0?void 0:r.some((t=>e[t]!==undefined)))}t.shouldUseRule=n},28727:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;const s=r(48708);const n=r(99029);const o=r(42023);const a={message:"boolean schema is false"};function i(e){const{gen:t,schema:r,validateName:s}=e;if(r===false){u(e,false)}else if(typeof r=="object"&&r.$async===true){t.return(o.default.data)}else{t.assign((0,n._)`${s}.errors`,null);t.return(true)}}t.topBoolOrEmptySchema=i;function c(e,t){const{gen:r,schema:s}=e;if(s===false){r.var(t,false);u(e)}else{r.var(t,true)}}t.boolOrEmptySchema=c;function u(e,t){const{gen:r,data:n}=e;const o={gen:r,keyword:"false schema",data:n,schema:false,schemaCode:false,schemaValue:false,params:{},it:e};(0,s.reportError)(o,a,undefined,t)}},10208:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;const s=r(10396);const n=r(7887);const o=r(48708);const a=r(99029);const i=r(94227);var c;(function(e){e[e["Correct"]=0]="Correct";e[e["Wrong"]=1]="Wrong"})(c||(t.DataType=c={}));function u(e){const t=d(e.type);const r=t.includes("null");if(r){if(e.nullable===false)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==undefined){throw new Error('"nullable" cannot be used without "type"')}if(e.nullable===true)t.push("null")}return t}t.getSchemaTypes=u;function d(e){const t=Array.isArray(e)?e:e?[e]:[];if(t.every(s.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}t.getJSONTypes=d;function l(e,t){const{gen:r,data:s,opts:o}=e;const a=h(t,o.coerceTypes);const i=t.length>0&&!(a.length===0&&t.length===1&&(0,n.schemaHasRulesForType)(e,t[0]));if(i){const n=g(t,s,o.strictNumbers,c.Wrong);r.if(n,(()=>{if(a.length)p(e,t,a);else v(e)}))}return i}t.coerceAndCheckDataType=l;const f=new Set(["string","number","integer","boolean","null"]);function h(e,t){return t?e.filter((e=>f.has(e)||t==="array"&&e==="array")):[]}function p(e,t,r){const{gen:s,data:n,opts:o}=e;const i=s.let("dataType",(0,a._)`typeof ${n}`);const c=s.let("coerced",(0,a._)`undefined`);if(o.coerceTypes==="array"){s.if((0,a._)`${i} == 'object' && Array.isArray(${n}) && ${n}.length == 1`,(()=>s.assign(n,(0,a._)`${n}[0]`).assign(i,(0,a._)`typeof ${n}`).if(g(t,n,o.strictNumbers),(()=>s.assign(c,n)))))}s.if((0,a._)`${c} !== undefined`);for(const a of r){if(f.has(a)||a==="array"&&o.coerceTypes==="array"){u(a)}}s.else();v(e);s.endIf();s.if((0,a._)`${c} !== undefined`,(()=>{s.assign(n,c);m(e,c)}));function u(e){switch(e){case"string":s.elseIf((0,a._)`${i} == "number" || ${i} == "boolean"`).assign(c,(0,a._)`"" + ${n}`).elseIf((0,a._)`${n} === null`).assign(c,(0,a._)`""`);return;case"number":s.elseIf((0,a._)`${i} == "boolean" || ${n} === null - || (${i} == "string" && ${n} && ${n} == +${n})`).assign(c,(0,a._)`+${n}`);return;case"integer":s.elseIf((0,a._)`${i} === "boolean" || ${n} === null - || (${i} === "string" && ${n} && ${n} == +${n} && !(${n} % 1))`).assign(c,(0,a._)`+${n}`);return;case"boolean":s.elseIf((0,a._)`${n} === "false" || ${n} === 0 || ${n} === null`).assign(c,false).elseIf((0,a._)`${n} === "true" || ${n} === 1`).assign(c,true);return;case"null":s.elseIf((0,a._)`${n} === "" || ${n} === 0 || ${n} === false`);s.assign(c,null);return;case"array":s.elseIf((0,a._)`${i} === "string" || ${i} === "number" - || ${i} === "boolean" || ${n} === null`).assign(c,(0,a._)`[${n}]`)}}}function m({gen:e,parentData:t,parentDataProperty:r},s){e.if((0,a._)`${t} !== undefined`,(()=>e.assign((0,a._)`${t}[${r}]`,s)))}function y(e,t,r,s=c.Correct){const n=s===c.Correct?a.operators.EQ:a.operators.NEQ;let o;switch(e){case"null":return(0,a._)`${t} ${n} null`;case"array":o=(0,a._)`Array.isArray(${t})`;break;case"object":o=(0,a._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=i((0,a._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=i();break;default:return(0,a._)`typeof ${t} ${n} ${e}`}return s===c.Correct?o:(0,a.not)(o);function i(e=a.nil){return(0,a.and)((0,a._)`typeof ${t} == "number"`,e,r?(0,a._)`isFinite(${t})`:a.nil)}}t.checkDataType=y;function g(e,t,r,s){if(e.length===1){return y(e[0],t,r,s)}let n;const o=(0,i.toHash)(e);if(o.array&&o.object){const e=(0,a._)`typeof ${t} != "object"`;n=o.null?e:(0,a._)`!${t} || ${e}`;delete o.null;delete o.array;delete o.object}else{n=a.nil}if(o.number)delete o.integer;for(const i in o)n=(0,a.and)(n,y(i,t,r,s));return n}t.checkDataTypes=g;const $={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,a._)`{type: ${e}}`:(0,a._)`{type: ${t}}`};function v(e){const t=_(e);(0,o.reportError)(t,$)}t.reportTypeError=v;function _(e){const{gen:t,data:r,schema:s}=e;const n=(0,i.schemaRefOrVal)(e,s,"type");return{gen:t,keyword:"type",data:r,schema:s.type,schemaCode:n,schemaValue:n,parentSchema:s,params:{},it:e}}},7870:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.assignDefaults=void 0;const s=r(99029);const n=r(94227);function o(e,t){const{properties:r,items:s}=e.schema;if(t==="object"&&r){for(const t in r){a(e,t,r[t].default)}}else if(t==="array"&&Array.isArray(s)){s.forEach(((t,r)=>a(e,r,t.default)))}}t.assignDefaults=o;function a(e,t,r){const{gen:o,compositeRule:a,data:i,opts:c}=e;if(r===undefined)return;const u=(0,s._)`${i}${(0,s.getProperty)(t)}`;if(a){(0,n.checkStrictMode)(e,`default is ignored for: ${u}`);return}let d=(0,s._)`${u} === undefined`;if(c.useDefaults==="empty"){d=(0,s._)`${d} || ${u} === null || ${u} === ""`}o.if(d,(0,s._)`${u} = ${(0,s.stringify)(r)}`)}},62586:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const s=r(28727);const n=r(10208);const o=r(7887);const a=r(10208);const i=r(7870);const c=r(33673);const u=r(24495);const d=r(99029);const l=r(42023);const f=r(66939);const h=r(94227);const p=r(48708);function m(e){if(E(e)){k(e);if(P(e)){v(e);return}}y(e,(()=>(0,s.topBoolOrEmptySchema)(e)))}t.validateFunctionCode=m;function y({gen:e,validateName:t,schema:r,schemaEnv:s,opts:n},o){if(n.code.es5){e.func(t,(0,d._)`${l.default.data}, ${l.default.valCxt}`,s.$async,(()=>{e.code((0,d._)`"use strict"; ${w(r,n)}`);$(e,n);e.code(o)}))}else{e.func(t,(0,d._)`${l.default.data}, ${g(n)}`,s.$async,(()=>e.code(w(r,n)).code(o)))}}function g(e){return(0,d._)`{${l.default.instancePath}="", ${l.default.parentData}, ${l.default.parentDataProperty}, ${l.default.rootData}=${l.default.data}${e.dynamicRef?(0,d._)`, ${l.default.dynamicAnchors}={}`:d.nil}}={}`}function $(e,t){e.if(l.default.valCxt,(()=>{e.var(l.default.instancePath,(0,d._)`${l.default.valCxt}.${l.default.instancePath}`);e.var(l.default.parentData,(0,d._)`${l.default.valCxt}.${l.default.parentData}`);e.var(l.default.parentDataProperty,(0,d._)`${l.default.valCxt}.${l.default.parentDataProperty}`);e.var(l.default.rootData,(0,d._)`${l.default.valCxt}.${l.default.rootData}`);if(t.dynamicRef)e.var(l.default.dynamicAnchors,(0,d._)`${l.default.valCxt}.${l.default.dynamicAnchors}`)}),(()=>{e.var(l.default.instancePath,(0,d._)`""`);e.var(l.default.parentData,(0,d._)`undefined`);e.var(l.default.parentDataProperty,(0,d._)`undefined`);e.var(l.default.rootData,l.default.data);if(t.dynamicRef)e.var(l.default.dynamicAnchors,(0,d._)`{}`)}))}function v(e){const{schema:t,opts:r,gen:s}=e;y(e,(()=>{if(r.$comment&&t.$comment)x(e);O(e);s.let(l.default.vErrors,null);s.let(l.default.errors,0);if(r.unevaluated)_(e);N(e);T(e)}));return}function _(e){const{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,d._)`${r}.evaluated`);t.if((0,d._)`${e.evaluated}.dynamicProps`,(()=>t.assign((0,d._)`${e.evaluated}.props`,(0,d._)`undefined`)));t.if((0,d._)`${e.evaluated}.dynamicItems`,(()=>t.assign((0,d._)`${e.evaluated}.items`,(0,d._)`undefined`)))}function w(e,t){const r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,d._)`/*# sourceURL=${r} */`:d.nil}function b(e,t){if(E(e)){k(e);if(P(e)){S(e,t);return}}(0,s.boolOrEmptySchema)(e,t)}function P({schema:e,self:t}){if(typeof e=="boolean")return!e;for(const r in e)if(t.RULES.all[r])return true;return false}function E(e){return typeof e.schema!="boolean"}function S(e,t){const{schema:r,gen:s,opts:n}=e;if(n.$comment&&r.$comment)x(e);C(e);I(e);const o=s.const("_errs",l.default.errors);N(e,o);s.var(t,(0,d._)`${o} === ${l.default.errors}`)}function k(e){(0,h.checkUnknownRules)(e);j(e)}function N(e,t){if(e.opts.jtd)return M(e,[],false,t);const r=(0,n.getSchemaTypes)(e.schema);const s=(0,n.coerceAndCheckDataType)(e,r);M(e,r,!s,t)}function j(e){const{schema:t,errSchemaPath:r,opts:s,self:n}=e;if(t.$ref&&s.ignoreKeywordsWithRef&&(0,h.schemaHasRulesButRef)(t,n.RULES)){n.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}}function O(e){const{schema:t,opts:r}=e;if(t.default!==undefined&&r.useDefaults&&r.strictSchema){(0,h.checkStrictMode)(e,"default is ignored in the schema root")}}function C(e){const t=e.schema[e.opts.schemaId];if(t)e.baseId=(0,f.resolveUrl)(e.opts.uriResolver,e.baseId,t)}function I(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function x({gen:e,schemaEnv:t,schema:r,errSchemaPath:s,opts:n}){const o=r.$comment;if(n.$comment===true){e.code((0,d._)`${l.default.self}.logger.log(${o})`)}else if(typeof n.$comment=="function"){const r=(0,d.str)`${s}/$comment`;const n=e.scopeValue("root",{ref:t.root});e.code((0,d._)`${l.default.self}.opts.$comment(${o}, ${r}, ${n}.schema)`)}}function T(e){const{gen:t,schemaEnv:r,validateName:s,ValidationError:n,opts:o}=e;if(r.$async){t.if((0,d._)`${l.default.errors} === 0`,(()=>t.return(l.default.data)),(()=>t.throw((0,d._)`new ${n}(${l.default.vErrors})`)))}else{t.assign((0,d._)`${s}.errors`,l.default.vErrors);if(o.unevaluated)R(e);t.return((0,d._)`${l.default.errors} === 0`)}}function R({gen:e,evaluated:t,props:r,items:s}){if(r instanceof d.Name)e.assign((0,d._)`${t}.props`,r);if(s instanceof d.Name)e.assign((0,d._)`${t}.items`,s)}function M(e,t,r,s){const{gen:n,schema:i,data:c,allErrors:u,opts:f,self:p}=e;const{RULES:m}=p;if(i.$ref&&(f.ignoreKeywordsWithRef||!(0,h.schemaHasRulesButRef)(i,m))){n.block((()=>H(e,"$ref",m.all.$ref.definition)));return}if(!f.jtd)D(e,t);n.block((()=>{for(const e of m.rules)y(e);y(m.post)}));function y(h){if(!(0,o.shouldUseGroup)(i,h))return;if(h.type){n.if((0,a.checkDataType)(h.type,c,f.strictNumbers));A(e,h);if(t.length===1&&t[0]===h.type&&r){n.else();(0,a.reportTypeError)(e)}n.endIf()}else{A(e,h)}if(!u)n.if((0,d._)`${l.default.errors} === ${s||0}`)}}function A(e,t){const{gen:r,schema:s,opts:{useDefaults:n}}=e;if(n)(0,i.assignDefaults)(e,t.type);r.block((()=>{for(const r of t.rules){if((0,o.shouldUseRule)(s,r)){H(e,r.keyword,r.definition,t.type)}}}))}function D(e,t){if(e.schemaEnv.meta||!e.opts.strictTypes)return;V(e,t);if(!e.opts.allowUnionTypes)z(e,t);q(e,e.dataTypes)}function V(e,t){if(!t.length)return;if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach((t=>{if(!K(e.dataTypes,t)){F(e,`type "${t}" not allowed by context "${e.dataTypes.join(",")}"`)}}));L(e,t)}function z(e,t){if(t.length>1&&!(t.length===2&&t.includes("null"))){F(e,"use allowUnionTypes to allow union type keyword")}}function q(e,t){const r=e.self.RULES.all;for(const s in r){const n=r[s];if(typeof n=="object"&&(0,o.shouldUseRule)(e.schema,n)){const{type:r}=n.definition;if(r.length&&!r.some((e=>U(t,e)))){F(e,`missing type "${r.join(",")}" for keyword "${s}"`)}}}}function U(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function K(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function L(e,t){const r=[];for(const s of e.dataTypes){if(K(t,s))r.push(s);else if(t.includes("integer")&&s==="number")r.push("integer")}e.dataTypes=r}function F(e,t){const r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`;(0,h.checkStrictMode)(e,t,e.opts.strictTypes)}class G{constructor(e,t,r){(0,c.validateKeywordUsage)(e,t,r);this.gen=e.gen;this.allErrors=e.allErrors;this.keyword=r;this.data=e.data;this.schema=e.schema[r];this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data;this.schemaValue=(0,h.schemaRefOrVal)(e,this.schema,r,this.$data);this.schemaType=t.schemaType;this.parentSchema=e.schema;this.params={};this.it=e;this.def=t;if(this.$data){this.schemaCode=e.gen.const("vSchema",W(this.$data,e))}else{this.schemaCode=this.schemaValue;if(!(0,c.validSchemaType)(this.schema,t.schemaType,t.allowUndefined)){throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`)}}if("code"in t?t.trackErrors:t.errors!==false){this.errsCount=e.gen.const("_errs",l.default.errors)}}result(e,t,r){this.failResult((0,d.not)(e),t,r)}failResult(e,t,r){this.gen.if(e);if(r)r();else this.error();if(t){this.gen.else();t();if(this.allErrors)this.gen.endIf()}else{if(this.allErrors)this.gen.endIf();else this.gen.else()}}pass(e,t){this.failResult((0,d.not)(e),undefined,t)}fail(e){if(e===undefined){this.error();if(!this.allErrors)this.gen.if(false);return}this.gen.if(e);this.error();if(this.allErrors)this.gen.endIf();else this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);const{schemaCode:t}=this;this.fail((0,d._)`${t} !== undefined && (${(0,d.or)(this.invalid$data(),e)})`)}error(e,t,r){if(t){this.setParams(t);this._error(e,r);this.setParams({});return}this._error(e,r)}_error(e,t){(e?p.reportExtraError:p.reportError)(this,this.def.error,t)}$dataError(){(0,p.reportError)(this,this.def.$dataError||p.keyword$DataError)}reset(){if(this.errsCount===undefined)throw new Error('add "trackErrors" to keyword definition');(0,p.resetErrorsCount)(this.gen,this.errsCount)}ok(e){if(!this.allErrors)this.gen.if(e)}setParams(e,t){if(t)Object.assign(this.params,e);else this.params=e}block$data(e,t,r=d.nil){this.gen.block((()=>{this.check$data(e,r);t()}))}check$data(e=d.nil,t=d.nil){if(!this.$data)return;const{gen:r,schemaCode:s,schemaType:n,def:o}=this;r.if((0,d.or)((0,d._)`${s} === undefined`,t));if(e!==d.nil)r.assign(e,true);if(n.length||o.validateSchema){r.elseIf(this.invalid$data());this.$dataError();if(e!==d.nil)r.assign(e,false)}r.else()}invalid$data(){const{gen:e,schemaCode:t,schemaType:r,def:s,it:n}=this;return(0,d.or)(o(),i());function o(){if(r.length){if(!(t instanceof d.Name))throw new Error("ajv implementation error");const e=Array.isArray(r)?r:[r];return(0,d._)`${(0,a.checkDataTypes)(e,t,n.opts.strictNumbers,a.DataType.Wrong)}`}return d.nil}function i(){if(s.validateSchema){const r=e.scopeValue("validate$data",{ref:s.validateSchema});return(0,d._)`!${r}(${t})`}return d.nil}}subschema(e,t){const r=(0,u.getSubschema)(this.it,e);(0,u.extendSubschemaData)(r,this.it,e);(0,u.extendSubschemaMode)(r,e);const s={...this.it,...r,items:undefined,props:undefined};b(s,t);return s}mergeEvaluated(e,t){const{it:r,gen:s}=this;if(!r.opts.unevaluated)return;if(r.props!==true&&e.props!==undefined){r.props=h.mergeEvaluated.props(s,e.props,r.props,t)}if(r.items!==true&&e.items!==undefined){r.items=h.mergeEvaluated.items(s,e.items,r.items,t)}}mergeValidEvaluated(e,t){const{it:r,gen:s}=this;if(r.opts.unevaluated&&(r.props!==true||r.items!==true)){s.if(t,(()=>this.mergeEvaluated(e,d.Name)));return true}}}t.KeywordCxt=G;function H(e,t,r,s){const n=new G(e,r,t);if("code"in r){r.code(n,s)}else if(n.$data&&r.validate){(0,c.funcKeywordCode)(n,r)}else if("macro"in r){(0,c.macroKeywordCode)(n,r)}else if(r.compile||r.validate){(0,c.funcKeywordCode)(n,r)}}const J=/^\/(?:[^~]|~0|~1)*$/;const B=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function W(e,{dataLevel:t,dataNames:r,dataPathArr:s}){let n;let o;if(e==="")return l.default.rootData;if(e[0]==="/"){if(!J.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);n=e;o=l.default.rootData}else{const a=B.exec(e);if(!a)throw new Error(`Invalid JSON-pointer: ${e}`);const i=+a[1];n=a[2];if(n==="#"){if(i>=t)throw new Error(c("property/index",i));return s[t-i]}if(i>t)throw new Error(c("data",i));o=r[t-i];if(!n)return o}let a=o;const i=n.split("/");for(const u of i){if(u){o=(0,d._)`${o}${(0,d.getProperty)((0,h.unescapeJsonPointer)(u))}`;a=(0,d._)`${a} && ${o}`}}return a;function c(e,r){return`Cannot access ${e} ${r} levels up, current level is ${t}`}}t.getData=W},33673:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;const s=r(99029);const n=r(42023);const o=r(15765);const a=r(48708);function i(e,t){const{gen:r,keyword:n,schema:o,parentSchema:a,it:i}=e;const c=t.macro.call(i.self,o,a,i);const u=f(r,n,c);if(i.opts.validateSchema!==false)i.self.validateSchema(c,true);const d=r.name("valid");e.subschema({schema:c,schemaPath:s.nil,errSchemaPath:`${i.errSchemaPath}/${n}`,topSchemaRef:u,compositeRule:true},d);e.pass(d,(()=>e.error(true)))}t.macroKeywordCode=i;function c(e,t){var r;const{gen:a,keyword:i,schema:c,parentSchema:h,$data:p,it:m}=e;l(m,t);const y=!p&&t.compile?t.compile.call(m.self,c,h,m):t.validate;const g=f(a,i,y);const $=a.let("valid");e.block$data($,v);e.ok((r=t.valid)!==null&&r!==void 0?r:$);function v(){if(t.errors===false){b();if(t.modifying)u(e);P((()=>e.error()))}else{const r=t.async?_():w();if(t.modifying)u(e);P((()=>d(e,r)))}}function _(){const e=a.let("ruleErrs",null);a.try((()=>b((0,s._)`await `)),(t=>a.assign($,false).if((0,s._)`${t} instanceof ${m.ValidationError}`,(()=>a.assign(e,(0,s._)`${t}.errors`)),(()=>a.throw(t)))));return e}function w(){const e=(0,s._)`${g}.errors`;a.assign(e,null);b(s.nil);return e}function b(r=(t.async?(0,s._)`await `:s.nil)){const i=m.opts.passContext?n.default.this:n.default.self;const c=!("compile"in t&&!p||t.schema===false);a.assign($,(0,s._)`${r}${(0,o.callValidateCode)(e,g,i,c)}`,t.modifying)}function P(e){var r;a.if((0,s.not)((r=t.valid)!==null&&r!==void 0?r:$),e)}}t.funcKeywordCode=c;function u(e){const{gen:t,data:r,it:n}=e;t.if(n.parentData,(()=>t.assign(r,(0,s._)`${n.parentData}[${n.parentDataProperty}]`)))}function d(e,t){const{gen:r}=e;r.if((0,s._)`Array.isArray(${t})`,(()=>{r.assign(n.default.vErrors,(0,s._)`${n.default.vErrors} === null ? ${t} : ${n.default.vErrors}.concat(${t})`).assign(n.default.errors,(0,s._)`${n.default.vErrors}.length`);(0,a.extendErrors)(e)}),(()=>e.error()))}function l({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function f(e,t,r){if(r===undefined)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,s.stringify)(r)})}function h(e,t,r=false){return!t.length||t.some((t=>t==="array"?Array.isArray(e):t==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==t||r&&typeof e=="undefined"))}t.validSchemaType=h;function p({schema:e,opts:t,self:r,errSchemaPath:s},n,o){if(Array.isArray(n.keyword)?!n.keyword.includes(o):n.keyword!==o){throw new Error("ajv implementation error")}const a=n.dependencies;if(a===null||a===void 0?void 0:a.some((t=>!Object.prototype.hasOwnProperty.call(e,t)))){throw new Error(`parent schema must have dependencies of ${o}: ${a.join(",")}`)}if(n.validateSchema){const a=n.validateSchema(e[o]);if(!a){const e=`keyword "${o}" value is invalid at path "${s}": `+r.errorsText(n.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(e);else throw new Error(e)}}}t.validateKeywordUsage=p},24495:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;const s=r(99029);const n=r(94227);function o(e,{keyword:t,schemaProp:r,schema:o,schemaPath:a,errSchemaPath:i,topSchemaRef:c}){if(t!==undefined&&o!==undefined){throw new Error('both "keyword" and "schema" passed, only one allowed')}if(t!==undefined){const o=e.schema[t];return r===undefined?{schema:o,schemaPath:(0,s._)`${e.schemaPath}${(0,s.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:o[r],schemaPath:(0,s._)`${e.schemaPath}${(0,s.getProperty)(t)}${(0,s.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,n.escapeFragment)(r)}`}}if(o!==undefined){if(a===undefined||i===undefined||c===undefined){throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"')}return{schema:o,schemaPath:a,topSchemaRef:c,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}t.getSubschema=o;function a(e,t,{dataProp:r,dataPropType:o,data:a,dataTypes:i,propertyName:c}){if(a!==undefined&&r!==undefined){throw new Error('both "data" and "dataProp" passed, only one allowed')}const{gen:u}=t;if(r!==undefined){const{errorPath:a,dataPathArr:i,opts:c}=t;const l=u.let("data",(0,s._)`${t.data}${(0,s.getProperty)(r)}`,true);d(l);e.errorPath=(0,s.str)`${a}${(0,n.getErrorPath)(r,o,c.jsPropertySyntax)}`;e.parentDataProperty=(0,s._)`${r}`;e.dataPathArr=[...i,e.parentDataProperty]}if(a!==undefined){const t=a instanceof s.Name?a:u.let("data",a,true);d(t);if(c!==undefined)e.propertyName=c}if(i)e.dataTypes=i;function d(r){e.data=r;e.dataLevel=t.dataLevel+1;e.dataTypes=[];t.definedProperties=new Set;e.parentData=t.data;e.dataNames=[...t.dataNames,r]}}t.extendSubschemaData=a;function i(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:s,createErrors:n,allErrors:o}){if(s!==undefined)e.compositeRule=s;if(n!==undefined)e.createErrors=n;if(o!==undefined)e.allErrors=o;e.jtdDiscriminator=t;e.jtdMetadata=r}t.extendSubschemaMode=i},4042:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var s=r(62586);Object.defineProperty(t,"KeywordCxt",{enumerable:true,get:function(){return s.KeywordCxt}});var n=r(99029);Object.defineProperty(t,"_",{enumerable:true,get:function(){return n._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return n.str}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return n.stringify}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return n.nil}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return n.Name}});Object.defineProperty(t,"CodeGen",{enumerable:true,get:function(){return n.CodeGen}});const o=r(13558);const a=r(34551);const i=r(10396);const c=r(73835);const u=r(99029);const d=r(66939);const l=r(10208);const f=r(94227);const h=r(63837);const p=r(55944);const m=(e,t)=>new RegExp(e,t);m.code="new RegExp";const y=["removeAdditional","useDefaults","coerceTypes"];const g=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]);const $={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."};const v={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};const _=200;function w(e){var t,r,s,n,o,a,i,c,u,d,l,f,h,y,g,$,v,w,b,P,E,S,k,N,j;const O=e.strict;const C=(t=e.code)===null||t===void 0?void 0:t.optimize;const I=C===true||C===undefined?1:C||0;const x=(s=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&s!==void 0?s:m;const T=(n=e.uriResolver)!==null&&n!==void 0?n:p.default;return{strictSchema:(a=(o=e.strictSchema)!==null&&o!==void 0?o:O)!==null&&a!==void 0?a:true,strictNumbers:(c=(i=e.strictNumbers)!==null&&i!==void 0?i:O)!==null&&c!==void 0?c:true,strictTypes:(d=(u=e.strictTypes)!==null&&u!==void 0?u:O)!==null&&d!==void 0?d:"log",strictTuples:(f=(l=e.strictTuples)!==null&&l!==void 0?l:O)!==null&&f!==void 0?f:"log",strictRequired:(y=(h=e.strictRequired)!==null&&h!==void 0?h:O)!==null&&y!==void 0?y:false,code:e.code?{...e.code,optimize:I,regExp:x}:{optimize:I,regExp:x},loopRequired:(g=e.loopRequired)!==null&&g!==void 0?g:_,loopEnum:($=e.loopEnum)!==null&&$!==void 0?$:_,meta:(v=e.meta)!==null&&v!==void 0?v:true,messages:(w=e.messages)!==null&&w!==void 0?w:true,inlineRefs:(b=e.inlineRefs)!==null&&b!==void 0?b:true,schemaId:(P=e.schemaId)!==null&&P!==void 0?P:"$id",addUsedSchema:(E=e.addUsedSchema)!==null&&E!==void 0?E:true,validateSchema:(S=e.validateSchema)!==null&&S!==void 0?S:true,validateFormats:(k=e.validateFormats)!==null&&k!==void 0?k:true,unicodeRegExp:(N=e.unicodeRegExp)!==null&&N!==void 0?N:true,int32range:(j=e.int32range)!==null&&j!==void 0?j:true,uriResolver:T}}class b{constructor(e={}){this.schemas={};this.refs={};this.formats={};this._compilations=new Set;this._loading={};this._cache=new Map;e=this.opts={...e,...w(e)};const{es5:t,lines:r}=this.opts.code;this.scope=new u.ValueScope({scope:{},prefixes:g,es5:t,lines:r});this.logger=C(e.logger);const s=e.validateFormats;e.validateFormats=false;this.RULES=(0,i.getRules)();P.call(this,$,e,"NOT SUPPORTED");P.call(this,v,e,"DEPRECATED","warn");this._metaOpts=j.call(this);if(e.formats)k.call(this);this._addVocabularies();this._addDefaultMetaSchema();if(e.keywords)N.call(this,e.keywords);if(typeof e.meta=="object")this.addMetaSchema(e.meta);S.call(this);e.validateFormats=s}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:e,meta:t,schemaId:r}=this.opts;let s=h;if(r==="id"){s={...h};s.id=s.$id;delete s.$id}if(t&&e)this.addMetaSchema(s,s[r],false)}defaultMeta(){const{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:undefined}validate(e,t){let r;if(typeof e=="string"){r=this.getSchema(e);if(!r)throw new Error(`no schema with key or ref "${e}"`)}else{r=this.compile(e)}const s=r(t);if(!("$async"in r))this.errors=r.errors;return s}compile(e,t){const r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function"){throw new Error("options.loadSchema should be a function")}const{loadSchema:r}=this.opts;return s.call(this,e,t);async function s(e,t){await n.call(this,e.$schema);const r=this._addSchema(e,t);return r.validate||o.call(this,r)}async function n(e){if(e&&!this.getSchema(e)){await s.call(this,{$ref:e},true)}}async function o(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof a.default))throw t;i.call(this,t);await c.call(this,t.missingSchema);return o.call(this,e)}}function i({missingSchema:e,missingRef:t}){if(this.refs[e]){throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}}async function c(e){const r=await u.call(this,e);if(!this.refs[e])await n.call(this,r.$schema);if(!this.refs[e])this.addSchema(r,e,t)}async function u(e){const t=this._loading[e];if(t)return t;try{return await(this._loading[e]=r(e))}finally{delete this._loading[e]}}}addSchema(e,t,r,s=this.opts.validateSchema){if(Array.isArray(e)){for(const t of e)this.addSchema(t,undefined,r,s);return this}let n;if(typeof e==="object"){const{schemaId:t}=this.opts;n=e[t];if(n!==undefined&&typeof n!="string"){throw new Error(`schema ${t} must be string`)}}t=(0,d.normalizeId)(t||n);this._checkUnique(t);this.schemas[t]=this._addSchema(e,r,t,s,true);return this}addMetaSchema(e,t,r=this.opts.validateSchema){this.addSchema(e,t,true,r);return this}validateSchema(e,t){if(typeof e=="boolean")return true;let r;r=e.$schema;if(r!==undefined&&typeof r!="string"){throw new Error("$schema must be a string")}r=r||this.opts.defaultMeta||this.defaultMeta();if(!r){this.logger.warn("meta-schema not available");this.errors=null;return true}const s=this.validate(r,e);if(!s&&t){const e="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(e);else throw new Error(e)}return s}getSchema(e){let t;while(typeof(t=E.call(this,e))=="string")e=t;if(t===undefined){const{schemaId:r}=this.opts;const s=new c.SchemaEnv({schema:{},schemaId:r});t=c.resolveSchema.call(this,s,e);if(!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp){this._removeAllSchemas(this.schemas,e);this._removeAllSchemas(this.refs,e);return this}switch(typeof e){case"undefined":this._removeAllSchemas(this.schemas);this._removeAllSchemas(this.refs);this._cache.clear();return this;case"string":{const t=E.call(this,e);if(typeof t=="object")this._cache.delete(t.schema);delete this.schemas[e];delete this.refs[e];return this}case"object":{const t=e;this._cache.delete(t);let r=e[this.opts.schemaId];if(r){r=(0,d.normalizeId)(r);delete this.schemas[r];delete this.refs[r]}return this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(const t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if(typeof e=="string"){r=e;if(typeof t=="object"){this.logger.warn("these parameters are deprecated, see docs for addKeyword");t.keyword=r}}else if(typeof e=="object"&&t===undefined){t=e;r=t.keyword;if(Array.isArray(r)&&!r.length){throw new Error("addKeywords: keyword must be string or non-empty array")}}else{throw new Error("invalid addKeywords parameters")}x.call(this,r,t);if(!t){(0,f.eachItem)(r,(e=>T.call(this,e)));return this}M.call(this,t);const s={...t,type:(0,l.getJSONTypes)(t.type),schemaType:(0,l.getJSONTypes)(t.schemaType)};(0,f.eachItem)(r,s.type.length===0?e=>T.call(this,e,s):e=>s.type.forEach((t=>T.call(this,e,s,t))));return this}getKeyword(e){const t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){const{RULES:t}=this;delete t.keywords[e];delete t.all[e];for(const r of t.rules){const t=r.rules.findIndex((t=>t.keyword===e));if(t>=0)r.rules.splice(t,1)}return this}addFormat(e,t){if(typeof t=="string")t=new RegExp(t);this.formats[e]=t;return this}errorsText(e=this.errors,{separator:t=", ",dataVar:r="data"}={}){if(!e||e.length===0)return"No errors";return e.map((e=>`${r}${e.instancePath} ${e.message}`)).reduce(((e,r)=>e+t+r))}$dataMetaSchema(e,t){const r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(const s of t){const t=s.split("/").slice(1);let n=e;for(const e of t)n=n[e];for(const e in r){const t=r[e];if(typeof t!="object")continue;const{$data:s}=t.definition;const o=n[e];if(s&&o)n[e]=D(o)}}return e}_removeAllSchemas(e,t){for(const r in e){const s=e[r];if(!t||t.test(r)){if(typeof s=="string"){delete e[r]}else if(s&&!s.meta){this._cache.delete(s.schema);delete e[r]}}}}_addSchema(e,t,r,s=this.opts.validateSchema,n=this.opts.addUsedSchema){let o;const{schemaId:a}=this.opts;if(typeof e=="object"){o=e[a]}else{if(this.opts.jtd)throw new Error("schema must be object");else if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let i=this._cache.get(e);if(i!==undefined)return i;r=(0,d.normalizeId)(o||r);const u=d.getSchemaRefs.call(this,e,r);i=new c.SchemaEnv({schema:e,schemaId:a,meta:t,baseId:r,localRefs:u});this._cache.set(i.schema,i);if(n&&!r.startsWith("#")){if(r)this._checkUnique(r);this.refs[r]=i}if(s)this.validateSchema(e,true);return i}_checkUnique(e){if(this.schemas[e]||this.refs[e]){throw new Error(`schema with key or id "${e}" already exists`)}}_compileSchemaEnv(e){if(e.meta)this._compileMetaSchema(e);else c.compileSchema.call(this,e);if(!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){const t=this.opts;this.opts=this._metaOpts;try{c.compileSchema.call(this,e)}finally{this.opts=t}}}b.ValidationError=o.default;b.MissingRefError=a.default;t["default"]=b;function P(e,t,r,s="error"){for(const n in e){const o=n;if(o in t)this.logger[s](`${r}: option ${n}. ${e[o]}`)}}function E(e){e=(0,d.normalizeId)(e);return this.schemas[e]||this.refs[e]}function S(){const e=this.opts.schemas;if(!e)return;if(Array.isArray(e))this.addSchema(e);else for(const t in e)this.addSchema(e[t],t)}function k(){for(const e in this.opts.formats){const t=this.opts.formats[e];if(t)this.addFormat(e,t)}}function N(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(const t in e){const r=e[t];if(!r.keyword)r.keyword=t;this.addKeyword(r)}}function j(){const e={...this.opts};for(const t of y)delete e[t];return e}const O={log(){},warn(){},error(){}};function C(e){if(e===false)return O;if(e===undefined)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}const I=/^[a-z_$][a-z0-9_$:-]*$/i;function x(e,t){const{RULES:r}=this;(0,f.eachItem)(e,(e=>{if(r.keywords[e])throw new Error(`Keyword ${e} is already defined`);if(!I.test(e))throw new Error(`Keyword ${e} has invalid name`)}));if(!t)return;if(t.$data&&!("code"in t||"validate"in t)){throw new Error('$data keyword must have "code" or "validate" function')}}function T(e,t,r){var s;const n=t===null||t===void 0?void 0:t.post;if(r&&n)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:o}=this;let a=n?o.post:o.rules.find((({type:e})=>e===r));if(!a){a={type:r,rules:[]};o.rules.push(a)}o.keywords[e]=true;if(!t)return;const i={keyword:e,definition:{...t,type:(0,l.getJSONTypes)(t.type),schemaType:(0,l.getJSONTypes)(t.schemaType)}};if(t.before)R.call(this,a,i,t.before);else a.rules.push(i);o.all[e]=i;(s=t.implements)===null||s===void 0?void 0:s.forEach((e=>this.addKeyword(e)))}function R(e,t,r){const s=e.rules.findIndex((e=>e.keyword===r));if(s>=0){e.rules.splice(s,0,t)}else{e.rules.push(t);this.logger.warn(`rule ${r} is not defined`)}}function M(e){let{metaSchema:t}=e;if(t===undefined)return;if(e.$data&&this.opts.$data)t=D(t);e.validateSchema=this.compile(t,true)}const A={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function D(e){return{anyOf:[e,A]}}},76250:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(32017);s.code='require("ajv/dist/runtime/equal").default';t["default"]=s},53853:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});function r(e){const t=e.length;let r=0;let s=0;let n;while(s=55296&&n<=56319&&s{Object.defineProperty(t,"__esModule",{value:true});const s=r(74488);s.code='require("ajv/dist/runtime/uri").default';t["default"]=s},13558:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});class r extends Error{constructor(e){super("validation failed");this.errors=e;this.ajv=this.validation=true}}t["default"]=r},15457:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.validateAdditionalItems=void 0;const s=r(99029);const n=r(94227);const o={message:({params:{len:e}})=>(0,s.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,s._)`{limit: ${e}}`};const a={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:o,code(e){const{parentSchema:t,it:r}=e;const{items:s}=t;if(!Array.isArray(s)){(0,n.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}i(e,s)}};function i(e,t){const{gen:r,schema:o,data:a,keyword:i,it:c}=e;c.items=true;const u=r.const("len",(0,s._)`${a}.length`);if(o===false){e.setParams({len:t.length});e.pass((0,s._)`${u} <= ${t.length}`)}else if(typeof o=="object"&&!(0,n.alwaysValidSchema)(c,o)){const n=r.var("valid",(0,s._)`${u} <= ${t.length}`);r.if((0,s.not)(n),(()=>d(n)));e.ok(n)}function d(o){r.forRange("i",t.length,u,(t=>{e.subschema({keyword:i,dataProp:t,dataPropType:n.Type.Num},o);if(!c.allErrors)r.if((0,s.not)(o),(()=>r.break()))}))}}t.validateAdditionalItems=i;t["default"]=a},38660:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(15765);const n=r(99029);const o=r(42023);const a=r(94227);const i={message:"must NOT have additional properties",params:({params:e})=>(0,n._)`{additionalProperty: ${e.additionalProperty}}`};const c={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:true,trackErrors:true,error:i,code(e){const{gen:t,schema:r,parentSchema:i,data:c,errsCount:u,it:d}=e;if(!u)throw new Error("ajv implementation error");const{allErrors:l,opts:f}=d;d.props=true;if(f.removeAdditional!=="all"&&(0,a.alwaysValidSchema)(d,r))return;const h=(0,s.allSchemaProperties)(i.properties);const p=(0,s.allSchemaProperties)(i.patternProperties);m();e.ok((0,n._)`${u} === ${o.default.errors}`);function m(){t.forIn("key",c,(e=>{if(!h.length&&!p.length)$(e);else t.if(y(e),(()=>$(e)))}))}function y(r){let o;if(h.length>8){const e=(0,a.schemaRefOrVal)(d,i.properties,"properties");o=(0,s.isOwnProperty)(t,e,r)}else if(h.length){o=(0,n.or)(...h.map((e=>(0,n._)`${r} === ${e}`)))}else{o=n.nil}if(p.length){o=(0,n.or)(o,...p.map((t=>(0,n._)`${(0,s.usePattern)(e,t)}.test(${r})`)))}return(0,n.not)(o)}function g(e){t.code((0,n._)`delete ${c}[${e}]`)}function $(s){if(f.removeAdditional==="all"||f.removeAdditional&&r===false){g(s);return}if(r===false){e.setParams({additionalProperty:s});e.error();if(!l)t.break();return}if(typeof r=="object"&&!(0,a.alwaysValidSchema)(d,r)){const r=t.name("valid");if(f.removeAdditional==="failing"){v(s,r,false);t.if((0,n.not)(r),(()=>{e.reset();g(s)}))}else{v(s,r);if(!l)t.if((0,n.not)(r),(()=>t.break()))}}}function v(t,r,s){const n={keyword:"additionalProperties",dataProp:t,dataPropType:a.Type.Str};if(s===false){Object.assign(n,{compositeRule:true,createErrors:false,allErrors:false})}e.subschema(n,r)}}};t["default"]=c},15844:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(94227);const n={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");const o=t.name("valid");r.forEach(((t,r)=>{if((0,s.alwaysValidSchema)(n,t))return;const a=e.subschema({keyword:"allOf",schemaProp:r},o);e.ok(o);e.mergeEvaluated(a)}))}};t["default"]=n},16505:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(15765);const n={keyword:"anyOf",schemaType:"array",trackErrors:true,code:s.validateUnion,error:{message:"must match a schema in anyOf"}};t["default"]=n},12661:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n=r(94227);const o={message:({params:{min:e,max:t}})=>t===undefined?(0,s.str)`must contain at least ${e} valid item(s)`:(0,s.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===undefined?(0,s._)`{minContains: ${e}}`:(0,s._)`{minContains: ${e}, maxContains: ${t}}`};const a={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:true,error:o,code(e){const{gen:t,schema:r,parentSchema:o,data:a,it:i}=e;let c;let u;const{minContains:d,maxContains:l}=o;if(i.opts.next){c=d===undefined?1:d;u=l}else{c=1}const f=t.const("len",(0,s._)`${a}.length`);e.setParams({min:c,max:u});if(u===undefined&&c===0){(0,n.checkStrictMode)(i,`"minContains" == 0 without "maxContains": "contains" keyword ignored`);return}if(u!==undefined&&c>u){(0,n.checkStrictMode)(i,`"minContains" > "maxContains" is always invalid`);e.fail();return}if((0,n.alwaysValidSchema)(i,r)){let t=(0,s._)`${f} >= ${c}`;if(u!==undefined)t=(0,s._)`${t} && ${f} <= ${u}`;e.pass(t);return}i.items=true;const h=t.name("valid");if(u===undefined&&c===1){m(h,(()=>t.if(h,(()=>t.break()))))}else if(c===0){t.let(h,true);if(u!==undefined)t.if((0,s._)`${a}.length > 0`,p)}else{t.let(h,false);p()}e.result(h,(()=>e.reset()));function p(){const e=t.name("_valid");const r=t.let("count",0);m(e,(()=>t.if(e,(()=>y(r)))))}function m(r,s){t.forRange("i",0,f,(t=>{e.subschema({keyword:"contains",dataProp:t,dataPropType:n.Type.Num,compositeRule:true},r);s()}))}function y(e){t.code((0,s._)`${e}++`);if(u===undefined){t.if((0,s._)`${e} >= ${c}`,(()=>t.assign(h,true).break()))}else{t.if((0,s._)`${e} > ${u}`,(()=>t.assign(h,false).break()));if(c===1)t.assign(h,true);else t.if((0,s._)`${e} >= ${c}`,(()=>t.assign(h,true)))}}}};t["default"]=a},83025:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;const s=r(99029);const n=r(94227);const o=r(15765);t.error={message:({params:{property:e,depsCount:t,deps:r}})=>{const n=t===1?"property":"properties";return(0,s.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,s._)`{property: ${e}, - missingProperty: ${n}, - depsCount: ${t}, - deps: ${r}}`};const a={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,r]=i(e);c(e,t);u(e,r)}};function i({schema:e}){const t={};const r={};for(const s in e){if(s==="__proto__")continue;const n=Array.isArray(e[s])?t:r;n[s]=e[s]}return[t,r]}function c(e,t=e.schema){const{gen:r,data:n,it:a}=e;if(Object.keys(t).length===0)return;const i=r.let("missing");for(const c in t){const u=t[c];if(u.length===0)continue;const d=(0,o.propertyInData)(r,n,c,a.opts.ownProperties);e.setParams({property:c,depsCount:u.length,deps:u.join(", ")});if(a.allErrors){r.if(d,(()=>{for(const t of u){(0,o.checkReportMissingProp)(e,t)}}))}else{r.if((0,s._)`${d} && (${(0,o.checkMissingProp)(e,u,i)})`);(0,o.reportMissingProp)(e,i);r.else()}}}t.validatePropertyDeps=c;function u(e,t=e.schema){const{gen:r,data:s,keyword:a,it:i}=e;const c=r.name("valid");for(const u in t){if((0,n.alwaysValidSchema)(i,t[u]))continue;r.if((0,o.propertyInData)(r,s,u,i.opts.ownProperties),(()=>{const t=e.subschema({keyword:a,schemaProp:u},c);e.mergeValidEvaluated(t,c)}),(()=>r.var(c,true)));e.ok(c)}}t.validateSchemaDeps=u;t["default"]=a},1239:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n=r(94227);const o={message:({params:e})=>(0,s.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,s._)`{failingKeyword: ${e.ifClause}}`};const a={keyword:"if",schemaType:["object","boolean"],trackErrors:true,error:o,code(e){const{gen:t,parentSchema:r,it:o}=e;if(r.then===undefined&&r.else===undefined){(0,n.checkStrictMode)(o,'"if" without "then" and "else" is ignored')}const a=i(o,"then");const c=i(o,"else");if(!a&&!c)return;const u=t.let("valid",true);const d=t.name("_valid");l();e.reset();if(a&&c){const r=t.let("ifClause");e.setParams({ifClause:r});t.if(d,f("then",r),f("else",r))}else if(a){t.if(d,f("then"))}else{t.if((0,s.not)(d),f("else"))}e.pass(u,(()=>e.error(true)));function l(){const t=e.subschema({keyword:"if",compositeRule:true,createErrors:false,allErrors:false},d);e.mergeEvaluated(t)}function f(r,n){return()=>{const o=e.subschema({keyword:r},d);t.assign(u,d);e.mergeValidEvaluated(o,u);if(n)t.assign(n,(0,s._)`${r}`);else e.setParams({ifClause:r})}}}};function i(e,t){const r=e.schema[t];return r!==undefined&&!(0,n.alwaysValidSchema)(e,r)}t["default"]=a},56378:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(15457);const n=r(65354);const o=r(20494);const a=r(93966);const i=r(12661);const c=r(83025);const u=r(19713);const d=r(38660);const l=r(40117);const f=r(45333);const h=r(57923);const p=r(16505);const m=r(96163);const y=r(15844);const g=r(1239);const $=r(14426);function v(e=false){const t=[h.default,p.default,m.default,y.default,g.default,$.default,u.default,d.default,c.default,l.default,f.default];if(e)t.push(n.default,a.default);else t.push(s.default,o.default);t.push(i.default);return t}t["default"]=v},20494:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.validateTuple=void 0;const s=r(99029);const n=r(94227);const o=r(15765);const a={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:r}=e;if(Array.isArray(t))return i(e,"additionalItems",t);r.items=true;if((0,n.alwaysValidSchema)(r,t))return;e.ok((0,o.validateArray)(e))}};function i(e,t,r=e.schema){const{gen:o,parentSchema:a,data:i,keyword:c,it:u}=e;f(a);if(u.opts.unevaluated&&r.length&&u.items!==true){u.items=n.mergeEvaluated.items(o,r.length,u.items)}const d=o.name("valid");const l=o.const("len",(0,s._)`${i}.length`);r.forEach(((t,r)=>{if((0,n.alwaysValidSchema)(u,t))return;o.if((0,s._)`${l} > ${r}`,(()=>e.subschema({keyword:c,schemaProp:r,dataProp:r},d)));e.ok(d)}));function f(e){const{opts:s,errSchemaPath:o}=u;const a=r.length;const i=a===e.minItems&&(a===e.maxItems||e[t]===false);if(s.strictTuples&&!i){const e=`"${c}" is ${a}-tuple, but minItems or maxItems/${t} are not specified or different at path "${o}"`;(0,n.checkStrictMode)(u,e,s.strictTuples)}}}t.validateTuple=i;t["default"]=a},93966:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n=r(94227);const o=r(15765);const a=r(15457);const i={message:({params:{len:e}})=>(0,s.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,s._)`{limit: ${e}}`};const c={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:i,code(e){const{schema:t,parentSchema:r,it:s}=e;const{prefixItems:i}=r;s.items=true;if((0,n.alwaysValidSchema)(s,t))return;if(i)(0,a.validateAdditionalItems)(e,i);else e.ok((0,o.validateArray)(e))}};t["default"]=c},57923:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(94227);const n={keyword:"not",schemaType:["object","boolean"],trackErrors:true,code(e){const{gen:t,schema:r,it:n}=e;if((0,s.alwaysValidSchema)(n,r)){e.fail();return}const o=t.name("valid");e.subschema({keyword:"not",compositeRule:true,createErrors:false,allErrors:false},o);e.failResult(o,(()=>e.reset()),(()=>e.error()))},error:{message:"must NOT be valid"}};t["default"]=n},96163:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n=r(94227);const o={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,s._)`{passingSchemas: ${e.passing}}`};const a={keyword:"oneOf",schemaType:"array",trackErrors:true,error:o,code(e){const{gen:t,schema:r,parentSchema:o,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(a.opts.discriminator&&o.discriminator)return;const i=r;const c=t.let("valid",false);const u=t.let("passing",null);const d=t.name("_valid");e.setParams({passing:u});t.block(l);e.result(c,(()=>e.reset()),(()=>e.error(true)));function l(){i.forEach(((r,o)=>{let i;if((0,n.alwaysValidSchema)(a,r)){t.var(d,true)}else{i=e.subschema({keyword:"oneOf",schemaProp:o,compositeRule:true},d)}if(o>0){t.if((0,s._)`${d} && ${c}`).assign(c,false).assign(u,(0,s._)`[${u}, ${o}]`).else()}t.if(d,(()=>{t.assign(c,true);t.assign(u,o);if(i)e.mergeEvaluated(i,s.Name)}))}))}}};t["default"]=a},45333:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(15765);const n=r(99029);const o=r(94227);const a=r(94227);const i={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:r,data:i,parentSchema:c,it:u}=e;const{opts:d}=u;const l=(0,s.allSchemaProperties)(r);const f=l.filter((e=>(0,o.alwaysValidSchema)(u,r[e])));if(l.length===0||f.length===l.length&&(!u.opts.unevaluated||u.props===true)){return}const h=d.strictSchema&&!d.allowMatchingProperties&&c.properties;const p=t.name("valid");if(u.props!==true&&!(u.props instanceof n.Name)){u.props=(0,a.evaluatedPropsToName)(t,u.props)}const{props:m}=u;y();function y(){for(const e of l){if(h)g(e);if(u.allErrors){$(e)}else{t.var(p,true);$(e);t.if(p)}}}function g(e){for(const t in h){if(new RegExp(e).test(t)){(0,o.checkStrictMode)(u,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}}}function $(r){t.forIn("key",i,(o=>{t.if((0,n._)`${(0,s.usePattern)(e,r)}.test(${o})`,(()=>{const s=f.includes(r);if(!s){e.subschema({keyword:"patternProperties",schemaProp:r,dataProp:o,dataPropType:a.Type.Str},p)}if(u.opts.unevaluated&&m!==true){t.assign((0,n._)`${m}[${o}]`,true)}else if(!s&&!u.allErrors){t.if((0,n.not)(p),(()=>t.break()))}}))}))}}};t["default"]=i},65354:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(20494);const n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,s.validateTuple)(e,"items")};t["default"]=n},40117:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(62586);const n=r(15765);const o=r(94227);const a=r(38660);const i={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:r,parentSchema:i,data:c,it:u}=e;if(u.opts.removeAdditional==="all"&&i.additionalProperties===undefined){a.default.code(new s.KeywordCxt(u,a.default,"additionalProperties"))}const d=(0,n.allSchemaProperties)(r);for(const s of d){u.definedProperties.add(s)}if(u.opts.unevaluated&&d.length&&u.props!==true){u.props=o.mergeEvaluated.props(t,(0,o.toHash)(d),u.props)}const l=d.filter((e=>!(0,o.alwaysValidSchema)(u,r[e])));if(l.length===0)return;const f=t.name("valid");for(const s of l){if(h(s)){p(s)}else{t.if((0,n.propertyInData)(t,c,s,u.opts.ownProperties));p(s);if(!u.allErrors)t.else().var(f,true);t.endIf()}e.it.definedProperties.add(s);e.ok(f)}function h(e){return u.opts.useDefaults&&!u.compositeRule&&r[e].default!==undefined}function p(t){e.subschema({keyword:"properties",schemaProp:t,dataProp:t},f)}}};t["default"]=i},19713:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n=r(94227);const o={message:"property name must be valid",params:({params:e})=>(0,s._)`{propertyName: ${e.propertyName}}`};const a={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:o,code(e){const{gen:t,schema:r,data:o,it:a}=e;if((0,n.alwaysValidSchema)(a,r))return;const i=t.name("valid");t.forIn("key",o,(r=>{e.setParams({propertyName:r});e.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:true},i);t.if((0,s.not)(i),(()=>{e.error(true);if(!a.allErrors)t.break()}))}));e.ok(i)}};t["default"]=a},14426:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(94227);const n={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){if(t.if===undefined)(0,s.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};t["default"]=n},15765:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;const s=r(99029);const n=r(94227);const o=r(42023);const a=r(94227);function i(e,t){const{gen:r,data:n,it:o}=e;r.if(h(r,n,t,o.opts.ownProperties),(()=>{e.setParams({missingProperty:(0,s._)`${t}`},true);e.error()}))}t.checkReportMissingProp=i;function c({gen:e,data:t,it:{opts:r}},n,o){return(0,s.or)(...n.map((n=>(0,s.and)(h(e,t,n,r.ownProperties),(0,s._)`${o} = ${n}`))))}t.checkMissingProp=c;function u(e,t){e.setParams({missingProperty:t},true);e.error()}t.reportMissingProp=u;function d(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,s._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=d;function l(e,t,r){return(0,s._)`${d(e)}.call(${t}, ${r})`}t.isOwnProperty=l;function f(e,t,r,n){const o=(0,s._)`${t}${(0,s.getProperty)(r)} !== undefined`;return n?(0,s._)`${o} && ${l(e,t,r)}`:o}t.propertyInData=f;function h(e,t,r,n){const o=(0,s._)`${t}${(0,s.getProperty)(r)} === undefined`;return n?(0,s.or)(o,(0,s.not)(l(e,t,r))):o}t.noPropertyInData=h;function p(e){return e?Object.keys(e).filter((e=>e!=="__proto__")):[]}t.allSchemaProperties=p;function m(e,t){return p(t).filter((r=>!(0,n.alwaysValidSchema)(e,t[r])))}t.schemaProperties=m;function y({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:a,errorPath:i},it:c},u,d,l){const f=l?(0,s._)`${e}, ${t}, ${n}${a}`:t;const h=[[o.default.instancePath,(0,s.strConcat)(o.default.instancePath,i)],[o.default.parentData,c.parentData],[o.default.parentDataProperty,c.parentDataProperty],[o.default.rootData,o.default.rootData]];if(c.opts.dynamicRef)h.push([o.default.dynamicAnchors,o.default.dynamicAnchors]);const p=(0,s._)`${f}, ${r.object(...h)}`;return d!==s.nil?(0,s._)`${u}.call(${d}, ${p})`:(0,s._)`${u}(${p})`}t.callValidateCode=y;const g=(0,s._)`new RegExp`;function $({gen:e,it:{opts:t}},r){const n=t.unicodeRegExp?"u":"";const{regExp:o}=t.code;const i=o(r,n);return e.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,s._)`${o.code==="new RegExp"?g:(0,a.useFunc)(e,o)}(${r}, ${n})`})}t.usePattern=$;function v(e){const{gen:t,data:r,keyword:o,it:a}=e;const i=t.name("valid");if(a.allErrors){const e=t.let("valid",true);c((()=>t.assign(e,false)));return e}t.var(i,true);c((()=>t.break()));return i;function c(a){const c=t.const("len",(0,s._)`${r}.length`);t.forRange("i",0,c,(r=>{e.subschema({keyword:o,dataProp:r,dataPropType:n.Type.Num},i);t.if((0,s.not)(i),a)}))}}t.validateArray=v;function _(e){const{gen:t,schema:r,keyword:o,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");const i=r.some((e=>(0,n.alwaysValidSchema)(a,e)));if(i&&!a.opts.unevaluated)return;const c=t.let("valid",false);const u=t.name("_valid");t.block((()=>r.forEach(((r,n)=>{const a=e.subschema({keyword:o,schemaProp:n,compositeRule:true},u);t.assign(c,(0,s._)`${c} || ${u}`);const i=e.mergeValidEvaluated(a,u);if(!i)t.if((0,s.not)(c))}))));e.result(c,(()=>e.reset()),(()=>e.error(true)))}t.validateUnion=_},83463:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});const r={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t["default"]=r},72128:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(83463);const n=r(13693);const o=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",s.default,n.default];t["default"]=o},13693:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.callRef=t.getValidate=void 0;const s=r(34551);const n=r(15765);const o=r(99029);const a=r(42023);const i=r(73835);const c=r(94227);const u={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:r,it:n}=e;const{baseId:a,schemaEnv:c,validateName:u,opts:f,self:h}=n;const{root:p}=c;if((r==="#"||r==="#/")&&a===p.baseId)return y();const m=i.resolveRef.call(h,p,a,r);if(m===undefined)throw new s.default(n.opts.uriResolver,a,r);if(m instanceof i.SchemaEnv)return g(m);return $(m);function y(){if(c===p)return l(e,u,c,c.$async);const r=t.scopeValue("root",{ref:p});return l(e,(0,o._)`${r}.validate`,p,p.$async)}function g(t){const r=d(e,t);l(e,r,t,t.$async)}function $(s){const n=t.scopeValue("schema",f.code.source===true?{ref:s,code:(0,o.stringify)(s)}:{ref:s});const a=t.name("valid");const i=e.subschema({schema:s,dataTypes:[],schemaPath:o.nil,topSchemaRef:n,errSchemaPath:r},a);e.mergeEvaluated(i);e.ok(a)}}};function d(e,t){const{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,o._)`${r.scopeValue("wrapper",{ref:t})}.validate`}t.getValidate=d;function l(e,t,r,s){const{gen:i,it:u}=e;const{allErrors:d,schemaEnv:l,opts:f}=u;const h=f.passContext?a.default.this:o.nil;if(s)p();else m();function p(){if(!l.$async)throw new Error("async schema referenced by sync schema");const r=i.let("valid");i.try((()=>{i.code((0,o._)`await ${(0,n.callValidateCode)(e,t,h)}`);g(t);if(!d)i.assign(r,true)}),(e=>{i.if((0,o._)`!(${e} instanceof ${u.ValidationError})`,(()=>i.throw(e)));y(e);if(!d)i.assign(r,false)}));e.ok(r)}function m(){e.result((0,n.callValidateCode)(e,t,h),(()=>g(t)),(()=>y(t)))}function y(e){const t=(0,o._)`${e}.errors`;i.assign(a.default.vErrors,(0,o._)`${a.default.vErrors} === null ? ${t} : ${a.default.vErrors}.concat(${t})`);i.assign(a.default.errors,(0,o._)`${a.default.vErrors}.length`)}function g(e){var t;if(!u.opts.unevaluated)return;const s=(t=r===null||r===void 0?void 0:r.validate)===null||t===void 0?void 0:t.evaluated;if(u.props!==true){if(s&&!s.dynamicProps){if(s.props!==undefined){u.props=c.mergeEvaluated.props(i,s.props,u.props)}}else{const t=i.var("props",(0,o._)`${e}.evaluated.props`);u.props=c.mergeEvaluated.props(i,t,u.props,o.Name)}}if(u.items!==true){if(s&&!s.dynamicItems){if(s.items!==undefined){u.items=c.mergeEvaluated.items(i,s.items,u.items)}}else{const t=i.var("items",(0,o._)`${e}.evaluated.items`);u.items=c.mergeEvaluated.items(i,t,u.items,o.Name)}}}}t.callRef=l;t["default"]=u},36653:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n=r(97652);const o=r(73835);const a=r(34551);const i=r(94227);const c={message:({params:{discrError:e,tagName:t}})=>e===n.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,s._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`};const u={keyword:"discriminator",type:"object",schemaType:"object",error:c,code(e){const{gen:t,data:r,schema:c,parentSchema:u,it:d}=e;const{oneOf:l}=u;if(!d.opts.discriminator){throw new Error("discriminator: requires discriminator option")}const f=c.propertyName;if(typeof f!="string")throw new Error("discriminator: requires propertyName");if(c.mapping)throw new Error("discriminator: mapping is not supported");if(!l)throw new Error("discriminator: requires oneOf keyword");const h=t.let("valid",false);const p=t.const("tag",(0,s._)`${r}${(0,s.getProperty)(f)}`);t.if((0,s._)`typeof ${p} == "string"`,(()=>m()),(()=>e.error(false,{discrError:n.DiscrError.Tag,tag:p,tagName:f})));e.ok(h);function m(){const r=g();t.if(false);for(const e in r){t.elseIf((0,s._)`${p} === ${e}`);t.assign(h,y(r[e]))}t.else();e.error(false,{discrError:n.DiscrError.Mapping,tag:p,tagName:f});t.endIf()}function y(r){const n=t.name("valid");const o=e.subschema({keyword:"oneOf",schemaProp:r},n);e.mergeEvaluated(o,s.Name);return n}function g(){var e;const t={};const r=n(u);let s=true;for(let u=0;u{Object.defineProperty(t,"__esModule",{value:true});t.DiscrError=void 0;var r;(function(e){e["Tag"]="tag";e["Mapping"]="mapping"})(r||(t.DiscrError=r={}))},63763:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(72128);const n=r(67060);const o=r(56378);const a=r(97532);const i=r(69857);const c=[s.default,n.default,(0,o.default)(),a.default,i.metadataVocabulary,i.contentVocabulary];t["default"]=c},94737:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n={message:({schemaCode:e})=>(0,s.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,s._)`{format: ${e}}`};const o={keyword:"format",type:["number","string"],schemaType:"string",$data:true,error:n,code(e,t){const{gen:r,data:n,$data:o,schema:a,schemaCode:i,it:c}=e;const{opts:u,errSchemaPath:d,schemaEnv:l,self:f}=c;if(!u.validateFormats)return;if(o)h();else p();function h(){const o=r.scopeValue("formats",{ref:f.formats,code:u.code.formats});const a=r.const("fDef",(0,s._)`${o}[${i}]`);const c=r.let("fType");const d=r.let("format");r.if((0,s._)`typeof ${a} == "object" && !(${a} instanceof RegExp)`,(()=>r.assign(c,(0,s._)`${a}.type || "string"`).assign(d,(0,s._)`${a}.validate`)),(()=>r.assign(c,(0,s._)`"string"`).assign(d,a)));e.fail$data((0,s.or)(h(),p()));function h(){if(u.strictSchema===false)return s.nil;return(0,s._)`${i} && !${d}`}function p(){const e=l.$async?(0,s._)`(${a}.async ? await ${d}(${n}) : ${d}(${n}))`:(0,s._)`${d}(${n})`;const r=(0,s._)`(typeof ${d} == "function" ? ${e} : ${d}.test(${n}))`;return(0,s._)`${d} && ${d} !== true && ${c} === ${t} && !${r}`}}function p(){const o=f.formats[a];if(!o){p();return}if(o===true)return;const[i,c,h]=m(o);if(i===t)e.pass(y());function p(){if(u.strictSchema===false){f.logger.warn(e());return}throw new Error(e());function e(){return`unknown format "${a}" ignored in schema at path "${d}"`}}function m(e){const t=e instanceof RegExp?(0,s.regexpCode)(e):u.code.formats?(0,s._)`${u.code.formats}${(0,s.getProperty)(a)}`:undefined;const n=r.scopeValue("formats",{key:a,ref:e,code:t});if(typeof e=="object"&&!(e instanceof RegExp)){return[e.type||"string",e.validate,(0,s._)`${n}.validate`]}return["string",e,n]}function y(){if(typeof o=="object"&&!(o instanceof RegExp)&&o.async){if(!l.$async)throw new Error("async format in sync schema");return(0,s._)`await ${h}(${n})`}return typeof c=="function"?(0,s._)`${h}(${n})`:(0,s._)`${h}.test(${n})`}}}};t["default"]=o},97532:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(94737);const n=[s.default];t["default"]=n},69857:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.contentVocabulary=t.metadataVocabulary=void 0;t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},27935:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n=r(94227);const o=r(76250);const a={message:"must be equal to constant",params:({schemaCode:e})=>(0,s._)`{allowedValue: ${e}}`};const i={keyword:"const",$data:true,error:a,code(e){const{gen:t,data:r,$data:a,schemaCode:i,schema:c}=e;if(a||c&&typeof c=="object"){e.fail$data((0,s._)`!${(0,n.useFunc)(t,o.default)}(${r}, ${i})`)}else{e.fail((0,s._)`${c} !== ${r}`)}}};t["default"]=i},28643:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n=r(94227);const o=r(76250);const a={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,s._)`{allowedValues: ${e}}`};const i={keyword:"enum",schemaType:"array",$data:true,error:a,code(e){const{gen:t,data:r,$data:a,schema:i,schemaCode:c,it:u}=e;if(!a&&i.length===0)throw new Error("enum must have non-empty array");const d=i.length>=u.opts.loopEnum;let l;const f=()=>l!==null&&l!==void 0?l:l=(0,n.useFunc)(t,o.default);let h;if(d||a){h=t.let("valid");e.block$data(h,p)}else{if(!Array.isArray(i))throw new Error("ajv implementation error");const e=t.const("vSchema",c);h=(0,s.or)(...i.map(((t,r)=>m(e,r))))}e.pass(h);function p(){t.assign(h,false);t.forOf("v",c,(e=>t.if((0,s._)`${f()}(${r}, ${e})`,(()=>t.assign(h,true).break()))))}function m(e,t){const n=i[t];return typeof n==="object"&&n!==null?(0,s._)`${f()}(${r}, ${e}[${t}])`:(0,s._)`${r} === ${n}`}}};t["default"]=i},67060:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(75882);const n=r(63439);const o=r(77307);const a=r(90422);const i=r(34486);const c=r(34003);const u=r(61163);const d=r(60617);const l=r(27935);const f=r(28643);const h=[s.default,n.default,o.default,a.default,i.default,c.default,u.default,d.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},l.default,f.default];t["default"]=h},61163:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n={message({keyword:e,schemaCode:t}){const r=e==="maxItems"?"more":"fewer";return(0,s.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,s._)`{limit: ${e}}`};const o={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:true,error:n,code(e){const{keyword:t,data:r,schemaCode:n}=e;const o=t==="maxItems"?s.operators.GT:s.operators.LT;e.fail$data((0,s._)`${r}.length ${o} ${n}`)}};t["default"]=o},77307:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n=r(94227);const o=r(53853);const a={message({keyword:e,schemaCode:t}){const r=e==="maxLength"?"more":"fewer";return(0,s.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,s._)`{limit: ${e}}`};const i={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:true,error:a,code(e){const{keyword:t,data:r,schemaCode:a,it:i}=e;const c=t==="maxLength"?s.operators.GT:s.operators.LT;const u=i.opts.unicode===false?(0,s._)`${r}.length`:(0,s._)`${(0,n.useFunc)(e.gen,o.default)}(${r})`;e.fail$data((0,s._)`${u} ${c} ${a}`)}};t["default"]=i},75882:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n=s.operators;const o={maximum:{okStr:"<=",ok:n.LTE,fail:n.GT},minimum:{okStr:">=",ok:n.GTE,fail:n.LT},exclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},exclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}};const a={message:({keyword:e,schemaCode:t})=>(0,s.str)`must be ${o[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,s._)`{comparison: ${o[e].okStr}, limit: ${t}}`};const i={keyword:Object.keys(o),type:"number",schemaType:"number",$data:true,error:a,code(e){const{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,s._)`${r} ${o[t].fail} ${n} || isNaN(${r})`)}};t["default"]=i},34486:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n={message({keyword:e,schemaCode:t}){const r=e==="maxProperties"?"more":"fewer";return(0,s.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,s._)`{limit: ${e}}`};const o={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:true,error:n,code(e){const{keyword:t,data:r,schemaCode:n}=e;const o=t==="maxProperties"?s.operators.GT:s.operators.LT;e.fail$data((0,s._)`Object.keys(${r}).length ${o} ${n}`)}};t["default"]=o},63439:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(99029);const n={message:({schemaCode:e})=>(0,s.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,s._)`{multipleOf: ${e}}`};const o={keyword:"multipleOf",type:"number",schemaType:"number",$data:true,error:n,code(e){const{gen:t,data:r,schemaCode:n,it:o}=e;const a=o.opts.multipleOfPrecision;const i=t.let("res");const c=a?(0,s._)`Math.abs(Math.round(${i}) - ${i}) > 1e-${a}`:(0,s._)`${i} !== parseInt(${i})`;e.fail$data((0,s._)`(${n} === 0 || (${i} = ${r}/${n}, ${c}))`)}};t["default"]=o},90422:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(15765);const n=r(99029);const o={message:({schemaCode:e})=>(0,n.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,n._)`{pattern: ${e}}`};const a={keyword:"pattern",type:"string",schemaType:"string",$data:true,error:o,code(e){const{data:t,$data:r,schema:o,schemaCode:a,it:i}=e;const c=i.opts.unicodeRegExp?"u":"";const u=r?(0,n._)`(new RegExp(${a}, ${c}))`:(0,s.usePattern)(e,o);e.fail$data((0,n._)`!${u}.test(${t})`)}};t["default"]=a},34003:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(15765);const n=r(99029);const o=r(94227);const a={message:({params:{missingProperty:e}})=>(0,n.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,n._)`{missingProperty: ${e}}`};const i={keyword:"required",type:"object",schemaType:"array",$data:true,error:a,code(e){const{gen:t,schema:r,schemaCode:a,data:i,$data:c,it:u}=e;const{opts:d}=u;if(!c&&r.length===0)return;const l=r.length>=d.loopRequired;if(u.allErrors)f();else h();if(d.strictRequired){const t=e.parentSchema.properties;const{definedProperties:s}=e.it;for(const e of r){if((t===null||t===void 0?void 0:t[e])===undefined&&!s.has(e)){const t=u.schemaEnv.baseId+u.errSchemaPath;const r=`required property "${e}" is not defined at "${t}" (strictRequired)`;(0,o.checkStrictMode)(u,r,u.opts.strictRequired)}}}function f(){if(l||c){e.block$data(n.nil,p)}else{for(const t of r){(0,s.checkReportMissingProp)(e,t)}}}function h(){const n=t.let("missing");if(l||c){const r=t.let("valid",true);e.block$data(r,(()=>m(n,r)));e.ok(r)}else{t.if((0,s.checkMissingProp)(e,r,n));(0,s.reportMissingProp)(e,n);t.else()}}function p(){t.forOf("prop",a,(r=>{e.setParams({missingProperty:r});t.if((0,s.noPropertyInData)(t,i,r,d.ownProperties),(()=>e.error()))}))}function m(r,o){e.setParams({missingProperty:r});t.forOf(r,a,(()=>{t.assign(o,(0,s.propertyInData)(t,i,r,d.ownProperties));t.if((0,n.not)(o),(()=>{e.error();t.break()}))}),n.nil)}}};t["default"]=i},60617:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(10208);const n=r(99029);const o=r(94227);const a=r(76250);const i={message:({params:{i:e,j:t}})=>(0,n.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,n._)`{i: ${e}, j: ${t}}`};const c={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:true,error:i,code(e){const{gen:t,data:r,$data:i,schema:c,parentSchema:u,schemaCode:d,it:l}=e;if(!i&&!c)return;const f=t.let("valid");const h=u.items?(0,s.getSchemaTypes)(u.items):[];e.block$data(f,p,(0,n._)`${d} === false`);e.ok(f);function p(){const s=t.let("i",(0,n._)`${r}.length`);const o=t.let("j");e.setParams({i:s,j:o});t.assign(f,true);t.if((0,n._)`${s} > 1`,(()=>(m()?y:g)(s,o)))}function m(){return h.length>0&&!h.some((e=>e==="object"||e==="array"))}function y(o,a){const i=t.name("item");const c=(0,s.checkDataTypes)(h,i,l.opts.strictNumbers,s.DataType.Wrong);const u=t.const("indices",(0,n._)`{}`);t.for((0,n._)`;${o}--;`,(()=>{t.let(i,(0,n._)`${r}[${o}]`);t.if(c,(0,n._)`continue`);if(h.length>1)t.if((0,n._)`typeof ${i} == "string"`,(0,n._)`${i} += "_"`);t.if((0,n._)`typeof ${u}[${i}] == "number"`,(()=>{t.assign(a,(0,n._)`${u}[${i}]`);e.error();t.assign(f,false).break()})).code((0,n._)`${u}[${i}] = ${o}`)}))}function g(s,i){const c=(0,o.useFunc)(t,a.default);const u=t.name("outer");t.label(u).for((0,n._)`;${s}--;`,(()=>t.for((0,n._)`${i} = ${s}; ${i}--;`,(()=>t.if((0,n._)`${c}(${r}[${s}], ${r}[${i}])`,(()=>{e.error();t.assign(f,false).break(u)}))))))}}};t["default"]=c},32017:e=>{e.exports=function e(t,r){if(t===r)return true;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return false;var s,n,o;if(Array.isArray(t)){s=t.length;if(s!=r.length)return false;for(n=s;n--!==0;)if(!e(t[n],r[n]))return false;return true}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();o=Object.keys(t);s=o.length;if(s!==Object.keys(r).length)return false;for(n=s;n--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[n]))return false;for(n=s;n--!==0;){var a=o[n];if(!e(t[a],r[a]))return false}return true}return t!==t&&r!==r}},74488:(e,t,r)=>{const{normalizeIPv6:s,normalizeIPv4:n,removeDotSegments:o,recomposeAuthority:a,normalizeComponentEncoding:i}=r(9245);const c=r(49884);function u(e,t){if(typeof e==="string"){e=h(g(e,t),t)}else if(typeof e==="object"){e=g(h(e,t),t)}return e}function d(e,t,r){const s=Object.assign({scheme:"null"},r);const n=l(g(e,s),g(t,s),s,true);return h(n,{...s,skipEscape:true})}function l(e,t,r,s){const n={};if(!s){e=g(h(e,r),r);t=g(h(t,r),r)}r=r||{};if(!r.tolerant&&t.scheme){n.scheme=t.scheme;n.userinfo=t.userinfo;n.host=t.host;n.port=t.port;n.path=o(t.path||"");n.query=t.query}else{if(t.userinfo!==undefined||t.host!==undefined||t.port!==undefined){n.userinfo=t.userinfo;n.host=t.host;n.port=t.port;n.path=o(t.path||"");n.query=t.query}else{if(!t.path){n.path=e.path;if(t.query!==undefined){n.query=t.query}else{n.query=e.query}}else{if(t.path.charAt(0)==="/"){n.path=o(t.path)}else{if((e.userinfo!==undefined||e.host!==undefined||e.port!==undefined)&&!e.path){n.path="/"+t.path}else if(!e.path){n.path=t.path}else{n.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path}n.path=o(n.path)}n.query=t.query}n.userinfo=e.userinfo;n.host=e.host;n.port=e.port}n.scheme=e.scheme}n.fragment=t.fragment;return n}function f(e,t,r){if(typeof e==="string"){e=unescape(e);e=h(i(g(e,r),true),{...r,skipEscape:true})}else if(typeof e==="object"){e=h(i(e,true),{...r,skipEscape:true})}if(typeof t==="string"){t=unescape(t);t=h(i(g(t,r),true),{...r,skipEscape:true})}else if(typeof t==="object"){t=h(i(t,true),{...r,skipEscape:true})}return e.toLowerCase()===t.toLowerCase()}function h(e,t){const r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""};const s=Object.assign({},t);const n=[];const i=c[(s.scheme||r.scheme||"").toLowerCase()];if(i&&i.serialize)i.serialize(r,s);if(r.path!==undefined){if(!s.skipEscape){r.path=escape(r.path);if(r.scheme!==undefined){r.path=r.path.split("%3A").join(":")}}else{r.path=unescape(r.path)}}if(s.reference!=="suffix"&&r.scheme){n.push(r.scheme,":")}const u=a(r);if(u!==undefined){if(s.reference!=="suffix"){n.push("//")}n.push(u);if(r.path&&r.path.charAt(0)!=="/"){n.push("/")}}if(r.path!==undefined){let e=r.path;if(!s.absolutePath&&(!i||!i.absolutePath)){e=o(e)}if(u===undefined){e=e.replace(/^\/\//u,"/%2F")}n.push(e)}if(r.query!==undefined){n.push("?",r.query)}if(r.fragment!==undefined){n.push("#",r.fragment)}return n.join("")}const p=Array.from({length:127},((e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t))));function m(e){let t=0;for(let r=0,s=e.length;r126||p[t]){return true}}return false}const y=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(e,t){const r=Object.assign({},t);const o={scheme:undefined,userinfo:undefined,host:"",port:undefined,path:"",query:undefined,fragment:undefined};const a=e.indexOf("%")!==-1;let i=false;if(r.reference==="suffix")e=(r.scheme?r.scheme+":":"")+"//"+e;const u=e.match(y);if(u){o.scheme=u[1];o.userinfo=u[3];o.host=u[4];o.port=parseInt(u[5],10);o.path=u[6]||"";o.query=u[7];o.fragment=u[8];if(isNaN(o.port)){o.port=u[5]}if(o.host){const e=n(o.host);if(e.isIPV4===false){const t=s(e.host);o.host=t.host.toLowerCase();i=t.isIPV6}else{o.host=e.host;i=true}}if(o.scheme===undefined&&o.userinfo===undefined&&o.host===undefined&&o.port===undefined&&o.query===undefined&&!o.path){o.reference="same-document"}else if(o.scheme===undefined){o.reference="relative"}else if(o.fragment===undefined){o.reference="absolute"}else{o.reference="uri"}if(r.reference&&r.reference!=="suffix"&&r.reference!==o.reference){o.error=o.error||"URI is not a "+r.reference+" reference."}const e=c[(r.scheme||o.scheme||"").toLowerCase()];if(!r.unicodeSupport&&(!e||!e.unicodeSupport)){if(o.host&&(r.domainHost||e&&e.domainHost)&&i===false&&m(o.host)){try{o.host=URL.domainToASCII(o.host.toLowerCase())}catch(d){o.error=o.error||"Host's domain name can not be converted to ASCII: "+d}}}if(!e||e&&!e.skipNormalize){if(a&&o.scheme!==undefined){o.scheme=unescape(o.scheme)}if(a&&o.host!==undefined){o.host=unescape(o.host)}if(o.path){o.path=escape(unescape(o.path))}if(o.fragment){o.fragment=encodeURI(decodeURIComponent(o.fragment))}}if(e&&e.parse){e.parse(o,r)}}else{o.error=o.error||"URI can not be parsed."}return o}const $={SCHEMES:c,normalize:u,resolve:d,resolveComponents:l,equal:f,serialize:h,parse:g};e.exports=$;e.exports["default"]=$;e.exports.fastUri=$},49884:e=>{const t=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu;const r=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function s(e){return typeof e.secure==="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}function n(e){if(!e.host){e.error=e.error||"HTTP URIs must have a host."}return e}function o(e){const t=String(e.scheme).toLowerCase()==="https";if(e.port===(t?443:80)||e.port===""){e.port=undefined}if(!e.path){e.path="/"}return e}function a(e){e.secure=s(e);e.resourceName=(e.path||"/")+(e.query?"?"+e.query:"");e.path=undefined;e.query=undefined;return e}function i(e){if(e.port===(s(e)?443:80)||e.port===""){e.port=undefined}if(typeof e.secure==="boolean"){e.scheme=e.secure?"wss":"ws";e.secure=undefined}if(e.resourceName){const[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:undefined;e.query=r;e.resourceName=undefined}e.fragment=undefined;return e}function c(e,t){if(!e.path){e.error="URN can not be parsed";return e}const s=e.path.match(r);if(s){const r=t.scheme||e.scheme||"urn";e.nid=s[1].toLowerCase();e.nss=s[2];const n=`${r}:${t.nid||e.nid}`;const o=$[n];e.path=undefined;if(o){e=o.parse(e,t)}}else{e.error=e.error||"URN can not be parsed."}return e}function u(e,t){const r=t.scheme||e.scheme||"urn";const s=e.nid.toLowerCase();const n=`${r}:${t.nid||s}`;const o=$[n];if(o){e=o.serialize(e,t)}const a=e;const i=e.nss;a.path=`${s||t.nid}:${i}`;t.skipEscape=true;return a}function d(e,r){const s=e;s.uuid=s.nss;s.nss=undefined;if(!r.tolerant&&(!s.uuid||!t.test(s.uuid))){s.error=s.error||"UUID is not valid."}return s}function l(e){const t=e;t.nss=(e.uuid||"").toLowerCase();return t}const f={scheme:"http",domainHost:true,parse:n,serialize:o};const h={scheme:"https",domainHost:f.domainHost,parse:n,serialize:o};const p={scheme:"ws",domainHost:true,parse:a,serialize:i};const m={scheme:"wss",domainHost:p.domainHost,parse:p.parse,serialize:p.serialize};const y={scheme:"urn",parse:c,serialize:u,skipNormalize:true};const g={scheme:"urn:uuid",parse:d,serialize:l,skipNormalize:true};const $={http:f,https:h,ws:p,wss:m,urn:y,"urn:uuid":g};e.exports=$},54249:e=>{const t={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};e.exports={HEX:t}},9245:(e,t,r)=>{const{HEX:s}=r(54249);const n=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function o(e){if(d(e,".")<3){return{host:e,isIPV4:false}}const t=e.match(n)||[];const[r]=t;if(r){return{host:u(r,"."),isIPV4:true}}else{return{host:e,isIPV4:false}}}function a(e,t=false){let r="";let n=true;for(const o of e){if(s[o]===undefined)return undefined;if(o!=="0"&&n===true)n=false;if(!n)r+=o}if(t&&r.length===0)r="0";return r}function i(e){let t=0;const r={error:false,address:"",zone:""};const s=[];const n=[];let o=false;let i=false;let c=false;function u(){if(n.length){if(o===false){const e=a(n);if(e!==undefined){s.push(e)}else{r.error=true;return false}}n.length=0}return true}for(let a=0;a7){r.error=true;break}if(a-1>=0&&e[a-1]===":"){i=true}continue}else if(d==="%"){if(!u()){break}o=true}else{n.push(d);continue}}if(n.length){if(o){r.zone=n.join("")}else if(c){s.push(n.join(""))}else{s.push(a(n))}}r.address=s.join("");return r}function c(e){if(d(e,":")<2){return{host:e,isIPV6:false}}const t=i(e);if(!t.error){let e=t.address;let r=t.address;if(t.zone){e+="%"+t.zone;r+="%25"+t.zone}return{host:e,escapedHost:r,isIPV6:true}}else{return{host:e,isIPV6:false}}}function u(e,t){let r="";let s=true;const n=e.length;for(let o=0;o{var t=e.exports=function(e,t,s){if(typeof t=="function"){s=t;t={}}s=t.cb||s;var n=typeof s=="function"?s:s.pre||function(){};var o=s.post||function(){};r(t,n,o,e,"",e)};t.keywords={additionalItems:true,items:true,contains:true,additionalProperties:true,propertyNames:true,not:true,if:true,then:true,else:true};t.arrayKeywords={items:true,allOf:true,anyOf:true,oneOf:true};t.propsKeywords={$defs:true,definitions:true,properties:true,patternProperties:true,dependencies:true};t.skipKeywords={default:true,enum:true,const:true,required:true,maximum:true,minimum:true,exclusiveMaximum:true,exclusiveMinimum:true,multipleOf:true,maxLength:true,minLength:true,pattern:true,format:true,maxItems:true,minItems:true,uniqueItems:true,maxProperties:true,minProperties:true};function r(e,n,o,a,i,c,u,d,l,f){if(a&&typeof a=="object"&&!Array.isArray(a)){n(a,i,c,u,d,l,f);for(var h in a){var p=a[h];if(Array.isArray(p)){if(h in t.arrayKeywords){for(var m=0;m{e.exports=JSON.parse('{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},72079:e=>{e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3293.375c6685d72662fc062f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3293.375c6685d72662fc062f.js deleted file mode 100644 index 78438d42a2fa1dc1c283824f8fa2433c6b78d53a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3293.375c6685d72662fc062f.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3293],{18300:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"apathy",author:"jannik siebert (https://github.com/janniks)",base00:"#031A16",base01:"#0B342D",base02:"#184E45",base03:"#2B685E",base04:"#5F9C92",base05:"#81B5AC",base06:"#A7CEC8",base07:"#D2E7E4",base08:"#3E9688",base09:"#3E7996",base0A:"#3E4C96",base0B:"#883E96",base0C:"#963E4C",base0D:"#96883E",base0E:"#4C963E",base0F:"#3E965B"};e.exports=a["default"]},23427:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"ashes",author:"jannik siebert (https://github.com/janniks)",base00:"#1C2023",base01:"#393F45",base02:"#565E65",base03:"#747C84",base04:"#ADB3BA",base05:"#C7CCD1",base06:"#DFE2E5",base07:"#F3F4F5",base08:"#C7AE95",base09:"#C7C795",base0A:"#AEC795",base0B:"#95C7AE",base0C:"#95AEC7",base0D:"#AE95C7",base0E:"#C795AE",base0F:"#C79595"};e.exports=a["default"]},74758:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"atelier dune",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)",base00:"#20201d",base01:"#292824",base02:"#6e6b5e",base03:"#7d7a68",base04:"#999580",base05:"#a6a28c",base06:"#e8e4cf",base07:"#fefbec",base08:"#d73737",base09:"#b65611",base0A:"#cfb017",base0B:"#60ac39",base0C:"#1fad83",base0D:"#6684e1",base0E:"#b854d4",base0F:"#d43552"};e.exports=a["default"]},62817:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"atelier forest",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest)",base00:"#1b1918",base01:"#2c2421",base02:"#68615e",base03:"#766e6b",base04:"#9c9491",base05:"#a8a19f",base06:"#e6e2e0",base07:"#f1efee",base08:"#f22c40",base09:"#df5320",base0A:"#d5911a",base0B:"#5ab738",base0C:"#00ad9c",base0D:"#407ee7",base0E:"#6666ea",base0F:"#c33ff3"};e.exports=a["default"]},97288:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"atelier heath",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath)",base00:"#1b181b",base01:"#292329",base02:"#695d69",base03:"#776977",base04:"#9e8f9e",base05:"#ab9bab",base06:"#d8cad8",base07:"#f7f3f7",base08:"#ca402b",base09:"#a65926",base0A:"#bb8a35",base0B:"#379a37",base0C:"#159393",base0D:"#516aec",base0E:"#7b59c0",base0F:"#cc33cc"};e.exports=a["default"]},54640:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"atelier lakeside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/)",base00:"#161b1d",base01:"#1f292e",base02:"#516d7b",base03:"#5a7b8c",base04:"#7195a8",base05:"#7ea2b4",base06:"#c1e4f6",base07:"#ebf8ff",base08:"#d22d72",base09:"#935c25",base0A:"#8a8a0f",base0B:"#568c3b",base0C:"#2d8f6f",base0D:"#257fad",base0E:"#5d5db1",base0F:"#b72dd2"};e.exports=a["default"]},94698:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"atelier seaside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/)",base00:"#131513",base01:"#242924",base02:"#5e6e5e",base03:"#687d68",base04:"#809980",base05:"#8ca68c",base06:"#cfe8cf",base07:"#f0fff0",base08:"#e6193c",base09:"#87711d",base0A:"#c3c322",base0B:"#29a329",base0C:"#1999b3",base0D:"#3d62f5",base0E:"#ad2bee",base0F:"#e619c3"};e.exports=a["default"]},37590:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"bespin",author:"jan t. sott",base00:"#28211c",base01:"#36312e",base02:"#5e5d5c",base03:"#666666",base04:"#797977",base05:"#8a8986",base06:"#9d9b97",base07:"#baae9e",base08:"#cf6a4c",base09:"#cf7d34",base0A:"#f9ee98",base0B:"#54be0d",base0C:"#afc4db",base0D:"#5ea6ea",base0E:"#9b859d",base0F:"#937121"};e.exports=a["default"]},6016:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"brewer",author:"timothée poisot (http://github.com/tpoisot)",base00:"#0c0d0e",base01:"#2e2f30",base02:"#515253",base03:"#737475",base04:"#959697",base05:"#b7b8b9",base06:"#dadbdc",base07:"#fcfdfe",base08:"#e31a1c",base09:"#e6550d",base0A:"#dca060",base0B:"#31a354",base0C:"#80b1d3",base0D:"#3182bd",base0E:"#756bb1",base0F:"#b15928"};e.exports=a["default"]},5299:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"bright",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#303030",base02:"#505050",base03:"#b0b0b0",base04:"#d0d0d0",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ffffff",base08:"#fb0120",base09:"#fc6d24",base0A:"#fda331",base0B:"#a1c659",base0C:"#76c7b7",base0D:"#6fb3d2",base0E:"#d381c3",base0F:"#be643c"};e.exports=a["default"]},66684:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"chalk",author:"chris kempson (http://chriskempson.com)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#f5f5f5",base08:"#fb9fb1",base09:"#eda987",base0A:"#ddb26f",base0B:"#acc267",base0C:"#12cfc0",base0D:"#6fc2ef",base0E:"#e1a3ee",base0F:"#deaf8f"};e.exports=a["default"]},84082:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"codeschool",author:"brettof86",base00:"#232c31",base01:"#1c3657",base02:"#2a343a",base03:"#3f4944",base04:"#84898c",base05:"#9ea7a6",base06:"#a7cfa3",base07:"#b5d8f6",base08:"#2a5491",base09:"#43820d",base0A:"#a03b1e",base0B:"#237986",base0C:"#b02f30",base0D:"#484d79",base0E:"#c59820",base0F:"#c98344"};e.exports=a["default"]},90811:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"colors",author:"mrmrs (http://clrs.cc)",base00:"#111111",base01:"#333333",base02:"#555555",base03:"#777777",base04:"#999999",base05:"#bbbbbb",base06:"#dddddd",base07:"#ffffff",base08:"#ff4136",base09:"#ff851b",base0A:"#ffdc00",base0B:"#2ecc40",base0C:"#7fdbff",base0D:"#0074d9",base0E:"#b10dc9",base0F:"#85144b"};e.exports=a["default"]},69926:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"default",author:"chris kempson (http://chriskempson.com)",base00:"#181818",base01:"#282828",base02:"#383838",base03:"#585858",base04:"#b8b8b8",base05:"#d8d8d8",base06:"#e8e8e8",base07:"#f8f8f8",base08:"#ab4642",base09:"#dc9656",base0A:"#f7ca88",base0B:"#a1b56c",base0C:"#86c1b9",base0D:"#7cafc2",base0E:"#ba8baf",base0F:"#a16946"};e.exports=a["default"]},11393:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"eighties",author:"chris kempson (http://chriskempson.com)",base00:"#2d2d2d",base01:"#393939",base02:"#515151",base03:"#747369",base04:"#a09f93",base05:"#d3d0c8",base06:"#e8e6df",base07:"#f2f0ec",base08:"#f2777a",base09:"#f99157",base0A:"#ffcc66",base0B:"#99cc99",base0C:"#66cccc",base0D:"#6699cc",base0E:"#cc99cc",base0F:"#d27b53"};e.exports=a["default"]},9359:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"embers",author:"jannik siebert (https://github.com/janniks)",base00:"#16130F",base01:"#2C2620",base02:"#433B32",base03:"#5A5047",base04:"#8A8075",base05:"#A39A90",base06:"#BEB6AE",base07:"#DBD6D1",base08:"#826D57",base09:"#828257",base0A:"#6D8257",base0B:"#57826D",base0C:"#576D82",base0D:"#6D5782",base0E:"#82576D",base0F:"#825757"};e.exports=a["default"]},18836:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"flat",author:"chris kempson (http://chriskempson.com)",base00:"#2C3E50",base01:"#34495E",base02:"#7F8C8D",base03:"#95A5A6",base04:"#BDC3C7",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ECF0F1",base08:"#E74C3C",base09:"#E67E22",base0A:"#F1C40F",base0B:"#2ECC71",base0C:"#1ABC9C",base0D:"#3498DB",base0E:"#9B59B6",base0F:"#be643c"};e.exports=a["default"]},98940:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"google",author:"seth wright (http://sethawright.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#CC342B",base09:"#F96A38",base0A:"#FBA922",base0B:"#198844",base0C:"#3971ED",base0D:"#3971ED",base0E:"#A36AC7",base0F:"#3971ED"};e.exports=a["default"]},50204:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"grayscale",author:"alexandre gavioli (https://github.com/alexx2/)",base00:"#101010",base01:"#252525",base02:"#464646",base03:"#525252",base04:"#ababab",base05:"#b9b9b9",base06:"#e3e3e3",base07:"#f7f7f7",base08:"#7c7c7c",base09:"#999999",base0A:"#a0a0a0",base0B:"#8e8e8e",base0C:"#868686",base0D:"#686868",base0E:"#747474",base0F:"#5e5e5e"};e.exports=a["default"]},11036:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"green screen",author:"chris kempson (http://chriskempson.com)",base00:"#001100",base01:"#003300",base02:"#005500",base03:"#007700",base04:"#009900",base05:"#00bb00",base06:"#00dd00",base07:"#00ff00",base08:"#007700",base09:"#009900",base0A:"#007700",base0B:"#00bb00",base0C:"#005500",base0D:"#009900",base0E:"#00bb00",base0F:"#005500"};e.exports=a["default"]},88068:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"harmonic16",author:"jannik siebert (https://github.com/janniks)",base00:"#0b1c2c",base01:"#223b54",base02:"#405c79",base03:"#627e99",base04:"#aabcce",base05:"#cbd6e2",base06:"#e5ebf1",base07:"#f7f9fb",base08:"#bf8b56",base09:"#bfbf56",base0A:"#8bbf56",base0B:"#56bf8b",base0C:"#568bbf",base0D:"#8b56bf",base0E:"#bf568b",base0F:"#bf5656"};e.exports=a["default"]},82782:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"hopscotch",author:"jan t. sott",base00:"#322931",base01:"#433b42",base02:"#5c545b",base03:"#797379",base04:"#989498",base05:"#b9b5b8",base06:"#d5d3d5",base07:"#ffffff",base08:"#dd464c",base09:"#fd8b19",base0A:"#fdcc59",base0B:"#8fc13e",base0C:"#149b93",base0D:"#1290bf",base0E:"#c85e7c",base0F:"#b33508"};e.exports=a["default"]},40579:(e,a,r)=>{"use strict";a.__esModule=true;function t(e){return e&&e.__esModule?e["default"]:e}var n=r(8323);a.threezerotwofour=t(n);var s=r(18300);a.apathy=t(s);var o=r(23427);a.ashes=t(o);var i=r(74758);a.atelierDune=t(i);var l=r(62817);a.atelierForest=t(l);var b=r(97288);a.atelierHeath=t(b);var u=r(54640);a.atelierLakeside=t(u);var c=r(94698);a.atelierSeaside=t(c);var f=r(37590);a.bespin=t(f);var h=r(6016);a.brewer=t(h);var d=r(5299);a.bright=t(d);var v=r(66684);a.chalk=t(v);var p=r(84082);a.codeschool=t(p);var g=r(90811);a.colors=t(g);var m=r(69926);a["default"]=t(m);var y=r(11393);a.eighties=t(y);var w=r(9359);a.embers=t(w);var k=r(18836);a.flat=t(k);var O=r(98940);a.google=t(O);var E=r(50204);a.grayscale=t(E);var M=r(11036);a.greenscreen=t(M);var C=r(88068);a.harmonic=t(C);var x=r(82782);a.hopscotch=t(x);var _=r(99464);a.isotope=t(_);var A=r(41769);a.marrakesh=t(A);var j=r(36961);a.mocha=t(j);var D=r(97789);a.monokai=t(D);var F=r(86761);a.ocean=t(F);var B=r(62332);a.paraiso=t(B);var S=r(97828);a.pop=t(S);var N=r(30872);a.railscasts=t(N);var R=r(30275);a.shapeshifter=t(R);var I=r(51028);a.solarized=t(I);var L=r(80474);a.summerfruit=t(L);var T=r(41244);a.tomorrow=t(T);var P=r(21765);a.tube=t(P);var z=r(70475);a.twilight=t(z)},99464:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"isotope",author:"jan t. sott",base00:"#000000",base01:"#404040",base02:"#606060",base03:"#808080",base04:"#c0c0c0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#ff0000",base09:"#ff9900",base0A:"#ff0099",base0B:"#33ff00",base0C:"#00ffff",base0D:"#0066ff",base0E:"#cc00ff",base0F:"#3300ff"};e.exports=a["default"]},41769:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"marrakesh",author:"alexandre gavioli (http://github.com/alexx2/)",base00:"#201602",base01:"#302e00",base02:"#5f5b17",base03:"#6c6823",base04:"#86813b",base05:"#948e48",base06:"#ccc37a",base07:"#faf0a5",base08:"#c35359",base09:"#b36144",base0A:"#a88339",base0B:"#18974e",base0C:"#75a738",base0D:"#477ca1",base0E:"#8868b3",base0F:"#b3588e"};e.exports=a["default"]},36961:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"mocha",author:"chris kempson (http://chriskempson.com)",base00:"#3B3228",base01:"#534636",base02:"#645240",base03:"#7e705a",base04:"#b8afad",base05:"#d0c8c6",base06:"#e9e1dd",base07:"#f5eeeb",base08:"#cb6077",base09:"#d28b71",base0A:"#f4bc87",base0B:"#beb55b",base0C:"#7bbda4",base0D:"#8ab3b5",base0E:"#a89bb9",base0F:"#bb9584"};e.exports=a["default"]},97789:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"monokai",author:"wimer hazenberg (http://www.monokai.nl)",base00:"#272822",base01:"#383830",base02:"#49483e",base03:"#75715e",base04:"#a59f85",base05:"#f8f8f2",base06:"#f5f4f1",base07:"#f9f8f5",base08:"#f92672",base09:"#fd971f",base0A:"#f4bf75",base0B:"#a6e22e",base0C:"#a1efe4",base0D:"#66d9ef",base0E:"#ae81ff",base0F:"#cc6633"};e.exports=a["default"]},86761:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"ocean",author:"chris kempson (http://chriskempson.com)",base00:"#2b303b",base01:"#343d46",base02:"#4f5b66",base03:"#65737e",base04:"#a7adba",base05:"#c0c5ce",base06:"#dfe1e8",base07:"#eff1f5",base08:"#bf616a",base09:"#d08770",base0A:"#ebcb8b",base0B:"#a3be8c",base0C:"#96b5b4",base0D:"#8fa1b3",base0E:"#b48ead",base0F:"#ab7967"};e.exports=a["default"]},62332:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"paraiso",author:"jan t. sott",base00:"#2f1e2e",base01:"#41323f",base02:"#4f424c",base03:"#776e71",base04:"#8d8687",base05:"#a39e9b",base06:"#b9b6b0",base07:"#e7e9db",base08:"#ef6155",base09:"#f99b15",base0A:"#fec418",base0B:"#48b685",base0C:"#5bc4bf",base0D:"#06b6ef",base0E:"#815ba4",base0F:"#e96ba8"};e.exports=a["default"]},97828:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"pop",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#eb008a",base09:"#f29333",base0A:"#f8ca12",base0B:"#37b349",base0C:"#00aabb",base0D:"#0e5a94",base0E:"#b31e8d",base0F:"#7a2d00"};e.exports=a["default"]},30872:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"railscasts",author:"ryan bates (http://railscasts.com)",base00:"#2b2b2b",base01:"#272935",base02:"#3a4055",base03:"#5a647e",base04:"#d4cfc9",base05:"#e6e1dc",base06:"#f4f1ed",base07:"#f9f7f3",base08:"#da4939",base09:"#cc7833",base0A:"#ffc66d",base0B:"#a5c261",base0C:"#519f50",base0D:"#6d9cbe",base0E:"#b6b3eb",base0F:"#bc9458"};e.exports=a["default"]},30275:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"shapeshifter",author:"tyler benziger (http://tybenz.com)",base00:"#000000",base01:"#040404",base02:"#102015",base03:"#343434",base04:"#555555",base05:"#ababab",base06:"#e0e0e0",base07:"#f9f9f9",base08:"#e92f2f",base09:"#e09448",base0A:"#dddd13",base0B:"#0ed839",base0C:"#23edda",base0D:"#3b48e3",base0E:"#f996e2",base0F:"#69542d"};e.exports=a["default"]},51028:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"solarized",author:"ethan schoonover (http://ethanschoonover.com/solarized)",base00:"#002b36",base01:"#073642",base02:"#586e75",base03:"#657b83",base04:"#839496",base05:"#93a1a1",base06:"#eee8d5",base07:"#fdf6e3",base08:"#dc322f",base09:"#cb4b16",base0A:"#b58900",base0B:"#859900",base0C:"#2aa198",base0D:"#268bd2",base0E:"#6c71c4",base0F:"#d33682"};e.exports=a["default"]},80474:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"summerfruit",author:"christopher corley (http://cscorley.github.io/)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#B0B0B0",base05:"#D0D0D0",base06:"#E0E0E0",base07:"#FFFFFF",base08:"#FF0086",base09:"#FD8900",base0A:"#ABA800",base0B:"#00C918",base0C:"#1faaaa",base0D:"#3777E6",base0E:"#AD00A1",base0F:"#cc6633"};e.exports=a["default"]},8323:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"threezerotwofour",author:"jan t. sott (http://github.com/idleberg)",base00:"#090300",base01:"#3a3432",base02:"#4a4543",base03:"#5c5855",base04:"#807d7c",base05:"#a5a2a2",base06:"#d6d5d4",base07:"#f7f7f7",base08:"#db2d20",base09:"#e8bbd0",base0A:"#fded02",base0B:"#01a252",base0C:"#b5e4f4",base0D:"#01a0e4",base0E:"#a16a94",base0F:"#cdab53"};e.exports=a["default"]},41244:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"tomorrow",author:"chris kempson (http://chriskempson.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#cc6666",base09:"#de935f",base0A:"#f0c674",base0B:"#b5bd68",base0C:"#8abeb7",base0D:"#81a2be",base0E:"#b294bb",base0F:"#a3685a"};e.exports=a["default"]},21765:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"london tube",author:"jan t. sott",base00:"#231f20",base01:"#1c3f95",base02:"#5a5758",base03:"#737171",base04:"#959ca1",base05:"#d9d8d8",base06:"#e7e7e8",base07:"#ffffff",base08:"#ee2e24",base09:"#f386a1",base0A:"#ffd204",base0B:"#00853e",base0C:"#85cebc",base0D:"#009ddc",base0E:"#98005d",base0F:"#b06110"};e.exports=a["default"]},70475:(e,a)=>{"use strict";a.__esModule=true;a["default"]={scheme:"twilight",author:"david hart (http://hart-dev.com)",base00:"#1e1e1e",base01:"#323537",base02:"#464b50",base03:"#5f5a60",base04:"#838184",base05:"#a7a7a7",base06:"#c3c3c3",base07:"#ffffff",base08:"#cf6a4c",base09:"#cda869",base0A:"#f9ee98",base0B:"#8f9d6a",base0C:"#afc4db",base0D:"#7587a6",base0E:"#9b859d",base0F:"#9b703f"};e.exports=a["default"]},15659:(e,a,r)=>{var t=r(51031);var n={};for(var s in t){if(t.hasOwnProperty(s)){n[t[s]]=s}}var o=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var i in o){if(o.hasOwnProperty(i)){if(!("channels"in o[i])){throw new Error("missing channels property: "+i)}if(!("labels"in o[i])){throw new Error("missing channel labels property: "+i)}if(o[i].labels.length!==o[i].channels){throw new Error("channel and label counts mismatch: "+i)}var l=o[i].channels;var b=o[i].labels;delete o[i].channels;delete o[i].labels;Object.defineProperty(o[i],"channels",{value:l});Object.defineProperty(o[i],"labels",{value:b})}}o.rgb.hsl=function(e){var a=e[0]/255;var r=e[1]/255;var t=e[2]/255;var n=Math.min(a,r,t);var s=Math.max(a,r,t);var o=s-n;var i;var l;var b;if(s===n){i=0}else if(a===s){i=(r-t)/o}else if(r===s){i=2+(t-a)/o}else if(t===s){i=4+(a-r)/o}i=Math.min(i*60,360);if(i<0){i+=360}b=(n+s)/2;if(s===n){l=0}else if(b<=.5){l=o/(s+n)}else{l=o/(2-s-n)}return[i,l*100,b*100]};o.rgb.hsv=function(e){var a;var r;var t;var n;var s;var o=e[0]/255;var i=e[1]/255;var l=e[2]/255;var b=Math.max(o,i,l);var u=b-Math.min(o,i,l);var c=function(e){return(b-e)/6/u+1/2};if(u===0){n=s=0}else{s=u/b;a=c(o);r=c(i);t=c(l);if(o===b){n=t-r}else if(i===b){n=1/3+a-t}else if(l===b){n=2/3+r-a}if(n<0){n+=1}else if(n>1){n-=1}}return[n*360,s*100,b*100]};o.rgb.hwb=function(e){var a=e[0];var r=e[1];var t=e[2];var n=o.rgb.hsl(e)[0];var s=1/255*Math.min(a,Math.min(r,t));t=1-1/255*Math.max(a,Math.max(r,t));return[n,s*100,t*100]};o.rgb.cmyk=function(e){var a=e[0]/255;var r=e[1]/255;var t=e[2]/255;var n;var s;var o;var i;i=Math.min(1-a,1-r,1-t);n=(1-a-i)/(1-i)||0;s=(1-r-i)/(1-i)||0;o=(1-t-i)/(1-i)||0;return[n*100,s*100,o*100,i*100]};function u(e,a){return Math.pow(e[0]-a[0],2)+Math.pow(e[1]-a[1],2)+Math.pow(e[2]-a[2],2)}o.rgb.keyword=function(e){var a=n[e];if(a){return a}var r=Infinity;var s;for(var o in t){if(t.hasOwnProperty(o)){var i=t[o];var l=u(e,i);if(l.04045?Math.pow((a+.055)/1.055,2.4):a/12.92;r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92;t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92;var n=a*.4124+r*.3576+t*.1805;var s=a*.2126+r*.7152+t*.0722;var o=a*.0193+r*.1192+t*.9505;return[n*100,s*100,o*100]};o.rgb.lab=function(e){var a=o.rgb.xyz(e);var r=a[0];var t=a[1];var n=a[2];var s;var i;var l;r/=95.047;t/=100;n/=108.883;r=r>.008856?Math.pow(r,1/3):7.787*r+16/116;t=t>.008856?Math.pow(t,1/3):7.787*t+16/116;n=n>.008856?Math.pow(n,1/3):7.787*n+16/116;s=116*t-16;i=500*(r-t);l=200*(t-n);return[s,i,l]};o.hsl.rgb=function(e){var a=e[0]/360;var r=e[1]/100;var t=e[2]/100;var n;var s;var o;var i;var l;if(r===0){l=t*255;return[l,l,l]}if(t<.5){s=t*(1+r)}else{s=t+r-t*r}n=2*t-s;i=[0,0,0];for(var b=0;b<3;b++){o=a+1/3*-(b-1);if(o<0){o++}if(o>1){o--}if(6*o<1){l=n+(s-n)*6*o}else if(2*o<1){l=s}else if(3*o<2){l=n+(s-n)*(2/3-o)*6}else{l=n}i[b]=l*255}return i};o.hsl.hsv=function(e){var a=e[0];var r=e[1]/100;var t=e[2]/100;var n=r;var s=Math.max(t,.01);var o;var i;t*=2;r*=t<=1?t:2-t;n*=s<=1?s:2-s;i=(t+r)/2;o=t===0?2*n/(s+n):2*r/(t+r);return[a,o*100,i*100]};o.hsv.rgb=function(e){var a=e[0]/60;var r=e[1]/100;var t=e[2]/100;var n=Math.floor(a)%6;var s=a-Math.floor(a);var o=255*t*(1-r);var i=255*t*(1-r*s);var l=255*t*(1-r*(1-s));t*=255;switch(n){case 0:return[t,l,o];case 1:return[i,t,o];case 2:return[o,t,l];case 3:return[o,i,t];case 4:return[l,o,t];case 5:return[t,o,i]}};o.hsv.hsl=function(e){var a=e[0];var r=e[1]/100;var t=e[2]/100;var n=Math.max(t,.01);var s;var o;var i;i=(2-r)*t;s=(2-r)*n;o=r*n;o/=s<=1?s:2-s;o=o||0;i/=2;return[a,o*100,i*100]};o.hwb.rgb=function(e){var a=e[0]/360;var r=e[1]/100;var t=e[2]/100;var n=r+t;var s;var o;var i;var l;if(n>1){r/=n;t/=n}s=Math.floor(6*a);o=1-t;i=6*a-s;if((s&1)!==0){i=1-i}l=r+i*(o-r);var b;var u;var c;switch(s){default:case 6:case 0:b=o;u=l;c=r;break;case 1:b=l;u=o;c=r;break;case 2:b=r;u=o;c=l;break;case 3:b=r;u=l;c=o;break;case 4:b=l;u=r;c=o;break;case 5:b=o;u=r;c=l;break}return[b*255,u*255,c*255]};o.cmyk.rgb=function(e){var a=e[0]/100;var r=e[1]/100;var t=e[2]/100;var n=e[3]/100;var s;var o;var i;s=1-Math.min(1,a*(1-n)+n);o=1-Math.min(1,r*(1-n)+n);i=1-Math.min(1,t*(1-n)+n);return[s*255,o*255,i*255]};o.xyz.rgb=function(e){var a=e[0]/100;var r=e[1]/100;var t=e[2]/100;var n;var s;var o;n=a*3.2406+r*-1.5372+t*-.4986;s=a*-.9689+r*1.8758+t*.0415;o=a*.0557+r*-.204+t*1.057;n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*12.92;s=s>.0031308?1.055*Math.pow(s,1/2.4)-.055:s*12.92;o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*12.92;n=Math.min(Math.max(0,n),1);s=Math.min(Math.max(0,s),1);o=Math.min(Math.max(0,o),1);return[n*255,s*255,o*255]};o.xyz.lab=function(e){var a=e[0];var r=e[1];var t=e[2];var n;var s;var o;a/=95.047;r/=100;t/=108.883;a=a>.008856?Math.pow(a,1/3):7.787*a+16/116;r=r>.008856?Math.pow(r,1/3):7.787*r+16/116;t=t>.008856?Math.pow(t,1/3):7.787*t+16/116;n=116*r-16;s=500*(a-r);o=200*(r-t);return[n,s,o]};o.lab.xyz=function(e){var a=e[0];var r=e[1];var t=e[2];var n;var s;var o;s=(a+16)/116;n=r/500+s;o=s-t/200;var i=Math.pow(s,3);var l=Math.pow(n,3);var b=Math.pow(o,3);s=i>.008856?i:(s-16/116)/7.787;n=l>.008856?l:(n-16/116)/7.787;o=b>.008856?b:(o-16/116)/7.787;n*=95.047;s*=100;o*=108.883;return[n,s,o]};o.lab.lch=function(e){var a=e[0];var r=e[1];var t=e[2];var n;var s;var o;n=Math.atan2(t,r);s=n*360/2/Math.PI;if(s<0){s+=360}o=Math.sqrt(r*r+t*t);return[a,o,s]};o.lch.lab=function(e){var a=e[0];var r=e[1];var t=e[2];var n;var s;var o;o=t/360*2*Math.PI;n=r*Math.cos(o);s=r*Math.sin(o);return[a,n,s]};o.rgb.ansi16=function(e){var a=e[0];var r=e[1];var t=e[2];var n=1 in arguments?arguments[1]:o.rgb.hsv(e)[2];n=Math.round(n/50);if(n===0){return 30}var s=30+(Math.round(t/255)<<2|Math.round(r/255)<<1|Math.round(a/255));if(n===2){s+=60}return s};o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])};o.rgb.ansi256=function(e){var a=e[0];var r=e[1];var t=e[2];if(a===r&&r===t){if(a<8){return 16}if(a>248){return 231}return Math.round((a-8)/247*24)+232}var n=16+36*Math.round(a/255*5)+6*Math.round(r/255*5)+Math.round(t/255*5);return n};o.ansi16.rgb=function(e){var a=e%10;if(a===0||a===7){if(e>50){a+=3.5}a=a/10.5*255;return[a,a,a]}var r=(~~(e>50)+1)*.5;var t=(a&1)*r*255;var n=(a>>1&1)*r*255;var s=(a>>2&1)*r*255;return[t,n,s]};o.ansi256.rgb=function(e){if(e>=232){var a=(e-232)*10+8;return[a,a,a]}e-=16;var r;var t=Math.floor(e/36)/5*255;var n=Math.floor((r=e%36)/6)/5*255;var s=r%6/5*255;return[t,n,s]};o.rgb.hex=function(e){var a=((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255);var r=a.toString(16).toUpperCase();return"000000".substring(r.length)+r};o.hex.rgb=function(e){var a=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!a){return[0,0,0]}var r=a[0];if(a[0].length===3){r=r.split("").map((function(e){return e+e})).join("")}var t=parseInt(r,16);var n=t>>16&255;var s=t>>8&255;var o=t&255;return[n,s,o]};o.rgb.hcg=function(e){var a=e[0]/255;var r=e[1]/255;var t=e[2]/255;var n=Math.max(Math.max(a,r),t);var s=Math.min(Math.min(a,r),t);var o=n-s;var i;var l;if(o<1){i=s/(1-o)}else{i=0}if(o<=0){l=0}else if(n===a){l=(r-t)/o%6}else if(n===r){l=2+(t-a)/o}else{l=4+(a-r)/o+4}l/=6;l%=1;return[l*360,o*100,i*100]};o.hsl.hcg=function(e){var a=e[1]/100;var r=e[2]/100;var t=1;var n=0;if(r<.5){t=2*a*r}else{t=2*a*(1-r)}if(t<1){n=(r-.5*t)/(1-t)}return[e[0],t*100,n*100]};o.hsv.hcg=function(e){var a=e[1]/100;var r=e[2]/100;var t=a*r;var n=0;if(t<1){n=(r-t)/(1-t)}return[e[0],t*100,n*100]};o.hcg.rgb=function(e){var a=e[0]/360;var r=e[1]/100;var t=e[2]/100;if(r===0){return[t*255,t*255,t*255]}var n=[0,0,0];var s=a%1*6;var o=s%1;var i=1-o;var l=0;switch(Math.floor(s)){case 0:n[0]=1;n[1]=o;n[2]=0;break;case 1:n[0]=i;n[1]=1;n[2]=0;break;case 2:n[0]=0;n[1]=1;n[2]=o;break;case 3:n[0]=0;n[1]=i;n[2]=1;break;case 4:n[0]=o;n[1]=0;n[2]=1;break;default:n[0]=1;n[1]=0;n[2]=i}l=(1-r)*t;return[(r*n[0]+l)*255,(r*n[1]+l)*255,(r*n[2]+l)*255]};o.hcg.hsv=function(e){var a=e[1]/100;var r=e[2]/100;var t=a+r*(1-a);var n=0;if(t>0){n=a/t}return[e[0],n*100,t*100]};o.hcg.hsl=function(e){var a=e[1]/100;var r=e[2]/100;var t=r*(1-a)+.5*a;var n=0;if(t>0&&t<.5){n=a/(2*t)}else if(t>=.5&&t<1){n=a/(2*(1-t))}return[e[0],n*100,t*100]};o.hcg.hwb=function(e){var a=e[1]/100;var r=e[2]/100;var t=a+r*(1-a);return[e[0],(t-a)*100,(1-t)*100]};o.hwb.hcg=function(e){var a=e[1]/100;var r=e[2]/100;var t=1-r;var n=t-a;var s=0;if(n<1){s=(t-n)/(1-n)}return[e[0],n*100,s*100]};o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};o.gray.hsl=o.gray.hsv=function(e){return[0,0,e[0]]};o.gray.hwb=function(e){return[0,100,e[0]]};o.gray.cmyk=function(e){return[0,0,0,e[0]]};o.gray.lab=function(e){return[e[0],0,0]};o.gray.hex=function(e){var a=Math.round(e[0]/100*255)&255;var r=(a<<16)+(a<<8)+a;var t=r.toString(16).toUpperCase();return"000000".substring(t.length)+t};o.rgb.gray=function(e){var a=(e[0]+e[1]+e[2])/3;return[a/255*100]}},10734:(e,a,r)=>{var t=r(15659);var n=r(8507);var s={};var o=Object.keys(t);function i(e){var a=function(a){if(a===undefined||a===null){return a}if(arguments.length>1){a=Array.prototype.slice.call(arguments)}return e(a)};if("conversion"in e){a.conversion=e.conversion}return a}function l(e){var a=function(a){if(a===undefined||a===null){return a}if(arguments.length>1){a=Array.prototype.slice.call(arguments)}var r=e(a);if(typeof r==="object"){for(var t=r.length,n=0;n{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},8507:(e,a,r)=>{var t=r(15659);function n(){var e={};var a=Object.keys(t);for(var r=a.length,n=0;n{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},28854:(e,a,r)=>{var t=r(8156);var n=r(19872);var s=Object.hasOwnProperty;var o=Object.create(null);for(var i in t){if(s.call(t,i)){o[t[i]]=i}}var l=e.exports={to:{},get:{}};l.get=function(e){var a=e.substring(0,3).toLowerCase();var r;var t;switch(a){case"hsl":r=l.get.hsl(e);t="hsl";break;case"hwb":r=l.get.hwb(e);t="hwb";break;default:r=l.get.rgb(e);t="rgb";break}if(!r){return null}return{model:t,value:r}};l.get.rgb=function(e){if(!e){return null}var a=/^#([a-f0-9]{3,4})$/i;var r=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i;var n=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;var o=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;var i=/^(\w+)$/;var l=[0,0,0,1];var u;var c;var f;if(u=e.match(r)){f=u[2];u=u[1];for(c=0;c<3;c++){var h=c*2;l[c]=parseInt(u.slice(h,h+2),16)}if(f){l[3]=parseInt(f,16)/255}}else if(u=e.match(a)){u=u[1];f=u[3];for(c=0;c<3;c++){l[c]=parseInt(u[c]+u[c],16)}if(f){l[3]=parseInt(f+f,16)/255}}else if(u=e.match(n)){for(c=0;c<3;c++){l[c]=parseInt(u[c+1],0)}if(u[4]){if(u[5]){l[3]=parseFloat(u[4])*.01}else{l[3]=parseFloat(u[4])}}}else if(u=e.match(o)){for(c=0;c<3;c++){l[c]=Math.round(parseFloat(u[c+1])*2.55)}if(u[4]){if(u[5]){l[3]=parseFloat(u[4])*.01}else{l[3]=parseFloat(u[4])}}}else if(u=e.match(i)){if(u[1]==="transparent"){return[0,0,0,0]}if(!s.call(t,u[1])){return null}l=t[u[1]];l[3]=1;return l}else{return null}for(c=0;c<3;c++){l[c]=b(l[c],0,255)}l[3]=b(l[3],0,1);return l};l.get.hsl=function(e){if(!e){return null}var a=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;var r=e.match(a);if(r){var t=parseFloat(r[4]);var n=(parseFloat(r[1])%360+360)%360;var s=b(parseFloat(r[2]),0,100);var o=b(parseFloat(r[3]),0,100);var i=b(isNaN(t)?1:t,0,1);return[n,s,o,i]}return null};l.get.hwb=function(e){if(!e){return null}var a=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/;var r=e.match(a);if(r){var t=parseFloat(r[4]);var n=(parseFloat(r[1])%360+360)%360;var s=b(parseFloat(r[2]),0,100);var o=b(parseFloat(r[3]),0,100);var i=b(isNaN(t)?1:t,0,1);return[n,s,o,i]}return null};l.to.hex=function(){var e=n(arguments);return"#"+u(e[0])+u(e[1])+u(e[2])+(e[3]<1?u(Math.round(e[3]*255)):"")};l.to.rgb=function(){var e=n(arguments);return e.length<4||e[3]===1?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"};l.to.rgb.percent=function(){var e=n(arguments);var a=Math.round(e[0]/255*100);var r=Math.round(e[1]/255*100);var t=Math.round(e[2]/255*100);return e.length<4||e[3]===1?"rgb("+a+"%, "+r+"%, "+t+"%)":"rgba("+a+"%, "+r+"%, "+t+"%, "+e[3]+")"};l.to.hsl=function(){var e=n(arguments);return e.length<4||e[3]===1?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"};l.to.hwb=function(){var e=n(arguments);var a="";if(e.length>=4&&e[3]!==1){a=", "+e[3]}return"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+a+")"};l.to.keyword=function(e){return o[e.slice(0,3)]};function b(e,a,r){return Math.min(Math.max(a,e),r)}function u(e){var a=Math.round(e).toString(16).toUpperCase();return a.length<2?"0"+a:a}},2520:(e,a,r)=>{"use strict";var t=r(28854);var n=r(10734);var s=[].slice;var o=["keyword","gray","hex"];var i={};Object.keys(n).forEach((function(e){i[s.call(n[e].labels).sort().join("")]=e}));var l={};function b(e,a){if(!(this instanceof b)){return new b(e,a)}if(a&&a in o){a=null}if(a&&!(a in n)){throw new Error("Unknown model: "+a)}var r;var u;if(e==null){this.model="rgb";this.color=[0,0,0];this.valpha=1}else if(e instanceof b){this.model=e.model;this.color=e.color.slice();this.valpha=e.valpha}else if(typeof e==="string"){var c=t.get(e);if(c===null){throw new Error("Unable to parse color from string: "+e)}this.model=c.model;u=n[this.model].channels;this.color=c.value.slice(0,u);this.valpha=typeof c.value[u]==="number"?c.value[u]:1}else if(e.length){this.model=a||"rgb";u=n[this.model].channels;var f=s.call(e,0,u);this.color=v(f,u);this.valpha=typeof e[u]==="number"?e[u]:1}else if(typeof e==="number"){e&=16777215;this.model="rgb";this.color=[e>>16&255,e>>8&255,e&255];this.valpha=1}else{this.valpha=1;var h=Object.keys(e);if("alpha"in e){h.splice(h.indexOf("alpha"),1);this.valpha=typeof e.alpha==="number"?e.alpha:0}var d=h.sort().join("");if(!(d in i)){throw new Error("Unable to parse color from object: "+JSON.stringify(e))}this.model=i[d];var p=n[this.model].labels;var g=[];for(r=0;rr){return(a+.05)/(r+.05)}return(r+.05)/(a+.05)},level:function(e){var a=this.contrast(e);if(a>=7.1){return"AAA"}return a>=4.5?"AA":""},isDark:function(){var e=this.rgb().color;var a=(e[0]*299+e[1]*587+e[2]*114)/1e3;return a<128},isLight:function(){return!this.isDark()},negate:function(){var e=this.rgb();for(var a=0;a<3;a++){e.color[a]=255-e.color[a]}return e},lighten:function(e){var a=this.hsl();a.color[2]+=a.color[2]*e;return a},darken:function(e){var a=this.hsl();a.color[2]-=a.color[2]*e;return a},saturate:function(e){var a=this.hsl();a.color[1]+=a.color[1]*e;return a},desaturate:function(e){var a=this.hsl();a.color[1]-=a.color[1]*e;return a},whiten:function(e){var a=this.hwb();a.color[1]+=a.color[1]*e;return a},blacken:function(e){var a=this.hwb();a.color[2]+=a.color[2]*e;return a},grayscale:function(){var e=this.rgb().color;var a=e[0]*.3+e[1]*.59+e[2]*.11;return b.rgb(a,a,a)},fade:function(e){return this.alpha(this.valpha-this.valpha*e)},opaquer:function(e){return this.alpha(this.valpha+this.valpha*e)},rotate:function(e){var a=this.hsl();var r=a.color[0];r=(r+e)%360;r=r<0?360+r:r;a.color[0]=r;return a},mix:function(e,a){if(!e||!e.rgb){throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e)}var r=e.rgb();var t=this.rgb();var n=a===undefined?.5:a;var s=2*n-1;var o=r.alpha()-t.alpha();var i=((s*o===-1?s:(s+o)/(1+s*o))+1)/2;var l=1-i;return b.rgb(i*r.red()+l*t.red(),i*r.green()+l*t.green(),i*r.blue()+l*t.blue(),r.alpha()*n+t.alpha()*(1-n))}};Object.keys(n).forEach((function(e){if(o.indexOf(e)!==-1){return}var a=n[e].channels;b.prototype[e]=function(){if(this.model===e){return new b(this)}if(arguments.length){return new b(arguments,e)}var r=typeof arguments[a]==="number"?a:this.valpha;return new b(d(n[this.model][e].raw(this.color)).concat(r),e)};b[e]=function(r){if(typeof r==="number"){r=v(s.call(arguments),a)}return new b(r,e)}}));function u(e,a){return Number(e.toFixed(a))}function c(e){return function(a){return u(a,e)}}function f(e,a,r){e=Array.isArray(e)?e:[e];e.forEach((function(e){(l[e]||(l[e]=[]))[a]=r}));e=e[0];return function(t){var n;if(arguments.length){if(r){t=r(t)}n=this[e]();n.color[a]=t;return n}n=this[e]().color[a];if(r){n=r(n)}return n}}function h(e){return function(a){return Math.max(0,Math.min(e,a))}}function d(e){return Array.isArray(e)?e:[e]}function v(e,a){for(var r=0;r{e.exports=function e(a){if(!a||typeof a==="string"){return false}return a instanceof Array||Array.isArray(a)||a.length>=0&&(a.splice instanceof Function||Object.getOwnPropertyDescriptor(a,a.length-1)&&a.constructor.name!=="String")}},60357:(e,a,r)=>{var t="Expected a function";var n="__lodash_placeholder__";var s=1,o=2,i=4,l=8,b=16,u=32,c=64,f=128,h=256,d=512;var v=1/0,p=9007199254740991,g=17976931348623157e292,m=0/0;var y=[["ary",f],["bind",s],["bindKey",o],["curry",l],["curryRight",b],["flip",d],["partial",u],["partialRight",c],["rearg",h]];var w="[object Function]",k="[object GeneratorFunction]",O="[object Symbol]";var E=/[\\^$.*+?()[\]{}|]/g;var M=/^\s+|\s+$/g;var C=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,x=/\{\n\/\* \[wrapped with (.+)\] \*/,_=/,? & /;var A=/^[-+]0x[0-9a-f]+$/i;var j=/^0b[01]+$/i;var D=/^\[object .+?Constructor\]$/;var F=/^0o[0-7]+$/i;var B=/^(?:0|[1-9]\d*)$/;var S=parseInt;var N=typeof r.g=="object"&&r.g&&r.g.Object===Object&&r.g;var R=typeof self=="object"&&self&&self.Object===Object&&self;var I=N||R||Function("return this")();function L(e,a,r){switch(r.length){case 0:return e.call(a);case 1:return e.call(a,r[0]);case 2:return e.call(a,r[0],r[1]);case 3:return e.call(a,r[0],r[1],r[2])}return e.apply(a,r)}function T(e,a){var r=-1,t=e?e.length:0;while(++r-1}function z(e,a,r,t){var n=e.length,s=r+(t?1:-1);while(t?s--:++s2?e:undefined}();function se(e){return je(e)?ae(e):{}}function oe(e){if(!je(e)||Oe(e)){return false}var a=Ae(e)||W(e)?ee:D;return a.test(Ce(e))}function ie(e,a,r,t){var n=-1,s=e.length,o=r.length,i=-1,l=a.length,b=re(s-o,0),u=Array(l+b),c=!t;while(++i1){o.reverse()}if(p&&h1?"& ":"")+a[t];a=a.join(r>2?", ":" ");return e.replace(C,"{\n/* [wrapped with "+a+"] */\n")}function ke(e,a){a=a==null?p:a;return!!a&&(typeof e=="number"||B.test(e))&&(e>-1&&e%1==0&&e{"use strict";r.r(a);r.d(a,{JSONTree:()=>de});var t=r(44914);var n=r.n(t);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var a=1;a3&&arguments[3]!==undefined?arguments[3]:0;let n=arguments.length>4&&arguments[4]!==undefined?arguments[4]:Infinity;let s;if(e==="Object"){let e=Object.getOwnPropertyNames(a);if(r){e.sort(r===true?undefined:r)}e=e.slice(t,n+1);s={entries:e.map((e=>({key:e,value:a[e]})))}}else if(e==="Array"){s={entries:a.slice(t,n+1).map(((e,a)=>({key:a+t,value:e})))}}else{let e=0;const r=[];let o=true;const i=b(a);for(const s of a){if(e>n){o=false;break}if(t<=e){if(i&&Array.isArray(s)){if(typeof s[0]==="string"||typeof s[0]==="number"){r.push({key:s[0],value:s[1]})}else{r.push({key:`[entry ${e}]`,value:{"[key]":s[0],"[value]":s[1]}})}}else{r.push({key:e,value:s})}}e++}s={hasMore:!o,entries:r}}return s}function c(e,a,r){const t=[];while(a-e>r*r){r=r*r}for(let n=e;n<=a;n+=r){t.push({from:n,to:Math.min(a,n+r-1)})}return t}function f(e,a,r,t){let n=arguments.length>4&&arguments[4]!==undefined?arguments[4]:0;let s=arguments.length>5&&arguments[5]!==undefined?arguments[5]:Infinity;const o=u.bind(null,e,a,r);if(!t){return o().entries}const i=s{c(!u)}),[u]);return u?n().createElement("div",a("itemRange",u),l(e,r,o)):n().createElement("div",s({},a("itemRange",u),{onClick:f}),n().createElement(i,{nodeType:b,styling:a,expanded:false,onClick:f,arrowStyle:"double"}),`${r} ... ${o}`)}function d(e){return e.to!==undefined}function v(e,a,r){const{nodeType:t,data:o,collectionLimit:i,circularCache:l,keyPath:b,postprocessValue:u,sortObjectKeys:c}=e;const p=[];f(t,o,c,i,a,r).forEach((a=>{if(d(a)){p.push(n().createElement(h,s({},e,{key:`ItemRange--${a.from}-${a.to}`,from:a.from,to:a.to,renderChildNodes:v})))}else{const{key:r,value:t}=a;const o=l.indexOf(t)!==-1;p.push(n().createElement(M,s({},e,{postprocessValue:u,collectionLimit:i,key:`Node--${r}`,keyPath:[r,...b],value:u(t),circularCache:[...l,t],isCircular:o,hideRoot:false})))}}));return p}function p(e){const{circularCache:a=[],collectionLimit:r,createItemString:o,data:l,expandable:b,getItemString:u,hideRoot:c,isCircular:f,keyPath:h,labelRenderer:d,level:p=0,nodeType:g,nodeTypeIndicator:m,shouldExpandNodeInitially:y,styling:w}=e;const[k,O]=(0,t.useState)(f?false:y(h,l,p));const E=(0,t.useCallback)((()=>{if(b)O(!k)}),[b,k]);const M=k||c&&p===0?v({...e,circularCache:a,level:p+1}):null;const C=n().createElement("span",w("nestedNodeItemType",k),m);const x=u(g,l,C,o(l,r),h);const _=[h,g,k,b];return c?n().createElement("li",w("rootNode",..._),n().createElement("ul",w("rootNodeChildren",..._),M)):n().createElement("li",w("nestedNode",..._),b&&n().createElement(i,{styling:w,nodeType:g,expanded:k,onClick:E}),n().createElement("label",s({},w(["label","nestedNodeLabel"],..._),{onClick:E}),d(..._)),n().createElement("span",s({},w("nestedNodeItemString",..._),{onClick:E}),x),n().createElement("ul",w("nestedNodeChildren",..._),M))}function g(e){const a=Object.getOwnPropertyNames(e).length;return`${a} ${a!==1?"keys":"key"}`}function m(e){let{data:a,...r}=e;return n().createElement(p,s({},r,{data:a,nodeType:"Object",nodeTypeIndicator:r.nodeType==="Error"?"Error()":"{}",createItemString:g,expandable:Object.getOwnPropertyNames(a).length>0}))}function y(e){return`${e.length} ${e.length!==1?"items":"item"}`}function w(e){let{data:a,...r}=e;return n().createElement(p,s({},r,{data:a,nodeType:"Array",nodeTypeIndicator:"[]",createItemString:y,expandable:a.length>0}))}function k(e,a){let r=0;let t=false;if(Number.isSafeInteger(e.size)){r=e.size}else{for(const n of e){if(a&&r+1>a){t=true;break}r+=1}}return`${t?">":""}${r} ${r!==1?"entries":"entry"}`}function O(e){return n().createElement(p,s({},e,{nodeType:"Iterable",nodeTypeIndicator:"()",createItemString:k,expandable:true}))}function E(e){let{nodeType:a,styling:r,labelRenderer:t,keyPath:s,valueRenderer:o,value:i,valueGetter:l=e=>e}=e;return n().createElement("li",r("value",a,s),n().createElement("label",r(["label","valueLabel"],a,s),t(s,a,false,false)),n().createElement("span",r("valueText",a,s),o(l(i),i,...s)))}function M(e){let{getItemString:a,keyPath:r,labelRenderer:t,styling:i,value:l,valueRenderer:b,isCustomNode:u,...c}=e;const f=u(l)?"Custom":o(l);const h={getItemString:a,key:r[0],keyPath:r,labelRenderer:t,nodeType:f,styling:i,value:l,valueRenderer:b};const d={...c,...h,data:l,isCustomNode:u};switch(f){case"Object":case"Error":case"WeakMap":case"WeakSet":return n().createElement(m,d);case"Array":return n().createElement(w,d);case"Iterable":case"Map":case"Set":return n().createElement(O,d);case"String":return n().createElement(E,s({},h,{valueGetter:e=>`"${e}"`}));case"Number":return n().createElement(E,h);case"Boolean":return n().createElement(E,s({},h,{valueGetter:e=>e?"true":"false"}));case"Date":return n().createElement(E,s({},h,{valueGetter:e=>e.toISOString()}));case"Null":return n().createElement(E,s({},h,{valueGetter:()=>"null"}));case"Undefined":return n().createElement(E,s({},h,{valueGetter:()=>"undefined"}));case"Function":case"Symbol":return n().createElement(E,s({},h,{valueGetter:e=>e.toString()}));case"Custom":return n().createElement(E,h);default:return n().createElement(E,s({},h,{valueGetter:()=>`<${f}>`}))}}function C(e){"@babel/helpers - typeof";return C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C(e)}function x(e,a){if("object"!=C(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,a||"default");if("object"!=C(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===a?String:Number)(e)}function _(e){var a=x(e,"string");return"symbol"==C(a)?a:a+""}function A(e,a,r){return(a=_(a))in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}function j(e){if(Array.isArray(e))return e}function D(e,a){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var t,n,s,o,i=[],l=!0,b=!1;try{if(s=(r=r.call(e)).next,0===a){if(Object(r)!==r)return;l=!1}else for(;!(l=(t=s.call(r)).done)&&(i.push(t.value),i.length!==a);l=!0);}catch(e){b=!0,n=e}finally{try{if(!l&&null!=r["return"]&&(o=r["return"](),Object(o)!==o))return}finally{if(b)throw n}}return i}}function F(e,a){(null==a||a>e.length)&&(a=e.length);for(var r=0,t=Array(a);r1?t-1:0),s=1;s1?t-1:0),s=1;s1?t-1:0),s=1;s1?t-1:0),s=1;s1?t-1:0),s=1;s2?t-2:0),s=2;s1&&arguments[1]!==undefined?arguments[1]:{};var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var t=a.defaultBase16,n=t===void 0?G:t,s=a.base16Themes,o=s===void 0?null:s;var i=ae(r,o);if(i){r=q(q({},i),r)}var l=W.reduce((function(e,a){return e[a]=r[a]||n[a],e}),{});var b=Object.keys(r).reduce((function(e,a){return W.indexOf(a)===-1?(e[a]=r[a],e):e}),{});var u=e(l);var c=X(b,u);for(var f=arguments.length,h=new Array(f>3?f-3:0),d=3;d({BACKGROUND_COLOR:e.base00,TEXT_COLOR:e.base07,STRING_COLOR:e.base0B,DATE_COLOR:e.base0B,NUMBER_COLOR:e.base09,BOOLEAN_COLOR:e.base09,NULL_COLOR:e.base08,UNDEFINED_COLOR:e.base08,FUNCTION_COLOR:e.base08,SYMBOL_COLOR:e.base08,LABEL_COLOR:e.base0D,ARROW_COLOR:e.base0D,ITEM_STRING_COLOR:e.base0B,ITEM_STRING_EXPANDED_COLOR:e.base03});const se=e=>({String:e.STRING_COLOR,Date:e.DATE_COLOR,Number:e.NUMBER_COLOR,Boolean:e.BOOLEAN_COLOR,Null:e.NULL_COLOR,Undefined:e.UNDEFINED_COLOR,Function:e.FUNCTION_COLOR,Symbol:e.SYMBOL_COLOR});const oe=e=>{const a=ne(e);return{tree:{border:0,padding:0,marginTop:"0.5em",marginBottom:"0.5em",marginLeft:"0.125em",marginRight:0,listStyle:"none",MozUserSelect:"none",WebkitUserSelect:"none",backgroundColor:a.BACKGROUND_COLOR},value:(e,a,r)=>{let{style:t}=e;return{style:{...t,paddingTop:"0.25em",paddingRight:0,marginLeft:"0.875em",WebkitUserSelect:"text",MozUserSelect:"text",wordWrap:"break-word",paddingLeft:r.length>1?"2.125em":"1.25em",textIndent:"-0.5em",wordBreak:"break-all"}}},label:{display:"inline-block",color:a.LABEL_COLOR},valueLabel:{margin:"0 0.5em 0 0"},valueText:(e,r)=>{let{style:t}=e;return{style:{...t,color:se(a)[r]}}},itemRange:(e,r)=>({style:{paddingTop:r?0:"0.25em",cursor:"pointer",color:a.LABEL_COLOR}}),arrow:(e,a,r)=>{let{style:t}=e;return{style:{...t,marginLeft:0,transition:"150ms",WebkitTransition:"150ms",MozTransition:"150ms",WebkitTransform:r?"rotateZ(90deg)":"rotateZ(0deg)",MozTransform:r?"rotateZ(90deg)":"rotateZ(0deg)",transform:r?"rotateZ(90deg)":"rotateZ(0deg)",transformOrigin:"45% 50%",WebkitTransformOrigin:"45% 50%",MozTransformOrigin:"45% 50%",position:"relative",lineHeight:"1.1em",fontSize:"0.75em"}}},arrowContainer:(e,a)=>{let{style:r}=e;return{style:{...r,display:"inline-block",paddingRight:"0.5em",paddingLeft:a==="double"?"1em":0,cursor:"pointer"}}},arrowSign:{color:a.ARROW_COLOR},arrowSignInner:{position:"absolute",top:0,left:"-0.4em"},nestedNode:(e,a,r,t,n)=>{let{style:s}=e;return{style:{...s,position:"relative",paddingTop:"0.25em",marginLeft:a.length>1?"0.875em":0,paddingLeft:!n?"1.125em":0}}},rootNode:{padding:0,margin:0},nestedNodeLabel:(e,a,r,t,n)=>{let{style:s}=e;return{style:{...s,margin:0,padding:0,WebkitUserSelect:n?"inherit":"text",MozUserSelect:n?"inherit":"text",cursor:n?"pointer":"default"}}},nestedNodeItemString:(e,r,t,n)=>{let{style:s}=e;return{style:{...s,paddingLeft:"0.5em",cursor:"default",color:n?a.ITEM_STRING_EXPANDED_COLOR:a.ITEM_STRING_COLOR}}},nestedNodeItemType:{marginLeft:"0.3em",marginRight:"0.3em"},nestedNodeChildren:(e,a,r)=>{let{style:t}=e;return{style:{...t,padding:0,margin:0,listStyle:"none",display:r?"block":"none"}}},rootNodeChildren:{padding:0,margin:0,listStyle:"none"}}};const ie=Q(oe,{defaultBase16:te});const le=ie;const be=e=>e;const ue=(e,a,r)=>r===0;const ce=(e,a,r,t)=>n().createElement("span",null,r," ",t);const fe=e=>{let[a]=e;return n().createElement("span",null,a,":")};const he=()=>false;function de(e){let{data:a,theme:r,invertTheme:s,keyPath:o=["root"],labelRenderer:i=fe,valueRenderer:l=be,shouldExpandNodeInitially:b=ue,hideRoot:u=false,getItemString:c=ce,postprocessValue:f=be,isCustomNode:h=he,collectionLimit:d=50,sortObjectKeys:v=false}=e;const p=(0,t.useMemo)((()=>le(s?re(r):r)),[r,s]);return n().createElement("ul",p("tree"),n().createElement(M,{keyPath:u?[]:o,value:f(a),isCustomNode:h,styling:p,labelRenderer:i,valueRenderer:l,shouldExpandNodeInitially:b,hideRoot:u,getItemString:c,postprocessValue:f,collectionLimit:d,sortObjectKeys:v}))}},19872:(e,a,r)=>{"use strict";var t=r(26195);var n=Array.prototype.concat;var s=Array.prototype.slice;var o=e.exports=function e(a){var r=[];for(var o=0,i=a.length;o{n.r(t);n.d(t,{protobuf:()=>p});function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var a=["package","message","import","syntax","required","optional","repeated","reserved","default","extensions","packed","bool","bytes","double","enum","float","string","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","option","service","rpc","returns"];var i=r(a);var u=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*");function o(e){if(e.eatSpace())return null;if(e.match("//")){e.skipToEnd();return"comment"}if(e.match(/^[0-9\.+-]/,false)){if(e.match(/^[+-]?0x[0-9a-fA-F]+/))return"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))return"number";if(e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))return"number"}if(e.match(/^"([^"]|(""))*"/)){return"string"}if(e.match(/^'([^']|(''))*'/)){return"string"}if(e.match(i)){return"keyword"}if(e.match(u)){return"variable"}e.next();return null}const p={name:"protobuf",token:o,languageData:{autocomplete:a}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3358.7ba73a6804155b619b44.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3358.7ba73a6804155b619b44.js deleted file mode 100644 index 5bfc502b566c0816c8c58f65c73c51427b9fea30..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3358.7ba73a6804155b619b44.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3358],{33358:(t,e,n)=>{n.d(e,{diagram:()=>pt});var i=n(75905);var r=n(24982);function s(t,e){let n;if(e===undefined){for(const e of t){if(e!=null&&(n>e||n===undefined&&e>=e)){n=e}}}else{let i=-1;for(let r of t){if((r=e(r,++i,t))!=null&&(n>r||n===undefined&&r>=r)){n=r}}}return n}function o(t){return t.target.depth}function a(t){return t.depth}function l(t,e){return e-1-t.height}function c(t,e){return t.sourceLinks.length?t.depth:e-1}function h(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?s(t.sourceLinks,o)-1:0}function u(t,e){let n=0;if(e===undefined){for(let e of t){if(e=+e){n+=e}}}else{let i=-1;for(let r of t){if(r=+e(r,++i,t)){n+=r}}}return n}function f(t,e){let n;if(e===undefined){for(const e of t){if(e!=null&&(n=e)){n=e}}}else{let i=-1;for(let r of t){if((r=e(r,++i,t))!=null&&(n=r)){n=r}}}return n}function y(t){return function(){return t}}function d(t,e){return g(t.source,e.source)||t.index-e.index}function p(t,e){return g(t.target,e.target)||t.index-e.index}function g(t,e){return t.y0-e.y0}function _(t){return t.value}function k(t){return t.index}function x(t){return t.nodes}function m(t){return t.links}function v(t,e){const n=t.get(e);if(!n)throw new Error("missing: "+e);return n}function b({nodes:t}){for(const e of t){let t=e.y0;let n=t;for(const i of e.sourceLinks){i.y0=t+i.width/2;t+=i.width}for(const i of e.targetLinks){i.y1=n+i.width/2;n+=i.width}}}function w(){let t=0,e=0,n=1,i=1;let r=24;let o=8,a;let l=k;let h=c;let w;let L;let S=x;let E=m;let K=6;function A(){const t={nodes:S.apply(null,arguments),links:E.apply(null,arguments)};M(t);I(t);T(t);C(t);P(t);b(t);return t}A.update=function(t){b(t);return t};A.nodeId=function(t){return arguments.length?(l=typeof t==="function"?t:y(t),A):l};A.nodeAlign=function(t){return arguments.length?(h=typeof t==="function"?t:y(t),A):h};A.nodeSort=function(t){return arguments.length?(w=t,A):w};A.nodeWidth=function(t){return arguments.length?(r=+t,A):r};A.nodePadding=function(t){return arguments.length?(o=a=+t,A):o};A.nodes=function(t){return arguments.length?(S=typeof t==="function"?t:y(t),A):S};A.links=function(t){return arguments.length?(E=typeof t==="function"?t:y(t),A):E};A.linkSort=function(t){return arguments.length?(L=t,A):L};A.size=function(r){return arguments.length?(t=e=0,n=+r[0],i=+r[1],A):[n-t,i-e]};A.extent=function(r){return arguments.length?(t=+r[0][0],n=+r[1][0],e=+r[0][1],i=+r[1][1],A):[[t,e],[n,i]]};A.iterations=function(t){return arguments.length?(K=+t,A):K};function M({nodes:t,links:e}){for(const[i,r]of t.entries()){r.index=i;r.sourceLinks=[];r.targetLinks=[]}const n=new Map(t.map(((e,n)=>[l(e,n,t),e])));for(const[i,r]of e.entries()){r.index=i;let{source:t,target:e}=r;if(typeof t!=="object")t=r.source=v(n,t);if(typeof e!=="object")e=r.target=v(n,e);t.sourceLinks.push(r);e.targetLinks.push(r)}if(L!=null){for(const{sourceLinks:e,targetLinks:n}of t){e.sort(L);n.sort(L)}}}function I({nodes:t}){for(const e of t){e.value=e.fixedValue===undefined?Math.max(u(e.sourceLinks,_),u(e.targetLinks,_)):e.fixedValue}}function T({nodes:t}){const e=t.length;let n=new Set(t);let i=new Set;let r=0;while(n.size){for(const t of n){t.depth=r;for(const{target:e}of t.sourceLinks){i.add(e)}}if(++r>e)throw new Error("circular link");n=i;i=new Set}}function C({nodes:t}){const e=t.length;let n=new Set(t);let i=new Set;let r=0;while(n.size){for(const t of n){t.height=r;for(const{source:e}of t.targetLinks){i.add(e)}}if(++r>e)throw new Error("circular link");n=i;i=new Set}}function D({nodes:e}){const i=f(e,(t=>t.depth))+1;const s=(n-t-r)/(i-1);const o=new Array(i);for(const n of e){const e=Math.max(0,Math.min(i-1,Math.floor(h.call(null,n,i))));n.layer=e;n.x0=t+e*s;n.x1=n.x0+r;if(o[e])o[e].push(n);else o[e]=[n]}if(w)for(const t of o){t.sort(w)}return o}function N(t){const n=s(t,(t=>(i-e-(t.length-1)*a)/u(t,_)));for(const r of t){let t=e;for(const e of r){e.y0=t;e.y1=t+e.value*n;t=e.y1+a;for(const t of e.sourceLinks){t.width=t.value*n}}t=(i-t+a)/(r.length+1);for(let e=0;et.length))-1));N(n);for(let e=0;e0))continue;let r=(n/i-t.y0)*e;t.y0+=r;t.y1+=r;F(t)}if(w===undefined)r.sort(g);j(r,n)}}function $(t,e,n){for(let i=t.length,r=i-2;r>=0;--r){const i=t[r];for(const t of i){let n=0;let i=0;for(const{target:e,value:s}of t.sourceLinks){let r=s*(e.layer-t.layer);n+=G(t,e)*r;i+=r}if(!(i>0))continue;let r=(n/i-t.y0)*e;t.y0+=r;t.y1+=r;F(t)}if(w===undefined)i.sort(g);j(i,n)}}function j(t,n){const r=t.length>>1;const s=t[r];U(t,s.y0-a,r-1,n);z(t,s.y1+a,r+1,n);U(t,i,t.length-1,n);z(t,e,0,n)}function z(t,e,n,i){for(;n1e-6)r.y0+=s,r.y1+=s;e=r.y1+a}}function U(t,e,n,i){for(;n>=0;--n){const r=t[n];const s=(r.y1-e)*i;if(s>1e-6)r.y0-=s,r.y1-=s;e=r.y0-a}}function F({sourceLinks:t,targetLinks:e}){if(L===undefined){for(const{source:{sourceLinks:t}}of e){t.sort(p)}for(const{target:{targetLinks:e}}of t){e.sort(d)}}}function R(t){if(L===undefined){for(const{sourceLinks:e,targetLinks:n}of t){e.sort(p);n.sort(d)}}}function W(t,e){let n=t.y0-(t.sourceLinks.length-1)*a/2;for(const{target:i,width:r}of t.sourceLinks){if(i===e)break;n+=r+a}for(const{source:i,width:r}of e.targetLinks){if(i===t)break;n-=r}return n}function G(t,e){let n=e.y0-(e.targetLinks.length-1)*a/2;for(const{source:i,width:r}of e.targetLinks){if(i===t)break;n+=r+a}for(const{target:i,width:r}of t.sourceLinks){if(i===e)break;n-=r}return n}return A}var L=Math.PI,S=2*L,E=1e-6,K=S-E;function A(){this._x0=this._y0=this._x1=this._y1=null;this._=""}function M(){return new A}A.prototype=M.prototype={constructor:A,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){if(this._x1!==null){this._x1=this._x0,this._y1=this._y0;this._+="Z"}},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,i){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(t,e,n,i,r,s){this._+="C"+ +t+","+ +e+","+ +n+","+ +i+","+(this._x1=+r)+","+(this._y1=+s)},arcTo:function(t,e,n,i,r){t=+t,e=+e,n=+n,i=+i,r=+r;var s=this._x1,o=this._y1,a=n-t,l=i-e,c=s-t,h=o-e,u=c*c+h*h;if(r<0)throw new Error("negative radius: "+r);if(this._x1===null){this._+="M"+(this._x1=t)+","+(this._y1=e)}else if(!(u>E));else if(!(Math.abs(h*a-l*c)>E)||!r){this._+="L"+(this._x1=t)+","+(this._y1=e)}else{var f=n-s,y=i-o,d=a*a+l*l,p=f*f+y*y,g=Math.sqrt(d),_=Math.sqrt(u),k=r*Math.tan((L-Math.acos((d+u-p)/(2*g*_)))/2),x=k/_,m=k/g;if(Math.abs(x-1)>E){this._+="L"+(t+x*c)+","+(e+x*h)}this._+="A"+r+","+r+",0,0,"+ +(h*f>c*y)+","+(this._x1=t+m*a)+","+(this._y1=e+m*l)}},arc:function(t,e,n,i,r,s){t=+t,e=+e,n=+n,s=!!s;var o=n*Math.cos(i),a=n*Math.sin(i),l=t+o,c=e+a,h=1^s,u=s?i-r:r-i;if(n<0)throw new Error("negative radius: "+n);if(this._x1===null){this._+="M"+l+","+c}else if(Math.abs(this._x1-l)>E||Math.abs(this._y1-c)>E){this._+="L"+l+","+c}if(!n)return;if(u<0)u=u%S+S;if(u>K){this._+="A"+n+","+n+",0,1,"+h+","+(t-o)+","+(e-a)+"A"+n+","+n+",0,1,"+h+","+(this._x1=l)+","+(this._y1=c)}else if(u>E){this._+="A"+n+","+n+",0,"+ +(u>=L)+","+h+","+(this._x1=t+n*Math.cos(r))+","+(this._y1=e+n*Math.sin(r))}},rect:function(t,e,n,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};const I=M;var T=Array.prototype.slice;function C(t){return function e(){return t}}function D(t){return t[0]}function N(t){return t[1]}function P(t){return t.source}function O(t){return t.target}function $(t){var e=P,n=O,i=D,r=N,s=null;function o(){var o,a=T.call(arguments),l=e.apply(this,a),c=n.apply(this,a);if(!s)s=o=I();t(s,+i.apply(this,(a[0]=l,a)),+r.apply(this,a),+i.apply(this,(a[0]=c,a)),+r.apply(this,a));if(o)return s=null,o+""||null}o.source=function(t){return arguments.length?(e=t,o):e};o.target=function(t){return arguments.length?(n=t,o):n};o.x=function(t){return arguments.length?(i=typeof t==="function"?t:C(+t),o):i};o.y=function(t){return arguments.length?(r=typeof t==="function"?t:C(+t),o):r};o.context=function(t){return arguments.length?(s=t==null?null:t,o):s};return o}function j(t,e,n,i,r){t.moveTo(e,n);t.bezierCurveTo(e=(e+i)/2,n,e,r,i,r)}function z(t,e,n,i,r){t.moveTo(e,n);t.bezierCurveTo(e,n=(n+r)/2,i,n,i,r)}function U(t,e,n,i,r){var s=pointRadial(e,n),o=pointRadial(e,n=(n+r)/2),a=pointRadial(i,n),l=pointRadial(i,r);t.moveTo(s[0],s[1]);t.bezierCurveTo(o[0],o[1],a[0],a[1],l[0],l[1])}function F(){return $(j)}function R(){return $(z)}function W(){var t=$(U);t.angle=t.x,delete t.x;t.radius=t.y,delete t.y;return t}function G(t){return[t.source.x1,t.y0]}function V(t){return[t.target.x0,t.y1]}function X(){return F().source(G).target(V)}var Y=function(){var t=(0,i.K2)((function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n}),"o"),e=[1,9],n=[1,10],r=[1,5,10,12];var s={trace:(0,i.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:(0,i.K2)((function t(e,n,i,r,s,o,a){var l=o.length-1;switch(s){case 7:const t=r.findOrCreateNode(o[l-4].trim().replaceAll('""','"'));const e=r.findOrCreateNode(o[l-2].trim().replaceAll('""','"'));const n=parseFloat(o[l].trim());r.addLink(t,e,n);break;case 8:case 9:case 11:this.$=o[l];break;case 10:this.$=o[l-1];break}}),"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:n},{1:[2,6],7:11,10:[1,12]},t(n,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(r,[2,8]),t(r,[2,9]),{19:[1,16]},t(r,[2,11]),{1:[2,1]},{1:[2,5]},t(n,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:n},{15:18,16:7,17:8,18:e,20:n},{18:[1,19]},t(n,[2,3]),{12:[1,20]},t(r,[2,10]),{15:21,16:7,17:8,18:e,20:n},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:(0,i.K2)((function t(e,n){if(n.recoverable){this.trace(e)}else{var i=new Error(e);i.hash=n;throw i}}),"parseError"),parse:(0,i.K2)((function t(e){var n=this,r=[0],s=[],o=[null],a=[],l=this.table,c="",h=0,u=0,f=0,y=2,d=1;var p=a.slice.call(arguments,1);var g=Object.create(this.lexer);var _={yy:{}};for(var k in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,k)){_.yy[k]=this.yy[k]}}g.setInput(e,_.yy);_.yy.lexer=g;_.yy.parser=this;if(typeof g.yylloc=="undefined"){g.yylloc={}}var x=g.yylloc;a.push(x);var m=g.options&&g.options.ranges;if(typeof _.yy.parseError==="function"){this.parseError=_.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function v(t){r.length=r.length-2*t;o.length=o.length-t;a.length=a.length-t}(0,i.K2)(v,"popStack");function b(){var t;t=s.pop()||g.lex()||d;if(typeof t!=="number"){if(t instanceof Array){s=t;t=s.pop()}t=n.symbols_[t]||t}return t}(0,i.K2)(b,"lex");var w,L,S,E,K,A,M={},I,T,C,D;while(true){S=r[r.length-1];if(this.defaultActions[S]){E=this.defaultActions[S]}else{if(w===null||typeof w=="undefined"){w=b()}E=l[S]&&l[S][w]}if(typeof E==="undefined"||!E.length||!E[0]){var N="";D=[];for(I in l[S]){if(this.terminals_[I]&&I>y){D.push("'"+this.terminals_[I]+"'")}}if(g.showPosition){N="Parse error on line "+(h+1)+":\n"+g.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[w]||w)+"'"}else{N="Parse error on line "+(h+1)+": Unexpected "+(w==d?"end of input":"'"+(this.terminals_[w]||w)+"'")}this.parseError(N,{text:g.match,token:this.terminals_[w]||w,line:g.yylineno,loc:x,expected:D})}if(E[0]instanceof Array&&E.length>1){throw new Error("Parse Error: multiple actions possible at state: "+S+", token: "+w)}switch(E[0]){case 1:r.push(w);o.push(g.yytext);a.push(g.yylloc);r.push(E[1]);w=null;if(!L){u=g.yyleng;c=g.yytext;h=g.yylineno;x=g.yylloc;if(f>0){f--}}else{w=L;L=null}break;case 2:T=this.productions_[E[1]][1];M.$=o[o.length-T];M._$={first_line:a[a.length-(T||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(T||1)].first_column,last_column:a[a.length-1].last_column};if(m){M._$.range=[a[a.length-(T||1)].range[0],a[a.length-1].range[1]]}A=this.performAction.apply(M,[c,u,h,_.yy,E[1],o,a].concat(p));if(typeof A!=="undefined"){return A}if(T){r=r.slice(0,-1*T*2);o=o.slice(0,-1*T);a=a.slice(0,-1*T)}r.push(this.productions_[E[1]][0]);o.push(M.$);a.push(M._$);C=l[r[r.length-2]][r[r.length-1]];r.push(C);break;case 3:return true}}return true}),"parse")};var o=function(){var t={EOF:1,parseError:(0,i.K2)((function t(e,n){if(this.yy.parser){this.yy.parser.parseError(e,n)}else{throw new Error(e)}}),"parseError"),setInput:(0,i.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,i.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,i.K2)((function(t){var e=t.length;var n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(n.length-1){this.yylineno-=n.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,i.K2)((function(){this._more=true;return this}),"more"),reject:(0,i.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,i.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,i.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,i.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,i.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,i.K2)((function(t,e){var n,i,r;if(this.options.backtrack_lexer){r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){r.yylloc.range=this.yylloc.range.slice(0)}}i=t[0].match(/(?:\r\n?|\n).*/g);if(i){this.yylineno+=i.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(n){return n}else if(this._backtrack){for(var s in r){this[s]=r[s]}return false}return false}),"test_match"),next:(0,i.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,n,i;if(!this._more){this.yytext="";this.match=""}var r=this._currentRules();for(var s=0;se[0].length)){e=n;i=s;if(this.options.backtrack_lexer){t=this.test_match(n,r[s]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,r[i]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,i.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,i.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,i.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,i.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,i.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,i.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,i.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,i.K2)((function t(e,n,i,r){var s=r;switch(i){case 0:this.pushState("csv");return 4;break;case 1:return 10;break;case 2:return 5;break;case 3:return 12;break;case 4:this.pushState("escaped_text");return 18;break;case 5:return 20;break;case 6:this.popState("escaped_text");return 18;break;case 7:return 19;break}}),"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:false},escaped_text:{rules:[6,7],inclusive:false},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:true}}};return t}();s.lexer=o;function a(){this.yy={}}(0,i.K2)(a,"Parser");a.prototype=s;s.Parser=a;return new a}();Y.parser=Y;var q=Y;var Q=[];var B=[];var Z=new Map;var H=(0,i.K2)((()=>{Q=[];B=[];Z=new Map;(0,i.IU)()}),"clear");var J=class{constructor(t,e,n=0){this.source=t;this.target=e;this.value=n}static{(0,i.K2)(this,"SankeyLink")}};var tt=(0,i.K2)(((t,e,n)=>{Q.push(new J(t,e,n))}),"addLink");var et=class{constructor(t){this.ID=t}static{(0,i.K2)(this,"SankeyNode")}};var nt=(0,i.K2)((t=>{t=i.Y2.sanitizeText(t,(0,i.D7)());let e=Z.get(t);if(e===void 0){e=new et(t);Z.set(t,e);B.push(e)}return e}),"findOrCreateNode");var it=(0,i.K2)((()=>B),"getNodes");var rt=(0,i.K2)((()=>Q),"getLinks");var st=(0,i.K2)((()=>({nodes:B.map((t=>({id:t.ID}))),links:Q.map((t=>({source:t.source.ID,target:t.target.ID,value:t.value})))})),"getGraph");var ot={nodesMap:Z,getConfig:(0,i.K2)((()=>(0,i.D7)().sankey),"getConfig"),getNodes:it,getLinks:rt,getGraph:st,addLink:tt,findOrCreateNode:nt,getAccTitle:i.iN,setAccTitle:i.SV,getAccDescription:i.m7,setAccDescription:i.EI,getDiagramTitle:i.ab,setDiagramTitle:i.ke,clear:H};var at=class t{static{(0,i.K2)(this,"Uid")}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(t){this.id=t;this.href=`#${t}`}toString(){return"url("+this.href+")"}};var lt={left:a,right:l,center:h,justify:c};var ct=(0,i.K2)((function(t,e,n,s){const{securityLevel:o,sankey:a}=(0,i.D7)();const l=i.ME.sankey;let c;if(o==="sandbox"){c=(0,r.Ltv)("#i"+e)}const h=o==="sandbox"?(0,r.Ltv)(c.nodes()[0].contentDocument.body):(0,r.Ltv)("body");const u=o==="sandbox"?h.select(`[id="${e}"]`):(0,r.Ltv)(`[id="${e}"]`);const f=a?.width??l.width;const y=a?.height??l.width;const d=a?.useMaxWidth??l.useMaxWidth;const p=a?.nodeAlignment??l.nodeAlignment;const g=a?.prefix??l.prefix;const _=a?.suffix??l.suffix;const k=a?.showValues??l.showValues;const x=s.db.getGraph();const m=lt[p];const v=10;const b=w().nodeId((t=>t.id)).nodeWidth(v).nodePadding(10+(k?15:0)).nodeAlign(m).extent([[0,0],[f,y]]);b(x);const L=(0,r.UMr)(r.zt);u.append("g").attr("class","nodes").selectAll(".node").data(x.nodes).join("g").attr("class","node").attr("id",(t=>(t.uid=at.next("node-")).id)).attr("transform",(function(t){return"translate("+t.x0+","+t.y0+")"})).attr("x",(t=>t.x0)).attr("y",(t=>t.y0)).append("rect").attr("height",(t=>t.y1-t.y0)).attr("width",(t=>t.x1-t.x0)).attr("fill",(t=>L(t.id)));const S=(0,i.K2)((({id:t,value:e})=>{if(!k){return t}return`${t}\n${g}${Math.round(e*100)/100}${_}`}),"getText");u.append("g").attr("class","node-labels").attr("font-size",14).selectAll("text").data(x.nodes).join("text").attr("x",(t=>t.x0(t.y1+t.y0)/2)).attr("dy",`${k?"0":"0.35"}em`).attr("text-anchor",(t=>t.x0(t.uid=at.next("linearGradient-")).id)).attr("gradientUnits","userSpaceOnUse").attr("x1",(t=>t.source.x1)).attr("x2",(t=>t.target.x0));t.append("stop").attr("offset","0%").attr("stop-color",(t=>L(t.source.id)));t.append("stop").attr("offset","100%").attr("stop-color",(t=>L(t.target.id)))}let A;switch(K){case"gradient":A=(0,i.K2)((t=>t.uid),"coloring");break;case"source":A=(0,i.K2)((t=>L(t.source.id)),"coloring");break;case"target":A=(0,i.K2)((t=>L(t.target.id)),"coloring");break;default:A=K}E.append("path").attr("d",X()).attr("stroke",A).attr("stroke-width",(t=>Math.max(1,t.width)));(0,i.ot)(void 0,u,0,d)}),"draw");var ht={draw:ct};var ut=(0,i.K2)((t=>{const e=t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,"\n").trim();return e}),"prepareTextForParsing");var ft=(0,i.K2)((t=>`.label {\n font-family: ${t.fontFamily};\n }`),"getStyles");var yt=ft;var dt=q.parse.bind(q);q.parse=t=>dt(ut(t));var pt={styles:yt,parser:q,db:ot,renderer:ht}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3372.8eeafd96de9a7a205f40.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3372.8eeafd96de9a7a205f40.js deleted file mode 100644 index 9e9b167cdb8daff269cc22cb324b2c4465136a34..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3372.8eeafd96de9a7a205f40.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3372],{43372:(e,t,n)=>{n.r(t);n.d(t,{crystal:()=>Z});function r(e,t){return new RegExp((t?"":"^")+"(?:"+e.join("|")+")"+(t?"$":"\\b"))}function a(e,t,n){n.tokenize.push(e);return e(t,n)}var u=/^(?:[-+/%|&^]|\*\*?|[<>]{2})/;var i=/^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/;var f=/^(?:\[\][?=]?)/;var s=/^(?:\.(?:\.{2})?|->|[?:])/;var c=/^[a-z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/;var o=/^[A-Z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/;var l=r(["abstract","alias","as","asm","begin","break","case","class","def","do","else","elsif","end","ensure","enum","extend","for","fun","if","include","instance_sizeof","lib","macro","module","next","of","out","pointerof","private","protected","rescue","return","require","select","sizeof","struct","super","then","type","typeof","uninitialized","union","unless","until","when","while","with","yield","__DIR__","__END_LINE__","__FILE__","__LINE__"]);var m=r(["true","false","nil","self"]);var p=["def","fun","macro","class","module","struct","lib","enum","union","do","for"];var h=r(p);var k=["if","unless","case","while","until","begin","then"];var d=r(k);var F=["end","else","elsif","rescue","ensure"];var _=r(F);var v=["\\)","\\}","\\]"];var z=new RegExp("^(?:"+v.join("|")+")$");var b={def:S,fun:S,macro:I,class:A,module:A,struct:A,lib:A,enum:A,union:A};var g={"[":"]","{":"}","(":")","<":">"};function w(e,t){if(e.eatSpace()){return null}if(t.lastToken!="\\"&&e.match("{%",false)){return a(x("%","%"),e,t)}if(t.lastToken!="\\"&&e.match("{{",false)){return a(x("{","}"),e,t)}if(e.peek()=="#"){e.skipToEnd();return"comment"}var n;if(e.match(c)){e.eat(/[?!]/);n=e.current();if(e.eat(":")){return"atom"}else if(t.lastToken=="."){return"property"}else if(l.test(n)){if(h.test(n)){if(!(n=="fun"&&t.blocks.indexOf("lib")>=0)&&!(n=="def"&&t.lastToken=="abstract")){t.blocks.push(n);t.currentIndent+=1}}else if((t.lastStyle=="operator"||!t.lastStyle)&&d.test(n)){t.blocks.push(n);t.currentIndent+=1}else if(n=="end"){t.blocks.pop();t.currentIndent-=1}if(b.hasOwnProperty(n)){t.tokenize.push(b[n])}return"keyword"}else if(m.test(n)){return"atom"}return"variable"}if(e.eat("@")){if(e.peek()=="["){return a(y("[","]","meta"),e,t)}e.eat("@");e.match(c)||e.match(o);return"propertyName"}if(e.match(o)){return"tag"}if(e.eat(":")){if(e.eat('"')){return a(E('"',"atom",false),e,t)}else if(e.match(c)||e.match(o)||e.match(u)||e.match(i)||e.match(f)){return"atom"}e.eat(":");return"operator"}if(e.eat('"')){return a(E('"',"string",true),e,t)}if(e.peek()=="%"){var r="string";var p=true;var k;if(e.match("%r")){r="string.special";k=e.next()}else if(e.match("%w")){p=false;k=e.next()}else if(e.match("%q")){p=false;k=e.next()}else{if(k=e.match(/^%([^\w\s=])/)){k=k[1]}else if(e.match(/^%[a-zA-Z_\u009F-\uFFFF][\w\u009F-\uFFFF]*/)){return"meta"}else if(e.eat("%")){return"operator"}}if(g.hasOwnProperty(k)){k=g[k]}return a(E(k,r,p),e,t)}if(n=e.match(/^<<-('?)([A-Z]\w*)\1/)){return a(T(n[2],!n[1]),e,t)}if(e.eat("'")){e.match(/^(?:[^']|\\(?:[befnrtv0'"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\})))/);e.eat("'");return"atom"}if(e.eat("0")){if(e.eat("x")){e.match(/^[0-9a-fA-F_]+/)}else if(e.eat("o")){e.match(/^[0-7_]+/)}else if(e.eat("b")){e.match(/^[01_]+/)}return"number"}if(e.eat(/^\d/)){e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+-]?\d+)?/);return"number"}if(e.match(u)){e.eat("=");return"operator"}if(e.match(i)||e.match(s)){return"operator"}if(n=e.match(/[({[]/,false)){n=n[0];return a(y(n,g[n],null),e,t)}if(e.eat("\\")){e.next();return"meta"}e.next();return null}function y(e,t,n,r){return function(a,u){if(!r&&a.match(e)){u.tokenize[u.tokenize.length-1]=y(e,t,n,true);u.currentIndent+=1;return n}var i=w(a,u);if(a.current()===t){u.tokenize.pop();u.currentIndent-=1;i=n}return i}}function x(e,t,n){return function(r,a){if(!n&&r.match("{"+e)){a.currentIndent+=1;a.tokenize[a.tokenize.length-1]=x(e,t,true);return"meta"}if(r.match(t+"}")){a.currentIndent-=1;a.tokenize.pop();return"meta"}return w(r,a)}}function I(e,t){if(e.eatSpace()){return null}var n;if(n=e.match(c)){if(n=="def"){return"keyword"}e.eat(/[?!]/)}t.tokenize.pop();return"def"}function S(e,t){if(e.eatSpace()){return null}if(e.match(c)){e.eat(/[!?]/)}else{e.match(u)||e.match(i)||e.match(f)}t.tokenize.pop();return"def"}function A(e,t){if(e.eatSpace()){return null}e.match(o);t.tokenize.pop();return"def"}function E(e,t,n){return function(r,a){var u=false;while(r.peek()){if(!u){if(r.match("{%",false)){a.tokenize.push(x("%","%"));return t}if(r.match("{{",false)){a.tokenize.push(x("{","}"));return t}if(n&&r.match("#{",false)){a.tokenize.push(y("#{","}","meta"));return t}var i=r.next();if(i==e){a.tokenize.pop();return t}u=n&&i=="\\"}else{r.next();u=false}}return t}}function T(e,t){return function(n,r){if(n.sol()){n.eatSpace();if(n.match(e)){r.tokenize.pop();return"string"}}var a=false;while(n.peek()){if(!a){if(n.match("{%",false)){r.tokenize.push(x("%","%"));return"string"}if(n.match("{{",false)){r.tokenize.push(x("{","}"));return"string"}if(t&&n.match("#{",false)){r.tokenize.push(y("#{","}","meta"));return"string"}a=n.next()=="\\"&&t}else{n.next();a=false}}return"string"}}const Z={name:"crystal",startState:function(){return{tokenize:[w],currentIndent:0,lastToken:null,lastStyle:null,blocks:[]}},token:function(e,t){var n=t.tokenize[t.tokenize.length-1](e,t);var r=e.current();if(n&&n!="comment"){t.lastToken=r;t.lastStyle=n}return n},indent:function(e,t,n){t=t.replace(/^\s*(?:\{%)?\s*|\s*(?:%\})?\s*$/g,"");if(_.test(t)||z.test(t)){return n.unit*(e.currentIndent-1)}return n.unit*e.currentIndent},languageData:{indentOnInput:r(v.concat(F),true),commentTokens:{line:"#"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/339.380593b40d8d41150a4e.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/339.380593b40d8d41150a4e.js deleted file mode 100644 index f79dfa6c70e6011a5de26fa66e461eaf6c03972f..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/339.380593b40d8d41150a4e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[339],{70339:(e,t,n)=>{n.r(t);n.d(t,{nsis:()=>r});var i=n(47228);const r=(0,i.I)({start:[{regex:/(?:[+-]?)(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\d+.?\d*)/,token:"number"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"},{regex:/'(?:[^\\']|\\.)*'?/,token:"string"},{regex:/`(?:[^\\`]|\\.)*`?/,token:"string"},{regex:/^\s*(?:\!(addincludedir|addplugindir|appendfile|assert|cd|define|delfile|echo|error|execute|finalize|getdllversion|gettlbversion|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|uninstfinalize|verbose|warning))\b/i,token:"keyword"},{regex:/^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/i,token:"keyword",indent:true},{regex:/^\s*(?:\!(else|endif|macroend))\b/i,token:"keyword",dedent:true},{regex:/^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetKnownFolderPath|GetLabelAddress|GetTempFileName|GetWinVer|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfRtlLanguage|IfShellVarContextAll|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadAndSetImage|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestLongPathAware|ManifestMaxVersionTested|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEAddResource|PEDllCharacteristics|PERemoveResource|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Target|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\b/i,token:"keyword"},{regex:/^\s*(?:Function|PageEx|Section(?:Group)?)\b/i,token:"keyword",indent:true},{regex:/^\s*(?:(Function|PageEx|Section(?:Group)?)End)\b/i,token:"keyword",dedent:true},{regex:/\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/i,token:"atom"},{regex:/\b(?:admin|all|amd64-unicode|auto|both|bottom|bzip2|components|current|custom|directory|false|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|off|on|right|show|silent|silentlog|textonly|top|true|try|un\.components|un\.custom|un\.directory|un\.instfiles|un\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|x-86-(ansi|unicode)|zlib)\b/i,token:"builtin"},{regex:/\$\{(?:And(?:If(?:Not)?|Unless)|Break|Case(?:2|3|4|5|Else)?|Continue|Default|Do(?:Until|While)?|Else(?:If(?:Not)?|Unless)?|End(?:If|Select|Switch)|Exit(?:Do|For|While)|For(?:Each)?|If(?:Cmd|Not(?:Then)?|Then)?|Loop(?:Until|While)?|Or(?:If(?:Not)?|Unless)|Select|Switch|Unless|While)\}/i,token:"variable-2",indent:true},{regex:/\$\{(?:BannerTrimPath|DirState|DriveSpace|Get(BaseName|Drives|ExeName|ExePath|FileAttributes|FileExt|FileName|FileVersion|Options|OptionsS|Parameters|Parent|Root|Size|Time)|Locate|RefreshShellIcons)\}/i,token:"variable-2",dedent:true},{regex:/\$\{(?:Memento(?:Section(?:Done|End|Restore|Save)?|UnselectedSection))\}/i,token:"variable-2",dedent:true},{regex:/\$\{(?:Config(?:Read|ReadS|Write|WriteS)|File(?:Join|ReadFromEnd|Recode)|Line(?:Find|Read|Sum)|Text(?:Compare|CompareS)|TrimNewLines)\}/i,token:"variable-2",dedent:true},{regex:/\$\{(?:(?:At(?:Least|Most)|Is)(?:ServicePack|Win(?:7|8|10|95|98|200(?:0|3|8(?:R2)?)|ME|NT4|Vista|XP))|Is(?:NT|Server))\}/i,token:"variable",dedent:true},{regex:/\$\{(?:StrFilterS?|Version(?:Compare|Convert)|Word(?:AddS?|Find(?:(?:2|3)X)?S?|InsertS?|ReplaceS?))\}/i,token:"keyword",dedent:true},{regex:/\$\{(?:RunningX64)\}/i,token:"variable",dedent:true},{regex:/\$\{(?:Disable|Enable)X64FSRedirection\}/i,token:"keyword",dedent:true},{regex:/(#|;).*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/\$\w[\w\.]*/,token:"variable"},{regex:/\${[\!\w\.:-]+}/,token:"variableName.constant"},{regex:/\$\([\!\w\.:-]+\)/,token:"atom"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],languageData:{name:"nsis",indentOnInput:/^\s*((Function|PageEx|Section|Section(Group)?)End|(\!(endif|macroend))|\$\{(End(If|Unless|While)|Loop(Until)|Next)\})$/i,commentTokens:{line:"#",block:{open:"/*",close:"*/"}}}})},47228:(e,t,n)=>{n.d(t,{I:()=>i});function i(e){r(e,"start");var t={},n=e.languageData||{},i=false;for(var o in e)if(o!=n&&e.hasOwnProperty(o)){var a=t[o]=[],S=e[o];for(var c=0;c2&&a.token&&typeof a.token!="string"){n.pending=[];for(var d=2;d-1)return null;var r=n.indent.length-1,o=e[n.state];e:for(;;){for(var a=0;a{!function(t,r){true?e.exports=r():0}(self,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{activate(e){this._terminal=e}dispose(){}fit(){const e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;const t=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal)return;if(!this._terminal.element||!this._terminal.element.parentElement)return;const e=this._terminal._core,t=e._renderService.dimensions;if(0===t.css.cell.width||0===t.css.cell.height)return;const r=0===this._terminal.options.scrollback?0:e.viewport.scrollBarWidth,i=window.getComputedStyle(this._terminal.element.parentElement),s=parseInt(i.getPropertyValue("height")),n=Math.max(0,parseInt(i.getPropertyValue("width"))),a=window.getComputedStyle(this._terminal.element),l=s-(parseInt(a.getPropertyValue("padding-top"))+parseInt(a.getPropertyValue("padding-bottom"))),o=n-(parseInt(a.getPropertyValue("padding-right"))+parseInt(a.getPropertyValue("padding-left")))-r;return{cols:Math.max(2,Math.floor(o/t.css.cell.width)),rows:Math.max(1,Math.floor(l/t.css.cell.height))}}}})(),e})()))}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/36e0d72d8a7afc696a3e.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/36e0d72d8a7afc696a3e.woff deleted file mode 100644 index ed55c4cf1d1ae68e01948a903d8a67e2f5a38d48..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/36e0d72d8a7afc696a3e.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3709.e33bc30c83272aa85628.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3709.e33bc30c83272aa85628.js deleted file mode 100644 index 2385c0ea46875a73f1e3aa75b3feed70b7c8bbd9..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3709.e33bc30c83272aa85628.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3709],{73709:(e,t,r)=>{r.r(t);r.d(t,{perl:()=>_});function n(e,t){return e.string.charAt(e.pos+(t||0))}function i(e,t){if(t){var r=e.pos-t;return e.string.substr(r>=0?r:0,t)}else{return e.string.substr(0,e.pos-1)}}function s(e,t){var r=e.string.length;var n=r-e.pos+1;return e.string.substr(e.pos,t&&t=(n=e.string.length-1))e.pos=n;else e.pos=r}var a={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,if:[1,1],elsif:[1,1],else:[1,1],while:[1,1],unless:[1,1],for:[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,break:1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,continue:[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,default:1,defined:1,delete:1,die:1,do:1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,goto:1,grep:1,hex:1,import:1,index:1,int:1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,new:1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,package:1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,return:1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null};var l="string.special";var f=/[goseximacplud]/;function o(e,t,r,n,i){t.chain=null;t.style=null;t.tail=null;t.tokenize=function(e,t){var s=false,u,a=0;while(u=e.next()){if(u===r[a]&&!s){if(r[++a]!==undefined){t.chain=r[a];t.style=n;t.tail=i}else if(i)e.eatWhile(i);t.tokenize=E;return n}s=!s&&u=="\\"}return n};return t.tokenize(e,t)}function $(e,t,r){t.tokenize=function(e,t){if(e.string==r)t.tokenize=E;e.skipToEnd();return"string"};return t.tokenize(e,t)}function E(e,t){if(e.eatSpace())return null;if(t.chain)return o(e,t,t.chain,t.style,t.tail);if(e.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/))return"number";if(e.match(/^<<(?=[_a-zA-Z])/)){e.eatWhile(/\w/);return $(e,t,e.current().substr(2))}if(e.sol()&&e.match(/^\=item(?!\w)/)){return $(e,t,"=cut")}var r=e.next();if(r=='"'||r=="'"){if(i(e,3)=="<<"+r){var E=e.pos;e.eatWhile(/\w/);var _=e.current().substr(1);if(_&&e.eat(r))return $(e,t,_);e.pos=E}return o(e,t,[r],"string")}if(r=="q"){var p=n(e,-2);if(!(p&&/\w/.test(p))){p=n(e,0);if(p=="x"){p=n(e,1);if(p=="("){u(e,2);return o(e,t,[")"],l,f)}if(p=="["){u(e,2);return o(e,t,["]"],l,f)}if(p=="{"){u(e,2);return o(e,t,["}"],l,f)}if(p=="<"){u(e,2);return o(e,t,[">"],l,f)}if(/[\^'"!~\/]/.test(p)){u(e,1);return o(e,t,[e.eat(p)],l,f)}}else if(p=="q"){p=n(e,1);if(p=="("){u(e,2);return o(e,t,[")"],"string")}if(p=="["){u(e,2);return o(e,t,["]"],"string")}if(p=="{"){u(e,2);return o(e,t,["}"],"string")}if(p=="<"){u(e,2);return o(e,t,[">"],"string")}if(/[\^'"!~\/]/.test(p)){u(e,1);return o(e,t,[e.eat(p)],"string")}}else if(p=="w"){p=n(e,1);if(p=="("){u(e,2);return o(e,t,[")"],"bracket")}if(p=="["){u(e,2);return o(e,t,["]"],"bracket")}if(p=="{"){u(e,2);return o(e,t,["}"],"bracket")}if(p=="<"){u(e,2);return o(e,t,[">"],"bracket")}if(/[\^'"!~\/]/.test(p)){u(e,1);return o(e,t,[e.eat(p)],"bracket")}}else if(p=="r"){p=n(e,1);if(p=="("){u(e,2);return o(e,t,[")"],l,f)}if(p=="["){u(e,2);return o(e,t,["]"],l,f)}if(p=="{"){u(e,2);return o(e,t,["}"],l,f)}if(p=="<"){u(e,2);return o(e,t,[">"],l,f)}if(/[\^'"!~\/]/.test(p)){u(e,1);return o(e,t,[e.eat(p)],l,f)}}else if(/[\^'"!~\/(\[{<]/.test(p)){if(p=="("){u(e,1);return o(e,t,[")"],"string")}if(p=="["){u(e,1);return o(e,t,["]"],"string")}if(p=="{"){u(e,1);return o(e,t,["}"],"string")}if(p=="<"){u(e,1);return o(e,t,[">"],"string")}if(/[\^'"!~\/]/.test(p)){return o(e,t,[e.eat(p)],"string")}}}}if(r=="m"){var p=n(e,-2);if(!(p&&/\w/.test(p))){p=e.eat(/[(\[{<\^'"!~\/]/);if(p){if(/[\^'"!~\/]/.test(p)){return o(e,t,[p],l,f)}if(p=="("){return o(e,t,[")"],l,f)}if(p=="["){return o(e,t,["]"],l,f)}if(p=="{"){return o(e,t,["}"],l,f)}if(p=="<"){return o(e,t,[">"],l,f)}}}}if(r=="s"){var p=/[\/>\]})\w]/.test(n(e,-2));if(!p){p=e.eat(/[(\[{<\^'"!~\/]/);if(p){if(p=="[")return o(e,t,["]","]"],l,f);if(p=="{")return o(e,t,["}","}"],l,f);if(p=="<")return o(e,t,[">",">"],l,f);if(p=="(")return o(e,t,[")",")"],l,f);return o(e,t,[p,p],l,f)}}}if(r=="y"){var p=/[\/>\]})\w]/.test(n(e,-2));if(!p){p=e.eat(/[(\[{<\^'"!~\/]/);if(p){if(p=="[")return o(e,t,["]","]"],l,f);if(p=="{")return o(e,t,["}","}"],l,f);if(p=="<")return o(e,t,[">",">"],l,f);if(p=="(")return o(e,t,[")",")"],l,f);return o(e,t,[p,p],l,f)}}}if(r=="t"){var p=/[\/>\]})\w]/.test(n(e,-2));if(!p){p=e.eat("r");if(p){p=e.eat(/[(\[{<\^'"!~\/]/);if(p){if(p=="[")return o(e,t,["]","]"],l,f);if(p=="{")return o(e,t,["}","}"],l,f);if(p=="<")return o(e,t,[">",">"],l,f);if(p=="(")return o(e,t,[")",")"],l,f);return o(e,t,[p,p],l,f)}}}}if(r=="`"){return o(e,t,[r],"builtin")}if(r=="/"){if(!/~\s*$/.test(i(e)))return"operator";else return o(e,t,[r],l,f)}if(r=="$"){var E=e.pos;if(e.eatWhile(/\d/)||e.eat("{")&&e.eatWhile(/\d/)&&e.eat("}"))return"builtin";else e.pos=E}if(/[$@%]/.test(r)){var E=e.pos;if(e.eat("^")&&e.eat(/[A-Z]/)||!/[@$%&]/.test(n(e,-2))&&e.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var p=e.current();if(a[p])return"builtin"}e.pos=E}if(/[$@%&]/.test(r)){if(e.eatWhile(/[\w$]/)||e.eat("{")&&e.eatWhile(/[\w$]/)&&e.eat("}")){var p=e.current();if(a[p])return"builtin";else return"variable"}}if(r=="#"){if(n(e,-2)!="$"){e.skipToEnd();return"comment"}}if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(r)){var E=e.pos;e.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/);if(a[e.current()])return"operator";else e.pos=E}if(r=="_"){if(e.pos==1){if(s(e,6)=="_END__"){return o(e,t,["\0"],"comment")}else if(s(e,7)=="_DATA__"){return o(e,t,["\0"],"builtin")}else if(s(e,7)=="_C__"){return o(e,t,["\0"],"string")}}}if(/\w/.test(r)){var E=e.pos;if(n(e,-2)=="{"&&(n(e,0)=="}"||e.eatWhile(/\w/)&&n(e,0)=="}"))return"string";else e.pos=E}if(/[A-Z]/.test(r)){var R=n(e,-2);var E=e.pos;e.eatWhile(/[A-Z_]/);if(/[\da-z]/.test(n(e,0))){e.pos=E}else{var p=a[e.current()];if(!p)return"meta";if(p[1])p=p[0];if(R!=":"){if(p==1)return"keyword";else if(p==2)return"def";else if(p==3)return"atom";else if(p==4)return"operator";else if(p==5)return"builtin";else return"meta"}else return"meta"}}if(/[a-zA-Z_]/.test(r)){var R=n(e,-2);e.eatWhile(/\w/);var p=a[e.current()];if(!p)return"meta";if(p[1])p=p[0];if(R!=":"){if(p==1)return"keyword";else if(p==2)return"def";else if(p==3)return"atom";else if(p==4)return"operator";else if(p==5)return"builtin";else return"meta"}else return"meta"}return null}const _={name:"perl",startState:function(){return{tokenize:E,chain:null,style:null,tail:null}},token:function(e,t){return(t.tokenize||E)(e,t)},languageData:{commentTokens:{line:"#"},wordChars:"$"}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3763.56191df5d72d2ffa5aa6.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3763.56191df5d72d2ffa5aa6.js deleted file mode 100644 index 782f9ae9d45c4aec35a29a4967e66f5cf2fd548f..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3763.56191df5d72d2ffa5aa6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3763],{73763:s=>{s.exports=JSON.parse('{"name":"mermaid","version":"11.6.0","description":"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.","type":"module","module":"./dist/mermaid.core.mjs","types":"./dist/mermaid.d.ts","exports":{".":{"types":"./dist/mermaid.d.ts","import":"./dist/mermaid.core.mjs","default":"./dist/mermaid.core.mjs"},"./*":"./*"},"keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph","mindmap","packet diagram","c4 diagram","er diagram","pie chart","pie diagram","quadrant chart","requirement diagram","graph"],"repository":{"type":"git","url":"https://github.com/mermaid-js/mermaid"},"author":"Knut Sveidqvist","license":"MIT","standard":{"ignore":["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],"globals":["page"]},"dependencies":{"@braintree/sanitize-url":"^7.0.4","@iconify/utils":"^2.1.33","@types/d3":"^7.4.3","cytoscape":"^3.29.3","cytoscape-cose-bilkent":"^4.1.0","cytoscape-fcose":"^2.2.0","d3":"^7.9.0","d3-sankey":"^0.12.3","dagre-d3-es":"7.0.11","dayjs":"^1.11.13","dompurify":"^3.2.4","katex":"^0.16.9","khroma":"^2.1.0","lodash-es":"^4.17.21","marked":"^15.0.7","roughjs":"^4.6.6","stylis":"^4.3.6","ts-dedent":"^2.2.0","uuid":"^11.1.0","@mermaid-js/parser":"^0.4.0"},"devDependencies":{"@adobe/jsonschema2md":"^8.0.2","@iconify/types":"^2.0.0","@types/cytoscape":"^3.21.9","@types/cytoscape-fcose":"^2.2.4","@types/d3-sankey":"^0.12.4","@types/d3-scale":"^4.0.9","@types/d3-scale-chromatic":"^3.1.0","@types/d3-selection":"^3.0.11","@types/d3-shape":"^3.1.7","@types/jsdom":"^21.1.7","@types/katex":"^0.16.7","@types/lodash-es":"^4.17.12","@types/micromatch":"^4.0.9","@types/stylis":"^4.2.7","@types/uuid":"^10.0.0","ajv":"^8.17.1","chokidar":"^4.0.3","concurrently":"^9.1.2","csstree-validator":"^4.0.1","globby":"^14.0.2","jison":"^0.4.18","js-base64":"^3.7.7","jsdom":"^26.0.0","json-schema-to-typescript":"^15.0.4","micromatch":"^4.0.8","path-browserify":"^1.0.1","prettier":"^3.5.2","remark":"^15.0.1","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1","rimraf":"^6.0.1","start-server-and-test":"^2.0.10","type-fest":"^4.35.0","typedoc":"^0.27.8","typedoc-plugin-markdown":"^4.4.2","typescript":"~5.7.3","unist-util-flatmap":"^1.0.0","unist-util-visit":"^5.0.0","vitepress":"^1.0.2","vitepress-plugin-search":"1.0.4-alpha.22"},"files":["dist/","README.md"],"publishConfig":{"access":"public"},"scripts":{"clean":"rimraf dist","dev":"pnpm -w dev","docs:code":"typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup","docs:build":"rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts","docs:verify":"pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify","docs:pre:vitepress":"pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts","docs:build:vitepress":"pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing","docs:dev":"pnpm docs:pre:vitepress && concurrently \\"pnpm --filter ./src/vitepress dev\\" \\"tsx scripts/docs.cli.mts --watch --vitepress\\"","docs:dev:docker":"pnpm docs:pre:vitepress && concurrently \\"pnpm --filter ./src/vitepress dev:docker\\" \\"tsx scripts/docs.cli.mts --watch --vitepress\\"","docs:serve":"pnpm docs:build:vitepress && vitepress serve src/vitepress","docs:spellcheck":"cspell \\"src/docs/**/*.md\\"","docs:release-version":"tsx scripts/update-release-version.mts","docs:verify-version":"tsx scripts/update-release-version.mts --verify","types:build-config":"tsx scripts/create-types-from-json-schema.mts","types:verify-config":"tsx scripts/create-types-from-json-schema.mts --verify","checkCircle":"npx madge --circular ./src"}}')}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3780.c9294dc98ae926717741.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3780.c9294dc98ae926717741.js deleted file mode 100644 index 5e211a62faccaff334933df39e9ac44ef0b82b6a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3780.c9294dc98ae926717741.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3780],{23780:(e,t,a)=>{a.r(t);a.d(t,{spreadsheet:()=>r});const r={name:"spreadsheet",startState:function(){return{stringType:null,stack:[]}},token:function(e,t){if(!e)return;if(t.stack.length===0){if(e.peek()=='"'||e.peek()=="'"){t.stringType=e.peek();e.next();t.stack.unshift("string")}}switch(t.stack[0]){case"string":while(t.stack[0]==="string"&&!e.eol()){if(e.peek()===t.stringType){e.next();t.stack.shift()}else if(e.peek()==="\\"){e.next();e.next()}else{e.match(/^.[^\\\"\']*/)}}return"string";case"characterClass":while(t.stack[0]==="characterClass"&&!e.eol()){if(!(e.match(/^[^\]\\]+/)||e.match(/^\\./)))t.stack.shift()}return"operator"}var a=e.peek();switch(a){case"[":e.next();t.stack.unshift("characterClass");return"bracket";case":":e.next();return"operator";case"\\":if(e.match(/\\[a-z]+/))return"string.special";else{e.next();return"atom"}case".":case",":case";":case"*":case"-":case"+":case"^":case"<":case"/":case"=":e.next();return"atom";case"$":e.next();return"builtin"}if(e.match(/\d+/)){if(e.match(/^\w+/))return"error";return"number"}else if(e.match(/^[a-zA-Z_]\w*/)){if(e.match(/(?=[\(.])/,false))return"keyword";return"variable"}else if(["[","]","(",")","{","}"].indexOf(a)!=-1){e.next();return"bracket"}else if(!e.eatSpace()){e.next()}return null}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3799.eaa0438bc5c41bad0516.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3799.eaa0438bc5c41bad0516.js deleted file mode 100644 index e2ec9b0425c1fe104c9c00d11ca62ccf9e584381..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3799.eaa0438bc5c41bad0516.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3799,5606],{56180:(e,t,i)=>{var s=i(65606);!function(t,i){true?e.exports=i():0}(self,(()=>(()=>{"use strict";var e={965:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GlyphRenderer=void 0;const s=i(374),r=i(509),o=i(855),n=i(859),a=i(381),h=11,l=h*Float32Array.BYTES_PER_ELEMENT;let c,d=0,_=0,u=0;class g extends n.Disposable{constructor(e,t,i,o){super(),this._terminal=e,this._gl=t,this._dimensions=i,this._optionsService=o,this._activeBuffer=0,this._vertices={count:0,attributes:new Float32Array(0),attributesBuffers:[new Float32Array(0),new Float32Array(0)]};const h=this._gl;void 0===r.TextureAtlas.maxAtlasPages&&(r.TextureAtlas.maxAtlasPages=Math.min(32,(0,s.throwIfFalsy)(h.getParameter(h.MAX_TEXTURE_IMAGE_UNITS))),r.TextureAtlas.maxTextureSize=(0,s.throwIfFalsy)(h.getParameter(h.MAX_TEXTURE_SIZE))),this._program=(0,s.throwIfFalsy)((0,a.createProgram)(h,"#version 300 es\nlayout (location = 0) in vec2 a_unitquad;\nlayout (location = 1) in vec2 a_cellpos;\nlayout (location = 2) in vec2 a_offset;\nlayout (location = 3) in vec2 a_size;\nlayout (location = 4) in float a_texpage;\nlayout (location = 5) in vec2 a_texcoord;\nlayout (location = 6) in vec2 a_texsize;\n\nuniform mat4 u_projection;\nuniform vec2 u_resolution;\n\nout vec2 v_texcoord;\nflat out int v_texpage;\n\nvoid main() {\n vec2 zeroToOne = (a_offset / u_resolution) + a_cellpos + (a_unitquad * a_size);\n gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0);\n v_texpage = int(a_texpage);\n v_texcoord = a_texcoord + a_unitquad * a_texsize;\n}",function(e){let t="";for(let i=1;ih.deleteProgram(this._program)))),this._projectionLocation=(0,s.throwIfFalsy)(h.getUniformLocation(this._program,"u_projection")),this._resolutionLocation=(0,s.throwIfFalsy)(h.getUniformLocation(this._program,"u_resolution")),this._textureLocation=(0,s.throwIfFalsy)(h.getUniformLocation(this._program,"u_texture")),this._vertexArrayObject=h.createVertexArray(),h.bindVertexArray(this._vertexArrayObject);const c=new Float32Array([0,0,1,0,0,1,1,1]),d=h.createBuffer();this.register((0,n.toDisposable)((()=>h.deleteBuffer(d)))),h.bindBuffer(h.ARRAY_BUFFER,d),h.bufferData(h.ARRAY_BUFFER,c,h.STATIC_DRAW),h.enableVertexAttribArray(0),h.vertexAttribPointer(0,2,this._gl.FLOAT,!1,0,0);const _=new Uint8Array([0,1,2,3]),u=h.createBuffer();this.register((0,n.toDisposable)((()=>h.deleteBuffer(u)))),h.bindBuffer(h.ELEMENT_ARRAY_BUFFER,u),h.bufferData(h.ELEMENT_ARRAY_BUFFER,_,h.STATIC_DRAW),this._attributesBuffer=(0,s.throwIfFalsy)(h.createBuffer()),this.register((0,n.toDisposable)((()=>h.deleteBuffer(this._attributesBuffer)))),h.bindBuffer(h.ARRAY_BUFFER,this._attributesBuffer),h.enableVertexAttribArray(2),h.vertexAttribPointer(2,2,h.FLOAT,!1,l,0),h.vertexAttribDivisor(2,1),h.enableVertexAttribArray(3),h.vertexAttribPointer(3,2,h.FLOAT,!1,l,2*Float32Array.BYTES_PER_ELEMENT),h.vertexAttribDivisor(3,1),h.enableVertexAttribArray(4),h.vertexAttribPointer(4,1,h.FLOAT,!1,l,4*Float32Array.BYTES_PER_ELEMENT),h.vertexAttribDivisor(4,1),h.enableVertexAttribArray(5),h.vertexAttribPointer(5,2,h.FLOAT,!1,l,5*Float32Array.BYTES_PER_ELEMENT),h.vertexAttribDivisor(5,1),h.enableVertexAttribArray(6),h.vertexAttribPointer(6,2,h.FLOAT,!1,l,7*Float32Array.BYTES_PER_ELEMENT),h.vertexAttribDivisor(6,1),h.enableVertexAttribArray(1),h.vertexAttribPointer(1,2,h.FLOAT,!1,l,9*Float32Array.BYTES_PER_ELEMENT),h.vertexAttribDivisor(1,1),h.useProgram(this._program);const g=new Int32Array(r.TextureAtlas.maxAtlasPages);for(let s=0;sh.deleteTexture(e.texture)))),h.activeTexture(h.TEXTURE0+l),h.bindTexture(h.TEXTURE_2D,e.texture),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),h.texImage2D(h.TEXTURE_2D,0,h.RGBA,1,1,0,h.RGBA,h.UNSIGNED_BYTE,new Uint8Array([255,0,0,255])),this._atlasTextures[l]=e}h.enable(h.BLEND),h.blendFunc(h.SRC_ALPHA,h.ONE_MINUS_SRC_ALPHA),this.handleResize()}beginFrame(){return!this._atlas||this._atlas.beginFrame()}updateCell(e,t,i,s,r,o,n,a,h){this._updateCell(this._vertices.attributes,e,t,i,s,r,o,n,a,h)}_updateCell(e,t,i,r,n,a,l,g,v,f){d=(i*this._terminal.cols+t)*h,r!==o.NULL_CELL_CODE&&void 0!==r?this._atlas&&(c=g&&g.length>1?this._atlas.getRasterizedGlyphCombinedChar(g,n,a,l,!1):this._atlas.getRasterizedGlyph(r,n,a,l,!1),_=Math.floor((this._dimensions.device.cell.width-this._dimensions.device.char.width)/2),n!==f&&c.offset.x>_?(u=c.offset.x-_,e[d]=-(c.offset.x-u)+this._dimensions.device.char.left,e[d+1]=-c.offset.y+this._dimensions.device.char.top,e[d+2]=(c.size.x-u)/this._dimensions.device.canvas.width,e[d+3]=c.size.y/this._dimensions.device.canvas.height,e[d+4]=c.texturePage,e[d+5]=c.texturePositionClipSpace.x+u/this._atlas.pages[c.texturePage].canvas.width,e[d+6]=c.texturePositionClipSpace.y,e[d+7]=c.sizeClipSpace.x-u/this._atlas.pages[c.texturePage].canvas.width,e[d+8]=c.sizeClipSpace.y):(e[d]=-c.offset.x+this._dimensions.device.char.left,e[d+1]=-c.offset.y+this._dimensions.device.char.top,e[d+2]=c.size.x/this._dimensions.device.canvas.width,e[d+3]=c.size.y/this._dimensions.device.canvas.height,e[d+4]=c.texturePage,e[d+5]=c.texturePositionClipSpace.x,e[d+6]=c.texturePositionClipSpace.y,e[d+7]=c.sizeClipSpace.x,e[d+8]=c.sizeClipSpace.y),this._optionsService.rawOptions.rescaleOverlappingGlyphs&&(0,s.allowRescaling)(r,v,c.size.x,this._dimensions.device.cell.width)&&(e[d+2]=(this._dimensions.device.cell.width-1)/this._dimensions.device.canvas.width)):e.fill(0,d,d+h-1-2)}clear(){const e=this._terminal,t=e.cols*e.rows*h;this._vertices.count!==t?this._vertices.attributes=new Float32Array(t):this._vertices.attributes.fill(0);let i=0;for(;i{Object.defineProperty(t,"__esModule",{value:!0}),t.RectangleRenderer=void 0;const s=i(374),r=i(859),o=i(310),n=i(381),a=8*Float32Array.BYTES_PER_ELEMENT;class h{constructor(){this.attributes=new Float32Array(160),this.count=0}}let l=0,c=0,d=0,_=0,u=0,g=0,v=0;class f extends r.Disposable{constructor(e,t,i,o){super(),this._terminal=e,this._gl=t,this._dimensions=i,this._themeService=o,this._vertices=new h,this._verticesCursor=new h;const l=this._gl;this._program=(0,s.throwIfFalsy)((0,n.createProgram)(l,"#version 300 es\nlayout (location = 0) in vec2 a_position;\nlayout (location = 1) in vec2 a_size;\nlayout (location = 2) in vec4 a_color;\nlayout (location = 3) in vec2 a_unitquad;\n\nuniform mat4 u_projection;\n\nout vec4 v_color;\n\nvoid main() {\n vec2 zeroToOne = a_position + (a_unitquad * a_size);\n gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0);\n v_color = a_color;\n}","#version 300 es\nprecision lowp float;\n\nin vec4 v_color;\n\nout vec4 outColor;\n\nvoid main() {\n outColor = v_color;\n}")),this.register((0,r.toDisposable)((()=>l.deleteProgram(this._program)))),this._projectionLocation=(0,s.throwIfFalsy)(l.getUniformLocation(this._program,"u_projection")),this._vertexArrayObject=l.createVertexArray(),l.bindVertexArray(this._vertexArrayObject);const c=new Float32Array([0,0,1,0,0,1,1,1]),d=l.createBuffer();this.register((0,r.toDisposable)((()=>l.deleteBuffer(d)))),l.bindBuffer(l.ARRAY_BUFFER,d),l.bufferData(l.ARRAY_BUFFER,c,l.STATIC_DRAW),l.enableVertexAttribArray(3),l.vertexAttribPointer(3,2,this._gl.FLOAT,!1,0,0);const _=new Uint8Array([0,1,2,3]),u=l.createBuffer();this.register((0,r.toDisposable)((()=>l.deleteBuffer(u)))),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,u),l.bufferData(l.ELEMENT_ARRAY_BUFFER,_,l.STATIC_DRAW),this._attributesBuffer=(0,s.throwIfFalsy)(l.createBuffer()),this.register((0,r.toDisposable)((()=>l.deleteBuffer(this._attributesBuffer)))),l.bindBuffer(l.ARRAY_BUFFER,this._attributesBuffer),l.enableVertexAttribArray(0),l.vertexAttribPointer(0,2,l.FLOAT,!1,a,0),l.vertexAttribDivisor(0,1),l.enableVertexAttribArray(1),l.vertexAttribPointer(1,2,l.FLOAT,!1,a,2*Float32Array.BYTES_PER_ELEMENT),l.vertexAttribDivisor(1,1),l.enableVertexAttribArray(2),l.vertexAttribPointer(2,4,l.FLOAT,!1,a,4*Float32Array.BYTES_PER_ELEMENT),l.vertexAttribDivisor(2,1),this._updateCachedColors(o.colors),this.register(this._themeService.onChangeColors((e=>{this._updateCachedColors(e),this._updateViewportRectangle()})))}renderBackgrounds(){this._renderVertices(this._vertices)}renderCursor(){this._renderVertices(this._verticesCursor)}_renderVertices(e){const t=this._gl;t.useProgram(this._program),t.bindVertexArray(this._vertexArrayObject),t.uniformMatrix4fv(this._projectionLocation,!1,n.PROJECTION_MATRIX),t.bindBuffer(t.ARRAY_BUFFER,this._attributesBuffer),t.bufferData(t.ARRAY_BUFFER,e.attributes,t.DYNAMIC_DRAW),t.drawElementsInstanced(this._gl.TRIANGLE_STRIP,4,t.UNSIGNED_BYTE,0,e.count)}handleResize(){this._updateViewportRectangle()}setDimensions(e){this._dimensions=e}_updateCachedColors(e){this._bgFloat=this._colorToFloat32Array(e.background),this._cursorFloat=this._colorToFloat32Array(e.cursor)}_updateViewportRectangle(){this._addRectangleFloat(this._vertices.attributes,0,0,0,this._terminal.cols*this._dimensions.device.cell.width,this._terminal.rows*this._dimensions.device.cell.height,this._bgFloat)}updateBackgrounds(e){const t=this._terminal,i=this._vertices;let s,r,n,a,h,l,c,d,_,u,g,v=1;for(s=0;s>24&255)/255,u=(l>>16&255)/255,g=(l>>8&255)/255,v=1,this._addRectangle(e.attributes,t,c,d,(o-r)*this._dimensions.device.cell.width,this._dimensions.device.cell.height,_,u,g,v)}_addRectangle(e,t,i,s,r,o,n,a,h,l){e[t]=i/this._dimensions.device.canvas.width,e[t+1]=s/this._dimensions.device.canvas.height,e[t+2]=r/this._dimensions.device.canvas.width,e[t+3]=o/this._dimensions.device.canvas.height,e[t+4]=n,e[t+5]=a,e[t+6]=h,e[t+7]=l}_addRectangleFloat(e,t,i,s,r,o,n){e[t]=i/this._dimensions.device.canvas.width,e[t+1]=s/this._dimensions.device.canvas.height,e[t+2]=r/this._dimensions.device.canvas.width,e[t+3]=o/this._dimensions.device.canvas.height,e[t+4]=n[0],e[t+5]=n[1],e[t+6]=n[2],e[t+7]=n[3]}_colorToFloat32Array(e){return new Float32Array([(e.rgba>>24&255)/255,(e.rgba>>16&255)/255,(e.rgba>>8&255)/255,(255&e.rgba)/255])}}t.RectangleRenderer=f},310:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RenderModel=t.COMBINED_CHAR_BIT_MASK=t.RENDER_MODEL_EXT_OFFSET=t.RENDER_MODEL_FG_OFFSET=t.RENDER_MODEL_BG_OFFSET=t.RENDER_MODEL_INDICIES_PER_CELL=void 0;const s=i(296);t.RENDER_MODEL_INDICIES_PER_CELL=4,t.RENDER_MODEL_BG_OFFSET=1,t.RENDER_MODEL_FG_OFFSET=2,t.RENDER_MODEL_EXT_OFFSET=3,t.COMBINED_CHAR_BIT_MASK=2147483648,t.RenderModel=class{constructor(){this.cells=new Uint32Array(0),this.lineLengths=new Uint32Array(0),this.selection=(0,s.createSelectionRenderModel)()}resize(e,i){const s=e*i*t.RENDER_MODEL_INDICIES_PER_CELL;s!==this.cells.length&&(this.cells=new Uint32Array(s),this.lineLengths=new Uint32Array(i))}clear(){this.cells.fill(0,0),this.lineLengths.fill(0,0)}}},666:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.JoinedCellData=t.WebglRenderer=void 0;const s=i(820),r=i(274),o=i(627),n=i(457),a=i(56),h=i(374),l=i(345),c=i(859),d=i(147),_=i(782),u=i(855),g=i(965),v=i(742),f=i(310),p=i(733);class C extends c.Disposable{constructor(e,t,i,n,d,u,g,v,C){super(),this._terminal=e,this._characterJoinerService=t,this._charSizeService=i,this._coreBrowserService=n,this._coreService=d,this._decorationService=u,this._optionsService=g,this._themeService=v,this._cursorBlinkStateManager=new c.MutableDisposable,this._charAtlasDisposable=this.register(new c.MutableDisposable),this._observerDisposable=this.register(new c.MutableDisposable),this._model=new f.RenderModel,this._workCell=new _.CellData,this._workCell2=new _.CellData,this._rectangleRenderer=this.register(new c.MutableDisposable),this._glyphRenderer=this.register(new c.MutableDisposable),this._onChangeTextureAtlas=this.register(new l.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new l.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this.register(new l.EventEmitter),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onRequestRedraw=this.register(new l.EventEmitter),this.onRequestRedraw=this._onRequestRedraw.event,this._onContextLoss=this.register(new l.EventEmitter),this.onContextLoss=this._onContextLoss.event,this.register(this._themeService.onChangeColors((()=>this._handleColorChange()))),this._cellColorResolver=new r.CellColorResolver(this._terminal,this._optionsService,this._model.selection,this._decorationService,this._coreBrowserService,this._themeService),this._core=this._terminal._core,this._renderLayers=[new p.LinkRenderLayer(this._core.screenElement,2,this._terminal,this._core.linkifier,this._coreBrowserService,g,this._themeService)],this.dimensions=(0,h.createRenderDimensions)(),this._devicePixelRatio=this._coreBrowserService.dpr,this._updateDimensions(),this._updateCursorBlink(),this.register(g.onOptionChange((()=>this._handleOptionsChanged()))),this._canvas=this._coreBrowserService.mainDocument.createElement("canvas");const m={antialias:!1,depth:!1,preserveDrawingBuffer:C};if(this._gl=this._canvas.getContext("webgl2",m),!this._gl)throw new Error("WebGL2 not supported "+this._gl);this.register((0,s.addDisposableDomListener)(this._canvas,"webglcontextlost",(e=>{console.log("webglcontextlost event received"),e.preventDefault(),this._contextRestorationTimeout=setTimeout((()=>{this._contextRestorationTimeout=void 0,console.warn("webgl context not restored; firing onContextLoss"),this._onContextLoss.fire(e)}),3e3)}))),this.register((0,s.addDisposableDomListener)(this._canvas,"webglcontextrestored",(e=>{console.warn("webglcontextrestored event received"),clearTimeout(this._contextRestorationTimeout),this._contextRestorationTimeout=void 0,(0,o.removeTerminalFromCache)(this._terminal),this._initializeWebGLState(),this._requestRedrawViewport()}))),this._observerDisposable.value=(0,a.observeDevicePixelDimensions)(this._canvas,this._coreBrowserService.window,((e,t)=>this._setCanvasDevicePixelDimensions(e,t))),this.register(this._coreBrowserService.onWindowChange((e=>{this._observerDisposable.value=(0,a.observeDevicePixelDimensions)(this._canvas,e,((e,t)=>this._setCanvasDevicePixelDimensions(e,t)))}))),this._core.screenElement.appendChild(this._canvas),[this._rectangleRenderer.value,this._glyphRenderer.value]=this._initializeWebGLState(),this._isAttached=this._coreBrowserService.window.document.body.contains(this._core.screenElement),this.register((0,c.toDisposable)((()=>{for(const e of this._renderLayers)e.dispose();this._canvas.parentElement?.removeChild(this._canvas),(0,o.removeTerminalFromCache)(this._terminal)})))}get textureAtlas(){return this._charAtlas?.pages[0].canvas}_handleColorChange(){this._refreshCharAtlas(),this._clearModel(!0)}handleDevicePixelRatioChange(){this._devicePixelRatio!==this._coreBrowserService.dpr&&(this._devicePixelRatio=this._coreBrowserService.dpr,this.handleResize(this._terminal.cols,this._terminal.rows))}handleResize(e,t){this._updateDimensions(),this._model.resize(this._terminal.cols,this._terminal.rows);for(const i of this._renderLayers)i.resize(this._terminal,this.dimensions);this._canvas.width=this.dimensions.device.canvas.width,this._canvas.height=this.dimensions.device.canvas.height,this._canvas.style.width=`${this.dimensions.css.canvas.width}px`,this._canvas.style.height=`${this.dimensions.css.canvas.height}px`,this._core.screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._core.screenElement.style.height=`${this.dimensions.css.canvas.height}px`,this._rectangleRenderer.value?.setDimensions(this.dimensions),this._rectangleRenderer.value?.handleResize(),this._glyphRenderer.value?.setDimensions(this.dimensions),this._glyphRenderer.value?.handleResize(),this._refreshCharAtlas(),this._clearModel(!1)}handleCharSizeChanged(){this.handleResize(this._terminal.cols,this._terminal.rows)}handleBlur(){for(const e of this._renderLayers)e.handleBlur(this._terminal);this._cursorBlinkStateManager.value?.pause(),this._requestRedrawViewport()}handleFocus(){for(const e of this._renderLayers)e.handleFocus(this._terminal);this._cursorBlinkStateManager.value?.resume(),this._requestRedrawViewport()}handleSelectionChanged(e,t,i){for(const s of this._renderLayers)s.handleSelectionChanged(this._terminal,e,t,i);this._model.selection.update(this._core,e,t,i),this._requestRedrawViewport()}handleCursorMove(){for(const e of this._renderLayers)e.handleCursorMove(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation()}_handleOptionsChanged(){this._updateDimensions(),this._refreshCharAtlas(),this._updateCursorBlink()}_initializeWebGLState(){return this._rectangleRenderer.value=new v.RectangleRenderer(this._terminal,this._gl,this.dimensions,this._themeService),this._glyphRenderer.value=new g.GlyphRenderer(this._terminal,this._gl,this.dimensions,this._optionsService),this.handleCharSizeChanged(),[this._rectangleRenderer.value,this._glyphRenderer.value]}_refreshCharAtlas(){if(this.dimensions.device.char.width<=0&&this.dimensions.device.char.height<=0)return void(this._isAttached=!1);const e=(0,o.acquireTextureAtlas)(this._terminal,this._optionsService.rawOptions,this._themeService.colors,this.dimensions.device.cell.width,this.dimensions.device.cell.height,this.dimensions.device.char.width,this.dimensions.device.char.height,this._coreBrowserService.dpr);this._charAtlas!==e&&(this._onChangeTextureAtlas.fire(e.pages[0].canvas),this._charAtlasDisposable.value=(0,c.getDisposeArrayDisposable)([(0,l.forwardEvent)(e.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas),(0,l.forwardEvent)(e.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)])),this._charAtlas=e,this._charAtlas.warmUp(),this._glyphRenderer.value?.setAtlas(this._charAtlas)}_clearModel(e){this._model.clear(),e&&this._glyphRenderer.value?.clear()}clearTextureAtlas(){this._charAtlas?.clearTexture(),this._clearModel(!0),this._requestRedrawViewport()}clear(){this._clearModel(!0);for(const e of this._renderLayers)e.reset(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation(),this._updateCursorBlink()}registerCharacterJoiner(e){return-1}deregisterCharacterJoiner(e){return!1}renderRows(e,t){if(!this._isAttached){if(!(this._coreBrowserService.window.document.body.contains(this._core.screenElement)&&this._charSizeService.width&&this._charSizeService.height))return;this._updateDimensions(),this._refreshCharAtlas(),this._isAttached=!0}for(const i of this._renderLayers)i.handleGridChanged(this._terminal,e,t);this._glyphRenderer.value&&this._rectangleRenderer.value&&(this._glyphRenderer.value.beginFrame()?(this._clearModel(!0),this._updateModel(0,this._terminal.rows-1)):this._updateModel(e,t),this._rectangleRenderer.value.renderBackgrounds(),this._glyphRenderer.value.render(this._model),this._cursorBlinkStateManager.value&&!this._cursorBlinkStateManager.value.isCursorVisible||this._rectangleRenderer.value.renderCursor())}_updateCursorBlink(){this._terminal.options.cursorBlink?this._cursorBlinkStateManager.value=new n.CursorBlinkStateManager((()=>{this._requestRedrawCursor()}),this._coreBrowserService):this._cursorBlinkStateManager.clear(),this._requestRedrawCursor()}_updateModel(e,t){const i=this._core;let s,r,o,n,a,h,l,c,d,_,g,v,p,C,x=this._workCell;e=L(e,i.rows-1,0),t=L(t,i.rows-1,0);const w=this._terminal.buffer.active.baseY+this._terminal.buffer.active.cursorY,b=w-i.buffer.ydisp,M=Math.min(this._terminal.buffer.active.cursorX,i.cols-1);let R=-1;const y=this._coreService.isCursorInitialized&&!this._coreService.isCursorHidden&&(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible);this._model.cursor=void 0;let A=!1;for(r=e;r<=t;r++)for(o=r+i.buffer.ydisp,n=i.buffer.lines.get(o),this._model.lineLengths[r]=0,a=this._characterJoinerService.getJoinedCharacters(o),p=0;p0&&p===a[0][0]&&(h=!0,c=a.shift(),x=new m(x,n.translateToString(!0,c[0],c[1]),c[1]-c[0]),l=c[1]-1),d=x.getChars(),_=x.getCode(),v=(r*i.cols+p)*f.RENDER_MODEL_INDICIES_PER_CELL,this._cellColorResolver.resolve(x,p,o,this.dimensions.device.cell.width),y&&o===w&&(p===M&&(this._model.cursor={x:M,y:b,width:x.getWidth(),style:this._coreBrowserService.isFocused?i.options.cursorStyle||"block":i.options.cursorInactiveStyle,cursorWidth:i.options.cursorWidth,dpr:this._devicePixelRatio},R=M+x.getWidth()-1),p>=M&&p<=R&&(this._coreBrowserService.isFocused&&"block"===(i.options.cursorStyle||"block")||!1===this._coreBrowserService.isFocused&&"block"===i.options.cursorInactiveStyle)&&(this._cellColorResolver.result.fg=50331648|this._themeService.colors.cursorAccent.rgba>>8&16777215,this._cellColorResolver.result.bg=50331648|this._themeService.colors.cursor.rgba>>8&16777215)),_!==u.NULL_CELL_CODE&&(this._model.lineLengths[r]=p+1),(this._model.cells[v]!==_||this._model.cells[v+f.RENDER_MODEL_BG_OFFSET]!==this._cellColorResolver.result.bg||this._model.cells[v+f.RENDER_MODEL_FG_OFFSET]!==this._cellColorResolver.result.fg||this._model.cells[v+f.RENDER_MODEL_EXT_OFFSET]!==this._cellColorResolver.result.ext)&&(A=!0,d.length>1&&(_|=f.COMBINED_CHAR_BIT_MASK),this._model.cells[v]=_,this._model.cells[v+f.RENDER_MODEL_BG_OFFSET]=this._cellColorResolver.result.bg,this._model.cells[v+f.RENDER_MODEL_FG_OFFSET]=this._cellColorResolver.result.fg,this._model.cells[v+f.RENDER_MODEL_EXT_OFFSET]=this._cellColorResolver.result.ext,g=x.getWidth(),this._glyphRenderer.value.updateCell(p,r,_,this._cellColorResolver.result.bg,this._cellColorResolver.result.fg,this._cellColorResolver.result.ext,d,g,s),h))for(x=this._workCell,p++;p{Object.defineProperty(t,"__esModule",{value:!0}),t.GLTexture=t.expandFloat32Array=t.createShader=t.createProgram=t.PROJECTION_MATRIX=void 0;const s=i(374);function r(e,t,i){const r=(0,s.throwIfFalsy)(e.createShader(t));if(e.shaderSource(r,i),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS))return r;console.error(e.getShaderInfoLog(r)),e.deleteShader(r)}t.PROJECTION_MATRIX=new Float32Array([2,0,0,0,0,-2,0,0,0,0,1,0,-1,1,0,1]),t.createProgram=function(e,t,i){const o=(0,s.throwIfFalsy)(e.createProgram());if(e.attachShader(o,(0,s.throwIfFalsy)(r(e,e.VERTEX_SHADER,t))),e.attachShader(o,(0,s.throwIfFalsy)(r(e,e.FRAGMENT_SHADER,i))),e.linkProgram(o),e.getProgramParameter(o,e.LINK_STATUS))return o;console.error(e.getProgramInfoLog(o)),e.deleteProgram(o)},t.createShader=r,t.expandFloat32Array=function(e,t){const i=Math.min(2*e.length,t),s=new Float32Array(i);for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseRenderLayer=void 0;const s=i(627),r=i(237),o=i(374),n=i(859);class a extends n.Disposable{constructor(e,t,i,s,r,o,a,h){super(),this._container=t,this._alpha=r,this._coreBrowserService=o,this._optionsService=a,this._themeService=h,this._deviceCharWidth=0,this._deviceCharHeight=0,this._deviceCellWidth=0,this._deviceCellHeight=0,this._deviceCharLeft=0,this._deviceCharTop=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add(`xterm-${i}-layer`),this._canvas.style.zIndex=s.toString(),this._initCanvas(),this._container.appendChild(this._canvas),this.register(this._themeService.onChangeColors((t=>{this._refreshCharAtlas(e,t),this.reset(e)}))),this.register((0,n.toDisposable)((()=>{this._canvas.remove()})))}_initCanvas(){this._ctx=(0,o.throwIfFalsy)(this._canvas.getContext("2d",{alpha:this._alpha})),this._alpha||this._clearAll()}handleBlur(e){}handleFocus(e){}handleCursorMove(e){}handleGridChanged(e,t,i){}handleSelectionChanged(e,t,i,s=!1){}_setTransparency(e,t){if(t===this._alpha)return;const i=this._canvas;this._alpha=t,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,i),this._refreshCharAtlas(e,this._themeService.colors),this.handleGridChanged(e,0,e.rows-1)}_refreshCharAtlas(e,t){this._deviceCharWidth<=0&&this._deviceCharHeight<=0||(this._charAtlas=(0,s.acquireTextureAtlas)(e,this._optionsService.rawOptions,t,this._deviceCellWidth,this._deviceCellHeight,this._deviceCharWidth,this._deviceCharHeight,this._coreBrowserService.dpr),this._charAtlas.warmUp())}resize(e,t){this._deviceCellWidth=t.device.cell.width,this._deviceCellHeight=t.device.cell.height,this._deviceCharWidth=t.device.char.width,this._deviceCharHeight=t.device.char.height,this._deviceCharLeft=t.device.char.left,this._deviceCharTop=t.device.char.top,this._canvas.width=t.device.canvas.width,this._canvas.height=t.device.canvas.height,this._canvas.style.width=`${t.css.canvas.width}px`,this._canvas.style.height=`${t.css.canvas.height}px`,this._alpha||this._clearAll(),this._refreshCharAtlas(e,this._themeService.colors)}_fillBottomLineAtCells(e,t,i=1){this._ctx.fillRect(e*this._deviceCellWidth,(t+1)*this._deviceCellHeight-this._coreBrowserService.dpr-1,i*this._deviceCellWidth,this._coreBrowserService.dpr)}_clearAll(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))}_clearCells(e,t,i,s){this._alpha?this._ctx.clearRect(e*this._deviceCellWidth,t*this._deviceCellHeight,i*this._deviceCellWidth,s*this._deviceCellHeight):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(e*this._deviceCellWidth,t*this._deviceCellHeight,i*this._deviceCellWidth,s*this._deviceCellHeight))}_fillCharTrueColor(e,t,i,s){this._ctx.font=this._getFont(e,!1,!1),this._ctx.textBaseline=r.TEXT_BASELINE,this._clipCell(i,s,t.getWidth()),this._ctx.fillText(t.getChars(),i*this._deviceCellWidth+this._deviceCharLeft,s*this._deviceCellHeight+this._deviceCharTop+this._deviceCharHeight)}_clipCell(e,t,i){this._ctx.beginPath(),this._ctx.rect(e*this._deviceCellWidth,t*this._deviceCellHeight,i*this._deviceCellWidth,this._deviceCellHeight),this._ctx.clip()}_getFont(e,t,i){return`${i?"italic":""} ${t?e.options.fontWeightBold:e.options.fontWeight} ${e.options.fontSize*this._coreBrowserService.dpr}px ${e.options.fontFamily}`}}t.BaseRenderLayer=a},733:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkRenderLayer=void 0;const s=i(197),r=i(237),o=i(592);class n extends o.BaseRenderLayer{constructor(e,t,i,s,r,o,n){super(i,e,"link",t,!0,r,o,n),this.register(s.onShowLinkUnderline((e=>this._handleShowLinkUnderline(e)))),this.register(s.onHideLinkUnderline((e=>this._handleHideLinkUnderline(e))))}resize(e,t){super.resize(e,t),this._state=void 0}reset(e){this._clearCurrentLink()}_clearCurrentLink(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);const e=this._state.y2-this._state.y1-1;e>0&&this._clearCells(0,this._state.y1+1,this._state.cols,e),this._clearCells(0,this._state.y2,this._state.x2,1),this._state=void 0}}_handleShowLinkUnderline(e){if(e.fg===r.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._themeService.colors.background.css:void 0!==e.fg&&(0,s.is256Color)(e.fg)?this._ctx.fillStyle=this._themeService.colors.ansi[e.fg].css:this._ctx.fillStyle=this._themeService.colors.foreground.css,e.y1===e.y2)this._fillBottomLineAtCells(e.x1,e.y1,e.x2-e.x1);else{this._fillBottomLineAtCells(e.x1,e.y1,e.cols-e.x1);for(let t=e.y1+1;t{Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},274:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellColorResolver=void 0;const s=i(855),r=i(160),o=i(374);let n,a=0,h=0,l=!1,c=!1,d=!1,_=0;t.CellColorResolver=class{constructor(e,t,i,s,r,o){this._terminal=e,this._optionService=t,this._selectionRenderModel=i,this._decorationService=s,this._coreBrowserService=r,this._themeService=o,this.result={fg:0,bg:0,ext:0}}resolve(e,t,i,u){if(this.result.bg=e.bg,this.result.fg=e.fg,this.result.ext=268435456&e.bg?e.extended.ext:0,h=0,a=0,c=!1,l=!1,d=!1,n=this._themeService.colors,_=0,e.getCode()!==s.NULL_CELL_CODE&&4===e.extended.underlineStyle){const e=Math.max(1,Math.floor(this._optionService.rawOptions.fontSize*this._coreBrowserService.dpr/15));_=t*u%(2*Math.round(e))}if(this._decorationService.forEachDecorationAtCell(t,i,"bottom",(e=>{e.backgroundColorRGB&&(h=e.backgroundColorRGB.rgba>>8&16777215,c=!0),e.foregroundColorRGB&&(a=e.foregroundColorRGB.rgba>>8&16777215,l=!0)})),d=this._selectionRenderModel.isCellSelected(this._terminal,t,i),d){if(67108864&this.result.fg||0!=(50331648&this.result.bg)){if(67108864&this.result.fg)switch(50331648&this.result.fg){case 16777216:case 33554432:h=this._themeService.colors.ansi[255&this.result.fg].rgba;break;case 50331648:h=(16777215&this.result.fg)<<8|255;break;default:h=this._themeService.colors.foreground.rgba}else switch(50331648&this.result.bg){case 16777216:case 33554432:h=this._themeService.colors.ansi[255&this.result.bg].rgba;break;case 50331648:h=(16777215&this.result.bg)<<8|255}h=r.rgba.blend(h,4294967040&(this._coreBrowserService.isFocused?n.selectionBackgroundOpaque:n.selectionInactiveBackgroundOpaque).rgba|128)>>8&16777215}else h=(this._coreBrowserService.isFocused?n.selectionBackgroundOpaque:n.selectionInactiveBackgroundOpaque).rgba>>8&16777215;if(c=!0,n.selectionForeground&&(a=n.selectionForeground.rgba>>8&16777215,l=!0),(0,o.treatGlyphAsBackgroundColor)(e.getCode())){if(67108864&this.result.fg&&0==(50331648&this.result.bg))a=(this._coreBrowserService.isFocused?n.selectionBackgroundOpaque:n.selectionInactiveBackgroundOpaque).rgba>>8&16777215;else{if(67108864&this.result.fg)switch(50331648&this.result.bg){case 16777216:case 33554432:a=this._themeService.colors.ansi[255&this.result.bg].rgba;break;case 50331648:a=(16777215&this.result.bg)<<8|255}else switch(50331648&this.result.fg){case 16777216:case 33554432:a=this._themeService.colors.ansi[255&this.result.fg].rgba;break;case 50331648:a=(16777215&this.result.fg)<<8|255;break;default:a=this._themeService.colors.foreground.rgba}a=r.rgba.blend(a,4294967040&(this._coreBrowserService.isFocused?n.selectionBackgroundOpaque:n.selectionInactiveBackgroundOpaque).rgba|128)>>8&16777215}l=!0}}this._decorationService.forEachDecorationAtCell(t,i,"top",(e=>{e.backgroundColorRGB&&(h=e.backgroundColorRGB.rgba>>8&16777215,c=!0),e.foregroundColorRGB&&(a=e.foregroundColorRGB.rgba>>8&16777215,l=!0)})),c&&(h=d?-16777216&e.bg&-134217729|h|50331648:-16777216&e.bg|h|50331648),l&&(a=-16777216&e.fg&-67108865|a|50331648),67108864&this.result.fg&&(c&&!l&&(a=0==(50331648&this.result.bg)?-134217728&this.result.fg|16777215&n.background.rgba>>8|50331648:-134217728&this.result.fg|67108863&this.result.bg,l=!0),!c&&l&&(h=0==(50331648&this.result.fg)?-67108864&this.result.bg|16777215&n.foreground.rgba>>8|50331648:-67108864&this.result.bg|67108863&this.result.fg,c=!0)),n=void 0,this.result.bg=c?h:this.result.bg,this.result.fg=l?a:this.result.fg,this.result.ext&=536870911,this.result.ext|=_<<29&3758096384}}},627:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.removeTerminalFromCache=t.acquireTextureAtlas=void 0;const s=i(509),r=i(197),o=[];t.acquireTextureAtlas=function(e,t,i,n,a,h,l,c){const d=(0,r.generateConfig)(n,a,h,l,t,i,c);for(let s=0;s=0){if((0,r.configEquals)(t.config,d))return t.atlas;1===t.ownedBy.length?(t.atlas.dispose(),o.splice(s,1)):t.ownedBy.splice(i,1);break}}for(let s=0;s{Object.defineProperty(t,"__esModule",{value:!0}),t.is256Color=t.configEquals=t.generateConfig=void 0;const s=i(160);t.generateConfig=function(e,t,i,r,o,n,a){const h={foreground:n.foreground,background:n.background,cursor:s.NULL_COLOR,cursorAccent:s.NULL_COLOR,selectionForeground:s.NULL_COLOR,selectionBackgroundTransparent:s.NULL_COLOR,selectionBackgroundOpaque:s.NULL_COLOR,selectionInactiveBackgroundTransparent:s.NULL_COLOR,selectionInactiveBackgroundOpaque:s.NULL_COLOR,ansi:n.ansi.slice(),contrastCache:n.contrastCache,halfContrastCache:n.halfContrastCache};return{customGlyphs:o.customGlyphs,devicePixelRatio:a,letterSpacing:o.letterSpacing,lineHeight:o.lineHeight,deviceCellWidth:e,deviceCellHeight:t,deviceCharWidth:i,deviceCharHeight:r,fontFamily:o.fontFamily,fontSize:o.fontSize,fontWeight:o.fontWeight,fontWeightBold:o.fontWeightBold,allowTransparency:o.allowTransparency,drawBoldTextInBrightColors:o.drawBoldTextInBrightColors,minimumContrastRatio:o.minimumContrastRatio,colors:h}},t.configEquals=function(e,t){for(let i=0;i{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(399);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?"bottom":"ideographic"},457:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CursorBlinkStateManager=void 0;t.CursorBlinkStateManager=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this.isCursorVisible=!0,this._coreBrowserService.isFocused&&this._restartInterval()}get isPaused(){return!(this._blinkStartTimeout||this._blinkInterval)}dispose(){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}restartBlinkAnimation(){this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0}))))}_restartInterval(e=600){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout=this._coreBrowserService.window.setTimeout((()=>{if(this._animationTimeRestarted){const e=600-(Date.now()-this._animationTimeRestarted);if(this._animationTimeRestarted=void 0,e>0)return void this._restartInterval(e)}this.isCursorVisible=!1,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0})),this._blinkInterval=this._coreBrowserService.window.setInterval((()=>{if(this._animationTimeRestarted){const e=600-(Date.now()-this._animationTimeRestarted);return this._animationTimeRestarted=void 0,void this._restartInterval(e)}this.isCursorVisible=!this.isCursorVisible,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._renderCallback(),this._animationFrame=void 0}))}),600)}),e)}pause(){this.isCursorVisible=!0,this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}resume(){this.pause(),this._animationTimeRestarted=void 0,this._restartInterval(),this.restartBlinkAnimation()}}},860:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tryDrawCustomChar=t.powerlineDefinitions=t.boxDrawingDefinitions=t.blockElementDefinitions=void 0;const s=i(374);t.blockElementDefinitions={"▀":[{x:0,y:0,w:8,h:4}],"▁":[{x:0,y:7,w:8,h:1}],"▂":[{x:0,y:6,w:8,h:2}],"▃":[{x:0,y:5,w:8,h:3}],"▄":[{x:0,y:4,w:8,h:4}],"▅":[{x:0,y:3,w:8,h:5}],"▆":[{x:0,y:2,w:8,h:6}],"▇":[{x:0,y:1,w:8,h:7}],"█":[{x:0,y:0,w:8,h:8}],"▉":[{x:0,y:0,w:7,h:8}],"▊":[{x:0,y:0,w:6,h:8}],"▋":[{x:0,y:0,w:5,h:8}],"▌":[{x:0,y:0,w:4,h:8}],"▍":[{x:0,y:0,w:3,h:8}],"▎":[{x:0,y:0,w:2,h:8}],"▏":[{x:0,y:0,w:1,h:8}],"▐":[{x:4,y:0,w:4,h:8}],"▔":[{x:0,y:0,w:8,h:1}],"▕":[{x:7,y:0,w:1,h:8}],"▖":[{x:0,y:4,w:4,h:4}],"▗":[{x:4,y:4,w:4,h:4}],"▘":[{x:0,y:0,w:4,h:4}],"▙":[{x:0,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"▚":[{x:0,y:0,w:4,h:4},{x:4,y:4,w:4,h:4}],"▛":[{x:0,y:0,w:4,h:8},{x:4,y:0,w:4,h:4}],"▜":[{x:0,y:0,w:8,h:4},{x:4,y:0,w:4,h:8}],"▝":[{x:4,y:0,w:4,h:4}],"▞":[{x:4,y:0,w:4,h:4},{x:0,y:4,w:4,h:4}],"▟":[{x:4,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"🭰":[{x:1,y:0,w:1,h:8}],"🭱":[{x:2,y:0,w:1,h:8}],"🭲":[{x:3,y:0,w:1,h:8}],"🭳":[{x:4,y:0,w:1,h:8}],"🭴":[{x:5,y:0,w:1,h:8}],"🭵":[{x:6,y:0,w:1,h:8}],"🭶":[{x:0,y:1,w:8,h:1}],"🭷":[{x:0,y:2,w:8,h:1}],"🭸":[{x:0,y:3,w:8,h:1}],"🭹":[{x:0,y:4,w:8,h:1}],"🭺":[{x:0,y:5,w:8,h:1}],"🭻":[{x:0,y:6,w:8,h:1}],"🭼":[{x:0,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"🭽":[{x:0,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"🭾":[{x:7,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"🭿":[{x:7,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"🮀":[{x:0,y:0,w:8,h:1},{x:0,y:7,w:8,h:1}],"🮁":[{x:0,y:0,w:8,h:1},{x:0,y:2,w:8,h:1},{x:0,y:4,w:8,h:1},{x:0,y:7,w:8,h:1}],"🮂":[{x:0,y:0,w:8,h:2}],"🮃":[{x:0,y:0,w:8,h:3}],"🮄":[{x:0,y:0,w:8,h:5}],"🮅":[{x:0,y:0,w:8,h:6}],"🮆":[{x:0,y:0,w:8,h:7}],"🮇":[{x:6,y:0,w:2,h:8}],"🮈":[{x:5,y:0,w:3,h:8}],"🮉":[{x:3,y:0,w:5,h:8}],"🮊":[{x:2,y:0,w:6,h:8}],"🮋":[{x:1,y:0,w:7,h:8}],"🮕":[{x:0,y:0,w:2,h:2},{x:4,y:0,w:2,h:2},{x:2,y:2,w:2,h:2},{x:6,y:2,w:2,h:2},{x:0,y:4,w:2,h:2},{x:4,y:4,w:2,h:2},{x:2,y:6,w:2,h:2},{x:6,y:6,w:2,h:2}],"🮖":[{x:2,y:0,w:2,h:2},{x:6,y:0,w:2,h:2},{x:0,y:2,w:2,h:2},{x:4,y:2,w:2,h:2},{x:2,y:4,w:2,h:2},{x:6,y:4,w:2,h:2},{x:0,y:6,w:2,h:2},{x:4,y:6,w:2,h:2}],"🮗":[{x:0,y:2,w:8,h:2},{x:0,y:6,w:8,h:2}]};const r={"░":[[1,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],"▒":[[1,0],[0,0],[0,1],[0,0]],"▓":[[0,1],[1,1],[1,0],[1,1]]};t.boxDrawingDefinitions={"─":{1:"M0,.5 L1,.5"},"━":{3:"M0,.5 L1,.5"},"│":{1:"M.5,0 L.5,1"},"┃":{3:"M.5,0 L.5,1"},"┌":{1:"M0.5,1 L.5,.5 L1,.5"},"┏":{3:"M0.5,1 L.5,.5 L1,.5"},"┐":{1:"M0,.5 L.5,.5 L.5,1"},"┓":{3:"M0,.5 L.5,.5 L.5,1"},"└":{1:"M.5,0 L.5,.5 L1,.5"},"┗":{3:"M.5,0 L.5,.5 L1,.5"},"┘":{1:"M.5,0 L.5,.5 L0,.5"},"┛":{3:"M.5,0 L.5,.5 L0,.5"},"├":{1:"M.5,0 L.5,1 M.5,.5 L1,.5"},"┣":{3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"┤":{1:"M.5,0 L.5,1 M.5,.5 L0,.5"},"┫":{3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"┬":{1:"M0,.5 L1,.5 M.5,.5 L.5,1"},"┳":{3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"┴":{1:"M0,.5 L1,.5 M.5,.5 L.5,0"},"┻":{3:"M0,.5 L1,.5 M.5,.5 L.5,0"},"┼":{1:"M0,.5 L1,.5 M.5,0 L.5,1"},"╋":{3:"M0,.5 L1,.5 M.5,0 L.5,1"},"╴":{1:"M.5,.5 L0,.5"},"╸":{3:"M.5,.5 L0,.5"},"╵":{1:"M.5,.5 L.5,0"},"╹":{3:"M.5,.5 L.5,0"},"╶":{1:"M.5,.5 L1,.5"},"╺":{3:"M.5,.5 L1,.5"},"╷":{1:"M.5,.5 L.5,1"},"╻":{3:"M.5,.5 L.5,1"},"═":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"║":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╒":{1:(e,t)=>`M.5,1 L.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"╓":{1:(e,t)=>`M${.5-e},1 L${.5-e},.5 L1,.5 M${.5+e},.5 L${.5+e},1`},"╔":{1:(e,t)=>`M1,${.5-t} L${.5-e},${.5-t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"╕":{1:(e,t)=>`M0,${.5-t} L.5,${.5-t} L.5,1 M0,${.5+t} L.5,${.5+t}`},"╖":{1:(e,t)=>`M${.5+e},1 L${.5+e},.5 L0,.5 M${.5-e},.5 L${.5-e},1`},"╗":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5+e},${.5-t} L${.5+e},1`},"╘":{1:(e,t)=>`M.5,0 L.5,${.5+t} L1,${.5+t} M.5,${.5-t} L1,${.5-t}`},"╙":{1:(e,t)=>`M1,.5 L${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"╚":{1:(e,t)=>`M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0 M1,${.5+t} L${.5-e},${.5+t} L${.5-e},0`},"╛":{1:(e,t)=>`M0,${.5+t} L.5,${.5+t} L.5,0 M0,${.5-t} L.5,${.5-t}`},"╜":{1:(e,t)=>`M0,.5 L${.5+e},.5 L${.5+e},0 M${.5-e},.5 L${.5-e},0`},"╝":{1:(e,t)=>`M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M0,${.5+t} L${.5+e},${.5+t} L${.5+e},0`},"╞":{1:(e,t)=>`M.5,0 L.5,1 M.5,${.5-t} L1,${.5-t} M.5,${.5+t} L1,${.5+t}`},"╟":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1 M${.5+e},.5 L1,.5`},"╠":{1:(e,t)=>`M${.5-e},0 L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╡":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L.5,${.5-t} M0,${.5+t} L.5,${.5+t}`},"╢":{1:(e,t)=>`M0,.5 L${.5-e},.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╣":{1:(e,t)=>`M${.5+e},0 L${.5+e},1 M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0`},"╤":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t} M.5,${.5+t} L.5,1`},"╥":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},1 M${.5+e},.5 L${.5+e},1`},"╦":{1:(e,t)=>`M0,${.5-t} L1,${.5-t} M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1`},"╧":{1:(e,t)=>`M.5,0 L.5,${.5-t} M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"╨":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},.5 L${.5-e},0 M${.5+e},.5 L${.5+e},0`},"╩":{1:(e,t)=>`M0,${.5+t} L1,${.5+t} M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╪":{1:(e,t)=>`M.5,0 L.5,1 M0,${.5-t} L1,${.5-t} M0,${.5+t} L1,${.5+t}`},"╫":{1:(e,t)=>`M0,.5 L1,.5 M${.5-e},0 L${.5-e},1 M${.5+e},0 L${.5+e},1`},"╬":{1:(e,t)=>`M0,${.5+t} L${.5-e},${.5+t} L${.5-e},1 M1,${.5+t} L${.5+e},${.5+t} L${.5+e},1 M0,${.5-t} L${.5-e},${.5-t} L${.5-e},0 M1,${.5-t} L${.5+e},${.5-t} L${.5+e},0`},"╱":{1:"M1,0 L0,1"},"╲":{1:"M0,0 L1,1"},"╳":{1:"M1,0 L0,1 M0,0 L1,1"},"╼":{1:"M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"╽":{1:"M.5,.5 L.5,0",3:"M.5,.5 L.5,1"},"╾":{1:"M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"╿":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"┍":{1:"M.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"┎":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"┑":{1:"M.5,.5 L.5,1",3:"M.5,.5 L0,.5"},"┒":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"┕":{1:"M.5,.5 L.5,0",3:"M.5,.5 L1,.5"},"┖":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"┙":{1:"M.5,.5 L.5,0",3:"M.5,.5 L0,.5"},"┚":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,0"},"┝":{1:"M.5,0 L.5,1",3:"M.5,.5 L1,.5"},"┞":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"┟":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"┠":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1"},"┡":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"┢":{1:"M.5,.5 L.5,0",3:"M0.5,1 L.5,.5 L1,.5"},"┥":{1:"M.5,0 L.5,1",3:"M.5,.5 L0,.5"},"┦":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"┧":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"┨":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1"},"┩":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L0,.5"},"┪":{1:"M.5,.5 L.5,0",3:"M0,.5 L.5,.5 L.5,1"},"┭":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"┮":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"┯":{1:"M.5,.5 L.5,1",3:"M0,.5 L1,.5"},"┰":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"┱":{1:"M.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"┲":{1:"M.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"┵":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"┶":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"┷":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5"},"┸":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,0"},"┹":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"┺":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,.5 L1,.5"},"┽":{1:"M.5,0 L.5,1 M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"┾":{1:"M.5,0 L.5,1 M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"┿":{1:"M.5,0 L.5,1",3:"M0,.5 L1,.5"},"╀":{1:"M0,.5 L1,.5 M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"╁":{1:"M.5,.5 L.5,0 M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"╂":{1:"M0,.5 L1,.5",3:"M.5,0 L.5,1"},"╃":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"╄":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"╅":{1:"M.5,0 L.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"╆":{1:"M.5,0 L.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"╇":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0 M0,.5 L1,.5"},"╈":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"╉":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"╊":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"╌":{1:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"╍":{3:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"┄":{1:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"┅":{3:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"┈":{1:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"┉":{3:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"╎":{1:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"╏":{3:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"┆":{1:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"┇":{3:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"┊":{1:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"┋":{3:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"╭":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,1,.5`},"╮":{1:(e,t)=>`M.5,1 L.5,${.5+t/.15*.5} C.5,${.5+t/.15*.5},.5,.5,0,.5`},"╯":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,0,.5`},"╰":{1:(e,t)=>`M.5,0 L.5,${.5-t/.15*.5} C.5,${.5-t/.15*.5},.5,.5,1,.5`}},t.powerlineDefinitions={"":{d:"M0,0 L1,.5 L0,1",type:0,rightPadding:2},"":{d:"M-1,-.5 L1,.5 L-1,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M1,0 L0,.5 L1,1",type:0,leftPadding:2},"":{d:"M2,-.5 L0,.5 L2,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M0,0 L0,1 C0.552,1,1,0.776,1,.5 C1,0.224,0.552,0,0,0",type:0,rightPadding:1},"":{d:"M.2,1 C.422,1,.8,.826,.78,.5 C.8,.174,0.422,0,.2,0",type:1,rightPadding:1},"":{d:"M1,0 L1,1 C0.448,1,0,0.776,0,.5 C0,0.224,0.448,0,1,0",type:0,leftPadding:1},"":{d:"M.8,1 C0.578,1,0.2,.826,.22,.5 C0.2,0.174,0.578,0,0.8,0",type:1,leftPadding:1},"":{d:"M-.5,-.5 L1.5,1.5 L-.5,1.5",type:0},"":{d:"M-.5,-.5 L1.5,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M1.5,-.5 L-.5,1.5 L1.5,1.5",type:0},"":{d:"M1.5,-.5 L-.5,1.5 L-.5,-.5",type:0},"":{d:"M1.5,-.5 L-.5,1.5",type:1,leftPadding:1,rightPadding:1},"":{d:"M-.5,-.5 L1.5,1.5 L1.5,-.5",type:0}},t.powerlineDefinitions[""]=t.powerlineDefinitions[""],t.powerlineDefinitions[""]=t.powerlineDefinitions[""],t.tryDrawCustomChar=function(e,i,n,l,c,d,_,u){const g=t.blockElementDefinitions[i];if(g)return function(e,t,i,s,r,o){for(let n=0;n7&&parseInt(l.slice(7,9),16)||1;else{if(!l.startsWith("rgba"))throw new Error(`Unexpected fillStyle color format "${l}" when drawing pattern glyph`);[d,_,u,g]=l.substring(5,l.length-1).split(",").map((e=>parseFloat(e)))}for(let e=0;ee.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5]),L:(e,t)=>e.lineTo(t[0],t[1]),M:(e,t)=>e.moveTo(t[0],t[1])};function h(e,t,i,s,r,o,a,h=0,l=0){const c=e.map((e=>parseFloat(e)||parseInt(e)));if(c.length<2)throw new Error("Too few arguments for instruction");for(let d=0;d{Object.defineProperty(t,"__esModule",{value:!0}),t.observeDevicePixelDimensions=void 0;const s=i(859);t.observeDevicePixelDimensions=function(e,t,i){let r=new t.ResizeObserver((t=>{const s=t.find((t=>t.target===e));if(!s)return;if(!("devicePixelContentBoxSize"in s))return r?.disconnect(),void(r=void 0);const o=s.devicePixelContentBoxSize[0].inlineSize,n=s.devicePixelContentBoxSize[0].blockSize;o>0&&n>0&&i(o,n)}));try{r.observe(e,{box:["device-pixel-content-box"]})}catch{r.disconnect(),r=void 0}return(0,s.toDisposable)((()=>r?.disconnect()))}},374:(e,t)=>{function i(e){return 57508<=e&&e<=57558}function s(e){return e>=128512&&e<=128591||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=129280&&e<=129535||e>=127462&&e<=127487}Object.defineProperty(t,"__esModule",{value:!0}),t.computeNextVariantOffset=t.createRenderDimensions=t.treatGlyphAsBackgroundColor=t.allowRescaling=t.isEmoji=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error("value must not be falsy");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.isEmoji=s,t.allowRescaling=function(e,t,r,o){return 1===t&&r>Math.ceil(1.5*o)&&void 0!==e&&e>255&&!s(e)&&!i(e)&&!function(e){return 57344<=e&&e<=63743}(e)},t.treatGlyphAsBackgroundColor=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}},t.computeNextVariantOffset=function(e,t,i=0){return(e-(2*Math.round(t)-i))%(2*Math.round(t))}},296:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createSelectionRenderModel=void 0;class i{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,i,s=!1){if(this.selectionStart=t,this.selectionEnd=i,!t||!i||t[0]===i[0]&&t[1]===i[1])return void this.clear();const r=e.buffers.active.ydisp,o=t[1]-r,n=i[1]-r,a=Math.max(o,0),h=Math.min(n,e.rows-1);a>=e.rows||h<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=o,this.viewportEndRow=n,this.viewportCappedStartRow=a,this.viewportCappedEndRow=h,this.startCol=t[0],this.endCol=i[0])}isCellSelected(e,t,i){return!!this.hasSelection&&(i-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&i>=this.viewportCappedStartRow&&t=this.viewportCappedStartRow&&t>=this.endCol&&i<=this.viewportCappedEndRow:i>this.viewportStartRow&&i=this.startCol&&t=this.startCol)}}t.createSelectionRenderModel=function(){return new i}},509:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextureAtlas=void 0;const s=i(237),r=i(860),o=i(374),n=i(160),a=i(345),h=i(485),l=i(385),c=i(147),d=i(855),_={texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},offset:{x:0,y:0},size:{x:0,y:0},sizeClipSpace:{x:0,y:0}};let u;class g{get pages(){return this._pages}constructor(e,t,i){this._document=e,this._config=t,this._unicodeService=i,this._didWarmUp=!1,this._cacheMap=new h.FourKeyMap,this._cacheMapCombined=new h.FourKeyMap,this._pages=[],this._activePages=[],this._workBoundingBox={top:0,left:0,bottom:0,right:0},this._workAttributeData=new c.AttributeData,this._textureSize=512,this._onAddTextureAtlasCanvas=new a.EventEmitter,this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=new a.EventEmitter,this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._requestClearModel=!1,this._createNewPage(),this._tmpCanvas=p(e,4*this._config.deviceCellWidth+4,this._config.deviceCellHeight+4),this._tmpCtx=(0,o.throwIfFalsy)(this._tmpCanvas.getContext("2d",{alpha:this._config.allowTransparency,willReadFrequently:!0}))}dispose(){for(const e of this.pages)e.canvas.remove();this._onAddTextureAtlasCanvas.dispose()}warmUp(){this._didWarmUp||(this._doWarmUp(),this._didWarmUp=!0)}_doWarmUp(){const e=new l.IdleTaskQueue;for(let t=33;t<126;t++)e.enqueue((()=>{if(!this._cacheMap.get(t,d.DEFAULT_COLOR,d.DEFAULT_COLOR,d.DEFAULT_EXT)){const e=this._drawToCache(t,d.DEFAULT_COLOR,d.DEFAULT_COLOR,d.DEFAULT_EXT);this._cacheMap.set(t,d.DEFAULT_COLOR,d.DEFAULT_COLOR,d.DEFAULT_EXT,e)}}))}beginFrame(){return this._requestClearModel}clearTexture(){if(0!==this._pages[0].currentRow.x||0!==this._pages[0].currentRow.y){for(const e of this._pages)e.clear();this._cacheMap.clear(),this._cacheMapCombined.clear(),this._didWarmUp=!1}}_createNewPage(){if(g.maxAtlasPages&&this._pages.length>=Math.max(4,g.maxAtlasPages)){const e=this._pages.filter((e=>2*e.canvas.width<=(g.maxTextureSize||4096))).sort(((e,t)=>t.canvas.width!==e.canvas.width?t.canvas.width-e.canvas.width:t.percentageUsed-e.percentageUsed));let t=-1,i=0;for(let a=0;ae.glyphs[0].texturePage)).sort(((e,t)=>e>t?1:-1)),o=this.pages.length-s.length,n=this._mergePages(s,o);n.version++;for(let a=r.length-1;a>=0;a--)this._deletePage(r[a]);this.pages.push(n),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(n.canvas)}const e=new v(this._document,this._textureSize);return this._pages.push(e),this._activePages.push(e),this._onAddTextureAtlasCanvas.fire(e.canvas),e}_mergePages(e,t){const i=2*e[0].canvas.width,s=new v(this._document,i,e);for(const[r,o]of e.entries()){const e=r*o.canvas.width%i,n=Math.floor(r/2)*o.canvas.height;s.ctx.drawImage(o.canvas,e,n);for(const s of o.glyphs)s.texturePage=t,s.sizeClipSpace.x=s.size.x/i,s.sizeClipSpace.y=s.size.y/i,s.texturePosition.x+=e,s.texturePosition.y+=n,s.texturePositionClipSpace.x=s.texturePosition.x/i,s.texturePositionClipSpace.y=s.texturePosition.y/i;this._onRemoveTextureAtlasCanvas.fire(o.canvas);const a=this._activePages.indexOf(o);-1!==a&&this._activePages.splice(a,1)}return s}_deletePage(e){this._pages.splice(e,1);for(let t=e;t=this._config.colors.ansi.length)throw new Error("No color found for idx "+e);return this._config.colors.ansi[e]}_getBackgroundColor(e,t,i,s){if(this._config.allowTransparency)return n.NULL_COLOR;let r;switch(e){case 16777216:case 33554432:r=this._getColorFromAnsiIndex(t);break;case 50331648:const e=c.AttributeData.toColorRGB(t);r=n.channels.toColor(e[0],e[1],e[2]);break;default:r=i?n.color.opaque(this._config.colors.foreground):this._config.colors.background}return r}_getForegroundColor(e,t,i,r,o,a,h,l,d,_){const u=this._getMinimumContrastColor(e,t,i,r,o,a,h,d,l,_);if(u)return u;let g;switch(o){case 16777216:case 33554432:this._config.drawBoldTextInBrightColors&&d&&a<8&&(a+=8),g=this._getColorFromAnsiIndex(a);break;case 50331648:const e=c.AttributeData.toColorRGB(a);g=n.channels.toColor(e[0],e[1],e[2]);break;default:g=h?this._config.colors.background:this._config.colors.foreground}return this._config.allowTransparency&&(g=n.color.opaque(g)),l&&(g=n.color.multiplyOpacity(g,s.DIM_OPACITY)),g}_resolveBackgroundRgba(e,t,i){switch(e){case 16777216:case 33554432:return this._getColorFromAnsiIndex(t).rgba;case 50331648:return t<<8;default:return i?this._config.colors.foreground.rgba:this._config.colors.background.rgba}}_resolveForegroundRgba(e,t,i,s){switch(e){case 16777216:case 33554432:return this._config.drawBoldTextInBrightColors&&s&&t<8&&(t+=8),this._getColorFromAnsiIndex(t).rgba;case 50331648:return t<<8;default:return i?this._config.colors.background.rgba:this._config.colors.foreground.rgba}}_getMinimumContrastColor(e,t,i,s,r,o,a,h,l,c){if(1===this._config.minimumContrastRatio||c)return;const d=this._getContrastCache(l),_=d.getColor(e,s);if(void 0!==_)return _||void 0;const u=this._resolveBackgroundRgba(t,i,a),g=this._resolveForegroundRgba(r,o,a,h),v=n.rgba.ensureContrastRatio(u,g,this._config.minimumContrastRatio/(l?2:1));if(!v)return void d.setColor(e,s,null);const f=n.channels.toColor(v>>24&255,v>>16&255,v>>8&255);return d.setColor(e,s,f),f}_getContrastCache(e){return e?this._config.colors.halfContrastCache:this._config.colors.contrastCache}_drawToCache(e,t,i,n,a=!1){const h="number"==typeof e?String.fromCharCode(e):e,l=Math.min(this._config.deviceCellWidth*Math.max(h.length,2)+4,this._textureSize);this._tmpCanvas.width=e?2*e-l:e-l;!1==!(l>=e)||0===u?(this._tmpCtx.setLineDash([Math.round(e),Math.round(e)]),this._tmpCtx.moveTo(h+u,s),this._tmpCtx.lineTo(c,s)):(this._tmpCtx.setLineDash([Math.round(e),Math.round(e)]),this._tmpCtx.moveTo(h,s),this._tmpCtx.lineTo(h+u,s),this._tmpCtx.moveTo(h+u+e,s),this._tmpCtx.lineTo(c,s)),l=(0,o.computeNextVariantOffset)(c-h,e,l);break;case 5:const g=.6,v=.3,f=c-h,p=Math.floor(g*f),C=Math.floor(v*f),m=f-p-C;this._tmpCtx.setLineDash([p,C,m]),this._tmpCtx.moveTo(h,s),this._tmpCtx.lineTo(c,s);break;default:this._tmpCtx.moveTo(h,s),this._tmpCtx.lineTo(c,s)}this._tmpCtx.stroke(),this._tmpCtx.restore()}if(this._tmpCtx.restore(),!F&&this._config.fontSize>=12&&!this._config.allowTransparency&&" "!==h){this._tmpCtx.save(),this._tmpCtx.textBaseline="alphabetic";const t=this._tmpCtx.measureText(h);if(this._tmpCtx.restore(),"actualBoundingBoxDescent"in t&&t.actualBoundingBoxDescent>0){this._tmpCtx.save();const t=new Path2D;t.rect(i,s-Math.ceil(e/2),this._config.deviceCellWidth*P,n-s+Math.ceil(e/2)),this._tmpCtx.clip(t),this._tmpCtx.lineWidth=3*this._config.devicePixelRatio,this._tmpCtx.strokeStyle=y.css,this._tmpCtx.strokeText(h,B,B+this._config.deviceCharHeight),this._tmpCtx.restore()}}}if(x){const e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),t=e%2==1?.5:0;this._tmpCtx.lineWidth=e,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(B,B+t),this._tmpCtx.lineTo(B+this._config.deviceCharWidth*P,B+t),this._tmpCtx.stroke()}if(F||this._tmpCtx.fillText(h,B,B+this._config.deviceCharHeight),"_"===h&&!this._config.allowTransparency){let e=f(this._tmpCtx.getImageData(B,B,this._config.deviceCellWidth,this._config.deviceCellHeight),y,D,I);if(e)for(let t=1;t<=5&&(this._tmpCtx.save(),this._tmpCtx.fillStyle=y.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.restore(),this._tmpCtx.fillText(h,B,B+this._config.deviceCharHeight-t),e=f(this._tmpCtx.getImageData(B,B,this._config.deviceCellWidth,this._config.deviceCellHeight),y,D,I),e);t++);}if(L){const e=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/10)),t=this._tmpCtx.lineWidth%2==1?.5:0;this._tmpCtx.lineWidth=e,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(B,B+Math.floor(this._config.deviceCharHeight/2)-t),this._tmpCtx.lineTo(B+this._config.deviceCharWidth*P,B+Math.floor(this._config.deviceCharHeight/2)-t),this._tmpCtx.stroke()}this._tmpCtx.restore();const O=this._tmpCtx.getImageData(0,0,this._tmpCanvas.width,this._tmpCanvas.height);let k;if(k=this._config.allowTransparency?function(e){for(let t=0;t0)return!1;return!0}(O):f(O,y,D,I),k)return _;const $=this._findGlyphBoundingBox(O,this._workBoundingBox,l,T,F,B);let U,N;for(;;){if(0===this._activePages.length){const e=this._createNewPage();U=e,N=e.currentRow,N.height=$.size.y;break}U=this._activePages[this._activePages.length-1],N=U.currentRow;for(const e of this._activePages)$.size.y<=e.currentRow.height&&(U=e,N=e.currentRow);for(let e=this._activePages.length-1;e>=0;e--)for(const t of this._activePages[e].fixedRows)t.height<=N.height&&$.size.y<=t.height&&(U=this._activePages[e],N=t);if(N.y+$.size.y>=U.canvas.height||N.height>$.size.y+2){let e=!1;if(U.currentRow.y+U.currentRow.height+$.size.y>=U.canvas.height){let t;for(const e of this._activePages)if(e.currentRow.y+e.currentRow.height+$.size.y=g.maxAtlasPages&&N.y+$.size.y<=U.canvas.height&&N.height>=$.size.y&&N.x+$.size.x<=U.canvas.width)e=!0;else{const t=this._createNewPage();U=t,N=t.currentRow,N.height=$.size.y,e=!0}}e||(U.currentRow.height>0&&U.fixedRows.push(U.currentRow),N={x:0,y:U.currentRow.y+U.currentRow.height,height:$.size.y},U.fixedRows.push(N),U.currentRow={x:0,y:N.y+N.height,height:0})}if(N.x+$.size.x<=U.canvas.width)break;N===U.currentRow?(N.x=0,N.y+=N.height,N.height=0):U.fixedRows.splice(U.fixedRows.indexOf(N),1)}return $.texturePage=this._pages.indexOf(U),$.texturePosition.x=N.x,$.texturePosition.y=N.y,$.texturePositionClipSpace.x=N.x/U.canvas.width,$.texturePositionClipSpace.y=N.y/U.canvas.height,$.sizeClipSpace.x/=U.canvas.width,$.sizeClipSpace.y/=U.canvas.height,N.height=Math.max(N.height,$.size.y),N.x+=$.size.x,U.ctx.putImageData(O,$.texturePosition.x-this._workBoundingBox.left,$.texturePosition.y-this._workBoundingBox.top,this._workBoundingBox.left,this._workBoundingBox.top,$.size.x,$.size.y),U.addGlyph($),U.version++,$}_findGlyphBoundingBox(e,t,i,s,r,o){t.top=0;const n=s?this._config.deviceCellHeight:this._tmpCanvas.height,a=s?this._config.deviceCellWidth:i;let h=!1;for(let l=0;l=o;l--){for(let i=0;i=0;l--){for(let i=0;i>>24,o=t.rgba>>>16&255,n=t.rgba>>>8&255,a=i.rgba>>>24,h=i.rgba>>>16&255,l=i.rgba>>>8&255,c=Math.floor((Math.abs(r-a)+Math.abs(o-h)+Math.abs(n-l))/12);let d=!0;for(let _=0;_{Object.defineProperty(t,"__esModule",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let i=0,s=0,r=0,o=0;var n,a,h,l,c;function d(e){const t=e.toString(16);return t.length<2?"0"+t:t}function _(e,t){return e>>0},e.toColor=function(t,i,s,r){return{css:e.toCss(t,i,s,r),rgba:e.toRgba(t,i,s,r)}}}(n||(t.channels=n={})),function(e){function t(e,t){return o=Math.round(255*t),[i,s,r]=c.toChannels(e.rgba),{css:n.toCss(i,s,r,o),rgba:n.toRgba(i,s,r,o)}}e.blend=function(e,t){if(o=(255&t.rgba)/255,1===o)return{css:t.css,rgba:t.rgba};const a=t.rgba>>24&255,h=t.rgba>>16&255,l=t.rgba>>8&255,c=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return i=c+Math.round((a-c)*o),s=d+Math.round((h-d)*o),r=_+Math.round((l-_)*o),{css:n.toCss(i,s,r),rgba:n.toRgba(i,s,r)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=c.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return n.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[i,s,r]=c.toChannels(t),{css:n.toCss(i,s,r),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return o=255&e.rgba,t(e,o*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(a||(t.color=a={})),function(e){let t,a;try{const e=document.createElement("canvas");e.width=1,e.height=1;const i=e.getContext("2d",{willReadFrequently:!0});i&&(t=i,t.globalCompositeOperation="copy",a=t.createLinearGradient(0,0,1,1))}catch{}e.toColor=function(e){if(e.match(/#[\da-f]{3,8}/i))switch(e.length){case 4:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),n.toColor(i,s,r);case 5:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),o=parseInt(e.slice(4,5).repeat(2),16),n.toColor(i,s,r,o);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const h=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(h)return i=parseInt(h[1]),s=parseInt(h[2]),r=parseInt(h[3]),o=Math.round(255*(void 0===h[5]?1:parseFloat(h[5]))),n.toColor(i,s,r,o);if(!t||!a)throw new Error("css.toColor: Unsupported css format");if(t.fillStyle=a,t.fillStyle=e,"string"!=typeof t.fillStyle)throw new Error("css.toColor: Unsupported css format");if(t.fillRect(0,0,1,1),[i,s,r,o]=t.getImageData(0,0,1,1).data,255!==o)throw new Error("css.toColor: Unsupported css format");return{rgba:n.toRgba(i,s,r,o),css:e}}}(h||(t.css=h={})),function(e){function t(e,t,i){const s=e/255,r=t/255,o=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(l||(t.rgb=l={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,o=e>>8&255;let n=t>>24&255,a=t>>16&255,h=t>>8&255,c=_(l.relativeLuminance2(n,a,h),l.relativeLuminance2(s,r,o));for(;c0||a>0||h>0);)n-=Math.max(0,Math.ceil(.1*n)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),c=_(l.relativeLuminance2(n,a,h),l.relativeLuminance2(s,r,o));return(n<<24|a<<16|h<<8|255)>>>0}function a(e,t,i){const s=e>>24&255,r=e>>16&255,o=e>>8&255;let n=t>>24&255,a=t>>16&255,h=t>>8&255,c=_(l.relativeLuminance2(n,a,h),l.relativeLuminance2(s,r,o));for(;c>>0}e.blend=function(e,t){if(o=(255&t)/255,1===o)return t;const a=t>>24&255,h=t>>16&255,l=t>>8&255,c=e>>24&255,d=e>>16&255,_=e>>8&255;return i=c+Math.round((a-c)*o),s=d+Math.round((h-d)*o),r=_+Math.round((l-_)*o),n.toRgba(i,s,r)},e.ensureContrastRatio=function(e,i,s){const r=l.relativeLuminance(e>>8),o=l.relativeLuminance(i>>8);if(_(r,o)>8));if(n_(r,l.relativeLuminance(t>>8))?o:t}return o}const n=a(e,i,s),h=_(r,l.relativeLuminance(n>>8));if(h_(r,l.relativeLuminance(o>>8))?n:o}return n}},e.reduceLuminance=t,e.increaseLuminance=a,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}}(c||(t.rgba=c={})),t.toPaddedHex=d,t.contrastRatio=_},345:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;tt.fire(e)))},t.runAndSubscribe=function(e,t){return t(void 0),e((e=>t(e)))}},859:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},485:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,o){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,o)}get(e,t,i,s){return this._data.get(e,t)?.get(i,s)}clear(){this._data.clear()}}},399:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode="undefined"!=typeof s&&"title"in s;const i=t.isNode?"node":navigator.userAgent,r=t.isNode?"node":navigator.platform;t.isFirefox=i.includes("Firefox"),t.isLegacyEdge=i.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\/(\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(r),t.isIpad="iPad"===r,t.isIphone="iPhone"===r,t.isWindows=["Windows","Win16","Win32","WinCE"].includes(r),t.isLinux=r.indexOf("Linux")>=0,t.isChromeOS=/\bCrOS\b/.test(i)},385:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const s=i(399);class r{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._ir)return s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),void this._start();s=r}this.clear()}}class o extends r{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=o,t.IdleTaskQueue=!s.isNode&&"requestIdleCallback"in window?class extends r{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:o,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},147:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}t.AttributeData=i;class s{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){const e=(3758096384&this._ext)>>29;return e<0?4294967288^e:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},782:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;const s=i(133),r=i(855),o=i(147);class n extends o.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new o.ExtendedAttrs,this.combinedData=""}static fromCharData(e){const t=new n;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=n},855:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},133:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s="";for(let r=t;r65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let o=r;o=i)return this._interim=r,s;const n=e.charCodeAt(o);56320<=n&&n<=57343?t[s++]=1024*(r-55296)+n-56320+65536:(t[s++]=r,t[s++]=n)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,o,n,a=0,h=0,l=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let o,n=0;for(;(o=63&this.interim[++n])&&n<4;)r<<=6,r|=o;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,c=h-n;for(;l=i)return 0;if(o=e[l++],128!=(192&o)){l--,s=!0;break}this.interim[n++]=o,r<<=6,r|=63&o}s||(2===h?r<128?l--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const c=i-4;let d=l;for(;d=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&o,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(o=e[d++],128!=(192&o)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=o,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&o)<<6|63&n,h<65536||h>1114111)continue;t[a++]=h}}return a}}},776:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,o=arguments.length,n=o<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(n=(o<3?r(n):o>3?r(t,i,n):r(t,i))||n);return o>3&&n&&Object.defineProperty(t,i,n),n},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;const o=i(859),n=i(97),a={trace:n.LogLevelEnum.TRACE,debug:n.LogLevelEnum.DEBUG,info:n.LogLevelEnum.INFO,warn:n.LogLevelEnum.WARN,error:n.LogLevelEnum.ERROR,off:n.LogLevelEnum.OFF};let h,l=t.LogService=class extends o.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=n.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",(()=>this._updateLogLevel()))),h=this}_updateLogLevel(){this._logLevel=a[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;tJSON.stringify(e))).join(", ")})`);const t=s.apply(this,e);return h.trace(`GlyphRenderer#${s.name} return`,t),t}}},726:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;const i="di$target",s="di$dependencies";t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[s]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const r=function(e,t,o){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");!function(e,t,r){t[i]===t?t[s].push({id:e,index:r}):(t[s]=[{id:e,index:r}],t[i]=t)}(r,e,o)};return r.toString=()=>e,t.serviceRegistry.set(e,r),r}},97:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(726);var r;t.IBufferService=(0,s.createDecorator)("BufferService"),t.ICoreMouseService=(0,s.createDecorator)("CoreMouseService"),t.ICoreService=(0,s.createDecorator)("CoreService"),t.ICharsetService=(0,s.createDecorator)("CharsetService"),t.IInstantiationService=(0,s.createDecorator)("InstantiationService"),function(e){e[e.TRACE=0]="TRACE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.OFF=5]="OFF"}(r||(t.LogLevelEnum=r={})),t.ILogService=(0,s.createDecorator)("LogService"),t.IOptionsService=(0,s.createDecorator)("OptionsService"),t.IOscLinkService=(0,s.createDecorator)("OscLinkService"),t.IUnicodeService=(0,s.createDecorator)("UnicodeService"),t.IDecorationService=(0,s.createDecorator)("DecorationService")}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var o=t[s]={exports:{}};return e[s].call(o.exports,o,o.exports,i),o.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.WebglAddon=void 0;const t=i(345),s=i(859),o=i(399),n=i(666),a=i(776);class h extends s.Disposable{constructor(e){if(o.isSafari&&(0,o.getSafariVersion)()<16){const e={antialias:!1,depth:!1,preserveDrawingBuffer:!0};if(!document.createElement("canvas").getContext("webgl2",e))throw new Error("Webgl2 is only supported on Safari 16 and above")}super(),this._preserveDrawingBuffer=e,this._onChangeTextureAtlas=this.register(new t.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new t.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this.register(new t.EventEmitter),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onContextLoss=this.register(new t.EventEmitter),this.onContextLoss=this._onContextLoss.event}activate(e){const i=e._core;if(!e.element)return void this.register(i.onWillOpen((()=>this.activate(e))));this._terminal=e;const r=i.coreService,o=i.optionsService,h=i,l=h._renderService,c=h._characterJoinerService,d=h._charSizeService,_=h._coreBrowserService,u=h._decorationService,g=h._logService,v=h._themeService;(0,a.setTraceLogger)(g),this._renderer=this.register(new n.WebglRenderer(e,c,d,_,r,u,o,v,this._preserveDrawingBuffer)),this.register((0,t.forwardEvent)(this._renderer.onContextLoss,this._onContextLoss)),this.register((0,t.forwardEvent)(this._renderer.onChangeTextureAtlas,this._onChangeTextureAtlas)),this.register((0,t.forwardEvent)(this._renderer.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas)),this.register((0,t.forwardEvent)(this._renderer.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)),l.setRenderer(this._renderer),this.register((0,s.toDisposable)((()=>{const t=this._terminal._core._renderService;t.setRenderer(this._terminal._core._createRenderer()),t.handleResize(e.cols,e.rows)})))}get textureAtlas(){return this._renderer?.textureAtlas}clearTextureAtlas(){this._renderer?.clearTextureAtlas()}}e.WebglAddon=h})(),r})()))},65606:e=>{var t=e.exports={};var i;var s;function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){i=setTimeout}else{i=r}}catch(e){i=r}try{if(typeof clearTimeout==="function"){s=clearTimeout}else{s=o}}catch(e){s=o}})();function n(e){if(i===setTimeout){return setTimeout(e,0)}if((i===r||!i)&&setTimeout){i=setTimeout;return setTimeout(e,0)}try{return i(e,0)}catch(t){try{return i.call(null,e,0)}catch(t){return i.call(this,e,0)}}}function a(e){if(s===clearTimeout){return clearTimeout(e)}if((s===o||!s)&&clearTimeout){s=clearTimeout;return clearTimeout(e)}try{return s(e)}catch(t){try{return s.call(null,e)}catch(t){return s.call(this,e)}}}var h=[];var l=false;var c;var d=-1;function _(){if(!l||!c){return}l=false;if(c.length){h=c.concat(h)}else{d=-1}if(h.length){u()}}function u(){if(l){return}var e=n(_);l=true;var t=h.length;while(t){c=h;h=[];while(++d1){for(var i=1;i{var n=e(56110),o=e(9325);var a=n(o,"DataView");r.exports=a},21549:(r,t,e)=>{var n=e(22032),o=e(63862),a=e(66721),i=e(12749),u=e(35749);function s(r){var t=-1,e=r==null?0:r.length;this.clear();while(++t{var n=e(63702),o=e(70080),a=e(24739),i=e(48655),u=e(31175);function s(r){var t=-1,e=r==null?0:r.length;this.clear();while(++t{var n=e(56110),o=e(9325);var a=n(o,"Map");r.exports=a},53661:(r,t,e)=>{var n=e(63040),o=e(17670),a=e(90289),i=e(4509),u=e(72949);function s(r){var t=-1,e=r==null?0:r.length;this.clear();while(++t{var n=e(56110),o=e(9325);var a=n(o,"Promise");r.exports=a},76545:(r,t,e)=>{var n=e(56110),o=e(9325);var a=n(o,"Set");r.exports=a},37217:(r,t,e)=>{var n=e(80079),o=e(51420),a=e(90938),i=e(63605),u=e(29817),s=e(80945);function c(r){var t=this.__data__=new n(r);this.size=t.size}c.prototype.clear=o;c.prototype["delete"]=a;c.prototype.get=i;c.prototype.has=u;c.prototype.set=s;r.exports=c},51873:(r,t,e)=>{var n=e(9325);var o=n.Symbol;r.exports=o},37828:(r,t,e)=>{var n=e(9325);var o=n.Uint8Array;r.exports=o},28303:(r,t,e)=>{var n=e(56110),o=e(9325);var a=n(o,"WeakMap");r.exports=a},79770:r=>{function t(r,t){var e=-1,n=r==null?0:r.length,o=0,a=[];while(++e{var n=e(78096),o=e(72428),a=e(56449),i=e(3656),u=e(30361),s=e(37167);var c=Object.prototype;var p=c.hasOwnProperty;function v(r,t){var e=a(r),c=!e&&o(r),v=!e&&!c&&i(r),f=!e&&!c&&!v&&s(r),l=e||c||v||f,h=l?n(r.length,String):[],y=h.length;for(var _ in r){if((t||p.call(r,_))&&!(l&&(_=="length"||v&&(_=="offset"||_=="parent")||f&&(_=="buffer"||_=="byteLength"||_=="byteOffset")||u(_,y)))){h.push(_)}}return h}r.exports=v},34932:r=>{function t(r,t){var e=-1,n=r==null?0:r.length,o=Array(n);while(++e{function t(r,t){var e=-1,n=t.length,o=r.length;while(++e{var n=e(75288);function o(r,t){var e=r.length;while(e--){if(n(r[e][0],t)){return e}}return-1}r.exports=o},47422:(r,t,e)=>{var n=e(31769),o=e(77797);function a(r,t){t=n(t,r);var e=0,a=t.length;while(r!=null&&e{var n=e(14528),o=e(56449);function a(r,t,e){var a=t(r);return o(r)?a:n(a,e(r))}r.exports=a},72552:(r,t,e)=>{var n=e(51873),o=e(659),a=e(59350);var i="[object Null]",u="[object Undefined]";var s=n?n.toStringTag:undefined;function c(r){if(r==null){return r===undefined?u:i}return s&&s in Object(r)?o(r):a(r)}r.exports=c},27534:(r,t,e)=>{var n=e(72552),o=e(40346);var a="[object Arguments]";function i(r){return o(r)&&n(r)==a}r.exports=i},45083:(r,t,e)=>{var n=e(1882),o=e(87296),a=e(23805),i=e(47473);var u=/[\\^$.*+?()[\]{}|]/g;var s=/^\[object .+?Constructor\]$/;var c=Function.prototype,p=Object.prototype;var v=c.toString;var f=p.hasOwnProperty;var l=RegExp("^"+v.call(f).replace(u,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function h(r){if(!a(r)||o(r)){return false}var t=n(r)?l:s;return t.test(i(r))}r.exports=h},4901:(r,t,e)=>{var n=e(72552),o=e(30294),a=e(40346);var i="[object Arguments]",u="[object Array]",s="[object Boolean]",c="[object Date]",p="[object Error]",v="[object Function]",f="[object Map]",l="[object Number]",h="[object Object]",y="[object RegExp]",_="[object Set]",b="[object String]",x="[object WeakMap]";var d="[object ArrayBuffer]",j="[object DataView]",g="[object Float32Array]",w="[object Float64Array]",O="[object Int8Array]",m="[object Int16Array]",A="[object Int32Array]",z="[object Uint8Array]",S="[object Uint8ClampedArray]",P="[object Uint16Array]",k="[object Uint32Array]";var $={};$[g]=$[w]=$[O]=$[m]=$[A]=$[z]=$[S]=$[P]=$[k]=true;$[i]=$[u]=$[d]=$[s]=$[j]=$[c]=$[p]=$[v]=$[f]=$[l]=$[h]=$[y]=$[_]=$[b]=$[x]=false;function F(r){return a(r)&&o(r.length)&&!!$[n(r)]}r.exports=F},88984:(r,t,e)=>{var n=e(55527),o=e(3650);var a=Object.prototype;var i=a.hasOwnProperty;function u(r){if(!n(r)){return o(r)}var t=[];for(var e in Object(r)){if(i.call(r,e)&&e!="constructor"){t.push(e)}}return t}r.exports=u},78096:r=>{function t(r,t){var e=-1,n=Array(r);while(++e{var n=e(51873),o=e(34932),a=e(56449),i=e(44394);var u=1/0;var s=n?n.prototype:undefined,c=s?s.toString:undefined;function p(r){if(typeof r=="string"){return r}if(a(r)){return o(r,p)+""}if(i(r)){return c?c.call(r):""}var t=r+"";return t=="0"&&1/r==-u?"-0":t}r.exports=p},27301:r=>{function t(r){return function(t){return r(t)}}r.exports=t},31769:(r,t,e)=>{var n=e(56449),o=e(28586),a=e(61802),i=e(13222);function u(r,t){if(n(r)){return r}return o(r,t)?[r]:a(i(r))}r.exports=u},55481:(r,t,e)=>{var n=e(9325);var o=n["__core-js_shared__"];r.exports=o},34840:(r,t,e)=>{var n=typeof e.g=="object"&&e.g&&e.g.Object===Object&&e.g;r.exports=n},50002:(r,t,e)=>{var n=e(82199),o=e(4664),a=e(95950);function i(r){return n(r,a,o)}r.exports=i},12651:(r,t,e)=>{var n=e(74218);function o(r,t){var e=r.__data__;return n(t)?e[typeof t=="string"?"string":"hash"]:e.map}r.exports=o},56110:(r,t,e)=>{var n=e(45083),o=e(10392);function a(r,t){var e=o(r,t);return n(e)?e:undefined}r.exports=a},659:(r,t,e)=>{var n=e(51873);var o=Object.prototype;var a=o.hasOwnProperty;var i=o.toString;var u=n?n.toStringTag:undefined;function s(r){var t=a.call(r,u),e=r[u];try{r[u]=undefined;var n=true}catch(s){}var o=i.call(r);if(n){if(t){r[u]=e}else{delete r[u]}}return o}r.exports=s},4664:(r,t,e)=>{var n=e(79770),o=e(63345);var a=Object.prototype;var i=a.propertyIsEnumerable;var u=Object.getOwnPropertySymbols;var s=!u?o:function(r){if(r==null){return[]}r=Object(r);return n(u(r),(function(t){return i.call(r,t)}))};r.exports=s},5861:(r,t,e)=>{var n=e(55580),o=e(68223),a=e(32804),i=e(76545),u=e(28303),s=e(72552),c=e(47473);var p="[object Map]",v="[object Object]",f="[object Promise]",l="[object Set]",h="[object WeakMap]";var y="[object DataView]";var _=c(n),b=c(o),x=c(a),d=c(i),j=c(u);var g=s;if(n&&g(new n(new ArrayBuffer(1)))!=y||o&&g(new o)!=p||a&&g(a.resolve())!=f||i&&g(new i)!=l||u&&g(new u)!=h){g=function(r){var t=s(r),e=t==v?r.constructor:undefined,n=e?c(e):"";if(n){switch(n){case _:return y;case b:return p;case x:return f;case d:return l;case j:return h}}return t}}r.exports=g},10392:r=>{function t(r,t){return r==null?undefined:r[t]}r.exports=t},22032:(r,t,e)=>{var n=e(81042);function o(){this.__data__=n?n(null):{};this.size=0}r.exports=o},63862:r=>{function t(r){var t=this.has(r)&&delete this.__data__[r];this.size-=t?1:0;return t}r.exports=t},66721:(r,t,e)=>{var n=e(81042);var o="__lodash_hash_undefined__";var a=Object.prototype;var i=a.hasOwnProperty;function u(r){var t=this.__data__;if(n){var e=t[r];return e===o?undefined:e}return i.call(t,r)?t[r]:undefined}r.exports=u},12749:(r,t,e)=>{var n=e(81042);var o=Object.prototype;var a=o.hasOwnProperty;function i(r){var t=this.__data__;return n?t[r]!==undefined:a.call(t,r)}r.exports=i},35749:(r,t,e)=>{var n=e(81042);var o="__lodash_hash_undefined__";function a(r,t){var e=this.__data__;this.size+=this.has(r)?0:1;e[r]=n&&t===undefined?o:t;return this}r.exports=a},30361:r=>{var t=9007199254740991;var e=/^(?:0|[1-9]\d*)$/;function n(r,n){var o=typeof r;n=n==null?t:n;return!!n&&(o=="number"||o!="symbol"&&e.test(r))&&(r>-1&&r%1==0&&r{var n=e(56449),o=e(44394);var a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;function u(r,t){if(n(r)){return false}var e=typeof r;if(e=="number"||e=="symbol"||e=="boolean"||r==null||o(r)){return true}return i.test(r)||!a.test(r)||t!=null&&r in Object(t)}r.exports=u},74218:r=>{function t(r){var t=typeof r;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?r!=="__proto__":r===null}r.exports=t},87296:(r,t,e)=>{var n=e(55481);var o=function(){var r=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function a(r){return!!o&&o in r}r.exports=a},55527:r=>{var t=Object.prototype;function e(r){var e=r&&r.constructor,n=typeof e=="function"&&e.prototype||t;return r===n}r.exports=e},63702:r=>{function t(){this.__data__=[];this.size=0}r.exports=t},70080:(r,t,e)=>{var n=e(26025);var o=Array.prototype;var a=o.splice;function i(r){var t=this.__data__,e=n(t,r);if(e<0){return false}var o=t.length-1;if(e==o){t.pop()}else{a.call(t,e,1)}--this.size;return true}r.exports=i},24739:(r,t,e)=>{var n=e(26025);function o(r){var t=this.__data__,e=n(t,r);return e<0?undefined:t[e][1]}r.exports=o},48655:(r,t,e)=>{var n=e(26025);function o(r){return n(this.__data__,r)>-1}r.exports=o},31175:(r,t,e)=>{var n=e(26025);function o(r,t){var e=this.__data__,o=n(e,r);if(o<0){++this.size;e.push([r,t])}else{e[o][1]=t}return this}r.exports=o},63040:(r,t,e)=>{var n=e(21549),o=e(80079),a=e(68223);function i(){this.size=0;this.__data__={hash:new n,map:new(a||o),string:new n}}r.exports=i},17670:(r,t,e)=>{var n=e(12651);function o(r){var t=n(this,r)["delete"](r);this.size-=t?1:0;return t}r.exports=o},90289:(r,t,e)=>{var n=e(12651);function o(r){return n(this,r).get(r)}r.exports=o},4509:(r,t,e)=>{var n=e(12651);function o(r){return n(this,r).has(r)}r.exports=o},72949:(r,t,e)=>{var n=e(12651);function o(r,t){var e=n(this,r),o=e.size;e.set(r,t);this.size+=e.size==o?0:1;return this}r.exports=o},62224:(r,t,e)=>{var n=e(50104);var o=500;function a(r){var t=n(r,(function(r){if(e.size===o){e.clear()}return r}));var e=t.cache;return t}r.exports=a},81042:(r,t,e)=>{var n=e(56110);var o=n(Object,"create");r.exports=o},3650:(r,t,e)=>{var n=e(74335);var o=n(Object.keys,Object);r.exports=o},86009:(r,t,e)=>{r=e.nmd(r);var n=e(34840);var o=true&&t&&!t.nodeType&&t;var a=o&&"object"=="object"&&r&&!r.nodeType&&r;var i=a&&a.exports===o;var u=i&&n.process;var s=function(){try{var r=a&&a.require&&a.require("util").types;if(r){return r}return u&&u.binding&&u.binding("util")}catch(t){}}();r.exports=s},59350:r=>{var t=Object.prototype;var e=t.toString;function n(r){return e.call(r)}r.exports=n},74335:r=>{function t(r,t){return function(e){return r(t(e))}}r.exports=t},9325:(r,t,e)=>{var n=e(34840);var o=typeof self=="object"&&self&&self.Object===Object&&self;var a=n||o||Function("return this")();r.exports=a},51420:(r,t,e)=>{var n=e(80079);function o(){this.__data__=new n;this.size=0}r.exports=o},90938:r=>{function t(r){var t=this.__data__,e=t["delete"](r);this.size=t.size;return e}r.exports=t},63605:r=>{function t(r){return this.__data__.get(r)}r.exports=t},29817:r=>{function t(r){return this.__data__.has(r)}r.exports=t},80945:(r,t,e)=>{var n=e(80079),o=e(68223),a=e(53661);var i=200;function u(r,t){var e=this.__data__;if(e instanceof n){var u=e.__data__;if(!o||u.length{var n=e(62224);var o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;var a=/\\(\\)?/g;var i=n((function(r){var t=[];if(r.charCodeAt(0)===46){t.push("")}r.replace(o,(function(r,e,n,o){t.push(n?o.replace(a,"$1"):e||r)}));return t}));r.exports=i},77797:(r,t,e)=>{var n=e(44394);var o=1/0;function a(r){if(typeof r=="string"||n(r)){return r}var t=r+"";return t=="0"&&1/r==-o?"-0":t}r.exports=a},47473:r=>{var t=Function.prototype;var e=t.toString;function n(r){if(r!=null){try{return e.call(r)}catch(t){}try{return r+""}catch(t){}}return""}r.exports=n},75288:r=>{function t(r,t){return r===t||r!==r&&t!==t}r.exports=t},58156:(r,t,e)=>{var n=e(47422);function o(r,t,e){var o=r==null?undefined:n(r,t);return o===undefined?e:o}r.exports=o},72428:(r,t,e)=>{var n=e(27534),o=e(40346);var a=Object.prototype;var i=a.hasOwnProperty;var u=a.propertyIsEnumerable;var s=n(function(){return arguments}())?n:function(r){return o(r)&&i.call(r,"callee")&&!u.call(r,"callee")};r.exports=s},56449:r=>{var t=Array.isArray;r.exports=t},64894:(r,t,e)=>{var n=e(1882),o=e(30294);function a(r){return r!=null&&o(r.length)&&!n(r)}r.exports=a},3656:(r,t,e)=>{r=e.nmd(r);var n=e(9325),o=e(89935);var a=true&&t&&!t.nodeType&&t;var i=a&&"object"=="object"&&r&&!r.nodeType&&r;var u=i&&i.exports===a;var s=u?n.Buffer:undefined;var c=s?s.isBuffer:undefined;var p=c||o;r.exports=p},1882:(r,t,e)=>{var n=e(72552),o=e(23805);var a="[object AsyncFunction]",i="[object Function]",u="[object GeneratorFunction]",s="[object Proxy]";function c(r){if(!o(r)){return false}var t=n(r);return t==i||t==u||t==a||t==s}r.exports=c},30294:r=>{var t=9007199254740991;function e(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=t}r.exports=e},23805:r=>{function t(r){var t=typeof r;return r!=null&&(t=="object"||t=="function")}r.exports=t},40346:r=>{function t(r){return r!=null&&typeof r=="object"}r.exports=t},44394:(r,t,e)=>{var n=e(72552),o=e(40346);var a="[object Symbol]";function i(r){return typeof r=="symbol"||o(r)&&n(r)==a}r.exports=i},37167:(r,t,e)=>{var n=e(4901),o=e(27301),a=e(86009);var i=a&&a.isTypedArray;var u=i?o(i):n;r.exports=u},95950:(r,t,e)=>{var n=e(70695),o=e(88984),a=e(64894);function i(r){return a(r)?n(r):o(r)}r.exports=i},50104:(r,t,e)=>{var n=e(53661);var o="Expected a function";function a(r,t){if(typeof r!="function"||t!=null&&typeof t!="function"){throw new TypeError(o)}var e=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=e.cache;if(a.has(o)){return a.get(o)}var i=r.apply(this,n);e.cache=a.set(o,i)||a;return i};e.cache=new(a.Cache||n);return e}a.Cache=n;r.exports=a},63345:r=>{function t(){return[]}r.exports=t},89935:r=>{function t(){return false}r.exports=t},13222:(r,t,e)=>{var n=e(77556);function o(r){return r==null?"":n(r)}r.exports=o}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3832.c6026c483bb46cc8e599.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3832.c6026c483bb46cc8e599.js deleted file mode 100644 index 620a545f88ce73a120e75ded6f77e40a59799250..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3832.c6026c483bb46cc8e599.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3832],{83832:(e,t,n)=>{n.r(t);n.d(t,{modelica:()=>v});function r(e){var t={},n=e.split(" ");for(var r=0;r+\-\/^\[\]]/;var u=/(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/;var c=/[0-9]/;var f=/[_a-zA-Z]/;function p(e,t){e.skipToEnd();t.tokenize=null;return"comment"}function k(e,t){var n=false,r;while(r=e.next()){if(n&&r=="/"){t.tokenize=null;break}n=r=="*"}return"comment"}function m(e,t){var n=false,r;while((r=e.next())!=null){if(r=='"'&&!n){t.tokenize=null;t.sol=false;break}n=!n&&r=="\\"}return"string"}function d(e,t){e.eatWhile(c);while(e.eat(c)||e.eat(f)){}var n=e.current();if(t.sol&&(n=="package"||n=="model"||n=="when"||n=="connector"))t.level++;else if(t.sol&&n=="end"&&t.level>0)t.level--;t.tokenize=null;t.sol=false;if(i.propertyIsEnumerable(n))return"keyword";else if(l.propertyIsEnumerable(n))return"builtin";else if(a.propertyIsEnumerable(n))return"atom";else return"variable"}function h(e,t){while(e.eat(/[^']/)){}t.tokenize=null;t.sol=false;if(e.eat("'"))return"variable";else return"error"}function b(e,t){e.eatWhile(c);if(e.eat(".")){e.eatWhile(c)}if(e.eat("e")||e.eat("E")){if(!e.eat("-"))e.eat("+");e.eatWhile(c)}t.tokenize=null;t.sol=false;return"number"}const v={name:"modelica",startState:function(){return{tokenize:null,level:0,sol:true}},token:function(e,t){if(t.tokenize!=null){return t.tokenize(e,t)}if(e.sol()){t.sol=true}if(e.eatSpace()){t.tokenize=null;return null}var n=e.next();if(n=="/"&&e.eat("/")){t.tokenize=p}else if(n=="/"&&e.eat("*")){t.tokenize=k}else if(u.test(n+e.peek())){e.next();t.tokenize=null;return"operator"}else if(s.test(n)){t.tokenize=null;return"operator"}else if(f.test(n)){t.tokenize=d}else if(n=="'"&&e.peek()&&e.peek()!="'"){t.tokenize=h}else if(n=='"'){t.tokenize=m}else if(c.test(n)){t.tokenize=b}else{t.tokenize=null;return"error"}return t.tokenize(e,t)},indent:function(e,t,n){if(e.tokenize!=null)return null;var r=e.level;if(/(algorithm)/.test(t))r--;if(/(equation)/.test(t))r--;if(/(initial algorithm)/.test(t))r--;if(/(initial equation)/.test(t))r--;if(/(end)/.test(t))r--;if(r>0)return n.unit*r;else return 0},languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:o}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3974.79f68bca9a02c92dab5e.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3974.79f68bca9a02c92dab5e.js deleted file mode 100644 index d3dd3190b16c548623ffc9420371e412ef4abd8f..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/3974.79f68bca9a02c92dab5e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[3974],{93974:(e,t,n)=>{n.r(t);n.d(t,{clojure:()=>g});var r=["false","nil","true"];var a=[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"];var s=["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"];var o=["->","->>","as->","binding","bound-fn","case","catch","comment","cond","cond->","cond->>","condp","def","definterface","defmethod","defn","defmacro","defprotocol","defrecord","defstruct","deftype","do","doseq","dotimes","doto","extend","extend-protocol","extend-type","fn","for","future","if","if-let","if-not","if-some","let","letfn","locking","loop","ns","proxy","reify","struct-map","some->","some->>","try","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn"];var i=v(r);var c=v(a);var d=v(s);var l=v(o);var u=/^(?:[\\\[\]\s"(),;@^`{}~]|$)/;var p=/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/;var f=/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/;var m=/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/;function h(e,t){if(e.eatSpace()||e.eat(","))return["space",null];if(e.match(p))return[null,"number"];if(e.match(f))return[null,"string.special"];if(e.eat(/^"/))return(t.tokenize=b)(e,t);if(e.eat(/^[(\[{]/))return["open","bracket"];if(e.eat(/^[)\]}]/))return["close","bracket"];if(e.eat(/^;/)){e.skipToEnd();return["space","comment"]}if(e.eat(/^[#'@^`~]/))return[null,"meta"];var n=e.match(m);var r=n&&n[0];if(!r){e.next();e.eatWhile((function(e){return!k(e,u)}));return[null,"error"]}if(r==="comment"&&t.lastToken==="(")return(t.tokenize=y)(e,t);if(k(r,i)||r.charAt(0)===":")return["symbol","atom"];if(k(r,c)||k(r,d))return["symbol","keyword"];if(t.lastToken==="(")return["symbol","builtin"];return["symbol","variable"]}function b(e,t){var n=false,r;while(r=e.next()){if(r==='"'&&!n){t.tokenize=h;break}n=!n&&r==="\\"}return[null,"string"]}function y(e,t){var n=1;var r;while(r=e.next()){if(r===")")n--;if(r==="(")n++;if(n===0){e.backUp(1);t.tokenize=h;break}}return["space","comment"]}function v(e){var t={};for(var n=0;n{e.d(t,{$D:()=>w,$G:()=>H,$P:()=>dn,AU:()=>z,B:()=>bn,B2:()=>F,BS:()=>q,Cc:()=>_n,D_:()=>g,EV:()=>kn,Eb:()=>On,Et:()=>wn,G4:()=>Sn,Gv:()=>k,KH:()=>T,Kg:()=>En,Lm:()=>mn,Ln:()=>An,M1:()=>Cn,N6:()=>u,NV:()=>M,P$:()=>j,PK:()=>yn,R2:()=>E,Ro:()=>S,SW:()=>Z,Tn:()=>J,UD:()=>nn,VC:()=>P,V_:()=>tn,X$:()=>cn,Xx:()=>fn,YO:()=>W,ZZ:()=>a,ay:()=>Nn,bX:()=>pn,co:()=>U,cy:()=>v,dI:()=>Vn,dY:()=>on,eV:()=>zn,gd:()=>jn,h1:()=>xn,id:()=>h,io:()=>D,iv:()=>s,lL:()=>X,mQ:()=>an,me:()=>m,n:()=>sn,nG:()=>gn,nS:()=>o,oV:()=>Y,r$:()=>Rn,rt:()=>Bn,sY:()=>r,se:()=>R,sg:()=>ln,ux:()=>Dn,vF:()=>_,vN:()=>y,v_:()=>p,vu:()=>I,xH:()=>b,xZ:()=>Mn,xv:()=>Gn,y:()=>O,z3:()=>f,zy:()=>K});function r(n,t,e){n.fields=t||[];n.fname=e;return n}function u(n){return n==null?null:n.fname}function o(n){return n==null?null:n.fields}function i(n){return n.length===1?l(n[0]):c(n)}const l=n=>function(t){return t[n]};const c=n=>{const t=n.length;return function(e){for(let r=0;ri){s()}else{i=l+1}}else if(c==="["){if(l>i)s();u=i=l+1}else if(c==="]"){if(!u)f("Access path missing open bracket: "+n);if(u>0)s();u=0;i=l+1}}if(u)f("Access path missing closing bracket: "+n);if(r)f("Access path missing closing quote: "+n);if(l>i){l++;s()}return t}function a(n,t,e){const u=s(n);n=u.length===1?u[0]:n;return r((e&&e.get||i)(u),[n],t||n)}const h=a("id");const g=r((n=>n),[],"identity");const p=r((()=>0),[],"zero");const b=r((()=>1),[],"one");const y=r((()=>true),[],"true");const m=r((()=>false),[],"false");function d(n,t,e){const r=[t].concat([].slice.call(e));console[n].apply(console,r)}const M=0;const w=1;const j=2;const E=3;const O=4;function _(n,t){let e=arguments.length>2&&arguments[2]!==undefined?arguments[2]:d;let r=n||M;return{level(n){if(arguments.length){r=+n;return this}else{return r}},error(){if(r>=w)e(t||"error","ERROR",arguments);return this},warn(){if(r>=j)e(t||"warn","WARN",arguments);return this},info(){if(r>=E)e(t||"log","INFO",arguments);return this},debug(){if(r>=O)e(t||"log","DEBUG",arguments);return this}}}var v=Array.isArray;function k(n){return n===Object(n)}const x=n=>n!=="__proto__";function D(){for(var n=arguments.length,t=new Array(n),e=0;e{for(const e in t){if(e==="signals"){n.signals=A(n.signals,t.signals)}else{const r=e==="legend"?{layout:1}:e==="style"?true:null;z(n,e,t[e],r)}}return n}),{})}function z(n,t,e,r){if(!x(t))return;let u,o;if(k(e)&&!v(e)){o=k(n[t])?n[t]:n[t]={};for(u in e){if(r&&(r===true||r[u])){z(o,u,e[u])}else if(x(u)){o[u]=e[u]}}}else{n[t]=e}}function A(n,t){if(n==null)return t;const e={},r=[];function u(n){if(!e[n.name]){e[n.name]=1;r.push(n)}}t.forEach(u);n.forEach(u);return r}function R(n){return n[n.length-1]}function S(n){return n==null||n===""?null:+n}const $=n=>t=>n*Math.exp(t);const N=n=>t=>Math.log(n*t);const V=n=>t=>Math.sign(t)*Math.log1p(Math.abs(t/n));const C=n=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*n;const G=n=>t=>t<0?-Math.pow(-t,n):Math.pow(t,n);function B(n,t,e,r){const u=e(n[0]),o=e(R(n)),i=(o-u)*t;return[r(u-i),r(o-i)]}function P(n,t){return B(n,t,S,g)}function T(n,t){var e=Math.sign(n[0]);return B(n,t,N(e),$(e))}function U(n,t,e){return B(n,t,G(e),G(1/e))}function K(n,t,e){return B(n,t,V(e),C(e))}function L(n,t,e,r,u){const o=r(n[0]),i=r(R(n)),l=t!=null?r(t):(o+i)/2;return[u(l+(o-l)*e),u(l+(i-l)*e)]}function X(n,t,e){return L(n,t,e,S,g)}function Y(n,t,e){const r=Math.sign(n[0]);return L(n,t,e,N(r),$(r))}function Z(n,t,e,r){return L(n,t,e,G(r),G(1/r))}function F(n,t,e,r){return L(n,t,e,V(r),C(r))}function H(n){return 1+~~(new Date(n).getMonth()/3)}function I(n){return 1+~~(new Date(n).getUTCMonth()/3)}function W(n){return n!=null?v(n)?n:[n]:[]}function q(n,t,e){let r=n[0],u=n[1],o;if(u=e-t?[t,e]:[r=Math.min(Math.max(r,t),e-o),r+o]}function J(n){return typeof n==="function"}const Q="descending";function nn(n,t,e){e=e||{};t=W(t)||[];const u=[],i=[],l={},c=e.comparator||en;W(n).forEach(((n,r)=>{if(n==null)return;u.push(t[r]===Q?-1:1);i.push(n=J(n)?n:a(n,null,e));(o(n)||[]).forEach((n=>l[n]=1))}));return i.length===0?null:r(c(i,u),Object.keys(l))}const tn=(n,t)=>(nt||t==null)&&n!=null?1:(t=t instanceof Date?+t:t,n=n instanceof Date?+n:n)!==n&&t===t?-1:t!==t&&n===n?1:0;const en=(n,t)=>n.length===1?rn(n[0],t[0]):un(n,t,n.length);const rn=(n,t)=>function(e,r){return tn(n(e),n(r))*t};const un=(n,t,e)=>{t.push(0);return function(r,u){let o,i=0,l=-1;while(i===0&&++ln}function ln(n,t){let e;return r=>{if(e)clearTimeout(e);e=setTimeout((()=>(t(r),e=null)),n)}}function cn(n){for(let t,e,r=1,u=arguments.length;ri)i=u}}}else{for(u=t(n[e]);ei)i=u}}}}return[o,i]}function sn(n,t){const e=n.length;let r=-1,u,o,i,l,c;if(t==null){while(++r=o){u=i=o;break}}if(r===e)return[-1,-1];l=c=r;while(++ro){u=o;l=r}if(i=o){u=i=o;break}}if(r===e)return[-1,-1];l=c=r;while(++ro){u=o;l=r}if(i{u.set(t,n[t])}));return u}function pn(n,t,e,r,u,o){if(!e&&e!==0)return o;const i=+e;let l=n[0],c=R(n),f;if(co){i=u;u=o;o=i}e=e===undefined||e;r=r===undefined||r;return(e?u<=n:un.replace(/\\(.)/g,"$1"))):W(n)}const u=n&&n.length,o=e&&e.get||i,l=n=>o(t?[n]:s(n));let c;if(!u){c=function(){return""}}else if(u===1){const t=l(n[0]);c=function(n){return""+t(n)}}else{const t=n.map(l);c=function(n){let e=""+t[0](n),r=0;while(++r{t={};e={};r=0};const o=(u,o)=>{if(++r>n){e=t;t={};r=1}return t[u]=o};u();return{clear:u,has:n=>an(t,n)||an(e,n),get:n=>an(t,n)?t[n]:an(e,n)?o(n,e[n]):undefined,set:(n,e)=>an(t,n)?t[n]=e:o(n,e)}}function xn(n,t,e,r){const u=t.length,o=e.length;if(!o)return t;if(!u)return e;const i=r||new t.constructor(u+o);let l=0,c=0,f=0;for(;l0?e[c++]:t[l++]}for(;l=0)e+=n;return e}function zn(n,t,e,r){const u=e||" ",o=n+"",i=t-o.length;return i<=0?o:r==="left"?Dn(u,i)+o:r==="center"?Dn(u,~~(i/2))+o+Dn(u,Math.ceil(i/2)):o+Dn(u,i)}function An(n){return n&&R(n)-n[0]||0}function Rn(n){return v(n)?"["+n.map(Rn)+"]":k(n)||En(n)?JSON.stringify(n).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):n}function Sn(n){return n==null||n===""?null:!n||n==="false"||n==="0"?false:!!n}const $n=n=>wn(n)?n:dn(n)?n:Date.parse(n);function Nn(n,t){t=t||$n;return n==null||n===""?null:t(n)}function Vn(n){return n==null||n===""?null:n+""}function Cn(n){const t={},e=n.length;for(let r=0;r{var o;Object.defineProperty(e,"__esModule",{value:true});e.MML=void 0;var n=r(80747);var i=r(31859);var a=r(32175);var l=r(94318);var u=r(38669);var p=r(48765);var s=r(74394);var c=r(68313);var f=r(81364);var y=r(74502);var M=r(24208);var d=r(96778);var h=r(13941);var m=r(37422);var b=r(10900);var v=r(55385);var _=r(54453);var g=r(38085);var O=r(36528);var j=r(12560);var k=r(46072);var P=r(10093);var w=r(7840);var A=r(79516);var N=r(94826);var x=r(28878);var I=r(64016);var C=r(64906);var T=r(75447);var E=r(54517);var S=r(54020);e.MML=(o={},o[i.MmlMath.prototype.kind]=i.MmlMath,o[a.MmlMi.prototype.kind]=a.MmlMi,o[l.MmlMn.prototype.kind]=l.MmlMn,o[u.MmlMo.prototype.kind]=u.MmlMo,o[p.MmlMtext.prototype.kind]=p.MmlMtext,o[s.MmlMspace.prototype.kind]=s.MmlMspace,o[c.MmlMs.prototype.kind]=c.MmlMs,o[f.MmlMrow.prototype.kind]=f.MmlMrow,o[f.MmlInferredMrow.prototype.kind]=f.MmlInferredMrow,o[y.MmlMfrac.prototype.kind]=y.MmlMfrac,o[M.MmlMsqrt.prototype.kind]=M.MmlMsqrt,o[d.MmlMroot.prototype.kind]=d.MmlMroot,o[h.MmlMstyle.prototype.kind]=h.MmlMstyle,o[m.MmlMerror.prototype.kind]=m.MmlMerror,o[b.MmlMpadded.prototype.kind]=b.MmlMpadded,o[v.MmlMphantom.prototype.kind]=v.MmlMphantom,o[_.MmlMfenced.prototype.kind]=_.MmlMfenced,o[g.MmlMenclose.prototype.kind]=g.MmlMenclose,o[O.MmlMaction.prototype.kind]=O.MmlMaction,o[j.MmlMsub.prototype.kind]=j.MmlMsub,o[j.MmlMsup.prototype.kind]=j.MmlMsup,o[j.MmlMsubsup.prototype.kind]=j.MmlMsubsup,o[k.MmlMunder.prototype.kind]=k.MmlMunder,o[k.MmlMover.prototype.kind]=k.MmlMover,o[k.MmlMunderover.prototype.kind]=k.MmlMunderover,o[P.MmlMmultiscripts.prototype.kind]=P.MmlMmultiscripts,o[P.MmlMprescripts.prototype.kind]=P.MmlMprescripts,o[P.MmlNone.prototype.kind]=P.MmlNone,o[w.MmlMtable.prototype.kind]=w.MmlMtable,o[A.MmlMlabeledtr.prototype.kind]=A.MmlMlabeledtr,o[A.MmlMtr.prototype.kind]=A.MmlMtr,o[N.MmlMtd.prototype.kind]=N.MmlMtd,o[x.MmlMaligngroup.prototype.kind]=x.MmlMaligngroup,o[I.MmlMalignmark.prototype.kind]=I.MmlMalignmark,o[C.MmlMglyph.prototype.kind]=C.MmlMglyph,o[T.MmlSemantics.prototype.kind]=T.MmlSemantics,o[T.MmlAnnotation.prototype.kind]=T.MmlAnnotation,o[T.MmlAnnotationXML.prototype.kind]=T.MmlAnnotationXML,o[E.TeXAtom.prototype.kind]=E.TeXAtom,o[S.MathChoice.prototype.kind]=S.MathChoice,o[n.TextNode.prototype.kind]=n.TextNode,o[n.XMLNode.prototype.kind]=n.XMLNode,o)},44001:function(t,e,r){var o=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function o(){this.constructor=e}e.prototype=r===null?Object.create(r):(o.prototype=r.prototype,new o)}}();Object.defineProperty(e,"__esModule",{value:true});e.MmlFactory=void 0;var n=r(3495);var i=r(32167);var a=function(t){o(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"MML",{get:function(){return this.node},enumerable:false,configurable:true});e.defaultNodes=i.MML;return e}(n.AbstractNodeFactory);e.MmlFactory=a},28878:function(t,e,r){var o=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function o(){this.constructor=e}e.prototype=r===null?Object.create(r):(o.prototype=r.prototype,new o)}}();var n=this&&this.__assign||function(){n=Object.assign||function(t){for(var e,r=1,o=arguments.length;r{"use strict";n.d(t,{z:()=>g,H:()=>m});function r(e){return e.charCodeAt(0)}function i(e,t){if(Array.isArray(e)){e.forEach((function(e){t.push(e)}))}else{t.push(e)}}function s(e,t){if(e[t]===true){throw"duplicate flag "+t}const n=e[t];e[t]=true}function a(e){if(e===undefined){throw Error("Internal Error - Should never get here!")}return true}function o(){throw Error("Internal Error - Should never get here!")}function c(e){return e["type"]==="Character"}const u=[];for(let y=r("0");y<=r("9");y++){u.push(y)}const l=[r("_")].concat(u);for(let y=r("a");y<=r("z");y++){l.push(y)}for(let y=r("A");y<=r("Z");y++){l.push(y)}const d=[r(" "),r("\f"),r("\n"),r("\r"),r("\t"),r("\v"),r("\t"),r(" "),r(" "),r(" "),r(" "),r(" "),r(" "),r(" "),r(" "),r(" "),r(" "),r(" "),r(" "),r(" "),r("\u2028"),r("\u2029"),r(" "),r(" "),r(" "),r("\ufeff")];const f=/[0-9a-fA-F]/;const h=/[0-9]/;const p=/[1-9]/;class m{constructor(){this.idx=0;this.input="";this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx;this.input=e.input;this.groupIdx=e.groupIdx}pattern(e){this.idx=0;this.input=e;this.groupIdx=0;this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const n={type:"Flags",loc:{begin:this.idx,end:e.length},global:false,ignoreCase:false,multiLine:false,unicode:false,sticky:false};while(this.isRegExpFlag()){switch(this.popChar()){case"g":s(n,"global");break;case"i":s(n,"ignoreCase");break;case"m":s(n,"multiLine");break;case"u":s(n,"unicode");break;case"y":s(n,"sticky");break}}if(this.idx!==this.input.length){throw Error("Redundant input: "+this.input.substring(this.idx))}return{type:"Pattern",flags:n,value:t,loc:this.loc(0)}}disjunction(){const e=[];const t=this.idx;e.push(this.alternative());while(this.peekChar()==="|"){this.consumeChar("|");e.push(this.alternative())}return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[];const t=this.idx;while(this.isTerm()){e.push(this.term())}return{type:"Alternative",value:e,loc:this.loc(t)}}term(){if(this.isAssertion()){return this.assertion()}else{return this.atom()}}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}a(t);const n=this.disjunction();this.consumeChar(")");return{type:t,value:n,loc:this.loc(e)}}return o()}quantifier(e=false){let t=undefined;const n=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:Infinity};break;case"+":t={atLeast:1,atMost:Infinity};break;case"?":t={atLeast:0,atMost:1};break;case"{":const n=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:n,atMost:n};break;case",":let e;if(this.isDigit()){e=this.integerIncludingZero();t={atLeast:n,atMost:e}}else{t={atLeast:n,atMost:Infinity}}this.consumeChar("}");break}if(e===true&&t===undefined){return undefined}a(t);break}if(e===true&&t===undefined){return undefined}if(a(t)){if(this.peekChar(0)==="?"){this.consumeChar("?");t.greedy=false}else{t.greedy=true}t.type="Quantifier";t.loc=this.loc(n);return t}}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===undefined&&this.isPatternCharacter()){e=this.patternCharacter()}if(a(e)){e.loc=this.loc(t);if(this.isQuantifier()){e.quantifier=this.quantifier()}return e}return o()}dotAll(){this.consumeChar(".");return{type:"Set",complement:true,value:[r("\n"),r("\r"),r("\u2028"),r("\u2029")]}}atomEscape(){this.consumeChar("\\");switch(this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){const e=this.positiveInteger();return{type:"GroupBackReference",value:e}}characterClassEscape(){let e;let t=false;switch(this.popChar()){case"d":e=u;break;case"D":e=u;t=true;break;case"s":e=d;break;case"S":e=d;t=true;break;case"w":e=l;break;case"W":e=l;t=true;break}if(a(e)){return{type:"Set",value:e,complement:t}}return o()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=r("\f");break;case"n":e=r("\n");break;case"r":e=r("\r");break;case"t":e=r("\t");break;case"v":e=r("\v");break}if(a(e)){return{type:"Character",value:e}}return o()}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===false){throw Error("Invalid ")}const t=e.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:t}}nulCharacterAtom(){this.consumeChar("0");return{type:"Character",value:r("\0")}}hexEscapeSequenceAtom(){this.consumeChar("x");return this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){this.consumeChar("u");return this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:r(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:const e=this.popChar();return{type:"Character",value:r(e)}}}characterClass(){const e=[];let t=false;this.consumeChar("[");if(this.peekChar(0)==="^"){this.consumeChar("^");t=true}while(this.isClassAtom()){const t=this.classAtom();const n=t.type==="Character";if(c(t)&&this.isRangeDash()){this.consumeChar("-");const n=this.classAtom();const s=n.type==="Character";if(c(n)){if(n.value=this.input.length){throw Error("Unexpected end of input")}this.idx++}loc(e){return{begin:e,end:this.idx}}}class g{visitChildren(e){for(const t in e){const n=e[t];if(e.hasOwnProperty(t)){if(n.type!==undefined){this.visit(n)}else if(Array.isArray(n)){n.forEach((e=>{this.visit(e)}),this)}}}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}},87290:(e,t,n)=>{"use strict";n.d(t,{b:()=>u});var r=n(74888);var i=n(6052);var s=n(41281);var a=n(37810);var o=class extends r.mR{static{(0,r.K2)(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}};var c={parser:{TokenBuilder:(0,r.K2)((()=>new o),"TokenBuilder"),ValueConverter:(0,r.K2)((()=>new r.Tm),"ValueConverter")}};function u(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr);const n=(0,s.WQ)((0,a.t)({shared:t}),r.eZ,c);t.ServiceRegistry.register(n);return{shared:t,GitGraph:n}}(0,r.K2)(u,"createGitGraphServices")},36578:(e,t,n)=>{"use strict";n.d(t,{f:()=>u});var r=n(74888);var i=n(6052);var s=n(41281);var a=n(37810);var o=class extends r.mR{static{(0,r.K2)(this,"RadarTokenBuilder")}constructor(){super(["radar-beta"])}};var c={parser:{TokenBuilder:(0,r.K2)((()=>new o),"TokenBuilder"),ValueConverter:(0,r.K2)((()=>new r.Tm),"ValueConverter")}};function u(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr);const n=(0,s.WQ)((0,a.t)({shared:t}),r.YP,c);t.ServiceRegistry.register(n);return{shared:t,Radar:n}}(0,r.K2)(u,"createRadarServices")},74888:(e,t,n)=>{"use strict";n.d(t,{mR:()=>Le,dg:()=>Ce,jE:()=>Ee,Tm:()=>Ne,eZ:()=>ke,e5:()=>Ae,sr:()=>ve,AM:()=>Te,KX:()=>Re,YP:()=>xe,K2:()=>g});var r=n(64032);var i=n(37810);var s=n(41281);var a=n(85684);var o=n(6052);var c=n(14247);const u={Grammar:()=>undefined,LanguageMetaData:()=>({caseInsensitive:false,fileExtensions:[".langium"],languageId:"langium"})};const l={AstReflection:()=>new a.QX};function d(){const e=(0,s.WQ)((0,i.u)(o.D),l);const t=(0,s.WQ)((0,i.t)({shared:e}),u);e.ServiceRegistry.register(t);return t}function f(e){var t;const n=d();const r=n.serializer.JsonSerializer.deserialize(e);n.shared.workspace.LangiumDocumentFactory.fromModel(r,c.r.parse(`memory://${(t=r.name)!==null&&t!==void 0?t:"grammar"}.langium`));return r}var h=n(14480);var p=n(25355);var m=Object.defineProperty;var g=(e,t)=>m(e,"name",{value:t,configurable:true});var y="Statement";var v="Architecture";function A(e){return J.isInstance(e,v)}g(A,"isArchitecture");var T="Axis";var R="Branch";function E(e){return J.isInstance(e,R)}g(E,"isBranch");var k="Checkout";var x="CherryPicking";var $="Commit";function w(e){return J.isInstance(e,$)}g(w,"isCommit");var I="Common";function S(e){return J.isInstance(e,I)}g(S,"isCommon");var C="Curve";var N="Edge";var L="Entry";var b="GitGraph";function _(e){return J.isInstance(e,b)}g(_,"isGitGraph");var O="Group";var P="Info";function M(e){return J.isInstance(e,P)}g(M,"isInfo");var D="Junction";var U="Merge";function F(e){return J.isInstance(e,U)}g(F,"isMerge");var G="Option";var B="Packet";function K(e){return J.isInstance(e,B)}g(K,"isPacket");var j="PacketBlock";function V(e){return J.isInstance(e,j)}g(V,"isPacketBlock");var W="Pie";function H(e){return J.isInstance(e,W)}g(H,"isPie");var z="PieSection";function Y(e){return J.isInstance(e,z)}g(Y,"isPieSection");var q="Radar";var X="Service";var Q="Direction";var Z=class extends r.kD{static{g(this,"MermaidAstReflection")}getAllTypes(){return[v,T,R,k,x,$,I,C,Q,N,L,b,O,P,D,U,G,B,j,W,z,q,X,y]}computeIsSubtype(e,t){switch(e){case R:case k:case x:case $:case U:{return this.isSubtype(y,t)}case Q:{return this.isSubtype(b,t)}default:{return false}}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Entry:axis":{return T}default:{throw new Error(`${t} is not a valid reference id.`)}}}getTypeMetaData(e){switch(e){case v:{return{name:v,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]}}case T:{return{name:T,properties:[{name:"label"},{name:"name"}]}}case R:{return{name:R,properties:[{name:"name"},{name:"order"}]}}case k:{return{name:k,properties:[{name:"branch"}]}}case x:{return{name:x,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]}}case $:{return{name:$,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]}}case I:{return{name:I,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]}}case C:{return{name:C,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]}}case N:{return{name:N,properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:false},{name:"lhsId"},{name:"lhsInto",defaultValue:false},{name:"rhsDir"},{name:"rhsGroup",defaultValue:false},{name:"rhsId"},{name:"rhsInto",defaultValue:false},{name:"title"}]}}case L:{return{name:L,properties:[{name:"axis"},{name:"value"}]}}case b:{return{name:b,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]}}case O:{return{name:O,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]}}case P:{return{name:P,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]}}case D:{return{name:D,properties:[{name:"id"},{name:"in"}]}}case U:{return{name:U,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]}}case G:{return{name:G,properties:[{name:"name"},{name:"value",defaultValue:false}]}}case B:{return{name:B,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]}}case j:{return{name:j,properties:[{name:"end"},{name:"label"},{name:"start"}]}}case W:{return{name:W,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:false},{name:"title"}]}}case z:{return{name:z,properties:[{name:"label"},{name:"value"}]}}case q:{return{name:q,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]}}case X:{return{name:X,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]}}case Q:{return{name:Q,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]}}default:{return{name:e,properties:[]}}}}};var J=new Z;var ee;var te=g((()=>ee??(ee=f('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'))),"InfoGrammar");var ne;var re=g((()=>ne??(ne=f(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`))),"PacketGrammar");var ie;var se=g((()=>ie??(ie=f('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'))),"PieGrammar");var ae;var oe=g((()=>ae??(ae=f('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'))),"ArchitectureGrammar");var ce;var ue=g((()=>ce??(ce=f(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`))),"GitGraphGrammar");var le;var de=g((()=>le??(le=f(`{"$type":"Grammar","isDeclared":true,"name":"Radar","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@12"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@12"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9\\\\-_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`))),"RadarGrammar");var fe={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:false,mode:"production"};var he={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:false,mode:"production"};var pe={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:false,mode:"production"};var me={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:false,mode:"production"};var ge={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:false,mode:"production"};var ye={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:false,mode:"production"};var ve={AstReflection:g((()=>new Z),"AstReflection")};var Ae={Grammar:g((()=>te()),"Grammar"),LanguageMetaData:g((()=>fe),"LanguageMetaData"),parser:{}};var Te={Grammar:g((()=>re()),"Grammar"),LanguageMetaData:g((()=>he),"LanguageMetaData"),parser:{}};var Re={Grammar:g((()=>se()),"Grammar"),LanguageMetaData:g((()=>pe),"LanguageMetaData"),parser:{}};var Ee={Grammar:g((()=>oe()),"Grammar"),LanguageMetaData:g((()=>me),"LanguageMetaData"),parser:{}};var ke={Grammar:g((()=>ue()),"Grammar"),LanguageMetaData:g((()=>ge),"LanguageMetaData"),parser:{}};var xe={Grammar:g((()=>de()),"Grammar"),LanguageMetaData:g((()=>ye),"LanguageMetaData"),parser:{}};var $e=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/;var we=/accTitle[\t ]*:([^\n\r]*)/;var Ie=/title([\t ][^\n\r]*|)/;var Se={ACC_DESCR:$e,ACC_TITLE:we,TITLE:Ie};var Ce=class extends h.d{static{g(this,"AbstractMermaidValueConverter")}runConverter(e,t,n){let r=this.runCommonConverter(e,t,n);if(r===void 0){r=this.runCustomConverter(e,t,n)}if(r===void 0){return super.runConverter(e,t,n)}return r}runCommonConverter(e,t,n){const r=Se[e.name];if(r===void 0){return void 0}const i=r.exec(t);if(i===null){return void 0}if(i[1]!==void 0){return i[1].trim().replace(/[\t ]{2,}/gm," ")}if(i[2]!==void 0){return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,"\n")}return void 0}};var Ne=class extends Ce{static{g(this,"CommonValueConverter")}runCustomConverter(e,t,n){return void 0}};var Le=class extends p.Q{static{g(this,"AbstractMermaidTokenBuilder")}constructor(e){super();this.keywords=new Set(e)}buildKeywordTokens(e,t,n){const r=super.buildKeywordTokens(e,t,n);r.forEach((e=>{if(this.keywords.has(e.name)&&e.PATTERN!==void 0){e.PATTERN=new RegExp(e.PATTERN.toString()+"(?:(?=%%)|(?!\\S))")}}));return r}};var be=class extends Le{static{g(this,"CommonTokenBuilder")}}},77018:(e,t,n)=>{"use strict";n.d(t,{S:()=>l});var r=n(74888);var i=n(6052);var s=n(41281);var a=n(37810);var o=class extends r.mR{static{(0,r.K2)(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}};var c=class extends r.dg{static{(0,r.K2)(this,"ArchitectureValueConverter")}runCustomConverter(e,t,n){if(e.name==="ARCH_ICON"){return t.replace(/[()]/g,"").trim()}else if(e.name==="ARCH_TEXT_ICON"){return t.replace(/["()]/g,"")}else if(e.name==="ARCH_TITLE"){return t.replace(/[[\]]/g,"").trim()}return void 0}};var u={parser:{TokenBuilder:(0,r.K2)((()=>new o),"TokenBuilder"),ValueConverter:(0,r.K2)((()=>new c),"ValueConverter")}};function l(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr);const n=(0,s.WQ)((0,a.t)({shared:t}),r.jE,u);t.ServiceRegistry.register(n);return{shared:t,Architecture:n}}(0,r.K2)(l,"createArchitectureServices")},25996:(e,t,n)=>{"use strict";n.d(t,{v:()=>u});var r=n(74888);var i=n(6052);var s=n(41281);var a=n(37810);var o=class extends r.mR{static{(0,r.K2)(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}};var c={parser:{TokenBuilder:(0,r.K2)((()=>new o),"TokenBuilder"),ValueConverter:(0,r.K2)((()=>new r.Tm),"ValueConverter")}};function u(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr);const n=(0,s.WQ)((0,a.t)({shared:t}),r.e5,c);t.ServiceRegistry.register(n);return{shared:t,Info:n}}(0,r.K2)(u,"createInfoServices")},62409:(e,t,n)=>{"use strict";n.d(t,{f:()=>l});var r=n(74888);var i=n(6052);var s=n(41281);var a=n(37810);var o=class extends r.mR{static{(0,r.K2)(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}};var c=class extends r.dg{static{(0,r.K2)(this,"PieValueConverter")}runCustomConverter(e,t,n){if(e.name!=="PIE_SECTION_LABEL"){return void 0}return t.replace(/"/g,"").trim()}};var u={parser:{TokenBuilder:(0,r.K2)((()=>new o),"TokenBuilder"),ValueConverter:(0,r.K2)((()=>new c),"ValueConverter")}};function l(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr);const n=(0,s.WQ)((0,a.t)({shared:t}),r.KX,u);t.ServiceRegistry.register(n);return{shared:t,Pie:n}}(0,r.K2)(l,"createPieServices")},69602:(e,t,n)=>{"use strict";n.d(t,{$:()=>u});var r=n(74888);var i=n(6052);var s=n(41281);var a=n(37810);var o=class extends r.mR{static{(0,r.K2)(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}};var c={parser:{TokenBuilder:(0,r.K2)((()=>new o),"TokenBuilder"),ValueConverter:(0,r.K2)((()=>new r.Tm),"ValueConverter")}};function u(e=i.D){const t=(0,s.WQ)((0,a.u)(e),r.sr);const n=(0,s.WQ)((0,a.t)({shared:t}),r.AM,c);t.ServiceRegistry.register(n);return{shared:t,Packet:n}}(0,r.K2)(u,"createPacketServices")},24010:(e,t,n)=>{"use strict";n.d(t,{qg:()=>f});var r=n(87290);var i=n(25996);var s=n(69602);var a=n(62409);var o=n(77018);var c=n(36578);var u=n(74888);var l={};var d={info:(0,u.K2)((async()=>{const{createInfoServices:e}=await n.e(9136).then(n.bind(n,49136));const t=e().Info.parser.LangiumParser;l.info=t}),"info"),packet:(0,u.K2)((async()=>{const{createPacketServices:e}=await n.e(3122).then(n.bind(n,63122));const t=e().Packet.parser.LangiumParser;l.packet=t}),"packet"),pie:(0,u.K2)((async()=>{const{createPieServices:e}=await n.e(1462).then(n.bind(n,91462));const t=e().Pie.parser.LangiumParser;l.pie=t}),"pie"),architecture:(0,u.K2)((async()=>{const{createArchitectureServices:e}=await n.e(9359).then(n.bind(n,79359));const t=e().Architecture.parser.LangiumParser;l.architecture=t}),"architecture"),gitGraph:(0,u.K2)((async()=>{const{createGitGraphServices:e}=await n.e(8354).then(n.bind(n,68354));const t=e().GitGraph.parser.LangiumParser;l.gitGraph=t}),"gitGraph"),radar:(0,u.K2)((async()=>{const{createRadarServices:e}=await n.e(7741).then(n.bind(n,97741));const t=e().Radar.parser.LangiumParser;l.radar=t}),"radar")};async function f(e,t){const n=d[e];if(!n){throw new Error(`Unknown diagram type: ${e}`)}if(!l[e]){await n()}const r=l[e];const i=r.parse(t);if(i.lexerErrors.length>0||i.parserErrors.length>0){throw new h(i)}return i.value}(0,u.K2)(f,"parse");var h=class extends Error{constructor(e){const t=e.lexerErrors.map((e=>e.message)).join("\n");const n=e.parserErrors.map((e=>e.message)).join("\n");super(`Parsing failed: ${t} ${n}`);this.result=e}static{(0,u.K2)(this,"MermaidParseError")}}},50450:(e,t,n)=>{"use strict";n.d(t,{ak:()=>J,mT:()=>Ds,LT:()=>sr,jr:()=>Gs,T6:()=>Xi,JG:()=>Vn,wL:()=>W,c$:()=>Y,Y2:()=>Q,$P:()=>q,Cy:()=>X,Pp:()=>Z,BK:()=>ee,PW:()=>Bn,my:()=>cr,jk:()=>Fr,Sk:()=>Wn,G:()=>or});var r=n(69769);var i=n(44882);var s=n(74650);var a=n(8937);var o=n(2850);var c=n(97134);function u(e){function t(){}t.prototype=e;const n=new t;function r(){return typeof n.bar}r();r();if(true)return e;(0,eval)(e)}function l(e,t,n){var r=-1,i=e.length;if(t<0){t=-t>i?0:i+t}n=n>i?i:n;if(n<0){n+=i}i=t>n?0:n-t>>>0;t>>>=0;var s=Array(i);while(++r{t.accept(e)}))}}class W extends V{constructor(e){super([]);this.idx=1;$(this,L(e,(e=>e!==undefined)))}set definition(e){}get definition(){if(this.referencedRule!==undefined){return this.referencedRule.definition}return[]}accept(e){e.visit(this)}}class H extends V{constructor(e){super(e.definition);this.orgText="";$(this,L(e,(e=>e!==undefined)))}}class z extends V{constructor(e){super(e.definition);this.ignoreAmbiguities=false;$(this,L(e,(e=>e!==undefined)))}}class Y extends V{constructor(e){super(e.definition);this.idx=1;$(this,L(e,(e=>e!==undefined)))}}class q extends V{constructor(e){super(e.definition);this.idx=1;$(this,L(e,(e=>e!==undefined)))}}class X extends V{constructor(e){super(e.definition);this.idx=1;$(this,L(e,(e=>e!==undefined)))}}class Q extends V{constructor(e){super(e.definition);this.idx=1;$(this,L(e,(e=>e!==undefined)))}}class Z extends V{constructor(e){super(e.definition);this.idx=1;$(this,L(e,(e=>e!==undefined)))}}class J extends V{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition);this.idx=1;this.ignoreAmbiguities=false;this.hasPredicates=false;$(this,L(e,(e=>e!==undefined)))}}class ee{constructor(e){this.idx=1;$(this,L(e,(e=>e!==undefined)))}accept(e){e.visit(this)}}function te(e){return(0,a.A)(e,ne)}function ne(e){function t(e){return(0,a.A)(e,ne)}if(e instanceof W){const t={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};if((0,m.A)(e.label)){t.label=e.label}return t}else if(e instanceof z){return{type:"Alternative",definition:t(e.definition)}}else if(e instanceof Y){return{type:"Option",idx:e.idx,definition:t(e.definition)}}else if(e instanceof q){return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)}}else if(e instanceof X){return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:ne(new ee({terminalType:e.separator})),definition:t(e.definition)}}else if(e instanceof Z){return{type:"RepetitionWithSeparator",idx:e.idx,separator:ne(new ee({terminalType:e.separator})),definition:t(e.definition)}}else if(e instanceof Q){return{type:"Repetition",idx:e.idx,definition:t(e.definition)}}else if(e instanceof J){return{type:"Alternation",idx:e.idx,definition:t(e.definition)}}else if(e instanceof ee){const t={type:"Terminal",name:e.terminalType.name,label:K(e.terminalType),idx:e.idx};if((0,m.A)(e.label)){t.terminalLabel=e.label}const n=e.terminalType.PATTERN;if(e.terminalType.PATTERN){t.pattern=B(n)?n.source:n}return t}else if(e instanceof H){return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)}}else{throw Error("non exhaustive match")}}class re{visit(e){const t=e;switch(t.constructor){case W:return this.visitNonTerminal(t);case z:return this.visitAlternative(t);case Y:return this.visitOption(t);case q:return this.visitRepetitionMandatory(t);case X:return this.visitRepetitionMandatoryWithSeparator(t);case Z:return this.visitRepetitionWithSeparator(t);case Q:return this.visitRepetition(t);case J:return this.visitAlternation(t);case ee:return this.visitTerminal(t);case H:return this.visitRule(t);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}var ie=n(95345);var se=n(15912);function ae(e,t){var n;(0,se.A)(e,(function(e,r,i){n=t(e,r,i);return!n}));return!!n}const oe=ae;var ce=n(39990);var ue=n(31943);function le(e,t,n){var r=(0,ce.A)(e)?ie.A:oe;if(n&&(0,ue.A)(e,t,n)){t=undefined}return r(e,(0,I.A)(t,3))}const de=le;var fe=n(54949);var he=Math.max;function pe(e,t,n,r){e=(0,A.A)(e)?e:(0,i.A)(e);n=n&&!r?(0,f.A)(n):0;var s=e.length;if(n<0){n=he(s+n,0)}return(0,m.A)(e)?n<=s&&e.indexOf(t,n)>-1:!!s&&(0,fe.A)(e,t,n)>-1}const me=pe;function ge(e,t){var n=-1,r=e==null?0:e.length;while(++nke(e,t)))}else if(e instanceof W&&me(t,e)){return false}else if(e instanceof V){if(e instanceof W){t.push(e)}return Re(e.definition,(e=>ke(e,t)))}else{return false}}function xe(e){return e instanceof J}function $e(e){if(e instanceof W){return"SUBRULE"}else if(e instanceof Y){return"OPTION"}else if(e instanceof J){return"OR"}else if(e instanceof q){return"AT_LEAST_ONE"}else if(e instanceof X){return"AT_LEAST_ONE_SEP"}else if(e instanceof Z){return"MANY_SEP"}else if(e instanceof Q){return"MANY"}else if(e instanceof ee){return"CONSUME"}else{throw Error("non exhaustive match")}}class we{walk(e,t=[]){(0,r.A)(e.definition,((n,r)=>{const i=p(e.definition,r+1);if(n instanceof W){this.walkProdRef(n,i,t)}else if(n instanceof ee){this.walkTerminal(n,i,t)}else if(n instanceof z){this.walkFlat(n,i,t)}else if(n instanceof Y){this.walkOption(n,i,t)}else if(n instanceof q){this.walkAtLeastOne(n,i,t)}else if(n instanceof X){this.walkAtLeastOneSep(n,i,t)}else if(n instanceof Z){this.walkManySep(n,i,t)}else if(n instanceof Q){this.walkMany(n,i,t)}else if(n instanceof J){this.walkOr(n,i,t)}else{throw Error("non exhaustive match")}}))}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){const r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){const r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){const r=[new Y({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){const r=Ie(e,t,n);this.walk(e,r)}walkMany(e,t,n){const r=[new Y({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){const r=Ie(e,t,n);this.walk(e,r)}walkOr(e,t,n){const i=t.concat(n);(0,r.A)(e.definition,(e=>{const t=new z({definition:[e]});this.walk(t,i)}))}}function Ie(e,t,n){const r=[new Y({definition:[new ee({terminalType:e.separator})].concat(e.definition)})];const i=r.concat(t,n);return i}var Se=n(19363);function Ce(e){return e&&e.length?(0,Se.A)(e):[]}const Ne=Ce;var Le=n(74033);function be(e){if(e instanceof W){return be(e.referencedRule)}else if(e instanceof ee){return Pe(e)}else if(Ee(e)){return _e(e)}else if(xe(e)){return Oe(e)}else{throw Error("non exhaustive match")}}function _e(e){let t=[];const n=e.definition;let r=0;let i=n.length>r;let s;let a=true;while(i&&a){s=n[r];a=ke(s);t=t.concat(be(s));r=r+1;i=n.length>r}return Ne(t)}function Oe(e){const t=(0,a.A)(e.definition,(e=>be(e)));return Ne((0,Le.A)(t))}function Pe(e){return[e.terminalType]}const Me="_~IN~_";class De extends we{constructor(e){super();this.topProd=e;this.follows={}}startWalking(){this.walk(this.topProd);return this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){const r=Fe(e.referencedRule,e.idx)+this.topProd.name;const i=t.concat(n);const s=new z({definition:i});const a=be(s);this.follows[r]=a}}function Ue(e){const t={};(0,r.A)(e,(e=>{const n=new De(e).startWalking();$(t,n)}));return t}function Fe(e,t){return e.name+t+Me}function Ge(e){const t=e.terminalType.name;return t+e.idx+IN}var Be=n(89523);var Ke=n(83173);var je=n(38693);var Ve=n(89191);var We=n(64725);var He="Expected a function";function ze(e){if(typeof e!="function"){throw new TypeError(He)}return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}const Ye=ze;function qe(e,t){var n=(0,ce.A)(e)?Ve.A:We.A;return n(e,Ye((0,I.A)(t,3)))}const Xe=qe;var Qe=n(58807);var Ze=Math.max;function Je(e,t,n){var r=e==null?0:e.length;if(!r){return-1}var i=n==null?0:(0,f.A)(n);if(i<0){i=Ze(r+i,0)}return(0,fe.A)(e,t,i)}const et=Je;var tt=n(65339);var nt=n(97133);var rt=n(63344);var it=n(43212);var st=n(7348);var at=n(4832);var ot=200;function ct(e,t,n,r){var i=-1,s=it.A,a=true,o=e.length,c=[],u=t.length;if(!o){return c}if(n){t=(0,w.A)(t,(0,D.A)(n))}if(r){s=st.A;a=false}else if(t.length>=ot){s=at.A;a=false;t=new rt.A(t)}e:while(++i\n`+"\tComplement Sets cannot be automatically optimized.\n"+"\tThis will disable the lexer's first char optimizations.\n"+"\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.")}}else{let n="";if(t){n="\n\tThis will disable the lexer's first char optimizations.\n"+"\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details."}Tt(`${It}\n`+`\tFailed parsing: < ${e.toString()} >\n`+`\tUsing the @chevrotain/regexp-to-ast library\n`+"\tPlease open an issue at: https://github.com/chevrotain/chevrotain/issues"+n)}}return[]}function Ct(e,t,n){switch(e.type){case"Disjunction":for(let r=0;r{if(typeof e==="number"){Nt(e,t,n)}else{const r=e;if(n===true){for(let e=r.from;e<=r.to;e++){Nt(e,t,n)}}else{for(let e=r.from;e<=r.to&&e=vn){const e=r.from>=vn?r.from:vn;const n=r.to;const i=Tn(e);const s=Tn(n);for(let r=i;r<=s;r++){t[r]=r}}}}}));break;case"Group":Ct(a.value,t,n);break;default:throw Error("Non Exhaustive Match")}const o=a.quantifier!==undefined&&a.quantifier.atLeast===0;if(a.type==="Group"&&_t(a)===false||a.type!=="Group"&&o===false){break}}break;default:throw Error("non exhaustive match!")}return(0,i.A)(t)}function Nt(e,t,n){const r=Tn(e);t[r]=r;if(n===true){Lt(e,t)}}function Lt(e,t){const n=String.fromCharCode(e);const r=n.toUpperCase();if(r!==n){const e=Tn(r.charCodeAt(0));t[e]=e}else{const e=n.toLowerCase();if(e!==n){const n=Tn(e.charCodeAt(0));t[n]=n}}}function bt(e,t){return(0,At.A)(e.value,(e=>{if(typeof e==="number"){return me(t,e)}else{const n=e;return(0,At.A)(t,(e=>n.from<=e&&e<=n.to))!==undefined}}))}function _t(e){const t=e.quantifier;if(t&&t.atLeast===0){return true}if(!e.value){return false}return(0,ce.A)(e.value)?Re(e.value,_t):_t(e.value)}class Ot extends Ke.z{constructor(e){super();this.targetCharCodes=e;this.found=false}visitChildren(e){if(this.found===true){return}switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}visitCharacter(e){if(me(this.targetCharCodes,e.value)){this.found=true}}visitSet(e){if(e.complement){if(bt(e,this.targetCharCodes)===undefined){this.found=true}}else{if(bt(e,this.targetCharCodes)!==undefined){this.found=true}}}}function Pt(e,t){if(t instanceof RegExp){const n=xt(t);const r=new Ot(e);r.visit(n);return r.found}else{return(0,At.A)(t,(t=>me(e,t.charCodeAt(0))))!==undefined}}const Mt="PATTERN";const Dt="defaultMode";const Ut="modes";let Ft=typeof new RegExp("(?:)").sticky==="boolean";function Gt(){Ft=false}function Bt(){Ft=true}function Kt(e,t){t=(0,je.A)(t,{useSticky:Ft,debug:false,safeMode:false,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:(e,t)=>t()});const n=t.tracer;n("initCharCodeToOptimizedIndexMap",(()=>{Rn()}));let i;n("Reject Lexer.NA",(()=>{i=Xe(e,(e=>e[Mt]===Vn.NA))}));let c=false;let u;n("Transform Patterns",(()=>{c=false;u=(0,a.A)(i,(e=>{const n=e[Mt];if(B(n)){const e=n.source;if(e.length===1&&e!=="^"&&e!=="$"&&e!=="."&&!n.ignoreCase){return e}else if(e.length===2&&e[0]==="\\"&&!me(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])){return e[1]}else{return t.useSticky?on(n):an(n)}}else if((0,Qe.A)(n)){c=true;return{exec:n}}else if(typeof n==="object"){c=true;return n}else if(typeof n==="string"){if(n.length===1){return n}else{const e=n.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&");const r=new RegExp(e);return t.useSticky?on(r):an(r)}}else{throw Error("non exhaustive match")}}))}));let l;let d;let f;let h;let p;n("misc mapping",(()=>{l=(0,a.A)(i,(e=>e.tokenTypeIdx));d=(0,a.A)(i,(e=>{const t=e.GROUP;if(t===Vn.SKIPPED){return undefined}else if((0,m.A)(t)){return t}else if((0,Be.A)(t)){return false}else{throw Error("non exhaustive match")}}));f=(0,a.A)(i,(e=>{const t=e.LONGER_ALT;if(t){const e=(0,ce.A)(t)?(0,a.A)(t,(e=>et(i,e))):[et(i,t)];return e}}));h=(0,a.A)(i,(e=>e.PUSH_MODE));p=(0,a.A)(i,(e=>(0,o.A)(e,"POP_MODE")))}));let g;n("Line Terminator Handling",(()=>{const e=gn(t.lineTerminatorCharacters);g=(0,a.A)(i,(e=>false));if(t.positionTracking!=="onlyOffset"){g=(0,a.A)(i,(t=>{if((0,o.A)(t,"LINE_BREAKS")){return!!t.LINE_BREAKS}else{return pn(t,e)===false&&Pt(e,t.PATTERN)}}))}}));let y;let v;let A;let T;n("Misc Mapping #2",(()=>{y=(0,a.A)(i,dn);v=(0,a.A)(u,fn);A=(0,tt.A)(i,((e,t)=>{const n=t.GROUP;if((0,m.A)(n)&&!(n===Vn.SKIPPED)){e[n]=[]}return e}),{});T=(0,a.A)(u,((e,t)=>({pattern:u[t],longerAlt:f[t],canLineTerminator:g[t],isCustom:y[t],short:v[t],group:d[t],push:h[t],pop:p[t],tokenTypeIdx:l[t],tokenType:i[t]})))}));let R=true;let E=[];if(!t.safeMode){n("First Char Optimization",(()=>{E=(0,tt.A)(i,((e,n,i)=>{if(typeof n.PATTERN==="string"){const t=n.PATTERN.charCodeAt(0);const r=Tn(t);yn(e,r,T[i])}else if((0,ce.A)(n.START_CHARS_HINT)){let t;(0,r.A)(n.START_CHARS_HINT,(n=>{const r=typeof n==="string"?n.charCodeAt(0):n;const s=Tn(r);if(t!==s){t=s;yn(e,s,T[i])}}))}else if(B(n.PATTERN)){if(n.PATTERN.unicode){R=false;if(t.ensureOptimizations){Tt(`${It}`+`\tUnable to analyze < ${n.PATTERN.toString()} > pattern.\n`+"\tThe regexp unicode flag is not currently supported by the regexp-to-ast library.\n"+"\tThis will disable the lexer's first char optimizations.\n"+"\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE")}}else{const a=St(n.PATTERN,t.ensureOptimizations);if((0,s.A)(a)){R=false}(0,r.A)(a,(t=>{yn(e,t,T[i])}))}}else{if(t.ensureOptimizations){Tt(`${It}`+`\tTokenType: <${n.name}> is using a custom token pattern without providing parameter.\n`+"\tThis will disable the lexer's first char optimizations.\n"+"\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE")}R=false}return e}),[])}))}return{emptyGroups:A,patternIdxToConfig:T,charCodeToPatternIdxToConfig:E,hasCustom:c,canBeOptimized:R}}function jt(e,t){let n=[];const r=Wt(e);n=n.concat(r.errors);const i=Ht(r.valid);const s=i.valid;n=n.concat(i.errors);n=n.concat(Vt(s));n=n.concat(en(s));n=n.concat(tn(s,t));n=n.concat(nn(s));return n}function Vt(e){let t=[];const n=(0,nt.A)(e,(e=>B(e[Mt])));t=t.concat(Yt(n));t=t.concat(Qt(n));t=t.concat(Zt(n));t=t.concat(Jt(n));t=t.concat(qt(n));return t}function Wt(e){const t=(0,nt.A)(e,(e=>!(0,o.A)(e,Mt)));const n=(0,a.A)(t,(e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:Kn.MISSING_PATTERN,tokenTypes:[e]})));const r=pt(e,t);return{errors:n,valid:r}}function Ht(e){const t=(0,nt.A)(e,(e=>{const t=e[Mt];return!B(t)&&!(0,Qe.A)(t)&&!(0,o.A)(t,"exec")&&!(0,m.A)(t)}));const n=(0,a.A)(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' can only be a RegExp, a"+" Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Kn.INVALID_PATTERN,tokenTypes:[e]})));const r=pt(e,t);return{errors:n,valid:r}}const zt=/[^\\][$]/;function Yt(e){class t extends Ke.z{constructor(){super(...arguments);this.found=false}visitEndAnchor(e){this.found=true}}const n=(0,nt.A)(e,(e=>{const n=e.PATTERN;try{const e=xt(n);const r=new t;r.visit(e);return r.found}catch(r){return zt.test(n.source)}}));const r=(0,a.A)(n,(e=>({message:"Unexpected RegExp Anchor Error:\n"+"\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n"+"\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS"+"\tfor details.",type:Kn.EOI_ANCHOR_FOUND,tokenTypes:[e]})));return r}function qt(e){const t=(0,nt.A)(e,(e=>{const t=e.PATTERN;return t.test("")}));const n=(0,a.A)(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:Kn.EMPTY_MATCH_PATTERN,tokenTypes:[e]})));return n}const Xt=/[^\\[][\^]|^\^/;function Qt(e){class t extends Ke.z{constructor(){super(...arguments);this.found=false}visitStartAnchor(e){this.found=true}}const n=(0,nt.A)(e,(e=>{const n=e.PATTERN;try{const e=xt(n);const r=new t;r.visit(e);return r.found}catch(r){return Xt.test(n.source)}}));const r=(0,a.A)(n,(e=>({message:"Unexpected RegExp Anchor Error:\n"+"\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n"+"\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS"+"\tfor details.",type:Kn.SOI_ANCHOR_FOUND,tokenTypes:[e]})));return r}function Zt(e){const t=(0,nt.A)(e,(e=>{const t=e[Mt];return t instanceof RegExp&&(t.multiline||t.global)}));const n=(0,a.A)(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Kn.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]})));return n}function Jt(e){const t=[];let n=(0,a.A)(e,(n=>(0,tt.A)(e,((e,r)=>{if(n.PATTERN.source===r.PATTERN.source&&!me(t,r)&&r.PATTERN!==Vn.NA){t.push(r);e.push(r);return e}return e}),[])));n=gt(n);const r=(0,nt.A)(n,(e=>e.length>1));const i=(0,a.A)(r,(e=>{const t=(0,a.A)(e,(e=>e.name));const n=vt(e).PATTERN;return{message:`The same RegExp pattern ->${n}<-`+`has been used in all of the following Token Types: ${t.join(", ")} <-`,type:Kn.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}}));return i}function en(e){const t=(0,nt.A)(e,(e=>{if(!(0,o.A)(e,"GROUP")){return false}const t=e.GROUP;return t!==Vn.SKIPPED&&t!==Vn.NA&&!(0,m.A)(t)}));const n=(0,a.A)(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Kn.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]})));return n}function tn(e,t){const n=(0,nt.A)(e,(e=>e.PUSH_MODE!==undefined&&!me(t,e.PUSH_MODE)));const r=(0,a.A)(n,(e=>{const t=`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-`+`which does not exist`;return{message:t,type:Kn.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]}}));return r}function nn(e){const t=[];const n=(0,tt.A)(e,((e,t,n)=>{const r=t.PATTERN;if(r===Vn.NA){return e}if((0,m.A)(r)){e.push({str:r,idx:n,tokenType:t})}else if(B(r)&&sn(r)){e.push({str:r.source,idx:n,tokenType:t})}return e}),[]);(0,r.A)(e,((e,i)=>{(0,r.A)(n,(({str:n,idx:r,tokenType:s})=>{if(i${s.name}<- can never be matched.\n`+`Because it appears AFTER the Token Type ->${e.name}<-`+`in the lexer's definition.\n`+`See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:n,type:Kn.UNREACHABLE_PATTERN,tokenTypes:[e,s]})}}))}));return t}function rn(e,t){if(B(t)){const n=t.exec(e);return n!==null&&n.index===0}else if((0,Qe.A)(t)){return t(e,0,[],{})}else if((0,o.A)(t,"exec")){return t.exec(e,0,[],{})}else if(typeof t==="string"){return t===e}else{throw Error("non exhaustive match")}}function sn(e){const t=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,At.A)(t,(t=>e.source.indexOf(t)!==-1))===undefined}function an(e){const t=e.ignoreCase?"i":"";return new RegExp(`^(?:${e.source})`,t)}function on(e){const t=e.ignoreCase?"iy":"y";return new RegExp(`${e.source}`,t)}function cn(e,t,n){const i=[];if(!(0,o.A)(e,Dt)){i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Dt+"> property in its definition\n",type:Kn.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE})}if(!(0,o.A)(e,Ut)){i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ut+"> property in its definition\n",type:Kn.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY})}if((0,o.A)(e,Ut)&&(0,o.A)(e,Dt)&&!(0,o.A)(e.modes,e.defaultMode)){i.push({message:`A MultiMode Lexer cannot be initialized with a ${Dt}: <${e.defaultMode}>`+`which does not exist\n`,type:Kn.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST})}if((0,o.A)(e,Ut)){(0,r.A)(e.modes,((e,t)=>{(0,r.A)(e,((n,s)=>{if((0,Be.A)(n)){i.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:`+`<${t}> at index: <${s}>\n`,type:Kn.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})}else if((0,o.A)(n,"LONGER_ALT")){const s=(0,ce.A)(n.LONGER_ALT)?n.LONGER_ALT:[n.LONGER_ALT];(0,r.A)(s,(r=>{if(!(0,Be.A)(r)&&!me(e,r)){i.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${r.name}> on token <${n.name}> outside of mode <${t}>\n`,type:Kn.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})}}))}}))}))}return i}function un(e,t,n){const s=[];let a=false;const c=gt((0,Le.A)((0,i.A)(e.modes)));const u=Xe(c,(e=>e[Mt]===Vn.NA));const l=gn(n);if(t){(0,r.A)(u,(e=>{const t=pn(e,l);if(t!==false){const n=mn(e,t);const r={message:n,type:t.issue,tokenType:e};s.push(r)}else{if((0,o.A)(e,"LINE_BREAKS")){if(e.LINE_BREAKS===true){a=true}}else{if(Pt(l,e.PATTERN)){a=true}}}}))}if(t&&!a){s.push({message:"Warning: No LINE_BREAKS Found.\n"+"\tThis Lexer has been defined to track line and column information,\n"+"\tBut none of the Token Types can be identified as matching a line terminator.\n"+"\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n"+"\tfor details.",type:Kn.NO_LINE_BREAKS_FLAGS})}return s}function ln(e){const t={};const n=(0,R.A)(e);(0,r.A)(n,(n=>{const r=e[n];if((0,ce.A)(r)){t[n]=[]}else{throw Error("non exhaustive match")}}));return t}function dn(e){const t=e.PATTERN;if(B(t)){return false}else if((0,Qe.A)(t)){return true}else if((0,o.A)(t,"exec")){return true}else if((0,m.A)(t)){return false}else{throw Error("non exhaustive match")}}function fn(e){if((0,m.A)(e)&&e.length===1){return e.charCodeAt(0)}else{return false}}const hn={test:function(e){const t=e.length;for(let n=this.lastIndex;n Token Type\n`+`\t Root cause: ${t.errMsg}.\n`+"\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR"}else if(t.issue===Kn.CUSTOM_LINE_BREAK){return"Warning: A Custom Token Pattern should specify the option.\n"+`\tThe problem is in the <${e.name}> Token Type\n`+"\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK"}else{throw Error("non exhaustive match")}}function gn(e){const t=(0,a.A)(e,(e=>{if((0,m.A)(e)){return e.charCodeAt(0)}else{return e}}));return t}function yn(e,t,n){if(e[t]===undefined){e[t]=[n]}else{e[t].push(n)}}const vn=256;let An=[];function Tn(e){return e255?255+~~(e/255):e}}}var En=n(63077);var kn=n(42111);var xn=n(80359);function $n(e){const t=(new Date).getTime();const n=e();const r=(new Date).getTime();const i=r-t;return{time:i,value:n}}function wn(e,t){const n=e.tokenTypeIdx;if(n===t.tokenTypeIdx){return true}else{return t.isParent===true&&t.categoryMatchesMap[n]===true}}function In(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}let Sn=1;const Cn={};function Nn(e){const t=Ln(e);bn(t);On(t);_n(t);(0,r.A)(t,(e=>{e.isParent=e.categoryMatches.length>0}))}function Ln(e){let t=(0,c.A)(e);let n=e;let r=true;while(r){n=gt((0,Le.A)((0,a.A)(n,(e=>e.CATEGORIES))));const e=pt(n,t);t=t.concat(e);if((0,s.A)(e)){r=false}else{n=e}}return t}function bn(e){(0,r.A)(e,(e=>{if(!Mn(e)){Cn[Sn]=e;e.tokenTypeIdx=Sn++}if(Dn(e)&&!(0,ce.A)(e.CATEGORIES)){e.CATEGORIES=[e.CATEGORIES]}if(!Dn(e)){e.CATEGORIES=[]}if(!Un(e)){e.categoryMatches=[]}if(!Fn(e)){e.categoryMatchesMap={}}}))}function _n(e){(0,r.A)(e,(e=>{e.categoryMatches=[];(0,r.A)(e.categoryMatchesMap,((t,n)=>{e.categoryMatches.push(Cn[n].tokenTypeIdx)}))}))}function On(e){(0,r.A)(e,(e=>{Pn([],e)}))}function Pn(e,t){(0,r.A)(e,(e=>{t.categoryMatchesMap[e.tokenTypeIdx]=true}));(0,r.A)(t.CATEGORIES,(n=>{const r=e.concat(t);if(!me(r,n)){Pn(r,n)}}))}function Mn(e){return(0,o.A)(e,"tokenTypeIdx")}function Dn(e){return(0,o.A)(e,"CATEGORIES")}function Un(e){return(0,o.A)(e,"categoryMatches")}function Fn(e){return(0,o.A)(e,"categoryMatchesMap")}function Gn(e){return(0,o.A)(e,"tokenTypeIdx")}const Bn={buildUnableToPopLexerModeMessage(e){return`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(e,t,n,r,i){return`unexpected character: ->${e.charAt(t)}<- at offset: ${t},`+` skipped ${n} characters.`}};var Kn;(function(e){e[e["MISSING_PATTERN"]=0]="MISSING_PATTERN";e[e["INVALID_PATTERN"]=1]="INVALID_PATTERN";e[e["EOI_ANCHOR_FOUND"]=2]="EOI_ANCHOR_FOUND";e[e["UNSUPPORTED_FLAGS_FOUND"]=3]="UNSUPPORTED_FLAGS_FOUND";e[e["DUPLICATE_PATTERNS_FOUND"]=4]="DUPLICATE_PATTERNS_FOUND";e[e["INVALID_GROUP_TYPE_FOUND"]=5]="INVALID_GROUP_TYPE_FOUND";e[e["PUSH_MODE_DOES_NOT_EXIST"]=6]="PUSH_MODE_DOES_NOT_EXIST";e[e["MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE"]=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE";e[e["MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY"]=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY";e[e["MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST"]=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST";e[e["LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED"]=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED";e[e["SOI_ANCHOR_FOUND"]=11]="SOI_ANCHOR_FOUND";e[e["EMPTY_MATCH_PATTERN"]=12]="EMPTY_MATCH_PATTERN";e[e["NO_LINE_BREAKS_FLAGS"]=13]="NO_LINE_BREAKS_FLAGS";e[e["UNREACHABLE_PATTERN"]=14]="UNREACHABLE_PATTERN";e[e["IDENTIFY_TERMINATOR"]=15]="IDENTIFY_TERMINATOR";e[e["CUSTOM_LINE_BREAK"]=16]="CUSTOM_LINE_BREAK";e[e["MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"]=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(Kn||(Kn={}));const jn={deferDefinitionErrorsHandling:false,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:false,safeMode:false,errorMessageProvider:Bn,traceInitPerf:false,skipValidations:false,recoveryEnabled:true};Object.freeze(jn);class Vn{constructor(e,t=jn){this.lexerDefinition=e;this.lexerDefinitionErrors=[];this.lexerDefinitionWarning=[];this.patternIdxToConfig={};this.charCodeToPatternIdxToConfig={};this.modes=[];this.emptyGroups={};this.trackStartLines=true;this.trackEndLines=true;this.hasCustom=false;this.canModeBeOptimized={};this.TRACE_INIT=(e,t)=>{if(this.traceInitPerf===true){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join("\t");if(this.traceInitIndent`)}const{time:r,value:i}=$n(t);const s=r>10?console.warn:console.log;if(this.traceInitIndent time: ${r}ms`)}this.traceInitIndent--;return i}else{return t()}};if(typeof t==="boolean"){throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\n"+"a boolean 2nd argument is no longer supported")}this.config=$({},jn,t);const n=this.config.traceInitPerf;if(n===true){this.traceInitMaxIdent=Infinity;this.traceInitPerf=true}else if(typeof n==="number"){this.traceInitMaxIdent=n;this.traceInitPerf=true}this.traceInitIndent=-1;this.TRACE_INIT("Lexer Constructor",(()=>{let n;let i=true;this.TRACE_INIT("Lexer Config handling",(()=>{if(this.config.lineTerminatorsPattern===jn.lineTerminatorsPattern){this.config.lineTerminatorsPattern=hn}else{if(this.config.lineTerminatorCharacters===jn.lineTerminatorCharacters){throw Error("Error: Missing property on the Lexer config.\n"+"\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS")}}if(t.safeMode&&t.ensureOptimizations){throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.')}this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking);this.trackEndLines=/full/i.test(this.config.positionTracking);if((0,ce.A)(e)){n={modes:{defaultMode:(0,c.A)(e)},defaultMode:Dt}}else{i=false;n=(0,c.A)(e)}}));if(this.config.skipValidations===false){this.TRACE_INIT("performRuntimeChecks",(()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(cn(n,this.trackStartLines,this.config.lineTerminatorCharacters))}));this.TRACE_INIT("performWarningRuntimeChecks",(()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(un(n,this.trackStartLines,this.config.lineTerminatorCharacters))}))}n.modes=n.modes?n.modes:{};(0,r.A)(n.modes,((e,t)=>{n.modes[t]=Xe(e,(e=>(0,Be.A)(e)))}));const o=(0,R.A)(n.modes);(0,r.A)(n.modes,((e,n)=>{this.TRACE_INIT(`Mode: <${n}> processing`,(()=>{this.modes.push(n);if(this.config.skipValidations===false){this.TRACE_INIT(`validatePatterns`,(()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(jt(e,o))}))}if((0,s.A)(this.lexerDefinitionErrors)){Nn(e);let r;this.TRACE_INIT(`analyzeTokenTypes`,(()=>{r=Kt(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}));this.patternIdxToConfig[n]=r.patternIdxToConfig;this.charCodeToPatternIdxToConfig[n]=r.charCodeToPatternIdxToConfig;this.emptyGroups=$({},this.emptyGroups,r.emptyGroups);this.hasCustom=r.hasCustom||this.hasCustom;this.canModeBeOptimized[n]=r.canBeOptimized}}))}));this.defaultMode=n.defaultMode;if(!(0,s.A)(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const e=(0,a.A)(this.lexerDefinitionErrors,(e=>e.message));const t=e.join("-----------------------\n");throw new Error("Errors detected in definition of Lexer:\n"+t)}(0,r.A)(this.lexerDefinitionWarning,(e=>{Rt(e.message)}));this.TRACE_INIT("Choosing sub-methods implementations",(()=>{if(Ft){this.chopInput=En.A;this.match=this.matchWithTest}else{this.updateLastIndex=kn.A;this.match=this.matchWithExec}if(i){this.handleModes=kn.A}if(this.trackStartLines===false){this.computeNewColumn=En.A}if(this.trackEndLines===false){this.updateTokenEndLineColumnLocation=kn.A}if(/full/i.test(this.config.positionTracking)){this.createTokenInstance=this.createFullToken}else if(/onlyStart/i.test(this.config.positionTracking)){this.createTokenInstance=this.createStartOnlyToken}else if(/onlyOffset/i.test(this.config.positionTracking)){this.createTokenInstance=this.createOffsetOnlyToken}else{throw Error(`Invalid config option: "${this.config.positionTracking}"`)}if(this.hasCustom){this.addToken=this.addTokenUsingPush;this.handlePayload=this.handlePayloadWithCustom}else{this.addToken=this.addTokenUsingMemberAccess;this.handlePayload=this.handlePayloadNoCustom}}));this.TRACE_INIT("Failed Optimization Warnings",(()=>{const e=(0,tt.A)(this.canModeBeOptimized,((e,t,n)=>{if(t===false){e.push(n)}return e}),[]);if(t.ensureOptimizations&&!(0,s.A)(e)){throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized.\n`+'\t Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\n'+"\t Or inspect the console log for details on how to resolve these issues.")}}));this.TRACE_INIT("clearRegExpParserCache",(()=>{$t()}));this.TRACE_INIT("toFastProperties",(()=>{u(this)}))}))}tokenize(e,t=this.defaultMode){if(!(0,s.A)(this.lexerDefinitionErrors)){const e=(0,a.A)(this.lexerDefinitionErrors,(e=>e.message));const t=e.join("-----------------------\n");throw new Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+t)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,r,i,s,a,o,c,u,l,d,f,h,p,m,g,y;const v=e;const A=v.length;let T=0;let R=0;const E=this.hasCustom?0:Math.floor(e.length/10);const k=new Array(E);const x=[];let $=this.trackStartLines?1:undefined;let w=this.trackStartLines?1:undefined;const I=ln(this.emptyGroups);const S=this.trackStartLines;const C=this.config.lineTerminatorsPattern;let N=0;let L=[];let b=[];const _=[];const O=[];Object.freeze(O);let P;function M(){return L}function D(e){const t=Tn(e);const n=b[t];if(n===undefined){return O}else{return n}}const U=e=>{if(_.length===1&&e.tokenType.PUSH_MODE===undefined){const t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);x.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{_.pop();const e=(0,xn.A)(_);L=this.patternIdxToConfig[e];b=this.charCodeToPatternIdxToConfig[e];N=L.length;const t=this.canModeBeOptimized[e]&&this.config.safeMode===false;if(b&&t){P=D}else{P=M}}};function F(e){_.push(e);b=this.charCodeToPatternIdxToConfig[e];L=this.patternIdxToConfig[e];N=L.length;N=L.length;const t=this.canModeBeOptimized[e]&&this.config.safeMode===false;if(b&&t){P=D}else{P=M}}F.call(this,t);let G;const B=this.config.recoveryEnabled;while(To.length){o=s;c=u;G=t;break}}}break}}if(o!==null){l=o.length;d=G.group;if(d!==undefined){f=G.tokenTypeIdx;h=this.createTokenInstance(o,T,f,G.tokenType,$,w,l);this.handlePayload(h,c);if(d===false){R=this.addToken(k,R,h)}else{I[d].push(h)}}e=this.chopInput(e,l);T=T+l;w=this.computeNewColumn(w,l);if(S===true&&G.canLineTerminator===true){let e=0;let t;let n;C.lastIndex=0;do{t=C.test(o);if(t===true){n=C.lastIndex-1;e++}}while(t===true);if(e!==0){$=$+e;w=l-n;this.updateTokenEndLineColumnLocation(h,d,n,e,$,w,l)}}this.handleModes(G,U,F,h)}else{const t=T;const n=$;const i=w;let s=B===false;while(s===false&&Te.concat(t)),[]);const n=(0,a.A)(t,(e=>`[${(0,a.A)(e,(e=>Wn(e))).join(", ")}]`));const r=(0,a.A)(n,((e,t)=>` ${t+1}. ${e}`));const i=`one of these possible Token sequences:\n${r.join("\n")}`;return s+i+c}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:n,ruleName:r}){const i="Expecting: ";const s=vt(t).image;const o="\nbut found: '"+s+"'";if(n){return i+n+o}else{const t=(0,a.A)(e,(e=>`[${(0,a.A)(e,(e=>Wn(e))).join(",")}]`));const n=`expecting at least one iteration which starts with one of these possible Token sequences::\n `+`<${t.join(" ,")}>`;return i+n+o}}};Object.freeze(cr);const ur={buildRuleNotFoundError(e,t){const n="Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+"<-\n"+"inside top level rule: ->"+e.name+"<-";return n}};const lr={buildDuplicateFoundError(e,t){function n(e){if(e instanceof ee){return e.terminalType.name}else if(e instanceof W){return e.nonTerminalName}else{return""}}const r=e.name;const i=vt(t);const s=i.idx;const a=$e(i);const o=n(i);const c=s>0;let u=`->${a}${c?s:""}<- ${o?`with argument: ->${o}<-`:""}\n appears more than once (${t.length} times) in the top level rule: ->${r}<-. \n For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES \n `;u=u.replace(/[ \t]+/g," ");u=u.replace(/\s\s+/g,"\n");return u},buildNamespaceConflictError(e){const t=`Namespace conflict found in grammar.\n`+`The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>.\n`+`To resolve this make sure each Terminal and Non-Terminal names are unique\n`+`This is easy to accomplish by using the convention that Terminal names start with an uppercase letter\n`+`and Non-Terminal names start with a lower case letter.`;return t},buildAlternationPrefixAmbiguityError(e){const t=(0,a.A)(e.prefixPath,(e=>Wn(e))).join(", ");const n=e.alternation.idx===0?"":e.alternation.idx;const r=`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix\n`+`in inside <${e.topLevelRule.name}> Rule,\n`+`<${t}> may appears as a prefix path in all these alternatives.\n`+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\n`+`For Further details.`;return r},buildAlternationAmbiguityError(e){const t=(0,a.A)(e.prefixPath,(e=>Wn(e))).join(", ");const n=e.alternation.idx===0?"":e.alternation.idx;let r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in `+` inside <${e.topLevelRule.name}> Rule,\n`+`<${t}> may appears as a prefix path in all these alternatives.\n`;r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\n`+`For Further details.`;return r},buildEmptyRepetitionError(e){let t=$e(e.repetition);if(e.repetition.idx!==0){t+=e.repetition.idx}const n=`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens.\n`+`This could lead to an infinite loop.`;return n},buildTokenNameError(e){return"deprecated"},buildEmptyAlternationError(e){const t=`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}>`+` in inside <${e.topLevelRule.name}> Rule.\n`+`Only the last alternative may be an empty alternative.`;return t},buildTooManyAlternativesError(e){const t=`An Alternation cannot have more than 256 alternatives:\n`+` inside <${e.topLevelRule.name}> Rule.\n has ${e.alternation.definition.length+1} alternatives.`;return t},buildLeftRecursionError(e){const t=e.topLevelRule.name;const n=(0,a.A)(e.leftRecursionPath,(e=>e.name));const r=`${t} --\x3e ${n.concat([t]).join(" --\x3e ")}`;const i=`Left Recursion found in grammar.\n`+`rule: <${t}> can be invoked from itself (directly or indirectly)\n`+`without consuming any Tokens. The grammar path that causes this is: \n ${r}\n`+` To fix this refactor your grammar to remove the left recursion.\n`+`see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`;return i},buildInvalidRuleNameError(e){return"deprecated"},buildDuplicateRuleNameError(e){let t;if(e.topLevelRule instanceof H){t=e.topLevelRule.name}else{t=e.topLevelRule}const n=`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`;return n}};function dr(e,t){const n=new fr(e,t);n.resolveRefs();return n.errors}class fr extends re{constructor(e,t){super();this.nameToTopRule=e;this.errMsgProvider=t;this.errors=[]}resolveRefs(){(0,r.A)((0,i.A)(this.nameToTopRule),(e=>{this.currTopLevel=e;e.accept(this)}))}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(!t){const t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:Ms.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}else{e.referencedRule=t}}}var hr=n(57852);var pr=n(48657);function mr(e,t,n,r){var i=-1,s=e==null?0:e.length;while(++i{if((0,s.A)(e.definition)===false){i=u(e.definition)}}));return i}else if(t instanceof ee){n.push(t.terminalType)}else{throw Error("non exhaustive match")}a++}i.push({partialPath:n,suffixDef:p(e,a)});return i}function Pr(e,t,n,r){const i="EXIT_NONE_TERMINAL";const a=[i];const o="EXIT_ALTERNATIVE";let u=false;const l=t.length;const d=l-r-1;const f=[];const h=[];h.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});while(!(0,s.A)(h)){const e=h.pop();if(e===o){if(u&&(0,xn.A)(h).idx<=d){h.pop()}continue}const r=e.def;const m=e.idx;const g=e.ruleStack;const y=e.occurrenceStack;if((0,s.A)(r)){continue}const v=r[0];if(v===i){const e={idx:m,def:p(r),ruleStack:wr(g),occurrenceStack:wr(y)};h.push(e)}else if(v instanceof ee){if(m=0;e--){const t=v.definition[e];const n={idx:m,def:t.definition.concat(p(r)),ruleStack:g,occurrenceStack:y};h.push(n);h.push(o)}}else if(v instanceof z){h.push({idx:m,def:v.definition.concat(p(r)),ruleStack:g,occurrenceStack:y})}else if(v instanceof H){h.push(Mr(v,m,g,y))}else{throw Error("non exhaustive match")}}return f}function Mr(e,t,n,r){const i=(0,c.A)(n);i.push(e.name);const s=(0,c.A)(r);s.push(1);return{idx:t,def:e.definition,ruleStack:i,occurrenceStack:s}}var Dr;(function(e){e[e["OPTION"]=0]="OPTION";e[e["REPETITION"]=1]="REPETITION";e[e["REPETITION_MANDATORY"]=2]="REPETITION_MANDATORY";e[e["REPETITION_MANDATORY_WITH_SEPARATOR"]=3]="REPETITION_MANDATORY_WITH_SEPARATOR";e[e["REPETITION_WITH_SEPARATOR"]=4]="REPETITION_WITH_SEPARATOR";e[e["ALTERNATION"]=5]="ALTERNATION"})(Dr||(Dr={}));function Ur(e){if(e instanceof Y||e==="Option"){return Dr.OPTION}else if(e instanceof Q||e==="Repetition"){return Dr.REPETITION}else if(e instanceof q||e==="RepetitionMandatory"){return Dr.REPETITION_MANDATORY}else if(e instanceof X||e==="RepetitionMandatoryWithSeparator"){return Dr.REPETITION_MANDATORY_WITH_SEPARATOR}else if(e instanceof Z||e==="RepetitionWithSeparator"){return Dr.REPETITION_WITH_SEPARATOR}else if(e instanceof J||e==="Alternation"){return Dr.ALTERNATION}else{throw Error("non exhaustive match")}}function Fr(e){const{occurrence:t,rule:n,prodType:r,maxLookahead:i}=e;const s=Ur(r);if(s===Dr.ALTERNATION){return Xr(t,n,i)}else{return Qr(t,n,s,i)}}function Gr(e,t,n,r,i,s){const a=Xr(e,t,n);const o=ei(a)?In:wn;return s(a,r,o,i)}function Br(e,t,n,r,i,s){const a=Qr(e,t,i,n);const o=ei(a)?In:wn;return s(a[0],o,r)}function Kr(e,t,n,i){const s=e.length;const c=Re(e,(e=>Re(e,(e=>e.length===1))));if(t){return function(t){const r=(0,a.A)(t,(e=>e.GATE));for(let i=0;i(0,Le.A)(e)));const n=(0,tt.A)(t,((e,t,n)=>{(0,r.A)(t,(t=>{if(!(0,o.A)(e,t.tokenTypeIdx)){e[t.tokenTypeIdx]=n}(0,r.A)(t.categoryMatches,(t=>{if(!(0,o.A)(e,t)){e[t]=n}}))}));return e}),{});return function(){const e=this.LA(1);return n[e.tokenTypeIdx]}}else{return function(){for(let t=0;te.length===1));const a=e.length;if(i&&!n){const t=(0,Le.A)(e);if(t.length===1&&(0,s.A)(t[0].categoryMatches)){const e=t[0];const n=e.tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===n}}else{const e=(0,tt.A)(t,((e,t,n)=>{e[t.tokenTypeIdx]=true;(0,r.A)(t.categoryMatches,(t=>{e[t]=true}));return e}),[]);return function(){const t=this.LA(1);return e[t.tokenTypeIdx]===true}}}else{return function(){e:for(let n=0;nOr([e],1)));const i=Hr(n.length);const o=(0,a.A)(n,(e=>{const t={};(0,r.A)(e,(e=>{const n=zr(e.partialPath);(0,r.A)(n,(e=>{t[e]=true}))}));return t}));let c=n;for(let a=1;a<=t;a++){const e=c;c=Hr(e.length);for(let n=0;n{const t=zr(e.partialPath);(0,r.A)(t,(e=>{o[n][e]=true}))}))}}}}return i}function Xr(e,t,n,r){const i=new Wr(e,Dr.ALTERNATION,r);t.accept(i);return qr(i.result,n)}function Qr(e,t,n,r){const i=new Wr(e,n);t.accept(i);const s=i.result;const a=new Vr(t,e,n);const o=a.startWalking();const c=new z({definition:s});const u=new z({definition:o});return qr([c,u],r)}function Zr(e,t){e:for(let n=0;n{const r=t[n];return e===r||r.categoryMatchesMap[e.tokenTypeIdx]}))}function ei(e){return Re(e,(e=>Re(e,(e=>Re(e,(e=>(0,s.A)(e.categoryMatches)))))))}function ti(e){const t=e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName});return(0,a.A)(t,(e=>Object.assign({type:Ms.CUSTOM_LOOKAHEAD_VALIDATION},e)))}function ni(e,t,n,r){const i=(0,hr.A)(e,(e=>ri(e,n)));const s=Ai(e,t,n);const a=(0,hr.A)(e,(e=>mi(e,n)));const o=(0,hr.A)(e,(t=>oi(t,e,r,n)));return i.concat(s,a,o)}function ri(e,t){const n=new ai;e.accept(n);const r=n.allProductions;const s=xr(r,ii);const o=L(s,(e=>e.length>1));const c=(0,a.A)((0,i.A)(o),(n=>{const r=vt(n);const i=t.buildDuplicateFoundError(e,n);const s=$e(r);const a={message:i,type:Ms.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:s,occurrence:r.idx};const o=si(r);if(o){a.parameter=o}return a}));return c}function ii(e){return`${$e(e)}_#_${e.idx}_#_${si(e)}`}function si(e){if(e instanceof ee){return e.terminalType.name}else if(e instanceof W){return e.nonTerminalName}else{return""}}class ai extends re{constructor(){super(...arguments);this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}function oi(e,t,n,r){const i=[];const s=(0,tt.A)(t,((t,n)=>{if(n.name===e.name){return t+1}return t}),0);if(s>1){const t=r.buildDuplicateRuleNameError({topLevelRule:e,grammarName:n});i.push({message:t,type:Ms.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}function ci(e,t,n){const r=[];let i;if(!me(t,e)){i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${n}<-`+`as it is not defined in any of the super grammars `;r.push({message:i,type:Ms.INVALID_RULE_OVERRIDE,ruleName:e})}return r}function ui(e,t,n,r=[]){const i=[];const a=li(t.definition);if((0,s.A)(a)){return[]}else{const t=e.name;const s=me(a,e);if(s){i.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:r}),type:Ms.LEFT_RECURSION,ruleName:t})}const o=pt(a,r.concat([e]));const u=(0,hr.A)(o,(t=>{const i=(0,c.A)(r);i.push(t);return ui(e,t,n,i)}));return i.concat(u)}}function li(e){let t=[];if((0,s.A)(e)){return t}const n=vt(e);if(n instanceof W){t.push(n.referencedRule)}else if(n instanceof z||n instanceof Y||n instanceof q||n instanceof X||n instanceof Z||n instanceof Q){t=t.concat(li(n.definition))}else if(n instanceof J){t=(0,Le.A)((0,a.A)(n.definition,(e=>li(e.definition))))}else if(n instanceof ee){}else{throw Error("non exhaustive match")}const r=ke(n);const i=e.length>1;if(r&&i){const n=p(e);return t.concat(li(n))}else{return t}}class di extends re{constructor(){super(...arguments);this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function fi(e,t){const n=new di;e.accept(n);const r=n.alternations;const i=(0,hr.A)(r,(n=>{const r=wr(n.definition);return(0,hr.A)(r,((r,i)=>{const a=Pr([r],[],wn,1);if((0,s.A)(a)){return[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:n,emptyChoiceIdx:i}),type:Ms.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:n.idx,alternative:i+1}]}else{return[]}}))}));return i}function hi(e,t,n){const r=new di;e.accept(r);let i=r.alternations;i=Xe(i,(e=>e.ignoreAmbiguities===true));const s=(0,hr.A)(i,(r=>{const i=r.idx;const s=r.maxLookahead||t;const a=Xr(i,e,s,r);const o=yi(a,r,e,n);const c=vi(a,r,e,n);return o.concat(c)}));return s}class pi extends re{constructor(){super(...arguments);this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}function mi(e,t){const n=new di;e.accept(n);const r=n.alternations;const i=(0,hr.A)(r,(n=>{if(n.definition.length>255){return[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:n}),type:Ms.TOO_MANY_ALTS,ruleName:e.name,occurrence:n.idx}]}else{return[]}}));return i}function gi(e,t,n){const i=[];(0,r.A)(e,(e=>{const a=new pi;e.accept(a);const o=a.allProductions;(0,r.A)(o,(r=>{const a=Ur(r);const o=r.maxLookahead||t;const c=r.idx;const u=Qr(c,e,a,o);const l=u[0];if((0,s.A)((0,Le.A)(l))){const t=n.buildEmptyRepetitionError({topLevelRule:e,repetition:r});i.push({message:t,type:Ms.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}}))}));return i}function yi(e,t,n,i){const s=[];const o=(0,tt.A)(e,((n,i,a)=>{if(t.definition[a].ignoreAmbiguities===true){return n}(0,r.A)(i,(i=>{const o=[a];(0,r.A)(e,((e,n)=>{if(a!==n&&Zr(e,i)&&t.definition[n].ignoreAmbiguities!==true){o.push(n)}}));if(o.length>1&&!Zr(s,i)){s.push(i);n.push({alts:o,path:i})}}));return n}),[]);const c=(0,a.A)(o,(e=>{const r=(0,a.A)(e.alts,(e=>e+1));const s=i.buildAlternationAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:r,prefixPath:e.path});return{message:s,type:Ms.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:t.idx,alternatives:e.alts}}));return c}function vi(e,t,n,r){const i=(0,tt.A)(e,((e,t,n)=>{const r=(0,a.A)(t,(e=>({idx:n,path:e})));return e.concat(r)}),[]);const s=gt((0,hr.A)(i,(e=>{const s=t.definition[e.idx];if(s.ignoreAmbiguities===true){return[]}const o=e.idx;const c=e.path;const u=(0,nt.A)(i,(e=>t.definition[e.idx].ignoreAmbiguities!==true&&e.idx{const i=[e.idx+1,o+1];const s=t.idx===0?"":t.idx;const a=r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path});return{message:a,type:Ms.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:s,alternatives:i}}));return l})));return s}function Ai(e,t,n){const i=[];const s=(0,a.A)(t,(e=>e.name));(0,r.A)(e,(e=>{const t=e.name;if(me(s,t)){const r=n.buildNamespaceConflictError(e);i.push({message:r,type:Ms.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}));return i}function Ti(e){const t=(0,je.A)(e,{errMsgProvider:ur});const n={};(0,r.A)(e.rules,(e=>{n[e.name]=e}));return dr(n,t.errMsgProvider)}function Ri(e){e=(0,je.A)(e,{errMsgProvider:lr});return ni(e.rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}const Ei="MismatchedTokenException";const ki="NoViableAltException";const xi="EarlyExitException";const $i="NotAllInputParsedException";const wi=[Ei,ki,xi,$i];Object.freeze(wi);function Ii(e){return me(wi,e.name)}class Si extends Error{constructor(e,t){super(e);this.token=t;this.resyncedTokens=[];Object.setPrototypeOf(this,new.target.prototype);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}}class Ci extends Si{constructor(e,t,n){super(e,t);this.previousToken=n;this.name=Ei}}class Ni extends Si{constructor(e,t,n){super(e,t);this.previousToken=n;this.name=ki}}class Li extends Si{constructor(e,t){super(e,t);this.name=$i}}class bi extends Si{constructor(e,t,n){super(e,t);this.previousToken=n;this.name=xi}}const _i={};const Oi="InRuleRecoveryException";class Pi extends Error{constructor(e){super(e);this.name=Oi}}class Mi{initRecoverable(e){this.firstAfterRepMap={};this.resyncFollows={};this.recoveryEnabled=(0,o.A)(e,"recoveryEnabled")?e.recoveryEnabled:Os.recoveryEnabled;if(this.recoveryEnabled){this.attemptInRepetitionRecovery=Di}}getTokenToInsert(e){const t=ar(e,"",NaN,NaN,NaN,NaN,NaN,NaN);t.isInsertedInRecovery=true;return t}canTokenTypeBeInsertedInRecovery(e){return true}canTokenTypeBeDeletedInRecovery(e){return true}tryInRepetitionRecovery(e,t,n,r){const i=this.findReSyncTokenType();const s=this.exportLexerState();const a=[];let o=false;const c=this.LA(1);let u=this.LA(1);const l=()=>{const e=this.LA(0);const t=this.errorMessageProvider.buildMismatchTokenMessage({expected:r,actual:c,previous:e,ruleName:this.getCurrRuleFullName()});const n=new Ci(t,c,this.LA(0));n.resyncedTokens=wr(a);this.SAVE_ERROR(n)};while(!o){if(this.tokenMatcher(u,r)){l();return}else if(n.call(this)){l();e.apply(this,t);return}else if(this.tokenMatcher(u,i)){o=true}else{u=this.SKIP_TOKEN();this.addToResyncTokens(u,a)}}this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,t,n){if(n===false){return false}if(this.tokenMatcher(this.LA(1),e)){return false}if(this.isBackTracking()){return false}if(this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t))){return false}return true}getFollowsForInRuleRecovery(e,t){const n=this.getCurrentGrammarPath(e,t);const r=this.getNextPossibleTokenTypes(n);return r}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){const t=this.getTokenToInsert(e);return t}if(this.canRecoverWithSingleTokenDeletion(e)){const e=this.SKIP_TOKEN();this.consumeToken();return e}throw new Pi("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)){return false}if((0,s.A)(t)){return false}const n=this.LA(1);const r=(0,At.A)(t,(e=>this.tokenMatcher(n,e)))!==undefined;return r}canRecoverWithSingleTokenDeletion(e){if(!this.canTokenTypeBeDeletedInRecovery(e)){return false}const t=this.tokenMatcher(this.LA(2),e);return t}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey();const n=this.getFollowSetFromFollowKey(t);return me(n,e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1);let n=2;while(true){const r=(0,At.A)(e,(e=>{const n=or(t,e);return n}));if(r!==undefined){return r}t=this.LA(n);n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1){return _i}const e=this.getLastExplicitRuleShortName();const t=this.getLastExplicitRuleOccurrenceIndex();const n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){const e=this.RULE_STACK;const t=this.RULE_OCCURRENCE_STACK;return(0,a.A)(e,((n,r)=>{if(r===0){return _i}return{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[r],inRule:this.shortRuleNameToFullName(e[r-1])}}))}flattenFollowSet(){const e=(0,a.A)(this.buildFullFollowKeyStack(),(e=>this.getFollowSetFromFollowKey(e)));return(0,Le.A)(e)}getFollowSetFromFollowKey(e){if(e===_i){return[sr]}const t=e.ruleName+e.idxInCallingRule+Me+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){if(!this.tokenMatcher(e,sr)){t.push(e)}return t}reSyncTo(e){const t=[];let n=this.LA(1);while(this.tokenMatcher(n,e)===false){n=this.SKIP_TOKEN();this.addToResyncTokens(n,t)}return wr(t)}attemptInRepetitionRecovery(e,t,n,r,i,s,a){}getCurrentGrammarPath(e,t){const n=this.getHumanReadableRuleStack();const r=(0,c.A)(this.RULE_OCCURRENCE_STACK);const i={ruleStack:n,occurrenceStack:r,lastTok:e,lastTokOccurrence:t};return i}getHumanReadableRuleStack(){return(0,a.A)(this.RULE_STACK,(e=>this.shortRuleNameToFullName(e)))}}function Di(e,t,n,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let c=this.firstAfterRepMap[o];if(c===undefined){const e=this.getCurrRuleFullName();const t=this.getGAstProductions()[e];const n=new s(t,i);c=n.startWalking();this.firstAfterRepMap[o]=c}let u=c.token;let l=c.occurrence;const d=c.isEndOfRule;if(this.RULE_STACK.length===1&&d&&u===undefined){u=sr;l=1}if(u===undefined||l===undefined){return}if(this.shouldInRepetitionRecoveryBeTried(u,l,a)){this.tryInRepetitionRecovery(e,t,n,u)}}const Ui=4;const Fi=8;const Gi=12;const Bi=8;const Ki=1<ui(e,e,lr)))}validateEmptyOrAlternatives(e){return(0,hr.A)(e,(e=>fi(e,lr)))}validateAmbiguousAlternationAlternatives(e,t){return(0,hr.A)(e,(e=>hi(e,t,lr)))}validateSomeNonEmptyLookaheadPath(e,t){return gi(e,t,lr)}buildLookaheadForAlternation(e){return Gr(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Kr)}buildLookaheadForOptional(e){return Br(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Ur(e.prodType),jr)}}class Qi{initLooksAhead(e){this.dynamicTokensEnabled=(0,o.A)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Os.dynamicTokensEnabled;this.maxLookahead=(0,o.A)(e,"maxLookahead")?e.maxLookahead:Os.maxLookahead;this.lookaheadStrategy=(0,o.A)(e,"lookaheadStrategy")?e.lookaheadStrategy:new Xi({maxLookahead:this.maxLookahead});this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){(0,r.A)(e,(e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,(()=>{const{alternation:t,repetition:n,option:i,repetitionMandatory:s,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:o}=es(e);(0,r.A)(t,(t=>{const n=t.idx===0?"":t.idx;this.TRACE_INIT(`${$e(t)}${n}`,(()=>{const n=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled});const r=Yi(this.fullRuleNameToShort[e.name],Ki,t.idx);this.setLaFuncCache(r,n)}))}));(0,r.A)(n,(t=>{this.computeLookaheadFunc(e,t.idx,Vi,"Repetition",t.maxLookahead,$e(t))}));(0,r.A)(i,(t=>{this.computeLookaheadFunc(e,t.idx,ji,"Option",t.maxLookahead,$e(t))}));(0,r.A)(s,(t=>{this.computeLookaheadFunc(e,t.idx,Wi,"RepetitionMandatory",t.maxLookahead,$e(t))}));(0,r.A)(a,(t=>{this.computeLookaheadFunc(e,t.idx,zi,"RepetitionMandatoryWithSeparator",t.maxLookahead,$e(t))}));(0,r.A)(o,(t=>{this.computeLookaheadFunc(e,t.idx,Hi,"RepetitionWithSeparator",t.maxLookahead,$e(t))}))}))}))}computeLookaheadFunc(e,t,n,r,i,s){this.TRACE_INIT(`${s}${t===0?"":t}`,(()=>{const s=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:r});const a=Yi(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(a,s)}))}getKeyForAutomaticLookahead(e,t){const n=this.getLastExplicitRuleShortName();return Yi(n,e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}}class Zi extends re{constructor(){super(...arguments);this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}}const Ji=new Zi;function es(e){Ji.reset();e.accept(Ji);const t=Ji.dslMethods;Ji.reset();return t}function ts(e,t){if(isNaN(e.startOffset)===true){e.startOffset=t.startOffset;e.endOffset=t.endOffset}else if(e.endOffsete.msg));throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\n\t`+`${t.join("\n\n").replace(/\n/g,"\n\t")}`)}}};n.prototype=r;n.prototype.constructor=n;n._RULE_NAMES=t;return n}function us(e,t,n){const i=function(){};as(i,e+"BaseSemanticsWithDefaults");const s=Object.create(n.prototype);(0,r.A)(t,(e=>{s[e]=os}));i.prototype=s;i.prototype.constructor=i;return i}var ls;(function(e){e[e["REDUNDANT_METHOD"]=0]="REDUNDANT_METHOD";e[e["MISSING_METHOD"]=1]="MISSING_METHOD"})(ls||(ls={}));function ds(e,t){const n=fs(e,t);return n}function fs(e,t){const n=(0,nt.A)(t,(t=>(0,Qe.A)(e[t])===false));const r=(0,a.A)(n,(t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:ls.MISSING_METHOD,methodName:t})));return gt(r)}class hs{initTreeBuilder(e){this.CST_STACK=[];this.outputCst=e.outputCst;this.nodeLocationTracking=(0,o.A)(e,"nodeLocationTracking")?e.nodeLocationTracking:Os.nodeLocationTracking;if(!this.outputCst){this.cstInvocationStateUpdate=kn.A;this.cstFinallyStateUpdate=kn.A;this.cstPostTerminal=kn.A;this.cstPostNonTerminal=kn.A;this.cstPostRule=kn.A}else{if(/full/i.test(this.nodeLocationTracking)){if(this.recoveryEnabled){this.setNodeLocationFromToken=ns;this.setNodeLocationFromNode=ns;this.cstPostRule=kn.A;this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery}else{this.setNodeLocationFromToken=kn.A;this.setNodeLocationFromNode=kn.A;this.cstPostRule=this.cstPostRuleFull;this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular}}else if(/onlyOffset/i.test(this.nodeLocationTracking)){if(this.recoveryEnabled){this.setNodeLocationFromToken=ts;this.setNodeLocationFromNode=ts;this.cstPostRule=kn.A;this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery}else{this.setNodeLocationFromToken=kn.A;this.setNodeLocationFromNode=kn.A;this.cstPostRule=this.cstPostRuleOnlyOffset;this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular}}else if(/none/i.test(this.nodeLocationTracking)){this.setNodeLocationFromToken=kn.A;this.setNodeLocationFromNode=kn.A;this.cstPostRule=kn.A;this.setInitialNodeLocation=kn.A}else{throw Error(`Invalid config option: "${e.nodeLocationTracking}"`)}}}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t);this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0);const n=e.location;if(n.startOffset<=t.startOffset===true){n.endOffset=t.endOffset;n.endLine=t.endLine;n.endColumn=t.endColumn}else{n.startOffset=NaN;n.startLine=NaN;n.startColumn=NaN}}cstPostRuleOnlyOffset(e){const t=this.LA(0);const n=e.location;if(n.startOffset<=t.startOffset===true){n.endOffset=t.endOffset}else{n.startOffset=NaN}}cstPostTerminal(e,t){const n=this.CST_STACK[this.CST_STACK.length-1];rs(n,t,e);this.setNodeLocationFromToken(n.location,t)}cstPostNonTerminal(e,t){const n=this.CST_STACK[this.CST_STACK.length-1];is(n,t,e);this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if((0,Be.A)(this.baseCstVisitorConstructor)){const e=cs(this.className,(0,R.A)(this.gastProductionsCache));this.baseCstVisitorConstructor=e;return e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if((0,Be.A)(this.baseCstVisitorWithDefaultsConstructor)){const e=us(this.className,(0,R.A)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());this.baseCstVisitorWithDefaultsConstructor=e;return e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}class ps{initLexerAdapter(){this.tokVector=[];this.tokVectorLength=0;this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==true){throw Error(`Missing invocation at the end of the Parser's constructor.`)}this.reset();this.tokVector=e;this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){if(this.currIdx<=this.tokVector.length-2){this.consumeToken();return this.LA(1)}else{return _s}}LA(e){const t=this.currIdx+e;if(t<0||this.tokVectorLength<=t){return _s}else{return this.tokVector[t]}}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}class ms{ACTION(e){return e.call(this)}consume(e,t,n){return this.consumeInternal(t,e,n)}subrule(e,t,n){return this.subruleInternal(t,e,n)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,n=Ps){if(me(this.definedRulesNames,e)){const t=lr.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className});const n={message:t,type:Ms.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(n)}this.definedRulesNames.push(e);const r=this.defineRule(e,t,n);this[e]=r;return r}OVERRIDE_RULE(e,t,n=Ps){const r=ci(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(r);const i=this.defineRule(e,t,n);this[e]=i;return i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const n=this.saveRecogState();try{e.apply(this,t);return true}catch(r){if(Ii(r)){return false}else{throw r}}finally{this.reloadRecogState(n);this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return te((0,i.A)(this.gastProductionsCache))}}var gs=n(85356);class ys{initRecognizerEngine(e,t){this.className=this.constructor.name;this.shortRuleNameToFull={};this.fullRuleNameToShort={};this.ruleShortNameIdx=256;this.tokenMatcher=In;this.subruleIdx=0;this.definedRulesNames=[];this.tokensMap={};this.isBackTrackingStack=[];this.RULE_STACK=[];this.RULE_OCCURRENCE_STACK=[];this.gastProductionsCache={};if((0,o.A)(t,"serializedGrammar")){throw Error("The Parser's configuration can no longer contain a property.\n"+"\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n"+"\tFor Further details.")}if((0,ce.A)(e)){if((0,s.A)(e)){throw Error("A Token Vocabulary cannot be empty.\n"+"\tNote that the first argument for the parser constructor\n"+"\tis no longer a Token vector (since v4.0).")}if(typeof e[0].startOffset==="number"){throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n"+"\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n"+"\tFor Further details.")}}if((0,ce.A)(e)){this.tokensMap=(0,tt.A)(e,((e,t)=>{e[t.name]=t;return e}),{})}else if((0,o.A)(e,"modes")&&Re((0,Le.A)((0,i.A)(e.modes)),Gn)){const t=(0,Le.A)((0,i.A)(e.modes));const n=Ne(t);this.tokensMap=(0,tt.A)(n,((e,t)=>{e[t.name]=t;return e}),{})}else if((0,gs.A)(e)){this.tokensMap=(0,c.A)(e)}else{throw new Error(" argument must be An Array of Token constructors,"+" A dictionary of Token constructors or an IMultiModeLexerDefinition")}this.tokensMap["EOF"]=sr;const n=(0,o.A)(e,"modes")?(0,Le.A)((0,i.A)(e.modes)):(0,i.A)(e);const r=Re(n,(e=>(0,s.A)(e.categoryMatches)));this.tokenMatcher=r?In:wn;Nn((0,i.A)(this.tokensMap))}defineRule(e,t,n){if(this.selfAnalysisDone){throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'\n`+`Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`)}const r=(0,o.A)(n,"resyncEnabled")?n.resyncEnabled:Ps.resyncEnabled;const i=(0,o.A)(n,"recoveryValueFunc")?n.recoveryValueFunc:Ps.recoveryValueFunc;const s=this.ruleShortNameIdx<t.call(this)&&e.call(this)}}else{i=e}if(r.call(this)===true){return i.call(this)}return undefined}atLeastOneInternal(e,t){const n=this.getKeyForAutomaticLookahead(Wi,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let r=this.getLaFuncFromCache(n);let i;if(typeof t!=="function"){i=t.DEF;const e=t.GATE;if(e!==undefined){const t=r;r=()=>e.call(this)&&t.call(this)}}else{i=t}if(r.call(this)===true){let e=this.doSingleRepetition(i);while(r.call(this)===true&&e===true){e=this.doSingleRepetition(i)}}else{throw this.raiseEarlyExitException(e,Dr.REPETITION_MANDATORY,t.ERR_MSG)}this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],r,Wi,e,br)}atLeastOneSepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(zi,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){const r=t.DEF;const i=t.SEP;const s=this.getLaFuncFromCache(n);if(s.call(this)===true){r.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);while(this.tokenMatcher(this.LA(1),i)===true){this.CONSUME(i);r.call(this)}this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,_r],t,zi,e,_r)}else{throw this.raiseEarlyExitException(e,Dr.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)}}manyInternal(e,t){const n=this.getKeyForAutomaticLookahead(Vi,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let r=this.getLaFuncFromCache(n);let i;if(typeof t!=="function"){i=t.DEF;const e=t.GATE;if(e!==undefined){const t=r;r=()=>e.call(this)&&t.call(this)}}else{i=t}let s=true;while(r.call(this)===true&&s===true){s=this.doSingleRepetition(i)}this.attemptInRepetitionRecovery(this.manyInternal,[e,t],r,Vi,e,Nr,s)}manySepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(Hi,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){const r=t.DEF;const i=t.SEP;const s=this.getLaFuncFromCache(n);if(s.call(this)===true){r.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);while(this.tokenMatcher(this.LA(1),i)===true){this.CONSUME(i);r.call(this)}this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,Lr],t,Hi,e,Lr)}}repetitionSepSecondInternal(e,t,n,r,i){while(n()){this.CONSUME(t);r.call(this)}this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,r,i],n,zi,e,i)}doSingleRepetition(e){const t=this.getLexerPosition();e.call(this);const n=this.getLexerPosition();return n>t}orInternal(e,t){const n=this.getKeyForAutomaticLookahead(Ki,t);const r=(0,ce.A)(e)?e:e.DEF;const i=this.getLaFuncFromCache(n);const s=i.call(this,r);if(s!==undefined){const e=r[s];return e.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){this.RULE_STACK.pop();this.RULE_OCCURRENCE_STACK.pop();this.cstFinallyStateUpdate();if(this.RULE_STACK.length===0&&this.isAtEndOfInput()===false){const e=this.LA(1);const t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Li(t,e))}}subruleInternal(e,t,n){let r;try{const i=n!==undefined?n.ARGS:undefined;this.subruleIdx=t;r=e.apply(this,i);this.cstPostNonTerminal(r,n!==undefined&&n.LABEL!==undefined?n.LABEL:e.ruleName);return r}catch(i){throw this.subruleInternalError(i,n,e.ruleName)}}subruleInternalError(e,t,n){if(Ii(e)&&e.partialCstResult!==undefined){this.cstPostNonTerminal(e.partialCstResult,t!==undefined&&t.LABEL!==undefined?t.LABEL:n);delete e.partialCstResult}throw e}consumeInternal(e,t,n){let r;try{const t=this.LA(1);if(this.tokenMatcher(t,e)===true){this.consumeToken();r=t}else{this.consumeInternalError(e,t,n)}}catch(i){r=this.consumeInternalRecovery(e,t,i)}this.cstPostTerminal(n!==undefined&&n.LABEL!==undefined?n.LABEL:e.name,r);return r}consumeInternalError(e,t,n){let r;const i=this.LA(0);if(n!==undefined&&n.ERR_MSG){r=n.ERR_MSG}else{r=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()})}throw this.SAVE_ERROR(new Ci(r,t,i))}consumeInternalRecovery(e,t,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(r){if(r.name===Oi){throw n}else{throw r}}}else{throw n}}saveRecogState(){const e=this.errors;const t=(0,c.A)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors;this.importLexerState(e.lexerState);this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,n){this.RULE_OCCURRENCE_STACK.push(n);this.RULE_STACK.push(e);this.cstInvocationStateUpdate(t)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),sr)}reset(){this.resetLexerState();this.subruleIdx=0;this.isBackTrackingStack=[];this.errors=[];this.RULE_STACK=[];this.CST_STACK=[];this.RULE_OCCURRENCE_STACK=[]}}class vs{initErrorHandler(e){this._errors=[];this.errorMessageProvider=(0,o.A)(e,"errorMessageProvider")?e.errorMessageProvider:Os.errorMessageProvider}SAVE_ERROR(e){if(Ii(e)){e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,c.A)(this.RULE_OCCURRENCE_STACK)};this._errors.push(e);return e}else{throw Error("Trying to save an Error which is not a RecognitionException")}}get errors(){return(0,c.A)(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){const r=this.getCurrRuleFullName();const i=this.getGAstProductions()[r];const s=Qr(e,i,t,this.maxLookahead);const a=s[0];const o=[];for(let u=1;u<=this.maxLookahead;u++){o.push(this.LA(u))}const c=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:o,previous:this.LA(0),customUserDescription:n,ruleName:r});throw this.SAVE_ERROR(new bi(c,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const n=this.getCurrRuleFullName();const r=this.getGAstProductions()[n];const i=Xr(e,r,this.maxLookahead);const s=[];for(let c=1;c<=this.maxLookahead;c++){s.push(this.LA(c))}const a=this.LA(0);const o=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:i,actual:s,previous:a,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Ni(o,this.LA(1),a))}}class As{initContentAssist(){}computeContentAssist(e,t){const n=this.gastProductionsCache[e];if((0,Be.A)(n)){throw Error(`Rule ->${e}<- does not exist in this grammar.`)}return Pr([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=vt(e.ruleStack);const n=this.getGAstProductions();const r=n[t];const i=new Sr(r,e).startWalking();return i}}const Ts={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Ts);const Rs=true;const Es=Math.pow(2,Fi)-1;const ks=rr({name:"RECORDING_PHASE_TOKEN",pattern:Vn.NA});Nn([ks]);const xs=ar(ks,"This IToken indicates the Parser is in Recording Phase\n\t"+""+"See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",-1,-1,-1,-1,-1,-1);Object.freeze(xs);const $s={name:"This CSTNode indicates the Parser is in Recording Phase\n\t"+"See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",children:{}};class ws{initGastRecorder(e){this.recordingProdStack=[];this.RECORDING_PHASE=false}enableRecording(){this.RECORDING_PHASE=true;this.TRACE_INIT("Enable Recording",(()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(t,n){return this.consumeInternalRecord(t,e,n)};this[`SUBRULE${t}`]=function(t,n){return this.subruleInternalRecord(t,e,n)};this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)};this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)};this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)};this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)};this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)};this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this[`consume`]=function(e,t,n){return this.consumeInternalRecord(t,e,n)};this[`subrule`]=function(e,t,n){return this.subruleInternalRecord(t,e,n)};this[`option`]=function(e,t){return this.optionInternalRecord(t,e)};this[`or`]=function(e,t){return this.orInternalRecord(t,e)};this[`many`]=function(e,t){this.manyInternalRecord(e,t)};this[`atLeastOne`]=function(e,t){this.atLeastOneInternalRecord(e,t)};this.ACTION=this.ACTION_RECORD;this.BACKTRACK=this.BACKTRACK_RECORD;this.LA=this.LA_RECORD}))}disableRecording(){this.RECORDING_PHASE=false;this.TRACE_INIT("Deleting Recording methods",(()=>{const e=this;for(let t=0;t<10;t++){const n=t>0?t:"";delete e[`CONSUME${n}`];delete e[`SUBRULE${n}`];delete e[`OPTION${n}`];delete e[`OR${n}`];delete e[`MANY${n}`];delete e[`MANY_SEP${n}`];delete e[`AT_LEAST_ONE${n}`];delete e[`AT_LEAST_ONE_SEP${n}`]}delete e[`consume`];delete e[`subrule`];delete e[`option`];delete e[`or`];delete e[`many`];delete e[`atLeastOne`];delete e.ACTION;delete e.BACKTRACK;delete e.LA}))}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>true}LA_RECORD(e){return _s}topLevelRuleRecord(e,t){try{const n=new H({definition:[],name:e});n.name=e;this.recordingProdStack.push(n);t.call(this);this.recordingProdStack.pop();return n}catch(n){if(n.KNOWN_RECORDER_ERROR!==true){try{n.message=n.message+'\n\t This error was thrown during the "grammar recording phase" For more info see:\n\t'+"https://chevrotain.io/docs/guide/internals.html#grammar-recording"}catch(r){throw n}}throw n}}optionInternalRecord(e,t){return Is.call(this,Y,e,t)}atLeastOneInternalRecord(e,t){Is.call(this,q,t,e)}atLeastOneSepFirstInternalRecord(e,t){Is.call(this,X,t,e,Rs)}manyInternalRecord(e,t){Is.call(this,Q,t,e)}manySepFirstInternalRecord(e,t){Is.call(this,Z,t,e,Rs)}orInternalRecord(e,t){return Ss.call(this,e,t)}subruleInternalRecord(e,t,n){Ns(t);if(!e||(0,o.A)(e,"ruleName")===false){const n=new Error(` argument is invalid`+` expecting a Parser method reference but got: <${JSON.stringify(e)}>`+`\n inside top level rule: <${this.recordingProdStack[0].name}>`);n.KNOWN_RECORDER_ERROR=true;throw n}const r=(0,xn.A)(this.recordingProdStack);const i=e.ruleName;const s=new W({idx:t,nonTerminalName:i,label:n===null||n===void 0?void 0:n.LABEL,referencedRule:undefined});r.definition.push(s);return this.outputCst?$s:Ts}consumeInternalRecord(e,t,n){Ns(t);if(!Mn(e)){const n=new Error(` argument is invalid`+` expecting a TokenType reference but got: <${JSON.stringify(e)}>`+`\n inside top level rule: <${this.recordingProdStack[0].name}>`);n.KNOWN_RECORDER_ERROR=true;throw n}const r=(0,xn.A)(this.recordingProdStack);const i=new ee({idx:t,terminalType:e,label:n===null||n===void 0?void 0:n.LABEL});r.definition.push(i);return xs}}function Is(e,t,n,r=false){Ns(n);const i=(0,xn.A)(this.recordingProdStack);const s=(0,Qe.A)(t)?t:t.DEF;const a=new e({definition:[],idx:n});if(r){a.separator=t.SEP}if((0,o.A)(t,"MAX_LOOKAHEAD")){a.maxLookahead=t.MAX_LOOKAHEAD}this.recordingProdStack.push(a);s.call(this);i.definition.push(a);this.recordingProdStack.pop();return Ts}function Ss(e,t){Ns(t);const n=(0,xn.A)(this.recordingProdStack);const i=(0,ce.A)(e)===false;const s=i===false?e:e.DEF;const a=new J({definition:[],idx:t,ignoreAmbiguities:i&&e.IGNORE_AMBIGUITIES===true});if((0,o.A)(e,"MAX_LOOKAHEAD")){a.maxLookahead=e.MAX_LOOKAHEAD}const c=de(s,(e=>(0,Qe.A)(e.GATE)));a.hasPredicates=c;n.definition.push(a);(0,r.A)(s,(e=>{const t=new z({definition:[]});a.definition.push(t);if((0,o.A)(e,"IGNORE_AMBIGUITIES")){t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES}else if((0,o.A)(e,"GATE")){t.ignoreAmbiguities=true}this.recordingProdStack.push(t);e.ALT.call(this);this.recordingProdStack.pop()}));return Ts}function Cs(e){return e===0?"":`${e}`}function Ns(e){if(e<0||e>Es){const t=new Error(`Invalid DSL Method idx value: <${e}>\n\t`+`Idx value must be a none negative value smaller than ${Es+1}`);t.KNOWN_RECORDER_ERROR=true;throw t}}class Ls{initPerformanceTracer(e){if((0,o.A)(e,"traceInitPerf")){const t=e.traceInitPerf;const n=typeof t==="number";this.traceInitMaxIdent=n?t:Infinity;this.traceInitPerf=n?t>0:t}else{this.traceInitMaxIdent=0;this.traceInitPerf=Os.traceInitPerf}this.traceInitIndent=-1}TRACE_INIT(e,t){if(this.traceInitPerf===true){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join("\t");if(this.traceInitIndent`)}const{time:r,value:i}=$n(t);const s=r>10?console.warn:console.log;if(this.traceInitIndent time: ${r}ms`)}this.traceInitIndent--;return i}else{return t()}}}function bs(e,t){t.forEach((t=>{const n=t.prototype;Object.getOwnPropertyNames(n).forEach((r=>{if(r==="constructor"){return}const i=Object.getOwnPropertyDescriptor(n,r);if(i&&(i.get||i.set)){Object.defineProperty(e.prototype,r,i)}else{e.prototype[r]=t.prototype[r]}}))}))}const _s=ar(sr,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(_s);const Os=Object.freeze({recoveryEnabled:false,maxLookahead:3,dynamicTokensEnabled:false,outputCst:true,errorMessageProvider:cr,nodeLocationTracking:"none",traceInitPerf:false,skipValidations:false});const Ps=Object.freeze({recoveryValueFunc:()=>undefined,resyncEnabled:true});var Ms;(function(e){e[e["INVALID_RULE_NAME"]=0]="INVALID_RULE_NAME";e[e["DUPLICATE_RULE_NAME"]=1]="DUPLICATE_RULE_NAME";e[e["INVALID_RULE_OVERRIDE"]=2]="INVALID_RULE_OVERRIDE";e[e["DUPLICATE_PRODUCTIONS"]=3]="DUPLICATE_PRODUCTIONS";e[e["UNRESOLVED_SUBRULE_REF"]=4]="UNRESOLVED_SUBRULE_REF";e[e["LEFT_RECURSION"]=5]="LEFT_RECURSION";e[e["NONE_LAST_EMPTY_ALT"]=6]="NONE_LAST_EMPTY_ALT";e[e["AMBIGUOUS_ALTS"]=7]="AMBIGUOUS_ALTS";e[e["CONFLICT_TOKENS_RULES_NAMESPACE"]=8]="CONFLICT_TOKENS_RULES_NAMESPACE";e[e["INVALID_TOKEN_NAME"]=9]="INVALID_TOKEN_NAME";e[e["NO_NON_EMPTY_LOOKAHEAD"]=10]="NO_NON_EMPTY_LOOKAHEAD";e[e["AMBIGUOUS_PREFIX_ALTS"]=11]="AMBIGUOUS_PREFIX_ALTS";e[e["TOO_MANY_ALTS"]=12]="TOO_MANY_ALTS";e[e["CUSTOM_LOOKAHEAD_VALIDATION"]=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(Ms||(Ms={}));function Ds(e=undefined){return function(){return e}}class Us{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated."+"\t\nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",(()=>{let e;this.selfAnalysisDone=true;const t=this.className;this.TRACE_INIT("toFastProps",(()=>{u(this)}));this.TRACE_INIT("Grammar Recording",(()=>{try{this.enableRecording();(0,r.A)(this.definedRulesNames,(e=>{const t=this[e];const n=t["originalGrammarAction"];let r;this.TRACE_INIT(`${e} Rule`,(()=>{r=this.topLevelRuleRecord(e,n)}));this.gastProductionsCache[e]=r}))}finally{this.disableRecording()}}));let n=[];this.TRACE_INIT("Grammar Resolving",(()=>{n=Ti({rules:(0,i.A)(this.gastProductionsCache)});this.definitionErrors=this.definitionErrors.concat(n)}));this.TRACE_INIT("Grammar Validations",(()=>{if((0,s.A)(n)&&this.skipValidations===false){const e=Ri({rules:(0,i.A)(this.gastProductionsCache),tokenTypes:(0,i.A)(this.tokensMap),errMsgProvider:lr,grammarName:t});const n=ti({lookaheadStrategy:this.lookaheadStrategy,rules:(0,i.A)(this.gastProductionsCache),tokenTypes:(0,i.A)(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(e,n)}}));if((0,s.A)(this.definitionErrors)){if(this.recoveryEnabled){this.TRACE_INIT("computeAllProdsFollows",(()=>{const e=Ue((0,i.A)(this.gastProductionsCache));this.resyncFollows=e}))}this.TRACE_INIT("ComputeLookaheadFunctions",(()=>{var e,t;(t=(e=this.lookaheadStrategy).initialize)===null||t===void 0?void 0:t.call(e,{rules:(0,i.A)(this.gastProductionsCache)});this.preComputeLookaheadFunctions((0,i.A)(this.gastProductionsCache))}))}if(!Us.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,s.A)(this.definitionErrors)){e=(0,a.A)(this.definitionErrors,(e=>e.message));throw new Error(`Parser Definition Errors detected:\n ${e.join("\n-------------------------------\n")}`)}}))}constructor(e,t){this.definitionErrors=[];this.selfAnalysisDone=false;const n=this;n.initErrorHandler(t);n.initLexerAdapter();n.initLooksAhead(t);n.initRecognizerEngine(e,t);n.initRecoverable(t);n.initTreeBuilder(t);n.initContentAssist();n.initGastRecorder(t);n.initPerformanceTracer(t);if((0,o.A)(t,"ignoredIssues")){throw new Error("The IParserConfig property has been deprecated.\n\t"+"Please use the flag on the relevant DSL method instead.\n\t"+"See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n\t"+"For further details.")}this.skipValidations=(0,o.A)(t,"skipValidations")?t.skipValidations:Os.skipValidations}}Us.DEFER_DEFINITION_ERRORS_HANDLING=false;bs(Us,[Mi,Qi,hs,ps,ys,ms,vs,As,ws,Ls]);class Fs extends Us{constructor(e,t=Os){const n=(0,c.A)(t);n.outputCst=true;super(e,n)}}class Gs extends Us{constructor(e,t=Os){const n=(0,c.A)(t);n.outputCst=false;super(e,n)}}function Bs(e){const t=new Ks;const n=values(e);return map(n,(e=>t.visitRule(e)))}class Ks extends(null&&GAstVisitor){visitRule(e){const t=this.visitEach(e.definition);const n=groupBy(t,(e=>e.propertyName));const r=map(n,((e,t)=>{const n=!some(e,(e=>!e.canBeNull));let r=e[0].type;if(e.length>1){r=map(e,(e=>e.type))}return{name:t,type:r,optional:n}}));return{name:e.name,properties:r}}visitAlternative(e){return this.visitEachAndOverrideWith(e.definition,{canBeNull:true})}visitOption(e){return this.visitEachAndOverrideWith(e.definition,{canBeNull:true})}visitRepetition(e){return this.visitEachAndOverrideWith(e.definition,{canBeNull:true})}visitRepetitionMandatory(e){return this.visitEach(e.definition)}visitRepetitionMandatoryWithSeparator(e){return this.visitEach(e.definition).concat({propertyName:e.separator.name,canBeNull:true,type:js(e.separator)})}visitRepetitionWithSeparator(e){return this.visitEachAndOverrideWith(e.definition,{canBeNull:true}).concat({propertyName:e.separator.name,canBeNull:true,type:js(e.separator)})}visitAlternation(e){return this.visitEachAndOverrideWith(e.definition,{canBeNull:true})}visitTerminal(e){return[{propertyName:e.label||e.terminalType.name,canBeNull:false,type:js(e)}]}visitNonTerminal(e){return[{propertyName:e.label||e.nonTerminalName,canBeNull:false,type:js(e)}]}visitEachAndOverrideWith(e,t){return map(this.visitEach(e),(e=>assign({},e,t)))}visitEach(e){return flatten(map(e,(e=>this.visit(e))))}}function js(e){if(e instanceof NonTerminal){return{kind:"rule",name:e.referencedRule.name}}return{kind:"token"}}const Vs={includeVisitorInterface:true,visitorInterfaceName:"ICstNodeVisitor"};function Ws(e,t){const n=Object.assign(Object.assign({},Vs),t);const r=buildModel(e);return genDts(r,n)}function Hs(){console.warn("The clearCache function was 'soft' removed from the Chevrotain API."+"\n\t It performs no action other than printing this message."+"\n\t Please avoid using it as it will be completely removed in the future")}class zs{constructor(){throw new Error("The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead.\t\n"+"See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0")}}},37810:(e,t,n)=>{"use strict";n.d(t,{t:()=>Ji,u:()=>es});var r=n(5730);var i=n(70977);var s=n(65811);var a=n(85684);function o(e){const t=[];const n=e.Grammar;for(const r of n.rules){if((0,a.rE)(r)&&(0,i.eb)(r)&&(0,s.lU)((0,i.S)(r))){t.push(r.name)}}return{multilineCommentRules:t,nameRegexp:r.El}}var c=n(50450);var u=n(8937);var l=n(97133);function d(e,t,n){return`${e.name}_${t}_${n}`}const f=0;const h=1;const p=2;const m=4;const g=5;const y=6;const v=7;const A=8;const T=9;const R=10;const E=11;const k=12;class x{constructor(e){this.target=e}isEpsilon(){return false}}class $ extends x{constructor(e,t){super(e);this.tokenType=t}}class w extends x{constructor(e){super(e)}isEpsilon(){return true}}class I extends x{constructor(e,t,n){super(e);this.rule=t;this.followState=n}isEpsilon(){return true}}function S(e){const t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};C(t,e);const n=e.length;for(let r=0;rN(e,t,n)));const s=K(e,t,r,n,...i);return s}function M(e,t,n){const r=q(e,t,n,{type:h});B(e,r);const i=K(e,t,r,n,D(e,t,n));return G(e,t,n,i)}function D(e,t,n){const r=(0,l.A)((0,u.A)(n.definition,(n=>N(e,t,n))),(e=>e!==undefined));if(r.length===1){return r[0]}else if(r.length===0){return undefined}else{return V(e,r)}}function U(e,t,n,r,i){const s=r.left;const a=r.right;const o=q(e,t,n,{type:E});B(e,o);const c=q(e,t,n,{type:k});s.loopback=o;c.loopback=o;e.decisionMap[d(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",n.idx)]=o;Y(a,o);if(i===undefined){Y(o,s);Y(o,c)}else{Y(o,c);Y(o,i.left);Y(i.right,s)}return{left:s,right:c}}function F(e,t,n,r,i){const s=r.left;const a=r.right;const o=q(e,t,n,{type:R});B(e,o);const c=q(e,t,n,{type:k});const u=q(e,t,n,{type:T});o.loopback=u;c.loopback=u;Y(o,s);Y(o,c);Y(a,u);if(i!==undefined){Y(u,c);Y(u,i.left);Y(i.right,s)}else{Y(u,o)}e.decisionMap[d(t,i?"RepetitionWithSeparator":"Repetition",n.idx)]=o;return{left:o,right:c}}function G(e,t,n,r){const i=r.left;const s=r.right;Y(i,s);e.decisionMap[d(t,"Option",n.idx)]=i;return r}function B(e,t){e.decisionStates.push(t);t.decision=e.decisionStates.length-1;return t.decision}function K(e,t,n,r,...i){const s=q(e,t,r,{type:A,start:n});n.end=s;for(const o of i){if(o!==undefined){Y(n,o.left);Y(o.right,s)}else{Y(n,s)}}const a={left:n,right:s};e.decisionMap[d(t,j(r),r.idx)]=n;return a}function j(e){if(e instanceof c.ak){return"Alternation"}else if(e instanceof c.c$){return"Option"}else if(e instanceof c.Y2){return"Repetition"}else if(e instanceof c.Pp){return"RepetitionWithSeparator"}else if(e instanceof c.$P){return"RepetitionMandatory"}else if(e instanceof c.Cy){return"RepetitionMandatoryWithSeparator"}else{throw new Error("Invalid production type encountered")}}function V(e,t){const n=t.length;for(let s=0;se.alt))}get key(){let e="";for(const t in this.map){e+=t+":"}return e}}function ee(e,t=true){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map((e=>e.stateNumber.toString())).join("_")}`}var te=n(963);var ne=n(57852);var re=n(1121);var ie=n(19363);function se(e,t){return e&&e.length?(0,ie.A)(e,(0,re.A)(t,2)):[]}const ae=se;var oe=n(74033);var ce=n(69769);var ue=n(74650);var le=n(65339);function de(e,t){const n={};return r=>{const i=r.toString();let s=n[i];if(s!==undefined){return s}else{s={atnStartState:e,decision:t,states:{}};n[i]=s;return s}}}class fe{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let n=0;nconsole.log(e)}initialize(e){this.atn=S(e.rules);this.dfas=ge(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:n,hasPredicates:r,dynamicTokensEnabled:i}=e;const s=this.dfas;const a=this.logging;const o=d(n,"Alternation",t);const l=this.atn.decisionMap[o];const f=l.decision;const h=(0,u.A)((0,c.jk)({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:n}),(e=>(0,u.A)(e,(e=>e[0]))));if(me(h,false)&&!i){const e=(0,le.A)(h,((e,t,n)=>{(0,ce.A)(t,(t=>{if(t){e[t.tokenTypeIdx]=n;(0,ce.A)(t.categoryMatches,(t=>{e[t]=n}))}}));return e}),{});if(r){return function(t){var n;const r=this.LA(1);const i=e[r.tokenTypeIdx];if(t!==undefined&&i!==undefined){const e=(n=t[i])===null||n===void 0?void 0:n.GATE;if(e!==undefined&&e.call(this)===false){return undefined}}return i}}else{return function(){const t=this.LA(1);return e[t.tokenTypeIdx]}}}else if(r){return function(e){const t=new fe;const n=e===undefined?0:e.length;for(let i=0;i(0,u.A)(e,(e=>e[0]))));if(me(h)&&h[0][0]&&!i){const e=h[0];const t=(0,oe.A)(e);if(t.length===1&&(0,ue.A)(t[0].categoryMatches)){const e=t[0];const n=e.tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===n}}else{const e=(0,le.A)(t,((e,t)=>{if(t!==undefined){e[t.tokenTypeIdx]=true;(0,ce.A)(t.categoryMatches,(t=>{e[t]=true}))}return e}),{});return function(){const t=this.LA(1);return e[t.tokenTypeIdx]===true}}}return function(){const e=ye.call(this,s,f,he,a);return typeof e==="object"?false:e===0}}}function me(e,t=true){const n=new Set;for(const r of e){const e=new Set;for(const i of r){if(i===undefined){if(t){break}else{return false}}const r=[i.tokenTypeIdx].concat(i.categoryMatches);for(const t of r){if(n.has(t)){if(!e.has(t)){return false}}else{n.add(t);e.add(t)}}}}return true}function ge(e){const t=e.decisionStates.length;const n=Array(t);for(let r=0;r(0,c.Sk)(e))).join(", ");const n=e.production.idx===0?"":e.production.idx;let r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${Ee(e.production)}${n}>`+` inside <${e.topLevelRule.name}> Rule,\n`+`<${t}> may appears as a prefix path in all these alternatives.\n`;r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\n`+`For Further details.`;return r}function Ee(e){if(e instanceof c.wL){return"SUBRULE"}else if(e instanceof c.c$){return"OPTION"}else if(e instanceof c.ak){return"OR"}else if(e instanceof c.$P){return"AT_LEAST_ONE"}else if(e instanceof c.Cy){return"AT_LEAST_ONE_SEP"}else if(e instanceof c.Pp){return"MANY_SEP"}else if(e instanceof c.Y2){return"MANY"}else if(e instanceof c.BK){return"CONSUME"}else{throw Error("non exhaustive match")}}function ke(e,t,n){const r=(0,ne.A)(t.configs.elements,(e=>e.state.transitions));const i=ae(r.filter((e=>e instanceof $)).map((e=>e.tokenType)),(e=>e.tokenTypeIdx));return{actualToken:n,possibleTokenTypes:i,tokenPath:e}}function xe(e,t){return e.edges[t.tokenTypeIdx]}function $e(e,t,n){const r=new J;const i=[];for(const a of e.elements){if(n.is(a.alt)===false){continue}if(a.state.type===v){i.push(a);continue}const e=a.state.transitions.length;for(let n=0;n0&&!Oe(s)){for(const e of i){s.add(e)}}return s}function we(e,t){if(e instanceof $&&(0,c.G)(t,e.tokenType)){return e.target}return undefined}function Ie(e,t){let n;for(const r of e.elements){if(t.is(r.alt)===true){if(n===undefined){n=r.alt}else if(n!==r.alt){return undefined}}}return n}function Se(e){return{configs:e,edges:{},isAcceptState:false,prediction:-1}}function Ce(e,t,n,r){r=Ne(e,r);t.edges[n.tokenTypeIdx]=r;return r}function Ne(e,t){if(t===Z){return t}const n=t.configs.key;const r=e.states[n];if(r!==undefined){return r}t.configs.finalize();e.states[n]=t;return t}function Le(e){const t=new J;const n=e.transitions.length;for(let r=0;r0){const n=[...e.stack];const r=n.pop();const i={state:r,alt:e.alt,stack:n};be(i,t)}else{t.add(e)}return}if(!n.epsilonOnlyTransitions){t.add(e)}const r=n.transitions.length;for(let i=0;i1){return true}}return false}function Fe(e){for(const t of Array.from(e.values())){if(Object.keys(t).length===1){return true}}return false}var Ge=n(63752);var Be;(function(e){function t(e){return typeof e==="string"}e.is=t})(Be||(Be={}));var Ke;(function(e){function t(e){return typeof e==="string"}e.is=t})(Ke||(Ke={}));var je;(function(e){e.MIN_VALUE=-2147483648;e.MAX_VALUE=2147483647;function t(t){return typeof t==="number"&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(je||(je={}));var Ve;(function(e){e.MIN_VALUE=0;e.MAX_VALUE=2147483647;function t(t){return typeof t==="number"&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(Ve||(Ve={}));var We;(function(e){function t(e,t){if(e===Number.MAX_VALUE){e=Ve.MAX_VALUE}if(t===Number.MAX_VALUE){t=Ve.MAX_VALUE}return{line:e,character:t}}e.create=t;function n(e){let t=e;return vn.objectLiteral(t)&&vn.uinteger(t.line)&&vn.uinteger(t.character)}e.is=n})(We||(We={}));var He;(function(e){function t(e,t,n,r){if(vn.uinteger(e)&&vn.uinteger(t)&&vn.uinteger(n)&&vn.uinteger(r)){return{start:We.create(e,t),end:We.create(n,r)}}else if(We.is(e)&&We.is(t)){return{start:e,end:t}}else{throw new Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`)}}e.create=t;function n(e){let t=e;return vn.objectLiteral(t)&&We.is(t.start)&&We.is(t.end)}e.is=n})(He||(He={}));var ze;(function(e){function t(e,t){return{uri:e,range:t}}e.create=t;function n(e){let t=e;return vn.objectLiteral(t)&&He.is(t.range)&&(vn.string(t.uri)||vn.undefined(t.uri))}e.is=n})(ze||(ze={}));var Ye;(function(e){function t(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}}e.create=t;function n(e){let t=e;return vn.objectLiteral(t)&&He.is(t.targetRange)&&vn.string(t.targetUri)&&He.is(t.targetSelectionRange)&&(He.is(t.originSelectionRange)||vn.undefined(t.originSelectionRange))}e.is=n})(Ye||(Ye={}));var qe;(function(e){function t(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}}e.create=t;function n(e){const t=e;return vn.objectLiteral(t)&&vn.numberRange(t.red,0,1)&&vn.numberRange(t.green,0,1)&&vn.numberRange(t.blue,0,1)&&vn.numberRange(t.alpha,0,1)}e.is=n})(qe||(qe={}));var Xe;(function(e){function t(e,t){return{range:e,color:t}}e.create=t;function n(e){const t=e;return vn.objectLiteral(t)&&He.is(t.range)&&qe.is(t.color)}e.is=n})(Xe||(Xe={}));var Qe;(function(e){function t(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}}e.create=t;function n(e){const t=e;return vn.objectLiteral(t)&&vn.string(t.label)&&(vn.undefined(t.textEdit)||at.is(t))&&(vn.undefined(t.additionalTextEdits)||vn.typedArray(t.additionalTextEdits,at.is))}e.is=n})(Qe||(Qe={}));var Ze;(function(e){e.Comment="comment";e.Imports="imports";e.Region="region"})(Ze||(Ze={}));var Je;(function(e){function t(e,t,n,r,i,s){const a={startLine:e,endLine:t};if(vn.defined(n)){a.startCharacter=n}if(vn.defined(r)){a.endCharacter=r}if(vn.defined(i)){a.kind=i}if(vn.defined(s)){a.collapsedText=s}return a}e.create=t;function n(e){const t=e;return vn.objectLiteral(t)&&vn.uinteger(t.startLine)&&vn.uinteger(t.startLine)&&(vn.undefined(t.startCharacter)||vn.uinteger(t.startCharacter))&&(vn.undefined(t.endCharacter)||vn.uinteger(t.endCharacter))&&(vn.undefined(t.kind)||vn.string(t.kind))}e.is=n})(Je||(Je={}));var et;(function(e){function t(e,t){return{location:e,message:t}}e.create=t;function n(e){let t=e;return vn.defined(t)&&ze.is(t.location)&&vn.string(t.message)}e.is=n})(et||(et={}));var tt;(function(e){e.Error=1;e.Warning=2;e.Information=3;e.Hint=4})(tt||(tt={}));var nt;(function(e){e.Unnecessary=1;e.Deprecated=2})(nt||(nt={}));var rt;(function(e){function t(e){const t=e;return vn.objectLiteral(t)&&vn.string(t.href)}e.is=t})(rt||(rt={}));var it;(function(e){function t(e,t,n,r,i,s){let a={range:e,message:t};if(vn.defined(n)){a.severity=n}if(vn.defined(r)){a.code=r}if(vn.defined(i)){a.source=i}if(vn.defined(s)){a.relatedInformation=s}return a}e.create=t;function n(e){var t;let n=e;return vn.defined(n)&&He.is(n.range)&&vn.string(n.message)&&(vn.number(n.severity)||vn.undefined(n.severity))&&(vn.integer(n.code)||vn.string(n.code)||vn.undefined(n.code))&&(vn.undefined(n.codeDescription)||vn.string((t=n.codeDescription)===null||t===void 0?void 0:t.href))&&(vn.string(n.source)||vn.undefined(n.source))&&(vn.undefined(n.relatedInformation)||vn.typedArray(n.relatedInformation,et.is))}e.is=n})(it||(it={}));var st;(function(e){function t(e,t,...n){let r={title:e,command:t};if(vn.defined(n)&&n.length>0){r.arguments=n}return r}e.create=t;function n(e){let t=e;return vn.defined(t)&&vn.string(t.title)&&vn.string(t.command)}e.is=n})(st||(st={}));var at;(function(e){function t(e,t){return{range:e,newText:t}}e.replace=t;function n(e,t){return{range:{start:e,end:e},newText:t}}e.insert=n;function r(e){return{range:e,newText:""}}e.del=r;function i(e){const t=e;return vn.objectLiteral(t)&&vn.string(t.newText)&&He.is(t.range)}e.is=i})(at||(at={}));var ot;(function(e){function t(e,t,n){const r={label:e};if(t!==undefined){r.needsConfirmation=t}if(n!==undefined){r.description=n}return r}e.create=t;function n(e){const t=e;return vn.objectLiteral(t)&&vn.string(t.label)&&(vn.boolean(t.needsConfirmation)||t.needsConfirmation===undefined)&&(vn.string(t.description)||t.description===undefined)}e.is=n})(ot||(ot={}));var ct;(function(e){function t(e){const t=e;return vn.string(t)}e.is=t})(ct||(ct={}));var ut;(function(e){function t(e,t,n){return{range:e,newText:t,annotationId:n}}e.replace=t;function n(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}}e.insert=n;function r(e,t){return{range:e,newText:"",annotationId:t}}e.del=r;function i(e){const t=e;return at.is(t)&&(ot.is(t.annotationId)||ct.is(t.annotationId))}e.is=i})(ut||(ut={}));var lt;(function(e){function t(e,t){return{textDocument:e,edits:t}}e.create=t;function n(e){let t=e;return vn.defined(t)&&Tt.is(t.textDocument)&&Array.isArray(t.edits)}e.is=n})(lt||(lt={}));var dt;(function(e){function t(e,t,n){let r={kind:"create",uri:e};if(t!==undefined&&(t.overwrite!==undefined||t.ignoreIfExists!==undefined)){r.options=t}if(n!==undefined){r.annotationId=n}return r}e.create=t;function n(e){let t=e;return t&&t.kind==="create"&&vn.string(t.uri)&&(t.options===undefined||(t.options.overwrite===undefined||vn.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===undefined||vn.boolean(t.options.ignoreIfExists)))&&(t.annotationId===undefined||ct.is(t.annotationId))}e.is=n})(dt||(dt={}));var ft;(function(e){function t(e,t,n,r){let i={kind:"rename",oldUri:e,newUri:t};if(n!==undefined&&(n.overwrite!==undefined||n.ignoreIfExists!==undefined)){i.options=n}if(r!==undefined){i.annotationId=r}return i}e.create=t;function n(e){let t=e;return t&&t.kind==="rename"&&vn.string(t.oldUri)&&vn.string(t.newUri)&&(t.options===undefined||(t.options.overwrite===undefined||vn.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===undefined||vn.boolean(t.options.ignoreIfExists)))&&(t.annotationId===undefined||ct.is(t.annotationId))}e.is=n})(ft||(ft={}));var ht;(function(e){function t(e,t,n){let r={kind:"delete",uri:e};if(t!==undefined&&(t.recursive!==undefined||t.ignoreIfNotExists!==undefined)){r.options=t}if(n!==undefined){r.annotationId=n}return r}e.create=t;function n(e){let t=e;return t&&t.kind==="delete"&&vn.string(t.uri)&&(t.options===undefined||(t.options.recursive===undefined||vn.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===undefined||vn.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===undefined||ct.is(t.annotationId))}e.is=n})(ht||(ht={}));var pt;(function(e){function t(e){let t=e;return t&&(t.changes!==undefined||t.documentChanges!==undefined)&&(t.documentChanges===undefined||t.documentChanges.every((e=>{if(vn.string(e.kind)){return dt.is(e)||ft.is(e)||ht.is(e)}else{return lt.is(e)}})))}e.is=t})(pt||(pt={}));class mt{constructor(e,t){this.edits=e;this.changeAnnotations=t}insert(e,t,n){let r;let i;if(n===undefined){r=at.insert(e,t)}else if(ct.is(n)){i=n;r=ut.insert(e,t,n)}else{this.assertChangeAnnotations(this.changeAnnotations);i=this.changeAnnotations.manage(n);r=ut.insert(e,t,i)}this.edits.push(r);if(i!==undefined){return i}}replace(e,t,n){let r;let i;if(n===undefined){r=at.replace(e,t)}else if(ct.is(n)){i=n;r=ut.replace(e,t,n)}else{this.assertChangeAnnotations(this.changeAnnotations);i=this.changeAnnotations.manage(n);r=ut.replace(e,t,i)}this.edits.push(r);if(i!==undefined){return i}}delete(e,t){let n;let r;if(t===undefined){n=at.del(e)}else if(ct.is(t)){r=t;n=ut.del(e,t)}else{this.assertChangeAnnotations(this.changeAnnotations);r=this.changeAnnotations.manage(t);n=ut.del(e,r)}this.edits.push(n);if(r!==undefined){return r}}add(e){this.edits.push(e)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(e){if(e===undefined){throw new Error(`Text edit change is not configured to manage change annotations.`)}}}class gt{constructor(e){this._annotations=e===undefined?Object.create(null):e;this._counter=0;this._size=0}all(){return this._annotations}get size(){return this._size}manage(e,t){let n;if(ct.is(e)){n=e}else{n=this.nextId();t=e}if(this._annotations[n]!==undefined){throw new Error(`Id ${n} is already in use.`)}if(t===undefined){throw new Error(`No annotation provided for id ${n}`)}this._annotations[n]=t;this._size++;return n}nextId(){this._counter++;return this._counter.toString()}}class yt{constructor(e){this._textEditChanges=Object.create(null);if(e!==undefined){this._workspaceEdit=e;if(e.documentChanges){this._changeAnnotations=new gt(e.changeAnnotations);e.changeAnnotations=this._changeAnnotations.all();e.documentChanges.forEach((e=>{if(lt.is(e)){const t=new mt(e.edits,this._changeAnnotations);this._textEditChanges[e.textDocument.uri]=t}}))}else if(e.changes){Object.keys(e.changes).forEach((t=>{const n=new mt(e.changes[t]);this._textEditChanges[t]=n}))}}else{this._workspaceEdit={}}}get edit(){this.initDocumentChanges();if(this._changeAnnotations!==undefined){if(this._changeAnnotations.size===0){this._workspaceEdit.changeAnnotations=undefined}else{this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()}}return this._workspaceEdit}getTextEditChange(e){if(Tt.is(e)){this.initDocumentChanges();if(this._workspaceEdit.documentChanges===undefined){throw new Error("Workspace edit is not configured for document changes.")}const t={uri:e.uri,version:e.version};let n=this._textEditChanges[t.uri];if(!n){const e=[];const r={textDocument:t,edits:e};this._workspaceEdit.documentChanges.push(r);n=new mt(e,this._changeAnnotations);this._textEditChanges[t.uri]=n}return n}else{this.initChanges();if(this._workspaceEdit.changes===undefined){throw new Error("Workspace edit is not configured for normal text edit changes.")}let t=this._textEditChanges[e];if(!t){let n=[];this._workspaceEdit.changes[e]=n;t=new mt(n);this._textEditChanges[e]=t}return t}}initDocumentChanges(){if(this._workspaceEdit.documentChanges===undefined&&this._workspaceEdit.changes===undefined){this._changeAnnotations=new gt;this._workspaceEdit.documentChanges=[];this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()}}initChanges(){if(this._workspaceEdit.documentChanges===undefined&&this._workspaceEdit.changes===undefined){this._workspaceEdit.changes=Object.create(null)}}createFile(e,t,n){this.initDocumentChanges();if(this._workspaceEdit.documentChanges===undefined){throw new Error("Workspace edit is not configured for document changes.")}let r;if(ot.is(t)||ct.is(t)){r=t}else{n=t}let i;let s;if(r===undefined){i=dt.create(e,n)}else{s=ct.is(r)?r:this._changeAnnotations.manage(r);i=dt.create(e,n,s)}this._workspaceEdit.documentChanges.push(i);if(s!==undefined){return s}}renameFile(e,t,n,r){this.initDocumentChanges();if(this._workspaceEdit.documentChanges===undefined){throw new Error("Workspace edit is not configured for document changes.")}let i;if(ot.is(n)||ct.is(n)){i=n}else{r=n}let s;let a;if(i===undefined){s=ft.create(e,t,r)}else{a=ct.is(i)?i:this._changeAnnotations.manage(i);s=ft.create(e,t,r,a)}this._workspaceEdit.documentChanges.push(s);if(a!==undefined){return a}}deleteFile(e,t,n){this.initDocumentChanges();if(this._workspaceEdit.documentChanges===undefined){throw new Error("Workspace edit is not configured for document changes.")}let r;if(ot.is(t)||ct.is(t)){r=t}else{n=t}let i;let s;if(r===undefined){i=ht.create(e,n)}else{s=ct.is(r)?r:this._changeAnnotations.manage(r);i=ht.create(e,n,s)}this._workspaceEdit.documentChanges.push(i);if(s!==undefined){return s}}}var vt;(function(e){function t(e){return{uri:e}}e.create=t;function n(e){let t=e;return vn.defined(t)&&vn.string(t.uri)}e.is=n})(vt||(vt={}));var At;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return vn.defined(t)&&vn.string(t.uri)&&vn.integer(t.version)}e.is=n})(At||(At={}));var Tt;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return vn.defined(t)&&vn.string(t.uri)&&(t.version===null||vn.integer(t.version))}e.is=n})(Tt||(Tt={}));var Rt;(function(e){function t(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}}e.create=t;function n(e){let t=e;return vn.defined(t)&&vn.string(t.uri)&&vn.string(t.languageId)&&vn.integer(t.version)&&vn.string(t.text)}e.is=n})(Rt||(Rt={}));var Et;(function(e){e.PlainText="plaintext";e.Markdown="markdown";function t(t){const n=t;return n===e.PlainText||n===e.Markdown}e.is=t})(Et||(Et={}));var kt;(function(e){function t(e){const t=e;return vn.objectLiteral(e)&&Et.is(t.kind)&&vn.string(t.value)}e.is=t})(kt||(kt={}));var xt;(function(e){e.Text=1;e.Method=2;e.Function=3;e.Constructor=4;e.Field=5;e.Variable=6;e.Class=7;e.Interface=8;e.Module=9;e.Property=10;e.Unit=11;e.Value=12;e.Enum=13;e.Keyword=14;e.Snippet=15;e.Color=16;e.File=17;e.Reference=18;e.Folder=19;e.EnumMember=20;e.Constant=21;e.Struct=22;e.Event=23;e.Operator=24;e.TypeParameter=25})(xt||(xt={}));var $t;(function(e){e.PlainText=1;e.Snippet=2})($t||($t={}));var wt;(function(e){e.Deprecated=1})(wt||(wt={}));var It;(function(e){function t(e,t,n){return{newText:e,insert:t,replace:n}}e.create=t;function n(e){const t=e;return t&&vn.string(t.newText)&&He.is(t.insert)&&He.is(t.replace)}e.is=n})(It||(It={}));var St;(function(e){e.asIs=1;e.adjustIndentation=2})(St||(St={}));var Ct;(function(e){function t(e){const t=e;return t&&(vn.string(t.detail)||t.detail===undefined)&&(vn.string(t.description)||t.description===undefined)}e.is=t})(Ct||(Ct={}));var Nt;(function(e){function t(e){return{label:e}}e.create=t})(Nt||(Nt={}));var Lt;(function(e){function t(e,t){return{items:e?e:[],isIncomplete:!!t}}e.create=t})(Lt||(Lt={}));var bt;(function(e){function t(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=t;function n(e){const t=e;return vn.string(t)||vn.objectLiteral(t)&&vn.string(t.language)&&vn.string(t.value)}e.is=n})(bt||(bt={}));var _t;(function(e){function t(e){let t=e;return!!t&&vn.objectLiteral(t)&&(kt.is(t.contents)||bt.is(t.contents)||vn.typedArray(t.contents,bt.is))&&(e.range===undefined||He.is(e.range))}e.is=t})(_t||(_t={}));var Ot;(function(e){function t(e,t){return t?{label:e,documentation:t}:{label:e}}e.create=t})(Ot||(Ot={}));var Pt;(function(e){function t(e,t,...n){let r={label:e};if(vn.defined(t)){r.documentation=t}if(vn.defined(n)){r.parameters=n}else{r.parameters=[]}return r}e.create=t})(Pt||(Pt={}));var Mt;(function(e){e.Text=1;e.Read=2;e.Write=3})(Mt||(Mt={}));var Dt;(function(e){function t(e,t){let n={range:e};if(vn.number(t)){n.kind=t}return n}e.create=t})(Dt||(Dt={}));var Ut;(function(e){e.File=1;e.Module=2;e.Namespace=3;e.Package=4;e.Class=5;e.Method=6;e.Property=7;e.Field=8;e.Constructor=9;e.Enum=10;e.Interface=11;e.Function=12;e.Variable=13;e.Constant=14;e.String=15;e.Number=16;e.Boolean=17;e.Array=18;e.Object=19;e.Key=20;e.Null=21;e.EnumMember=22;e.Struct=23;e.Event=24;e.Operator=25;e.TypeParameter=26})(Ut||(Ut={}));var Ft;(function(e){e.Deprecated=1})(Ft||(Ft={}));var Gt;(function(e){function t(e,t,n,r,i){let s={name:e,kind:t,location:{uri:r,range:n}};if(i){s.containerName=i}return s}e.create=t})(Gt||(Gt={}));var Bt;(function(e){function t(e,t,n,r){return r!==undefined?{name:e,kind:t,location:{uri:n,range:r}}:{name:e,kind:t,location:{uri:n}}}e.create=t})(Bt||(Bt={}));var Kt;(function(e){function t(e,t,n,r,i,s){let a={name:e,detail:t,kind:n,range:r,selectionRange:i};if(s!==undefined){a.children=s}return a}e.create=t;function n(e){let t=e;return t&&vn.string(t.name)&&vn.number(t.kind)&&He.is(t.range)&&He.is(t.selectionRange)&&(t.detail===undefined||vn.string(t.detail))&&(t.deprecated===undefined||vn.boolean(t.deprecated))&&(t.children===undefined||Array.isArray(t.children))&&(t.tags===undefined||Array.isArray(t.tags))}e.is=n})(Kt||(Kt={}));var jt;(function(e){e.Empty="";e.QuickFix="quickfix";e.Refactor="refactor";e.RefactorExtract="refactor.extract";e.RefactorInline="refactor.inline";e.RefactorRewrite="refactor.rewrite";e.Source="source";e.SourceOrganizeImports="source.organizeImports";e.SourceFixAll="source.fixAll"})(jt||(jt={}));var Vt;(function(e){e.Invoked=1;e.Automatic=2})(Vt||(Vt={}));var Wt;(function(e){function t(e,t,n){let r={diagnostics:e};if(t!==undefined&&t!==null){r.only=t}if(n!==undefined&&n!==null){r.triggerKind=n}return r}e.create=t;function n(e){let t=e;return vn.defined(t)&&vn.typedArray(t.diagnostics,it.is)&&(t.only===undefined||vn.typedArray(t.only,vn.string))&&(t.triggerKind===undefined||t.triggerKind===Vt.Invoked||t.triggerKind===Vt.Automatic)}e.is=n})(Wt||(Wt={}));var Ht;(function(e){function t(e,t,n){let r={title:e};let i=true;if(typeof t==="string"){i=false;r.kind=t}else if(st.is(t)){r.command=t}else{r.edit=t}if(i&&n!==undefined){r.kind=n}return r}e.create=t;function n(e){let t=e;return t&&vn.string(t.title)&&(t.diagnostics===undefined||vn.typedArray(t.diagnostics,it.is))&&(t.kind===undefined||vn.string(t.kind))&&(t.edit!==undefined||t.command!==undefined)&&(t.command===undefined||st.is(t.command))&&(t.isPreferred===undefined||vn.boolean(t.isPreferred))&&(t.edit===undefined||pt.is(t.edit))}e.is=n})(Ht||(Ht={}));var zt;(function(e){function t(e,t){let n={range:e};if(vn.defined(t)){n.data=t}return n}e.create=t;function n(e){let t=e;return vn.defined(t)&&He.is(t.range)&&(vn.undefined(t.command)||st.is(t.command))}e.is=n})(zt||(zt={}));var Yt;(function(e){function t(e,t){return{tabSize:e,insertSpaces:t}}e.create=t;function n(e){let t=e;return vn.defined(t)&&vn.uinteger(t.tabSize)&&vn.boolean(t.insertSpaces)}e.is=n})(Yt||(Yt={}));var qt;(function(e){function t(e,t,n){return{range:e,target:t,data:n}}e.create=t;function n(e){let t=e;return vn.defined(t)&&He.is(t.range)&&(vn.undefined(t.target)||vn.string(t.target))}e.is=n})(qt||(qt={}));var Xt;(function(e){function t(e,t){return{range:e,parent:t}}e.create=t;function n(t){let n=t;return vn.objectLiteral(n)&&He.is(n.range)&&(n.parent===undefined||e.is(n.parent))}e.is=n})(Xt||(Xt={}));var Qt;(function(e){e["namespace"]="namespace";e["type"]="type";e["class"]="class";e["enum"]="enum";e["interface"]="interface";e["struct"]="struct";e["typeParameter"]="typeParameter";e["parameter"]="parameter";e["variable"]="variable";e["property"]="property";e["enumMember"]="enumMember";e["event"]="event";e["function"]="function";e["method"]="method";e["macro"]="macro";e["keyword"]="keyword";e["modifier"]="modifier";e["comment"]="comment";e["string"]="string";e["number"]="number";e["regexp"]="regexp";e["operator"]="operator";e["decorator"]="decorator"})(Qt||(Qt={}));var Zt;(function(e){e["declaration"]="declaration";e["definition"]="definition";e["readonly"]="readonly";e["static"]="static";e["deprecated"]="deprecated";e["abstract"]="abstract";e["async"]="async";e["modification"]="modification";e["documentation"]="documentation";e["defaultLibrary"]="defaultLibrary"})(Zt||(Zt={}));var Jt;(function(e){function t(e){const t=e;return vn.objectLiteral(t)&&(t.resultId===undefined||typeof t.resultId==="string")&&Array.isArray(t.data)&&(t.data.length===0||typeof t.data[0]==="number")}e.is=t})(Jt||(Jt={}));var en;(function(e){function t(e,t){return{range:e,text:t}}e.create=t;function n(e){const t=e;return t!==undefined&&t!==null&&He.is(t.range)&&vn.string(t.text)}e.is=n})(en||(en={}));var tn;(function(e){function t(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}}e.create=t;function n(e){const t=e;return t!==undefined&&t!==null&&He.is(t.range)&&vn.boolean(t.caseSensitiveLookup)&&(vn.string(t.variableName)||t.variableName===undefined)}e.is=n})(tn||(tn={}));var nn;(function(e){function t(e,t){return{range:e,expression:t}}e.create=t;function n(e){const t=e;return t!==undefined&&t!==null&&He.is(t.range)&&(vn.string(t.expression)||t.expression===undefined)}e.is=n})(nn||(nn={}));var rn;(function(e){function t(e,t){return{frameId:e,stoppedLocation:t}}e.create=t;function n(e){const t=e;return vn.defined(t)&&He.is(e.stoppedLocation)}e.is=n})(rn||(rn={}));var sn;(function(e){e.Type=1;e.Parameter=2;function t(e){return e===1||e===2}e.is=t})(sn||(sn={}));var an;(function(e){function t(e){return{value:e}}e.create=t;function n(e){const t=e;return vn.objectLiteral(t)&&(t.tooltip===undefined||vn.string(t.tooltip)||kt.is(t.tooltip))&&(t.location===undefined||ze.is(t.location))&&(t.command===undefined||st.is(t.command))}e.is=n})(an||(an={}));var on;(function(e){function t(e,t,n){const r={position:e,label:t};if(n!==undefined){r.kind=n}return r}e.create=t;function n(e){const t=e;return vn.objectLiteral(t)&&We.is(t.position)&&(vn.string(t.label)||vn.typedArray(t.label,an.is))&&(t.kind===undefined||sn.is(t.kind))&&t.textEdits===undefined||vn.typedArray(t.textEdits,at.is)&&(t.tooltip===undefined||vn.string(t.tooltip)||kt.is(t.tooltip))&&(t.paddingLeft===undefined||vn.boolean(t.paddingLeft))&&(t.paddingRight===undefined||vn.boolean(t.paddingRight))}e.is=n})(on||(on={}));var cn;(function(e){function t(e){return{kind:"snippet",value:e}}e.createSnippet=t})(cn||(cn={}));var un;(function(e){function t(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}e.create=t})(un||(un={}));var ln;(function(e){function t(e){return{items:e}}e.create=t})(ln||(ln={}));var dn;(function(e){e.Invoked=0;e.Automatic=1})(dn||(dn={}));var fn;(function(e){function t(e,t){return{range:e,text:t}}e.create=t})(fn||(fn={}));var hn;(function(e){function t(e,t){return{triggerKind:e,selectedCompletionInfo:t}}e.create=t})(hn||(hn={}));var pn;(function(e){function t(e){const t=e;return vn.objectLiteral(t)&&Ke.is(t.uri)&&vn.string(t.name)}e.is=t})(pn||(pn={}));const mn=null&&["\n","\r\n","\r"];var gn;(function(e){function t(e,t,n,r){return new yn(e,t,n,r)}e.create=t;function n(e){let t=e;return vn.defined(t)&&vn.string(t.uri)&&(vn.undefined(t.languageId)||vn.string(t.languageId))&&vn.uinteger(t.lineCount)&&vn.func(t.getText)&&vn.func(t.positionAt)&&vn.func(t.offsetAt)?true:false}e.is=n;function r(e,t){let n=e.getText();let r=i(t,((e,t)=>{let n=e.range.start.line-t.range.start.line;if(n===0){return e.range.start.character-t.range.start.character}return n}));let s=n.length;for(let i=r.length-1;i>=0;i--){let t=r[i];let a=e.offsetAt(t.range.start);let o=e.offsetAt(t.range.end);if(o<=s){n=n.substring(0,a)+t.newText+n.substring(o,n.length)}else{throw new Error("Overlapping edit")}s=a}return n}e.applyEdits=r;function i(e,t){if(e.length<=1){return e}const n=e.length/2|0;const r=e.slice(0,n);const s=e.slice(n);i(r,t);i(s,t);let a=0;let o=0;let c=0;while(a0){e.push(t.length)}this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets();let n=0,r=t.length;if(r===0){return We.create(0,e)}while(ne){r=i}else{n=i+1}}let i=n-1;return We.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length){return this._content.length}else if(e.line<0){return 0}let n=t[e.line];let r=e.line+1=0){t.content.splice(n,1)}}}addHiddenNodes(e){const t=[];for(const s of e){const e=new Rn(s.startOffset,s.image.length,(0,r.wf)(s),s.tokenType,true);e.root=this.rootNode;t.push(e)}let n=this.current;let i=false;if(n.content.length>0){n.content.push(...t);return}while(n.container){const e=n.container.content.indexOf(n);if(e>0){n.container.content.splice(e,0,...t);i=true;break}n=n.container}if(!i){this.rootNode.content.unshift(...t)}}construct(e){const t=this.current;if(typeof e.$type==="string"){this.current.astNode=e}e.$cstNode=t;const n=this.nodeStack.pop();if((n===null||n===void 0?void 0:n.content.length)===0){this.removeNode(n)}}}class Tn{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return false}get astNode(){var e,t;const n=typeof((e=this._astNode)===null||e===void 0?void 0:e.$type)==="string"?this._astNode:(t=this.container)===null||t===void 0?void 0:t.astNode;if(!n){throw new Error("This node has no associated AST element")}return n}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class Rn extends Tn{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,n,r,i=false){super();this._hidden=i;this._offset=e;this._tokenType=r;this._length=t;this._range=n}}class En extends Tn{constructor(){super(...arguments);this.content=new kn(this)}get children(){return this.content}get offset(){var e,t;return(t=(e=this.firstNonHiddenNode)===null||e===void 0?void 0:e.offset)!==null&&t!==void 0?t:0}get length(){return this.end-this.offset}get end(){var e,t;return(t=(e=this.lastNonHiddenNode)===null||e===void 0?void 0:e.end)!==null&&t!==void 0?t:0}get range(){const e=this.firstNonHiddenNode;const t=this.lastNonHiddenNode;if(e&&t){if(this._rangeCache===undefined){const{range:n}=e;const{range:r}=t;this._rangeCache={start:n.start,end:r.end.line=0;e--){const t=this.content[e];if(!t.hidden){return t}}return this.content[this.content.length-1]}}class kn extends Array{constructor(e){super();this.parent=e;Object.setPrototypeOf(this,kn.prototype)}push(...e){this.addParents(e);return super.push(...e)}unshift(...e){this.addParents(e);return super.unshift(...e)}splice(e,t,...n){this.addParents(n);return super.splice(e,t,...n)}addParents(e){for(const t of e){t.container=this.parent}}}class xn extends En{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super();this._text="";this._text=e!==null&&e!==void 0?e:""}}const $n=Symbol("Datatype");function wn(e){return e.$type===$n}const In="​";const Sn=e=>e.endsWith(In)?e:e+In;class Cn{constructor(e){this._unorderedGroups=new Map;this.allRules=new Map;this.lexer=e.parser.Lexer;const t=this.lexer.definition;const n=e.LanguageMetaData.mode==="production";this.wrapper=new Pn(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class Nn extends Cn{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e);this.nodeBuilder=new An;this.stack=[];this.assignmentMap=new Map;this.linker=e.references.Linker;this.converter=e.parser.ValueConverter;this.astReflection=e.shared.AstReflection}rule(e,t){const n=this.computeRuleType(e);const r=this.wrapper.DEFINE_RULE(Sn(e.name),this.startImplementation(n,t).bind(this));this.allRules.set(e.name,r);if(e.entry){this.mainRule=r}return r}computeRuleType(e){if(e.fragment){return undefined}else if((0,i.Xq)(e)){return $n}else{const t=(0,i.PV)(e);return t!==null&&t!==void 0?t:e.name}}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const n=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=n.tokens;const r=t.rule?this.allRules.get(t.rule):this.mainRule;if(!r){throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.")}const i=r.call(this.wrapper,{});this.nodeBuilder.addHiddenNodes(n.hidden);this.unorderedGroups.clear();this.lexerResult=undefined;return{value:i,lexerErrors:n.errors,lexerReport:n.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return n=>{const r=!this.isRecording()&&e!==undefined;if(r){const t={$type:e};this.stack.push(t);if(e===$n){t.value=""}}let i;try{i=t(n)}catch(s){i=undefined}if(i===undefined&&r){i=this.construct()}return i}}extractHiddenTokens(e){const t=this.lexerResult.hidden;if(!t.length){return[]}const n=e.startOffset;for(let r=0;rn){return t.splice(0,r)}}return t.splice(0,t.length)}consume(e,t,n){const r=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(r)){const e=this.extractHiddenTokens(r);this.nodeBuilder.addHiddenNodes(e);const t=this.nodeBuilder.buildLeafNode(r,n);const{assignment:i,isCrossRef:s}=this.getAssignment(n);const o=this.current;if(i){const e=(0,a.wb)(n)?r.image:this.converter.convert(r.image,t);this.assign(i.operator,i.feature,e,t,s)}else if(wn(o)){let e=r.image;if(!(0,a.wb)(n)){e=this.converter.convert(e,t).toString()}o.value+=e}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset==="number"&&!isNaN(e.endOffset)}subrule(e,t,n,r,i){let s;if(!this.isRecording()&&!n){s=this.nodeBuilder.buildCompositeNode(r)}const a=this.wrapper.wrapSubrule(e,t,i);if(!this.isRecording()&&s&&s.length>0){this.performSubruleAssignment(a,r,s)}}performSubruleAssignment(e,t,n){const{assignment:r,isCrossRef:i}=this.getAssignment(t);if(r){this.assign(r.operator,r.feature,e,n,i)}else if(!r){const t=this.current;if(wn(t)){t.value+=e.toString()}else if(typeof e==="object"&&e){const n=this.assignWithoutOverride(e,t);const r=n;this.stack.pop();this.stack.push(r)}}}action(e,t){if(!this.isRecording()){let n=this.current;if(t.feature&&t.operator){n=this.construct();this.nodeBuilder.removeNode(n.$cstNode);const r=this.nodeBuilder.buildCompositeNode(t);r.content.push(n.$cstNode);const i={$type:e};this.stack.push(i);this.assign(t.operator,t.feature,n,n.$cstNode,false)}else{n.$type=e}}}construct(){if(this.isRecording()){return undefined}const e=this.current;(0,Ge.SD)(e);this.nodeBuilder.construct(e);this.stack.pop();if(wn(e)){return this.converter.convert(e.value,e.$cstNode)}else{(0,Ge.OP)(this.astReflection,e)}return e}getAssignment(e){if(!this.assignmentMap.has(e)){const t=(0,Ge.XG)(e,a.wh);this.assignmentMap.set(e,{assignment:t,isCrossRef:t?(0,a._c)(t.terminal):false})}return this.assignmentMap.get(e)}assign(e,t,n,r,i){const s=this.current;let a;if(i&&typeof n==="string"){a=this.linker.buildReference(s,t,r,n)}else{a=n}switch(e){case"=":{s[t]=a;break}case"?=":{s[t]=true;break}case"+=":{if(!Array.isArray(s[t])){s[t]=[]}s[t].push(a)}}}assignWithoutOverride(e,t){for(const[r,i]of Object.entries(t)){const t=e[r];if(t===undefined){e[r]=i}else if(Array.isArray(t)&&Array.isArray(i)){i.push(...t);e[r]=i}}const n=e.$cstNode;if(n){n.astNode=undefined;e.$cstNode=undefined}return e}get definitionErrors(){return this.wrapper.definitionErrors}}class Ln{buildMismatchTokenMessage(e){return c.my.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return c.my.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return c.my.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return c.my.buildEarlyExitMessage(e)}}class bn extends Ln{buildMismatchTokenMessage({expected:e,actual:t}){const n=e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`;return`Expecting ${n} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}}class _n extends Cn{constructor(){super(...arguments);this.tokens=[];this.elementStack=[];this.lastElementStack=[];this.nextTokenIndex=0;this.stackSize=0}action(){}construct(){return undefined}parse(e){this.resetState();const t=this.lexer.tokenize(e,{mode:"partial"});this.tokens=t.tokens;this.wrapper.input=[...this.tokens];this.mainRule.call(this.wrapper,{});this.unorderedGroups.clear();return{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){const n=this.wrapper.DEFINE_RULE(Sn(e.name),this.startImplementation(t).bind(this));this.allRules.set(e.name,n);if(e.entry){this.mainRule=n}return n}resetState(){this.elementStack=[];this.lastElementStack=[];this.nextTokenIndex=0;this.stackSize=0}startImplementation(e){return t=>{const n=this.keepStackSize();try{e(t)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;this.stackSize=e;return e}resetStackSize(e){this.removeUnexpectedElements();this.stackSize=e}consume(e,t,n){this.wrapper.wrapConsume(e,t);if(!this.isRecording()){this.lastElementStack=[...this.elementStack,n];this.nextTokenIndex=this.currIdx+1}}subrule(e,t,n,r,i){this.before(r);this.wrapper.wrapSubrule(e,t,i);this.after(r)}before(e){if(!this.isRecording()){this.elementStack.push(e)}}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);if(t>=0){this.elementStack.splice(t)}}}get currIdx(){return this.wrapper.currIdx}}const On={recoveryEnabled:true,nodeLocationTracking:"full",skipValidations:true,errorMessageProvider:new bn};class Pn extends c.jr{constructor(e,t){const n=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},On),{lookaheadStrategy:n?new c.T6({maxLookahead:t.maxLookahead}):new pe({logging:t.skipValidations?()=>{}:undefined})}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,n){return this.subrule(e,t,{ARGS:[n]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}var Mn=n(73101);var Dn=n(64386);function Un(e,t,n){const r={parser:t,tokens:n,ruleNames:new Map};Fn(r,e);return t}function Fn(e,t){const n=(0,i.YV)(t,false);const r=(0,Dn.Td)(t.rules).filter(a.s7).filter((e=>n.has(e)));for(const i of r){const t=Object.assign(Object.assign({},e),{consume:1,optional:1,subrule:1,many:1,or:1});e.parser.rule(i,Gn(t,i.definition))}}function Gn(e,t,n=false){let r;if((0,a.wb)(t)){r=Xn(e,t)}else if((0,a.ve)(t)){r=Bn(e,t)}else if((0,a.wh)(t)){r=Gn(e,t.terminal)}else if((0,a._c)(t)){r=qn(e,t)}else if((0,a.$g)(t)){r=Kn(e,t)}else if((0,a.jp)(t)){r=Wn(e,t)}else if((0,a.cY)(t)){r=Hn(e,t)}else if((0,a.IZ)(t)){r=zn(e,t)}else if((0,a.FO)(t)){const n=e.consume++;r=()=>e.parser.consume(n,c.LT,t)}else{throw new Mn.W(t.$cstNode,`Unexpected element type: ${t.$type}`)}return Qn(e,n?undefined:Yn(t),r,t.cardinality)}function Bn(e,t){const n=(0,i.Uz)(t);return()=>e.parser.action(n,t)}function Kn(e,t){const n=t.rule.ref;if((0,a.s7)(n)){const r=e.subrule++;const i=n.fragment;const s=t.arguments.length>0?jn(n,t.arguments):()=>({});return a=>e.parser.subrule(r,Zn(e,n),i,t,s(a))}else if((0,a.rE)(n)){const r=e.consume++;const i=er(e,n.name);return()=>e.parser.consume(r,i,t)}else if(!n){throw new Mn.W(t.$cstNode,`Undefined rule: ${t.rule.$refText}`)}else{(0,Mn.d)(n)}}function jn(e,t){const n=t.map((e=>Vn(e.value)));return t=>{const r={};for(let i=0;it(e)||n(e)}else if((0,a.Tu)(e)){const t=Vn(e.left);const n=Vn(e.right);return e=>t(e)&&n(e)}else if((0,a.Ct)(e)){const t=Vn(e.value);return e=>!t(e)}else if((0,a.TF)(e)){const t=e.parameter.ref.name;return e=>e!==undefined&&e[t]===true}else if((0,a.Cz)(e)){const t=Boolean(e.true);return()=>t}(0,Mn.d)(e)}function Wn(e,t){if(t.elements.length===1){return Gn(e,t.elements[0])}else{const n=[];for(const i of t.elements){const t={ALT:Gn(e,i,true)};const r=Yn(i);if(r){t.GATE=Vn(r)}n.push(t)}const r=e.or++;return t=>e.parser.alternatives(r,n.map((e=>{const n={ALT:()=>e.ALT(t)};const r=e.GATE;if(r){n.GATE=()=>r(t)}return n})))}}function Hn(e,t){if(t.elements.length===1){return Gn(e,t.elements[0])}const n=[];for(const o of t.elements){const t={ALT:Gn(e,o,true)};const r=Yn(o);if(r){t.GATE=Vn(r)}n.push(t)}const r=e.or++;const i=(e,t)=>{const n=t.getRuleStack().join("-");return`uGroup_${e}_${n}`};const s=t=>e.parser.alternatives(r,n.map(((n,s)=>{const a={ALT:()=>true};const o=e.parser;a.ALT=()=>{n.ALT(t);if(!o.isRecording()){const e=i(r,o);if(!o.unorderedGroups.get(e)){o.unorderedGroups.set(e,[])}const t=o.unorderedGroups.get(e);if(typeof(t===null||t===void 0?void 0:t[s])==="undefined"){t[s]=true}}};const c=n.GATE;if(c){a.GATE=()=>c(t)}else{a.GATE=()=>{const e=o.unorderedGroups.get(i(r,o));const t=!(e===null||e===void 0?void 0:e[s]);return t}}return a})));const a=Qn(e,Yn(t),s,"*");return t=>{a(t);if(!e.parser.isRecording()){e.parser.unorderedGroups.delete(i(r,e.parser))}}}function zn(e,t){const n=t.elements.map((t=>Gn(e,t)));return e=>n.forEach((t=>t(e)))}function Yn(e){if((0,a.IZ)(e)){return e.guardCondition}return undefined}function qn(e,t,n=t.terminal){if(!n){if(!t.type.ref){throw new Error("Could not resolve reference to type: "+t.type.$refText)}const n=(0,i.U5)(t.type.ref);const r=n===null||n===void 0?void 0:n.terminal;if(!r){throw new Error("Could not find name assignment for type: "+(0,i.Uz)(t.type.ref))}return qn(e,t,r)}else if((0,a.$g)(n)&&(0,a.s7)(n.rule.ref)){const r=n.rule.ref;const i=e.subrule++;return n=>e.parser.subrule(i,Zn(e,r),false,t,n)}else if((0,a.$g)(n)&&(0,a.rE)(n.rule.ref)){const r=e.consume++;const i=er(e,n.rule.ref.name);return()=>e.parser.consume(r,i,t)}else if((0,a.wb)(n)){const r=e.consume++;const i=er(e,n.value);return()=>e.parser.consume(r,i,t)}else{throw new Error("Could not build cross reference parser")}}function Xn(e,t){const n=e.consume++;const r=e.tokens[t.value];if(!r){throw new Error("Could not find token for keyword: "+t.value)}return()=>e.parser.consume(n,r,t)}function Qn(e,t,n,r){const i=t&&Vn(t);if(!r){if(i){const t=e.or++;return r=>e.parser.alternatives(t,[{ALT:()=>n(r),GATE:()=>i(r)},{ALT:(0,c.mT)(),GATE:()=>!i(r)}])}else{return n}}if(r==="*"){const t=e.many++;return r=>e.parser.many(t,{DEF:()=>n(r),GATE:i?()=>i(r):undefined})}else if(r==="+"){const t=e.many++;if(i){const r=e.or++;return s=>e.parser.alternatives(r,[{ALT:()=>e.parser.atLeastOne(t,{DEF:()=>n(s)}),GATE:()=>i(s)},{ALT:(0,c.mT)(),GATE:()=>!i(s)}])}else{return r=>e.parser.atLeastOne(t,{DEF:()=>n(r)})}}else if(r==="?"){const t=e.optional++;return r=>e.parser.optional(t,{DEF:()=>n(r),GATE:i?()=>i(r):undefined})}else{(0,Mn.d)(r)}}function Zn(e,t){const n=Jn(e,t);const r=e.parser.getRule(n);if(!r)throw new Error(`Rule "${n}" not found."`);return r}function Jn(e,t){if((0,a.s7)(t)){return t.name}else if(e.ruleNames.has(t)){return e.ruleNames.get(t)}else{let n=t;let r=n.$container;let i=t.$type;while(!(0,a.s7)(r)){if((0,a.IZ)(r)||(0,a.jp)(r)||(0,a.cY)(r)){const e=r.elements.indexOf(n);i=e.toString()+":"+i}n=r;r=r.$container}const s=r;i=s.name+":"+i;e.ruleNames.set(t,i);return i}}function er(e,t){const n=e.tokens[t];if(!n)throw new Error(`Token "${t}" not found."`);return n}function tr(e){const t=e.Grammar;const n=e.parser.Lexer;const r=new _n(e);Un(t,r,n.definition);r.finalize();return r}function nr(e){const t=rr(e);t.finalize();return t}function rr(e){const t=e.Grammar;const n=e.parser.Lexer;const r=new Nn(e);return Un(t,r,n.definition)}var ir=n(25355);var sr=n(14480);var ar=n(59850);var or=n(64032);function cr(){return new Promise((e=>{if(typeof setImmediate==="undefined"){setTimeout(e,0)}else{setImmediate(e)}}))}let ur=0;let lr=10;function dr(){ur=performance.now();return new ar.CancellationTokenSource}function fr(e){lr=e}const hr=Symbol("OperationCancelled");function pr(e){return e===hr}async function mr(e){if(e===ar.CancellationToken.None){return}const t=performance.now();if(t-ur>=lr){ur=t;await cr();ur=performance.now()}if(e.isCancellationRequested){throw hr}}class gr{constructor(){this.promise=new Promise(((e,t)=>{this.resolve=t=>{e(t);return this};this.reject=e=>{t(e);return this}}))}}class yr{constructor(e,t,n,r){this._uri=e;this._languageId=t;this._version=n;this._content=r;this._lineOffsets=undefined}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start);const n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){for(const n of e){if(yr.isIncremental(n)){const e=Er(n.range);const t=this.offsetAt(e.start);const r=this.offsetAt(e.end);this._content=this._content.substring(0,t)+n.text+this._content.substring(r,this._content.length);const i=Math.max(e.start.line,0);const s=Math.max(e.end.line,0);let a=this._lineOffsets;const o=Tr(n.text,false,t);if(s-i===o.length){for(let e=0,t=o.length;ee){r=i}else{n=i+1}}const i=n-1;e=this.ensureBeforeEOL(e,t[i]);return{line:i,character:e-t[i]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length){return this._content.length}else if(e.line<0){return 0}const n=t[e.line];if(e.character<=0){return n}const r=e.line+1t&&Rr(this._content.charCodeAt(e-1))){e--}return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return t!==undefined&&t!==null&&typeof t.text==="string"&&t.range!==undefined&&(t.rangeLength===undefined||typeof t.rangeLength==="number")}static isFull(e){const t=e;return t!==undefined&&t!==null&&typeof t.text==="string"&&t.range===undefined&&t.rangeLength===undefined}}var vr;(function(e){function t(e,t,n,r){return new yr(e,t,n,r)}e.create=t;function n(e,t,n){if(e instanceof yr){e.update(t,n);return e}else{throw new Error("TextDocument.update: document must be created by TextDocument.create")}}e.update=n;function r(e,t){const n=e.getText();const r=Ar(t.map(kr),((e,t)=>{const n=e.range.start.line-t.range.start.line;if(n===0){return e.range.start.character-t.range.start.character}return n}));let i=0;const s=[];for(const a of r){const t=e.offsetAt(a.range.start);if(ti){s.push(n.substring(i,t))}if(a.newText.length){s.push(a.newText)}i=e.offsetAt(a.range.end)}s.push(n.substr(i));return s.join("")}e.applyEdits=r})(vr||(vr={}));function Ar(e,t){if(e.length<=1){return e}const n=e.length/2|0;const r=e.slice(0,n);const i=e.slice(n);Ar(r,t);Ar(i,t);let s=0;let a=0;let o=0;while(sn.line||t.line===n.line&&t.character>n.character){return{start:n,end:t}}return e}function kr(e){const t=Er(e.range);if(t!==e.range){return{newText:e.newText,range:t}}return e}var xr=n(14247);var $r;(function(e){e[e["Changed"]=0]="Changed";e[e["Parsed"]=1]="Parsed";e[e["IndexedContent"]=2]="IndexedContent";e[e["ComputedScopes"]=3]="ComputedScopes";e[e["Linked"]=4]="Linked";e[e["IndexedReferences"]=5]="IndexedReferences";e[e["Validated"]=6]="Validated"})($r||($r={}));class wr{constructor(e){this.serviceRegistry=e.ServiceRegistry;this.textDocuments=e.workspace.TextDocuments;this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=ar.CancellationToken.None){const n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,t)}fromTextDocument(e,t,n){t=t!==null&&t!==void 0?t:xr.r.parse(e.uri);if(ar.CancellationToken.is(n)){return this.createAsync(t,e,n)}else{return this.create(t,e,n)}}fromString(e,t,n){if(ar.CancellationToken.is(n)){return this.createAsync(t,e,n)}else{return this.create(t,e,n)}}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,n){if(typeof t==="string"){const r=this.parse(e,t,n);return this.createLangiumDocument(r,e,undefined,t)}else if("$model"in t){const n={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,e)}else{const r=this.parse(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}async createAsync(e,t,n){if(typeof t==="string"){const r=await this.parseAsync(e,t,n);return this.createLangiumDocument(r,e,undefined,t)}else{const r=await this.parseAsync(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}createLangiumDocument(e,t,n,r){let i;if(n){i={parseResult:e,uri:t,state:$r.Parsed,references:[],textDocument:n}}else{const n=this.createTextDocumentGetter(t,r);i={parseResult:e,uri:t,state:$r.Parsed,references:[],get textDocument(){return n()}}}e.value.$document=i;return i}async update(e,t){var n,r;const i=(n=e.parseResult.value.$cstNode)===null||n===void 0?void 0:n.root.fullText;const s=(r=this.textDocuments)===null||r===void 0?void 0:r.get(e.uri.toString());const a=s?s.getText():await this.fileSystemProvider.readFile(e.uri);if(s){Object.defineProperty(e,"textDocument",{value:s})}else{const t=this.createTextDocumentGetter(e.uri,a);Object.defineProperty(e,"textDocument",{get:t})}if(i!==a){e.parseResult=await this.parseAsync(e.uri,a,t);e.parseResult.value.$document=e}e.state=$r.Parsed;return e}parse(e,t,n){const r=this.serviceRegistry.getServices(e);return r.parser.LangiumParser.parse(t,n)}parseAsync(e,t,n){const r=this.serviceRegistry.getServices(e);return r.parser.AsyncParser.parse(t,n)}createTextDocumentGetter(e,t){const n=this.serviceRegistry;let r=undefined;return()=>r!==null&&r!==void 0?r:r=vr.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t!==null&&t!==void 0?t:"")}}class Ir{constructor(e){this.documentMap=new Map;this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory;this.serviceRegistry=e.ServiceRegistry}get all(){return(0,Dn.Td)(this.documentMap.values())}addDocument(e){const t=e.uri.toString();if(this.documentMap.has(t)){throw new Error(`A document with the URI '${t}' is already present.`)}this.documentMap.set(t,e)}getDocument(e){const t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let n=this.getDocument(e);if(n){return n}n=await this.langiumDocumentFactory.fromUri(e,t);this.addDocument(n);return n}createDocument(e,t,n){if(n){return this.langiumDocumentFactory.fromString(t,e,n).then((e=>{this.addDocument(e);return e}))}else{const n=this.langiumDocumentFactory.fromString(t,e);this.addDocument(n);return n}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString();const n=this.documentMap.get(t);if(n){const t=this.serviceRegistry.getServices(e).references.Linker;t.unlink(n);n.state=$r.Changed;n.precomputedScopes=undefined;n.diagnostics=undefined}return n}deleteDocument(e){const t=e.toString();const n=this.documentMap.get(t);if(n){n.state=$r.Changed;this.documentMap.delete(t)}return n}}const Sr=Symbol("ref_resolving");class Cr{constructor(e){this.reflection=e.shared.AstReflection;this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments;this.scopeProvider=e.references.ScopeProvider;this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=ar.CancellationToken.None){for(const n of(0,Ge.jm)(e.parseResult.value)){await mr(t);(0,Ge.DM)(n).forEach((t=>this.doLink(t,e)))}}doLink(e,t){var n;const r=e.reference;if(r._ref===undefined){r._ref=Sr;try{const t=this.getCandidate(e);if((0,or.Zl)(t)){r._ref=t}else{r._nodeDescription=t;if(this.langiumDocuments().hasDocument(t.documentUri)){const n=this.loadAstNode(t);r._ref=n!==null&&n!==void 0?n:this.createLinkingError(e,t)}else{r._ref=undefined}}}catch(i){console.error(`An error occurred while resolving reference to '${r.$refText}':`,i);const t=(n=i.message)!==null&&n!==void 0?n:String(i);r._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${r.$refText}': ${t}`})}t.references.push(r)}}unlink(e){for(const t of e.references){delete t._ref;delete t._nodeDescription}e.references=[]}getCandidate(e){const t=this.scopeProvider.getScope(e);const n=t.getElement(e.reference.$refText);return n!==null&&n!==void 0?n:this.createLinkingError(e)}buildReference(e,t,n,r){const i=this;const s={$refNode:n,$refText:r,get ref(){var n;if((0,or.ng)(this._ref)){return this._ref}else if((0,or.Nr)(this._nodeDescription)){const n=i.loadAstNode(this._nodeDescription);this._ref=n!==null&&n!==void 0?n:i.createLinkingError({reference:s,container:e,property:t},this._nodeDescription)}else if(this._ref===undefined){this._ref=Sr;const r=(0,Ge.cQ)(e).$document;const a=i.getLinkedNode({reference:s,container:e,property:t});if(a.error&&r&&r.state<$r.ComputedScopes){return this._ref=undefined}this._ref=(n=a.node)!==null&&n!==void 0?n:a.error;this._nodeDescription=a.descr;r===null||r===void 0?void 0:r.references.push(this)}else if(this._ref===Sr){throw new Error(`Cyclic reference resolution detected: ${i.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${r}')`)}return(0,or.ng)(this._ref)?this._ref:undefined},get $nodeDescription(){return this._nodeDescription},get error(){return(0,or.Zl)(this._ref)?this._ref:undefined}};return s}getLinkedNode(e){var t;try{const t=this.getCandidate(e);if((0,or.Zl)(t)){return{error:t}}const n=this.loadAstNode(t);if(n){return{node:n,descr:t}}else{return{descr:t,error:this.createLinkingError(e,t)}}}catch(n){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,n);const r=(t=n.message)!==null&&t!==void 0?t:String(n);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${r}`})}}}loadAstNode(e){if(e.node){return e.node}const t=this.langiumDocuments().getDocument(e.documentUri);if(!t){return undefined}return this.astNodeLocator.getAstNode(t.parseResult.value,e.path)}createLinkingError(e,t){const n=(0,Ge.cQ)(e.container).$document;if(n&&n.state<$r.ComputedScopes){console.warn(`Attempted reference resolution before document reached ComputedScopes state (${n.uri}).`)}const r=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${r} named '${e.reference.$refText}'.`,targetDescription:t})}}function Nr(e){return typeof e.name==="string"}class Lr{getName(e){if(Nr(e)){return e.name}return undefined}getNameNode(e){return(0,i.qO)(e.$cstNode,"name")}}var br;(function(e){e.basename=xr.A.basename;e.dirname=xr.A.dirname;e.extname=xr.A.extname;e.joinPath=xr.A.joinPath;e.resolvePath=xr.A.resolvePath;function t(e,t){return(e===null||e===void 0?void 0:e.toString())===(t===null||t===void 0?void 0:t.toString())}e.equals=t;function n(e,t){const n=typeof e==="string"?e:e.path;const r=typeof t==="string"?t:t.path;const i=n.split("/").filter((e=>e.length>0));const s=r.split("/").filter((e=>e.length>0));let a=0;for(;a=e.end){return t.ref}}}}if(n){const t=this.nameProvider.getNameNode(n);if(t&&(t===e||(0,r.pO)(e,t))){return n}}}return undefined}findDeclarationNode(e){const t=this.findDeclaration(e);if(t===null||t===void 0?void 0:t.$cstNode){const e=this.nameProvider.getNameNode(t);return e!==null&&e!==void 0?e:t.$cstNode}return undefined}findReferences(e,t){const n=[];if(t.includeDeclaration){const t=this.getReferenceToSelf(e);if(t){n.push(t)}}let r=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));if(t.documentUri){r=r.filter((e=>br.equals(e.sourceUri,t.documentUri)))}n.push(...r);return(0,Dn.Td)(n)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const n=(0,Ge.YE)(e);const i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:(0,r.SX)(t),local:true}}return undefined}}class Or{constructor(e){this.map=new Map;if(e){for(const[t,n]of e){this.add(t,n)}}}get size(){return Dn.iD.sum((0,Dn.Td)(this.map.values()).map((e=>e.length)))}clear(){this.map.clear()}delete(e,t){if(t===undefined){return this.map.delete(e)}else{const n=this.map.get(e);if(n){const r=n.indexOf(t);if(r>=0){if(n.length===1){this.map.delete(e)}else{n.splice(r,1)}return true}}return false}}get(e){var t;return(t=this.map.get(e))!==null&&t!==void 0?t:[]}has(e,t){if(t===undefined){return this.map.has(e)}else{const n=this.map.get(e);if(n){return n.indexOf(t)>=0}return false}}add(e,t){if(this.map.has(e)){this.map.get(e).push(t)}else{this.map.set(e,[t])}return this}addAll(e,t){if(this.map.has(e)){this.map.get(e).push(...t)}else{this.map.set(e,Array.from(t))}return this}forEach(e){this.map.forEach(((t,n)=>t.forEach((t=>e(t,n,this)))))}[Symbol.iterator](){return this.entries().iterator()}entries(){return(0,Dn.Td)(this.map.entries()).flatMap((([e,t])=>t.map((t=>[e,t]))))}keys(){return(0,Dn.Td)(this.map.keys())}values(){return(0,Dn.Td)(this.map.values()).flat()}entriesGroupedByKey(){return(0,Dn.Td)(this.map.entries())}}class Pr{get size(){return this.map.size}constructor(e){this.map=new Map;this.inverse=new Map;if(e){for(const[t,n]of e){this.set(t,n)}}}clear(){this.map.clear();this.inverse.clear()}set(e,t){this.map.set(e,t);this.inverse.set(t,e);return this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const t=this.map.get(e);if(t!==undefined){this.map.delete(e);this.inverse.delete(t);return true}return false}}class Mr{constructor(e){this.nameProvider=e.references.NameProvider;this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=ar.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,undefined,t)}async computeExportsForNode(e,t,n=Ge.VN,r=ar.CancellationToken.None){const i=[];this.exportNode(e,i,t);for(const s of n(e)){await mr(r);this.exportNode(s,i,t)}return i}exportNode(e,t,n){const r=this.nameProvider.getName(e);if(r){t.push(this.descriptions.createDescription(e,r,n))}}async computeLocalScopes(e,t=ar.CancellationToken.None){const n=e.parseResult.value;const r=new Or;for(const i of(0,Ge.Uo)(n)){await mr(t);this.processNode(i,e,r)}return r}processNode(e,t,n){const r=e.$container;if(r){const i=this.nameProvider.getName(e);if(i){n.add(r,this.descriptions.createDescription(e,i,t))}}}}class Dr{constructor(e,t,n){var r;this.elements=e;this.outerScope=t;this.caseInsensitive=(r=n===null||n===void 0?void 0:n.caseInsensitive)!==null&&r!==void 0?r:false}getAllElements(){if(this.outerScope){return this.elements.concat(this.outerScope.getAllElements())}else{return this.elements}}getElement(e){const t=this.caseInsensitive?this.elements.find((t=>t.name.toLowerCase()===e.toLowerCase())):this.elements.find((t=>t.name===e));if(t){return t}if(this.outerScope){return this.outerScope.getElement(e)}return undefined}}class Ur{constructor(e,t,n){var r;this.elements=new Map;this.caseInsensitive=(r=n===null||n===void 0?void 0:n.caseInsensitive)!==null&&r!==void 0?r:false;for(const i of e){const e=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.set(e,i)}this.outerScope=t}getElement(e){const t=this.caseInsensitive?e.toLowerCase():e;const n=this.elements.get(t);if(n){return n}if(this.outerScope){return this.outerScope.getElement(e)}return undefined}getAllElements(){let e=(0,Dn.Td)(this.elements.values());if(this.outerScope){e=e.concat(this.outerScope.getAllElements())}return e}}const Fr={getElement(){return undefined},getAllElements(){return Dn.B5}};class Gr{constructor(){this.toDispose=[];this.isDisposed=false}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed();this.clear();this.isDisposed=true;this.toDispose.forEach((e=>e.dispose()))}throwIfDisposed(){if(this.isDisposed){throw new Error("This cache has already been disposed")}}}class Br extends Gr{constructor(){super(...arguments);this.cache=new Map}has(e){this.throwIfDisposed();return this.cache.has(e)}set(e,t){this.throwIfDisposed();this.cache.set(e,t)}get(e,t){this.throwIfDisposed();if(this.cache.has(e)){return this.cache.get(e)}else if(t){const n=t();this.cache.set(e,n);return n}else{return undefined}}delete(e){this.throwIfDisposed();return this.cache.delete(e)}clear(){this.throwIfDisposed();this.cache.clear()}}class Kr extends Gr{constructor(e){super();this.cache=new Map;this.converter=e!==null&&e!==void 0?e:e=>e}has(e,t){this.throwIfDisposed();return this.cacheForContext(e).has(t)}set(e,t,n){this.throwIfDisposed();this.cacheForContext(e).set(t,n)}get(e,t,n){this.throwIfDisposed();const r=this.cacheForContext(e);if(r.has(t)){return r.get(t)}else if(n){const e=n();r.set(t,e);return e}else{return undefined}}delete(e,t){this.throwIfDisposed();return this.cacheForContext(e).delete(t)}clear(e){this.throwIfDisposed();if(e){const t=this.converter(e);this.cache.delete(t)}else{this.cache.clear()}}cacheForContext(e){const t=this.converter(e);let n=this.cache.get(t);if(!n){n=new Map;this.cache.set(t,n)}return n}}class jr extends Kr{constructor(e,t){super((e=>e.toString()));if(t){this.toDispose.push(e.workspace.DocumentBuilder.onDocumentPhase(t,(e=>{this.clear(e.uri.toString())})));this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(((e,t)=>{for(const n of t){this.clear(n)}})))}else{this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(((e,t)=>{const n=e.concat(t);for(const r of n){this.clear(r)}})))}}}class Vr extends Br{constructor(e,t){super();if(t){this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,(()=>{this.clear()})));this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(((e,t)=>{if(t.length>0){this.clear()}})))}else{this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((()=>{this.clear()})))}}}class Wr{constructor(e){this.reflection=e.shared.AstReflection;this.nameProvider=e.references.NameProvider;this.descriptions=e.workspace.AstNodeDescriptionProvider;this.indexManager=e.shared.workspace.IndexManager;this.globalScopeCache=new Vr(e.shared)}getScope(e){const t=[];const n=this.reflection.getReferenceType(e);const r=(0,Ge.YE)(e.container).precomputedScopes;if(r){let i=e.container;do{const e=r.get(i);if(e.length>0){t.push((0,Dn.Td)(e).filter((e=>this.reflection.isSubtype(e.type,n))))}i=i.$container}while(i)}let i=this.getGlobalScope(n,e);for(let s=t.length-1;s>=0;s--){i=this.createScope(t[s],i)}return i}createScope(e,t,n){return new Dr((0,Dn.Td)(e),t,n)}createScopeForNodes(e,t,n){const r=(0,Dn.Td)(e).map((e=>{const t=this.nameProvider.getName(e);if(t){return this.descriptions.createDescription(e,t)}return undefined})).nonNullable();return new Dr(r,t,n)}getGlobalScope(e,t){return this.globalScopeCache.get(e,(()=>new Ur(this.indexManager.allElements(e))))}}function Hr(e){return typeof e.$comment==="string"}function zr(e){return typeof e==="object"&&!!e&&("$ref"in e||"$error"in e)}class Yr{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]);this.langiumDocuments=e.shared.workspace.LangiumDocuments;this.astNodeLocator=e.workspace.AstNodeLocator;this.nameProvider=e.references.NameProvider;this.commentProvider=e.documentation.CommentProvider}serialize(e,t){const n=t!==null&&t!==void 0?t:{};const r=t===null||t===void 0?void 0:t.replacer;const i=(e,t)=>this.replacer(e,t,n);const s=r?(e,t)=>r(e,t,i):i;try{this.currentDocument=(0,Ge.YE)(e);return JSON.stringify(e,s,t===null||t===void 0?void 0:t.space)}finally{this.currentDocument=undefined}}deserialize(e,t){const n=t!==null&&t!==void 0?t:{};const r=JSON.parse(e);this.linkNode(r,r,n);return r}replacer(e,t,{refText:n,sourceText:r,textRegions:i,comments:s,uriConverter:a}){var o,c,u,l;if(this.ignoreProperties.has(e)){return undefined}else if((0,or.A_)(t)){const e=t.ref;const r=n?t.$refText:undefined;if(e){const n=(0,Ge.YE)(e);let i="";if(this.currentDocument&&this.currentDocument!==n){if(a){i=a(n.uri,t)}else{i=n.uri.toString()}}const s=this.astNodeLocator.getAstNodePath(e);return{$ref:`${i}#${s}`,$refText:r}}else{return{$error:(c=(o=t.error)===null||o===void 0?void 0:o.message)!==null&&c!==void 0?c:"Could not resolve reference",$refText:r}}}else if((0,or.ng)(t)){let n=undefined;if(i){n=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t));if((!e||t.$document)&&(n===null||n===void 0?void 0:n.$textRegion)){n.$textRegion.documentURI=(u=this.currentDocument)===null||u===void 0?void 0:u.uri.toString()}}if(r&&!e){n!==null&&n!==void 0?n:n=Object.assign({},t);n.$sourceText=(l=t.$cstNode)===null||l===void 0?void 0:l.text}if(s){n!==null&&n!==void 0?n:n=Object.assign({},t);const e=this.commentProvider.getComment(t);if(e){n.$comment=e.replace(/\r/g,"")}}return n!==null&&n!==void 0?n:t}else{return t}}addAstNodeRegionWithAssignmentsTo(e){const t=e=>({offset:e.offset,end:e.end,length:e.length,range:e.range});if(e.$cstNode){const n=e.$textRegion=t(e.$cstNode);const r=n.assignments={};Object.keys(e).filter((e=>!e.startsWith("$"))).forEach((n=>{const s=(0,i.Bd)(e.$cstNode,n).map(t);if(s.length!==0){r[n]=s}}));return e}return undefined}linkNode(e,t,n,r,i,s){for(const[o,c]of Object.entries(e)){if(Array.isArray(c)){for(let r=0;r{await this.handleException((()=>e.call(t,n,r,i)),"An error occurred during validation",r,n)}}async handleException(e,t,n,r){try{await e()}catch(i){if(pr(i)){throw i}console.error(`${t}:`,i);if(i instanceof Error&&i.stack){console.error(i.stack)}const e=i instanceof Error?i.message:String(i);n("error",`${t}: ${e}`,{node:r})}}addEntry(e,t){if(e==="AstNode"){this.entries.add("AstNode",t);return}for(const n of this.reflection.getAllSubTypes(e)){this.entries.add(n,t)}}getChecks(e,t){let n=(0,Dn.Td)(this.entries.get(e)).concat(this.entries.get("AstNode"));if(t){n=n.filter((e=>t.includes(e.category)))}return n.map((e=>e.check))}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,n){return async(r,i,s,a)=>{await this.handleException((()=>e.call(n,r,i,s,a)),t,i,r)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class Jr{constructor(e){this.validationRegistry=e.validation.ValidationRegistry;this.metadata=e.LanguageMetaData}async validateDocument(e,t={},n=ar.CancellationToken.None){const r=e.parseResult;const i=[];await mr(n);if(!t.categories||t.categories.includes("built-in")){this.processLexingErrors(r,i,t);if(t.stopAfterLexingErrors&&i.some((e=>{var t;return((t=e.data)===null||t===void 0?void 0:t.code)===ri.LexingError}))){return i}this.processParsingErrors(r,i,t);if(t.stopAfterParsingErrors&&i.some((e=>{var t;return((t=e.data)===null||t===void 0?void 0:t.code)===ri.ParsingError}))){return i}this.processLinkingErrors(e,i,t);if(t.stopAfterLinkingErrors&&i.some((e=>{var t;return((t=e.data)===null||t===void 0?void 0:t.code)===ri.LinkingError}))){return i}}try{i.push(...await this.validateAst(r.value,t,n))}catch(s){if(pr(s)){throw s}console.error("An error occurred during validation:",s)}await mr(n);return i}processLexingErrors(e,t,n){var r,i,s;const a=[...e.lexerErrors,...(i=(r=e.lexerReport)===null||r===void 0?void 0:r.diagnostics)!==null&&i!==void 0?i:[]];for(const o of a){const e=(s=o.severity)!==null&&s!==void 0?s:"error";const n={severity:ti(e),range:{start:{line:o.line-1,character:o.column-1},end:{line:o.line-1,character:o.column+o.length-1}},message:o.message,data:ni(e),source:this.getSource()};t.push(n)}}processParsingErrors(e,t,n){for(const i of e.parserErrors){let e=undefined;if(isNaN(i.token.startOffset)){if("previousToken"in i){const t=i.previousToken;if(!isNaN(t.startOffset)){const n={line:t.endLine-1,character:t.endColumn};e={start:n,end:n}}else{const t={line:0,character:0};e={start:t,end:t}}}}else{e=(0,r.wf)(i.token)}if(e){const n={severity:ti("error"),range:e,message:i.message,data:Xr(ri.ParsingError),source:this.getSource()};t.push(n)}}}processLinkingErrors(e,t,n){for(const r of e.references){const e=r.error;if(e){const n={node:e.container,property:e.property,index:e.index,data:{code:ri.LinkingError,containerType:e.container.$type,property:e.property,refText:e.reference.$refText}};t.push(this.toDiagnostic("error",e.message,n))}}}async validateAst(e,t,n=ar.CancellationToken.None){const r=[];const i=(e,t,n)=>{r.push(this.toDiagnostic(e,t,n))};await this.validateAstBefore(e,t,i,n);await this.validateAstNodes(e,t,i,n);await this.validateAstAfter(e,t,i,n);return r}async validateAstBefore(e,t,n,r=ar.CancellationToken.None){var i;const s=this.validationRegistry.checksBefore;for(const a of s){await mr(r);await a(e,n,(i=t.categories)!==null&&i!==void 0?i:[],r)}}async validateAstNodes(e,t,n,r=ar.CancellationToken.None){await Promise.all((0,Ge.jm)(e).map((async e=>{await mr(r);const i=this.validationRegistry.getChecks(e.$type,t.categories);for(const t of i){await t(e,n,r)}})))}async validateAstAfter(e,t,n,r=ar.CancellationToken.None){var i;const s=this.validationRegistry.checksAfter;for(const a of s){await mr(r);await a(e,n,(i=t.categories)!==null&&i!==void 0?i:[],r)}}toDiagnostic(e,t,n){return{message:t,range:ei(n),severity:ti(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function ei(e){if(e.range){return e.range}let t;if(typeof e.property==="string"){t=(0,i.qO)(e.node.$cstNode,e.property,e.index)}else if(typeof e.keyword==="string"){t=(0,i.SS)(e.node.$cstNode,e.keyword,e.index)}t!==null&&t!==void 0?t:t=e.node.$cstNode;if(!t){return{start:{line:0,character:0},end:{line:0,character:0}}}return t.range}function ti(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+e)}}function ni(e){switch(e){case"error":return Xr(ri.LexingError);case"warning":return Xr(ri.LexingWarning);case"info":return Xr(ri.LexingInfo);case"hint":return Xr(ri.LexingHint);default:throw new Error("Invalid diagnostic severity: "+e)}}var ri;(function(e){e.LexingError="lexing-error";e.LexingWarning="lexing-warning";e.LexingInfo="lexing-info";e.LexingHint="lexing-hint";e.ParsingError="parsing-error";e.LinkingError="linking-error"})(ri||(ri={}));class ii{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator;this.nameProvider=e.references.NameProvider}createDescription(e,t,n){const i=n!==null&&n!==void 0?n:(0,Ge.YE)(e);t!==null&&t!==void 0?t:t=this.nameProvider.getName(e);const s=this.astNodeLocator.getAstNodePath(e);if(!t){throw new Error(`Node at path ${s} has no name.`)}let a;const o=()=>{var t;return a!==null&&a!==void 0?a:a=(0,r.SX)((t=this.nameProvider.getNameNode(e))!==null&&t!==void 0?t:e.$cstNode)};return{node:e,name:t,get nameSegment(){return o()},selectionSegment:(0,r.SX)(e.$cstNode),type:e.$type,documentUri:i.uri,path:s}}}class si{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=ar.CancellationToken.None){const n=[];const r=e.parseResult.value;for(const i of(0,Ge.jm)(r)){await mr(t);(0,Ge.DM)(i).filter((e=>!(0,or.Zl)(e))).forEach((e=>{const t=this.createDescription(e);if(t){n.push(t)}}))}return n}createDescription(e){const t=e.reference.$nodeDescription;const n=e.reference.$refNode;if(!t||!n){return undefined}const i=(0,Ge.YE)(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:(0,r.SX)(n),local:br.equals(t.documentUri,i)}}}class ai{constructor(){this.segmentSeparator="/";this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container);const n=this.getPathSegment(e);const r=t+this.segmentSeparator+n;return r}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e){throw new Error("Missing '$containerProperty' in AST node.")}if(t!==undefined){return e+this.indexSeparator+t}return e}getAstNode(e,t){const n=t.split(this.segmentSeparator);return n.reduce(((e,t)=>{if(!e||t.length===0){return e}const n=t.indexOf(this.indexSeparator);if(n>0){const r=t.substring(0,n);const i=parseInt(t.substring(n+1));const s=e[r];return s===null||s===void 0?void 0:s[i]}return e[t]}),e)}}var oi=n(62676);class ci{constructor(e){this._ready=new gr;this.settings={};this.workspaceConfig=false;this.onConfigurationSectionUpdateEmitter=new oi.Emitter;this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,n;this.workspaceConfig=(n=(t=e.capabilities.workspace)===null||t===void 0?void 0:t.configuration)!==null&&n!==void 0?n:false}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map((e=>this.toSectionName(e.LanguageMetaData.languageId)))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map((e=>({section:this.toSectionName(e.LanguageMetaData.languageId)})));const n=await e.fetchConfiguration(t);t.forEach(((e,t)=>{this.updateSectionConfiguration(e.section,n[t])}))}}this._ready.resolve()}updateConfiguration(e){if(!e.settings){return}Object.keys(e.settings).forEach((t=>{const n=e.settings[t];this.updateSectionConfiguration(t,n);this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:n})}))}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;const n=this.toSectionName(e);if(this.settings[n]){return this.settings[n][t]}}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}var ui;(function(e){function t(e){return{dispose:async()=>await e()}}e.create=t})(ui||(ui={}));class li{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}};this.updateListeners=[];this.buildPhaseListeners=new Or;this.documentPhaseListeners=new Or;this.buildState=new Map;this.documentBuildWaiters=new Map;this.currentState=$r.Changed;this.langiumDocuments=e.workspace.LangiumDocuments;this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory;this.textDocuments=e.workspace.TextDocuments;this.indexManager=e.workspace.IndexManager;this.serviceRegistry=e.ServiceRegistry}async build(e,t={},n=ar.CancellationToken.None){var r,i;for(const s of e){const e=s.uri.toString();if(s.state===$r.Validated){if(typeof t.validation==="boolean"&&t.validation){s.state=$r.IndexedReferences;s.diagnostics=undefined;this.buildState.delete(e)}else if(typeof t.validation==="object"){const n=this.buildState.get(e);const a=(r=n===null||n===void 0?void 0:n.result)===null||r===void 0?void 0:r.validationChecks;if(a){const r=(i=t.validation.categories)!==null&&i!==void 0?i:Qr.all;const o=r.filter((e=>!a.includes(e)));if(o.length>0){this.buildState.set(e,{completed:false,options:{validation:Object.assign(Object.assign({},t.validation),{categories:o})},result:n.result});s.state=$r.IndexedReferences}}}}else{this.buildState.delete(e)}}this.currentState=$r.Changed;await this.emitUpdate(e.map((e=>e.uri)),[]);await this.buildDocuments(e,t,n)}async update(e,t,n=ar.CancellationToken.None){this.currentState=$r.Changed;for(const s of t){this.langiumDocuments.deleteDocument(s);this.buildState.delete(s.toString());this.indexManager.remove(s)}for(const s of e){const e=this.langiumDocuments.invalidateDocument(s);if(!e){const e=this.langiumDocumentFactory.fromModel({$type:"INVALID"},s);e.state=$r.Changed;this.langiumDocuments.addDocument(e)}this.buildState.delete(s.toString())}const r=(0,Dn.Td)(e).concat(t).map((e=>e.toString())).toSet();this.langiumDocuments.all.filter((e=>!r.has(e.uri.toString())&&this.shouldRelink(e,r))).forEach((e=>{const t=this.serviceRegistry.getServices(e.uri).references.Linker;t.unlink(e);e.state=Math.min(e.state,$r.ComputedScopes);e.diagnostics=undefined}));await this.emitUpdate(e,t);await mr(n);const i=this.sortDocuments(this.langiumDocuments.all.filter((e=>{var t;return e.state<$r.Linked||!((t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.completed)})).toArray());await this.buildDocuments(i,this.updateBuildOptions,n)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map((n=>n(e,t))))}sortDocuments(e){let t=0;let n=e.length-1;while(t=0&&!this.hasTextDocument(e[n])){n--}if(te.error!==undefined))){return true}return this.indexManager.isAffected(e,t)}onUpdate(e){this.updateListeners.push(e);return ui.create((()=>{const t=this.updateListeners.indexOf(e);if(t>=0){this.updateListeners.splice(t,1)}}))}async buildDocuments(e,t,n){this.prepareBuild(e,t);await this.runCancelable(e,$r.Parsed,n,(e=>this.langiumDocumentFactory.update(e,n)));await this.runCancelable(e,$r.IndexedContent,n,(e=>this.indexManager.updateContent(e,n)));await this.runCancelable(e,$r.ComputedScopes,n,(async e=>{const t=this.serviceRegistry.getServices(e.uri).references.ScopeComputation;e.precomputedScopes=await t.computeLocalScopes(e,n)}));await this.runCancelable(e,$r.Linked,n,(e=>{const t=this.serviceRegistry.getServices(e.uri).references.Linker;return t.link(e,n)}));await this.runCancelable(e,$r.IndexedReferences,n,(e=>this.indexManager.updateReferences(e,n)));const r=e.filter((e=>this.shouldValidate(e)));await this.runCancelable(r,$r.Validated,n,(e=>this.validate(e,n)));for(const i of e){const e=this.buildState.get(i.uri.toString());if(e){e.completed=true}}}prepareBuild(e,t){for(const n of e){const e=n.uri.toString();const r=this.buildState.get(e);if(!r||r.completed){this.buildState.set(e,{completed:false,options:t,result:r===null||r===void 0?void 0:r.result})}}}async runCancelable(e,t,n,r){const i=e.filter((e=>e.statee.state===t));await this.notifyBuildPhase(s,t,n);this.currentState=t}onBuildPhase(e,t){this.buildPhaseListeners.add(e,t);return ui.create((()=>{this.buildPhaseListeners.delete(e,t)}))}onDocumentPhase(e,t){this.documentPhaseListeners.add(e,t);return ui.create((()=>{this.documentPhaseListeners.delete(e,t)}))}waitUntil(e,t,n){let r=undefined;if(t&&"path"in t){r=t}else{n=t}n!==null&&n!==void 0?n:n=ar.CancellationToken.None;if(r){const t=this.langiumDocuments.getDocument(r);if(t&&t.state>e){return Promise.resolve(r)}}if(this.currentState>=e){return Promise.resolve(undefined)}else if(n.isCancellationRequested){return Promise.reject(hr)}return new Promise(((t,i)=>{const s=this.onBuildPhase(e,(()=>{s.dispose();a.dispose();if(r){const e=this.langiumDocuments.getDocument(r);t(e===null||e===void 0?void 0:e.uri)}else{t(undefined)}}));const a=n.onCancellationRequested((()=>{s.dispose();a.dispose();i(hr)}))}))}async notifyDocumentPhase(e,t,n){const r=this.documentPhaseListeners.get(t);const i=r.slice();for(const a of i){try{await a(e,n)}catch(s){if(!pr(s)){throw s}}}}async notifyBuildPhase(e,t,n){if(e.length===0){return}const r=this.buildPhaseListeners.get(t);const i=r.slice();for(const s of i){await mr(n);await s(e,n)}}shouldValidate(e){return Boolean(this.getBuildOptions(e).validation)}async validate(e,t){var n,r;const i=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator;const s=this.getBuildOptions(e).validation;const a=typeof s==="object"?s:undefined;const o=await i.validateDocument(e,a,t);if(e.diagnostics){e.diagnostics.push(...o)}else{e.diagnostics=o}const c=this.buildState.get(e.uri.toString());if(c){(n=c.result)!==null&&n!==void 0?n:c.result={};const e=(r=a===null||a===void 0?void 0:a.categories)!==null&&r!==void 0?r:Qr.all;if(c.result.validationChecks){c.result.validationChecks.push(...e)}else{c.result.validationChecks=[...e]}}}getBuildOptions(e){var t,n;return(n=(t=this.buildState.get(e.uri.toString()))===null||t===void 0?void 0:t.options)!==null&&n!==void 0?n:{}}}class di{constructor(e){this.symbolIndex=new Map;this.symbolByTypeIndex=new Kr;this.referenceIndex=new Map;this.documents=e.workspace.LangiumDocuments;this.serviceRegistry=e.ServiceRegistry;this.astReflection=e.AstReflection}findAllReferences(e,t){const n=(0,Ge.YE)(e).uri;const r=[];this.referenceIndex.forEach((e=>{e.forEach((e=>{if(br.equals(e.targetUri,n)&&e.targetPath===t){r.push(e)}}))}));return(0,Dn.Td)(r)}allElements(e,t){let n=(0,Dn.Td)(this.symbolIndex.keys());if(t){n=n.filter((e=>!t||t.has(e)))}return n.map((t=>this.getFileDescriptions(t,e))).flat()}getFileDescriptions(e,t){var n;if(!t){return(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[]}const r=this.symbolByTypeIndex.get(e,t,(()=>{var n;const r=(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[];return r.filter((e=>this.astReflection.isSubtype(e.type,t)))}));return r}remove(e){const t=e.toString();this.symbolIndex.delete(t);this.symbolByTypeIndex.clear(t);this.referenceIndex.delete(t)}async updateContent(e,t=ar.CancellationToken.None){const n=this.serviceRegistry.getServices(e.uri);const r=await n.references.ScopeComputation.computeExports(e,t);const i=e.uri.toString();this.symbolIndex.set(i,r);this.symbolByTypeIndex.clear(i)}async updateReferences(e,t=ar.CancellationToken.None){const n=this.serviceRegistry.getServices(e.uri);const r=await n.workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),r)}isAffected(e,t){const n=this.referenceIndex.get(e.uri.toString());if(!n){return false}return n.some((e=>!e.local&&t.has(e.targetUri.toString())))}}class fi{constructor(e){this.initialBuildOptions={};this._ready=new gr;this.serviceRegistry=e.ServiceRegistry;this.langiumDocuments=e.workspace.LangiumDocuments;this.documentBuilder=e.workspace.DocumentBuilder;this.fileSystemProvider=e.workspace.FileSystemProvider;this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var t;this.folders=(t=e.workspaceFolders)!==null&&t!==void 0?t:undefined}initialized(e){return this.mutex.write((e=>{var t;return this.initializeWorkspace((t=this.folders)!==null&&t!==void 0?t:[],e)}))}async initializeWorkspace(e,t=ar.CancellationToken.None){const n=await this.performStartup(e);await mr(t);await this.documentBuilder.build(n,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap((e=>e.LanguageMetaData.fileExtensions));const n=[];const r=e=>{n.push(e);if(!this.langiumDocuments.hasDocument(e.uri)){this.langiumDocuments.addDocument(e)}};await this.loadAdditionalDocuments(e,r);await Promise.all(e.map((e=>[e,this.getRootFolder(e)])).map((async e=>this.traverseFolder(...e,t,r))));this._ready.resolve();return n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return xr.r.parse(e.uri)}async traverseFolder(e,t,n,r){const i=await this.fileSystemProvider.readDirectory(t);await Promise.all(i.map((async t=>{if(this.includeEntry(e,t,n)){if(t.isDirectory){await this.traverseFolder(e,t.uri,n,r)}else if(t.isFile){const e=await this.langiumDocuments.getOrCreateDocument(t.uri);r(e)}}})))}includeEntry(e,t,n){const r=br.basename(t.uri);if(r.startsWith(".")){return false}if(t.isDirectory){return r!=="node_modules"&&r!=="out"}else if(t.isFile){const e=br.extname(t.uri);return n.includes(e)}return false}}class hi{buildUnexpectedCharactersMessage(e,t,n,r,i){return c.PW.buildUnexpectedCharactersMessage(e,t,n,r,i)}buildUnableToPopLexerModeMessage(e){return c.PW.buildUnableToPopLexerModeMessage(e)}}const pi={mode:"full"};class mi{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider;this.tokenBuilder=e.parser.TokenBuilder;const t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const n=vi(t)?Object.values(t):t;const r=e.LanguageMetaData.mode==="production";this.chevrotainLexer=new c.JG(n,{positionTracking:"full",skipValidations:r,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=pi){var n,r,i;const s=this.chevrotainLexer.tokenize(e);return{tokens:s.tokens,errors:s.errors,hidden:(n=s.groups.hidden)!==null&&n!==void 0?n:[],report:(i=(r=this.tokenBuilder).flushLexingReport)===null||i===void 0?void 0:i.call(r,e)}}toTokenTypeDictionary(e){if(vi(e))return e;const t=yi(e)?Object.values(e.modes).flat():e;const n={};t.forEach((e=>n[e.name]=e));return n}}function gi(e){return Array.isArray(e)&&(e.length===0||"name"in e[0])}function yi(e){return e&&"modes"in e&&"defaultMode"in e}function vi(e){return!gi(e)&&!yi(e)}function Ai(e,t,n){let r;let i;if(typeof e==="string"){i=t;r=n}else{i=e.range.start;r=t}if(!i){i=We.create(0,0)}const s=Ri(e);const a=Di(r);const o=xi({lines:s,position:i,options:a});return Ni({index:0,tokens:o,position:i})}function Ti(e,t){const n=Di(t);const r=Ri(e);if(r.length===0){return false}const i=r[0];const s=r[r.length-1];const a=n.start;const o=n.end;return Boolean(a===null||a===void 0?void 0:a.exec(i))&&Boolean(o===null||o===void 0?void 0:o.exec(s))}function Ri(e){let t="";if(typeof e==="string"){t=e}else{t=e.text}const n=t.split(s.TH);return n}const Ei=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy;const ki=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function xi(e){var t,n,r;const i=[];let s=e.position.line;let a=e.position.character;for(let o=0;o=l.length){if(i.length>0){const e=We.create(s,a);i.push({type:"break",content:"",range:He.create(e,e)})}}else{Ei.lastIndex=d;const e=Ei.exec(l);if(e){const t=e[0];const n=e[1];const r=We.create(s,a+d);const o=We.create(s,a+d+t.length);i.push({type:"tag",content:n,range:He.create(r,o)});d+=t.length;d=Si(l,d)}if(d0&&i[i.length-1].type==="break"){return i.slice(0,-1)}return i}function $i(e,t,n,r){const i=[];if(e.length===0){const e=We.create(n,r);const s=We.create(n,r+t.length);i.push({type:"text",content:t,range:He.create(e,s)})}else{let s=0;for(const o of e){const e=o.index;const a=t.substring(s,e);if(a.length>0){i.push({type:"text",content:t.substring(s,e),range:He.create(We.create(n,s+r),We.create(n,e+r))})}let c=a.length+1;const u=o[1];i.push({type:"inline-tag",content:u,range:He.create(We.create(n,s+c+r),We.create(n,s+c+u.length+r))});c+=u.length;if(o.length===4){c+=o[2].length;const e=o[3];i.push({type:"text",content:e,range:He.create(We.create(n,s+c+r),We.create(n,s+c+e.length+r))})}else{i.push({type:"text",content:"",range:He.create(We.create(n,s+c+r),We.create(n,s+c+r))})}s=e+o[0].length}const a=t.substring(s);if(a.length>0){i.push({type:"text",content:a,range:He.create(We.create(n,s+r),We.create(n,s+r+a.length))})}}return i}const wi=/\S/;const Ii=/\s*$/;function Si(e,t){const n=e.substring(t).match(wi);if(n){return t+n.index}else{return e.length}}function Ci(e){const t=e.match(Ii);if(t&&typeof t.index==="number"){return t.index}return undefined}function Ni(e){var t,n,r,i;const s=We.create(e.position.line,e.position.character);if(e.tokens.length===0){return new Fi([],He.create(s,s))}const a=[];while(e.indext.name===e))}getTags(e){return this.getAllTags().filter((t=>t.name===e))}getAllTags(){return this.elements.filter((e=>"name"in e))}toString(){let e="";for(const t of this.elements){if(e.length===0){e=t.toString()}else{const n=t.toString();e+=Wi(e)+n}}return e.trim()}toMarkdown(e){let t="";for(const n of this.elements){if(t.length===0){t=n.toMarkdown(e)}else{const r=n.toMarkdown(e);t+=Wi(t)+r}}return t.trim()}}class Gi{constructor(e,t,n,r){this.name=e;this.content=t;this.inline=n;this.range=r}toString(){let e=`@${this.name}`;const t=this.content.toString();if(this.content.inlines.length===1){e=`${e} ${t}`}else if(this.content.inlines.length>1){e=`${e}\n${t}`}if(this.inline){return`{${e}}`}else{return e}}toMarkdown(e){var t,n;return(n=(t=e===null||e===void 0?void 0:e.renderTag)===null||t===void 0?void 0:t.call(e,this))!==null&&n!==void 0?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const n=Bi(this.name,t,e!==null&&e!==void 0?e:{});if(typeof n==="string"){return n}}let n="";if((e===null||e===void 0?void 0:e.tag)==="italic"||(e===null||e===void 0?void 0:e.tag)===undefined){n="*"}else if((e===null||e===void 0?void 0:e.tag)==="bold"){n="**"}else if((e===null||e===void 0?void 0:e.tag)==="bold-italic"){n="***"}let r=`${n}@${this.name}${n}`;if(this.content.inlines.length===1){r=`${r} — ${t}`}else if(this.content.inlines.length>1){r=`${r}\n${t}`}if(this.inline){return`{${r}}`}else{return r}}}function Bi(e,t,n){var r,i;if(e==="linkplain"||e==="linkcode"||e==="link"){const s=t.indexOf(" ");let a=t;if(s>0){const e=Si(t,s);a=t.substring(e);t=t.substring(0,s)}if(e==="linkcode"||e==="link"&&n.link==="code"){a=`\`${a}\``}const o=(i=(r=n.renderLink)===null||r===void 0?void 0:r.call(n,t,a))!==null&&i!==void 0?i:Ki(t,a);return o}return undefined}function Ki(e,t){try{xr.r.parse(e,true);return`[${t}](${e})`}catch(n){return e}}class ji{constructor(e,t){this.inlines=e;this.range=t}toString(){let e="";for(let t=0;tn.range.start.line){e+="\n"}}return e}toMarkdown(e){let t="";for(let n=0;nr.range.start.line){t+="\n"}}return t}}class Vi{constructor(e,t){this.text=e;this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function Wi(e){if(e.endsWith("\n")){return"\n"}else{return"\n\n"}}class Hi{constructor(e){this.indexManager=e.shared.workspace.IndexManager;this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&Ti(t)){const n=Ai(t);return n.toMarkdown({renderLink:(t,n)=>this.documentationLinkRenderer(e,t,n),renderTag:t=>this.documentationTagRenderer(e,t)})}return undefined}documentationLinkRenderer(e,t,n){var r;const i=(r=this.findNameInPrecomputedScopes(e,t))!==null&&r!==void 0?r:this.findNameInGlobalScope(e,t);if(i&&i.nameSegment){const e=i.nameSegment.range.start.line+1;const t=i.nameSegment.range.start.character+1;const r=i.documentUri.with({fragment:`L${e},${t}`});return`[${n}](${r.toString()})`}else{return undefined}}documentationTagRenderer(e,t){return undefined}findNameInPrecomputedScopes(e,t){const n=(0,Ge.YE)(e);const r=n.precomputedScopes;if(!r){return undefined}let i=e;do{const e=r.get(i);const n=e.find((e=>e.name===t));if(n){return n}i=i.$container}while(i);return undefined}findNameInGlobalScope(e,t){const n=this.indexManager.allElements().find((e=>e.name===t));return n}}class zi{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;if(Hr(e)){return e.$comment}return(t=(0,r.v)(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||t===void 0?void 0:t.text}}class Yi{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class qi{constructor(e){this.threadCount=8;this.terminationDelay=200;this.workerPool=[];this.queue=[];this.hydrator=e.serializer.Hydrator}initializeWorkers(){while(this.workerPool.length{if(this.queue.length>0){const t=this.queue.shift();if(t){e.lock();t.resolve(e)}}}));this.workerPool.push(e)}}async parse(e,t){const n=await this.acquireParserWorker(t);const r=new Deferred;let i;const s=t.onCancellationRequested((()=>{i=setTimeout((()=>{this.terminateWorker(n)}),this.terminationDelay)}));n.parse(e).then((e=>{const t=this.hydrator.hydrate(e);r.resolve(t)})).catch((e=>{r.reject(e)})).finally((()=>{s.dispose();clearTimeout(i)}));return r.promise}terminateWorker(e){e.terminate();const t=this.workerPool.indexOf(e);if(t>=0){this.workerPool.splice(t,1)}}async acquireParserWorker(e){this.initializeWorkers();for(const n of this.workerPool){if(n.ready){n.lock();return n}}const t=new Deferred;e.onCancellationRequested((()=>{const e=this.queue.indexOf(t);if(e>=0){this.queue.splice(e,1)}t.reject(OperationCancelled)}));this.queue.push(t);return t.promise}}class Xi{get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,t,n,r){this.onReadyEmitter=new Emitter;this.deferred=new Deferred;this._ready=true;this._parsing=false;this.sendMessage=e;this._terminate=r;t((e=>{const t=e;this.deferred.resolve(t);this.unlock()}));n((e=>{this.deferred.reject(e);this.unlock()}))}terminate(){this.deferred.reject(OperationCancelled);this._terminate()}lock(){this._ready=false}unlock(){this._parsing=false;this._ready=true;this.onReadyEmitter.fire()}parse(e){if(this._parsing){throw new Error("Parser worker is busy")}this._parsing=true;this.deferred=new Deferred;this.sendMessage(e);return this.deferred.promise}}class Qi{constructor(){this.previousTokenSource=new ar.CancellationTokenSource;this.writeQueue=[];this.readQueue=[];this.done=true}write(e){this.cancelWrite();const t=dr();this.previousTokenSource=t;return this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,n=ar.CancellationToken.None){const r=new gr;const i={action:t,deferred:r,cancellationToken:n};e.push(i);this.performNextOperation();return r.promise}async performNextOperation(){if(!this.done){return}const e=[];if(this.writeQueue.length>0){e.push(this.writeQueue.shift())}else if(this.readQueue.length>0){e.push(...this.readQueue.splice(0,this.readQueue.length))}else{return}this.done=false;await Promise.all(e.map((async({action:e,deferred:t,cancellationToken:n})=>{try{const r=await Promise.resolve().then((()=>e(n)));t.resolve(r)}catch(r){if(pr(r)){t.resolve(undefined)}else{t.reject(r)}}})));this.done=true;this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class Zi{constructor(e){this.grammarElementIdMap=new Pr;this.tokenTypeIdMap=new Pr;this.grammar=e.Grammar;this.lexer=e.parser.Lexer;this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):undefined,parserErrors:e.parserErrors.map((e=>Object.assign(Object.assign({},e),{message:e.message}))),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const t=new Map;const n=new Map;for(const r of(0,Ge.jm)(e)){t.set(r,{})}if(e.$cstNode){for(const t of(0,r.NS)(e.$cstNode)){n.set(t,{})}}return{astNodes:t,cstNodes:n}}dehydrateAstNode(e,t){const n=t.astNodes.get(e);n.$type=e.$type;n.$containerIndex=e.$containerIndex;n.$containerProperty=e.$containerProperty;if(e.$cstNode!==undefined){n.$cstNode=this.dehydrateCstNode(e.$cstNode,t)}for(const[r,i]of Object.entries(e)){if(r.startsWith("$")){continue}if(Array.isArray(i)){const e=[];n[r]=e;for(const n of i){if((0,or.ng)(n)){e.push(this.dehydrateAstNode(n,t))}else if((0,or.A_)(n)){e.push(this.dehydrateReference(n,t))}else{e.push(n)}}}else if((0,or.ng)(i)){n[r]=this.dehydrateAstNode(i,t)}else if((0,or.A_)(i)){n[r]=this.dehydrateReference(i,t)}else if(i!==undefined){n[r]=i}}return n}dehydrateReference(e,t){const n={};n.$refText=e.$refText;if(e.$refNode){n.$refNode=t.cstNodes.get(e.$refNode)}return n}dehydrateCstNode(e,t){const n=t.cstNodes.get(e);if((0,or.br)(e)){n.fullText=e.fullText}else{n.grammarSource=this.getGrammarElementId(e.grammarSource)}n.hidden=e.hidden;n.astNode=t.astNodes.get(e.astNode);if((0,or.mD)(e)){n.content=e.content.map((e=>this.dehydrateCstNode(e,t)))}else if((0,or.FC)(e)){n.tokenType=e.tokenType.name;n.offset=e.offset;n.length=e.length;n.startLine=e.range.start.line;n.startColumn=e.range.start.character;n.endLine=e.range.end.line;n.endColumn=e.range.end.character}return n}hydrate(e){const t=e.value;const n=this.createHydrationContext(t);if("$cstNode"in t){this.hydrateCstNode(t.$cstNode,n)}return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,n)}}createHydrationContext(e){const t=new Map;const n=new Map;for(const r of(0,Ge.jm)(e)){t.set(r,{})}let i;if(e.$cstNode){for(const t of(0,r.NS)(e.$cstNode)){let e;if("fullText"in t){e=new xn(t.fullText);i=e}else if("content"in t){e=new En}else if("tokenType"in t){e=this.hydrateCstLeafNode(t)}if(e){n.set(t,e);e.root=i}}}return{astNodes:t,cstNodes:n}}hydrateAstNode(e,t){const n=t.astNodes.get(e);n.$type=e.$type;n.$containerIndex=e.$containerIndex;n.$containerProperty=e.$containerProperty;if(e.$cstNode){n.$cstNode=t.cstNodes.get(e.$cstNode)}for(const[r,i]of Object.entries(e)){if(r.startsWith("$")){continue}if(Array.isArray(i)){const e=[];n[r]=e;for(const s of i){if((0,or.ng)(s)){e.push(this.setParent(this.hydrateAstNode(s,t),n))}else if((0,or.A_)(s)){e.push(this.hydrateReference(s,n,r,t))}else{e.push(s)}}}else if((0,or.ng)(i)){n[r]=this.setParent(this.hydrateAstNode(i,t),n)}else if((0,or.A_)(i)){n[r]=this.hydrateReference(i,n,r,t)}else if(i!==undefined){n[r]=i}}return n}setParent(e,t){e.$container=t;return e}hydrateReference(e,t,n,r){return this.linker.buildReference(t,n,r.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,n=0){const r=t.cstNodes.get(e);if(typeof e.grammarSource==="number"){r.grammarSource=this.getGrammarElement(e.grammarSource)}r.astNode=t.astNodes.get(e.astNode);if((0,or.mD)(r)){for(const i of e.content){const e=this.hydrateCstNode(i,t,n++);r.content.push(e)}}return r}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType);const n=e.offset;const r=e.length;const i=e.startLine;const s=e.startColumn;const a=e.endLine;const o=e.endColumn;const c=e.hidden;const u=new Rn(n,r,{start:{line:i,character:s},end:{line:a,character:o}},t,c);return u}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(!e){return undefined}if(this.grammarElementIdMap.size===0){this.createGrammarElementIdMap()}return this.grammarElementIdMap.get(e)}getGrammarElement(e){if(this.grammarElementIdMap.size===0){this.createGrammarElementIdMap()}const t=this.grammarElementIdMap.getKey(e);return t}createGrammarElementIdMap(){let e=0;for(const t of(0,Ge.jm)(this.grammar)){if((0,a.r1)(t)){this.grammarElementIdMap.set(t,e++)}}}}function Ji(e){return{documentation:{CommentProvider:e=>new zi(e),DocumentationProvider:e=>new Hi(e)},parser:{AsyncParser:e=>new Yi(e),GrammarConfig:e=>o(e),LangiumParser:e=>nr(e),CompletionParser:e=>tr(e),ValueConverter:()=>new sr.d,TokenBuilder:()=>new ir.Q,Lexer:e=>new mi(e),ParserErrorMessageProvider:()=>new bn,LexerErrorMessageProvider:()=>new hi},workspace:{AstNodeLocator:()=>new ai,AstNodeDescriptionProvider:e=>new ii(e),ReferenceDescriptionProvider:e=>new si(e)},references:{Linker:e=>new Cr(e),NameProvider:()=>new Lr,ScopeProvider:e=>new Wr(e),ScopeComputation:e=>new Mr(e),References:e=>new _r(e)},serializer:{Hydrator:e=>new Zi(e),JsonSerializer:e=>new Yr(e)},validation:{DocumentValidator:e=>new Jr(e),ValidationRegistry:e=>new Zr(e)},shared:()=>e.shared}}function es(e){return{ServiceRegistry:e=>new qr(e),workspace:{LangiumDocuments:e=>new Ir(e),LangiumDocumentFactory:e=>new wr(e),DocumentBuilder:e=>new li(e),IndexManager:e=>new di(e),WorkspaceManager:e=>new fi(e),FileSystemProvider:t=>e.fileSystemProvider(t),WorkspaceLock:()=>new Qi,ConfigurationProvider:e=>new ci(e)}}}},41281:(e,t,n)=>{"use strict";n.d(t,{WQ:()=>i});var r;(function(e){e.merge=(e,t)=>l(l({},e),t)})(r||(r={}));function i(e,t,n,r,i,s,a,c,u){const d=[e,t,n,r,i,s,a,c,u].reduce(l,{});return o(d)}const s=Symbol("isProxy");function a(e){if(e&&e[s]){for(const t of Object.values(e)){a(t)}}return e}function o(e,t){const n=new Proxy({},{deleteProperty:()=>false,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>{if(i===s){return true}else{return u(r,i,e,t||n)}},getOwnPropertyDescriptor:(r,i)=>(u(r,i,e,t||n),Object.getOwnPropertyDescriptor(r,i)),has:(t,n)=>n in e,ownKeys:()=>[...Object.getOwnPropertyNames(e)]});return n}const c=Symbol();function u(e,t,n,r){if(t in e){if(e[t]instanceof Error){throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:e[t]})}if(e[t]===c){throw new Error('Cycle detected. Please make "'+String(t)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies')}return e[t]}else if(t in n){const s=n[t];e[t]=c;try{e[t]=typeof s==="function"?s(r):o(s,r)}catch(i){e[t]=i instanceof Error?i:undefined;throw i}return e[t]}else{return undefined}}function l(e,t){if(t){for(const[n,r]of Object.entries(t)){if(r!==undefined){const t=e[n];if(t!==null&&r!==null&&typeof t==="object"&&typeof r==="object"){e[n]=l(t,r)}else{e[n]=r}}}}return e}},85684:(e,t,n)=>{"use strict";n.d(t,{$g:()=>be,Bg:()=>ve,Ct:()=>G,Cz:()=>x,D8:()=>ee,FO:()=>Ee,Fy:()=>Oe,GL:()=>Se,IZ:()=>xe,Mz:()=>Ke,O4:()=>Me,QX:()=>We,RP:()=>S,S2:()=>M,SP:()=>O,TF:()=>H,Tu:()=>w,Xj:()=>ae,_c:()=>Te,cY:()=>Ge,fG:()=>Z,jp:()=>pe,lF:()=>Ue,r1:()=>v,rE:()=>ie,s7:()=>Y,vd:()=>Ne,ve:()=>fe,wb:()=>we,wh:()=>ge,z2:()=>Ve});var r=n(64032);const i={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/};const s="AbstractRule";function a(e){return He.isInstance(e,s)}const o="AbstractType";function c(e){return He.isInstance(e,o)}const u="Condition";function l(e){return He.isInstance(e,u)}function d(e){return f(e)||e==="current"||e==="entry"||e==="extends"||e==="false"||e==="fragment"||e==="grammar"||e==="hidden"||e==="import"||e==="interface"||e==="returns"||e==="terminal"||e==="true"||e==="type"||e==="infer"||e==="infers"||e==="with"||typeof e==="string"&&/\^?[_a-zA-Z][\w_]*/.test(e)}function f(e){return e==="string"||e==="number"||e==="boolean"||e==="Date"||e==="bigint"}const h="TypeDefinition";function p(e){return He.isInstance(e,h)}const m="ValueLiteral";function g(e){return He.isInstance(e,m)}const y="AbstractElement";function v(e){return He.isInstance(e,y)}const A="ArrayLiteral";function T(e){return He.isInstance(e,A)}const R="ArrayType";function E(e){return He.isInstance(e,R)}const k="BooleanLiteral";function x(e){return He.isInstance(e,k)}const $="Conjunction";function w(e){return He.isInstance(e,$)}const I="Disjunction";function S(e){return He.isInstance(e,I)}const C="Grammar";function N(e){return He.isInstance(e,C)}const L="GrammarImport";function b(e){return He.isInstance(e,L)}const _="InferredType";function O(e){return He.isInstance(e,_)}const P="Interface";function M(e){return He.isInstance(e,P)}const D="NamedArgument";function U(e){return He.isInstance(e,D)}const F="Negation";function G(e){return He.isInstance(e,F)}const B="NumberLiteral";function K(e){return He.isInstance(e,B)}const j="Parameter";function V(e){return He.isInstance(e,j)}const W="ParameterReference";function H(e){return He.isInstance(e,W)}const z="ParserRule";function Y(e){return He.isInstance(e,z)}const q="ReferenceType";function X(e){return He.isInstance(e,q)}const Q="ReturnType";function Z(e){return He.isInstance(e,Q)}const J="SimpleType";function ee(e){return He.isInstance(e,J)}const te="StringLiteral";function ne(e){return He.isInstance(e,te)}const re="TerminalRule";function ie(e){return He.isInstance(e,re)}const se="Type";function ae(e){return He.isInstance(e,se)}const oe="TypeAttribute";function ce(e){return He.isInstance(e,oe)}const ue="UnionType";function le(e){return He.isInstance(e,ue)}const de="Action";function fe(e){return He.isInstance(e,de)}const he="Alternatives";function pe(e){return He.isInstance(e,he)}const me="Assignment";function ge(e){return He.isInstance(e,me)}const ye="CharacterRange";function ve(e){return He.isInstance(e,ye)}const Ae="CrossReference";function Te(e){return He.isInstance(e,Ae)}const Re="EndOfFile";function Ee(e){return He.isInstance(e,Re)}const ke="Group";function xe(e){return He.isInstance(e,ke)}const $e="Keyword";function we(e){return He.isInstance(e,$e)}const Ie="NegatedToken";function Se(e){return He.isInstance(e,Ie)}const Ce="RegexToken";function Ne(e){return He.isInstance(e,Ce)}const Le="RuleCall";function be(e){return He.isInstance(e,Le)}const _e="TerminalAlternatives";function Oe(e){return He.isInstance(e,_e)}const Pe="TerminalGroup";function Me(e){return He.isInstance(e,Pe)}const De="TerminalRuleCall";function Ue(e){return He.isInstance(e,De)}const Fe="UnorderedGroup";function Ge(e){return He.isInstance(e,Fe)}const Be="UntilToken";function Ke(e){return He.isInstance(e,Be)}const je="Wildcard";function Ve(e){return He.isInstance(e,je)}class We extends r.kD{getAllTypes(){return[y,s,o,de,he,A,R,me,k,ye,u,$,Ae,I,Re,C,L,ke,_,P,$e,D,Ie,F,B,j,W,z,q,Ce,Q,Le,J,te,_e,Pe,re,De,se,oe,h,ue,Fe,Be,m,je]}computeIsSubtype(e,t){switch(e){case de:case he:case me:case ye:case Ae:case Re:case ke:case $e:case Ie:case Ce:case Le:case _e:case Pe:case De:case Fe:case Be:case je:{return this.isSubtype(y,t)}case A:case B:case te:{return this.isSubtype(m,t)}case R:case q:case J:case ue:{return this.isSubtype(h,t)}case k:{return this.isSubtype(u,t)||this.isSubtype(m,t)}case $:case I:case F:case W:{return this.isSubtype(u,t)}case _:case P:case se:{return this.isSubtype(o,t)}case z:{return this.isSubtype(s,t)||this.isSubtype(o,t)}case re:{return this.isSubtype(s,t)}default:{return false}}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":{return o}case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":{return s}case"Grammar:usedGrammars":{return C}case"NamedArgument:parameter":case"ParameterReference:parameter":{return j}case"TerminalRuleCall:rule":{return re}default:{throw new Error(`${t} is not a valid reference id.`)}}}getTypeMetaData(e){switch(e){case y:{return{name:y,properties:[{name:"cardinality"},{name:"lookahead"}]}}case A:{return{name:A,properties:[{name:"elements",defaultValue:[]}]}}case R:{return{name:R,properties:[{name:"elementType"}]}}case k:{return{name:k,properties:[{name:"true",defaultValue:false}]}}case $:{return{name:$,properties:[{name:"left"},{name:"right"}]}}case I:{return{name:I,properties:[{name:"left"},{name:"right"}]}}case C:{return{name:C,properties:[{name:"definesHiddenTokens",defaultValue:false},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:false},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]}}case L:{return{name:L,properties:[{name:"path"}]}}case _:{return{name:_,properties:[{name:"name"}]}}case P:{return{name:P,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]}}case D:{return{name:D,properties:[{name:"calledByName",defaultValue:false},{name:"parameter"},{name:"value"}]}}case F:{return{name:F,properties:[{name:"value"}]}}case B:{return{name:B,properties:[{name:"value"}]}}case j:{return{name:j,properties:[{name:"name"}]}}case W:{return{name:W,properties:[{name:"parameter"}]}}case z:{return{name:z,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:false},{name:"definition"},{name:"entry",defaultValue:false},{name:"fragment",defaultValue:false},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:false}]}}case q:{return{name:q,properties:[{name:"referenceType"}]}}case Q:{return{name:Q,properties:[{name:"name"}]}}case J:{return{name:J,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]}}case te:{return{name:te,properties:[{name:"value"}]}}case re:{return{name:re,properties:[{name:"definition"},{name:"fragment",defaultValue:false},{name:"hidden",defaultValue:false},{name:"name"},{name:"type"}]}}case se:{return{name:se,properties:[{name:"name"},{name:"type"}]}}case oe:{return{name:oe,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:false},{name:"name"},{name:"type"}]}}case ue:{return{name:ue,properties:[{name:"types",defaultValue:[]}]}}case de:{return{name:de,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]}}case he:{return{name:he,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]}}case me:{return{name:me,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]}}case ye:{return{name:ye,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]}}case Ae:{return{name:Ae,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:false},{name:"lookahead"},{name:"terminal"},{name:"type"}]}}case Re:{return{name:Re,properties:[{name:"cardinality"},{name:"lookahead"}]}}case ke:{return{name:ke,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]}}case $e:{return{name:$e,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]}}case Ie:{return{name:Ie,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]}}case Ce:{return{name:Ce,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]}}case Le:{return{name:Le,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]}}case _e:{return{name:_e,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]}}case Pe:{return{name:Pe,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]}}case De:{return{name:De,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]}}case Fe:{return{name:Fe,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]}}case Be:{return{name:Be,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]}}case je:{return{name:je,properties:[{name:"cardinality"},{name:"lookahead"}]}}default:{return{name:e,properties:[]}}}}}const He=new We},25355:(e,t,n)=>{"use strict";n.d(t,{Q:()=>u});var r=n(50450);var i=n(85684);var s=n(63752);var a=n(70977);var o=n(65811);var c=n(64386);class u{constructor(){this.diagnostics=[]}buildTokens(e,t){const n=(0,c.Td)((0,a.YV)(e,false));const r=this.buildTerminalTokens(n);const i=this.buildKeywordTokens(n,r,t);r.forEach((e=>{const t=e.PATTERN;if(typeof t==="object"&&t&&"test"in t&&(0,o.Yv)(t)){i.unshift(e)}else{i.push(e)}}));return i}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];this.diagnostics=[];return e}buildTerminalTokens(e){return e.filter(i.rE).filter((e=>!e.fragment)).map((e=>this.buildTerminalToken(e))).toArray()}buildTerminalToken(e){const t=(0,a.S)(e);const n=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t;const i={name:e.name,PATTERN:n};if(typeof n==="function"){i.LINE_BREAKS=true}if(e.hidden){i.GROUP=(0,o.Yv)(t)?r.JG.SKIPPED:"hidden"}return i}requiresCustomPattern(e){if(e.flags.includes("u")||e.flags.includes("s")){return true}else if(e.source.includes("?<=")||e.source.includes("?{t.lastIndex=n;const r=t.exec(e);return r}}buildKeywordTokens(e,t,n){return e.filter(i.s7).flatMap((e=>(0,s.Uo)(e).filter(i.wb))).distinct((e=>e.value)).toArray().sort(((e,t)=>t.value.length-e.value.length)).map((e=>this.buildKeywordToken(e,t,Boolean(n===null||n===void 0?void 0:n.caseInsensitive))))}buildKeywordToken(e,t,n){const r=this.buildKeywordPattern(e,n);const i={name:e.value,PATTERN:r,LONGER_ALT:this.findLongerAlt(e,t)};if(typeof r==="function"){i.LINE_BREAKS=true}return i}buildKeywordPattern(e,t){return t?new RegExp((0,o.Ao)(e.value)):e.value}findLongerAlt(e,t){return t.reduce(((t,n)=>{const r=n===null||n===void 0?void 0:n.PATTERN;if((r===null||r===void 0?void 0:r.source)&&(0,o.PC)("^"+r.source+"$",e.value)){t.push(n)}return t}),[])}}},14480:(e,t,n)=>{"use strict";n.d(t,{d:()=>s});var r=n(85684);var i=n(70977);class s{convert(e,t){let n=t.grammarSource;if((0,r._c)(n)){n=(0,i.g4)(n)}if((0,r.$g)(n)){const r=n.rule.ref;if(!r){throw new Error("This cst node was not parsed by a rule.")}return this.runConverter(r,e,t)}return e}runConverter(e,t,n){var r;switch(e.name.toUpperCase()){case"INT":return a.convertInt(t);case"STRING":return a.convertString(t);case"ID":return a.convertID(t)}switch((r=(0,i.P3)(e))===null||r===void 0?void 0:r.toLowerCase()){case"number":return a.convertNumber(t);case"boolean":return a.convertBoolean(t);case"bigint":return a.convertBigint(t);case"date":return a.convertDate(t);default:return t}}}var a;(function(e){function t(e){let t="";for(let r=1;r{"use strict";n.d(t,{A_:()=>i,FC:()=>u,Nr:()=>s,Zl:()=>a,br:()=>l,kD:()=>o,mD:()=>c,ng:()=>r});function r(e){return typeof e==="object"&&e!==null&&typeof e.$type==="string"}function i(e){return typeof e==="object"&&e!==null&&typeof e.$refText==="string"}function s(e){return typeof e==="object"&&e!==null&&typeof e.name==="string"&&typeof e.type==="string"&&typeof e.path==="string"}function a(e){return typeof e==="object"&&e!==null&&r(e.container)&&i(e.reference)&&typeof e.message==="string"}class o{constructor(){this.subtypes={};this.allSubtypes={}}isInstance(e,t){return r(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t){return true}let n=this.subtypes[e];if(!n){n=this.subtypes[e]={}}const r=n[t];if(r!==undefined){return r}else{const r=this.computeIsSubtype(e,t);n[t]=r;return r}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t){return t}else{const t=this.getAllTypes();const n=[];for(const r of t){if(this.isSubtype(r,e)){n.push(r)}}this.allSubtypes[e]=n;return n}}}function c(e){return typeof e==="object"&&e!==null&&Array.isArray(e.content)}function u(e){return typeof e==="object"&&e!==null&&typeof e.tokenType==="object"}function l(e){return c(e)&&typeof e.fullText==="string"}},63752:(e,t,n)=>{"use strict";n.d(t,{DM:()=>m,OP:()=>y,SD:()=>a,Uo:()=>f,VN:()=>d,XG:()=>o,YE:()=>u,cQ:()=>l,jm:()=>h});var r=n(64032);var i=n(64386);var s=n(5730);function a(e){for(const[t,n]of Object.entries(e)){if(!t.startsWith("$")){if(Array.isArray(n)){n.forEach(((n,i)=>{if((0,r.ng)(n)){n.$container=e;n.$containerProperty=t;n.$containerIndex=i}}))}else if((0,r.ng)(n)){n.$container=e;n.$containerProperty=t}}}}function o(e,t){let n=e;while(n){if(t(n)){return n}n=n.$container}return undefined}function c(e,t){let n=e;while(n){if(t(n)){return true}n=n.$container}return false}function u(e){const t=l(e);const n=t.$document;if(!n){throw new Error("AST node has no document.")}return n}function l(e){while(e.$container){e=e.$container}return e}function d(e,t){if(!e){throw new Error("Node must be an AstNode.")}const n=t===null||t===void 0?void 0:t.range;return new i.fq((()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0})),(t=>{while(t.keyIndexd(e,t)))}function h(e,t){if(!e){throw new Error("Root node must be an AstNode.")}else if((t===null||t===void 0?void 0:t.range)&&!p(e,t.range)){return new i.Vj(e,(()=>[]))}return new i.Vj(e,(e=>d(e,t)),{includeRoot:true})}function p(e,t){var n;if(!t){return true}const r=(n=e.$cstNode)===null||n===void 0?void 0:n.range;if(!r){return false}return(0,s.r4)(r,t)}function m(e){return new i.fq((()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0})),(t=>{while(t.keyIndex{m(t).forEach((t=>{if(t.reference.ref===e){n.push(t.reference)}}))}));return stream(n)}function y(e,t){const n=e.getTypeMetaData(t.$type);const r=t;for(const i of n.properties){if(i.defaultValue!==undefined&&r[i.name]===undefined){r[i.name]=v(i.defaultValue)}}}function v(e){if(Array.isArray(e)){return[...e.map(v)]}else{return e}}function A(e,t){const n={$type:e.$type};for(const[r,i]of Object.entries(e)){if(!r.startsWith("$")){if(isAstNode(i)){n[r]=A(i,t)}else if(isReference(i)){n[r]=t(n,r,i.$refNode,i.$refText)}else if(Array.isArray(i)){const e=[];for(const s of i){if(isAstNode(s)){e.push(A(s,t))}else if(isReference(s)){e.push(t(n,r,s.$refNode,s.$refText))}else{e.push(s)}}n[r]=e}else{n[r]=i}}}a(n);return n}},5730:(e,t,n)=>{"use strict";n.d(t,{El:()=>h,NS:()=>s,SX:()=>u,pO:()=>o,r4:()=>f,v:()=>m,wf:()=>c});var r=n(64032);var i=n(64386);function s(e){return new i.Vj(e,(e=>{if((0,r.mD)(e)){return e.content}else{return[]}}),{includeRoot:true})}function a(e){return s(e).filter(isLeafCstNode)}function o(e,t){while(e.container){e=e.container;if(e===t){return true}}return false}function c(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function u(e){if(!e){return undefined}const{offset:t,end:n,range:r}=e;return{range:r,offset:t,end:n,length:n-t}}var l;(function(e){e[e["Before"]=0]="Before";e[e["After"]=1]="After";e[e["OverlapFront"]=2]="OverlapFront";e[e["OverlapBack"]=3]="OverlapBack";e[e["Inside"]=4]="Inside";e[e["Outside"]=5]="Outside"})(l||(l={}));function d(e,t){if(e.end.linet.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character){return l.After}const n=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character;const r=e.end.linel.After}const h=/^[\w\p{L}]$/u;function p(e,t,n=h){if(e){if(t>0){const r=t-e.offset;const i=e.text.charAt(r);if(!n.test(i)){t--}}return y(e,t)}return undefined}function m(e,t){if(e){const n=T(e,true);if(n&&g(n,t)){return n}if((0,r.br)(e)){const n=e.content.findIndex((e=>!e.hidden));for(let r=n-1;r>=0;r--){const n=e.content[r];if(g(n,t)){return n}}}}return undefined}function g(e,t){return(0,r.FC)(e)&&t.includes(e.tokenType.name)}function y(e,t){if(isLeafCstNode(e)){return e}else if(isCompositeCstNode(e)){const n=A(e,t,false);if(n){return y(n,t)}}return undefined}function v(e,t){if(isLeafCstNode(e)){return e}else if(isCompositeCstNode(e)){const n=A(e,t,true);if(n){return v(n,t)}}return undefined}function A(e,t,n){let r=0;let i=e.content.length-1;let s=undefined;while(r<=i){const a=Math.floor((r+i)/2);const o=e.content[a];if(o.offset<=t&&o.end>t){return o}if(o.end<=t){s=n?o:undefined;r=a+1}else{i=a-1}}return s}function T(e,t=true){while(e.container){const n=e.container;let r=n.content.indexOf(e);while(r>0){r--;const e=n.content[r];if(t||!e.hidden){return e}}e=n}return undefined}function R(e,t=true){while(e.container){const n=e.container;let r=n.content.indexOf(e);const i=n.content.length-1;while(r{"use strict";n.d(t,{W:()=>r,d:()=>i});class r extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function i(e){throw new Error("Error! The input value was not handled.")}},70977:(e,t,n)=>{"use strict";n.d(t,{Bd:()=>m,P3:()=>M,PV:()=>b,Rp:()=>R,S:()=>D,SS:()=>A,U5:()=>E,Uz:()=>_,Xq:()=>S,YV:()=>d,eb:()=>p,g4:()=>h,qO:()=>g});var r=n(73101);var i=n(85684);var s=n(64032);var a=n(63752);var o=n(5730);var c=n(65811);function u(e){return e.rules.find((e=>i.s7(e)&&e.entry))}function l(e){return e.rules.filter((e=>i.rE(e)&&e.hidden))}function d(e,t){const n=new Set;const r=u(e);if(!r){return new Set(e.rules)}const s=[r].concat(l(e));for(const i of s){f(i,n,t)}const a=new Set;for(const o of e.rules){if(n.has(o.name)||i.rE(o)&&o.hidden){a.add(o)}}return a}function f(e,t,n){t.add(e.name);(0,a.Uo)(e).forEach((e=>{if(i.$g(e)||n&&i.lF(e)){const r=e.rule.ref;if(r&&!t.has(r.name)){f(r,t,n)}}}))}function h(e){if(e.terminal){return e.terminal}else if(e.type.ref){const t=E(e.type.ref);return t===null||t===void 0?void 0:t.terminal}return undefined}function p(e){return e.hidden&&!(0,c.Yv)(D(e))}function m(e,t){if(!e||!t){return[]}return y(e,t,e.astNode,true)}function g(e,t,n){if(!e||!t){return undefined}const r=y(e,t,e.astNode,true);if(r.length===0){return undefined}if(n!==undefined){n=Math.max(0,Math.min(n,r.length-1))}else{n=0}return r[n]}function y(e,t,n,r){if(!r){const n=(0,a.XG)(e.grammarSource,i.wh);if(n&&n.feature===t){return[e]}}if((0,s.mD)(e)&&e.astNode===n){return e.content.flatMap((e=>y(e,t,n,false)))}return[]}function v(e,t){if(!e){return[]}return T(e,t,e===null||e===void 0?void 0:e.astNode)}function A(e,t,n){if(!e){return undefined}const r=T(e,t,e===null||e===void 0?void 0:e.astNode);if(r.length===0){return undefined}if(n!==undefined){n=Math.max(0,Math.min(n,r.length-1))}else{n=0}return r[n]}function T(e,t,n){if(e.astNode!==n){return[]}if(i.wb(e.grammarSource)&&e.grammarSource.value===t){return[e]}const r=(0,o.NS)(e).iterator();let s;const a=[];do{s=r.next();if(!s.done){const e=s.value;if(e.astNode===n){if(i.wb(e.grammarSource)&&e.grammarSource.value===t){a.push(e)}}else{r.prune()}}}while(!s.done);return a}function R(e){var t;const n=e.astNode;while(n===((t=e.container)===null||t===void 0?void 0:t.astNode)){const t=(0,a.XG)(e.grammarSource,i.wh);if(t){return t}e=e.container}return undefined}function E(e){let t=e;if(i.SP(t)){if(i.ve(t.$container)){t=t.$container.$container}else if(i.s7(t.$container)){t=t.$container}else{(0,r.d)(t.$container)}}return k(e,t,new Map)}function k(e,t,n){var r;function s(t,r){let s=undefined;const o=(0,a.XG)(t,i.wh);if(!o){s=k(r,r,n)}n.set(e,s);return s}if(n.has(e)){return n.get(e)}n.set(e,undefined);for(const o of(0,a.Uo)(t)){if(i.wh(o)&&o.feature.toLowerCase()==="name"){n.set(e,o);return o}else if(i.$g(o)&&i.s7(o.rule.ref)){return s(o,o.rule.ref)}else if(i.D8(o)&&((r=o.typeRef)===null||r===void 0?void 0:r.ref)){return s(o,o.typeRef.ref)}}return undefined}function x(e){const t=e.$container;if(ast.isGroup(t)){const n=t.elements;const r=n.indexOf(e);for(let e=r-1;e>=0;e--){const t=n[e];if(ast.isAction(t)){return t}else{const t=streamAllContents(n[e]).find(ast.isAction);if(t){return t}}}}if(ast.isAbstractElement(t)){return x(t)}else{return undefined}}function $(e,t){return e==="?"||e==="*"||ast.isGroup(t)&&Boolean(t.guardCondition)}function w(e){return e==="*"||e==="+"}function I(e){return e==="+="}function S(e){return C(e,new Set)}function C(e,t){if(t.has(e)){return true}else{t.add(e)}for(const n of(0,a.Uo)(e)){if(i.$g(n)){if(!n.rule.ref){return false}if(i.s7(n.rule.ref)&&!C(n.rule.ref,t)){return false}}else if(i.wh(n)){return false}else if(i.ve(n)){return false}}return Boolean(e.definition)}function N(e){return L(e.type,new Set)}function L(e,t){if(t.has(e)){return true}else{t.add(e)}if(ast.isArrayType(e)){return false}else if(ast.isReferenceType(e)){return false}else if(ast.isUnionType(e)){return e.types.every((e=>L(e,t)))}else if(ast.isSimpleType(e)){if(e.primitiveType!==undefined){return true}else if(e.stringType!==undefined){return true}else if(e.typeRef!==undefined){const n=e.typeRef.ref;if(ast.isType(n)){return L(n.type,t)}else{return false}}else{return false}}else{return false}}function b(e){if(e.inferredType){return e.inferredType.name}else if(e.dataType){return e.dataType}else if(e.returnType){const t=e.returnType.ref;if(t){if(i.s7(t)){return t.name}else if(i.S2(t)||i.Xj(t)){return t.name}}}return undefined}function _(e){var t;if(i.s7(e)){return S(e)?e.name:(t=b(e))!==null&&t!==void 0?t:e.name}else if(i.S2(e)||i.Xj(e)||i.fG(e)){return e.name}else if(i.ve(e)){const t=O(e);if(t){return t}}else if(i.SP(e)){return e.name}throw new Error("Cannot get name of Unknown Type")}function O(e){var t;if(e.inferredType){return e.inferredType.name}else if((t=e.type)===null||t===void 0?void 0:t.ref){return _(e.type.ref)}return undefined}function P(e){var t,n,r;if(ast.isTerminalRule(e)){return(n=(t=e.type)===null||t===void 0?void 0:t.name)!==null&&n!==void 0?n:"string"}else{return S(e)?e.name:(r=b(e))!==null&&r!==void 0?r:e.name}}function M(e){var t,n,r;if(i.rE(e)){return(n=(t=e.type)===null||t===void 0?void 0:t.name)!==null&&n!==void 0?n:"string"}else{return(r=b(e))!==null&&r!==void 0?r:e.name}}function D(e){const t={s:false,i:false,u:false};const n=F(e.definition,t);const r=Object.entries(t).filter((([,e])=>e)).map((([e])=>e)).join("");return new RegExp(n,r)}const U=/[\s\S]/.source;function F(e,t){if(i.Fy(e)){return G(e)}else if(i.O4(e)){return B(e)}else if(i.Bg(e)){return V(e)}else if(i.lF(e)){const t=e.rule.ref;if(!t){throw new Error("Missing rule reference.")}return H(F(t.definition),{cardinality:e.cardinality,lookahead:e.lookahead})}else if(i.GL(e)){return j(e)}else if(i.Mz(e)){return K(e)}else if(i.vd(e)){const n=e.regex.lastIndexOf("/");const r=e.regex.substring(1,n);const i=e.regex.substring(n+1);if(t){t.i=i.includes("i");t.s=i.includes("s");t.u=i.includes("u")}return H(r,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:false})}else if(i.z2(e)){return H(U,{cardinality:e.cardinality,lookahead:e.lookahead})}else{throw new Error(`Invalid terminal element: ${e===null||e===void 0?void 0:e.$type}`)}}function G(e){return H(e.elements.map((e=>F(e))).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead})}function B(e){return H(e.elements.map((e=>F(e))).join(""),{cardinality:e.cardinality,lookahead:e.lookahead})}function K(e){return H(`${U}*?${F(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead})}function j(e){return H(`(?!${F(e.terminal)})${U}*?`,{cardinality:e.cardinality,lookahead:e.lookahead})}function V(e){if(e.right){return H(`[${W(e.left)}-${W(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:false})}return H(W(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,wrap:false})}function W(e){return(0,c.Nt)(e.value)}function H(e,t){var n;if(t.wrap!==false||t.lookahead){e=`(${(n=t.lookahead)!==null&&n!==void 0?n:""}${e})`}if(t.cardinality){return`${e}${t.cardinality}`}return e}},65811:(e,t,n)=>{"use strict";n.d(t,{Ao:()=>h,Nt:()=>f,PC:()=>p,TH:()=>i,Yv:()=>d,lU:()=>u});var r=n(83173);const i=/\r?\n/gm;const s=new r.H;class a extends r.z{constructor(){super(...arguments);this.isStarting=true;this.endRegexpStack=[];this.multiline=false}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=false;this.regex=e;this.startRegexp="";this.isStarting=true;this.endRegexpStack=[]}visitGroup(e){if(e.quantifier){this.isStarting=false;this.endRegexpStack=[]}}visitCharacter(e){const t=String.fromCharCode(e.value);if(!this.multiline&&t==="\n"){this.multiline=true}if(e.quantifier){this.isStarting=false;this.endRegexpStack=[]}else{const e=f(t);this.endRegexpStack.push(e);if(this.isStarting){this.startRegexp+=e}}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end);const n=new RegExp(t);this.multiline=Boolean("\n".match(n))}if(e.quantifier){this.isStarting=false;this.endRegexpStack=[]}else{const t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t);if(this.isStarting){this.startRegexp+=t}}}visitChildren(e){if(e.type==="Group"){const t=e;if(t.quantifier){return}}super.visitChildren(e)}}const o=new a;function c(e){try{if(typeof e!=="string"){e=e.source}e=`/${e}/`;const t=s.pattern(e);const n=[];for(const r of t.value.value){o.reset(e);o.visit(r);n.push({start:o.startRegexp,end:o.endRegex})}return n}catch(t){return[]}}function u(e){try{if(typeof e==="string"){e=new RegExp(e)}e=e.toString();o.reset(e);o.visit(s.pattern(e));return o.multiline}catch(t){return false}}const l=("\f\n\r\t\v           "+"   \u2028\u2029   \ufeff").split("");function d(e){const t=typeof e==="string"?new RegExp(e):e;return l.some((e=>t.test(e)))}function f(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function h(e){return Array.prototype.map.call(e,(e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:f(e))).join("")}function p(e,t){const n=m(e);const r=t.match(n);return!!r&&r[0].length>0}function m(e){if(typeof e==="string"){e=new RegExp(e)}const t=e,n=e.source;let r=0;function i(){let e="",s;function a(t){e+=n.substr(r,t);r+=t}function o(t){e+="(?:"+n.substr(r,t)+"|$)";r+=t}while(r",r)-r+1);break;default:o(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g;s.lastIndex=r;s=s.exec(n)||[];o(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":a(1);break;case"{":s=/\{\d+,?\d*\}/g;s.lastIndex=r;s=s.exec(n);if(s){a(s[0].length)}else{o(1)}break;case"(":if(n[r+1]==="?"){switch(n[r+2]){case":":e+="(?:";r+=3;e+=i()+"|$)";break;case"=":e+="(?=";r+=3;e+=i()+")";break;case"!":s=r;r+=3;i();e+=n.substr(s,r-s);break;case"<":switch(n[r+3]){case"=":case"!":s=r;r+=4;i();e+=n.substr(s,r-s);break;default:a(n.indexOf(">",r)-r+1);e+=i()+"|$)";break}break}}else{a(1);e+=i()+"|$)"}break;case")":++r;return e;default:o(1);break}}return e}return new RegExp(i(),e.flags)}},64386:(e,t,n)=>{"use strict";n.d(t,{B5:()=>a,Rf:()=>o,Td:()=>c,Vj:()=>u,fq:()=>r,iD:()=>l});class r{constructor(e,t){this.startFn=e;this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){const e=this.iterator();return Boolean(e.next().done)}count(){const e=this.iterator();let t=0;let n=e.next();while(!n.done){t++;n=e.next()}return t}toArray(){const e=[];const t=this.iterator();let n;do{n=t.next();if(n.value!==undefined){e.push(n.value)}}while(!n.done);return e}toSet(){return new Set(this)}toMap(e,t){const n=this.map((n=>[e?e(n):n,t?t(n):n]));return new Map(n)}toString(){return this.join()}concat(e){return new r((()=>({first:this.startFn(),firstDone:false,iterator:e[Symbol.iterator]()})),(e=>{let t;if(!e.firstDone){do{t=this.nextFn(e.first);if(!t.done){return t}}while(!t.done);e.firstDone=true}do{t=e.iterator.next();if(!t.done){return t}}while(!t.done);return o}))}join(e=","){const t=this.iterator();let n="";let r;let s=false;do{r=t.next();if(!r.done){if(s){n+=e}n+=i(r.value)}s=true}while(!r.done);return n}indexOf(e,t=0){const n=this.iterator();let r=0;let i=n.next();while(!i.done){if(r>=t&&i.value===e){return r}i=n.next();r++}return-1}every(e){const t=this.iterator();let n=t.next();while(!n.done){if(!e(n.value)){return false}n=t.next()}return true}some(e){const t=this.iterator();let n=t.next();while(!n.done){if(e(n.value)){return true}n=t.next()}return false}forEach(e){const t=this.iterator();let n=0;let r=t.next();while(!r.done){e(r.value,n);r=t.next();n++}}map(e){return new r(this.startFn,(t=>{const{done:n,value:r}=this.nextFn(t);if(n){return o}else{return{done:false,value:e(r)}}}))}filter(e){return new r(this.startFn,(t=>{let n;do{n=this.nextFn(t);if(!n.done&&e(n.value)){return n}}while(!n.done);return o}))}nonNullable(){return this.filter((e=>e!==undefined&&e!==null))}reduce(e,t){const n=this.iterator();let r=t;let i=n.next();while(!i.done){if(r===undefined){r=i.value}else{r=e(r,i.value)}i=n.next()}return r}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){const r=e.next();if(r.done){return n}const i=this.recursiveReduce(e,t,n);if(i===undefined){return r.value}return t(i,r.value)}find(e){const t=this.iterator();let n=t.next();while(!n.done){if(e(n.value)){return n.value}n=t.next()}return undefined}findIndex(e){const t=this.iterator();let n=0;let r=t.next();while(!r.done){if(e(r.value)){return n}r=t.next();n++}return-1}includes(e){const t=this.iterator();let n=t.next();while(!n.done){if(n.value===e){return true}n=t.next()}return false}flatMap(e){return new r((()=>({this:this.startFn()})),(t=>{do{if(t.iterator){const e=t.iterator.next();if(e.done){t.iterator=undefined}else{return e}}const{done:n,value:r}=this.nextFn(t.this);if(!n){const n=e(r);if(s(n)){t.iterator=n[Symbol.iterator]()}else{return{done:false,value:n}}}}while(t.iterator);return o}))}flat(e){if(e===undefined){e=1}if(e<=0){return this}const t=e>1?this.flat(e-1):this;return new r((()=>({this:t.startFn()})),(e=>{do{if(e.iterator){const t=e.iterator.next();if(t.done){e.iterator=undefined}else{return t}}const{done:n,value:r}=t.nextFn(e.this);if(!n){if(s(r)){e.iterator=r[Symbol.iterator]()}else{return{done:false,value:r}}}}while(e.iterator);return o}))}head(){const e=this.iterator();const t=e.next();if(t.done){return undefined}return t.value}tail(e=1){return new r((()=>{const t=this.startFn();for(let n=0;n({size:0,state:this.startFn()})),(t=>{t.size++;if(t.size>e){return o}return this.nextFn(t.state)}))}distinct(e){return new r((()=>({set:new Set,internalState:this.startFn()})),(t=>{let n;do{n=this.nextFn(t.internalState);if(!n.done){const r=e?e(n.value):n.value;if(!t.set.has(r)){t.set.add(r);return n}}}while(!n.done);return o}))}exclude(e,t){const n=new Set;for(const r of e){const e=t?t(r):r;n.add(e)}return this.filter((e=>{const r=t?t(e):e;return!n.has(r)}))}}function i(e){if(typeof e==="string"){return e}if(typeof e==="undefined"){return"undefined"}if(typeof e.toString==="function"){return e.toString()}return Object.prototype.toString.call(e)}function s(e){return!!e&&typeof e[Symbol.iterator]==="function"}const a=new r((()=>undefined),(()=>o));const o=Object.freeze({done:true,value:undefined});function c(...e){if(e.length===1){const t=e[0];if(t instanceof r){return t}if(s(t)){return new r((()=>t[Symbol.iterator]()),(e=>e.next()))}if(typeof t.length==="number"){return new r((()=>({index:0})),(e=>{if(e.index1){return new r((()=>({collIndex:0,arrIndex:0})),(t=>{do{if(t.iterator){const e=t.iterator.next();if(!e.done){return e}t.iterator=undefined}if(t.array){if(t.arrIndex({iterators:(n===null||n===void 0?void 0:n.includeRoot)?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:false})),(e=>{if(e.pruned){e.iterators.pop();e.pruned=false}while(e.iterators.length>0){const n=e.iterators[e.iterators.length-1];const r=n.next();if(r.done){e.iterators.pop()}else{e.iterators.push(t(r.value)[Symbol.iterator]());return r}}return o}))}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=true},[Symbol.iterator]:()=>e};return e}}var l;(function(e){function t(e){return e.reduce(((e,t)=>e+t),0)}e.sum=t;function n(e){return e.reduce(((e,t)=>e*t),0)}e.product=n;function r(e){return e.reduce(((e,t)=>Math.min(e,t)))}e.min=r;function i(e){return e.reduce(((e,t)=>Math.max(e,t)))}e.max=i})(l||(l={}))},6052:(e,t,n)=>{"use strict";n.d(t,{D:()=>i});class r{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const i={fileSystemProvider:()=>new r}},95852:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(62579);function i(e,t,n){var i=-1,s=e.length;while(++i{"use strict";n.d(t,{A:()=>i});function r(e,t){return e{"use strict";n.d(t,{A:()=>a});var r=n(15912);var i=n(21585);function s(e,t){var n=-1,s=(0,i.A)(e)?Array(e.length):[];(0,r.A)(e,(function(e,r,i){s[++n]=t(e,r,i)}));return s}const a=s},44835:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(22883);var i=n(16542);var s=n(65900);var a=n(78912);var o=n(85356);var c=n(43512);function u(e,t,n,r){if(!(0,o.A)(e)){return e}t=(0,s.A)(t,e);var u=-1,l=t.length,d=l-1,f=e;while(f!=null&&++u{"use strict";n.d(t,{A:()=>a});var r=n(59386);var i=4;function s(e){return(0,r.A)(e,i)}const a=s},38693:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(55881);var i=n(24461);var s=n(31943);var a=n(13839);var o=Object.prototype;var c=o.hasOwnProperty;var u=(0,r.A)((function(e,t){e=Object(e);var n=-1;var r=t.length;var u=r>2?t[2]:undefined;if(u&&(0,s.A)(t[0],t[1],u)){r=1}while(++n{"use strict";n.d(t,{A:()=>p});var r=n(1121);var i=n(21585);var s=n(37947);function a(e){return function(t,n,a){var o=Object(t);if(!(0,i.A)(t)){var c=(0,r.A)(n,3);t=(0,s.A)(t);n=function(e){return c(o[e],e,o)}}var u=e(t,n,a);return u>-1?o[c?t[u]:u]:undefined}}const o=a;var c=n(97314);var u=n(29914);var l=Math.max;function d(e,t,n){var i=e==null?0:e.length;if(!i){return-1}var s=n==null?0:(0,u.A)(n);if(s<0){s=l(i+s,0)}return(0,c.A)(e,(0,r.A)(t,3),s)}const f=d;var h=o(f);const p=h},57852:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(62040);var i=n(8937);function s(e,t){return(0,r.A)((0,i.A)(e,t),1)}const a=s},74033:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(62040);function i(e){var t=e==null?0:e.length;return t?(0,r.A)(e,1):[]}const s=i},2850:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=Object.prototype;var i=r.hasOwnProperty;function s(e,t){return e!=null&&i.call(e,t)}const a=s;var o=n(64491);function c(e,t){return e!=null&&(0,o.A)(e,t,a)}const u=c},86378:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(64128);var i=n(39990);var s=n(53315);var a="[object String]";function o(e){return typeof e=="string"||!(0,i.A)(e)&&(0,s.A)(e)&&(0,r.A)(e)==a}const c=o},80359:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});function r(e){var t=e==null?0:e.length;return t?e[t-1]:undefined}const i=r},8937:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(98519);var i=n(1121);var s=n(97457);var a=n(39990);function o(e,t){var n=(0,a.A)(e)?r.A:s.A;return n(e,(0,i.A)(t,3))}const c=o},963:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(95852);var i=n(51135);var s=n(63077);function a(e){return e&&e.length?(0,r.A)(e,s.A,i.A):undefined}const o=a},52712:(e,t,n)=>{"use strict";n.d(t,{A:()=>R});var r=/\s/;function i(e){var t=e.length;while(t--&&r.test(e.charAt(t))){}return t}const s=i;var a=/^\s+/;function o(e){return e?e.slice(0,s(e)+1).replace(a,""):e}const c=o;var u=n(85356);var l=n(62579);var d=0/0;var f=/^[-+]0x[0-9a-f]+$/i;var h=/^0b[01]+$/i;var p=/^0o[0-7]+$/i;var m=parseInt;function g(e){if(typeof e=="number"){return e}if((0,l.A)(e)){return d}if((0,u.A)(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=(0,u.A)(t)?t+"":t}if(typeof e!="string"){return e===0?e:+e}e=c(e);var n=h.test(e);return n||p.test(e)?m(e.slice(2),n?2:8):f.test(e)?d:+e}const y=g;var v=1/0,A=17976931348623157e292;function T(e){if(!e){return e===0?e:0}e=y(e);if(e===v||e===-v){var t=e<0?-1:1;return t*A}return e===e?e:0}const R=T},29914:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(52712);function i(e){var t=(0,r.A)(e),n=t%1;return t===t?n?t-n:t:0}const s=i},65606:e=>{var t=e.exports={};var n;var r;function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){n=setTimeout}else{n=i}}catch(e){n=i}try{if(typeof clearTimeout==="function"){r=clearTimeout}else{r=s}}catch(e){r=s}})();function a(e){if(n===setTimeout){return setTimeout(e,0)}if((n===i||!n)&&setTimeout){n=setTimeout;return setTimeout(e,0)}try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}function o(e){if(r===clearTimeout){return clearTimeout(e)}if((r===s||!r)&&clearTimeout){r=clearTimeout;return clearTimeout(e)}try{return r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}var c=[];var u=false;var l;var d=-1;function f(){if(!u||!l){return}u=false;if(l.length){c=l.concat(c)}else{d=-1}if(c.length){h()}}function h(){if(u){return}var e=a(f);u=true;var t=c.length;while(t){l=c;c=[];while(++d1){for(var n=1;n{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CancellationTokenSource=t.CancellationToken=void 0;const r=n(69590);const i=n(78585);const s=n(62676);var a;(function(e){e.None=Object.freeze({isCancellationRequested:false,onCancellationRequested:s.Event.None});e.Cancelled=Object.freeze({isCancellationRequested:true,onCancellationRequested:s.Event.None});function t(t){const n=t;return n&&(n===e.None||n===e.Cancelled||i.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}e.is=t})(a||(t.CancellationToken=a={}));const o=Object.freeze((function(e,t){const n=(0,r.default)().timer.setTimeout(e.bind(t),0);return{dispose(){n.dispose()}}}));class c{constructor(){this._isCancelled=false}cancel(){if(!this._isCancelled){this._isCancelled=true;if(this._emitter){this._emitter.fire(undefined);this.dispose()}}}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){if(this._isCancelled){return o}if(!this._emitter){this._emitter=new s.Emitter}return this._emitter.event}dispose(){if(this._emitter){this._emitter.dispose();this._emitter=undefined}}}class u{get token(){if(!this._token){this._token=new c}return this._token}cancel(){if(!this._token){this._token=a.Cancelled}else{this._token.cancel()}}dispose(){if(!this._token){this._token=a.None}else if(this._token instanceof c){this._token.dispose()}}}t.CancellationTokenSource=u},62676:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Emitter=t.Event=void 0;const r=n(69590);var i;(function(e){const t={dispose(){}};e.None=function(){return t}})(i||(t.Event=i={}));class s{add(e,t=null,n){if(!this._callbacks){this._callbacks=[];this._contexts=[]}this._callbacks.push(e);this._contexts.push(t);if(Array.isArray(n)){n.push({dispose:()=>this.remove(e,t)})}}remove(e,t=null){if(!this._callbacks){return}let n=false;for(let r=0,i=this._callbacks.length;r{if(!this._callbacks){this._callbacks=new s}if(this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()){this._options.onFirstListenerAdd(this)}this._callbacks.add(e,t);const r={dispose:()=>{if(!this._callbacks){return}this._callbacks.remove(e,t);r.dispose=a._noop;if(this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()){this._options.onLastListenerRemove(this)}}};if(Array.isArray(n)){n.push(r)}return r}}return this._event}fire(e){if(this._callbacks){this._callbacks.invoke.call(this._callbacks,e)}}dispose(){if(this._callbacks){this._callbacks.dispose();this._callbacks=undefined}}}t.Emitter=a;a._noop=function(){}},78585:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.stringArray=t.array=t.func=t.error=t.number=t.string=t.boolean=void 0;function n(e){return e===true||e===false}t.boolean=n;function r(e){return typeof e==="string"||e instanceof String}t.string=r;function i(e){return typeof e==="number"||e instanceof Number}t.number=i;function s(e){return e instanceof Error}t.error=s;function a(e){return typeof e==="function"}t.func=a;function o(e){return Array.isArray(e)}t.array=o;function c(e){return o(e)&&e.every((e=>r(e)))}t.stringArray=c},69590:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});let n;function r(){if(n===undefined){throw new Error(`No runtime abstraction layer installed`)}return n}(function(e){function t(e){if(e===undefined){throw new Error(`No runtime abstraction layer provided`)}n=e}e.install=t})(r||(r={}));t["default"]=r},14247:(e,t,n)=>{"use strict";n.d(t,{A:()=>a,r:()=>s});var r=n(65606);var i;(()=>{"use strict";var e={470:e=>{function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",i=0,s=-1,a=0,o=0;o<=e.length;++o){if(o2){var c=r.lastIndexOf("/");if(c!==r.length-1){-1===c?(r="",i=0):i=(r=r.slice(0,c)).length-1-r.lastIndexOf("/"),s=o,a=0;continue}}else if(2===r.length||1===r.length){r="",i=0,s=o,a=0;continue}t&&(r.length>0?r+="/..":r="..",i=2)}else r.length>0?r+="/"+e.slice(s+1,o):r=e.slice(s+1,o),i=o-s-1;s=o,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var i={resolve:function(){for(var e,i="",s=!1,a=arguments.length-1;a>=-1&&!s;a--){var o;a>=0?o=arguments[a]:(void 0===e&&(e=r.cwd()),o=e),t(o),0!==o.length&&(i=o+"/"+i,s=47===o.charCodeAt(0))}return i=n(i,!s),s?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&i&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n0&&(void 0===e?e=r:e+="/"+r)}return void 0===e?".":i.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=i.resolve(e))===(n=i.resolve(n)))return"";for(var r=1;ru){if(47===n.charCodeAt(o+d))return n.slice(o+d+1);if(0===d)return n.slice(o+d)}else a>u&&(47===e.charCodeAt(r+d)?l=d:0===d&&(l=0));break}var f=e.charCodeAt(r+d);if(f!==n.charCodeAt(o+d))break;47===f&&(l=d)}var h="";for(d=r+l+1;d<=s;++d)d!==s&&47!==e.charCodeAt(d)||(0===h.length?h+="..":h+="/..");return h.length>0?h+n.slice(o+l):(o+=l,47===n.charCodeAt(o)&&++o,n.slice(o))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,i=-1,s=!0,a=e.length-1;a>=1;--a)if(47===(n=e.charCodeAt(a))){if(!s){i=a;break}}else s=!1;return-1===i?r?"/":".":r&&1===i?"//":e.slice(0,i)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,i=0,s=-1,a=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var o=n.length-1,c=-1;for(r=e.length-1;r>=0;--r){var u=e.charCodeAt(r);if(47===u){if(!a){i=r+1;break}}else-1===c&&(a=!1,c=r+1),o>=0&&(u===n.charCodeAt(o)?-1==--o&&(s=r):(o=-1,s=c))}return i===s?s=c:-1===s&&(s=e.length),e.slice(i,s)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){i=r+1;break}}else-1===s&&(a=!1,s=r+1);return-1===s?"":e.slice(i,s)},extname:function(e){t(e);for(var n=-1,r=0,i=-1,s=!0,a=0,o=e.length-1;o>=0;--o){var c=e.charCodeAt(o);if(47!==c)-1===i&&(s=!1,i=o+1),46===c?-1===n?n=o:1!==a&&(a=1):-1!==n&&(a=-1);else if(!s){r=o+1;break}}return-1===n||-1===i||0===a||1===a&&n===i-1&&n===r+1?"":e.slice(n,i)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,i=e.charCodeAt(0),s=47===i;s?(n.root="/",r=1):r=0;for(var a=-1,o=0,c=-1,u=!0,l=e.length-1,d=0;l>=r;--l)if(47!==(i=e.charCodeAt(l)))-1===c&&(u=!1,c=l+1),46===i?-1===a?a=l:1!==d&&(d=1):-1!==a&&(d=-1);else if(!u){o=l+1;break}return-1===a||-1===c||0===d||1===d&&a===c-1&&a===o+1?-1!==c&&(n.base=n.name=0===o&&s?e.slice(1,c):e.slice(o,c)):(0===o&&s?(n.name=e.slice(1,a),n.base=e.slice(1,c)):(n.name=e.slice(o,a),n.base=e.slice(o,c)),n.ext=e.slice(a,c)),o>0?n.dir=e.slice(0,o-1):s&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};i.posix=i,e.exports=i}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};(()=>{let e;if(n.r(s),n.d(s,{URI:()=>d,Utils:()=>$}),"object"==typeof r)e="win32"===r.platform;else if("object"==typeof navigator){let t=navigator.userAgent;e=t.indexOf("Windows")>=0}const t=/^\w[\w\d+.-]*$/,i=/^\//,a=/^\/\//;function o(e,n){if(!e.scheme&&n)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!t.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!i.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(a.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}const c="",u="/",l=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class d{static isUri(e){return e instanceof d||!!e&&"string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString}scheme;authority;path;query;fragment;constructor(e,t,n,r,i,s=!1){"object"==typeof e?(this.scheme=e.scheme||c,this.authority=e.authority||c,this.path=e.path||c,this.query=e.query||c,this.fragment=e.fragment||c):(this.scheme=function(e,t){return e||t?e:"file"}(e,s),this.authority=t||c,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==u&&(t=u+t):t=u}return t}(this.scheme,n||c),this.query=r||c,this.fragment=i||c,o(this,s))}get fsPath(){return y(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:n,path:r,query:i,fragment:s}=e;return void 0===t?t=this.scheme:null===t&&(t=c),void 0===n?n=this.authority:null===n&&(n=c),void 0===r?r=this.path:null===r&&(r=c),void 0===i?i=this.query:null===i&&(i=c),void 0===s?s=this.fragment:null===s&&(s=c),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&s===this.fragment?this:new h(t,n,r,i,s)}static parse(e,t=!1){const n=l.exec(e);return n?new h(n[2]||c,R(n[4]||c),R(n[5]||c),R(n[7]||c),R(n[9]||c),t):new h(c,c,c,c,c)}static file(t){let n=c;if(e&&(t=t.replace(/\\/g,u)),t[0]===u&&t[1]===u){const e=t.indexOf(u,2);-1===e?(n=t.substring(2),t=u):(n=t.substring(2,e),t=t.substring(e)||u)}return new h("file",n,t,c,c)}static from(e){const t=new h(e.scheme,e.authority,e.path,e.query,e.fragment);return o(t,!0),t}toString(e=!1){return v(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof d)return e;{const t=new h(e);return t._formatted=e.external,t._fsPath=e._sep===f?e.fsPath:null,t}}return e}}const f=e?1:void 0;class h extends d{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=y(this,!1)),this._fsPath}toString(e=!1){return e?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=f),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}const p={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function m(e,t,n){let r,i=-1;for(let s=0;s=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||45===a||46===a||95===a||126===a||t&&47===a||n&&91===a||n&&93===a||n&&58===a)-1!==i&&(r+=encodeURIComponent(e.substring(i,s)),i=-1),void 0!==r&&(r+=e.charAt(s));else{void 0===r&&(r=e.substr(0,s));const t=p[a];void 0!==t?(-1!==i&&(r+=encodeURIComponent(e.substring(i,s)),i=-1),r+=t):-1===i&&(i=s)}}return-1!==i&&(r+=encodeURIComponent(e.substring(i))),void 0!==r?r:e}function g(e){let t;for(let n=0;n1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&58===t.path.charCodeAt(2)?n?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,e&&(r=r.replace(/\//g,"\\")),r}function v(e,t){const n=t?g:m;let r="",{scheme:i,authority:s,path:a,query:o,fragment:c}=e;if(i&&(r+=i,r+=":"),(s||"file"===i)&&(r+=u,r+=u),s){let e=s.indexOf("@");if(-1!==e){const t=s.substr(0,e);s=s.substr(e+1),e=t.lastIndexOf(":"),-1===e?r+=n(t,!1,!1):(r+=n(t.substr(0,e),!1,!1),r+=":",r+=n(t.substr(e+1),!1,!0)),r+="@"}s=s.toLowerCase(),e=s.lastIndexOf(":"),-1===e?r+=n(s,!1,!0):(r+=n(s.substr(0,e),!1,!0),r+=s.substr(e))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2)){const e=a.charCodeAt(1);e>=65&&e<=90&&(a=`/${String.fromCharCode(e+32)}:${a.substr(3)}`)}else if(a.length>=2&&58===a.charCodeAt(1)){const e=a.charCodeAt(0);e>=65&&e<=90&&(a=`${String.fromCharCode(e+32)}:${a.substr(2)}`)}r+=n(a,!0,!1)}return o&&(r+="?",r+=n(o,!1,!1)),c&&(r+="#",r+=t?c:m(c,!1,!1)),r}function A(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+A(e.substr(3)):e}}const T=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function R(e){return e.match(T)?e.replace(T,(e=>A(e))):e}var E=n(470);const k=E.posix||E,x="/";var $;!function(e){e.joinPath=function(e,...t){return e.with({path:k.join(e.path,...t)})},e.resolvePath=function(e,...t){let n=e.path,r=!1;n[0]!==x&&(n=x+n,r=!0);let i=k.resolve(n,...t);return r&&i[0]===x&&!e.authority&&(i=i.substring(1)),e.with({path:i})},e.dirname=function(e){if(0===e.path.length||e.path===x)return e;let t=k.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)&&(t=""),e.with({path:t})},e.basename=function(e){return k.basename(e.path)},e.extname=function(e){return k.extname(e.path)}}($||($={}))})(),i=s})();const{URI:s,Utils:a}=i}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4053.4945facc348478fd59f4.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4053.4945facc348478fd59f4.js deleted file mode 100644 index 1122a6394ada9c5817ccf14b316bc8135a9ee7c2..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4053.4945facc348478fd59f4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4053],{34053:(t,a,r)=>{r.r(a);r.d(a,{troff:()=>i});var n={};function e(t){if(t.eatSpace())return null;var a=t.sol();var r=t.next();if(r==="\\"){if(t.match("fB")||t.match("fR")||t.match("fI")||t.match("u")||t.match("d")||t.match("%")||t.match("&")){return"string"}if(t.match("m[")){t.skipTo("]");t.next();return"string"}if(t.match("s+")||t.match("s-")){t.eatWhile(/[\d-]/);return"string"}if(t.match("(")||t.match("*(")){t.eatWhile(/[\w-]/);return"string"}return"string"}if(a&&(r==="."||r==="'")){if(t.eat("\\")&&t.eat('"')){t.skipToEnd();return"comment"}}if(a&&r==="."){if(t.match("B ")||t.match("I ")||t.match("R ")){return"attribute"}if(t.match("TH ")||t.match("SH ")||t.match("SS ")||t.match("HP ")){t.skipToEnd();return"quote"}if(t.match(/[A-Z]/)&&t.match(/[A-Z]/)||t.match(/[a-z]/)&&t.match(/[a-z]/)){return"attribute"}}t.eatWhile(/[\w-]/);var e=t.current();return n.hasOwnProperty(e)?n[e]:null}function c(t,a){return(a.tokens[0]||e)(t,a)}const i={name:"troff",startState:function(){return{tokens:[]}},token:function(t,a){return c(t,a)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4068.9cc41f46f729f2c4369b.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4068.9cc41f46f729f2c4369b.js deleted file mode 100644 index 32791b57a37a6e38859c1eb71ce43ab033186822..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4068.9cc41f46f729f2c4369b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4068],{34068:(e,r,a)=>{a.r(r);a.d(r,{mbox:()=>v});var t=["From","Sender","Reply-To","To","Cc","Bcc","Message-ID","In-Reply-To","References","Resent-From","Resent-Sender","Resent-To","Resent-Cc","Resent-Bcc","Resent-Message-ID","Return-Path","Received"];var n=["Date","Subject","Comments","Keywords","Resent-Date"];var i=/^[ \t]/;var s=/^From /;var u=new RegExp("^("+t.join("|")+"): ");var o=new RegExp("^("+n.join("|")+"): ");var l=/^[^:]+:/;var c=/^[^ ]+@[^ ]+/;var d=/^.*?(?=[^ ]+?@[^ ]+)/;var m=/^<.*?>/;var f=/^.*?(?=<.*>)/;function p(e){if(e==="Subject")return"header";return"string"}function h(e,r){if(e.sol()){r.inSeparator=false;if(r.inHeader&&e.match(i)){return null}else{r.inHeader=false;r.header=null}if(e.match(s)){r.inHeaders=true;r.inSeparator=true;return"atom"}var a;var t=false;if((a=e.match(o))||(t=true)&&(a=e.match(u))){r.inHeaders=true;r.inHeader=true;r.emailPermitted=t;r.header=a[1];return"atom"}if(r.inHeaders&&(a=e.match(l))){r.inHeader=true;r.emailPermitted=true;r.header=a[1];return"atom"}r.inHeaders=false;e.skipToEnd();return null}if(r.inSeparator){if(e.match(c))return"link";if(e.match(d))return"atom";e.skipToEnd();return"atom"}if(r.inHeader){var n=p(r.header);if(r.emailPermitted){if(e.match(m))return n+" link";if(e.match(f))return n}e.skipToEnd();return n}e.skipToEnd();return null}const v={name:"mbox",startState:function(){return{inSeparator:false,inHeader:false,emailPermitted:false,header:null,inHeaders:false}},token:h,blankLine:function(e){e.inHeaders=e.inSeparator=e.inHeader=false},languageData:{autocomplete:t.concat(n)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4076.b4d803d8bf1bd6c97854.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4076.b4d803d8bf1bd6c97854.js deleted file mode 100644 index 50f75b83d84d45226ec0f029004cc5e327301e52..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4076.b4d803d8bf1bd6c97854.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4076],{24076:(e,n,t)=>{t.r(n);t.d(n,{dylan:()=>k});function i(e,n){for(var t=0;t",symbolGlobal:"\\*"+o+"\\*",symbolConstant:"\\$"+o};var s={symbolKeyword:"atom",symbolClass:"tag",symbolGlobal:"variableName.standard",symbolConstant:"variableName.constant"};for(var u in f)if(f.hasOwnProperty(u))f[u]=new RegExp("^"+f[u]);f["keyword"]=[/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];var c={};c["keyword"]="keyword";c["definition"]="def";c["simpleDefinition"]="def";c["signalingCalls"]="builtin";var m={};var p={};i(["keyword","definition","simpleDefinition","signalingCalls"],(function(e){i(a[e],(function(n){m[n]=e;p[n]=c[e]}))}));function d(e,n,t){n.tokenize=t;return t(e,n)}function b(e,n){var t=e.peek();if(t=="'"||t=='"'){e.next();return d(e,n,y(t,"string"))}else if(t=="/"){e.next();if(e.eat("*")){return d(e,n,h)}else if(e.eat("/")){e.skipToEnd();return"comment"}e.backUp(1)}else if(/[+\-\d\.]/.test(t)){if(e.match(/^[+-]?[0-9]*\.[0-9]*([esdx][+-]?[0-9]+)?/i)||e.match(/^[+-]?[0-9]+([esdx][+-]?[0-9]+)/i)||e.match(/^[+-]?\d+/)){return"number"}}else if(t=="#"){e.next();t=e.peek();if(t=='"'){e.next();return d(e,n,y('"',"string"))}else if(t=="b"){e.next();e.eatWhile(/[01]/);return"number"}else if(t=="x"){e.next();e.eatWhile(/[\da-f]/i);return"number"}else if(t=="o"){e.next();e.eatWhile(/[0-7]/);return"number"}else if(t=="#"){e.next();return"punctuation"}else if(t=="["||t=="("){e.next();return"bracket"}else if(e.match(/f|t|all-keys|include|key|next|rest/i)){return"atom"}else{e.eatWhile(/[-a-zA-Z]/);return"error"}}else if(t=="~"){e.next();t=e.peek();if(t=="="){e.next();t=e.peek();if(t=="="){e.next();return"operator"}return"operator"}return"operator"}else if(t==":"){e.next();t=e.peek();if(t=="="){e.next();return"operator"}else if(t==":"){e.next();return"punctuation"}}else if("[](){}".indexOf(t)!=-1){e.next();return"bracket"}else if(".,".indexOf(t)!=-1){e.next();return"punctuation"}else if(e.match("end")){return"keyword"}for(var i in f){if(f.hasOwnProperty(i)){var a=f[i];if(a instanceof Array&&r(a,(function(n){return e.match(n)}))||e.match(a))return s[i]}}if(/[+\-*\/^=<>&|]/.test(t)){e.next();return"operator"}if(e.match("define")){return"def"}else{e.eatWhile(/[\w\-]/);if(m.hasOwnProperty(e.current())){return p[e.current()]}else if(e.current().match(l)){return"variable"}else{e.next();return"variableName.standard"}}}function h(e,n){var t=false,i=false,r=0,a;while(a=e.next()){if(a=="/"&&t){if(r>0){r--}else{n.tokenize=b;break}}else if(a=="*"&&i){r++}t=a=="*";i=a=="/"}return"comment"}function y(e,n){return function(t,i){var r=false,a,o=false;while((a=t.next())!=null){if(a==e&&!r){o=true;break}r=!r&&a=="\\"}if(o||!r){i.tokenize=b}return n}}const k={name:"dylan",startState:function(){return{tokenize:b,currentIndent:0}},token:function(e,n){if(e.eatSpace())return null;var t=n.tokenize(e,n);return t},languageData:{commentTokens:{block:{open:"/*",close:"*/"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4090.2a98aa0f94d11a8709c5.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4090.2a98aa0f94d11a8709c5.js deleted file mode 100644 index c4f6f154d3f0c2963c8ca40e8ab695df0a7d6c07..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4090.2a98aa0f94d11a8709c5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4090],{63380:(t,e,r)=>{Object.defineProperty(e,"__esModule",{value:true});e.AbstractOutputJax=void 0;var i=r(34981);var n=r(43899);var o=function(){function t(t){if(t===void 0){t={}}this.adaptor=null;var e=this.constructor;this.options=(0,i.userOptions)((0,i.defaultOptions)({},e.OPTIONS),t);this.postFilters=new n.FunctionList}Object.defineProperty(t.prototype,"name",{get:function(){return this.constructor.NAME},enumerable:false,configurable:true});t.prototype.setAdaptor=function(t){this.adaptor=t};t.prototype.initialize=function(){};t.prototype.reset=function(){var t=[];for(var e=0;e{Object.defineProperty(e,"__esModule",{value:true});e.AbstractWrapper=void 0;var r=function(){function t(t,e){this.factory=t;this.node=e}Object.defineProperty(t.prototype,"kind",{get:function(){return this.node.kind},enumerable:false,configurable:true});t.prototype.wrap=function(t){return this.factory.wrap(t)};return t}();e.AbstractWrapper=r},49294:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CHTML=void 0;var h=r(12222);var c=r(14454);var u=r(59550);var f=r(60854);var p=r(1673);var d=s(r(86810));var y=r(41278);var v=function(t){i(e,t);function e(e){if(e===void 0){e=null}var r=t.call(this,e,u.CHTMLWrapperFactory,p.TeXFont)||this;r.chtmlStyles=null;r.font.adaptiveCSS(r.options.adaptiveCSS);r.wrapperUsage=new f.Usage;return r}e.prototype.escaped=function(t,e){this.setDocument(e);return this.html("span",{},[this.text(t.math)])};e.prototype.styleSheet=function(r){if(this.chtmlStyles){if(this.options.adaptiveCSS){var i=new c.CssStyles;this.addWrapperStyles(i);this.updateFontStyles(i);this.adaptor.insertRules(this.chtmlStyles,i.getStyleRules())}return this.chtmlStyles}var n=this.chtmlStyles=t.prototype.styleSheet.call(this,r);this.adaptor.setAttribute(n,"id",e.STYLESHEETID);this.wrapperUsage.update();return n};e.prototype.updateFontStyles=function(t){t.addStyles(this.font.updateStyles({}))};e.prototype.addWrapperStyles=function(e){var r,i;if(!this.options.adaptiveCSS){t.prototype.addWrapperStyles.call(this,e);return}try{for(var n=l(this.wrapperUsage.update()),o=n.next();!o.done;o=n.next()){var a=o.value;var s=this.factory.getNodeClass(a);s&&this.addClassStyles(s,e)}}catch(h){r={error:h}}finally{try{if(o&&!o.done&&(i=n.return))i.call(n)}finally{if(r)throw r.error}}};e.prototype.addClassStyles=function(e,r){var i;var n=e;if(n.autoStyle&&n.kind!=="unknown"){r.addStyles((i={},i["mjx-"+n.kind]={display:"inline-block","text-align":"left"},i))}this.wrapperUsage.add(n.kind);t.prototype.addClassStyles.call(this,e,r)};e.prototype.processMath=function(t,e){this.factory.wrap(t).toCHTML(e)};e.prototype.clearCache=function(){this.cssStyles.clear();this.font.clearCache();this.wrapperUsage.clear();this.chtmlStyles=null};e.prototype.reset=function(){this.clearCache()};e.prototype.unknownText=function(t,e,r){if(r===void 0){r=null}var i={};var n=100/this.math.metrics.scale;if(n!==100){i["font-size"]=this.fixed(n,1)+"%";i.padding=d.em(75/n)+" 0 "+d.em(20/n)+" 0"}if(e!=="-explicitFont"){var o=(0,y.unicodeChars)(t);if(o.length!==1||o[0]<119808||o[0]>120831){this.cssFontStyles(this.font.getCssFont(e),i)}}if(r!==null){var a=this.math.metrics;i.width=Math.round(r*a.em*a.scale)+"px"}return this.html("mjx-utext",{variant:e,style:i},[this.text(t)])};e.prototype.measureTextNode=function(t){var e=this.adaptor;var r=e.clone(t);e.setStyle(r,"font-family",e.getStyle(r,"font-family").replace(/MJXZERO, /g,""));var i={position:"absolute","white-space":"nowrap"};var n=this.html("mjx-measure-text",{style:i},[r]);e.append(e.parent(this.math.start.node),this.container);e.append(this.container,n);var o=e.nodeSize(r,this.math.metrics.em)[0]/this.math.metrics.scale;e.remove(this.container);e.remove(n);return{w:o,h:.75,d:.2}};e.NAME="CHTML";e.OPTIONS=n(n({},h.CommonOutputJax.OPTIONS),{adaptiveCSS:true,matchFontHeight:true});e.commonStyles={'mjx-container[jax="CHTML"]':{"line-height":0},'mjx-container [space="1"]':{"margin-left":".111em"},'mjx-container [space="2"]':{"margin-left":".167em"},'mjx-container [space="3"]':{"margin-left":".222em"},'mjx-container [space="4"]':{"margin-left":".278em"},'mjx-container [space="5"]':{"margin-left":".333em"},'mjx-container [rspace="1"]':{"margin-right":".111em"},'mjx-container [rspace="2"]':{"margin-right":".167em"},'mjx-container [rspace="3"]':{"margin-right":".222em"},'mjx-container [rspace="4"]':{"margin-right":".278em"},'mjx-container [rspace="5"]':{"margin-right":".333em"},'mjx-container [size="s"]':{"font-size":"70.7%"},'mjx-container [size="ss"]':{"font-size":"50%"},'mjx-container [size="Tn"]':{"font-size":"60%"},'mjx-container [size="sm"]':{"font-size":"85%"},'mjx-container [size="lg"]':{"font-size":"120%"},'mjx-container [size="Lg"]':{"font-size":"144%"},'mjx-container [size="LG"]':{"font-size":"173%"},'mjx-container [size="hg"]':{"font-size":"207%"},'mjx-container [size="HG"]':{"font-size":"249%"},'mjx-container [width="full"]':{width:"100%"},"mjx-box":{display:"inline-block"},"mjx-block":{display:"block"},"mjx-itable":{display:"inline-table"},"mjx-row":{display:"table-row"},"mjx-row > *":{display:"table-cell"},"mjx-mtext":{display:"inline-block"},"mjx-mstyle":{display:"inline-block"},"mjx-merror":{display:"inline-block",color:"red","background-color":"yellow"},"mjx-mphantom":{visibility:"hidden"},"_::-webkit-full-page-media, _:future, :root mjx-container":{"will-change":"opacity"}};e.STYLESHEETID="MJX-CHTML-styles";return e}(h.CommonOutputJax);e.CHTML=v},85475:function(t,e,r){var i=this&&this.__createBinding||(Object.create?function(t,e,r,i){if(i===undefined)i=r;var n=Object.getOwnPropertyDescriptor(e,r);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[r]}}}Object.defineProperty(t,i,n)}:function(t,e,r,i){if(i===undefined)i=r;t[i]=e[r]});var n=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:true,value:e})}:function(t,e){t["default"]=e});var o=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)if(r!=="default"&&Object.prototype.hasOwnProperty.call(t,r))i(e,t,r);n(e,t);return e};var a=this&&this.__exportStar||function(t,e){for(var r in t)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r))i(e,t,r)};var s=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.Arrow=e.DiagonalArrow=e.DiagonalStrike=e.Border2=e.Border=e.RenderElement=void 0;var l=o(r(37626));a(r(37626),e);var h=function(t,e){if(e===void 0){e=""}return function(r,i){var n=r.adjustBorder(r.html("mjx-"+t));if(e){var o=r.getOffset(e);if(r.thickness!==l.THICKNESS||o){var a="translate".concat(e,"(").concat(r.em(r.thickness/2-o),")");r.adaptor.setStyle(n,"transform",a)}}r.adaptor.append(r.chtml,n)}};e.RenderElement=h;var c=function(t){return l.CommonBorder((function(e,r){e.adaptor.setStyle(r,"border-"+t,e.em(e.thickness)+" solid")}))(t)};e.Border=c;var u=function(t,e,r){return l.CommonBorder2((function(t,i){var n=t.em(t.thickness)+" solid";t.adaptor.setStyle(i,"border-"+e,n);t.adaptor.setStyle(i,"border-"+r,n)}))(t,e,r)};e.Border2=u;var f=function(t,e){return l.CommonDiagonalStrike((function(t){return function(r,i){var n=r.getBBox(),o=n.w,a=n.h,l=n.d;var h=s(r.getArgMod(o,a+l),2),c=h[0],u=h[1];var f=e*r.thickness/2;var p=r.adjustBorder(r.html(t,{style:{width:r.em(u),transform:"rotate("+r.fixed(-e*c)+"rad) translateY("+f+"em)"}}));r.adaptor.append(r.chtml,p)}}))(t)};e.DiagonalStrike=f;var p=function(t){return l.CommonDiagonalArrow((function(t,e){t.adaptor.append(t.chtml,e)}))(t)};e.DiagonalArrow=p;var d=function(t){return l.CommonArrow((function(t,e){t.adaptor.append(t.chtml,e)}))(t)};e.Arrow=d},44614:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__createBinding||(Object.create?function(t,e,r,i){if(i===undefined)i=r;var n=Object.getOwnPropertyDescriptor(e,r);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[r]}}}Object.defineProperty(t,i,n)}:function(t,e,r,i){if(i===undefined)i=r;t[i]=e[r]});var o=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:true,value:e})}:function(t,e){t["default"]=e});var a=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)if(r!=="default"&&Object.prototype.hasOwnProperty.call(t,r))n(e,t,r);o(e,t);return e};var s=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var l=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var h;Object.defineProperty(e,"__esModule",{value:true});e.CHTMLWrapper=e.SPACE=e.FONTSIZE=void 0;var c=a(r(86810));var u=r(85677);var f=r(58340);e.FONTSIZE={"70.7%":"s","70%":"s","50%":"ss","60%":"Tn","85%":"sm","120%":"lg","144%":"Lg","173%":"LG","207%":"hg","249%":"HG"};e.SPACE=(h={},h[c.em(2/18)]="1",h[c.em(3/18)]="2",h[c.em(4/18)]="3",h[c.em(5/18)]="4",h[c.em(6/18)]="5",h);var p=function(t){i(r,t);function r(){var e=t!==null&&t.apply(this,arguments)||this;e.chtml=null;return e}r.prototype.toCHTML=function(t){var e,r;var i=this.standardCHTMLnode(t);try{for(var n=s(this.childNodes),o=n.next();!o.done;o=n.next()){var a=o.value;a.toCHTML(i)}}catch(l){e={error:l}}finally{try{if(o&&!o.done&&(r=n.return))r.call(n)}finally{if(e)throw e.error}}};r.prototype.standardCHTMLnode=function(t){this.markUsed();var e=this.createCHTMLnode(t);this.handleStyles();this.handleVariant();this.handleScale();this.handleColor();this.handleSpace();this.handleAttributes();this.handlePWidth();return e};r.prototype.markUsed=function(){this.jax.wrapperUsage.add(this.kind)};r.prototype.createCHTMLnode=function(t){var e=this.node.attributes.get("href");if(e){t=this.adaptor.append(t,this.html("a",{href:e}))}this.chtml=this.adaptor.append(t,this.html("mjx-"+this.node.kind));return this.chtml};r.prototype.handleStyles=function(){if(!this.styles)return;var t=this.styles.cssText;if(t){this.adaptor.setAttribute(this.chtml,"style",t);var e=this.styles.get("font-family");if(e){this.adaptor.setStyle(this.chtml,"font-family","MJXZERO, "+e)}}};r.prototype.handleVariant=function(){if(this.node.isToken&&this.variant!=="-explicitFont"){this.adaptor.setAttribute(this.chtml,"class",(this.font.getVariant(this.variant)||this.font.getVariant("normal")).classes)}};r.prototype.handleScale=function(){this.setScale(this.chtml,this.bbox.rscale)};r.prototype.setScale=function(t,r){var i=Math.abs(r-1)<.001?1:r;if(t&&i!==1){var n=this.percent(i);if(e.FONTSIZE[n]){this.adaptor.setAttribute(t,"size",e.FONTSIZE[n])}else{this.adaptor.setStyle(t,"fontSize",n)}}return t};r.prototype.handleSpace=function(){var t,r;try{for(var i=s([[this.bbox.L,"space","marginLeft"],[this.bbox.R,"rspace","marginRight"]]),n=i.next();!n.done;n=i.next()){var o=n.value;var a=l(o,3),h=a[0],c=a[1],u=a[2];if(h){var f=this.em(h);if(e.SPACE[f]){this.adaptor.setAttribute(this.chtml,c,e.SPACE[f])}else{this.adaptor.setStyle(this.chtml,u,f)}}}}catch(p){t={error:p}}finally{try{if(n&&!n.done&&(r=i.return))r.call(i)}finally{if(t)throw t.error}}};r.prototype.handleColor=function(){var t=this.node.attributes;var e=t.getExplicit("mathcolor");var r=t.getExplicit("color");var i=t.getExplicit("mathbackground");var n=t.getExplicit("background");if(e||r){this.adaptor.setStyle(this.chtml,"color",e||r)}if(i||n){this.adaptor.setStyle(this.chtml,"backgroundColor",i||n)}};r.prototype.handleAttributes=function(){var t,e,i,n;var o=this.node.attributes;var a=o.getAllDefaults();var l=r.skipAttributes;try{for(var h=s(o.getExplicitNames()),c=h.next();!c.done;c=h.next()){var u=c.value;if(l[u]===false||!(u in a)&&!l[u]&&!this.adaptor.hasAttribute(this.chtml,u)){this.adaptor.setAttribute(this.chtml,u,o.getExplicit(u))}}}catch(v){t={error:v}}finally{try{if(c&&!c.done&&(e=h.return))e.call(h)}finally{if(t)throw t.error}}if(o.get("class")){var f=o.get("class").trim().split(/ +/);try{for(var p=s(f),d=p.next();!d.done;d=p.next()){var y=d.value;this.adaptor.addClass(this.chtml,y)}}catch(m){i={error:m}}finally{try{if(d&&!d.done&&(n=p.return))n.call(p)}finally{if(i)throw i.error}}}};r.prototype.handlePWidth=function(){if(this.bbox.pwidth){if(this.bbox.pwidth===f.BBox.fullWidth){this.adaptor.setAttribute(this.chtml,"width","full")}else{this.adaptor.setStyle(this.chtml,"width",this.bbox.pwidth)}}};r.prototype.setIndent=function(t,e,r){var i=this.adaptor;if(e==="center"||e==="left"){var n=this.getBBox().L;i.setStyle(t,"margin-left",this.em(r+n))}if(e==="center"||e==="right"){var o=this.getBBox().R;i.setStyle(t,"margin-right",this.em(-r+o))}};r.prototype.drawBBox=function(){var t=this.getBBox(),e=t.w,r=t.h,i=t.d,n=t.R;var o=this.html("mjx-box",{style:{opacity:.25,"margin-left":this.em(-e-n)}},[this.html("mjx-box",{style:{height:this.em(r),width:this.em(e),"background-color":"red"}}),this.html("mjx-box",{style:{height:this.em(i),width:this.em(e),"margin-left":this.em(-e),"vertical-align":this.em(-i),"background-color":"green"}})]);var a=this.chtml||this.parent.chtml;var s=this.adaptor.getAttribute(a,"size");if(s){this.adaptor.setAttribute(o,"size",s)}var l=this.adaptor.getStyle(a,"fontSize");if(l){this.adaptor.setStyle(o,"fontSize",l)}this.adaptor.append(this.adaptor.parent(a),o);this.adaptor.setStyle(a,"backgroundColor","#FFEE00")};r.prototype.html=function(t,e,r){if(e===void 0){e={}}if(r===void 0){r=[]}return this.jax.html(t,e,r)};r.prototype.text=function(t){return this.jax.text(t)};r.prototype.char=function(t){return this.font.charSelector(t).substr(1)};r.kind="unknown";r.autoStyle=true;return r}(u.CommonWrapper);e.CHTMLWrapper=p},59550:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLWrapperFactory=void 0;var n=r(36483);var o=r(3917);var a=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.defaultNodes=o.CHTMLWrappers;return e}(n.CommonWrapperFactory);e.CHTMLWrapperFactory=a},3917:(t,e,r)=>{var i;Object.defineProperty(e,"__esModule",{value:true});e.CHTMLWrappers=void 0;var n=r(44614);var o=r(64474);var a=r(2742);var s=r(20480);var l=r(19255);var h=r(3428);var c=r(79150);var u=r(91007);var f=r(38655);var p=r(2696);var d=r(34021);var y=r(91122);var v=r(79901);var m=r(55715);var b=r(55501);var g=r(21279);var x=r(49821);var w=r(84642);var _=r(46605);var M=r(42731);var j=r(71937);var C=r(1835);var S=r(96672);var O=r(29107);var T=r(61118);var B=r(13219);e.CHTMLWrappers=(i={},i[o.CHTMLmath.kind]=o.CHTMLmath,i[d.CHTMLmrow.kind]=d.CHTMLmrow,i[d.CHTMLinferredMrow.kind]=d.CHTMLinferredMrow,i[a.CHTMLmi.kind]=a.CHTMLmi,i[s.CHTMLmo.kind]=s.CHTMLmo,i[l.CHTMLmn.kind]=l.CHTMLmn,i[h.CHTMLms.kind]=h.CHTMLms,i[c.CHTMLmtext.kind]=c.CHTMLmtext,i[u.CHTMLmspace.kind]=u.CHTMLmspace,i[f.CHTMLmpadded.kind]=f.CHTMLmpadded,i[p.CHTMLmenclose.kind]=p.CHTMLmenclose,i[v.CHTMLmfrac.kind]=v.CHTMLmfrac,i[m.CHTMLmsqrt.kind]=m.CHTMLmsqrt,i[b.CHTMLmroot.kind]=b.CHTMLmroot,i[g.CHTMLmsub.kind]=g.CHTMLmsub,i[g.CHTMLmsup.kind]=g.CHTMLmsup,i[g.CHTMLmsubsup.kind]=g.CHTMLmsubsup,i[x.CHTMLmunder.kind]=x.CHTMLmunder,i[x.CHTMLmover.kind]=x.CHTMLmover,i[x.CHTMLmunderover.kind]=x.CHTMLmunderover,i[w.CHTMLmmultiscripts.kind]=w.CHTMLmmultiscripts,i[y.CHTMLmfenced.kind]=y.CHTMLmfenced,i[_.CHTMLmtable.kind]=_.CHTMLmtable,i[M.CHTMLmtr.kind]=M.CHTMLmtr,i[M.CHTMLmlabeledtr.kind]=M.CHTMLmlabeledtr,i[j.CHTMLmtd.kind]=j.CHTMLmtd,i[C.CHTMLmaction.kind]=C.CHTMLmaction,i[S.CHTMLmglyph.kind]=S.CHTMLmglyph,i[O.CHTMLsemantics.kind]=O.CHTMLsemantics,i[O.CHTMLannotation.kind]=O.CHTMLannotation,i[O.CHTMLannotationXML.kind]=O.CHTMLannotationXML,i[O.CHTMLxml.kind]=O.CHTMLxml,i[T.CHTMLTeXAtom.kind]=T.CHTMLTeXAtom,i[B.CHTMLTextNode.kind]=B.CHTMLTextNode,i[n.CHTMLWrapper.kind]=n.CHTMLWrapper,i)},61118:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLTeXAtom=void 0;var n=r(44614);var o=r(65735);var a=r(54517);var s=r(80747);var l=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(e){t.prototype.toCHTML.call(this,e);this.adaptor.setAttribute(this.chtml,"texclass",s.TEXCLASSNAMES[this.node.texClass]);if(this.node.texClass===s.TEXCLASS.VCENTER){var r=this.childNodes[0].getBBox();var i=r.h,n=r.d;var o=this.font.params.axis_height;var a=(i+n)/2+o-i;this.adaptor.setStyle(this.chtml,"verticalAlign",this.em(a))}};e.kind=a.TeXAtom.prototype.kind;return e}((0,o.CommonTeXAtomMixin)(n.CHTMLWrapper));e.CHTMLTeXAtom=l},13219:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLTextNode=void 0;var o=r(80747);var a=r(44614);var s=r(87120);var l=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e,r;this.markUsed();var i=this.adaptor;var o=this.parent.variant;var a=this.node.getText();if(a.length===0)return;if(o==="-explicitFont"){i.append(t,this.jax.unknownText(a,o,this.getBBox().w))}else{var s=this.remappedText(a,o);try{for(var l=n(s),h=l.next();!h.done;h=l.next()){var c=h.value;var u=this.getVariantChar(o,c)[3];var f=u.f?" TEX-"+u.f:"";var p=u.unknown?this.jax.unknownText(String.fromCodePoint(c),o):this.html("mjx-c",{class:this.char(c)+f});i.append(t,p);!u.unknown&&this.font.charUsage.add([o,c])}}catch(d){e={error:d}}finally{try{if(h&&!h.done&&(r=l.return))r.call(l)}finally{if(e)throw e.error}}}};e.kind=o.TextNode.prototype.kind;e.autoStyle=false;e.styles={"mjx-c":{display:"inline-block"},"mjx-utext":{display:"inline-block",padding:".75em 0 .2em 0"}};return e}((0,s.CommonTextNodeMixin)(a.CHTMLWrapper));e.CHTMLTextNode=l},1835:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmaction=void 0;var n=r(44614);var o=r(55210);var a=r(55210);var s=r(36528);var l=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e=this.standardCHTMLnode(t);var r=this.selected;r.toCHTML(e);this.action(this,this.data)};e.prototype.setEventHandler=function(t,e){this.chtml.addEventListener(t,e)};e.kind=s.MmlMaction.prototype.kind;e.styles={"mjx-maction":{position:"relative"},"mjx-maction > mjx-tool":{display:"none",position:"absolute",bottom:0,right:0,width:0,height:0,"z-index":500},"mjx-tool > mjx-tip":{display:"inline-block",padding:".2em",border:"1px solid #888","font-size":"70%","background-color":"#F8F8F8",color:"black","box-shadow":"2px 2px 5px #AAAAAA"},"mjx-maction[toggle]":{cursor:"pointer"},"mjx-status":{display:"block",position:"fixed",left:"1em",bottom:"1em","min-width":"25%",padding:".2em .4em",border:"1px solid #888","font-size":"90%","background-color":"#F8F8F8",color:"black"}};e.actions=new Map([["toggle",[function(t,e){t.adaptor.setAttribute(t.chtml,"toggle",t.node.attributes.get("selection"));var r=t.factory.jax.math;var i=t.factory.jax.document;var n=t.node;t.setEventHandler("click",(function(t){if(!r.end.node){r.start.node=r.end.node=r.typesetRoot;r.start.n=r.end.n=0}n.nextToggleSelection();r.rerender(i);t.stopPropagation()}))},{}]],["tooltip",[function(t,e){var r=t.childNodes[1];if(!r)return;if(r.node.isKind("mtext")){var i=r.node.getText();t.adaptor.setAttribute(t.chtml,"title",i)}else{var n=t.adaptor;var o=n.append(t.chtml,t.html("mjx-tool",{style:{bottom:t.em(-t.dy),right:t.em(-t.dx)}},[t.html("mjx-tip")]));r.toCHTML(n.firstChild(o));t.setEventHandler("mouseover",(function(r){e.stopTimers(t,e);var i=setTimeout((function(){return n.setStyle(o,"display","block")}),e.postDelay);e.hoverTimer.set(t,i);r.stopPropagation()}));t.setEventHandler("mouseout",(function(r){e.stopTimers(t,e);var i=setTimeout((function(){return n.setStyle(o,"display","")}),e.clearDelay);e.clearTimer.set(t,i);r.stopPropagation()}))}},a.TooltipData]],["statusline",[function(t,e){var r=t.childNodes[1];if(!r)return;if(r.node.isKind("mtext")){var i=t.adaptor;var n=r.node.getText();i.setAttribute(t.chtml,"statusline",n);t.setEventHandler("mouseover",(function(r){if(e.status===null){var o=i.body(i.document);e.status=i.append(o,t.html("mjx-status",{},[t.text(n)]))}r.stopPropagation()}));t.setEventHandler("mouseout",(function(t){if(e.status){i.remove(e.status);e.status=null}t.stopPropagation()}))}},{status:null}]]]);return e}((0,o.CommonMactionMixin)(n.CHTMLWrapper));e.CHTMLmaction=l},64474:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmath=void 0;var o=r(44614);var a=r(67493);var s=r(31859);var l=r(58340);var h=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(e){t.prototype.toCHTML.call(this,e);var r=this.chtml;var i=this.adaptor;var n=this.node.attributes.get("display")==="block";if(n){i.setAttribute(r,"display","true");i.setAttribute(e,"display","true");this.handleDisplay(e)}else{this.handleInline(e)}i.addClass(r,"MJX-TEX")};e.prototype.handleDisplay=function(t){var e=this.adaptor;var r=n(this.getAlignShift(),2),i=r[0],o=r[1];if(i!=="center"){e.setAttribute(t,"justify",i)}if(this.bbox.pwidth===l.BBox.fullWidth){e.setAttribute(t,"width","full");if(this.jax.table){var a=this.jax.table.getOuterBBox(),s=a.L,h=a.w,c=a.R;if(i==="right"){c=Math.max(c||-o,-o)}else if(i==="left"){s=Math.max(s||o,o)}else if(i==="center"){h+=2*Math.abs(o)}var u=this.em(Math.max(0,s+h+c));e.setStyle(t,"min-width",u);e.setStyle(this.jax.table.chtml,"min-width",u)}}else{this.setIndent(this.chtml,i,o)}};e.prototype.handleInline=function(t){var e=this.adaptor;var r=e.getStyle(this.chtml,"margin-right");if(r){e.setStyle(this.chtml,"margin-right","");e.setStyle(t,"margin-right",r);e.setStyle(t,"width","0")}};e.prototype.setChildPWidths=function(e,r,i){if(r===void 0){r=null}if(i===void 0){i=true}return this.parent?t.prototype.setChildPWidths.call(this,e,r,i):false};e.kind=s.MmlMath.prototype.kind;e.styles={"mjx-math":{"line-height":0,"text-align":"left","text-indent":0,"font-style":"normal","font-weight":"normal","font-size":"100%","font-size-adjust":"none","letter-spacing":"normal","border-collapse":"collapse","word-wrap":"normal","word-spacing":"normal","white-space":"nowrap",direction:"ltr",padding:"1px 0"},'mjx-container[jax="CHTML"][display="true"]':{display:"block","text-align":"center",margin:"1em 0"},'mjx-container[jax="CHTML"][display="true"][width="full"]':{display:"flex"},'mjx-container[jax="CHTML"][display="true"] mjx-math':{padding:0},'mjx-container[jax="CHTML"][justify="left"]':{"text-align":"left"},'mjx-container[jax="CHTML"][justify="right"]':{"text-align":"right"}};return e}((0,a.CommonMathMixin)(o.CHTMLWrapper));e.CHTMLmath=h},2696:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__createBinding||(Object.create?function(t,e,r,i){if(i===undefined)i=r;var n=Object.getOwnPropertyDescriptor(e,r);if(!n||("get"in n?!e.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return e[r]}}}Object.defineProperty(t,i,n)}:function(t,e,r,i){if(i===undefined)i=r;t[i]=e[r]});var o=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:true,value:e})}:function(t,e){t["default"]=e});var a=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)if(r!=="default"&&Object.prototype.hasOwnProperty.call(t,r))n(e,t,r);o(e,t);return e};var s=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var l=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmenclose=void 0;var h=r(44614);var c=r(9503);var u=a(r(85475));var f=r(38085);var p=r(86810);function d(t,e){return Math.atan2(t,e).toFixed(3).replace(/\.?0+$/,"")}var y=d(u.ARROWDX,u.ARROWY);var v=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e,r,i,n;var o=this.adaptor;var a=this.standardCHTMLnode(t);var l=o.append(a,this.html("mjx-box"));if(this.renderChild){this.renderChild(this,l)}else{this.childNodes[0].toCHTML(l)}try{for(var h=s(Object.keys(this.notations)),c=h.next();!c.done;c=h.next()){var f=c.value;var p=this.notations[f];!p.renderChild&&p.renderer(this,l)}}catch(g){e={error:g}}finally{try{if(c&&!c.done&&(r=h.return))r.call(h)}finally{if(e)throw e.error}}var d=this.getPadding();try{for(var y=s(u.sideNames),v=y.next();!v.done;v=y.next()){var m=v.value;var b=u.sideIndex[m];d[b]>0&&o.setStyle(l,"padding-"+m,this.em(d[b]))}}catch(x){i={error:x}}finally{try{if(v&&!v.done&&(n=y.return))n.call(y)}finally{if(i)throw i.error}}};e.prototype.arrow=function(t,e,r,i,n){if(i===void 0){i=""}if(n===void 0){n=0}var o=this.getBBox().w;var a={width:this.em(t)};if(o!==t){a.left=this.em((o-t)/2)}if(e){a.transform="rotate("+this.fixed(e)+"rad)"}var s=this.html("mjx-arrow",{style:a},[this.html("mjx-aline"),this.html("mjx-rthead"),this.html("mjx-rbhead")]);if(r){this.adaptor.append(s,this.html("mjx-lthead"));this.adaptor.append(s,this.html("mjx-lbhead"));this.adaptor.setAttribute(s,"double","true")}this.adjustArrow(s,r);this.moveArrow(s,i,n);return s};e.prototype.adjustArrow=function(t,e){var r=this;var i=this.thickness;var n=this.arrowhead;if(n.x===u.ARROWX&&n.y===u.ARROWY&&n.dx===u.ARROWDX&&i===u.THICKNESS)return;var o=l([i*n.x,i*n.y].map((function(t){return r.em(t)})),2),a=o[0],s=o[1];var h=d(n.dx,n.y);var c=l(this.adaptor.childNodes(t),5),f=c[0],p=c[1],y=c[2],v=c[3],m=c[4];this.adjustHead(p,[s,"0","1px",a],h);this.adjustHead(y,["1px","0",s,a],"-"+h);this.adjustHead(v,[s,a,"1px","0"],"-"+h);this.adjustHead(m,["1px",a,s,"0"],h);this.adjustLine(f,i,n.x,e)};e.prototype.adjustHead=function(t,e,r){if(t){this.adaptor.setStyle(t,"border-width",e.join(" "));this.adaptor.setStyle(t,"transform","skewX("+r+"rad)")}};e.prototype.adjustLine=function(t,e,r,i){this.adaptor.setStyle(t,"borderTop",this.em(e)+" solid");this.adaptor.setStyle(t,"top",this.em(-e/2));this.adaptor.setStyle(t,"right",this.em(e*(r-1)));if(i){this.adaptor.setStyle(t,"left",this.em(e*(r-1)))}};e.prototype.moveArrow=function(t,e,r){if(!r)return;var i=this.adaptor.getStyle(t,"transform");this.adaptor.setStyle(t,"transform","translate".concat(e,"(").concat(this.em(-r),")").concat(i?" "+i:""))};e.prototype.adjustBorder=function(t){if(this.thickness!==u.THICKNESS){this.adaptor.setStyle(t,"borderWidth",this.em(this.thickness))}return t};e.prototype.adjustThickness=function(t){if(this.thickness!==u.THICKNESS){this.adaptor.setStyle(t,"strokeWidth",this.fixed(this.thickness))}return t};e.prototype.fixed=function(t,e){if(e===void 0){e=3}if(Math.abs(t)<6e-4){return"0"}return t.toFixed(e).replace(/\.?0+$/,"")};e.prototype.em=function(e){return t.prototype.em.call(this,e)};e.kind=f.MmlMenclose.prototype.kind;e.styles={"mjx-menclose":{position:"relative"},"mjx-menclose > mjx-dstrike":{display:"inline-block",left:0,top:0,position:"absolute","border-top":u.SOLID,"transform-origin":"top left"},"mjx-menclose > mjx-ustrike":{display:"inline-block",left:0,bottom:0,position:"absolute","border-top":u.SOLID,"transform-origin":"bottom left"},"mjx-menclose > mjx-hstrike":{"border-top":u.SOLID,position:"absolute",left:0,right:0,bottom:"50%",transform:"translateY("+(0,p.em)(u.THICKNESS/2)+")"},"mjx-menclose > mjx-vstrike":{"border-left":u.SOLID,position:"absolute",top:0,bottom:0,right:"50%",transform:"translateX("+(0,p.em)(u.THICKNESS/2)+")"},"mjx-menclose > mjx-rbox":{position:"absolute",top:0,bottom:0,right:0,left:0,border:u.SOLID,"border-radius":(0,p.em)(u.THICKNESS+u.PADDING)},"mjx-menclose > mjx-cbox":{position:"absolute",top:0,bottom:0,right:0,left:0,border:u.SOLID,"border-radius":"50%"},"mjx-menclose > mjx-arrow":{position:"absolute",left:0,bottom:"50%",height:0,width:0},"mjx-menclose > mjx-arrow > *":{display:"block",position:"absolute","transform-origin":"bottom","border-left":(0,p.em)(u.THICKNESS*u.ARROWX)+" solid","border-right":0,"box-sizing":"border-box"},"mjx-menclose > mjx-arrow > mjx-aline":{left:0,top:(0,p.em)(-u.THICKNESS/2),right:(0,p.em)(u.THICKNESS*(u.ARROWX-1)),height:0,"border-top":(0,p.em)(u.THICKNESS)+" solid","border-left":0},"mjx-menclose > mjx-arrow[double] > mjx-aline":{left:(0,p.em)(u.THICKNESS*(u.ARROWX-1)),height:0},"mjx-menclose > mjx-arrow > mjx-rthead":{transform:"skewX("+y+"rad)",right:0,bottom:"-1px","border-bottom":"1px solid transparent","border-top":(0,p.em)(u.THICKNESS*u.ARROWY)+" solid transparent"},"mjx-menclose > mjx-arrow > mjx-rbhead":{transform:"skewX(-"+y+"rad)","transform-origin":"top",right:0,top:"-1px","border-top":"1px solid transparent","border-bottom":(0,p.em)(u.THICKNESS*u.ARROWY)+" solid transparent"},"mjx-menclose > mjx-arrow > mjx-lthead":{transform:"skewX(-"+y+"rad)",left:0,bottom:"-1px","border-left":0,"border-right":(0,p.em)(u.THICKNESS*u.ARROWX)+" solid","border-bottom":"1px solid transparent","border-top":(0,p.em)(u.THICKNESS*u.ARROWY)+" solid transparent"},"mjx-menclose > mjx-arrow > mjx-lbhead":{transform:"skewX("+y+"rad)","transform-origin":"top",left:0,top:"-1px","border-left":0,"border-right":(0,p.em)(u.THICKNESS*u.ARROWX)+" solid","border-top":"1px solid transparent","border-bottom":(0,p.em)(u.THICKNESS*u.ARROWY)+" solid transparent"},"mjx-menclose > dbox":{position:"absolute",top:0,bottom:0,left:(0,p.em)(-1.5*u.PADDING),width:(0,p.em)(3*u.PADDING),border:(0,p.em)(u.THICKNESS)+" solid","border-radius":"50%","clip-path":"inset(0 0 0 "+(0,p.em)(1.5*u.PADDING)+")","box-sizing":"border-box"}};e.notations=new Map([u.Border("top"),u.Border("right"),u.Border("bottom"),u.Border("left"),u.Border2("actuarial","top","right"),u.Border2("madruwb","bottom","right"),u.DiagonalStrike("up",1),u.DiagonalStrike("down",-1),["horizontalstrike",{renderer:u.RenderElement("hstrike","Y"),bbox:function(t){return[0,t.padding,0,t.padding]}}],["verticalstrike",{renderer:u.RenderElement("vstrike","X"),bbox:function(t){return[t.padding,0,t.padding,0]}}],["box",{renderer:function(t,e){t.adaptor.setStyle(e,"border",t.em(t.thickness)+" solid")},bbox:u.fullBBox,border:u.fullBorder,remove:"left right top bottom"}],["roundedbox",{renderer:u.RenderElement("rbox"),bbox:u.fullBBox}],["circle",{renderer:u.RenderElement("cbox"),bbox:u.fullBBox}],["phasorangle",{renderer:function(t,e){var r=t.getBBox(),i=r.h,n=r.d;var o=l(t.getArgMod(1.75*t.padding,i+n),2),a=o[0],s=o[1];var h=t.thickness*Math.sin(a)*.9;t.adaptor.setStyle(e,"border-bottom",t.em(t.thickness)+" solid");var c=t.adjustBorder(t.html("mjx-ustrike",{style:{width:t.em(s),transform:"translateX("+t.em(h)+") rotate("+t.fixed(-a)+"rad)"}}));t.adaptor.append(t.chtml,c)},bbox:function(t){var e=t.padding/2;var r=t.thickness;return[2*e,e,e+r,3*e+r]},border:function(t){return[0,0,t.thickness,0]},remove:"bottom"}],u.Arrow("up"),u.Arrow("down"),u.Arrow("left"),u.Arrow("right"),u.Arrow("updown"),u.Arrow("leftright"),u.DiagonalArrow("updiagonal"),u.DiagonalArrow("northeast"),u.DiagonalArrow("southeast"),u.DiagonalArrow("northwest"),u.DiagonalArrow("southwest"),u.DiagonalArrow("northeastsouthwest"),u.DiagonalArrow("northwestsoutheast"),["longdiv",{renderer:function(t,e){var r=t.adaptor;r.setStyle(e,"border-top",t.em(t.thickness)+" solid");var i=r.append(t.chtml,t.html("dbox"));var n=t.thickness;var o=t.padding;if(n!==u.THICKNESS){r.setStyle(i,"border-width",t.em(n))}if(o!==u.PADDING){r.setStyle(i,"left",t.em(-1.5*o));r.setStyle(i,"width",t.em(3*o));r.setStyle(i,"clip-path","inset(0 0 0 "+t.em(1.5*o)+")")}},bbox:function(t){var e=t.padding;var r=t.thickness;return[e+r,e,e,2*e+r/2]}}],["radical",{renderer:function(t,e){t.msqrt.toCHTML(e);var r=t.sqrtTRBL();t.adaptor.setStyle(t.msqrt.chtml,"margin",r.map((function(e){return t.em(-e)})).join(" "))},init:function(t){t.msqrt=t.createMsqrt(t.childNodes[0])},bbox:function(t){return t.sqrtTRBL()},renderChild:true}]]);return e}((0,c.CommonMencloseMixin)(h.CHTMLWrapper));e.CHTMLmenclose=v},91122:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmfenced=void 0;var n=r(44614);var o=r(36639);var a=r(54453);var s=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e=this.standardCHTMLnode(t);this.mrow.toCHTML(e)};e.kind=a.MmlMfenced.prototype.kind;return e}((0,o.CommonMfencedMixin)(n.CHTMLWrapper));e.CHTMLmfenced=s},79901:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__assign||function(){n=Object.assign||function(t){for(var e,r=1,i=arguments.length;r *":{"font-size":"2000%"},"mjx-dbox":{display:"block","font-size":"5%"},"mjx-num":{display:"block","text-align":"center"},"mjx-den":{display:"block","text-align":"center"},"mjx-mfrac[bevelled] > mjx-num":{display:"inline-block"},"mjx-mfrac[bevelled] > mjx-den":{display:"inline-block"},'mjx-den[align="right"], mjx-num[align="right"]':{"text-align":"right"},'mjx-den[align="left"], mjx-num[align="left"]':{"text-align":"left"},"mjx-nstrut":{display:"inline-block",height:".054em",width:0,"vertical-align":"-.054em"},'mjx-nstrut[type="d"]':{height:".217em","vertical-align":"-.217em"},"mjx-dstrut":{display:"inline-block",height:".505em",width:0},'mjx-dstrut[type="d"]':{height:".726em"},"mjx-line":{display:"block","box-sizing":"border-box","min-height":"1px",height:".06em","border-top":".06em solid",margin:".06em -.1em",overflow:"hidden"},'mjx-line[type="d"]':{margin:".18em -.1em"}};return e}((0,a.CommonMfracMixin)(o.CHTMLWrapper));e.CHTMLmfrac=l},96672:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmglyph=void 0;var n=r(44614);var o=r(28656);var a=r(64906);var s=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e=this.standardCHTMLnode(t);if(this.charWrapper){this.charWrapper.toCHTML(e);return}var r=this.node.attributes.getList("src","alt"),i=r.src,n=r.alt;var o={width:this.em(this.width),height:this.em(this.height)};if(this.valign){o.verticalAlign=this.em(this.valign)}var a=this.html("img",{src:i,style:o,alt:n,title:n});this.adaptor.append(e,a)};e.kind=a.MmlMglyph.prototype.kind;e.styles={"mjx-mglyph > img":{display:"inline-block",border:0,padding:0}};return e}((0,o.CommonMglyphMixin)(n.CHTMLWrapper));e.CHTMLmglyph=s},2742:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmi=void 0;var n=r(44614);var o=r(54073);var a=r(32175);var s=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.kind=a.MmlMi.prototype.kind;return e}((0,o.CommonMiMixin)(n.CHTMLWrapper));e.CHTMLmi=s},84642:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmmultiscripts=void 0;var o=r(21279);var a=r(86539);var s=r(10093);var l=r(41278);var h=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e=this.standardCHTMLnode(t);var r=this.scriptData;var i=this.node.getProperty("scriptalign")||"right left";var o=n((0,l.split)(i+" "+i),2),a=o[0],s=o[1];var h=this.combinePrePost(r.sub,r.psub);var c=this.combinePrePost(r.sup,r.psup);var u=n(this.getUVQ(h,c),2),f=u[0],p=u[1];if(r.numPrescripts){var d=this.addScripts(f,-p,true,r.psub,r.psup,this.firstPrescript,r.numPrescripts);a!=="right"&&this.adaptor.setAttribute(d,"script-align",a)}this.childNodes[0].toCHTML(e);if(r.numScripts){var d=this.addScripts(f,-p,false,r.sub,r.sup,1,r.numScripts);s!=="left"&&this.adaptor.setAttribute(d,"script-align",s)}};e.prototype.addScripts=function(t,e,r,i,n,o,a){var s=this.adaptor;var l=t-n.d+(e-i.h);var h=t<0&&e===0?i.h+t:t;var c=l>0?{style:{height:this.em(l)}}:{};var u=h?{style:{"vertical-align":this.em(h)}}:{};var f=this.html("mjx-row");var p=this.html("mjx-row",c);var d=this.html("mjx-row");var y="mjx-"+(r?"pre":"")+"scripts";var v=o+2*a;while(o mjx-row > mjx-cell":{"text-align":"right"},'[script-align="left"] > mjx-row > mjx-cell':{"text-align":"left"},'[script-align="center"] > mjx-row > mjx-cell':{"text-align":"center"},'[script-align="right"] > mjx-row > mjx-cell':{"text-align":"right"}};return e}((0,a.CommonMmultiscriptsMixin)(o.CHTMLmsubsup));e.CHTMLmmultiscripts=h},19255:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmn=void 0;var n=r(44614);var o=r(53228);var a=r(94318);var s=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.kind=a.MmlMn.prototype.kind;return e}((0,o.CommonMnMixin)(n.CHTMLWrapper));e.CHTMLmn=s},20480:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmo=void 0;var o=r(44614);var a=r(61331);var s=r(38669);var l=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e,r;var i=this.node.attributes;var o=i.get("symmetric")&&this.stretch.dir!==2;var a=this.stretch.dir!==0;if(a&&this.size===null){this.getStretchedVariant([])}var s=this.standardCHTMLnode(t);if(a&&this.size<0){this.stretchHTML(s)}else{if(o||i.get("largeop")){var l=this.em(this.getCenterOffset());if(l!=="0"){this.adaptor.setStyle(s,"verticalAlign",l)}}if(this.node.getProperty("mathaccent")){this.adaptor.setStyle(s,"width","0");this.adaptor.setStyle(s,"margin-left",this.em(this.getAccentOffset()))}try{for(var h=n(this.childNodes),c=h.next();!c.done;c=h.next()){var u=c.value;u.toCHTML(s)}}catch(f){e={error:f}}finally{try{if(c&&!c.done&&(r=h.return))r.call(h)}finally{if(e)throw e.error}}}};e.prototype.stretchHTML=function(t){var e=this.getText().codePointAt(0);this.font.delimUsage.add(e);this.childNodes[0].markUsed();var r=this.stretch;var i=r.stretch;var n=[];if(i[0]){n.push(this.html("mjx-beg",{},[this.html("mjx-c")]))}n.push(this.html("mjx-ext",{},[this.html("mjx-c")]));if(i.length===4){n.push(this.html("mjx-mid",{},[this.html("mjx-c")]),this.html("mjx-ext",{},[this.html("mjx-c")]))}if(i[2]){n.push(this.html("mjx-end",{},[this.html("mjx-c")]))}var o={};var s=this.bbox,l=s.h,h=s.d,c=s.w;if(r.dir===1){n.push(this.html("mjx-mark"));o.height=this.em(l+h);o.verticalAlign=this.em(-h)}else{o.width=this.em(c)}var u=a.DirectionVH[r.dir];var f={class:this.char(r.c||e),style:o};var p=this.html("mjx-stretchy-"+u,f,n);this.adaptor.append(t,p)};e.kind=s.MmlMo.prototype.kind;e.styles={"mjx-stretchy-h":{display:"inline-table",width:"100%"},"mjx-stretchy-h > *":{display:"table-cell",width:0},"mjx-stretchy-h > * > mjx-c":{display:"inline-block",transform:"scalex(1.0000001)"},"mjx-stretchy-h > * > mjx-c::before":{display:"inline-block",width:"initial"},"mjx-stretchy-h > mjx-ext":{"/* IE */ overflow":"hidden","/* others */ overflow":"clip visible",width:"100%"},"mjx-stretchy-h > mjx-ext > mjx-c::before":{transform:"scalex(500)"},"mjx-stretchy-h > mjx-ext > mjx-c":{width:0},"mjx-stretchy-h > mjx-beg > mjx-c":{"margin-right":"-.1em"},"mjx-stretchy-h > mjx-end > mjx-c":{"margin-left":"-.1em"},"mjx-stretchy-v":{display:"inline-block"},"mjx-stretchy-v > *":{display:"block"},"mjx-stretchy-v > mjx-beg":{height:0},"mjx-stretchy-v > mjx-end > mjx-c":{display:"block"},"mjx-stretchy-v > * > mjx-c":{transform:"scaley(1.0000001)","transform-origin":"left center",overflow:"hidden"},"mjx-stretchy-v > mjx-ext":{display:"block",height:"100%","box-sizing":"border-box",border:"0px solid transparent","/* IE */ overflow":"hidden","/* others */ overflow":"visible clip"},"mjx-stretchy-v > mjx-ext > mjx-c::before":{width:"initial","box-sizing":"border-box"},"mjx-stretchy-v > mjx-ext > mjx-c":{transform:"scaleY(500) translateY(.075em)",overflow:"visible"},"mjx-mark":{display:"inline-block",height:"0px"}};return e}((0,a.CommonMoMixin)(o.CHTMLWrapper));e.CHTMLmo=l},38655:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var o=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmpadded=void 0;var a=r(44614);var s=r(95522);var l=r(10900);var h=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e,r;var i=this.standardCHTMLnode(t);var a=[];var s={};var l=n(this.getDimens(),9),h=l[2],c=l[3],u=l[4],f=l[5],p=l[6],d=l[7],y=l[8];if(f){s.width=this.em(h+f)}if(c||u){s.margin=this.em(c)+" 0 "+this.em(u)}if(p+y||d){s.position="relative";var v=this.html("mjx-rbox",{style:{left:this.em(p+y),top:this.em(-d),"max-width":s.width}});if(p+y&&this.childNodes[0].getBBox().pwidth){this.adaptor.setAttribute(v,"width","full");this.adaptor.setStyle(v,"left",this.em(p))}a.push(v)}i=this.adaptor.append(i,this.html("mjx-block",{style:s},a));try{for(var m=o(this.childNodes),b=m.next();!b.done;b=m.next()){var g=b.value;g.toCHTML(a[0]||i)}}catch(x){e={error:x}}finally{try{if(b&&!b.done&&(r=m.return))r.call(m)}finally{if(e)throw e.error}}};e.kind=l.MmlMpadded.prototype.kind;e.styles={"mjx-mpadded":{display:"inline-block"},"mjx-rbox":{display:"inline-block",position:"relative"}};return e}((0,s.CommonMpaddedMixin)(a.CHTMLWrapper));e.CHTMLmpadded=h},55501:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmroot=void 0;var o=r(55715);var a=r(23692);var s=r(96778);var l=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.addRoot=function(t,e,r,i){e.toCHTML(t);var o=n(this.getRootDimens(r,i),3),a=o[0],s=o[1],l=o[2];this.adaptor.setStyle(t,"verticalAlign",this.em(s));this.adaptor.setStyle(t,"width",this.em(a));if(l){this.adaptor.setStyle(this.adaptor.firstChild(t),"paddingLeft",this.em(l))}};e.kind=s.MmlMroot.prototype.kind;return e}((0,a.CommonMrootMixin)(o.CHTMLmsqrt));e.CHTMLmroot=l},34021:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLinferredMrow=e.CHTMLmrow=void 0;var o=r(44614);var a=r(54114);var s=r(54114);var l=r(81364);var h=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e,r;var i=this.node.isInferred?this.chtml=t:this.standardCHTMLnode(t);var o=false;try{for(var a=n(this.childNodes),s=a.next();!s.done;s=a.next()){var l=s.value;l.toCHTML(i);if(l.bbox.w<0){o=true}}}catch(c){e={error:c}}finally{try{if(s&&!s.done&&(r=a.return))r.call(a)}finally{if(e)throw e.error}}if(o){var h=this.getBBox().w;if(h){this.adaptor.setStyle(i,"width",this.em(Math.max(0,h)));if(h<0){this.adaptor.setStyle(i,"marginRight",this.em(h))}}}};e.kind=l.MmlMrow.prototype.kind;return e}((0,a.CommonMrowMixin)(o.CHTMLWrapper));e.CHTMLmrow=h;var c=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.kind=l.MmlInferredMrow.prototype.kind;return e}((0,s.CommonInferredMrowMixin)(h));e.CHTMLinferredMrow=c},3428:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLms=void 0;var n=r(44614);var o=r(95151);var a=r(68313);var s=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.kind=a.MmlMs.prototype.kind;return e}((0,o.CommonMsMixin)(n.CHTMLWrapper));e.CHTMLms=s},91007:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmspace=void 0;var n=r(44614);var o=r(9572);var a=r(74394);var s=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e=this.standardCHTMLnode(t);var r=this.getBBox(),i=r.w,n=r.h,o=r.d;if(i<0){this.adaptor.setStyle(e,"marginRight",this.em(i));i=0}if(i){this.adaptor.setStyle(e,"width",this.em(i))}n=Math.max(0,n+o);if(n){this.adaptor.setStyle(e,"height",this.em(Math.max(0,n)))}if(o){this.adaptor.setStyle(e,"verticalAlign",this.em(-o))}};e.kind=a.MmlMspace.prototype.kind;return e}((0,o.CommonMspaceMixin)(n.CHTMLWrapper));e.CHTMLmspace=s},55715:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmsqrt=void 0;var o=r(44614);var a=r(33206);var s=r(24208);var l=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e=this.childNodes[this.surd];var r=this.childNodes[this.base];var i=e.getBBox();var o=r.getOuterBBox();var a=n(this.getPQ(i),2),s=a[1];var l=this.font.params.rule_thickness;var h=o.h+s+l;var c=this.standardCHTMLnode(t);var u,f,p,d;if(this.root!=null){p=this.adaptor.append(c,this.html("mjx-root"));d=this.childNodes[this.root]}var y=this.adaptor.append(c,this.html("mjx-sqrt",{},[u=this.html("mjx-surd"),f=this.html("mjx-box",{style:{paddingTop:this.em(s)}})]));this.addRoot(p,d,i,h);e.toCHTML(u);r.toCHTML(f);if(e.size<0){this.adaptor.addClass(y,"mjx-tall")}};e.prototype.addRoot=function(t,e,r,i){};e.kind=s.MmlMsqrt.prototype.kind;e.styles={"mjx-root":{display:"inline-block","white-space":"nowrap"},"mjx-surd":{display:"inline-block","vertical-align":"top"},"mjx-sqrt":{display:"inline-block","padding-top":".07em"},"mjx-sqrt > mjx-box":{"border-top":".07em solid"},"mjx-sqrt.mjx-tall > mjx-box":{"padding-left":".3em","margin-left":"-.3em"}};return e}((0,a.CommonMsqrtMixin)(o.CHTMLWrapper));e.CHTMLmsqrt=l},21279:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmsubsup=e.CHTMLmsup=e.CHTMLmsub=void 0;var o=r(98526);var a=r(64418);var s=r(64418);var l=r(64418);var h=r(12560);var c=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.kind=h.MmlMsub.prototype.kind;return e}((0,a.CommonMsubMixin)(o.CHTMLscriptbase));e.CHTMLmsub=c;var u=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.kind=h.MmlMsup.prototype.kind;return e}((0,s.CommonMsupMixin)(o.CHTMLscriptbase));e.CHTMLmsup=u;var f=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){var e=this.adaptor;var r=this.standardCHTMLnode(t);var i=n([this.baseChild,this.supChild,this.subChild],3),o=i[0],a=i[1],s=i[2];var l=n(this.getUVQ(),3),h=l[1],c=l[2];var u={"vertical-align":this.em(h)};o.toCHTML(r);var f=e.append(r,this.html("mjx-script",{style:u}));a.toCHTML(f);e.append(f,this.html("mjx-spacer",{style:{"margin-top":this.em(c)}}));s.toCHTML(f);var p=this.getAdjustedIc();if(p){e.setStyle(a.chtml,"marginLeft",this.em(p/a.bbox.rscale))}if(this.baseRemoveIc){e.setStyle(f,"marginLeft",this.em(-this.baseIc))}};e.kind=h.MmlMsubsup.prototype.kind;e.styles={"mjx-script":{display:"inline-block","padding-right":".05em","padding-left":".033em"},"mjx-script > mjx-spacer":{display:"block"}};return e}((0,l.CommonMsubsupMixin)(o.CHTMLscriptbase));e.CHTMLmsubsup=f},46605:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmtable=void 0;var a=r(44614);var s=r(70078);var l=r(7840);var h=r(41278);var c=function(t){i(e,t);function e(e,r,i){if(i===void 0){i=null}var n=t.call(this,e,r,i)||this;n.itable=n.html("mjx-itable");n.labels=n.html("mjx-itable");return n}e.prototype.getAlignShift=function(){var e=t.prototype.getAlignShift.call(this);if(!this.isTop){e[1]=0}return e};e.prototype.toCHTML=function(t){var e,r;var i=this.standardCHTMLnode(t);this.adaptor.append(i,this.html("mjx-table",{},[this.itable]));try{for(var o=n(this.childNodes),a=o.next();!a.done;a=o.next()){var s=a.value;s.toCHTML(this.itable)}}catch(l){e={error:l}}finally{try{if(a&&!a.done&&(r=o.return))r.call(o)}finally{if(e)throw e.error}}this.padRows();this.handleColumnSpacing();this.handleColumnLines();this.handleColumnWidths();this.handleRowSpacing();this.handleRowLines();this.handleRowHeights();this.handleFrame();this.handleWidth();this.handleLabels();this.handleAlign();this.handleJustify();this.shiftColor()};e.prototype.shiftColor=function(){var t=this.adaptor;var e=t.getStyle(this.chtml,"backgroundColor");if(e){t.setStyle(this.chtml,"backgroundColor","");t.setStyle(this.itable,"backgroundColor",e)}};e.prototype.padRows=function(){var t,e;var r=this.adaptor;try{for(var i=n(r.childNodes(this.itable)),o=i.next();!o.done;o=i.next()){var a=o.value;while(r.childNodes(a).length1&&y!=="0.4em"||s&&u===1){this.adaptor.setStyle(m,"paddingLeft",y)}if(u1&&f!=="0.215em"||s&&l===1){this.adaptor.setStyle(v.chtml,"paddingTop",f)}if(l mjx-itable":{"vertical-align":"middle","text-align":"left","box-sizing":"border-box"},"mjx-labels > mjx-itable":{position:"absolute",top:0},'mjx-mtable[justify="left"]':{"text-align":"left"},'mjx-mtable[justify="right"]':{"text-align":"right"},'mjx-mtable[justify="left"][side="left"]':{"padding-right":"0 ! important"},'mjx-mtable[justify="left"][side="right"]':{"padding-left":"0 ! important"},'mjx-mtable[justify="right"][side="left"]':{"padding-right":"0 ! important"},'mjx-mtable[justify="right"][side="right"]':{"padding-left":"0 ! important"},"mjx-mtable[align]":{"vertical-align":"baseline"},'mjx-mtable[align="top"] > mjx-table':{"vertical-align":"top"},'mjx-mtable[align="bottom"] > mjx-table':{"vertical-align":"bottom"},'mjx-mtable[side="right"] mjx-labels':{"min-width":"100%"}};return e}((0,s.CommonMtableMixin)(a.CHTMLWrapper));e.CHTMLmtable=c},71937:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmtd=void 0;var n=r(44614);var o=r(8256);var a=r(94826);var s=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(e){t.prototype.toCHTML.call(this,e);var r=this.node.attributes.get("rowalign");var i=this.node.attributes.get("columnalign");var n=this.parent.node.attributes.get("rowalign");if(r!==n){this.adaptor.setAttribute(this.chtml,"rowalign",r)}if(i!=="center"&&(this.parent.kind!=="mlabeledtr"||this!==this.parent.childNodes[0]||i!==this.parent.parent.node.attributes.get("side"))){this.adaptor.setStyle(this.chtml,"textAlign",i)}if(this.parent.parent.node.getProperty("useHeight")){this.adaptor.append(this.chtml,this.html("mjx-tstrut"))}};e.kind=a.MmlMtd.prototype.kind;e.styles={"mjx-mtd":{display:"table-cell","text-align":"center",padding:".215em .4em"},"mjx-mtd:first-child":{"padding-left":0},"mjx-mtd:last-child":{"padding-right":0},"mjx-mtable > * > mjx-itable > *:first-child > mjx-mtd":{"padding-top":0},"mjx-mtable > * > mjx-itable > *:last-child > mjx-mtd":{"padding-bottom":0},"mjx-tstrut":{display:"inline-block",height:"1em","vertical-align":"-.25em"},'mjx-labels[align="left"] > mjx-mtr > mjx-mtd':{"text-align":"left"},'mjx-labels[align="right"] > mjx-mtr > mjx-mtd':{"text-align":"right"},"mjx-mtd[extra]":{padding:0},'mjx-mtd[rowalign="top"]':{"vertical-align":"top"},'mjx-mtd[rowalign="center"]':{"vertical-align":"middle"},'mjx-mtd[rowalign="bottom"]':{"vertical-align":"bottom"},'mjx-mtd[rowalign="baseline"]':{"vertical-align":"baseline"},'mjx-mtd[rowalign="axis"]':{"vertical-align":".25em"}};return e}((0,o.CommonMtdMixin)(n.CHTMLWrapper));e.CHTMLmtd=s},79150:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmtext=void 0;var n=r(44614);var o=r(58267);var a=r(48765);var s=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.kind=a.MmlMtext.prototype.kind;return e}((0,o.CommonMtextMixin)(n.CHTMLWrapper));e.CHTMLmtext=s},42731:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmlabeledtr=e.CHTMLmtr=void 0;var n=r(44614);var o=r(8518);var a=r(8518);var s=r(79516);var l=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(e){t.prototype.toCHTML.call(this,e);var r=this.node.attributes.get("rowalign");if(r!=="baseline"){this.adaptor.setAttribute(this.chtml,"rowalign",r)}};e.kind=s.MmlMtr.prototype.kind;e.styles={"mjx-mtr":{display:"table-row"},'mjx-mtr[rowalign="top"] > mjx-mtd':{"vertical-align":"top"},'mjx-mtr[rowalign="center"] > mjx-mtd':{"vertical-align":"middle"},'mjx-mtr[rowalign="bottom"] > mjx-mtd':{"vertical-align":"bottom"},'mjx-mtr[rowalign="baseline"] > mjx-mtd':{"vertical-align":"baseline"},'mjx-mtr[rowalign="axis"] > mjx-mtd':{"vertical-align":".25em"}};return e}((0,o.CommonMtrMixin)(n.CHTMLWrapper));e.CHTMLmtr=l;var h=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(e){t.prototype.toCHTML.call(this,e);var r=this.adaptor.firstChild(this.chtml);if(r){this.adaptor.remove(r);var i=this.node.attributes.get("rowalign");var n=i!=="baseline"&&i!=="axis"?{rowalign:i}:{};var o=this.html("mjx-mtr",n,[r]);this.adaptor.append(this.parent.labels,o)}};e.prototype.markUsed=function(){t.prototype.markUsed.call(this);this.jax.wrapperUsage.add(l.kind)};e.kind=s.MmlMlabeledtr.prototype.kind;e.styles={"mjx-mlabeledtr":{display:"table-row"},'mjx-mlabeledtr[rowalign="top"] > mjx-mtd':{"vertical-align":"top"},'mjx-mlabeledtr[rowalign="center"] > mjx-mtd':{"vertical-align":"middle"},'mjx-mlabeledtr[rowalign="bottom"] > mjx-mtd':{"vertical-align":"bottom"},'mjx-mlabeledtr[rowalign="baseline"] > mjx-mtd':{"vertical-align":"baseline"},'mjx-mlabeledtr[rowalign="axis"] > mjx-mtd':{"vertical-align":".25em"}};return e}((0,a.CommonMlabeledtrMixin)(l));e.CHTMLmlabeledtr=h},49821:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CHTMLmunderover=e.CHTMLmover=e.CHTMLmunder=void 0;var n=r(21279);var o=r(62358);var a=r(62358);var s=r(62358);var l=r(46072);var h=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(e){if(this.hasMovableLimits()){t.prototype.toCHTML.call(this,e);this.adaptor.setAttribute(this.chtml,"limits","false");return}this.chtml=this.standardCHTMLnode(e);var r=this.adaptor.append(this.adaptor.append(this.chtml,this.html("mjx-row")),this.html("mjx-base"));var i=this.adaptor.append(this.adaptor.append(this.chtml,this.html("mjx-row")),this.html("mjx-under"));this.baseChild.toCHTML(r);this.scriptChild.toCHTML(i);var n=this.baseChild.getOuterBBox();var o=this.scriptChild.getOuterBBox();var a=this.getUnderKV(n,o)[0];var s=this.isLineBelow?0:this.getDelta(true);this.adaptor.setStyle(i,"paddingTop",this.em(a));this.setDeltaW([r,i],this.getDeltaW([n,o],[0,-s]));this.adjustUnderDepth(i,o)};e.kind=l.MmlMunder.prototype.kind;e.styles={"mjx-over":{"text-align":"left"},'mjx-munder:not([limits="false"])':{display:"inline-table"},"mjx-munder > mjx-row":{"text-align":"left"},"mjx-under":{"padding-bottom":".1em"}};return e}((0,o.CommonMunderMixin)(n.CHTMLmsub));e.CHTMLmunder=h;var c=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(e){if(this.hasMovableLimits()){t.prototype.toCHTML.call(this,e);this.adaptor.setAttribute(this.chtml,"limits","false");return}this.chtml=this.standardCHTMLnode(e);var r=this.adaptor.append(this.chtml,this.html("mjx-over"));var i=this.adaptor.append(this.chtml,this.html("mjx-base"));this.scriptChild.toCHTML(r);this.baseChild.toCHTML(i);var n=this.scriptChild.getOuterBBox();var o=this.baseChild.getOuterBBox();this.adjustBaseHeight(i,o);var a=this.getOverKU(o,n)[0];var s=this.isLineAbove?0:this.getDelta();this.adaptor.setStyle(r,"paddingBottom",this.em(a));this.setDeltaW([i,r],this.getDeltaW([o,n],[0,s]));this.adjustOverDepth(r,n)};e.kind=l.MmlMover.prototype.kind;e.styles={'mjx-mover:not([limits="false"])':{"padding-top":".1em"},'mjx-mover:not([limits="false"]) > *':{display:"block","text-align":"left"}};return e}((0,a.CommonMoverMixin)(n.CHTMLmsup));e.CHTMLmover=c;var u=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(e){if(this.hasMovableLimits()){t.prototype.toCHTML.call(this,e);this.adaptor.setAttribute(this.chtml,"limits","false");return}this.chtml=this.standardCHTMLnode(e);var r=this.adaptor.append(this.chtml,this.html("mjx-over"));var i=this.adaptor.append(this.adaptor.append(this.chtml,this.html("mjx-box")),this.html("mjx-munder"));var n=this.adaptor.append(this.adaptor.append(i,this.html("mjx-row")),this.html("mjx-base"));var o=this.adaptor.append(this.adaptor.append(i,this.html("mjx-row")),this.html("mjx-under"));this.overChild.toCHTML(r);this.baseChild.toCHTML(n);this.underChild.toCHTML(o);var a=this.overChild.getOuterBBox();var s=this.baseChild.getOuterBBox();var l=this.underChild.getOuterBBox();this.adjustBaseHeight(n,s);var h=this.getOverKU(s,a)[0];var c=this.getUnderKV(s,l)[0];var u=this.getDelta();this.adaptor.setStyle(r,"paddingBottom",this.em(h));this.adaptor.setStyle(o,"paddingTop",this.em(c));this.setDeltaW([n,o,r],this.getDeltaW([s,l,a],[0,this.isLineBelow?0:-u,this.isLineAbove?0:u]));this.adjustOverDepth(r,a);this.adjustUnderDepth(o,l)};e.prototype.markUsed=function(){t.prototype.markUsed.call(this);this.jax.wrapperUsage.add(n.CHTMLmsubsup.kind)};e.kind=l.MmlMunderover.prototype.kind;e.styles={'mjx-munderover:not([limits="false"])':{"padding-top":".1em"},'mjx-munderover:not([limits="false"]) > *':{display:"block"}};return e}((0,s.CommonMunderoverMixin)(n.CHTMLmsubsup));e.CHTMLmunderover=u},98526:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var o=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CHTMLscriptbase=void 0;var a=r(44614);var s=r(82197);var l=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.toCHTML=function(t){this.chtml=this.standardCHTMLnode(t);var e=n(this.getOffset(),2),r=e[0],i=e[1];var o=r-(this.baseRemoveIc?this.baseIc:0);var a={"vertical-align":this.em(i)};if(o){a["margin-left"]=this.em(o)}this.baseChild.toCHTML(this.chtml);this.scriptChild.toCHTML(this.adaptor.append(this.chtml,this.html("mjx-script",{style:a})))};e.prototype.setDeltaW=function(t,e){for(var r=0;r=0)return;this.adaptor.setStyle(t,"marginBottom",this.em(e.d*e.rscale))};e.prototype.adjustUnderDepth=function(t,e){var r,i;if(e.d>=0)return;var n=this.adaptor;var a=this.em(e.d);var s=this.html("mjx-box",{style:{"margin-bottom":a,"vertical-align":a}});try{for(var l=o(n.childNodes(n.firstChild(t))),h=l.next();!h.done;h=l.next()){var c=h.value;n.append(s,c)}}catch(u){r={error:u}}finally{try{if(h&&!h.done&&(i=l.return))i.call(l)}finally{if(r)throw r.error}}n.append(n.firstChild(t),s)};e.prototype.adjustBaseHeight=function(t,e){if(this.node.attributes.get("accent")){var r=this.font.params.x_height*e.scale;if(e.h0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CommonArrow=e.CommonDiagonalArrow=e.CommonDiagonalStrike=e.CommonBorder2=e.CommonBorder=e.arrowBBox=e.diagonalArrowDef=e.arrowDef=e.arrowBBoxW=e.arrowBBoxHD=e.arrowHead=e.fullBorder=e.fullPadding=e.fullBBox=e.sideNames=e.sideIndex=e.SOLID=e.PADDING=e.THICKNESS=e.ARROWY=e.ARROWDX=e.ARROWX=void 0;e.ARROWX=4,e.ARROWDX=1,e.ARROWY=2;e.THICKNESS=.067;e.PADDING=.2;e.SOLID=e.THICKNESS+"em solid";e.sideIndex={top:0,right:1,bottom:2,left:3};e.sideNames=Object.keys(e.sideIndex);e.fullBBox=function(t){return new Array(4).fill(t.thickness+t.padding)};e.fullPadding=function(t){return new Array(4).fill(t.padding)};e.fullBorder=function(t){return new Array(4).fill(t.thickness)};var i=function(t){return Math.max(t.padding,t.thickness*(t.arrowhead.x+t.arrowhead.dx+1))};e.arrowHead=i;var n=function(t,e){if(t.childNodes[0]){var r=t.childNodes[0].getBBox(),i=r.h,n=r.d;e[0]=e[2]=Math.max(0,t.thickness*t.arrowhead.y-(i+n)/2)}return e};e.arrowBBoxHD=n;var o=function(t,e){if(t.childNodes[0]){var r=t.childNodes[0].getBBox().w;e[1]=e[3]=Math.max(0,t.thickness*t.arrowhead.y-r/2)}return e};e.arrowBBoxW=o;e.arrowDef={up:[-Math.PI/2,false,true,"verticalstrike"],down:[Math.PI/2,false,true,"verticakstrike"],right:[0,false,false,"horizontalstrike"],left:[Math.PI,false,false,"horizontalstrike"],updown:[Math.PI/2,true,true,"verticalstrike uparrow downarrow"],leftright:[0,true,false,"horizontalstrike leftarrow rightarrow"]};e.diagonalArrowDef={updiagonal:[-1,0,false,"updiagonalstrike northeastarrow"],northeast:[-1,0,false,"updiagonalstrike updiagonalarrow"],southeast:[1,0,false,"downdiagonalstrike"],northwest:[1,Math.PI,false,"downdiagonalstrike"],southwest:[-1,Math.PI,false,"updiagonalstrike"],northeastsouthwest:[-1,0,true,"updiagonalstrike northeastarrow updiagonalarrow southwestarrow"],northwestsoutheast:[1,0,true,"downdiagonalstrike northwestarrow southeastarrow"]};e.arrowBBox={up:function(t){return(0,e.arrowBBoxW)(t,[(0,e.arrowHead)(t),0,t.padding,0])},down:function(t){return(0,e.arrowBBoxW)(t,[t.padding,0,(0,e.arrowHead)(t),0])},right:function(t){return(0,e.arrowBBoxHD)(t,[0,(0,e.arrowHead)(t),0,t.padding])},left:function(t){return(0,e.arrowBBoxHD)(t,[0,t.padding,0,(0,e.arrowHead)(t)])},updown:function(t){return(0,e.arrowBBoxW)(t,[(0,e.arrowHead)(t),0,(0,e.arrowHead)(t),0])},leftright:function(t){return(0,e.arrowBBoxHD)(t,[0,(0,e.arrowHead)(t),0,(0,e.arrowHead)(t)])}};var a=function(t){return function(r){var i=e.sideIndex[r];return[r,{renderer:t,bbox:function(t){var e=[0,0,0,0];e[i]=t.thickness+t.padding;return e},border:function(t){var e=[0,0,0,0];e[i]=t.thickness;return e}}]}};e.CommonBorder=a;var s=function(t){return function(r,i,n){var o=e.sideIndex[i];var a=e.sideIndex[n];return[r,{renderer:t,bbox:function(t){var e=t.thickness+t.padding;var r=[0,0,0,0];r[o]=r[a]=e;return r},border:function(t){var e=[0,0,0,0];e[o]=e[a]=t.thickness;return e},remove:i+" "+n}]}};e.CommonBorder2=s;var l=function(t){return function(r){var i="mjx-"+r.charAt(0)+"strike";return[r+"diagonalstrike",{renderer:t(i),bbox:e.fullBBox}]}};e.CommonDiagonalStrike=l;var h=function(t){return function(i){var n=r(e.diagonalArrowDef[i],4),o=n[0],a=n[1],s=n[2],l=n[3];return[i+"arrow",{renderer:function(e,i){var n=r(e.arrowAW(),2),l=n[0],h=n[1];var c=e.arrow(h,o*(l-a),s);t(e,c)},bbox:function(t){var e=t.arrowData(),i=e.a,n=e.x,o=e.y;var a=r([t.arrowhead.x,t.arrowhead.y,t.arrowhead.dx],3),s=a[0],l=a[1],h=a[2];var c=r(t.getArgMod(s+h,l),2),u=c[0],f=c[1];var p=o+(u>i?t.thickness*f*Math.sin(u-i):0);var d=n+(u>Math.PI/2-i?t.thickness*f*Math.sin(u+i-Math.PI/2):0);return[p,d,p,d]},remove:l}]}};e.CommonDiagonalArrow=h;var c=function(t){return function(i){var n=r(e.arrowDef[i],4),o=n[0],a=n[1],s=n[2],l=n[3];return[i+"arrow",{renderer:function(e,i){var n=e.getBBox(),l=n.w,h=n.h,c=n.d;var u=r(s?[h+c,"X"]:[l,"Y"],2),f=u[0],p=u[1];var d=e.getOffset(p);var y=e.arrow(f,o,a,p,d);t(e,y)},bbox:e.arrowBBox[i],remove:l}]}};e.CommonArrow=c},12222:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__assign||function(){n=Object.assign||function(t){for(var e,r=1,i=arguments.length;r0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var a=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CommonOutputJax=void 0;var s=r(63380);var l=r(24971);var h=r(34981);var c=r(86810);var u=r(24161);var f=r(14454);var p=function(t){i(e,t);function e(e,r,i){if(e===void 0){e=null}if(r===void 0){r=null}if(i===void 0){i=null}var n=this;var a=o((0,h.separateOptions)(e,i.OPTIONS),2),s=a[0],l=a[1];n=t.call(this,s)||this;n.factory=n.options.wrapperFactory||new r;n.factory.jax=n;n.cssStyles=n.options.cssStyles||new f.CssStyles;n.font=n.options.font||new i(l);n.unknownCache=new Map;return n}e.prototype.typeset=function(t,e){this.setDocument(e);var r=this.createNode();this.toDOM(t,r,e);return r};e.prototype.createNode=function(){var t=this.constructor.NAME;return this.html("mjx-container",{class:"MathJax",jax:t})};e.prototype.setScale=function(t){var e=this.math.metrics.scale*this.options.scale;if(e!==1){this.adaptor.setStyle(t,"fontSize",(0,c.percent)(e))}};e.prototype.toDOM=function(t,e,r){if(r===void 0){r=null}this.setDocument(r);this.math=t;this.pxPerEm=t.metrics.ex/this.font.params.x_height;t.root.setTeXclass(null);this.setScale(e);this.nodeMap=new Map;this.container=e;this.processMath(t.root,e);this.nodeMap=null;this.executeFilters(this.postFilters,t,r,e)};e.prototype.getBBox=function(t,e){this.setDocument(e);this.math=t;t.root.setTeXclass(null);this.nodeMap=new Map;var r=this.factory.wrap(t.root).getOuterBBox();this.nodeMap=null;return r};e.prototype.getMetrics=function(t){var e,r;this.setDocument(t);var i=this.adaptor;var n=this.getMetricMaps(t);try{for(var o=a(t.math),s=o.next();!s.done;s=o.next()){var h=s.value;var c=i.parent(h.start.node);if(h.state()=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var l=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var h=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i600?"bold":"normal"}if(i.family){r=this.explicitVariant(i.family,i.weight,i.style)}else{if(this.node.getProperty("variantForm"))r="-tex-variant";r=(e.BOLDVARIANTS[i.weight]||{})[r]||r;r=(e.ITALICVARIANTS[i.style]||{})[r]||r}}this.variant=r};e.prototype.explicitVariant=function(t,e,r){var i=this.styles;if(!i)i=this.styles=new d.Styles;i.set("fontFamily",t);if(e)i.set("fontWeight",e);if(r)i.set("fontStyle",r);return"-explicitFont"};e.prototype.getScale=function(){var t=1,e=this.parent;var r=e?e.bbox.scale:1;var i=this.node.attributes;var n=Math.min(i.get("scriptlevel"),2);var o=i.get("fontsize");var a=this.node.isToken||this.node.isKind("mstyle")?i.get("mathsize"):i.getInherited("mathsize");if(n!==0){t=Math.pow(i.get("scriptsizemultiplier"),n);var s=this.length2em(i.get("scriptminsize"),.8,1);if(t0;this.bbox.L=i.isSet("lspace")?Math.max(0,this.length2em(i.get("lspace"))):b(n,t.lspace);this.bbox.R=i.isSet("rspace")?Math.max(0,this.length2em(i.get("rspace"))):b(n,t.rspace);var o=r.childIndex(e);if(o===0)return;var a=r.childNodes[o-1];if(!a.isEmbellished)return;var s=this.jax.nodeMap.get(a).getBBox();if(s.R){this.bbox.L=Math.max(0,this.bbox.L-s.R)}};e.prototype.getTeXSpacing=function(t,e){if(!e){var r=this.node.texSpacing();if(r){this.bbox.L=this.length2em(r)}}if(t||e){var i=this.node.coreMO().attributes;if(i.isSet("lspace")){this.bbox.L=Math.max(0,this.length2em(i.get("lspace")))}if(i.isSet("rspace")){this.bbox.R=Math.max(0,this.length2em(i.get("rspace")))}}};e.prototype.isTopEmbellished=function(){return this.node.isEmbellished&&!(this.node.parent&&this.node.parent.isEmbellished)};e.prototype.core=function(){return this.jax.nodeMap.get(this.node.core())};e.prototype.coreMO=function(){return this.jax.nodeMap.get(this.node.coreMO())};e.prototype.getText=function(){var t,e;var r="";if(this.node.isToken){try{for(var i=s(this.node.childNodes),n=i.next();!n.done;n=i.next()){var o=n.value;if(o instanceof u.TextNode){r+=o.getText()}}}catch(a){t={error:a}}finally{try{if(n&&!n.done&&(e=i.return))e.call(i)}finally{if(t)throw t.error}}}return r};e.prototype.canStretch=function(t){this.stretch=v.NOSTRETCH;if(this.node.isEmbellished){var e=this.core();if(e&&e.node!==this.node){if(e.canStretch(t)){this.stretch=e.stretch}}}return this.stretch.dir!==0};e.prototype.getAlignShift=function(){var t;var e=(t=this.node.attributes).getList.apply(t,h([],l(u.indentAttributes),false)),r=e.indentalign,i=e.indentshift,n=e.indentalignfirst,o=e.indentshiftfirst;if(n!=="indentalign"){r=n}if(r==="auto"){r=this.jax.options.displayAlign}if(o!=="indentshift"){i=o}if(i==="auto"){i=this.jax.options.displayIndent;if(r==="right"&&!i.match(/^\s*0[a-z]*\s*$/)){i=("-"+i.trim()).replace(/^--/,"")}}var a=this.length2em(i,this.metrics.containerWidth);return[r,a]};e.prototype.getAlignX=function(t,e,r){return r==="right"?t-(e.w+e.R)*e.rscale:r==="left"?e.L*e.rscale:(t-e.w*e.rscale)/2};e.prototype.getAlignY=function(t,e,r,i,n){return n==="top"?t-r:n==="bottom"?i-e:n==="center"?(t-r-(e-i))/2:0};e.prototype.getWrapWidth=function(t){return this.childNodes[t].getBBox().w};e.prototype.getChildAlign=function(t){return"left"};e.prototype.percent=function(t){return p.percent(t)};e.prototype.em=function(t){return p.em(t)};e.prototype.px=function(t,e){if(e===void 0){e=-p.BIGDIMEN}return p.px(t,e,this.metrics.em)};e.prototype.length2em=function(t,e,r){if(e===void 0){e=1}if(r===void 0){r=null}if(r===null){r=this.bbox.scale}return p.length2em(t,e,r,this.jax.pxPerEm)};e.prototype.unicodeChars=function(t,e){if(e===void 0){e=this.variant}var r=(0,f.unicodeChars)(t);var i=this.font.getVariant(e);if(i&&i.chars){var n=i.chars;r=r.map((function(t){return((n[t]||[])[3]||{}).smp||t}))}return r};e.prototype.remapChars=function(t){return t};e.prototype.mmlText=function(t){return this.node.factory.create("text").setText(t)};e.prototype.mmlNode=function(t,e,r){if(e===void 0){e={}}if(r===void 0){r=[]}return this.node.factory.create(t,e,r)};e.prototype.createMo=function(t){var e=this.node.factory;var r=e.create("text").setText(t);var i=e.create("mo",{stretchy:true},[r]);i.inheritAttributesFrom(this.node);var n=this.wrap(i);n.parent=this;return n};e.prototype.getVariantChar=function(t,e){var r=this.font.getChar(t,e)||[0,0,0,{unknown:true}];if(r.length===3){r[3]={}}return r};e.kind="unknown";e.styles={};e.removeStyles=["fontSize","fontFamily","fontWeight","fontStyle","fontVariant","font"];e.skipAttributes={fontfamily:true,fontsize:true,fontweight:true,fontstyle:true,color:true,background:true,class:true,href:true,style:true,xmlns:true};e.BOLDVARIANTS={bold:{normal:"bold",italic:"bold-italic",fraktur:"bold-fraktur",script:"bold-script","sans-serif":"bold-sans-serif","sans-serif-italic":"sans-serif-bold-italic"},normal:{bold:"normal","bold-italic":"italic","bold-fraktur":"fraktur","bold-script":"script","bold-sans-serif":"sans-serif","sans-serif-bold-italic":"sans-serif-italic"}};e.ITALICVARIANTS={italic:{normal:"italic",bold:"bold-italic","sans-serif":"sans-serif-italic","bold-sans-serif":"sans-serif-bold-italic"},normal:{italic:"normal","bold-italic":"bold","sans-serif-italic":"sans-serif","sans-serif-bold-italic":"bold-sans-serif"}};return e}(c.AbstractWrapper);e.CommonWrapper=g},36483:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CommonWrapperFactory=void 0;var n=r(49294);var o=function(t){i(e,t);function e(){var e=t!==null&&t.apply(this,arguments)||this;e.jax=null;return e}Object.defineProperty(e.prototype,"Wrappers",{get:function(){return this.node},enumerable:false,configurable:true});e.defaultNodes={};return e}(n.AbstractWrapperFactory);e.CommonWrapperFactory=o},65735:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CommonTeXAtomMixin=void 0;var n=r(80747);function o(t){return function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.computeBBox=function(e,r){if(r===void 0){r=false}t.prototype.computeBBox.call(this,e,r);if(this.childNodes[0]&&this.childNodes[0].bbox.ic){e.ic=this.childNodes[0].bbox.ic}if(this.node.texClass===n.TEXCLASS.VCENTER){var i=e.h,o=e.d;var a=this.font.params.axis_height;var s=(i+o)/2+a-i;e.h+=s;e.d-=s}};return e}(t)}e.CommonTeXAtomMixin=o},87120:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var i=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CommonTextNodeMixin=void 0;function o(t){return function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.computeBBox=function(t,e){var r,o;if(e===void 0){e=false}var a=this.parent.variant;var s=this.node.getText();if(a==="-explicitFont"){var l=this.jax.getFontData(this.parent.styles);var h=this.jax.measureText(s,a,l),c=h.w,u=h.h,f=h.d;t.h=u;t.d=f;t.w=c}else{var p=this.remappedText(s,a);t.empty();try{for(var d=i(p),y=d.next();!y.done;y=d.next()){var v=y.value;var m=n(this.getVariantChar(a,v),4),u=m[0],f=m[1],c=m[2],b=m[3];if(b.unknown){var g=this.jax.measureText(String.fromCodePoint(v),a);c=g.w;u=g.h;f=g.d}t.w+=c;if(u>t.h)t.h=u;if(f>t.d)t.d=f;t.ic=b.ic||0;t.sk=b.sk||0;t.dx=b.dx||0}}catch(x){r={error:x}}finally{try{if(y&&!y.done&&(o=d.return))o.call(d)}finally{if(r)throw r.error}}if(p.length>1){t.sk=0}t.clean()}};e.prototype.remappedText=function(t,e){var r=this.parent.stretch.c;return r?[r]:this.parent.remapChars(this.unicodeChars(t,e))};e.prototype.getStyles=function(){};e.prototype.getVariant=function(){};e.prototype.getScale=function(){};e.prototype.getSpace=function(){};return e}(t)}e.CommonTextNodeMixin=o},55210:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var l=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CommonMencloseMixin=void 0;var c=a(r(37626));var u=r(41278);function f(t){return function(t){i(e,t);function e(){var e=[];for(var r=0;r.001?a:0};e.prototype.getArgMod=function(t,e){return[Math.atan2(e,t),Math.sqrt(t*t+e*e)]};e.prototype.arrow=function(t,e,r,i,n){if(i===void 0){i=""}if(n===void 0){n=0}return null};e.prototype.arrowData=function(){var t=s([this.padding,this.thickness],2),e=t[0],r=t[1];var i=r*(this.arrowhead.x+Math.max(1,this.arrowhead.dx));var n=this.childNodes[0].getBBox(),o=n.h,a=n.d,l=n.w;var h=o+a;var c=Math.sqrt(h*h+l*l);var u=Math.max(e,i*l/c);var f=Math.max(e,i*h/c);var p=s(this.getArgMod(l+2*u,h+2*f),2),d=p[0],y=p[1];return{a:d,W:y,x:u,y:f}};e.prototype.arrowAW=function(){var t=this.childNodes[0].getBBox(),e=t.h,r=t.d,i=t.w;var n=s(this.TRBL,4),o=n[0],a=n[1],l=n[2],h=n[3];return this.getArgMod(h+i+a,o+e+r+l)};e.prototype.createMsqrt=function(t){var e=this.node.factory;var r=e.create("msqrt");r.inheritAttributesFrom(this.node);r.childNodes[0]=t.node;var i=this.wrap(r);i.parent=this;return i};e.prototype.sqrtTRBL=function(){var t=this.msqrt.getBBox();var e=this.msqrt.childNodes[0].getBBox();return[t.h-e.h,0,t.d-e.d,t.w-e.w]};return e}(t)}e.CommonMencloseMixin=f},36639:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var n=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CommonMfencedMixin=void 0;function a(t){return function(t){r(e,t);function e(){var e=[];for(var r=0;r0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var n=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var n=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CommonMmultiscriptsMixin=e.ScriptNames=e.NextScript=void 0;var s=r(58340);e.NextScript={base:"subList",subList:"supList",supList:"subList",psubList:"psupList",psupList:"psubList"};e.ScriptNames=["sup","sup","psup","psub"];function l(t){return function(t){i(r,t);function r(){var e=[];for(var r=0;re.length){e.push(s.BBox.empty())}};r.prototype.combineBBoxLists=function(t,e,r,i){for(var o=0;ot.h)t.h=l;if(h>t.d)t.d=h;if(f>e.h)e.h=f;if(p>e.d)e.d=p}};r.prototype.getScaledWHD=function(t){var e=t.w,r=t.h,i=t.d,n=t.rscale;return[e*n,r*n,i*n]};r.prototype.getUVQ=function(e,r){var i;if(!this.UVQ){var o=n([0,0,0],3),a=o[0],s=o[1],l=o[2];if(e.h===0&&e.d===0){a=this.getU()}else if(r.h===0&&r.d===0){a=-this.getV()}else{i=n(t.prototype.getUVQ.call(this,e,r),3),a=i[0],s=i[1],l=i[2]}this.UVQ=[a,s,l]}return this.UVQ};return r}(t)}e.CommonMmultiscriptsMixin=l},53228:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CommonMnMixin=void 0;function i(t){return function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.remapChars=function(t){if(t.length){var e=this.font.getRemappedChar("mn",t[0]);if(e){var r=this.unicodeChars(e,this.variant);if(r.length===1){t[0]=r[0]}else{t=r.concat(t.slice(1))}}}return t};return e}(t)}e.CommonMnMixin=i},61331:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__assign||function(){n=Object.assign||function(t){for(var e,r=1,i=arguments.length;r0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var a=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var l;Object.defineProperty(e,"__esModule",{value:true});e.CommonMoMixin=e.DirectionVH=void 0;var h=r(58340);var c=r(41278);var u=r(30861);e.DirectionVH=(l={},l[1]="v",l[2]="h",l);function f(t){return function(t){i(e,t);function e(){var e=[];for(var r=0;r=0)){t.w=0}};e.prototype.protoBBox=function(e){var r=this.stretch.dir!==0;if(r&&this.size===null){this.getStretchedVariant([0])}if(r&&this.size<0)return;t.prototype.computeBBox.call(this,e);this.copySkewIC(e)};e.prototype.getAccentOffset=function(){var t=h.BBox.empty();this.protoBBox(t);return-t.w/2};e.prototype.getCenterOffset=function(e){if(e===void 0){e=null}if(!e){e=h.BBox.empty();t.prototype.computeBBox.call(this,e)}return(e.h+e.d)/2+this.font.params.axis_height-e.h};e.prototype.getVariant=function(){if(this.node.attributes.get("largeop")){this.variant=this.node.attributes.get("displaystyle")?"-largeop":"-smallop";return}if(!this.node.attributes.getExplicit("mathvariant")&&this.node.getProperty("pseudoscript")===false){this.variant="-tex-variant";return}t.prototype.getVariant.call(this)};e.prototype.canStretch=function(t){if(this.stretch.dir!==0){return this.stretch.dir===t}var e=this.node.attributes;if(!e.get("stretchy"))return false;var r=this.getText();if(Array.from(r).length!==1)return false;var i=this.font.getDelimiter(r.codePointAt(0));this.stretch=i&&i.dir===t?i:u.NOSTRETCH;return this.stretch.dir!==0};e.prototype.getStretchedVariant=function(t,e){var r,i;if(e===void 0){e=false}if(this.stretch.dir!==0){var o=this.getWH(t);var a=this.getSize("minsize",0);var l=this.getSize("maxsize",Infinity);var h=this.node.getProperty("mathaccent");o=Math.max(a,Math.min(l,o));var c=this.font.params.delimiterfactor/1e3;var u=this.font.params.delimitershortfall;var f=a||e?o:h?Math.min(o/c,o+u):Math.max(o*c,o-u);var p=this.stretch;var d=p.c||this.getText().codePointAt(0);var y=0;if(p.sizes){try{for(var v=s(p.sizes),m=v.next();!m.done;m=v.next()){var b=m.value;if(b>=f){if(h&&y){y--}this.variant=this.font.getSizeVariant(d,y);this.size=y;if(p.schar&&p.schar[y]){this.stretch=n(n({},this.stretch),{c:p.schar[y]})}return}y++}}catch(g){r={error:g}}finally{try{if(m&&!m.done&&(i=v.return))i.call(v)}finally{if(r)throw r.error}}}if(p.stretch){this.size=-1;this.invalidateBBox();this.getStretchBBox(t,this.checkExtendedHeight(o,p),p)}else{this.variant=this.font.getSizeVariant(d,y-1);this.size=y-1}}};e.prototype.getSize=function(t,e){var r=this.node.attributes;if(r.isSet(t)){e=this.length2em(r.get(t),1,1)}return e};e.prototype.getWH=function(t){if(t.length===0)return 0;if(t.length===1)return t[0];var e=o(t,2),r=e[0],i=e[1];var n=this.font.params.axis_height;return this.node.attributes.get("symmetric")?2*Math.max(r-n,i+n):r+i};e.prototype.getStretchBBox=function(t,e,r){var i;if(r.hasOwnProperty("min")&&r.min>e){e=r.min}var n=o(r.HDW,3),a=n[0],s=n[1],l=n[2];if(this.stretch.dir===1){i=o(this.getBaseline(t,e,r),2),a=i[0],s=i[1]}else{l=e}this.bbox.h=a;this.bbox.d=s;this.bbox.w=l};e.prototype.getBaseline=function(t,e,r){var i=t.length===2&&t[0]+t[1]===e;var n=this.node.attributes.get("symmetric");var a=o(i?t:[e,0],2),s=a[0],l=a[1];var h=o([s+l,0],2),c=h[0],u=h[1];if(n){var f=this.font.params.axis_height;if(i){c=2*Math.max(s-f,l+f)}u=c/2-f}else if(i){u=l}else{var p=o(r.HDW||[.75,.25],2),d=p[0],y=p[1];u=y*(c/(d+y))}return[c-u,u]};e.prototype.checkExtendedHeight=function(t,e){if(e.fullExt){var r=o(e.fullExt,2),i=r[0],n=r[1];var a=Math.ceil(Math.max(0,t-n)/i);t=n+a*i}return t};e.prototype.remapChars=function(t){var e=this.node.getProperty("primes");if(e){return(0,c.unicodeChars)(e)}if(t.length===1){var r=this.node.coreParent().parent;var i=this.isAccent&&!r.isKind("mrow");var n=i?"accent":"mo";var o=this.font.getRemappedChar(n,t[0]);if(o){t=this.unicodeChars(o,this.variant)}}return t};return e}(t)}e.CommonMoMixin=f},95522:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CommonMpaddedMixin=void 0;function n(t){return function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.getDimens=function(){var t=this.node.attributes.getList("width","height","depth","lspace","voffset");var e=this.childNodes[0].getBBox();var r=e.w,i=e.h,n=e.d;var o=r,a=i,s=n,l=0,h=0,c=0;if(t.width!=="")r=this.dimen(t.width,e,"w",0);if(t.height!=="")i=this.dimen(t.height,e,"h",0);if(t.depth!=="")n=this.dimen(t.depth,e,"d",0);if(t.voffset!=="")h=this.dimen(t.voffset,e);if(t.lspace!=="")l=this.dimen(t.lspace,e);var u=this.node.attributes.get("data-align");if(u){c=this.getAlignX(r,e,u)}return[a,s,o,i-a,n-s,r-o,l,h,c]};e.prototype.dimen=function(t,e,r,i){if(r===void 0){r=""}if(i===void 0){i=null}t=String(t);var n=t.match(/width|height|depth/);var o=n?e[n[0].charAt(0)]:r?e[r]:0;var a=this.length2em(t,o)||0;if(t.match(/^[-+]/)&&r){a+=o}if(i!=null){a=Math.max(i,a)}return a};e.prototype.computeBBox=function(t,e){if(e===void 0){e=false}var r=i(this.getDimens(),6),n=r[0],o=r[1],a=r[2],s=r[3],l=r[4],h=r[5];t.w=a+h;t.h=n+s;t.d=o+l;this.setChildPWidths(e,t.w)};e.prototype.getWrapWidth=function(t){return this.getBBox().w};e.prototype.getChildAlign=function(t){return this.node.attributes.get("data-align")||"left"};return e}(t)}e.CommonMpaddedMixin=n},23692:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CommonMrootMixin=void 0;function i(t){return function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"surd",{get:function(){return 2},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"root",{get:function(){return 1},enumerable:false,configurable:true});e.prototype.combineRootBBox=function(t,e,r){var i=this.childNodes[this.root].getOuterBBox();var n=this.getRootDimens(e,r)[1];t.combine(i,0,n)};e.prototype.getRootDimens=function(t,e){var r=this.childNodes[this.surd];var i=this.childNodes[this.root].getOuterBBox();var n=(r.size<0?.5:.6)*t.w;var o=i.w,a=i.rscale;var s=Math.max(o,n/a);var l=Math.max(0,s-o);var h=this.rootHeight(i,t,r.size,e);var c=s*a-n;return[c,h,l]};e.prototype.rootHeight=function(t,e,r,i){var n=e.h+e.d;var o=(r<0?1.9:.55*n)-(n-i);return o+Math.max(0,t.d*t.rscale)};return e}(t)}e.CommonMrootMixin=i},54114:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CommonInferredMrowMixin=e.CommonMrowMixin=void 0;var s=r(58340);function l(t){return function(t){i(e,t);function e(){var e,r;var i=[];for(var l=0;l1){var p=0,d=0;var y=u>1&&u===f;try{for(var v=a(this.childNodes),m=v.next();!m.done;m=v.next()){var c=m.value;var b=c.stretch.dir===0;if(y||b){var g=c.getOuterBBox(b),x=g.h,w=g.d,_=g.rscale;x*=_;w*=_;if(x>p)p=x;if(w>d)d=w}}}catch(S){r={error:S}}finally{try{if(m&&!m.done&&(i=v.return))i.call(v)}finally{if(r)throw r.error}}try{for(var M=a(s),j=M.next();!j.done;j=M.next()){var c=j.value;c.coreMO().getStretchedVariant([p,d])}}catch(O){n={error:O}}finally{try{if(j&&!j.done&&(o=M.return))o.call(M)}finally{if(n)throw n.error}}}};return e}(t)}e.CommonMrowMixin=l;function h(t){return function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.getScale=function(){this.bbox.scale=this.parent.bbox.scale;this.bbox.rscale=1};return e}(t)}e.CommonInferredMrowMixin=h},95151:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var n=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;ithis.surdH?(t.h+t.d-(this.surdH-2*e-r/2))/2:e+r/4;return[r,i]};e.prototype.getRootDimens=function(t,e){return[0,0,0,0]};return e}(t)}e.CommonMsqrtMixin=s},64418:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.CommonMsubsupMixin=e.CommonMsupMixin=e.CommonMsubMixin=void 0;function n(t){var e;return e=function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"scriptChild",{get:function(){return this.childNodes[this.node.sub]},enumerable:false,configurable:true});e.prototype.getOffset=function(){return[0,-this.getV()]};return e}(t),e.useIC=false,e}e.CommonMsubMixin=n;function o(t){return function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"scriptChild",{get:function(){return this.childNodes[this.node.sup]},enumerable:false,configurable:true});e.prototype.getOffset=function(){var t=this.getAdjustedIc()-(this.baseRemoveIc?0:this.baseIc);return[t,this.getU()]};return e}(t)}e.CommonMsupMixin=o;function a(t){var e;return e=function(t){r(e,t);function e(){var e=t!==null&&t.apply(this,arguments)||this;e.UVQ=null;return e}Object.defineProperty(e.prototype,"subChild",{get:function(){return this.childNodes[this.node.sub]},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"supChild",{get:function(){return this.childNodes[this.node.sup]},enumerable:false,configurable:true});e.prototype.computeBBox=function(t,e){if(e===void 0){e=false}var r=this.baseChild.getOuterBBox();var n=i([this.subChild.getOuterBBox(),this.supChild.getOuterBBox()],2),o=n[0],a=n[1];t.empty();t.append(r);var s=this.getBaseWidth();var l=this.getAdjustedIc();var h=i(this.getUVQ(),2),c=h[0],u=h[1];t.combine(o,s,u);t.combine(a,s+l,c);t.w+=this.font.params.scriptspace;t.clean();this.setChildPWidths(e)};e.prototype.getUVQ=function(t,e){if(t===void 0){t=this.subChild.getOuterBBox()}if(e===void 0){e=this.supChild.getOuterBBox()}var r=this.baseCore.getOuterBBox();if(this.UVQ)return this.UVQ;var n=this.font.params;var o=3*n.rule_thickness;var a=this.length2em(this.node.attributes.get("subscriptshift"),n.sub2);var s=this.baseCharZero(r.d*this.baseScale+n.sub_drop*t.rscale);var l=i([this.getU(),Math.max(s,a)],2),h=l[0],c=l[1];var u=h-e.d*e.rscale-(t.h*t.rscale-c);if(u0){h+=f;c-=f}}h=Math.max(this.length2em(this.node.attributes.get("superscriptshift"),h),h);c=Math.max(this.length2em(this.node.attributes.get("subscriptshift"),c),c);u=h-e.d*e.rscale-(t.h*t.rscale-c);this.UVQ=[h,-c,u];return this.UVQ};return e}(t),e.useIC=false,e}e.CommonMsubsupMixin=a},70078:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CommonMtableMixin=void 0;var s=r(58340);var l=r(41278);var h=r(19468);function c(t){return function(t){i(e,t);function e(){var e=[];for(var r=0;r1){if(e===null){e=0;var m=y>1&&y===v;try{for(var b=a(this.tableRows),g=b.next();!g.done;g=b.next()){var f=g.value;var p=f.getChild(t);if(p){var d=p.childNodes[0];var x=d.stretch.dir===0;if(m||x){var w=d.getBBox(x).w;if(w>e){e=w}}}}}catch(C){n={error:C}}finally{try{if(g&&!g.done&&(o=b.return))o.call(b)}finally{if(n)throw n.error}}}try{for(var _=a(h),M=_.next();!M.done;M=_.next()){var d=M.value;d.coreMO().getStretchedVariant([e])}}catch(S){s={error:S}}finally{try{if(M&&!M.done&&(l=_.return))l.call(_)}finally{if(s)throw s.error}}}};e.prototype.getTableData=function(){if(this.data){return this.data}var t=new Array(this.numRows).fill(0);var e=new Array(this.numRows).fill(0);var r=new Array(this.numCols).fill(0);var i=new Array(this.numRows);var n=new Array(this.numRows);var o=[0];var a=this.tableRows;for(var s=0;sn[r])n[r]=h;if(c>o[r])o[r]=c;if(p>s)s=p;if(a&&u>a[e])a[e]=u;return s};e.prototype.extendHD=function(t,e,r,i){var n=(i-(e[t]+r[t]))/2;if(n<1e-5)return;e[t]+=n;r[t]+=n};e.prototype.recordPWidthCell=function(t,e){if(t.childNodes[0]&&t.childNodes[0].getBBox().pwidth){this.pwidthCells.push([t,e])}};e.prototype.computeBBox=function(t,e){if(e===void 0){e=false}var r=this.getTableData(),i=r.H,o=r.D;var a,s;if(this.node.attributes.get("equalrows")){var c=this.getEqualRowHeight();a=(0,h.sum)([].concat(this.rLines,this.rSpace))+c*this.numRows}else{a=(0,h.sum)(i.concat(o,this.rLines,this.rSpace))}a+=2*(this.fLine+this.fSpace[1]);var u=this.getComputedWidths();s=(0,h.sum)(u.concat(this.cLines,this.cSpace))+2*(this.fLine+this.fSpace[0]);var f=this.node.attributes.get("width");if(f!=="auto"){s=Math.max(this.length2em(f,0)+2*this.fLine,s)}var p=n(this.getBBoxHD(a),2),d=p[0],y=p[1];t.h=d;t.d=y;t.w=s;var v=n(this.getBBoxLR(),2),m=v[0],b=v[1];t.L=m;t.R=b;if(!(0,l.isPercent)(f)){this.setColumnPWidths()}};e.prototype.setChildPWidths=function(t,e,r){var i=this.node.attributes.get("width");if(!(0,l.isPercent)(i))return false;if(!this.hasLabels){this.bbox.pwidth="";this.container.bbox.pwidth=""}var n=this.bbox,o=n.w,a=n.L,s=n.R;var c=this.node.attributes.get("data-width-includes-label");var u=Math.max(o,this.length2em(i,Math.max(e,a+o+s)))-(c?a+s:0);var f=this.node.attributes.get("equalcolumns")?Array(this.numCols).fill(this.percent(1/Math.max(1,this.numCols))):this.getColumnAttributes("columnwidth",0);this.cWidths=this.getColumnWidthsFixed(f,u);var p=this.getComputedWidths();this.pWidth=(0,h.sum)(p.concat(this.cLines,this.cSpace))+2*(this.fLine+this.fSpace[0]);if(this.isTop){this.bbox.w=this.pWidth}this.setColumnPWidths();if(this.pWidth!==o){this.parent.invalidateBBox()}return this.pWidth!==o};e.prototype.setColumnPWidths=function(){var t,e;var r=this.cWidths;try{for(var i=a(this.pwidthCells),o=i.next();!o.done;o=i.next()){var s=n(o.value,2),l=s[0],h=s[1];if(l.setChildPWidths(false,r[h])){l.invalidateBBox();l.getBBox()}}}catch(c){t={error:c}}finally{try{if(o&&!o.done&&(e=i.return))e.call(i)}finally{if(t)throw t.error}}};e.prototype.getBBoxHD=function(t){var e=n(this.getAlignmentRow(),2),r=e[0],i=e[1];if(i===null){var o=this.font.params.axis_height;var a=t/2;var s={top:[0,t],center:[a,a],bottom:[t,0],baseline:[a,a],axis:[a+o,a-o]};return s[r]||[a,a]}else{var l=this.getVerticalPosition(i,r);return[l,t-l]}};e.prototype.getBBoxLR=function(){if(this.hasLabels){var t=this.node.attributes;var e=t.get("side");var r=n(this.getPadAlignShift(e),2),i=r[0],o=r[1];var a=this.hasLabels&&!!t.get("data-width-includes-label");if(a&&this.frame&&this.fSpace[0]){i-=this.fSpace[0]}return o==="center"&&!a?[i,i]:e==="left"?[i,0]:[0,i]}return[0,0]};e.prototype.getPadAlignShift=function(t){var e=this.getTableData().L;var r=this.length2em(this.node.attributes.get("minlabelspacing"));var i=e+r;var o=n(this.styles==null?["",""]:[this.styles.get("padding-left"),this.styles.get("padding-right")],2),a=o[0],s=o[1];if(a||s){i=Math.max(i,this.length2em(a||"0"),this.length2em(s||"0"))}var l=n(this.getAlignShift(),2),h=l[0],c=l[1];if(h===t){c=t==="left"?Math.max(i,c)-i:Math.min(-i,c)+i}return[i,h,c]};e.prototype.getAlignShift=function(){return this.isTop?t.prototype.getAlignShift.call(this):[this.container.getChildAlign(this.containerI),0]};e.prototype.getWidth=function(){return this.pWidth||this.getBBox().w};e.prototype.getEqualRowHeight=function(){var t=this.getTableData(),e=t.H,r=t.D;var i=Array.from(e.keys()).map((function(t){return e[t]+r[t]}));return Math.max.apply(Math,i)};e.prototype.getComputedWidths=function(){var t=this;var e=this.getTableData().W;var r=Array.from(e.keys()).map((function(r){return typeof t.cWidths[r]==="number"?t.cWidths[r]:e[r]}));if(this.node.attributes.get("equalcolumns")){r=Array(r.length).fill((0,h.max)(r))}return r};e.prototype.getColumnWidths=function(){var t=this.node.attributes.get("width");if(this.node.attributes.get("equalcolumns")){return this.getEqualColumns(t)}var e=this.getColumnAttributes("columnwidth",0);if(t==="auto"){return this.getColumnWidthsAuto(e)}if((0,l.isPercent)(t)){return this.getColumnWidthsPercent(e)}return this.getColumnWidthsFixed(e,this.length2em(t))};e.prototype.getEqualColumns=function(t){var e=Math.max(1,this.numCols);var r;if(t==="auto"){var i=this.getTableData().W;r=(0,h.max)(i)}else if((0,l.isPercent)(t)){r=this.percent(1/e)}else{var n=(0,h.sum)([].concat(this.cLines,this.cSpace))+2*this.fSpace[0];r=Math.max(0,this.length2em(t)-n)/e}return Array(this.numCols).fill(r)};e.prototype.getColumnWidthsAuto=function(t){var e=this;return t.map((function(t){if(t==="auto"||t==="fit")return null;if((0,l.isPercent)(t))return t;return e.length2em(t)}))};e.prototype.getColumnWidthsPercent=function(t){var e=this;var r=t.indexOf("fit")>=0;var i=(r?this.getTableData():{W:null}).W;return Array.from(t.keys()).map((function(n){var o=t[n];if(o==="fit")return null;if(o==="auto")return r?i[n]:null;if((0,l.isPercent)(o))return o;return e.length2em(o)}))};e.prototype.getColumnWidthsFixed=function(t,e){var r=this;var i=Array.from(t.keys());var n=i.filter((function(e){return t[e]==="fit"}));var o=i.filter((function(e){return t[e]==="auto"}));var a=n.length||o.length;var s=(a?this.getTableData():{W:null}).W;var l=e-(0,h.sum)([].concat(this.cLines,this.cSpace))-2*this.fSpace[0];var c=l;i.forEach((function(e){var i=t[e];c-=i==="fit"||i==="auto"?s[e]:r.length2em(i,l)}));var u=a&&c>0?c/a:0;return i.map((function(e){var i=t[e];if(i==="fit")return s[e]+u;if(i==="auto")return s[e]+(n.length===0?u:0);return r.length2em(i,l)}))};e.prototype.getVerticalPosition=function(t,e){var r=this.node.attributes.get("equalrows");var i=this.getTableData(),o=i.H,a=i.D;var s=r?this.getEqualRowHeight():0;var l=this.getRowHalfSpacing();var h=this.fLine;for(var c=0;cthis.numRows?null:i-1]};e.prototype.getColumnAttributes=function(t,e){if(e===void 0){e=1}var r=this.numCols-e;var i=this.getAttributeArray(t);if(i.length===0)return null;while(i.lengthr){i.splice(r)}return i};e.prototype.getRowAttributes=function(t,e){if(e===void 0){e=1}var r=this.numRows-e;var i=this.getAttributeArray(t);if(i.length===0)return null;while(i.lengthr){i.splice(r)}return i};e.prototype.getAttributeArray=function(t){var e=this.node.attributes.get(t);if(!e)return[this.node.attributes.getDefault(t)];return(0,l.split)(e)};e.prototype.addEm=function(t,e){var r=this;if(e===void 0){e=1}if(!t)return null;return t.map((function(t){return r.em(t/e)}))};e.prototype.convertLengths=function(t){var e=this;if(!t)return null;return t.map((function(t){return e.length2em(t)}))};return e}(t)}e.CommonMtableMixin=c},8256:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CommonMtdMixin=void 0;function i(t){return function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"fixesPWidth",{get:function(){return false},enumerable:false,configurable:true});e.prototype.invalidateBBox=function(){this.bboxComputed=false};e.prototype.getWrapWidth=function(t){var e=this.parent.parent;var r=this.parent;var i=this.node.childPosition()-(r.labeled?1:0);return typeof e.cWidths[i]==="number"?e.cWidths[i]:e.getTableData().W[i]};e.prototype.getChildAlign=function(t){return this.node.attributes.get("columnalign")};return e}(t)}e.CommonMtdMixin=i},58267:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CommonMtextMixin=void 0;function i(t){var e;return e=function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.getVariant=function(){var e=this.jax.options;var r=this.jax.math.outputData;var i=(!!r.merrorFamily||!!e.merrorFont)&&this.node.Parent.isKind("merror");if(!!r.mtextFamily||!!e.mtextFont||i){var n=this.node.attributes.get("mathvariant");var o=this.constructor.INHERITFONTS[n]||this.jax.font.getCssFont(n);var a=o[0]||(i?r.merrorFamily||e.merrorFont:r.mtextFamily||e.mtextFont);this.variant=this.explicitVariant(a,o[2]?"bold":"",o[1]?"italic":"");return}t.prototype.getVariant.call(this)};return e}(t),e.INHERITFONTS={normal:["",false,false],bold:["",false,true],italic:["",true,false],"bold-italic":["",true,true]},e}e.CommonMtextMixin=i},8518:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var i=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CommonMlabeledtrMixin=e.CommonMtrMixin=void 0;function n(t){return function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"fixesPWidth",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"numCells",{get:function(){return this.childNodes.length},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"labeled",{get:function(){return false},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"tableCells",{get:function(){return this.childNodes},enumerable:false,configurable:true});e.prototype.getChild=function(t){return this.childNodes[t]};e.prototype.getChildBBoxes=function(){return this.childNodes.map((function(t){return t.getBBox()}))};e.prototype.stretchChildren=function(t){var e,r,n,o,a,s;if(t===void 0){t=null}var l=[];var h=this.labeled?this.childNodes.slice(1):this.childNodes;try{for(var c=i(h),u=c.next();!u.done;u=c.next()){var f=u.value;var p=f.childNodes[0];if(p.canStretch(1)){l.push(p)}}}catch(O){e={error:O}}finally{try{if(u&&!u.done&&(r=c.return))r.call(c)}finally{if(e)throw e.error}}var d=l.length;var y=this.childNodes.length;if(d&&y>1){if(t===null){var v=0,m=0;var b=d>1&&d===y;try{for(var g=i(h),x=g.next();!x.done;x=g.next()){var f=x.value;var p=f.childNodes[0];var w=p.stretch.dir===0;if(b||w){var _=p.getBBox(w),M=_.h,j=_.d;if(M>v){v=M}if(j>m){m=j}}}}catch(T){n={error:T}}finally{try{if(x&&!x.done&&(o=g.return))o.call(g)}finally{if(n)throw n.error}}t=[v,m]}try{for(var C=i(l),S=C.next();!S.done;S=C.next()){var p=S.value;p.coreMO().getStretchedVariant(t)}}catch(B){a={error:B}}finally{try{if(S&&!S.done&&(s=C.return))s.call(C)}finally{if(a)throw a.error}}}};return e}(t)}e.CommonMtrMixin=n;function o(t){return function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"numCells",{get:function(){return Math.max(0,this.childNodes.length-1)},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"labeled",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"tableCells",{get:function(){return this.childNodes.slice(1)},enumerable:false,configurable:true});e.prototype.getChild=function(t){return this.childNodes[t+1]};e.prototype.getChildBBoxes=function(){return this.childNodes.slice(1).map((function(t){return t.getBBox()}))};return e}(t)}e.CommonMlabeledtrMixin=o},62358:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var n=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CommonScriptbaseMixin=void 0;var s=r(80747);function l(t){var e;return e=function(t){i(e,t);function e(){var e=[];for(var r=0;r1){var p=0;var d=u>1&&u===f;try{for(var y=a(this.childNodes),v=y.next();!v.done;v=y.next()){var c=v.value;var m=c.stretch.dir===0;if(d||m){var b=c.getOuterBBox(m),g=b.w,x=b.rscale;if(g*x>p)p=g*x}}}catch(j){r={error:j}}finally{try{if(v&&!v.done&&(i=y.return))i.call(y)}finally{if(r)throw r.error}}try{for(var w=a(s),_=w.next();!_.done;_=w.next()){var c=_.value;c.coreMO().getStretchedVariant([p/c.bbox.rscale])}}catch(C){n={error:C}}finally{try{if(_&&!_.done&&(o=w.return))o.call(w)}finally{if(n)throw n.error}}}};return e}(t),e.useIC=true,e}e.CommonScriptbaseMixin=l},32482:function(t,e){var r=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(e,"__esModule",{value:true});e.CommonSemanticsMixin=void 0;function i(t){return function(t){r(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.computeBBox=function(t,e){if(e===void 0){e=false}if(this.childNodes.length){var r=this.childNodes[0].getBBox(),i=r.w,n=r.h,o=r.d;t.w=i;t.h=n;t.d=o}};return e}(t)}e.CommonSemanticsMixin=i},58340:(t,e,r)=>{Object.defineProperty(e,"__esModule",{value:true});e.BBox=void 0;var i=r(86810);var n=function(){function t(t){if(t===void 0){t={w:0,h:-i.BIGDIMEN,d:-i.BIGDIMEN}}this.w=t.w||0;this.h="h"in t?t.h:-i.BIGDIMEN;this.d="d"in t?t.d:-i.BIGDIMEN;this.L=this.R=this.ic=this.sk=this.dx=0;this.scale=this.rscale=1;this.pwidth=""}t.zero=function(){return new t({h:0,d:0,w:0})};t.empty=function(){return new t};t.prototype.empty=function(){this.w=0;this.h=this.d=-i.BIGDIMEN;return this};t.prototype.clean=function(){if(this.w===-i.BIGDIMEN)this.w=0;if(this.h===-i.BIGDIMEN)this.h=0;if(this.d===-i.BIGDIMEN)this.d=0};t.prototype.rescale=function(t){this.w*=t;this.h*=t;this.d*=t};t.prototype.combine=function(t,e,r){if(e===void 0){e=0}if(r===void 0){r=0}var i=t.rscale;var n=e+i*(t.w+t.L+t.R);var o=r+i*t.h;var a=i*t.d-r;if(n>this.w)this.w=n;if(o>this.h)this.h=o;if(a>this.d)this.d=a};t.prototype.append=function(t){var e=t.rscale;this.w+=e*(t.w+t.L+t.R);if(e*t.h>this.h){this.h=e*t.h}if(e*t.d>this.d){this.d=e*t.d}};t.prototype.updateFrom=function(t){this.h=t.h;this.d=t.d;this.w=t.w;if(t.pwidth){this.pwidth=t.pwidth}};t.fullWidth="100%";t.StyleAdjust=[["borderTopWidth","h"],["borderRightWidth","w"],["borderBottomWidth","d"],["borderLeftWidth","w",0],["paddingTop","h"],["paddingRight","w"],["paddingBottom","d"],["paddingLeft","w",0]];return t}();e.BBox=n},43899:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var a=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i{Object.defineProperty(e,"__esModule",{value:true});e.PrioritizedList=void 0;var r=function(){function t(){this.items=[];this.items=[]}t.prototype[Symbol.iterator]=function(){var t=0;var e=this.items;return{next:function(){return{value:e[t++],done:t>e.length}}}};t.prototype.add=function(e,r){if(r===void 0){r=t.DEFAULTPRIORITY}var i=this.items.length;do{i--}while(i>=0&&r=0&&this.items[e].item!==t);if(e>=0){this.items.splice(e,1)}};t.DEFAULTPRIORITY=5;return t}();e.PrioritizedList=r},14454:function(t,e){var r=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.CssStyles=void 0;var i=function(){function t(t){if(t===void 0){t=null}this.styles={};this.addStyles(t)}Object.defineProperty(t.prototype,"cssText",{get:function(){return this.getStyleString()},enumerable:false,configurable:true});t.prototype.addStyles=function(t){var e,i;if(!t)return;try{for(var n=r(Object.keys(t)),o=n.next();!o.done;o=n.next()){var a=o.value;if(!this.styles[a]){this.styles[a]={}}Object.assign(this.styles[a],t[a])}}catch(s){e={error:s}}finally{try{if(o&&!o.done&&(i=n.return))i.call(n)}finally{if(e)throw e.error}}};t.prototype.removeStyles=function(){var t,e;var i=[];for(var n=0;n=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),n,o=[],a;try{while((e===void 0||e-- >0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var n=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,o;i1){e.shift();r.push(e.shift())}return r}function l(t){var e,i;var n=s(this.styles[t]);if(n.length===0){n.push("")}if(n.length===1){n.push(n[0])}if(n.length===2){n.push(n[0])}if(n.length===3){n.push(n[1])}try{for(var o=r(g.connect[t].children),a=o.next();!a.done;a=o.next()){var l=a.value;this.setStyle(this.childName(t,l),n.shift())}}catch(h){e={error:h}}finally{try{if(a&&!a.done&&(i=o.return))i.call(o)}finally{if(e)throw e.error}}}function h(t){var e,i;var n=g.connect[t].children;var o=[];try{for(var a=r(n),s=a.next();!s.done;s=a.next()){var l=s.value;var h=this.styles[t+"-"+l];if(!h){delete this.styles[t];return}o.push(h)}}catch(c){e={error:c}}finally{try{if(s&&!s.done&&(i=a.return))i.call(a)}finally{if(e)throw e.error}}if(o[3]===o[1]){o.pop();if(o[2]===o[0]){o.pop();if(o[1]===o[0]){o.pop()}}}this.styles[t]=o.join(" ")}function c(t){var e,i;try{for(var n=r(g.connect[t].children),o=n.next();!o.done;o=n.next()){var a=o.value;this.setStyle(this.childName(t,a),this.styles[t])}}catch(s){e={error:s}}finally{try{if(o&&!o.done&&(i=n.return))i.call(n)}finally{if(e)throw e.error}}}function u(t){var e,o;var a=n([],i(g.connect[t].children),false);var s=this.styles[this.childName(t,a.shift())];try{for(var l=r(a),h=l.next();!h.done;h=l.next()){var c=h.value;if(this.styles[this.childName(t,c)]!==s){delete this.styles[t];return}}}catch(u){e={error:u}}finally{try{if(h&&!h.done&&(o=l.return))o.call(l)}finally{if(e)throw e.error}}this.styles[t]=s}var f={width:/^(?:[\d.]+(?:[a-z]+)|thin|medium|thick|inherit|initial|unset)$/,style:/^(?:none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|inherit|initial|unset)$/};function p(t){var e,i,n,o;var a={width:"",style:"",color:""};try{for(var l=r(s(this.styles[t])),h=l.next();!h.done;h=l.next()){var c=h.value;if(c.match(f.width)&&a.width===""){a.width=c}else if(c.match(f.style)&&a.style===""){a.style=c}else{a.color=c}}}catch(y){e={error:y}}finally{try{if(h&&!h.done&&(i=l.return))i.call(l)}finally{if(e)throw e.error}}try{for(var u=r(g.connect[t].children),p=u.next();!p.done;p=u.next()){var d=p.value;this.setStyle(this.childName(t,d),a[d])}}catch(v){n={error:v}}finally{try{if(p&&!p.done&&(o=u.return))o.call(u)}finally{if(n)throw n.error}}}function d(t){var e,i;var n=[];try{for(var o=r(g.connect[t].children),a=o.next();!a.done;a=o.next()){var s=a.value;var l=this.styles[this.childName(t,s)];if(l){n.push(l)}}}catch(h){e={error:h}}finally{try{if(a&&!a.done&&(i=o.return))i.call(o)}finally{if(e)throw e.error}}if(n.length){this.styles[t]=n.join(" ")}else{delete this.styles[t]}}var y={style:/^(?:normal|italic|oblique|inherit|initial|unset)$/,variant:new RegExp("^(?:"+["normal|none","inherit|initial|unset","common-ligatures|no-common-ligatures","discretionary-ligatures|no-discretionary-ligatures","historical-ligatures|no-historical-ligatures","contextual|no-contextual","(?:stylistic|character-variant|swash|ornaments|annotation)\\([^)]*\\)","small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps","lining-nums|oldstyle-nums|proportional-nums|tabular-nums","diagonal-fractions|stacked-fractions","ordinal|slashed-zero","jis78|jis83|jis90|jis04|simplified|traditional","full-width|proportional-width","ruby"].join("|")+")$"),weight:/^(?:normal|bold|bolder|lighter|[1-9]00|inherit|initial|unset)$/,stretch:new RegExp("^(?:"+["normal","(?:(?:ultra|extra|semi)-)?condensed","(?:(?:semi|extra|ulta)-)?expanded","inherit|initial|unset"].join("|")+")$"),size:new RegExp("^(?:"+["xx-small|x-small|small|medium|large|x-large|xx-large|larger|smaller","[d.]+%|[d.]+[a-z]+","inherit|initial|unset"].join("|")+")"+"(?:/(?:normal|[d.+](?:%|[a-z]+)?))?$")};function v(t){var e,n,o,a;var l=s(this.styles[t]);var h={style:"",variant:[],weight:"",stretch:"",size:"",family:"","line-height":""};try{for(var c=r(l),u=c.next();!u.done;u=c.next()){var f=u.value;h.family=f;try{for(var p=(o=void 0,r(Object.keys(y))),d=p.next();!d.done;d=p.next()){var v=d.value;if((Array.isArray(h[v])||h[v]==="")&&f.match(y[v])){if(v==="size"){var b=i(f.split(/\//),2),g=b[0],x=b[1];h[v]=g;if(x){h["line-height"]=x}}else if(h.size===""){if(Array.isArray(h[v])){h[v].push(f)}else{h[v]=f}}}}}catch(w){o={error:w}}finally{try{if(d&&!d.done&&(a=p.return))a.call(p)}finally{if(o)throw o.error}}}}catch(_){e={error:_}}finally{try{if(u&&!u.done&&(n=c.return))n.call(c)}finally{if(e)throw e.error}}m(t,h);delete this.styles[t]}function m(t,e){var i,n;try{for(var o=r(g.connect[t].children),a=o.next();!a.done;a=o.next()){var s=a.value;var l=this.childName(t,s);if(Array.isArray(e[s])){var h=e[s];if(h.length){this.styles[l]=h.join(" ")}}else if(e[s]!==""){this.styles[l]=e[s]}}}catch(c){i={error:c}}finally{try{if(a&&!a.done&&(n=o.return))n.call(o)}finally{if(i)throw i.error}}}function b(t){}var g=function(){function t(t){if(t===void 0){t=""}this.parse(t)}Object.defineProperty(t.prototype,"cssText",{get:function(){var t,e;var i=[];try{for(var n=r(Object.keys(this.styles)),o=n.next();!o.done;o=n.next()){var a=o.value;var s=this.parentName(a);if(!this.styles[s]){i.push(a+": "+this.styles[a]+";")}}}catch(l){t={error:l}}finally{try{if(o&&!o.done&&(e=n.return))e.call(n)}finally{if(t)throw t.error}}return i.join(" ")},enumerable:false,configurable:true});t.prototype.set=function(e,r){e=this.normalizeName(e);this.setStyle(e,r);if(t.connect[e]&&!t.connect[e].combine){this.combineChildren(e);delete this.styles[e]}while(e.match(/-/)){e=this.parentName(e);if(!t.connect[e])break;t.connect[e].combine.call(this,e)}};t.prototype.get=function(t){t=this.normalizeName(t);return this.styles.hasOwnProperty(t)?this.styles[t]:""};t.prototype.setStyle=function(e,r){this.styles[e]=r;if(t.connect[e]&&t.connect[e].children){t.connect[e].split.call(this,e)}if(r===""){delete this.styles[e]}};t.prototype.combineChildren=function(e){var i,n;var o=this.parentName(e);try{for(var a=r(t.connect[e].children),s=a.next();!s.done;s=a.next()){var l=s.value;var h=this.childName(o,l);t.connect[h].combine.call(this,h)}}catch(c){i={error:c}}finally{try{if(s&&!s.done&&(n=a.return))n.call(a)}finally{if(i)throw i.error}}};t.prototype.parentName=function(t){var e=t.replace(/-[^-]*$/,"");return t===e?"":e};t.prototype.childName=function(e,r){if(r.match(/-/)){return r}if(t.connect[e]&&!t.connect[e].combine){r+=e.replace(/.*-/,"-");e=this.parentName(e)}return e+"-"+r};t.prototype.normalizeName=function(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))};t.prototype.parse=function(t){if(t===void 0){t=""}var e=this.constructor.pattern;this.styles={};var r=t.replace(e.comment,"").split(e.style);while(r.length>1){var n=i(r.splice(0,3),3),o=n[0],a=n[1],s=n[2];if(o.match(/[^\s\n]/))return;this.set(a,s)}};t.pattern={style:/([-a-z]+)[\s\n]*:[\s\n]*((?:'[^']*'|"[^"]*"|\n|.)*?)[\s\n]*(?:;|$)/g,comment:/\/\*[^]*?\*\//g};t.connect={padding:{children:o,split:l,combine:h},border:{children:o,split:c,combine:u},"border-top":{children:a,split:p,combine:d},"border-right":{children:a,split:p,combine:d},"border-bottom":{children:a,split:p,combine:d},"border-left":{children:a,split:p,combine:d},"border-width":{children:o,split:l,combine:null},"border-style":{children:o,split:l,combine:null},"border-color":{children:o,split:l,combine:null},font:{children:["style","variant","weight","stretch","line-height","size","family"],split:v,combine:b}};return t}();e.Styles=g},19468:(t,e)=>{Object.defineProperty(e,"__esModule",{value:true});e.max=e.sum=void 0;function r(t){return t.reduce((function(t,e){return t+e}),0)}e.sum=r;function i(t){return t.reduce((function(t,e){return Math.max(t,e)}),0)}e.max=i}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4266.155b468271987c81d948.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4266.155b468271987c81d948.js deleted file mode 100644 index 83e0f456ce687436d0edf7213ce408fb16202dec..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4266.155b468271987c81d948.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4266],{74266:(e,t,s)=>{s.r(t);s.d(t,{StyleModule:()=>r});const l="ͼ";const i=typeof Symbol=="undefined"?"__"+l:Symbol.for(l);const n=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet");const o=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{};class r{constructor(e,t){this.rules=[];let{finish:s}=t||{};function l(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}function i(e,t,n,o){let r=[],h=/^@(\w+)\b/.exec(e[0]),u=h&&h[1]=="keyframes";if(h&&t==null)return n.push(e[0]+";");for(let s in t){let o=t[s];if(/&/.test(s)){i(s.split(/,\s*/).map((t=>e.map((e=>t.replace(/&/,e))))).reduce(((e,t)=>e.concat(t))),o,n)}else if(o&&typeof o=="object"){if(!h)throw new RangeError("The value of a property ("+s+") should be a primitive value.");i(l(s),o,r,u)}else if(o!=null){r.push(s.replace(/_.*/,"").replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))+": "+o+";")}}if(r.length||u){n.push((s&&!h&&!o?e.map(s):e).join(", ")+" {"+r.join(" ")+"}")}}for(let n in e)i(l(n),e[n],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=o[i]||1;o[i]=e+1;return l+e.toString(36)}static mount(e,t,s){let l=e[n],i=s&&s.nonce;if(!l)l=new u(e,i);else if(i)l.setNonce(i);l.mount(Array.isArray(t)?t:[t],e)}}let h=new Map;class u{constructor(e,t){let s=e.ownerDocument||e,l=s.defaultView;if(!e.head&&e.adoptedStyleSheets&&l.CSSStyleSheet){let t=h.get(s);if(t)return e[n]=t;this.sheet=new l.CSSStyleSheet;h.set(s,this)}else{this.styleTag=s.createElement("style");if(t)this.styleTag.setAttribute("nonce",t)}this.modules=[];e[n]=this}mount(e,t){let s=this.sheet;let l=0,i=0;for(let n=0;n-1){this.modules.splice(o,1);i--;o=-1}if(o==-1){this.modules.splice(i++,0,t);if(s)for(let e=0;e{r.r(t);r.d(t,{ez80:()=>l,z80:()=>n});function i(e){var t,r;if(e){t=/^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i;r=/^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i}else{t=/^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i;r=/^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i}var i=/^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i;var n=/^(n?[zc]|p[oe]?|m)\b/i;var l=/^([hl][xy]|i[xy][hl]|slia|sll)\b/i;var a=/^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;return{name:"z80",startState:function(){return{context:0}},token:function(s,c){if(!s.column())c.context=0;if(s.eatSpace())return null;var u;if(s.eatWhile(/\w/)){if(e&&s.eat(".")){s.eatWhile(/\w/)}u=s.current();if(s.indentation()){if((c.context==1||c.context==4)&&i.test(u)){c.context=4;return"variable"}if(c.context==2&&n.test(u)){c.context=4;return"variableName.special"}if(t.test(u)){c.context=1;return"keyword"}else if(r.test(u)){c.context=2;return"keyword"}else if(c.context==4&&a.test(u)){return"number"}if(l.test(u))return"error"}else if(s.match(a)){return"number"}else{return null}}else if(s.eat(";")){s.skipToEnd();return"comment"}else if(s.eat('"')){while(u=s.next()){if(u=='"')break;if(u=="\\")s.next()}return"string"}else if(s.eat("'")){if(s.match(/\\?.'/))return"number"}else if(s.eat(".")||s.sol()&&s.eat("#")){c.context=5;if(s.eatWhile(/\w/))return"def"}else if(s.eat("$")){if(s.eatWhile(/[\da-f]/i))return"number"}else if(s.eat("%")){if(s.eatWhile(/[01]/))return"number"}else{s.next()}return null}}}const n=i(false);const l=i(true)}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4311.b44e8bc4829e0b1226d2.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4311.b44e8bc4829e0b1226d2.js deleted file mode 100644 index b42b32241f3fc979e3e8a42d41e4ddef036ef773..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4311.b44e8bc4829e0b1226d2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4311],{4311:(t,e,i)=>{i.d(e,{diagram:()=>z});var a=i(75905);var n=i(24982);var s=function(){var t=(0,a.K2)((function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i}),"o"),e=[1,3],i=[1,4],n=[1,5],s=[1,6],r=[1,7],o=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],h=[55,56,57],c=[2,36],d=[1,37],u=[1,36],x=[1,38],f=[1,35],g=[1,43],p=[1,41],y=[1,14],b=[1,23],T=[1,18],m=[1,19],k=[1,20],q=[1,21],_=[1,22],A=[1,24],S=[1,25],F=[1,26],P=[1,27],v=[1,28],C=[1,29],L=[1,32],I=[1,33],E=[1,34],D=[1,39],z=[1,40],w=[1,42],K=[1,44],U=[1,62],N=[1,61],R=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],B=[1,65],W=[1,66],$=[1,67],Q=[1,68],O=[1,69],X=[1,70],H=[1,71],M=[1,72],Y=[1,73],j=[1,74],G=[1,75],V=[1,76],Z=[4,5,6,7,8,9,10,11,12,13,14,15,18],J=[1,90],tt=[1,91],et=[1,92],it=[1,99],at=[1,93],nt=[1,96],st=[1,94],rt=[1,95],ot=[1,97],lt=[1,98],ht=[1,102],ct=[10,55,56,57],dt=[4,5,6,8,10,11,13,17,18,19,20,55,56,57];var ut={trace:(0,a.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:(0,a.K2)((function t(e,i,a,n,s,r,o){var l=r.length-1;switch(s){case 23:this.$=r[l];break;case 24:this.$=r[l-1]+""+r[l];break;case 26:this.$=r[l-1]+r[l];break;case 27:this.$=[r[l].trim()];break;case 28:r[l-2].push(r[l].trim());this.$=r[l-2];break;case 29:this.$=r[l-4];n.addClass(r[l-2],r[l]);break;case 37:this.$=[];break;case 42:this.$=r[l].trim();n.setDiagramTitle(this.$);break;case 43:this.$=r[l].trim();n.setAccTitle(this.$);break;case 44:case 45:this.$=r[l].trim();n.setAccDescription(this.$);break;case 46:n.addSection(r[l].substr(8));this.$=r[l].substr(8);break;case 47:n.addPoint(r[l-3],"",r[l-1],r[l],[]);break;case 48:n.addPoint(r[l-4],r[l-3],r[l-1],r[l],[]);break;case 49:n.addPoint(r[l-4],"",r[l-2],r[l-1],r[l]);break;case 50:n.addPoint(r[l-5],r[l-4],r[l-2],r[l-1],r[l]);break;case 51:n.setXAxisLeftText(r[l-2]);n.setXAxisRightText(r[l]);break;case 52:r[l-1].text+=" ⟶ ";n.setXAxisLeftText(r[l-1]);break;case 53:n.setXAxisLeftText(r[l]);break;case 54:n.setYAxisBottomText(r[l-2]);n.setYAxisTopText(r[l]);break;case 55:r[l-1].text+=" ⟶ ";n.setYAxisBottomText(r[l-1]);break;case 56:n.setYAxisBottomText(r[l]);break;case 57:n.setQuadrant1Text(r[l]);break;case 58:n.setQuadrant2Text(r[l]);break;case 59:n.setQuadrant3Text(r[l]);break;case 60:n.setQuadrant4Text(r[l]);break;case 64:this.$={text:r[l],type:"text"};break;case 65:this.$={text:r[l-1].text+""+r[l],type:r[l-1].type};break;case 66:this.$={text:r[l],type:"text"};break;case 67:this.$={text:r[l],type:"markdown"};break;case 68:this.$=r[l];break;case 69:this.$=r[l-1]+""+r[l];break}}),"anonymous"),table:[{18:e,26:1,27:2,28:i,55:n,56:s,57:r},{1:[3]},{18:e,26:8,27:2,28:i,55:n,56:s,57:r},{18:e,26:9,27:2,28:i,55:n,56:s,57:r},t(o,[2,33],{29:10}),t(l,[2,61]),t(l,[2,62]),t(l,[2,63]),{1:[2,30]},{1:[2,31]},t(h,c,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:u,10:x,12:f,13:g,14:p,18:y,25:b,35:T,37:m,39:k,41:q,42:_,48:A,50:S,51:F,52:P,53:v,54:C,60:L,61:I,63:E,64:D,65:z,66:w,67:K}),t(o,[2,34]),{27:45,55:n,56:s,57:r},t(h,[2,37]),t(h,c,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:d,5:u,10:x,12:f,13:g,14:p,18:y,25:b,35:T,37:m,39:k,41:q,42:_,48:A,50:S,51:F,52:P,53:v,54:C,60:L,61:I,63:E,64:D,65:z,66:w,67:K}),t(h,[2,39]),t(h,[2,40]),t(h,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(h,[2,45]),t(h,[2,46]),{18:[1,50]},{4:d,5:u,10:x,12:f,13:g,14:p,43:51,58:31,60:L,61:I,63:E,64:D,65:z,66:w,67:K},{4:d,5:u,10:x,12:f,13:g,14:p,43:52,58:31,60:L,61:I,63:E,64:D,65:z,66:w,67:K},{4:d,5:u,10:x,12:f,13:g,14:p,43:53,58:31,60:L,61:I,63:E,64:D,65:z,66:w,67:K},{4:d,5:u,10:x,12:f,13:g,14:p,43:54,58:31,60:L,61:I,63:E,64:D,65:z,66:w,67:K},{4:d,5:u,10:x,12:f,13:g,14:p,43:55,58:31,60:L,61:I,63:E,64:D,65:z,66:w,67:K},{4:d,5:u,10:x,12:f,13:g,14:p,43:56,58:31,60:L,61:I,63:E,64:D,65:z,66:w,67:K},{4:d,5:u,8:U,10:x,12:f,13:g,14:p,18:N,44:[1,57],47:[1,58],58:60,59:59,63:E,64:D,65:z,66:w,67:K},t(R,[2,64]),t(R,[2,66]),t(R,[2,67]),t(R,[2,70]),t(R,[2,71]),t(R,[2,72]),t(R,[2,73]),t(R,[2,74]),t(R,[2,75]),t(R,[2,76]),t(R,[2,77]),t(R,[2,78]),t(R,[2,79]),t(R,[2,80]),t(o,[2,35]),t(h,[2,38]),t(h,[2,42]),t(h,[2,43]),t(h,[2,44]),{3:64,4:B,5:W,6:$,7:Q,8:O,9:X,10:H,11:M,12:Y,13:j,14:G,15:V,21:63},t(h,[2,53],{59:59,58:60,4:d,5:u,8:U,10:x,12:f,13:g,14:p,18:N,49:[1,77],63:E,64:D,65:z,66:w,67:K}),t(h,[2,56],{59:59,58:60,4:d,5:u,8:U,10:x,12:f,13:g,14:p,18:N,49:[1,78],63:E,64:D,65:z,66:w,67:K}),t(h,[2,57],{59:59,58:60,4:d,5:u,8:U,10:x,12:f,13:g,14:p,18:N,63:E,64:D,65:z,66:w,67:K}),t(h,[2,58],{59:59,58:60,4:d,5:u,8:U,10:x,12:f,13:g,14:p,18:N,63:E,64:D,65:z,66:w,67:K}),t(h,[2,59],{59:59,58:60,4:d,5:u,8:U,10:x,12:f,13:g,14:p,18:N,63:E,64:D,65:z,66:w,67:K}),t(h,[2,60],{59:59,58:60,4:d,5:u,8:U,10:x,12:f,13:g,14:p,18:N,63:E,64:D,65:z,66:w,67:K}),{45:[1,79]},{44:[1,80]},t(R,[2,65]),t(R,[2,81]),t(R,[2,82]),t(R,[2,83]),{3:82,4:B,5:W,6:$,7:Q,8:O,9:X,10:H,11:M,12:Y,13:j,14:G,15:V,18:[1,81]},t(Z,[2,23]),t(Z,[2,1]),t(Z,[2,2]),t(Z,[2,3]),t(Z,[2,4]),t(Z,[2,5]),t(Z,[2,6]),t(Z,[2,7]),t(Z,[2,8]),t(Z,[2,9]),t(Z,[2,10]),t(Z,[2,11]),t(Z,[2,12]),t(h,[2,52],{58:31,43:83,4:d,5:u,10:x,12:f,13:g,14:p,60:L,61:I,63:E,64:D,65:z,66:w,67:K}),t(h,[2,55],{58:31,43:84,4:d,5:u,10:x,12:f,13:g,14:p,60:L,61:I,63:E,64:D,65:z,66:w,67:K}),{46:[1,85]},{45:[1,86]},{4:J,5:tt,6:et,8:it,11:at,13:nt,16:89,17:st,18:rt,19:ot,20:lt,22:88,23:87},t(Z,[2,24]),t(h,[2,51],{59:59,58:60,4:d,5:u,8:U,10:x,12:f,13:g,14:p,18:N,63:E,64:D,65:z,66:w,67:K}),t(h,[2,54],{59:59,58:60,4:d,5:u,8:U,10:x,12:f,13:g,14:p,18:N,63:E,64:D,65:z,66:w,67:K}),t(h,[2,47],{22:88,16:89,23:100,4:J,5:tt,6:et,8:it,11:at,13:nt,17:st,18:rt,19:ot,20:lt}),{46:[1,101]},t(h,[2,29],{10:ht}),t(ct,[2,27],{16:103,4:J,5:tt,6:et,8:it,11:at,13:nt,17:st,18:rt,19:ot,20:lt}),t(dt,[2,25]),t(dt,[2,13]),t(dt,[2,14]),t(dt,[2,15]),t(dt,[2,16]),t(dt,[2,17]),t(dt,[2,18]),t(dt,[2,19]),t(dt,[2,20]),t(dt,[2,21]),t(dt,[2,22]),t(h,[2,49],{10:ht}),t(h,[2,48],{22:88,16:89,23:104,4:J,5:tt,6:et,8:it,11:at,13:nt,17:st,18:rt,19:ot,20:lt}),{4:J,5:tt,6:et,8:it,11:at,13:nt,16:89,17:st,18:rt,19:ot,20:lt,22:105},t(dt,[2,26]),t(h,[2,50],{10:ht}),t(ct,[2,28],{16:103,4:J,5:tt,6:et,8:it,11:at,13:nt,17:st,18:rt,19:ot,20:lt})],defaultActions:{8:[2,30],9:[2,31]},parseError:(0,a.K2)((function t(e,i){if(i.recoverable){this.trace(e)}else{var a=new Error(e);a.hash=i;throw a}}),"parseError"),parse:(0,a.K2)((function t(e){var i=this,n=[0],s=[],r=[null],o=[],l=this.table,h="",c=0,d=0,u=0,x=2,f=1;var g=o.slice.call(arguments,1);var p=Object.create(this.lexer);var y={yy:{}};for(var b in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,b)){y.yy[b]=this.yy[b]}}p.setInput(e,y.yy);y.yy.lexer=p;y.yy.parser=this;if(typeof p.yylloc=="undefined"){p.yylloc={}}var T=p.yylloc;o.push(T);var m=p.options&&p.options.ranges;if(typeof y.yy.parseError==="function"){this.parseError=y.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function k(t){n.length=n.length-2*t;r.length=r.length-t;o.length=o.length-t}(0,a.K2)(k,"popStack");function q(){var t;t=s.pop()||p.lex()||f;if(typeof t!=="number"){if(t instanceof Array){s=t;t=s.pop()}t=i.symbols_[t]||t}return t}(0,a.K2)(q,"lex");var _,A,S,F,P,v,C={},L,I,E,D;while(true){S=n[n.length-1];if(this.defaultActions[S]){F=this.defaultActions[S]}else{if(_===null||typeof _=="undefined"){_=q()}F=l[S]&&l[S][_]}if(typeof F==="undefined"||!F.length||!F[0]){var z="";D=[];for(L in l[S]){if(this.terminals_[L]&&L>x){D.push("'"+this.terminals_[L]+"'")}}if(p.showPosition){z="Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[_]||_)+"'"}else{z="Parse error on line "+(c+1)+": Unexpected "+(_==f?"end of input":"'"+(this.terminals_[_]||_)+"'")}this.parseError(z,{text:p.match,token:this.terminals_[_]||_,line:p.yylineno,loc:T,expected:D})}if(F[0]instanceof Array&&F.length>1){throw new Error("Parse Error: multiple actions possible at state: "+S+", token: "+_)}switch(F[0]){case 1:n.push(_);r.push(p.yytext);o.push(p.yylloc);n.push(F[1]);_=null;if(!A){d=p.yyleng;h=p.yytext;c=p.yylineno;T=p.yylloc;if(u>0){u--}}else{_=A;A=null}break;case 2:I=this.productions_[F[1]][1];C.$=r[r.length-I];C._$={first_line:o[o.length-(I||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(I||1)].first_column,last_column:o[o.length-1].last_column};if(m){C._$.range=[o[o.length-(I||1)].range[0],o[o.length-1].range[1]]}v=this.performAction.apply(C,[h,d,c,y.yy,F[1],r,o].concat(g));if(typeof v!=="undefined"){return v}if(I){n=n.slice(0,-1*I*2);r=r.slice(0,-1*I);o=o.slice(0,-1*I)}n.push(this.productions_[F[1]][0]);r.push(C.$);o.push(C._$);E=l[n[n.length-2]][n[n.length-1]];n.push(E);break;case 3:return true}}return true}),"parse")};var xt=function(){var t={EOF:1,parseError:(0,a.K2)((function t(e,i){if(this.yy.parser){this.yy.parser.parseError(e,i)}else{throw new Error(e)}}),"parseError"),setInput:(0,a.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,a.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,a.K2)((function(t){var e=t.length;var i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(i.length-1){this.yylineno-=i.length-1}var n=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===a.length?this.yylloc.first_column:0)+a[a.length-i.length].length-i[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[n[0],n[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,a.K2)((function(){this._more=true;return this}),"more"),reject:(0,a.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,a.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,a.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,a.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,a.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,a.K2)((function(t,e){var i,a,n;if(this.options.backtrack_lexer){n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){n.yylloc.range=this.yylloc.range.slice(0)}}a=t[0].match(/(?:\r\n?|\n).*/g);if(a){this.yylineno+=a.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(i){return i}else if(this._backtrack){for(var s in n){this[s]=n[s]}return false}return false}),"test_match"),next:(0,a.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,i,a;if(!this._more){this.yytext="";this.match=""}var n=this._currentRules();for(var s=0;se[0].length)){e=i;a=s;if(this.options.backtrack_lexer){t=this.test_match(i,n[s]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,n[a]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,a.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,a.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,a.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,a.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,a.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,a.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,a.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,a.K2)((function t(e,i,a,n){var s=n;switch(a){case 0:break;case 1:break;case 2:return 55;break;case 3:break;case 4:this.begin("title");return 35;break;case 5:this.popState();return"title_value";break;case 6:this.begin("acc_title");return 37;break;case 7:this.popState();return"acc_title_value";break;case 8:this.begin("acc_descr");return 39;break;case 9:this.popState();return"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";break;case 13:return 48;break;case 14:return 50;break;case 15:return 49;break;case 16:return 51;break;case 17:return 52;break;case 18:return 53;break;case 19:return 54;break;case 20:return 25;break;case 21:this.begin("md_string");break;case 22:return"MD_STR";break;case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";break;case 27:this.begin("class_name");break;case 28:this.popState();return 47;break;case 29:this.begin("point_start");return 44;break;case 30:this.begin("point_x");return 45;break;case 31:this.popState();break;case 32:this.popState();this.begin("point_y");break;case 33:this.popState();return 46;break;case 34:return 28;break;case 35:return 4;break;case 36:return 11;break;case 37:return 64;break;case 38:return 10;break;case 39:return 65;break;case 40:return 65;break;case 41:return 14;break;case 42:return 13;break;case 43:return 67;break;case 44:return 66;break;case 45:return 12;break;case 46:return 8;break;case 47:return 5;break;case 48:return 18;break;case 49:return 56;break;case 50:return 63;break;case 51:return 57;break}}),"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:false},point_y:{rules:[33],inclusive:false},point_x:{rules:[32],inclusive:false},point_start:{rules:[30,31],inclusive:false},acc_descr_multiline:{rules:[11,12],inclusive:false},acc_descr:{rules:[9],inclusive:false},acc_title:{rules:[7],inclusive:false},title:{rules:[5],inclusive:false},md_string:{rules:[22,23],inclusive:false},string:{rules:[25,26],inclusive:false},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:true}}};return t}();ut.lexer=xt;function ft(){this.yy={}}(0,a.K2)(ft,"Parser");ft.prototype=ut;ut.Parser=ft;return new ft}();s.parser=s;var r=s;var o=(0,a.P$)();var l=class{constructor(){this.classes=new Map;this.config=this.getDefaultConfig();this.themeConfig=this.getDefaultThemeConfig();this.data=this.getDefaultData()}static{(0,a.K2)(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:true,showYAxis:true,showTitle:true,chartHeight:a.UI.quadrantChart?.chartWidth||500,chartWidth:a.UI.quadrantChart?.chartHeight||500,titlePadding:a.UI.quadrantChart?.titlePadding||10,titleFontSize:a.UI.quadrantChart?.titleFontSize||20,quadrantPadding:a.UI.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:a.UI.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:a.UI.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:a.UI.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:a.UI.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:a.UI.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:a.UI.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:a.UI.quadrantChart?.pointTextPadding||5,pointLabelFontSize:a.UI.quadrantChart?.pointLabelFontSize||12,pointRadius:a.UI.quadrantChart?.pointRadius||5,xAxisPosition:a.UI.quadrantChart?.xAxisPosition||"top",yAxisPosition:a.UI.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:a.UI.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:a.UI.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:o.quadrant1Fill,quadrant2Fill:o.quadrant2Fill,quadrant3Fill:o.quadrant3Fill,quadrant4Fill:o.quadrant4Fill,quadrant1TextFill:o.quadrant1TextFill,quadrant2TextFill:o.quadrant2TextFill,quadrant3TextFill:o.quadrant3TextFill,quadrant4TextFill:o.quadrant4TextFill,quadrantPointFill:o.quadrantPointFill,quadrantPointTextFill:o.quadrantPointTextFill,quadrantXAxisTextFill:o.quadrantXAxisTextFill,quadrantYAxisTextFill:o.quadrantYAxisTextFill,quadrantTitleFill:o.quadrantTitleFill,quadrantInternalBorderStrokeFill:o.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:o.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig();this.themeConfig=this.getDefaultThemeConfig();this.data=this.getDefaultData();this.classes=new Map;a.Rm.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}addClass(t,e){this.classes.set(t,e)}setConfig(t){a.Rm.trace("setConfig called with: ",t);this.config={...this.config,...t}}setThemeConfig(t){a.Rm.trace("setThemeConfig called with: ",t);this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,e,i,a){const n=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize;const s={top:t==="top"&&e?n:0,bottom:t==="bottom"&&e?n:0};const r=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize;const o={left:this.config.yAxisPosition==="left"&&i?r:0,right:this.config.yAxisPosition==="right"&&i?r:0};const l=this.config.titleFontSize+this.config.titlePadding*2;const h={top:a?l:0};const c=this.config.quadrantPadding+o.left;const d=this.config.quadrantPadding+s.top+h.top;const u=this.config.chartWidth-this.config.quadrantPadding*2-o.left-o.right;const x=this.config.chartHeight-this.config.quadrantPadding*2-s.top-s.bottom-h.top;const f=u/2;const g=x/2;const p={quadrantLeft:c,quadrantTop:d,quadrantWidth:u,quadrantHalfWidth:f,quadrantHeight:x,quadrantHalfHeight:g};return{xAxisSpace:s,yAxisSpace:o,titleSpace:h,quadrantSpace:p}}getAxisLabels(t,e,i,a){const{quadrantSpace:n,titleSpace:s}=a;const{quadrantHalfHeight:r,quadrantHeight:o,quadrantLeft:l,quadrantHalfWidth:h,quadrantTop:c,quadrantWidth:d}=n;const u=Boolean(this.data.xAxisRightText);const x=Boolean(this.data.yAxisTopText);const f=[];if(this.data.xAxisLeftText&&e){f.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:l+(u?h/2:0),y:t==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+c+o+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0})}if(this.data.xAxisRightText&&e){f.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:l+h+(u?h/2:0),y:t==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+c+o+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0})}if(this.data.yAxisBottomText&&i){f.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+l+d+this.config.quadrantPadding,y:c+o-(x?r/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90})}if(this.data.yAxisTopText&&i){f.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+l+d+this.config.quadrantPadding,y:c+r-(x?r/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90})}return f}getQuadrants(t){const{quadrantSpace:e}=t;const{quadrantHalfHeight:i,quadrantLeft:a,quadrantHalfWidth:n,quadrantTop:s}=e;const r=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:s,width:n,height:i,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:s,width:n,height:i,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:s+i,width:n,height:i,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:s+i,width:n,height:i,fill:this.themeConfig.quadrant4Fill}];for(const o of r){o.text.x=o.x+o.width/2;if(this.data.points.length===0){o.text.y=o.y+o.height/2;o.text.horizontalPos="middle"}else{o.text.y=o.y+this.config.quadrantTextTopPadding;o.text.horizontalPos="top"}}return r}getQuadrantPoints(t){const{quadrantSpace:e}=t;const{quadrantHeight:i,quadrantLeft:a,quadrantTop:s,quadrantWidth:r}=e;const o=(0,n.m4Y)().domain([0,1]).range([a,r+a]);const l=(0,n.m4Y)().domain([0,1]).range([i+s,s]);const h=this.data.points.map((t=>{const e=this.classes.get(t.className);if(e){t={...e,...t}}const i={x:o(t.x),y:l(t.y),fill:t.color??this.themeConfig.quadrantPointFill,radius:t.radius??this.config.pointRadius,text:{text:t.text,fill:this.themeConfig.quadrantPointTextFill,x:o(t.x),y:l(t.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:t.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:t.strokeWidth??"0px"};return i}));return h}getBorders(t){const e=this.config.quadrantExternalBorderStrokeWidth/2;const{quadrantSpace:i}=t;const{quadrantHalfHeight:a,quadrantHeight:n,quadrantLeft:s,quadrantHalfWidth:r,quadrantTop:o,quadrantWidth:l}=i;const h=[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-e,y1:o,x2:s+l+e,y2:o},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+l,y1:o+e,x2:s+l,y2:o+n-e},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-e,y1:o+n,x2:s+l+e,y2:o+n},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:o+e,x2:s,y2:o+n-e},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:o+e,x2:s+r,y2:o+n-e},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+e,y1:o+a,x2:s+l-e,y2:o+a}];return h}getTitle(t){if(t){return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}return}build(){const t=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText);const e=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText);const i=this.config.showTitle&&!!this.data.titleText;const a=this.data.points.length>0?"bottom":this.config.xAxisPosition;const n=this.calculateSpace(a,t,e,i);return{points:this.getQuadrantPoints(n),quadrants:this.getQuadrants(n),axisLabels:this.getAxisLabels(a,t,e,n),borderLines:this.getBorders(n),title:this.getTitle(i)}}};var h=class extends Error{static{(0,a.K2)(this,"InvalidStyleError")}constructor(t,e,i){super(`value for ${t} ${e} is invalid, please use a valid ${i}`);this.name="InvalidStyleError"}};function c(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}(0,a.K2)(c,"validateHexCode");function d(t){return!/^\d+$/.test(t)}(0,a.K2)(d,"validateNumber");function u(t){return!/^\d+px$/.test(t)}(0,a.K2)(u,"validateSizeInPixels");var x=(0,a.D7)();function f(t){return(0,a.jZ)(t.trim(),x)}(0,a.K2)(f,"textSanitizer");var g=new l;function p(t){g.setData({quadrant1Text:f(t.text)})}(0,a.K2)(p,"setQuadrant1Text");function y(t){g.setData({quadrant2Text:f(t.text)})}(0,a.K2)(y,"setQuadrant2Text");function b(t){g.setData({quadrant3Text:f(t.text)})}(0,a.K2)(b,"setQuadrant3Text");function T(t){g.setData({quadrant4Text:f(t.text)})}(0,a.K2)(T,"setQuadrant4Text");function m(t){g.setData({xAxisLeftText:f(t.text)})}(0,a.K2)(m,"setXAxisLeftText");function k(t){g.setData({xAxisRightText:f(t.text)})}(0,a.K2)(k,"setXAxisRightText");function q(t){g.setData({yAxisTopText:f(t.text)})}(0,a.K2)(q,"setYAxisTopText");function _(t){g.setData({yAxisBottomText:f(t.text)})}(0,a.K2)(_,"setYAxisBottomText");function A(t){const e={};for(const i of t){const[t,a]=i.trim().split(/\s*:\s*/);if(t==="radius"){if(d(a)){throw new h(t,a,"number")}e.radius=parseInt(a)}else if(t==="color"){if(c(a)){throw new h(t,a,"hex code")}e.color=a}else if(t==="stroke-color"){if(c(a)){throw new h(t,a,"hex code")}e.strokeColor=a}else if(t==="stroke-width"){if(u(a)){throw new h(t,a,"number of pixels (eg. 10px)")}e.strokeWidth=a}else{throw new Error(`style named ${t} is not supported.`)}}return e}(0,a.K2)(A,"parseStyles");function S(t,e,i,a,n){const s=A(n);g.addPoints([{x:i,y:a,text:f(t.text),className:e,...s}])}(0,a.K2)(S,"addPoint");function F(t,e){g.addClass(t,A(e))}(0,a.K2)(F,"addClass");function P(t){g.setConfig({chartWidth:t})}(0,a.K2)(P,"setWidth");function v(t){g.setConfig({chartHeight:t})}(0,a.K2)(v,"setHeight");function C(){const t=(0,a.D7)();const{themeVariables:e,quadrantChart:i}=t;if(i){g.setConfig(i)}g.setThemeConfig({quadrant1Fill:e.quadrant1Fill,quadrant2Fill:e.quadrant2Fill,quadrant3Fill:e.quadrant3Fill,quadrant4Fill:e.quadrant4Fill,quadrant1TextFill:e.quadrant1TextFill,quadrant2TextFill:e.quadrant2TextFill,quadrant3TextFill:e.quadrant3TextFill,quadrant4TextFill:e.quadrant4TextFill,quadrantPointFill:e.quadrantPointFill,quadrantPointTextFill:e.quadrantPointTextFill,quadrantXAxisTextFill:e.quadrantXAxisTextFill,quadrantYAxisTextFill:e.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:e.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:e.quadrantInternalBorderStrokeFill,quadrantTitleFill:e.quadrantTitleFill});g.setData({titleText:(0,a.ab)()});return g.build()}(0,a.K2)(C,"getQuadrantData");var L=(0,a.K2)((function(){g.clear();(0,a.IU)()}),"clear");var I={setWidth:P,setHeight:v,setQuadrant1Text:p,setQuadrant2Text:y,setQuadrant3Text:b,setQuadrant4Text:T,setXAxisLeftText:m,setXAxisRightText:k,setYAxisTopText:q,setYAxisBottomText:_,parseStyles:A,addPoint:S,addClass:F,getQuadrantData:C,clear:L,setAccTitle:a.SV,getAccTitle:a.iN,setDiagramTitle:a.ke,getDiagramTitle:a.ab,getAccDescription:a.m7,setAccDescription:a.EI};var E=(0,a.K2)(((t,e,i,s)=>{function r(t){return t==="top"?"hanging":"middle"}(0,a.K2)(r,"getDominantBaseLine");function o(t){return t==="left"?"start":"middle"}(0,a.K2)(o,"getTextAnchor");function l(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}(0,a.K2)(l,"getTransformation");const h=(0,a.D7)();a.Rm.debug("Rendering quadrant chart\n"+t);const c=h.securityLevel;let d;if(c==="sandbox"){d=(0,n.Ltv)("#i"+e)}const u=c==="sandbox"?(0,n.Ltv)(d.nodes()[0].contentDocument.body):(0,n.Ltv)("body");const x=u.select(`[id="${e}"]`);const f=x.append("g").attr("class","main");const g=h.quadrantChart?.chartWidth??500;const p=h.quadrantChart?.chartHeight??500;(0,a.a$)(x,p,g,h.quadrantChart?.useMaxWidth??true);x.attr("viewBox","0 0 "+g+" "+p);s.db.setHeight(p);s.db.setWidth(g);const y=s.db.getQuadrantData();const b=f.append("g").attr("class","quadrants");const T=f.append("g").attr("class","border");const m=f.append("g").attr("class","data-points");const k=f.append("g").attr("class","labels");const q=f.append("g").attr("class","title");if(y.title){q.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",r(y.title.horizontalPos)).attr("text-anchor",o(y.title.verticalPos)).attr("transform",l(y.title)).text(y.title.text)}if(y.borderLines){T.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",(t=>t.x1)).attr("y1",(t=>t.y1)).attr("x2",(t=>t.x2)).attr("y2",(t=>t.y2)).style("stroke",(t=>t.strokeFill)).style("stroke-width",(t=>t.strokeWidth))}const _=b.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");_.append("rect").attr("x",(t=>t.x)).attr("y",(t=>t.y)).attr("width",(t=>t.width)).attr("height",(t=>t.height)).attr("fill",(t=>t.fill));_.append("text").attr("x",0).attr("y",0).attr("fill",(t=>t.text.fill)).attr("font-size",(t=>t.text.fontSize)).attr("dominant-baseline",(t=>r(t.text.horizontalPos))).attr("text-anchor",(t=>o(t.text.verticalPos))).attr("transform",(t=>l(t.text))).text((t=>t.text.text));const A=k.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label");A.append("text").attr("x",0).attr("y",0).text((t=>t.text)).attr("fill",(t=>t.fill)).attr("font-size",(t=>t.fontSize)).attr("dominant-baseline",(t=>r(t.horizontalPos))).attr("text-anchor",(t=>o(t.verticalPos))).attr("transform",(t=>l(t)));const S=m.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");S.append("circle").attr("cx",(t=>t.x)).attr("cy",(t=>t.y)).attr("r",(t=>t.radius)).attr("fill",(t=>t.fill)).attr("stroke",(t=>t.strokeColor)).attr("stroke-width",(t=>t.strokeWidth));S.append("text").attr("x",0).attr("y",0).text((t=>t.text.text)).attr("fill",(t=>t.text.fill)).attr("font-size",(t=>t.text.fontSize)).attr("dominant-baseline",(t=>r(t.text.horizontalPos))).attr("text-anchor",(t=>o(t.text.verticalPos))).attr("transform",(t=>l(t.text)))}),"draw");var D={draw:E};var z={parser:r,db:I,renderer:D,styles:(0,a.K2)((()=>""),"styles")}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4323.b2bd8a329a81d30ed039.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4323.b2bd8a329a81d30ed039.js deleted file mode 100644 index 96d37f490f4e6f341825eadcefe63176b2634dd3..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4323.b2bd8a329a81d30ed039.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4323],{24323:(r,e,t)=>{t.r(e);t.d(e,{rpmChanges:()=>c,rpmSpec:()=>m});var a=/^-+$/;var n=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /;var i=/^[\w+.-]+@[\w.-]+/;const c={name:"rpmchanges",token:function(r){if(r.sol()){if(r.match(a)){return"tag"}if(r.match(n)){return"tag"}}if(r.match(i)){return"string"}r.next();return null}};var o=/^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/;var p=/^[a-zA-Z0-9()]+:/;var l=/^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/;var u=/^%(ifnarch|ifarch|if)/;var s=/^%(else|endif)/;var f=/^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/;const m={name:"rpmspec",startState:function(){return{controlFlow:false,macroParameters:false,section:false}},token:function(r,e){var t=r.peek();if(t=="#"){r.skipToEnd();return"comment"}if(r.sol()){if(r.match(p)){return"header"}if(r.match(l)){return"atom"}}if(r.match(/^\$\w+/)){return"def"}if(r.match(/^\$\{\w+\}/)){return"def"}if(r.match(s)){return"keyword"}if(r.match(u)){e.controlFlow=true;return"keyword"}if(e.controlFlow){if(r.match(f)){return"operator"}if(r.match(/^(\d+)/)){return"number"}if(r.eol()){e.controlFlow=false}}if(r.match(o)){if(r.eol()){e.controlFlow=false}return"number"}if(r.match(/^%[\w]+/)){if(r.match("(")){e.macroParameters=true}return"keyword"}if(e.macroParameters){if(r.match(/^\d+/)){return"number"}if(r.match(")")){e.macroParameters=false;return"keyword"}}if(r.match(/^%\{\??[\w \-\:\!]+\}/)){if(r.eol()){e.controlFlow=false}return"def"}r.next();return null}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4350.8c8a0e7a3ffe036494e1.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4350.8c8a0e7a3ffe036494e1.js deleted file mode 100644 index 730a8c9cf865e5588b6951ae692d9f4767fe3134..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4350.8c8a0e7a3ffe036494e1.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4350],{32017:e=>{"use strict";e.exports=function e(n,t){if(n===t)return true;if(n&&t&&typeof n=="object"&&typeof t=="object"){if(n.constructor!==t.constructor)return false;var i,r,s;if(Array.isArray(n)){i=n.length;if(i!=t.length)return false;for(r=i;r--!==0;)if(!e(n[r],t[r]))return false;return true}if(n.constructor===RegExp)return n.source===t.source&&n.flags===t.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===t.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===t.toString();s=Object.keys(n);i=s.length;if(i!==Object.keys(t).length)return false;for(r=i;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,s[r]))return false;for(r=i;r--!==0;){var o=s[r];if(!e(n[o],t[o]))return false}return true}return n!==n&&t!==t}},72492:e=>{"use strict";e.exports=function(e,n){if(!n)n={};if(typeof n==="function")n={cmp:n};var t=typeof n.cycles==="boolean"?n.cycles:false;var i=n.cmp&&function(e){return function(n){return function(t,i){var r={key:t,value:n[t]};var s={key:i,value:n[i]};return e(r,s)}}}(n.cmp);var r=[];return function e(n){if(n&&n.toJSON&&typeof n.toJSON==="function"){n=n.toJSON()}if(n===undefined)return;if(typeof n=="number")return isFinite(n)?""+n:"null";if(typeof n!=="object")return JSON.stringify(n);var s,o;if(Array.isArray(n)){o="[";for(s=0;s{"use strict";t.d(n,{P:()=>h});const i="view",r="[",s="]",o="{",a="}",u=":",c=",",l="@",f=">",d=/[[\]{}]/,p={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let g,m;function h(e,n,t){g=n||i;m=t||p;return v(e.trim()).map(O)}function b(e){return m[e]}function y(e,n,t,i,r){const s=e.length;let o=0,a;for(;n=0)--o;else if(i&&i.indexOf(a)>=0)++o}return n}function v(e){const n=[],t=e.length;let i=0,u=0;while(u' after between selector: "+e}i=i.map(O);const o=O(e.slice(1).trim());if(o.between){return{between:i,stream:o}}else{o.between=i}return o}function w(e){const n={source:g},t=[];let i=[0,0],c=0,f=0,p=e.length,m=0,h,v;if(e[p-1]===a){m=e.lastIndexOf(o);if(m>=0){try{i=j(e.substring(m+1,p-1))}catch(O){throw"Invalid throttle specification: "+e}e=e.slice(0,m).trim();p=e.length}else throw"Unmatched right brace: "+e;m=0}if(!p)throw e;if(e[0]===l)c=++m;h=y(e,m,u);if(h1){n.type=t[1];if(c){n.markname=t[0].slice(1)}else if(b(t[0])){n.marktype=t[0]}else{n.source=t[0]}}else{n.type=t[0]}if(n.type.slice(-1)==="!"){n.consume=true;n.type=n.type.slice(0,-1)}if(v!=null)n.filter=v;if(i[0])n.throttle=i[0];if(i[1])n.debounce=i[1];return n}function j(e){const n=e.split(c);if(!e.length||n.length>2)throw e;return n.map((n=>{const t=+n;if(t!==t)throw e;return t}))}},54350:(e,n,t)=>{"use strict";t.r(n);t.d(n,{accessPathDepth:()=>Q,accessPathWithDatum:()=>W,compile:()=>Iw,contains:()=>F,deepEqual:()=>h,deleteNestedProperty:()=>R,duplicate:()=>b,entries:()=>M,every:()=>D,fieldIntersection:()=>_,flatAccessWithDatum:()=>H,getFirstDefined:()=>X,hasIntersection:()=>B,hash:()=>w,internalField:()=>ne,isBoolean:()=>L,isEmpty:()=>z,isEqual:()=>S,isInternalField:()=>te,isNullOrFalse:()=>j,isNumeric:()=>re,keys:()=>N,logicalExpr:()=>U,mergeDeep:()=>A,never:()=>y,normalize:()=>bd,normalizeAngle:()=>ie,omit:()=>O,pick:()=>v,prefixGenerator:()=>P,removePathFromField:()=>V,replaceAll:()=>K,replacePathInField:()=>Y,resetIdCounter:()=>ee,setEqual:()=>E,some:()=>$,stringify:()=>x,titleCase:()=>I,unique:()=>C,uniqueId:()=>Z,vals:()=>T,varName:()=>q,version:()=>Gw});const i={rE:"5.6.1"};var r=t(26372);var s=t(18729);var o=t.n(s);var a=t(32017);var u=t.n(a);var c=t(72492);var l=t.n(c);function f(e){return!!e.or}function d(e){return!!e.and}function p(e){return!!e.not}function g(e,n){if(p(e)){g(e.not,n)}else if(d(e)){for(const t of e.and){g(t,n)}}else if(f(e)){for(const t of e.or){g(t,n)}}else{n(e)}}function m(e,n){if(p(e)){return{not:m(e.not,n)}}else if(d(e)){return{and:e.and.map((e=>m(e,n)))}}else if(f(e)){return{or:e.or.map((e=>m(e,n)))}}else{return n(e)}}const h=u();const b=o();function y(e){throw new Error(e)}function v(e,n){const t={};for(const i of n){if((0,r.mQ)(e,i)){t[i]=e[i]}}return t}function O(e,n){const t=Object.assign({},e);for(const i of n){delete t[i]}return t}Set.prototype["toJSON"]=function(){return`Set(${[...this].map((e=>l()(e))).join(",")})`};const x=l();function w(e){if((0,r.Et)(e)){return e}const n=(0,r.Kg)(e)?e:l()(e);if(n.length<250){return n}let t=0;for(let i=0;in===0?e:`[${e}]`));const s=i.map(((e,n)=>i.slice(0,n+1).join("")));for(const t of s){n.add(t)}}return n}function _(e,n){if(e===undefined||n===undefined){return true}return B(P(e),P(n))}function z(e){return N(e).length===0}const N=Object.keys;const T=Object.values;const M=Object.entries;function L(e){return e===true||e===false}function q(e){const n=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+n}function U(e,n){if(p(e)){return`!(${U(e.not,n)})`}else if(d(e)){return`(${e.and.map((e=>U(e,n))).join(") && (")})`}else if(f(e)){return`(${e.or.map((e=>U(e,n))).join(") || (")})`}else{return n(e)}}function R(e,n){if(n.length===0){return true}const t=n.shift();if(t in e&&R(e[t],n)){delete e[t]}return z(e)}function I(e){return e.charAt(0).toUpperCase()+e.substr(1)}function W(e,n="datum"){const t=(0,r.iv)(e);const i=[];for(let s=1;s<=t.length;s++){const e=`[${t.slice(0,s).map(r.r$).join("][")}]`;i.push(`${n}${e}`)}return i.join(" && ")}function H(e,n="datum"){return`${n}[${(0,r.r$)((0,r.iv)(e).join("."))}]`}function G(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function Y(e){return`${(0,r.iv)(e).map(G).join("\\.")}`}function K(e,n,t){return e.replace(new RegExp(n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),t)}function V(e){return`${(0,r.iv)(e).join(".")}`}function Q(e){if(!e){return 0}return(0,r.iv)(e).length}function X(...e){for(const n of e){if(n!==undefined){return n}}return undefined}let J=42;function Z(e){const n=++J;return e?String(e)+n:n}function ee(){J=42}function ne(e){return te(e)?e:`__${e}`}function te(e){return e.startsWith("__")}function ie(e){if(e===undefined){return undefined}return(e%360+360)%360}function re(e){if((0,r.Et)(e)){return true}return!isNaN(e)&&!isNaN(parseFloat(e))}var se=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);rSt(e[n])?q(`_${n}_${M(e[n])}`):q(`_${n}_${e[n]}`))).join("")}function At(e){return e===true||Ct(e)&&!e.binned}function kt(e){return e==="binned"||Ct(e)&&e.binned===true}function Ct(e){return(0,r.Gv)(e)}function St(e){return e===null||e===void 0?void 0:e["param"]}function Et(e){switch(e){case oe:case ae:case Ae:case je:case Fe:case $e:case Be:case Ce:case Se:case Ee:case De:return 6;case Pe:return 4;default:return 10}}function Bt(e){return!!(e===null||e===void 0?void 0:e.expr)}function Pt(e){const n=N(e||{});const t={};for(const i of n){t[i]=Vt(e[i])}return t}var _t=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{var i;e.field.push(Du(t,n));e.order.push((i=t.sort)!==null&&i!==void 0?i:"ascending");return e}),{field:[],order:[]})}function ui(e,n){const t=[...e];n.forEach((e=>{for(const n of t){if(h(n,e)){return}}t.push(e)}));return t}function ci(e,n){if(h(e,n)||!n){return e}else if(!e){return n}else{return[...(0,r.YO)(e),...(0,r.YO)(n)].join(", ")}}function li(e,n){const t=e.value;const i=n.value;if(t==null||i===null){return{explicit:e.explicit,value:null}}else if((Nt(t)||Tt(t))&&(Nt(i)||Tt(i))){return{explicit:e.explicit,value:ci(t,i)}}else if(Nt(t)||Tt(t)){return{explicit:e.explicit,value:t}}else if(Nt(i)||Tt(i)){return{explicit:e.explicit,value:i}}else if(!Nt(t)&&!Tt(t)&&!Nt(i)&&!Tt(i)){return{explicit:e.explicit,value:ui(t,i)}}throw new Error("It should never reach here")}function fi(e){return`Invalid specification ${x(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const di='Autosize "fit" only works for single views and layered views.';function pi(e){const n=e=="width"?"Width":"Height";return`${n} "container" only works for single views and layered views.`}function gi(e){const n=e=="width"?"Width":"Height";const t=e=="width"?"x":"y";return`${n} "container" only works well with autosize "fit" or "fit-${t}".`}function mi(e){return e?`Dropping "fit-${e}" because spec has discrete ${vn(e)}.`:`Dropping "fit" because spec has discrete size.`}function hi(e){return`Unknown field for ${e}. Cannot calculate view size.`}function bi(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function yi(e,n){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${n}").`}function vi(e){return`The "nearest" transform is not supported for ${e} marks.`}function Oi(e){return`Selection not supported for ${e} yet.`}function xi(e){return`Cannot find a selection named "${e}".`}const wi="Scale bindings are currently only supported for scales with unbinned, continuous domains.";const ji="Legend bindings are only supported for selections over an individual field or encoding channel.";function Fi(e){return`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`}function $i(e){return`Cannot define and lookup the "${e}" selection in the same view. `+`Try moving the lookup into a second, layered view?`}const Di="The same selection must be used to override scale domains in a layered view.";const Ai='Interval selections should be initialized using "x" and/or "y" keys.';function ki(e){return`Unknown repeated value "${e}".`}function Ci(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const Si="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function Ei(e){return`Unrecognized parse "${e}".`}function Bi(e,n,t){return`An ancestor parsed field "${e}" as ${t} but a child wants to parse the field as ${n}.`}const Pi="Attempt to add the same child twice.";function _i(e){return`Ignoring an invalid transform: ${x(e)}.`}const zi='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function Ni(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function Ti(e){const{parentProjection:n,projection:t}=e;return`Layer's shared projection ${x(n)} is overridden by a child projection ${x(t)}.`}const Mi="Arc marks uses theta channel rather than angle, replacing angle with theta.";function Li(e){return`${e}Offset dropped because ${e} is continuous`}function qi(e){return`There is no ${e} encoding. Replacing ${e}Offset encoding as ${e}.`}function Ui(e,n,t){return`Channel ${e} is a ${n}. Converted to {value: ${x(t)}}.`}function Ri(e){return`Invalid field type "${e}".`}function Ii(e,n){return`Invalid field type "${e}" for aggregate: "${n}", using "quantitative" instead.`}function Wi(e){return`Invalid aggregation operator "${e}".`}function Hi(e,n){return`Missing type for channel "${e}", using "${n}" instead.`}function Gi(e,n){const{fill:t,stroke:i}=n;return`Dropping color ${e} as the plot also has ${t&&i?"fill and stroke":t?"fill":"stroke"}.`}function Yi(e){return`Position range does not support relative band size for ${e}.`}function Ki(e,n){return`Dropping ${x(e)} from channel "${n}" since it does not contain any data field, datum, value, or signal.`}const Vi="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function Qi(e,n,t){return`${e} dropped as it is incompatible with "${n}"${t?` when ${t}`:""}.`}function Xi(e){return`${e} encoding has no scale, so specified scale is ignored.`}function Ji(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function Zi(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function er(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function nr(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function tr(e,n){return`Using discrete channel "${e}" to encode "${n}" field can be misleading as it does not encode ${n==="ordinal"?"order":"magnitude"}.`}function ir(e){return`The ${e} for range marks cannot be an expression`}function rr(e,n){const t=e&&n?"x2 and y2":e?"x2":"y2";return`Line mark is for continuous lines and thus cannot be used with ${t}. We will use the rule mark (line segments) instead.`}function sr(e,n){return`Specified orient "${e}" overridden with "${n}".`}const or="Custom domain scale cannot be unioned with default field-based domain.";function ar(e){return`Cannot use the scale property "${e}" with non-color channel.`}function ur(e){return`Cannot use the relative band size with ${e} scale.`}function cr(e){return`Using unaggregated domain with raw field has no effect (${x(e)}).`}function lr(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function fr(e){return`Unaggregated domain is currently unsupported for log scale (${x(e)}).`}function dr(e){return`Cannot apply size to non-oriented mark "${e}".`}function pr(e,n,t){return`Channel "${e}" does not work with "${n}" scale. We are using "${t}" scale instead.`}function gr(e,n){return`FieldDef does not work with "${e}" scale. We are using "${n}" scale instead.`}function mr(e,n,t){return`${t}-scale's "${n}" is dropped as it does not work with ${e} scale.`}function hr(e,n){return`Scale type "${n}" does not work with mark "${e}".`}function br(e){return`The step for "${e}" is dropped because the ${e==="width"?"x":"y"} is continuous.`}function yr(e,n,t,i){return`Conflicting ${n.toString()} property "${e.toString()}" (${x(t)} and ${x(i)}). Using ${x(t)}.`}function vr(e,n,t,i){return`Conflicting ${n.toString()} property "${e.toString()}" (${x(t)} and ${x(i)}). Using the union of the two domains.`}function Or(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}function xr(e){return`Dropping sort property ${x(e)} as unioned domains only support boolean or op "count", "min", and "max".`}const wr="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";const jr="Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect.";const Fr="Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect.";const $r="Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.";const Dr="Invalid channel for axis.";function Ar(e){return`Cannot stack "${e}" if there is already "${e}2".`}function kr(e){return`Cannot stack non-linear scale (${e}).`}function Cr(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}").`}function Sr(e,n){return`Invalid ${e}: ${x(n)}.`}function Er(e){return`Dropping day from datetime ${x(e)} as day cannot be combined with other units.`}function Br(e,n){return`${n?"extent ":""}${n&&e?"and ":""}${e?"center ":""}${n&&e?"are ":"is "}not needed when data are aggregated.`}function Pr(e,n,t){return`${e} is not usually used with ${n} for ${t}.`}function _r(e,n){return`Continuous axis should not have customized aggregation function ${e}; ${n} already agregates the axis.`}function zr(e){return`1D error band does not support ${e}.`}function Nr(e){return`Channel ${e} is required for "binned" bin.`}function Tr(e){return`Channel ${e} should not be used with "binned" bin.`}function Mr(e){return`Domain for ${e} is required for threshold scale.`}var Lr=undefined&&undefined.__classPrivateFieldSet||function(e,n,t,i,r){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof n==="function"?e!==n||!r:!n.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?r.call(e,t):r?r.value=t:n.set(e,t),t};var qr=undefined&&undefined.__classPrivateFieldGet||function(e,n,t,i){if(t==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof n==="function"?e!==n||!i:!n.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?i:t==="a"?i.call(e):i?i.value:n.get(e)};var Ur;const Rr=(0,r.vF)(r.P$);let Ir=Rr;class Wr{constructor(){this.warns=[];this.infos=[];this.debugs=[];Ur.set(this,Warn)}level(e){if(e){Lr(this,Ur,e,"f");return this}return qr(this,Ur,"f")}warn(...e){if(qr(this,Ur,"f")>=Warn)this.warns.push(...e);return this}info(...e){if(qr(this,Ur,"f")>=Info)this.infos.push(...e);return this}debug(...e){if(qr(this,Ur,"f")>=Debug)this.debugs.push(...e);return this}error(...e){if(qr(this,Ur,"f")>=ErrorLevel)throw Error(...e);return this}}Ur=new WeakMap;function Hr(e){return()=>{Ir=new Wr;e(Ir);Yr()}}function Gr(e){Ir=e;return Ir}function Yr(){Ir=Rr;return Ir}function Kr(...e){Ir.error(...e)}function Vr(...e){Ir.warn(...e)}function Qr(...e){Ir.info(...e)}function Xr(...e){Ir.debug(...e)}function Jr(e){if(e&&(0,r.Gv)(e)){for(const n of ds){if(n in e){return true}}}return false}const Zr=["january","february","march","april","may","june","july","august","september","october","november","december"];const es=Zr.map((e=>e.substr(0,3)));const ns=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];const ts=ns.map((e=>e.substr(0,3)));function is(e){if(re(e)){e=+e}if((0,r.Et)(e)){if(e>4){Vr(Sr("quarter",e))}return e-1}else{throw new Error(Sr("quarter",e))}}function rs(e){if(re(e)){e=+e}if((0,r.Et)(e)){return e-1}else{const n=e.toLowerCase();const t=Zr.indexOf(n);if(t!==-1){return t}const i=n.substr(0,3);const r=es.indexOf(i);if(r!==-1){return r}throw new Error(Sr("month",e))}}function ss(e){if(re(e)){e=+e}if((0,r.Et)(e)){return e%7}else{const n=e.toLowerCase();const t=ns.indexOf(n);if(t!==-1){return t}const i=n.substr(0,3);const r=ts.indexOf(i);if(r!==-1){return r}throw new Error(Sr("day",e))}}function os(e,n){const t=[];if(n&&e.day!==undefined){if(N(e).length>1){Vr(Er(e));e=b(e);delete e.day}}if(e.year!==undefined){t.push(e.year)}else{t.push(2012)}if(e.month!==undefined){const i=n?rs(e.month):e.month;t.push(i)}else if(e.quarter!==undefined){const i=n?is(e.quarter):e.quarter;t.push((0,r.Et)(i)?i*3:`${i}*3`)}else{t.push(0)}if(e.date!==undefined){t.push(e.date)}else if(e.day!==undefined){const i=n?ss(e.day):e.day;t.push((0,r.Et)(i)?i+1:`${i}+1`)}else{t.push(1)}for(const i of["hours","minutes","seconds","milliseconds"]){const n=e[i];t.push(typeof n==="undefined"?0:n)}return t}function as(e){const n=os(e,true);const t=n.join(", ");if(e.utc){return`utc(${t})`}else{return`datetime(${t})`}}function us(e){const n=os(e,false);const t=n.join(", ");if(e.utc){return`utc(${t})`}else{return`datetime(${t})`}}function cs(e){const n=os(e,true);if(e.utc){return+new Date(Date.UTC(...n))}else{return+new Date(...n)}}var ls=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);rxs(e,n)))}function xs(e,n){const t=e.indexOf(n);if(t<0){return false}if(t>0&&n==="seconds"&&e.charAt(t-1)==="i"){return false}if(e.length>t+3&&n==="day"&&e.charAt(t+3)==="o"){return false}if(t>0&&n==="year"&&e.charAt(t-1)==="f"){return false}return true}function ws(e,n,{end:t}={end:false}){const i=W(n);const r=bs(e)?"utc":"";function s(e){if(e==="quarter"){return`(${r}quarter(${i})-1)`}else{return`${r}${e}(${i})`}}let o;const a={};for(const u of ds){if(xs(e,u)){a[u]=s(u);o=u}}if(t){a[o]+="+1"}return us(a)}function js(e){if(!e){return undefined}const n=Os(e);return`timeUnitSpecifier(${x(n)}, ${x(vs)})`}function Fs(e,n,t){if(!e){return undefined}const i=js(e);const r=t||bs(e);return`${r?"utc":"time"}Format(${n}, ${i})`}function $s(e){if(!e){return undefined}let n;if((0,r.Kg)(e)){n={unit:e}}else if((0,r.Gv)(e)){n=Object.assign(Object.assign({},e),e.unit?{unit:e.unit}:{})}if(bs(n.unit)){n.utc=true;n.unit=ys(n.unit)}return n}function Ds(e){const n=$s(e),{utc:t}=n,i=ls(n,["utc"]);if(i.unit){return(t?"utc":"")+N(i).map((e=>q(`${e==="unit"?"":`_${e}_`}${i[e]}`))).join("")}else{return(t?"utc":"")+"timeunit"+N(i).map((e=>q(`_${e}_${i[e]}`))).join("")}}function As(e){return e===null||e===void 0?void 0:e["param"]}function ks(e){return!!(e===null||e===void 0?void 0:e.field)&&e.equal!==undefined}function Cs(e){return!!(e===null||e===void 0?void 0:e.field)&&e.lt!==undefined}function Ss(e){return!!(e===null||e===void 0?void 0:e.field)&&e.lte!==undefined}function Es(e){return!!(e===null||e===void 0?void 0:e.field)&&e.gt!==undefined}function Bs(e){return!!(e===null||e===void 0?void 0:e.field)&&e.gte!==undefined}function Ps(e){if(e===null||e===void 0?void 0:e.field){if((0,r.cy)(e.range)&&e.range.length===2){return true}else if(Tt(e.range)){return true}}return false}function _s(e){return!!(e===null||e===void 0?void 0:e.field)&&((0,r.cy)(e.oneOf)||(0,r.cy)(e.in))}function zs(e){return!!(e===null||e===void 0?void 0:e.field)&&e.valid!==undefined}function Ns(e){return _s(e)||ks(e)||Ps(e)||Cs(e)||Es(e)||Ss(e)||Bs(e)}function Ts(e,n){return Ju(e,{timeUnit:n,wrapTime:true})}function Ms(e,n){return e.map((e=>Ts(e,n)))}function Ls(e,n=true){var t;const{field:i}=e;const r=(t=$s(e.timeUnit))===null||t===void 0?void 0:t.unit;const s=r?`time(${ws(r,i)})`:Du(e,{expr:"datum"});if(ks(e)){return`${s}===${Ts(e.equal,r)}`}else if(Cs(e)){const n=e.lt;return`${s}<${Ts(n,r)}`}else if(Es(e)){const n=e.gt;return`${s}>${Ts(n,r)}`}else if(Ss(e)){const n=e.lte;return`${s}<=${Ts(n,r)}`}else if(Bs(e)){const n=e.gte;return`${s}>=${Ts(n,r)}`}else if(_s(e)){return`indexof([${Ms(e.oneOf,r).join(",")}], ${s}) !== -1`}else if(zs(e)){return qs(s,e.valid)}else if(Ps(e)){const{range:t}=e;const i=Tt(t)?{signal:`${t.signal}[0]`}:t[0];const o=Tt(t)?{signal:`${t.signal}[1]`}:t[1];if(i!==null&&o!==null&&n){return"inrange("+s+", ["+Ts(i,r)+", "+Ts(o,r)+"])"}const a=[];if(i!==null){a.push(`${s} >= ${Ts(i,r)}`)}if(o!==null){a.push(`${s} <= ${Ts(o,r)}`)}return a.length>0?a.join(" && "):"true"}throw new Error(`Invalid field predicate: ${x(e)}`)}function qs(e,n=true){if(n){return`isValid(${e}) && isFinite(+${e})`}else{return`!isValid(${e}) || !isFinite(+${e})`}}function Us(e){var n;if(Ns(e)&&e.timeUnit){return Object.assign(Object.assign({},e),{timeUnit:(n=$s(e.timeUnit))===null||n===void 0?void 0:n.unit})}return e}var Rs=t(78352);const Is={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Ws(e){return e in Is}function Hs(e){return e==="quantitative"||e==="temporal"}function Gs(e){return e==="ordinal"||e==="nominal"}const Ys=Is.quantitative;const Ks=Is.ordinal;const Vs=Is.temporal;const Qs=Is.nominal;const Xs=Is.geojson;const Js=N(Is);function Zs(e){if(e){e=e.toLowerCase();switch(e){case"q":case Ys:return"quantitative";case"t":case Vs:return"temporal";case"o":case Ks:return"ordinal";case"n":case Qs:return"nominal";case Xs:return"geojson"}}return undefined}var eo=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{switch(n.fieldTitle){case"plain":return e.field;case"functional":return Eu(e);default:return Su(e,n)}};let Pu=Bu;function _u(e){Pu=e}function zu(){_u(Bu)}function Nu(e,n,{allowDisabling:t,includeDefault:i=true}){var r,s;const o=(r=Tu(e))===null||r===void 0?void 0:r.title;if(!fu(e)){return o!==null&&o!==void 0?o:e.title}const a=e;const u=i?Mu(a,n):undefined;if(t){return X(o,a.title,u)}else{return(s=o!==null&&o!==void 0?o:a.title)!==null&&s!==void 0?s:u}}function Tu(e){if(xu(e)&&e.axis){return e.axis}else if(wu(e)&&e.legend){return e.legend}else if(Xa(e)&&e.header){return e.header}return undefined}function Mu(e,n){return Pu(e,n)}function Lu(e){var n;if(ju(e)){const{format:n,formatType:t}=e;return{format:n,formatType:t}}else{const t=(n=Tu(e))!==null&&n!==void 0?n:{};const{format:i,formatType:r}=t;return{format:i,formatType:r}}}function qu(e,n){var t;switch(n){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(iu(e)&&(0,r.cy)(e.sort)){return"ordinal"}const{aggregate:i,bin:s,timeUnit:o}=e;if(o){return"temporal"}if(s||i&&!vt(i)&&!yt(i)){return"quantitative"}if(Ou(e)&&((t=e.scale)===null||t===void 0?void 0:t.type)){switch(to[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}}return"nominal"}function Uu(e){if(fu(e)){return e}else if(uu(e)){return e.condition}return undefined}function Ru(e){if(bu(e)){return e}else if(cu(e)){return e.condition}return undefined}function Iu(e,n,t,i={}){if((0,r.Kg)(e)||(0,r.Et)(e)||(0,r.Lm)(e)){const t=(0,r.Kg)(e)?"string":(0,r.Et)(e)?"number":"boolean";Vr(Ui(n,t,e));return{value:e}}if(bu(e)){return Wu(e,n,t,i)}else if(cu(e)){return Object.assign(Object.assign({},e),{condition:Wu(e.condition,n,t,i)})}return e}function Wu(e,n,t,i){if(ju(e)){const{format:r,formatType:s}=e,o=Za(e,["format","formatType"]);if(Sa(s)&&!t.customFormatTypes){Vr(Ni(n));return Wu(o,n,t,i)}}else{const r=xu(e)?"axis":wu(e)?"legend":Xa(e)?"header":null;if(r&&e[r]){const s=e[r],{format:o,formatType:a}=s,u=Za(s,["format","formatType"]);if(Sa(a)&&!t.customFormatTypes){Vr(Ni(n));return Wu(Object.assign(Object.assign({},e),{[r]:u}),n,t,i)}}}if(fu(e)){return Gu(e,n,i)}return Hu(e)}function Hu(e){let n=e["type"];if(n){return e}const{datum:t}=e;n=(0,r.Et)(t)?"quantitative":(0,r.Kg)(t)?"nominal":Jr(t)?"temporal":undefined;return Object.assign(Object.assign({},e),{type:n})}function Gu(e,n,{compositeMark:t=false}={}){const{aggregate:i,timeUnit:s,bin:o,field:a}=e;const u=Object.assign({},e);if(!t&&i&&!Ot(i)&&!vt(i)&&!yt(i)){Vr(Wi(i));delete u.aggregate}if(s){u.timeUnit=$s(s)}if(a){u.field=`${a}`}if(At(o)){u.bin=Yu(o,n)}if(kt(o)&&!Rn(n)){Vr(Tr(n))}if(yu(u)){const{type:e}=u;const n=Zs(e);if(e!==n){u.type=n}if(e!=="quantitative"){if(wt(i)){Vr(Ii(e,i));u.type="quantitative"}}}else if(!mn(n)){const e=qu(u,n);u["type"]=e}if(yu(u)){const{compatible:e,warning:t}=Vu(u,n)||{};if(e===false){Vr(t)}}if(iu(u)&&(0,r.Kg)(u.sort)){const{sort:e}=u;if(Ga(e)){return Object.assign(Object.assign({},u),{sort:{encoding:e}})}const n=e.substr(1);if(e.charAt(0)==="-"&&Ga(n)){return Object.assign(Object.assign({},u),{sort:{encoding:n,order:"descending"}})}}if(Xa(u)){const{header:e}=u;if(e){const{orient:n}=e,t=Za(e,["orient"]);if(n){return Object.assign(Object.assign({},u),{header:Object.assign(Object.assign({},t),{labelOrient:e.labelOrient||n,titleOrient:e.titleOrient||n})})}}}return u}function Yu(e,n){if((0,r.Lm)(e)){return{maxbins:Et(n)}}else if(e==="binned"){return{binned:true}}else if(!e.maxbins&&!e.step){return Object.assign(Object.assign({},e),{maxbins:Et(n)})}else{return e}}const Ku={compatible:true};function Vu(e,n){const t=e.type;if(t==="geojson"&&n!=="shape"){return{compatible:false,warning:`Channel ${n} should not be used with a geojson data.`}}switch(n){case oe:case ae:case ue:if(!Au(e)){return{compatible:false,warning:Zi(n)}}return Ku;case ce:case le:case pe:case ge:case je:case Fe:case $e:case _e:case Ne:case Te:case Me:case Le:case qe:case ke:case be:case me:case Ue:return Ku;case Oe:case we:case ve:case xe:if(t!==Ys){return{compatible:false,warning:`Channel ${n} should be used with a quantitative field only, not ${e.type} field.`}}return Ku;case Ce:case Se:case Ee:case Be:case Ae:case ye:case he:case fe:case de:if(t==="nominal"&&!e["sort"]){return{compatible:false,warning:`Channel ${n} should not be used with an unsorted discrete field.`}}return Ku;case De:case Pe:if(!Au(e)&&!ku(e)){return{compatible:false,warning:er(n)}}return Ku;case ze:if(e.type==="nominal"&&!("sort"in e)){return{compatible:false,warning:`Channel order is inappropriate for nominal field, which has no inherent order.`}}return Ku}}function Qu(e){const{formatType:n}=Lu(e);return n==="time"||!n&&Xu(e)}function Xu(e){return e&&(e["type"]==="temporal"||fu(e)&&!!e.timeUnit)}function Ju(e,{timeUnit:n,type:t,wrapTime:i,undefinedIfExprNotRequired:s}){var o;const a=n&&((o=$s(n))===null||o===void 0?void 0:o.unit);let u=a||t==="temporal";let c;if(Bt(e)){c=e.expr}else if(Tt(e)){c=e.signal}else if(Jr(e)){u=true;c=as(e)}else if((0,r.Kg)(e)||(0,r.Et)(e)){if(u){c=`datetime(${x(e)})`;if(ps(a)){if((0,r.Et)(e)&&e<1e4||(0,r.Kg)(e)&&isNaN(Date.parse(e))){c=as({[a]:e})}}}}if(c){return i&&u?`time(${c})`:c}return s?undefined:x(e)}function Zu(e,n){const{type:t}=e;return n.map((n=>{const i=Ju(n,{timeUnit:fu(e)?e.timeUnit:undefined,type:t,undefinedIfExprNotRequired:true});if(i!==undefined){return{signal:i}}return n}))}function ec(e,n){if(!At(e.bin)){console.warn("Only call this method for binned field defs.");return false}return ct(n)&&["ordinal","nominal"].includes(e.type)}const nc={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function tc(e){return e===null||e===void 0?void 0:e.condition}const ic=["domain","grid","labels","ticks","title"];const rc={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"};const sc={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1};const oc=Object.assign(Object.assign({},sc),{style:1,labelExpr:1,encoding:1});function ac(e){return!!oc[e]}const uc=N(oc);const cc={axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1};const lc=N(cc);function fc(e){return"mark"in e}class dc{constructor(e,n){this.name=e;this.run=n}hasMatchingType(e){if(fc(e)){return Oa(e.mark)===this.name}return false}}var pc=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r!!e.field))}else{return fu(t)||uu(t)}}return false}function mc(e,n){const t=e&&e[n];if(t){if((0,r.cy)(t)){return $(t,(e=>!!e.field))}else{return fu(t)||pu(t)||cu(t)}}return false}function hc(e,n){if(Rn(n)){const t=e[n];if((fu(t)||pu(t))&&Gs(t.type)){const t=xn(n);return mc(e,t)}}return false}function bc(e){return $(en,(n=>{if(gc(e,n)){const t=e[n];if((0,r.cy)(t)){return $(t,(e=>!!e.aggregate))}else{const e=Uu(t);return e&&!!e.aggregate}}return false}))}function yc(e,n){const t=[];const i=[];const r=[];const s=[];const o={};jc(e,((a,u)=>{if(fu(a)){const{field:c,aggregate:l,bin:f,timeUnit:d}=a,p=pc(a,["field","aggregate","bin","timeUnit"]);if(l||d||f){const e=Tu(a);const g=e===null||e===void 0?void 0:e.title;let m=Du(a,{forAs:true});const h=Object.assign(Object.assign(Object.assign({},g?[]:{title:Nu(a,n,{allowDisabling:true})}),p),{field:m});if(l){let e;if(vt(l)){e="argmax";m=Du({op:"argmax",field:l.argmax},{forAs:true});h.field=`${m}.${c}`}else if(yt(l)){e="argmin";m=Du({op:"argmin",field:l.argmin},{forAs:true});h.field=`${m}.${c}`}else if(l!=="boxplot"&&l!=="errorbar"&&l!=="errorband"){e=l}if(e){const n={op:e,as:m};if(c){n.field=c}s.push(n)}}else{t.push(m);if(yu(a)&&At(f)){i.push({bin:f,field:c,as:m});t.push(Du(a,{binSuffix:"end"}));if(ec(a,u)){t.push(Du(a,{binSuffix:"range"}))}if(Rn(u)){const e={field:`${m}_end`};o[`${u}2`]=e}h.bin="binned";if(!mn(u)){h["type"]=Ys}}else if(d){r.push({timeUnit:d,field:c,as:m});const e=yu(a)&&a.type!==Vs&&"time";if(e){if(u===_e||u===Me){h["formatType"]=e}else if(st(u)){h["legend"]=Object.assign({formatType:e},h["legend"])}else if(Rn(u)){h["axis"]=Object.assign({formatType:e},h["axis"])}}}}o[u]=h}else{t.push(c);o[u]=e[u]}}else{o[u]=e[u]}}));return{bins:i,timeUnits:r,aggregate:s,groupby:t,encoding:o}}function vc(e,n,t){const i=lt(n,t);if(!i){return false}else if(i==="binned"){const t=e[n===fe?ce:le];if(fu(t)&&fu(e[n])&&kt(t.bin)){return true}else{return false}}return true}function Oc(e,n,t,i){const s={};for(const r of N(e)){if(!pn(r)){Vr(Ji(r))}}for(let o of jn){if(!e[o]){continue}const a=e[o];if(Kn(o)){const e=wn(o);const n=s[e];if(fu(n)){if(Hs(n.type)){if(fu(a)){Vr(Li(e));continue}}}else{o=e;Vr(qi(e))}}if(o==="angle"&&n==="arc"&&!e.theta){Vr(Mi);o=be}if(!vc(e,o,n)){Vr(Qi(o,n));continue}if(o===Ae&&n==="line"){const n=Uu(e[o]);if(n===null||n===void 0?void 0:n.aggregate){Vr(Vi);continue}}if(o===je&&(t?"fill"in e:"stroke"in e)){Vr(Gi("encoding",{fill:"fill"in e,stroke:"stroke"in e}));continue}if(o===Ne||o===ze&&!(0,r.cy)(a)&&!vu(a)||o===Me&&(0,r.cy)(a)){if(a){s[o]=(0,r.YO)(a).reduce(((e,n)=>{if(!fu(n)){Vr(Ki(n,o))}else{e.push(Gu(n,o))}return e}),[])}}else{if(o===Me&&a===null){s[o]=null}else if(!fu(a)&&!pu(a)&&!vu(a)&&!au(a)&&!Tt(a)){Vr(Ki(a,o));continue}s[o]=Iu(a,o,i)}}return s}function xc(e,n){const t={};for(const i of N(e)){const r=Iu(e[i],i,n,{compositeMark:true});t[i]=r}return t}function wc(e){const n=[];for(const t of N(e)){if(gc(e,t)){const i=e[t];const s=(0,r.YO)(i);for(const e of s){if(fu(e)){n.push(e)}else if(uu(e)){n.push(e.condition)}}}}return n}function jc(e,n,t){if(!e){return}for(const i of N(e)){const s=e[i];if((0,r.cy)(s)){for(const e of s){n.call(t,e,i)}}else{n.call(t,s,i)}}}function Fc(e,n,t,i){if(!e){return t}return N(e).reduce(((t,s)=>{const o=e[s];if((0,r.cy)(o)){return o.reduce(((e,t)=>n.call(i,e,t,s)),t)}else{return n.call(i,t,o,s)}}),t)}function $c(e,n){return N(n).reduce(((t,i)=>{switch(i){case ce:case le:case Le:case Ue:case qe:case fe:case de:case pe:case ge:case be:case ye:case me:case he:case ve:case Oe:case xe:case we:case _e:case De:case ke:case Me:return t;case ze:if(e==="line"||e==="trail"){return t}case Ne:case Te:{const e=n[i];if((0,r.cy)(e)||fu(e)){for(const n of(0,r.YO)(e)){if(!n.aggregate){t.push(Du(n,{}))}}}return t}case Ae:if(e==="trail"){return t}case je:case Fe:case $e:case Ce:case Se:case Ee:case Pe:case Be:{const e=Uu(n[i]);if(e&&!e.aggregate){t.push(Du(e,{}))}return t}}}),[])}var Dc=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{const r=i?` of ${Cc(n)}`:"";return{field:e+n.field,type:n.type,title:Tt(t)?{signal:`${t}"${escape(r)}"`}:t+r}}));const s=wc(t).map(Fu);return{tooltip:[...r,...C(s,w)]}}function Cc(e){const{title:n,field:t}=e;return X(n,t)}function Sc(e,n,t,i,s){const{scale:o,axis:a}=t;return({partName:u,mark:c,positionPrefix:l,endPositionPrefix:f=undefined,extraEncoding:d={}})=>{const p=Cc(t);return Ec(e,u,s,{mark:c,encoding:Object.assign(Object.assign(Object.assign({[n]:Object.assign(Object.assign(Object.assign({field:`${l}_${t.field}`,type:t.type},p!==undefined?{title:p}:{}),o!==undefined?{scale:o}:{}),a!==undefined?{axis:a}:{})},(0,r.Kg)(f)?{[`${n}2`]:{field:`${f}_${t.field}`}}:{}),i),d)})}}function Ec(e,n,t,i){const{clip:s,color:o,opacity:a}=e;const u=e.type;if(e[n]||e[n]===undefined&&t[n]){return[Object.assign(Object.assign({},i),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},t[n]),s?{clip:s}:{}),o?{color:o}:{}),a?{opacity:a}:{}),ia(i.mark)?i.mark:{type:i.mark}),{style:`${u}-${String(n)}`}),(0,r.Lm)(e[n])?{}:e[n])})]}return[]}function Bc(e,n,t){const{encoding:i}=e;const r=n==="vertical"?"y":"x";const s=i[r];const o=i[`${r}2`];const a=i[`${r}Error`];const u=i[`${r}Error2`];return{continuousAxisChannelDef:Pc(s,t),continuousAxisChannelDef2:Pc(o,t),continuousAxisChannelDefError:Pc(a,t),continuousAxisChannelDefError2:Pc(u,t),continuousAxis:r}}function Pc(e,n){if(e===null||e===void 0?void 0:e.aggregate){const{aggregate:t}=e,i=Dc(e,["aggregate"]);if(t!==n){Vr(_r(t,n))}return i}else{return e}}function _c(e,n){const{mark:t,encoding:i}=e;const{x:r,y:s}=i;if(ia(t)&&t.orient){return t.orient}if(gu(r)){if(gu(s)){const e=fu(r)&&r.aggregate;const t=fu(s)&&s.aggregate;if(!e&&t===n){return"vertical"}else if(!t&&e===n){return"horizontal"}else if(e===n&&t===n){throw new Error("Both x and y cannot have aggregate")}else{if(Qu(s)&&!Qu(r)){return"horizontal"}return"vertical"}}return"horizontal"}else if(gu(s)){return"vertical"}else{throw new Error(`Need a valid continuous axis for ${n}s`)}}var zc=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);rSc(l,v,y,e,n.boxplot);const E=S(C);const B=S(j);const P=S(Object.assign(Object.assign({},C),k?{size:k}:{}));const _=kc([{fieldPrefix:g==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:g==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],y,j);const N={type:"tick",color:"black",opacity:1,orient:F,invalid:p,aria:false};const T=g==="min-max"?_:kc([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],y,j);const M=[...E({partName:"rule",mark:{type:"rule",invalid:p,aria:false},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:T}),...E({partName:"rule",mark:{type:"rule",invalid:p,aria:false},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:T}),...E({partName:"ticks",mark:N,positionPrefix:"lower_whisker",extraEncoding:T}),...E({partName:"ticks",mark:N,positionPrefix:"upper_whisker",extraEncoding:T})];const L=[...g!=="tukey"?M:[],...B({partName:"box",mark:Object.assign(Object.assign({type:"bar"},d?{size:d}:{}),{orient:$,invalid:p,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:_}),...P({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:p},(0,r.Gv)(n.boxplot.median)&&n.boxplot.median.color?{color:n.boxplot.median.color}:{}),d?{size:d}:{}),{orient:F,aria:false}),positionPrefix:"mid_box",extraEncoding:_})];if(g==="min-max"){return Object.assign(Object.assign({},c),{transform:((i=c.transform)!==null&&i!==void 0?i:[]).concat(b),layer:L})}const q=`datum["lower_box_${y.field}"]`;const U=`datum["upper_box_${y.field}"]`;const R=`(${U} - ${q})`;const I=`${q} - ${f} * ${R}`;const W=`${U} + ${f} * ${R}`;const H=`datum["${y.field}"]`;const G={joinaggregate:Uc(y.field),groupby:x};const Y={transform:[{filter:`(${I} <= ${H}) && (${H} <= ${W})`},{aggregate:[{op:"min",field:y.field,as:`lower_whisker_${y.field}`},{op:"max",field:y.field,as:`upper_whisker_${y.field}`},{op:"min",field:`lower_box_${y.field}`,as:`lower_box_${y.field}`},{op:"max",field:`upper_box_${y.field}`,as:`upper_box_${y.field}`},...w],groupby:x}],layer:M};const{tooltip:K}=C,V=zc(C,["tooltip"]);const{scale:Q,axis:X}=y;const J=Cc(y);const Z=O(X,["title"]);const ee=Ec(l,"outliers",n.boxplot,{transform:[{filter:`(${H} < ${I}) || (${H} > ${W})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[v]:Object.assign(Object.assign(Object.assign({field:y.field,type:y.type},J!==undefined?{title:J}:{}),Q!==undefined?{scale:Q}:{}),z(Z)?{}:{axis:Z})},V),A?{color:A}:{}),D?{tooltip:D}:{})})[0];let ne;const te=[...m,...h,G];if(ee){ne={transform:te,layer:[ee,Y]}}else{ne=Y;ne.transform.unshift(...te)}return Object.assign(Object.assign({},c),{layer:[ne,{transform:b,layer:L}]})}function Uc(e){return[{op:"q1",field:e,as:`lower_box_${e}`},{op:"q3",field:e,as:`upper_box_${e}`}]}function Rc(e,n,t){const i=_c(e,Nc);const{continuousAxisChannelDef:r,continuousAxis:s}=Bc(e,i,Nc);const o=r.field;const a=Lc(n);const u=[...Uc(o),{op:"median",field:o,as:`mid_box_${o}`},{op:"min",field:o,as:(a==="min-max"?"lower_whisker_":"min_")+o},{op:"max",field:o,as:(a==="min-max"?"upper_whisker_":"max_")+o}];const c=a==="min-max"||a==="tukey"?[]:[{calculate:`datum["upper_box_${o}"] - datum["lower_box_${o}"]`,as:`iqr_${o}`},{calculate:`min(datum["upper_box_${o}"] + datum["iqr_${o}"] * ${n}, datum["max_${o}"])`,as:`upper_whisker_${o}`},{calculate:`max(datum["lower_box_${o}"] - datum["iqr_${o}"] * ${n}, datum["min_${o}"])`,as:`lower_whisker_${o}`}];const l=e.encoding,f=s,d=l[f],p=zc(l,[typeof f==="symbol"?f:f+""]);const{customTooltipWithoutAggregatedField:g,filteredEncoding:m}=Ac(p);const{bins:h,timeUnits:b,aggregate:y,groupby:v,encoding:O}=yc(m,t);const x=i==="vertical"?"horizontal":"vertical";const w=i;const j=[...h,...b,{aggregate:[...y,...u],groupby:v},...c];return{bins:h,timeUnits:b,transform:j,groupby:v,aggregate:y,continuousAxisChannelDef:r,continuousAxis:s,encodingWithoutContinuousAxis:O,ticksOrient:x,boxOrient:w,customTooltipWithoutAggregatedField:g}}var Ic=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r1?{layer:g}:Object.assign({},g[0]))}function Kc(e,n){const{encoding:t}=e;if(Vc(t)){return{orient:_c(e,n),inputType:"raw"}}const i=Qc(t);const r=Xc(t);const s=t.x;const o=t.y;if(i){if(r){throw new Error(`${n} cannot be both type aggregated-upper-lower and aggregated-error`)}const e=t.x2;const i=t.y2;if(bu(e)&&bu(i)){throw new Error(`${n} cannot have both x2 and y2`)}else if(bu(e)){if(gu(s)){return{orient:"horizontal",inputType:"aggregated-upper-lower"}}else{throw new Error(`Both x and x2 have to be quantitative in ${n}`)}}else if(bu(i)){if(gu(o)){return{orient:"vertical",inputType:"aggregated-upper-lower"}}else{throw new Error(`Both y and y2 have to be quantitative in ${n}`)}}throw new Error("No ranged axis")}else{const e=t.xError;const i=t.xError2;const r=t.yError;const a=t.yError2;if(bu(i)&&!bu(e)){throw new Error(`${n} cannot have xError2 without xError`)}if(bu(a)&&!bu(r)){throw new Error(`${n} cannot have yError2 without yError`)}if(bu(e)&&bu(r)){throw new Error(`${n} cannot have both xError and yError with both are quantiative`)}else if(bu(e)){if(gu(s)){return{orient:"horizontal",inputType:"aggregated-error"}}else{throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}}else if(bu(r)){if(gu(o)){return{orient:"vertical",inputType:"aggregated-error"}}else{throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}}throw new Error("No ranged axis")}}function Vc(e){return(bu(e.x)||bu(e.y))&&!bu(e.x2)&&!bu(e.y2)&&!bu(e.xError)&&!bu(e.xError2)&&!bu(e.yError)&&!bu(e.yError2)}function Qc(e){return bu(e.x2)||bu(e.y2)}function Xc(e){return bu(e.xError)||bu(e.xError2)||bu(e.yError)||bu(e.yError2)}function Jc(e,n,t){var i;const{mark:r,encoding:s,params:o,projection:a}=e,u=Ic(e,["mark","encoding","params","projection"]);const c=ia(r)?r:{type:r};if(o){Vr(Oi(n))}const{orient:l,inputType:f}=Kc(e,n);const{continuousAxisChannelDef:d,continuousAxisChannelDef2:p,continuousAxisChannelDefError:g,continuousAxisChannelDefError2:m,continuousAxis:h}=Bc(e,l,n);const{errorBarSpecificAggregate:b,postAggregateCalculates:y,tooltipSummary:v,tooltipTitleWithFieldName:O}=Zc(c,d,p,g,m,f,n,t);const x=s,w=h,j=x[w],F=h==="x"?"x2":"y2",$=x[F],D=h==="x"?"xError":"yError",A=x[D],k=h==="x"?"xError2":"yError2",C=x[k],S=Ic(x,[typeof w==="symbol"?w:w+"",typeof F==="symbol"?F:F+"",typeof D==="symbol"?D:D+"",typeof k==="symbol"?k:k+""]);const{bins:E,timeUnits:B,aggregate:P,groupby:_,encoding:z}=yc(S,t);const N=[...P,...b];const T=f!=="raw"?[]:_;const M=kc(v,d,z,O);return{transform:[...(i=u.transform)!==null&&i!==void 0?i:[],...E,...B,...N.length===0?[]:[{aggregate:N,groupby:T}],...y],groupby:T,continuousAxisChannelDef:d,continuousAxis:h,encodingWithoutContinuousAxis:z,ticksOrient:l==="vertical"?"horizontal":"vertical",markDef:c,outerSpec:u,tooltipEncoding:M}}function Zc(e,n,t,i,r,s,o,a){let u=[];let c=[];const l=n.field;let f;let d=false;if(s==="raw"){const n=e.center?e.center:e.extent?e.extent==="iqr"?"median":"mean":a.errorbar.center;const t=e.extent?e.extent:n==="mean"?"stderr":"iqr";if(n==="median"!==(t==="iqr")){Vr(Pr(n,t,o))}if(t==="stderr"||t==="stdev"){u=[{op:t,field:l,as:`extent_${l}`},{op:n,field:l,as:`center_${l}`}];c=[{calculate:`datum["center_${l}"] + datum["extent_${l}"]`,as:`upper_${l}`},{calculate:`datum["center_${l}"] - datum["extent_${l}"]`,as:`lower_${l}`}];f=[{fieldPrefix:"center_",titlePrefix:I(n)},{fieldPrefix:"upper_",titlePrefix:el(n,t,"+")},{fieldPrefix:"lower_",titlePrefix:el(n,t,"-")}];d=true}else{let e;let n;let i;if(t==="ci"){e="mean";n="ci0";i="ci1"}else{e="median";n="q1";i="q3"}u=[{op:n,field:l,as:`lower_${l}`},{op:i,field:l,as:`upper_${l}`},{op:e,field:l,as:`center_${l}`}];f=[{fieldPrefix:"upper_",titlePrefix:Nu({field:l,aggregate:i,type:"quantitative"},a,{allowDisabling:false})},{fieldPrefix:"lower_",titlePrefix:Nu({field:l,aggregate:n,type:"quantitative"},a,{allowDisabling:false})},{fieldPrefix:"center_",titlePrefix:Nu({field:l,aggregate:e,type:"quantitative"},a,{allowDisabling:false})}]}}else{if(e.center||e.extent){Vr(Br(e.center,e.extent))}if(s==="aggregated-upper-lower"){f=[];c=[{calculate:`datum["${t.field}"]`,as:`upper_${l}`},{calculate:`datum["${l}"]`,as:`lower_${l}`}]}else if(s==="aggregated-error"){f=[{fieldPrefix:"",titlePrefix:l}];c=[{calculate:`datum["${l}"] + datum["${i.field}"]`,as:`upper_${l}`}];if(r){c.push({calculate:`datum["${l}"] + datum["${r.field}"]`,as:`lower_${l}`})}else{c.push({calculate:`datum["${l}"] - datum["${i.field}"]`,as:`lower_${l}`})}}for(const e of c){f.push({fieldPrefix:e.as.substring(0,6),titlePrefix:K(K(e.calculate,'datum["',""),'"]',"")})}}return{postAggregateCalculates:c,errorBarSpecificAggregate:u,tooltipSummary:f,tooltipTitleWithFieldName:d}}function el(e,n,t){return`${I(e)} ${t} ${n}`}const nl="errorband";const tl=["band","borders"];const il=new dc(nl,rl);function rl(e,{config:n}){e=Object.assign(Object.assign({},e),{encoding:xc(e.encoding,n)});const{transform:t,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:s,markDef:o,outerSpec:a,tooltipEncoding:u}=Jc(e,nl,n);const c=o;const l=Sc(c,r,i,s,n.errorband);const f=e.encoding.x!==undefined&&e.encoding.y!==undefined;let d={type:f?"area":"rect"};let p={type:f?"line":"rule"};const g=Object.assign(Object.assign({},c.interpolate?{interpolate:c.interpolate}:{}),c.tension&&c.interpolate?{tension:c.tension}:{});if(f){d=Object.assign(Object.assign(Object.assign({},d),g),{ariaRoleDescription:"errorband"});p=Object.assign(Object.assign(Object.assign({},p),g),{aria:false})}else if(c.interpolate){Vr(zr("interpolate"))}else if(c.tension){Vr(zr("tension"))}return Object.assign(Object.assign({},a),{transform:t,layer:[...l({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...l({partName:"borders",mark:p,positionPrefix:"lower",extraEncoding:u}),...l({partName:"borders",mark:p,positionPrefix:"upper",extraEncoding:u})]})}const sl={};function ol(e,n,t){const i=new dc(e,n);sl[e]={normalizer:i,parts:t}}function al(e){delete sl[e]}function ul(){return N(sl)}ol(Nc,qc,Tc);ol(Wc,Yc,Hc);ol(nl,rl,tl);const cl=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"];const ll={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"};const fl={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"};const dl=N(ll);const pl=N(fl);const gl={header:1,headerRow:1,headerColumn:1,headerFacet:1};const ml=N(gl);const hl=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"];const bl={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35};const yl={aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1};const vl=N(yl);const Ol="_vgsid_";const xl={point:{on:"click",fields:[Ol],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[mousedown, window:mouseup] > window:mousemove!",encodings:["x","y"],translate:"[mousedown, window:mouseup] > window:mousemove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function wl(e){return e==="legend"||!!(e===null||e===void 0?void 0:e.legend)}function jl(e){return wl(e)&&(0,r.Gv)(e)}function Fl(e){return!!(e===null||e===void 0?void 0:e["select"])}var $l=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);rthis.mapLayerOrUnit(e,n)))})}mapHConcat(e,n){return Object.assign(Object.assign({},e),{hconcat:e.hconcat.map((e=>this.map(e,n)))})}mapVConcat(e,n){return Object.assign(Object.assign({},e),{vconcat:e.vconcat.map((e=>this.map(e,n)))})}mapConcat(e,n){const{concat:t}=e,i=df(e,["concat"]);return Object.assign(Object.assign({},i),{concat:t.map((e=>this.map(e,n)))})}mapFacet(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}mapRepeat(e,n){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,n)})}}const gf={zero:1,center:1,normalize:1};function mf(e){return e in gf}const hf=new Set([Lo,Uo,qo,Go,Wo,Qo,Xo,Io,Yo,Ko]);const bf=new Set([Uo,qo,Lo]);function yf(e){return fu(e)&&du(e)==="quantitative"&&!e.bin}function vf(e,n){var t,i;const r=n==="x"?"y":"radius";const s=e[n];const o=e[r];if(fu(s)&&fu(o)){if(yf(s)&&yf(o)){if(s.stack){return n}else if(o.stack){return r}const e=fu(s)&&!!s.aggregate;const a=fu(o)&&!!o.aggregate;if(e!==a){return e?n:r}else{const e=(t=s.scale)===null||t===void 0?void 0:t.type;const a=(i=o.scale)===null||i===void 0?void 0:i.type;if(e&&e!=="linear"){return r}else if(a&&a!=="linear"){return n}}}else if(yf(s)){return n}else if(yf(o)){return r}}else if(yf(s)){return n}else if(yf(o)){return r}return undefined}function Of(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function xf(e,n){var t,i;const s=ia(e)?e.type:e;if(!hf.has(s)){return null}const o=vf(n,"x")||vf(n,"theta");if(!o){return null}const a=n[o];const u=fu(a)?Du(a,{}):undefined;const c=Of(o);const l=[];const f=new Set;if(n[c]){const e=n[c];const t=fu(e)?Du(e,{}):undefined;if(t&&t!==u){l.push(c);f.add(t)}const i=c==="x"?"xOffset":"yOffset";const r=n[i];const s=fu(r)?Du(r,{}):undefined;if(s&&s!==u){l.push(i);f.add(s)}}const d=Ln.reduce(((e,t)=>{if(t!=="tooltip"&&gc(n,t)){const i=n[t];for(const n of(0,r.YO)(i)){const i=Uu(n);if(i.aggregate){continue}const r=Du(i,{});if(!r||!f.has(r)){e.push({channel:t,fieldDef:i})}}}return e}),[]);let p;if(a.stack!==undefined){if((0,r.Lm)(a.stack)){p=a.stack?"zero":null}else{p=a.stack}}else if(bf.has(s)){p="zero"}if(!p||!mf(p)){return null}if(bc(n)&&d.length===0){return null}if(((t=a===null||a===void 0?void 0:a.scale)===null||t===void 0?void 0:t.type)&&((i=a===null||a===void 0?void 0:a.scale)===null||i===void 0?void 0:i.type)!==no.LINEAR){Vr(kr(a.scale.type));return null}if(bu(n[yn(o)])){if(a.stack!==undefined){Vr(Ar(o))}return null}if(fu(a)&&a.aggregate&&!Ft.has(a.aggregate)){Vr(Cr(a.aggregate))}return{groupbyChannels:l,groupbyFields:f,fieldChannel:o,impute:a.impute===null?false:ea(s),stackBy:d,offset:p}}var wf=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r1?i:i.type}function Ff(e){for(const n of["line","area","rule","trail"]){if(e[n]){e=Object.assign(Object.assign({},e),{[n]:O(e[n],["point","line"])})}}return e}function $f(e,n={},t){if(e.point==="transparent"){return{opacity:0}}else if(e.point){return(0,r.Gv)(e.point)?e.point:{}}else if(e.point!==undefined){return null}else{if(n.point||t.shape){return(0,r.Gv)(n.point)?n.point:{}}return undefined}}function Df(e,n={}){if(e.line){return e.line===true?{}:e.line}else if(e.line!==undefined){return null}else{if(n.line){return n.line===true?{}:n.line}return undefined}}class Af{constructor(){this.name="path-overlay"}hasMatchingType(e,n){if(fc(e)){const{mark:t,encoding:i}=e;const r=ia(t)?t:{type:t};switch(r.type){case"line":case"rule":case"trail":return!!$f(r,n[r.type],i);case"area":return!!$f(r,n[r.type],i)||!!Df(r,n[r.type])}}return false}run(e,n,t){const{config:i}=n;const{params:r,projection:s,mark:o,encoding:a}=e,u=wf(e,["params","projection","mark","encoding"]);const c=xc(a,i);const l=ia(o)?o:{type:o};const f=$f(l,i[l.type],c);const d=l.type==="area"&&Df(l,i[l.type]);const p=[Object.assign(Object.assign({},r?{params:r}:{}),{mark:jf(Object.assign(Object.assign({},l.type==="area"&&l.opacity===undefined&&l.fillOpacity===undefined?{opacity:.7}:{}),l)),encoding:O(c,["shape"])})];const g=xf(l,c);let m=c;if(g){const{fieldChannel:e,offset:n}=g;m=Object.assign(Object.assign({},c),{[e]:Object.assign(Object.assign({},c[e]),n?{stack:n}:{})})}m=O(m,["y2","x2"]);if(d){p.push(Object.assign(Object.assign({},s?{projection:s}:{}),{mark:Object.assign(Object.assign({type:"line"},v(l,["clip","interpolate","tension","tooltip"])),d),encoding:m}))}if(f){p.push(Object.assign(Object.assign({},s?{projection:s}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:true},v(l,["clip","tooltip"])),f),encoding:m}))}return t(Object.assign(Object.assign({},u),{layer:p}),Object.assign(Object.assign({},n),{config:Ff(i)}))}}var kf=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r_f(e,n))).filter((e=>e))}else{const e=_f(s,n);if(e!==undefined){t[i]=e}}}}return t}class Nf{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(fc(e)){const{encoding:n,mark:t}=e;if(t==="line"||ia(t)&&t.type==="line"){for(const e of gn){const t=hn(e);const i=n[t];if(n[e]){if(fu(i)&&!kt(i.bin)||pu(i)){return true}}}}}return false}run(e,n,t){const{encoding:i,mark:s}=e;Vr(rr(!!i.x2,!!i.y2));return t(Object.assign(Object.assign({},e),{mark:(0,r.Gv)(s)?Object.assign(Object.assign({},s),{type:"rule"}):"rule"}),n)}}var Tf=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{const t=Object.assign(Object.assign({},u),{layer:e});const r=`${(i.name||"")+c}child__layer_${q(e)}`;const s=this.mapLayerOrUnit(i,Object.assign(Object.assign({},n),{repeater:t,repeaterPrefix:r}));s.name=r;return s}))})}}mapNonLayerRepeat(e,n){var t;const{repeat:i,spec:s,data:o}=e,a=Tf(e,["repeat","spec","data"]);if(!(0,r.cy)(i)&&e.columns){e=O(e,["columns"]);Vr(Ci("repeat"))}const u=[];const{repeater:c={},repeaterPrefix:l=""}=n;const f=!(0,r.cy)(i)&&i.row||[c?c.row:null];const d=!(0,r.cy)(i)&&i.column||[c?c.column:null];const p=(0,r.cy)(i)&&i||[c?c.repeat:null];for(const m of p){for(const e of f){for(const t of d){const o={repeat:m,row:e,column:t,layer:c.layer};const a=(s.name||"")+l+"child__"+((0,r.cy)(i)?`${q(m)}`:(i.row?`row_${q(e)}`:"")+(i.column?`column_${q(t)}`:""));const f=this.map(s,Object.assign(Object.assign({},n),{repeater:o,repeaterPrefix:a}));f.name=a;u.push(O(f,["data"]))}}}const g=(0,r.cy)(i)?e.columns:i.column?i.column.length:1;return Object.assign(Object.assign({data:(t=s.data)!==null&&t!==void 0?t:o,align:"all"},a),{columns:g,concat:u})}mapFacet(e,n){const{facet:t}=e;if(Qa(t)&&e.columns){e=O(e,["columns"]);Vr(Ci("facet"))}return super.mapFacet(e,n)}mapUnitWithParentEncodingOrProjection(e,n){const{encoding:t,projection:i}=e;const{parentEncoding:r,parentProjection:s,config:o}=n;const a=qf({parentProjection:s,projection:i});const u=Lf({parentEncoding:r,encoding:Sf(t,n.repeater)});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),a?{projection:a}:{}),u?{encoding:u}:{}),{config:o})}mapFacetedUnit(e,n){const t=e.encoding,{row:i,column:r,facet:s}=t,o=Tf(t,["row","column","facet"]);const{mark:a,width:u,projection:c,height:l,view:f,params:d,encoding:p}=e,g=Tf(e,["mark","width","projection","height","view","params","encoding"]);const{facetMapping:m,layout:h}=this.getFacetMappingAndLayout({row:i,column:r,facet:s},n);const b=Sf(o,n.repeater);return this.mapFacet(Object.assign(Object.assign(Object.assign({},g),h),{facet:m,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},u?{width:u}:{}),l?{height:l}:{}),f?{view:f}:{}),c?{projection:c}:{}),{mark:a,encoding:b}),d?{params:d}:{})}),n)}getFacetMappingAndLayout(e,n){var t;const{row:i,column:r,facet:s}=e;if(i||r){if(s){Vr(nr([...i?[oe]:[],...r?[ae]:[]]))}const n={};const o={};for(const i of[oe,ae]){const r=e[i];if(r){const{align:e,center:s,spacing:a,columns:u}=r,c=Tf(r,["align","center","spacing","columns"]);n[i]=c;for(const n of["align","center","spacing"]){if(r[n]!==undefined){(t=o[n])!==null&&t!==void 0?t:o[n]={};o[n][i]=r[n]}}}}return{facetMapping:n,layout:o}}else{const{align:e,center:t,spacing:i,columns:r}=s,o=Tf(s,["align","center","spacing","columns"]);return{facetMapping:Cf(o,n.repeater),layout:Object.assign(Object.assign(Object.assign(Object.assign({},e?{align:e}:{}),t?{center:t}:{}),i?{spacing:i}:{}),r?{columns:r}:{})}}}mapLayer(e,n){var{parentEncoding:t,parentProjection:i}=n,r=Tf(n,["parentEncoding","parentProjection"]);const{encoding:s,projection:o}=e,a=Tf(e,["encoding","projection"]);const u=Object.assign(Object.assign({},r),{parentEncoding:Lf({parentEncoding:t,encoding:s,layer:true}),parentProjection:qf({parentProjection:i,projection:o})});return super.mapLayer(a,u)}}function Lf({parentEncoding:e,encoding:n={},layer:t}){let i={};if(e){const s=new Set([...N(e),...N(n)]);for(const o of s){const s=n[o];const a=e[o];if(bu(s)){const e=Object.assign(Object.assign({},a),s);i[o]=e}else if(cu(s)){i[o]=Object.assign(Object.assign({},s),{condition:Object.assign(Object.assign({},a),s.condition)})}else if(s||s===null){i[o]=s}else if(t||vu(a)||Tt(a)||bu(a)||(0,r.cy)(a)){i[o]=a}}}else{i=n}return!i||z(i)?undefined:i}function qf(e){const{parentProjection:n,projection:t}=e;if(n&&t){Vr(Ti({parentProjection:n,projection:t}))}return t!==null&&t!==void 0?t:n}function Uf(e){return"filter"in e}function Rf(e){return(e===null||e===void 0?void 0:e["stop"])!==undefined}function If(e){return"lookup"in e}function Wf(e){return"data"in e}function Hf(e){return"param"in e}function Gf(e){return"pivot"in e}function Yf(e){return"density"in e}function Kf(e){return"quantile"in e}function Vf(e){return"regression"in e}function Qf(e){return"loess"in e}function Xf(e){return"sample"in e}function Jf(e){return"window"in e}function Zf(e){return"joinaggregate"in e}function ed(e){return"flatten"in e}function nd(e){return"calculate"in e}function td(e){return"bin"in e}function id(e){return"impute"in e}function rd(e){return"timeUnit"in e}function sd(e){return"aggregate"in e}function od(e){return"stack"in e}function ad(e){return"fold"in e}function ud(e){return e.map((e=>{if(Uf(e)){return{filter:m(e.filter,Us)}}return e}))}var cd=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{var i;const r=t,{init:s,bind:o,empty:a}=r,u=cd(r,["init","bind","empty"]);if(u.type==="single"){u.type="point";u.toggle=false}else if(u.type==="multi"){u.type="point"}n.emptySelections[e]=a!=="none";for(const c of T((i=n.selectionPredicates[e])!==null&&i!==void 0?i:{})){c.empty=a!=="none"}return{name:e,value:s,select:u,bind:o}}))})}return e}}function fd(e,n){const{transform:t}=e,i=cd(e,["transform"]);if(t){const e=t.map((e=>{if(Uf(e)){return{filter:gd(e,n)}}else if(td(e)&&Ct(e.bin)){return Object.assign(Object.assign({},e),{bin:pd(e.bin)})}else if(If(e)){const n=e.from,{selection:t}=n,i=cd(n,["selection"]);return t?Object.assign(Object.assign({},e),{from:Object.assign({param:t},i)}):e}return e}));return Object.assign(Object.assign({},i),{transform:e})}return e}function dd(e,n){var t,i;const r=b(e);if(fu(r)&&Ct(r.bin)){r.bin=pd(r.bin)}if(Ou(r)&&((i=(t=r.scale)===null||t===void 0?void 0:t.domain)===null||i===void 0?void 0:i.selection)){const e=r.scale.domain,{selection:n}=e,t=cd(e,["selection"]);r.scale.domain=Object.assign(Object.assign({},t),n?{param:n}:{})}if(au(r)){if((0,Rs.isArray)(r.condition)){r.condition=r.condition.map((e=>{const{selection:t,param:i,test:r}=e,s=cd(e,["selection","param","test"]);return i?e:Object.assign(Object.assign({},s),{test:gd(e,n)})}))}else{const e=dd(r.condition,n),{selection:t,param:i,test:s}=e,o=cd(e,["selection","param","test"]);r.condition=i?r.condition:Object.assign(Object.assign({},o),{test:gd(r.condition,n)})}}return r}function pd(e){const n=e.extent;if(n===null||n===void 0?void 0:n.selection){const{selection:t}=n,i=cd(n,["selection"]);return Object.assign(Object.assign({},e),{extent:Object.assign(Object.assign({},i),{param:t})})}return e}function gd(e,n){const t=e=>m(e,(e=>{var t,i;var r;const s=(t=n.emptySelections[e])!==null&&t!==void 0?t:true;const o={param:e,empty:s};(i=(r=n.selectionPredicates)[e])!==null&&i!==void 0?i:r[e]=[];n.selectionPredicates[e].push(o);return o}));return e.selection?t(e.selection):m(e.test||e.filter,(e=>e.selection?t(e.selection):e))}class md extends pf{map(e,n){var t;const i=(t=n.selections)!==null&&t!==void 0?t:[];if(e.params&&!fc(e)){const n=[];for(const t of e.params){if(Fl(t)){i.push(t)}else{n.push(t)}}e.params=n}n.selections=i;return super.map(e,hd(e,n))}mapUnit(e,n){var t;const i=n.selections;if(!i||!i.length)return e;const r=((t=n.path)!==null&&t!==void 0?t:[]).concat(e.name);const s=[];for(const o of i){if(!o.views||!o.views.length){s.push(o)}else{for(const n of o.views){if((0,Rs.isString)(n)&&(n===e.name||r.indexOf(n)>=0)||(0,Rs.isArray)(n)&&n.map((e=>r.indexOf(e))).every(((e,n,t)=>e!==-1&&(n===0||e>t[n-1])))){s.push(o)}}}}if(s.length)e.params=s;return e}}for(const Yw of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const e=md.prototype[Yw];md.prototype[Yw]=function(n,t){return e.call(this,n,hd(n,t))}}function hd(e,n){var t;return e.name?Object.assign(Object.assign({},n),{path:((t=n.path)!==null&&t!==void 0?t:[]).concat(e.name)}):n}function bd(e,n){if(n===undefined){n=nf(e.config)}const t=xd(e,n);const{width:i,height:r}=e;const s=jd(t,{width:i,height:r,autosize:e.autosize},n);return Object.assign(Object.assign({},t),s?{autosize:s}:{})}const yd=new Mf;const vd=new ld;const Od=new md;function xd(e,n={}){const t={config:n};return Od.map(yd.map(vd.map(e,t),t),t)}function wd(e){return(0,r.Kg)(e)?{type:e}:e!==null&&e!==void 0?e:{}}function jd(e,n,t){let{width:i,height:r}=n;const s=fc(e)||cf(e);const o={};if(!s){if(i=="container"){Vr(pi("width"));i=undefined}if(r=="container"){Vr(pi("height"));r=undefined}}else{if(i=="container"&&r=="container"){o.type="fit";o.contains="padding"}else if(i=="container"){o.type="fit-x";o.contains="padding"}else if(r=="container"){o.type="fit-y";o.contains="padding"}}const a=Object.assign(Object.assign(Object.assign({type:"pad"},o),t?wd(t.autosize):{}),wd(e.autosize));if(a.type==="fit"&&!s){Vr(di);a.type="pad"}if(i=="container"&&!(a.type=="fit"||a.type=="fit-x")){Vr(gi("width"))}if(r=="container"&&!(a.type=="fit"||a.type=="fit-y")){Vr(gi("height"))}if(h(a,{type:"pad"})){return undefined}return a}function Fd(e){return e==="fit"||e==="fit-x"||e==="fit-y"}function $d(e){return e?`fit-${Hn(e)}`:"fit"}const Dd=["background","padding"];function Ad(e,n){const t={};for(const i of Dd){if(e&&e[i]!==undefined){t[i]=Vt(e[i])}}if(n){t.params=e.params}return t}class kd{constructor(e={},n={}){this.explicit=e;this.implicit=n}clone(){return new kd(b(this.explicit),b(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return X(this.explicit[e],this.implicit[e])}getWithExplicit(e){if(this.explicit[e]!==undefined){return{explicit:true,value:this.explicit[e]}}else if(this.implicit[e]!==undefined){return{explicit:false,value:this.implicit[e]}}return{explicit:false,value:undefined}}setWithExplicit(e,{value:n,explicit:t}){if(n!==undefined){this.set(e,n,t)}}set(e,n,t){delete this[t?"implicit":"explicit"][e];this[t?"explicit":"implicit"][e]=n;return this}copyKeyFromSplit(e,{explicit:n,implicit:t}){if(n[e]!==undefined){this.set(e,n[e],true)}else if(t[e]!==undefined){this.set(e,t[e],false)}}copyKeyFromObject(e,n){if(n[e]!==undefined){this.set(e,n[e],true)}}copyAll(e){for(const n of N(e.combine())){const t=e.getWithExplicit(n);this.setWithExplicit(n,t)}}}function Cd(e){return{explicit:true,value:e}}function Sd(e){return{explicit:false,value:e}}function Ed(e){return(n,t,i,r)=>{const s=e(n.value,t.value);if(s>0){return n}else if(s<0){return t}return Bd(n,t,i,r)}}function Bd(e,n,t,i){if(e.explicit&&n.explicit){Vr(yr(t,i,e.value,n.value))}return e}function Pd(e,n,t,i,r=Bd){if(e===undefined||e.value===undefined){return n}if(e.explicit&&!n.explicit){return e}else if(n.explicit&&!e.explicit){return n}else if(h(e.value,n.value)){return e}else{return r(e,n,t,i)}}class _d extends kd{constructor(e={},n={},t=false){super(e,n);this.explicit=e;this.implicit=n;this.parseNothing=t}clone(){const e=super.clone();e.parseNothing=this.parseNothing;return e}}function zd(e){return"url"in e}function Nd(e){return"values"in e}function Td(e){return"name"in e&&!zd(e)&&!Nd(e)&&!Md(e)}function Md(e){return e&&(Ld(e)||qd(e)||Ud(e))}function Ld(e){return"sequence"in e}function qd(e){return"sphere"in e}function Ud(e){return"graticule"in e}var Rd;(function(e){e[e["Raw"]=0]="Raw";e[e["Main"]=1]="Main";e[e["Row"]=2]="Row";e[e["Column"]=3]="Column";e[e["Lookup"]=4]="Lookup"})(Rd||(Rd={}));var Id=t(45948);var Wd=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);rHd(e,n,t)));return n?`[${i.join(", ")}]`:i}else if(Jr(e)){if(n){return t(as(e))}else{return t(cs(e))}}return n?t(x(e)):e}function Gd(e,n){var t;for(const i of T((t=e.component.selection)!==null&&t!==void 0?t:{})){const t=i.name;let s=`${t}${Sg}, ${i.resolve==="global"?"true":`{unit: ${Ng(e)}}`}`;for(const r of _g){if(!r.defined(i))continue;if(r.signals)n=r.signals(e,i,n);if(r.modifyExpr)s=r.modifyExpr(e,i,s)}n.push({name:t+Eg,on:[{events:{signal:i.name+Sg},update:`modify(${(0,r.r$)(i.name+Cg)}, ${s})`}]})}return Zd(n)}function Yd(e,n){if(e.component.selection&&N(e.component.selection).length){const t=(0,r.r$)(e.getName("cell"));n.unshift({name:"facet",value:{},on:[{events:(0,Id.P)("mousemove","scope"),update:`isTuple(facet) ? facet : group(${t}).datum`}]})}return Zd(n)}function Kd(e,n){var t;let i=false;for(const s of T((t=e.component.selection)!==null&&t!==void 0?t:{})){const t=s.name;const o=(0,r.r$)(t+Cg);const a=n.filter((e=>e.name===t));if(a.length===0){const e=s.resolve==="global"?"union":s.resolve;const t=s.type==="point"?", true, true)":")";n.push({name:s.name,update:`${Pg}(${o}, ${(0,r.r$)(e)}${t}`})}i=true;for(const i of _g){if(i.defined(s)&&i.topLevelSignals){n=i.topLevelSignals(e,s,n)}}}if(i){const e=n.filter((e=>e.name==="unit"));if(e.length===0){n.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]})}}return Zd(n)}function Vd(e,n){var t;const i=[...n];const r=Ng(e,{escape:false});for(const s of T((t=e.component.selection)!==null&&t!==void 0?t:{})){const e={name:s.name+Cg};if(s.project.hasSelectionId){e.transform=[{type:"collect",sort:{field:Ol}}]}if(s.init){const n=s.project.items.map((e=>{const{signals:n}=e,t=Wd(e,["signals"]);return t}));e.values=s.project.hasSelectionId?s.init.map((e=>({unit:r,[Ol]:Hd(e,false)[0]}))):s.init.map((e=>({unit:r,fields:n,values:Hd(e,false)})))}const n=i.filter((e=>e.name===s.name+Cg));if(!n.length){i.push(e)}}return i}function Qd(e,n){var t;for(const i of T((t=e.component.selection)!==null&&t!==void 0?t:{})){for(const t of _g){if(t.defined(i)&&t.marks){n=t.marks(e,i,n)}}}return n}function Xd(e,n){for(const t of e.children){if(ZO(t)){n=Qd(t,n)}}return n}function Jd(e,n,t,i){const s=tb(e,n.param,n);return{signal:ho(t.get("type"))&&(0,r.cy)(i)&&i[0]>i[1]?`isValid(${s}) && reverse(${s})`:s}}function Zd(e){return e.map((e=>{if(e.on&&!e.on.length)delete e.on;return e}))}class ep{constructor(e,n){this.debugName=n;this._children=[];this._parent=null;if(e){this.parent=e}}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e;if(e){e.addChild(this)}}get children(){return this._children}numChildren(){return this._children.length}addChild(e,n){if(this._children.includes(e)){Vr(Pi);return}if(n!==undefined){this._children.splice(n,0,e)}else{this._children.push(e)}}removeChild(e){const n=this._children.indexOf(e);this._children.splice(n,1);return n}remove(){let e=this._parent.removeChild(this);for(const n of this._children){n._parent=this._parent;this._parent.addChild(n,e++)}}insertAsParentOf(e){const n=e.parent;n.removeChild(this);this.parent=n;e.parent=this}swapWithParent(){const e=this._parent;const n=e.parent;for(const i of this._children){i.parent=e}this._children=[];e.removeChild(this);const t=e.parent.removeChild(e);this._parent=n;n.addChild(this,t);e.parent=this}}class np extends ep{clone(){const e=new this.constructor;e.debugName=`clone_${this.debugName}`;e._source=this._source;e._name=`clone_${this._name}`;e.type=this.type;e.refCounts=this.refCounts;e.refCounts[e._name]=0;return e}constructor(e,n,t,i){super(e,n);this.type=t;this.refCounts=i;this._source=this._name=n;if(this.refCounts&&!(this._name in this.refCounts)){this.refCounts[this._name]=0}}dependentFields(){return new Set}producedFields(){return new Set}hash(){if(this._hash===undefined){this._hash=`Output ${Z()}`}return this._hash}getSource(){this.refCounts[this._name]++;return this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var tp=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{const{field:t,timeUnit:i}=n;if(i){const r=Du(n,{forAs:true});e[w({as:r,field:t,timeUnit:i})]={as:r,field:t,timeUnit:i}}return e}),{});if(z(t)){return null}return new ip(e,t)}static makeFromTransform(e,n){const t=Object.assign({},n),{timeUnit:i}=t,r=tp(t,["timeUnit"]);const s=$s(i);const o=Object.assign(Object.assign({},r),{timeUnit:s});return new ip(e,{[w(o)]:o})}merge(e){this.formula=Object.assign({},this.formula);for(const n in e.formula){if(!this.formula[n]){this.formula[n]=e.formula[n]}}for(const n of e.children){e.removeChild(n);n.parent=this}e.remove()}removeFormulas(e){const n={};for(const[t,i]of M(this.formula)){if(!e.has(i.as)){n[t]=i}}this.formula=n}producedFields(){return new Set(T(this.formula).map((e=>e.as)))}dependentFields(){return new Set(T(this.formula).map((e=>e.field)))}hash(){return`TimeUnit ${w(this.formula)}`}assemble(){const e=[];for(const n of T(this.formula)){const{field:t,as:i,timeUnit:r}=n;const s=$s(r),{unit:o,utc:a}=s,u=tp(s,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:Y(t),type:"timeunit"},o?{units:Os(o)}:{}),a?{timezone:"utc"}:{}),u),{as:[i,`${i}_end`]}))}return e}}var rp=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);rtrue,parse:(e,n,t)=>{var i;const s=n.name;const o=(i=n.project)!==null&&i!==void 0?i:n.project=new op;const a={};const u={};const c=new Set;const l=(e,n)=>{const t=n==="visual"?e.channel:e.field;let i=q(`${s}_${t}`);for(let r=1;c.has(i);r++){i=q(`${s}_${t}_${r}`)}c.add(i);return{[n]:i}};const f=n.type;const d=e.config.selection[f];const p=t.value!==undefined?(0,r.YO)(t.value):null;let{fields:g,encodings:m}=(0,r.Gv)(t.select)?t.select:{};if(!g&&!m&&p){for(const e of p){if(!(0,r.Gv)(e)){continue}for(const n of N(e)){if(dn(n)){(m||(m=[])).push(n)}else{if(f==="interval"){Vr(Ai);m=d.encodings}else{(g||(g=[])).push(n)}}}}}if(!g&&!m){m=d.encodings;if("fields"in d){g=d.fields}}for(const r of m!==null&&m!==void 0?m:[]){const n=e.fieldDef(r);if(n){let t=n.field;if(n.aggregate){Vr(yi(r,n.aggregate));continue}else if(!t){Vr(bi(r));continue}if(n.timeUnit){t=e.vgField(r);const i={timeUnit:n.timeUnit,as:t,field:n.field};u[w(i)]=i}if(!a[t]){let i="E";if(f==="interval"){const n=e.getScaleComponent(r).get("type");if(ho(n)){i="R"}}else if(n.bin){i="R-RE"}const s={field:t,channel:r,type:i};s.signals=Object.assign(Object.assign({},l(s,"data")),l(s,"visual"));o.items.push(a[t]=s);o.hasField[t]=o.hasChannel[r]=a[t];o.hasSelectionId=o.hasSelectionId||t===Ol}}else{Vr(bi(r))}}for(const r of g!==null&&g!==void 0?g:[]){if(o.hasField[r])continue;const e={type:"E",field:r};e.signals=Object.assign({},l(e,"data"));o.items.push(e);o.hasField[r]=e;o.hasSelectionId=o.hasSelectionId||r===Ol}if(p){n.init=p.map((e=>o.items.map((n=>(0,r.Gv)(e)?e[n.channel]!==undefined?e[n.channel]:e[n.field]:e))))}if(!z(u)){o.timeUnit=new ip(null,u)}},signals:(e,n,t)=>{const i=n.name+sp;const r=t.filter((e=>e.name===i));return r.length>0||n.project.hasSelectionId?t:t.concat({name:i,value:n.project.items.map((e=>{const{signals:n,hasLegend:t}=e,i=rp(e,["signals","hasLegend"]);i.field=Y(i.field);return i}))})}};const up=ap;const cp={defined:e=>e.type==="interval"&&e.resolve==="global"&&e.bind&&e.bind==="scales",parse:(e,n)=>{const t=n.scales=[];for(const i of n.project.items){const r=i.channel;if(!ct(r)){continue}const s=e.getScaleComponent(r);const o=s?s.get("type"):undefined;if(!s||!ho(o)){Vr(wi);continue}s.set("selectionExtent",{param:n.name,field:i.field},true);t.push(i)}},topLevelSignals:(e,n,t)=>{const i=n.scales.filter((e=>t.filter((n=>n.name===e.signals.data)).length===0));if(!e.parent||dp(e)||i.length===0){return t}const s=t.filter((e=>e.name===n.name))[0];let o=s.update;if(o.indexOf(Pg)>=0){s.update=`{${i.map((e=>`${(0,r.r$)(Y(e.field))}: ${e.signals.data}`)).join(", ")}}`}else{for(const e of i){const n=`${(0,r.r$)(Y(e.field))}: ${e.signals.data}`;if(!o.includes(n)){o=`${o.substring(0,o.length-1)}, ${n}}`}}s.update=o}return t.concat(i.map((e=>({name:e.signals.data}))))},signals:(e,n,t)=>{if(e.parent&&!dp(e)){for(const e of n.scales){const n=t.filter((n=>n.name===e.signals.data))[0];n.push="outer";delete n.value;delete n.update}}return t}};const lp=cp;function fp(e,n){const t=(0,r.r$)(e.scaleName(n));return`domain(${t})`}function dp(e){var n;return e.parent&&tx(e.parent)&&((n=!e.parent.parent)!==null&&n!==void 0?n:dp(e.parent.parent))}var pp=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);re.type==="interval",signals:(e,n,t)=>{const i=n.name;const s=i+sp;const o=lp.defined(n);const a=n.init?n.init[0]:null;const u=[];const c=[];if(n.translate&&!o){const e=`!event.item || event.item.mark.name !== ${(0,r.r$)(i+gp)}`;vp(n,((n,t)=>{var i;var s;const o=(0,r.YO)((i=(s=t.between[0]).filter)!==null&&i!==void 0?i:s.filter=[]);if(!o.includes(e)){o.push(e)}return n}))}n.project.items.forEach(((i,s)=>{const o=i.channel;if(o!==ce&&o!==le){Vr("Interval selections only support x and y encoding channels.");return}const l=a?a[s]:null;const f=yp(e,n,i,l);const d=i.signals.data;const p=i.signals.visual;const g=(0,r.r$)(e.scaleName(o));const m=e.getScaleComponent(o).get("type");const h=ho(m)?"+":"";t.push(...f);u.push(d);c.push({scaleName:e.scaleName(o),expr:`(!isArray(${d}) || `+`(${h}invert(${g}, ${p})[0] === ${h}${d}[0] && `+`${h}invert(${g}, ${p})[1] === ${h}${d}[1]))`})}));if(!o&&c.length){t.push({name:i+mp,value:{},on:[{events:c.map((e=>({scale:e.scaleName}))),update:`${c.map((e=>e.expr)).join(" && ")} ? ${i+mp} : {}`}]})}const l=`unit: ${Ng(e)}, fields: ${s}, values`;return t.concat(Object.assign(Object.assign({name:i+Sg},a?{init:`{${l}: ${Hd(a)}}`}:{}),u.length?{on:[{events:[{signal:u.join(" || ")}],update:`${u.join(" && ")} ? {${l}: [${u}]} : null`}]}:{}))},marks:(e,n,t)=>{const i=n.name;const{x:s,y:o}=n.project.hasChannel;const a=s===null||s===void 0?void 0:s.signals.visual;const u=o===null||o===void 0?void 0:o.signals.visual;const c=`data(${(0,r.r$)(n.name+Cg)})`;if(lp.defined(n)||!s&&!o){return t}const l={x:s!==undefined?{signal:`${a}[0]`}:{value:0},y:o!==undefined?{signal:`${u}[0]`}:{value:0},x2:s!==undefined?{signal:`${a}[1]`}:{field:{group:"width"}},y2:o!==undefined?{signal:`${u}[1]`}:{field:{group:"height"}}};if(n.resolve==="global"){for(const n of N(l)){l[n]=[Object.assign({test:`${c}.length && ${c}[0].unit === ${Ng(e)}`},l[n]),{value:0}]}}const f=n.mark,{fill:d,fillOpacity:p,cursor:g}=f,m=pp(f,["fill","fillOpacity","cursor"]);const h=N(m).reduce(((e,n)=>{e[n]=[{test:[s!==undefined&&`${a}[0] !== ${a}[1]`,o!==undefined&&`${u}[0] !== ${u}[1]`].filter((e=>e)).join(" && "),value:m[n]},{value:null}];return e}),{});return[{name:`${i+gp}_bg`,type:"rect",clip:true,encode:{enter:{fill:{value:d},fillOpacity:{value:p}},update:l}},...t,{name:i+gp,type:"rect",clip:true,encode:{enter:Object.assign(Object.assign({},g?{cursor:{value:g}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},l),h)}}]}};const bp=hp;function yp(e,n,t,i){const s=t.channel;const o=t.signals.visual;const a=t.signals.data;const u=lp.defined(n);const c=(0,r.r$)(e.scaleName(s));const l=e.getScaleComponent(s);const f=l?l.get("type"):undefined;const d=e=>`scale(${c}, ${e})`;const p=e.getSizeSignalRef(s===ce?"width":"height").signal;const g=`${s}(unit)`;const m=vp(n,((e,n)=>[...e,{events:n.between[0],update:`[${g}, ${g}]`},{events:n,update:`[${o}[0], clamp(${g}, 0, ${p})]`}]));m.push({events:{signal:n.name+mp},update:ho(f)?`[${d(`${a}[0]`)}, ${d(`${a}[1]`)}]`:`[0, 0]`});return u?[{name:a,on:[]}]:[Object.assign(Object.assign({name:o},i?{init:Hd(i,true,d)}:{value:[]}),{on:m}),Object.assign(Object.assign({name:a},i?{init:Hd(i)}:{}),{on:[{events:{signal:o},update:`${o}[0] === ${o}[1] ? null : invert(${c}, ${o})`}]})]}function vp(e,n){return e.events.reduce(((e,t)=>{if(!t.between){Vr(`${t} is not an ordered event stream for interval selections.`);return e}return n(e,t)}),[])}const Op={defined:e=>e.type==="point",signals:(e,n,t)=>{var i;const s=n.name;const o=s+sp;const a=n.project;const u="(item().isVoronoi ? datum.datum : datum)";const c=T((i=e.component.selection)!==null&&i!==void 0?i:{}).reduce(((e,n)=>n.type==="interval"?e.concat(n.name+gp):e),[]).map((e=>`indexof(item().mark.name, '${e}') < 0`)).join(" && ");const l=`datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0${c?` && ${c}`:""}`;let f=`unit: ${Ng(e)}, `;if(n.project.hasSelectionId){f+=`${Ol}: ${u}[${(0,r.r$)(Ol)}]`}else{const n=a.items.map((n=>{const t=e.fieldDef(n.channel);return(t===null||t===void 0?void 0:t.bin)?`[${u}[${(0,r.r$)(e.vgField(n.channel,{}))}], `+`${u}[${(0,r.r$)(e.vgField(n.channel,{binSuffix:"end"}))}]]`:`${u}[${(0,r.r$)(n.field)}]`})).join(", ");f+=`fields: ${o}, values: [${n}]`}const d=n.events;return t.concat([{name:s+Sg,on:d?[{events:d,update:`${l} ? {${f}} : null`,force:true}]:[]}])}};const xp=Op;function wp(e,n,t,i){const s=au(n)&&n.condition;const o=i(n);if(s){const n=(0,r.YO)(s);const a=n.map((n=>{const t=i(n);if(eu(n)){const{param:i,empty:r}=n;const s=nb(e,{param:i,empty:r});return Object.assign({test:s},t)}else{const i=rb(e,n.test);return Object.assign({test:i},t)}}));return{[t]:[...a,...o!==undefined?[o]:[]]}}else{return o!==undefined?{[t]:o}:{}}}function jp(e,n="text"){const t=e.encoding[n];return wp(e,t,n,(n=>Fp(n,e.config)))}function Fp(e,n,t="datum"){if(e){if(vu(e)){return Xt(e.value)}if(bu(e)){const{format:i,formatType:r}=Lu(e);return Pa({fieldOrDatumDef:e,format:i,formatType:r,expr:t,config:n})}}return undefined}function $p(e,n={}){const{encoding:t,markDef:i,config:s,stack:o}=e;const a=t.tooltip;if((0,r.cy)(a)){return{tooltip:Ap({tooltip:a},o,s,n)}}else{const u=n.reactiveGeom?"datum.datum":"datum";return wp(e,a,"tooltip",(e=>{const a=Fp(e,s,u);if(a){return a}if(e===null){return undefined}let c=ii("tooltip",i,s);if(c===true){c={content:"encoding"}}if((0,r.Kg)(c)){return{value:c}}else if((0,r.Gv)(c)){if(Tt(c)){return c}else if(c.content==="encoding"){return Ap(t,o,s,n)}else{return{signal:u}}}return undefined}))}}function Dp(e,n,t,{reactiveGeom:i}={}){const s={};const o=i?"datum.datum":"datum";const a=[];function u(i,u){const c=hn(u);const l=yu(i)?i:Object.assign(Object.assign({},i),{type:e[c].type});const f=l.title||Mu(l,t);const d=(0,r.YO)(f).join(", ");let p;if(Rn(u)){const n=u==="x"?"x2":"y2";const i=Uu(e[n]);if(kt(l.bin)&&i){const e=Du(l,{expr:o});const r=Du(i,{expr:o});const{format:a,formatType:u}=Lu(l);p=Ra(e,r,a,u,t);s[n]=true}}if((Rn(u)||u===be||u===me)&&n&&n.fieldChannel===u&&n.offset==="normalize"){const{format:e,formatType:n}=Lu(l);p=Pa({fieldOrDatumDef:l,format:e,formatType:n,expr:o,config:t,normalizeStack:true}).signal}p!==null&&p!==void 0?p:p=Fp(l,t,o).signal;a.push({channel:u,key:d,value:p})}jc(e,((e,n)=>{if(fu(e)){u(e,n)}else if(uu(e)){u(e.condition,n)}}));const c={};for(const{channel:r,key:l,value:f}of a){if(!s[r]&&!c[l]){c[l]=f}}return c}function Ap(e,n,t,{reactiveGeom:i}={}){const r=Dp(e,n,t,{reactiveGeom:i});const s=M(r).map((([e,n])=>`"${e}": ${n}`));return s.length>0?{signal:`{${s.join(", ")}}`}:undefined}function kp(e){const{markDef:n,config:t}=e;const i=ii("aria",n,t);if(i===false){return{}}return Object.assign(Object.assign(Object.assign({},i?{aria:i}:{}),Cp(e)),Sp(e))}function Cp(e){const{mark:n,markDef:t,config:i}=e;if(i.aria===false){return{}}const r=ii("ariaRoleDescription",t,i);if(r!=null){return{ariaRoleDescription:{value:r}}}return n in Wt?{}:{ariaRoleDescription:{value:n}}}function Sp(e){const{encoding:n,markDef:t,config:i,stack:r}=e;const s=n.description;if(s){return wp(e,s,"description",(n=>Fp(n,e.config)))}const o=ii("description",t,i);if(o!=null){return{description:Xt(o)}}if(i.aria===false){return{}}const a=Dp(n,r,i);if(z(a)){return undefined}return{description:{signal:M(a).map((([e,n],t)=>`"${t>0?"; ":""}${e}: " + (${n})`)).join(" + ")}}}function Ep(e,n,t={}){const{markDef:i,encoding:r,config:s}=n;const{vgChannel:o}=t;let{defaultRef:a,defaultValue:u}=t;if(a===undefined){u!==null&&u!==void 0?u:u=ii(e,i,s,{vgChannel:o,ignoreVgConfig:true});if(u!==undefined){a=Xt(u)}}const c=r[e];return wp(n,c,o!==null&&o!==void 0?o:e,(t=>ka({channel:e,channelDef:t,markDef:i,config:s,scaleName:n.scaleName(e),scale:n.getScaleComponent(e),stack:null,defaultRef:a})))}function Bp(e,n={filled:undefined}){var t,i,r,s;const{markDef:o,encoding:a,config:u}=e;const{type:c}=o;const l=(t=n.filled)!==null&&t!==void 0?t:ii("filled",o,u);const f=F(["bar","point","circle","square","geoshape"],c)?"transparent":undefined;const d=(r=(i=ii(l===true?"color":undefined,o,u,{vgChannel:"fill"}))!==null&&i!==void 0?i:u.mark[l===true&&"color"])!==null&&r!==void 0?r:f;const p=(s=ii(l===false?"color":undefined,o,u,{vgChannel:"stroke"}))!==null&&s!==void 0?s:u.mark[l===false&&"color"];const g=l?"fill":"stroke";const m=Object.assign(Object.assign({},d?{fill:Xt(d)}:{}),p?{stroke:Xt(p)}:{});if(o.color&&(l?o.fill:o.stroke)){Vr(Gi("property",{fill:"fill"in o,stroke:"stroke"in o}))}return Object.assign(Object.assign(Object.assign(Object.assign({},m),Ep("color",e,{vgChannel:g,defaultValue:l?d:p})),Ep("fill",e,{defaultValue:a.fill?d:undefined})),Ep("stroke",e,{defaultValue:a.stroke?p:undefined}))}function Pp(e){const{encoding:n,mark:t}=e;const i=n.order;if(!ea(t)&&vu(i)){return wp(e,i,"zindex",(e=>Xt(e.value)))}return{}}function _p({channel:e,markDef:n,encoding:t={},model:i,bandPosition:r}){const s=`${e}Offset`;const o=n[s];const a=t[s];if((s==="xOffset"||s==="yOffset")&&a){const e=ka({channel:s,channelDef:a,markDef:n,config:i===null||i===void 0?void 0:i.config,scaleName:i.scaleName(s),scale:i.getScaleComponent(s),stack:null,defaultRef:Xt(o),bandPosition:r});return{offsetType:"encoding",offset:e}}const u=n[s];if(u){return{offsetType:"visual",offset:u}}return{}}function zp(e,n,{defaultPos:t,vgChannel:i}){const{encoding:r,markDef:s,config:o,stack:a}=n;const u=r[e];const c=r[yn(e)];const l=n.scaleName(e);const f=n.getScaleComponent(e);const{offset:d,offsetType:p}=_p({channel:e,markDef:s,encoding:r,model:n,bandPosition:.5});const g=Tp({model:n,defaultPos:t,channel:e,scaleName:l,scale:f});const m=!u&&Rn(e)&&(r.latitude||r.longitude)?{field:n.getName(e)}:Np({channel:e,channelDef:u,channel2Def:c,markDef:s,config:o,scaleName:l,scale:f,stack:a,offset:d,defaultRef:g,bandPosition:p==="encoding"?0:undefined});return m?{[i||e]:m}:undefined}function Np(e){const{channel:n,channelDef:t,scaleName:i,stack:r,offset:s,markDef:o}=e;if(bu(t)&&r&&n===r.fieldChannel){if(fu(t)){let e=t.bandPosition;if(e===undefined&&o.type==="text"&&(n==="radius"||n==="theta")){e=.5}if(e!==undefined){return Aa({scaleName:i,fieldOrDatumDef:t,startSuffix:"start",bandPosition:e,offset:s})}}return Da(t,i,{suffix:"end"},{offset:s})}return xa(e)}function Tp({model:e,defaultPos:n,channel:t,scaleName:i,scale:r}){const{markDef:s,config:o}=e;return()=>{const a=hn(t);const u=bn(t);const c=ii(t,s,o,{vgChannel:u});if(c!==undefined){return Ca(t,c)}switch(n){case"zeroOrMin":case"zeroOrMax":if(i){const e=r.get("type");if(F([no.LOG,no.TIME,no.UTC],e)){}else{if(r.domainDefinitelyIncludesZero()){return{scale:i,value:0}}}}if(n==="zeroOrMin"){return a==="y"?{field:{group:"height"}}:{value:0}}else{switch(a){case"radius":return{signal:`min(${e.width.signal},${e.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}}break;case"mid":{const n=e[vn(t)];return Object.assign(Object.assign({},n),{mult:.5})}}return undefined}}const Mp={left:"x",center:"xc",right:"x2"};const Lp={top:"y",middle:"yc",bottom:"y2"};function qp(e,n,t,i="middle"){if(e==="radius"||e==="theta"){return bn(e)}const r=e==="x"?"align":"baseline";const s=ii(r,n,t);let o;if(Tt(s)){Vr(ir(r));o=undefined}else{o=s}if(e==="x"){return Mp[o||(i==="top"?"left":"center")]}else{return Lp[o||i]}}function Up(e,n,{defaultPos:t,defaultPos2:i,range:r}){if(r){return Rp(e,n,{defaultPos:t,defaultPos2:i})}return zp(e,n,{defaultPos:t})}function Rp(e,n,{defaultPos:t,defaultPos2:i}){const{markDef:r,config:s}=n;const o=yn(e);const a=vn(e);const u=Ip(n,i,o);const c=u[a]?qp(e,r,s):bn(e);return Object.assign(Object.assign({},zp(e,n,{defaultPos:t,vgChannel:c})),u)}function Ip(e,n,t){const{encoding:i,mark:r,markDef:s,stack:o,config:a}=e;const u=hn(t);const c=vn(t);const l=bn(t);const f=i[u];const d=e.scaleName(u);const p=e.getScaleComponent(u);const{offset:g}=t in i||t in s?_p({channel:t,markDef:s,encoding:i,model:e}):_p({channel:u,markDef:s,encoding:i,model:e});if(!f&&(t==="x2"||t==="y2")&&(i.latitude||i.longitude)){const n=vn(t);const i=e.markDef[n];if(i!=null){return{[n]:{value:i}}}else{return{[l]:{field:e.getName(t)}}}}const m=Wp({channel:t,channelDef:f,channel2Def:i[t],markDef:s,config:a,scaleName:d,scale:p,stack:o,offset:g,defaultRef:undefined});if(m!==undefined){return{[l]:m}}return Hp(t,s)||Hp(t,{[t]:si(t,s,a.style),[c]:si(c,s,a.style)})||Hp(t,a[r])||Hp(t,a.mark)||{[l]:Tp({model:e,defaultPos:n,channel:t,scaleName:d,scale:p})()}}function Wp({channel:e,channelDef:n,channel2Def:t,markDef:i,config:r,scaleName:s,scale:o,stack:a,offset:u,defaultRef:c}){if(bu(n)&&a&&e.charAt(0)===a.fieldChannel.charAt(0)){return Da(n,s,{suffix:"start"},{offset:u})}return xa({channel:e,channelDef:t,scaleName:s,scale:o,stack:a,markDef:i,config:r,offset:u,defaultRef:c})}function Hp(e,n){const t=vn(e);const i=bn(e);if(n[i]!==undefined){return{[i]:Ca(e,n[i])}}else if(n[e]!==undefined){return{[i]:Ca(e,n[e])}}else if(n[t]){const i=n[t];if(ga(i)){Vr(Yi(t))}else{return{[t]:Ca(e,i)}}}return undefined}function Gp(e,n){var t,i;const{config:r,encoding:s,markDef:o}=e;const a=o.type;const u=yn(n);const c=vn(n);const l=s[n];const f=s[u];const d=e.getScaleComponent(n);const p=d?d.get("type"):undefined;const g=o.orient;const m=(i=(t=s[c])!==null&&t!==void 0?t:s.size)!==null&&i!==void 0?i:ii("size",o,r,{vgChannel:c});const h=a==="bar"&&(n==="x"?g==="vertical":g==="horizontal");if(fu(l)&&(At(l.bin)||kt(l.bin)||l.timeUnit&&!f)&&!(m&&!ga(m))&&!mo(p)){return Qp({fieldDef:l,fieldDef2:f,channel:n,model:e})}else if((bu(l)&&mo(p)||h)&&!f){return Kp(l,n,e)}else{return Rp(n,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}}function Yp(e,n,t,i,s){if(ga(s)){if(t){const e=t.get("type");if(e==="band"){let e=`bandwidth('${n}')`;if(s.band!==1){e=`${s.band} * ${e}`}return{signal:`max(0.25, ${e})`}}else if(s.band!==1){Vr(ur(e));s=undefined}}else{return{mult:s.band,field:{group:e}}}}else if(Tt(s)){return s}else if(s){return{value:s}}if(t){const e=t.get("range");if(Mt(e)&&(0,r.Et)(e.step)){return{value:e.step-2}}}const o=ql(i.view,e);return{value:o-2}}function Kp(e,n,t){const{markDef:i,encoding:s,config:o,stack:a}=t;const u=i.orient;const c=t.scaleName(n);const l=t.getScaleComponent(n);const f=vn(n);const d=yn(n);const p=On(n);const g=t.scaleName(p);const m=u==="horizontal"&&n==="y"||u==="vertical"&&n==="x";let h;if(s.size||i.size){if(m){h=Ep("size",t,{vgChannel:f,defaultRef:Xt(i.size)})}else{Vr(dr(i.type))}}const b=!!h;const y=su({channel:n,fieldDef:e,markDef:i,config:o,scaleType:l===null||l===void 0?void 0:l.get("type"),useVlSizeChannel:m});h=h||{[f]:Yp(f,g||c,l,o,y)};const v=(l===null||l===void 0?void 0:l.get("type"))==="band"&&ga(y)&&!b?"top":"middle";const O=qp(n,i,o,v);const x=O==="xc"||O==="yc";const{offset:w,offsetType:j}=_p({channel:n,markDef:i,encoding:s,model:t,bandPosition:x?.5:0});const F=xa({channel:n,channelDef:e,markDef:i,config:o,scaleName:c,scale:l,stack:a,offset:w,defaultRef:Tp({model:t,defaultPos:"mid",channel:n,scaleName:c,scale:l}),bandPosition:x?j==="encoding"?0:.5:Tt(y)?{signal:`(1-${y})/2`}:ga(y)?(1-y.band)/2:0});if(f){return Object.assign({[O]:F},h)}else{const e=bn(d);const n=h[f];const t=w?Object.assign(Object.assign({},n),{offset:w}):n;return{[O]:F,[e]:(0,r.cy)(F)?[F[0],Object.assign(Object.assign({},F[1]),{offset:t})]:Object.assign(Object.assign({},F),{offset:t})}}}function Vp(e,n,t,i,r){if(We(e)){return 0}const s=e==="x"||e==="y2"?-n/2:n/2;if(Tt(t)||Tt(r)||Tt(i)){const e=ei(t);const n=ei(r);const o=ei(i);const a=o?`${o} + `:"";const u=e?`(${e} ? -1 : 1) * `:"";const c=n?`(${n} + ${s})`:s;return{signal:a+u+c}}else{r=r||0;return i+(t?-r-s:+r+s)}}function Qp({fieldDef:e,fieldDef2:n,channel:t,model:i}){var r,s,o;const{config:a,markDef:u,encoding:c}=i;const l=i.getScaleComponent(t);const f=i.scaleName(t);const d=l?l.get("type"):undefined;const p=l.get("reverse");const g=su({channel:t,fieldDef:e,markDef:u,config:a,scaleType:d});const m=(r=i.component.axes[t])===null||r===void 0?void 0:r[0];const h=(s=m===null||m===void 0?void 0:m.get("translate"))!==null&&s!==void 0?s:.5;const b=Rn(t)?(o=ii("binSpacing",u,a))!==null&&o!==void 0?o:0:0;const y=yn(t);const v=bn(t);const O=bn(y);const{offset:x}=_p({channel:t,markDef:u,encoding:c,model:i,bandPosition:0});const w=Tt(g)?{signal:`(1-${g.signal})/2`}:ga(g)?(1-g.band)/2:.5;if(At(e.bin)||e.timeUnit){return{[O]:Xp({fieldDef:e,scaleName:f,bandPosition:w,offset:Vp(y,b,p,h,x)}),[v]:Xp({fieldDef:e,scaleName:f,bandPosition:Tt(w)?{signal:`1-${w.signal}`}:1-w,offset:Vp(t,b,p,h,x)})}}else if(kt(e.bin)){const i=Da(e,f,{},{offset:Vp(y,b,p,h,x)});if(fu(n)){return{[O]:i,[v]:Da(n,f,{},{offset:Vp(t,b,p,h,x)})}}else if(Ct(e.bin)&&e.bin.step){return{[O]:i,[v]:{signal:`scale("${f}", ${Du(e,{expr:"datum"})} + ${e.bin.step})`,offset:Vp(t,b,p,h,x)}}}}Vr(Nr(y));return undefined}function Xp({fieldDef:e,scaleName:n,bandPosition:t,offset:i}){return Aa({scaleName:n,fieldOrDatumDef:e,bandPosition:t,offset:i})}const Jp=new Set(["aria","width","height"]);function Zp(e,n){const{fill:t=undefined,stroke:i=undefined}=n.color==="include"?Bp(e):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},ng(e.markDef,n)),eg(e,"fill",t)),eg(e,"stroke",i)),Ep("opacity",e)),Ep("fillOpacity",e)),Ep("strokeOpacity",e)),Ep("strokeWidth",e)),Ep("strokeDash",e)),Pp(e)),$p(e)),jp(e,"href")),kp(e))}function eg(e,n,t){const{config:i,mark:s,markDef:o}=e;const a=ii("invalid",o,i);if(a==="hide"&&t&&!ea(s)){const i=tg(e,{invalid:true,channels:ut});if(i){return{[n]:[{test:i,value:null},...(0,r.YO)(t)]}}}return t?{[n]:t}:{}}function ng(e,n){return It.reduce(((t,i)=>{if(!Jp.has(i)&&e[i]!==undefined&&n[i]!=="ignore"){t[i]=Xt(e[i])}return t}),{})}function tg(e,{invalid:n=false,channels:t}){const i=t.reduce(((n,t)=>{const i=e.getScaleComponent(t);if(i){const r=i.get("type");const s=e.vgField(t,{expr:"datum"});if(s&&ho(r)){n[s]=true}}return n}),{});const r=N(i);if(r.length>0){const e=n?"||":"&&";return r.map((e=>Fa(e,n))).join(` ${e} `)}return undefined}function ig(e){const{config:n,markDef:t}=e;const i=ii("invalid",t,n);if(i){const n=rg(e,{channels:Un});if(n){return{defined:{signal:n}}}}return{}}function rg(e,{invalid:n=false,channels:t}){const i=t.reduce(((n,t)=>{var i;const r=e.getScaleComponent(t);if(r){const s=r.get("type");const o=e.vgField(t,{expr:"datum",binSuffix:((i=e.stack)===null||i===void 0?void 0:i.impute)?"mid":undefined});if(o&&ho(s)){n[o]=true}}return n}),{});const r=N(i);if(r.length>0){const e=n?"||":"&&";return r.map((e=>Fa(e,n))).join(` ${e} `)}return undefined}function sg(e,n){if(n!==undefined){return{[e]:Xt(n)}}return undefined}const og="voronoi";const ag={defined:e=>e.type==="point"&&e.nearest,parse:(e,n)=>{if(n.events){for(const t of n.events){t.markname=e.getName(og)}}},marks:(e,n,t)=>{const{x:i,y:r}=n.project.hasChannel;const s=e.mark;if(ea(s)){Vr(vi(s));return t}const o={name:e.getName(og),type:"path",interactive:true,from:{data:e.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:true}},$p(e,{reactiveGeom:true}))},transform:[{type:"voronoi",x:{expr:i||!r?"datum.datum.x || 0":"0"},y:{expr:r||!i?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let a=0;let u=false;t.forEach(((n,t)=>{var i;const r=(i=n.name)!==null&&i!==void 0?i:"";if(r===e.component.mark[0].name){a=t}else if(r.indexOf(og)>=0){u=true}}));if(!u){t.splice(a+1,0,o)}return t}};const ug=ag;const cg={defined:e=>e.type==="point"&&e.resolve==="global"&&e.bind&&e.bind!=="scales"&&!wl(e.bind),parse:(e,n,t)=>Mg(n,t),topLevelSignals:(e,n,t)=>{const i=n.name;const s=n.project;const o=n.bind;const a=n.init&&n.init[0];const u=ug.defined(n)?"(item().isVoronoi ? datum.datum : datum)":"datum";s.items.forEach(((e,s)=>{var c,l;const f=q(`${i}_${e.field}`);const d=t.filter((e=>e.name===f));if(!d.length){t.unshift(Object.assign(Object.assign({name:f},a?{init:Hd(a[s])}:{value:null}),{on:n.events?[{events:n.events,update:`datum && item().mark.marktype !== 'group' ? ${u}[${(0,r.r$)(e.field)}] : null`}]:[],bind:(l=(c=o[e.field])!==null&&c!==void 0?c:o[e.channel])!==null&&l!==void 0?l:o}))}}));return t},signals:(e,n,t)=>{const i=n.name;const r=n.project;const s=t.filter((e=>e.name===i+Sg))[0];const o=i+sp;const a=r.items.map((e=>q(`${i}_${e.field}`)));const u=a.map((e=>`${e} !== null`)).join(" && ");if(a.length){s.update=`${u} ? {fields: ${o}, values: [${a.join(", ")}]} : null`}delete s.value;delete s.on;return t}};const lg=cg;const fg="_toggle";const dg={defined:e=>e.type==="point"&&!!e.toggle,signals:(e,n,t)=>t.concat({name:n.name+fg,value:false,on:[{events:n.events,update:n.toggle}]}),modifyExpr:(e,n)=>{const t=n.name+Sg;const i=n.name+fg;return`${i} ? null : ${t}, `+(n.resolve==="global"?`${i} ? null : true, `:`${i} ? null : {unit: ${Ng(e)}}, `)+`${i} ? ${t} : null`}};const pg=dg;const gg={defined:e=>e.clear!==undefined&&e.clear!==false,parse:(e,n)=>{if(n.clear){n.clear=(0,r.Kg)(n.clear)?(0,Id.P)(n.clear,"view"):n.clear}},topLevelSignals:(e,n,t)=>{if(lg.defined(n)){for(const e of n.project.items){const i=t.findIndex((t=>t.name===q(`${n.name}_${e.field}`)));if(i!==-1){t[i].on.push({events:n.clear,update:"null"})}}}return t},signals:(e,n,t)=>{function i(e,i){if(e!==-1&&t[e].on){t[e].on.push({events:n.clear,update:i})}}if(n.type==="interval"){for(const e of n.project.items){const n=t.findIndex((n=>n.name===e.signals.visual));i(n,"[0, 0]");if(n===-1){const n=t.findIndex((n=>n.name===e.signals.data));i(n,"null")}}}else{let e=t.findIndex((e=>e.name===n.name+Sg));i(e,"null");if(pg.defined(n)){e=t.findIndex((e=>e.name===n.name+fg));i(e,"false")}}return t}};const mg=gg;const hg={defined:e=>{const n=e.resolve==="global"&&e.bind&&wl(e.bind);const t=e.project.items.length===1&&e.project.items[0].field!==Ol;if(n&&!t){Vr(ji)}return n&&t},parse:(e,n,t)=>{var i;const s=b(t);s.select=(0,r.Kg)(s.select)?{type:s.select,toggle:n.toggle}:Object.assign(Object.assign({},s.select),{toggle:n.toggle});Mg(n,s);if((0,Rs.isObject)(t.select)&&(t.select.on||t.select.clear)){const e='event.item && indexof(event.item.mark.role, "legend") < 0';for(const t of n.events){t.filter=(0,r.YO)((i=t.filter)!==null&&i!==void 0?i:[]);if(!t.filter.includes(e)){t.filter.push(e)}}}const o=jl(n.bind)?n.bind.legend:"click";const a=(0,r.Kg)(o)?(0,Id.P)(o,"view"):(0,r.YO)(o);n.bind={legend:{merge:a}}},topLevelSignals:(e,n,t)=>{const i=n.name;const r=jl(n.bind)&&n.bind.legend;const s=e=>n=>{const t=b(n);t.markname=e;return t};for(const o of n.project.items){if(!o.hasLegend)continue;const e=`${q(o.field)}_legend`;const a=`${i}_${e}`;const u=t.filter((e=>e.name===a));if(u.length===0){const i=r.merge.map(s(`${e}_symbols`)).concat(r.merge.map(s(`${e}_labels`))).concat(r.merge.map(s(`${e}_entries`)));t.unshift(Object.assign(Object.assign({name:a},!n.init?{value:null}:{}),{on:[{events:i,update:"datum.value || item().items[0].items[0].datum.value",force:true},{events:r.merge,update:`!event.item || !datum ? null : ${a}`,force:true}]}))}}return t},signals:(e,n,t)=>{const i=n.name;const r=n.project;const s=t.find((e=>e.name===i+Sg));const o=i+sp;const a=r.items.filter((e=>e.hasLegend)).map((e=>q(`${i}_${q(e.field)}_legend`)));const u=a.map((e=>`${e} !== null`)).join(" && ");const c=`${u} ? {fields: ${o}, values: [${a.join(", ")}]} : null`;if(n.events&&a.length>0){s.on.push({events:a.map((e=>({signal:e}))),update:c})}else if(a.length>0){s.update=c;delete s.value;delete s.on}const l=t.find((e=>e.name===i+fg));const f=jl(n.bind)&&n.bind.legend;if(l){if(!n.events)l.on[0].events=f;else l.on.push(Object.assign(Object.assign({},l.on[0]),{events:f}))}return t}};const bg=hg;function yg(e,n,t){var i,r,s,o;const a=(i=e.fieldDef(n))===null||i===void 0?void 0:i.field;for(const u of T((r=e.component.selection)!==null&&r!==void 0?r:{})){const e=(s=u.project.hasField[a])!==null&&s!==void 0?s:u.project.hasChannel[n];if(e&&hg.defined(u)){const n=(o=t.get("selections"))!==null&&o!==void 0?o:[];n.push(u.name);t.set("selections",n,false);e.hasLegend=true}}}const vg="_translate_anchor";const Og="_translate_delta";const xg={defined:e=>e.type==="interval"&&e.translate,signals:(e,n,t)=>{const i=n.name;const r=lp.defined(n);const s=i+vg;const{x:o,y:a}=n.project.hasChannel;let u=(0,Id.P)(n.translate,"scope");if(!r){u=u.map((e=>(e.between[0].markname=i+gp,e)))}t.push({name:s,value:{},on:[{events:u.map((e=>e.between[0])),update:"{x: x(unit), y: y(unit)"+(o!==undefined?`, extent_x: ${r?fp(e,ce):`slice(${o.signals.visual})`}`:"")+(a!==undefined?`, extent_y: ${r?fp(e,le):`slice(${a.signals.visual})`}`:"")+"}"}]},{name:i+Og,value:{},on:[{events:u,update:`{x: ${s}.x - x(unit), y: ${s}.y - y(unit)}`}]});if(o!==undefined){jg(e,n,o,"width",t)}if(a!==undefined){jg(e,n,a,"height",t)}return t}};const wg=xg;function jg(e,n,t,i,r){var s,o;const a=n.name;const u=a+vg;const c=a+Og;const l=t.channel;const f=lp.defined(n);const d=r.filter((e=>e.name===t.signals[f?"data":"visual"]))[0];const p=e.getSizeSignalRef(i).signal;const g=e.getScaleComponent(l);const m=g.get("type");const h=g.get("reverse");const b=!f?"":l===ce?h?"":"-":h?"-":"";const y=`${u}.extent_${l}`;const v=`${b}${c}.${l} / ${f?`${p}`:`span(${y})`}`;const O=!f?"panLinear":m==="log"?"panLog":m==="symlog"?"panSymlog":m==="pow"?"panPow":"panLinear";const x=!f?"":m==="pow"?`, ${(s=g.get("exponent"))!==null&&s!==void 0?s:1}`:m==="symlog"?`, ${(o=g.get("constant"))!==null&&o!==void 0?o:1}`:"";const w=`${O}(${y}, ${v}${x})`;d.on.push({events:{signal:c},update:f?w:`clampRange(${w}, 0, ${p})`})}const Fg="_zoom_anchor";const $g="_zoom_delta";const Dg={defined:e=>e.type==="interval"&&e.zoom,signals:(e,n,t)=>{const i=n.name;const s=lp.defined(n);const o=i+$g;const{x:a,y:u}=n.project.hasChannel;const c=(0,r.r$)(e.scaleName(ce));const l=(0,r.r$)(e.scaleName(le));let f=(0,Id.P)(n.zoom,"scope");if(!s){f=f.map((e=>(e.markname=i+gp,e)))}t.push({name:i+Fg,on:[{events:f,update:!s?`{x: x(unit), y: y(unit)}`:"{"+[c?`x: invert(${c}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter((e=>!!e)).join(", ")+"}"}]},{name:o,on:[{events:f,force:true,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]});if(a!==undefined){kg(e,n,a,"width",t)}if(u!==undefined){kg(e,n,u,"height",t)}return t}};const Ag=Dg;function kg(e,n,t,i,r){var s,o;const a=n.name;const u=t.channel;const c=lp.defined(n);const l=r.filter((e=>e.name===t.signals[c?"data":"visual"]))[0];const f=e.getSizeSignalRef(i).signal;const d=e.getScaleComponent(u);const p=d.get("type");const g=c?fp(e,u):l.name;const m=a+$g;const h=`${a}${Fg}.${u}`;const b=!c?"zoomLinear":p==="log"?"zoomLog":p==="symlog"?"zoomSymlog":p==="pow"?"zoomPow":"zoomLinear";const y=!c?"":p==="pow"?`, ${(s=d.get("exponent"))!==null&&s!==void 0?s:1}`:p==="symlog"?`, ${(o=d.get("constant"))!==null&&o!==void 0?o:1}`:"";const v=`${b}(${g}, ${h}, ${m}${y})`;l.on.push({events:{signal:m},update:c?v:`clampRange(${v}, 0, ${f})`})}const Cg="_store";const Sg="_tuple";const Eg="_modify";const Bg="_selection_domain_";const Pg="vlSelectionResolve";const _g=[xp,bp,up,pg,lg,lp,bg,mg,wg,Ag,ug];function zg(e){let n=e.parent;while(n){if(ex(n))break;n=n.parent}return n}function Ng(e,{escape:n}={escape:true}){let t=n?(0,r.r$)(e.name):e.name;const i=zg(e);if(i){const{facet:e}=i;for(const n of Je){if(e[n]){t+=` + '__facet_${n}_' + (facet[${(0,r.r$)(i.vgField(n))}])`}}}return t}function Tg(e){var n;return T((n=e.component.selection)!==null&&n!==void 0?n:{}).reduce(((e,n)=>e||n.project.hasSelectionId),false)}function Mg(e,n){if((0,Rs.isString)(n.select)||!n.select.on)delete e.events;if((0,Rs.isString)(n.select)||!n.select.clear)delete e.clear;if((0,Rs.isString)(n.select)||!n.select.toggle)delete e.toggle}const Lg="RawCode";const qg="Literal";const Ug="Property";const Rg="Identifier";const Ig="ArrayExpression";const Wg="BinaryExpression";const Hg="CallExpression";const Gg="ConditionalExpression";const Yg="LogicalExpression";const Kg="MemberExpression";const Vg="ObjectExpression";const Qg="UnaryExpression";function Xg(e){this.type=e}Xg.prototype.visit=function(e){let n,t,i;if(e(this))return 1;for(n=Jg(this),t=0,i=n.length;t";Zg[om]="Identifier";Zg[am]="Keyword";Zg[um]="Null";Zg[cm]="Numeric";Zg[lm]="Punctuator";Zg[fm]="String";Zg[dm]="RegularExpression";var pm="ArrayExpression",gm="BinaryExpression",mm="CallExpression",hm="ConditionalExpression",bm="Identifier",ym="Literal",vm="LogicalExpression",Om="MemberExpression",xm="ObjectExpression",wm="Property",jm="UnaryExpression";var Fm="Unexpected token %0",$m="Unexpected number",Dm="Unexpected string",Am="Unexpected identifier",km="Unexpected reserved word",Cm="Unexpected end of input",Sm="Invalid regular expression",Em="Invalid regular expression: missing /",Bm="Octal literals are not allowed in strict mode.",Pm="Duplicate data property in object literal not allowed in strict mode";var _m="ILLEGAL",zm="Disabled.";var Nm=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),Tm=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function Mm(e,n){if(!e){throw new Error("ASSERT: "+n)}}function Lm(e){return e>=48&&e<=57}function qm(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function Um(e){return"01234567".indexOf(e)>=0}function Rm(e){return e===32||e===9||e===11||e===12||e===160||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function Im(e){return e===10||e===13||e===8232||e===8233}function Wm(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e===92||e>=128&&Nm.test(String.fromCharCode(e))}function Hm(e){return e===36||e===95||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===92||e>=128&&Tm.test(String.fromCharCode(e))}const Gm={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Ym(){while(nm1114111||e!=="}"){wh({},Fm,_m)}if(n<=65535){return String.fromCharCode(n)}t=(n-65536>>10)+55296;i=(n-65536&1023)+56320;return String.fromCharCode(t,i)}function Qm(){var e,n;e=em.charCodeAt(nm++);n=String.fromCharCode(e);if(e===92){if(em.charCodeAt(nm)!==117){wh({},Fm,_m)}++nm;e=Km("u");if(!e||e==="\\"||!Wm(e.charCodeAt(0))){wh({},Fm,_m)}n=e}while(nm>>="){nm+=4;return{type:lm,value:o,start:e,end:nm}}s=o.substr(0,3);if(s===">>>"||s==="<<="||s===">>="){nm+=3;return{type:lm,value:s,start:e,end:nm}}r=s.substr(0,2);if(i===r[1]&&"+-<>&|".indexOf(i)>=0||r==="=>"){nm+=2;return{type:lm,value:r,start:e,end:nm}}if(r==="//"){wh({},Fm,_m)}if("<>=!+-*%&|^/".indexOf(i)>=0){++nm;return{type:lm,value:i,start:e,end:nm}}wh({},Fm,_m)}function eh(e){let n="";while(nm=0&&nm=0){t=t.replace(/\\u\{([0-9a-fA-F]+)\}/g,((e,n)=>{if(parseInt(n,16)<=1114111){return"x"}wh({},Sm)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x")}try{new RegExp(t)}catch(i){wh({},Sm)}try{return new RegExp(e,n)}catch(r){return null}}function sh(){var e,n,t,i,r;e=em[nm];Mm(e==="/","Regular expression literal must start with a slash");n=em[nm++];t=false;i=false;while(nm=0){wh({},Sm,t)}return{value:t,literal:n}}function ah(){var e,n,t,i;im=null;Ym();e=nm;n=sh();t=oh();i=rh(n.value,t.value);return{literal:n.literal+t.literal,value:i,regex:{pattern:n.value,flags:t.value},start:e,end:nm}}function uh(e){return e.type===om||e.type===am||e.type===rm||e.type===um}function ch(){Ym();if(nm>=tm){return{type:sm,start:nm,end:nm}}const e=em.charCodeAt(nm);if(Wm(e)){return Jm()}if(e===40||e===41||e===59){return Zm()}if(e===39||e===34){return ih()}if(e===46){if(Lm(em.charCodeAt(nm+1))){return th()}return Zm()}if(Lm(e)){return th()}return Zm()}function lh(){const e=im;nm=e.end;im=ch();nm=e.end;return e}function fh(){const e=nm;im=ch();nm=e}function dh(e){const n=new Xg(pm);n.elements=e;return n}function ph(e,n,t){const i=new Xg(e==="||"||e==="&&"?vm:gm);i.operator=e;i.left=n;i.right=t;return i}function gh(e,n){const t=new Xg(mm);t.callee=e;t.arguments=n;return t}function mh(e,n,t){const i=new Xg(hm);i.test=e;i.consequent=n;i.alternate=t;return i}function hh(e){const n=new Xg(bm);n.name=e;return n}function bh(e){const n=new Xg(ym);n.value=e.value;n.raw=em.slice(e.start,e.end);if(e.regex){if(n.raw==="//"){n.raw="/(?:)/"}n.regex=e.regex}return n}function yh(e,n,t){const i=new Xg(Om);i.computed=e==="[";i.object=n;i.property=t;if(!i.computed)t.member=true;return i}function vh(e){const n=new Xg(xm);n.properties=e;return n}function Oh(e,n,t){const i=new Xg(wm);i.key=n;i.value=t;i.kind=e;return i}function xh(e,n){const t=new Xg(jm);t.operator=e;t.argument=n;t.prefix=true;return t}function wh(e,n){var t,i=Array.prototype.slice.call(arguments,2),r=n.replace(/%(\d)/g,((e,n)=>{Mm(n":case"<=":case">=":case"instanceof":case"in":n=7;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11;break}return n}function Rh(){var e,n,t,i,r,s,o,a,u,c;e=im;u=qh();i=im;r=Uh(i);if(r===0){return u}i.prec=r;lh();n=[e,im];o=qh();s=[u,i,o];while((r=Uh(im))>0){while(s.length>2&&r<=s[s.length-2].prec){o=s.pop();a=s.pop().value;u=s.pop();n.pop();t=ph(a,u,o);s.push(t)}i=lh();i.prec=r;s.push(i);n.push(im);t=qh();s.push(t)}c=s.length-1;t=s[c];n.pop();while(c>1){n.pop();t=ph(s[c-1].value,s[c-2],t);c-=2}return t}function Ih(){var e,n,t;e=Rh();if($h("?")){lh();n=Ih();Fh(":");t=Ih();e=mh(e,n,t)}return e}function Wh(){const e=Ih();if($h(",")){throw new Error(zm)}return e}function Hh(e){em=e;nm=0;tm=em.length;im=null;fh();const n=Wh();if(im.type!==sm){throw new Error("Unexpect token after expression.")}return n}var Gh={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function Yh(e){function n(n,t,i,r){let s=e(t[0]);if(i){s=i+"("+s+")";if(i.lastIndexOf("new ",0)===0)s="("+s+")"}return s+"."+n+(r<0?"":r===0?"()":"("+t.slice(1).map(e).join(",")+")")}function t(e,t,i){return r=>n(e,r,t,i)}const i="new Date",r="String",s="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(n){if(n.length<3)error("Missing arguments to clamp function.");if(n.length>3)error("Too many arguments to clamp function.");const t=n.map(e);return"Math.max("+t[1]+", Math.min("+t[2]+","+t[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:i,date:t("getDate",i,0),day:t("getDay",i,0),year:t("getFullYear",i,0),month:t("getMonth",i,0),hours:t("getHours",i,0),minutes:t("getMinutes",i,0),seconds:t("getSeconds",i,0),milliseconds:t("getMilliseconds",i,0),time:t("getTime",i,0),timezoneoffset:t("getTimezoneOffset",i,0),utcdate:t("getUTCDate",i,0),utcday:t("getUTCDay",i,0),utcyear:t("getUTCFullYear",i,0),utcmonth:t("getUTCMonth",i,0),utchours:t("getUTCHours",i,0),utcminutes:t("getUTCMinutes",i,0),utcseconds:t("getUTCSeconds",i,0),utcmilliseconds:t("getUTCMilliseconds",i,0),length:t("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:t("toUpperCase",r,0),lower:t("toLowerCase",r,0),substring:t("substring",r),split:t("split",r),trim:t("trim",r,0),regexp:s,test:t("test",s),if:function(n){if(n.length<3)error("Missing arguments to if function.");if(n.length>3)error("Too many arguments to if function.");const t=n.map(e);return"("+t[0]+"?"+t[1]+":"+t[2]+")"}}}function Kh(e){const n=e&&e.length-1;return n&&(e[0]==='"'&&e[n]==='"'||e[0]==="'"&&e[n]==="'")?e.slice(1,-1):e}function Vh(e){e=e||{};const n=e.allowed?toSet(e.allowed):{},t=e.forbidden?toSet(e.forbidden):{},i=e.constants||Gh,r=(e.functions||Yh)(f),s=e.globalvar,o=e.fieldvar,a=isFunction(s)?s:e=>`${s}["${e}"]`;let u={},c={},l=0;function f(e){if(isString(e))return e;const n=d[e.type];if(n==null)error("Unsupported type: "+e.type);return n(e)}const d={Literal:e=>e.raw,Identifier:e=>{const r=e.name;if(l>0){return r}else if(hasOwnProperty(t,r)){return error("Illegal identifier: "+r)}else if(hasOwnProperty(i,r)){return i[r]}else if(hasOwnProperty(n,r)){return r}else{u[r]=1;return a(r)}},MemberExpression:e=>{const n=!e.computed,t=f(e.object);if(n)l+=1;const i=f(e.property);if(t===o){c[Kh(i)]=1}if(n)l-=1;return t+(n?"."+i:"["+i+"]")},CallExpression:e=>{if(e.callee.type!=="Identifier"){error("Illegal callee type: "+e.callee.type)}const n=e.callee.name,t=e.arguments,i=hasOwnProperty(r,n)&&r[n];if(!i)error("Unrecognized function: "+n);return isFunction(i)?i(t):i+"("+t.map(f).join(",")+")"},ArrayExpression:e=>"["+e.elements.map(f).join(",")+"]",BinaryExpression:e=>"("+f(e.left)+" "+e.operator+" "+f(e.right)+")",UnaryExpression:e=>"("+e.operator+f(e.argument)+")",ConditionalExpression:e=>"("+f(e.test)+"?"+f(e.consequent)+":"+f(e.alternate)+")",LogicalExpression:e=>"("+f(e.left)+e.operator+f(e.right)+")",ObjectExpression:e=>"{"+e.properties.map(f).join(",")+"}",Property:e=>{l+=1;const n=f(e.key);l-=1;return n+":"+f(e.value)}};function p(e){const n={code:f(e),globals:Object.keys(u),fields:Object.keys(c)};u={};c={};return n}p.functions=r;p.constants=i;return p}function Qh(e){const n=[];if(e.type==="Identifier"){return[e.name]}if(e.type==="Literal"){return[e.value]}if(e.type==="MemberExpression"){n.push(...Qh(e.object));n.push(...Qh(e.property))}return n}function Xh(e){if(e.object.type==="MemberExpression"){return Xh(e.object)}return e.object.name==="datum"}function Jh(e){const n=Hh(e);const t=new Set;n.visit((e=>{if(e.type==="MemberExpression"&&Xh(e)){t.add(Qh(e).slice(1).join("."))}}));return t}class Zh extends ep{clone(){return new Zh(null,this.model,b(this.filter))}constructor(e,n,t){super(e);this.model=n;this.filter=t;this.expr=rb(this.model,this.filter,this);this._dependentFields=Jh(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function eb(e,n){var t;const i={};const s=e.config.selection;if(!n||!n.length)return i;for(const o of n){const n=q(o.name);const a=o.select;const u=(0,r.Kg)(a)?a:a.type;const c=(0,r.Gv)(a)?b(a):{type:u};const l=s[u];for(const e in l){if(e==="fields"||e==="encodings"){continue}if(e==="mark"){c[e]=Object.assign(Object.assign({},l[e]),c[e])}if(c[e]===undefined||c[e]===true){c[e]=(t=l[e])!==null&&t!==void 0?t:c[e]}}const f=i[n]=Object.assign(Object.assign({},c),{name:n,type:u,init:o.value,bind:o.bind,events:(0,r.Kg)(c.on)?(0,Id.P)(c.on,"scope"):(0,r.YO)(b(c.on))});for(const t of _g){if(t.defined(f)&&t.parse){t.parse(e,f,o)}}}return i}function nb(e,n,t,i="datum"){const s=(0,r.Kg)(n)?n:n.param;const o=q(s);const a=(0,r.r$)(o+Cg);let u;try{u=e.getSelectionComponent(o,s)}catch(p){return`!!${o}`}if(u.project.timeUnit){const n=t!==null&&t!==void 0?t:e.component.data.raw;const i=u.project.timeUnit.clone();if(n.parent){i.insertAsParentOf(n)}else{n.parent=i}}const c=u.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest(";const l=u.resolve==="global"?")":`, ${(0,r.r$)(u.resolve)})`;const f=`${c}${a}, ${i}${l}`;const d=`length(data(${a}))`;return n.empty===false?`${d} && ${f}`:`!${d} || ${f}`}function tb(e,n,t){const i=q(n);const s=t["encoding"];let o=t["field"];let a;try{a=e.getSelectionComponent(i,n)}catch(u){return i}if(!s&&!o){o=a.project.items[0].field;if(a.project.items.length>1){Vr('A "field" or "encoding" must be specified when using a selection as a scale domain. '+`Using "field": ${(0,r.r$)(o)}.`)}}else if(s&&!o){const e=a.project.items.filter((e=>e.channel===s));if(!e.length||e.length>1){o=a.project.items[0].field;Vr((!e.length?"No ":"Multiple ")+`matching ${(0,r.r$)(s)} encoding found for selection ${(0,r.r$)(t.param)}. `+`Using "field": ${(0,r.r$)(o)}.`)}else{o=e[0].field}}return`${a.name}[${(0,r.r$)(Y(o))}]`}function ib(e,n){var t;for(const[i,r]of M((t=e.component.selection)!==null&&t!==void 0?t:{})){const t=e.getName(`lookup_${i}`);e.component.data.outputNodes[t]=r.materialized=new np(new Zh(n,e,{param:i}),t,Rd.Lookup,e.component.data.outputNodeRefCounts)}}function rb(e,n,t){return U(n,(n=>{if((0,r.Kg)(n)){return n}else if(As(n)){return nb(e,n,t)}else{return Ls(n)}}))}var sb=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);rMu(e,n))).join(", ")}return e}function ab(e,n,t,i){var r,s,o;var a,u;(r=e.encode)!==null&&r!==void 0?r:e.encode={};(s=(a=e.encode)[n])!==null&&s!==void 0?s:a[n]={};(o=(u=e.encode[n]).update)!==null&&o!==void 0?o:u.update={};e.encode[n].update[t]=i}function ub(e,n,t,i={header:false}){var s,o;const a=e.combine(),{disable:u,orient:c,scale:l,labelExpr:f,title:d,zindex:p}=a,g=sb(a,["disable","orient","scale","labelExpr","title","zindex"]);if(u){return undefined}for(const m in g){const e=rc[m];const t=g[m];if(e&&e!==n&&e!=="both"){delete g[m]}else if(tc(t)){const{condition:e}=t,n=sb(t,["condition"]);const i=(0,r.YO)(e);const s=nc[m];if(s){const{vgProp:e,part:t}=s;const r=[...i.map((e=>{const{test:n}=e,t=sb(e,["test"]);return Object.assign({test:rb(null,n)},t)})),n];ab(g,t,e,r);delete g[m]}else if(s===null){const e={signal:i.map((e=>{const{test:n}=e,t=sb(e,["test"]);return`${rb(null,n)} ? ${Zt(t)} : `})).join("")+Zt(n)};g[m]=e}}else if(Tt(t)){const e=nc[m];if(e){const{vgProp:n,part:i}=e;ab(g,i,n,t);delete g[m]}}if(F(["labelAlign","labelBaseline"],m)&&g[m]===null){delete g[m]}}if(n==="grid"){if(!g.grid){return undefined}if(g.encode){const{grid:e}=g.encode;g.encode=Object.assign({},e?{grid:e}:{});if(z(g.encode)){delete g.encode}}return Object.assign(Object.assign({scale:l,orient:c},g),{domain:false,labels:false,aria:false,maxExtent:0,minExtent:0,ticks:false,zindex:X(p,0)})}else{if(!i.header&&e.mainExtracted){return undefined}if(f!==undefined){let e=f;if(((o=(s=g.encode)===null||s===void 0?void 0:s.labels)===null||o===void 0?void 0:o.update)&&Tt(g.encode.labels.update.text)){e=K(f,"datum.label",g.encode.labels.update.text.signal)}ab(g,"labels","text",{signal:e})}if(g.labelAlign===null){delete g.labelAlign}if(g.encode){for(const n of ic){if(!e.hasAxisPart(n)){delete g.encode[n]}}if(z(g.encode)){delete g.encode}}const n=ob(d,t);return Object.assign(Object.assign(Object.assign(Object.assign({scale:l,orient:c,grid:false},n?{title:n}:{}),g),t.aria===false?{aria:false}:{}),{zindex:X(p,0)})}}function cb(e){const{axes:n}=e.component;const t=[];for(const i of Un){if(n[i]){for(const r of n[i]){if(!r.get("disable")&&!r.get("gridScale")){const n=i==="x"?"height":"width";const r=e.getSizeSignalRef(n).signal;if(n!==r){t.push({name:n,update:r})}}}}}return t}function lb(e,n){const{x:t=[],y:i=[]}=e;return[...t.map((e=>ub(e,"grid",n))),...i.map((e=>ub(e,"grid",n))),...t.map((e=>ub(e,"main",n))),...i.map((e=>ub(e,"main",n)))].filter((e=>e))}function fb(e,n,t,i){return Object.assign.apply(null,[{},...e.map((e=>{if(e==="axisOrient"){const e=t==="x"?"bottom":"left";const r=n[t==="x"?"axisBottom":"axisLeft"]||{};const s=n[t==="x"?"axisTop":"axisRight"]||{};const o=new Set([...N(r),...N(s)]);const a={};for(const n of o.values()){a[n]={signal:`${i["signal"]} === "${e}" ? ${ei(r[n])} : ${ei(s[n])}`}}return a}return n[e]}))])}function db(e,n,t,i){const r=n==="band"?["axisDiscrete","axisBand"]:n==="point"?["axisDiscrete","axisPoint"]:co(n)?["axisQuantitative"]:n==="time"||n==="utc"?["axisTemporal"]:[];const s=e==="x"?"axisX":"axisY";const o=Tt(t)?"axisOrient":`axis${I(t)}`;const a=[...r,...r.map((e=>s+e.substr(4)))];const u=["axis",o,s];return{vlOnlyAxisConfig:fb(a,i,e,t),vgAxisConfig:fb(u,i,e,t),axisConfigStyle:pb([...u,...a],i)}}function pb(e,n){var t;const i=[{}];for(const s of e){let e=(t=n[s])===null||t===void 0?void 0:t.style;if(e){e=(0,r.YO)(e);for(const t of e){i.push(n.style[t])}}}return Object.assign.apply(null,i)}function gb(e,n,t,i={}){var r;const s=oi(e,t,n);if(s!==undefined){return{configFrom:"style",configValue:s}}for(const o of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"]){if(((r=i[o])===null||r===void 0?void 0:r[e])!==undefined){return{configFrom:o,configValue:i[o][e]}}}return{}}const mb={scale:({model:e,channel:n})=>e.scaleName(n),format:({fieldOrDatumDef:e,config:n,axis:t})=>{const{format:i,formatType:r}=t;return Na(e,e.type,i,r,n,true)},formatType:({axis:e,fieldOrDatumDef:n,scaleType:t})=>{const{formatType:i}=e;return Ta(i,n,t)},grid:({fieldOrDatumDef:e,axis:n,scaleType:t})=>{var i;return(i=n.grid)!==null&&i!==void 0?i:hb(t,e)},gridScale:({model:e,channel:n})=>bb(e,n),labelAlign:({axis:e,labelAngle:n,orient:t,channel:i})=>e.labelAlign||xb(n,t,i),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:n,orient:t,channel:i})=>e.labelBaseline||Ob(n,t,i),labelFlush:({axis:e,fieldOrDatumDef:n,channel:t})=>{var i;return(i=e.labelFlush)!==null&&i!==void 0?i:wb(n.type,t)},labelOverlap:({axis:e,fieldOrDatumDef:n,scaleType:t})=>{var i;return(i=e.labelOverlap)!==null&&i!==void 0?i:jb(n.type,t,fu(n)&&!!n.timeUnit,fu(n)?n.sort:undefined)},orient:({orient:e})=>e,tickCount:({channel:e,model:n,axis:t,fieldOrDatumDef:i,scaleType:r})=>{var s;const o=e==="x"?"width":e==="y"?"height":undefined;const a=o?n.getSizeSignalRef(o):undefined;return(s=t.tickCount)!==null&&s!==void 0?s:$b({fieldOrDatumDef:i,scaleType:r,size:a,values:t.values})},title:({axis:e,model:n,channel:t})=>{if(e.title!==undefined){return e.title}const i=Db(n,t);if(i!==undefined){return i}const r=n.typedFieldDef(t);const s=t==="x"?"x2":"y2";const o=n.fieldDef(s);return ui(r?[tu(r)]:[],fu(o)?[tu(o)]:[])},values:({axis:e,fieldOrDatumDef:n})=>Ab(e,n),zindex:({axis:e,fieldOrDatumDef:n,mark:t})=>{var i;return(i=e.zindex)!==null&&i!==void 0?i:kb(t,n)}};function hb(e,n){return!mo(e)&&fu(n)&&!At(n===null||n===void 0?void 0:n.bin)&&!kt(n===null||n===void 0?void 0:n.bin)}function bb(e,n){const t=n==="x"?"y":"x";if(e.getScaleComponent(t)){return e.scaleName(t)}return undefined}function yb(e,n,t,i,r){const s=n===null||n===void 0?void 0:n.labelAngle;if(s!==undefined){return Tt(s)?s:ie(s)}else{const{configValue:s}=gb("labelAngle",i,n===null||n===void 0?void 0:n.style,r);if(s!==undefined){return ie(s)}else{if(t===ce&&F([Qs,Ks],e.type)&&!(fu(e)&&e.timeUnit)){return 270}return undefined}}}function vb(e){return`(((${e.signal} % 360) + 360) % 360)`}function Ob(e,n,t,i){if(e!==undefined){if(t==="x"){if(Tt(e)){const t=vb(e);const i=Tt(n)?`(${n.signal} === "top")`:n==="top";return{signal:`(45 < ${t} && ${t} < 135) || (225 < ${t} && ${t} < 315) ? "middle" :`+`(${t} <= 45 || 315 <= ${t}) === ${i} ? "bottom" : "top"`}}if(45{if(!Ou(n)){return}if(Va(n.sort)){const{field:i,timeUnit:r}=n;const s=n.sort;const o=s.map(((e,n)=>`${Ls({field:i,timeUnit:r,equal:e})} ? ${n} : `)).join("")+s.length;e=new Cb(e,{calculate:o,as:Sb(n,t,{forAs:true})})}}));return e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${w(this.transform)}`}}function Sb(e,n,t){return Du(e,Object.assign({prefix:n,suffix:"sort_index"},t!==null&&t!==void 0?t:{}))}function Eb(e,n){if(F(["top","bottom"],n)){return"column"}else if(F(["left","right"],n)){return"row"}return e==="row"?"row":"column"}function Bb(e,n,t,i){const r=i==="row"?t.headerRow:i==="column"?t.headerColumn:t.headerFacet;return X((n||{})[e],r[e],t.header[e])}function Pb(e,n,t,i){const r={};for(const s of e){const e=Bb(s,n||{},t,i);if(e!==undefined){r[s]=e}}return r}const _b=["row","column"];const zb=["header","footer"];function Nb(e,n){const t=e.component.layoutHeaders[n].title;const i=e.config?e.config:undefined;const r=e.component.layoutHeaders[n].facetFieldDef?e.component.layoutHeaders[n].facetFieldDef:undefined;const{titleAnchor:s,titleAngle:o,titleOrient:a}=Pb(["titleAnchor","titleAngle","titleOrient"],r.header,i,n);const u=Eb(n,a);const c=ie(o);return{name:`${n}-title`,type:"group",role:`${u}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:t},n==="row"?{orient:"left"}:{}),{style:"guide-title"}),Mb(c,u)),Tb(u,c,s)),Gb(i,r,n,dl,ll))}}function Tb(e,n,t="middle"){switch(t){case"start":return{align:"left"};case"end":return{align:"right"}}const i=xb(n,e==="row"?"left":"top",e==="row"?"y":"x");return i?{align:i}:{}}function Mb(e,n){const t=Ob(e,n==="row"?"left":"top",n==="row"?"y":"x",true);return t?{baseline:t}:{}}function Lb(e,n){const t=e.component.layoutHeaders[n];const i=[];for(const r of zb){if(t[r]){for(const s of t[r]){const o=Rb(e,n,r,t,s);if(o!=null){i.push(o)}}}}return i}function qb(e,n){var t;const{sort:i}=e;if(Ka(i)){return{field:Du(i,{expr:"datum"}),order:(t=i.order)!==null&&t!==void 0?t:"ascending"}}else if((0,r.cy)(i)){return{field:Sb(e,n,{expr:"datum"}),order:"ascending"}}else{return{field:Du(e,{expr:"datum"}),order:i!==null&&i!==void 0?i:"ascending"}}}function Ub(e,n,t){const{format:i,formatType:r,labelAngle:s,labelAnchor:o,labelOrient:a,labelExpr:u}=Pb(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,t,n);const c=Pa({fieldOrDatumDef:e,format:i,formatType:r,expr:"parent",config:t}).signal;const l=Eb(n,a);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:u?K(K(u,"datum.label",c),"datum.value",Du(e,{expr:"parent"})):c}},n==="row"?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),Mb(s,l)),Tb(l,s,o)),Gb(t,e,n,pl,fl))}function Rb(e,n,t,i,r){if(r){let s=null;const{facetFieldDef:o}=i;const a=e.config?e.config:undefined;if(o&&r.labels){const{labelOrient:e}=Pb(["labelOrient"],o.header,a,n);if(n==="row"&&!F(["top","bottom"],e)||n==="column"&&!F(["left","right"],e)){s=Ub(o,n,a)}}const u=ex(e)&&!Qa(e.facet);const c=r.axes;const l=(c===null||c===void 0?void 0:c.length)>0;if(s||l){const a=n==="row"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:e.getName(`${n}_${t}`),type:"group",role:`${n}-${t}`},i.facetFieldDef?{from:{data:e.getName(`${n}_domain`)},sort:qb(o,n)}:{}),l&&u?{from:{data:e.getName(`facet_domain_${n}`)}}:{}),s?{title:s}:{}),r.sizeSignal?{encode:{update:{[a]:r.sizeSignal}}}:{}),l?{axes:c}:{})}}return null}const Ib={column:{start:0,end:1},row:{start:1,end:0}};function Wb(e,n){return Ib[n][e]}function Hb(e,n){const t={};for(const i of Je){const r=e[i];if(r===null||r===void 0?void 0:r.facetFieldDef){const{titleAnchor:e,titleOrient:s}=Pb(["titleAnchor","titleOrient"],r.facetFieldDef.header,n,i);const o=Eb(i,s);const a=Wb(e,o);if(a!==undefined){t[o]=a}}}return z(t)?undefined:t}function Gb(e,n,t,i,r){const s={};for(const o of i){if(!r[o]){continue}const i=Bb(o,n===null||n===void 0?void 0:n.header,e,t);if(i!==undefined){s[r[o]]=i}}return s}function Yb(e){return[...Kb(e,"width"),...Kb(e,"height"),...Kb(e,"childWidth"),...Kb(e,"childHeight")]}function Kb(e,n){const t=n==="width"?"x":"y";const i=e.component.layoutSize.get(n);if(!i||i==="merged"){return[]}const r=e.getSizeSignalRef(n).signal;if(i==="step"){const n=e.getScaleComponent(t);if(n){const i=n.get("type");const s=n.get("range");if(mo(i)&&Mt(s)){const i=e.scaleName(t);if(ex(e.parent)){const n=e.parent.component.resolve;if(n.scale[t]==="independent"){return[Vb(i,s)]}}return[Vb(i,s),{name:r,update:Qb(i,n,`domain('${i}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(i=="container"){const n=r.endsWith("width");const t=n?"containerSize()[0]":"containerSize()[1]";const i=Ll(e.config.view,n?"width":"height");const s=`isFinite(${t}) ? ${t} : ${i}`;return[{name:r,init:s,on:[{update:s,events:"window:resize"}]}]}else{return[{name:r,value:i}]}}function Vb(e,n){const t=`${e}_step`;if(Tt(n.step)){return{name:t,update:n.step.signal}}else{return{name:t,value:n.step}}}function Qb(e,n,t){const i=n.get("type");const r=n.get("padding");const s=X(n.get("paddingOuter"),r);let o=n.get("paddingInner");o=i==="band"?o!==undefined?o:r:1;return`bandspace(${t}, ${ei(o)}, ${ei(s)}) * ${e}_step`}function Xb(e){return e==="childWidth"?"width":e==="childHeight"?"height":e}function Jb(e,n){return N(e).reduce(((t,i)=>{const r=e[i];return Object.assign(Object.assign({},t),wp(n,r,i,(e=>Xt(e.value))))}),{})}function Zb(e,n){if(ex(n)){return e==="theta"?"independent":"shared"}else if(tx(n)){return"shared"}else if(nx(n)){return Rn(e)||e==="theta"||e==="radius"?"independent":"shared"}throw new Error("invalid model type for resolve")}function ey(e,n){const t=e.scale[n];const i=Rn(n)?"axis":"legend";if(t==="independent"){if(e[i][n]==="shared"){Vr(Or(n))}return"independent"}return e[i][n]||"shared"}const ny=Object.assign(Object.assign({},yl),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1});const ty=N(ny);class iy extends kd{}const ry={symbols:sy,gradient:oy,labels:ay,entries:uy};function sy(e,{fieldOrDatumDef:n,model:t,channel:i,legendCmpt:s,legendType:o}){var a,u,c,l,f,d,p,g;if(o!=="symbol"){return undefined}const{markDef:m,encoding:h,config:b,mark:y}=t;const v=m.filled&&y!=="trail";let O=Object.assign(Object.assign({},ni({},t,aa)),Bp(t,{filled:v}));const x=(a=s.get("symbolOpacity"))!==null&&a!==void 0?a:b.legend.symbolOpacity;const w=(u=s.get("symbolFillColor"))!==null&&u!==void 0?u:b.legend.symbolFillColor;const j=(c=s.get("symbolStrokeColor"))!==null&&c!==void 0?c:b.legend.symbolStrokeColor;const F=x===undefined?(l=cy(h.opacity))!==null&&l!==void 0?l:m.opacity:undefined;if(O.fill){if(i==="fill"||v&&i===je){delete O.fill}else{if(O.fill["field"]){if(w){delete O.fill}else{O.fill=Xt((f=b.legend.symbolBaseFillColor)!==null&&f!==void 0?f:"black");O.fillOpacity=Xt(F!==null&&F!==void 0?F:1)}}else if((0,r.cy)(O.fill)){const e=(g=(p=ly((d=h.fill)!==null&&d!==void 0?d:h.color))!==null&&p!==void 0?p:m.fill)!==null&&g!==void 0?g:v&&m.color;if(e){O.fill=Xt(e)}}}}if(O.stroke){if(i==="stroke"||!v&&i===je){delete O.stroke}else{if(O.stroke["field"]||j){delete O.stroke}else if((0,r.cy)(O.stroke)){const e=X(ly(h.stroke||h.color),m.stroke,v?m.color:undefined);if(e){O.stroke={value:e}}}}}if(i!==Ce){const e=fu(n)&&dy(t,s,n);if(e){O.opacity=[Object.assign({test:e},Xt(F!==null&&F!==void 0?F:1)),Xt(b.legend.unselectedOpacity)]}else if(F){O.opacity=Xt(F)}}O=Object.assign(Object.assign({},O),e);return z(O)?undefined:O}function oy(e,{model:n,legendType:t,legendCmpt:i}){var r;if(t!=="gradient"){return undefined}const{config:s,markDef:o,encoding:a}=n;let u={};const c=(r=i.get("gradientOpacity"))!==null&&r!==void 0?r:s.legend.gradientOpacity;const l=c===undefined?cy(a.opacity)||o.opacity:undefined;if(l){u.opacity=Xt(l)}u=Object.assign(Object.assign({},u),e);return z(u)?undefined:u}function ay(e,{fieldOrDatumDef:n,model:t,channel:i,legendCmpt:r}){const s=t.legend(i)||{};const o=t.config;const a=fu(n)?dy(t,r,n):undefined;const u=a?[{test:a,value:1},{value:o.legend.unselectedOpacity}]:undefined;const{format:c,formatType:l}=s;let f=undefined;if(Sa(l)){f=za({fieldOrDatumDef:n,field:"datum.value",format:c,formatType:l,config:o})}else if(c===undefined&&l===undefined&&o.customFormatTypes){if(n.type==="quantitative"&&o.numberFormatType){f=za({fieldOrDatumDef:n,field:"datum.value",format:o.numberFormat,formatType:o.numberFormatType,config:o})}else if(n.type==="temporal"&&o.timeFormatType&&fu(n)&&n.timeUnit===undefined){f=za({fieldOrDatumDef:n,field:"datum.value",format:o.timeFormat,formatType:o.timeFormatType,config:o})}}const d=Object.assign(Object.assign(Object.assign({},u?{opacity:u}:{}),f?{text:f}:{}),e);return z(d)?undefined:d}function uy(e,{legendCmpt:n}){const t=n.get("selections");return(t===null||t===void 0?void 0:t.length)?Object.assign(Object.assign({},e),{fill:{value:"transparent"}}):e}function cy(e){return fy(e,((e,n)=>Math.max(e,n.value)))}function ly(e){return fy(e,((e,n)=>X(e,n.value)))}function fy(e,n){if(lu(e)){return(0,r.YO)(e.condition).reduce(n,e.value)}else if(vu(e)){return e.value}return undefined}function dy(e,n,t){const i=n.get("selections");if(!(i===null||i===void 0?void 0:i.length))return undefined;const s=(0,r.r$)(t.field);return i.map((e=>{const n=(0,r.r$)(q(e)+Cg);return`(!length(data(${n})) || (${e}[${s}] && indexof(${e}[${s}], datum.value) >= 0))`})).join(" || ")}const py={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:n,config:t})=>{const{format:i,formatType:r}=n;return Na(e,e.type,i,r,t,false)},formatType:({legend:e,fieldOrDatumDef:n,scaleType:t})=>{const{formatType:i}=e;return Ta(i,n,t)},gradientLength:e=>{var n,t;const{legend:i,legendConfig:r}=e;return(t=(n=i.gradientLength)!==null&&n!==void 0?n:r.gradientLength)!==null&&t!==void 0?t:xy(e)},labelOverlap:({legend:e,legendConfig:n,scaleType:t})=>{var i,r;return(r=(i=e.labelOverlap)!==null&&i!==void 0?i:n.labelOverlap)!==null&&r!==void 0?r:jy(t)},symbolType:({legend:e,markDef:n,channel:t,encoding:i})=>{var r;return(r=e.symbolType)!==null&&r!==void 0?r:my(n.type,t,i.shape,n.shape)},title:({fieldOrDatumDef:e,config:n})=>Nu(e,n,{allowDisabling:true}),type:({legendType:e,scaleType:n,channel:t})=>{if(Qe(t)&&bo(n)){if(e==="gradient"){return undefined}}else if(e==="symbol"){return undefined}return e},values:({fieldOrDatumDef:e,legend:n})=>gy(n,e)};function gy(e,n){const t=e.values;if((0,r.cy)(t)){return Zu(n,t)}else if(Tt(t)){return t}return undefined}function my(e,n,t,i){var r;if(n!=="shape"){const e=(r=ly(t))!==null&&r!==void 0?r:i;if(e){return e}}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}function hy(e){if(e==="gradient"){return 20}return undefined}function by(e){const{legend:n}=e;return X(n.type,yy(e))}function yy({channel:e,timeUnit:n,scaleType:t}){if(Qe(e)){if(F(["quarter","month","day"],n)){return"symbol"}if(bo(t)){return"gradient"}}return"symbol"}function vy({legendConfig:e,legendType:n,orient:t,legend:i}){var r,s;return(s=(r=i.direction)!==null&&r!==void 0?r:e[n?"gradientDirection":"symbolDirection"])!==null&&s!==void 0?s:Oy(t,n)}function Oy(e,n){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case undefined:return undefined;default:return n==="gradient"?"horizontal":undefined}}function xy({legendConfig:e,model:n,direction:t,orient:i,scaleType:r}){const{gradientHorizontalMaxLength:s,gradientHorizontalMinLength:o,gradientVerticalMaxLength:a,gradientVerticalMinLength:u}=e;if(bo(r)){if(t==="horizontal"){if(i==="top"||i==="bottom"){return wy(n,"width",o,s)}else{return o}}else{return wy(n,"height",u,a)}}return undefined}function wy(e,n,t,i){const r=e.getSizeSignalRef(n).signal;return{signal:`clamp(${r}, ${t}, ${i})`}}function jy(e){if(F(["quantile","threshold","log","symlog"],e)){return"greedy"}return undefined}function Fy(e){const n=ZO(e)?$y(e):Cy(e);e.component.legends=n;return n}function $y(e){const{encoding:n}=e;const t={};for(const i of[je,...hl]){const r=Ru(n[i]);if(!r||!e.getScaleComponent(i)){continue}if(i===De&&fu(r)&&r.type===Xs){continue}t[i]=ky(e,i)}return t}function Dy(e,n){const t=e.scaleName(n);if(e.mark==="trail"){if(n==="color"){return{stroke:t}}else if(n==="size"){return{strokeWidth:t}}}if(n==="color"){return e.markDef.filled?{fill:t}:{stroke:t}}return{[n]:t}}function Ay(e,n,t,i){switch(n){case"disable":return t!==undefined;case"values":return!!(t===null||t===void 0?void 0:t.values);case"title":if(n==="title"&&e===(i===null||i===void 0?void 0:i.title)){return true}}return e===(t||{})[n]}function ky(e,n){var t,i,r;let s=e.legend(n);const{markDef:o,encoding:a,config:u}=e;const c=u.legend;const l=new iy({},Dy(e,n));yg(e,n,l);const f=s!==undefined?!s:c.disable;l.set("disable",f,s!==undefined);if(f){return l}s=s||{};const d=e.getScaleComponent(n).get("type");const p=Ru(a[n]);const g=fu(p)?(t=$s(p.timeUnit))===null||t===void 0?void 0:t.unit:undefined;const m=s.orient||u.legend.orient||"right";const h=by({legend:s,channel:n,timeUnit:g,scaleType:d});const b=vy({legend:s,legendType:h,orient:m,legendConfig:c});const y={legend:s,channel:n,model:e,markDef:o,encoding:a,fieldOrDatumDef:p,legendConfig:c,config:u,scaleType:d,orient:m,legendType:h,direction:b};for(const j of ty){if(h==="gradient"&&j.startsWith("symbol")||h==="symbol"&&j.startsWith("gradient")){continue}const t=j in py?py[j](y):s[j];if(t!==undefined){const i=Ay(t,j,s,e.fieldDef(n));if(i||u.legend[j]===undefined){l.set(j,t,i)}}}const v=(i=s===null||s===void 0?void 0:s.encoding)!==null&&i!==void 0?i:{};const O=l.get("selections");const x={};const w={fieldOrDatumDef:p,model:e,channel:n,legendCmpt:l,legendType:h};for(const j of["labels","legend","title","symbols","gradient","entries"]){const n=Jb((r=v[j])!==null&&r!==void 0?r:{},e);const t=j in ry?ry[j](n,w):n;if(t!==undefined&&!z(t)){x[j]=Object.assign(Object.assign(Object.assign({},(O===null||O===void 0?void 0:O.length)&&fu(p)?{name:`${q(p.field)}_legend_${j}`}:{}),(O===null||O===void 0?void 0:O.length)?{interactive:!!O}:{}),{update:t})}}if(!z(x)){l.set("encode",x,!!(s===null||s===void 0?void 0:s.encoding))}return l}function Cy(e){const{legends:n,resolve:t}=e.component;for(const i of e.children){Fy(i);for(const r of N(i.component.legends)){t.legend[r]=ey(e.component.resolve,r);if(t.legend[r]==="shared"){n[r]=Sy(n[r],i.component.legends[r]);if(!n[r]){t.legend[r]="independent";delete n[r]}}}}for(const i of N(n)){for(const n of e.children){if(!n.component.legends[i]){continue}if(t.legend[i]==="shared"){delete n.component.legends[i]}}}return n}function Sy(e,n){var t,i,r,s;if(!e){return n.clone()}const o=e.getWithExplicit("orient");const a=n.getWithExplicit("orient");if(o.explicit&&a.explicit&&o.value!==a.value){return undefined}let u=false;for(const c of ty){const t=Pd(e.getWithExplicit(c),n.getWithExplicit(c),c,"legend",((e,n)=>{switch(c){case"symbolType":return Ey(e,n);case"title":return li(e,n);case"type":u=true;return Sd("symbol")}return Bd(e,n,c,"legend")}));e.setWithExplicit(c,t)}if(u){if((i=(t=e.implicit)===null||t===void 0?void 0:t.encode)===null||i===void 0?void 0:i.gradient){R(e.implicit,["encode","gradient"])}if((s=(r=e.explicit)===null||r===void 0?void 0:r.encode)===null||s===void 0?void 0:s.gradient){R(e.explicit,["encode","gradient"])}}return e}function Ey(e,n){if(n.value==="circle"){return n}return e}var By=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);rzy(n,e.config))).filter((e=>e!==undefined));return i}function zy(e,n){var t,i,r;const s=e.combine(),{disable:o,labelExpr:a,selections:u}=s,c=By(s,["disable","labelExpr","selections"]);if(o){return undefined}if(n.aria===false&&c.aria==undefined){c.aria=false}if((t=c.encode)===null||t===void 0?void 0:t.symbols){const e=c.encode.symbols.update;if(e.fill&&e.fill["value"]!=="transparent"&&!e.stroke&&!c.stroke){e.stroke={value:"transparent"}}for(const n of hl){if(c[n]){delete e[n]}}}if(!c.title){delete c.title}if(a!==undefined){let e=a;if(((r=(i=c.encode)===null||i===void 0?void 0:i.labels)===null||r===void 0?void 0:r.update)&&Tt(c.encode.labels.update.text)){e=K(a,"datum.label",c.encode.labels.update.text.signal)}Py(c,"labels","text",{signal:e})}return c}function Ny(e){if(tx(e)||nx(e)){return Ty(e)}else{return My(e)}}function Ty(e){return e.children.reduce(((e,n)=>e.concat(n.assembleProjections())),My(e))}function My(e){const n=e.component.projection;if(!n||n.merged){return[]}const t=n.combine();const{name:i}=t;if(!n.data){return[Object.assign(Object.assign({name:i},{translate:{signal:"[width / 2, height / 2]"}}),t)]}else{const r={signal:`[${n.size.map((e=>e.signal)).join(", ")}]`};const s=n.data.reduce(((n,t)=>{const i=Tt(t)?t.signal:`data('${e.lookupDataSource(t)}')`;if(!F(n,i)){n.push(i)}return n}),[]);if(s.length<=0){throw new Error("Projection's fit didn't find any data sources")}return[Object.assign({name:i,size:r,fit:{signal:s.length>1?`[${s.join(", ")}]`:s[0]}},t)]}}const Ly=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class qy extends kd{constructor(e,n,t,i){super(Object.assign({},n),{name:e});this.specifiedProjection=n;this.size=t;this.data=i;this.merged=false}get isFit(){return!!this.data}}function Uy(e){e.component.projection=ZO(e)?Ry(e):Hy(e)}function Ry(e){var n;if(e.hasProjection){const t=Pt(e.specifiedProjection);const i=!(t&&(t.scale!=null||t.translate!=null));const r=i?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:undefined;const s=i?Iy(e):undefined;const o=new qy(e.projectionName(true),Object.assign(Object.assign({},(n=Pt(e.config.projection))!==null&&n!==void 0?n:{}),t!==null&&t!==void 0?t:{}),r,s);if(!o.get("type")){o.set("type","equalEarth",false)}return o}return undefined}function Iy(e){const n=[];const{encoding:t}=e;for(const i of[[Oe,ve],[we,xe]]){if(Ru(t[i[0]])||Ru(t[i[1]])){n.push({signal:e.getName(`geojson_${n.length}`)})}}if(e.channelHasField(De)&&e.typedFieldDef(De).type===Xs){n.push({signal:e.getName(`geojson_${n.length}`)})}if(n.length===0){n.push(e.requestDataName(Rd.Main))}return n}function Wy(e,n){const t=D(Ly,(t=>{if(!(0,r.mQ)(e.explicit,t)&&!(0,r.mQ)(n.explicit,t)){return true}if((0,r.mQ)(e.explicit,t)&&(0,r.mQ)(n.explicit,t)&&h(e.get(t),n.get(t))){return true}return false}));const i=h(e.size,n.size);if(i){if(t){return e}else if(h(e.explicit,{})){return n}else if(h(n.explicit,{})){return e}}return null}function Hy(e){if(e.children.length===0){return undefined}let n;for(const i of e.children){Uy(i)}const t=D(e.children,(e=>{const t=e.component.projection;if(!t){return true}else if(!n){n=t;return true}else{const e=Wy(n,t);if(e){n=e}return!!e}}));if(n&&t){const t=e.projectionName(true);const i=new qy(t,n.specifiedProjection,n.size,b(n.data));for(const n of e.children){const e=n.component.projection;if(e){if(e.isFit){i.data.push(...n.component.projection.data)}n.renameProjection(e.get("name"),t);e.merged=true}}return i}return undefined}var Gy=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{if(yu(t)&&At(t.bin)){const{key:r,binComponent:s}=Jy(t,t.bin,n);e[r]=Object.assign(Object.assign(Object.assign({},s),e[r]),Yy(n,t,i,n.config))}return e}),{});if(z(t)){return null}return new Zy(e,t)}static makeFromTransform(e,n,t){const{key:i,binComponent:r}=Jy(n,n.bin,t);return new Zy(e,{[i]:r})}merge(e,n){for(const t of N(e.bins)){if(t in this.bins){n(e.bins[t].signal,this.bins[t].signal);this.bins[t].as=C([...this.bins[t].as,...e.bins[t].as],w)}else{this.bins[t]=e.bins[t]}}for(const t of e.children){e.removeChild(t);t.parent=this}e.remove()}producedFields(){return new Set(T(this.bins).map((e=>e.as)).flat(2))}dependentFields(){return new Set(T(this.bins).map((e=>e.field)))}hash(){return`Bin ${w(this.bins)}`}assemble(){return T(this.bins).flatMap((e=>{const n=[];const[t,...i]=e.as;const r=e.bin,{extent:s}=r,o=Gy(r,["extent"]);const a=Object.assign(Object.assign(Object.assign({type:"bin",field:Y(e.field),as:t,signal:e.signal},!St(s)?{extent:s}:{extent:null}),e.span?{span:{signal:`span(${e.span})`}}:{}),o);if(!s&&e.extentSignal){n.push({type:"extent",field:Y(e.field),signal:e.extentSignal});a.extent={signal:e.extentSignal}}n.push(a);for(const u of i){for(let e=0;e<2;e++){n.push({type:"formula",expr:Du({field:t[e]},{expr:"datum"}),as:u[e]})}}if(e.formula){n.push({type:"formula",expr:e.formula,as:e.formulaAs})}return n}))}}function ev(e,n,t,i){var r;const s=ZO(i)?i.encoding[yn(n)]:undefined;if(yu(t)&&ZO(i)&&ou(t,s,i.markDef,i.config)){e.add(Du(t,{}));e.add(Du(t,{suffix:"end"}));if(t.bin&&ec(t,n)){e.add(Du(t,{binSuffix:"range"}))}}else if(Ye(n)){const t=Ge(n);e.add(i.getName(t))}else{e.add(Du(t))}if(Ou(t)&&jo((r=t.scale)===null||r===void 0?void 0:r.range)){e.add(t.scale.range.field)}return e}function nv(e,n){var t;for(const i of N(n)){const r=n[i];for(const n of N(r)){if(i in e){e[i][n]=new Set([...(t=e[i][n])!==null&&t!==void 0?t:[],...r[n]])}else{e[i]={[n]:r[n]}}}}}class tv extends ep{clone(){return new tv(null,new Set(this.dimensions),b(this.measures))}constructor(e,n,t){super(e);this.dimensions=n;this.measures=t}get groupBy(){return this.dimensions}static makeFromEncoding(e,n){let t=false;n.forEachFieldDef((e=>{if(e.aggregate){t=true}}));const i={};const r=new Set;if(!t){return null}n.forEachFieldDef(((e,t)=>{var s,o,a,u;const{aggregate:c,field:l}=e;if(c){if(c==="count"){(s=i["*"])!==null&&s!==void 0?s:i["*"]={};i["*"]["count"]=new Set([Du(e,{forAs:true})])}else{if(yt(c)||vt(c)){const e=yt(c)?"argmin":"argmax";const n=c[e];(o=i[n])!==null&&o!==void 0?o:i[n]={};i[n][e]=new Set([Du({op:e,field:n},{forAs:true})])}else{(a=i[l])!==null&&a!==void 0?a:i[l]={};i[l][c]=new Set([Du(e,{forAs:true})])}if(ct(t)&&n.scaleDomain(t)==="unaggregated"){(u=i[l])!==null&&u!==void 0?u:i[l]={};i[l]["min"]=new Set([Du({field:l,aggregate:"min"},{forAs:true})]);i[l]["max"]=new Set([Du({field:l,aggregate:"max"},{forAs:true})])}}}else{ev(r,t,e,n)}}));if(r.size+N(i).length===0){return null}return new tv(e,r,i)}static makeFromTransform(e,n){var t,i,r;const s=new Set;const o={};for(const a of n.aggregate){const{op:e,field:n,as:r}=a;if(e){if(e==="count"){(t=o["*"])!==null&&t!==void 0?t:o["*"]={};o["*"]["count"]=new Set([r?r:Du(a,{forAs:true})])}else{(i=o[n])!==null&&i!==void 0?i:o[n]={};o[n][e]=new Set([r?r:Du(a,{forAs:true})])}}}for(const a of(r=n.groupby)!==null&&r!==void 0?r:[]){s.add(a)}if(s.size+N(o).length===0){return null}return new tv(e,s,o)}merge(e){if(E(this.dimensions,e.dimensions)){nv(this.measures,e.measures);return true}Xr("different dimensions, cannot merge");return false}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...N(this.measures)])}producedFields(){const e=new Set;for(const n of N(this.measures)){for(const t of N(this.measures[n])){const i=this.measures[n][t];if(i.size===0){e.add(`${t}_${n}`)}else{i.forEach(e.add,e)}}}return e}hash(){return`Aggregate ${w({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[];const n=[];const t=[];for(const r of N(this.measures)){for(const i of N(this.measures[r])){for(const s of this.measures[r][i]){t.push(s);e.push(i);n.push(r==="*"?null:Y(r))}}}const i={type:"aggregate",groupby:[...this.dimensions].map(Y),ops:e,fields:n,as:t};return i}}class iv extends ep{constructor(e,n,t,i){super(e);this.model=n;this.name=t;this.data=i;for(const s of Je){const e=n.facet[s];if(e){const{bin:t,sort:i}=e;this[s]=Object.assign({name:n.getName(`${s}_domain`),fields:[Du(e),...At(t)?[Du(e,{binSuffix:"end"})]:[]]},Ka(i)?{sortField:i}:(0,r.cy)(i)?{sortIndexField:Sb(e,s)}:{})}}this.childModel=n.child}hash(){let e=`Facet`;for(const n of Je){if(this[n]){e+=` ${n.charAt(0)}:${w(this[n])}`}}return e}get fields(){var e;const n=[];for(const t of Je){if((e=this[t])===null||e===void 0?void 0:e.fields){n.push(...this[t].fields)}}return n}dependentFields(){const e=new Set(this.fields);for(const n of Je){if(this[n]){if(this[n].sortField){e.add(this[n].sortField.field)}if(this[n].sortIndexField){e.add(this[n].sortIndexField)}}}return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const n of Un){const t=this.childModel.component.scales[n];if(t&&!t.merged){const i=t.get("type");const r=t.get("range");if(mo(i)&&Mt(r)){const t=cO(this.childModel,n);const i=uO(t);if(i){e[n]=i}else{Vr(hi(n))}}}}return e}assembleRowColumnHeaderData(e,n,t){const i={row:"y",column:"x",facet:undefined}[e];const r=[];const s=[];const o=[];if(i&&t&&t[i]){if(n){r.push(`distinct_${t[i]}`);s.push("max")}else{r.push(t[i]);s.push("distinct")}o.push(`distinct_${t[i]}`)}const{sortField:a,sortIndexField:u}=this[e];if(a){const{op:e=Wa,field:n}=a;r.push(n);s.push(e);o.push(Du(a,{forAs:true}))}else if(u){r.push(u);s.push("max");o.push(u)}return{name:this[e].name,source:n!==null&&n!==void 0?n:this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},r.length?{fields:r,ops:s,as:o}:{})]}}assembleFacetHeaderData(e){var n,t;const{columns:i}=this.model.layout;const{layoutHeaders:r}=this.model.component;const s=[];const o={};for(const c of _b){for(const e of zb){const i=(n=r[c]&&r[c][e])!==null&&n!==void 0?n:[];for(const e of i){if(((t=e.axes)===null||t===void 0?void 0:t.length)>0){o[c]=true;break}}}if(o[c]){const e=`length(data("${this.facet.name}"))`;const n=c==="row"?i?{signal:`ceil(${e} / ${i})`}:1:i?{signal:`min(${e}, ${i})`}:{signal:e};s.push({name:`${this.facet.name}_${c}`,transform:[{type:"sequence",start:0,stop:n}]})}}const{row:a,column:u}=o;if(a||u){s.unshift(this.assembleRowColumnHeaderData("facet",null,e))}return s}assemble(){var e,n;const t=[];let i=null;const r=this.getChildIndependentFieldsWithStep();const{column:s,row:o,facet:a}=this;if(s&&o&&(r.x||r.y)){i=`cross_${this.column.name}_${this.row.name}`;const s=[].concat((e=r.x)!==null&&e!==void 0?e:[],(n=r.y)!==null&&n!==void 0?n:[]);const o=s.map((()=>"distinct"));t.push({name:i,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:s,ops:o}]})}for(const u of[ae,oe]){if(this[u]){t.push(this.assembleRowColumnHeaderData(u,i,r))}}if(a){const e=this.assembleFacetHeaderData(r);if(e){t.push(...e)}}return t}}function rv(e){if(e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')){return e.slice(1,-1)}return e}function sv(e,n){const t=W(e);if(n==="number"){return`toNumber(${t})`}else if(n==="boolean"){return`toBoolean(${t})`}else if(n==="string"){return`toString(${t})`}else if(n==="date"){return`toDate(${t})`}else if(n==="flatten"){return t}else if(n.startsWith("date:")){const e=rv(n.slice(5,n.length));return`timeParse(${t},'${e}')`}else if(n.startsWith("utc:")){const e=rv(n.slice(4,n.length));return`utcParse(${t},'${e}')`}else{Vr(Ei(n));return null}}function ov(e){const n={};g(e.filter,(e=>{var t;if(Ns(e)){let i=null;if(ks(e)){i=Vt(e.equal)}else if(Ss(e)){i=Vt(e.lte)}else if(Cs(e)){i=Vt(e.lt)}else if(Es(e)){i=Vt(e.gt)}else if(Bs(e)){i=Vt(e.gte)}else if(Ps(e)){i=e.range[0]}else if(_s(e)){i=((t=e.oneOf)!==null&&t!==void 0?t:e["in"])[0]}if(i){if(Jr(i)){n[e.field]="date"}else if((0,r.Et)(i)){n[e.field]="number"}else if((0,r.Kg)(i)){n[e.field]="string"}}if(e.timeUnit){n[e.field]="date"}}}));return n}function av(e){const n={};function t(e){if(Qu(e)){n[e.field]="date"}else if(e.type==="quantitative"&&jt(e.aggregate)){n[e.field]="number"}else if(Q(e.field)>1){if(!(e.field in n)){n[e.field]="flatten"}}else if(Ou(e)&&Ka(e.sort)&&Q(e.sort.field)>1){if(!(e.sort.field in n)){n[e.sort.field]="flatten"}}}if(ZO(e)||ex(e)){e.forEachFieldDef(((n,i)=>{if(yu(n)){t(n)}else{const r=hn(i);const s=e.fieldDef(r);t(Object.assign(Object.assign({},n),{type:s.type}))}}))}if(ZO(e)){const{mark:t,markDef:i,encoding:r}=e;if(ea(t)&&!e.encoding.order){const e=i.orient==="horizontal"?"y":"x";const t=r[e];if(fu(t)&&t.type==="quantitative"&&!(t.field in n)){n[t.field]="number"}}}return n}function uv(e){const n={};if(ZO(e)&&e.component.selection){for(const t of N(e.component.selection)){const i=e.component.selection[t];for(const e of i.project.items){if(!e.channel&&Q(e.field)>1){n[e.field]="flatten"}}}}return n}class cv extends ep{clone(){return new cv(null,b(this._parse))}constructor(e,n){super(e);this._parse=n}hash(){return`Parse ${w(this._parse)}`}static makeExplicit(e,n,t){var i;let r={};const s=n.data;if(!Md(s)&&((i=s===null||s===void 0?void 0:s.format)===null||i===void 0?void 0:i.parse)){r=s.format.parse}return this.makeWithAncestors(e,r,{},t)}static makeWithAncestors(e,n,t,i){for(const o of N(t)){const e=i.getWithExplicit(o);if(e.value!==undefined){if(e.explicit||e.value===t[o]||e.value==="derived"||t[o]==="flatten"){delete t[o]}else{Vr(Bi(o,t[o],e.value))}}}for(const o of N(n)){const e=i.get(o);if(e!==undefined){if(e===n[o]){delete n[o]}else{Vr(Bi(o,n[o],e))}}}const r=new kd(n,t);i.copyAll(r);const s={};for(const o of N(r.combine())){const e=r.get(o);if(e!==null){s[o]=e}}if(N(s).length===0||i.parseNothing){return null}return new cv(e,s)}get parse(){return this._parse}merge(e){this._parse=Object.assign(Object.assign({},this._parse),e.parse);e.remove()}assembleFormatParse(){const e={};for(const n of N(this._parse)){const t=this._parse[n];if(Q(n)===1){e[n]=t}}return e}producedFields(){return new Set(N(this._parse))}dependentFields(){return new Set(N(this._parse))}assembleTransforms(e=false){return N(this._parse).filter((n=>e?Q(n)>1:true)).map((e=>{const n=sv(e,this._parse[e]);if(!n){return null}const t={type:"formula",expr:n,as:V(e)};return t})).filter((e=>e!==null))}}class lv extends ep{clone(){return new lv(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([Ol])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:Ol}}}class fv extends ep{clone(){return new fv(null,this.params)}constructor(e,n){super(e);this.params=n}dependentFields(){return new Set}producedFields(){return undefined}hash(){return`Graticule ${w(this.params)}`}assemble(){return Object.assign({type:"graticule"},this.params===true?{}:this.params)}}class dv extends ep{clone(){return new dv(null,this.params)}constructor(e,n){super(e);this.params=n}dependentFields(){return new Set}producedFields(){var e;return new Set([(e=this.params.as)!==null&&e!==void 0?e:"data"])}hash(){return`Hash ${w(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class pv extends ep{constructor(e){super(null);e!==null&&e!==void 0?e:e={name:"source"};let n;if(!Md(e)){n=e.format?Object.assign({},O(e.format,["parse"])):{}}if(Nd(e)){this._data={values:e.values}}else if(zd(e)){this._data={url:e.url};if(!n.type){let t=/(?:\.([^.]+))?$/.exec(e.url)[1];if(!F(["json","csv","tsv","dsv","topojson"],t)){t="json"}n.type=t}}else if(qd(e)){this._data={values:[{type:"Sphere"}]}}else if(Td(e)||Md(e)){this._data={}}this._generator=Md(e);if(e.name){this._name=e.name}if(n&&!z(n)){this._data.format=n}}dependentFields(){return new Set}producedFields(){return undefined}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}}var gv=undefined&&undefined.__classPrivateFieldSet||function(e,n,t,i,r){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof n==="function"?e!==n||!r:!n.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?r.call(e,t):r?r.value=t:n.set(e,t),t};var mv=undefined&&undefined.__classPrivateFieldGet||function(e,n,t,i){if(t==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof n==="function"?e!==n||!i:!n.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?i:t==="a"?i.call(e):i?i.value:n.get(e)};var hv;function bv(e){return e instanceof pv||e instanceof fv||e instanceof dv}class yv{constructor(){hv.set(this,void 0);gv(this,hv,false,"f")}setModified(){gv(this,hv,true,"f")}get modifiedFlag(){return mv(this,hv,"f")}}hv=new WeakMap;class vv extends yv{getNodeDepths(e,n,t){t.set(e,n);for(const i of e.children){this.getNodeDepths(i,n+1,t)}return t}optimize(e){const n=this.getNodeDepths(e,0,new Map);const t=[...n.entries()].sort(((e,n)=>n[1]-e[1]));for(const i of t){this.run(i[0])}return this.modifiedFlag}}class Ov extends yv{optimize(e){this.run(e);for(const n of e.children){this.optimize(n)}return this.modifiedFlag}}class xv extends Ov{mergeNodes(e,n){const t=n.shift();for(const i of n){e.removeChild(i);i.parent=t;i.remove()}}run(e){const n=e.children.map((e=>e.hash()));const t={};for(let i=0;i1){this.setModified();this.mergeNodes(e,t[i])}}}}class wv extends Ov{constructor(e){super();this.requiresSelectionId=e&&Tg(e)}run(e){if(e instanceof lv){if(!(this.requiresSelectionId&&(bv(e.parent)||e.parent instanceof tv||e.parent instanceof cv))){this.setModified();e.remove()}}}}class jv extends yv{optimize(e){this.run(e,new Set);return this.modifiedFlag}run(e,n){let t=new Set;if(e instanceof ip){t=e.producedFields();if(B(t,n)){this.setModified();e.removeFormulas(n);if(e.producedFields.length===0){e.remove()}}}for(const i of e.children){this.run(i,new Set([...n,...t]))}}}class Fv extends Ov{constructor(){super()}run(e){if(e instanceof np&&!e.isRequired()){this.setModified();e.remove()}}}class $v extends vv{run(e){if(bv(e)){return}if(e.numChildren()>1){return}for(const n of e.children){if(n instanceof cv){if(e instanceof cv){this.setModified();e.merge(n)}else{if(_(e.producedFields(),n.dependentFields())){continue}this.setModified();n.swapWithParent()}}}return}}class Dv extends vv{run(e){const n=[...e.children];const t=e.children.filter((e=>e instanceof cv));if(e.numChildren()>1&&t.length>=1){const i={};const r=new Set;for(const e of t){const n=e.parse;for(const e of N(n)){if(!(e in i)){i[e]=n[e]}else if(i[e]!==n[e]){r.add(e)}}}for(const e of r){delete i[e]}if(!z(i)){this.setModified();const t=new cv(e,i);for(const r of n){if(r instanceof cv){for(const e of N(i)){delete r.parse[e]}}e.removeChild(r);r.parent=t;if(r instanceof cv&&N(r.parse).length===0){r.remove()}}}}}}class Av extends vv{run(e){if(e instanceof np||e.numChildren()>0||e instanceof iv){}else if(e instanceof pv){}else{this.setModified();e.remove()}}}class kv extends vv{run(e){const n=e.children.filter((e=>e instanceof ip));const t=n.pop();for(const i of n){this.setModified();t.merge(i)}}}class Cv extends vv{run(e){const n=e.children.filter((e=>e instanceof tv));const t={};for(const i of n){const e=w(i.groupBy);if(!(e in t)){t[e]=[]}t[e].push(i)}for(const i of N(t)){const n=t[i];if(n.length>1){const t=n.pop();for(const i of n){if(t.merge(i)){e.removeChild(i);i.parent=t;i.remove();this.setModified()}}}}}}class Sv extends vv{constructor(e){super();this.model=e}run(e){const n=!(bv(e)||e instanceof Zh||e instanceof cv||e instanceof lv);const t=[];const i=[];for(const r of e.children){if(r instanceof Zy){if(n&&!_(e.producedFields(),r.dependentFields())){t.push(r)}else{i.push(r)}}}if(t.length>0){const n=t.pop();for(const e of t){n.merge(e,this.model.renameSignal.bind(this.model))}this.setModified();if(e instanceof Zy){e.merge(n,this.model.renameSignal.bind(this.model))}else{n.swapWithParent()}}if(i.length>1){const e=i.pop();for(const n of i){e.merge(n,this.model.renameSignal.bind(this.model))}this.setModified()}}}class Ev extends vv{run(e){const n=[...e.children];const t=$(n,(e=>e instanceof np));if(!t||e.numChildren()<=1){return}const i=[];let r;for(const s of n){if(s instanceof np){let n=s;while(n.numChildren()===1){const[e]=n.children;if(e instanceof np){n=e}else{break}}i.push(...n.children);if(r){e.removeChild(s);s.parent=r.parent;r.parent.removeChild(r);r.parent=n;this.setModified()}else{r=n}}else{i.push(s)}}if(i.length){this.setModified();for(const e of i){e.parent.removeChild(e);e.parent=r}}}}class Bv extends ep{clone(){return new Bv(null,b(this.transform))}constructor(e,n){super(e);this.transform=n}addDimensions(e){this.transform.groupby=C(this.transform.groupby.concat(e),(e=>e))}dependentFields(){const e=new Set;if(this.transform.groupby){this.transform.groupby.forEach(e.add,e)}this.transform.joinaggregate.map((e=>e.field)).filter((e=>e!==undefined)).forEach(e.add,e);return e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:Du(e)}hash(){return`JoinAggregateTransform ${w(this.transform)}`}assemble(){const e=[];const n=[];const t=[];for(const r of this.transform.joinaggregate){n.push(r.op);t.push(this.getDefaultName(r));e.push(r.field===undefined?null:r.field)}const i=this.transform.groupby;return Object.assign({type:"joinaggregate",as:t,ops:n,fields:e},i!==undefined?{groupby:i}:{})}}function Pv(e){return e.stack.stackBy.reduce(((e,n)=>{const t=n.fieldDef;const i=Du(t);if(i){e.push(i)}return e}),[])}function _v(e){return(0,r.cy)(e)&&e.every((e=>(0,r.Kg)(e)))&&e.length>1}class zv extends ep{clone(){return new zv(null,b(this._stack))}constructor(e,n){super(e);this._stack=n}static makeFromTransform(e,n){const{stack:t,groupby:i,as:s,offset:o="zero"}=n;const a=[];const u=[];if(n.sort!==undefined){for(const e of n.sort){a.push(e.field);u.push(X(e.order,"ascending"))}}const c={field:a,order:u};let l;if(_v(s)){l=s}else if((0,r.Kg)(s)){l=[s,`${s}_end`]}else{l=[`${n.stack}_start`,`${n.stack}_end`]}return new zv(e,{dimensionFieldDefs:[],stackField:t,groupby:i,offset:o,sort:c,facetby:[],as:l})}static makeFromEncoding(e,n){const t=n.stack;const{encoding:i}=n;if(!t){return null}const{groupbyChannels:s,fieldChannel:o,offset:a,impute:u}=t;const c=s.map((e=>{const n=i[e];return Uu(n)})).filter((e=>!!e));const l=Pv(n);const f=n.encoding.order;let d;if((0,r.cy)(f)||fu(f)){d=ai(f)}else{d=l.reduce(((e,n)=>{e.field.push(n);e.order.push(o==="y"?"descending":"ascending");return e}),{field:[],order:[]})}return new zv(e,{dimensionFieldDefs:c,stackField:n.vgField(o),facetby:[],stackby:l,sort:d,offset:a,impute:u,as:[n.vgField(o,{suffix:"start",forAs:true}),n.vgField(o,{suffix:"end",forAs:true})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;e.add(this._stack.stackField);this.getGroupbyFields().forEach(e.add,e);this._stack.facetby.forEach(e.add,e);this._stack.sort.field.forEach(e.add,e);return e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${w(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:n,groupby:t}=this._stack;if(e.length>0){return e.map((e=>{if(e.bin){if(n){return[Du(e,{binSuffix:"mid"})]}return[Du(e,{}),Du(e,{binSuffix:"end"})]}return[Du(e)]})).flat()}return t!==null&&t!==void 0?t:[]}assemble(){const e=[];const{facetby:n,dimensionFieldDefs:t,stackField:i,stackby:r,sort:s,offset:o,impute:a,as:u}=this._stack;if(a){for(const s of t){const{bandPosition:t=.5,bin:o}=s;if(o){const n=Du(s,{expr:"datum"});const i=Du(s,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${t}*${n}+${1-t}*${i}`,as:Du(s,{binSuffix:"mid",forAs:true})})}e.push({type:"impute",field:i,groupby:[...r,...n],key:Du(s,{binSuffix:"mid"}),method:"value",value:0})}}e.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:i,sort:s,as:u,offset:o});return e}}class Nv extends ep{clone(){return new Nv(null,b(this.transform))}constructor(e,n){super(e);this.transform=n}addDimensions(e){this.transform.groupby=C(this.transform.groupby.concat(e),(e=>e))}dependentFields(){var e,n;const t=new Set;((e=this.transform.groupby)!==null&&e!==void 0?e:[]).forEach(t.add,t);((n=this.transform.sort)!==null&&n!==void 0?n:[]).forEach((e=>t.add(e.field)));this.transform.window.map((e=>e.field)).filter((e=>e!==undefined)).forEach(t.add,t);return t}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){var n;return(n=e.as)!==null&&n!==void 0?n:Du(e)}hash(){return`WindowTransform ${w(this.transform)}`}assemble(){var e;const n=[];const t=[];const i=[];const r=[];for(const f of this.transform.window){t.push(f.op);i.push(this.getDefaultName(f));r.push(f.param===undefined?null:f.param);n.push(f.field===undefined?null:f.field)}const s=this.transform.frame;const o=this.transform.groupby;if(s&&s[0]===null&&s[1]===null&&t.every((e=>Ot(e)))){return Object.assign({type:"joinaggregate",as:i,ops:t,fields:n},o!==undefined?{groupby:o}:{})}const a=[];const u=[];if(this.transform.sort!==undefined){for(const n of this.transform.sort){a.push(n.field);u.push((e=n.order)!==null&&e!==void 0?e:"ascending")}}const c={field:a,order:u};const l=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:r,as:i,ops:t,fields:n,sort:c},l!==undefined?{ignorePeers:l}:{}),o!==undefined?{groupby:o}:{}),s!==undefined?{frame:s}:{})}}function Tv(e){function n(t){if(!(t instanceof iv)){const i=t.clone();if(i instanceof np){const n=qv+i.getSource();i.setSource(n);e.model.component.data.outputNodes[n]=i}else if(i instanceof tv||i instanceof zv||i instanceof Nv||i instanceof Bv){i.addDimensions(e.fields)}for(const e of t.children.flatMap(n)){e.parent=i}return[i]}return t.children.flatMap(n)}return n}function Mv(e){if(e instanceof iv){if(e.numChildren()===1&&!(e.children[0]instanceof np)){const n=e.children[0];if(n instanceof tv||n instanceof zv||n instanceof Nv||n instanceof Bv){n.addDimensions(e.fields)}n.swapWithParent();Mv(e)}else{const n=e.model.component.data.main;Lv(n);const t=Tv(e);const i=e.children.map(t).flat();for(const e of i){e.parent=n}}}else{e.children.map(Mv)}}function Lv(e){if(e instanceof np&&e.type===Rd.Main){if(e.numChildren()===1){const n=e.children[0];if(!(n instanceof iv)){n.swapWithParent();Lv(e)}}}}const qv="scale_";const Uv=5;function Rv(e){for(const n of e){for(const e of n.children){if(e.parent!==n){return false}}if(!Rv(n.children)){return false}}return true}function Iv(e,n){let t=false;for(const i of n){t=e.optimize(i)||t}return t}function Wv(e,n,t){let i=e.sources;let r=false;r=Iv(new Fv,i)||r;r=Iv(new wv(n),i)||r;i=i.filter((e=>e.numChildren()>0));r=Iv(new Av,i)||r;i=i.filter((e=>e.numChildren()>0));if(!t){r=Iv(new $v,i)||r;r=Iv(new Sv(n),i)||r;r=Iv(new jv,i)||r;r=Iv(new Dv,i)||r;r=Iv(new Cv,i)||r;r=Iv(new kv,i)||r;r=Iv(new xv,i)||r;r=Iv(new Ev,i)||r}e.sources=i;return r}function Hv(e,n){Rv(e.sources);let t=0;let i=0;for(let r=0;re(n)))}}var Yv=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{const i=Ju(e,{timeUnit:t,type:n});return{signal:`{data: ${i}}`}}))}function eO(e,n,t){var i;const r=(i=$s(t))===null||i===void 0?void 0:i.unit;if(n==="temporal"||r){return Zv(e,n,r)}return[e]}function nO(e,n,t,i){const{encoding:s}=t;const o=Ru(s[i]);const{type:a}=o;const u=o["timeUnit"];if(wo(n)){const r=nO(e,undefined,t,i);const s=eO(n.unionWith,a,u);return Cd([...s,...r.value])}else if(Tt(n)){return Cd([n])}else if(n&&n!=="unaggregated"&&!xo(n)){return Cd(eO(n,a,u))}const c=t.stack;if(c&&i===c.fieldChannel){if(c.offset==="normalize"){return Sd([[0,1]])}const e=t.requestDataName(Rd.Main);return Sd([{data:e,field:t.vgField(i,{suffix:"start"})},{data:e,field:t.vgField(i,{suffix:"end"})}])}const l=ct(i)&&fu(o)?rO(t,i,e):undefined;if(pu(o)){const e=eO([o.datum],a,u);return Sd(e)}const f=o;if(n==="unaggregated"){const e=t.requestDataName(Rd.Main);const{field:n}=o;return Sd([{data:e,field:Du({field:n,aggregate:"min"})},{data:e,field:Du({field:n,aggregate:"max"})}])}else if(At(f.bin)){if(mo(e)){if(e==="bin-ordinal"){return Sd([])}return Sd([{data:L(l)?t.requestDataName(Rd.Main):t.requestDataName(Rd.Raw),field:t.vgField(i,ec(f,i)?{binSuffix:"range"}:{}),sort:l===true||!(0,r.Gv)(l)?{field:t.vgField(i,{}),op:"min"}:l}])}else{const{bin:e}=f;if(At(e)){const n=Qy(t,f.field,e);return Sd([new Gv((()=>{const e=t.getSignalName(n);return`[${e}.start, ${e}.stop]`}))])}else{return Sd([{data:t.requestDataName(Rd.Main),field:t.vgField(i,{})}])}}}else if(f.timeUnit&&F(["time","utc"],e)&&ou(f,ZO(t)?t.encoding[yn(i)]:undefined,t.markDef,t.config)){const e=t.requestDataName(Rd.Main);return Sd([{data:e,field:t.vgField(i)},{data:e,field:t.vgField(i,{suffix:"end"})}])}else if(l){return Sd([{data:L(l)?t.requestDataName(Rd.Main):t.requestDataName(Rd.Raw),field:t.vgField(i),sort:l}])}else{return Sd([{data:t.requestDataName(Rd.Main),field:t.vgField(i)}])}}function tO(e,n){const{op:t,field:i,order:r}=e;return Object.assign(Object.assign({op:t!==null&&t!==void 0?t:n?"sum":Wa},i?{field:Y(i)}:{}),r?{order:r}:{})}function iO(e,n){var t;const i=e.component.scales[n];const r=e.specifiedScales[n].domain;const s=(t=e.fieldDef(n))===null||t===void 0?void 0:t.bin;const o=xo(r)&&r;const a=Ct(s)&&St(s.extent)&&s.extent;if(o||a){i.set("selectionExtent",o!==null&&o!==void 0?o:a,true)}}function rO(e,n,t){if(!mo(t)){return undefined}const i=e.fieldDef(n);const r=i.sort;if(Va(r)){return{op:"min",field:Sb(i,n),order:"ascending"}}const{stack:s}=e;const o=s?new Set([...s.groupbyFields,...s.stackBy.map((e=>e.fieldDef.field))]):undefined;if(Ka(r)){const e=s&&!o.has(r.field);return tO(r,e)}else if(Ya(r)){const{encoding:n,order:t}=r;const i=e.fieldDef(n);const{aggregate:a,field:u}=i;const c=s&&!o.has(u);if(yt(a)||vt(a)){return tO({field:Du(i),order:t},c)}else if(Ot(a)||!a){return tO({op:a,field:u,order:t},c)}}else if(r==="descending"){return{op:"min",field:e.vgField(n),order:"descending"}}else if(F(["ascending",undefined],r)){return true}return undefined}function sO(e,n){const{aggregate:t,type:i}=e;if(!t){return{valid:false,reason:cr(e)}}if((0,r.Kg)(t)&&!$t.has(t)){return{valid:false,reason:lr(t)}}if(i==="quantitative"){if(n==="log"){return{valid:false,reason:fr(e)}}}return{valid:true}}function oO(e,n,t,i){if(e.explicit&&n.explicit){Vr(vr(t,i,e.value,n.value))}return{explicit:e.explicit,value:[...e.value,...n.value]}}function aO(e){const n=C(e.map((e=>{if(Ut(e)){const{sort:n}=e,t=Yv(e,["sort"]);return t}return e})),w);const t=C(e.map((e=>{if(Ut(e)){const n=e.sort;if(n!==undefined&&!L(n)){if("op"in n&&n.op==="count"){delete n.field}if(n.order==="ascending"){delete n.order}}return n}return undefined})).filter((e=>e!==undefined)),w);if(n.length===0){return undefined}else if(n.length===1){const n=e[0];if(Ut(n)&&t.length>0){let e=t[0];if(t.length>1){Vr(wr);e=true}else{if((0,r.Gv)(e)&&"field"in e){const t=e.field;if(n.field===t){e=e.order?{order:e.order}:true}}}return Object.assign(Object.assign({},n),{sort:e})}return n}const i=C(t.map((e=>{if(L(e)||!("op"in e)||(0,r.Kg)(e.op)&&e.op in bt){return e}Vr(xr(e));return true})),w);let s;if(i.length===1){s=i[0]}else if(i.length>1){Vr(wr);s=true}const o=C(e.map((e=>{if(Ut(e)){return e.data}return null})),(e=>e));if(o.length===1&&o[0]!==null){const e=Object.assign({data:o[0],fields:n.map((e=>e.field))},s?{sort:s}:{});return e}return Object.assign({fields:n},s?{sort:s}:{})}function uO(e){if(Ut(e)&&(0,r.Kg)(e.field)){return e.field}else if(Lt(e)){let n;for(const t of e.fields){if(Ut(t)&&(0,r.Kg)(t.field)){if(!n){n=t.field}else if(n!==t.field){Vr(jr);return n}}}Vr(Fr);return n}else if(qt(e)){Vr($r);const n=e.fields[0];return(0,r.Kg)(n)?n:undefined}return undefined}function cO(e,n){const t=e.component.scales[n];const i=t.get("domains").map((n=>{if(Ut(n)){n.data=e.lookupDataSource(n.data)}return n}));return aO(i)}var lO=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);re.concat(fO(n))),dO(e))}else{return dO(e)}}function dO(e){return N(e.component.scales).reduce(((n,t)=>{const i=e.component.scales[t];if(i.merged){return n}const r=i.combine();const{name:s,type:o,selectionExtent:a,domains:u,range:c,reverse:l}=r,f=lO(r,["name","type","selectionExtent","domains","range","reverse"]);const d=pO(r.range,s,t,e);const p=cO(e,t);const g=a?Jd(e,a,i,p):null;n.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:s,type:o},p?{domain:p}:{}),g?{domainRaw:g}:{}),{range:d}),l!==undefined?{reverse:l}:{}),f));return n}),[])}function pO(e,n,t,i){if(Rn(t)){if(Mt(e)){return{step:{signal:`${n}_step`}}}}else if((0,r.Gv)(e)&&Ut(e)){return Object.assign(Object.assign({},e),{data:i.lookupDataSource(e.data)})}return e}class gO extends kd{constructor(e,n){super({},{name:e});this.merged=false;this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){if(this.get("zero")!==false){return true}return $(this.get("domains"),(e=>(0,r.cy)(e)&&e.length===2&&e[0]<=0&&e[1]>=0))}}const mO=["range","scheme"];function hO(e){const n=e.component.scales;for(const t of ut){const i=n[t];if(!i){continue}const r=yO(t,e);i.setWithExplicit("range",r)}}function bO(e,n){const t=e.fieldDef(n);if(t===null||t===void 0?void 0:t.bin){const{bin:i,field:s}=t;const o=vn(n);const a=e.getName(o);if((0,r.Gv)(i)&&i.binned&&i.step!==undefined){return new Gv((()=>{const t=e.scaleName(n);const r=`(domain("${t}")[1] - domain("${t}")[0]) / ${i.step}`;return`${e.getSignalName(a)} / (${r})`}))}else if(At(i)){const n=Qy(e,s,i);return new Gv((()=>{const t=e.getSignalName(n);const i=`(${t}.stop - ${t}.start) / ${t}.step`;return`${e.getSignalName(a)} / (${i})`}))}}return undefined}function yO(e,n){const t=n.specifiedScales[e];const{size:i}=n;const s=n.getScaleComponent(e);const o=s.get("type");for(const d of mO){if(t[d]!==undefined){const i=_o(o,d);const s=zo(e,d);if(!i){Vr(mr(o,d,e))}else if(s){Vr(s)}else{switch(d){case"range":{const i=t.range;if((0,r.cy)(i)){if(Rn(e)){return Cd(i.map((e=>{if(e==="width"||e==="height"){const t=n.getName(e);const i=n.getSignalName.bind(n);return Gv.fromName(i,t)}return e})))}}else if((0,r.Gv)(i)){return Cd({data:n.requestDataName(Rd.Main),field:i.field,sort:{op:"min",field:n.vgField(e)}})}return Cd(i)}case"scheme":return Cd(vO(t[d]))}}}}const a=e===ce||e==="xOffset"?"width":"height";const u=i[a];if(Bl(u)){if(Rn(e)){if(mo(o)){const t=xO(u,n,e);if(t){return Cd({step:t})}}else{Vr(br(a))}}else if(Kn(e)){const t=e===pe?"x":"y";const i=n.getScaleComponent(t);const r=i.get("type");if(r==="band"){const e=wO(u,o);if(e){return Cd(e)}}}}const{rangeMin:c,rangeMax:l}=t;const f=OO(e,n);if((c!==undefined||l!==undefined)&&_o(o,"rangeMin")&&(0,r.cy)(f)&&f.length===2){return Cd([c!==null&&c!==void 0?c:f[0],l!==null&&l!==void 0?l:f[1]])}return Sd(f)}function vO(e){if(Oo(e)){return Object.assign({scheme:e.name},O(e,["name"]))}return{scheme:e}}function OO(e,n){const{size:t,config:i,mark:r,encoding:s}=n;const o=n.getSignalName.bind(n);const{type:a}=Ru(s[e]);const u=n.getScaleComponent(e);const c=u.get("type");const{domain:l,domainMid:f}=n.specifiedScales[e];switch(e){case ce:case le:{if(F(["point","band"],c)){const r=FO(e,t,i.view);if(Bl(r)){const t=xO(r,n,e);return{step:t}}}const r=vn(e);const s=n.getName(r);if(e===le&&ho(c)){return[Gv.fromName(o,s),0]}else{return[0,Gv.fromName(o,s)]}}case pe:case ge:return jO(e,n,c);case Ae:{const s=n.component.scales[e].get("zero");const o=AO(r,s,i);const a=CO(r,t,n,i);if(yo(c)){return DO(o,a,$O(c,i,l,e))}else{return[o,a]}}case be:return[0,Math.PI*2];case ke:return[0,360];case me:{return[0,new Gv((()=>{const e=n.getSignalName("width");const t=n.getSignalName("height");return`min(${e},${t})/2`}))]}case Be:return[i.scale.minStrokeWidth,i.scale.maxStrokeWidth];case Pe:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case De:return"symbol";case je:case Fe:case $e:if(c==="ordinal"){return a==="nominal"?"category":"ordinal"}else{if(f!==undefined){return"diverging"}else{return r==="rect"||r==="geoshape"?"heatmap":"ramp"}}case Ce:case Se:case Ee:return[i.scale.minOpacity,i.scale.maxOpacity]}}function xO(e,n,t){var i,r,s,o,a;const{encoding:u}=n;const c=n.getScaleComponent(t);const l=xn(t);const f=u[l];const d=El({step:e,offsetIsDiscrete:bu(f)&&Gs(f.type)});if(d==="offset"&&mc(u,l)){const t=n.getScaleComponent(l);const u=n.scaleName(l);let f=`domain('${u}').length`;if(t.get("type")==="band"){const e=(r=(i=t.get("paddingInner"))!==null&&i!==void 0?i:t.get("padding"))!==null&&r!==void 0?r:0;const n=(o=(s=t.get("paddingOuter"))!==null&&s!==void 0?s:t.get("padding"))!==null&&o!==void 0?o:0;f=`bandspace(${f}, ${e}, ${n})`}const d=(a=c.get("paddingInner"))!==null&&a!==void 0?a:c.get("padding");return{signal:`${e.step} * ${f} / (1-${Jt(d)})`}}else{return e.step}}function wO(e,n){const t=El({step:e,offsetIsDiscrete:mo(n)});if(t==="offset"){return{step:e.step}}return undefined}function jO(e,n,t){const i=e===pe?"x":"y";const r=n.getScaleComponent(i);const s=r.get("type");const o=n.scaleName(i);if(s==="band"){const e=FO(i,n.size,n.config.view);if(Bl(e)){const n=wO(e,t);if(n){return n}}return[0,{signal:`bandwidth('${o}')`}]}else{return y(`Cannot use ${e} scale if ${i} scale is not discrete.`)}}function FO(e,n,t){const i=e===ce?"width":"height";const r=n[i];if(r){return r}return Ul(t,i)}function $O(e,n,t,i){switch(e){case"quantile":return n.scale.quantileCount;case"quantize":return n.scale.quantizeCount;case"threshold":if(t!==undefined&&(0,r.cy)(t)){return t.length+1}else{Vr(Mr(i));return 3}}}function DO(e,n,t){const i=()=>{const i=ei(n);const r=ei(e);const s=`(${i} - ${r}) / (${t} - 1)`;return`sequence(${r}, ${i} + ${s}, ${s})`};if(Tt(n)){return new Gv(i)}else{return{signal:i()}}}function AO(e,n,t){if(n){if(Tt(n)){return{signal:`${n.signal} ? 0 : ${AO(e,false,t)}`}}else{return 0}}switch(e){case"bar":case"tick":return t.scale.minBandSize;case"line":case"trail":case"rule":return t.scale.minStrokeWidth;case"text":return t.scale.minFontSize;case"point":case"square":case"circle":return t.scale.minSize}throw new Error(Qi("size",e))}const kO=.95;function CO(e,n,t,i){const s={x:bO(t,"x"),y:bO(t,"y")};switch(e){case"bar":case"tick":{if(i.scale.maxBandSize!==undefined){return i.scale.maxBandSize}const e=SO(n,s,i.view);if((0,r.Et)(e)){return e-1}else{return new Gv((()=>`${e.signal} - 1`))}}case"line":case"trail":case"rule":return i.scale.maxStrokeWidth;case"text":return i.scale.maxFontSize;case"point":case"square":case"circle":{if(i.scale.maxSize){return i.scale.maxSize}const e=SO(n,s,i.view);if((0,r.Et)(e)){return Math.pow(kO*e,2)}else{return new Gv((()=>`pow(${kO} * ${e.signal}, 2)`))}}}throw new Error(Qi("size",e))}function SO(e,n,t){const i=Bl(e.width)?e.width.step:ql(t,"width");const r=Bl(e.height)?e.height.step:ql(t,"height");if(n.x||n.y){return new Gv((()=>{const e=[n.x?n.x.signal:i,n.y?n.y.signal:r];return`min(${e.join(", ")})`}))}return Math.min(i,r)}function EO(e,n){if(ZO(e)){BO(e,n)}else{zO(e,n)}}function BO(e,n){const t=e.component.scales;const{config:i,encoding:r,markDef:s,specifiedScales:o}=e;for(const a of N(t)){const u=o[a];const c=t[a];const l=e.getScaleComponent(a);const f=Ru(r[a]);const d=u[n];const p=l.get("type");const g=l.get("padding");const m=l.get("paddingInner");const h=_o(p,n);const b=zo(a,n);if(d!==undefined){if(!h){Vr(mr(p,n,a))}else if(b){Vr(b)}}if(h&&b===undefined){if(d!==undefined){const e=f["timeUnit"];const t=f.type;switch(n){case"domainMax":case"domainMin":if(Jr(u[n])||t==="temporal"||e){c.set(n,{signal:Ju(u[n],{type:t,timeUnit:e})},true)}else{c.set(n,u[n],true)}break;default:c.copyKeyFromObject(n,u)}}else{const t=n in PO?PO[n]({model:e,channel:a,fieldOrDatumDef:f,scaleType:p,scalePadding:g,scalePaddingInner:m,domain:u.domain,domainMin:u.domainMin,domainMax:u.domainMax,markDef:s,config:i,hasNestedOffsetScale:hc(r,a),hasSecondaryRangeChannel:!!r[yn(a)]}):i.scale[n];if(t!==undefined){c.set(n,t,false)}}}}}const PO={bins:({model:e,fieldOrDatumDef:n})=>fu(n)?NO(e,n):undefined,interpolate:({channel:e,fieldOrDatumDef:n})=>TO(e,n.type),nice:({scaleType:e,channel:n,domain:t,domainMin:i,domainMax:r,fieldOrDatumDef:s})=>MO(e,n,t,i,r,s),padding:({channel:e,scaleType:n,fieldOrDatumDef:t,markDef:i,config:r})=>LO(e,n,r.scale,t,i,r.bar),paddingInner:({scalePadding:e,channel:n,markDef:t,scaleType:i,config:r,hasNestedOffsetScale:s})=>qO(e,n,t.type,i,r.scale,s),paddingOuter:({scalePadding:e,channel:n,scaleType:t,scalePaddingInner:i,config:r,hasNestedOffsetScale:s})=>UO(e,n,t,i,r.scale,s),reverse:({fieldOrDatumDef:e,scaleType:n,channel:t,config:i})=>{const r=fu(e)?e.sort:undefined;return RO(n,r,t,i.scale)},zero:({channel:e,fieldOrDatumDef:n,domain:t,markDef:i,scaleType:r,config:s,hasSecondaryRangeChannel:o})=>IO(e,n,t,i,r,s.scale,o)};function _O(e){if(ZO(e)){hO(e)}else{zO(e,"range")}}function zO(e,n){const t=e.component.scales;for(const i of e.children){if(n==="range"){_O(i)}else{EO(i,n)}}for(const i of N(t)){let r;for(const t of e.children){const e=t.component.scales[i];if(e){const t=e.getWithExplicit(n);r=Pd(r,t,n,"scale",Ed(((e,t)=>{switch(n){case"range":if(e.step&&t.step){return e.step-t.step}return 0}return 0})))}}t[i].setWithExplicit(n,r)}}function NO(e,n){const t=n.bin;if(At(t)){const i=Qy(e,n.field,t);return new Gv((()=>e.getSignalName(i)))}else if(kt(t)&&Ct(t)&&t.step!==undefined){return{step:t.step}}return undefined}function TO(e,n){if(F([je,Fe,$e],e)&&n!=="nominal"){return"hcl"}return undefined}function MO(e,n,t,i,s,o){var a;if(((a=Uu(o))===null||a===void 0?void 0:a.bin)||(0,r.cy)(t)||s!=null||i!=null||F([no.TIME,no.UTC],e)){return undefined}return Rn(n)?true:undefined}function LO(e,n,t,i,r,s){if(Rn(e)){if(bo(n)){if(t.continuousPadding!==undefined){return t.continuousPadding}const{type:n,orient:o}=r;if(n==="bar"&&!(fu(i)&&(i.bin||i.timeUnit))){if(o==="vertical"&&e==="x"||o==="horizontal"&&e==="y"){return s.continuousBandSize}}}if(n===no.POINT){return t.pointPadding}}return undefined}function qO(e,n,t,i,r,s=false){if(e!==undefined){return undefined}if(Rn(n)){const{bandPaddingInner:e,barBandPaddingInner:n,rectBandPaddingInner:i,bandWithNestedOffsetPaddingInner:o}=r;if(s){return o}return X(e,t==="bar"?n:i)}else if(Kn(n)){if(i===no.BAND){return r.offsetBandPaddingInner}}return undefined}function UO(e,n,t,i,r,s=false){if(e!==undefined){return undefined}if(Rn(n)){const{bandPaddingOuter:e,bandWithNestedOffsetPaddingOuter:n}=r;if(s){return n}if(t===no.BAND){return X(e,Tt(i)?{signal:`${i.signal}/2`}:i/2)}}else if(Kn(n)){if(t===no.POINT){return.5}else if(t===no.BAND){return r.offsetBandPaddingOuter}}return undefined}function RO(e,n,t,i){if(t==="x"&&i.xReverse!==undefined){if(ho(e)&&n==="descending"){if(Tt(i.xReverse)){return{signal:`!${i.xReverse.signal}`}}else{return!i.xReverse}}return i.xReverse}if(ho(e)&&n==="descending"){return true}return undefined}function IO(e,n,t,i,s,o,a){const u=!!t&&t!=="unaggregated";if(u){if(ho(s)){if((0,r.cy)(t)){const e=t[0];const n=t[t.length-1];if(e<=0&&n>=0){return true}}return false}}if(e==="size"&&n.type==="quantitative"&&!yo(s)){return true}if(!(fu(n)&&n.bin)&&F([...Un,...Wn],e)){const{orient:n,type:t}=i;if(F(["bar","area","line","trail"],t)){if(n==="horizontal"&&e==="y"||n==="vertical"&&e==="x"){return false}}if(F(["bar","area"],t)&&!a){return true}return o===null||o===void 0?void 0:o.zero}return false}function WO(e,n,t,i,r=false){const s=HO(n,t,i,r);const{type:o}=e;if(!ct(n)){return null}if(o!==undefined){if(!To(n,o)){Vr(pr(n,o,s));return s}if(fu(t)&&!No(o,t.type)){Vr(gr(o,s));return s}return o}return s}function HO(e,n,t,i){var r;switch(n.type){case"nominal":case"ordinal":{if(Qe(e)||mt(e)==="discrete"){if(e==="shape"&&n.type==="ordinal"){Vr(tr(e,"ordinal"))}return"ordinal"}if(Rn(e)||Kn(e)){if(F(["rect","bar","image","rule"],t.type)){return"band"}if(i){return"band"}}else if(t.type==="arc"&&e in In){return"band"}const s=t[vn(e)];if(ga(s)){return"band"}if(xu(n)&&((r=n.axis)===null||r===void 0?void 0:r.tickBand)){return"band"}return"point"}case"temporal":if(Qe(e)){return"time"}else if(mt(e)==="discrete"){Vr(tr(e,"temporal"));return"ordinal"}else if(fu(n)&&n.timeUnit&&$s(n.timeUnit).utc){return"utc"}return"time";case"quantitative":if(Qe(e)){if(fu(n)&&At(n.bin)){return"bin-ordinal"}return"linear"}else if(mt(e)==="discrete"){Vr(tr(e,"quantitative"));return"ordinal"}return"linear";case"geojson":return undefined}throw new Error(Ri(n.type))}function GO(e,{ignoreRange:n}={}){YO(e);Kv(e);for(const t of Po){EO(e,t)}if(!n){_O(e)}}function YO(e){if(ZO(e)){e.component.scales=KO(e)}else{e.component.scales=QO(e)}}function KO(e){const{encoding:n,mark:t,markDef:i}=e;const r={};for(const s of ut){const o=Ru(n[s]);if(o&&t===Jo&&s===De&&o.type===Xs){continue}let a=o&&o["scale"];if(Kn(s)){const e=wn(s);if(!hc(n,e)){if(a){Vr(Xi(s))}continue}}if(o&&a!==null&&a!==false){a!==null&&a!==void 0?a:a={};const t=hc(n,s);const u=WO(a,s,o,i,t);r[s]=new gO(e.scaleName(`${s}`,true),{value:u,explicit:a.type===u})}}return r}const VO=Ed(((e,n)=>oo(e)-oo(n)));function QO(e){var n;var t;const i=e.component.scales={};const r={};const s=e.component.resolve;for(const o of e.children){YO(o);for(const i of N(o.component.scales)){(n=(t=s.scale)[i])!==null&&n!==void 0?n:t[i]=Zb(i,e);if(s.scale[i]==="shared"){const e=r[i];const n=o.component.scales[i].getWithExplicit("type");if(e){if(ro(e.value,n.value)){r[i]=Pd(e,n,"type","scale",VO)}else{s.scale[i]="independent";delete r[i]}}else{r[i]=n}}}}for(const o of N(r)){const n=e.scaleName(o,true);const t=r[o];i[o]=new gO(n,t);for(const i of e.children){const e=i.component.scales[o];if(e){i.renameScale(e.get("name"),n);e.merged=true}}}return i}var XO=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{var n,t,i;if((n=e.from)===null||n===void 0?void 0:n.data){e.from.data=this.lookupDataSource(e.from.data)}if((i=(t=e.from)===null||t===void 0?void 0:t.facet)===null||i===void 0?void 0:i.data){e.from.facet.data=this.lookupDataSource(e.from.facet.data)}return e};this.parent=t;this.config=r;this.view=Pt(o);this.name=(a=e.name)!==null&&a!==void 0?a:i;this.title=Nt(e.title)?{text:e.title}:e.title?Pt(e.title):undefined;this.scaleNameMap=t?t.scaleNameMap:new JO;this.projectionNameMap=t?t.projectionNameMap:new JO;this.signalNameMap=t?t.signalNameMap:new JO;this.data=e.data;this.description=e.description;this.transforms=ud((u=e.transform)!==null&&u!==void 0?u:[]);this.layout=n==="layer"||n==="unit"?{}:Tl(e,n,r);this.component={data:{sources:t?t.component.data.sources:[],outputNodes:t?t.component.data.outputNodes:{},outputNodeRefCounts:t?t.component.data.outputNodeRefCounts:{},isFaceted:Ja(e)||(t===null||t===void 0?void 0:t.component.data.isFaceted)&&e.data===undefined},layoutSize:new kd,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},s?b(s):{}),selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale();this.parseLayoutSize();this.renameTopLevelLayoutSizeSignal();this.parseSelections();this.parseProjection();this.parseData();this.parseAxesAndHeaders();this.parseLegends();this.parseMarkGroup()}parseScale(){GO(this)}parseProjection(){Uy(this)}renameTopLevelLayoutSizeSignal(){if(this.getName("width")!=="width"){this.renameSignal(this.getName("width"),"width")}if(this.getName("height")!=="height"){this.renameSignal(this.getName("height"),"height")}}parseLegends(){Fy(this)}assembleEncodeFromView(e){const{style:n}=e,t=XO(e,["style"]);const i={};for(const r of N(t)){const e=t[r];if(e!==undefined){i[r]=Xt(e)}}return i}assembleGroupEncodeEntry(e){let n={};if(this.view){n=this.assembleEncodeFromView(this.view)}if(!e){if(this.description){n["description"]=Xt(this.description)}if(this.type==="unit"||this.type==="layer"){return Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},n!==null&&n!==void 0?n:{})}}return z(n)?undefined:n}assembleLayout(){if(!this.layout){return undefined}const e=this.layout,{spacing:n}=e,t=XO(e,["spacing"]);const{component:i,config:r}=this;const s=Hb(i.layoutHeaders,r);return Object.assign(Object.assign(Object.assign({padding:n},this.assembleDefaultLayout()),t),s?{titleBand:s}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let n=[];for(const t of Je){if(e[t].title){n.push(Nb(this,t))}}for(const t of _b){n=n.concat(Lb(this,t))}return n}assembleAxes(){return lb(this.component.axes,this.config)}assembleLegends(){return _y(this)}assembleProjections(){return Ny(this)}assembleTitle(){var e,n,t;const i=(e=this.title)!==null&&e!==void 0?e:{},{encoding:r}=i,s=XO(i,["encoding"]);const o=Object.assign(Object.assign(Object.assign({},zt(this.config.title).nonMarkTitleProperties),s),r?{encode:{update:r}}:{});if(o.text){if(F(["unit","layer"],this.type)){if(F(["middle",undefined],o.anchor)){(n=o.frame)!==null&&n!==void 0?n:o.frame="group"}}else{(t=o.anchor)!==null&&t!==void 0?t:o.anchor="start"}return z(o)?undefined:o}return undefined}assembleGroup(e=[]){const n={};e=e.concat(this.assembleSignals());if(e.length>0){n.signals=e}const t=this.assembleLayout();if(t){n.layout=t}n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||ex(this.parent)?fO(this):[];if(i.length>0){n.scales=i}const r=this.assembleAxes();if(r.length>0){n.axes=r}const s=this.assembleLegends();if(s.length>0){n.legends=s}return n}getName(e){return q((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(Rd[e].toLowerCase())}requestDataName(e){const n=this.getDataName(e);const t=this.component.data.outputNodeRefCounts;t[n]=(t[n]||0)+1;return n}getSizeSignalRef(e){if(ex(this.parent)){const n=Xb(e);const t=Hn(n);const i=this.component.scales[t];if(i&&!i.merged){const e=i.get("type");const n=i.get("range");if(mo(e)&&Mt(n)){const e=i.get("name");const n=cO(this,t);const r=uO(n);if(r){const n=Du({aggregate:"distinct",field:r},{expr:"datum"});return{signal:Qb(e,i,n)}}else{Vr(hi(t));return null}}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const n=this.component.data.outputNodes[e];if(!n){return e}return n.getSource()}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,n){this.signalNameMap.rename(e,n)}renameScale(e,n){this.scaleNameMap.rename(e,n)}renameProjection(e,n){this.projectionNameMap.rename(e,n)}scaleName(e,n){if(n){return this.getName(e)}if(pn(e)&&ct(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e))){return this.scaleNameMap.get(this.getName(e))}return undefined}projectionName(e){if(e){return this.getName("projection")}if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))){return this.projectionNameMap.get(this.getName("projection"))}return undefined}getScaleComponent(e){if(!this.component.scales){throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().")}const n=this.component.scales[e];if(n&&!n.merged){return n}return this.parent?this.parent.getScaleComponent(e):undefined}getSelectionComponent(e,n){let t=this.component.selection[e];if(!t&&this.parent){t=this.parent.getSelectionComponent(e,n)}if(!t){throw new Error(xi(n))}return t}hasAxisOrientSignalRef(){var e,n;return((e=this.component.axes.x)===null||e===void 0?void 0:e.some((e=>e.hasOrientSignalRef())))||((n=this.component.axes.y)===null||n===void 0?void 0:n.some((e=>e.hasOrientSignalRef())))}}class rx extends ix{vgField(e,n={}){const t=this.fieldDef(e);if(!t){return undefined}return Du(t,n)}reduceFieldDef(e,n){return Fc(this.getMapping(),((n,t,i)=>{const r=Uu(t);if(r){return e(n,r,i)}return n}),n)}forEachFieldDef(e,n){jc(this.getMapping(),((n,t)=>{const i=Uu(n);if(i){e(i,t)}}),n)}}var sx=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{const s=ct(r)&&n.getScaleComponent(r);if(s){const n=s.get("type");if(ho(n)&&t.aggregate!=="count"&&!ea(i)){e[t.field]=t}}return e}),{});if(!N(o).length){return null}return new ax(e,o)}dependentFields(){return new Set(N(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${w(this.filter)}`}assemble(){const e=N(this.filter).reduce(((e,n)=>{const t=this.filter[n];const i=Du(t,{expr:"datum"});if(t!==null){if(t.type==="temporal"){e.push(`(isDate(${i}) || (isValid(${i}) && isFinite(+${i})))`)}else if(t.type==="quantitative"){e.push(`isValid(${i})`);e.push(`isFinite(+${i})`)}else{}}return e}),[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}class ux extends ep{clone(){return new ux(this.parent,b(this.transform))}constructor(e,n){super(e);this.transform=n;this.transform=b(n);const{flatten:t,as:i=[]}=this.transform;this.transform.as=t.map(((e,n)=>{var t;return(t=i[n])!==null&&t!==void 0?t:e}))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${w(this.transform)}`}assemble(){const{flatten:e,as:n}=this.transform;const t={type:"flatten",fields:e,as:n};return t}}class cx extends ep{clone(){return new cx(null,b(this.transform))}constructor(e,n){var t,i,r;super(e);this.transform=n;this.transform=b(n);const s=(t=this.transform.as)!==null&&t!==void 0?t:[undefined,undefined];this.transform.as=[(i=s[0])!==null&&i!==void 0?i:"key",(r=s[1])!==null&&r!==void 0?r:"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${w(this.transform)}`}assemble(){const{fold:e,as:n}=this.transform;const t={type:"fold",fields:e,as:n};return t}}class lx extends ep{clone(){return new lx(null,b(this.fields),this.geojson,this.signal)}static parseAll(e,n){if(n.component.projection&&!n.component.projection.isFit){return e}let t=0;for(const i of[[Oe,ve],[we,xe]]){const r=i.map((e=>{const t=Ru(n.encoding[e]);return fu(t)?t.field:pu(t)?{expr:`${t.datum}`}:vu(t)?{expr:`${t["value"]}`}:undefined}));if(r[0]||r[1]){e=new lx(e,r,null,n.getName(`geojson_${t++}`))}}if(n.channelHasField(De)){const i=n.typedFieldDef(De);if(i.type===Xs){e=new lx(e,null,i.field,n.getName(`geojson_${t++}`))}}return e}constructor(e,n,t,i){super(e);this.fields=n;this.geojson=t;this.signal=i}dependentFields(){var e;const n=((e=this.fields)!==null&&e!==void 0?e:[]).filter(r.Kg);return new Set([...this.geojson?[this.geojson]:[],...n])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${w(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})]}}class fx extends ep{clone(){return new fx(null,this.projection,b(this.fields),b(this.as))}constructor(e,n,t,i){super(e);this.projection=n;this.fields=t;this.as=i}static parseAll(e,n){if(!n.projectionName()){return e}for(const t of[[Oe,ve],[we,xe]]){const i=t.map((e=>{const t=Ru(n.encoding[e]);return fu(t)?t.field:pu(t)?{expr:`${t.datum}`}:vu(t)?{expr:`${t["value"]}`}:undefined}));const r=t[0]===we?"2":"";if(i[0]||i[1]){e=new fx(e,n.projectionName(),i,[n.getName(`x${r}`),n.getName(`y${r}`)])}}return e}dependentFields(){return new Set(this.fields.filter(r.Kg))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${w(this.fields)} ${w(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class dx extends ep{clone(){return new dx(null,b(this.transform))}constructor(e,n){super(e);this.transform=n}dependentFields(){var e;return new Set([this.transform.impute,this.transform.key,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:n=0,stop:t,step:i}=e;const r=[n,t,...i?[i]:[]].join(",");return{signal:`sequence(${r})`}}static makeFromTransform(e,n){return new dx(e,n)}static makeFromEncoding(e,n){const t=n.encoding;const i=t.x;const r=t.y;if(fu(i)&&fu(r)){const s=i.impute?i:r.impute?r:undefined;if(s===undefined){return undefined}const o=i.impute?r:r.impute?i:undefined;const{method:a,value:u,frame:c,keyvals:l}=s.impute;const f=$c(n.mark,t);return new dx(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:s.field,key:o.field},a?{method:a}:{}),u!==undefined?{value:u}:{}),c?{frame:c}:{}),l!==undefined?{keyvals:l}:{}),f.length?{groupby:f}:{}))}return null}hash(){return`Impute ${w(this.transform)}`}assemble(){const{impute:e,key:n,keyvals:t,method:i,groupby:r,value:s,frame:o=[null,null]}=this.transform;const a=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:e,key:n},t?{keyvals:Rf(t)?this.processSequence(t):t}:{}),{method:"value"}),r?{groupby:r}:{}),{value:!i||i==="value"?s:null});if(i&&i!=="value"){const n=Object.assign({type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:o,ignorePeers:false},r?{groupby:r}:{});const t={type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e};return[a,n,t]}else{return[a]}}}var px=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);re))}producedFields(){return undefined}dependentFields(){var e;return new Set([this.transform.pivot,this.transform.value,...(e=this.transform.groupby)!==null&&e!==void 0?e:[]])}hash(){return`PivotTransform ${w(this.transform)}`}assemble(){const{pivot:e,value:n,groupby:t,limit:i,op:r}=this.transform;return Object.assign(Object.assign(Object.assign({type:"pivot",field:e,value:n},i!==undefined?{limit:i}:{}),r!==undefined?{op:r}:{}),t!==undefined?{groupby:t}:{})}}class xx extends ep{clone(){return new xx(null,b(this.transform))}constructor(e,n){super(e);this.transform=n}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${w(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function wx(e){let n=0;function t(i,r){var s;if(i instanceof pv){if(!i.isGenerator&&!zd(i.data)){e.push(r);const n={name:null,source:r.name,transform:[]};r=n}}if(i instanceof cv){if(i.parent instanceof pv&&!r.source){r.format=Object.assign(Object.assign({},(s=r.format)!==null&&s!==void 0?s:{}),{parse:i.assembleFormatParse()});r.transform.push(...i.assembleTransforms(true))}else{r.transform.push(...i.assembleTransforms())}}if(i instanceof iv){if(!r.name){r.name=`data_${n++}`}if(!r.source||r.transform.length>0){e.push(r);i.data=r.name}else{i.data=r.source}e.push(...i.assemble());return}if(i instanceof fv||i instanceof dv||i instanceof ax||i instanceof Zh||i instanceof Cb||i instanceof fx||i instanceof tv||i instanceof mx||i instanceof Nv||i instanceof Bv||i instanceof cx||i instanceof ux||i instanceof ox||i instanceof gx||i instanceof bx||i instanceof vx||i instanceof lv||i instanceof xx||i instanceof Ox){r.transform.push(i.assemble())}if(i instanceof Zy||i instanceof ip||i instanceof dx||i instanceof zv||i instanceof lx){r.transform.push(...i.assemble())}if(i instanceof np){if(r.source&&r.transform.length===0){i.setSource(r.source)}else if(i.parent instanceof np){i.setSource(r.name)}else{if(!r.name){r.name=`data_${n++}`}i.setSource(r.name);if(i.numChildren()===1){e.push(r);const n={name:null,source:r.name,transform:[]};r=n}}}switch(i.numChildren()){case 0:if(i instanceof np&&(!r.source||r.transform.length>0)){e.push(r)}break;case 1:t(i.children[0],r);break;default:{if(!r.name){r.name=`data_${n++}`}let s=r.name;if(!r.source||r.transform.length>0){e.push(r)}else{s=r.source}for(const e of i.children){const n={name:null,source:s,transform:[]};t(e,n)}break}}}return t}function jx(e){const n=[];const t=wx(n);for(const i of e.children){t(i,{source:e.name,name:null,transform:[]})}return n}function Fx(e,n){var t,i;const r=[];const s=wx(r);let o=0;for(const u of e.sources){if(!u.hasName()){u.dataName=`source_${o++}`}const e=u.assemble();s(u,e)}for(const u of r){if(u.transform.length===0){delete u.transform}}let a=0;for(const[u,c]of r.entries()){if(((t=c.transform)!==null&&t!==void 0?t:[]).length===0&&!c.source){r.splice(a++,0,r.splice(u,1)[0])}}for(const u of r){for(const n of(i=u.transform)!==null&&i!==void 0?i:[]){if(n.type==="lookup"){n.from=e.outputNodes[n.from].getSource()}}}for(const u of r){if(u.name in n){u.values=n[u.name]}}return r}function $x(e){if(e==="top"||e==="left"||Tt(e)){return"header"}return"footer"}function Dx(e){for(const n of Je){Ax(e,n)}Cx(e,"x");Cx(e,"y")}function Ax(e,n){var t;const{facet:i,config:s,child:o,component:a}=e;if(e.channelHasField(n)){const u=i[n];const c=Bb("title",null,s,n);let l=Nu(u,s,{allowDisabling:true,includeDefault:c===undefined||!!c});if(o.component.layoutHeaders[n].title){l=(0,r.cy)(l)?l.join(", "):l;l+=` / ${o.component.layoutHeaders[n].title}`;o.component.layoutHeaders[n].title=null}const f=Bb("labelOrient",u.header,s,n);const d=u.header!==null?X((t=u.header)===null||t===void 0?void 0:t.labels,s.header.labels,true):false;const p=F(["bottom","right"],f)?"footer":"header";a.layoutHeaders[n]={title:u.header!==null?l:null,facetFieldDef:u,[p]:n==="facet"?[]:[kx(e,n,d)]}}}function kx(e,n,t){const i=n==="row"?"height":"width";return{labels:t,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):undefined,axes:[]}}function Cx(e,n){var t;const{child:i}=e;if(i.component.axes[n]){const{layoutHeaders:r,resolve:s}=e.component;s.axis[n]=ey(s,n);if(s.axis[n]==="shared"){const s=n==="x"?"column":"row";const o=r[s];for(const r of i.component.axes[n]){const n=$x(r.get("orient"));(t=o[n])!==null&&t!==void 0?t:o[n]=[kx(e,s,false)];const i=ub(r,"main",e.config,{header:true});if(i){o[n][0].axes.push(i)}r.mainExtracted=true}}else{}}}function Sx(e){Bx(e);Px(e,"width");Px(e,"height")}function Ex(e){Bx(e);const n=e.layout.columns===1?"width":"childWidth";const t=e.layout.columns===undefined?"height":"childHeight";Px(e,n);Px(e,t)}function Bx(e){for(const n of e.children){n.parseLayoutSize()}}function Px(e,n){var t;const i=Xb(n);const r=Hn(i);const s=e.component.resolve;const o=e.component.layoutSize;let a;for(const u of e.children){const n=u.component.layoutSize.getWithExplicit(i);const o=(t=s.scale[r])!==null&&t!==void 0?t:Zb(r,e);if(o==="independent"&&n.value==="step"){a=undefined;break}if(a){if(o==="independent"&&a.value!==n.value){a=undefined;break}a=Pd(a,n,i,"")}else{a=n}}if(a){for(const t of e.children){e.renameSignal(t.getName(i),e.getName(n));t.component.layoutSize.set(i,"merged",false)}o.setWithExplicit(n,a)}else{o.setWithExplicit(n,{explicit:false,value:undefined})}}function _x(e){const{size:n,component:t}=e;for(const i of Un){const r=vn(i);if(n[r]){const e=n[r];t.layoutSize.set(r,Bl(e)?"step":e,true)}else{const n=zx(e,r);t.layoutSize.set(r,n,false)}}}function zx(e,n){const t=n==="width"?"x":"y";const i=e.config;const r=e.getScaleComponent(t);if(r){const e=r.get("type");const t=r.get("range");if(mo(e)){const e=Ul(i.view,n);if(Mt(t)||Bl(e)){return"step"}else{return e}}else{return Ll(i.view,n)}}else if(e.hasProjection||e.mark==="arc"){return Ll(i.view,n)}else{const e=Ul(i.view,n);return Bl(e)?e.step:e}}function Nx(e,n,t){return Du(n,Object.assign({suffix:`by_${Du(e)}`},t!==null&&t!==void 0?t:{}))}class Tx extends rx{constructor(e,n,t,i){super(e,"facet",n,t,i,e.resolve);this.child=Uw(e.spec,this,this.getName("child"),undefined,i);this.children=[this.child];this.facet=this.initFacet(e.facet)}initFacet(e){if(!Qa(e)){return{facet:this.initFacetFieldDef(e,"facet")}}const n=N(e);const t={};for(const i of n){if(![oe,ae].includes(i)){Vr(Qi(i,"facet"));break}const n=e[i];if(n.field===undefined){Vr(Ki(n,i));break}t[i]=this.initFacetFieldDef(n,i)}return t}initFacetFieldDef(e,n){const t=Gu(e,n);if(t.header){t.header=Pt(t.header)}else if(t.header===null){t.header=null}return t}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=Rx(this);this.child.parseData()}parseLayoutSize(){Bx(this)}parseSelections(){this.child.parseSelections();this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders();Dx(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){this.child.assembleSignals();return[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){var e,n,t;const i={};for(const r of Je){for(const s of zb){const o=this.component.layoutHeaders[r];const a=o[s];const{facetFieldDef:u}=o;if(u){const n=Bb("titleOrient",u.header,this.config,r);if(["right","bottom"].includes(n)){const t=Eb(r,n);(e=i.titleAnchor)!==null&&e!==void 0?e:i.titleAnchor={};i.titleAnchor[t]="end"}}if(a===null||a===void 0?void 0:a[0]){const e=r==="row"?"height":"width";const a=s==="header"?"headerBand":"footerBand";if(r!=="facet"&&!this.child.component.layoutSize.get(e)){(n=i[a])!==null&&n!==void 0?n:i[a]={};i[a][r]=.5}if(o.title){(t=i.offset)!==null&&t!==void 0?t:i.offset={};i.offset[r==="row"?"rowTitle":"columnTitle"]=10}}}}return i}assembleDefaultLayout(){const{column:e,row:n}=this.facet;const t=e?this.columnDistinctSignal():n?1:undefined;let i="all";if(!n&&this.component.resolve.scale.x==="independent"){i="none"}else if(!e&&this.component.resolve.scale.y==="independent"){i="none"}return Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),t?{columns:t}:{}),{bounds:"full",align:i})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(this.parent&&this.parent instanceof Tx){return undefined}else{const e=this.getName("column_domain");return{signal:`length(data('${e}'))`}}}assembleGroupStyle(){return undefined}assembleGroup(e){if(this.parent&&this.parent instanceof Tx){return Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:Du(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(e))}return super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[];const n=[];const t=[];if(this.child instanceof Tx){if(this.child.channelHasField("column")){const i=Du(this.child.facet.column);e.push(i);n.push("distinct");t.push(`distinct_${i}`)}}else{for(const i of Un){const r=this.child.component.scales[i];if(r&&!r.merged){const s=r.get("type");const o=r.get("range");if(mo(s)&&Mt(o)){const r=cO(this.child,i);const s=uO(r);if(s){e.push(s);n.push("distinct");t.push(`distinct_${s}`)}else{Vr(hi(i))}}}}}return{fields:e,ops:n,as:t}}assembleFacet(){const{name:e,data:n}=this.component.data.facetRoot;const{row:t,column:i}=this.facet;const{fields:s,ops:o,as:a}=this.getCardinalityAggregateForChild();const u=[];for(const l of Je){const e=this.facet[l];if(e){u.push(Du(e));const{bin:n,sort:c}=e;if(At(n)){u.push(Du(e,{binSuffix:"end"}))}if(Ka(c)){const{field:n,op:r=Wa}=c;const u=Nx(e,c);if(t&&i){s.push(u);o.push("max");a.push(u)}else{s.push(n);o.push(r);a.push(u)}}else if((0,r.cy)(c)){const n=Sb(e,l);s.push(n);o.push("max");a.push(n)}}}const c=!!t&&!!i;return Object.assign({name:e,data:n,groupby:u},c||s.length>0?{aggregate:Object.assign(Object.assign({},c?{cross:c}:{}),s.length?{fields:s,ops:o,as:a}:{})}:{})}facetSortFields(e){const{facet:n}=this;const t=n[e];if(t){if(Ka(t.sort)){return[Nx(t,t.sort,{expr:"datum"})]}else if((0,r.cy)(t.sort)){return[Sb(t,e,{expr:"datum"})]}return[Du(t,{expr:"datum"})]}return[]}facetSortOrder(e){const{facet:n}=this;const t=n[e];if(t){const{sort:e}=t;const n=(Ka(e)?e.order:!(0,r.cy)(e)&&e)||"ascending";return[n]}return[]}assembleLabelTitle(){var e;const{facet:n,config:t}=this;if(n.facet){return Ub(n.facet,"facet",t)}const i={row:["top","bottom"],column:["left","right"]};for(const r of _b){if(n[r]){const s=Bb("labelOrient",(e=n[r])===null||e===void 0?void 0:e.header,t,r);if(i[r].includes(s)){return Ub(n[r],r,t)}}}return undefined}assembleMarks(){const{child:e}=this;const n=this.component.data.facetRoot;const t=jx(n);const i=e.assembleGroupEncodeEntry(false);const r=this.assembleLabelTitle()||e.assembleTitle();const s=e.assembleGroupStyle();const o=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},r?{title:r}:{}),s?{style:s}:{}),{from:{facet:this.assembleFacet()},sort:{field:Je.map((e=>this.facetSortFields(e))).flat(),order:Je.map((e=>this.facetSortOrder(e))).flat()}}),t.length>0?{data:t}:{}),i?{encode:{update:i}}:{}),e.assembleGroup(Yd(this,[])));return[o]}getMapping(){return this.facet}}function Mx(e,n){const{row:t,column:i}=n;if(t&&i){let n=null;for(const r of[t,i]){if(Ka(r.sort)){const{field:t,op:i=Wa}=r.sort;e=n=new Bv(e,{joinaggregate:[{op:i,field:t,as:Nx(r,r.sort,{forAs:true})}],groupby:[Du(r)]})}}return n}return null}function Lx(e,n){var t,i,r,s;for(const o of n){const n=o.data;if(e.name&&o.hasName()&&e.name!==o.dataName){continue}const a=(t=e["format"])===null||t===void 0?void 0:t.mesh;const u=(i=n.format)===null||i===void 0?void 0:i.feature;if(a&&u){continue}const c=(r=e["format"])===null||r===void 0?void 0:r.feature;if((c||u)&&c!==u){continue}const l=(s=n.format)===null||s===void 0?void 0:s.mesh;if((a||l)&&a!==l){continue}if(Nd(e)&&Nd(n)){if(h(e.values,n.values)){return o}}else if(zd(e)&&zd(n)){if(e.url===n.url){return o}}else if(Td(e)){if(e.name===o.dataName){return o}}}return null}function qx(e,n){if(e.data||!e.parent){if(e.data===null){const e=new pv({values:[]});n.push(e);return e}const t=Lx(e.data,n);if(t){if(!Md(e.data)){t.data.format=A({},e.data.format,t.data.format)}if(!t.hasName()&&e.data.name){t.dataName=e.data.name}return t}else{const t=new pv(e.data);n.push(t);return t}}else{return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}}function Ux(e,n,t){var i,r;let s=0;for(const o of n.transforms){let a=undefined;let u;if(nd(o)){u=e=new Cb(e,o);a="derived"}else if(Uf(o)){const r=ov(o);u=e=(i=cv.makeWithAncestors(e,{},r,t))!==null&&i!==void 0?i:e;e=new Zh(e,n,o.filter)}else if(td(o)){u=e=Zy.makeFromTransform(e,o,n);a="number"}else if(rd(o)){a="date";const n=t.getWithExplicit(o.field);if(n.value===undefined){e=new cv(e,{[o.field]:a});t.set(o.field,a,false)}u=e=ip.makeFromTransform(e,o)}else if(sd(o)){u=e=tv.makeFromTransform(e,o);a="number";if(Tg(n)){e=new lv(e)}}else if(If(o)){u=e=mx.make(e,n,o,s++);a="derived"}else if(Jf(o)){u=e=new Nv(e,o);a="number"}else if(Zf(o)){u=e=new Bv(e,o);a="number"}else if(od(o)){u=e=zv.makeFromTransform(e,o);a="derived"}else if(ad(o)){u=e=new cx(e,o);a="derived"}else if(ed(o)){u=e=new ux(e,o);a="derived"}else if(Gf(o)){u=e=new Ox(e,o);a="derived"}else if(Xf(o)){e=new xx(e,o)}else if(id(o)){u=e=dx.makeFromTransform(e,o);a="derived"}else if(Yf(o)){u=e=new ox(e,o);a="derived"}else if(Kf(o)){u=e=new bx(e,o);a="derived"}else if(Vf(o)){u=e=new vx(e,o);a="derived"}else if(Qf(o)){u=e=new gx(e,o);a="derived"}else{Vr(_i(o));continue}if(u&&a!==undefined){for(const e of(r=u.producedFields())!==null&&r!==void 0?r:[]){t.set(e,a,false)}}}return e}function Rx(e){var n,t,i,r,s,o,a,u,c,l;let f=qx(e,e.component.data.sources);const{outputNodes:d,outputNodeRefCounts:p}=e.component.data;const g=e.data;const m=g&&(Md(g)||zd(g)||Nd(g));const h=!m&&e.parent?e.parent.component.data.ancestorParse.clone():new _d;if(Md(g)){if(Ld(g)){f=new dv(f,g.sequence)}else if(Ud(g)){f=new fv(f,g.graticule)}h.parseNothing=true}else if(((n=g===null||g===void 0?void 0:g.format)===null||n===void 0?void 0:n.parse)===null){h.parseNothing=true}f=(t=cv.makeExplicit(f,e,h))!==null&&t!==void 0?t:f;f=new lv(f);const b=e.parent&&tx(e.parent);if(ZO(e)||ex(e)){if(b){f=(i=Zy.makeFromEncoding(f,e))!==null&&i!==void 0?i:f}}if(e.transforms.length>0){f=Ux(f,e,h)}const y=uv(e);const v=av(e);f=(r=cv.makeWithAncestors(f,{},Object.assign(Object.assign({},y),v),h))!==null&&r!==void 0?r:f;if(ZO(e)){f=lx.parseAll(f,e);f=fx.parseAll(f,e)}if(ZO(e)||ex(e)){if(!b){f=(s=Zy.makeFromEncoding(f,e))!==null&&s!==void 0?s:f}f=(o=ip.makeFromEncoding(f,e))!==null&&o!==void 0?o:f;f=Cb.parseAllForSortIndex(f,e)}const O=e.getDataName(Rd.Raw);const x=new np(f,O,Rd.Raw,p);d[O]=x;f=x;if(ZO(e)){const n=tv.makeFromEncoding(f,e);if(n){f=n;if(Tg(e)){f=new lv(f)}}f=(a=dx.makeFromEncoding(f,e))!==null&&a!==void 0?a:f;f=(u=zv.makeFromEncoding(f,e))!==null&&u!==void 0?u:f}if(ZO(e)){f=(c=ax.make(f,e))!==null&&c!==void 0?c:f}const w=e.getDataName(Rd.Main);const j=new np(f,w,Rd.Main,p);d[w]=j;f=j;if(ZO(e)){ib(e,j)}let F=null;if(ex(e)){const n=e.getName("facet");f=(l=Mx(f,e.facet))!==null&&l!==void 0?l:f;F=new iv(f,e,n,j.getSource());d[n]=F}return Object.assign(Object.assign({},e.component.data),{outputNodes:d,outputNodeRefCounts:p,raw:x,main:j,facetRoot:F,ancestorParse:h})}class Ix extends ix{constructor(e,n,t,i){var r,s,o,a;super(e,"concat",n,t,i,e.resolve);if(((s=(r=e.resolve)===null||r===void 0?void 0:r.axis)===null||s===void 0?void 0:s.x)==="shared"||((a=(o=e.resolve)===null||o===void 0?void 0:o.axis)===null||a===void 0?void 0:a.y)==="shared"){Vr(Si)}this.children=this.getChildren(e).map(((e,n)=>Uw(e,this,this.getName(`concat_${n}`),undefined,i)))}parseData(){this.component.data=Rx(this);for(const e of this.children){e.parseData()}}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of N(e.component.selection)){this.component.selection[n]=e.component.selection[n]}}}parseMarkGroup(){for(const e of this.children){e.parseMarkGroup()}}parseAxesAndHeaders(){for(const e of this.children){e.parseAxesAndHeaders()}}getChildren(e){if(Cl(e)){return e.vconcat}else if(Sl(e)){return e.hconcat}return e.concat}parseLayoutSize(){Ex(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,n)=>n.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){this.children.forEach((e=>e.assembleSignals()));return[]}assembleLayoutSignals(){const e=Yb(this);for(const n of this.children){e.push(...n.assembleLayoutSignals())}return e}assembleSelectionData(e){return this.children.reduce(((e,n)=>n.assembleSelectionData(e)),e)}assembleMarks(){return this.children.map((e=>{const n=e.assembleTitle();const t=e.assembleGroupStyle();const i=e.assembleGroupEncodeEntry(false);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:e.getName("group")},n?{title:n}:{}),t?{style:t}:{}),i?{encode:{update:i}}:{}),e.assembleGroup())}))}assembleGroupStyle(){return undefined}assembleDefaultLayout(){const e=this.layout.columns;return Object.assign(Object.assign({},e!=null?{columns:e}:{}),{bounds:"full",align:"each"})}}function Wx(e){return e===false||e===null}const Hx=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},sc),{labelExpr:1,encode:1});const Gx=N(Hx);class Yx extends kd{constructor(e={},n={},t=false){super();this.explicit=e;this.implicit=n;this.mainExtracted=t}clone(){return new Yx(b(this.explicit),b(this.implicit),this.mainExtracted)}hasAxisPart(e){if(e==="axis"){return true}if(e==="grid"||e==="title"){return!!this.get(e)}return!Wx(this.get(e))}hasOrientSignalRef(){return Tt(this.explicit.orient)}}function Kx(e,n,t){var i;const{encoding:r,config:s}=e;const o=(i=Ru(r[n]))!==null&&i!==void 0?i:Ru(r[yn(n)]);const a=e.axis(n)||{};const{format:u,formatType:c}=a;if(Sa(c)){return Object.assign({text:za({fieldOrDatumDef:o,field:"datum.value",format:u,formatType:c,config:s})},t)}else if(u===undefined&&c===undefined&&s.customFormatTypes){if(du(o)==="quantitative"){if(xu(o)&&o.stack==="normalize"&&s.normalizedNumberFormatType){return Object.assign({text:za({fieldOrDatumDef:o,field:"datum.value",format:s.normalizedNumberFormat,formatType:s.normalizedNumberFormatType,config:s})},t)}else if(s.numberFormatType){return Object.assign({text:za({fieldOrDatumDef:o,field:"datum.value",format:s.numberFormat,formatType:s.numberFormatType,config:s})},t)}}if(du(o)==="temporal"&&s.timeFormatType&&fu(o)&&!o.timeUnit){return Object.assign({text:za({fieldOrDatumDef:o,field:"datum.value",format:s.timeFormat,formatType:s.timeFormatType,config:s})},t)}}return t}function Vx(e){return Un.reduce(((n,t)=>{if(e.component.scales[t]){n[t]=[tw(t,e)]}return n}),{})}const Qx={bottom:"top",top:"bottom",left:"right",right:"left"};function Xx(e){var n;const{axes:t,resolve:i}=e.component;const r={top:0,bottom:0,right:0,left:0};for(const s of e.children){s.parseAxesAndHeaders();for(const n of N(s.component.axes)){i.axis[n]=ey(e.component.resolve,n);if(i.axis[n]==="shared"){t[n]=Jx(t[n],s.component.axes[n]);if(!t[n]){i.axis[n]="independent";delete t[n]}}}}for(const s of Un){for(const o of e.children){if(!o.component.axes[s]){continue}if(i.axis[s]==="independent"){t[s]=((n=t[s])!==null&&n!==void 0?n:[]).concat(o.component.axes[s]);for(const e of o.component.axes[s]){const{value:n,explicit:t}=e.getWithExplicit("orient");if(Tt(n)){continue}if(r[n]>0&&!t){const t=Qx[n];if(r[n]>r[t]){e.set("orient",t,false)}}r[n]++}}delete o.component.axes[s]}if(i.axis[s]==="independent"&&t[s]&&t[s].length>1){for(const e of t[s]){if(!!e.get("grid")&&!e.explicit.grid){e.implicit.grid=false}}}}}function Jx(e,n){if(e){if(e.length!==n.length){return undefined}const t=e.length;for(let i=0;ie.clone()))}return e}function Zx(e,n){for(const t of Gx){const i=Pd(e.getWithExplicit(t),n.getWithExplicit(t),t,"axis",((e,n)=>{switch(t){case"title":return li(e,n);case"gridScale":return{explicit:e.explicit,value:X(e.value,n.value)}}return Bd(e,n,t,"axis")}));e.setWithExplicit(t,i)}return e}function ew(e,n,t,i,r){if(n==="disable"){return t!==undefined}t=t||{};switch(n){case"titleAngle":case"labelAngle":return e===(Tt(t.labelAngle)?t.labelAngle:ie(t.labelAngle));case"values":return!!t.values;case"encode":return!!t.encoding||!!t.labelAngle;case"title":if(e===Db(i,r)){return true}}return e===t[n]}const nw=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function tw(e,n){var t,i,r;let s=n.axis(e);const o=new Yx;const a=Ru(n.encoding[e]);const{mark:u,config:c}=n;const l=(s===null||s===void 0?void 0:s.orient)||((t=c[e==="x"?"axisX":"axisY"])===null||t===void 0?void 0:t.orient)||((i=c.axis)===null||i===void 0?void 0:i.orient)||Fb(e);const f=n.getScaleComponent(e).get("type");const d=db(e,f,l,n.config);const p=s!==undefined?!s:gb("disable",c.style,s===null||s===void 0?void 0:s.style,d).configValue;o.set("disable",p,s!==undefined);if(p){return o}s=s||{};const g=yb(a,s,e,c.style,d);const m={fieldOrDatumDef:a,axis:s,channel:e,model:n,scaleType:f,orient:l,labelAngle:g,mark:u,config:c};for(const y of Gx){const t=y in mb?mb[y](m):ac(y)?s[y]:undefined;const i=t!==undefined;const r=ew(t,y,s,n,e);if(i&&r){o.set(y,t,r)}else{const{configValue:e=undefined,configFrom:n=undefined}=ac(y)&&y!=="values"?gb(y,c.style,s.style,d):{};const a=e!==undefined;if(i&&!a){o.set(y,t,r)}else if(!(n==="vgAxisConfig")||nw.has(y)&&a||tc(e)||Tt(e)){o.set(y,e,false)}}}const h=(r=s.encoding)!==null&&r!==void 0?r:{};const b=ic.reduce(((t,i)=>{var r;if(!o.hasAxisPart(i)){return t}const s=Jb((r=h[i])!==null&&r!==void 0?r:{},n);const a=i==="labels"?Kx(n,e,s):s;if(a!==undefined&&!z(a)){t[i]={update:a}}return t}),{});if(!z(b)){o.set("encode",b,!!s.encoding||s.labelAngle!==undefined)}return o}function iw({encoding:e,size:n}){for(const t of Un){const i=vn(t);if(Bl(n[i])){if(gu(e[t])){delete n[i];Vr(br(i))}}}return n}function rw(e,n,t){const i=Pt(e);const r=ii("orient",i,t);i.orient=uw(i.type,n,r);if(r!==undefined&&r!==i.orient){Vr(sr(i.orient,r))}if(i.type==="bar"&&i.orient){const e=ii("cornerRadiusEnd",i,t);if(e!==undefined){const t=i.orient==="horizontal"&&n.x2||i.orient==="vertical"&&n.y2?["cornerRadius"]:ma[i.orient];for(const n of t){i[n]=e}if(i.cornerRadiusEnd!==undefined){delete i.cornerRadiusEnd}}}const s=ii("opacity",i,t);if(s===undefined){i.opacity=ow(i.type,n)}const o=ii("cursor",i,t);if(o===undefined){i.cursor=sw(i,n,t)}return i}function sw(e,n,t){if(n.href||e.href||ii("href",e,t)){return"pointer"}return e.cursor}function ow(e,n){if(F([Wo,Ko,Qo,Xo],e)){if(!bc(n)){return.7}}return undefined}function aw(e,n,{graticule:t}){if(t){return false}const i=ri("filled",e,n);const r=e.type;return X(i,r!==Wo&&r!==Io&&r!==Go)}function uw(e,n,t){switch(e){case Wo:case Qo:case Xo:case Yo:case Ho:case Ro:return undefined}const{x:i,y:r,x2:s,y2:o}=n;switch(e){case Uo:if(fu(i)&&(kt(i.bin)||fu(r)&&r.aggregate&&!i.aggregate)){return"vertical"}if(fu(r)&&(kt(r.bin)||fu(i)&&i.aggregate&&!r.aggregate)){return"horizontal"}if(o||s){if(t){return t}if(!s){if(fu(i)&&i.type===Ys&&!At(i.bin)||hu(i)){if(fu(r)&&kt(r.bin)){return"horizontal"}}return"vertical"}if(!o){if(fu(r)&&r.type===Ys&&!At(r.bin)||hu(r)){if(fu(i)&&kt(i.bin)){return"vertical"}}return"horizontal"}}case Go:if(s&&!(fu(i)&&kt(i.bin))&&o&&!(fu(r)&&kt(r.bin))){return undefined}case qo:if(o){if(fu(r)&&kt(r.bin)){return"horizontal"}else{return"vertical"}}else if(s){if(fu(i)&&kt(i.bin)){return"vertical"}else{return"horizontal"}}else if(e===Go){if(i&&!r){return"vertical"}else if(r&&!i){return"horizontal"}}case Io:case Ko:{const n=gu(i);const s=gu(r);if(t){return t}else if(n&&!s){return e!=="tick"?"horizontal":"vertical"}else if(!n&&s){return e!=="tick"?"vertical":"horizontal"}else if(n&&s){const n=i;const t=r;const s=n.type===Vs;const o=t.type===Vs;if(s&&!o){return e!=="tick"?"vertical":"horizontal"}else if(!s&&o){return e!=="tick"?"horizontal":"vertical"}if(!n.aggregate&&t.aggregate){return e!=="tick"?"vertical":"horizontal"}else if(n.aggregate&&!t.aggregate){return e!=="tick"?"horizontal":"vertical"}return"vertical"}else{return undefined}}}return"vertical"}const cw={vgMark:"arc",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),zp("x",e,{defaultPos:"mid"})),zp("y",e,{defaultPos:"mid"})),Gp(e,"radius")),Gp(e,"theta"))};const lw={vgMark:"area",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),Up("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="horizontal"})),Up("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="vertical"})),ig(e))};const fw={vgMark:"rect",encodeEntry:e=>Object.assign(Object.assign(Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Gp(e,"x")),Gp(e,"y"))};const dw={vgMark:"shape",encodeEntry:e=>Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),postEncodingTransform:e=>{const{encoding:n}=e;const t=n.shape;const i=Object.assign({type:"geoshape",projection:e.projectionName()},t&&fu(t)&&t.type===Xs?{field:Du(t,{expr:"datum"})}:{});return[i]}};const pw={vgMark:"image",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),Gp(e,"x")),Gp(e,"y")),jp(e,"url"))};const gw={vgMark:"line",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),zp("x",e,{defaultPos:"mid"})),zp("y",e,{defaultPos:"mid"})),Ep("size",e,{vgChannel:"strokeWidth"})),ig(e))};const mw={vgMark:"trail",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),zp("x",e,{defaultPos:"mid"})),zp("y",e,{defaultPos:"mid"})),Ep("size",e)),ig(e))};function hw(e,n){const{config:t}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),zp("x",e,{defaultPos:"mid"})),zp("y",e,{defaultPos:"mid"})),Ep("size",e)),Ep("angle",e)),bw(e,t,n))}function bw(e,n,t){if(t){return{shape:{value:t}}}return Ep("shape",e)}const yw={vgMark:"symbol",encodeEntry:e=>hw(e)};const vw={vgMark:"symbol",encodeEntry:e=>hw(e,"circle")};const Ow={vgMark:"symbol",encodeEntry:e=>hw(e,"square")};const xw={vgMark:"rect",encodeEntry:e=>Object.assign(Object.assign(Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Gp(e,"x")),Gp(e,"y"))};const ww={vgMark:"rule",encodeEntry:e=>{const{markDef:n}=e;const t=n.orient;if(!e.encoding.x&&!e.encoding.y&&!e.encoding.latitude&&!e.encoding.longitude){return{}}return Object.assign(Object.assign(Object.assign(Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Up("x",e,{defaultPos:t==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:t!=="vertical"})),Up("y",e,{defaultPos:t==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:t!=="horizontal"})),Ep("size",e,{vgChannel:"strokeWidth"}))}};const jw={vgMark:"text",encodeEntry:e=>{const{config:n,encoding:t}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Zp(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),zp("x",e,{defaultPos:"mid"})),zp("y",e,{defaultPos:"mid"})),jp(e)),Ep("size",e,{vgChannel:"fontSize"})),Ep("angle",e)),sg("align",Fw(e.markDef,t,n))),sg("baseline",$w(e.markDef,t,n))),zp("radius",e,{defaultPos:null})),zp("theta",e,{defaultPos:null}))}};function Fw(e,n,t){const i=ii("align",e,t);if(i===undefined){return"center"}return undefined}function $w(e,n,t){const i=ii("baseline",e,t);if(i===undefined){return"middle"}return undefined}const Dw={vgMark:"rect",encodeEntry:e=>{const{config:n,markDef:t}=e;const i=t.orient;const r=i==="horizontal"?"width":"height";const s=i==="horizontal"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Zp(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),zp("x",e,{defaultPos:"mid",vgChannel:"xc"})),zp("y",e,{defaultPos:"mid",vgChannel:"yc"})),Ep("size",e,{defaultValue:Aw(e),vgChannel:r})),{[s]:Xt(ii("thickness",t,n))})}};function Aw(e){var n;const{config:t,markDef:i}=e;const{orient:s}=i;const o=s==="horizontal"?"width":"height";const a=e.getScaleComponent(s==="horizontal"?"x":"y");const u=(n=ii("size",i,t,{vgChannel:o}))!==null&&n!==void 0?n:t.tick.bandSize;if(u!==undefined){return u}else{const e=a?a.get("range"):undefined;if(e&&Mt(e)&&(0,r.Et)(e.step)){return e.step*3/4}const n=ql(t.view,o);return n*3/4}}const kw={arc:cw,area:lw,bar:fw,circle:vw,geoshape:dw,image:pw,line:gw,point:yw,rect:xw,rule:ww,square:Ow,text:jw,tick:Dw,trail:mw};function Cw(e){if(F([Io,qo,Vo],e.mark)){const n=$c(e.mark,e.encoding);if(n.length>0){return Ew(e,n)}}else if(e.mark===Uo){const n=Ht.some((n=>ii(n,e.markDef,e.config)));if(e.stack&&!e.fieldDef("size")&&n){return Pw(e)}}return zw(e)}const Sw="faceted_path_";function Ew(e,n){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:Sw+e.requestDataName(Rd.Main),data:e.requestDataName(Rd.Main),groupby:n}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:zw(e,{fromPrefix:Sw})}]}const Bw="stack_group_";function Pw(e){var n;const[t]=zw(e,{fromPrefix:Bw});const i=e.scaleName(e.stack.fieldChannel);const r=(n={})=>e.vgField(e.stack.fieldChannel,n);const s=(e,n)=>{const t=[r({prefix:"min",suffix:"start",expr:n}),r({prefix:"max",suffix:"start",expr:n}),r({prefix:"min",suffix:"end",expr:n}),r({prefix:"max",suffix:"end",expr:n})];return`${e}(${t.map((e=>`scale('${i}',${e})`)).join(",")})`};let o;let a;if(e.stack.fieldChannel==="x"){o=Object.assign(Object.assign({},v(t.encode.update,["y","yc","y2","height",...Ht])),{x:{signal:s("min","datum")},x2:{signal:s("max","datum")},clip:{value:true}});a={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}};t.encode.update=Object.assign(Object.assign({},O(t.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})}else{o=Object.assign(Object.assign({},v(t.encode.update,["x","xc","x2","width"])),{y:{signal:s("min","datum")},y2:{signal:s("max","datum")},clip:{value:true}});a={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}};t.encode.update=Object.assign(Object.assign({},O(t.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}})}for(const l of Ht){const n=ri(l,e.markDef,e.config);if(t.encode.update[l]){o[l]=t.encode.update[l];delete t.encode.update[l]}else if(n){o[l]=Xt(n)}if(n){t.encode.update[l]={value:0}}}const u=[];if(((n=e.stack.groupbyChannels)===null||n===void 0?void 0:n.length)>0){for(const n of e.stack.groupbyChannels){const t=e.fieldDef(n);const i=Du(t);if(i){u.push(i)}if((t===null||t===void 0?void 0:t.bin)||(t===null||t===void 0?void 0:t.timeUnit)){u.push(Du(t,{binSuffix:"end"}))}}}const c=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"];o=c.reduce(((n,i)=>{if(t.encode.update[i]){return Object.assign(Object.assign({},n),{[i]:t.encode.update[i]})}else{const t=ri(i,e.markDef,e.config);if(t!==undefined){return Object.assign(Object.assign({},n),{[i]:Xt(t)})}else{return n}}}),o);if(o.stroke){o.strokeForeground={value:true};o.strokeOffset={value:0}}return[{type:"group",from:{facet:{data:e.requestDataName(Rd.Main),name:Bw+e.requestDataName(Rd.Main),groupby:u,aggregate:{fields:[r({suffix:"start"}),r({suffix:"start"}),r({suffix:"end"}),r({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:a},marks:[t]}]}]}function _w(e){var n;const{encoding:t,stack:i,mark:s,markDef:o,config:a}=e;const u=t.order;if(!(0,r.cy)(u)&&vu(u)&&j(u.value)||!u&&j(ii("order",o,a))){return undefined}else if(((0,r.cy)(u)||fu(u))&&!i){return ai(u,{expr:"datum"})}else if(ea(s)){const i=o.orient==="horizontal"?"y":"x";const s=t[i];if(fu(s)){const t=s.sort;if((0,r.cy)(t)){return{field:Du(s,{prefix:i,suffix:"sort_index",expr:"datum"})}}else if(Ka(t)){return{field:Du({aggregate:bc(e.encoding)?t.op:undefined,field:t.field},{expr:"datum"})}}else if(Ya(t)){const n=e.fieldDef(t.encoding);return{field:Du(n,{expr:"datum"}),order:t.order}}else if(t===null){return undefined}else{return{field:Du(s,{binSuffix:((n=e.stack)===null||n===void 0?void 0:n.impute)?"mid":undefined,expr:"datum"})}}}return undefined}return undefined}function zw(e,n={fromPrefix:""}){const{mark:t,markDef:i,encoding:r,config:s}=e;const o=X(i.clip,Nw(e),Tw(e));const a=ti(i);const u=r.key;const c=_w(e);const l=Mw(e);const f=ii("aria",i,s);const d=kw[t].postEncodingTransform?kw[t].postEncodingTransform(e):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:e.getName("marks"),type:kw[t].vgMark},o?{clip:true}:{}),a?{style:a}:{}),u?{key:u.field}:{}),c?{sort:c}:{}),l?l:{}),f===false?{aria:f}:{}),{from:{data:n.fromPrefix+e.requestDataName(Rd.Main)},encode:{update:kw[t].encodeEntry(e)}}),d?{transform:d}:{})]}function Nw(e){const n=e.getScaleComponent("x");const t=e.getScaleComponent("y");return(n===null||n===void 0?void 0:n.get("selectionExtent"))||(t===null||t===void 0?void 0:t.get("selectionExtent"))?true:undefined}function Tw(e){const n=e.component.projection;return n&&!n.isFit?true:undefined}function Mw(e){if(!e.component.selection)return null;const n=N(e.component.selection).length;let t=n;let i=e.parent;while(i&&t===0){t=N(i.component.selection).length;i=i.parent}return t?{interactive:n>0||!!e.encoding.tooltip}:null}class Lw extends rx{constructor(e,n,t,i={},r){var s;super(e,"unit",n,t,r,undefined,Pl(e)?e.view:undefined);this.specifiedScales={};this.specifiedAxes={};this.specifiedLegends={};this.specifiedProjection={};this.selection=[];this.children=[];const o=ia(e.mark)?Object.assign({},e.mark):{type:e.mark};const a=o.type;if(o.filled===undefined){o.filled=aw(o,r,{graticule:e.data&&Ud(e.data)})}const u=this.encoding=Oc(e.encoding||{},a,o.filled,r);this.markDef=rw(o,u,r);this.size=iw({encoding:u,size:Pl(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i});this.stack=xf(a,u);this.specifiedScales=this.initScales(a,u);this.specifiedAxes=this.initAxes(u);this.specifiedLegends=this.initLegends(u);this.specifiedProjection=e.projection;this.selection=((s=e.params)!==null&&s!==void 0?s:[]).filter((e=>Fl(e)))}get hasProjection(){const{encoding:e}=this;const n=this.mark===Jo;const t=e&&Ke.some((n=>bu(e[n])));return n||t}scaleDomain(e){const n=this.specifiedScales[e];return n?n.domain:undefined}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,n){return ut.reduce(((e,t)=>{var i;const r=Ru(n[t]);if(r){e[t]=this.initScale((i=r.scale)!==null&&i!==void 0?i:{})}return e}),{})}initScale(e){const{domain:n,range:t}=e;const i=Pt(e);if((0,r.cy)(n)){i.domain=n.map(Vt)}if((0,r.cy)(t)){i.range=t.map(Vt)}return i}initAxes(e){return Un.reduce(((n,t)=>{const i=e[t];if(bu(i)||t===ce&&bu(e.x2)||t===le&&bu(e.y2)){const e=bu(i)?i.axis:undefined;n[t]=e?this.initAxis(Object.assign({},e)):e}return n}),{})}initAxis(e){const n=N(e);const t={};for(const i of n){const n=e[i];t[i]=tc(n)?Kt(n):Vt(n)}return t}initLegends(e){return rt.reduce(((n,t)=>{const i=Ru(e[t]);if(i&&ot(t)){const e=i.legend;n[t]=e?Pt(e):e}return n}),{})}parseData(){this.component.data=Rx(this)}parseLayoutSize(){_x(this)}parseSelections(){this.component.selection=eb(this,this.selection)}parseMarkGroup(){this.component.mark=Cw(this)}parseAxesAndHeaders(){this.component.axes=Vx(this)}assembleSelectionTopLevelSignals(e){return Kd(this,e)}assembleSignals(){return[...cb(this),...Gd(this,[])]}assembleSelectionData(e){return Vd(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return Yb(this)}assembleMarks(){var e;let n=(e=this.component.mark)!==null&&e!==void 0?e:[];if(!this.parent||!tx(this.parent)){n=Qd(this,n)}return n.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};if(e!==undefined){return e}if(this.encoding.x||this.encoding.y){return"cell"}else{return undefined}}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return gc(this.encoding,e)}fieldDef(e){const n=this.encoding[e];return Uu(n)}typedFieldDef(e){const n=this.fieldDef(e);if(yu(n)){return n}return null}}class qw extends ix{constructor(e,n,t,i,r){super(e,"layer",n,t,r,e.resolve,e.view);const s=Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{});this.children=e.layer.map(((e,n)=>{if(cf(e)){return new qw(e,this,this.getName(`layer_${n}`),s,r)}else if(fc(e)){return new Lw(e,this,this.getName(`layer_${n}`),s,r)}throw new Error(fi(e))}))}parseData(){this.component.data=Rx(this);for(const e of this.children){e.parseData()}}parseLayoutSize(){Sx(this)}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const n of N(e.component.selection)){this.component.selection[n]=e.component.selection[n]}}}parseMarkGroup(){for(const e of this.children){e.parseMarkGroup()}}parseAxesAndHeaders(){Xx(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,n)=>n.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){return this.children.reduce(((e,n)=>e.concat(n.assembleSignals())),cb(this))}assembleLayoutSignals(){return this.children.reduce(((e,n)=>e.concat(n.assembleLayoutSignals())),Yb(this))}assembleSelectionData(e){return this.children.reduce(((e,n)=>n.assembleSelectionData(e)),e)}assembleGroupStyle(){const e=new Set;for(const t of this.children){for(const n of(0,r.YO)(t.assembleGroupStyle())){e.add(n)}}const n=Array.from(e);return n.length>1?n:n.length===1?n[0]:undefined}assembleTitle(){let e=super.assembleTitle();if(e){return e}for(const n of this.children){e=n.assembleTitle();if(e){return e}}return undefined}assembleLayout(){return null}assembleMarks(){return Xd(this,this.children.flatMap((e=>e.assembleMarks())))}assembleLegends(){return this.children.reduce(((e,n)=>e.concat(n.assembleLegends())),_y(this))}}function Uw(e,n,t,i,r){if(Ja(e)){return new Tx(e,n,t,r)}else if(cf(e)){return new qw(e,n,t,i,r)}else if(fc(e)){return new Lw(e,n,t,i,r)}else if(Al(e)){return new Ix(e,n,t,r)}throw new Error(fi(e))}var Rw=undefined&&undefined.__rest||function(e,n){var t={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0)t[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r{if((e.name==="width"||e.name==="height")&&e.value!==undefined){n[e.name]=+e.value;return false}return true}));const{params:f}=n,d=Rw(n,["params"]);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},e.description?{description:e.description}:{}),d),a?{title:a}:{}),u?{style:u}:{}),c?{encode:{update:c}}:{}),{data:s}),o.length>0?{projections:o}:{}),e.assembleGroup([...l,...e.assembleSelectionTopLevelSignals([]),...Dl(f)])),r?{config:r}:{}),i?{usermeta:i}:{})}const Gw=i.rE},18729:e=>{var n=function(){"use strict";function e(e,n){return n!=null&&e instanceof n}var n;try{n=Map}catch(l){n=function(){}}var t;try{t=Set}catch(l){t=function(){}}var i;try{i=Promise}catch(l){i=function(){}}function r(s,o,a,u,l){if(typeof o==="object"){a=o.depth;u=o.prototype;l=o.includeNonEnumerable;o=o.circular}var f=[];var d=[];var p=typeof Buffer!="undefined";if(typeof o=="undefined")o=true;if(typeof a=="undefined")a=Infinity;function g(s,a){if(s===null)return null;if(a===0)return s;var m;var h;if(typeof s!="object"){return s}if(e(s,n)){m=new n}else if(e(s,t)){m=new t}else if(e(s,i)){m=new i((function(e,n){s.then((function(n){e(g(n,a-1))}),(function(e){n(g(e,a-1))}))}))}else if(r.__isArray(s)){m=[]}else if(r.__isRegExp(s)){m=new RegExp(s.source,c(s));if(s.lastIndex)m.lastIndex=s.lastIndex}else if(r.__isDate(s)){m=new Date(s.getTime())}else if(p&&Buffer.isBuffer(s)){if(Buffer.allocUnsafe){m=Buffer.allocUnsafe(s.length)}else{m=new Buffer(s.length)}s.copy(m);return m}else if(e(s,Error)){m=Object.create(s)}else{if(typeof u=="undefined"){h=Object.getPrototypeOf(s);m=Object.create(h)}else{m=Object.create(u);h=u}}if(o){var b=f.indexOf(s);if(b!=-1){return d[b]}f.push(s);d.push(m)}if(e(s,n)){s.forEach((function(e,n){var t=g(n,a-1);var i=g(e,a-1);m.set(t,i)}))}if(e(s,t)){s.forEach((function(e){var n=g(e,a-1);m.add(n)}))}for(var y in s){var v;if(h){v=Object.getOwnPropertyDescriptor(h,y)}if(v&&v.set==null){continue}m[y]=g(s[y],a-1)}if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(s);for(var y=0;y{n.r(t);n.d(t,{blockComment:()=>y,blockUncomment:()=>k,copyLineDown:()=>tn,copyLineUp:()=>en,cursorCharBackward:()=>ue,cursorCharBackwardLogical:()=>me,cursorCharForward:()=>ce,cursorCharForwardLogical:()=>he,cursorCharLeft:()=>ie,cursorCharRight:()=>ae,cursorDocEnd:()=>Dt,cursorDocStart:()=>Et,cursorGroupBackward:()=>we,cursorGroupForward:()=>ke,cursorGroupForwardWin:()=>ve,cursorGroupLeft:()=>ge,cursorGroupRight:()=>ye,cursorLineBoundaryBackward:()=>Je,cursorLineBoundaryForward:()=>Ge,cursorLineBoundaryLeft:()=>Pe,cursorLineBoundaryRight:()=>He,cursorLineDown:()=>Ie,cursorLineEnd:()=>ze,cursorLineStart:()=>We,cursorLineUp:()=>Oe,cursorMatchingBracket:()=>je,cursorPageDown:()=>Ne,cursorPageUp:()=>Fe,cursorSubwordBackward:()=>De,cursorSubwordForward:()=>Ee,cursorSyntaxLeft:()=>Me,cursorSyntaxRight:()=>be,defaultKeymap:()=>wn,deleteCharBackward:()=>Ft,deleteCharBackwardStrict:()=>Nt,deleteCharForward:()=>Ut,deleteGroupBackward:()=>Jt,deleteGroupForward:()=>Pt,deleteLine:()=>nn,deleteLineBoundaryBackward:()=>zt,deleteLineBoundaryForward:()=>_t,deleteToLineEnd:()=>Ht,deleteToLineStart:()=>Wt,deleteTrailingWhitespace:()=>jt,emacsStyleKeymap:()=>yn,history:()=>T,historyField:()=>O,historyKeymap:()=>ee,indentLess:()=>hn,indentMore:()=>dn,indentSelection:()=>fn,indentWithTab:()=>Sn,insertBlankLine:()=>an,insertNewline:()=>rn,insertNewlineAndIndent:()=>sn,insertNewlineKeepIndent:()=>on,insertTab:()=>gn,invertedEffects:()=>L,isolateHistory:()=>x,lineComment:()=>m,lineUncomment:()=>p,moveLineDown:()=>Yt,moveLineUp:()=>Xt,redo:()=>V,redoDepth:()=>J,redoSelection:()=>N,selectAll:()=>Mt,selectCharBackward:()=>Ze,selectCharBackwardLogical:()=>tt,selectCharForward:()=>Ye,selectCharForwardLogical:()=>et,selectCharLeft:()=>Qe,selectCharRight:()=>Xe,selectDocEnd:()=>Lt,selectDocStart:()=>xt,selectGroupBackward:()=>st,selectGroupForward:()=>lt,selectGroupForwardWin:()=>it,selectGroupLeft:()=>rt,selectGroupRight:()=>ot,selectLine:()=>bt,selectLineBoundaryBackward:()=>St,selectLineBoundaryForward:()=>wt,selectLineBoundaryLeft:()=>vt,selectLineBoundaryRight:()=>At,selectLineDown:()=>pt,selectLineEnd:()=>Bt,selectLineStart:()=>Ct,selectLineUp:()=>mt,selectMatchingBracket:()=>qe,selectPageDown:()=>kt,selectPageUp:()=>yt,selectParentSyntax:()=>Tt,selectSubwordBackward:()=>ut,selectSubwordForward:()=>ct,selectSyntaxLeft:()=>ft,selectSyntaxRight:()=>dt,simplifySelection:()=>Ot,splitLine:()=>qt,standardKeymap:()=>kn,temporarilySetTabFocusMode:()=>pn,toggleBlockComment:()=>g,toggleBlockCommentByLine:()=>w,toggleComment:()=>f,toggleLineComment:()=>h,toggleTabFocusMode:()=>mn,transposeChars:()=>Kt,undo:()=>R,undoDepth:()=>G,undoSelection:()=>F});var r=n(71674);var o=n.n(r);var l=n(22819);var s=n.n(l);var i=n(4452);var a=n.n(i);var c=n(66575);var u=n.n(c);const f=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=S(e.state,n.from);return r.line?h(e):r.block?w(e):false};function d(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return false;let o=e(t,n);if(!o)return false;r(n.update(o));return true}}const h=d(E,0);const m=d(E,1);const p=d(E,2);const g=d(B,0);const y=d(B,1);const k=d(B,2);const w=d(((e,t)=>B(e,t,C(t))),0);function S(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const v=50;function A(e,{open:t,close:n},r,o){let l=e.sliceDoc(r-v,r);let s=e.sliceDoc(o,o+v);let i=/\s*$/.exec(l)[0].length,a=/^\s*/.exec(s)[0].length;let c=l.length-i;if(l.slice(c-t.length,c)==t&&s.slice(a,a+n.length)==n){return{open:{pos:r-i,margin:i&&1},close:{pos:o+a,margin:a&&1}}}let u,f;if(o-r<=2*v){u=f=e.sliceDoc(r,o)}else{u=e.sliceDoc(r,r+v);f=e.sliceDoc(o-v,o)}let d=/^\s*/.exec(u)[0].length,h=/\s*$/.exec(f)[0].length;let m=f.length-h-n.length;if(u.slice(d,d+t.length)==t&&f.slice(m,m+n.length)==n){return{open:{pos:r+d+t.length,margin:/\s/.test(u.charAt(d+t.length))?1:0},close:{pos:o-h-n.length,margin:/\s/.test(f.charAt(m-1))?1:0}}}return null}function C(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from);let o=n.to<=r.to?r:e.doc.lineAt(n.to);if(o.from>r.from&&o.from==n.to)o=n.to==r.to+1?r:e.doc.lineAt(n.to-1);let l=t.length-1;if(l>=0&&t[l].to>r.from)t[l].to=o.to;else t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:o.to})}return t}function B(e,t,n=t.selection.ranges){let r=n.map((e=>S(t,e.from).block));if(!r.every((e=>e)))return null;let o=n.map(((e,n)=>A(t,r[n],e.from,e.to)));if(e!=2&&!o.every((e=>e))){return{changes:t.changes(n.map(((e,t)=>{if(o[t])return[];return[{from:e.from,insert:r[t].open+" "},{from:e.to,insert:" "+r[t].close}]})))}}else if(e!=1&&o.some((e=>e))){let e=[];for(let t=0,n;to&&(l==s||s>e.from)){o=e.from;let t=/^\s*/.exec(e.text)[0].length;let l=t==e.length;let s=e.text.slice(t,t+i.length)==i?t:-1;if(te.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:o,indent:l,empty:s,single:i}of r)if(i||!s)e.push({from:t.from+l,insert:o+" "});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}else if(e!=1&&r.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:n,token:o}of r)if(n>=0){let r=t.from+n,l=r+o.length;if(t.text[l-t.from]==" ")l++;e.push({from:r,to:l})}return{changes:e}}return null}const D=r.Annotation.define();const x=r.Annotation.define();const L=r.Facet.define();const M=r.Facet.define({combine(e){return(0,r.combineConfig)(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}});const b=r.StateField.define({create(){return Z.empty},update(e,t){let n=t.state.facet(M);let o=t.annotation(D);if(o){let r=P.fromTransaction(t,o.selection),l=o.side;let s=l==0?e.undone:e.done;if(r)s=H(s,s.length,n.minDepth,r);else s=K(s,t.startState.selection);return new Z(l==0?o.rest:s,l==0?s:o.rest)}let l=t.annotation(x);if(l=="full"||l=="before")e=e.isolate();if(t.annotation(r.Transaction.addToHistory)===false)return!t.changes.empty?e.addMapping(t.changes.desc):e;let s=P.fromTransaction(t);let i=t.annotation(r.Transaction.time),a=t.annotation(r.Transaction.userEvent);if(s)e=e.addChanges(s,i,a,n,t);else if(t.selection)e=e.addSelection(t.startState.selection,i,a,n.newGroupDelay);if(l=="full"||l=="after")e=e.isolate();return e},toJSON(e){return{done:e.done.map((e=>e.toJSON())),undone:e.undone.map((e=>e.toJSON()))}},fromJSON(e){return new Z(e.done.map(P.fromJSON),e.undone.map(P.fromJSON))}});function T(e={}){return[b,M.of(e),l.EditorView.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?R:e.inputType=="historyRedo"?V:null;if(!n)return false;e.preventDefault();return n(t)}})]}const O=b;function I(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return false;let o=n.field(b,false);if(!o)return false;let l=o.pop(e,n,t);if(!l)return false;r(l);return true}}const R=I(0,false);const V=I(1,false);const F=I(0,true);const N=I(1,true);function U(e){return function(t){let n=t.field(b,false);if(!n)return 0;let r=e==0?n.done:n.undone;return r.length-(r.length&&!r[0].changes?1:0)}}const G=U(0);const J=U(1);class P{constructor(e,t,n,r,o){this.changes=e;this.effects=t;this.mapped=n;this.startSelection=r;this.selectionsAfter=o}setSelAfter(e){return new P(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map((e=>e.toJSON()))}}static fromJSON(e){return new P(e.changes&&r.ChangeSet.fromJSON(e.changes),[],e.mapped&&r.ChangeDesc.fromJSON(e.mapped),e.startSelection&&r.EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(r.EditorSelection.fromJSON))}static fromTransaction(e,t){let n=j;for(let r of e.startState.facet(L)){let t=r(e);if(t.length)n=n.concat(t)}if(!n.length&&e.changes.empty)return null;return new P(e.changes.invert(e.startState.doc),n,undefined,t||e.startState.selection,j)}static selection(e){return new P(undefined,j,undefined,undefined,e)}}function H(e,t,n,r){let o=t+1>n+20?t-n-1:0;let l=e.slice(o,t);l.push(r);return l}function W(e,t){let n=[],r=false;e.iterChangedRanges(((e,t)=>n.push(e,t)));t.iterChangedRanges(((e,t,o,l)=>{for(let s=0;s=e&&o<=t)r=true}}));return r}function z(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter(((e,n)=>e.empty!=t.ranges[n].empty)).length===0}function _(e,t){return!e.length?t:!t.length?e:e.concat(t)}const j=[];const q=200;function K(e,t){if(!e.length){return[P.selection([t])]}else{let n=e[e.length-1];let r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-q));if(r.length&&r[r.length-1].eq(t))return e;r.push(t);return H(e,e.length-1,1e9,n.setSelAfter(r))}}function $(e){let t=e[e.length-1];let n=e.slice();n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1));return n}function Q(e,t){if(!e.length)return e;let n=e.length,r=j;while(n){let o=X(e[n-1],t,r);if(o.changes&&!o.changes.empty||o.effects.length){let t=e.slice(0,n);t[n-1]=o;return t}else{t=o.mapped;n--;r=o.selectionsAfter}}return r.length?[P.selection(r)]:j}function X(e,t,n){let o=_(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):j,n);if(!e.changes)return P.selection(o);let l=e.changes.map(t),s=t.mapDesc(e.changes,true);let i=e.mapped?e.mapped.composeDesc(s):s;return new P(l,r.StateEffect.mapEffects(e.effects,t),i,e.startSelection.map(s),o)}const Y=/^(input\.type|delete)($|\.)/;class Z{constructor(e,t,n=0,r=undefined){this.done=e;this.undone=t;this.prevTime=n;this.prevUserEvent=r}isolate(){return this.prevTime?new Z(this.done,this.undone):this}addChanges(e,t,n,o,l){let s=this.done,i=s[s.length-1];if(i&&i.changes&&!i.changes.empty&&e.changes&&(!n||Y.test(n))&&(!i.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimen.empty?e.moveByChar(n,t):oe(n,t)))}function se(e){return e.textDirectionAt(e.state.selection.main.head)==l.Direction.LTR}const ie=e=>le(e,!se(e));const ae=e=>le(e,se(e));const ce=e=>le(e,true);const ue=e=>le(e,false);function fe(e,t,n){let o=t.head,l=e.doc.lineAt(o);if(o==(n?l.to:l.from))o=n?Math.min(e.doc.length,l.to+1):Math.max(0,l.from-1);else o=l.from+(0,r.findClusterBreak)(l.text,o-l.from,n);return r.EditorSelection.cursor(o,n?-1:1)}function de(e,t){return re(e,(n=>n.empty?fe(e.state,n,t):oe(n,t)))}const he=e=>de(e,true);const me=e=>de(e,false);function pe(e,t){return re(e,(n=>n.empty?e.moveByGroup(n,t):oe(n,t)))}const ge=e=>pe(e,!se(e));const ye=e=>pe(e,se(e));const ke=e=>pe(e,true);const we=e=>pe(e,false);function Se(e,t,n){let o=e.state.charCategorizer(t);let l=o(n),s=l!=r.CharCategory.Space;return e=>{let t=o(e);if(t!=r.CharCategory.Space)return s&&t==l;s=false;return true}}const ve=e=>re(e,(t=>t.empty?e.moveByChar(t,true,(n=>Se(e,t.head,n))):oe(t,true)));const Ae=typeof Intl!="undefined"&&Intl.Segmenter?new Intl.Segmenter(undefined,{granularity:"word"}):null;function Ce(e,t,n){let o=e.state.charCategorizer(t.from);let l=r.CharCategory.Space,s=t.from,i=0;let a=false,c=false,u=false;let f=t=>{if(a)return false;s+=n?t.length:-t.length;let f=o(t),d;if(f==r.CharCategory.Word&&t.charCodeAt(0)<128&&/[\W_]/.test(t))f=-1;if(l==r.CharCategory.Space)l=f;if(l!=f)return false;if(l==r.CharCategory.Word){if(t.toLowerCase()==t){if(!n&&c)return false;u=true}else if(u){if(n)return false;a=true}else{if(c&&n&&o(d=e.state.sliceDoc(s,s+1))==r.CharCategory.Word&&d.toLowerCase()==d)return false;c=true}}i++;return true};let d=e.moveByChar(t,n,(e=>{f(e);return f}));if(Ae&&l==r.CharCategory.Word&&d.from==t.from+i*(n?1:-1)){let o=Math.min(t.head,d.head),l=Math.max(t.head,d.head);let s=e.state.sliceDoc(o,l);if(s.length>1&&/[\u4E00-\uffff]/.test(s)){let e=Array.from(Ae.segment(s));if(e.length>1){if(n)return r.EditorSelection.cursor(t.head+e[1].index,-1);return r.EditorSelection.cursor(d.head+e[e.length-1].index,1)}}}return d}function Be(e,t){return re(e,(n=>n.empty?Ce(e,n,t):oe(n,t)))}const Ee=e=>Be(e,true);const De=e=>Be(e,false);function xe(e,t,n){if(t.type.prop(n))return true;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function Le(e,t,n){let o=(0,i.syntaxTree)(e).resolveInner(t.head);let l=n?c.NodeProp.closedBy:c.NodeProp.openedBy;for(let r=t.head;;){let t=n?o.childAfter(r):o.childBefore(r);if(!t)break;if(xe(e,t,l))o=t;else r=n?t.to:t.from}let s=o.type.prop(l),a,u;if(s&&(a=n?(0,i.matchBrackets)(e,o.from,1):(0,i.matchBrackets)(e,o.to,-1))&&a.matched)u=n?a.end.to:a.end.from;else u=n?o.to:o.from;return r.EditorSelection.cursor(u,n?-1:1)}const Me=e=>re(e,(t=>Le(e.state,t,!se(e))));const be=e=>re(e,(t=>Le(e.state,t,se(e))));function Te(e,t){return re(e,(n=>{if(!n.empty)return oe(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)}))}const Oe=e=>Te(e,false);const Ie=e=>Te(e,true);function Re(e){let t=e.scrollDOM.clientHeightr.empty?e.moveVertically(r,t,n.height):oe(r,t)));if(o.eq(r.selection))return false;let s;if(n.selfScroll){let t=e.coordsAtPos(r.selection.main.head);let i=e.scrollDOM.getBoundingClientRect();let a=i.top+n.marginTop,c=i.bottom-n.marginBottom;if(t&&t.top>a&&t.bottomVe(e,false);const Ne=e=>Ve(e,true);function Ue(e,t,n){let o=e.lineBlockAt(t.head),l=e.moveToLineBoundary(t,n);if(l.head==t.head&&l.head!=(n?o.to:o.from))l=e.moveToLineBoundary(t,n,false);if(!n&&l.head==o.from&&o.length){let n=/^\s*/.exec(e.state.sliceDoc(o.from,Math.min(o.from+100,o.to)))[0].length;if(n&&t.head!=o.from+n)l=r.EditorSelection.cursor(o.from+n)}return l}const Ge=e=>re(e,(t=>Ue(e,t,true)));const Je=e=>re(e,(t=>Ue(e,t,false)));const Pe=e=>re(e,(t=>Ue(e,t,!se(e))));const He=e=>re(e,(t=>Ue(e,t,se(e))));const We=e=>re(e,(t=>r.EditorSelection.cursor(e.lineBlockAt(t.head).from,1)));const ze=e=>re(e,(t=>r.EditorSelection.cursor(e.lineBlockAt(t.head).to,-1)));function _e(e,t,n){let o=false,l=te(e.selection,(t=>{let l=(0,i.matchBrackets)(e,t.head,-1)||(0,i.matchBrackets)(e,t.head,1)||t.head>0&&(0,i.matchBrackets)(e,t.head-1,1)||t.head_e(e,t,false);const qe=({state:e,dispatch:t})=>_e(e,t,true);function Ke(e,t){let n=te(e.state.selection,(e=>{let n=t(e);return r.EditorSelection.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||undefined)}));if(n.eq(e.state.selection))return false;e.dispatch(ne(e.state,n));return true}function $e(e,t){return Ke(e,(n=>e.moveByChar(n,t)))}const Qe=e=>$e(e,!se(e));const Xe=e=>$e(e,se(e));const Ye=e=>$e(e,true);const Ze=e=>$e(e,false);const et=e=>Ke(e,(t=>fe(e.state,t,true)));const tt=e=>Ke(e,(t=>fe(e.state,t,false)));function nt(e,t){return Ke(e,(n=>e.moveByGroup(n,t)))}const rt=e=>nt(e,!se(e));const ot=e=>nt(e,se(e));const lt=e=>nt(e,true);const st=e=>nt(e,false);const it=e=>Ke(e,(t=>e.moveByChar(t,true,(n=>Se(e,t.head,n)))));function at(e,t){return Ke(e,(n=>Ce(e,n,t)))}const ct=e=>at(e,true);const ut=e=>at(e,false);const ft=e=>Ke(e,(t=>Le(e.state,t,!se(e))));const dt=e=>Ke(e,(t=>Le(e.state,t,se(e))));function ht(e,t){return Ke(e,(n=>e.moveVertically(n,t)))}const mt=e=>ht(e,false);const pt=e=>ht(e,true);function gt(e,t){return Ke(e,(n=>e.moveVertically(n,t,Re(e).height)))}const yt=e=>gt(e,false);const kt=e=>gt(e,true);const wt=e=>Ke(e,(t=>Ue(e,t,true)));const St=e=>Ke(e,(t=>Ue(e,t,false)));const vt=e=>Ke(e,(t=>Ue(e,t,!se(e))));const At=e=>Ke(e,(t=>Ue(e,t,se(e))));const Ct=e=>Ke(e,(t=>r.EditorSelection.cursor(e.lineBlockAt(t.head).from)));const Bt=e=>Ke(e,(t=>r.EditorSelection.cursor(e.lineBlockAt(t.head).to)));const Et=({state:e,dispatch:t})=>{t(ne(e,{anchor:0}));return true};const Dt=({state:e,dispatch:t})=>{t(ne(e,{anchor:e.doc.length}));return true};const xt=({state:e,dispatch:t})=>{t(ne(e,{anchor:e.selection.main.anchor,head:0}));return true};const Lt=({state:e,dispatch:t})=>{t(ne(e,{anchor:e.selection.main.anchor,head:e.doc.length}));return true};const Mt=({state:e,dispatch:t})=>{t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"}));return true};const bt=({state:e,dispatch:t})=>{let n=$t(e).map((({from:t,to:n})=>r.EditorSelection.range(t,Math.min(n+1,e.doc.length))));t(e.update({selection:r.EditorSelection.create(n),userEvent:"select"}));return true};const Tt=({state:e,dispatch:t})=>{let n=te(e.selection,(t=>{let n=(0,i.syntaxTree)(e),o=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);if(e.node.from>=o.node.from&&e.node.to<=o.node.to)o=e}for(let e=o;e;e=e.next){let{node:n}=e;if((n.from=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return r.EditorSelection.range(n.to,n.from)}return t}));if(n.eq(e.selection))return false;t(ne(e,n));return true};const Ot=({state:e,dispatch:t})=>{let n=e.selection,o=null;if(n.ranges.length>1)o=r.EditorSelection.create([n.main]);else if(!n.main.empty)o=r.EditorSelection.create([r.EditorSelection.cursor(n.main.head)]);if(!o)return false;t(ne(e,o));return true};function It(e,t){if(e.state.readOnly)return false;let n="delete.selection",{state:o}=e;let s=o.changeByRange((o=>{let{from:l,to:s}=o;if(l==s){let r=t(o);if(rl){n="delete.forward";r=Rt(e,r,true)}l=Math.min(l,r);s=Math.max(s,r)}else{l=Rt(e,l,false);s=Rt(e,s,true)}return l==s?{range:o}:{changes:{from:l,to:s},range:r.EditorSelection.cursor(l,lt(e))))r.between(t,t,((e,r)=>{if(et)t=n?r:e}));return t}const Vt=(e,t,n)=>It(e,(o=>{let l=o.from,{state:s}=e,a=s.doc.lineAt(l),c,u;if(n&&!t&&l>a.from&&lVt(e,false,true);const Nt=e=>Vt(e,false,false);const Ut=e=>Vt(e,true,false);const Gt=(e,t)=>It(e,(n=>{let o=n.head,{state:l}=e,s=l.doc.lineAt(o);let i=l.charCategorizer(o);for(let e=null;;){if(o==(t?s.to:s.from)){if(o==n.head&&s.number!=(t?l.doc.lines:1))o+=t?1:-1;break}let a=(0,r.findClusterBreak)(s.text,o-s.from,t)+s.from;let c=s.text.slice(Math.min(o,a)-s.from,Math.max(o,a)-s.from);let u=i(c);if(e!=null&&u!=e)break;if(c!=" "||o!=n.head)e=u;o=a}return o}));const Jt=e=>Gt(e,false);const Pt=e=>Gt(e,true);const Ht=e=>It(e,(t=>{let n=e.lineBlockAt(t.head).to;return t.headIt(e,(t=>{let n=e.lineBlockAt(t.head).from;return t.head>n?n:Math.max(0,t.head-1)}));const zt=e=>It(e,(t=>{let n=e.moveToLineBoundary(t,false).head;return t.head>n?n:Math.max(0,t.head-1)}));const _t=e=>It(e,(t=>{let n=e.moveToLineBoundary(t,true).head;return t.head{if(e.readOnly)return false;let n=[];for(let r=0,o="",l=e.doc.iter();;){l.next();if(l.lineBreak||l.done){let e=o.search(/\s+$/);if(e>-1)n.push({from:r-(o.length-e),to:r});if(l.done)break;o=""}else{o=l.value}r+=l.value.length}if(!n.length)return false;t(e.update({changes:n,userEvent:"delete"}));return true};const qt=({state:e,dispatch:t})=>{if(e.readOnly)return false;let n=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:r.Text.of(["",""])},range:r.EditorSelection.cursor(e.from)})));t(e.update(n,{scrollIntoView:true,userEvent:"input"}));return true};const Kt=({state:e,dispatch:t})=>{if(e.readOnly)return false;let n=e.changeByRange((t=>{if(!t.empty||t.from==0||t.from==e.doc.length)return{range:t};let n=t.from,o=e.doc.lineAt(n);let l=n==o.from?n-1:(0,r.findClusterBreak)(o.text,n-o.from,false)+o.from;let s=n==o.to?n+1:(0,r.findClusterBreak)(o.text,n-o.from,true)+o.from;return{changes:{from:l,to:s,insert:e.doc.slice(n,s).append(e.doc.slice(l,n))},range:r.EditorSelection.cursor(s)}}));if(n.changes.empty)return false;t(e.update(n,{scrollIntoView:true,userEvent:"move.character"}));return true};function $t(e){let t=[],n=-1;for(let r of e.selection.ranges){let o=e.doc.lineAt(r.from),l=e.doc.lineAt(r.to);if(!r.empty&&r.to==l.from)l=e.doc.lineAt(r.to-1);if(n>=o.number){let e=t[t.length-1];e.to=l.to;e.ranges.push(r)}else{t.push({from:o.from,to:l.to,ranges:[r]})}n=l.number+1}return t}function Qt(e,t,n){if(e.readOnly)return false;let o=[],l=[];for(let s of $t(e)){if(n?s.to==e.doc.length:s.from==0)continue;let t=e.doc.lineAt(n?s.to+1:s.from-1);let i=t.length+1;if(n){o.push({from:s.to,to:t.to},{from:s.from,insert:t.text+e.lineBreak});for(let t of s.ranges)l.push(r.EditorSelection.range(Math.min(e.doc.length,t.anchor+i),Math.min(e.doc.length,t.head+i)))}else{o.push({from:t.from,to:s.from},{from:s.to,insert:e.lineBreak+t.text});for(let e of s.ranges)l.push(r.EditorSelection.range(e.anchor-i,e.head-i))}}if(!o.length)return false;t(e.update({changes:o,scrollIntoView:true,selection:r.EditorSelection.create(l,e.selection.mainIndex),userEvent:"move.line"}));return true}const Xt=({state:e,dispatch:t})=>Qt(e,t,false);const Yt=({state:e,dispatch:t})=>Qt(e,t,true);function Zt(e,t,n){if(e.readOnly)return false;let r=[];for(let o of $t(e)){if(n)r.push({from:o.from,insert:e.doc.slice(o.from,o.to)+e.lineBreak});else r.push({from:o.to,insert:e.lineBreak+e.doc.slice(o.from,o.to)})}t(e.update({changes:r,scrollIntoView:true,userEvent:"input.copyline"}));return true}const en=({state:e,dispatch:t})=>Zt(e,t,false);const tn=({state:e,dispatch:t})=>Zt(e,t,true);const nn=e=>{if(e.state.readOnly)return false;let{state:t}=e,n=t.changes($t(t).map((({from:e,to:n})=>{if(e>0)e--;else if(n{let n=undefined;if(e.lineWrapping){let r=e.lineBlockAt(t.head),o=e.coordsAtPos(t.head,t.assoc||1);if(o)n=r.bottom+e.documentTop-o.bottom+e.defaultLineHeight/2}return e.moveVertically(t,true,n)})).map(n);e.dispatch({changes:n,selection:r,scrollIntoView:true,userEvent:"delete.line"});return true};const rn=({state:e,dispatch:t})=>{t(e.update(e.replaceSelection(e.lineBreak),{scrollIntoView:true,userEvent:"input"}));return true};const on=({state:e,dispatch:t})=>{t(e.update(e.changeByRange((t=>{let n=/^\s*/.exec(e.doc.lineAt(t.from).text)[0];return{changes:{from:t.from,to:t.to,insert:e.lineBreak+n},range:r.EditorSelection.cursor(t.from+n.length+1)}})),{scrollIntoView:true,userEvent:"input"}));return true};function ln(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=(0,i.syntaxTree)(e).resolveInner(t);let r=n.childBefore(t),o=n.childAfter(t),l;if(r&&o&&r.to<=t&&o.from>=t&&(l=r.type.prop(c.NodeProp.closedBy))&&l.indexOf(o.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(o.from).from&&!/\S/.test(e.sliceDoc(r.to,o.from)))return{from:r.to,to:o.from};return null}const sn=cn(false);const an=cn(true);function cn(e){return({state:t,dispatch:n})=>{if(t.readOnly)return false;let o=t.changeByRange((n=>{let{from:o,to:l}=n,s=t.doc.lineAt(o);let a=!e&&o==l&&ln(t,o);if(e)o=l=(l<=s.to?s:t.doc.lineAt(l)).to;let c=new i.IndentContext(t,{simulateBreak:o,simulateDoubleBreak:!!a});let u=(0,i.getIndentation)(c,o);if(u==null)u=(0,r.countColumn)(/^\s*/.exec(t.doc.lineAt(o).text)[0],t.tabSize);while(ls.from&&o{let l=[];for(let r=o.from;r<=o.to;){let s=e.doc.lineAt(r);if(s.number>n&&(o.empty||o.to>s.from)){t(s,l,o);n=s.number}r=s.to+1}let s=e.changes(l);return{changes:l,range:r.EditorSelection.range(s.mapPos(o.anchor,1),s.mapPos(o.head,1))}}))}const fn=({state:e,dispatch:t})=>{if(e.readOnly)return false;let n=Object.create(null);let r=new i.IndentContext(e,{overrideIndentation:e=>{let t=n[e];return t==null?-1:t}});let o=un(e,((t,o,l)=>{let s=(0,i.getIndentation)(r,t.from);if(s==null)return;if(!/\S/.test(t.text))s=0;let a=/^\s*/.exec(t.text)[0];let c=(0,i.indentString)(e,s);if(a!=c||l.from{if(e.readOnly)return false;t(e.update(un(e,((t,n)=>{n.push({from:t.from,insert:e.facet(i.indentUnit)})})),{userEvent:"input.indent"}));return true};const hn=({state:e,dispatch:t})=>{if(e.readOnly)return false;t(e.update(un(e,((t,n)=>{let o=/^\s*/.exec(t.text)[0];if(!o)return;let l=(0,r.countColumn)(o,e.tabSize),s=0;let a=(0,i.indentString)(e,Math.max(0,l-(0,i.getIndentUnit)(e)));while(s{e.setTabFocusMode();return true};const pn=e=>{e.setTabFocusMode(2e3);return true};const gn=({state:e,dispatch:t})=>{if(e.selection.ranges.some((e=>!e.empty)))return dn({state:e,dispatch:t});t(e.update(e.replaceSelection("\t"),{scrollIntoView:true,userEvent:"input"}));return true};const yn=[{key:"Ctrl-b",run:ie,shift:Qe,preventDefault:true},{key:"Ctrl-f",run:ae,shift:Xe},{key:"Ctrl-p",run:Oe,shift:mt},{key:"Ctrl-n",run:Ie,shift:pt},{key:"Ctrl-a",run:We,shift:Ct},{key:"Ctrl-e",run:ze,shift:Bt},{key:"Ctrl-d",run:Ut},{key:"Ctrl-h",run:Ft},{key:"Ctrl-k",run:Ht},{key:"Ctrl-Alt-h",run:Jt},{key:"Ctrl-o",run:qt},{key:"Ctrl-t",run:Kt},{key:"Ctrl-v",run:Ne}];const kn=[{key:"ArrowLeft",run:ie,shift:Qe,preventDefault:true},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:ge,shift:rt,preventDefault:true},{mac:"Cmd-ArrowLeft",run:Pe,shift:vt,preventDefault:true},{key:"ArrowRight",run:ae,shift:Xe,preventDefault:true},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:ye,shift:ot,preventDefault:true},{mac:"Cmd-ArrowRight",run:He,shift:At,preventDefault:true},{key:"ArrowUp",run:Oe,shift:mt,preventDefault:true},{mac:"Cmd-ArrowUp",run:Et,shift:xt},{mac:"Ctrl-ArrowUp",run:Fe,shift:yt},{key:"ArrowDown",run:Ie,shift:pt,preventDefault:true},{mac:"Cmd-ArrowDown",run:Dt,shift:Lt},{mac:"Ctrl-ArrowDown",run:Ne,shift:kt},{key:"PageUp",run:Fe,shift:yt},{key:"PageDown",run:Ne,shift:kt},{key:"Home",run:Je,shift:St,preventDefault:true},{key:"Mod-Home",run:Et,shift:xt},{key:"End",run:Ge,shift:wt,preventDefault:true},{key:"Mod-End",run:Dt,shift:Lt},{key:"Enter",run:sn,shift:sn},{key:"Mod-a",run:Mt},{key:"Backspace",run:Ft,shift:Ft},{key:"Delete",run:Ut},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Jt},{key:"Mod-Delete",mac:"Alt-Delete",run:Pt},{mac:"Mod-Backspace",run:zt},{mac:"Mod-Delete",run:_t}].concat(yn.map((e=>({mac:e.key,run:e.run,shift:e.shift}))));const wn=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Me,shift:ft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:be,shift:dt},{key:"Alt-ArrowUp",run:Xt},{key:"Shift-Alt-ArrowUp",run:en},{key:"Alt-ArrowDown",run:Yt},{key:"Shift-Alt-ArrowDown",run:tn},{key:"Escape",run:Ot},{key:"Mod-Enter",run:an},{key:"Alt-l",mac:"Ctrl-l",run:bt},{key:"Mod-i",run:Tt,preventDefault:true},{key:"Mod-[",run:hn},{key:"Mod-]",run:dn},{key:"Mod-Alt-\\",run:fn},{key:"Shift-Mod-k",run:nn},{key:"Shift-Mod-\\",run:je},{key:"Mod-/",run:f},{key:"Alt-A",run:g},{key:"Ctrl-m",mac:"Shift-Alt-m",run:mn}].concat(kn);const Sn={key:"Tab",run:dn,shift:hn}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4364.b9b49d8d836882f44e62.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4364.b9b49d8d836882f44e62.js deleted file mode 100644 index 50fdce75b5a2173c897e7745b8a9c8517b78e352..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4364.b9b49d8d836882f44e62.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4364],{54364:(e,t,n)=>{n.r(t);n.d(t,{Hooks:()=>ze,Lexer:()=>$e,Marked:()=>Ae,Parser:()=>Te,Renderer:()=>Re,TextRenderer:()=>Se,Tokenizer:()=>ye,defaults:()=>r,getDefaults:()=>s,lexer:()=>ve,marked:()=>Ie,options:()=>Pe,parse:()=>Ee,parseInline:()=>qe,parser:()=>Ze,setOptions:()=>Le,use:()=>Ce,walkTokens:()=>Be});function s(){return{async:false,breaks:false,extensions:null,gfm:true,hooks:null,pedantic:false,renderer:null,silent:false,tokenizer:null,walkTokens:null}}let r=s();function i(e){r=e}const l={exec:()=>null};function o(e,t=""){let n=typeof e==="string"?e:e.source;const s={replace:(e,t)=>{let r=typeof t==="string"?t:t.source;r=r.replace(a.caret,"$1");n=n.replace(e,r);return s},getRegex:()=>new RegExp(n,t)};return s}const a={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")};const c=/^(?:[ \t]*(?:\n|$))+/;const h=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/;const p=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/;const u=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/;const f=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/;const g=/(?:[*+-]|\d{1,9}[.)])/;const k=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/;const d=o(k).replace(/bull/g,g).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex();const x=o(k).replace(/bull/g,g).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex();const b=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/;const w=/^[^\n]+/;const m=/(?!\s*\])(?:\\.|[^\[\]\\])+/;const y=o(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",m).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex();const $=o(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,g).getRegex();const R="address|article|aside|base|basefont|blockquote|body|caption"+"|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption"+"|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe"+"|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option"+"|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title"+"|tr|track|ul";const S=/|$))/;const T=o("^ {0,3}(?:"+"<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)"+"|comment[^\\n]*(\\n+|$)"+"|<\\?[\\s\\S]*?(?:\\?>\\n*|$)"+"|\\n*|$)"+"|\\n*|$)"+"|)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)"+"|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)"+"|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)"+")","i").replace("comment",S).replace("tag",R).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();const z=o(b).replace("hr",u).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",R).getRegex();const A=o(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",z).getRegex();const _={blockquote:A,code:h,def:y,fences:p,heading:f,hr:u,html:T,lheading:d,list:$,newline:c,paragraph:z,table:l,text:w};const I=o("^ *([^\\n ].*)\\n"+" {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)"+"(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",u).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",R).getRegex();const P={..._,lheading:x,table:I,paragraph:o(b).replace("hr",u).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",I).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",R).getRegex()};const L={..._,html:o("^ *(?:comment *(?:\\n|\\s*$)"+"|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)"+"|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",S).replace(/tag/g,"(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub"+"|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)"+"\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:l,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:o(b).replace("hr",u).replace("heading"," *#{1,6} *[^\n]").replace("lheading",d).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()};const C=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/;const B=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/;const q=/^( {2,}|\\)\n(?!\s*$)/;const E=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g;const G=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/;const H=o(G,"u").replace(/punct/g,Z).getRegex();const X=o(G,"u").replace(/punct/g,j).getRegex();const F="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)"+"|[^*]+(?=[^*])"+"|(?!\\*)punct(\\*+)(?=[\\s]|$)"+"|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)"+"|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)"+"|[\\s](\\*+)(?!\\*)(?=punct)"+"|(?!\\*)punct(\\*+)(?!\\*)(?=punct)"+"|notPunctSpace(\\*+)(?=notPunctSpace)";const U=o(F,"gu").replace(/notPunctSpace/g,D).replace(/punctSpace/g,v).replace(/punct/g,Z).getRegex();const J=o(F,"gu").replace(/notPunctSpace/g,Q).replace(/punctSpace/g,O).replace(/punct/g,j).getRegex();const K=o("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)"+"|[^_]+(?=[^_])"+"|(?!_)punct(_+)(?=[\\s]|$)"+"|notPunctSpace(_+)(?!_)(?=punctSpace|$)"+"|(?!_)punctSpace(_+)(?=notPunctSpace)"+"|[\\s](_+)(?!_)(?=punct)"+"|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,D).replace(/punctSpace/g,v).replace(/punct/g,Z).getRegex();const V=o(/\\(punct)/,"gu").replace(/punct/g,Z).getRegex();const W=o(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex();const Y=o(S).replace("(?:--\x3e|$)","--\x3e").getRegex();const ee=o("^comment"+"|^"+"|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>"+"|^<\\?[\\s\\S]*?\\?>"+"|^"+"|^").replace("comment",Y).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex();const te=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;const ne=o(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",te).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex();const se=o(/^!?\[(label)\]\[(ref)\]/).replace("label",te).replace("ref",m).getRegex();const re=o(/^!?\[(ref)\](?:\[\])?/).replace("ref",m).getRegex();const ie=o("reflink|nolink(?!\\()","g").replace("reflink",se).replace("nolink",re).getRegex();const le={_backpedal:l,anyPunctuation:V,autolink:W,blockSkip:N,br:q,code:B,del:l,emStrongLDelim:H,emStrongRDelimAst:U,emStrongRDelimUnd:K,escape:C,link:ne,nolink:re,punctuation:M,reflink:se,reflinkSearch:ie,tag:ee,text:E,url:l};const oe={...le,link:o(/^!?\[(label)\]\((.*?)\)/).replace("label",te).getRegex(),reflink:o(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",te).getRegex()};const ae={...le,emStrongRDelimAst:J,emStrongLDelim:X,url:o(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"};const fe=e=>ue[e];function ge(e,t){if(t){if(a.escapeTest.test(e)){return e.replace(a.escapeReplace,fe)}}else{if(a.escapeTestNoEncode.test(e)){return e.replace(a.escapeReplaceNoEncode,fe)}}return e}function ke(e){try{e=encodeURI(e).replace(a.percentDecode,"%")}catch{return null}return e}function de(e,t){const n=e.replace(a.findPipe,((e,t,n)=>{let s=false;let r=t;while(--r>=0&&n[r]==="\\")s=!s;if(s){return"|"}else{return" |"}})),s=n.split(a.splitPipe);let r=0;if(!s[0].trim()){s.shift()}if(s.length>0&&!s.at(-1)?.trim()){s.pop()}if(t){if(s.length>t){s.splice(t)}else{while(s.length{const t=e.match(n.other.beginningSpace);if(t===null){return e}const[s]=t;if(s.length>=r.length){return e.slice(r.length)}return e})).join("\n")}class ye{options;rules;lexer;constructor(e){this.options=e||r}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0){return{type:"space",raw:t[0]}}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:!this.options.pedantic?xe(e,"\n"):e}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0];const n=me(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:n}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){const t=xe(e,"#");if(this.options.pedantic){e=t.trim()}else if(!t||this.rules.other.endingSpaceChar.test(t)){e=t.trim()}}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){const t=this.rules.block.hr.exec(e);if(t){return{type:"hr",raw:xe(t[0],"\n")}}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){let e=xe(t[0],"\n").split("\n");let n="";let s="";const r=[];while(e.length>0){let t=false;const i=[];let l;for(l=0;l1;const r={type:"list",raw:"",ordered:s,start:s?+n.slice(0,-1):"",loose:false,items:[]};n=s?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`;if(this.options.pedantic){n=s?n:"[*+-]"}const i=this.rules.other.listItemRegex(n);let l=false;while(e){let n=false;let s="";let o="";if(!(t=i.exec(e))){break}if(this.rules.block.hr.test(e)){break}s=t[0];e=e.substring(s.length);let a=t[2].split("\n",1)[0].replace(this.rules.other.listReplaceTabs,(e=>" ".repeat(3*e.length)));let c=e.split("\n",1)[0];let h=!a.trim();let p=0;if(this.options.pedantic){p=2;o=a.trimStart()}else if(h){p=t[1].length+1}else{p=t[2].search(this.rules.other.nonSpaceChar);p=p>4?1:p;o=a.slice(p);p+=t[1].length}if(h&&this.rules.other.blankLine.test(c)){s+=c+"\n";e=e.substring(c.length+1);n=true}if(!n){const t=this.rules.other.nextBulletRegex(p);const n=this.rules.other.hrRegex(p);const r=this.rules.other.fencesBeginRegex(p);const i=this.rules.other.headingBeginRegex(p);const l=this.rules.other.htmlBeginRegex(p);while(e){const u=e.split("\n",1)[0];let f;c=u;if(this.options.pedantic){c=c.replace(this.rules.other.listReplaceNesting," ");f=c}else{f=c.replace(this.rules.other.tabCharGlobal," ")}if(r.test(c)){break}if(i.test(c)){break}if(l.test(c)){break}if(t.test(c)){break}if(n.test(c)){break}if(f.search(this.rules.other.nonSpaceChar)>=p||!c.trim()){o+="\n"+f.slice(p)}else{if(h){break}if(a.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4){break}if(r.test(a)){break}if(i.test(a)){break}if(n.test(a)){break}o+="\n"+c}if(!h&&!c.trim()){h=true}s+=u+"\n";e=e.substring(u.length+1);a=f.slice(p)}}if(!r.loose){if(l){r.loose=true}else if(this.rules.other.doubleBlankLine.test(s)){l=true}}let u=null;let f;if(this.options.gfm){u=this.rules.other.listIsTask.exec(o);if(u){f=u[0]!=="[ ] ";o=o.replace(this.rules.other.listReplaceTask,"")}}r.items.push({type:"list_item",raw:s,task:!!u,checked:f,loose:false,text:o,tokens:[]});r.raw+=s}const o=r.items.at(-1);if(o){o.raw=o.raw.trimEnd();o.text=o.text.trimEnd()}else{return}r.raw=r.raw.trimEnd();for(let e=0;ee.type==="space"));const n=t.length>0&&t.some((e=>this.rules.other.anyLine.test(e.raw)));r.loose=n}}if(r.loose){for(let e=0;e({text:e,tokens:this.lexer.inline(e),header:false,align:i.align[t]}))))}return i}lheading(e){const t=this.rules.block.lheading.exec(e);if(t){return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}}paragraph(e){const t=this.rules.block.paragraph.exec(e);if(t){const e=t[1].charAt(t[1].length-1)==="\n"?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){const t=this.rules.block.text.exec(e);if(t){return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}}escape(e){const t=this.rules.inline.escape.exec(e);if(t){return{type:"escape",raw:t[0],text:t[1]}}}tag(e){const t=this.rules.inline.tag.exec(e);if(t){if(!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])){this.lexer.state.inLink=true}else if(this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])){this.lexer.state.inLink=false}if(!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])){this.lexer.state.inRawBlock=true}else if(this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])){this.lexer.state.inRawBlock=false}return{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:false,text:t[0]}}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e)){return}const t=xe(e.slice(0,-1),"\\");if((e.length-t.length)%2===0){return}}else{const e=be(t[2],"()");if(e>-1){const n=t[0].indexOf("!")===0?5:4;const s=n+t[1].length+e;t[2]=t[2].substring(0,e);t[0]=t[0].substring(0,s).trim();t[3]=""}}let n=t[2];let s="";if(this.options.pedantic){const e=this.rules.other.pedanticHrefTitle.exec(n);if(e){n=e[1];s=e[3]}}else{s=t[3]?t[3].slice(1,-1):""}n=n.trim();if(this.rules.other.startAngleBracket.test(n)){if(this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)){n=n.slice(1)}else{n=n.slice(1,-1)}}return we(t,{href:n?n.replace(this.rules.inline.anyPunctuation,"$1"):n,title:s?s.replace(this.rules.inline.anyPunctuation,"$1"):s},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){const e=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," ");const s=t[e.toLowerCase()];if(!s){const e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return we(n,s,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s)return;if(s[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;const r=s[1]||s[2]||"";if(!r||!n||this.rules.inline.punctuation.exec(n)){const n=[...s[0]].length-1;let r,i,l=n,o=0;const a=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;a.lastIndex=0;t=t.slice(-1*e.length+n);while((s=a.exec(t))!=null){r=s[1]||s[2]||s[3]||s[4]||s[5]||s[6];if(!r)continue;i=[...r].length;if(s[3]||s[4]){l+=i;continue}else if(s[5]||s[6]){if(n%3&&!((n+i)%3)){o+=i;continue}}l-=i;if(l>0)continue;i=Math.min(i,i+l+o);const t=[...s[0]][0].length;const a=e.slice(0,n+s.index+t+i);if(Math.min(n,i)%2){const e=a.slice(1,-1);return{type:"em",raw:a,text:e,tokens:this.lexer.inlineTokens(e)}}const c=a.slice(2,-2);return{type:"strong",raw:a,text:c,tokens:this.lexer.inlineTokens(c)}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," ");const n=this.rules.other.nonSpaceChar.test(e);const s=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);if(n&&s){e=e.substring(1,e.length-1)}return{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t){return{type:"br",raw:t[0]}}}del(e){const t=this.rules.inline.del.exec(e);if(t){return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}}autolink(e){const t=this.rules.inline.autolink.exec(e);if(t){let e,n;if(t[2]==="@"){e=t[1];n="mailto:"+e}else{e=t[1];n=e}return{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]==="@"){e=t[0];n="mailto:"+e}else{let s;do{s=t[0];t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??""}while(s!==t[0]);e=t[0];if(t[1]==="www."){n="http://"+t[0]}else{n=t[0]}}return{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){const t=this.rules.inline.text.exec(e);if(t){const e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}}class $e{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[];this.tokens.links=Object.create(null);this.options=e||r;this.options.tokenizer=this.options.tokenizer||new ye;this.tokenizer=this.options.tokenizer;this.tokenizer.options=this.options;this.tokenizer.lexer=this;this.inlineQueue=[];this.state={inLink:false,inRawBlock:false,top:true};const t={other:a,block:he.normal,inline:pe.normal};if(this.options.pedantic){t.block=he.pedantic;t.inline=pe.pedantic}else if(this.options.gfm){t.block=he.gfm;if(this.options.breaks){t.inline=pe.breaks}else{t.inline=pe.gfm}}this.tokenizer.rules=t}static get rules(){return{block:he,inline:pe}}static lex(e,t){const n=new $e(t);return n.lex(e)}static lexInline(e,t){const n=new $e(t);return n.inlineTokens(e)}lex(e){e=e.replace(a.carriageReturn,"\n");this.blockTokens(e,this.tokens);for(let t=0;t{if(s=n.call({lexer:this},e,t)){e=e.substring(s.raw.length);t.push(s);return true}return false}))){continue}if(s=this.tokenizer.space(e)){e=e.substring(s.raw.length);const n=t.at(-1);if(s.raw.length===1&&n!==undefined){n.raw+="\n"}else{t.push(s)}continue}if(s=this.tokenizer.code(e)){e=e.substring(s.raw.length);const n=t.at(-1);if(n?.type==="paragraph"||n?.type==="text"){n.raw+="\n"+s.raw;n.text+="\n"+s.text;this.inlineQueue.at(-1).src=n.text}else{t.push(s)}continue}if(s=this.tokenizer.fences(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.heading(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.hr(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.blockquote(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.list(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.html(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.def(e)){e=e.substring(s.raw.length);const n=t.at(-1);if(n?.type==="paragraph"||n?.type==="text"){n.raw+="\n"+s.raw;n.text+="\n"+s.raw;this.inlineQueue.at(-1).src=n.text}else if(!this.tokens.links[s.tag]){this.tokens.links[s.tag]={href:s.href,title:s.title}}continue}if(s=this.tokenizer.table(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.lheading(e)){e=e.substring(s.raw.length);t.push(s);continue}let r=e;if(this.options.extensions?.startBlock){let t=Infinity;const n=e.slice(1);let s;this.options.extensions.startBlock.forEach((e=>{s=e.call({lexer:this},n);if(typeof s==="number"&&s>=0){t=Math.min(t,s)}}));if(t=0){r=e.substring(0,t+1)}}if(this.state.top&&(s=this.tokenizer.paragraph(r))){const i=t.at(-1);if(n&&i?.type==="paragraph"){i.raw+="\n"+s.raw;i.text+="\n"+s.text;this.inlineQueue.pop();this.inlineQueue.at(-1).src=i.text}else{t.push(s)}n=r.length!==e.length;e=e.substring(s.raw.length);continue}if(s=this.tokenizer.text(e)){e=e.substring(s.raw.length);const n=t.at(-1);if(n?.type==="text"){n.raw+="\n"+s.raw;n.text+="\n"+s.text;this.inlineQueue.pop();this.inlineQueue.at(-1).src=n.text}else{t.push(s)}continue}if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}else{throw new Error(t)}}}this.state.top=true;return t}inline(e,t=[]){this.inlineQueue.push({src:e,tokens:t});return t}inlineTokens(e,t=[]){let n=e;let s=null;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0){while((s=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null){if(e.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))){n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)}}}}while((s=this.tokenizer.rules.inline.blockSkip.exec(n))!=null){n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex)}while((s=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null){n=n.slice(0,s.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex)}let r=false;let i="";while(e){if(!r){i=""}r=false;let s;if(this.options.extensions?.inline?.some((n=>{if(s=n.call({lexer:this},e,t)){e=e.substring(s.raw.length);t.push(s);return true}return false}))){continue}if(s=this.tokenizer.escape(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.tag(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.link(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(s.raw.length);const n=t.at(-1);if(s.type==="text"&&n?.type==="text"){n.raw+=s.raw;n.text+=s.text}else{t.push(s)}continue}if(s=this.tokenizer.emStrong(e,n,i)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.codespan(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.br(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.del(e)){e=e.substring(s.raw.length);t.push(s);continue}if(s=this.tokenizer.autolink(e)){e=e.substring(s.raw.length);t.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(e))){e=e.substring(s.raw.length);t.push(s);continue}let l=e;if(this.options.extensions?.startInline){let t=Infinity;const n=e.slice(1);let s;this.options.extensions.startInline.forEach((e=>{s=e.call({lexer:this},n);if(typeof s==="number"&&s>=0){t=Math.min(t,s)}}));if(t=0){l=e.substring(0,t+1)}}if(s=this.tokenizer.inlineText(l)){e=e.substring(s.raw.length);if(s.raw.slice(-1)!=="_"){i=s.raw.slice(-1)}r=true;const n=t.at(-1);if(n?.type==="text"){n.raw+=s.raw;n.text+=s.text}else{t.push(s)}continue}if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}else{throw new Error(t)}}}return t}}class Re{options;parser;constructor(e){this.options=e||r}space(e){return""}code({text:e,lang:t,escaped:n}){const s=(t||"").match(a.notSpaceStart)?.[0];const r=e.replace(a.endingNewline,"")+"\n";if(!s){return"
"+(n?r:ge(r,true))+"
\n"}return'
'+(n?r:ge(r,true))+"
\n"}blockquote({tokens:e}){const t=this.parser.parse(e);return`
\n${t}
\n`}html({text:e}){return e}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)}\n`}hr(e){return"
\n"}list(e){const t=e.ordered;const n=e.start;let s="";for(let l=0;l\n"+s+"\n"}listitem(e){let t="";if(e.task){const n=this.checkbox({checked:!!e.checked});if(e.loose){if(e.tokens[0]?.type==="paragraph"){e.tokens[0].text=n+" "+e.tokens[0].text;if(e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"){e.tokens[0].tokens[0].text=n+" "+ge(e.tokens[0].tokens[0].text);e.tokens[0].tokens[0].escaped=true}}else{e.tokens.unshift({type:"text",raw:n+" ",text:n+" ",escaped:true})}}else{t+=n+" "}}t+=this.parser.parse(e.tokens,!!e.loose);return`
  • ${t}
  • \n`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    \n`}table(e){let t="";let n="";for(let r=0;r${s}`;return"\n"+"\n"+t+"\n"+s+"
    \n"}tablerow({text:e}){return`\n${e}\n`}tablecell(e){const t=this.parser.parseInline(e.tokens);const n=e.header?"th":"td";const s=e.align?`<${n} align="${e.align}">`:`<${n}>`;return s+t+`\n`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${ge(e,true)}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){const s=this.parser.parseInline(n);const r=ke(e);if(r===null){return s}e=r;let i='
    ";return i}image({href:e,title:t,text:n}){const s=ke(e);if(s===null){return ge(n)}e=s;let r=`${n}{const r=e[s].flat(Infinity);n=n.concat(this.walkTokens(r,t))}))}else if(e.tokens){n=n.concat(this.walkTokens(e.tokens,t))}}}}return n}use(...e){const t=this.defaults.extensions||{renderers:{},childTokens:{}};e.forEach((e=>{const n={...e};n.async=this.defaults.async||n.async||false;if(e.extensions){e.extensions.forEach((e=>{if(!e.name){throw new Error("extension name required")}if("renderer"in e){const n=t.renderers[e.name];if(n){t.renderers[e.name]=function(...t){let s=e.renderer.apply(this,t);if(s===false){s=n.apply(this,t)}return s}}else{t.renderers[e.name]=e.renderer}}if("tokenizer"in e){if(!e.level||e.level!=="block"&&e.level!=="inline"){throw new Error("extension level must be 'block' or 'inline'")}const n=t[e.level];if(n){n.unshift(e.tokenizer)}else{t[e.level]=[e.tokenizer]}if(e.start){if(e.level==="block"){if(t.startBlock){t.startBlock.push(e.start)}else{t.startBlock=[e.start]}}else if(e.level==="inline"){if(t.startInline){t.startInline.push(e.start)}else{t.startInline=[e.start]}}}}if("childTokens"in e&&e.childTokens){t.childTokens[e.name]=e.childTokens}}));n.extensions=t}if(e.renderer){const t=this.defaults.renderer||new Re(this.defaults);for(const n in e.renderer){if(!(n in t)){throw new Error(`renderer '${n}' does not exist`)}if(["options","parser"].includes(n)){continue}const s=n;const r=e.renderer[s];const i=t[s];t[s]=(...e)=>{let n=r.apply(t,e);if(n===false){n=i.apply(t,e)}return n||""}}n.renderer=t}if(e.tokenizer){const t=this.defaults.tokenizer||new ye(this.defaults);for(const n in e.tokenizer){if(!(n in t)){throw new Error(`tokenizer '${n}' does not exist`)}if(["options","rules","lexer"].includes(n)){continue}const s=n;const r=e.tokenizer[s];const i=t[s];t[s]=(...e)=>{let n=r.apply(t,e);if(n===false){n=i.apply(t,e)}return n}}n.tokenizer=t}if(e.hooks){const t=this.defaults.hooks||new ze;for(const n in e.hooks){if(!(n in t)){throw new Error(`hook '${n}' does not exist`)}if(["options","block"].includes(n)){continue}const s=n;const r=e.hooks[s];const i=t[s];if(ze.passThroughHooks.has(n)){t[s]=e=>{if(this.defaults.async){return Promise.resolve(r.call(t,e)).then((e=>i.call(t,e)))}const n=r.call(t,e);return i.call(t,n)}}else{t[s]=(...e)=>{let n=r.apply(t,e);if(n===false){n=i.apply(t,e)}return n}}}n.hooks=t}if(e.walkTokens){const t=this.defaults.walkTokens;const s=e.walkTokens;n.walkTokens=function(e){let n=[];n.push(s.call(this,e));if(t){n=n.concat(t.call(this,e))}return n}}this.defaults={...this.defaults,...n}}));return this}setOptions(e){this.defaults={...this.defaults,...e};return this}lexer(e,t){return $e.lex(e,t??this.defaults)}parser(e,t){return Te.parse(e,t??this.defaults)}parseMarkdown(e){const t=(t,n)=>{const s={...n};const r={...this.defaults,...s};const i=this.onError(!!r.silent,!!r.async);if(this.defaults.async===true&&s.async===false){return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."))}if(typeof t==="undefined"||t===null){return i(new Error("marked(): input parameter is undefined or null"))}if(typeof t!=="string"){return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"))}if(r.hooks){r.hooks.options=r;r.hooks.block=e}const l=r.hooks?r.hooks.provideLexer():e?$e.lex:$e.lexInline;const o=r.hooks?r.hooks.provideParser():e?Te.parse:Te.parseInline;if(r.async){return Promise.resolve(r.hooks?r.hooks.preprocess(t):t).then((e=>l(e,r))).then((e=>r.hooks?r.hooks.processAllTokens(e):e)).then((e=>r.walkTokens?Promise.all(this.walkTokens(e,r.walkTokens)).then((()=>e)):e)).then((e=>o(e,r))).then((e=>r.hooks?r.hooks.postprocess(e):e)).catch(i)}try{if(r.hooks){t=r.hooks.preprocess(t)}let e=l(t,r);if(r.hooks){e=r.hooks.processAllTokens(e)}if(r.walkTokens){this.walkTokens(e,r.walkTokens)}let n=o(e,r);if(r.hooks){n=r.hooks.postprocess(n)}return n}catch(a){return i(a)}};return t}onError(e,t){return n=>{n.message+="\nPlease report this to https://github.com/markedjs/marked.";if(e){const e="

    An error occurred:

    "+ge(n.message+"",true)+"
    ";if(t){return Promise.resolve(e)}return e}if(t){return Promise.reject(n)}throw n}}}const _e=new Ae;function Ie(e,t){return _e.parse(e,t)}Ie.options=Ie.setOptions=function(e){_e.setOptions(e);Ie.defaults=_e.defaults;i(Ie.defaults);return Ie};Ie.getDefaults=s;Ie.defaults=r;Ie.use=function(...e){_e.use(...e);Ie.defaults=_e.defaults;i(Ie.defaults);return Ie};Ie.walkTokens=function(e,t){return _e.walkTokens(e,t)};Ie.parseInline=_e.parseInline;Ie.Parser=Te;Ie.parser=Te.parse;Ie.Renderer=Re;Ie.TextRenderer=Se;Ie.Lexer=$e;Ie.lexer=$e.lex;Ie.Tokenizer=ye;Ie.Hooks=ze;Ie.parse=Ie;const Pe=Ie.options;const Le=Ie.setOptions;const Ce=Ie.use;const Be=Ie.walkTokens;const qe=Ie.parseInline;const Ee=Ie;const Ze=Te.parse;const ve=$e.lex}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4372.645626a2452c190dbb22.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4372.645626a2452c190dbb22.js deleted file mode 100644 index ef386adfaf46c11b444e22591ac2a6d7e12d5f1c..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4372.645626a2452c190dbb22.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 4372.645626a2452c190dbb22.js.LICENSE.txt */ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4372],{14372:(e,t,n)=>{n.r(t);n.d(t,{tlv:()=>d,verilog:()=>a});function i(e){var t=e.statementIndentUnit,n=e.dontAlignCalls,i=e.noIndentKeywords||[],a=e.multiLineStrings,r=e.hooks||{};function l(e){var t={},n=e.split(" ");for(var i=0;i=0)return l}var o=e.context,s=i&&i.charAt(0);if(o.type=="statement"&&s=="}")o=o.prev;var c=false;var f=i.match(h);if(f)c=B(f[0],o.type);if(o.type=="statement")return o.indented+(s=="{"?0:t||a.unit);else if(g.test(o.type)&&o.align&&!n)return o.column+(c?0:1);else if(o.type==")"&&!c)return o.indented+(t||a.unit);else return o.indented+(c?0:a.unit)},languageData:{indentOnInput:q(),commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}const a=i({});var r={"|":"link",">":"property",$:"variable",$$:"variable","?$":"qualifier","?*":"qualifier","-":"contentSeparator","/":"property","/-":"property","@":"variableName.special","@-":"variableName.special","@++":"variableName.special","@+=":"variableName.special","@+=-":"variableName.special","@--":"variableName.special","@-=":"variableName.special","%+":"tag","%-":"tag","%":"tag",">>":"tag","<<":"tag","<>":"tag","#":"tag","^":"attribute","^^":"attribute","^!":"attribute","*":"variable","**":"variable","\\":"keyword",'"':"comment"};var l={"/":"beh-hier",">":"beh-hier","-":"phys-hier","|":"pipe","?":"when","@":"stage","\\":"keyword"};var o=3;var s=false;var c=/^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/;var f=/^[! ] */;var u=/^\/[\/\*]/;const d=i({hooks:{electricInput:false,token:function(e,t){var n=undefined;var i;if(e.sol()&&!t.tlvInBlockComment){if(e.peek()=="\\"){n="def";e.skipToEnd();if(e.string.match(/\\SV/)){t.tlvCodeActive=false}else if(e.string.match(/\\TLV/)){t.tlvCodeActive=true}}if(t.tlvCodeActive&&e.pos==0&&t.indented==0&&(i=e.match(f,false))){t.indented=i[0].length}var a=t.indented;var d=a/o;if(d<=t.tlvIndentationStyle.length){var m=e.string.length==a;var p=d*o;if(p0)){t.tlvIndentationStyle[d]=l[h];if(s){t.statementComment=false}d++}}}if(!m){while(t.tlvIndentationStyle.length>d){t.tlvIndentationStyle.pop()}}}t.tlvNextIndent=a}if(t.tlvCodeActive){var g=false;if(s){g=e.peek()!=" "&&n===undefined&&!t.tlvInBlockComment&&e.column()==t.tlvIndentationStyle.length*o;if(g){if(t.statementComment){g=false}t.statementComment=e.match(u,false)}}var i;if(n!==undefined){}else if(t.tlvInBlockComment){if(e.match(/^.*?\*\//)){t.tlvInBlockComment=false;if(s&&!e.eol()){t.statementComment=false}}else{e.skipToEnd()}n="comment"}else if((i=e.match(u))&&!t.tlvInBlockComment){if(i[0]=="//"){e.skipToEnd()}else{t.tlvInBlockComment=true}n="comment"}else if(i=e.match(c)){var k=i[1];var y=i[2];if(r.hasOwnProperty(k)&&(y.length>0||e.eol())){n=r[k]}else{e.backUp(e.current().length-1)}}else if(e.match(/^\t+/)){n="invalid"}else if(e.match(/^[\[\]{}\(\);\:]+/)){n="meta"}else if(i=e.match(/^[mM]4([\+_])?[\w\d_]*/)){n=i[1]=="+"?"keyword.special":"keyword"}else if(e.match(/^ +/)){if(e.eol()){n="error"}}else if(e.match(/^[\w\d_]+/)){n="number"}else{e.next()}}else{if(e.match(/^[mM]4([\w\d_]*)/)){n="keyword"}}return n},indent:function(e){return e.tlvCodeActive==true?e.tlvNextIndent:-1},startState:function(e){e.tlvIndentationStyle=[];e.tlvCodeActive=true;e.tlvNextIndent=-1;e.tlvInBlockComment=false;if(s){e.statementComment=false}}}})}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4372.645626a2452c190dbb22.js.LICENSE.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4372.645626a2452c190dbb22.js.LICENSE.txt deleted file mode 100644 index ebc2d138d5f237530b21740b7585a4ec36ee906b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4372.645626a2452c190dbb22.js.LICENSE.txt +++ /dev/null @@ -1 +0,0 @@ -//!stream.match(tlvCommentMatch, false) && // not comment start diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4408.f24dd0edf35e08548967.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4408.f24dd0edf35e08548967.js deleted file mode 100644 index 1c05ca8a2bc83c3bf880419c646bb6480d7732a9..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4408.f24dd0edf35e08548967.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4408],{74408:(e,t,n)=>{n.r(t);n.d(t,{fortran:()=>d});function a(e){var t={};for(var n=0;n\/\:]/;var l=/^\.(and|or|eq|lt|le|gt|ge|ne|not|eqv|neqv)\./i;function s(e,t){if(e.match(l)){return"operator"}var n=e.next();if(n=="!"){e.skipToEnd();return"comment"}if(n=='"'||n=="'"){t.tokenize=_(n);return t.tokenize(e,t)}if(/[\[\]\(\),]/.test(n)){return null}if(/\d/.test(n)){e.eatWhile(/[\w\.]/);return"number"}if(o.test(n)){e.eatWhile(o);return"operator"}e.eatWhile(/[\w\$_]/);var a=e.current().toLowerCase();if(i.hasOwnProperty(a)){return"keyword"}if(r.hasOwnProperty(a)||c.hasOwnProperty(a)){return"builtin"}return"variable"}function _(e){return function(t,n){var a=false,i,r=false;while((i=t.next())!=null){if(i==e&&!a){r=true;break}a=!a&&i=="\\"}if(r||!a)n.tokenize=null;return"string"}}const d={name:"fortran",startState:function(){return{tokenize:null}},token:function(e,t){if(e.eatSpace())return null;var n=(t.tokenize||s)(e,t);if(n=="comment"||n=="meta")return n;return n}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4462.c3c6de84bc9399e0290d.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4462.c3c6de84bc9399e0290d.js deleted file mode 100644 index 1832b1ee362dd50e2ed451e9232480193d414e11..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4462.c3c6de84bc9399e0290d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4462],{84462:(e,t,r)=>{r.r(t);r.d(t,{stylus:()=>se});var i=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","bgsound","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","var","video"];var a=["domain","regexp","url-prefix","url"];var n=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"];var o=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","dynamic-range","video-dynamic-range"];var l=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"];var s=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"];var c=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"];var u=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"];var d=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","high","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","standard","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around","unset"];var m=["in","and","or","not","is not","is a","is","isnt","defined","if unless"],p=["for","if","else","unless","from","to"],f=["null","true","false","href","title","type","not-allowed","readonly","disabled"],h=["@font-face","@keyframes","@media","@viewport","@page","@host","@supports","@block","@css"];var b=i.concat(a,n,o,l,s,u,d,c,m,p,f,h);function g(e){e=e.sort((function(e,t){return t>e}));return new RegExp("^(("+e.join(")|(")+"))\\b")}function k(e){var t={};for(var r=0;r]=?|\?:|\~)/,P=g(m),U=k(p),E=new RegExp(/^\-(moz|ms|o|webkit)-/i),O=k(f),W="",A={},R,S,X,Y;function Z(e,t){W=e.string.match(/(^[\w-]+\s*=\s*$)|(^\s*[\w-]+\s*=\s*[\w-])|(^\s*(\.|#|@|\$|\&|\[|\d|\+|::?|\{|\>|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/);t.context.line.firstWord=W?W[0].replace(/^\s*/,""):"";t.context.line.indent=e.indentation();R=e.peek();if(e.match("//")){e.skipToEnd();return["comment","comment"]}if(e.match("/*")){t.tokenize=T;return T(e,t)}if(R=='"'||R=="'"){e.next();t.tokenize=D(R);return t.tokenize(e,t)}if(R=="@"){e.next();e.eatWhile(/[\w\\-]/);return["def",e.current()]}if(R=="#"){e.next();if(e.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b(?!-)/i)){return["atom","atom"]}if(e.match(/^[a-z][\w-]*/i)){return["builtin","hash"]}}if(e.match(E)){return["meta","vendor-prefixes"]}if(e.match(/^-?[0-9]?\.?[0-9]/)){e.eatWhile(/[a-z%]/i);return["number","unit"]}if(R=="!"){e.next();return[e.match(/^(important|optional)/i)?"keyword":"operator","important"]}if(R=="."&&e.match(/^\.[a-z][\w-]*/i)){return["qualifier","qualifier"]}if(e.match(_)){if(e.peek()=="(")t.tokenize=F;return["property","word"]}if(e.match(/^[a-z][\w-]*\(/i)){e.backUp(1);return["keyword","mixin"]}if(e.match(/^(\+|-)[a-z][\w-]*\(/i)){e.backUp(1);return["keyword","block-mixin"]}if(e.string.match(/^\s*&/)&&e.match(/^[-_]+[a-z][\w-]*/)){return["qualifier","qualifier"]}if(e.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)){e.backUp(1);return["variableName.special","reference"]}if(e.match(/^&{1}\s*$/)){return["variableName.special","reference"]}if(e.match(P)){return["operator","operator"]}if(e.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)){if(e.match(/^(\.|\[)[\w-\'\"\]]+/i,false)){if(!M(e.current())){e.match(".");return["variable","variable-name"]}}return["variable","word"]}if(e.match(L)){return["operator",e.current()]}if(/[:;,{}\[\]\(\)]/.test(R)){e.next();return[null,R]}e.next();return[null,null]}function T(e,t){var r=false,i;while((i=e.next())!=null){if(r&&i=="/"){t.tokenize=null;break}r=i=="*"}return["comment","comment"]}function D(e){return function(t,r){var i=false,a;while((a=t.next())!=null){if(a==e&&!i){if(e==")")t.backUp(1);break}i=!i&&a=="\\"}if(a==e||!i&&e!=")")r.tokenize=null;return["string","string"]}}function F(e,t){e.next();if(!e.match(/\s*[\"\')]/,false))t.tokenize=D(")");else t.tokenize=null;return[null,"("]}function I(e,t,r,i){this.type=e;this.indent=t;this.prev=r;this.line=i||{firstWord:"",indent:0}}function G(e,t,r,i){i=i>=0?i:t.indentUnit;e.context=new I(r,t.indentation()+i,e.context);return r}function H(e,t,r){var i=e.context.indent-t.indentUnit;r=r||false;e.context=e.context.prev;if(r)e.context.indent=i;return e.context.type}function J(e,t,r){return A[r.context.type](e,t,r)}function K(e,t,r,i){for(var a=i||1;a>0;a--)r.context=r.context.prev;return J(e,t,r)}function M(e){return e.toLowerCase()in v}function Q(e){e=e.toLowerCase();return e in x||e in N}function V(e){return e.toLowerCase()in U}function ee(e){return e.toLowerCase().match(E)}function te(e){var t=e.toLowerCase();var r="variable";if(M(e))r="tag";else if(V(e))r="block-keyword";else if(Q(e))r="property";else if(t in q||t in O)r="atom";else if(t=="return"||t in j)r="keyword";else if(e.match(/^[A-Z]/))r="string";return r}function re(e,t){return oe(t)&&(e=="{"||e=="]"||e=="hash"||e=="qualifier")||e=="block-mixin"}function ie(e,t){return e=="{"&&t.match(/^\s*\$?[\w-]+/i,false)}function ae(e,t){return e==":"&&t.match(/^[a-z-]+/,false)}function ne(e){return e.sol()||e.string.match(new RegExp("^\\s*"+w(e.current())))}function oe(e){return e.eol()||e.match(/^\s*$/,false)}function le(e){var t=/^\s*[-_]*[a-z0-9]+[\w-]*/i;var r=typeof e=="string"?e.match(t):e.string.match(t);return r?r[0].replace(/^\s*/,""):""}A.block=function(e,t,r){if(e=="comment"&&ne(t)||e==","&&oe(t)||e=="mixin"){return G(r,t,"block",0)}if(ie(e,t)){return G(r,t,"interpolation")}if(oe(t)&&e=="]"){if(!/^\s*(\.|#|:|\[|\*|&)/.test(t.string)&&!M(le(t))){return G(r,t,"block",0)}}if(re(e,t)){return G(r,t,"block")}if(e=="}"&&oe(t)){return G(r,t,"block",0)}if(e=="variable-name"){if(t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)||V(le(t))){return G(r,t,"variableName")}else{return G(r,t,"variableName",0)}}if(e=="="){if(!oe(t)&&!V(le(t))){return G(r,t,"block",0)}return G(r,t,"block")}if(e=="*"){if(oe(t)||t.match(/\s*(,|\.|#|\[|:|{)/,false)){Y="tag";return G(r,t,"block")}}if(ae(e,t)){return G(r,t,"pseudo")}if(/@(font-face|media|supports|(-moz-)?document)/.test(e)){return G(r,t,oe(t)?"block":"atBlock")}if(/@(-(moz|ms|o|webkit)-)?keyframes$/.test(e)){return G(r,t,"keyframes")}if(/@extends?/.test(e)){return G(r,t,"extend",0)}if(e&&e.charAt(0)=="@"){if(t.indentation()>0&&Q(t.current().slice(1))){Y="variable";return"block"}if(/(@import|@require|@charset)/.test(e)){return G(r,t,"block",0)}return G(r,t,"block")}if(e=="reference"&&oe(t)){return G(r,t,"block")}if(e=="("){return G(r,t,"parens")}if(e=="vendor-prefixes"){return G(r,t,"vendorPrefixes")}if(e=="word"){var i=t.current();Y=te(i);if(Y=="property"){if(ne(t)){return G(r,t,"block",0)}else{Y="atom";return"block"}}if(Y=="tag"){if(/embed|menu|pre|progress|sub|table/.test(i)){if(Q(le(t))){Y="atom";return"block"}}if(t.string.match(new RegExp("\\[\\s*"+i+"|"+i+"\\s*\\]"))){Y="atom";return"block"}if(y.test(i)){if(ne(t)&&t.string.match(/=/)||!ne(t)&&!t.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/)&&!M(le(t))){Y="variable";if(V(le(t)))return"block";return G(r,t,"block",0)}}if(oe(t))return G(r,t,"block")}if(Y=="block-keyword"){Y="keyword";if(t.current(/(if|unless)/)&&!ne(t)){return"block"}return G(r,t,"block")}if(i=="return")return G(r,t,"block",0);if(Y=="variable"&&t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)){return G(r,t,"block")}}return r.context.type};A.parens=function(e,t,r){if(e=="(")return G(r,t,"parens");if(e==")"){if(r.context.prev.type=="parens"){return H(r,t)}if(t.string.match(/^[a-z][\w-]*\(/i)&&oe(t)||V(le(t))||/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(le(t))||!t.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/)&&M(le(t))){return G(r,t,"block")}if(t.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/)||t.string.match(/^\s*(\(|\)|[0-9])/)||t.string.match(/^\s+[a-z][\w-]*\(/i)||t.string.match(/^\s+[\$-]?[a-z]/i)){return G(r,t,"block",0)}if(oe(t))return G(r,t,"block");else return G(r,t,"block",0)}if(e&&e.charAt(0)=="@"&&Q(t.current().slice(1))){Y="variable"}if(e=="word"){var i=t.current();Y=te(i);if(Y=="tag"&&y.test(i)){Y="variable"}if(Y=="property"||i=="to")Y="atom"}if(e=="variable-name"){return G(r,t,"variableName")}if(ae(e,t)){return G(r,t,"pseudo")}return r.context.type};A.vendorPrefixes=function(e,t,r){if(e=="word"){Y="property";return G(r,t,"block",0)}return H(r,t)};A.pseudo=function(e,t,r){if(!Q(le(t.string))){t.match(/^[a-z-]+/);Y="variableName.special";if(oe(t))return G(r,t,"block");return H(r,t)}return K(e,t,r)};A.atBlock=function(e,t,r){if(e=="(")return G(r,t,"atBlock_parens");if(re(e,t)){return G(r,t,"block")}if(ie(e,t)){return G(r,t,"interpolation")}if(e=="word"){var i=t.current().toLowerCase();if(/^(only|not|and|or)$/.test(i))Y="keyword";else if($.hasOwnProperty(i))Y="tag";else if(C.hasOwnProperty(i))Y="attribute";else if(B.hasOwnProperty(i))Y="property";else if(z.hasOwnProperty(i))Y="string.special";else Y=te(t.current());if(Y=="tag"&&oe(t)){return G(r,t,"block")}}if(e=="operator"&&/^(not|and|or)$/.test(t.current())){Y="keyword"}return r.context.type};A.atBlock_parens=function(e,t,r){if(e=="{"||e=="}")return r.context.type;if(e==")"){if(oe(t))return G(r,t,"block");else return G(r,t,"atBlock")}if(e=="word"){var i=t.current().toLowerCase();Y=te(i);if(/^(max|min)/.test(i))Y="property";if(Y=="tag"){y.test(i)?Y="variable":Y="atom"}return r.context.type}return A.atBlock(e,t,r)};A.keyframes=function(e,t,r){if(t.indentation()=="0"&&(e=="}"&&ne(t)||e=="]"||e=="hash"||e=="qualifier"||M(t.current()))){return K(e,t,r)}if(e=="{")return G(r,t,"keyframes");if(e=="}"){if(ne(t))return H(r,t,true);else return G(r,t,"keyframes")}if(e=="unit"&&/^[0-9]+\%$/.test(t.current())){return G(r,t,"keyframes")}if(e=="word"){Y=te(t.current());if(Y=="block-keyword"){Y="keyword";return G(r,t,"keyframes")}}if(/@(font-face|media|supports|(-moz-)?document)/.test(e)){return G(r,t,oe(t)?"block":"atBlock")}if(e=="mixin"){return G(r,t,"block",0)}return r.context.type};A.interpolation=function(e,t,r){if(e=="{")H(r,t)&&G(r,t,"block");if(e=="}"){if(t.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i)||t.string.match(/^\s*[a-z]/i)&&M(le(t))){return G(r,t,"block")}if(!t.string.match(/^(\{|\s*\&)/)||t.match(/\s*[\w-]/,false)){return G(r,t,"block",0)}return G(r,t,"block")}if(e=="variable-name"){return G(r,t,"variableName",0)}if(e=="word"){Y=te(t.current());if(Y=="tag")Y="atom"}return r.context.type};A.extend=function(e,t,r){if(e=="["||e=="=")return"extend";if(e=="]")return H(r,t);if(e=="word"){Y=te(t.current());return"extend"}return H(r,t)};A.variableName=function(e,t,r){if(e=="string"||e=="["||e=="]"||t.current().match(/^(\.|\$)/)){if(t.current().match(/^\.[\w-]+/i))Y="variable";return"variableName"}return K(e,t,r)};const se={name:"stylus",startState:function(){return{tokenize:null,state:"block",context:new I("block",0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;S=(t.tokenize||Z)(e,t);if(S&&typeof S=="object"){X=S[1];S=S[0]}Y=S;t.state=A[t.state](X,e,t);return Y},indent:function(e,t,r){var i=e.context,a=t&&t.charAt(0),n=i.indent,o=le(t),l=i.line.indent,s=e.context.prev?e.context.prev.line.firstWord:"",c=e.context.prev?e.context.prev.line.indent:l;if(i.prev&&(a=="}"&&(i.type=="block"||i.type=="atBlock"||i.type=="keyframes")||a==")"&&(i.type=="parens"||i.type=="atBlock_parens")||a=="{"&&i.type=="at")){n=i.indent-r.unit}else if(!/(\})/.test(a)){if(/@|\$|\d/.test(a)||/^\{/.test(t)||/^\s*\/(\/|\*)/.test(t)||/^\s*\/\*/.test(s)||/^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(t)||/^(\+|-)?[a-z][\w-]*\(/i.test(t)||/^return/.test(t)||V(o)){n=l}else if(/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(a)||M(o)){if(/\,\s*$/.test(s)){n=c}else if(/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(s)||M(s)){n=l<=c?c:c+r.unit}else{n=l}}else if(!/,\s*$/.test(t)&&(ee(o)||Q(o))){if(V(s)){n=l<=c?c:c+r.unit}else if(/^\{/.test(s)){n=l<=c?l:c+r.unit}else if(ee(s)||Q(s)){n=l>=c?c:l}else if(/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(s)||/=\s*$/.test(s)||M(s)||/^\$[\w-\.\[\]\'\"]/.test(s)){n=c+r.unit}else{n=l}}}return n},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:b}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4484.e1d2565d1a3daa5fe5f1.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4484.e1d2565d1a3daa5fe5f1.js deleted file mode 100644 index 618afdb5a3e9ecc1fdd10b230c7796062e45dc54..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4484.e1d2565d1a3daa5fe5f1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4484],{34484:(e,t,n)=>{n.r(t);n.d(t,{xQuery:()=>z});var r=function(){function e(e){return{type:e,style:"keyword"}}var t=e("operator"),n={type:"atom",style:"atom"},r={type:"punctuation",style:null},a={type:"axis_specifier",style:"qualifier"};var i={",":r};var s=["after","all","allowing","ancestor","ancestor-or-self","any","array","as","ascending","at","attribute","base-uri","before","boundary-space","by","case","cast","castable","catch","child","collation","comment","construction","contains","content","context","copy","copy-namespaces","count","decimal-format","declare","default","delete","descendant","descendant-or-self","descending","diacritics","different","distance","document","document-node","element","else","empty","empty-sequence","encoding","end","entire","every","exactly","except","external","first","following","following-sibling","for","from","ftand","ftnot","ft-option","ftor","function","fuzzy","greatest","group","if","import","in","inherit","insensitive","insert","instance","intersect","into","invoke","is","item","language","last","lax","least","let","levels","lowercase","map","modify","module","most","namespace","next","no","node","nodes","no-inherit","no-preserve","not","occurs","of","only","option","order","ordered","ordering","paragraph","paragraphs","parent","phrase","preceding","preceding-sibling","preserve","previous","processing-instruction","relationship","rename","replace","return","revalidation","same","satisfies","schema","schema-attribute","schema-element","score","self","sensitive","sentence","sentences","sequence","skip","sliding","some","stable","start","stemming","stop","strict","strip","switch","text","then","thesaurus","times","to","transform","treat","try","tumbling","type","typeswitch","union","unordered","update","updating","uppercase","using","validate","value","variable","version","weight","when","where","wildcards","window","with","without","word","words","xquery"];for(var o=0,l=s.length;o",">=","<","<=",".","|","?","and","or","div","idiv","mod","*","/","+","-"];for(var o=0,l=c.length;o\"\'\/?]/))g+=y;return a(e,t,c(g,f))}else if(n=="{"){b(t,{type:"codeblock"});return null}else if(n=="}"){w(t);return null}else if(d(t)){if(n==">")return"tag";else if(n=="/"&&e.eat(">")){w(t);return"tag"}else return"variable"}else if(/\d/.test(n)){e.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/);return"atom"}else if(n==="("&&e.eat(":")){b(t,{type:"comment"});return a(e,t,s)}else if(!o&&(n==='"'||n==="'"))return l(e,t,n);else if(n==="$"){return a(e,t,u)}else if(n===":"&&e.eat("=")){return"keyword"}else if(n==="("){b(t,{type:"paren"});return null}else if(n===")"){w(t);return null}else if(n==="["){b(t,{type:"bracket"});return null}else if(n==="]"){w(t);return null}else{var k=r.propertyIsEnumerable(n)&&r[n];if(o&&n==='"')while(e.next()!=='"'){}if(o&&n==="'")while(e.next()!=="'"){}if(!k)e.eatWhile(/[\w\$_-]/);var z=e.eat(":");if(!e.eat(":")&&z){e.eatWhile(/[\w\$_-]/)}if(e.match(/^[ \t]*\(/,false)){i=true}var I=e.current();k=r.propertyIsEnumerable(I)&&r[I];if(i&&!k)k={type:"function_call",style:"def"};if(h(t)){w(t);return"variable"}if(I=="element"||I=="attribute"||k.type=="axis_specifier")b(t,{type:"xmlconstructor"});return k?k.style:"variable"}}function s(e,t){var n=false,r=false,a=0,i;while(i=e.next()){if(i==")"&&n){if(a>0)a--;else{w(t);break}}else if(i==":"&&r){a++}n=i==":";r=i=="("}return"comment"}function o(e,t){return function(n,r){var a;while(a=n.next()){if(a==e){w(r);if(t)r.tokenize=t;break}else if(n.match("{",false)&&g(r)){b(r,{type:"codeblock"});r.tokenize=i;return"string"}}return"string"}}function l(e,t,n,r){let i=o(n,r);b(t,{type:"string",name:n,tokenize:i});return a(e,t,i)}function u(e,t){var n=/[\w\$_-]/;if(e.eat('"')){while(e.next()!=='"'){}e.eat(":")}else{e.eatWhile(n);if(!e.match(":=",false))e.eat(":")}e.eatWhile(n);t.tokenize=i;return"variable"}function c(e,t){return function(n,r){n.eatSpace();if(t&&n.eat(">")){w(r);r.tokenize=i;return"tag"}if(!n.eat("/"))b(r,{type:"tag",name:e,tokenize:i});if(!n.eat(">")){r.tokenize=f;return"tag"}else{r.tokenize=i}return"tag"}}function f(e,t){var n=e.next();if(n=="/"&&e.eat(">")){if(g(t))w(t);if(d(t))w(t);return"tag"}if(n==">"){if(g(t))w(t);return"tag"}if(n=="=")return null;if(n=='"'||n=="'")return l(e,t,n,f);if(!g(t))b(t,{type:"attribute",tokenize:f});e.eat(/[a-zA-Z_:]/);e.eatWhile(/[-a-zA-Z0-9_:.]/);e.eatSpace();if(e.match(">",false)||e.match("/",false)){w(t);t.tokenize=i}return"attribute"}function p(e,t){var n;while(n=e.next()){if(n=="-"&&e.match("->",true)){t.tokenize=i;return"comment"}}}function m(e,t){var n;while(n=e.next()){if(n=="]"&&e.match("]",true)){t.tokenize=i;return"comment"}}}function x(e,t){var n;while(n=e.next()){if(n=="?"&&e.match(">",true)){t.tokenize=i;return"processingInstruction"}}}function d(e){return k(e,"tag")}function g(e){return k(e,"attribute")}function h(e){return k(e,"xmlconstructor")}function y(e){return k(e,"string")}function v(e){if(e.current()==='"')return e.match(/^[^\"]+\"\:/,false);else if(e.current()==="'")return e.match(/^[^\"]+\'\:/,false);else return false}function k(e,t){return e.stack.length&&e.stack[e.stack.length-1].type==t}function b(e,t){e.stack.push(t)}function w(e){e.stack.pop();var t=e.stack.length&&e.stack[e.stack.length-1].tokenize;e.tokenize=t||i}const z={name:"xquery",startState:function(){return{tokenize:i,cc:[],stack:[]}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t);return n},languageData:{commentTokens:{block:{open:"(:",close:":)"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4486.8d2f41ae787607b7bf31.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4486.8d2f41ae787607b7bf31.js deleted file mode 100644 index c097531a45a8c81ff184dc976f00200ed95dfe09..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4486.8d2f41ae787607b7bf31.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4486],{14486:(e,O,T)=>{T.r(O);T.d(O,{pig:()=>u});function E(e){var O={},T=e.split(" ");for(var E=0;E=&?:\/!|]/;function n(e,O,T){O.tokenize=T;return T(e,O)}function L(e,O){var T=false;var E;while(E=e.next()){if(E=="/"&&T){O.tokenize=i;break}T=E=="*"}return"comment"}function a(e){return function(O,T){var E=false,r,t=false;while((r=O.next())!=null){if(r==e&&!E){t=true;break}E=!E&&r=="\\"}if(t||!E)T.tokenize=i;return"error"}}function i(e,O){var T=e.next();if(T=='"'||T=="'")return n(e,O,a(T));else if(/[\[\]{}\(\),;\.]/.test(T))return null;else if(/\d/.test(T)){e.eatWhile(/[\w\.]/);return"number"}else if(T=="/"){if(e.eat("*")){return n(e,O,L)}else{e.eatWhile(S);return"operator"}}else if(T=="-"){if(e.eat("-")){e.skipToEnd();return"comment"}else{e.eatWhile(S);return"operator"}}else if(S.test(T)){e.eatWhile(S);return"operator"}else{e.eatWhile(/[\w\$_]/);if(A&&A.propertyIsEnumerable(e.current().toUpperCase())){if(!e.eat(")")&&!e.eat("."))return"keyword"}if(N&&N.propertyIsEnumerable(e.current().toUpperCase()))return"builtin";if(R&&R.propertyIsEnumerable(e.current().toUpperCase()))return"type";return"variable"}}const u={name:"pig",startState:function(){return{tokenize:i,startOfLine:true}},token:function(e,O){if(e.eatSpace())return null;var T=O.tokenize(e,O);return T},languageData:{autocomplete:(r+I+t).split(" ")}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4528.43328125d98d6cfdfa99.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4528.43328125d98d6cfdfa99.js deleted file mode 100644 index 85d19a1666ac9378341a12abe96182438460ff75..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4528.43328125d98d6cfdfa99.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4528],{24528:(e,t,n)=>{n.r(t);n.d(t,{c:()=>D,ceylon:()=>V,clike:()=>s,cpp:()=>z,csharp:()=>M,dart:()=>H,java:()=>L,kotlin:()=>O,nesC:()=>A,objectiveC:()=>U,objectiveCpp:()=>$,scala:()=>P,shader:()=>j,squirrel:()=>B});function r(e,t,n,r,a,i){this.indented=e;this.column=t;this.type=n;this.info=r;this.align=a;this.prev=i}function a(e,t,n,a){var i=e.indented;if(e.context&&e.context.type=="statement"&&n!="statement")i=e.context.indented;return e.context=new r(i,t,n,a,null,e.context)}function i(e){var t=e.context.type;if(t==")"||t=="]"||t=="}")e.indented=e.context.indented;return e.context=e.context.prev}function o(e,t,n){if(t.prevToken=="variable"||t.prevToken=="type")return true;if(/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n)))return true;if(t.typeAtEndOfLine&&e.column()==e.indentation())return true}function l(e){for(;;){if(!e||e.type=="top")return true;if(e.type=="}"&&e.prev.info!="namespace")return false;e=e.prev}}function s(e){var t=e.statementIndentUnit,n=e.dontAlignCalls,s=e.keywords||{},c=e.types||{},f=e.builtin||{},d=e.blockKeywords||{},p=e.defKeywords||{},m=e.atoms||{},h=e.hooks||{},y=e.multiLineStrings,g=e.indentStatements!==false,k=e.indentSwitch!==false,b=e.namespaceSeparator,w=e.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,v=e.numberStart||/[\d\.]/,_=e.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,x=e.isOperatorChar||/[+\-*&%=<>!?|\/]/,S=e.isIdentifierChar||/[\w\$_\xa1-\uffff]/,T=e.isReservedIdentifier||false;var N,C;function I(e,t){var n=e.next();if(h[n]){var r=h[n](e,t);if(r!==false)return r}if(n=='"'||n=="'"){t.tokenize=D(n);return t.tokenize(e,t)}if(v.test(n)){e.backUp(1);if(e.match(_))return"number";e.next()}if(w.test(n)){N=n;return null}if(n=="/"){if(e.eat("*")){t.tokenize=z;return z(e,t)}if(e.eat("/")){e.skipToEnd();return"comment"}}if(x.test(n)){while(!e.match(/^\/[\/*]/,false)&&e.eat(x)){}return"operator"}e.eatWhile(S);if(b)while(e.match(b))e.eatWhile(S);var a=e.current();if(u(s,a)){if(u(d,a))N="newstatement";if(u(p,a))C=true;return"keyword"}if(u(c,a))return"type";if(u(f,a)||T&&T(a)){if(u(d,a))N="newstatement";return"builtin"}if(u(m,a))return"atom";return"variable"}function D(e){return function(t,n){var r=false,a,i=false;while((a=t.next())!=null){if(a==e&&!r){i=true;break}r=!r&&a=="\\"}if(i||!(r||y))n.tokenize=null;return"string"}}function z(e,t){var n=false,r;while(r=e.next()){if(r=="/"&&n){t.tokenize=null;break}n=r=="*"}return"comment"}function L(t,n){if(e.typeFirstDefinitions&&t.eol()&&l(n.context))n.typeAtEndOfLine=o(t,n,t.pos)}return{name:e.name,startState:function(e){return{tokenize:null,context:new r(-e,0,"top",null,false),indented:0,startOfLine:true,prevToken:null}},token:function(t,n){var r=n.context;if(t.sol()){if(r.align==null)r.align=false;n.indented=t.indentation();n.startOfLine=true}if(t.eatSpace()){L(t,n);return null}N=C=null;var s=(n.tokenize||I)(t,n);if(s=="comment"||s=="meta")return s;if(r.align==null)r.align=true;if(N==";"||N==":"||N==","&&t.match(/^\s*(?:\/\/.*)?$/,false))while(n.context.type=="statement")i(n);else if(N=="{")a(n,t.column(),"}");else if(N=="[")a(n,t.column(),"]");else if(N=="(")a(n,t.column(),")");else if(N=="}"){while(r.type=="statement")r=i(n);if(r.type=="}")r=i(n);while(r.type=="statement")r=i(n)}else if(N==r.type)i(n);else if(g&&((r.type=="}"||r.type=="top")&&N!=";"||r.type=="statement"&&N=="newstatement")){a(n,t.column(),"statement",t.current())}if(s=="variable"&&(n.prevToken=="def"||e.typeFirstDefinitions&&o(t,n,t.start)&&l(n.context)&&t.match(/^\s*\(/,false)))s="def";if(h.token){var c=h.token(t,n,s);if(c!==undefined)s=c}if(s=="def"&&e.styleDefs===false)s="variable";n.startOfLine=false;n.prevToken=C?"def":s||N;L(t,n);return s},indent:function(r,a,i){if(r.tokenize!=I&&r.tokenize!=null||r.typeAtEndOfLine&&l(r.context))return null;var o=r.context,s=a&&a.charAt(0);var c=s==o.type;if(o.type=="statement"&&s=="}")o=o.prev;if(e.dontIndentStatements)while(o.type=="statement"&&e.dontIndentStatements.test(o.info))o=o.prev;if(h.indent){var u=h.indent(r,o,a,i.unit);if(typeof u=="number")return u}var f=o.prev&&o.prev.info=="switch";if(e.allmanIndentation&&/[{(]/.test(s)){while(o.type!="top"&&o.type!="}")o=o.prev;return o.indented}if(o.type=="statement")return o.indented+(s=="{"?0:t||i.unit);if(o.align&&(!n||o.type!=")"))return o.column+(c?0:1);if(o.type==")"&&!c)return o.indented+(t||i.unit);return o.indented+(c?0:i.unit)+(!c&&f&&!/^(?:case|default)\b/.test(a)?i.unit:0)},languageData:{indentOnInput:k?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(s).concat(Object.keys(c)).concat(Object.keys(f)).concat(Object.keys(m)),...e.languageData}}}function c(e){var t={},n=e.split(" ");for(var r=0;r!?|\/#:@]/,hooks:{"@":function(e){e.eatWhile(/[\w\$_]/);return"meta"},'"':function(e,t){if(!e.match('""'))return false;t.tokenize=E;return t.tokenize(e,t)},"'":function(e){if(e.match(/^(\\[^'\s]+|[^\\'])'/))return"character";e.eatWhile(/[\w\$_\xa1-\uffff]/);return"atom"},"=":function(e,t){var n=t.context;if(n.type=="}"&&n.align&&e.eat(">")){t.context=new r(n.indented,n.column,n.type,n.info,null,n.prev);return"operator"}else{return false}},"/":function(e,t){if(!e.eat("*"))return false;t.tokenize=F(1);return t.tokenize(e,t)}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function R(e){return function(t,n){var r=false,a,i=false;while(!t.eol()){if(!e&&!r&&t.match('"')){i=true;break}if(e&&t.match('"""')){i=true;break}a=t.next();if(!r&&a=="$"&&t.match("{"))t.skipTo("}");r=!r&&a=="\\"&&!e}if(i||!e)n.tokenize=null;return"string"}}const O=s({name:"kotlin",keywords:c("package as typealias class interface this super val operator "+"var fun for is in This throw return annotation "+"break continue object if else while do try when !in !is as? "+"file import where by get set abstract enum open inner override private public internal "+"protected catch finally out final vararg reified dynamic companion constructor init "+"sealed field property receiver param sparam lateinit data inline noinline tailrec "+"external annotation crossinline const operator infix suspend actual expect setparam"),types:c("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable "+"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process "+"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String "+"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray "+"ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy "+"LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:false,indentStatements:false,multiLineStrings:true,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:c("catch class do else finally for if where try while enum"),defKeywords:c("class val var object interface fun"),atoms:c("true false null this"),hooks:{"@":function(e){e.eatWhile(/[\w\$_]/);return"meta"},"*":function(e,t){return t.prevToken=="."?"variable":"operator"},'"':function(e,t){t.tokenize=R(e.match('""'));return t.tokenize(e,t)},"/":function(e,t){if(!e.eat("*"))return false;t.tokenize=F(1);return t.tokenize(e,t)},indent:function(e,t,n,r){var a=n&&n.charAt(0);if((e.prevToken=="}"||e.prevToken==")")&&n=="")return e.indented;if(e.prevToken=="operator"&&n!="}"&&e.context.type!="}"||e.prevToken=="variable"&&a=="."||(e.prevToken=="}"||e.prevToken==")")&&a==".")return r*2+t.indented;if(t.align&&t.type=="}")return t.indented+(e.context.type==(n||"").charAt(0)?0:r)}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});const j=s({name:"shader",keywords:c("sampler1D sampler2D sampler3D samplerCube "+"sampler1DShadow sampler2DShadow "+"const attribute uniform varying "+"break continue discard return "+"for while do if else struct "+"in out inout"),types:c("float int bool void "+"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 "+"mat2 mat3 mat4"),blockKeywords:c("for while do if else struct"),builtin:c("radians degrees sin cos tan asin acos atan "+"pow exp log exp2 sqrt inversesqrt "+"abs sign floor ceil fract mod min max clamp mix step smoothstep "+"length distance dot cross normalize ftransform faceforward "+"reflect refract matrixCompMult "+"lessThan lessThanEqual greaterThan greaterThanEqual "+"equal notEqual any all not "+"texture1D texture1DProj texture1DLod texture1DProjLod "+"texture2D texture2DProj texture2DLod texture2DProjLod "+"texture3D texture3DProj texture3DLod texture3DProjLod "+"textureCube textureCubeLod "+"shadow1D shadow2D shadow1DProj shadow2DProj "+"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod "+"dFdx dFdy fwidth "+"noise1 noise2 noise3 noise4"),atoms:c("true false "+"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex "+"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 "+"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 "+"gl_FogCoord gl_PointCoord "+"gl_Position gl_PointSize gl_ClipVertex "+"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor "+"gl_TexCoord gl_FogFragCoord "+"gl_FragCoord gl_FrontFacing "+"gl_FragData gl_FragDepth "+"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix "+"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse "+"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse "+"gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose "+"gl_ProjectionMatrixInverseTranspose "+"gl_ModelViewProjectionMatrixInverseTranspose "+"gl_TextureMatrixInverseTranspose "+"gl_NormalScale gl_DepthRange gl_ClipPlane "+"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel "+"gl_FrontLightModelProduct gl_BackLightModelProduct "+"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ "+"gl_FogParameters "+"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords "+"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats "+"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits "+"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits "+"gl_MaxDrawBuffers"),indentSwitch:false,hooks:{"#":v}});const A=s({name:"nesc",keywords:c(f+" as atomic async call command component components configuration event generic "+"implementation includes interface module new norace nx_struct nx_union post provides "+"signal task uses abstract extends"),types:g,blockKeywords:c(b),atoms:c("null true false"),hooks:{"#":v}});const U=s({name:"objectivec",keywords:c(f+" "+p),types:k,builtin:c(m),blockKeywords:c(b+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:c(w+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:true,atoms:c("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:x,hooks:{"#":v,"*":_}});const $=s({name:"objectivecpp",keywords:c(f+" "+p+" "+d),types:k,builtin:c(m),blockKeywords:c(b+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:c(w+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:true,atoms:c("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:x,hooks:{"#":v,"*":_,u:T,U:T,L:T,R:T,0:S,1:S,2:S,3:S,4:S,5:S,6:S,7:S,8:S,9:S,token:function(e,t,n){if(n=="variable"&&e.peek()=="("&&(t.prevToken==";"||t.prevToken==null||t.prevToken=="}")&&N(e.current()))return"def"}},namespaceSeparator:"::"});const B=s({name:"squirrel",keywords:c("base break clone continue const default delete enum extends function in class"+" foreach local resume return this throw typeof yield constructor instanceof static"),types:g,blockKeywords:c("case catch class else for foreach if switch try while"),defKeywords:c("function local class"),typeFirstDefinitions:true,atoms:c("true false null"),hooks:{"#":v}});var K=null;function q(e){return function(t,n){var r=false,a,i=false;while(!t.eol()){if(!r&&t.match('"')&&(e=="single"||t.match('""'))){i=true;break}if(!r&&t.match("``")){K=q(e);i=true;break}a=t.next();r=e=="single"&&!r&&a=="\\"}if(i)n.tokenize=null;return"string"}}const V=s({name:"ceylon",keywords:c("abstracts alias assembly assert assign break case catch class continue dynamic else"+" exists extends finally for function given if import in interface is let module new"+" nonempty object of out outer package return satisfies super switch then this throw"+" try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:c("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:c("class dynamic function interface module object package value"),builtin:c("abstract actual aliased annotation by default deprecated doc final formal late license"+" native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:true,typeFirstDefinitions:true,atoms:c("true false null larger smaller equal empty finished"),indentSwitch:false,styleDefs:false,hooks:{"@":function(e){e.eatWhile(/[\w\$_]/);return"meta"},'"':function(e,t){t.tokenize=q(e.match('""')?"triple":"single");return t.tokenize(e,t)},"`":function(e,t){if(!K||!e.match("`"))return false;t.tokenize=K;K=null;return t.tokenize(e,t)},"'":function(e){if(e.match(/^(\\[^'\s]+|[^\\'])'/))return"string.special";e.eatWhile(/[\w\$_\xa1-\uffff]/);return"atom"},token:function(e,t,n){if((n=="variable"||n=="type")&&t.prevToken=="."){return"variableName.special"}}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function W(e){(e.interpolationStack||(e.interpolationStack=[])).push(e.tokenize)}function G(e){return(e.interpolationStack||(e.interpolationStack=[])).pop()}function Z(e){return e.interpolationStack?e.interpolationStack.length:0}function Q(e,t,n,r){var a=false;if(t.eat(e)){if(t.eat(e))a=true;else return"string"}function i(t,n){var i=false;while(!t.eol()){if(!r&&!i&&t.peek()=="$"){W(n);n.tokenize=X;return"string"}var o=t.next();if(o==e&&!i&&(!a||t.match(e+e))){n.tokenize=null;break}i=!r&&!i&&o=="\\"}return"string"}n.tokenize=i;return i(t,n)}function X(e,t){e.eat("$");if(e.eat("{")){t.tokenize=null}else{t.tokenize=Y}return null}function Y(e,t){e.eatWhile(/[\w_]/);t.tokenize=G(t);return"variable"}const H=s({name:"dart",keywords:c("this super static final const abstract class extends external factory "+"implements mixin get native set typedef with enum throw rethrow assert break case "+"continue default in return new deferred async await covariant try catch finally "+"do else for if switch while import library export part of show hide is as extension "+"on yield late required sealed base interface when inline"),blockKeywords:c("try catch finally do else for if switch while"),builtin:c("void bool num int double dynamic var String Null Never"),atoms:c("true false null"),number:/^(?:0x[a-f\d_]+|(?:[\d_]+\.?[\d_]*|\.[\d_]+)(?:e[-+]?[\d_]+)?)/i,hooks:{"@":function(e){e.eatWhile(/[\w\$_\.]/);return"meta"},"'":function(e,t){return Q("'",e,t,false)},'"':function(e,t){return Q('"',e,t,false)},r:function(e,t){var n=e.peek();if(n=="'"||n=='"'){return Q(e.next(),e,t,true)}return false},"}":function(e,t){if(Z(t)>0){t.tokenize=G(t);return null}return false},"/":function(e,t){if(!e.eat("*"))return false;t.tokenize=F(1);return t.tokenize(e,t)},token:function(e,t,n){if(n=="variable"){var r=RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g");if(r.test(e.current())){return"type"}}}}})}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4611.bd2b768223b0cd570834.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4611.bd2b768223b0cd570834.js deleted file mode 100644 index 4be8f1b60fb1932d5eef0b205938fc36070fcd62..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4611.bd2b768223b0cd570834.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4611],{64611:(e,t,i)=>{i.r(t);i.d(t,{textile:()=>m});var n={addition:"inserted",attributes:"propertyName",bold:"strong",cite:"keyword",code:"monospace",definitionList:"list",deletion:"deleted",div:"punctuation",em:"emphasis",footnote:"variable",footCite:"qualifier",header:"heading",html:"comment",image:"atom",italic:"emphasis",link:"link",linkDefinition:"link",list1:"list",list2:"list.special",list3:"list",notextile:"string.special",pre:"operator",p:"content",quote:"bracket",span:"quote",specialChar:"character",strong:"strong",sub:"content.special",sup:"content.special",table:"variableName.special",tableHeading:"operator"};function a(e,t){t.mode=d.newLayout;t.tableHeading=false;if(t.layoutType==="definitionList"&&t.spanningLayout&&e.match(p("definitionListEnd"),false))t.spanningLayout=false}function r(e,t,i){if(i==="_"){if(e.eat("_"))return l(e,t,"italic",/__/,2);else return l(e,t,"em",/_/,1)}if(i==="*"){if(e.eat("*")){return l(e,t,"bold",/\*\*/,2)}return l(e,t,"strong",/\*/,1)}if(i==="["){if(e.match(/\d+\]/))t.footCite=true;return s(t)}if(i==="("){var a=e.match(/^(r|tm|c)\)/);if(a)return n.specialChar}if(i==="<"&&e.match(/(\w+)[^>]+>[^<]+<\/\1>/))return n.html;if(i==="?"&&e.eat("?"))return l(e,t,"cite",/\?\?/,2);if(i==="="&&e.eat("="))return l(e,t,"notextile",/==/,2);if(i==="-"&&!e.eat("-"))return l(e,t,"deletion",/-/,1);if(i==="+")return l(e,t,"addition",/\+/,1);if(i==="~")return l(e,t,"sub",/~/,1);if(i==="^")return l(e,t,"sup",/\^/,1);if(i==="%")return l(e,t,"span",/%/,1);if(i==="@")return l(e,t,"code",/@/,1);if(i==="!"){var r=l(e,t,"image",/(?:\([^\)]+\))?!/,1);e.match(/^:\S+/);return r}return s(t)}function l(e,t,i,n,a){var r=e.pos>a?e.string.charAt(e.pos-a-1):null;var l=e.peek();if(t[i]){if((!l||/\W/.test(l))&&r&&/\S/.test(r)){var o=s(t);t[i]=false;return o}}else if((!r||/\W/.test(r))&&l&&/\S/.test(l)&&e.match(new RegExp("^.*\\S"+n.source+"(?:\\W|$)"),false)){t[i]=true;t.mode=d.attributes}return s(t)}function s(e){var t=o(e);if(t)return t;var i=[];if(e.layoutType)i.push(n[e.layoutType]);i=i.concat(u(e,"addition","bold","cite","code","deletion","em","footCite","image","italic","link","span","strong","sub","sup","table","tableHeading"));if(e.layoutType==="header")i.push(n.header+"-"+e.header);return i.length?i.join(" "):null}function o(e){var t=e.layoutType;switch(t){case"notextile":case"code":case"pre":return n[t];default:if(e.notextile)return n.notextile+(t?" "+n[t]:"");return null}}function u(e){var t=[];for(var i=1;i]+)?>(?:[^<]+<\/\1>)?/,link:/[^"]+":\S/,linkDefinition:/\[[^\s\]]+\]\S+/,list:/(?:#+|\*+)/,notextile:"notextile",para:"p",pre:"pre",table:"table",tableCellAttributes:/[\/\\]\d+/,tableHeading:/\|_\./,tableText:/[^"_\*\[\(\?\+~\^%@|-]+/,text:/[^!"_=\*\[\(<\?\+~\^%@-]+/},attributes:{align:/(?:<>|<|>|=)/,selector:/\([^\(][^\)]+\)/,lang:/\[[^\[\]]+\]/,pad:/(?:\(+|\)+){1,2}/,css:/\{[^\}]+\}/},createRe:function(e){switch(e){case"drawTable":return f.makeRe("^",f.single.drawTable,"$");case"html":return f.makeRe("^",f.single.html,"(?:",f.single.html,")*","$");case"linkDefinition":return f.makeRe("^",f.single.linkDefinition,"$");case"listLayout":return f.makeRe("^",f.single.list,p("allAttributes"),"*\\s+");case"tableCellAttributes":return f.makeRe("^",f.choiceRe(f.single.tableCellAttributes,p("allAttributes")),"+\\.");case"type":return f.makeRe("^",p("allTypes"));case"typeLayout":return f.makeRe("^",p("allTypes"),p("allAttributes"),"*\\.\\.?","(\\s+|$)");case"attributes":return f.makeRe("^",p("allAttributes"),"+");case"allTypes":return f.choiceRe(f.single.div,f.single.foot,f.single.header,f.single.bc,f.single.bq,f.single.notextile,f.single.pre,f.single.table,f.single.para);case"allAttributes":return f.choiceRe(f.attributes.selector,f.attributes.css,f.attributes.lang,f.attributes.align,f.attributes.pad);default:return f.makeRe("^",f.single[e])}},makeRe:function(){var e="";for(var t=0;t{n.r(t);n.d(t,{ruby:()=>b});function r(e){var t={};for(var n=0,r=e.length;n]/)){e.eat(/[\<\>]/);return"atom"}if(e.eat(/[\+\-\*\/\&\|\:\!]/)){return"atom"}if(e.eat(/[a-zA-Z$@_\xa1-\uffff]/)){e.eatWhile(/[\w$\xa1-\uffff]/);e.eat(/[\?\!\=]/);return"atom"}return"operator"}else if(n=="@"&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/)){e.eat("@");e.eatWhile(/[\w\xa1-\uffff]/);return"propertyName"}else if(n=="$"){if(e.eat(/[a-zA-Z_]/)){e.eatWhile(/[\w]/)}else if(e.eat(/\d/)){e.eat(/\d/)}else{e.next()}return"variableName.special"}else if(/[a-zA-Z_\xa1-\uffff]/.test(n)){e.eatWhile(/[\w\xa1-\uffff]/);e.eat(/[\?\!]/);if(e.eat(":"))return"atom";return"variable"}else if(n=="|"&&(t.varList||t.lastTok=="{"||t.lastTok=="do")){s="|";return null}else if(/[\(\)\[\]{}\\;]/.test(n)){s=n;return null}else if(n=="-"&&e.eat(">")){return"operator"}else if(/[=+\-\/*:\.^%<>~|]/.test(n)){var o=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);if(n=="."&&!o)s=".";return"operator"}else{return null}}function d(e){var t=e.pos,n=0,r,i=false,a=false;while((r=e.next())!=null){if(!a){if("[{(".indexOf(r)>-1){n++}else if("]})".indexOf(r)>-1){n--;if(n<0)break}else if(r=="/"&&n==0){i=true;break}a=r=="\\"}else{a=false}}e.backUp(e.pos-t);return i}function k(e){if(!e)e=1;return function(t,n){if(t.peek()=="}"){if(e==1){n.tokenize.pop();return n.tokenize[n.tokenize.length-1](t,n)}else{n.tokenize[n.tokenize.length-1]=k(e-1)}}else if(t.peek()=="{"){n.tokenize[n.tokenize.length-1]=k(e+1)}return p(t,n)}}function h(){var e=false;return function(t,n){if(e){n.tokenize.pop();return n.tokenize[n.tokenize.length-1](t,n)}e=true;return p(t,n)}}function m(e,t,n,r){return function(i,a){var l=false,o;if(a.context.type==="read-quoted-paused"){a.context=a.context.prev;i.eat("}")}while((o=i.next())!=null){if(o==e&&(r||!l)){a.tokenize.pop();break}if(n&&o=="#"&&!l){if(i.eat("{")){if(e=="}"){a.context={prev:a.context,type:"read-quoted-paused"}}a.tokenize.push(k());break}else if(/[@\$]/.test(i.peek())){a.tokenize.push(h());break}}l=!l&&o=="\\"}return t}}function v(e,t){return function(n,r){if(t)n.eatSpace();if(n.match(e))r.tokenize.pop();else n.skipToEnd();return"string"}}function _(e,t){if(e.sol()&&e.match("=end")&&e.eol())t.tokenize.pop();e.skipToEnd();return"comment"}const b={name:"ruby",startState:function(e){return{tokenize:[p],indented:0,context:{type:"top",indented:-e},continuedLine:false,lastTok:null,varList:false}},token:function(e,t){s=null;if(e.sol())t.indented=e.indentation();var n=t.tokenize[t.tokenize.length-1](e,t),r;var i=s;if(n=="variable"){var f=e.current();n=t.lastTok=="."?"property":a.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(f)?"tag":t.lastTok=="def"||t.lastTok=="class"||t.varList?"def":"variable";if(n=="keyword"){i=f;if(l.propertyIsEnumerable(f))r="indent";else if(o.propertyIsEnumerable(f))r="dedent";else if((f=="if"||f=="unless")&&e.column()==e.indentation())r="indent";else if(f=="do"&&t.context.indented{"use strict";var t=function e(t){return r(t)&&!i(t)};function r(e){return!!e&&typeof e==="object"}function i(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||o(e)}var n=typeof Symbol==="function"&&Symbol.for;var s=n?Symbol.for("react.element"):60103;function o(e){return e.$$typeof===s}function a(e){return Array.isArray(e)?[]:{}}function l(e,t){return t.clone!==false&&t.isMergeableObject(e)?g(a(e),e,t):e}function c(e,t,r){return e.concat(t).map((function(e){return l(e,r)}))}function u(e,t){if(!t.customMerge){return g}var r=t.customMerge(e);return typeof r==="function"?r:g}function f(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}function h(e){return Object.keys(e).concat(f(e))}function p(e,t){try{return t in e}catch(r){return false}}function d(e,t){return p(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function m(e,t,r){var i={};if(r.isMergeableObject(e)){h(e).forEach((function(t){i[t]=l(e[t],r)}))}h(t).forEach((function(n){if(d(e,n)){return}if(p(e,n)&&r.isMergeableObject(t[n])){i[n]=u(n,r)(e[n],t[n],r)}else{i[n]=l(t[n],r)}}));return i}function g(e,r,i){i=i||{};i.arrayMerge=i.arrayMerge||c;i.isMergeableObject=i.isMergeableObject||t;i.cloneUnlessOtherwiseSpecified=l;var n=Array.isArray(r);var s=Array.isArray(e);var o=n===s;if(!o){return l(r,i)}else if(n){return i.arrayMerge(e,r,i)}else{return m(e,r,i)}}g.all=function e(t,r){if(!Array.isArray(t)){throw new Error("first argument should be an array")}return t.reduce((function(e,t){return g(e,t,r)}),{})};var y=g;e.exports=y},94460:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.attributeNames=t.elementNames=void 0;t.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((function(e){return[e.toLowerCase(),e]})));t.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((function(e){return[e.toLowerCase(),e]})))},53806:function(e,t,r){"use strict";var i=this&&this.__assign||function(){i=Object.assign||function(e){for(var t,r=1,i=arguments.length;r0){n+=d(e.children,t)}if(t.xmlMode||!p.has(e.name)){n+="")}}return n}function v(e){return"<".concat(e.data,">")}function w(e,t){var r;var i=e.data||"";if(((r=t.encodeEntities)!==null&&r!==void 0?r:t.decodeEntities)!==false&&!(!t.xmlMode&&e.parent&&u.has(e.parent.name))){i=t.xmlMode||t.encodeEntities!=="utf8"?(0,l.encodeXML)(i):(0,l.escapeText)(i)}return i}function x(e){return"")}function T(e){return"\x3c!--".concat(e.data,"--\x3e")}},16243:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.decodeXML=t.decodeHTMLStrict=t.decodeHTML=t.determineBranch=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var n=i(r(72834));t.htmlDecodeTree=n.default;var s=i(r(91518));t.xmlDecodeTree=s.default;var o=i(r(78873));t.decodeCodePoint=o.default;var a=r(78873);Object.defineProperty(t,"replaceCodePoint",{enumerable:true,get:function(){return a.replaceCodePoint}});Object.defineProperty(t,"fromCodePoint",{enumerable:true,get:function(){return a.fromCodePoint}});var l;(function(e){e[e["NUM"]=35]="NUM";e[e["SEMI"]=59]="SEMI";e[e["ZERO"]=48]="ZERO";e[e["NINE"]=57]="NINE";e[e["LOWER_A"]=97]="LOWER_A";e[e["LOWER_F"]=102]="LOWER_F";e[e["LOWER_X"]=120]="LOWER_X";e[e["To_LOWER_BIT"]=32]="To_LOWER_BIT"})(l||(l={}));var c;(function(e){e[e["VALUE_LENGTH"]=49152]="VALUE_LENGTH";e[e["BRANCH_LENGTH"]=16256]="BRANCH_LENGTH";e[e["JUMP_TABLE"]=127]="JUMP_TABLE"})(c=t.BinTrieFlags||(t.BinTrieFlags={}));function u(e){return function t(r,i){var n="";var s=0;var a=0;while((a=r.indexOf("&",a))>=0){n+=r.slice(s,a);s=a;a+=1;if(r.charCodeAt(a)===l.NUM){var u=a+1;var h=10;var p=r.charCodeAt(u);if((p|l.To_LOWER_BIT)===l.LOWER_X){h=16;a+=1;u+=1}do{p=r.charCodeAt(++a)}while(p>=l.ZERO&&p<=l.NINE||h===16&&(p|l.To_LOWER_BIT)>=l.LOWER_A&&(p|l.To_LOWER_BIT)<=l.LOWER_F);if(u!==a){var d=r.substring(u,a);var m=parseInt(d,h);if(r.charCodeAt(a)===l.SEMI){a+=1}else if(i){continue}n+=(0,o.default)(m);s=a}continue}var g=0;var y=1;var b=0;var v=e[b];for(;a>14)-1;if(x===0)break;b+=x}}if(g!==0){var x=(e[g]&c.VALUE_LENGTH)>>14;n+=x===1?String.fromCharCode(e[g]&~c.VALUE_LENGTH):x===2?String.fromCharCode(e[g+1]):String.fromCharCode(e[g+1],e[g+2]);s=a-y+1}}return n+r.slice(s)}}function f(e,t,r,i){var n=(t&c.BRANCH_LENGTH)>>7;var s=t&c.JUMP_TABLE;if(n===0){return s!==0&&i===s?r:-1}if(s){var o=i-s;return o<0||o>=n?-1:e[r+o]-1}var a=r;var l=a+n-1;while(a<=l){var u=a+l>>>1;var f=e[u];if(fi){l=u-1}else{return e[u+n]}}return-1}t.determineBranch=f;var h=u(n.default);var p=u(s.default);function d(e){return h(e,false)}t.decodeHTML=d;function m(e){return h(e,true)}t.decodeHTMLStrict=m;function g(e){return p(e,true)}t.decodeXML=g},78873:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:true});t.replaceCodePoint=t.fromCodePoint=void 0;var i=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);t.fromCodePoint=(r=String.fromCodePoint)!==null&&r!==void 0?r:function(e){var t="";if(e>65535){e-=65536;t+=String.fromCharCode(e>>>10&1023|55296);e=56320|e&1023}t+=String.fromCharCode(e);return t};function n(e){var t;if(e>=55296&&e<=57343||e>1114111){return 65533}return(t=i.get(e))!==null&&t!==void 0?t:e}t.replaceCodePoint=n;function s(e){return(0,t.fromCodePoint)(n(e))}t["default"]=s},46095:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.encodeNonAsciiHTML=t.encodeHTML=void 0;var n=i(r(97195));var s=r(53590);var o=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function a(e){return c(o,e)}t.encodeHTML=a;function l(e){return c(s.xmlReplacer,e)}t.encodeNonAsciiHTML=l;function c(e,t){var r="";var i=0;var o;while((o=e.exec(t))!==null){var a=o.index;r+=t.substring(i,a);var l=t.charCodeAt(a);var c=n.default.get(l);if(typeof c==="object"){if(a+1{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.getCodePoint=t.xmlReplacer=void 0;t.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var r=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);t.getCodePoint=String.prototype.codePointAt!=null?function(e,t){return e.codePointAt(t)}:function(e,t){return(e.charCodeAt(t)&64512)===55296?(e.charCodeAt(t)-55296)*1024+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)};function i(e){var i="";var n=0;var s;while((s=t.xmlReplacer.exec(e))!==null){var o=s.index;var a=e.charCodeAt(o);var l=r.get(a);if(l!==undefined){i+=e.substring(n,o)+l;n=o+1}else{i+="".concat(e.substring(n,o),"&#x").concat((0,t.getCodePoint)(e,o).toString(16),";");n=t.xmlReplacer.lastIndex+=Number((a&64512)===55296)}}return i+e.substr(n)}t.encodeXML=i;t.escape=i;function n(e,t){return function r(i){var n;var s=0;var o="";while(n=e.exec(i)){if(s!==n.index){o+=i.substring(s,n.index)}o+=t.get(n[0].charCodeAt(0));s=n.index+1}return o+i.substring(s)}}t.escapeUTF8=n(/[&<>'"]/g,r);t.escapeAttribute=n(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]]));t.escapeText=n(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},72834:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((function(e){return e.charCodeAt(0)})))},91518:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((function(e){return e.charCodeAt(0)})))},97195:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function r(e){for(var t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.encodeHTML5=t.encodeHTML4=t.encodeNonAsciiHTML=t.encodeHTML=t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.encode=t.decodeStrict=t.decode=t.EncodingMode=t.DecodingMode=t.EntityLevel=void 0;var i=r(16243);var n=r(46095);var s=r(53590);var o;(function(e){e[e["XML"]=0]="XML";e[e["HTML"]=1]="HTML"})(o=t.EntityLevel||(t.EntityLevel={}));var a;(function(e){e[e["Legacy"]=0]="Legacy";e[e["Strict"]=1]="Strict"})(a=t.DecodingMode||(t.DecodingMode={}));var l;(function(e){e[e["UTF8"]=0]="UTF8";e[e["ASCII"]=1]="ASCII";e[e["Extensive"]=2]="Extensive";e[e["Attribute"]=3]="Attribute";e[e["Text"]=4]="Text"})(l=t.EncodingMode||(t.EncodingMode={}));function c(e,t){if(t===void 0){t=o.XML}var r=typeof t==="number"?{level:t}:t;if(r.level===o.HTML){if(r.mode===a.Strict){return(0,i.decodeHTMLStrict)(e)}return(0,i.decodeHTML)(e)}return(0,i.decodeXML)(e)}t.decode=c;function u(e,t){if(t===void 0){t=o.XML}var r=typeof t==="number"?{level:t}:t;if(r.level===o.HTML){if(r.mode===a.Legacy){return(0,i.decodeHTML)(e)}return(0,i.decodeHTMLStrict)(e)}return(0,i.decodeXML)(e)}t.decodeStrict=u;function f(e,t){if(t===void 0){t=o.XML}var r=typeof t==="number"?{level:t}:t;if(r.mode===l.UTF8)return(0,s.escapeUTF8)(e);if(r.mode===l.Attribute)return(0,s.escapeAttribute)(e);if(r.mode===l.Text)return(0,s.escapeText)(e);if(r.level===o.HTML){if(r.mode===l.ASCII){return(0,n.encodeNonAsciiHTML)(e)}return(0,n.encodeHTML)(e)}return(0,s.encodeXML)(e)}t.encode=f;var h=r(53590);Object.defineProperty(t,"encodeXML",{enumerable:true,get:function(){return h.encodeXML}});Object.defineProperty(t,"escape",{enumerable:true,get:function(){return h.escape}});Object.defineProperty(t,"escapeUTF8",{enumerable:true,get:function(){return h.escapeUTF8}});Object.defineProperty(t,"escapeAttribute",{enumerable:true,get:function(){return h.escapeAttribute}});Object.defineProperty(t,"escapeText",{enumerable:true,get:function(){return h.escapeText}});var p=r(46095);Object.defineProperty(t,"encodeHTML",{enumerable:true,get:function(){return p.encodeHTML}});Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:true,get:function(){return p.encodeNonAsciiHTML}});Object.defineProperty(t,"encodeHTML4",{enumerable:true,get:function(){return p.encodeHTML}});Object.defineProperty(t,"encodeHTML5",{enumerable:true,get:function(){return p.encodeHTML}});var d=r(16243);Object.defineProperty(t,"decodeXML",{enumerable:true,get:function(){return d.decodeXML}});Object.defineProperty(t,"decodeHTML",{enumerable:true,get:function(){return d.decodeHTML}});Object.defineProperty(t,"decodeHTMLStrict",{enumerable:true,get:function(){return d.decodeHTMLStrict}});Object.defineProperty(t,"decodeHTML4",{enumerable:true,get:function(){return d.decodeHTML}});Object.defineProperty(t,"decodeHTML5",{enumerable:true,get:function(){return d.decodeHTML}});Object.defineProperty(t,"decodeHTML4Strict",{enumerable:true,get:function(){return d.decodeHTMLStrict}});Object.defineProperty(t,"decodeHTML5Strict",{enumerable:true,get:function(){return d.decodeHTMLStrict}});Object.defineProperty(t,"decodeXMLStrict",{enumerable:true,get:function(){return d.decodeXML}})},45413:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0;var r;(function(e){e["Root"]="root";e["Text"]="text";e["Directive"]="directive";e["Comment"]="comment";e["Script"]="script";e["Style"]="style";e["Tag"]="tag";e["CDATA"]="cdata";e["Doctype"]="doctype"})(r=t.ElementType||(t.ElementType={}));function i(e){return e.type===r.Tag||e.type===r.Script||e.type===r.Style}t.isTag=i;t.Root=r.Root;t.Text=r.Text;t.Directive=r.Directive;t.Comment=r.Comment;t.Script=r.Script;t.Style=r.Style;t.Tag=r.Tag;t.CDATA=r.CDATA;t.Doctype=r.Doctype},52834:e=>{"use strict";e.exports=e=>{if(typeof e!=="string"){throw new TypeError("Expected a string")}return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},11724:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){if(i===undefined)i=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,i,n)}:function(e,t,r,i){if(i===undefined)i=r;e[i]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))i(t,e,r);n(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.Parser=void 0;var o=s(r(57918));var a=r(66032);var l=new Set(["input","option","optgroup","select","button","datalist","textarea"]);var c=new Set(["p"]);var u=new Set(["thead","tbody"]);var f=new Set(["dd","dt"]);var h=new Set(["rt","rp"]);var p=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",c],["h1",c],["h2",c],["h3",c],["h4",c],["h5",c],["h6",c],["select",l],["input",l],["output",l],["button",l],["datalist",l],["textarea",l],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",f],["dt",f],["address",c],["article",c],["aside",c],["blockquote",c],["details",c],["div",c],["dl",c],["fieldset",c],["figcaption",c],["figure",c],["footer",c],["form",c],["header",c],["hr",c],["main",c],["nav",c],["ol",c],["pre",c],["section",c],["table",c],["ul",c],["rt",h],["rp",h],["tbody",u],["tfoot",u]]);var d=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);var m=new Set(["math","svg"]);var g=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]);var y=/\s|\//;var b=function(){function e(e,t){if(t===void 0){t={}}var r,i,n,s,a;this.options=t;this.startIndex=0;this.endIndex=0;this.openTagStart=0;this.tagname="";this.attribname="";this.attribvalue="";this.attribs=null;this.stack=[];this.foreignContext=[];this.buffers=[];this.bufferOffset=0;this.writeIndex=0;this.ended=false;this.cbs=e!==null&&e!==void 0?e:{};this.lowerCaseTagNames=(r=t.lowerCaseTags)!==null&&r!==void 0?r:!t.xmlMode;this.lowerCaseAttributeNames=(i=t.lowerCaseAttributeNames)!==null&&i!==void 0?i:!t.xmlMode;this.tokenizer=new((n=t.Tokenizer)!==null&&n!==void 0?n:o.default)(this.options,this);(a=(s=this.cbs).onparserinit)===null||a===void 0?void 0:a.call(s,this)}e.prototype.ontext=function(e,t){var r,i;var n=this.getSlice(e,t);this.endIndex=t-1;(i=(r=this.cbs).ontext)===null||i===void 0?void 0:i.call(r,n);this.startIndex=t};e.prototype.ontextentity=function(e){var t,r;var i=this.tokenizer.getSectionStart();this.endIndex=i-1;(r=(t=this.cbs).ontext)===null||r===void 0?void 0:r.call(t,(0,a.fromCodePoint)(e));this.startIndex=i};e.prototype.isVoidElement=function(e){return!this.options.xmlMode&&d.has(e)};e.prototype.onopentagname=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);if(this.lowerCaseTagNames){r=r.toLowerCase()}this.emitOpenTag(r)};e.prototype.emitOpenTag=function(e){var t,r,i,n;this.openTagStart=this.startIndex;this.tagname=e;var s=!this.options.xmlMode&&p.get(e);if(s){while(this.stack.length>0&&s.has(this.stack[this.stack.length-1])){var o=this.stack.pop();(r=(t=this.cbs).onclosetag)===null||r===void 0?void 0:r.call(t,o,true)}}if(!this.isVoidElement(e)){this.stack.push(e);if(m.has(e)){this.foreignContext.push(true)}else if(g.has(e)){this.foreignContext.push(false)}}(n=(i=this.cbs).onopentagname)===null||n===void 0?void 0:n.call(i,e);if(this.cbs.onopentag)this.attribs={}};e.prototype.endOpenTag=function(e){var t,r;this.startIndex=this.openTagStart;if(this.attribs){(r=(t=this.cbs).onopentag)===null||r===void 0?void 0:r.call(t,this.tagname,this.attribs,e);this.attribs=null}if(this.cbs.onclosetag&&this.isVoidElement(this.tagname)){this.cbs.onclosetag(this.tagname,true)}this.tagname=""};e.prototype.onopentagend=function(e){this.endIndex=e;this.endOpenTag(false);this.startIndex=e+1};e.prototype.onclosetag=function(e,t){var r,i,n,s,o,a;this.endIndex=t;var l=this.getSlice(e,t);if(this.lowerCaseTagNames){l=l.toLowerCase()}if(m.has(l)||g.has(l)){this.foreignContext.pop()}if(!this.isVoidElement(l)){var c=this.stack.lastIndexOf(l);if(c!==-1){if(this.cbs.onclosetag){var u=this.stack.length-c;while(u--){this.cbs.onclosetag(this.stack.pop(),u!==0)}}else this.stack.length=c}else if(!this.options.xmlMode&&l==="p"){this.emitOpenTag("p");this.closeCurrentTag(true)}}else if(!this.options.xmlMode&&l==="br"){(i=(r=this.cbs).onopentagname)===null||i===void 0?void 0:i.call(r,"br");(s=(n=this.cbs).onopentag)===null||s===void 0?void 0:s.call(n,"br",{},true);(a=(o=this.cbs).onclosetag)===null||a===void 0?void 0:a.call(o,"br",false)}this.startIndex=t+1};e.prototype.onselfclosingtag=function(e){this.endIndex=e;if(this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]){this.closeCurrentTag(false);this.startIndex=e+1}else{this.onopentagend(e)}};e.prototype.closeCurrentTag=function(e){var t,r;var i=this.tagname;this.endOpenTag(e);if(this.stack[this.stack.length-1]===i){(r=(t=this.cbs).onclosetag)===null||r===void 0?void 0:r.call(t,i,!e);this.stack.pop()}};e.prototype.onattribname=function(e,t){this.startIndex=e;var r=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?r.toLowerCase():r};e.prototype.onattribdata=function(e,t){this.attribvalue+=this.getSlice(e,t)};e.prototype.onattribentity=function(e){this.attribvalue+=(0,a.fromCodePoint)(e)};e.prototype.onattribend=function(e,t){var r,i;this.endIndex=t;(i=(r=this.cbs).onattribute)===null||i===void 0?void 0:i.call(r,this.attribname,this.attribvalue,e===o.QuoteType.Double?'"':e===o.QuoteType.Single?"'":e===o.QuoteType.NoValue?undefined:null);if(this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)){this.attribs[this.attribname]=this.attribvalue}this.attribvalue=""};e.prototype.getInstructionName=function(e){var t=e.search(y);var r=t<0?e:e.substr(0,t);if(this.lowerCaseTagNames){r=r.toLowerCase()}return r};e.prototype.ondeclaration=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var i=this.getInstructionName(r);this.cbs.onprocessinginstruction("!".concat(i),"!".concat(r))}this.startIndex=t+1};e.prototype.onprocessinginstruction=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var i=this.getInstructionName(r);this.cbs.onprocessinginstruction("?".concat(i),"?".concat(r))}this.startIndex=t+1};e.prototype.oncomment=function(e,t,r){var i,n,s,o;this.endIndex=t;(n=(i=this.cbs).oncomment)===null||n===void 0?void 0:n.call(i,this.getSlice(e,t-r));(o=(s=this.cbs).oncommentend)===null||o===void 0?void 0:o.call(s);this.startIndex=t+1};e.prototype.oncdata=function(e,t,r){var i,n,s,o,a,l,c,u,f,h;this.endIndex=t;var p=this.getSlice(e,t-r);if(this.options.xmlMode||this.options.recognizeCDATA){(n=(i=this.cbs).oncdatastart)===null||n===void 0?void 0:n.call(i);(o=(s=this.cbs).ontext)===null||o===void 0?void 0:o.call(s,p);(l=(a=this.cbs).oncdataend)===null||l===void 0?void 0:l.call(a)}else{(u=(c=this.cbs).oncomment)===null||u===void 0?void 0:u.call(c,"[CDATA[".concat(p,"]]"));(h=(f=this.cbs).oncommentend)===null||h===void 0?void 0:h.call(f)}this.startIndex=t+1};e.prototype.onend=function(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var r=this.stack.length;r>0;this.cbs.onclosetag(this.stack[--r],true));}(t=(e=this.cbs).onend)===null||t===void 0?void 0:t.call(e)};e.prototype.reset=function(){var e,t,r,i;(t=(e=this.cbs).onreset)===null||t===void 0?void 0:t.call(e);this.tokenizer.reset();this.tagname="";this.attribname="";this.attribs=null;this.stack.length=0;this.startIndex=0;this.endIndex=0;(i=(r=this.cbs).onparserinit)===null||i===void 0?void 0:i.call(r,this);this.buffers.length=0;this.bufferOffset=0;this.writeIndex=0;this.ended=false};e.prototype.parseComplete=function(e){this.reset();this.end(e)};e.prototype.getSlice=function(e,t){while(e-this.bufferOffset>=this.buffers[0].length){this.shiftBuffer()}var r=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);while(t-this.bufferOffset>this.buffers[0].length){this.shiftBuffer();r+=this.buffers[0].slice(0,t-this.bufferOffset)}return r};e.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length;this.writeIndex--;this.buffers.shift()};e.prototype.write=function(e){var t,r;if(this.ended){(r=(t=this.cbs).onerror)===null||r===void 0?void 0:r.call(t,new Error(".write() after done!"));return}this.buffers.push(e);if(this.tokenizer.running){this.tokenizer.write(e);this.writeIndex++}};e.prototype.end=function(e){var t,r;if(this.ended){(r=(t=this.cbs).onerror)===null||r===void 0?void 0:r.call(t,Error(".end() after done!"));return}if(e)this.write(e);this.ended=true;this.tokenizer.end()};e.prototype.pause=function(){this.tokenizer.pause()};e.prototype.resume=function(){this.tokenizer.resume();while(this.tokenizer.running&&this.writeIndex{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.QuoteType=void 0;var i=r(66032);var n;(function(e){e[e["Tab"]=9]="Tab";e[e["NewLine"]=10]="NewLine";e[e["FormFeed"]=12]="FormFeed";e[e["CarriageReturn"]=13]="CarriageReturn";e[e["Space"]=32]="Space";e[e["ExclamationMark"]=33]="ExclamationMark";e[e["Num"]=35]="Num";e[e["Amp"]=38]="Amp";e[e["SingleQuote"]=39]="SingleQuote";e[e["DoubleQuote"]=34]="DoubleQuote";e[e["Dash"]=45]="Dash";e[e["Slash"]=47]="Slash";e[e["Zero"]=48]="Zero";e[e["Nine"]=57]="Nine";e[e["Semi"]=59]="Semi";e[e["Lt"]=60]="Lt";e[e["Eq"]=61]="Eq";e[e["Gt"]=62]="Gt";e[e["Questionmark"]=63]="Questionmark";e[e["UpperA"]=65]="UpperA";e[e["LowerA"]=97]="LowerA";e[e["UpperF"]=70]="UpperF";e[e["LowerF"]=102]="LowerF";e[e["UpperZ"]=90]="UpperZ";e[e["LowerZ"]=122]="LowerZ";e[e["LowerX"]=120]="LowerX";e[e["OpeningSquareBracket"]=91]="OpeningSquareBracket"})(n||(n={}));var s;(function(e){e[e["Text"]=1]="Text";e[e["BeforeTagName"]=2]="BeforeTagName";e[e["InTagName"]=3]="InTagName";e[e["InSelfClosingTag"]=4]="InSelfClosingTag";e[e["BeforeClosingTagName"]=5]="BeforeClosingTagName";e[e["InClosingTagName"]=6]="InClosingTagName";e[e["AfterClosingTagName"]=7]="AfterClosingTagName";e[e["BeforeAttributeName"]=8]="BeforeAttributeName";e[e["InAttributeName"]=9]="InAttributeName";e[e["AfterAttributeName"]=10]="AfterAttributeName";e[e["BeforeAttributeValue"]=11]="BeforeAttributeValue";e[e["InAttributeValueDq"]=12]="InAttributeValueDq";e[e["InAttributeValueSq"]=13]="InAttributeValueSq";e[e["InAttributeValueNq"]=14]="InAttributeValueNq";e[e["BeforeDeclaration"]=15]="BeforeDeclaration";e[e["InDeclaration"]=16]="InDeclaration";e[e["InProcessingInstruction"]=17]="InProcessingInstruction";e[e["BeforeComment"]=18]="BeforeComment";e[e["CDATASequence"]=19]="CDATASequence";e[e["InSpecialComment"]=20]="InSpecialComment";e[e["InCommentLike"]=21]="InCommentLike";e[e["BeforeSpecialS"]=22]="BeforeSpecialS";e[e["SpecialStartSequence"]=23]="SpecialStartSequence";e[e["InSpecialTag"]=24]="InSpecialTag";e[e["BeforeEntity"]=25]="BeforeEntity";e[e["BeforeNumericEntity"]=26]="BeforeNumericEntity";e[e["InNamedEntity"]=27]="InNamedEntity";e[e["InNumericEntity"]=28]="InNumericEntity";e[e["InHexEntity"]=29]="InHexEntity"})(s||(s={}));function o(e){return e===n.Space||e===n.NewLine||e===n.Tab||e===n.FormFeed||e===n.CarriageReturn}function a(e){return e===n.Slash||e===n.Gt||o(e)}function l(e){return e>=n.Zero&&e<=n.Nine}function c(e){return e>=n.LowerA&&e<=n.LowerZ||e>=n.UpperA&&e<=n.UpperZ}function u(e){return e>=n.UpperA&&e<=n.UpperF||e>=n.LowerA&&e<=n.LowerF}var f;(function(e){e[e["NoValue"]=0]="NoValue";e[e["Unquoted"]=1]="Unquoted";e[e["Single"]=2]="Single";e[e["Double"]=3]="Double"})(f=t.QuoteType||(t.QuoteType={}));var h={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])};var p=function(){function e(e,t){var r=e.xmlMode,n=r===void 0?false:r,o=e.decodeEntities,a=o===void 0?true:o;this.cbs=t;this.state=s.Text;this.buffer="";this.sectionStart=0;this.index=0;this.baseState=s.Text;this.isSpecial=false;this.running=true;this.offset=0;this.sequenceIndex=0;this.trieIndex=0;this.trieCurrent=0;this.entityResult=0;this.entityExcess=0;this.xmlMode=n;this.decodeEntities=a;this.entityTrie=n?i.xmlDecodeTree:i.htmlDecodeTree}e.prototype.reset=function(){this.state=s.Text;this.buffer="";this.sectionStart=0;this.index=0;this.baseState=s.Text;this.currentSequence=undefined;this.running=true;this.offset=0};e.prototype.write=function(e){this.offset+=this.buffer.length;this.buffer=e;this.parse()};e.prototype.end=function(){if(this.running)this.finish()};e.prototype.pause=function(){this.running=false};e.prototype.resume=function(){this.running=true;if(this.indexthis.sectionStart){this.cbs.ontext(this.sectionStart,this.index)}this.state=s.BeforeTagName;this.sectionStart=this.index}else if(this.decodeEntities&&e===n.Amp){this.state=s.BeforeEntity}};e.prototype.stateSpecialStartSequence=function(e){var t=this.sequenceIndex===this.currentSequence.length;var r=t?a(e):(e|32)===this.currentSequence[this.sequenceIndex];if(!r){this.isSpecial=false}else if(!t){this.sequenceIndex++;return}this.sequenceIndex=0;this.state=s.InTagName;this.stateInTagName(e)};e.prototype.stateInSpecialTag=function(e){if(this.sequenceIndex===this.currentSequence.length){if(e===n.Gt||o(e)){var t=this.index-this.currentSequence.length;if(this.sectionStart>14)-1;if(!this.allowLegacyEntity()&&e!==n.Semi){this.trieIndex+=r}else{var s=this.index-this.entityExcess+1;if(s>this.sectionStart){this.emitPartial(this.sectionStart,s)}this.entityResult=this.trieIndex;this.trieIndex+=r;this.entityExcess=0;this.sectionStart=this.index+1;if(r===0){this.emitNamedEntity()}}}};e.prototype.emitNamedEntity=function(){this.state=this.baseState;if(this.entityResult===0){return}var e=(this.entityTrie[this.entityResult]&i.BinTrieFlags.VALUE_LENGTH)>>14;switch(e){case 1:this.emitCodePoint(this.entityTrie[this.entityResult]&~i.BinTrieFlags.VALUE_LENGTH);break;case 2:this.emitCodePoint(this.entityTrie[this.entityResult+1]);break;case 3:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);this.emitCodePoint(this.entityTrie[this.entityResult+2])}}};e.prototype.stateBeforeNumericEntity=function(e){if((e|32)===n.LowerX){this.entityExcess++;this.state=s.InHexEntity}else{this.state=s.InNumericEntity;this.stateInNumericEntity(e)}};e.prototype.emitNumericEntity=function(e){var t=this.index-this.entityExcess-1;var r=t+2+Number(this.state===s.InHexEntity);if(r!==this.index){if(t>this.sectionStart){this.emitPartial(this.sectionStart,t)}this.sectionStart=this.index+Number(e);this.emitCodePoint((0,i.replaceCodePoint)(this.entityResult))}this.state=this.baseState};e.prototype.stateInNumericEntity=function(e){if(e===n.Semi){this.emitNumericEntity(true)}else if(l(e)){this.entityResult=this.entityResult*10+(e-n.Zero);this.entityExcess++}else{if(this.allowLegacyEntity()){this.emitNumericEntity(false)}else{this.state=this.baseState}this.index--}};e.prototype.stateInHexEntity=function(e){if(e===n.Semi){this.emitNumericEntity(true)}else if(l(e)){this.entityResult=this.entityResult*16+(e-n.Zero);this.entityExcess++}else if(u(e)){this.entityResult=this.entityResult*16+((e|32)-n.LowerA+10);this.entityExcess++}else{if(this.allowLegacyEntity()){this.emitNumericEntity(false)}else{this.state=this.baseState}this.index--}};e.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===s.Text||this.baseState===s.InSpecialTag)};e.prototype.cleanup=function(){if(this.running&&this.sectionStart!==this.index){if(this.state===s.Text||this.state===s.InSpecialTag&&this.sequenceIndex===0){this.cbs.ontext(this.sectionStart,this.index);this.sectionStart=this.index}else if(this.state===s.InAttributeValueDq||this.state===s.InAttributeValueSq||this.state===s.InAttributeValueNq){this.cbs.onattribdata(this.sectionStart,this.index);this.sectionStart=this.index}}};e.prototype.shouldContinue=function(){return this.index0?this.children[this.children.length-1]:null},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:false,configurable:true});return t}(o);t.NodeWithChildren=f;var h=function(e){i(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;t.type=s.ElementType.CDATA;return t}Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:false,configurable:true});return t}(f);t.CDATA=h;var p=function(e){i(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;t.type=s.ElementType.Root;return t}Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:false,configurable:true});return t}(f);t.Document=p;var d=function(e){i(t,e);function t(t,r,i,n){if(i===void 0){i=[]}if(n===void 0){n=t==="script"?s.ElementType.Script:t==="style"?s.ElementType.Style:s.ElementType.Tag}var o=e.call(this,i)||this;o.name=t;o.attribs=r;o.type=n;return o}Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var r,i;return{name:t,value:e.attribs[t],namespace:(r=e["x-attribsNamespace"])===null||r===void 0?void 0:r[t],prefix:(i=e["x-attribsPrefix"])===null||i===void 0?void 0:i[t]}}))},enumerable:false,configurable:true});return t}(f);t.Element=d;function m(e){return(0,s.isTag)(e)}t.isTag=m;function g(e){return e.type===s.ElementType.CDATA}t.isCDATA=g;function y(e){return e.type===s.ElementType.Text}t.isText=y;function b(e){return e.type===s.ElementType.Comment}t.isComment=b;function v(e){return e.type===s.ElementType.Directive}t.isDirective=v;function w(e){return e.type===s.ElementType.Root}t.isDocument=w;function x(e){return Object.prototype.hasOwnProperty.call(e,"children")}t.hasChildren=x;function T(e,t){if(t===void 0){t=false}var r;if(y(e)){r=new l(e.data)}else if(b(e)){r=new c(e.data)}else if(m(e)){var i=t?E(e.children):[];var s=new d(e.name,n({},e.attribs),i);i.forEach((function(e){return e.parent=s}));if(e.namespace!=null){s.namespace=e.namespace}if(e["x-attribsNamespace"]){s["x-attribsNamespace"]=n({},e["x-attribsNamespace"])}if(e["x-attribsPrefix"]){s["x-attribsPrefix"]=n({},e["x-attribsPrefix"])}r=s}else if(g(e)){var i=t?E(e.children):[];var o=new h(i);i.forEach((function(e){return e.parent=o}));r=o}else if(w(e)){var i=t?E(e.children):[];var a=new p(i);i.forEach((function(e){return e.parent=a}));if(e["x-mode"]){a["x-mode"]=e["x-mode"]}r=a}else if(v(e)){var f=new u(e.name,e.data);if(e["x-name"]!=null){f["x-name"]=e["x-name"];f["x-publicId"]=e["x-publicId"];f["x-systemId"]=e["x-systemId"]}r=f}else{throw new Error("Not implemented yet: ".concat(e.type))}r.startIndex=e.startIndex;r.endIndex=e.endIndex;if(e.sourceCodeLocation!=null){r.sourceCodeLocation=e.sourceCodeLocation}return r}t.cloneNode=T;function E(e){var t=e.map((function(e){return T(e,true)}));for(var r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getFeed=void 0;var i=r(65247);var n=r(86851);function s(e){var t=f(d,e);return!t?null:t.name==="feed"?o(t):a(t)}t.getFeed=s;function o(e){var t;var r=e.children;var i={type:"atom",items:(0,n.getElementsByTagName)("entry",r).map((function(e){var t;var r=e.children;var i={media:u(r)};p(i,"id","id",r);p(i,"title","title",r);var n=(t=f("link",r))===null||t===void 0?void 0:t.attribs["href"];if(n){i.link=n}var s=h("summary",r)||h("content",r);if(s){i.description=s}var o=h("updated",r);if(o){i.pubDate=new Date(o)}return i}))};p(i,"id","id",r);p(i,"title","title",r);var s=(t=f("link",r))===null||t===void 0?void 0:t.attribs["href"];if(s){i.link=s}p(i,"description","subtitle",r);var o=h("updated",r);if(o){i.updated=new Date(o)}p(i,"author","email",r,true);return i}function a(e){var t,r;var i=(r=(t=f("channel",e.children))===null||t===void 0?void 0:t.children)!==null&&r!==void 0?r:[];var s={type:e.name.substr(0,3),id:"",items:(0,n.getElementsByTagName)("item",e.children).map((function(e){var t=e.children;var r={media:u(t)};p(r,"id","guid",t);p(r,"title","title",t);p(r,"link","link",t);p(r,"description","description",t);var i=h("pubDate",t);if(i)r.pubDate=new Date(i);return r}))};p(s,"title","title",i);p(s,"link","link",i);p(s,"description","description",i);var o=h("lastBuildDate",i);if(o){s.updated=new Date(o)}p(s,"author","managingEditor",i,true);return s}var l=["url","type","lang"];var c=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function u(e){return(0,n.getElementsByTagName)("media:content",e).map((function(e){var t=e.attribs;var r={medium:t["medium"],isDefault:!!t["isDefault"]};for(var i=0,n=l;i{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.uniqueSort=t.compareDocumentPosition=t.DocumentPosition=t.removeSubsets=void 0;var i=r(66443);function n(e){var t=e.length;while(--t>=0){var r=e[t];if(t>0&&e.lastIndexOf(r,t-1)>=0){e.splice(t,1);continue}for(var i=r.parent;i;i=i.parent){if(e.includes(i)){e.splice(t,1);break}}}return e}t.removeSubsets=n;var s;(function(e){e[e["DISCONNECTED"]=1]="DISCONNECTED";e[e["PRECEDING"]=2]="PRECEDING";e[e["FOLLOWING"]=4]="FOLLOWING";e[e["CONTAINS"]=8]="CONTAINS";e[e["CONTAINED_BY"]=16]="CONTAINED_BY"})(s=t.DocumentPosition||(t.DocumentPosition={}));function o(e,t){var r=[];var n=[];if(e===t){return 0}var o=(0,i.hasChildren)(e)?e:e.parent;while(o){r.unshift(o);o=o.parent}o=(0,i.hasChildren)(t)?t:t.parent;while(o){n.unshift(o);o=o.parent}var a=Math.min(r.length,n.length);var l=0;while(lu.indexOf(h)){if(c===t){return s.FOLLOWING|s.CONTAINED_BY}return s.FOLLOWING}if(c===e){return s.PRECEDING|s.CONTAINS}return s.PRECEDING}t.compareDocumentPosition=o;function a(e){e=e.filter((function(e,t,r){return!r.includes(e,t+1)}));e.sort((function(e,t){var r=o(e,t);if(r&s.PRECEDING){return-1}else if(r&s.FOLLOWING){return 1}return 0}));return e}t.uniqueSort=a},43970:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){if(i===undefined)i=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,i,n)}:function(e,t,r,i){if(i===undefined)i=r;e[i]=t[r]});var n=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))i(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0;n(r(65247),t);n(r(21840),t);n(r(27049),t);n(r(28620),t);n(r(86851),t);n(r(89891),t);n(r(48115),t);var s=r(66443);Object.defineProperty(t,"isTag",{enumerable:true,get:function(){return s.isTag}});Object.defineProperty(t,"isCDATA",{enumerable:true,get:function(){return s.isCDATA}});Object.defineProperty(t,"isText",{enumerable:true,get:function(){return s.isText}});Object.defineProperty(t,"isComment",{enumerable:true,get:function(){return s.isComment}});Object.defineProperty(t,"isDocument",{enumerable:true,get:function(){return s.isDocument}});Object.defineProperty(t,"hasChildren",{enumerable:true,get:function(){return s.hasChildren}})},86851:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getElementsByTagType=t.getElementsByTagName=t.getElementById=t.getElements=t.testElement=void 0;var i=r(66443);var n=r(28620);var s={tag_name:function(e){if(typeof e==="function"){return function(t){return(0,i.isTag)(t)&&e(t.name)}}else if(e==="*"){return i.isTag}return function(t){return(0,i.isTag)(t)&&t.name===e}},tag_type:function(e){if(typeof e==="function"){return function(t){return e(t.type)}}return function(t){return t.type===e}},tag_contains:function(e){if(typeof e==="function"){return function(t){return(0,i.isText)(t)&&e(t.data)}}return function(t){return(0,i.isText)(t)&&t.data===e}}};function o(e,t){if(typeof t==="function"){return function(r){return(0,i.isTag)(r)&&t(r.attribs[e])}}return function(r){return(0,i.isTag)(r)&&r.attribs[e]===t}}function a(e,t){return function(r){return e(r)||t(r)}}function l(e){var t=Object.keys(e).map((function(t){var r=e[t];return Object.prototype.hasOwnProperty.call(s,t)?s[t](r):o(t,r)}));return t.length===0?null:t.reduce(a)}function c(e,t){var r=l(e);return r?r(t):true}t.testElement=c;function u(e,t,r,i){if(i===void 0){i=Infinity}var s=l(e);return s?(0,n.filter)(s,t,r,i):[]}t.getElements=u;function f(e,t,r){if(r===void 0){r=true}if(!Array.isArray(t))t=[t];return(0,n.findOne)(o("id",e),t,r)}t.getElementById=f;function h(e,t,r,i){if(r===void 0){r=true}if(i===void 0){i=Infinity}return(0,n.filter)(s["tag_name"](e),t,r,i)}t.getElementsByTagName=h;function p(e,t,r,i){if(r===void 0){r=true}if(i===void 0){i=Infinity}return(0,n.filter)(s["tag_type"](e),t,r,i)}t.getElementsByTagType=p},27049:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.prepend=t.prependChild=t.append=t.appendChild=t.replaceElement=t.removeElement=void 0;function r(e){if(e.prev)e.prev.next=e.next;if(e.next)e.next.prev=e.prev;if(e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}}t.removeElement=r;function i(e,t){var r=t.prev=e.prev;if(r){r.next=t}var i=t.next=e.next;if(i){i.prev=t}var n=t.parent=e.parent;if(n){var s=n.children;s[s.lastIndexOf(e)]=t;e.parent=null}}t.replaceElement=i;function n(e,t){r(t);t.next=null;t.parent=e;if(e.children.push(t)>1){var i=e.children[e.children.length-2];i.next=t;t.prev=i}else{t.prev=null}}t.appendChild=n;function s(e,t){r(t);var i=e.parent;var n=e.next;t.next=n;t.prev=e;e.next=t;t.parent=i;if(n){n.prev=t;if(i){var s=i.children;s.splice(s.lastIndexOf(n),0,t)}}else if(i){i.children.push(t)}}t.append=s;function o(e,t){r(t);t.parent=e;t.prev=null;if(e.children.unshift(t)!==1){var i=e.children[1];i.prev=t;t.next=i}else{t.next=null}}t.prependChild=o;function a(e,t){r(t);var i=e.parent;if(i){var n=i.children;n.splice(n.indexOf(e),0,t)}if(e.prev){e.prev.next=t}t.parent=i;t.prev=e.prev;t.next=e;e.prev=t}t.prepend=a},28620:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.findAll=t.existsOne=t.findOne=t.findOneChild=t.find=t.filter=void 0;var i=r(66443);function n(e,t,r,i){if(r===void 0){r=true}if(i===void 0){i=Infinity}if(!Array.isArray(t))t=[t];return s(e,t,r,i)}t.filter=n;function s(e,t,r,n){var o=[];for(var a=0,l=t;a0){var u=s(e,c.children,r,n);o.push.apply(o,u);n-=u.length;if(n<=0)break}}return o}t.find=s;function o(e,t){return t.find(e)}t.findOneChild=o;function a(e,t,r){if(r===void 0){r=true}var n=null;for(var s=0;s0){n=a(e,o.children,true)}}return n}t.findOne=a;function l(e,t){return t.some((function(t){return(0,i.isTag)(t)&&(e(t)||t.children.length>0&&l(e,t.children))}))}t.existsOne=l;function c(e,t){var r;var n=[];var s=t.filter(i.isTag);var o;while(o=s.shift()){var a=(r=o.children)===null||r===void 0?void 0:r.filter(i.isTag);if(a&&a.length>0){s.unshift.apply(s,a)}if(e(o))n.push(o)}return n}t.findAll=c},65247:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.innerText=t.textContent=t.getText=t.getInnerHTML=t.getOuterHTML=void 0;var n=r(66443);var s=i(r(53806));var o=r(45413);function a(e,t){return(0,s.default)(e,t)}t.getOuterHTML=a;function l(e,t){return(0,n.hasChildren)(e)?e.children.map((function(e){return a(e,t)})).join(""):""}t.getInnerHTML=l;function c(e){if(Array.isArray(e))return e.map(c).join("");if((0,n.isTag)(e))return e.name==="br"?"\n":c(e.children);if((0,n.isCDATA)(e))return c(e.children);if((0,n.isText)(e))return e.data;return""}t.getText=c;function u(e){if(Array.isArray(e))return e.map(u).join("");if((0,n.hasChildren)(e)&&!(0,n.isComment)(e)){return u(e.children)}if((0,n.isText)(e))return e.data;return""}t.textContent=u;function f(e){if(Array.isArray(e))return e.map(f).join("");if((0,n.hasChildren)(e)&&(e.type===o.ElementType.Tag||(0,n.isCDATA)(e))){return f(e.children)}if((0,n.isText)(e))return e.data;return""}t.innerText=f},21840:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.prevElementSibling=t.nextElementSibling=t.getName=t.hasAttrib=t.getAttributeValue=t.getSiblings=t.getParent=t.getChildren=void 0;var i=r(66443);function n(e){return(0,i.hasChildren)(e)?e.children:[]}t.getChildren=n;function s(e){return e.parent||null}t.getParent=s;function o(e){var t,r;var i=s(e);if(i!=null)return n(i);var o=[e];var a=e.prev,l=e.next;while(a!=null){o.unshift(a);t=a,a=t.prev}while(l!=null){o.push(l);r=l,l=r.next}return o}t.getSiblings=o;function a(e,t){var r;return(r=e.attribs)===null||r===void 0?void 0:r[t]}t.getAttributeValue=a;function l(e,t){return e.attribs!=null&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&e.attribs[t]!=null}t.hasAttrib=l;function c(e){return e.name}t.getName=c;function u(e){var t;var r=e.next;while(r!==null&&!(0,i.isTag)(r))t=r,r=t.next;return r}t.nextElementSibling=u;function f(e){var t;var r=e.prev;while(r!==null&&!(0,i.isTag)(r))t=r,r=t.prev;return r}t.prevElementSibling=f},66032:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.decodeXML=t.decodeHTMLStrict=t.decodeHTML=t.determineBranch=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var n=i(r(46125));t.htmlDecodeTree=n.default;var s=i(r(12715));t.xmlDecodeTree=s.default;var o=i(r(95390));t.decodeCodePoint=o.default;var a=r(95390);Object.defineProperty(t,"replaceCodePoint",{enumerable:true,get:function(){return a.replaceCodePoint}});Object.defineProperty(t,"fromCodePoint",{enumerable:true,get:function(){return a.fromCodePoint}});var l;(function(e){e[e["NUM"]=35]="NUM";e[e["SEMI"]=59]="SEMI";e[e["ZERO"]=48]="ZERO";e[e["NINE"]=57]="NINE";e[e["LOWER_A"]=97]="LOWER_A";e[e["LOWER_F"]=102]="LOWER_F";e[e["LOWER_X"]=120]="LOWER_X";e[e["To_LOWER_BIT"]=32]="To_LOWER_BIT"})(l||(l={}));var c;(function(e){e[e["VALUE_LENGTH"]=49152]="VALUE_LENGTH";e[e["BRANCH_LENGTH"]=16256]="BRANCH_LENGTH";e[e["JUMP_TABLE"]=127]="JUMP_TABLE"})(c=t.BinTrieFlags||(t.BinTrieFlags={}));function u(e){return function t(r,i){var n="";var s=0;var a=0;while((a=r.indexOf("&",a))>=0){n+=r.slice(s,a);s=a;a+=1;if(r.charCodeAt(a)===l.NUM){var u=a+1;var h=10;var p=r.charCodeAt(u);if((p|l.To_LOWER_BIT)===l.LOWER_X){h=16;a+=1;u+=1}do{p=r.charCodeAt(++a)}while(p>=l.ZERO&&p<=l.NINE||h===16&&(p|l.To_LOWER_BIT)>=l.LOWER_A&&(p|l.To_LOWER_BIT)<=l.LOWER_F);if(u!==a){var d=r.substring(u,a);var m=parseInt(d,h);if(r.charCodeAt(a)===l.SEMI){a+=1}else if(i){continue}n+=(0,o.default)(m);s=a}continue}var g=0;var y=1;var b=0;var v=e[b];for(;a>14)-1;if(x===0)break;b+=x}}if(g!==0){var x=(e[g]&c.VALUE_LENGTH)>>14;n+=x===1?String.fromCharCode(e[g]&~c.VALUE_LENGTH):x===2?String.fromCharCode(e[g+1]):String.fromCharCode(e[g+1],e[g+2]);s=a-y+1}}return n+r.slice(s)}}function f(e,t,r,i){var n=(t&c.BRANCH_LENGTH)>>7;var s=t&c.JUMP_TABLE;if(n===0){return s!==0&&i===s?r:-1}if(s){var o=i-s;return o<0||o>=n?-1:e[r+o]-1}var a=r;var l=a+n-1;while(a<=l){var u=a+l>>>1;var f=e[u];if(fi){l=u-1}else{return e[u+n]}}return-1}t.determineBranch=f;var h=u(n.default);var p=u(s.default);function d(e){return h(e,false)}t.decodeHTML=d;function m(e){return h(e,true)}t.decodeHTMLStrict=m;function g(e){return p(e,true)}t.decodeXML=g},95390:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:true});t.replaceCodePoint=t.fromCodePoint=void 0;var i=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);t.fromCodePoint=(r=String.fromCodePoint)!==null&&r!==void 0?r:function(e){var t="";if(e>65535){e-=65536;t+=String.fromCharCode(e>>>10&1023|55296);e=56320|e&1023}t+=String.fromCharCode(e);return t};function n(e){var t;if(e>=55296&&e<=57343||e>1114111){return 65533}return(t=i.get(e))!==null&&t!==void 0?t:e}t.replaceCodePoint=n;function s(e){return(0,t.fromCodePoint)(n(e))}t["default"]=s},46125:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((function(e){return e.charCodeAt(0)})))},12715:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((function(e){return e.charCodeAt(0)})))},78682:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function r(e){return Object.prototype.toString.call(e)==="[object Object]"}function i(e){var t,i;if(r(e)===false)return false;t=e.constructor;if(t===undefined)return true;i=t.prototype;if(r(i)===false)return false;if(i.hasOwnProperty("isPrototypeOf")===false){return false}return true}t.isPlainObject=i},29466:function(e,t){var r,i,n;(function(s,o){if(true){!(i=[],r=o,n=typeof r==="function"?r.apply(t,i):r,n!==undefined&&(e.exports=n))}else{}})(this,(function(){return function(e){function t(e){return e===" "||e==="\t"||e==="\n"||e==="\f"||e==="\r"}function r(t){var r,i=t.exec(e.substring(m));if(i){r=i[0];m+=r.length;return r}}var i=e.length,n=/^[ \t\n\r\u000c]+/,s=/^[, \t\n\r\u000c]+/,o=/^[^ \t\n\r\u000c]+/,a=/[,]+$/,l=/^\d+$/,c=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,u,f,h,p,d,m=0,g=[];while(true){r(s);if(m>=i){return g}u=r(o);f=[];if(u.slice(-1)===","){u=u.replace(a,"");b()}else{y()}}function y(){r(n);h="";p="in descriptor";while(true){d=e.charAt(m);if(p==="in descriptor"){if(t(d)){if(h){f.push(h);h="";p="after descriptor"}}else if(d===","){m+=1;if(h){f.push(h)}b();return}else if(d==="("){h=h+d;p="in parens"}else if(d===""){if(h){f.push(h)}b();return}else{h=h+d}}else if(p==="in parens"){if(d===")"){h=h+d;p="in descriptor"}else if(d===""){f.push(h);b();return}else{h=h+d}}else if(p==="after descriptor"){if(t(d)){}else if(d===""){b();return}else{p="in descriptor";m-=1}}m+=1}}function b(){var t=false,r,i,n,s,o={},a,h,p,d,m;for(s=0;s{var t=String;var r=function(){return{isColorSupported:false,reset:t,bold:t,dim:t,italic:t,underline:t,inverse:t,hidden:t,strikethrough:t,black:t,red:t,green:t,yellow:t,blue:t,magenta:t,cyan:t,white:t,gray:t,bgBlack:t,bgRed:t,bgGreen:t,bgYellow:t,bgBlue:t,bgMagenta:t,bgCyan:t,bgWhite:t,blackBright:t,redBright:t,greenBright:t,yellowBright:t,blueBright:t,magentaBright:t,cyanBright:t,whiteBright:t,bgBlackBright:t,bgRedBright:t,bgGreenBright:t,bgYellowBright:t,bgBlueBright:t,bgMagentaBright:t,bgCyanBright:t,bgWhiteBright:t}};e.exports=r();e.exports.createColors=r},40396:(e,t,r)=>{"use strict";let i=r(77793);class n extends i{constructor(e){super(e);this.type="atrule"}append(...e){if(!this.proxyOf.nodes)this.nodes=[];return super.append(...e)}prepend(...e){if(!this.proxyOf.nodes)this.nodes=[];return super.prepend(...e)}}e.exports=n;n.default=n;i.registerAtRule(n)},49371:(e,t,r)=>{"use strict";let i=r(63152);class n extends i{constructor(e){super(e);this.type="comment"}}e.exports=n;n.default=n},77793:(e,t,r)=>{"use strict";let{isClean:i,my:n}=r(84151);let s=r(35238);let o=r(49371);let a=r(63152);let l,c,u,f;function h(e){return e.map((e=>{if(e.nodes)e.nodes=h(e.nodes);delete e.source;return e}))}function p(e){e[i]=false;if(e.proxyOf.nodes){for(let t of e.proxyOf.nodes){p(t)}}}class d extends a{append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}this.markDirty();return this}cleanRaws(e){super.cleanRaws(e);if(this.nodes){for(let t of this.nodes)t.cleanRaws(e)}}each(e){if(!this.proxyOf.nodes)return undefined;let t=this.getIterator();let r,i;while(this.indexes[t]e[t](...r.map((e=>{if(typeof e==="function"){return(t,r)=>e(t.toProxy(),r)}else{return e}})))}else if(t==="every"||t==="some"){return r=>e[t](((e,...t)=>r(e.toProxy(),...t)))}else if(t==="root"){return()=>e.root().toProxy()}else if(t==="nodes"){return e.nodes.map((e=>e.toProxy()))}else if(t==="first"||t==="last"){return e[t].toProxy()}else{return e[t]}},set(e,t,r){if(e[t]===r)return true;e[t]=r;if(t==="name"||t==="params"||t==="selector"){e.markDirty()}return true}}}index(e){if(typeof e==="number")return e;if(e.proxyOf)e=e.proxyOf;return this.proxyOf.nodes.indexOf(e)}insertAfter(e,t){let r=this.index(e);let i=this.normalize(t,this.proxyOf.nodes[r]).reverse();r=this.index(e);for(let s of i)this.proxyOf.nodes.splice(r+1,0,s);let n;for(let s in this.indexes){n=this.indexes[s];if(r{if(!e[n])d.rebuild(e);e=e.proxyOf;if(e.parent)e.parent.removeChild(e);if(e[i])p(e);if(typeof e.raws.before==="undefined"){if(t&&typeof t.raws.before!=="undefined"){e.raws.before=t.raws.before.replace(/\S/g,"")}}e.parent=this.proxyOf;return e}));return r}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes){this.indexes[t]=this.indexes[t]+e.length}}this.markDirty();return this}push(e){e.parent=this;this.proxyOf.nodes.push(e);return this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=undefined;this.proxyOf.nodes=[];this.markDirty();return this}removeChild(e){e=this.index(e);this.proxyOf.nodes[e].parent=undefined;this.proxyOf.nodes.splice(e,1);let t;for(let r in this.indexes){t=this.indexes[r];if(t>=e){this.indexes[r]=t-1}}this.markDirty();return this}replaceValues(e,t,r){if(!r){r=t;t={}}this.walkDecls((i=>{if(t.props&&!t.props.includes(i.prop))return;if(t.fast&&!i.value.includes(t.fast))return;i.value=i.value.replace(e,r)}));this.markDirty();return this}some(e){return this.nodes.some(e)}walk(e){return this.each(((t,r)=>{let i;try{i=e(t,r)}catch(n){throw t.addToError(n)}if(i!==false&&t.walk){i=t.walk(e)}return i}))}walkAtRules(e,t){if(!t){t=e;return this.walk(((e,r)=>{if(e.type==="atrule"){return t(e,r)}}))}if(e instanceof RegExp){return this.walk(((r,i)=>{if(r.type==="atrule"&&e.test(r.name)){return t(r,i)}}))}return this.walk(((r,i)=>{if(r.type==="atrule"&&r.name===e){return t(r,i)}}))}walkComments(e){return this.walk(((t,r)=>{if(t.type==="comment"){return e(t,r)}}))}walkDecls(e,t){if(!t){t=e;return this.walk(((e,r)=>{if(e.type==="decl"){return t(e,r)}}))}if(e instanceof RegExp){return this.walk(((r,i)=>{if(r.type==="decl"&&e.test(r.prop)){return t(r,i)}}))}return this.walk(((r,i)=>{if(r.type==="decl"&&r.prop===e){return t(r,i)}}))}walkRules(e,t){if(!t){t=e;return this.walk(((e,r)=>{if(e.type==="rule"){return t(e,r)}}))}if(e instanceof RegExp){return this.walk(((r,i)=>{if(r.type==="rule"&&e.test(r.selector)){return t(r,i)}}))}return this.walk(((r,i)=>{if(r.type==="rule"&&r.selector===e){return t(r,i)}}))}get first(){if(!this.proxyOf.nodes)return undefined;return this.proxyOf.nodes[0]}get last(){if(!this.proxyOf.nodes)return undefined;return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}}d.registerParse=e=>{l=e};d.registerRule=e=>{c=e};d.registerAtRule=e=>{u=e};d.registerRoot=e=>{f=e};e.exports=d;d.default=d;d.rebuild=e=>{if(e.type==="atrule"){Object.setPrototypeOf(e,u.prototype)}else if(e.type==="rule"){Object.setPrototypeOf(e,c.prototype)}else if(e.type==="decl"){Object.setPrototypeOf(e,s.prototype)}else if(e.type==="comment"){Object.setPrototypeOf(e,o.prototype)}else if(e.type==="root"){Object.setPrototypeOf(e,f.prototype)}e[n]=true;if(e.nodes){e.nodes.forEach((e=>{d.rebuild(e)}))}}},53614:(e,t,r)=>{"use strict";let i=r(48633);let n=r(49746);class s extends Error{constructor(e,t,r,i,n,o){super(e);this.name="CssSyntaxError";this.reason=e;if(n){this.file=n}if(i){this.source=i}if(o){this.plugin=o}if(typeof t!=="undefined"&&typeof r!=="undefined"){if(typeof t==="number"){this.line=t;this.column=r}else{this.line=t.line;this.column=t.column;this.endLine=r.line;this.endColumn=r.column}}this.setMessage();if(Error.captureStackTrace){Error.captureStackTrace(this,s)}}setMessage(){this.message=this.plugin?this.plugin+": ":"";this.message+=this.file?this.file:"";if(typeof this.line!=="undefined"){this.message+=":"+this.line+":"+this.column}this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;if(e==null)e=i.isColorSupported;if(n){if(e)t=n(t)}let r=t.split(/\r?\n/);let s=Math.max(this.line-3,0);let o=Math.min(this.line+2,r.length);let a=String(o).length;let l,c;if(e){let{bold:e,gray:t,red:r}=i.createColors(true);l=t=>e(r(t));c=e=>t(e)}else{l=c=e=>e}return r.slice(s,o).map(((e,t)=>{let r=s+1+t;let i=" "+(" "+r).slice(-a)+" | ";if(r===this.line){let t=c(i.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return l(">")+c(i)+e+"\n "+t+l("^")}return" "+c(i)+e})).join("\n")}toString(){let e=this.showSourceCode();if(e){e="\n\n"+e+"\n"}return this.name+": "+this.message+e}}e.exports=s;s.default=s},35238:(e,t,r)=>{"use strict";let i=r(63152);class n extends i{constructor(e){if(e&&typeof e.value!=="undefined"&&typeof e.value!=="string"){e={...e,value:String(e.value)}}super(e);this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}}e.exports=n;n.default=n},40145:(e,t,r)=>{"use strict";let i=r(77793);let n,s;class o extends i{constructor(e){super({type:"document",...e});if(!this.nodes){this.nodes=[]}}toResult(e={}){let t=new n(new s,this,e);return t.stringify()}}o.registerLazyResult=e=>{n=e};o.registerProcessor=e=>{s=e};e.exports=o;o.default=o},33438:(e,t,r)=>{"use strict";let i=r(35238);let n=r(93878);let s=r(49371);let o=r(40396);let a=r(61106);let l=r(25644);let c=r(61534);function u(e,t){if(Array.isArray(e))return e.map((e=>u(e)));let{inputs:r,...f}=e;if(r){t=[];for(let e of r){let r={...e,__proto__:a.prototype};if(r.map){r.map={...r.map,__proto__:n.prototype}}t.push(r)}}if(f.nodes){f.nodes=e.nodes.map((e=>u(e,t)))}if(f.source){let{inputId:e,...r}=f.source;f.source=r;if(e!=null){f.source.input=t[e]}}if(f.type==="root"){return new l(f)}else if(f.type==="decl"){return new i(f)}else if(f.type==="rule"){return new c(f)}else if(f.type==="comment"){return new s(f)}else if(f.type==="atrule"){return new o(f)}else{throw new Error("Unknown node type: "+e.type)}}e.exports=u;u.default=u},61106:(e,t,r)=>{"use strict";let{SourceMapConsumer:i,SourceMapGenerator:n}=r(21866);let{fileURLToPath:s,pathToFileURL:o}=r(52739);let{isAbsolute:a,resolve:l}=r(197);let{nanoid:c}=r(95042);let u=r(49746);let f=r(53614);let h=r(93878);let p=Symbol("fromOffsetCache");let d=Boolean(i&&n);let m=Boolean(l&&a);class g{constructor(e,t={}){if(e===null||typeof e==="undefined"||typeof e==="object"&&!e.toString){throw new Error(`PostCSS received ${e} instead of CSS string`)}this.css=e.toString();if(this.css[0]==="\ufeff"||this.css[0]==="￾"){this.hasBOM=true;this.css=this.css.slice(1)}else{this.hasBOM=false}if(t.from){if(!m||/^\w+:\/\//.test(t.from)||a(t.from)){this.file=t.from}else{this.file=l(t.from)}}if(m&&d){let e=new h(this.css,t);if(e.text){this.map=e;let t=e.consumer().file;if(!this.file&&t)this.file=this.mapResolve(t)}}if(!this.file){this.id=""}if(this.map)this.map.file=this.from}error(e,t,r,i={}){let n,s,a;if(t&&typeof t==="object"){let e=t;let i=r;if(typeof e.offset==="number"){let i=this.fromOffset(e.offset);t=i.line;r=i.col}else{t=e.line;r=e.column}if(typeof i.offset==="number"){let e=this.fromOffset(i.offset);s=e.line;a=e.col}else{s=i.line;a=i.column}}else if(!r){let e=this.fromOffset(t);t=e.line;r=e.col}let l=this.origin(t,r,s,a);if(l){n=new f(e,l.endLine===undefined?l.line:{column:l.column,line:l.line},l.endLine===undefined?l.column:{column:l.endColumn,line:l.endLine},l.source,l.file,i.plugin)}else{n=new f(e,s===undefined?t:{column:r,line:t},s===undefined?r:{column:a,line:s},this.css,this.file,i.plugin)}n.input={column:r,endColumn:a,endLine:s,line:t,source:this.css};if(this.file){if(o){n.input.url=o(this.file).toString()}n.input.file=this.file}return n}fromOffset(e){let t,r;if(!this[p]){let e=this.css.split("\n");r=new Array(e.length);let t=0;for(let i=0,n=e.length;i=t){i=r.length-1}else{let t=r.length-2;let n;while(i>1);if(e=r[n+1]){i=n+1}else{i=n;break}}}return{col:e-r[i]+1,line:i+1}}mapResolve(e){if(/^\w+:\/\//.test(e)){return e}return l(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,r,i){if(!this.map)return false;let n=this.map.consumer();let l=n.originalPositionFor({column:t,line:e});if(!l.source)return false;let c;if(typeof r==="number"){c=n.originalPositionFor({column:i,line:r})}let u;if(a(l.source)){u=o(l.source)}else{u=new URL(l.source,this.map.consumer().sourceRoot||o(this.map.mapFile))}let f={column:l.column,endColumn:c&&c.column,endLine:c&&c.line,line:l.line,url:u.toString()};if(u.protocol==="file:"){if(s){f.file=s(u)}else{throw new Error(`file: protocol is not available in this PostCSS build`)}}let h=n.sourceContentFor(l.source);if(h)f.source=h;return f}toJSON(){let e={};for(let t of["hasBOM","css","file","id"]){if(this[t]!=null){e[t]=this[t]}}if(this.map){e.map={...this.map};if(e.map.consumerCache){e.map.consumerCache=undefined}}return e}get from(){return this.file||this.id}}e.exports=g;g.default=g;if(u&&u.registerInput){u.registerInput(g)}},96966:(e,t,r)=>{"use strict";let{isClean:i,my:n}=r(84151);let s=r(13604);let o=r(83303);let a=r(77793);let l=r(40145);let c=r(6156);let u=r(33717);let f=r(69577);let h=r(25644);const p={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"};const d={AtRule:true,AtRuleExit:true,Comment:true,CommentExit:true,Declaration:true,DeclarationExit:true,Document:true,DocumentExit:true,Once:true,OnceExit:true,postcssPlugin:true,prepare:true,Root:true,RootExit:true,Rule:true,RuleExit:true};const m={Once:true,postcssPlugin:true,prepare:true};const g=0;function y(e){return typeof e==="object"&&typeof e.then==="function"}function b(e){let t=false;let r=p[e.type];if(e.type==="decl"){t=e.prop.toLowerCase()}else if(e.type==="atrule"){t=e.name.toLowerCase()}if(t&&e.append){return[r,r+"-"+t,g,r+"Exit",r+"Exit-"+t]}else if(t){return[r,r+"-"+t,r+"Exit",r+"Exit-"+t]}else if(e.append){return[r,g,r+"Exit"]}else{return[r,r+"Exit"]}}function v(e){let t;if(e.type==="document"){t=["Document",g,"DocumentExit"]}else if(e.type==="root"){t=["Root",g,"RootExit"]}else{t=b(e)}return{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function w(e){e[i]=false;if(e.nodes)e.nodes.forEach((e=>w(e)));return e}let x={};class T{constructor(e,t,r){this.stringified=false;this.processed=false;let i;if(typeof t==="object"&&t!==null&&(t.type==="root"||t.type==="document")){i=w(t)}else if(t instanceof T||t instanceof u){i=w(t.root);if(t.map){if(typeof r.map==="undefined")r.map={};if(!r.map.inline)r.map.inline=false;r.map.prev=t.map}}else{let e=f;if(r.syntax)e=r.syntax.parse;if(r.parser)e=r.parser;if(e.parse)e=e.parse;try{i=e(t,r)}catch(s){this.processed=true;this.error=s}if(i&&!i[n]){a.rebuild(i)}}this.result=new u(e,i,r);this.helpers={...x,postcss:x,result:this.result};this.plugins=this.processor.plugins.map((e=>{if(typeof e==="object"&&e.prepare){return{...e,...e.prepare(this.result)}}else{return e}}))}async(){if(this.error)return Promise.reject(this.error);if(this.processed)return Promise.resolve(this.result);if(!this.processing){this.processing=this.runAsync()}return this.processing}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let r=this.result.lastPlugin;try{if(t)t.addToError(e);this.error=e;if(e.name==="CssSyntaxError"&&!e.plugin){e.plugin=r.postcssPlugin;e.setMessage()}else if(r.postcssVersion){if(false){}}}catch(i){if(console&&console.error)console.error(i)}return e}prepareVisitors(){this.listeners={};let e=(e,t,r)=>{if(!this.listeners[t])this.listeners[t]=[];this.listeners[t].push([e,r])};for(let t of this.plugins){if(typeof t==="object"){for(let r in t){if(!d[r]&&/^[A-Z]/.test(r)){throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. `+`Try to update PostCSS (${this.processor.version} now).`)}if(!m[r]){if(typeof t[r]==="object"){for(let i in t[r]){if(i==="*"){e(t,r,t[r][i])}else{e(t,r+"-"+i.toLowerCase(),t[r][i])}}}else if(typeof t[r]==="function"){e(t,r,t[r])}}}}}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let r=0;r0){let e=this.visitTick(r);if(y(e)){try{await e}catch(t){let e=r[r.length-1].node;throw this.handleError(t,e)}}}}if(this.listeners.OnceExit){for(let[r,i]of this.listeners.OnceExit){this.result.lastPlugin=r;try{if(e.type==="document"){let t=e.nodes.map((e=>i(e,this.helpers)));await Promise.all(t)}else{await i(e,this.helpers)}}catch(t){throw this.handleError(t)}}}}this.processed=true;return this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e==="object"&&e.Once){if(this.result.root.type==="document"){let t=this.result.root.nodes.map((t=>e.Once(t,this.helpers)));if(y(t[0])){return Promise.all(t)}return t}return e.Once(this.result.root,this.helpers)}else if(typeof e==="function"){return e(this.result.root,this.result)}}catch(t){throw this.handleError(t)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=true;this.sync();let e=this.result.opts;let t=o;if(e.syntax)t=e.syntax.stringify;if(e.stringifier)t=e.stringifier;if(t.stringify)t=t.stringify;let r=new s(t,this.result.root,this.result.opts);let i=r.generate();this.result.css=i[0];this.result.map=i[1];return this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;this.processed=true;if(this.processing){throw this.getAsyncError()}for(let e of this.plugins){let t=this.runOnRoot(e);if(y(t)){throw this.getAsyncError()}}this.prepareVisitors();if(this.hasListener){let e=this.result.root;while(!e[i]){e[i]=true;this.walkSync(e)}if(this.listeners.OnceExit){if(e.type==="document"){for(let t of e.nodes){this.visitSync(this.listeners.OnceExit,t)}}else{this.visitSync(this.listeners.OnceExit,e)}}}return this.result}then(e,t){if(false){}return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[i,n]of e){this.result.lastPlugin=i;let e;try{e=n(t,this.helpers)}catch(r){throw this.handleError(r,t.proxyOf)}if(t.type!=="root"&&t.type!=="document"&&!t.parent){return true}if(y(e)){throw this.getAsyncError()}}}visitTick(e){let t=e[e.length-1];let{node:r,visitors:n}=t;if(r.type!=="root"&&r.type!=="document"&&!r.parent){e.pop();return}if(n.length>0&&t.visitorIndex{if(!e[i])this.walkSync(e)}))}}else{let t=this.listeners[r];if(t){if(this.visitSync(t,e.toProxy()))return}}}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}}T.registerPostcss=e=>{x=e};e.exports=T;T.default=T;h.registerLazyResult(T);l.registerLazyResult(T)},81752:e=>{"use strict";let t={comma(e){return t.split(e,[","],true)},space(e){let r=[" ","\n","\t"];return t.split(e,r)},split(e,t,r){let i=[];let n="";let s=false;let o=0;let a=false;let l="";let c=false;for(let u of e){if(c){c=false}else if(u==="\\"){c=true}else if(a){if(u===l){a=false}}else if(u==='"'||u==="'"){a=true;l=u}else if(u==="("){o+=1}else if(u===")"){if(o>0)o-=1}else if(o===0){if(t.includes(u))s=true}if(s){if(n!=="")i.push(n.trim());n="";s=false}else{n+=u}}if(r||n!=="")i.push(n.trim());return i}};e.exports=t;t.default=t},13604:(e,t,r)=>{"use strict";let{SourceMapConsumer:i,SourceMapGenerator:n}=r(21866);let{dirname:s,relative:o,resolve:a,sep:l}=r(197);let{pathToFileURL:c}=r(52739);let u=r(61106);let f=Boolean(i&&n);let h=Boolean(s&&a&&o&&l);class p{constructor(e,t,r,i){this.stringify=e;this.mapOpts=r.map||{};this.root=t;this.opts=r;this.css=i;this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute;this.memoizedFileURLs=new Map;this.memoizedPaths=new Map;this.memoizedURLs=new Map}addAnnotation(){let e;if(this.isInline()){e="data:application/json;base64,"+this.toBase64(this.map.toString())}else if(typeof this.mapOpts.annotation==="string"){e=this.mapOpts.annotation}else if(typeof this.mapOpts.annotation==="function"){e=this.mapOpts.annotation(this.opts.to,this.root)}else{e=this.outputFile()+".map"}let t="\n";if(this.css.includes("\r\n"))t="\r\n";this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t=this.toUrl(this.path(e.file));let r=e.root||s(e.file);let n;if(this.mapOpts.sourcesContent===false){n=new i(e.text);if(n.sourcesContent){n.sourcesContent=n.sourcesContent.map((()=>null))}}else{n=e.consumer()}this.map.applySourceMap(n,t,this.toUrl(this.path(r)))}}clearAnnotation(){if(this.mapOpts.annotation===false)return;if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--){e=this.root.nodes[t];if(e.type!=="comment")continue;if(e.text.indexOf("# sourceMappingURL=")===0){this.root.removeChild(t)}}}else if(this.css){this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,"")}}generate(){this.clearAnnotation();if(h&&f&&this.isMap()){return this.generateMap()}else{let e="";this.stringify(this.root,(t=>{e+=t}));return[e]}}generateMap(){if(this.root){this.generateString()}else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile();this.map=n.fromSourceMap(e)}else{this.map=new n({file:this.outputFile()});this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""})}if(this.isSourcesContent())this.setSourcesContent();if(this.root&&this.previous().length>0)this.applyPrevMaps();if(this.isAnnotation())this.addAnnotation();if(this.isInline()){return[this.css]}else{return[this.css,this.map]}}generateString(){this.css="";this.map=new n({file:this.outputFile()});let e=1;let t=1;let r="";let i={generated:{column:0,line:0},original:{column:0,line:0},source:""};let s,o;this.stringify(this.root,((n,a,l)=>{this.css+=n;if(a&&l!=="end"){i.generated.line=e;i.generated.column=t-1;if(a.source&&a.source.start){i.source=this.sourcePath(a);i.original.line=a.source.start.line;i.original.column=a.source.start.column-1;this.map.addMapping(i)}else{i.source=r;i.original.line=1;i.original.column=0;this.map.addMapping(i)}}s=n.match(/\n/g);if(s){e+=s.length;o=n.lastIndexOf("\n");t=n.length-o}else{t+=n.length}if(a&&l!=="start"){let n=a.parent||{raws:{}};let s=a.type==="decl"||a.type==="atrule"&&!a.nodes;if(!s||a!==n.last||n.raws.semicolon){if(a.source&&a.source.end){i.source=this.sourcePath(a);i.original.line=a.source.end.line;i.original.column=a.source.end.column-1;i.generated.line=e;i.generated.column=t-2;this.map.addMapping(i)}else{i.source=r;i.original.line=1;i.original.column=0;i.generated.line=e;i.generated.column=t-1;this.map.addMapping(i)}}}}))}isAnnotation(){if(this.isInline()){return true}if(typeof this.mapOpts.annotation!=="undefined"){return this.mapOpts.annotation}if(this.previous().length){return this.previous().some((e=>e.annotation))}return true}isInline(){if(typeof this.mapOpts.inline!=="undefined"){return this.mapOpts.inline}let e=this.mapOpts.annotation;if(typeof e!=="undefined"&&e!==true){return false}if(this.previous().length){return this.previous().some((e=>e.inline))}return true}isMap(){if(typeof this.opts.map!=="undefined"){return!!this.opts.map}return this.previous().length>0}isSourcesContent(){if(typeof this.mapOpts.sourcesContent!=="undefined"){return this.mapOpts.sourcesContent}if(this.previous().length){return this.previous().some((e=>e.withContent()))}return true}outputFile(){if(this.opts.to){return this.path(this.opts.to)}else if(this.opts.from){return this.path(this.opts.from)}else{return"to.css"}}path(e){if(this.mapOpts.absolute)return e;if(e.charCodeAt(0)===60)return e;if(/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let r=this.opts.to?s(this.opts.to):".";if(typeof this.mapOpts.annotation==="string"){r=s(a(r,this.mapOpts.annotation))}let i=o(r,e);this.memoizedPaths.set(e,i);return i}previous(){if(!this.previousMaps){this.previousMaps=[];if(this.root){this.root.walk((e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;if(!this.previousMaps.includes(t)){this.previousMaps.push(t)}}}))}else{let e=new u(this.css,this.opts);if(e.map)this.previousMaps.push(e.map)}}return this.previousMaps}setSourcesContent(){let e={};if(this.root){this.root.walk((t=>{if(t.source){let r=t.source.input.from;if(r&&!e[r]){e[r]=true;let i=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(i,t.source.input.css)}}}))}else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(e,this.css)}}sourcePath(e){if(this.mapOpts.from){return this.toUrl(this.mapOpts.from)}else if(this.usesFileUrls){return this.toFileUrl(e.source.input.from)}else{return this.toUrl(this.path(e.source.input.from))}}toBase64(e){if(Buffer){return Buffer.from(e).toString("base64")}else{return window.btoa(unescape(encodeURIComponent(e)))}}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(c){let t=c(e).toString();this.memoizedFileURLs.set(e,t);return t}else{throw new Error("`map.absolute` option is not available in this PostCSS build")}}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;if(l==="\\"){e=e.replace(/\\/g,"/")}let r=encodeURI(e).replace(/[#?]/g,encodeURIComponent);this.memoizedURLs.set(e,r);return r}}e.exports=p},84211:(e,t,r)=>{"use strict";let i=r(13604);let n=r(83303);let s=r(6156);let o=r(69577);const a=r(33717);class l{constructor(e,t,r){t=t.toString();this.stringified=false;this._processor=e;this._css=t;this._opts=r;this._map=undefined;let s;let o=n;this.result=new a(this._processor,s,this._opts);this.result.css=t;let l=this;Object.defineProperty(this.result,"root",{get(){return l.root}});let c=new i(o,s,this._opts,t);if(c.isMap()){let[e,t]=c.generate();if(e){this.result.css=e}if(t){this.result.map=t}}}async(){if(this.error)return Promise.reject(this.error);return Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){if(false){}return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root){return this._root}let e;let t=o;try{e=t(this._css,this._opts)}catch(r){this.error=r}if(this.error){throw this.error}else{this._root=e;return e}}get[Symbol.toStringTag](){return"NoWorkResult"}}e.exports=l;l.default=l},63152:(e,t,r)=>{"use strict";let{isClean:i,my:n}=r(84151);let s=r(53614);let o=r(47668);let a=r(83303);function l(e,t){let r=new e.constructor;for(let i in e){if(!Object.prototype.hasOwnProperty.call(e,i)){continue}if(i==="proxyCache")continue;let n=e[i];let s=typeof n;if(i==="parent"&&s==="object"){if(t)r[i]=t}else if(i==="source"){r[i]=n}else if(Array.isArray(n)){r[i]=n.map((e=>l(e,r)))}else{if(s==="object"&&n!==null)n=l(n);r[i]=n}}return r}class c{constructor(e={}){this.raws={};this[i]=false;this[n]=true;for(let t in e){if(t==="nodes"){this.nodes=[];for(let r of e[t]){if(typeof r.clone==="function"){this.append(r.clone())}else{this.append(r)}}}else{this[t]=e[t]}}}addToError(e){e.postcssNode=this;if(e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}after(e){this.parent.insertAfter(this,e);return this}assign(e={}){for(let t in e){this[t]=e[t]}return this}before(e){this.parent.insertBefore(this,e);return this}cleanRaws(e){delete this.raws.before;delete this.raws.after;if(!e)delete this.raws.between}clone(e={}){let t=l(this);for(let r in e){t[r]=e[r]}return t}cloneAfter(e={}){let t=this.clone(e);this.parent.insertAfter(this,t);return t}cloneBefore(e={}){let t=this.clone(e);this.parent.insertBefore(this,t);return t}error(e,t={}){if(this.source){let{end:r,start:i}=this.rangeBy(t);return this.source.input.error(e,{column:i.column,line:i.line},{column:r.column,line:r.line},t)}return new s(e)}getProxyProcessor(){return{get(e,t){if(t==="proxyOf"){return e}else if(t==="root"){return()=>e.root().toProxy()}else{return e[t]}},set(e,t,r){if(e[t]===r)return true;e[t]=r;if(t==="prop"||t==="value"||t==="name"||t==="params"||t==="important"||t==="text"){e.markDirty()}return true}}}markDirty(){if(this[i]){this[i]=false;let e=this;while(e=e.parent){e[i]=false}}}next(){if(!this.parent)return undefined;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e,t){let r=this.source.start;if(e.index){r=this.positionInside(e.index,t)}else if(e.word){t=this.toString();let i=t.indexOf(e.word);if(i!==-1)r=this.positionInside(i,t)}return r}positionInside(e,t){let r=t||this.toString();let i=this.source.start.column;let n=this.source.start.line;for(let s=0;s{if(typeof e==="object"&&e.toJSON){return e.toJSON(null,t)}else{return e}}))}else if(typeof e==="object"&&e.toJSON){r[s]=e.toJSON(null,t)}else if(s==="source"){let i=t.get(e.input);if(i==null){i=n;t.set(e.input,n);n++}r[s]={end:e.end,inputId:i,start:e.start}}else{r[s]=e}}if(i){r.inputs=[...t.keys()].map((e=>e.toJSON()))}return r}toProxy(){if(!this.proxyCache){this.proxyCache=new Proxy(this,this.getProxyProcessor())}return this.proxyCache}toString(e=a){if(e.stringify)e=e.stringify;let t="";e(this,(e=>{t+=e}));return t}warn(e,t,r){let i={node:this};for(let n in r)i[n]=r[n];return e.warn(t,i)}get proxyOf(){return this}}e.exports=c;c.default=c},69577:(e,t,r)=>{"use strict";let i=r(77793);let n=r(68339);let s=r(61106);function o(e,t){let r=new s(e,t);let i=new n(r);try{i.parse()}catch(o){if(false){}throw o}return i.root}e.exports=o;o.default=o;i.registerParse(o)},68339:(e,t,r)=>{"use strict";let i=r(35238);let n=r(45781);let s=r(49371);let o=r(40396);let a=r(25644);let l=r(61534);const c={empty:true,space:true};function u(e){for(let t=e.length-1;t>=0;t--){let r=e[t];let i=r[3]||r[2];if(i)return i}}class f{constructor(e){this.input=e;this.root=new a;this.current=this.root;this.spaces="";this.semicolon=false;this.customProperty=false;this.createTokenizer();this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new o;t.name=e[1].slice(1);if(t.name===""){this.unnamedAtrule(t,e)}this.init(t,e[2]);let r;let i;let n;let s=false;let a=false;let l=[];let c=[];while(!this.tokenizer.endOfFile()){e=this.tokenizer.nextToken();r=e[0];if(r==="("||r==="["){c.push(r==="("?")":"]")}else if(r==="{"&&c.length>0){c.push("}")}else if(r===c[c.length-1]){c.pop()}if(c.length===0){if(r===";"){t.source.end=this.getPosition(e[2]);t.source.end.offset++;this.semicolon=true;break}else if(r==="{"){a=true;break}else if(r==="}"){if(l.length>0){n=l.length-1;i=l[n];while(i&&i[0]==="space"){i=l[--n]}if(i){t.source.end=this.getPosition(i[3]||i[2]);t.source.end.offset++}}this.end(e);break}else{l.push(e)}}else{l.push(e)}if(this.tokenizer.endOfFile()){s=true;break}}t.raws.between=this.spacesAndCommentsFromEnd(l);if(l.length){t.raws.afterName=this.spacesAndCommentsFromStart(l);this.raw(t,"params",l);if(s){e=l[l.length-1];t.source.end=this.getPosition(e[3]||e[2]);t.source.end.offset++;this.spaces=t.raws.between;t.raws.between=""}}else{t.raws.afterName="";t.params=""}if(a){t.nodes=[];this.current=t}}checkMissedSemicolon(e){let t=this.colon(e);if(t===false)return;let r=0;let i;for(let n=t-1;n>=0;n--){i=e[n];if(i[0]!=="space"){r+=1;if(r===2)break}}throw this.input.error("Missed semicolon",i[0]==="word"?i[3]+1:i[2])}colon(e){let t=0;let r,i,n;for(let[s,o]of e.entries()){r=o;i=r[0];if(i==="("){t+=1}if(i===")"){t-=1}if(t===0&&i===":"){if(!n){this.doubleColon(r)}else if(n[0]==="word"&&n[1]==="progid"){continue}else{return s}}n=r}return false}comment(e){let t=new s;this.init(t,e[2]);t.source.end=this.getPosition(e[3]||e[2]);t.source.end.offset++;let r=e[1].slice(2,-2);if(/^\s*$/.test(r)){t.text="";t.raws.left=r;t.raws.right=""}else{let e=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2];t.raws.left=e[1];t.raws.right=e[3]}}createTokenizer(){this.tokenizer=n(this.input)}decl(e,t){let r=new i;this.init(r,e[0][2]);let n=e[e.length-1];if(n[0]===";"){this.semicolon=true;e.pop()}r.source.end=this.getPosition(n[3]||n[2]||u(e));r.source.end.offset++;while(e[0][0]!=="word"){if(e.length===1)this.unknownWord(e);r.raws.before+=e.shift()[1]}r.source.start=this.getPosition(e[0][2]);r.prop="";while(e.length){let t=e[0][0];if(t===":"||t==="space"||t==="comment"){break}r.prop+=e.shift()[1]}r.raws.between="";let s;while(e.length){s=e.shift();if(s[0]===":"){r.raws.between+=s[1];break}else{if(s[0]==="word"&&/\w/.test(s[1])){this.unknownWord([s])}r.raws.between+=s[1]}}if(r.prop[0]==="_"||r.prop[0]==="*"){r.raws.before+=r.prop[0];r.prop=r.prop.slice(1)}let o=[];let a;while(e.length){a=e[0][0];if(a!=="space"&&a!=="comment")break;o.push(e.shift())}this.precheckMissedSemicolon(e);for(let i=e.length-1;i>=0;i--){s=e[i];if(s[1].toLowerCase()==="!important"){r.important=true;let t=this.stringFrom(e,i);t=this.spacesFromEnd(e)+t;if(t!==" !important")r.raws.important=t;break}else if(s[1].toLowerCase()==="important"){let t=e.slice(0);let n="";for(let e=i;e>0;e--){let r=t[e][0];if(n.trim().indexOf("!")===0&&r!=="space"){break}n=t.pop()[1]+n}if(n.trim().indexOf("!")===0){r.important=true;r.raws.important=n;e=t}}if(s[0]!=="space"&&s[0]!=="comment"){break}}let l=e.some((e=>e[0]!=="space"&&e[0]!=="comment"));if(l){r.raws.between+=o.map((e=>e[1])).join("");o=[]}this.raw(r,"value",o.concat(e),t);if(r.value.includes(":")&&!t){this.checkMissedSemicolon(e)}}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new l;this.init(t,e[2]);t.selector="";t.raws.between="";this.current=t}end(e){if(this.current.nodes&&this.current.nodes.length){this.current.raws.semicolon=this.semicolon}this.semicolon=false;this.current.raws.after=(this.current.raws.after||"")+this.spaces;this.spaces="";if(this.current.parent){this.current.source.end=this.getPosition(e[2]);this.current.source.end.offset++;this.current=this.current.parent}else{this.unexpectedClose(e)}}endFile(){if(this.current.parent)this.unclosedBlock();if(this.current.nodes&&this.current.nodes.length){this.current.raws.semicolon=this.semicolon}this.current.raws.after=(this.current.raws.after||"")+this.spaces;this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){this.spaces+=e[1];if(this.current.nodes){let e=this.current.nodes[this.current.nodes.length-1];if(e&&e.type==="rule"&&!e.raws.ownSemicolon){e.raws.ownSemicolon=this.spaces;this.spaces=""}}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e);e.source={input:this.input,start:this.getPosition(t)};e.raws.before=this.spaces;this.spaces="";if(e.type!=="comment")this.semicolon=false}other(e){let t=false;let r=null;let i=false;let n=null;let s=[];let o=e[1].startsWith("--");let a=[];let l=e;while(l){r=l[0];a.push(l);if(r==="("||r==="["){if(!n)n=l;s.push(r==="("?")":"]")}else if(o&&i&&r==="{"){if(!n)n=l;s.push("}")}else if(s.length===0){if(r===";"){if(i){this.decl(a,o);return}else{break}}else if(r==="{"){this.rule(a);return}else if(r==="}"){this.tokenizer.back(a.pop());t=true;break}else if(r===":"){i=true}}else if(r===s[s.length-1]){s.pop();if(s.length===0)n=null}l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile())t=true;if(s.length>0)this.unclosedBracket(n);if(t&&i){if(!o){while(a.length){l=a[a.length-1][0];if(l!=="space"&&l!=="comment")break;this.tokenizer.back(a.pop())}}this.decl(a,o)}else{this.unknownWord(a)}}parse(){let e;while(!this.tokenizer.endOfFile()){e=this.tokenizer.nextToken();switch(e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}}this.endFile()}precheckMissedSemicolon(){}raw(e,t,r,i){let n,s;let o=r.length;let a="";let l=true;let u,f;for(let h=0;he+t[1]),"");e.raws[t]={raw:i,value:a}}e[t]=a}rule(e){e.pop();let t=new l;this.init(t,e[0][2]);t.raws.between=this.spacesAndCommentsFromEnd(e);this.raw(t,"selector",e);this.current=t}spacesAndCommentsFromEnd(e){let t;let r="";while(e.length){t=e[e.length-1][0];if(t!=="space"&&t!=="comment")break;r=e.pop()[1]+r}return r}spacesAndCommentsFromStart(e){let t;let r="";while(e.length){t=e[0][0];if(t!=="space"&&t!=="comment")break;r+=e.shift()[1]}return r}spacesFromEnd(e){let t;let r="";while(e.length){t=e[e.length-1][0];if(t!=="space")break;r=e.pop()[1]+r}return r}stringFrom(e,t){let r="";for(let i=t;i{"use strict";var i=r(65606);let n=r(53614);let s=r(35238);let o=r(96966);let a=r(77793);let l=r(96846);let c=r(83303);let u=r(33438);let f=r(40145);let h=r(60038);let p=r(49371);let d=r(40396);let m=r(33717);let g=r(61106);let y=r(69577);let b=r(81752);let v=r(61534);let w=r(25644);let x=r(63152);function T(...e){if(e.length===1&&Array.isArray(e[0])){e=e[0]}return new l(e)}T.plugin=function e(t,r){let n=false;function s(...e){if(console&&console.warn&&!n){n=true;console.warn(t+": postcss.plugin was deprecated. Migration guide:\n"+"https://evilmartians.com/chronicles/postcss-8-plugin-migration");if(i.env.LANG&&i.env.LANG.startsWith("cn")){console.warn(t+": 里面 postcss.plugin 被弃用. 迁移指南:\n"+"https://www.w3ctech.com/topic/2226")}}let s=r(...e);s.postcssPlugin=t;s.postcssVersion=(new l).version;return s}let o;Object.defineProperty(s,"postcss",{get(){if(!o)o=s();return o}});s.process=function(e,t,r){return T([s(r)]).process(e,t)};return s};T.stringify=c;T.parse=y;T.fromJSON=u;T.list=b;T.comment=e=>new p(e);T.atRule=e=>new d(e);T.decl=e=>new s(e);T.rule=e=>new v(e);T.root=e=>new w(e);T.document=e=>new f(e);T.CssSyntaxError=n;T.Declaration=s;T.Container=a;T.Processor=l;T.Document=f;T.Comment=p;T.Warning=h;T.AtRule=d;T.Result=m;T.Input=g;T.Rule=v;T.Root=w;T.Node=x;o.registerPostcss(T);e.exports=T;T.default=T},93878:(e,t,r)=>{"use strict";let{SourceMapConsumer:i,SourceMapGenerator:n}=r(21866);let{existsSync:s,readFileSync:o}=r(19977);let{dirname:a,join:l}=r(197);function c(e){if(Buffer){return Buffer.from(e,"base64").toString()}else{return window.atob(e)}}class u{constructor(e,t){if(t.map===false)return;this.loadAnnotation(e);this.inline=this.startWith(this.annotation,"data:");let r=t.map?t.map.prev:undefined;let i=this.loadMap(t.from,r);if(!this.mapFile&&t.from){this.mapFile=t.from}if(this.mapFile)this.root=a(this.mapFile);if(i)this.text=i}consumer(){if(!this.consumerCache){this.consumerCache=new i(this.text)}return this.consumerCache}decodeInline(e){let t=/^data:application\/json;charset=utf-?8;base64,/;let r=/^data:application\/json;base64,/;let i=/^data:application\/json;charset=utf-?8,/;let n=/^data:application\/json,/;if(i.test(e)||n.test(e)){return decodeURIComponent(e.substr(RegExp.lastMatch.length))}if(t.test(e)||r.test(e)){return c(e.substr(RegExp.lastMatch.length))}let s=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+s)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){if(typeof e!=="object")return false;return typeof e.mappings==="string"||typeof e._mappings==="string"||Array.isArray(e.sections)}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/gm);if(!t)return;let r=e.lastIndexOf(t.pop());let i=e.indexOf("*/",r);if(r>-1&&i>-1){this.annotation=this.getAnnotationURL(e.substring(r,i))}}loadFile(e){this.root=a(e);if(s(e)){this.mapFile=e;return o(e,"utf-8").toString().trim()}}loadMap(e,t){if(t===false)return false;if(t){if(typeof t==="string"){return t}else if(typeof t==="function"){let r=t(e);if(r){let e=this.loadFile(r);if(!e){throw new Error("Unable to load previous source map: "+r.toString())}return e}}else if(t instanceof i){return n.fromSourceMap(t).toString()}else if(t instanceof n){return t.toString()}else if(this.isMap(t)){return JSON.stringify(t)}else{throw new Error("Unsupported previous source map format: "+t.toString())}}else if(this.inline){return this.decodeInline(this.annotation)}else if(this.annotation){let t=this.annotation;if(e)t=l(a(e),t);return this.loadFile(t)}}startWith(e,t){if(!e)return false;return e.substr(0,t.length)===t}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}e.exports=u;u.default=u},96846:(e,t,r)=>{"use strict";let i=r(84211);let n=r(96966);let s=r(40145);let o=r(25644);class a{constructor(e=[]){this.version="8.4.31";this.plugins=this.normalize(e)}normalize(e){let t=[];for(let r of e){if(r.postcss===true){r=r()}else if(r.postcss){r=r.postcss}if(typeof r==="object"&&Array.isArray(r.plugins)){t=t.concat(r.plugins)}else if(typeof r==="object"&&r.postcssPlugin){t.push(r)}else if(typeof r==="function"){t.push(r)}else if(typeof r==="object"&&(r.parse||r.stringify)){if(false){}}else{throw new Error(r+" is not a PostCSS plugin")}}return t}process(e,t={}){if(this.plugins.length===0&&typeof t.parser==="undefined"&&typeof t.stringifier==="undefined"&&typeof t.syntax==="undefined"){return new i(this,e,t)}else{return new n(this,e,t)}}use(e){this.plugins=this.plugins.concat(this.normalize([e]));return this}}e.exports=a;a.default=a;o.registerProcessor(a);s.registerProcessor(a)},33717:(e,t,r)=>{"use strict";let i=r(60038);class n{constructor(e,t,r){this.processor=e;this.messages=[];this.root=t;this.opts=r;this.css=undefined;this.map=undefined}toString(){return this.css}warn(e,t={}){if(!t.plugin){if(this.lastPlugin&&this.lastPlugin.postcssPlugin){t.plugin=this.lastPlugin.postcssPlugin}}let r=new i(e,t);this.messages.push(r);return r}warnings(){return this.messages.filter((e=>e.type==="warning"))}get content(){return this.css}}e.exports=n;n.default=n},25644:(e,t,r)=>{"use strict";let i=r(77793);let n,s;class o extends i{constructor(e){super(e);this.type="root";if(!this.nodes)this.nodes=[]}normalize(e,t,r){let i=super.normalize(e);if(t){if(r==="prepend"){if(this.nodes.length>1){t.raws.before=this.nodes[1].raws.before}else{delete t.raws.before}}else if(this.first!==t){for(let e of i){e.raws.before=t.raws.before}}}return i}removeChild(e,t){let r=this.index(e);if(!t&&r===0&&this.nodes.length>1){this.nodes[1].raws.before=this.nodes[r].raws.before}return super.removeChild(e)}toResult(e={}){let t=new n(new s,this,e);return t.stringify()}}o.registerLazyResult=e=>{n=e};o.registerProcessor=e=>{s=e};e.exports=o;o.default=o;i.registerRoot(o)},61534:(e,t,r)=>{"use strict";let i=r(77793);let n=r(81752);class s extends i{constructor(e){super(e);this.type="rule";if(!this.nodes)this.nodes=[]}get selectors(){return n.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null;let r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}}e.exports=s;s.default=s;i.registerRule(s)},47668:e=>{"use strict";const t={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:false};function r(e){return e[0].toUpperCase()+e.slice(1)}class i{constructor(e){this.builder=e}atrule(e,t){let r="@"+e.name;let i=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName!=="undefined"){r+=e.raws.afterName}else if(i){r+=" "}if(e.nodes){this.block(e,r+i)}else{let n=(e.raws.between||"")+(t?";":"");this.builder(r+i+n,e)}}beforeAfter(e,t){let r;if(e.type==="decl"){r=this.raw(e,null,"beforeDecl")}else if(e.type==="comment"){r=this.raw(e,null,"beforeComment")}else if(t==="before"){r=this.raw(e,null,"beforeRule")}else{r=this.raw(e,null,"beforeClose")}let i=e.parent;let n=0;while(i&&i.type!=="root"){n+=1;i=i.parent}if(r.includes("\n")){let t=this.raw(e,null,"indent");if(t.length){for(let e=0;e0){if(e.nodes[t].type!=="comment")break;t-=1}let r=this.raw(e,"semicolon");for(let i=0;i{s=e.raws[i];if(typeof s!=="undefined")return false}))}}if(typeof s==="undefined")s=t[n];a.rawCache[n]=s;return s}rawBeforeClose(e){let t;e.walk((e=>{if(e.nodes&&e.nodes.length>0){if(typeof e.raws.after!=="undefined"){t=e.raws.after;if(t.includes("\n")){t=t.replace(/[^\n]+$/,"")}return false}}}));if(t)t=t.replace(/\S/g,"");return t}rawBeforeComment(e,t){let r;e.walkComments((e=>{if(typeof e.raws.before!=="undefined"){r=e.raws.before;if(r.includes("\n")){r=r.replace(/[^\n]+$/,"")}return false}}));if(typeof r==="undefined"){r=this.raw(t,null,"beforeDecl")}else if(r){r=r.replace(/\S/g,"")}return r}rawBeforeDecl(e,t){let r;e.walkDecls((e=>{if(typeof e.raws.before!=="undefined"){r=e.raws.before;if(r.includes("\n")){r=r.replace(/[^\n]+$/,"")}return false}}));if(typeof r==="undefined"){r=this.raw(t,null,"beforeRule")}else if(r){r=r.replace(/\S/g,"")}return r}rawBeforeOpen(e){let t;e.walk((e=>{if(e.type!=="decl"){t=e.raws.between;if(typeof t!=="undefined")return false}}));return t}rawBeforeRule(e){let t;e.walk((r=>{if(r.nodes&&(r.parent!==e||e.first!==r)){if(typeof r.raws.before!=="undefined"){t=r.raws.before;if(t.includes("\n")){t=t.replace(/[^\n]+$/,"")}return false}}}));if(t)t=t.replace(/\S/g,"");return t}rawColon(e){let t;e.walkDecls((e=>{if(typeof e.raws.between!=="undefined"){t=e.raws.between.replace(/[^\s:]/g,"");return false}}));return t}rawEmptyBody(e){let t;e.walk((e=>{if(e.nodes&&e.nodes.length===0){t=e.raws.after;if(typeof t!=="undefined")return false}}));return t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;e.walk((r=>{let i=r.parent;if(i&&i!==e&&i.parent&&i.parent===e){if(typeof r.raws.before!=="undefined"){let e=r.raws.before.split("\n");t=e[e.length-1];t=t.replace(/\S/g,"");return false}}}));return t}rawSemicolon(e){let t;e.walk((e=>{if(e.nodes&&e.nodes.length&&e.last.type==="decl"){t=e.raws.semicolon;if(typeof t!=="undefined")return false}}));return t}rawValue(e,t){let r=e[t];let i=e.raws[t];if(i&&i.value===r){return i.raw}return r}root(e){this.body(e);if(e.raws.after)this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector"));if(e.raws.ownSemicolon){this.builder(e.raws.ownSemicolon,e,"end")}}stringify(e,t){if(!this[e.type]){throw new Error("Unknown AST node type "+e.type+". "+"Maybe you need to change PostCSS stringifier.")}this[e.type](e,t)}}e.exports=i;i.default=i},83303:(e,t,r)=>{"use strict";let i=r(47668);function n(e,t){let r=new i(t);r.stringify(e)}e.exports=n;n.default=n},84151:e=>{"use strict";e.exports.isClean=Symbol("isClean");e.exports.my=Symbol("my")},45781:e=>{"use strict";const t="'".charCodeAt(0);const r='"'.charCodeAt(0);const i="\\".charCodeAt(0);const n="/".charCodeAt(0);const s="\n".charCodeAt(0);const o=" ".charCodeAt(0);const a="\f".charCodeAt(0);const l="\t".charCodeAt(0);const c="\r".charCodeAt(0);const u="[".charCodeAt(0);const f="]".charCodeAt(0);const h="(".charCodeAt(0);const p=")".charCodeAt(0);const d="{".charCodeAt(0);const m="}".charCodeAt(0);const g=";".charCodeAt(0);const y="*".charCodeAt(0);const b=":".charCodeAt(0);const v="@".charCodeAt(0);const w=/[\t\n\f\r "#'()/;[\\\]{}]/g;const x=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g;const T=/.[\r\n"'(/\\]/;const E=/[\da-f]/i;e.exports=function e(S,A={}){let C=S.css.valueOf();let k=A.ignoreErrors;let O,q,I,L,D;let N,P,M,B,R;let j=C.length;let _=0;let U=[];let H=[];function V(){return _}function F(e){throw S.error("Unclosed "+e,_)}function G(){return H.length===0&&_>=j}function z(e){if(H.length)return H.pop();if(_>=j)return;let S=e?e.ignoreUnclosed:false;O=C.charCodeAt(_);switch(O){case s:case o:case l:case c:case a:{q=_;do{q+=1;O=C.charCodeAt(q)}while(O===o||O===s||O===l||O===c||O===a);R=["space",C.slice(_,q)];_=q-1;break}case u:case f:case d:case m:case b:case g:case p:{let e=String.fromCharCode(O);R=[e,e,_];break}case h:{M=U.length?U.pop()[1]:"";B=C.charCodeAt(_+1);if(M==="url"&&B!==t&&B!==r&&B!==o&&B!==s&&B!==l&&B!==a&&B!==c){q=_;do{N=false;q=C.indexOf(")",q+1);if(q===-1){if(k||S){q=_;break}else{F("bracket")}}P=q;while(C.charCodeAt(P-1)===i){P-=1;N=!N}}while(N);R=["brackets",C.slice(_,q+1),_,q];_=q}else{q=C.indexOf(")",_+1);L=C.slice(_,q+1);if(q===-1||T.test(L)){R=["(","(",_]}else{R=["brackets",L,_,q];_=q}}break}case t:case r:{I=O===t?"'":'"';q=_;do{N=false;q=C.indexOf(I,q+1);if(q===-1){if(k||S){q=_+1;break}else{F("string")}}P=q;while(C.charCodeAt(P-1)===i){P-=1;N=!N}}while(N);R=["string",C.slice(_,q+1),_,q];_=q;break}case v:{w.lastIndex=_+1;w.test(C);if(w.lastIndex===0){q=C.length-1}else{q=w.lastIndex-2}R=["at-word",C.slice(_,q+1),_,q];_=q;break}case i:{q=_;D=true;while(C.charCodeAt(q+1)===i){q+=1;D=!D}O=C.charCodeAt(q+1);if(D&&O!==n&&O!==o&&O!==s&&O!==l&&O!==c&&O!==a){q+=1;if(E.test(C.charAt(q))){while(E.test(C.charAt(q+1))){q+=1}if(C.charCodeAt(q+1)===o){q+=1}}}R=["word",C.slice(_,q+1),_,q];_=q;break}default:{if(O===n&&C.charCodeAt(_+1)===y){q=C.indexOf("*/",_+2)+1;if(q===0){if(k||S){q=C.length}else{F("comment")}}R=["comment",C.slice(_,q+1),_,q];_=q}else{x.lastIndex=_+1;x.test(C);if(x.lastIndex===0){q=C.length-1}else{q=x.lastIndex-2}R=["word",C.slice(_,q+1),_,q];U.push(R);_=q}break}}_++;return R}function W(e){H.push(e)}return{back:W,endOfFile:G,nextToken:z,position:V}}},6156:e=>{"use strict";let t={};e.exports=function e(r){if(t[r])return;t[r]=true;if(typeof console!=="undefined"&&console.warn){console.warn(r)}}},60038:e=>{"use strict";class t{constructor(e,t={}){this.type="warning";this.text=e;if(t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line;this.column=e.start.column;this.endLine=e.end.line;this.endColumn=e.end.column}for(let r in t)this[r]=t[r]}toString(){if(this.node){return this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message}if(this.plugin){return this.plugin+": "+this.text}return this.text}}e.exports=t;t.default=t},65606:e=>{var t=e.exports={};var r;var i;function n(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){r=setTimeout}else{r=n}}catch(e){r=n}try{if(typeof clearTimeout==="function"){i=clearTimeout}else{i=s}}catch(e){i=s}})();function o(e){if(r===setTimeout){return setTimeout(e,0)}if((r===n||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function a(e){if(i===clearTimeout){return clearTimeout(e)}if((i===s||!i)&&clearTimeout){i=clearTimeout;return clearTimeout(e)}try{return i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}var l=[];var c=false;var u;var f=-1;function h(){if(!c||!u){return}c=false;if(u.length){l=u.concat(l)}else{f=-1}if(l.length){p()}}function p(){if(c){return}var e=o(h);c=true;var t=l.length;while(t){u=l;l=[];while(++f1){for(var r=1;r{const i=r(78659);const n=r(52834);const{isPlainObject:s}=r(78682);const o=r(14744);const a=r(29466);const{parse:l}=r(12895);const c=["img","audio","video","picture","svg","object","map","iframe","embed"];const u=["script","style"];function f(e,t){if(e){Object.keys(e).forEach((function(r){t(e[r],r)}))}}function h(e,t){return{}.hasOwnProperty.call(e,t)}function p(e,t){const r=[];f(e,(function(e){if(t(e)){r.push(e)}}));return r}function d(e){for(const t in e){if(h(e,t)){return false}}return true}function m(e){return e.map((function(e){if(!e.url){throw new Error("URL missing")}return e.url+(e.w?` ${e.w}w`:"")+(e.h?` ${e.h}h`:"")+(e.d?` ${e.d}x`:"")})).join(", ")}e.exports=y;const g=/^[^\0\t\n\f\r /<=>]+$/;function y(e,t,r){if(e==null){return""}if(typeof e==="number"){e=e.toString()}let v="";let w="";function x(e,t){const r=this;this.tag=e;this.attribs=t||{};this.tagPosition=v.length;this.text="";this.mediaChildren=[];this.updateParentNodeText=function(){if(D.length){const e=D[D.length-1];e.text+=r.text}};this.updateParentNodeMediaChildren=function(){if(D.length&&c.includes(this.tag)){const e=D[D.length-1];e.mediaChildren.push(this.tag)}}}t=Object.assign({},y.defaults,t);t.parser=Object.assign({},b,t.parser);const T=function(e){return t.allowedTags===false||(t.allowedTags||[]).indexOf(e)>-1};u.forEach((function(e){if(T(e)&&!t.allowVulnerableTags){console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${e}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)}}));const E=t.nonTextTags||["script","style","textarea","option"];let S;let A;if(t.allowedAttributes){S={};A={};f(t.allowedAttributes,(function(e,t){S[t]=[];const r=[];e.forEach((function(e){if(typeof e==="string"&&e.indexOf("*")>=0){r.push(n(e).replace(/\\\*/g,".*"))}else{S[t].push(e)}}));if(r.length){A[t]=new RegExp("^("+r.join("|")+")$")}}))}const C={};const k={};const O={};f(t.allowedClasses,(function(e,t){if(S){if(!h(S,t)){S[t]=[]}S[t].push("class")}C[t]=e;if(Array.isArray(e)){const r=[];C[t]=[];O[t]=[];e.forEach((function(e){if(typeof e==="string"&&e.indexOf("*")>=0){r.push(n(e).replace(/\\\*/g,".*"))}else if(e instanceof RegExp){O[t].push(e)}else{C[t].push(e)}}));if(r.length){k[t]=new RegExp("^("+r.join("|")+")$")}}}));const q={};let I;f(t.transformTags,(function(e,t){let r;if(typeof e==="function"){r=e}else if(typeof e==="string"){r=y.simpleTransform(e)}if(t==="*"){I=r}else{q[t]=r}}));let L;let D;let N;let P;let M;let B;let R=false;_();const j=new i.Parser({onopentag:function(e,r){if(t.enforceHtmlBoundary&&e==="html"){_()}if(M){B++;return}const i=new x(e,r);D.push(i);let n=false;const c=!!i.text;let u;if(h(q,e)){u=q[e](e,r);i.attribs=r=u.attribs;if(u.text!==undefined){i.innerText=u.text}if(e!==u.tagName){i.name=e=u.tagName;P[L]=u.tagName}}if(I){u=I(e,r);i.attribs=r=u.attribs;if(e!==u.tagName){i.name=e=u.tagName;P[L]=u.tagName}}if(!T(e)||t.disallowedTagsMode==="recursiveEscape"&&!d(N)||t.nestingLimit!=null&&L>=t.nestingLimit){n=true;N[L]=true;if(t.disallowedTagsMode==="discard"){if(E.indexOf(e)!==-1){M=true;B=1}}N[L]=true}L++;if(n){if(t.disallowedTagsMode==="discard"){return}w=v;v=""}v+="<"+e;if(e==="script"){if(t.allowedScriptHostnames||t.allowedScriptDomains){i.innerText=""}}if(!S||h(S,e)||S["*"]){f(r,(function(r,n){if(!g.test(n)){delete i.attribs[n];return}if(r===""&&!t.allowedEmptyAttributes.includes(n)&&(t.nonBooleanAttributes.includes(n)||t.nonBooleanAttributes.includes("*"))){delete i.attribs[n];return}let c=false;if(!S||h(S,e)&&S[e].indexOf(n)!==-1||S["*"]&&S["*"].indexOf(n)!==-1||h(A,e)&&A[e].test(n)||A["*"]&&A["*"].test(n)){c=true}else if(S&&S[e]){for(const t of S[e]){if(s(t)&&t.name&&t.name===n){c=true;let e="";if(t.multiple===true){const i=r.split(" ");for(const r of i){if(t.values.indexOf(r)!==-1){if(e===""){e=r}else{e+=" "+r}}}}else if(t.values.indexOf(r)>=0){e=r}r=e}}}if(c){if(t.allowedSchemesAppliedToAttributes.indexOf(n)!==-1){if(H(e,r)){delete i.attribs[n];return}}if(e==="script"&&n==="src"){let e=true;try{const i=V(r);if(t.allowedScriptHostnames||t.allowedScriptDomains){const r=(t.allowedScriptHostnames||[]).find((function(e){return e===i.url.hostname}));const n=(t.allowedScriptDomains||[]).find((function(e){return i.url.hostname===e||i.url.hostname.endsWith(`.${e}`)}));e=r||n}}catch(u){e=false}if(!e){delete i.attribs[n];return}}if(e==="iframe"&&n==="src"){let e=true;try{const i=V(r);if(i.isRelativeUrl){e=h(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains}else if(t.allowedIframeHostnames||t.allowedIframeDomains){const r=(t.allowedIframeHostnames||[]).find((function(e){return e===i.url.hostname}));const n=(t.allowedIframeDomains||[]).find((function(e){return i.url.hostname===e||i.url.hostname.endsWith(`.${e}`)}));e=r||n}}catch(u){e=false}if(!e){delete i.attribs[n];return}}if(n==="srcset"){try{let e=a(r);e.forEach((function(e){if(H("srcset",e.url)){e.evil=true}}));e=p(e,(function(e){return!e.evil}));if(!e.length){delete i.attribs[n];return}else{r=m(p(e,(function(e){return!e.evil})));i.attribs[n]=r}}catch(u){delete i.attribs[n];return}}if(n==="class"){const t=C[e];const s=C["*"];const a=k[e];const l=O[e];const c=k["*"];const u=[a,c].concat(l).filter((function(e){return e}));if(t&&s){r=W(r,o(t,s),u)}else{r=W(r,t||s,u)}if(!r.length){delete i.attribs[n];return}}if(n==="style"){if(t.parseStyleAttributes){try{const s=l(e+" {"+r+"}",{map:false});const o=F(s,t.allowedStyles);r=G(o);if(r.length===0){delete i.attribs[n];return}}catch(u){if(typeof window!=="undefined"){console.warn('Failed to parse "'+e+" {"+r+"}"+"\", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547")}delete i.attribs[n];return}}else if(t.allowedStyles){throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.")}}v+=" "+n;if(r&&r.length){v+='="'+U(r,true)+'"'}else if(t.allowedEmptyAttributes.includes(n)){v+='=""'}}else{delete i.attribs[n]}}))}if(t.selfClosing.indexOf(e)!==-1){v+=" />"}else{v+=">";if(i.innerText&&!c&&!t.textFilter){v+=U(i.innerText);R=true}}if(n){v=w+U(v);w=""}},ontext:function(e){if(M){return}const r=D[D.length-1];let i;if(r){i=r.tag;e=r.innerText!==undefined?r.innerText:e}if(t.disallowedTagsMode==="discard"&&(i==="script"||i==="style")){v+=e}else{const r=U(e,false);if(t.textFilter&&!R){v+=t.textFilter(r,i)}else if(!R){v+=r}}if(D.length){const t=D[D.length-1];t.text+=e}},onclosetag:function(e,r){if(M){B--;if(!B){M=false}else{return}}const i=D.pop();if(!i){return}if(i.tag!==e){D.push(i);return}M=t.enforceHtmlBoundary?e==="html":false;L--;const n=N[L];if(n){delete N[L];if(t.disallowedTagsMode==="discard"){i.updateParentNodeText();return}w=v;v=""}if(P[L]){e=P[L];delete P[L]}if(t.exclusiveFilter&&t.exclusiveFilter(i)){v=v.substr(0,i.tagPosition);return}i.updateParentNodeMediaChildren();i.updateParentNodeText();if(t.selfClosing.indexOf(e)!==-1||r&&!T(e)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0){if(n){v=w;w=""}return}v+="";if(n){v=w+U(v);w=""}R=false}},t.parser);j.write(e);j.end();return v;function _(){v="";L=0;D=[];N={};P={};M=false;B=0}function U(e,r){if(typeof e!=="string"){e=e+""}if(t.parser.decodeEntities){e=e.replace(/&/g,"&").replace(//g,">");if(r){e=e.replace(/"/g,""")}}e=e.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">");if(r){e=e.replace(/"/g,""")}return e}function H(e,r){r=r.replace(/[\x00-\x20]+/g,"");while(true){const e=r.indexOf("\x3c!--");if(e===-1){break}const t=r.indexOf("--\x3e",e+4);if(t===-1){break}r=r.substring(0,e)+r.substring(t+3)}const i=r.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!i){if(r.match(/^[/\\]{2}/)){return!t.allowProtocolRelative}return false}const n=i[1].toLowerCase();if(h(t.allowedSchemesByTag,e)){return t.allowedSchemesByTag[e].indexOf(n)===-1}return!t.allowedSchemes||t.allowedSchemes.indexOf(n)===-1}function V(e){e=e.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//");if(e.startsWith("relative:")){throw new Error("relative: exploit attempt")}let t="relative://relative-site";for(let n=0;n<100;n++){t+=`/${n}`}const r=new URL(e,t);const i=r&&r.hostname==="relative-site"&&r.protocol==="relative:";return{isRelativeUrl:i,url:r}}function F(e,t){if(!t){return e}const r=e.nodes[0];let i;if(t[r.selector]&&t["*"]){i=o(t[r.selector],t["*"])}else{i=t[r.selector]||t["*"]}if(i){e.nodes[0].nodes=r.nodes.reduce(z(i),[])}return e}function G(e){return e.nodes[0].nodes.reduce((function(e,t){e.push(`${t.prop}:${t.value}${t.important?" !important":""}`);return e}),[]).join(";")}function z(e){return function(t,r){if(h(e,r.prop)){const i=e[r.prop].some((function(e){return e.test(r.value)}));if(i){t.push(r)}}return t}}function W(e,t,r){if(!t){return e}e=e.split(/\s+/);return e.filter((function(e){return t.indexOf(e)!==-1||r.some((function(t){return t.test(e)}))})).join(" ")}}const b={decodeEntities:true};y.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:true,enforceHtmlBoundary:false,parseStyleAttributes:true};y.simpleTransform=function(e,t,r){r=r===undefined?true:r;t=t||{};return function(i,n){let s;if(r){for(s in t){n[s]=t[s]}}else{n=t}return{tagName:e,attribs:n}}}},95042:e=>{let t="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let r=(e,t=21)=>(r=t)=>{let i="";let n=r|0;while(n--){i+=e[Math.random()*e.length|0]}return i};let i=(e=21)=>{let r="";let i=e|0;while(i--){r+=t[Math.random()*64|0]}return r};e.exports={nanoid:i,customAlphabet:r}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4728.f59e4bd4b29409da82bc.js.LICENSE.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4728.f59e4bd4b29409da82bc.js.LICENSE.txt deleted file mode 100644 index fe4c1fe30790a171f197285f24a235761b4800ac..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4728.f59e4bd4b29409da82bc.js.LICENSE.txt +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4797.3740ef47b224a11a7fab.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4797.3740ef47b224a11a7fab.js deleted file mode 100644 index e988d50ee58b43bdb7e696b7e039428cb3275862..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4797.3740ef47b224a11a7fab.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4797],{14797:(e,t,n)=>{n.r(t);n.d(t,{commonLisp:()=>p});var r=/^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/;var l=/^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/;var i=/^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/;var o=/[^\s'`,@()\[\]";]/;var a;function s(e){var t;while(t=e.next()){if(t=="\\")e.next();else if(!o.test(t)){e.backUp(1);break}}return e.current()}function c(e,t){if(e.eatSpace()){a="ws";return null}if(e.match(i))return"number";var n=e.next();if(n=="\\")n=e.next();if(n=='"')return(t.tokenize=u)(e,t);else if(n=="("){a="open";return"bracket"}else if(n==")"){a="close";return"bracket"}else if(n==";"){e.skipToEnd();a="ws";return"comment"}else if(/['`,@]/.test(n))return null;else if(n=="|"){if(e.skipTo("|")){e.next();return"variableName"}else{e.skipToEnd();return"error"}}else if(n=="#"){var n=e.next();if(n=="("){a="open";return"bracket"}else if(/[+\-=\.']/.test(n))return null;else if(/\d/.test(n)&&e.match(/^\d*#/))return null;else if(n=="|")return(t.tokenize=f)(e,t);else if(n==":"){s(e);return"meta"}else if(n=="\\"){e.next();s(e);return"string.special"}else return"error"}else{var o=s(e);if(o==".")return null;a="symbol";if(o=="nil"||o=="t"||o.charAt(0)==":")return"atom";if(t.lastType=="open"&&(r.test(o)||l.test(o)))return"keyword";if(o.charAt(0)=="&")return"variableName.special";return"variableName"}}function u(e,t){var n=false,r;while(r=e.next()){if(r=='"'&&!n){t.tokenize=c;break}n=!n&&r=="\\"}return"string"}function f(e,t){var n,r;while(n=e.next()){if(n=="#"&&r=="|"){t.tokenize=c;break}r=n}a="ws";return"comment"}const p={name:"commonlisp",startState:function(){return{ctx:{prev:null,start:0,indentTo:0},lastType:null,tokenize:c}},token:function(e,t){if(e.sol()&&typeof t.ctx.indentTo!="number")t.ctx.indentTo=t.ctx.start+1;a=null;var n=t.tokenize(e,t);if(a!="ws"){if(t.ctx.indentTo==null){if(a=="symbol"&&l.test(e.current()))t.ctx.indentTo=t.ctx.start+e.indentUnit;else t.ctx.indentTo="next"}else if(t.ctx.indentTo=="next"){t.ctx.indentTo=e.column()}t.lastType=a}if(a=="open")t.ctx={prev:t.ctx,start:e.column(),indentTo:null};else if(a=="close")t.ctx=t.ctx.prev||t.ctx;return n},indent:function(e){var t=e.ctx.indentTo;return typeof t=="number"?t:e.ctx.start+1},languageData:{commentTokens:{line:";;",block:{open:"#|",close:"|#"}},closeBrackets:{brackets:["(","[","{",'"']}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/481e39042508ae313a60.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/481e39042508ae313a60.woff deleted file mode 100644 index d8998099f38a0913f9db8ec42dfe8938aaf93605..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/481e39042508ae313a60.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4838.8db4c61349bfba200547.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4838.8db4c61349bfba200547.js deleted file mode 100644 index 38d3b6fe0f665a8c3fad1a968e68bac3e5682105..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4838.8db4c61349bfba200547.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4838],{84838:(e,t,n)=>{n.r(t);n.d(t,{vhdl:()=>b});function r(e){var t={},n=e.split(",");for(var r=0;r0)&&!(o=i.next()).done)n.push(o.value)}catch(s){a={error:s}}finally{try{if(o&&!o.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return n};var a=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,o=e.length,n;i=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.AssistiveMmlHandler=e.AssistiveMmlMathDocumentMixin=e.AssistiveMmlMathItemMixin=e.LimitedMmlVisitor=void 0;var l=r(24971);var u=r(14347);var c=r(34981);var p=function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.getAttributes=function(e){return t.prototype.getAttributes.call(this,e).replace(/ ?id=".*?"/,"")};return e}(u.SerializedMmlVisitor);e.LimitedMmlVisitor=p;(0,l.newState)("ASSISTIVEMML",153);function f(t){return function(t){i(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}e.prototype.assistiveMml=function(t,e){if(e===void 0){e=false}if(this.state()>=l.STATE.ASSISTIVEMML)return;if(!this.isEscaped&&(t.options.enableAssistiveMml||e)){var r=t.adaptor;var i=t.toMML(this.root).replace(/\n */g,"").replace(//g,"");var o=r.firstChild(r.body(r.parse(i,"text/html")));var n=r.node("mjx-assistive-mml",{unselectable:"on",display:this.display?"block":"inline"},[o]);r.setAttribute(r.firstChild(this.typesetRoot),"aria-hidden","true");r.setStyle(this.typesetRoot,"position","relative");r.append(this.typesetRoot,n)}this.state(l.STATE.ASSISTIVEMML)};return e}(t)}e.AssistiveMmlMathItemMixin=f;function v(t){var e;return e=function(t){i(e,t);function e(){var e=[];for(var r=0;r=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),o,n=[],a;try{while((e===void 0||e-- >0)&&!(o=i.next()).done)n.push(o.value)}catch(s){a={error:s}}finally{try{if(o&&!o.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return n};Object.defineProperty(e,"__esModule",{value:true});e.SerializedMmlVisitor=e.toEntity=e.DATAMJX=void 0;var a=r(76677);var s=r(80747);var l=r(32175);e.DATAMJX="data-mjx-";var u=function(t){return"&#x"+t.codePointAt(0).toString(16).toUpperCase()+";"};e.toEntity=u;var c=function(t){i(r,t);function r(){return t!==null&&t.apply(this,arguments)||this}r.prototype.visitTree=function(t){return this.visitNode(t,"")};r.prototype.visitTextNode=function(t,e){return this.quoteHTML(t.getText())};r.prototype.visitXMLNode=function(t,e){return e+t.getSerializedXML()};r.prototype.visitInferredMrowNode=function(t,e){var r,i;var n=[];try{for(var a=o(t.childNodes),s=a.next();!s.done;s=a.next()){var l=s.value;n.push(this.visitNode(l,e))}}catch(u){r={error:u}}finally{try{if(s&&!s.done&&(i=a.return))i.call(a)}finally{if(r)throw r.error}}return n.join("\n")};r.prototype.visitTeXAtomNode=function(t,e){var r=this.childNodeMml(t,e+" ","\n");var i=e+""+(r.match(/\S/)?"\n"+r+e:"")+"
    ";return i};r.prototype.visitAnnotationNode=function(t,e){return e+""+this.childNodeMml(t,"","")+""};r.prototype.visitDefault=function(t,e){var r=t.kind;var i=n(t.isToken||t.childNodes.length===0?["",""]:["\n",e],2),o=i[0],a=i[1];var s=this.childNodeMml(t,e+" ",o);return e+"<"+r+this.getAttributes(t)+">"+(s.match(/\S/)?o+s+a:"")+""};r.prototype.childNodeMml=function(t,e,r){var i,n;var a="";try{for(var s=o(t.childNodes),l=s.next();!l.done;l=s.next()){var u=l.value;a+=this.visitNode(u,e)+r}}catch(c){i={error:c}}finally{try{if(l&&!l.done&&(n=s.return))n.call(s)}finally{if(i)throw i.error}}return a};r.prototype.getAttributes=function(t){var e,r;var i=[];var n=this.constructor.defaultAttributes[t.kind]||{};var a=Object.assign({},n,this.getDataAttributes(t),t.attributes.getAllAttributes());var s=this.constructor.variants;if(a.hasOwnProperty("mathvariant")&&s.hasOwnProperty(a.mathvariant)){a.mathvariant=s[a.mathvariant]}try{for(var l=o(Object.keys(a)),u=l.next();!u.done;u=l.next()){var c=u.value;var p=String(a[c]);if(p===undefined)continue;i.push(c+'="'+this.quoteHTML(p)+'"')}}catch(f){e={error:f}}finally{try{if(u&&!u.done&&(r=l.return))r.call(l)}finally{if(e)throw e.error}}return i.length?" "+i.join(" "):""};r.prototype.getDataAttributes=function(t){var e={};var r=t.attributes.getExplicit("mathvariant");var i=this.constructor.variants;r&&i.hasOwnProperty(r)&&this.setDataAttribute(e,"variant",r);t.getProperty("variantForm")&&this.setDataAttribute(e,"alternate","1");t.getProperty("pseudoscript")&&this.setDataAttribute(e,"pseudoscript","true");t.getProperty("autoOP")===false&&this.setDataAttribute(e,"auto-op","false");var o=t.getProperty("scriptalign");o&&this.setDataAttribute(e,"script-align",o);var n=t.getProperty("texClass");if(n!==undefined){var a=true;if(n===s.TEXCLASS.OP&&t.isKind("mi")){var u=t.getText();a=!(u.length>1&&u.match(l.MmlMi.operatorName))}a&&this.setDataAttribute(e,"texclass",n<0?"NONE":s.TEXCLASSNAMES[n])}t.getProperty("scriptlevel")&&t.getProperty("useHeight")===false&&this.setDataAttribute(e,"smallmatrix","true");return e};r.prototype.setDataAttribute=function(t,r,i){t[e.DATAMJX+r]=i};r.prototype.quoteHTML=function(t){return t.replace(/&/g,"&").replace(//g,">").replace(/\"/g,""").replace(/[\uD800-\uDBFF]./g,e.toEntity).replace(/[\u0080-\uD7FF\uE000-\uFFFF]/g,e.toEntity)};r.variants={"-tex-calligraphic":"script","-tex-bold-calligraphic":"bold-script","-tex-oldstyle":"normal","-tex-bold-oldstyle":"bold","-tex-mathit":"italic"};r.defaultAttributes={math:{xmlns:"http://www.w3.org/1998/Math/MathML"}};return r}(a.MmlVisitor);e.SerializedMmlVisitor=c},34167:function(t,e,r){var i=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var i=r.call(t),o,n=[],a;try{while((e===void 0||e-- >0)&&!(o=i.next()).done)n.push(o.value)}catch(s){a={error:s}}finally{try{if(o&&!o.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return n};var n=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,o=e.length,n;i{n.r(t);n.d(t,{puppet:()=>c});var i={};var a=/({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;function r(e,t){var n=t.split(" ");for(var a=0;a.*/,false);var o=e.match(/(\s+)?[\w:_]+(\s+)?{/,false);var c=e.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/,false);var u=e.next();if(u==="$"){if(e.match(a)){return t.continueString?"variableName.special":"variable"}return"error"}if(t.continueString){e.backUp(1);return s(e,t)}if(t.inDefinition){if(e.match(/(\s+)?[\w:_]+(\s+)?/)){return"def"}e.match(/\s+{/);t.inDefinition=false}if(t.inInclude){e.match(/(\s+)?\S+(\s+)?/);t.inInclude=false;return"def"}if(e.match(/(\s+)?\w+\(/)){e.backUp(1);return"def"}if(r){e.match(/(\s+)?\w+/);return"tag"}if(n&&i.hasOwnProperty(n)){e.backUp(1);e.match(/[\w]+/);if(e.match(/\s+\S+\s+{/,false)){t.inDefinition=true}if(n=="include"){t.inInclude=true}return i[n]}if(/(^|\s+)[A-Z][\w:_]+/.test(n)){e.backUp(1);e.match(/(^|\s+)[A-Z][\w:_]+/);return"def"}if(o){e.match(/(\s+)?[\w:_]+/);return"def"}if(c){e.match(/(\s+)?[@]{1,2}/);return"atom"}if(u=="#"){e.skipToEnd();return"comment"}if(u=="'"||u=='"'){t.pending=u;return s(e,t)}if(u=="{"||u=="}"){return"bracket"}if(u=="/"){e.match(/^[^\/]*\//);return"string.special"}if(u.match(/[0-9]/)){e.eatWhile(/[0-9]+/);return"number"}if(u=="="){if(e.peek()==">"){e.next()}return"operator"}e.eatWhile(/[\w-]/);return null}const c={name:"puppet",startState:function(){var e={};e.inDefinition=false;e.inInclude=false;e.continueString=false;e.pending=false;return e},token:function(e,t){if(e.eatSpace())return null;return o(e,t)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/492.5f186062d2dcdf79c86c.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/492.5f186062d2dcdf79c86c.js deleted file mode 100644 index 9da2571fb454e15f284d4425e736d9228235c9ed..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/492.5f186062d2dcdf79c86c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[492],{30492:(e,t,r)=>{r.r(t);r.d(t,{vb:()=>O});var n="error";function a(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var i=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]");var o=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]");var c=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))");var u=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))");var l=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))");var s=new RegExp("^[_A-Za-z][_A-Za-z0-9]*");var f=["class","module","sub","enum","select","while","if","function","get","set","property","try","structure","synclock","using","with"];var d=["else","elseif","case","catch","finally"];var h=["next","loop"];var m=["and","andalso","or","orelse","xor","in","not","is","isnot","like"];var v=a(m);var p=["#const","#else","#elseif","#end","#if","#region","addhandler","addressof","alias","as","byref","byval","cbool","cbyte","cchar","cdate","cdbl","cdec","cint","clng","cobj","compare","const","continue","csbyte","cshort","csng","cstr","cuint","culng","cushort","declare","default","delegate","dim","directcast","each","erase","error","event","exit","explicit","false","for","friend","gettype","goto","handles","implements","imports","infer","inherits","interface","isfalse","istrue","lib","me","mod","mustinherit","mustoverride","my","mybase","myclass","namespace","narrowing","new","nothing","notinheritable","notoverridable","of","off","on","operator","option","optional","out","overloads","overridable","overrides","paramarray","partial","private","protected","public","raiseevent","readonly","redim","removehandler","resume","return","shadows","shared","static","step","stop","strict","then","throw","to","true","trycast","typeof","until","until","when","widening","withevents","writeonly"];var b=["object","boolean","char","string","byte","sbyte","short","ushort","int16","uint16","integer","uinteger","int32","uint32","long","ulong","int64","uint64","decimal","single","double","float","date","datetime","intptr","uintptr"];var g=a(p);var y=a(b);var k='"';var w=a(f);var x=a(d);var I=a(h);var z=a(["end"]);var L=a(["do"]);var E=null;function _(e,t){t.currentIndent++}function C(e,t){t.currentIndent--}function R(e,t){if(e.eatSpace()){return null}var r=e.peek();if(r==="'"){e.skipToEnd();return"comment"}if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,false)){var a=false;if(e.match(/^\d*\.\d+F?/i)){a=true}else if(e.match(/^\d+\.\d*F?/)){a=true}else if(e.match(/^\.\d+F?/)){a=true}if(a){e.eat(/J/i);return"number"}var f=false;if(e.match(/^&H[0-9a-f]+/i)){f=true}else if(e.match(/^&O[0-7]+/i)){f=true}else if(e.match(/^[1-9]\d*F?/)){e.eat(/J/i);f=true}else if(e.match(/^0(?![\dx])/i)){f=true}if(f){e.eat(/L/i);return"number"}}if(e.match(k)){t.tokenize=j(e.current());return t.tokenize(e,t)}if(e.match(l)||e.match(u)){return null}if(e.match(c)||e.match(i)||e.match(v)){return"operator"}if(e.match(o)){return null}if(e.match(L)){_(e,t);t.doInCurrentLine=true;return"keyword"}if(e.match(w)){if(!t.doInCurrentLine)_(e,t);else t.doInCurrentLine=false;return"keyword"}if(e.match(x)){return"keyword"}if(e.match(z)){C(e,t);C(e,t);return"keyword"}if(e.match(I)){C(e,t);return"keyword"}if(e.match(y)){return"keyword"}if(e.match(g)){return"keyword"}if(e.match(s)){return"variable"}e.next();return n}function j(e){var t=e.length==1;var r="string";return function(n,a){while(!n.eol()){n.eatWhile(/[^'"]/);if(n.match(e)){a.tokenize=R;return r}else{n.eat(/['"]/)}}if(t){a.tokenize=R}return r}}function F(e,t){var r=t.tokenize(e,t);var a=e.current();if(a==="."){r=t.tokenize(e,t);if(r==="variable"){return"variable"}else{return n}}var i="[({".indexOf(a);if(i!==-1){_(e,t)}if(E==="dedent"){if(C(e,t)){return n}}i="])}".indexOf(a);if(i!==-1){if(C(e,t)){return n}}return r}const O={name:"vb",startState:function(){return{tokenize:R,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:false}},token:function(e,t){if(e.sol()){t.currentIndent+=t.nextLineIndent;t.nextLineIndent=0;t.doInCurrentLine=0}var r=F(e,t);t.lastToken={style:r,content:e.current()};return r},indent:function(e,t,r){var n=t.replace(/^\s+|\s+$/g,"");if(n.match(I)||n.match(z)||n.match(x))return r.unit*(e.currentIndent-1);if(e.currentIndent<0)return 0;return e.currentIndent*r.unit},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:"'"},autocomplete:f.concat(d).concat(h).concat(m).concat(p).concat(b)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4928.6cb408e4def87534970d.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4928.6cb408e4def87534970d.js deleted file mode 100644 index ce15d828d75a3a8c22258ec475c64e6ebd10440a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4928.6cb408e4def87534970d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4928],{28499:(t,e,r)=>{Object.defineProperty(e,"__esModule",{value:true});e.AbstractFindMath=void 0;var i=r(34981);var n=function(){function t(t){var e=this.constructor;this.options=(0,i.userOptions)((0,i.defaultOptions)({},e.OPTIONS),t)}t.OPTIONS={};return t}();e.AbstractFindMath=n},77137:(t,e,r)=>{Object.defineProperty(e,"__esModule",{value:true});e.AbstractInputJax=void 0;var i=r(34981);var n=r(43899);var o=function(){function t(t){if(t===void 0){t={}}this.adaptor=null;this.mmlFactory=null;var e=this.constructor;this.options=(0,i.userOptions)((0,i.defaultOptions)({},e.OPTIONS),t);this.preFilters=new n.FunctionList;this.postFilters=new n.FunctionList}Object.defineProperty(t.prototype,"name",{get:function(){return this.constructor.NAME},enumerable:false,configurable:true});t.prototype.setAdaptor=function(t){this.adaptor=t};t.prototype.setMmlFactory=function(t){this.mmlFactory=t};t.prototype.initialize=function(){};t.prototype.reset=function(){var t=[];for(var e=0;e{Object.defineProperty(e,"__esModule",{value:true});e.newState=e.STATE=e.AbstractMathItem=e.protoItem=void 0;function r(t,e,r,i,n,o,a){if(a===void 0){a=null}var s={open:t,math:e,close:r,n:i,start:{n},end:{n:o},display:a};return s}e.protoItem=r;var i=function(){function t(t,r,i,n,o){if(i===void 0){i=true}if(n===void 0){n={i:0,n:0,delim:""}}if(o===void 0){o={i:0,n:0,delim:""}}this.root=null;this.typesetRoot=null;this.metrics={};this.inputData={};this.outputData={};this._state=e.STATE.UNPROCESSED;this.math=t;this.inputJax=r;this.display=i;this.start=n;this.end=o;this.root=null;this.typesetRoot=null;this.metrics={};this.inputData={};this.outputData={}}Object.defineProperty(t.prototype,"isEscaped",{get:function(){return this.display===null},enumerable:false,configurable:true});t.prototype.render=function(t){t.renderActions.renderMath(this,t)};t.prototype.rerender=function(t,r){if(r===void 0){r=e.STATE.RERENDER}if(this.state()>=r){this.state(r-1)}t.renderActions.renderMath(this,t,r)};t.prototype.convert=function(t,r){if(r===void 0){r=e.STATE.LAST}t.renderActions.renderConvert(this,t,r)};t.prototype.compile=function(t){if(this.state()=e.STATE.INSERTED){this.removeFromDocument(r)}if(t=e.STATE.TYPESET){this.outputData={}}if(t=e.STATE.COMPILED){this.inputData={}}this._state=t}return this._state};t.prototype.reset=function(t){if(t===void 0){t=false}this.state(e.STATE.UNPROCESSED,t)};return t}();e.AbstractMathItem=i;e.STATE={UNPROCESSED:0,FINDMATH:10,COMPILED:20,CONVERT:100,METRICS:110,RERENDER:125,TYPESET:150,INSERTED:200,LAST:1e4};function n(t,r){if(t in e.STATE){throw Error("State "+t+" already exists")}e.STATE[t]=r}e.newState=n},4928:function(t,e,r){var i=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();var n=this&&this.__assign||function(){n=Object.assign||function(t){for(var e,r=1,i=arguments.length;r0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};var a=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:true});e.TeX=void 0;var s=r(77137);var u=r(34981);var l=r(12787);var f=a(r(73525));var c=a(r(72691));var p=a(r(75845));var d=a(r(98770));var h=a(r(24404));var v=r(17782);var y=r(56441);r(11252);var m=function(t){i(e,t);function e(r){if(r===void 0){r={}}var i=this;var n=o((0,u.separateOptions)(r,e.OPTIONS,l.FindTeX.OPTIONS),3),a=n[0],s=n[1],c=n[2];i=t.call(this,s)||this;i.findTeX=i.options["FindTeX"]||new l.FindTeX(c);var p=i.options.packages;var d=i.configuration=e.configure(p);var y=i._parseOptions=new h.default(d,[i.options,v.TagsFactory.OPTIONS]);(0,u.userOptions)(y.options,a);d.config(i);e.tags(y,d);i.postFilters.add(f.default.cleanSubSup,-6);i.postFilters.add(f.default.setInherited,-5);i.postFilters.add(f.default.moveLimits,-4);i.postFilters.add(f.default.cleanStretchy,-3);i.postFilters.add(f.default.cleanAttributes,-2);i.postFilters.add(f.default.combineRelations,-1);return i}e.configure=function(t){var e=new y.ParserConfiguration(t,["tex"]);e.init();return e};e.tags=function(t,e){v.TagsFactory.addTags(e.tags);v.TagsFactory.setDefault(t.options.tags);t.tags=v.TagsFactory.getDefault();t.tags.configuration=t};e.prototype.setMmlFactory=function(e){t.prototype.setMmlFactory.call(this,e);this._parseOptions.nodeFactory.setMmlFactory(e)};Object.defineProperty(e.prototype,"parseOptions",{get:function(){return this._parseOptions},enumerable:false,configurable:true});e.prototype.reset=function(t){if(t===void 0){t=0}this.parseOptions.tags.reset(t)};e.prototype.compile=function(t,e){this.parseOptions.clear();this.executeFilters(this.preFilters,t,e,this.parseOptions);var r=t.display;this.latex=t.math;var i;this.parseOptions.tags.startEquation(t);var n;try{var o=new p.default(this.latex,{display:r,isInner:false},this.parseOptions);i=o.mml();n=o.stack.global}catch(a){if(!(a instanceof d.default)){throw a}this.parseOptions.error=true;i=this.options.formatError(this,a)}i=this.parseOptions.nodeFactory.create("node","math",[i]);if(n===null||n===void 0?void 0:n.indentalign){c.default.setAttribute(i,"indentalign",n.indentalign)}if(r){c.default.setAttribute(i,"display","block")}this.parseOptions.tags.finishEquation(t);this.parseOptions.root=i;this.executeFilters(this.postFilters,t,e,this.parseOptions);this.mathNode=this.parseOptions.root;return this.mathNode};e.prototype.findMath=function(t){return this.findTeX.findMath(t)};e.prototype.formatError=function(t){var e=t.message.replace(/\n.*/,"");return this.parseOptions.nodeFactory.create("error",e,t.id,this.latex)};e.NAME="TeX";e.OPTIONS=n(n({},s.AbstractInputJax.OPTIONS),{FindTeX:null,packages:["base"],digits:/^(?:[0-9]+(?:\{,\}[0-9]{3})*(?:\.[0-9]*)?|\.[0-9]+)/,maxBuffer:5*1024,formatError:function(t,e){return t.formatError(e)}});return e}(s.AbstractInputJax);e.TeX=m},73525:function(t,e,r){var i=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],i=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&i>=t.length)t=void 0;return{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:true});var o=r(80747);var a=n(r(72691));var s;(function(t){t.cleanStretchy=function(t){var e,r;var n=t.data;try{for(var o=i(n.getList("fixStretchy")),s=o.next();!s.done;s=o.next()){var u=s.value;if(a.default.getProperty(u,"fixStretchy")){var l=a.default.getForm(u);if(l&&l[3]&&l[3]["stretchy"]){a.default.setAttribute(u,"stretchy",false)}var f=u.parent;if(!a.default.getTexClass(u)&&(!l||!l[2])){var c=n.nodeFactory.create("node","TeXAtom",[u]);f.replaceChild(c,u);c.inheritAttributesFrom(u)}a.default.removeProperties(u,"fixStretchy")}}}catch(p){e={error:p}}finally{try{if(s&&!s.done&&(r=o.return))r.call(o)}finally{if(e)throw e.error}}};t.cleanAttributes=function(t){var e=t.data.root;e.walkTree((function(t,e){var r,n;var o=t.attributes;if(!o){return}var a=new Set((o.get("mjx-keep-attrs")||"").split(/ /));delete o.getAllAttributes()["mjx-keep-attrs"];try{for(var s=i(o.getExplicitNames()),u=s.next();!u.done;u=s.next()){var l=u.value;if(!a.has(l)&&o.attributes[l]===t.attributes.getInherited(l)){delete o.attributes[l]}}}catch(f){r={error:f}}finally{try{if(u&&!u.done&&(n=s.return))n.call(s)}finally{if(r)throw r.error}}}),{})};t.combineRelations=function(t){var n,s,u,l;var f=[];try{for(var c=i(t.data.getList("mo")),p=c.next();!p.done;p=c.next()){var d=p.value;if(d.getProperty("relationsCombined")||!d.parent||d.parent&&!a.default.isType(d.parent,"mrow")||a.default.getTexClass(d)!==o.TEXCLASS.REL){continue}var h=d.parent;var v=void 0;var y=h.childNodes;var m=y.indexOf(d)+1;var b=a.default.getProperty(d,"variantForm");while(m0)&&!(n=i.next()).done)o.push(n.value)}catch(s){a={error:s}}finally{try{if(n&&!n.done&&(r=i["return"]))r.call(i)}finally{if(a)throw a.error}}return o};Object.defineProperty(e,"__esModule",{value:true});e.FindTeX=void 0;var o=r(28499);var a=r(41278);var s=r(24971);var u=function(t){i(e,t);function e(e){var r=t.call(this,e)||this;r.getPatterns();return r}e.prototype.getPatterns=function(){var t=this;var e=this.options;var r=[],i=[],n=[];this.end={};this.env=this.sub=0;var o=1;e["inlineMath"].forEach((function(e){return t.addPattern(r,e,false)}));e["displayMath"].forEach((function(e){return t.addPattern(r,e,true)}));if(r.length){i.push(r.sort(a.sortLength).join("|"))}if(e["processEnvironments"]){i.push("\\\\begin\\s*\\{([^}]*)\\}");this.env=o;o++}if(e["processEscapes"]){n.push("\\\\([\\\\$])")}if(e["processRefs"]){n.push("(\\\\(?:eq)?ref\\s*\\{[^}]*\\})")}if(n.length){i.push("("+n.join("|")+")");this.sub=o}this.start=new RegExp(i.join("|"),"g");this.hasPatterns=i.length>0};e.prototype.addPattern=function(t,e,r){var i=n(e,2),o=i[0],s=i[1];t.push((0,a.quotePattern)(o));this.end[o]=[s,r,this.endPattern(s)]};e.prototype.endPattern=function(t,e){return new RegExp((e||(0,a.quotePattern)(t))+"|\\\\(?:[a-zA-Z]|.)|[{}]","g")};e.prototype.findEnd=function(t,e,r,i){var o=n(i,3),a=o[0],u=o[1],l=o[2];var f=l.lastIndex=r.index+r[0].length;var c,p=0;while(c=l.exec(t)){if((c[1]||c[0])===a&&p===0){return(0,s.protoItem)(r[0],t.substr(f,c.index-f),c[0],e,r.index,c.index+c[0].length,u)}else if(c[0]==="{"){p++}else if(c[0]==="}"&&p){p--}}return null};e.prototype.findMathInString=function(t,e,r){var i,n;this.start.lastIndex=0;while(i=this.start.exec(r)){if(i[this.env]!==undefined&&this.env){var o="\\\\end\\s*(\\{"+(0,a.quotePattern)(i[this.env])+"\\})";n=this.findEnd(r,e,i,["{"+i[this.env]+"}",true,this.endPattern(null,o)]);if(n){n.math=n.open+n.math+n.close;n.open=n.close=""}}else if(i[this.sub]!==undefined&&this.sub){var u=i[this.sub];var o=i.index+i[this.sub].length;if(u.length===2){n=(0,s.protoItem)("",u.substr(1),"",e,i.index,o)}else{n=(0,s.protoItem)("",u,"",e,i.index,o,false)}}else{n=this.findEnd(r,e,i,this.end[i[0]])}if(n){t.push(n);this.start.lastIndex=n.end.n}}};e.prototype.findMath=function(t){var e=[];if(this.hasPatterns){for(var r=0,i=t.length;r{i.r(t);i.d(t,{RegExpCursor:()=>u,SearchCursor:()=>a,SearchQuery:()=>I,closeSearchPanel:()=>de,findNext:()=>ie,findPrevious:()=>re,getSearchQuery:()=>U,gotoLine:()=>w,highlightSelectionMatches:()=>k,openSearchPanel:()=>fe,replaceAll:()=>le,replaceNext:()=>oe,search:()=>V,searchKeymap:()=>pe,searchPanelOpen:()=>J,selectMatches:()=>ne,selectNextOccurrence:()=>F,selectSelectionMatches:()=>se,setSearchQuery:()=>K});var r=i(22819);var n=i(71674);function s(){var e=arguments[0];if(typeof e=="string")e=document.createElement(e);var t=1,i=arguments[1];if(i&&typeof i=="object"&&i.nodeType==null&&!Array.isArray(i)){for(var r in i)if(Object.prototype.hasOwnProperty.call(i,r)){var n=i[r];if(typeof n=="string")e.setAttribute(r,n);else if(n!=null)e[r]=n}t++}for(;te.normalize("NFKD"):e=>e;class a{constructor(e,t,i=0,r=e.length,n,s){this.test=s;this.value={from:0,to:0};this.done=false;this.matches=[];this.buffer="";this.bufferPos=0;this.iter=e.iterRange(i,r);this.bufferStart=i;this.normalize=n?e=>n(l(e)):l;this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){this.bufferStart+=this.buffer.length;this.iter.next();if(this.iter.done)return-1;this.bufferPos=0;this.buffer=this.iter.value}return(0,n.codePointAt)(this.buffer,this.bufferPos)}next(){while(this.matches.length)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0){this.done=true;return this}let t=(0,n.fromCodePoint)(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=(0,n.codePointSize)(e);let r=this.normalize(t);if(r.length)for(let n=0,s=i;;n++){let e=r.charCodeAt(n);let o=this.match(e,s,this.bufferPos+this.bufferStart);if(n==r.length-1){if(o){this.value=o;return this}break}if(s==i&&nthis.to)this.curLine=this.curLine.slice(0,this.to-this.curLineStart);this.iter.next()}}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1;if(this.curLineStart>this.to)this.curLine="";else this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,r=i+t[0].length;this.matchPos=g(this.text,r+(i==r?1:0));if(i==this.curLineStart+this.curLine.length)this.nextLine();if((ithis.value.to)&&(!this.test||this.test(i,r,t))){this.value={from:i,to:r,match:t};return this}e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||r.to<=t){let r=new d(t,e.sliceString(t,i));f.set(e,r);return r}if(r.from==t&&r.to==i)return r;let{text:n,from:s}=r;if(s>t){n=e.sliceString(t,s)+n;s=t}if(r.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from;let t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e){this.re.lastIndex=e+1;t=this.re.exec(this.flat.text)}if(t){let e=this.flat.from+t.index,i=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,i,t))){this.value={from:e,to:i,match:t};this.matchPos=g(this.text,i+(e==i?1:0));return this}}if(this.flat.to==this.to){this.done=true;return this}this.flat=d.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}if(typeof Symbol!="undefined"){u.prototype[Symbol.iterator]=p.prototype[Symbol.iterator]=function(){return this}}function m(e){try{new RegExp(e,h);return true}catch(t){return false}}function g(e,t){if(t>=e.length)return t;let i=e.lineAt(t),r;while(t=56320&&r<57344)t++;return t}function v(e){let t=String(e.state.doc.lineAt(e.state.selection.main.head).number);let i=s("input",{class:"cm-textfield",name:"line",value:t});let o=s("form",{class:"cm-gotoLine",onkeydown:t=>{if(t.keyCode==27){t.preventDefault();e.dispatch({effects:x.of(false)});e.focus()}else if(t.keyCode==13){t.preventDefault();l()}},onsubmit:e=>{e.preventDefault();l()}},s("label",e.state.phrase("Go to line"),": ",i)," ",s("button",{class:"cm-button",type:"submit"},e.state.phrase("go")),s("button",{name:"close",onclick:()=>{e.dispatch({effects:x.of(false)});e.focus()},"aria-label":e.state.phrase("close"),type:"button"},["×"]));function l(){let t=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(i.value);if(!t)return;let{state:s}=e,o=s.doc.lineAt(s.selection.main.head);let[,l,a,c,h]=t;let u=c?+c.slice(1):0;let f=a?+a:o.number;if(a&&h){let e=f/100;if(l)e=e*(l=="-"?-1:1)+o.number/s.doc.lines;f=Math.round(s.doc.lines*e)}else if(a&&l){f=f*(l=="-"?-1:1)+o.number}let d=s.doc.line(Math.max(1,Math.min(s.doc.lines,f)));let p=n.EditorSelection.cursor(d.from+Math.max(0,Math.min(u,d.length)));e.dispatch({effects:[x.of(false),r.EditorView.scrollIntoView(p.from,{y:"center"})],selection:p});e.focus()}return{dom:o}}const x=n.StateEffect.define();const y=n.StateField.define({create(){return true},update(e,t){for(let i of t.effects)if(i.is(x))e=i.value;return e},provide:e=>r.showPanel.from(e,(e=>e?v:null))});const w=e=>{let t=(0,r.getPanel)(e,v);if(!t){let i=[x.of(true)];if(e.state.field(y,false)==null)i.push(n.StateEffect.appendConfig.of([y,b]));e.dispatch({effects:i});t=(0,r.getPanel)(e,v)}if(t)t.dom.querySelector("input").select();return true};const b=r.EditorView.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}});const S={highlightWordAroundCursor:false,minSelectionLength:1,maxMatches:100,wholeWords:false};const C=n.Facet.define({combine(e){return(0,n.combineConfig)(e,S,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function k(e){let t=[P,L];if(e)t.push(C.of(e));return t}const M=r.Decoration.mark({class:"cm-selectionMatch"});const E=r.Decoration.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function q(e,t,i,r){return(i==0||e(t.sliceDoc(i-1,i))!=n.CharCategory.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=n.CharCategory.Word)}function D(e,t,i,r){return e(t.sliceDoc(i,i+1))==n.CharCategory.Word&&e(t.sliceDoc(r-1,r))==n.CharCategory.Word}const L=r.ViewPlugin.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){if(e.selectionSet||e.docChanged||e.viewportChanged)this.decorations=this.getDeco(e.view)}getDeco(e){let t=e.state.facet(C);let{state:i}=e,n=i.selection;if(n.ranges.length>1)return r.Decoration.none;let s=n.main,o,l=null;if(s.empty){if(!t.highlightWordAroundCursor)return r.Decoration.none;let e=i.wordAt(s.head);if(!e)return r.Decoration.none;l=i.charCategorizer(s.head);o=i.sliceDoc(e.from,e.to)}else{let e=s.to-s.from;if(e200)return r.Decoration.none;if(t.wholeWords){o=i.sliceDoc(s.from,s.to);l=i.charCategorizer(s.head);if(!(q(l,i,s.from,s.to)&&D(l,i,s.from,s.to)))return r.Decoration.none}else{o=i.sliceDoc(s.from,s.to);if(!o)return r.Decoration.none}}let c=[];for(let h of e.visibleRanges){let e=new a(i.doc,o,h.from,h.to);while(!e.next().done){let{from:n,to:o}=e.value;if(!l||q(l,i,n,o)){if(s.empty&&n<=s.from&&o>=s.to)c.push(E.range(n,o));else if(n>=s.to||o<=s.from)c.push(M.range(n,o));if(c.length>t.maxMatches)return r.Decoration.none}}}return r.Decoration.set(c)}},{decorations:e=>e.decorations});const P=r.EditorView.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const A=({state:e,dispatch:t})=>{let{selection:i}=e;let r=n.EditorSelection.create(i.ranges.map((t=>e.wordAt(t.head)||n.EditorSelection.cursor(t.head))),i.mainIndex);if(r.eq(i))return false;t(e.update({selection:r}));return true};function W(e,t){let{main:i,ranges:r}=e.selection;let n=e.wordAt(i.head),s=n&&n.from==i.from&&n.to==i.to;for(let o=false,l=new a(e.doc,t,r[r.length-1].to);;){l.next();if(l.done){if(o)return null;l=new a(e.doc,t,0,Math.max(0,r[r.length-1].from-1));o=true}else{if(o&&r.some((e=>e.from==l.value.from)))continue;if(s){let t=e.wordAt(l.value.from);if(!t||t.from!=l.value.from||t.to!=l.value.to)continue}return l.value}}}const F=({state:e,dispatch:t})=>{let{ranges:i}=e.selection;if(i.some((e=>e.from===e.to)))return A({state:e,dispatch:t});let s=e.sliceDoc(i[0].from,i[0].to);if(e.selection.ranges.some((t=>e.sliceDoc(t.from,t.to)!=s)))return false;let o=W(e,s);if(!o)return false;t(e.update({selection:e.selection.addRange(n.EditorSelection.range(o.from,o.to),false),effects:r.EditorView.scrollIntoView(o.to)}));return true};const R=n.Facet.define({combine(e){return(0,n.combineConfig)(e,{top:false,caseSensitive:false,literal:false,regexp:false,wholeWord:false,createPanel:e=>new me(e),scrollToMatch:e=>r.EditorView.scrollIntoView(e)})}});function V(e){return e?[R.of(e),be]:be}class I{constructor(e){this.search=e.search;this.caseSensitive=!!e.caseSensitive;this.literal=!!e.literal;this.regexp=!!e.regexp;this.replace=e.replace||"";this.valid=!!this.search&&(!this.regexp||m(this.search));this.unquoted=this.unquote(this.search);this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,((e,t)=>t=="n"?"\n":t=="r"?"\r":t=="t"?"\t":"\\"))}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new B(this):new $(this)}getCursor(e,t=0,i){let r=e.doc?e:n.EditorState.create({doc:e});if(i==null)i=r.doc.length;return this.regexp?_(this,r,t,i):O(this,r,t,i)}}class z{constructor(e){this.spec=e}}function O(e,t,i,r){return new a(t.doc,e.unquoted,i,r,e.caseSensitive?undefined:e=>e.toLowerCase(),e.wholeWord?T(t.doc,t.charCategorizer(t.selection.main.head)):undefined)}function T(e,t){return(i,r,s,o)=>{if(o>i||o+s.length=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=O(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));while(!n.next().done)r(n.value.from,n.value.to)}}function _(e,t,i,r){return new u(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:e.wholeWord?j(t.charCategorizer(t.selection.main.head)):undefined},i,r)}function N(e,t){return e.slice((0,n.findClusterBreak)(e,t,false),t)}function Q(e,t){return e.slice(t,(0,n.findClusterBreak)(e,t))}function j(e){return(t,i,r)=>!r[0].length||(e(N(r.input,r.index))!=n.CharCategory.Word||e(Q(r.input,r.index))!=n.CharCategory.Word)&&(e(Q(r.input,r.index+r[0].length))!=n.CharCategory.Word||e(N(r.input,r.index+r[0].length))!=n.CharCategory.Word)}class B extends z{nextMatch(e,t,i){let r=_(this.spec,e,i,e.doc.length).next();if(r.done)r=_(this.spec,e,0,t).next();return r.done?null:r.value}prevMatchInRange(e,t,i){for(let r=1;;r++){let n=Math.max(t,i-r*1e4);let s=_(this.spec,e,n,i),o=null;while(!s.next().done)o=s.value;if(o&&(n==t||o.from>n+10))return o;if(n==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,((t,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let r=i.length;r>0;r--){let t=+i.slice(0,r);if(t>0&&t=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=_(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));while(!n.next().done)r(n.value.from,n.value.to)}}const K=n.StateEffect.define();const G=n.StateEffect.define();const H=n.StateField.define({create(e){return new X(ce(e).create(),null)},update(e,t){for(let i of t.effects){if(i.is(K))e=new X(i.value.create(),e.panel);else if(i.is(G))e=new X(e.query,i.value?ae:null)}return e},provide:e=>r.showPanel.from(e,(e=>e.panel))});function U(e){let t=e.field(H,false);return t?t.query.spec:ce(e)}function J(e){var t;return((t=e.field(H,false))===null||t===void 0?void 0:t.panel)!=null}class X{constructor(e,t){this.query=e;this.panel=t}}const Y=r.Decoration.mark({class:"cm-searchMatch"}),Z=r.Decoration.mark({class:"cm-searchMatch cm-searchMatch-selected"});const ee=r.ViewPlugin.fromClass(class{constructor(e){this.view=e;this.decorations=this.highlight(e.state.field(H))}update(e){let t=e.state.field(H);if(t!=e.startState.field(H)||e.docChanged||e.selectionSet||e.viewportChanged)this.decorations=this.highlight(t)}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return r.Decoration.none;let{view:i}=this;let s=new n.RangeSetBuilder;for(let r=0,n=i.visibleRanges,o=n.length;rn[r+1].from-2*250)l=n[++r].to;e.highlight(i.state,t,l,((e,t)=>{let r=i.state.selection.ranges.some((i=>i.from==e&&i.to==t));s.add(e,t,r?Z:Y)}))}return s.finish()}},{decorations:e=>e.decorations});function te(e){return t=>{let i=t.state.field(H,false);return i&&i.query.spec.valid?e(t,i):fe(t)}}const ie=te(((e,{query:t})=>{let{to:i}=e.state.selection.main;let r=t.nextMatch(e.state,i,i);if(!r)return false;let s=n.EditorSelection.single(r.from,r.to);let o=e.state.facet(R);e.dispatch({selection:s,effects:[ye(e,r),o.scrollToMatch(s.main,e)],userEvent:"select.search"});ue(e);return true}));const re=te(((e,{query:t})=>{let{state:i}=e,{from:r}=i.selection.main;let s=t.prevMatch(i,r,r);if(!s)return false;let o=n.EditorSelection.single(s.from,s.to);let l=e.state.facet(R);e.dispatch({selection:o,effects:[ye(e,s),l.scrollToMatch(o.main,e)],userEvent:"select.search"});ue(e);return true}));const ne=te(((e,{query:t})=>{let i=t.matchAll(e.state,1e3);if(!i||!i.length)return false;e.dispatch({selection:n.EditorSelection.create(i.map((e=>n.EditorSelection.range(e.from,e.to)))),userEvent:"select.search.matches"});return true}));const se=({state:e,dispatch:t})=>{let i=e.selection;if(i.ranges.length>1||i.main.empty)return false;let{from:r,to:s}=i.main;let o=[],l=0;for(let c=new a(e.doc,e.sliceDoc(r,s));!c.next().done;){if(o.length>1e3)return false;if(c.value.from==r)l=o.length;o.push(n.EditorSelection.range(c.value.from,c.value.to))}t(e.update({selection:n.EditorSelection.create(o,l),userEvent:"select.search.matches"}));return true};const oe=te(((e,{query:t})=>{let{state:i}=e,{from:s,to:o}=i.selection.main;if(i.readOnly)return false;let l=t.nextMatch(i,s,s);if(!l)return false;let a=l;let c=[],h,u;let f=[];if(a.from==s&&a.to==o){u=i.toText(t.getReplacement(a));c.push({from:a.from,to:a.to,insert:u});a=t.nextMatch(i,a.from,a.to);f.push(r.EditorView.announce.of(i.phrase("replaced match on line $",i.doc.lineAt(s).number)+"."))}if(a){let t=c.length==0||c[0].from>=l.to?0:l.to-l.from-u.length;h=n.EditorSelection.single(a.from-t,a.to-t);f.push(ye(e,a));f.push(i.facet(R).scrollToMatch(h.main,e))}e.dispatch({changes:c,selection:h,effects:f,userEvent:"input.replace"});return true}));const le=te(((e,{query:t})=>{if(e.state.readOnly)return false;let i=t.matchAll(e.state,1e9).map((e=>{let{from:i,to:r}=e;return{from:i,to:r,insert:t.getReplacement(e)}}));if(!i.length)return false;let n=e.state.phrase("replaced $ matches",i.length)+".";e.dispatch({changes:i,effects:r.EditorView.announce.of(n),userEvent:"input.replace.all"});return true}));function ae(e){return e.state.facet(R).createPanel(e)}function ce(e,t){var i,r,n,s,o;let l=e.selection.main;let a=l.empty||l.to>l.from+100?"":e.sliceDoc(l.from,l.to);if(t&&!a)return t;let c=e.facet(R);return new I({search:((i=t===null||t===void 0?void 0:t.literal)!==null&&i!==void 0?i:c.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(r=t===null||t===void 0?void 0:t.caseSensitive)!==null&&r!==void 0?r:c.caseSensitive,literal:(n=t===null||t===void 0?void 0:t.literal)!==null&&n!==void 0?n:c.literal,regexp:(s=t===null||t===void 0?void 0:t.regexp)!==null&&s!==void 0?s:c.regexp,wholeWord:(o=t===null||t===void 0?void 0:t.wholeWord)!==null&&o!==void 0?o:c.wholeWord})}function he(e){let t=(0,r.getPanel)(e,ae);return t&&t.dom.querySelector("[main-field]")}function ue(e){let t=he(e);if(t&&t==e.root.activeElement)t.select()}const fe=e=>{let t=e.state.field(H,false);if(t&&t.panel){let i=he(e);if(i&&i!=e.root.activeElement){let r=ce(e.state,t.query.spec);if(r.valid)e.dispatch({effects:K.of(r)});i.focus();i.select()}}else{e.dispatch({effects:[G.of(true),t?K.of(ce(e.state,t.query.spec)):n.StateEffect.appendConfig.of(be)]})}return true};const de=e=>{let t=e.state.field(H,false);if(!t||!t.panel)return false;let i=(0,r.getPanel)(e,ae);if(i&&i.dom.contains(e.root.activeElement))e.focus();e.dispatch({effects:G.of(false)});return true};const pe=[{key:"Mod-f",run:fe,scope:"editor search-panel"},{key:"F3",run:ie,shift:re,scope:"editor search-panel",preventDefault:true},{key:"Mod-g",run:ie,shift:re,scope:"editor search-panel",preventDefault:true},{key:"Escape",run:de,scope:"editor search-panel"},{key:"Mod-Shift-l",run:se},{key:"Mod-Alt-g",run:w},{key:"Mod-d",run:F,preventDefault:true}];class me{constructor(e){this.view=e;let t=this.query=e.state.field(H).query.spec;this.commit=this.commit.bind(this);this.searchField=s("input",{value:t.search,placeholder:ge(e,"Find"),"aria-label":ge(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit});this.replaceField=s("input",{value:t.replace,placeholder:ge(e,"Replace"),"aria-label":ge(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit});this.caseField=s("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit});this.reField=s("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit});this.wordField=s("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(e,t,i){return s("button",{class:"cm-button",name:e,onclick:t,type:"button"},i)}this.dom=s("div",{onkeydown:e=>this.keydown(e),class:"cm-search"},[this.searchField,i("next",(()=>ie(e)),[ge(e,"next")]),i("prev",(()=>re(e)),[ge(e,"previous")]),i("select",(()=>ne(e)),[ge(e,"all")]),s("label",null,[this.caseField,ge(e,"match case")]),s("label",null,[this.reField,ge(e,"regexp")]),s("label",null,[this.wordField,ge(e,"by word")]),...e.state.readOnly?[]:[s("br"),this.replaceField,i("replace",(()=>oe(e)),[ge(e,"replace")]),i("replaceAll",(()=>le(e)),[ge(e,"replace all")])],s("button",{name:"close",onclick:()=>de(e),"aria-label":ge(e,"close"),type:"button"},["×"])])}commit(){let e=new I({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});if(!e.eq(this.query)){this.query=e;this.view.dispatch({effects:K.of(e)})}}keydown(e){if((0,r.runScopeHandlers)(this.view,e,"search-panel")){e.preventDefault()}else if(e.keyCode==13&&e.target==this.searchField){e.preventDefault();(e.shiftKey?re:ie)(this.view)}else if(e.keyCode==13&&e.target==this.replaceField){e.preventDefault();oe(this.view)}}update(e){for(let t of e.transactions)for(let e of t.effects){if(e.is(K)&&!e.value.eq(this.query))this.setQuery(e.value)}}setQuery(e){this.query=e;this.searchField.value=e.search;this.replaceField.value=e.replace;this.caseField.checked=e.caseSensitive;this.reField.checked=e.regexp;this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(R).top}}function ge(e,t){return e.state.phrase(t)}const ve=30;const xe=/[\s\.,:;?!]/;function ye(e,{from:t,to:i}){let n=e.state.doc.lineAt(t),s=e.state.doc.lineAt(i).to;let o=Math.max(n.from,t-ve),l=Math.min(s,i+ve);let a=e.state.sliceDoc(o,l);if(o!=n.from){for(let e=0;ea.length-ve;e--)if(!xe.test(a[e-1])&&xe.test(a[e])){a=a.slice(0,e);break}}return r.EditorView.announce.of(`${e.state.phrase("current match")}. ${a} ${e.state.phrase("on line")} ${n.number}.`)}const we=r.EditorView.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}});const be=[H,n.Prec.low(ee),we]}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4981.eed4ddb90566e90e3df4.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4981.eed4ddb90566e90e3df4.js deleted file mode 100644 index 134e5f6c7083b12d597c6db92a551abe4a667bd4..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/4981.eed4ddb90566e90e3df4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4981],{34981:function(r,e){var t=this&&this.__values||function(r){var e=typeof Symbol==="function"&&Symbol.iterator,t=e&&r[e],n=0;if(t)return t.call(r);if(r&&typeof r.length==="number")return{next:function(){if(r&&n>=r.length)r=void 0;return{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__read||function(r,e){var t=typeof Symbol==="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),o,a=[],i;try{while((e===void 0||e-- >0)&&!(o=n.next()).done)a.push(o.value)}catch(l){i={error:l}}finally{try{if(o&&!o.done&&(t=n["return"]))t.call(n)}finally{if(i)throw i.error}}return a};var o=this&&this.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var n=0,o=e.length,a;n{n.d(t,{diagram:()=>U});var i=n(97366);var r=n(20778);var s=n(57590);var a=n(68232);var o=n(76261);var c=n(96049);var l=n(93113);var h=n(75905);var u=n(63170);var g=n(77470);var d=n(48750);var p=function(){var e=(0,h.K2)((function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n}),"o"),t=[1,4],n=[1,13],i=[1,12],r=[1,15],s=[1,16],a=[1,20],o=[1,19],c=[6,7,8],l=[1,26],u=[1,24],g=[1,25],d=[6,7,11],p=[1,31],y=[6,7,11,24],f=[1,6,13,16,17,20,23],b=[1,35],k=[1,36],m=[1,6,7,11,13,16,17,20,23],_=[1,38];var E={trace:(0,h.K2)((function e(){}),"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:(0,h.K2)((function e(t,n,i,r,s,a,o){var c=a.length-1;switch(s){case 6:case 7:return r;break;case 8:r.getLogger().trace("Stop NL ");break;case 9:r.getLogger().trace("Stop EOF ");break;case 11:r.getLogger().trace("Stop NL2 ");break;case 12:r.getLogger().trace("Stop EOF2 ");break;case 15:r.getLogger().info("Node: ",a[c-1].id);r.addNode(a[c-2].length,a[c-1].id,a[c-1].descr,a[c-1].type,a[c]);break;case 16:r.getLogger().info("Node: ",a[c].id);r.addNode(a[c-1].length,a[c].id,a[c].descr,a[c].type);break;case 17:r.getLogger().trace("Icon: ",a[c]);r.decorateNode({icon:a[c]});break;case 18:case 23:r.decorateNode({class:a[c]});break;case 19:r.getLogger().trace("SPACELIST");break;case 20:r.getLogger().trace("Node: ",a[c-1].id);r.addNode(0,a[c-1].id,a[c-1].descr,a[c-1].type,a[c]);break;case 21:r.getLogger().trace("Node: ",a[c].id);r.addNode(0,a[c].id,a[c].descr,a[c].type);break;case 22:r.decorateNode({icon:a[c]});break;case 27:r.getLogger().trace("node found ..",a[c-2]);this.$={id:a[c-1],descr:a[c-1],type:r.getType(a[c-2],a[c])};break;case 28:this.$={id:a[c],descr:a[c],type:0};break;case 29:r.getLogger().trace("node found ..",a[c-3]);this.$={id:a[c-3],descr:a[c-1],type:r.getType(a[c-2],a[c])};break;case 30:this.$=a[c-1]+a[c];break;case 31:this.$=a[c];break}}),"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:n,7:[1,10],9:9,12:11,13:i,14:14,16:r,17:s,18:17,19:18,20:a,23:o},e(c,[2,3]),{1:[2,2]},e(c,[2,4]),e(c,[2,5]),{1:[2,6],6:n,12:21,13:i,14:14,16:r,17:s,18:17,19:18,20:a,23:o},{6:n,9:22,12:11,13:i,14:14,16:r,17:s,18:17,19:18,20:a,23:o},{6:l,7:u,10:23,11:g},e(d,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:a,23:o}),e(d,[2,19]),e(d,[2,21],{15:30,24:p}),e(d,[2,22]),e(d,[2,23]),e(y,[2,25]),e(y,[2,26]),e(y,[2,28],{20:[1,32]}),{21:[1,33]},{6:l,7:u,10:34,11:g},{1:[2,7],6:n,12:21,13:i,14:14,16:r,17:s,18:17,19:18,20:a,23:o},e(f,[2,14],{7:b,11:k}),e(m,[2,8]),e(m,[2,9]),e(m,[2,10]),e(d,[2,16],{15:37,24:p}),e(d,[2,17]),e(d,[2,18]),e(d,[2,20],{24:_}),e(y,[2,31]),{21:[1,39]},{22:[1,40]},e(f,[2,13],{7:b,11:k}),e(m,[2,11]),e(m,[2,12]),e(d,[2,15],{24:_}),e(y,[2,30]),{22:[1,41]},e(y,[2,27]),e(y,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:(0,h.K2)((function e(t,n){if(n.recoverable){this.trace(t)}else{var i=new Error(t);i.hash=n;throw i}}),"parseError"),parse:(0,h.K2)((function e(t){var n=this,i=[0],r=[],s=[null],a=[],o=this.table,c="",l=0,u=0,g=0,d=2,p=1;var y=a.slice.call(arguments,1);var f=Object.create(this.lexer);var b={yy:{}};for(var k in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,k)){b.yy[k]=this.yy[k]}}f.setInput(t,b.yy);b.yy.lexer=f;b.yy.parser=this;if(typeof f.yylloc=="undefined"){f.yylloc={}}var m=f.yylloc;a.push(m);var _=f.options&&f.options.ranges;if(typeof b.yy.parseError==="function"){this.parseError=b.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function E(e){i.length=i.length-2*e;s.length=s.length-e;a.length=a.length-e}(0,h.K2)(E,"popStack");function S(){var e;e=r.pop()||f.lex()||p;if(typeof e!=="number"){if(e instanceof Array){r=e;e=r.pop()}e=n.symbols_[e]||e}return e}(0,h.K2)(S,"lex");var v,N,D,x,L,I,O={},C,A,w,K;while(true){D=i[i.length-1];if(this.defaultActions[D]){x=this.defaultActions[D]}else{if(v===null||typeof v=="undefined"){v=S()}x=o[D]&&o[D][v]}if(typeof x==="undefined"||!x.length||!x[0]){var $="";K=[];for(C in o[D]){if(this.terminals_[C]&&C>d){K.push("'"+this.terminals_[C]+"'")}}if(f.showPosition){$="Parse error on line "+(l+1)+":\n"+f.showPosition()+"\nExpecting "+K.join(", ")+", got '"+(this.terminals_[v]||v)+"'"}else{$="Parse error on line "+(l+1)+": Unexpected "+(v==p?"end of input":"'"+(this.terminals_[v]||v)+"'")}this.parseError($,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:m,expected:K})}if(x[0]instanceof Array&&x.length>1){throw new Error("Parse Error: multiple actions possible at state: "+D+", token: "+v)}switch(x[0]){case 1:i.push(v);s.push(f.yytext);a.push(f.yylloc);i.push(x[1]);v=null;if(!N){u=f.yyleng;c=f.yytext;l=f.yylineno;m=f.yylloc;if(g>0){g--}}else{v=N;N=null}break;case 2:A=this.productions_[x[1]][1];O.$=s[s.length-A];O._$={first_line:a[a.length-(A||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(A||1)].first_column,last_column:a[a.length-1].last_column};if(_){O._$.range=[a[a.length-(A||1)].range[0],a[a.length-1].range[1]]}I=this.performAction.apply(O,[c,u,l,b.yy,x[1],s,a].concat(y));if(typeof I!=="undefined"){return I}if(A){i=i.slice(0,-1*A*2);s=s.slice(0,-1*A);a=a.slice(0,-1*A)}i.push(this.productions_[x[1]][0]);s.push(O.$);a.push(O._$);w=o[i[i.length-2]][i[i.length-1]];i.push(w);break;case 3:return true}}return true}),"parse")};var S=function(){var e={EOF:1,parseError:(0,h.K2)((function e(t,n){if(this.yy.parser){this.yy.parser.parseError(t,n)}else{throw new Error(t)}}),"parseError"),setInput:(0,h.K2)((function(e,t){this.yy=t||this.yy||{};this._input=e;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,h.K2)((function(){var e=this._input[0];this.yytext+=e;this.yyleng++;this.offset++;this.match+=e;this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);if(t){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return e}),"input"),unput:(0,h.K2)((function(e){var t=e.length;var n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-t);this.offset-=t;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(n.length-1){this.yylineno-=n.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-t};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-t]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,h.K2)((function(){this._more=true;return this}),"more"),reject:(0,h.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,h.K2)((function(e){this.unput(this.match.slice(e))}),"less"),pastInput:(0,h.K2)((function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,h.K2)((function(){var e=this.match;if(e.length<20){e+=this._input.substr(0,20-e.length)}return(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,h.K2)((function(){var e=this.pastInput();var t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"}),"showPosition"),test_match:(0,h.K2)((function(e,t){var n,i,r;if(this.options.backtrack_lexer){r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){r.yylloc.range=this.yylloc.range.slice(0)}}i=e[0].match(/(?:\r\n?|\n).*/g);if(i){this.yylineno+=i.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length};this.yytext+=e[0];this.match+=e[0];this.matches=e;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(e[0].length);this.matched+=e[0];n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(n){return n}else if(this._backtrack){for(var s in r){this[s]=r[s]}return false}return false}),"test_match"),next:(0,h.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var e,t,n,i;if(!this._more){this.yytext="";this.match=""}var r=this._currentRules();for(var s=0;st[0].length)){t=n;i=s;if(this.options.backtrack_lexer){e=this.test_match(n,r[s]);if(e!==false){return e}else if(this._backtrack){t=false;continue}else{return false}}else if(!this.options.flex){break}}}if(t){e=this.test_match(t,r[i]);if(e!==false){return e}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,h.K2)((function e(){var t=this.next();if(t){return t}else{return this.lex()}}),"lex"),begin:(0,h.K2)((function e(t){this.conditionStack.push(t)}),"begin"),popState:(0,h.K2)((function e(){var t=this.conditionStack.length-1;if(t>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,h.K2)((function e(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,h.K2)((function e(t){t=this.conditionStack.length-1-Math.abs(t||0);if(t>=0){return this.conditionStack[t]}else{return"INITIAL"}}),"topState"),pushState:(0,h.K2)((function e(t){this.begin(t)}),"pushState"),stateStackSize:(0,h.K2)((function e(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,h.K2)((function e(t,n,i,r){var s=r;switch(i){case 0:this.pushState("shapeData");n.yytext="";return 24;break;case 1:this.pushState("shapeDataStr");return 24;break;case 2:this.popState();return 24;break;case 3:const e=/\n\s*/g;n.yytext=n.yytext.replace(e,"
    ");return 24;break;case 4:return 24;break;case 5:this.popState();break;case 6:t.getLogger().trace("Found comment",n.yytext);return 6;break;case 7:return 8;break;case 8:this.begin("CLASS");break;case 9:this.popState();return 17;break;case 10:this.popState();break;case 11:t.getLogger().trace("Begin icon");this.begin("ICON");break;case 12:t.getLogger().trace("SPACELINE");return 6;break;case 13:return 7;break;case 14:return 16;break;case 15:t.getLogger().trace("end icon");this.popState();break;case 16:t.getLogger().trace("Exploding node");this.begin("NODE");return 20;break;case 17:t.getLogger().trace("Cloud");this.begin("NODE");return 20;break;case 18:t.getLogger().trace("Explosion Bang");this.begin("NODE");return 20;break;case 19:t.getLogger().trace("Cloud Bang");this.begin("NODE");return 20;break;case 20:this.begin("NODE");return 20;break;case 21:this.begin("NODE");return 20;break;case 22:this.begin("NODE");return 20;break;case 23:this.begin("NODE");return 20;break;case 24:return 13;break;case 25:return 23;break;case 26:return 11;break;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";break;case 29:this.popState();break;case 30:t.getLogger().trace("Starting NSTR");this.begin("NSTR");break;case 31:t.getLogger().trace("description:",n.yytext);return"NODE_DESCR";break;case 32:this.popState();break;case 33:this.popState();t.getLogger().trace("node end ))");return"NODE_DEND";break;case 34:this.popState();t.getLogger().trace("node end )");return"NODE_DEND";break;case 35:this.popState();t.getLogger().trace("node end ...",n.yytext);return"NODE_DEND";break;case 36:this.popState();t.getLogger().trace("node end ((");return"NODE_DEND";break;case 37:this.popState();t.getLogger().trace("node end (-");return"NODE_DEND";break;case 38:this.popState();t.getLogger().trace("node end (-");return"NODE_DEND";break;case 39:this.popState();t.getLogger().trace("node end ((");return"NODE_DEND";break;case 40:this.popState();t.getLogger().trace("node end ((");return"NODE_DEND";break;case 41:t.getLogger().trace("Long description:",n.yytext);return 21;break;case 42:t.getLogger().trace("Long description:",n.yytext);return 21;break}}),"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:false},shapeDataStr:{rules:[2,3],inclusive:false},shapeData:{rules:[1,4,5],inclusive:false},CLASS:{rules:[9,10],inclusive:false},ICON:{rules:[14,15],inclusive:false},NSTR2:{rules:[28,29],inclusive:false},NSTR:{rules:[31,32],inclusive:false},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:false},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:true}}};return e}();E.lexer=S;function v(){this.yy={}}(0,h.K2)(v,"Parser");v.prototype=E;E.Parser=v;return new v}();p.parser=p;var y=p;var f=[];var b=[];var k=0;var m={};var _=(0,h.K2)((()=>{f=[];b=[];k=0;m={}}),"clear");var E=(0,h.K2)((e=>{if(f.length===0){return null}const t=f[0].level;let n=null;for(let i=f.length-1;i>=0;i--){if(f[i].level===t&&!n){n=f[i]}if(f[i].levele.parentId===r.id));for(const s of n){const e={id:s.id,parentId:r.id,label:(0,h.jZ)(s.label??"",i),isGroup:false,ticket:s?.ticket,priority:s?.priority,assigned:s?.assigned,icon:s?.icon,shape:"kanbanItem",level:s.level,rx:5,ry:5,cssStyles:["text-align: left"]};t.push(e)}}return{nodes:t,edges:e,other:{},config:(0,h.D7)()}}),"getData");var N=(0,h.K2)(((e,t,n,r,s)=>{const a=(0,h.D7)();let o=a.mindmap?.padding??h.UI.mindmap.padding;switch(r){case D.ROUNDED_RECT:case D.RECT:case D.HEXAGON:o*=2}const c={id:(0,h.jZ)(t,a)||"kbn"+k++,level:e,label:(0,h.jZ)(n,a),width:a.mindmap?.maxNodeWidth??h.UI.mindmap.maxNodeWidth,padding:o,isGroup:false};if(s!==void 0){let e;if(!s.includes("\n")){e="{\n"+s+"\n}"}else{e=s+"\n"}const t=(0,i.H)(e,{schema:i.r});if(t.shape&&(t.shape!==t.shape.toLowerCase()||t.shape.includes("_"))){throw new Error(`No such shape: ${t.shape}. Shape names should be lowercase.`)}if(t?.shape&&t.shape==="kanbanItem"){c.shape=t?.shape}if(t?.label){c.label=t?.label}if(t?.icon){c.icon=t?.icon.toString()}if(t?.assigned){c.assigned=t?.assigned.toString()}if(t?.ticket){c.ticket=t?.ticket.toString()}if(t?.priority){c.priority=t?.priority}}const l=E(e);if(l){c.parentId=l.id||"kbn"+k++}else{b.push(c)}f.push(c)}),"addNode");var D={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6};var x=(0,h.K2)(((e,t)=>{h.Rm.debug("In get type",e,t);switch(e){case"[":return D.RECT;case"(":return t===")"?D.ROUNDED_RECT:D.CLOUD;case"((":return D.CIRCLE;case")":return D.CLOUD;case"))":return D.BANG;case"{{":return D.HEXAGON;default:return D.DEFAULT}}),"getType");var L=(0,h.K2)(((e,t)=>{m[e]=t}),"setElementForId");var I=(0,h.K2)((e=>{if(!e){return}const t=(0,h.D7)();const n=f[f.length-1];if(e.icon){n.icon=(0,h.jZ)(e.icon,t)}if(e.class){n.cssClasses=(0,h.jZ)(e.class,t)}}),"decorateNode");var O=(0,h.K2)((e=>{switch(e){case D.DEFAULT:return"no-border";case D.RECT:return"rect";case D.ROUNDED_RECT:return"rounded-rect";case D.CIRCLE:return"circle";case D.CLOUD:return"cloud";case D.BANG:return"bang";case D.HEXAGON:return"hexgon";default:return"no-border"}}),"type2Str");var C=(0,h.K2)((()=>h.Rm),"getLogger");var A=(0,h.K2)((e=>m[e]),"getElementById");var w={clear:_,addNode:N,getSections:S,getData:v,nodeType:D,getType:x,setElementForId:L,decorateNode:I,type2Str:O,getLogger:C,getElementById:A};var K=w;var $=(0,h.K2)((async(e,t,n,i)=>{h.Rm.debug("Rendering kanban diagram\n"+e);const s=i.db;const a=s.getData();const o=(0,h.D7)();o.htmlLabels=false;const c=(0,l.D)(t);const u=c.append("g");u.attr("class","sections");const g=c.append("g");g.attr("class","items");const d=a.nodes.filter((e=>e.isGroup));let p=0;const y=10;const f=[];let b=25;for(const l of d){const e=o?.kanban?.sectionWidth||200;p=p+1;l.x=e*p+(p-1)*y/2;l.width=e;l.y=0;l.height=e*3;l.rx=5;l.ry=5;l.cssClasses=l.cssClasses+" section-"+p;const t=await(0,r.U)(u,l);b=Math.max(b,t?.labelBBox?.height);f.push(t)}let k=0;for(const l of d){const e=f[k];k=k+1;const t=o?.kanban?.sectionWidth||200;const n=-t*3/2+b;let i=n;const s=a.nodes.filter((e=>e.parentId===l.id));for(const a of s){if(a.isGroup){throw new Error("Groups within groups are not allowed in Kanban diagrams")}a.x=l.x;a.width=t-1.5*y;const e=await(0,r.on)(g,a,{config:o});const n=e.node().getBBox();a.y=i+n.height/2;await(0,r.U_)(a);i=a.y+n.height/2+y/2}const c=e.cluster.select("rect");const h=Math.max(i-n+3*y,50)+(b-25);c.attr("height",h)}(0,h.ot)(void 0,c,o.mindmap?.padding??h.UI.kanban.padding,o.mindmap?.useMaxWidth??h.UI.kanban.useMaxWidth)}),"draw");var T={draw:$};var R=(0,h.K2)((e=>{let t="";for(let i=0;ie.darkMode?(0,d.A)(t,n):(0,g.A)(t,n)),"adjuster");for(let i=0;i`\n .edge {\n stroke-width: 3;\n }\n ${R(e)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${e.git0};\n }\n .section-root text {\n fill: ${e.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .cluster-label, .label {\n color: ${e.textColor};\n fill: ${e.textColor};\n }\n .kanban-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n`),"getStyles");var B=P;var U={db:K,renderer:T,parser:y,styles:B}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5085.a38923f36b551620798a.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5085.a38923f36b551620798a.js deleted file mode 100644 index 7af8df4377a51ff95c3580cbddf43640bac52032..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5085.a38923f36b551620798a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5085],{65085:(e,t,r)=>{r.r(t);r.d(t,{apl:()=>f});var n={"+":["conjugate","add"],"−":["negate","subtract"],"×":["signOf","multiply"],"÷":["reciprocal","divide"],"⌈":["ceiling","greaterOf"],"⌊":["floor","lesserOf"],"∣":["absolute","residue"],"⍳":["indexGenerate","indexOf"],"?":["roll","deal"],"⋆":["exponentiate","toThePowerOf"],"⍟":["naturalLog","logToTheBase"],"○":["piTimes","circularFuncs"],"!":["factorial","binomial"],"⌹":["matrixInverse","matrixDivide"],"<":[null,"lessThan"],"≤":[null,"lessThanOrEqual"],"=":[null,"equals"],">":[null,"greaterThan"],"≥":[null,"greaterThanOrEqual"],"≠":[null,"notEqual"],"≡":["depth","match"],"≢":[null,"notMatch"],"∈":["enlist","membership"],"⍷":[null,"find"],"∪":["unique","union"],"∩":[null,"intersection"],"∼":["not","without"],"∨":[null,"or"],"∧":[null,"and"],"⍱":[null,"nor"],"⍲":[null,"nand"],"⍴":["shapeOf","reshape"],",":["ravel","catenate"],"⍪":[null,"firstAxisCatenate"],"⌽":["reverse","rotate"],"⊖":["axis1Reverse","axis1Rotate"],"⍉":["transpose",null],"↑":["first","take"],"↓":[null,"drop"],"⊂":["enclose","partitionWithAxis"],"⊃":["diclose","pick"],"⌷":[null,"index"],"⍋":["gradeUp",null],"⍒":["gradeDown",null],"⊤":["encode",null],"⊥":["decode",null],"⍕":["format","formatByExample"],"⍎":["execute",null],"⊣":["stop","left"],"⊢":["pass","right"]};var a=/[\.\/⌿⍀¨⍣]/;var l=/⍬/;var u=/[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;var i=/←/;var s=/[⍝#].*$/;var o=function(e){var t;t=false;return function(r){t=r;if(r===e){return t==="\\"}return true}};const f={name:"apl",startState:function(){return{prev:false,func:false,op:false,string:false,escape:false}},token:function(e,t){var r;if(e.eatSpace()){return null}r=e.next();if(r==='"'||r==="'"){e.eatWhile(o(r));e.next();t.prev=true;return"string"}if(/[\[{\(]/.test(r)){t.prev=false;return null}if(/[\]}\)]/.test(r)){t.prev=true;return null}if(l.test(r)){t.prev=false;return"atom"}if(/[¯\d]/.test(r)){if(t.func){t.func=false;t.prev=false}else{t.prev=true}e.eatWhile(/[\w\.]/);return"number"}if(a.test(r)){return"operator"}if(i.test(r)){return"operator"}if(u.test(r)){t.func=true;t.prev=false;return n[r]?"variableName.function.standard":"variableName.function"}if(s.test(r)){e.skipToEnd();return"comment"}if(r==="∘"&&e.peek()==="."){e.next();return"variableName.function"}e.eatWhile(/[\w\$_]/);t.prev=true;return"keyword"}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5090.404be96d8a6eae1e719a.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5090.404be96d8a6eae1e719a.js deleted file mode 100644 index 797d20b3852ae5c0ba835136794c1ff36f76b467..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5090.404be96d8a6eae1e719a.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 5090.404be96d8a6eae1e719a.js.LICENSE.txt */ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5090],{67002:(t,n,e)=>{e.d(n,{t:()=>o});const o={horizontal:"horizontal",vertical:"vertical"}},74291:(t,n,e)=>{e.d(n,{Ac:()=>Dt,De:()=>xt,F9:()=>kt,FM:()=>At,HX:()=>bt,I5:()=>Pt,Is:()=>Mt,J9:()=>Ct,Mm:()=>Et,R9:()=>Tt,Tg:()=>Rt,bb:()=>St,f_:()=>Nt,gG:()=>It,kT:()=>yt,oK:()=>Lt});var o;(function(t){t[t["alt"]=18]="alt";t[t["arrowDown"]=40]="arrowDown";t[t["arrowLeft"]=37]="arrowLeft";t[t["arrowRight"]=39]="arrowRight";t[t["arrowUp"]=38]="arrowUp";t[t["back"]=8]="back";t[t["backSlash"]=220]="backSlash";t[t["break"]=19]="break";t[t["capsLock"]=20]="capsLock";t[t["closeBracket"]=221]="closeBracket";t[t["colon"]=186]="colon";t[t["colon2"]=59]="colon2";t[t["comma"]=188]="comma";t[t["ctrl"]=17]="ctrl";t[t["delete"]=46]="delete";t[t["end"]=35]="end";t[t["enter"]=13]="enter";t[t["equals"]=187]="equals";t[t["equals2"]=61]="equals2";t[t["equals3"]=107]="equals3";t[t["escape"]=27]="escape";t[t["forwardSlash"]=191]="forwardSlash";t[t["function1"]=112]="function1";t[t["function10"]=121]="function10";t[t["function11"]=122]="function11";t[t["function12"]=123]="function12";t[t["function2"]=113]="function2";t[t["function3"]=114]="function3";t[t["function4"]=115]="function4";t[t["function5"]=116]="function5";t[t["function6"]=117]="function6";t[t["function7"]=118]="function7";t[t["function8"]=119]="function8";t[t["function9"]=120]="function9";t[t["home"]=36]="home";t[t["insert"]=45]="insert";t[t["menu"]=93]="menu";t[t["minus"]=189]="minus";t[t["minus2"]=109]="minus2";t[t["numLock"]=144]="numLock";t[t["numPad0"]=96]="numPad0";t[t["numPad1"]=97]="numPad1";t[t["numPad2"]=98]="numPad2";t[t["numPad3"]=99]="numPad3";t[t["numPad4"]=100]="numPad4";t[t["numPad5"]=101]="numPad5";t[t["numPad6"]=102]="numPad6";t[t["numPad7"]=103]="numPad7";t[t["numPad8"]=104]="numPad8";t[t["numPad9"]=105]="numPad9";t[t["numPadDivide"]=111]="numPadDivide";t[t["numPadDot"]=110]="numPadDot";t[t["numPadMinus"]=109]="numPadMinus";t[t["numPadMultiply"]=106]="numPadMultiply";t[t["numPadPlus"]=107]="numPadPlus";t[t["openBracket"]=219]="openBracket";t[t["pageDown"]=34]="pageDown";t[t["pageUp"]=33]="pageUp";t[t["period"]=190]="period";t[t["print"]=44]="print";t[t["quote"]=222]="quote";t[t["scrollLock"]=145]="scrollLock";t[t["shift"]=16]="shift";t[t["space"]=32]="space";t[t["tab"]=9]="tab";t[t["tilde"]=192]="tilde";t[t["windowsLeft"]=91]="windowsLeft";t[t["windowsOpera"]=219]="windowsOpera";t[t["windowsRight"]=92]="windowsRight"})(o||(o={}));const r=18;const a=40;const c=37;const i=39;const s=38;const u=8;const l=220;const d=19;const f=20;const p=221;const m=186;const h=59;const v=188;const w=17;const g=46;const b=35;const y=13;const S=187;const P=61;const E=107;const k=27;const R=191;const A=112;const D=121;const N=122;const L=123;const I=113;const C=114;const T=115;const x=116;const M=117;const U=118;const O=119;const q=120;const B=36;const F=45;const _=93;const j=189;const z=109;const G=144;const H=96;const V=97;const X=98;const $=99;const J=100;const K=101;const Y=102;const Q=103;const W=104;const Z=105;const tt=111;const nt=110;const et=109;const ot=106;const rt=107;const at=219;const ct=34;const it=33;const st=190;const ut=44;const lt=222;const dt=145;const ft=16;const pt=32;const mt=9;const ht=192;const vt=91;const wt=219;const gt=92;const bt="ArrowDown";const yt="ArrowLeft";const St="ArrowRight";const Pt="ArrowUp";const Et="Enter";const kt="Escape";const Rt="Home";const At="End";const Dt="F2";const Nt="PageDown";const Lt="PageUp";const It=" ";const Ct="Tab";const Tt="Backspace";const xt="Delete";const Mt={ArrowDown:bt,ArrowLeft:yt,ArrowRight:St,ArrowUp:Pt}},30086:(t,n,e)=>{e.d(n,{O:()=>o});var o;(function(t){t["ltr"]="ltr";t["rtl"]="rtl"})(o||(o={}))},83021:(t,n,e)=>{e.d(n,{AB:()=>r,Vf:()=>o,r4:()=>a});function o(t,n,e){if(en){return t}return e}function r(t,n,e){return Math.min(Math.max(e,t),n)}function a(t,n,e=0){[n,e]=[n,e].sort(((t,n)=>t-n));return n<=t&&t{e.d(n,{AO:()=>N,tp:()=>I});var o=["input","select","textarea","a[href]","button","[tabindex]:not(slot)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"];var r=o.join(",");var a=typeof Element==="undefined";var c=a?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector;var i=!a&&Element.prototype.getRootNode?function(t){return t.getRootNode()}:function(t){return t.ownerDocument};var s=function t(n,e,o){var a=Array.prototype.slice.apply(n.querySelectorAll(r));if(e&&c.call(n,r)){a.unshift(n)}a=a.filter(o);return a};var u=function t(n,e,o){var a=[];var i=Array.from(n);while(i.length){var s=i.shift();if(s.tagName==="SLOT"){var u=s.assignedElements();var l=u.length?u:s.children;var d=t(l,true,o);if(o.flatten){a.push.apply(a,d)}else{a.push({scope:s,candidates:d})}}else{var f=c.call(s,r);if(f&&o.filter(s)&&(e||!n.includes(s))){a.push(s)}var p=s.shadowRoot||typeof o.getShadowRoot==="function"&&o.getShadowRoot(s);var m=!o.shadowRootFilter||o.shadowRootFilter(s);if(p&&m){var h=t(p===true?s.children:p.children,true,o);if(o.flatten){a.push.apply(a,h)}else{a.push({scope:s,candidates:h})}}else{i.unshift.apply(i,s.children)}}}return a};var l=function t(n,e){if(n.tabIndex<0){if((e||/^(AUDIO|VIDEO|DETAILS)$/.test(n.tagName)||n.isContentEditable)&&isNaN(parseInt(n.getAttribute("tabindex"),10))){return 0}}return n.tabIndex};var d=function t(n,e){return n.tabIndex===e.tabIndex?n.documentOrder-e.documentOrder:n.tabIndex-e.tabIndex};var f=function t(n){return n.tagName==="INPUT"};var p=function t(n){return f(n)&&n.type==="hidden"};var m=function t(n){var e=n.tagName==="DETAILS"&&Array.prototype.slice.apply(n.children).some((function(t){return t.tagName==="SUMMARY"}));return e};var h=function t(n,e){for(var o=0;osummary:first-of-type");var s=a?n.parentElement:n;if(c.call(s,"details:not([open]) *")){return true}var u=i(n).host;var l=(u===null||u===void 0?void 0:u.ownerDocument.contains(u))||n.ownerDocument.contains(n);if(!o||o==="full"){if(typeof r==="function"){var d=n;while(n){var f=n.parentElement;var p=i(n);if(f&&!f.shadowRoot&&r(f)===true){return b(n)}else if(n.assignedSlot){n=n.assignedSlot}else if(!f&&p!==n.ownerDocument){n=p.host}else{n=f}}n=d}if(l){return!n.getClientRects().length}}else if(o==="non-zero-area"){return b(n)}return false};var S=function t(n){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(n.tagName)){var e=n.parentElement;while(e){if(e.tagName==="FIELDSET"&&e.disabled){for(var o=0;o=0){return true}return false};var R=function t(n){var e=[];var o=[];n.forEach((function(n,r){var a=!!n.scope;var c=a?n.scope:n;var i=l(c,a);var s=a?t(n.candidates):c;if(i===0){a?e.push.apply(e,s):e.push(c)}else{o.push({documentOrder:r,tabIndex:i,item:n,isScope:a,content:s})}}));return o.sort(d).reduce((function(t,n){n.isScope?t.push.apply(t,n.content):t.push(n.content);return t}),[]).concat(e)};var A=function t(n,e){e=e||{};var o;if(e.getShadowRoot){o=u([n],e.includeContainer,{filter:E.bind(null,e),flatten:false,getShadowRoot:e.getShadowRoot,shadowRootFilter:k})}else{o=s(n,e.includeContainer,E.bind(null,e))}return R(o)};var D=function t(n,e){e=e||{};var o;if(e.getShadowRoot){o=u([n],e.includeContainer,{filter:P.bind(null,e),flatten:true,getShadowRoot:e.getShadowRoot})}else{o=s(n,e.includeContainer,P.bind(null,e))}return o};var N=function t(n,e){e=e||{};if(!n){throw new Error("No node provided")}if(c.call(n,r)===false){return false}return E(e,n)};var L=o.concat("iframe").join(",");var I=function t(n,e){e=e||{};if(!n){throw new Error("No node provided")}if(c.call(n,L)===false){return false}return P(e,n)}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5090.404be96d8a6eae1e719a.js.LICENSE.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5090.404be96d8a6eae1e719a.js.LICENSE.txt deleted file mode 100644 index c731c18fb99dec12b8f0cde354ff2cb206a35a91..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5090.404be96d8a6eae1e719a.js.LICENSE.txt +++ /dev/null @@ -1,4 +0,0 @@ -/*! -* tabbable 5.3.3 -* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE -*/ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5135.7f204de2153e4d85406d.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5135.7f204de2153e4d85406d.js deleted file mode 100644 index b8771fda80ec6d79295728f3d3f224c124850e97..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5135.7f204de2153e4d85406d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5135],{60148:(t,e,n)=>{n.d(e,{CP:()=>c,HT:()=>u,PB:()=>h,aC:()=>l,lC:()=>s,m:()=>o,tk:()=>a});var r=n(75905);var i=n(16750);var a=(0,r.K2)(((t,e)=>{const n=t.append("rect");n.attr("x",e.x);n.attr("y",e.y);n.attr("fill",e.fill);n.attr("stroke",e.stroke);n.attr("width",e.width);n.attr("height",e.height);if(e.name){n.attr("name",e.name)}if(e.rx){n.attr("rx",e.rx)}if(e.ry){n.attr("ry",e.ry)}if(e.attrs!==void 0){for(const t in e.attrs){n.attr(t,e.attrs[t])}}if(e.class){n.attr("class",e.class)}return n}),"drawRect");var s=(0,r.K2)(((t,e)=>{const n={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};const r=a(t,n);r.lower()}),"drawBackgroundRect");var o=(0,r.K2)(((t,e)=>{const n=e.text.replace(r.H1," ");const i=t.append("text");i.attr("x",e.x);i.attr("y",e.y);i.attr("class","legend");i.style("text-anchor",e.anchor);if(e.class){i.attr("class",e.class)}const a=i.append("tspan");a.attr("x",e.x+e.textMargin*2);a.text(n);return i}),"drawText");var l=(0,r.K2)(((t,e,n,r)=>{const a=t.append("image");a.attr("x",e);a.attr("y",n);const s=(0,i.J)(r);a.attr("xlink:href",s)}),"drawImage");var c=(0,r.K2)(((t,e,n,r)=>{const a=t.append("use");a.attr("x",e);a.attr("y",n);const s=(0,i.J)(r);a.attr("xlink:href",`#${s}`)}),"drawEmbeddedImage");var h=(0,r.K2)((()=>{const t={x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0};return t}),"getNoteRect");var u=(0,r.K2)((()=>{const t={x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:true};return t}),"getTextObj")},85135:(t,e,n)=>{n.d(e,{diagram:()=>J});var r=n(60148);var i=n(75905);var a=n(24982);var s=function(){var t=(0,i.K2)((function(t,e,n,r){for(n=n||{},r=t.length;r--;n[t[r]]=e);return n}),"o"),e=[6,8,10,11,12,14,16,17,18],n=[1,9],r=[1,10],a=[1,11],s=[1,12],o=[1,13],l=[1,14];var c={trace:(0,i.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:(0,i.K2)((function t(e,n,r,i,a,s,o){var l=s.length-1;switch(a){case 1:return s[l-1];break;case 2:this.$=[];break;case 3:s[l-1].push(s[l]);this.$=s[l-1];break;case 4:case 5:this.$=s[l];break;case 6:case 7:this.$=[];break;case 8:i.setDiagramTitle(s[l].substr(6));this.$=s[l].substr(6);break;case 9:this.$=s[l].trim();i.setAccTitle(this.$);break;case 10:case 11:this.$=s[l].trim();i.setAccDescription(this.$);break;case 12:i.addSection(s[l].substr(8));this.$=s[l].substr(8);break;case 13:i.addTask(s[l-1],s[l]);this.$="task";break}}),"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:n,12:r,14:a,16:s,17:o,18:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:n,12:r,14:a,16:s,17:o,18:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:(0,i.K2)((function t(e,n){if(n.recoverable){this.trace(e)}else{var r=new Error(e);r.hash=n;throw r}}),"parseError"),parse:(0,i.K2)((function t(e){var n=this,r=[0],a=[],s=[null],o=[],l=this.table,c="",h=0,u=0,y=0,p=2,f=1;var d=o.slice.call(arguments,1);var g=Object.create(this.lexer);var x={yy:{}};for(var m in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,m)){x.yy[m]=this.yy[m]}}g.setInput(e,x.yy);x.yy.lexer=g;x.yy.parser=this;if(typeof g.yylloc=="undefined"){g.yylloc={}}var k=g.yylloc;o.push(k);var b=g.options&&g.options.ranges;if(typeof x.yy.parseError==="function"){this.parseError=x.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function v(t){r.length=r.length-2*t;s.length=s.length-t;o.length=o.length-t}(0,i.K2)(v,"popStack");function _(){var t;t=a.pop()||g.lex()||f;if(typeof t!=="number"){if(t instanceof Array){a=t;t=a.pop()}t=n.symbols_[t]||t}return t}(0,i.K2)(_,"lex");var w,K,$,T,M,S,E={},I,P,C,A;while(true){$=r[r.length-1];if(this.defaultActions[$]){T=this.defaultActions[$]}else{if(w===null||typeof w=="undefined"){w=_()}T=l[$]&&l[$][w]}if(typeof T==="undefined"||!T.length||!T[0]){var j="";A=[];for(I in l[$]){if(this.terminals_[I]&&I>p){A.push("'"+this.terminals_[I]+"'")}}if(g.showPosition){j="Parse error on line "+(h+1)+":\n"+g.showPosition()+"\nExpecting "+A.join(", ")+", got '"+(this.terminals_[w]||w)+"'"}else{j="Parse error on line "+(h+1)+": Unexpected "+(w==f?"end of input":"'"+(this.terminals_[w]||w)+"'")}this.parseError(j,{text:g.match,token:this.terminals_[w]||w,line:g.yylineno,loc:k,expected:A})}if(T[0]instanceof Array&&T.length>1){throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+w)}switch(T[0]){case 1:r.push(w);s.push(g.yytext);o.push(g.yylloc);r.push(T[1]);w=null;if(!K){u=g.yyleng;c=g.yytext;h=g.yylineno;k=g.yylloc;if(y>0){y--}}else{w=K;K=null}break;case 2:P=this.productions_[T[1]][1];E.$=s[s.length-P];E._$={first_line:o[o.length-(P||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(P||1)].first_column,last_column:o[o.length-1].last_column};if(b){E._$.range=[o[o.length-(P||1)].range[0],o[o.length-1].range[1]]}S=this.performAction.apply(E,[c,u,h,x.yy,T[1],s,o].concat(d));if(typeof S!=="undefined"){return S}if(P){r=r.slice(0,-1*P*2);s=s.slice(0,-1*P);o=o.slice(0,-1*P)}r.push(this.productions_[T[1]][0]);s.push(E.$);o.push(E._$);C=l[r[r.length-2]][r[r.length-1]];r.push(C);break;case 3:return true}}return true}),"parse")};var h=function(){var t={EOF:1,parseError:(0,i.K2)((function t(e,n){if(this.yy.parser){this.yy.parser.parseError(e,n)}else{throw new Error(e)}}),"parseError"),setInput:(0,i.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,i.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,i.K2)((function(t){var e=t.length;var n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(n.length-1){this.yylineno-=n.length-1}var i=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[i[0],i[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,i.K2)((function(){this._more=true;return this}),"more"),reject:(0,i.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,i.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,i.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,i.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,i.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,i.K2)((function(t,e){var n,r,i;if(this.options.backtrack_lexer){i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){i.yylloc.range=this.yylloc.range.slice(0)}}r=t[0].match(/(?:\r\n?|\n).*/g);if(r){this.yylineno+=r.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(n){return n}else if(this._backtrack){for(var a in i){this[a]=i[a]}return false}return false}),"test_match"),next:(0,i.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,n,r;if(!this._more){this.yytext="";this.match=""}var i=this._currentRules();for(var a=0;ae[0].length)){e=n;r=a;if(this.options.backtrack_lexer){t=this.test_match(n,i[a]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,i[r]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,i.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,i.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,i.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,i.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,i.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,i.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,i.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,i.K2)((function t(e,n,r,i){var a=i;switch(r){case 0:break;case 1:break;case 2:return 10;break;case 3:break;case 4:break;case 5:return 4;break;case 6:return 11;break;case 7:this.begin("acc_title");return 12;break;case 8:this.popState();return"acc_title_value";break;case 9:this.begin("acc_descr");return 14;break;case 10:this.popState();return"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";break;case 14:return 17;break;case 15:return 18;break;case 16:return 19;break;case 17:return":";break;case 18:return 6;break;case 19:return"INVALID";break}}),"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:false},acc_descr:{rules:[10],inclusive:false},acc_title:{rules:[8],inclusive:false},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:true}}};return t}();c.lexer=h;function u(){this.yy={}}(0,i.K2)(u,"Parser");u.prototype=c;c.Parser=u;return new u}();s.parser=s;var o=s;var l="";var c=[];var h=[];var u=[];var y=(0,i.K2)((function(){c.length=0;h.length=0;l="";u.length=0;(0,i.IU)()}),"clear");var p=(0,i.K2)((function(t){l=t;c.push(t)}),"addSection");var f=(0,i.K2)((function(){return c}),"getSections");var d=(0,i.K2)((function(){let t=k();const e=100;let n=0;while(!t&&n{if(e.people){t.push(...e.people)}}));const e=new Set(t);return[...e].sort()}),"updateActors");var x=(0,i.K2)((function(t,e){const n=e.substr(1).split(":");let r=0;let i=[];if(n.length===1){r=Number(n[0]);i=[]}else{r=Number(n[0]);i=n[1].split(",")}const a=i.map((t=>t.trim()));const s={section:l,type:l,people:a,task:t,score:r};u.push(s)}),"addTask");var m=(0,i.K2)((function(t){const e={section:l,type:l,description:t,task:t,classes:[]};h.push(e)}),"addTaskOrg");var k=(0,i.K2)((function(){const t=(0,i.K2)((function(t){return u[t].processed}),"compileTask");let e=true;for(const[n,r]of u.entries()){t(n);e=e&&r.processed}return e}),"compileTasks");var b=(0,i.K2)((function(){return g()}),"getActors");var v={getConfig:(0,i.K2)((()=>(0,i.D7)().journey),"getConfig"),clear:y,setDiagramTitle:i.ke,getDiagramTitle:i.ab,setAccTitle:i.SV,getAccTitle:i.iN,setAccDescription:i.EI,getAccDescription:i.m7,addSection:p,getSections:f,getTasks:d,addTask:x,addTaskOrg:m,getActors:b};var _=(0,i.K2)((t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${t.textColor}\n }\n\n .legend {\n fill: ${t.textColor};\n font-family: ${t.fontFamily};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${t.textColor}\n }\n\n .face {\n ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"};\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ${t.fillType0?`fill: ${t.fillType0}`:""};\n }\n .task-type-1, .section-type-1 {\n ${t.fillType0?`fill: ${t.fillType1}`:""};\n }\n .task-type-2, .section-type-2 {\n ${t.fillType0?`fill: ${t.fillType2}`:""};\n }\n .task-type-3, .section-type-3 {\n ${t.fillType0?`fill: ${t.fillType3}`:""};\n }\n .task-type-4, .section-type-4 {\n ${t.fillType0?`fill: ${t.fillType4}`:""};\n }\n .task-type-5, .section-type-5 {\n ${t.fillType0?`fill: ${t.fillType5}`:""};\n }\n .task-type-6, .section-type-6 {\n ${t.fillType0?`fill: ${t.fillType6}`:""};\n }\n .task-type-7, .section-type-7 {\n ${t.fillType0?`fill: ${t.fillType7}`:""};\n }\n\n .actor-0 {\n ${t.actor0?`fill: ${t.actor0}`:""};\n }\n .actor-1 {\n ${t.actor1?`fill: ${t.actor1}`:""};\n }\n .actor-2 {\n ${t.actor2?`fill: ${t.actor2}`:""};\n }\n .actor-3 {\n ${t.actor3?`fill: ${t.actor3}`:""};\n }\n .actor-4 {\n ${t.actor4?`fill: ${t.actor4}`:""};\n }\n .actor-5 {\n ${t.actor5?`fill: ${t.actor5}`:""};\n }\n`),"getStyles");var w=_;var K=(0,i.K2)((function(t,e){return(0,r.tk)(t,e)}),"drawRect");var $=(0,i.K2)((function(t,e){const n=15;const r=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",n).attr("stroke-width",2).attr("overflow","visible");const s=t.append("g");s.append("circle").attr("cx",e.cx-n/3).attr("cy",e.cy-n/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");s.append("circle").attr("cx",e.cx+n/3).attr("cy",e.cy-n/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function o(t){const r=(0,a.JLW)().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(n/2).outerRadius(n/2.2);t.append("path").attr("class","mouth").attr("d",r).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}(0,i.K2)(o,"smile");function l(t){const r=(0,a.JLW)().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(n/2).outerRadius(n/2.2);t.append("path").attr("class","mouth").attr("d",r).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}(0,i.K2)(l,"sad");function c(t){t.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}(0,i.K2)(c,"ambivalent");if(e.score>3){o(s)}else if(e.score<3){l(s)}else{c(s)}return r}),"drawFace");var T=(0,i.K2)((function(t,e){const n=t.append("circle");n.attr("cx",e.cx);n.attr("cy",e.cy);n.attr("class","actor-"+e.pos);n.attr("fill",e.fill);n.attr("stroke",e.stroke);n.attr("r",e.r);if(n.class!==void 0){n.attr("class",n.class)}if(e.title!==void 0){n.append("title").text(e.title)}return n}),"drawCircle");var M=(0,i.K2)((function(t,e){return(0,r.m)(t,e)}),"drawText");var S=(0,i.K2)((function(t,e){function n(t,e,n,r,i){return t+","+e+" "+(t+n)+","+e+" "+(t+n)+","+(e+r-i)+" "+(t+n-i*1.2)+","+(e+r)+" "+t+","+(e+r)}(0,i.K2)(n,"genPoints");const r=t.append("polygon");r.attr("points",n(e.x,e.y,50,20,7));r.attr("class","labelBox");e.y=e.y+e.labelMargin;e.x=e.x+.5*e.labelMargin;M(t,e)}),"drawLabel");var E=(0,i.K2)((function(t,e,n){const i=t.append("g");const a=(0,r.PB)();a.x=e.x;a.y=e.y;a.fill=e.fill;a.width=n.width*e.taskCount+n.diagramMarginX*(e.taskCount-1);a.height=n.height;a.class="journey-section section-type-"+e.num;a.rx=3;a.ry=3;K(i,a);A(n)(e.text,i,a.x,a.y,a.width,a.height,{class:"journey-section section-type-"+e.num},n,e.colour)}),"drawSection");var I=-1;var P=(0,i.K2)((function(t,e,n){const i=e.x+n.width/2;const a=t.append("g");I++;const s=300+5*30;a.append("line").attr("id","task"+I).attr("x1",i).attr("y1",e.y).attr("x2",i).attr("y2",s).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666");$(a,{cx:i,cy:300+(5-e.score)*30,score:e.score});const o=(0,r.PB)();o.x=e.x;o.y=e.y;o.fill=e.fill;o.width=n.width;o.height=n.height;o.class="task task-type-"+e.num;o.rx=3;o.ry=3;K(a,o);let l=e.x+14;e.people.forEach((t=>{const n=e.actors[t].color;const r={cx:l,cy:e.y,r:7,fill:n,stroke:"#000",title:t,pos:e.actors[t].position};T(a,r);l+=10}));A(n)(e.task,a,o.x,o.y,o.width,o.height,{class:"task"},n,e.colour)}),"drawTask");var C=(0,i.K2)((function(t,e){(0,r.lC)(t,e)}),"drawBackgroundRect");var A=function(){function t(t,e,n,i,a,s,o,l){const c=e.append("text").attr("x",n+a/2).attr("y",i+s/2+5).style("font-color",l).style("text-anchor","middle").text(t);r(c,o)}(0,i.K2)(t,"byText");function e(t,e,n,i,a,s,o,l,c){const{taskFontSize:h,taskFontFamily:u}=l;const y=t.split(//gi);for(let p=0;p{const i=V[r].color;const a={cx:20,cy:n,r:7,fill:i,stroke:"#000",pos:V[r].position};D.drawCircle(t,a);const s={x:40,y:n+7,fill:"#666",text:r,textMargin:e.boxTextMargin|5};D.drawText(t,s);n+=20}))}(0,i.K2)(F,"drawActorLegend");var B=(0,i.D7)().journey;var O=B.leftMargin;var N=(0,i.K2)((function(t,e,n,r){const s=(0,i.D7)().journey;const o=(0,i.D7)().securityLevel;let l;if(o==="sandbox"){l=(0,a.Ltv)("#i"+e)}const c=o==="sandbox"?(0,a.Ltv)(l.nodes()[0].contentDocument.body):(0,a.Ltv)("body");R.init();const h=c.select("#"+e);D.initGraphics(h);const u=r.db.getTasks();const y=r.db.getDiagramTitle();const p=r.db.getActors();for(const i in V){delete V[i]}let f=0;p.forEach((t=>{V[t]={color:s.actorColours[f%s.actorColours.length],position:f};f++}));F(h);R.insert(0,0,O,Object.keys(V).length*50);Y(h,u,0);const d=R.getBounds();if(y){h.append("text").text(y).attr("x",O).attr("font-size","4ex").attr("font-weight","bold").attr("y",25)}const g=d.stopy-d.starty+2*s.diagramMarginY;const x=O+d.stopx+2*s.diagramMarginX;(0,i.a$)(h,g,x,s.useMaxWidth);h.append("line").attr("x1",O).attr("y1",s.height*4).attr("x2",x-O-4).attr("y2",s.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const m=y?70:0;h.attr("viewBox",`${d.startx} -25 ${x} ${g+m}`);h.attr("preserveAspectRatio","xMinYMin meet");h.attr("height",g+m+25)}),"draw");var R={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:(0,i.K2)((function(){this.sequenceItems=[];this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0};this.verticalPos=0}),"init"),updateVal:(0,i.K2)((function(t,e,n,r){if(t[e]===void 0){t[e]=n}else{t[e]=r(n,t[e])}}),"updateVal"),updateBounds:(0,i.K2)((function(t,e,n,r){const a=(0,i.D7)().journey;const s=this;let o=0;function l(l){return(0,i.K2)((function i(c){o++;const h=s.sequenceItems.length-o+1;s.updateVal(c,"starty",e-h*a.boxMargin,Math.min);s.updateVal(c,"stopy",r+h*a.boxMargin,Math.max);s.updateVal(R.data,"startx",t-h*a.boxMargin,Math.min);s.updateVal(R.data,"stopx",n+h*a.boxMargin,Math.max);if(!(l==="activation")){s.updateVal(c,"startx",t-h*a.boxMargin,Math.min);s.updateVal(c,"stopx",n+h*a.boxMargin,Math.max);s.updateVal(R.data,"starty",e-h*a.boxMargin,Math.min);s.updateVal(R.data,"stopy",r+h*a.boxMargin,Math.max)}}),"updateItemBounds")}(0,i.K2)(l,"updateFn");this.sequenceItems.forEach(l())}),"updateBounds"),insert:(0,i.K2)((function(t,e,n,r){const i=Math.min(t,n);const a=Math.max(t,n);const s=Math.min(e,r);const o=Math.max(e,r);this.updateVal(R.data,"startx",i,Math.min);this.updateVal(R.data,"starty",s,Math.min);this.updateVal(R.data,"stopx",a,Math.max);this.updateVal(R.data,"stopy",o,Math.max);this.updateBounds(i,s,a,o)}),"insert"),bumpVerticalPos:(0,i.K2)((function(t){this.verticalPos=this.verticalPos+t;this.data.stopy=this.verticalPos}),"bumpVerticalPos"),getVerticalPos:(0,i.K2)((function(){return this.verticalPos}),"getVerticalPos"),getBounds:(0,i.K2)((function(){return this.data}),"getBounds")};var z=B.sectionFills;var W=B.sectionColours;var Y=(0,i.K2)((function(t,e,n){const r=(0,i.D7)().journey;let a="";const s=r.height*2+r.diagramMarginY;const o=n+s;let l=0;let c="#CCC";let h="black";let u=0;for(const[i,y]of e.entries()){if(a!==y.section){c=z[l%z.length];u=l%z.length;h=W[l%W.length];let n=0;const s=y.section;for(let t=i;t{if(V[e]){t[e]=V[e]}return t}),{});y.x=i*r.taskMargin+i*r.width+O;y.y=o;y.width=r.diagramMarginX;y.height=r.diagramMarginY;y.colour=h;y.fill=c;y.num=u;y.actors=n;D.drawTask(t,y,r);R.insert(y.x,y.y,y.x+y.width+r.taskMargin,300+5*30)}}),"drawTasks");var q={setConf:L,draw:N};var J={parser:o,db:v,renderer:q,styles:w,init:(0,i.K2)((t=>{q.setConf(t.journey);v.clear()}),"init")}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5211.83e78dadcef89cae04bf.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5211.83e78dadcef89cae04bf.js deleted file mode 100644 index 56b814c2a074fb57806bc06cff522795a184d267..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5211.83e78dadcef89cae04bf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5211],{5211:(e,t,n)=>{n.r(t);n.d(t,{factor:()=>a});var r=n(47228);const a=(0,r.I)({start:[{regex:/#?!.*/,token:"comment"},{regex:/"""/,token:"string",next:"string3"},{regex:/(STRING:)(\s)/,token:["keyword",null],next:"string2"},{regex:/\S*?"/,token:"string",next:"string"},{regex:/(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\-?\d+.?\d*)(?=\s)/,token:"number"},{regex:/((?:GENERIC)|\:?\:)(\s+)(\S+)(\s+)(\()/,token:["keyword",null,"def",null,"bracket"],next:"stack"},{regex:/(M\:)(\s+)(\S+)(\s+)(\S+)/,token:["keyword",null,"def",null,"tag"]},{regex:/USING\:/,token:"keyword",next:"vocabulary"},{regex:/(USE\:|IN\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"tag"]},{regex:/(\S+\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"def"]},{regex:/(?:;|\\|t|f|if|loop|while|until|do|PRIVATE>|\.\*\?]+(?=\s|$)/,token:"builtin"},{regex:/[\)><]+\S+(?=\s|$)/,token:"builtin"},{regex:/(?:[\+\-\=\/\*<>])(?=\s|$)/,token:"keyword"},{regex:/\S+/,token:"variable"},{regex:/\s+|./,token:null}],vocabulary:[{regex:/;/,token:"keyword",next:"start"},{regex:/\S+/,token:"tag"},{regex:/\s+|./,token:null}],string:[{regex:/(?:[^\\]|\\.)*?"/,token:"string",next:"start"},{regex:/.*/,token:"string"}],string2:[{regex:/^;/,token:"keyword",next:"start"},{regex:/.*/,token:"string"}],string3:[{regex:/(?:[^\\]|\\.)*?"""/,token:"string",next:"start"},{regex:/.*/,token:"string"}],stack:[{regex:/\)/,token:"bracket",next:"start"},{regex:/--/,token:"bracket"},{regex:/\S+/,token:"meta"},{regex:/\s+|./,token:null}],languageData:{name:"factor",dontIndentStates:["start","vocabulary","string","string3","stack"],commentTokens:{line:"!"}}})},47228:(e,t,n)=>{n.d(t,{I:()=>r});function r(e){a(e,"start");var t={},n=e.languageData||{},r=false;for(var i in e)if(i!=n&&e.hasOwnProperty(i)){var s=t[i]=[],u=e[i];for(var d=0;d2&&s.token&&typeof s.token!="string"){n.pending=[];for(var l=2;l-1)return null;var a=n.indent.length-1,i=e[n.state];e:for(;;){for(var s=0;s{t.r(n);t.d(n,{sieve:()=>p});function r(e){var n={},t=e.split(" ");for(var r=0;r0)&&!(i=n.next()).done)a.push(i.value)}catch(l){o={error:l}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(o)throw o.error}}return a};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,a;n=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.SafeHandler=e.SafeMathDocumentMixin=void 0;var s=r(23466);function f(t){var e;return e=function(t){n(e,t);function e(){var e,r;var n=[];for(var i=0;i=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var i=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,a=[],o;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)a.push(i.value)}catch(l){o={error:l}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(o)throw o.error}}return a};Object.defineProperty(e,"__esModule",{value:true});e.SafeMethods=void 0;var a=r(86810);e.SafeMethods={filterURL:function(t,e){var r=(e.match(/^\s*([a-z]+):/i)||[null,""])[1].toLowerCase();var n=t.allow.URLs;return n==="all"||n==="safe"&&(t.options.safeProtocols[r]||!r)?e:null},filterClassList:function(t,e){var r=this;var n=e.trim().replace(/\s\s+/g," ").split(/ /);return n.map((function(e){return r.filterClass(t,e)||""})).join(" ").trim().replace(/\s\s+/g,"")},filterClass:function(t,e){var r=t.allow.classes;return r==="all"||r==="safe"&&e.match(t.options.classPattern)?e:null},filterID:function(t,e){var r=t.allow.cssIDs;return r==="all"||r==="safe"&&e.match(t.options.idPattern)?e:null},filterStyles:function(t,e){var r,i,a,o;if(t.allow.styles==="all")return e;if(t.allow.styles!=="safe")return null;var l=t.adaptor;var s=t.options;try{var f=l.node("div",{style:e});var u=l.node("div");try{for(var c=n(Object.keys(s.safeStyles)),p=c.next();!p.done;p=c.next()){var y=p.value;if(s.styleParts[y]){try{for(var h=(a=void 0,n(["Top","Right","Bottom","Left"])),v=h.next();!v.done;v=h.next()){var d=v.value;var m=y+d;var b=this.filterStyle(t,m,f);if(b){l.setStyle(u,m,b)}}}catch(g){a={error:g}}finally{try{if(v&&!v.done&&(o=h.return))o.call(h)}finally{if(a)throw a.error}}}else{var b=this.filterStyle(t,y,f);if(b){l.setStyle(u,y,b)}}}}catch(S){r={error:S}}finally{try{if(p&&!p.done&&(i=c.return))i.call(c)}finally{if(r)throw r.error}}e=l.allStyles(u)}catch(O){e=""}return e},filterStyle:function(t,e,r){var n=t.adaptor.getStyle(r,e);if(typeof n!=="string"||n===""||n.match(/^\s*calc/)||n.match(/javascript:/)&&!t.options.safeProtocols.javascript||n.match(/data:/)&&!t.options.safeProtocols.data){return null}var i=e.replace(/Top|Right|Left|Bottom/,"");if(!t.options.safeStyles[e]&&!t.options.safeStyles[i]){return null}return this.filterStyleValue(t,e,n,r)},filterStyleValue:function(t,e,r,n){var i=t.options.styleLengths[e];if(!i){return r}if(typeof i!=="string"){return this.filterStyleLength(t,e,r)}var a=this.filterStyleLength(t,i,t.adaptor.getStyle(n,i));if(!a){return null}t.adaptor.setStyle(n,i,a);return t.adaptor.getStyle(n,e)},filterStyleLength:function(t,e,r){if(!r.match(/^(.+)(em|ex|ch|rem|px|mm|cm|in|pt|pc|%)$/))return null;var n=(0,a.length2em)(r,1);var o=t.options.styleLengths[e];var l=i(Array.isArray(o)?o:[-t.options.lengthMax,t.options.lengthMax],2),s=l[0],f=l[1];return s<=n&&n<=f?r:(n=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.Safe=void 0;var a=r(34981);var o=r(91894);var l=function(){function t(t,e){this.filterAttributes=new Map([["href","filterURL"],["src","filterURL"],["altimg","filterURL"],["class","filterClassList"],["style","filterStyles"],["id","filterID"],["fontsize","filterFontSize"],["mathsize","filterFontSize"],["scriptminsize","filterFontSize"],["scriptsizemultiplier","filterSizeMultiplier"],["scriptlevel","filterScriptLevel"],["data-","filterData"]]);this.filterMethods=n({},o.SafeMethods);this.adaptor=t.adaptor;this.options=e;this.allow=this.options.allow}t.prototype.sanitize=function(t,e){try{t.root.walkTree(this.sanitizeNode.bind(this))}catch(r){e.options.compileError(e,t,r)}};t.prototype.sanitizeNode=function(t){var e,r;var n=t.attributes.getAllAttributes();try{for(var a=i(Object.keys(n)),o=a.next();!o.done;o=a.next()){var l=o.value;var s=this.filterAttributes.get(l);if(s){var f=this.filterMethods[s](this,n[l]);if(f){if(f!==(typeof f==="number"?parseFloat(n[l]):n[l])){n[l]=f}}else{delete n[l]}}}}catch(u){e={error:u}}finally{try{if(o&&!o.done&&(r=a.return))r.call(a)}finally{if(e)throw e.error}}};t.prototype.mmlAttribute=function(t,e){if(t==="class")return null;var r=this.filterAttributes.get(t);var n=r||(t.substr(0,5)==="data-"?this.filterAttributes.get("data-"):null);if(!n){return e}var i=this.filterMethods[n](this,e,t);return typeof i==="number"||typeof i==="boolean"?String(i):i};t.prototype.mmlClassList=function(t){var e=this;return t.map((function(t){return e.filterMethods.filterClass(e,t)})).filter((function(t){return t!==null}))};t.OPTIONS={allow:{URLs:"safe",classes:"safe",cssIDs:"safe",styles:"safe"},lengthMax:3,scriptsizemultiplierRange:[.6,1],scriptlevelRange:[-2,2],classPattern:/^mjx-[-a-zA-Z0-9_.]+$/,idPattern:/^mjx-[-a-zA-Z0-9_.]+$/,dataPattern:/^data-mjx-/,safeProtocols:(0,a.expandable)({http:true,https:true,file:true,javascript:false,data:false}),safeStyles:(0,a.expandable)({color:true,backgroundColor:true,border:true,cursor:true,margin:true,padding:true,textShadow:true,fontFamily:true,fontSize:true,fontStyle:true,fontWeight:true,opacity:true,outline:true}),styleParts:(0,a.expandable)({border:true,padding:true,margin:true,outline:true}),styleLengths:(0,a.expandable)({borderTop:"borderTopWidth",borderRight:"borderRightWidth",borderBottom:"borderBottomWidth",borderLeft:"borderLeftWidth",paddingTop:true,paddingRight:true,paddingBottom:true,paddingLeft:true,marginTop:true,marginRight:true,marginBottom:true,marginLeft:true,outlineTop:true,outlineRight:true,outlineBottom:true,outlineLeft:true,fontSize:[.707,1.44]})};return t}();e.Safe=l},34981:function(t,e){var r=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&n>=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),i,a=[],o;try{while((e===void 0||e-- >0)&&!(i=n.next()).done)a.push(i.value)}catch(l){o={error:l}}finally{try{if(i&&!i.done&&(r=n["return"]))r.call(n)}finally{if(o)throw o.error}}return a};var i=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,i=e.length,a;n{Object.defineProperty(e,"__esModule",{value:true});e.px=e.emRounded=e.em=e.percent=e.length2em=e.MATHSPACE=e.RELUNITS=e.UNITS=e.BIGDIMEN=void 0;e.BIGDIMEN=1e6;e.UNITS={px:1,in:96,cm:96/2.54,mm:96/25.4};e.RELUNITS={em:1,ex:.431,pt:1/10,pc:12/10,mu:1/18};e.MATHSPACE={veryverythinmathspace:1/18,verythinmathspace:2/18,thinmathspace:3/18,mediummathspace:4/18,thickmathspace:5/18,verythickmathspace:6/18,veryverythickmathspace:7/18,negativeveryverythinmathspace:-1/18,negativeverythinmathspace:-2/18,negativethinmathspace:-3/18,negativemediummathspace:-4/18,negativethickmathspace:-5/18,negativeverythickmathspace:-6/18,negativeveryverythickmathspace:-7/18,thin:.04,medium:.06,thick:.1,normal:1,big:2,small:1/Math.sqrt(2),infinity:e.BIGDIMEN};function r(t,r,n,i){if(r===void 0){r=0}if(n===void 0){n=1}if(i===void 0){i=16}if(typeof t!=="string"){t=String(t)}if(t===""||t==null){return r}if(e.MATHSPACE[t]){return e.MATHSPACE[t]}var a=t.match(/^\s*([-+]?(?:\.\d+|\d+(?:\.\d*)?))?(pt|em|ex|mu|px|pc|in|mm|cm|%)?/);if(!a){return r}var o=parseFloat(a[1]||"1"),l=a[2];if(e.UNITS.hasOwnProperty(l)){return o*e.UNITS[l]/i/n}if(e.RELUNITS.hasOwnProperty(l)){return o*e.RELUNITS[l]}if(l==="%"){return o/100*r}return o*r}e.length2em=r;function n(t){return(100*t).toFixed(1).replace(/\.?0+$/,"")+"%"}e.percent=n;function i(t){if(Math.abs(t)<.001)return"0";return t.toFixed(3).replace(/\.?0+$/,"")+"em"}e.em=i;function a(t,e){if(e===void 0){e=16}t=(Math.round(t*e)+.05)/e;if(Math.abs(t)<.001)return"0em";return t.toFixed(3).replace(/\.?0+$/,"")+"em"}e.emRounded=a;function o(t,r,n){if(r===void 0){r=-e.BIGDIMEN}if(n===void 0){n=16}t*=n;if(r&&t{t.r(n);t.d(n,{cmake:()=>u});var r=/({)?[a-zA-Z0-9_]+(})?/;function i(e,n){var t,r,i=false;while(!e.eol()&&(t=e.next())!=n.pending){if(t==="$"&&r!="\\"&&n.pending=='"'){i=true;break}r=t}if(i){e.backUp(1)}if(t==n.pending){n.continueString=false}else{n.continueString=true}return"string"}function a(e,n){var t=e.next();if(t==="$"){if(e.match(r)){return"variableName.special"}return"variable"}if(n.continueString){e.backUp(1);return i(e,n)}if(e.match(/(\s+)?\w+\(/)||e.match(/(\s+)?\w+\ \(/)){e.backUp(1);return"def"}if(t=="#"){e.skipToEnd();return"comment"}if(t=="'"||t=='"'){n.pending=t;return i(e,n)}if(t=="("||t==")"){return"bracket"}if(t.match(/[0-9]/)){return"number"}e.eatWhile(/[\w-]/);return null}const u={name:"cmake",startState:function(){var e={};e.inDefinition=false;e.inInclude=false;e.continueString=false;e.pending=false;return e},token:function(e,n){if(e.eatSpace())return null;return a(e,n)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5318.d5df5c275e925c22d780.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5318.d5df5c275e925c22d780.js deleted file mode 100644 index 989c69c8dea99ec7f907f9716b833c69b9ec8e10..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5318.d5df5c275e925c22d780.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5318],{55318:(e,t,n)=>{n.r(t);n.d(t,{d:()=>g});function r(e){var t={},n=e.split(" ");for(var r=0;r!?|\/]/;var m;function h(e,t){var n=e.next();if(c[n]){var r=c[n](e,t);if(r!==false)return r}if(n=='"'||n=="'"||n=="`"){t.tokenize=y(n);return t.tokenize(e,t)}if(/[\[\]{}\(\),;\:\.]/.test(n)){m=n;return null}if(/\d/.test(n)){e.eatWhile(/[\w\.]/);return"number"}if(n=="/"){if(e.eat("+")){t.tokenize=k;return k(e,t)}if(e.eat("*")){t.tokenize=b;return b(e,t)}if(e.eat("/")){e.skipToEnd();return"comment"}}if(d.test(n)){e.eatWhile(d);return"operator"}e.eatWhile(/[\w\$_\xa1-\uffff]/);var i=e.current();if(l.propertyIsEnumerable(i)){if(s.propertyIsEnumerable(i))m="newstatement";return"keyword"}if(u.propertyIsEnumerable(i)){if(s.propertyIsEnumerable(i))m="newstatement";return"builtin"}if(f.propertyIsEnumerable(i))return"atom";return"variable"}function y(e){return function(t,n){var r=false,i,a=false;while((i=t.next())!=null){if(i==e&&!r){a=true;break}r=!r&&i=="\\"}if(a||!(r||p))n.tokenize=null;return"string"}}function b(e,t){var n=false,r;while(r=e.next()){if(r=="/"&&n){t.tokenize=null;break}n=r=="*"}return"comment"}function k(e,t){var n=false,r;while(r=e.next()){if(r=="/"&&n){t.tokenize=null;break}n=r=="+"}return"comment"}function v(e,t,n,r,i){this.indented=e;this.column=t;this.type=n;this.align=r;this.prev=i}function w(e,t,n){var r=e.indented;if(e.context&&e.context.type=="statement")r=e.context.indented;return e.context=new v(r,t,n,null,e.context)}function _(e){var t=e.context.type;if(t==")"||t=="]"||t=="}")e.indented=e.context.indented;return e.context=e.context.prev}const g={name:"d",startState:function(e){return{tokenize:null,context:new v(-e,0,"top",false),indented:0,startOfLine:true}},token:function(e,t){var n=t.context;if(e.sol()){if(n.align==null)n.align=false;t.indented=e.indentation();t.startOfLine=true}if(e.eatSpace())return null;m=null;var r=(t.tokenize||h)(e,t);if(r=="comment"||r=="meta")return r;if(n.align==null)n.align=true;if((m==";"||m==":"||m==",")&&n.type=="statement")_(t);else if(m=="{")w(t,e.column(),"}");else if(m=="[")w(t,e.column(),"]");else if(m=="(")w(t,e.column(),")");else if(m=="}"){while(n.type=="statement")n=_(t);if(n.type=="}")n=_(t);while(n.type=="statement")n=_(t)}else if(m==n.type)_(t);else if((n.type=="}"||n.type=="top")&&m!=";"||n.type=="statement"&&m=="newstatement")w(t,e.column(),"statement");t.startOfLine=false;return r},indent:function(e,t,n){if(e.tokenize!=h&&e.tokenize!=null)return null;var r=e.context,i=t&&t.charAt(0);if(r.type=="statement"&&i=="}")r=r.prev;var a=i==r.type;if(r.type=="statement")return r.indented+(i=="{"?0:o||n.unit);else if(r.align)return r.column+(a?0:1);else return r.indented+(a?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5338.38c32bdfb0695f9b501f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5338.38c32bdfb0695f9b501f.js deleted file mode 100644 index 9cb3cd10ade42ec026990311fea38f7a8d7f0d83..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5338.38c32bdfb0695f9b501f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5338,2957,100],{5338:(a,e,t)=>{var p;var r=t(86672);if(true){e.H=r.createRoot;p=r.hydrateRoot}else{var o}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5489.7fab44eac7538297b164.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5489.7fab44eac7538297b164.js deleted file mode 100644 index 71123a9f5832687b9d3d31c14ffd4e275b9bf3a7..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5489.7fab44eac7538297b164.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5489],{25489:(e,t,r)=>{r.d(t,{default:()=>vn});class a{constructor(e,t,r){this.lexer=void 0;this.start=void 0;this.end=void 0;this.lexer=e;this.start=t;this.end=r}static range(e,t){if(!t){return e&&e.loc}else if(!e||!e.loc||!t.loc||e.loc.lexer!==t.loc.lexer){return null}else{return new a(e.loc.lexer,e.loc.start,t.loc.end)}}}class i{constructor(e,t){this.text=void 0;this.loc=void 0;this.noexpand=void 0;this.treatAsRelax=void 0;this.text=e;this.loc=t}range(e,t){return new i(t,a.range(this,e))}}class n{constructor(e,t){this.name=void 0;this.position=void 0;this.length=void 0;this.rawMessage=void 0;var r="KaTeX parse error: "+e;var a;var i;var s=t&&t.loc;if(s&&s.start<=s.end){var o=s.lexer.input;a=s.start;i=s.end;if(a===o.length){r+=" at end of input: "}else{r+=" at position "+(a+1)+": "}var l=o.slice(a,i).replace(/[^]/g,"$&̲");var h;if(a>15){h="…"+o.slice(a-15,a)}else{h=o.slice(0,a)}var u;if(i+15":">","<":"<",'"':""","'":"'"};var m=/[&><"']/g;function c(e){return String(e).replace(m,(e=>u[e]))}var p=function e(t){if(t.type==="ordgroup"){if(t.body.length===1){return e(t.body[0])}else{return t}}else if(t.type==="color"){if(t.body.length===1){return e(t.body[0])}else{return t}}else if(t.type==="font"){return e(t.body)}else{return t}};var d=function e(t){var r=p(t);return r.type==="mathord"||r.type==="textord"||r.type==="atom"};var f=function e(t){if(!t){throw new Error("Expected non-null, but got "+String(t))}return t};var v=function e(t){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(t);if(!r){return"_relative"}if(r[2]!==":"){return null}if(!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])){return null}return r[1].toLowerCase()};var g={contains:s,deflt:o,escape:c,hyphenate:h,getBaseElem:p,isCharacterBox:d,protocolFromUrl:v};var b={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in "+"display style (so \\int and \\sum are large, for example), and "+"centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:true,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) ins"+"tead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' "+"(no #). This option determines the color of errors rendered by the "+"-t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use "+"multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>{t.push(e);return t}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines,"+" `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, "+"`\\hdashline`, `\\underline`, `\\overline`, and the borders of "+"`\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, "+"instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an "+"error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:false},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:Infinity,description:"If non-zero, all user-specified sizes, e.g. in "+"\\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, "+"elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified "+"number, to prevent e.g. infinite macro loops. If set to Infinity, "+"the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>e==="Infinity"?Infinity:parseInt(e)},globalGroup:{type:"boolean",cli:false}};function y(e){if(e.default){return e.default}var t=e.type;var r=Array.isArray(t)?t[0]:t;if(typeof r!=="string"){return r.enum[0]}switch(r){case"boolean":return false;case"string":return"";case"number":return 0;case"object":return{}}}class x{constructor(e){this.displayMode=void 0;this.output=void 0;this.leqno=void 0;this.fleqn=void 0;this.throwOnError=void 0;this.errorColor=void 0;this.macros=void 0;this.minRuleThickness=void 0;this.colorIsTextColor=void 0;this.strict=void 0;this.trust=void 0;this.maxSize=void 0;this.maxExpand=void 0;this.globalGroup=void 0;e=e||{};for(var t in b){if(b.hasOwnProperty(t)){var r=b[t];this[t]=e[t]!==undefined?r.processor?r.processor(e[t]):e[t]:y(r)}}}reportNonstrict(e,t,r){var a=this.strict;if(typeof a==="function"){a=a(e,t,r)}if(!a||a==="ignore"){return}else if(a===true||a==="error"){throw new n("LaTeX-incompatible input and strict mode is set to 'error': "+(t+" ["+e+"]"),r)}else if(a==="warn"){typeof console!=="undefined"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]"))}else{typeof console!=="undefined"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+t+" ["+e+"]"))}}useStrictBehavior(e,t,r){var a=this.strict;if(typeof a==="function"){try{a=a(e,t,r)}catch(i){a="error"}}if(!a||a==="ignore"){return false}else if(a===true||a==="error"){return true}else if(a==="warn"){typeof console!=="undefined"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]"));return false}else{typeof console!=="undefined"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+t+" ["+e+"]"));return false}}isTrusted(e){if(e.url&&!e.protocol){var t=g.protocolFromUrl(e.url);if(t==null){return false}e.protocol=t}var r=typeof this.trust==="function"?this.trust(e):this.trust;return Boolean(r)}}class w{constructor(e,t,r){this.id=void 0;this.size=void 0;this.cramped=void 0;this.id=e;this.size=t;this.cramped=r}sup(){return N[q[this.id]]}sub(){return N[I[this.id]]}fracNum(){return N[R[this.id]]}fracDen(){return N[H[this.id]]}cramp(){return N[O[this.id]]}text(){return N[E[this.id]]}isTight(){return this.size>=2}}var k=0;var S=1;var M=2;var z=3;var A=4;var T=5;var B=6;var C=7;var N=[new w(k,0,false),new w(S,0,true),new w(M,1,false),new w(z,1,true),new w(A,2,false),new w(T,2,true),new w(B,3,false),new w(C,3,true)];var q=[A,T,A,T,B,C,B,C];var I=[T,T,T,T,C,C,C,C];var R=[M,z,A,T,B,C,B,C];var H=[z,z,T,T,C,C,C,C];var O=[S,S,z,z,T,T,C,C];var E=[k,S,M,z,M,z,M,z];var L={DISPLAY:N[k],TEXT:N[M],SCRIPT:N[A],SCRIPTSCRIPT:N[B]};var D=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function V(e){for(var t=0;t=i[0]&&e<=i[1]){return r.name}}}return null}var P=[];D.forEach((e=>e.blocks.forEach((e=>P.push(...e)))));function F(e){for(var t=0;t=P[t]&&e<=P[t+1]){return true}}return false}var G=80;var U=function e(t,r){return"M95,"+(622+t+r)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+t/2.075+" -"+t+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+t)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+t)+" "+r+"h400000v"+(40+t)+"h-400000z"};var Y=function e(t,r){return"M263,"+(601+t+r)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+t/2.084+" -"+t+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+t)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+t)+" "+r+"h400000v"+(40+t)+"h-400000z"};var X=function e(t,r){return"M983 "+(10+t+r)+"\nl"+t/3.13+" -"+t+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+t)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+t)+" "+r+"h400000v"+(40+t)+"h-400000z"};var W=function e(t,r){return"M424,"+(2398+t+r)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+t/4.223+" -"+t+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+t)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+t)+" "+r+"\nh400000v"+(40+t)+"h-400000z"};var _=function e(t,r){return"M473,"+(2713+t+r)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+t/5.298+" -"+t+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+t)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+t)+" "+r+"h400000v"+(40+t)+"H1017.7z"};var j=function e(t){var r=t/2;return"M400000 "+t+" H0 L"+r+" 0 l65 45 L145 "+(t-80)+" H400000z"};var $=function e(t,r,a){var i=a-54-r-t;return"M702 "+(t+r)+"H400000"+(40+t)+"\nH742v"+i+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+r+"H400000v"+(40+t)+"H742z"};var Z=function e(t,r,a){r=1e3*r;var i="";switch(t){case"sqrtMain":i=U(r,G);break;case"sqrtSize1":i=Y(r,G);break;case"sqrtSize2":i=X(r,G);break;case"sqrtSize3":i=W(r,G);break;case"sqrtSize4":i=_(r,G);break;case"sqrtTall":i=$(r,G,a)}return i};var K=function e(t,r){switch(t){case"⎜":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"∣":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"∥":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"⎟":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"⎢":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"⎥":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"⎪":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"⏐":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"‖":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}};var J={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"};var Q=function e(t,r){switch(t){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+" v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v"+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+" v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v"+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-r+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-r+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+r+" v585 h43z\nM367 15 v585 v"+r+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-r+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v"+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+" v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v"+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+" v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v"+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+" v602 h84z\nM403 1759 V0 H319 V1759 v"+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+" v602 h84z\nM347 1759 V0 h-84 V1759 v"+r+" v602 h84z";case"lparen":return"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0,"+(r+84)+"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-"+(r+92)+"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";case"rparen":return"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,"+(r+9)+"\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-"+(r+144)+"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";default:throw new Error("Unknown stretchy delimiter.")}};class ee{constructor(e){this.children=void 0;this.classes=void 0;this.height=void 0;this.depth=void 0;this.maxFontSize=void 0;this.style=void 0;this.children=e;this.classes=[];this.height=0;this.depth=0;this.maxFontSize=0;this.style={}}hasClass(e){return g.contains(this.classes,e)}toNode(){var e=document.createDocumentFragment();for(var t=0;te.toText();return this.children.map(e).join("")}}var te={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}};var re={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]};var ae={"Å":"A","Ð":"D","Þ":"o","å":"a","ð":"d","þ":"o","А":"A","Б":"B","В":"B","Г":"F","Д":"A","Е":"E","Ж":"K","З":"3","И":"N","Й":"N","К":"K","Л":"N","М":"M","Н":"H","О":"O","П":"N","Р":"P","С":"C","Т":"T","У":"y","Ф":"O","Х":"X","Ц":"U","Ч":"h","Ш":"W","Щ":"W","Ъ":"B","Ы":"X","Ь":"B","Э":"3","Ю":"X","Я":"R","а":"a","б":"b","в":"a","г":"r","д":"y","е":"e","ж":"m","з":"e","и":"n","й":"n","к":"n","л":"n","м":"m","н":"n","о":"o","п":"n","р":"p","с":"c","т":"o","у":"y","ф":"b","х":"x","ц":"n","ч":"n","ш":"w","щ":"w","ъ":"a","ы":"m","ь":"a","э":"e","ю":"m","я":"r"};function ie(e,t){te[e]=t}function ne(e,t,r){if(!te[t]){throw new Error("Font metrics not found for font: "+t+".")}var a=e.charCodeAt(0);var i=te[t][a];if(!i&&e[0]in ae){a=ae[e[0]].charCodeAt(0);i=te[t][a]}if(!i&&r==="text"){if(F(a)){i=te[t][77]}}if(i){return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}}var se={};function oe(e){var t;if(e>=5){t=0}else if(e>=3){t=1}else{t=2}if(!se[t]){var r=se[t]={cssEmPerMu:re.quad[t]/18};for(var a in re){if(re.hasOwnProperty(a)){r[a]=re[a][t]}}}return se[t]}var le=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]];var he=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488];var ue=function e(t,r){return r.size<2?t:le[t-1][r.size-1]};class me{constructor(e){this.style=void 0;this.color=void 0;this.size=void 0;this.textSize=void 0;this.phantom=void 0;this.font=void 0;this.fontFamily=void 0;this.fontWeight=void 0;this.fontShape=void 0;this.sizeMultiplier=void 0;this.maxSize=void 0;this.minRuleThickness=void 0;this._fontMetrics=void 0;this.style=e.style;this.color=e.color;this.size=e.size||me.BASESIZE;this.textSize=e.textSize||this.size;this.phantom=!!e.phantom;this.font=e.font||"";this.fontFamily=e.fontFamily||"";this.fontWeight=e.fontWeight||"";this.fontShape=e.fontShape||"";this.sizeMultiplier=he[this.size-1];this.maxSize=e.maxSize;this.minRuleThickness=e.minRuleThickness;this._fontMetrics=undefined}extend(e){var t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var r in e){if(e.hasOwnProperty(r)){t[r]=e[r]}}return new me(t)}havingStyle(e){if(this.style===e){return this}else{return this.extend({style:e,size:ue(this.textSize,e)})}}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){if(this.size===e&&this.textSize===e){return this}else{return this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:he[e-1]})}}havingBaseStyle(e){e=e||this.style.text();var t=ue(me.BASESIZE,e);if(this.size===t&&this.textSize===me.BASESIZE&&this.style===e){return this}else{return this.extend({style:e,size:t})}}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:true})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){if(e.size!==this.size){return["sizing","reset-size"+e.size,"size"+this.size]}else{return[]}}baseSizingClasses(){if(this.size!==me.BASESIZE){return["sizing","reset-size"+this.size,"size"+me.BASESIZE]}else{return[]}}fontMetrics(){if(!this._fontMetrics){this._fontMetrics=oe(this.size)}return this._fontMetrics}getColor(){if(this.phantom){return"transparent"}else{return this.color}}}me.BASESIZE=6;var ce={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800};var pe={ex:true,em:true,mu:true};var de=function e(t){if(typeof t!=="string"){t=t.unit}return t in ce||t in pe||t==="ex"};var fe=function e(t,r){var a;if(t.unit in ce){a=ce[t.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier}else if(t.unit==="mu"){a=r.fontMetrics().cssEmPerMu}else{var i;if(r.style.isTight()){i=r.havingStyle(r.style.text())}else{i=r}if(t.unit==="ex"){a=i.fontMetrics().xHeight}else if(t.unit==="em"){a=i.fontMetrics().quad}else{throw new n("Invalid unit: '"+t.unit+"'")}if(i!==r){a*=i.sizeMultiplier/r.sizeMultiplier}}return Math.min(t.number*a,r.maxSize)};var ve=function e(t){return+t.toFixed(4)+"em"};var ge=function e(t){return t.filter((e=>e)).join(" ")};var be=function e(t,r,a){this.classes=t||[];this.attributes={};this.height=0;this.depth=0;this.maxFontSize=0;this.style=a||{};if(r){if(r.style.isTight()){this.classes.push("mtight")}var i=r.getColor();if(i){this.style.color=i}}};var ye=function e(t){var r=document.createElement(t);r.className=ge(this.classes);for(var a in this.style){if(this.style.hasOwnProperty(a)){r.style[a]=this.style[a]}}for(var i in this.attributes){if(this.attributes.hasOwnProperty(i)){r.setAttribute(i,this.attributes[i])}}for(var n=0;n/=\x00-\x1f]/;var we=function e(t){var r="<"+t;if(this.classes.length){r+=' class="'+g.escape(ge(this.classes))+'"'}var a="";for(var i in this.style){if(this.style.hasOwnProperty(i)){a+=g.hyphenate(i)+":"+this.style[i]+";"}}if(a){r+=' style="'+g.escape(a)+'"'}for(var s in this.attributes){if(this.attributes.hasOwnProperty(s)){if(xe.test(s)){throw new n("Invalid attribute name '"+s+"'")}r+=" "+s+'="'+g.escape(this.attributes[s])+'"'}}r+=">";for(var o=0;o";return r};class ke{constructor(e,t,r,a){this.children=void 0;this.attributes=void 0;this.classes=void 0;this.height=void 0;this.depth=void 0;this.width=void 0;this.maxFontSize=void 0;this.style=void 0;be.call(this,e,r,a);this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return g.contains(this.classes,e)}toNode(){return ye.call(this,"span")}toMarkup(){return we.call(this,"span")}}class Se{constructor(e,t,r,a){this.children=void 0;this.attributes=void 0;this.classes=void 0;this.height=void 0;this.depth=void 0;this.maxFontSize=void 0;this.style=void 0;be.call(this,t,a);this.children=r||[];this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return g.contains(this.classes,e)}toNode(){return ye.call(this,"a")}toMarkup(){return we.call(this,"a")}}class Me{constructor(e,t,r){this.src=void 0;this.alt=void 0;this.classes=void 0;this.height=void 0;this.depth=void 0;this.maxFontSize=void 0;this.style=void 0;this.alt=t;this.src=e;this.classes=["mord"];this.style=r}hasClass(e){return g.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src;e.alt=this.alt;e.className="mord";for(var t in this.style){if(this.style.hasOwnProperty(t)){e.style[t]=this.style[t]}}return e}toMarkup(){var e=''+g.escape(this.alt)+'0){t=document.createElement("span");t.style.marginRight=ve(this.italic)}if(this.classes.length>0){t=t||document.createElement("span");t.className=ge(this.classes)}for(var r in this.style){if(this.style.hasOwnProperty(r)){t=t||document.createElement("span");t.style[r]=this.style[r]}}if(t){t.appendChild(e);return t}else{return e}}toMarkup(){var e=false;var t="0){r+="margin-right:"+this.italic+"em;"}for(var a in this.style){if(this.style.hasOwnProperty(a)){r+=g.hyphenate(a)+":"+this.style[a]+";"}}if(r){e=true;t+=' style="'+g.escape(r)+'"'}var i=g.escape(this.text);if(e){t+=">";t+=i;t+="";return t}else{return i}}}class Te{constructor(e,t){this.children=void 0;this.attributes=void 0;this.children=e||[];this.attributes=t||{}}toNode(){var e="http://www.w3.org/2000/svg";var t=document.createElementNS(e,"svg");for(var r in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,r)){t.setAttribute(r,this.attributes[r])}}for(var a=0;a";return e}}class Be{constructor(e,t){this.pathName=void 0;this.alternate=void 0;this.pathName=e;this.alternate=t}toNode(){var e="http://www.w3.org/2000/svg";var t=document.createElementNS(e,"path");if(this.alternate){t.setAttribute("d",this.alternate)}else{t.setAttribute("d",J[this.pathName])}return t}toMarkup(){if(this.alternate){return''}else{return''}}}class Ce{constructor(e){this.attributes=void 0;this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg";var t=document.createElementNS(e,"line");for(var r in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,r)){t.setAttribute(r,this.attributes[r])}}return t}toMarkup(){var e=" but got "+String(e)+".")}}var Ie={bin:1,close:1,inner:1,open:1,punct:1,rel:1};var Re={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1};var He={math:{},text:{}};function Oe(e,t,r,a,i,n){He[e][i]={font:t,group:r,replace:a};if(n&&a){He[e][a]=He[e][i]}}var Ee="math";var Le="text";var De="main";var Ve="ams";var Pe="accent-token";var Fe="bin";var Ge="close";var Ue="inner";var Ye="mathord";var Xe="op-token";var We="open";var _e="punct";var je="rel";var $e="spacing";var Ze="textord";Oe(Ee,De,je,"≡","\\equiv",true);Oe(Ee,De,je,"≺","\\prec",true);Oe(Ee,De,je,"≻","\\succ",true);Oe(Ee,De,je,"∼","\\sim",true);Oe(Ee,De,je,"⊥","\\perp");Oe(Ee,De,je,"⪯","\\preceq",true);Oe(Ee,De,je,"⪰","\\succeq",true);Oe(Ee,De,je,"≃","\\simeq",true);Oe(Ee,De,je,"∣","\\mid",true);Oe(Ee,De,je,"≪","\\ll",true);Oe(Ee,De,je,"≫","\\gg",true);Oe(Ee,De,je,"≍","\\asymp",true);Oe(Ee,De,je,"∥","\\parallel");Oe(Ee,De,je,"⋈","\\bowtie",true);Oe(Ee,De,je,"⌣","\\smile",true);Oe(Ee,De,je,"⊑","\\sqsubseteq",true);Oe(Ee,De,je,"⊒","\\sqsupseteq",true);Oe(Ee,De,je,"≐","\\doteq",true);Oe(Ee,De,je,"⌢","\\frown",true);Oe(Ee,De,je,"∋","\\ni",true);Oe(Ee,De,je,"∝","\\propto",true);Oe(Ee,De,je,"⊢","\\vdash",true);Oe(Ee,De,je,"⊣","\\dashv",true);Oe(Ee,De,je,"∋","\\owns");Oe(Ee,De,_e,".","\\ldotp");Oe(Ee,De,_e,"⋅","\\cdotp");Oe(Ee,De,Ze,"#","\\#");Oe(Le,De,Ze,"#","\\#");Oe(Ee,De,Ze,"&","\\&");Oe(Le,De,Ze,"&","\\&");Oe(Ee,De,Ze,"ℵ","\\aleph",true);Oe(Ee,De,Ze,"∀","\\forall",true);Oe(Ee,De,Ze,"ℏ","\\hbar",true);Oe(Ee,De,Ze,"∃","\\exists",true);Oe(Ee,De,Ze,"∇","\\nabla",true);Oe(Ee,De,Ze,"♭","\\flat",true);Oe(Ee,De,Ze,"ℓ","\\ell",true);Oe(Ee,De,Ze,"♮","\\natural",true);Oe(Ee,De,Ze,"♣","\\clubsuit",true);Oe(Ee,De,Ze,"℘","\\wp",true);Oe(Ee,De,Ze,"♯","\\sharp",true);Oe(Ee,De,Ze,"♢","\\diamondsuit",true);Oe(Ee,De,Ze,"ℜ","\\Re",true);Oe(Ee,De,Ze,"♡","\\heartsuit",true);Oe(Ee,De,Ze,"ℑ","\\Im",true);Oe(Ee,De,Ze,"♠","\\spadesuit",true);Oe(Ee,De,Ze,"§","\\S",true);Oe(Le,De,Ze,"§","\\S");Oe(Ee,De,Ze,"¶","\\P",true);Oe(Le,De,Ze,"¶","\\P");Oe(Ee,De,Ze,"†","\\dag");Oe(Le,De,Ze,"†","\\dag");Oe(Le,De,Ze,"†","\\textdagger");Oe(Ee,De,Ze,"‡","\\ddag");Oe(Le,De,Ze,"‡","\\ddag");Oe(Le,De,Ze,"‡","\\textdaggerdbl");Oe(Ee,De,Ge,"⎱","\\rmoustache",true);Oe(Ee,De,We,"⎰","\\lmoustache",true);Oe(Ee,De,Ge,"⟯","\\rgroup",true);Oe(Ee,De,We,"⟮","\\lgroup",true);Oe(Ee,De,Fe,"∓","\\mp",true);Oe(Ee,De,Fe,"⊖","\\ominus",true);Oe(Ee,De,Fe,"⊎","\\uplus",true);Oe(Ee,De,Fe,"⊓","\\sqcap",true);Oe(Ee,De,Fe,"∗","\\ast");Oe(Ee,De,Fe,"⊔","\\sqcup",true);Oe(Ee,De,Fe,"◯","\\bigcirc",true);Oe(Ee,De,Fe,"∙","\\bullet",true);Oe(Ee,De,Fe,"‡","\\ddagger");Oe(Ee,De,Fe,"≀","\\wr",true);Oe(Ee,De,Fe,"⨿","\\amalg");Oe(Ee,De,Fe,"&","\\And");Oe(Ee,De,je,"⟵","\\longleftarrow",true);Oe(Ee,De,je,"⇐","\\Leftarrow",true);Oe(Ee,De,je,"⟸","\\Longleftarrow",true);Oe(Ee,De,je,"⟶","\\longrightarrow",true);Oe(Ee,De,je,"⇒","\\Rightarrow",true);Oe(Ee,De,je,"⟹","\\Longrightarrow",true);Oe(Ee,De,je,"↔","\\leftrightarrow",true);Oe(Ee,De,je,"⟷","\\longleftrightarrow",true);Oe(Ee,De,je,"⇔","\\Leftrightarrow",true);Oe(Ee,De,je,"⟺","\\Longleftrightarrow",true);Oe(Ee,De,je,"↦","\\mapsto",true);Oe(Ee,De,je,"⟼","\\longmapsto",true);Oe(Ee,De,je,"↗","\\nearrow",true);Oe(Ee,De,je,"↩","\\hookleftarrow",true);Oe(Ee,De,je,"↪","\\hookrightarrow",true);Oe(Ee,De,je,"↘","\\searrow",true);Oe(Ee,De,je,"↼","\\leftharpoonup",true);Oe(Ee,De,je,"⇀","\\rightharpoonup",true);Oe(Ee,De,je,"↙","\\swarrow",true);Oe(Ee,De,je,"↽","\\leftharpoondown",true);Oe(Ee,De,je,"⇁","\\rightharpoondown",true);Oe(Ee,De,je,"↖","\\nwarrow",true);Oe(Ee,De,je,"⇌","\\rightleftharpoons",true);Oe(Ee,Ve,je,"≮","\\nless",true);Oe(Ee,Ve,je,"","\\@nleqslant");Oe(Ee,Ve,je,"","\\@nleqq");Oe(Ee,Ve,je,"⪇","\\lneq",true);Oe(Ee,Ve,je,"≨","\\lneqq",true);Oe(Ee,Ve,je,"","\\@lvertneqq");Oe(Ee,Ve,je,"⋦","\\lnsim",true);Oe(Ee,Ve,je,"⪉","\\lnapprox",true);Oe(Ee,Ve,je,"⊀","\\nprec",true);Oe(Ee,Ve,je,"⋠","\\npreceq",true);Oe(Ee,Ve,je,"⋨","\\precnsim",true);Oe(Ee,Ve,je,"⪹","\\precnapprox",true);Oe(Ee,Ve,je,"≁","\\nsim",true);Oe(Ee,Ve,je,"","\\@nshortmid");Oe(Ee,Ve,je,"∤","\\nmid",true);Oe(Ee,Ve,je,"⊬","\\nvdash",true);Oe(Ee,Ve,je,"⊭","\\nvDash",true);Oe(Ee,Ve,je,"⋪","\\ntriangleleft");Oe(Ee,Ve,je,"⋬","\\ntrianglelefteq",true);Oe(Ee,Ve,je,"⊊","\\subsetneq",true);Oe(Ee,Ve,je,"","\\@varsubsetneq");Oe(Ee,Ve,je,"⫋","\\subsetneqq",true);Oe(Ee,Ve,je,"","\\@varsubsetneqq");Oe(Ee,Ve,je,"≯","\\ngtr",true);Oe(Ee,Ve,je,"","\\@ngeqslant");Oe(Ee,Ve,je,"","\\@ngeqq");Oe(Ee,Ve,je,"⪈","\\gneq",true);Oe(Ee,Ve,je,"≩","\\gneqq",true);Oe(Ee,Ve,je,"","\\@gvertneqq");Oe(Ee,Ve,je,"⋧","\\gnsim",true);Oe(Ee,Ve,je,"⪊","\\gnapprox",true);Oe(Ee,Ve,je,"⊁","\\nsucc",true);Oe(Ee,Ve,je,"⋡","\\nsucceq",true);Oe(Ee,Ve,je,"⋩","\\succnsim",true);Oe(Ee,Ve,je,"⪺","\\succnapprox",true);Oe(Ee,Ve,je,"≆","\\ncong",true);Oe(Ee,Ve,je,"","\\@nshortparallel");Oe(Ee,Ve,je,"∦","\\nparallel",true);Oe(Ee,Ve,je,"⊯","\\nVDash",true);Oe(Ee,Ve,je,"⋫","\\ntriangleright");Oe(Ee,Ve,je,"⋭","\\ntrianglerighteq",true);Oe(Ee,Ve,je,"","\\@nsupseteqq");Oe(Ee,Ve,je,"⊋","\\supsetneq",true);Oe(Ee,Ve,je,"","\\@varsupsetneq");Oe(Ee,Ve,je,"⫌","\\supsetneqq",true);Oe(Ee,Ve,je,"","\\@varsupsetneqq");Oe(Ee,Ve,je,"⊮","\\nVdash",true);Oe(Ee,Ve,je,"⪵","\\precneqq",true);Oe(Ee,Ve,je,"⪶","\\succneqq",true);Oe(Ee,Ve,je,"","\\@nsubseteqq");Oe(Ee,Ve,Fe,"⊴","\\unlhd");Oe(Ee,Ve,Fe,"⊵","\\unrhd");Oe(Ee,Ve,je,"↚","\\nleftarrow",true);Oe(Ee,Ve,je,"↛","\\nrightarrow",true);Oe(Ee,Ve,je,"⇍","\\nLeftarrow",true);Oe(Ee,Ve,je,"⇏","\\nRightarrow",true);Oe(Ee,Ve,je,"↮","\\nleftrightarrow",true);Oe(Ee,Ve,je,"⇎","\\nLeftrightarrow",true);Oe(Ee,Ve,je,"△","\\vartriangle");Oe(Ee,Ve,Ze,"ℏ","\\hslash");Oe(Ee,Ve,Ze,"▽","\\triangledown");Oe(Ee,Ve,Ze,"◊","\\lozenge");Oe(Ee,Ve,Ze,"Ⓢ","\\circledS");Oe(Ee,Ve,Ze,"®","\\circledR");Oe(Le,Ve,Ze,"®","\\circledR");Oe(Ee,Ve,Ze,"∡","\\measuredangle",true);Oe(Ee,Ve,Ze,"∄","\\nexists");Oe(Ee,Ve,Ze,"℧","\\mho");Oe(Ee,Ve,Ze,"Ⅎ","\\Finv",true);Oe(Ee,Ve,Ze,"⅁","\\Game",true);Oe(Ee,Ve,Ze,"‵","\\backprime");Oe(Ee,Ve,Ze,"▲","\\blacktriangle");Oe(Ee,Ve,Ze,"▼","\\blacktriangledown");Oe(Ee,Ve,Ze,"■","\\blacksquare");Oe(Ee,Ve,Ze,"⧫","\\blacklozenge");Oe(Ee,Ve,Ze,"★","\\bigstar");Oe(Ee,Ve,Ze,"∢","\\sphericalangle",true);Oe(Ee,Ve,Ze,"∁","\\complement",true);Oe(Ee,Ve,Ze,"ð","\\eth",true);Oe(Le,De,Ze,"ð","ð");Oe(Ee,Ve,Ze,"╱","\\diagup");Oe(Ee,Ve,Ze,"╲","\\diagdown");Oe(Ee,Ve,Ze,"□","\\square");Oe(Ee,Ve,Ze,"□","\\Box");Oe(Ee,Ve,Ze,"◊","\\Diamond");Oe(Ee,Ve,Ze,"¥","\\yen",true);Oe(Le,Ve,Ze,"¥","\\yen",true);Oe(Ee,Ve,Ze,"✓","\\checkmark",true);Oe(Le,Ve,Ze,"✓","\\checkmark");Oe(Ee,Ve,Ze,"ℶ","\\beth",true);Oe(Ee,Ve,Ze,"ℸ","\\daleth",true);Oe(Ee,Ve,Ze,"ℷ","\\gimel",true);Oe(Ee,Ve,Ze,"ϝ","\\digamma",true);Oe(Ee,Ve,Ze,"ϰ","\\varkappa");Oe(Ee,Ve,We,"┌","\\@ulcorner",true);Oe(Ee,Ve,Ge,"┐","\\@urcorner",true);Oe(Ee,Ve,We,"└","\\@llcorner",true);Oe(Ee,Ve,Ge,"┘","\\@lrcorner",true);Oe(Ee,Ve,je,"≦","\\leqq",true);Oe(Ee,Ve,je,"⩽","\\leqslant",true);Oe(Ee,Ve,je,"⪕","\\eqslantless",true);Oe(Ee,Ve,je,"≲","\\lesssim",true);Oe(Ee,Ve,je,"⪅","\\lessapprox",true);Oe(Ee,Ve,je,"≊","\\approxeq",true);Oe(Ee,Ve,Fe,"⋖","\\lessdot");Oe(Ee,Ve,je,"⋘","\\lll",true);Oe(Ee,Ve,je,"≶","\\lessgtr",true);Oe(Ee,Ve,je,"⋚","\\lesseqgtr",true);Oe(Ee,Ve,je,"⪋","\\lesseqqgtr",true);Oe(Ee,Ve,je,"≑","\\doteqdot");Oe(Ee,Ve,je,"≓","\\risingdotseq",true);Oe(Ee,Ve,je,"≒","\\fallingdotseq",true);Oe(Ee,Ve,je,"∽","\\backsim",true);Oe(Ee,Ve,je,"⋍","\\backsimeq",true);Oe(Ee,Ve,je,"⫅","\\subseteqq",true);Oe(Ee,Ve,je,"⋐","\\Subset",true);Oe(Ee,Ve,je,"⊏","\\sqsubset",true);Oe(Ee,Ve,je,"≼","\\preccurlyeq",true);Oe(Ee,Ve,je,"⋞","\\curlyeqprec",true);Oe(Ee,Ve,je,"≾","\\precsim",true);Oe(Ee,Ve,je,"⪷","\\precapprox",true);Oe(Ee,Ve,je,"⊲","\\vartriangleleft");Oe(Ee,Ve,je,"⊴","\\trianglelefteq");Oe(Ee,Ve,je,"⊨","\\vDash",true);Oe(Ee,Ve,je,"⊪","\\Vvdash",true);Oe(Ee,Ve,je,"⌣","\\smallsmile");Oe(Ee,Ve,je,"⌢","\\smallfrown");Oe(Ee,Ve,je,"≏","\\bumpeq",true);Oe(Ee,Ve,je,"≎","\\Bumpeq",true);Oe(Ee,Ve,je,"≧","\\geqq",true);Oe(Ee,Ve,je,"⩾","\\geqslant",true);Oe(Ee,Ve,je,"⪖","\\eqslantgtr",true);Oe(Ee,Ve,je,"≳","\\gtrsim",true);Oe(Ee,Ve,je,"⪆","\\gtrapprox",true);Oe(Ee,Ve,Fe,"⋗","\\gtrdot");Oe(Ee,Ve,je,"⋙","\\ggg",true);Oe(Ee,Ve,je,"≷","\\gtrless",true);Oe(Ee,Ve,je,"⋛","\\gtreqless",true);Oe(Ee,Ve,je,"⪌","\\gtreqqless",true);Oe(Ee,Ve,je,"≖","\\eqcirc",true);Oe(Ee,Ve,je,"≗","\\circeq",true);Oe(Ee,Ve,je,"≜","\\triangleq",true);Oe(Ee,Ve,je,"∼","\\thicksim");Oe(Ee,Ve,je,"≈","\\thickapprox");Oe(Ee,Ve,je,"⫆","\\supseteqq",true);Oe(Ee,Ve,je,"⋑","\\Supset",true);Oe(Ee,Ve,je,"⊐","\\sqsupset",true);Oe(Ee,Ve,je,"≽","\\succcurlyeq",true);Oe(Ee,Ve,je,"⋟","\\curlyeqsucc",true);Oe(Ee,Ve,je,"≿","\\succsim",true);Oe(Ee,Ve,je,"⪸","\\succapprox",true);Oe(Ee,Ve,je,"⊳","\\vartriangleright");Oe(Ee,Ve,je,"⊵","\\trianglerighteq");Oe(Ee,Ve,je,"⊩","\\Vdash",true);Oe(Ee,Ve,je,"∣","\\shortmid");Oe(Ee,Ve,je,"∥","\\shortparallel");Oe(Ee,Ve,je,"≬","\\between",true);Oe(Ee,Ve,je,"⋔","\\pitchfork",true);Oe(Ee,Ve,je,"∝","\\varpropto");Oe(Ee,Ve,je,"◀","\\blacktriangleleft");Oe(Ee,Ve,je,"∴","\\therefore",true);Oe(Ee,Ve,je,"∍","\\backepsilon");Oe(Ee,Ve,je,"▶","\\blacktriangleright");Oe(Ee,Ve,je,"∵","\\because",true);Oe(Ee,Ve,je,"⋘","\\llless");Oe(Ee,Ve,je,"⋙","\\gggtr");Oe(Ee,Ve,Fe,"⊲","\\lhd");Oe(Ee,Ve,Fe,"⊳","\\rhd");Oe(Ee,Ve,je,"≂","\\eqsim",true);Oe(Ee,De,je,"⋈","\\Join");Oe(Ee,Ve,je,"≑","\\Doteq",true);Oe(Ee,Ve,Fe,"∔","\\dotplus",true);Oe(Ee,Ve,Fe,"∖","\\smallsetminus");Oe(Ee,Ve,Fe,"⋒","\\Cap",true);Oe(Ee,Ve,Fe,"⋓","\\Cup",true);Oe(Ee,Ve,Fe,"⩞","\\doublebarwedge",true);Oe(Ee,Ve,Fe,"⊟","\\boxminus",true);Oe(Ee,Ve,Fe,"⊞","\\boxplus",true);Oe(Ee,Ve,Fe,"⋇","\\divideontimes",true);Oe(Ee,Ve,Fe,"⋉","\\ltimes",true);Oe(Ee,Ve,Fe,"⋊","\\rtimes",true);Oe(Ee,Ve,Fe,"⋋","\\leftthreetimes",true);Oe(Ee,Ve,Fe,"⋌","\\rightthreetimes",true);Oe(Ee,Ve,Fe,"⋏","\\curlywedge",true);Oe(Ee,Ve,Fe,"⋎","\\curlyvee",true);Oe(Ee,Ve,Fe,"⊝","\\circleddash",true);Oe(Ee,Ve,Fe,"⊛","\\circledast",true);Oe(Ee,Ve,Fe,"⋅","\\centerdot");Oe(Ee,Ve,Fe,"⊺","\\intercal",true);Oe(Ee,Ve,Fe,"⋒","\\doublecap");Oe(Ee,Ve,Fe,"⋓","\\doublecup");Oe(Ee,Ve,Fe,"⊠","\\boxtimes",true);Oe(Ee,Ve,je,"⇢","\\dashrightarrow",true);Oe(Ee,Ve,je,"⇠","\\dashleftarrow",true);Oe(Ee,Ve,je,"⇇","\\leftleftarrows",true);Oe(Ee,Ve,je,"⇆","\\leftrightarrows",true);Oe(Ee,Ve,je,"⇚","\\Lleftarrow",true);Oe(Ee,Ve,je,"↞","\\twoheadleftarrow",true);Oe(Ee,Ve,je,"↢","\\leftarrowtail",true);Oe(Ee,Ve,je,"↫","\\looparrowleft",true);Oe(Ee,Ve,je,"⇋","\\leftrightharpoons",true);Oe(Ee,Ve,je,"↶","\\curvearrowleft",true);Oe(Ee,Ve,je,"↺","\\circlearrowleft",true);Oe(Ee,Ve,je,"↰","\\Lsh",true);Oe(Ee,Ve,je,"⇈","\\upuparrows",true);Oe(Ee,Ve,je,"↿","\\upharpoonleft",true);Oe(Ee,Ve,je,"⇃","\\downharpoonleft",true);Oe(Ee,De,je,"⊶","\\origof",true);Oe(Ee,De,je,"⊷","\\imageof",true);Oe(Ee,Ve,je,"⊸","\\multimap",true);Oe(Ee,Ve,je,"↭","\\leftrightsquigarrow",true);Oe(Ee,Ve,je,"⇉","\\rightrightarrows",true);Oe(Ee,Ve,je,"⇄","\\rightleftarrows",true);Oe(Ee,Ve,je,"↠","\\twoheadrightarrow",true);Oe(Ee,Ve,je,"↣","\\rightarrowtail",true);Oe(Ee,Ve,je,"↬","\\looparrowright",true);Oe(Ee,Ve,je,"↷","\\curvearrowright",true);Oe(Ee,Ve,je,"↻","\\circlearrowright",true);Oe(Ee,Ve,je,"↱","\\Rsh",true);Oe(Ee,Ve,je,"⇊","\\downdownarrows",true);Oe(Ee,Ve,je,"↾","\\upharpoonright",true);Oe(Ee,Ve,je,"⇂","\\downharpoonright",true);Oe(Ee,Ve,je,"⇝","\\rightsquigarrow",true);Oe(Ee,Ve,je,"⇝","\\leadsto");Oe(Ee,Ve,je,"⇛","\\Rrightarrow",true);Oe(Ee,Ve,je,"↾","\\restriction");Oe(Ee,De,Ze,"‘","`");Oe(Ee,De,Ze,"$","\\$");Oe(Le,De,Ze,"$","\\$");Oe(Le,De,Ze,"$","\\textdollar");Oe(Ee,De,Ze,"%","\\%");Oe(Le,De,Ze,"%","\\%");Oe(Ee,De,Ze,"_","\\_");Oe(Le,De,Ze,"_","\\_");Oe(Le,De,Ze,"_","\\textunderscore");Oe(Ee,De,Ze,"∠","\\angle",true);Oe(Ee,De,Ze,"∞","\\infty",true);Oe(Ee,De,Ze,"′","\\prime");Oe(Ee,De,Ze,"△","\\triangle");Oe(Ee,De,Ze,"Γ","\\Gamma",true);Oe(Ee,De,Ze,"Δ","\\Delta",true);Oe(Ee,De,Ze,"Θ","\\Theta",true);Oe(Ee,De,Ze,"Λ","\\Lambda",true);Oe(Ee,De,Ze,"Ξ","\\Xi",true);Oe(Ee,De,Ze,"Π","\\Pi",true);Oe(Ee,De,Ze,"Σ","\\Sigma",true);Oe(Ee,De,Ze,"Υ","\\Upsilon",true);Oe(Ee,De,Ze,"Φ","\\Phi",true);Oe(Ee,De,Ze,"Ψ","\\Psi",true);Oe(Ee,De,Ze,"Ω","\\Omega",true);Oe(Ee,De,Ze,"A","Α");Oe(Ee,De,Ze,"B","Β");Oe(Ee,De,Ze,"E","Ε");Oe(Ee,De,Ze,"Z","Ζ");Oe(Ee,De,Ze,"H","Η");Oe(Ee,De,Ze,"I","Ι");Oe(Ee,De,Ze,"K","Κ");Oe(Ee,De,Ze,"M","Μ");Oe(Ee,De,Ze,"N","Ν");Oe(Ee,De,Ze,"O","Ο");Oe(Ee,De,Ze,"P","Ρ");Oe(Ee,De,Ze,"T","Τ");Oe(Ee,De,Ze,"X","Χ");Oe(Ee,De,Ze,"¬","\\neg",true);Oe(Ee,De,Ze,"¬","\\lnot");Oe(Ee,De,Ze,"⊤","\\top");Oe(Ee,De,Ze,"⊥","\\bot");Oe(Ee,De,Ze,"∅","\\emptyset");Oe(Ee,Ve,Ze,"∅","\\varnothing");Oe(Ee,De,Ye,"α","\\alpha",true);Oe(Ee,De,Ye,"β","\\beta",true);Oe(Ee,De,Ye,"γ","\\gamma",true);Oe(Ee,De,Ye,"δ","\\delta",true);Oe(Ee,De,Ye,"ϵ","\\epsilon",true);Oe(Ee,De,Ye,"ζ","\\zeta",true);Oe(Ee,De,Ye,"η","\\eta",true);Oe(Ee,De,Ye,"θ","\\theta",true);Oe(Ee,De,Ye,"ι","\\iota",true);Oe(Ee,De,Ye,"κ","\\kappa",true);Oe(Ee,De,Ye,"λ","\\lambda",true);Oe(Ee,De,Ye,"μ","\\mu",true);Oe(Ee,De,Ye,"ν","\\nu",true);Oe(Ee,De,Ye,"ξ","\\xi",true);Oe(Ee,De,Ye,"ο","\\omicron",true);Oe(Ee,De,Ye,"π","\\pi",true);Oe(Ee,De,Ye,"ρ","\\rho",true);Oe(Ee,De,Ye,"σ","\\sigma",true);Oe(Ee,De,Ye,"τ","\\tau",true);Oe(Ee,De,Ye,"υ","\\upsilon",true);Oe(Ee,De,Ye,"ϕ","\\phi",true);Oe(Ee,De,Ye,"χ","\\chi",true);Oe(Ee,De,Ye,"ψ","\\psi",true);Oe(Ee,De,Ye,"ω","\\omega",true);Oe(Ee,De,Ye,"ε","\\varepsilon",true);Oe(Ee,De,Ye,"ϑ","\\vartheta",true);Oe(Ee,De,Ye,"ϖ","\\varpi",true);Oe(Ee,De,Ye,"ϱ","\\varrho",true);Oe(Ee,De,Ye,"ς","\\varsigma",true);Oe(Ee,De,Ye,"φ","\\varphi",true);Oe(Ee,De,Fe,"∗","*",true);Oe(Ee,De,Fe,"+","+");Oe(Ee,De,Fe,"−","-",true);Oe(Ee,De,Fe,"⋅","\\cdot",true);Oe(Ee,De,Fe,"∘","\\circ",true);Oe(Ee,De,Fe,"÷","\\div",true);Oe(Ee,De,Fe,"±","\\pm",true);Oe(Ee,De,Fe,"×","\\times",true);Oe(Ee,De,Fe,"∩","\\cap",true);Oe(Ee,De,Fe,"∪","\\cup",true);Oe(Ee,De,Fe,"∖","\\setminus",true);Oe(Ee,De,Fe,"∧","\\land");Oe(Ee,De,Fe,"∨","\\lor");Oe(Ee,De,Fe,"∧","\\wedge",true);Oe(Ee,De,Fe,"∨","\\vee",true);Oe(Ee,De,Ze,"√","\\surd");Oe(Ee,De,We,"⟨","\\langle",true);Oe(Ee,De,We,"∣","\\lvert");Oe(Ee,De,We,"∥","\\lVert");Oe(Ee,De,Ge,"?","?");Oe(Ee,De,Ge,"!","!");Oe(Ee,De,Ge,"⟩","\\rangle",true);Oe(Ee,De,Ge,"∣","\\rvert");Oe(Ee,De,Ge,"∥","\\rVert");Oe(Ee,De,je,"=","=");Oe(Ee,De,je,":",":");Oe(Ee,De,je,"≈","\\approx",true);Oe(Ee,De,je,"≅","\\cong",true);Oe(Ee,De,je,"≥","\\ge");Oe(Ee,De,je,"≥","\\geq",true);Oe(Ee,De,je,"←","\\gets");Oe(Ee,De,je,">","\\gt",true);Oe(Ee,De,je,"∈","\\in",true);Oe(Ee,De,je,"","\\@not");Oe(Ee,De,je,"⊂","\\subset",true);Oe(Ee,De,je,"⊃","\\supset",true);Oe(Ee,De,je,"⊆","\\subseteq",true);Oe(Ee,De,je,"⊇","\\supseteq",true);Oe(Ee,Ve,je,"⊈","\\nsubseteq",true);Oe(Ee,Ve,je,"⊉","\\nsupseteq",true);Oe(Ee,De,je,"⊨","\\models");Oe(Ee,De,je,"←","\\leftarrow",true);Oe(Ee,De,je,"≤","\\le");Oe(Ee,De,je,"≤","\\leq",true);Oe(Ee,De,je,"<","\\lt",true);Oe(Ee,De,je,"→","\\rightarrow",true);Oe(Ee,De,je,"→","\\to");Oe(Ee,Ve,je,"≱","\\ngeq",true);Oe(Ee,Ve,je,"≰","\\nleq",true);Oe(Ee,De,$e," ","\\ ");Oe(Ee,De,$e," ","\\space");Oe(Ee,De,$e," ","\\nobreakspace");Oe(Le,De,$e," ","\\ ");Oe(Le,De,$e," "," ");Oe(Le,De,$e," ","\\space");Oe(Le,De,$e," ","\\nobreakspace");Oe(Ee,De,$e,null,"\\nobreak");Oe(Ee,De,$e,null,"\\allowbreak");Oe(Ee,De,_e,",",",");Oe(Ee,De,_e,";",";");Oe(Ee,Ve,Fe,"⊼","\\barwedge",true);Oe(Ee,Ve,Fe,"⊻","\\veebar",true);Oe(Ee,De,Fe,"⊙","\\odot",true);Oe(Ee,De,Fe,"⊕","\\oplus",true);Oe(Ee,De,Fe,"⊗","\\otimes",true);Oe(Ee,De,Ze,"∂","\\partial",true);Oe(Ee,De,Fe,"⊘","\\oslash",true);Oe(Ee,Ve,Fe,"⊚","\\circledcirc",true);Oe(Ee,Ve,Fe,"⊡","\\boxdot",true);Oe(Ee,De,Fe,"△","\\bigtriangleup");Oe(Ee,De,Fe,"▽","\\bigtriangledown");Oe(Ee,De,Fe,"†","\\dagger");Oe(Ee,De,Fe,"⋄","\\diamond");Oe(Ee,De,Fe,"⋆","\\star");Oe(Ee,De,Fe,"◃","\\triangleleft");Oe(Ee,De,Fe,"▹","\\triangleright");Oe(Ee,De,We,"{","\\{");Oe(Le,De,Ze,"{","\\{");Oe(Le,De,Ze,"{","\\textbraceleft");Oe(Ee,De,Ge,"}","\\}");Oe(Le,De,Ze,"}","\\}");Oe(Le,De,Ze,"}","\\textbraceright");Oe(Ee,De,We,"{","\\lbrace");Oe(Ee,De,Ge,"}","\\rbrace");Oe(Ee,De,We,"[","\\lbrack",true);Oe(Le,De,Ze,"[","\\lbrack",true);Oe(Ee,De,Ge,"]","\\rbrack",true);Oe(Le,De,Ze,"]","\\rbrack",true);Oe(Ee,De,We,"(","\\lparen",true);Oe(Ee,De,Ge,")","\\rparen",true);Oe(Le,De,Ze,"<","\\textless",true);Oe(Le,De,Ze,">","\\textgreater",true);Oe(Ee,De,We,"⌊","\\lfloor",true);Oe(Ee,De,Ge,"⌋","\\rfloor",true);Oe(Ee,De,We,"⌈","\\lceil",true);Oe(Ee,De,Ge,"⌉","\\rceil",true);Oe(Ee,De,Ze,"\\","\\backslash");Oe(Ee,De,Ze,"∣","|");Oe(Ee,De,Ze,"∣","\\vert");Oe(Le,De,Ze,"|","\\textbar",true);Oe(Ee,De,Ze,"∥","\\|");Oe(Ee,De,Ze,"∥","\\Vert");Oe(Le,De,Ze,"∥","\\textbardbl");Oe(Le,De,Ze,"~","\\textasciitilde");Oe(Le,De,Ze,"\\","\\textbackslash");Oe(Le,De,Ze,"^","\\textasciicircum");Oe(Ee,De,je,"↑","\\uparrow",true);Oe(Ee,De,je,"⇑","\\Uparrow",true);Oe(Ee,De,je,"↓","\\downarrow",true);Oe(Ee,De,je,"⇓","\\Downarrow",true);Oe(Ee,De,je,"↕","\\updownarrow",true);Oe(Ee,De,je,"⇕","\\Updownarrow",true);Oe(Ee,De,Xe,"∐","\\coprod");Oe(Ee,De,Xe,"⋁","\\bigvee");Oe(Ee,De,Xe,"⋀","\\bigwedge");Oe(Ee,De,Xe,"⨄","\\biguplus");Oe(Ee,De,Xe,"⋂","\\bigcap");Oe(Ee,De,Xe,"⋃","\\bigcup");Oe(Ee,De,Xe,"∫","\\int");Oe(Ee,De,Xe,"∫","\\intop");Oe(Ee,De,Xe,"∬","\\iint");Oe(Ee,De,Xe,"∭","\\iiint");Oe(Ee,De,Xe,"∏","\\prod");Oe(Ee,De,Xe,"∑","\\sum");Oe(Ee,De,Xe,"⨂","\\bigotimes");Oe(Ee,De,Xe,"⨁","\\bigoplus");Oe(Ee,De,Xe,"⨀","\\bigodot");Oe(Ee,De,Xe,"∮","\\oint");Oe(Ee,De,Xe,"∯","\\oiint");Oe(Ee,De,Xe,"∰","\\oiiint");Oe(Ee,De,Xe,"⨆","\\bigsqcup");Oe(Ee,De,Xe,"∫","\\smallint");Oe(Le,De,Ue,"…","\\textellipsis");Oe(Ee,De,Ue,"…","\\mathellipsis");Oe(Le,De,Ue,"…","\\ldots",true);Oe(Ee,De,Ue,"…","\\ldots",true);Oe(Ee,De,Ue,"⋯","\\@cdots",true);Oe(Ee,De,Ue,"⋱","\\ddots",true);Oe(Ee,De,Ze,"⋮","\\varvdots");Oe(Le,De,Ze,"⋮","\\varvdots");Oe(Ee,De,Pe,"ˊ","\\acute");Oe(Ee,De,Pe,"ˋ","\\grave");Oe(Ee,De,Pe,"¨","\\ddot");Oe(Ee,De,Pe,"~","\\tilde");Oe(Ee,De,Pe,"ˉ","\\bar");Oe(Ee,De,Pe,"˘","\\breve");Oe(Ee,De,Pe,"ˇ","\\check");Oe(Ee,De,Pe,"^","\\hat");Oe(Ee,De,Pe,"⃗","\\vec");Oe(Ee,De,Pe,"˙","\\dot");Oe(Ee,De,Pe,"˚","\\mathring");Oe(Ee,De,Ye,"","\\@imath");Oe(Ee,De,Ye,"","\\@jmath");Oe(Ee,De,Ze,"ı","ı");Oe(Ee,De,Ze,"ȷ","ȷ");Oe(Le,De,Ze,"ı","\\i",true);Oe(Le,De,Ze,"ȷ","\\j",true);Oe(Le,De,Ze,"ß","\\ss",true);Oe(Le,De,Ze,"æ","\\ae",true);Oe(Le,De,Ze,"œ","\\oe",true);Oe(Le,De,Ze,"ø","\\o",true);Oe(Le,De,Ze,"Æ","\\AE",true);Oe(Le,De,Ze,"Œ","\\OE",true);Oe(Le,De,Ze,"Ø","\\O",true);Oe(Le,De,Pe,"ˊ","\\'");Oe(Le,De,Pe,"ˋ","\\`");Oe(Le,De,Pe,"ˆ","\\^");Oe(Le,De,Pe,"˜","\\~");Oe(Le,De,Pe,"ˉ","\\=");Oe(Le,De,Pe,"˘","\\u");Oe(Le,De,Pe,"˙","\\.");Oe(Le,De,Pe,"¸","\\c");Oe(Le,De,Pe,"˚","\\r");Oe(Le,De,Pe,"ˇ","\\v");Oe(Le,De,Pe,"¨",'\\"');Oe(Le,De,Pe,"˝","\\H");Oe(Le,De,Pe,"◯","\\textcircled");var Ke={"--":true,"---":true,"``":true,"''":true};Oe(Le,De,Ze,"–","--",true);Oe(Le,De,Ze,"–","\\textendash");Oe(Le,De,Ze,"—","---",true);Oe(Le,De,Ze,"—","\\textemdash");Oe(Le,De,Ze,"‘","`",true);Oe(Le,De,Ze,"‘","\\textquoteleft");Oe(Le,De,Ze,"’","'",true);Oe(Le,De,Ze,"’","\\textquoteright");Oe(Le,De,Ze,"“","``",true);Oe(Le,De,Ze,"“","\\textquotedblleft");Oe(Le,De,Ze,"”","''",true);Oe(Le,De,Ze,"”","\\textquotedblright");Oe(Ee,De,Ze,"°","\\degree",true);Oe(Le,De,Ze,"°","\\degree");Oe(Le,De,Ze,"°","\\textdegree",true);Oe(Ee,De,Ze,"£","\\pounds");Oe(Ee,De,Ze,"£","\\mathsterling",true);Oe(Le,De,Ze,"£","\\pounds");Oe(Le,De,Ze,"£","\\textsterling",true);Oe(Ee,Ve,Ze,"✠","\\maltese");Oe(Le,Ve,Ze,"✠","\\maltese");var Je='0123456789/@."';for(var Qe=0;Qe0){return yt(n,h,i,r,s.concat(u))}else if(l){var m;var c;if(l==="boldsymbol"){var p=wt(n,i,r,s,a);m=p.fontName;c=[p.fontClass]}else if(o){m=Et[l].fontName;c=[l]}else{m=Ot(l,r.fontWeight,r.fontShape);c=[l,r.fontWeight,r.fontShape]}if(bt(n,m,i).metrics){return yt(n,m,i,r,s.concat(c))}else if(Ke.hasOwnProperty(n)&&m.slice(0,10)==="Typewriter"){var d=[];for(var f=0;f{if(ge(e.classes)!==ge(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize){return false}if(e.classes.length===1){var r=e.classes[0];if(r==="mbin"||r==="mord"){return false}}for(var a in e.style){if(e.style.hasOwnProperty(a)&&e.style[a]!==t.style[a]){return false}}for(var i in t.style){if(t.style.hasOwnProperty(i)&&e.style[i]!==t.style[i]){return false}}return true};var Mt=e=>{for(var t=0;tr){r=s.height}if(s.depth>a){a=s.depth}if(s.maxFontSize>i){i=s.maxFontSize}}t.height=r;t.depth=a;t.maxFontSize=i};var At=function e(t,r,a,i){var n=new ke(t,r,a,i);zt(n);return n};var Tt=(e,t,r,a)=>new ke(e,t,r,a);var Bt=function e(t,r,a){var i=At([t],[],r);i.height=Math.max(a||r.fontMetrics().defaultRuleThickness,r.minRuleThickness);i.style.borderBottomWidth=ve(i.height);i.maxFontSize=1;return i};var Ct=function e(t,r,a,i){var n=new Se(t,r,a,i);zt(n);return n};var Nt=function e(t){var r=new ee(t);zt(r);return r};var qt=function e(t,r){if(t instanceof ee){return At([],[t],r)}return t};var It=function e(t){if(t.positionType==="individualShift"){var r=t.children;var a=[r[0]];var i=-r[0].shift-r[0].elem.depth;var n=i;for(var s=1;s{var r=At(["mspace"],[],t);var a=fe(e,t);r.style.marginRight=ve(a);return r};var Ot=function e(t,r,a){var i="";switch(t){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=t}var n;if(r==="textbf"&&a==="textit"){n="BoldItalic"}else if(r==="textbf"){n="Bold"}else if(r==="textit"){n="Italic"}else{n="Regular"}return i+"-"+n};var Et={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}};var Lt={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]};var Dt=function e(t,r){var[a,i,n]=Lt[t];var s=new Be(a);var o=new Te([s],{width:ve(i),height:ve(n),style:"width:"+ve(i),viewBox:"0 0 "+1e3*i+" "+1e3*n,preserveAspectRatio:"xMinYMin"});var l=Tt(["overlay"],[o],r);l.height=n;l.style.height=ve(n);l.style.width=ve(i);return l};var Vt={fontMap:Et,makeSymbol:yt,mathsym:xt,makeSpan:At,makeSvgSpan:Tt,makeLineSpan:Bt,makeAnchor:Ct,makeFragment:Nt,wrapFragment:qt,makeVList:Rt,makeOrd:kt,makeGlue:Ht,staticSvg:Dt,svgData:Lt,tryCombineChars:Mt};var Pt={number:3,unit:"mu"};var Ft={number:4,unit:"mu"};var Gt={number:5,unit:"mu"};var Ut={mord:{mop:Pt,mbin:Ft,mrel:Gt,minner:Pt},mop:{mord:Pt,mop:Pt,mrel:Gt,minner:Pt},mbin:{mord:Ft,mop:Ft,mopen:Ft,minner:Ft},mrel:{mord:Gt,mop:Gt,mopen:Gt,minner:Gt},mopen:{},mclose:{mop:Pt,mbin:Ft,mrel:Gt,minner:Pt},mpunct:{mord:Pt,mop:Pt,mrel:Gt,mopen:Pt,mclose:Pt,mpunct:Pt,minner:Pt},minner:{mord:Pt,mop:Pt,mbin:Ft,mrel:Gt,mopen:Pt,mpunct:Pt,minner:Pt}};var Yt={mord:{mop:Pt},mop:{mord:Pt,mop:Pt},mbin:{},mrel:{},mopen:{},mclose:{mop:Pt},mpunct:{},minner:{mop:Pt}};var Xt={};var Wt={};var _t={};function jt(e){var{type:t,names:r,props:a,handler:i,htmlBuilder:n,mathmlBuilder:s}=e;var o={type:t,numArgs:a.numArgs,argTypes:a.argTypes,allowedInArgument:!!a.allowedInArgument,allowedInText:!!a.allowedInText,allowedInMath:a.allowedInMath===undefined?true:a.allowedInMath,numOptionalArgs:a.numOptionalArgs||0,infix:!!a.infix,primitive:!!a.primitive,handler:i};for(var l=0;l{var r=t.classes[0];var a=e.classes[0];if(r==="mbin"&&g.contains(er,a)){t.classes[0]="mord"}else if(a==="mbin"&&g.contains(Qt,r)){e.classes[0]="mord"}}),{node:m},c,p);ir(n,((e,t)=>{var r=or(t);var a=or(e);var i=r&&a?e.hasClass("mtight")?Yt[r][a]:Ut[r][a]:null;if(i){return Vt.makeGlue(i,h)}}),{node:m},c,p);return n};var ir=function e(t,r,a,i,n){if(i){t.push(i)}var s=0;for(;sr=>{t.splice(e+1,0,r);s++})(s)}if(i){t.pop()}};var nr=function e(t){if(t instanceof ee||t instanceof Se||t instanceof ke&&t.hasClass("enclosing")){return t}return null};var sr=function e(t,r){var a=nr(t);if(a){var i=a.children;if(i.length){if(r==="right"){return e(i[i.length-1],"right")}else if(r==="left"){return e(i[0],"left")}}}return t};var or=function e(t,r){if(!t){return null}if(r){t=sr(t,r)}return rr[t.classes[0]]||null};var lr=function e(t,r){var a=["nulldelimiter"].concat(t.baseSizingClasses());return Jt(r.concat(a))};var hr=function e(t,r,a){if(!t){return Jt()}if(Wt[t.type]){var i=Wt[t.type](t,r);if(a&&r.size!==a.size){i=Jt(r.sizingClasses(a),[i],r);var s=r.sizeMultiplier/a.sizeMultiplier;i.height*=s;i.depth*=s}return i}else{throw new n("Got group of unknown type: '"+t.type+"'")}};function ur(e,t){var r=Jt(["base"],e,t);var a=Jt(["strut"]);a.style.height=ve(r.height+r.depth);if(r.depth){a.style.verticalAlign=ve(-r.depth)}r.children.unshift(a);return r}function mr(e,t){var r=null;if(e.length===1&&e[0].type==="tag"){r=e[0].tag;e=e[0].body}var a=ar(e,t,"root");var i;if(a.length===2&&a[1].hasClass("tag")){i=a.pop()}var n=[];var s=[];for(var o=0;o0){n.push(ur(s,t));s=[]}n.push(a[o])}}if(s.length>0){n.push(ur(s,t))}var h;if(r){h=ur(ar(r,t,true));h.classes=["tag"];n.push(h)}else if(i){n.push(i)}var u=Jt(["katex-html"],n);u.setAttribute("aria-hidden","true");if(h){var m=h.children[0];m.style.height=ve(u.height+u.depth);if(u.depth){m.style.verticalAlign=ve(-u.depth)}}return u}function cr(e){return new ee(e)}class pr{constructor(e,t,r){this.type=void 0;this.attributes=void 0;this.children=void 0;this.classes=void 0;this.type=e;this.attributes={};this.children=t||[];this.classes=r||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e.setAttribute(t,this.attributes[t])}}if(this.classes.length>0){e.className=ge(this.classes)}for(var r=0;r0){e+=' class ="'+g.escape(ge(this.classes))+'"'}e+=">";for(var r=0;r";return e}toText(){return this.children.map((e=>e.toText())).join("")}}class dr{constructor(e){this.text=void 0;this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return g.escape(this.toText())}toText(){return this.text}}class fr{constructor(e){this.width=void 0;this.character=void 0;this.width=e;if(e>=.05555&&e<=.05556){this.character=" "}else if(e>=.1666&&e<=.1667){this.character=" "}else if(e>=.2222&&e<=.2223){this.character=" "}else if(e>=.2777&&e<=.2778){this.character="  "}else if(e>=-.05556&&e<=-.05555){this.character=" ⁣"}else if(e>=-.1667&&e<=-.1666){this.character=" ⁣"}else if(e>=-.2223&&e<=-.2222){this.character=" ⁣"}else if(e>=-.2778&&e<=-.2777){this.character=" ⁣"}else{this.character=null}}toNode(){if(this.character){return document.createTextNode(this.character)}else{var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");e.setAttribute("width",ve(this.width));return e}}toMarkup(){if(this.character){return""+this.character+""}else{return''}}toText(){if(this.character){return this.character}else{return" "}}}var vr={MathNode:pr,TextNode:dr,SpaceNode:fr,newDocumentFragment:cr};var gr=function e(t,r,a){if(He[r][t]&&He[r][t].replace&&t.charCodeAt(0)!==55349&&!(Ke.hasOwnProperty(t)&&a&&(a.fontFamily&&a.fontFamily.slice(4,6)==="tt"||a.font&&a.font.slice(4,6)==="tt"))){t=He[r][t].replace}return new vr.TextNode(t)};var br=function e(t){if(t.length===1){return t[0]}else{return new vr.MathNode("mrow",t)}};var yr=function e(t,r){if(r.fontFamily==="texttt"){return"monospace"}else if(r.fontFamily==="textsf"){if(r.fontShape==="textit"&&r.fontWeight==="textbf"){return"sans-serif-bold-italic"}else if(r.fontShape==="textit"){return"sans-serif-italic"}else if(r.fontWeight==="textbf"){return"bold-sans-serif"}else{return"sans-serif"}}else if(r.fontShape==="textit"&&r.fontWeight==="textbf"){return"bold-italic"}else if(r.fontShape==="textit"){return"italic"}else if(r.fontWeight==="textbf"){return"bold"}var a=r.font;if(!a||a==="mathnormal"){return null}var i=t.mode;if(a==="mathit"){return"italic"}else if(a==="boldsymbol"){return t.type==="textord"?"bold":"bold-italic"}else if(a==="mathbf"){return"bold"}else if(a==="mathbb"){return"double-struck"}else if(a==="mathsfit"){return"sans-serif-italic"}else if(a==="mathfrak"){return"fraktur"}else if(a==="mathscr"||a==="mathcal"){return"script"}else if(a==="mathsf"){return"sans-serif"}else if(a==="mathtt"){return"monospace"}var n=t.text;if(g.contains(["\\imath","\\jmath"],n)){return null}if(He[i][n]&&He[i][n].replace){n=He[i][n].replace}var s=Vt.fontMap[a].fontName;if(ne(n,s,i)){return Vt.fontMap[a].variant}return null};function xr(e){if(!e){return false}if(e.type==="mi"&&e.children.length===1){var t=e.children[0];return t instanceof dr&&t.text==="."}else if(e.type==="mo"&&e.children.length===1&&e.getAttribute("separator")==="true"&&e.getAttribute("lspace")==="0em"&&e.getAttribute("rspace")==="0em"){var r=e.children[0];return r instanceof dr&&r.text===","}else{return false}}var wr=function e(t,r,a){if(t.length===1){var i=Sr(t[0],r);if(a&&i instanceof pr&&i.type==="mo"){i.setAttribute("lspace","0em");i.setAttribute("rspace","0em")}return[i]}var n=[];var s;for(var o=0;o=1&&(s.type==="mn"||xr(s))){var h=l.children[0];if(h instanceof pr&&h.type==="mn"){h.children=[...s.children,...h.children];n.pop()}}else if(s.type==="mi"&&s.children.length===1){var u=s.children[0];if(u instanceof dr&&u.text==="̸"&&(l.type==="mo"||l.type==="mi"||l.type==="mn")){var m=l.children[0];if(m instanceof dr&&m.text.length>0){m.text=m.text.slice(0,1)+"̸"+m.text.slice(1);n.pop()}}}}n.push(l);s=l}return n};var kr=function e(t,r,a){return br(wr(t,r,a))};var Sr=function e(t,r){if(!t){return new vr.MathNode("mrow")}if(_t[t.type]){var a=_t[t.type](t,r);return a}else{throw new n("Got group of unknown type: '"+t.type+"'")}};function Mr(e,t,r,a,i){var n=wr(e,r);var s;if(n.length===1&&n[0]instanceof pr&&g.contains(["mrow","mtable"],n[0].type)){s=n[0]}else{s=new vr.MathNode("mrow",n)}var o=new vr.MathNode("annotation",[new vr.TextNode(t)]);o.setAttribute("encoding","application/x-tex");var l=new vr.MathNode("semantics",[s,o]);var h=new vr.MathNode("math",[l]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML");if(a){h.setAttribute("display","block")}var u=i?"katex":"katex-mathml";return Vt.makeSpan([u],[h])}var zr=function e(t){return new me({style:t.displayMode?L.DISPLAY:L.TEXT,maxSize:t.maxSize,minRuleThickness:t.minRuleThickness})};var Ar=function e(t,r){if(r.displayMode){var a=["katex-display"];if(r.leqno){a.push("leqno")}if(r.fleqn){a.push("fleqn")}t=Vt.makeSpan(a,[t])}return t};var Tr=function e(t,r,a){var i=zr(a);var n;if(a.output==="mathml"){return Mr(t,r,i,a.displayMode,true)}else if(a.output==="html"){var s=mr(t,i);n=Vt.makeSpan(["katex"],[s])}else{var o=Mr(t,r,i,a.displayMode,false);var l=mr(t,i);n=Vt.makeSpan(["katex"],[o,l])}return Ar(n,a)};var Br=function e(t,r,a){var i=zr(a);var n=mr(t,i);var s=Vt.makeSpan(["katex"],[n]);return Ar(s,a)};var Cr={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="};var Nr=function e(t){var r=new vr.MathNode("mo",[new vr.TextNode(Cr[t.replace(/^\\/,"")])]);r.setAttribute("stretchy","true");return r};var qr={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]};var Ir=function e(t){if(t.type==="ordgroup"){return t.body.length}else{return 1}};var Rr=function e(t,r){function a(){var e=4e5;var a=t.label.slice(1);if(g.contains(["widehat","widecheck","widetilde","utilde"],a)){var i=t;var n=Ir(i.base);var s;var o;var l;if(n>5){if(a==="widehat"||a==="widecheck"){s=420;e=2364;l=.42;o=a+"4"}else{s=312;e=2340;l=.34;o="tilde4"}}else{var h=[1,1,2,2,3,3][n];if(a==="widehat"||a==="widecheck"){e=[0,1062,2364,2364,2364][h];s=[0,239,300,360,420][h];l=[0,.24,.3,.3,.36,.42][h];o=a+h}else{e=[0,600,1033,2339,2340][h];s=[0,260,286,306,312][h];l=[0,.26,.286,.3,.306,.34][h];o="tilde"+h}}var u=new Be(o);var m=new Te([u],{width:"100%",height:ve(l),viewBox:"0 0 "+e+" "+s,preserveAspectRatio:"none"});return{span:Vt.makeSvgSpan([],[m],r),minWidth:0,height:l}}else{var c=[];var p=qr[a];var[d,f,v]=p;var b=v/1e3;var y=d.length;var x;var w;if(y===1){var k=p[3];x=["hide-tail"];w=[k]}else if(y===2){x=["halfarrow-left","halfarrow-right"];w=["xMinYMin","xMaxYMin"]}else if(y===3){x=["brace-left","brace-center","brace-right"];w=["xMinYMin","xMidYMin","xMaxYMin"]}else{throw new Error("Correct katexImagesData or update code here to support\n "+y+" children.")}for(var S=0;S0){i.style.minWidth=ve(n)}return i};var Hr=function e(t,r,a,i,n){var s;var o=t.height+t.depth+a+i;if(/fbox|color|angl/.test(r)){s=Vt.makeSpan(["stretchy",r],[],n);if(r==="fbox"){var l=n.color&&n.getColor();if(l){s.style.borderColor=l}}}else{var h=[];if(/^[bx]cancel$/.test(r)){h.push(new Ce({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"}))}if(/^x?cancel$/.test(r)){h.push(new Ce({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}))}var u=new Te(h,{width:"100%",height:ve(o)});s=Vt.makeSvgSpan([],[u],n)}s.height=o;s.style.height=ve(o);return s};var Or={encloseSpan:Hr,mathMLnode:Nr,svgSpan:Rr};function Er(e,t){if(!e||e.type!==t){throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)))}return e}function Lr(e){var t=Dr(e);if(!t){throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)))}return t}function Dr(e){if(e&&(e.type==="atom"||Re.hasOwnProperty(e.type))){return e}return null}var Vr=(e,t)=>{var r;var a;var i;if(e&&e.type==="supsub"){a=Er(e.base,"accent");r=a.base;e.base=r;i=qe(hr(e,t));e.base=a}else{a=Er(e,"accent");r=a.base}var n=hr(r,t.havingCrampedStyle());var s=a.isShifty&&g.isCharacterBox(r);var o=0;if(s){var l=g.getBaseElem(r);var h=hr(l,t.havingCrampedStyle());o=Ne(h).skew}var u=a.label==="\\c";var m=u?n.height+n.depth:Math.min(n.height,t.fontMetrics().xHeight);var c;if(!a.isStretchy){var p;var d;if(a.label==="\\vec"){p=Vt.staticSvg("vec",t);d=Vt.svgData.vec[1]}else{p=Vt.makeOrd({mode:a.mode,text:a.label},t,"textord");p=Ne(p);p.italic=0;d=p.width;if(u){m+=p.depth}}c=Vt.makeSpan(["accent-body"],[p]);var f=a.label==="\\textcircled";if(f){c.classes.push("accent-full");m=n.height}var v=o;if(!f){v-=d/2}c.style.left=ve(v);if(a.label==="\\textcircled"){c.style.top=".2em"}c=Vt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n},{type:"kern",size:-m},{type:"elem",elem:c}]},t)}else{c=Or.svgSpan(a,t);c=Vt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n},{type:"elem",elem:c,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+ve(2*o)+")",marginLeft:ve(2*o)}:undefined}]},t)}var b=Vt.makeSpan(["mord","accent"],[c],t);if(i){i.children[0]=b;i.height=Math.max(b.height,i.height);i.classes[0]="mord";return i}else{return b}};var Pr=(e,t)=>{var r=e.isStretchy?Or.mathMLnode(e.label):new vr.MathNode("mo",[gr(e.label,e.mode)]);var a=new vr.MathNode("mover",[Sr(e.base,t),r]);a.setAttribute("accent","true");return a};var Fr=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map((e=>"\\"+e)).join("|"));jt({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{var r=Zt(t[0]);var a=!Fr.test(e.funcName);var i=!a||e.funcName==="\\widehat"||e.funcName==="\\widetilde"||e.funcName==="\\widecheck";return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:a,isShifty:i,base:r}},htmlBuilder:Vr,mathmlBuilder:Pr});jt({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:true,allowedInMath:true,argTypes:["primitive"]},handler:(e,t)=>{var r=t[0];var a=e.parser.mode;if(a==="math"){e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode");a="text"}return{type:"accent",mode:a,label:e.funcName,isStretchy:false,isShifty:true,base:r}},htmlBuilder:Vr,mathmlBuilder:Pr});jt({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{var{parser:r,funcName:a}=e;var i=t[0];return{type:"accentUnder",mode:r.mode,label:a,base:i}},htmlBuilder:(e,t)=>{var r=hr(e.base,t);var a=Or.svgSpan(e,t);var i=e.label==="\\utilde"?.12:0;var n=Vt.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:r}]},t);return Vt.makeSpan(["mord","accentunder"],[n],t)},mathmlBuilder:(e,t)=>{var r=Or.mathMLnode(e.label);var a=new vr.MathNode("munder",[Sr(e.base,t),r]);a.setAttribute("accentunder","true");return a}});var Gr=e=>{var t=new vr.MathNode("mpadded",e?[e]:[]);t.setAttribute("width","+0.6em");t.setAttribute("lspace","0.3em");return t};jt({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:a,funcName:i}=e;return{type:"xArrow",mode:a.mode,label:i,body:t[0],below:r[0]}},htmlBuilder(e,t){var r=t.style;var a=t.havingStyle(r.sup());var i=Vt.wrapFragment(hr(e.body,a,t),t);var n=e.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(n+"-arrow-pad");var s;if(e.below){a=t.havingStyle(r.sub());s=Vt.wrapFragment(hr(e.below,a,t),t);s.classes.push(n+"-arrow-pad")}var o=Or.svgSpan(e,t);var l=-t.fontMetrics().axisHeight+.5*o.height;var h=-t.fontMetrics().axisHeight-.5*o.height-.111;if(i.depth>.25||e.label==="\\xleftequilibrium"){h-=i.depth}var u;if(s){var m=-t.fontMetrics().axisHeight+s.height+.5*o.height+.111;u=Vt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:o,shift:l},{type:"elem",elem:s,shift:m}]},t)}else{u=Vt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:o,shift:l}]},t)}u.children[0].children[0].children[1].classes.push("svg-align");return Vt.makeSpan(["mrel","x-arrow"],[u],t)},mathmlBuilder(e,t){var r=Or.mathMLnode(e.label);r.setAttribute("minsize",e.label.charAt(0)==="x"?"1.75em":"3.0em");var a;if(e.body){var i=Gr(Sr(e.body,t));if(e.below){var n=Gr(Sr(e.below,t));a=new vr.MathNode("munderover",[r,n,i])}else{a=new vr.MathNode("mover",[r,i])}}else if(e.below){var s=Gr(Sr(e.below,t));a=new vr.MathNode("munder",[r,s])}else{a=Gr();a=new vr.MathNode("mover",[r,a])}return a}});var Ur=Vt.makeSpan;function Yr(e,t){var r=ar(e.body,t,true);return Ur([e.mclass],r,t)}function Xr(e,t){var r;var a=wr(e.body,t);if(e.mclass==="minner"){r=new vr.MathNode("mpadded",a)}else if(e.mclass==="mord"){if(e.isCharacterBox){r=a[0];r.type="mi"}else{r=new vr.MathNode("mi",a)}}else{if(e.isCharacterBox){r=a[0];r.type="mo"}else{r=new vr.MathNode("mo",a)}if(e.mclass==="mbin"){r.attributes.lspace="0.22em";r.attributes.rspace="0.22em"}else if(e.mclass==="mpunct"){r.attributes.lspace="0em";r.attributes.rspace="0.17em"}else if(e.mclass==="mopen"||e.mclass==="mclose"){r.attributes.lspace="0em";r.attributes.rspace="0em"}else if(e.mclass==="minner"){r.attributes.lspace="0.0556em";r.attributes.width="+0.1111em"}}return r}jt({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:true},handler(e,t){var{parser:r,funcName:a}=e;var i=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+a.slice(5),body:Kt(i),isCharacterBox:g.isCharacterBox(i)}},htmlBuilder:Yr,mathmlBuilder:Xr});var Wr=e=>{var t=e.type==="ordgroup"&&e.body.length?e.body[0]:e;if(t.type==="atom"&&(t.family==="bin"||t.family==="rel")){return"m"+t.family}else{return"mord"}};jt({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){var{parser:r}=e;return{type:"mclass",mode:r.mode,mclass:Wr(t[0]),body:Kt(t[1]),isCharacterBox:g.isCharacterBox(t[1])}}});jt({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var{parser:r,funcName:a}=e;var i=t[1];var n=t[0];var s;if(a!=="\\stackrel"){s=Wr(i)}else{s="mrel"}var o={type:"op",mode:i.mode,limits:true,alwaysHandleSupSub:true,parentIsSupSub:false,symbol:false,suppressBaseShift:a!=="\\stackrel",body:Kt(i)};var l={type:"supsub",mode:n.mode,base:o,sup:a==="\\underset"?null:n,sub:a==="\\underset"?n:null};return{type:"mclass",mode:r.mode,mclass:s,body:[l],isCharacterBox:g.isCharacterBox(l)}},htmlBuilder:Yr,mathmlBuilder:Xr});jt({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:true},handler(e,t){var{parser:r}=e;return{type:"pmb",mode:r.mode,mclass:Wr(t[0]),body:Kt(t[0])}},htmlBuilder(e,t){var r=ar(e.body,t,true);var a=Vt.makeSpan([e.mclass],r,t);a.style.textShadow="0.02em 0.01em 0.04px";return a},mathmlBuilder(e,t){var r=wr(e.body,t);var a=new vr.MathNode("mstyle",r);a.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px");return a}});var _r={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"};var jr=()=>({type:"styling",body:[],mode:"math",style:"display"});var $r=e=>e.type==="textord"&&e.text==="@";var Zr=(e,t)=>(e.type==="mathord"||e.type==="atom")&&e.text===t;function Kr(e,t,r){var a=_r[e];switch(a){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(a,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{var i=r.callFunction("\\\\cdleft",[t[0]],[]);var n={type:"atom",text:a,mode:"math",family:"rel"};var s=r.callFunction("\\Big",[n],[]);var o=r.callFunction("\\\\cdright",[t[1]],[]);var l={type:"ordgroup",mode:"math",body:[i,s,o]};return r.callFunction("\\\\cdparent",[l],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function Jr(e){var t=[];e.gullet.beginGroup();e.gullet.macros.set("\\cr","\\\\\\relax");e.gullet.beginGroup();while(true){t.push(e.parseExpression(false,"\\\\"));e.gullet.endGroup();e.gullet.beginGroup();var r=e.fetch().text;if(r==="&"||r==="\\\\"){e.consume()}else if(r==="\\end"){if(t[t.length-1].length===0){t.pop()}break}else{throw new n("Expected \\\\ or \\cr or \\end",e.nextToken)}}var a=[];var i=[a];for(var s=0;s-1);else if("<>AV".indexOf(u)>-1){for(var c=0;c<2;c++){var p=true;for(var d=h+1;dAV=|." after @',o[h])}var f=Kr(u,m,e);var v={type:"styling",body:[f],mode:"math",style:"display"};a.push(v);l=jr()}}if(s%2===0){a.push(l)}else{a.shift()}a=[];i.push(a)}e.gullet.endGroup();e.gullet.endGroup();var g=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:true,rowGaps:[null],cols:g,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}jt({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e;return{type:"cdlabel",mode:r.mode,side:a.slice(4),label:t[0]}},htmlBuilder(e,t){var r=t.havingStyle(t.style.sup());var a=Vt.wrapFragment(hr(e.label,r,t),t);a.classes.push("cd-label-"+e.side);a.style.bottom=ve(.8-a.depth);a.height=0;a.depth=0;return a},mathmlBuilder(e,t){var r=new vr.MathNode("mrow",[Sr(e.label,t)]);r=new vr.MathNode("mpadded",[r]);r.setAttribute("width","0");if(e.side==="left"){r.setAttribute("lspace","-1width")}r.setAttribute("voffset","0.7em");r=new vr.MathNode("mstyle",[r]);r.setAttribute("displaystyle","false");r.setAttribute("scriptlevel","1");return r}});jt({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){var{parser:r}=e;return{type:"cdlabelparent",mode:r.mode,fragment:t[0]}},htmlBuilder(e,t){var r=Vt.wrapFragment(hr(e.fragment,t),t);r.classes.push("cd-vert-arrow");return r},mathmlBuilder(e,t){return new vr.MathNode("mrow",[Sr(e.fragment,t)])}});jt({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:true},handler(e,t){var{parser:r}=e;var a=Er(t[0],"ordgroup");var i=a.body;var s="";for(var o=0;o=1114111){throw new n("\\@char with invalid code point "+s)}else if(h<=65535){u=String.fromCharCode(h)}else{h-=65536;u=String.fromCharCode((h>>10)+55296,(h&1023)+56320)}return{type:"textord",mode:r.mode,text:u}}});var Qr=(e,t)=>{var r=ar(e.body,t.withColor(e.color),false);return Vt.makeFragment(r)};var ea=(e,t)=>{var r=wr(e.body,t.withColor(e.color));var a=new vr.MathNode("mstyle",r);a.setAttribute("mathcolor",e.color);return a};jt({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:true,argTypes:["color","original"]},handler(e,t){var{parser:r}=e;var a=Er(t[0],"color-token").color;var i=t[1];return{type:"color",mode:r.mode,color:a,body:Kt(i)}},htmlBuilder:Qr,mathmlBuilder:ea});jt({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:true,argTypes:["color"]},handler(e,t){var{parser:r,breakOnTokenText:a}=e;var i=Er(t[0],"color-token").color;r.gullet.macros.set("\\current@color",i);var n=r.parseExpression(true,a);return{type:"color",mode:r.mode,color:i,body:n}},htmlBuilder:Qr,mathmlBuilder:ea});jt({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:true},handler(e,t,r){var{parser:a}=e;var i=a.gullet.future().text==="["?a.parseSizeGroup(true):null;var n=!a.settings.displayMode||!a.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline "+"does nothing in display mode");return{type:"cr",mode:a.mode,newLine:n,size:i&&Er(i,"size").value}},htmlBuilder(e,t){var r=Vt.makeSpan(["mspace"],[],t);if(e.newLine){r.classes.push("newline");if(e.size){r.style.marginTop=ve(fe(e.size,t))}}return r},mathmlBuilder(e,t){var r=new vr.MathNode("mspace");if(e.newLine){r.setAttribute("linebreak","newline");if(e.size){r.setAttribute("height",ve(fe(e.size,t)))}}return r}});var ta={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"};var ra=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t)){throw new n("Expected a control sequence",e)}return t};var aa=e=>{var t=e.gullet.popToken();if(t.text==="="){t=e.gullet.popToken();if(t.text===" "){t=e.gullet.popToken()}}return t};var ia=(e,t,r,a)=>{var i=e.gullet.macros.get(r.text);if(i==null){r.noexpand=true;i={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}}e.gullet.macros.set(t,i,a)};jt({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:true},handler(e){var{parser:t,funcName:r}=e;t.consumeSpaces();var a=t.fetch();if(ta[a.text]){if(r==="\\global"||r==="\\\\globallong"){a.text=ta[a.text]}return Er(t.parseFunction(),"internal")}throw new n("Invalid token after macro prefix",a)}});jt({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:true,primitive:true},handler(e){var{parser:t,funcName:r}=e;var a=t.gullet.popToken();var i=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i)){throw new n("Expected a control sequence",a)}var s=0;var o;var l=[[]];while(t.gullet.future().text!=="{"){a=t.gullet.popToken();if(a.text==="#"){if(t.gullet.future().text==="{"){o=t.gullet.future();l[s].push("{");break}a=t.gullet.popToken();if(!/^[1-9]$/.test(a.text)){throw new n('Invalid argument number "'+a.text+'"')}if(parseInt(a.text)!==s+1){throw new n('Argument number "'+a.text+'" out of order')}s++;l.push([])}else if(a.text==="EOF"){throw new n("Expected a macro definition")}else{l[s].push(a.text)}}var{tokens:h}=t.gullet.consumeArg();if(o){h.unshift(o)}if(r==="\\edef"||r==="\\xdef"){h=t.gullet.expandTokens(h);h.reverse()}t.gullet.macros.set(i,{tokens:h,numArgs:s,delimiters:l},r===ta[r]);return{type:"internal",mode:t.mode}}});jt({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:true,primitive:true},handler(e){var{parser:t,funcName:r}=e;var a=ra(t.gullet.popToken());t.gullet.consumeSpaces();var i=aa(t);ia(t,a,i,r==="\\\\globallet");return{type:"internal",mode:t.mode}}});jt({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:true,primitive:true},handler(e){var{parser:t,funcName:r}=e;var a=ra(t.gullet.popToken());var i=t.gullet.popToken();var n=t.gullet.popToken();ia(t,a,n,r==="\\\\globalfuture");t.gullet.pushToken(n);t.gullet.pushToken(i);return{type:"internal",mode:t.mode}}});var na=function e(t,r,a){var i=He.math[t]&&He.math[t].replace;var n=ne(i||t,r,a);if(!n){throw new Error("Unsupported symbol "+t+" and font size "+r+".")}return n};var sa=function e(t,r,a,i){var n=a.havingBaseStyle(r);var s=Vt.makeSpan(i.concat(n.sizingClasses(a)),[t],a);var o=n.sizeMultiplier/a.sizeMultiplier;s.height*=o;s.depth*=o;s.maxFontSize=n.sizeMultiplier;return s};var oa=function e(t,r,a){var i=r.havingBaseStyle(a);var n=(1-r.sizeMultiplier/i.sizeMultiplier)*r.fontMetrics().axisHeight;t.classes.push("delimcenter");t.style.top=ve(n);t.height-=n;t.depth+=n};var la=function e(t,r,a,i,n,s){var o=Vt.makeSymbol(t,"Main-Regular",n,i);var l=sa(o,r,i,s);if(a){oa(l,i,r)}return l};var ha=function e(t,r,a,i){return Vt.makeSymbol(t,"Size"+r+"-Regular",a,i)};var ua=function e(t,r,a,i,n,s){var o=ha(t,r,n,i);var l=sa(Vt.makeSpan(["delimsizing","size"+r],[o],i),L.TEXT,i,s);if(a){oa(l,i,L.TEXT)}return l};var ma=function e(t,r,a){var i;if(r==="Size1-Regular"){i="delim-size1"}else{i="delim-size4"}var n=Vt.makeSpan(["delimsizinginner",i],[Vt.makeSpan([],[Vt.makeSymbol(t,r,a)])]);return{type:"elem",elem:n}};var ca=function e(t,r,a){var i=te["Size4-Regular"][t.charCodeAt(0)]?te["Size4-Regular"][t.charCodeAt(0)][4]:te["Size1-Regular"][t.charCodeAt(0)][4];var n=new Be("inner",K(t,Math.round(1e3*r)));var s=new Te([n],{width:ve(i),height:ve(r),style:"width:"+ve(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"});var o=Vt.makeSvgSpan([],[s],a);o.height=r;o.style.height=ve(r);o.style.width=ve(i);return{type:"elem",elem:o}};var pa=.008;var da={type:"kern",size:-1*pa};var fa=["|","\\lvert","\\rvert","\\vert"];var va=["\\|","\\lVert","\\rVert","\\Vert"];var ga=function e(t,r,a,i,n,s){var o;var l;var h;var u;var m="";var c=0;o=h=u=t;l=null;var p="Size1-Regular";if(t==="\\uparrow"){h=u="⏐"}else if(t==="\\Uparrow"){h=u="‖"}else if(t==="\\downarrow"){o=h="⏐"}else if(t==="\\Downarrow"){o=h="‖"}else if(t==="\\updownarrow"){o="\\uparrow";h="⏐";u="\\downarrow"}else if(t==="\\Updownarrow"){o="\\Uparrow";h="‖";u="\\Downarrow"}else if(g.contains(fa,t)){h="∣";m="vert";c=333}else if(g.contains(va,t)){h="∥";m="doublevert";c=556}else if(t==="["||t==="\\lbrack"){o="⎡";h="⎢";u="⎣";p="Size4-Regular";m="lbrack";c=667}else if(t==="]"||t==="\\rbrack"){o="⎤";h="⎥";u="⎦";p="Size4-Regular";m="rbrack";c=667}else if(t==="\\lfloor"||t==="⌊"){h=o="⎢";u="⎣";p="Size4-Regular";m="lfloor";c=667}else if(t==="\\lceil"||t==="⌈"){o="⎡";h=u="⎢";p="Size4-Regular";m="lceil";c=667}else if(t==="\\rfloor"||t==="⌋"){h=o="⎥";u="⎦";p="Size4-Regular";m="rfloor";c=667}else if(t==="\\rceil"||t==="⌉"){o="⎤";h=u="⎥";p="Size4-Regular";m="rceil";c=667}else if(t==="("||t==="\\lparen"){o="⎛";h="⎜";u="⎝";p="Size4-Regular";m="lparen";c=875}else if(t===")"||t==="\\rparen"){o="⎞";h="⎟";u="⎠";p="Size4-Regular";m="rparen";c=875}else if(t==="\\{"||t==="\\lbrace"){o="⎧";l="⎨";u="⎩";h="⎪";p="Size4-Regular"}else if(t==="\\}"||t==="\\rbrace"){o="⎫";l="⎬";u="⎭";h="⎪";p="Size4-Regular"}else if(t==="\\lgroup"||t==="⟮"){o="⎧";u="⎩";h="⎪";p="Size4-Regular"}else if(t==="\\rgroup"||t==="⟯"){o="⎫";u="⎭";h="⎪";p="Size4-Regular"}else if(t==="\\lmoustache"||t==="⎰"){o="⎧";u="⎭";h="⎪";p="Size4-Regular"}else if(t==="\\rmoustache"||t==="⎱"){o="⎫";u="⎩";h="⎪";p="Size4-Regular"}var d=na(o,p,n);var f=d.height+d.depth;var v=na(h,p,n);var b=v.height+v.depth;var y=na(u,p,n);var x=y.height+y.depth;var w=0;var k=1;if(l!==null){var S=na(l,p,n);w=S.height+S.depth;k=2}var M=f+x+w;var z=Math.max(0,Math.ceil((r-M)/(k*b)));var A=M+z*k*b;var T=i.fontMetrics().axisHeight;if(a){T*=i.sizeMultiplier}var B=A/2-T;var C=[];if(m.length>0){var N=A-f-x;var q=Math.round(A*1e3);var I=Q(m,Math.round(N*1e3));var R=new Be(m,I);var H=(c/1e3).toFixed(3)+"em";var O=(q/1e3).toFixed(3)+"em";var E=new Te([R],{width:H,height:O,viewBox:"0 0 "+c+" "+q});var D=Vt.makeSvgSpan([],[E],i);D.height=q/1e3;D.style.width=H;D.style.height=O;C.push({type:"elem",elem:D})}else{C.push(ma(u,p,n));C.push(da);if(l===null){var V=A-f-x+2*pa;C.push(ca(h,V,i))}else{var P=(A-f-x-w)/2+2*pa;C.push(ca(h,P,i));C.push(da);C.push(ma(l,p,n));C.push(da);C.push(ca(h,P,i))}C.push(da);C.push(ma(o,p,n))}var F=i.havingBaseStyle(L.TEXT);var G=Vt.makeVList({positionType:"bottom",positionData:B,children:C},F);return sa(Vt.makeSpan(["delimsizing","mult"],[G],F),L.TEXT,i,s)};var ba=80;var ya=.08;var xa=function e(t,r,a,i,n){var s=Z(t,i,a);var o=new Be(t,s);var l=new Te([o],{width:"400em",height:ve(r),viewBox:"0 0 400000 "+a,preserveAspectRatio:"xMinYMin slice"});return Vt.makeSvgSpan(["hide-tail"],[l],n)};var wa=function e(t,r){var a=r.havingBaseSizing();var i=qa("\\surd",t*a.sizeMultiplier,Ca,a);var n=a.sizeMultiplier;var s=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness);var o;var l=0;var h=0;var u=0;var m;if(i.type==="small"){u=1e3+1e3*s+ba;if(t<1){n=1}else if(t<1.4){n=.7}l=(1+s+ya)/n;h=(1+s)/n;o=xa("sqrtMain",l,u,s,r);o.style.minWidth="0.853em";m=.833/n}else if(i.type==="large"){u=(1e3+ba)*za[i.size];h=(za[i.size]+s)/n;l=(za[i.size]+s+ya)/n;o=xa("sqrtSize"+i.size,l,u,s,r);o.style.minWidth="1.02em";m=1/n}else{l=t+s+ya;h=t+s;u=Math.floor(1e3*t+s)+ba;o=xa("sqrtTall",l,u,s,r);o.style.minWidth="0.742em";m=1.056}o.height=h;o.style.height=ve(l);return{span:o,advanceWidth:m,ruleWidth:(r.fontMetrics().sqrtRuleThickness+s)*n}};var ka=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"];var Sa=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"];var Ma=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"];var za=[0,1.2,1.8,2.4,3];var Aa=function e(t,r,a,i,s){if(t==="<"||t==="\\lt"||t==="⟨"){t="\\langle"}else if(t===">"||t==="\\gt"||t==="⟩"){t="\\rangle"}if(g.contains(ka,t)||g.contains(Ma,t)){return ua(t,r,false,a,i,s)}else if(g.contains(Sa,t)){return ga(t,za[r],false,a,i,s)}else{throw new n("Illegal delimiter: '"+t+"'")}};var Ta=[{type:"small",style:L.SCRIPTSCRIPT},{type:"small",style:L.SCRIPT},{type:"small",style:L.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}];var Ba=[{type:"small",style:L.SCRIPTSCRIPT},{type:"small",style:L.SCRIPT},{type:"small",style:L.TEXT},{type:"stack"}];var Ca=[{type:"small",style:L.SCRIPTSCRIPT},{type:"small",style:L.SCRIPT},{type:"small",style:L.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}];var Na=function e(t){if(t.type==="small"){return"Main-Regular"}else if(t.type==="large"){return"Size"+t.size+"-Regular"}else if(t.type==="stack"){return"Size4-Regular"}else{throw new Error("Add support for delim type '"+t.type+"' here.")}};var qa=function e(t,r,a,i){var n=Math.min(2,3-i.style.size);for(var s=n;sr){return a[s]}}return a[a.length-1]};var Ia=function e(t,r,a,i,n,s){if(t==="<"||t==="\\lt"||t==="⟨"){t="\\langle"}else if(t===">"||t==="\\gt"||t==="⟩"){t="\\rangle"}var o;if(g.contains(Ma,t)){o=Ta}else if(g.contains(ka,t)){o=Ca}else{o=Ba}var l=qa(t,r,o,i);if(l.type==="small"){return la(t,l.style,a,i,n,s)}else if(l.type==="large"){return ua(t,l.size,a,i,n,s)}else{return ga(t,r,a,i,n,s)}};var Ra=function e(t,r,a,i,n,s){var o=i.fontMetrics().axisHeight*i.sizeMultiplier;var l=901;var h=5/i.fontMetrics().ptPerEm;var u=Math.max(r-o,a+o);var m=Math.max(u/500*l,2*u-h);return Ia(t,m,true,i,n,s)};var Ha={sqrtImage:wa,sizedDelim:Aa,sizeToMaxHeight:za,customSizedDelim:Ia,leftRightDelim:Ra};var Oa={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}};var Ea=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function La(e,t){var r=Dr(e);if(r&&g.contains(Ea,r.text)){return r}else if(r){throw new n("Invalid delimiter '"+r.text+"' after '"+t.funcName+"'",e)}else{throw new n("Invalid delimiter type '"+e.type+"'",e)}}jt({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{var r=La(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:Oa[e.funcName].size,mclass:Oa[e.funcName].mclass,delim:r.text}},htmlBuilder:(e,t)=>{if(e.delim==="."){return Vt.makeSpan([e.mclass])}return Ha.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass])},mathmlBuilder:e=>{var t=[];if(e.delim!=="."){t.push(gr(e.delim,e.mode))}var r=new vr.MathNode("mo",t);if(e.mclass==="mopen"||e.mclass==="mclose"){r.setAttribute("fence","true")}else{r.setAttribute("fence","false")}r.setAttribute("stretchy","true");var a=ve(Ha.sizeToMaxHeight[e.size]);r.setAttribute("minsize",a);r.setAttribute("maxsize",a);return r}});function Da(e){if(!e.body){throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}}jt({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:true},handler:(e,t)=>{var r=e.parser.gullet.macros.get("\\current@color");if(r&&typeof r!=="string"){throw new n("\\current@color set to non-string in \\right")}return{type:"leftright-right",mode:e.parser.mode,delim:La(t[0],e).text,color:r}}});jt({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:true},handler:(e,t)=>{var r=La(t[0],e);var a=e.parser;++a.leftrightDepth;var i=a.parseExpression(false);--a.leftrightDepth;a.expect("\\right",false);var n=Er(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:i,left:r.text,right:n.delim,rightColor:n.color}},htmlBuilder:(e,t)=>{Da(e);var r=ar(e.body,t,true,["mopen","mclose"]);var a=0;var i=0;var n=false;for(var s=0;s{Da(e);var r=wr(e.body,t);if(e.left!=="."){var a=new vr.MathNode("mo",[gr(e.left,e.mode)]);a.setAttribute("fence","true");r.unshift(a)}if(e.right!=="."){var i=new vr.MathNode("mo",[gr(e.right,e.mode)]);i.setAttribute("fence","true");if(e.rightColor){i.setAttribute("mathcolor",e.rightColor)}r.push(i)}return br(r)}});jt({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:true},handler:(e,t)=>{var r=La(t[0],e);if(!e.parser.leftrightDepth){throw new n("\\middle without preceding \\left",r)}return{type:"middle",mode:e.parser.mode,delim:r.text}},htmlBuilder:(e,t)=>{var r;if(e.delim==="."){r=lr(t,[])}else{r=Ha.sizedDelim(e.delim,1,t,e.mode,[]);var a={delim:e.delim,options:t};r.isMiddle=a}return r},mathmlBuilder:(e,t)=>{var r=e.delim==="\\vert"||e.delim==="|"?gr("|","text"):gr(e.delim,e.mode);var a=new vr.MathNode("mo",[r]);a.setAttribute("fence","true");a.setAttribute("lspace","0.05em");a.setAttribute("rspace","0.05em");return a}});var Va=(e,t)=>{var r=Vt.wrapFragment(hr(e.body,t),t);var a=e.label.slice(1);var i=t.sizeMultiplier;var n;var s=0;var o=g.isCharacterBox(e.body);if(a==="sout"){n=Vt.makeSpan(["stretchy","sout"]);n.height=t.fontMetrics().defaultRuleThickness/i;s=-.5*t.fontMetrics().xHeight}else if(a==="phase"){var l=fe({number:.6,unit:"pt"},t);var h=fe({number:.35,unit:"ex"},t);var u=t.havingBaseSizing();i=i/u.sizeMultiplier;var m=r.height+r.depth+l+h;r.style.paddingLeft=ve(m/2+l);var c=Math.floor(1e3*m*i);var p=j(c);var d=new Te([new Be("phase",p)],{width:"400em",height:ve(c/1e3),viewBox:"0 0 400000 "+c,preserveAspectRatio:"xMinYMin slice"});n=Vt.makeSvgSpan(["hide-tail"],[d],t);n.style.height=ve(m);s=r.depth+l+h}else{if(/cancel/.test(a)){if(!o){r.classes.push("cancel-pad")}}else if(a==="angl"){r.classes.push("anglpad")}else{r.classes.push("boxpad")}var f=0;var v=0;var b=0;if(/box/.test(a)){b=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);f=t.fontMetrics().fboxsep+(a==="colorbox"?0:b);v=f}else if(a==="angl"){b=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness);f=4*b;v=Math.max(0,.25-r.depth)}else{f=o?.2:0;v=f}n=Or.encloseSpan(r,a,f,v,t);if(/fbox|boxed|fcolorbox/.test(a)){n.style.borderStyle="solid";n.style.borderWidth=ve(b)}else if(a==="angl"&&b!==.049){n.style.borderTopWidth=ve(b);n.style.borderRightWidth=ve(b)}s=r.depth+v;if(e.backgroundColor){n.style.backgroundColor=e.backgroundColor;if(e.borderColor){n.style.borderColor=e.borderColor}}}var y;if(e.backgroundColor){y=Vt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:s},{type:"elem",elem:r,shift:0}]},t)}else{var x=/cancel|phase/.test(a)?["svg-align"]:[];y=Vt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:n,shift:s,wrapperClasses:x}]},t)}if(/cancel/.test(a)){y.height=r.height;y.depth=r.depth}if(/cancel/.test(a)&&!o){return Vt.makeSpan(["mord","cancel-lap"],[y],t)}else{return Vt.makeSpan(["mord"],[y],t)}};var Pa=(e,t)=>{var r=0;var a=new vr.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[Sr(e.body,t)]);switch(e.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\phase":a.setAttribute("notation","phasorangle");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\angl":a.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm;a.setAttribute("width","+"+2*r+"pt");a.setAttribute("height","+"+2*r+"pt");a.setAttribute("lspace",r+"pt");a.setAttribute("voffset",r+"pt");if(e.label==="\\fcolorbox"){var i=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);a.setAttribute("style","border: "+i+"em solid "+String(e.borderColor))}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}if(e.backgroundColor){a.setAttribute("mathbackground",e.backgroundColor)}return a};jt({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:true,argTypes:["color","text"]},handler(e,t,r){var{parser:a,funcName:i}=e;var n=Er(t[0],"color-token").color;var s=t[1];return{type:"enclose",mode:a.mode,label:i,backgroundColor:n,body:s}},htmlBuilder:Va,mathmlBuilder:Pa});jt({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:true,argTypes:["color","color","text"]},handler(e,t,r){var{parser:a,funcName:i}=e;var n=Er(t[0],"color-token").color;var s=Er(t[1],"color-token").color;var o=t[2];return{type:"enclose",mode:a.mode,label:i,backgroundColor:s,borderColor:n,body:o}},htmlBuilder:Va,mathmlBuilder:Pa});jt({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:true},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\fbox",body:t[0]}}});jt({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e;var i=t[0];return{type:"enclose",mode:r.mode,label:a,body:i}},htmlBuilder:Va,mathmlBuilder:Pa});jt({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:false},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\angl",body:t[0]}}});var Fa={};function Ga(e){var{type:t,names:r,props:a,handler:i,htmlBuilder:n,mathmlBuilder:s}=e;var o={type:t,numArgs:a.numArgs||0,allowedInText:false,numOptionalArgs:0,handler:i};for(var l=0;l{var t=e.parser.settings;if(!t.displayMode){throw new n("{"+e.envName+"} can be used only in"+" display mode.")}};function _a(e){if(e.indexOf("ed")===-1){return e.indexOf("*")===-1}}function ja(e,t,r){var{hskipBeforeAndAfter:a,addJot:s,cols:o,arraystretch:l,colSeparationType:h,autoTag:u,singleRow:m,emptySingleRow:c,maxNumCols:p,leqno:d}=t;e.gullet.beginGroup();if(!m){e.gullet.macros.set("\\cr","\\\\\\relax")}if(!l){var f=e.gullet.expandMacroAsText("\\arraystretch");if(f==null){l=1}else{l=parseFloat(f);if(!l||l<0){throw new n("Invalid \\arraystretch: "+f)}}}e.gullet.beginGroup();var v=[];var g=[v];var b=[];var y=[];var x=u!=null?[]:undefined;function w(){if(u){e.gullet.macros.set("\\@eqnsw","1",true)}}function k(){if(x){if(e.gullet.macros.get("\\df@tag")){x.push(e.subparse([new i("\\df@tag")]));e.gullet.macros.set("\\df@tag",undefined,true)}else{x.push(Boolean(u)&&e.gullet.macros.get("\\@eqnsw")==="1")}}}w();y.push(Xa(e));while(true){var S=e.parseExpression(false,m?"\\end":"\\\\");e.gullet.endGroup();e.gullet.beginGroup();S={type:"ordgroup",mode:e.mode,body:S};if(r){S={type:"styling",mode:e.mode,style:r,body:[S]}}v.push(S);var M=e.fetch().text;if(M==="&"){if(p&&v.length===p){if(m||h){throw new n("Too many tab characters: &",e.nextToken)}else{e.settings.reportNonstrict("textEnv","Too few columns "+"specified in the {array} column argument.")}}e.consume()}else if(M==="\\end"){k();if(v.length===1&&S.type==="styling"&&S.body[0].body.length===0&&(g.length>1||!c)){g.pop()}if(y.length0){w+=.25}u.push({pos:w,isDashed:e[t]})}}k(o[0]);for(a=0;a0){C+=x;if(ze))){for(a=0;a=l){continue}var W=void 0;if(i>0||t.hskipBeforeAndAfter){W=g.deflt(F.pregap,p);if(W!==0){R=Vt.makeSpan(["arraycolsep"],[]);R.style.width=ve(W);I.push(R)}}var _=[];for(a=0;a0){var K=Vt.makeLineSpan("hline",r,m);var J=Vt.makeLineSpan("hdashline",r,m);var Q=[{type:"elem",elem:h,shift:0}];while(u.length>0){var ee=u.pop();var te=ee.pos-N;if(ee.isDashed){Q.push({type:"elem",elem:J,shift:te})}else{Q.push({type:"elem",elem:K,shift:te})}}h=Vt.makeVList({positionType:"individualShift",children:Q},r)}if(O.length===0){return Vt.makeSpan(["mord"],[h],r)}else{var re=Vt.makeVList({positionType:"individualShift",children:O},r);re=Vt.makeSpan(["tag"],[re],r);return Vt.makeFragment([h,re])}};var Ka={c:"center ",l:"left ",r:"right "};var Ja=function e(t,r){var a=[];var i=new vr.MathNode("mtd",[],["mtr-glue"]);var n=new vr.MathNode("mtd",[],["mml-eqn-num"]);for(var s=0;s0){var d=t.cols;var f="";var v=false;var g=0;var b=d.length;if(d[0].type==="separator"){c+="top ";g=1}if(d[d.length-1].type==="separator"){c+="bottom ";b-=1}for(var y=g;y0?"left ":"";c+=M[M.length-1].length>0?"right ":"";for(var z=1;z-1?"alignat":"align";var s=t.envName==="split";var o=ja(t.parser,{cols:a,addJot:true,autoTag:s?undefined:_a(t.envName),emptySingleRow:true,colSeparationType:i,maxNumCols:s?2:undefined,leqno:t.parser.settings.leqno},"display");var l;var h=0;var u={type:"ordgroup",mode:t.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){var m="";for(var c=0;c0&&d){g=1}a[f]={type:"align",align:v,pregap:g,postgap:0}}o.colSeparationType=d?"align":"alignat";return o};Ga({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){var r=Dr(t[0]);var a=r?[t[0]]:Er(t[0],"ordgroup").body;var i=a.map((function(e){var t=Lr(e);var r=t.text;if("lcr".indexOf(r)!==-1){return{type:"align",align:r}}else if(r==="|"){return{type:"separator",separator:"|"}}else if(r===":"){return{type:"separator",separator:":"}}throw new n("Unknown column alignment: "+r,e)}));var s={cols:i,hskipBeforeAndAfter:true,maxNumCols:i.length};return ja(e.parser,s,$a(e.envName))},htmlBuilder:Za,mathmlBuilder:Ja});Ga({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")];var r="c";var a={hskipBeforeAndAfter:false,cols:[{type:"align",align:r}]};if(e.envName.charAt(e.envName.length-1)==="*"){var i=e.parser;i.consumeSpaces();if(i.fetch().text==="["){i.consume();i.consumeSpaces();r=i.fetch().text;if("lcr".indexOf(r)===-1){throw new n("Expected l or c or r",i.nextToken)}i.consume();i.consumeSpaces();i.expect("]");i.consume();a.cols=[{type:"align",align:r}]}}var s=ja(e.parser,a,$a(e.envName));var o=Math.max(0,...s.body.map((e=>e.length)));s.cols=new Array(o).fill({type:"align",align:r});return t?{type:"leftright",mode:e.mode,body:[s],left:t[0],right:t[1],rightColor:undefined}:s},htmlBuilder:Za,mathmlBuilder:Ja});Ga({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){var t={arraystretch:.5};var r=ja(e.parser,t,"script");r.colSeparationType="small";return r},htmlBuilder:Za,mathmlBuilder:Ja});Ga({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){var r=Dr(t[0]);var a=r?[t[0]]:Er(t[0],"ordgroup").body;var i=a.map((function(e){var t=Lr(e);var r=t.text;if("lc".indexOf(r)!==-1){return{type:"align",align:r}}throw new n("Unknown column alignment: "+r,e)}));if(i.length>1){throw new n("{subarray} can contain only one column")}var s={cols:i,hskipBeforeAndAfter:false,arraystretch:.5};s=ja(e.parser,s,"script");if(s.body.length>0&&s.body[0].length>1){throw new n("{subarray} can contain only one column")}return s},htmlBuilder:Za,mathmlBuilder:Ja});Ga({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){var t={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]};var r=ja(e.parser,t,$a(e.envName));return{type:"leftright",mode:e.mode,body:[r],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:undefined}},htmlBuilder:Za,mathmlBuilder:Ja});Ga({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Qa,htmlBuilder:Za,mathmlBuilder:Ja});Ga({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){if(g.contains(["gather","gather*"],e.envName)){Wa(e)}var t={cols:[{type:"align",align:"c"}],addJot:true,colSeparationType:"gather",autoTag:_a(e.envName),emptySingleRow:true,leqno:e.parser.settings.leqno};return ja(e.parser,t,"display")},htmlBuilder:Za,mathmlBuilder:Ja});Ga({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Qa,htmlBuilder:Za,mathmlBuilder:Ja});Ga({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){Wa(e);var t={autoTag:_a(e.envName),emptySingleRow:true,singleRow:true,maxNumCols:1,leqno:e.parser.settings.leqno};return ja(e.parser,t,"display")},htmlBuilder:Za,mathmlBuilder:Ja});Ga({type:"array",names:["CD"],props:{numArgs:0},handler(e){Wa(e);return Jr(e.parser)},htmlBuilder:Za,mathmlBuilder:Ja});Ya("\\nonumber","\\gdef\\@eqnsw{0}");Ya("\\notag","\\nonumber");jt({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:true,allowedInMath:true},handler(e,t){throw new n(e.funcName+" valid only within array environment")}});var ei=Fa;jt({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(e,t){var{parser:r,funcName:a}=e;var i=t[0];if(i.type!=="ordgroup"){throw new n("Invalid environment name",i)}var s="";for(var o=0;o{var r=e.font;var a=t.withFont(r);return hr(e.body,a)};var ri=(e,t)=>{var r=e.font;var a=t.withFont(r);return Sr(e.body,a)};var ai={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};jt({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:true},handler:(e,t)=>{var{parser:r,funcName:a}=e;var i=Zt(t[0]);var n=a;if(n in ai){n=ai[n]}return{type:"font",mode:r.mode,font:n.slice(1),body:i}},htmlBuilder:ti,mathmlBuilder:ri});jt({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{var{parser:r}=e;var a=t[0];var i=g.isCharacterBox(a);return{type:"mclass",mode:r.mode,mclass:Wr(a),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:a}],isCharacterBox:i}}});jt({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:true},handler:(e,t)=>{var{parser:r,funcName:a,breakOnTokenText:i}=e;var{mode:n}=r;var s=r.parseExpression(true,i);var o="math"+a.slice(1);return{type:"font",mode:n,font:o,body:{type:"ordgroup",mode:r.mode,body:s}}},htmlBuilder:ti,mathmlBuilder:ri});var ii=(e,t)=>{var r=t;if(e==="display"){r=r.id>=L.SCRIPT.id?r.text():L.DISPLAY}else if(e==="text"&&r.size===L.DISPLAY.size){r=L.TEXT}else if(e==="script"){r=L.SCRIPT}else if(e==="scriptscript"){r=L.SCRIPTSCRIPT}return r};var ni=(e,t)=>{var r=ii(e.size,t.style);var a=r.fracNum();var i=r.fracDen();var n;n=t.havingStyle(a);var s=hr(e.numer,n,t);if(e.continued){var o=8.5/t.fontMetrics().ptPerEm;var l=3.5/t.fontMetrics().ptPerEm;s.height=s.height0){d=3*c}else{d=7*c}f=t.fontMetrics().denom1}else{if(m>0){p=t.fontMetrics().num2;d=c}else{p=t.fontMetrics().num3;d=3*c}f=t.fontMetrics().denom2}var v;if(!u){var g=p-s.depth-(h.height-f);if(g{var r=new vr.MathNode("mfrac",[Sr(e.numer,t),Sr(e.denom,t)]);if(!e.hasBarLine){r.setAttribute("linethickness","0px")}else if(e.barSize){var a=fe(e.barSize,t);r.setAttribute("linethickness",ve(a))}var i=ii(e.size,t.style);if(i.size!==t.style.size){r=new vr.MathNode("mstyle",[r]);var n=i.size===L.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",n);r.setAttribute("scriptlevel","0")}if(e.leftDelim!=null||e.rightDelim!=null){var s=[];if(e.leftDelim!=null){var o=new vr.MathNode("mo",[new vr.TextNode(e.leftDelim.replace("\\",""))]);o.setAttribute("fence","true");s.push(o)}s.push(r);if(e.rightDelim!=null){var l=new vr.MathNode("mo",[new vr.TextNode(e.rightDelim.replace("\\",""))]);l.setAttribute("fence","true");s.push(l)}return br(s)}return r};jt({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:true},handler:(e,t)=>{var{parser:r,funcName:a}=e;var i=t[0];var n=t[1];var s;var o=null;var l=null;var h="auto";switch(a){case"\\dfrac":case"\\frac":case"\\tfrac":s=true;break;case"\\\\atopfrac":s=false;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=false;o="(";l=")";break;case"\\\\bracefrac":s=false;o="\\{";l="\\}";break;case"\\\\brackfrac":s=false;o="[";l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(a){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:r.mode,continued:false,numer:i,denom:n,hasBarLine:s,leftDelim:o,rightDelim:l,size:h,barSize:null}},htmlBuilder:ni,mathmlBuilder:si});jt({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(e,t)=>{var{parser:r,funcName:a}=e;var i=t[0];var n=t[1];return{type:"genfrac",mode:r.mode,continued:true,numer:i,denom:n,hasBarLine:true,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});jt({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:true},handler(e){var{parser:t,funcName:r,token:a}=e;var i;switch(r){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:t.mode,replaceWith:i,token:a}}});var oi=["display","text","script","scriptscript"];var li=function e(t){var r=null;if(t.length>0){r=t;r=r==="."?null:r}return r};jt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:true,argTypes:["math","math","size","text","math","math"]},handler(e,t){var{parser:r}=e;var a=t[4];var i=t[5];var n=Zt(t[0]);var s=n.type==="atom"&&n.family==="open"?li(n.text):null;var o=Zt(t[1]);var l=o.type==="atom"&&o.family==="close"?li(o.text):null;var h=Er(t[2],"size");var u;var m=null;if(h.isBlank){u=true}else{m=h.value;u=m.number>0}var c="auto";var p=t[3];if(p.type==="ordgroup"){if(p.body.length>0){var d=Er(p.body[0],"textord");c=oi[Number(d.text)]}}else{p=Er(p,"textord");c=oi[Number(p.text)]}return{type:"genfrac",mode:r.mode,numer:a,denom:i,continued:false,hasBarLine:u,barSize:m,leftDelim:s,rightDelim:l,size:c}},htmlBuilder:ni,mathmlBuilder:si});jt({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:true},handler(e,t){var{parser:r,funcName:a,token:i}=e;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Er(t[0],"size").value,token:i}}});jt({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(e,t)=>{var{parser:r,funcName:a}=e;var i=t[0];var n=f(Er(t[1],"infix").size);var s=t[2];var o=n.number>0;return{type:"genfrac",mode:r.mode,numer:i,denom:s,continued:false,hasBarLine:o,barSize:n,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:ni,mathmlBuilder:si});var hi=(e,t)=>{var r=t.style;var a;var i;if(e.type==="supsub"){a=e.sup?hr(e.sup,t.havingStyle(r.sup()),t):hr(e.sub,t.havingStyle(r.sub()),t);i=Er(e.base,"horizBrace")}else{i=Er(e,"horizBrace")}var n=hr(i.base,t.havingBaseStyle(L.DISPLAY));var s=Or.svgSpan(i,t);var o;if(i.isOver){o=Vt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n},{type:"kern",size:.1},{type:"elem",elem:s}]},t);o.children[0].children[0].children[1].classes.push("svg-align")}else{o=Vt.makeVList({positionType:"bottom",positionData:n.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:n}]},t);o.children[0].children[0].children[0].classes.push("svg-align")}if(a){var l=Vt.makeSpan(["mord",i.isOver?"mover":"munder"],[o],t);if(i.isOver){o=Vt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:a}]},t)}else{o=Vt.makeVList({positionType:"bottom",positionData:l.depth+.2+a.height+a.depth,children:[{type:"elem",elem:a},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}}return Vt.makeSpan(["mord",i.isOver?"mover":"munder"],[o],t)};var ui=(e,t)=>{var r=Or.mathMLnode(e.label);return new vr.MathNode(e.isOver?"mover":"munder",[Sr(e.base,t),r])};jt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e;return{type:"horizBrace",mode:r.mode,label:a,isOver:/^\\over/.test(a),base:t[0]}},htmlBuilder:hi,mathmlBuilder:ui});jt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:true},handler:(e,t)=>{var{parser:r}=e;var a=t[1];var i=Er(t[0],"url").url;if(!r.settings.isTrusted({command:"\\href",url:i})){return r.formatUnsupportedCmd("\\href")}return{type:"href",mode:r.mode,href:i,body:Kt(a)}},htmlBuilder:(e,t)=>{var r=ar(e.body,t,false);return Vt.makeAnchor(e.href,[],r,t)},mathmlBuilder:(e,t)=>{var r=kr(e.body,t);if(!(r instanceof pr)){r=new pr("mrow",[r])}r.setAttribute("href",e.href);return r}});jt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:true},handler:(e,t)=>{var{parser:r}=e;var a=Er(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:a})){return r.formatUnsupportedCmd("\\url")}var i=[];for(var n=0;n{var{parser:r,funcName:a,token:i}=e;var s=Er(t[0],"raw").string;var o=t[1];if(r.settings.strict){r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode")}var l;var h={};switch(a){case"\\htmlClass":h.class=s;l={command:"\\htmlClass",class:s};break;case"\\htmlId":h.id=s;l={command:"\\htmlId",id:s};break;case"\\htmlStyle":h.style=s;l={command:"\\htmlStyle",style:s};break;case"\\htmlData":{var u=s.split(",");for(var m=0;m{var r=ar(e.body,t,false);var a=["enclosing"];if(e.attributes.class){a.push(...e.attributes.class.trim().split(/\s+/))}var i=Vt.makeSpan(a,r,t);for(var n in e.attributes){if(n!=="class"&&e.attributes.hasOwnProperty(n)){i.setAttribute(n,e.attributes[n])}}return i},mathmlBuilder:(e,t)=>kr(e.body,t)});jt({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:true},handler:(e,t)=>{var{parser:r}=e;return{type:"htmlmathml",mode:r.mode,html:Kt(t[0]),mathml:Kt(t[1])}},htmlBuilder:(e,t)=>{var r=ar(e.html,t,false);return Vt.makeFragment(r)},mathmlBuilder:(e,t)=>kr(e.mathml,t)});var mi=function e(t){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(t)){return{number:+t,unit:"bp"}}else{var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t);if(!r){throw new n("Invalid size: '"+t+"' in \\includegraphics")}var a={number:+(r[1]+r[2]),unit:r[3]};if(!de(a)){throw new n("Invalid unit: '"+a.unit+"' in \\includegraphics.")}return a}};jt({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:false},handler:(e,t,r)=>{var{parser:a}=e;var i={number:0,unit:"em"};var s={number:.9,unit:"em"};var o={number:0,unit:"em"};var l="";if(r[0]){var h=Er(r[0],"raw").string;var u=h.split(",");for(var m=0;m{var r=fe(e.height,t);var a=0;if(e.totalheight.number>0){a=fe(e.totalheight,t)-r}var i=0;if(e.width.number>0){i=fe(e.width,t)}var n={height:ve(r+a)};if(i>0){n.width=ve(i)}if(a>0){n.verticalAlign=ve(-a)}var s=new Me(e.src,e.alt,n);s.height=r;s.depth=a;return s},mathmlBuilder:(e,t)=>{var r=new vr.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var a=fe(e.height,t);var i=0;if(e.totalheight.number>0){i=fe(e.totalheight,t)-a;r.setAttribute("valign",ve(-i))}r.setAttribute("height",ve(a+i));if(e.width.number>0){var n=fe(e.width,t);r.setAttribute("width",ve(n))}r.setAttribute("src",e.src);return r}});jt({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:true,allowedInText:true},handler(e,t){var{parser:r,funcName:a}=e;var i=Er(t[0],"size");if(r.settings.strict){var n=a[1]==="m";var s=i.value.unit==="mu";if(n){if(!s){r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, "+("not "+i.value.unit+" units"))}if(r.mode!=="math"){r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")}}else{if(s){r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}}}return{type:"kern",mode:r.mode,dimension:i.value}},htmlBuilder(e,t){return Vt.makeGlue(e.dimension,t)},mathmlBuilder(e,t){var r=fe(e.dimension,t);return new vr.SpaceNode(r)}});jt({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:true},handler:(e,t)=>{var{parser:r,funcName:a}=e;var i=t[0];return{type:"lap",mode:r.mode,alignment:a.slice(5),body:i}},htmlBuilder:(e,t)=>{var r;if(e.alignment==="clap"){r=Vt.makeSpan([],[hr(e.body,t)]);r=Vt.makeSpan(["inner"],[r],t)}else{r=Vt.makeSpan(["inner"],[hr(e.body,t)])}var a=Vt.makeSpan(["fix"],[]);var i=Vt.makeSpan([e.alignment],[r,a],t);var n=Vt.makeSpan(["strut"]);n.style.height=ve(i.height+i.depth);if(i.depth){n.style.verticalAlign=ve(-i.depth)}i.children.unshift(n);i=Vt.makeSpan(["thinbox"],[i],t);return Vt.makeSpan(["mord","vbox"],[i],t)},mathmlBuilder:(e,t)=>{var r=new vr.MathNode("mpadded",[Sr(e.body,t)]);if(e.alignment!=="rlap"){var a=e.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",a+"width")}r.setAttribute("width","0px");return r}});jt({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:true,allowedInMath:false},handler(e,t){var{funcName:r,parser:a}=e;var i=a.mode;a.switchMode("math");var n=r==="\\("?"\\)":"$";var s=a.parseExpression(false,n);a.expect(n);a.switchMode(i);return{type:"styling",mode:a.mode,style:"text",body:s}}});jt({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:true,allowedInMath:false},handler(e,t){throw new n("Mismatched "+e.funcName)}});var ci=(e,t)=>{switch(t.style.size){case L.DISPLAY.size:return e.display;case L.TEXT.size:return e.text;case L.SCRIPT.size:return e.script;case L.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};jt({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:true},handler:(e,t)=>{var{parser:r}=e;return{type:"mathchoice",mode:r.mode,display:Kt(t[0]),text:Kt(t[1]),script:Kt(t[2]),scriptscript:Kt(t[3])}},htmlBuilder:(e,t)=>{var r=ci(e,t);var a=ar(r,t,false);return Vt.makeFragment(a)},mathmlBuilder:(e,t)=>{var r=ci(e,t);return kr(r,t)}});var pi=(e,t,r,a,i,n,s)=>{e=Vt.makeSpan([],[e]);var o=r&&g.isCharacterBox(r);var l;var h;if(t){var u=hr(t,a.havingStyle(i.sup()),a);h={elem:u,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-u.depth)}}if(r){var m=hr(r,a.havingStyle(i.sub()),a);l={elem:m,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-m.height)}}var c;if(h&&l){var p=a.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+e.depth+s;c=Vt.makeVList({positionType:"bottom",positionData:p,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:ve(-n)},{type:"kern",size:l.kern},{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:ve(n)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else if(l){var d=e.height-s;c=Vt.makeVList({positionType:"top",positionData:d,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:ve(-n)},{type:"kern",size:l.kern},{type:"elem",elem:e}]},a)}else if(h){var f=e.depth+s;c=Vt.makeVList({positionType:"bottom",positionData:f,children:[{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:ve(n)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else{return e}var v=[c];if(l&&n!==0&&!o){var b=Vt.makeSpan(["mspace"],[],a);b.style.marginRight=ve(n);v.unshift(b)}return Vt.makeSpan(["mop","op-limits"],v,a)};var di=["\\smallint"];var fi=(e,t)=>{var r;var a;var i=false;var n;if(e.type==="supsub"){r=e.sup;a=e.sub;n=Er(e.base,"op");i=true}else{n=Er(e,"op")}var s=t.style;var o=false;if(s.size===L.DISPLAY.size&&n.symbol&&!g.contains(di,n.name)){o=true}var l;if(n.symbol){var h=o?"Size2-Regular":"Size1-Regular";var u="";if(n.name==="\\oiint"||n.name==="\\oiiint"){u=n.name.slice(1);n.name=u==="oiint"?"\\iint":"\\iiint"}l=Vt.makeSymbol(n.name,h,"math",t,["mop","op-symbol",o?"large-op":"small-op"]);if(u.length>0){var m=l.italic;var c=Vt.staticSvg(u+"Size"+(o?"2":"1"),t);l=Vt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:0},{type:"elem",elem:c,shift:o?.08:0}]},t);n.name="\\"+u;l.classes.unshift("mop");l.italic=m}}else if(n.body){var p=ar(n.body,t,true);if(p.length===1&&p[0]instanceof Ae){l=p[0];l.classes[0]="mop"}else{l=Vt.makeSpan(["mop"],p,t)}}else{var d=[];for(var f=1;f{var r;if(e.symbol){r=new pr("mo",[gr(e.name,e.mode)]);if(g.contains(di,e.name)){r.setAttribute("largeop","false")}}else if(e.body){r=new pr("mo",wr(e.body,t))}else{r=new pr("mi",[new dr(e.name.slice(1))]);var a=new pr("mo",[gr("⁡","text")]);if(e.parentIsSupSub){r=new pr("mrow",[r,a])}else{r=cr([r,a])}}return r};var gi={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};jt({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(e,t)=>{var{parser:r,funcName:a}=e;var i=a;if(i.length===1){i=gi[i]}return{type:"op",mode:r.mode,limits:true,parentIsSupSub:false,symbol:true,name:i}},htmlBuilder:fi,mathmlBuilder:vi});jt({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:true},handler:(e,t)=>{var{parser:r}=e;var a=t[0];return{type:"op",mode:r.mode,limits:false,parentIsSupSub:false,symbol:false,body:Kt(a)}},htmlBuilder:fi,mathmlBuilder:vi});var bi={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};jt({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:false,parentIsSupSub:false,symbol:false,name:r}},htmlBuilder:fi,mathmlBuilder:vi});jt({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:true,parentIsSupSub:false,symbol:false,name:r}},htmlBuilder:fi,mathmlBuilder:vi});jt({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;var a=r;if(a.length===1){a=bi[a]}return{type:"op",mode:t.mode,limits:false,parentIsSupSub:false,symbol:true,name:a}},htmlBuilder:fi,mathmlBuilder:vi});var yi=(e,t)=>{var r;var a;var i=false;var n;if(e.type==="supsub"){r=e.sup;a=e.sub;n=Er(e.base,"operatorname");i=true}else{n=Er(e,"operatorname")}var s;if(n.body.length>0){var o=n.body.map((e=>{var t=e.text;if(typeof t==="string"){return{type:"textord",mode:e.mode,text:t}}else{return e}}));var l=ar(o,t.withFont("mathrm"),true);for(var h=0;h{var r=wr(e.body,t.withFont("mathrm"));var a=true;for(var i=0;ie.toText())).join("");r=[new vr.TextNode(o)]}var l=new vr.MathNode("mi",r);l.setAttribute("mathvariant","normal");var h=new vr.MathNode("mo",[gr("⁡","text")]);if(e.parentIsSupSub){return new vr.MathNode("mrow",[l,h])}else{return vr.newDocumentFragment([l,h])}};jt({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(e,t)=>{var{parser:r,funcName:a}=e;var i=t[0];return{type:"operatorname",mode:r.mode,body:Kt(i),alwaysHandleSupSub:a==="\\operatornamewithlimits",limits:false,parentIsSupSub:false}},htmlBuilder:yi,mathmlBuilder:xi});Ya("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");$t({type:"ordgroup",htmlBuilder(e,t){if(e.semisimple){return Vt.makeFragment(ar(e.body,t,false))}return Vt.makeSpan(["mord"],ar(e.body,t,true),t)},mathmlBuilder(e,t){return kr(e.body,t,true)}});jt({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){var{parser:r}=e;var a=t[0];return{type:"overline",mode:r.mode,body:a}},htmlBuilder(e,t){var r=hr(e.body,t.havingCrampedStyle());var a=Vt.makeLineSpan("overline-line",t);var i=t.fontMetrics().defaultRuleThickness;var n=Vt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:a},{type:"kern",size:i}]},t);return Vt.makeSpan(["mord","overline"],[n],t)},mathmlBuilder(e,t){var r=new vr.MathNode("mo",[new vr.TextNode("‾")]);r.setAttribute("stretchy","true");var a=new vr.MathNode("mover",[Sr(e.body,t),r]);a.setAttribute("accent","true");return a}});jt({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:true},handler:(e,t)=>{var{parser:r}=e;var a=t[0];return{type:"phantom",mode:r.mode,body:Kt(a)}},htmlBuilder:(e,t)=>{var r=ar(e.body,t.withPhantom(),false);return Vt.makeFragment(r)},mathmlBuilder:(e,t)=>{var r=wr(e.body,t);return new vr.MathNode("mphantom",r)}});jt({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:true},handler:(e,t)=>{var{parser:r}=e;var a=t[0];return{type:"hphantom",mode:r.mode,body:a}},htmlBuilder:(e,t)=>{var r=Vt.makeSpan([],[hr(e.body,t.withPhantom())]);r.height=0;r.depth=0;if(r.children){for(var a=0;a{var r=wr(Kt(e.body),t);var a=new vr.MathNode("mphantom",r);var i=new vr.MathNode("mpadded",[a]);i.setAttribute("height","0px");i.setAttribute("depth","0px");return i}});jt({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:true},handler:(e,t)=>{var{parser:r}=e;var a=t[0];return{type:"vphantom",mode:r.mode,body:a}},htmlBuilder:(e,t)=>{var r=Vt.makeSpan(["inner"],[hr(e.body,t.withPhantom())]);var a=Vt.makeSpan(["fix"],[]);return Vt.makeSpan(["mord","rlap"],[r,a],t)},mathmlBuilder:(e,t)=>{var r=wr(Kt(e.body),t);var a=new vr.MathNode("mphantom",r);var i=new vr.MathNode("mpadded",[a]);i.setAttribute("width","0px");return i}});jt({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:true},handler(e,t){var{parser:r}=e;var a=Er(t[0],"size").value;var i=t[1];return{type:"raisebox",mode:r.mode,dy:a,body:i}},htmlBuilder(e,t){var r=hr(e.body,t);var a=fe(e.dy,t);return Vt.makeVList({positionType:"shift",positionData:-a,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){var r=new vr.MathNode("mpadded",[Sr(e.body,t)]);var a=e.dy.number+e.dy.unit;r.setAttribute("voffset",a);return r}});jt({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:true},handler(e){var{parser:t}=e;return{type:"internal",mode:t.mode}}});jt({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:true,allowedInMath:true,argTypes:["size","size","size"]},handler(e,t,r){var{parser:a}=e;var i=r[0];var n=Er(t[0],"size");var s=Er(t[1],"size");return{type:"rule",mode:a.mode,shift:i&&Er(i,"size").value,width:n.value,height:s.value}},htmlBuilder(e,t){var r=Vt.makeSpan(["mord","rule"],[],t);var a=fe(e.width,t);var i=fe(e.height,t);var n=e.shift?fe(e.shift,t):0;r.style.borderRightWidth=ve(a);r.style.borderTopWidth=ve(i);r.style.bottom=ve(n);r.width=a;r.height=i+n;r.depth=-n;r.maxFontSize=i*1.125*t.sizeMultiplier;return r},mathmlBuilder(e,t){var r=fe(e.width,t);var a=fe(e.height,t);var i=e.shift?fe(e.shift,t):0;var n=t.color&&t.getColor()||"black";var s=new vr.MathNode("mspace");s.setAttribute("mathbackground",n);s.setAttribute("width",ve(r));s.setAttribute("height",ve(a));var o=new vr.MathNode("mpadded",[s]);if(i>=0){o.setAttribute("height",ve(i))}else{o.setAttribute("height",ve(i));o.setAttribute("depth",ve(-i))}o.setAttribute("voffset",ve(i));return o}});function wi(e,t,r){var a=ar(e,t,false);var i=t.sizeMultiplier/r.sizeMultiplier;for(var n=0;n{var r=t.havingSize(e.size);return wi(e.body,r,t)};jt({type:"sizing",names:ki,props:{numArgs:0,allowedInText:true},handler:(e,t)=>{var{breakOnTokenText:r,funcName:a,parser:i}=e;var n=i.parseExpression(false,r);return{type:"sizing",mode:i.mode,size:ki.indexOf(a)+1,body:n}},htmlBuilder:Si,mathmlBuilder:(e,t)=>{var r=t.havingSize(e.size);var a=wr(e.body,r);var i=new vr.MathNode("mstyle",a);i.setAttribute("mathsize",ve(r.sizeMultiplier));return i}});jt({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:true},handler:(e,t,r)=>{var{parser:a}=e;var i=false;var n=false;var s=r[0]&&Er(r[0],"ordgroup");if(s){var o="";for(var l=0;l{var r=Vt.makeSpan([],[hr(e.body,t)]);if(!e.smashHeight&&!e.smashDepth){return r}if(e.smashHeight){r.height=0;if(r.children){for(var a=0;a{var r=new vr.MathNode("mpadded",[Sr(e.body,t)]);if(e.smashHeight){r.setAttribute("height","0px")}if(e.smashDepth){r.setAttribute("depth","0px")}return r}});jt({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:a}=e;var i=r[0];var n=t[0];return{type:"sqrt",mode:a.mode,body:n,index:i}},htmlBuilder(e,t){var r=hr(e.body,t.havingCrampedStyle());if(r.height===0){r.height=t.fontMetrics().xHeight}r=Vt.wrapFragment(r,t);var a=t.fontMetrics();var i=a.defaultRuleThickness;var n=i;if(t.style.idr.height+r.depth+s){s=(s+m-r.height-r.depth)/2}var c=l.height-r.height-s-h;r.style.paddingLeft=ve(u);var p=Vt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+c)},{type:"elem",elem:l},{type:"kern",size:h}]},t);if(!e.index){return Vt.makeSpan(["mord","sqrt"],[p],t)}else{var d=t.havingStyle(L.SCRIPTSCRIPT);var f=hr(e.index,d,t);var v=.6*(p.height-p.depth);var g=Vt.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:f}]},t);var b=Vt.makeSpan(["root"],[g]);return Vt.makeSpan(["mord","sqrt"],[b,p],t)}},mathmlBuilder(e,t){var{body:r,index:a}=e;return a?new vr.MathNode("mroot",[Sr(r,t),Sr(a,t)]):new vr.MathNode("msqrt",[Sr(r,t)])}});var Mi={display:L.DISPLAY,text:L.TEXT,script:L.SCRIPT,scriptscript:L.SCRIPTSCRIPT};jt({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:true,primitive:true},handler(e,t){var{breakOnTokenText:r,funcName:a,parser:i}=e;var n=i.parseExpression(true,r);var s=a.slice(1,a.length-5);return{type:"styling",mode:i.mode,style:s,body:n}},htmlBuilder(e,t){var r=Mi[e.style];var a=t.havingStyle(r).withFont("");return wi(e.body,a,t)},mathmlBuilder(e,t){var r=Mi[e.style];var a=t.havingStyle(r);var i=wr(e.body,a);var n=new vr.MathNode("mstyle",i);var s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]};var o=s[e.style];n.setAttribute("scriptlevel",o[0]);n.setAttribute("displaystyle",o[1]);return n}});var zi=function e(t,r){var a=t.base;if(!a){return null}else if(a.type==="op"){var i=a.limits&&(r.style.size===L.DISPLAY.size||a.alwaysHandleSupSub);return i?fi:null}else if(a.type==="operatorname"){var n=a.alwaysHandleSupSub&&(r.style.size===L.DISPLAY.size||a.limits);return n?yi:null}else if(a.type==="accent"){return g.isCharacterBox(a.base)?Vr:null}else if(a.type==="horizBrace"){var s=!t.sub;return s===a.isOver?hi:null}else{return null}};$t({type:"supsub",htmlBuilder(e,t){var r=zi(e,t);if(r){return r(e,t)}var{base:a,sup:i,sub:n}=e;var s=hr(a,t);var o;var l;var h=t.fontMetrics();var u=0;var m=0;var c=a&&g.isCharacterBox(a);if(i){var p=t.havingStyle(t.style.sup());o=hr(i,p,t);if(!c){u=s.height-p.fontMetrics().supDrop*p.sizeMultiplier/t.sizeMultiplier}}if(n){var d=t.havingStyle(t.style.sub());l=hr(n,d,t);if(!c){m=s.depth+d.fontMetrics().subDrop*d.sizeMultiplier/t.sizeMultiplier}}var f;if(t.style===L.DISPLAY){f=h.sup1}else if(t.style.cramped){f=h.sup3}else{f=h.sup2}var v=t.sizeMultiplier;var b=ve(.5/h.ptPerEm/v);var y=null;if(l){var x=e.base&&e.base.type==="op"&&e.base.name&&(e.base.name==="\\oiint"||e.base.name==="\\oiiint");if(s instanceof Ae||x){y=ve(-s.italic)}}var w;if(o&&l){u=Math.max(u,f,o.depth+.25*h.xHeight);m=Math.max(m,h.sub2);var k=h.defaultRuleThickness;var S=4*k;if(u-o.depth-(l.height-m)0){u+=M;m-=M}}var z=[{type:"elem",elem:l,shift:m,marginRight:b,marginLeft:y},{type:"elem",elem:o,shift:-u,marginRight:b}];w=Vt.makeVList({positionType:"individualShift",children:z},t)}else if(l){m=Math.max(m,h.sub1,l.height-.8*h.xHeight);var A=[{type:"elem",elem:l,marginLeft:y,marginRight:b}];w=Vt.makeVList({positionType:"shift",positionData:m,children:A},t)}else if(o){u=Math.max(u,f,o.depth+.25*h.xHeight);w=Vt.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:o,marginRight:b}]},t)}else{throw new Error("supsub must have either sup or sub.")}var T=or(s,"right")||"mord";return Vt.makeSpan([T],[s,Vt.makeSpan(["msupsub"],[w])],t)},mathmlBuilder(e,t){var r=false;var a;var i;if(e.base&&e.base.type==="horizBrace"){i=!!e.sup;if(i===e.base.isOver){r=true;a=e.base.isOver}}if(e.base&&(e.base.type==="op"||e.base.type==="operatorname")){e.base.parentIsSupSub=true}var n=[Sr(e.base,t)];if(e.sub){n.push(Sr(e.sub,t))}if(e.sup){n.push(Sr(e.sup,t))}var s;if(r){s=a?"mover":"munder"}else if(!e.sub){var o=e.base;if(o&&o.type==="op"&&o.limits&&(t.style===L.DISPLAY||o.alwaysHandleSupSub)){s="mover"}else if(o&&o.type==="operatorname"&&o.alwaysHandleSupSub&&(o.limits||t.style===L.DISPLAY)){s="mover"}else{s="msup"}}else if(!e.sup){var l=e.base;if(l&&l.type==="op"&&l.limits&&(t.style===L.DISPLAY||l.alwaysHandleSupSub)){s="munder"}else if(l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||t.style===L.DISPLAY)){s="munder"}else{s="msub"}}else{var h=e.base;if(h&&h.type==="op"&&h.limits&&t.style===L.DISPLAY){s="munderover"}else if(h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(t.style===L.DISPLAY||h.limits)){s="munderover"}else{s="msubsup"}}return new vr.MathNode(s,n)}});$t({type:"atom",htmlBuilder(e,t){return Vt.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder(e,t){var r=new vr.MathNode("mo",[gr(e.text,e.mode)]);if(e.family==="bin"){var a=yr(e,t);if(a==="bold-italic"){r.setAttribute("mathvariant",a)}}else if(e.family==="punct"){r.setAttribute("separator","true")}else if(e.family==="open"||e.family==="close"){r.setAttribute("stretchy","false")}return r}});var Ai={mi:"italic",mn:"normal",mtext:"normal"};$t({type:"mathord",htmlBuilder(e,t){return Vt.makeOrd(e,t,"mathord")},mathmlBuilder(e,t){var r=new vr.MathNode("mi",[gr(e.text,e.mode,t)]);var a=yr(e,t)||"italic";if(a!==Ai[r.type]){r.setAttribute("mathvariant",a)}return r}});$t({type:"textord",htmlBuilder(e,t){return Vt.makeOrd(e,t,"textord")},mathmlBuilder(e,t){var r=gr(e.text,e.mode,t);var a=yr(e,t)||"normal";var i;if(e.mode==="text"){i=new vr.MathNode("mtext",[r])}else if(/[0-9]/.test(e.text)){i=new vr.MathNode("mn",[r])}else if(e.text==="\\prime"){i=new vr.MathNode("mo",[r])}else{i=new vr.MathNode("mi",[r])}if(a!==Ai[i.type]){i.setAttribute("mathvariant",a)}return i}});var Ti={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"};var Bi={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};$t({type:"spacing",htmlBuilder(e,t){if(Bi.hasOwnProperty(e.text)){var r=Bi[e.text].className||"";if(e.mode==="text"){var a=Vt.makeOrd(e,t,"textord");a.classes.push(r);return a}else{return Vt.makeSpan(["mspace",r],[Vt.mathsym(e.text,e.mode,t)],t)}}else if(Ti.hasOwnProperty(e.text)){return Vt.makeSpan(["mspace",Ti[e.text]],[],t)}else{throw new n('Unknown type of space "'+e.text+'"')}},mathmlBuilder(e,t){var r;if(Bi.hasOwnProperty(e.text)){r=new vr.MathNode("mtext",[new vr.TextNode(" ")])}else if(Ti.hasOwnProperty(e.text)){return new vr.MathNode("mspace")}else{throw new n('Unknown type of space "'+e.text+'"')}return r}});var Ci=()=>{var e=new vr.MathNode("mtd",[]);e.setAttribute("width","50%");return e};$t({type:"tag",mathmlBuilder(e,t){var r=new vr.MathNode("mtable",[new vr.MathNode("mtr",[Ci(),new vr.MathNode("mtd",[kr(e.body,t)]),Ci(),new vr.MathNode("mtd",[kr(e.tag,t)])])]);r.setAttribute("width","100%");return r}});var Ni={"\\text":undefined,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"};var qi={"\\textbf":"textbf","\\textmd":"textmd"};var Ii={"\\textit":"textit","\\textup":"textup"};var Ri=(e,t)=>{var r=e.font;if(!r){return t}else if(Ni[r]){return t.withTextFontFamily(Ni[r])}else if(qi[r]){return t.withTextFontWeight(qi[r])}else if(r==="\\emph"){return t.fontShape==="textit"?t.withTextFontShape("textup"):t.withTextFontShape("textit")}return t.withTextFontShape(Ii[r])};jt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:true,allowedInText:true},handler(e,t){var{parser:r,funcName:a}=e;var i=t[0];return{type:"text",mode:r.mode,body:Kt(i),font:a}},htmlBuilder(e,t){var r=Ri(e,t);var a=ar(e.body,r,true);return Vt.makeSpan(["mord","text"],a,r)},mathmlBuilder(e,t){var r=Ri(e,t);return kr(e.body,r)}});jt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:true},handler(e,t){var{parser:r}=e;return{type:"underline",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=hr(e.body,t);var a=Vt.makeLineSpan("underline-line",t);var i=t.fontMetrics().defaultRuleThickness;var n=Vt.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:i},{type:"elem",elem:a},{type:"kern",size:3*i},{type:"elem",elem:r}]},t);return Vt.makeSpan(["mord","underline"],[n],t)},mathmlBuilder(e,t){var r=new vr.MathNode("mo",[new vr.TextNode("‾")]);r.setAttribute("stretchy","true");var a=new vr.MathNode("munder",[Sr(e.body,t),r]);a.setAttribute("accentunder","true");return a}});jt({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:false},handler(e,t){var{parser:r}=e;return{type:"vcenter",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=hr(e.body,t);var a=t.fontMetrics().axisHeight;var i=.5*(r.height-a-(r.depth+a));return Vt.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){return new vr.MathNode("mpadded",[Sr(e.body,t)],["vcenter"])}});jt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:true},handler(e,t,r){throw new n("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){var r=Hi(e);var a=[];var i=t.havingStyle(t.style.text());for(var n=0;ne.body.replace(/ /g,e.star?"␣":" ");var Oi=Xt;var Ei="[ \r\n\t]";var Li="\\\\[a-zA-Z@]+";var Di="\\\\[^\ud800-\udfff]";var Vi="("+Li+")"+Ei+"*";var Pi="\\\\(\n|[ \r\t]+\n?)[ \r\t]*";var Fi="[̀-ͯ]";var Gi=new RegExp(Fi+"+$");var Ui="("+Ei+"+)|"+(Pi+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(Fi+"*")+"|[\ud800-\udbff][\udc00-\udfff]"+(Fi+"*")+"|\\\\verb\\*([^]).*?\\4"+"|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+Vi)+("|"+Di+")");class Yi{constructor(e,t){this.input=void 0;this.settings=void 0;this.tokenRegex=void 0;this.catcodes=void 0;this.input=e;this.settings=t;this.tokenRegex=new RegExp(Ui,"g");this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input;var t=this.tokenRegex.lastIndex;if(t===e.length){return new i("EOF",new a(this,t,t))}var r=this.tokenRegex.exec(e);if(r===null||r.index!==t){throw new n("Unexpected character: '"+e[t]+"'",new i(e[t],new a(this,t,t+1)))}var s=r[6]||r[3]||(r[2]?"\\ ":" ");if(this.catcodes[s]===14){var o=e.indexOf("\n",this.tokenRegex.lastIndex);if(o===-1){this.tokenRegex.lastIndex=e.length;this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would "+"fail because of commenting the end of math mode (e.g. $)")}else{this.tokenRegex.lastIndex=o+1}return this.lex()}return new i(s,new a(this,t,this.tokenRegex.lastIndex))}}class Xi{constructor(e,t){if(e===void 0){e={}}if(t===void 0){t={}}this.current=void 0;this.builtins=void 0;this.undefStack=void 0;this.current=t;this.builtins=e;this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0){throw new n("Unbalanced namespace destruction: attempt "+"to pop global namespace; please report this as a bug")}var e=this.undefStack.pop();for(var t in e){if(e.hasOwnProperty(t)){if(e[t]==null){delete this.current[t]}else{this.current[t]=e[t]}}}}endGroups(){while(this.undefStack.length>0){this.endGroup()}}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){if(this.current.hasOwnProperty(e)){return this.current[e]}else{return this.builtins[e]}}set(e,t,r){if(r===void 0){r=false}if(r){for(var a=0;a0){this.undefStack[this.undefStack.length-1][e]=t}}else{var i=this.undefStack[this.undefStack.length-1];if(i&&!i.hasOwnProperty(e)){i[e]=this.current[e]}}if(t==null){delete this.current[e]}else{this.current[e]=t}}}var Wi=Ua;Ya("\\noexpand",(function(e){var t=e.popToken();if(e.isExpandable(t.text)){t.noexpand=true;t.treatAsRelax=true}return{tokens:[t],numArgs:0}}));Ya("\\expandafter",(function(e){var t=e.popToken();e.expandOnce(true);return{tokens:[t],numArgs:0}}));Ya("\\@firstoftwo",(function(e){var t=e.consumeArgs(2);return{tokens:t[0],numArgs:0}}));Ya("\\@secondoftwo",(function(e){var t=e.consumeArgs(2);return{tokens:t[1],numArgs:0}}));Ya("\\@ifnextchar",(function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();if(t[0].length===1&&t[0][0].text===r.text){return{tokens:t[1],numArgs:0}}else{return{tokens:t[2],numArgs:0}}}));Ya("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");Ya("\\TextOrMath",(function(e){var t=e.consumeArgs(2);if(e.mode==="text"){return{tokens:t[0],numArgs:0}}else{return{tokens:t[1],numArgs:0}}}));var _i={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Ya("\\char",(function(e){var t=e.popToken();var r;var a="";if(t.text==="'"){r=8;t=e.popToken()}else if(t.text==='"'){r=16;t=e.popToken()}else if(t.text==="`"){t=e.popToken();if(t.text[0]==="\\"){a=t.text.charCodeAt(1)}else if(t.text==="EOF"){throw new n("\\char` missing argument")}else{a=t.text.charCodeAt(0)}}else{r=10}if(r){a=_i[t.text];if(a==null||a>=r){throw new n("Invalid base-"+r+" digit "+t.text)}var i;while((i=_i[e.future().text])!=null&&i{var i=e.consumeArg().tokens;if(i.length!==1){throw new n("\\newcommand's first argument must be a macro name")}var s=i[0].text;var o=e.isDefined(s);if(o&&!t){throw new n("\\newcommand{"+s+"} attempting to redefine "+(s+"; use \\renewcommand"))}if(!o&&!r){throw new n("\\renewcommand{"+s+"} when command "+s+" "+"does not yet exist; use \\newcommand")}var l=0;i=e.consumeArg().tokens;if(i.length===1&&i[0].text==="["){var h="";var u=e.expandNextToken();while(u.text!=="]"&&u.text!=="EOF"){h+=u.text;u=e.expandNextToken()}if(!h.match(/^\s*[0-9]+\s*$/)){throw new n("Invalid number of arguments: "+h)}l=parseInt(h);i=e.consumeArg().tokens}if(!(o&&a)){e.macros.set(s,{tokens:i,numArgs:l})}return""};Ya("\\newcommand",(e=>ji(e,false,true,false)));Ya("\\renewcommand",(e=>ji(e,true,false,false)));Ya("\\providecommand",(e=>ji(e,true,true,true)));Ya("\\message",(e=>{var t=e.consumeArgs(1)[0];console.log(t.reverse().map((e=>e.text)).join(""));return""}));Ya("\\errmessage",(e=>{var t=e.consumeArgs(1)[0];console.error(t.reverse().map((e=>e.text)).join(""));return""}));Ya("\\show",(e=>{var t=e.popToken();var r=t.text;console.log(t,e.macros.get(r),Oi[r],He.math[r],He.text[r]);return""}));Ya("\\bgroup","{");Ya("\\egroup","}");Ya("~","\\nobreakspace");Ya("\\lq","`");Ya("\\rq","'");Ya("\\aa","\\r a");Ya("\\AA","\\r A");Ya("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");Ya("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");Ya("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");Ya("ℬ","\\mathscr{B}");Ya("ℰ","\\mathscr{E}");Ya("ℱ","\\mathscr{F}");Ya("ℋ","\\mathscr{H}");Ya("ℐ","\\mathscr{I}");Ya("ℒ","\\mathscr{L}");Ya("ℳ","\\mathscr{M}");Ya("ℛ","\\mathscr{R}");Ya("ℭ","\\mathfrak{C}");Ya("ℌ","\\mathfrak{H}");Ya("ℨ","\\mathfrak{Z}");Ya("\\Bbbk","\\Bbb{k}");Ya("·","\\cdotp");Ya("\\llap","\\mathllap{\\textrm{#1}}");Ya("\\rlap","\\mathrlap{\\textrm{#1}}");Ya("\\clap","\\mathclap{\\textrm{#1}}");Ya("\\mathstrut","\\vphantom{(}");Ya("\\underbar","\\underline{\\text{#1}}");Ya("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');Ya("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");Ya("\\ne","\\neq");Ya("≠","\\neq");Ya("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}"+"{\\mathrel{\\char`∉}}");Ya("∉","\\notin");Ya("≘","\\html@mathml{"+"\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}"+"}{\\mathrel{\\char`≘}}");Ya("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");Ya("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");Ya("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}"+"{\\mathrel{\\char`≛}}");Ya("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}"+"{\\mathrel{\\char`≝}}");Ya("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}"+"{\\mathrel{\\char`≞}}");Ya("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");Ya("⟂","\\perp");Ya("‼","\\mathclose{!\\mkern-0.8mu!}");Ya("∌","\\notni");Ya("⌜","\\ulcorner");Ya("⌝","\\urcorner");Ya("⌞","\\llcorner");Ya("⌟","\\lrcorner");Ya("©","\\copyright");Ya("®","\\textregistered");Ya("️","\\textregistered");Ya("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');Ya("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');Ya("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');Ya("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');Ya("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");Ya("⋮","\\vdots");Ya("\\varGamma","\\mathit{\\Gamma}");Ya("\\varDelta","\\mathit{\\Delta}");Ya("\\varTheta","\\mathit{\\Theta}");Ya("\\varLambda","\\mathit{\\Lambda}");Ya("\\varXi","\\mathit{\\Xi}");Ya("\\varPi","\\mathit{\\Pi}");Ya("\\varSigma","\\mathit{\\Sigma}");Ya("\\varUpsilon","\\mathit{\\Upsilon}");Ya("\\varPhi","\\mathit{\\Phi}");Ya("\\varPsi","\\mathit{\\Psi}");Ya("\\varOmega","\\mathit{\\Omega}");Ya("\\substack","\\begin{subarray}{c}#1\\end{subarray}");Ya("\\colon","\\nobreak\\mskip2mu\\mathpunct{}"+"\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");Ya("\\boxed","\\fbox{$\\displaystyle{#1}$}");Ya("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");Ya("\\implies","\\DOTSB\\;\\Longrightarrow\\;");Ya("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");Ya("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");Ya("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var $i={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};Ya("\\dots",(function(e){var t="\\dotso";var r=e.expandAfterFuture().text;if(r in $i){t=$i[r]}else if(r.slice(0,4)==="\\not"){t="\\dotsb"}else if(r in He.math){if(g.contains(["bin","rel"],He.math[r].group)){t="\\dotsb"}}return t}));var Zi={")":true,"]":true,"\\rbrack":true,"\\}":true,"\\rbrace":true,"\\rangle":true,"\\rceil":true,"\\rfloor":true,"\\rgroup":true,"\\rmoustache":true,"\\right":true,"\\bigr":true,"\\biggr":true,"\\Bigr":true,"\\Biggr":true,$:true,";":true,".":true,",":true};Ya("\\dotso",(function(e){var t=e.future().text;if(t in Zi){return"\\ldots\\,"}else{return"\\ldots"}}));Ya("\\dotsc",(function(e){var t=e.future().text;if(t in Zi&&t!==","){return"\\ldots\\,"}else{return"\\ldots"}}));Ya("\\cdots",(function(e){var t=e.future().text;if(t in Zi){return"\\@cdots\\,"}else{return"\\@cdots"}}));Ya("\\dotsb","\\cdots");Ya("\\dotsm","\\cdots");Ya("\\dotsi","\\!\\cdots");Ya("\\dotsx","\\ldots\\,");Ya("\\DOTSI","\\relax");Ya("\\DOTSB","\\relax");Ya("\\DOTSX","\\relax");Ya("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");Ya("\\,","\\tmspace+{3mu}{.1667em}");Ya("\\thinspace","\\,");Ya("\\>","\\mskip{4mu}");Ya("\\:","\\tmspace+{4mu}{.2222em}");Ya("\\medspace","\\:");Ya("\\;","\\tmspace+{5mu}{.2777em}");Ya("\\thickspace","\\;");Ya("\\!","\\tmspace-{3mu}{.1667em}");Ya("\\negthinspace","\\!");Ya("\\negmedspace","\\tmspace-{4mu}{.2222em}");Ya("\\negthickspace","\\tmspace-{5mu}{.277em}");Ya("\\enspace","\\kern.5em ");Ya("\\enskip","\\hskip.5em\\relax");Ya("\\quad","\\hskip1em\\relax");Ya("\\qquad","\\hskip2em\\relax");Ya("\\tag","\\@ifstar\\tag@literal\\tag@paren");Ya("\\tag@paren","\\tag@literal{({#1})}");Ya("\\tag@literal",(e=>{if(e.macros.get("\\df@tag")){throw new n("Multiple \\tag")}return"\\gdef\\df@tag{\\text{#1}}"}));Ya("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"+"\\mathbin{\\rm mod}"+"\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");Ya("\\pod","\\allowbreak"+"\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");Ya("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");Ya("\\mod","\\allowbreak"+"\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}"+"{\\rm mod}\\,\\,#1");Ya("\\newline","\\\\\\relax");Ya("\\TeX","\\textrm{\\html@mathml{"+"T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX"+"}{TeX}}");var Ki=ve(te["Main-Regular"]["T".charCodeAt(0)][1]-.7*te["Main-Regular"]["A".charCodeAt(0)][1]);Ya("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+Ki+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");Ya("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+Ki+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");Ya("\\hspace","\\@ifstar\\@hspacer\\@hspace");Ya("\\@hspace","\\hskip #1\\relax");Ya("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");Ya("\\ordinarycolon",":");Ya("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");Ya("\\dblcolon","\\html@mathml{"+"\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}"+'{\\mathop{\\char"2237}}');Ya("\\coloneqq","\\html@mathml{"+"\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}"+'{\\mathop{\\char"2254}}');Ya("\\Coloneqq","\\html@mathml{"+"\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}"+'{\\mathop{\\char"2237\\char"3d}}');Ya("\\coloneq","\\html@mathml{"+"\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}"+'{\\mathop{\\char"3a\\char"2212}}');Ya("\\Coloneq","\\html@mathml{"+"\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}"+'{\\mathop{\\char"2237\\char"2212}}');Ya("\\eqqcolon","\\html@mathml{"+"\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}"+'{\\mathop{\\char"2255}}');Ya("\\Eqqcolon","\\html@mathml{"+"\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}"+'{\\mathop{\\char"3d\\char"2237}}');Ya("\\eqcolon","\\html@mathml{"+"\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}"+'{\\mathop{\\char"2239}}');Ya("\\Eqcolon","\\html@mathml{"+"\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}"+'{\\mathop{\\char"2212\\char"2237}}');Ya("\\colonapprox","\\html@mathml{"+"\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}"+'{\\mathop{\\char"3a\\char"2248}}');Ya("\\Colonapprox","\\html@mathml{"+"\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}"+'{\\mathop{\\char"2237\\char"2248}}');Ya("\\colonsim","\\html@mathml{"+"\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}"+'{\\mathop{\\char"3a\\char"223c}}');Ya("\\Colonsim","\\html@mathml{"+"\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}"+'{\\mathop{\\char"2237\\char"223c}}');Ya("∷","\\dblcolon");Ya("∹","\\eqcolon");Ya("≔","\\coloneqq");Ya("≕","\\eqqcolon");Ya("⩴","\\Coloneqq");Ya("\\ratio","\\vcentcolon");Ya("\\coloncolon","\\dblcolon");Ya("\\colonequals","\\coloneqq");Ya("\\coloncolonequals","\\Coloneqq");Ya("\\equalscolon","\\eqqcolon");Ya("\\equalscoloncolon","\\Eqqcolon");Ya("\\colonminus","\\coloneq");Ya("\\coloncolonminus","\\Coloneq");Ya("\\minuscolon","\\eqcolon");Ya("\\minuscoloncolon","\\Eqcolon");Ya("\\coloncolonapprox","\\Colonapprox");Ya("\\coloncolonsim","\\Colonsim");Ya("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");Ya("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");Ya("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");Ya("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");Ya("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");Ya("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");Ya("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");Ya("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");Ya("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");Ya("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");Ya("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");Ya("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");Ya("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");Ya("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");Ya("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");Ya("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");Ya("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");Ya("\\nleqq","\\html@mathml{\\@nleqq}{≰}");Ya("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");Ya("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");Ya("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");Ya("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");Ya("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");Ya("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");Ya("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");Ya("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");Ya("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");Ya("\\imath","\\html@mathml{\\@imath}{ı}");Ya("\\jmath","\\html@mathml{\\@jmath}{ȷ}");Ya("\\llbracket","\\html@mathml{"+"\\mathopen{[\\mkern-3.2mu[}}"+"{\\mathopen{\\char`⟦}}");Ya("\\rrbracket","\\html@mathml{"+"\\mathclose{]\\mkern-3.2mu]}}"+"{\\mathclose{\\char`⟧}}");Ya("⟦","\\llbracket");Ya("⟧","\\rrbracket");Ya("\\lBrace","\\html@mathml{"+"\\mathopen{\\{\\mkern-3.2mu[}}"+"{\\mathopen{\\char`⦃}}");Ya("\\rBrace","\\html@mathml{"+"\\mathclose{]\\mkern-3.2mu\\}}}"+"{\\mathclose{\\char`⦄}}");Ya("⦃","\\lBrace");Ya("⦄","\\rBrace");Ya("\\minuso","\\mathbin{\\html@mathml{"+"{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}"+"{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}"+"{\\char`⦵}}");Ya("⦵","\\minuso");Ya("\\darr","\\downarrow");Ya("\\dArr","\\Downarrow");Ya("\\Darr","\\Downarrow");Ya("\\lang","\\langle");Ya("\\rang","\\rangle");Ya("\\uarr","\\uparrow");Ya("\\uArr","\\Uparrow");Ya("\\Uarr","\\Uparrow");Ya("\\N","\\mathbb{N}");Ya("\\R","\\mathbb{R}");Ya("\\Z","\\mathbb{Z}");Ya("\\alef","\\aleph");Ya("\\alefsym","\\aleph");Ya("\\Alpha","\\mathrm{A}");Ya("\\Beta","\\mathrm{B}");Ya("\\bull","\\bullet");Ya("\\Chi","\\mathrm{X}");Ya("\\clubs","\\clubsuit");Ya("\\cnums","\\mathbb{C}");Ya("\\Complex","\\mathbb{C}");Ya("\\Dagger","\\ddagger");Ya("\\diamonds","\\diamondsuit");Ya("\\empty","\\emptyset");Ya("\\Epsilon","\\mathrm{E}");Ya("\\Eta","\\mathrm{H}");Ya("\\exist","\\exists");Ya("\\harr","\\leftrightarrow");Ya("\\hArr","\\Leftrightarrow");Ya("\\Harr","\\Leftrightarrow");Ya("\\hearts","\\heartsuit");Ya("\\image","\\Im");Ya("\\infin","\\infty");Ya("\\Iota","\\mathrm{I}");Ya("\\isin","\\in");Ya("\\Kappa","\\mathrm{K}");Ya("\\larr","\\leftarrow");Ya("\\lArr","\\Leftarrow");Ya("\\Larr","\\Leftarrow");Ya("\\lrarr","\\leftrightarrow");Ya("\\lrArr","\\Leftrightarrow");Ya("\\Lrarr","\\Leftrightarrow");Ya("\\Mu","\\mathrm{M}");Ya("\\natnums","\\mathbb{N}");Ya("\\Nu","\\mathrm{N}");Ya("\\Omicron","\\mathrm{O}");Ya("\\plusmn","\\pm");Ya("\\rarr","\\rightarrow");Ya("\\rArr","\\Rightarrow");Ya("\\Rarr","\\Rightarrow");Ya("\\real","\\Re");Ya("\\reals","\\mathbb{R}");Ya("\\Reals","\\mathbb{R}");Ya("\\Rho","\\mathrm{P}");Ya("\\sdot","\\cdot");Ya("\\sect","\\S");Ya("\\spades","\\spadesuit");Ya("\\sub","\\subset");Ya("\\sube","\\subseteq");Ya("\\supe","\\supseteq");Ya("\\Tau","\\mathrm{T}");Ya("\\thetasym","\\vartheta");Ya("\\weierp","\\wp");Ya("\\Zeta","\\mathrm{Z}");Ya("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");Ya("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");Ya("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");Ya("\\bra","\\mathinner{\\langle{#1}|}");Ya("\\ket","\\mathinner{|{#1}\\rangle}");Ya("\\braket","\\mathinner{\\langle{#1}\\rangle}");Ya("\\Bra","\\left\\langle#1\\right|");Ya("\\Ket","\\left|#1\\right\\rangle");var Ji=e=>t=>{var r=t.consumeArg().tokens;var a=t.consumeArg().tokens;var i=t.consumeArg().tokens;var n=t.consumeArg().tokens;var s=t.macros.get("|");var o=t.macros.get("\\|");t.macros.beginGroup();var l=t=>r=>{if(e){r.macros.set("|",s);if(i.length){r.macros.set("\\|",o)}}var n=t;if(!t&&i.length){var l=r.future();if(l.text==="|"){r.popToken();n=true}}return{tokens:n?i:a,numArgs:0}};t.macros.set("|",l(false));if(i.length){t.macros.set("\\|",l(true))}var h=t.consumeArg().tokens;var u=t.expandTokens([...n,...h,...r]);t.macros.endGroup();return{tokens:u.reverse(),numArgs:0}};Ya("\\bra@ket",Ji(false));Ya("\\bra@set",Ji(true));Ya("\\Braket","\\bra@ket{\\left\\langle}"+"{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");Ya("\\Set","\\bra@set{\\left\\{\\:}"+"{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");Ya("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");Ya("\\angln","{\\angl n}");Ya("\\blue","\\textcolor{##6495ed}{#1}");Ya("\\orange","\\textcolor{##ffa500}{#1}");Ya("\\pink","\\textcolor{##ff00af}{#1}");Ya("\\red","\\textcolor{##df0030}{#1}");Ya("\\green","\\textcolor{##28ae7b}{#1}");Ya("\\gray","\\textcolor{gray}{#1}");Ya("\\purple","\\textcolor{##9d38bd}{#1}");Ya("\\blueA","\\textcolor{##ccfaff}{#1}");Ya("\\blueB","\\textcolor{##80f6ff}{#1}");Ya("\\blueC","\\textcolor{##63d9ea}{#1}");Ya("\\blueD","\\textcolor{##11accd}{#1}");Ya("\\blueE","\\textcolor{##0c7f99}{#1}");Ya("\\tealA","\\textcolor{##94fff5}{#1}");Ya("\\tealB","\\textcolor{##26edd5}{#1}");Ya("\\tealC","\\textcolor{##01d1c1}{#1}");Ya("\\tealD","\\textcolor{##01a995}{#1}");Ya("\\tealE","\\textcolor{##208170}{#1}");Ya("\\greenA","\\textcolor{##b6ffb0}{#1}");Ya("\\greenB","\\textcolor{##8af281}{#1}");Ya("\\greenC","\\textcolor{##74cf70}{#1}");Ya("\\greenD","\\textcolor{##1fab54}{#1}");Ya("\\greenE","\\textcolor{##0d923f}{#1}");Ya("\\goldA","\\textcolor{##ffd0a9}{#1}");Ya("\\goldB","\\textcolor{##ffbb71}{#1}");Ya("\\goldC","\\textcolor{##ff9c39}{#1}");Ya("\\goldD","\\textcolor{##e07d10}{#1}");Ya("\\goldE","\\textcolor{##a75a05}{#1}");Ya("\\redA","\\textcolor{##fca9a9}{#1}");Ya("\\redB","\\textcolor{##ff8482}{#1}");Ya("\\redC","\\textcolor{##f9685d}{#1}");Ya("\\redD","\\textcolor{##e84d39}{#1}");Ya("\\redE","\\textcolor{##bc2612}{#1}");Ya("\\maroonA","\\textcolor{##ffbde0}{#1}");Ya("\\maroonB","\\textcolor{##ff92c6}{#1}");Ya("\\maroonC","\\textcolor{##ed5fa6}{#1}");Ya("\\maroonD","\\textcolor{##ca337c}{#1}");Ya("\\maroonE","\\textcolor{##9e034e}{#1}");Ya("\\purpleA","\\textcolor{##ddd7ff}{#1}");Ya("\\purpleB","\\textcolor{##c6b9fc}{#1}");Ya("\\purpleC","\\textcolor{##aa87ff}{#1}");Ya("\\purpleD","\\textcolor{##7854ab}{#1}");Ya("\\purpleE","\\textcolor{##543b78}{#1}");Ya("\\mintA","\\textcolor{##f5f9e8}{#1}");Ya("\\mintB","\\textcolor{##edf2df}{#1}");Ya("\\mintC","\\textcolor{##e0e5cc}{#1}");Ya("\\grayA","\\textcolor{##f6f7f7}{#1}");Ya("\\grayB","\\textcolor{##f0f1f2}{#1}");Ya("\\grayC","\\textcolor{##e3e5e6}{#1}");Ya("\\grayD","\\textcolor{##d6d8da}{#1}");Ya("\\grayE","\\textcolor{##babec2}{#1}");Ya("\\grayF","\\textcolor{##888d93}{#1}");Ya("\\grayG","\\textcolor{##626569}{#1}");Ya("\\grayH","\\textcolor{##3b3e40}{#1}");Ya("\\grayI","\\textcolor{##21242c}{#1}");Ya("\\kaBlue","\\textcolor{##314453}{#1}");Ya("\\kaGreen","\\textcolor{##71B307}{#1}");var Qi={"^":true,_:true,"\\limits":true,"\\nolimits":true};class en{constructor(e,t,r){this.settings=void 0;this.expansionCount=void 0;this.lexer=void 0;this.macros=void 0;this.stack=void 0;this.mode=void 0;this.settings=t;this.expansionCount=0;this.feed(e);this.macros=new Xi(Wi,t.macros);this.mode=r;this.stack=[]}feed(e){this.lexer=new Yi(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){if(this.stack.length===0){this.pushToken(this.lexer.lex())}return this.stack[this.stack.length-1]}popToken(){this.future();return this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t;var r;var a;if(e){this.consumeSpaces();if(this.future().text!=="["){return null}t=this.popToken();({tokens:a,end:r}=this.consumeArg(["]"]))}else{({tokens:a,start:t,end:r}=this.consumeArg())}this.pushToken(new i("EOF",r.loc));this.pushTokens(a);return t.range(r,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" "){this.stack.pop()}else{break}}}consumeArg(e){var t=[];var r=e&&e.length>0;if(!r){this.consumeSpaces()}var a=this.future();var i;var s=0;var o=0;do{i=this.popToken();t.push(i);if(i.text==="{"){++s}else if(i.text==="}"){--s;if(s===-1){throw new n("Extra }",i)}}else if(i.text==="EOF"){throw new n("Unexpected end of input in a macro argument"+", expected '"+(e&&r?e[o]:"}")+"'",i)}if(e&&r){if((s===0||s===1&&e[o]==="{")&&i.text===e[o]){++o;if(o===e.length){t.splice(-o,o);break}}else{o=0}}}while(s!==0||r);if(a.text==="{"&&t[t.length-1].text==="}"){t.pop();t.shift()}t.reverse();return{tokens:t,start:a,end:i}}consumeArgs(e,t){if(t){if(t.length!==e+1){throw new n("The length of delimiters doesn't match the number of args!")}var r=t[0];for(var a=0;athis.settings.maxExpand){throw new n("Too many expansions: infinite loop or "+"need to increase maxExpand setting")}}expandOnce(e){var t=this.popToken();var r=t.text;var a=!t.noexpand?this._getExpansion(r):null;if(a==null||e&&a.unexpandable){if(e&&a==null&&r[0]==="\\"&&!this.isDefined(r)){throw new n("Undefined control sequence: "+r)}this.pushToken(t);return false}this.countExpansion(1);var i=a.tokens;var s=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs){i=i.slice();for(var o=i.length-1;o>=0;--o){var l=i[o];if(l.text==="#"){if(o===0){throw new n("Incomplete placeholder at end of macro body",l)}l=i[--o];if(l.text==="#"){i.splice(o+1,1)}else if(/^[1-9]$/.test(l.text)){i.splice(o,2,...s[+l.text-1])}else{throw new n("Not a valid argument number",l)}}}}this.pushTokens(i);return i.length}expandAfterFuture(){this.expandOnce();return this.future()}expandNextToken(){for(;;){if(this.expandOnce()===false){var e=this.stack.pop();if(e.treatAsRelax){e.text="\\relax"}return e}}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new i(e)]):undefined}expandTokens(e){var t=[];var r=this.stack.length;this.pushTokens(e);while(this.stack.length>r){if(this.expandOnce(true)===false){var a=this.stack.pop();if(a.treatAsRelax){a.noexpand=false;a.treatAsRelax=false}t.push(a)}}this.countExpansion(t.length);return t}expandMacroAsText(e){var t=this.expandMacro(e);if(t){return t.map((e=>e.text)).join("")}else{return t}}_getExpansion(e){var t=this.macros.get(e);if(t==null){return t}if(e.length===1){var r=this.lexer.catcodes[e];if(r!=null&&r!==13){return}}var a=typeof t==="function"?t(this):t;if(typeof a==="string"){var i=0;if(a.indexOf("#")!==-1){var n=a.replace(/##/g,"");while(n.indexOf("#"+(i+1))!==-1){++i}}var s=new Yi(a,this.settings);var o=[];var l=s.lex();while(l.text!=="EOF"){o.push(l);l=s.lex()}o.reverse();var h={tokens:o,numArgs:i};return h}return a}isDefined(e){return this.macros.has(e)||Oi.hasOwnProperty(e)||He.math.hasOwnProperty(e)||He.text.hasOwnProperty(e)||Qi.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return t!=null?typeof t==="string"||typeof t==="function"||!t.unexpandable:Oi.hasOwnProperty(e)&&!Oi[e].primitive}}var tn=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/;var rn=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g","ʰ":"h","ⁱ":"i","ʲ":"j","ᵏ":"k","ˡ":"l","ᵐ":"m","ⁿ":"n","ᵒ":"o","ᵖ":"p","ʳ":"r","ˢ":"s","ᵗ":"t","ᵘ":"u","ᵛ":"v","ʷ":"w","ˣ":"x","ʸ":"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"});var an={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}};var nn={"á":"á","à":"à","ä":"ä","ǟ":"ǟ","ã":"ã","ā":"ā","ă":"ă","ắ":"ắ","ằ":"ằ","ẵ":"ẵ","ǎ":"ǎ","â":"â","ấ":"ấ","ầ":"ầ","ẫ":"ẫ","ȧ":"ȧ","ǡ":"ǡ","å":"å","ǻ":"ǻ","ḃ":"ḃ","ć":"ć","ḉ":"ḉ","č":"č","ĉ":"ĉ","ċ":"ċ","ç":"ç","ď":"ď","ḋ":"ḋ","ḑ":"ḑ","é":"é","è":"è","ë":"ë","ẽ":"ẽ","ē":"ē","ḗ":"ḗ","ḕ":"ḕ","ĕ":"ĕ","ḝ":"ḝ","ě":"ě","ê":"ê","ế":"ế","ề":"ề","ễ":"ễ","ė":"ė","ȩ":"ȩ","ḟ":"ḟ","ǵ":"ǵ","ḡ":"ḡ","ğ":"ğ","ǧ":"ǧ","ĝ":"ĝ","ġ":"ġ","ģ":"ģ","ḧ":"ḧ","ȟ":"ȟ","ĥ":"ĥ","ḣ":"ḣ","ḩ":"ḩ","í":"í","ì":"ì","ï":"ï","ḯ":"ḯ","ĩ":"ĩ","ī":"ī","ĭ":"ĭ","ǐ":"ǐ","î":"î","ǰ":"ǰ","ĵ":"ĵ","ḱ":"ḱ","ǩ":"ǩ","ķ":"ķ","ĺ":"ĺ","ľ":"ľ","ļ":"ļ","ḿ":"ḿ","ṁ":"ṁ","ń":"ń","ǹ":"ǹ","ñ":"ñ","ň":"ň","ṅ":"ṅ","ņ":"ņ","ó":"ó","ò":"ò","ö":"ö","ȫ":"ȫ","õ":"õ","ṍ":"ṍ","ṏ":"ṏ","ȭ":"ȭ","ō":"ō","ṓ":"ṓ","ṑ":"ṑ","ŏ":"ŏ","ǒ":"ǒ","ô":"ô","ố":"ố","ồ":"ồ","ỗ":"ỗ","ȯ":"ȯ","ȱ":"ȱ","ő":"ő","ṕ":"ṕ","ṗ":"ṗ","ŕ":"ŕ","ř":"ř","ṙ":"ṙ","ŗ":"ŗ","ś":"ś","ṥ":"ṥ","š":"š","ṧ":"ṧ","ŝ":"ŝ","ṡ":"ṡ","ş":"ş","ẗ":"ẗ","ť":"ť","ṫ":"ṫ","ţ":"ţ","ú":"ú","ù":"ù","ü":"ü","ǘ":"ǘ","ǜ":"ǜ","ǖ":"ǖ","ǚ":"ǚ","ũ":"ũ","ṹ":"ṹ","ū":"ū","ṻ":"ṻ","ŭ":"ŭ","ǔ":"ǔ","û":"û","ů":"ů","ű":"ű","ṽ":"ṽ","ẃ":"ẃ","ẁ":"ẁ","ẅ":"ẅ","ŵ":"ŵ","ẇ":"ẇ","ẘ":"ẘ","ẍ":"ẍ","ẋ":"ẋ","ý":"ý","ỳ":"ỳ","ÿ":"ÿ","ỹ":"ỹ","ȳ":"ȳ","ŷ":"ŷ","ẏ":"ẏ","ẙ":"ẙ","ź":"ź","ž":"ž","ẑ":"ẑ","ż":"ż","Á":"Á","À":"À","Ä":"Ä","Ǟ":"Ǟ","Ã":"Ã","Ā":"Ā","Ă":"Ă","Ắ":"Ắ","Ằ":"Ằ","Ẵ":"Ẵ","Ǎ":"Ǎ","Â":"Â","Ấ":"Ấ","Ầ":"Ầ","Ẫ":"Ẫ","Ȧ":"Ȧ","Ǡ":"Ǡ","Å":"Å","Ǻ":"Ǻ","Ḃ":"Ḃ","Ć":"Ć","Ḉ":"Ḉ","Č":"Č","Ĉ":"Ĉ","Ċ":"Ċ","Ç":"Ç","Ď":"Ď","Ḋ":"Ḋ","Ḑ":"Ḑ","É":"É","È":"È","Ë":"Ë","Ẽ":"Ẽ","Ē":"Ē","Ḗ":"Ḗ","Ḕ":"Ḕ","Ĕ":"Ĕ","Ḝ":"Ḝ","Ě":"Ě","Ê":"Ê","Ế":"Ế","Ề":"Ề","Ễ":"Ễ","Ė":"Ė","Ȩ":"Ȩ","Ḟ":"Ḟ","Ǵ":"Ǵ","Ḡ":"Ḡ","Ğ":"Ğ","Ǧ":"Ǧ","Ĝ":"Ĝ","Ġ":"Ġ","Ģ":"Ģ","Ḧ":"Ḧ","Ȟ":"Ȟ","Ĥ":"Ĥ","Ḣ":"Ḣ","Ḩ":"Ḩ","Í":"Í","Ì":"Ì","Ï":"Ï","Ḯ":"Ḯ","Ĩ":"Ĩ","Ī":"Ī","Ĭ":"Ĭ","Ǐ":"Ǐ","Î":"Î","İ":"İ","Ĵ":"Ĵ","Ḱ":"Ḱ","Ǩ":"Ǩ","Ķ":"Ķ","Ĺ":"Ĺ","Ľ":"Ľ","Ļ":"Ļ","Ḿ":"Ḿ","Ṁ":"Ṁ","Ń":"Ń","Ǹ":"Ǹ","Ñ":"Ñ","Ň":"Ň","Ṅ":"Ṅ","Ņ":"Ņ","Ó":"Ó","Ò":"Ò","Ö":"Ö","Ȫ":"Ȫ","Õ":"Õ","Ṍ":"Ṍ","Ṏ":"Ṏ","Ȭ":"Ȭ","Ō":"Ō","Ṓ":"Ṓ","Ṑ":"Ṑ","Ŏ":"Ŏ","Ǒ":"Ǒ","Ô":"Ô","Ố":"Ố","Ồ":"Ồ","Ỗ":"Ỗ","Ȯ":"Ȯ","Ȱ":"Ȱ","Ő":"Ő","Ṕ":"Ṕ","Ṗ":"Ṗ","Ŕ":"Ŕ","Ř":"Ř","Ṙ":"Ṙ","Ŗ":"Ŗ","Ś":"Ś","Ṥ":"Ṥ","Š":"Š","Ṧ":"Ṧ","Ŝ":"Ŝ","Ṡ":"Ṡ","Ş":"Ş","Ť":"Ť","Ṫ":"Ṫ","Ţ":"Ţ","Ú":"Ú","Ù":"Ù","Ü":"Ü","Ǘ":"Ǘ","Ǜ":"Ǜ","Ǖ":"Ǖ","Ǚ":"Ǚ","Ũ":"Ũ","Ṹ":"Ṹ","Ū":"Ū","Ṻ":"Ṻ","Ŭ":"Ŭ","Ǔ":"Ǔ","Û":"Û","Ů":"Ů","Ű":"Ű","Ṽ":"Ṽ","Ẃ":"Ẃ","Ẁ":"Ẁ","Ẅ":"Ẅ","Ŵ":"Ŵ","Ẇ":"Ẇ","Ẍ":"Ẍ","Ẋ":"Ẋ","Ý":"Ý","Ỳ":"Ỳ","Ÿ":"Ÿ","Ỹ":"Ỹ","Ȳ":"Ȳ","Ŷ":"Ŷ","Ẏ":"Ẏ","Ź":"Ź","Ž":"Ž","Ẑ":"Ẑ","Ż":"Ż","ά":"ά","ὰ":"ὰ","ᾱ":"ᾱ","ᾰ":"ᾰ","έ":"έ","ὲ":"ὲ","ή":"ή","ὴ":"ὴ","ί":"ί","ὶ":"ὶ","ϊ":"ϊ","ΐ":"ΐ","ῒ":"ῒ","ῑ":"ῑ","ῐ":"ῐ","ό":"ό","ὸ":"ὸ","ύ":"ύ","ὺ":"ὺ","ϋ":"ϋ","ΰ":"ΰ","ῢ":"ῢ","ῡ":"ῡ","ῠ":"ῠ","ώ":"ώ","ὼ":"ὼ","Ύ":"Ύ","Ὺ":"Ὺ","Ϋ":"Ϋ","Ῡ":"Ῡ","Ῠ":"Ῠ","Ώ":"Ώ","Ὼ":"Ὼ"};class sn{constructor(e,t){this.mode=void 0;this.gullet=void 0;this.settings=void 0;this.leftrightDepth=void 0;this.nextToken=void 0;this.mode="math";this.gullet=new en(e,t,this.mode);this.settings=t;this.leftrightDepth=0}expect(e,t){if(t===void 0){t=true}if(this.fetch().text!==e){throw new n("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch())}if(t){this.consume()}}consume(){this.nextToken=null}fetch(){if(this.nextToken==null){this.nextToken=this.gullet.expandNextToken()}return this.nextToken}switchMode(e){this.mode=e;this.gullet.switchMode(e)}parse(){if(!this.settings.globalGroup){this.gullet.beginGroup()}if(this.settings.colorIsTextColor){this.gullet.macros.set("\\color","\\textcolor")}try{var e=this.parseExpression(false);this.expect("EOF");if(!this.settings.globalGroup){this.gullet.endGroup()}return e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume();this.gullet.pushToken(new i("}"));this.gullet.pushTokens(e);var r=this.parseExpression(false);this.expect("}");this.nextToken=t;return r}parseExpression(e,t){var r=[];while(true){if(this.mode==="math"){this.consumeSpaces()}var a=this.fetch();if(sn.endOfExpression.indexOf(a.text)!==-1){break}if(t&&a.text===t){break}if(e&&Oi[a.text]&&Oi[a.text].infix){break}var i=this.parseAtom(t);if(!i){break}else if(i.type==="internal"){continue}r.push(i)}if(this.mode==="text"){this.formLigatures(r)}return this.handleInfixNodes(r)}handleInfixNodes(e){var t=-1;var r;for(var a=0;a=0){this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in '+"math mode",e)}var l=He[this.mode][t].group;var h=a.range(e);var u;if(Ie.hasOwnProperty(l)){var m=l;u={type:"atom",mode:this.mode,family:m,loc:h,text:t}}else{u={type:l,mode:this.mode,loc:h,text:t}}o=u}else if(t.charCodeAt(0)>=128){if(this.settings.strict){if(!F(t.charCodeAt(0))){this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'"'+(" ("+t.charCodeAt(0)+")"),e)}else if(this.mode==="math"){this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e)}}o={type:"textord",mode:"text",loc:a.range(e),text:t}}else{return null}this.consume();if(s){for(var c=0;c{n.r(t);n.d(t,{Bounce:()=>N,Flip:()=>k,Icons:()=>v,Slide:()=>R,ToastContainer:()=>M,Zoom:()=>w,collapseToast:()=>f,cssTransition:()=>m,toast:()=>H,useToast:()=>b,useToastContainer:()=>T});var o=n(44914);var s=n.n(o);function a(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t"number"==typeof e&&!isNaN(e),c=e=>"string"==typeof e,u=e=>"function"==typeof e,d=e=>c(e)||u(e)?e:null,p=e=>(0,o.isValidElement)(e)||c(e)||u(e)||l(e);function f(e,t,n){void 0===n&&(n=300);const{scrollHeight:o,style:s}=e;requestAnimationFrame((()=>{s.minHeight="initial",s.height=o+"px",s.transition=`all ${n}ms`,requestAnimationFrame((()=>{s.height="0",s.padding="0",s.margin="0",setTimeout(t,n)}))}))}function m(e){let{enter:t,exit:n,appendPosition:a=!1,collapse:i=!0,collapseDuration:r=300}=e;return function(e){let{children:l,position:c,preventExitTransition:u,done:d,nodeRef:p,isIn:m}=e;const g=a?`${t}--${c}`:t,h=a?`${n}--${c}`:n,y=(0,o.useRef)(0);return(0,o.useLayoutEffect)((()=>{const e=p.current,t=g.split(" "),n=o=>{o.target===p.current&&(e.dispatchEvent(new Event("d")),e.removeEventListener("animationend",n),e.removeEventListener("animationcancel",n),0===y.current&&"animationcancel"!==o.type&&e.classList.remove(...t))};e.classList.add(...t),e.addEventListener("animationend",n),e.addEventListener("animationcancel",n)}),[]),(0,o.useEffect)((()=>{const e=p.current,t=()=>{e.removeEventListener("animationend",t),i?f(e,d,r):d()};m||(u?t():(y.current=1,e.className+=` ${h}`,e.addEventListener("animationend",t)))}),[m]),s().createElement(s().Fragment,null,l)}}function g(e,t){return{content:e.content,containerId:e.props.containerId,id:e.props.toastId,theme:e.props.theme,type:e.props.type,data:e.props.data||{},isLoading:e.props.isLoading,icon:e.props.icon,status:t}}const h={list:new Map,emitQueue:new Map,on(e,t){return this.list.has(e)||this.list.set(e,[]),this.list.get(e).push(t),this},off(e,t){if(t){const n=this.list.get(e).filter((e=>e!==t));return this.list.set(e,n),this}return this.list.delete(e),this},cancelEmit(e){const t=this.emitQueue.get(e);return t&&(t.forEach(clearTimeout),this.emitQueue.delete(e)),this},emit(e){this.list.has(e)&&this.list.get(e).forEach((t=>{const n=setTimeout((()=>{t(...[].slice.call(arguments,1))}),0);this.emitQueue.has(e)||this.emitQueue.set(e,[]),this.emitQueue.get(e).push(n)}))}},y=e=>{let{theme:t,type:n,...o}=e;return s().createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:"colored"===t?"currentColor":`var(--toastify-icon-color-${n})`,...o})},v={info:function(e){return s().createElement(y,{...e},s().createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))},warning:function(e){return s().createElement(y,{...e},s().createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))},success:function(e){return s().createElement(y,{...e},s().createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))},error:function(e){return s().createElement(y,{...e},s().createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))},spinner:function(){return s().createElement("div",{className:"Toastify__spinner"})}};function T(e){const[,t]=(0,o.useReducer)((e=>e+1),0),[n,s]=(0,o.useState)([]),a=(0,o.useRef)(null),i=(0,o.useRef)(new Map).current,r=e=>-1!==n.indexOf(e),f=(0,o.useRef)({toastKey:1,displayedToast:0,count:0,queue:[],props:e,containerId:null,isToastActive:r,getToast:e=>i.get(e)}).current;function m(e){let{containerId:t}=e;const{limit:n}=f.props;!n||t&&f.containerId!==t||(f.count-=f.queue.length,f.queue=[])}function y(e){s((t=>null==e?[]:t.filter((t=>t!==e))))}function T(){const{toastContent:e,toastProps:t,staleId:n}=f.queue.shift();C(e,t,n)}function E(e,n){let{delay:s,staleId:r,...m}=n;if(!p(e)||function(e){return!a.current||f.props.enableMultiContainer&&e.containerId!==f.props.containerId||i.has(e.toastId)&&null==e.updateId}(m))return;const{toastId:E,updateId:b,data:_}=m,{props:I}=f,L=()=>y(E),O=null==b;O&&f.count++;const N={...I,style:I.toastStyle,key:f.toastKey++,...m,toastId:E,updateId:b,data:_,closeToast:L,isIn:!1,className:d(m.className||I.toastClassName),bodyClassName:d(m.bodyClassName||I.bodyClassName),progressClassName:d(m.progressClassName||I.progressClassName),autoClose:!m.isLoading&&(R=m.autoClose,w=I.autoClose,!1===R||l(R)&&R>0?R:w),deleteToast(){const e=g(i.get(E),"removed");i.delete(E),h.emit(4,e);const n=f.queue.length;if(f.count=null==E?f.count-f.displayedToast:f.count-1,f.count<0&&(f.count=0),n>0){const e=null==E?f.props.limit:1;if(1===n||1===e)f.displayedToast++,T();else{const t=e>n?n:e;f.displayedToast=t;for(let e=0;ee in v)(n)&&(i=v[n](r))),i}(N),u(m.onOpen)&&(N.onOpen=m.onOpen),u(m.onClose)&&(N.onClose=m.onClose),N.closeButton=I.closeButton,!1===m.closeButton||p(m.closeButton)?N.closeButton=m.closeButton:!0===m.closeButton&&(N.closeButton=!p(I.closeButton)||I.closeButton);let k=e;(0,o.isValidElement)(e)&&!c(e.type)?k=(0,o.cloneElement)(e,{closeToast:L,toastProps:N,data:_}):u(e)&&(k=e({closeToast:L,toastProps:N,data:_})),I.limit&&I.limit>0&&f.count>I.limit&&O?f.queue.push({toastContent:k,toastProps:N,staleId:r}):l(s)?setTimeout((()=>{C(k,N,r)}),s):C(k,N,r)}function C(e,t,n){const{toastId:o}=t;n&&i.delete(n);const a={content:e,props:t};i.set(o,a),s((e=>[...e,o].filter((e=>e!==n)))),h.emit(4,g(a,null==a.props.updateId?"added":"updated"))}return(0,o.useEffect)((()=>(f.containerId=e.containerId,h.cancelEmit(3).on(0,E).on(1,(e=>a.current&&y(e))).on(5,m).emit(2,f),()=>{i.clear(),h.emit(3,f)})),[]),(0,o.useEffect)((()=>{f.props=e,f.isToastActive=r,f.displayedToast=n.length})),{getToastToRender:function(t){const n=new Map,o=Array.from(i.values());return e.newestOnTop&&o.reverse(),o.forEach((e=>{const{position:t}=e.props;n.has(t)||n.set(t,[]),n.get(t).push(e)})),Array.from(n,(e=>t(e[0],e[1])))},containerRef:a,isToastActive:r}}function E(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientX:e.clientX}function C(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientY:e.clientY}function b(e){const[t,n]=(0,o.useState)(!1),[s,a]=(0,o.useState)(!1),i=(0,o.useRef)(null),r=(0,o.useRef)({start:0,x:0,y:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,boundingRect:null,didMove:!1}).current,l=(0,o.useRef)(e),{autoClose:c,pauseOnHover:d,closeToast:p,onClick:f,closeOnClick:m}=e;function g(t){if(e.draggable){"touchstart"===t.nativeEvent.type&&t.nativeEvent.preventDefault(),r.didMove=!1,document.addEventListener("mousemove",T),document.addEventListener("mouseup",b),document.addEventListener("touchmove",T),document.addEventListener("touchend",b);const n=i.current;r.canCloseOnClick=!0,r.canDrag=!0,r.boundingRect=n.getBoundingClientRect(),n.style.transition="",r.x=E(t.nativeEvent),r.y=C(t.nativeEvent),"x"===e.draggableDirection?(r.start=r.x,r.removalDistance=n.offsetWidth*(e.draggablePercent/100)):(r.start=r.y,r.removalDistance=n.offsetHeight*(80===e.draggablePercent?1.5*e.draggablePercent:e.draggablePercent/100))}}function h(t){if(r.boundingRect){const{top:n,bottom:o,left:s,right:a}=r.boundingRect;"touchend"!==t.nativeEvent.type&&e.pauseOnHover&&r.x>=s&&r.x<=a&&r.y>=n&&r.y<=o?v():y()}}function y(){n(!0)}function v(){n(!1)}function T(n){const o=i.current;r.canDrag&&o&&(r.didMove=!0,t&&v(),r.x=E(n),r.y=C(n),r.delta="x"===e.draggableDirection?r.x-r.start:r.y-r.start,r.start!==r.x&&(r.canCloseOnClick=!1),o.style.transform=`translate${e.draggableDirection}(${r.delta}px)`,o.style.opacity=""+(1-Math.abs(r.delta/r.removalDistance)))}function b(){document.removeEventListener("mousemove",T),document.removeEventListener("mouseup",b),document.removeEventListener("touchmove",T),document.removeEventListener("touchend",b);const t=i.current;if(r.canDrag&&r.didMove&&t){if(r.canDrag=!1,Math.abs(r.delta)>r.removalDistance)return a(!0),void e.closeToast();t.style.transition="transform 0.2s, opacity 0.2s",t.style.transform=`translate${e.draggableDirection}(0)`,t.style.opacity="1"}}(0,o.useEffect)((()=>{l.current=e})),(0,o.useEffect)((()=>(i.current&&i.current.addEventListener("d",y,{once:!0}),u(e.onOpen)&&e.onOpen((0,o.isValidElement)(e.children)&&e.children.props),()=>{const e=l.current;u(e.onClose)&&e.onClose((0,o.isValidElement)(e.children)&&e.children.props)})),[]),(0,o.useEffect)((()=>(e.pauseOnFocusLoss&&(document.hasFocus()||v(),window.addEventListener("focus",y),window.addEventListener("blur",v)),()=>{e.pauseOnFocusLoss&&(window.removeEventListener("focus",y),window.removeEventListener("blur",v))})),[e.pauseOnFocusLoss]);const _={onMouseDown:g,onTouchStart:g,onMouseUp:h,onTouchEnd:h};return c&&d&&(_.onMouseEnter=v,_.onMouseLeave=y),m&&(_.onClick=e=>{f&&f(e),r.canCloseOnClick&&p()}),{playToast:y,pauseToast:v,isRunning:t,preventExitTransition:s,toastRef:i,eventHandlers:_}}function _(e){let{closeToast:t,theme:n,ariaLabel:o="close"}=e;return s().createElement("button",{className:`Toastify__close-button Toastify__close-button--${n}`,type:"button",onClick:e=>{e.stopPropagation(),t(e)},"aria-label":o},s().createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},s().createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function I(e){let{delay:t,isRunning:n,closeToast:o,type:a="default",hide:i,className:l,style:c,controlledProgress:d,progress:p,rtl:f,isIn:m,theme:g}=e;const h=i||d&&0===p,y={...c,animationDuration:`${t}ms`,animationPlayState:n?"running":"paused",opacity:h?0:1};d&&(y.transform=`scaleX(${p})`);const v=r("Toastify__progress-bar",d?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${g}`,`Toastify__progress-bar--${a}`,{"Toastify__progress-bar--rtl":f}),T=u(l)?l({rtl:f,type:a,defaultClassName:v}):r(v,l);return s().createElement("div",{role:"progressbar","aria-hidden":h?"true":"false","aria-label":"notification timer",className:T,style:y,[d&&p>=1?"onTransitionEnd":"onAnimationEnd"]:d&&p<1?null:()=>{m&&o()}})}const L=e=>{const{isRunning:t,preventExitTransition:n,toastRef:a,eventHandlers:i}=b(e),{closeButton:l,children:c,autoClose:d,onClick:p,type:f,hideProgressBar:m,closeToast:g,transition:h,position:y,className:v,style:T,bodyClassName:E,bodyStyle:C,progressClassName:L,progressStyle:O,updateId:N,role:R,progress:w,rtl:k,toastId:M,deleteToast:x,isIn:$,isLoading:B,iconOut:P,closeOnClick:A,theme:D}=e,z=r("Toastify__toast",`Toastify__toast-theme--${D}`,`Toastify__toast--${f}`,{"Toastify__toast--rtl":k},{"Toastify__toast--close-on-click":A}),F=u(v)?v({rtl:k,position:y,type:f,defaultClassName:z}):r(z,v),S=!!w||!d,H={closeToast:g,type:f,theme:D};let q=null;return!1===l||(q=u(l)?l(H):(0,o.isValidElement)(l)?(0,o.cloneElement)(l,H):_(H)),s().createElement(h,{isIn:$,done:x,position:y,preventExitTransition:n,nodeRef:a},s().createElement("div",{id:M,onClick:p,className:F,...i,style:T,ref:a},s().createElement("div",{...$&&{role:R},className:u(E)?E({type:f}):r("Toastify__toast-body",E),style:C},null!=P&&s().createElement("div",{className:r("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!B})},P),s().createElement("div",null,c)),q,s().createElement(I,{...N&&!S?{key:`pb-${N}`}:{},rtl:k,theme:D,delay:d,isRunning:t,isIn:$,closeToast:g,hide:m,type:f,style:O,className:L,controlledProgress:S,progress:w||0})))},O=function(e,t){return void 0===t&&(t=!1),{enter:`Toastify--animate Toastify__${e}-enter`,exit:`Toastify--animate Toastify__${e}-exit`,appendPosition:t}},N=m(O("bounce",!0)),R=m(O("slide",!0)),w=m(O("zoom")),k=m(O("flip")),M=(0,o.forwardRef)(((e,t)=>{const{getToastToRender:n,containerRef:a,isToastActive:i}=T(e),{className:l,style:c,rtl:p,containerId:f}=e;function m(e){const t=r("Toastify__toast-container",`Toastify__toast-container--${e}`,{"Toastify__toast-container--rtl":p});return u(l)?l({position:e,rtl:p,defaultClassName:t}):r(t,d(l))}return(0,o.useEffect)((()=>{t&&(t.current=a.current)}),[]),s().createElement("div",{ref:a,className:"Toastify",id:f},n(((e,t)=>{const n=t.length?{...c}:{...c,pointerEvents:"none"};return s().createElement("div",{className:m(e),style:n,key:`container-${e}`},t.map(((e,n)=>{let{content:o,props:a}=e;return s().createElement(L,{...a,isIn:i(a.toastId),style:{...a.style,"--nth":n+1,"--len":t.length},key:`toast-${a.key}`},o)})))})))}));M.displayName="ToastContainer",M.defaultProps={position:"top-right",transition:N,autoClose:5e3,closeButton:_,pauseOnHover:!0,pauseOnFocusLoss:!0,closeOnClick:!0,draggable:!0,draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};let x,$=new Map,B=[],P=1;function A(){return""+P++}function D(e){return e&&(c(e.toastId)||l(e.toastId))?e.toastId:A()}function z(e,t){return $.size>0?h.emit(0,e,t):B.push({content:e,options:t}),t.toastId}function F(e,t){return{...t,type:t&&t.type||e,toastId:D(t)}}function S(e){return(t,n)=>z(t,F(e,n))}function H(e,t){return z(e,F("default",t))}H.loading=(e,t)=>z(e,F("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...t})),H.promise=function(e,t,n){let o,{pending:s,error:a,success:i}=t;s&&(o=c(s)?H.loading(s,n):H.loading(s.render,{...n,...s}));const r={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null,delay:100},l=(e,t,s)=>{if(null==t)return void H.dismiss(o);const a={type:e,...r,...n,data:s},i=c(t)?{render:t}:t;return o?H.update(o,{...a,...i}):H(i.render,{...a,...i}),s},d=u(e)?e():e;return d.then((e=>l("success",i,e))).catch((e=>l("error",a,e))),d},H.success=S("success"),H.info=S("info"),H.error=S("error"),H.warning=S("warning"),H.warn=H.warning,H.dark=(e,t)=>z(e,F("default",{theme:"dark",...t})),H.dismiss=e=>{$.size>0?h.emit(1,e):B=B.filter((t=>null!=e&&t.options.toastId!==e))},H.clearWaitingQueue=function(e){return void 0===e&&(e={}),h.emit(5,e)},H.isActive=e=>{let t=!1;return $.forEach((n=>{n.isToastActive&&n.isToastActive(e)&&(t=!0)})),t},H.update=function(e,t){void 0===t&&(t={}),setTimeout((()=>{const n=function(e,t){let{containerId:n}=t;const o=$.get(n||x);return o&&o.getToast(e)}(e,t);if(n){const{props:o,content:s}=n,a={...o,...t,toastId:t.toastId||e,updateId:A()};a.toastId!==e&&(a.staleId=e);const i=a.render||s;delete a.render,z(i,a)}}),0)},H.done=e=>{H.update(e,{progress:1})},H.onChange=e=>(h.on(4,e),()=>{h.off(4,e)}),H.POSITION={TOP_LEFT:"top-left",TOP_RIGHT:"top-right",TOP_CENTER:"top-center",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",BOTTOM_CENTER:"bottom-center"},H.TYPE={INFO:"info",SUCCESS:"success",WARNING:"warning",ERROR:"error",DEFAULT:"default"},h.on(2,(e=>{x=e.containerId||e,$.set(x,e),B.forEach((e=>{h.emit(0,e.content,e.options)})),B=[]})).on(3,(e=>{$.delete(e.containerId||e),0===$.size&&h.off(0).off(1).off(5)}))}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5521.0337f193af4e5eee6057.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5521.0337f193af4e5eee6057.js deleted file mode 100644 index 466efd4c0b771c8d0810b0201fd25194d6f7b0b3..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5521.0337f193af4e5eee6057.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5521],{65521:(t,e,s)=>{s.r(e);s.d(e,{YBaseCell:()=>k,YCodeCell:()=>C,YDocument:()=>b,YFile:()=>v,YMarkdownCell:()=>V,YNotebook:()=>D,YRawCell:()=>x,convertYMapEventToMapChange:()=>n,createMutex:()=>a,createStandaloneCell:()=>w});function n(t){let e=new Map;t.changes.keys.forEach(((t,s)=>{e.set(s,{action:t.action,oldValue:t.oldValue,newValue:this.ymeta.get(s)})}));return e}const a=()=>{let t=true;return e=>{if(t){t=false;try{e()}finally{t=true}}}};var o=s(5592);var i=s(2336);var r=s(64191);var d=s(63616);var c=s(5739);var l=s(53110);var u=s(74356);const h=3e4;class g extends c.c{constructor(t){super();this.doc=t;this.clientID=t.clientID;this.states=new Map;this.meta=new Map;this._checkInterval=setInterval((()=>{const t=r._g();if(this.getLocalState()!==null&&h/2<=t-this.meta.get(this.clientID).lastUpdated){this.setLocalState(this.getLocalState())}const e=[];this.meta.forEach(((s,n)=>{if(n!==this.clientID&&h<=t-s.lastUpdated&&this.states.has(n)){e.push(n)}}));if(e.length>0){p(this,e,"timeout")}}),d.RI(h/10));t.on("destroy",(()=>{this.destroy()}));this.setLocalState({})}destroy(){this.emit("destroy",[this]);this.setLocalState(null);super.destroy();clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(t){const e=this.clientID;const s=this.meta.get(e);const n=s===undefined?0:s.clock+1;const a=this.states.get(e);if(t===null){this.states.delete(e)}else{this.states.set(e,t)}this.meta.set(e,{clock:n,lastUpdated:r._g()});const o=[];const i=[];const d=[];const c=[];if(t===null){c.push(e)}else if(a==null){if(t!=null){o.push(e)}}else{i.push(e);if(!l.vo(a,t)){d.push(e)}}if(o.length>0||d.length>0||c.length>0){this.emit("change",[{added:o,updated:d,removed:c},"local"])}this.emit("update",[{added:o,updated:i,removed:c},"local"])}setLocalStateField(t,e){const s=this.getLocalState();if(s!==null){this.setLocalState({...s,[t]:e})}}getStates(){return this.states}}const p=(t,e,s)=>{const n=[];for(let a=0;a0){t.emit("change",[{added:[],updated:[],removed:n},s]);t.emit("update",[{added:[],updated:[],removed:n},s])}};const m=(t,e,s=t.states)=>{const n=e.length;const a=encoding.createEncoder();encoding.writeVarUint(a,n);for(let o=0;o{const s=decoding.createDecoder(t);const n=encoding.createEncoder();const a=decoding.readVarUint(s);encoding.writeVarUint(n,a);for(let o=0;o{const n=decoding.createDecoder(e);const a=time.getUnixTime();const o=[];const i=[];const r=[];const d=[];const c=decoding.readVarUint(n);for(let l=0;l0||r.length>0||d.length>0){t.emit("change",[{added:o,updated:r,removed:d},s])}if(o.length>0||i.length>0||d.length>0){t.emit("update",[{added:o,updated:i,removed:d},s])}};class b{constructor(t){var e;this.onStateChanged=t=>{const e=new Array;t.keysChanged.forEach((s=>{const n=t.changes.keys.get(s);if(n){e.push({name:s,oldValue:n.oldValue,newValue:this.ystate.get(s)})}}));this._changed.emit({stateChange:e})};this._changed=new i.Signal(this);this._isDisposed=false;this._disposed=new i.Signal(this);this._ydoc=(e=t===null||t===void 0?void 0:t.ydoc)!==null&&e!==void 0?e:new u.Doc;this._ystate=this._ydoc.getMap("state");this._undoManager=new u.UndoManager([],{trackedOrigins:new Set([this]),doc:this._ydoc});this._awareness=new g(this._ydoc);this._ystate.observe(this.onStateChanged)}get ydoc(){return this._ydoc}get ystate(){return this._ystate}get undoManager(){return this._undoManager}get awareness(){return this._awareness}get changed(){return this._changed}get disposed(){return this._disposed}get isDisposed(){return this._isDisposed}get state(){return o.JSONExt.deepCopy(this.ystate.toJSON())}canUndo(){return this.undoManager.undoStack.length>0}canRedo(){return this.undoManager.redoStack.length>0}dispose(){if(this._isDisposed){return}this._isDisposed=true;this.ystate.unobserve(this.onStateChanged);this.awareness.destroy();this.undoManager.destroy();this.ydoc.destroy();this._disposed.emit();i.Signal.clearData(this)}getState(t){const e=this.ystate.get(t);return typeof e==="undefined"?e:o.JSONExt.deepCopy(e)}setState(t,e){if(!o.JSONExt.deepEqual(this.ystate.get(t),e)){this.ystate.set(t,e)}}get source(){return this.getSource()}set source(t){this.setSource(t)}undo(){this.undoManager.undo()}redo(){this.undoManager.redo()}clearUndoHistory(){this.undoManager.clear()}transact(t,e=true,s=null){this.ydoc.transact(t,e?this:s)}}class v extends b{constructor(){super();this.version="1.0.0";this.ysource=this.ydoc.getText("source");this._modelObserver=t=>{this._changed.emit({sourceChange:t.changes.delta})};this.undoManager.addToScope(this.ysource);this.ysource.observe(this._modelObserver)}static create(){return new v}get source(){return this.getSource()}set source(t){this.setSource(t)}dispose(){if(this.isDisposed){return}this.ysource.unobserve(this._modelObserver);super.dispose()}getSource(){return this.ysource.toString()}setSource(t){this.transact((()=>{const e=this.ysource;e.delete(0,e.length);e.insert(0,t)}))}updateSource(t,e,s=""){this.transact((()=>{const n=this.ysource;n.insert(t,s);n.delete(t+s.length,e-t)}))}}const S=(t,e={})=>{switch(t.get("cell_type")){case"code":return new C(t,t.get("source"),t.get("outputs"),e);case"markdown":return new V(t,t.get("source"),e);case"raw":return new x(t,t.get("source"),e);default:throw new Error("Found unknown cell type")}};const M=(t,e)=>{var s,n;const a=new u.Map;const i=new u.Text;const r=new u.Map;a.set("source",i);a.set("metadata",r);a.set("cell_type",t.cell_type);a.set("id",(s=t.id)!==null&&s!==void 0?s:o.UUID.uuid4());let d;switch(t.cell_type){case"markdown":{d=new V(a,i,{notebook:e},r);if(t.attachments!=null){d.setAttachments(t.attachments)}break}case"code":{const s=new u.Array;a.set("outputs",s);d=new C(a,i,s,{notebook:e},r);const o=t;d.execution_count=(n=o.execution_count)!==null&&n!==void 0?n:null;if(o.outputs){d.setOutputs(o.outputs)}break}default:{d=new x(a,i,{notebook:e},r);if(t.attachments){d.setAttachments(t.attachments)}break}}if(t.metadata!=null){d.setMetadata(t.metadata)}if(t.source!=null){d.setSource(typeof t.source==="string"?t.source:t.source.join(""))}return d};const w=t=>M(t);class k{static create(t){return M({id:t,cell_type:this.prototype.cell_type})}constructor(t,e,s={},n){this._modelObserver=(t,e)=>{if(e.origin!=="silent-change"){this._changed.emit(this.getChanges(t))}};this._metadataChanged=new i.Signal(this);this._notebook=null;this._changed=new i.Signal(this);this._disposed=new i.Signal(this);this._isDisposed=false;this._undoManager=null;this.ymodel=t;this._ysource=e;this._ymetadata=n!==null&&n!==void 0?n:this.ymodel.get("metadata");this._prevSourceLength=e?e.length:0;this._notebook=null;this._awareness=null;this._undoManager=null;if(s.notebook){this._notebook=s.notebook;if(this._notebook.disableDocumentWideUndoRedo){this._undoManager=new u.UndoManager([this.ymodel],{trackedOrigins:new Set([this]),doc:this._notebook.ydoc})}}else{const t=new u.Doc;t.getArray().insert(0,[this.ymodel]);this._awareness=new g(t);this._undoManager=new u.UndoManager([this.ymodel],{trackedOrigins:new Set([this])})}this.ymodel.observeDeep(this._modelObserver)}get awareness(){var t,e,s;return(s=(t=this._awareness)!==null&&t!==void 0?t:(e=this.notebook)===null||e===void 0?void 0:e.awareness)!==null&&s!==void 0?s:null}get cell_type(){throw new Error("A YBaseCell must not be constructed")}get changed(){return this._changed}get disposed(){return this._disposed}get id(){return this.getId()}get isDisposed(){return this._isDisposed}get isStandalone(){return this._notebook!==null}get metadata(){return this.getMetadata()}set metadata(t){this.setMetadata(t)}get metadataChanged(){return this._metadataChanged}get notebook(){return this._notebook}get source(){return this.getSource()}set source(t){this.setSource(t)}get undoManager(){var t;if(!this.notebook){return this._undoManager}return((t=this.notebook)===null||t===void 0?void 0:t.disableDocumentWideUndoRedo)?this._undoManager:this.notebook.undoManager}get ysource(){return this._ysource}canUndo(){return!!this.undoManager&&this.undoManager.undoStack.length>0}canRedo(){return!!this.undoManager&&this.undoManager.redoStack.length>0}clearUndoHistory(){var t;(t=this.undoManager)===null||t===void 0?void 0:t.clear()}undo(){var t;(t=this.undoManager)===null||t===void 0?void 0:t.undo()}redo(){var t;(t=this.undoManager)===null||t===void 0?void 0:t.redo()}dispose(){var t;if(this._isDisposed)return;this._isDisposed=true;this.ymodel.unobserveDeep(this._modelObserver);if(this._awareness){const t=this._awareness.doc;this._awareness.destroy();t.destroy()}if(this._undoManager){if(this._undoManager===((t=this.notebook)===null||t===void 0?void 0:t.undoManager)){this._undoManager=null}else{this._undoManager.destroy()}}this._disposed.emit();i.Signal.clearData(this)}getId(){return this.ymodel.get("id")}getSource(){return this.ysource.toString()}setSource(t){this.transact((()=>{this.ysource.delete(0,this.ysource.length);this.ysource.insert(0,t)}))}updateSource(t,e,s=""){this.transact((()=>{const n=this.ysource;n.insert(t,s);n.delete(t+s.length,e-t)}))}deleteMetadata(t){if(typeof this.getMetadata(t)==="undefined"){return}this.transact((()=>{this._ymetadata.delete(t);const e=this.getMetadata("jupyter");if(t==="collapsed"&&e){const{outputs_hidden:t,...s}=e;if(Object.keys(s).length===0){this._ymetadata.delete("jupyter")}else{this._ymetadata.set("jupyter",s)}}else if(t==="jupyter"){this._ymetadata.delete("collapsed")}}),false)}getMetadata(t){const e=this._ymetadata;if(e===undefined){return undefined}if(typeof t==="string"){const s=e.get(t);return typeof s==="undefined"?undefined:o.JSONExt.deepCopy(e.get(t))}else{return o.JSONExt.deepCopy(e.toJSON())}}setMetadata(t,e){var s,n;if(typeof t==="string"){if(typeof e==="undefined"){throw new TypeError(`Metadata value for ${t} cannot be 'undefined'; use deleteMetadata.`)}const n=t;if(o.JSONExt.deepEqual((s=this.getMetadata(n))!==null&&s!==void 0?s:null,e)){return}this.transact((()=>{var t;this._ymetadata.set(n,e);if(n==="collapsed"){const s=(t=this.getMetadata("jupyter"))!==null&&t!==void 0?t:{};if(s.outputs_hidden!==e){this.setMetadata("jupyter",{...s,outputs_hidden:e})}}else if(n==="jupyter"){const t=e["outputs_hidden"];if(typeof t!=="undefined"){if(this.getMetadata("collapsed")!==t){this.setMetadata("collapsed",t)}}else{this.deleteMetadata("collapsed")}}}),false)}else{const e=o.JSONExt.deepCopy(t);if(e.collapsed!=null){e.jupyter=e.jupyter||{};e.jupyter.outputs_hidden=e.collapsed}else if(((n=e===null||e===void 0?void 0:e.jupyter)===null||n===void 0?void 0:n.outputs_hidden)!=null){e.collapsed=e.jupyter.outputs_hidden}if(!o.JSONExt.deepEqual(e,this.getMetadata())){this.transact((()=>{for(const[t,s]of Object.entries(e)){this._ymetadata.set(t,s)}}),false)}}}toJSON(){return{id:this.getId(),cell_type:this.cell_type,source:this.getSource(),metadata:this.getMetadata()}}transact(t,e=true,s=null){!this.notebook||this.notebook.disableDocumentWideUndoRedo?this.ymodel.doc==null?t():this.ymodel.doc.transact(t,e?this:s):this.notebook.transact(t,e)}getChanges(t){const e={};const s=t.find((t=>t.target===this.ymodel.get("source")));if(s){e.sourceChange=s.changes.delta}const n=t.find((t=>t.target===this._ymetadata));if(n){e.metadataChange=n.changes.keys;n.changes.keys.forEach(((t,e)=>{switch(t.action){case"add":this._metadataChanged.emit({key:e,newValue:this._ymetadata.get(e),type:"add"});break;case"delete":this._metadataChanged.emit({key:e,oldValue:t.oldValue,type:"remove"});break;case"update":{const s=this._ymetadata.get(e);const n=t.oldValue;let a=true;if(typeof n=="object"&&typeof s=="object"){a=o.JSONExt.deepEqual(n,s)}else{a=n===s}if(!a){this._metadataChanged.emit({key:e,type:"change",oldValue:n,newValue:s})}}break}}))}const a=t.find((t=>t.target===this.ymodel));const i=this.ymodel.get("source");if(a&&a.keysChanged.has("source")){e.sourceChange=[{delete:this._prevSourceLength},{insert:i.toString()}]}this._prevSourceLength=i.length;return e}}class C extends k{static create(t){return super.create(t)}constructor(t,e,s,n={},a){super(t,e,n,a);this._youtputs=s}get cell_type(){return"code"}get execution_count(){return this.ymodel.get("execution_count")||null}set execution_count(t){if(this.ymodel.get("execution_count")!==t){this.transact((()=>{this.ymodel.set("execution_count",t)}),false)}}get executionState(){var t;return(t=this.ymodel.get("execution_state"))!==null&&t!==void 0?t:"idle"}set executionState(t){if(this.ymodel.get("execution_state")!==t){this.transact((()=>{this.ymodel.set("execution_state",t)}),false)}}get outputs(){return this.getOutputs()}set outputs(t){this.setOutputs(t)}get youtputs(){return this._youtputs}getOutputs(){return o.JSONExt.deepCopy(this._youtputs.toJSON())}createOutputs(t){const e=[];for(const s of o.JSONExt.deepCopy(t)){let t;if(s.output_type==="stream"){const{text:e,...n}=s;t=n;const a=new u.Text;let o=e instanceof Array?e.join():e;a.insert(0,o);t["text"]=a}else{t=s}const n=[];for(const[e,s]of Object.entries(t)){n.push([e,s])}const a=new u.Map(n);e.push(a)}return e}setOutputs(t){this.transact((()=>{this._youtputs.delete(0,this._youtputs.length);const e=this.createOutputs(t);this._youtputs.insert(0,e)}),false)}removeStreamOutput(t,e,s=null){this.transact((()=>{const s=this._youtputs.get(t);const n=s.get("text");const a=n.length-e;n.delete(e,a)}),false,s)}appendStreamOutput(t,e,s=null){this.transact((()=>{const s=this._youtputs.get(t);const n=s.get("text");n.insert(n.length,e)}),false,s)}updateOutputs(t,e,s=[],n=null){const a=e{this._youtputs.delete(t,a);const e=this.createOutputs(s);this._youtputs.insert(t,e)}),false,n)}toJSON(){return{...super.toJSON(),outputs:this.getOutputs(),execution_count:this.execution_count}}getChanges(t){const e=super.getChanges(t);const s=t.find((t=>t.path.length===3&&t.path[0]==="outputs"&&t.path[2]==="text"));if(s){e.streamOutputChange=s.changes.delta}const n=t.find((t=>t.target===this.ymodel.get("outputs")));if(n){e.outputsChange=n.changes.delta}const a=t.find((t=>t.target===this.ymodel));if(a&&a.keysChanged.has("execution_count")){const t=a.changes.keys.get("execution_count");e.executionCountChange={oldValue:t.oldValue,newValue:this.ymodel.get("execution_count")}}if(a&&a.keysChanged.has("execution_state")){const t=a.changes.keys.get("execution_state");e.executionStateChange={oldValue:t.oldValue,newValue:this.ymodel.get("execution_state")}}return e}}class O extends k{get attachments(){return this.getAttachments()}set attachments(t){this.setAttachments(t)}getAttachments(){return this.ymodel.get("attachments")}setAttachments(t){this.transact((()=>{if(t==null){this.ymodel.delete("attachments")}else{this.ymodel.set("attachments",t)}}),false)}getChanges(t){const e=super.getChanges(t);const s=t.find((t=>t.target===this.ymodel));if(s&&s.keysChanged.has("attachments")){const t=s.changes.keys.get("attachments");e.attachmentsChange={oldValue:t.oldValue,newValue:this.ymodel.get("attachments")}}return e}}class x extends O{static create(t){return super.create(t)}get cell_type(){return"raw"}toJSON(){return{id:this.getId(),cell_type:"raw",source:this.getSource(),metadata:this.getMetadata(),attachments:this.getAttachments()}}}class V extends O{static create(t){return super.create(t)}get cell_type(){return"markdown"}toJSON(){return{id:this.getId(),cell_type:"markdown",source:this.getSource(),metadata:this.getMetadata(),attachments:this.getAttachments()}}}class D extends b{constructor(t={}){var e;super();this.version="2.0.0";this.ymeta=this.ydoc.getMap("meta");this._onMetaChanged=t=>{const e=t.find((t=>t.target===this.ymeta.get("metadata")));if(e){const t=e.changes.keys;const s=this.ymeta.get("metadata");e.changes.keys.forEach(((t,e)=>{switch(t.action){case"add":this._metadataChanged.emit({key:e,type:"add",newValue:s.get(e)});break;case"delete":this._metadataChanged.emit({key:e,type:"remove",oldValue:t.oldValue});break;case"update":{const n=s.get(e);const a=t.oldValue;let i=true;if(typeof a=="object"&&typeof n=="object"){i=o.JSONExt.deepEqual(a,n)}else{i=a===n}if(!i){this._metadataChanged.emit({key:e,type:"change",oldValue:a,newValue:n})}}break}}));this._changed.emit({metadataChange:t})}const s=t.find((t=>t.target===this.ymeta));if(!s){return}if(s.keysChanged.has("metadata")){const t=s.changes.keys.get("metadata");if((t===null||t===void 0?void 0:t.action)==="add"&&!t.oldValue){const t=new Map;for(const e of Object.keys(this.metadata)){t.set(e,{action:"add",oldValue:undefined});this._metadataChanged.emit({key:e,type:"add",newValue:this.getMetadata(e)})}this._changed.emit({metadataChange:t})}}if(s.keysChanged.has("nbformat")){const t=s.changes.keys.get("nbformat");const e={key:"nbformat",oldValue:(t===null||t===void 0?void 0:t.oldValue)?t.oldValue:undefined,newValue:this.nbformat};this._changed.emit({nbformatChanged:e})}if(s.keysChanged.has("nbformat_minor")){const t=s.changes.keys.get("nbformat_minor");const e={key:"nbformat_minor",oldValue:(t===null||t===void 0?void 0:t.oldValue)?t.oldValue:undefined,newValue:this.nbformat_minor};this._changed.emit({nbformatChanged:e})}};this._onYCellsChanged=t=>{t.changes.added.forEach((t=>{const e=t.content.type;if(!this._ycellMapping.has(e)){const t=S(e,{notebook:this});this._ycellMapping.set(e,t)}}));t.changes.deleted.forEach((t=>{const e=t.content.type;const s=this._ycellMapping.get(e);if(s){s.dispose();this._ycellMapping.delete(e)}}));let e=0;const s=[];t.changes.delta.forEach((t=>{if(t.insert!=null){const n=t.insert.map((t=>this._ycellMapping.get(t)));s.push({insert:n});this.cells.splice(e,0,...n);e+=t.insert.length}else if(t.delete!=null){s.push(t);this.cells.splice(e,t.delete)}else if(t.retain!=null){s.push(t);e+=t.retain}}));this._changed.emit({cellsChange:s})};this._metadataChanged=new i.Signal(this);this._ycells=this.ydoc.getArray("cells");this._ycellMapping=new WeakMap;this._disableDocumentWideUndoRedo=(e=t.disableDocumentWideUndoRedo)!==null&&e!==void 0?e:false;this.cells=this._ycells.toArray().map((t=>{if(!this._ycellMapping.has(t)){this._ycellMapping.set(t,S(t,{notebook:this}))}return this._ycellMapping.get(t)}));this.undoManager.addToScope(this._ycells);this._ycells.observe(this._onYCellsChanged);this.ymeta.observeDeep(this._onMetaChanged)}static create(t={}){var e,s,n,a,o,i,r,d,c;const l=new D({disableDocumentWideUndoRedo:(e=t.disableDocumentWideUndoRedo)!==null&&e!==void 0?e:false});const u={cells:(n=(s=t.data)===null||s===void 0?void 0:s.cells)!==null&&n!==void 0?n:[],nbformat:(o=(a=t.data)===null||a===void 0?void 0:a.nbformat)!==null&&o!==void 0?o:4,nbformat_minor:(r=(i=t.data)===null||i===void 0?void 0:i.nbformat_minor)!==null&&r!==void 0?r:5,metadata:(c=(d=t.data)===null||d===void 0?void 0:d.metadata)!==null&&c!==void 0?c:{}};l.fromJSON(u);return l}get disableDocumentWideUndoRedo(){return this._disableDocumentWideUndoRedo}get metadata(){return this.getMetadata()}set metadata(t){this.setMetadata(t)}get metadataChanged(){return this._metadataChanged}get nbformat(){return this.ymeta.get("nbformat")}set nbformat(t){this.transact((()=>{this.ymeta.set("nbformat",t)}),false)}get nbformat_minor(){return this.ymeta.get("nbformat_minor")}set nbformat_minor(t){this.transact((()=>{this.ymeta.set("nbformat_minor",t)}),false)}dispose(){if(this.isDisposed){return}this._ycells.unobserve(this._onYCellsChanged);this.ymeta.unobserveDeep(this._onMetaChanged);super.dispose()}getCell(t){return this.cells[t]}addCell(t){return this.insertCell(this._ycells.length,t)}insertCell(t,e){return this.insertCells(t,[e])[0]}insertCells(t,e){const s=e.map((t=>{const e=M(t,this);this._ycellMapping.set(e.ymodel,e);return e}));this.transact((()=>{this._ycells.insert(t,s.map((t=>t.ymodel)))}));return s}moveCell(t,e){this.moveCells(t,e)}moveCells(t,e,s=1){const n=new Array(s).fill(true).map(((e,s)=>this.getCell(t+s).toJSON()));this.transact((()=>{this._ycells.delete(t,s);this._ycells.insert(t>e?e:e-s+1,n.map((t=>M(t,this).ymodel)))}))}deleteCell(t){this.deleteCellRange(t,t+1)}deleteCellRange(t,e){this.transact((()=>{this._ycells.delete(t,e-t)}))}deleteMetadata(t){if(typeof this.getMetadata(t)==="undefined"){return}const e=this.metadata;delete e[t];this.setMetadata(e)}getMetadata(t){const e=this.ymeta.get("metadata");if(e===undefined){return undefined}if(typeof t==="string"){const s=e.get(t);return typeof s==="undefined"?undefined:o.JSONExt.deepCopy(s)}else{return o.JSONExt.deepCopy(e.toJSON())}}setMetadata(t,e){var s;if(typeof t==="string"){if(typeof e==="undefined"){throw new TypeError(`Metadata value for ${t} cannot be 'undefined'; use deleteMetadata.`)}if(o.JSONExt.deepEqual((s=this.getMetadata(t))!==null&&s!==void 0?s:null,e)){return}const n={};n[t]=e;this.updateMetadata(n)}else{if(!this.metadata||!o.JSONExt.deepEqual(this.metadata,t)){const e=o.JSONExt.deepCopy(t);const s=this.ymeta.get("metadata");if(s===undefined){return undefined}this.transact((()=>{s.clear();for(const[t,n]of Object.entries(e)){s.set(t,n)}}))}}}updateMetadata(t){const e=o.JSONExt.deepCopy(t);const s=this.ymeta.get("metadata");if(s===undefined){return undefined}this.transact((()=>{for(const[t,n]of Object.entries(e)){s.set(t,n)}}))}getSource(){return this.toJSON()}setSource(t){this.fromJSON(t)}fromJSON(t){this.transact((()=>{this.nbformat=t.nbformat;this.nbformat_minor=t.nbformat_minor;const e=t.metadata;if(e["orig_nbformat"]!==undefined){delete e["orig_nbformat"]}if(!this.metadata){const t=new u.Map;for(const[s,n]of Object.entries(e)){t.set(s,n)}this.ymeta.set("metadata",t)}else{this.metadata=e}const s=t.nbformat===4&&t.nbformat_minor>=5;const n=t.cells.map((t=>{if(!s){delete t.id}return t}));this.insertCells(this.cells.length,n);this.deleteCellRange(0,this.cells.length)}))}toJSON(){const t=this.nbformat===4&&this.nbformat_minor<=4;return{metadata:this.metadata,nbformat_minor:this.nbformat_minor,nbformat:this.nbformat,cells:this.cells.map((e=>{const s=e.toJSON();if(t){delete s.id}return s}))}}}},32421:(t,e,s)=>{s.d(e,{HT:()=>r,HV:()=>n,S2:()=>i,cy:()=>h});const n=t=>t[t.length-1];const a=()=>[];const o=t=>t.slice();const i=(t,e)=>{for(let s=0;s{for(let s=0;s{for(let s=0;st.length===e.length&&d(t,((t,s)=>t===e[s]));const u=t=>t.reduce(((t,e)=>t.concat(e)),[]);const h=Array.isArray;const g=t=>r(set.from(t));const f=(t,e)=>{const s=set.create();const n=[];for(let a=0;a{s.d(e,{EK:()=>u,OK:()=>a,vo:()=>l});var n=s(70641);const a=(t,e,s=0)=>{try{for(;s{};const i=t=>t();const r=t=>t;const d=(t,e)=>t===e;const c=(t,e)=>t===e||t!=null&&e!=null&&t.constructor===e.constructor&&(t instanceof Array&&array.equalFlat(t,e)||typeof t==="object"&&object.equalFlat(t,e));const l=(t,e)=>{if(t==null||e==null){return d(t,e)}if(t.constructor!==e.constructor){return false}if(t===e){return true}switch(t.constructor){case ArrayBuffer:t=new Uint8Array(t);e=new Uint8Array(e);case Uint8Array:{if(t.byteLength!==e.byteLength){return false}for(let s=0;se.includes(t)},61662:(t,e,s)=>{s.d(e,{C:()=>a,Tj:()=>i,_4:()=>o,bz:()=>r,vt:()=>n});const n=()=>new Map;const a=t=>{const e=n();t.forEach(((t,s)=>{e.set(s,t)}));return e};const o=(t,e,s)=>{let n=t.get(e);if(n===undefined){t.set(e,n=s())}return n};const i=(t,e)=>{const s=[];for(const[n,a]of t){s.push(e(a,n))}return s};const r=(t,e)=>{for(const[s,n]of t){if(e(n,s)){return true}}return false};const d=(t,e)=>{for(const[s,n]of t){if(!e(n,s)){return false}}return true}},63616:(t,e,s)=>{s.d(e,{RI:()=>n,T9:()=>f,jk:()=>g,sj:()=>b,tn:()=>o});const n=Math.floor;const a=Math.ceil;const o=Math.abs;const i=Math.imul;const r=Math.round;const d=Math.log10;const c=Math.log2;const l=Math.log;const u=Math.sqrt;const h=(t,e)=>t+e;const g=(t,e)=>tt>e?t:e;const p=Number.isNaN;const m=Math.pow;const y=t=>Math.pow(10,t);const _=Math.sign;const b=t=>t!==0?t<0:1/t<0},70641:(t,e,s)=>{s.d(e,{Bw:()=>d,SQ:()=>g,i5:()=>h});const n=()=>Object.create(null);const a=Object.assign;const o=Object.keys;const i=(t,e)=>{for(const s in t){e(t[s],s)}};const r=(t,e)=>{const s=[];for(const n in t){s.push(e(t[n],n))}return s};const d=t=>o(t).length;const c=(t,e)=>{for(const s in t){if(e(t[s],s)){return true}}return false};const l=t=>{for(const e in t){return false}return true};const u=(t,e)=>{for(const s in t){if(!e(t[s],s)){return false}}return true};const h=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);const g=(t,e)=>t===e||d(t)===d(e)&&u(t,((t,s)=>(t!==undefined||h(e,s))&&e[s]===t))},5739:(t,e,s)=>{s.d(e,{c:()=>i});var n=s(61662);var a=s(25404);var o=s(32421);class i{constructor(){this._observers=n.vt()}on(t,e){n._4(this._observers,t,a.vt).add(e)}once(t,e){const s=(...n)=>{this.off(t,s);e(...n)};this.on(t,s)}off(t,e){const s=this._observers.get(t);if(s!==undefined){s.delete(e);if(s.size===0){this._observers.delete(t)}}}emit(t,e){return o.HT((this._observers.get(t)||n.vt()).values()).forEach((t=>t(...e)))}destroy(){this._observers=n.vt()}}},25404:(t,e,s)=>{s.d(e,{vt:()=>n});const n=()=>new Set;const a=t=>Array.from(t);const o=t=>t.values().next().value||undefined;const i=t=>new Set(t)},64191:(t,e,s)=>{s.d(e,{_g:()=>a});const n=()=>new Date;const a=Date.now;const o=t=>{if(t<6e4){const e=metric.prefix(t,-1);return math.round(e.n*100)/100+e.prefix+"s"}t=math.floor(t/1e3);const e=t%60;const s=math.floor(t/60)%60;const n=math.floor(t/3600)%24;const a=math.floor(t/86400);if(a>0){return a+"d"+(n>0||s>30?" "+(s>30?n+1:n)+"h":"")}if(n>0){return n+"h"+(s>0||e>30?" "+(e>30?s+1:s)+"min":"")}return s+"min"+(e>0?" "+e+"s":"")}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5566.c76ea61eb723ee84e2cf.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5566.c76ea61eb723ee84e2cf.js deleted file mode 100644 index 638075f417775b69bdedd1090041a4ceb1a84e08..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5566.c76ea61eb723ee84e2cf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5566],{95566:(e,t,r)=>{r.r(t);r.d(t,{cassandra:()=>b,esper:()=>k,gpSQL:()=>x,gql:()=>v,hive:()=>_,mariaDB:()=>g,msSQL:()=>m,mySQL:()=>p,pgSQL:()=>y,plSQL:()=>f,sparkSQL:()=>w,sql:()=>a,sqlite:()=>h,standardSQL:()=>d});function a(e){var t=e.client||{},r=e.atoms||{false:true,true:true,null:true},a=e.builtin||c(u),i=e.keywords||c(l),n=e.operatorChars||/^[*+\-%<>!=&|~^\/]/,s=e.support||{},o=e.hooks||{},d=e.dateSQL||{date:true,time:true,timestamp:true},m=e.backslashStringEscapes!==false,p=e.brackets||/^[\{}\(\)\[\]]/,g=e.punctuation||/^[;.,:]/;function h(e,l){var c=e.next();if(o[c]){var u=o[c](e,l);if(u!==false)return u}if(s.hexNumber&&(c=="0"&&e.match(/^[xX][0-9a-fA-F]+/)||(c=="x"||c=="X")&&e.match(/^'[0-9a-fA-F]*'/))){return"number"}else if(s.binaryNumber&&((c=="b"||c=="B")&&e.match(/^'[01]+'/)||c=="0"&&e.match(/^b[01]*/))){return"number"}else if(c.charCodeAt(0)>47&&c.charCodeAt(0)<58){e.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/);s.decimallessFloat&&e.match(/^\.(?!\.)/);return"number"}else if(c=="?"&&(e.eatSpace()||e.eol()||e.eat(";"))){return"macroName"}else if(c=="'"||c=='"'&&s.doubleQuote){l.tokenize=b(c);return l.tokenize(e,l)}else if((s.nCharCast&&(c=="n"||c=="N")||s.charsetCast&&c=="_"&&e.match(/[a-z][a-z0-9]*/i))&&(e.peek()=="'"||e.peek()=='"')){return"keyword"}else if(s.escapeConstant&&(c=="e"||c=="E")&&(e.peek()=="'"||e.peek()=='"'&&s.doubleQuote)){l.tokenize=function(e,t){return(t.tokenize=b(e.next(),true))(e,t)};return"keyword"}else if(s.commentSlashSlash&&c=="/"&&e.eat("/")){e.skipToEnd();return"comment"}else if(s.commentHash&&c=="#"||c=="-"&&e.eat("-")&&(!s.commentSpaceRequired||e.eat(" "))){e.skipToEnd();return"comment"}else if(c=="/"&&e.eat("*")){l.tokenize=f(1);return l.tokenize(e,l)}else if(c=="."){if(s.zerolessFloat&&e.match(/^(?:\d+(?:e[+-]?\d+)?)/i))return"number";if(e.match(/^\.+/))return null;if(s.ODBCdotTable&&e.match(/^[\w\d_$#]+/))return"type"}else if(n.test(c)){e.eatWhile(n);return"operator"}else if(p.test(c)){return"bracket"}else if(g.test(c)){e.eatWhile(g);return"punctuation"}else if(c=="{"&&(e.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||e.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/))){return"number"}else{e.eatWhile(/^[_\w\d]/);var m=e.current().toLowerCase();if(d.hasOwnProperty(m)&&(e.match(/^( )+'[^']*'/)||e.match(/^( )+"[^"]*"/)))return"number";if(r.hasOwnProperty(m))return"atom";if(a.hasOwnProperty(m))return"type";if(i.hasOwnProperty(m))return"keyword";if(t.hasOwnProperty(m))return"builtin";return null}}function b(e,t){return function(r,a){var i=false,n;while((n=r.next())!=null){if(n==e&&!i){a.tokenize=h;break}i=(m||t)&&!i&&n=="\\"}return"string"}}function f(e){return function(t,r){var a=t.match(/^.*?(\/\*|\*\/)/);if(!a)t.skipToEnd();else if(a[1]=="/*")r.tokenize=f(e+1);else if(e>1)r.tokenize=f(e-1);else r.tokenize=h;return"comment"}}function _(e,t,r){t.context={prev:t.context,indent:e.indentation(),col:e.column(),type:r}}function y(e){e.indent=e.context.indent;e.context=e.context.prev}return{name:"sql",startState:function(){return{tokenize:h,context:null}},token:function(e,t){if(e.sol()){if(t.context&&t.context.align==null)t.context.align=false}if(t.tokenize==h&&e.eatSpace())return null;var r=t.tokenize(e,t);if(r=="comment")return r;if(t.context&&t.context.align==null)t.context.align=true;var a=e.current();if(a=="(")_(e,t,")");else if(a=="[")_(e,t,"]");else if(t.context&&t.context.type==a)y(t);return r},indent:function(e,t,r){var a=e.context;if(!a)return null;var i=t.charAt(0)==a.type;if(a.align)return a.col+(i?0:1);else return a.indent+(i?0:r.unit)},languageData:{commentTokens:{line:s.commentSlashSlash?"//":s.commentHash?"#":"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}}function i(e){var t;while((t=e.next())!=null){if(t=="`"&&!e.eat("`"))return"string.special"}e.backUp(e.current().length-1);return e.eatWhile(/\w/)?"string.special":null}function n(e){var t;while((t=e.next())!=null){if(t=='"'&&!e.eat('"'))return"string.special"}e.backUp(e.current().length-1);return e.eatWhile(/\w/)?"string.special":null}function s(e){if(e.eat("@")){e.match("session.");e.match("local.");e.match("global.")}if(e.eat("'")){e.match(/^.*'/);return"string.special"}else if(e.eat('"')){e.match(/^.*"/);return"string.special"}else if(e.eat("`")){e.match(/^.*`/);return"string.special"}else if(e.match(/^[0-9a-zA-Z$\.\_]+/)){return"string.special"}return null}function o(e){if(e.eat("N")){return"atom"}return e.match(/^[a-zA-Z.#!?]/)?"string.special":null}var l="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function c(e){var t={},r=e.split(" ");for(var a=0;a!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:false,dateSQL:c("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":s}});const p=a({client:c("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:c(l+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:c("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:c("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:c("date time timestamp"),support:c("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":s,"`":i,"\\":o}});const g=a({client:c("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:c(l+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:c("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:c("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:c("date time timestamp"),support:c("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":s,"`":i,"\\":o}});const h=a({client:c("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:c(l+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:c("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:c("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:c("date time timestamp datetime"),support:c("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":s,":":s,"?":s,$:s,'"':n,"`":i}});const b=a({client:{},keywords:c("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:c("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:c("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:c("commentSlashSlash decimallessFloat"),hooks:{}});const f=a({client:c("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:c("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:c("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:c("date time timestamp"),support:c("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")});const _=a({keywords:c("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:c("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:c("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:c("date timestamp"),support:c("ODBCdotTable doubleQuote binaryNumber hexNumber")});const y=a({client:c("source"),keywords:c(l+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:c("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:c("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:false,dateSQL:c("date time timestamp"),support:c("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")});const v=a({keywords:c("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:c("false true"),builtin:c("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/});const x=a({client:c("source"),keywords:c("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:c("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:c("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:c("date time timestamp"),support:c("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")});const w=a({keywords:c("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:c("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:c("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:c("date time timestamp"),support:c("ODBCdotTable doubleQuote zerolessFloat")});const k=a({client:c("source"),keywords:c("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:c("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:c("time"),support:c("decimallessFloat zerolessFloat binaryNumber hexNumber")})}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5606.e03dfa10c124a03f36ba.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5606.e03dfa10c124a03f36ba.js deleted file mode 100644 index e501d27f1d01c819ef83e5c4162b12e4c139aca6..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5606.e03dfa10c124a03f36ba.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5606],{65606:e=>{var t=e.exports={};var r;var n;function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){r=setTimeout}else{r=i}}catch(e){r=i}try{if(typeof clearTimeout==="function"){n=clearTimeout}else{n=o}}catch(e){n=o}})();function u(e){if(r===setTimeout){return setTimeout(e,0)}if((r===i||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function c(e){if(n===clearTimeout){return clearTimeout(e)}if((n===o||!n)&&clearTimeout){n=clearTimeout;return clearTimeout(e)}try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var a=[];var l=false;var s;var f=-1;function h(){if(!l||!s){return}l=false;if(s.length){a=s.concat(a)}else{f=-1}if(a.length){p()}}function p(){if(l){return}var e=u(h);l=true;var t=a.length;while(t){s=a;a=[];while(++f1){for(var r=1;r{s.d(t,{A:()=>n,P:()=>a});var i=s(75905);var r=s(24982);var n=(0,i.K2)(((e,t)=>{let s;if(t==="sandbox"){s=(0,r.Ltv)("#i"+e)}const i=t==="sandbox"?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body");const n=i.select(`[id="${e}"]`);return n}),"getDiagramElement");var a=(0,i.K2)(((e,t,s,r)=>{e.attr("class",s);const{width:n,height:a,x:o,y:h}=l(e,t);(0,i.a$)(e,a,n,r);const u=c(o,h,n,a,t);e.attr("viewBox",u);i.Rm.debug(`viewBox configured: ${u} with padding: ${t}`)}),"setupViewPortForSVG");var l=(0,i.K2)(((e,t)=>{const s=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+t*2,height:s.height+t*2,x:s.x,y:s.y}}),"calculateDimensionsWithPadding");var c=(0,i.K2)(((e,t,s,i,r)=>`${e-r} ${t-r} ${s} ${i}`),"createViewBox")},90580:(e,t,s)=>{s.d(t,{diagram:()=>k});var i=s(15051);var r=s(94065);var n=s(33416);var a=s(94746);var l=s(20778);var c=s(57590);var o=s(68232);var h=s(76261);var u=s(96049);var y=s(75905);var f=function(){var e=(0,y.K2)((function(e,t,s,i){for(s=s||{},i=e.length;i--;s[e[i]]=t);return s}),"o"),t=[1,3],s=[1,4],i=[1,5],r=[1,6],n=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],a=[1,22],l=[2,7],c=[1,26],o=[1,27],h=[1,28],u=[1,29],f=[1,33],m=[1,34],p=[1,35],d=[1,36],E=[1,37],b=[1,38],R=[1,24],k=[1,31],_=[1,32],g=[1,30],S=[1,39],I=[1,40],T=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],N=[1,61],v=[89,90],q=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],A=[27,29],C=[1,70],w=[1,71],x=[1,72],L=[1,73],D=[1,74],O=[1,75],$=[1,76],M=[1,83],F=[1,80],K=[1,84],P=[1,85],V=[1,86],U=[1,87],Y=[1,88],B=[1,89],Q=[1,90],H=[1,91],j=[1,92],W=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],G=[63,64],z=[1,101],X=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],J=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Z=[1,110],ee=[1,106],te=[1,107],se=[1,108],ie=[1,109],re=[1,111],ne=[1,116],ae=[1,117],le=[1,114],ce=[1,115];var oe={trace:(0,y.K2)((function e(){}),"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:(0,y.K2)((function e(t,s,i,r,n,a,l){var c=a.length-1;switch(n){case 4:this.$=a[c].trim();r.setAccTitle(this.$);break;case 5:case 6:this.$=a[c].trim();r.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:r.setDirection("TB");break;case 18:r.setDirection("BT");break;case 19:r.setDirection("RL");break;case 20:r.setDirection("LR");break;case 21:r.addRequirement(a[c-3],a[c-4]);break;case 22:r.addRequirement(a[c-5],a[c-6]);r.setClass([a[c-5]],a[c-3]);break;case 23:r.setNewReqId(a[c-2]);break;case 24:r.setNewReqText(a[c-2]);break;case 25:r.setNewReqRisk(a[c-2]);break;case 26:r.setNewReqVerifyMethod(a[c-2]);break;case 29:this.$=r.RequirementType.REQUIREMENT;break;case 30:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=r.RiskLevel.LOW_RISK;break;case 36:this.$=r.RiskLevel.MED_RISK;break;case 37:this.$=r.RiskLevel.HIGH_RISK;break;case 38:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=r.VerifyType.VERIFY_TEST;break;case 42:r.addElement(a[c-3]);break;case 43:r.addElement(a[c-5]);r.setClass([a[c-5]],a[c-3]);break;case 44:r.setNewElementType(a[c-2]);break;case 45:r.setNewElementDocRef(a[c-2]);break;case 48:r.addRelationship(a[c-2],a[c],a[c-4]);break;case 49:r.addRelationship(a[c-2],a[c-4],a[c]);break;case 50:this.$=r.Relationships.CONTAINS;break;case 51:this.$=r.Relationships.COPIES;break;case 52:this.$=r.Relationships.DERIVES;break;case 53:this.$=r.Relationships.SATISFIES;break;case 54:this.$=r.Relationships.VERIFIES;break;case 55:this.$=r.Relationships.REFINES;break;case 56:this.$=r.Relationships.TRACES;break;case 57:this.$=a[c-2];r.defineClass(a[c-1],a[c]);break;case 58:r.setClass(a[c-1],a[c]);break;case 59:r.setClass([a[c-2]],a[c]);break;case 60:case 62:this.$=[a[c]];break;case 61:case 63:this.$=a[c-2].concat([a[c]]);break;case 64:this.$=a[c-2];r.setCssStyle(a[c-1],a[c]);break;case 65:this.$=[a[c]];break;case 66:a[c-2].push(a[c]);this.$=a[c-2];break;case 68:this.$=a[c-1]+a[c];break}}),"anonymous"),table:[{3:1,4:2,6:t,9:s,11:i,13:r},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:s,11:i,13:r},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(n,[2,6]),{3:12,4:2,6:t,9:s,11:i,13:r},{1:[2,2]},{4:17,5:a,7:13,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:c,22:o,23:h,24:u,25:23,33:25,41:f,42:m,43:p,44:d,45:E,46:b,54:R,72:k,74:_,77:g,89:S,90:I},e(n,[2,4]),e(n,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:a,7:42,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:c,22:o,23:h,24:u,25:23,33:25,41:f,42:m,43:p,44:d,45:E,46:b,54:R,72:k,74:_,77:g,89:S,90:I},{4:17,5:a,7:43,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:c,22:o,23:h,24:u,25:23,33:25,41:f,42:m,43:p,44:d,45:E,46:b,54:R,72:k,74:_,77:g,89:S,90:I},{4:17,5:a,7:44,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:c,22:o,23:h,24:u,25:23,33:25,41:f,42:m,43:p,44:d,45:E,46:b,54:R,72:k,74:_,77:g,89:S,90:I},{4:17,5:a,7:45,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:c,22:o,23:h,24:u,25:23,33:25,41:f,42:m,43:p,44:d,45:E,46:b,54:R,72:k,74:_,77:g,89:S,90:I},{4:17,5:a,7:46,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:c,22:o,23:h,24:u,25:23,33:25,41:f,42:m,43:p,44:d,45:E,46:b,54:R,72:k,74:_,77:g,89:S,90:I},{4:17,5:a,7:47,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:c,22:o,23:h,24:u,25:23,33:25,41:f,42:m,43:p,44:d,45:E,46:b,54:R,72:k,74:_,77:g,89:S,90:I},{4:17,5:a,7:48,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:c,22:o,23:h,24:u,25:23,33:25,41:f,42:m,43:p,44:d,45:E,46:b,54:R,72:k,74:_,77:g,89:S,90:I},{4:17,5:a,7:49,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:c,22:o,23:h,24:u,25:23,33:25,41:f,42:m,43:p,44:d,45:E,46:b,54:R,72:k,74:_,77:g,89:S,90:I},{4:17,5:a,7:50,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:c,22:o,23:h,24:u,25:23,33:25,41:f,42:m,43:p,44:d,45:E,46:b,54:R,72:k,74:_,77:g,89:S,90:I},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},e(T,[2,17]),e(T,[2,18]),e(T,[2,19]),e(T,[2,20]),{30:60,33:62,75:N,89:S,90:I},{30:63,33:62,75:N,89:S,90:I},{30:64,33:62,75:N,89:S,90:I},e(v,[2,29]),e(v,[2,30]),e(v,[2,31]),e(v,[2,32]),e(v,[2,33]),e(v,[2,34]),e(q,[2,81]),e(q,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},e(A,[2,79]),e(A,[2,80]),{27:[1,67],29:[1,68]},e(A,[2,85]),e(A,[2,86]),{62:69,65:C,66:w,67:x,68:L,69:D,70:O,71:$},{62:77,65:C,66:w,67:x,68:L,69:D,70:O,71:$},{30:78,33:62,75:N,89:S,90:I},{73:79,75:M,76:F,78:81,79:82,80:K,81:P,82:V,83:U,84:Y,85:B,86:Q,87:H,88:j},e(W,[2,60]),e(W,[2,62]),{73:93,75:M,76:F,78:81,79:82,80:K,81:P,82:V,83:U,84:Y,85:B,86:Q,87:H,88:j},{30:94,33:62,75:N,76:F,89:S,90:I},{5:[1,95]},{30:96,33:62,75:N,89:S,90:I},{5:[1,97]},{30:98,33:62,75:N,89:S,90:I},{63:[1,99]},e(G,[2,50]),e(G,[2,51]),e(G,[2,52]),e(G,[2,53]),e(G,[2,54]),e(G,[2,55]),e(G,[2,56]),{64:[1,100]},e(T,[2,59],{76:F}),e(T,[2,64],{76:z}),{33:103,75:[1,102],89:S,90:I},e(X,[2,65],{79:104,75:M,80:K,81:P,82:V,83:U,84:Y,85:B,86:Q,87:H,88:j}),e(J,[2,67]),e(J,[2,69]),e(J,[2,70]),e(J,[2,71]),e(J,[2,72]),e(J,[2,73]),e(J,[2,74]),e(J,[2,75]),e(J,[2,76]),e(J,[2,77]),e(J,[2,78]),e(T,[2,57],{76:z}),e(T,[2,58],{76:F}),{5:Z,28:105,31:ee,34:te,36:se,38:ie,40:re},{27:[1,112],76:F},{5:ne,40:ae,56:113,57:le,59:ce},{27:[1,118],76:F},{33:119,89:S,90:I},{33:120,89:S,90:I},{75:M,78:121,79:82,80:K,81:P,82:V,83:U,84:Y,85:B,86:Q,87:H,88:j},e(W,[2,61]),e(W,[2,63]),e(J,[2,68]),e(T,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:Z,28:126,31:ee,34:te,36:se,38:ie,40:re},e(T,[2,28]),{5:[1,127]},e(T,[2,42]),{32:[1,128]},{32:[1,129]},{5:ne,40:ae,56:130,57:le,59:ce},e(T,[2,47]),{5:[1,131]},e(T,[2,48]),e(T,[2,49]),e(X,[2,66],{79:104,75:M,80:K,81:P,82:V,83:U,84:Y,85:B,86:Q,87:H,88:j}),{33:132,89:S,90:I},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},e(T,[2,27]),{5:Z,28:145,31:ee,34:te,36:se,38:ie,40:re},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},e(T,[2,46]),{5:ne,40:ae,56:152,57:le,59:ce},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},e(T,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},e(T,[2,43]),{5:Z,28:159,31:ee,34:te,36:se,38:ie,40:re},{5:Z,28:160,31:ee,34:te,36:se,38:ie,40:re},{5:Z,28:161,31:ee,34:te,36:se,38:ie,40:re},{5:Z,28:162,31:ee,34:te,36:se,38:ie,40:re},{5:ne,40:ae,56:163,57:le,59:ce},{5:ne,40:ae,56:164,57:le,59:ce},e(T,[2,23]),e(T,[2,24]),e(T,[2,25]),e(T,[2,26]),e(T,[2,44]),e(T,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:(0,y.K2)((function e(t,s){if(s.recoverable){this.trace(t)}else{var i=new Error(t);i.hash=s;throw i}}),"parseError"),parse:(0,y.K2)((function e(t){var s=this,i=[0],r=[],n=[null],a=[],l=this.table,c="",o=0,h=0,u=0,f=2,m=1;var p=a.slice.call(arguments,1);var d=Object.create(this.lexer);var E={yy:{}};for(var b in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,b)){E.yy[b]=this.yy[b]}}d.setInput(t,E.yy);E.yy.lexer=d;E.yy.parser=this;if(typeof d.yylloc=="undefined"){d.yylloc={}}var R=d.yylloc;a.push(R);var k=d.options&&d.options.ranges;if(typeof E.yy.parseError==="function"){this.parseError=E.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function _(e){i.length=i.length-2*e;n.length=n.length-e;a.length=a.length-e}(0,y.K2)(_,"popStack");function g(){var e;e=r.pop()||d.lex()||m;if(typeof e!=="number"){if(e instanceof Array){r=e;e=r.pop()}e=s.symbols_[e]||e}return e}(0,y.K2)(g,"lex");var S,I,T,N,v,q,A={},C,w,x,L;while(true){T=i[i.length-1];if(this.defaultActions[T]){N=this.defaultActions[T]}else{if(S===null||typeof S=="undefined"){S=g()}N=l[T]&&l[T][S]}if(typeof N==="undefined"||!N.length||!N[0]){var D="";L=[];for(C in l[T]){if(this.terminals_[C]&&C>f){L.push("'"+this.terminals_[C]+"'")}}if(d.showPosition){D="Parse error on line "+(o+1)+":\n"+d.showPosition()+"\nExpecting "+L.join(", ")+", got '"+(this.terminals_[S]||S)+"'"}else{D="Parse error on line "+(o+1)+": Unexpected "+(S==m?"end of input":"'"+(this.terminals_[S]||S)+"'")}this.parseError(D,{text:d.match,token:this.terminals_[S]||S,line:d.yylineno,loc:R,expected:L})}if(N[0]instanceof Array&&N.length>1){throw new Error("Parse Error: multiple actions possible at state: "+T+", token: "+S)}switch(N[0]){case 1:i.push(S);n.push(d.yytext);a.push(d.yylloc);i.push(N[1]);S=null;if(!I){h=d.yyleng;c=d.yytext;o=d.yylineno;R=d.yylloc;if(u>0){u--}}else{S=I;I=null}break;case 2:w=this.productions_[N[1]][1];A.$=n[n.length-w];A._$={first_line:a[a.length-(w||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(w||1)].first_column,last_column:a[a.length-1].last_column};if(k){A._$.range=[a[a.length-(w||1)].range[0],a[a.length-1].range[1]]}q=this.performAction.apply(A,[c,h,o,E.yy,N[1],n,a].concat(p));if(typeof q!=="undefined"){return q}if(w){i=i.slice(0,-1*w*2);n=n.slice(0,-1*w);a=a.slice(0,-1*w)}i.push(this.productions_[N[1]][0]);n.push(A.$);a.push(A._$);x=l[i[i.length-2]][i[i.length-1]];i.push(x);break;case 3:return true}}return true}),"parse")};var he=function(){var e={EOF:1,parseError:(0,y.K2)((function e(t,s){if(this.yy.parser){this.yy.parser.parseError(t,s)}else{throw new Error(t)}}),"parseError"),setInput:(0,y.K2)((function(e,t){this.yy=t||this.yy||{};this._input=e;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,y.K2)((function(){var e=this._input[0];this.yytext+=e;this.yyleng++;this.offset++;this.match+=e;this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);if(t){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return e}),"input"),unput:(0,y.K2)((function(e){var t=e.length;var s=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-t);this.offset-=t;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(s.length-1){this.yylineno-=s.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-t};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-t]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,y.K2)((function(){this._more=true;return this}),"more"),reject:(0,y.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,y.K2)((function(e){this.unput(this.match.slice(e))}),"less"),pastInput:(0,y.K2)((function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,y.K2)((function(){var e=this.match;if(e.length<20){e+=this._input.substr(0,20-e.length)}return(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,y.K2)((function(){var e=this.pastInput();var t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"}),"showPosition"),test_match:(0,y.K2)((function(e,t){var s,i,r;if(this.options.backtrack_lexer){r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){r.yylloc.range=this.yylloc.range.slice(0)}}i=e[0].match(/(?:\r\n?|\n).*/g);if(i){this.yylineno+=i.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length};this.yytext+=e[0];this.match+=e[0];this.matches=e;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(e[0].length);this.matched+=e[0];s=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(s){return s}else if(this._backtrack){for(var n in r){this[n]=r[n]}return false}return false}),"test_match"),next:(0,y.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var e,t,s,i;if(!this._more){this.yytext="";this.match=""}var r=this._currentRules();for(var n=0;nt[0].length)){t=s;i=n;if(this.options.backtrack_lexer){e=this.test_match(s,r[n]);if(e!==false){return e}else if(this._backtrack){t=false;continue}else{return false}}else if(!this.options.flex){break}}}if(t){e=this.test_match(t,r[i]);if(e!==false){return e}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,y.K2)((function e(){var t=this.next();if(t){return t}else{return this.lex()}}),"lex"),begin:(0,y.K2)((function e(t){this.conditionStack.push(t)}),"begin"),popState:(0,y.K2)((function e(){var t=this.conditionStack.length-1;if(t>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,y.K2)((function e(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,y.K2)((function e(t){t=this.conditionStack.length-1-Math.abs(t||0);if(t>=0){return this.conditionStack[t]}else{return"INITIAL"}}),"topState"),pushState:(0,y.K2)((function e(t){this.begin(t)}),"pushState"),stateStackSize:(0,y.K2)((function e(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,y.K2)((function e(t,s,i,r){var n=r;switch(i){case 0:return"title";break;case 1:this.begin("acc_title");return 9;break;case 2:this.popState();return"acc_title_value";break;case 3:this.begin("acc_descr");return 11;break;case 4:this.popState();return"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";break;case 8:return 21;break;case 9:return 22;break;case 10:return 23;break;case 11:return 24;break;case 12:return 5;break;case 13:break;case 14:break;case 15:break;case 16:return 8;break;case 17:return 6;break;case 18:return 27;break;case 19:return 40;break;case 20:return 29;break;case 21:return 32;break;case 22:return 31;break;case 23:return 34;break;case 24:return 36;break;case 25:return 38;break;case 26:return 41;break;case 27:return 42;break;case 28:return 43;break;case 29:return 44;break;case 30:return 45;break;case 31:return 46;break;case 32:return 47;break;case 33:return 48;break;case 34:return 49;break;case 35:return 50;break;case 36:return 51;break;case 37:return 52;break;case 38:return 53;break;case 39:return 54;break;case 40:return 65;break;case 41:return 66;break;case 42:return 67;break;case 43:return 68;break;case 44:return 69;break;case 45:return 70;break;case 46:return 71;break;case 47:return 57;break;case 48:return 59;break;case 49:this.begin("style");return 77;break;case 50:return 75;break;case 51:return 81;break;case 52:return 88;break;case 53:return"PERCENT";break;case 54:return 86;break;case 55:return 84;break;case 56:break;case 57:this.begin("string");break;case 58:this.popState();break;case 59:this.begin("style");return 72;break;case 60:this.begin("style");return 74;break;case 61:return 61;break;case 62:return 64;break;case 63:return 63;break;case 64:this.begin("string");break;case 65:this.popState();break;case 66:return"qString";break;case 67:s.yytext=s.yytext.trim();return 89;break;case 68:return 75;break;case 69:return 80;break;case 70:return 76;break}}),"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::{3})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:style\b)/i,/^(?:\w+)/i,/^(?::)/i,/^(?:;)/i,/^(?:%)/i,/^(?:-)/i,/^(?:#)/i,/^(?: )/i,/^(?:["])/i,/^(?:\n)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^:,\r\n\{\<\>\-\=]*)/i,/^(?:\w+)/i,/^(?:[0-9]+)/i,/^(?:,)/i],conditions:{acc_descr_multiline:{rules:[6,7,68,69,70],inclusive:false},acc_descr:{rules:[4,68,69,70],inclusive:false},acc_title:{rules:[2,68,69,70],inclusive:false},style:{rules:[50,51,52,53,54,55,56,57,58,68,69,70],inclusive:false},unqString:{rules:[68,69,70],inclusive:false},token:{rules:[68,69,70],inclusive:false},string:{rules:[65,66,68,69,70],inclusive:false},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,59,60,61,62,63,64,67,68,69,70],inclusive:true}}};return e}();oe.lexer=he;function ue(){this.yy={}}(0,y.K2)(ue,"Parser");ue.prototype=oe;oe.Parser=ue;return new ue}();f.parser=f;var m=f;var p=class{constructor(){this.relations=[];this.latestRequirement=this.getInitialRequirement();this.requirements=new Map;this.latestElement=this.getInitialElement();this.elements=new Map;this.classes=new Map;this.direction="TB";this.RequirementType={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"};this.RiskLevel={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"};this.VerifyType={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"};this.Relationships={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"};this.setAccTitle=y.SV;this.getAccTitle=y.iN;this.setAccDescription=y.EI;this.getAccDescription=y.m7;this.setDiagramTitle=y.ke;this.getDiagramTitle=y.ab;this.getConfig=(0,y.K2)((()=>(0,y.D7)().requirement),"getConfig");this.clear();this.setDirection=this.setDirection.bind(this);this.addRequirement=this.addRequirement.bind(this);this.setNewReqId=this.setNewReqId.bind(this);this.setNewReqRisk=this.setNewReqRisk.bind(this);this.setNewReqText=this.setNewReqText.bind(this);this.setNewReqVerifyMethod=this.setNewReqVerifyMethod.bind(this);this.addElement=this.addElement.bind(this);this.setNewElementType=this.setNewElementType.bind(this);this.setNewElementDocRef=this.setNewElementDocRef.bind(this);this.addRelationship=this.addRelationship.bind(this);this.setCssStyle=this.setCssStyle.bind(this);this.setClass=this.setClass.bind(this);this.defineClass=this.defineClass.bind(this);this.setAccTitle=this.setAccTitle.bind(this);this.setAccDescription=this.setAccDescription.bind(this)}static{(0,y.K2)(this,"RequirementDB")}getDirection(){return this.direction}setDirection(e){this.direction=e}resetLatestRequirement(){this.latestRequirement=this.getInitialRequirement()}resetLatestElement(){this.latestElement=this.getInitialElement()}getInitialRequirement(){return{requirementId:"",text:"",risk:"",verifyMethod:"",name:"",type:"",cssStyles:[],classes:["default"]}}getInitialElement(){return{name:"",type:"",docRef:"",cssStyles:[],classes:["default"]}}addRequirement(e,t){if(!this.requirements.has(e)){this.requirements.set(e,{name:e,type:t,requirementId:this.latestRequirement.requirementId,text:this.latestRequirement.text,risk:this.latestRequirement.risk,verifyMethod:this.latestRequirement.verifyMethod,cssStyles:[],classes:["default"]})}this.resetLatestRequirement();return this.requirements.get(e)}getRequirements(){return this.requirements}setNewReqId(e){if(this.latestRequirement!==void 0){this.latestRequirement.requirementId=e}}setNewReqText(e){if(this.latestRequirement!==void 0){this.latestRequirement.text=e}}setNewReqRisk(e){if(this.latestRequirement!==void 0){this.latestRequirement.risk=e}}setNewReqVerifyMethod(e){if(this.latestRequirement!==void 0){this.latestRequirement.verifyMethod=e}}addElement(e){if(!this.elements.has(e)){this.elements.set(e,{name:e,type:this.latestElement.type,docRef:this.latestElement.docRef,cssStyles:[],classes:["default"]});y.Rm.info("Added new element: ",e)}this.resetLatestElement();return this.elements.get(e)}getElements(){return this.elements}setNewElementType(e){if(this.latestElement!==void 0){this.latestElement.type=e}}setNewElementDocRef(e){if(this.latestElement!==void 0){this.latestElement.docRef=e}}addRelationship(e,t,s){this.relations.push({type:e,src:t,dst:s})}getRelationships(){return this.relations}clear(){this.relations=[];this.resetLatestRequirement();this.requirements=new Map;this.resetLatestElement();this.elements=new Map;this.classes=new Map;(0,y.IU)()}setCssStyle(e,t){for(const s of e){const e=this.requirements.get(s)??this.elements.get(s);if(!t||!e){return}for(const s of t){if(s.includes(",")){e.cssStyles.push(...s.split(","))}else{e.cssStyles.push(s)}}}}setClass(e,t){for(const s of e){const e=this.requirements.get(s)??this.elements.get(s);if(e){for(const s of t){e.classes.push(s);const t=this.classes.get(s)?.styles;if(t){e.cssStyles.push(...t)}}}}}defineClass(e,t){for(const s of e){let e=this.classes.get(s);if(e===void 0){e={id:s,styles:[],textStyles:[]};this.classes.set(s,e)}if(t){t.forEach((function(t){if(/color/.exec(t)){const s=t.replace("fill","bgFill");e.textStyles.push(s)}e.styles.push(t)}))}this.requirements.forEach((e=>{if(e.classes.includes(s)){e.cssStyles.push(...t.flatMap((e=>e.split(","))))}}));this.elements.forEach((e=>{if(e.classes.includes(s)){e.cssStyles.push(...t.flatMap((e=>e.split(","))))}}))}}getClasses(){return this.classes}getData(){const e=(0,y.D7)();const t=[];const s=[];for(const i of this.requirements.values()){const s=i;s.id=i.name;s.cssStyles=i.cssStyles;s.cssClasses=i.classes.join(" ");s.shape="requirementBox";s.look=e.look;t.push(s)}for(const i of this.elements.values()){const s=i;s.shape="requirementBox";s.look=e.look;s.id=i.name;s.cssStyles=i.cssStyles;s.cssClasses=i.classes.join(" ");t.push(s)}for(const i of this.relations){let t=0;const r=i.type===this.Relationships.CONTAINS;const n={id:`${i.src}-${i.dst}-${t}`,start:this.requirements.get(i.src)?.name??this.elements.get(i.src)?.name,end:this.requirements.get(i.dst)?.name??this.elements.get(i.dst)?.name,label:`<<${i.type}>>`,classes:"relationshipLine",style:["fill:none",r?"":"stroke-dasharray: 10,7"],labelpos:"c",thickness:"normal",type:"normal",pattern:r?"normal":"dashed",arrowTypeStart:r?"requirement_contains":"",arrowTypeEnd:r?"":"requirement_arrow",look:e.look};s.push(n);t++}return{nodes:t,edges:s,other:{},config:e,direction:this.getDirection()}}};var d=(0,y.K2)((e=>`\n\n marker {\n fill: ${e.relationColor};\n stroke: ${e.relationColor};\n }\n\n marker.cross {\n stroke: ${e.lineColor};\n }\n\n svg {\n font-family: ${e.fontFamily};\n font-size: ${e.fontSize};\n }\n\n .reqBox {\n fill: ${e.requirementBackground};\n fill-opacity: 1.0;\n stroke: ${e.requirementBorderColor};\n stroke-width: ${e.requirementBorderSize};\n }\n \n .reqTitle, .reqLabel{\n fill: ${e.requirementTextColor};\n }\n .reqLabelBox {\n fill: ${e.relationLabelBackground};\n fill-opacity: 1.0;\n }\n\n .req-title-line {\n stroke: ${e.requirementBorderColor};\n stroke-width: ${e.requirementBorderSize};\n }\n .relationshipLine {\n stroke: ${e.relationColor};\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ${e.relationLabelColor};\n }\n .divider {\n stroke: ${e.nodeBorder};\n stroke-width: 1;\n }\n .label {\n font-family: ${e.fontFamily};\n color: ${e.nodeTextColor||e.textColor};\n }\n .label text,span {\n fill: ${e.nodeTextColor||e.textColor};\n color: ${e.nodeTextColor||e.textColor};\n }\n .labelBkg {\n background-color: ${e.edgeLabelBackground};\n }\n\n`),"getStyles");var E=d;var b={};(0,y.VA)(b,{draw:()=>R});var R=(0,y.K2)((async function(e,t,s,n){y.Rm.info("REF0:");y.Rm.info("Drawing requirement diagram (unified)",t);const{securityLevel:a,state:l,layout:c}=(0,y.D7)();const o=n.db.getData();const h=(0,i.A)(t,a);o.type=n.type;o.layoutAlgorithm=(0,r.q7)(c);o.nodeSpacing=l?.nodeSpacing??50;o.rankSpacing=l?.rankSpacing??50;o.markers=["requirement_contains","requirement_arrow"];o.diagramId=t;await(0,r.XX)(o,h);const f=8;u._K.insertTitle(h,"requirementDiagramTitleText",l?.titleTopMargin??25,n.db.getDiagramTitle());(0,i.P)(h,f,"requirementDiagram",l?.useMaxWidth??true)}),"draw");var k={parser:m,get db(){return new p},renderer:b,styles:E}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5829.0e46d479b4ade4783661.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5829.0e46d479b4ade4783661.js deleted file mode 100644 index 851a8bc5bd68b426d15815af970dad94a66a4f13..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5829.0e46d479b4ade4783661.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5829,5338,2957,100],{67097:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>gn});var n=r(74848);var s=r(44914);var i=r(12776);var a=r(58156);var o=r.n(a);var l=r(62193);var c=r.n(l);var d=r(44383);var u=r.n(d);var h=r(42072);var m=r.n(h);var p=r(88055);var f=r.n(p);var g=r(23805);var y=r.n(g);var S=r(63560);var x=r.n(S);let v=e=>crypto.getRandomValues(new Uint8Array(e));let b=(e,t,r)=>{let n=(2<{let a="";while(true){let t=r(s);let o=s|0;while(o--){a+=e[t[o]&n]||"";if(a.length===i)return a}}}};let C=(e,t=21)=>b(e,t,v);let k=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>{t&=63;if(t<36){e+=t.toString(36)}else if(t<62){e+=(t-26).toString(36).toUpperCase()}else if(t>62){e+="-"}else{e+="_"}return e}),"");function F(){return k()}function j(e){return!Array.isArray(e)?[]:e.map((e=>({key:F(),item:e})))}function T(e){if(Array.isArray(e)){return e.map((e=>e.item))}return[]}class O extends s.Component{constructor(e){super(e);this._getNewFormDataRow=()=>{const{schema:e,registry:t}=this.props;const{schemaUtils:r}=t;let n=e.items;if((0,i.isFixedItems)(e)&&(0,i.allowAdditionalItems)(e)){n=e.additionalItems}return r.getDefaultFormState(n)};this.onAddClick=e=>{this._handleAddClick(e)};this.onAddIndexClick=e=>t=>{this._handleAddClick(t,e)};this.onCopyIndexClick=e=>t=>{if(t){t.preventDefault()}const{onChange:r,errorSchema:n}=this.props;const{keyedFormData:s}=this.state;let i;if(n){i={};for(const t in n){const r=parseInt(t);if(r<=e){x()(i,[r],n[t])}else if(r>e){x()(i,[r+1],n[t])}}}const a={key:F(),item:f()(s[e].item)};const o=[...s];if(e!==undefined){o.splice(e+1,0,a)}else{o.push(a)}this.setState({keyedFormData:o,updatedKeyedFormData:true},(()=>r(T(o),i)))};this.onDropIndexClick=e=>t=>{if(t){t.preventDefault()}const{onChange:r,errorSchema:n}=this.props;const{keyedFormData:s}=this.state;let i;if(n){i={};for(const t in n){const r=parseInt(t);if(re){x()(i,[r-1],n[t])}}}const a=s.filter(((t,r)=>r!==e));this.setState({keyedFormData:a,updatedKeyedFormData:true},(()=>r(T(a),i)))};this.onReorderClick=(e,t)=>r=>{if(r){r.preventDefault();r.currentTarget.blur()}const{onChange:n,errorSchema:s}=this.props;let i;if(s){i={};for(const r in s){const n=parseInt(r);if(n==e){x()(i,[t],s[e])}else if(n==t){x()(i,[e],s[t])}else{x()(i,[r],s[n])}}}const{keyedFormData:a}=this.state;function o(){const r=a.slice();r.splice(e,1);r.splice(t,0,a[e]);return r}const l=o();this.setState({keyedFormData:l},(()=>n(T(l),i)))};this.onChangeForIndex=e=>(t,r,n)=>{const{formData:s,onChange:i,errorSchema:a}=this.props;const o=Array.isArray(s)?s:[];const l=o.map(((r,n)=>{const s=typeof t==="undefined"?null:t;return e===n?s:r}));i(l,a&&a&&{...a,[e]:r},n)};this.onSelectChange=e=>{const{onChange:t,idSchema:r}=this.props;t(e,undefined,r&&r.$id)};const{formData:t=[]}=e;const r=j(t);this.state={keyedFormData:r,updatedKeyedFormData:false}}static getDerivedStateFromProps(e,t){if(t.updatedKeyedFormData){return{updatedKeyedFormData:false}}const r=Array.isArray(e.formData)?e.formData:[];const n=t.keyedFormData||[];const s=r.length===n.length?n.map(((e,t)=>({key:e.key,item:r[t]}))):j(r);return{keyedFormData:s}}get itemTitle(){const{schema:e,registry:t}=this.props;const{translateString:r}=t;return o()(e,[i.ITEMS_KEY,"title"],o()(e,[i.ITEMS_KEY,"description"],r(i.TranslatableString.ArrayItemTitle)))}isItemRequired(e){if(Array.isArray(e.type)){return!e.type.includes("null")}return e.type!=="null"}canAddItem(e){const{schema:t,uiSchema:r,registry:n}=this.props;let{addable:s}=(0,i.getUiOptions)(r,n.globalUiOptions);if(s!==false){if(t.maxItems!==undefined){s=e.length=t){x()(i,[r+1],n[e])}}}const a={key:F(),item:this._getNewFormDataRow()};const o=[...s];if(t!==undefined){o.splice(t,0,a)}else{o.push(a)}this.setState({keyedFormData:o,updatedKeyedFormData:true},(()=>r(T(o),i)))}render(){const{schema:e,uiSchema:t,idSchema:r,registry:s}=this.props;const{schemaUtils:a,translateString:o}=s;if(!(i.ITEMS_KEY in e)){const a=(0,i.getUiOptions)(t);const l=(0,i.getTemplate)("UnsupportedFieldTemplate",s,a);return(0,n.jsx)(l,{schema:e,idSchema:r,reason:o(i.TranslatableString.MissingItems),registry:s})}if(a.isMultiSelect(e)){return this.renderMultiSelect()}if((0,i.isCustomWidget)(t)){return this.renderCustomWidget()}if((0,i.isFixedItems)(e)){return this.renderFixedArray()}if(a.isFilesArray(e,t)){return this.renderFiles()}return this.renderNormalArray()}renderNormalArray(){const{schema:e,uiSchema:t={},errorSchema:r,idSchema:s,name:a,disabled:o=false,readonly:l=false,autofocus:c=false,required:d=false,registry:u,onBlur:h,onFocus:m,idPrefix:p,idSeparator:f="_",rawErrors:g}=this.props;const{keyedFormData:S}=this.state;const x=e.title===undefined?a:e.title;const{schemaUtils:v,formContext:b}=u;const C=(0,i.getUiOptions)(t);const k=y()(e.items)?e.items:{};const F=v.retrieveSchema(k);const j=T(this.state.keyedFormData);const O=this.canAddItem(j);const w={canAdd:O,items:S.map(((e,n)=>{const{key:i,item:o}=e;const l=o;const d=v.retrieveSchema(k,l);const u=r?r[n]:undefined;const y=s.$id+f+n;const x=v.toIdSchema(d,y,l,p,f);return this.renderArrayFieldItem({key:i,index:n,name:a&&`${a}-${n}`,canAdd:O,canMoveUp:n>0,canMoveDown:nk.retrieveSchema(e,r[t])));const O=y()(e.additionalItems)?k.retrieveSchema(e.additionalItems,r):null;if(!v||v.length{const{key:i,item:d}=r;const u=d;const m=n>=T.length;const p=(m&&y()(e.additionalItems)?k.retrieveSchema(e.additionalItems,u):T[n])||{};const b=l.$id+o+n;const C=k.toIdSchema(p,b,u,a,o);const F=m?t.additionalItems||{}:Array.isArray(t.items)?t.items[n]:t.items||{};const j=s?s[n]:undefined;return this.renderArrayFieldItem({key:i,index:n,name:c&&`${c}-${n}`,canAdd:w,canRemove:m,canMoveUp:n>=T.length+1,canMoveDown:m&&nU[e]));return{children:(0,n.jsx)(I,{name:s,index:r,schema:d,uiSchema:h,formData:u,formContext:O,errorSchema:p,idPrefix:C,idSeparator:k,idSchema:m,required:this.isItemRequired(d),onChange:this.onChangeForIndex(r),onBlur:g,onFocus:y,registry:T,disabled:v,readonly:F,hideError:b,autofocus:f,rawErrors:S}),className:"array-item",disabled:v,canAdd:a,hasCopy:U.copy,hasToolbar:U.toolbar,hasMoveUp:U.moveUp,hasMoveDown:U.moveDown,hasRemove:U.remove,index:r,totalItems:x,key:t,onAddIndexClick:this.onAddIndexClick,onCopyIndexClick:this.onCopyIndexClick,onDropIndexClick:this.onDropIndexClick,onReorderClick:this.onReorderClick,readonly:F,registry:T,schema:d,uiSchema:h}}}const w=O;function D(e){var t,r;const{schema:s,name:a,uiSchema:o,idSchema:l,formData:c,registry:d,required:u,disabled:h,readonly:m,hideError:p,autofocus:f,onChange:g,onFocus:S,onBlur:x,rawErrors:v}=e;const{title:b}=s;const{widgets:C,formContext:k,translateString:F,globalUiOptions:j}=d;const{widget:T="checkbox",title:O,label:w=true,...D}=(0,i.getUiOptions)(o,j);const E=(0,i.getWidget)(s,T,C);const I=F(i.TranslatableString.YesLabel);const A=F(i.TranslatableString.NoLabel);let _;const N=(t=O!==null&&O!==void 0?O:b)!==null&&t!==void 0?t:a;if(Array.isArray(s.oneOf)){_=(0,i.optionsList)({oneOf:s.oneOf.map((e=>{if(y()(e)){return{...e,title:e.title||(e.const===true?I:A)}}return undefined})).filter((e=>e))})}else{const e=s;const t=(r=s.enum)!==null&&r!==void 0?r:[true,false];if(!e.enumNames&&t.length===2&&t.every((e=>typeof e==="boolean"))){_=[{value:t[0],label:t[0]?I:A},{value:t[1],label:t[1]?I:A}]}else{_=(0,i.optionsList)({enum:t,enumNames:e.enumNames})}}return(0,n.jsx)(E,{options:{...D,enumOptions:_},schema:s,uiSchema:o,id:l.$id,name:a,onChange:g,onFocus:S,onBlur:x,label:N,hideLabel:!w,value:c,required:u,disabled:h,readonly:m,hideError:p,registry:d,formContext:k,autofocus:f,rawErrors:v})}const E=D;var I=r(90179);var A=r.n(I);class _ extends s.Component{constructor(e){super(e);this.onOptionChange=e=>{const{selectedOption:t,retrievedOptions:r}=this.state;const{formData:n,onChange:s,registry:i}=this.props;const{schemaUtils:a}=i;const o=e!==undefined?parseInt(e,10):-1;if(o===t){return}const l=o>=0?r[o]:undefined;const c=t>=0?r[t]:undefined;let d=a.sanitizeDataForNewSchema(l,c,n);if(d&&l){d=a.getDefaultFormState(l,d,"excludeObjectChildren")}s(d,undefined,this.getFieldId());this.setState({selectedOption:o})};const{formData:t,options:r,registry:{schemaUtils:n}}=this.props;const s=r.map((e=>n.retrieveSchema(e,t)));this.state={retrievedOptions:s,selectedOption:this.getMatchingOption(0,t,s)}}componentDidUpdate(e,t){const{formData:r,options:n,idSchema:s}=this.props;const{selectedOption:a}=this.state;let o=this.state;if(!(0,i.deepEquals)(e.options,n)){const{registry:{schemaUtils:e}}=this.props;const t=n.map((t=>e.retrieveSchema(t,r)));o={selectedOption:a,retrievedOptions:t}}if(!(0,i.deepEquals)(r,e.formData)&&s.$id===e.idSchema.$id){const{retrievedOptions:e}=o;const n=this.getMatchingOption(a,r,e);if(t&&n!==a){o={selectedOption:n,retrievedOptions:e}}}if(o!==this.state){this.setState(o)}}getMatchingOption(e,t,r){const{schema:n,registry:{schemaUtils:s}}=this.props;const a=(0,i.getDiscriminatorFieldFromSchema)(n);const o=s.getClosestMatchingOption(t,r,e,a);return o}getFieldId(){const{idSchema:e,schema:t}=this.props;return`${e.$id}${t.oneOf?"__oneof_select":"__anyof_select"}`}render(){const{name:e,disabled:t=false,errorSchema:r={},formContext:s,onBlur:a,onFocus:l,registry:d,schema:u,uiSchema:h}=this.props;const{widgets:m,fields:p,translateString:f,globalUiOptions:g,schemaUtils:y}=d;const{SchemaField:S}=p;const{selectedOption:x,retrievedOptions:v}=this.state;const{widget:b="select",placeholder:C,autofocus:k,autocomplete:F,title:j=u.title,...T}=(0,i.getUiOptions)(h,g);const O=(0,i.getWidget)({type:"number"},b,m);const w=o()(r,i.ERRORS_KEY,[]);const D=A()(r,[i.ERRORS_KEY]);const E=y.getDisplayLabel(u,h,g);const I=x>=0?v[x]||null:null;let _;if(I){const{required:e}=u;_=e?(0,i.mergeSchemas)({required:e},I):I}const N=j?i.TranslatableString.TitleOptionPrefix:i.TranslatableString.OptionPrefix;const U=j?[j]:[];const B=v.map(((e,t)=>({label:e.title||f(N,U.concat(String(t+1))),value:t})));return(0,n.jsxs)("div",{className:"panel panel-default panel-body",children:[(0,n.jsx)("div",{className:"form-group",children:(0,n.jsx)(O,{id:this.getFieldId(),name:`${e}${u.oneOf?"__oneof_select":"__anyof_select"}`,schema:{type:"number",default:0},onChange:this.onOptionChange,onBlur:a,onFocus:l,disabled:t||c()(B),multiple:false,rawErrors:w,errorSchema:D,value:x>=0?x:undefined,options:{enumOptions:B,...T},registry:d,formContext:s,placeholder:C,autocomplete:F,autofocus:k,label:j!==null&&j!==void 0?j:e,hideLabel:!E})}),I!==null&&(0,n.jsx)(S,{...this.props,schema:_})]})}}const N=_;const U=/\.([0-9]*0)*$/;const B=/[0.]0*$/;function $(e){const{registry:t,onChange:r,formData:a,value:o}=e;const[l,c]=(0,s.useState)(o);const{StringField:d}=t.fields;let u=a;const h=(0,s.useCallback)((e=>{c(e);if(`${e}`.charAt(0)==="."){e=`0${e}`}const t=typeof e==="string"&&e.match(U)?(0,i.asNumber)(e.replace(B,"")):(0,i.asNumber)(e);r(t)}),[r]);if(typeof l==="string"&&typeof u==="number"){const e=new RegExp(`${u}`.replace(".","\\.")+"\\.?0*$");if(l.match(e)){u=l}}return(0,n.jsx)(d,{...e,formData:u,onChange:h})}const R=$;function P(){return P=Object.assign?Object.assign.bind():function(e){for(var t=1;t(e[t.toLowerCase()]=t,e)),{for:"htmlFor"}),K={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:"“"},W=["style","script"],z=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,Y=/mailto:/i,H=/\n{2,}$/,G=/^(\s*>[\s\S]*?)(?=\n{2,})/,J=/^ *> ?/gm,Z=/^ {2,}\n/,Q=/^(?:( *[-*_])){3,} *(?:\n *)+\n/,X=/^\s*(`{3,}|~{3,}) *(\S+)?([^\n]*?)?\n([\s\S]+?)\s*\1 *(?:\n *)*\n?/,ee=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,te=/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,re=/^(?:\n *)*\n/,ne=/\r\n?/g,se=/^\[\^([^\]]+)](:(.*)((\n+ {4,}.*)|(\n(?!\[\^).+))*)/,ie=/^\[\^([^\]]+)]/,ae=/\f/g,oe=/^---[ \t]*\n(.|\n)*\n---[ \t]*\n/,le=/^\s*?\[(x|\s)\]/,ce=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,de=/^ *(#{1,6}) +([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,ue=/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/,he=/^ *(?!<[a-z][^ >/]* ?\/>)<([a-z][^ >/]*) ?((?:[^>]*[^/])?)>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1\b)[\s\S])*?)<\/\1>(?!<\/\1>)\n*/i,me=/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/gi,pe=/^)/,fe=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,ge=/^ *<([a-z][a-z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,ye=/^\{.*\}$/,Se=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,xe=/^<([^ >]+@[^ >]+)>/,ve=/^<([^ >]+:\/[^ >]+)>/,be=/-([a-z])?/gi,Ce=/^(.*\|.*)\n(?: *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*))?\n?/,ke=/^\[([^\]]*)\]:\s+]+)>?\s*("([^"]*)")?/,Fe=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,je=/^\[([^\]]*)\] ?\[([^\]]*)\]/,Te=/(\[|\])/g,Oe=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,we=/\t/g,De=/(^ *\||\| *$)/g,Ee=/^ *:-+: *$/,Ie=/^ *:-+ *$/,Ae=/^ *-+: *$/,_e="((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~~.*?~~|==.*?==|.|\\n)*?)",Ne=new RegExp(`^([*_])\\1${_e}\\1\\1(?!\\1)`),Ue=new RegExp(`^([*_])${_e}\\1(?!\\1|\\w)`),Be=new RegExp(`^==${_e}==`),$e=new RegExp(`^~~${_e}~~`),Re=/^\\([^0-9A-Za-z\s])/,Pe=/^[\s\S]+?(?=[^0-9A-Z\s\u00c0-\uffff&#;.()'"]|\d+\.|\n\n| {2,}\n|\w+:\S|$)/i,qe=/^\n+/,Le=/^([ \t]*)/,Me=/\\([^\\])/g,Ve=/ *\n+$/,Ke=/(?:^|\n)( *)$/,We="(?:\\d+\\.)",ze="(?:[*+-])";function Ye(e){return"( *)("+(1===e?We:ze)+") +"}const He=Ye(1),Ge=Ye(2);function Je(e){return new RegExp("^"+(1===e?He:Ge))}const Ze=Je(1),Qe=Je(2);function Xe(e){return new RegExp("^"+(1===e?He:Ge)+"[^\\n]*(?:\\n(?!\\1"+(1===e?We:ze)+" )[^\\n]*)*(\\n|$)","gm")}const et=Xe(1),tt=Xe(2);function rt(e){const t=1===e?We:ze;return new RegExp("^( *)("+t+") [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1"+t+" (?!"+t+" ))\\n*|\\s*\\n*$)")}const nt=rt(1),st=rt(2);function it(e,t){const r=1===t,n=r?nt:st,s=r?et:tt,i=r?Ze:Qe;return{match(e,t,r){const s=Ke.exec(r);return s&&(t.list||!t.inline&&!t.simple)?n.exec(e=s[1]+e):null},order:1,parse(e,t,n){const a=r?+e[2]:void 0,o=e[0].replace(H,"\n").match(s);let l=!1;return{items:o.map((function(e,r){const s=i.exec(e)[0].length,a=new RegExp("^ {1,"+s+"}","gm"),c=e.replace(a,"").replace(i,""),d=r===o.length-1,u=-1!==c.indexOf("\n\n")||d&&l;l=u;const h=n.inline,m=n.list;let p;n.list=!0,u?(n.inline=!1,p=c.replace(Ve,"\n\n")):(n.inline=!0,p=c.replace(Ve,""));const f=t(p,n);return n.inline=h,n.list=m,f})),ordered:r,start:a}},render:(t,r,n)=>e(t.ordered?"ol":"ul",{key:n.key,start:t.type===L.orderedList?t.start:void 0},t.items.map((function(t,s){return e("li",{key:s},r(t,n))})))}}const at=new RegExp("^\\[((?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*)\\]\\(\\s*?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),ot=/^!\[(.*?)\]\( *((?:\([^)]*\)|[^() ])*) *"?([^)"]*)?"?\)/,lt=[G,X,ee,ce,ue,de,pe,Ce,et,nt,tt,st],ct=[...lt,/^[^\n]+(?: \n|\n{2,})/,he,ge];function dt(e){return e.replace(/[ÀÁÂÃÄÅàáâãä忯]/g,"a").replace(/[çÇ]/g,"c").replace(/[ðÐ]/g,"d").replace(/[ÈÉÊËéèêë]/g,"e").replace(/[ÏïÎîÍíÌì]/g,"i").replace(/[Ññ]/g,"n").replace(/[øØœŒÕõÔôÓóÒò]/g,"o").replace(/[ÜüÛûÚúÙù]/g,"u").replace(/[ŸÿÝý]/g,"y").replace(/[^a-z0-9- ]/gi,"").replace(/ /gi,"-").toLowerCase()}function ut(e){return Ae.test(e)?"right":Ee.test(e)?"center":Ie.test(e)?"left":null}function ht(e,t,r,n){const s=r.inTable;r.inTable=!0;let i=e.trim().split(/( *(?:`[^`]*`|<.*?>.*?<\/.*?>(?!<\/.*?>)|\\\||\|) *)/).reduce(((e,s)=>("|"===s.trim()?e.push(n?{type:L.tableSeparator}:{type:L.text,text:s}):""!==s&&e.push.apply(e,t(s,r)),e)),[]);r.inTable=s;let a=[[]];return i.forEach((function(e,t){e.type===L.tableSeparator?0!==t&&t!==i.length-1&&a.push([]):(e.type!==L.text||null!=i[t+1]&&i[t+1].type!==L.tableSeparator||(e.text=e.text.trimEnd()),a[a.length-1].push(e))})),a}function mt(e,t,r){r.inline=!0;const n=e[2]?e[2].replace(De,"").split("|").map(ut):[],s=e[3]?function(e,t,r){return e.trim().split("\n").map((function(e){return ht(e,t,r,!0)}))}(e[3],t,r):[],i=ht(e[1],t,r,!!s.length);return r.inline=!1,s.length?{align:n,cells:s,header:i,type:L.table}:{children:i,type:L.paragraph}}function pt(e,t){return null==e.align[t]?{}:{textAlign:e.align[t]}}function ft(e){return function(t,r){return r.inline?e.exec(t):null}}function gt(e){return function(t,r){return r.inline||r.simple?e.exec(t):null}}function yt(e){return function(t,r){return r.inline||r.simple?null:e.exec(t)}}function St(e){return function(t){return e.exec(t)}}function xt(e,t,r){if(t.inline||t.simple)return null;if(r&&!r.endsWith("\n"))return null;let n="";e.split("\n").every((e=>!lt.some((t=>t.test(e)))&&(n+=e+"\n",e.trim())));const s=n.trimEnd();return""==s?null:[n,s]}function vt(e){try{if(decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,"").match(/^\s*(javascript|vbscript|data(?!:image)):/i))return null}catch(e){return null}return e}function bt(e){return e.replace(Me,"$1")}function Ct(e,t,r){const n=r.inline||!1,s=r.simple||!1;r.inline=!0,r.simple=!0;const i=e(t,r);return r.inline=n,r.simple=s,i}function kt(e,t,r){const n=r.inline||!1,s=r.simple||!1;r.inline=!1,r.simple=!0;const i=e(t,r);return r.inline=n,r.simple=s,i}function Ft(e,t,r){const n=r.inline||!1;r.inline=!1;const s=e(t,r);return r.inline=n,s}const jt=(e,t,r)=>({children:Ct(t,e[1],r)});function Tt(){return{}}function Ot(){return null}function wt(...e){return e.filter(Boolean).join(" ")}function Dt(e,t,r){let n=e;const s=t.split(".");for(;s.length&&(n=n[s[0]],void 0!==n);)s.shift();return n||r}function Et(e="",t={}){function r(e,r,...n){const s=Dt(t.overrides,`${e}.props`,{});return t.createElement(function(e,t){const r=Dt(t,e);return r?"function"==typeof r||"object"==typeof r&&"render"in r?r:Dt(t,`${e}.component`,e):e}(e,t.overrides),P({},r,s,{className:wt(null==r?void 0:r.className,s.className)||void 0}),...n)}function n(e){e=e.replace(oe,"");let n=!1;t.forceInline?n=!0:t.forceBlock||(n=!1===Oe.test(e));const i=d(c(n?e:`${e.trimEnd().replace(qe,"")}\n\n`,{inline:n}));for(;"string"==typeof i[i.length-1]&&!i[i.length-1].trim();)i.pop();if(null===t.wrapper)return i;const a=t.wrapper||(n?"span":"div");let o;if(i.length>1||t.forceWrapper)o=i;else{if(1===i.length)return o=i[0],"string"==typeof o?r("span",{key:"outer"},o):o;o=null}return s.createElement(a,{key:"outer"},o)}function i(e,r){const i=r.match(z);return i?i.reduce((function(r,i,a){const o=i.indexOf("=");if(-1!==o){const l=function(e){return-1!==e.indexOf("-")&&null===e.match(fe)&&(e=e.replace(be,(function(e,t){return t.toUpperCase()}))),e}(i.slice(0,o)).trim(),c=function(e){const t=e[0];return('"'===t||"'"===t)&&e.length>=2&&e[e.length-1]===t?e.slice(1,-1):e}(i.slice(o+1).trim()),d=V[l]||l,u=r[d]=function(e,t,r,n){return"style"===t?r.split(/;\s?/).reduce((function(e,t){const r=t.slice(0,t.indexOf(":"));return e[r.trim().replace(/(-[a-z])/g,(e=>e[1].toUpperCase()))]=t.slice(r.length+1).trim(),e}),{}):"href"===t||"src"===t?n(r,e,t):(r.match(ye)&&(r=r.slice(1,r.length-1)),"true"===r||"false"!==r&&r)}(e,l,c,t.sanitizer);"string"==typeof u&&(he.test(u)||ge.test(u))&&(r[d]=s.cloneElement(n(u.trim()),{key:a}))}else"style"!==i&&(r[V[i]||i]=!0);return r}),{}):null}t.overrides=t.overrides||{},t.sanitizer=t.sanitizer||vt,t.slugify=t.slugify||dt,t.namedCodesToUnicode=t.namedCodesToUnicode?P({},K,t.namedCodesToUnicode):K,t.createElement=t.createElement||s.createElement;const a=[],o={},l={[L.blockQuote]:{match:yt(G),order:1,parse:(e,t,r)=>({children:t(e[0].replace(J,""),r)}),render:(e,t,n)=>r("blockquote",{key:n.key},t(e.children,n))},[L.breakLine]:{match:St(Z),order:1,parse:Tt,render:(e,t,n)=>r("br",{key:n.key})},[L.breakThematic]:{match:yt(Q),order:1,parse:Tt,render:(e,t,n)=>r("hr",{key:n.key})},[L.codeBlock]:{match:yt(ee),order:0,parse:e=>({lang:void 0,text:e[0].replace(/^ {4}/gm,"").replace(/\n+$/,"")}),render:(e,t,n)=>r("pre",{key:n.key},r("code",P({},e.attrs,{className:e.lang?`lang-${e.lang}`:""}),e.text))},[L.codeFenced]:{match:yt(X),order:0,parse:e=>({attrs:i("code",e[3]||""),lang:e[2]||void 0,text:e[4],type:L.codeBlock})},[L.codeInline]:{match:gt(te),order:3,parse:e=>({text:e[2]}),render:(e,t,n)=>r("code",{key:n.key},e.text)},[L.footnote]:{match:yt(se),order:0,parse:e=>(a.push({footnote:e[2],identifier:e[1]}),{}),render:Ot},[L.footnoteReference]:{match:ft(ie),order:1,parse:e=>({target:`#${t.slugify(e[1],dt)}`,text:e[1]}),render:(e,n,s)=>r("a",{key:s.key,href:t.sanitizer(e.target,"a","href")},r("sup",{key:s.key},e.text))},[L.gfmTask]:{match:ft(le),order:1,parse:e=>({completed:"x"===e[1].toLowerCase()}),render:(e,t,n)=>r("input",{checked:e.completed,key:n.key,readOnly:!0,type:"checkbox"})},[L.heading]:{match:yt(t.enforceAtxHeadings?de:ce),order:1,parse:(e,r,n)=>({children:Ct(r,e[2],n),id:t.slugify(e[2],dt),level:e[1].length}),render:(e,t,n)=>r(`h${e.level}`,{id:e.id,key:n.key},t(e.children,n))},[L.headingSetext]:{match:yt(ue),order:0,parse:(e,t,r)=>({children:Ct(t,e[1],r),level:"="===e[2]?1:2,type:L.heading})},[L.htmlBlock]:{match:St(he),order:1,parse(e,t,r){const[,n]=e[3].match(Le),s=new RegExp(`^${n}`,"gm"),a=e[3].replace(s,""),o=(l=a,ct.some((e=>e.test(l)))?Ft:Ct);var l;const c=e[1].toLowerCase(),d=-1!==W.indexOf(c),u=(d?c:e[1]).trim(),h={attrs:i(u,e[2]),noInnerParse:d,tag:u};return r.inAnchor=r.inAnchor||"a"===c,d?h.text=e[3]:h.children=o(t,a,r),r.inAnchor=!1,h},render:(e,t,n)=>r(e.tag,P({key:n.key},e.attrs),e.text||t(e.children,n))},[L.htmlSelfClosing]:{match:St(ge),order:1,parse(e){const t=e[1].trim();return{attrs:i(t,e[2]||""),tag:t}},render:(e,t,n)=>r(e.tag,P({},e.attrs,{key:n.key}))},[L.htmlComment]:{match:St(pe),order:1,parse:()=>({}),render:Ot},[L.image]:{match:gt(ot),order:1,parse:e=>({alt:e[1],target:bt(e[2]),title:e[3]}),render:(e,n,s)=>r("img",{key:s.key,alt:e.alt||void 0,title:e.title||void 0,src:t.sanitizer(e.target,"img","src")})},[L.link]:{match:ft(at),order:3,parse:(e,t,r)=>({children:kt(t,e[1],r),target:bt(e[2]),title:e[3]}),render:(e,n,s)=>r("a",{key:s.key,href:t.sanitizer(e.target,"a","href"),title:e.title},n(e.children,s))},[L.linkAngleBraceStyleDetector]:{match:ft(ve),order:0,parse:e=>({children:[{text:e[1],type:L.text}],target:e[1],type:L.link})},[L.linkBareUrlDetector]:{match:(e,t)=>t.inAnchor?null:ft(Se)(e,t),order:0,parse:e=>({children:[{text:e[1],type:L.text}],target:e[1],title:void 0,type:L.link})},[L.linkMailtoDetector]:{match:ft(xe),order:0,parse(e){let t=e[1],r=e[1];return Y.test(r)||(r="mailto:"+r),{children:[{text:t.replace("mailto:",""),type:L.text}],target:r,type:L.link}}},[L.orderedList]:it(r,1),[L.unorderedList]:it(r,2),[L.newlineCoalescer]:{match:yt(re),order:3,parse:Tt,render:()=>"\n"},[L.paragraph]:{match:xt,order:3,parse:jt,render:(e,t,n)=>r("p",{key:n.key},t(e.children,n))},[L.ref]:{match:ft(ke),order:0,parse:e=>(o[e[1]]={target:e[2],title:e[4]},{}),render:Ot},[L.refImage]:{match:gt(Fe),order:0,parse:e=>({alt:e[1]||void 0,ref:e[2]}),render:(e,n,s)=>o[e.ref]?r("img",{key:s.key,alt:e.alt,src:t.sanitizer(o[e.ref].target,"img","src"),title:o[e.ref].title}):null},[L.refLink]:{match:ft(je),order:0,parse:(e,t,r)=>({children:t(e[1],r),fallbackChildren:t(e[0].replace(Te,"\\$1"),r),ref:e[2]}),render:(e,n,s)=>o[e.ref]?r("a",{key:s.key,href:t.sanitizer(o[e.ref].target,"a","href"),title:o[e.ref].title},n(e.children,s)):r("span",{key:s.key},n(e.fallbackChildren,s))},[L.table]:{match:yt(Ce),order:1,parse:mt,render(e,t,n){const s=e;return r("table",{key:n.key},r("thead",null,r("tr",null,s.header.map((function(e,i){return r("th",{key:i,style:pt(s,i)},t(e,n))})))),r("tbody",null,s.cells.map((function(e,i){return r("tr",{key:i},e.map((function(e,i){return r("td",{key:i,style:pt(s,i)},t(e,n))})))}))))}},[L.text]:{match:St(Pe),order:4,parse:e=>({text:e[0].replace(me,((e,r)=>t.namedCodesToUnicode[r]?t.namedCodesToUnicode[r]:e))}),render:e=>e.text},[L.textBolded]:{match:gt(Ne),order:2,parse:(e,t,r)=>({children:t(e[2],r)}),render:(e,t,n)=>r("strong",{key:n.key},t(e.children,n))},[L.textEmphasized]:{match:gt(Ue),order:3,parse:(e,t,r)=>({children:t(e[2],r)}),render:(e,t,n)=>r("em",{key:n.key},t(e.children,n))},[L.textEscaped]:{match:gt(Re),order:1,parse:e=>({text:e[1],type:L.text})},[L.textMarked]:{match:gt(Be),order:3,parse:jt,render:(e,t,n)=>r("mark",{key:n.key},t(e.children,n))},[L.textStrikethroughed]:{match:gt($e),order:3,parse:jt,render:(e,t,n)=>r("del",{key:n.key},t(e.children,n))}};!0===t.disableParsingRawHTML&&(delete l[L.htmlBlock],delete l[L.htmlSelfClosing]);const c=function(e){let t=Object.keys(e);function r(n,s){let i=[],a="";for(;n;){let o=0;for(;oi(r,n,s)),r,n,s):i(r,n,s)}}(l,t.renderRule),function e(t,r={}){if(Array.isArray(t)){const n=r.key,s=[];let i=!1;for(let a=0;a{let{children:t="",options:r}=e,n=function(e,t){if(null==e)return{};var r,n,s={},i=Object.keys(e);for(n=0;n=0||(s[r]=e[r]);return s}(e,q);return s.cloneElement(Et(t,r),n)};var At=r(61448);var _t=r.n(At);var Nt=r(73357);var Ut=r.n(Nt);class Bt extends s.Component{constructor(){super(...arguments);this.state={wasPropertyKeyModified:false,additionalProperties:{}};this.onPropertyChange=(e,t=false)=>(r,n,s)=>{const{formData:i,onChange:a,errorSchema:o}=this.props;if(r===undefined&&t){r=""}const l={...i,[e]:r};a(l,o&&o&&{...o,[e]:n},s)};this.onDropPropertyClick=e=>t=>{t.preventDefault();const{onChange:r,formData:n}=this.props;const s={...n};Ut()(s,e);r(s)};this.getAvailableKey=(e,t)=>{const{uiSchema:r,registry:n}=this.props;const{duplicateKeySuffixSeparator:s="-"}=(0,i.getUiOptions)(r,n.globalUiOptions);let a=0;let o=e;while(_t()(t,o)){o=`${e}${s}${++a}`}return o};this.onKeyChange=e=>(t,r)=>{if(e===t){return}const{formData:n,onChange:s,errorSchema:i}=this.props;t=this.getAvailableKey(t,n);const a={...n};const o={[e]:t};const l=Object.keys(a).map((e=>{const t=o[e]||e;return{[t]:a[e]}}));const c=Object.assign({},...l);this.setState({wasPropertyKeyModified:true});s(c,i&&i&&{...i,[t]:r})};this.handleAddClick=e=>()=>{if(!e.additionalProperties){return}const{formData:t,onChange:r,registry:n}=this.props;const s={...t};let a=undefined;if(y()(e.additionalProperties)){a=e.additionalProperties.type;let r=e.additionalProperties;if(i.REF_KEY in r){const{schemaUtils:e}=n;r=e.retrieveSchema({$ref:r[i.REF_KEY]},t);a=r.type}if(!a&&(i.ANY_OF_KEY in r||i.ONE_OF_KEY in r)){a="object"}}const o=this.getAvailableKey("newKey",s);x()(s,o,this.getDefaultValue(a));r(s)}}isRequired(e){const{schema:t}=this.props;return Array.isArray(t.required)&&t.required.indexOf(e)!==-1}getDefaultValue(e){const{registry:{translateString:t}}=this.props;switch(e){case"array":return[];case"boolean":return false;case"null":return null;case"number":return 0;case"object":return{};case"string":default:return t(i.TranslatableString.NewStringDefault)}}render(){var e,t,r;const{schema:s,uiSchema:a={},formData:l,errorSchema:c,idSchema:d,name:u,required:h=false,disabled:m=false,readonly:p=false,hideError:f,idPrefix:g,idSeparator:y,onBlur:S,onFocus:x,registry:v}=this.props;const{fields:b,formContext:C,schemaUtils:k,translateString:F,globalUiOptions:j}=v;const{SchemaField:T}=b;const O=k.retrieveSchema(s,l);const w=(0,i.getUiOptions)(a,j);const{properties:D={}}=O;const E=(t=(e=w.title)!==null&&e!==void 0?e:O.title)!==null&&t!==void 0?t:u;const I=(r=w.description)!==null&&r!==void 0?r:O.description;let A;try{const e=Object.keys(D);A=(0,i.orderProperties)(e,w.order)}catch(U){return(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"config-error",style:{color:"red"},children:(0,n.jsx)(It,{children:F(i.TranslatableString.InvalidObjectField,[u||"root",U.message])})}),(0,n.jsx)("pre",{children:JSON.stringify(O)})]})}const _=(0,i.getTemplate)("ObjectFieldTemplate",v,w);const N={title:w.label===false?"":E,description:w.label===false?undefined:I,properties:A.map((e=>{const t=_t()(O,[i.PROPERTIES_KEY,e,i.ADDITIONAL_PROPERTY_FLAG]);const r=t?a.additionalProperties:a[e];const s=(0,i.getUiOptions)(r).widget==="hidden";const u=o()(d,[e],{});return{content:(0,n.jsx)(T,{name:e,required:this.isRequired(e),schema:o()(O,[i.PROPERTIES_KEY,e],{}),uiSchema:r,errorSchema:o()(c,e),idSchema:u,idPrefix:g,idSeparator:y,formData:o()(l,e),formContext:C,wasPropertyKeyModified:this.state.wasPropertyKeyModified,onKeyChange:this.onKeyChange(e),onChange:this.onPropertyChange(e,t),onBlur:S,onFocus:x,registry:v,disabled:m,readonly:p,hideError:f,onDropPropertyClick:this.onDropPropertyClick},e),name:e,readonly:p,disabled:m,required:h,hidden:s}})),readonly:p,disabled:m,required:h,idSchema:d,uiSchema:a,errorSchema:c,schema:O,formData:l,formContext:C,registry:v};return(0,n.jsx)(_,{...N,onAddClick:this.handleAddClick})}}const $t=Bt;const Rt={array:"ArrayField",boolean:"BooleanField",integer:"NumberField",number:"NumberField",object:"ObjectField",string:"StringField",null:"NullField"};function Pt(e,t,r,s){const a=t.field;const{fields:o,translateString:l}=s;if(typeof a==="function"){return a}if(typeof a==="string"&&a in o){return o[a]}const c=(0,i.getSchemaType)(e);const d=Array.isArray(c)?c[0]:c||"";const u=e.$id;let h=Rt[d];if(u&&u in o){h=u}if(!h&&(e.anyOf||e.oneOf)){return()=>null}return h in o?o[h]:()=>{const a=(0,i.getTemplate)("UnsupportedFieldTemplate",s,t);return(0,n.jsx)(a,{schema:e,idSchema:r,reason:l(i.TranslatableString.UnknownFieldType,[String(e.type)]),registry:s})}}function qt(e){const{schema:t,idSchema:r,uiSchema:a,formData:o,errorSchema:l,idPrefix:c,idSeparator:d,name:u,onChange:h,onKeyChange:m,onDropPropertyClick:p,required:f,registry:g,wasPropertyKeyModified:S=false}=e;const{formContext:x,schemaUtils:v,globalUiOptions:b}=g;const C=(0,i.getUiOptions)(a,b);const k=(0,i.getTemplate)("FieldTemplate",g,C);const F=(0,i.getTemplate)("DescriptionFieldTemplate",g,C);const j=(0,i.getTemplate)("FieldHelpTemplate",g,C);const T=(0,i.getTemplate)("FieldErrorTemplate",g,C);const O=v.retrieveSchema(t,o);const w=r[i.ID_KEY];const D=(0,i.mergeObjects)(v.toIdSchema(O,w,o,c,d),r);const E=(0,s.useCallback)(((e,t,r)=>{const n=r||w;return h(e,t,n)}),[w,h]);const I=Pt(O,C,D,g);const _=Boolean(e.disabled||C.disabled);const N=Boolean(e.readonly||C.readonly||e.schema.readOnly||O.readOnly);const U=C.hideError;const B=U===undefined?e.hideError:Boolean(U);const $=Boolean(e.autofocus||C.autofocus);if(Object.keys(O).length===0){return null}const R=v.getDisplayLabel(O,a,b);const{__errors:P,...q}=l||{};const L=A()(a,["ui:classNames","classNames","ui:style"]);if(i.UI_OPTIONS_KEY in L){L[i.UI_OPTIONS_KEY]=A()(L[i.UI_OPTIONS_KEY],["classNames","style"])}const M=(0,n.jsx)(I,{...e,onChange:E,idSchema:D,schema:O,uiSchema:L,disabled:_,readonly:N,hideError:B,autofocus:$,errorSchema:q,formContext:x,rawErrors:P});const V=D[i.ID_KEY];let K;if(S){K=u}else{K=i.ADDITIONAL_PROPERTY_FLAG in O?u:C.title||e.schema.title||O.title||u}const W=C.description||e.schema.description||O.description||"";const z=C.enableMarkdownInDescription?(0,n.jsx)(It,{children:W}):W;const Y=C.help;const H=C.widget==="hidden";const G=["form-group","field",`field-${(0,i.getSchemaType)(O)}`];if(!B&&P&&P.length>0){G.push("field-error has-error has-danger")}if(a===null||a===void 0?void 0:a.classNames){if(false){}G.push(a.classNames)}if(C.classNames){G.push(C.classNames)}const J=(0,n.jsx)(j,{help:Y,idSchema:D,schema:O,uiSchema:a,hasErrors:!B&&P&&P.length>0,registry:g});const Z=B||(O.anyOf||O.oneOf)&&!v.isSelect(O)?undefined:(0,n.jsx)(T,{errors:P,errorSchema:l,idSchema:D,schema:O,uiSchema:a,registry:g});const Q={description:(0,n.jsx)(F,{id:(0,i.descriptionId)(V),description:z,schema:O,uiSchema:a,registry:g}),rawDescription:W,help:J,rawHelp:typeof Y==="string"?Y:undefined,errors:Z,rawErrors:B?undefined:P,id:V,label:K,hidden:H,onChange:h,onKeyChange:m,onDropPropertyClick:p,required:f,disabled:_,readonly:N,hideError:B,displayLabel:R,classNames:G.join(" ").trim(),style:C.style,formContext:x,formData:o,schema:O,uiSchema:a,registry:g};const X=g.fields.AnyOfField;const ee=g.fields.OneOfField;const te=(a===null||a===void 0?void 0:a["ui:field"])&&(a===null||a===void 0?void 0:a["ui:fieldReplacesAnyOrOneOf"])===true;return(0,n.jsx)(k,{...Q,children:(0,n.jsxs)(n.Fragment,{children:[M,O.anyOf&&!te&&!v.isSelect(O)&&(0,n.jsx)(X,{name:u,disabled:_,readonly:N,hideError:B,errorSchema:l,formData:o,formContext:x,idPrefix:c,idSchema:D,idSeparator:d,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:O.anyOf.map((e=>v.retrieveSchema(y()(e)?e:{},o))),registry:g,schema:O,uiSchema:a}),O.oneOf&&!te&&!v.isSelect(O)&&(0,n.jsx)(ee,{name:u,disabled:_,readonly:N,hideError:B,errorSchema:l,formData:o,formContext:x,idPrefix:c,idSchema:D,idSeparator:d,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:O.oneOf.map((e=>v.retrieveSchema(y()(e)?e:{},o))),registry:g,schema:O,uiSchema:a})]})})}class Lt extends s.Component{shouldComponentUpdate(e){return!(0,i.deepEquals)(this.props,e)}render(){return(0,n.jsx)(qt,{...this.props})}}const Mt=Lt;function Vt(e){var t;const{schema:r,name:s,uiSchema:a,idSchema:o,formData:l,required:c,disabled:d=false,readonly:u=false,autofocus:h=false,onChange:m,onBlur:p,onFocus:f,registry:g,rawErrors:y,hideError:S}=e;const{title:x,format:v}=r;const{widgets:b,formContext:C,schemaUtils:k,globalUiOptions:F}=g;const j=k.isSelect(r)?(0,i.optionsList)(r):undefined;let T=j?"select":"text";if(v&&(0,i.hasWidget)(r,v,b)){T=v}const{widget:O=T,placeholder:w="",title:D,...E}=(0,i.getUiOptions)(a);const I=k.getDisplayLabel(r,a,F);const A=(t=D!==null&&D!==void 0?D:x)!==null&&t!==void 0?t:s;const _=(0,i.getWidget)(r,O,b);return(0,n.jsx)(_,{options:{...E,enumOptions:j},schema:r,uiSchema:a,id:o.$id,name:s,label:A,hideLabel:!I,hideError:S,value:l,onChange:m,onBlur:p,onFocus:f,required:c,disabled:d,readonly:u,formContext:C,autofocus:h,registry:g,placeholder:w,rawErrors:y})}const Kt=Vt;function Wt(e){const{formData:t,onChange:r}=e;(0,s.useEffect)((()=>{if(t===undefined){r(null)}}),[t,r]);return null}const zt=Wt;function Yt(){return{AnyOfField:N,ArrayField:w,BooleanField:E,NumberField:R,ObjectField:$t,OneOfField:N,SchemaField:Mt,StringField:Kt,NullField:zt}}const Ht=Yt;function Gt(e){const{idSchema:t,description:r,registry:s,schema:a,uiSchema:o}=e;const l=(0,i.getUiOptions)(o,s.globalUiOptions);const{label:c=true}=l;if(!r||!c){return null}const d=(0,i.getTemplate)("DescriptionFieldTemplate",s,l);return(0,n.jsx)(d,{id:(0,i.descriptionId)(t),description:r,schema:a,uiSchema:o,registry:s})}function Jt(e){const{children:t,className:r,disabled:s,hasToolbar:i,hasMoveDown:a,hasMoveUp:o,hasRemove:l,hasCopy:c,index:d,onCopyIndexClick:u,onDropIndexClick:h,onReorderClick:m,readonly:p,registry:f,uiSchema:g}=e;const{CopyButton:y,MoveDownButton:S,MoveUpButton:x,RemoveButton:v}=f.templates.ButtonTemplates;const b={flex:1,paddingLeft:6,paddingRight:6,fontWeight:"bold"};return(0,n.jsxs)("div",{className:r,children:[(0,n.jsx)("div",{className:i?"col-xs-9":"col-xs-12",children:t}),i&&(0,n.jsx)("div",{className:"col-xs-3 array-item-toolbox",children:(0,n.jsxs)("div",{className:"btn-group",style:{display:"flex",justifyContent:"space-around"},children:[(o||a)&&(0,n.jsx)(x,{style:b,disabled:s||p||!o,onClick:m(d,d-1),uiSchema:g,registry:f}),(o||a)&&(0,n.jsx)(S,{style:b,disabled:s||p||!a,onClick:m(d,d+1),uiSchema:g,registry:f}),c&&(0,n.jsx)(y,{style:b,disabled:s||p,onClick:u(d),uiSchema:g,registry:f}),l&&(0,n.jsx)(v,{style:b,disabled:s||p,onClick:h(d),uiSchema:g,registry:f})]})})]})}function Zt(e){const{canAdd:t,className:r,disabled:s,idSchema:a,uiSchema:o,items:l,onAddClick:c,readonly:d,registry:u,required:h,schema:m,title:p}=e;const f=(0,i.getUiOptions)(o);const g=(0,i.getTemplate)("ArrayFieldDescriptionTemplate",u,f);const y=(0,i.getTemplate)("ArrayFieldItemTemplate",u,f);const S=(0,i.getTemplate)("ArrayFieldTitleTemplate",u,f);const{ButtonTemplates:{AddButton:x}}=u.templates;return(0,n.jsxs)("fieldset",{className:r,id:a.$id,children:[(0,n.jsx)(S,{idSchema:a,title:f.title||p,required:h,schema:m,uiSchema:o,registry:u}),(0,n.jsx)(g,{idSchema:a,description:f.description||m.description,schema:m,uiSchema:o,registry:u}),(0,n.jsx)("div",{className:"row array-item-list",children:l&&l.map((({key:e,...t})=>(0,n.jsx)(y,{...t},e)))}),t&&(0,n.jsx)(x,{className:"array-item-add",onClick:c,disabled:s||d,uiSchema:o,registry:u})]})}function Qt(e){const{idSchema:t,title:r,schema:s,uiSchema:a,required:o,registry:l}=e;const c=(0,i.getUiOptions)(a,l.globalUiOptions);const{label:d=true}=c;if(!r||!d){return null}const u=(0,i.getTemplate)("TitleFieldTemplate",l,c);return(0,n.jsx)(u,{id:(0,i.titleId)(t),title:r,required:o,schema:s,uiSchema:a,registry:l})}function Xt(e){const{id:t,name:r,value:a,readonly:o,disabled:l,autofocus:c,onBlur:d,onFocus:u,onChange:h,onChangeOverride:m,options:p,schema:f,uiSchema:g,formContext:y,registry:S,rawErrors:x,type:v,hideLabel:b,hideError:C,...k}=e;if(!t){console.log("No id for",e);throw new Error(`no id for props ${JSON.stringify(e)}`)}const F={...k,...(0,i.getInputProps)(f,v,p)};let j;if(F.type==="number"||F.type==="integer"){j=a||a===0?a:""}else{j=a==null?"":a}const T=(0,s.useCallback)((({target:{value:e}})=>h(e===""?p.emptyValue:e)),[h,p]);const O=(0,s.useCallback)((({target:{value:e}})=>d(t,e)),[d,t]);const w=(0,s.useCallback)((({target:{value:e}})=>u(t,e)),[u,t]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{id:t,name:t,className:"form-control",readOnly:o,disabled:l,autoFocus:c,value:j,...F,list:f.examples?(0,i.examplesId)(t):undefined,onChange:m||T,onBlur:O,onFocus:w,"aria-describedby":(0,i.ariaDescribedByIds)(t,!!f.examples)}),Array.isArray(f.examples)&&(0,n.jsx)("datalist",{id:(0,i.examplesId)(t),children:f.examples.concat(f.default&&!f.examples.includes(f.default)?[f.default]:[]).map((e=>(0,n.jsx)("option",{value:e},e)))},`datalist_${t}`)]})}function er({uiSchema:e}){const{submitText:t,norender:r,props:s={}}=(0,i.getSubmitButtonOptions)(e);if(r){return null}return(0,n.jsx)("div",{children:(0,n.jsx)("button",{type:"submit",...s,className:`btn btn-info ${s.className||""}`,children:t})})}function tr(e){const{iconType:t="default",icon:r,className:s,uiSchema:i,registry:a,...o}=e;return(0,n.jsx)("button",{type:"button",className:`btn btn-${t} ${s}`,...o,children:(0,n.jsx)("i",{className:`glyphicon glyphicon-${r}`})})}function rr(e){const{registry:{translateString:t}}=e;return(0,n.jsx)(tr,{title:t(i.TranslatableString.CopyButton),className:"array-item-copy",...e,icon:"copy"})}function nr(e){const{registry:{translateString:t}}=e;return(0,n.jsx)(tr,{title:t(i.TranslatableString.MoveDownButton),className:"array-item-move-down",...e,icon:"arrow-down"})}function sr(e){const{registry:{translateString:t}}=e;return(0,n.jsx)(tr,{title:t(i.TranslatableString.MoveUpButton),className:"array-item-move-up",...e,icon:"arrow-up"})}function ir(e){const{registry:{translateString:t}}=e;return(0,n.jsx)(tr,{title:t(i.TranslatableString.RemoveButton),className:"array-item-remove",...e,iconType:"danger",icon:"remove"})}function ar({className:e,onClick:t,disabled:r,registry:s}){const{translateString:a}=s;return(0,n.jsx)("div",{className:"row",children:(0,n.jsx)("p",{className:`col-xs-3 col-xs-offset-9 text-right ${e}`,children:(0,n.jsx)(tr,{iconType:"info",icon:"plus",className:"btn-add col-xs-12",title:a(i.TranslatableString.AddButton),onClick:t,disabled:r,registry:s})})})}function or(){return{SubmitButton:er,AddButton:ar,CopyButton:rr,MoveDownButton:nr,MoveUpButton:sr,RemoveButton:ir}}const lr=or;function cr(e){const{id:t,description:r}=e;if(!r){return null}if(typeof r==="string"){return(0,n.jsx)("p",{id:t,className:"field-description",children:r})}else{return(0,n.jsx)("div",{id:t,className:"field-description",children:r})}}function dr({errors:e,registry:t}){const{translateString:r}=t;return(0,n.jsxs)("div",{className:"panel panel-danger errors",children:[(0,n.jsx)("div",{className:"panel-heading",children:(0,n.jsx)("h3",{className:"panel-title",children:r(i.TranslatableString.ErrorsLabel)})}),(0,n.jsx)("ul",{className:"list-group",children:e.map(((e,t)=>(0,n.jsx)("li",{className:"list-group-item text-danger",children:e.stack},t)))})]})}const ur="*";function hr(e){const{label:t,required:r,id:s}=e;if(!t){return null}return(0,n.jsxs)("label",{className:"control-label",htmlFor:s,children:[t,r&&(0,n.jsx)("span",{className:"required",children:ur})]})}function mr(e){const{id:t,label:r,children:s,errors:a,help:o,description:l,hidden:c,required:d,displayLabel:u,registry:h,uiSchema:m}=e;const p=(0,i.getUiOptions)(m);const f=(0,i.getTemplate)("WrapIfAdditionalTemplate",h,p);if(c){return(0,n.jsx)("div",{className:"hidden",children:s})}return(0,n.jsxs)(f,{...e,children:[u&&(0,n.jsx)(hr,{label:r,required:d,id:t}),u&&l?l:null,s,a,o]})}const pr=mr;function fr(e){const{errors:t=[],idSchema:r}=e;if(t.length===0){return null}const s=(0,i.errorId)(r);return(0,n.jsx)("div",{children:(0,n.jsx)("ul",{id:s,className:"error-detail bs-callout bs-callout-info",children:t.filter((e=>!!e)).map(((e,t)=>(0,n.jsx)("li",{className:"text-danger",children:e},t)))})})}function gr(e){const{idSchema:t,help:r}=e;if(!r){return null}const s=(0,i.helpId)(t);if(typeof r==="string"){return(0,n.jsx)("p",{id:s,className:"help-block",children:r})}return(0,n.jsx)("div",{id:s,className:"help-block",children:r})}function yr(e){const{description:t,disabled:r,formData:s,idSchema:a,onAddClick:o,properties:l,readonly:c,registry:d,required:u,schema:h,title:m,uiSchema:p}=e;const f=(0,i.getUiOptions)(p);const g=(0,i.getTemplate)("TitleFieldTemplate",d,f);const y=(0,i.getTemplate)("DescriptionFieldTemplate",d,f);const{ButtonTemplates:{AddButton:S}}=d.templates;return(0,n.jsxs)("fieldset",{id:a.$id,children:[m&&(0,n.jsx)(g,{id:(0,i.titleId)(a),title:m,required:u,schema:h,uiSchema:p,registry:d}),t&&(0,n.jsx)(y,{id:(0,i.descriptionId)(a),description:t,schema:h,uiSchema:p,registry:d}),l.map((e=>e.content)),(0,i.canExpand)(h,p,s)&&(0,n.jsx)(S,{className:"object-property-expand",onClick:o(h),disabled:r||c,uiSchema:p,registry:d})]})}const Sr="*";function xr(e){const{id:t,title:r,required:s}=e;return(0,n.jsxs)("legend",{id:t,children:[r,s&&(0,n.jsx)("span",{className:"required",children:Sr})]})}function vr(e){const{schema:t,idSchema:r,reason:s,registry:a}=e;const{translateString:o}=a;let l=i.TranslatableString.UnsupportedField;const c=[];if(r&&r.$id){l=i.TranslatableString.UnsupportedFieldWithId;c.push(r.$id)}if(s){l=l===i.TranslatableString.UnsupportedField?i.TranslatableString.UnsupportedFieldWithReason:i.TranslatableString.UnsupportedFieldWithIdAndReason;c.push(s)}return(0,n.jsxs)("div",{className:"unsupported-field",children:[(0,n.jsx)("p",{children:(0,n.jsx)(It,{children:o(l,c)})}),t&&(0,n.jsx)("pre",{children:JSON.stringify(t,null,2)})]})}const br=vr;function Cr(e){const{id:t,classNames:r,style:s,disabled:a,label:o,onKeyChange:l,onDropPropertyClick:c,readonly:d,required:u,schema:h,children:m,uiSchema:p,registry:f}=e;const{templates:g,translateString:y}=f;const{RemoveButton:S}=g.ButtonTemplates;const x=y(i.TranslatableString.KeyLabel,[o]);const v=i.ADDITIONAL_PROPERTY_FLAG in h;if(!v){return(0,n.jsx)("div",{className:r,style:s,children:m})}return(0,n.jsx)("div",{className:r,style:s,children:(0,n.jsxs)("div",{className:"row",children:[(0,n.jsx)("div",{className:"col-xs-5 form-additional",children:(0,n.jsxs)("div",{className:"form-group",children:[(0,n.jsx)(hr,{label:x,required:u,id:`${t}-key`}),(0,n.jsx)("input",{className:"form-control",type:"text",id:`${t}-key`,onBlur:e=>l(e.target.value),defaultValue:o})]})}),(0,n.jsx)("div",{className:"form-additional form-group col-xs-5",children:m}),(0,n.jsx)("div",{className:"col-xs-2",children:(0,n.jsx)(S,{className:"array-item-remove btn-block",style:{border:"0"},disabled:a||d,onClick:c(o),uiSchema:p,registry:f})})]})})}function kr(){return{ArrayFieldDescriptionTemplate:Gt,ArrayFieldItemTemplate:Jt,ArrayFieldTemplate:Zt,ArrayFieldTitleTemplate:Qt,ButtonTemplates:lr(),BaseInputTemplate:Xt,DescriptionFieldTemplate:cr,ErrorListTemplate:dr,FieldTemplate:pr,FieldErrorTemplate:fr,FieldHelpTemplate:gr,ObjectFieldTemplate:yr,TitleFieldTemplate:xr,UnsupportedFieldTemplate:br,WrapIfAdditionalTemplate:Cr}}const Fr=kr;function jr(e,t){const r=[];for(let n=e;n<=t;n++){r.push({value:n,label:(0,i.pad)(n,2)})}return r}function Tr(e){return Object.values(e).every((e=>e!==-1))}function Or(e,t,r=[1900,(new Date).getFullYear()+2]){const{year:n,month:s,day:i,hour:a,minute:o,second:l}=e;const c=[{type:"year",range:r,value:n},{type:"month",range:[1,12],value:s},{type:"day",range:[1,31],value:i}];if(t){c.push({type:"hour",range:[0,23],value:a},{type:"minute",range:[0,59],value:o},{type:"second",range:[0,59],value:l})}return c}function wr({type:e,range:t,value:r,select:s,rootId:a,name:o,disabled:l,readonly:c,autofocus:d,registry:u,onBlur:h,onFocus:m}){const p=a+"_"+e;const{SelectWidget:f}=u.widgets;return(0,n.jsx)(f,{schema:{type:"integer"},id:p,name:o,className:"form-control",options:{enumOptions:jr(t[0],t[1])},placeholder:e,value:r,disabled:l,readonly:c,autofocus:d,onChange:t=>s(e,t),onBlur:h,onFocus:m,registry:u,label:"","aria-describedby":(0,i.ariaDescribedByIds)(a)})}function Dr({time:e=false,disabled:t=false,readonly:r=false,autofocus:a=false,options:o,id:l,name:c,registry:d,onBlur:u,onFocus:h,onChange:m,value:p}){const{translateString:f}=d;const[g,y]=(0,s.useState)(p);const[S,x]=(0,s.useReducer)(((e,t)=>({...e,...t})),(0,i.parseDateString)(p,e));(0,s.useEffect)((()=>{const t=(0,i.toDateString)(S,e);if(Tr(S)&&t!==p){m(t)}else if(g!==p){y(p);x((0,i.parseDateString)(p,e))}}),[e,p,m,S,g]);const v=(0,s.useCallback)(((e,t)=>{x({[e]:t})}),[]);const b=(0,s.useCallback)((n=>{n.preventDefault();if(t||r){return}const s=(0,i.parseDateString)((new Date).toJSON(),e);m((0,i.toDateString)(s,e))}),[t,r,e]);const C=(0,s.useCallback)((e=>{e.preventDefault();if(t||r){return}m(undefined)}),[t,r,m]);return(0,n.jsxs)("ul",{className:"list-inline",children:[Or(S,e,o.yearsRange).map(((e,s)=>(0,n.jsx)("li",{className:"list-inline-item",children:(0,n.jsx)(wr,{rootId:l,name:c,select:v,...e,disabled:t,readonly:r,registry:d,onBlur:u,onFocus:h,autofocus:a&&s===0})},s))),(o.hideNowButton!=="undefined"?!o.hideNowButton:true)&&(0,n.jsx)("li",{className:"list-inline-item",children:(0,n.jsx)("a",{href:"#",className:"btn btn-info btn-now",onClick:b,children:f(i.TranslatableString.NowLabel)})}),(o.hideClearButton!=="undefined"?!o.hideClearButton:true)&&(0,n.jsx)("li",{className:"list-inline-item",children:(0,n.jsx)("a",{href:"#",className:"btn btn-warning btn-clear",onClick:C,children:f(i.TranslatableString.ClearLabel)})})]})}const Er=Dr;function Ir({time:e=true,...t}){const{AltDateWidget:r}=t.registry.widgets;return(0,n.jsx)(r,{time:e,...t})}const Ar=Ir;function _r({schema:e,uiSchema:t,options:r,id:a,value:o,disabled:l,readonly:c,label:d,hideLabel:u,autofocus:h=false,onBlur:m,onFocus:p,onChange:f,registry:g}){var y;const S=(0,i.getTemplate)("DescriptionFieldTemplate",g,r);const x=(0,i.schemaRequiresTrueValue)(e);const v=(0,s.useCallback)((e=>f(e.target.checked)),[f]);const b=(0,s.useCallback)((e=>m(a,e.target.checked)),[m,a]);const C=(0,s.useCallback)((e=>p(a,e.target.checked)),[p,a]);const k=(y=r.description)!==null&&y!==void 0?y:e.description;return(0,n.jsxs)("div",{className:`checkbox ${l||c?"disabled":""}`,children:[!u&&!!k&&(0,n.jsx)(S,{id:(0,i.descriptionId)(a),description:k,schema:e,uiSchema:t,registry:g}),(0,n.jsxs)("label",{children:[(0,n.jsx)("input",{type:"checkbox",id:a,name:a,checked:typeof o==="undefined"?false:o,required:x,disabled:l||c,autoFocus:h,onChange:v,onBlur:b,onFocus:C,"aria-describedby":(0,i.ariaDescribedByIds)(a)}),(0,i.labelValue)((0,n.jsx)("span",{children:d}),u)]})]})}const Nr=_r;function Ur({id:e,disabled:t,options:{inline:r=false,enumOptions:a,enumDisabled:o,emptyValue:l},value:c,autofocus:d=false,readonly:u,onChange:h,onBlur:m,onFocus:p}){const f=Array.isArray(c)?c:[c];const g=(0,s.useCallback)((({target:{value:t}})=>m(e,(0,i.enumOptionsValueForIndex)(t,a,l))),[m,e]);const y=(0,s.useCallback)((({target:{value:t}})=>p(e,(0,i.enumOptionsValueForIndex)(t,a,l))),[p,e]);return(0,n.jsx)("div",{className:"checkboxes",id:e,children:Array.isArray(a)&&a.map(((s,l)=>{const c=(0,i.enumOptionsIsSelected)(s.value,f);const m=Array.isArray(o)&&o.indexOf(s.value)!==-1;const p=t||m||u?"disabled":"";const S=e=>{if(e.target.checked){h((0,i.enumOptionsSelectValue)(l,f,a))}else{h((0,i.enumOptionsDeselectValue)(l,f,a))}};const x=(0,n.jsxs)("span",{children:[(0,n.jsx)("input",{type:"checkbox",id:(0,i.optionId)(e,l),name:e,checked:c,value:String(l),disabled:t||m||u,autoFocus:d&&l===0,onChange:S,onBlur:g,onFocus:y,"aria-describedby":(0,i.ariaDescribedByIds)(e)}),(0,n.jsx)("span",{children:s.label})]});return r?(0,n.jsx)("label",{className:`checkbox-inline ${p}`,children:x},l):(0,n.jsx)("div",{className:`checkbox ${p}`,children:(0,n.jsx)("label",{children:x})},l)}))})}const Br=Ur;function $r(e){const{disabled:t,readonly:r,options:s,registry:a}=e;const o=(0,i.getTemplate)("BaseInputTemplate",a,s);return(0,n.jsx)(o,{type:"color",...e,disabled:t||r})}function Rr(e){const{onChange:t,options:r,registry:a}=e;const o=(0,i.getTemplate)("BaseInputTemplate",a,r);const l=(0,s.useCallback)((e=>t(e||undefined)),[t]);return(0,n.jsx)(o,{type:"date",...e,onChange:l})}function Pr(e){const{onChange:t,value:r,options:s,registry:a}=e;const o=(0,i.getTemplate)("BaseInputTemplate",a,s);return(0,n.jsx)(o,{type:"datetime-local",...e,value:(0,i.utcToLocal)(r),onChange:e=>t((0,i.localToUTC)(e))})}function qr(e){const{options:t,registry:r}=e;const s=(0,i.getTemplate)("BaseInputTemplate",r,t);return(0,n.jsx)(s,{type:"email",...e})}function Lr(e,t){if(e===null){return null}return e.replace(";base64",`;name=${encodeURIComponent(t)};base64`)}function Mr(e){const{name:t,size:r,type:n}=e;return new Promise(((s,i)=>{const a=new window.FileReader;a.onerror=i;a.onload=e=>{var i;if(typeof((i=e.target)===null||i===void 0?void 0:i.result)==="string"){s({dataURL:Lr(e.target.result,t),name:t,size:r,type:n})}else{s({dataURL:null,name:t,size:r,type:n})}};a.readAsDataURL(e)}))}function Vr(e){return Promise.all(Array.from(e).map(Mr))}function Kr({fileInfo:e,registry:t}){const{translateString:r}=t;const{dataURL:s,type:a,name:o}=e;if(!s){return null}if(a.indexOf("image")!==-1){return(0,n.jsx)("img",{src:s,style:{maxWidth:"100%"},className:"file-preview"})}return(0,n.jsxs)(n.Fragment,{children:[" ",(0,n.jsx)("a",{download:`preview-${o}`,href:s,className:"file-download",children:r(i.TranslatableString.PreviewLabel)})]})}function Wr({filesInfo:e,registry:t,preview:r}){if(e.length===0){return null}const{translateString:s}=t;return(0,n.jsx)("ul",{className:"file-info",children:e.map(((e,a)=>{const{name:o,size:l,type:c}=e;return(0,n.jsxs)("li",{children:[(0,n.jsx)(It,{children:s(i.TranslatableString.FilesInfo,[o,c,String(l)])}),r&&(0,n.jsx)(Kr,{fileInfo:e,registry:t})]},a)}))})}function zr(e){return e.filter((e=>e)).map((e=>{const{blob:t,name:r}=(0,i.dataURItoBlob)(e);return{dataURL:e,name:r,size:t.size,type:t.type}}))}function Yr(e){const{disabled:t,readonly:r,required:a,multiple:o,onChange:l,value:c,options:d,registry:u}=e;const h=(0,i.getTemplate)("BaseInputTemplate",u,d);const[m,p]=(0,s.useState)(Array.isArray(c)?zr(c):zr([c]));const f=(0,s.useCallback)((e=>{if(!e.target.files){return}Vr(e.target.files).then((e=>{const t=e.map((e=>e.dataURL));if(o){p(m.concat(e[0]));l(c.concat(t[0]))}else{p(e);l(t[0])}}))}),[o,c,m,l]);return(0,n.jsxs)("div",{children:[(0,n.jsx)(h,{...e,disabled:t||r,type:"file",required:c?false:a,onChangeOverride:f,value:"",accept:d.accept?String(d.accept):undefined}),(0,n.jsx)(Wr,{filesInfo:m,registry:u,preview:d.filePreview})]})}const Hr=Yr;function Gr({id:e,value:t}){return(0,n.jsx)("input",{type:"hidden",id:e,name:e,value:typeof t==="undefined"?"":t})}const Jr=Gr;function Zr(e){const{options:t,registry:r}=e;const s=(0,i.getTemplate)("BaseInputTemplate",r,t);return(0,n.jsx)(s,{type:"password",...e})}function Qr({options:e,value:t,required:r,disabled:a,readonly:o,autofocus:l=false,onBlur:c,onFocus:d,onChange:u,id:h}){const{enumOptions:m,enumDisabled:p,inline:f,emptyValue:g}=e;const y=(0,s.useCallback)((({target:{value:e}})=>c(h,(0,i.enumOptionsValueForIndex)(e,m,g))),[c,h]);const S=(0,s.useCallback)((({target:{value:e}})=>d(h,(0,i.enumOptionsValueForIndex)(e,m,g))),[d,h]);return(0,n.jsx)("div",{className:"field-radio-group",id:h,children:Array.isArray(m)&&m.map(((e,s)=>{const c=(0,i.enumOptionsIsSelected)(e.value,t);const d=Array.isArray(p)&&p.indexOf(e.value)!==-1;const m=a||d||o?"disabled":"";const g=()=>u(e.value);const x=(0,n.jsxs)("span",{children:[(0,n.jsx)("input",{type:"radio",id:(0,i.optionId)(h,s),checked:c,name:h,required:r,value:String(s),disabled:a||d||o,autoFocus:l&&s===0,onChange:g,onBlur:y,onFocus:S,"aria-describedby":(0,i.ariaDescribedByIds)(h)}),(0,n.jsx)("span",{children:e.label})]});return f?(0,n.jsx)("label",{className:`radio-inline ${m}`,children:x},s):(0,n.jsx)("div",{className:`radio ${m}`,children:(0,n.jsx)("label",{children:x})},s)}))})}const Xr=Qr;function en(e){const{value:t,registry:{templates:{BaseInputTemplate:r}}}=e;return(0,n.jsxs)("div",{className:"field-range-wrapper",children:[(0,n.jsx)(r,{type:"range",...e}),(0,n.jsx)("span",{className:"range-view",children:t})]})}function tn(e,t){if(t){return Array.from(e.target.options).slice().filter((e=>e.selected)).map((e=>e.value))}return e.target.value}function rn({schema:e,id:t,options:r,value:a,required:o,disabled:l,readonly:c,multiple:d=false,autofocus:u=false,onChange:h,onBlur:m,onFocus:p,placeholder:f}){const{enumOptions:g,enumDisabled:y,emptyValue:S}=r;const x=d?[]:"";const v=(0,s.useCallback)((e=>{const r=tn(e,d);return p(t,(0,i.enumOptionsValueForIndex)(r,g,S))}),[p,t,e,d,r]);const b=(0,s.useCallback)((e=>{const r=tn(e,d);return m(t,(0,i.enumOptionsValueForIndex)(r,g,S))}),[m,t,e,d,r]);const C=(0,s.useCallback)((e=>{const t=tn(e,d);return h((0,i.enumOptionsValueForIndex)(t,g,S))}),[h,e,d,r]);const k=(0,i.enumOptionsIndexForValue)(a,g,d);return(0,n.jsxs)("select",{id:t,name:t,multiple:d,className:"form-control",value:typeof k==="undefined"?x:k,required:o,disabled:l||c,autoFocus:u,onBlur:b,onFocus:v,onChange:C,"aria-describedby":(0,i.ariaDescribedByIds)(t),children:[!d&&e.default===undefined&&(0,n.jsx)("option",{value:"",children:f}),Array.isArray(g)&&g.map((({value:e,label:t},r)=>{const s=y&&y.indexOf(e)!==-1;return(0,n.jsx)("option",{value:String(r),disabled:s,children:t},r)}))]})}const nn=rn;function sn({id:e,options:t={},placeholder:r,value:a,required:o,disabled:l,readonly:c,autofocus:d=false,onChange:u,onBlur:h,onFocus:m}){const p=(0,s.useCallback)((({target:{value:e}})=>u(e===""?t.emptyValue:e)),[u,t.emptyValue]);const f=(0,s.useCallback)((({target:{value:t}})=>h(e,t)),[h,e]);const g=(0,s.useCallback)((({target:{value:t}})=>m(e,t)),[e,m]);return(0,n.jsx)("textarea",{id:e,name:e,className:"form-control",value:a?a:"",placeholder:r,required:o,disabled:l,readOnly:c,autoFocus:d,rows:t.rows,onBlur:f,onFocus:g,onChange:p,"aria-describedby":(0,i.ariaDescribedByIds)(e)})}sn.defaultProps={autofocus:false,options:{}};const an=sn;function on(e){const{options:t,registry:r}=e;const s=(0,i.getTemplate)("BaseInputTemplate",r,t);return(0,n.jsx)(s,{...e})}function ln(e){const{onChange:t,options:r,registry:a}=e;const o=(0,i.getTemplate)("BaseInputTemplate",a,r);const l=(0,s.useCallback)((e=>t(e?`${e}:00`:undefined)),[t]);return(0,n.jsx)(o,{type:"time",...e,onChange:l})}function cn(e){const{options:t,registry:r}=e;const s=(0,i.getTemplate)("BaseInputTemplate",r,t);return(0,n.jsx)(s,{type:"url",...e})}function dn(e){const{options:t,registry:r}=e;const s=(0,i.getTemplate)("BaseInputTemplate",r,t);return(0,n.jsx)(s,{type:"number",...e})}function un(){return{AltDateWidget:Er,AltDateTimeWidget:Ar,CheckboxWidget:Nr,CheckboxesWidget:Br,ColorWidget:$r,DateWidget:Rr,DateTimeWidget:Pr,EmailWidget:qr,FileWidget:Hr,HiddenWidget:Jr,PasswordWidget:Zr,RadioWidget:Xr,RangeWidget:en,SelectWidget:nn,TextWidget:on,TextareaWidget:an,TimeWidget:ln,UpDownWidget:dn,URLWidget:cn}}const hn=un;function mn(){return{fields:Ht(),templates:Fr(),widgets:hn(),rootSchema:{},formContext:{},translateString:i.englishStringTranslator}}class pn extends s.Component{constructor(e){super(e);this.getUsedFormData=(e,t)=>{if(t.length===0&&typeof e!=="object"){return e}const r=u()(e,t);if(Array.isArray(e)){return Object.keys(r).map((e=>r[e]))}return r};this.getFieldNames=(e,t)=>{const r=(e,n=[],s=[[]])=>{Object.keys(e).forEach((a=>{if(typeof e[a]==="object"){const t=s.map((e=>[...e,a]));if(e[a][i.RJSF_ADDITONAL_PROPERTIES_FLAG]&&e[a][i.NAME_KEY]!==""){n.push(e[a][i.NAME_KEY])}else{r(e[a],n,t)}}else if(a===i.NAME_KEY&&e[a]!==""){s.forEach((e=>{const r=o()(t,e);if(typeof r!=="object"||c()(r)){n.push(e)}}))}}));return n};return r(e)};this.onChange=(e,t,r)=>{const{extraErrors:n,omitExtraData:s,liveOmit:a,noValidate:o,liveValidate:l,onChange:c}=this.props;const{schemaUtils:d,schema:u,retrievedSchema:h}=this.state;if((0,i.isObject)(e)||Array.isArray(e)){const t=this.getStateFromProps(this.props,e,h);e=t.formData}const m=!o&&l;let p={formData:e,schema:u};let f=e;let g;if(s===true&&a===true){g=d.retrieveSchema(u,e);const t=d.toPathSchema(g,"",e);const r=this.getFieldNames(t,e);f=this.getUsedFormData(e,r);p={formData:f}}if(m){const e=this.validate(f,u,d,h);let t=e.errors;let r=e.errorSchema;const s=t;const a=r;if(n){const s=(0,i.validationDataMerge)(e,n);r=s.errorSchema;t=s.errors}p={formData:f,errors:t,errorSchema:r,schemaValidationErrors:s,schemaValidationErrorSchema:a}}else if(!o&&t){const e=n?(0,i.mergeObjects)(t,n,"preventDuplicates"):t;p={formData:f,errorSchema:e,errors:(0,i.toErrorList)(e)}}if(g){p.retrievedSchema=g}this.setState(p,(()=>c&&c({...this.state,...p},r)))};this.reset=()=>{const{onChange:e}=this.props;const t=this.getStateFromProps(this.props,undefined);const r=t.formData;const n={formData:r,errorSchema:{},errors:[],schemaValidationErrors:[],schemaValidationErrorSchema:{}};this.setState(n,(()=>e&&e({...this.state,...n})))};this.onBlur=(e,t)=>{const{onBlur:r}=this.props;if(r){r(e,t)}};this.onFocus=(e,t)=>{const{onFocus:r}=this.props;if(r){r(e,t)}};this.onSubmit=e=>{e.preventDefault();if(e.target!==e.currentTarget){return}e.persist();const{omitExtraData:t,extraErrors:r,noValidate:n,onSubmit:s}=this.props;let{formData:a}=this.state;const{schema:o,schemaUtils:l}=this.state;if(t===true){const e=l.retrieveSchema(o,a);const t=l.toPathSchema(e,"",a);const r=this.getFieldNames(t,a);a=this.getUsedFormData(a,r)}if(n||this.validateForm()){const t=r||{};const n=r?(0,i.toErrorList)(r):[];this.setState({formData:a,errors:n,errorSchema:t,schemaValidationErrors:[],schemaValidationErrorSchema:{}},(()=>{if(s){s({...this.state,formData:a,status:"submitted"},e)}}))}};if(!e.validator){throw new Error("A validator is required for Form functionality to work")}this.state=this.getStateFromProps(e,e.formData);if(this.props.onChange&&!(0,i.deepEquals)(this.state.formData,this.props.formData)){this.props.onChange(this.state)}this.formElement=(0,s.createRef)()}getSnapshotBeforeUpdate(e,t){if(!(0,i.deepEquals)(this.props,e)){const r=this.getStateFromProps(this.props,this.props.formData,e.schema!==this.props.schema?undefined:this.state.retrievedSchema);const n=!(0,i.deepEquals)(r,t);return{nextState:r,shouldUpdate:n}}return{shouldUpdate:false}}componentDidUpdate(e,t,r){if(r.shouldUpdate){const{nextState:e}=r;if(!(0,i.deepEquals)(e.formData,this.props.formData)&&!(0,i.deepEquals)(e.formData,t.formData)&&this.props.onChange){this.props.onChange(e)}this.setState(e)}}getStateFromProps(e,t,r){const n=this.state||{};const s="schema"in e?e.schema:this.props.schema;const a=("uiSchema"in e?e.uiSchema:this.props.uiSchema)||{};const o=typeof t!=="undefined";const l="liveValidate"in e?e.liveValidate:this.props.liveValidate;const c=o&&!e.noValidate&&l;const d=s;const u="experimental_defaultFormStateBehavior"in e?e.experimental_defaultFormStateBehavior:this.props.experimental_defaultFormStateBehavior;let h=n.schemaUtils;if(!h||h.doesSchemaUtilsDiffer(e.validator,d,u)){h=(0,i.createSchemaUtils)(e.validator,d,u)}const m=h.getDefaultFormState(s,t);const p=r!==null&&r!==void 0?r:h.retrieveSchema(s,m);const f=()=>{if(e.noValidate){return{errors:[],errorSchema:{}}}else if(!e.liveValidate){return{errors:n.schemaValidationErrors||[],errorSchema:n.schemaValidationErrorSchema||{}}}return{errors:n.errors||[],errorSchema:n.errorSchema||{}}};let g;let y;let S=n.schemaValidationErrors;let x=n.schemaValidationErrorSchema;if(c){const e=this.validate(m,s,h,p);g=e.errors;y=e.errorSchema;S=g;x=y}else{const e=f();g=e.errors;y=e.errorSchema}if(e.extraErrors){const t=(0,i.validationDataMerge)({errorSchema:y,errors:g},e.extraErrors);y=t.errorSchema;g=t.errors}const v=h.toIdSchema(p,a["ui:rootFieldId"],m,e.idPrefix,e.idSeparator);const b={schemaUtils:h,schema:s,uiSchema:a,idSchema:v,formData:m,edit:o,errors:g,errorSchema:y,schemaValidationErrors:S,schemaValidationErrorSchema:x,retrievedSchema:p};return b}shouldComponentUpdate(e,t){return(0,i.shouldRender)(this,e,t)}validate(e,t=this.props.schema,r,n){const s=r?r:this.state.schemaUtils;const{customValidate:i,transformErrors:a,uiSchema:o}=this.props;const l=n!==null&&n!==void 0?n:s.retrieveSchema(t,e);return s.getValidator().validateFormData(e,l,i,a,o)}renderErrors(e){const{errors:t,errorSchema:r,schema:s,uiSchema:a}=this.state;const{formContext:o}=this.props;const l=(0,i.getUiOptions)(a);const c=(0,i.getTemplate)("ErrorListTemplate",e,l);if(t&&t.length){return(0,n.jsx)(c,{errors:t,errorSchema:r||{},schema:s,uiSchema:a,formContext:o,registry:e})}return null}getRegistry(){var e;const{translateString:t,uiSchema:r={}}=this.props;const{schemaUtils:n}=this.state;const{fields:s,templates:a,widgets:o,formContext:l,translateString:c}=mn();return{fields:{...s,...this.props.fields},templates:{...a,...this.props.templates,ButtonTemplates:{...a.ButtonTemplates,...(e=this.props.templates)===null||e===void 0?void 0:e.ButtonTemplates}},widgets:{...o,...this.props.widgets},rootSchema:this.props.schema,formContext:this.props.formContext||l,schemaUtils:n,translateString:t||c,globalUiOptions:r[i.UI_GLOBAL_OPTIONS_KEY]}}submit(){if(this.formElement.current){this.formElement.current.dispatchEvent(new CustomEvent("submit",{cancelable:true}));this.formElement.current.requestSubmit()}}focusOnError(e){const{idPrefix:t="root",idSeparator:r="_"}=this.props;const{property:n}=e;const s=m()(n);if(s[0]===""){s[0]=t}else{s.unshift(t)}const i=s.join(r);let a=this.formElement.current.elements[i];if(!a){a=this.formElement.current.querySelector(`input[id^=${i}`)}if(a&&a.length){a=a[0]}if(a){a.focus()}}validateForm(){const{extraErrors:e,extraErrorsBlockSubmit:t,focusOnFirstError:r,onError:n}=this.props;const{formData:s,errors:a}=this.state;const o=this.validate(s);let l=o.errors;let c=o.errorSchema;const d=l;const u=c;const h=l.length>0||e&&t;if(h){if(e){const t=(0,i.validationDataMerge)(o,e);c=t.errorSchema;l=t.errors}if(r){if(typeof r==="function"){r(l[0])}else{this.focusOnError(l[0])}}this.setState({errors:l,errorSchema:c,schemaValidationErrors:d,schemaValidationErrorSchema:u},(()=>{if(n){n(l)}else{console.error("Form validation failed",l)}}))}else if(a.length>0){this.setState({errors:[],errorSchema:{},schemaValidationErrors:[],schemaValidationErrorSchema:{}})}return!h}render(){const{children:e,id:t,idPrefix:r,idSeparator:s,className:a="",tagName:o,name:l,method:c,target:d,action:u,autoComplete:h,enctype:m,acceptcharset:p,noHtml5Validate:f=false,disabled:g=false,readonly:y=false,formContext:S,showErrorList:x="top",_internalFormWrapper:v}=this.props;const{schema:b,uiSchema:C,formData:k,errorSchema:F,idSchema:j}=this.state;const T=this.getRegistry();const{SchemaField:O}=T.fields;const{SubmitButton:w}=T.templates.ButtonTemplates;const D=v?o:undefined;const E=v||o||"form";let{[i.SUBMIT_BTN_OPTIONS_KEY]:I={}}=(0,i.getUiOptions)(C);if(g){I={...I,props:{...I.props,disabled:true}}}const A={[i.UI_OPTIONS_KEY]:{[i.SUBMIT_BTN_OPTIONS_KEY]:I}};return(0,n.jsxs)(E,{className:a?a:"rjsf",id:t,name:l,method:c,target:d,action:u,autoComplete:h,encType:m,acceptCharset:p,noValidate:f,onSubmit:this.onSubmit,as:D,ref:this.formElement,children:[x==="top"&&this.renderErrors(T),(0,n.jsx)(O,{name:"",schema:b,uiSchema:C,errorSchema:F,idSchema:j,idPrefix:r,idSeparator:s,formContext:S,formData:k,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,registry:T,disabled:g,readonly:y}),e?e:(0,n.jsx)(w,{uiSchema:A,registry:T}),x==="bottom"&&this.renderErrors(T)]})}}function fn(e){return forwardRef((({fields:t,widgets:r,templates:n,...s},i)=>{var a;t={...e===null||e===void 0?void 0:e.fields,...t};r={...e===null||e===void 0?void 0:e.widgets,...r};n={...e===null||e===void 0?void 0:e.templates,...n,ButtonTemplates:{...(a=e===null||e===void 0?void 0:e.templates)===null||a===void 0?void 0:a.ButtonTemplates,...n===null||n===void 0?void 0:n.ButtonTemplates}};return _jsx(Form,{...e,...s,fields:t,widgets:r,templates:n,ref:i})}))}const gn=pn},78510:(e,t,r)=>{"use strict";r.r(t);r.d(t,{Cache:()=>S,FreeStyle:()=>k,Rule:()=>b,Selector:()=>x,Style:()=>v,create:()=>F});let n=0;const s=Object.create(null);const i=["animation-iteration-count","border-image-outset","border-image-slice","border-image-width","box-flex","box-flex-group","box-ordinal-group","column-count","columns","counter-increment","counter-reset","flex","flex-grow","flex-positive","flex-shrink","flex-negative","flex-order","font-weight","grid-area","grid-column","grid-column-end","grid-column-span","grid-column-start","grid-row","grid-row-end","grid-row-span","grid-row-start","line-clamp","line-height","opacity","order","orphans","tab-size","widows","z-index","zoom","fill-opacity","flood-opacity","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-miterlimit","stroke-opacity","stroke-width"];for(const j of i){for(const e of["-webkit-","-ms-","-moz-","-o-",""]){s[e+j]=true}}function a(e){return e.replace(/[ !#$%&()*+,./;<=>?@[\]^`{|}~"'\\]/g,"\\$&")}function o(e){return e.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`)).replace(/^ms-/,"-ms-")}function l(e){let t=5381;let r=e.length;while(r--)t=t*33^e.charCodeAt(r);return(t>>>0).toString(36)}function c(e,t){if(t&&typeof t==="number"&&!s[e]){return`${e}:${t}px`}return`${e}:${t}`}function d(e){return e.sort(((e,t)=>e[0]>t[0]?1:-1))}function u(e,t){const r=[];const n=[];for(const s of Object.keys(e)){const t=s.trim();const i=e[s];if(t.charCodeAt(0)!==36&&i!=null){if(typeof i==="object"&&!Array.isArray(i)){n.push([t,i])}else{r.push([o(t),i])}}}return{style:h(d(r)),nested:t?n:d(n),isUnique:!!e.$unique}}function h(e){return e.map((([e,t])=>{if(!Array.isArray(t))return c(e,t);return t.map((t=>c(e,t))).join(";")})).join(";")}function m(e,t){if(e.indexOf("&")===-1)return`${t} ${e}`;return e.replace(/&/g,t)}function p(e,t,r,n,s){const{style:i,nested:a,isUnique:o}=u(t,e!=="");let l=i;if(e.charCodeAt(0)===64){const t={selector:e,styles:[],rules:[],style:s?"":i};r.push(t);if(i&&s){t.styles.push({selector:s,style:i,isUnique:o})}for(const[e,r]of a){l+=e+p(e,r,t.rules,t.styles,s)}}else{const t=s?m(e,s):e;if(i)n.push({selector:t,style:i,isUnique:o});for(const[e,s]of a){l+=e+p(e,s,r,n,t)}}return l}function f(e,t,r,s,i,a){for(const{selector:o,style:l,isUnique:c}of s){const r=a?m(o,i):o;const s=c?`u\0${(++n).toString(36)}`:`s\0${t}\0${l}`;const d=new v(l,s);d.add(new x(r,`k\0${t}\0${r}`));e.add(d)}for(const{selector:n,style:o,rules:l,styles:c}of r){const r=new b(n,o,`r\0${t}\0${n}\0${o}`);f(r,t,l,c,i,a);e.add(r)}}function g(e){let t="";for(let r=0;rundefined,change:()=>undefined,remove:()=>undefined};class S{constructor(e=y){this.changes=e;this.sheet=[];this.changeId=0;this._keys=[];this._children=Object.create(null);this._counters=Object.create(null)}add(e){const t=this._counters[e.id]||0;const r=this._children[e.id]||e.clone();this._counters[e.id]=t+1;if(t===0){this._children[r.id]=r;this._keys.push(r.id);this.sheet.push(r.getStyles());this.changeId++;this.changes.add(r,this._keys.length-1)}else if(r instanceof S&&e instanceof S){const t=this._keys.indexOf(e.id);const n=r.changeId;r.merge(e);if(r.changeId!==n){this.sheet.splice(t,1,r.getStyles());this.changeId++;this.changes.change(r,t,t)}}}remove(e){const t=this._counters[e.id];if(t){this._counters[e.id]=t-1;const r=this._children[e.id];const n=this._keys.indexOf(r.id);if(t===1){delete this._counters[e.id];delete this._children[e.id];this._keys.splice(n,1);this.sheet.splice(n,1);this.changeId++;this.changes.remove(r,n)}else if(r instanceof S&&e instanceof S){const t=r.changeId;r.unmerge(e);if(r.changeId!==t){this.sheet.splice(n,1,r.getStyles());this.changeId++;this.changes.change(r,n,n)}}}}values(){return this._keys.map((e=>this._children[e]))}merge(e){for(const t of e.values())this.add(t);return this}unmerge(e){for(const t of e.values())this.remove(t);return this}clone(){return(new S).merge(this)}}class x{constructor(e,t){this.selector=e;this.id=t}getStyles(){return this.selector}clone(){return this}}class v extends S{constructor(e,t){super();this.style=e;this.id=t}getStyles(){return`${this.sheet.join(",")}{${this.style}}`}clone(){return new v(this.style,this.id).merge(this)}}class b extends S{constructor(e,t,r){super();this.rule=e;this.style=t;this.id=r}getStyles(){return`${this.rule}{${this.style}${g(this.sheet)}}`}clone(){return new b(this.rule,this.style,this.id).merge(this)}}function C(e,t){const r=`f${l(e)}`;if(true)return r;return`${t.$displayName}_${r}`}class k extends S{constructor(e,t){super(t);this.id=e}registerStyle(e){const t=[];const r=[];const n=p("&",e,t,r);const s=C(n,e);const i=`.${true?s:0}`;f(this,n,t,r,i,true);return s}registerKeyframes(e){return this.registerHashRule("@keyframes",e)}registerHashRule(e,t){const r=[];const n=[];const s=p("",t,r,n);const i=C(s,t);const a=`${e} ${true?i:0}`;const o=new b(a,"",`h\0${s}\0${e}`);f(o,s,r,n,"",false);this.add(o);return i}registerRule(e,t){const r=[];const n=[];const s=p(e,t,r,n);f(this,s,r,n,"",false)}registerCss(e){return this.registerRule("",e)}getStyles(){return g(this.sheet)}clone(){return new k(this.id,this.changes).merge(this)}}function F(e){return new k(`f${(++n).toString(36)}`,e)}},76001:(e,t,r)=>{var n=r(97420),s=r(80631);function i(e,t){return n(e,t,(function(t,r){return s(e,r)}))}e.exports=i},97420:(e,t,r)=>{var n=r(47422),s=r(73170),i=r(31769);function a(e,t,r){var a=-1,o=t.length,l={};while(++a{var n=r(76001),s=r(38816);var i=s((function(e,t){return e==null?{}:n(e,t)}));e.exports=i},73357:(e,t,r)=>{var n=r(19931);function s(e,t){return e==null?true:n(e,t)}e.exports=s},5338:(e,t,r)=>{"use strict";var n;var s=r(86672);if(true){t.H=s.createRoot;n=s.hydrateRoot}else{var i}},21326:(e,t,r)=>{"use strict";var n;n={value:true};var s=r(46379);n=s.TypeStyle;var i=r(12451);n=i;var a=r(14798);n=a.extend;n=a.classes;n=a.media;var o=new s.TypeStyle({autoGenerateTag:true});n=o.setStylesTarget;n=o.cssRaw;n=o.cssRule;n=o.forceRenderStyles;n=o.fontFace;n=o.getStyles;n=o.keyframes;n=o.reinit;t.iF=o.style;n=o.stylesheet;function l(e){var t=new s.TypeStyle({autoGenerateTag:false});if(e){t.setStylesTarget(e)}return t}n=l},64591:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function r(e){var t={};for(var n in e){var s=e[n];if(n==="$nest"){var i=s;for(var a in i){var o=i[a];t[a]=r(o)}}else if(n==="$debugName"){t.$displayName=s}else{t[n]=s}}return t}t.convertToStyles=r;function n(e){var t={};for(var r in e){if(r!=="$debugName"){t[r]=e[r]}}if(e.$debugName){t.$displayName=e.$debugName}return t}t.convertToKeyframes=n},46379:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var n=r(78510);var s=r(64591);var i=r(14798);var a=function(){return n.create()};var o=function(){function e(e){var t=this;var r=e.autoGenerateTag;this.cssRaw=function(e){if(!e){return}t._raw+=e||"";t._pendingRawChange=true;t._styleUpdated()};this.cssRule=function(e){var r=[];for(var n=1;n{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.raf=typeof requestAnimationFrame==="undefined"?function(e){return setTimeout(e)}:typeof window==="undefined"?requestAnimationFrame:requestAnimationFrame.bind(window);function r(){var e=[];for(var t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:true})}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5847.930208c25e45ecf30657.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5847.930208c25e45ecf30657.js deleted file mode 100644 index 49c434b3f4fe2252e4bee0f9fd350732695fc619..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5847.930208c25e45ecf30657.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5847],{85847:(e,_,I)=>{I.r(_);I.d(_,{ntriples:()=>t});var R={PRE_SUBJECT:0,WRITING_SUB_URI:1,WRITING_BNODE_URI:2,PRE_PRED:3,WRITING_PRED_URI:4,PRE_OBJ:5,WRITING_OBJ_URI:6,WRITING_OBJ_BNODE:7,WRITING_OBJ_LITERAL:8,WRITING_LIT_LANG:9,WRITING_LIT_TYPE:10,POST_OBJ:11,ERROR:12};function r(e,_){var I=e.location;var r;if(I==R.PRE_SUBJECT&&_=="<")r=R.WRITING_SUB_URI;else if(I==R.PRE_SUBJECT&&_=="_")r=R.WRITING_BNODE_URI;else if(I==R.PRE_PRED&&_=="<")r=R.WRITING_PRED_URI;else if(I==R.PRE_OBJ&&_=="<")r=R.WRITING_OBJ_URI;else if(I==R.PRE_OBJ&&_=="_")r=R.WRITING_OBJ_BNODE;else if(I==R.PRE_OBJ&&_=='"')r=R.WRITING_OBJ_LITERAL;else if(I==R.WRITING_SUB_URI&&_==">")r=R.PRE_PRED;else if(I==R.WRITING_BNODE_URI&&_==" ")r=R.PRE_PRED;else if(I==R.WRITING_PRED_URI&&_==">")r=R.PRE_OBJ;else if(I==R.WRITING_OBJ_URI&&_==">")r=R.POST_OBJ;else if(I==R.WRITING_OBJ_BNODE&&_==" ")r=R.POST_OBJ;else if(I==R.WRITING_OBJ_LITERAL&&_=='"')r=R.POST_OBJ;else if(I==R.WRITING_LIT_LANG&&_==" ")r=R.POST_OBJ;else if(I==R.WRITING_LIT_TYPE&&_==">")r=R.POST_OBJ;else if(I==R.WRITING_OBJ_LITERAL&&_=="@")r=R.WRITING_LIT_LANG;else if(I==R.WRITING_OBJ_LITERAL&&_=="^")r=R.WRITING_LIT_TYPE;else if(_==" "&&(I==R.PRE_SUBJECT||I==R.PRE_PRED||I==R.PRE_OBJ||I==R.POST_OBJ))r=I;else if(I==R.POST_OBJ&&_==".")r=R.PRE_SUBJECT;else r=R.ERROR;e.location=r}const t={name:"ntriples",startState:function(){return{location:R.PRE_SUBJECT,uris:[],anchors:[],bnodes:[],langs:[],types:[]}},token:function(e,_){var I=e.next();if(I=="<"){r(_,I);var R="";e.eatWhile((function(e){if(e!="#"&&e!=">"){R+=e;return true}return false}));_.uris.push(R);if(e.match("#",false))return"variable";e.next();r(_,">");return"variable"}if(I=="#"){var t="";e.eatWhile((function(e){if(e!=">"&&e!=" "){t+=e;return true}return false}));_.anchors.push(t);return"url"}if(I==">"){r(_,">");return"variable"}if(I=="_"){r(_,I);var i="";e.eatWhile((function(e){if(e!=" "){i+=e;return true}return false}));_.bnodes.push(i);e.next();r(_," ");return"builtin"}if(I=='"'){r(_,I);e.eatWhile((function(e){return e!='"'}));e.next();if(e.peek()!="@"&&e.peek()!="^"){r(_,'"')}return"string"}if(I=="@"){r(_,"@");var n="";e.eatWhile((function(e){if(e!=" "){n+=e;return true}return false}));_.langs.push(n);e.next();r(_," ");return"string.special"}if(I=="^"){e.next();r(_,"^");var T="";e.eatWhile((function(e){if(e!=">"){T+=e;return true}return false}));_.types.push(T);e.next();r(_,">");return"variable"}if(I==" "){r(_,I)}if(I=="."){r(_,I)}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5862.be1ec453e8db6844c62d.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5862.be1ec453e8db6844c62d.js deleted file mode 100644 index 1166a9fa0d550d5a81b28c95cfa0814ad8485335..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5862.be1ec453e8db6844c62d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5862],{95862:(e,a,t)=>{t.r(a);t.d(a,{mathematica:()=>A});var r="[a-zA-Z\\$][a-zA-Z0-9\\$]*";var n="(?:\\d+)";var i="(?:\\.\\d+|\\d+\\.\\d*|\\d+)";var u="(?:\\.\\w+|\\w+\\.\\w*|\\w+)";var l="(?:`(?:`?"+i+")?)";var c=new RegExp("(?:"+n+"(?:\\^\\^"+u+l+"?(?:\\*\\^[+-]?\\d+)?))");var f=new RegExp("(?:"+i+l+"?(?:\\*\\^[+-]?\\d+)?)");var m=new RegExp("(?:`?)(?:"+r+")(?:`(?:"+r+"))*(?:`?)");function o(e,a){var t;t=e.next();if(t==='"'){a.tokenize=s;return a.tokenize(e,a)}if(t==="("){if(e.eat("*")){a.commentLevel++;a.tokenize=z;return a.tokenize(e,a)}}e.backUp(1);if(e.match(c,true,false)){return"number"}if(e.match(f,true,false)){return"number"}if(e.match(/(?:In|Out)\[[0-9]*\]/,true,false)){return"atom"}if(e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::usage)/,true,false)){return"meta"}if(e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::[a-zA-Z\$][a-zA-Z0-9\$]*):?/,true,false)){return"string.special"}if(e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*\s*:)(?:(?:[a-zA-Z\$][a-zA-Z0-9\$]*)|(?:[^:=>~@\^\&\*\)\[\]'\?,\|])).*/,true,false)){return"variableName.special"}if(e.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+[a-zA-Z\$][a-zA-Z0-9\$]*/,true,false)){return"variableName.special"}if(e.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+/,true,false)){return"variableName.special"}if(e.match(/_+[a-zA-Z\$][a-zA-Z0-9\$]*/,true,false)){return"variableName.special"}if(e.match(/\\\[[a-zA-Z\$][a-zA-Z0-9\$]*\]/,true,false)){return"character"}if(e.match(/(?:\[|\]|{|}|\(|\))/,true,false)){return"bracket"}if(e.match(/(?:#[a-zA-Z\$][a-zA-Z0-9\$]*|#+[0-9]?)/,true,false)){return"variableName.constant"}if(e.match(m,true,false)){return"keyword"}if(e.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/,true,false)){return"operator"}e.next();return"error"}function s(e,a){var t,r=false,n=false;while((t=e.next())!=null){if(t==='"'&&!n){r=true;break}n=!n&&t==="\\"}if(r&&!n){a.tokenize=o}return"string"}function z(e,a){var t,r;while(a.commentLevel>0&&(r=e.next())!=null){if(t==="("&&r==="*")a.commentLevel++;if(t==="*"&&r===")")a.commentLevel--;t=r}if(a.commentLevel<=0){a.tokenize=o}return"comment"}const A={name:"mathematica",startState:function(){return{tokenize:o,commentLevel:0}},token:function(e,a){if(e.eatSpace())return null;return a.tokenize(e,a)},languageData:{commentTokens:{block:{open:"(*",close:"*)"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5877.72ab5a29e95ce21981e4.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5877.72ab5a29e95ce21981e4.js deleted file mode 100644 index b564f6bb41346f01a0744a34da269a6f5cad2fdd..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5877.72ab5a29e95ce21981e4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5877],{15877:(t,r,e)=>{e.r(r);e.d(r,{mscgen:()=>n,msgenny:()=>i,xu:()=>a});function o(t){return{name:"mscgen",startState:u,copyState:l,token:m(t),languageData:{commentTokens:{line:"#",block:{open:"/*",close:"*/"}}}}}const n=o({keywords:["msc"],options:["hscale","width","arcgradient","wordwraparcs"],constants:["true","false","on","off"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]});const i=o({keywords:null,options:["hscale","width","arcgradient","wordwraparcs","wordwrapentities","watermark"],constants:["true","false","on","off","auto"],attributes:null,brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]});const a=o({keywords:["msc","xu"],options:["hscale","width","arcgradient","wordwraparcs","wordwrapentities","watermark"],constants:["true","false","on","off","auto"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip","title","deactivate","activate","activation"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]});function c(t){return new RegExp("^\\b("+t.join("|")+")\\b","i")}function s(t){return new RegExp("^(?:"+t.join("|")+")","i")}function u(){return{inComment:false,inString:false,inAttributeList:false,inScript:false}}function l(t){return{inComment:t.inComment,inString:t.inString,inAttributeList:t.inAttributeList,inScript:t.inScript}}function m(t){return function(r,e){if(r.match(s(t.brackets),true,true)){return"bracket"}if(!e.inComment){if(r.match(/\/\*[^\*\/]*/,true,true)){e.inComment=true;return"comment"}if(r.match(s(t.singlecomment),true,true)){r.skipToEnd();return"comment"}}if(e.inComment){if(r.match(/[^\*\/]*\*\//,true,true))e.inComment=false;else r.skipToEnd();return"comment"}if(!e.inString&&r.match(/\"(\\\"|[^\"])*/,true,true)){e.inString=true;return"string"}if(e.inString){if(r.match(/[^\"]*\"/,true,true))e.inString=false;else r.skipToEnd();return"string"}if(!!t.keywords&&r.match(c(t.keywords),true,true))return"keyword";if(r.match(c(t.options),true,true))return"keyword";if(r.match(c(t.arcsWords),true,true))return"keyword";if(r.match(s(t.arcsOthers),true,true))return"keyword";if(!!t.operators&&r.match(s(t.operators),true,true))return"operator";if(!!t.constants&&r.match(s(t.constants),true,true))return"variable";if(!t.inAttributeList&&!!t.attributes&&r.match("[",true,true)){t.inAttributeList=true;return"bracket"}if(t.inAttributeList){if(t.attributes!==null&&r.match(c(t.attributes),true,true)){return"attribute"}if(r.match("]",true,true)){t.inAttributeList=false;return"bracket"}}r.next();return null}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5929.d561797f8259994ecdd8.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5929.d561797f8259994ecdd8.js deleted file mode 100644 index 68d11aa9c0ebb6dcae1112852359ec23d7fdf6a8..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5929.d561797f8259994ecdd8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5929],{25929:(e,t,n)=>{n.r(t);n.d(t,{asn1:()=>a});function r(e){var t={},n=e.split(" ");for(var r=0;r{Q.r($);Q.d($,{php:()=>GO,phpLanguage:()=>_O});var i=Q(27421);var y=Q(45145);const a=1,z=2,S=263,P=3,W=264,e=265,s=266,T=4,n=5,X=6,d=7,q=8,t=9,o=10,l=11,R=12,x=13,V=14,u=15,r=16,U=17,v=18,b=19,m=20,p=21,k=22,c=23,Y=24,Z=25,h=26,w=27,j=28,g=29,_=30,G=31,f=32,E=33,I=34,N=35,F=36,C=37,L=38,A=39,K=40,H=41,D=42,B=43,M=44,J=45,OO=46,$O=47,QO=48,iO=49,yO=50,aO=51,zO=52,SO=53,PO=54,WO=55,eO=56,sO=57,TO=58,nO=59,XO=60,dO=61,qO=62,tO=63,oO=64,lO=65;const RO={abstract:T,and:n,array:X,as:d,true:q,false:q,break:t,case:o,catch:l,clone:R,const:x,continue:V,declare:r,default:u,do:U,echo:v,else:b,elseif:m,enddeclare:p,endfor:k,endforeach:c,endif:Y,endswitch:Z,endwhile:h,enum:w,extends:j,final:g,finally:_,fn:G,for:f,foreach:E,from:I,function:N,global:F,goto:C,if:L,implements:A,include:K,include_once:H,instanceof:D,insteadof:B,interface:M,list:J,match:OO,namespace:$O,new:QO,null:iO,or:yO,print:aO,require:zO,require_once:SO,return:PO,switch:WO,throw:eO,trait:sO,try:TO,unset:nO,use:XO,var:dO,public:qO,private:qO,protected:qO,while:tO,xor:oO,yield:lO,__proto__:null};function xO(O){let $=RO[O.toLowerCase()];return $==null?-1:$}function VO(O){return O==9||O==10||O==13||O==32}function uO(O){return O>=97&&O<=122||O>=65&&O<=90}function rO(O){return O==95||O>=128||uO(O)}function UO(O){return O>=48&&O<=55||O>=97&&O<=102||O>=65&&O<=70}const vO={int:true,integer:true,bool:true,boolean:true,float:true,double:true,real:true,string:true,array:true,object:true,unset:true,__proto__:null};const bO=new i.Lu((O=>{if(O.next==40){O.advance();let $=0;while(VO(O.peek($)))$++;let Q="",i;while(uO(i=O.peek($))){Q+=String.fromCharCode(i);$++}while(VO(O.peek($)))$++;if(O.peek($)==41&&vO[Q.toLowerCase()])O.acceptToken(a)}else if(O.next==60&&O.peek(1)==60&&O.peek(2)==60){for(let i=0;i<3;i++)O.advance();while(O.next==32||O.next==9)O.advance();let $=O.next==39;if($)O.advance();if(!rO(O.next))return;let Q=String.fromCharCode(O.next);for(;;){O.advance();if(!rO(O.next)&&!(O.next>=48&&O.next<=55))break;Q+=String.fromCharCode(O.next)}if($){if(O.next!=39)return;O.advance()}if(O.next!=10&&O.next!=13)return;for(;;){let $=O.next==10||O.next==13;O.advance();if(O.next<0)return;if($){while(O.next==32||O.next==9)O.advance();let $=true;for(let i=0;i{if(O.next<0)O.acceptToken(s)}));const pO=new i.Lu(((O,$)=>{if(O.next==63&&$.canShift(e)&&O.peek(1)==62)O.acceptToken(e)}));function kO(O){let $=O.peek(1);if($==110||$==114||$==116||$==118||$==101||$==102||$==92||$==36||$==34||$==123)return 2;if($>=48&&$<=55){let $=2,Q;while($<5&&(Q=O.peek($))>=48&&Q<=55)$++;return $}if($==120&&UO(O.peek(2))){return UO(O.peek(3))?4:3}if($==117&&O.peek(2)==123){for(let $=3;;$++){let Q=O.peek($);if(Q==125)return $==2?0:$+1;if(!UO(Q))break}}return 0}const cO=new i.Lu(((O,$)=>{let Q=false;for(;;Q=true){if(O.next==34||O.next<0||O.next==36&&(rO(O.peek(1))||O.peek(1)==123)||O.next==123&&O.peek(1)==36){break}else if(O.next==92){let $=kO(O);if($){if(Q)break;else return O.acceptToken(P,$)}}else if(!Q&&(O.next==91||O.next==45&&O.peek(1)==62&&rO(O.peek(2))||O.next==63&&O.peek(1)==45&&O.peek(2)==62&&rO(O.peek(3)))&&$.canShift(W)){break}O.advance()}if(Q)O.acceptToken(S)}));const YO=(0,y.styleTags)({"Visibility abstract final static":y.tags.modifier,"for foreach while do if else elseif switch try catch finally return throw break continue default case":y.tags.controlKeyword,"endif endfor endforeach endswitch endwhile declare enddeclare goto match":y.tags.controlKeyword,"and or xor yield unset clone instanceof insteadof":y.tags.operatorKeyword,"function fn class trait implements extends const enum global interface use var":y.tags.definitionKeyword,"include include_once require require_once namespace":y.tags.moduleKeyword,"new from echo print array list as":y.tags.keyword,null:y.tags.null,Boolean:y.tags.bool,VariableName:y.tags.variableName,"NamespaceName/...":y.tags.namespace,"NamedType/...":y.tags.typeName,Name:y.tags.name,"CallExpression/Name":y.tags.function(y.tags.variableName),"LabelStatement/Name":y.tags.labelName,"MemberExpression/Name":y.tags.propertyName,"MemberExpression/VariableName":y.tags.special(y.tags.propertyName),"ScopedExpression/ClassMemberName/Name":y.tags.propertyName,"ScopedExpression/ClassMemberName/VariableName":y.tags.special(y.tags.propertyName),"CallExpression/MemberExpression/Name":y.tags.function(y.tags.propertyName),"CallExpression/ScopedExpression/ClassMemberName/Name":y.tags.function(y.tags.propertyName),"MethodDeclaration/Name":y.tags.function(y.tags.definition(y.tags.variableName)),"FunctionDefinition/Name":y.tags.function(y.tags.definition(y.tags.variableName)),"ClassDeclaration/Name":y.tags.definition(y.tags.className),UpdateOp:y.tags.updateOperator,ArithOp:y.tags.arithmeticOperator,LogicOp:y.tags.logicOperator,BitOp:y.tags.bitwiseOperator,CompareOp:y.tags.compareOperator,ControlOp:y.tags.controlOperator,AssignOp:y.tags.definitionOperator,"$ ConcatOp":y.tags.operator,LineComment:y.tags.lineComment,BlockComment:y.tags.blockComment,Integer:y.tags.integer,Float:y.tags.float,String:y.tags.string,ShellExpression:y.tags.special(y.tags.string),"=> ->":y.tags.punctuation,"( )":y.tags.paren,"#[ [ ]":y.tags.squareBracket,"${ { }":y.tags.brace,"-> ?->":y.tags.derefOperator,", ; :: : \\":y.tags.separator,"PhpOpen PhpClose":y.tags.processingInstruction});const ZO={__proto__:null,static:311,STATIC:311,class:333,CLASS:333};const hO=i.U1.deserialize({version:14,states:"$GSQ`OWOOQhQaOOP%oO`OOOOO#t'#H_'#H_O%tO#|O'#DtOOO#u'#Dw'#DwQ&SOWO'#DwO&XO$VOOOOQ#u'#Dx'#DxO&lQaO'#D|O(mQdO'#E}O(tQdO'#EQO*kQaO'#EWO,zQ`O'#ETO-PQ`O'#E^O/nQaO'#E^O/uQ`O'#EfO/zQ`O'#EoO*kQaO'#EoO0VQ`O'#HhO0[Q`O'#E{O0[Q`O'#E{OOQS'#Ic'#IcO0aQ`O'#EvOOQS'#IZ'#IZO2oQdO'#IWO6tQeO'#FUO*kQaO'#FeO*kQaO'#FfO*kQaO'#FgO*kQaO'#FhO*kQaO'#FhO*kQaO'#FkOOQO'#Id'#IdO7RQ`O'#FqOOQO'#Hi'#HiO7ZQ`O'#HOO7uQ`O'#FlO8QQ`O'#H]O8]Q`O'#FvO8eQaO'#FwO*kQaO'#GVO*kQaO'#GYO8}OrO'#G]OOQS'#Iq'#IqOOQS'#Ip'#IpOOQS'#IW'#IWO,zQ`O'#GdO,zQ`O'#GfO,zQ`O'#GkOhQaO'#GmO9UQ`O'#GnO9ZQ`O'#GqO9`Q`O'#GtO9eQeO'#GuO9eQeO'#GvO9eQeO'#GwO9oQ`O'#GxO9tQ`O'#GzO9yQaO'#G{OS,5>SOJ[QdO,5;gOOQO-E;f-E;fOL^Q`O,5;gOLcQpO,5;bO0aQ`O'#EyOLkQtO'#E}OOQS'#Ez'#EzOOQS'#Ib'#IbOM`QaO,5:wO*kQaO,5;nOOQS,5;p,5;pO*kQaO,5;pOMgQdO,5UQaO,5=hO!-eQ`O'#F}O!-jQdO'#IlO!&WQdO,5=iOOQ#u,5=j,5=jO!-uQ`O,5=lO!-xQ`O,5=mO!-}Q`O,5=nO!.YQdO,5=qOOQ#u,5=q,5=qO!.eQ`O,5=rO!.eQ`O,5=rO!.mQdO'#IwO!.{Q`O'#HXO!&WQdO,5=rO!/ZQ`O,5=rO!/fQdO'#IYO!&WQdO,5=vOOQ#u-E;_-E;_O!1RQ`O,5=kOOO#u,5:^,5:^O!1^O#|O,5:^OOO#u-E;^-E;^OOOO,5>p,5>pOOQ#y1G0S1G0SO!1fQ`O1G0XO*kQaO1G0XO!2xQ`O1G0pOOQS1G0p1G0pO!4[Q`O1G0pOOQS'#I_'#I_O*kQaO'#I_OOQS1G0q1G0qO!4cQ`O'#IaO!7lQ`O'#E}O!7yQaO'#EuOOQO'#Ia'#IaO!8TQ`O'#I`O!8]Q`O,5;_OOQS'#FQ'#FQOOQS1G1U1G1UO!8bQdO1G1]O!:dQdO1G1]O!wO#(fQaO'#HdO#(vQ`O,5>vOOQS1G0d1G0dO#)OQ`O1G0dO#)TQ`O'#I^O#*mQ`O'#I^O#*uQ`O,5;ROIbQaO,5;ROOQS1G0u1G0uPOQO'#E}'#E}O#+fQdO1G1RO0aQ`O'#HgO#-hQtO,5;cO#.YQaO1G0|OOQS,5;e,5;eO#0iQtO,5;gO#0vQdO1G0cO*kQaO1G0cO#2cQdO1G1YO#4OQdO1G1[OOQO,5<^,5<^O#4`Q`O'#HjO#4nQ`O,5?ROOQO1G1w1G1wO#4vQ`O,5?ZO!&WQdO1G3TO<_Q`O1G3TOOQ#u1G3U1G3UO#4{Q`O1G3YO!1RQ`O1G3VO#5WQ`O1G3VO#5]QpO'#FoO#5kQ`O'#FoO#5{Q`O'#FoO#6WQ`O'#FoO#6`Q`O'#FsO#6eQ`O'#FtOOQO'#If'#IfO#6lQ`O'#IeO#6tQ`O,5tOOQ#u1G3b1G3bOOQ#u1G3V1G3VO!-xQ`O1G3VO!1UQ`O1G3VOOO#u1G/x1G/xO*kQaO7+%sO#MuQdO7+%sOOQS7+&[7+&[O$ bQ`O,5>yO>UQaO,5;`O$ iQ`O,5;aO$#OQaO'#HfO$#YQ`O,5>zOOQS1G0y1G0yO$#bQ`O'#EYO$#gQ`O'#IXO$#oQ`O,5:sOOQS1G0e1G0eO$#tQ`O1G0eO$#yQ`O1G0iO9yQaO1G0iOOQO,5>O,5>OOOQO-E;b-E;bOOQS7+&O7+&OO>UQaO,5;SO$%`QaO'#HeO$%jQ`O,5>xOOQS1G0m1G0mO$%rQ`O1G0mOOQS,5>R,5>ROOQS-E;e-E;eO$%wQdO7+&hO$'yQtO1G1RO$(WQdO7+%}OOQS1G0i1G0iOOQO,5>U,5>UOOQO-E;h-E;hOOQ#u7+(o7+(oO!&WQdO7+(oOOQ#u7+(t7+(tO#KmQ`O7+(tO0aQ`O7+(tOOQ#u7+(q7+(qO!-xQ`O7+(qO!1UQ`O7+(qO!1RQ`O7+(qO$)sQ`O,5UQaO,5],5>]OOQS-E;o-E;oO$.iQdO7+'hO$.yQpO7+'hO$/RQdO'#IiOOQO,5dOOQ#u,5>d,5>dOOQ#u-E;v-E;vO$;lQaO7+(lO$cOOQS-E;u-E;uO!&WQdO7+(nO$=mQdO1G2TOOQS,5>[,5>[OOQS-E;n-E;nOOQ#u7+(r7+(rO$?nQ`O'#GQO$?uQ`O'#GQO$@ZQ`O'#HUOOQO'#Hy'#HyO$@`Q`O,5=oOOQ#u,5=o,5=oO$@gQpO7+(tOOQ#u7+(x7+(xO!&WQdO7+(xO$@rQdO,5>fOOQS-E;x-E;xO$AQQdO1G4}O$A]Q`O,5=tO$AbQ`O,5=tO$AmQ`O'#H{O$BRQ`O,5?dOOQS1G3_1G3_O#KrQ`O7+(xO$BZQdO,5=|OOQS-E;`-E;`O$CvQdO<Q,5>QOOQO-E;d-E;dO$8YQaO,5:tO$FxQaO'#HcO$GVQ`O,5>sOOQS1G0_1G0_OOQS7+&P7+&PO$G_Q`O7+&TO$HtQ`O1G0nO$JZQ`O,5>POOQO,5>P,5>POOQO-E;c-E;cOOQS7+&X7+&XOOQS7+&T7+&TOOQ#u<UQaO1G1uO$KsQ`O1G1uO$LOQ`O1G1yOOQO1G1y1G1yO$LTQ`O1G1uO$L]Q`O1G1uO$MrQ`O1G1zO>UQaO1G1zOOQO,5>V,5>VOOQO-E;i-E;iOOQS<`OOQ#u-E;r-E;rOhQaO<aOOQO-E;s-E;sO!&WQdO<g,5>gOOQO-E;y-E;yO!&WQdO<UQaO,5;TOOQ#uANAzANAzO#KmQ`OANAzOOQ#uANAwANAwO!-xQ`OANAwO%)vQ`O7+'aO>UQaO7+'aOOQO7+'e7+'eO%+]Q`O7+'aO%+hQ`O7+'eO>UQaO7+'fO%+mQ`O7+'fO%-SQ`O'#HlO%-bQ`O,5?SO%-bQ`O,5?SOOQO1G1{1G1{O$+qQpOAN@dOOQSAN@dAN@dO0aQ`OAN@dO%-jQtOANCgO%-xQ`OAN@dO*kQaOAN@nO%.QQdOAN@nO%.bQpOAN@nOOQS,5>X,5>XOOQS-E;k-E;kOOQO1G2U1G2UO!&WQdO1G2UO$/dQpO1G2UO<_Q`O1G2SO!.YQdO1G2WO!&WQdO1G2SOOQO1G2W1G2WOOQO1G2S1G2SO%.jQaO'#GSOOQO1G2X1G2XOOQSAN@oAN@oOOOQ<UQaO<W,5>WO%6wQ`O,5>WOOQO-E;j-E;jO%6|Q`O1G4nOOQSG26OG26OO$+qQpOG26OO0aQ`OG26OO%7UQdOG26YO*kQaOG26YOOQO7+'p7+'pO!&WQdO7+'pO!&WQdO7+'nOOQO7+'r7+'rOOQO7+'n7+'nO%7fQ`OLD+tO%8uQ`O'#E}O%9PQ`O'#IZO!&WQdO'#HrO%:|QaO,5^,5>^OOQP-E;p-E;pOOQO1G2Y1G2YOOQ#uLD,bLD,bOOQTG27RG27RO!&WQdOLD,xO!&WQdO<wO&EPQdO1G0cO#.YQaO1G0cO&F{QdO1G1YO&HwQdO1G1[O#.YQaO1G1|O#.YQaO7+%sO&JsQdO7+%sO&LoQdO7+%}O#.YQaO7+'hO&NkQdO7+'hO'!gQdO<lQdO,5>wO(@nQdO1G0cO'.QQaO1G0cO(BpQdO1G1YO(DrQdO1G1[O'.QQaO1G1|O'.QQaO7+%sO(FtQdO7+%sO(HvQdO7+%}O'.QQaO7+'hO(JxQdO7+'hO(LzQdO<wO*1sQaO'#HdO*2TQ`O,5>vO*2]QdO1G0cO9yQaO1G0cO*4XQdO1G1YO*6TQdO1G1[O9yQaO1G1|O>UQaO'#HwO*8PQ`O,5=[O*8XQaO'#HbO*8cQ`O,5>tO9yQaO7+%sO*8kQdO7+%sO*:gQ`O1G0iO>UQaO1G0iO*;|QdO7+%}O9yQaO7+'hO*=xQdO7+'hO*?tQ`O,5>cO*AZQ`O,5=|O*BpQdO<UQaO'#FeO>UQaO'#FfO>UQaO'#FgO>UQaO'#FhO>UQaO'#FhO>UQaO'#FkO+'XQaO'#FwO>UQaO'#GVO>UQaO'#GYO+'`QaO,5:mO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO+'gQ`O'#I]O$8YQaO'#EaO+)PQaOG26YO$8YQaO'#I]O+*{Q`O'#I[O++TQaO,5:wO>UQaO,5;nO>UQaO,5;pO++[Q`O,5UQaO1G0XO+9hQ`O1G1]O+;TQ`O1G1]O+]Q`O1G1]O+?xQ`O1G1]O+AeQ`O1G1]O+CQQ`O1G1]O+DmQ`O1G1]O+FYQ`O1G1]O+GuQ`O1G1]O+IbQ`O1G1]O+J}Q`O1G1]O+LjQ`O1G1]O+NVQ`O1G1]O, rQ`O1G1]O,#_Q`O1G0cO>UQaO1G0cO,$zQ`O1G1YO,&gQ`O1G1[O,(SQ`O1G1|O>UQaO1G1|O>UQaO7+%sO,([Q`O7+%sO,)wQ`O7+%}O>UQaO7+'hO,+dQ`O7+'hO,+lQ`O7+'hO,-XQpO7+'hO,-aQ`O<UQaO<UQaOAN@nO,0qQ`OAN@nO,2^QpOAN@nO,2fQ`OG26YO>UQaOG26YO,4RQ`OLD+tO,5nQaO,5:}O>UQaO1G0iO,5uQ`O'#I]O$8YQaO'#FeO$8YQaO'#FfO$8YQaO'#FgO$8YQaO'#FhO$8YQaO'#FhO+)PQaO'#FhO$8YQaO'#FkO,6SQaO'#FwO,6ZQaO'#FwO$8YQaO'#GVO+)PQaO'#GVO$8YQaO'#GYO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO,8YQ`O'#FlO>UQaO'#EaO>UQaO'#I]O,8bQaO,5:wO,8iQaO,5:wO$8YQaO,5;nO+)PQaO,5;nO$8YQaO,5;pO,:hQ`O,5wO-IcQ`O1G0cO-KOQ`O1G0cO$8YQaO1G0cO+)PQaO1G0cO-L_Q`O1G1YO-MzQ`O1G1YO. ZQ`O1G1[O$8YQaO1G1|O$8YQaO7+%sO+)PQaO7+%sO.!vQ`O7+%sO.$cQ`O7+%sO.%rQ`O7+%}O.'_Q`O7+%}O$8YQaO7+'hO.(nQ`O7+'hO.*ZQ`O<fQ`O,5>wO.@RQ`O1G1|O!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO.@ZQ`O7+'hO.@cQpO7+'hO.@kQpO<UO#X&PO~P>UO!o&SO!s&RO#b&RO~OPgOQ|OU^OW}O[8lOo=yOs#hOx8jOy8jO}`O!O]O!Q8pO!R}O!T8oO!U8kO!V8kO!Y8rO!c8iO!s&VO!y[O#U&WO#W_O#bhO#daO#ebO#peO$T8nO$]8mO$^8nO$aqO$z8qO${!OO$}}O%O}O%V|O'g{O~O!x'SP~PAOO!s&[O#b&[O~OT#TOz#RO!S#UO!b#VO!o!{O!v!yO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO~O!x&nO~PCqO!x'VX!}'VX#O'VX#X'VX!n'VXV'VX!q'VX#u'VX#w'VXw'VX~P&sO!y$hO#S&oO~Oo$mOs$lO~O!o&pO~O!}&sO#S;dO#U;cO!x'OP~P9yOT6iOz6gO!S6jO!b6kO!o!{O!v8sO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}'PX#X'PX~O#O&tO~PGSO!}&wO#X'OX~O#X&yO~O!}'OO!x'QP~P9yO!n'PO~PCqO!m#oa!o#oa#S#oa#p#qX&s#oa!x#oa#O#oaw#oa~OT#oaz#oa!S#oa!b#oa!v#oa!y#oa#W#oa#`#oa#a#oa#s#oa#z#oa#{#oa#|#oa#}#oa$O#oa$Q#oa$R#oa$S#oa$T#oa$U#oa$V#oa$W#oa$z#oa!}#oa#X#oa!n#oaV#oa!q#oa#u#oa#w#oa~PIpO!s'RO~O!x'UO#l'SO~O!x'VX#l'VX#p#qX#S'VX#U'VX#b'VX!o'VX#O'VXw'VX!m'VX&s'VX~O#S'YO~P*kO!m$Xa&s$Xa!x$Xa!n$Xa~PCqO!m$Ya&s$Ya!x$Ya!n$Ya~PCqO!m$Za&s$Za!x$Za!n$Za~PCqO!m$[a&s$[a!x$[a!n$[a~PCqO!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO$z#dOT$[a!S$[a!b$[a!m$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a&s$[a!x$[a!n$[a~Oz#RO~PNyO!m$_a&s$_a!x$_a!n$_a~PCqO!y!}O!}$fX#X$fX~O!}'^O#X'ZX~O#X'`O~O!s$kO#S'aO~O]'cO~O!s'eO~O!s'fO~O$l'gO~O!`'mO#S'kO#U'lO#b'jO$drO!x'XP~P0aO!^'sO!oXO!q'rO~O!s'uO!y$hO~O!y$hO#S'wO~O!y$hO#S'yO~O#u'zO!m$sX!}$sX&s$sX~O!}'{O!m'bX&s'bX~O!m#cO&s#cO~O!q(PO#O(OO~O!m$ka&s$ka!x$ka!n$ka~PCqOl(ROw(SO!o(TO!y!}O~O!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO~OT$yaz$ya!S$ya!b$ya!m$ya!v$ya#S$ya#z$ya#{$ya#|$ya#}$ya$O$ya$Q$ya$R$ya$S$ya$T$ya$U$ya$V$ya$W$ya$z$ya&s$ya!x$ya!}$ya#O$ya#X$ya!n$ya!q$yaV$ya#u$ya#w$ya~P!'WO!m$|a&s$|a!x$|a!n$|a~PCqO#W([O#`(YO#a(YO&r(ZOR&gX!o&gX#b&gX#e&gX&q&gX'f&gX~O'f(_O~P8lO!q(`O~PhO!o(cO!q(dO~O!q(`O&s(gO~PhO!a(kO~O!m(lO~P9yOZ(wOn(xO~O!s(zO~OT6iOz6gO!S6jO!b6kO!v8sO!}({O#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'jX&s'jX~P!'WO#u)PO~O!})QO!m'`X&s'`X~Ol(RO!o(TO~Ow(SO!o)WO!q)ZO~O!m#cO!oXO&s#cO~O!o%pO!s#yO~OV)aO!})_O!m'kX&s'kX~O])cOs)cO!s#gO#peO~O!o%pO!s#gO#p)hO~OT6iOz6gO!S6jO!b6kO!v8sO!})iO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&|X&s&|X#O&|X~P!'WOl(ROw(SO!o(TO~O!i)oO&t)oO~OT8vOz8tO!S8wO!b8xO!q)pO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#X)rO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!n)rO~PCqOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x'TX!}'TX~P!'WOT'VXz'VX!S'VX!b'VX!o'VX!v'VX!y'VX#S'VX#W'VX#`'VX#a'VX#p#qX#s'VX#z'VX#{'VX#|'VX#}'VX$O'VX$Q'VX$R'VX$S'VX$T'VX$U'VX$V'VX$W'VX$z'VX~O!q)tO!x'VX!}'VX~P!5xO!x#iX!}#iX~P>UO!})vO!x'SX~O!x)xO~O$z#dOT#yiz#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi$W#yi&s#yi!x#yi!}#yi#O#yi#X#yi!n#yi!q#yiV#yi#u#yi#w#yi~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi&s#yi!x#yi!n#yi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!b#VO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi~P!'WOz#RO$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi~P!'WO_)yO~P9yO!x)|O~O#S*PO~P9yOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Ta#X#Ta#O#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}'Pa#X'Pa#O'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WO#S#oO#U#nO!}&WX#X&WX~P9yO!}&wO#X'Oa~O#X*SO~OT6iOz6gO!S6jO!b6kO!v8sO!}*UO#O*TO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x'QX~P!'WO!}*UO!x'QX~O!x*WO~O!m#oi!o#oi#S#oi#p#qX&s#oi!x#oi#O#oiw#oi~OT#oiz#oi!S#oi!b#oi!v#oi!y#oi#W#oi#`#oi#a#oi#s#oi#z#oi#{#oi#|#oi#}#oi$O#oi$Q#oi$R#oi$S#oi$T#oi$U#oi$V#oi$W#oi$z#oi!}#oi#X#oi!n#oiV#oi!q#oi#u#oi#w#oi~P#*zO#l'SO!x#ka#S#ka#U#ka#b#ka!o#ka#O#kaw#ka!m#ka&s#ka~OPgOQ|OU^OW}O[4OOo5xOs#hOx3zOy3zO}`O!O]O!Q2^O!R}O!T4UO!U3|O!V3|O!Y2`O!c3xO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4SO$]4QO$^4SO$aqO$z2_O${!OO$}}O%O}O%V|O'g{O~O#l#oa#U#oa#b#oa~PIpOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pi!S#Pi!b#Pi!m#Pi&s#Pi!x#Pi!n#Pi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#vi!S#vi!b#vi!m#vi&s#vi!x#vi!n#vi~P!'WO!m#xi&s#xi!x#xi!n#xi~PCqO!s#gO#peO!}&^X#X&^X~O!}'^O#X'Za~O!s'uO~Ow(SO!o)WO!q*fO~O!s*jO~O#S*lO#U*mO#b*kO#l'SO~O#S*lO#U*mO#b*kO$drO~P0aO#u*oO!x$cX!}$cX~O#U*mO#b*kO~O#b*pO~O#b*rO~P0aO!}*sO!x'XX~O!x*uO~O!y*wO~O!^*{O!oXO!q*zO~O!q*}O!o'ci!m'ci&s'ci~O!q+QO#O+PO~O#b$nO!m&eX!}&eX&s&eX~O!}'{O!m'ba&s'ba~OT$kiz$ki!S$ki!b$ki!m$ki!o$ki!v$ki!y$ki#S$ki#W$ki#`$ki#a$ki#s$ki#u#fa#w#fa#z$ki#{$ki#|$ki#}$ki$O$ki$Q$ki$R$ki$S$ki$T$ki$U$ki$V$ki$W$ki$z$ki&s$ki!x$ki!}$ki#O$ki#X$ki!n$ki!q$kiV$ki~OS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n+hO#b$nO$aqO$drO~P0aO!s+lO~O#W+nO#`+mO#a+mO~O!s+pO#b+pO$}+pO%T+oO~O!n+qO~PCqOc%XXd%XXh%XXj%XXf%XXg%XXe%XX~PhOc+uOd+sOP%WiQ%WiS%WiU%WiW%WiX%Wi[%Wi]%Wi^%Wi`%Wia%Wib%Wik%Wim%Wio%Wip%Wiq%Wis%Wit%Wiu%Wiv%Wix%Wiy%Wi|%Wi}%Wi!O%Wi!P%Wi!Q%Wi!R%Wi!T%Wi!U%Wi!V%Wi!W%Wi!X%Wi!Y%Wi!Z%Wi![%Wi!]%Wi!^%Wi!`%Wi!a%Wi!c%Wi!m%Wi!o%Wi!s%Wi!y%Wi#W%Wi#b%Wi#d%Wi#e%Wi#p%Wi$T%Wi$]%Wi$^%Wi$a%Wi$d%Wi$l%Wi$z%Wi${%Wi$}%Wi%O%Wi%V%Wi&p%Wi'g%Wi&t%Wi!n%Wih%Wij%Wif%Wig%WiY%Wi_%Wii%Wie%Wi~Oc+yOd+vOh+xO~OY+zO_+{O!n,OO~OY+zO_+{Oi%^X~Oi,QO~Oj,RO~O!m,TO~P9yO!m,VO~Of,WO~OT6iOV,XOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WOg,YO~O!y,ZO~OZ(wOn(xOP%liQ%liS%liU%liW%liX%li[%li]%li^%li`%lia%lib%lik%lim%lio%lip%liq%lis%lit%liu%liv%lix%liy%li|%li}%li!O%li!P%li!Q%li!R%li!T%li!U%li!V%li!W%li!X%li!Y%li!Z%li![%li!]%li!^%li!`%li!a%li!c%li!m%li!o%li!s%li!y%li#W%li#b%li#d%li#e%li#p%li$T%li$]%li$^%li$a%li$d%li$l%li$z%li${%li$}%li%O%li%V%li&p%li'g%li&t%li!n%lic%lid%lih%lij%lif%lig%liY%li_%lii%lie%li~O#u,_O~O!}({O!m%da&s%da~O!x,bO~O!s%dO!m&dX!}&dX&s&dX~O!})QO!m'`a&s'`a~OS+^OY,iOm+^Os$aO!^+dO!_+^O!`+^O$aqO$drO~O!n,lO~P#JwO!o)WO~O!o%pO!s'RO~O!s#gO#peO!m&nX!}&nX&s&nX~O!})_O!m'ka&s'ka~O!s,rO~OV,sO!n%|X!}%|X~O!},uO!n'lX~O!n,wO~O!m&UX!}&UX&s&UX#O&UX~P9yO!})iO!m&|a&s&|a#O&|a~Oz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq&s!uq!x!uq!n!uq~P!'WO!n,|O~PCqOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#ia!}#ia~P!'WO!x&YX!}&YX~PAOO!})vO!x'Sa~O#O-QO~O!}-RO!n&{X~O!n-TO~O!x-UO~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Vi#X#Vi~P!'WO!x&XX!}&XX~P9yO!}*UO!x'Qa~O!x-[O~OT#jqz#jq!S#jq!b#jq!m#jq!v#jq#S#jq#u#jq#w#jq#z#jq#{#jq#|#jq#}#jq$O#jq$Q#jq$R#jq$S#jq$T#jq$U#jq$V#jq$W#jq$z#jq&s#jq!x#jq!}#jq#O#jq#X#jq!n#jq!q#jqV#jq~P!'WO#l#oi#U#oi#b#oi~P#*zOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pq!S#Pq!b#Pq!m#Pq&s#Pq!x#Pq!n#Pq~P!'WO#u-dO!x$ca!}$ca~O#U-fO#b-eO~O#b-gO~O#S-hO#U-fO#b-eO#l'SO~O#b-jO#l'SO~O#u-kO!x$ha!}$ha~O!`'mO#S'kO#U'lO#b'jO$drO!x&_X!}&_X~P0aO!}*sO!x'Xa~O!oXO#l'SO~O#S-pO#b-oO!x'[P~O!oXO!q-rO~O!q-uO!o'cq!m'cq&s'cq~O!^-wO!oXO!q-rO~O!q-{O#O-zO~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m$si!}$si&s$si~P!'WO!m$jq&s$jq!x$jq!n$jq~PCqO#O-zO#l'SO~O!}-|Ow']X!o']X!m']X&s']X~O#b$nO#l'SO~OS+^O].ROm+^Os$aO!_+^O!`+^O#b$nO$aqO$drO~P0aOS+^O].ROm+^Os$aO!_+^O!`+^O#b$nO$aqO~P0aOS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n.ZO#b$nO$aqO$drO~P0aO!s.^O~O!s._O#b._O$}._O%T+oO~O$}.`O~O#X.aO~Oc%Xad%Xah%Xaj%Xaf%Xag%Xae%Xa~PhOc.dOd+sOP%WqQ%WqS%WqU%WqW%WqX%Wq[%Wq]%Wq^%Wq`%Wqa%Wqb%Wqk%Wqm%Wqo%Wqp%Wqq%Wqs%Wqt%Wqu%Wqv%Wqx%Wqy%Wq|%Wq}%Wq!O%Wq!P%Wq!Q%Wq!R%Wq!T%Wq!U%Wq!V%Wq!W%Wq!X%Wq!Y%Wq!Z%Wq![%Wq!]%Wq!^%Wq!`%Wq!a%Wq!c%Wq!m%Wq!o%Wq!s%Wq!y%Wq#W%Wq#b%Wq#d%Wq#e%Wq#p%Wq$T%Wq$]%Wq$^%Wq$a%Wq$d%Wq$l%Wq$z%Wq${%Wq$}%Wq%O%Wq%V%Wq&p%Wq'g%Wq&t%Wq!n%Wqh%Wqj%Wqf%Wqg%WqY%Wq_%Wqi%Wqe%Wq~Oc.iOd+vOh.hO~O!q(`O~OP6]OQ|OU^OW}O[:fOo>ROs#hOx:dOy:dO}`O!O]O!Q:kO!R}O!T:jO!U:eO!V:eO!Y:oO!c8gO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:hO$]:gO$^:hO$aqO$z:mO${!OO$}}O%O}O%V|O'g{O~O!m.lO!q.lO~OY+zO_+{O!n.nO~OY+zO_+{Oi%^a~O!x.rO~P>UO!m.tO~O!m.tO~P9yOQ|OW}O!R}O$}}O%O}O%V|O'g{O~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&ka!}&ka&s&ka~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m$qi!}$qi&s$qi~P!'WOS+^Om+^Os$aO!_+^O!`+^O$aqO$drO~OY/PO~P$?VOS+^Om+^Os$aO!_+^O!`+^O$aqO~O!s/QO~O!n/SO~P#JwOw(SO!o)WO#l'SO~OV/VO!m&na!}&na&s&na~O!})_O!m'ki&s'ki~O!s/XO~OV/YO!n%|a!}%|a~O]/[Os/[O!s#gO#peO!n&oX!}&oX~O!},uO!n'la~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&Ua!}&Ua&s&Ua#O&Ua~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy&s!uy!x!uy!n!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#hi!}#hi~P!'WO_)yO!n&VX!}&VX~P9yO!}-RO!n&{a~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Vq#X#Vq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#[i!}#[i~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#O/cO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x&Xa!}&Xa~P!'WO#u/iO!x$ci!}$ci~O#b/jO~O#U/lO#b/kO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$ci!}$ci~P!'WO#u/mO!x$hi!}$hi~O!}/oO!x'[X~O#b/qO~O!x/rO~O!oXO!q/uO~O#l'SO!o'cy!m'cy&s'cy~O!m$jy&s$jy!x$jy!n$jy~PCqO#O/xO#l'SO~O!s#gO#peOw&aX!o&aX!}&aX!m&aX&s&aX~O!}-|Ow']a!o']a!m']a&s']a~OU$PO]0QO!R$PO!s$OO!v#}O#b$nO#p2XO~P$?uO!m#cO!o0VO&s#cO~O#X0YO~Oh0_O~OT:tOz:pO!S:vO!b:xO!m0`O!q0`O!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO~P!'WOY%]a_%]a!n%]ai%]a~PhO!x0bO~O!x0bO~P>UO!m0dO~OT6iOz6gO!S6jO!b6kO!v8sO!x0fO#O0eO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WO!x0fO~O!x0gO#b0hO#l'SO~O!x0iO~O!s0jO~O!m#cO#u0lO&s#cO~O!s0mO~O!})_O!m'kq&s'kq~O!s0nO~OV0oO!n%}X!}%}X~OT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!n!|i!}!|i~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$cq!}$cq~P!'WO#u0vO!x$cq!}$cq~O#b0wO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$hq!}$hq~P!'WO#S0zO#b0yO!x&`X!}&`X~O!}/oO!x'[a~O#l'SO!o'c!R!m'c!R&s'c!R~O!oXO!q1PO~O!m$j!R&s$j!R!x$j!R!n$j!R~PCqO#O1RO#l'SO~OP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!n1^O!s1YO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOh1_O~OY%[i_%[i!n%[ii%[i~PhOY%]i_%]i!n%]ii%]i~PhO!x1bO~O!x1bO~P>UO!x1eO~O!m#cO#u1iO&s#cO~O$}1jO%V1jO~O!s1kO~OV1lO!n%}a!}%}a~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#]i!}#]i~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$cy!}$cy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$hy!}$hy~P!'WO#b1nO~O!}/oO!x'[i~O!m$j!Z&s$j!Z!x$j!Z!n$j!Z~PCqOT:uOz:qO!S:wO!b:yO!v=nO#S#QO#z:sO#{:{O#|:}O#};PO$O;RO$Q;VO$R;XO$S;ZO$T;]O$U;_O$V;aO$W;aO$z#dO~P!'WOV1uO{1tO~P!5xOV1uO{1tOT&}Xz&}X!S&}X!b&}X!o&}X!v&}X!y&}X#S&}X#W&}X#`&}X#a&}X#s&}X#u&}X#w&}X#z&}X#{&}X#|&}X#}&}X$O&}X$Q&}X$R&}X$S&}X$T&}X$U&}X$V&}X$W&}X$z&}X~OP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!n1xO!s1YO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOY%[q_%[q!n%[qi%[q~PhO!x1zO~O!x%gi~PCqOe1{O~O$}1|O%V1|O~O!s2OO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$c!R!}$c!R~P!'WO!m$j!c&s$j!c!x$j!c!n$j!c~PCqO!s2QO~O!`2SO!s2RO~O!s2VO!m$xi&s$xi~O!s'WO~O!s*]O~OT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$ka#u$ka#w$ka&s$ka!x$ka!n$ka!q$ka#X$ka!}$ka~P!'WO#S2]O~P*kO$l$tO~P#.YOT6iOz6gO!S6jO!b6kO!v8sO#O2[O#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'PX&s'PX!x'PX!n'PX~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#O3uO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}'PX#X'PX#u'PX#w'PX!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~P!'WO#S3dO~P#.YOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Xa#u$Xa#w$Xa&s$Xa!x$Xa!n$Xa!q$Xa#X$Xa!}$Xa~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Ya#u$Ya#w$Ya&s$Ya!x$Ya!n$Ya!q$Ya#X$Ya!}$Ya~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Za#u$Za#w$Za&s$Za!x$Za!n$Za!q$Za#X$Za!}$Za~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$[a#u$[a#w$[a&s$[a!x$[a!n$[a!q$[a#X$[a!}$[a~P!'WOz2aO#u$[a#w$[a!q$[a#X$[a!}$[a~PNyOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$_a#u$_a#w$_a&s$_a!x$_a!n$_a!q$_a#X$_a!}$_a~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$|a#u$|a#w$|a&s$|a!x$|a!n$|a!q$|a#X$|a!}$|a~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!S#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$T2nO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$S2mO$T2nO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m#Ta#u#Ta#w#Ta&s#Ta!x#Ta!n#Ta!q#Ta#X#Ta!}#Ta~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m'Pa#u'Pa#w'Pa&s'Pa!x'Pa!n'Pa!q'Pa#X'Pa!}'Pa~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#Pi!S#Pi!b#Pi!m#Pi#u#Pi#w#Pi&s#Pi!x#Pi!n#Pi!q#Pi#X#Pi!}#Pi~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#vi!S#vi!b#vi!m#vi#u#vi#w#vi&s#vi!x#vi!n#vi!q#vi#X#vi!}#vi~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m#xi#u#xi#w#xi&s#xi!x#xi!n#xi!q#xi#X#xi!}#xi~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq#u!uq#w!uq&s!uq!x!uq!n!uq!q!uq#X!uq!}!uq~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#Pq!S#Pq!b#Pq!m#Pq#u#Pq#w#Pq&s#Pq!x#Pq!n#Pq!q#Pq#X#Pq!}#Pq~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$jq#u$jq#w$jq&s$jq!x$jq!n$jq!q$jq#X$jq!}$jq~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy#u!uy#w!uy&s!uy!x!uy!n!uy!q!uy#X!uy!}!uy~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$jy#u$jy#w$jy&s$jy!x$jy!n$jy!q$jy#X$jy!}$jy~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!R#u$j!R#w$j!R&s$j!R!x$j!R!n$j!R!q$j!R#X$j!R!}$j!R~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!Z#u$j!Z#w$j!Z&s$j!Z!x$j!Z!n$j!Z!q$j!Z#X$j!Z!}$j!Z~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!c#u$j!c#w$j!c&s$j!c!x$j!c!n$j!c!q$j!c#X$j!c!}$j!c~P!'WOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S3vO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lO#u2uO#w2vO!q&zX#X&zX!}&zX~P0rOP6]OU^O[4POo8^Or2wOs#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S2tO#U2sO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!v#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX&s#xX!x#xX!n#xX!q#xX#X#xX!}#xX~P$;lOP6]OU^O[4POo8^Or4xOs#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S4uO#U4tO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OOT#xXz#xX!S#xX!b#xX!o#xX!v#xX!}#xX#O#xX#X#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!m#xX&s#xX!x#xX!n#xXV#xX!q#xX~P$;lO!q3PO~P>UO!q5}O#O3gO~OT8vOz8tO!S8wO!b8xO!q3hO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!q6OO#O3kO~O!q6PO#O3oO~O#O3oO#l'SO~O#O3pO#l'SO~O#O3sO#l'SO~OP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$l$tO$z4bO${!OO~P$;lOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S5eO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Xa#O$Xa#X$Xa#u$Xa#w$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Ya#O$Ya#X$Ya#u$Ya#w$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Za#O$Za#X$Za#u$Za#w$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$[a#O$[a#X$[a#u$[a#w$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz4dO!}$[a#O$[a#X$[a#u$[a#w$[aV$[a!q$[a~PNyOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$_a#O$_a#X$_a#u$_a#w$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$|a#O$|a#X$|a#u$|a#w$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!S#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$T4qO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$S4pO$T4qO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}#Ta#O#Ta#X#Ta#u#Ta#w#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}'Pa#O'Pa#X'Pa#u'Pa#w'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi#u#Pi#w#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi#u#vi#w#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}#xi#O#xi#X#xi#u#xi#w#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq#u!uq#w!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq#u#Pq#w#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$jq#O$jq#X$jq#u$jq#w$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy#u!uy#w!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$jy#O$jy#X$jy#u$jy#w$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!R#O$j!R#X$j!R#u$j!R#w$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!Z#O$j!Z#X$j!Z#u$j!Z#w$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!c#O$j!c#X$j!c#u$j!c#w$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S5wO~P#.YO!y$hO#S5{O~O!x4ZO#l'SO~O!y$hO#S5|O~OT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$ka#O$ka#X$ka#u$ka#w$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#O5vO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!m'PX#u'PX#w'PX&s'PX!x'PX!n'PX!q'PX#X'PX!}'PX~P!'WO#u4vO#w4wO!}&zX#O&zX#X&zXV&zX!q&zX~P0rO!q5QO~P>UO!q8bO#O5hO~OT8vOz8tO!S8wO!b8xO!q5iO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!q8cO#O5lO~O!q8dO#O5pO~O#O5pO#l'SO~O#O5qO#l'SO~O#O5tO#l'SO~O$l$tO~P9yOo5zOs$lO~O#S7oO~P9yOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Xa#O$Xa#X$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Ya#O$Ya#X$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Za#O$Za#X$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$[a#O$[a#X$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz6gO!}$[a#O$[a#X$[aV$[a!q$[a~PNyOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$_a#O$_a#X$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$ka#O$ka#X$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$|a#O$|a#X$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO!}7sO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x'jX~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO!}7uO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&|X~P!'WOz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6iOz6gO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!S#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6iOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$T6tO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$S6sO$T6tO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WO#S7zO~P>UO!m#Ta&s#Ta!x#Ta!n#Ta~PCqO!m'Pa&s'Pa!x'Pa!n'Pa~PCqO#S;dO#U;cO!x&WX!}&WX~P9yO!}7lO!x'Oa~Oz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#xi#O#xi#X#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WO!}7sO!x%da~O!x&UX!}&UX~P>UO!}7uO!x&|a~Oz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#Vi!}#Vi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$jq#O$jq#X$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&ka!}&ka~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&Ua!}&Ua~P!'WOz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#Vq!}#Vq~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$jy#O$jy#X$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!R#O$j!R#X$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!Z#O$j!Z#X$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!c#O$j!c#X$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S8[O~P9yO#O8ZO!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~PGSO!y$hO#S8`O~O!y$hO#S8aO~O#u6zO#w6{O!}&zX#O&zX#X&zXV&zX!q&zX~P0rOr6|O#S#oO#U#nO!}#xX#O#xX#X#xXV#xX!q#xX~P2yOr;iO#S9XO#U9VOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!n#xX!}#xX~P9yOr9WO#S9WO#U9WOT#xXz#xX!S#xX!b#xX!o#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX~P9yOr9]O#S;dO#U;cOT#xXz#xX!S#xX!b#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX#X#xX!x#xX!}#xX~P9yO$l$tO~P>UO!q7XO~P>UOT6iOz6gO!S6jO!b6kO!v8sO#O7iO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x'PX!}'PX~P!'WOP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lO!}7lO!x'OX~O#S9yO~P>UOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Xa#X$Xa!x$Xa!}$Xa~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Ya#X$Ya!x$Ya!}$Ya~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Za#X$Za!x$Za!}$Za~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$[a#X$[a!x$[a!}$[a~P!'WOz8tO$z#dOT$[a!S$[a!b$[a!q$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a#X$[a!x$[a!}$[a~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$_a#X$_a!x$_a!}$_a~P!'WO!q=dO#O7rO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$ka#X$ka!x$ka!}$ka~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$|a#X$|a!x$|a!}$|a~P!'WOT8vOz8tO!S8wO!b8xO!q7wO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#X#yi!x#yi!}#yi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8vOz8tO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!S#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8vOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8tO$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8tO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi#X#yi!x#yi!}#yi~P!'WOz8tO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi#X#yi!x#yi!}#yi~P!'WOz8tO$T9RO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$S9QO$T9RO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi#X#yi!x#yi!}#yi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#Pi!S#Pi!b#Pi!q#Pi#X#Pi!x#Pi!}#Pi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#vi!S#vi!b#vi!q#vi#X#vi!x#vi!}#vi~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q#xi#X#xi!x#xi!}#xi~P!'WO!q=eO#O7|O~Oz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT!uq!S!uq!b!uq!q!uq!v!uq#X!uq!x!uq!}!uq~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#Pq!S#Pq!b#Pq!q#Pq#X#Pq!x#Pq!}#Pq~P!'WO!q=iO#O8TO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$jq#X$jq!x$jq!}$jq~P!'WO#O8TO#l'SO~Oz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT!uy!S!uy!b!uy!q!uy!v!uy#X!uy!x!uy!}!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$jy#X$jy!x$jy!}$jy~P!'WO#O8UO#l'SO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!R#X$j!R!x$j!R!}$j!R~P!'WO#O8XO#l'SO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!Z#X$j!Z!x$j!Z!}$j!Z~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!c#X$j!c!x$j!c!}$j!c~P!'WO#S:bO~P>UO#O:aO!q'PX!x'PX~PGSO$l$tO~P$8YOP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$l$tO$z:nO${!OO~P$;lOo8_Os$lO~O#SSOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#SSOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#S=UO#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOT6iOz6gO!S6jO!b6kO!v8sO#O=SO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#O=RO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'PX!q'PX!n'PX!}'PX~P!'WOT&zXz&zX!S&zX!b&zX!o&zX!q&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX!}&zX~O#u9ZO#w9[O#X&zX!x&zX~P.8oO!y$hO#S=^O~O!q9hO~P>UO!y$hO#S=cO~O!q>OO#O9}O~OT8vOz8tO!S8wO!b8xO!q:OO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!m#Ta!q#Ta!n#Ta!}#Ta~P!'WOT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!m'Pa!q'Pa!n'Pa!}'Pa~P!'WO!q>PO#O:RO~O!q>QO#O:YO~O#O:YO#l'SO~O#O:ZO#l'SO~O#O:_O#l'SO~O#u;eO#w;gO!m&zX!n&zX~P.8oO#u;fO#w;hOT&zXz&zX!S&zX!b&zX!o&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX~O!q;tO~P>UO!q;uO~P>UO!q>XO#OYO#O9WO~OT8vOz8tO!S8wO!b8xO!qZO#O[O#O<{O~O#O<{O#l'SO~O#O9WO#l'SO~O#O<|O#l'SO~O#O=PO#l'SO~O!y$hO#S=|O~Oo=[Os$lO~O!y$hO#S=}O~O!y$hO#S>UO~O!y$hO#S>VO~O!y$hO#S>WO~Oo={Os$lO~Oo>TOs$lO~Oo>SOs$lO~O%O$U$}$d!d$V#b%V#e'g!s#d~",goto:"%&y'mPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP'nP'uPP'{(OPPP(hP(OP(O*ZP*ZPP2W:j:mPP*Z:sBpPBsPBsPP:sCSCVCZ:s:sPPPC^PP:sK^!$S!$S:s!$WP!$W!$W!%UP!.]!7pP!?oP*ZP*Z*ZPPPPP!?rPPPPPPP*Z*Z*Z*ZPP*Z*ZP!E]!GRP!GV!Gy!GR!GR!HP*Z*ZP!HY!Hl!Ib!J`!Jd!J`!Jo!J}!J}!KV!KY!KY*ZPP*ZPP!K^#%[#%[#%`P#%fP(O#%j(O#&S#&V#&V#&](O#&`(O(O#&f#&i(O#&r#&u(O(O(O(O(O#&x(O(O(O(O(O(O(O(O(O#&{!KR(O(O#'_#'o#'r(O(OP#'u#'|#(S#(o#(y#)P#)Z#)b#)h#*d#4X#5T#5Z#5a#5k#5q#5w#6]#6c#6i#6o#6u#6{#7R#7]#7g#7m#7s#7}PPPPPPPP#8T#8X#8}#NO#NR#N]$(f$(r$)X$)_$)b$)e$)k$,X$5v$>_$>b$>h$>k$>n$>w$>{$?X$?k$Bk$CO$C{$K{PP%%y%%}%&Z%&p%&vQ!nQT!qV!rQUOR%x!mRVO}!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1a|!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aQ%^!ZQ%g!aQ%l!eQ'd$dQ'q$iQ)[%kQ*y'tQ,](xU-n*v*x+OQ.W+cQ.{,[S/t-s-tQ0T.SS0}/s/wQ1V0RQ1o1OR2P1p0u!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[3ZfPVX[_bgjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#}$R$S$U$h$y$}%P%R%S%T%U%c%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)Z)_)c)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,u-Q-R-d-k-r-u-z-{-|.Q.b.d.l.t/[/c/i/m/u/x0V0`0a0d0e0i0v1P1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w5}6O6P6T6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8b8c8d8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[3scPVX[_bdegjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#{#}$R$S$U$h$y$}%P%R%S%T%U%c%m%n%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)Z)^)_)c)g)h)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,u,x-Q-R-d-k-r-u-z-{-|.Q.b.d.l.t/[/c/i/m/u/x0V0`0a0d0e0i0v1P1R1]1a2W2X2Y2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w5}6O6P6T6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8b8c8d8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[0phPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0`0a0d0e0i0v1R1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uRS=p>S>VS=s>T>UR=t>WT'n$h*s!csPVXt!S!j!r!s!w$h$}%P%S%U'i(T(`)W*s+]+g+r+u,g,k.b.d.l0`0a0i1aQ$^rR*`'^Q*x'sQ-t*{R/w-wQ(W$tQ)U%hQ)n%vQ*i'fQ+k(XR-c*jQ(V$tQ)Y%jQ)m%vQ*e'eS*h'f)nS+j(W(XS-b*i*jQ.]+kQ/T,mQ/e-`R/g-cQ(U$tQ)T%hQ)V%iQ)l%vU*g'f)m)nU+i(V(W(XQ,f)UU-a*h*i*jS.[+j+kS/f-b-cQ0X.]R0t/gT+e(T+g[%e!_$b'c+a.R0QR,d)Qb$ov(T+[+]+`+g.P.Q0PR+T'{S+e(T+gT,j)W,kR0W.XT1[0V1]0w|PVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X,_-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[R2Y2X|tPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aW$`t'i+],gS'i$h*sS+](T+gT,g)W,kQ'_$^R*a'_Q*t'oR-m*tQ/p-oS0{/p0|R0|/qQ-}+XR/|-}Q+g(TR.Y+gS+`(T+gS,h)W,kQ.Q+]W.T+`,h.Q/OR/O,gQ)R%eR,e)RQ'|$oR+U'|Q1]0VR1w1]Q${{R(^${Q+t(aR.c+tQ+w(bR.g+wQ+}(cQ,P(dT.m+},PQ(|%`S,a(|7tR7t7VQ(y%^R,^(yQ,k)WR/R,kQ)`%oS,q)`/WR/W,rQ,v)dR/^,vT!uV!rj!iPVX!j!r!s!w(`+r.l0`0a1aQ%Q!SQ(a$}W(h%P%S%U0iQ.e+uQ0Z.bR0[.d|ZPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aQ#f[U#m_#s&wQ#wbQ$VkQ$WlQ$XmQ$YnQ$ZoQ$[pQ$sx^$uy2_4b6e8q:m:nQ$vzQ%W!WQ%Y!XQ%[!YW%`!]%R(l,VU%s!g&p-RQ%|!yQ&O!zQ&Q!{S&U!})v^&^#R2a4d6g8t:p:qQ&_#SQ&`#TQ&a#UQ&b#VQ&c#WQ&d#XQ&e#YQ&f#ZQ&g#[Q&h#]Q&i#^Q&j#_Q&k#`Q&l#aQ&m#bQ&u#nQ&v#oS&{#t'OQ'X$RQ'Z$SQ'[$UQ(]$yQ(p%TQ)q%}Q)s&SQ)u&WQ*O&tS*['U4ZQ*^'Y^*_2[3u5v8Z:a=R=SQ+S'zQ+V(OQ,`({Q,c)PQ,y)iQ,{)pQ,})tQ-V*PQ-W*TQ-X*U^-]2]3v5w8[:b=T=UQ-i*oQ-x+PQ.k+zQ.w,XQ/`-QQ/h-dQ/n-kQ/y-zQ0r/cQ0u/iQ0x/mQ1Q/xU1X0V1]9WQ1d0eQ1m0vQ1q1RQ2Z2^Q2qjQ2r3yQ2x3zQ2y3|Q2z4OQ2{4QQ2|4SQ2}4UQ3O2`Q3Q2bQ3R2cQ3S2dQ3T2eQ3U2fQ3V2gQ3W2hQ3X2iQ3Y2jQ3Z2kQ3[2lQ3]2mQ3^2nQ3_2oQ3`2pQ3a2sQ3b2tQ3c2uQ3e2vQ3f2wQ3i3PQ3j3dQ3l3gQ3m3hQ3n3kQ3q3oQ3r3pQ3t3sQ4Y4WQ4y3{Q4z3}Q4{4PQ4|4RQ4}4TQ5O4VQ5P4cQ5R4eQ5S4fQ5T4gQ5U4hQ5V4iQ5W4jQ5X4kQ5Y4lQ5Z4mQ5[4nQ5]4oQ5^4pQ5_4qQ5`4rQ5a4sQ5b4tQ5c4uQ5d4vQ5f4wQ5g4xQ5j5QQ5k5eQ5m5hQ5n5iQ5o5lQ5r5pQ5s5qQ5u5tQ6Q4aQ6R3xQ6V6TQ6}6^Q7O6_Q7P6`Q7Q6aQ7R6bQ7S6cQ7T6dQ7U6fU7V,T.t0dQ7W%cQ7Y6hQ7Z6iQ7[6jQ7]6kQ7^6lQ7_6mQ7`6nQ7a6oQ7b6pQ7c6qQ7d6rQ7e6sQ7f6tQ7g6uQ7h6vQ7j6xQ7k6yQ7n6zQ7p6{Q7q6|Q7x7XQ7y7iQ7{7oQ7}7rQ8O7sQ8P7uQ8Q7wQ8R7zQ8S7|Q8V8TQ8W8UQ8Y8XQ8]8fU9U#k&s7lQ9^8jQ9_8kQ9`8lQ9a8mQ9b8nQ9c8oQ9e8pQ9f8rQ9g8sQ9i8uQ9j8vQ9k8wQ9l8xQ9m8yQ9n8zQ9o8{Q9p8|Q9q8}Q9r9OQ9s9PQ9t9QQ9u9RQ9v9SQ9w9TQ9x9ZQ9z9[Q9{9]Q:P9hQ:Q9yQ:T9}Q:V:OQ:W:RQ:[:YQ:^:ZQ:`:_Q:c8iQ;j:dQ;k:eQ;l:fQ;m:gQ;n:hQ;o:iQ;p:jQ;q:kQ;r:lQ;s:oQ;v:rQ;w:sQ;x:tQ;y:uQ;z:vQ;{:wQ;|:xQ;}:yQOQ=h>PQ=j>QQ=u>XQ=v>YQ=w>ZR=x>[0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[S$]r'^Q%k!eS%o!f%rQ)b%pU+X(R(S+dQ,p)_Q,t)cQ/Z,uQ/{-|R0p/[|vPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1a#U#i[bklmnopxyz!W!X!Y!{#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b$R$S$U$y%}&S'Y(O)p+P-z/x0e1R2[2]6x6yd+^(T)W+]+`+g,g,h,k.Q/O!t6w'U2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3z3|4O4Q4S4U5v5w!x;b3u3v3x3y3{3}4P4R4T4V4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t$O=z_j!]!g#k#n#o#s#t%R%T&p&s&t&w'O'z(l({)P)i*P*U,V,X-R6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6z6{6|7X7l7o7r7w7|8T8U8X8Z8[8f8g8h8i#|>]!y!z!}%c&W)t)v*T*o,T-d-k.t/c/i/m0d0v4W6T7i7s7u7z8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9Z9[9]9h9y9}:O:R:Y:Z:_:a:b;c;d=Z=m=n!v>^+z-Q9V9X:d:e:f:g:h:j:k:m:o:p:r:t:v:x:z:|;O;Q;S;U;W;Y;[;^;`;e;g;i;t_0V1]9W:i:l:n:q:s:u:w:y:{:};P;R;T;V;X;Z;];_;a;f;h;u AssignmentExpression ArrayExpression ValueList & VariadicUnpacking ... Pair [ ] ListExpression ValueList Pair Pair SubscriptExpression MemberExpression -> ?-> VariableName DynamicVariable $ ${ CallExpression ArgList NamedArgument SpreadArgument CastExpression UnionType LogicOp OptionalType NamedType QualifiedName \\ NamespaceName ScopedExpression :: ClassMemberName AssignOp UpdateExpression UpdateOp YieldExpression BinaryExpression LogicOp LogicOp LogicOp BitOp BitOp BitOp CompareOp CompareOp BitOp ArithOp ConcatOp ArithOp ArithOp IncludeExpression RequireExpression CloneExpression UnaryExpression ControlOp LogicOp PrintIntrinsic FunctionExpression static ParamList Parameter #[ Attributes Attribute VariadicParameter PropertyParameter UseList ArrowFunction NewExpression class BaseClause ClassInterfaceClause DeclarationList ConstDeclaration VariableDeclarator PropertyDeclaration VariableDeclarator MethodDeclaration UseDeclaration UseList UseInsteadOfClause UseAsClause UpdateExpression ArithOp ShellExpression ThrowExpression Integer Float String MemberExpression SubscriptExpression UnaryExpression ArithOp Interpolation String IfStatement ColonBlock SwitchStatement Block CaseStatement DefaultStatement ColonBlock WhileStatement EmptyStatement DoStatement ForStatement ForSpec SequenceExpression ForeachStatement ForSpec Pair GotoStatement ContinueStatement BreakStatement ReturnStatement TryStatement CatchDeclarator DeclareStatement EchoStatement UnsetStatement ConstDeclaration FunctionDefinition ClassDeclaration InterfaceDeclaration TraitDeclaration EnumDeclaration EnumBody EnumCase NamespaceDefinition NamespaceUseDeclaration UseGroup UseClause UseClause GlobalDeclaration FunctionStaticDeclaration Program",maxTerm:304,nodeProps:[["group",-36,2,8,49,81,83,85,88,93,94,102,106,107,110,111,114,118,123,126,130,132,133,147,148,149,150,153,154,164,165,179,181,182,183,184,185,191,"Expression",-28,74,78,80,82,192,194,199,201,202,205,208,209,210,211,212,214,215,216,217,218,219,220,221,222,225,226,230,231,"Statement",-3,119,121,122,"Type"],["openedBy",69,"phpOpen",76,"{",86,"(",101,"#["],["closedBy",71,"phpClose",77,"}",87,")",158,"]"]],propSources:[YO],skippedNodes:[0],repeatNodeCount:29,tokenData:"!F|_R!]OX$zXY&^YZ'sZ]$z]^&^^p$zpq&^qr)Rrs+Pst+otu2buv5evw6rwx8Vxy>]yz>yz{?g{|@}|}Bb}!OCO!O!PDh!P!QKT!Q!R!!o!R![!$q![!]!,P!]!^!-a!^!_!-}!_!`!1S!`!a!2d!a!b!3t!b!c!7^!c!d!7z!d!e!9W!e!}!7z!}#O!;^#O#P!;z#P#Q!V<%lO8VR9WV&wP%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ9rV%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ:^O%VQQ:aRO;'S9m;'S;=`:j;=`O9mQ:oW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l9m<%lO9mQ;[P;=`<%l9mR;fV&wP%VQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRV<%l~8V~O8V~~%fR=OW&wPOY8VYZ9PZ!^8V!^!_;{!_;'S8V;'S;=`=h;=`<%l9m<%lO8VR=mW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l8V<%lO9mR>YP;=`<%l8VR>dV!yQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV?QV!xU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR?nY&wP$VQOY$zYZ%fZz$zz{@^{!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR@eW$WQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRAUY$TQ&wPOY$zYZ%fZ{$z{|At|!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRA{V$zQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRBiV!}Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_CXZ$TQ%TW&wPOY$zYZ%fZ}$z}!OAt!O!^$z!^!_%k!_!`6U!`!aCz!a;'S$z;'S;=`&W<%lO$zVDRV#`U&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVDo[&wP$UQOY$zYZ%fZ!O$z!O!PEe!P!Q$z!Q![Fs![!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVEjX&wPOY$zYZ%fZ!O$z!O!PFV!P!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVF^V#UU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRFz_&wP%OQOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#SJc#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zRHO]&wPOY$zYZ%fZ{$z{|Hw|}$z}!OHw!O!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRH|X&wPOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRIpZ&wP%OQOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_#R$z#R#SHw#S;'S$z;'S;=`&W<%lO$zRJhX&wPOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVK[[&wP$VQOY$zYZ%fZz$zz{LQ{!P$z!P!Q,o!Q!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVLVX&wPOYLQYZLrZzLQz{N_{!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQVLwT&wPOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMZTOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMmVOzMWz{Mj{!PMW!P!QNS!Q;'SMW;'S;=`NX<%lOMWUNXO!eUUN[P;=`<%lMWVNdZ&wPOYLQYZLrZzLQz{N_{!PLQ!P!Q! V!Q!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQV! ^V!eU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV! vZOYLQYZLrZzLQz{N_{!aLQ!a!bMW!b;'SLQ;'S;=`!!i<%l~LQ~OLQ~~%fV!!lP;=`<%lLQZ!!vm&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!d$z!d!e!&o!e!g$z!g!hGy!h!q$z!q!r!(a!r!z$z!z!{!){!{#R$z#R#S!%}#S#U$z#U#V!&o#V#X$z#X#YGy#Y#c$z#c#d!(a#d#l$z#l#m!){#m;'S$z;'S;=`&W<%lO$zZ!$xa&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#S!%}#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zZ!&SX&wPOY$zYZ%fZ!Q$z!Q![!$q![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!&tY&wPOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!'k[&wP$}YOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_#R$z#R#S!&o#S;'S$z;'S;=`&W<%lO$zZ!(fX&wPOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!)YZ&wP$}YOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_#R$z#R#S!(a#S;'S$z;'S;=`&W<%lO$zZ!*Q]&wPOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zZ!+Q_&wP$}YOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#R$z#R#S!){#S#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zR!,WX!qQ&wPOY$zYZ%fZ![$z![!]!,s!]!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!,zV#sQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!-hV!mU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!.S[$RQOY$zYZ%fZ!^$z!^!_!.x!_!`!/i!`!a*c!a!b!0]!b;'S$z;'S;=`&W<%l~$z~O$z~~%fR!/PW$SQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!/pX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a*c!a;'S$z;'S;=`&W<%lO$zP!0bR!iP!_!`!0k!r!s!0p#d#e!0pP!0pO!iPP!0sQ!j!k!0y#[#]!0yP!0|Q!r!s!0k#d#e!0kV!1ZX#uQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`!a!1v!a;'S$z;'S;=`&W<%lO$zV!1}V#OU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!2kX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`!3W!`!a!.x!a;'S$z;'S;=`&W<%lO$zR!3_V$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!3{[!vQ&wPOY$zYZ%fZ}$z}!O!4q!O!^$z!^!_%k!_!`$z!`!a!6P!a!b!6m!b;'S$z;'S;=`&W<%lO$zV!4vX&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a!5c!a;'S$z;'S;=`&W<%lO$zV!5jV#aU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!6WV!gU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!6tW#zQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!7eV$]Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!8Ra&wP!s^OY$zYZ%fZ!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$z_!9_e&wP!s^OY$zYZ%fZr$zrs!:psw$zwx8Vx!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$zR!:wV&wP'gQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!;eV#WU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!mZ!^!=u!^!_!@u!_#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%lO!=uR!>rV&wPO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?[VO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?tRO;'S!?X;'S;=`!?};=`O!?XQ!@QWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!?X<%lO!?XQ!@oO${QQ!@rP;=`<%l!?XR!@x]OY!=uYZ!>mZ!a!=u!a!b!?X!b#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%l~!=u~O!=u~~%fR!AvW&wPOY!=uYZ!>mZ!^!=u!^!_!@u!_;'S!=u;'S;=`!B`;=`<%l!?X<%lO!=uR!BcWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!=u<%lO!?XR!CSV${Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!ClP;=`<%l!=uV!CvV!oU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!DfY#}Q#lS&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`#p$z#p#q!EU#q;'S$z;'S;=`&W<%lO$zR!E]V#{Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!EyV!nQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!FgV$^Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z",tokenizers:[bO,cO,pO,0,1,2,3,mO],topRules:{Template:[0,72],Program:[1,232]},dynamicPrecedences:{284:1},specialized:[{term:81,get:(O,$)=>xO(O)<<1,external:xO},{term:81,get:O=>ZO[O]||-1}],tokenPrec:29354});var wO=Q(66575);var jO=Q(91962);var gO=Q(4452);const _O=gO.LRLanguage.define({name:"php",parser:hO.configure({props:[gO.indentNodeProp.add({IfStatement:(0,gO.continuedIndent)({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:(0,gO.continuedIndent)({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:O=>{let $=O.textAfter,Q=/^\s*\}/.test($),i=/^\s*(case|default)\b/.test($);return O.baseIndent+(Q?0:i?1:2)*O.unit},ColonBlock:O=>O.baseIndent+O.unit,"Block EnumBody DeclarationList":(0,gO.delimitedIndent)({closing:"}"}),ArrowFunction:O=>O.baseIndent+O.unit,"String BlockComment":()=>null,Statement:(0,gO.continuedIndent)({except:/^({|end(for|foreach|switch|while)\b)/})}),gO.foldNodeProp.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":gO.foldInside,ColonBlock(O){return{from:O.from+1,to:O.to}},BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});function GO(O={}){let $=[],Q;if(O.baseLanguage===null);else if(O.baseLanguage){Q=O.baseLanguage}else{let O=(0,jO.html)({matchClosingTags:false});$.push(O.support);Q=O.language}return new gO.LanguageSupport(_O.configure({wrap:Q&&(0,wO.parseMixed)((O=>{if(!O.type.isTop)return null;return{parser:Q.parser,overlay:O=>O.name=="Text"}})),top:O.plain?"Program":"Template"}),$)}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5987.7e967df5417044d337a4.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5987.7e967df5417044d337a4.js deleted file mode 100644 index 5dfe1591e06605c5fca8f29cd9d6fe03f90865b4..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5987.7e967df5417044d337a4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[5987],{8368:(e,t,n)=>{n.r(t);n.d(t,{smalltalk:()=>h});var a=/[+\-\/\\*~<>=@%|&?!.,:;^]/;var i=/true|false|nil|self|super|thisContext/;var r=function(e,t){this.next=e;this.parent=t};var s=function(e,t,n){this.name=e;this.context=t;this.eos=n};var l=function(){this.context=new r(o,null);this.expectVariable=true;this.indentation=0;this.userIndentationDelta=0};l.prototype.userIndent=function(e,t){this.userIndentationDelta=e>0?e/t-this.indentation:0};var o=function(e,t,n){var l=new s(null,t,false);var o=e.next();if(o==='"'){l=u(e,new r(u,t))}else if(o==="'"){l=c(e,new r(c,t))}else if(o==="#"){if(e.peek()==="'"){e.next();l=f(e,new r(f,t))}else{if(e.eatWhile(/[^\s.{}\[\]()]/))l.name="string.special";else l.name="meta"}}else if(o==="$"){if(e.next()==="<"){e.eatWhile(/[^\s>]/);e.next()}l.name="string.special"}else if(o==="|"&&n.expectVariable){l.context=new r(p,t)}else if(/[\[\]{}()]/.test(o)){l.name="bracket";l.eos=/[\[{(]/.test(o);if(o==="["){n.indentation++}else if(o==="]"){n.indentation=Math.max(0,n.indentation-1)}}else if(a.test(o)){e.eatWhile(a);l.name="operator";l.eos=o!==";"}else if(/\d/.test(o)){e.eatWhile(/[\w\d]/);l.name="number"}else if(/[\w_]/.test(o)){e.eatWhile(/[\w\d_]/);l.name=n.expectVariable?i.test(e.current())?"keyword":"variable":null}else{l.eos=n.expectVariable}return l};var u=function(e,t){e.eatWhile(/[^"]/);return new s("comment",e.eat('"')?t.parent:t,true)};var c=function(e,t){e.eatWhile(/[^']/);return new s("string",e.eat("'")?t.parent:t,false)};var f=function(e,t){e.eatWhile(/[^']/);return new s("string.special",e.eat("'")?t.parent:t,false)};var p=function(e,t){var n=new s(null,t,false);var a=e.next();if(a==="|"){n.context=t.parent;n.eos=true}else{e.eatWhile(/[^|]/);n.name="variable"}return n};const h={name:"smalltalk",startState:function(){return new l},token:function(e,t){t.userIndent(e.indentation(),e.indentUnit);if(e.eatSpace()){return null}var n=t.context.next(e,t.context,t);t.context=n.context;t.expectVariable=n.eos;return n.name},blankLine:function(e,t){e.userIndent(0,t)},indent:function(e,t,n){var a=e.context.next===o&&t&&t.charAt(0)==="]"?-1:e.userIndentationDelta;return(e.indentation+a)*n.unit},languageData:{indentOnInput:/^\s*\]$/}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5cda41563a095bd70c78.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5cda41563a095bd70c78.woff deleted file mode 100644 index 8278e3f13e9fea2838452591775c14c7990790dc..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/5cda41563a095bd70c78.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6003.94cdab770c801f3c46f7.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6003.94cdab770c801f3c46f7.js deleted file mode 100644 index 9cd9b466fc6843ff0ad6325dd20da670531b79b6..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6003.94cdab770c801f3c46f7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6003],{56003:(t,e,n)=>{n.r(e);n.d(e,{Annotation:()=>xt,AnnotationType:()=>vt,ChangeDesc:()=>N,ChangeSet:()=>D,CharCategory:()=>Ot,Compartment:()=>rt,EditorSelection:()=>V,EditorState:()=>Dt,Facet:()=>G,Line:()=>P,MapMode:()=>B,Prec:()=>it,Range:()=>jt,RangeSet:()=>_t,RangeSetBuilder:()=>Vt,RangeValue:()=>Lt,SelectionRange:()=>z,StateEffect:()=>yt,StateEffectType:()=>kt,StateField:()=>tt,Text:()=>m,Transaction:()=>St,codePointAt:()=>R,codePointSize:()=>T,combineConfig:()=>Jt,countColumn:()=>ee,findClusterBreak:()=>M,findColumn:()=>ne,fromCodePoint:()=>O});let i=[],s=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((t=>t?parseInt(t,36):1));for(let e=0,n=0;e>1;if(t=s[r])e=r+1;else return true;if(e==n)return false}}function l(t){return t>=127462&&t<=127487}function h(t){for(let e=0;et)return i[e]<=t}return false}const o=8205;function a(t,e,n=true,i=true){return(n?f:c)(t,e,i)}function f(t,e,n){if(e==t.length)return e;if(e&&d(t.charCodeAt(e))&&g(t.charCodeAt(e-1)))e--;let i=u(t,e);e+=p(i);while(e=0&&l(u(t,i))){n++;i-=2}if(n%2==0)break;else e+=2}else{break}}return e}function c(t,e,n){while(e>0){let i=f(t,e-2,n);if(i=56320&&t<57344}function g(t){return t>=55296&&t<56320}function p(t){return t<65536?1:2}class m{lineAt(t){if(t<0||t>this.length)throw new RangeError(`Invalid position ${t} in document of length ${this.length}`);return this.lineInner(t,false,1,0)}line(t){if(t<1||t>this.lines)throw new RangeError(`Invalid line number ${t} in ${this.lines}-line document`);return this.lineInner(t,true,1,0)}replace(t,e,n){[t,e]=E(this,t,e);let i=[];this.decompose(0,t,i,2);if(n.length)n.decompose(0,n.length,i,1|2);this.decompose(e,this.length,i,1);return x.from(i,this.length-(e-t)+n.length)}append(t){return this.replace(this.length,this.length,t)}slice(t,e=this.length){[t,e]=E(this,t,e);let n=[];this.decompose(t,e,n,0);return x.from(n,e-t)}eq(t){if(t==this)return true;if(t.length!=this.length||t.lines!=this.lines)return false;let e=this.scanIdentical(t,1),n=this.length-this.scanIdentical(t,-1);let i=new S(this),s=new S(t);for(let r=e,l=e;;){i.next(r);s.next(r);r=0;if(i.lineBreak!=s.lineBreak||i.done!=s.done||i.value!=s.value)return false;l+=i.value.length;if(i.done||l>=n)return true}}iter(t=1){return new S(this,t)}iterRange(t,e=this.length){return new b(this,t,e)}iterLines(t,e){let n;if(t==null){n=this.iter()}else{if(e==null)e=this.lines+1;let i=this.line(t).from;n=this.iterRange(i,Math.max(i,e==this.lines+1?this.length:e<=1?0:this.line(e-1).to))}return new I(n)}toString(){return this.sliceString(0)}toJSON(){let t=[];this.flatten(t);return t}constructor(){}static of(t){if(t.length==0)throw new RangeError("A document must have at least one line");if(t.length==1&&!t[0])return m.empty;return t.length<=32?new w(t):x.from(w.split(t,[]))}}class w extends m{constructor(t,e=v(t)){super();this.text=t;this.length=e}get lines(){return this.text.length}get children(){return null}lineInner(t,e,n,i){for(let s=0;;s++){let r=this.text[s],l=i+r.length;if((e?n:l)>=t)return new P(i,l,n,r);i=l+1;n++}}decompose(t,e,n,i){let s=t<=0&&e>=this.length?this:new w(y(this.text,t,e),Math.min(e,this.length)-Math.max(0,t));if(i&1){let t=n.pop();let e=k(s.text,t.text.slice(),0,s.length);if(e.length<=32){n.push(new w(e,t.length+s.length))}else{let t=e.length>>1;n.push(new w(e.slice(0,t)),new w(e.slice(t)))}}else{n.push(s)}}replace(t,e,n){if(!(n instanceof w))return super.replace(t,e,n);[t,e]=E(this,t,e);let i=k(this.text,k(n.text,y(this.text,0,t)),e);let s=this.length+n.length-(e-t);if(i.length<=32)return new w(i,s);return x.from(w.split(i,[]),s)}sliceString(t,e=this.length,n="\n"){[t,e]=E(this,t,e);let i="";for(let s=0,r=0;s<=e&&rt&&r)i+=n;if(ts)i+=l.slice(Math.max(0,t-s),e-s);s=h+1}return i}flatten(t){for(let e of this.text)t.push(e)}scanIdentical(){return 0}static split(t,e){let n=[],i=-1;for(let s of t){n.push(s);i+=s.length+1;if(n.length==32){e.push(new w(n,i));n=[];i=-1}}if(i>-1)e.push(new w(n,i));return e}}class x extends m{constructor(t,e){super();this.children=t;this.length=e;this.lines=0;for(let n of t)this.lines+=n.lines}lineInner(t,e,n,i){for(let s=0;;s++){let r=this.children[s],l=i+r.length,h=n+r.lines-1;if((e?h:l)>=t)return r.lineInner(t,e,n,i);i=l+1;n=h+1}}decompose(t,e,n,i){for(let s=0,r=0;r<=e&&s=r){let s=i&((r<=t?1:0)|(h>=e?2:0));if(r>=t&&h<=e&&!s)n.push(l);else l.decompose(t-r,e-r,n,s)}r=h+1}}replace(t,e,n){[t,e]=E(this,t,e);if(n.lines=s&&e<=l){let h=r.replace(t-s,e-s,n);let o=this.lines-r.lines+h.lines;if(h.lines>5-1&&h.lines>o>>5+1){let s=this.children.slice();s[i]=h;return new x(s,this.length-(e-t)+n.length)}return super.replace(s,l,h)}s=l+1}return super.replace(t,e,n)}sliceString(t,e=this.length,n="\n"){[t,e]=E(this,t,e);let i="";for(let s=0,r=0;st&&s)i+=n;if(tr)i+=l.sliceString(t-r,e-r,n);r=h+1}return i}flatten(t){for(let e of this.children)e.flatten(t)}scanIdentical(t,e){if(!(t instanceof x))return 0;let n=0;let[i,s,r,l]=e>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;i+=e,s+=e){if(i==r||s==l)return n;let h=this.children[i],o=t.children[s];if(h!=o)return n+h.scanIdentical(o,e);n+=h.length+1}}static from(t,e=t.reduce(((t,e)=>t+e.length+1),-1)){let n=0;for(let u of t)n+=u.lines;if(n<32){let n=[];for(let e of t)e.flatten(n);return new w(n,e)}let i=Math.max(32,n>>5),s=i<<1,r=i>>1;let l=[],h=0,o=-1,a=[];function f(t){let e;if(t.lines>s&&t instanceof x){for(let e of t.children)f(e)}else if(t.lines>r&&(h>r||!h)){c();l.push(t)}else if(t instanceof w&&h&&(e=a[a.length-1])instanceof w&&t.lines+e.lines<=32){h+=t.lines;o+=t.length+1;a[a.length-1]=new w(e.text.concat(t.text),e.length+1+t.length)}else{if(h+t.lines>i)c();h+=t.lines;o+=t.length+1;a.push(t)}}function c(){if(h==0)return;l.push(a.length==1?a[0]:x.from(a,o));o=-1;h=a.length=0}for(let u of t)f(u);c();return l.length==1?l[0]:new x(l,e)}}m.empty=new w([""],0);function v(t){let e=-1;for(let n of t)e+=n.length+1;return e}function k(t,e,n=0,i=1e9){for(let s=0,r=0,l=true;r=n){if(o>i)h=h.slice(0,i-s);if(s0?1:(t instanceof w?t.text.length:t.children.length)<<1]}nextInner(t,e){this.done=this.lineBreak=false;for(;;){let n=this.nodes.length-1;let i=this.nodes[n],s=this.offsets[n],r=s>>1;let l=i instanceof w?i.text.length:i.children.length;if(r==(e>0?l:0)){if(n==0){this.done=true;this.value="";return this}if(e>0)this.offsets[n-1]++;this.nodes.pop();this.offsets.pop()}else if((s&1)==(e>0?0:1)){this.offsets[n]+=e;if(t==0){this.lineBreak=true;this.value="\n";return this}t--}else if(i instanceof w){let s=i.text[r+(e<0?-1:0)];this.offsets[n]+=e;if(s.length>Math.max(0,t)){this.value=t==0?s:e>0?s.slice(t):s.slice(0,s.length-t);return this}t-=s.length}else{let s=i.children[r+(e<0?-1:0)];if(t>s.length){t-=s.length;this.offsets[n]+=e}else{if(e<0)this.offsets[n]--;this.nodes.push(s);this.offsets.push(e>0?1:(s instanceof w?s.text.length:s.children.length)<<1)}}}}next(t=0){if(t<0){this.nextInner(-t,-this.dir);t=this.value.length}return this.nextInner(t,this.dir)}}class b{constructor(t,e,n){this.value="";this.done=false;this.cursor=new S(t,e>n?-1:1);this.pos=e>n?t.length:0;this.from=Math.min(e,n);this.to=Math.max(e,n)}nextInner(t,e){if(e<0?this.pos<=this.from:this.pos>=this.to){this.value="";this.done=true;return this}t+=Math.max(0,e<0?this.pos-this.to:this.from-this.pos);let n=e<0?this.pos-this.from:this.to-this.pos;if(t>n)t=n;n-=t;let{value:i}=this.cursor.next(t);this.pos+=(i.length+t)*e;this.value=i.length<=n?i:e<0?i.slice(i.length-n):i.slice(0,n);this.done=!this.value;return this}next(t=0){if(t<0)t=Math.max(t,this.from-this.pos);else if(t>0)t=Math.min(t,this.to-this.pos);return this.nextInner(t,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class I{constructor(t){this.inner=t;this.afterBreak=true;this.value="";this.done=false}next(t=0){let{done:e,lineBreak:n,value:i}=this.inner.next(t);if(e&&this.afterBreak){this.value="";this.afterBreak=false}else if(e){this.done=true;this.value=""}else if(n){if(this.afterBreak){this.value=""}else{this.afterBreak=true;this.next()}}else{this.value=i;this.afterBreak=false}return this}get lineBreak(){return false}}if(typeof Symbol!="undefined"){m.prototype[Symbol.iterator]=function(){return this.iter()};S.prototype[Symbol.iterator]=b.prototype[Symbol.iterator]=I.prototype[Symbol.iterator]=function(){return this}}class P{constructor(t,e,n,i){this.from=t;this.to=e;this.number=n;this.text=i}get length(){return this.to-this.from}}function E(t,e,n){e=Math.max(0,Math.min(t.length,e));return[e,Math.max(e,Math.min(t.length,n))]}function M(t,e,n=true,i=true){return a(t,e,n,i)}function A(t){return t>=56320&&t<57344}function C(t){return t>=55296&&t<56320}function R(t,e){let n=t.charCodeAt(e);if(!C(n)||e+1==t.length)return n;let i=t.charCodeAt(e+1);if(!A(i))return n;return(n-55296<<10)+(i-56320)+65536}function O(t){if(t<=65535)return String.fromCharCode(t);t-=65536;return String.fromCharCode((t>>10)+55296,(t&1023)+56320)}function T(t){return t<65536?1:2}const F=/\r\n?|\n/;var B=function(t){t[t["Simple"]=0]="Simple";t[t["TrackDel"]=1]="TrackDel";t[t["TrackBefore"]=2]="TrackBefore";t[t["TrackAfter"]=3]="TrackAfter";return t}(B||(B={}));class N{constructor(t){this.sections=t}get length(){let t=0;for(let e=0;et)return s+(t-i);s+=l}else{if(n!=B.Simple&&o>=t&&(n==B.TrackDel&&it||n==B.TrackBefore&&it))return null;if(o>t||o==t&&e<0&&!l)return t==i||e<0?s:s+h;s+=h}i=o}if(t>i)throw new RangeError(`Position ${t} is out of range for changeset of length ${i}`);return s}touchesRange(t,e=t){for(let n=0,i=0;n=0&&i<=e&&l>=t)return ie?"cover":true;i=l}return false}toString(){let t="";for(let e=0;e=0?":"+i:"")}return t}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some((t=>typeof t!="number")))throw new RangeError("Invalid JSON representation of ChangeDesc");return new N(t)}static create(t){return new N(t)}}class D extends N{constructor(t,e){super(t);this.inserted=e}apply(t){if(this.length!=t.length)throw new RangeError("Applying change set to a document with the wrong length");j(this,((e,n,i,s,r)=>t=t.replace(i,i+(n-e),r)),false);return t}mapDesc(t,e=false){return q(this,t,e,true)}invert(t){let e=this.sections.slice(),n=[];for(let i=0,s=0;i=0){e[i]=l;e[i+1]=r;let h=i>>1;while(n.length0)L(n,e,s.text);s.forward(t);l+=t}let o=t[r++];while(l>1].toJSON()))}return t}static of(t,e,n){let i=[],s=[],r=0;let l=null;function h(t=false){if(!t&&!i.length)return;if(ro||l<0||o>e)throw new RangeError(`Invalid change range ${l} to ${o} (in doc of length ${e})`);let f=!a?m.empty:typeof a=="string"?m.of(a.split(n||F)):a;let c=f.length;if(l==o&&c==0)return;if(lr)J(i,l-r,-1);J(i,o-l,c);L(s,i,f);r=o}}o(t);h(!l);return l}static empty(t){return new D(t?[t,-1]:[],[])}static fromJSON(t){if(!Array.isArray(t))throw new RangeError("Invalid JSON representation of ChangeSet");let e=[],n=[];for(let i=0;ie&&typeof t!="string"))){throw new RangeError("Invalid JSON representation of ChangeSet")}else if(s.length==1){e.push(s[0],0)}else{while(n.length=0&&n<=0&&n==t[s+1])t[s]+=e;else if(s>=0&&e==0&&t[s]==0)t[s+1]+=n;else if(i){t[s]+=e;t[s+1]+=n}else t.push(e,n)}function L(t,e,n){if(n.length==0)return;let i=e.length-2>>1;if(i>1]);if(n||l==t.sections.length||t.sections[l+1]<0)break;h=t.sections[l++];o=t.sections[l++]}e(s,a,r,f,c);s=a;r=f}}}function q(t,e,n,i=false){let s=[],r=i?[]:null;let l=new _(t),h=new _(e);for(let o=-1;;){if(l.done&&h.len||h.done&&l.len){throw new Error("Mismatched change set lengths")}else if(l.ins==-1&&h.ins==-1){let t=Math.min(l.len,h.len);J(s,t,-1);l.forward(t);h.forward(t)}else if(h.ins>=0&&(l.ins<0||o==l.i||l.off==0&&(h.len=0&&o=0){let t=0,e=l.len;while(e){if(h.ins==-1){let n=Math.min(e,h.len);t+=n;e-=n;h.forward(n)}else if(h.ins==0&&h.lent||l.ins>=0&&l.len>t)&&(h||i.length>e);r.forward2(t);l.forward(t)}}}class _{constructor(t){this.set=t;this.i=0;this.next()}next(){let{sections:t}=this.set;if(this.i>1;return e>=t.length?m.empty:t[e]}textBit(t){let{inserted:e}=this.set,n=this.i-2>>1;return n>=e.length&&!t?m.empty:e[n].slice(this.off,t==null?undefined:this.off+t)}forward(t){if(t==this.len)this.next();else{this.len-=t;this.off+=t}}forward2(t){if(this.ins==-1)this.forward(t);else if(t==this.ins)this.next();else{this.ins-=t;this.off+=t}}}class z{constructor(t,e,n){this.from=t;this.to=e;this.flags=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let t=this.flags&7;return t==7?null:t}get goalColumn(){let t=this.flags>>6;return t==16777215?undefined:t}map(t,e=-1){let n,i;if(this.empty){n=i=t.mapPos(this.from,e)}else{n=t.mapPos(this.from,1);i=t.mapPos(this.to,-1)}return n==this.from&&i==this.to?this:new z(n,i,this.flags)}extend(t,e=t){if(t<=this.anchor&&e>=this.anchor)return V.range(t,e);let n=Math.abs(t-this.anchor)>Math.abs(e-this.anchor)?t:e;return V.range(this.anchor,n)}eq(t,e=false){return this.anchor==t.anchor&&this.head==t.head&&(!e||!this.empty||this.assoc==t.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(t){if(!t||typeof t.anchor!="number"||typeof t.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return V.range(t.anchor,t.head)}static create(t,e,n){return new z(t,e,n)}}class V{constructor(t,e){this.ranges=t;this.mainIndex=e}map(t,e=-1){if(t.empty)return this;return V.create(this.ranges.map((n=>n.map(t,e))),this.mainIndex)}eq(t,e=false){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return false;for(let n=0;nt.toJSON())),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||typeof t.main!="number"||t.main>=t.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new V(t.ranges.map((t=>z.fromJSON(t))),t.main)}static single(t,e=t){return new V([V.range(t,e)],0)}static create(t,e=0){if(t.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,i=0;it?8:0)|s)}static normalized(t,e=0){let n=t[e];t.sort(((t,e)=>t.from-e.from));e=t.indexOf(n);for(let i=1;in.head?V.range(l,r):V.range(r,l))}}return new V(t,e)}}function W(t,e){for(let n of t.ranges)if(n.to>e)throw new RangeError("Selection points outside of document")}let U=0;class G{constructor(t,e,n,i,s){this.combine=t;this.compareInput=e;this.compare=n;this.isStatic=i;this.id=U++;this.default=t([]);this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(t={}){return new G(t.combine||(t=>t),t.compareInput||((t,e)=>t===e),t.compare||(!t.combine?H:(t,e)=>t===e),!!t.static,t.enables)}of(t){return new K([],this,0,t)}compute(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new K(t,this,1,e)}computeN(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new K(t,this,2,e)}from(t,e){if(!e)e=t=>t;return this.compute([t],(n=>e(n.field(t))))}}function H(t,e){return t==e||t.length==e.length&&t.every(((t,n)=>t===e[n]))}class K{constructor(t,e,n,i){this.dependencies=t;this.facet=e;this.type=n;this.value=i;this.id=U++}dynamicSlot(t){var e;let n=this.value;let i=this.facet.compareInput;let s=this.id,r=t[s]>>1,l=this.type==2;let h=false,o=false,a=[];for(let f of this.dependencies){if(f=="doc")h=true;else if(f=="selection")o=true;else if((((e=t[f.id])!==null&&e!==void 0?e:1)&1)==0)a.push(t[f.id])}return{create(t){t.values[r]=n(t);return 1},update(t,e){if(h&&e.docChanged||o&&(e.docChanged||e.selection)||X(t,a)){let e=n(t);if(l?!Q(e,t.values[r],i):!i(e,t.values[r])){t.values[r]=e;return 1}}return 0},reconfigure:(t,e)=>{let h,o=e.config.address[s];if(o!=null){let s=ft(e,o);if(this.dependencies.every((n=>n instanceof G?e.facet(n)===t.facet(n):n instanceof tt?e.field(n,false)==t.field(n,false):true))||(l?Q(h=n(t),s,i):i(h=n(t),s))){t.values[r]=s;return 0}}else{h=n(t)}t.values[r]=h;return 1}}}}function Q(t,e,n){if(t.length!=e.length)return false;for(let i=0;it[e.id]));let s=n.map((t=>t.type));let r=i.filter((t=>!(t&1)));let l=t[e.id]>>1;function h(t){let n=[];for(let e=0;et===e),t);if(t.provide)e.provides=t.provide(e);return e}create(t){let e=t.facet(Z).find((t=>t.field==this));return((e===null||e===void 0?void 0:e.create)||this.createF)(t)}slot(t){let e=t[this.id]>>1;return{create:t=>{t.values[e]=this.create(t);return 1},update:(t,n)=>{let i=t.values[e];let s=this.updateF(i,n);if(this.compareF(i,s))return 0;t.values[e]=s;return 1},reconfigure:(t,n)=>{let i=t.facet(Z),s=n.facet(Z),r;if((r=i.find((t=>t.field==this)))&&r!=s.find((t=>t.field==this))){t.values[e]=r.create(t);return 1}if(n.config.address[this.id]!=null){t.values[e]=n.field(this);return 0}t.values[e]=this.create(t);return 1}}}init(t){return[this,Z.of({field:this,create:t})]}get extension(){return this}}const et={lowest:4,low:3,default:2,high:1,highest:0};function nt(t){return e=>new st(e,t)}const it={highest:nt(et.highest),high:nt(et.high),default:nt(et.default),low:nt(et.low),lowest:nt(et.lowest)};class st{constructor(t,e){this.inner=t;this.prec=e}}class rt{of(t){return new lt(this,t)}reconfigure(t){return rt.reconfigure.of({compartment:this,extension:t})}get(t){return t.config.compartments.get(this)}}class lt{constructor(t,e){this.compartment=t;this.inner=e}}class ht{constructor(t,e,n,i,s,r){this.base=t;this.compartments=e;this.dynamicSlots=n;this.address=i;this.staticValues=s;this.facets=r;this.statusTemplate=[];while(this.statusTemplate.length>1]}static resolve(t,e,n){let i=[];let s=Object.create(null);let r=new Map;for(let c of ot(t,e,r)){if(c instanceof tt)i.push(c);else(s[c.facet.id]||(s[c.facet.id]=[])).push(c)}let l=Object.create(null);let h=[];let o=[];for(let c of i){l[c.id]=o.length<<1;o.push((t=>c.slot(t)))}let a=n===null||n===void 0?void 0:n.config.facets;for(let c in s){let t=s[c],e=t[0].facet;let i=a&&a[c]||[];if(t.every((t=>t.type==0))){l[e.id]=h.length<<1|1;if(H(i,t)){h.push(n.facet(e))}else{let i=e.combine(t.map((t=>t.value)));h.push(n&&e.compare(i,n.facet(e))?n.facet(e):i)}}else{for(let e of t){if(e.type==0){l[e.id]=h.length<<1|1;h.push(e.value)}else{l[e.id]=o.length<<1;o.push((t=>e.dynamicSlot(t)))}}l[e.id]=o.length<<1;o.push((n=>Y(n,e,t)))}}let f=o.map((t=>t(l)));return new ht(t,r,f,l,h,s)}}function ot(t,e,n){let i=[[],[],[],[],[]];let s=new Map;function r(t,l){let h=s.get(t);if(h!=null){if(h<=l)return;let e=i[h].indexOf(t);if(e>-1)i[h].splice(e,1);if(t instanceof lt)n.delete(t.compartment)}s.set(t,l);if(Array.isArray(t)){for(let e of t)r(e,l)}else if(t instanceof lt){if(n.has(t.compartment))throw new RangeError(`Duplicate use of compartment in extensions`);let i=e.get(t.compartment)||t.inner;n.set(t.compartment,i);r(i,l)}else if(t instanceof st){r(t.inner,t.prec)}else if(t instanceof tt){i[l].push(t);if(t.provides)r(t.provides,l)}else if(t instanceof K){i[l].push(t);if(t.facet.extensions)r(t.facet.extensions,et.default)}else{let e=t.extension;if(!e)throw new Error(`Unrecognized extension value in extension set (${t}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(e,l)}}r(t,et.default);return i.reduce(((t,e)=>t.concat(e)))}function at(t,e){if(e&1)return 2;let n=e>>1;let i=t.status[n];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;t.status[n]=4;let s=t.computeSlot(t,t.config.dynamicSlots[n]);return t.status[n]=2|s}function ft(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}const ct=G.define();const ut=G.define({combine:t=>t.some((t=>t)),static:true});const dt=G.define({combine:t=>t.length?t[0]:undefined,static:true});const gt=G.define();const pt=G.define();const mt=G.define();const wt=G.define({combine:t=>t.length?t[0]:false});class xt{constructor(t,e){this.type=t;this.value=e}static define(){return new vt}}class vt{of(t){return new xt(this,t)}}class kt{constructor(t){this.map=t}of(t){return new yt(this,t)}}class yt{constructor(t,e){this.type=t;this.value=e}map(t){let e=this.type.map(this.value,t);return e===undefined?undefined:e==this.value?this:new yt(this.type,e)}is(t){return this.type==t}static define(t={}){return new kt(t.map||(t=>t))}static mapEffects(t,e){if(!t.length)return t;let n=[];for(let i of t){let t=i.map(e);if(t)n.push(t)}return n}}yt.reconfigure=yt.define();yt.appendConfig=yt.define();class St{constructor(t,e,n,i,s,r){this.startState=t;this.changes=e;this.selection=n;this.effects=i;this.annotations=s;this.scrollIntoView=r;this._doc=null;this._state=null;if(n)W(n,e.newLength);if(!s.some((t=>t.type==St.time)))this.annotations=s.concat(St.time.of(Date.now()))}static create(t,e,n,i,s,r){return new St(t,e,n,i,s,r)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){if(!this._state)this.startState.applyTransaction(this);return this._state}annotation(t){for(let e of this.annotations)if(e.type==t)return e.value;return undefined}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let e=this.annotation(St.userEvent);return!!(e&&(e==t||e.length>t.length&&e.slice(0,t.length)==t&&e[t.length]=="."))}}St.time=xt.define();St.userEvent=xt.define();St.addToHistory=xt.define();St.remote=xt.define();function bt(t,e){let n=[];for(let i=0,s=0;;){let r,l;if(i=t[i])){r=t[i++];l=t[i++]}else if(s=0;s--){let n=i[s](t);if(n instanceof St)t=n;else if(Array.isArray(n)&&n.length==1&&n[0]instanceof St)t=n[0];else t=Et(e,Rt(n),false)}return t}function At(t){let e=t.startState,n=e.facet(mt),i=t;for(let s=n.length-1;s>=0;s--){let r=n[s](t);if(r&&Object.keys(r).length)i=It(i,Pt(e,r,t.changes.newLength),true)}return i==t?t:St.create(e,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}const Ct=[];function Rt(t){return t==null?Ct:Array.isArray(t)?t:[t]}var Ot=function(t){t[t["Word"]=0]="Word";t[t["Space"]=1]="Space";t[t["Other"]=2]="Other";return t}(Ot||(Ot={}));const Tt=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Ft;try{Ft=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(ie){}function Bt(t){if(Ft)return Ft.test(t);for(let e=0;e"€"&&(n.toUpperCase()!=n.toLowerCase()||Tt.test(n)))return true}return false}function Nt(t){return e=>{if(!/\S/.test(e))return Ot.Space;if(Bt(e))return Ot.Word;for(let n=0;n-1)return Ot.Word;return Ot.Other}}class Dt{constructor(t,e,n,i,s,r){this.config=t;this.doc=e;this.selection=n;this.values=i;this.status=t.statusTemplate.slice();this.computeSlot=s;if(r)r._state=this;for(let l=0;li.set(e,t)));e=null}i.set(l.value.compartment,l.value.extension)}else if(l.is(yt.reconfigure)){e=null;n=l.value}else if(l.is(yt.appendConfig)){e=null;n=Rt(n).concat(l.value)}}let s;if(!e){e=ht.resolve(n,i,this);let t=new Dt(e,this.doc,this.selection,e.dynamicSlots.map((()=>null)),((t,e)=>e.reconfigure(t,this)),null);s=t.values}else{s=t.startState.values.slice()}let r=t.startState.facet(ut)?t.newSelection:t.newSelection.asSingle();new Dt(e,t.newDoc,r,s,((e,n)=>n.update(e,t)),t)}replaceSelection(t){if(typeof t=="string")t=this.toText(t);return this.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:t},range:V.cursor(e.from+t.length)})))}changeByRange(t){let e=this.selection;let n=t(e.ranges[0]);let i=this.changes(n.changes),s=[n.range];let r=Rt(n.effects);for(let l=1;le.spec.fromJSON(r,t))))}}return Dt.create({doc:t.doc,selection:V.fromJSON(t.selection),extensions:e.extensions?i.concat([e.extensions]):i})}static create(t={}){let e=ht.resolve(t.extensions||[],new Map);let n=t.doc instanceof m?t.doc:m.of((t.doc||"").split(e.staticFacet(Dt.lineSeparator)||F));let i=!t.selection?V.single(0):t.selection instanceof V?t.selection:V.single(t.selection.anchor,t.selection.head);W(i,n.length);if(!e.staticFacet(ut))i=i.asSingle();return new Dt(e,n,i,e.dynamicSlots.map((()=>null)),((t,e)=>e.create(t)),null)}get tabSize(){return this.facet(Dt.tabSize)}get lineBreak(){return this.facet(Dt.lineSeparator)||"\n"}get readOnly(){return this.facet(wt)}phrase(t,...e){for(let n of this.facet(Dt.phrases))if(Object.prototype.hasOwnProperty.call(n,t)){t=n[t];break}if(e.length)t=t.replace(/\$(\$|\d*)/g,((t,n)=>{if(n=="$")return"$";let i=+(n||1);return!i||i>e.length?t:e[i-1]}));return t}languageDataAt(t,e,n=-1){let i=[];for(let s of this.facet(ct)){for(let r of s(this,e,n)){if(Object.prototype.hasOwnProperty.call(r,t))i.push(r[t])}}return i}charCategorizer(t){return Nt(this.languageDataAt("wordChars",t).join(""))}wordAt(t){let{text:e,from:n,length:i}=this.doc.lineAt(t);let s=this.charCategorizer(t);let r=t-n,l=t-n;while(r>0){let t=M(e,r,false);if(s(e.slice(t,r))!=Ot.Word)break;r=t}while(lt.length?t[0]:4});Dt.lineSeparator=dt;Dt.readOnly=wt;Dt.phrases=G.define({compare(t,e){let n=Object.keys(t),i=Object.keys(e);return n.length==i.length&&n.every((n=>t[n]==e[n]))}});Dt.languageData=ct;Dt.changeFilter=gt;Dt.transactionFilter=pt;Dt.transactionExtender=mt;rt.reconfigure=yt.define();function Jt(t,e,n={}){let i={};for(let s of t)for(let t of Object.keys(s)){let e=s[t],r=i[t];if(r===undefined)i[t]=e;else if(r===e||e===undefined);else if(Object.hasOwnProperty.call(n,t))i[t]=n[t](r,e);else throw new Error("Config merge conflict for field "+t)}for(let s in e)if(i[s]===undefined)i[s]=e[s];return i}class Lt{eq(t){return this==t}range(t,e=t){return jt.create(t,e,this)}}Lt.prototype.startSide=Lt.prototype.endSide=0;Lt.prototype.point=false;Lt.prototype.mapMode=B.TrackDel;class jt{constructor(t,e,n){this.from=t;this.to=e;this.value=n}static create(t,e,n){return new jt(t,e,n)}}function qt(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class $t{constructor(t,e,n,i){this.from=t;this.to=e;this.value=n;this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(t,e,n,i=0){let s=n?this.to:this.from;for(let r=i,l=s.length;;){if(r==l)return r;let i=r+l>>1;let h=s[i]-t||(n?this.value[i].endSide:this.value[i].startSide)-e;if(i==r)return h>=0?r:l;if(h>=0)l=i;else r=i+1}}between(t,e,n,i){for(let s=this.findIndex(e,-1e9,true),r=this.findIndex(n,1e9,false,s);su||c==u&&o.startSide>0&&o.endSide<=0)continue}if((u-c||o.endSide-o.startSide)<0)continue;if(r<0)r=c;if(o.point)l=Math.max(l,u-c);n.push(o);i.push(c-r);s.push(u-r)}return{mapped:n.length?new $t(i,s,n,l):null,pos:r}}}class _t{constructor(t,e,n,i){this.chunkPos=t;this.chunk=e;this.nextLayer=n;this.maxPoint=i}static create(t,e,n,i){return new _t(t,e,n,i)}get length(){let t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let t=this.nextLayer.size;for(let e of this.chunk)t+=e.value.length;return t}chunkEnd(t){return this.chunkPos[t]+this.chunk[t].length}update(t){let{add:e=[],sort:n=false,filterFrom:i=0,filterTo:s=this.length}=t;let r=t.filter;if(e.length==0&&!r)return this;if(n)e=e.slice().sort(qt);if(this.isEmpty)return e.length?_t.of(e):this;let l=new Ut(this,null,-1).goto(0),h=0,o=[];let a=new Vt;while(l.value||h=0){let t=e[h++];if(!a.addInner(t.from,t.to,t.value))o.push(t)}else if(l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||sl.to||s=s&&t<=s+r.length&&r.between(s,t-s,e-s,n)===false)return}this.nextLayer.between(t,e,n)}iter(t=0){return Gt.from([this]).goto(t)}get isEmpty(){return this.nextLayer==this}static iter(t,e=0){return Gt.from(t).goto(e)}static compare(t,e,n,i,s=-1){let r=t.filter((t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=s));let l=e.filter((t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=s));let h=Wt(r,l,n);let o=new Kt(r,h,s);let a=new Kt(l,h,s);n.iterGaps(((t,e,n)=>Qt(o,t,a,e,n,i)));if(n.empty&&n.length==0)Qt(o,0,a,0,0,i)}static eq(t,e,n=0,i){if(i==null)i=1e9-1;let s=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0));let r=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0));if(s.length!=r.length)return false;if(!s.length)return true;let l=Wt(s,r);let h=new Kt(s,l,0).goto(n),o=new Kt(r,l,0).goto(n);for(;;){if(h.to!=o.to||!Xt(h.active,o.active)||h.point&&(!o.point||!h.point.eq(o.point)))return false;if(h.to>i)return true;h.next();o.next()}}static spans(t,e,n,i,s=-1){let r=new Kt(t,null,s).goto(e),l=e;let h=r.openStart;for(;;){let t=Math.min(r.to,n);if(r.point){let n=r.activeForPoint(r.to);let s=r.pointFroml){i.span(l,t,r.active,h);h=r.openEnd(t)}if(r.to>n)return h+(r.point&&r.to>n?1:0);l=r.to;r.next()}}static of(t,e=false){let n=new Vt;for(let i of t instanceof jt?[t]:e?zt(t):t)n.add(i.from,i.to,i.value);return n.finish()}static join(t){if(!t.length)return _t.empty;let e=t[t.length-1];for(let n=t.length-2;n>=0;n--){for(let i=t[n];i!=_t.empty;i=i.nextLayer)e=new _t(i.chunkPos,i.chunk,e,Math.max(i.maxPoint,e.maxPoint))}return e}}_t.empty=new _t([],[],null,-1);function zt(t){if(t.length>1)for(let e=t[0],n=1;n0)return t.slice().sort(qt);e=i}return t}_t.empty.nextLayer=_t.empty;class Vt{finishChunk(t){this.chunks.push(new $t(this.from,this.to,this.value,this.maxPoint));this.chunkPos.push(this.chunkStart);this.chunkStart=-1;this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint);this.maxPoint=-1;if(t){this.from=[];this.to=[];this.value=[]}}constructor(){this.chunks=[];this.chunkPos=[];this.chunkStart=-1;this.last=null;this.lastFrom=-1e9;this.lastTo=-1e9;this.from=[];this.to=[];this.value=[];this.maxPoint=-1;this.setMaxPoint=-1;this.nextLayer=null}add(t,e,n){if(!this.addInner(t,e,n))(this.nextLayer||(this.nextLayer=new Vt)).add(t,e,n)}addInner(t,e,n){let i=t-this.lastTo||n.startSide-this.last.endSide;if(i<=0&&(t-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");if(i<0)return false;if(this.from.length==250)this.finishChunk(true);if(this.chunkStart<0)this.chunkStart=t;this.from.push(t-this.chunkStart);this.to.push(e-this.chunkStart);this.last=n;this.lastFrom=t;this.lastTo=e;this.value.push(n);if(n.point)this.maxPoint=Math.max(this.maxPoint,e-t);return true}addChunk(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return false;if(this.from.length)this.finishChunk(true);this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint);this.chunks.push(e);this.chunkPos.push(t);let n=e.value.length-1;this.last=e.value[n];this.lastFrom=e.from[n]+t;this.lastTo=e.to[n]+t;return true}finish(){return this.finishInner(_t.empty)}finishInner(t){if(this.from.length)this.finishChunk(false);if(this.chunks.length==0)return t;let e=_t.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);this.from=null;return e}}function Wt(t,e,n){let i=new Map;for(let r of t)for(let t=0;t=this.minPoint)break}}}setRangeIndex(t){if(t==this.layer.chunk[this.chunkIndex].value.length){this.chunkIndex++;if(this.skip){while(this.chunkIndex=n)i.push(new Ut(r,e,n,s))}}return i.length==1?i[0]:new Gt(i)}get startSide(){return this.value?this.value.startSide:0}goto(t,e=-1e9){for(let n of this.heap)n.goto(t,e);for(let n=this.heap.length>>1;n>=0;n--)Ht(this.heap,n);this.next();return this}forward(t,e){for(let n of this.heap)n.forward(t,e);for(let n=this.heap.length>>1;n>=0;n--)Ht(this.heap,n);if((this.to-t||this.value.endSide-e)<0)this.next()}next(){if(this.heap.length==0){this.from=this.to=1e9;this.value=null;this.rank=-1}else{let t=this.heap[0];this.from=t.from;this.to=t.to;this.value=t.value;this.rank=t.rank;if(t.value)t.next();Ht(this.heap,0)}}}function Ht(t,e){for(let n=t[e];;){let i=(e<<1)+1;if(i>=t.length)break;let s=t[i];if(i+1=0){s=t[i+1];i++}if(n.compare(s)<0)break;t[i]=n;t[e]=s;e=i}}class Kt{constructor(t,e,n){this.minPoint=n;this.active=[];this.activeTo=[];this.activeRank=[];this.minActive=-1;this.point=null;this.pointFrom=0;this.pointRank=0;this.to=-1e9;this.endSide=0;this.openStart=-1;this.cursor=Gt.from(t,e,n)}goto(t,e=-1e9){this.cursor.goto(t,e);this.active.length=this.activeTo.length=this.activeRank.length=0;this.minActive=-1;this.to=t;this.endSide=e;this.openStart=-1;this.next();return this}forward(t,e){while(this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0)this.removeActive(this.minActive);this.cursor.forward(t,e)}removeActive(t){Yt(this.active,t);Yt(this.activeTo,t);Yt(this.activeRank,t);this.minActive=te(this.active,this.activeTo)}addActive(t){let e=0,{value:n,to:i,rank:s}=this.cursor;while(e0)e++;Zt(this.active,e,n);Zt(this.activeTo,e,i);Zt(this.activeRank,e,s);if(t)Zt(t,e,this.cursor.from);this.minActive=te(this.active,this.activeTo)}next(){let t=this.to,e=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>t){this.to=this.activeTo[i];this.endSide=this.active[i].endSide;break}this.removeActive(i);if(n)Yt(n,i)}else if(!this.cursor.value){this.to=this.endSide=1e9;break}else if(this.cursor.from>t){this.to=this.cursor.from;this.endSide=this.cursor.startSide;break}else{let t=this.cursor.value;if(!t.point){this.addActive(n);this.cursor.next()}else if(e&&this.cursor.to==this.to&&this.cursor.from=0&&n[e]=0;n--){if(this.activeRank[n]t||this.activeTo[n]==t&&this.active[n].endSide>=this.point.endSide)e.push(this.active[n])}return e.reverse()}openEnd(t){let e=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>t;n--)e++;return e}}function Qt(t,e,n,i,s,r){t.goto(e);n.goto(i);let l=i+s;let h=i,o=i-e;for(;;){let e=t.to+o-n.to,i=e||t.endSide-n.endSide;let s=i<0?t.to+o:n.to,a=Math.min(s,l);if(t.point||n.point){if(!(t.point&&n.point&&(t.point==n.point||t.point.eq(n.point))&&Xt(t.activeForPoint(t.to),n.activeForPoint(n.to))))r.comparePoint(h,a,t.point,n.point)}else{if(a>h&&!Xt(t.active,n.active))r.compareRange(h,a,t.active,n.active)}if(s>l)break;if((e||t.openEnd!=n.openEnd)&&r.boundChange)r.boundChange(s);h=s;if(i<=0)t.next();if(i>=0)n.next()}}function Xt(t,e){if(t.length!=e.length)return false;for(let n=0;n=e;i--)t[i+1]=t[i];t[e]=n}function te(t,e){let n=-1,i=1e9;for(let s=0;s=e)return s;if(s==t.length)break;r+=t.charCodeAt(s)==9?n-r%n:1;s=M(t,s)}return i===true?-1:t.length}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6060.52dca011e9f2f279fc5e.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6060.52dca011e9f2f279fc5e.js deleted file mode 100644 index 0bee75c7d868a3aea2112ffa65ae601d73f1c9ba..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6060.52dca011e9f2f279fc5e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6060],{56060:(e,a,n)=>{n.r(a);n.d(a,{gherkin:()=>i});const i={name:"gherkin",startState:function(){return{lineNumber:0,tableHeaderLine:false,allowFeature:true,allowBackground:false,allowScenario:false,allowSteps:false,allowPlaceholders:false,allowMultilineArgument:false,inMultilineString:false,inMultilineTable:false,inKeywordLine:false}},token:function(e,a){if(e.sol()){a.lineNumber++;a.inKeywordLine=false;if(a.inMultilineTable){a.tableHeaderLine=false;if(!e.match(/\s*\|/,false)){a.allowMultilineArgument=false;a.inMultilineTable=false}}}e.eatSpace();if(a.allowMultilineArgument){if(a.inMultilineString){if(e.match('"""')){a.inMultilineString=false;a.allowMultilineArgument=false}else{e.match(/.*/)}return"string"}if(a.inMultilineTable){if(e.match(/\|\s*/)){return"bracket"}else{e.match(/[^\|]*/);return a.tableHeaderLine?"header":"string"}}if(e.match('"""')){a.inMultilineString=true;return"string"}else if(e.match("|")){a.inMultilineTable=true;a.tableHeaderLine=true;return"bracket"}}if(e.match(/#.*/)){return"comment"}else if(!a.inKeywordLine&&e.match(/@\S+/)){return"tag"}else if(!a.inKeywordLine&&a.allowFeature&&e.match(/(機能|功能|フィーチャ|기능|โครงหลัก|ความสามารถ|ความต้องการทางธุรกิจ|ಹೆಚ್ಚಳ|గుణము|ਮੁਹਾਂਦਰਾ|ਨਕਸ਼ ਨੁਹਾਰ|ਖਾਸੀਅਤ|रूप लेख|وِیژگی|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Үзенчәлеклелек|Свойство|Особина|Мөмкинлек|Могућност|Λειτουργία|Δυνατότητα|Właściwość|Vlastnosť|Trajto|Tính năng|Savybė|Pretty much|Požiadavka|Požadavek|Potrzeba biznesowa|Özellik|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Hwæt|Hwaet|Funzionalità|Funktionalitéit|Funktionalität|Funkcja|Funkcionalnost|Funkcionalitāte|Funkcia|Fungsi|Functionaliteit|Funcționalitate|Funcţionalitate|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Fīča|Feature|Eiginleiki|Egenskap|Egenskab|Característica|Caracteristica|Business Need|Aspekt|Arwedd|Ahoy matey!|Ability):/)){a.allowScenario=true;a.allowBackground=true;a.allowPlaceholders=false;a.allowSteps=false;a.allowMultilineArgument=false;a.inKeywordLine=true;return"keyword"}else if(!a.inKeywordLine&&a.allowBackground&&e.match(/(背景|배경|แนวคิด|ಹಿನ್ನೆಲೆ|నేపథ్యం|ਪਿਛੋਕੜ|पृष्ठभूमि|زمینه|الخلفية|רקע|Тарих|Предыстория|Предистория|Позадина|Передумова|Основа|Контекст|Кереш|Υπόβαθρο|Założenia|Yo\-ho\-ho|Tausta|Taust|Situācija|Rerefons|Pozadina|Pozadie|Pozadí|Osnova|Latar Belakang|Kontext|Konteksts|Kontekstas|Kontekst|Háttér|Hannergrond|Grundlage|Geçmiş|Fundo|Fono|First off|Dis is what went down|Dasar|Contexto|Contexte|Context|Contesto|Cenário de Fundo|Cenario de Fundo|Cefndir|Bối cảnh|Bakgrunnur|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|Ær|Aer|Achtergrond):/)){a.allowPlaceholders=false;a.allowSteps=true;a.allowBackground=false;a.allowMultilineArgument=false;a.inKeywordLine=true;return"keyword"}else if(!a.inKeywordLine&&a.allowScenario&&e.match(/(場景大綱|场景大纲|劇本大綱|剧本大纲|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|시나리오 개요|สรุปเหตุการณ์|โครงสร้างของเหตุการณ์|ವಿವರಣೆ|కథనం|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਟਕਥਾ ਢਾਂਚਾ|परिदृश्य रूपरेखा|سيناريو مخطط|الگوی سناریو|תבנית תרחיש|Сценарийның төзелеше|Сценарий структураси|Структура сценарію|Структура сценария|Структура сценарија|Скица|Рамка на сценарий|Концепт|Περιγραφή Σεναρίου|Wharrimean is|Template Situai|Template Senario|Template Keadaan|Tapausaihio|Szenariogrundriss|Szablon scenariusza|Swa hwær swa|Swa hwaer swa|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario konsep|Shiver me timbers|Senaryo taslağı|Schema dello scenario|Scenariomall|Scenariomal|Scenario Template|Scenario Outline|Scenario Amlinellol|Scenārijs pēc parauga|Scenarijaus šablonas|Reckon it's like|Raamstsenaarium|Plang vum Szenario|Plan du Scénario|Plan du scénario|Osnova scénáře|Osnova Scenára|Náčrt Scenáru|Náčrt Scénáře|Náčrt Scenára|MISHUN SRSLY|Menggariskan Senario|Lýsing Dæma|Lýsing Atburðarásar|Konturo de la scenaro|Koncept|Khung tình huống|Khung kịch bản|Forgatókönyv vázlat|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esbozo do escenario|Delineação do Cenário|Delineacao do Cenario|All y'all|Abstrakt Scenario|Abstract Scenario):/)){a.allowPlaceholders=true;a.allowSteps=true;a.allowMultilineArgument=false;a.inKeywordLine=true;return"keyword"}else if(a.allowScenario&&e.match(/(例子|例|サンプル|예|ชุดของเหตุการณ์|ชุดของตัวอย่าง|ಉದಾಹರಣೆಗಳು|ఉదాహరణలు|ਉਦਾਹਰਨਾਂ|उदाहरण|نمونه ها|امثلة|דוגמאות|Үрнәкләр|Сценарији|Примеры|Примери|Приклади|Мисоллар|Мисаллар|Σενάρια|Παραδείγματα|You'll wanna|Voorbeelden|Variantai|Tapaukset|Se þe|Se the|Se ðe|Scenarios|Scenariji|Scenarijai|Przykłady|Primjeri|Primeri|Příklady|Príklady|Piemēri|Példák|Pavyzdžiai|Paraugs|Örnekler|Juhtumid|Exemplos|Exemples|Exemple|Exempel|EXAMPLZ|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|Dữ liệu|Dead men tell no tales|Dæmi|Contoh|Cenários|Cenarios|Beispiller|Beispiele|Atburðarásir):/)){a.allowPlaceholders=false;a.allowSteps=true;a.allowBackground=false;a.allowMultilineArgument=true;return"keyword"}else if(!a.inKeywordLine&&a.allowScenario&&e.match(/(場景|场景|劇本|剧本|シナリオ|시나리오|เหตุการณ์|ಕಥಾಸಾರಾಂಶ|సన్నివేశం|ਪਟਕਥਾ|परिदृश्य|سيناريو|سناریو|תרחיש|Сценарій|Сценарио|Сценарий|Пример|Σενάριο|Tình huống|The thing of it is|Tapaus|Szenario|Swa|Stsenaarium|Skenario|Situai|Senaryo|Senario|Scenaro|Scenariusz|Scenariu|Scénario|Scenario|Scenarijus|Scenārijs|Scenarij|Scenarie|Scénář|Scenár|Primer|MISHUN|Kịch bản|Keadaan|Heave to|Forgatókönyv|Escenario|Escenari|Cenário|Cenario|Awww, look mate|Atburðarás):/)){a.allowPlaceholders=false;a.allowSteps=true;a.allowBackground=false;a.allowMultilineArgument=false;a.inKeywordLine=true;return"keyword"}else if(!a.inKeywordLine&&a.allowSteps&&e.match(/(那麼|那么|而且|當|当|并且|同時|同时|前提|假设|假設|假定|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|하지만|조건|먼저|만일|만약|단|그리고|그러면|และ |เมื่อ |แต่ |ดังนั้น |กำหนดให้ |ಸ್ಥಿತಿಯನ್ನು |ಮತ್ತು |ನೀಡಿದ |ನಂತರ |ಆದರೆ |మరియు |చెప్పబడినది |కాని |ఈ పరిస్థితిలో |అప్పుడు |ਪਰ |ਤਦ |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |ਜਦੋਂ |ਅਤੇ |यदि |परन्तु |पर |तब |तदा |तथा |जब |चूंकि |किन्तु |कदा |और |अगर |و |هنگامی |متى |لكن |عندما |ثم |بفرض |با فرض |اما |اذاً |آنگاه |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Һәм |Унда |Тоді |Тогда |То |Также |Та |Пусть |Припустимо, що |Припустимо |Онда |Но |Нехай |Нәтиҗәдә |Лекин |Ләкин |Коли |Когда |Когато |Када |Кад |К тому же |І |И |Задато |Задати |Задате |Если |Допустим |Дано |Дадено |Вә |Ва |Бирок |Әмма |Әйтик |Әгәр |Аммо |Али |Але |Агар |А також |А |Τότε |Όταν |Και |Δεδομένου |Αλλά |Þurh |Þegar |Þa þe |Þá |Þa |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Za předpokladu |Za predpokladu |Youse know when youse got |Youse know like when |Yna |Yeah nah |Y'know |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |wann |Ve |Và |Und |Un |ugeholl |Too right |Thurh |Thì |Then y'all |Then |Tha the |Tha |Tetapi |Tapi |Tak |Tada |Tad |Stel |Soit |Siis |Și |Şi |Si |Sed |Se |Så |Quando |Quand |Quan |Pryd |Potom |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Niin |Nhưng |När |Når |Mutta |Men |Mas |Maka |Majd |Mając |Mais |Maar |mä |Ma |Lorsque |Lorsqu'|Logo |Let go and haul |Kun |Kuid |Kui |Kiedy |Khi |Ketika |Kemudian |Keď |Když |Kaj |Kai |Kada |Kad |Jeżeli |Jeśli |Ja |It's just unbelievable |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben seien |Gegeben sei |Gdy |Gangway! |Fakat |Étant donnés |Etant donnés |Étant données |Etant données |Étant donnée |Etant donnée |Étant donné |Etant donné |Et |És |Entonces |Entón |Então |Entao |En |Eğer ki |Ef |Eeldades |E |Ðurh |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Diberi |Dengan |Den youse gotta |DEN |De |Dato |Dați fiind |Daţi fiind |Dati fiind |Dati |Date fiind |Date |Data |Dat fiind |Dar |Dann |dann |Dan |Dados |Dado |Dadas |Dada |Ða ðe |Ða |Cuando |Cho |Cando |Când |Cand |Cal |But y'all |But at the end of the day I reckon |BUT |But |Buh |Blimey! |Biết |Bet |Bagi |Aye |awer |Avast! |Atunci |Atesa |Atès |Apabila |Anrhegedig a |Angenommen |And y'all |And |AN |An |an |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Ak |Adott |Ac |Aber |A zároveň |A tiež |A taktiež |A také |A |a |7 |\* )/)){a.inStep=true;a.allowPlaceholders=true;a.allowMultilineArgument=true;a.inKeywordLine=true;return"keyword"}else if(e.match(/"[^"]*"?/)){return"string"}else if(a.allowPlaceholders&&e.match(/<[^>]*>?/)){return"variable"}else{e.next();e.eatWhile(/[^@"<#]/);return null}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6095.6e79e3bad86e054aa8c8.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6095.6e79e3bad86e054aa8c8.js deleted file mode 100644 index 97f102c785c71da8058ecb8d56d91a48da2f6bf9..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6095.6e79e3bad86e054aa8c8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6095],{86095:(e,o,O)=>{O.r(o);O.d(o,{wast:()=>i,wastLanguage:()=>S});var t=O(4452);var a=O.n(t);var b=O(45145);var r=O.n(b);var s=O(27421);const n={__proto__:null,anyref:34,dataref:34,eqref:34,externref:34,i31ref:34,funcref:34,i8:34,i16:34,i32:34,i64:34,f32:34,f64:34};const P=s.U1.deserialize({version:14,states:"!^Q]QPOOOqQPO'#CbOOQO'#Cd'#CdOOQO'#Cl'#ClOOQO'#Ch'#ChQ]QPOOOOQO,58|,58|OxQPO,58|OOQO-E6f-E6fOOQO1G.h1G.h",stateData:"!P~O_OSPOSQOS~OTPOVROXROYROZROaQO~OSUO~P]OSXO~P]O",goto:"xaPPPPPPbPbPPPhPPPrXROPTVQTOQVPTWTVXSOPTV",nodeNames:"⚠ LineComment BlockComment Module ) ( App Identifier Type Keyword Number String",maxTerm:17,nodeProps:[["isolate",-3,1,2,11,""],["openedBy",4,"("],["closedBy",5,")"],["group",-6,6,7,8,9,10,11,"Expression"]],skippedNodes:[0,1,2],repeatNodeCount:1,tokenData:"0o~R^XY}YZ}]^}pq}rs!Stu#pxy'Uyz(e{|(j}!O(j!Q!R(s!R![*p!]!^.^#T#o.{~!SO_~~!VVOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j<%lO!S~!qOZ~~!tRO;'S!S;'S;=`!};=`O!S~#QWOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j;=`<%l!S<%lO!S~#mP;=`<%l!S~#siqr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~%giV~qr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~'ZPT~!]!^'^~'aTO!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~'sVOy'^yz(Yz!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~(_OQ~~(bP;=`<%l'^~(jOS~~(mQ!Q!R(s!R![*p~(xUY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){#l#m+[~)aRY~!Q![)j!g!h){#X#Y){~)oSY~!Q![)j!g!h){#R#S*j#X#Y){~*OR{|*X}!O*X!Q![*_~*[P!Q![*_~*dQY~!Q![*_#R#S*X~*mP!Q![)j~*uTY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){~+XP!Q![*p~+_R!Q![+h!c!i+h#T#Z+h~+mVY~!O!P,S!Q![+h!c!i+h!r!s-P#R#S+[#T#Z+h#d#e-P~,XTY~!Q![,h!c!i,h!r!s-P#T#Z,h#d#e-P~,mUY~!Q![,h!c!i,h!r!s-P#R#S.Q#T#Z,h#d#e-P~-ST{|-c}!O-c!Q![-o!c!i-o#T#Z-o~-fR!Q![-o!c!i-o#T#Z-o~-tSY~!Q![-o!c!i-o#R#S-c#T#Z-o~.TR!Q![,h!c!i,h#T#Z,h~.aP!]!^.d~.iSP~OY.dZ;'S.d;'S;=`.u<%lO.d~.xP;=`<%l.d~/QiX~qr.{st.{tu.{uv.{vw.{wx.{z{.{{|.{}!O.{!O!P.{!P!Q.{!Q![.{![!].{!^!_.{!_!`.{!`!a.{!a!b.{!b!c.{!c!}.{#Q#R.{#R#S.{#S#T.{#T#o.{#p#q.{#r#s.{",tokenizers:[0],topRules:{Module:[0,3]},specialized:[{term:9,get:e=>n[e]||-1}],tokenPrec:0});const S=t.LRLanguage.define({name:"wast",parser:P.configure({props:[t.indentNodeProp.add({App:(0,t.delimitedIndent)({closing:")",align:false})}),t.foldNodeProp.add({App:t.foldInside,BlockComment(e){return{from:e.from+2,to:e.to-2}}}),(0,b.styleTags)({Keyword:b.tags.keyword,Type:b.tags.typeName,Number:b.tags.number,String:b.tags.string,Identifier:b.tags.variableName,LineComment:b.tags.lineComment,BlockComment:b.tags.blockComment,"( )":b.tags.paren})]}),languageData:{commentTokens:{line:";;",block:{open:"(;",close:";)"}},closeBrackets:{brackets:["(",'"']}}});function i(){return new t.LanguageSupport(S)}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6145.c422868290460078c013.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6145.c422868290460078c013.js deleted file mode 100644 index f1118cad58ba9edbf4f821d358fc57027e5eea62..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6145.c422868290460078c013.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6145],{26145:(e,t,r)=>{r.r(t);r.d(t,{powerShell:()=>z});function n(e,t){t=t||{};var r=t.prefix!==undefined?t.prefix:"^";var n=t.suffix!==undefined?t.suffix:"\\b";for(var i=0;i/;var l=n([u,c],{suffix:""});var p=/^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i;var m=/^[A-Za-z\_][A-Za-z\-\_\d]*\b/;var S=/[A-Z]:|%|\?/i;var f=n([/Add-(Computer|Content|History|Member|PSSnapin|Type)/,/Checkpoint-Computer/,/Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,/Compare-Object/,/Complete-Transaction/,/Connect-PSSession/,/ConvertFrom-(Csv|Json|SecureString|StringData)/,/Convert-Path/,/ConvertTo-(Csv|Html|Json|SecureString|Xml)/,/Copy-Item(Property)?/,/Debug-Process/,/Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/Disconnect-PSSession/,/Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/(Enter|Exit)-PSSession/,/Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,/ForEach-Object/,/Format-(Custom|List|Table|Wide)/,new RegExp("Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential"+"|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job"+"|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration"+"|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)"),/Group-Object/,/Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,/ImportSystemModules/,/Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,/Join-Path/,/Limit-EventLog/,/Measure-(Command|Object)/,/Move-Item(Property)?/,new RegExp("New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile"+"|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)"),/Out-(Default|File|GridView|Host|Null|Printer|String)/,/Pause/,/(Pop|Push)-Location/,/Read-Host/,/Receive-(Job|PSSession)/,/Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,/Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,/Rename-(Computer|Item(Property)?)/,/Reset-ComputerMachinePassword/,/Resolve-Path/,/Restart-(Computer|Service)/,/Restore-Computer/,/Resume-(Job|Service)/,/Save-Help/,/Select-(Object|String|Xml)/,/Send-MailMessage/,new RegExp("Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug"+"|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)"),/Show-(Command|ControlPanelItem|EventLog)/,/Sort-Object/,/Split-Path/,/Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,/Stop-(Computer|Job|Process|Service|Transcript)/,/Suspend-(Job|Service)/,/TabExpansion2/,/Tee-Object/,/Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,/Trace-Command/,/Unblock-File/,/Undo-Transaction/,/Unregister-(Event|PSSessionConfiguration)/,/Update-(FormatData|Help|List|TypeData)/,/Use-Transaction/,/Wait-(Event|Job|Process)/,/Where-Object/,/Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,/cd|help|mkdir|more|oss|prompt/,/ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,/echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,/group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,/measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,/rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,/sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/],{prefix:"",suffix:""});var v=n([/[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,/FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,/MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,/PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,/PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,/WarningPreference|WhatIfPreference/,/Event|EventArgs|EventSubscriber|Sender/,/Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,/true|false|null/],{prefix:"\\$",suffix:""});var P=n([S,f,v],{suffix:i});var d={keyword:a,number:p,operator:l,builtin:P,punctuation:s,variable:m};function g(e,t){var r=t.returnStack[t.returnStack.length-1];if(r&&r.shouldReturnFrom(t)){t.tokenize=r.tokenize;t.returnStack.pop();return t.tokenize(e,t)}if(e.eatSpace()){return null}if(e.eat("(")){t.bracketNesting+=1;return"punctuation"}if(e.eat(")")){t.bracketNesting-=1;return"punctuation"}for(var n in d){if(e.match(d[n])){return n}}var i=e.next();if(i==="'"){return b(e,t)}if(i==="$"){return y(e,t)}if(i==='"'){return C(e,t)}if(i==="<"&&e.eat("#")){t.tokenize=w;return w(e,t)}if(i==="#"){e.skipToEnd();return"comment"}if(i==="@"){var a=e.eat(/["']/);if(a&&e.eol()){t.tokenize=R;t.startQuote=a[0];return R(e,t)}else if(e.eol()){return"error"}else if(e.peek().match(/[({]/)){return"punctuation"}else if(e.peek().match(o)){return y(e,t)}}return"error"}function b(e,t){var r;while((r=e.peek())!=null){e.next();if(r==="'"&&!e.eat("'")){t.tokenize=g;return"string"}}return"error"}function C(e,t){var r;while((r=e.peek())!=null){if(r==="$"){t.tokenize=k;return"string"}e.next();if(r==="`"){e.next();continue}if(r==='"'&&!e.eat('"')){t.tokenize=g;return"string"}}return"error"}function k(e,t){return E(e,t,C)}function h(e,t){t.tokenize=R;t.startQuote='"';return R(e,t)}function x(e,t){return E(e,t,h)}function E(e,t,r){if(e.match("$(")){var n=t.bracketNesting;t.returnStack.push({shouldReturnFrom:function(e){return e.bracketNesting===n},tokenize:r});t.tokenize=g;t.bracketNesting+=1;return"punctuation"}else{e.next();t.returnStack.push({shouldReturnFrom:function(){return true},tokenize:r});t.tokenize=y;return t.tokenize(e,t)}}function w(e,t){var r=false,n;while((n=e.next())!=null){if(r&&n==">"){t.tokenize=g;break}r=n==="#"}return"comment"}function y(e,t){var r=e.peek();if(e.eat("{")){t.tokenize=M;return M(e,t)}else if(r!=undefined&&r.match(o)){e.eatWhile(o);t.tokenize=g;return"variable"}else{t.tokenize=g;return"error"}}function M(e,t){var r;while((r=e.next())!=null){if(r==="}"){t.tokenize=g;break}}return"variable"}function R(e,t){var r=t.startQuote;if(e.sol()&&e.match(new RegExp(r+"@"))){t.tokenize=g}else if(r==='"'){while(!e.eol()){var n=e.peek();if(n==="$"){t.tokenize=x;return"string"}e.next();if(n==="`"){e.next()}}}else{e.skipToEnd()}return"string"}const z={name:"powershell",startState:function(){return{returnStack:[],bracketNesting:0,tokenize:g}},token:function(e,t){return t.tokenize(e,t)},languageData:{commentTokens:{line:"#",block:{open:"<#",close:"#>"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6166.2bc9ac8e2156c0701a52.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6166.2bc9ac8e2156c0701a52.js deleted file mode 100644 index 3bff9885fc0fac778c35be76cbbfd25fb2b967f7..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6166.2bc9ac8e2156c0701a52.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6166],{66166:(O,Q,e)=>{e.r(Q);e.d(Q,{cpp:()=>R,cppLanguage:()=>m});var X=e(27421);var $=e(45145);const i=1,a=2,P=3;const r=82,Y=76,s=117,t=85,U=97,n=122,l=65,x=90,c=95,S=48,o=34,w=40,u=41,V=32,T=62;const W=new X.Lu((O=>{if(O.next==Y||O.next==t){O.advance()}else if(O.next==s){O.advance();if(O.next==S+8)O.advance()}if(O.next!=r)return;O.advance();if(O.next!=o)return;O.advance();let Q="";while(O.next!=w){if(O.next==V||O.next<=13||O.next==u)return;Q+=String.fromCharCode(O.next);O.advance()}O.advance();for(;;){if(O.next<0)return O.acceptToken(i);if(O.next==u){let e=true;for(let X=0;e&&X{if(O.next==T){if(O.peek(1)==T)O.acceptToken(a,1)}else{let Q=false,e=0;for(;;e++){if(O.next>=l&&O.next<=x)Q=true;else if(O.next>=U&&O.next<=n)return;else if(O.next!=c&&!(O.next>=S&&O.next<=S+9))break;O.advance()}if(Q&&e>1)O.acceptToken(P)}}),{extend:true});const g=(0,$.styleTags)({"typedef struct union enum class typename decltype auto template operator friend noexcept namespace using requires concept import export module __attribute__ __declspec __based":$.tags.definitionKeyword,"extern MsCallModifier MsPointerModifier extern static register thread_local inline const volatile restrict _Atomic mutable constexpr constinit consteval virtual explicit VirtualSpecifier Access":$.tags.modifier,"if else switch for while do case default return break continue goto throw try catch":$.tags.controlKeyword,"co_return co_yield co_await":$.tags.controlKeyword,"new sizeof delete static_assert":$.tags.operatorKeyword,"NULL nullptr":$.tags.null,this:$.tags.self,"True False":$.tags.bool,"TypeSize PrimitiveType":$.tags.standard($.tags.typeName),TypeIdentifier:$.tags.typeName,FieldIdentifier:$.tags.propertyName,"CallExpression/FieldExpression/FieldIdentifier":$.tags.function($.tags.propertyName),"ModuleName/Identifier":$.tags.namespace,PartitionName:$.tags.labelName,StatementIdentifier:$.tags.labelName,"Identifier DestructorName":$.tags.variableName,"CallExpression/Identifier":$.tags.function($.tags.variableName),"CallExpression/ScopedIdentifier/Identifier":$.tags.function($.tags.variableName),"FunctionDeclarator/Identifier FunctionDeclarator/DestructorName":$.tags.function($.tags.definition($.tags.variableName)),NamespaceIdentifier:$.tags.namespace,OperatorName:$.tags.operator,ArithOp:$.tags.arithmeticOperator,LogicOp:$.tags.logicOperator,BitOp:$.tags.bitwiseOperator,CompareOp:$.tags.compareOperator,AssignOp:$.tags.definitionOperator,UpdateOp:$.tags.updateOperator,LineComment:$.tags.lineComment,BlockComment:$.tags.blockComment,Number:$.tags.number,String:$.tags.string,"RawString SystemLibString":$.tags.special($.tags.string),CharLiteral:$.tags.character,EscapeSequence:$.tags.escape,"UserDefinedLiteral/Identifier":$.tags.literal,PreProcArg:$.tags.meta,"PreprocDirectiveName #include #ifdef #ifndef #if #define #else #endif #elif":$.tags.processingInstruction,MacroName:$.tags.special($.tags.name),"( )":$.tags.paren,"[ ]":$.tags.squareBracket,"{ }":$.tags.brace,"< >":$.tags.angleBracket,". ->":$.tags.derefOperator,", ;":$.tags.separator});const q={__proto__:null,bool:34,char:34,int:34,float:34,double:34,void:34,size_t:34,ssize_t:34,intptr_t:34,uintptr_t:34,charptr_t:34,int8_t:34,int16_t:34,int32_t:34,int64_t:34,uint8_t:34,uint16_t:34,uint32_t:34,uint64_t:34,char8_t:34,char16_t:34,char32_t:34,char64_t:34,const:68,volatile:70,restrict:72,_Atomic:74,mutable:76,constexpr:78,constinit:80,consteval:82,struct:86,__declspec:90,final:148,override:148,public:152,private:152,protected:152,virtual:154,extern:160,static:162,register:164,inline:166,thread_local:168,__attribute__:172,__based:178,__restrict:180,__uptr:180,__sptr:180,_unaligned:180,__unaligned:180,noexcept:194,requires:198,TRUE:786,true:786,FALSE:788,false:788,typename:218,class:220,template:234,throw:248,__cdecl:256,__clrcall:256,__stdcall:256,__fastcall:256,__thiscall:256,__vectorcall:256,try:260,catch:264,export:284,import:288,case:298,default:300,if:310,else:316,switch:320,do:324,while:326,for:332,return:336,break:340,continue:344,goto:348,co_return:352,co_yield:356,using:364,typedef:368,namespace:382,new:400,delete:402,co_await:404,concept:408,enum:412,static_assert:416,friend:424,union:426,explicit:432,operator:446,module:458,signed:520,unsigned:520,long:520,short:520,decltype:530,auto:532,sizeof:568,NULL:574,nullptr:588,this:590};const Z={__proto__:null,"<":131};const p={__proto__:null,">":135};const d={__proto__:null,operator:390,new:578,delete:584};const b=X.U1.deserialize({version:14,states:"$;fQ!QQVOOP'gOUOOO(XOWO'#CdO,RQUO'#CgO,]QUO'#FkO-sQbO'#CwO.UQUO'#CwO0TQUO'#K[O0[QUO'#CvO0gOpO'#DvO0oQ!dO'#D]OOQR'#JP'#JPO5XQVO'#GVO5fQUO'#JWOOQQ'#JW'#JWO8zQUO'#KnO{QVO'#E^O?]QUO'#E^OOQQ'#Ed'#EdOOQQ'#Ee'#EeO?bQVO'#EfO@XQVO'#EiOBUQUO'#FPOBvQUO'#FiOOQR'#Fk'#FkOB{QUO'#FkOOQR'#LR'#LROOQR'#LQ'#LQOETQVO'#KROFxQUO'#LWOGVQUO'#KrOGkQUO'#LWOH]QUO'#LYOOQR'#HV'#HVOOQR'#HW'#HWOOQR'#HX'#HXOOQR'#K}'#K}OOQR'#J`'#J`Q!QQVOOOHkQVO'#F^OIWQUO'#EhOI_QUOOOKZQVO'#HhOKkQUO'#HhONVQUO'#KrONaQUO'#KrOOQQ'#Kr'#KrO!!_QUO'#KrOOQQ'#Jr'#JrO!!lQUO'#HyOOQQ'#K['#K[O!&^QUO'#K[O!&zQUO'#KRO!(zQVO'#I^O!(zQVO'#IaOCQQUO'#KROOQQ'#Iq'#IqOOQQ'#KR'#KRO!,}QUO'#K[OOQR'#KZ'#KZO!-UQUO'#DYO!/mQUO'#KoOOQQ'#Ko'#KoO!/tQUO'#KoO!/{QUO'#ETO!0QQUO'#EWO!0VQUO'#FRO8zQUO'#FPO!QQVO'#F_O!0[Q#vO'#FaO!0gQUO'#FlO!0oQUO'#FqO!0tQVO'#FsO!0oQUO'#FvO!3sQUO'#FwO!3xQVO'#FyO!4SQUO'#F{O!4XQUO'#F}O!4^QUO'#GPO!4cQVO'#GRO!(zQVO'#GTO!4jQUO'#GqO!4xQUO'#GZO!(zQVO'#FfO!6VQUO'#FfO!6[QVO'#GaO!6cQUO'#GbO!6nQUO'#GoO!6sQUO'#GsO!6xQUO'#G{O!7jQ&lO'#HjO!:mQUO'#GvO!:}QUO'#HYO!;YQUO'#H[O!;bQUO'#DWO!;bQUO'#HvO!;bQUO'#HwO!;yQUO'#HxO!<[QUO'#H}O!=PQUO'#IOO!>uQVO'#IcO!(zQVO'#IeO!?PQUO'#IhO!?WQVO'#IkP!@}{,UO'#CbP!6n{,UO'#CbP!AY{7[O'#CbP!6n{,UO'#CbP!A_{,UO'#CbP!AjOSO'#I{POOO)CEo)CEoOOOO'#I}'#I}O!AtOWO,59OOOQR,59O,59OO!(zQVO,59UOOQQ,59W,59WO!(zQVO,5;ROOQR,5rOOQR'#IY'#IYOOQR'#IZ'#IZOOQR'#I['#I[OOQR'#I]'#I]O!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!DOQVO,5>{OOQQ,5?X,5?XO!EqQVO'#ChO!IjQUO'#CyOOQQ,59c,59cOOQQ,59b,59bOOQQ,5=O,5=OO!IwQ&lO,5=nO!?PQUO,5?SO!LkQVO,5?VO!LrQbO,59cO!L}QVO'#FYOOQQ,5?Q,5?QO!M_QVO,59VO!MfO`O,5:bO!MkQbO'#D^O!M|QbO'#K_O!N[QbO,59wO!NdQbO'#CwO!NuQUO'#CwO!NzQUO'#K[O# UQUO'#CvOOQR-E<}-E<}O# aQUO,5ApO# hQVO'#EfO@XQVO'#EiOBUQUO,5;kOOQR,5m,5>mO#3gQUO'#CgO#4]QUO,5>qO#6OQUO'#IfOOQR'#JO'#JOO#6WQUO,5:xO#6tQUO,5:xO#7eQUO,5:xO#8YQUO'#CtO!0QQUO'#ClOOQQ'#JX'#JXO#6tQUO,5:xO#8bQUO,5;QO!4xQUO'#C}O#9kQUO,5;QO#9pQUO,5>RO#:|QUO'#C}O#;dQUO,5>|O#;iQUO'#KxO#}QUO'#L]O#?UQUO,5>VO#?ZQbO'#CwO#?fQUO'#GdO#?kQUO'#E^O#@[QUO,5;kO#@sQUO'#LOO#@{QUO,5;rOKkQUO'#HgOBUQUO'#HhO#AQQUO'#KrO!6nQUO'#HkO#AxQUO'#CtO!0tQVO,5QO$(WQUO'#E[O$(eQUO,5>SOOQQ,5>T,5>TO$,RQVO'#C{OOQQ-E=p-E=pOOQQ,5>e,5>eOOQQ,59`,59`O$,]QUO,5>xO$.]QUO,5>{O!6nQUO,59tO$.pQUO,5;qO$.}QUO,5<|O!0QQUO,5:oOOQQ,5:r,5:rO$/YQUO,5;mO$/_QUO'#KnOBUQUO,5;kOOQR,5;y,5;yO$0OQUO'#FcO$0^QUO'#FcO$0cQUO,5;{O$3|QVO'#FnO!0tQVO,5eQUO,5pQUO,5=]O$>uQUO,5=]O!4xQUO,5}QUO,5uQUO,5<|O$DXQUO,5<|O$DdQUO,5=ZO!(zQVO,5=_O!(zQVO,5=gO#NeQUO,5=nOOQQ,5>U,5>UO$FiQUO,5>UO$FsQUO,5>UO$FxQUO,5>UO$F}QUO,5>UO!6nQUO,5>UO$H{QUO'#K[O$ISQUO,5=pO$I_QUO,5=bOKkQUO,5=pO$JXQUO,5=tOOQR,5=t,5=tO$JaQUO,5=tO$LlQVO'#H]OOQQ,5=v,5=vO!;]QUO,5=vO%#gQUO'#KkO%#nQUO'#K]O%$SQUO'#KkO%$^QUO'#DyO%$oQUO'#D|O%'lQUO'#K]OOQQ'#K]'#K]O%)_QUO'#K]O%#nQUO'#K]O%)dQUO'#K]OOQQ,59r,59rOOQQ,5>b,5>bOOQQ,5>c,5>cO%)lQUO'#H{O%)tQUO,5>dOOQQ,5>d,5>dO%-`QUO,5>dO%-kQUO,5>iO%1VQVO,5>jO%1^QUO,5>}O# hQVO'#EfO%4dQUO,5>}OOQQ,5>},5>}O%5TQUO,5?PO%7XQUO,5?SO!<[QUO,5?SO%9TQUO,5?VO%zQUO1G0mOOQQ1G0m1G0mO%@WQUO'#CoO%BgQbO'#CwO%BrQUO'#CrO%BwQUO'#CrO%B|QUO1G.tO#AxQUO'#CqOOQQ1G.t1G.tO%EPQUO1G4^O%FVQUO1G4_O%GxQUO1G4_O%IkQUO1G4_O%K^QUO1G4_O%MPQUO1G4_O%NrQUO1G4_O&!eQUO1G4_O&$WQUO1G4_O&%yQUO1G4_O&'lQUO1G4_O&)_QUO1G4_O&+QQUO'#KQO&,ZQUO'#KQO&,cQUO,59SOOQQ,5=Q,5=QO&.kQUO,5=QO&.uQUO,5=QO&.zQUO,5=QO&/PQUO,5=QO!6nQUO,5=QO#NeQUO1G3YO&/ZQUO1G4nO!<[QUO1G4nO&1VQUO1G4qO&2xQVO1G4qOOQQ1G.}1G.}OOQQ1G.|1G.|OOQQ1G2j1G2jO!IwQ&lO1G3YO&3PQUO'#LPO@XQVO'#EiO&4YQUO'#F]OOQQ'#Jb'#JbO&4_QUO'#FZO&4jQUO'#LPO&4rQUO,5;tO&4wQUO1G.qOOQQ1G.q1G.qOOQR1G/|1G/|O&6jQ!dO'#JQO&6oQbO,59xO&9QQ!eO'#D`O&9XQ!dO'#JSO&9^QbO,5@yO&9^QbO,5@yOOQR1G/c1G/cO&9iQbO1G/cO&9nQ&lO'#GfO&:lQbO,59cOOQR1G7[1G7[O#@[QUO1G1VO&:wQUO1G1^OBUQUO1G1VO&=YQUO'#CyO#*wQbO,59cO&@{QUO1G6tOOQR-E<|-E<|O&B_QUO1G0dO#6WQUO1G0dOOQQ-E=V-E=VO#6tQUO1G0dOOQQ1G0l1G0lO&CSQUO,59iOOQQ1G3m1G3mO&CjQUO,59iO&DQQUO,59iO!M_QVO1G4hO!(zQVO'#JZO&DlQUO,5AdOOQQ1G0o1G0oO!(zQVO1G0oO!6nQUO'#JoO&DtQUO,5AwOOQQ1G3q1G3qOOQR1G1V1G1VO&J]QVO'#FOO!M_QVO,5;sOOQQ,5;s,5;sOBUQUO'#JdO&JmQUO,5AjO&JuQVO'#E[OOQR1G1^1G1^O&MdQUO'#L]OOQR1G1o1G1oOOQR-E=g-E=gOOQR1G7^1G7^O#DhQUO1G7^OGVQUO1G7^O#DhQUO1G7`OOQR1G7`1G7`O&MlQUO'#HOO&MtQUO'#LXOOQQ,5=i,5=iO&NSQUO,5=kO&NXQUO,5=lOOQR1G7a1G7aO#EfQVO1G7aO&N^QUO1G7aO' dQVO,5=lOOQR1G1U1G1UO$.vQUO'#E]O'!YQUO'#E]OOQQ'#Kz'#KzO'!sQUO'#KyO'#OQUO,5;UO'#WQUO'#ElO'#kQUO'#ElO'$OQUO'#EtOOQQ'#J]'#J]O'$TQUO,5;cO'$zQUO,5;cO'%uQUO,5;dO'&{QVO,5;dOOQQ,5;d,5;dO''VQVO,5;dO'&{QVO,5;dO''^QUO,5;bO'(ZQUO,5;eO'(fQUO'#KqO'(nQUO,5:vO'(sQUO,5;fOOQQ1G0n1G0nOOQQ'#J^'#J^O''^QUO,5;bO!4xQUO'#E}OOQQ,5;b,5;bO')nQUO'#E`O'+hQUO'#E{OHrQUO1G0nO'+mQUO'#EbOOQQ'#JY'#JYO'-VQUO'#KsOOQQ'#Ks'#KsO'.PQUO1G0eO'.wQUO1G3lO'/}QVO1G3lOOQQ1G3l1G3lO'0XQVO1G3lO'0`QUO'#L`O'1lQUO'#KYO'1zQUO'#KXO'2VQUO,59gO'2_QUO1G/`O'2dQUO'#FPOOQR1G1]1G1]OOQR1G2h1G2hO$>uQUO1G2hO'2nQUO1G2hO'2yQUO1G0ZOOQR'#Ja'#JaO'3OQVO1G1XO'8wQUO'#FTO'8|QUO1G1VO!6nQUO'#JeO'9[QUO,5;}O$0^QUO,5;}OOQQ'#Fd'#FdOOQQ,5;},5;}O'9jQUO1G1gOOQR1G1g1G1gO'9rQUO,5}QUO1G2aOOQQ'#Cu'#CuO'DRQUO'#G]O'D|QUO'#G]O'ERQUO'#LSO'EaQUO'#G`OOQQ'#LT'#LTO'EoQUO1G2aO'EtQVO1G1lO'HVQVO'#GVOBUQUO'#FWOOQR'#Jf'#JfO'EtQVO1G1lO'HaQUO'#FwOOQR1G2g1G2gOOQR,5;x,5;xO'HfQVO,5;xO'HmQUO1G2hO'HrQUO'#JhO'2nQUO1G2hO!(zQVO1G2uO'HzQUO1G2yO'JTQUO1G3RO'KZQUO1G3YOOQQ1G3p1G3pO'KoQUO1G3pOOQR1G3[1G3[O'KtQUO'#K[O'2dQUO'#LUOGkQUO'#LWOOQR'#Gz'#GzO#DhQUO'#LYOOQR'#HR'#HRO'LOQUO'#GwO'$OQUO'#GvOOQR1G2|1G2|O'L{QUO1G2|O'MrQUO1G3[O'M}QUO1G3`O'NSQUO1G3`OOQR1G3`1G3`O'N[QUO'#H^OOQR'#H^'#H^O( eQUO'#H^O!(zQVO'#HaO!(zQVO'#H`OOQR'#L['#L[O( jQUO'#L[OOQR'#Jl'#JlO( oQVO,5=wOOQQ,5=w,5=wO( vQUO'#H_O(!OQUO'#H[OOQQ1G3b1G3bO(!YQUO,5@wOOQQ,5@w,5@wO%)_QUO,5@wO%)dQUO,5@wO%$^QUO,5:eO(%wQUO'#KlO(&VQUO'#KlOOQQ,5:e,5:eOOQQ'#JT'#JTO(&bQUO'#D}O(&lQUO'#KrOGkQUO'#LWO('hQUO'#D}OOQQ'#Hq'#HqOOQQ'#Hs'#HsOOQQ'#Ht'#HtOOQQ'#Km'#KmOOQQ'#JV'#JVO('rQUO,5:hOOQQ,5:h,5:hO((oQUO'#LWO((|QUO'#HuO()dQUO,5@wO()kQUO'#H|O()vQUO'#L_O(*OQUO,5>gO(*TQUO'#L^OOQQ1G4O1G4OO(-zQUO1G4OO(.RQUO1G4OO(.YQUO1G4UO(/`QUO1G4UO(/eQUO,5A}O!6nQUO1G4iO!(zQVO'#IjOOQQ1G4n1G4nO(/jQUO1G4nO(1mQVO1G4qPOOO1G.h1G.hP!A_{,UO1G.hP(3mQUO'#LfP(3x{,UO1G.hP(3}{7[O1G.hPO{O-E=t-E=tPOOO,5BO,5BOP(4V{,UO,5BOPOOO1G5R1G5RO!(zQVO7+$[O(4[QUO'#CyOOQQ,59^,59^O(4gQbO,59cO(4rQbO,59^OOQQ,59],59]OOQQ7+)x7+)xO!M_QVO'#JuO(4}QUO,5@lOOQQ1G.n1G.nOOQQ1G2l1G2lO(5VQUO1G2lO(5[QUO7+(tOOQQ7+*Y7+*YO(7pQUO7+*YO(7wQUO7+*YO(1mQVO7+*]O#NeQUO7+(tO(8UQVO'#JcO(8iQUO,5AkO(8qQUO,5;vOOQQ'#Co'#CoOOQQ,5;w,5;wO!(zQVO'#F[OOQQ-E=`-E=`O!M_QVO,5;uOOQQ1G1`1G1`OOQQ,5?l,5?lOOQQ-E=O-E=OOOQR'#Dg'#DgOOQR'#Di'#DiOOQR'#Dl'#DlO(9zQ!eO'#K`O(:RQMkO'#K`O(:YQ!eO'#K`OOQR'#K`'#K`OOQR'#JR'#JRO(:aQ!eO,59zOOQQ,59z,59zO(:hQbO,5?nOOQQ-E=Q-E=QO(:vQbO1G6eOOQR7+$}7+$}OOQR7+&q7+&qOOQR7+&x7+&xO'8|QUO7+&qO(;RQUO7+&OO#6WQUO7+&OO(;vQUO1G/TO(<^QUO1G/TO(kQUO,5?uOOQQ-E=X-E=XO(?tQUO7+&ZOOQQ,5@Z,5@ZOOQQ-E=m-E=mO(?yQUO'#LPO@XQVO'#EiO(AVQUO1G1_OOQQ1G1_1G1_O(B`QUO,5@OOOQQ,5@O,5@OOOQQ-E=b-E=bO(BtQUO'#KqOOQR7+,x7+,xO#DhQUO7+,xOOQR7+,z7+,zO(CRQUO,5=jO#DsQUO'#JkO(CdQUO,5AsOOQR1G3V1G3VOOQR1G3W1G3WO(CrQUO7+,{OOQR7+,{7+,{O(EjQUO,5:wO(GXQUO'#EwO!(zQVO,5;VO(GzQUO,5:wO(HUQUO'#EpO(HgQUO'#EzOOQQ,5;Z,5;ZO#K]QVO'#ExO(H}QUO,5:wO(IUQUO'#EyO#GgQUO'#J[O(JnQUO,5AeOOQQ1G0p1G0pO(JyQUO,5;WO!<[QUO,5;^O(KdQUO,5;_O(KrQUO,5;WO(NUQUO,5;`OOQQ-E=Z-E=ZO(N^QUO1G0}OOQQ1G1O1G1OO) XQUO1G1OO)!_QVO1G1OO)!fQVO1G1OO)!pQUO1G0|OOQQ1G0|1G0|OOQQ1G1P1G1PO)#mQUO'#JpO)#wQUO,5A]OOQQ1G0b1G0bOOQQ-E=[-E=[O)$PQUO,5;iO!<[QUO,5;iO)$|QVO,5:zO)%TQUO,5;gO$ mQUO7+&YOOQQ7+&Y7+&YO!(zQVO'#EfO)%[QUO,5:|OOQQ'#Kt'#KtOOQQ-E=W-E=WOOQQ,5A_,5A_OOQQ'#Jm'#JmO))PQUO7+&PPOQQ7+&P7+&POOQQ7+)W7+)WO))wQUO7+)WO)*}QVO7+)WOOQQ,5>n,5>nO$)YQVO'#JtO)+UQUO,5@sOOQQ1G/R1G/ROOQQ7+$z7+$zO)+aQUO7+(SO)+fQUO7+(SOOQR7+(S7+(SO$>uQUO7+(SOOQQ7+%u7+%uOOQR-E=_-E=_O!0VQUO,5;oOOQQ,5@P,5@POOQQ-E=c-E=cO$0^QUO1G1iOOQQ1G1i1G1iOOQR7+'R7+'ROOQR1G1t1G1tOBUQUO,5;rO),SQUO,5hQUO,5VQUO7+(aO)?]QUO7+(eO)?bQVO7+(eOOQQ7+(m7+(mOOQQ7+)[7+)[O)?jQUO'#KkO)?tQUO'#KkOOQR,5=c,5=cO)@RQUO,5=cO!;bQUO,5=cO!;bQUO,5=cO!;bQUO,5=cOOQR7+(h7+(hOOQR7+(v7+(vOOQR7+(z7+(zOOQR,5=x,5=xO)@WQUO,5={O)A^QUO,5=zOOQR,5Av,5AvOOQR-E=j-E=jOOQQ1G3c1G3cO)BdQUO,5=yO)BiQVO'#EfOOQQ1G6c1G6cO%)_QUO1G6cO%)dQUO1G6cOOQQ1G0P1G0POOQQ-E=R-E=RO)EQQUO,5AWO(%wQUO'#JUO)E]QUO,5AWO)E]QUO,5AWO)EeQUO,5:iO8zQUO,5:iOOQQ,5>^,5>^O)EoQUO,5ArO)EvQUO'#EVO)GQQUO'#EVO)GkQUO,5:iO)GuQUO'#HmO)GuQUO'#HnOOQQ'#Kp'#KpO)HdQUO'#KpO!(zQVO'#HoOOQQ,5:i,5:iO)IUQUO,5:iO!M_QVO,5:iOOQQ-E=T-E=TOOQQ1G0S1G0SOOQQ,5>a,5>aO)IZQUO1G6cO!(zQVO,5>hO)LxQUO'#JsO)MTQUO,5AyOOQQ1G4R1G4RO)M]QUO,5AxOOQQ,5Ax,5AxOOQQ7+)j7+)jO*!zQUO7+)jOOQQ7+)p7+)pO*'yQVO1G7iO*){QUO7+*TO**QQUO,5?UO*+WQUO7+*]POOO7+$S7+$SP*,yQUO'#LgP*-RQUO,5BQP*-W{,UO7+$SPOOO1G7j1G7jO*-]QUO<RQUO'#ElOOQQ1G0z1G0zOOQQ7+&j7+&jO*>gQUO7+&jO*?mQVO7+&jOOQQ7+&h7+&hOOQQ,5@[,5@[OOQQ-E=n-E=nO*@iQUO1G1TO*@sQUO1G1TO*A^QUO1G0fOOQQ1G0f1G0fO*BdQUO'#K|O*BlQUO1G1ROOQQ<OOOQQ-E=k-E=kPOQQ<uQUO<WO)GuQUO'#JqO*N`QUO1G0TO*NqQVO1G0TOOQQ1G3v1G3vO*NxQUO,5>XO+ TQUO,5>YO+ rQUO,5>ZO+!xQUO1G0TO%)dQUO7++}O+$OQUO1G4SOOQQ,5@_,5@_OOQQ-E=q-E=qOOQQ<o,5>oO+/wQUOANAYOOQRANAYANAYO+/|QUO7+'aOOQRAN@dAN@dO+1YQVOAN@oO+1aQUOAN@oO!0tQVOAN@oO+2jQUOAN@oO+2oQUOANAOO+2zQUOANAOO+4QQUOANAOOOQRAN@oAN@oO!M_QVOANAOOOQRANAPANAPO+4VQUO7+'}O)7eQUO7+'}OOQQ7+(P7+(PO+4hQUO7+(PO+5nQVO7+(PO+5uQVO7+'iO+5|QUOANAkOOQR7+(i7+(iOOQR7+)Q7+)QO+6RQUO7+)QO+6WQUO7+)QOOQQ<= i<= iO+6`QUO7+,^O+6hQUO1G5[OOQQ1G5[1G5[O+6sQUO7+%oOOQQ7+%o7+%oO+7UQUO7+%oO*NqQVO7+%oOOQQ7+)b7+)bO+7ZQUO7+%oO+8aQUO7+%oO!M_QVO7+%oO+8kQUO1G0]O*LyQUO1G0]O)EvQUO1G0]OOQQ1G0a1G0aO+9YQUO1G3rO+:`QVO1G3rOOQQ1G3r1G3rO+:jQVO1G3rO+:qQUO,5@]OOQQ-E=o-E=oOOQQ1G3s1G3sO%)_QUO<= iOOQQ7+*[7+*[POQQ,5@c,5@cPOQQ-E=u-E=uOOQQ1G/}1G/}OOQQ,5?y,5?yOOQQ-E=]-E=]OOQRG26tG26tO+;YQUOG26ZO!0tQVOG26ZO+UQUO<ZQUO<`QUO<uAN>uO+COQUOAN>uO+DUQUOAN>uO!M_QVOAN>uO+DZQUO<|QUO'#K[O,?^QUO'#CyO,?lQbO,59cO,6eQUO7+&OO,XP>r?U?jFdMf!&l!-UP!4Q!4u!5jP!6UPPPPPPPP!6oP!8ZPP!9n!;YP!;`PPPPPP!;cP!;cPP!;cPPPPPPPPP!;o!?XP!?[PP!?x!@mPPPPP!@qP>u!BUPP>u!D_!F`!Fn!HV!IxP!JTP!Jd!Jd!Mv##X#$q#(P#+]!F`#+gPP!F`#+n#+t#+g#+g#+wP#+{#,j#,j#,j#,j!IxP#-T#-f#/lP#0SP#1qP#1u#2P#2v#3R#5a#5i#5i#5p#1uP#1uP#6U#6[P#6fPP#7T#7t#8h#7TP#9[#9hP#7TP#7TPP#7T#7TP#7TP#7TP#7TP#7TP#7TP#7TP#9k#6f#:ZP#:rP#;Z#;Z#;Z#;Z#;h#1uP#u>u>u$%V!@m!@m!@m!@m!@m!@m!6o!6o!6o$%jP$'X$'g!6o$'mPP!6o$)}$*Q#B[$*T:{7o$-]$/W$0w$2g7oPP7o$4Z7oP7o7oP7oP$7c7oP7oPP7o$7oPPPPPPPPP*]P$:y$;P$=h$?p$?v$@^$@h$@s$AS$AY$Bj$Ci$Cp$Cw$C}$DV$Da$Dg$Dv$D|$EV$E_$Ej$Ep$Ez$FQ$F[$Fc$Ft$Fz$GQP$GW$G`$Gg$Gu$Ie$Ik$Iq$Ix$JRPPPPPPPP$JX$J]PPPPP%#a$)}%#d%&n%(xP%)V%)YPPPPPPPPPP%)f%*i%*o%*s%,l%-{%.n%.u%1W%1^PPP%1h%1s%1v%1|%3T%3W%3d%3n%3r%4x%5m%5s#BeP%6^%6p%6s%7V%7e%7i%7o%7u$)}$*Q$*Q%7x%7{P%8V%8YR#cP'dmO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'e'j'k'z(a(c(j)m)s*i*j*m*r*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-f-j.S.T.X/Q/T/_/f/o/q/v/x0k1O1T1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:jU%om%p7UQ&m!`Q(k#]d0S*O0P0Q0R0U5R5S5T5W8UR7U3Xf}Oaewx{!g&S'e*r-f&v$i[!W!X!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&W&b&f&x&y&|'O'P'b'j'k'z(a(c(j)m)s*i*j*m*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-j.S.T.X/Q/T/_/f/o/q/v/x1O1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:jS%`f0k#d%jgnp|#O$g$|$}%S%d%h%i%w&s'u'v(R*Z*a*c*u+^,m,w-`-s-z.i.p.r0`0|0}1R1V2b2m5e6k;[;];^;d;e;f;s;t;u;v;z;{;|;}<[<]<^S%qm!YS&u!h#PQ']!tQ'h!yQ'i!zQ(k#`Q(l#]Q(m#^Q*y%kQ,X&lQ,^&nQ-T'^Q-g'gQ-n'rS.u([4]Q/i)hQ0h*nQ2T,]Q2[,dQ3S-hQ4f/PQ4j/WQ5j1QQ6`2WQ7R3TQ8e6_Q9i8OR;_1T$|#hS!]$y%Q%T%Z&j&k'Q'X'Z'a'c(b(f(i(x(y)S)T)U)V)W)X)Y)Z)[)])^)_)`)l)r)y+Y+h,P,T,k,v-k-l.P.|/s0c0e0j0l0z1c1|2d2k3V3g3h4g4h4n4q4w4y4}5O5h5t5{6Y6i6m6w7O7u7v7x8W8X8g8j8n8v9X9`9o9u:Q:X:^:d:mQ&p!dQ(h#ZQ(t#bQ)k$T[*t%e*X0n2c2j3OQ,_&oQ/R(gQ/V(lQ/^(uS/l)j/SQ0u+RS4u/m/nR8S4v'e![O[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'e'j'k'z(a(c(j)m)s*i*j*m*r*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-f-j.S.T.X/Q/T/_/f/o/q/v/x0k1O1T1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:j'e!VO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'e'j'k'z(a(c(j)m)s*i*j*m*r*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-f-j.S.T.X/Q/T/_/f/o/q/v/x0k1O1T1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:jQ)P#kS+R%y0vQ/u)tk4R.j3w3{4O4P7g7i7j7l7o9]9^:VQ)R#kk4Q.j3w3{4O4P7g7i7j7l7o9]9^:Vl)Q#k.j3w3{4O4P7g7i7j7l7o9]9^:VT+R%y0v`UOwx!g&S'e*r-fW$`[e$e(c#l$p_!f!u!}#R#S#T#U#V#Z$S$T$l%U&U&Y&c&m'_(O(Q(V(_(h)k)q+]+b+c+u+z,Y,l,{-R-r-w.Z.[.b.c.g.t.x1W1[1i1n1p2o3`3a3b3t3x5n6R6T7`8_![%cg$g%d%i&s*Z*u+^,m,w-`0}1R2b;[;];^;e;f;s;t;u;v;z;{;}<[<]<^Y%snp%w-s.il(}#k.j3w3{4O4P7g7i7j7l7o9]9^:VS;i'u-zU;j(R.p.r&| MacroName LineComment BlockComment PreprocDirective #include String EscapeSequence SystemLibString Identifier ArgumentList ( ConditionalExpression AssignmentExpression CallExpression PrimitiveType FieldExpression FieldIdentifier DestructorName TemplateMethod ScopedFieldIdentifier NamespaceIdentifier TemplateType TypeIdentifier ScopedTypeIdentifier ScopedNamespaceIdentifier :: NamespaceIdentifier TypeIdentifier TemplateArgumentList < TypeDescriptor const volatile restrict _Atomic mutable constexpr constinit consteval StructSpecifier struct MsDeclspecModifier __declspec ) Attribute AttributeName Identifier AttributeArgs { } [ ] UpdateOp ArithOp ArithOp ArithOp LogicOp BitOp BitOp BitOp CompareOp CompareOp CompareOp > CompareOp BitOp UpdateOp , Number CharLiteral AttributeArgs VirtualSpecifier BaseClassClause Access virtual FieldDeclarationList FieldDeclaration extern static register inline thread_local AttributeSpecifier __attribute__ PointerDeclarator MsBasedModifier __based MsPointerModifier FunctionDeclarator ParameterList ParameterDeclaration PointerDeclarator FunctionDeclarator Noexcept noexcept RequiresClause requires True False ParenthesizedExpression CommaExpression LambdaExpression LambdaCaptureSpecifier TemplateParameterList OptionalParameterDeclaration TypeParameterDeclaration typename class VariadicParameterDeclaration VariadicDeclarator ReferenceDeclarator OptionalTypeParameterDeclaration VariadicTypeParameterDeclaration TemplateTemplateParameterDeclaration template AbstractFunctionDeclarator AbstractPointerDeclarator AbstractArrayDeclarator AbstractParenthesizedDeclarator AbstractReferenceDeclarator ThrowSpecifier throw TrailingReturnType CompoundStatement FunctionDefinition MsCallModifier TryStatement try CatchClause catch LinkageSpecification Declaration InitDeclarator InitializerList InitializerPair SubscriptDesignator FieldDesignator DeclarationList ExportDeclaration export ImportDeclaration import ModuleName PartitionName HeaderName CaseStatement case default LabeledStatement StatementIdentifier ExpressionStatement IfStatement if ConditionClause Declaration else SwitchStatement switch DoStatement do while WhileStatement ForStatement for ReturnStatement return BreakStatement break ContinueStatement continue GotoStatement goto CoReturnStatement co_return CoYieldStatement co_yield AttributeStatement ForRangeLoop AliasDeclaration using TypeDefinition typedef PointerDeclarator FunctionDeclarator ArrayDeclarator ParenthesizedDeclarator ThrowStatement NamespaceDefinition namespace ScopedIdentifier Identifier OperatorName operator ArithOp BitOp CompareOp LogicOp new delete co_await ConceptDefinition concept UsingDeclaration enum StaticAssertDeclaration static_assert ConcatenatedString TemplateDeclaration FriendDeclaration friend union FunctionDefinition ExplicitFunctionSpecifier explicit FieldInitializerList FieldInitializer DefaultMethodClause DeleteMethodClause FunctionDefinition OperatorCast operator TemplateInstantiation FunctionDefinition FunctionDefinition Declaration ModuleDeclaration module RequiresExpression RequirementList SimpleRequirement TypeRequirement CompoundRequirement ReturnTypeRequirement ConstraintConjuction LogicOp ConstraintDisjunction LogicOp ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator TemplateFunction OperatorName StructuredBindingDeclarator ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator BitfieldClause FunctionDefinition FunctionDefinition Declaration FunctionDefinition Declaration AccessSpecifier UnionSpecifier ClassSpecifier EnumSpecifier SizedTypeSpecifier TypeSize EnumeratorList Enumerator DependentType Decltype decltype auto PlaceholderTypeSpecifier ParameterPackExpansion ParameterPackExpansion FieldIdentifier PointerExpression SubscriptExpression BinaryExpression ArithOp LogicOp LogicOp BitOp UnaryExpression LogicOp BitOp UpdateExpression CastExpression SizeofExpression sizeof CoAwaitExpression CompoundLiteralExpression NULL NewExpression new NewDeclarator DeleteExpression delete ParameterPackExpansion nullptr this UserDefinedLiteral ParamPack #define PreprocArg #if #ifdef #ifndef #else #endif #elif PreprocDirectiveName Macro Program",maxTerm:426,nodeProps:[["group",-35,1,8,11,14,15,16,18,71,72,100,101,102,104,192,209,230,243,244,271,272,273,278,281,282,283,285,286,287,288,291,293,294,295,296,297,"Expression",-13,17,24,25,26,42,256,257,258,259,263,264,266,267,"Type",-19,126,129,148,151,153,154,159,161,164,165,167,169,171,173,175,177,179,180,189,"Statement"]],propSources:[g],skippedNodes:[0,3,4,5,6,7,10,298,299,300,301,302,303,304,305,306,307,348,349],repeatNodeCount:41,tokenData:"&*r7ZR!UOX$eXY({YZ.gZ]$e]^+P^p$epq({qr.}rs0}st2ktu$euv!7dvw!9bwx!;exy!O{|!?R|}!AV}!O!BQ!O!P!DX!P!Q#+y!Q!R#Az!R![$(x![!]$Ag!]!^$Cc!^!_$D^!_!`%1W!`!a%2X!a!b%5_!b!c$e!c!n%6Y!n!o%7q!o!w%6Y!w!x%7q!x!}%6Y!}#O%:n#O#P%u#Y#]4Y#]#^NZ#^#o4Y#o;'S$e;'S;=`(u<%lO$e4e4eb)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#o4Y#o;'S$e;'S;=`(u<%lO$e4e5xd)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#X4Y#X#Y7W#Y#o4Y#o;'S$e;'S;=`(u<%lO$e4e7cd)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#Y4Y#Y#Z8q#Z#o4Y#o;'S$e;'S;=`(u<%lO$e4e8|d)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#]4Y#]#^:[#^#o4Y#o;'S$e;'S;=`(u<%lO$e4e:gd)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#b4Y#b#c;u#c#o4Y#o;'S$e;'S;=`(u<%lO$e4e][)T,g)[W(qQ%[!b'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!?`^)[W(qQ%[!b!Y,g'g&jOY$eZr$ers%^sw$ewx(Ox{$e{|!@[|!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!@gY)[W!X-y(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!AbY!h,k)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!B__)[W(qQ%[!b!Y,g'g&jOY$eZr$ers%^sw$ewx(Ox}$e}!O!@[!O!_$e!_!`!8g!`!a!C^!a#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!CiY(y-y)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!Dd^)[W(qQ'g&j(x,gOY$eZr$ers%^sw$ewx(Ox!O$e!O!P!E`!P!Q$e!Q![!GY![#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!Ei[)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!O$e!O!P!F_!P#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!FjY)Y,k)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2]!Gen)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx!Icx!Q$e!Q![!GY![!g$e!g!h#$w!h!i#*Y!i!n$e!n!o#*Y!o!r$e!r!s#$w!s!w$e!w!x#*Y!x#O$e#O#P&f#P#X$e#X#Y#$w#Y#Z#*Y#Z#`$e#`#a#*Y#a#d$e#d#e#$w#e#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2T!IjY(qQ'g&jOY(OZr(Ors%}s!Q(O!Q![!JY![#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O2T!Jcn(qQ!i,g'g&jOY(OZr(Ors%}sw(Owx!Icx!Q(O!Q![!JY![!g(O!g!h!La!h!i##`!i!n(O!n!o##`!o!r(O!r!s!La!s!w(O!w!x##`!x#O(O#O#P&f#P#X(O#X#Y!La#Y#Z##`#Z#`(O#`#a##`#a#d(O#d#e!La#e#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T!Ljl(qQ!i,g'g&jOY(OZr(Ors%}s{(O{|!Nb|}(O}!O!Nb!O!Q(O!Q![# e![!c(O!c!h# e!h!i# e!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#T(O#T#Y# e#Y#Z# e#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T!Ni^(qQ'g&jOY(OZr(Ors%}s!Q(O!Q![# e![!c(O!c!i# e!i#O(O#O#P&f#P#T(O#T#Z# e#Z;'S(O;'S;=`(o<%lO(O2T# nj(qQ!i,g'g&jOY(OZr(Ors%}sw(Owx!Nbx!Q(O!Q![# e![!c(O!c!h# e!h!i# e!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#T(O#T#Y# e#Y#Z# e#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T##id(qQ!i,g'g&jOY(OZr(Ors%}s!h(O!h!i##`!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#Y(O#Y#Z##`#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2]#%Sn)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx(Ox{$e{|#'Q|}$e}!O#'Q!O!Q$e!Q![#(]![!c$e!c!h#(]!h!i#(]!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#Y#(]#Y#Z#(]#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2]#'Z`)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![#(]![!c$e!c!i#(]!i#O$e#O#P&f#P#T$e#T#Z#(]#Z;'S$e;'S;=`(u<%lO$e2]#(hj)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx!Nbx!Q$e!Q![#(]![!c$e!c!h#(]!h!i#(]!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#Y#(]#Y#Z#(]#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2]#*ef)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx(Ox!h$e!h!i#*Y!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#Y$e#Y#Z#*Y#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e7Z#,W`)[W(qQ%[!b![,g'g&jOY$eZr$ers%^sw$ewx(Oxz$ez{#-Y{!P$e!P!Q#:s!Q!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z#-c])[W(qQ'g&jOY#-YYZ#.[Zr#-Yrs#/csw#-Ywx#5wxz#-Yz{#8j{#O#-Y#O#P#2`#P;'S#-Y;'S;=`#:m<%lO#-Y1e#._TOz#.[z{#.n{;'S#.[;'S;=`#/]<%lO#.[1e#.qVOz#.[z{#.n{!P#.[!P!Q#/W!Q;'S#.[;'S;=`#/]<%lO#.[1e#/]OT1e1e#/`P;=`<%l#.[7X#/jZ)[W'g&jOY#/cYZ#.[Zw#/cwx#0]xz#/cz{#4O{#O#/c#O#P#2`#P;'S#/c;'S;=`#5q<%lO#/c7P#0bX'g&jOY#0]YZ#.[Zz#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#1SZ'g&jOY#0]YZ#.[Zz#0]z{#0}{!P#0]!P!Q#1u!Q#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#1|UT1e'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}7P#2eZ'g&jOY#0]YZ#0]Z]#0]]^#3W^z#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#3]X'g&jOY#0]YZ#0]Zz#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#3{P;=`<%l#0]7X#4V])[W'g&jOY#/cYZ#.[Zw#/cwx#0]xz#/cz{#4O{!P#/c!P!Q#5O!Q#O#/c#O#P#2`#P;'S#/c;'S;=`#5q<%lO#/c7X#5XW)[WT1e'g&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^7X#5tP;=`<%l#/c7R#6OZ(qQ'g&jOY#5wYZ#.[Zr#5wrs#0]sz#5wz{#6q{#O#5w#O#P#2`#P;'S#5w;'S;=`#8d<%lO#5w7R#6x](qQ'g&jOY#5wYZ#.[Zr#5wrs#0]sz#5wz{#6q{!P#5w!P!Q#7q!Q#O#5w#O#P#2`#P;'S#5w;'S;=`#8d<%lO#5w7R#7zW(qQT1e'g&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O7R#8gP;=`<%l#5w7Z#8s_)[W(qQ'g&jOY#-YYZ#.[Zr#-Yrs#/csw#-Ywx#5wxz#-Yz{#8j{!P#-Y!P!Q#9r!Q#O#-Y#O#P#2`#P;'S#-Y;'S;=`#:m<%lO#-Y7Z#9}Y)[W(qQT1e'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z#:pP;=`<%l#-Y7Z#;OY)[W(qQS1e'g&jOY#:sZr#:srs#;nsw#:swx#@{x#O#:s#O#P#[<%lO#b#P;'S#[<%lO#[<%lO#_P;=`<%l#i]S1e'g&jOY#b#P#b#[<%lO#[<%lO#b#P#b#[<%lO#t!R![$2V![!c$e!c!i$2V!i#O$e#O#P&f#P#T$e#T#Z$2V#Z;'S$e;'S;=`(u<%lO$e2]$?Pv)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx$4lx!O$e!O!P$ m!P!Q$e!Q![$2V![!c$e!c!g$2V!g!h$:p!h!i$2V!i!n$e!n!o#*Y!o!r$e!r!s#$w!s!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#U$2V#U#V$2V#V#X$2V#X#Y$:p#Y#Z$2V#Z#`$e#`#a#*Y#a#d$e#d#e#$w#e#i$e#i#j#*Y#j#l$e#l#m$0z#m;'S$e;'S;=`(u<%lO$e4e$Ar[(w-X)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox![$e![!]$Bh!]#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3s$BsYl-})[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2]$CnY)X,g)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7V$Dk_p,g%^!b)[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!^$Ej!^!_%+w!_!`%.U!`!a%0]!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej*[$Es])[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ejp$FoTO!`$Fl!`!a$GO!a;'S$Fl;'S;=`$GT<%lO$Flp$GTO$Xpp$GWP;=`<%l$Fl*Y$GbZ)[W'g&jOY$GZYZ$FlZw$GZwx$HTx!`$GZ!`!a%(U!a#O$GZ#O#P$Ib#P;'S$GZ;'S;=`%(y<%lO$GZ*Q$HYX'g&jOY$HTYZ$FlZ!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT*Q$IOU$XpY#t'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}*Q$Ig['g&jOY$HTYZ$HTZ]$HT]^$J]^!`$HT!`!a$NO!a#O$HT#O#P%&n#P;'S$HT;'S;=`%'f;=`<%l%$z<%lO$HT*Q$JbX'g&jOY$HTYZ$J}Z!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT'[$KSX'g&jOY$J}YZ$FlZ!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$KvU$Xp'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}'[$L_Z'g&jOY$J}YZ$J}Z]$J}]^$MQ^!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$MVX'g&jOY$J}YZ$J}Z!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$MuP;=`<%l$J}*Q$M{P;=`<%l$HT*Q$NVW$Xp'g&jOY$NoZ!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`$NtW'g&jOY$NoZ!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`% eUY#t'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%})`% |Y'g&jOY$NoYZ$NoZ]$No]^%!l^#O$No#O#P%#d#P;'S$No;'S;=`%$[;=`<%l%$z<%lO$No)`%!qX'g&jOY$NoYZ%}Z!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`%#aP;=`<%l$No)`%#iZ'g&jOY$NoYZ%}Z]$No]^%!l^!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`%$_XOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l$No<%lO%$z#t%$}WOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h<%lO%$z#t%%lOY#t#t%%oRO;'S%$z;'S;=`%%x;=`O%$z#t%%{XOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l%$z<%lO%$z#t%&kP;=`<%l%$z*Q%&sZ'g&jOY$HTYZ$J}Z]$HT]^$J]^!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT*Q%'iXOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l$HT<%lO%$z*Y%(aW$XpY#t)[W'g&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^*Y%(|P;=`<%l$GZ*S%)WZ(qQ'g&jOY%)PYZ$FlZr%)Prs$HTs!`%)P!`!a%)y!a#O%)P#O#P$Ib#P;'S%)P;'S;=`%*n<%lO%)P*S%*UW$XpY#t(qQ'g&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O*S%*qP;=`<%l%)P*[%+RY$XpY#t)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e*[%+tP;=`<%l$Ej7V%,U^)[W(qQ%]!b!f,g'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!_$Ej!_!`%-Q!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%-]]!g-y)[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%.c]%^!b!b,g)[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%/[!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%/mY%^!b!b,g$XpY#t)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e)j%0hYY#t)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%1c[)k!c)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`0Q!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%2f]%^!b)[W(qQ!d,g'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`%3_!`!a%4[!a#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%3lY%^!b!b,g)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%4i[)[W(qQ%]!b!f,g'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e&u%5jY(vP)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z%6ib)[W(zS(qQ!R,f(s%y'g&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e7Z%8Qb)[W(zS(qQ!R,f(s%y'g&jOY$eZr$ers%9Ysw$ewx%9{x!Q$e!Q![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e5P%9cW)[W(p/]'g&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^2T%:UW(qQ)Z,g'g&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O3o%:yZ!V-y)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!}$e!}#O%;l#O#P&f#P;'S$e;'S;=`(u<%lO$e&u%;wY)QP)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e4e%[Z]%=q]^%?Z^!Q%=q!Q![%?w![!w%=q!w!x%AX!x#O%=q#O#P%H_#P#i%=q#i#j%Ds#j#l%=q#l#m%IR#m;'S%=q;'S;=`%Kt<%lO%=q&t%=xUXY'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}4e%>e[XY(o.o'g&jOX%}XY-OYZ*[Z]%}]^-O^p%}pq-Oq#O%}#O#P,^#P;'S%};'S;=`'r<%lO%}4e%?bVXY'g&jOY%}YZ-OZ#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%@OWXY'g&jOY%}Z!Q%}!Q![%@h![#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%@oWXY'g&jOY%}Z!Q%}!Q![%=q![#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%A^['g&jOY%}Z!Q%}!Q![%BS![!c%}!c!i%BS!i#O%}#O#P&f#P#T%}#T#Z%BS#Z;'S%};'S;=`'r<%lO%}&t%BX['g&jOY%}Z!Q%}!Q![%B}![!c%}!c!i%B}!i#O%}#O#P&f#P#T%}#T#Z%B}#Z;'S%};'S;=`'r<%lO%}&t%CS['g&jOY%}Z!Q%}!Q![%Cx![!c%}!c!i%Cx!i#O%}#O#P&f#P#T%}#T#Z%Cx#Z;'S%};'S;=`'r<%lO%}&t%C}['g&jOY%}Z!Q%}!Q![%Ds![!c%}!c!i%Ds!i#O%}#O#P&f#P#T%}#T#Z%Ds#Z;'S%};'S;=`'r<%lO%}&t%Dx['g&jOY%}Z!Q%}!Q![%En![!c%}!c!i%En!i#O%}#O#P&f#P#T%}#T#Z%En#Z;'S%};'S;=`'r<%lO%}&t%Es['g&jOY%}Z!Q%}!Q![%Fi![!c%}!c!i%Fi!i#O%}#O#P&f#P#T%}#T#Z%Fi#Z;'S%};'S;=`'r<%lO%}&t%Fn['g&jOY%}Z!Q%}!Q![%Gd![!c%}!c!i%Gd!i#O%}#O#P&f#P#T%}#T#Z%Gd#Z;'S%};'S;=`'r<%lO%}&t%Gi['g&jOY%}Z!Q%}!Q![%=q![!c%}!c!i%=q!i#O%}#O#P&f#P#T%}#T#Z%=q#Z;'S%};'S;=`'r<%lO%}&t%HfXXY'g&jOY%}YZ%}Z]%}]^'W^#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%IW['g&jOY%}Z!Q%}!Q![%I|![!c%}!c!i%I|!i#O%}#O#P&f#P#T%}#T#Z%I|#Z;'S%};'S;=`'r<%lO%}&t%JR['g&jOY%}Z!Q%}!Q![%Jw![!c%}!c!i%Jw!i#O%}#O#P&f#P#T%}#T#Z%Jw#Z;'S%};'S;=`'r<%lO%}&t%KO[XY'g&jOY%}Z!Q%}!Q![%Jw![!c%}!c!i%Jw!i#O%}#O#P&f#P#T%}#T#Z%Jw#Z;'S%};'S;=`'r<%lO%}&t%KwP;=`<%l%=q2a%LVZ!W,V)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P#Q%Lx#Q;'S$e;'S;=`(u<%lO$e'Y%MTY)^d)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%NQ[)[W(qQ%]!b'g&j!_,gOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z& Vd)[W(zS(qQ!R,f(s%y'g&jOY$eZr$ers%9Ysw$ewx%9{x!Q$e!Q!Y%6Y!Y!Z%7q!Z![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e2]&!pY!T,g)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o&#m^)[W(qQ%]!b'g&j!^,gOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P#p$e#p#q&$i#q;'S$e;'S;=`(u<%lO$e3o&$vY)U,g%_!b)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e'V&%qY!Ua)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e(]&&nc)[W(qQ%]!b'SP'g&jOX$eXY&'yZp$epq&'yqr$ers%^sw$ewx(Ox!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e&y&(Sc)[W(qQ'g&jOX$eXY&'yZp$epq&'yqr$ers%^sw$ewx(Ox!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e&y&)jb)[W(qQdT'g&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![&)_![!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e",tokenizers:[W,f,0,1,2,3,4,5,6,7,8,9],topRules:{Program:[0,308]},dynamicPrecedences:{87:1,94:1,119:1,185:1,188:-10,241:-10,242:1,245:-1,247:-10,248:1,263:-1,268:2,269:2,307:-10,366:3,418:1,419:3,420:1,421:1},specialized:[{term:357,get:O=>q[O]||-1},{term:32,get:O=>Z[O]||-1},{term:66,get:O=>p[O]||-1},{term:364,get:O=>d[O]||-1}],tokenPrec:24905});var y=e(4452);const m=y.LRLanguage.define({name:"cpp",parser:b.configure({props:[y.indentNodeProp.add({IfStatement:(0,y.continuedIndent)({except:/^\s*({|else\b)/}),TryStatement:(0,y.continuedIndent)({except:/^\s*({|catch)\b/}),LabeledStatement:y.flatIndent,CaseStatement:O=>O.baseIndent+O.unit,BlockComment:()=>null,CompoundStatement:(0,y.delimitedIndent)({closing:"}"}),Statement:(0,y.continuedIndent)({except:/^{/})}),y.foldNodeProp.add({"DeclarationList CompoundStatement EnumeratorList FieldDeclarationList InitializerList":y.foldInside,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/,closeBrackets:{stringPrefixes:["L","u","U","u8","LR","UR","uR","u8R","R"]}}});function R(){return new y.LanguageSupport(m)}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6170.65d899f43342f1e34bf1.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6170.65d899f43342f1e34bf1.js deleted file mode 100644 index fe45096f3f618b72668d15402e6ccd1e559fa2db..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6170.65d899f43342f1e34bf1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6170,8368],{85987:(e,t,r)=>{r.r(t);r.d(t,{javascript:()=>i,json:()=>a,jsonld:()=>u,typescript:()=>f});function n(e){var t=e.statementIndent;var r=e.jsonld;var n=e.json||r;var i=e.typescript;var a=e.wordCharacters||/[\w$\xa1-\uffff]/;var u=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("keyword d");var a=e("operator"),u={type:"atom",style:"atom"};return{if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:i,break:i,continue:i,new:e("new"),delete:n,void:n,throw:n,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:a,typeof:a,instanceof:a,true:u,false:u,null:u,undefined:u,NaN:u,Infinity:u,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n}}();var f=/[+\-*&%=<>!?|~^@]/;var s=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function o(e){var t=false,r,n=false;while((r=e.next())!=null){if(!t){if(r=="/"&&!n)return;if(r=="[")n=true;else if(n&&r=="]")n=false}t=!t&&r=="\\"}}var l,c;function p(e,t,r){l=e;c=r;return t}function d(e,t){var r=e.next();if(r=='"'||r=="'"){t.tokenize=m(r);return t.tokenize(e,t)}else if(r=="."&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/)){return p("number","number")}else if(r=="."&&e.match("..")){return p("spread","meta")}else if(/[\[\]{}\(\),;\:\.]/.test(r)){return p(r)}else if(r=="="&&e.eat(">")){return p("=>","operator")}else if(r=="0"&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)){return p("number","number")}else if(/\d/.test(r)){e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/);return p("number","number")}else if(r=="/"){if(e.eat("*")){t.tokenize=v;return v(e,t)}else if(e.eat("/")){e.skipToEnd();return p("comment","comment")}else if(et(e,t,1)){o(e);e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/);return p("regexp","string.special")}else{e.eat("=");return p("operator","operator",e.current())}}else if(r=="`"){t.tokenize=k;return k(e,t)}else if(r=="#"&&e.peek()=="!"){e.skipToEnd();return p("meta","meta")}else if(r=="#"&&e.eatWhile(a)){return p("variable","property")}else if(r=="<"&&e.match("!--")||r=="-"&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start))){e.skipToEnd();return p("comment","comment")}else if(f.test(r)){if(r!=">"||!t.lexical||t.lexical.type!=">"){if(e.eat("=")){if(r=="!"||r=="=")e.eat("=")}else if(/[<>*+\-|&?]/.test(r)){e.eat(r);if(r==">")e.eat(r)}}if(r=="?"&&e.eat("."))return p(".");return p("operator","operator",e.current())}else if(a.test(r)){e.eatWhile(a);var n=e.current();if(t.lastType!="."){if(u.propertyIsEnumerable(n)){var i=u[n];return p(i.type,i.style,n)}if(n=="async"&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,false))return p("async","keyword",n)}return p("variable","variable",n)}}function m(e){return function(t,n){var i=false,a;if(r&&t.peek()=="@"&&t.match(s)){n.tokenize=d;return p("jsonld-keyword","meta")}while((a=t.next())!=null){if(a==e&&!i)break;i=!i&&a=="\\"}if(!i)n.tokenize=d;return p("string","string")}}function v(e,t){var r=false,n;while(n=e.next()){if(n=="/"&&r){t.tokenize=d;break}r=n=="*"}return p("comment","comment")}function k(e,t){var r=false,n;while((n=e.next())!=null){if(!r&&(n=="`"||n=="$"&&e.eat("{"))){t.tokenize=d;break}r=!r&&n=="\\"}return p("quasi","string.special",e.current())}var h="([{}])";function y(e,t){if(t.fatArrowAt)t.fatArrowAt=null;var r=e.string.indexOf("=>",e.start);if(r<0)return;if(i){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r));if(n)r=n.index}var u=0,f=false;for(var s=r-1;s>=0;--s){var o=e.string.charAt(s);var l=h.indexOf(o);if(l>=0&&l<3){if(!u){++s;break}if(--u==0){if(o=="(")f=true;break}}else if(l>=3&&l<6){++u}else if(a.test(o)){f=true}else if(/["'\/`]/.test(o)){for(;;--s){if(s==0)return;var c=e.string.charAt(s-1);if(c==o&&e.string.charAt(s-2)!="\\"){s--;break}}}else if(f&&!u){++s;break}}if(f&&!u)t.fatArrowAt=s}var w={atom:true,number:true,variable:true,string:true,regexp:true,this:true,import:true,"jsonld-keyword":true};function b(e,t,r,n,i,a){this.indented=e;this.column=t;this.type=r;this.prev=i;this.info=a;if(n!=null)this.align=n}function g(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return true;for(var n=e.context;n;n=n.prev){for(var r=n.vars;r;r=r.next)if(r.name==t)return true}}function x(e,t,r,i,a){var u=e.cc;j.state=e;j.stream=a;j.marked=null;j.cc=u;j.style=t;if(!e.lexical.hasOwnProperty("align"))e.lexical.align=true;while(true){var f=u.length?u.pop():n?P:q;if(f(r,i)){while(u.length&&u[u.length-1].lex)u.pop()();if(j.marked)return j.marked;if(r=="variable"&&g(e,i))return"variableName.local";return t}}}var j={state:null,column:null,marked:null,cc:null};function S(){for(var e=arguments.length-1;e>=0;e--)j.cc.push(arguments[e])}function A(){S.apply(null,arguments);return true}function L(e,t){for(var r=t;r;r=r.next)if(r.name==e)return true;return false}function T(t){var r=j.state;j.marked="def";if(r.context){if(r.lexical.info=="var"&&r.context&&r.context.block){var n=N(t,r.context);if(n!=null){r.context=n;return}}else if(!L(t,r.localVars)){r.localVars=new I(t,r.localVars);return}}if(e.globalVars&&!L(t,r.globalVars))r.globalVars=new I(t,r.globalVars)}function N(e,t){if(!t){return null}else if(t.block){var r=N(e,t.prev);if(!r)return null;if(r==t.prev)return t;return new O(r,t.vars,true)}else if(L(e,t.vars)){return t}else{return new O(t.prev,new I(e,t.vars),false)}}function V(e){return e=="public"||e=="private"||e=="protected"||e=="abstract"||e=="readonly"}function O(e,t,r){this.prev=e;this.vars=t;this.block=r}function I(e,t){this.name=e;this.next=t}var E=new I("this",new I("arguments",null));function z(){j.state.context=new O(j.state.context,j.state.localVars,false);j.state.localVars=E}function C(){j.state.context=new O(j.state.context,j.state.localVars,true);j.state.localVars=null}z.lex=C.lex=true;function _(){j.state.localVars=j.state.context.vars;j.state.context=j.state.context.prev}_.lex=true;function $(e,t){var r=function(){var r=j.state,n=r.indented;if(r.lexical.type=="stat")n=r.lexical.indented;else for(var i=r.lexical;i&&i.type==")"&&i.align;i=i.prev)n=i.indented;r.lexical=new b(n,j.stream.column(),e,null,r.lexical,t)};r.lex=true;return r}function D(){var e=j.state;if(e.lexical.prev){if(e.lexical.type==")")e.indented=e.lexical.indented;e.lexical=e.lexical.prev}}D.lex=true;function F(e){function t(r){if(r==e)return A();else if(e==";"||r=="}"||r==")"||r=="]")return S();else return A(t)}return t}function q(e,t){if(e=="var")return A($("vardef",t),Se,F(";"),D);if(e=="keyword a")return A($("form"),B,q,D);if(e=="keyword b")return A($("form"),q,D);if(e=="keyword d")return j.stream.match(/^\s*$/,false)?A():A($("stat"),G,F(";"),D);if(e=="debugger")return A(F(";"));if(e=="{")return A($("}"),C,se,D,_);if(e==";")return A();if(e=="if"){if(j.state.lexical.info=="else"&&j.state.cc[j.state.cc.length-1]==D)j.state.cc.pop()();return A($("form"),B,q,D,Oe)}if(e=="function")return A(Ce);if(e=="for")return A($("form"),C,Ie,q,_,D);if(e=="class"||i&&t=="interface"){j.marked="keyword";return A($("form",e=="class"?e:t),qe,D)}if(e=="variable"){if(i&&t=="declare"){j.marked="keyword";return A(q)}else if(i&&(t=="module"||t=="enum"||t=="type")&&j.stream.match(/^\s*\w/,false)){j.marked="keyword";if(t=="enum")return A(Re);else if(t=="type")return A($e,F("operator"),de,F(";"));else return A($("form"),Ae,F("{"),$("}"),se,D,D)}else if(i&&t=="namespace"){j.marked="keyword";return A($("form"),P,q,D)}else if(i&&t=="abstract"){j.marked="keyword";return A(q)}else{return A($("stat"),te)}}if(e=="switch")return A($("form"),B,F("{"),$("}","switch"),C,se,D,D,_);if(e=="case")return A(P,F(":"));if(e=="default")return A(F(":"));if(e=="catch")return A($("form"),z,U,q,D,_);if(e=="export")return A($("stat"),Be,D);if(e=="import")return A($("stat"),Ge,D);if(e=="async")return A(q);if(t=="@")return A(P,q);return S($("stat"),P,F(";"),D)}function U(e){if(e=="(")return A(De,F(")"))}function P(e,t){return Z(e,t,false)}function W(e,t){return Z(e,t,true)}function B(e){if(e!="(")return S();return A($(")"),G,F(")"),D)}function Z(e,t,r){if(j.state.fatArrowAt==j.stream.start){var n=r?R:Q;if(e=="(")return A(z,$(")"),ue(De,")"),D,F("=>"),n,_);else if(e=="variable")return S(z,Ae,F("=>"),n,_)}var a=r?J:H;if(w.hasOwnProperty(e))return A(a);if(e=="function")return A(Ce,a);if(e=="class"||i&&t=="interface"){j.marked="keyword";return A($("form"),Fe,D)}if(e=="keyword c"||e=="async")return A(r?W:P);if(e=="(")return A($(")"),G,F(")"),D,a);if(e=="operator"||e=="spread")return A(r?W:P);if(e=="[")return A($("]"),Qe,D,a);if(e=="{")return fe(ne,"}",null,a);if(e=="quasi")return S(K,a);if(e=="new")return A(X(r));return A()}function G(e){if(e.match(/[;\}\)\],]/))return S();return S(P)}function H(e,t){if(e==",")return A(G);return J(e,t,false)}function J(e,t,r){var n=r==false?H:J;var a=r==false?P:W;if(e=="=>")return A(z,r?R:Q,_);if(e=="operator"){if(/\+\+|--/.test(t)||i&&t=="!")return A(n);if(i&&t=="<"&&j.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,false))return A($(">"),ue(de,">"),D,n);if(t=="?")return A(P,F(":"),a);return A(a)}if(e=="quasi"){return S(K,n)}if(e==";")return;if(e=="(")return fe(W,")","call",n);if(e==".")return A(re,n);if(e=="[")return A($("]"),G,F("]"),D,n);if(i&&t=="as"){j.marked="keyword";return A(de,n)}if(e=="regexp"){j.state.lastType=j.marked="operator";j.stream.backUp(j.stream.pos-j.stream.start-1);return A(a)}}function K(e,t){if(e!="quasi")return S();if(t.slice(t.length-2)!="${")return A(K);return A(G,M)}function M(e){if(e=="}"){j.marked="string.special";j.state.tokenize=k;return A(K)}}function Q(e){y(j.stream,j.state);return S(e=="{"?q:P)}function R(e){y(j.stream,j.state);return S(e=="{"?q:W)}function X(e){return function(t){if(t==".")return A(e?ee:Y);else if(t=="variable"&&i)return A(ge,e?J:H);else return S(e?W:P)}}function Y(e,t){if(t=="target"){j.marked="keyword";return A(H)}}function ee(e,t){if(t=="target"){j.marked="keyword";return A(J)}}function te(e){if(e==":")return A(D,q);return S(H,F(";"),D)}function re(e){if(e=="variable"){j.marked="property";return A()}}function ne(e,t){if(e=="async"){j.marked="property";return A(ne)}else if(e=="variable"||j.style=="keyword"){j.marked="property";if(t=="get"||t=="set")return A(ie);var n;if(i&&j.state.fatArrowAt==j.stream.start&&(n=j.stream.match(/^\s*:\s*/,false)))j.state.fatArrowAt=j.stream.pos+n[0].length;return A(ae)}else if(e=="number"||e=="string"){j.marked=r?"property":j.style+" property";return A(ae)}else if(e=="jsonld-keyword"){return A(ae)}else if(i&&V(t)){j.marked="keyword";return A(ne)}else if(e=="["){return A(P,oe,F("]"),ae)}else if(e=="spread"){return A(W,ae)}else if(t=="*"){j.marked="keyword";return A(ne)}else if(e==":"){return S(ae)}}function ie(e){if(e!="variable")return S(ae);j.marked="property";return A(Ce)}function ae(e){if(e==":")return A(W);if(e=="(")return S(Ce)}function ue(e,t,r){function n(i,a){if(r?r.indexOf(i)>-1:i==","){var u=j.state.lexical;if(u.info=="call")u.pos=(u.pos||0)+1;return A((function(r,n){if(r==t||n==t)return S();return S(e)}),n)}if(i==t||a==t)return A();if(r&&r.indexOf(";")>-1)return S(e);return A(F(t))}return function(r,i){if(r==t||i==t)return A();return S(e,n)}}function fe(e,t,r){for(var n=3;n"),de);if(e=="quasi")return S(he,be)}function me(e){if(e=="=>")return A(de)}function ve(e){if(e.match(/[\}\)\]]/))return A();if(e==","||e==";")return A(ve);return S(ke,ve)}function ke(e,t){if(e=="variable"||j.style=="keyword"){j.marked="property";return A(ke)}else if(t=="?"||e=="number"||e=="string"){return A(ke)}else if(e==":"){return A(de)}else if(e=="["){return A(F("variable"),le,F("]"),ke)}else if(e=="("){return S(_e,ke)}else if(!e.match(/[;\}\)\],]/)){return A()}}function he(e,t){if(e!="quasi")return S();if(t.slice(t.length-2)!="${")return A(he);return A(de,ye)}function ye(e){if(e=="}"){j.marked="string.special";j.state.tokenize=k;return A(he)}}function we(e,t){if(e=="variable"&&j.stream.match(/^\s*[?:]/,false)||t=="?")return A(we);if(e==":")return A(de);if(e=="spread")return A(we);return S(de)}function be(e,t){if(t=="<")return A($(">"),ue(de,">"),D,be);if(t=="|"||e=="."||t=="&")return A(de);if(e=="[")return A(de,F("]"),be);if(t=="extends"||t=="implements"){j.marked="keyword";return A(de)}if(t=="?")return A(de,F(":"),de)}function ge(e,t){if(t=="<")return A($(">"),ue(de,">"),D,be)}function xe(){return S(de,je)}function je(e,t){if(t=="=")return A(de)}function Se(e,t){if(t=="enum"){j.marked="keyword";return A(Re)}return S(Ae,oe,Ne,Ve)}function Ae(e,t){if(i&&V(t)){j.marked="keyword";return A(Ae)}if(e=="variable"){T(t);return A()}if(e=="spread")return A(Ae);if(e=="[")return fe(Te,"]");if(e=="{")return fe(Le,"}")}function Le(e,t){if(e=="variable"&&!j.stream.match(/^\s*:/,false)){T(t);return A(Ne)}if(e=="variable")j.marked="property";if(e=="spread")return A(Ae);if(e=="}")return S();if(e=="[")return A(P,F("]"),F(":"),Le);return A(F(":"),Ae,Ne)}function Te(){return S(Ae,Ne)}function Ne(e,t){if(t=="=")return A(W)}function Ve(e){if(e==",")return A(Se)}function Oe(e,t){if(e=="keyword b"&&t=="else")return A($("form","else"),q,D)}function Ie(e,t){if(t=="await")return A(Ie);if(e=="(")return A($(")"),Ee,D)}function Ee(e){if(e=="var")return A(Se,ze);if(e=="variable")return A(ze);return S(ze)}function ze(e,t){if(e==")")return A();if(e==";")return A(ze);if(t=="in"||t=="of"){j.marked="keyword";return A(P,ze)}return S(P,ze)}function Ce(e,t){if(t=="*"){j.marked="keyword";return A(Ce)}if(e=="variable"){T(t);return A(Ce)}if(e=="(")return A(z,$(")"),ue(De,")"),D,ce,q,_);if(i&&t=="<")return A($(">"),ue(xe,">"),D,Ce)}function _e(e,t){if(t=="*"){j.marked="keyword";return A(_e)}if(e=="variable"){T(t);return A(_e)}if(e=="(")return A(z,$(")"),ue(De,")"),D,ce,_);if(i&&t=="<")return A($(">"),ue(xe,">"),D,_e)}function $e(e,t){if(e=="keyword"||e=="variable"){j.marked="type";return A($e)}else if(t=="<"){return A($(">"),ue(xe,">"),D)}}function De(e,t){if(t=="@")A(P,De);if(e=="spread")return A(De);if(i&&V(t)){j.marked="keyword";return A(De)}if(i&&e=="this")return A(oe,Ne);return S(Ae,oe,Ne)}function Fe(e,t){if(e=="variable")return qe(e,t);return Ue(e,t)}function qe(e,t){if(e=="variable"){T(t);return A(Ue)}}function Ue(e,t){if(t=="<")return A($(">"),ue(xe,">"),D,Ue);if(t=="extends"||t=="implements"||i&&e==","){if(t=="implements")j.marked="keyword";return A(i?de:P,Ue)}if(e=="{")return A($("}"),Pe,D)}function Pe(e,t){if(e=="async"||e=="variable"&&(t=="static"||t=="get"||t=="set"||i&&V(t))&&j.stream.match(/^\s+#?[\w$\xa1-\uffff]/,false)){j.marked="keyword";return A(Pe)}if(e=="variable"||j.style=="keyword"){j.marked="property";return A(We,Pe)}if(e=="number"||e=="string")return A(We,Pe);if(e=="[")return A(P,oe,F("]"),We,Pe);if(t=="*"){j.marked="keyword";return A(Pe)}if(i&&e=="(")return S(_e,Pe);if(e==";"||e==",")return A(Pe);if(e=="}")return A();if(t=="@")return A(P,Pe)}function We(e,t){if(t=="!"||t=="?")return A(We);if(e==":")return A(de,Ne);if(t=="=")return A(W);var r=j.state.lexical.prev,n=r&&r.info=="interface";return S(n?_e:Ce)}function Be(e,t){if(t=="*"){j.marked="keyword";return A(Me,F(";"))}if(t=="default"){j.marked="keyword";return A(P,F(";"))}if(e=="{")return A(ue(Ze,"}"),Me,F(";"));return S(q)}function Ze(e,t){if(t=="as"){j.marked="keyword";return A(F("variable"))}if(e=="variable")return S(W,Ze)}function Ge(e){if(e=="string")return A();if(e=="(")return S(P);if(e==".")return S(H);return S(He,Je,Me)}function He(e,t){if(e=="{")return fe(He,"}");if(e=="variable")T(t);if(t=="*")j.marked="keyword";return A(Ke)}function Je(e){if(e==",")return A(He,Je)}function Ke(e,t){if(t=="as"){j.marked="keyword";return A(He)}}function Me(e,t){if(t=="from"){j.marked="keyword";return A(P)}}function Qe(e){if(e=="]")return A();return S(ue(W,"]"))}function Re(){return S($("form"),Ae,F("{"),$("}"),ue(Xe,"}"),D,D)}function Xe(){return S(Ae,Ne)}function Ye(e,t){return e.lastType=="operator"||e.lastType==","||f.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function et(e,t,r){return t.tokenize==d&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||t.lastType=="quasi"&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}return{name:e.name,startState:function(t){var r={tokenize:d,lastType:"sof",cc:[],lexical:new b(-t,0,"block",false),localVars:e.localVars,context:e.localVars&&new O(null,null,false),indented:0};if(e.globalVars&&typeof e.globalVars=="object")r.globalVars=e.globalVars;return r},token:function(e,t){if(e.sol()){if(!t.lexical.hasOwnProperty("align"))t.lexical.align=false;t.indented=e.indentation();y(e,t)}if(t.tokenize!=v&&e.eatSpace())return null;var r=t.tokenize(e,t);if(l=="comment")return r;t.lastType=l=="operator"&&(c=="++"||c=="--")?"incdec":l;return x(t,r,l,c,e)},indent:function(r,n,i){if(r.tokenize==v||r.tokenize==k)return null;if(r.tokenize!=d)return 0;var a=n&&n.charAt(0),u=r.lexical,f;if(!/^\s*else\b/.test(n))for(var s=r.cc.length-1;s>=0;--s){var o=r.cc[s];if(o==D)u=u.prev;else if(o!=Oe&&o!=_)break}while((u.type=="stat"||u.type=="form")&&(a=="}"||(f=r.cc[r.cc.length-1])&&(f==H||f==J)&&!/^[,\.=+\-*:?[\(]/.test(n)))u=u.prev;if(t&&u.type==")"&&u.prev.type=="stat")u=u.prev;var l=u.type,c=a==l;if(l=="vardef")return u.indented+(r.lastType=="operator"||r.lastType==","?u.info.length+1:0);else if(l=="form"&&a=="{")return u.indented;else if(l=="form")return u.indented+i.unit;else if(l=="stat")return u.indented+(Ye(r,n)?t||i.unit:0);else if(u.info=="switch"&&!c&&e.doubleIndentSwitch!=false)return u.indented+(/^(?:case|default)\b/.test(n)?i.unit:2*i.unit);else if(u.align)return u.column+(c?0:1);else return u.indented+(c?0:i.unit)},languageData:{indentOnInput:/^\s*(?:case .*?:|default:|\{|\})$/,commentTokens:n?undefined:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]},wordChars:"$"}}}const i=n({name:"javascript"});const a=n({name:"json",json:true});const u=n({name:"json",jsonld:true});const f=n({name:"typescript",typescript:true})},96170:(e,t,r)=>{r.r(t);r.d(t,{pug:()=>M});var n=r(85987);var i={"{":"}","(":")","[":"]"};function a(e){if(typeof e!="object")return e;let t={};for(let r in e){let n=e[r];t[r]=n instanceof Array?n.slice():n}return t}class u{constructor(e){this.indentUnit=e;this.javaScriptLine=false;this.javaScriptLineExcludesColon=false;this.javaScriptArguments=false;this.javaScriptArgumentsDepth=0;this.isInterpolating=false;this.interpolationNesting=0;this.jsState=n.javascript.startState(e);this.restOfLine="";this.isIncludeFiltered=false;this.isEach=false;this.lastTag="";this.isAttrs=false;this.attrsNest=[];this.inAttributeName=true;this.attributeIsType=false;this.attrValue="";this.indentOf=Infinity;this.indentToken=""}copy(){var e=new u(this.indentUnit);e.javaScriptLine=this.javaScriptLine;e.javaScriptLineExcludesColon=this.javaScriptLineExcludesColon;e.javaScriptArguments=this.javaScriptArguments;e.javaScriptArgumentsDepth=this.javaScriptArgumentsDepth;e.isInterpolating=this.isInterpolating;e.interpolationNesting=this.interpolationNesting;e.jsState=(n.javascript.copyState||a)(this.jsState);e.restOfLine=this.restOfLine;e.isIncludeFiltered=this.isIncludeFiltered;e.isEach=this.isEach;e.lastTag=this.lastTag;e.isAttrs=this.isAttrs;e.attrsNest=this.attrsNest.slice();e.inAttributeName=this.inAttributeName;e.attributeIsType=this.attributeIsType;e.attrValue=this.attrValue;e.indentOf=this.indentOf;e.indentToken=this.indentToken;return e}}function f(e,t){if(e.sol()){t.javaScriptLine=false;t.javaScriptLineExcludesColon=false}if(t.javaScriptLine){if(t.javaScriptLineExcludesColon&&e.peek()===":"){t.javaScriptLine=false;t.javaScriptLineExcludesColon=false;return}var r=n.javascript.token(e,t.jsState);if(e.eol())t.javaScriptLine=false;return r||true}}function s(e,t){if(t.javaScriptArguments){if(t.javaScriptArgumentsDepth===0&&e.peek()!=="("){t.javaScriptArguments=false;return}if(e.peek()==="("){t.javaScriptArgumentsDepth++}else if(e.peek()===")"){t.javaScriptArgumentsDepth--}if(t.javaScriptArgumentsDepth===0){t.javaScriptArguments=false;return}var r=n.javascript.token(e,t.jsState);return r||true}}function o(e){if(e.match(/^yield\b/)){return"keyword"}}function l(e){if(e.match(/^(?:doctype) *([^\n]+)?/))return"meta"}function c(e,t){if(e.match("#{")){t.isInterpolating=true;t.interpolationNesting=0;return"punctuation"}}function p(e,t){if(t.isInterpolating){if(e.peek()==="}"){t.interpolationNesting--;if(t.interpolationNesting<0){e.next();t.isInterpolating=false;return"punctuation"}}else if(e.peek()==="{"){t.interpolationNesting++}return n.javascript.token(e,t.jsState)||true}}function d(e,t){if(e.match(/^case\b/)){t.javaScriptLine=true;return"keyword"}}function m(e,t){if(e.match(/^when\b/)){t.javaScriptLine=true;t.javaScriptLineExcludesColon=true;return"keyword"}}function v(e){if(e.match(/^default\b/)){return"keyword"}}function k(e,t){if(e.match(/^extends?\b/)){t.restOfLine="string";return"keyword"}}function h(e,t){if(e.match(/^append\b/)){t.restOfLine="variable";return"keyword"}}function y(e,t){if(e.match(/^prepend\b/)){t.restOfLine="variable";return"keyword"}}function w(e,t){if(e.match(/^block\b *(?:(prepend|append)\b)?/)){t.restOfLine="variable";return"keyword"}}function b(e,t){if(e.match(/^include\b/)){t.restOfLine="string";return"keyword"}}function g(e,t){if(e.match(/^include:([a-zA-Z0-9\-]+)/,false)&&e.match("include")){t.isIncludeFiltered=true;return"keyword"}}function x(e,t){if(t.isIncludeFiltered){var r=I(e,t);t.isIncludeFiltered=false;t.restOfLine="string";return r}}function j(e,t){if(e.match(/^mixin\b/)){t.javaScriptLine=true;return"keyword"}}function S(e,t){if(e.match(/^\+([-\w]+)/)){if(!e.match(/^\( *[-\w]+ *=/,false)){t.javaScriptArguments=true;t.javaScriptArgumentsDepth=0}return"variable"}if(e.match("+#{",false)){e.next();t.mixinCallAfter=true;return c(e,t)}}function A(e,t){if(t.mixinCallAfter){t.mixinCallAfter=false;if(!e.match(/^\( *[-\w]+ *=/,false)){t.javaScriptArguments=true;t.javaScriptArgumentsDepth=0}return true}}function L(e,t){if(e.match(/^(if|unless|else if|else)\b/)){t.javaScriptLine=true;return"keyword"}}function T(e,t){if(e.match(/^(- *)?(each|for)\b/)){t.isEach=true;return"keyword"}}function N(e,t){if(t.isEach){if(e.match(/^ in\b/)){t.javaScriptLine=true;t.isEach=false;return"keyword"}else if(e.sol()||e.eol()){t.isEach=false}else if(e.next()){while(!e.match(/^ in\b/,false)&&e.next()){}return"variable"}}}function V(e,t){if(e.match(/^while\b/)){t.javaScriptLine=true;return"keyword"}}function O(e,t){var r;if(r=e.match(/^(\w(?:[-:\w]*\w)?)\/?/)){t.lastTag=r[1].toLowerCase();return"tag"}}function I(e,t){if(e.match(/^:([\w\-]+)/)){Z(e,t);return"atom"}}function E(e,t){if(e.match(/^(!?=|-)/)){t.javaScriptLine=true;return"punctuation"}}function z(e){if(e.match(/^#([\w-]+)/)){return"builtin"}}function C(e){if(e.match(/^\.([\w-]+)/)){return"className"}}function _(e,t){if(e.peek()=="("){e.next();t.isAttrs=true;t.attrsNest=[];t.inAttributeName=true;t.attrValue="";t.attributeIsType=false;return"punctuation"}}function $(e,t){if(t.isAttrs){if(i[e.peek()]){t.attrsNest.push(i[e.peek()])}if(t.attrsNest[t.attrsNest.length-1]===e.peek()){t.attrsNest.pop()}else if(e.eat(")")){t.isAttrs=false;return"punctuation"}if(t.inAttributeName&&e.match(/^[^=,\)!]+/)){if(e.peek()==="="||e.peek()==="!"){t.inAttributeName=false;t.jsState=n.javascript.startState(2);if(t.lastTag==="script"&&e.current().trim().toLowerCase()==="type"){t.attributeIsType=true}else{t.attributeIsType=false}}return"attribute"}var r=n.javascript.token(e,t.jsState);if(t.attrsNest.length===0&&(r==="string"||r==="variable"||r==="keyword")){try{Function("","var x "+t.attrValue.replace(/,\s*$/,"").replace(/^!/,""));t.inAttributeName=true;t.attrValue="";e.backUp(e.current().length);return $(e,t)}catch(a){}}t.attrValue+=e.current();return r||true}}function D(e,t){if(e.match(/^&attributes\b/)){t.javaScriptArguments=true;t.javaScriptArgumentsDepth=0;return"keyword"}}function F(e){if(e.sol()&&e.eatSpace()){return"indent"}}function q(e,t){if(e.match(/^ *\/\/(-)?([^\n]*)/)){t.indentOf=e.indentation();t.indentToken="comment";return"comment"}}function U(e){if(e.match(/^: */)){return"colon"}}function P(e,t){if(e.match(/^(?:\| ?| )([^\n]+)/)){return"string"}if(e.match(/^(<[^\n]*)/,false)){Z(e,t);e.skipToEnd();return t.indentToken}}function W(e,t){if(e.eat(".")){Z(e,t);return"dot"}}function B(e){e.next();return null}function Z(e,t){t.indentOf=e.indentation();t.indentToken="string"}function G(e,t){if(e.sol()){t.restOfLine=""}if(t.restOfLine){e.skipToEnd();var r=t.restOfLine;t.restOfLine="";return r}}function H(e){return new u(e)}function J(e){return e.copy()}function K(e,t){var r=G(e,t)||p(e,t)||x(e,t)||N(e,t)||$(e,t)||f(e,t)||s(e,t)||A(e,t)||o(e)||l(e)||c(e,t)||d(e,t)||m(e,t)||v(e)||k(e,t)||h(e,t)||y(e,t)||w(e,t)||b(e,t)||g(e,t)||j(e,t)||S(e,t)||L(e,t)||T(e,t)||V(e,t)||O(e,t)||I(e,t)||E(e,t)||z(e)||C(e)||_(e,t)||D(e,t)||F(e)||P(e,t)||q(e,t)||U(e)||W(e,t)||B(e);return r===true?null:r}const M={startState:H,copyState:J,token:K}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6180.60303761cae10d63e963.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6180.60303761cae10d63e963.js deleted file mode 100644 index 5c85b360833571bf8588288082c6ef3b9d5fb131..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6180.60303761cae10d63e963.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6180],{15136:(e,t,r)=>{r.r(t);r.d(t,{main:()=>D});var o=r(30397);var n=r(5592);var s=r(20979);var l=r(25313);var a=r(56104);var i=r(11114);var c=r(72508);var u=r(2129);var p=r(99382);var f=r(36672);var _=r(1904);var A=r(87779);var y=r(13067);var h=r(67374);var d=r(20135);var b=r(61689);var x=r(34072);var j=r(54336);var m=r(19457);var v=r(43017);var g=r(45695);var w=r(53640);var C=r(367);var k=r(68149);var P=r(87456);var S=r(4380);var E=r(61132);var O=r(57996);var R=r(41884);var I=r(51874);var L=r(90288);var M=r(87145);var N=r(90167);var $=r(98547);var J=r(57292);var Q=r(80046);var B=r(54289);var T=r(40779);var U=r(48552);var Y=r(40005);var q=r(70558);var z=r(31747);var G=r(95527);var K=r(50277);var V=r(77767);var F=r(54549);var H=r(75591);async function Z(e,t){try{const r=await window._JUPYTERLAB[e].get(t);const o=r();o.__scope__=e;return o}catch(r){console.warn(`Failed to create module: package: ${e}; module: ${t}`);throw r}}async function D(){var e=o.PageConfig.getOption("browserTest");if(e.toLowerCase()==="true"){var t=document.createElement("div");t.id="browserTest";document.body.appendChild(t);t.textContent="[]";t.style.display="none";var s=[];var l=false;var a=25e3;var i=function(){if(l){return}l=true;t.className="completed"};window.onerror=function(e,r,o,n,l){s.push(String(l));t.textContent=JSON.stringify(s)};console.error=function(e){s.push(String(e));t.textContent=JSON.stringify(s)}}var c=new n.PluginRegistry;var u=r(94307).JupyterLab;var p=[];var f=[];var _=[];var A=[];const y=[];const h=[];const d=[];const b=JSON.parse(o.PageConfig.getOption("federated_extensions"));const x={"@jupyterlab/application:mimedocument":"@jupyterlab/application-extension:mimedocument","@jupyterlab/help-extension:licenses":"@jupyterlab/apputils-extension:licenses-plugin","@jupyterlab/lsp:ILSPCodeExtractorsManager":"@jupyterlab/lsp-extension:code-extractor-manager","@jupyterlab/translation:translator":"@jupyterlab/translation-extension:translator","@jupyterlab/workspaces:commands":"@jupyterlab/workspaces-extension:commands"};const j=o.PageConfig.Extension.disabled.map((e=>{if(x[e]){console.warn(`Plugin ${e} has been renamed to ${x[e]}. Consider updating your config to use the new name.`);return x[e]}return e}));const m=o.PageConfig.Extension.deferred.map((e=>{if(x[e]){console.warn(`Plugin id ${e} has been renamed to ${x[e]}. Consider updating your config to use the new name.`);return x[e]}return e}));const v=e=>{const t=e.indexOf(":");let r="";if(t!==-1){r=e.slice(0,t)}return j.some((t=>t===e||r&&t===r))};const g=e=>{const t=e.indexOf(":");let r="";if(t!==-1){r=e.slice(0,t)}return m.some((t=>t===e||r&&t===r))};const w=[];b.forEach((e=>{if(e.extension){w.push(e.name);y.push(Z(e.name,e.extension))}if(e.mimeExtension){w.push(e.name);h.push(Z(e.name,e.mimeExtension))}if(e.style&&!v(e.name)){d.push(Z(e.name,e.style))}}));const C=[];function k(e){let t;if(e.hasOwnProperty("__esModule")){t=e.default}else{t=e}return Array.isArray(t)?t:[t]}function*P(e){const t=k(e);for(let r of t){const t=v(r.id);C.push({id:r.id,description:r.description,requires:r.requires??[],optional:r.optional??[],provides:r.provides??null,autoStart:r.autoStart,enabled:!t,extension:e.__scope__});if(t){p.push(r.id);continue}if(g(r.id)){f.push(r.id);_.push(r.id)}yield r}}const S=[];if(!w.includes("@jupyterlab/javascript-extension")){try{let e=r(65441);e.__scope__="@jupyterlab/javascript-extension";for(let t of P(e)){S.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/json-extension")){try{let e=r(6445);e.__scope__="@jupyterlab/json-extension";for(let t of P(e)){S.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/mermaid-extension")){try{let e=r(47375);e.__scope__="@jupyterlab/mermaid-extension";for(let t of P(e)){S.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/pdf-extension")){try{let e=r(51143);e.__scope__="@jupyterlab/pdf-extension";for(let t of P(e)){S.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/vega5-extension")){try{let e=r(59907);e.__scope__="@jupyterlab/vega5-extension";for(let t of P(e)){S.push(t)}}catch(Q){console.error(Q)}}const E=await Promise.allSettled(h);E.forEach((e=>{if(e.status==="fulfilled"){for(let t of P(e.value)){S.push(t)}}else{console.error(e.reason)}}));if(!w.includes("@jupyterlab/application-extension")){try{let e=r(90695);e.__scope__="@jupyterlab/application-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/apputils-extension")){try{let e=r(67237);e.__scope__="@jupyterlab/apputils-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/cell-toolbar-extension")){try{let e=r(70541);e.__scope__="@jupyterlab/cell-toolbar-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/celltags-extension")){try{let e=r(86781);e.__scope__="@jupyterlab/celltags-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/codemirror-extension")){try{let e=r(90193);e.__scope__="@jupyterlab/codemirror-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/completer-extension")){try{let e=r(86753);e.__scope__="@jupyterlab/completer-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/console-extension")){try{let e=r(73121);e.__scope__="@jupyterlab/console-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/csvviewer-extension")){try{let e=r(2611);e.__scope__="@jupyterlab/csvviewer-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/debugger-extension")){try{let e=r(56001);e.__scope__="@jupyterlab/debugger-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/docmanager-extension")){try{let e=r(51997);e.__scope__="@jupyterlab/docmanager-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/documentsearch-extension")){try{let e=r(27337);e.__scope__="@jupyterlab/documentsearch-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/extensionmanager-extension")){try{let e=r(90285);e.__scope__="@jupyterlab/extensionmanager-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/filebrowser-extension")){try{let e=r(80439);e.__scope__="@jupyterlab/filebrowser-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/fileeditor-extension")){try{let e=r(46425);e.__scope__="@jupyterlab/fileeditor-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/help-extension")){try{let e=r(11793);e.__scope__="@jupyterlab/help-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/htmlviewer-extension")){try{let e=r(91865);e.__scope__="@jupyterlab/htmlviewer-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/hub-extension")){try{let e=r(90945);e.__scope__="@jupyterlab/hub-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/imageviewer-extension")){try{let e=r(61121);e.__scope__="@jupyterlab/imageviewer-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/inspector-extension")){try{let e=r(68673);e.__scope__="@jupyterlab/inspector-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/launcher-extension")){try{let e=r(34937);e.__scope__="@jupyterlab/launcher-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/logconsole-extension")){try{let e=r(37377);e.__scope__="@jupyterlab/logconsole-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/lsp-extension")){try{let e=r(80865);e.__scope__="@jupyterlab/lsp-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/mainmenu-extension")){try{let e=r(22833);e.__scope__="@jupyterlab/mainmenu-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/markdownviewer-extension")){try{let e=r(91913);e.__scope__="@jupyterlab/markdownviewer-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/markedparser-extension")){try{let e=r(20321);e.__scope__="@jupyterlab/markedparser-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/mathjax-extension")){try{let e=r(98465);e.__scope__="@jupyterlab/mathjax-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/mermaid-extension")){try{let e=r(62889);e.__scope__="@jupyterlab/mermaid-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/metadataform-extension")){try{let e=r(26001);e.__scope__="@jupyterlab/metadataform-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/notebook-extension")){try{let e=r(27745);e.__scope__="@jupyterlab/notebook-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/pluginmanager-extension")){try{let e=r(23407);e.__scope__="@jupyterlab/pluginmanager-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/rendermime-extension")){try{let e=r(53813);e.__scope__="@jupyterlab/rendermime-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/running-extension")){try{let e=r(4369);e.__scope__="@jupyterlab/running-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/services-extension")){try{let e=r(33221);e.__scope__="@jupyterlab/services-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/settingeditor-extension")){try{let e=r(44937);e.__scope__="@jupyterlab/settingeditor-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/shortcuts-extension")){try{let e=r(89652);e.__scope__="@jupyterlab/shortcuts-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/statusbar-extension")){try{let e=r(45729);e.__scope__="@jupyterlab/statusbar-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/terminal-extension")){try{let e=r(65373);e.__scope__="@jupyterlab/terminal-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/theme-dark-extension")){try{let e=r(31109);e.__scope__="@jupyterlab/theme-dark-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/theme-dark-high-contrast-extension")){try{let e=r(13621);e.__scope__="@jupyterlab/theme-dark-high-contrast-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/theme-light-extension")){try{let e=r(23299);e.__scope__="@jupyterlab/theme-light-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/toc-extension")){try{let e=r(30549);e.__scope__="@jupyterlab/toc-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/tooltip-extension")){try{let e=r(55553);e.__scope__="@jupyterlab/tooltip-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/translation-extension")){try{let e=r(3385);e.__scope__="@jupyterlab/translation-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/ui-components-extension")){try{let e=r(41125);e.__scope__="@jupyterlab/ui-components-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}if(!w.includes("@jupyterlab/workspaces-extension")){try{let e=r(16569);e.__scope__="@jupyterlab/workspaces-extension";for(let t of P(e)){A.push(t)}}catch(Q){console.error(Q)}}const O=await Promise.allSettled(y);O.forEach((e=>{if(e.status==="fulfilled"){for(let t of P(e.value)){A.push(t)}}else{console.error(e.reason)}}));(await Promise.allSettled(d)).filter((({status:e})=>e==="rejected")).forEach((({reason:e})=>{console.error(e)}));c.registerPlugins(A);const R=r(28548).IConnectionStatus;const I=r(28548).IServiceManager;const L=await c.resolveOptionalService(R);const M=await c.resolveRequiredService(I);const N=new u({pluginRegistry:c,serviceManager:M,mimeExtensions:S,connectionStatus:L,disabled:{matches:p,patterns:j.map((function(e){return e.raw}))},deferred:{matches:f,patterns:m.map((function(e){return e.raw}))},availablePlugins:C});N.start({ignorePlugins:_,bubblingKeydown:true});var $=(o.PageConfig.getOption("exposeAppInBrowser")||"").toLowerCase()==="true";var J=(o.PageConfig.getOption("devMode")||"").toLowerCase()==="true";if($||J){window.jupyterapp=N}if(e.toLowerCase()==="true"){N.restored.then((function(){i(s)})).catch((function(e){i([`RestoreError: ${e.message}`])}));window.setTimeout((function(){i(s)}),a)}}},78269:e=>{e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII="}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6214.617de47747c5a9b19ef7.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6214.617de47747c5a9b19ef7.js deleted file mode 100644 index 2e4134e9d9ec97b54fd20455e061988673b96c21..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6214.617de47747c5a9b19ef7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6214],{26214:(t,e,n)=>{n.d(e,{diagram:()=>X});var i=n(75905);var r=n(24982);var s=n(63170);var a=n(77470);var o=n(48750);var c=function(){var t=(0,i.K2)((function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n}),"o"),e=[6,8,10,11,12,14,16,17,20,21],n=[1,9],r=[1,10],s=[1,11],a=[1,12],o=[1,13],c=[1,16],l=[1,17];var h={trace:(0,i.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:(0,i.K2)((function t(e,n,i,r,s,a,o){var c=a.length-1;switch(s){case 1:return a[c-1];break;case 2:this.$=[];break;case 3:a[c-1].push(a[c]);this.$=a[c-1];break;case 4:case 5:this.$=a[c];break;case 6:case 7:this.$=[];break;case 8:r.getCommonDb().setDiagramTitle(a[c].substr(6));this.$=a[c].substr(6);break;case 9:this.$=a[c].trim();r.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=a[c].trim();r.getCommonDb().setAccDescription(this.$);break;case 12:r.addSection(a[c].substr(8));this.$=a[c].substr(8);break;case 15:r.addTask(a[c],0,"");this.$=a[c];break;case 16:r.addEvent(a[c].substr(2));this.$=a[c];break}}),"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:n,12:r,14:s,16:a,17:o,18:14,19:15,20:c,21:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:n,12:r,14:s,16:a,17:o,18:14,19:15,20:c,21:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:(0,i.K2)((function t(e,n){if(n.recoverable){this.trace(e)}else{var i=new Error(e);i.hash=n;throw i}}),"parseError"),parse:(0,i.K2)((function t(e){var n=this,r=[0],s=[],a=[null],o=[],c=this.table,l="",h=0,d=0,u=0,p=2,f=1;var y=o.slice.call(arguments,1);var g=Object.create(this.lexer);var m={yy:{}};for(var x in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,x)){m.yy[x]=this.yy[x]}}g.setInput(e,m.yy);m.yy.lexer=g;m.yy.parser=this;if(typeof g.yylloc=="undefined"){g.yylloc={}}var b=g.yylloc;o.push(b);var k=g.options&&g.options.ranges;if(typeof m.yy.parseError==="function"){this.parseError=m.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function v(t){r.length=r.length-2*t;a.length=a.length-t;o.length=o.length-t}(0,i.K2)(v,"popStack");function _(){var t;t=s.pop()||g.lex()||f;if(typeof t!=="number"){if(t instanceof Array){s=t;t=s.pop()}t=n.symbols_[t]||t}return t}(0,i.K2)(_,"lex");var w,K,S,$,E,T,I={},R,A,L,M;while(true){S=r[r.length-1];if(this.defaultActions[S]){$=this.defaultActions[S]}else{if(w===null||typeof w=="undefined"){w=_()}$=c[S]&&c[S][w]}if(typeof $==="undefined"||!$.length||!$[0]){var C="";M=[];for(R in c[S]){if(this.terminals_[R]&&R>p){M.push("'"+this.terminals_[R]+"'")}}if(g.showPosition){C="Parse error on line "+(h+1)+":\n"+g.showPosition()+"\nExpecting "+M.join(", ")+", got '"+(this.terminals_[w]||w)+"'"}else{C="Parse error on line "+(h+1)+": Unexpected "+(w==f?"end of input":"'"+(this.terminals_[w]||w)+"'")}this.parseError(C,{text:g.match,token:this.terminals_[w]||w,line:g.yylineno,loc:b,expected:M})}if($[0]instanceof Array&&$.length>1){throw new Error("Parse Error: multiple actions possible at state: "+S+", token: "+w)}switch($[0]){case 1:r.push(w);a.push(g.yytext);o.push(g.yylloc);r.push($[1]);w=null;if(!K){d=g.yyleng;l=g.yytext;h=g.yylineno;b=g.yylloc;if(u>0){u--}}else{w=K;K=null}break;case 2:A=this.productions_[$[1]][1];I.$=a[a.length-A];I._$={first_line:o[o.length-(A||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(A||1)].first_column,last_column:o[o.length-1].last_column};if(k){I._$.range=[o[o.length-(A||1)].range[0],o[o.length-1].range[1]]}T=this.performAction.apply(I,[l,d,h,m.yy,$[1],a,o].concat(y));if(typeof T!=="undefined"){return T}if(A){r=r.slice(0,-1*A*2);a=a.slice(0,-1*A);o=o.slice(0,-1*A)}r.push(this.productions_[$[1]][0]);a.push(I.$);o.push(I._$);L=c[r[r.length-2]][r[r.length-1]];r.push(L);break;case 3:return true}}return true}),"parse")};var d=function(){var t={EOF:1,parseError:(0,i.K2)((function t(e,n){if(this.yy.parser){this.yy.parser.parseError(e,n)}else{throw new Error(e)}}),"parseError"),setInput:(0,i.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,i.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,i.K2)((function(t){var e=t.length;var n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(n.length-1){this.yylineno-=n.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,i.K2)((function(){this._more=true;return this}),"more"),reject:(0,i.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,i.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,i.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,i.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,i.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,i.K2)((function(t,e){var n,i,r;if(this.options.backtrack_lexer){r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){r.yylloc.range=this.yylloc.range.slice(0)}}i=t[0].match(/(?:\r\n?|\n).*/g);if(i){this.yylineno+=i.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(n){return n}else if(this._backtrack){for(var s in r){this[s]=r[s]}return false}return false}),"test_match"),next:(0,i.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,n,i;if(!this._more){this.yytext="";this.match=""}var r=this._currentRules();for(var s=0;se[0].length)){e=n;i=s;if(this.options.backtrack_lexer){t=this.test_match(n,r[s]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,r[i]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,i.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,i.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,i.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,i.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,i.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,i.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,i.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,i.K2)((function t(e,n,i,r){var s=r;switch(i){case 0:break;case 1:break;case 2:return 10;break;case 3:break;case 4:break;case 5:return 4;break;case 6:return 11;break;case 7:this.begin("acc_title");return 12;break;case 8:this.popState();return"acc_title_value";break;case 9:this.begin("acc_descr");return 14;break;case 10:this.popState();return"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";break;case 14:return 17;break;case 15:return 21;break;case 16:return 20;break;case 17:return 6;break;case 18:return"INVALID";break}}),"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s[^:\n]+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:false},acc_descr:{rules:[10],inclusive:false},acc_title:{rules:[8],inclusive:false},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:true}}};return t}();h.lexer=d;function u(){this.yy={}}(0,i.K2)(u,"Parser");u.prototype=h;h.Parser=u;return new u}();c.parser=c;var l=c;var h={};(0,i.VA)(h,{addEvent:()=>_,addSection:()=>x,addTask:()=>v,addTaskOrg:()=>w,clear:()=>m,default:()=>S,getCommonDb:()=>g,getSections:()=>b,getTasks:()=>k});var d="";var u=0;var p=[];var f=[];var y=[];var g=(0,i.K2)((()=>i.Wt),"getCommonDb");var m=(0,i.K2)((function(){p.length=0;f.length=0;d="";y.length=0;(0,i.IU)()}),"clear");var x=(0,i.K2)((function(t){d=t;p.push(t)}),"addSection");var b=(0,i.K2)((function(){return p}),"getSections");var k=(0,i.K2)((function(){let t=K();const e=100;let n=0;while(!t&&nt.id===u-1));e.events.push(t)}),"addEvent");var w=(0,i.K2)((function(t){const e={section:d,type:d,description:t,task:t,classes:[]};f.push(e)}),"addTaskOrg");var K=(0,i.K2)((function(){const t=(0,i.K2)((function(t){return y[t].processed}),"compileTask");let e=true;for(const[n,i]of y.entries()){t(n);e=e&&i.processed}return e}),"compileTasks");var S={clear:m,getCommonDb:g,addSection:x,getSections:b,getTasks:k,addTask:v,addTaskOrg:w,addEvent:_};var $=12;var E=(0,i.K2)((function(t,e){const n=t.append("rect");n.attr("x",e.x);n.attr("y",e.y);n.attr("fill",e.fill);n.attr("stroke",e.stroke);n.attr("width",e.width);n.attr("height",e.height);n.attr("rx",e.rx);n.attr("ry",e.ry);if(e.class!==void 0){n.attr("class",e.class)}return n}),"drawRect");var T=(0,i.K2)((function(t,e){const n=15;const s=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",n).attr("stroke-width",2).attr("overflow","visible");const a=t.append("g");a.append("circle").attr("cx",e.cx-n/3).attr("cy",e.cy-n/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");a.append("circle").attr("cx",e.cx+n/3).attr("cy",e.cy-n/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function o(t){const i=(0,r.JLW)().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(n/2).outerRadius(n/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}(0,i.K2)(o,"smile");function c(t){const i=(0,r.JLW)().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(n/2).outerRadius(n/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}(0,i.K2)(c,"sad");function l(t){t.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}(0,i.K2)(l,"ambivalent");if(e.score>3){o(a)}else if(e.score<3){c(a)}else{l(a)}return s}),"drawFace");var I=(0,i.K2)((function(t,e){const n=t.append("circle");n.attr("cx",e.cx);n.attr("cy",e.cy);n.attr("class","actor-"+e.pos);n.attr("fill",e.fill);n.attr("stroke",e.stroke);n.attr("r",e.r);if(n.class!==void 0){n.attr("class",n.class)}if(e.title!==void 0){n.append("title").text(e.title)}return n}),"drawCircle");var R=(0,i.K2)((function(t,e){const n=e.text.replace(//gi," ");const i=t.append("text");i.attr("x",e.x);i.attr("y",e.y);i.attr("class","legend");i.style("text-anchor",e.anchor);if(e.class!==void 0){i.attr("class",e.class)}const r=i.append("tspan");r.attr("x",e.x+e.textMargin*2);r.text(n);return i}),"drawText");var A=(0,i.K2)((function(t,e){function n(t,e,n,i,r){return t+","+e+" "+(t+n)+","+e+" "+(t+n)+","+(e+i-r)+" "+(t+n-r*1.2)+","+(e+i)+" "+t+","+(e+i)}(0,i.K2)(n,"genPoints");const r=t.append("polygon");r.attr("points",n(e.x,e.y,50,20,7));r.attr("class","labelBox");e.y=e.y+e.labelMargin;e.x=e.x+.5*e.labelMargin;R(t,e)}),"drawLabel");var L=(0,i.K2)((function(t,e,n){const i=t.append("g");const r=H();r.x=e.x;r.y=e.y;r.fill=e.fill;r.width=n.width;r.height=n.height;r.class="journey-section section-type-"+e.num;r.rx=3;r.ry=3;E(i,r);O(n)(e.text,i,r.x,r.y,r.width,r.height,{class:"journey-section section-type-"+e.num},n,e.colour)}),"drawSection");var M=-1;var C=(0,i.K2)((function(t,e,n){const i=e.x+n.width/2;const r=t.append("g");M++;const s=300+5*30;r.append("line").attr("id","task"+M).attr("x1",i).attr("y1",e.y).attr("x2",i).attr("y2",s).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666");T(r,{cx:i,cy:300+(5-e.score)*30,score:e.score});const a=H();a.x=e.x;a.y=e.y;a.fill=e.fill;a.width=n.width;a.height=n.height;a.class="task task-type-"+e.num;a.rx=3;a.ry=3;E(r,a);O(n)(e.task,r,a.x,a.y,a.width,a.height,{class:"task"},n,e.colour)}),"drawTask");var N=(0,i.K2)((function(t,e){const n=E(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"});n.lower()}),"drawBackgroundRect");var P=(0,i.K2)((function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}}),"getTextObj");var H=(0,i.K2)((function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}}),"getNoteRect");var O=function(){function t(t,e,n,i,s,a,o,c){const l=e.append("text").attr("x",n+s/2).attr("y",i+a/2+5).style("font-color",c).style("text-anchor","middle").text(t);r(l,o)}(0,i.K2)(t,"byText");function e(t,e,n,i,s,a,o,c,l){const{taskFontSize:h,taskFontFamily:d}=c;const u=t.split(//gi);for(let p=0;p)/).reverse(),i,s=[],a=1.1,o=t.attr("y"),c=parseFloat(t.attr("dy")),l=t.text(null).append("tspan").attr("x",0).attr("y",o).attr("dy",c+"em");for(let r=0;re||i==="
    "){s.pop();l.text(s.join(" ").trim());if(i==="
    "){s=[""]}else{s=[i]}l=t.append("tspan").attr("x",0).attr("y",o).attr("dy",a+"em").text(i)}}}))}(0,i.K2)(D,"wrap");var z=(0,i.K2)((function(t,e,n,i){const r=n%$-1;const s=t.append("g");e.section=r;s.attr("class",(e.class?e.class+" ":"")+"timeline-node "+("section-"+r));const a=s.append("g");const o=s.append("g");const c=o.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(D,e.width);const l=c.node().getBBox();const h=i.fontSize?.replace?i.fontSize.replace("px",""):i.fontSize;e.height=l.height+h*1.1*.5+e.padding;e.height=Math.max(e.height,e.maxHeight);e.width=e.width+2*e.padding;o.attr("transform","translate("+e.width/2+", "+e.padding/2+")");B(a,e,r,i);return e}),"drawNode");var W=(0,i.K2)((function(t,e,n){const i=t.append("g");const r=i.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(D,e.width);const s=r.node().getBBox();const a=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;i.remove();return s.height+a*1.1*.5+e.padding}),"getVirtualNodeHeight");var B=(0,i.K2)((function(t,e,n){const i=5;t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-i} v${-e.height+2*i} q0,-5 5,-5 h${e.width-2*i} q5,0 5,5 v${e.height-i} H0 Z`);t.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)}),"defaultBkg");var F={drawRect:E,drawCircle:I,drawSection:L,drawText:R,drawLabel:A,drawTask:C,drawBackgroundRect:N,getTextObj:P,getNoteRect:H,initGraphics:j,drawNode:z,getVirtualNodeHeight:W};var V=(0,i.K2)((function(t,e,n,s){const a=(0,i.D7)();const o=a.leftMargin??50;i.Rm.debug("timeline",s.db);const c=a.securityLevel;let l;if(c==="sandbox"){l=(0,r.Ltv)("#i"+e)}const h=c==="sandbox"?(0,r.Ltv)(l.nodes()[0].contentDocument.body):(0,r.Ltv)("body");const d=h.select("#"+e);d.append("g");const u=s.db.getTasks();const p=s.db.getCommonDb().getDiagramTitle();i.Rm.debug("task",u);F.initGraphics(d);const f=s.db.getSections();i.Rm.debug("sections",f);let y=0;let g=0;let m=0;let x=0;let b=50+o;let k=50;x=50;let v=0;let _=true;f.forEach((function(t){const e={number:v,descr:t,section:v,width:150,padding:20,maxHeight:y};const n=F.getVirtualNodeHeight(d,e,a);i.Rm.debug("sectionHeight before draw",n);y=Math.max(y,n+20)}));let w=0;let K=0;i.Rm.debug("tasks.length",u.length);for(const[r,E]of u.entries()){const t={number:r,descr:E,section:E.section,width:150,padding:20,maxHeight:g};const e=F.getVirtualNodeHeight(d,t,a);i.Rm.debug("taskHeight before draw",e);g=Math.max(g,e+20);w=Math.max(w,E.events.length);let n=0;for(const i of E.events){const t={descr:i,section:E.section,number:E.section,width:150,padding:20,maxHeight:50};n+=F.getVirtualNodeHeight(d,t,a)}K=Math.max(K,n)}i.Rm.debug("maxSectionHeight before draw",y);i.Rm.debug("maxTaskHeight before draw",g);if(f&&f.length>0){f.forEach((t=>{const e=u.filter((e=>e.section===t));const n={number:v,descr:t,section:v,width:200*Math.max(e.length,1)-50,padding:20,maxHeight:y};i.Rm.debug("sectionNode",n);const r=d.append("g");const s=F.drawNode(r,n,v,a);i.Rm.debug("sectionNode output",s);r.attr("transform",`translate(${b}, ${x})`);k+=y+50;if(e.length>0){G(d,e,v,b,k,g,a,w,K,y,false)}b+=200*Math.max(e.length,1);k=x;v++}))}else{_=false;G(d,u,v,b,k,g,a,w,K,y,true)}const S=d.node().getBBox();i.Rm.debug("bounds",S);if(p){d.append("text").text(p).attr("x",S.width/2-o).attr("font-size","4ex").attr("font-weight","bold").attr("y",20)}m=_?y+g+150:g+100;const $=d.append("g").attr("class","lineWrapper");$.append("line").attr("x1",o).attr("y1",m).attr("x2",S.width+3*o).attr("y2",m).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");(0,i.ot)(void 0,d,a.timeline?.padding??50,a.timeline?.useMaxWidth??false)}),"draw");var G=(0,i.K2)((function(t,e,n,r,s,a,o,c,l,h,d){for(const u of e){const e={descr:u.task,section:n,number:n,width:150,padding:20,maxHeight:a};i.Rm.debug("taskNode",e);const c=t.append("g").attr("class","taskWrapper");const p=F.drawNode(c,e,n,o);const f=p.height;i.Rm.debug("taskHeight after draw",f);c.attr("transform",`translate(${r}, ${s})`);a=Math.max(a,f);if(u.events){const e=t.append("g").attr("class","lineWrapper");let i=a;s+=100;i=i+U(t,u.events,n,r,s,o);s-=100;e.append("line").attr("x1",r+190/2).attr("y1",s+a).attr("x2",r+190/2).attr("y2",s+a+(d?a:h)+l+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}r=r+200;if(d&&!o.timeline?.disableMulticolor){n++}}s=s-10}),"drawTasks");var U=(0,i.K2)((function(t,e,n,r,s,a){let o=0;const c=s;s=s+100;for(const l of e){const e={descr:l,section:n,number:n,width:150,padding:20,maxHeight:50};i.Rm.debug("eventNode",e);const c=t.append("g").attr("class","eventWrapper");const h=F.drawNode(c,e,n,a);const d=h.height;o=o+d;c.attr("transform",`translate(${r}, ${s})`);s=s+10+d}s=c;return o}),"drawEvents");var q={setConf:(0,i.K2)((()=>{}),"setConf"),draw:V};var J=(0,i.K2)((t=>{let e="";for(let n=0;n`\n .edge {\n stroke-width: 3;\n }\n ${J(t)}\n .section-root rect, .section-root path, .section-root circle {\n fill: ${t.git0};\n }\n .section-root text {\n fill: ${t.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .eventWrapper {\n filter: brightness(120%);\n }\n`),"getStyles");var Z=Y;var X={db:h,renderer:q,parser:l,styles:Z}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6275.e99f9312900c481b467d.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6275.e99f9312900c481b467d.js deleted file mode 100644 index dbb8330352236a739f97b659c8e75b121ff8e47b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6275.e99f9312900c481b467d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6275],{24971:(t,e)=>{Object.defineProperty(e,"__esModule",{value:true});e.newState=e.STATE=e.AbstractMathItem=e.protoItem=void 0;function r(t,e,r,n,o,i,s){if(s===void 0){s=null}var a={open:t,math:e,close:r,n,start:{n:o},end:{n:i},display:s};return a}e.protoItem=r;var n=function(){function t(t,r,n,o,i){if(n===void 0){n=true}if(o===void 0){o={i:0,n:0,delim:""}}if(i===void 0){i={i:0,n:0,delim:""}}this.root=null;this.typesetRoot=null;this.metrics={};this.inputData={};this.outputData={};this._state=e.STATE.UNPROCESSED;this.math=t;this.inputJax=r;this.display=n;this.start=o;this.end=i;this.root=null;this.typesetRoot=null;this.metrics={};this.inputData={};this.outputData={}}Object.defineProperty(t.prototype,"isEscaped",{get:function(){return this.display===null},enumerable:false,configurable:true});t.prototype.render=function(t){t.renderActions.renderMath(this,t)};t.prototype.rerender=function(t,r){if(r===void 0){r=e.STATE.RERENDER}if(this.state()>=r){this.state(r-1)}t.renderActions.renderMath(this,t,r)};t.prototype.convert=function(t,r){if(r===void 0){r=e.STATE.LAST}t.renderActions.renderConvert(this,t,r)};t.prototype.compile=function(t){if(this.state()=e.STATE.INSERTED){this.removeFromDocument(r)}if(t=e.STATE.TYPESET){this.outputData={}}if(t=e.STATE.COMPILED){this.inputData={}}this._state=t}return this._state};t.prototype.reset=function(t){if(t===void 0){t=false}this.state(e.STATE.UNPROCESSED,t)};return t}();e.AbstractMathItem=n;e.STATE={UNPROCESSED:0,FINDMATH:10,COMPILED:20,CONVERT:100,METRICS:110,RERENDER:125,TYPESET:150,INSERTED:200,LAST:1e4};function o(t,r){if(t in e.STATE){throw Error("State "+t+" already exists")}e.STATE[t]=r}e.newState=o},54517:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var o=this&&this.__assign||function(){o=Object.assign||function(t){for(var e,r=1,n=arguments.length;rthis.childNodes.length){t=1}this.attributes.set("selection",t)};e.defaults=o(o({},i.AbstractMmlNode.defaults),{actiontype:"toggle",selection:1});return e}(i.AbstractMmlNode);e.MmlMaction=s},31859:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var o=this&&this.__assign||function(){o=Object.assign||function(t){for(var e,r=1,n=arguments.length;r=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.MmlMfenced=void 0;var s=r(80747);var a=function(t){n(e,t);function e(){var e=t!==null&&t.apply(this,arguments)||this;e.texclass=s.TEXCLASS.INNER;e.separators=[];e.open=null;e.close=null;return e}Object.defineProperty(e.prototype,"kind",{get:function(){return"mfenced"},enumerable:false,configurable:true});e.prototype.setTeXclass=function(t){this.getPrevClass(t);if(this.open){t=this.open.setTeXclass(t)}if(this.childNodes[0]){t=this.childNodes[0].setTeXclass(t)}for(var e=1,r=this.childNodes.length;e=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.MmlMfrac=void 0;var s=r(80747);var a=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"kind",{get:function(){return"mfrac"},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"arity",{get:function(){return 2},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"linebreakContainer",{get:function(){return true},enumerable:false,configurable:true});e.prototype.setTeXclass=function(t){var e,r;this.getPrevClass(t);try{for(var n=i(this.childNodes),o=n.next();!o.done;o=n.next()){var s=o.value;s.setTeXclass(null)}}catch(a){e={error:a}}finally{try{if(o&&!o.done&&(r=n.return))r.call(n)}finally{if(e)throw e.error}}return this};e.prototype.setChildInheritedAttributes=function(t,e,r,n){if(!e||r>0){r++}this.childNodes[0].setInheritedAttributes(t,false,r,n);this.childNodes[1].setInheritedAttributes(t,false,r,true)};e.defaults=o(o({},s.AbstractMmlBaseNode.defaults),{linethickness:"medium",numalign:"center",denomalign:"center",bevelled:false});return e}(s.AbstractMmlBaseNode);e.MmlMfrac=a},64906:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var o=this&&this.__assign||function(){o=Object.assign||function(t){for(var e,r=1,n=arguments.length;r1&&r.match(e.operatorName)&&this.attributes.get("mathvariant")==="normal"&&this.getProperty("autoOP")===undefined&&this.getProperty("texClass")===undefined){this.texClass=i.TEXCLASS.OP;this.setProperty("autoOP",true)}return this};e.defaults=o({},i.AbstractMmlTokenNode.defaults);e.operatorName=/^[a-z][a-z0-9]*$/i;e.singleCharacter=/^[\uD800-\uDBFF]?.[\u0300-\u036F\u1AB0-\u1ABE\u1DC0-\u1DFF\u20D0-\u20EF]*$/;return e}(i.AbstractMmlTokenNode);e.MmlMi=s},10093:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var o=this&&this.__assign||function(){o=Object.assign||function(t){for(var e,r=1,n=arguments.length;r=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.MmlInferredMrow=e.MmlMrow=void 0;var s=r(80747);var a=function(t){n(e,t);function e(){var e=t!==null&&t.apply(this,arguments)||this;e._core=null;return e}Object.defineProperty(e.prototype,"kind",{get:function(){return"mrow"},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"isSpacelike",{get:function(){var t,e;try{for(var r=i(this.childNodes),n=r.next();!n.done;n=r.next()){var o=n.value;if(!o.isSpacelike){return false}}}catch(s){t={error:s}}finally{try{if(n&&!n.done&&(e=r.return))e.call(r)}finally{if(t)throw t.error}}return true},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"isEmbellished",{get:function(){var t,e;var r=false;var n=0;try{for(var o=i(this.childNodes),s=o.next();!s.done;s=o.next()){var a=s.value;if(a){if(a.isEmbellished){if(r){return false}r=true;this._core=n}else if(!a.isSpacelike){return false}}n++}}catch(l){t={error:l}}finally{try{if(s&&!s.done&&(e=o.return))e.call(o)}finally{if(t)throw t.error}}return r},enumerable:false,configurable:true});e.prototype.core=function(){if(!this.isEmbellished||this._core==null){return this}return this.childNodes[this._core]};e.prototype.coreMO=function(){if(!this.isEmbellished||this._core==null){return this}return this.childNodes[this._core].coreMO()};e.prototype.nonSpaceLength=function(){var t,e;var r=0;try{for(var n=i(this.childNodes),o=n.next();!o.done;o=n.next()){var s=o.value;if(s&&!s.isSpacelike){r++}}}catch(a){t={error:a}}finally{try{if(o&&!o.done&&(e=n.return))e.call(n)}finally{if(t)throw t.error}}return r};e.prototype.firstNonSpace=function(){var t,e;try{for(var r=i(this.childNodes),n=r.next();!n.done;n=r.next()){var o=n.value;if(o&&!o.isSpacelike){return o}}}catch(s){t={error:s}}finally{try{if(n&&!n.done&&(e=r.return))e.call(r)}finally{if(t)throw t.error}}return null};e.prototype.lastNonSpace=function(){var t=this.childNodes.length;while(--t>=0){var e=this.childNodes[t];if(e&&!e.isSpacelike){return e}}return null};e.prototype.setTeXclass=function(t){var e,r,n,o;if(this.getProperty("open")!=null||this.getProperty("close")!=null){this.getPrevClass(t);t=null;try{for(var a=i(this.childNodes),l=a.next();!l.done;l=a.next()){var u=l.value;t=u.setTeXclass(t)}}catch(p){e={error:p}}finally{try{if(l&&!l.done&&(r=a.return))r.call(a)}finally{if(e)throw e.error}}if(this.texClass==null){this.texClass=s.TEXCLASS.INNER}}else{try{for(var c=i(this.childNodes),f=c.next();!f.done;f=c.next()){var u=f.value;t=u.setTeXclass(t)}}catch(h){n={error:h}}finally{try{if(f&&!f.done&&(o=c.return))o.call(c)}finally{if(n)throw n.error}}if(this.childNodes[0]){this.updateTeXclass(this.childNodes[0])}}return t};e.defaults=o({},s.AbstractMmlNode.defaults);return e}(s.AbstractMmlNode);e.MmlMrow=a;var l=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"kind",{get:function(){return"inferredMrow"},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"isInferred",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"notParent",{get:function(){return true},enumerable:false,configurable:true});e.prototype.toString=function(){return"["+this.childNodes.join(",")+"]"};e.defaults=a.defaults;return e}(a);e.MmlInferredMrow=l},68313:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var o=this&&this.__assign||function(){o=Object.assign||function(t){for(var e,r=1,n=arguments.length;r=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.MmlMtable=void 0;var s=r(80747);var a=r(41278);var l=function(t){n(e,t);function e(){var e=t!==null&&t.apply(this,arguments)||this;e.properties={useHeight:true};e.texclass=s.TEXCLASS.ORD;return e}Object.defineProperty(e.prototype,"kind",{get:function(){return"mtable"},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"linebreakContainer",{get:function(){return true},enumerable:false,configurable:true});e.prototype.setInheritedAttributes=function(e,r,n,o){var a,l;try{for(var u=i(s.indentAttributes),c=u.next();!c.done;c=u.next()){var f=c.value;if(e[f]){this.attributes.setInherited(f,e[f][1])}if(this.attributes.getExplicit(f)!==undefined){delete this.attributes.getAllAttributes()[f]}}}catch(p){a={error:p}}finally{try{if(c&&!c.done&&(l=u.return))l.call(u)}finally{if(a)throw a.error}}t.prototype.setInheritedAttributes.call(this,e,r,n,o)};e.prototype.setChildInheritedAttributes=function(t,e,r,n){var o,s,l,u;try{for(var c=i(this.childNodes),f=c.next();!f.done;f=c.next()){var p=f.value;if(!p.isKind("mtr")){this.replaceChild(this.factory.create("mtr"),p).appendChild(p)}}}catch(v){o={error:v}}finally{try{if(f&&!f.done&&(s=c.return))s.call(c)}finally{if(o)throw o.error}}r=this.getProperty("scriptlevel")||r;e=!!(this.attributes.getExplicit("displaystyle")||this.attributes.getDefault("displaystyle"));t=this.addInheritedAttributes(t,{columnalign:this.attributes.get("columnalign"),rowalign:"center"});var h=this.attributes.getExplicit("data-cramped");var d=(0,a.split)(this.attributes.get("rowalign"));try{for(var y=i(this.childNodes),b=y.next();!b.done;b=y.next()){var p=b.value;t.rowalign[1]=d.shift()||t.rowalign[1];p.setInheritedAttributes(t,e,r,!!h)}}catch(g){l={error:g}}finally{try{if(b&&!b.done&&(u=y.return))u.call(y)}finally{if(l)throw l.error}}};e.prototype.verifyChildren=function(e){var r=null;var n=this.factory;for(var o=0;o=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.MmlMlabeledtr=e.MmlMtr=void 0;var s=r(80747);var a=r(98128);var l=r(41278);var u=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"kind",{get:function(){return"mtr"},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"linebreakContainer",{get:function(){return true},enumerable:false,configurable:true});e.prototype.setChildInheritedAttributes=function(t,e,r,n){var o,s,a,u;try{for(var c=i(this.childNodes),f=c.next();!f.done;f=c.next()){var p=f.value;if(!p.isKind("mtd")){this.replaceChild(this.factory.create("mtd"),p).appendChild(p)}}}catch(b){o={error:b}}finally{try{if(f&&!f.done&&(s=c.return))s.call(c)}finally{if(o)throw o.error}}var h=(0,l.split)(this.attributes.get("columnalign"));if(this.arity===1){h.unshift(this.parent.attributes.get("side"))}t=this.addInheritedAttributes(t,{rowalign:this.attributes.get("rowalign"),columnalign:"center"});try{for(var d=i(this.childNodes),y=d.next();!y.done;y=d.next()){var p=y.value;t.columnalign[1]=h.shift()||t.columnalign[1];p.setInheritedAttributes(t,e,r,n)}}catch(v){a={error:v}}finally{try{if(y&&!y.done&&(u=d.return))u.call(d)}finally{if(a)throw a.error}}};e.prototype.verifyChildren=function(e){var r,n;if(this.parent&&!this.parent.isKind("mtable")){this.mError(this.kind+" can only be a child of an mtable",e,true);return}try{for(var o=i(this.childNodes),s=o.next();!s.done;s=o.next()){var a=s.value;if(!a.isKind("mtd")){var l=this.replaceChild(this.factory.create("mtd"),a);l.appendChild(a);if(!e["fixMtables"]){a.mError("Children of "+this.kind+" must be mtd",e)}}}}catch(u){r={error:u}}finally{try{if(s&&!s.done&&(n=o.return))n.call(o)}finally{if(r)throw r.error}}t.prototype.verifyChildren.call(this,e)};e.prototype.setTeXclass=function(t){var e,r;this.getPrevClass(t);try{for(var n=i(this.childNodes),o=n.next();!o.done;o=n.next()){var s=o.value;s.setTeXclass(null)}}catch(a){e={error:a}}finally{try{if(o&&!o.done&&(r=n.return))r.call(n)}finally{if(e)throw e.error}}return this};e.defaults=o(o({},s.AbstractMmlNode.defaults),{rowalign:a.INHERIT,columnalign:a.INHERIT,groupalign:a.INHERIT});return e}(s.AbstractMmlNode);e.MmlMtr=u;var c=function(t){n(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}Object.defineProperty(e.prototype,"kind",{get:function(){return"mlabeledtr"},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"arity",{get:function(){return 1},enumerable:false,configurable:true});return e}(u);e.MmlMlabeledtr=c},46072:function(t,e,r){var n=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var o=this&&this.__assign||function(){o=Object.assign||function(t){for(var e,r=1,n=arguments.length;r=t.length)t=void 0;return{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__read||function(t,e){var r=typeof Symbol==="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),o,i=[],s;try{while((e===void 0||e-- >0)&&!(o=n.next()).done)i.push(o.value)}catch(a){s={error:a}}finally{try{if(o&&!o.done&&(r=n["return"]))r.call(n)}finally{if(s)throw s.error}}return i};var o=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var n=0,o=e.length,i;n{n.r(t);n.d(t,{ecl:()=>k});function r(e){var t={},n=e.split(" ");for(var r=0;r!?|\/]/;var m;function h(e,t){var n=e.next();if(f[n]){var r=f[n](e,t);if(r!==false)return r}if(n=='"'||n=="'"){t.tokenize=y(n);return t.tokenize(e,t)}if(/[\[\]{}\(\),;\:\.]/.test(n)){m=n;return null}if(/\d/.test(n)){e.eatWhile(/[\w\.]/);return"number"}if(n=="/"){if(e.eat("*")){t.tokenize=v;return v(e,t)}if(e.eat("/")){e.skipToEnd();return"comment"}}if(d.test(n)){e.eatWhile(d);return"operator"}e.eatWhile(/[\w\$_]/);var a=e.current().toLowerCase();if(i.propertyIsEnumerable(a)){if(c.propertyIsEnumerable(a))m="newstatement";return"keyword"}else if(o.propertyIsEnumerable(a)){if(c.propertyIsEnumerable(a))m="newstatement";return"variable"}else if(l.propertyIsEnumerable(a)){if(c.propertyIsEnumerable(a))m="newstatement";return"modifier"}else if(s.propertyIsEnumerable(a)){if(c.propertyIsEnumerable(a))m="newstatement";return"type"}else if(u.propertyIsEnumerable(a)){if(c.propertyIsEnumerable(a))m="newstatement";return"builtin"}else{var h=a.length-1;while(h>=0&&(!isNaN(a[h])||a[h]=="_"))--h;if(h>0){var b=a.substr(0,h+1);if(s.propertyIsEnumerable(b)){if(c.propertyIsEnumerable(b))m="newstatement";return"type"}}}if(p.propertyIsEnumerable(a))return"atom";return null}function y(e){return function(t,n){var r=false,a,i=false;while((a=t.next())!=null){if(a==e&&!r){i=true;break}r=!r&&a=="\\"}if(i||!r)n.tokenize=h;return"string"}}function v(e,t){var n=false,r;while(r=e.next()){if(r=="/"&&n){t.tokenize=h;break}n=r=="*"}return"comment"}function b(e,t,n,r,a){this.indented=e;this.column=t;this.type=n;this.align=r;this.prev=a}function g(e,t,n){return e.context=new b(e.indented,t,n,null,e.context)}function w(e){var t=e.context.type;if(t==")"||t=="]"||t=="}")e.indented=e.context.indented;return e.context=e.context.prev}const k={name:"ecl",startState:function(e){return{tokenize:null,context:new b(-e,0,"top",false),indented:0,startOfLine:true}},token:function(e,t){var n=t.context;if(e.sol()){if(n.align==null)n.align=false;t.indented=e.indentation();t.startOfLine=true}if(e.eatSpace())return null;m=null;var r=(t.tokenize||h)(e,t);if(r=="comment"||r=="meta")return r;if(n.align==null)n.align=true;if((m==";"||m==":")&&n.type=="statement")w(t);else if(m=="{")g(t,e.column(),"}");else if(m=="[")g(t,e.column(),"]");else if(m=="(")g(t,e.column(),")");else if(m=="}"){while(n.type=="statement")n=w(t);if(n.type=="}")n=w(t);while(n.type=="statement")n=w(t)}else if(m==n.type)w(t);else if(n.type=="}"||n.type=="top"||n.type=="statement"&&m=="newstatement")g(t,e.column(),"statement");t.startOfLine=false;return r},indent:function(e,t,n){if(e.tokenize!=h&&e.tokenize!=null)return 0;var r=e.context,a=t&&t.charAt(0);if(r.type=="statement"&&a=="}")r=r.prev;var i=a==r.type;if(r.type=="statement")return r.indented+(a=="{"?0:n.unit);else if(r.align)return r.column+(i?0:1);else return r.indented+(i?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6364.c592f3101de349ba3904.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6364.c592f3101de349ba3904.js deleted file mode 100644 index 1bebe7fcacb0267f11239626591e0f4817e42282..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6364.c592f3101de349ba3904.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6364],{65791:(t,e,r)=>{r.d(e,{T:()=>w});var a=r(33659);var s=r(58807);var i=r(37947);var n=r(97133);var o=r(74650);var l=r(69769);var c=r(89523);var h=r(62040);var d=r(55881);var u=r(19363);var g=r(10654);var p=(0,d.A)((function(t){return(0,u.A)((0,h.A)(t,1,g.A,true))}));const y=p;var f=r(44882);var b=r(65339);var x="\0";var m="\0";var k="";class w{constructor(t={}){this._isDirected=Object.prototype.hasOwnProperty.call(t,"directed")?t.directed:true;this._isMultigraph=Object.prototype.hasOwnProperty.call(t,"multigraph")?t.multigraph:false;this._isCompound=Object.prototype.hasOwnProperty.call(t,"compound")?t.compound:false;this._label=undefined;this._defaultNodeLabelFn=a.A(undefined);this._defaultEdgeLabelFn=a.A(undefined);this._nodes={};if(this._isCompound){this._parent={};this._children={};this._children[m]={}}this._in={};this._preds={};this._out={};this._sucs={};this._edgeObjs={};this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){this._label=t;return this}graph(){return this._label}setDefaultNodeLabel(t){if(!s.A(t)){t=a.A(t)}this._defaultNodeLabelFn=t;return this}nodeCount(){return this._nodeCount}nodes(){return i.A(this._nodes)}sources(){var t=this;return n.A(this.nodes(),(function(e){return o.A(t._in[e])}))}sinks(){var t=this;return n.A(this.nodes(),(function(e){return o.A(t._out[e])}))}setNodes(t,e){var r=arguments;var a=this;l.A(t,(function(t){if(r.length>1){a.setNode(t,e)}else{a.setNode(t)}}));return this}setNode(t,e){if(Object.prototype.hasOwnProperty.call(this._nodes,t)){if(arguments.length>1){this._nodes[t]=e}return this}this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t);if(this._isCompound){this._parent[t]=m;this._children[t]={};this._children[m][t]=true}this._in[t]={};this._preds[t]={};this._out[t]={};this._sucs[t]={};++this._nodeCount;return this}node(t){return this._nodes[t]}hasNode(t){return Object.prototype.hasOwnProperty.call(this._nodes,t)}removeNode(t){if(Object.prototype.hasOwnProperty.call(this._nodes,t)){var e=t=>this.removeEdge(this._edgeObjs[t]);delete this._nodes[t];if(this._isCompound){this._removeFromParentsChildList(t);delete this._parent[t];l.A(this.children(t),(t=>{this.setParent(t)}));delete this._children[t]}l.A(i.A(this._in[t]),e);delete this._in[t];delete this._preds[t];l.A(i.A(this._out[t]),e);delete this._out[t];delete this._sucs[t];--this._nodeCount}return this}setParent(t,e){if(!this._isCompound){throw new Error("Cannot set parent in a non-compound graph")}if(c.A(e)){e=m}else{e+="";for(var r=e;!c.A(r);r=this.parent(r)){if(r===t){throw new Error("Setting "+e+" as parent of "+t+" would create a cycle")}}this.setNode(e)}this.setNode(t);this._removeFromParentsChildList(t);this._parent[t]=e;this._children[e][t]=true;return this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var e=this._parent[t];if(e!==m){return e}}}children(t){if(c.A(t)){t=m}if(this._isCompound){var e=this._children[t];if(e){return i.A(e)}}else if(t===m){return this.nodes()}else if(this.hasNode(t)){return[]}}predecessors(t){var e=this._preds[t];if(e){return i.A(e)}}successors(t){var e=this._sucs[t];if(e){return i.A(e)}}neighbors(t){var e=this.predecessors(t);if(e){return y(e,this.successors(t))}}isLeaf(t){var e;if(this.isDirected()){e=this.successors(t)}else{e=this.neighbors(t)}return e.length===0}filterNodes(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var r=this;l.A(this._nodes,(function(r,a){if(t(a)){e.setNode(a,r)}}));l.A(this._edgeObjs,(function(t){if(e.hasNode(t.v)&&e.hasNode(t.w)){e.setEdge(t,r.edge(t))}}));var a={};function s(t){var i=r.parent(t);if(i===undefined||e.hasNode(i)){a[t]=i;return i}else if(i in a){return a[i]}else{return s(i)}}if(this._isCompound){l.A(e.nodes(),(function(t){e.setParent(t,s(t))}))}return e}setDefaultEdgeLabel(t){if(!s.A(t)){t=a.A(t)}this._defaultEdgeLabelFn=t;return this}edgeCount(){return this._edgeCount}edges(){return f.A(this._edgeObjs)}setPath(t,e){var r=this;var a=arguments;b.A(t,(function(t,s){if(a.length>1){r.setEdge(t,s,e)}else{r.setEdge(t,s)}return s}));return this}setEdge(){var t,e,r,a;var s=false;var i=arguments[0];if(typeof i==="object"&&i!==null&&"v"in i){t=i.v;e=i.w;r=i.name;if(arguments.length===2){a=arguments[1];s=true}}else{t=i;e=arguments[1];r=arguments[3];if(arguments.length>2){a=arguments[2];s=true}}t=""+t;e=""+e;if(!c.A(r)){r=""+r}var n=v(this._isDirected,t,e,r);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,n)){if(s){this._edgeLabels[n]=a}return this}if(!c.A(r)&&!this._isMultigraph){throw new Error("Cannot set a named edge when isMultigraph = false")}this.setNode(t);this.setNode(e);this._edgeLabels[n]=s?a:this._defaultEdgeLabelFn(t,e,r);var o=S(this._isDirected,t,e,r);t=o.v;e=o.w;Object.freeze(o);this._edgeObjs[n]=o;L(this._preds[e],t);L(this._sucs[t],e);this._in[e][n]=o;this._out[t][n]=o;this._edgeCount++;return this}edge(t,e,r){var a=arguments.length===1?E(this._isDirected,arguments[0]):v(this._isDirected,t,e,r);return this._edgeLabels[a]}hasEdge(t,e,r){var a=arguments.length===1?E(this._isDirected,arguments[0]):v(this._isDirected,t,e,r);return Object.prototype.hasOwnProperty.call(this._edgeLabels,a)}removeEdge(t,e,r){var a=arguments.length===1?E(this._isDirected,arguments[0]):v(this._isDirected,t,e,r);var s=this._edgeObjs[a];if(s){t=s.v;e=s.w;delete this._edgeLabels[a];delete this._edgeObjs[a];_(this._preds[e],t);_(this._sucs[t],e);delete this._in[e][a];delete this._out[t][a];this._edgeCount--}return this}inEdges(t,e){var r=this._in[t];if(r){var a=f.A(r);if(!e){return a}return n.A(a,(function(t){return t.v===e}))}}outEdges(t,e){var r=this._out[t];if(r){var a=f.A(r);if(!e){return a}return n.A(a,(function(t){return t.w===e}))}}nodeEdges(t,e){var r=this.inEdges(t,e);if(r){return r.concat(this.outEdges(t,e))}}}w.prototype._nodeCount=0;w.prototype._edgeCount=0;function L(t,e){if(t[e]){t[e]++}else{t[e]=1}}function _(t,e){if(! --t[e]){delete t[e]}}function v(t,e,r,a){var s=""+e;var i=""+r;if(!t&&s>i){var n=s;s=i;i=n}return s+k+i+k+(c.A(a)?x:a)}function S(t,e,r,a){var s=""+e;var i=""+r;if(!t&&s>i){var n=s;s=i;i=n}var o={v:s,w:i};if(a){o.name=a}return o}function E(t,e){return v(t,e.v,e.w,e.name)}},84416:(t,e,r)=>{r.d(e,{T:()=>a.T});var a=r(65791);const s="2.1.9-pre"},27574:(t,e,r)=>{r.d(e,{A:()=>n});var a=r(57991);var s=r(63221);const i=(t,e)=>a.A.lang.round(s.A.parse(t)[e]);const n=i},97134:(t,e,r)=>{r.d(e,{A:()=>n});var a=r(59386);var s=4;function i(t){return(0,a.A)(t,s)}const n=i},46364:(t,e,r)=>{r.d(e,{diagram:()=>Me});var a=r(94746);var s=r(57590);var i=r(76261);var n=r(96049);var o=r(75905);var l=r(97134);var c=r(27574);var h=r(3635);var d=r(24982);var u=r(84416);var g=function(){var t=(0,o.K2)((function(t,e,r,a){for(r=r||{},a=t.length;a--;r[t[a]]=e);return r}),"o"),e=[1,7],r=[1,13],a=[1,14],s=[1,15],i=[1,19],n=[1,16],l=[1,17],c=[1,18],h=[8,30],d=[8,21,28,29,30,31,32,40,44,47],u=[1,23],g=[1,24],p=[8,15,16,21,28,29,30,31,32,40,44,47],y=[8,15,16,21,27,28,29,30,31,32,40,44,47],f=[1,49];var b={trace:(0,o.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:(0,o.K2)((function t(e,r,a,s,i,n,o){var l=n.length-1;switch(i){case 4:s.getLogger().debug("Rule: separator (NL) ");break;case 5:s.getLogger().debug("Rule: separator (Space) ");break;case 6:s.getLogger().debug("Rule: separator (EOF) ");break;case 7:s.getLogger().debug("Rule: hierarchy: ",n[l-1]);s.setHierarchy(n[l-1]);break;case 8:s.getLogger().debug("Stop NL ");break;case 9:s.getLogger().debug("Stop EOF ");break;case 10:s.getLogger().debug("Stop NL2 ");break;case 11:s.getLogger().debug("Stop EOF2 ");break;case 12:s.getLogger().debug("Rule: statement: ",n[l]);typeof n[l].length==="number"?this.$=n[l]:this.$=[n[l]];break;case 13:s.getLogger().debug("Rule: statement #2: ",n[l-1]);this.$=[n[l-1]].concat(n[l]);break;case 14:s.getLogger().debug("Rule: link: ",n[l],e);this.$={edgeTypeStr:n[l],label:""};break;case 15:s.getLogger().debug("Rule: LABEL link: ",n[l-3],n[l-1],n[l]);this.$={edgeTypeStr:n[l],label:n[l-1]};break;case 18:const t=parseInt(n[l]);const r=s.generateId();this.$={id:r,type:"space",label:"",width:t,children:[]};break;case 23:s.getLogger().debug("Rule: (nodeStatement link node) ",n[l-2],n[l-1],n[l]," typestr: ",n[l-1].edgeTypeStr);const a=s.edgeStrToEdgeData(n[l-1].edgeTypeStr);this.$=[{id:n[l-2].id,label:n[l-2].label,type:n[l-2].type,directions:n[l-2].directions},{id:n[l-2].id+"-"+n[l].id,start:n[l-2].id,end:n[l].id,label:n[l-1].label,type:"edge",directions:n[l].directions,arrowTypeEnd:a,arrowTypeStart:"arrow_open"},{id:n[l].id,label:n[l].label,type:s.typeStr2Type(n[l].typeStr),directions:n[l].directions}];break;case 24:s.getLogger().debug("Rule: nodeStatement (abc88 node size) ",n[l-1],n[l]);this.$={id:n[l-1].id,label:n[l-1].label,type:s.typeStr2Type(n[l-1].typeStr),directions:n[l-1].directions,widthInColumns:parseInt(n[l],10)};break;case 25:s.getLogger().debug("Rule: nodeStatement (node) ",n[l]);this.$={id:n[l].id,label:n[l].label,type:s.typeStr2Type(n[l].typeStr),directions:n[l].directions,widthInColumns:1};break;case 26:s.getLogger().debug("APA123",this?this:"na");s.getLogger().debug("COLUMNS: ",n[l]);this.$={type:"column-setting",columns:n[l]==="auto"?-1:parseInt(n[l])};break;case 27:s.getLogger().debug("Rule: id-block statement : ",n[l-2],n[l-1]);const i=s.generateId();this.$={...n[l-2],type:"composite",children:n[l-1]};break;case 28:s.getLogger().debug("Rule: blockStatement : ",n[l-2],n[l-1],n[l]);const o=s.generateId();this.$={id:o,type:"composite",label:"",children:n[l-1]};break;case 29:s.getLogger().debug("Rule: node (NODE_ID separator): ",n[l]);this.$={id:n[l]};break;case 30:s.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",n[l-1],n[l]);this.$={id:n[l-1],label:n[l].label,typeStr:n[l].typeStr,directions:n[l].directions};break;case 31:s.getLogger().debug("Rule: dirList: ",n[l]);this.$=[n[l]];break;case 32:s.getLogger().debug("Rule: dirList: ",n[l-1],n[l]);this.$=[n[l-1]].concat(n[l]);break;case 33:s.getLogger().debug("Rule: nodeShapeNLabel: ",n[l-2],n[l-1],n[l]);this.$={typeStr:n[l-2]+n[l],label:n[l-1]};break;case 34:s.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",n[l-3],n[l-2]," #3:",n[l-1],n[l]);this.$={typeStr:n[l-3]+n[l],label:n[l-2],directions:n[l-1]};break;case 35:case 36:this.$={type:"classDef",id:n[l-1].trim(),css:n[l].trim()};break;case 37:this.$={type:"applyClass",id:n[l-1].trim(),styleClass:n[l].trim()};break;case 38:this.$={type:"applyStyles",id:n[l-1].trim(),stylesStr:n[l].trim()};break}}),"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:a,31:s,32:i,40:n,44:l,47:c},{8:[1,20]},t(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:e,28:r,29:a,31:s,32:i,40:n,44:l,47:c}),t(d,[2,16],{14:22,15:u,16:g}),t(d,[2,17]),t(d,[2,18]),t(d,[2,19]),t(d,[2,20]),t(d,[2,21]),t(d,[2,22]),t(p,[2,25],{27:[1,25]}),t(d,[2,26]),{19:26,26:12,32:i},{11:27,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:a,31:s,32:i,40:n,44:l,47:c},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},t(y,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},t(h,[2,13]),{26:35,32:i},{32:[2,14]},{17:[1,36]},t(p,[2,24]),{11:37,13:4,14:22,15:u,16:g,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:a,31:s,32:i,40:n,44:l,47:c},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},t(y,[2,30]),{18:[1,43]},{18:[1,44]},t(p,[2,23]),{18:[1,45]},{30:[1,46]},t(d,[2,28]),t(d,[2,35]),t(d,[2,36]),t(d,[2,37]),t(d,[2,38]),{37:[1,47]},{34:48,35:f},{15:[1,50]},t(d,[2,27]),t(y,[2,33]),{39:[1,51]},{34:52,35:f,39:[2,31]},{32:[2,15]},t(y,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:(0,o.K2)((function t(e,r){if(r.recoverable){this.trace(e)}else{var a=new Error(e);a.hash=r;throw a}}),"parseError"),parse:(0,o.K2)((function t(e){var r=this,a=[0],s=[],i=[null],n=[],l=this.table,c="",h=0,d=0,u=0,g=2,p=1;var y=n.slice.call(arguments,1);var f=Object.create(this.lexer);var b={yy:{}};for(var x in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,x)){b.yy[x]=this.yy[x]}}f.setInput(e,b.yy);b.yy.lexer=f;b.yy.parser=this;if(typeof f.yylloc=="undefined"){f.yylloc={}}var m=f.yylloc;n.push(m);var k=f.options&&f.options.ranges;if(typeof b.yy.parseError==="function"){this.parseError=b.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function w(t){a.length=a.length-2*t;i.length=i.length-t;n.length=n.length-t}(0,o.K2)(w,"popStack");function L(){var t;t=s.pop()||f.lex()||p;if(typeof t!=="number"){if(t instanceof Array){s=t;t=s.pop()}t=r.symbols_[t]||t}return t}(0,o.K2)(L,"lex");var _,v,S,E,D,N,K={},R,C,T,$;while(true){S=a[a.length-1];if(this.defaultActions[S]){E=this.defaultActions[S]}else{if(_===null||typeof _=="undefined"){_=L()}E=l[S]&&l[S][_]}if(typeof E==="undefined"||!E.length||!E[0]){var A="";$=[];for(R in l[S]){if(this.terminals_[R]&&R>g){$.push("'"+this.terminals_[R]+"'")}}if(f.showPosition){A="Parse error on line "+(h+1)+":\n"+f.showPosition()+"\nExpecting "+$.join(", ")+", got '"+(this.terminals_[_]||_)+"'"}else{A="Parse error on line "+(h+1)+": Unexpected "+(_==p?"end of input":"'"+(this.terminals_[_]||_)+"'")}this.parseError(A,{text:f.match,token:this.terminals_[_]||_,line:f.yylineno,loc:m,expected:$})}if(E[0]instanceof Array&&E.length>1){throw new Error("Parse Error: multiple actions possible at state: "+S+", token: "+_)}switch(E[0]){case 1:a.push(_);i.push(f.yytext);n.push(f.yylloc);a.push(E[1]);_=null;if(!v){d=f.yyleng;c=f.yytext;h=f.yylineno;m=f.yylloc;if(u>0){u--}}else{_=v;v=null}break;case 2:C=this.productions_[E[1]][1];K.$=i[i.length-C];K._$={first_line:n[n.length-(C||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(C||1)].first_column,last_column:n[n.length-1].last_column};if(k){K._$.range=[n[n.length-(C||1)].range[0],n[n.length-1].range[1]]}N=this.performAction.apply(K,[c,d,h,b.yy,E[1],i,n].concat(y));if(typeof N!=="undefined"){return N}if(C){a=a.slice(0,-1*C*2);i=i.slice(0,-1*C);n=n.slice(0,-1*C)}a.push(this.productions_[E[1]][0]);i.push(K.$);n.push(K._$);T=l[a[a.length-2]][a[a.length-1]];a.push(T);break;case 3:return true}}return true}),"parse")};var x=function(){var t={EOF:1,parseError:(0,o.K2)((function t(e,r){if(this.yy.parser){this.yy.parser.parseError(e,r)}else{throw new Error(e)}}),"parseError"),setInput:(0,o.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,o.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,o.K2)((function(t){var e=t.length;var r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(r.length-1){this.yylineno-=r.length-1}var s=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===a.length?this.yylloc.first_column:0)+a[a.length-r.length].length-r[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[s[0],s[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,o.K2)((function(){this._more=true;return this}),"more"),reject:(0,o.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,o.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,o.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,o.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,o.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,o.K2)((function(t,e){var r,a,s;if(this.options.backtrack_lexer){s={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){s.yylloc.range=this.yylloc.range.slice(0)}}a=t[0].match(/(?:\r\n?|\n).*/g);if(a){this.yylineno+=a.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(r){return r}else if(this._backtrack){for(var i in s){this[i]=s[i]}return false}return false}),"test_match"),next:(0,o.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,r,a;if(!this._more){this.yytext="";this.match=""}var s=this._currentRules();for(var i=0;ie[0].length)){e=r;a=i;if(this.options.backtrack_lexer){t=this.test_match(r,s[i]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,s[a]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,o.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,o.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,o.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,o.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,o.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,o.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,o.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{},performAction:(0,o.K2)((function t(e,r,a,s){var i=s;switch(a){case 0:return 10;break;case 1:e.getLogger().debug("Found space-block");return 31;break;case 2:e.getLogger().debug("Found nl-block");return 31;break;case 3:e.getLogger().debug("Found space-block");return 29;break;case 4:e.getLogger().debug(".",r.yytext);break;case 5:e.getLogger().debug("_",r.yytext);break;case 6:return 5;break;case 7:r.yytext=-1;return 28;break;case 8:r.yytext=r.yytext.replace(/columns\s+/,"");e.getLogger().debug("COLUMNS (LEX)",r.yytext);return 28;break;case 9:this.pushState("md_string");break;case 10:return"MD_STR";break;case 11:this.popState();break;case 12:this.pushState("string");break;case 13:e.getLogger().debug("LEX: POPPING STR:",r.yytext);this.popState();break;case 14:e.getLogger().debug("LEX: STR end:",r.yytext);return"STR";break;case 15:r.yytext=r.yytext.replace(/space\:/,"");e.getLogger().debug("SPACE NUM (LEX)",r.yytext);return 21;break;case 16:r.yytext="1";e.getLogger().debug("COLUMNS (LEX)",r.yytext);return 21;break;case 17:return 43;break;case 18:return"LINKSTYLE";break;case 19:return"INTERPOLATE";break;case 20:this.pushState("CLASSDEF");return 40;break;case 21:this.popState();this.pushState("CLASSDEFID");return"DEFAULT_CLASSDEF_ID";break;case 22:this.popState();this.pushState("CLASSDEFID");return 41;break;case 23:this.popState();return 42;break;case 24:this.pushState("CLASS");return 44;break;case 25:this.popState();this.pushState("CLASS_STYLE");return 45;break;case 26:this.popState();return 46;break;case 27:this.pushState("STYLE_STMNT");return 47;break;case 28:this.popState();this.pushState("STYLE_DEFINITION");return 48;break;case 29:this.popState();return 49;break;case 30:this.pushState("acc_title");return"acc_title";break;case 31:this.popState();return"acc_title_value";break;case 32:this.pushState("acc_descr");return"acc_descr";break;case 33:this.popState();return"acc_descr_value";break;case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";break;case 37:return 30;break;case 38:this.popState();e.getLogger().debug("Lex: ((");return"NODE_DEND";break;case 39:this.popState();e.getLogger().debug("Lex: ((");return"NODE_DEND";break;case 40:this.popState();e.getLogger().debug("Lex: ))");return"NODE_DEND";break;case 41:this.popState();e.getLogger().debug("Lex: ((");return"NODE_DEND";break;case 42:this.popState();e.getLogger().debug("Lex: ((");return"NODE_DEND";break;case 43:this.popState();e.getLogger().debug("Lex: (-");return"NODE_DEND";break;case 44:this.popState();e.getLogger().debug("Lex: -)");return"NODE_DEND";break;case 45:this.popState();e.getLogger().debug("Lex: ((");return"NODE_DEND";break;case 46:this.popState();e.getLogger().debug("Lex: ]]");return"NODE_DEND";break;case 47:this.popState();e.getLogger().debug("Lex: (");return"NODE_DEND";break;case 48:this.popState();e.getLogger().debug("Lex: ])");return"NODE_DEND";break;case 49:this.popState();e.getLogger().debug("Lex: /]");return"NODE_DEND";break;case 50:this.popState();e.getLogger().debug("Lex: /]");return"NODE_DEND";break;case 51:this.popState();e.getLogger().debug("Lex: )]");return"NODE_DEND";break;case 52:this.popState();e.getLogger().debug("Lex: )");return"NODE_DEND";break;case 53:this.popState();e.getLogger().debug("Lex: ]>");return"NODE_DEND";break;case 54:this.popState();e.getLogger().debug("Lex: ]");return"NODE_DEND";break;case 55:e.getLogger().debug("Lexa: -)");this.pushState("NODE");return 36;break;case 56:e.getLogger().debug("Lexa: (-");this.pushState("NODE");return 36;break;case 57:e.getLogger().debug("Lexa: ))");this.pushState("NODE");return 36;break;case 58:e.getLogger().debug("Lexa: )");this.pushState("NODE");return 36;break;case 59:e.getLogger().debug("Lex: (((");this.pushState("NODE");return 36;break;case 60:e.getLogger().debug("Lexa: )");this.pushState("NODE");return 36;break;case 61:e.getLogger().debug("Lexa: )");this.pushState("NODE");return 36;break;case 62:e.getLogger().debug("Lexa: )");this.pushState("NODE");return 36;break;case 63:e.getLogger().debug("Lexc: >");this.pushState("NODE");return 36;break;case 64:e.getLogger().debug("Lexa: ([");this.pushState("NODE");return 36;break;case 65:e.getLogger().debug("Lexa: )");this.pushState("NODE");return 36;break;case 66:this.pushState("NODE");return 36;break;case 67:this.pushState("NODE");return 36;break;case 68:this.pushState("NODE");return 36;break;case 69:this.pushState("NODE");return 36;break;case 70:this.pushState("NODE");return 36;break;case 71:this.pushState("NODE");return 36;break;case 72:this.pushState("NODE");return 36;break;case 73:e.getLogger().debug("Lexa: [");this.pushState("NODE");return 36;break;case 74:this.pushState("BLOCK_ARROW");e.getLogger().debug("LEX ARR START");return 38;break;case 75:e.getLogger().debug("Lex: NODE_ID",r.yytext);return 32;break;case 76:e.getLogger().debug("Lex: EOF",r.yytext);return 8;break;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";break;case 80:this.popState();break;case 81:e.getLogger().debug("Lex: Starting string");this.pushState("string");break;case 82:e.getLogger().debug("LEX ARR: Starting string");this.pushState("string");break;case 83:e.getLogger().debug("LEX: NODE_DESCR:",r.yytext);return"NODE_DESCR";break;case 84:e.getLogger().debug("LEX POPPING");this.popState();break;case 85:e.getLogger().debug("Lex: =>BAE");this.pushState("ARROW_DIR");break;case 86:r.yytext=r.yytext.replace(/^,\s*/,"");e.getLogger().debug("Lex (right): dir:",r.yytext);return"DIR";break;case 87:r.yytext=r.yytext.replace(/^,\s*/,"");e.getLogger().debug("Lex (left):",r.yytext);return"DIR";break;case 88:r.yytext=r.yytext.replace(/^,\s*/,"");e.getLogger().debug("Lex (x):",r.yytext);return"DIR";break;case 89:r.yytext=r.yytext.replace(/^,\s*/,"");e.getLogger().debug("Lex (y):",r.yytext);return"DIR";break;case 90:r.yytext=r.yytext.replace(/^,\s*/,"");e.getLogger().debug("Lex (up):",r.yytext);return"DIR";break;case 91:r.yytext=r.yytext.replace(/^,\s*/,"");e.getLogger().debug("Lex (down):",r.yytext);return"DIR";break;case 92:r.yytext="]>";e.getLogger().debug("Lex (ARROW_DIR end):",r.yytext);this.popState();this.popState();return"BLOCK_ARROW_END";break;case 93:e.getLogger().debug("Lex: LINK","#"+r.yytext+"#");return 15;break;case 94:e.getLogger().debug("Lex: LINK",r.yytext);return 15;break;case 95:e.getLogger().debug("Lex: LINK",r.yytext);return 15;break;case 96:e.getLogger().debug("Lex: LINK",r.yytext);return 15;break;case 97:e.getLogger().debug("Lex: START_LINK",r.yytext);this.pushState("LLABEL");return 16;break;case 98:e.getLogger().debug("Lex: START_LINK",r.yytext);this.pushState("LLABEL");return 16;break;case 99:e.getLogger().debug("Lex: START_LINK",r.yytext);this.pushState("LLABEL");return 16;break;case 100:this.pushState("md_string");break;case 101:e.getLogger().debug("Lex: Starting string");this.pushState("string");return"LINK_LABEL";break;case 102:this.popState();e.getLogger().debug("Lex: LINK","#"+r.yytext+"#");return 15;break;case 103:this.popState();e.getLogger().debug("Lex: LINK",r.yytext);return 15;break;case 104:this.popState();e.getLogger().debug("Lex: LINK",r.yytext);return 15;break;case 105:e.getLogger().debug("Lex: COLON",r.yytext);r.yytext=r.yytext.slice(1);return 27;break}}),"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:false},STYLE_STMNT:{rules:[28],inclusive:false},CLASSDEFID:{rules:[23],inclusive:false},CLASSDEF:{rules:[21,22],inclusive:false},CLASS_STYLE:{rules:[26],inclusive:false},CLASS:{rules:[25],inclusive:false},LLABEL:{rules:[100,101,102,103,104],inclusive:false},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:false},BLOCK_ARROW:{rules:[77,82,85],inclusive:false},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:false},md_string:{rules:[10,11,79,80],inclusive:false},space:{rules:[],inclusive:false},string:{rules:[13,14,83,84],inclusive:false},acc_descr_multiline:{rules:[35,36],inclusive:false},acc_descr:{rules:[33],inclusive:false},acc_title:{rules:[31],inclusive:false},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:true}}};return t}();b.lexer=x;function m(){this.yy={}}(0,o.K2)(m,"Parser");m.prototype=b;b.Parser=m;return new m}();g.parser=g;var p=g;var y=new Map;var f=[];var b=new Map;var x="color";var m="fill";var k="bgFill";var w=",";var L=(0,o.D7)();var _=new Map;var v=(0,o.K2)((t=>o.Y2.sanitizeText(t,L)),"sanitizeText");var S=(0,o.K2)((function(t,e=""){let r=_.get(t);if(!r){r={id:t,styles:[],textStyles:[]};_.set(t,r)}if(e!==void 0&&e!==null){e.split(w).forEach((t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(RegExp(x).exec(t)){const t=e.replace(m,k);const a=t.replace(x,m);r.textStyles.push(a)}r.styles.push(e)}))}}),"addStyleClass");var E=(0,o.K2)((function(t,e=""){const r=y.get(t);if(e!==void 0&&e!==null){r.styles=e.split(w)}}),"addStyle2Node");var D=(0,o.K2)((function(t,e){t.split(",").forEach((function(t){let r=y.get(t);if(r===void 0){const e=t.trim();r={id:e,type:"na",children:[]};y.set(e,r)}if(!r.classes){r.classes=[]}r.classes.push(e)}))}),"setCssClass");var N=(0,o.K2)(((t,e)=>{const r=t.flat();const a=[];for(const s of r){if(s.label){s.label=v(s.label)}if(s.type==="classDef"){S(s.id,s.css);continue}if(s.type==="applyClass"){D(s.id,s?.styleClass??"");continue}if(s.type==="applyStyles"){if(s?.stylesStr){E(s.id,s?.stylesStr)}continue}if(s.type==="column-setting"){e.columns=s.columns??-1}else if(s.type==="edge"){const t=(b.get(s.id)??0)+1;b.set(s.id,t);s.id=t+"-"+s.id;f.push(s)}else{if(!s.label){if(s.type==="composite"){s.label=""}else{s.label=s.id}}const t=y.get(s.id);if(t===void 0){y.set(s.id,s)}else{if(s.type!=="na"){t.type=s.type}if(s.label!==s.id){t.label=s.label}}if(s.children){N(s.children,s)}if(s.type==="space"){const t=s.width??1;for(let e=0;e{o.Rm.debug("Clear called");(0,o.IU)();R={id:"root",type:"composite",children:[],columns:-1};y=new Map([["root",R]]);K=[];_=new Map;f=[];b=new Map}),"clear");function T(t){o.Rm.debug("typeStr2Type",t);switch(t){case"[]":return"square";case"()":o.Rm.debug("we have a round");return"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}(0,o.K2)(T,"typeStr2Type");function $(t){o.Rm.debug("typeStr2Type",t);switch(t){case"==":return"thick";default:return"normal"}}(0,o.K2)($,"edgeTypeStr2Type");function A(t){switch(t.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}(0,o.K2)(A,"edgeStrToEdgeData");var O=0;var I=(0,o.K2)((()=>{O++;return"id-"+Math.random().toString(36).substr(2,12)+"-"+O}),"generateId");var B=(0,o.K2)((t=>{R.children=t;N(t,R);K=R.children}),"setHierarchy");var z=(0,o.K2)((t=>{const e=y.get(t);if(!e){return-1}if(e.columns){return e.columns}if(!e.children){return-1}return e.children.length}),"getColumns");var M=(0,o.K2)((()=>[...y.values()]),"getBlocksFlat");var P=(0,o.K2)((()=>K||[]),"getBlocks");var Y=(0,o.K2)((()=>f),"getEdges");var j=(0,o.K2)((t=>y.get(t)),"getBlock");var F=(0,o.K2)((t=>{y.set(t.id,t)}),"setBlock");var W=(0,o.K2)((()=>console),"getLogger");var X=(0,o.K2)((function(){return _}),"getClasses");var H={getConfig:(0,o.K2)((()=>(0,o.zj)().block),"getConfig"),typeStr2Type:T,edgeTypeStr2Type:$,edgeStrToEdgeData:A,getLogger:W,getBlocksFlat:M,getBlocks:P,getEdges:Y,setHierarchy:B,getBlock:j,setBlock:F,getColumns:z,getClasses:X,clear:C,generateId:I};var U=H;var Z=(0,o.K2)(((t,e)=>{const r=c.A;const a=r(t,"r");const s=r(t,"g");const i=r(t,"b");return h.A(a,s,i,e)}),"fade");var q=(0,o.K2)((t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span,p {\n color: ${t.titleColor};\n }\n\n\n\n .label text,span,p {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n .flowchart-label text {\n text-anchor: middle;\n }\n // .flowchart-label .text-outer-tspan {\n // text-anchor: middle;\n // }\n // .flowchart-label .text-inner-tspan {\n // text-anchor: start;\n // }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n /* For html labels only */\n .labelBkg {\n background-color: ${Z(t.edgeLabelBackground,.5)};\n // background-color:\n }\n\n .node .cluster {\n // fill: ${Z(t.mainBkg,.5)};\n fill: ${Z(t.clusterBkg,.5)};\n stroke: ${Z(t.clusterBorder,.2)};\n box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span,p {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n`),"getStyles");var G=q;var J=(0,o.K2)(((t,e,r,a)=>{e.forEach((e=>{ot[e](t,r,a)}))}),"insertMarkers");var V=(0,o.K2)(((t,e,r)=>{o.Rm.trace("Making markers for ",r);t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z");t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")}),"extension");var Q=(0,o.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z");t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")}),"composition");var tt=(0,o.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z");t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")}),"aggregation");var et=(0,o.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z");t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")}),"dependency");var rt=(0,o.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6);t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)}),"lollipop");var at=(0,o.K2)(((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0");t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")}),"point");var st=(0,o.K2)(((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0");t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")}),"circle");var it=(0,o.K2)(((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0");t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")}),"cross");var nt=(0,o.K2)(((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}),"barb");var ot={extension:V,composition:Q,aggregation:tt,dependency:et,lollipop:rt,point:at,circle:st,cross:it,barb:nt};var lt=J;var ct=(0,o.D7)()?.block?.padding??8;function ht(t,e){if(t===0||!Number.isInteger(t)){throw new Error("Columns must be an integer !== 0.")}if(e<0||!Number.isInteger(e)){throw new Error("Position must be a non-negative integer."+e)}if(t<0){return{px:e,py:0}}if(t===1){return{px:0,py:e}}const r=e%t;const a=Math.floor(e/t);return{px:r,py:a}}(0,o.K2)(ht,"calculateBlockPosition");var dt=(0,o.K2)((t=>{let e=0;let r=0;for(const a of t.children){const{width:s,height:i,x:n,y:l}=a.size??{width:0,height:0,x:0,y:0};o.Rm.debug("getMaxChildSize abc95 child:",a.id,"width:",s,"height:",i,"x:",n,"y:",l,a.type);if(a.type==="space"){continue}if(s>e){e=s/(t.widthInColumns??1)}if(i>r){r=i}}return{width:e,height:r}}),"getMaxChildSize");function ut(t,e,r=0,a=0){o.Rm.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"sieblingWidth",r);if(!t?.size?.width){t.size={width:r,height:a,x:0,y:0}}let s=0;let i=0;if(t.children?.length>0){for(const r of t.children){ut(r,e)}const n=dt(t);s=n.width;i=n.height;o.Rm.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",s,i);for(const e of t.children){if(e.size){o.Rm.debug(`abc95 Setting size of children of ${t.id} id=${e.id} ${s} ${i} ${JSON.stringify(e.size)}`);e.size.width=s*(e.widthInColumns??1)+ct*((e.widthInColumns??1)-1);e.size.height=i;e.size.x=0;e.size.y=0;o.Rm.debug(`abc95 updating size of ${t.id} children child:${e.id} maxWidth:${s} maxHeight:${i}`)}}for(const r of t.children){ut(r,e,s,i)}const l=t.columns??-1;let c=0;for(const e of t.children){c+=e.widthInColumns??1}let h=t.children.length;if(l>0&&l0?Math.min(t.children.length,l):t.children.length;if(e>0){const r=(u-e*ct-ct)/e;o.Rm.debug("abc95 (growing to fit) width",t.id,u,t.size?.width,r);for(const e of t.children){if(e.size){e.size.width=r}}}}t.size={width:u,height:g,x:0,y:0}}o.Rm.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}(0,o.K2)(ut,"setBlockSizes");function gt(t,e){o.Rm.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);const r=t.columns??-1;o.Rm.debug("layoutBlocks columns abc95",t.id,"=>",r,t);if(t.children&&t.children.length>0){const a=t?.children[0]?.size?.width??0;const s=t.children.length*a+(t.children.length-1)*ct;o.Rm.debug("widthOfChildren 88",s,"posX");let i=0;o.Rm.debug("abc91 block?.size?.x",t.id,t?.size?.x);let n=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-ct;let l=0;for(const c of t.children){const a=t;if(!c.size){continue}const{width:s,height:h}=c.size;const{px:d,py:u}=ht(r,i);if(u!=l){l=u;n=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-ct;o.Rm.debug("New row in layout for block",t.id," and child ",c.id,l)}o.Rm.debug(`abc89 layout blocks (child) id: ${c.id} Pos: ${i} (px, py) ${d},${u} (${a?.size?.x},${a?.size?.y}) parent: ${a.id} width: ${s}${ct}`);if(a.size){const t=s/2;c.size.x=n+ct+t;o.Rm.debug(`abc91 layout blocks (calc) px, pyid:${c.id} startingPos=X${n} new startingPosX${c.size.x} ${t} padding=${ct} width=${s} halfWidth=${t} => x:${c.size.x} y:${c.size.y} ${c.widthInColumns} (width * (child?.w || 1)) / 2 ${s*(c?.widthInColumns??1)/2}`);n=c.size.x+t;c.size.y=a.size.y-a.size.height/2+u*(h+ct)+h/2+ct;o.Rm.debug(`abc88 layout blocks (calc) px, pyid:${c.id}startingPosX${n}${ct}${t}=>x:${c.size.x}y:${c.size.y}${c.widthInColumns}(width * (child?.w || 1)) / 2${s*(c?.widthInColumns??1)/2}`)}if(c.children){gt(c,e)}i+=c?.widthInColumns??1;o.Rm.debug("abc88 columnsPos",c,i)}}o.Rm.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}(0,o.K2)(gt,"layoutBlocks");function pt(t,{minX:e,minY:r,maxX:a,maxY:s}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&t.id!=="root"){const{x:i,y:n,width:o,height:l}=t.size;if(i-o/2a){a=i+o/2}if(n+l/2>s){s=n+l/2}}if(t.children){for(const i of t.children){({minX:e,minY:r,maxX:a,maxY:s}=pt(i,{minX:e,minY:r,maxX:a,maxY:s}))}}return{minX:e,minY:r,maxX:a,maxY:s}}(0,o.K2)(pt,"findBounds");function yt(t){const e=t.getBlock("root");if(!e){return}ut(e,t,0,0);gt(e,t);o.Rm.debug("getBlocks",JSON.stringify(e,null,2));const{minX:r,minY:a,maxX:s,maxY:i}=pt(e);const n=i-a;const l=s-r;return{x:r,y:a,width:l,height:n}}(0,o.K2)(yt,"layout");function ft(t,e){if(e){t.attr("style",e)}}(0,o.K2)(ft,"applyStyle");function bt(t){const e=(0,d.Ltv)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject"));const r=e.append("xhtml:div");const a=t.label;const s=t.isNode?"nodeLabel":"edgeLabel";const i=r.append("span");i.html(a);ft(i,t.labelStyle);i.attr("class",s);ft(r,t.labelStyle);r.style("display","inline-block");r.style("white-space","nowrap");r.attr("xmlns","http://www.w3.org/1999/xhtml");return e.node()}(0,o.K2)(bt,"addHtmlLabel");var xt=(0,o.K2)(((t,e,r,a)=>{let s=t||"";if(typeof s==="object"){s=s[0]}if((0,o._3)((0,o.D7)().flowchart.htmlLabels)){s=s.replace(/\\n|\n/g,"
    ");o.Rm.debug("vertexText"+s);const t={isNode:a,label:(0,i.hE)((0,n.Sm)(s)),labelStyle:e.replace("fill:","color:")};let r=bt(t);return r}else{const t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));let a=[];if(typeof s==="string"){a=s.split(/\\n|\n|/gi)}else if(Array.isArray(s)){a=s}else{a=[]}for(const e of a){const a=document.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve");a.setAttribute("dy","1em");a.setAttribute("x","0");if(r){a.setAttribute("class","title-row")}else{a.setAttribute("class","row")}a.textContent=e.trim();t.appendChild(a)}return t}}),"createLabel");var mt=xt;var kt=(0,o.K2)(((t,e,r,a,s)=>{if(e.arrowTypeStart){Lt(t,"start",e.arrowTypeStart,r,a,s)}if(e.arrowTypeEnd){Lt(t,"end",e.arrowTypeEnd,r,a,s)}}),"addEdgeMarkers");var wt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"};var Lt=(0,o.K2)(((t,e,r,a,s,i)=>{const n=wt[r];if(!n){o.Rm.warn(`Unknown arrow type: ${r}`);return}const l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${a}#${s}_${i}-${n}${l})`)}),"addEdgeMarker");var _t={};var vt={};var St=(0,o.K2)(((t,e)=>{const r=(0,o.D7)();const a=(0,o._3)(r.flowchart.htmlLabels);const s=e.labelType==="markdown"?(0,i.GZ)(t,e.label,{style:e.labelStyle,useHtmlLabels:a,addSvgBackground:true},r):mt(e.label,e.labelStyle);const n=t.insert("g").attr("class","edgeLabel");const l=n.insert("g").attr("class","label");l.node().appendChild(s);let c=s.getBBox();if(a){const t=s.children[0];const e=(0,d.Ltv)(s);c=t.getBoundingClientRect();e.attr("width",c.width);e.attr("height",c.height)}l.attr("transform","translate("+-c.width/2+", "+-c.height/2+")");_t[e.id]=n;e.width=c.width;e.height=c.height;let h;if(e.startLabelLeft){const r=mt(e.startLabelLeft,e.labelStyle);const a=t.insert("g").attr("class","edgeTerminals");const s=a.insert("g").attr("class","inner");h=s.node().appendChild(r);const i=r.getBBox();s.attr("transform","translate("+-i.width/2+", "+-i.height/2+")");if(!vt[e.id]){vt[e.id]={}}vt[e.id].startLeft=a;Et(h,e.startLabelLeft)}if(e.startLabelRight){const r=mt(e.startLabelRight,e.labelStyle);const a=t.insert("g").attr("class","edgeTerminals");const s=a.insert("g").attr("class","inner");h=a.node().appendChild(r);s.node().appendChild(r);const i=r.getBBox();s.attr("transform","translate("+-i.width/2+", "+-i.height/2+")");if(!vt[e.id]){vt[e.id]={}}vt[e.id].startRight=a;Et(h,e.startLabelRight)}if(e.endLabelLeft){const r=mt(e.endLabelLeft,e.labelStyle);const a=t.insert("g").attr("class","edgeTerminals");const s=a.insert("g").attr("class","inner");h=s.node().appendChild(r);const i=r.getBBox();s.attr("transform","translate("+-i.width/2+", "+-i.height/2+")");a.node().appendChild(r);if(!vt[e.id]){vt[e.id]={}}vt[e.id].endLeft=a;Et(h,e.endLabelLeft)}if(e.endLabelRight){const r=mt(e.endLabelRight,e.labelStyle);const a=t.insert("g").attr("class","edgeTerminals");const s=a.insert("g").attr("class","inner");h=s.node().appendChild(r);const i=r.getBBox();s.attr("transform","translate("+-i.width/2+", "+-i.height/2+")");a.node().appendChild(r);if(!vt[e.id]){vt[e.id]={}}vt[e.id].endRight=a;Et(h,e.endLabelRight)}return s}),"insertEdgeLabel");function Et(t,e){if((0,o.D7)().flowchart.htmlLabels&&t){t.style.width=e.length*9+"px";t.style.height="12px"}}(0,o.K2)(Et,"setTerminalWidth");var Dt=(0,o.K2)(((t,e)=>{o.Rm.debug("Moving label abc88 ",t.id,t.label,_t[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath;const a=(0,o.D7)();const{subGraphTitleTotalMargin:i}=(0,s.O)(a);if(t.label){const a=_t[t.id];let s=t.x;let l=t.y;if(r){const a=n._K.calcLabelPosition(r);o.Rm.debug("Moving label "+t.label+" from (",s,",",l,") to (",a.x,",",a.y,") abc88");if(e.updatedPath){s=a.x;l=a.y}}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){const e=vt[t.id].startLeft;let a=t.x;let s=t.y;if(r){const e=n._K.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);a=e.x;s=e.y}e.attr("transform",`translate(${a}, ${s})`)}if(t.startLabelRight){const e=vt[t.id].startRight;let a=t.x;let s=t.y;if(r){const e=n._K.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);a=e.x;s=e.y}e.attr("transform",`translate(${a}, ${s})`)}if(t.endLabelLeft){const e=vt[t.id].endLeft;let a=t.x;let s=t.y;if(r){const e=n._K.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);a=e.x;s=e.y}e.attr("transform",`translate(${a}, ${s})`)}if(t.endLabelRight){const e=vt[t.id].endRight;let a=t.x;let s=t.y;if(r){const e=n._K.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);a=e.x;s=e.y}e.attr("transform",`translate(${a}, ${s})`)}}),"positionEdgeLabel");var Nt=(0,o.K2)(((t,e)=>{const r=t.x;const a=t.y;const s=Math.abs(e.x-r);const i=Math.abs(e.y-a);const n=t.width/2;const o=t.height/2;if(s>=n||i>=o){return true}return false}),"outsideNode");var Kt=(0,o.K2)(((t,e,r)=>{o.Rm.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(r)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const a=t.x;const s=t.y;const i=Math.abs(a-r.x);const n=t.width/2;let l=r.xMath.abs(a-e.x)*c){let t=r.y{o.Rm.debug("abc88 cutPathAtIntersect",t,e);let r=[];let a=t[0];let s=false;t.forEach((t=>{if(!Nt(e,t)&&!s){const i=Kt(e,a,t);let n=false;r.forEach((t=>{n=n||t.x===i.x&&t.y===i.y}));if(!r.some((t=>t.x===i.x&&t.y===i.y))){r.push(i)}s=true}else{a=t;if(!s){r.push(t)}}}));return r}),"cutPathAtIntersect");var Ct=(0,o.K2)((function(t,e,r,s,i,n,l){let c=r.points;o.Rm.debug("abc88 InsertEdge: edge=",r,"e=",e);let h=false;const u=n.node(e.v);var g=n.node(e.w);if(g?.intersect&&u?.intersect){c=c.slice(1,r.points.length-1);c.unshift(u.intersect(c[0]));c.push(g.intersect(c[c.length-1]))}if(r.toCluster){o.Rm.debug("to cluster abc88",s[r.toCluster]);c=Rt(r.points,s[r.toCluster].node);h=true}if(r.fromCluster){o.Rm.debug("from cluster abc88",s[r.fromCluster]);c=Rt(c.reverse(),s[r.fromCluster].node).reverse();h=true}const p=c.filter((t=>!Number.isNaN(t.y)));let y=d.qrM;if(r.curve&&(i==="graph"||i==="flowchart")){y=r.curve}const{x:f,y:b}=(0,a.R)(r);const x=(0,d.n8j)().x(f).y(b).curve(y);let m;switch(r.thickness){case"normal":m="edge-thickness-normal";break;case"thick":m="edge-thickness-thick";break;case"invisible":m="edge-thickness-thick";break;default:m=""}switch(r.pattern){case"solid":m+=" edge-pattern-solid";break;case"dotted":m+=" edge-pattern-dotted";break;case"dashed":m+=" edge-pattern-dashed";break}const k=t.append("path").attr("d",x(p)).attr("id",r.id).attr("class"," "+m+(r.classes?" "+r.classes:"")).attr("style",r.style);let w="";if((0,o.D7)().flowchart.arrowMarkerAbsolute||(0,o.D7)().state.arrowMarkerAbsolute){w=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search;w=w.replace(/\(/g,"\\(");w=w.replace(/\)/g,"\\)")}kt(k,r,w,l,i);let L={};if(h){L.updatedPath=c}L.originalPath=r.points;return L}),"insertEdge");var Tt=(0,o.K2)((t=>{const e=new Set;for(const r of t){switch(r){case"x":e.add("right");e.add("left");break;case"y":e.add("up");e.add("down");break;default:e.add(r);break}}return e}),"expandAndDeduplicateDirections");var $t=(0,o.K2)(((t,e,r)=>{const a=Tt(t);const s=2;const i=e.height+2*r.padding;const n=i/s;const o=e.width+2*n+r.padding;const l=r.padding/2;if(a.has("right")&&a.has("left")&&a.has("up")&&a.has("down")){return[{x:0,y:0},{x:n,y:0},{x:o/2,y:2*l},{x:o-n,y:0},{x:o,y:0},{x:o,y:-i/3},{x:o+2*l,y:-i/2},{x:o,y:-2*i/3},{x:o,y:-i},{x:o-n,y:-i},{x:o/2,y:-i-2*l},{x:n,y:-i},{x:0,y:-i},{x:0,y:-2*i/3},{x:-2*l,y:-i/2},{x:0,y:-i/3}]}if(a.has("right")&&a.has("left")&&a.has("up")){return[{x:n,y:0},{x:o-n,y:0},{x:o,y:-i/2},{x:o-n,y:-i},{x:n,y:-i},{x:0,y:-i/2}]}if(a.has("right")&&a.has("left")&&a.has("down")){return[{x:0,y:0},{x:n,y:-i},{x:o-n,y:-i},{x:o,y:0}]}if(a.has("right")&&a.has("up")&&a.has("down")){return[{x:0,y:0},{x:o,y:-n},{x:o,y:-i+n},{x:0,y:-i}]}if(a.has("left")&&a.has("up")&&a.has("down")){return[{x:o,y:0},{x:0,y:-n},{x:0,y:-i+n},{x:o,y:-i}]}if(a.has("right")&&a.has("left")){return[{x:n,y:0},{x:n,y:-l},{x:o-n,y:-l},{x:o-n,y:0},{x:o,y:-i/2},{x:o-n,y:-i},{x:o-n,y:-i+l},{x:n,y:-i+l},{x:n,y:-i},{x:0,y:-i/2}]}if(a.has("up")&&a.has("down")){return[{x:o/2,y:0},{x:0,y:-l},{x:n,y:-l},{x:n,y:-i+l},{x:0,y:-i+l},{x:o/2,y:-i},{x:o,y:-i+l},{x:o-n,y:-i+l},{x:o-n,y:-l},{x:o,y:-l}]}if(a.has("right")&&a.has("up")){return[{x:0,y:0},{x:o,y:-n},{x:0,y:-i}]}if(a.has("right")&&a.has("down")){return[{x:0,y:0},{x:o,y:0},{x:0,y:-i}]}if(a.has("left")&&a.has("up")){return[{x:o,y:0},{x:0,y:-n},{x:o,y:-i}]}if(a.has("left")&&a.has("down")){return[{x:o,y:0},{x:0,y:0},{x:o,y:-i}]}if(a.has("right")){return[{x:n,y:-l},{x:n,y:-l},{x:o-n,y:-l},{x:o-n,y:0},{x:o,y:-i/2},{x:o-n,y:-i},{x:o-n,y:-i+l},{x:n,y:-i+l},{x:n,y:-i+l}]}if(a.has("left")){return[{x:n,y:0},{x:n,y:-l},{x:o-n,y:-l},{x:o-n,y:-i+l},{x:n,y:-i+l},{x:n,y:-i},{x:0,y:-i/2}]}if(a.has("up")){return[{x:n,y:-l},{x:n,y:-i+l},{x:0,y:-i+l},{x:o/2,y:-i},{x:o,y:-i+l},{x:o-n,y:-i+l},{x:o-n,y:-l}]}if(a.has("down")){return[{x:o/2,y:0},{x:0,y:-l},{x:n,y:-l},{x:n,y:-i+l},{x:o-n,y:-i+l},{x:o-n,y:-l},{x:o,y:-l}]}return[{x:0,y:0}]}),"getArrowPoints");function At(t,e){return t.intersect(e)}(0,o.K2)(At,"intersectNode");var Ot=At;function It(t,e,r,a){var s=t.x;var i=t.y;var n=s-a.x;var o=i-a.y;var l=Math.sqrt(e*e*o*o+r*r*n*n);var c=Math.abs(e*r*n/l);if(a.x0}(0,o.K2)(Yt,"sameSign");var jt=Pt;var Ft=Wt;function Wt(t,e,r){var a=t.x;var s=t.y;var i=[];var n=Number.POSITIVE_INFINITY;var o=Number.POSITIVE_INFINITY;if(typeof e.forEach==="function"){e.forEach((function(t){n=Math.min(n,t.x);o=Math.min(o,t.y)}))}else{n=Math.min(n,e.x);o=Math.min(o,e.y)}var l=a-t.width/2-n;var c=s-t.height/2-o;for(var h=0;h1){i.sort((function(t,e){var a=t.x-r.x;var s=t.y-r.y;var i=Math.sqrt(a*a+s*s);var n=e.x-r.x;var o=e.y-r.y;var l=Math.sqrt(n*n+o*o);return i{var r=t.x;var a=t.y;var s=e.x-r;var i=e.y-a;var n=t.width/2;var o=t.height/2;var l,c;if(Math.abs(i)*n>Math.abs(s)*o){if(i<0){o=-o}l=i===0?0:o*s/i;c=o}else{if(s<0){n=-n}l=n;c=s===0?0:n*i/s}return{x:r+l,y:a+c}}),"intersectRect");var Ht=Xt;var Ut={node:Ot,circle:Mt,ellipse:Bt,polygon:Ft,rect:Ht};var Zt=(0,o.K2)((async(t,e,r,a)=>{const s=(0,o.D7)();let l;const c=e.useHtmlLabels||(0,o._3)(s.flowchart.htmlLabels);if(!r){l="node default"}else{l=r}const h=t.insert("g").attr("class",l).attr("id",e.domId||e.id);const u=h.insert("g").attr("class","label").attr("style",e.labelStyle);let g;if(e.labelText===void 0){g=""}else{g=typeof e.labelText==="string"?e.labelText:e.labelText[0]}const p=u.node();let y;if(e.labelType==="markdown"){y=(0,i.GZ)(u,(0,o.jZ)((0,n.Sm)(g),s),{useHtmlLabels:c,width:e.width||s.flowchart.wrappingWidth,classes:"markdown-node-label"},s)}else{y=p.appendChild(mt((0,o.jZ)((0,n.Sm)(g),s),e.labelStyle,false,a))}let f=y.getBBox();const b=e.padding/2;if((0,o._3)(s.flowchart.htmlLabels)){const t=y.children[0];const e=(0,d.Ltv)(y);const r=t.getElementsByTagName("img");if(r){const t=g.replace(/]*>/g,"").trim()==="";await Promise.all([...r].map((e=>new Promise((r=>{function a(){e.style.display="flex";e.style.flexDirection="column";if(t){const t=s.fontSize?s.fontSize:window.getComputedStyle(document.body).fontSize;const r=5;const a=parseInt(t,10)*r+"px";e.style.minWidth=a;e.style.maxWidth=a}else{e.style.width="100%"}r(e)}(0,o.K2)(a,"setupImage");setTimeout((()=>{if(e.complete){a()}}));e.addEventListener("error",a);e.addEventListener("load",a)})))))}f=t.getBoundingClientRect();e.attr("width",f.width);e.attr("height",f.height)}if(c){u.attr("transform","translate("+-f.width/2+", "+-f.height/2+")")}else{u.attr("transform","translate(0, "+-f.height/2+")")}if(e.centerLabel){u.attr("transform","translate("+-f.width/2+", "+-f.height/2+")")}u.insert("rect",":first-child");return{shapeSvg:h,bbox:f,halfPadding:b,label:u}}),"labelHelper");var qt=(0,o.K2)(((t,e)=>{const r=e.node().getBBox();t.width=r.width;t.height=r.height}),"updateNodeBounds");function Gt(t,e,r,a){return t.insert("polygon",":first-child").attr("points",a.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}(0,o.K2)(Gt,"insertPolygonShape");var Jt=(0,o.K2)((async(t,e)=>{const r=e.useHtmlLabels||(0,o.D7)().flowchart.htmlLabels;if(!r){e.centerLabel=true}const{shapeSvg:a,bbox:s,halfPadding:i}=await Zt(t,e,"node "+e.classes,true);o.Rm.info("Classes = ",e.classes);const n=a.insert("rect",":first-child");n.attr("rx",e.rx).attr("ry",e.ry).attr("x",-s.width/2-i).attr("y",-s.height/2-i).attr("width",s.width+e.padding).attr("height",s.height+e.padding);qt(e,n);e.intersect=function(t){return Ut.rect(e,t)};return a}),"note");var Vt=Jt;var Qt=(0,o.K2)((t=>{if(t){return" "+t}return""}),"formatClass");var te=(0,o.K2)(((t,e)=>`${e?e:"node default"}${Qt(t.classes)} ${Qt(t.class)}`),"getClassesFromNode");var ee=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e,void 0),true);const s=a.width+e.padding;const i=a.height+e.padding;const n=s+i;const l=[{x:n/2,y:0},{x:n,y:-n/2},{x:n/2,y:-n},{x:0,y:-n/2}];o.Rm.info("Question main (Circle)");const c=Gt(r,n,n,l);c.attr("style",e.style);qt(e,c);e.intersect=function(t){o.Rm.warn("Intersect called");return Ut.polygon(e,l,t)};return r}),"question");var re=(0,o.K2)(((t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);const a=28;const s=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}];const i=r.insert("polygon",":first-child").attr("points",s.map((function(t){return t.x+","+t.y})).join(" "));i.attr("class","state-start").attr("r",7).attr("width",28).attr("height",28);e.width=28;e.height=28;e.intersect=function(t){return Ut.circle(e,14,t)};return r}),"choice");var ae=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e,void 0),true);const s=4;const i=a.height+e.padding;const n=i/s;const o=a.width+2*n+e.padding;const l=[{x:n,y:0},{x:o-n,y:0},{x:o,y:-i/2},{x:o-n,y:-i},{x:n,y:-i},{x:0,y:-i/2}];const c=Gt(r,o,i,l);c.attr("style",e.style);qt(e,c);e.intersect=function(t){return Ut.polygon(e,l,t)};return r}),"hexagon");var se=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,void 0,true);const s=2;const i=a.height+2*e.padding;const n=i/s;const o=a.width+2*n+e.padding;const l=$t(e.directions,a,e);const c=Gt(r,o,i,l);c.attr("style",e.style);qt(e,c);e.intersect=function(t){return Ut.polygon(e,l,t)};return r}),"block_arrow");var ie=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e,void 0),true);const s=a.width+e.padding;const i=a.height+e.padding;const n=[{x:-i/2,y:0},{x:s,y:0},{x:s,y:-i},{x:-i/2,y:-i},{x:0,y:-i/2}];const o=Gt(r,s,i,n);o.attr("style",e.style);e.width=s+i;e.height=i;e.intersect=function(t){return Ut.polygon(e,n,t)};return r}),"rect_left_inv_arrow");var ne=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e),true);const s=a.width+e.padding;const i=a.height+e.padding;const n=[{x:-2*i/6,y:0},{x:s-i/6,y:0},{x:s+2*i/6,y:-i},{x:i/6,y:-i}];const o=Gt(r,s,i,n);o.attr("style",e.style);qt(e,o);e.intersect=function(t){return Ut.polygon(e,n,t)};return r}),"lean_right");var oe=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e,void 0),true);const s=a.width+e.padding;const i=a.height+e.padding;const n=[{x:2*i/6,y:0},{x:s+i/6,y:0},{x:s-2*i/6,y:-i},{x:-i/6,y:-i}];const o=Gt(r,s,i,n);o.attr("style",e.style);qt(e,o);e.intersect=function(t){return Ut.polygon(e,n,t)};return r}),"lean_left");var le=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e,void 0),true);const s=a.width+e.padding;const i=a.height+e.padding;const n=[{x:-2*i/6,y:0},{x:s+2*i/6,y:0},{x:s-i/6,y:-i},{x:i/6,y:-i}];const o=Gt(r,s,i,n);o.attr("style",e.style);qt(e,o);e.intersect=function(t){return Ut.polygon(e,n,t)};return r}),"trapezoid");var ce=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e,void 0),true);const s=a.width+e.padding;const i=a.height+e.padding;const n=[{x:i/6,y:0},{x:s-i/6,y:0},{x:s+2*i/6,y:-i},{x:-2*i/6,y:-i}];const o=Gt(r,s,i,n);o.attr("style",e.style);qt(e,o);e.intersect=function(t){return Ut.polygon(e,n,t)};return r}),"inv_trapezoid");var he=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e,void 0),true);const s=a.width+e.padding;const i=a.height+e.padding;const n=[{x:0,y:0},{x:s+i/2,y:0},{x:s,y:-i/2},{x:s+i/2,y:-i},{x:0,y:-i}];const o=Gt(r,s,i,n);o.attr("style",e.style);qt(e,o);e.intersect=function(t){return Ut.polygon(e,n,t)};return r}),"rect_right_inv_arrow");var de=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e,void 0),true);const s=a.width+e.padding;const i=s/2;const n=i/(2.5+s/50);const o=a.height+n+e.padding;const l="M 0,"+n+" a "+i+","+n+" 0,0,0 "+s+" 0 a "+i+","+n+" 0,0,0 "+-s+" 0 l 0,"+o+" a "+i+","+n+" 0,0,0 "+s+" 0 l 0,"+-o;const c=r.attr("label-offset-y",n).insert("path",":first-child").attr("style",e.style).attr("d",l).attr("transform","translate("+-s/2+","+-(o/2+n)+")");qt(e,c);e.intersect=function(t){const r=Ut.rect(e,t);const a=r.x-e.x;if(i!=0&&(Math.abs(a)e.height/2-n)){let s=n*n*(1-a*a/(i*i));if(s!=0){s=Math.sqrt(s)}s=n-s;if(t.y-e.y>0){s=-s}r.y+=s}return r};return r}),"cylinder");var ue=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await Zt(t,e,"node "+e.classes+" "+e.class,true);const i=r.insert("rect",":first-child");const n=e.positioned?e.width:a.width+e.padding;const l=e.positioned?e.height:a.height+e.padding;const c=e.positioned?-n/2:-a.width/2-s;const h=e.positioned?-l/2:-a.height/2-s;i.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",c).attr("y",h).attr("width",n).attr("height",l);if(e.props){const t=new Set(Object.keys(e.props));if(e.props.borders){ye(i,e.props.borders,n,l);t.delete("borders")}t.forEach((t=>{o.Rm.warn(`Unknown node property ${t}`)}))}qt(e,i);e.intersect=function(t){return Ut.rect(e,t)};return r}),"rect");var ge=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await Zt(t,e,"node "+e.classes,true);const i=r.insert("rect",":first-child");const n=e.positioned?e.width:a.width+e.padding;const l=e.positioned?e.height:a.height+e.padding;const c=e.positioned?-n/2:-a.width/2-s;const h=e.positioned?-l/2:-a.height/2-s;i.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",c).attr("y",h).attr("width",n).attr("height",l);if(e.props){const t=new Set(Object.keys(e.props));if(e.props.borders){ye(i,e.props.borders,n,l);t.delete("borders")}t.forEach((t=>{o.Rm.warn(`Unknown node property ${t}`)}))}qt(e,i);e.intersect=function(t){return Ut.rect(e,t)};return r}),"composite");var pe=(0,o.K2)((async(t,e)=>{const{shapeSvg:r}=await Zt(t,e,"label",true);o.Rm.trace("Classes = ",e.class);const a=r.insert("rect",":first-child");const s=0;const i=0;a.attr("width",s).attr("height",i);r.attr("class","label edgeLabel");if(e.props){const t=new Set(Object.keys(e.props));if(e.props.borders){ye(a,e.props.borders,s,i);t.delete("borders")}t.forEach((t=>{o.Rm.warn(`Unknown node property ${t}`)}))}qt(e,a);e.intersect=function(t){return Ut.rect(e,t)};return r}),"labelRect");function ye(t,e,r,a){const s=[];const i=(0,o.K2)((t=>{s.push(t,0)}),"addBorder");const n=(0,o.K2)((t=>{s.push(0,t)}),"skipBorder");if(e.includes("t")){o.Rm.debug("add top border");i(r)}else{n(r)}if(e.includes("r")){o.Rm.debug("add right border");i(a)}else{n(a)}if(e.includes("b")){o.Rm.debug("add bottom border");i(r)}else{n(r)}if(e.includes("l")){o.Rm.debug("add left border");i(a)}else{n(a)}t.attr("stroke-dasharray",s.join(" "))}(0,o.K2)(ye,"applyNodePropertyBorders");var fe=(0,o.K2)(((t,e)=>{let r;if(!e.classes){r="node default"}else{r="node "+e.classes}const a=t.insert("g").attr("class",r).attr("id",e.domId||e.id);const s=a.insert("rect",":first-child");const i=a.insert("line");const n=a.insert("g").attr("class","label");const l=e.labelText.flat?e.labelText.flat():e.labelText;let c="";if(typeof l==="object"){c=l[0]}else{c=l}o.Rm.info("Label text abc79",c,l,typeof l==="object");const h=n.node().appendChild(mt(c,e.labelStyle,true,true));let u={width:0,height:0};if((0,o._3)((0,o.D7)().flowchart.htmlLabels)){const t=h.children[0];const e=(0,d.Ltv)(h);u=t.getBoundingClientRect();e.attr("width",u.width);e.attr("height",u.height)}o.Rm.info("Text 2",l);const g=l.slice(1,l.length);let p=h.getBBox();const y=n.node().appendChild(mt(g.join?g.join("
    "):g,e.labelStyle,true,true));if((0,o._3)((0,o.D7)().flowchart.htmlLabels)){const t=y.children[0];const e=(0,d.Ltv)(y);u=t.getBoundingClientRect();e.attr("width",u.width);e.attr("height",u.height)}const f=e.padding/2;(0,d.Ltv)(y).attr("transform","translate( "+(u.width>p.width?0:(p.width-u.width)/2)+", "+(p.height+f+5)+")");(0,d.Ltv)(h).attr("transform","translate( "+(u.width{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e,void 0),true);const s=a.height+e.padding;const i=a.width+s/4+e.padding;const n=r.insert("rect",":first-child").attr("style",e.style).attr("rx",s/2).attr("ry",s/2).attr("x",-i/2).attr("y",-s/2).attr("width",i).attr("height",s);qt(e,n);e.intersect=function(t){return Ut.rect(e,t)};return r}),"stadium");var xe=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await Zt(t,e,te(e,void 0),true);const i=r.insert("circle",":first-child");i.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+s).attr("width",a.width+e.padding).attr("height",a.height+e.padding);o.Rm.info("Circle main");qt(e,i);e.intersect=function(t){o.Rm.info("Circle intersect",e,a.width/2+s,t);return Ut.circle(e,a.width/2+s,t)};return r}),"circle");var me=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a,halfPadding:s}=await Zt(t,e,te(e,void 0),true);const i=5;const n=r.insert("g",":first-child");const l=n.insert("circle");const c=n.insert("circle");n.attr("class",e.class);l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+s+i).attr("width",a.width+e.padding+i*2).attr("height",a.height+e.padding+i*2);c.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",a.width/2+s).attr("width",a.width+e.padding).attr("height",a.height+e.padding);o.Rm.info("DoubleCircle main");qt(e,l);e.intersect=function(t){o.Rm.info("DoubleCircle intersect",e,a.width/2+s+i,t);return Ut.circle(e,a.width/2+s+i,t)};return r}),"doublecircle");var ke=(0,o.K2)((async(t,e)=>{const{shapeSvg:r,bbox:a}=await Zt(t,e,te(e,void 0),true);const s=a.width+e.padding;const i=a.height+e.padding;const n=[{x:0,y:0},{x:s,y:0},{x:s,y:-i},{x:0,y:-i},{x:0,y:0},{x:-8,y:0},{x:s+8,y:0},{x:s+8,y:-i},{x:-8,y:-i},{x:-8,y:0}];const o=Gt(r,s,i,n);o.attr("style",e.style);qt(e,o);e.intersect=function(t){return Ut.polygon(e,n,t)};return r}),"subroutine");var we=(0,o.K2)(((t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);const a=r.insert("circle",":first-child");a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);qt(e,a);e.intersect=function(t){return Ut.circle(e,7,t)};return r}),"start");var Le=(0,o.K2)(((t,e,r)=>{const a=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let s=70;let i=10;if(r==="LR"){s=10;i=70}const n=a.append("rect").attr("x",-1*s/2).attr("y",-1*i/2).attr("width",s).attr("height",i).attr("class","fork-join");qt(e,n);e.height=e.height+e.padding/2;e.width=e.width+e.padding/2;e.intersect=function(t){return Ut.rect(e,t)};return a}),"forkJoin");var _e=(0,o.K2)(((t,e)=>{const r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);const a=r.insert("circle",":first-child");const s=r.insert("circle",":first-child");s.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);a.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10);qt(e,s);e.intersect=function(t){return Ut.circle(e,7,t)};return r}),"end");var ve=(0,o.K2)(((t,e)=>{const r=e.padding/2;const a=4;const s=8;let i;if(!e.classes){i="node default"}else{i="node "+e.classes}const n=t.insert("g").attr("class",i).attr("id",e.domId||e.id);const l=n.insert("rect",":first-child");const c=n.insert("line");const h=n.insert("line");let u=0;let g=a;const p=n.insert("g").attr("class","label");let y=0;const f=e.classData.annotations?.[0];const b=e.classData.annotations[0]?"«"+e.classData.annotations[0]+"»":"";const x=p.node().appendChild(mt(b,e.labelStyle,true,true));let m=x.getBBox();if((0,o._3)((0,o.D7)().flowchart.htmlLabels)){const t=x.children[0];const e=(0,d.Ltv)(x);m=t.getBoundingClientRect();e.attr("width",m.width);e.attr("height",m.height)}if(e.classData.annotations[0]){g+=m.height+a;u+=m.width}let k=e.classData.label;if(e.classData.type!==void 0&&e.classData.type!==""){if((0,o.D7)().flowchart.htmlLabels){k+="<"+e.classData.type+">"}else{k+="<"+e.classData.type+">"}}const w=p.node().appendChild(mt(k,e.labelStyle,true,true));(0,d.Ltv)(w).attr("class","classTitle");let L=w.getBBox();if((0,o._3)((0,o.D7)().flowchart.htmlLabels)){const t=w.children[0];const e=(0,d.Ltv)(w);L=t.getBoundingClientRect();e.attr("width",L.width);e.attr("height",L.height)}g+=L.height+a;if(L.width>u){u=L.width}const _=[];e.classData.members.forEach((t=>{const r=t.getDisplayDetails();let s=r.displayText;if((0,o.D7)().flowchart.htmlLabels){s=s.replace(//g,">")}const i=p.node().appendChild(mt(s,r.cssStyle?r.cssStyle:e.labelStyle,true,true));let n=i.getBBox();if((0,o._3)((0,o.D7)().flowchart.htmlLabels)){const t=i.children[0];const e=(0,d.Ltv)(i);n=t.getBoundingClientRect();e.attr("width",n.width);e.attr("height",n.height)}if(n.width>u){u=n.width}g+=n.height+a;_.push(i)}));g+=s;const v=[];e.classData.methods.forEach((t=>{const r=t.getDisplayDetails();let s=r.displayText;if((0,o.D7)().flowchart.htmlLabels){s=s.replace(//g,">")}const i=p.node().appendChild(mt(s,r.cssStyle?r.cssStyle:e.labelStyle,true,true));let n=i.getBBox();if((0,o._3)((0,o.D7)().flowchart.htmlLabels)){const t=i.children[0];const e=(0,d.Ltv)(i);n=t.getBoundingClientRect();e.attr("width",n.width);e.attr("height",n.height)}if(n.width>u){u=n.width}g+=n.height+a;v.push(i)}));g+=s;if(f){let t=(u-m.width)/2;(0,d.Ltv)(x).attr("transform","translate( "+(-1*u/2+t)+", "+-1*g/2+")");y=m.height+a}let S=(u-L.width)/2;(0,d.Ltv)(w).attr("transform","translate( "+(-1*u/2+S)+", "+(-1*g/2+y)+")");y+=L.height+a;c.attr("class","divider").attr("x1",-u/2-r).attr("x2",u/2+r).attr("y1",-g/2-r+s+y).attr("y2",-g/2-r+s+y);y+=s;_.forEach((t=>{(0,d.Ltv)(t).attr("transform","translate( "+-u/2+", "+(-1*g/2+y+s/2)+")");const e=t?.getBBox();y+=(e?.height??0)+a}));y+=s;h.attr("class","divider").attr("x1",-u/2-r).attr("x2",u/2+r).attr("y1",-g/2-r+s+y).attr("y2",-g/2-r+s+y);y+=s;v.forEach((t=>{(0,d.Ltv)(t).attr("transform","translate( "+-u/2+", "+(-1*g/2+y)+")");const e=t?.getBBox();y+=(e?.height??0)+a}));l.attr("style",e.style).attr("class","outer title-state").attr("x",-u/2-r).attr("y",-(g/2)-r).attr("width",u+e.padding).attr("height",g+e.padding);qt(e,l);e.intersect=function(t){return Ut.rect(e,t)};return n}),"class_box");var Se={rhombus:ee,composite:ge,question:ee,rect:ue,labelRect:pe,rectWithTitle:fe,choice:re,circle:xe,doublecircle:me,stadium:be,hexagon:ae,block_arrow:se,rect_left_inv_arrow:ie,lean_right:ne,lean_left:oe,trapezoid:le,inv_trapezoid:ce,rect_right_inv_arrow:he,cylinder:de,start:we,end:_e,note:Vt,subroutine:ke,fork:Le,join:Le,class_box:ve};var Ee={};var De=(0,o.K2)((async(t,e,r)=>{let a;let s;if(e.link){let i;if((0,o.D7)().securityLevel==="sandbox"){i="_top"}else if(e.linkTarget){i=e.linkTarget||"_blank"}a=t.insert("svg:a").attr("xlink:href",e.link).attr("target",i);s=await Se[e.shape](a,e,r)}else{s=await Se[e.shape](t,e,r);a=s}if(e.tooltip){s.attr("title",e.tooltip)}if(e.class){s.attr("class","node default "+e.class)}Ee[e.id]=a;if(e.haveCallback){Ee[e.id].attr("class",Ee[e.id].attr("class")+" clickable")}return a}),"insertNode");var Ne=(0,o.K2)((t=>{const e=Ee[t.id];o.Rm.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const r=8;const a=t.diff||0;if(t.clusterNode){e.attr("transform","translate("+(t.x+a-t.width/2)+", "+(t.y-t.height/2-r)+")")}else{e.attr("transform","translate("+t.x+", "+t.y+")")}return a}),"positionNode");function Ke(t,e,r=false){const a=t;let s="default";if((a?.classes?.length||0)>0){s=(a?.classes??[]).join(" ")}s=s+" flowchart-label";let i=0;let l="";let c;switch(a.type){case"round":i=5;l="rect";break;case"composite":i=0;l="composite";c=0;break;case"square":l="rect";break;case"diamond":l="question";break;case"hexagon":l="hexagon";break;case"block_arrow":l="block_arrow";break;case"odd":l="rect_left_inv_arrow";break;case"lean_right":l="lean_right";break;case"lean_left":l="lean_left";break;case"trapezoid":l="trapezoid";break;case"inv_trapezoid":l="inv_trapezoid";break;case"rect_left_inv_arrow":l="rect_left_inv_arrow";break;case"circle":l="circle";break;case"ellipse":l="ellipse";break;case"stadium":l="stadium";break;case"subroutine":l="subroutine";break;case"cylinder":l="cylinder";break;case"group":l="rect";break;case"doublecircle":l="doublecircle";break;default:l="rect"}const h=(0,n.sM)(a?.styles??[]);const d=a.label;const u=a.size??{width:0,height:0,x:0,y:0};const g={labelStyle:h.labelStyle,shape:l,labelText:d,rx:i,ry:i,class:s,style:h.style,id:a.id,directions:a.directions,width:u.width,height:u.height,x:u.x,y:u.y,positioned:r,intersect:void 0,type:a.type,padding:c??(0,o.zj)()?.block?.padding??0};return g}(0,o.K2)(Ke,"getNodeFromBlock");async function Re(t,e,r){const a=Ke(e,r,false);if(a.type==="group"){return}const s=(0,o.zj)();const i=await De(t,a,{config:s});const n=i.node().getBBox();const l=r.getBlock(a.id);l.size={width:n.width,height:n.height,x:0,y:0,node:i};r.setBlock(l);i.remove()}(0,o.K2)(Re,"calculateBlockSize");async function Ce(t,e,r){const a=Ke(e,r,true);const s=r.getBlock(a.id);if(s.type!=="space"){const r=(0,o.zj)();await De(t,a,{config:r});e.intersect=a?.intersect;Ne(a)}}(0,o.K2)(Ce,"insertBlockPositioned");async function Te(t,e,r,a){for(const s of e){await a(t,s,r);if(s.children){await Te(t,s.children,r,a)}}}(0,o.K2)(Te,"performOperations");async function $e(t,e,r){await Te(t,e,r,Re)}(0,o.K2)($e,"calculateBlockSizes");async function Ae(t,e,r){await Te(t,e,r,Ce)}(0,o.K2)(Ae,"insertBlocks");async function Oe(t,e,r,a,s){const i=new u.T({multigraph:true,compound:true});i.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const n of r){if(n.size){i.setNode(n.id,{width:n.size.width,height:n.size.height,intersect:n.intersect})}}for(const n of e){if(n.start&&n.end){const e=a.getBlock(n.start);const r=a.getBlock(n.end);if(e?.size&&r?.size){const a=e.size;const o=r.size;const l=[{x:a.x,y:a.y},{x:a.x+(o.x-a.x)/2,y:a.y+(o.y-a.y)/2},{x:o.x,y:o.y}];Ct(t,{v:n.start,w:n.end,name:n.id},{...n,arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:l,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",i,s);if(n.label){await St(t,{...n,label:n.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:l,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"});Dt({...n,x:l[1].x,y:l[1].y},{originalPath:l})}}}}}(0,o.K2)(Oe,"insertEdges");var Ie=(0,o.K2)((function(t,e){return e.db.getClasses()}),"getClasses");var Be=(0,o.K2)((async function(t,e,r,a){const{securityLevel:s,block:i}=(0,o.zj)();const n=a.db;let l;if(s==="sandbox"){l=(0,d.Ltv)("#i"+e)}const c=s==="sandbox"?(0,d.Ltv)(l.nodes()[0].contentDocument.body):(0,d.Ltv)("body");const h=s==="sandbox"?c.select(`[id="${e}"]`):(0,d.Ltv)(`[id="${e}"]`);const u=["point","circle","cross"];lt(h,u,a.type,e);const g=n.getBlocks();const p=n.getBlocksFlat();const y=n.getEdges();const f=h.insert("g").attr("class","block");await $e(f,g,n);const b=yt(n);await Ae(f,g,n);await Oe(f,y,p,n,e);if(b){const t=b;const e=Math.max(1,Math.round(.125*(t.width/t.height)));const r=t.height+e+10;const a=t.width+10;const{useMaxWidth:s}=i;(0,o.a$)(h,r,a,!!s);o.Rm.debug("Here Bounds",b,t);h.attr("viewBox",`${t.x-5} ${t.y-5} ${t.width+10} ${t.height+10}`)}}),"draw");var ze={draw:Be,getClasses:Ie};var Me={parser:p,db:U,renderer:ze,styles:G}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6372.edc0712a4be855493530.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6372.edc0712a4be855493530.js deleted file mode 100644 index bbca4b0adedfce639229cc7fbbc613317f93ab8f..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6372.edc0712a4be855493530.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6372,3991],{26372:(n,t,e)=>{e.d(t,{$D:()=>w,$G:()=>H,$P:()=>dn,AU:()=>z,B:()=>bn,B2:()=>F,BS:()=>q,Cc:()=>_n,D_:()=>g,EV:()=>kn,Eb:()=>On,Et:()=>wn,G4:()=>Sn,Gv:()=>k,KH:()=>T,Kg:()=>En,Lm:()=>mn,Ln:()=>An,M1:()=>Cn,N6:()=>u,NV:()=>M,P$:()=>j,PK:()=>yn,R2:()=>E,Ro:()=>S,SW:()=>Z,Tn:()=>J,UD:()=>nn,VC:()=>P,V_:()=>tn,X$:()=>cn,Xx:()=>fn,YO:()=>W,ZZ:()=>a,ay:()=>Nn,bX:()=>pn,co:()=>U,cy:()=>v,dI:()=>Vn,dY:()=>on,eV:()=>zn,gd:()=>jn,h1:()=>xn,id:()=>h,io:()=>D,iv:()=>s,lL:()=>X,mQ:()=>an,me:()=>m,n:()=>sn,nG:()=>gn,nS:()=>o,oV:()=>Y,r$:()=>Rn,rt:()=>Bn,sY:()=>r,se:()=>R,sg:()=>ln,ux:()=>Dn,vF:()=>_,vN:()=>y,v_:()=>p,vu:()=>I,xH:()=>b,xZ:()=>Mn,xv:()=>Gn,y:()=>O,z3:()=>f,zy:()=>K});function r(n,t,e){n.fields=t||[];n.fname=e;return n}function u(n){return n==null?null:n.fname}function o(n){return n==null?null:n.fields}function i(n){return n.length===1?l(n[0]):c(n)}const l=n=>function(t){return t[n]};const c=n=>{const t=n.length;return function(e){for(let r=0;ri){s()}else{i=l+1}}else if(c==="["){if(l>i)s();u=i=l+1}else if(c==="]"){if(!u)f("Access path missing open bracket: "+n);if(u>0)s();u=0;i=l+1}}if(u)f("Access path missing closing bracket: "+n);if(r)f("Access path missing closing quote: "+n);if(l>i){l++;s()}return t}function a(n,t,e){const u=s(n);n=u.length===1?u[0]:n;return r((e&&e.get||i)(u),[n],t||n)}const h=a("id");const g=r((n=>n),[],"identity");const p=r((()=>0),[],"zero");const b=r((()=>1),[],"one");const y=r((()=>true),[],"true");const m=r((()=>false),[],"false");function d(n,t,e){const r=[t].concat([].slice.call(e));console[n].apply(console,r)}const M=0;const w=1;const j=2;const E=3;const O=4;function _(n,t){let e=arguments.length>2&&arguments[2]!==undefined?arguments[2]:d;let r=n||M;return{level(n){if(arguments.length){r=+n;return this}else{return r}},error(){if(r>=w)e(t||"error","ERROR",arguments);return this},warn(){if(r>=j)e(t||"warn","WARN",arguments);return this},info(){if(r>=E)e(t||"log","INFO",arguments);return this},debug(){if(r>=O)e(t||"log","DEBUG",arguments);return this}}}var v=Array.isArray;function k(n){return n===Object(n)}const x=n=>n!=="__proto__";function D(){for(var n=arguments.length,t=new Array(n),e=0;e{for(const e in t){if(e==="signals"){n.signals=A(n.signals,t.signals)}else{const r=e==="legend"?{layout:1}:e==="style"?true:null;z(n,e,t[e],r)}}return n}),{})}function z(n,t,e,r){if(!x(t))return;let u,o;if(k(e)&&!v(e)){o=k(n[t])?n[t]:n[t]={};for(u in e){if(r&&(r===true||r[u])){z(o,u,e[u])}else if(x(u)){o[u]=e[u]}}}else{n[t]=e}}function A(n,t){if(n==null)return t;const e={},r=[];function u(n){if(!e[n.name]){e[n.name]=1;r.push(n)}}t.forEach(u);n.forEach(u);return r}function R(n){return n[n.length-1]}function S(n){return n==null||n===""?null:+n}const $=n=>t=>n*Math.exp(t);const N=n=>t=>Math.log(n*t);const V=n=>t=>Math.sign(t)*Math.log1p(Math.abs(t/n));const C=n=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*n;const G=n=>t=>t<0?-Math.pow(-t,n):Math.pow(t,n);function B(n,t,e,r){const u=e(n[0]),o=e(R(n)),i=(o-u)*t;return[r(u-i),r(o-i)]}function P(n,t){return B(n,t,S,g)}function T(n,t){var e=Math.sign(n[0]);return B(n,t,N(e),$(e))}function U(n,t,e){return B(n,t,G(e),G(1/e))}function K(n,t,e){return B(n,t,V(e),C(e))}function L(n,t,e,r,u){const o=r(n[0]),i=r(R(n)),l=t!=null?r(t):(o+i)/2;return[u(l+(o-l)*e),u(l+(i-l)*e)]}function X(n,t,e){return L(n,t,e,S,g)}function Y(n,t,e){const r=Math.sign(n[0]);return L(n,t,e,N(r),$(r))}function Z(n,t,e,r){return L(n,t,e,G(r),G(1/r))}function F(n,t,e,r){return L(n,t,e,V(r),C(r))}function H(n){return 1+~~(new Date(n).getMonth()/3)}function I(n){return 1+~~(new Date(n).getUTCMonth()/3)}function W(n){return n!=null?v(n)?n:[n]:[]}function q(n,t,e){let r=n[0],u=n[1],o;if(u=e-t?[t,e]:[r=Math.min(Math.max(r,t),e-o),r+o]}function J(n){return typeof n==="function"}const Q="descending";function nn(n,t,e){e=e||{};t=W(t)||[];const u=[],i=[],l={},c=e.comparator||en;W(n).forEach(((n,r)=>{if(n==null)return;u.push(t[r]===Q?-1:1);i.push(n=J(n)?n:a(n,null,e));(o(n)||[]).forEach((n=>l[n]=1))}));return i.length===0?null:r(c(i,u),Object.keys(l))}const tn=(n,t)=>(nt||t==null)&&n!=null?1:(t=t instanceof Date?+t:t,n=n instanceof Date?+n:n)!==n&&t===t?-1:t!==t&&n===n?1:0;const en=(n,t)=>n.length===1?rn(n[0],t[0]):un(n,t,n.length);const rn=(n,t)=>function(e,r){return tn(n(e),n(r))*t};const un=(n,t,e)=>{t.push(0);return function(r,u){let o,i=0,l=-1;while(i===0&&++ln}function ln(n,t){let e;return r=>{if(e)clearTimeout(e);e=setTimeout((()=>(t(r),e=null)),n)}}function cn(n){for(let t,e,r=1,u=arguments.length;ri)i=u}}}else{for(u=t(n[e]);ei)i=u}}}}return[o,i]}function sn(n,t){const e=n.length;let r=-1,u,o,i,l,c;if(t==null){while(++r=o){u=i=o;break}}if(r===e)return[-1,-1];l=c=r;while(++ro){u=o;l=r}if(i=o){u=i=o;break}}if(r===e)return[-1,-1];l=c=r;while(++ro){u=o;l=r}if(i{u.set(t,n[t])}));return u}function pn(n,t,e,r,u,o){if(!e&&e!==0)return o;const i=+e;let l=n[0],c=R(n),f;if(co){i=u;u=o;o=i}e=e===undefined||e;r=r===undefined||r;return(e?u<=n:un.replace(/\\(.)/g,"$1"))):W(n)}const u=n&&n.length,o=e&&e.get||i,l=n=>o(t?[n]:s(n));let c;if(!u){c=function(){return""}}else if(u===1){const t=l(n[0]);c=function(n){return""+t(n)}}else{const t=n.map(l);c=function(n){let e=""+t[0](n),r=0;while(++r{t={};e={};r=0};const o=(u,o)=>{if(++r>n){e=t;t={};r=1}return t[u]=o};u();return{clear:u,has:n=>an(t,n)||an(e,n),get:n=>an(t,n)?t[n]:an(e,n)?o(n,e[n]):undefined,set:(n,e)=>an(t,n)?t[n]=e:o(n,e)}}function xn(n,t,e,r){const u=t.length,o=e.length;if(!o)return t;if(!u)return e;const i=r||new t.constructor(u+o);let l=0,c=0,f=0;for(;l0?e[c++]:t[l++]}for(;l=0)e+=n;return e}function zn(n,t,e,r){const u=e||" ",o=n+"",i=t-o.length;return i<=0?o:r==="left"?Dn(u,i)+o:r==="center"?Dn(u,~~(i/2))+o+Dn(u,Math.ceil(i/2)):o+Dn(u,i)}function An(n){return n&&R(n)-n[0]||0}function Rn(n){return v(n)?"["+n.map(Rn)+"]":k(n)||En(n)?JSON.stringify(n).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):n}function Sn(n){return n==null||n===""?null:!n||n==="false"||n==="0"?false:!!n}const $n=n=>wn(n)?n:dn(n)?n:Date.parse(n);function Nn(n,t){t=t||$n;return n==null||n===""?null:t(n)}function Vn(n){return n==null||n===""?null:n+""}function Cn(n){const t={},e=n.length;for(let r=0;r{r.r(t);r.d(t,{haxe:()=>ue,hxml:()=>le});function n(e){return{type:e,style:"keyword"}}var i=n("keyword a"),a=n("keyword b"),u=n("keyword c");var l=n("operator"),f={type:"atom",style:"atom"},o={type:"attribute",style:"attribute"};var c=n("typedef");var s={if:i,while:i,else:a,do:a,try:a,return:u,break:u,continue:u,new:u,throw:u,var:n("var"),inline:o,static:o,using:n("import"),public:o,private:o,cast:n("cast"),import:n("import"),macro:n("macro"),function:n("function"),catch:n("catch"),untyped:n("untyped"),callback:n("cb"),for:n("for"),switch:n("switch"),case:n("case"),default:n("default"),in:l,never:n("property_access"),trace:n("trace"),class:c,abstract:c,enum:c,interface:c,typedef:c,extends:c,implements:c,dynamic:c,true:f,false:f,null:f};var p=/[+\-*&%=<>!?|]/;function d(e,t,r){t.tokenize=r;return r(e,t)}function m(e,t){var r=false,n;while((n=e.next())!=null){if(n==t&&!r)return true;r=!r&&n=="\\"}}var c,v;function y(e,t,r){c=e;v=r;return t}function h(e,t){var r=e.next();if(r=='"'||r=="'"){return d(e,t,b(r))}else if(/[\[\]{}\(\),;\:\.]/.test(r)){return y(r)}else if(r=="0"&&e.eat(/x/i)){e.eatWhile(/[\da-f]/i);return y("number","number")}else if(/\d/.test(r)||r=="-"&&e.eat(/\d/)){e.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/);return y("number","number")}else if(t.reAllowed&&(r=="~"&&e.eat(/\//))){m(e,"/");e.eatWhile(/[gimsu]/);return y("regexp","string.special")}else if(r=="/"){if(e.eat("*")){return d(e,t,k)}else if(e.eat("/")){e.skipToEnd();return y("comment","comment")}else{e.eatWhile(p);return y("operator",null,e.current())}}else if(r=="#"){e.skipToEnd();return y("conditional","meta")}else if(r=="@"){e.eat(/:/);e.eatWhile(/[\w_]/);return y("metadata","meta")}else if(p.test(r)){e.eatWhile(p);return y("operator",null,e.current())}else{var n;if(/[A-Z]/.test(r)){e.eatWhile(/[\w_<>]/);n=e.current();return y("type","type",n)}else{e.eatWhile(/[\w_]/);var n=e.current(),i=s.propertyIsEnumerable(n)&&s[n];return i&&t.kwAllowed?y(i.type,i.style,n):y("variable","variable",n)}}}function b(e){return function(t,r){if(m(t,e))r.tokenize=h;return y("string","string")}}function k(e,t){var r=false,n;while(n=e.next()){if(n=="/"&&r){t.tokenize=h;break}r=n=="*"}return y("comment","comment")}var x={atom:true,number:true,variable:true,string:true,regexp:true};function w(e,t,r,n,i,a){this.indented=e;this.column=t;this.type=r;this.prev=i;this.info=a;if(n!=null)this.align=n}function g(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return true}function A(e,t,r,n,i){var a=e.cc;_.state=e;_.stream=i;_.marked=null,_.cc=a;if(!e.lexical.hasOwnProperty("align"))e.lexical.align=true;while(true){var u=a.length?a.pop():C;if(u(r,n)){while(a.length&&a[a.length-1].lex)a.pop()();if(_.marked)return _.marked;if(r=="variable"&&g(e,n))return"variableName.local";if(r=="variable"&&V(e,n))return"variableName.special";return t}}}function V(e,t){if(/[a-z]/.test(t.charAt(0)))return false;var r=e.importedtypes.length;for(var n=0;n=0;e--)_.cc.push(arguments[e])}function z(){W.apply(null,arguments);return true}function T(e,t){for(var r=t;r;r=r.next)if(r.name==e)return true;return false}function E(e){var t=_.state;if(t.context){_.marked="def";if(T(e,t.localVars))return;t.localVars={name:e,next:t.localVars}}else if(t.globalVars){if(T(e,t.globalVars))return;t.globalVars={name:e,next:t.globalVars}}}var D={name:"this",next:null};function O(){if(!_.state.context)_.state.localVars=D;_.state.context={prev:_.state.context,vars:_.state.localVars}}function Z(){_.state.localVars=_.state.context.vars;_.state.context=_.state.context.prev}Z.lex=true;function P(e,t){var r=function(){var r=_.state;r.lexical=new w(r.indented,_.stream.column(),e,null,r.lexical,t)};r.lex=true;return r}function I(){var e=_.state;if(e.lexical.prev){if(e.lexical.type==")")e.indented=e.lexical.indented;e.lexical=e.lexical.prev}}I.lex=true;function j(e){function t(r){if(r==e)return z();else if(e==";")return W();else return z(t)}return t}function C(e){if(e=="@")return z(q);if(e=="var")return z(P("vardef"),U,j(";"),I);if(e=="keyword a")return z(P("form"),N,C,I);if(e=="keyword b")return z(P("form"),C,I);if(e=="{")return z(P("}"),O,R,I,Z);if(e==";")return z();if(e=="attribute")return z(F);if(e=="function")return z(te);if(e=="for")return z(P("form"),j("("),P(")"),Y,j(")"),I,C,I);if(e=="variable")return z(P("stat"),K);if(e=="switch")return z(P("form"),N,P("}","switch"),j("{"),R,I,I);if(e=="case")return z(N,j(":"));if(e=="default")return z(j(":"));if(e=="catch")return z(P("form"),O,j("("),ae,j(")"),C,I,Z);if(e=="import")return z(H,j(";"));if(e=="typedef")return z(J);return W(P("stat"),N,j(";"),I)}function N(e){if(x.hasOwnProperty(e))return z(B);if(e=="type")return z(B);if(e=="function")return z(te);if(e=="keyword c")return z($);if(e=="(")return z(P(")"),$,j(")"),I,B);if(e=="operator")return z(N);if(e=="[")return z(P("]"),Q($,"]"),I,B);if(e=="{")return z(P("}"),Q(M,"}"),I,B);return z()}function $(e){if(e.match(/[;\}\)\],]/))return W();return W(N)}function B(e,t){if(e=="operator"&&/\+\+|--/.test(t))return z(B);if(e=="operator"||e==":")return z(N);if(e==";")return;if(e=="(")return z(P(")"),Q(N,")"),I,B);if(e==".")return z(L,B);if(e=="[")return z(P("]"),N,j("]"),I,B)}function F(e){if(e=="attribute")return z(F);if(e=="function")return z(te);if(e=="var")return z(U)}function q(e){if(e==":")return z(q);if(e=="variable")return z(q);if(e=="(")return z(P(")"),Q(G,")"),I,C)}function G(e){if(e=="variable")return z()}function H(e,t){if(e=="variable"&&/[A-Z]/.test(t.charAt(0))){S(t);return z()}else if(e=="variable"||e=="property"||e=="."||t=="*")return z(H)}function J(e,t){if(e=="variable"&&/[A-Z]/.test(t.charAt(0))){S(t);return z()}else if(e=="type"&&/[A-Z]/.test(t.charAt(0))){return z()}}function K(e){if(e==":")return z(I,C);return W(B,j(";"),I)}function L(e){if(e=="variable"){_.marked="property";return z()}}function M(e){if(e=="variable")_.marked="property";if(x.hasOwnProperty(e))return z(j(":"),N)}function Q(e,t){function r(n){if(n==",")return z(e,r);if(n==t)return z();return z(j(t))}return function(n){if(n==t)return z();else return W(e,r)}}function R(e){if(e=="}")return z();return W(C,R)}function U(e,t){if(e=="variable"){E(t);return z(re,X)}return z()}function X(e,t){if(t=="=")return z(N,X);if(e==",")return z(U)}function Y(e,t){if(e=="variable"){E(t);return z(ee,N)}else{return W()}}function ee(e,t){if(t=="in")return z()}function te(e,t){if(e=="variable"||e=="type"){E(t);return z(te)}if(t=="new")return z(te);if(e=="(")return z(P(")"),O,Q(ae,")"),I,re,C,Z)}function re(e){if(e==":")return z(ne)}function ne(e){if(e=="type")return z();if(e=="variable")return z();if(e=="{")return z(P("}"),Q(ie,"}"),I)}function ie(e){if(e=="variable")return z(re)}function ae(e,t){if(e=="variable"){E(t);return z(re)}}const ue={name:"haxe",startState:function(e){var t=["Int","Float","String","Void","Std","Bool","Dynamic","Array"];var r={tokenize:h,reAllowed:true,kwAllowed:true,cc:[],lexical:new w(-e,0,"block",false),importedtypes:t,context:null,indented:0};return r},token:function(e,t){if(e.sol()){if(!t.lexical.hasOwnProperty("align"))t.lexical.align=false;t.indented=e.indentation()}if(e.eatSpace())return null;var r=t.tokenize(e,t);if(c=="comment")return r;t.reAllowed=!!(c=="operator"||c=="keyword c"||c.match(/^[\[{}\(,;:]$/));t.kwAllowed=c!=".";return A(t,r,c,v,e)},indent:function(e,t,r){if(e.tokenize!=h)return 0;var n=t&&t.charAt(0),i=e.lexical;if(i.type=="stat"&&n=="}")i=i.prev;var a=i.type,u=n==a;if(a=="vardef")return i.indented+4;else if(a=="form"&&n=="{")return i.indented;else if(a=="stat"||a=="form")return i.indented+r.unit;else if(i.info=="switch"&&!u)return i.indented+(/^(?:case|default)\b/.test(t)?r.unit:2*r.unit);else if(i.align)return i.column+(u?0:1);else return i.indented+(u?0:r.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};const le={name:"hxml",startState:function(){return{define:false,inString:false}},token:function(e,t){var r=e.peek();var n=e.sol();if(r=="#"){e.skipToEnd();return"comment"}if(n&&r=="-"){var i="variable-2";e.eat(/-/);if(e.peek()=="-"){e.eat(/-/);i="keyword a"}if(e.peek()=="D"){e.eat(/[D]/);i="keyword c";t.define=true}e.eatWhile(/[A-Z]/i);return i}var r=e.peek();if(t.inString==false&&r=="'"){t.inString=true;e.next()}if(t.inString==true){if(e.skipTo("'")){}else{e.skipToEnd()}if(e.peek()=="'"){e.next();t.inString=false}return"string"}e.next();return null},languageData:{commentTokens:{line:"#"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6439.1723c0b3882bf535486e.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6439.1723c0b3882bf535486e.js deleted file mode 100644 index 7dbf67465404b3b2ea99851a023c154c30d6358a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6439.1723c0b3882bf535486e.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6439],{16439:(n,e,t)=>{"use strict";t.r(e);t.d(e,{render:()=>s});var r=t(21148);var i=t(24982);var a=t(62954);var c=t.n(a);var u=(0,r.K)(((n,e,{parentById:t})=>{const r=new Set;let i=n;if(n===e){return t[n]||"root"}while(i){r.add(i);if(i===e){return i}i=t[i]}i=e;while(i){if(r.has(i)){return i}i=t[i]}return"root"}),"findCommonAncestor");var s=(0,r.K)((async(n,e,{common:t,getConfig:a,insertCluster:s,insertEdge:o,insertEdgeLabel:f,insertMarkers:h,insertNode:l,interpolateToCurve:b,labelHelper:w,log:d,positionEdgeLabel:g},{algorithm:v})=>{const p={};const m={};const k=(0,r.K)((async(n,e,t,r)=>{const i={width:0,height:0};const c=a();if(!r.isGroup){const t={...r};e.children.push(t);p[r.id]=t;const i=await l(n,r,{config:c,dir:r.dir});const a=i.node().getBBox();t.domId=i;t.width=a.width;t.height=a.height}else{const a={...r,children:[]};e.children.push(a);p[r.id]=a;await y(n,t,a,r.id);if(r.label){const{shapeSvg:e,bbox:t}=await w(n,r,void 0,true);i.width=t.width;i.wrappingWidth=c.flowchart.wrappingWidth;i.height=t.height-2;i.labelNode=e.node();e.remove()}else{i.width=0;i.height=0}a.labelData=i;a.domId=n}}),"addVertex");const y=(0,r.K)((async function(n,e,t,r){const i=e.filter((n=>n?.parentId===r));d.info("addVertices APA12",i,r);await Promise.all(i.map((async r=>{await k(n,t,e,r)})));return t}),"addVertices");const M=(0,r.K)((async(n,e,t,r,i,a)=>{await Promise.all(t.map((async function(t){if(t){p[t.id]=t;p[t.id].offset={posX:t.x+n,posY:t.y+e,x:n,y:e,depth:a,width:Math.max(t.width,t.labels?t.labels[0]?.width||0:0),height:t.height};if(t.isGroup){d.debug("Id abc88 subgraph = ",t.id,t.x,t.y,t.labelData);const n=i.insert("g").attr("class","subgraph");const e=JSON.parse(JSON.stringify(t));e.x=t.offset.posX+t.width/2;e.y=t.offset.posY+t.height/2;e.width=Math.max(e.width,t.labelData.width);await s(n,e);d.debug("Id (UIO)= ",t.id,t.width,t.shape,t.labels)}else{d.info("Id NODE = ",t.id,t.x,t.y,n,e,t.domId.node(),`translate(${t.x+n+t.width/2}, ${t.y+e+t.height/2})`);t.domId.attr("transform",`translate(${t.x+n+t.width/2}, ${t.y+e+t.height/2})`)}}})));await Promise.all(t.map((async function(t){if(t?.isGroup){await M(n+t.x,e+t.y,t.children,r,i,a+1)}})))}),"drawNodes");const T=(0,r.K)((n=>{const e={parentById:{},childrenById:{}};const t=n.filter((n=>n.isGroup));d.info("Subgraphs - ",t);t.forEach((t=>{const r=n.filter((n=>n.parentId===t.id));r.forEach((n=>{e.parentById[n.id]=t.id;if(e.childrenById[t.id]===void 0){e.childrenById[t.id]=[]}e.childrenById[t.id].push(n)}))}));t.forEach((function(n){const t={id:n.id};if(e.parentById[n.id]!==void 0){t.parent=e.parentById[n.id]}}));return e}),"addSubGraphs");const j=(0,r.K)((n=>{const e=n.start;const t=n.end;const r=e;const i=t;const a=p[n.start.id];const c=p[n.end.id];if(!a||!c){return{source:e,target:t}}return{source:e,target:t,sourceId:r,targetId:i}}),"getEdgeStartEndPoint");const E=(0,r.K)((function(n,e,t){const r=u(n,e,t);if(r===void 0||r==="root"){return{x:0,y:0}}const i=p[r].offset;return{x:i.posX,y:i.posY}}),"calcOffset");const S=(0,r.K)((async function(n,e,r){d.info("abc78 DAGA edges = ",n);const c=n.edges;const u=r.insert("g").attr("class","edgeLabels");const s={};const o=n.direction||"DOWN";let h;let l;await Promise.all(c.map((async function(n){const r=n.id;if(s[r]===void 0){s[r]=0;d.info("abc78 new entry",r,s[r])}else{s[r]++;d.info("abc78 new entry",r,s[r])}const w=r+"_"+s[r];n.id=w;d.info("abc78 new link id to be used is",r,w,s[r]);const g="LS_"+n.start;const v="LE_"+n.end;const p={style:"",labelStyle:""};p.minlen=n.length||1;n.text=n.label;if(n.type==="arrow_open"){p.arrowhead="none"}else{p.arrowhead="normal"}p.arrowTypeStart="arrow_open";p.arrowTypeEnd="arrow_open";switch(n.type){case"double_arrow_cross":p.arrowTypeStart="arrow_cross";case"arrow_cross":p.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":p.arrowTypeStart="arrow_point";case"arrow_point":p.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":p.arrowTypeStart="arrow_circle";case"arrow_circle":p.arrowTypeEnd="arrow_circle";break}let m="";let k="";p.startLabelRight=n.startLabelRight;p.endLabelLeft=n.endLabelLeft;switch(n.stroke){case"normal":m="fill:none;";if(h!==void 0){m=h}if(l!==void 0){k=l}p.thickness="normal";p.pattern="solid";break;case"dotted":p.thickness="normal";p.pattern="dotted";p.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":p.thickness="thick";p.pattern="solid";p.style="stroke-width: 3.5px;fill:none;";break}p.style=p.style+=m;p.labelStyle=p.labelStyle+=k;const y=a();if(n.interpolate!==void 0){p.curve=b(n.interpolate,i.lUB)}else if(c.defaultInterpolate!==void 0){p.curve=b(c.defaultInterpolate,i.lUB)}else{p.curve=b(y.curve,i.lUB)}if(n.text===void 0){if(n.style!==void 0){p.arrowheadStyle="fill: #333"}}else{p.arrowheadStyle="fill: #333";p.labelpos="c"}p.labelType=n.labelType;p.label=(n?.text||"").replace(t.lineBreakRegex,"\n");if(n.style===void 0){p.style=p.style||"stroke: #333; stroke-width: 1.5px;fill:none;"}p.labelStyle=p.labelStyle.replace("color:","fill:");p.id=w;p.classes="flowchart-link "+g+" "+v;const M=await f(u,p);const{source:T,target:E,sourceId:S,targetId:P}=j(n,o);d.debug("abc78 source and target",T,E);e.edges.push({id:"e"+n.start+n.end,...n,sources:[T],targets:[E],sourceId:S,targetId:P,labelEl:M,labels:[{width:p.width,height:p.height,orgWidth:p.width,orgHeight:p.height,text:p.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:p})})));return e}),"addEdges");function P(n){switch(n){case"LR":return"RIGHT";case"RL":return"LEFT";case"TB":return"DOWN";case"BT":return"UP";default:return"DOWN"}}(0,r.K)(P,"dir2ElkDirection");function C(n,e){const t=p[n];if(!t){return}if(t?.layoutOptions===void 0){t.layoutOptions={}}t.layoutOptions["elk.hierarchyHandling"]="INCLUDE_CHILDREN";if(t.id!==e){C(t.parentId,e)}}(0,r.K)(C,"setIncludeChildrenPolicy");function I(n,e,t,r){d.debug("UIO intersectLine",n,e,t,r);const i=e.y-n.y;const a=n.x-e.x;const c=e.x*n.y-n.x*e.y;const u=i*t.x+a*t.y+c;const s=i*r.x+a*r.y+c;const o=1e-6;if(u!==0&&s!==0&&O(u,s)){return}const f=r.y-t.y;const h=t.x-r.x;const l=r.x*t.y-t.x*r.y;const b=f*n.x+h*n.y+l;const w=f*e.x+h*e.y+l;if(Math.abs(b)0}(0,r.K)(O,"sameSign");const A=(0,r.K)(((n,e,t)=>{const r=n.x;const i=n.y;const a=n.width;const c=n.height;const u=[{x:r,y:i-c/2},{x:r+a/2,y:i},{x:r,y:i+c/2},{x:r-a/2,y:i}];d.debug(`APA16 diamondIntersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(t)}\n node-bounds : x:${n.x} y:${n.y} w:${n.width} h:${n.height}`,JSON.stringify(u));const s=[];let o=Number.POSITIVE_INFINITY;let f=Number.POSITIVE_INFINITY;u.forEach((function(n){o=Math.min(o,n.x);f=Math.min(f,n.y)}));const h=r-a/2-o;const l=i-c/2-f;for(let b=0;b1){s.sort((function(n,t){const r=n.x-e.x;const i=n.y-e.y;const a=Math.sqrt(r*r+i*i);const c=t.x-e.x;const u=t.y-e.y;const s=Math.sqrt(c*c+u*u);return a{d.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(t)}\n node : x:${n.x} y:${n.y} w:${n.width} h:${n.height}`);const r=n.x;const i=n.y;const a=Math.abs(r-t.x);const c=n.width/2;let u=t.xMath.abs(r-e.x)*s){const n=t.y{const t=n.x;const r=n.y;const i=Math.abs(e.x-t);const a=Math.abs(e.y-r);const c=n.width/2;const u=n.height/2;if(i>=c||a>=u){return true}return false}),"outsideNode");const $=(0,r.K)(((n,e,t)=>{d.debug("APA18 cutPathAtIntersect Points:",n,"node:",e,"isDiamond",t);const r=[];let i=n[0];let a=false;n.forEach((n=>{if(!N(e,n)&&!a){let c;if(t){const t=A(e,i,n);const r=Math.sqrt((i.x-t.x)**2+(i.y-t.y)**2);if(r>1){c=t}}if(!c){c=L(e,i,n)}let u=false;r.forEach((n=>{u=u||n.x===c.x&&n.y===c.y}));if(!r.some((n=>n.x===c.x&&n.y===c.y))){r.push(c)}else{d.debug("abc88 no intersect",c,r)}a=true}else{d.debug("abc88 outside",n,i,r);i=n;if(!a){r.push(n)}}}));return r}),"cutPathAtIntersect");const D=new(c());const x=e.select("g");h(x,n.markers,n.type,n.diagramId);let R={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","elk.algorithm":v,"nodePlacement.strategy":n.config.elk?.nodePlacementStrategy,"elk.layered.mergeEdges":n.config.elk?.mergeEdges,"elk.direction":"DOWN","spacing.baseValue":35,"elk.layered.unnecessaryBendpoints":true,"elk.layered.cycleBreaking.strategy":n.config.elk?.cycleBreakingStrategy},children:[],edges:[]};d.info("Drawing flowchart using v4 renderer",D);const K=n.direction||"DOWN";R.layoutOptions["elk.direction"]=P(K);const F=T(n.nodes);const _=e.insert("g").attr("class","subgraphs");const B=e.insert("g").attr("class","nodes");R=await y(B,n.nodes,R);const H=e.insert("g").attr("class","edges edgePaths");R=await S(n,R,e);const U=n.nodes;U.forEach((e=>{const t=p[e.id];if(F.childrenById[t.id]!==void 0){t.labels=[{text:t.label,width:t?.labelData?.width||50,height:t?.labelData?.height||50},t.width=t.width+2*t.padding,d.debug("UIO node label",t?.labelData?.width,t.padding)];t.layoutOptions={"spacing.baseValue":30,"nodeLabels.placement":"[H_CENTER V_TOP, INSIDE]"};if(t.dir){t.layoutOptions={...t.layoutOptions,"elk.algorithm":v,"elk.direction":P(t.dir),"nodePlacement.strategy":n.config.elk?.nodePlacementStrategy,"elk.layered.mergeEdges":n.config.elk?.mergeEdges,"elk.hierarchyHandling":"SEPARATE_CHILDREN"}}delete t.x;delete t.y;delete t.width;delete t.height}}));R.edges.forEach((n=>{const e=n.sources[0];const t=n.targets[0];if(p[e].parentId!==p[t].parentId){const n=u(e,t,F);C(e,n);C(t,n)}}));const G=await D.layout(R);await M(0,0,G.children,e,_,0);G.edges?.map((e=>{const t=p[e.sources[0]];const r=F[e.sources[0]];const i=p[e.targets[0]];const a=e.start;const c=e.end;const u=E(a,c,F);d.debug("APA18 offset",u,a," ==> ",c,"edge:",e,"cluster:",r,t);if(e.sections){const r=e.sections[0].startPoint;const a=e.sections[0].endPoint;const c=e.sections[0].bendPoints?e.sections[0].bendPoints:[];const s=c.map((n=>({x:n.x+u.x,y:n.y+u.y})));e.points=[{x:r.x+u.x,y:r.y+u.y},...s,{x:a.x+u.x,y:a.y+u.y}];let f=t.width;let h=i.width;if(t.isGroup){const n=t.domId.node().getBBox();f=Math.max(t.width,t.labels[0].width+t.padding);d.debug("UIO width",t.id,t.with,"bbox.width=",n.width,"lw=",t.labels[0].width,"node:",t.width,"SW = ",f)}if(i.isGroup){const n=i.domId.node().getBBox();h=Math.max(i.width,i.labels[0].width+i.padding);d.debug("UIO width",t.id,t.with,n.width,"EW = ",h,"HTML:",t.innerHTML)}if(t.shape==="diamond"||t.shape==="diam"){e.points.unshift({x:t.offset.posX+t.width/2,y:t.offset.posY+t.height/2})}if(i.shape==="diamond"||i.shape==="diam"){e.points.push({x:i.offset.posX+i.width/2,y:i.offset.posY+i.height/2})}e.points=$(e.points.reverse(),{x:t.offset.posX+t.width/2,y:t.offset.posY+t.height/2,width:f,height:t.height,padding:t.padding},t.shape==="diamond"||t.shape==="diam").reverse();e.points=$(e.points,{x:i.offset.posX+i.width/2,y:i.offset.posY+i.height/2,width:h,height:i.height,padding:i.padding},i.shape==="diamond"||i.shape==="diam");const l=o(H,e,m,n.type,t,i,n.diagramId);d.info("APA12 edge points after insert",JSON.stringify(e.points));e.x=e.labels[0].x+u.x+e.labels[0].width/2;e.y=e.labels[0].y+u.y+e.labels[0].height/2;g(e,l)}}))}),"render")},62954:(n,e,t)=>{(function(e){if(true){n.exports=e()}else{var t}})((function(){var n,e,r;return function(){function n(e,t,r){function i(c,u){if(!t[c]){if(!e[c]){var s=undefined;if(!u&&s)return require(c,!0);if(a)return a(c,!0);var o=new Error("Cannot find module '"+c+"'");throw o.code="MODULE_NOT_FOUND",o}var f=t[c]={exports:{}};e[c][0].call(f.exports,(function(n){var t=e[c][1][n];return i(t||n)}),f,f.exports,n,e,t,r)}return t[c].exports}for(var a=undefined,c=0;c0&&arguments[0]!==undefined?arguments[0]:{},r=t.defaultLayoutOptions,a=r===undefined?{}:r,u=t.algorithms,s=u===undefined?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:u,o=t.workerFactory,f=t.workerUrl;i(this,n);this.defaultLayoutOptions=a;this.initialized=false;if(typeof f==="undefined"&&typeof o==="undefined"){throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.")}var h=o;if(typeof f!=="undefined"&&typeof o==="undefined"){h=function n(e){return new Worker(e)}}var l=h(f);if(typeof l.postMessage!=="function"){throw new TypeError("Created worker does not provide"+" the required 'postMessage' function.")}this.worker=new c(l);this.worker.postMessage({cmd:"register",algorithms:s}).then((function(n){return e.initialized=true})).catch(console.err)}r(n,[{key:"layout",value:function n(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},r=t.layoutOptions,i=r===undefined?this.defaultLayoutOptions:r,a=t.logging,c=a===undefined?false:a,u=t.measureExecutionTime,s=u===undefined?false:u;if(!e){return Promise.reject(new Error("Missing mandatory parameter 'graph'."))}return this.worker.postMessage({cmd:"layout",graph:e,layoutOptions:i,options:{logging:c,measureExecutionTime:s}})}},{key:"knownLayoutAlgorithms",value:function n(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function n(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function n(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function n(){if(this.worker)this.worker.terminate()}}]);return n}();t.default=a;var c=function(){function n(e){var t=this;i(this,n);if(e===undefined){throw new Error("Missing mandatory parameter 'worker'.")}this.resolvers={};this.worker=e;this.worker.onmessage=function(n){setTimeout((function(){t.receive(t,n)}),0)}}r(n,[{key:"postMessage",value:function n(e){var t=this.id||0;this.id=t+1;e.id=t;var r=this;return new Promise((function(n,i){r.resolvers[t]=function(e,t){if(e){r.convertGwtStyleError(e);i(e)}else{n(t)}};r.worker.postMessage(e)}))}},{key:"receive",value:function n(e,t){var r=t.data;var i=e.resolvers[r.id];if(i){delete e.resolvers[r.id];if(r.error){i(r.error)}else{i(null,r.data)}}}},{key:"terminate",value:function n(){if(this.worker){this.worker.terminate()}}},{key:"convertGwtStyleError",value:function n(e){if(!e){return}var t=e["__java$exception"];if(t){if(t.cause&&t.cause.backingJsObject){e.cause=t.cause.backingJsObject;this.convertGwtStyleError(e.cause)}delete e["__java$exception"]}}}]);return n}()},{}],2:[function(n,e,r){(function(n){(function(){"use strict";var t;if(typeof window!=="undefined")t=window;else if(typeof n!=="undefined")t=n;else if(typeof self!=="undefined")t=self;var i,a;var c,u,s;function o(){}function f(){}function h(){}function l(){}function b(){}function w(){}function d(){}function g(){}function v(){}function p(){}function m(){}function k(){}function y(){}function M(){}function T(){}function j(){}function E(){}function S(){}function P(){}function C(){}function I(){}function O(){}function A(){}function L(){}function N(){}function $(){}function D(){}function x(){}function R(){}function K(){}function F(){}function _(){}function B(){}function H(){}function U(){}function G(){}function q(){}function X(){}function V(){}function z(){}function W(){}function Q(){}function J(){}function Y(){}function Z(){}function nn(){}function en(){}function tn(){}function rn(){}function an(){}function cn(){}function un(){}function sn(){}function on(){}function fn(){}function hn(){}function ln(){}function bn(){}function wn(){}function dn(){}function gn(){}function vn(){}function pn(){}function mn(){}function kn(){}function yn(){}function Mn(){}function Tn(){}function jn(){}function En(){}function Sn(){}function Pn(){}function Cn(){}function In(){}function On(){}function An(){}function Ln(){}function Nn(){}function $n(){}function Dn(){}function xn(){}function Rn(){}function Kn(){}function Fn(){}function _n(){}function Bn(){}function Hn(){}function Un(){}function Gn(){}function qn(){}function Xn(){}function Vn(){}function zn(){}function Wn(){}function Qn(){}function Jn(){}function Yn(){}function Zn(){}function ne(){}function ee(){}function te(){}function re(){}function ie(){}function ae(){}function ce(){}function ue(){}function se(){}function oe(){}function fe(){}function he(){}function le(){}function be(){}function we(){}function de(){}function ge(){}function ve(){}function pe(){}function me(){}function ke(){}function ye(){}function Me(){}function Te(){}function je(){}function Ee(){}function Se(){}function Pe(){}function Ce(){}function Ie(){}function Oe(){}function Ae(){}function Le(){}function Ne(){}function $e(){}function De(){}function xe(){}function Re(){}function Ke(){}function Fe(){}function _e(){}function Be(){}function He(){}function Ue(){}function Ge(){}function qe(){}function Xe(){}function Ve(){}function ze(){}function We(){}function Qe(){}function Je(){}function Ye(){}function Ze(){}function nt(){}function et(){}function tt(){}function rt(){}function it(){}function at(){}function ct(){}function ut(){}function st(){}function ot(){}function ft(){}function ht(){}function lt(){}function bt(){}function wt(){}function dt(){}function gt(){}function vt(){}function pt(){}function mt(){}function kt(){}function yt(){}function Mt(){}function Tt(){}function jt(){}function Et(){}function St(){}function Pt(){}function Ct(){}function It(){}function Ot(){}function At(){}function Lt(){}function Nt(){}function $t(){}function Dt(){}function xt(){}function Rt(){}function Kt(){}function Ft(){}function _t(){}function Bt(){}function Ht(){}function Ut(){}function Gt(){}function qt(){}function Xt(){}function Vt(){}function zt(){}function Wt(){}function Qt(){}function Jt(){}function Yt(){}function Zt(){}function nr(){}function er(){}function tr(){}function rr(){}function ir(){}function ar(){}function cr(){}function ur(){}function sr(){}function or(){}function fr(){}function hr(){}function lr(){}function br(){}function wr(){}function dr(){}function gr(){}function vr(){}function pr(){}function mr(){}function kr(){}function yr(){}function Mr(){}function Tr(){}function jr(){}function Er(){}function Sr(){}function Pr(){}function Cr(){}function Ir(){}function Or(){}function Ar(){}function Lr(){}function Nr(){}function $r(){}function Dr(){}function xr(){}function Rr(){}function Kr(){}function Fr(){}function _r(){}function Br(){}function Hr(){}function Ur(){}function Gr(){}function qr(){}function Xr(){}function Vr(){}function zr(){}function Wr(){}function Qr(){}function Jr(){}function Yr(){}function Zr(){}function ni(){}function ei(){}function ti(){}function ri(){}function ii(){}function ai(){}function ci(){}function ui(){}function si(){}function oi(){}function fi(){}function hi(){}function li(){}function bi(){}function wi(){}function di(){}function gi(){}function vi(){}function pi(){}function mi(){}function ki(){}function yi(){}function Mi(){}function Ti(){}function ji(){}function Ei(){}function Si(){}function Pi(){}function Ci(){}function Ii(){}function Oi(){}function Ai(){}function Li(){}function Ni(){}function $i(){}function Di(){}function xi(){}function Ri(){}function Ki(){}function Fi(){}function _i(){}function Bi(){}function Hi(){}function Ui(){}function Gi(){}function qi(){}function Xi(){}function Vi(){}function zi(){}function Wi(){}function Qi(){}function Ji(){}function Yi(){}function Zi(){}function na(){}function ea(){}function ta(){}function ra(){}function ia(){}function aa(){}function ca(){}function ua(){}function sa(){}function oa(){}function fa(){}function ha(){}function la(){}function ba(){}function wa(){}function da(){}function ga(){}function va(){}function pa(){}function ma(){}function ka(){}function ya(){}function Ma(){}function Ta(){}function ja(){}function Ea(){}function Sa(){}function Pa(){}function Ca(){}function Ia(){}function Oa(){}function Aa(){}function La(){}function Na(){}function $a(){}function Da(){}function xa(){}function Ra(){}function Ka(){}function Fa(){}function _a(){}function Ba(){}function Ha(){}function Ua(){}function Ga(){}function qa(){}function Xa(){}function Va(){}function za(){}function Wa(){}function Qa(){}function Ja(){}function Ya(){}function Za(){}function nc(){}function ec(){}function tc(){}function rc(){}function ic(){}function ac(){}function cc(){}function uc(){}function sc(){}function oc(){}function fc(){}function hc(){}function lc(){}function bc(){}function wc(){}function dc(){}function gc(){}function vc(){}function pc(){}function mc(){}function kc(){}function yc(){}function Mc(){}function Tc(){}function jc(){}function Ec(){}function Sc(){}function Pc(){}function Cc(){}function Ic(){}function Oc(){}function Ac(){}function Lc(){}function Nc(){}function $c(){}function Dc(){}function xc(){}function Rc(){}function Kc(){}function Fc(){}function _c(){}function Bc(){}function Hc(){}function Uc(){}function Gc(){}function qc(){}function Xc(){}function Vc(){}function zc(){}function Wc(){}function Qc(){}function Jc(){}function Yc(){}function Zc(){}function nu(){}function eu(){}function tu(){}function ru(){}function iu(){}function au(){}function cu(){}function uu(){}function su(){}function ou(){}function fu(){}function hu(){}function lu(){}function bu(){}function wu(){}function du(){}function gu(){}function vu(){}function pu(){}function mu(){}function ku(){}function yu(){}function Mu(){}function Tu(){}function ju(){}function Eu(){}function Su(){}function Pu(){}function Cu(){}function Iu(){}function Ou(){}function Au(){}function Lu(){}function Nu(){}function $u(){}function Du(){}function xu(){}function Ru(){}function Ku(){}function Fu(){}function _u(){}function Bu(){}function Hu(){}function Uu(){}function Gu(){}function qu(){}function Xu(){}function Vu(){}function zu(){}function Wu(){}function Qu(){}function Ju(){}function Yu(){}function Zu(){}function ns(){}function es(){}function ts(){}function rs(){}function is(){}function as(){}function cs(){}function us(){}function ss(){}function os(){}function fs(){}function hs(){}function ls(){}function bs(){}function ws(){}function ds(){}function gs(){}function vs(){}function ps(){}function ms(){}function ks(){}function ys(){}function Ms(){}function Ts(){}function js(){}function Es(){}function Ss(){}function Ps(){}function Cs(){}function Is(){}function Os(){}function As(){}function Ls(){}function Ns(){}function $s(){}function Ds(){}function xs(){}function Rs(){}function Ks(){}function Fs(){}function _s(){}function Bs(){}function Hs(){}function Us(){}function Gs(){}function qs(){}function Xs(){}function Vs(){}function zs(){}function Ws(){}function Qs(){}function Js(){}function Ys(){}function Zs(){}function no(){}function eo(){}function to(){}function ro(){}function io(){}function ao(){}function co(){}function uo(){}function so(){}function oo(){}function fo(){}function ho(){}function lo(){}function bo(){}function wo(){}function go(){}function vo(){}function po(){}function mo(){}function ko(){}function yo(){}function Mo(){}function To(){}function jo(){}function Eo(){}function So(){}function Po(){}function Co(){}function Io(){}function Oo(){}function Ao(){}function Lo(){}function No(){}function $o(){}function Do(){}function xo(){}function Ro(){}function Ko(){}function Fo(){}function _o(){}function Bo(){}function Ho(){}function Uo(){}function Go(){}function qo(){}function Xo(){}function Vo(){}function zo(){}function Wo(){}function Qo(){}function Jo(){}function Yo(){}function Zo(){}function nf(){}function ef(){}function tf(){}function rf(){}function af(){}function cf(){}function uf(){}function sf(){}function of(){}function ff(){}function hf(){}function lf(){}function bf(){}function wf(){}function df(){}function gf(){}function vf(){}function pf(){}function mf(){}function kf(){}function yf(){}function Mf(){}function Tf(){}function jf(){}function Ef(){}function Sf(){}function Pf(){}function Cf(){}function If(){}function Of(){}function Af(){}function Lf(){}function Nf(){}function $f(){}function Df(){}function xf(){}function Rf(){}function Kf(){}function Ff(){}function _f(){}function Bf(){}function Hf(){}function Uf(){}function Gf(){}function qf(){}function Xf(){}function Vf(){}function zf(){}function Wf(){}function Qf(){}function Jf(){}function Yf(){}function Zf(){}function nh(){}function eh(){}function th(){}function rh(){}function ih(){}function ah(){}function ch(){}function uh(){}function sh(){}function oh(){}function fh(){}function hh(){}function lh(){}function bh(){}function wh(){}function dh(){}function gh(){}function vh(){}function ph(){}function mh(){}function kh(){}function yh(){}function Mh(){}function Th(){}function jh(){}function Eh(){}function Sh(){}function Ph(){}function Ch(){}function Ih(){}function Oh(){}function Ah(){}function Lh(){}function Nh(){}function $h(){}function Dh(){}function xh(){}function Rh(){}function Kh(){}function Fh(){}function _h(){}function Bh(){}function Hh(n){}function Uh(n){}function Gh(){yy()}function qh(){ZS()}function Xh(){PEn()}function Vh(){Mbn()}function zh(){oyn()}function Wh(){lOn()}function Qh(){oGn()}function Jh(){Sjn()}function Yh(){Xjn()}function Zh(){nP()}function nl(){VB()}function el(){eP()}function tl(){Lsn()}function rl(){G7()}function il(){Ocn()}function al(){r2()}function cl(){Lcn()}function ul(){znn()}function sl(){e2()}function ol(){Nln()}function fl(){$cn()}function hl(){Ncn()}function ll(){f6()}function bl(){Dcn()}function wl(){IIn()}function dl(){rP()}function gl(){ZYn()}function vl(){IYn()}function pl(){xcn()}function ml(){$sn()}function kl(){i2()}function yl(){Ljn()}function Ml(){c2()}function Tl(){kUn()}function jl(){uDn()}function El(){can()}function Sl(){Udn()}function Pl(){eqn()}function Cl(){u3()}function Il(){aan()}function Ol(){OHn()}function Al(){IOn()}function Ll(){$Hn()}function Nl(){A_n()}function $l(){gIn()}function Dl(){bBn()}function xl(){IMn()}function Rl(){lB()}function Kl(){Aen()}function Fl(){vIn()}function _l(){JYn()}function Bl(){$ln()}function Hl(){nmn()}function Ul(){Dsn()}function Gl(){cXn()}function ql(){jGn()}function Xl(n){cJ(n)}function Vl(n){this.a=n}function zl(n){this.a=n}function Wl(n){this.a=n}function Ql(n){this.a=n}function Jl(n){this.a=n}function Yl(n){this.a=n}function Zl(n){this.a=n}function nb(n){this.a=n}function eb(n){this.a=n}function tb(n){this.a=n}function rb(n){this.a=n}function ib(n){this.a=n}function ab(n){this.a=n}function cb(n){this.a=n}function ub(n){this.a=n}function sb(n){this.a=n}function ob(n){this.a=n}function fb(n){this.a=n}function hb(n){this.a=n}function lb(n){this.a=n}function bb(n){this.a=n}function wb(n){this.a=n}function db(n){this.b=n}function gb(n){this.c=n}function vb(n){this.a=n}function pb(n){this.a=n}function mb(n){this.a=n}function kb(n){this.a=n}function yb(n){this.a=n}function Mb(n){this.a=n}function Tb(n){this.a=n}function jb(n){this.a=n}function Eb(n){this.a=n}function Sb(n){this.a=n}function Pb(n){this.a=n}function Cb(n){this.a=n}function Ib(n){this.a=n}function Ob(n){this.a=n}function Ab(n){this.a=n}function Lb(n){this.a=n}function Nb(n){this.a=n}function $b(){this.a=[]}function Db(n,e){n.a=e}function xb(n,e){n.a=e}function Rb(n,e){n.b=e}function Kb(n,e){n.b=e}function Fb(n,e){n.b=e}function _b(n,e){n.j=e}function Bb(n,e){n.g=e}function Hb(n,e){n.i=e}function Ub(n,e){n.c=e}function Gb(n,e){n.c=e}function qb(n,e){n.d=e}function Xb(n,e){n.d=e}function Vb(n,e){n.k=e}function zb(n,e){n.c=e}function Wb(n,e){n.c=e}function Qb(n,e){n.a=e}function Jb(n,e){n.a=e}function Yb(n,e){n.f=e}function Zb(n,e){n.a=e}function nw(n,e){n.b=e}function ew(n,e){n.d=e}function tw(n,e){n.i=e}function rw(n,e){n.o=e}function iw(n,e){n.r=e}function aw(n,e){n.a=e}function cw(n,e){n.b=e}function uw(n,e){n.e=e}function sw(n,e){n.f=e}function ow(n,e){n.g=e}function fw(n,e){n.e=e}function hw(n,e){n.f=e}function lw(n,e){n.f=e}function bw(n,e){n.a=e}function ww(n,e){n.b=e}function dw(n,e){n.n=e}function gw(n,e){n.a=e}function vw(n,e){n.c=e}function pw(n,e){n.c=e}function mw(n,e){n.c=e}function kw(n,e){n.a=e}function yw(n,e){n.a=e}function Mw(n,e){n.d=e}function Tw(n,e){n.d=e}function jw(n,e){n.e=e}function Ew(n,e){n.e=e}function Sw(n,e){n.g=e}function Pw(n,e){n.f=e}function Cw(n,e){n.j=e}function Iw(n,e){n.a=e}function Ow(n,e){n.a=e}function Aw(n,e){n.b=e}function Lw(n){n.b=n.a}function Nw(n){n.c=n.d.d}function $w(n){this.a=n}function Dw(n){this.a=n}function xw(n){this.a=n}function Rw(n){this.a=n}function Kw(n){this.a=n}function Fw(n){this.a=n}function _w(n){this.a=n}function Bw(n){this.a=n}function Hw(n){this.a=n}function Uw(n){this.a=n}function Gw(n){this.a=n}function qw(n){this.a=n}function Xw(n){this.a=n}function Vw(n){this.a=n}function zw(n){this.b=n}function Ww(n){this.b=n}function Qw(n){this.b=n}function Jw(n){this.a=n}function Yw(n){this.a=n}function Zw(n){this.c=n}function nd(n){this.c=n}function ed(n){this.c=n}function td(n){this.d=n}function rd(n){this.a=n}function id(n){this.a=n}function ad(n){this.a=n}function cd(n){this.a=n}function ud(n){this.a=n}function sd(n){this.a=n}function od(n){this.a=n}function fd(n){this.a=n}function hd(n){this.a=n}function ld(n){this.a=n}function bd(n){this.a=n}function wd(n){this.a=n}function dd(n){this.a=n}function gd(n){this.a=n}function vd(n){this.a=n}function pd(n){this.a=n}function md(n){this.a=n}function kd(n){this.a=n}function yd(n){this.a=n}function Md(n){this.a=n}function Td(n){this.a=n}function jd(n){this.a=n}function Ed(n){this.a=n}function Sd(n){this.a=n}function Pd(n){this.a=n}function Cd(n){this.a=n}function Id(n){this.a=n}function Od(n){this.a=n}function Ad(n){this.a=n}function Ld(n){this.a=n}function Nd(n){this.a=n}function $d(n){this.a=n}function Dd(n){this.a=n}function xd(n){this.a=n}function Rd(n){this.a=n}function Kd(n){this.a=n}function Fd(n){this.a=n}function _d(n){this.a=n}function Bd(n){this.a=n}function Hd(n){this.a=n}function Ud(n){this.a=n}function Gd(n){this.a=n}function qd(n){this.a=n}function Xd(n){this.a=n}function Vd(n){this.a=n}function zd(n){this.a=n}function Wd(n){this.a=n}function Qd(n){this.a=n}function Jd(n){this.e=n}function Yd(n){this.a=n}function Zd(n){this.a=n}function ng(n){this.a=n}function eg(n){this.a=n}function tg(n){this.a=n}function rg(n){this.a=n}function ig(n){this.a=n}function ag(n){this.a=n}function cg(n){this.a=n}function ug(n){this.a=n}function sg(n){this.a=n}function og(n){this.a=n}function fg(n){this.a=n}function hg(n){this.a=n}function lg(n){this.a=n}function bg(n){this.a=n}function wg(n){this.a=n}function dg(n){this.a=n}function gg(n){this.a=n}function vg(n){this.a=n}function pg(n){this.a=n}function mg(n){this.a=n}function kg(n){this.a=n}function yg(n){this.a=n}function Mg(n){this.a=n}function Tg(n){this.a=n}function jg(n){this.a=n}function Eg(n){this.a=n}function Sg(n){this.a=n}function Pg(n){this.a=n}function Cg(n){this.a=n}function Ig(n){this.a=n}function Og(n){this.a=n}function Ag(n){this.a=n}function Lg(n){this.a=n}function Ng(n){this.a=n}function $g(n){this.a=n}function Dg(n){this.a=n}function xg(n){this.a=n}function Rg(n){this.a=n}function Kg(n){this.a=n}function Fg(n){this.a=n}function _g(n){this.a=n}function Bg(n){this.a=n}function Hg(n){this.a=n}function Ug(n){this.a=n}function Gg(n){this.a=n}function qg(n){this.a=n}function Xg(n){this.a=n}function Vg(n){this.a=n}function zg(n){this.a=n}function Wg(n){this.a=n}function Qg(n){this.a=n}function Jg(n){this.a=n}function Yg(n){this.c=n}function Zg(n){this.b=n}function nv(n){this.a=n}function ev(n){this.a=n}function tv(n){this.a=n}function rv(n){this.a=n}function iv(n){this.a=n}function av(n){this.a=n}function cv(n){this.a=n}function uv(n){this.a=n}function sv(n){this.a=n}function ov(n){this.a=n}function fv(n){this.a=n}function hv(n){this.a=n}function lv(n){this.a=n}function bv(n){this.a=n}function wv(n){this.a=n}function dv(n){this.a=n}function gv(n){this.a=n}function vv(n){this.a=n}function pv(n){this.a=n}function mv(n){this.a=n}function kv(n){this.a=n}function yv(n){this.a=n}function Mv(n){this.a=n}function Tv(n){this.a=n}function jv(n){this.a=n}function Ev(n){this.a=n}function Sv(n){this.a=n}function Pv(n){this.a=n}function Cv(n){this.a=n}function Iv(n){this.a=n}function Ov(n){this.a=n}function Av(n){this.a=n}function Lv(n){this.a=n}function Nv(n){this.a=n}function $v(n){this.a=n}function Dv(n){this.a=n}function xv(n){this.a=n}function Rv(n){this.a=n}function Kv(n){this.a=n}function Fv(n){this.a=n}function _v(n){this.a=n}function Bv(n){this.a=n}function Hv(n){this.a=n}function Uv(n){this.a=n}function Gv(n){this.a=n}function qv(n){this.a=n}function Xv(n){this.a=n}function Vv(n){this.a=n}function zv(n){this.a=n}function Wv(n){this.a=n}function Qv(n){this.a=n}function Jv(n){this.a=n}function Yv(n){this.a=n}function Zv(n){this.a=n}function np(n){this.a=n}function ep(n){this.a=n}function tp(n){this.f=n}function rp(n){this.a=n}function ip(n){this.a=n}function ap(n){this.a=n}function cp(n){this.a=n}function up(n){this.a=n}function sp(n){this.a=n}function op(n){this.a=n}function fp(n){this.a=n}function hp(n){this.a=n}function lp(n){this.a=n}function bp(n){this.a=n}function wp(n){this.a=n}function dp(n){this.a=n}function gp(n){this.a=n}function vp(n){this.a=n}function pp(n){this.a=n}function mp(n){this.a=n}function kp(n){this.a=n}function yp(n){this.a=n}function Mp(n){this.a=n}function Tp(n){this.a=n}function jp(n){this.a=n}function Ep(n){this.a=n}function Sp(n){this.a=n}function Pp(n){this.a=n}function Cp(n){this.a=n}function Ip(n){this.a=n}function Op(n){this.a=n}function Ap(n){this.a=n}function Lp(n){this.a=n}function Np(n){this.b=n}function $p(n){this.a=n}function Dp(n){this.a=n}function xp(n){this.a=n}function Rp(n){this.a=n}function Kp(n){this.a=n}function Fp(n){this.a=n}function _p(n){this.a=n}function Bp(n){this.b=n}function Hp(n){this.a=n}function Up(n){this.a=n}function Gp(n){this.a=n}function qp(n){this.a=n}function Xp(n){this.c=n}function Vp(n){this.e=n}function zp(n){this.a=n}function Wp(n){this.a=n}function Qp(n){this.a=n}function Jp(n){this.d=n}function Yp(n){this.a=n}function Zp(n){this.a=n}function nm(n){this.a=n}function em(n){this.e=n}function tm(){this.a=0}function rm(){Fz(this)}function im(){$N(this)}function am(){JQ(this)}function cm(){Hh(this)}function um(){this.c=oat}function sm(n,e){n.b+=e}function om(n,e){e.Wb(n)}function fm(n){return n.a}function hm(n){return n.a}function lm(n){return n.a}function bm(n){return n.a}function wm(n){return n.a}function dm(n){return n.e}function gm(){return null}function vm(){return null}function pm(){Tj();BJn()}function mm(n){n.b.Of(n.e)}function km(n){n.b=new oT}function ym(n,e){n.b=e-n.b}function Mm(n,e){n.a=e-n.a}function Tm(n,e){n.push(e)}function jm(n,e){n.sort(e)}function Em(n,e){e.jd(n.a)}function Sm(n,e){KLn(e,n)}function Pm(n,e,t){n.Yd(t,e)}function Cm(n,e){n.e=e;e.b=n}function Im(n){wB();this.a=n}function Om(n){wB();this.a=n}function Am(n){wB();this.a=n}function Lm(n){iQ();this.a=n}function Nm(n){OZ();Qfe.le(n)}function $m(){$m=O;new rm}function Dm(){jx.call(this)}function xm(){jx.call(this)}function Rm(){Dm.call(this)}function Km(){Dm.call(this)}function Fm(){Dm.call(this)}function _m(){Dm.call(this)}function Bm(){Dm.call(this)}function Hm(){Dm.call(this)}function Um(){Dm.call(this)}function Gm(){Dm.call(this)}function qm(){Dm.call(this)}function Xm(){Dm.call(this)}function Vm(){Dm.call(this)}function zm(){this.a=this}function Wm(){this.Bb|=256}function Qm(){this.b=new dL}function Jm(n,e){n.length=e}function Ym(n,e){ED(n.a,e)}function Zm(n,e){ROn(n.c,e)}function nk(n,e){Gz(n.b,e)}function ek(n,e){pMn(n.a,e)}function tk(n,e){Zdn(n.a,e)}function rk(n,e){Pon(n.e,e)}function ik(n){N$n(n.c,n.b)}function ak(n,e){n.kc().Nb(e)}function ck(n){this.a=xgn(n)}function uk(){this.a=new rm}function sk(){this.a=new rm}function ok(){this.a=new dS}function fk(){this.a=new im}function hk(){this.a=new im}function lk(){this.a=new im}function bk(){this.a=new En}function wk(){this.a=new y7}function dk(){this.a=new ve}function gk(){this.a=new Z0}function vk(){this.a=new KF}function pk(){this.a=new im}function mk(){this.a=new im}function kk(){this.a=new im}function yk(){this.a=new im}function Mk(){this.d=new im}function Tk(){this.a=new s4}function jk(){this.a=new uk}function Ek(){this.a=new rm}function Sk(){this.b=new rm}function Pk(){this.b=new im}function Ck(){this.e=new im}function Ik(){this.a=new wl}function Ok(){this.d=new im}function Ak(){XZ.call(this)}function Lk(){XZ.call(this)}function Nk(){im.call(this)}function $k(){Rm.call(this)}function Dk(){fk.call(this)}function xk(){VF.call(this)}function Rk(){yk.call(this)}function Kk(){cm.call(this)}function Fk(){Kk.call(this)}function _k(){cm.call(this)}function Bk(){_k.call(this)}function Hk(){ly.call(this)}function Uk(){ly.call(this)}function Gk(){ly.call(this)}function qk(){dy.call(this)}function Xk(){ao.call(this)}function Vk(){ao.call(this)}function zk(){vS.call(this)}function Wk(){my.call(this)}function Qk(){my.call(this)}function Jk(){rm.call(this)}function Yk(){rm.call(this)}function Zk(){rm.call(this)}function ny(){Ucn.call(this)}function ey(){uk.call(this)}function ty(){Wm.call(this)}function ry(){FD.call(this)}function iy(){rm.call(this)}function ay(){FD.call(this)}function cy(){rm.call(this)}function uy(){rm.call(this)}function sy(){Mo.call(this)}function oy(){sy.call(this)}function fy(){Mo.call(this)}function hy(){Fh.call(this)}function ly(){this.a=new uk}function by(){this.a=new rm}function wy(){this.a=new im}function dy(){this.a=new rm}function gy(){this.a=new vS}function vy(){this.j=new im}function py(){this.a=new Yj}function my(){this.a=new yo}function ky(){this.a=new Fu}function yy(){yy=O;Tce=new f}function My(){My=O;ase=new Ey}function Ty(){Ty=O;sse=new jy}function jy(){sb.call(this,"")}function Ey(){sb.call(this,"")}function Sy(n){xin.call(this,n)}function Py(n){xin.call(this,n)}function Cy(n){eb.call(this,n)}function Iy(n){VE.call(this,n)}function Oy(n){VE.call(this,n)}function Ay(n){Iy.call(this,n)}function Ly(n){Iy.call(this,n)}function Ny(n){Iy.call(this,n)}function $y(n){f8.call(this,n)}function Dy(n){f8.call(this,n)}function xy(n){U_.call(this,n)}function Ry(n){JE.call(this,n)}function Ky(n){nS.call(this,n)}function Fy(n){nS.call(this,n)}function _y(n){nS.call(this,n)}function By(n){fOn.call(this,n)}function Hy(n){By.call(this,n)}function Uy(n){zV.call(this,n)}function Gy(n){Uy.call(this,n)}function qy(){Nb.call(this,{})}function Xy(){Xy=O;mhe=new C}function Vy(){Vy=O;Eoe=new J$}function zy(){zy=O;_fe=new o}function Wy(){Wy=O;zfe=new M}function Qy(){Qy=O;che=new E}function Jy(n){zD();this.a=n}function Yy(n){Nsn();this.a=n}function Zy(n){oV();this.f=n}function nM(n){oV();this.f=n}function eM(n){hB();this.a=n}function tM(n){n.b=null;n.c=0}function rM(n,e){n.e=e;SFn(n,e)}function iM(n,e){n.a=e;nLn(n)}function aM(n,e,t){n.a[e.g]=t}function cM(n,e,t){aSn(t,n,e)}function uM(n,e){G_(e.i,n.n)}function sM(n,e){Sln(n).Cd(e)}function oM(n,e){n.a.ec().Mc(e)}function fM(n,e){return n.g-e.g}function hM(n,e){return n*n/e}function lM(n){return cJ(n),n}function bM(n){return cJ(n),n}function wM(n){return cJ(n),n}function dM(n){return new Lb(n)}function gM(n){return new eQ(n)}function vM(n){return cJ(n),n}function pM(n){return cJ(n),n}function mM(n){Uy.call(this,n)}function kM(n){Uy.call(this,n)}function yM(n){Uy.call(this,n)}function MM(n){zV.call(this,n)}function TM(n){Uy.call(this,n)}function jM(n){Uy.call(this,n)}function EM(n){Uy.call(this,n)}function SM(n){Uy.call(this,n)}function PM(n){Uy.call(this,n)}function CM(n){Uy.call(this,n)}function IM(n){Uy.call(this,n)}function OM(n){Uy.call(this,n)}function AM(n){Uy.call(this,n)}function LM(n){Uy.call(this,n)}function NM(n){Uy.call(this,n)}function $M(n){cJ(n);this.a=n}function DM(n){dln(n);return n}function xM(n){Yz(n,n.length)}function RM(n){return n.b==n.c}function KM(n){return!!n&&n.b}function FM(n){return!!n&&n.k}function _M(n){return!!n&&n.j}function BM(n,e,t){n.c.Ef(e,t)}function HM(n,e){n.be(e);e.ae(n)}function UM(n){wB();this.a=nQ(n)}function GM(){this.a=TK(nQ(MZn))}function qM(){throw dm(new Um)}function XM(){throw dm(new Um)}function VM(){throw dm(new Um)}function zM(){throw dm(new Um)}function WM(){throw dm(new Um)}function QM(){throw dm(new Um)}function JM(){JM=O;!!(OZ(),Qfe)}function YM(){Fw.call(this,"")}function ZM(){Fw.call(this,"")}function nT(){Fw.call(this,"")}function eT(){Fw.call(this,"")}function tT(n){kM.call(this,n)}function rT(n){kM.call(this,n)}function iT(n){jM.call(this,n)}function aT(n){Qw.call(this,n)}function cT(n){aT.call(this,n)}function uT(n){yx.call(this,n)}function sT(n){eR.call(this,n,0)}function oT(){R2.call(this,12,3)}function fT(n,e){return X0(n,e)}function hT(n,e){return Ren(n,e)}function lT(n,e){return n.a-e.a}function bT(n,e){return n.a-e.a}function wT(n,e){return n.a-e.a}function dT(n,e){return e in n.a}function gT(n){return n.a?n.b:0}function vT(n){return n.a?n.b:0}function pT(n,e,t){e.Cd(n.a[t])}function mT(n,e,t){e.Pe(n.a[t])}function kT(n,e){n.b=new uN(e)}function yT(n,e){n.b=e;return n}function MT(n,e){n.c=e;return n}function TT(n,e){n.f=e;return n}function jT(n,e){n.g=e;return n}function ET(n,e){n.a=e;return n}function ST(n,e){n.f=e;return n}function PT(n,e){n.k=e;return n}function CT(n,e){n.a=e;return n}function IT(n,e){n.e=e;return n}function OT(n,e){n.e=e;return n}function AT(n,e){n.f=e;return n}function LT(n,e){n.b=true;n.d=e}function NT(n,e){return n.b-e.b}function $T(n,e){return n.g-e.g}function DT(n,e){return n?0:e-1}function xT(n,e){return n?0:e-1}function RT(n,e){return n?e-1:0}function KT(n,e){return n.s-e.s}function FT(n,e){return e.rg(n)}function _T(n,e){n.b=e;return n}function BT(n,e){n.a=e;return n}function HT(n,e){n.c=e;return n}function UT(n,e){n.d=e;return n}function GT(n,e){n.e=e;return n}function qT(n,e){n.f=e;return n}function XT(n,e){n.a=e;return n}function VT(n,e){n.b=e;return n}function zT(n,e){n.c=e;return n}function WT(n,e){n.c=e;return n}function QT(n,e){n.b=e;return n}function JT(n,e){n.d=e;return n}function YT(n,e){n.e=e;return n}function ZT(n,e){n.f=e;return n}function nj(n,e){n.g=e;return n}function ej(n,e){n.a=e;return n}function tj(n,e){n.i=e;return n}function rj(n,e){n.j=e;return n}function ij(n,e){IIn();l2(e,n)}function aj(n,e,t){hV(n.a,e,t)}function cj(n){rB.call(this,n)}function uj(n){kvn.call(this,n)}function sj(n){CY.call(this,n)}function oj(n){CY.call(this,n)}function fj(n){_in.call(this,n)}function hj(n){VY.call(this,n)}function lj(n){VY.call(this,n)}function bj(){A$.call(this,"")}function wj(){this.a=0;this.b=0}function dj(){this.b=0;this.a=0}function gj(n,e){n.b=0;Nan(n,e)}function vj(n,e){n.k=e;return n}function pj(n,e){n.j=e;return n}function mj(n,e){n.c=e;n.b=true}function kj(){kj=O;twe=uPn()}function yj(){yj=O;X7e=xEn()}function Mj(){Mj=O;W7e=ZPn()}function Tj(){Tj=O;rtt=hcn()}function jj(){jj=O;Frt=REn()}function Ej(){Ej=O;uot=KEn()}function Sj(){Sj=O;sot=QAn()}function Pj(n){return n.e&&n.e()}function Cj(n){return n.l|n.m<<22}function Ij(n,e){return n.c._b(e)}function Oj(n,e){return zwn(n.b,e)}function Aj(n){return!n?null:n.d}function Lj(n){return!n?null:n.g}function Nj(n){return!n?null:n.i}function $j(n){jK(n);return n.o}function Dj(n,e){n.a+=e;return n}function xj(n,e){n.a+=e;return n}function Rj(n,e){n.a+=e;return n}function Kj(n,e){n.a+=e;return n}function Fj(n,e){while(n.Bd(e));}function _j(n){this.a=new wS(n)}function Bj(){throw dm(new Um)}function Hj(){throw dm(new Um)}function Uj(){throw dm(new Um)}function Gj(){throw dm(new Um)}function qj(){throw dm(new Um)}function Xj(){throw dm(new Um)}function Vj(n){this.a=new VV(n)}function zj(){this.a=new TKn(HQe)}function Wj(){this.b=new TKn(hVe)}function Qj(){this.a=new TKn(EYe)}function Jj(){this.b=new TKn(K1e)}function Yj(){this.b=new TKn(K1e)}function Zj(n){this.a=0;this.b=n}function nE(n){NQn();bYn(this,n)}function eE(n){WQ(n);return n.a}function tE(n){return n.b!=n.d.c}function rE(n,e){return n.d[e.p]}function iE(n,e){return jFn(n,e)}function aE(n,e,t){n.splice(e,t)}function cE(n,e){while(n.Re(e));}function uE(n){n.c?L_n(n):N_n(n)}function sE(){throw dm(new Um)}function oE(){throw dm(new Um)}function fE(){throw dm(new Um)}function hE(){throw dm(new Um)}function lE(){throw dm(new Um)}function bE(){throw dm(new Um)}function wE(){throw dm(new Um)}function dE(){throw dm(new Um)}function gE(){throw dm(new Um)}function vE(){throw dm(new Um)}function pE(){throw dm(new Xm)}function mE(){throw dm(new Xm)}function kE(n){this.a=new yE(n)}function yE(n){iun(this,n,gOn())}function ME(n){return!n||GQ(n)}function TE(n){return Hft[n]!=-1}function jE(){qfe!=0&&(qfe=0);Vfe=-1}function EE(){wce==null&&(wce=[])}function SE(n,e){HD.call(this,n,e)}function PE(n,e){SE.call(this,n,e)}function CE(n,e){this.a=n;this.b=e}function IE(n,e){this.a=n;this.b=e}function OE(n,e){this.a=n;this.b=e}function AE(n,e){this.a=n;this.b=e}function LE(n,e){this.a=n;this.b=e}function NE(n,e){this.a=n;this.b=e}function $E(n,e){this.a=n;this.b=e}function DE(n,e){this.e=n;this.d=e}function xE(n,e){this.b=n;this.c=e}function RE(n,e){this.b=n;this.a=e}function KE(n,e){this.b=n;this.a=e}function FE(n,e){this.b=n;this.a=e}function _E(n,e){this.b=n;this.a=e}function BE(n,e){this.a=n;this.b=e}function HE(n,e){this.a=n;this.b=e}function UE(n,e){this.a=n;this.f=e}function GE(n,e){this.g=n;this.i=e}function qE(n,e){this.f=n;this.g=e}function XE(n,e){this.b=n;this.c=e}function VE(n){GD(n.dc());this.c=n}function zE(n,e){this.a=n;this.b=e}function WE(n,e){this.a=n;this.b=e}function QE(n){this.a=bG(nQ(n),15)}function JE(n){this.a=bG(nQ(n),15)}function YE(n){this.a=bG(nQ(n),85)}function ZE(n){this.b=bG(nQ(n),85)}function nS(n){this.b=bG(nQ(n),51)}function eS(){this.q=new t.Date}function tS(n,e){this.a=n;this.b=e}function rS(n,e){return Lz(n.b,e)}function iS(n,e){return n.b.Hc(e)}function aS(n,e){return n.b.Ic(e)}function cS(n,e){return n.b.Qc(e)}function uS(n,e){return n.b.Hc(e)}function sS(n,e){return n.c.uc(e)}function oS(n,e){return bdn(n.c,e)}function fS(n,e){return n.a._b(e)}function hS(n,e){return n>e&&e0}function FP(n,e){return kwn(n,e)<0}function _P(n,e){return HX(n.a,e)}function BP(n,e){z0.call(this,n,e)}function HP(n){aQ();U_.call(this,n)}function UP(n,e){YX(n,n.length,e)}function GP(n,e){kW(n,n.length,e)}function qP(n,e){return n.a.get(e)}function XP(n,e){return Lz(n.e,e)}function VP(n){return cJ(n),false}function zP(n){this.a=bG(nQ(n),229)}function WP(n){d3.call(this,n,21)}function QP(n,e){qE.call(this,n,e)}function JP(n,e){qE.call(this,n,e)}function YP(n,e){this.b=n;this.a=e}function ZP(n,e){this.d=n;this.e=e}function nC(n,e){this.a=n;this.b=e}function eC(n,e){this.a=n;this.b=e}function tC(n,e){this.a=n;this.b=e}function rC(n,e){this.a=n;this.b=e}function iC(n,e){this.a=n;this.b=e}function aC(n,e){this.b=n;this.a=e}function cC(n,e){this.b=n;this.a=e}function uC(n,e){qE.call(this,n,e)}function sC(n,e){qE.call(this,n,e)}function oC(n,e){qE.call(this,n,e)}function fC(n,e){qE.call(this,n,e)}function hC(n,e){qE.call(this,n,e)}function lC(n,e){qE.call(this,n,e)}function bC(n,e){qE.call(this,n,e)}function wC(n,e){this.b=n;this.a=e}function dC(n,e){qE.call(this,n,e)}function gC(n,e){this.b=n;this.a=e}function vC(n,e){qE.call(this,n,e)}function pC(n,e){this.b=n;this.a=e}function mC(n,e){qE.call(this,n,e)}function kC(n,e){qE.call(this,n,e)}function yC(n,e){qE.call(this,n,e)}function MC(n,e,t){n.splice(e,0,t)}function TC(n,e,t){n.Mb(t)&&e.Cd(t)}function jC(n,e,t){e.Pe(n.a.Ye(t))}function EC(n,e,t){e.Dd(n.a.Ze(t))}function SC(n,e,t){e.Cd(n.a.Kb(t))}function PC(n,e){return Fx(n.c,e)}function CC(n,e){return Fx(n.e,e)}function IC(n,e){qE.call(this,n,e)}function OC(n,e){qE.call(this,n,e)}function AC(n,e){qE.call(this,n,e)}function LC(n,e){qE.call(this,n,e)}function NC(n,e){qE.call(this,n,e)}function $C(n,e){qE.call(this,n,e)}function DC(n,e){this.a=n;this.b=e}function xC(n,e){this.a=n;this.b=e}function RC(n,e){this.a=n;this.b=e}function KC(n,e){this.a=n;this.b=e}function FC(n,e){this.a=n;this.b=e}function _C(n,e){this.a=n;this.b=e}function BC(n,e){this.b=n;this.a=e}function HC(n,e){this.b=n;this.a=e}function UC(n,e){this.b=n;this.a=e}function GC(n,e){this.c=n;this.d=e}function qC(n,e){this.e=n;this.d=e}function XC(n,e){this.a=n;this.b=e}function VC(n,e){this.a=n;this.b=e}function zC(n,e){this.a=n;this.b=e}function WC(n,e){this.b=n;this.a=e}function QC(n,e){this.b=e;this.c=n}function JC(n,e){qE.call(this,n,e)}function YC(n,e){qE.call(this,n,e)}function ZC(n,e){qE.call(this,n,e)}function nI(n,e){qE.call(this,n,e)}function eI(n,e){qE.call(this,n,e)}function tI(n,e){qE.call(this,n,e)}function rI(n,e){qE.call(this,n,e)}function iI(n,e){qE.call(this,n,e)}function aI(n,e){qE.call(this,n,e)}function cI(n,e){qE.call(this,n,e)}function uI(n,e){qE.call(this,n,e)}function sI(n,e){qE.call(this,n,e)}function oI(n,e){qE.call(this,n,e)}function fI(n,e){qE.call(this,n,e)}function hI(n,e){qE.call(this,n,e)}function lI(n,e){qE.call(this,n,e)}function bI(n,e){qE.call(this,n,e)}function wI(n,e){qE.call(this,n,e)}function dI(n,e){qE.call(this,n,e)}function gI(n,e){qE.call(this,n,e)}function vI(n,e){qE.call(this,n,e)}function pI(n,e){qE.call(this,n,e)}function mI(n,e){qE.call(this,n,e)}function kI(n,e){qE.call(this,n,e)}function yI(n,e){qE.call(this,n,e)}function MI(n,e){qE.call(this,n,e)}function TI(n,e){qE.call(this,n,e)}function jI(n,e){qE.call(this,n,e)}function EI(n,e){qE.call(this,n,e)}function SI(n,e){qE.call(this,n,e)}function PI(n,e){qE.call(this,n,e)}function CI(n,e){qE.call(this,n,e)}function II(n,e){qE.call(this,n,e)}function OI(n,e){this.b=n;this.a=e}function AI(n,e){qE.call(this,n,e)}function LI(n,e){this.a=n;this.b=e}function NI(n,e){this.a=n;this.b=e}function $I(n,e){this.a=n;this.b=e}function DI(n,e){qE.call(this,n,e)}function xI(n,e){qE.call(this,n,e)}function RI(n,e){this.a=n;this.b=e}function KI(n,e){LU();return e!=n}function FI(n){PK(n.a);return n.b}function _I(n){U$n(n,n.c);return n}function BI(){kj();return new twe}function HI(){zB();this.a=new BF}function UI(){lFn();this.a=new uk}function GI(){u2();this.b=new uk}function qI(n,e){this.b=n;this.d=e}function XI(n,e){this.a=n;this.b=e}function VI(n,e){this.a=n;this.b=e}function zI(n,e){this.a=n;this.b=e}function WI(n,e){this.b=n;this.a=e}function QI(n,e){qE.call(this,n,e)}function JI(n,e){qE.call(this,n,e)}function YI(n,e){qE.call(this,n,e)}function ZI(n,e){qE.call(this,n,e)}function nO(n,e){qE.call(this,n,e)}function eO(n,e){qE.call(this,n,e)}function tO(n,e){qE.call(this,n,e)}function rO(n,e){qE.call(this,n,e)}function iO(n,e){qE.call(this,n,e)}function aO(n,e){qE.call(this,n,e)}function cO(n,e){qE.call(this,n,e)}function uO(n,e){qE.call(this,n,e)}function sO(n,e){qE.call(this,n,e)}function oO(n,e){qE.call(this,n,e)}function fO(n,e){qE.call(this,n,e)}function hO(n,e){qE.call(this,n,e)}function lO(n,e){qE.call(this,n,e)}function bO(n,e){qE.call(this,n,e)}function wO(n,e){qE.call(this,n,e)}function dO(n,e){qE.call(this,n,e)}function gO(n,e){qE.call(this,n,e)}function vO(n,e){qE.call(this,n,e)}function pO(n,e){qE.call(this,n,e)}function mO(n,e){qE.call(this,n,e)}function kO(n,e){this.b=n;this.a=e}function yO(n,e){this.b=n;this.a=e}function MO(n,e){this.b=n;this.a=e}function TO(n,e){this.b=n;this.a=e}function jO(n,e){this.a=n;this.b=e}function EO(n,e){this.a=n;this.b=e}function SO(n,e){this.a=n;this.b=e}function PO(n,e){this.a=n;this.b=e}function CO(n,e){qE.call(this,n,e)}function IO(n,e){qE.call(this,n,e)}function OO(n,e){qE.call(this,n,e)}function AO(n,e){qE.call(this,n,e)}function LO(n,e){qE.call(this,n,e)}function NO(n,e){qE.call(this,n,e)}function $O(n,e){qE.call(this,n,e)}function DO(n,e){qE.call(this,n,e)}function xO(n,e){qE.call(this,n,e)}function RO(n,e){qE.call(this,n,e)}function KO(n,e){qE.call(this,n,e)}function FO(n,e){qE.call(this,n,e)}function _O(n,e){qE.call(this,n,e)}function BO(n,e){qE.call(this,n,e)}function HO(n,e){qE.call(this,n,e)}function UO(n,e){qE.call(this,n,e)}function GO(n,e){qE.call(this,n,e)}function qO(n,e){qE.call(this,n,e)}function XO(n,e){qE.call(this,n,e)}function VO(n,e){qE.call(this,n,e)}function zO(n,e){this.a=n;this.b=e}function WO(n,e){this.a=n;this.b=e}function QO(n,e){this.a=n;this.b=e}function JO(n,e){this.a=n;this.b=e}function YO(n,e){this.a=n;this.b=e}function ZO(n,e){this.a=n;this.b=e}function nA(n,e){this.a=n;this.b=e}function eA(n,e){this.a=n;this.b=e}function tA(n,e){this.a=n;this.b=e}function rA(n,e){this.a=n;this.b=e}function iA(n,e){this.a=n;this.b=e}function aA(n,e){this.a=n;this.b=e}function cA(n,e){this.a=n;this.b=e}function uA(n,e){this.b=n;this.a=e}function sA(n,e){this.b=n;this.a=e}function oA(n,e){this.b=n;this.a=e}function fA(n,e){this.b=n;this.a=e}function hA(n,e){this.a=n;this.b=e}function lA(n,e){this.a=n;this.b=e}function bA(n,e){qE.call(this,n,e)}function wA(n,e){this.a=n;this.b=e}function dA(n,e){this.a=n;this.b=e}function gA(n,e){qE.call(this,n,e)}function vA(n,e){this.f=n;this.c=e}function pA(n,e){return Fx(n.g,e)}function mA(n,e){return Fx(e.b,n)}function kA(n,e){return Spn(n.a,e)}function yA(n,e){return-n.b.af(e)}function MA(n,e){!!n&&jJ(Zet,n,e)}function TA(n,e){n.i=null;vun(n,e)}function jA(n,e,t){PSn(e,IAn(n,t))}function EA(n,e,t){PSn(e,IAn(n,t))}function SA(n,e){XRn(n.a,bG(e,58))}function PA(n,e){htn(n.a,bG(e,12))}function CA(n,e){this.a=n;this.b=e}function IA(n,e){this.a=n;this.b=e}function OA(n,e){this.a=n;this.b=e}function AA(n,e){this.a=n;this.b=e}function LA(n,e){this.a=n;this.b=e}function NA(n,e){this.d=n;this.b=e}function $A(n,e){this.e=n;this.a=e}function DA(n,e){this.b=n;this.c=e}function xA(n,e){this.i=n;this.g=e}function RA(n,e){this.d=n;this.e=e}function KA(n,e){$rn(new _D(n),e)}function FA(n){return Epn(n.c,n.b)}function _A(n){return!n?null:n.md()}function BA(n){return n==null?null:n}function HA(n){return typeof n===gZn}function UA(n){return typeof n===wZn}function GA(n){return typeof n===dZn}function qA(n,e){return kwn(n,e)==0}function XA(n,e){return kwn(n,e)>=0}function VA(n,e){return kwn(n,e)!=0}function zA(n,e){return ion(n.Kc(),e)}function WA(n,e){return n.Rd().Xb(e)}function QA(n){pvn(n);return n.d.gc()}function JA(n){Gq(n==null);return n}function YA(n,e){n.a+=""+e;return n}function ZA(n,e){n.a+=""+e;return n}function nL(n,e){n.a+=""+e;return n}function eL(n,e){n.a+=""+e;return n}function tL(n,e){n.a+=""+e;return n}function rL(n,e){return n.a+=""+e,n}function iL(n){return""+(cJ(n),n)}function aL(n){Fz(this);Bsn(this,n)}function cL(){t2();uV.call(this)}function uL(n,e){XV.call(this,n,e)}function sL(n,e){XV.call(this,n,e)}function oL(n,e){XV.call(this,n,e)}function fL(n,e){w8(n,e,n.c.b,n.c)}function hL(n,e){w8(n,e,n.a,n.a.a)}function lL(n){b3(n,0);return null}function bL(){this.b=0;this.a=false}function wL(){this.b=0;this.a=false}function dL(){this.b=new wS(lin(12))}function gL(){gL=O;nme=xbn(Kkn())}function vL(){vL=O;hCe=xbn(pKn())}function pL(){pL=O;hze=xbn(bon())}function mL(){mL=O;$m();the=new rm}function kL(n){n.a=0;n.b=0;return n}function yL(n,e){n.a=e.g+1;return n}function ML(n,e){m_.call(this,n,e)}function TL(n,e){bF.call(this,n,e)}function jL(n,e){xA.call(this,n,e)}function EL(n,e){Yx.call(this,n,e)}function SL(n,e){ifn.call(this,n,e)}function PL(n,e){CP();jJ(Qtt,n,e)}function CL(n,e){n.q.setTime(n6(e))}function IL(n){t.clearTimeout(n)}function OL(n){return nQ(n),new sN(n)}function AL(n,e){return BA(n)===BA(e)}function LL(n,e){return n.a.a.a.cc(e)}function NL(n,e){return o1(n.a,0,e)}function $L(n){return IW(bG(n,74))}function DL(n){return c0((cJ(n),n))}function xL(n){return c0((cJ(n),n))}function RL(n){return M$(n.l,n.m,n.h)}function KL(n,e){return k$(n.a,e.a)}function FL(n,e){return oW(n.a,e.a)}function _L(n,e){return bgn(n.a,e.a)}function BL(n,e){return n.indexOf(e)}function HL(n,e){return n.j[e.p]==2}function UL(n,e){return n==e?0:n?1:-1}function GL(n){return n<10?"0"+n:""+n}function qL(n){return typeof n===dZn}function XL(n){return n==DTe||n==KTe}function VL(n){return n==DTe||n==xTe}function zL(n,e){return k$(n.g,e.g)}function WL(n){return Ctn(n.b.b,n,0)}function QL(){vX.call(this,0,0,0,0)}function JL(){cd.call(this,new b8)}function YL(n,e){Ken(n,0,n.length,e)}function ZL(n,e){ED(n.a,e);return e}function nN(n,e){WB();return e.a+=n}function eN(n,e){WB();return e.a+=n}function tN(n,e){WB();return e.c+=n}function rN(n,e){ED(n.c,e);return n}function iN(n,e){yon(n.a,e);return n}function aN(n){this.a=BI();this.b=n}function cN(n){this.a=BI();this.b=n}function uN(n){this.a=n.a;this.b=n.b}function sN(n){this.a=n;Gh.call(this)}function oN(n){this.a=n;Gh.call(this)}function fN(){yY.call(this,0,0,0,0)}function hN(n){return yon(new mJ,n)}function lN(n){return BJ(bG(n,123))}function bN(n){return n.vh()&&n.wh()}function wN(n){return n!=M8e&&n!=T8e}function dN(n){return n==o5e||n==f5e}function gN(n){return n==l5e||n==s5e}function vN(n){return n==_Be||n==FBe}function pN(n,e){return k$(n.g,e.g)}function mN(n,e){return new ifn(e,n)}function kN(n,e){return new ifn(e,n)}function yN(n){return aG(n.b.Kc(),n.a)}function MN(n,e){wbn(n,e);Dan(n,n.D)}function TN(n,e,t){Aan(n,e);Man(n,t)}function jN(n,e,t){Ean(n,e);jan(n,t)}function EN(n,e,t){San(n,e);Pan(n,t)}function SN(n,e,t){Tan(n,e);Ian(n,t)}function PN(n,e,t){Can(n,e);Oan(n,t)}function CN(n,e,t){xK.call(this,n,e,t)}function IN(n){vA.call(this,n,true)}function ON(){QP.call(this,"Tail",3)}function AN(){QP.call(this,"Head",1)}function LN(n){fHn();Xsn.call(this,n)}function NN(n){vX.call(this,n,n,n,n)}function $N(n){n.c=$nn(kce,jZn,1,0,5,1)}function DN(n){n.b&&wXn(n);return n.a}function xN(n){n.b&&wXn(n);return n.c}function RN(n,e){if(Sde){return}n.b=e}function KN(n,e){return n[n.length]=e}function FN(n,e){return n[n.length]=e}function _N(n,e){return Oin(e,d0(n))}function BN(n,e){return Oin(e,d0(n))}function HN(n,e){return Ecn(zW(n.d),e)}function UN(n,e){return Ecn(zW(n.g),e)}function GN(n,e){return Ecn(zW(n.j),e)}function qN(n,e){bF.call(this,n.b,e)}function XN(n,e){cen(Y5(n.a),j2(e))}function VN(n,e){cen(xtn(n.a),E2(e))}function zN(n,e,t){EN(t,t.i+n,t.j+e)}function WN(n,e,t){bQ(n.c[e.g],e.g,t)}function QN(n,e,t){bG(n.c,71).Gi(e,t)}function JN(n,e,t){bQ(n,e,t);return t}function YN(n){Lin(n.Sf(),new Dd(n))}function ZN(n){return n!=null?Vun(n):0}function n$(n){return n==null?0:Vun(n)}function e$(n){eZn();em.call(this,n)}function t$(n){this.a=n;nG.call(this,n)}function r$(){r$=O;t.Math.log(2)}function i$(){i$=O;Fat=(EP(),lnt)}function a$(){a$=O;Vqe=new ovn(j5e)}function c$(){c$=O;new u$;new im}function u$(){new rm;new rm;new rm}function s$(){throw dm(new CM(sce))}function o$(){throw dm(new CM(sce))}function f$(){throw dm(new CM(oce))}function h$(){throw dm(new CM(oce))}function l$(n){this.a=n;ZE.call(this,n)}function b$(n){this.a=n;ZE.call(this,n)}function w$(n,e){iQ();this.a=n;this.b=e}function d$(n,e){nQ(e);bY(n).Jc(new p)}function g$(n,e){zX(n.c,n.c.length,e)}function v$(n){return n.ae?1:0}function y$(n,e){return kwn(n,e)>0?n:e}function M$(n,e,t){return{l:n,m:e,h:t}}function T$(n,e){n.a!=null&&PA(e,n.a)}function j$(n){f2(n,null);b2(n,null)}function E$(n,e,t){return jJ(n.g,t,e)}function S$(n,e,t){return hmn(e,t,n.c)}function P$(n,e,t){return jJ(n.k,t,e)}function C$(n,e,t){yWn(n,e,t);return t}function I$(n,e){a2();return e.n.b+=n}function O$(n){VZ.call(this);this.b=n}function A$(n){RF.call(this);this.a=n}function L$(){QP.call(this,"Range",2)}function N$(n){this.b=n;this.a=new im}function $$(n){this.b=new ce;this.a=n}function D$(n){n.a=new H;n.c=new H}function x$(n){n.a=new rm;n.d=new rm}function R$(n){w2(n,null);d2(n,null)}function K$(n,e){return EWn(n.a,e,null)}function F$(n,e){return jJ(n.a,e.a,e)}function _$(n){return new PO(n.a,n.b)}function B$(n){return new PO(n.c,n.d)}function H$(n){return new PO(n.c,n.d)}function U$(n,e){return ozn(n.c,n.b,e)}function G$(n,e){return n!=null&&Oyn(n,e)}function q$(n,e){return rhn(n.Kc(),e)!=-1}function X$(n){return n.Ob()?n.Pb():null}function V$(n){this.b=(dZ(),new Zw(n))}function z$(n){this.a=n;rm.call(this)}function W$(){Yx.call(this,null,null)}function Q$(){Zx.call(this,null,null)}function J$(){qE.call(this,"INSTANCE",0)}function Y$(){GEn();this.a=new TKn(sTe)}function Z$(n){return Tmn(n,0,n.length)}function nD(n,e){return new ux(n.Kc(),e)}function eD(n,e){return n.a.Bc(e)!=null}function tD(n,e){NVn(n);n.Gc(bG(e,15))}function rD(n,e,t){n.c.bd(e,bG(t,136))}function iD(n,e,t){n.c.Ui(e,bG(t,136))}function aD(n,e){if(n.c){fq(e);X1(e)}}function cD(n,e){n.q.setHours(e);$qn(n,e)}function uD(n,e){UR(e,n.a.a.a,n.a.a.b)}function sD(n,e,t,r){bQ(n.a[e.g],t.g,r)}function oD(n,e,t){return n.a[e.g][t.g]}function fD(n,e){return n.e[e.c.p][e.p]}function hD(n,e){return n.c[e.c.p][e.p]}function lD(n,e){return n.a[e.c.p][e.p]}function bD(n,e){return n.j[e.p]=lRn(e)}function wD(n,e){return n.a.Bc(e)!=null}function dD(n,e){return bM(MK(e.a))<=n}function gD(n,e){return bM(MK(e.a))>=n}function vD(n,e){return o7(n.f,e.Pg())}function pD(n,e){return n.a*e.a+n.b*e.b}function mD(n,e){return n.a0?e/(n*n):e*100}function IR(n,e){return n>0?e*e/n:e*e*100}function OR(n,e){return bG(hrn(n.a,e),34)}function AR(n,e){IIn();return zNn(n,e.e,e)}function LR(n,e,t){iP();return t.Mg(n,e)}function NR(n){can();return n.e.a+n.f.a/2}function $R(n,e,t){can();return t.e.a-n*e}function DR(n){can();return n.e.b+n.f.b/2}function xR(n,e,t){can();return t.e.b-n*e}function RR(n){n.d=new pR(n);n.e=new rm}function KR(){this.a=new U1;this.b=new U1}function FR(n){this.c=n;this.a=1;this.b=1}function _R(n){hYn();km(this);this.Ff(n)}function BR(n,e,t){Aen();n.pf(e)&&t.Cd(n)}function HR(n,e,t){return ED(e,Bvn(n,t))}function UR(n,e,t){n.a+=e;n.b+=t;return n}function GR(n,e,t){n.a*=e;n.b*=t;return n}function qR(n,e){n.a=e.a;n.b=e.b;return n}function XR(n){n.a=-n.a;n.b=-n.b;return n}function VR(n,e,t){n.a-=e;n.b-=t;return n}function zR(n){vS.call(this);kcn(this,n)}function WR(){qE.call(this,"GROW_TREE",0)}function QR(){qE.call(this,"POLYOMINO",0)}function JR(n,e,t){ven.call(this,n,e,t,2)}function YR(n,e,t){Fdn(Y5(n.a),e,j2(t))}function ZR(n,e){IP();Yx.call(this,n,e)}function nK(n,e){OP();Zx.call(this,n,e)}function eK(n,e){OP();nK.call(this,n,e)}function tK(n,e){OP();Zx.call(this,n,e)}function rK(n,e){return n.c.Fc(bG(e,136))}function iK(n,e,t){Fdn(xtn(n.a),e,E2(t))}function aK(n){this.c=n;San(n,0);Pan(n,0)}function cK(n,e){i$();DX.call(this,n,e)}function uK(n,e){i$();cK.call(this,n,e)}function sK(n,e){i$();cK.call(this,n,e)}function oK(n,e){i$();DX.call(this,n,e)}function fK(n,e){i$();sK.call(this,n,e)}function hK(n,e){i$();oK.call(this,n,e)}function lK(n,e){i$();DX.call(this,n,e)}function bK(n,e,t){return e.zl(n.e,n.c,t)}function wK(n,e,t){return e.Al(n.e,n.c,t)}function dK(n,e,t){return eVn(Rtn(n,e),t)}function gK(n,e){return Twn(n.e,bG(e,54))}function vK(n){return n==null?null:xQn(n)}function pK(n){return n==null?null:TOn(n)}function mK(n){return n==null?null:fvn(n)}function kK(n){return n==null?null:fvn(n)}function yK(n){Gq(n==null||UA(n));return n}function MK(n){Gq(n==null||GA(n));return n}function TK(n){Gq(n==null||HA(n));return n}function jK(n){if(n.o!=null){return}hxn(n)}function EK(n){if(!n){throw dm(new _m)}}function SK(n){if(!n){throw dm(new Km)}}function PK(n){if(!n){throw dm(new Xm)}}function CK(n){if(!n){throw dm(new Bm)}}function IK(n){if(!n){throw dm(new Gm)}}function OK(){OK=O;Gtt=new Wk;new Qk}function AK(){AK=O;FQe=new Np("root")}function LK(){Ucn.call(this);this.Bb|=S0n}function NK(n,e){this.d=n;Nw(this);this.b=e}function $K(n,e){Gnn.call(this,n);this.a=e}function DK(n,e){Gnn.call(this,n);this.a=e}function xK(n,e,t){x7.call(this,n,e,t,null)}function RK(n,e,t){x7.call(this,n,e,t,null)}function KK(n,e){this.c=n;DE.call(this,n,e)}function FK(n,e){this.a=n;KK.call(this,n,e)}function _K(n){this.q=new t.Date(n6(n))}function BK(n){if(n>8){return 0}return n+1}function HK(n,e){if(Sde){return}ED(n.a,e)}function UK(n,e){nP();return Ion(e.d.i,n)}function GK(n,e){Lsn();return new lHn(e,n)}function qK(n,e,t){return n.Ne(e,t)<=0?t:e}function XK(n,e,t){return n.Ne(e,t)<=0?e:t}function VK(n,e){return bG(hrn(n.b,e),143)}function zK(n,e){return bG(hrn(n.c,e),233)}function WK(n){return bG(Yq(n.a,n.b),294)}function QK(n){return new PO(n.c,n.d+n.a)}function JK(n){return(cJ(n),n)?1231:1237}function YK(n){return a2(),vN(bG(n,203))}function ZK(){ZK=O;ame=ygn((emn(),b9e))}function nF(n,e){e.a?nDn(n,e):wD(n.a,e.b)}function eF(n,e,t){++n.j;n.tj();xnn(n,e,t)}function tF(n,e,t){++n.j;n.qj(e,n.Zi(e,t))}function rF(n,e,t){var r;r=n.fd(e);r.Rb(t)}function iF(n,e,t){t=FUn(n,e,6,t);return t}function aF(n,e,t){t=FUn(n,e,3,t);return t}function cF(n,e,t){t=FUn(n,e,9,t);return t}function uF(n,e){i1(e,z2n);n.f=e;return n}function sF(n,e){return(e&pZn)%n.d.length}function oF(n,e,t){return gXn(n.c,n.b,e,t)}function fF(n,e){this.c=n;_in.call(this,e)}function hF(n,e){this.a=n;Bp.call(this,e)}function lF(n,e){this.a=n;Bp.call(this,e)}function bF(n,e){Np.call(this,n);this.a=e}function wF(n,e){Xp.call(this,n);this.a=e}function dF(n,e){Xp.call(this,n);this.a=e}function gF(n){wpn.call(this,0,0);this.f=n}function vF(n,e,t){n.a+=Tmn(e,0,t);return n}function pF(n){!n.a&&(n.a=new P);return n.a}function mF(n,e){var t;t=n.e;n.e=e;return t}function kF(n,e){var t;t=e;return!!n.Fe(t)}function yF(n,e){Qx();return n==e?0:n?1:-1}function MF(n,e){n.a.bd(n.b,e);++n.b;n.c=-1}function TF(n){n.b?TF(n.b):n.f.c.zc(n.e,n.d)}function jF(n){Fz(n.e);n.d.b=n.d;n.d.a=n.d}function EF(n,e,t){jS();Db(n,e.Ve(n.a,t))}function SF(n,e,t){return zz(n,bG(e,22),t)}function PF(n,e){return hT(new Array(e),n)}function CF(n){return MV(_V(n,32))^MV(n)}function IF(n){return String.fromCharCode(n)}function OF(n){return n==null?null:n.message}function AF(n,e,t){return n.apply(e,t);var r}function LF(n,e){var t;t=n[H0n];t.call(n,e)}function NF(n,e){var t;t=n[H0n];t.call(n,e)}function $F(n,e){nP();return!Ion(e.d.i,n)}function DF(n,e,t,r){vX.call(this,n,e,t,r)}function xF(){VF.call(this);this.a=new wj}function RF(){this.n=new wj;this.o=new wj}function KF(){this.b=new wj;this.c=new im}function FF(){this.a=new im;this.b=new im}function _F(){this.a=new ve;this.b=new Qm}function BF(){this.b=new b8;this.a=new b8}function HF(){this.b=new uk;this.a=new uk}function UF(){this.b=new rm;this.a=new rm}function GF(){this.b=new Wj;this.a=new Pc}function qF(){this.a=new dl;this.b=new la}function XF(){this.a=new im;this.d=new im}function VF(){this.n=new _k;this.i=new fN}function zF(n){this.a=(Tcn(n,d1n),new H7(n))}function WF(n){this.a=(Tcn(n,d1n),new H7(n))}function QF(n){return n<100?null:new fj(n)}function JF(n,e){return n.n.a=(cJ(e),e)+10}function YF(n,e){return n.n.a=(cJ(e),e)+10}function ZF(n,e){return e==n||wSn(TRn(e),n)}function n_(n,e){return jJ(n.a,e,"")==null}function e_(n,e){var t;t=e.qi(n.a);return t}function t_(n,e){n.a+=e.a;n.b+=e.b;return n}function r_(n,e){n.a-=e.a;n.b-=e.b;return n}function i_(n){Jm(n.j.c,0);n.a=-1;return n}function a_(n,e,t){t=FUn(n,e,11,t);return t}function c_(n,e,t){t!=null&&Jcn(e,yTn(n,t))}function u_(n,e,t){t!=null&&Ycn(e,yTn(n,t))}function s_(n,e,t,r){gz.call(this,n,e,t,r)}function o_(n,e,t,r){gz.call(this,n,e,t,r)}function f_(n,e,t,r){o_.call(this,n,e,t,r)}function h_(n,e,t,r){mz.call(this,n,e,t,r)}function l_(n,e,t,r){mz.call(this,n,e,t,r)}function b_(n,e,t,r){mz.call(this,n,e,t,r)}function w_(n,e,t,r){l_.call(this,n,e,t,r)}function d_(n,e,t,r){l_.call(this,n,e,t,r)}function g_(n,e,t,r){b_.call(this,n,e,t,r)}function v_(n,e,t,r){d_.call(this,n,e,t,r)}function p_(n,e,t,r){Ez.call(this,n,e,t,r)}function m_(n,e){kM.call(this,_re+n+Xte+e)}function k_(n,e){return n.jk().wi().ri(n,e)}function y_(n,e){return n.jk().wi().ti(n,e)}function M_(n,e){return cJ(n),BA(n)===BA(e)}function T_(n,e){return cJ(n),BA(n)===BA(e)}function j_(n,e){return n.b.Bd(new eC(n,e))}function E_(n,e){return n.b.Bd(new tC(n,e))}function S_(n,e){return n.b.Bd(new rC(n,e))}function P_(n,e){return n.e=bG(n.d.Kb(e),159)}function C_(n,e,t){return n.lastIndexOf(e,t)}function I_(n,e,t){return bgn(n[e.a],n[t.a])}function O_(n,e){return Ehn(e,(IYn(),YKe),n)}function A_(n,e){return k$(e.a.d.p,n.a.d.p)}function L_(n,e){return k$(n.a.d.p,e.a.d.p)}function N_(n,e){return bgn(n.c-n.s,e.c-e.s)}function $_(n,e){return bgn(n.b.e.a,e.b.e.a)}function D_(n,e){return bgn(n.c.e.a,e.c.e.a)}function x_(n){return!n.c?-1:Ctn(n.c.a,n,0)}function R_(n){return n==p8e||n==k8e||n==m8e}function K_(n,e){this.c=n;eW.call(this,n,e)}function F_(n,e,t){this.a=n;eR.call(this,e,t)}function __(n){this.c=n;oL.call(this,JZn,0)}function B_(n,e,t){this.c=e;this.b=t;this.a=n}function H_(n){LU();this.d=n;this.a=new KD}function U_(n){wB();this.a=(dZ(),new aT(n))}function G_(n,e){dN(n.f)?txn(n,e):mCn(n,e)}function q_(n,e){wG.call(this,n,n.length,e)}function X_(n,e){if(Sde){return}!!e&&(n.d=e)}function V_(n,e){return G$(e,15)&&W_n(n.c,e)}function z_(n,e,t){return bG(n.c,71).Wk(e,t)}function W_(n,e,t){return bG(n.c,71).Xk(e,t)}function Q_(n,e,t){return bK(n,bG(e,343),t)}function J_(n,e,t){return wK(n,bG(e,343),t)}function Y_(n,e,t){return SPn(n,bG(e,343),t)}function Z_(n,e,t){return GCn(n,bG(e,343),t)}function nB(n,e){return e==null?null:Jwn(n.b,e)}function eB(n){return GA(n)?(cJ(n),n):n.ue()}function tB(n){return!isNaN(n)&&!isFinite(n)}function rB(n){D$(this);XY(this);esn(this,n)}function iB(n){$N(this);kG(this.c,0,n.Pc())}function aB(n,e,t){this.a=n;this.b=e;this.c=t}function cB(n,e,t){this.a=n;this.b=e;this.c=t}function uB(n,e,t){this.d=n;this.b=t;this.a=e}function sB(n){this.a=n;pS();Xon(Date.now())}function oB(n){RQ(n.a);Rnn(n.c,n.b);n.b=null}function fB(){fB=O;wwe=new U;dwe=new G}function hB(){hB=O;jtt=$nn(kce,jZn,1,0,5,1)}function lB(){lB=O;bit=$nn(kce,jZn,1,0,5,1)}function bB(){bB=O;vit=$nn(kce,jZn,1,0,5,1)}function wB(){wB=O;new Im((dZ(),dZ(),lbe))}function dB(n){Hen();return Gan((Ben(),hde),n)}function gB(n){Sbn();return Gan((pnn(),Dde),n)}function vB(n){qkn();return Gan((E8(),yve),n)}function pB(n){Jrn();return Gan((S8(),Eve),n)}function mB(n){nBn();return Gan((bfn(),qve),n)}function kB(n){ran();return Gan((gnn(),upe),n)}function yB(n){Uen();return Gan((dnn(),gpe),n)}function MB(n){rrn();return Gan((vnn(),Ppe),n)}function TB(n){tZn();return Gan((gL(),nme),n)}function jB(n){ufn();return Gan((qen(),kme),n)}function EB(n){jyn();return Gan((Ven(),Xme),n)}function SB(n){Tyn();return Gan((Xen(),jke),n)}function PB(n){XS();return Gan((o6(),Oke),n)}function CB(n){Yrn();return Gan((P8(),xye),n)}function IB(n){trn();return Gan((mnn(),GMe),n)}function OB(n){bIn();return Gan((Frn(),oTe),n)}function AB(n){Jfn();return Gan((Wen(),_Te),n)}function LB(n){zmn();return Gan((zen(),bje),n)}function NB(n,e){if(!n){throw dm(new jM(e))}}function $B(n){if(!n){throw dm(new EM(SZn))}}function DB(n,e){if(n!=e){throw dm(new Gm)}}function xB(n,e,t){this.a=n;this.b=e;this.c=t}function RB(n,e,t){this.a=n;this.b=e;this.c=t}function KB(n,e,t){this.a=n;this.b=e;this.c=t}function FB(n,e,t){this.b=n;this.a=e;this.c=t}function _B(n,e,t){this.b=n;this.c=e;this.a=t}function BB(n,e,t){this.a=n;this.b=e;this.c=t}function HB(n,e,t){this.e=e;this.b=n;this.d=t}function UB(n,e,t){this.b=n;this.a=e;this.c=t}function GB(n,e,t){jS();n.a.Yd(e,t);return e}function qB(n){var e;e=new Sn;e.e=n;return e}function XB(n){var e;e=new Mk;e.b=n;return e}function VB(){VB=O;_Se=new Ft;BSe=new _t}function zB(){zB=O;qCe=new br;GCe=new wr}function WB(){WB=O;$Oe=new Ti;DOe=new ji}function QB(n){yun();return Gan((Q7(),VAe),n)}function JB(n){YYn();return Gan((vL(),hCe),n)}function YB(n){Wfn();return Gan((Jen(),_Ce),n)}function ZB(n){Qfn();return Gan((Qen(),EAe),n)}function nH(n){yPn();return Gan((_rn(),RAe),n)}function eH(n){d_n();return Gan((lon(),gLe),n)}function tH(n){jAn();return Gan((uan(),wNe),n)}function rH(n){V7();return Gan(($8(),pNe),n)}function iH(n){Icn();return Gan((z7(),TNe),n)}function aH(n){ocn();return Gan((W7(),CNe),n)}function cH(n){Emn();return Gan((Brn(),DNe),n)}function uH(n){Zrn();return Gan((O8(),FNe),n)}function sH(n){HIn();return Gan((fan(),p$e),n)}function oH(n){o_n();return Gan((Ohn(),O$e),n)}function fH(n){sfn();return Gan((Y7(),D$e),n)}function hH(n){irn();return Gan((Z7(),_$e),n)}function lH(n){r5();return Gan((I8(),G$e),n)}function bH(n){OSn();return Gan((oan(),f$e),n)}function wH(n){Lhn();return Gan((J7(),GNe),n)}function dH(n){cOn();return Gan((san(),YNe),n)}function gH(n){ntn();return Gan((A8(),t$e),n)}function vH(n){Wvn();return Gan((Urn(),exe),n)}function pH(n){PKn();return Gan((ffn(),NBe),n)}function mH(n){Nwn();return Gan((nnn(),KBe),n)}function kH(n){rMn();return Gan((Yen(),GBe),n)}function yH(n){Myn();return Gan((Hrn(),JBe),n)}function MH(n){CHn();return Gan((Ahn(),oHe),n)}function TH(n){Smn();return Gan((Zen(),dHe),n)}function jH(n){arn();return Gan((L8(),mHe),n)}function EH(n){fcn();return Gan((rnn(),jHe),n)}function SH(n){son();return Gan((enn(),IHe),n)}function PH(n){Aln();return Gan((tnn(),$He),n)}function CH(n){Ebn();return Gan((inn(),_He),n)}function IH(n){scn();return Gan((ann(),qHe),n)}function OH(n){Yfn();return Gan((cnn(),QHe),n)}function AH(n){ucn();return Gan((wnn(),YUe),n)}function LH(n){i5();return Gan((N8(),AGe),n)}function NH(n){p0();return Gan((R8(),Oqe),n)}function $H(n){m0();return Gan((K8(),$qe),n)}function DH(n){q7();return Gan((F8(),TXe),n)}function xH(n){v0();return Gan((_8(),JXe),n)}function RH(n){Njn();return Gan((wtn(),lVe),n)}function KH(n){DHn();return Gan((pL(),hze),n)}function FH(n){Lln();return Gan((unn(),Sze),n)}function _H(n){Tbn();return Gan((btn(),WWe),n)}function BH(n){s3();return Gan((D8(),ZWe),n)}function HH(n){Mun();return Gan((x8(),UQe),n)}function UH(n){YPn();return Gan((Grn(),nJe),n)}function GH(n){jbn();return Gan((snn(),pJe),n)}function qH(n){Len();return Gan((B8(),bJe),n)}function XH(n){kTn();return Gan((ltn(),oYe),n)}function VH(n){uon();return Gan((onn(),wYe),n)}function zH(n){tmn();return Gan((fnn(),SYe),n)}function WH(n){iMn();return Gan((hnn(),$Ye),n)}function QH(n){Xgn();return Gan((lnn(),YYe),n)}function JH(n){h9();return Gan((H8(),ZZe),n)}function YH(n){xsn();return Gan((C8(),ASe),n)}function ZH(n){YIn();return Gan((han(),cEe),n)}function nU(n){ktn();return Gan((bnn(),c1e),n)}function eU(n){ofn();return Gan((U8(),w1e),n)}function tU(n){qRn();return Gan((qrn(),E1e),n)}function rU(n){aP();return Gan((F6(),q1e),n)}function iU(n){Hdn();return Gan((ynn(),F1e),n)}function aU(n){cP();return Gan((_6(),z1e),n)}function cU(n){X7();return Gan((G8(),Y1e),n)}function uU(n){MOn();return Gan((Xrn(),a0e),n)}function sU(n){uP();return Gan((B6(),V0e),n)}function oU(n){Zfn();return Gan((q8(),J0e),n)}function fU(n){Hkn();return Gan((zrn(),y3e),n)}function hU(n){vAn();return Gan((fon(),A3e),n)}function lU(n){aMn();return Gan((lan(),G3e),n)}function bU(n){iPn();return Gan((ban(),l4e),n)}function wU(n){Bdn();return Gan((Vrn(),w5e),n)}function dU(n){ian();return Gan((Mnn(),m5e),n)}function gU(n){qgn();return Gan((dtn(),E5e),n)}function vU(n){HCn();return Gan((wan(),N5e),n)}function pU(n){Dwn();return Gan((knn(),V5e),n)}function mU(n){xjn();return Gan((gtn(),Z5e),n)}function kU(n){ZDn();return Gan((lfn(),f8e),n)}function yU(n){Zkn();return Gan((Wrn(),v8e),n)}function MU(n){FPn();return Gan((dan(),E8e),n)}function TU(n){uNn();return Gan((gan(),N8e),n)}function jU(n){UQn();return Gan((Qrn(),t9e),n)}function EU(n){emn();return Gan((vtn(),d9e),n)}function SU(n){hUn();return Gan((hfn(),S9e),n)}function PU(n){$wn();return Gan((Tnn(),A9e),n)}function CU(n,e){return(cJ(n),n)+(cJ(e),e)}function IU(n){NU();return Gan((X8(),R9e),n)}function OU(n){Qvn();return Gan((ptn(),V9e),n)}function AU(n){Oln();return Gan((mtn(),k7e),n)}function LU(){LU=O;bGe=(UQn(),n9e);wGe=$8e}function NU(){NU=O;L9e=new Lq;N9e=new yz}function $U(n){!n.e&&(n.e=new im);return n.e}function DU(n,e){this.c=n;this.a=e;this.b=e-n}function xU(n,e,t){this.a=n;this.b=e;this.c=t}function RU(n,e,t){this.a=n;this.b=e;this.c=t}function KU(n,e,t){this.a=n;this.b=e;this.c=t}function FU(n,e,t){this.a=n;this.b=e;this.c=t}function _U(n,e,t){this.a=n;this.b=e;this.c=t}function BU(n,e,t){this.a=n;this.b=e;this.c=t}function HU(n,e,t){this.e=n;this.a=e;this.c=t}function UU(n,e,t){i$();q1.call(this,n,e,t)}function GU(n,e,t){i$();NQ.call(this,n,e,t)}function qU(n,e,t){i$();NQ.call(this,n,e,t)}function XU(n,e,t){i$();NQ.call(this,n,e,t)}function VU(n,e,t){i$();GU.call(this,n,e,t)}function zU(n,e,t){i$();GU.call(this,n,e,t)}function WU(n,e,t){i$();zU.call(this,n,e,t)}function QU(n,e,t){i$();qU.call(this,n,e,t)}function JU(n,e,t){i$();XU.call(this,n,e,t)}function YU(n){vX.call(this,n.d,n.c,n.a,n.b)}function ZU(n){vX.call(this,n.d,n.c,n.a,n.b)}function nG(n){this.d=n;Nw(this);this.b=OV(n.d)}function eG(n){oDn();return Gan((hon(),Het),n)}function tG(n,e){nQ(n);nQ(e);return new IE(n,e)}function rG(n,e){nQ(n);nQ(e);return new nq(n,e)}function iG(n,e){nQ(n);nQ(e);return new eq(n,e)}function aG(n,e){nQ(n);nQ(e);return new _E(n,e)}function cG(n){PK(n.b!=0);return Rin(n,n.a.a)}function uG(n){PK(n.b!=0);return Rin(n,n.c.b)}function sG(n){!n.c&&(n.c=new Uo);return n.c}function oG(n){var e;e=new im;frn(e,n);return e}function fG(n){var e;e=new uk;frn(e,n);return e}function hG(n){var e;e=new ok;Gun(e,n);return e}function lG(n){var e;e=new vS;Gun(e,n);return e}function bG(n,e){Gq(n==null||Oyn(n,e));return n}function wG(n,e,t){qV.call(this,e,t);this.a=n}function dG(n,e){this.c=n;this.b=e;this.a=false}function gG(){this.a=";,;";this.b="";this.c=""}function vG(n,e,t){this.b=n;uL.call(this,e,t)}function pG(n,e,t){this.c=n;ZP.call(this,e,t)}function mG(n,e,t){GC.call(this,n,e);this.b=t}function kG(n,e,t){p$n(t,0,n,e,t.length,false)}function yG(n,e,t,r,i){n.b=e;n.c=t;n.d=r;n.a=i}function MG(n,e,t,r,i){n.d=e;n.c=t;n.a=r;n.b=i}function TG(n,e){if(e){n.b=e;n.a=(WQ(e),e.a)}}function jG(n,e){if(!n){throw dm(new jM(e))}}function EG(n,e){if(!n){throw dm(new EM(e))}}function SG(n,e){if(!n){throw dm(new yM(e))}}function PG(n,e){rP();return k$(n.d.p,e.d.p)}function CG(n,e){can();return bgn(n.e.b,e.e.b)}function IG(n,e){can();return bgn(n.e.a,e.e.a)}function OG(n,e){return k$(mq(n.d),mq(e.d))}function AG(n,e){return!!e&&FQ(n,e.d)?e:null}function LG(n,e){return e==(UQn(),n9e)?n.c:n.d}function NG(n){return Oon(Rz(qL(n)?Won(n):n))}function $G(n){return new PO(n.c+n.b,n.d+n.a)}function DG(n){return n!=null&&!Tvn(n,urt,srt)}function xG(n,e){return(vdn(n)<<4|vdn(e))&$1n}function RG(n,e,t,r,i){n.c=e;n.d=t;n.b=r;n.a=i}function KG(n){var e,t;e=n.b;t=n.c;n.b=t;n.c=e}function FG(n){var e,t;t=n.d;e=n.a;n.d=e;n.a=t}function _G(n,e){var t;t=n.c;tun(n,e);return t}function BG(n,e){e<0?n.g=-1:n.g=e;return n}function HG(n,e){Xin(n);n.a*=e;n.b*=e;return n}function UG(n,e,t){Din.call(this,e,t);this.d=n}function GG(n,e,t){RA.call(this,n,e);this.c=t}function qG(n,e,t){RA.call(this,n,e);this.c=t}function XG(n){bB();Mo.call(this);this.ci(n)}function VG(){K7();DQ.call(this,(PP(),Ort))}function zG(n){eZn();++Tht;return new $X(0,n)}function WG(){WG=O;Gst=(dZ(),new Jw(hae))}function QG(){QG=O;new Wyn((Ty(),sse),(My(),ase))}function JG(){JG=O;rle=$nn(tle,XZn,17,256,0,1)}function YG(){this.b=bM(MK(tyn((oGn(),iMe))))}function ZG(n){this.b=n;this.a=PV(this.b.a).Od()}function nq(n,e){this.b=n;this.a=e;Gh.call(this)}function eq(n,e){this.a=n;this.b=e;Gh.call(this)}function tq(n,e,t){this.a=n;jL.call(this,e,t)}function rq(n,e,t){this.a=n;jL.call(this,e,t)}function iq(n,e,t){var r;r=new eQ(t);ain(n,e,r)}function aq(n,e,t){var r;r=n[e];n[e]=t;return r}function cq(n){var e;e=n.slice();return Ren(e,n)}function uq(n){var e;e=n.n;return n.a.b+e.d+e.a}function sq(n){var e;e=n.n;return n.e.b+e.d+e.a}function oq(n){var e;e=n.n;return n.e.a+e.b+e.c}function fq(n){n.a.b=n.b;n.b.a=n.a;n.a=n.b=null}function hq(n,e){w8(n,e,n.c.b,n.c);return true}function lq(n){if(n.a){return n.a}return wY(n)}function bq(n){vZ();return pIn(n)==H0(yIn(n))}function wq(n){vZ();return yIn(n)==H0(pIn(n))}function dq(n,e){return NEn(n,new GC(e.a,e.b))}function gq(n,e){return CJ(),$Mn(n,e),new pJ(n,e)}function vq(n,e){return n.c=e){throw dm(new $k)}}function nz(n,e){return fdn(n,(cJ(e),new bd(e)))}function ez(n,e){return fdn(n,(cJ(e),new wd(e)))}function tz(n,e,t){return XYn(n,bG(e,12),bG(t,12))}function rz(n){return Rsn(),bG(n,12).g.c.length!=0}function iz(n){return Rsn(),bG(n,12).e.c.length!=0}function az(n,e){Lsn();return bgn(e.a.o.a,n.a.o.a)}function cz(n,e){(e.Bb&Wee)!=0&&!n.a.o&&(n.a.o=e)}function uz(n,e){e.Ug("General 'Rotator",1);vQn(n)}function sz(n,e,t){e.qf(t,bM(MK(fQ(n.b,t)))*n.a)}function oz(n,e,t){v_n();return Qsn(n,e)&&Qsn(n,t)}function fz(n){uNn();return!n.Hc(C8e)&&!n.Hc(O8e)}function hz(n){if(n.e){return C7(n.e)}return null}function lz(n){if(qL(n)){return""+n}return U_n(n)}function bz(n){var e;e=n;while(e.f){e=e.f}return e}function wz(n,e,t){bQ(e,0,aX(e[0],t[0]));return e}function dz(n,e,t,r){var i;i=n.i;i.i=e;i.a=t;i.b=r}function gz(n,e,t,r){PD.call(this,n,e,t);this.b=r}function vz(n,e,t,r,i){pen.call(this,n,e,t,r,i,-1)}function pz(n,e,t,r,i){men.call(this,n,e,t,r,i,-1)}function mz(n,e,t,r){GG.call(this,n,e,t);this.b=r}function kz(n){vA.call(this,n,false);this.a=false}function yz(){XO.call(this,"LOOKAHEAD_LAYOUT",1)}function Mz(n){this.b=n;iR.call(this,n);QD(this)}function Tz(n){this.b=n;cR.call(this,n);JD(this)}function jz(n,e,t){this.a=n;s_.call(this,e,t,5,6)}function Ez(n,e,t,r){this.b=n;PD.call(this,e,t,r)}function Sz(n,e){this.b=n;gb.call(this,n.b);this.a=e}function Pz(n){this.a=Gyn(n.a);this.b=new iB(n.b)}function Cz(n,e){iQ();zE.call(this,n,_wn(new $M(e)))}function Iz(n,e){eZn();++Tht;return new LQ(n,e,0)}function Oz(n,e){eZn();++Tht;return new LQ(6,n,e)}function Az(n,e){cJ(e);while(n.Ob()){e.Cd(n.Pb())}}function Lz(n,e){return HA(e)?xZ(n,e):!!GX(n.f,e)}function Nz(n,e){return e.Vh()?Twn(n.b,bG(e,54)):e}function $z(n,e){return T_(n.substr(0,e.length),e)}function Dz(n){return new GV(new rx(n.a.length,n.a))}function xz(n){return new PO(n.c+n.b/2,n.d+n.a/2)}function Rz(n){return M$(~n.l&f0n,~n.m&f0n,~n.h&h0n)}function Kz(n){return typeof n===bZn||typeof n===vZn}function Fz(n){n.f=new aN(n);n.i=new cN(n);++n.g}function _z(n){if(!n){throw dm(new Xm)}return n.d}function Bz(n){var e;e=Hhn(n);PK(e!=null);return e}function Hz(n){var e;e=wgn(n);PK(e!=null);return e}function Uz(n,e){var t;t=n.a.gc();u7(e,t);return t-e}function Gz(n,e){var t;t=n.a.zc(e,n);return t==null}function qz(n,e){return n.a.zc(e,(Qx(),Bhe))==null}function Xz(n){return new gX(null,lW(n,n.length))}function Vz(n,e,t){return VXn(n,bG(e,42),bG(t,176))}function zz(n,e,t){Pun(n.a,e);return aq(n.b,e.g,t)}function Wz(n,e,t){ZV(t,n.a.c.length);r9(n.a,t,e)}function Qz(n,e,t,r){bbn(e,t,n.length);Jz(n,e,t,r)}function Jz(n,e,t,r){var i;for(i=e;i0?t.Math.log(n/e):-100}function oW(n,e){return kwn(n,e)<0?-1:kwn(n,e)>0?1:0}function fW(n,e){tD(n,G$(e,160)?e:bG(e,2036).Rl())}function hW(n,e){if(n==null){throw dm(new PM(e))}}function lW(n,e){return Fin(e,n.length),new Aq(n,e)}function bW(n,e){if(!e){return false}return esn(n,e)}function wW(){Vy();return zfn(fT(Soe,1),g1n,549,0,[Eoe])}function dW(n){return n.e==0?n:new Zz(-n.e,n.d,n.a)}function gW(n,e){return bgn(n.c.c+n.c.b,e.c.c+e.c.b)}function vW(n,e){w8(n.d,e,n.b.b,n.b);++n.a;n.c=null}function pW(n,e){!n.c?ED(n.b,e):pW(n.c,e);return n}function mW(n,e,t){var r;r=brn(n,e);n8(n,e,t);return r}function kW(n,e,t){var r;for(r=0;r=n.g}function bQ(n,e,t){SK(t==null||fGn(n,t));return n[e]=t}function wQ(n,e){w3(e,n.length+1);return n.substr(e)}function dQ(n,e){cJ(e);while(n.c=n){return new TS}return cun(n-1)}function VQ(n){if(!n.a&&!!n.c){return n.c.b}return n.a}function zQ(n){if(G$(n,616)){return n}return new u0(n)}function WQ(n){if(!n.c){jgn(n);n.d=true}else{WQ(n.c)}}function QQ(n){if(!n.c){n.d=true;bKn(n)}else{n.c.$e()}}function JQ(n){n.b=false;n.c=false;n.d=false;n.a=false}function YQ(n){var e,t;e=n.c.i.c;t=n.d.i.c;return e==t}function ZQ(n,e){var t;t=n.Ih(e);t>=0?n.ki(t):YLn(n,e)}function nJ(n,e){n.c<0||n.b.b0){n=n<<1|(n<0?1:0)}return n}function NJ(n,e){var t;t=new pQ(n);Tm(e.c,t);return t}function $J(n,e){n.u.Hc((uNn(),C8e))&&jNn(n,e);Enn(n,e)}function DJ(n,e){return BA(n)===BA(e)||n!=null&&bdn(n,e)}function xJ(n,e){return HX(n.a,e)?n.b[bG(e,22).g]:null}function RJ(){XS();return zfn(fT(Ike,1),g1n,489,0,[Cke])}function KJ(){aP();return zfn(fT(G1e,1),g1n,490,0,[U1e])}function FJ(){cP();return zfn(fT(V1e,1),g1n,558,0,[X1e])}function _J(){uP();return zfn(fT(X0e,1),g1n,539,0,[q0e])}function BJ(n){!n.n&&(n.n=new gz(unt,n,1,7));return n.n}function HJ(n){!n.c&&(n.c=new gz(ont,n,9,9));return n.c}function UJ(n){!n.c&&(n.c=new g_(B7e,n,5,8));return n.c}function GJ(n){!n.b&&(n.b=new g_(B7e,n,4,7));return n.b}function qJ(n){n.j.c.length=0;lY(n.c);i_(n.a);return n}function XJ(n){n.e==lae&&Ew(n,hkn(n.g,n.b));return n.e}function VJ(n){n.f==lae&&Pw(n,cEn(n.g,n.b));return n.f}function zJ(n,e,t,r){_on(n,e,t,false);Mdn(n,r);return n}function WJ(n,e){this.b=n;eW.call(this,n,e);QD(this)}function QJ(n,e){this.b=n;K_.call(this,n,e);JD(this)}function JJ(n){this.d=n;this.a=this.d.b;this.b=this.d.c}function YJ(n,e){this.b=n;this.c=e;this.a=new gS(this.b)}function ZJ(n,e){w3(e,n.length);return n.charCodeAt(e)}function nY(n,e){Ign(n,bM(Fan(e,"x")),bM(Fan(e,"y")))}function eY(n,e){Ign(n,bM(Fan(e,"x")),bM(Fan(e,"y")))}function tY(n,e){jgn(n);return new gX(n,new stn(e,n.a))}function rY(n,e){jgn(n);return new gX(n,new g7(e,n.a))}function iY(n,e){jgn(n);return new $K(n,new w7(e,n.a))}function aY(n,e){jgn(n);return new DK(n,new d7(e,n.a))}function cY(n,e){return new PZ(bG(nQ(n),50),bG(nQ(e),50))}function uY(n,e){return bgn(n.d.c+n.d.b/2,e.d.c+e.d.b/2)}function sY(n,e,t){t.a?Pan(n,e.b-n.f/2):San(n,e.a-n.g/2)}function oY(n,e){return bgn(n.g.c+n.g.b/2,e.g.c+e.g.b/2)}function fY(n,e){QS();return bgn((cJ(n),n),(cJ(e),e))}function hY(n){return n!=null&&iS(hrt,n.toLowerCase())}function lY(n){var e;for(e=n.Kc();e.Ob();){e.Pb();e.Qb()}}function bY(n){var e;e=n.b;!e&&(n.b=e=new rb(n));return e}function wY(n){var e;e=fun(n);if(e){return e}return null}function dY(n,e){var t,r;t=n/e;r=c0(t);t>r&&++r;return r}function gY(n,e,t){var r;r=bG(n.d.Kb(t),159);!!r&&r.Nb(e)}function vY(n,e,t){UXn(n.a,t);Ifn(t);ODn(n.b,t);PVn(e,t)}function pY(n,e,t,r){this.a=n;this.c=e;this.b=t;this.d=r}function mY(n,e,t,r){this.c=n;this.b=e;this.a=t;this.d=r}function kY(n,e,t,r){this.c=n;this.b=e;this.d=t;this.a=r}function yY(n,e,t,r){this.c=n;this.d=e;this.b=t;this.a=r}function MY(n,e,t,r){this.a=n;this.d=e;this.c=t;this.b=r}function TY(n,e,t,r){this.a=n;this.e=e;this.d=t;this.c=r}function jY(n,e,t,r){this.a=n;this.c=e;this.d=t;this.b=r}function EY(n,e,t){this.a=A1n;this.d=n;this.b=e;this.c=t}function SY(n,e,t,r){qE.call(this,n,e);this.a=t;this.b=r}function PY(n,e){this.d=(cJ(n),n);this.a=16449;this.c=e}function CY(n){this.a=new im;this.e=$nn(Ght,XZn,53,n,0,2)}function IY(n){n.Ug("No crossing minimization",1);n.Vg()}function OY(){Uy.call(this,"There is no more element.")}function AY(n,e,t,r){this.a=n;this.b=e;this.c=t;this.d=r}function LY(n,e,t,r){this.a=n;this.b=e;this.c=t;this.d=r}function NY(n,e,t,r){this.e=n;this.a=e;this.c=t;this.d=r}function $Y(n,e,t,r){this.a=n;this.c=e;this.d=t;this.b=r}function DY(n,e,t,r){i$();v7.call(this,e,t,r);this.a=n}function xY(n,e,t,r){i$();v7.call(this,e,t,r);this.a=n}function RY(n,e,t){var r,i;r=uJn(n);i=e.ti(t,r);return i}function KY(n){var e,t;t=(e=new um,e);zin(t,n);return t}function FY(n){var e,t;t=(e=new um,e);PIn(t,n);return t}function _Y(n,e){var t;t=fQ(n.f,e);eon(e,t);return null}function BY(n){!n.b&&(n.b=new gz(H7e,n,12,3));return n.b}function HY(n){Gq(n==null||Kz(n)&&!(n.Tm===I));return n}function UY(n){if(n.n){n.e!==j1n&&n.je();n.j=null}return n}function GY(n){pvn(n.d);if(n.d.d!=n.c){throw dm(new Gm)}}function qY(n){PK(n.b0&&JEn(this)}function zY(n,e){this.a=n;NK.call(this,n,bG(n.d,15).fd(e))}function WY(n,e){return bgn(OX(n)*IX(n),OX(e)*IX(e))}function QY(n,e){return bgn(OX(n)*IX(n),OX(e)*IX(e))}function JY(n){return XNn(n)&&lM(yK(YDn(n,(IYn(),LFe))))}function YY(n,e){return zNn(n,bG(lIn(e,(IYn(),h_e)),17),e)}function ZY(n,e){bG(lIn(n,(WYn(),dDe)),15).Fc(e);return e}function nZ(n,e){n.b=e.b;n.c=e.c;n.d=e.d;n.a=e.a;return n}function eZ(n,e,t,r){this.b=n;this.c=r;oL.call(this,e,t)}function tZ(n,e,t){n.i=0;n.e=0;if(e==t){return}cln(n,e,t)}function rZ(n,e,t){n.i=0;n.e=0;if(e==t){return}uln(n,e,t)}function iZ(n,e,t){tP();return lvn(bG(fQ(n.e,e),529),t)}function aZ(n){var e;return e=n.f,!e?n.f=new DE(n,n.c):e}function cZ(n,e){return Vwn(n.j,e.s,e.c)+Vwn(e.e,n.s,n.c)}function uZ(n,e){if(!!n.e&&!n.e.a){sm(n.e,e);uZ(n.e,e)}}function sZ(n,e){if(!!n.d&&!n.d.a){sm(n.d,e);sZ(n.d,e)}}function oZ(n,e){return-bgn(OX(n)*IX(n),OX(e)*IX(e))}function fZ(n){return bG(n.ld(),149).Pg()+":"+fvn(n.md())}function hZ(){VIn(this,new Gl);this.wb=(cQ(),_rt);jj()}function lZ(n){this.b=new im;Dfn(this.b,this.b);this.a=n}function bZ(n,e){new vS;this.a=new zk;this.b=n;this.c=e}function wZ(){wZ=O;Nbe=new K;$be=new K;Dbe=new F}function dZ(){dZ=O;lbe=new N;bbe=new D;wbe=new x}function gZ(){gZ=O;ave=new kn;uve=new cV;cve=new yn}function vZ(){vZ=O;nye=new im;Zke=new rm;Yke=new im}function pZ(n,e){if(n==null){throw dm(new PM(e))}return n}function mZ(n){!n.a&&(n.a=new gz(snt,n,10,11));return n.a}function kZ(n){!n.q&&(n.q=new gz(Irt,n,11,10));return n.q}function yZ(n){!n.s&&(n.s=new gz(mrt,n,21,17));return n.s}function MZ(n){nQ(n);return UMn(new GV(sx(n.a.Kc(),new d)))}function TZ(n,e){Cbn(n);Cbn(e);return fM(bG(n,22),bG(e,22))}function jZ(n,e,t){var r,i;r=eB(t);i=new Lb(r);ain(n,e,i)}function EZ(n,e,t,r,i,a){men.call(this,n,e,t,r,i,a?-2:-1)}function SZ(n,e,t,r){RA.call(this,e,t);this.b=n;this.a=r}function PZ(n,e){Ay.call(this,new VV(n));this.a=n;this.b=e}function CZ(n){this.b=n;this.c=n;n.e=null;n.c=null;this.a=1}function IZ(n){WB();var e;e=bG(n.g,10);e.n.a=n.d.c+e.d.b}function OZ(){OZ=O;var n,e;e=!lmn();n=new j;Qfe=e?new T:n}function AZ(n){dZ();return G$(n,59)?new uT(n):new yx(n)}function LZ(n){return G$(n,16)?new lX(bG(n,16)):fG(n.Kc())}function NZ(n){return new nx(n,n.e.Rd().gc()*n.c.Rd().gc())}function $Z(n){return new ex(n,n.e.Rd().gc()*n.c.Rd().gc())}function DZ(n){return!!n&&!!n.hashCode?n.hashCode():Bx(n)}function xZ(n,e){return e==null?!!GX(n.f,null):qX(n.i,e)}function RZ(n,e){var t;t=eD(n.a,e);t&&(e.d=null);return t}function KZ(n,e,t){if(n.f){return n.f.ef(e,t)}return false}function FZ(n,e,t,r){bQ(n.c[e.g],t.g,r);bQ(n.c[t.g],e.g,r)}function _Z(n,e,t,r){bQ(n.c[e.g],e.g,t);bQ(n.b[e.g],e.g,r)}function BZ(n,e,t){return bM(MK(t.a))<=n&&bM(MK(t.b))>=e}function HZ(n,e){this.g=n;this.d=zfn(fT(Yje,1),e6n,10,0,[e])}function UZ(n){this.c=n;this.b=new Vj(bG(nQ(new Mn),50))}function GZ(n){this.c=n;this.b=new Vj(bG(nQ(new Ie),50))}function qZ(n){this.b=n;this.a=new Vj(bG(nQ(new ae),50))}function XZ(){this.b=new uk;this.d=new vS;this.e=new Dk}function VZ(){this.c=new wj;this.d=new wj;this.e=new wj}function zZ(){this.a=new zk;this.b=(Tcn(3,d1n),new H7(3))}function WZ(n,e){this.e=n;this.a=kce;this.b=FBn(e);this.c=e}function QZ(n){this.c=n.c;this.d=n.d;this.b=n.b;this.a=n.a}function JZ(n,e,t,r,i,a){this.a=n;Hcn.call(this,e,t,r,i,a)}function YZ(n,e,t,r,i,a){this.a=n;Hcn.call(this,e,t,r,i,a)}function ZZ(n,e,t,r,i,a,c){return new s8(n.e,e,t,r,i,a,c)}function n1(n,e,t){return t>=0&&T_(n.substr(t,e.length),e)}function e1(n,e){return G$(e,149)&&T_(n.b,bG(e,149).Pg())}function t1(n,e){return n.a?e.Gh().Kc():bG(e.Gh(),71).Ii()}function r1(n,e){var t;t=n.b.Qc(e);m8(t,n.b.gc());return t}function i1(n,e){if(n==null){throw dm(new PM(e))}return n}function a1(n){if(!n.u){S9(n);n.u=new hF(n,n)}return n.u}function c1(n){this.a=(dZ(),G$(n,59)?new uT(n):new yx(n))}function u1(n){var e;e=bG(Ron(n,16),29);return!e?n.ii():e}function s1(n,e){var t;t=$j(n.Rm);return e==null?t:t+": "+e}function o1(n,e,t){Unn(e,t,n.length);return n.substr(e,t-e)}function f1(n,e){VF.call(this);ean(this);this.a=n;this.c=e}function h1(n){!n?CZn:s1(n,n.ie());String.fromCharCode(10)}function l1(n){JM();t.setTimeout((function(){throw n}),0)}function b1(){qkn();return zfn(fT(kve,1),g1n,436,0,[mve,pve])}function w1(){Jrn();return zfn(fT(jve,1),g1n,435,0,[Mve,Tve])}function d1(){Yrn();return zfn(fT(Dye,1),g1n,432,0,[Nye,$ye])}function g1(){xsn();return zfn(fT(OSe,1),g1n,517,0,[ISe,CSe])}function v1(){r5();return zfn(fT(U$e,1),g1n,429,0,[B$e,H$e])}function p1(){Zrn();return zfn(fT(KNe,1),g1n,428,0,[xNe,RNe])}function m1(){V7();return zfn(fT(vNe,1),g1n,431,0,[dNe,gNe])}function k1(){arn();return zfn(fT(pHe,1),g1n,430,0,[gHe,vHe])}function y1(){i5();return zfn(fT(OGe,1),g1n,531,0,[IGe,CGe])}function M1(){Mun();return zfn(fT(HQe,1),g1n,501,0,[_Qe,BQe])}function T1(){p0();return zfn(fT(Iqe,1),g1n,523,0,[Cqe,Pqe])}function j1(){m0();return zfn(fT(Nqe,1),g1n,522,0,[Aqe,Lqe])}function E1(){q7();return zfn(fT(MXe,1),g1n,528,0,[yXe,kXe])}function S1(){ntn();return zfn(fT(e$e,1),g1n,488,0,[n$e,ZNe])}function P1(){h9();return zfn(fT(YZe,1),g1n,491,0,[QZe,JZe])}function C1(){ofn();return zfn(fT(b1e,1),g1n,492,0,[h1e,l1e])}function I1(){s3();return zfn(fT(YWe,1),g1n,433,0,[JWe,QWe])}function O1(){Len();return zfn(fT(lJe,1),g1n,434,0,[fJe,hJe])}function A1(){v0();return zfn(fT(QXe,1),g1n,465,0,[zXe,WXe])}function L1(){X7();return zfn(fT(J1e,1),g1n,438,0,[Q1e,W1e])}function N1(){Zfn();return zfn(fT(Q0e,1),g1n,437,0,[W0e,z0e])}function $1(){NU();return zfn(fT($9e,1),g1n,347,0,[L9e,N9e])}function D1(n,e,t,r){return t>=0?n.Uh(e,t,r):n.Ch(null,t,r)}function x1(n){if(n.b.b==0){return n.a.sf()}return cG(n.b)}function R1(n){if(n.p!=5)throw dm(new Bm);return MV(n.f)}function K1(n){if(n.p!=5)throw dm(new Bm);return MV(n.k)}function F1(n){BA(n.a)===BA((Dsn(),Oit))&&uzn(n);return n.a}function _1(n,e){n.b=e;n.c>0&&n.b>0&&(n.g=TX(n.c,n.b,n.a))}function B1(n,e){n.c=e;n.c>0&&n.b>0&&(n.g=TX(n.c,n.b,n.a))}function H1(n,e){aw(this,new PO(n.a,n.b));cw(this,lG(e))}function U1(){Ly.call(this,new wS(lin(12)));GD(true);this.a=2}function G1(n,e,t){eZn();em.call(this,n);this.b=e;this.a=t}function q1(n,e,t){i$();Vp.call(this,e);this.a=n;this.b=t}function X1(n){var e;e=n.c.d.b;n.b=e;n.a=n.c.d;e.a=n.c.d.b=n}function V1(n){return n.b==0?null:(PK(n.b!=0),Rin(n,n.a.a))}function z1(n,e){return e==null?_A(GX(n.f,null)):qP(n.i,e)}function W1(n,e,t,r,i){return new xOn(n,(Hen(),ade),e,t,r,i)}function Q1(n,e){Z5(e);return tcn(n,$nn(Ght,z1n,28,e,15,1),e)}function J1(n,e){pZ(n,"set1");pZ(e,"set2");return new WE(n,e)}function Y1(n,e){var t=Ufe[n.charCodeAt(0)];return t==null?n:t}function Z1(n,e){var t,r;t=e;r=new X;MWn(n,t,r);return r.d}function n0(n,e,t,r){var i;i=new xF;e.a[t.g]=i;zz(n.b,r,i)}function e0(n,e){var t;t=Ran(n.f,e);return t_(XR(t),n.f.d)}function t0(n){var e;Rcn(n.a);YN(n.a);e=new xd(n.a);xvn(e)}function r0(n,e){sBn(n,true);Lin(n.e.Rf(),new _B(n,true,e))}function i0(n,e){vZ();return n==H0(pIn(e))||n==H0(yIn(e))}function a0(n,e){can();return bG(lIn(e,(eqn(),_We)),17).a==n}function c0(n){return Math.max(Math.min(n,pZn),-2147483648)|0}function u0(n){this.a=bG(nQ(n),277);this.b=(dZ(),new Tx(n))}function s0(n,e,t){this.i=new im;this.b=n;this.g=e;this.a=t}function o0(n,e,t){this.a=new im;this.e=n;this.f=e;this.c=t}function f0(n,e,t){this.c=new im;this.e=n;this.f=e;this.b=t}function h0(n){VF.call(this);ean(this);this.a=n;this.c=true}function l0(n){function e(){}e.prototype=n||{};return new e}function b0(n){if(n.Ae()){return null}var e=n.n;return bce[e]}function w0(n){if(n.Db>>16!=3)return null;return bG(n.Cb,27)}function d0(n){if(n.Db>>16!=9)return null;return bG(n.Cb,27)}function g0(n){if(n.Db>>16!=6)return null;return bG(n.Cb,74)}function v0(){v0=O;zXe=new JI(X2n,0);WXe=new JI(V2n,1)}function p0(){p0=O;Cqe=new DI(V2n,0);Pqe=new DI(X2n,1)}function m0(){m0=O;Aqe=new xI(i3n,0);Lqe=new xI("UP",1)}function k0(){k0=O;Poe=xbn((Vy(),zfn(fT(Soe,1),g1n,549,0,[Eoe])))}function y0(n){var e;e=new _j(lin(n.length));_hn(e,n);return e}function M0(n,e){n.b+=e.b;n.c+=e.c;n.d+=e.d;n.a+=e.a;return n}function T0(n,e){if(Nfn(n,e)){vcn(n);return true}return false}function j0(n,e){if(e==null){throw dm(new Hm)}return Cmn(n,e)}function E0(n,e){var t;t=n.q.getHours();n.q.setDate(e);$qn(n,t)}function S0(n,e,t){var r;r=n.Ih(e);r>=0?n.bi(r,t):vRn(n,e,t)}function P0(n,e){var t;t=n.Ih(e);return t>=0?n.Wh(t):FNn(n,e)}function C0(n,e){var t;nQ(e);for(t=n.a;t;t=t.c){e.Yd(t.g,t.i)}}function I0(n,e,t){var r;r=zhn(n,e,t);n.b=new _un(r.c.length)}function O0(n,e,t){n2();!!n&&jJ(ntt,n,e);!!n&&jJ(Zet,n,t)}function A0(n,e){zB();return Qx(),bG(e.a,17).a0}function D0(n){var e;e=n.d;e=n.bj(n.f);cen(n,e);return e.Ob()}function x0(n,e){var t;t=new hX(e);YCn(t,n);return new iB(t)}function R0(n){if(n.p!=0)throw dm(new Bm);return VA(n.f,0)}function K0(n){if(n.p!=0)throw dm(new Bm);return VA(n.k,0)}function F0(n){if(n.Db>>16!=7)return null;return bG(n.Cb,241)}function _0(n){if(n.Db>>16!=6)return null;return bG(n.Cb,241)}function B0(n){if(n.Db>>16!=7)return null;return bG(n.Cb,167)}function H0(n){if(n.Db>>16!=11)return null;return bG(n.Cb,27)}function U0(n){if(n.Db>>16!=17)return null;return bG(n.Cb,29)}function G0(n){if(n.Db>>16!=3)return null;return bG(n.Cb,155)}function q0(n){var e;jgn(n);e=new uk;return tY(n,new Pd(e))}function X0(n,e){var t=n.a=n.a||[];return t[e]||(t[e]=n.ve(e))}function V0(n,e){var t;t=n.q.getHours();n.q.setMonth(e);$qn(n,t)}function z0(n,e){RD(this);this.f=e;this.g=n;UY(this);this.je()}function W0(n,e){this.a=n;this.c=_$(this.a);this.b=new QZ(e)}function Q0(n,e,t){this.a=e;this.c=n;this.b=(nQ(t),new iB(t))}function J0(n,e,t){this.a=e;this.c=n;this.b=(nQ(t),new iB(t))}function Y0(n){this.a=n;this.b=$nn(eGe,XZn,2043,n.e.length,0,2)}function Z0(){this.a=new JL;this.e=new uk;this.g=0;this.i=0}function n2(){n2=O;ntt=new rm;Zet=new rm;MA(zbe,new go)}function e2(){e2=O;JHe=mV(new mJ,(bIn(),uTe),(YYn(),eCe))}function t2(){t2=O;ZHe=mV(new mJ,(bIn(),uTe),(YYn(),eCe))}function r2(){r2=O;iUe=mV(new mJ,(bIn(),uTe),(YYn(),eCe))}function i2(){i2=O;LGe=xq(new mJ,(bIn(),uTe),(YYn(),PPe))}function a2(){a2=O;FGe=xq(new mJ,(bIn(),uTe),(YYn(),PPe))}function c2(){c2=O;jqe=xq(new mJ,(bIn(),uTe),(YYn(),PPe))}function u2(){u2=O;Fqe=xq(new mJ,(bIn(),uTe),(YYn(),PPe))}function s2(n,e,t,r,i,a){return new Utn(n.e,e,n.Lj(),t,r,i,a)}function o2(n,e,t){return e==null?ZAn(n.f,null,t):Egn(n.i,e,t)}function f2(n,e){!!n.c&&Ttn(n.c.g,n);n.c=e;!!n.c&&ED(n.c.g,n)}function h2(n,e){!!n.c&&Ttn(n.c.a,n);n.c=e;!!n.c&&ED(n.c.a,n)}function l2(n,e){!!n.i&&Ttn(n.i.j,n);n.i=e;!!n.i&&ED(n.i.j,n)}function b2(n,e){!!n.d&&Ttn(n.d.e,n);n.d=e;!!n.d&&ED(n.d.e,n)}function w2(n,e){!!n.a&&Ttn(n.a.k,n);n.a=e;!!n.a&&ED(n.a.k,n)}function d2(n,e){!!n.b&&Ttn(n.b.f,n);n.b=e;!!n.b&&ED(n.b.f,n)}function g2(n,e){kQ(n,n.b,n.c);bG(n.b.b,68);!!e&&bG(e.b,68).b}function v2(n,e){return bgn(bG(n.c,65).c.e.b,bG(e.c,65).c.e.b)}function p2(n,e){return bgn(bG(n.c,65).c.e.a,bG(e.c,65).c.e.a)}function m2(n){Pbn();return Qx(),bG(n.a,86).d.e!=0?true:false}function k2(n,e){G$(n.Cb,184)&&(bG(n.Cb,184).tb=null);Qun(n,e)}function y2(n,e){G$(n.Cb,90)&&SLn(S9(bG(n.Cb,90)),4);Qun(n,e)}function M2(n,e){Lgn(n,e);G$(n.Cb,90)&&SLn(S9(bG(n.Cb,90)),2)}function T2(n,e){var t,r;t=e.c;r=t!=null;r&&MQ(n,new eQ(e.c))}function j2(n){var e,t;t=(jj(),e=new um,e);zin(t,n);return t}function E2(n){var e,t;t=(jj(),e=new um,e);zin(t,n);return t}function S2(n){var e;while(true){e=n.Pb();if(!n.Ob()){return e}}}function P2(n,e,t){ED(n.a,(CJ(),$Mn(e,t),new GE(e,t)));return n}function C2(n,e){return LP(),urn(e)?new Nq(e,n):new DA(e,n)}function I2(n){fHn();return kwn(n,0)>=0?Hpn(n):dW(Hpn(Ptn(n)))}function O2(n){var e;e=bG(cq(n.b),9);return new aB(n.a,e,n.c)}function A2(n,e){var t;t=bG(Jwn(aZ(n.a),e),16);return!t?0:t.gc()}function L2(n,e,t){var r;ddn(e,t,n.c.length);r=t-e;aE(n.c,e,r)}function N2(n,e,t){ddn(e,t,n.gc());this.c=n;this.a=e;this.b=t-e}function $2(n){this.c=new vS;this.b=n.b;this.d=n.c;this.a=n.a}function D2(n){this.a=t.Math.cos(n);this.b=t.Math.sin(n)}function x2(n,e,t,r){this.c=n;this.d=r;w2(this,e);d2(this,t)}function R2(n,e){Oy.call(this,new wS(lin(n)));Tcn(e,qZn);this.a=e}function K2(n,e,t){return new xOn(n,(Hen(),ide),null,false,e,t)}function F2(n,e,t){return new xOn(n,(Hen(),cde),e,t,null,false)}function _2(){Sbn();return zfn(fT($de,1),g1n,108,0,[Ade,Lde,Nde])}function B2(){rrn();return zfn(fT(Spe,1),g1n,472,0,[Epe,jpe,Tpe])}function H2(){Uen();return zfn(fT(dpe,1),g1n,471,0,[bpe,lpe,wpe])}function U2(){ran();return zfn(fT(cpe,1),g1n,237,0,[rpe,ipe,ape])}function G2(){trn();return zfn(fT(UMe,1),g1n,391,0,[BMe,_Me,HMe])}function q2(){yun();return zfn(fT(XAe,1),g1n,372,0,[qAe,GAe,UAe])}function X2(){Icn();return zfn(fT(MNe,1),g1n,322,0,[kNe,mNe,yNe])}function V2(){ocn();return zfn(fT(PNe,1),g1n,351,0,[jNe,SNe,ENe])}function z2(){Lhn();return zfn(fT(UNe,1),g1n,460,0,[BNe,_Ne,HNe])}function W2(){sfn();return zfn(fT($$e,1),g1n,299,0,[L$e,N$e,A$e])}function Q2(){irn();return zfn(fT(F$e,1),g1n,311,0,[R$e,K$e,x$e])}function J2(){Nwn();return zfn(fT(RBe,1),g1n,390,0,[$Be,DBe,xBe])}function Y2(){fcn();return zfn(fT(THe,1),g1n,463,0,[MHe,kHe,yHe])}function Z2(){son();return zfn(fT(CHe,1),g1n,387,0,[EHe,SHe,PHe])}function n3(){Aln();return zfn(fT(NHe,1),g1n,349,0,[LHe,OHe,AHe])}function e3(){Ebn();return zfn(fT(FHe,1),g1n,350,0,[xHe,RHe,KHe])}function t3(){scn();return zfn(fT(GHe,1),g1n,352,0,[UHe,BHe,HHe])}function r3(){Yfn();return zfn(fT(WHe,1),g1n,388,0,[VHe,zHe,XHe])}function i3(){ucn();return zfn(fT(JUe,1),g1n,464,0,[zUe,WUe,QUe])}function a3(n){return Whn(zfn(fT(D3e,1),XZn,8,0,[n.i.n,n.n,n.a]))}function c3(){Lln();return zfn(fT(Eze,1),g1n,392,0,[jze,Tze,Mze])}function u3(){u3=O;nQe=mV(new mJ,(Njn(),oVe),(DHn(),nze))}function s3(){s3=O;JWe=new tO("DFS",0);QWe=new tO("BFS",1)}function o3(n,e,t){var r;r=new sc;r.b=e;r.a=t;++e.b;ED(n.d,r)}function f3(n,e,t){var r;r=new uN(t.d);t_(r,n);Ign(e,r.a,r.b)}function h3(n,e){MD(n,MV(O3(FV(e,24),z0n)),MV(O3(e,z0n)))}function l3(n,e){if(n<0||n>e){throw dm(new kM(o2n+n+f2n+e))}}function b3(n,e){if(n<0||n>=e){throw dm(new kM(o2n+n+f2n+e))}}function w3(n,e){if(n<0||n>=e){throw dm(new tT(o2n+n+f2n+e))}}function d3(n,e){this.b=(cJ(n),n);this.a=(e&T0n)==0?e|64|VZn:e}function g3(n){var e;jgn(n);e=(wZ(),wZ(),$be);return Ein(n,e)}function v3(n,e,t){var r;r=bXn(n,e,false);return r.b<=e&&r.a<=t}function p3(){ktn();return zfn(fT(a1e,1),g1n,439,0,[t1e,i1e,r1e])}function m3(){Xgn();return zfn(fT(JYe,1),g1n,394,0,[WYe,QYe,zYe])}function k3(){tmn();return zfn(fT(EYe,1),g1n,445,0,[MYe,TYe,jYe])}function y3(){iMn();return zfn(fT(NYe,1),g1n,456,0,[OYe,LYe,AYe])}function M3(){jbn();return zfn(fT(vJe,1),g1n,393,0,[wJe,dJe,gJe])}function T3(){uon();return zfn(fT(bYe,1),g1n,300,0,[hYe,lYe,fYe])}function j3(){Dwn();return zfn(fT(X5e,1),g1n,346,0,[G5e,U5e,q5e])}function E3(){Hdn();return zfn(fT(K1e,1),g1n,444,0,[D1e,x1e,R1e])}function S3(){ian();return zfn(fT(p5e,1),g1n,278,0,[d5e,g5e,v5e])}function P3(){$wn();return zfn(fT(O9e,1),g1n,280,0,[C9e,P9e,I9e])}function C3(n){nQ(n);return G$(n,16)?new iB(bG(n,16)):oG(n.Kc())}function I3(n,e){return!!n&&!!n.equals?n.equals(e):BA(n)===BA(e)}function O3(n,e){return Oon(DV(qL(n)?Won(n):n,qL(e)?Won(e):e))}function A3(n,e){return Oon(xV(qL(n)?Won(n):n,qL(e)?Won(e):e))}function L3(n,e){return Oon(RV(qL(n)?Won(n):n,qL(e)?Won(e):e))}function N3(n,e){var t;t=(cJ(n),n).g;EK(!!t);cJ(e);return t(e)}function $3(n,e){var t,r;r=Uz(n,e);t=n.a.fd(r);return new XE(n,t)}function D3(n){if(n.Db>>16!=6)return null;return bG(tDn(n),241)}function x3(n){if(n.p!=2)throw dm(new Bm);return MV(n.f)&$1n}function R3(n){if(n.p!=2)throw dm(new Bm);return MV(n.k)&$1n}function K3(n){PK(n.ar?1:0}function r4(n,e){var t,r;t=Itn(e);r=t;return bG(fQ(n.c,r),17).a}function i4(n,e,t){var r;r=n.d[e.p];n.d[e.p]=n.d[t.p];n.d[t.p]=r}function a4(n,e,t){var r;if(n.n&&!!e&&!!t){r=new to;ED(n.e,r)}}function c4(n,e){Gz(n.a,e);if(e.d){throw dm(new Uy(g2n))}e.d=n}function u4(n,e){this.a=new im;this.d=new im;this.f=n;this.c=e}function s4(){this.c=new Y$;this.a=new M7;this.b=new Sk;JS()}function o4(){nhn();this.b=new rm;this.a=new rm;this.c=new im}function f4(n,e,t){this.d=n;this.j=e;this.e=t;this.o=-1;this.p=3}function h4(n,e,t){this.d=n;this.k=e;this.f=t;this.o=-1;this.p=5}function l4(n,e,t,r,i,a){Xan.call(this,n,e,t,r,i);a&&(this.o=-2)}function b4(n,e,t,r,i,a){Van.call(this,n,e,t,r,i);a&&(this.o=-2)}function w4(n,e,t,r,i,a){O9.call(this,n,e,t,r,i);a&&(this.o=-2)}function d4(n,e,t,r,i,a){Qan.call(this,n,e,t,r,i);a&&(this.o=-2)}function g4(n,e,t,r,i,a){A9.call(this,n,e,t,r,i);a&&(this.o=-2)}function v4(n,e,t,r,i,a){zan.call(this,n,e,t,r,i);a&&(this.o=-2)}function p4(n,e,t,r,i,a){Wan.call(this,n,e,t,r,i);a&&(this.o=-2)}function m4(n,e,t,r,i,a){L9.call(this,n,e,t,r,i);a&&(this.o=-2)}function k4(n,e,t,r){Vp.call(this,t);this.b=n;this.c=e;this.d=r}function y4(n,e){this.f=n;this.a=(K7(),Wut);this.c=Wut;this.b=e}function M4(n,e){this.g=n;this.d=(K7(),Qut);this.a=Qut;this.b=e}function T4(n,e){!n.c&&(n.c=new mon(n,0));XXn(n.c,(bzn(),Eot),e)}function j4(n,e){return vxn(n,e,G$(e,102)&&(bG(e,19).Bb&S0n)!=0)}function E4(n,e){return oW(Xon(n.q.getTime()),Xon(e.q.getTime()))}function S4(n){return _q(n.e.Rd().gc()*n.c.Rd().gc(),16,new Yl(n))}function P4(n){return!!n.u&&Y5(n.u.a).i!=0&&!(!!n.n&&SMn(n.n))}function C4(n){return!!n.a&&xtn(n.a.a).i!=0&&!(!!n.b&&PMn(n.b))}function I4(n,e){if(e==0){return!!n.o&&n.o.f!=0}return nyn(n,e)}function O4(n,e,t){var r;r=bG(n.Zb().xc(e),16);return!!r&&r.Hc(t)}function A4(n,e,t){var r;r=bG(n.Zb().xc(e),16);return!!r&&r.Mc(t)}function L4(n,e){var t;t=1-e;n.a[t]=Cun(n.a[t],t);return Cun(n,e)}function N4(n,e){var t,r;r=O3(n,A0n);t=KV(e,32);return A3(t,r)}function $4(n,e,t){var r;r=(nQ(n),new iB(n));Tjn(new Q0(r,e,t))}function D4(n,e,t){var r;r=(nQ(n),new iB(n));jjn(new J0(r,e,t))}function x4(n,e,t,r,i,a){_on(n,e,t,a);ydn(n,r);jdn(n,i);return n}function R4(n,e,t,r){n.a+=""+o1(e==null?CZn:fvn(e),t,r);return n}function K4(n,e){this.a=n;td.call(this,n);l3(e,n.gc());this.b=e}function F4(n){this.a=$nn(kce,jZn,1,Mhn(t.Math.max(8,n))<<1,5,1)}function _4(n){return bG(Okn(n,$nn(Yje,e6n,10,n.c.length,0,1)),199)}function B4(n){return bG(Okn(n,$nn(xje,n6n,18,n.c.length,0,1)),483)}function H4(n){return!n.a?n.c:n.e.length==0?n.a.a:n.a.a+(""+n.e)}function U4(n){while(n.d>0&&n.a[--n.d]==0);n.a[n.d++]==0&&(n.e=0)}function G4(n){PK(n.b.b!=n.d.a);n.c=n.b=n.b.b;--n.a;return n.c.c}function q4(n,e,t){n.a=e;n.c=t;n.b.a.$b();XY(n.d);Jm(n.e.a.c,0)}function X4(n,e){var t;n.e=new ky;t=WFn(e);g$(t,n.c);C_n(n,t,0)}function V4(n,e,t,r){var i;i=new ks;i.a=e;i.b=t;i.c=r;hq(n.a,i)}function z4(n,e,t,r){var i;i=new ks;i.a=e;i.b=t;i.c=r;hq(n.b,i)}function W4(n,e,t){if(n<0||et){throw dm(new kM(eAn(n,e,t)))}}function Q4(n,e){if(n<0||n>=e){throw dm(new kM(CLn(n,e)))}return n}function J4(n){if(!("stack"in n)){try{throw n}catch(e){}}return n}function Y4(n){tP();if(G$(n.g,10)){return bG(n.g,10)}return null}function Z4(n){if(bY(n).dc()){return false}d$(n,new m);return true}function n6(n){var e;if(qL(n)){e=n;return e==-0?0:e}return Wtn(n)}function e6(n,e){if(G$(e,44)){return wTn(n.a,bG(e,44))}return false}function t6(n,e){if(G$(e,44)){return wTn(n.a,bG(e,44))}return false}function r6(n,e){if(G$(e,44)){return wTn(n.a,bG(e,44))}return false}function i6(n){var e;WQ(n);e=new _;cE(n.a,new jd(e));return e}function a6(){var n,e,t;e=(t=(n=new um,n),t);ED(Hct,e);return e}function c6(n){var e;WQ(n);e=new B;cE(n.a,new Ed(e));return e}function u6(n,e){if(n.a<=n.b){e.Dd(n.a++);return true}return false}function s6(n){ksn.call(this,n,(Hen(),rde),null,false,null,false)}function o6(){o6=O;Oke=xbn((XS(),zfn(fT(Ike,1),g1n,489,0,[Cke])))}function f6(){f6=O;TUe=PJ(Bwn(1),Bwn(4));MUe=PJ(Bwn(1),Bwn(2))}function h6(n,e){return new RU(e,VR(_$(e.e),n,n),(Qx(),true))}function l6(n){return new H7((Tcn(n,p1n),hin(Rgn(Rgn(5,n),n/10|0))))}function b6(n){return _q(n.e.Rd().gc()*n.c.Rd().gc(),273,new Jl(n))}function w6(n){return bG(Okn(n,$nn(gEe,t6n,12,n.c.length,0,1)),2042)}function d6(n){a2();return!j9(n)&&!(!j9(n)&&n.c.i.c==n.d.i.c)}function g6(n,e){aan();return bG(lIn(e,(eqn(),IWe)),17).a>=n.gc()}function v6(n,e){qJn(e,n);KG(n.d);KG(bG(lIn(n,(IYn(),zFe)),214))}function p6(n,e){XJn(e,n);FG(n.d);FG(bG(lIn(n,(IYn(),zFe)),214))}function m6(n,e,t){!!n.d&&Ttn(n.d.e,n);n.d=e;!!n.d&&WX(n.d.e,t,n)}function k6(n,e,t){return t.f.c.length>0?Vz(n.a,e,t):Vz(n.b,e,t)}function y6(n,e,t){var r;r=pkn();try{return AF(n,e,t)}finally{T8(r)}}function M6(n,e){var t,r;t=j0(n,e);r=null;!!t&&(r=t.pe());return r}function T6(n,e){var t,r;t=j0(n,e);r=null;!!t&&(r=t.se());return r}function j6(n,e){var t,r;t=brn(n,e);r=null;!!t&&(r=t.se());return r}function E6(n,e){var t,r;t=j0(n,e);r=null;!!t&&(r=bAn(t));return r}function S6(n,e,t){var r;r=Imn(t);SHn(n.g,r,e);SHn(n.i,e,t);return e}function P6(n,e,t){this.d=new Qg(this);this.e=n;this.i=e;this.f=t}function C6(n,e,t,r){this.e=null;this.c=n;this.d=e;this.a=t;this.b=r}function I6(n,e,t,r){x$(this);this.c=n;this.e=e;this.f=t;this.b=r}function O6(n,e,t,r){this.d=n;this.n=e;this.g=t;this.o=r;this.p=-1}function A6(n,e,t,r){return G$(t,59)?new rR(n,e,t,r):new QV(n,e,t,r)}function L6(n){if(G$(n,16)){return bG(n,16).dc()}return!n.Kc().Ob()}function N6(n){if(n.e.g!=n.b){throw dm(new Gm)}return!!n.c&&n.d>0}function $6(n){PK(n.b!=n.d.c);n.c=n.b;n.b=n.b.a;++n.a;return n.c.c}function D6(n,e){cJ(e);bQ(n.a,n.c,e);n.c=n.c+1&n.a.length-1;tjn(n)}function x6(n,e){cJ(e);n.b=n.b-1&n.a.length-1;bQ(n.a,n.b,e);tjn(n)}function R6(n){var e;e=n.Gh();this.a=G$(e,71)?bG(e,71).Ii():e.Kc()}function K6(n){return new d3(Zin(bG(n.a.md(),16).gc(),n.a.ld()),16)}function F6(){F6=O;q1e=xbn((aP(),zfn(fT(G1e,1),g1n,490,0,[U1e])))}function _6(){_6=O;z1e=xbn((cP(),zfn(fT(V1e,1),g1n,558,0,[X1e])))}function B6(){B6=O;V0e=xbn((uP(),zfn(fT(X0e,1),g1n,539,0,[q0e])))}function H6(){zmn();return zfn(fT(lje,1),g1n,389,0,[hje,oje,sje,fje])}function U6(){Hen();return zfn(fT(ude,1),g1n,304,0,[rde,ide,ade,cde])}function G6(){jyn();return zfn(fT(qme,1),g1n,332,0,[Hme,Bme,Ume,Gme])}function q6(){Tyn();return zfn(fT(Tke,1),g1n,406,0,[kke,mke,yke,Mke])}function X6(){ufn();return zfn(fT(mme,1),g1n,417,0,[pme,dme,gme,vme])}function V6(){Jfn();return zfn(fT(FTe,1),g1n,416,0,[DTe,KTe,xTe,RTe])}function z6(){Qfn();return zfn(fT(jAe,1),g1n,421,0,[kAe,yAe,MAe,TAe])}function W6(){Wfn();return zfn(fT(FCe,1),g1n,371,0,[KCe,xCe,RCe,DCe])}function Q6(){rMn();return zfn(fT(UBe,1),g1n,203,0,[BBe,HBe,_Be,FBe])}function J6(){Smn();return zfn(fT(wHe,1),g1n,284,0,[hHe,fHe,lHe,bHe])}function Y6(n){var e;return n.j==(UQn(),Y8e)&&(e=q$n(n),Fx(e,$8e))}function Z6(n,e){var t;t=e.a;f2(t,e.c.d);b2(t,e.d.d);Jsn(t.a,n.n)}function n5(n,e){var t;t=bG(hrn(n.b,e),67);!t&&(t=new vS);return t}function e5(n){tP();if(G$(n.g,154)){return bG(n.g,154)}return null}function t5(n){n.a=null;n.e=null;Jm(n.b.c,0);Jm(n.f.c,0);n.c=null}function r5(){r5=O;B$e=new wI(U2n,0);H$e=new wI("TOP_LEFT",1)}function i5(){i5=O;IGe=new AI("UPPER",0);CGe=new AI("LOWER",1)}function a5(n,e){return pD(new PO(e.e.a+e.f.a/2,e.e.b+e.f.b/2),n)}function c5(n,e){return bG(Sx(nz(bG(r7(n.k,e),15).Oc(),ALe)),113)}function u5(n,e){return bG(Sx(ez(bG(r7(n.k,e),15).Oc(),ALe)),113)}function s5(){Njn();return zfn(fT(hVe,1),g1n,405,0,[uVe,sVe,oVe,fVe])}function o5(){Tbn();return zfn(fT(zWe,1),g1n,353,0,[VWe,qWe,XWe,GWe])}function f5(){kTn();return zfn(fT(sYe,1),g1n,354,0,[uYe,aYe,cYe,iYe])}function h5(){emn();return zfn(fT(w9e,1),g1n,386,0,[l9e,b9e,h9e,f9e])}function l5(){xjn();return zfn(fT(Y5e,1),g1n,291,0,[J5e,z5e,W5e,Q5e])}function b5(){qgn();return zfn(fT(j5e,1),g1n,223,0,[T5e,y5e,k5e,M5e])}function w5(){Qvn();return zfn(fT(X9e,1),g1n,320,0,[q9e,H9e,G9e,U9e])}function d5(){Oln();return zfn(fT(m7e,1),g1n,415,0,[g7e,v7e,d7e,p7e])}function g5(n){n2();return Lz(ntt,n)?bG(fQ(ntt,n),341).Qg():null}function v5(n,e,t){return e<0?FNn(n,t):bG(t,69).wk().Bk(n,n.hi(),e)}function p5(n,e,t){var r;r=Imn(t);SHn(n.j,r,e);jJ(n.k,e,t);return e}function m5(n,e,t){var r;r=Imn(t);SHn(n.d,r,e);jJ(n.e,e,t);return e}function k5(n){var e,t;e=(yj(),t=new co,t);!!n&&xRn(e,n);return e}function y5(n){var e;e=n.aj(n.i);n.i>0&&QGn(n.g,0,e,0,n.i);return e}function M5(n,e){var t;for(t=n.j.c.length;t>24}function S5(n){if(n.p!=1)throw dm(new Bm);return MV(n.k)<<24>>24}function P5(n){if(n.p!=7)throw dm(new Bm);return MV(n.k)<<16>>16}function C5(n){if(n.p!=7)throw dm(new Bm);return MV(n.f)<<16>>16}function I5(n,e){if(e.e==0||n.e==0){return Rle}return p_n(),SKn(n,e)}function O5(n,e){return BA(e)===BA(n)?"(this Map)":e==null?CZn:fvn(e)}function A5(n,e,t){return HV(MK(_A(GX(n.f,e))),MK(_A(GX(n.f,t))))}function L5(n,e,t){var r;r=bG(fQ(n.g,t),60);ED(n.a.c,new nA(e,r))}function N5(n,e,t){n.i=0;n.e=0;if(e==t){return}uln(n,e,t);cln(n,e,t)}function $5(n,e,t,r,i){var a;a=Xxn(i,t,r);ED(e,bLn(i,a));RIn(n,i,e)}function D5(n,e,t,r,i){this.i=n;this.a=e;this.e=t;this.j=r;this.f=i}function x5(n,e){VZ.call(this);this.a=n;this.b=e;ED(this.a.b,this)}function R5(n){this.b=new rm;this.c=new rm;this.d=new rm;this.a=n}function K5(n,e){var t;t=new eT;n.Gd(t);t.a+="..";e.Hd(t);return t.a}function F5(n,e){var t;t=e;while(t){UR(n,t.i,t.j);t=H0(t)}return n}function _5(n,e,t){var r;r=Imn(t);jJ(n.b,r,e);jJ(n.c,e,t);return e}function B5(n){var e;e=0;while(n.Ob()){n.Pb();e=Rgn(e,1)}return hin(e)}function H5(n,e){LP();var t;t=bG(n,69).vk();bOn(t,e);return t.xl(e)}function U5(n,e,t){if(t){var r=t.oe();n.a[e]=r(t)}else{delete n.a[e]}}function G5(n,e){var t;t=n.q.getHours();n.q.setFullYear(e+V1n);$qn(n,t)}function q5(n,e){return bG(e==null?_A(GX(n.f,null)):qP(n.i,e),288)}function X5(n,e){return n==(YIn(),rEe)&&e==rEe?4:n==rEe||e==rEe?8:32}function V5(n,e,t){return hqn(n,e,t,G$(e,102)&&(bG(e,19).Bb&S0n)!=0)}function z5(n,e,t){return _qn(n,e,t,G$(e,102)&&(bG(e,19).Bb&S0n)!=0)}function W5(n,e,t){return Nxn(n,e,t,G$(e,102)&&(bG(e,19).Bb&S0n)!=0)}function Q5(n){if(n.b==n.c){return}n.a=$nn(kce,jZn,1,8,5,1);n.b=0;n.c=0}function J5(n){PK(n.a=0&&n.a[t]===e[t];t--);return t<0}function y8(n){var e;if(n){return new hX(n)}e=new JL;Gun(e,n);return e}function M8(n,e){var t,r;r=false;do{t=Chn(n,e);r=r|t}while(t);return r}function T8(n){n&&Nrn((Wy(),zfe));--qfe;if(n){if(Vfe!=-1){IL(Vfe);Vfe=-1}}}function j8(n){hCn();MD(this,MV(O3(FV(n,24),z0n)),MV(O3(n,z0n)))}function E8(){E8=O;yve=xbn((qkn(),zfn(fT(kve,1),g1n,436,0,[mve,pve])))}function S8(){S8=O;Eve=xbn((Jrn(),zfn(fT(jve,1),g1n,435,0,[Mve,Tve])))}function P8(){P8=O;xye=xbn((Yrn(),zfn(fT(Dye,1),g1n,432,0,[Nye,$ye])))}function C8(){C8=O;ASe=xbn((xsn(),zfn(fT(OSe,1),g1n,517,0,[ISe,CSe])))}function I8(){I8=O;G$e=xbn((r5(),zfn(fT(U$e,1),g1n,429,0,[B$e,H$e])))}function O8(){O8=O;FNe=xbn((Zrn(),zfn(fT(KNe,1),g1n,428,0,[xNe,RNe])))}function A8(){A8=O;t$e=xbn((ntn(),zfn(fT(e$e,1),g1n,488,0,[n$e,ZNe])))}function L8(){L8=O;mHe=xbn((arn(),zfn(fT(pHe,1),g1n,430,0,[gHe,vHe])))}function N8(){N8=O;AGe=xbn((i5(),zfn(fT(OGe,1),g1n,531,0,[IGe,CGe])))}function $8(){$8=O;pNe=xbn((V7(),zfn(fT(vNe,1),g1n,431,0,[dNe,gNe])))}function D8(){D8=O;ZWe=xbn((s3(),zfn(fT(YWe,1),g1n,433,0,[JWe,QWe])))}function x8(){x8=O;UQe=xbn((Mun(),zfn(fT(HQe,1),g1n,501,0,[_Qe,BQe])))}function R8(){R8=O;Oqe=xbn((p0(),zfn(fT(Iqe,1),g1n,523,0,[Cqe,Pqe])))}function K8(){K8=O;$qe=xbn((m0(),zfn(fT(Nqe,1),g1n,522,0,[Aqe,Lqe])))}function F8(){F8=O;TXe=xbn((q7(),zfn(fT(MXe,1),g1n,528,0,[yXe,kXe])))}function _8(){_8=O;JXe=xbn((v0(),zfn(fT(QXe,1),g1n,465,0,[zXe,WXe])))}function B8(){B8=O;bJe=xbn((Len(),zfn(fT(lJe,1),g1n,434,0,[fJe,hJe])))}function H8(){H8=O;ZZe=xbn((h9(),zfn(fT(YZe,1),g1n,491,0,[QZe,JZe])))}function U8(){U8=O;w1e=xbn((ofn(),zfn(fT(b1e,1),g1n,492,0,[h1e,l1e])))}function G8(){G8=O;Y1e=xbn((X7(),zfn(fT(J1e,1),g1n,438,0,[Q1e,W1e])))}function q8(){q8=O;J0e=xbn((Zfn(),zfn(fT(Q0e,1),g1n,437,0,[W0e,z0e])))}function X8(){X8=O;R9e=xbn((NU(),zfn(fT($9e,1),g1n,347,0,[L9e,N9e])))}function V8(){Bdn();return zfn(fT(b5e,1),g1n,88,0,[h5e,f5e,o5e,s5e,l5e])}function z8(){UQn();return zfn(fT(e9e,1),X4n,64,0,[Z8e,D8e,$8e,Y8e,n9e])}function W8(n,e,t){return bG(e==null?ZAn(n.f,null,t):Egn(n.i,e,t),288)}function Q8(n){return(n.k==(YIn(),rEe)||n.k==nEe)&&jR(n,(WYn(),eDe))}function J8(n){return!!n.c&&!!n.d?Y3(n.c)+"->"+Y3(n.d):"e_"+Bx(n)}function Y8(n,e){var t,r;cJ(e);for(r=n.Kc();r.Ob();){t=r.Pb();e.Cd(t)}}function Z8(n,e){var t;t=new qy;jZ(t,"x",e.a);jZ(t,"y",e.b);MQ(n,t)}function n9(n,e){var t;t=new qy;jZ(t,"x",e.a);jZ(t,"y",e.b);MQ(n,t)}function e9(n,e){var t;t=e;while(t){UR(n,-t.i,-t.j);t=H0(t)}return n}function t9(n,e){var t,r;t=e;r=0;while(t>0){r+=n.a[t];t-=t&-t}return r}function r9(n,e,t){var r;r=(b3(e,n.c.length),n.c[e]);n.c[e]=t;return r}function i9(n,e,t){n.a.c.length=0;wzn(n,e,t);n.a.c.length==0||MUn(n,e)}function a9(n){n.i=0;GP(n.b,null);GP(n.c,null);n.a=null;n.e=null;++n.g}function c9(){c9=O;Sde=true;jde=false;Ede=false;Cde=false;Pde=false}function u9(n){c9();if(Sde){return}this.c=n;this.e=true;this.a=new im}function s9(n,e){this.c=0;this.b=e;sL.call(this,n,17493);this.a=this.c}function o9(n){KYn();km(this);this.a=new vS;Rln(this,n);hq(this.a,n)}function f9(){$N(this);this.b=new PO(y0n,y0n);this.a=new PO(M0n,M0n)}function h9(){h9=O;QZe=new lO(D6n,0);JZe=new lO("TARGET_WIDTH",1)}function l9(n,e){return(jgn(n),eE(new gX(n,new stn(e,n.a)))).Bd(gge)}function b9(){bIn();return zfn(fT(sTe,1),g1n,367,0,[rTe,iTe,aTe,cTe,uTe])}function w9(){yPn();return zfn(fT(xAe,1),g1n,375,0,[LAe,$Ae,DAe,NAe,AAe])}function d9(){Emn();return zfn(fT($Ne,1),g1n,348,0,[ONe,INe,LNe,NNe,ANe])}function g9(){Myn();return zfn(fT(QBe,1),g1n,323,0,[WBe,XBe,VBe,qBe,zBe])}function v9(){Wvn();return zfn(fT(nxe,1),g1n,171,0,[ZDe,WDe,QDe,JDe,YDe])}function p9(){YPn();return zfn(fT(ZQe,1),g1n,368,0,[JQe,zQe,YQe,WQe,QQe])}function m9(){qRn();return zfn(fT(j1e,1),g1n,373,0,[k1e,m1e,M1e,y1e,T1e])}function k9(){MOn();return zfn(fT(i0e,1),g1n,324,0,[Z1e,n0e,r0e,e0e,t0e])}function y9(){Hkn();return zfn(fT(k3e,1),g1n,170,0,[p3e,v3e,d3e,m3e,g3e])}function M9(){Zkn();return zfn(fT(g8e,1),g1n,256,0,[b8e,d8e,h8e,l8e,w8e])}function T9(n){JM();return function(){return y6(n,this,arguments);var e}}function j9(n){if(!n.c||!n.d){return false}return!!n.c.i&&n.c.i==n.d.i}function E9(n,e){if(G$(e,143)){return T_(n.c,bG(e,143).c)}return false}function S9(n){if(!n.t){n.t=new Fp(n);Fdn(new eM(n),0,n.t)}return n.t}function P9(n){this.b=n;_D.call(this,n);this.a=bG(Ron(this.b.a,4),129)}function C9(n){this.b=n;aR.call(this,n);this.a=bG(Ron(this.b.a,4),129)}function I9(n,e,t,r,i){p7.call(this,e,r,i);Uh(this);this.c=n;this.b=t}function O9(n,e,t,r,i){f4.call(this,e,r,i);Uh(this);this.c=n;this.a=t}function A9(n,e,t,r,i){h4.call(this,e,r,i);Uh(this);this.c=n;this.a=t}function L9(n,e,t,r,i){p7.call(this,e,r,i);Uh(this);this.c=n;this.a=t}function N9(n,e){var t;t=bG(hrn(n.d,e),23);return t?t:bG(hrn(n.e,e),23)}function $9(n,e){var t,r;t=e.ld();r=n.Fe(t);return!!r&&DJ(r.e,e.md())}function D9(n,e){var t;t=e.ld();return new GE(t,n.e.pc(t,bG(e.md(),16)))}function x9(n,e){var t;t=n.a.get(e);return t==null?$nn(kce,jZn,1,0,5,1):t}function R9(n){var e;e=n.length;return T_(E0n.substr(E0n.length-e,e),n)}function K9(n){if(dDn(n)){n.c=n.a;return n.a.Pb()}else{throw dm(new Xm)}}function F9(n,e){if(e==0||n.e==0){return n}return e>0?PFn(n,e):omn(n,-e)}function _9(n,e){if(e==0||n.e==0){return n}return e>0?omn(n,e):PFn(n,-e)}function B9(n){BP.call(this,n==null?CZn:fvn(n),G$(n,82)?bG(n,82):null)}function H9(n){var e;if(!n.c){e=n.r;G$(e,90)&&(n.c=bG(e,29))}return n.c}function U9(n){var e;e=new zZ;Yon(e,n);Ehn(e,(IYn(),DFe),null);return e}function G9(n){var e,t;e=n.c.i;t=n.d.i;return e.k==(YIn(),nEe)&&t.k==nEe}function q9(n){var e,t,r;e=n&f0n;t=n>>22&f0n;r=n<0?h0n:0;return M$(e,t,r)}function X9(n){var e,t,r,i;for(t=n,r=0,i=t.length;r=0?n.Lh(r,t,true):r$n(n,e,t)}function W9(n,e,t){return bgn(pD(Fkn(n),_$(e.b)),pD(Fkn(n),_$(t.b)))}function Q9(n,e,t){return bgn(pD(Fkn(n),_$(e.e)),pD(Fkn(n),_$(t.e)))}function J9(n,e){return t.Math.min(hen(e.a,n.d.d.c),hen(e.b,n.d.d.c))}function Y9(n,e){n._i(n.i+1);SD(n,n.i,n.Zi(n.i,e));n.Mi(n.i++,e);n.Ni()}function Z9(n){var e,t;++n.j;e=n.g;t=n.i;n.g=null;n.i=0;n.Oi(t,e);n.Ni()}function n7(n,e,t){var r;r=new z$(n.a);Bsn(r,n.a.a);ZAn(r.f,e,t);n.a.a=r}function e7(n,e,t,r){var i;for(i=0;ie){throw dm(new kM(sLn(n,e,"index")))}return n}function s7(n,e){var t;t=(b3(e,n.c.length),n.c[e]);aE(n.c,e,1);return t}function o7(n,e){var t,r;t=(cJ(n),n);r=(cJ(e),e);return t==r?0:te.p){return-1}return 0}function O7(n){var e;if(!n.a){e=n.r;G$(e,156)&&(n.a=bG(e,156))}return n.a}function A7(n,e,t){var r;++n.e;--n.f;r=bG(n.d[e].gd(t),136);return r.md()}function L7(n){var e,t;e=n.ld();t=bG(n.md(),16);return tG(t.Nc(),new nb(e))}function N7(n,e){if(Lz(n.a,e)){b7(n.a,e);return true}else{return false}}function $7(n,e,t){Q4(e,n.e.Rd().gc());Q4(t,n.c.Rd().gc());return n.a[e][t]}function D7(n,e,t){this.a=n;this.b=e;this.c=t;ED(n.t,this);ED(e.i,this)}function x7(n,e,t,r){this.f=n;this.e=e;this.d=t;this.b=r;this.c=!r?null:r.d}function R7(){this.b=new vS;this.a=new vS;this.b=new vS;this.a=new vS}function K7(){K7=O;var n,e;Wut=(jj(),e=new Wm,e);Qut=(n=new ny,n)}function F7(n){var e;jgn(n);e=new vG(n,n.a.e,n.a.d|4);return new $K(n,e)}function _7(n){var e;WQ(n);e=0;while(n.a.Bd(new dn)){e=Rgn(e,1)}return e}function B7(n,e){cJ(e);if(n.c=0,"Initial capacity must not be negative")}function U7(){U7=O;L3e=new Np("org.eclipse.elk.labels.labelManager")}function G7(){G7=O;NCe=new bF("separateLayerConnections",(Wfn(),KCe))}function q7(){q7=O;yXe=new QI("REGULAR",0);kXe=new QI("CRITICAL",1)}function X7(){X7=O;Q1e=new vO("FIXED",0);W1e=new vO("CENTER_NODE",1)}function V7(){V7=O;dNe=new nI("QUADRATIC",0);gNe=new nI("SCANLINE",1)}function z7(){z7=O;TNe=xbn((Icn(),zfn(fT(MNe,1),g1n,322,0,[kNe,mNe,yNe])))}function W7(){W7=O;CNe=xbn((ocn(),zfn(fT(PNe,1),g1n,351,0,[jNe,SNe,ENe])))}function Q7(){Q7=O;VAe=xbn((yun(),zfn(fT(XAe,1),g1n,372,0,[qAe,GAe,UAe])))}function J7(){J7=O;GNe=xbn((Lhn(),zfn(fT(UNe,1),g1n,460,0,[BNe,_Ne,HNe])))}function Y7(){Y7=O;D$e=xbn((sfn(),zfn(fT($$e,1),g1n,299,0,[L$e,N$e,A$e])))}function Z7(){Z7=O;_$e=xbn((irn(),zfn(fT(F$e,1),g1n,311,0,[R$e,K$e,x$e])))}function nnn(){nnn=O;KBe=xbn((Nwn(),zfn(fT(RBe,1),g1n,390,0,[$Be,DBe,xBe])))}function enn(){enn=O;IHe=xbn((son(),zfn(fT(CHe,1),g1n,387,0,[EHe,SHe,PHe])))}function tnn(){tnn=O;$He=xbn((Aln(),zfn(fT(NHe,1),g1n,349,0,[LHe,OHe,AHe])))}function rnn(){rnn=O;jHe=xbn((fcn(),zfn(fT(THe,1),g1n,463,0,[MHe,kHe,yHe])))}function inn(){inn=O;_He=xbn((Ebn(),zfn(fT(FHe,1),g1n,350,0,[xHe,RHe,KHe])))}function ann(){ann=O;qHe=xbn((scn(),zfn(fT(GHe,1),g1n,352,0,[UHe,BHe,HHe])))}function cnn(){cnn=O;QHe=xbn((Yfn(),zfn(fT(WHe,1),g1n,388,0,[VHe,zHe,XHe])))}function unn(){unn=O;Sze=xbn((Lln(),zfn(fT(Eze,1),g1n,392,0,[jze,Tze,Mze])))}function snn(){snn=O;pJe=xbn((jbn(),zfn(fT(vJe,1),g1n,393,0,[wJe,dJe,gJe])))}function onn(){onn=O;wYe=xbn((uon(),zfn(fT(bYe,1),g1n,300,0,[hYe,lYe,fYe])))}function fnn(){fnn=O;SYe=xbn((tmn(),zfn(fT(EYe,1),g1n,445,0,[MYe,TYe,jYe])))}function hnn(){hnn=O;$Ye=xbn((iMn(),zfn(fT(NYe,1),g1n,456,0,[OYe,LYe,AYe])))}function lnn(){lnn=O;YYe=xbn((Xgn(),zfn(fT(JYe,1),g1n,394,0,[WYe,QYe,zYe])))}function bnn(){bnn=O;c1e=xbn((ktn(),zfn(fT(a1e,1),g1n,439,0,[t1e,i1e,r1e])))}function wnn(){wnn=O;YUe=xbn((ucn(),zfn(fT(JUe,1),g1n,464,0,[zUe,WUe,QUe])))}function dnn(){dnn=O;gpe=xbn((Uen(),zfn(fT(dpe,1),g1n,471,0,[bpe,lpe,wpe])))}function gnn(){gnn=O;upe=xbn((ran(),zfn(fT(cpe,1),g1n,237,0,[rpe,ipe,ape])))}function vnn(){vnn=O;Ppe=xbn((rrn(),zfn(fT(Spe,1),g1n,472,0,[Epe,jpe,Tpe])))}function pnn(){pnn=O;Dde=xbn((Sbn(),zfn(fT($de,1),g1n,108,0,[Ade,Lde,Nde])))}function mnn(){mnn=O;GMe=xbn((trn(),zfn(fT(UMe,1),g1n,391,0,[BMe,_Me,HMe])))}function knn(){knn=O;V5e=xbn((Dwn(),zfn(fT(X5e,1),g1n,346,0,[G5e,U5e,q5e])))}function ynn(){ynn=O;F1e=xbn((Hdn(),zfn(fT(K1e,1),g1n,444,0,[D1e,x1e,R1e])))}function Mnn(){Mnn=O;m5e=xbn((ian(),zfn(fT(p5e,1),g1n,278,0,[d5e,g5e,v5e])))}function Tnn(){Tnn=O;A9e=xbn(($wn(),zfn(fT(O9e,1),g1n,280,0,[C9e,P9e,I9e])))}function jnn(n,e){return!n.o&&(n.o=new ven((cYn(),int),Rnt,n,0)),Spn(n.o,e)}function Enn(n,e){var t;if(n.C){t=bG(xJ(n.b,e),127).n;t.d=n.C.d;t.a=n.C.a}}function Snn(n){var e,t,r,i;i=n.d;e=n.a;t=n.b;r=n.c;n.d=t;n.a=r;n.b=i;n.c=e}function Pnn(n){!n.g&&(n.g=new ko);!n.g.b&&(n.g.b=new Dp(n));return n.g.b}function Cnn(n){!n.g&&(n.g=new ko);!n.g.c&&(n.g.c=new Kp(n));return n.g.c}function Inn(n){!n.g&&(n.g=new ko);!n.g.d&&(n.g.d=new xp(n));return n.g.d}function Onn(n){!n.g&&(n.g=new ko);!n.g.a&&(n.g.a=new Rp(n));return n.g.a}function Ann(n,e,t,r){!!t&&(r=t.Rh(e,upn(t.Dh(),n.c.uk()),null,r));return r}function Lnn(n,e,t,r){!!t&&(r=t.Th(e,upn(t.Dh(),n.c.uk()),null,r));return r}function Nnn(n,e,t,r){var i;i=$nn(Ght,z1n,28,e+1,15,1);UGn(i,n,e,t,r);return i}function $nn(n,e,t,r,i,a){var c;c=LTn(i,r);i!=10&&zfn(fT(n,a),e,t,i,c);return c}function Dnn(n,e,t){var r,i;i=new ifn(e,n);for(r=0;rt||e=0?n.Lh(t,true,true):r$n(n,e,true)}function Een(n,e,t){var r;r=zhn(n,e,t);n.b=new _un(r.c.length);return i_n(n,r)}function Sen(n){if(n.b<=0)throw dm(new Xm);--n.b;n.a-=n.c.c;return Bwn(n.a)}function Pen(n){var e;if(!n.a){throw dm(new OY)}e=n.a;n.a=H0(n.a);return e}function Cen(n){while(!n.a){if(!S_(n.c,new Sd(n))){return false}}return true}function Ien(n){var e;nQ(n);if(G$(n,204)){e=bG(n,204);return e}return new wb(n)}function Oen(n){Aen();bG(n.of((JYn(),j6e)),181).Fc((uNn(),I8e));n.qf(T6e,null)}function Aen(){Aen=O;O2e=new ws;L2e=new ds;A2e=Hln((JYn(),T6e),O2e,t6e,L2e)}function Len(){Len=O;fJe=new aO("LEAF_NUMBER",0);hJe=new aO("NODE_SIZE",1)}function Nen(n){n.a=$nn(Ght,z1n,28,n.b+1,15,1);n.c=$nn(Ght,z1n,28,n.b,15,1);n.d=0}function $en(n,e){if(n.a.Ne(e.d,n.b)>0){ED(n.c,new mG(e.c,e.d,n.d));n.b=e.d}}function Den(n,e){if(n.g==null||e>=n.i)throw dm(new ML(e,n.i));return n.g[e]}function xen(n,e,t){yln(n,t);if(t!=null&&!n.fk(t)){throw dm(new Km)}return t}function Ren(n,e){Prn(e)!=10&&zfn(Cbn(e),e.Sm,e.__elementTypeId$,Prn(e),n);return n}function Ken(n,e,t,r){var i;r=(wZ(),!r?Nbe:r);i=n.slice(e,t);oLn(i,n,e,t,-e,r)}function Fen(n,e,t,r,i){return e<0?r$n(n,t,r):bG(t,69).wk().yk(n,n.hi(),e,r,i)}function _en(n,e){return bgn(bM(MK(lIn(n,(WYn(),$De)))),bM(MK(lIn(e,$De))))}function Ben(){Ben=O;hde=xbn((Hen(),zfn(fT(ude,1),g1n,304,0,[rde,ide,ade,cde])))}function Hen(){Hen=O;rde=new QP("All",0);ide=new AN;ade=new L$;cde=new ON}function Uen(){Uen=O;bpe=new hC(X2n,0);lpe=new hC(U2n,1);wpe=new hC(V2n,2)}function Gen(){Gen=O;cXn();Kot=y0n;Rot=M0n;_ot=new Hw(y0n);Fot=new Hw(M0n)}function qen(){qen=O;kme=xbn((ufn(),zfn(fT(mme,1),g1n,417,0,[pme,dme,gme,vme])))}function Xen(){Xen=O;jke=xbn((Tyn(),zfn(fT(Tke,1),g1n,406,0,[kke,mke,yke,Mke])))}function Ven(){Ven=O;Xme=xbn((jyn(),zfn(fT(qme,1),g1n,332,0,[Hme,Bme,Ume,Gme])))}function zen(){zen=O;bje=xbn((zmn(),zfn(fT(lje,1),g1n,389,0,[hje,oje,sje,fje])))}function Wen(){Wen=O;_Te=xbn((Jfn(),zfn(fT(FTe,1),g1n,416,0,[DTe,KTe,xTe,RTe])))}function Qen(){Qen=O;EAe=xbn((Qfn(),zfn(fT(jAe,1),g1n,421,0,[kAe,yAe,MAe,TAe])))}function Jen(){Jen=O;_Ce=xbn((Wfn(),zfn(fT(FCe,1),g1n,371,0,[KCe,xCe,RCe,DCe])))}function Yen(){Yen=O;GBe=xbn((rMn(),zfn(fT(UBe,1),g1n,203,0,[BBe,HBe,_Be,FBe])))}function Zen(){Zen=O;dHe=xbn((Smn(),zfn(fT(wHe,1),g1n,284,0,[hHe,fHe,lHe,bHe])))}function ntn(){ntn=O;n$e=new sI(G4n,0);ZNe=new sI("IMPROVE_STRAIGHTNESS",1)}function etn(n,e){var t,r;r=e/n.c.Rd().gc()|0;t=e%n.c.Rd().gc();return $7(n,r,t)}function ttn(n){var e;if(n.nl()){for(e=n.i-1;e>=0;--e){Yin(n,e)}}return y5(n)}function rtn(n){var e,t;if(!n.b){return null}t=n.b;while(e=t.a[0]){t=e}return t}function itn(n){var e,t;if(!n.b){return null}t=n.b;while(e=t.a[1]){t=e}return t}function atn(n){if(G$(n,180)){return""+bG(n,180).a}return n==null?null:fvn(n)}function ctn(n){if(G$(n,180)){return""+bG(n,180).a}return n==null?null:fvn(n)}function utn(n,e){if(e.a){throw dm(new Uy(g2n))}Gz(n.a,e);e.a=n;!n.j&&(n.j=e)}function stn(n,e){oL.call(this,e.zd(),e.yd()&-16449);cJ(n);this.a=n;this.c=e}function otn(n,e){return new RU(e,UR(_$(e.e),e.f.a+n,e.f.b+n),(Qx(),false))}function ftn(n,e){LU();return ED(n,new nA(e,Bwn(e.e.c.length+e.g.c.length)))}function htn(n,e){LU();return ED(n,new nA(e,Bwn(e.e.c.length+e.g.c.length)))}function ltn(){ltn=O;oYe=xbn((kTn(),zfn(fT(sYe,1),g1n,354,0,[uYe,aYe,cYe,iYe])))}function btn(){btn=O;WWe=xbn((Tbn(),zfn(fT(zWe,1),g1n,353,0,[VWe,qWe,XWe,GWe])))}function wtn(){wtn=O;lVe=xbn((Njn(),zfn(fT(hVe,1),g1n,405,0,[uVe,sVe,oVe,fVe])))}function dtn(){dtn=O;E5e=xbn((qgn(),zfn(fT(j5e,1),g1n,223,0,[T5e,y5e,k5e,M5e])))}function gtn(){gtn=O;Z5e=xbn((xjn(),zfn(fT(Y5e,1),g1n,291,0,[J5e,z5e,W5e,Q5e])))}function vtn(){vtn=O;d9e=xbn((emn(),zfn(fT(w9e,1),g1n,386,0,[l9e,b9e,h9e,f9e])))}function ptn(){ptn=O;V9e=xbn((Qvn(),zfn(fT(X9e,1),g1n,320,0,[q9e,H9e,G9e,U9e])))}function mtn(){mtn=O;k7e=xbn((Oln(),zfn(fT(m7e,1),g1n,415,0,[g7e,v7e,d7e,p7e])))}function ktn(){ktn=O;t1e=new bO(d7n,0);i1e=new bO(m9n,1);r1e=new bO(G4n,2)}function ytn(n,e,t,r,i){cJ(n);cJ(e);cJ(t);cJ(r);cJ(i);return new nW(n,e,r)}function Mtn(n,e){var t;t=bG(b7(n.e,e),400);if(t){fq(t);return t.e}return null}function Ttn(n,e){var t;t=Ctn(n,e,0);if(t==-1){return false}s7(n,t);return true}function jtn(n,e,t){var r;WQ(n);r=new bn;r.a=e;n.a.Nb(new aC(r,t));return r.a}function Etn(n){var e;WQ(n);e=$nn(zht,C0n,28,0,15,1);cE(n.a,new Td(e));return e}function Stn(n){var e;if(!lun(n)){throw dm(new Xm)}n.e=1;e=n.d;n.d=null;return e}function Ptn(n){var e;if(qL(n)){e=0-n;if(!isNaN(e)){return e}}return Oon(yhn(n))}function Ctn(n,e,t){for(;t=0?_yn(n,t,true,true):r$n(n,e,true)}function Ztn(n){var e;e=Uan(Ron(n,32));if(e==null){Fmn(n);e=Uan(Ron(n,32))}return e}function nrn(n){var e;if(!n.Oh()){e=sQ(n.Dh())-n.ji();n.$h().Mk(e)}return n.zh()}function ern(n,e){eke=new ue;Zme=e;nke=n;bG(nke.b,68);Hnn(nke,eke,null);AVn(nke)}function trn(){trn=O;BMe=new kC("XY",0);_Me=new kC("X",1);HMe=new kC("Y",2)}function rrn(){rrn=O;Epe=new lC("TOP",0);jpe=new lC(U2n,1);Tpe=new lC(W2n,2)}function irn(){irn=O;R$e=new bI(G4n,0);K$e=new bI("TOP",1);x$e=new bI(W2n,2)}function arn(){arn=O;gHe=new MI("INPUT_ORDER",0);vHe=new MI("PORT_DEGREE",1)}function crn(){crn=O;Phe=M$(f0n,f0n,524287);Che=M$(0,0,l0n);Ihe=q9(1);q9(2);Ohe=q9(0)}function urn(n){var e;if(n.d!=n.r){e=pEn(n);n.e=!!e&&e.lk()==uie;n.d=e}return n.e}function srn(n,e,t){var r;r=n.g[e];SD(n,e,n.Zi(e,t));n.Ri(e,t,r);n.Ni();return r}function orn(n,e){var t;t=n.dd(e);if(t>=0){n.gd(t);return true}else{return false}}function frn(n,e){var t;nQ(n);nQ(e);t=false;while(e.Ob()){t=t|n.Fc(e.Pb())}return t}function hrn(n,e){var t;t=bG(fQ(n.e,e),400);if(t){aD(n,t);return t.e}return null}function lrn(n){var e,t;e=n/60|0;t=n%60;if(t==0){return""+e}return""+e+":"+(""+t)}function brn(n,e){var t=n.a[e];var r=(Nhn(),jhe)[typeof t];return r?r(t):Zbn(typeof t)}function wrn(n,e){var t,r;jgn(n);r=new g7(e,n.a);t=new __(r);return new gX(n,t)}function drn(n){var e;e=n.b.c.length==0?null:Yq(n.b,0);e!=null&&Nun(n,0);return e}function grn(n,e){var t,r,i;i=e.c.i;t=bG(fQ(n.f,i),60);r=t.d.c-t.e.c;gsn(e.a,r,0)}function vrn(n,e){var t;++n.d;++n.c[e];t=e+1;while(t=0){++e[0]}}function krn(n,e){San(n,e==null||tB((cJ(e),e))||isNaN((cJ(e),e))?0:(cJ(e),e))}function yrn(n,e){Pan(n,e==null||tB((cJ(e),e))||isNaN((cJ(e),e))?0:(cJ(e),e))}function Mrn(n,e){Ean(n,e==null||tB((cJ(e),e))||isNaN((cJ(e),e))?0:(cJ(e),e))}function Trn(n,e){jan(n,e==null||tB((cJ(e),e))||isNaN((cJ(e),e))?0:(cJ(e),e))}function jrn(n,e,t){return pD(new PO(t.e.a+t.f.a/2,t.e.b+t.f.b/2),n)==(cJ(e),e)}function Ern(n,e){return G$(e,102)&&(bG(e,19).Bb&S0n)!=0?new SL(e,n):new ifn(e,n)}function Srn(n,e){return G$(e,102)&&(bG(e,19).Bb&S0n)!=0?new SL(e,n):new ifn(e,n)}function Prn(n){return n.__elementTypeCategory$==null?10:n.__elementTypeCategory$}function Crn(n,e){return e==(fB(),fB(),dwe)?n.toLocaleLowerCase():n.toLowerCase()}function Irn(n){if(!n.e){throw dm(new Xm)}n.c=n.a=n.e;n.e=n.e.e;--n.d;return n.a.f}function Orn(n){if(!n.c){throw dm(new Xm)}n.e=n.a=n.c;n.c=n.c.c;++n.d;return n.a.f}function Arn(n){var e;++n.a;for(e=n.c.a.length;n.an.a[r]&&(r=t)}return r}function Rrn(n){var e;e=bG(lIn(n,(WYn(),V$e)),313);if(e){return e.a==n}return false}function Krn(n){var e;e=bG(lIn(n,(WYn(),V$e)),313);if(e){return e.i==n}return false}function Frn(){Frn=O;oTe=xbn((bIn(),zfn(fT(sTe,1),g1n,367,0,[rTe,iTe,aTe,cTe,uTe])))}function _rn(){_rn=O;RAe=xbn((yPn(),zfn(fT(xAe,1),g1n,375,0,[LAe,$Ae,DAe,NAe,AAe])))}function Brn(){Brn=O;DNe=xbn((Emn(),zfn(fT($Ne,1),g1n,348,0,[ONe,INe,LNe,NNe,ANe])))}function Hrn(){Hrn=O;JBe=xbn((Myn(),zfn(fT(QBe,1),g1n,323,0,[WBe,XBe,VBe,qBe,zBe])))}function Urn(){Urn=O;exe=xbn((Wvn(),zfn(fT(nxe,1),g1n,171,0,[ZDe,WDe,QDe,JDe,YDe])))}function Grn(){Grn=O;nJe=xbn((YPn(),zfn(fT(ZQe,1),g1n,368,0,[JQe,zQe,YQe,WQe,QQe])))}function qrn(){qrn=O;E1e=xbn((qRn(),zfn(fT(j1e,1),g1n,373,0,[k1e,m1e,M1e,y1e,T1e])))}function Xrn(){Xrn=O;a0e=xbn((MOn(),zfn(fT(i0e,1),g1n,324,0,[Z1e,n0e,r0e,e0e,t0e])))}function Vrn(){Vrn=O;w5e=xbn((Bdn(),zfn(fT(b5e,1),g1n,88,0,[h5e,f5e,o5e,s5e,l5e])))}function zrn(){zrn=O;y3e=xbn((Hkn(),zfn(fT(k3e,1),g1n,170,0,[p3e,v3e,d3e,m3e,g3e])))}function Wrn(){Wrn=O;v8e=xbn((Zkn(),zfn(fT(g8e,1),g1n,256,0,[b8e,d8e,h8e,l8e,w8e])))}function Qrn(){Qrn=O;t9e=xbn((UQn(),zfn(fT(e9e,1),X4n,64,0,[Z8e,D8e,$8e,Y8e,n9e])))}function Jrn(){Jrn=O;Mve=new sC("BY_SIZE",0);Tve=new sC("BY_SIZE_AND_SHAPE",1)}function Yrn(){Yrn=O;Nye=new mC("EADES",0);$ye=new mC("FRUCHTERMAN_REINGOLD",1)}function Zrn(){Zrn=O;xNe=new aI("READING_DIRECTION",0);RNe=new aI("ROTATION",1)}function nin(){nin=O;UTe=new Le;GTe=new xe;BTe=new Re;HTe=new De;qTe=new Ke}function ein(n){this.b=new im;this.a=new im;this.c=new im;this.d=new im;this.e=n}function tin(n){this.g=n;this.f=new im;this.a=t.Math.min(this.g.c.c,this.g.d.c)}function rin(n,e,t){VF.call(this);ean(this);this.a=n;this.c=t;this.b=e.d;this.f=e.e}function iin(n,e,t){var r,i;for(i=new nd(t);i.a=0&&e0?e-1:e;return vj(pj(Ban(BG(new gy,t),n.n),n.j),n.k)}function oin(n){var e,t;t=(e=new ry,e);cen((!n.q&&(n.q=new gz(Irt,n,11,10)),n.q),t)}function fin(n){return((n.i&2)!=0?"interface ":(n.i&1)!=0?"":"class ")+(jK(n),n.o)}function hin(n){if(kwn(n,pZn)>0){return pZn}if(kwn(n,T1n)<0){return T1n}return MV(n)}function lin(n){if(n<3){Tcn(n,l1n);return n+1}if(n=-.01&&n.a<=Y2n&&(n.a=0);n.b>=-.01&&n.b<=Y2n&&(n.b=0);return n}function Cin(n){v_n();var e,t;t=U9n;for(e=0;et&&(t=n[e])}return t}function Iin(n,e){var t;t=OKn(n.Dh(),e);if(!t){throw dm(new jM(Uee+e+Xee))}return t}function Oin(n,e){var t;t=n;while(H0(t)){t=H0(t);if(t==e){return true}}return false}function Ain(n,e){var t,r,i;r=e.a.ld();t=bG(e.a.md(),16).gc();for(i=0;in||n>e){throw dm(new rT("fromIndex: 0, toIndex: "+n+W0n+e))}}function _in(n){if(n<0){throw dm(new jM("Illegal Capacity: "+n))}this.g=this.aj(n)}function Bin(n,e){r$();lcn(M1n);return t.Math.abs(n-e)<=M1n||n==e||isNaN(n)&&isNaN(e)}function Hin(n,e){var t,r,i,a;for(r=n.d,i=0,a=r.length;i0){n.a/=e;n.b/=e}return n}function Vin(n){var e;if(n.w){return n.w}else{e=D3(n);!!e&&!e.Vh()&&(n.w=e);return e}}function zin(n,e){var t,r;r=n.a;t=Edn(n,e,null);r!=e&&!n.e&&(t=LWn(n,e,t));!!t&&t.oj()}function Win(n,e,t){var r,i;r=e;do{i=bM(n.p[r.p])+t;n.p[r.p]=i;r=n.a[r.p]}while(r!=e)}function Qin(n,e,t){var r=function(){return n.apply(r,arguments)};e.apply(r,t);return r}function Jin(n){var e;if(n==null){return null}else{e=bG(n,195);return KCn(e,e.length)}}function Yin(n,e){if(n.g==null||e>=n.i)throw dm(new ML(e,n.i));return n.Wi(e,n.g[e])}function Zin(n,e){dZ();var t,r;r=new im;for(t=0;t=14&&e<=16)));return n}function Gan(n,e){var t;cJ(e);t=n[":"+e];jG(!!t,"Enum constant undefined: "+e);return t}function qan(n,e,t,r,i,a){var c;c=ZW(n,e);Han(t,c);c.i=i?8:0;c.f=r;c.e=i;c.g=a;return c}function Xan(n,e,t,r,i){this.d=e;this.k=r;this.f=i;this.o=-1;this.p=1;this.c=n;this.a=t}function Van(n,e,t,r,i){this.d=e;this.k=r;this.f=i;this.o=-1;this.p=2;this.c=n;this.a=t}function zan(n,e,t,r,i){this.d=e;this.k=r;this.f=i;this.o=-1;this.p=6;this.c=n;this.a=t}function Wan(n,e,t,r,i){this.d=e;this.k=r;this.f=i;this.o=-1;this.p=7;this.c=n;this.a=t}function Qan(n,e,t,r,i){this.d=e;this.j=r;this.e=i;this.o=-1;this.p=4;this.c=n;this.a=t}function Jan(n,e){var t,r,i,a;for(r=e,i=0,a=r.length;i=0)){throw dm(new jM("tolerance ("+n+") must be >= 0"))}return n}function bcn(n,e){var t;if(G$(e,44)){return n.c.Mc(e)}else{t=Spn(n,e);Amn(n,e);return t}}function wcn(n,e,t){Ubn(n,e);Qun(n,t);Lan(n,0);Nan(n,1);Tdn(n,true);kdn(n,true);return n}function dcn(n,e){var t;t=n.gc();if(e<0||e>t)throw dm(new m_(e,t));return new K_(n,e)}function gcn(n,e){n.b=t.Math.max(n.b,e.d);n.e+=e.r+(n.a.c.length==0?0:n.c);ED(n.a,e)}function vcn(n){CK(n.c>=0);if(Hmn(n.d,n.c)<0){n.a=n.a-1&n.d.a.length-1;n.b=n.d.c}n.c=-1}function pcn(n){var e,t;for(t=n.c.Cc().Kc();t.Ob();){e=bG(t.Pb(),16);e.$b()}n.c.$b();n.d=0}function mcn(n){var e,t,r,i;for(t=n.a,r=0,i=t.length;r=0}function Xcn(n,e){if(n.r>0&&n.c0&&n.g!=0&&Xcn(n.i,e/n.r*n.i.d)}}function Vcn(n,e){var t;t=n.c;n.c=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,1,t,n.c))}function zcn(n,e){var t;t=n.c;n.c=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,4,t,n.c))}function Wcn(n,e){var t;t=n.k;n.k=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,2,t,n.k))}function Qcn(n,e){var t;t=n.D;n.D=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,2,t,n.D))}function Jcn(n,e){var t;t=n.f;n.f=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,8,t,n.f))}function Ycn(n,e){var t;t=n.i;n.i=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,7,t,n.i))}function Zcn(n,e){var t;t=n.a;n.a=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,8,t,n.a))}function nun(n,e){var t;t=n.b;n.b=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,0,t,n.b))}function eun(n,e){var t;t=n.b;n.b=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,0,t,n.b))}function tun(n,e){var t;t=n.c;n.c=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,1,t,n.c))}function run(n,e){var t;t=n.d;n.d=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,1,t,n.d))}function iun(n,e,t){var r;n.b=e;n.a=t;r=(n.a&512)==512?new hy:new Fh;n.c=QFn(r,n.b,n.a)}function aun(n,e){return OFn(n.e,e)?(LP(),urn(e)?new Nq(e,n):new DA(e,n)):new LA(e,n)}function cun(n){var e,t;if(0>n){return new TS}e=n+1;t=new s9(e,n);return new DK(null,t)}function uun(n,e){dZ();var t;t=new wS(1);HA(n)?o2(t,n,e):ZAn(t.f,n,e);return new Zw(t)}function sun(n,e){var t,r;t=n.c;r=e.e[n.p];if(r>0){return bG(Yq(t.a,r-1),10)}return null}function oun(n,e){var t,r;t=n.o+n.p;r=e.o+e.p;if(te){e<<=1;return e>0?e:w1n}return e}function lun(n){qD(n.e!=3);switch(n.e){case 2:return false;case 0:return true}return h7(n)}function bun(n,e){var t;if(G$(e,8)){t=bG(e,8);return n.a==t.a&&n.b==t.b}else{return false}}function wun(n,e){var t;t=new ue;bG(e.b,68);bG(e.b,68);bG(e.b,68);Lin(e.a,new FU(n,t,e))}function dun(n,e){var t,r;for(r=e.vc().Kc();r.Ob();){t=bG(r.Pb(),44);oSn(n,t.ld(),t.md())}}function gun(n,e){var t;t=n.d;n.d=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,11,t,n.d))}function vun(n,e){var t;t=n.j;n.j=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,13,t,n.j))}function pun(n,e){var t;t=n.b;n.b=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,21,t,n.b))}function mun(n,e){((c9(),Sde)?null:e.c).length==0&&HK(e,new W);o2(n.a,Sde?null:e.c,e)}function kun(n,e){e.Ug("Hierarchical port constraint processing",1);hyn(n);SYn(n);e.Vg()}function yun(){yun=O;qAe=new ZC("START",0);GAe=new ZC("MIDDLE",1);UAe=new ZC("END",2)}function Mun(){Mun=O;_Qe=new rO("P1_NODE_PLACEMENT",0);BQe=new rO("P2_EDGE_ROUTING",1)}function Tun(){Tun=O;wMe=new Np(j4n);dMe=new Np(E4n);bMe=new Np(S4n);lMe=new Np(P4n)}function jun(n){var e;DB(n.f.g,n.d);PK(n.b);n.c=n.a;e=bG(n.a.Pb(),44);n.b=Lfn(n);return e}function Eun(n){var e;if(n.b==null){return OP(),OP(),dat}e=n.ul()?n.tl():n.sl();return e}function Sun(n,e){var t;t=e==null?-1:Ctn(n.b,e,0);if(t<0){return false}Nun(n,t);return true}function Pun(n,e){var t;cJ(e);t=e.g;if(!n.b[t]){bQ(n.b,t,e);++n.c;return true}return false}function Cun(n,e){var t,r;t=1-e;r=n.a[t];n.a[t]=r.a[e];r.a[e]=n;n.b=true;r.b=false;return r}function Iun(n,e){var t,r;for(r=e.Kc();r.Ob();){t=bG(r.Pb(),272);n.b=true;Gz(n.e,t);t.b=n}}function Oun(n,e){var t,r;t=bG(lIn(n,(IYn(),S_e)),8);r=bG(lIn(e,S_e),8);return bgn(t.b,r.b)}function Aun(n,e,t){var r,i,a;a=e>>5;i=e&31;r=O3(_V(n.n[t][a],MV(KV(i,1))),3);return r}function Lun(n,e,t){var r,i,a;a=n.a.length-1;for(i=n.b,r=0;r0?1:0}return(!n.c&&(n.c=I2(Xon(n.f))),n.c).e}function csn(n,e){if(e){if(n.B==null){n.B=n.D;n.D=null}}else if(n.B!=null){n.D=n.B;n.B=null}}function usn(n,e){Jfn();return n==DTe&&e==KTe||n==KTe&&e==DTe||n==RTe&&e==xTe||n==xTe&&e==RTe}function ssn(n,e){Jfn();return n==DTe&&e==xTe||n==DTe&&e==RTe||n==KTe&&e==RTe||n==KTe&&e==xTe}function osn(n,e){return r$(),lcn(Y2n),t.Math.abs(0-e)<=Y2n||0==e||isNaN(0)&&isNaN(e)?0:n/e}function fsn(n,e){return bM(MK(Sx(fdn(rY(new gX(null,new d3(n.c.b,16)),new qg(n)),e))))}function hsn(n,e){return bM(MK(Sx(fdn(rY(new gX(null,new d3(n.c.b,16)),new Gg(n)),e))))}function lsn(){o_n();return zfn(fT(I$e,1),g1n,259,0,[k$e,M$e,T$e,j$e,E$e,S$e,C$e,m$e,y$e,P$e])}function bsn(){CHn();return zfn(fT(sHe,1),g1n,243,0,[cHe,eHe,iHe,tHe,rHe,YBe,aHe,uHe,ZBe,nHe])}function wsn(n,e){var t;e.Ug("General Compactor",1);t=Xvn(bG(YDn(n,(IOn(),KJe)),393));t.Cg(n)}function dsn(n,e){var t,r;t=bG(YDn(n,(IOn(),qJe)),17);r=bG(YDn(e,qJe),17);return k$(t.a,r.a)}function gsn(n,e,t){var r,i;for(i=Gkn(n,0);i.b!=i.d.c;){r=bG($6(i),8);r.a+=e;r.b+=t}return n}function vsn(n,e,t){var r;for(r=n.b[t&n.f];r;r=r.b){if(t==r.a&&BQ(e,r.g)){return r}}return null}function psn(n,e,t){var r;for(r=n.c[t&n.f];r;r=r.d){if(t==r.f&&BQ(e,r.i)){return r}}return null}function msn(n,e,t){var r,i,a;r=0;for(i=0;i>>31}r!=0&&(n[t]=r)}function ksn(n,e,t,r,i,a){var c;this.c=n;c=new im;cTn(n,c,e,n.b,t,r,i,a);this.a=new K4(c,0)}function ysn(){this.c=new Zj(0);this.b=new Zj(K9n);this.d=new Zj(R9n);this.a=new Zj(F3n)}function Msn(n,e,t,r,i,a,c){qE.call(this,n,e);this.d=t;this.e=r;this.c=i;this.b=a;this.a=a7(c)}function Tsn(n,e,t,r,i,a,c,u,s,o,f,h,l){uLn(n,e,t,r,i,a,c,u,s,o,f,h,l);Agn(n,false);return n}function jsn(n){if(n.b.c.i.k==(YIn(),nEe)){return bG(lIn(n.b.c.i,(WYn(),EDe)),12)}return n.b.c}function Esn(n){if(n.b.d.i.k==(YIn(),nEe)){return bG(lIn(n.b.d.i,(WYn(),EDe)),12)}return n.b.d}function Ssn(n){var e;e=c6(n);if(qA(e.a,0)){return yS(),yS(),jwe}return yS(),new kR(e.b)}function Psn(n){var e;e=i6(n);if(qA(e.a,0)){return kS(),kS(),Mwe}return kS(),new mR(e.b)}function Csn(n){var e;e=i6(n);if(qA(e.a,0)){return kS(),kS(),Mwe}return kS(),new mR(e.c)}function Isn(n){switch(n.g){case 2:return UQn(),n9e;case 4:return UQn(),$8e;default:return n}}function Osn(n){switch(n.g){case 1:return UQn(),Y8e;case 3:return UQn(),D8e;default:return n}}function Asn(n){switch(n.g){case 0:return new Zu;case 1:return new ns;default:return null}}function Lsn(){Lsn=O;MCe=new bF("edgelabelcenterednessanalysis.includelabel",(Qx(),Bhe))}function Nsn(){Nsn=O;UUe=Rmn(yL(xq(xq(new mJ,(bIn(),aTe),(YYn(),qPe)),cTe,DPe),uTe),GPe)}function $sn(){$sn=O;uGe=Rmn(yL(xq(xq(new mJ,(bIn(),aTe),(YYn(),qPe)),cTe,DPe),uTe),GPe)}function Dsn(){Dsn=O;Cit=new ey;Oit=zfn(fT(mrt,1),pie,179,0,[]);Iit=zfn(fT(Irt,1),mie,62,0,[])}function xsn(){xsn=O;ISe=new LC("TO_INTERNAL_LTR",0);CSe=new LC("TO_INPUT_DIRECTION",1)}function Rsn(){Rsn=O;bEe=new Xe;hEe=new Ve;lEe=new ze;fEe=new We;wEe=new Qe;dEe=new Je}function Ksn(n,e){e.Ug(d6n,1);xvn(GS(new xd((YS(),new TY(n,false,false,new Ge)))));e.Vg()}function Fsn(n,e,t){t.Ug("DFS Treeifying phase",1);Qpn(n,e);QKn(n,e);n.a=null;n.b=null;t.Vg()}function _sn(n,e){Qx();return HA(n)?o7(n,TK(e)):GA(n)?HV(n,MK(e)):UA(n)?BV(n,yK(e)):n.Fd(e)}function Bsn(n,e){var t,r;cJ(e);for(r=e.vc().Kc();r.Ob();){t=bG(r.Pb(),44);n.zc(t.ld(),t.md())}}function Hsn(n,e,t){var r;for(r=t.Kc();r.Ob();){if(!V5(n,e,r.Pb())){return false}}return true}function Usn(n,e,t,r,i){var a;if(t){a=upn(e.Dh(),n.c);i=t.Rh(e,-1-(a==-1?r:a),null,i)}return i}function Gsn(n,e,t,r,i){var a;if(t){a=upn(e.Dh(),n.c);i=t.Th(e,-1-(a==-1?r:a),null,i)}return i}function qsn(n){var e;if(n.b==-2){if(n.e==0){e=-1}else{for(e=0;n.a[e]==0;e++);}n.b=e}return n.b}function Xsn(n){cJ(n);if(n.length==0){throw dm(new iT("Zero length BigInteger"))}QHn(this,n)}function Vsn(n){this.i=n.gc();if(this.i>0){this.g=this.aj(this.i+(this.i/8|0)+1);n.Qc(this.g)}}function zsn(n,e,t){this.g=n;this.d=e;this.e=t;this.a=new im;HLn(this);dZ();g$(this.a,null)}function Wsn(n,e){e.q=n;n.d=t.Math.max(n.d,e.r);n.b+=e.d+(n.a.c.length==0?0:n.c);ED(n.a,e)}function Qsn(n,e){var t,r,i,a;i=n.c;t=n.c+n.b;a=n.d;r=n.d+n.a;return e.a>i&&e.aa&&e.bi?t=i:w3(e,t+1);n.a=o1(n.a,0,e)+(""+r)+wQ(n.a,t)}function Ton(n,e){n.a=Rgn(n.a,1);n.c=t.Math.min(n.c,e);n.b=t.Math.max(n.b,e);n.d=Rgn(n.d,e)}function jon(n,e){return e1||n.Ob()){++n.a;n.g=0;e=n.i;n.Ob();return e}else{throw dm(new Xm)}}function Gon(n){switch(n.a.g){case 1:return new UI;case 3:return new YTn;default:return new Tl}}function qon(n,e){switch(e){case 1:return!!n.n&&n.n.i!=0;case 2:return n.k!=null}return I4(n,e)}function Xon(n){if(g0n>22);i=n.h+e.h+(r>>22);return M$(t&f0n,r&f0n,i&h0n)}function Cfn(n,e){var t,r,i;t=n.l-e.l;r=n.m-e.m+(t>>22);i=n.h-e.h+(r>>22);return M$(t&f0n,r&f0n,i&h0n)}function Ifn(n){var e,t;XQn(n);for(t=new nd(n.d);t.ar)throw dm(new m_(e,r));n.Si()&&(t=x0(n,t));return n.Ei(e,t)}function mhn(n,e,t,r,i){var a,c;for(c=t;c<=i;c++){for(a=e;a<=r;a++){uTn(n,a,c)||VBn(n,a,c,true,false)}}}function khn(n){v_n();var e,t,r;t=$nn(D3e,XZn,8,2,0,1);r=0;for(e=0;e<2;e++){r+=.5;t[e]=nTn(r,n)}return t}function yhn(n){var e,t,r;e=~n.l+1&f0n;t=~n.m+(e==0?1:0)&f0n;r=~n.h+(e==0&&t==0?1:0)&h0n;return M$(e,t,r)}function Mhn(n){var e;if(n<0){return T1n}else if(n==0){return 0}else{for(e=w1n;(e&n)==0;e>>=1);return e}}function Thn(n,e,t){if(n>=128)return false;return n<64?VA(O3(KV(1,n),t),0):VA(O3(KV(1,n-64),e),0)}function jhn(n,e,t){return t==null?(!n.q&&(n.q=new rm),b7(n.q,e)):(!n.q&&(n.q=new rm),jJ(n.q,e,t)),n}function Ehn(n,e,t){t==null?(!n.q&&(n.q=new rm),b7(n.q,e)):(!n.q&&(n.q=new rm),jJ(n.q,e,t));return n}function Shn(n){var e,t;t=new k7;Yon(t,n);Ehn(t,(Tun(),wMe),n);e=new rm;Eqn(n,t,e);YWn(n,t,e);return t}function Phn(n){var e,t;e=n.t-n.k[n.o.p]*n.d+n.j[n.o.p]>n.f;t=n.u+n.e[n.o.p]*n.d>n.f*n.s*n.d;return e||t}function Chn(n,e){var t,r,i,a;t=false;r=n.a[e].length;for(a=0;a=0,"Negative initial capacity");jG(e>=0,"Non-positive load factor");Fz(this)}function Fhn(n,e,t,r,i){var a,c;c=n.length;a=t.length;if(e<0||r<0||i<0||e+i>c||r+i>a){throw dm(new Rm)}}function _hn(n,e){dZ();var t,r,i,a,c;c=false;for(r=e,i=0,a=r.length;i1||e>=0&&n.b<3}function rln(n){var e,t,r;e=~n.l+1&f0n;t=~n.m+(e==0?1:0)&f0n;r=~n.h+(e==0&&t==0?1:0)&h0n;n.l=e;n.m=t;n.h=r}function iln(n){dZ();var e,t,r;r=1;for(t=n.Kc();t.Ob();){e=t.Pb();r=31*r+(e!=null?Vun(e):0);r=r|0}return r}function aln(n,e,t,r,i){var a;a=yDn(n,e);t&&rln(a);if(i){n=dTn(n,e);r?She=yhn(n):She=M$(n.l,n.m,n.h)}return a}function cln(n,e,t){n.g=TAn(n,e,(UQn(),$8e),n.b);n.d=TAn(n,t,$8e,n.b);if(n.g.c==0||n.d.c==0){return}xIn(n)}function uln(n,e,t){n.g=TAn(n,e,(UQn(),n9e),n.j);n.d=TAn(n,t,n9e,n.j);if(n.g.c==0||n.d.c==0){return}xIn(n)}function sln(n,e){switch(e){case 7:return!!n.e&&n.e.i!=0;case 8:return!!n.d&&n.d.i!=0}return Uvn(n,e)}function oln(n,e){switch(e.g){case 0:G$(n.b,641)||(n.b=new von);break;case 1:G$(n.b,642)||(n.b=new YG)}}function fln(n){switch(n.g){case 0:return new cs;default:throw dm(new jM(hne+(n.f!=null?n.f:""+n.g)))}}function hln(n){switch(n.g){case 0:return new is;default:throw dm(new jM(hne+(n.f!=null?n.f:""+n.g)))}}function lln(n,e,t){return!eE(tY(new gX(null,new d3(n.c,16)),new dd(new WO(e,t)))).Bd((jS(),gge))}function bln(n,e){return pD(Fkn(bG(lIn(e,(eqn(),wWe)),88)),new PO(n.c.e.a-n.b.e.a,n.c.e.b-n.b.e.b))<=0}function wln(n,e){while(n.g==null&&!n.c?D0(n):n.g==null||n.i!=0&&bG(n.g[n.i-1],51).Ob()){SA(e,nRn(n))}}function dln(n){var e,t;for(t=new nd(n.a.b);t.ar?1:0}function Sln(n){ED(n.c,(nhn(),f2e));if(Bin(n.a,bM(MK(tyn((vpn(),kBe)))))){return new Js}return new Yv(n)}function Pln(n){while(!n.d||!n.d.Ob()){if(!!n.b&&!RM(n.b)){n.d=bG(Bz(n.b),51)}else{return null}}return n.d}function Cln(n){switch(n.g){case 1:return R9n;default:case 2:return 0;case 3:return F3n;case 4:return K9n}}function Iln(){eZn();var n;if(aht)return aht;n=uR(EJn("M",true));n=NX(EJn("M",false),n);aht=n;return aht}function Oln(){Oln=O;g7e=new bA("ELK",0);v7e=new bA("JSON",1);d7e=new bA("DOT",2);p7e=new bA("SVG",3)}function Aln(){Aln=O;LHe=new EI("STACKED",0);OHe=new EI("REVERSE_STACKED",1);AHe=new EI("SEQUENCED",2)}function Lln(){Lln=O;jze=new nO(G4n,0);Tze=new nO("MIDDLE_TO_MIDDLE",1);Mze=new nO("AVOID_OVERLAP",2)}function Nln(){Nln=O;wIe=new Ir;dIe=new Or;bIe=new Pr;lIe=new Ar;hIe=new Cr;fIe=(cJ(hIe),new R)}function $ln(){$ln=O;F5e=new NN(15);K5e=new qN((JYn(),c6e),F5e);_5e=I6e;$5e=v4e;D5e=J4e;R5e=n6e;x5e=Z4e}function Dln(n,e){var t,r,i,a,c;for(r=e,i=0,a=r.length;i=n.b.c.length){return}qln(n,2*e+1);t=2*e+2;t0){e.Cd(t);t.i&&ign(t)}}}function Vln(n,e,t){var r;for(r=t-1;r>=0&&n[r]===e[r];r--);return r<0?0:FP(O3(n[r],A0n),O3(e[r],A0n))?-1:1}function zln(n,e,t){var r,i;this.g=n;this.c=e;this.a=this;this.d=this;i=hun(t);r=$nn(Loe,h1n,227,i,0,1);this.b=r}function Wln(n,e,t,r,i){var a,c;for(c=t;c<=i;c++){for(a=e;a<=r;a++){if(uTn(n,a,c)){return true}}}return false}function Qln(n,e){var t,r;for(r=n.Zb().Cc().Kc();r.Ob();){t=bG(r.Pb(),16);if(t.Hc(e)){return true}}return false}function Jln(n,e,t){var r,i,a,c;cJ(t);c=false;a=n.fd(e);for(i=t.Kc();i.Ob();){r=i.Pb();a.Rb(r);c=true}return c}function Yln(n,e){var t,r;r=bG(Ron(n.a,4),129);t=$nn(utt,Bre,424,e,0,1);r!=null&&QGn(r,0,t,0,r.length);return t}function Zln(n,e){var t;t=new iBn((n.f&256)!=0,n.i,n.a,n.d,(n.f&16)!=0,n.j,n.g,e);n.e!=null||(t.c=n);return t}function nbn(n,e){var t;if(n===e){return true}else if(G$(e,85)){t=bG(e,85);return DOn(PV(n),t.vc())}return false}function ebn(n,e,t){var r,i;for(i=t.Kc();i.Ob();){r=bG(i.Pb(),44);if(n.Be(e,r.md())){return true}}return false}function tbn(n,e,t){if(!n.d[e.p][t.p]){Uyn(n,e,t);n.d[e.p][t.p]=true;n.d[t.p][e.p]=true}return n.a[e.p][t.p]}function rbn(n,e){var t;if(!n||n==e||!jR(e,(WYn(),wDe))){return false}t=bG(lIn(e,(WYn(),wDe)),10);return t!=n}function ibn(n){switch(n.i){case 2:{return true}case 1:{return false}case-1:{++n.c}default:{return n.$l()}}}function abn(n){switch(n.i){case-2:{return true}case-1:{return false}case 1:{--n.c}default:{return n._l()}}}function cbn(n){z0.call(this,"The given string does not match the expected format for individual spacings.",n)}function ubn(n,e){var t;e.Ug("Min Size Preprocessing",1);t=BAn(n);Pyn(n,(vBn(),qYe),t.a);Pyn(n,HYe,t.b);e.Vg()}function sbn(n){var e,t,r;e=0;r=$nn(D3e,XZn,8,n.b,0,1);t=Gkn(n,0);while(t.b!=t.d.c){r[e++]=bG($6(t),8)}return r}function obn(n,e,t){var r,i,a;r=new vS;for(a=Gkn(t,0);a.b!=a.d.c;){i=bG($6(a),8);hq(r,new uN(i))}Jln(n,e,r)}function fbn(n,e){var t;t=Rgn(n,e);if(FP(L3(n,e),0)|XA(L3(n,t),0)){return t}return Rgn(JZn,L3(_V(t,63),1))}function hbn(n,e){var t,r;t=bG(n.d.Bc(e),16);if(!t){return null}r=n.e.hc();r.Gc(t);n.e.d-=t.gc();t.$b();return r}function lbn(n){var e;e=n.a.c.length;if(e>0){return ZV(e-1,n.a.c.length),s7(n.a,e-1)}else{throw dm(new qm)}}function bbn(n,e,t){if(n>e){throw dm(new jM(c2n+n+u2n+e))}if(n<0||e>t){throw dm(new rT(c2n+n+s2n+e+W0n+t))}}function wbn(n,e){if(n.D==null&&n.B!=null){n.D=n.B;n.B=null}Qcn(n,e==null?null:(cJ(e),e));!!n.C&&n.hl(null)}function dbn(n,e){var t;t=tyn((vpn(),kBe))!=null&&e.Sg()!=null?bM(MK(e.Sg()))/bM(MK(tyn(kBe))):1;jJ(n.b,e,t)}function gbn(n,e){var t,r;r=n.c[e];if(r==0){return}n.c[e]=0;n.d-=r;t=e+1;while(tx9n?n-r>x9n:r-n>x9n}function ewn(n,e){var t;for(t=0;ti){zSn(e.q,i);r=t!=e.q.d}}return r}function iwn(n,e){var r,i,a,c,u,s,o,f;o=e.i;f=e.j;i=n.f;a=i.i;c=i.j;u=o-a;s=f-c;r=t.Math.sqrt(u*u+s*s);return r}function awn(n,e){var t,r;r=Umn(n);if(!r){!Int&&(Int=new Lo);t=(rVn(),wxn(e));r=new Jp(t);cen(r.El(),n)}return r}function cwn(n,e){var t,r;t=bG(n.c.Bc(e),16);if(!t){return n.jc()}r=n.hc();r.Gc(t);n.d-=t.gc();t.$b();return n.mc(r)}function uwn(n,e){var t,r;r=bRn(n.d,1)!=0;t=true;while(t){t=false;t=e.c.mg(e.e,r);t=t|LKn(n,e,r,false);r=!r}Wun(n)}function swn(n,e,t,r){var i,a;n.a=e;a=r?0:1;n.f=(i=new qOn(n.c,n.a,t,a),new uBn(t,n.a,i,n.e,n.b,n.c==(ucn(),WUe)))}function own(n){var e;PK(n.a!=n.b);e=n.d.a[n.a];IK(n.b==n.d.c&&e!=null);n.c=n.a;n.a=n.a+1&n.d.a.length-1;return e}function fwn(n){var e;if(n.c!=0){return n.c}for(e=0;e=n.c.b:n.a<=n.c.b)){throw dm(new Xm)}e=n.a;n.a+=n.c.c;++n.b;return Bwn(e)}function lwn(n){var e;e=new A$(n.a);Yon(e,n);Ehn(e,(WYn(),EDe),n);e.o.a=n.g;e.o.b=n.f;e.n.a=n.i;e.n.b=n.j;return e}function bwn(n){return(UQn(),X8e).Hc(n.j)?bM(MK(lIn(n,(WYn(),UDe)))):Whn(zfn(fT(D3e,1),XZn,8,0,[n.i.n,n.n,n.a])).b}function wwn(n){var e;e=hN(_Ue);bG(lIn(n,(WYn(),oDe)),21).Hc((o_n(),E$e))&&xq(e,(bIn(),aTe),(YYn(),ZPe));return e}function dwn(n){var e,t,r,i;i=new uk;for(r=new nd(n);r.a=0?e:-e;while(r>0){if(r%2==0){t*=t;r=r/2|0}else{i*=t;r-=1}}return e<0?1/i:i}function Mwn(n,e){var t,r,i;i=1;t=n;r=e>=0?e:-e;while(r>0){if(r%2==0){t*=t;r=r/2|0}else{i*=t;r-=1}}return e<0?1/i:i}function Twn(n,e){var t,r,i,a;a=(i=n?Umn(n):null,gLn((r=e,i?i.Gl():null,r)));if(a==e){t=Umn(n);!!t&&t.Gl()}return a}function jwn(n,e,t){var r,i;i=n.f;n.f=e;if((n.Db&4)!=0&&(n.Db&1)==0){r=new vz(n,1,0,i,e);!t?t=r:t.nj(r)}return t}function Ewn(n,e,t){var r,i;i=n.b;n.b=e;if((n.Db&4)!=0&&(n.Db&1)==0){r=new vz(n,1,3,i,e);!t?t=r:t.nj(r)}return t}function Swn(n,e,t){var r,i;i=n.a;n.a=e;if((n.Db&4)!=0&&(n.Db&1)==0){r=new vz(n,1,1,i,e);!t?t=r:t.nj(r)}return t}function Pwn(n){var e,t,r,i;if(n!=null){for(t=0;t=r||e-129&&n<128){return JG(),e=n+128,t=rle[e],!t&&(t=rle[e]=new $w(n)),t}return new $w(n)}function Hwn(n){var e,t;if(n>-129&&n<128){return uX(),e=n+128,t=dle[e],!t&&(t=dle[e]=new xw(n)),t}return new xw(n)}function Uwn(n,e){var t;if(n.a.c.length>0){t=bG(Yq(n.a,n.a.c.length-1),579);if(Rln(t,e)){return}}ED(n.a,new o9(e))}function Gwn(n){WB();var e,t;e=n.d.c-n.e.c;t=bG(n.g,154);Lin(t.b,new Lg(e));Lin(t.c,new Ng(e));Y8(t.i,new $g(e))}function qwn(n){var e;e=new nT;e.a+="VerticalSegment ";eL(e,n.e);e.a+=" ";tL(e,UD(new GM,new nd(n.k)));return e.a}function Xwn(n,e){var t,r,i;t=0;for(i=_gn(n,e).Kc();i.Ob();){r=bG(i.Pb(),12);t+=lIn(r,(WYn(),NDe))!=null?1:0}return t}function Vwn(n,e,t){var r,i,a;r=0;for(a=Gkn(n,0);a.b!=a.d.c;){i=bM(MK($6(a)));if(i>t){break}else i>=e&&++r}return r}function zwn(n,e){nQ(n);try{return n._b(e)}catch(t){t=Ofn(t);if(G$(t,212)||G$(t,169)){return false}else throw dm(t)}}function Wwn(n,e){nQ(n);try{return n.Hc(e)}catch(t){t=Ofn(t);if(G$(t,212)||G$(t,169)){return false}else throw dm(t)}}function Qwn(n,e){nQ(n);try{return n.Mc(e)}catch(t){t=Ofn(t);if(G$(t,212)||G$(t,169)){return false}else throw dm(t)}}function Jwn(n,e){nQ(n);try{return n.xc(e)}catch(t){t=Ofn(t);if(G$(t,212)||G$(t,169)){return null}else throw dm(t)}}function Ywn(n,e){nQ(n);try{return n.Bc(e)}catch(t){t=Ofn(t);if(G$(t,212)||G$(t,169)){return null}else throw dm(t)}}function Zwn(n,e){switch(e.g){case 2:case 1:return _gn(n,e);case 3:case 4:return Avn(_gn(n,e))}return dZ(),dZ(),lbe}function ndn(n){var e;if((n.Db&64)!=0)return jxn(n);e=new gx(jxn(n));e.a+=" (name: ";ZA(e,n.zb);e.a+=")";return e.a}function edn(n){var e;e=bG(hrn(n.c.c,""),233);if(!e){e=new $2(zT(VT(new ms,""),"Other"));xkn(n.c.c,"",e)}return e}function tdn(n,e,t){var r,i;i=n.sb;n.sb=e;if((n.Db&4)!=0&&(n.Db&1)==0){r=new vz(n,1,4,i,e);!t?t=r:t.nj(r)}return t}function rdn(n,e,t){var r,i;i=n.r;n.r=e;if((n.Db&4)!=0&&(n.Db&1)==0){r=new vz(n,1,8,i,n.r);!t?t=r:t.nj(r)}return t}function idn(n,e,t){var r,i;r=new Utn(n.e,4,13,(i=e.c,i?i:(rZn(),Jrt)),null,Vyn(n,e),false);!t?t=r:t.nj(r);return t}function adn(n,e,t){var r,i;r=new Utn(n.e,3,13,null,(i=e.c,i?i:(rZn(),Jrt)),Vyn(n,e),false);!t?t=r:t.nj(r);return t}function cdn(n,e){var t,r;t=bG(e,691);r=t.el();!r&&t.fl(r=G$(e,90)?new NA(n,bG(e,29)):new y4(n,bG(e,156)));return r}function udn(n,e,t){var r;n._i(n.i+1);r=n.Zi(e,t);e!=n.i&&QGn(n.g,e,n.g,e+1,n.i-e);bQ(n.g,e,r);++n.i;n.Mi(e,t);n.Ni()}function sdn(n,e){var t;if(e.a){t=e.a.a.length;!n.a?n.a=new vx(n.d):tL(n.a,n.b);R4(n.a,e.a,e.d.length,t)}return n}function odn(n,e){var t;n.c=e;n.a=tpn(e);n.a<54&&(n.f=(t=e.d>1?N4(e.a[0],e.a[1]):N4(e.a[0],0),n6(e.e>0?t:Ptn(t))))}function fdn(n,e){var t;t=new bn;if(!n.a.Bd(t)){WQ(n);return zD(),zD(),kwe}return zD(),new Jy(cJ(jtn(n,t.a,e)))}function hdn(n,e){var t;if(n.c.length==0){return}t=bG(Okn(n,$nn(Yje,e6n,10,n.c.length,0,1)),199);YL(t,new Dt);n$n(t,e)}function ldn(n,e){var t;if(n.c.length==0){return}t=bG(Okn(n,$nn(Yje,e6n,10,n.c.length,0,1)),199);YL(t,new xt);n$n(t,e)}function bdn(n,e){return HA(n)?T_(n,e):GA(n)?M_(n,e):UA(n)?(cJ(n),BA(n)===BA(e)):NV(n)?n.Fb(e):BX(n)?AL(n,e):I3(n,e)}function wdn(n,e,t){if(e<0){YLn(n,t)}else{if(!t.rk()){throw dm(new jM(Uee+t.xe()+Gee))}bG(t,69).wk().Ek(n,n.hi(),e)}}function ddn(n,e,t){if(n<0||e>t){throw dm(new kM(c2n+n+s2n+e+", size: "+t))}if(n>e){throw dm(new jM(c2n+n+u2n+e))}}function gdn(n){var e;if((n.Db&64)!=0)return jxn(n);e=new gx(jxn(n));e.a+=" (source: ";ZA(e,n.d);e.a+=")";return e.a}function vdn(n){if(n>=65&&n<=70){return n-65+10}if(n>=97&&n<=102){return n-97+10}if(n>=48&&n<=57){return n-48}return 0}function pdn(n){tZn();var e,t,r,i;for(t=Kkn(),r=0,i=t.length;r=0?Hpn(n):dW(Hpn(Ptn(n))))}function Adn(n,e,t,r,i,a){this.e=new im;this.f=(fcn(),MHe);ED(this.e,n);this.d=e;this.a=t;this.b=r;this.f=i;this.c=a}function Ldn(n,e,r){n.n=tX(Xht,[XZn,j0n],[376,28],14,[r,c0(t.Math.ceil(e/32))],2);n.o=e;n.p=r;n.j=e-1>>1;n.k=r-1>>1}function Ndn(n){n-=n>>1&1431655765;n=(n>>2&858993459)+(n&858993459);n=(n>>4)+n&252645135;n+=n>>8;n+=n>>16;return n&63}function $dn(n,e){var t,r;for(r=new _D(n);r.e!=r.i.gc();){t=bG(iyn(r),142);if(BA(e)===BA(t)){return true}}return false}function Ddn(n,e,t){var r,i,a;a=(i=Ixn(n.b,e),i);if(a){r=bG(eVn(Rtn(n,a),""),29);if(r){return dxn(n,r,e,t)}}return null}function xdn(n,e,t){var r,i,a;a=(i=Ixn(n.b,e),i);if(a){r=bG(eVn(Rtn(n,a),""),29);if(r){return gxn(n,r,e,t)}}return null}function Rdn(n,e){var t;t=kan(n.i,e);if(t==null){throw dm(new AM("Node did not exist in input."))}eon(e,t);return null}function Kdn(n,e){var t;t=OKn(n,e);if(G$(t,331)){return bG(t,35)}throw dm(new jM(Uee+e+"' is not a valid attribute"))}function Fdn(n,e,t){var r;r=n.gc();if(e>r)throw dm(new m_(e,r));if(n.Si()&&n.Hc(t)){throw dm(new jM(Gte))}n.Gi(e,t)}function _dn(n,e){e.Ug("Sort end labels",1);ES(tY(wrn(new gX(null,new d3(n.b,16)),new mt),new kt),new yt);e.Vg()}function Bdn(){Bdn=O;h5e=new LO(J2n,0);f5e=new LO(V2n,1);o5e=new LO(X2n,2);s5e=new LO(i3n,3);l5e=new LO("UP",4)}function Hdn(){Hdn=O;D1e=new gO("P1_STRUCTURE",0);x1e=new gO("P2_PROCESSING_ORDER",1);R1e=new gO("P3_EXECUTION",2)}function Udn(){Udn=O;hQe=Rmn(Rmn(yP(Rmn(Rmn(yP(xq(new mJ,(Njn(),sVe),(DHn(),oze)),oVe),aze),uze),fVe),eze),sze)}function Gdn(n){switch(bG(lIn(n,(WYn(),bDe)),311).g){case 1:Ehn(n,bDe,(irn(),x$e));break;case 2:Ehn(n,bDe,(irn(),K$e))}}function qdn(n){switch(n){case 0:return new Gk;case 1:return new Hk;case 2:return new Uk;default:throw dm(new _m)}}function Xdn(n){switch(n.g){case 2:return f5e;case 1:return o5e;case 4:return s5e;case 3:return l5e;default:return h5e}}function Vdn(n,e){switch(n.b.g){case 0:case 1:return e;case 2:case 3:return new yY(e.d,0,e.a,e.b);default:return null}}function zdn(n){switch(n.g){case 1:return n9e;case 2:return D8e;case 3:return $8e;case 4:return Y8e;default:return Z8e}}function Wdn(n){switch(n.g){case 1:return Y8e;case 2:return n9e;case 3:return D8e;case 4:return $8e;default:return Z8e}}function Qdn(n){switch(n.g){case 1:return $8e;case 2:return Y8e;case 3:return n9e;case 4:return D8e;default:return Z8e}}function Jdn(n,e,t,r){switch(e){case 1:return!n.n&&(n.n=new gz(unt,n,1,7)),n.n;case 2:return n.k}return hjn(n,e,t,r)}function Ydn(n,e,t){var r,i;if(n.Pj()){i=n.Qj();r=VNn(n,e,t);n.Jj(n.Ij(7,Bwn(t),r,e,i));return r}else{return VNn(n,e,t)}}function Zdn(n,e){var t,r,i;if(n.d==null){++n.e;--n.f}else{i=e.ld();t=e.Bi();r=(t&pZn)%n.d.length;A7(n,r,Cxn(n,r,t,i))}}function ngn(n,e){var t;t=(n.Bb&b1n)!=0;e?n.Bb|=b1n:n.Bb&=-1025;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new I9(n,1,10,t,e))}function egn(n,e){var t;t=(n.Bb&T0n)!=0;e?n.Bb|=T0n:n.Bb&=-4097;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new I9(n,1,12,t,e))}function tgn(n,e){var t;t=(n.Bb&sie)!=0;e?n.Bb|=sie:n.Bb&=-8193;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new I9(n,1,15,t,e))}function rgn(n,e){var t;t=(n.Bb&oie)!=0;e?n.Bb|=oie:n.Bb&=-2049;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new I9(n,1,11,t,e))}function ign(n){var e;if(n.g){e=n.c.kg()?n.f:n.a;NFn(e.a,n.o,true);NFn(e.a,n.o,false);Ehn(n.o,(IYn(),m_e),(FPn(),p8e))}}function agn(n){var e;if(!n.a){throw dm(new EM("Cannot offset an unassigned cut."))}e=n.c-n.b;n.b+=e;sZ(n,e);uZ(n,e)}function cgn(n,e){var t;t=fQ(n.k,e);if(t==null){throw dm(new AM("Port did not exist in input."))}eon(e,t);return null}function ugn(n){var e,t;for(t=pxn(Vin(n)).Kc();t.Ob();){e=TK(t.Pb());if(WUn(n,e)){return d8((SP(),jrt),e)}}return null}function sgn(n){var e,t;for(t=n.p.a.ec().Kc();t.Ob();){e=bG(t.Pb(),218);if(e.f&&n.b[e.c]<-1e-10){return e}}return null}function ogn(n){var e,t;t=IQ(new nT,91);e=true;while(n.Ob()){e||(t.a+=MZn,t);e=false;eL(t,n.Pb())}return(t.a+="]",t).a}function fgn(n){var e,t,r;e=new im;for(r=new nd(n.b);r.ae){return 1}if(n==e){return n==0?bgn(1/n,1/e):0}return isNaN(n)?isNaN(e)?0:1:-1}function wgn(n){var e;e=n.a[n.c-1&n.a.length-1];if(e==null){return null}n.c=n.c-1&n.a.length-1;bQ(n.a,n.c,null);return e}function dgn(n){var e,t,r;r=0;t=n.length;for(e=0;e=1?f5e:s5e}return t}function Tgn(n){switch(bG(lIn(n,(IYn(),gFe)),223).g){case 1:return new sa;case 3:return new ba;default:return new ua}}function jgn(n){if(n.c){jgn(n.c)}else if(n.d){throw dm(new EM("Stream already terminated, can't be modified or used"))}}function Egn(n,e,t){var r;r=n.a.get(e);n.a.set(e,t===undefined?null:t);if(r===undefined){++n.c;++n.b.g}else{++n.d}return r}function Sgn(n,e,t){var r,i;for(i=n.a.ec().Kc();i.Ob();){r=bG(i.Pb(),10);if(Sfn(t,bG(Yq(e,r.p),16))){return r}}return null}function Pgn(n,e,t){var r;r=0;!!e&&(gN(n.a)?r+=e.f.a/2:r+=e.f.b/2);!!t&&(gN(n.a)?r+=t.f.a/2:r+=t.f.b/2);return r}function Cgn(n,e,t){var r;r=t;!r&&(r=BG(new gy,0));r.Ug(R4n,2);Yyn(n.b,e,r.eh(1));JVn(n,e,r.eh(1));dJn(e,r.eh(1));r.Vg()}function Ign(n,e,t){var r,i;r=(yj(),i=new io,i);Aan(r,e);Man(r,t);!!n&&cen((!n.a&&(n.a=new PD(K7e,n,5)),n.a),r);return r}function Ogn(n){var e;if((n.Db&64)!=0)return jxn(n);e=new gx(jxn(n));e.a+=" (identifier: ";ZA(e,n.k);e.a+=")";return e.a}function Agn(n,e){var t;t=(n.Bb&Wee)!=0;e?n.Bb|=Wee:n.Bb&=-32769;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new I9(n,1,18,t,e))}function Lgn(n,e){var t;t=(n.Bb&Wee)!=0;e?n.Bb|=Wee:n.Bb&=-32769;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new I9(n,1,18,t,e))}function Ngn(n,e){var t;t=(n.Bb&VZn)!=0;e?n.Bb|=VZn:n.Bb&=-16385;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new I9(n,1,16,t,e))}function $gn(n,e){var t;t=(n.Bb&S0n)!=0;e?n.Bb|=S0n:n.Bb&=-65537;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new I9(n,1,20,t,e))}function Dgn(n){var e;e=$nn(Uht,L1n,28,2,15,1);n-=S0n;e[0]=(n>>10)+P0n&$1n;e[1]=(n&1023)+56320&$1n;return Tmn(e,0,e.length)}function xgn(n){var e;e=rOn(n);if(e>34028234663852886e22){return y0n}else if(e<-34028234663852886e22){return M0n}return e}function Rgn(n,e){var t;if(qL(n)&&qL(e)){t=n+e;if(g0n"+Z3(e.c):"e_"+Vun(e),!!n.b&&!!n.c?Z3(n.b)+"->"+Z3(n.c):"e_"+Vun(n))}function Ugn(n,e){return T_(!!e.b&&!!e.c?Z3(e.b)+"->"+Z3(e.c):"e_"+Vun(e),!!n.b&&!!n.c?Z3(n.b)+"->"+Z3(n.c):"e_"+Vun(n))}function Ggn(n,e){r$();return lcn(M1n),t.Math.abs(n-e)<=M1n||n==e||isNaN(n)&&isNaN(e)?0:ne?1:UL(isNaN(n),isNaN(e))}function qgn(){qgn=O;T5e=new $O(J2n,0);y5e=new $O("POLYLINE",1);k5e=new $O("ORTHOGONAL",2);M5e=new $O("SPLINES",3)}function Xgn(){Xgn=O;WYe=new hO("ASPECT_RATIO_DRIVEN",0);QYe=new hO("MAX_SCALE_DRIVEN",1);zYe=new hO("AREA_DRIVEN",2)}function Vgn(n,e,t){var r;try{Zhn(n,e,t)}catch(i){i=Ofn(i);if(G$(i,606)){r=i;throw dm(new B9(r))}else throw dm(i)}return e}function zgn(n){var e,t,r;for(t=0,r=n.length;te&&r.Ne(n[a-1],n[a])>0;--a){c=n[a];bQ(n,a,n[a-1]);bQ(n,a-1,c)}}}function ivn(n,e){var t,r,i,a,c;t=e.f;xkn(n.c.d,t,e);if(e.g!=null){for(i=e.g,a=0,c=i.length;ae){G4(t);break}}vW(t,e)}function cvn(n,e){var r,i,a;i=Y4(e);a=bM(MK(Dpn(i,(IYn(),R_e))));r=t.Math.max(0,a/2-.5);CEn(e,r,1);ED(n,new BC(e,r))}function uvn(n,e,t){var r;t.Ug("Straight Line Edge Routing",1);t.dh(e,h7n);r=bG(YDn(e,(AK(),FQe)),27);_Xn(n,r);t.dh(e,b7n)}function svn(n,e){n.n.c.length==0&&ED(n.n,new f0(n.s,n.t,n.i));ED(n.b,e);YMn(bG(Yq(n.n,n.n.c.length-1),209),e);aqn(n,e)}function ovn(n){var e;this.a=(e=bG(n.e&&n.e(),9),new aB(e,bG(PF(e,e.length),9),0));this.b=$nn(kce,jZn,1,this.a.a.length,5,1)}function fvn(n){var e;if(Array.isArray(n)&&n.Tm===I){return $j(Cbn(n))+"@"+(e=Vun(n)>>>0,e.toString(16))}return n.toString()}function hvn(n,e){if(n.h==l0n&&n.m==0&&n.l==0){e&&(She=M$(0,0,0));return RL((crn(),Ihe))}e&&(She=M$(n.l,n.m,n.h));return M$(0,0,0)}function lvn(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return false}}function bvn(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return false}}function wvn(n,e,t,r){switch(e){case 3:return n.f;case 4:return n.g;case 5:return n.i;case 6:return n.j}return Jdn(n,e,t,r)}function dvn(n,e){if(e==n.d){return n.e}else if(e==n.e){return n.d}else{throw dm(new jM("Node "+e+" not part of edge "+n))}}function gvn(n,e){var t;t=OKn(n.Dh(),e);if(G$(t,102)){return bG(t,19)}throw dm(new jM(Uee+e+"' is not a valid reference"))}function vvn(n,e,t,r){if(e<0){vRn(n,t,r)}else{if(!t.rk()){throw dm(new jM(Uee+t.xe()+Gee))}bG(t,69).wk().Ck(n,n.hi(),e,r)}}function pvn(n){var e;if(n.b){pvn(n.b);if(n.b.d!=n.c){throw dm(new Gm)}}else if(n.d.dc()){e=bG(n.f.c.xc(n.e),16);!!e&&(n.d=e)}}function mvn(n){ZK();var e,t,r,i;e=n.o.b;for(r=bG(bG(r7(n.r,(UQn(),Y8e)),21),87).Kc();r.Ob();){t=bG(r.Pb(),117);i=t.e;i.b+=e}}function kvn(n){var e,t,r;this.a=new JL;for(r=new nd(n);r.a=i){return e.c+t}}return e.c+e.b.gc()}function Mvn(n,e){OK();var t,r,i,a;r=ttn(n);i=e;Ken(r,0,r.length,i);for(t=0;t0){r+=i;++t}}t>1&&(r+=n.d*(t-1));return r}function Pvn(n){var e,t,r,i,a;a=yCn(n);t=ME(n.c);r=!t;if(r){i=new $b;ain(a,"knownLayouters",i);e=new Ip(i);Y8(n.c,e)}return a}function Cvn(n){var e,t,r;r=new YM;r.a+="[";for(e=0,t=n.gc();e0&&(w3(e-1,n.length),n.charCodeAt(e-1)==58)&&!Tvn(n,urt,srt)}function Nvn(n,e){var t;if(BA(n)===BA(e)){return true}if(G$(e,92)){t=bG(e,92);return n.e==t.e&&n.d==t.d&&k8(n,t.a)}return false}function $vn(n){UQn();switch(n.g){case 4:return D8e;case 1:return $8e;case 3:return Y8e;case 2:return n9e;default:return Z8e}}function Dvn(n){var e,t;if(n.b){return n.b}t=Sde?null:n.d;while(t){e=Sde?null:t.b;if(e){return e}t=Sde?null:t.d}return MS(),pde}function xvn(n){var e,t,r;r=bM(MK(n.a.of((JYn(),U6e))));for(t=new nd(n.a.Sf());t.a>5;e=n&31;r=$nn(Ght,z1n,28,t+1,15,1);r[t]=1<3){i*=10;--a}n=(n+(i>>1))/i|0}r.i=n;return true}function upn(n,e){var t,r,i;t=(n.i==null&&uqn(n),n.i);r=e.Lj();if(r!=-1){for(i=t.length;r=0;--r){e=t[r];for(i=0;i>1;this.k=e-1>>1}function dpn(n){Aen();if(bG(n.of((JYn(),t6e)),181).Hc((hUn(),T9e))){bG(n.of(j6e),181).Fc((uNn(),A8e));bG(n.of(t6e),181).Mc(T9e)}}function gpn(n){var e,t;e=n.d==(jAn(),sNe);t=kPn(n);e&&!t||!e&&t?Ehn(n.a,(IYn(),DKe),(aMn(),B3e)):Ehn(n.a,(IYn(),DKe),(aMn(),_3e))}function vpn(){vpn=O;iP();kBe=(IYn(),V_e);yBe=a7(zfn(fT(l3e,1),v9n,149,0,[x_e,R_e,F_e,__e,U_e,G_e,q_e,X_e,W_e,J_e,K_e,B_e,z_e]))}function ppn(n,e){var t;t=bG(v8(n,gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[(Sbn(),Lde)]))),15);return t.Qc(Kq(t.gc()))}function mpn(n,e){var t,r;r=new ld(n.a.ad(e,true));if(r.a.gc()<=1){throw dm(new Hm)}t=r.a.ec().Kc();t.Pb();return bG(t.Pb(),40)}function kpn(n,e,t){var r,i;r=bM(n.p[e.i.p])+bM(n.d[e.i.p])+e.n.b+e.a.b;i=bM(n.p[t.i.p])+bM(n.d[t.i.p])+t.n.b+t.a.b;return i-r}function ypn(n,e){var t;if(n.i>0){if(e.lengthn.i&&bQ(e,n.i,null);return e}function Mpn(n){var e;if((n.Db&64)!=0)return ndn(n);e=new gx(ndn(n));e.a+=" (instanceClassName: ";ZA(e,n.D);e.a+=")";return e.a}function Tpn(n){var e,t,r,i;i=0;for(t=0,r=n.length;t0){n._j();r=e==null?0:Vun(e);i=(r&pZn)%n.d.length;t=Cxn(n,i,r,e);return t!=-1}else{return false}}function Ppn(n,e){var r,i;n.a=Rgn(n.a,1);n.c=t.Math.min(n.c,e);n.b=t.Math.max(n.b,e);n.d+=e;r=e-n.f;i=n.e+r;n.f=i-n.e-r;n.e=i}function Cpn(n,e){switch(e){case 3:jan(n,0);return;case 4:Ean(n,0);return;case 5:San(n,0);return;case 6:Pan(n,0);return}xwn(n,e)}function Ipn(n,e){switch(e.g){case 1:return rG(n.j,(Rsn(),hEe));case 2:return rG(n.j,(Rsn(),bEe));default:return dZ(),dZ(),lbe}}function Opn(n){iQ();var e;e=n.Pc();switch(e.length){case 0:return mse;case 1:return new zq(nQ(e[0]));default:return new c1(zgn(e))}}function Apn(n,e){n.Xj();try{n.d.bd(n.e++,e);n.f=n.d.j;n.g=-1}catch(t){t=Ofn(t);if(G$(t,77)){throw dm(new Gm)}else throw dm(t)}}function Lpn(){Lpn=O;Yat=new $o;qat=new Do;Xat=new xo;Vat=new Ro;zat=new Ko;Wat=new Fo;Qat=new _o;Jat=new Bo;Zat=new Ho}function Npn(n,e){mL();var t,r;t=pF((Qy(),Qy(),che));r=null;e==t&&(r=bG(z1(the,n),624));if(!r){r=new tQ(n);e==t&&o2(the,n,r)}return r}function $pn(n){rMn();var e;(!n.q?(dZ(),dZ(),bbe):n.q)._b((IYn(),n_e))?e=bG(lIn(n,n_e),203):e=bG(lIn(VQ(n),e_e),203);return e}function Dpn(n,e){var t,r;r=null;if(jR(n,(IYn(),H_e))){t=bG(lIn(n,H_e),96);t.pf(e)&&(r=t.of(e))}r==null&&(r=lIn(VQ(n),e));return r}function xpn(n,e){var t,r,i;if(G$(e,44)){t=bG(e,44);r=t.ld();i=Jwn(n.Rc(),r);return BQ(i,t.md())&&(i!=null||n.Rc()._b(r))}return false}function Rpn(n,e){var t,r,i;if(n.f>0){n._j();r=e==null?0:Vun(e);i=(r&pZn)%n.d.length;t=i$n(n,i,r,e);if(t){return t.md()}}return null}function Kpn(n,e,t){var r,i,a;if(n.Pj()){r=n.i;a=n.Qj();udn(n,r,e);i=n.Ij(3,null,e,r,a);!t?t=i:t.nj(i)}else{udn(n,n.i,e)}return t}function Fpn(n,e,t){var r,i;r=new Utn(n.e,4,10,(i=e.c,G$(i,90)?bG(i,29):(rZn(),nit)),null,Vyn(n,e),false);!t?t=r:t.nj(r);return t}function _pn(n,e,t){var r,i;r=new Utn(n.e,3,10,null,(i=e.c,G$(i,90)?bG(i,29):(rZn(),nit)),Vyn(n,e),false);!t?t=r:t.nj(r);return t}function Bpn(n){ZK();var e;e=new uN(bG(n.e.of((JYn(),n6e)),8));if(n.B.Hc((hUn(),p9e))){e.a<=0&&(e.a=20);e.b<=0&&(e.b=20)}return e}function Hpn(n){fHn();var e,t;t=MV(n);e=MV(_V(n,32));if(e!=0){return new B3(t,e)}if(t>10||t<0){return new i8(1,t)}return $le[t]}function Upn(n,e){var t;if(qL(n)&&qL(e)){t=n%e;if(g0n=0){a=a.a[1]}else{i=a;a=a.a[0]}}return i}function amn(n,e,t){var r,i,a;i=null;a=n.b;while(a){r=n.a.Ne(e,a.d);if(t&&r==0){return a}if(r<=0){a=a.a[0]}else{i=a;a=a.a[1]}}return i}function cmn(n,e,t,r){var i,a,c;i=false;if(aWn(n.f,t,r)){dkn(n.f,n.a[e][t],n.a[e][r]);a=n.a[e];c=a[r];a[r]=a[t];a[t]=c;i=true}return i}function umn(n,e,t){var r,i,a,c;i=bG(fQ(n.b,t),183);r=0;for(c=new nd(e.j);c.a>5;e&=31;i=n.d+t+(e==0?0:1);r=$nn(Ght,z1n,28,i,15,1);ECn(r,n.a,t,e);a=new Zz(n.e,i,r);U4(a);return a}function fmn(n,e){var t,r,i;for(r=new GV(sx(Jgn(n).a.Kc(),new d));dDn(r);){t=bG(K9(r),18);i=t.d.i;if(i.c==e){return false}}return true}function hmn(n,e,r){var i,a,c,u,s;u=n.k;s=e.k;i=r[u.g][s.g];a=MK(Dpn(n,i));c=MK(Dpn(e,i));return t.Math.max((cJ(a),a),(cJ(c),c))}function lmn(){if(Error.stackTraceLimit>0){t.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return"stack"in new Error}function bmn(n,e){return r$(),r$(),lcn(M1n),(t.Math.abs(n-e)<=M1n||n==e||isNaN(n)&&isNaN(e)?0:ne?1:UL(isNaN(n),isNaN(e)))>0}function wmn(n,e){return r$(),r$(),lcn(M1n),(t.Math.abs(n-e)<=M1n||n==e||isNaN(n)&&isNaN(e)?0:ne?1:UL(isNaN(n),isNaN(e)))<0}function dmn(n,e){return r$(),r$(),lcn(M1n),(t.Math.abs(n-e)<=M1n||n==e||isNaN(n)&&isNaN(e)?0:ne?1:UL(isNaN(n),isNaN(e)))<=0}function gmn(n,e){var t=0;while(!e[t]||e[t]==""){t++}var r=e[t++];for(;t0&&this.b>0&&(this.g=TX(this.c,this.b,this.a))}function Cmn(n,e){var t=n.a;var r;e=String(e);t.hasOwnProperty(e)&&(r=t[e]);var i=(Nhn(),jhe)[typeof r];var a=i?i(r):Zbn(typeof r);return a}function Imn(n){var e,t,r;r=null;e=Pte in n.a;t=!e;if(t){throw dm(new AM("Every element must have an id."))}r=gNn(j0(n,Pte));return r}function Omn(n){var e,t;t=nAn(n);e=null;while(n.c==2){OYn(n);if(!e){e=(eZn(),eZn(),++Tht,new e$(2));jVn(e,t);t=e}t.Jm(nAn(n))}return t}function Amn(n,e){var t,r,i;n._j();r=e==null?0:Vun(e);i=(r&pZn)%n.d.length;t=i$n(n,i,r,e);if(t){bcn(n,t);return t.md()}else{return null}}function Lmn(n,e){if(n.e>e.e){return 1}if(n.ee.d){return n.e}if(n.d=48&&n<48+t.Math.min(10,10)){return n-48}if(n>=97&&n<97){return n-97+10}if(n>=65&&n<65){return n-65+10}return-1}function $mn(n,e){if(e.c==n){return e.d}else if(e.d==n){return e.c}throw dm(new jM("Input edge is not connected to the input port."))}function Dmn(n){if(Xmn(Kne,n)){return Qx(),Hhe}else if(Xmn(Fne,n)){return Qx(),Bhe}else{throw dm(new jM("Expecting true or false"))}}function xmn(n){switch(typeof n){case gZn:return Mln(n);case dZn:return DL(n);case wZn:return JK(n);default:return n==null?0:Bx(n)}}function Rmn(n,e){if(n.a<0){throw dm(new EM("Did not call before(...) or after(...) before calling add(...)."))}dR(n,n.a,e);return n}function Kmn(n){n2();if(G$(n,162)){return bG(fQ(Zet,zbe),295).Rg(n)}if(Lz(Zet,Cbn(n))){return bG(fQ(Zet,Cbn(n)),295).Rg(n)}return null}function Fmn(n){var e,t;if((n.Db&32)==0){t=(e=bG(Ron(n,16),29),sQ(!e?n.ii():e)-sQ(n.ii()));t!=0&&_mn(n,32,$nn(kce,jZn,1,t,5,1))}return n}function _mn(n,e,t){var r;if((n.Db&e)!=0){if(t==null){V$n(n,e)}else{r=ITn(n,e);r==-1?n.Eb=t:bQ(Uan(n.Eb),r,t)}}else t!=null&&vFn(n,e,t)}function Bmn(n,e,t,r){var i,a;if(e.c.length==0){return}i=yRn(t,r);a=nNn(e);ES(Ein(new gX(null,new d3(a,1)),new pc),new MY(n,t,i,r))}function Hmn(n,e){var t,r,i,a;r=n.a.length-1;t=e-n.b&r;a=n.c-e&r;i=n.c-n.b&r;IK(t=a){Lbn(n,e);return-1}else{Abn(n,e);return 1}}function Umn(n){var e,t,r;r=n.Jh();if(!r){e=0;for(t=n.Ph();t;t=t.Ph()){if(++e>I0n){return t.Qh()}r=t.Jh();if(!!r||t==n){break}}}return r}function Gmn(n,e){var t;if(BA(e)===BA(n)){return true}if(!G$(e,21)){return false}t=bG(e,21);if(t.gc()!=n.gc()){return false}return n.Ic(t)}function qmn(n,e){if(n.ee.e){return 1}else if(n.fe.f){return 1}return Vun(n)-Vun(e)}function Xmn(n,e){cJ(n);if(e==null){return false}if(T_(n,e)){return true}return n.length==e.length&&T_(n.toLowerCase(),e.toLowerCase())}function Vmn(n){var e,t;if(kwn(n,-129)>0&&kwn(n,128)<0){return cX(),e=MV(n)+128,t=cle[e],!t&&(t=cle[e]=new Dw(n)),t}return new Dw(n)}function zmn(){zmn=O;hje=new OC(G4n,0);oje=new OC("INSIDE_PORT_SIDE_GROUPS",1);sje=new OC("GROUP_MODEL_ORDER",2);fje=new OC(q4n,3)}function Wmn(n){var e;n.b||mj(n,(e=e_(n.e,n.a),!e||!T_(Fne,Rpn((!e.b&&(e.b=new JR((rZn(),cit),Nat,e)),e.b),"qualified"))));return n.c}function Qmn(n,e){var t,r;t=(w3(e,n.length),n.charCodeAt(e));r=e+1;while(r2e3){Xfe=n;Vfe=t.setTimeout(jE,10)}}if(qfe++==0){Lrn((Wy(),zfe));return true}return false}function mkn(n,e,t){var r;(jde?(Dvn(n),true):Ede?(MS(),true):Cde?(MS(),true):Pde&&(MS(),false))&&(r=new sB(e),r.b=t,QIn(n,r),undefined)}function kkn(n,e){var t;t=!n.A.Hc((emn(),b9e))||n.q==(FPn(),m8e);n.u.Hc((uNn(),C8e))?t?eJn(n,e):PQn(n,e):n.u.Hc(O8e)&&(t?rQn(n,e):PJn(n,e))}function ykn(n){var e;if(BA(YDn(n,(JYn(),x4e)))===BA((Dwn(),G5e))){if(!H0(n)){Pyn(n,x4e,q5e)}else{e=bG(YDn(H0(n),x4e),346);Pyn(n,x4e,e)}}}function Mkn(n){var e,t;if(jR(n.d.i,(IYn(),h_e))){e=bG(lIn(n.c.i,h_e),17);t=bG(lIn(n.d.i,h_e),17);return k$(e.a,t.a)>0}else{return false}}function Tkn(n,e,r){return new yY(t.Math.min(n.a,e.a)-r/2,t.Math.min(n.b,e.b)-r/2,t.Math.abs(n.a-e.a)+r,t.Math.abs(n.b-e.b)+r)}function jkn(n){var e;this.d=new im;this.j=new wj;this.g=new wj;e=n.g.b;this.f=bG(lIn(VQ(e),(IYn(),oFe)),88);this.e=bM(MK(uyn(e,U_e)))}function Ekn(n){this.d=new im;this.e=new b8;this.c=$nn(Ght,z1n,28,(UQn(),zfn(fT(e9e,1),X4n,64,0,[Z8e,D8e,$8e,Y8e,n9e])).length,15,1);this.b=n}function Skn(n,e,t){var r;r=t[n.g][e];switch(n.g){case 1:case 3:return new PO(0,r);case 2:case 4:return new PO(r,0);default:return null}}function Pkn(n,e,t){var r,i;i=bG(x1(e.f),205);try{i.rf(n,t);nJ(e.f,i)}catch(a){a=Ofn(a);if(G$(a,103)){r=a;throw dm(r)}else throw dm(a)}}function Ckn(n,e,t){var r,i,a,c,u,s;r=null;u=_zn(hcn(),e);a=null;if(u){i=null;s=jzn(u,t);c=null;s!=null&&(c=n.qf(u,s));i=c;a=i}r=a;return r}function Ikn(n,e,t,r){var i;i=n.length;if(e>=i)return i;for(e=e>0?e:0;er&&bQ(e,r,null);return e}function Akn(n,e){var t,r;r=n.a.length;e.lengthr&&bQ(e,r,null);return e}function Lkn(n,e){var t,r;++n.j;if(e!=null){t=(r=n.a.Cb,G$(r,99)?bG(r,99).th():null);if(u$n(e,t)){_mn(n.a,4,t);return}}_mn(n.a,4,bG(e,129))}function Nkn(n){var e;if(n==null)return null;e=Oxn(SXn(n,true));if(e==null){throw dm(new LM("Invalid hexBinary value: '"+n+"'"))}return e}function $kn(n,e,t){var r;if(e.a.length>0){ED(n.b,new dG(e.a,t));r=e.a.length;0r&&(e.a+=Z$($nn(Uht,L1n,28,-r,15,1)))}}function Dkn(n,e,t){var r,i,a;if(t[e.d]){return}t[e.d]=true;for(i=new nd(Obn(e));i.a=n.b>>1){r=n.c;for(t=n.b;t>e;--t){r=r.b}}else{r=n.a.a;for(t=0;t=0?n.Wh(i):FNn(n,r)):t<0?FNn(n,r):bG(r,69).wk().Bk(n,n.hi(),t)}function eyn(n){var e,t,r;r=(!n.o&&(n.o=new ven((cYn(),int),Rnt,n,0)),n.o);for(t=r.c.Kc();t.e!=t.i.gc();){e=bG(t.Yj(),44);e.md()}return Cnn(r)}function tyn(n){var e;if(G$(n.a,4)){e=Kmn(n.a);if(e==null){throw dm(new EM(_ne+n.b+"'. "+xne+(jK(ett),ett.k)+Rne))}return e}else{return n.a}}function ryn(n,e){var t,r;if(n.j.length!=e.j.length)return false;for(t=0,r=n.j.length;t=64&&e<128&&(i=A3(i,KV(1,e-64)))}return i}function uyn(n,e){var t,r;r=null;if(jR(n,(JYn(),B6e))){t=bG(lIn(n,B6e),96);t.pf(e)&&(r=t.of(e))}r==null&&!!VQ(n)&&(r=lIn(VQ(n),e));return r}function syn(n,e){var t;t=bG(lIn(n,(IYn(),DFe)),75);if(q$(e,Ije)){if(!t){t=new zk;Ehn(n,DFe,t)}else{XY(t)}}else!!t&&Ehn(n,DFe,null);return t}function oyn(){oyn=O;zke=(JYn(),R6e);Hke=N4e;Rke=g4e;Uke=c6e;Xke=(PEn(),Ove);qke=Cve;Vke=Lve;Gke=Pve;Fke=(Mbn(),Lke);Kke=Ake;_ke=$ke;Bke=Dke}function fyn(n){QS();this.c=new im;this.d=n;switch(n.g){case 0:case 2:this.a=EJ(VTe);this.b=y0n;break;case 3:case 1:this.a=VTe;this.b=M0n}}function hyn(n){var e;if(!R_(bG(lIn(n,(IYn(),m_e)),101))){return}e=n.b;f$n((b3(0,e.c.length),bG(e.c[0],30)));f$n(bG(Yq(e,e.c.length-1),30))}function lyn(n,e){e.Ug("Self-Loop post-processing",1);ES(tY(tY(wrn(new gX(null,new d3(n.b,16)),new _r),new Br),new Hr),new Ur);e.Vg()}function byn(n,e,t){var r,i;if(n.c){San(n.c,n.c.i+e);Pan(n.c,n.c.j+t)}else{for(i=new nd(n.b);i.a=0&&(t.d=n.t);break;case 3:n.t>=0&&(t.a=n.t)}if(n.C){t.b=n.C.b;t.c=n.C.c}}function Myn(){Myn=O;WBe=new mI(m9n,0);XBe=new mI($6n,1);VBe=new mI("LINEAR_SEGMENTS",2);qBe=new mI("BRANDES_KOEPF",3);zBe=new mI(p9n,4)}function Tyn(){Tyn=O;kke=new vC(c3n,0);mke=new vC(u3n,1);yke=new vC(s3n,2);Mke=new vC(o3n,3);kke.a=false;mke.a=true;yke.a=false;Mke.a=true}function jyn(){jyn=O;Hme=new dC(c3n,0);Bme=new dC(u3n,1);Ume=new dC(s3n,2);Gme=new dC(o3n,3);Hme.a=false;Bme.a=true;Ume.a=false;Gme.a=true}function Eyn(n,e,t,r){var i;if(t>=0){return n.Sh(e,t,r)}else{!!n.Ph()&&(r=(i=n.Fh(),i>=0?n.Ah(r):n.Ph().Th(n,-1-i,null,r)));return n.Ch(e,t,r)}}function Syn(n,e){switch(e){case 7:!n.e&&(n.e=new g_(H7e,n,7,4));NVn(n.e);return;case 8:!n.d&&(n.d=new g_(H7e,n,8,5));NVn(n.d);return}Cpn(n,e)}function Pyn(n,e,t){t==null?(!n.o&&(n.o=new ven((cYn(),int),Rnt,n,0)),Amn(n.o,e)):(!n.o&&(n.o=new ven((cYn(),int),Rnt,n,0)),oSn(n.o,e,t));return n}function Cyn(n,e){dZ();var t,r,i,a;t=n;a=e;if(G$(n,21)&&!G$(e,21)){t=e;a=n}for(i=t.Kc();i.Ob();){r=i.Pb();if(a.Hc(r)){return false}}return true}function Iyn(n,e,t,r){if(e.at.b){return true}}}return false}function Oyn(n,e){if(HA(n)){return!!pce[e]}else if(n.Sm){return!!n.Sm[e]}else if(GA(n)){return!!vce[e]}else if(UA(n)){return!!gce[e]}return false}function Ayn(n){var e;e=n.a;do{e=bG(K9(new GV(sx(Qgn(e).a.Kc(),new d))),18).c.i;e.k==(YIn(),tEe)&&n.b.Fc(e)}while(e.k==(YIn(),tEe));n.b=Avn(n.b)}function Lyn(n,e){var r,i,a;a=n;for(i=new GV(sx(Qgn(e).a.Kc(),new d));dDn(i);){r=bG(K9(i),18);!!r.c.i.c&&(a=t.Math.max(a,r.c.i.c.p))}return a}function Nyn(n,e){var t,r,i;i=0;r=bG(bG(r7(n.r,e),21),87).Kc();while(r.Ob()){t=bG(r.Pb(),117);i+=t.d.d+t.b.Mf().b+t.d.a;r.Ob()&&(i+=n.w)}return i}function $yn(n,e){var t,r,i;i=0;r=bG(bG(r7(n.r,e),21),87).Kc();while(r.Ob()){t=bG(r.Pb(),117);i+=t.d.b+t.b.Mf().a+t.d.c;r.Ob()&&(i+=n.w)}return i}function Dyn(n){var e,t,r,i;r=0;i=WFn(n);if(i.c.length==0){return 1}else{for(t=new nd(i);t.a=0?n.Lh(c,t,true):r$n(n,a,t)):bG(a,69).wk().yk(n,n.hi(),i,t,r)}function Byn(n,e,t,r){var i,a;a=e.pf((JYn(),W4e))?bG(e.of(W4e),21):n.j;i=pdn(a);if(i==(tZn(),Ype)){return}if(t&&!jmn(i)){return}ROn(Axn(n,i,r),e)}function Hyn(n){switch(n.g){case 1:return ufn(),pme;case 3:return ufn(),dme;case 2:return ufn(),vme;case 4:return ufn(),gme;default:return null}}function Uyn(n,e,t){if(n.e){switch(n.b){case 1:tZ(n.c,e,t);break;case 0:rZ(n.c,e,t)}}else{N5(n.c,e,t)}n.a[e.p][t.p]=n.c.i;n.a[t.p][e.p]=n.c.e}function Gyn(n){var e,t;if(n==null){return null}t=$nn(Yje,XZn,199,n.length,0,2);for(e=0;e=0)return i;if(n.ol()){for(r=0;r=i)throw dm(new m_(e,i));if(n.Si()){r=n.dd(t);if(r>=0&&r!=e){throw dm(new jM(Gte))}}return n.Xi(e,t)}function Wyn(n,e){this.a=bG(nQ(n),253);this.b=bG(nQ(e),253);if(n.Ed(e)>0||n==(My(),ase)||e==(Ty(),sse)){throw dm(new jM("Invalid range: "+K5(n,e)))}}function Qyn(n){var e,t;this.b=new im;this.c=n;this.a=false;for(t=new nd(n.a);t.a0);if((e&-e)==e){return c0(e*bRn(n,31)*4.656612873077393e-10)}do{t=bRn(n,31);r=t%e}while(t-r+(e-1)<0);return c0(r)}function oMn(n,e,t){switch(t.g){case 1:n.a=e.a/2;n.b=0;break;case 2:n.a=e.a;n.b=e.b/2;break;case 3:n.a=e.a/2;n.b=e.b;break;case 4:n.a=0;n.b=e.b/2}}function fMn(n,e,t,r){var i,a;for(i=e;i1&&(a=Jyn(n,e));return a}function wMn(n){var e;e=bM(MK(YDn(n,(JYn(),Y6e))))*t.Math.sqrt((!n.a&&(n.a=new gz(snt,n,10,11)),n.a).i);return new PO(e,e/bM(MK(YDn(n,J6e))))}function dMn(n){var e;if(!!n.f&&n.f.Vh()){e=bG(n.f,54);n.f=bG(Twn(n,e),84);n.f!=e&&(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,9,8,e,n.f))}return n.f}function gMn(n){var e;if(!!n.i&&n.i.Vh()){e=bG(n.i,54);n.i=bG(Twn(n,e),84);n.i!=e&&(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,9,7,e,n.i))}return n.i}function vMn(n){var e;if(!!n.b&&(n.b.Db&64)!=0){e=n.b;n.b=bG(Twn(n,e),19);n.b!=e&&(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,9,21,e,n.b))}return n.b}function pMn(n,e){var t,r,i;if(n.d==null){++n.e;++n.f}else{r=e.Bi();uKn(n,n.f+1);i=(r&pZn)%n.d.length;t=n.d[i];!t&&(t=n.d[i]=n.dk());t.Fc(e);++n.f}}function mMn(n,e,t){var r;if(e.tk()){return false}else if(e.Ik()!=-2){r=e.ik();return r==null?t==null:bdn(r,t)}else return e.qk()==n.e.Dh()&&t==null}function kMn(){var n;Tcn(16,l1n);n=hun(16);this.b=$nn(Dse,h1n,303,n,0,1);this.c=$nn(Dse,h1n,303,n,0,1);this.a=null;this.e=null;this.i=0;this.f=n-1;this.g=0}function yMn(n){RF.call(this);this.k=(YIn(),rEe);this.j=(Tcn(6,d1n),new H7(6));this.b=(Tcn(2,d1n),new H7(2));this.d=new Fk;this.f=new Bk;this.a=n}function MMn(n){var e,t;if(n.c.length<=1){return}e=m_n(n,(UQn(),Y8e));sAn(n,bG(e.a,17).a,bG(e.b,17).a);t=m_n(n,n9e);sAn(n,bG(t.a,17).a,bG(t.b,17).a)}function TMn(n,e,t){var r,i;i=n.a.b;for(r=i.c.length;r102)return-1;if(n<=57)return n-48;if(n<65)return-1;if(n<=70)return n-65+10;if(n<97)return-1;return n-97+10}function $Mn(n,e){if(n==null){throw dm(new PM("null key in entry: null="+e))}else if(e==null){throw dm(new PM("null value in entry: "+n+"=null"))}}function DMn(n,e){var t,r;while(n.Ob()){if(!e.Ob()){return false}t=n.Pb();r=e.Pb();if(!(BA(t)===BA(r)||t!=null&&bdn(t,r))){return false}}return!e.Ob()}function xMn(n,e){var r;r=zfn(fT(zht,1),C0n,28,15,[Kbn(n.a[0],e),Kbn(n.a[1],e),Kbn(n.a[2],e)]);if(n.d){r[0]=t.Math.max(r[0],r[2]);r[2]=r[0]}return r}function RMn(n,e){var r;r=zfn(fT(zht,1),C0n,28,15,[Fbn(n.a[0],e),Fbn(n.a[1],e),Fbn(n.a[2],e)]);if(n.d){r[0]=t.Math.max(r[0],r[2]);r[2]=r[0]}return r}function KMn(n,e,t){if(!R_(bG(lIn(e,(IYn(),m_e)),101))){i9(n,e,SOn(e,t));i9(n,e,SOn(e,(UQn(),Y8e)));i9(n,e,SOn(e,D8e));dZ();g$(e.j,new Wg(n))}}function FMn(n){var e,t;n.c||lzn(n);t=new zk;e=new nd(n.a);K3(e);while(e.a0&&(w3(0,e.length),e.charCodeAt(0)==43)?(w3(1,e.length+1),e.substr(1)):e))}function aTn(n){var e;return n==null?null:new LN((e=SXn(n,true),e.length>0&&(w3(0,e.length),e.charCodeAt(0)==43)?(w3(1,e.length+1),e.substr(1)):e))}function cTn(n,e,t,r,i,a,c,u){var s,o;if(!r){return}s=r.a[0];!!s&&cTn(n,e,t,s,i,a,c,u);vjn(n,t,r.d,i,a,c,u)&&e.Fc(r);o=r.a[1];!!o&&cTn(n,e,t,o,i,a,c,u)}function uTn(n,e,t){try{return qA(Aun(n,e,t),1)}catch(r){r=Ofn(r);if(G$(r,333)){throw dm(new kM(l3n+n.o+"*"+n.p+b3n+e+MZn+t+w3n))}else throw dm(r)}}function sTn(n,e,t){try{return qA(Aun(n,e,t),0)}catch(r){r=Ofn(r);if(G$(r,333)){throw dm(new kM(l3n+n.o+"*"+n.p+b3n+e+MZn+t+w3n))}else throw dm(r)}}function oTn(n,e,t){try{return qA(Aun(n,e,t),2)}catch(r){r=Ofn(r);if(G$(r,333)){throw dm(new kM(l3n+n.o+"*"+n.p+b3n+e+MZn+t+w3n))}else throw dm(r)}}function fTn(n,e){if(n.g==-1){throw dm(new Bm)}n.Xj();try{n.d.hd(n.g,e);n.f=n.d.j}catch(t){t=Ofn(t);if(G$(t,77)){throw dm(new Gm)}else throw dm(t)}}function hTn(n){var e,t,r,i,a;for(r=new nd(n.b);r.aa&&bQ(e,a,null);return e}function bTn(n,e){var t,r;r=n.gc();if(e==null){for(t=0;t0&&(s+=i);o[f]=c;c+=u*(s+r)}}function CTn(n){var e,t,r;r=n.f;n.n=$nn(zht,C0n,28,r,15,1);n.d=$nn(zht,C0n,28,r,15,1);for(e=0;e0?n.c:0);++a}n.b=i;n.d=c}function xTn(n,e){var r;r=zfn(fT(zht,1),C0n,28,15,[uMn(n,(ran(),rpe),e),uMn(n,ipe,e),uMn(n,ape,e)]);if(n.f){r[0]=t.Math.max(r[0],r[2]);r[2]=r[0]}return r}function RTn(n,e,t){var r;try{VBn(n,e+n.j,t+n.k,false,true)}catch(i){i=Ofn(i);if(G$(i,77)){r=i;throw dm(new kM(r.g+d3n+e+MZn+t+")."))}else throw dm(i)}}function KTn(n,e,t){var r;try{VBn(n,e+n.j,t+n.k,true,false)}catch(i){i=Ofn(i);if(G$(i,77)){r=i;throw dm(new kM(r.g+d3n+e+MZn+t+")."))}else throw dm(i)}}function FTn(n){var e;if(!jR(n,(IYn(),WFe))){return}e=bG(lIn(n,WFe),21);if(e.Hc((ZDn(),e8e))){e.Mc(e8e);e.Fc(r8e)}else if(e.Hc(r8e)){e.Mc(r8e);e.Fc(e8e)}}function _Tn(n){var e;if(!jR(n,(IYn(),WFe))){return}e=bG(lIn(n,WFe),21);if(e.Hc((ZDn(),s8e))){e.Mc(s8e);e.Fc(c8e)}else if(e.Hc(c8e)){e.Mc(c8e);e.Fc(s8e)}}function BTn(n,e,t,r){var i,a,c,u;n.a==null&&aOn(n,e);c=e.b.j.c.length;a=t.d.p;u=r.d.p;i=u-1;i<0&&(i=c-1);return a<=i?n.a[i]-n.a[a]:n.a[c-1]-n.a[a]+n.a[i]}function HTn(n){var e,t;if(!n.b){n.b=l6(bG(n.f,27).kh().i);for(t=new _D(bG(n.f,27).kh());t.e!=t.i.gc();){e=bG(iyn(t),135);ED(n.b,new nM(e))}}return n.b}function UTn(n){var e,t;if(!n.e){n.e=l6(HJ(bG(n.f,27)).i);for(t=new _D(HJ(bG(n.f,27)));t.e!=t.i.gc();){e=bG(iyn(t),123);ED(n.e,new tp(e))}}return n.e}function GTn(n){var e,t;if(!n.a){n.a=l6(mZ(bG(n.f,27)).i);for(t=new _D(mZ(bG(n.f,27)));t.e!=t.i.gc();){e=bG(iyn(t),27);ED(n.a,new nR(n,e))}}return n.a}function qTn(n){var e;if(!n.C&&(n.D!=null||n.B!=null)){e=UWn(n);if(e){n.hl(e)}else{try{n.hl(null)}catch(t){t=Ofn(t);if(!G$(t,63))throw dm(t)}}}return n.C}function XTn(n){switch(n.q.g){case 5:eSn(n,(UQn(),D8e));eSn(n,Y8e);break;case 4:Czn(n,(UQn(),D8e));Czn(n,Y8e);break;default:LAn(n,(UQn(),D8e));LAn(n,Y8e)}}function VTn(n){switch(n.q.g){case 5:tSn(n,(UQn(),$8e));tSn(n,n9e);break;case 4:Izn(n,(UQn(),$8e));Izn(n,n9e);break;default:NAn(n,(UQn(),$8e));NAn(n,n9e)}}function zTn(n,e){var r,i,a;a=new wj;for(i=n.Kc();i.Ob();){r=bG(i.Pb(),36);cHn(r,a.a,0);a.a+=r.f.a+e;a.b=t.Math.max(a.b,r.f.b)}a.b>0&&(a.b+=e);return a}function WTn(n,e){var r,i,a;a=new wj;for(i=n.Kc();i.Ob();){r=bG(i.Pb(),36);cHn(r,0,a.b);a.b+=r.f.b+e;a.a=t.Math.max(a.a,r.f.a)}a.a>0&&(a.a+=e);return a}function QTn(n){var e,r,i;i=pZn;for(r=new nd(n.a);r.a>16==6){return n.Cb.Th(n,5,z7e,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?n.ii():t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function njn(n){OZ();var e=n.e;if(e&&e.stack){var t=e.stack;var r=e+"\n";t.substring(0,r.length)==r&&(t=t.substring(r.length));return t.split("\n")}return[]}function ejn(n){var e;e=(Ccn(),ile);return e[n>>>28]|e[n>>24&15]<<4|e[n>>20&15]<<8|e[n>>16&15]<<12|e[n>>12&15]<<16|e[n>>8&15]<<20|e[n>>4&15]<<24|e[n&15]<<28}function tjn(n){var e,r,i;if(n.b!=n.c){return}i=n.a.length;r=Mhn(t.Math.max(8,i))<<1;if(n.b!=0){e=PF(n.a,r);Lun(n,e,i);n.a=e;n.b=0}else{Jm(n.a,r)}n.c=i}function rjn(n,e){var t;t=n.b;return t.pf((JYn(),m6e))?t.ag()==(UQn(),n9e)?-t.Mf().a-bM(MK(t.of(m6e))):e+bM(MK(t.of(m6e))):t.ag()==(UQn(),n9e)?-t.Mf().a:e}function ijn(n){var e;if(n.b.c.length!=0&&!!bG(Yq(n.b,0),72).a){return bG(Yq(n.b,0),72).a}e=wY(n);if(e!=null){return e}return""+(!n.c?-1:Ctn(n.c.a,n,0))}function ajn(n){var e;if(n.f.c.length!=0&&!!bG(Yq(n.f,0),72).a){return bG(Yq(n.f,0),72).a}e=wY(n);if(e!=null){return e}return""+(!n.i?-1:Ctn(n.i.j,n,0))}function cjn(n,e){var t,r;if(e<0||e>=n.gc()){return null}for(t=e;t0?n.c:0);a=t.Math.max(a,e.d);++i}n.e=c;n.b=a}function ojn(n){var e,t;if(!n.b){n.b=l6(bG(n.f,123).kh().i);for(t=new _D(bG(n.f,123).kh());t.e!=t.i.gc();){e=bG(iyn(t),135);ED(n.b,new nM(e))}}return n.b}function fjn(n,e){var t,r,i;if(e.dc()){return OK(),OK(),Gtt}else{t=new fF(n,e.gc());for(i=new _D(n);i.e!=i.i.gc();){r=iyn(i);e.Hc(r)&&cen(t,r)}return t}}function hjn(n,e,t,r){if(e==0){return r?(!n.o&&(n.o=new ven((cYn(),int),Rnt,n,0)),n.o):(!n.o&&(n.o=new ven((cYn(),int),Rnt,n,0)),Cnn(n.o))}return _yn(n,e,t,r)}function ljn(n){var e,t;if(n.rb){for(e=0,t=n.rb.i;e>22);i+=r>>22;if(i<0){return false}n.l=t&f0n;n.m=r&f0n;n.h=i&h0n;return true}function vjn(n,e,t,r,i,a,c){var u,s;if(e.Te()&&(s=n.a.Ne(t,r),s<0||!i&&s==0)){return false}if(e.Ue()&&(u=n.a.Ne(t,a),u>0||!c&&u==0)){return false}return true}function pjn(n,e){Nln();var t;t=n.j.g-e.j.g;if(t!=0){return 0}switch(n.j.g){case 2:return nvn(e,dIe)-nvn(n,dIe);case 4:return nvn(n,wIe)-nvn(e,wIe)}return 0}function mjn(n){switch(n.g){case 0:return qNe;case 1:return XNe;case 2:return VNe;case 3:return zNe;case 4:return WNe;case 5:return QNe;default:return null}}function kjn(n,e,t){var r,i;r=(i=new ay,Ubn(i,e),Qun(i,t),cen((!n.c&&(n.c=new gz(Art,n,12,10)),n.c),i),i);Lan(r,0);Nan(r,1);Tdn(r,true);kdn(r,true);return r}function yjn(n,e){var t,r;if(e>=n.i)throw dm(new ML(e,n.i));++n.j;t=n.g[e];r=n.i-e-1;r>0&&QGn(n.g,e+1,n.g,e,r);bQ(n.g,--n.i,null);n.Qi(e,t);n.Ni();return t}function Mjn(n,e){var t,r;if(n.Db>>16==17){return n.Cb.Th(n,21,Mrt,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?n.ii():t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function Tjn(n){var e,t,r,i;dZ();g$(n.c,n.a);for(i=new nd(n.c);i.at.a.c.length)){throw dm(new jM("index must be >= 0 and <= layer node count"))}!!n.c&&Ttn(n.c.a,n);n.c=t;!!t&&WX(t.a,e,n)}function _jn(n,e){var t,r,i;for(r=new GV(sx(Wgn(n).a.Kc(),new d));dDn(r);){t=bG(K9(r),18);i=bG(e.Kb(t),10);return new zl(nQ(i.n.b+i.o.b/2))}return yy(),yy(),Tce}function Bjn(n,e){this.c=new rm;this.a=n;this.b=e;this.d=bG(lIn(n,(WYn(),BDe)),312);BA(lIn(n,(IYn(),QFe)))===BA((ntn(),ZNe))?this.e=new Lk:this.e=new Ak}function Hjn(n,e){var t,r;r=null;if(n.pf((JYn(),B6e))){t=bG(n.of(B6e),96);t.pf(e)&&(r=t.of(e))}r==null&&!!n.Tf()&&(r=n.Tf().of(e));r==null&&(r=tyn(e));return r}function Ujn(n,e){var t,r;t=n.fd(e);try{r=t.Pb();t.Qb();return r}catch(i){i=Ofn(i);if(G$(i,112)){throw dm(new kM("Can't remove element "+e))}else throw dm(i)}}function Gjn(n,e){var t,r,i;r=new eS;i=new Rhn(r.q.getFullYear()-V1n,r.q.getMonth(),r.q.getDate());t=nXn(n,e,i);if(t==0||t0?e:0);++r}return new PO(i,a)}function Yjn(n,e){var t,r;if(n.Db>>16==6){return n.Cb.Th(n,6,H7e,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?(cYn(),Z7e):t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function Zjn(n,e){var t,r;if(n.Db>>16==7){return n.Cb.Th(n,1,F7e,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?(cYn(),ent):t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function nEn(n,e){var t,r;if(n.Db>>16==9){return n.Cb.Th(n,9,snt,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?(cYn(),rnt):t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function eEn(n,e){var t,r;if(n.Db>>16==5){return n.Cb.Th(n,9,Srt,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?(rZn(),zrt):t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function tEn(n,e){var t,r;if(n.Db>>16==7){return n.Cb.Th(n,6,z7e,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?(rZn(),rit):t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function rEn(n,e){var t,r;if(n.Db>>16==3){return n.Cb.Th(n,0,G7e,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?(rZn(),Brt):t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function iEn(){this.a=new bo;this.g=new kMn;this.j=new kMn;this.b=new rm;this.d=new kMn;this.i=new kMn;this.k=new rm;this.c=new rm;this.e=new rm;this.f=new rm}function aEn(n,e,t){var r,i,a;t<0&&(t=0);a=n.i;for(i=t;iI0n){return uEn(n,r)}if(r==n){return true}}}return false}function sEn(n){Wx();switch(n.q.g){case 5:bNn(n,(UQn(),D8e));bNn(n,Y8e);break;case 4:Uxn(n,(UQn(),D8e));Uxn(n,Y8e);break;default:FQn(n,(UQn(),D8e));FQn(n,Y8e)}}function oEn(n){Wx();switch(n.q.g){case 5:E$n(n,(UQn(),$8e));E$n(n,n9e);break;case 4:gyn(n,(UQn(),$8e));gyn(n,n9e);break;default:_Qn(n,(UQn(),$8e));_Qn(n,n9e)}}function fEn(n){var e,t;e=bG(lIn(n,(oGn(),Yye)),17);if(e){t=e.a;t==0?Ehn(n,(Tun(),dMe),new zvn):Ehn(n,(Tun(),dMe),new j8(t))}else{Ehn(n,(Tun(),dMe),new j8(1))}}function hEn(n,e){var t;t=n.i;switch(e.g){case 1:return-(n.n.b+n.o.b);case 2:return n.n.a-t.o.a;case 3:return n.n.b-t.o.b;case 4:return-(n.n.a+n.o.a)}return 0}function lEn(n,e){switch(n.g){case 0:return e==(Wvn(),QDe)?xCe:RCe;case 1:return e==(Wvn(),QDe)?xCe:DCe;case 2:return e==(Wvn(),QDe)?DCe:RCe;default:return DCe}}function bEn(n,e){var r,i,a;Ttn(n.a,e);n.e-=e.r+(n.a.c.length==0?0:n.c);a=l7n;for(i=new nd(n.a);i.a>16==3){return n.Cb.Th(n,12,snt,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?(cYn(),Y7e):t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function dEn(n,e){var t,r;if(n.Db>>16==11){return n.Cb.Th(n,10,snt,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?(cYn(),tnt):t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function gEn(n,e){var t,r;if(n.Db>>16==10){return n.Cb.Th(n,11,Mrt,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?(rZn(),eit):t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function vEn(n,e){var t,r;if(n.Db>>16==10){return n.Cb.Th(n,12,Irt,e)}return r=vMn(bG(uin((t=bG(Ron(n,16),29),!t?(rZn(),iit):t),n.Db>>16),19)),n.Cb.Th(n,r.n,r.f,e)}function pEn(n){var e;if((n.Bb&1)==0&&!!n.r&&n.r.Vh()){e=bG(n.r,54);n.r=bG(Twn(n,e),142);n.r!=e&&(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,9,8,e,n.r))}return n.r}function mEn(n,e,r){var i;i=zfn(fT(zht,1),C0n,28,15,[XCn(n,(ran(),rpe),e,r),XCn(n,ipe,e,r),XCn(n,ape,e,r)]);if(n.f){i[0]=t.Math.max(i[0],i[2]);i[2]=i[0]}return i}function kEn(n,e){var t,r,i;i=vyn(n,e);if(i.c.length==0){return}g$(i,new cr);t=i.c.length;for(r=0;r>19;o=e.h>>19;if(s!=o){return o-s}i=n.h;u=e.h;if(i!=u){return i-u}r=n.m;c=e.m;if(r!=c){return r-c}t=n.l;a=e.l;return t-a}function PEn(){PEn=O;Nve=(nBn(),Bve);Lve=new TL(N2n,Nve);Ave=(Jrn(),Tve);Ove=new TL($2n,Ave);Ive=(qkn(),mve);Cve=new TL(D2n,Ive);Pve=new TL(x2n,(Qx(),true))}function CEn(n,e,t){var r,i;r=e*t;if(G$(n.g,154)){i=e5(n);if(i.f.d){i.f.a||(n.d.a+=r+Y2n)}else{n.d.d-=r+Y2n;n.d.a+=r+Y2n}}else if(G$(n.g,10)){n.d.d-=r;n.d.a+=2*r}}function IEn(n,e,r){var i,a,c,u,s;a=n[r.g];for(s=new nd(e.d);s.a0?n.b:0);++r}e.b=i;e.e=a}function AEn(n){var e,t,r;r=n.b;if(hS(n.i,r.length)){t=r.length*2;n.b=$nn(Dse,h1n,303,t,0,1);n.c=$nn(Dse,h1n,303,t,0,1);n.f=t-1;n.i=0;for(e=n.a;e;e=e.c){VLn(n,e,e)}++n.g}}function LEn(n,e,t,r){var i,a,c,u;for(i=0;iu&&(s=u/i);a>c&&(o=c/a);jD(n,t.Math.min(s,o));return n}function xEn(){cXn();var n,e;try{e=bG(xSn((PP(),Ort),ate),2113);if(e){return e}}catch(t){t=Ofn(t);if(G$(t,103)){n=t;xW((c$(),n))}else throw dm(t)}return new so}function REn(){cXn();var n,e;try{e=bG(xSn((PP(),Ort),Nie),2040);if(e){return e}}catch(t){t=Ofn(t);if(G$(t,103)){n=t;xW((c$(),n))}else throw dm(t)}return new qo}function KEn(){Gen();var n,e;try{e=bG(xSn((PP(),Ort),fae),2122);if(e){return e}}catch(t){t=Ofn(t);if(G$(t,103)){n=t;xW((c$(),n))}else throw dm(t)}return new Ff}function FEn(n,e,t){var r,i;i=n.e;n.e=e;if((n.Db&4)!=0&&(n.Db&1)==0){r=new vz(n,1,4,i,e);!t?t=r:t.nj(r)}i!=e&&(e?t=LWn(n,pRn(n,e),t):t=LWn(n,n.a,t));return t}function _En(){eS.call(this);this.e=-1;this.a=false;this.p=T1n;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=T1n}function BEn(n,e){var t,r,i;r=n.b.d.d;n.a||(r+=n.b.d.a);i=e.b.d.d;e.a||(i+=e.b.d.a);t=bgn(r,i);if(t==0){if(!n.a&&e.a){return-1}else if(!e.a&&n.a){return 1}}return t}function HEn(n,e){var t,r,i;r=n.b.b.d;n.a||(r+=n.b.b.a);i=e.b.b.d;e.a||(i+=e.b.b.a);t=bgn(r,i);if(t==0){if(!n.a&&e.a){return-1}else if(!e.a&&n.a){return 1}}return t}function UEn(n,e){var t,r,i;r=n.b.g.d;n.a||(r+=n.b.g.a);i=e.b.g.d;e.a||(i+=e.b.g.a);t=bgn(r,i);if(t==0){if(!n.a&&e.a){return-1}else if(!e.a&&n.a){return 1}}return t}function GEn(){GEn=O;WMe=mV(xq(xq(xq(new mJ,(bIn(),cTe),(YYn(),LPe)),cTe,xPe),uTe,UPe),uTe,kPe);JMe=xq(xq(new mJ,cTe,fPe),cTe,yPe);QMe=mV(new mJ,uTe,TPe)}function qEn(n){var e,t,r,i,a;e=bG(lIn(n,(WYn(),eDe)),85);a=n.n;for(r=e.Cc().Kc();r.Ob();){t=bG(r.Pb(),314);i=t.i;i.c+=a.a;i.d+=a.b;t.c?L_n(t):N_n(t)}Ehn(n,eDe,null)}function XEn(n,e,t){var r,i;i=n.b;r=i.d;switch(e.g){case 1:return-r.d-t;case 2:return i.o.a+r.c+t;case 3:return i.o.b+r.a+t;case 4:return-r.b-t;default:return-1}}function VEn(n,e,t){var r,i;t.Ug("Interactive node placement",1);n.a=bG(lIn(e,(WYn(),BDe)),312);for(i=new nd(e.b);i.a0){c=(a&pZn)%n.d.length;i=i$n(n,c,a,e);if(i){u=i.nd(t);return u}}r=n.ck(a,e,t);n.c.Fc(r);return null}function fSn(n,e){var t,r,i,a;switch(cdn(n,e).Kl()){case 3:case 2:{t=dXn(e);for(i=0,a=t.i;i=0;i--){if(T_(n[i].d,e)||T_(n[i].d,r)){n.length>=i+1&&n.splice(0,i+1);break}}return n}function pSn(n,e){var r;if(qL(n)&&qL(e)){r=n/e;if(g0n0){n.b+=2;n.a+=i}}else{n.b+=1;n.a+=t.Math.min(i,a)}}function SSn(n){var e;e=bG(lIn(bG(dyn(n.b,0),40),(eqn(),SWe)),107);Ehn(n,(DQn(),Cze),new PO(0,0));sUn(new R7,n,e.b+e.c-bM(MK(lIn(n,Dze))),e.d+e.a-bM(MK(lIn(n,Rze))))}function PSn(n,e){var t,r;r=false;if(HA(e)){r=true;MQ(n,new eQ(TK(e)))}if(!r){if(G$(e,242)){r=true;MQ(n,(t=eB(bG(e,242)),new Lb(t)))}}if(!r){throw dm(new MM(Ste))}}function CSn(n,e,t,r){var i,a,c;i=new Utn(n.e,1,10,(c=e.c,G$(c,90)?bG(c,29):(rZn(),nit)),(a=t.c,G$(a,90)?bG(a,29):(rZn(),nit)),Vyn(n,e),false);!r?r=i:r.nj(i);return r}function ISn(n){var e,t;switch(bG(lIn(VQ(n),(IYn(),$Fe)),429).g){case 0:e=n.n;t=n.o;return new PO(e.a+t.a/2,e.b+t.b/2);case 1:return new uN(n.n);default:return null}}function OSn(){OSn=O;c$e=new oI(G4n,0);a$e=new oI("LEFTUP",1);s$e=new oI("RIGHTUP",2);i$e=new oI("LEFTDOWN",3);u$e=new oI("RIGHTDOWN",4);r$e=new oI("BALANCED",5)}function ASn(n,e,t){var r,i,a;r=bgn(n.a[e.p],n.a[t.p]);if(r==0){i=bG(lIn(e,(WYn(),dDe)),15);a=bG(lIn(t,dDe),15);if(i.Hc(t)){return-1}else if(a.Hc(e)){return 1}}return r}function LSn(n){switch(n.g){case 1:return new Ou;case 2:return new Au;case 3:return new Iu;case 0:return null;default:throw dm(new jM(m7n+(n.f!=null?n.f:""+n.g)))}}function NSn(n,e,t){switch(e){case 1:!n.n&&(n.n=new gz(unt,n,1,7));NVn(n.n);!n.n&&(n.n=new gz(unt,n,1,7));NW(n.n,bG(t,16));return;case 2:Wcn(n,TK(t));return}pln(n,e,t)}function $Sn(n,e,t){switch(e){case 3:jan(n,bM(MK(t)));return;case 4:Ean(n,bM(MK(t)));return;case 5:San(n,bM(MK(t)));return;case 6:Pan(n,bM(MK(t)));return}NSn(n,e,t)}function DSn(n,e,t){var r,i,a;a=(r=new ay,r);i=NCn(a,e,null);!!i&&i.oj();Qun(a,t);cen((!n.c&&(n.c=new gz(Art,n,12,10)),n.c),a);Lan(a,0);Nan(a,1);Tdn(a,true);kdn(a,true)}function xSn(n,e){var t,r,i;t=qP(n.i,e);if(G$(t,241)){i=bG(t,241);i.zi()==null&&undefined;return i.wi()}else if(G$(t,507)){r=bG(t,2037);i=r.b;return i}else{return null}}function RSn(n,e,t,r){var i,a;nQ(e);nQ(t);a=bG(nB(n.d,e),17);Htn(!!a,"Row %s not in %s",e,n.e);i=bG(nB(n.b,t),17);Htn(!!i,"Column %s not in %s",t,n.c);return Vfn(n,a.a,i.a,r)}function KSn(n,e,t,r,i,a,c){var u,s,o,f,h;f=i[a];o=a==c-1;u=o?r:0;h=LTn(u,f);r!=10&&zfn(fT(n,c-a),e[a],t[a],u,h);if(!o){++a;for(s=0;s1||u==-1){a=bG(s,15);i.Wb(Zvn(n,a))}else{i.Wb(lUn(n,bG(s,58)))}}}}function YSn(n,e,t,r){EE();var c=wce;i=e;a=t;dce=r;function u(){for(var n=0;n0){return false}}return true}function ePn(n){var e,t,r,i,a;for(r=new pon(new Kw(n.b).a);r.b;){t=jun(r);e=bG(t.ld(),10);a=bG(bG(t.md(),42).a,10);i=bG(bG(t.md(),42).b,8);t_(kL(e.n),t_(_$(a.n),i))}}function tPn(n){switch(bG(lIn(n.b,(IYn(),mFe)),387).g){case 1:ES(rY(wrn(new gX(null,new d3(n.d,16)),new Zi),new na),new ea);break;case 2:yBn(n);break;case 0:TLn(n)}}function rPn(n,e,t){var r,i,a;r=t;!r&&(r=new gy);r.Ug("Layout",n.a.c.length);for(a=new nd(n.a);a.aN9n){return t}else i>-1e-6&&++t}return t}function oPn(n,e){var t;if(e!=n.b){t=null;!!n.b&&(t=D1(n.b,n,-4,t));!!e&&(t=Eyn(e,n,-4,t));t=Ewn(n,e,t);!!t&&t.oj()}else(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,3,e,e))}function fPn(n,e){var t;if(e!=n.f){t=null;!!n.f&&(t=D1(n.f,n,-1,t));!!e&&(t=Eyn(e,n,-1,t));t=jwn(n,e,t);!!t&&t.oj()}else(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,0,e,e))}function hPn(n,e,t,r){var i,a,c,u;if(bN(n.e)){i=e.Lk();u=e.md();a=t.md();c=ZZ(n,1,i,u,a,i.Jk()?_qn(n,i,a,G$(i,102)&&(bG(i,19).Bb&S0n)!=0):-1,true);r?r.nj(c):r=c}return r}function lPn(n){var e,t,r;if(n==null)return null;t=bG(n,15);if(t.dc())return"";r=new YM;for(e=t.Kc();e.Ob();){ZA(r,(bzn(),TK(e.Pb())));r.a+=" "}return NL(r,r.a.length-1)}function bPn(n){var e,t,r;if(n==null)return null;t=bG(n,15);if(t.dc())return"";r=new YM;for(e=t.Kc();e.Ob();){ZA(r,(bzn(),TK(e.Pb())));r.a+=" "}return NL(r,r.a.length-1)}function wPn(n,e,t){var r,i;r=n.c[e.c.p][e.p];i=n.c[t.c.p][t.p];if(r.a!=null&&i.a!=null){return HV(r.a,i.a)}else if(r.a!=null){return-1}else if(i.a!=null){return 1}return 0}function dPn(n,e,t){t.Ug("Tree layout",1);qJ(n.b);tW(n.b,(Njn(),uVe),uVe);tW(n.b,sVe,sVe);tW(n.b,oVe,oVe);tW(n.b,fVe,fVe);n.a=ezn(n.b,e);rPn(n,e,t.eh(1));t.Vg();return e}function gPn(n,e){var t,r,i,a,c,u;if(e){a=e.a.length;t=new WV(a);for(u=(t.b-t.a)*t.c<0?(NP(),Fht):new BD(t);u.Ob();){c=bG(u.Pb(),17);i=j6(e,c.a);r=new lp(n);eY(r.a,i)}}}function vPn(n,e){var t,r,i,a,c,u;if(e){a=e.a.length;t=new WV(a);for(u=(t.b-t.a)*t.c<0?(NP(),Fht):new BD(t);u.Ob();){c=bG(u.Pb(),17);i=j6(e,c.a);r=new rp(n);nY(r.a,i)}}}function pPn(n){var e;if(n!=null&&n.length>0&&ZJ(n,n.length-1)==33){try{e=wxn(o1(n,0,n.length-1));return e.e==null}catch(t){t=Ofn(t);if(!G$(t,33))throw dm(t)}}return false}function mPn(n,e,t){var r,i,a;r=VQ(e);i=Mgn(r);a=new vOn;l2(a,e);switch(t.g){case 1:KLn(a,Wdn($vn(i)));break;case 2:KLn(a,$vn(i))}Ehn(a,(IYn(),p_e),MK(lIn(n,p_e)));return a}function kPn(n){var e,t;e=bG(K9(new GV(sx(Qgn(n.a).a.Kc(),new d))),18);t=bG(K9(new GV(sx(Jgn(n.a).a.Kc(),new d))),18);return lM(yK(lIn(e,(WYn(),KDe))))||lM(yK(lIn(t,KDe)))}function yPn(){yPn=O;LAe=new YC("ONE_SIDE",0);$Ae=new YC("TWO_SIDES_CORNER",1);DAe=new YC("TWO_SIDES_OPPOSING",2);NAe=new YC("THREE_SIDES",3);AAe=new YC("FOUR_SIDES",4)}function MPn(n,e){var t,r,i,a;a=new im;i=0;r=e.Kc();while(r.Ob()){t=Bwn(bG(r.Pb(),17).a+i);while(t.a=n.f){break}Tm(a.c,t)}return a}function TPn(n,e){var t,r,i,a,c;for(a=new nd(e.a);a.a0&&Pjn(this,this.c-1,(UQn(),$8e));this.c0&&n[0].length>0&&(this.c=lM(yK(lIn(VQ(n[0][0]),(WYn(),gDe)))));this.a=$nn(NUe,XZn,2117,n.length,0,2);this.b=$nn(xUe,XZn,2118,n.length,0,2);this.d=new Ybn}function RPn(n){if(n.c.length==0){return false}if((b3(0,n.c.length),bG(n.c[0],18)).c.i.k==(YIn(),tEe)){return true}return l9(rY(new gX(null,new d3(n,16)),new Ba),new Ha)}function KPn(n,e){var r,i,a,c,u,s,o;s=WFn(e);c=e.f;o=e.g;u=t.Math.sqrt(c*c+o*o);a=0;for(i=new nd(s);i.a=0){t=pSn(n,d0n);r=Upn(n,d0n)}else{e=_V(n,1);t=pSn(e,5e8);r=Upn(e,5e8);r=Rgn(KV(r,1),O3(n,1))}return A3(KV(r,32),O3(t,A0n))}function rCn(n,e,t){var r,i;r=(PK(e.b!=0),bG(Rin(e,e.a.a),8));switch(t.g){case 0:r.b=0;break;case 2:r.b=n.f;break;case 3:r.a=0;break;default:r.a=n.g}i=Gkn(e,0);vW(i,r);return e}function iCn(n,e,t,r){var i,a,c,u,s;s=n.b;a=e.d;c=a.j;u=Skn(c,s.d[c.g],t);i=t_(_$(a.n),a.a);switch(a.j.g){case 1:case 3:u.a+=i.a;break;case 2:case 4:u.b+=i.b}w8(r,u,r.c.b,r.c)}function aCn(n,e,t){var r,i,a,c;c=Ctn(n.e,e,0);a=new Ck;a.b=t;r=new K4(n.e,c);while(r.b1;e>>=1){(e&1)!=0&&(r=I5(r,t));t.d==1?t=I5(t,t):t=new akn(GUn(t.a,t.d,$nn(Ght,z1n,28,t.d<<1,15,1)))}r=I5(r,t);return r}function hCn(){hCn=O;var n,e,t,r;Cwe=$nn(zht,C0n,28,25,15,1);Iwe=$nn(zht,C0n,28,33,15,1);r=152587890625e-16;for(e=32;e>=0;e--){Iwe[e]=r;r*=.5}t=1;for(n=24;n>=0;n--){Cwe[n]=t;t*=.5}}function lCn(n){var e,t;if(lM(yK(YDn(n,(IYn(),AFe))))){for(t=new GV(sx(uRn(n).a.Kc(),new d));dDn(t);){e=bG(K9(t),74);if(XNn(e)){if(lM(yK(YDn(e,LFe)))){return true}}}}return false}function bCn(n,e){var t,r,i;if(Gz(n.f,e)){e.b=n;r=e.c;Ctn(n.j,r,0)!=-1||ED(n.j,r);i=e.d;Ctn(n.j,i,0)!=-1||ED(n.j,i);t=e.a.b;if(t.c.length!=0){!n.i&&(n.i=new jkn(n));Lon(n.i,t)}}}function wCn(n){var e,t,r,i,a;t=n.c.d;r=t.j;i=n.d.d;a=i.j;if(r==a){return t.p=0&&T_(n.substr(e,"GMT".length),"GMT")){t[0]=e+3;return AUn(n,t,r)}if(e>=0&&T_(n.substr(e,"UTC".length),"UTC")){t[0]=e+3;return AUn(n,t,r)}return AUn(n,t,r)}function mCn(n,e){var t,r,i,a,c;a=n.g.a;c=n.g.b;for(r=new nd(n.d);r.at;a--){n[a]|=e[a-t-1]>>>c;n[a-1]=e[a-t-1]<0&&QGn(n.g,e,n.g,e+r,u);c=t.Kc();n.i+=r;for(i=0;i>4&15;a=n[r]&15;c[i++]=jnt[t];c[i++]=jnt[a]}return Tmn(c,0,c.length)}}function FCn(n){var e,t;if(n>=S0n){e=P0n+(n-S0n>>10&1023)&$1n;t=56320+(n-S0n&1023)&$1n;return String.fromCharCode(e)+(""+String.fromCharCode(t))}else{return String.fromCharCode(n&$1n)}}function _Cn(n,e){ZK();var t,r,i,a;i=bG(bG(r7(n.r,e),21),87);if(i.gc()>=2){r=bG(i.Kc().Pb(),117);t=n.u.Hc((uNn(),P8e));a=n.u.Hc(A8e);return!r.a&&!t&&(i.gc()==2||a)}else{return false}}function BCn(n,e,t,r,i){var a,c,u;a=YFn(n,e,t,r,i);u=false;while(!a){yxn(n,i,true);u=true;a=YFn(n,e,t,r,i)}u&&yxn(n,i,false);c=thn(i);if(c.c.length!=0){!!n.d&&n.d.Gg(c);BCn(n,i,t,r,c)}}function HCn(){HCn=O;O5e=new DO(G4n,0);C5e=new DO("DIRECTED",1);A5e=new DO("UNDIRECTED",2);S5e=new DO("ASSOCIATION",3);I5e=new DO("GENERALIZATION",4);P5e=new DO("DEPENDENCY",5)}function UCn(n,e){var t;if(!d0(n)){throw dm(new EM(Eee))}t=d0(n);switch(e.g){case 1:return-(n.j+n.f);case 2:return n.i-t.g;case 3:return n.j-t.f;case 4:return-(n.i+n.g)}return 0}function GCn(n,e,t){var r,i,a;r=e.Lk();a=e.md();i=r.Jk()?ZZ(n,4,r,a,null,_qn(n,r,a,G$(r,102)&&(bG(r,19).Bb&S0n)!=0),true):ZZ(n,r.tk()?2:1,r,a,r.ik(),-1,true);t?t.nj(i):t=i;return t}function qCn(n,e){var t,r;cJ(e);r=n.b.c.length;ED(n.b,e);while(r>0){t=r;r=(r-1)/2|0;if(n.a.Ne(Yq(n.b,r),e)<=0){r9(n.b,t,e);return true}r9(n.b,t,Yq(n.b,r))}r9(n.b,r,e);return true}function XCn(n,e,r,i){var a,c;a=0;if(!r){for(c=0;c=u}function zCn(n){switch(n.g){case 0:return new Vu;case 1:return new Wu;default:throw dm(new jM("No implementation is available for the width approximator "+(n.f!=null?n.f:""+n.g)))}}function WCn(n,e,t,r){var i;i=false;if(HA(r)){i=true;iq(e,t,TK(r))}if(!i){if(UA(r)){i=true;WCn(n,e,t,r)}}if(!i){if(G$(r,242)){i=true;jZ(e,t,bG(r,242))}}if(!i){throw dm(new MM(Ste))}}function QCn(n,e){var t,r,i;t=e.qi(n.a);if(t){i=Rpn((!t.b&&(t.b=new JR((rZn(),cit),Nat,t)),t.b),jie);if(i!=null){for(r=1;r<(yAn(),qut).length;++r){if(T_(qut[r],i)){return r}}}}return 0}function JCn(n,e){var t,r,i;t=e.qi(n.a);if(t){i=Rpn((!t.b&&(t.b=new JR((rZn(),cit),Nat,t)),t.b),jie);if(i!=null){for(r=1;r<(yAn(),Xut).length;++r){if(T_(Xut[r],i)){return r}}}}return 0}function YCn(n,e){var t,r,i,a;cJ(e);a=n.a.gc();if(a0?1:0;while(a.a[i]!=t){a=a.a[i];i=n.a.Ne(t.d,a.d)>0?1:0}a.a[i]=r;r.b=t.b;r.a[0]=t.a[0];r.a[1]=t.a[1];t.a[0]=null;t.a[1]=null}function iIn(n){var e,t,r,i;e=new im;t=$nn(qht,_2n,28,n.a.c.length,16,1);Yz(t,t.length);for(i=new nd(n.a);i.a0&&gUn((b3(0,t.c.length),bG(t.c[0],30)),n);t.c.length>1&&gUn(bG(Yq(t,t.c.length-1),30),n);e.Vg()}function uIn(n){uNn();var e,t;e=nV(C8e,zfn(fT(L8e,1),g1n,279,0,[O8e]));if(Qon(J1(e,n))>1){return false}t=nV(P8e,zfn(fT(L8e,1),g1n,279,0,[S8e,A8e]));if(Qon(J1(t,n))>1){return false}return true}function sIn(n,e){var t;t=z1((PP(),Ort),n);G$(t,507)?o2(Ort,n,new OA(this,e)):o2(Ort,n,this);VIn(this,e);if(e==(jj(),Frt)){this.wb=bG(this,2038);bG(e,2040)}else{this.wb=(cQ(),_rt)}}function oIn(n){var e,t,r;if(n==null){return null}e=null;for(t=0;t=N1n?"error":r>=900?"warn":r>=800?"info":"log");TQ(t,n.a);!!n.b&&AKn(e,t,n.b,"Exception: ",true)}function lIn(n,e){var t,r;r=(!n.q&&(n.q=new rm),fQ(n.q,e));if(r!=null){return r}t=e.Sg();G$(t,4)&&(t==null?(!n.q&&(n.q=new rm),b7(n.q,e)):(!n.q&&(n.q=new rm),jJ(n.q,e,t)),n);return t}function bIn(){bIn=O;rTe=new yC("P1_CYCLE_BREAKING",0);iTe=new yC("P2_LAYERING",1);aTe=new yC("P3_NODE_ORDERING",2);cTe=new yC("P4_NODE_PLACEMENT",3);uTe=new yC("P5_EDGE_ROUTING",4)}function wIn(n,e){nin();var t;if(n.c==e.c){if(n.b==e.b||usn(n.b,e.b)){t=XL(n.b)?1:-1;if(n.a&&!e.a){return t}else if(!n.a&&e.a){return-t}}return k$(n.b.g,e.b.g)}else{return bgn(n.c,e.c)}}function dIn(n,e){var t,r,i;if(EIn(n,e)){return true}for(r=new nd(e);r.a=i||e<0)throw dm(new kM(qte+e+Xte+i));if(t>=i||t<0)throw dm(new kM(Vte+t+Xte+i));e!=t?r=(a=n.Cj(t),n.qj(e,a),a):r=n.xj(t);return r}function TIn(n){var e,t,r;r=n;if(n){e=0;for(t=n.Eh();t;t=t.Eh()){if(++e>I0n){return TIn(t)}r=t;if(t==n){throw dm(new EM("There is a cycle in the containment hierarchy of "+n))}}}return r}function jIn(n){var e,t,r;r=new rfn(MZn,"[","]");for(t=n.Kc();t.Ob();){e=t.Pb();l7(r,BA(e)===BA(n)?"(this Collection)":e==null?CZn:fvn(e))}return!r.a?r.c:r.e.length==0?r.a.a:r.a.a+(""+r.e)}function EIn(n,e){var t,r;r=false;if(e.gc()<2){return false}for(t=0;t1&&(n.j.b+=n.e)}else{n.j.a+=r.a;n.j.b=t.Math.max(n.j.b,r.b);n.d.c.length>1&&(n.j.a+=n.e)}}function IIn(){IIn=O;FAe=zfn(fT(e9e,1),X4n,64,0,[(UQn(),D8e),$8e,Y8e]);KAe=zfn(fT(e9e,1),X4n,64,0,[$8e,Y8e,n9e]);_Ae=zfn(fT(e9e,1),X4n,64,0,[Y8e,n9e,D8e]);BAe=zfn(fT(e9e,1),X4n,64,0,[n9e,D8e,$8e])}function OIn(n,e,t,r){var i,a,c,u,s,o,f;c=n.c.d;u=n.d.d;if(c.j==u.j){return}f=n.b;i=c.j;s=null;while(i!=u.j){s=e==0?Qdn(i):zdn(i);a=Skn(i,f.d[i.g],t);o=Skn(s,f.d[s.g],t);hq(r,t_(a,o));i=s}}function AIn(n,e,t,r){var i,a,c,u,s;c=Ajn(n.a,e,t);u=bG(c.a,17).a;a=bG(c.b,17).a;if(r){s=bG(lIn(e,(WYn(),NDe)),10);i=bG(lIn(t,NDe),10);if(!!s&&!!i){N5(n.b,s,i);u+=n.b.i;a+=n.b.e}}return u>a}function LIn(n){var e,t,r,i,a,c,u,s,o;this.a=Gyn(n);this.b=new im;for(t=n,r=0,i=t.length;rWK(n.d).c){n.i+=n.g.c;Xpn(n.d)}else if(WK(n.d).c>WK(n.g).c){n.e+=n.d.c;Xpn(n.g)}else{n.i+=CX(n.g);n.e+=CX(n.d);Xpn(n.g);Xpn(n.d)}}}function RIn(n,e,t){var r,i,a,c;a=e.q;c=e.r;new x2((q7(),kXe),e,a,1);new x2(kXe,a,c,1);for(i=new nd(t);i.as&&(o=s/i);a>c&&(f=c/a);u=t.Math.min(o,f);n.a+=u*(e.a-n.a);n.b+=u*(e.b-n.b)}function GIn(n,e,t,r,i){var a,c;c=false;a=bG(Yq(t.b,0),27);while(Aqn(n,e,a,r,i)){c=true;VSn(t,a);if(t.b.c.length==0){break}a=bG(Yq(t.b,0),27)}t.b.c.length==0&&bEn(t.j,t);c&&DTn(e.q);return c}function qIn(n,e){v_n();var t,r,i,a;if(e.b<2){return false}a=Gkn(e,0);t=bG($6(a),8);r=t;while(a.b!=a.d.c){i=bG($6(a),8);if(ZRn(n,r,i)){return true}r=i}if(ZRn(n,r,t)){return true}return false}function XIn(n,e,t,r){var i,a;if(t==0){return!n.o&&(n.o=new ven((cYn(),int),Rnt,n,0)),W_(n.o,e,r)}return a=bG(uin((i=bG(Ron(n,16),29),!i?n.ii():i),t),69),a.wk().Ak(n,Fmn(n),t-sQ(n.ii()),e,r)}function VIn(n,e){var t;if(e!=n.sb){t=null;!!n.sb&&(t=bG(n.sb,54).Th(n,1,q7e,t));!!e&&(t=bG(e,54).Rh(n,1,q7e,t));t=tdn(n,e,t);!!t&&t.oj()}else(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,4,e,e))}function zIn(n,e){var t,r,i,a;if(e){i=Fan(e,"x");t=new op(n);Tan(t.a,(cJ(i),i));a=Fan(e,"y");r=new fp(n);Ian(r.a,(cJ(a),a))}else{throw dm(new AM("All edge sections need an end point."))}}function WIn(n,e){var t,r,i,a;if(e){i=Fan(e,"x");t=new cp(n);Can(t.a,(cJ(i),i));a=Fan(e,"y");r=new up(n);Oan(r.a,(cJ(a),a))}else{throw dm(new AM("All edge sections need a start point."))}}function QIn(n,e){var t,r,i,a,c,u,s;for(r=Bln(n),a=0,u=r.length;a>22-e;i=n.h<>22-e}else if(e<44){t=0;r=n.l<>44-e}else{t=0;r=0;i=n.l<n){throw dm(new jM("k must be smaller than n"))}else return e==0||e==n?1:n==0?0:bSn(n)/(bSn(e)*bSn(n-e))}function sOn(n,e){var t,r,i,a;t=new IN(n);while(t.g==null&&!t.c?D0(t):t.g==null||t.i!=0&&bG(t.g[t.i-1],51).Ob()){a=bG(nRn(t),58);if(G$(a,167)){r=bG(a,167);for(i=0;i>4];e[t*2+1]=qft[a&15]}return Tmn(e,0,e.length)}function jOn(n){CJ();var e,t,r;r=n.c.length;switch(r){case 0:return Mse;case 1:e=bG(zLn(new nd(n)),44);return gq(e.ld(),e.md());default:t=bG(Okn(n,$nn(vue,i1n,44,n.c.length,0,1)),173);return new By(t)}}function EOn(n){var e,t,r,i,a,c;e=new KD;t=new KD;x6(e,n);x6(t,n);while(t.b!=t.c){i=bG(Bz(t),36);for(c=new nd(i.a);c.a0&&wHn(n,t,e);return i}return I$n(n,e,t)}function IOn(){IOn=O;VJe=(JYn(),I6e);nYe=X6e;_Je=J4e;BJe=n6e;HJe=t6e;FJe=W4e;UJe=a6e;XJe=j6e;RJe=(OHn(),kJe);KJe=yJe;WJe=PJe;YJe=OJe;QJe=CJe;JJe=IJe;GJe=TJe;qJe=EJe;zJe=SJe;ZJe=AJe;eYe=NJe;xJe=mJe}function OOn(n,e){var t,r,i,a,c;if(n.e<=e){return n.g}if(v3(n,n.g,e)){return n.g}a=n.r;r=n.g;c=n.r;i=(a-r)/2+r;while(r+11&&(n.e.b+=n.a)}else{n.e.a+=r.a;n.e.b=t.Math.max(n.e.b,r.b);n.d.c.length>1&&(n.e.a+=n.a)}}function KOn(n){var e,t,r,i;i=n.i;e=i.b;r=i.j;t=i.g;switch(i.a.g){case 0:t.a=(n.g.b.o.a-r.a)/2;break;case 1:t.a=e.d.n.a+e.d.a.a;break;case 2:t.a=e.d.n.a+e.d.a.a-r.a;break;case 3:t.b=e.d.n.b+e.d.a.b}}function FOn(n,e,t){var r,i,a;for(i=new GV(sx(Wgn(t).a.Kc(),new d));dDn(i);){r=bG(K9(i),18);if(!(!j9(r)&&!(!j9(r)&&r.c.i.c==r.d.i.c))){continue}a=hRn(n,r,t,new Nk);a.c.length>1&&(Tm(e.c,a),true)}}function _On(n,e,t,r,i){if(rr&&(n.a=r);n.bi&&(n.b=i);return n}function BOn(n){if(G$(n,143)){return kKn(bG(n,143))}else if(G$(n,233)){return Pvn(bG(n,233))}else if(G$(n,23)){return nOn(bG(n,23))}else{throw dm(new jM(Ite+jIn(new $M(zfn(fT(kce,1),jZn,1,5,[n])))))}}function HOn(n,e,t,r,i){var a,c,u;a=true;for(c=0;c>>i|t[c+r+1]<>>i;++c}return a}function UOn(n,e,t,r){var i,a,c;if(e.k==(YIn(),tEe)){for(a=new GV(sx(Qgn(e).a.Kc(),new d));dDn(a);){i=bG(K9(a),18);c=i.c.i.k;if(c==tEe&&n.c.a[i.c.i.c.p]==r&&n.c.a[e.c.p]==t){return true}}}return false}function GOn(n,e){var t,r,i,a;e&=63;t=n.h&h0n;if(e<22){a=t>>>e;i=n.m>>e|t<<22-e;r=n.l>>e|n.m<<22-e}else if(e<44){a=0;i=t>>>e-22;r=n.m>>e-22|n.h<<44-e}else{a=0;i=0;r=t>>>e-44}return M$(r&f0n,i&f0n,a&h0n)}function qOn(n,e,t,r){var i;this.b=r;this.e=n==(ucn(),WUe);i=e[t];this.d=tX(qht,[XZn,_2n],[183,28],16,[i.length,i.length],2);this.a=tX(Ght,[XZn,z1n],[53,28],15,[i.length,i.length],2);this.c=new $Pn(e,t)}function XOn(n){var e,t,r;n.k=new R2((UQn(),zfn(fT(e9e,1),X4n,64,0,[Z8e,D8e,$8e,Y8e,n9e])).length,n.j.c.length);for(r=new nd(n.j);r.a=t){rAn(n,e,r.p);return true}}return false}function JOn(n,e,t,r){var i,a,c,u,s,o;c=t.length;a=0;i=-1;o=Crn((w3(e,n.length+1),n.substr(e)),(fB(),wwe));for(u=0;ua&&$z(o,Crn(t[u],wwe))){i=u;a=s}}i>=0&&(r[0]=e+a);return i}function YOn(n){var e;if((n.Db&64)!=0)return oOn(n);e=new vx(Kee);!n.a||tL(tL((e.a+=' "',e),n.a),'"');tL(Kj(tL(Kj(tL(Kj(tL(Kj((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")");return e.a}function ZOn(n,e,t){var r,i,a,c,u;u=ZKn(n.e.Dh(),e);i=bG(n.g,124);r=0;for(c=0;ct){return sLn(n,t,"start index")}if(e<0||e>t){return sLn(e,t,"end index")}return RBn("end index (%s) must not be less than start index (%s)",zfn(fT(kce,1),jZn,1,5,[Bwn(e),Bwn(n)]))}function tAn(n,e){var t,r,i,a;for(r=0,i=n.length;r0&&aAn(n,a,t))}}e.p=0}function cAn(n){var e;this.c=new vS;this.f=n.e;this.e=n.d;this.i=n.g;this.d=n.c;this.b=n.b;this.k=n.j;this.a=n.a;!n.i?this.j=(e=bG(Pj(k3e),9),new aB(e,bG(PF(e,e.length),9),0)):this.j=n.i;this.g=n.f}function uAn(n){var e,t,r,i;e=IQ(tL(new vx("Predicates."),"and"),40);t=true;for(i=new td(n);i.b0?u[c-1]:$nn(Yje,e6n,10,0,0,1);i=u[c];o=c=0?n.ki(i):YLn(n,r)}else{throw dm(new jM(Uee+r.xe()+Gee))}}else{wdn(n,t,r)}}function bAn(n){var e,t;t=null;e=false;if(G$(n,211)){e=true;t=bG(n,211).a}if(!e){if(G$(n,263)){e=true;t=""+bG(n,263).a}}if(!e){if(G$(n,493)){e=true;t=""+bG(n,493).a}}if(!e){throw dm(new MM(Ste))}return t}function wAn(n,e,t){var r,i,a,c,u,s;s=ZKn(n.e.Dh(),e);r=0;u=n.i;i=bG(n.g,124);for(c=0;c=n.d.b.c.length){e=new pQ(n.d);e.p=r.p-1;ED(n.d.b,e);t=new pQ(n.d);t.p=r.p;ED(n.d.b,t)}h2(r,bG(Yq(n.d.b,r.p),30))}}function SAn(n,e,t){var r,i,a;if(!n.b[e.g]){n.b[e.g]=true;r=t;!r&&(r=new R7);hq(r.b,e);for(a=n.a[e.g].Kc();a.Ob();){i=bG(a.Pb(),65);i.b!=e&&SAn(n,i.b,r);i.c!=e&&SAn(n,i.c,r);hq(r.a,i)}return r}return null}function PAn(n){switch(n.g){case 0:case 1:case 2:return UQn(),D8e;case 3:case 4:case 5:return UQn(),Y8e;case 6:case 7:case 8:return UQn(),n9e;case 9:case 10:case 11:return UQn(),$8e;default:return UQn(),Z8e}}function CAn(n,e){var t;if(n.c.length==0){return false}t=$pn((b3(0,n.c.length),bG(n.c[0],18)).c.i);a2();if(t==(rMn(),_Be)||t==FBe){return true}return l9(rY(new gX(null,new d3(n,16)),new Ua),new bv(e))}function IAn(n,e){if(G$(e,207)){return UN(n,bG(e,27))}else if(G$(e,193)){return GN(n,bG(e,123))}else if(G$(e,452)){return HN(n,bG(e,166))}else{throw dm(new jM(Ite+jIn(new $M(zfn(fT(kce,1),jZn,1,5,[e])))))}}function OAn(n,e,t){var r,i;this.f=n;r=bG(fQ(n.b,e),260);i=!r?0:r.a;u7(t,i);if(t>=(i/2|0)){this.e=!r?null:r.c;this.d=i;while(t++0){Orn(this)}}this.b=e;this.a=null}function AAn(n,e){var t,r;e.a?nFn(n,e):(t=bG(IS(n.b,e.b),60),!!t&&t==n.a[e.b.f]&&!!t.a&&t.a!=e.b.a&&t.c.Fc(e.b),r=bG(CS(n.b,e.b),60),!!r&&n.a[r.f]==e.b&&!!r.a&&r.a!=e.b.a&&e.b.c.Fc(r),wD(n.b,e.b),undefined)}function LAn(n,e){var t,r;t=bG(xJ(n.b,e),127);if(bG(bG(r7(n.r,e),21),87).dc()){t.n.b=0;t.n.c=0;return}t.n.b=n.C.b;t.n.c=n.C.c;n.A.Hc((emn(),b9e))&&jBn(n,e);r=$yn(n,e);P_n(n,e)==(Zkn(),b8e)&&(r+=2*n.w);t.a.a=r}function NAn(n,e){var t,r;t=bG(xJ(n.b,e),127);if(bG(bG(r7(n.r,e),21),87).dc()){t.n.d=0;t.n.a=0;return}t.n.d=n.C.d;t.n.a=n.C.a;n.A.Hc((emn(),b9e))&&EBn(n,e);r=Nyn(n,e);P_n(n,e)==(Zkn(),b8e)&&(r+=2*n.w);t.a.b=r}function $An(n,e){var t,r,i,a;a=new im;for(r=new nd(e);r.ar&&(w3(e-1,n.length),n.charCodeAt(e-1)<=32)){--e}return r>0||et.a&&(r.Hc((iPn(),a4e))?i=(e.a-t.a)/2:r.Hc(u4e)&&(i=e.a-t.a));e.b>t.b&&(r.Hc((iPn(),o4e))?a=(e.b-t.b)/2:r.Hc(s4e)&&(a=e.b-t.b));tIn(n,i,a)}function uLn(n,e,t,r,i,a,c,u,s,o,f,h,l){G$(n.Cb,90)&&SLn(S9(bG(n.Cb,90)),4);Qun(n,t);n.f=c;egn(n,u);rgn(n,s);ngn(n,o);tgn(n,f);Tdn(n,h);Ngn(n,l);kdn(n,true);Lan(n,i);n.Zk(a);Ubn(n,e);r!=null&&(n.i=null,vun(n,r))}function sLn(n,e,t){if(n<0){return RBn(TZn,zfn(fT(kce,1),jZn,1,5,[t,Bwn(n)]))}else if(e<0){throw dm(new jM(EZn+e))}else{return RBn("%s (%s) must not be greater than size (%s)",zfn(fT(kce,1),jZn,1,5,[t,Bwn(n),Bwn(e)]))}}function oLn(n,e,t,r,i,a){var c,u,s,o;c=r-t;if(c<7){rvn(e,t,r,a);return}s=t+i;u=r+i;o=s+(u-s>>1);oLn(e,n,s,o,-i,a);oLn(e,n,o,u,-i,a);if(a.Ne(n[o-1],n[o])<=0){while(t=0?n.bi(a,t):vRn(n,i,t)}else{throw dm(new jM(Uee+i.xe()+Gee))}}else{vvn(n,r,i,t)}}function dLn(n){var e,t;if(n.f){while(n.n>0){e=bG(n.k.Xb(n.n-1),76);t=e.Lk();if(G$(t,102)&&(bG(t,19).Bb&Wee)!=0&&(!n.e||t.pk()!=R7e||t.Lj()!=0)&&e.md()!=null){return true}else{--n.n}}return false}else{return n.n>0}}function gLn(n){var e,t,r,i;t=bG(n,54)._h();if(t){try{r=null;e=Ixn((PP(),Ort),_Un(Ivn(t)));if(e){i=e.ai();!!i&&(r=i.Fl(pM(t.e)))}if(!!r&&r!=n){return gLn(r)}}catch(a){a=Ofn(a);if(!G$(a,63))throw dm(a)}}return n}function vLn(n,e,t){var r,i,a;t.Ug("Remove overlaps",1);t.dh(e,h7n);r=bG(YDn(e,(AK(),FQe)),27);n.f=r;n.a=hMn(bG(YDn(e,(IOn(),ZJe)),300));i=MK(YDn(e,(JYn(),X6e)));ow(n,(cJ(i),i));a=WFn(r);BWn(n,e,a,t);t.dh(e,b7n)}function pLn(n){var e,t,r;if(lM(yK(YDn(n,(JYn(),F4e))))){r=new im;for(t=new GV(sx(uRn(n).a.Kc(),new d));dDn(t);){e=bG(K9(t),74);XNn(e)&&lM(yK(YDn(e,_4e)))&&(Tm(r.c,e),true)}return r}else{return dZ(),dZ(),lbe}}function mLn(n){if(!n){return Xy(),mhe}var e=n.valueOf?n.valueOf():n;if(e!==n){var r=jhe[typeof e];return r?r(e):Zbn(typeof e)}else if(n instanceof Array||n instanceof t.Array){return new Ob(n)}else{return new Nb(n)}}function kLn(n,e,r){var i,a,c;c=n.o;i=bG(xJ(n.p,r),252);a=i.i;a.b=yNn(i);a.a=kNn(i);a.b=t.Math.max(a.b,c.a);a.b>c.a&&!e&&(a.b=c.a);a.c=-(a.b-c.a)/2;switch(r.g){case 1:a.d=-a.a;break;case 3:a.d=c.b}rqn(i);oqn(i)}function yLn(n,e,r){var i,a,c;c=n.o;i=bG(xJ(n.p,r),252);a=i.i;a.b=yNn(i);a.a=kNn(i);a.a=t.Math.max(a.a,c.b);a.a>c.b&&!e&&(a.a=c.b);a.d=-(a.a-c.b)/2;switch(r.g){case 4:a.c=-a.b;break;case 2:a.c=c.a}rqn(i);oqn(i)}function MLn(n,e){var t,r,i,a,c;if(e.dc()){return}i=bG(e.Xb(0),131);if(e.gc()==1){mFn(n,i,i,1,0,e);return}t=1;while(t0){try{i=TUn(e,T1n,pZn)}catch(a){a=Ofn(a);if(G$(a,130)){r=a;throw dm(new Ltn(r))}else throw dm(a)}}t=(!n.a&&(n.a=new Qp(n)),n.a);return i=0?bG(Yin(t,i),58):null}function CLn(n,e){if(n<0){return RBn(TZn,zfn(fT(kce,1),jZn,1,5,["index",Bwn(n)]))}else if(e<0){throw dm(new jM(EZn+e))}else{return RBn("%s (%s) must be less than size (%s)",zfn(fT(kce,1),jZn,1,5,["index",Bwn(n),Bwn(e)]))}}function ILn(n){var e,t,r,i,a;if(n==null){return CZn}a=new rfn(MZn,"[","]");for(t=n,r=0,i=t.length;r=0?n.Lh(t,true,true):r$n(n,i,true),160));bG(r,220).Zl(e)}else{throw dm(new jM(Uee+e.xe()+Gee))}}function ZLn(n){var e,r;if(n>-0x800000000000&&n<0x800000000000){if(n==0){return 0}e=n<0;e&&(n=-n);r=c0(t.Math.floor(t.Math.log(n)/.6931471805599453));(!e||n!=t.Math.pow(2,r))&&++r;return r}return kfn(Xon(n))}function nNn(n){var e,t,r,i,a,c,u;a=new JL;for(t=new nd(n);t.a2&&u.e.b+u.j.b<=2){i=u;r=c}a.a.zc(i,a);i.q=r}return a}function eNn(n,e,t){t.Ug("Eades radial",1);t.dh(e,b7n);n.d=bG(YDn(e,(AK(),FQe)),27);n.c=bM(MK(YDn(e,(IOn(),zJe))));n.e=hMn(bG(YDn(e,ZJe),300));n.a=qvn(bG(YDn(e,eYe),434));n.b=LSn(bG(YDn(e,GJe),354));zEn(n);t.dh(e,b7n)}function tNn(n,e){e.Ug("Target Width Setter",1);if(jnn(n,(A_n(),_Ze))){Pyn(n,(vBn(),VYe),MK(YDn(n,_Ze)))}else{throw dm(new IM("A target width has to be set if the TargetWidthWidthApproximator should be used."))}e.Vg()}function rNn(n,e){var t,r,i;r=new yMn(n);Yon(r,e);Ehn(r,(WYn(),aDe),e);Ehn(r,(IYn(),m_e),(FPn(),m8e));Ehn(r,DKe,(aMn(),F3e));Vb(r,(YIn(),nEe));t=new vOn;l2(t,r);KLn(t,(UQn(),n9e));i=new vOn;l2(i,r);KLn(i,$8e);return r}function iNn(n){switch(n.g){case 0:return new Yy((ucn(),zUe));case 1:return new pl;case 2:return new ml;default:throw dm(new jM("No implementation is available for the crossing minimizer "+(n.f!=null?n.f:""+n.g)))}}function aNn(n,e){var t,r,i,a,c;n.c[e.p]=true;ED(n.a,e);for(c=new nd(e.j);c.a=a){c.$b()}else{i=c.Kc();for(r=0;r0?VM():c<0&&pNn(n,e,-c);return true}else{return false}}function kNn(n){var e,t,r,i,a,c,u;u=0;if(n.b==0){c=xMn(n,true);e=0;for(r=c,i=0,a=r.length;i0){u+=t;++e}}e>1&&(u+=n.c*(e-1))}else{u=gT(Psn(iY(tY(Xz(n.a),new In),new On)))}return u>0?u+n.n.d+n.n.a:0}function yNn(n){var e,t,r,i,a,c,u;u=0;if(n.b==0){u=gT(Psn(iY(tY(Xz(n.a),new Pn),new Cn)))}else{c=RMn(n,true);e=0;for(r=c,i=0,a=r.length;i0){u+=t;++e}}e>1&&(u+=n.c*(e-1))}return u>0?u+n.n.b+n.n.c:0}function MNn(n){var e,t;if(n.c.length!=2){throw dm(new EM("Order only allowed for two paths."))}e=(b3(0,n.c.length),bG(n.c[0],18));t=(b3(1,n.c.length),bG(n.c[1],18));if(e.d.i!=t.c.i){n.c.length=0;Tm(n.c,t);Tm(n.c,e)}}function TNn(n,e,t){var r;jN(t,e.g,e.f);EN(t,e.i,e.j);for(r=0;r<(!e.a&&(e.a=new gz(snt,e,10,11)),e.a).i;r++){TNn(n,bG(Yin((!e.a&&(e.a=new gz(snt,e,10,11)),e.a),r),27),bG(Yin((!t.a&&(t.a=new gz(snt,t,10,11)),t.a),r),27))}}function jNn(n,e){var r,i,a,c;c=bG(xJ(n.b,e),127);r=c.a;for(a=bG(bG(r7(n.r,e),21),87).Kc();a.Ob();){i=bG(a.Pb(),117);!!i.c&&(r.a=t.Math.max(r.a,oq(i.c)))}if(r.a>0){switch(e.g){case 2:c.n.c=n.s;break;case 4:c.n.b=n.s}}}function ENn(n,e){var t,r,i;t=bG(lIn(e,(oGn(),Jye)),17).a-bG(lIn(n,Jye),17).a;if(t==0){r=r_(_$(bG(lIn(n,(Tun(),lMe)),8)),bG(lIn(n,bMe),8));i=r_(_$(bG(lIn(e,lMe),8)),bG(lIn(e,bMe),8));return bgn(r.a*r.b,i.a*i.b)}return t}function SNn(n,e){var t,r,i;t=bG(lIn(e,(eqn(),OWe)),17).a-bG(lIn(n,OWe),17).a;if(t==0){r=r_(_$(bG(lIn(n,(DQn(),Pze)),8)),bG(lIn(n,Cze),8));i=r_(_$(bG(lIn(e,Pze),8)),bG(lIn(e,Cze),8));return bgn(r.a*r.b,i.a*i.b)}return t}function PNn(n){var e,t;t=new nT;t.a+="e_";e=pfn(n);e!=null&&(t.a+=""+e,t);if(!!n.c&&!!n.d){tL((t.a+=" ",t),ajn(n.c));tL(eL((t.a+="[",t),n.c.i),"]");tL((t.a+=J4n,t),ajn(n.d));tL(eL((t.a+="[",t),n.d.i),"]")}return t.a}function CNn(n){switch(n.g){case 0:return new Cl;case 1:return new Il;case 2:return new Sl;case 3:return new El;default:throw dm(new jM("No implementation is available for the layout phase "+(n.f!=null?n.f:""+n.g)))}}function INn(n,e,r,i,a){var c;c=0;switch(a.g){case 1:c=t.Math.max(0,e.b+n.b-(r.b+i));break;case 3:c=t.Math.max(0,-n.b-i);break;case 2:c=t.Math.max(0,-n.a-i);break;case 4:c=t.Math.max(0,e.a+n.a-(r.a+i))}return c}function ONn(n,e,t){var r,i,a,c,u;if(t){i=t.a.length;r=new WV(i);for(u=(r.b-r.a)*r.c<0?(NP(),Fht):new BD(r);u.Ob();){c=bG(u.Pb(),17);a=j6(t,c.a);vte in a.a||pte in a.a?pHn(n,a,e):tYn(n,a,e);WD(bG(fQ(n.b,Imn(a)),74))}}}function ANn(n){var e,t;switch(n.b){case-1:{return true}case 0:{t=n.t;if(t>1||t==-1){n.b=-1;return true}else{e=pEn(n);if(!!e&&(LP(),e.lk()==uie)){n.b=-1;return true}else{n.b=1;return false}}}default:case 1:{return false}}}function LNn(n,e){var t,r,i,a;OYn(n);if(n.c!=0||n.a!=123)throw dm(new NM(oZn((c$(),hre))));a=e==112;r=n.d;t=hR(n.i,125,r);if(t<0)throw dm(new NM(oZn((c$(),lre))));i=o1(n.i,r,t);n.d=t+1;return sen(i,a,(n.e&512)==512)}function NNn(n){var e,t,r,i,a,c,u;r=n.a.c.length;if(r>0){c=n.c.d;u=n.d.d;i=jD(r_(new PO(u.a,u.b),c),1/(r+1));a=new PO(c.a,c.b);for(t=new nd(n.a);t.a=0&&r=0?n.Lh(t,true,true):r$n(n,i,true),160));return bG(r,220).Wl(e)}else{throw dm(new jM(Uee+e.xe()+Xee))}}function _Nn(){$P();var n;if(Uct)return bG(Ixn((PP(),Ort),Nie),2038);PL(vue,new Af);SWn();n=bG(G$(z1((PP(),Ort),Nie),560)?z1(Ort,Nie):new kJ,560);Uct=true;VYn(n);lZn(n);jJ((MP(),Krt),n,new Xo);o2(Ort,Nie,n);return n}function BNn(n,e){var t,r,i,a;n.j=-1;if(bN(n.e)){t=n.i;a=n.i!=0;Y9(n,e);r=new Utn(n.e,3,n.c,null,e,t,a);i=e.zl(n.e,n.c,null);i=SPn(n,e,i);if(!i){Pon(n.e,r)}else{i.nj(r);i.oj()}}else{Y9(n,e);i=e.zl(n.e,n.c,null);!!i&&i.oj()}}function HNn(n,e){var t,r,i;i=0;r=e[0];if(r>=n.length){return-1}t=(w3(r,n.length),n.charCodeAt(r));while(t>=48&&t<=57){i=i*10+(t-48);++r;if(r>=n.length){break}t=(w3(r,n.length),n.charCodeAt(r))}r>e[0]?e[0]=r:i=-1;return i}function UNn(n){var e,r,i,a,c;a=bG(n.a,17).a;c=bG(n.b,17).a;r=a;i=c;e=t.Math.max(t.Math.abs(a),t.Math.abs(c));if(a<=0&&a==c){r=0;i=c-1}else{if(a==-e&&c!=e){r=c;i=a;c>=0&&++r}else{r=-c;i=a}}return new nA(Bwn(r),Bwn(i))}function GNn(n,e,t,r){var i,a,c,u,s,o;for(i=0;i=0&&o>=0&&s=n.i)throw dm(new kM(qte+e+Xte+n.i));if(t>=n.i)throw dm(new kM(Vte+t+Xte+n.i));r=n.g[t];if(e!=t){e>16);e=r>>16&16;t=16-e;n=n>>e;r=n-256;e=r>>16&8;t+=e;n<<=e;r=n-T0n;e=r>>16&4;t+=e;n<<=e;r=n-VZn;e=r>>16&2;t+=e;n<<=e;r=n>>14;e=r&~(r>>1);return t+2-e}}function QNn(n){vZ();var e,t,r,i;nye=new im;Zke=new rm;Yke=new im;e=(!n.a&&(n.a=new gz(snt,n,10,11)),n.a);tJn(e);for(i=new _D(e);i.e!=i.i.gc();){r=bG(iyn(i),27);if(Ctn(nye,r,0)==-1){t=new im;ED(Yke,t);wkn(r,t)}}return Yke}function JNn(n,e,t){var r,i,a,c;n.a=t.b.d;if(G$(e,326)){i=t_n(bG(e,74),false,false);a=NOn(i);r=new Ud(n);Y8(a,r);wqn(a,i);e.of((JYn(),U4e))!=null&&Y8(bG(e.of(U4e),75),r)}else{c=bG(e,422);c.rh(c.nh()+n.a.a);c.sh(c.oh()+n.a.b)}}function YNn(n,e){var t,r,i;i=new im;for(r=Gkn(e.a,0);r.b!=r.d.c;){t=bG($6(r),65);t.c.g==n.g&&BA(lIn(t.b,(eqn(),_We)))!==BA(lIn(t.c,_We))&&!l9(new gX(null,new d3(i,16)),new Ev(t))&&(Tm(i.c,t),true)}g$(i,new Ic);return i}function ZNn(n,e,t){var r,i,a,c;if(G$(e,153)&&G$(t,153)){a=bG(e,153);c=bG(t,153);return n.a[a.a][c.a]+n.a[c.a][a.a]}else if(G$(e,250)&&G$(t,250)){r=bG(e,250);i=bG(t,250);if(r.a==i.a){return bG(lIn(i.a,(oGn(),Jye)),17).a}}return 0}function n$n(n,e){var r,i,a,c,u,s,o,f;f=bM(MK(lIn(e,(IYn(),J_e))));o=n[0].n.a+n[0].o.a+n[0].d.c+f;for(s=1;s=0){return t}u=KQ(r_(new PO(c.c+c.b/2,c.d+c.a/2),new PO(a.c+a.b/2,a.d+a.a/2)));return-(lGn(a,c)-1)*u}function t$n(n,e,t){var r;ES(new gX(null,(!t.a&&(t.a=new gz(U7e,t,6,6)),new d3(t.a,16))),new YO(n,e));ES(new gX(null,(!t.n&&(t.n=new gz(unt,t,1,7)),new d3(t.n,16))),new ZO(n,e));r=bG(YDn(t,(JYn(),U4e)),75);!!r&&gsn(r,n,e)}function r$n(n,e,t){var r,i,a;a=szn((yAn(),Vut),n.Dh(),e);if(a){LP();bG(a,69).xk()||(a=q3(Ktn(Vut,a)));i=(r=n.Ih(a),bG(r>=0?n.Lh(r,true,true):r$n(n,a,true),160));return bG(i,220).Sl(e,t)}else{throw dm(new jM(Uee+e.xe()+Xee))}}function i$n(n,e,t,r){var i,a,c,u,s;i=n.d[e];if(i){a=i.g;s=i.i;if(r!=null){for(u=0;u=t){r=e;o=(s.c+s.a)/2;c=o-t;if(s.c<=o-t){i=new DU(s.c,c);WX(n,r++,i)}u=o+t;if(u<=s.a){a=new DU(u,s.a);l3(r,n.c.length);MC(n.c,r,a)}}}function l$n(n,e,t){var r,i,a,c,u,s;if(!e.dc()){i=new vS;for(s=e.Kc();s.Ob();){u=bG(s.Pb(),40);jJ(n.a,Bwn(u.g),Bwn(t));for(c=(r=Gkn(new Pv(u).a.d,0),new Cv(r));tE(c.a);){a=bG($6(c.a),65).c;w8(i,a,i.c.b,i.c)}}l$n(n,i,t+1)}}function b$n(n){var e;if(!n.c&&n.g==null){n.d=n.bj(n.f);cen(n,n.d);e=n.d}else{if(n.g==null){return true}else if(n.i==0){return false}else{e=bG(n.g[n.i-1],51)}}if(e==n.b&&null.Vm>=null.Um()){nRn(n);return b$n(n)}else{return e.Ob()}}function w$n(n){this.a=n;if(n.c.i.k==(YIn(),nEe)){this.c=n.c;this.d=bG(lIn(n.c.i,(WYn(),cDe)),64)}else if(n.d.i.k==nEe){this.c=n.d;this.d=bG(lIn(n.d.i,(WYn(),cDe)),64)}else{throw dm(new jM("Edge "+n+" is not an external edge."))}}function d$n(n,e){var t,r,i;i=n.b;n.b=e;(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,3,i,n.b));if(!e){Qun(n,null);$an(n,0);zcn(n,null)}else if(e!=n){Qun(n,e.zb);$an(n,e.d);t=(r=e.c,r==null?e.zb:r);zcn(n,t==null||T_(t,e.zb)?null:t)}}function g$n(n,e){var t;this.e=(iQ(),nQ(n),iQ(),Opn(n));this.c=(nQ(e),Opn(e));GD(this.e.Rd().dc()==this.c.Rd().dc());this.d=evn(this.e);this.b=evn(this.c);t=tX(kce,[XZn,jZn],[5,1],5,[this.e.Rd().gc(),this.c.Rd().gc()],2);this.a=t;mcn(this)}function v$n(n){var e=(!Ufe&&(Ufe=TJn()),Ufe);var t=n.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,(function(n){return Y1(n,e)}));return'"'+t+'"'}function p$n(n,e,r,i,a,c){var u,s,o,f,h;if(a==0){return}if(BA(n)===BA(r)){n=n.slice(e,e+a);e=0}o=r;for(s=e,f=e+a;s=c)throw dm(new m_(e,c));i=t[e];if(c==1){r=null}else{r=$nn(utt,Bre,424,c-1,0,1);QGn(t,0,r,0,e);a=c-e-1;a>0&&QGn(t,e+1,r,e,a)}Lkn(n,r);WAn(n,e,i);return i}function M$n(n){var e,t;if(n.f){while(n.n0?a=$vn(t):a=Wdn($vn(t))}Pyn(e,j_e,a)}function P$n(n,e){var t;e.Ug("Partition preprocessing",1);t=bG(v8(tY(wrn(tY(new gX(null,new d3(n.a,16)),new Tr),new jr),new Er),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[(Sbn(),Lde)]))),15);ES(t.Oc(),new Sr);e.Vg()}function C$n(n,e){var t,r,i,a,c;c=n.j;e.a!=e.b&&g$(c,new ra);i=c.c.length/2|0;for(r=0;r0&&wHn(n,t,e);return a}else if(r.a!=null){wHn(n,e,t);return-1}else if(i.a!=null){wHn(n,t,e);return 1}return 0}function O$n(n,e){var t,r,i,a,c;i=e.b.b;n.a=$nn(uue,B3n,15,i,0,1);n.b=$nn(qht,_2n,28,i,16,1);for(c=Gkn(e.b,0);c.b!=c.d.c;){a=bG($6(c),40);n.a[a.g]=new vS}for(r=Gkn(e.a,0);r.b!=r.d.c;){t=bG($6(r),65);n.a[t.b.g].Fc(t);n.a[t.c.g].Fc(t)}}function A$n(n,e){var t,r,i,a;if(n.Pj()){t=n.Ej();a=n.Qj();++n.j;n.qj(t,n.Zi(t,e));r=n.Ij(3,null,e,t,a);if(n.Mj()){i=n.Nj(e,null);if(!i){n.Jj(r)}else{i.nj(r);i.oj()}}else{n.Jj(r)}}else{jQ(n,e);if(n.Mj()){i=n.Nj(e,null);!!i&&i.oj()}}}function L$n(n,e,t){var r,i,a;if(n.Pj()){a=n.Qj();udn(n,e,t);r=n.Ij(3,null,t,e,a);if(n.Mj()){i=n.Nj(t,null);n.Tj()&&(i=n.Uj(t,i));if(!i){n.Jj(r)}else{i.nj(r);i.oj()}}else{n.Jj(r)}}else{udn(n,e,t);if(n.Mj()){i=n.Nj(t,null);!!i&&i.oj()}}}function N$n(n,e){var t,r,i,a,c;c=ZKn(n.e.Dh(),e);i=new vo;t=bG(n.g,124);for(a=n.i;--a>=0;){r=t[a];c.am(r.Lk())&&cen(i,r)}!LJn(n,i)&&bN(n.e)&&rk(n,e.Jk()?ZZ(n,6,e,(dZ(),lbe),null,-1,false):ZZ(n,e.tk()?2:1,e,null,null,-1,false))}function $$n(n,e){var t,r,i,a,c;if(n.a==(HIn(),d$e)){return true}a=e.a.c;t=e.a.c+e.a.b;if(e.j){r=e.A;c=r.c.c.a-r.o.a/2;i=a-(r.n.a+r.o.a);if(i>c){return false}}if(e.q){r=e.C;c=r.c.c.a-r.o.a/2;i=r.n.a-t;if(i>c){return false}}return true}function D$n(n){u2();var e,t,r,i,a,c,u;t=new b8;for(i=new nd(n.e.b);i.a1?n.e*=bM(n.a):n.f/=bM(n.a);qbn(n);Zmn(n);OBn(n);Ehn(n.b,(oyn(),Bke),n.g)}function B$n(n,e,t){var r,i,a,c,u,s;r=0;s=t;if(!e){r=t*(n.c.length-1);s*=-1}for(a=new nd(n);a.a=0?n.Ah(null):n.Ph().Th(n,-1-e,null,null));n.Bh(bG(i,54),t);!!r&&r.oj();n.vh()&&n.wh()&&t>-1&&Pon(n,new vz(n,9,t,a,i));return i}}}return a}function rDn(n,e){var t,r,i,a,c;a=n.b.Ce(e);r=(t=n.a.get(a),t==null?$nn(kce,jZn,1,0,5,1):t);for(c=0;c>5;if(i>=n.d){return n.e<0}t=n.a[i];e=1<<(e&31);if(n.e<0){r=qsn(n);if(i>16)),15).dd(a);if(u0){!(dN(n.a.c)&&e.n.d)&&!(gN(n.a.c)&&e.n.b)&&(e.g.d+=t.Math.max(0,i/2-.5));!(dN(n.a.c)&&e.n.a)&&!(gN(n.a.c)&&e.n.c)&&(e.g.a-=i-1)}}}function pDn(n){var e,r,i,a,c;a=new im;c=YUn(n,a);e=bG(lIn(n,(WYn(),NDe)),10);if(e){for(i=new nd(e.j);i.a>e;a=n.m>>e|t<<22-e;i=n.l>>e|n.m<<22-e}else if(e<44){c=r?h0n:0;a=t>>e-22;i=n.m>>e-22|t<<44-e}else{c=r?h0n:0;a=r?f0n:0;i=t>>e-44}return M$(i&f0n,a&f0n,c&h0n)}function MDn(n){var e,r,i,a,c,u;this.c=new im;this.d=n;i=y0n;a=y0n;e=M0n;r=M0n;for(u=Gkn(n,0);u.b!=u.d.c;){c=bG($6(u),8);i=t.Math.min(i,c.a);a=t.Math.min(a,c.b);e=t.Math.max(e,c.a);r=t.Math.max(r,c.b)}this.a=new yY(i,a,e-i,r-a)}function TDn(n,e){var t,r,i,a,c,u;for(a=new nd(n.b);a.a0&&G$(e,44)){n.a._j();o=bG(e,44);s=o.ld();a=s==null?0:Vun(s);c=sF(n.a,a);t=n.a.d[c];if(t){r=bG(t.g,379);f=t.i;for(u=0;u=2){r=a.Kc();e=MK(r.Pb());while(r.Ob()){c=e;e=MK(r.Pb());i=t.Math.min(i,(cJ(e),e)-(cJ(c),c))}}return i}function BDn(n,e){var t,r,i;i=new im;for(r=Gkn(e.a,0);r.b!=r.d.c;){t=bG($6(r),65);t.b.g==n.g&&!T_(t.b.c,B9n)&&BA(lIn(t.b,(eqn(),_We)))!==BA(lIn(t.c,_We))&&!l9(new gX(null,new d3(i,16)),new Sv(t))&&(Tm(i.c,t),true)}g$(i,new Nc);return i}function HDn(n,e){var t,r,i;if(BA(e)===BA(nQ(n))){return true}if(!G$(e,15)){return false}r=bG(e,15);i=n.gc();if(i!=r.gc()){return false}if(G$(r,59)){for(t=0;t0&&(i=t);for(c=new nd(n.f.e);c.a0){e-=1;t-=1}else{if(r>=0&&i<0){e+=1;t+=1}else{if(r>0&&i>=0){e-=1;t+=1}else{e+=1;t-=1}}}}}return new nA(Bwn(e),Bwn(t))}function uxn(n,e){if(n.ce.c){return 1}else if(n.be.b){return 1}else if(n.a!=e.a){return Vun(n.a)-Vun(e.a)}else if(n.d==(i5(),IGe)&&e.d==CGe){return-1}else if(n.d==CGe&&e.d==IGe){return 1}return 0}function sxn(n,e){var t,r,i,a,c;a=e.a;a.c.i==e.b?c=a.d:c=a.c;a.c.i==e.b?r=a.c:r=a.d;i=kpn(n.a,c,r);if(i>0&&i<_3n){t=WDn(n.a,r.i,i,n.c);Win(n.a,r.i,-t);return t>0}else if(i<0&&-i<_3n){t=QDn(n.a,r.i,-i,n.c);Win(n.a,r.i,t);return t>0}return false}function oxn(n,e,t,r){var i,a,c,u,s,o,f,h;i=(e-n.d)/n.c.c.length;a=0;n.a+=t;n.d=e;for(h=new nd(n.c);h.a>24}return c}function hxn(n){if(n.ze()){var e=n.c;e.Ae()?n.o="["+e.n:!e.ze()?n.o="[L"+e.xe()+";":n.o="["+e.xe();n.b=e.we()+"[]";n.k=e.ye()+"[]";return}var t=n.j;var r=n.d;r=r.split("/");n.o=gmn(".",[t,gmn("$",r)]);n.b=gmn(".",[t,gmn(".",r)]);n.k=r[r.length-1]}function lxn(n,e){var t,r,i,a,c;c=null;for(a=new nd(n.e.a);a.a=0;e-=2){for(t=0;t<=e;t+=2){if(n.b[t]>n.b[t+2]||n.b[t]===n.b[t+2]&&n.b[t+1]>n.b[t+3]){r=n.b[t+2];n.b[t+2]=n.b[t];n.b[t]=r;r=n.b[t+3];n.b[t+3]=n.b[t+1];n.b[t+1]=r}}}n.c=true}function Txn(n,e){var t,r,i,a,c,u,s,o,f;o=-1;f=0;for(c=n,u=0,s=c.length;u0&&++f}}++o}return f}function jxn(n){var e,t;t=new vx($j(n.Rm));t.a+="@";tL(t,(e=Vun(n)>>>0,e.toString(16)));if(n.Vh()){t.a+=" (eProxyURI: ";eL(t,n._h());if(n.Kh()){t.a+=" eClass: ";eL(t,n.Kh())}t.a+=")"}else if(n.Kh()){t.a+=" (eClass: ";eL(t,n.Kh());t.a+=")"}return t.a}function Exn(n){var e,t,r,i;if(n.e){throw dm(new EM((jK(sve),p2n+sve.k+m2n)))}n.d==(Bdn(),h5e)&&WWn(n,o5e);for(t=new nd(n.a.a);t.a>24}return t}function Axn(n,e,t){var r,i,a;i=bG(xJ(n.i,e),314);if(!i){i=new rin(n.d,e,t);zz(n.i,e,i);if(jmn(e)){sD(n.a,e.c,e.b,i)}else{a=PAn(e);r=bG(xJ(n.p,a),252);switch(a.g){case 1:case 3:i.j=true;aM(r,e.b,i);break;case 4:case 2:i.k=true;aM(r,e.c,i)}}}return i}function Lxn(n,e){var t,r,i,a,c,u,s,o,f;s=sR(n.c-n.b&n.a.length-1);o=null;f=null;for(a=new JJ(n);a.a!=a.b;){i=bG(own(a),10);t=(u=bG(lIn(i,(WYn(),kDe)),12),!u?null:u.i);r=(c=bG(lIn(i,yDe),12),!c?null:c.i);if(o!=t||f!=r){G$n(s,e);o=t;f=r}Tm(s.c,i)}G$n(s,e)}function Nxn(n,e,t,r){var i,a,c,u,s,o;u=new vo;s=ZKn(n.e.Dh(),e);i=bG(n.g,124);LP();if(bG(e,69).xk()){for(c=0;c=0){return a}else{c=1;for(s=new nd(e.j);s.a=0){return a}else{c=1;for(s=new nd(e.j);s.a0&&e.Ne((b3(i-1,n.c.length),bG(n.c[i-1],10)),a)>0){r9(n,i,(b3(i-1,n.c.length),bG(n.c[i-1],10)));--i}b3(i,n.c.length);n.c[i]=a}t.a=new rm;t.b=new rm}function Rxn(n,e,t){var r,i,a,c,u,s,o,f;f=(r=bG(e.e&&e.e(),9),new aB(r,bG(PF(r,r.length),9),0));s=nqn(t,"[\\[\\]\\s,]+");for(a=s,c=0,u=a.length;c=0){if(!e){e=new ZM;r>0&&ZA(e,(Unn(0,r,n.length),n.substr(0,r)))}e.a+="\\";CQ(e,t&$1n)}else!!e&&CQ(e,t&$1n)}return e?e.a:n}function Fxn(n){var e,r,i;for(r=new nd(n.a.a.b);r.a0){!(dN(n.a.c)&&e.n.d)&&!(gN(n.a.c)&&e.n.b)&&(e.g.d-=t.Math.max(0,i/2-.5));!(dN(n.a.c)&&e.n.a)&&!(gN(n.a.c)&&e.n.c)&&(e.g.a+=t.Math.max(0,i-1))}}}function _xn(n,e,t){var r,i;if((n.c-n.b&n.a.length-1)==2){if(e==(UQn(),D8e)||e==$8e){Min(bG(Hhn(n),15),(xjn(),z5e));Min(bG(Hhn(n),15),W5e)}else{Min(bG(Hhn(n),15),(xjn(),W5e));Min(bG(Hhn(n),15),z5e)}}else{for(i=new JJ(n);i.a!=i.b;){r=bG(own(i),15);Min(r,t)}}}function Bxn(n,e){var t,r,i,a,c,u,s;i=oG(new Lp(n));u=new K4(i,i.c.length);a=oG(new Lp(e));s=new K4(a,a.c.length);c=null;while(u.b>0&&s.b>0){t=(PK(u.b>0),bG(u.a.Xb(u.c=--u.b),27));r=(PK(s.b>0),bG(s.a.Xb(s.c=--s.b),27));if(t==r){c=t}else{break}}return c}function Hxn(n,e,t){var r,i,a,c;if(r4(n,e)>r4(n,t)){r=_gn(t,(UQn(),$8e));n.d=r.dc()?0:kq(bG(r.Xb(0),12));c=_gn(e,n9e);n.b=c.dc()?0:kq(bG(c.Xb(0),12))}else{i=_gn(t,(UQn(),n9e));n.d=i.dc()?0:kq(bG(i.Xb(0),12));a=_gn(e,$8e);n.b=a.dc()?0:kq(bG(a.Xb(0),12))}}function Uxn(n,e){var t,r,i,a;t=n.o.a;for(a=bG(bG(r7(n.r,e),21),87).Kc();a.Ob();){i=bG(a.Pb(),117);i.e.a=t*bM(MK(i.b.of(ome)));i.e.b=(r=i.b,r.pf((JYn(),m6e))?r.ag()==(UQn(),D8e)?-r.Mf().b-bM(MK(r.of(m6e))):bM(MK(r.of(m6e))):r.ag()==(UQn(),D8e)?-r.Mf().b:0)}}function Gxn(n,e){var t,r,i,a;e.Ug("Self-Loop pre-processing",1);for(r=new nd(n.a);r.an.c){break}else if(i.a>=n.s){a<0&&(a=c);u=c}}s=(n.s+n.c)/2;if(a>=0){r=gHn(n,e,a,u);s=mP((b3(r,e.c.length),bG(e.c[r],339)));h$n(e,r,t)}return s}function Vxn(n,e,t){var r,i,a,c,u,s,o;c=(a=new jo,a);run(c,(cJ(e),e));o=(!c.b&&(c.b=new JR((rZn(),cit),Nat,c)),c.b);for(s=1;s0&&czn(this,i)}}function Wxn(n,e,t,r,i,a){var c,u,s;if(!i[e.a]){i[e.a]=true;c=r;!c&&(c=new k7);ED(c.e,e);for(s=a[e.a].Kc();s.Ob();){u=bG(s.Pb(),290);if(u.d==t||u.c==t){continue}u.c!=e&&Wxn(n,u.c,e,c,i,a);u.d!=e&&Wxn(n,u.d,e,c,i,a);ED(c.c,u);Dfn(c.d,u.b)}return c}return null}function Qxn(n){var e,t,r,i,a,c,u;e=0;for(i=new nd(n.e);i.a=2}function Jxn(n,e,t,r,i){var a,c,u,s,o,f;a=n.c.d.j;c=bG(dyn(t,0),8);for(f=1;f1){return false}e=nV(e8e,zfn(fT(o8e,1),g1n,95,0,[n8e,r8e]));if(Qon(J1(e,n))>1){return false}r=nV(s8e,zfn(fT(o8e,1),g1n,95,0,[u8e,c8e]));if(Qon(J1(r,n))>1){return false}return true}function Zxn(n,e,t){var r,i,a;for(a=new nd(n.t);a.a0){r.b.n-=r.c;r.b.n<=0&&r.b.u>0&&hq(e,r.b)}}for(i=new nd(n.i);i.a0){r.a.u-=r.c;r.a.u<=0&&r.a.n>0&&hq(t,r.a)}}}function nRn(n){var e,t,r,i,a;if(n.g==null){n.d=n.bj(n.f);cen(n,n.d);if(n.c){a=n.f;return a}}e=bG(n.g[n.i-1],51);i=e.Pb();n.e=e;t=n.bj(i);if(t.Ob()){n.d=t;cen(n,t)}else{n.d=null;while(!e.Ob()){bQ(n.g,--n.i,null);if(n.i==0){break}r=bG(n.g[n.i-1],51);e=r}}return i}function eRn(n,e){var t,r,i,a,c,u;r=e;i=r.Lk();if(OFn(n.e,i)){if(i.Si()&&V5(n,i,r.md())){return false}}else{u=ZKn(n.e.Dh(),i);t=bG(n.g,124);for(a=0;a1||t>1){return 2}}if(e+t==1){return 2}return 0}function bRn(n,e){var r,i,a,c,u,s;c=n.a*q0n+n.b*1502;s=n.b*q0n+11;r=t.Math.floor(s*X0n);c+=r;s-=r*V0n;c%=V0n;n.a=c;n.b=s;if(e<=24){return t.Math.floor(n.a*Cwe[e])}else{a=n.a*(1<=2147483648&&(i-=4294967296);return i}}function wRn(n,e,t){var r,i,a,c,u,s,o;a=new im;o=new vS;c=new vS;zqn(n,o,c,e);Hzn(n,o,c,e,t);for(s=new nd(n);s.ar.b.g&&(Tm(a.c,r),true)}}return a}function dRn(n,e,t){var r,i,a,c,u,s;u=n.c;for(c=(!t.q?(dZ(),dZ(),bbe):t.q).vc().Kc();c.Ob();){a=bG(c.Pb(),44);r=!eE(tY(new gX(null,new d3(u,16)),new dd(new EO(e,a)))).Bd((jS(),gge));if(r){s=a.md();if(G$(s,4)){i=Kmn(s);i!=null&&(s=i)}e.qf(bG(a.ld(),149),s)}}}function gRn(n,e,t){var r,i;qJ(n.b);tW(n.b,(Hdn(),D1e),(uP(),q0e));tW(n.b,x1e,e.g);tW(n.b,R1e,e.a);n.a=ezn(n.b,e);t.Ug("Compaction by shrinking a tree",n.a.c.length);if(e.i.c.length>1){for(i=new nd(n.a);i.a=0?n.Lh(r,true,true):r$n(n,a,true),160));bG(i,220).Xl(e,t)}else{throw dm(new jM(Uee+e.xe()+Gee))}}function pRn(n,e){var t,r,i,a,c;if(!e){return null}else{a=G$(n.Cb,90)||G$(n.Cb,102);c=!a&&G$(n.Cb,331);for(r=new _D((!e.a&&(e.a=new xX(e,Crt,e)),e.a));r.e!=r.i.gc();){t=bG(iyn(r),89);i=PGn(t);if(a?G$(i,90):c?G$(i,156):!!i){return i}}return a?(rZn(),nit):(rZn(),Jrt)}}function mRn(n,e){var t,r,i,a;e.Ug("Resize child graph to fit parent.",1);for(r=new nd(n.b);r.a=2*e&&ED(t,new DU(c[r-1]+e,c[r]-e))}return t}function MRn(n,e,t){var r,i,a,c,s,o,f,h;if(t){a=t.a.length;r=new WV(a);for(s=(r.b-r.a)*r.c<0?(NP(),Fht):new BD(r);s.Ob();){c=bG(s.Pb(),17);i=j6(t,c.a);!!i&&(u=null,o=p5(n,(f=(yj(),h=new Vk,h),!!e&&RRn(f,e),f),i),Wcn(o,E6(i,Pte)),gCn(i,o),ELn(i,o),Qhn(n,i,o))}}}function TRn(n){var e,t,r,i,a,c;if(!n.j){c=new Ao;e=Cit;a=e.a.zc(n,e);if(a==null){for(r=new _D(a1(n));r.e!=r.i.gc();){t=bG(iyn(r),29);i=TRn(t);NW(c,i);cen(c,t)}e.a.Bc(n)!=null}vbn(c);n.j=new jL((bG(Yin(yZ((cQ(),_rt).o),11),19),c.i),c.g);S9(n).b&=-33}return n.j}function jRn(n){var e,t,r,i;if(n==null){return null}else{r=SXn(n,true);i=mae.length;if(T_(r.substr(r.length-i,i),mae)){t=r.length;if(t==4){e=(w3(0,r.length),r.charCodeAt(0));if(e==43){return _ot}else if(e==45){return Fot}}else if(t==3){return _ot}}return new ck(r)}}function ERn(n){var e,t,r;t=n.l;if((t&t-1)!=0){return-1}r=n.m;if((r&r-1)!=0){return-1}e=n.h;if((e&e-1)!=0){return-1}if(e==0&&r==0&&t==0){return-1}if(e==0&&r==0&&t!=0){return Mcn(t)}if(e==0&&r!=0&&t==0){return Mcn(r)+22}if(e!=0&&r==0&&t==0){return Mcn(e)+44}return-1}function SRn(n,e){var t,r,i,a,c;i=e.a&n.f;a=null;for(r=n.b[i];true;r=r.b){if(r==e){!a?n.b[i]=e.b:a.b=e.b;break}a=r}c=e.f&n.f;a=null;for(t=n.c[c];true;t=t.d){if(t==e){!a?n.c[c]=e.d:a.d=e.d;break}a=t}!e.e?n.a=e.c:e.e.c=e.c;!e.c?n.e=e.e:e.c.e=e.e;--n.i;++n.g}function PRn(n,e){var t;e.d?e.d.b=e.b:n.a=e.b;e.b?e.b.d=e.d:n.e=e.d;if(!e.e&&!e.c){t=bG(aJ(bG(b7(n.b,e.a),260)),260);t.a=0;++n.c}else{t=bG(aJ(bG(fQ(n.b,e.a),260)),260);--t.a;!e.e?t.b=bG(aJ(e.c),511):e.e.c=e.c;!e.c?t.c=bG(aJ(e.e),511):e.c.e=e.e}--n.d}function CRn(n){var e,r,i,a,c,u,s,o,f,h;r=n.o;e=n.p;u=pZn;a=T1n;s=pZn;c=T1n;for(f=0;f0);a.a.Xb(a.c=--a.b);MF(a,i);PK(a.b3&&Gtn(n,0,e-3)}}function NRn(n){var e,t,r,i;if(BA(lIn(n,(IYn(),SFe)))===BA((Dwn(),U5e))){return!n.e&&BA(lIn(n,YKe))!==BA((sfn(),A$e))}r=bG(lIn(n,ZKe),299);i=lM(yK(lIn(n,aFe)))||BA(lIn(n,cFe))===BA((Icn(),mNe));e=bG(lIn(n,JKe),17).a;t=n.a.c.length;return!i&&r!=(sfn(),A$e)&&(e==0||e>t)}function $Rn(n){var e,t;t=0;for(;t0){break}}if(t>0&&t0){break}}if(e>0&&t>16!=6&&!!e){if(uEn(n,e))throw dm(new jM(Zee+x$n(n)));r=null;!!n.Cb&&(r=(t=n.Db>>16,t>=0?Yjn(n,r):n.Cb.Th(n,-1-t,null,r)));!!e&&(r=Eyn(e,n,6,r));r=iF(n,e,r);!!r&&r.oj()}else(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,6,e,e))}function xRn(n,e){var t,r;if(e!=n.Cb||n.Db>>16!=3&&!!e){if(uEn(n,e))throw dm(new jM(Zee+AXn(n)));r=null;!!n.Cb&&(r=(t=n.Db>>16,t>=0?wEn(n,r):n.Cb.Th(n,-1-t,null,r)));!!e&&(r=Eyn(e,n,12,r));r=aF(n,e,r);!!r&&r.oj()}else(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,3,e,e))}function RRn(n,e){var t,r;if(e!=n.Cb||n.Db>>16!=9&&!!e){if(uEn(n,e))throw dm(new jM(Zee+ZBn(n)));r=null;!!n.Cb&&(r=(t=n.Db>>16,t>=0?nEn(n,r):n.Cb.Th(n,-1-t,null,r)));!!e&&(r=Eyn(e,n,9,r));r=cF(n,e,r);!!r&&r.oj()}else(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,9,e,e))}function KRn(n){var e,t,r,i,a;r=pEn(n);a=n.j;if(a==null&&!!r){return n.Jk()?null:r.ik()}else if(G$(r,156)){t=r.jk();if(t){i=t.wi();if(i!=n.i){e=bG(r,156);if(e.nk()){try{n.g=i.ti(e,a)}catch(c){c=Ofn(c);if(G$(c,82)){n.g=null}else throw dm(c)}}n.i=i}}return n.g}return null}function FRn(n){var e;e=new im;ED(e,new iC(new PO(n.c,n.d),new PO(n.c+n.b,n.d)));ED(e,new iC(new PO(n.c,n.d),new PO(n.c,n.d+n.a)));ED(e,new iC(new PO(n.c+n.b,n.d+n.a),new PO(n.c+n.b,n.d)));ED(e,new iC(new PO(n.c+n.b,n.d+n.a),new PO(n.c,n.d+n.a)));return e}function _Rn(n){var e,t,r;if(n==null){return CZn}try{return fvn(n)}catch(i){i=Ofn(i);if(G$(i,103)){e=i;r=$j(Cbn(n))+"@"+(t=(pS(),xmn(n))>>>0,t.toString(16));mkn(yfn(),(MS(),"Exception during lenientFormat for "+r),e);return"<"+r+" threw "+$j(e.Rm)+">"}else throw dm(i)}}function BRn(n,e,t){var r,i,a;for(a=e.a.ec().Kc();a.Ob();){i=bG(a.Pb(),74);r=bG(fQ(n.b,i),272);!r&&(H0(pIn(i))==H0(yIn(i))?eFn(n,i,t):pIn(i)==H0(yIn(i))?fQ(n.c,i)==null&&fQ(n.b,yIn(i))!=null&&pWn(n,i,t,false):fQ(n.d,i)==null&&fQ(n.b,pIn(i))!=null&&pWn(n,i,t,true))}}function HRn(n,e){var t,r,i,a,c,u,s;for(i=n.Kc();i.Ob();){r=bG(i.Pb(),10);u=new vOn;l2(u,r);KLn(u,(UQn(),$8e));Ehn(u,(WYn(),LDe),(Qx(),true));for(c=e.Kc();c.Ob();){a=bG(c.Pb(),10);s=new vOn;l2(s,a);KLn(s,n9e);Ehn(s,LDe,true);t=new zZ;Ehn(t,LDe,true);f2(t,u);b2(t,s)}}}function URn(n,e,t,r){var i,a,c,u;i=umn(n,e,t);a=umn(n,t,e);c=bG(fQ(n.c,e),118);u=bG(fQ(n.c,t),118);if(i1){e=Ix((t=new wk,++n.b,t),n.d);for(u=Gkn(a,0);u.b!=u.d.c;){c=bG($6(u),125);HKn(BS(_S(HS(FS(new bk,1),0),e),c))}}}function zRn(n,e,t){var r,i,a,c,u;t.Ug("Breaking Point Removing",1);n.a=bG(lIn(e,(IYn(),gFe)),223);for(a=new nd(e.b);a.a>16!=11&&!!e){if(uEn(n,e))throw dm(new jM(Zee+YBn(n)));r=null;!!n.Cb&&(r=(t=n.Db>>16,t>=0?dEn(n,r):n.Cb.Th(n,-1-t,null,r)));!!e&&(r=Eyn(e,n,10,r));r=a_(n,e,r);!!r&&r.oj()}else(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,11,e,e))}function QRn(n){var e,t,r,i;for(r=new pon(new Kw(n.b).a);r.b;){t=jun(r);i=bG(t.ld(),12);e=bG(t.md(),10);Ehn(e,(WYn(),EDe),i);Ehn(i,NDe,e);Ehn(i,lDe,(Qx(),true));KLn(i,bG(lIn(e,cDe),64));lIn(e,cDe);Ehn(i.i,(IYn(),m_e),(FPn(),y8e));bG(lIn(VQ(i.i),oDe),21).Fc((o_n(),E$e))}}function JRn(n,e,t){var r,i,a,c,u,s;a=0;c=0;if(n.c){for(s=new nd(n.d.i.j);s.aa.a){return-1}else if(i.as){f=n.d;n.d=$nn(zet,Ure,66,2*s+4,0,1);for(a=0;a=0x8000000000000000){return crn(),Phe}i=false;if(n<0){i=true;n=-n}r=0;if(n>=w0n){r=c0(n/w0n);n-=r*w0n}t=0;if(n>=b0n){t=c0(n/b0n);n-=t*b0n}e=c0(n);a=M$(e,t,r);i&&rln(a);return a}function bKn(n){var e,t,r,i,a;a=new im;Lin(n.b,new Od(a));n.b.c.length=0;if(a.c.length!=0){e=(b3(0,a.c.length),bG(a.c[0],82));for(t=1,r=a.c.length;t=-e&&i==e){return new nA(Bwn(r-1),Bwn(i))}return new nA(Bwn(r),Bwn(i-1))}function pKn(){YYn();return zfn(fT(fCe,1),g1n,81,0,[gPe,bPe,vPe,NPe,YPe,RPe,iCe,HPe,QPe,CPe,XPe,BPe,JPe,jPe,cCe,uPe,qPe,nCe,$Pe,ZPe,sCe,zPe,sPe,WPe,oCe,tCe,uCe,DPe,yPe,xPe,LPe,aCe,hPe,mPe,FPe,fPe,_Pe,OPe,EPe,UPe,PPe,wPe,lPe,APe,SPe,GPe,rCe,oPe,VPe,IPe,KPe,MPe,kPe,eCe,pPe,TPe,dPe])}function mKn(n,e,t){n.d=0;n.b=0;e.k==(YIn(),iEe)&&t.k==iEe&&bG(lIn(e,(WYn(),EDe)),10)==bG(lIn(t,EDe),10)&&(Itn(e).j==(UQn(),D8e)?Hxn(n,e,t):Hxn(n,t,e));e.k==iEe&&t.k==tEe?Itn(e).j==(UQn(),D8e)?n.d=1:n.b=1:t.k==iEe&&e.k==tEe&&(Itn(t).j==(UQn(),D8e)?n.b=1:n.d=1);WMn(n,e,t)}function kKn(n){var e,t,r,i,a,c,u,s,o,f,h;h=yCn(n);e=n.a;s=e!=null;s&&iq(h,"category",n.a);i=ME(new Rw(n.d));c=!i;if(c){o=new $b;ain(h,"knownOptions",o);t=new Pp(o);Y8(new Rw(n.d),t)}a=ME(n.g);u=!a;if(u){f=new $b;ain(h,"supportedFeatures",f);r=new Cp(f);Y8(n.g,r)}return h}function yKn(n){var e,t,r,i,a,c,u,s,o;r=false;e=336;t=0;a=new zF(n.length);for(u=n,s=0,o=u.length;s>16!=7&&!!e){if(uEn(n,e))throw dm(new jM(Zee+YOn(n)));r=null;!!n.Cb&&(r=(t=n.Db>>16,t>=0?Zjn(n,r):n.Cb.Th(n,-1-t,null,r)));!!e&&(r=bG(e,54).Rh(n,1,F7e,r));r=kV(n,e,r);!!r&&r.oj()}else(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,7,e,e))}function EKn(n,e){var t,r;if(e!=n.Cb||n.Db>>16!=3&&!!e){if(uEn(n,e))throw dm(new jM(Zee+gdn(n)));r=null;!!n.Cb&&(r=(t=n.Db>>16,t>=0?rEn(n,r):n.Cb.Th(n,-1-t,null,r)));!!e&&(r=bG(e,54).Rh(n,0,G7e,r));r=yV(n,e,r);!!r&&r.oj()}else(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,3,e,e))}function SKn(n,e){p_n();var t,r,i,a,c,u,s,o,f;if(e.d>n.d){u=n;n=e;e=u}if(e.d<63){return UFn(n,e)}c=(n.d&-2)<<4;o=F9(n,c);f=F9(e,c);r=TXn(n,_9(o,c));i=TXn(e,_9(f,c));s=SKn(o,f);t=SKn(r,i);a=SKn(TXn(o,r),TXn(i,f));a=izn(izn(a,s),t);a=_9(a,c);s=_9(s,c<<1);return izn(izn(s,a),t)}function PKn(){PKn=O;OBe=new gI(p9n,0);PBe=new gI("LONGEST_PATH",1);CBe=new gI("LONGEST_PATH_SOURCE",2);jBe=new gI("COFFMAN_GRAHAM",3);SBe=new gI($6n,4);ABe=new gI("STRETCH_WIDTH",5);IBe=new gI("MIN_WIDTH",6);TBe=new gI("BF_MODEL_ORDER",7);EBe=new gI("DF_MODEL_ORDER",8)}function CKn(n,e,t){var r,i,a,c,u;c=Zwn(n,t);u=$nn(Yje,e6n,10,e.length,0,1);r=0;for(a=c.Kc();a.Ob();){i=bG(a.Pb(),12);lM(yK(lIn(i,(WYn(),lDe))))&&(u[r++]=bG(lIn(i,NDe),10))}if(r=0;a+=t?1:-1){c=c|e.c.lg(s,a,t,r&&!lM(yK(lIn(e.j,(WYn(),sDe))))&&!lM(yK(lIn(e.j,(WYn(),FDe)))));c=c|e.q.ug(s,a,t);c=c|mBn(n,s[a],t,r)}Gz(n.c,e);return c}function NKn(n,e,t){var r,i,a,c,u,s,o,f,h,l;for(f=w6(n.j),h=0,l=f.length;h1&&(n.a=true);rV(bG(t.b,68),t_(_$(bG(e.b,68).c),jD(r_(_$(bG(t.b,68).a),bG(e.b,68).a),i)));g2(n,e);xKn(n,t)}}function RKn(n){var e,t,r,i,a,c,u;for(a=new nd(n.a.a);a.a0&&a>0?c.p=e++:r>0?c.p=t++:a>0?c.p=i++:c.p=t++}}dZ();g$(n.j,new pr)}function FKn(n){var e,t;t=null;e=bG(Yq(n.g,0),18);do{t=e.d.i;if(jR(t,(WYn(),yDe))){return bG(lIn(t,yDe),12).i}if(t.k!=(YIn(),rEe)&&dDn(new GV(sx(Jgn(t).a.Kc(),new d)))){e=bG(K9(new GV(sx(Jgn(t).a.Kc(),new d))),18)}else if(t.k!=rEe){return null}}while(!!t&&t.k!=(YIn(),rEe));return t}function _Kn(n,e){var t,r,i,a,c,u,s,o,f;u=e.j;c=e.g;s=bG(Yq(u,u.c.length-1),113);f=(b3(0,u.c.length),bG(u.c[0],113));o=BTn(n,c,s,f);for(a=1;ao){s=t;f=i;o=r}}e.a=f;e.c=s}function BKn(n,e,t){var r,i,a,c,u,s,o;o=new Vj(new sv(n));for(c=zfn(fT(gEe,1),t6n,12,0,[e,t]),u=0,s=c.length;us-n.b&&us-n.a&&u0){if(a.a){u=a.b.Mf().a;if(t>u){i=(t-u)/2;a.d.b=i;a.d.c=i}}else{a.d.c=n.s+t}}else if(fz(n.u)){r=OCn(a.b);r.c<0&&(a.d.b=-r.c);r.c+r.b>a.b.Mf().a&&(a.d.c=r.c+r.b-a.b.Mf().a)}}}function oFn(n,e){var t,r,i,a,c;c=new im;t=e;do{a=bG(fQ(n.b,t),131);a.B=t.c;a.D=t.d;Tm(c.c,a);t=bG(fQ(n.k,t),18)}while(t);r=(b3(0,c.c.length),bG(c.c[0],131));r.j=true;r.A=bG(r.d.a.ec().Kc().Pb(),18).c.i;i=bG(Yq(c,c.c.length-1),131);i.q=true;i.C=bG(i.d.a.ec().Kc().Pb(),18).d.i;return c}function fFn(n){var e,r;e=bG(n.a,17).a;r=bG(n.b,17).a;if(e>=0){if(e==r){return new nA(Bwn(-e-1),Bwn(-e-1))}if(e==-r){return new nA(Bwn(-e),Bwn(r+1))}}if(t.Math.abs(e)>t.Math.abs(r)){if(e<0){return new nA(Bwn(-e),Bwn(r))}return new nA(Bwn(-e),Bwn(r+1))}return new nA(Bwn(e+1),Bwn(r))}function hFn(n){var e,t;t=bG(lIn(n,(IYn(),KFe)),171);e=bG(lIn(n,(WYn(),bDe)),311);if(t==(Wvn(),QDe)){Ehn(n,KFe,ZDe);Ehn(n,bDe,(irn(),K$e))}else if(t==YDe){Ehn(n,KFe,ZDe);Ehn(n,bDe,(irn(),x$e))}else if(e==(irn(),K$e)){Ehn(n,KFe,QDe);Ehn(n,bDe,R$e)}else if(e==x$e){Ehn(n,KFe,YDe);Ehn(n,bDe,R$e)}}function lFn(){lFn=O;sXe=new lc;iXe=xq(new mJ,(bIn(),aTe),(YYn(),$Pe));uXe=mV(xq(new mJ,aTe,zPe),uTe,VPe);oXe=Rmn(Rmn(yP(mV(xq(new mJ,rTe,iCe),uTe,rCe),cTe),tCe),aCe);aXe=mV(xq(xq(xq(new mJ,iTe,RPe),cTe,FPe),cTe,_Pe),uTe,KPe);cXe=mV(xq(xq(new mJ,cTe,_Pe),cTe,mPe),uTe,pPe)}function bFn(){bFn=O;BXe=xq(mV(new mJ,(bIn(),uTe),(YYn(),MPe)),aTe,$Pe);qXe=Rmn(Rmn(yP(mV(xq(new mJ,rTe,iCe),uTe,rCe),cTe),tCe),aCe);HXe=mV(xq(xq(xq(new mJ,iTe,RPe),cTe,FPe),cTe,_Pe),uTe,KPe);GXe=xq(xq(new mJ,aTe,zPe),uTe,VPe);UXe=mV(xq(xq(new mJ,cTe,_Pe),cTe,mPe),uTe,pPe)}function wFn(n,e,t,r,i){var a,c;if((!j9(e)&&e.c.i.c==e.d.i.c||!bun(Whn(zfn(fT(D3e,1),XZn,8,0,[i.i.n,i.n,i.a])),t))&&!j9(e)){e.c==i?wR(e.a,0,new uN(t)):hq(e.a,new uN(t));if(r&&!fS(n.a,t)){c=bG(lIn(e,(IYn(),DFe)),75);if(!c){c=new zk;Ehn(e,DFe,c)}a=new uN(t);w8(c,a,c.c.b,c.c);Gz(n.a,a)}}}function dFn(n,e){var t,r,i,a;a=MV(Kgn(o1n,LJ(MV(Kgn(e==null?0:Vun(e),f1n)),15)));t=a&n.b.length-1;i=null;for(r=n.b[t];r;i=r,r=r.a){if(r.d==a&&BQ(r.i,e)){!i?n.b[t]=r.a:i.a=r.a;HM(bG(aJ(r.c),604),bG(aJ(r.f),604));Cm(bG(aJ(r.b),227),bG(aJ(r.e),227));--n.f;++n.e;return true}}return false}function gFn(n){var e,t;for(t=new GV(sx(Qgn(n).a.Kc(),new d));dDn(t);){e=bG(K9(t),18);if(e.c.i.k!=(YIn(),eEe)){throw dm(new IM(k6n+ijn(n)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+" does not come from a FIRST_SEPARATE node. That must not happen."))}}}function vFn(n,e,t){var r,i,a,c,u,s,o;i=Ndn(n.Db&254);if(i==0){n.Eb=t}else{if(i==1){u=$nn(kce,jZn,1,2,5,1);a=ITn(n,e);if(a==0){u[0]=t;u[1]=n.Eb}else{u[0]=n.Eb;u[1]=t}}else{u=$nn(kce,jZn,1,i+1,5,1);c=Uan(n.Eb);for(r=2,s=0,o=0;r<=128;r<<=1){r==e?u[o++]=t:(n.Db&r)!=0&&(u[o++]=c[s++])}}n.Eb=u}n.Db|=e}function pFn(n,e,r){var i,a,c,u;this.b=new im;a=0;i=0;for(u=new nd(n);u.a0){c=bG(Yq(this.b,0),176);a+=c.o;i+=c.p}a*=2;i*=2;e>1?a=c0(t.Math.ceil(a*e)):i=c0(t.Math.ceil(i/e));this.a=new wpn(a,i)}function mFn(n,e,r,i,a,c){var u,s,o,f,h,l,b,w,d,g,v,p;h=i;if(e.j&&e.o){w=bG(fQ(n.f,e.A),60);g=w.d.c+w.d.b;--h}else{g=e.a.c+e.a.b}l=a;if(r.q&&r.o){w=bG(fQ(n.f,r.C),60);f=w.d.c;++l}else{f=r.a.c}v=f-g;o=t.Math.max(2,l-h);s=v/o;d=g+s;for(b=h;b=0;c+=i?1:-1){u=e[c];s=r==(UQn(),$8e)?i?_gn(u,r):Avn(_gn(u,r)):i?Avn(_gn(u,r)):_gn(u,r);a&&(n.c[u.p]=s.gc());for(h=s.Kc();h.Ob();){f=bG(h.Pb(),12);n.d[f.p]=o++}Dfn(t,s)}}function MFn(n,e,t){var r,i,a,c,u,s,o,f;a=bM(MK(n.b.Kc().Pb()));o=bM(MK(mfn(e.b)));r=jD(_$(n.a),o-t);i=jD(_$(e.a),t-a);f=t_(r,i);jD(f,1/(o-a));this.a=f;this.b=new im;u=true;c=n.b.Kc();c.Pb();while(c.Ob()){s=bM(MK(c.Pb()));if(u&&s-t>N9n){this.b.Fc(t);u=false}this.b.Fc(s)}u&&this.b.Fc(t)}function TFn(n){var e,t,r,i;mHn(n,n.n);if(n.d.c.length>0){xM(n.c);while(gDn(n,bG(K3(new nd(n.e.a)),125))>5;e&=31;if(r>=n.d){return n.e<0?(fHn(),Lle):(fHn(),Rle)}a=n.d-r;i=$nn(Ght,z1n,28,a+1,15,1);HOn(i,a,n.a,r,e);if(n.e<0){for(t=0;t0&&n.a[t]<<32-e!=0){for(t=0;t=0){return false}else{t=szn((yAn(),Vut),i,e);if(!t){return true}else{r=t.Ik();return(r>1||r==-1)&&wJ(Ktn(Vut,t))!=3}}}}else{return false}}function AFn(n,e,t,r){var i,a,c,u,s;u=vCn(bG(Yin((!e.b&&(e.b=new g_(B7e,e,4,7)),e.b),0),84));s=vCn(bG(Yin((!e.c&&(e.c=new g_(B7e,e,5,8)),e.c),0),84));if(H0(u)==H0(s)){return null}if(Oin(s,u)){return null}c=w0(e);if(c==t){return r}else{a=bG(fQ(n.a,c),10);if(a){i=a.e;if(i){return i}}}return null}function LFn(n,e,t){var r,i,a,c,u;t.Ug("Longest path to source layering",1);n.a=e;u=n.a.a;n.b=$nn(Ght,z1n,28,u.c.length,15,1);r=0;for(c=new nd(u);c.a0){r[0]+=n.d;u-=r[0]}if(r[2]>0){r[2]+=n.d;u-=r[2]}c=t.Math.max(0,u);r[1]=t.Math.max(r[1],u);e7(n,ipe,a.c+i.b+r[0]-(r[1]-u)/2,r);if(e==ipe){n.c.b=c;n.c.c=a.c+i.b+(c-u)/2}}function XFn(){this.c=$nn(zht,C0n,28,(UQn(),zfn(fT(e9e,1),X4n,64,0,[Z8e,D8e,$8e,Y8e,n9e])).length,15,1);this.b=$nn(zht,C0n,28,zfn(fT(e9e,1),X4n,64,0,[Z8e,D8e,$8e,Y8e,n9e]).length,15,1);this.a=$nn(zht,C0n,28,zfn(fT(e9e,1),X4n,64,0,[Z8e,D8e,$8e,Y8e,n9e]).length,15,1);UP(this.c,y0n);UP(this.b,M0n);UP(this.a,M0n)}function VFn(n,e,t){var r,i,a,c;if(e<=t){i=e;a=t}else{i=t;a=e}r=0;if(n.b==null){n.b=$nn(Ght,z1n,28,2,15,1);n.b[0]=i;n.b[1]=a;n.c=true}else{r=n.b.length;if(n.b[r-1]+1==i){n.b[r-1]=a;return}c=$nn(Ght,z1n,28,r+2,15,1);QGn(n.b,0,c,0,r);n.b=c;n.b[r-1]>=i&&(n.c=false,n.a=false);n.b[r++]=i;n.b[r]=a;n.c||Mxn(n)}}function zFn(n,e,t){var r,i,a,c,u,s,o;o=e.d;n.a=new H7(o.c.length);n.c=new rm;for(u=new nd(o);u.a=0?n.Lh(o,false,true):r$n(n,t,false),61));n:for(a=h.Kc();a.Ob();){i=bG(a.Pb(),58);for(f=0;f1){u_n(i,i.i-1)}}return r}}function r_n(n,e){var t,r,i,a,c,u,s;t=new KD;for(a=new nd(n.b);a.an.d[c.p]){t+=t9(n.b,a);x6(n.a,Bwn(a))}}while(!RM(n.a)){vrn(n.b,bG(Bz(n.a),17).a)}}return t}function a_n(n){var e,t,r,i,a,c,u,s,o;n.a=new BF;o=0;i=0;for(r=new nd(n.i.b);r.as.d&&(h=s.d+s.a+f)}}r.c.d=h;e.a.zc(r,e);o=t.Math.max(o,r.c.d+r.c.a)}return o}function o_n(){o_n=O;k$e=new hI("COMMENTS",0);M$e=new hI("EXTERNAL_PORTS",1);T$e=new hI("HYPEREDGES",2);j$e=new hI("HYPERNODES",3);E$e=new hI("NON_FREE_PORTS",4);S$e=new hI("NORTH_SOUTH_PORTS",5);C$e=new hI(K6n,6);m$e=new hI("CENTER_LABELS",7);y$e=new hI("END_LABELS",8);P$e=new hI("PARTITIONS",9)}function f_n(n,e,t,r,i){if(r<0){r=JOn(n,i,zfn(fT(vle,1),XZn,2,6,[D1n,x1n,R1n,K1n,F1n,_1n,B1n,H1n,U1n,G1n,q1n,X1n]),e);r<0&&(r=JOn(n,i,zfn(fT(vle,1),XZn,2,6,["Jan","Feb","Mar","Apr",F1n,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e));if(r<0){return false}t.k=r;return true}else if(r>0){t.k=r-1;return true}return false}function h_n(n,e,t,r,i){if(r<0){r=JOn(n,i,zfn(fT(vle,1),XZn,2,6,[D1n,x1n,R1n,K1n,F1n,_1n,B1n,H1n,U1n,G1n,q1n,X1n]),e);r<0&&(r=JOn(n,i,zfn(fT(vle,1),XZn,2,6,["Jan","Feb","Mar","Apr",F1n,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e));if(r<0){return false}t.k=r;return true}else if(r>0){t.k=r-1;return true}return false}function l_n(n,e,t,r,i,a){var c,u,s,o;u=32;if(r<0){if(e[0]>=n.length){return false}u=ZJ(n,e[0]);if(u!=43&&u!=45){return false}++e[0];r=HNn(n,e);if(r<0){return false}u==45&&(r=-r)}if(u==32&&e[0]-t==2&&i.b==2){s=new eS;o=s.q.getFullYear()-V1n+V1n-80;c=o%100;a.a=r==c;r+=(o/100|0)*100+(r=0?Hpn(n):dW(Hpn(Ptn(n))));Hle[e]=XA(KV(n,e),0)?Hpn(KV(n,e)):dW(Hpn(Ptn(KV(n,e))));n=Kgn(n,5)}for(;e=f&&(o=i)}!!o&&(h=t.Math.max(h,o.a.o.a));if(h>b){l=f;b=h}}return l}function j_n(n){var e,t,r,i,a,c,u;a=new Vj(bG(nQ(new _n),50));u=M0n;for(t=new nd(n.d);t.aK7n?g$(o,n.b):i<=K7n&&i>F7n?g$(o,n.d):i<=F7n&&i>_7n?g$(o,n.c):i<=_7n&&g$(o,n.a);c=C_n(n,o,c)}return a}function I_n(n,e,t,r){var i,a,c,u,s,o;i=(r.c+r.a)/2;XY(e.j);hq(e.j,i);XY(t.e);hq(t.e,i);o=new dj;for(u=new nd(n.f);u.a1;if(u){r=new PO(i,t.b);hq(e.a,r)}kcn(e.a,zfn(fT(D3e,1),XZn,8,0,[l,h]))}function D_n(n,e,t){var r,i;if(e=48;t--){Gft[t]=t-48<<24>>24}for(r=70;r>=65;r--){Gft[r]=r-65+10<<24>>24}for(i=102;i>=97;i--){Gft[i]=i-97+10<<24>>24}for(a=0;a<10;a++)qft[a]=48+a&$1n;for(n=10;n<=15;n++)qft[n]=65+n-10&$1n}function K_n(n,e){e.Ug("Process graph bounds",1);Ehn(n,(DQn(),Dze),FI(Csn(iY(new gX(null,new d3(n.b,16)),new Uc))));Ehn(n,Rze,FI(Csn(iY(new gX(null,new d3(n.b,16)),new Gc))));Ehn(n,$ze,FI(Psn(iY(new gX(null,new d3(n.b,16)),new qc))));Ehn(n,xze,FI(Psn(iY(new gX(null,new d3(n.b,16)),new Xc))));e.Vg()}function F_n(n){var e,r,i,a,c;a=bG(lIn(n,(IYn(),r_e)),21);c=bG(lIn(n,c_e),21);r=new PO(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a);e=new uN(r);if(a.Hc((emn(),f9e))){i=bG(lIn(n,a_e),8);if(c.Hc((hUn(),p9e))){i.a<=0&&(i.a=20);i.b<=0&&(i.b=20)}e.a=t.Math.max(r.a,i.a);e.b=t.Math.max(r.b,i.b)}lM(yK(lIn(n,i_e)))||fXn(n,r,e)}function __n(n,e){var t,r,i,a;for(a=_gn(e,(UQn(),Y8e)).Kc();a.Ob();){r=bG(a.Pb(),12);t=bG(lIn(r,(WYn(),NDe)),10);!!t&&HKn(BS(_S(HS(FS(new bk,0),.1),n.i[e.p].d),n.i[t.p].a))}for(i=_gn(e,D8e).Kc();i.Ob();){r=bG(i.Pb(),12);t=bG(lIn(r,(WYn(),NDe)),10);!!t&&HKn(BS(_S(HS(FS(new bk,0),.1),n.i[t.p].d),n.i[e.p].a))}}function B_n(n){var e,t,r,i,a,c;if(!n.c){c=new Eo;e=Cit;a=e.a.zc(n,e);if(a==null){for(r=new _D(Y5(n));r.e!=r.i.gc();){t=bG(iyn(r),89);i=PGn(t);G$(i,90)&&NW(c,B_n(bG(i,29)));cen(c,t)}e.a.Bc(n)!=null;e.a.gc()==0&&undefined}spn(c);vbn(c);n.c=new jL((bG(Yin(yZ((cQ(),_rt).o),15),19),c.i),c.g);S9(n).b&=-33}return n.c}function H_n(n){var e;if(n.c!=10)throw dm(new NM(oZn((c$(),nre))));e=n.a;switch(e){case 110:e=10;break;case 114:e=13;break;case 116:e=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw dm(new NM(oZn((c$(),Ore))))}return e}function U_n(n){var e,t,r,i,a;if(n.l==0&&n.m==0&&n.h==0){return"0"}if(n.h==l0n&&n.m==0&&n.l==0){return"-9223372036854775808"}if(n.h>>19!=0){return"-"+U_n(yhn(n))}t=n;r="";while(!(t.l==0&&t.m==0&&t.h==0)){i=q9(d0n);t=rzn(t,i,true);e=""+Cj(She);if(!(t.l==0&&t.m==0&&t.h==0)){a=9-e.length;for(;a>0;a--){e="0"+e}}r=e+r}return r}function G_n(n){var e,t,r,i,a,c,u;e=false;t=0;for(i=new nd(n.d.b);i.a=n.a){return-1}if(!qPn(e,r)){return-1}if(L6(bG(i.Kb(e),20))){return 1}a=0;for(u=bG(i.Kb(e),20).Kc();u.Ob();){c=bG(u.Pb(),18);o=c.c.i==e?c.d.i:c.c.i;s=z_n(n,o,r,i);if(s==-1){return-1}a=t.Math.max(a,s);if(a>n.c-1){return-1}}return a+1}function W_n(n,e){var t,r,i,a,c,u;if(BA(e)===BA(n)){return true}if(!G$(e,15)){return false}r=bG(e,15);u=n.gc();if(r.gc()!=u){return false}c=r.Kc();if(n.Yi()){for(t=0;t0){n._j();if(e!=null){for(a=0;a>24}case 97:case 98:case 99:case 100:case 101:case 102:{return n-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return n-65+10<<24>>24}default:{throw dm(new iT("Invalid hexadecimal"))}}}function nBn(){nBn=O;Uve=new oC("SPIRAL",0);Kve=new oC("LINE_BY_LINE",1);Fve=new oC("MANHATTAN",2);Rve=new oC("JITTER",3);Bve=new oC("QUADRANTS_LINE_BY_LINE",4);Hve=new oC("QUADRANTS_MANHATTAN",5);_ve=new oC("QUADRANTS_JITTER",6);xve=new oC("COMBINE_LINE_BY_LINE_MANHATTAN",7);Dve=new oC("COMBINE_JITTER_MANHATTAN",8)}function eBn(n,e,t,r){var i,a,c,u,s,o;s=MSn(n,t);o=MSn(e,t);i=false;while(!!s&&!!o){if(r||ujn(s,o,t)){c=MSn(s,t);u=MSn(o,t);$tn(e);$tn(n);a=s.c;Mzn(s,false);Mzn(o,false);if(t){Fjn(e,o.p,a);e.p=o.p;Fjn(n,s.p+1,a);n.p=s.p}else{Fjn(n,s.p,a);n.p=s.p;Fjn(e,o.p+1,a);e.p=o.p}h2(s,null);h2(o,null);s=c;o=u;i=true}else{break}}return i}function tBn(n){switch(n.g){case 0:return new bl;case 1:return new hl;case 3:return new sP;case 4:return new Aa;case 5:return new HF;case 6:return new ll;case 2:return new fl;case 7:return new il;case 8:return new cl;default:throw dm(new jM("No implementation is available for the layerer "+(n.f!=null?n.f:""+n.g)))}}function rBn(n,e,t,r){var i,a,c,u,s;i=false;a=false;for(u=new nd(r.j);u.a=e.length){throw dm(new kM("Greedy SwitchDecider: Free layer not in graph."))}this.c=e[n];this.e=new H_(r);xun(this.e,this.c,(UQn(),n9e));this.i=new H_(r);xun(this.i,this.c,$8e);this.f=new wX(this.c);this.a=!a&&i.i&&!i.s&&this.c[0].k==(YIn(),nEe);this.a&&oAn(this,n,e.length)}function sBn(n,e){var t,r,i,a,c,u;a=!n.B.Hc((hUn(),g9e));c=n.B.Hc(m9e);n.a=new bpn(c,a,n.c);!!n.n&&nZ(n.a.n,n.n);aM(n.g,(ran(),ipe),n.a);if(!e){r=new ckn(1,a,n.c);r.n.a=n.k;zz(n.p,(UQn(),D8e),r);i=new ckn(1,a,n.c);i.n.d=n.k;zz(n.p,Y8e,i);u=new ckn(0,a,n.c);u.n.c=n.k;zz(n.p,n9e,u);t=new ckn(0,a,n.c);t.n.b=n.k;zz(n.p,$8e,t)}}function oBn(n){var e,t,r;e=bG(lIn(n.d,(IYn(),gFe)),223);switch(e.g){case 2:t=zJn(n);break;case 3:t=(r=new im,ES(tY(rY(wrn(wrn(new gX(null,new d3(n.d.b,16)),new Di),new xi),new Ri),new Mi),new Kg(r)),r);break;default:throw dm(new EM("Compaction not supported for "+e+" edges."))}BVn(n,t);Y8(new Rw(n.g),new xg(n))}function fBn(n,e){var t,r,i,a,c,u,s;e.Ug("Process directions",1);t=bG(lIn(n,(eqn(),wWe)),88);if(t!=(Bdn(),s5e)){for(i=Gkn(n.b,0);i.b!=i.d.c;){r=bG($6(i),40);u=bG(lIn(r,(DQn(),Yze)),17).a;s=bG(lIn(r,Zze),17).a;switch(t.g){case 4:s*=-1;break;case 1:a=u;u=s;s=a;break;case 2:c=u;u=-s;s=c}Ehn(r,Yze,Bwn(u));Ehn(r,Zze,Bwn(s))}}e.Vg()}function hBn(n,e){var t;t=new re;!!e&&Yon(t,bG(fQ(n.a,F7e),96));G$(e,422)&&Yon(t,bG(fQ(n.a,_7e),96));if(G$(e,366)){Yon(t,bG(fQ(n.a,unt),96));return t}G$(e,84)&&Yon(t,bG(fQ(n.a,B7e),96));if(G$(e,207)){Yon(t,bG(fQ(n.a,snt),96));return t}if(G$(e,193)){Yon(t,bG(fQ(n.a,ont),96));return t}G$(e,326)&&Yon(t,bG(fQ(n.a,H7e),96));return t}function lBn(n){var e,t,r,i,a,c,u,s;s=new f9;for(u=new nd(n.a);u.a0&&e=0){return false}else{e.p=t.b;ED(t.e,e)}if(i==(YIn(),tEe)||i==iEe){for(c=new nd(e.j);c.an.d[u.p]){t+=t9(n.b,a);x6(n.a,Bwn(a))}}else{++c}}t+=n.b.d*c;while(!RM(n.a)){vrn(n.b,bG(Bz(n.a),17).a)}}return t}function FBn(n){var e,t,r,i,a,c;a=0;e=pEn(n);!!e.kk()&&(a|=4);(n.Bb&sie)!=0&&(a|=2);if(G$(n,102)){t=bG(n,19);i=vMn(t);(t.Bb&Wee)!=0&&(a|=32);if(i){sQ(U0(i));a|=8;c=i.t;(c>1||c==-1)&&(a|=16);(i.Bb&Wee)!=0&&(a|=64)}(t.Bb&S0n)!=0&&(a|=oie);a|=b1n}else{if(G$(e,469)){a|=512}else{r=e.kk();!!r&&(r.i&1)!=0&&(a|=256)}}(n.Bb&512)!=0&&(a|=128);return a}function _Bn(n,e){var t;if(n.f==Gst){t=wJ(Ktn((yAn(),Vut),e));return n.e?t==4&&e!=(T$n(),not)&&e!=(T$n(),Jst)&&e!=(T$n(),Yst)&&e!=(T$n(),Zst):t==2}if(!!n.d&&(n.d.Hc(e)||n.d.Hc(q3(Ktn((yAn(),Vut),e)))||n.d.Hc(szn((yAn(),Vut),n.b,e)))){return true}if(n.f){if(nKn((yAn(),n.f),VJ(Ktn(Vut,e)))){t=wJ(Ktn(Vut,e));return n.e?t==4:t==2}}return false}function BBn(n){var e,t,r,i,a,c,u,s,o,f,h,l,b;l=-1;b=0;for(o=n,f=0,h=o.length;f0&&++b}}}++l}return b}function HBn(n,e,r,i){var a,c,u,s,o,f,h,l;u=bG(YDn(r,(JYn(),I6e)),8);o=u.a;h=u.b+n;a=t.Math.atan2(h,o);a<0&&(a+=f7n);a+=e;a>f7n&&(a-=f7n);s=bG(YDn(i,I6e),8);f=s.a;l=s.b+n;c=t.Math.atan2(l,f);c<0&&(c+=f7n);c+=e;c>f7n&&(c-=f7n);return r$(),lcn(1e-10),t.Math.abs(a-c)<=1e-10||a==c||isNaN(a)&&isNaN(c)?0:ac?1:UL(isNaN(a),isNaN(c))}function UBn(n){var e,t,r,i,a,c,u;u=new rm;for(r=new nd(n.a.b);r.a=n.o){throw dm(new $k)}u=e>>5;c=e&31;a=KV(1,MV(KV(c,1)));i?n.n[t][u]=A3(n.n[t][u],a):n.n[t][u]=O3(n.n[t][u],NG(a));a=KV(a,1);r?n.n[t][u]=A3(n.n[t][u],a):n.n[t][u]=O3(n.n[t][u],NG(a))}catch(s){s=Ofn(s);if(G$(s,333)){throw dm(new kM(l3n+n.o+"*"+n.p+b3n+e+MZn+t+w3n))}else throw dm(s)}}function zBn(n,e,t,r){var i,a,c,u,s,o,f,h,l;l=new Vj(new uv(n));for(u=zfn(fT(Yje,1),e6n,10,0,[e,t]),s=0,o=u.length;s0){r=(!n.n&&(n.n=new gz(unt,n,1,7)),bG(Yin(n.n,0),135)).a;!r||tL(tL((e.a+=' "',e),r),'"')}}else{tL(tL((e.a+=' "',e),t),'"')}tL(Kj(tL(Kj(tL(Kj(tL(Kj((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")");return e.a}function ZBn(n){var e,t,r;if((n.Db&64)!=0)return oOn(n);e=new vx(_ee);t=n.k;if(!t){!n.n&&(n.n=new gz(unt,n,1,7));if(n.n.i>0){r=(!n.n&&(n.n=new gz(unt,n,1,7)),bG(Yin(n.n,0),135)).a;!r||tL(tL((e.a+=' "',e),r),'"')}}else{tL(tL((e.a+=' "',e),t),'"')}tL(Kj(tL(Kj(tL(Kj(tL(Kj((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")");return e.a}function nHn(n,e){var t,r,i,a,c;e==(Aln(),OHe)&&qAn(bG(r7(n.a,(yPn(),LAe)),15));for(i=bG(r7(n.a,(yPn(),LAe)),15).Kc();i.Ob();){r=bG(i.Pb(),105);t=bG(Yq(r.j,0),113).d.j;a=new iB(r.j);g$(a,new Gi);switch(e.g){case 2:CCn(n,a,t,(yun(),GAe),1);break;case 1:case 0:c=$Rn(a);CCn(n,new N2(a,0,c),t,(yun(),GAe),0);CCn(n,new N2(a,c,a.c.length),t,GAe,1)}}}function eHn(n,e){var t,r,i,a,c,u,s;if(e==null||e.length==0){return null}i=bG(z1(n.a,e),143);if(!i){for(r=(u=new Gw(n.b).a.vc().Kc(),new qw(u));r.a.Ob();){t=(a=bG(r.a.Pb(),44),bG(a.md(),143));c=t.c;s=e.length;if(T_(c.substr(c.length-s,s),e)&&(e.length==c.length||ZJ(c,c.length-e.length-1)==46)){if(i){return null}i=t}}!!i&&o2(n.a,e,i)}return i}function tHn(n,e){var t,r,i,a;t=new Xn;r=bG(v8(rY(new gX(null,new d3(n.f,16)),t),ytn(new nn,new en,new on,new fn,zfn(fT($de,1),g1n,108,0,[(Sbn(),Nde),Lde]))),21);i=r.gc();r=bG(v8(rY(new gX(null,new d3(e.f,16)),t),ytn(new nn,new en,new on,new fn,zfn(fT($de,1),g1n,108,0,[Nde,Lde]))),21);a=r.gc();if(ii.p){KLn(a,Y8e);if(a.d){u=a.o.b;e=a.a.b;a.a.b=u-e}}else if(a.j==Y8e&&i.p>n.p){KLn(a,D8e);if(a.d){u=a.o.b;e=a.a.b;a.a.b=-(u-e)}}break}}return i}function aHn(n,e,t,r,i){var a,c,u,s,o,f,h;if(!(G$(e,207)||G$(e,366)||G$(e,193))){throw dm(new jM("Method only works for ElkNode-, ElkLabel and ElkPort-objects."))}c=n.a/2;s=e.i+r-c;f=e.j+i-c;o=s+e.g+n.a;h=f+e.f+n.a;a=new zk;hq(a,new PO(s,f));hq(a,new PO(s,h));hq(a,new PO(o,h));hq(a,new PO(o,f));u=new MDn(a);Yon(u,e);t&&jJ(n.b,e,u);return u}function cHn(n,e,t){var r,i,a,c,u,s,o,f,h,l;a=new PO(e,t);for(f=new nd(n.a);f.a1;if(u){r=new PO(i,t.b);hq(e.a,r)}kcn(e.a,zfn(fT(D3e,1),XZn,8,0,[l,h]))}function CHn(){CHn=O;cHe=new kI(G4n,0);eHe=new kI("NIKOLOV",1);iHe=new kI("NIKOLOV_PIXEL",2);tHe=new kI("NIKOLOV_IMPROVED",3);rHe=new kI("NIKOLOV_IMPROVED_PIXEL",4);YBe=new kI("DUMMYNODE_PERCENTAGE",5);aHe=new kI("NODECOUNT_PERCENTAGE",6);uHe=new kI("NO_BOUNDARY",7);ZBe=new kI("MODEL_ORDER_LEFT_TO_RIGHT",8);nHe=new kI("MODEL_ORDER_RIGHT_TO_LEFT",9)}function IHn(n){var e,t,r,i,a;r=n.length;e=new ZM;a=0;while(a=40;c&&$Gn(n);sVn(n);TFn(n);t=sgn(n);r=0;while(!!t&&r0&&hq(n.f,a)}else{n.c[c]-=o+1;n.c[c]<=0&&n.a[c]>0&&hq(n.e,a)}}}}}function sUn(n,e,t,r){var i,a,c,u,s,o,f;s=new PO(t,r);r_(s,bG(lIn(e,(DQn(),Cze)),8));for(f=Gkn(e.b,0);f.b!=f.d.c;){o=bG($6(f),40);t_(o.e,s);hq(n.b,o)}for(u=bG(v8(q0(new gX(null,new d3(e.a,16))),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[(Sbn(),Lde)]))),15).Kc();u.Ob();){c=bG(u.Pb(),65);for(a=Gkn(c.a,0);a.b!=a.d.c;){i=bG($6(a),8);i.a+=s.a;i.b+=s.b}hq(n.a,c)}}function oUn(n,e){var t,r,i,a;if(0<(G$(n,16)?bG(n,16).gc():B5(n.Kc()))){i=e;if(1=0&&sa*2){f=new tan(h);o=OX(c)/IX(c);s=UJn(f,e,new _k,t,r,i,o);t_(kL(f.e),s);h.c.length=0;a=0;Tm(h.c,f);Tm(h.c,c);a=OX(f)*IX(f)+OX(c)*IX(c)}else{Tm(h.c,c);a+=OX(c)*IX(c)}}return h}function gUn(n,e){var t,r,i,a,c,u;u=bG(lIn(e,(IYn(),m_e)),101);if(!(u==(FPn(),k8e)||u==m8e)){return}i=new PO(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a).b;for(c=new nd(n.a);c.at?e:t;o<=h;++o){if(o==t){u=r++}else{a=i[o];f=w.am(a.Lk());o==e&&(s=o==h&&!f?r-1:r);f&&++r}}l=bG(Ydn(n,e,t),76);u!=s&&rk(n,new men(n.e,7,c,Bwn(u),b.md(),s));return l}}}else{return bG(VNn(n,e,t),76)}return bG(Ydn(n,e,t),76)}function pUn(n,e){var t,r,i,a,c,u,s;e.Ug("Port order processing",1);s=bG(lIn(n,(IYn(),E_e)),430);for(r=new nd(n.b);r.a=0){u=gjn(n,c);if(u){o<22?(s.l|=1<>>1;c.m=f>>>1|(h&1)<<21;c.l=l>>>1|(f&1)<<21;--o}t&&rln(s);if(a){if(r){She=yhn(n);i&&(She=Cfn(She,(crn(),Ihe)))}else{She=M$(n.l,n.m,n.h)}}return s}function MUn(n,e){var t,r,i,a,c,u,s,o,f,h;o=n.e[e.c.p][e.p]+1;s=e.c.a.c.length+1;for(u=new nd(n.a);u.a0&&(w3(0,n.length),n.charCodeAt(0)==45||(w3(0,n.length),n.charCodeAt(0)==43))?1:0;for(r=c;rt){throw dm(new iT(k0n+n+'"'))}return u}function jUn(n){var e,r,i,a,c,u,s;u=new vS;for(c=new nd(n.a);c.a1)&&e==1&&bG(n.a[n.b],10).k==(YIn(),eEe)){Wqn(bG(n.a[n.b],10),(xjn(),z5e))}else if(r&&(!t||(n.c-n.b&n.a.length-1)>1)&&e==1&&bG(n.a[n.c-1&n.a.length-1],10).k==(YIn(),eEe)){Wqn(bG(n.a[n.c-1&n.a.length-1],10),(xjn(),W5e))}else if((n.c-n.b&n.a.length-1)==2){Wqn(bG(Hhn(n),10),(xjn(),z5e));Wqn(bG(Hhn(n),10),W5e)}else{Lxn(n,i)}Q5(n)}function IUn(n,e,r){var i,a,c,u,s;c=0;for(a=new _D((!n.a&&(n.a=new gz(snt,n,10,11)),n.a));a.e!=a.i.gc();){i=bG(iyn(a),27);u="";(!i.n&&(i.n=new gz(unt,i,1,7)),i.n).i==0||(u=bG(Yin((!i.n&&(i.n=new gz(unt,i,1,7)),i.n),0),135).a);s=new mln(c++,e,u);Yon(s,i);Ehn(s,(DQn(),qze),i);s.e.b=i.j+i.f/2;s.f.a=t.Math.max(i.g,1);s.e.a=i.i+i.g/2;s.f.b=t.Math.max(i.f,1);hq(e.b,s);ZAn(r.f,i,s)}}function OUn(n){var e,t,r,i,a;r=bG(lIn(n,(WYn(),EDe)),27);a=bG(YDn(r,(IYn(),r_e)),181).Hc((emn(),b9e));if(!n.e){i=bG(lIn(n,oDe),21);e=new PO(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a);if(i.Hc((o_n(),M$e))){Pyn(r,m_e,(FPn(),m8e));iJn(r,e.a,e.b,false,true)}else{lM(yK(YDn(r,i_e)))||iJn(r,e.a,e.b,true,true)}}a?Pyn(r,r_e,ygn(b9e)):Pyn(r,r_e,(t=bG(Pj(w9e),9),new aB(t,bG(PF(t,t.length),9),0)))}function AUn(n,e,t){var r,i,a,c;if(e[0]>=n.length){t.o=0;return true}switch(ZJ(n,e[0])){case 43:i=1;break;case 45:i=-1;break;default:t.o=0;return true}++e[0];a=e[0];c=HNn(n,e);if(c==0&&e[0]==a){return false}if(e[0]u){u=i;f.c.length=0}i==u&&ED(f,new nA(t.c.i,t))}dZ();g$(f,n.c);WX(n.b,s.p,f)}}}function DUn(n,e){var t,r,i,a,c,u,s,o,f;for(c=new nd(e.b);c.au){u=i;f.c.length=0}i==u&&ED(f,new nA(t.d.i,t))}dZ();g$(f,n.c);WX(n.f,s.p,f)}}}function xUn(n,e){var t,r,i,a,c,u,s,o;o=yK(lIn(e,(eqn(),LWe)));if(o==null||(cJ(o),o)){O$n(n,e);i=new im;for(s=Gkn(e.b,0);s.b!=s.d.c;){c=bG($6(s),40);t=SAn(n,c,null);if(t){Yon(t,e);Tm(i.c,t)}}n.a=null;n.b=null;if(i.c.length>1){for(r=new nd(i);r.a=0&&u!=t){a=new vz(n,1,u,c,null);!r?r=a:r.nj(a)}if(t>=0){a=new vz(n,1,t,u==t?c:null,e);!r?r=a:r.nj(a)}}return r}function _Un(n){var e,t,r;if(n.b==null){r=new YM;if(n.i!=null){ZA(r,n.i);r.a+=":"}if((n.f&256)!=0){if((n.f&256)!=0&&n.a!=null){hY(n.i)||(r.a+="//",r);ZA(r,n.a)}if(n.d!=null){r.a+="/";ZA(r,n.d)}(n.f&16)!=0&&(r.a+="/",r);for(e=0,t=n.j.length;el){return false}h=(s=bXn(r,l,false),s.a);if(f+u+h<=e.b){ken(t,a-t.s);t.c=true;ken(r,a-t.s);lMn(r,t.s,t.t+t.d+u);r.k=true;Wsn(t.q,r);b=true;if(i){gcn(e,r);r.j=e;if(n.c.length>c){bEn((b3(c,n.c.length),bG(n.c[c],186)),r);(b3(c,n.c.length),bG(n.c[c],186)).a.c.length==0&&s7(n,c)}}}return b}function VUn(n,e){var t,r,i,a,c,u;e.Ug("Partition midprocessing",1);i=new U1;ES(tY(new gX(null,new d3(n.a,16)),new kr),new Eg(i));if(i.d==0){return}u=bG(v8(g3((a=i.i,new gX(null,(!a?i.i=new HD(i,i.c):a).Nc()))),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[(Sbn(),Lde)]))),15);r=u.Kc();t=bG(r.Pb(),17);while(r.Ob()){c=bG(r.Pb(),17);HRn(bG(r7(i,t),21),bG(r7(i,c),21));t=c}e.Vg()}function zUn(n,e,t){var r,i,a,c,u,s,o,f;if(e.p==0){e.p=1;c=t;if(!c){i=new im;a=(r=bG(Pj(e9e),9),new aB(r,bG(PF(r,r.length),9),0));c=new nA(i,a)}bG(c.a,15).Fc(e);e.k==(YIn(),nEe)&&bG(c.b,21).Fc(bG(lIn(e,(WYn(),cDe)),64));for(s=new nd(e.j);s.a0){i=bG(n.Ab.g,2033);if(e==null){for(a=0;ar.s&&sc){return UQn(),$8e}break;case 4:case 3:if(f<0){return UQn(),D8e}else if(f+t>a){return UQn(),Y8e}}s=(o+u/2)/c;r=(f+t/2)/a;return s+r<=1&&s-r<=0?(UQn(),n9e):s+r>=1&&s-r>=0?(UQn(),$8e):r<.5?(UQn(),D8e):(UQn(),Y8e)}function aGn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,d;t=false;f=bM(MK(lIn(e,(IYn(),V_e))));w=M1n*f;for(i=new nd(e.b);i.as+w){d=h.g+l.g;l.a=(l.g*l.a+h.g*h.a)/d;l.g=d;h.f=l;t=true}}a=u;h=l}}return t}function cGn(n,e,t,r,i,a,c){var u,s,o,f,h,l;l=new fN;for(o=e.Kc();o.Ob();){u=bG(o.Pb(),853);for(h=new nd(u.Rf());h.a0){if(s.a){f=s.b.Mf().b;if(a>f){if(n.v||s.c.d.c.length==1){u=(a-f)/2;s.d.d=u;s.d.a=u}else{r=bG(Yq(s.c.d,0),187).Mf().b;i=(r-f)/2;s.d.d=t.Math.max(0,i);s.d.a=a-i-f}}}else{s.d.a=n.t+a}}else if(fz(n.u)){c=OCn(s.b);c.d<0&&(s.d.d=-c.d);c.d+c.a>s.b.Mf().b&&(s.d.a=c.d+c.a-s.b.Mf().b)}}}function oGn(){oGn=O;Jye=new qN((JYn(),O6e),Bwn(1));rMe=new qN(X6e,80);tMe=new qN(F6e,5);Rye=new qN(g4e,r4n);Yye=new qN(A6e,Bwn(1));eMe=new qN($6e,(Qx(),true));zye=new NN(50);Vye=new qN(c6e,zye);Fye=B4e;Wye=k6e;Kye=new qN(C4e,false);Xye=a6e;Gye=Z4e;qye=t6e;Uye=J4e;Hye=W4e;Qye=j6e;Bye=(lOn(),Eye);iMe=Oye;_ye=jye;Zye=Pye;nMe=Iye;uMe=Z6e;oMe=r5e;cMe=Y6e;aMe=J6e;sMe=($wn(),P9e);new qN(n5e,sMe)}function fGn(n,e){var t;switch(Prn(n)){case 6:return HA(e);case 7:return GA(e);case 8:return UA(e);case 3:return Array.isArray(e)&&(t=Prn(e),!(t>=14&&t<=16));case 11:return e!=null&&typeof e===vZn;case 12:return e!=null&&(typeof e===bZn||typeof e==vZn);case 0:return Oyn(e,n.__elementTypeId$);case 2:return Kz(e)&&!(e.Tm===I);case 1:return Kz(e)&&!(e.Tm===I)||Oyn(e,n.__elementTypeId$);default:return true}}function hGn(n){var e,r,i,a;i=n.o;ZK();if(n.A.dc()||bdn(n.A,ame)){a=i.a}else{n.D?a=t.Math.max(i.a,yNn(n.f)):a=yNn(n.f);if(n.A.Hc((emn(),h9e))&&!n.B.Hc((hUn(),y9e))){a=t.Math.max(a,yNn(bG(xJ(n.p,(UQn(),D8e)),252)));a=t.Math.max(a,yNn(bG(xJ(n.p,Y8e),252)))}e=gon(n);!!e&&(a=t.Math.max(a,e.a))}lM(yK(n.e.Tf().of((JYn(),Z4e))))?i.a=t.Math.max(i.a,a):i.a=a;r=n.f.i;r.c=0;r.b=a;rqn(n.f)}function lGn(n,e){var r,i,a,c;i=t.Math.min(t.Math.abs(n.c-(e.c+e.b)),t.Math.abs(n.c+n.b-e.c));c=t.Math.min(t.Math.abs(n.d-(e.d+e.a)),t.Math.abs(n.d+n.a-e.d));r=t.Math.abs(n.c+n.b/2-(e.c+e.b/2));if(r>n.b/2+e.b/2){return 1}a=t.Math.abs(n.d+n.a/2-(e.d+e.a/2));if(a>n.a/2+e.a/2){return 1}if(r==0&&a==0){return 0}if(r==0){return c/a+1}if(a==0){return i/r+1}return t.Math.min(i/r,c/a)+1}function bGn(n,e){var t,r,i,a,c,u,s;a=0;u=0;s=0;for(i=new nd(n.f.e);i.a0&&n.d!=(trn(),HMe)&&(u+=c*(r.d.a+n.a[e.a][r.a]*(e.d.a-r.d.a)/t));t>0&&n.d!=(trn(),_Me)&&(s+=c*(r.d.b+n.a[e.a][r.a]*(e.d.b-r.d.b)/t))}switch(n.d.g){case 1:return new PO(u/a,e.d.b);case 2:return new PO(e.d.a,s/a);default:return new PO(u/a,s/a)}}function wGn(n){var e,t,r,i,a,c;t=(!n.a&&(n.a=new PD(K7e,n,5)),n.a).i+2;c=new H7(t);ED(c,new PO(n.j,n.k));ES(new gX(null,(!n.a&&(n.a=new PD(K7e,n,5)),new d3(n.a,16))),new Zv(c));ED(c,new PO(n.b,n.c));e=1;while(e0){dhn(s,false,(Bdn(),o5e));dhn(s,true,f5e)}Lin(e.g,new zC(n,t));jJ(n.g,e,t)}function vGn(){vGn=O;var n;ole=zfn(fT(Ght,1),z1n,28,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);fle=$nn(Ght,z1n,28,37,15,1);hle=zfn(fT(Ght,1),z1n,28,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);lle=$nn(Xht,j0n,28,37,14,1);for(n=2;n<=36;n++){fle[n]=c0(t.Math.pow(n,ole[n]));lle[n]=pSn(JZn,fle[n])}}function pGn(n){var e;if((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a).i!=1){throw dm(new jM(See+(!n.a&&(n.a=new gz(U7e,n,6,6)),n.a).i))}e=new zk;!!Afn(bG(Yin((!n.b&&(n.b=new g_(B7e,n,4,7)),n.b),0),84))&&esn(e,MYn(n,Afn(bG(Yin((!n.b&&(n.b=new g_(B7e,n,4,7)),n.b),0),84)),false));!!Afn(bG(Yin((!n.c&&(n.c=new g_(B7e,n,5,8)),n.c),0),84))&&esn(e,MYn(n,Afn(bG(Yin((!n.c&&(n.c=new g_(B7e,n,5,8)),n.c),0),84)),true));return e}function mGn(n,e){var t,r,i,a,c;e.d?i=n.a.c==(p0(),Cqe)?Qgn(e.b):Jgn(e.b):i=n.a.c==(p0(),Pqe)?Qgn(e.b):Jgn(e.b);a=false;for(r=new GV(sx(i.a.Kc(),new d));dDn(r);){t=bG(K9(r),18);c=lM(n.a.f[n.a.g[e.b.p].p]);if(!c&&!j9(t)&&t.c.i.c==t.d.i.c){continue}if(lM(n.a.n[n.a.g[e.b.p].p])||lM(n.a.n[n.a.g[e.b.p].p])){continue}a=true;if(fS(n.b,n.a.g[jTn(t,e.b).p])){e.c=true;e.a=t;return e}}e.c=a;e.a=null;return e}function kGn(n,e,t){var r,i,a,c,u,s,o;r=t.gc();if(r==0){return false}else{if(n.Pj()){s=n.Qj();apn(n,e,t);c=r==1?n.Ij(3,null,t.Kc().Pb(),e,s):n.Ij(5,null,t,e,s);if(n.Mj()){u=r<100?null:new fj(r);a=e+r;for(i=e;i0){for(u=0;u>16==-15&&n.Cb.Yh()&&Ntn(new pen(n.Cb,9,13,t,n.c,Vyn(xtn(bG(n.Cb,62)),n)))}else if(G$(n.Cb,90)){if(n.Db>>16==-23&&n.Cb.Yh()){e=n.c;G$(e,90)||(e=(rZn(),nit));G$(t,90)||(t=(rZn(),nit));Ntn(new pen(n.Cb,9,10,t,e,Vyn(Y5(bG(n.Cb,29)),n)))}}}}return n.c}function CGn(n,e,t){var r,i,a,c,u,s,o,f,h;t.Ug("Hyperedge merging",1);NDn(n,e);s=new K4(e.b,0);while(s.b0;u=dvn(e,a);t?Lx(u.b,e):Lx(u.g,e);Obn(u).c.length==1&&(w8(r,u,r.c.b,r.c),true);i=new nA(a,e);x6(n.o,i);Ttn(n.e.a,a)}}function DGn(n,e){var r,i,a,c,u,s,o;i=t.Math.abs(xz(n.b).a-xz(e.b).a);s=t.Math.abs(xz(n.b).b-xz(e.b).b);a=0;o=0;r=1;u=1;if(i>n.b.b/2+e.b.b/2){a=t.Math.min(t.Math.abs(n.b.c-(e.b.c+e.b.b)),t.Math.abs(n.b.c+n.b.b-e.b.c));r=1-a/i}if(s>n.b.a/2+e.b.a/2){o=t.Math.min(t.Math.abs(n.b.d-(e.b.d+e.b.a)),t.Math.abs(n.b.d+n.b.a-e.b.d));u=1-o/s}c=t.Math.min(r,u);return(1-c)*t.Math.sqrt(i*i+s*s)}function xGn(n){var e,t,r,i;mQn(n,n.e,n.f,(v0(),zXe),true,n.c,n.i);mQn(n,n.e,n.f,zXe,false,n.c,n.i);mQn(n,n.e,n.f,WXe,true,n.c,n.i);mQn(n,n.e,n.f,WXe,false,n.c,n.i);SGn(n,n.c,n.e,n.f,n.i);r=new K4(n.i,0);while(r.b=65;t--){Hft[t]=t-65<<24>>24}for(r=122;r>=97;r--){Hft[r]=r-97+26<<24>>24}for(i=57;i>=48;i--){Hft[i]=i-48+52<<24>>24}Hft[43]=62;Hft[47]=63;for(a=0;a<=25;a++)Uft[a]=65+a&$1n;for(c=26,s=0;c<=51;++c,s++)Uft[c]=97+s&$1n;for(n=52,u=0;n<=61;++n,u++)Uft[n]=48+u&$1n;Uft[62]=43;Uft[63]=47}function FGn(n,e){var r,i,a,c,u,s;a=asn(n);s=asn(e);if(a==s){if(n.e==e.e&&n.a<54&&e.a<54){return n.fe.f?1:0}i=n.e-e.e;r=(n.d>0?n.d:t.Math.floor((n.a-1)*O0n)+1)-(e.d>0?e.d:t.Math.floor((e.a-1)*O0n)+1);if(r>i+1){return a}else if(r0&&(u=I5(u,qqn(i)));return Lmn(c,u)}}else return af){b=0;w+=o+e;o=0}cHn(u,b,w);r=t.Math.max(r,b+h.a);o=t.Math.max(o,h.b);b+=h.a+e}return new PO(r+e,w+o+e)}function HGn(n,e){var t,r,i,a,c,u,s;if(!d0(n)){throw dm(new EM(Eee))}r=d0(n);a=r.g;i=r.f;if(a<=0&&i<=0){return UQn(),Z8e}u=n.i;s=n.j;switch(e.g){case 2:case 1:if(u<0){return UQn(),n9e}else if(u+n.g>a){return UQn(),$8e}break;case 4:case 3:if(s<0){return UQn(),D8e}else if(s+n.f>i){return UQn(),Y8e}}c=(u+n.g/2)/a;t=(s+n.f/2)/i;return c+t<=1&&c-t<=0?(UQn(),n9e):c+t>=1&&c-t>=0?(UQn(),$8e):t<.5?(UQn(),D8e):(UQn(),Y8e)}function UGn(n,e,t,r,i){var a,c;a=Rgn(O3(e[0],A0n),O3(r[0],A0n));n[0]=MV(a);a=FV(a,32);if(t>=i){for(c=1;c0){i.b[c++]=0;i.b[c++]=a.b[0]-1}for(e=1;e0){ew(s,s.d-i.d);i.c==(q7(),kXe)&&Zb(s,s.a-i.d);s.d<=0&&s.i>0&&(w8(e,s,e.c.b,e.c),true)}}}for(a=new nd(n.f);a.a0){tw(u,u.i-i.d);i.c==(q7(),kXe)&&nw(u,u.b-i.d);u.i<=0&&u.d>0&&(w8(t,u,t.c.b,t.c),true)}}}}function WGn(n,e,t,r,i){var a,c,u,s,o,f,h,l,b;dZ();g$(n,new qs);c=lG(n);b=new im;l=new im;u=null;s=0;while(c.b!=0){a=bG(c.b==0?null:(PK(c.b!=0),Rin(c,c.a.a)),163);if(!u||OX(u)*IX(u)/21&&(s>OX(u)*IX(u)/2||c.b==0)){h=new tan(l);f=OX(u)/IX(u);o=UJn(h,e,new _k,t,r,i,f);t_(kL(h.e),o);u=h;Tm(b.c,h);s=0;l.c.length=0}}}Dfn(b,l);return b}function QGn(n,e,t,r,i){pS();var a,c,u,s,o,f,h;hW(n,"src");hW(t,"dest");h=Cbn(n);s=Cbn(t);SG((h.i&4)!=0,"srcType is not an array");SG((s.i&4)!=0,"destType is not an array");f=h.c;c=s.c;SG((f.i&1)!=0?f==c:(c.i&1)==0,"Array types don't match");Fhn(n,e,t,r,i);if((f.i&1)==0&&h!=s){o=Uan(n);a=Uan(t);if(BA(n)===BA(t)&&er;){bQ(a,u,o[--e])}}else{for(u=r+i;r0);r.a.Xb(r.c=--r.b);h>l+s&&RQ(r)}for(c=new nd(b);c.a0);r.a.Xb(r.c=--r.b)}}}}function ZGn(){eZn();var n,e,t,r,i,a;if(sht)return sht;n=(++Tht,new U3(4));CXn(n,EJn(ece,true));vWn(n,EJn("M",true));vWn(n,EJn("C",true));a=(++Tht,new U3(4));for(r=0;r<11;r++){VFn(a,r,r)}e=(++Tht,new U3(4));CXn(e,EJn("M",true));VFn(e,4448,4607);VFn(e,65438,65439);i=(++Tht,new e$(2));jVn(i,n);jVn(i,uht);t=(++Tht,new e$(2));t.Jm(NX(a,EJn("L",true)));t.Jm(e);t=(++Tht,new a8(3,t));t=(++Tht,new uW(i,t));sht=t;return sht}function nqn(n,e){var t,r,i,a,c,u,s,o;t=new RegExp(e,"g");s=$nn(vle,XZn,2,0,6,1);r=0;o=n;a=null;while(true){u=t.exec(o);if(u==null||o==""){s[r]=o;break}else{c=u.index;s[r]=(Unn(0,c,o.length),o.substr(0,c));o=o1(o,c+u[0].length,o.length);t.lastIndex=0;if(a==o){s[r]=(Unn(0,1,o.length),o.substr(0,1));o=(w3(1,o.length+1),o.substr(1))}a=o;++r}}if(n.length>0){i=s.length;while(i>0&&s[i-1]==""){--i}i0){l-=i[0]+n.c;i[0]+=n.c}i[2]>0&&(l-=i[2]+n.c);i[1]=t.Math.max(i[1],l);QX(n.a[1],r.c+e.b+i[0]-(i[1]-l)/2,i[1])}for(c=n.a,s=0,f=c.length;s0?(n.n.c.length-1)*n.i:0;for(i=new nd(n.n);i.a1){for(r=Gkn(i,0);r.b!=r.d.c;){t=bG($6(r),235);a=0;for(s=new nd(t.e);s.a0){e[0]+=n.c;l-=e[0]}e[2]>0&&(l-=e[2]+n.c);e[1]=t.Math.max(e[1],l);JX(n.a[1],i.d+r.d+e[0]-(e[1]-l)/2,e[1])}else{d=i.d+r.d;w=i.a-r.d-r.a;for(u=n.a,o=0,h=u.length;o0||Ggn(a.b.d,n.b.d+n.b.a)==0&&i.b<0||Ggn(a.b.d+a.b.a,n.b.d)==0&&i.b>0){s=0;break}}else{s=t.Math.min(s,RLn(n,a,i))}s=t.Math.min(s,bqn(n,c,s,i))}return s}function wqn(n,e){var t,r,i,a,c,u,s;if(n.b<2){throw dm(new jM("The vector chain must contain at least a source and a target point."))}i=(PK(n.b!=0),bG(n.a.a.c,8));PN(e,i.a,i.b);s=new iR((!e.a&&(e.a=new PD(K7e,e,5)),e.a));c=Gkn(n,1);while(c.a=0&&a!=t){throw dm(new jM(Gte))}}i=0;for(s=0;sbM(lD(c.g,c.d[0]).a)){PK(s.b>0);s.a.Xb(s.c=--s.b);MF(s,c);i=true}else if(!!u.e&&u.e.gc()>0){a=(!u.e&&(u.e=new im),u.e).Mc(e);o=(!u.e&&(u.e=new im),u.e).Mc(t);if(a||o){(!u.e&&(u.e=new im),u.e).Fc(c);++c.c}}}i||(Tm(r.c,c),true)}function pqn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v;h=n.a.i+n.a.g/2;l=n.a.i+n.a.g/2;w=e.i+e.g/2;g=e.j+e.f/2;u=new PO(w,g);o=bG(YDn(e,(JYn(),I6e)),8);o.a=o.a+h;o.b=o.b+l;a=(u.b-o.b)/(u.a-o.a);r=u.b-a*u.a;d=t.i+t.g/2;v=t.j+t.f/2;s=new PO(d,v);f=bG(YDn(t,I6e),8);f.a=f.a+h;f.b=f.b+l;c=(s.b-f.b)/(s.a-f.a);i=s.b-c*s.a;b=(r-i)/(c-a);if(o.a>>0,"0"+e.toString(16));r="\\x"+o1(t,t.length-2,t.length)}else if(n>=S0n){t=(e=n>>>0,"0"+e.toString(16));r="\\v"+o1(t,t.length-6,t.length)}else r=""+String.fromCharCode(n&$1n)}return r}function Cqn(n){var e,t,r;if(wN(bG(lIn(n,(IYn(),m_e)),101))){for(t=new nd(n.j);t.a=e.o&&t.f<=e.f||e.a*.5<=t.f&&e.a*1.5>=t.f){c=bG(Yq(e.n,e.n.c.length-1),209);if(c.e+c.d+t.g+i<=r&&(a=bG(Yq(e.n,e.n.c.length-1),209),a.f-n.f+t.f<=n.b||n.a.c.length==1)){svn(e,t);return true}else if(e.s+t.g<=r&&(e.t+e.d+t.f+i<=n.b||n.a.c.length==1)){ED(e.b,t);u=bG(Yq(e.n,e.n.c.length-1),209);ED(e.n,new f0(e.s,u.f+u.a+e.i,e.i));YMn(bG(Yq(e.n,e.n.c.length-1),209),t);aqn(e,t);return true}}return false}function Lqn(n,e,t){var r,i,a,c;if(n.Pj()){i=null;a=n.Qj();r=n.Ij(1,c=srn(n,e,t),t,e,a);if(n.Mj()&&!(n.Yi()&&c!=null?bdn(c,t):BA(c)===BA(t))){c!=null&&(i=n.Oj(c,i));i=n.Nj(t,i);n.Tj()&&(i=n.Wj(c,t,i));if(!i){n.Jj(r)}else{i.nj(r);i.oj()}}else{n.Tj()&&(i=n.Wj(c,t,i));if(!i){n.Jj(r)}else{i.nj(r);i.oj()}}return c}else{c=srn(n,e,t);if(n.Mj()&&!(n.Yi()&&c!=null?bdn(c,t):BA(c)===BA(t))){i=null;c!=null&&(i=n.Oj(c,null));i=n.Nj(t,i);!!i&&i.oj()}return c}}function Nqn(n,e){var t,r,i,a,c;e.Ug("Path-Like Graph Wrapping",1);if(n.b.c.length==0){e.Vg();return}i=new kDn(n);c=(i.i==null&&(i.i=hsn(i,new Ma)),bM(i.i)*i.f);t=c/(i.i==null&&(i.i=hsn(i,new Ma)),bM(i.i));if(i.b>t){e.Vg();return}switch(bG(lIn(n,(IYn(),oBe)),351).g){case 2:a=new Ea;break;case 0:a=new da;break;default:a=new Sa}r=a.og(n,i);if(!a.pg()){switch(bG(lIn(n,dBe),352).g){case 2:r=ULn(i,r);break;case 1:r=MPn(i,r)}}EVn(n,i,r);e.Vg()}function $qn(n,e){var r,i,a,c,u,s,o,f;e%=24;if(n.q.getHours()!=e){i=new t.Date(n.q.getTime());i.setDate(i.getDate()+1);s=n.q.getTimezoneOffset()-i.getTimezoneOffset();if(s>0){o=s/60|0;f=s%60;a=n.q.getDate();r=n.q.getHours();r+o>=24&&++a;c=new t.Date(n.q.getFullYear(),n.q.getMonth(),a,e+o,n.q.getMinutes()+f,n.q.getSeconds(),n.q.getMilliseconds());n.q.setTime(c.getTime())}}u=n.q.getTime();n.q.setTime(u+36e5);n.q.getHours()!=e&&n.q.setTime(u)}function Dqn(n,e){var t,r,i,a;h3(n.d,n.e);n.c.a.$b();if(bM(MK(lIn(e.j,(IYn(),UKe))))!=0||bM(MK(lIn(e.j,UKe)))!=0){t=_3n;BA(lIn(e.j,zKe))!==BA((Smn(),hHe))&&Ehn(e.j,(WYn(),sDe),(Qx(),true));a=bG(lIn(e.j,Y_e),17).a;for(i=0;ii&&++o;ED(c,(b3(u+o,e.c.length),bG(e.c[u+o],17)));s+=(b3(u+o,e.c.length),bG(e.c[u+o],17)).a-r;++t;while(t=v&&n.e[o.p]>d*n.b||k>=r*v){Tm(b.c,s);s=new im;esn(u,c);c.a.$b();f-=h;w=t.Math.max(w,f*n.b+g);f+=k;m=k;k=0;h=0;g=0}}return new nA(w,b)}function Fqn(n){var e,t,r,i,a,c,u;if(!n.d){u=new Io;e=Cit;a=e.a.zc(n,e);if(a==null){for(r=new _D(a1(n));r.e!=r.i.gc();){t=bG(iyn(r),29);NW(u,Fqn(t))}e.a.Bc(n)!=null;e.a.gc()==0&&undefined}c=u.i;for(i=(!n.q&&(n.q=new gz(Irt,n,11,10)),new _D(n.q));i.e!=i.i.gc();++c){bG(iyn(i),411)}NW(u,(!n.q&&(n.q=new gz(Irt,n,11,10)),n.q));vbn(u);n.d=new jL((bG(Yin(yZ((cQ(),_rt).o),9),19),u.i),u.g);n.e=bG(u.g,688);n.e==null&&(n.e=Iit);S9(n).b&=-17}return n.d}function _qn(n,e,t,r){var i,a,c,u,s,o;o=ZKn(n.e.Dh(),e);s=0;i=bG(n.g,124);LP();if(bG(e,69).xk()){for(c=0;c1||w==-1){h=bG(d,71);l=bG(f,71);if(h.dc()){l.$b()}else{c=!!vMn(e);a=0;for(u=n.a?h.Kc():h.Ii();u.Ob();){o=bG(u.Pb(),58);i=bG(hrn(n,o),58);if(!i){if(n.b&&!c){l.Gi(a,o);++a}}else{if(c){s=l.dd(i);s==-1?l.Gi(a,i):a!=s&&l.Ui(a,i)}else{l.Gi(a,i)}++a}}}}else{if(d==null){f.Wb(null)}else{i=hrn(n,d);i==null?n.b&&!vMn(e)&&f.Wb(d):f.Wb(i)}}}}}function Hqn(n,e){var r,i,a,c,u,s,o,f;r=new Kt;for(a=new GV(sx(Qgn(e).a.Kc(),new d));dDn(a);){i=bG(K9(a),18);if(j9(i)){continue}s=i.c.i;if(qPn(s,BSe)){f=z_n(n,s,BSe,_Se);if(f==-1){continue}r.b=t.Math.max(r.b,f);!r.a&&(r.a=new im);ED(r.a,s)}}for(u=new GV(sx(Jgn(e).a.Kc(),new d));dDn(u);){c=bG(K9(u),18);if(j9(c)){continue}o=c.d.i;if(qPn(o,_Se)){f=z_n(n,o,_Se,BSe);if(f==-1){continue}r.d=t.Math.max(r.d,f);!r.c&&(r.c=new im);ED(r.c,o)}}return r}function Uqn(n,e,t,r){var i,a,c,u,s,o,f;if(t.d.i==e.i){return}i=new yMn(n);Vb(i,(YIn(),tEe));Ehn(i,(WYn(),EDe),t);Ehn(i,(IYn(),m_e),(FPn(),m8e));Tm(r.c,i);c=new vOn;l2(c,i);KLn(c,(UQn(),n9e));u=new vOn;l2(u,i);KLn(u,$8e);f=t.d;b2(t,c);a=new zZ;Yon(a,t);Ehn(a,DFe,null);f2(a,u);b2(a,f);o=new K4(t.b,0);while(o.b1e6){throw dm(new mM("power of ten too big"))}if(n<=pZn){return _9(c$n(Ble[1],e),e)}r=c$n(Ble[1],pZn);i=r;t=Xon(n-pZn);e=c0(n%pZn);while(kwn(t,pZn)>0){i=I5(i,r);t=Fgn(t,pZn)}i=I5(i,c$n(Ble[1],e));i=_9(i,pZn);t=Xon(n-pZn);while(kwn(t,pZn)>0){i=_9(i,pZn);t=Fgn(t,pZn)}i=_9(i,e);return i}function Xqn(n){var e,t,r,i,a,c,u,s,o,f;for(s=new nd(n.a);s.ao&&r>o){f=u;o=bM(e.p[u.p])+bM(e.d[u.p])+u.o.b+u.d.a}else{i=false;t._g()&&t.bh("bk node placement breaks on "+u+" which should have been after "+f);break}}if(!i){break}}t._g()&&t.bh(e+" is feasible: "+i);return i}function Jqn(n,e,t,r){var i,a,c,u,s,o,f,h,l;a=new yMn(n);Vb(a,(YIn(),iEe));Ehn(a,(IYn(),m_e),(FPn(),m8e));i=0;if(e){c=new vOn;Ehn(c,(WYn(),EDe),e);Ehn(a,EDe,e.i);KLn(c,(UQn(),n9e));l2(c,a);l=B4(e.e);for(o=l,f=0,h=o.length;f0){if(i<0&&f.a){i=s;a=o[0];r=0}if(i>=0){u=f.b;if(s==i){u-=r++;if(u==0){return 0}}if(!oJn(e,o,f,u,c)){s=i-1;o[0]=a;continue}}else{i=-1;if(!oJn(e,o,f,0,c)){return 0}}}else{i=-1;if(ZJ(f.c,0)==32){h=o[0];mrn(e,o);if(o[0]>h){continue}}else if(n1(e,f.c,o[0])){o[0]+=f.c.length;continue}return 0}}if(!RQn(c,t)){return 0}return o[0]}function eXn(n,e,t){var r,i,a,c,u,s,o,f,h,l;f=new UV(new Gd(t));u=$nn(qht,_2n,28,n.f.e.c.length,16,1);Yz(u,u.length);t[e.a]=0;for(o=new nd(n.f.e);o.a=0&&!uTn(n,f,h)){--h}i[f]=h}for(b=0;b=0&&!uTn(n,u,w)){--u}a[w]=u}for(s=0;se[l]&&lr[s]&&VBn(n,s,l,false,true)}}}function rXn(n){var e,t,r,i,a,c,u,s;t=lM(yK(lIn(n,(oGn(),Kye))));a=n.a.c.d;u=n.a.d.d;if(t){c=jD(r_(new PO(u.a,u.b),a),.5);s=jD(_$(n.e),.5);e=r_(t_(new PO(a.a,a.b),c),s);qR(n.d,e)}else{i=bM(MK(lIn(n.a,tMe)));r=n.d;if(a.a>=u.a){if(a.b>=u.b){r.a=u.a+(a.a-u.a)/2+i;r.b=u.b+(a.b-u.b)/2-i-n.e.b}else{r.a=u.a+(a.a-u.a)/2+i;r.b=a.b+(u.b-a.b)/2+i}}else{if(a.b>=u.b){r.a=a.a+(u.a-a.a)/2+i;r.b=u.b+(a.b-u.b)/2+i}else{r.a=a.a+(u.a-a.a)/2+i;r.b=a.b+(u.b-a.b)/2-i-n.e.b}}}}function iXn(n){var e,t,r,i,a,c,u,s;if(!n.f){s=new Po;u=new Po;e=Cit;c=e.a.zc(n,e);if(c==null){for(a=new _D(a1(n));a.e!=a.i.gc();){i=bG(iyn(a),29);NW(s,iXn(i))}e.a.Bc(n)!=null;e.a.gc()==0&&undefined}for(r=(!n.s&&(n.s=new gz(mrt,n,21,17)),new _D(n.s));r.e!=r.i.gc();){t=bG(iyn(r),179);G$(t,102)&&cen(u,bG(t,19))}vbn(u);n.r=new tq(n,(bG(Yin(yZ((cQ(),_rt).o),6),19),u.i),u.g);NW(s,n.r);vbn(s);n.f=new jL((bG(Yin(yZ(_rt.o),5),19),s.i),s.g);S9(n).b&=-3}return n.f}function aXn(n){dP(n,new dCn(GT(_T(UT(HT(new vs,N3n),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new fe)));z4(n,N3n,$3n,tyn(zke));z4(n,N3n,D3n,tyn(Hke));z4(n,N3n,x3n,tyn(Rke));z4(n,N3n,R3n,tyn(Uke));z4(n,N3n,$2n,tyn(Xke));z4(n,N3n,D2n,tyn(qke));z4(n,N3n,N2n,tyn(Vke));z4(n,N3n,x2n,tyn(Gke));z4(n,N3n,C3n,tyn(Fke));z4(n,N3n,I3n,tyn(Kke));z4(n,N3n,O3n,tyn(_ke));z4(n,N3n,A3n,tyn(Bke))}function cXn(){cXn=O;jnt=zfn(fT(Uht,1),L1n,28,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]);Ent=new RegExp("[ \t\n\r\f]+");try{Tnt=zfn(fT(uat,1),jZn,2114,0,[new Up((mL(),Npn("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",pF((Qy(),Qy(),che))))),new Up(Npn("yyyy-MM-dd'T'HH:mm:ss'.'SSS",pF((null,che)))),new Up(Npn("yyyy-MM-dd'T'HH:mm:ss",pF((null,che)))),new Up(Npn("yyyy-MM-dd'T'HH:mm",pF((null,che)))),new Up(Npn("yyyy-MM-dd",pF((null,che))))])}catch(n){n=Ofn(n);if(!G$(n,82))throw dm(n)}}function uXn(n,e){var t,r,i,a;i=bRn(n.d,1)!=0;r=oHn(n,e);if(r==0&&lM(yK(lIn(e.j,(WYn(),sDe))))){return 0}!lM(yK(lIn(e.j,(WYn(),sDe))))&&!lM(yK(lIn(e.j,FDe)))||BA(lIn(e.j,(IYn(),zKe)))===BA((Smn(),hHe))?e.c.mg(e.e,i):i=lM(yK(lIn(e.j,sDe)));LKn(n,e,i,true);lM(yK(lIn(e.j,FDe)))&&Ehn(e.j,FDe,(Qx(),false));if(lM(yK(lIn(e.j,sDe)))){Ehn(e.j,sDe,(Qx(),false));Ehn(e.j,FDe,true)}t=oHn(n,e);do{Wun(n);if(t==0){return 0}i=!i;a=t;LKn(n,e,i,false);t=oHn(n,e)}while(a>t);return a}function sXn(n,e){var t,r,i,a;i=bRn(n.d,1)!=0;r=XAn(n,e);if(r==0&&lM(yK(lIn(e.j,(WYn(),sDe))))){return 0}!lM(yK(lIn(e.j,(WYn(),sDe))))&&!lM(yK(lIn(e.j,FDe)))||BA(lIn(e.j,(IYn(),zKe)))===BA((Smn(),hHe))?e.c.mg(e.e,i):i=lM(yK(lIn(e.j,sDe)));LKn(n,e,i,true);lM(yK(lIn(e.j,FDe)))&&Ehn(e.j,FDe,(Qx(),false));if(lM(yK(lIn(e.j,sDe)))){Ehn(e.j,sDe,(Qx(),false));Ehn(e.j,FDe,true)}t=XAn(n,e);do{Wun(n);if(t==0){return 0}i=!i;a=t;LKn(n,e,i,false);t=XAn(n,e)}while(a>t);return a}function oXn(n,e,r,i){var a,c,u,s,o,f,h,l,b;o=r_(new PO(r.a,r.b),n);f=o.a*e.b-o.b*e.a;h=e.a*i.b-e.b*i.a;l=(o.a*i.b-o.b*i.a)/h;b=f/h;if(h==0){if(f==0){a=t_(new PO(r.a,r.b),jD(new PO(i.a,i.b),.5));c=hen(n,a);u=hen(t_(new PO(n.a,n.b),e),a);s=t.Math.sqrt(i.a*i.a+i.b*i.b)*.5;if(c=0&&l<=1&&b>=0&&b<=1?t_(new PO(n.a,n.b),jD(new PO(e.a,e.b),l)):null}}function fXn(n,e,t){var r,i,a,c,u;r=bG(lIn(n,(IYn(),WKe)),21);t.a>e.a&&(r.Hc((iPn(),a4e))?n.c.a+=(t.a-e.a)/2:r.Hc(u4e)&&(n.c.a+=t.a-e.a));t.b>e.b&&(r.Hc((iPn(),o4e))?n.c.b+=(t.b-e.b)/2:r.Hc(s4e)&&(n.c.b+=t.b-e.b));if(bG(lIn(n,(WYn(),oDe)),21).Hc((o_n(),M$e))&&(t.a>e.a||t.b>e.b)){for(u=new nd(n.a);u.ae.a&&(r.Hc((iPn(),a4e))?n.c.a+=(t.a-e.a)/2:r.Hc(u4e)&&(n.c.a+=t.a-e.a));t.b>e.b&&(r.Hc((iPn(),o4e))?n.c.b+=(t.b-e.b)/2:r.Hc(s4e)&&(n.c.b+=t.b-e.b));if(bG(lIn(n,(WYn(),oDe)),21).Hc((o_n(),M$e))&&(t.a>e.a||t.b>e.b)){for(c=new nd(n.a);c.a0?n.i:0)>e&&o>0){c=0;u+=o+n.i;a=t.Math.max(a,b);i+=o+n.i;o=0;b=0;if(r){++l;ED(n.n,new f0(n.s,u,n.i))}s=0}b+=f.g+(s>0?n.i:0);o=t.Math.max(o,f.f);r&&YMn(bG(Yq(n.n,l),209),f);c+=f.g+(s>0?n.i:0);++s}a=t.Math.max(a,b);i+=o;if(r){n.r=a;n.d=i;sjn(n.j)}return new yY(n.s,n.t,a,i)}function wXn(n){var e,r,i,a,c,u,s,o,f,h,l,b;n.b=false;l=y0n;o=M0n;b=y0n;f=M0n;for(i=n.e.a.ec().Kc();i.Ob();){r=bG(i.Pb(),272);a=r.a;l=t.Math.min(l,a.c);o=t.Math.max(o,a.c+a.b);b=t.Math.min(b,a.d);f=t.Math.max(f,a.d+a.a);for(u=new nd(r.c);u.an.o.a){h=(o-n.o.a)/2;s.b=t.Math.max(s.b,h);s.c=t.Math.max(s.c,h)}}function mXn(n){var e,t,r,i,a,c,u,s;a=new o4;rN(a,(nhn(),o2e));for(r=(i=rsn(n,$nn(vle,XZn,2,0,6,1)),new td(new $M(new tS(n,i).b)));r.bu?1:-1:Vln(n.a,e.a,a);if(i==-1){h=-s;f=c==s?c7(e.a,u,n.a,a):Nnn(e.a,u,n.a,a)}else{h=c;if(c==s){if(i==0){return fHn(),Rle}f=c7(n.a,a,e.a,u)}else{f=Nnn(n.a,a,e.a,u)}}o=new Zz(h,f.length,f);U4(o);return o}function jXn(n,e){var t,r,i,a;a=LGn(e);!e.c&&(e.c=new gz(ont,e,9,9));ES(new gX(null,(!e.c&&(e.c=new gz(ont,e,9,9)),new d3(e.c,16))),new tg(a));i=bG(lIn(a,(WYn(),oDe)),21);NWn(e,i);if(i.Hc((o_n(),M$e))){for(r=new _D((!e.c&&(e.c=new gz(ont,e,9,9)),e.c));r.e!=r.i.gc();){t=bG(iyn(r),123);MQn(n,e,a,t)}}bG(YDn(e,(IYn(),r_e)),181).gc()!=0&&b_n(e,a);lM(yK(lIn(a,f_e)))&&i.Fc(P$e);jR(a,N_e)&&sM(new lpn(bM(MK(lIn(a,N_e)))),a);BA(YDn(e,SFe))===BA((Dwn(),U5e))?zYn(n,e,a):kYn(n,e,a);return a}function EXn(n){var e,t,r,i,a,c,u,s;for(i=new nd(n.b);i.a0?o1(t.a,0,a-1):""}}else{return!t?n:t.a}}function PXn(n,e){var t,r,i,a,c,u,s;e.Ug("Sort By Input Model "+lIn(n,(IYn(),zKe)),1);i=0;for(r=new nd(n.b);r.a=n.b.length){a[i++]=c.b[r++];a[i++]=c.b[r++]}else if(r>=c.b.length){a[i++]=n.b[t++];a[i++]=n.b[t++]}else if(c.b[r]0?n.i:0)}++e}kgn(n.n,o);n.d=r;n.r=i;n.g=0;n.f=0;n.e=0;n.o=y0n;n.p=y0n;for(c=new nd(n.b);c.a0){i=(!n.n&&(n.n=new gz(unt,n,1,7)),bG(Yin(n.n,0),135)).a;!i||tL(tL((e.a+=' "',e),i),'"')}}else{tL(tL((e.a+=' "',e),r),'"')}t=(!n.b&&(n.b=new g_(B7e,n,4,7)),!(n.b.i<=1&&(!n.c&&(n.c=new g_(B7e,n,5,8)),n.c.i<=1)));t?(e.a+=" [",e):(e.a+=" ",e);tL(e,UD(new GM,new _D(n.b)));t&&(e.a+="]",e);e.a+=J4n;t&&(e.a+="[",e);tL(e,UD(new GM,new _D(n.c)));t&&(e.a+="]",e);return e.a}function LXn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S;y=n.c;M=e.c;t=Ctn(y.a,n,0);r=Ctn(M.a,e,0);m=bG(Ipn(n,(fcn(),kHe)).Kc().Pb(),12);E=bG(Ipn(n,yHe).Kc().Pb(),12);k=bG(Ipn(e,kHe).Kc().Pb(),12);S=bG(Ipn(e,yHe).Kc().Pb(),12);v=B4(m.e);T=B4(E.g);p=B4(k.e);j=B4(S.g);Fjn(n,r,M);for(c=p,f=0,w=c.length;fh){new x2((q7(),yXe),r,e,f-h)}else if(f>0&&h>0){new x2((q7(),yXe),e,r,0);new x2(yXe,r,e,0)}}return u}function xXn(n,e,t){var r,i,a;n.a=new im;for(a=Gkn(e.b,0);a.b!=a.d.c;){i=bG($6(a),40);while(bG(lIn(i,(eqn(),_We)),17).a>n.a.c.length-1){ED(n.a,new nA(_3n,U9n))}r=bG(lIn(i,_We),17).a;if(t==(Bdn(),o5e)||t==f5e){i.e.abM(MK(bG(Yq(n.a,r),42).b))&&ww(bG(Yq(n.a,r),42),i.e.a+i.f.a)}else{i.e.bbM(MK(bG(Yq(n.a,r),42).b))&&ww(bG(Yq(n.a,r),42),i.e.b+i.f.b)}}}function RXn(n,e,t,r){var i,a,c,u,s,o,f;a=Mgn(r);u=lM(yK(lIn(r,(IYn(),XFe))));if((u||lM(yK(lIn(n,OFe))))&&!wN(bG(lIn(n,m_e),101))){i=$vn(a);s=JUn(n,t,t==(fcn(),yHe)?i:Wdn(i))}else{s=new vOn;l2(s,n);if(e){f=s.n;f.a=e.a-n.n.a;f.b=e.b-n.n.b;_On(f,0,0,n.o.a,n.o.b);KLn(s,iGn(s,a))}else{i=$vn(a);KLn(s,t==(fcn(),yHe)?i:Wdn(i))}c=bG(lIn(r,(WYn(),oDe)),21);o=s.j;switch(a.g){case 2:case 1:(o==(UQn(),D8e)||o==Y8e)&&c.Fc((o_n(),S$e));break;case 4:case 3:(o==(UQn(),$8e)||o==n9e)&&c.Fc((o_n(),S$e))}}return s}function KXn(n,e){var r,i,a,c,u,s;for(u=new pon(new Kw(n.f.b).a);u.b;){c=jun(u);a=bG(c.ld(),602);if(e==1){if(a.Af()!=(Bdn(),l5e)&&a.Af()!=s5e){continue}}else{if(a.Af()!=(Bdn(),o5e)&&a.Af()!=f5e){continue}}i=bG(bG(c.md(),42).b,86);s=bG(bG(c.md(),42).a,194);r=s.c;switch(a.Af().g){case 2:i.g.c=n.e.a;i.g.b=t.Math.max(1,i.g.b+r);break;case 1:i.g.c=i.g.c+r;i.g.b=t.Math.max(1,i.g.b-r);break;case 4:i.g.d=n.e.b;i.g.a=t.Math.max(1,i.g.a+r);break;case 3:i.g.d=i.g.d+r;i.g.a=t.Math.max(1,i.g.a-r)}}}function FXn(n,e){var r,i,a,c,u,s,o,f,h,l,b,w,d,g;s=$nn(Ght,z1n,28,e.b.c.length,15,1);f=$nn(aEe,g1n,273,e.b.c.length,0,1);o=$nn(Yje,e6n,10,e.b.c.length,0,1);for(l=n.a,b=0,w=l.length;b0&&!!o[i]&&(d=S$(n.b,o[i],a));g=t.Math.max(g,a.c.c.b+d)}for(c=new nd(h.e);c.a1){throw dm(new jM(bae))}if(!s){a=H5(e,r.Kc().Pb());c.Fc(a)}}return phn(n,wAn(n,e,t),c)}function XXn(n,e,t){var r,i,a,c,u,s,o,f;if(OFn(n.e,e)){s=(LP(),bG(e,69).xk()?new Nq(e,n):new DA(e,n));N$n(s.c,s.b);U$(s,bG(t,16))}else{f=ZKn(n.e.Dh(),e);r=bG(n.g,124);for(c=0;c"}s!=null&&(e.a+=""+s,e)}else if(n.e){u=n.e.zb;u!=null&&(e.a+=""+u,e)}else{e.a+="?";if(n.b){e.a+=" super ";QXn(n.b,e)}else{if(n.f){e.a+=" extends ";QXn(n.f,e)}}}}function JXn(n){n.b=null;n.a=null;n.o=null;n.q=null;n.v=null;n.w=null;n.B=null;n.p=null;n.Q=null;n.R=null;n.S=null;n.T=null;n.U=null;n.V=null;n.W=null;n.bb=null;n.eb=null;n.ab=null;n.H=null;n.db=null;n.c=null;n.d=null;n.f=null;n.n=null;n.r=null;n.s=null;n.u=null;n.G=null;n.J=null;n.e=null;n.j=null;n.i=null;n.g=null;n.k=null;n.t=null;n.F=null;n.I=null;n.L=null;n.M=null;n.O=null;n.P=null;n.$=null;n.N=null;n.Z=null;n.cb=null;n.K=null;n.D=null;n.A=null;n.C=null;n._=null;n.fb=null;n.X=null;n.Y=null;n.gb=false;n.hb=false}function YXn(n){var e,r,i,a;i=pYn((!n.c&&(n.c=I2(Xon(n.f))),n.c),0);if(n.e==0||n.a==0&&n.f!=-1&&n.e<0){return i}e=asn(n)<0?1:0;r=n.e;a=(i.length+1+t.Math.abs(c0(n.e)),new eT);e==1&&(a.a+="-",a);if(n.e>0){r-=i.length-e;if(r>=0){a.a+="0.";for(;r>jle.length;r-=jle.length){Jq(a,jle)}vF(a,jle,c0(r));tL(a,(w3(e,i.length+1),i.substr(e)))}else{r=e-r;tL(a,o1(i,e,c0(r)));a.a+=".";tL(a,wQ(i,c0(r)))}}else{tL(a,(w3(e,i.length+1),i.substr(e)));for(;r<-jle.length;r+=jle.length){Jq(a,jle)}vF(a,jle,c0(-r))}return a.a}function ZXn(n){var e,t,r,i,a,c,u,s,o;if(n.k!=(YIn(),rEe)){return false}if(n.j.c.length<=1){return false}a=bG(lIn(n,(IYn(),m_e)),101);if(a==(FPn(),m8e)){return false}i=(rMn(),(!n.q?(dZ(),dZ(),bbe):n.q)._b(n_e)?r=bG(lIn(n,n_e),203):r=bG(lIn(VQ(n),e_e),203),r);if(i==BBe){return false}if(!(i==_Be||i==FBe)){c=bM(MK(Dpn(n,J_e)));e=bG(lIn(n,Q_e),140);!e&&(e=new DF(c,c,c,c));o=_gn(n,(UQn(),n9e));s=e.d+e.a+(o.gc()-1)*c;if(s>n.o.b){return false}t=_gn(n,$8e);u=e.d+e.a+(t.gc()-1)*c;if(u>n.o.b){return false}}return true}function nVn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,d,g;e.Ug("Orthogonal edge routing",1);o=bM(MK(lIn(n,(IYn(),z_e))));t=bM(MK(lIn(n,K_e)));r=bM(MK(lIn(n,B_e)));l=new KW(0,t);g=0;c=new K4(n.b,0);u=null;f=null;s=null;h=null;do{f=c.b0){b=(w-1)*t;!!u&&(b+=r);!!f&&(b+=r);be||lM(yK(YDn(s,(A_n(),yZe))))){i=0;a+=f.b+t;Tm(h.c,f);f=new u4(a,t);r=new kln(0,f.f,f,t);gcn(f,r);i=0}if(r.b.c.length==0||!lM(yK(YDn(H0(s),(A_n(),IZe))))&&(s.f>=r.o&&s.f<=r.f||r.a*.5<=s.f&&r.a*1.5>=s.f)){svn(r,s)}else{c=new kln(r.s+r.r+t,f.f,f,t);gcn(f,c);svn(c,s)}i=s.i+s.g}Tm(h.c,f);return h}function bVn(n){var e,t,r,i;if(n.b==null||n.b.length<=2)return;if(n.a)return;e=0;i=0;while(i=n.b[i+1]){i+=2}else if(t0){r=new iB(bG(r7(n.a,a),21));dZ();g$(r,new Wd(e));i=new K4(a.b,0);while(i.b0&&r>=-6){if(r>=0){Ox(a,t-c0(n.e),String.fromCharCode(46))}else{Mon(a,e-1,e-1,"0.");Ox(a,e+1,Tmn(jle,0,-c0(r)-1))}}else{if(t-e>=1){Ox(a,e,String.fromCharCode(46));++t}Ox(a,t,String.fromCharCode(69));r>0&&Ox(a,++t,String.fromCharCode(43));Ox(a,++t,""+lz(Xon(r)))}n.g=a.a;return n.g}function kVn(n,e){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j;i=bM(MK(lIn(e,(IYn(),ZFe))));M=bG(lIn(e,Y_e),17).a;b=4;a=3;T=20/M;w=false;o=0;u=pZn;do{c=o!=1;l=o!=0;j=0;for(v=n.a,m=0,y=v.length;mM)){o=2;u=pZn}else if(o==0){o=1;u=j}else{o=0;u=j}}else{w=j>=u||u-j0?1:UL(isNaN(i),isNaN(0)))>=0^(null,lcn(C9n),(t.Math.abs(s)<=C9n||s==0||isNaN(s)&&isNaN(0)?0:s<0?-1:s>0?1:UL(isNaN(s),isNaN(0)))>=0)){return t.Math.max(s,i)}lcn(C9n);if((t.Math.abs(i)<=C9n||i==0||isNaN(i)&&isNaN(0)?0:i<0?-1:i>0?1:UL(isNaN(i),isNaN(0)))>0){return t.Math.sqrt(s*s+i*i)}return-t.Math.sqrt(s*s+i*i)}function jVn(n,e){var t,r,i,a,c,u;if(!e)return;!n.a&&(n.a=new fk);if(n.e==2){Ym(n.a,e);return}if(e.e==1){for(i=0;i=S0n?ZA(t,Dgn(r)):CQ(t,r&$1n);c=(++Tht,new G1(10,null,0));Wz(n.a,c,u-1)}else{t=(c.Mm().length+a,new ZM);ZA(t,c.Mm())}if(e.e==0){r=e.Km();r>=S0n?ZA(t,Dgn(r)):CQ(t,r&$1n)}else{ZA(t,e.Mm())}bG(c,530).b=t.a}function EVn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b,w,d,g;if(t.dc()){return}u=0;l=0;r=t.Kc();w=bG(r.Pb(),17).a;while(u1&&(s=o.Hg(s,n.a,u))}if(s.c.length==1){return bG(Yq(s,s.c.length-1),238)}if(s.c.length==2){return cVn((b3(0,s.c.length),bG(s.c[0],238)),(b3(1,s.c.length),bG(s.c[1],238)),c,a)}return null}function OVn(n,e,t){var r,i,a,c,u,s,o;t.Ug("Find roots",1);n.a.c.length=0;for(i=Gkn(e.b,0);i.b!=i.d.c;){r=bG($6(i),40);if(r.b.b==0){Ehn(r,(DQn(),Jze),(Qx(),true));ED(n.a,r)}}switch(n.a.c.length){case 0:a=new mln(0,e,"DUMMY_ROOT");Ehn(a,(DQn(),Jze),(Qx(),true));Ehn(a,Lze,true);hq(e.b,a);break;case 1:break;default:c=new mln(0,e,B9n);for(s=new nd(n.a);s.a=t.Math.abs(i.b)){i.b=0;c.d+c.a>u.d&&c.du.c&&c.c0){e=new xA(n.i,n.g);t=n.i;a=t<100?null:new fj(t);if(n.Tj()){for(r=0;r0){u=n.g;o=n.i;Z9(n);a=o<100?null:new fj(o);for(r=0;r>13|(n.m&15)<<9;i=n.m>>4&8191;a=n.m>>17|(n.h&255)<<5;c=(n.h&1048320)>>8;u=e.l&8191;s=e.l>>13|(e.m&15)<<9;o=e.m>>4&8191;f=e.m>>17|(e.h&255)<<5;h=(e.h&1048320)>>8;j=t*u;E=r*u;S=i*u;P=a*u;C=c*u;if(s!=0){E+=t*s;S+=r*s;P+=i*s;C+=a*s}if(o!=0){S+=t*o;P+=r*o;C+=i*o}if(f!=0){P+=t*f;C+=r*f}h!=0&&(C+=t*h);b=j&f0n;w=(E&511)<<13;l=b+w;g=j>>22;v=E>>9;p=(S&262143)<<4;m=(P&31)<<17;d=g+v+p+m;y=S>>18;M=P>>5;T=(C&4095)<<8;k=y+M+T;d+=l>>22;l&=f0n;k+=d>>22;d&=f0n;k&=h0n;return M$(l,d,k)}function xVn(n){var e,r,i,a,c,u,s;s=bG(Yq(n.j,0),12);if(s.g.c.length!=0&&s.e.c.length!=0){throw dm(new EM("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."))}if(s.g.c.length!=0){c=y0n;for(r=new nd(s.g);r.a4){if(n.fk(e)){if(n.al()){i=bG(e,54);r=i.Eh();s=r==n.e&&(n.ml()?i.yh(i.Fh(),n.il())==n.jl():-1-i.Fh()==n.Lj());if(n.nl()&&!s&&!r&&!!i.Jh()){for(a=0;a0&&aAn(n,u,h)}for(i=new nd(h);i.an.d[c.p]){t+=t9(n.b,a)*bG(s.b,17).a;x6(n.a,Bwn(a))}}while(!RM(n.a)){vrn(n.b,bG(Bz(n.a),17).a)}}return t}function _Vn(n,e){var t,r,i,a,c,u,s,o,f,h;f=bG(lIn(n,(WYn(),cDe)),64);r=bG(Yq(n.j,0),12);f==(UQn(),D8e)?KLn(r,Y8e):f==Y8e&&KLn(r,D8e);if(bG(lIn(e,(IYn(),r_e)),181).Hc((emn(),b9e))){s=bM(MK(lIn(n,q_e)));o=bM(MK(lIn(n,X_e)));c=bM(MK(lIn(n,U_e)));u=bG(lIn(e,M_e),21);if(u.Hc((uNn(),C8e))){t=o;h=n.o.a/2-r.n.a;for(a=new nd(r.f);a.a0&&(o=n.n.a/a);break;case 2:case 4:i=n.i.o.b;i>0&&(o=n.n.b/i)}Ehn(n,(WYn(),$De),o)}s=n.o;c=n.a;if(r){c.a=r.a;c.b=r.b;n.d=true}else if(e!=M8e&&e!=T8e&&u!=Z8e){switch(u.g){case 1:c.a=s.a/2;break;case 2:c.a=s.a;c.b=s.b/2;break;case 3:c.a=s.a/2;c.b=s.b;break;case 4:c.b=s.b/2}}else{c.a=s.a/2;c.b=s.b/2}}function qVn(n){var e,t,r,i,a,c,u,s,o,f;if(n.Pj()){f=n.Ej();s=n.Qj();if(f>0){e=new Vsn(n.pj());t=f;a=t<100?null:new fj(t);eF(n,t,e.g);i=t==1?n.Ij(4,Yin(e,0),null,0,s):n.Ij(6,e,null,-1,s);if(n.Mj()){for(r=new _D(e);r.e!=r.i.gc();){a=n.Oj(iyn(r),a)}if(!a){n.Jj(i)}else{a.nj(i);a.oj()}}else{if(!a){n.Jj(i)}else{a.nj(i);a.oj()}}}else{eF(n,n.Ej(),n.Fj());n.Jj(n.Ij(6,(dZ(),lbe),null,-1,s))}}else if(n.Mj()){f=n.Ej();if(f>0){u=n.Fj();o=f;eF(n,f,u);a=o<100?null:new fj(o);for(r=0;r1&&OX(c)*IX(c)/2>u[0]){a=0;while(au[a]){++a}w=new N2(d,0,a+1);h=new tan(w);f=OX(c)/IX(c);s=UJn(h,e,new _k,t,r,i,f);t_(kL(h.e),s);EG(qCn(l,h),$0n);b=new N2(d,a+1,d.c.length);qjn(l,b);d.c.length=0;o=0;YX(u,u.length,0)}else{g=l.b.c.length==0?null:Yq(l.b,0);g!=null&&Nun(l,0);o>0&&(u[o]=u[o-1]);u[o]+=OX(c)*IX(c);++o;Tm(d.c,c)}}return d}function VVn(n,e){var t,r,i,a;t=e.b;a=new iB(t.j);i=0;r=t.j;r.c.length=0;TW(bG(won(n.b,(UQn(),D8e),(yun(),qAe)),15),t);i=fMn(a,i,new Xi,r);TW(bG(won(n.b,D8e,GAe),15),t);i=fMn(a,i,new Fi,r);TW(bG(won(n.b,D8e,UAe),15),t);TW(bG(won(n.b,$8e,qAe),15),t);TW(bG(won(n.b,$8e,GAe),15),t);i=fMn(a,i,new Vi,r);TW(bG(won(n.b,$8e,UAe),15),t);TW(bG(won(n.b,Y8e,qAe),15),t);i=fMn(a,i,new zi,r);TW(bG(won(n.b,Y8e,GAe),15),t);i=fMn(a,i,new Wi,r);TW(bG(won(n.b,Y8e,UAe),15),t);TW(bG(won(n.b,n9e,qAe),15),t);i=fMn(a,i,new Hi,r);TW(bG(won(n.b,n9e,GAe),15),t);TW(bG(won(n.b,n9e,UAe),15),t)}function zVn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b;for(u=new nd(e);u.a.5?p-=u*2*(d-.5):d<.5&&(p+=c*2*(.5-d));a=s.d.b;pv.a-g-h&&(p=v.a-g-h);s.n.a=e+p}}function nzn(n){var e,t,r,i,a;r=bG(lIn(n,(IYn(),KFe)),171);if(r==(Wvn(),QDe)){for(t=new GV(sx(Qgn(n).a.Kc(),new d));dDn(t);){e=bG(K9(t),18);if(!G9(e)){throw dm(new IM(k6n+ijn(n)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+"FIRST_SEPARATE nodes must not have incoming edges."))}}}else if(r==YDe){for(a=new GV(sx(Jgn(n).a.Kc(),new d));dDn(a);){i=bG(K9(a),18);if(!G9(i)){throw dm(new IM(k6n+ijn(n)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+"LAST_SEPARATE nodes must not have outgoing edges."))}}}}function ezn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w;if(n.e&&n.c.c>19!=0){e=yhn(e);s=!s}c=ERn(e);a=false;i=false;r=false;if(n.h==l0n&&n.m==0&&n.l==0){i=true;a=true;if(c==-1){n=RL((crn(),Phe));r=true;s=!s}else{u=yDn(n,c);s&&rln(u);t&&(She=M$(0,0,0));return u}}else if(n.h>>19!=0){a=true;n=yhn(n);r=true;s=!s}if(c!=-1){return aln(n,c,s,a,t)}if(SEn(n,e)<0){t&&(a?She=yhn(n):She=M$(n.l,n.m,n.h));return M$(0,0,0)}return yUn(r?n:M$(n.l,n.m,n.h),e,s,a,i,t)}function izn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w;c=n.e;s=e.e;if(c==0){return e}if(s==0){return n}a=n.d;u=e.d;if(a+u==2){t=O3(n.a[0],A0n);r=O3(e.a[0],A0n);if(c==s){f=Rgn(t,r);w=MV(f);b=MV(_V(f,32));return b==0?new i8(c,w):new Zz(c,2,zfn(fT(Ght,1),z1n,28,15,[w,b]))}return fHn(),XA(c<0?Fgn(r,t):Fgn(t,r),0)?Hpn(c<0?Fgn(r,t):Fgn(t,r)):dW(Hpn(Ptn(c<0?Fgn(r,t):Fgn(t,r))))}else if(c==s){l=c;h=a>=u?Nnn(n.a,a,e.a,u):Nnn(e.a,u,n.a,a)}else{i=a!=u?a>u?1:-1:Vln(n.a,e.a,a);if(i==0){return fHn(),Rle}if(i==1){l=c;h=c7(n.a,a,e.a,u)}else{l=s;h=c7(e.a,u,n.a,a)}}o=new Zz(l,h.length,h);U4(o);return o}function azn(n,e){var t,r,i,a,c,u,s;if(n.g>e.f||e.g>n.f){return}t=0;r=0;for(c=n.w.a.ec().Kc();c.Ob();){i=bG(c.Pb(),12);nwn(Whn(zfn(fT(D3e,1),XZn,8,0,[i.i.n,i.n,i.a])).b,e.g,e.f)&&++t}for(u=n.r.a.ec().Kc();u.Ob();){i=bG(u.Pb(),12);nwn(Whn(zfn(fT(D3e,1),XZn,8,0,[i.i.n,i.n,i.a])).b,e.g,e.f)&&--t}for(s=e.w.a.ec().Kc();s.Ob();){i=bG(s.Pb(),12);nwn(Whn(zfn(fT(D3e,1),XZn,8,0,[i.i.n,i.n,i.a])).b,n.g,n.f)&&++r}for(a=e.r.a.ec().Kc();a.Ob();){i=bG(a.Pb(),12);nwn(Whn(zfn(fT(D3e,1),XZn,8,0,[i.i.n,i.n,i.a])).b,n.g,n.f)&&--r}if(t=0){return t}switch(wJ(Ktn(n,t))){case 2:{if(T_("",cdn(n,t.qk()).xe())){s=VJ(Ktn(n,t));u=XJ(Ktn(n,t));f=dxn(n,e,s,u);if(f){return f}i=xHn(n,e);for(c=0,h=i.gc();c1){throw dm(new jM(bae))}f=ZKn(n.e.Dh(),e);r=bG(n.g,124);for(c=0;c1;for(f=new m7(b.b);v$(f.a)||v$(f.b);){o=bG(v$(f.a)?K3(f.a):K3(f.b),18);l=o.c==b?o.d:o.c;t.Math.abs(Whn(zfn(fT(D3e,1),XZn,8,0,[l.i.n,l.n,l.a])).b-u.b)>1&&wFn(n,o,u,c,b)}}}function lzn(n){var e,r,i,a,c,u;a=new K4(n.e,0);i=new K4(n.a,0);if(n.d){for(r=0;rN9n){c=e;u=0;while(t.Math.abs(e-c)0);a.a.Xb(a.c=--a.b);YGn(n,n.b-u,c,i,a);PK(a.b0);i.a.Xb(i.c=--i.b)}if(!n.d){for(r=0;r0){n.f[h.p]=w/(h.e.c.length+h.g.c.length);n.c=t.Math.min(n.c,n.f[h.p]);n.b=t.Math.max(n.b,n.f[h.p])}else s&&(n.f[h.p]=w)}}function dzn(n){n.b=null;n.bb=null;n.fb=null;n.qb=null;n.a=null;n.c=null;n.d=null;n.e=null;n.f=null;n.n=null;n.M=null;n.L=null;n.Q=null;n.R=null;n.K=null;n.db=null;n.eb=null;n.g=null;n.i=null;n.j=null;n.k=null;n.gb=null;n.o=null;n.p=null;n.q=null;n.r=null;n.$=null;n.ib=null;n.S=null;n.T=null;n.t=null;n.s=null;n.u=null;n.v=null;n.w=null;n.B=null;n.A=null;n.C=null;n.D=null;n.F=null;n.G=null;n.H=null;n.I=null;n.J=null;n.P=null;n.Z=null;n.U=null;n.V=null;n.W=null;n.X=null;n.Y=null;n._=null;n.ab=null;n.cb=null;n.hb=null;n.nb=null;n.lb=null;n.mb=null;n.ob=null;n.pb=null;n.jb=null;n.kb=null;n.N=false;n.O=false}function gzn(n,e,t){var r,i,a,c;t.Ug("Graph transformation ("+n.a+")",1);c=C3(e.a);for(a=new nd(e.b);a.a=u.b.c)&&(u.b=e);if(!u.c||e.c<=u.c.c){u.d=u.c;u.c=e}(!u.e||e.d>=u.e.d)&&(u.e=e);(!u.f||e.d<=u.f.d)&&(u.f=e)}r=new fyn((Jfn(),DTe));D4(n,GTe,new $M(zfn(fT(ITe,1),jZn,382,0,[r])));c=new fyn(KTe);D4(n,UTe,new $M(zfn(fT(ITe,1),jZn,382,0,[c])));i=new fyn(xTe);D4(n,HTe,new $M(zfn(fT(ITe,1),jZn,382,0,[i])));a=new fyn(RTe);D4(n,BTe,new $M(zfn(fT(ITe,1),jZn,382,0,[a])));IRn(r.c,DTe);IRn(i.c,xTe);IRn(a.c,RTe);IRn(c.c,KTe);u.a.c.length=0;Dfn(u.a,r.c);Dfn(u.a,Avn(i.c));Dfn(u.a,a.c);Dfn(u.a,Avn(c.c));return u}function mzn(n,e){var r,i,a,c,u,s,o,f,h,l,b,w,d;e.Ug(sne,1);w=bM(MK(YDn(n,(vBn(),VYe))));u=bM(MK(YDn(n,(A_n(),$Ze))));s=bG(YDn(n,AZe),107);Kun((!n.a&&(n.a=new gz(snt,n,10,11)),n.a));h=lVn((!n.a&&(n.a=new gz(snt,n,10,11)),n.a),w,u);!n.a&&(n.a=new gz(snt,n,10,11));for(f=new nd(h);f.a0){n.a=s+(b-1)*a;e.c.b+=n.a;e.f.b+=n.a}}if(w.a.gc()!=0){l=new KW(1,a);b=rWn(l,e,w,g,e.f.b+s-e.c.b);b>0&&(e.f.b+=s+(b-1)*a)}}function yzn(n,e,r){var i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y;h=bM(MK(lIn(n,(IYn(),__e))));i=bM(MK(lIn(n,aBe)));b=new no;Ehn(b,__e,h+i);f=e;p=f.d;g=f.c.i;m=f.d.i;v=WL(g.c);k=WL(m.c);a=new im;for(l=v;l<=k;l++){s=new yMn(n);Vb(s,(YIn(),tEe));Ehn(s,(WYn(),EDe),f);Ehn(s,m_e,(FPn(),m8e));Ehn(s,H_e,b);w=bG(Yq(n.b,l),30);l==v?Fjn(s,w.a.c.length-r,w):h2(s,w);y=bM(MK(lIn(f,TFe)));if(y<0){y=0;Ehn(f,TFe,y)}s.o.b=y;d=t.Math.floor(y/2);u=new vOn;KLn(u,(UQn(),n9e));l2(u,s);u.n.b=d;o=new vOn;KLn(o,$8e);l2(o,s);o.n.b=d;b2(f,u);c=new zZ;Yon(c,f);Ehn(c,DFe,null);f2(c,o);b2(c,p);$En(s,f,c);Tm(a.c,c);f=c}return a}function Mzn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m;s=bG(SOn(n,(UQn(),n9e)).Kc().Pb(),12).e;b=bG(SOn(n,$8e).Kc().Pb(),12).g;u=s.c.length;m=a3(bG(Yq(n.j,0),12));while(u-- >0){d=(b3(0,s.c.length),bG(s.c[0],18));i=(b3(0,b.c.length),bG(b.c[0],18));p=i.d.e;a=Ctn(p,i,0);m6(d,i.d,a);f2(i,null);b2(i,null);w=d.a;e&&hq(w,new uN(m));for(r=Gkn(i.a,0);r.b!=r.d.c;){t=bG($6(r),8);hq(w,new uN(t))}v=d.b;for(l=new nd(i.b);l.ac)&&Gz(n.b,bG(g.b,18))}}++u}a=c}}}}function jzn(n,e){var t;if(e==null||T_(e,CZn)){return null}if(e.length==0&&n.k!=(vAn(),E3e)){return null}switch(n.k.g){case 1:return Xmn(e,Kne)?(Qx(),Hhe):Xmn(e,Fne)?(Qx(),Bhe):null;case 2:try{return Bwn(TUn(e,T1n,pZn))}catch(r){r=Ofn(r);if(G$(r,130)){return null}else throw dm(r)}case 4:try{return rOn(e)}catch(r){r=Ofn(r);if(G$(r,130)){return null}else throw dm(r)}case 3:return e;case 5:mbn(n);return KNn(n,e);case 6:mbn(n);return Rxn(n,n.a,e);case 7:try{t=eDn(n);t.cg(e);return t}catch(r){r=Ofn(r);if(G$(r,33)){return null}else throw dm(r)}default:throw dm(new EM("Invalid type set for this layout option."))}}function Ezn(n){var e;switch(n.d){case 1:{if(n.Sj()){return n.o!=-2}break}case 2:{if(n.Sj()){return n.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return n.o>-2}default:{return false}}e=n.Rj();switch(n.p){case 0:return e!=null&&lM(yK(e))!=VA(n.k,0);case 1:return e!=null&&bG(e,222).a!=MV(n.k)<<24>>24;case 2:return e!=null&&bG(e,180).a!=(MV(n.k)&$1n);case 6:return e!=null&&VA(bG(e,168).a,n.k);case 5:return e!=null&&bG(e,17).a!=MV(n.k);case 7:return e!=null&&bG(e,191).a!=MV(n.k)<<16>>16;case 3:return e!=null&&bM(MK(e))!=n.j;case 4:return e!=null&&bG(e,161).a!=n.j;default:return e==null?n.n!=null:!bdn(e,n.n)}}function Szn(n,e,t){var r,i,a,c;if(n.ol()&&n.nl()){c=Nz(n,bG(t,58));if(BA(c)!==BA(t)){n.xj(e);n.Dj(e,xen(n,e,c));if(n.al()){a=(i=bG(t,54),n.ml()?n.kl()?i.Th(n.b,vMn(bG(uin(u1(n.b),n.Lj()),19)).n,bG(uin(u1(n.b),n.Lj()).Hk(),29).kk(),null):i.Th(n.b,upn(i.Dh(),vMn(bG(uin(u1(n.b),n.Lj()),19))),null,null):i.Th(n.b,-1-n.Lj(),null,null));!bG(c,54).Ph()&&(a=(r=bG(c,54),n.ml()?n.kl()?r.Rh(n.b,vMn(bG(uin(u1(n.b),n.Lj()),19)).n,bG(uin(u1(n.b),n.Lj()).Hk(),29).kk(),a):r.Rh(n.b,upn(r.Dh(),vMn(bG(uin(u1(n.b),n.Lj()),19))),null,a):r.Rh(n.b,-1-n.Lj(),null,a)));!!a&&a.oj()}bN(n.b)&&n.Jj(n.Ij(9,t,c,e,false));return c}}return t}function Pzn(n){var e,t,r,i,a,c,u,s,o,f;r=new im;for(c=new nd(n.e.a);c.a0&&(u=t.Math.max(u,osn(n.C.b+i.d.b,a)))}else{w=b+h.d.c+n.w+i.d.b;u=t.Math.max(u,(r$(),lcn(Y2n),t.Math.abs(l-a)<=Y2n||l==a||isNaN(l)&&isNaN(a)?0:w/(a-l)))}h=i;l=a;b=c}if(!!n.C&&n.C.c>0){w=b+n.C.c;f&&(w+=h.d.c);u=t.Math.max(u,(r$(),lcn(Y2n),t.Math.abs(l-1)<=Y2n||l==1||isNaN(l)&&isNaN(1)?0:w/(1-l)))}r.n.b=0;r.a.a=u}function Izn(n,e){var r,i,a,c,u,s,o,f,h,l,b,w;r=bG(xJ(n.b,e),127);o=bG(bG(r7(n.r,e),21),87);if(o.dc()){r.n.d=0;r.n.a=0;return}f=n.u.Hc((uNn(),C8e));u=0;n.A.Hc((emn(),b9e))&&EBn(n,e);s=o.Kc();h=null;b=0;l=0;while(s.Ob()){i=bG(s.Pb(),117);c=bM(MK(i.b.of((Wx(),ome))));a=i.b.Mf().b;if(!h){!!n.C&&n.C.d>0&&(u=t.Math.max(u,osn(n.C.d+i.d.d,c)))}else{w=l+h.d.a+n.w+i.d.d;u=t.Math.max(u,(r$(),lcn(Y2n),t.Math.abs(b-c)<=Y2n||b==c||isNaN(b)&&isNaN(c)?0:w/(c-b)))}h=i;b=c;l=a}if(!!n.C&&n.C.a>0){w=l+n.C.a;f&&(w+=h.d.a);u=t.Math.max(u,(r$(),lcn(Y2n),t.Math.abs(b-1)<=Y2n||b==1||isNaN(b)&&isNaN(1)?0:w/(1-b)))}r.n.d=0;r.a.b=u}function Ozn(n,e,t,r,i,a,c,u){var s,o,f,h,l,b,w,d,g,v;w=false;o=fKn(t.q,e.f+e.b-t.q.f);b=r.f>e.b&&u;v=i-(t.q.e+o-c);h=(s=bXn(r,v,false),s.a);if(b&&h>r.f){return false}if(b){l=0;for(g=new nd(e.d);g.a=(b3(a,n.c.length),bG(n.c[a],186)).e;if(!b&&h>e.b&&!f){return false}if(f||b||h<=e.b){if(f&&h>e.b){t.d=h;ken(t,OOn(t,h))}else{zSn(t.q,o);t.c=true}ken(r,i-(t.s+t.r));lMn(r,t.q.e+t.q.d,e.f);gcn(e,r);if(n.c.length>a){bEn((b3(a,n.c.length),bG(n.c[a],186)),r);(b3(a,n.c.length),bG(n.c[a],186)).a.c.length==0&&s7(n,a)}w=true}return w}function Azn(n,e,t){var r,i,a,c,u,s;this.g=n;u=e.d.length;s=t.d.length;this.d=$nn(Yje,e6n,10,u+s,0,1);for(c=0;c0?Hin(this,this.f/this.a):lD(e.g,e.d[0]).a!=null&&lD(t.g,t.d[0]).a!=null?Hin(this,(bM(lD(e.g,e.d[0]).a)+bM(lD(t.g,t.d[0]).a))/2):lD(e.g,e.d[0]).a!=null?Hin(this,lD(e.g,e.d[0]).a):lD(t.g,t.d[0]).a!=null&&Hin(this,lD(t.g,t.d[0]).a)}function Lzn(n,e){var t,r,i,a,c,u,s,o,f,h;n.a=new mQ(uhn(b5e));for(r=new nd(e.a);r.a=1){if(g-c>0&&h>=0){s.n.a+=d;s.n.b+=a*c}else if(g-c<0&&f>=0){s.n.a+=d*g;s.n.b+=a}}}n.o.a=e.a;n.o.b=e.b;Ehn(n,(IYn(),r_e),(emn(),r=bG(Pj(w9e),9),new aB(r,bG(PF(r,r.length),9),0)))}function Rzn(n,e,t,r,i,a){var c;if(!(e==null||!Tvn(e,irt,art))){throw dm(new jM("invalid scheme: "+e))}if(!n&&!(t!=null&&BL(t,FCn(35))==-1&&t.length>0&&(w3(0,t.length),t.charCodeAt(0)!=47))){throw dm(new jM("invalid opaquePart: "+t))}if(n&&!(e!=null&&iS(hrt,e.toLowerCase()))&&!(t==null||!Tvn(t,urt,srt))){throw dm(new jM(Xre+t))}if(n&&e!=null&&iS(hrt,e.toLowerCase())&&!pPn(t)){throw dm(new jM(Xre+t))}if(!Lvn(r)){throw dm(new jM("invalid device: "+r))}if(!twn(i)){c=i==null?"invalid segments: null":"invalid segment: "+Rbn(i);throw dm(new jM(c))}if(!(a==null||BL(a,FCn(35))==-1)){throw dm(new jM("invalid query: "+a))}}function Kzn(n,e,r){var i,a,c,u,s,o,f,h,l,b,w,d,g,v,p;r.Ug("Network simplex layering",1);n.b=e;p=bG(lIn(e,(IYn(),Y_e)),17).a*4;v=n.b.a;if(v.c.length<1){r.Vg();return}c=BHn(n,v);g=null;for(a=Gkn(c,0);a.b!=a.d.c;){i=bG($6(a),15);s=p*c0(t.Math.sqrt(i.gc()));u=mUn(i);tUn(ET(PT(ST(qB(u),s),g),true),r.eh(1));b=n.b.b;for(d=new nd(u.a);d.a1){g=$nn(Ght,z1n,28,n.b.b.c.length,15,1);l=0;for(f=new nd(n.b.b);f.a0){$kn(n,t,0);t.a+=String.fromCharCode(r);i=Qmn(e,a);$kn(n,t,i);a+=i-1;continue}if(r==39){if(a+10&&w.a<=0){s.c.length=0;Tm(s.c,w);break}b=w.i-w.d;if(b>=u){if(b>u){s.c.length=0;u=b}Tm(s.c,w)}}if(s.c.length!=0){c=bG(Yq(s,sMn(i,s.c.length)),118);m.a.Bc(c)!=null;c.g=f++;zGn(c,e,t,r);s.c.length=0}}g=n.c.length+1;for(l=new nd(n);l.aM0n||e.o==Aqe&&f=u&&i<=s){if(u<=i&&a<=s){t[f++]=i;t[f++]=a;r+=2}else if(u<=i){t[f++]=i;t[f++]=s;n.b[r]=s+1;c+=2}else if(a<=s){t[f++]=u;t[f++]=a;r+=2}else{t[f++]=u;t[f++]=s;n.b[r]=s+1}}else if(sM1n)&&s<10);OT(n.c,new Se);qzn(n);rW(n.c);vzn(n.f)}function Jzn(n,e){var r,i,a,c,u,s,o,f,h,l,b,w,d,g;r=bG(lIn(n,(IYn(),m_e)),101);u=n.f;c=n.d;s=u.a+c.b+c.c;o=0-c.d-n.c.b;h=u.b+c.d+c.a-n.c.b;f=new im;l=new im;for(a=new nd(e);a.a=2){s=Gkn(t,0);c=bG($6(s),8);u=bG($6(s),8);while(u.a0&&dhn(o,true,(Bdn(),f5e));u.k==(YIn(),nEe)&&JQ(o);jJ(n.f,u,e)}}}function nWn(n){var e,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y;a=bG(lIn(n,(DQn(),qze)),27);f=pZn;h=pZn;s=T1n;o=T1n;for(k=Gkn(n.b,0);k.b!=k.d.c;){p=bG($6(k),40);w=p.e;d=p.f;f=t.Math.min(f,w.a-d.a/2);h=t.Math.min(h,w.b-d.b/2);s=t.Math.max(s,w.a+d.a/2);o=t.Math.max(o,w.b+d.b/2)}b=bG(YDn(a,(eqn(),SWe)),107);for(m=Gkn(n.b,0);m.b!=m.d.c;){p=bG($6(m),40);l=lIn(p,qze);if(G$(l,207)){c=bG(l,27);EN(c,p.e.a,p.e.b);hKn(c,p)}}for(v=Gkn(n.a,0);v.b!=v.d.c;){g=bG($6(v),65);i=bG(lIn(g,qze),74);if(i){e=g.a;r=t_n(i,true,true);wqn(e,r)}}y=s-f+(b.b+b.c);u=o-h+(b.d+b.a);lM(yK(YDn(a,(JYn(),Z4e))))||iJn(a,y,u,false,false);Pyn(a,y4e,y-(b.b+b.c));Pyn(a,k4e,u-(b.d+b.a))}function eWn(n,e){var t,r,i,a,c,u,s,o,f,h;s=true;i=0;o=n.g[e.p];f=e.o.b+n.o;t=n.d[e.p][2];r9(n.b,o,Bwn(bG(Yq(n.b,o),17).a-1+t));r9(n.c,o,bM(MK(Yq(n.c,o)))-f+t*n.f);++o;if(o>=n.j){++n.j;ED(n.b,Bwn(1));ED(n.c,f)}else{r=n.d[e.p][1];r9(n.b,o,Bwn(bG(Yq(n.b,o),17).a+1-r));r9(n.c,o,bM(MK(Yq(n.c,o)))+f-r*n.f)}(n.r==(CHn(),eHe)&&(bG(Yq(n.b,o),17).a>n.k||bG(Yq(n.b,o-1),17).a>n.k)||n.r==iHe&&(bM(MK(Yq(n.c,o)))>n.n||bM(MK(Yq(n.c,o-1)))>n.n))&&(s=false);for(c=new GV(sx(Qgn(e).a.Kc(),new d));dDn(c);){a=bG(K9(c),18);u=a.c.i;if(n.g[u.p]==o){h=eWn(n,u);i=i+bG(h.a,17).a;s=s&&lM(yK(h.b))}}n.g[e.p]=o;i=i+n.d[e.p][0];return new nA(Bwn(i),(Qx(),s?true:false))}function tWn(n,e){var t,r,i,a,c;t=bM(MK(lIn(e,(IYn(),R_e))));t<2&&Ehn(e,R_e,2);r=bG(lIn(e,oFe),88);r==(Bdn(),h5e)&&Ehn(e,oFe,Mgn(e));i=bG(lIn(e,A_e),17);i.a==0?Ehn(e,(WYn(),xDe),new zvn):Ehn(e,(WYn(),xDe),new j8(i.a));a=yK(lIn(e,YFe));a==null&&Ehn(e,YFe,(Qx(),BA(lIn(e,gFe))===BA((qgn(),k5e))?true:false));ES(new gX(null,new d3(e.a,16)),new Vd(n));ES(wrn(new gX(null,new d3(e.b,16)),new ke),new zd(n));c=new Nzn(e);Ehn(e,(WYn(),BDe),c);qJ(n.a);tW(n.a,(bIn(),rTe),bG(lIn(e,uFe),188));tW(n.a,iTe,bG(lIn(e,GFe),188));tW(n.a,aTe,bG(lIn(e,cFe),188));tW(n.a,cTe,bG(lIn(e,t_e),188));tW(n.a,uTe,Hon(bG(lIn(e,gFe),223)));iN(n.a,sYn(e));Ehn(e,DDe,ezn(n.a,e))}function rWn(n,e,r,i,a){var c,u,s,o,f,h,l,b,w,d,g,v,p;l=new rm;u=new im;VAn(n,r,n.d.Ag(),u,l);VAn(n,i,n.d.Bg(),u,l);n.b=.2*(g=_Dn(wrn(new gX(null,new d3(u,16)),new Mc)),v=_Dn(wrn(new gX(null,new d3(u,16)),new Tc)),t.Math.min(g,v));c=0;for(s=0;s=2&&(p=wRn(u,true,b),!n.e&&(n.e=new Mv(n)),Bmn(n.e,p,u,n.b),undefined);XPn(u,b);lWn(u);w=-1;for(h=new nd(u);h.au}function cWn(n,e){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m;f=y0n;h=y0n;s=M0n;o=M0n;for(b=new nd(e.i);b.a-1){for(a=Gkn(s,0);a.b!=a.d.c;){i=bG($6(a),131);i.v=u}while(s.b!=0){i=bG(Ujn(s,0),131);for(r=new nd(i.i);r.a-1){for(c=new nd(s);c.a0){continue}rw(o,t.Math.min(o.o,a.o-1));tw(o,o.i-1);o.i==0&&(Tm(s.c,o),true)}}}}function bWn(n,e,r,i,a){var c,u,s,o;o=y0n;u=false;s=oXn(n,r_(new PO(e.a,e.b),n),t_(new PO(r.a,r.b),a),r_(new PO(i.a,i.b),r));c=!!s&&!(t.Math.abs(s.a-n.a)<=Bne&&t.Math.abs(s.b-n.b)<=Bne||t.Math.abs(s.a-e.a)<=Bne&&t.Math.abs(s.b-e.b)<=Bne);s=oXn(n,r_(new PO(e.a,e.b),n),r,a);!!s&&((t.Math.abs(s.a-n.a)<=Bne&&t.Math.abs(s.b-n.b)<=Bne)==(t.Math.abs(s.a-e.a)<=Bne&&t.Math.abs(s.b-e.b)<=Bne)||c?o=t.Math.min(o,KQ(r_(s,r))):u=true);s=oXn(n,r_(new PO(e.a,e.b),n),i,a);!!s&&(u||(t.Math.abs(s.a-n.a)<=Bne&&t.Math.abs(s.b-n.b)<=Bne)==(t.Math.abs(s.a-e.a)<=Bne&&t.Math.abs(s.b-e.b)<=Bne)||c)&&(o=t.Math.min(o,KQ(r_(s,i))));return o}function wWn(n){dP(n,new dCn(BT(GT(_T(UT(HT(new vs,N4n),$4n),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new ye),i4n)));z4(n,N4n,f4n,tyn(PMe));z4(n,N4n,l4n,(Qx(),true));z4(n,N4n,g4n,tyn(OMe));z4(n,N4n,D4n,tyn(AMe));z4(n,N4n,d4n,tyn(LMe));z4(n,N4n,v4n,tyn(IMe));z4(n,N4n,b4n,tyn(NMe));z4(n,N4n,p4n,tyn($Me));z4(n,N4n,C4n,tyn(SMe));z4(n,N4n,O4n,tyn(jMe));z4(n,N4n,A4n,tyn(EMe));z4(n,N4n,L4n,tyn(CMe));z4(n,N4n,I4n,tyn(TMe))}function dWn(n){var e,t,r,i,a,c,u,s;e=null;for(r=new nd(n);r.a0&&t.c==0){!e&&(e=new im);Tm(e.c,t)}}if(e){while(e.c.length!=0){t=bG(s7(e,0),239);if(!!t.b&&t.b.c.length>0){for(a=(!t.b&&(t.b=new im),new nd(t.b));a.aCtn(n,t,0)){return new nA(i,t)}}else if(bM(lD(i.g,i.d[0]).a)>bM(lD(t.g,t.d[0]).a)){return new nA(i,t)}}}for(u=(!t.e&&(t.e=new im),t.e).Kc();u.Ob();){c=bG(u.Pb(),239);s=(!c.b&&(c.b=new im),c.b);l3(0,s.c.length);MC(s.c,0,t);c.c==s.c.length&&(Tm(e.c,c),true)}}}return null}function gWn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v;e.Ug("Interactive crossing minimization",1);c=0;for(a=new nd(n.b);a.a0){t+=s.n.a+s.o.a/2;++h}for(w=new nd(s.j);w.a0&&(t/=h);v=$nn(zht,C0n,28,r.a.c.length,15,1);u=0;for(o=new nd(r.a);o.a=u&&i<=s){if(u<=i&&a<=s){r+=2}else if(u<=i){n.b[r]=s+1;c+=2}else if(a<=s){t[f++]=i;t[f++]=u-1;r+=2}else{t[f++]=i;t[f++]=u-1;n.b[r]=s+1;c+=2}}else if(s2){h=new im;Dfn(h,new N2(p,1,p.b));c=jYn(h,k+n.a);m=new MDn(c);Yon(m,e);Tm(r.c,m)}else{i?m=bG(fQ(n.b,pIn(e)),272):m=bG(fQ(n.b,yIn(e)),272)}o=pIn(e);i&&(o=yIn(e));u=WOn(v,o);f=k+n.a;if(u.a){f+=t.Math.abs(v.b-l.b);g=new PO(l.a,(l.b+v.b)/2)}else{f+=t.Math.abs(v.a-l.a);g=new PO((l.a+v.a)/2,l.b)}i?jJ(n.d,e,new pTn(m,u,g,f)):jJ(n.c,e,new pTn(m,u,g,f));jJ(n.b,e,m);d=(!e.n&&(e.n=new gz(unt,e,1,7)),e.n);for(w=new _D(d);w.e!=w.i.gc();){b=bG(iyn(w),135);a=aHn(n,b,true,0,0);Tm(r.c,a)}}function mWn(n){var e,t,r,i,a,c,u;if(n.A.dc()){return}if(n.A.Hc((emn(),l9e))){bG(xJ(n.b,(UQn(),D8e)),127).k=true;bG(xJ(n.b,Y8e),127).k=true;e=n.q!=(FPn(),k8e)&&n.q!=m8e;_b(bG(xJ(n.b,$8e),127),e);_b(bG(xJ(n.b,n9e),127),e);_b(n.g,e);if(n.A.Hc(b9e)){bG(xJ(n.b,D8e),127).j=true;bG(xJ(n.b,Y8e),127).j=true;bG(xJ(n.b,$8e),127).k=true;bG(xJ(n.b,n9e),127).k=true;n.g.k=true}}if(n.A.Hc(h9e)){n.a.j=true;n.a.k=true;n.g.j=true;n.g.k=true;u=n.B.Hc((hUn(),y9e));for(i=Kkn(),a=0,c=i.length;a0),bG(f.a.Xb(f.c=--f.b),18));while(a!=r&&f.b>0){n.a[a.p]=true;n.a[r.p]=true;a=(PK(f.b>0),bG(f.a.Xb(f.c=--f.b),18))}f.b>0&&RQ(f)}}}}}function MWn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b;if(!n.b){return false}c=null;l=null;s=new qnn(null,null);i=1;s.a[1]=n.b;h=s;while(h.a[i]){o=i;u=l;l=h;h=h.a[i];r=n.a.Ne(e,h.d);i=r<0?0:1;r==0&&(!t.c||DJ(h.e,t.d))&&(c=h);if(!(!!h&&h.b)&&!KM(h.a[i])){if(KM(h.a[1-i])){l=l.a[o]=Cun(h,i)}else if(!KM(h.a[1-i])){b=l.a[1-o];if(b){if(!KM(b.a[1-o])&&!KM(b.a[o])){l.b=false;b.b=true;h.b=true}else{a=u.a[1]==l?1:0;KM(b.a[o])?u.a[a]=L4(l,o):KM(b.a[1-o])&&(u.a[a]=Cun(l,o));h.b=u.a[a].b=true;u.a[a].a[0].b=false;u.a[a].a[1].b=false}}}}}if(c){t.b=true;t.d=c.e;if(h!=c){f=new qnn(h.d,h.e);rIn(n,s,c,f);l==c&&(l=f)}l.a[l.a[1]==h?1:0]=h.a[!h.a[0]?1:0];--n.c}n.b=s.a[1];!!n.b&&(n.b.b=false);return t.b}function TWn(n){var e,r,i,a,c,u,s,o,f,h,l,b;for(a=new nd(n.a.a.b);a.a0?i-=864e5:i+=864e5;s=new _K(Rgn(Xon(e.q.getTime()),i))}f=new eT;o=n.a.length;for(a=0;a=97&&r<=122||r>=65&&r<=90){for(c=a+1;c=o){throw dm(new jM("Missing trailing '"))}c+1=14&&f<=16))){if(e.a._b(r)){!t.a?t.a=new vx(t.d):tL(t.a,t.b);nL(t.a,"[...]")}else{u=Uan(r);o=new lX(e);l7(t,PWn(u,o))}}else G$(r,183)?l7(t,LLn(bG(r,183))):G$(r,195)?l7(t,BPn(bG(r,195))):G$(r,201)?l7(t,hOn(bG(r,201))):G$(r,2111)?l7(t,HPn(bG(r,2111))):G$(r,53)?l7(t,ALn(bG(r,53))):G$(r,376)?l7(t,hNn(bG(r,376))):G$(r,846)?l7(t,OLn(bG(r,846))):G$(r,109)&&l7(t,ILn(bG(r,109)))}else{l7(t,r==null?CZn:fvn(r))}}return!t.a?t.c:t.e.length==0?t.a.a:t.a.a+(""+t.e)}function CWn(n,e){var t,r,i,a;a=n.F;if(e==null){n.F=null;wbn(n,null)}else{n.F=(cJ(e),e);r=BL(e,FCn(60));if(r!=-1){i=(Unn(0,r,e.length),e.substr(0,r));BL(e,FCn(46))==-1&&!T_(i,wZn)&&!T_(i,fie)&&!T_(i,hie)&&!T_(i,lie)&&!T_(i,bie)&&!T_(i,wie)&&!T_(i,die)&&!T_(i,gie)&&(i=vie);t=hx(e,FCn(62));t!=-1&&(i+=""+(w3(t+1,e.length+1),e.substr(t+1)));wbn(n,i)}else{i=e;if(BL(e,FCn(46))==-1){r=BL(e,FCn(91));r!=-1&&(i=(Unn(0,r,e.length),e.substr(0,r)));if(!T_(i,wZn)&&!T_(i,fie)&&!T_(i,hie)&&!T_(i,lie)&&!T_(i,bie)&&!T_(i,wie)&&!T_(i,die)&&!T_(i,gie)){i=vie;r!=-1&&(i+=""+(w3(r,e.length+1),e.substr(r)))}else{i=e}}wbn(n,i);i==e&&(n.F=n.D)}}(n.Db&4)!=0&&(n.Db&1)==0&&Pon(n,new vz(n,1,5,a,e))}function IWn(n,e){var t,r,i,a,c,u,s,o,f,h;s=e.length-1;u=(w3(s,e.length),e.charCodeAt(s));if(u==93){c=BL(e,FCn(91));if(c>=0){i=gvn(n,(Unn(1,c,e.length),e.substr(1,c-1)));f=(Unn(c+1,s,e.length),e.substr(c+1,s-(c+1)));return WJn(n,f,i)}}else{t=-1;zhe==null&&(zhe=new RegExp("\\d"));if(zhe.test(String.fromCharCode(u))){t=C_(e,FCn(46),s-1);if(t>=0){r=bG(z9(n,Iin(n,(Unn(1,t,e.length),e.substr(1,t-1))),false),61);o=0;try{o=TUn((w3(t+1,e.length+1),e.substr(t+1)),T1n,pZn)}catch(l){l=Ofn(l);if(G$(l,130)){a=l;throw dm(new Ltn(a))}else throw dm(l)}if(o>16==-10){t=bG(n.Cb,292).Yk(e,t)}else if(n.Db>>16==-15){!e&&(e=(rZn(),Jrt));!o&&(o=(rZn(),Jrt));if(n.Cb.Yh()){s=new Utn(n.Cb,1,13,o,e,Vyn(xtn(bG(n.Cb,62)),n),false);!t?t=s:t.nj(s)}}}else if(G$(n.Cb,90)){if(n.Db>>16==-23){G$(e,90)||(e=(rZn(),nit));G$(o,90)||(o=(rZn(),nit));if(n.Cb.Yh()){s=new Utn(n.Cb,1,10,o,e,Vyn(Y5(bG(n.Cb,29)),n),false);!t?t=s:t.nj(s)}}}else if(G$(n.Cb,457)){u=bG(n.Cb,850);c=(!u.b&&(u.b=new zp(new cy)),u.b);for(a=(r=new pon(new Kw(c.a).a),new Wp(r));a.a.b;){i=bG(jun(a.a).ld(),89);t=LWn(i,pRn(i,u),t)}}}return t}function NWn(n,e){var t,r,i,a,c,u,s,o,f,h,l;c=lM(yK(YDn(n,(IYn(),AFe))));l=bG(YDn(n,M_e),21);s=false;o=false;h=new _D((!n.c&&(n.c=new gz(ont,n,9,9)),n.c));while(h.e!=h.i.gc()&&(!s||!o)){a=bG(iyn(h),123);u=0;for(i=Dz(Yan(zfn(fT(Gce,1),jZn,20,0,[(!a.d&&(a.d=new g_(H7e,a,8,5)),a.d),(!a.e&&(a.e=new g_(H7e,a,7,4)),a.e)])));dDn(i);){r=bG(K9(i),74);f=c&&XNn(r)&&lM(yK(YDn(r,LFe)));t=RVn((!r.b&&(r.b=new g_(B7e,r,4,7)),r.b),a)?n==H0(vCn(bG(Yin((!r.c&&(r.c=new g_(B7e,r,5,8)),r.c),0),84))):n==H0(vCn(bG(Yin((!r.b&&(r.b=new g_(B7e,r,4,7)),r.b),0),84)));if(f||t){++u;if(u>1){break}}}u>0?s=true:l.Hc((uNn(),C8e))&&(!a.n&&(a.n=new gz(unt,a,1,7)),a.n).i>0&&(s=true);u>1&&(o=true)}s&&e.Fc((o_n(),M$e));o&&e.Fc((o_n(),T$e))}function $Wn(n){var e,r,i,a,c,u,s,o,f,h,l,b;b=bG(YDn(n,(JYn(),J4e)),21);if(b.dc()){return null}s=0;u=0;if(b.Hc((emn(),l9e))){h=bG(YDn(n,k6e),101);i=2;r=2;a=2;c=2;e=!H0(n)?bG(YDn(n,S4e),88):bG(YDn(H0(n),S4e),88);for(f=new _D((!n.c&&(n.c=new gz(ont,n,9,9)),n.c));f.e!=f.i.gc();){o=bG(iyn(f),123);l=bG(YDn(o,P6e),64);if(l==(UQn(),Z8e)){l=HGn(o,e);Pyn(o,P6e,l)}if(h==(FPn(),m8e)){switch(l.g){case 1:i=t.Math.max(i,o.i+o.g);break;case 2:r=t.Math.max(r,o.j+o.f);break;case 3:a=t.Math.max(a,o.i+o.g);break;case 4:c=t.Math.max(c,o.j+o.f)}}else{switch(l.g){case 1:i+=o.g+2;break;case 2:r+=o.f+2;break;case 3:a+=o.g+2;break;case 4:c+=o.f+2}}}s=t.Math.max(i,a);u=t.Math.max(r,c)}return iJn(n,s,u,true,true)}function DWn(n,e,r,i,a){var c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y;m=bG(v8(Ein(tY(new gX(null,new d3(e.d,16)),new Hg(r)),new Ug(r)),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[(Sbn(),Lde)]))),15);l=pZn;h=T1n;for(o=new nd(e.b.j);o.a0;if(o){if(o){l=v.p;c?++l:--l;h=bG(Yq(v.c.a,l),10);r=hhn(h);b=!(ZRn(r,M,t[0])||oz(r,M,t[0]))}}else{b=true}}w=false;y=e.D.i;if(!!y&&!!y.c&&u.e){f=c&&y.p>0||!c&&y.p=0){s=null;u=new K4(f.a,o+1);while(u.bu?1:UL(isNaN(0),isNaN(u)))<0&&(null,lcn(C9n),(t.Math.abs(u-1)<=C9n||u==1||isNaN(u)&&isNaN(1)?0:u<1?-1:u>1?1:UL(isNaN(u),isNaN(1)))<0)&&(null,lcn(C9n),(t.Math.abs(0-s)<=C9n||0==s||isNaN(0)&&isNaN(s)?0:0s?1:UL(isNaN(0),isNaN(s)))<0)&&(null,lcn(C9n),(t.Math.abs(s-1)<=C9n||s==1||isNaN(s)&&isNaN(1)?0:s<1?-1:s>1?1:UL(isNaN(s),isNaN(1)))<0));return c}function UWn(n){var e,t,r,i;t=n.D!=null?n.D:n.B;e=BL(t,FCn(91));if(e!=-1){r=(Unn(0,e,t.length),t.substr(0,e));i=new YM;do{i.a+="["}while((e=hR(t,91,++e))!=-1);if(T_(r,wZn))i.a+="Z";else if(T_(r,fie))i.a+="B";else if(T_(r,hie))i.a+="C";else if(T_(r,lie))i.a+="D";else if(T_(r,bie))i.a+="F";else if(T_(r,wie))i.a+="I";else if(T_(r,die))i.a+="J";else if(T_(r,gie))i.a+="S";else{i.a+="L";i.a+=""+r;i.a+=";"}try{return null}catch(a){a=Ofn(a);if(!G$(a,63))throw dm(a)}}else if(BL(t,FCn(46))==-1){if(T_(t,wZn))return qht;else if(T_(t,fie))return Vht;else if(T_(t,hie))return Uht;else if(T_(t,lie))return zht;else if(T_(t,bie))return Wht;else if(T_(t,wie))return Ght;else if(T_(t,die))return Xht;else if(T_(t,gie))return Qht}return null}function GWn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T;n.e=e;u=QNn(e);M=new im;for(r=new nd(u);r.a=0&&d=f.c.c.length?h=X5((YIn(),rEe),tEe):h=X5((YIn(),tEe),tEe);h*=2;c=r.a.g;r.a.g=t.Math.max(c,c+(h-c));u=r.b.g;r.b.g=t.Math.max(u,u+(h-u));a=e}}}function zWn(n){var e,r,i,a;ES(tY(new gX(null,new d3(n.a.b,16)),new Ei),new Si);ePn(n);ES(tY(new gX(null,new d3(n.a.b,16)),new Pi),new Ci);if(n.c==(qgn(),M5e)){ES(tY(wrn(new gX(null,new d3(new Rw(n.f),1)),new Ii),new Oi),new Dg(n));ES(tY(rY(wrn(wrn(new gX(null,new d3(n.d.b,16)),new Ai),new Li),new Ni),new $i),new Rg(n))}a=new PO(y0n,y0n);e=new PO(M0n,M0n);for(i=new nd(n.a.b);i.a0&&(e.a+=MZn,e);JWn(bG(iyn(u),167),e)}e.a+=J4n;s=new iR((!r.c&&(r.c=new g_(B7e,r,5,8)),r.c));while(s.e!=s.i.gc()){s.e>0&&(e.a+=MZn,e);JWn(bG(iyn(s),167),e)}e.a+=")"}}}function YWn(n,e,r){var i,a,c,u,s,o,f,h;for(o=new _D((!n.a&&(n.a=new gz(snt,n,10,11)),n.a));o.e!=o.i.gc();){s=bG(iyn(o),27);for(a=new GV(sx(uRn(s).a.Kc(),new d));dDn(a);){i=bG(K9(a),74);!i.b&&(i.b=new g_(B7e,i,4,7));if(!(i.b.i<=1&&(!i.c&&(i.c=new g_(B7e,i,5,8)),i.c.i<=1))){throw dm(new OM("Graph must not contain hyperedges."))}if(!Y$n(i)&&s!=vCn(bG(Yin((!i.c&&(i.c=new g_(B7e,i,5,8)),i.c),0),84))){f=new FF;Yon(f,i);Ehn(f,(Tun(),wMe),i);Ub(f,bG(_A(GX(r.f,s)),153));Xb(f,bG(fQ(r,vCn(bG(Yin((!i.c&&(i.c=new g_(B7e,i,5,8)),i.c),0),84))),153));ED(e.c,f);for(u=new _D((!i.n&&(i.n=new gz(unt,i,1,7)),i.n));u.e!=u.i.gc();){c=bG(iyn(u),135);h=new x5(f,c.a);Yon(h,c);Ehn(h,wMe,c);h.e.a=t.Math.max(c.g,1);h.e.b=t.Math.max(c.f,1);rXn(h);ED(e.d,h)}}}}}function ZWn(n,e,r){var i,a,c,u,s,o,f,h,l,b;r.Ug("Node promotion heuristic",1);n.i=e;n.r=bG(lIn(e,(IYn(),UFe)),243);n.r!=(CHn(),ZBe)&&n.r!=nHe?HQn(n):a_n(n);h=bG(lIn(n.i,HFe),17).a;c=new dr;switch(n.r.g){case 2:case 1:aVn(n,c);break;case 3:n.r=uHe;aVn(n,c);o=0;for(s=new nd(n.b);s.an.k){n.r=eHe;aVn(n,c)}break;case 4:n.r=uHe;aVn(n,c);f=0;for(a=new nd(n.c);a.an.n){n.r=iHe;aVn(n,c)}break;case 6:b=c0(t.Math.ceil(n.g.length*h/100));aVn(n,new Tg(b));break;case 5:l=c0(t.Math.ceil(n.e*h/100));aVn(n,new jg(l));break;case 8:$Yn(n,true);break;case 9:$Yn(n,false);break;default:aVn(n,c)}n.r!=ZBe&&n.r!=nHe?tFn(n,e):XBn(n,e);r.Vg()}function nQn(n){var e,t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m;h=n.b;f=new K4(h,0);MF(f,new pQ(n));p=false;c=1;while(f.b0){b.d+=h.n.d;b.d+=h.d}if(b.a>0){b.a+=h.n.a;b.a+=h.d}if(b.b>0){b.b+=h.n.b;b.b+=h.d}if(b.c>0){b.c+=h.n.c;b.c+=h.d}return b}function tQn(n,e,r){var i,a,c,u,s,o,f,h,l,b,w,d;b=r.d;l=r.c;c=new PO(r.f.a+r.d.b+r.d.c,r.f.b+r.d.d+r.d.a);u=c.b;for(f=new nd(n.a);f.a0){n.c[e.c.p][e.p].d+=bRn(n.i,24)*X0n*.07000000029802322-.03500000014901161;n.c[e.c.p][e.p].a=n.c[e.c.p][e.p].d/n.c[e.c.p][e.p].b}}function cQn(n){var e,t,r,i,a,c,u,s,o,f,h,l,b,w,d,g;for(w=new nd(n);w.ai.d;i.d=t.Math.max(i.d,e);if(s&&r){i.d=t.Math.max(i.d,i.a);i.a=i.d+a}break;case 3:r=e>i.a;i.a=t.Math.max(i.a,e);if(s&&r){i.a=t.Math.max(i.a,i.d);i.d=i.a+a}break;case 2:r=e>i.c;i.c=t.Math.max(i.c,e);if(s&&r){i.c=t.Math.max(i.b,i.c);i.b=i.c+a}break;case 4:r=e>i.b;i.b=t.Math.max(i.b,e);if(s&&r){i.b=t.Math.max(i.b,i.c);i.c=i.b+a}}}}}function oQn(n,e){var t,r,i,a,c,u,s,o,f;o="";if(e.length==0){return n.ne(A1n,I1n,-1,-1)}f=UAn(e);T_(f.substr(0,3),"at ")&&(f=(w3(3,f.length+1),f.substr(3)));f=f.replace(/\[.*?\]/g,"");c=f.indexOf("(");if(c==-1){c=f.indexOf("@");if(c==-1){o=f;f=""}else{o=UAn((w3(c+1,f.length+1),f.substr(c+1)));f=UAn((Unn(0,c,f.length),f.substr(0,c)))}}else{t=f.indexOf(")",c);o=(Unn(c+1,t,f.length),f.substr(c+1,t-(c+1)));f=UAn((Unn(0,c,f.length),f.substr(0,c)))}c=BL(f,FCn(46));c!=-1&&(f=(w3(c+1,f.length+1),f.substr(c+1)));(f.length==0||T_(f,"Anonymous function"))&&(f=I1n);u=hx(o,FCn(58));i=C_(o,FCn(58),u-1);s=-1;r=-1;a=A1n;if(u!=-1&&i!=-1){a=(Unn(0,i,o.length),o.substr(0,i));s=oR((Unn(i+1,u,o.length),o.substr(i+1,u-(i+1))));r=oR((w3(u+1,o.length+1),o.substr(u+1)))}return n.ne(a,f,s,r)}function fQn(n){var e,t,r,i,a,c,u,s,o,f,h;for(o=new nd(n);o.a0||f.j==n9e&&f.e.c.length-f.g.c.length<0)){e=false;break}for(i=new nd(f.g);i.a=f&&M>=v){b+=d.n.b+g.n.b+g.a.b-y;++s}}}}if(r){for(u=new nd(m.e);u.a=f&&M>=v){b+=d.n.b+g.n.b+g.a.b-y;++s}}}}}if(s>0){T+=b/s;++w}}if(w>0){e.a=a*T/w;e.g=w}else{e.a=0;e.g=0}}function lQn(n){var e,t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T;a=n.f.b;l=a.a;f=a.b;w=n.e.g;b=n.e.f;jN(n.e,a.a,a.b);M=l/w;T=f/b;for(o=new _D(BJ(n.e));o.e!=o.i.gc();){s=bG(iyn(o),135);San(s,s.i*M);Pan(s,s.j*T)}for(p=new _D(HJ(n.e));p.e!=p.i.gc();){v=bG(iyn(p),123);k=v.i;y=v.j;k>0&&San(v,k*M);y>0&&Pan(v,y*T)}ron(n.b,new ge);e=new im;for(u=new pon(new Kw(n.c).a);u.b;){c=jun(u);r=bG(c.ld(),74);t=bG(c.md(),407).a;i=t_n(r,false,false);h=rCn(pIn(r),NOn(i),t);wqn(h,i);m=mIn(r);if(!!m&&Ctn(e,m,0)==-1){Tm(e.c,m);sY(m,(PK(h.b!=0),bG(h.a.a.c,8)),t)}}for(g=new pon(new Kw(n.d).a);g.b;){d=jun(g);r=bG(d.ld(),74);t=bG(d.md(),407).a;i=t_n(r,false,false);h=rCn(yIn(r),gln(NOn(i)),t);h=gln(h);wqn(h,i);m=kIn(r);if(!!m&&Ctn(e,m,0)==-1){Tm(e.c,m);sY(m,(PK(h.b!=0),bG(h.c.b.c,8)),t)}}}function bQn(n,e,t,r){var i,a,c,u,s;u=new OQn(e);wKn(u,r);i=true;if(!!n&&n.pf((JYn(),S4e))){a=bG(n.of((JYn(),S4e)),88);i=a==(Bdn(),h5e)||a==o5e||a==f5e}sBn(u,false);Lin(u.e.Rf(),new _B(u,false,i));n0(u,u.f,(ran(),rpe),(UQn(),D8e));n0(u,u.f,ape,Y8e);n0(u,u.g,rpe,n9e);n0(u,u.g,ape,$8e);yyn(u,D8e);yyn(u,Y8e);$J(u,$8e);$J(u,n9e);ZK();c=u.A.Hc((emn(),f9e))&&u.B.Hc((hUn(),k9e))?Bpn(u):null;!!c&&kT(u.a,c);sQn(u);XTn(u);VTn(u);mWn(u);hGn(u);sEn(u);kkn(u,D8e);kkn(u,Y8e);$Bn(u);CVn(u);if(!t){return u.o}mvn(u);oEn(u);kkn(u,$8e);kkn(u,n9e);s=u.B.Hc((hUn(),y9e));kLn(u,s,D8e);kLn(u,s,Y8e);yLn(u,s,$8e);yLn(u,s,n9e);ES(new gX(null,new d3(new Gw(u.i),0)),new Nn);ES(tY(new gX(null,GW(u.r).a.oc()),new $n),new Dn);IPn(u);u.e.Pf(u.o);ES(new gX(null,GW(u.r).a.oc()),new xn);return u.o}function wQn(n){var e,r,i,a,c,u,s,o,f,h,l,b,w,d,g;f=y0n;for(i=new nd(n.a.b);i.a1){w=new $Vn(d,k,i);Y8(k,new XI(n,w));Tm(u.c,w);for(l=k.a.ec().Kc();l.Ob();){h=bG(l.Pb(),42);Ttn(c,h.b)}}if(s.a.gc()>1){w=new $Vn(d,s,i);Y8(s,new VI(n,w));Tm(u.c,w);for(l=s.a.ec().Kc();l.Ob();){h=bG(l.Pb(),42);Ttn(c,h.b)}}}}function kQn(n,e,r){var i,a,c,u,s,o,f,h,l,b,w,d,g,v,p;g=n.n;v=n.o;b=n.d;l=bM(MK(Dpn(n,(IYn(),$_e))));if(e){h=l*(e.gc()-1);w=0;for(o=e.Kc();o.Ob();){u=bG(o.Pb(),10);h+=u.o.a;w=t.Math.max(w,u.o.b)}p=g.a-(h-v.a)/2;c=g.b-b.d+w;i=v.a/(e.gc()+1);a=i;for(s=e.Kc();s.Ob();){u=bG(s.Pb(),10);u.n.a=p;u.n.b=c-u.o.b;p+=u.o.a+l;f=ORn(u);f.n.a=u.o.a/2-f.a.a;f.n.b=u.o.b;d=bG(lIn(u,(WYn(),z$e)),12);if(d.e.c.length+d.g.c.length==1){d.n.a=a-d.a.a;d.n.b=0;l2(d,n)}a+=i}}if(r){h=l*(r.gc()-1);w=0;for(o=r.Kc();o.Ob();){u=bG(o.Pb(),10);h+=u.o.a;w=t.Math.max(w,u.o.b)}p=g.a-(h-v.a)/2;c=g.b+v.b+b.a-w;i=v.a/(r.gc()+1);a=i;for(s=r.Kc();s.Ob();){u=bG(s.Pb(),10);u.n.a=p;u.n.b=c;p+=u.o.a+l;f=ORn(u);f.n.a=u.o.a/2-f.a.a;f.n.b=0;d=bG(lIn(u,(WYn(),z$e)),12);if(d.e.c.length+d.g.c.length==1){d.n.a=a-d.a.a;d.n.b=v.b;l2(d,n)}a+=i}}}function yQn(n,e){var r,i,a,c,u,s;if(!bG(lIn(e,(WYn(),oDe)),21).Hc((o_n(),M$e))){return}for(s=new nd(e.a);s.a=0&&c0&&(bG(xJ(n.b,e),127).a.b=r)}function CQn(n,e,t,r){var i,a,c,u,s,o,f,h,l,b,w,d;l=bM(MK(lIn(n,(IYn(),q_e))));b=bM(MK(lIn(n,X_e)));h=bM(MK(lIn(n,U_e)));u=n.o;a=bG(Yq(n.j,0),12);c=a.n;d=dAn(a,h);if(!d){return}if(e.Hc((uNn(),C8e))){switch(bG(lIn(n,(WYn(),cDe)),64).g){case 1:d.c=(u.a-d.b)/2-c.a;d.d=b;break;case 3:d.c=(u.a-d.b)/2-c.a;d.d=-b-d.a;break;case 2:if(t&&a.e.c.length==0&&a.g.c.length==0){f=r?d.a:bG(Yq(a.f,0),72).o.b;d.d=(u.b-f)/2-c.b}else{d.d=u.b+b-c.b}d.c=-l-d.b;break;case 4:if(t&&a.e.c.length==0&&a.g.c.length==0){f=r?d.a:bG(Yq(a.f,0),72).o.b;d.d=(u.b-f)/2-c.b}else{d.d=u.b+b-c.b}d.c=l}}else if(e.Hc(O8e)){switch(bG(lIn(n,(WYn(),cDe)),64).g){case 1:case 3:d.c=c.a+l;break;case 2:case 4:if(t&&!a.c){f=r?d.a:bG(Yq(a.f,0),72).o.b;d.d=(u.b-f)/2-c.b}else{d.d=c.b+b}}}i=d.d;for(o=new nd(a.f);o.a=n.length)return{done:true};var r=n[t++];return{value:[r,e.get(r)],done:false}}}};if(!q_n()){n.prototype.createObject=function(){return{}};n.prototype.get=function(n){return this.obj[":"+n]};n.prototype.set=function(n,e){this.obj[":"+n]=e};n.prototype[H0n]=function(n){delete this.obj[":"+n]};n.prototype.keys=function(){var n=[];for(var e in this.obj){e.charCodeAt(0)==58&&n.push(e.substring(1))}return n}}return n}function DQn(){DQn=O;qze=new Np(j4n);new Np(E4n);new bF("DEPTH",Bwn(0));Nze=new bF("FAN",Bwn(0));Aze=new bF(W9n,Bwn(0));Jze=new bF("ROOT",(Qx(),false));Fze=new bF("LEFTNEIGHBOR",null);Wze=new bF("RIGHTNEIGHBOR",null);_ze=new bF("LEFTSIBLING",null);Qze=new bF("RIGHTSIBLING",null);Lze=new bF("DUMMY",false);new bF("LEVEL",Bwn(0));zze=new bF("REMOVABLE_EDGES",new vS);Yze=new bF("XCOOR",Bwn(0));Zze=new bF("YCOOR",Bwn(0));Bze=new bF("LEVELHEIGHT",0);Uze=new bF("LEVELMIN",0);Hze=new bF("LEVELMAX",0);Dze=new bF("GRAPH_XMIN",0);Rze=new bF("GRAPH_YMIN",0);$ze=new bF("GRAPH_XMAX",0);xze=new bF("GRAPH_YMAX",0);Oze=new bF("COMPACT_LEVEL_ASCENSION",false);Ize=new bF("COMPACT_CONSTRAINTS",new im);Kze=new bF("ID","");Xze=new bF("POSITION",Bwn(0));Vze=new bF("PRELIM",0);Gze=new bF("MODIFIER",0);Cze=new Np(S4n);Pze=new Np(P4n)}function xQn(n){KGn();var e,t,r,i,a,c,u,s,o,f,h,l,b,w,d,g;if(n==null)return null;h=n.length*8;if(h==0){return""}u=h%24;b=h/24|0;l=u!=0?b+1:b;a=null;a=$nn(Uht,L1n,28,l*4,15,1);o=0;f=0;e=0;t=0;r=0;c=0;i=0;for(s=0;s>24;o=(e&3)<<24>>24;w=(e&-128)==0?e>>2<<24>>24:(e>>2^192)<<24>>24;d=(t&-128)==0?t>>4<<24>>24:(t>>4^240)<<24>>24;g=(r&-128)==0?r>>6<<24>>24:(r>>6^252)<<24>>24;a[c++]=Uft[w];a[c++]=Uft[d|o<<4];a[c++]=Uft[f<<2|g];a[c++]=Uft[r&63]}if(u==8){e=n[i];o=(e&3)<<24>>24;w=(e&-128)==0?e>>2<<24>>24:(e>>2^192)<<24>>24;a[c++]=Uft[w];a[c++]=Uft[o<<4];a[c++]=61;a[c++]=61}else if(u==16){e=n[i];t=n[i+1];f=(t&15)<<24>>24;o=(e&3)<<24>>24;w=(e&-128)==0?e>>2<<24>>24:(e>>2^192)<<24>>24;d=(t&-128)==0?t>>4<<24>>24:(t>>4^240)<<24>>24;a[c++]=Uft[w];a[c++]=Uft[d|o<<4];a[c++]=Uft[f<<2];a[c++]=61}return Tmn(a,0,a.length)}function RQn(n,e){var r,i,a,c,u,s,o;n.e==0&&n.p>0&&(n.p=-(n.p-1));n.p>T1n&&G5(e,n.p-V1n);u=e.q.getDate();E0(e,1);n.k>=0&&V0(e,n.k);if(n.c>=0){E0(e,n.c)}else if(n.k>=0){o=new Rhn(e.q.getFullYear()-V1n,e.q.getMonth(),35);i=35-o.q.getDate();E0(e,t.Math.min(i,u))}else{E0(e,u)}n.f<0&&(n.f=e.q.getHours());n.b>0&&n.f<12&&(n.f+=12);cD(e,n.f==24&&n.g?0:n.f);n.j>=0&&S7(e,n.j);n.n>=0&&Knn(e,n.n);n.i>=0&&CL(e,Rgn(Kgn(pSn(Xon(e.q.getTime()),N1n),N1n),n.i));if(n.a){a=new eS;G5(a,a.q.getFullYear()-V1n-80);FP(Xon(e.q.getTime()),Xon(a.q.getTime()))&&G5(e,a.q.getFullYear()-V1n+100)}if(n.d>=0){if(n.c==-1){r=(7+n.d-e.q.getDay())%7;r>3&&(r-=7);s=e.q.getMonth();E0(e,e.q.getDate()+r);e.q.getMonth()!=s&&E0(e,e.q.getDate()+(r>0?-7:7))}else{if(e.q.getDay()!=n.d){return false}}}if(n.o>T1n){c=e.q.getTimezoneOffset();CL(e,Rgn(Xon(e.q.getTime()),(n.o-c)*60*N1n))}return true}function KQn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k;i=lIn(e,(WYn(),EDe));if(!G$(i,207)){return}w=bG(i,27);d=e.e;l=new uN(e.c);a=e.d;l.a+=a.b;l.b+=a.d;k=bG(YDn(w,(IYn(),c_e)),181);if(Fx(k,(hUn(),v9e))){b=bG(YDn(w,s_e),107);xb(b,a.a);qb(b,a.d);Rb(b,a.b);Gb(b,a.c)}t=new im;for(f=new nd(e.a);f.ar.c.length-1){ED(r,new nA(_3n,U9n))}t=bG(lIn(i,_We),17).a;if(dN(bG(lIn(n,wWe),88))){i.e.abM(MK((b3(t,r.c.length),bG(r.c[t],42)).b))&&ww((b3(t,r.c.length),bG(r.c[t],42)),i.e.a+i.f.a)}else{i.e.bbM(MK((b3(t,r.c.length),bG(r.c[t],42)).b))&&ww((b3(t,r.c.length),bG(r.c[t],42)),i.e.b+i.f.b)}}for(a=Gkn(n.b,0);a.b!=a.d.c;){i=bG($6(a),40);t=bG(lIn(i,(eqn(),_We)),17).a;Ehn(i,(DQn(),Uze),MK((b3(t,r.c.length),bG(r.c[t],42)).a));Ehn(i,Hze,MK((b3(t,r.c.length),bG(r.c[t],42)).b))}e.Vg()}function HQn(n){var e,r,i,a,c,u,s,o,f,h,l,b,w,g,v;n.o=bM(MK(lIn(n.i,(IYn(),V_e))));n.f=bM(MK(lIn(n.i,B_e)));n.j=n.i.b.c.length;s=n.j-1;b=0;n.k=0;n.n=0;n.b=a7($nn(tle,XZn,17,n.j,0,1));n.c=a7($nn(Yhe,XZn,345,n.j,7,1));for(u=new nd(n.i.b);u.a0&&ED(n.q,h);ED(n.p,h)}e-=i;w=o+e;f+=e*n.f;r9(n.b,s,Bwn(w));r9(n.c,s,f);n.k=t.Math.max(n.k,w);n.n=t.Math.max(n.n,f);n.e+=e;e+=v}}function UQn(){UQn=O;var n;Z8e=new HO(J2n,0);D8e=new HO(c3n,1);$8e=new HO(u3n,2);Y8e=new HO(s3n,3);n9e=new HO(o3n,4);_8e=(dZ(),new aT((n=bG(Pj(e9e),9),new aB(n,bG(PF(n,n.length),9),0))));B8e=Kwn(nV(D8e,zfn(fT(e9e,1),X4n,64,0,[])));x8e=Kwn(nV($8e,zfn(fT(e9e,1),X4n,64,0,[])));W8e=Kwn(nV(Y8e,zfn(fT(e9e,1),X4n,64,0,[])));J8e=Kwn(nV(n9e,zfn(fT(e9e,1),X4n,64,0,[])));X8e=Kwn(nV(D8e,zfn(fT(e9e,1),X4n,64,0,[Y8e])));F8e=Kwn(nV($8e,zfn(fT(e9e,1),X4n,64,0,[n9e])));z8e=Kwn(nV(D8e,zfn(fT(e9e,1),X4n,64,0,[n9e])));H8e=Kwn(nV(D8e,zfn(fT(e9e,1),X4n,64,0,[$8e])));Q8e=Kwn(nV(Y8e,zfn(fT(e9e,1),X4n,64,0,[n9e])));R8e=Kwn(nV($8e,zfn(fT(e9e,1),X4n,64,0,[Y8e])));q8e=Kwn(nV(D8e,zfn(fT(e9e,1),X4n,64,0,[$8e,n9e])));K8e=Kwn(nV($8e,zfn(fT(e9e,1),X4n,64,0,[Y8e,n9e])));V8e=Kwn(nV(D8e,zfn(fT(e9e,1),X4n,64,0,[Y8e,n9e])));U8e=Kwn(nV(D8e,zfn(fT(e9e,1),X4n,64,0,[$8e,Y8e])));G8e=Kwn(nV(D8e,zfn(fT(e9e,1),X4n,64,0,[$8e,Y8e,n9e])))}function GQn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T;e.Ug(T6n,1);d=new im;M=new im;for(o=new nd(n.b);o.a0&&(y-=w);ZVn(u,y);h=0;for(b=new nd(u.a);b.a0);s.a.Xb(s.c=--s.b)}o=.4*i*h;!c&&s.b0){s=(w3(0,e.length),e.charCodeAt(0));if(s!=64){if(s==37){h=e.lastIndexOf("%");o=false;if(h!=0&&(h==l-1||(o=(w3(h+1,e.length),e.charCodeAt(h+1)==46)))){c=(Unn(1,h,e.length),e.substr(1,h-1));m=T_("%",c)?null:uJn(c);r=0;if(o){try{r=TUn((w3(h+2,e.length+1),e.substr(h+2)),T1n,pZn)}catch(k){k=Ofn(k);if(G$(k,130)){u=k;throw dm(new Ltn(u))}else throw dm(k)}}for(g=Eun(n.Gh());g.Ob();){w=Uon(g);if(G$(w,519)){i=bG(w,598);p=i.d;if((m==null?p==null:T_(m,p))&&r--==0){return i}}}return null}}f=e.lastIndexOf(".");b=f==-1?e:(Unn(0,f,e.length),e.substr(0,f));t=0;if(f!=-1){try{t=TUn((w3(f+1,e.length+1),e.substr(f+1)),T1n,pZn)}catch(k){k=Ofn(k);if(G$(k,130)){b=e}else throw dm(k)}}b=T_("%",b)?null:uJn(b);for(d=Eun(n.Gh());d.Ob();){w=Uon(d);if(G$(w,197)){a=bG(w,197);v=a.xe();if((b==null?v==null:T_(b,v))&&t--==0){return a}}}return null}}return IWn(n,e)}function nJn(n){var e,t,r,i,a,c,u,s,o,f,h,l,b,w,g,v,p,m;f=new rm;s=new U1;for(r=new nd(n.a.a.b);r.ae.d.c){b=n.c[e.a.d];v=n.c[h.a.d];if(b==v){continue}HKn(BS(_S(HS(FS(new bk,1),100),b),v))}}}}}}}function eJn(n,e){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T;b=bG(bG(r7(n.r,e),21),87);if(e==(UQn(),$8e)||e==n9e){PQn(n,e);return}c=e==D8e?(ufn(),dme):(ufn(),pme);y=e==D8e?(rrn(),Epe):(rrn(),Tpe);r=bG(xJ(n.b,e),127);i=r.i;a=i.c+Cin(zfn(fT(zht,1),C0n,28,15,[r.n.b,n.C.b,n.k]));p=i.c+i.b-Cin(zfn(fT(zht,1),C0n,28,15,[r.n.c,n.C.c,n.k]));u=CT(XB(c),n.t);m=e==D8e?M0n:y0n;for(l=b.Kc();l.Ob();){f=bG(l.Pb(),117);if(!f.c||f.c.d.c.length<=0){continue}v=f.b.Mf();g=f.e;w=f.c;d=w.i;d.b=(o=w.n,w.e.a+o.b+o.c);d.a=(s=w.n,w.e.b+s.d+s.a);i1(y,z2n);w.f=y;uen(w,(Uen(),wpe));d.c=g.a-(d.b-v.a)/2;M=t.Math.min(a,g.a);T=t.Math.max(p,g.a+v.a);d.cT&&(d.c=T-d.b);ED(u.d,new iV(d,Vdn(u,d)));m=e==D8e?t.Math.max(m,g.b+f.b.Mf().b):t.Math.min(m,g.b)}m+=e==D8e?n.t:-n.t;k=fpn((u.e=m,u));k>0&&(bG(xJ(n.b,e),127).a.b=k);for(h=b.Kc();h.Ob();){f=bG(h.Pb(),117);if(!f.c||f.c.d.c.length<=0){continue}d=f.c.i;d.c-=f.e.a;d.d-=f.e.b}}function tJn(n){var e,t,r,i,a,c,u,s,o,f,h,l,b;e=new rm;for(s=new _D(n);s.e!=s.i.gc();){u=bG(iyn(s),27);t=new uk;jJ(Zke,u,t);b=new he;i=bG(v8(new gX(null,new RW(new GV(sx(cRn(u).a.Kc(),new d)))),VX(b,gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[(Sbn(),Lde)])))),85);rcn(t,bG(i.xc((Qx(),true)),16),new le);r=bG(v8(tY(bG(i.xc(false),15).Lc(),new be),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[Lde]))),15);for(c=r.Kc();c.Ob();){a=bG(c.Pb(),74);l=mIn(a);if(l){o=bG(_A(GX(e.f,l)),21);if(!o){o=CFn(l);ZAn(e.f,l,o)}esn(t,o)}}i=bG(v8(new gX(null,new RW(new GV(sx(uRn(u).a.Kc(),new d)))),VX(b,gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[Lde])))),85);rcn(t,bG(i.xc(true),16),new we);r=bG(v8(tY(bG(i.xc(false),15).Lc(),new de),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[Lde]))),15);for(h=r.Kc();h.Ob();){f=bG(h.Pb(),74);l=kIn(f);if(l){o=bG(_A(GX(e.f,l)),21);if(!o){o=CFn(l);ZAn(e.f,l,o)}esn(t,o)}}}}function rJn(n,e){MXn();var t,r,i,a,c,u,s,o,f,h,l,b,w,d;s=kwn(n,0)<0;s&&(n=Ptn(n));if(kwn(n,0)==0){switch(e){case 0:return"0";case 1:return L0n;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:b=new nT;e<0?(b.a+="0E+",b):(b.a+="0E",b);b.a+=e==T1n?"2147483648":""+-e;return b.a}}f=18;h=$nn(Uht,L1n,28,f+1,15,1);t=f;d=n;do{o=d;d=pSn(d,10);h[--t]=MV(Rgn(48,Fgn(o,Kgn(d,10))))&$1n}while(kwn(d,0)!=0);i=Fgn(Fgn(Fgn(f,t),e),1);if(e==0){s&&(h[--t]=45);return Tmn(h,t,f-t)}if(e>0&&kwn(i,-6)>=0){if(kwn(i,0)>=0){a=t+MV(i);for(u=f-1;u>=a;u--){h[u+1]=h[u]}h[++a]=46;s&&(h[--t]=45);return Tmn(h,t,f-t+1)}for(c=2;FP(c,Rgn(Ptn(i),1));c++){h[--t]=48}h[--t]=46;h[--t]=48;s&&(h[--t]=45);return Tmn(h,t,f-t)}w=t+1;r=f;l=new eT;s&&(l.a+="-",l);if(r-w>=1){IQ(l,h[t]);l.a+=".";l.a+=Tmn(h,t+1,f-t-1)}else{l.a+=Tmn(h,t,f-t)}l.a+="E";kwn(i,0)>0&&(l.a+="+",l);l.a+=""+lz(i);return l.a}function iJn(n,e,r,i,a){var c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T;v=new PO(n.g,n.f);g=BAn(n);g.a=t.Math.max(g.a,e);g.b=t.Math.max(g.b,r);T=g.a/v.a;h=g.b/v.b;y=g.a-v.a;o=g.b-v.b;if(i){u=!H0(n)?bG(YDn(n,(JYn(),S4e)),88):bG(YDn(H0(n),(JYn(),S4e)),88);s=BA(YDn(n,(JYn(),k6e)))===BA((FPn(),m8e));for(m=new _D((!n.c&&(n.c=new gz(ont,n,9,9)),n.c));m.e!=m.i.gc();){p=bG(iyn(m),123);k=bG(YDn(p,P6e),64);if(k==(UQn(),Z8e)){k=HGn(p,u);Pyn(p,P6e,k)}switch(k.g){case 1:s||San(p,p.i*T);break;case 2:San(p,p.i+y);s||Pan(p,p.j*h);break;case 3:s||San(p,p.i*T);Pan(p,p.j+o);break;case 4:s||Pan(p,p.j*h)}}}jN(n,g.a,g.b);if(a){for(b=new _D((!n.n&&(n.n=new gz(unt,n,1,7)),n.n));b.e!=b.i.gc();){l=bG(iyn(b),135);w=l.i+l.g/2;d=l.j+l.f/2;M=w/v.a;f=d/v.b;if(M+f>=1){if(M-f>0&&d>=0){San(l,l.i+y);Pan(l,l.j+o*f)}else if(M-f<0&&w>=0){San(l,l.i+y*M);Pan(l,l.j+o)}}}}Pyn(n,(JYn(),J4e),(emn(),c=bG(Pj(w9e),9),new aB(c,bG(PF(c,c.length),9),0)));return new PO(T,h)}function aJn(n){dP(n,new dCn(BT(GT(_T(UT(HT(new vs,D7n),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new $u),D7n)));z4(n,D7n,l9n,tyn(VJe));z4(n,D7n,c4n,tyn(nYe));z4(n,D7n,g4n,tyn(_Je));z4(n,D7n,D4n,tyn(BJe));z4(n,D7n,d4n,tyn(HJe));z4(n,D7n,v4n,tyn(FJe));z4(n,D7n,b4n,tyn(UJe));z4(n,D7n,p4n,tyn(XJe));z4(n,D7n,S7n,tyn(RJe));z4(n,D7n,E7n,tyn(KJe));z4(n,D7n,j7n,tyn(WJe));z4(n,D7n,O7n,tyn(YJe));z4(n,D7n,A7n,tyn(QJe));z4(n,D7n,L7n,tyn(JJe));z4(n,D7n,I7n,tyn(GJe));z4(n,D7n,M7n,tyn(qJe));z4(n,D7n,T7n,tyn(zJe));z4(n,D7n,P7n,tyn(ZJe));z4(n,D7n,C7n,tyn(eYe));z4(n,D7n,y7n,tyn(xJe))}function cJn(n){var e,t,r,i,a,c,u,s,o,f,h;if(n==null){throw dm(new iT(CZn))}o=n;a=n.length;s=false;if(a>0){e=(w3(0,n.length),n.charCodeAt(0));if(e==45||e==43){n=(w3(1,n.length+1),n.substr(1));--a;s=e==45}}if(a==0){throw dm(new iT(k0n+o+'"'))}while(n.length>0&&(w3(0,n.length),n.charCodeAt(0)==48)){n=(w3(1,n.length+1),n.substr(1));--a}if(a>(vGn(),hle)[10]){throw dm(new iT(k0n+o+'"'))}for(i=0;i0){h=-parseInt((Unn(0,r,n.length),n.substr(0,r)),10);n=(w3(r,n.length+1),n.substr(r));a-=r;t=false}while(a>=c){r=parseInt((Unn(0,c,n.length),n.substr(0,c)),10);n=(w3(c,n.length+1),n.substr(c));a-=c;if(t){t=false}else{if(kwn(h,u)<0){throw dm(new iT(k0n+o+'"'))}h=Kgn(h,f)}h=Fgn(h,r)}if(kwn(h,0)>0){throw dm(new iT(k0n+o+'"'))}if(!s){h=Ptn(h);if(kwn(h,0)<0){throw dm(new iT(k0n+o+'"'))}}return h}function uJn(n){rVn();var e,t,r,i,a,c,u,s;if(n==null)return null;i=BL(n,FCn(37));if(i<0){return n}else{s=new vx((Unn(0,i,n.length),n.substr(0,i)));e=$nn(Vht,rte,28,4,15,1);u=0;r=0;for(c=n.length;ii+2&&Thn((w3(i+1,n.length),n.charCodeAt(i+1)),trt,rrt)&&Thn((w3(i+2,n.length),n.charCodeAt(i+2)),trt,rrt)){t=xG((w3(i+1,n.length),n.charCodeAt(i+1)),(w3(i+2,n.length),n.charCodeAt(i+2)));i+=2;if(r>0){(t&192)==128?e[u++]=t<<24>>24:r=0}else if(t>=128){if((t&224)==192){e[u++]=t<<24>>24;r=2}else if((t&240)==224){e[u++]=t<<24>>24;r=3}else if((t&248)==240){e[u++]=t<<24>>24;r=4}}if(r>0){if(u==r){switch(u){case 2:{IQ(s,((e[0]&31)<<6|e[1]&63)&$1n);break}case 3:{IQ(s,((e[0]&15)<<12|(e[1]&63)<<6|e[2]&63)&$1n);break}}u=0;r=0}}else{for(a=0;a=2){if((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a).i==0){r=(yj(),a=new uo,a);cen((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a),r)}else if((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a).i>1){b=new iR((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a));while(b.e!=b.i.gc()){FSn(b)}}wqn(e,bG(Yin((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a),0),166))}if(l){for(i=new _D((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a));i.e!=i.i.gc();){r=bG(iyn(i),166);for(f=new _D((!r.a&&(r.a=new PD(K7e,r,5)),r.a));f.e!=f.i.gc();){o=bG(iyn(f),377);s.a=t.Math.max(s.a,o.a);s.b=t.Math.max(s.b,o.b)}}}for(u=new _D((!n.n&&(n.n=new gz(unt,n,1,7)),n.n));u.e!=u.i.gc();){c=bG(iyn(u),135);h=bG(YDn(c,_5e),8);!!h&&EN(c,h.a,h.b);if(l){s.a=t.Math.max(s.a,c.i+c.g);s.b=t.Math.max(s.b,c.j+c.f)}}return s}function oJn(n,e,t,r,i){var a,c,u;mrn(n,e);c=e[0];a=ZJ(t.c,0);u=-1;if(tln(t)){if(r>0){if(c+r>n.length){return false}u=HNn((Unn(0,c+r,n.length),n.substr(0,c+r)),e)}else{u=HNn(n,e)}}switch(a){case 71:u=JOn(n,c,zfn(fT(vle,1),XZn,2,6,[W1n,Q1n]),e);i.e=u;return true;case 77:return f_n(n,e,i,u,c);case 76:return h_n(n,e,i,u,c);case 69:return JAn(n,e,c,i);case 99:return YAn(n,e,c,i);case 97:u=JOn(n,c,zfn(fT(vle,1),XZn,2,6,["AM","PM"]),e);i.b=u;return true;case 121:return l_n(n,e,c,u,t,i);case 100:if(u<=0){return false}i.c=u;return true;case 83:if(u<0){return false}return cpn(u,c,e[0],i);case 104:u==12&&(u=0);case 75:case 72:if(u<0){return false}i.f=u;i.g=false;return true;case 107:if(u<0){return false}i.f=u;i.g=true;return true;case 109:if(u<0){return false}i.j=u;return true;case 115:if(u<0){return false}i.n=u;return true;case 90:if(cE[o]&&(v=o);for(l=new nd(n.a.b);l.a1){a=aKn(e);l=c.g;d=bG(YDn(e,AZe),107);g=bM(MK(YDn(e,dZe)));(!e.a&&(e.a=new gz(snt,e,10,11)),e.a).i>1&&bM(MK(YDn(e,(vBn(),GYe))))!=y0n&&(c.c+(d.b+d.c))/(c.b+(d.d+d.a))1&&bM(MK(YDn(e,(vBn(),UYe))))!=y0n&&(c.c+(d.b+d.c))/(c.b+(d.d+d.a))>g&&Pyn(a,(vBn(),VYe),t.Math.max(bM(MK(YDn(e,qYe))),bM(MK(YDn(a,VYe)))-bM(MK(YDn(e,UYe)))));w=new jO(i,h);o=EYn(w,a,b);f=o.g;if(f>=l&&f==f){for(u=0;u<(!a.a&&(a.a=new gz(snt,a,10,11)),a.a).i;u++){TNn(n,bG(Yin((!a.a&&(a.a=new gz(snt,a,10,11)),a.a),u),27),bG(Yin((!e.a&&(e.a=new gz(snt,e,10,11)),e.a),u),27))}$in(e,w);B1(c,o.c);_1(c,o.b)}--s}Pyn(e,(vBn(),KYe),c.b);Pyn(e,FYe,c.c);r.Vg()}function bJn(n,e){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m;e.Ug("Interactive node layering",1);r=new im;for(b=new nd(n.a);b.a=s){PK(m.b>0);m.a.Xb(m.c=--m.b);break}else if(v.a>o){if(!i){ED(v.b,h);v.c=t.Math.min(v.c,o);v.a=t.Math.max(v.a,s);i=v}else{Dfn(i.b,v.b);i.a=t.Math.max(i.a,v.a);RQ(m)}}}if(!i){i=new Pk;i.c=o;i.a=s;MF(m,i);ED(i.b,h)}}u=n.b;f=0;for(p=new nd(r);p.aw){if(c){fL(T,b);fL(E,Bwn(f.b-1))}O=r.b;A+=b+e;b=0;h=t.Math.max(h,r.b+r.c+I)}San(s,O);Pan(s,A);h=t.Math.max(h,O+I+r.c);b=t.Math.max(b,l);O+=I+e}h=t.Math.max(h,i);C=A+b+r.a;if(Cn4n;S=t.Math.abs(b.b-d.b)>n4n;(!r&&E&&S||r&&(E||S))&&hq(v.a,y)}esn(v.a,i);i.b==0?b=y:b=(PK(i.b!=0),bG(i.c.b.c,8));dfn(w,l,g);if(Esn(a)==j){if(VQ(j.i)!=a.a){g=new wj;MAn(g,VQ(j.i),m)}Ehn(v,VDe,g)}wOn(w,v,m);h.a.zc(w,h)}f2(v,M);b2(v,j)}for(f=h.a.ec().Kc();f.Ob();){o=bG(f.Pb(),18);f2(o,null);b2(o,null)}e.Vg()}function gJn(n,e){var t,r,i,a,c,u,s,o,f,h,l;i=bG(lIn(n,(eqn(),wWe)),88);f=i==(Bdn(),o5e)||i==f5e?s5e:f5e;t=bG(v8(tY(new gX(null,new d3(n.b,16)),new Fc),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[(Sbn(),Lde)]))),15);s=bG(v8(rY(t.Oc(),new Lv(e)),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[Lde]))),15);s.Gc(bG(v8(rY(t.Oc(),new Nv(e)),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[Lde]))),16));s.jd(new $v(f));l=new Vj(new Dv(i));r=new rm;for(u=s.Kc();u.Ob();){c=bG(u.Pb(),240);o=bG(c.a,40);if(lM(yK(c.c))){l.a.zc(o,(Qx(),Bhe))==null;new ld(l.a.Zc(o,false)).a.gc()>0&&jJ(r,o,bG(new ld(l.a.Zc(o,false)).a.Vc(),40));new ld(l.a.ad(o,true)).a.gc()>1&&jJ(r,mpn(l,o),o)}else{if(new ld(l.a.Zc(o,false)).a.gc()>0){a=bG(new ld(l.a.Zc(o,false)).a.Vc(),40);BA(a)===BA(_A(GX(r.f,o)))&&bG(lIn(o,(DQn(),Ize)),15).Fc(a)}if(new ld(l.a.ad(o,true)).a.gc()>1){h=mpn(l,o);BA(_A(GX(r.f,h)))===BA(o)&&bG(lIn(h,(DQn(),Ize)),15).Fc(o)}l.a.Bc(o)!=null}}}function vJn(n){var e,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y;if(n.gc()==1){return bG(n.Xb(0),235)}else if(n.gc()<=0){return new k7}for(a=n.Kc();a.Ob();){r=bG(a.Pb(),235);d=0;h=pZn;l=pZn;o=T1n;f=T1n;for(w=new nd(r.e);w.as){k=0;y+=u+p;u=0}cUn(g,r,k,y);e=t.Math.max(e,k+v.a);u=t.Math.max(u,v.b);k+=v.a+p}return g}function pJn(n){KGn();var e,t,r,i,a,c,u,s,o,f,h,l,b,w,d,g;if(n==null)return null;a=qtn(n);w=dgn(a);if(w%4!=0){return null}d=w/4|0;if(d==0)return $nn(Vht,rte,28,0,15,1);h=null;e=0;t=0;r=0;i=0;c=0;u=0;s=0;o=0;b=0;l=0;f=0;h=$nn(Vht,rte,28,d*3,15,1);for(;b>4)<<24>>24;h[l++]=((t&15)<<4|r>>2&15)<<24>>24;h[l++]=(r<<6|i)<<24>>24}if(!TE(c=a[f++])||!TE(u=a[f++])){return null}e=Hft[c];t=Hft[u];s=a[f++];o=a[f++];if(Hft[s]==-1||Hft[o]==-1){if(s==61&&o==61){if((t&15)!=0)return null;g=$nn(Vht,rte,28,b*3+1,15,1);QGn(h,0,g,0,b*3);g[l]=(e<<2|t>>4)<<24>>24;return g}else if(s!=61&&o==61){r=Hft[s];if((r&3)!=0)return null;g=$nn(Vht,rte,28,b*3+2,15,1);QGn(h,0,g,0,b*3);g[l++]=(e<<2|t>>4)<<24>>24;g[l]=((t&15)<<4|r>>2&15)<<24>>24;return g}else{return null}}else{r=Hft[s];i=Hft[o];h[l++]=(e<<2|t>>4)<<24>>24;h[l++]=((t&15)<<4|r>>2&15)<<24>>24;h[l++]=(r<<6|i)<<24>>24}return h}function mJn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y;e.Ug(T6n,1);w=bG(lIn(n,(IYn(),gFe)),223);for(i=new nd(n.b);i.a=2){d=true;l=new nd(a.j);t=bG(K3(l),12);b=null;while(l.a0){i=l.gc();f=c0(t.Math.floor((i+1)/2))-1;a=c0(t.Math.ceil((i+1)/2))-1;if(e.o==Lqe){for(h=a;h>=f;h--){if(e.a[y.p]==y){g=bG(l.Xb(h),42);d=bG(g.a,10);if(!fS(r,g.b)&&w>n.b.e[d.p]){e.a[d.p]=y;e.g[y.p]=e.g[d.p];e.a[y.p]=e.g[y.p];e.f[e.g[y.p].p]=(Qx(),lM(e.f[e.g[y.p].p])&y.k==(YIn(),tEe)?true:false);w=n.b.e[d.p]}}}}else{for(h=f;h<=a;h++){if(e.a[y.p]==y){p=bG(l.Xb(h),42);v=bG(p.a,10);if(!fS(r,p.b)&&w0){a=bG(Yq(v.c.a,T-1),10);u=n.i[a.p];E=t.Math.ceil(S$(n.n,a,v));c=M.a.e-v.d.d-(u.a.e+a.o.b+a.d.a)-E}f=y0n;if(T0&&j.a.e.e-j.a.a-(j.b.e.e-j.b.a)<0;d=k.a.e.e-k.a.a-(k.b.e.e-k.b.a)<0&&j.a.e.e-j.a.a-(j.b.e.e-j.b.a)>0;w=k.a.e.e+k.b.aj.b.e.e+j.a.a;y=0;!g&&!d&&(b?c+l>0?y=l:f-i>0&&(y=i):w&&(c+s>0?y=s:f-m>0&&(y=m)));M.a.e+=y;M.b&&(M.d.e+=y);return false}function MJn(n,e,r){var i,a,c,u,s,o,f,h,l,b;i=new yY(e.Lf().a,e.Lf().b,e.Mf().a,e.Mf().b);a=new fN;if(n.c){for(u=new nd(e.Rf());u.ao&&(r.a+=Z$($nn(Uht,L1n,28,-o,15,1)));r.a+="Is";if(BL(s,FCn(32))>=0){for(i=0;i=r.o.b/2}else{p=!h}if(p){v=bG(lIn(r,(WYn(),zDe)),15);if(!v){a=new im;Ehn(r,zDe,a)}else if(l){a=v}else{i=bG(lIn(r,X$e),15);if(!i){a=new im;Ehn(r,X$e,a)}else{v.gc()<=i.gc()?a=v:a=i}}}else{i=bG(lIn(r,(WYn(),X$e)),15);if(!i){a=new im;Ehn(r,X$e,a)}else if(h){a=i}else{v=bG(lIn(r,zDe),15);if(!v){a=new im;Ehn(r,zDe,a)}else{i.gc()<=v.gc()?a=i:a=v}}}a.Fc(n);Ehn(n,(WYn(),z$e),t);if(e.d==t){b2(e,null);t.e.c.length+t.g.c.length==0&&l2(t,null);Kln(t)}else{f2(e,null);t.e.c.length+t.g.c.length==0&&l2(t,null)}XY(e.a)}function IJn(n,e,r){var i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P,C,I,O,A;r.Ug("MinWidth layering",1);w=e.b;j=e.a;A=bG(lIn(e,(IYn(),_Fe)),17).a;s=bG(lIn(e,BFe),17).a;n.b=bM(MK(lIn(e,R_e)));n.d=y0n;for(y=new nd(j);y.a0){f=0;!!v&&(f+=s);f+=(S-1)*u;!!k&&(f+=s);E&&!!k&&(f=t.Math.max(f,WKn(k,u,m,j)));if(f=n.a){i=Hqn(n,k);h=t.Math.max(h,i.b);M=t.Math.max(M,i.d);ED(s,new nA(k,i))}}S=new im;for(f=0;f0),p.a.Xb(p.c=--p.b),P=new pQ(n.b),MF(p,P),PK(p.b0){l=f<100?null:new fj(f);o=new Vsn(e);w=o.g;v=$nn(Ght,z1n,28,f,15,1);r=0;k=new _in(f);for(i=0;i=0;){if(b!=null?bdn(b,w[s]):BA(b)===BA(w[s])){if(v.length<=r){g=v;v=$nn(Ght,z1n,28,2*v.length,15,1);QGn(g,0,v,0,r)}v[r++]=i;cen(k,w[s]);break n}}b=b;if(BA(b)===BA(u)){break}}}o=k;w=k.g;f=r;if(r>v.length){g=v;v=$nn(Ght,z1n,28,r,15,1);QGn(g,0,v,0,r)}if(r>0){m=true;for(a=0;a=0;){yjn(n,v[c])}if(r!=f){for(i=f;--i>=r;){yjn(o,i)}g=v;v=$nn(Ght,z1n,28,r,15,1);QGn(g,0,v,0,r)}e=o}}}else{e=fjn(n,e);for(i=n.i;--i>=0;){if(e.Hc(n.g[i])){yjn(n,i);m=true}}}if(m){if(v!=null){t=e.gc();h=t==1?s2(n,4,e.Kc().Pb(),null,v[0],d):s2(n,6,e,v,v[0],d);l=t<100?null:new fj(t);for(i=e.Kc();i.Ob();){b=i.Pb();l=J_(n,bG(b,76),l)}if(!l){Pon(n.e,h)}else{l.nj(h);l.oj()}}else{l=QF(e.gc());for(i=e.Kc();i.Ob();){b=i.Pb();l=J_(n,bG(b,76),l)}!!l&&l.oj()}return true}else{return false}}function NJn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,g,v,p,m,k;t=new Qyn(e);t.a||PUn(e);o=lBn(e);s=new U1;v=new XFn;for(g=new nd(e.a);g.a0||r.o==Lqe&&a=t}function xJn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P,C;m=e;p=new U1;k=new U1;f=M6(m,mte);r=new AY(n,t,p,k);$On(r.a,r.b,r.c,r.d,f);s=(T=p.i,!T?p.i=new HD(p,p.c):T);for(E=s.Kc();E.Ob();){j=bG(E.Pb(),166);i=bG(r7(p,j),21);for(d=i.Kc();d.Ob();){w=d.Pb();y=bG(kan(n.d,w),166);if(y){u=(!j.e&&(j.e=new g_(U7e,j,10,9)),j.e);cen(u,y)}else{c=E6(m,Pte);l=Nte+w+$te+c;b=l+Lte;throw dm(new AM(b))}}}o=(M=k.i,!M?k.i=new HD(k,k.c):M);for(P=o.Kc();P.Ob();){S=bG(P.Pb(),166);a=bG(r7(k,S),21);for(v=a.Kc();v.Ob();){g=v.Pb();y=bG(kan(n.d,g),166);if(y){h=(!S.g&&(S.g=new g_(U7e,S,9,10)),S.g);cen(h,y)}else{c=E6(m,Pte);l=Nte+g+$te+c;b=l+Lte;throw dm(new AM(b))}}}!t.b&&(t.b=new g_(B7e,t,4,7));if(t.b.i!=0&&(!t.c&&(t.c=new g_(B7e,t,5,8)),t.c.i!=0)&&(!t.b&&(t.b=new g_(B7e,t,4,7)),t.b.i<=1&&(!t.c&&(t.c=new g_(B7e,t,5,8)),t.c.i<=1))&&(!t.a&&(t.a=new gz(U7e,t,6,6)),t.a).i==1){C=bG(Yin((!t.a&&(t.a=new gz(U7e,t,6,6)),t.a),0),166);if(!dMn(C)&&!gMn(C)){Jcn(C,bG(Yin((!t.b&&(t.b=new g_(B7e,t,4,7)),t.b),0),84));Ycn(C,bG(Yin((!t.c&&(t.c=new g_(B7e,t,5,8)),t.c),0),84))}}}function RJn(n){var e,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P;for(k=n.a,y=0,M=k.length;y0){l=bG(Yq(b.c.a,u-1),10);E=S$(n.b,b,l);v=b.n.b-b.d.d-(l.n.b+l.o.b+l.d.a+E)}else{v=b.n.b-b.d.d}f=t.Math.min(v,f);if(u1&&(u=t.Math.min(u,t.Math.abs(bG(dyn(s.a,1),8).b-h.b)))}}}}}else{for(g=new nd(e.j);g.aa){c=b.a-a;u=pZn;i.c.length=0;a=b.a}if(b.a>=a){Tm(i.c,s);s.a.b>1&&(u=t.Math.min(u,t.Math.abs(bG(dyn(s.a,s.a.b-2),8).b-b.b)))}}}}}if(i.c.length!=0&&c>e.o.a/2&&u>e.o.b/2){w=new vOn;l2(w,e);KLn(w,(UQn(),D8e));w.n.a=e.o.a/2;p=new vOn;l2(p,e);KLn(p,Y8e);p.n.a=e.o.a/2;p.n.b=e.o.b;for(o=new nd(i);o.a=f.b?f2(s,p):f2(s,w)}else{f=bG(uG(s.a),8);v=s.a.b==0?a3(s.c):bG(MR(s.a),8);v.b>=f.b?b2(s,p):b2(s,w)}l=bG(lIn(s,(IYn(),DFe)),75);!!l&&npn(l,f,true)}e.n.a=a-e.o.a/2}}function FJn(n,e,r){var i,a,c,u,s,o,f,h,l,b;for(s=Gkn(n.b,0);s.b!=s.d.c;){u=bG($6(s),40);if(T_(u.c,B9n)){continue}f=BDn(u,n);e==(Bdn(),o5e)||e==f5e?g$(f,new fu):g$(f,new hu);o=f.c.length;for(i=0;i=0?b=$vn(u):b=Wdn($vn(u));n.qf(j_e,b)}o=new wj;l=false;if(n.pf(v_e)){qR(o,bG(n.of(v_e),8));l=true}else{TD(o,c.a/2,c.b/2)}switch(b.g){case 4:Ehn(f,KFe,(Wvn(),QDe));Ehn(f,nDe,(Lhn(),HNe));f.o.b=c.b;d<0&&(f.o.a=-d);KLn(h,(UQn(),$8e));l||(o.a=c.a);o.a-=c.a;break;case 2:Ehn(f,KFe,(Wvn(),YDe));Ehn(f,nDe,(Lhn(),_Ne));f.o.b=c.b;d<0&&(f.o.a=-d);KLn(h,(UQn(),n9e));l||(o.a=0);break;case 1:Ehn(f,bDe,(irn(),K$e));f.o.a=c.a;d<0&&(f.o.b=-d);KLn(h,(UQn(),Y8e));l||(o.b=c.b);o.b-=c.b;break;case 3:Ehn(f,bDe,(irn(),x$e));f.o.a=c.a;d<0&&(f.o.b=-d);KLn(h,(UQn(),D8e));l||(o.b=0)}qR(h.n,o);Ehn(f,v_e,o);if(e==p8e||e==k8e||e==m8e){w=0;if(e==p8e&&n.pf(k_e)){switch(b.g){case 1:case 2:w=bG(n.of(k_e),17).a;break;case 3:case 4:w=-bG(n.of(k_e),17).a}}else{switch(b.g){case 4:case 2:w=a.b;e==k8e&&(w/=i.b);break;case 1:case 3:w=a.a;e==k8e&&(w/=i.a)}}Ehn(f,$De,w)}Ehn(f,cDe,b);return f}function BJn(){Tj();function n(n){var e=this;this.dispatch=function(e){var t=e.data;switch(t.cmd){case"algorithms":var r=opn((dZ(),new Qw(new Gw(rtt.b))));n.postMessage({id:t.id,data:r});break;case"categories":var i=opn((dZ(),new Qw(new Gw(rtt.c))));n.postMessage({id:t.id,data:i});break;case"options":var a=opn((dZ(),new Qw(new Gw(rtt.d))));n.postMessage({id:t.id,data:a});break;case"register":Dzn(t.algorithms);n.postMessage({id:t.id});break;case"layout":Zqn(t.graph,t.layoutOptions||{},t.options||{});n.postMessage({id:t.id,data:t.graph});break}};this.saveDispatch=function(t){try{e.dispatch(t)}catch(r){n.postMessage({id:t.data.id,error:r})}}}function t(e){var t=this;this.dispatcher=new n({postMessage:function(n){t.onmessage({data:n})}});this.postMessage=function(n){setTimeout((function(){t.dispatcher.saveDispatch({data:n})}),0)}}if(typeof document===r2n&&typeof self!==r2n){var i=new n(self);self.onmessage=i.saveDispatch}else if(typeof e!==r2n&&e.exports){Object.defineProperty(r,"__esModule",{value:true});e.exports={default:t,Worker:t}}}function HJn(n,e,t){var r,i,a,c,u,s,o,f,h,l;f=new yMn(t);Yon(f,e);Ehn(f,(WYn(),EDe),e);f.o.a=e.g;f.o.b=e.f;f.n.a=e.i;f.n.b=e.j;ED(t.a,f);jJ(n.a,e,f);((!e.a&&(e.a=new gz(snt,e,10,11)),e.a).i!=0||lM(yK(YDn(e,(IYn(),AFe)))))&&Ehn(f,W$e,(Qx(),true));o=bG(lIn(t,oDe),21);h=bG(lIn(f,(IYn(),m_e)),101);h==(FPn(),T8e)?Ehn(f,m_e,M8e):h!=M8e&&o.Fc((o_n(),E$e));l=0;r=bG(lIn(t,oFe),88);for(s=new _D((!e.c&&(e.c=new gz(ont,e,9,9)),e.c));s.e!=s.i.gc();){u=bG(iyn(s),123);i=H0(e);(BA(YDn(i,zKe))!==BA((Smn(),hHe))||BA(YDn(i,uFe))===BA((Emn(),NNe))||BA(YDn(i,uFe))===BA((Emn(),ANe))||lM(yK(YDn(i,QKe)))||BA(YDn(i,HKe))!==BA((zmn(),hje))||BA(YDn(i,UFe))===BA((CHn(),ZBe))||BA(YDn(i,UFe))===BA((CHn(),nHe))||BA(YDn(i,GFe))===BA((PKn(),TBe))||BA(YDn(i,GFe))===BA((PKn(),EBe)))&&!lM(yK(YDn(e,XKe)))&&Pyn(u,jDe,Bwn(l++));lM(yK(YDn(u,u_e)))||TQn(n,u,f,o,r,h)}for(c=new _D((!e.n&&(e.n=new gz(unt,e,1,7)),e.n));c.e!=c.i.gc();){a=bG(iyn(c),135);!lM(yK(YDn(a,u_e)))&&!!a.a&&ED(f.b,lwn(a))}lM(yK(lIn(f,KKe)))&&o.Fc((o_n(),k$e));if(lM(yK(lIn(f,OFe)))){o.Fc((o_n(),j$e));o.Fc(T$e);Ehn(f,m_e,M8e)}return f}function UJn(n,e,r,i,a,c,u){var s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P,C,I,O,A;g=0;P=0;for(f=new nd(n.b);f.ag){if(c){fL(T,w);fL(E,Bwn(h.b-1));ED(n.d,d);s.c.length=0}O=r.b;A+=w+e;w=0;l=t.Math.max(l,r.b+r.c+I)}Tm(s.c,o);byn(o,O,A);l=t.Math.max(l,O+I+r.c);w=t.Math.max(w,b);O+=I+e;d=o}Dfn(n.a,s);ED(n.d,bG(Yq(s,s.c.length-1),163));l=t.Math.max(l,i);C=A+w+r.a;if(Ci.d.d+i.d.a){f.f.d=true}else{f.f.d=true;f.f.a=true}}}r.b!=r.d.c&&(e=t)}if(f){a=bG(fQ(n.f,c.d.i),60);if(e.ba.d.d+a.d.a){f.f.d=true}else{f.f.d=true;f.f.a=true}}}}for(u=new GV(sx(Qgn(b).a.Kc(),new d));dDn(u);){c=bG(K9(u),18);if(c.a.b!=0){e=bG(MR(c.a),8);if(c.d.j==(UQn(),D8e)){v=new Vqn(e,new PO(e.a,i.d.d),i,c);v.f.a=true;v.a=c.d;Tm(g.c,v)}if(c.d.j==Y8e){v=new Vqn(e,new PO(e.a,i.d.d+i.d.a),i,c);v.f.d=true;v.a=c.d;Tm(g.c,v)}}}}}return g}function WJn(n,e,t){var r,i,a,c,u,s,o,f,h,l;s=new im;h=e.length;c=Ghn(t);for(o=0;o=w){if(p>w){b.c.length=0;w=p}Tm(b.c,c)}}if(b.c.length!=0){l=bG(Yq(b,sMn(e,b.c.length)),131);P.a.Bc(l)!=null;l.s=d++;Zxn(l,E,M);b.c.length=0}}k=n.c.length+1;for(u=new nd(n);u.aS.s){RQ(t);Ttn(S.i,r);if(r.c>0){r.a=S;ED(S.t,r);r.b=T;ED(T.i,r)}}}}}function YJn(n,e,t,r,i){var a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P;d=new H7(e.b);k=new H7(e.b);l=new H7(e.b);j=new H7(e.b);g=new H7(e.b);for(T=Gkn(e,0);T.b!=T.d.c;){y=bG($6(T),12);for(u=new nd(y.g);u.a0;v=y.g.c.length>0;o&&v?(Tm(l.c,y),true):o?(Tm(d.c,y),true):v&&(Tm(k.c,y),true)}for(w=new nd(d);w.am.nh()-f.b&&(b=m.nh()-f.b);w>m.oh()-f.d&&(w=m.oh()-f.d);h0){for(y=Gkn(n.f,0);y.b!=y.d.c;){k=bG($6(y),10);k.p+=b-n.e}EAn(n);XY(n.f);D_n(n,i,w)}else{hq(n.f,w);w.p=i;n.e=t.Math.max(n.e,i);for(c=new GV(sx(Qgn(w).a.Kc(),new d));dDn(c);){a=bG(K9(c),18);if(!a.c.i.c&&a.c.i.k==(YIn(),eEe)){hq(n.f,a.c.i);a.c.i.p=i-1}}n.c=i}}}else{EAn(n);XY(n.f);i=0;if(dDn(new GV(sx(Qgn(w).a.Kc(),new d)))){b=0;b=Lyn(b,w);i=b+2;D_n(n,i,w)}else{hq(n.f,w);w.p=0;n.e=t.Math.max(n.e,0);n.b=bG(Yq(n.d.b,0),30);n.c=0}}}}n.f.b==0||EAn(n);n.d.a.c.length=0;m=new im;for(f=new nd(n.d.b);f.a=48&&e<=57){r=e-48;while(i=48&&e<=57){r=r*10+e-48;if(r<0)throw dm(new NM(oZn((c$(),Dre))))}}else{throw dm(new NM(oZn((c$(),Are))))}t=r;if(e==44){if(i>=n.j){throw dm(new NM(oZn((c$(),Nre))))}else if((e=ZJ(n.i,i++))>=48&&e<=57){t=e-48;while(i=48&&e<=57){t=t*10+e-48;if(t<0)throw dm(new NM(oZn((c$(),Dre))))}if(r>t)throw dm(new NM(oZn((c$(),$re))))}else{t=-1}}if(e!=125)throw dm(new NM(oZn((c$(),Lre))));if(n.bm(i)){a=(eZn(),eZn(),++Tht,new a8(9,a));n.d=i+1}else{a=(eZn(),eZn(),++Tht,new a8(3,a));n.d=i}a.Om(r);a.Nm(t);OYn(n)}}return a}function sYn(n){var e,t,r,i,a;t=bG(lIn(n,(WYn(),oDe)),21);e=hN(WMe);i=bG(lIn(n,(IYn(),SFe)),346);i==(Dwn(),U5e)&&yon(e,QMe);lM(yK(lIn(n,jFe)))?xq(e,(bIn(),rTe),(YYn(),nCe)):xq(e,(bIn(),aTe),(YYn(),nCe));lIn(n,(U7(),L3e))!=null&&yon(e,JMe);(lM(yK(lIn(n,NFe)))||lM(yK(lIn(n,EFe))))&&mV(e,(bIn(),uTe),(YYn(),wPe));switch(bG(lIn(n,oFe),88).g){case 2:case 3:case 4:mV(xq(e,(bIn(),rTe),(YYn(),gPe)),uTe,dPe)}t.Hc((o_n(),k$e))&&mV(xq(xq(e,(bIn(),rTe),(YYn(),bPe)),cTe,hPe),uTe,lPe);BA(lIn(n,UFe))!==BA((CHn(),cHe))&&xq(e,(bIn(),aTe),(YYn(),XPe));if(t.Hc(P$e)){xq(e,(bIn(),rTe),(YYn(),YPe));xq(e,iTe,QPe);xq(e,aTe,JPe)}BA(lIn(n,BKe))!==BA((HIn(),d$e))&&BA(lIn(n,gFe))!==BA((qgn(),y5e))&&mV(e,(bIn(),uTe),(YYn(),IPe));lM(yK(lIn(n,CFe)))&&xq(e,(bIn(),aTe),(YYn(),CPe));lM(yK(lIn(n,aFe)))&&xq(e,(bIn(),aTe),(YYn(),cCe));if(NRn(n)){BA(lIn(n,SFe))===BA(U5e)?r=bG(lIn(n,YKe),299):r=bG(lIn(n,ZKe),299);a=r==(sfn(),L$e)?(YYn(),WPe):(YYn(),oCe);xq(e,(bIn(),cTe),a)}switch(bG(lIn(n,bBe),388).g){case 1:xq(e,(bIn(),cTe),(YYn(),uCe));break;case 2:mV(xq(xq(e,(bIn(),aTe),(YYn(),uPe)),cTe,sPe),uTe,oPe)}BA(lIn(n,zKe))!==BA((Smn(),hHe))&&xq(e,(bIn(),aTe),(YYn(),sCe));return e}function oYn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m;if(Lz(n.a,e)){if(fS(bG(fQ(n.a,e),49),t)){return 1}}else{jJ(n.a,e,new uk)}if(Lz(n.a,t)){if(fS(bG(fQ(n.a,t),49),e)){return-1}}else{jJ(n.a,t,new uk)}if(Lz(n.e,e)){if(fS(bG(fQ(n.e,e),49),t)){return-1}}else{jJ(n.e,e,new uk)}if(Lz(n.e,t)){if(fS(bG(fQ(n.a,t),49),e)){return 1}}else{jJ(n.e,t,new uk)}if(n.c==(Smn(),lHe)||!jR(e,(WYn(),jDe))||!jR(t,(WYn(),jDe))){h=null;for(o=new nd(e.j);o.ac?bHn(n,e,t):bHn(n,t,e);return ic?1:0}}r=bG(lIn(e,(WYn(),jDe)),17).a;a=bG(lIn(t,jDe),17).a;r>a?bHn(n,e,t):bHn(n,t,e);return ra?1:0}function fYn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b,w,d,g;if(t==null){return null}if(n.a!=e.jk()){throw dm(new jM(nte+e.xe()+ete))}if(G$(e,469)){g=S_n(bG(e,685),t);if(!g){throw dm(new jM(tte+t+"' is not a valid enumerator of '"+e.xe()+"'"))}return g}switch(cdn((yAn(),Vut),e).Nl()){case 2:{t=SXn(t,false);break}case 3:{t=SXn(t,true);break}}r=cdn(Vut,e).Jl();if(r){return r.jk().wi().ti(r,t)}l=cdn(Vut,e).Ll();if(l){g=new im;for(o=Gln(t),f=0,h=o.length;f1){d=new iR((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a));while(d.e!=d.i.gc()){FSn(d)}}u=bG(Yin((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a),0),166);v=O;O>M+y?v=M+y:OT+g?p=T+g:AM-y&&vT-g&&pO+I?E=O+I:MA+j?S=A+j:TO-I&&EA-j&&Sr&&(b=r-1);w=x+bRn(e,24)*X0n*l-l/2;w<0?w=1:w>i&&(w=i-1);a=(yj(),o=new io,o);Aan(a,b);Man(a,w);cen((!u.a&&(u.a=new PD(K7e,u,5)),u.a),a)}}function vYn(n){dP(n,new dCn(GT(_T(UT(HT(new vs,ane),"ELK Rectangle Packing"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."),new Gu)));z4(n,ane,x3n,1.3);z4(n,ane,w4n,(Qx(),false));z4(n,ane,R3n,LZe);z4(n,ane,c4n,15);z4(n,ane,r9n,tyn(gZe));z4(n,ane,g4n,tyn(TZe));z4(n,ane,D4n,tyn(EZe));z4(n,ane,d4n,tyn(SZe));z4(n,ane,v4n,tyn(MZe));z4(n,ane,b4n,tyn(PZe));z4(n,ane,p4n,tyn(NZe));z4(n,ane,Q7n,tyn(KZe));z4(n,ane,J7n,tyn(RZe));z4(n,ane,W7n,tyn(_Ze));z4(n,ane,z7n,tyn(FZe));z4(n,ane,Y7n,tyn(OZe));z4(n,ane,Z7n,tyn(IZe));z4(n,ane,nne,tyn(CZe));z4(n,ane,ene,tyn(xZe));z4(n,ane,f4n,tyn(mZe));z4(n,ane,d9n,tyn(kZe));z4(n,ane,X7n,tyn(pZe));z4(n,ane,q7n,tyn(vZe));z4(n,ane,V7n,tyn(yZe));z4(n,ane,G7n,tyn(DZe))}function pYn(n,e){MXn();var t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P,C,I;j=n.e;w=n.d;i=n.a;if(j==0){switch(e){case 0:return"0";case 1:return L0n;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:M=new nT;e<0?(M.a+="0E+",M):(M.a+="0E",M);M.a+=-e;return M.a}}m=w*10+1+7;k=$nn(Uht,L1n,28,m+1,15,1);t=m;if(w==1){u=i[0];if(u<0){I=O3(u,A0n);do{d=I;I=pSn(I,10);k[--t]=48+MV(Fgn(d,Kgn(I,10)))&$1n}while(kwn(I,0)!=0)}else{I=u;do{d=I;I=I/10|0;k[--t]=48+(d-I*10)&$1n}while(I!=0)}}else{S=$nn(Ght,z1n,28,w,15,1);C=w;QGn(i,0,S,0,C);n:while(true){T=0;for(o=C-1;o>=0;o--){P=Rgn(KV(T,32),O3(S[o],A0n));v=tCn(P);S[o]=MV(v);T=MV(FV(v,32))}p=MV(T);g=t;do{k[--t]=48+p%10&$1n}while((p=p/10|0)!=0&&t!=0);r=9-g+t;for(s=0;s0;s++){k[--t]=48}h=C-1;for(;S[h]==0;h--){if(h==0){break n}}C=h+1}while(k[t]==48){++t}}b=j<0;c=m-t-e-1;if(e==0){b&&(k[--t]=45);return Tmn(k,t,m-t)}if(e>0&&c>=-6){if(c>=0){f=t+c;for(l=m-1;l>=f;l--){k[l+1]=k[l]}k[++f]=46;b&&(k[--t]=45);return Tmn(k,t,m-t+1)}for(h=2;h<-c+1;h++){k[--t]=48}k[--t]=46;k[--t]=48;b&&(k[--t]=45);return Tmn(k,t,m-t)}E=t+1;a=m;y=new eT;b&&(y.a+="-",y);if(a-E>=1){IQ(y,k[t]);y.a+=".";y.a+=Tmn(k,t+1,m-t-1)}else{y.a+=Tmn(k,t,m-t)}y.a+="E";c>0&&(y.a+="+",y);y.a+=""+c;return y.a}function mYn(n,e){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T;n.c=e;n.g=new rm;r=(jP(),new Zy(n.c));i=new xd(r);xvn(i);k=TK(YDn(n.c,(gIn(),h0e)));o=bG(YDn(n.c,b0e),324);M=bG(YDn(n.c,w0e),437);u=bG(YDn(n.c,c0e),490);y=bG(YDn(n.c,l0e),438);n.j=bM(MK(YDn(n.c,d0e)));s=n.a;switch(o.g){case 0:s=n.a;break;case 1:s=n.b;break;case 2:s=n.i;break;case 3:s=n.e;break;case 4:s=n.f;break;default:throw dm(new jM(hne+(o.f!=null?o.f:""+o.g)))}n.d=new s0(s,M,u);Ehn(n.d,(oon(),ake),yK(YDn(n.c,s0e)));n.d.c=lM(yK(YDn(n.c,u0e)));if(mZ(n.c).i==0){return n.d}for(l=new _D(mZ(n.c));l.e!=l.i.gc();){h=bG(iyn(l),27);w=h.g/2;b=h.f/2;T=new PO(h.i+w,h.j+b);while(Lz(n.g,T)){UR(T,(t.Math.random()-.5)*n4n,(t.Math.random()-.5)*n4n)}g=bG(YDn(h,(JYn(),q4e)),140);v=new W0(T,new yY(T.a-w-n.j/2-g.b,T.b-b-n.j/2-g.d,h.g+n.j+(g.b+g.c),h.f+n.j+(g.d+g.a)));ED(n.d.i,v);jJ(n.g,T,new nA(v,h))}switch(y.g){case 0:if(k==null){n.d.d=bG(Yq(n.d.i,0),68)}else{for(m=new nd(n.d.i);m.a0?C+1:1}for(c=new nd(M.g);c.a0?C+1:1}}n.c[o]==0?hq(n.e,d):n.a[o]==0&&hq(n.f,d);++o}w=-1;b=1;h=new im;n.d=bG(lIn(e,(WYn(),xDe)),234);while(N>0){while(n.e.b!=0){O=bG(cG(n.e),10);n.b[O.p]=w--;uUn(n,O);--N}while(n.f.b!=0){A=bG(cG(n.f),10);n.b[A.p]=b++;uUn(n,A);--N}if(N>0){l=T1n;for(p=new nd(m);p.a=l){if(k>l){h.c.length=0;l=k}Tm(h.c,d)}}}f=n.sg(h);n.b[f.p]=b++;uUn(n,f);--N}}I=m.c.length+1;for(o=0;on.b[L]){Mqn(r,true);Ehn(e,Z$e,(Qx(),true))}}}}n.a=null;n.c=null;n.b=null;XY(n.f);XY(n.e);t.Vg()}function MYn(n,e,r){var i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T;M=bG(Yin((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a),0),166);h=new zk;y=new rm;T=wGn(M);ZAn(y.f,M,T);b=new rm;i=new vS;for(d=Dz(Yan(zfn(fT(Gce,1),jZn,20,0,[(!e.d&&(e.d=new g_(H7e,e,8,5)),e.d),(!e.e&&(e.e=new g_(H7e,e,7,4)),e.e)])));dDn(d);){w=bG(K9(d),74);if((!n.a&&(n.a=new gz(U7e,n,6,6)),n.a).i!=1){throw dm(new jM(See+(!n.a&&(n.a=new gz(U7e,n,6,6)),n.a).i))}if(w!=n){v=bG(Yin((!w.a&&(w.a=new gz(U7e,w,6,6)),w.a),0),166);w8(i,v,i.c.b,i.c);g=bG(_A(GX(y.f,v)),13);if(!g){g=wGn(v);ZAn(y.f,v,g)}l=r?r_(new uN(bG(Yq(T,T.c.length-1),8)),bG(Yq(g,g.c.length-1),8)):r_(new uN((b3(0,T.c.length),bG(T.c[0],8))),(b3(0,g.c.length),bG(g.c[0],8)));ZAn(b.f,v,l)}}if(i.b!=0){p=bG(Yq(T,r?T.c.length-1:0),8);for(f=1;f1&&(w8(h,p,h.c.b,h.c),true);Sin(a)}}}p=m}}return h}function TYn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S;t.Ug(c7n,1);S=bG(v8(tY(new gX(null,new d3(e,16)),new mu),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[(Sbn(),Lde)]))),15);f=bG(v8(tY(new gX(null,new d3(e,16)),new Rv(e)),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[Lde]))),15);w=bG(v8(tY(new gX(null,new d3(e,16)),new xv(e)),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[Lde]))),15);d=$nn(IVe,X9n,40,e.gc(),0,1);for(c=0;c=0&&E=0&&!d[b]){d[b]=i;f.gd(u);--u;break}b=E-l;if(b=0&&!d[b]){d[b]=i;f.gd(u);--u;break}}}w.jd(new ku);for(s=d.length-1;s>=0;s--){if(!d[s]&&!w.dc()){d[s]=bG(w.Xb(0),40);w.gd(0)}}for(o=0;o=0;s--){hq(t,(b3(s,c.c.length),bG(c.c[s],8)))}return t}function EYn(n,e,r){var i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y;k=bM(MK(YDn(e,(vBn(),VYe))));w=bM(MK(YDn(e,qYe)));b=bM(MK(YDn(e,HYe)));Kun((!e.a&&(e.a=new gz(snt,e,10,11)),e.a));p=lVn((!e.a&&(e.a=new gz(snt,e,10,11)),e.a),k,n.b);for(v=0;vl&&bEn((b3(l,e.c.length),bG(e.c[l],186)),f);f=null;while(e.c.length>l&&(b3(l,e.c.length),bG(e.c[l],186)).a.c.length==0){Ttn(e,(b3(l,e.c.length),e.c[l]))}}if(!f){--c;continue}if(!lM(yK(bG(Yq(f.b,0),27).of((A_n(),yZe))))&&XUn(e,w,a,f,g,t,l,r)){d=true;continue}if(g){b=w.b;h=f.f;if(!lM(yK(bG(Yq(f.b,0),27).of(yZe)))&&Ozn(e,w,a,f,t,l,r,i)){d=true;if(b=n.j){n.a=-1;n.c=1;return}e=ZJ(n.i,n.d++);n.a=e;if(n.b==1){switch(e){case 92:r=10;if(n.d>=n.j)throw dm(new NM(oZn((c$(),nre))));n.a=ZJ(n.i,n.d++);break;case 45:if((n.e&512)==512&&n.d=n.j)break;if(ZJ(n.i,n.d)!=63)break;if(++n.d>=n.j)throw dm(new NM(oZn((c$(),ere))));e=ZJ(n.i,n.d++);switch(e){case 58:r=13;break;case 61:r=14;break;case 33:r=15;break;case 91:r=19;break;case 62:r=18;break;case 60:if(n.d>=n.j)throw dm(new NM(oZn((c$(),ere))));e=ZJ(n.i,n.d++);if(e==61){r=16}else if(e==33){r=17}else throw dm(new NM(oZn((c$(),tre))));break;case 35:while(n.d=n.j)throw dm(new NM(oZn((c$(),nre))));n.a=ZJ(n.i,n.d++);break;default:r=0}n.c=r}function AYn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b,w,d,g;t.Ug("Process compaction",1);if(!lM(yK(lIn(e,(eqn(),lWe))))){return}i=bG(lIn(e,wWe),88);b=bM(MK(lIn(e,$We)));xXn(n,e,i);gJn(e,b/2/2);w=e.b;Run(w,new Iv(i));for(o=Gkn(w,0);o.b!=o.d.c;){s=bG($6(o),40);if(!lM(yK(lIn(s,(DQn(),Jze))))){r=dBn(s,i);d=Tqn(s,e);h=0;l=0;if(r){g=r.e;switch(i.g){case 2:h=g.a-b-s.f.a;d.e.a-b-s.f.ah&&(h=d.e.a+d.f.a+b);l=h+s.f.a;break;case 4:h=g.b-b-s.f.b;d.e.b-b-s.f.bh&&(h=d.e.b+d.f.b+b);l=h+s.f.b}}else if(d){switch(i.g){case 2:h=d.e.a-b-s.f.a;l=h+s.f.a;break;case 1:h=d.e.a+d.f.a+b;l=h+s.f.a;break;case 4:h=d.e.b-b-s.f.b;l=h+s.f.b;break;case 3:h=d.e.b+d.f.b+b;l=h+s.f.b}}if(BA(lIn(e,vWe))===BA((Lln(),Mze))){a=h;c=l;u=vln(tY(new gX(null,new d3(n.a,16)),new WI(a,c)));if(u.a!=null){i==(Bdn(),o5e)||i==f5e?s.e.a=h:s.e.b=h}else{i==(Bdn(),o5e)||i==l5e?u=vln(tY(nan(new gX(null,new d3(n.a,16))),new Ov(a))):u=vln(tY(nan(new gX(null,new d3(n.a,16))),new Av(a)));u.a!=null&&(i==o5e||i==f5e?s.e.a=bM(MK((PK(u.a!=null),bG(u.a,42)).a)):s.e.b=bM(MK((PK(u.a!=null),bG(u.a,42)).a)))}if(u.a!=null){f=Ctn(n.a,(PK(u.a!=null),u.a),0);if(f>0&&f!=bG(lIn(s,_We),17).a){Ehn(s,Oze,(Qx(),true));Ehn(s,_We,Bwn(f))}}}else{i==(Bdn(),o5e)||i==f5e?s.e.a=h:s.e.b=h}}}t.Vg()}function LYn(n){var e,t,r,i,a,c,u,s,o;n.b=1;OYn(n);e=null;if(n.c==0&&n.a==94){OYn(n);e=(eZn(),eZn(),++Tht,new U3(4));VFn(e,0,qae);u=(null,++Tht,new U3(4))}else{u=(eZn(),eZn(),++Tht,new U3(4))}i=true;while((o=n.c)!=1){if(o==0&&n.a==93&&!i){if(e){vWn(e,u);u=e}break}t=n.a;r=false;if(o==10){switch(t){case 100:case 68:case 119:case 87:case 115:case 83:CXn(u,SUn(t));r=true;break;case 105:case 73:case 99:case 67:t=(CXn(u,SUn(t)),-1);t<0&&(r=true);break;case 112:case 80:s=LNn(n,t);if(!s)throw dm(new NM(oZn((c$(),wre))));CXn(u,s);r=true;break;default:t=H_n(n)}}else if(o==24&&!i){if(e){vWn(e,u);u=e}a=LYn(n);vWn(u,a);if(n.c!=0||n.a!=93)throw dm(new NM(oZn((c$(),pre))));break}OYn(n);if(!r){if(o==0){if(t==91)throw dm(new NM(oZn((c$(),mre))));if(t==93)throw dm(new NM(oZn((c$(),kre))));if(t==45&&!i&&n.a!=93)throw dm(new NM(oZn((c$(),yre))))}if(n.c!=0||n.a!=45||t==45&&i){VFn(u,t,t)}else{OYn(n);if((o=n.c)==1)throw dm(new NM(oZn((c$(),gre))));if(o==0&&n.a==93){VFn(u,t,t);VFn(u,45,45)}else if(o==0&&n.a==93||o==24){throw dm(new NM(oZn((c$(),yre))))}else{c=n.a;if(o==0){if(c==91)throw dm(new NM(oZn((c$(),mre))));if(c==93)throw dm(new NM(oZn((c$(),kre))));if(c==45)throw dm(new NM(oZn((c$(),yre))))}else o==10&&(c=H_n(n));OYn(n);if(t>c)throw dm(new NM(oZn((c$(),jre))));VFn(u,t,c)}}}i=false}if(n.c==1)throw dm(new NM(oZn((c$(),gre))));Mxn(u);bVn(u);n.b=0;OYn(n);return u}function NYn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b,w,g,v,p,m,k,y,M;t.Ug("Coffman-Graham Layering",1);if(e.a.c.length==0){t.Vg();return}M=bG(lIn(e,(IYn(),xFe)),17).a;s=0;c=0;for(l=new nd(e.a);l.a=M||!fmn(p,r))&&(r=NJ(e,f));h2(p,r);for(a=new GV(sx(Qgn(p).a.Kc(),new d));dDn(a);){i=bG(K9(a),18);if(n.a[i.p]){continue}g=i.c.i;--n.e[g.p];n.e[g.p]==0&&(EG(qCn(b,g),$0n),true)}}for(o=f.c.length-1;o>=0;--o){ED(e.b,(b3(o,f.c.length),bG(f.c[o],30)))}e.a.c.length=0;t.Vg()}function $Yn(n,e){var t,r,i,a,c,u,s,o,f,h,l,b,w,g,v,p,m,k,y;y=false;do{y=false;for(a=e?new Rw(n.a.b).a.gc()-2:1;e?a>=0:abG(lIn(v,jDe),17).a)&&(k=false)}if(!k){continue}s=e?a+1:a-1;u=n5(n.a,Bwn(s));c=false;m=true;r=false;for(f=Gkn(u,0);f.b!=f.d.c;){o=bG($6(f),10);if(jR(o,jDe)){if(o.p!=h.p){c=c|(e?bG(lIn(o,jDe),17).abG(lIn(h,jDe),17).a);m=false}}else if(!c&&m){if(o.k==(YIn(),eEe)){r=true;e?l=bG(K9(new GV(sx(Qgn(o).a.Kc(),new d))),18).c.i:l=bG(K9(new GV(sx(Jgn(o).a.Kc(),new d))),18).d.i;if(l==h){e?t=bG(K9(new GV(sx(Jgn(o).a.Kc(),new d))),18).d.i:t=bG(K9(new GV(sx(Qgn(o).a.Kc(),new d))),18).c.i;(e?bG(OR(n.a,t),17).a-bG(OR(n.a,l),17).a:bG(OR(n.a,l),17).a-bG(OR(n.a,t),17).a)<=2&&(m=false)}}}}if(r&&m){e?t=bG(K9(new GV(sx(Jgn(h).a.Kc(),new d))),18).d.i:t=bG(K9(new GV(sx(Qgn(h).a.Kc(),new d))),18).c.i;(e?bG(OR(n.a,t),17).a-bG(OR(n.a,h),17).a:bG(OR(n.a,h),17).a-bG(OR(n.a,t),17).a)<=2&&t.k==(YIn(),rEe)&&(m=false)}if(c||m){g=ARn(n,h,e);while(g.a.gc()!=0){w=bG(g.a.ec().Kc().Pb(),10);g.a.Bc(w)!=null;esn(g,ARn(n,w,e))}--b;y=true}}}}while(y)}function DYn(n){Vxn(n.c,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#decimal"]));Vxn(n.d,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#integer"]));Vxn(n.e,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#boolean"]));Vxn(n.f,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"EBoolean",Fte,"EBoolean:Object"]));Vxn(n.i,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#byte"]));Vxn(n.g,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#hexBinary"]));Vxn(n.j,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"EByte",Fte,"EByte:Object"]));Vxn(n.n,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"EChar",Fte,"EChar:Object"]));Vxn(n.t,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#double"]));Vxn(n.u,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"EDouble",Fte,"EDouble:Object"]));Vxn(n.F,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#float"]));Vxn(n.G,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"EFloat",Fte,"EFloat:Object"]));Vxn(n.I,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#int"]));Vxn(n.J,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"EInt",Fte,"EInt:Object"]));Vxn(n.N,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#long"]));Vxn(n.O,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"ELong",Fte,"ELong:Object"]));Vxn(n.Z,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#short"]));Vxn(n.$,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"EShort",Fte,"EShort:Object"]));Vxn(n._,Tie,zfn(fT(vle,1),XZn,2,6,[xie,"http://www.w3.org/2001/XMLSchema#string"]))}function xYn(n,e,t,r,i,a,c){var u,s,o,f,h,l,b,w;l=bG(r.a,17).a;b=bG(r.b,17).a;h=n.b;w=n.c;u=0;f=0;if(e==(Bdn(),o5e)||e==f5e){f=FI(Idn(iY(rY(new gX(null,new d3(t.b,16)),new Mu),new ru)));if(h.e.b+h.f.b/2>f){o=++b;u=bM(MK(Sx(nz(rY(new gX(null,new d3(t.b,16)),new MO(i,o)),new iu))))}else{s=++l;u=bM(MK(Sx(ez(rY(new gX(null,new d3(t.b,16)),new TO(i,s)),new au))))}}else{f=FI(Idn(iY(rY(new gX(null,new d3(t.b,16)),new ou),new tu)));if(h.e.a+h.f.a/2>f){o=++b;u=bM(MK(Sx(nz(rY(new gX(null,new d3(t.b,16)),new kO(i,o)),new cu))))}else{s=++l;u=bM(MK(Sx(ez(rY(new gX(null,new d3(t.b,16)),new yO(i,s)),new uu))))}}if(e==o5e){fL(n.a,new PO(bM(MK(lIn(h,(DQn(),Uze))))-i,u));fL(n.a,new PO(w.e.a+w.f.a+i+a,u));fL(n.a,new PO(w.e.a+w.f.a+i+a,w.e.b+w.f.b/2));fL(n.a,new PO(w.e.a+w.f.a,w.e.b+w.f.b/2))}else if(e==f5e){fL(n.a,new PO(bM(MK(lIn(h,(DQn(),Hze))))+i,h.e.b+h.f.b/2));fL(n.a,new PO(h.e.a+h.f.a+i,u));fL(n.a,new PO(w.e.a-i-a,u));fL(n.a,new PO(w.e.a-i-a,w.e.b+w.f.b/2));fL(n.a,new PO(w.e.a,w.e.b+w.f.b/2))}else if(e==l5e){fL(n.a,new PO(u,bM(MK(lIn(h,(DQn(),Uze))))-i));fL(n.a,new PO(u,w.e.b+w.f.b+i+a));fL(n.a,new PO(w.e.a+w.f.a/2,w.e.b+w.f.b+i+a));fL(n.a,new PO(w.e.a+w.f.a/2,w.e.b+w.f.b+i))}else{n.a.b==0||(bG(MR(n.a),8).b=bM(MK(lIn(h,(DQn(),Hze))))+i*bG(c.b,17).a);fL(n.a,new PO(u,bM(MK(lIn(h,(DQn(),Hze))))+i*bG(c.b,17).a));fL(n.a,new PO(u,w.e.b-i*bG(c.a,17).a-a))}return new nA(Bwn(l),Bwn(b))}function RYn(n){var e,t,r,i,a,c,u,s,o,f,h,l,b;c=true;h=null;r=null;i=null;e=false;b=crt;o=null;a=null;u=0;s=Ikn(n,u,irt,art);if(s=0&&T_(n.substr(u,"//".length),"//")){u+=2;s=Ikn(n,u,urt,srt);r=(Unn(u,s,n.length),n.substr(u,s-u));u=s}else if(h!=null&&(u==n.length||(w3(u,n.length),n.charCodeAt(u)!=47))){c=false;s=fx(n,FCn(35),u);s==-1&&(s=n.length);r=(Unn(u,s,n.length),n.substr(u,s-u));u=s}if(!t&&u0&&ZJ(f,f.length-1)==58){i=f;u=s}}if(ubxn(a))&&(h=a)}}!h&&(h=(b3(0,g.c.length),bG(g.c[0],185)));for(d=new nd(e.b);d.al){C=0;I+=h+j;h=0}sUn(M,u,C,I);e=t.Math.max(e,C+T.a);h=t.Math.max(h,T.b);C+=T.a+j}y=new rm;r=new rm;for(S=new nd(n);S.a=-1900?1:0;t>=4?tL(n,zfn(fT(vle,1),XZn,2,6,[W1n,Q1n])[u]):tL(n,zfn(fT(vle,1),XZn,2,6,["BC","AD"])[u]);break;case 121:Ukn(n,t,r);break;case 77:aUn(n,t,r);break;case 107:s=i.q.getHours();s==0?Gtn(n,24,t):Gtn(n,s,t);break;case 83:LRn(n,t,i);break;case 69:f=r.q.getDay();t==5?tL(n,zfn(fT(vle,1),XZn,2,6,["S","M","T","W","T","F","S"])[f]):t==4?tL(n,zfn(fT(vle,1),XZn,2,6,[J1n,Y1n,Z1n,n0n,e0n,t0n,r0n])[f]):tL(n,zfn(fT(vle,1),XZn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[f]);break;case 97:i.q.getHours()>=12&&i.q.getHours()<24?tL(n,zfn(fT(vle,1),XZn,2,6,["AM","PM"])[1]):tL(n,zfn(fT(vle,1),XZn,2,6,["AM","PM"])[0]);break;case 104:h=i.q.getHours()%12;h==0?Gtn(n,12,t):Gtn(n,h,t);break;case 75:l=i.q.getHours()%12;Gtn(n,l,t);break;case 72:b=i.q.getHours();Gtn(n,b,t);break;case 99:w=r.q.getDay();t==5?tL(n,zfn(fT(vle,1),XZn,2,6,["S","M","T","W","T","F","S"])[w]):t==4?tL(n,zfn(fT(vle,1),XZn,2,6,[J1n,Y1n,Z1n,n0n,e0n,t0n,r0n])[w]):t==3?tL(n,zfn(fT(vle,1),XZn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[w]):Gtn(n,w,1);break;case 76:d=r.q.getMonth();t==5?tL(n,zfn(fT(vle,1),XZn,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[d]):t==4?tL(n,zfn(fT(vle,1),XZn,2,6,[D1n,x1n,R1n,K1n,F1n,_1n,B1n,H1n,U1n,G1n,q1n,X1n])[d]):t==3?tL(n,zfn(fT(vle,1),XZn,2,6,["Jan","Feb","Mar","Apr",F1n,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[d]):Gtn(n,d+1,t);break;case 81:g=r.q.getMonth()/3|0;t<4?tL(n,zfn(fT(vle,1),XZn,2,6,["Q1","Q2","Q3","Q4"])[g]):tL(n,zfn(fT(vle,1),XZn,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[g]);break;case 100:v=r.q.getDate();Gtn(n,v,t);break;case 109:o=i.q.getMinutes();Gtn(n,o,t);break;case 115:c=i.q.getSeconds();Gtn(n,c,t);break;case 122:t<4?tL(n,a.c[0]):tL(n,a.c[1]);break;case 118:tL(n,a.b);break;case 90:t<3?tL(n,WLn(a)):t==3?tL(n,oNn(a)):tL(n,fNn(a.a));break;default:return false}return true}function GYn(n,e,t,r){var i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P,C,I;sHn(e);s=bG(Yin((!e.b&&(e.b=new g_(B7e,e,4,7)),e.b),0),84);f=bG(Yin((!e.c&&(e.c=new g_(B7e,e,5,8)),e.c),0),84);u=vCn(s);o=vCn(f);c=(!e.a&&(e.a=new gz(U7e,e,6,6)),e.a).i==0?null:bG(Yin((!e.a&&(e.a=new gz(U7e,e,6,6)),e.a),0),166);T=bG(fQ(n.a,u),10);P=bG(fQ(n.a,o),10);j=null;C=null;if(G$(s,193)){M=bG(fQ(n.a,s),305);if(G$(M,12)){j=bG(M,12)}else if(G$(M,10)){T=bG(M,10);j=bG(Yq(T.j,0),12)}}if(G$(f,193)){S=bG(fQ(n.a,f),305);if(G$(S,12)){C=bG(S,12)}else if(G$(S,10)){P=bG(S,10);C=bG(Yq(P.j,0),12)}}if(!T||!P){throw dm(new OM("The source or the target of edge "+e+" could not be found. "+"This usually happens when an edge connects a node laid out by ELK Layered to a node in "+"another level of hierarchy laid out by either another instance of ELK Layered or another "+"layout algorithm alltogether. The former can be solved by setting the hierarchyHandling "+"option to INCLUDE_CHILDREN."))}d=new zZ;Yon(d,e);Ehn(d,(WYn(),EDe),e);Ehn(d,(IYn(),DFe),null);b=bG(lIn(r,oDe),21);T==P&&b.Fc((o_n(),C$e));if(!j){y=(fcn(),yHe);E=null;if(!!c&&wN(bG(lIn(T,m_e),101))){E=new PO(c.j,c.k);F5(E,w0(e));e9(E,t);if(Oin(o,u)){y=kHe;t_(E,T.n)}}j=RXn(T,E,y,r)}if(!C){y=(fcn(),kHe);I=null;if(!!c&&wN(bG(lIn(P,m_e),101))){I=new PO(c.b,c.c);F5(I,w0(e));e9(I,t)}C=RXn(P,I,y,VQ(P))}f2(d,j);b2(d,C);(j.e.c.length>1||j.g.c.length>1||C.e.c.length>1||C.g.c.length>1)&&b.Fc((o_n(),T$e));for(l=new _D((!e.n&&(e.n=new gz(unt,e,1,7)),e.n));l.e!=l.i.gc();){h=bG(iyn(l),135);if(!lM(yK(YDn(h,u_e)))&&!!h.a){g=lwn(h);ED(d.b,g);switch(bG(lIn(g,wFe),278).g){case 1:case 2:b.Fc((o_n(),y$e));break;case 0:b.Fc((o_n(),m$e));Ehn(g,wFe,(ian(),d5e))}}}a=bG(lIn(r,cFe),322);v=bG(lIn(r,t_e),323);i=a==(Icn(),mNe)||v==(Myn(),XBe);if(!!c&&(!c.a&&(c.a=new PD(K7e,c,5)),c.a).i!=0&&i){p=NOn(c);w=new zk;for(k=Gkn(p,0);k.b!=k.d.c;){m=bG($6(k),8);hq(w,new uN(m))}Ehn(d,SDe,w)}return d}function qYn(n,e,t,r){var i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P,C,I,O;E=0;S=0;T=new rm;y=bG(Sx(nz(rY(new gX(null,new d3(n.b,16)),new su),new gu)),17).a+1;j=$nn(Ght,z1n,28,y,15,1);g=$nn(Ght,z1n,28,y,15,1);for(d=0;d1){for(u=C+1;uo.b.e.b*(1-v)+o.c.e.b*v){break}}if(M.gc()>0){I=o.a.b==0?_$(o.b.e):bG(MR(o.a),8);m=t_(_$(bG(M.Xb(M.gc()-1),40).e),bG(M.Xb(M.gc()-1),40).f);l=t_(_$(bG(M.Xb(0),40).e),bG(M.Xb(0),40).f);if(w>=M.gc()-1&&I.b>m.b&&o.c.e.b>m.b){continue}if(w<=0&&I.bo.b.e.a*(1-v)+o.c.e.a*v){break}}if(M.gc()>0){I=o.a.b==0?_$(o.b.e):bG(MR(o.a),8);m=t_(_$(bG(M.Xb(M.gc()-1),40).e),bG(M.Xb(M.gc()-1),40).f);l=t_(_$(bG(M.Xb(0),40).e),bG(M.Xb(0),40).f);if(w>=M.gc()-1&&I.a>m.a&&o.c.e.a>m.a){continue}if(w<=0&&I.a=bM(MK(lIn(n,(DQn(),xze))))&&++S}else{b.f&&b.d.e.a<=bM(MK(lIn(n,(DQn(),Dze))))&&++E;b.g&&b.c.e.a+b.c.f.a>=bM(MK(lIn(n,(DQn(),$ze))))&&++S}}}else if(k==0){dNn(o)}else if(k<0){++j[C];++g[O];P=xYn(o,e,n,new nA(Bwn(E),Bwn(S)),t,r,new nA(Bwn(g[O]),Bwn(j[C])));E=bG(P.a,17).a;S=bG(P.b,17).a}}}function XYn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p;r=e;s=t;if(n.b&&r.j==(UQn(),n9e)&&s.j==(UQn(),n9e)){p=r;r=s;s=p}if(Lz(n.a,r)){if(fS(bG(fQ(n.a,r),49),s)){return 1}}else{jJ(n.a,r,new uk)}if(Lz(n.a,s)){if(fS(bG(fQ(n.a,s),49),r)){return-1}}else{jJ(n.a,s,new uk)}if(Lz(n.d,r)){if(fS(bG(fQ(n.d,r),49),s)){return-1}}else{jJ(n.d,r,new uk)}if(Lz(n.d,s)){if(fS(bG(fQ(n.a,s),49),r)){return 1}}else{jJ(n.d,s,new uk)}if(r.j!=s.j){v=pN(r.j,s.j);v==-1?dHn(n,s,r):dHn(n,r,s);return v}if(r.e.c.length!=0&&s.e.c.length!=0){if(n.b){v=_bn(r,s);if(v!=0){v==-1?dHn(n,s,r):v==1&&dHn(n,r,s);return v}}a=bG(Yq(r.e,0),18).c.i;f=bG(Yq(s.e,0),18).c.i;if(a==f){i=bG(lIn(bG(Yq(r.e,0),18),(WYn(),jDe)),17).a;o=bG(lIn(bG(Yq(s.e,0),18),jDe),17).a;i>o?dHn(n,r,s):dHn(n,s,r);return io?1:0}for(w=n.c,d=0,g=w.length;do?dHn(n,r,s):dHn(n,s,r);return io?1:0}if(n.b){v=_bn(r,s);if(v!=0){v==-1?dHn(n,s,r):v==1&&dHn(n,r,s);return v}}c=0;h=0;jR(bG(Yq(r.g,0),18),jDe)&&(c=bG(lIn(bG(Yq(r.g,0),18),jDe),17).a);jR(bG(Yq(s.g,0),18),jDe)&&(h=bG(lIn(bG(Yq(r.g,0),18),jDe),17).a);if(!!u&&u==l){if(lM(yK(lIn(bG(Yq(r.g,0),18),KDe)))&&!lM(yK(lIn(bG(Yq(s.g,0),18),KDe)))){dHn(n,r,s);return 1}else if(!lM(yK(lIn(bG(Yq(r.g,0),18),KDe)))&&lM(yK(lIn(bG(Yq(s.g,0),18),KDe)))){dHn(n,s,r);return-1}c>h?dHn(n,r,s):dHn(n,s,r);return ch?1:0}if(n.f){n.f._b(u)&&(c=bG(n.f.xc(u),17).a);n.f._b(l)&&(h=bG(n.f.xc(l),17).a)}c>h?dHn(n,r,s):dHn(n,s,r);return ch?1:0}if(r.e.c.length!=0&&s.g.c.length!=0){dHn(n,r,s);return 1}else if(r.g.c.length!=0&&s.e.c.length!=0){dHn(n,s,r);return-1}else if(jR(r,(WYn(),jDe))&&jR(s,jDe)){i=bG(lIn(r,jDe),17).a;o=bG(lIn(s,jDe),17).a;i>o?dHn(n,r,s):dHn(n,s,r);return io?1:0}else{dHn(n,s,r);return-1}}function VYn(n){if(n.gb)return;n.gb=true;n.b=Kon(n,0);Zun(n.b,18);nsn(n.b,19);n.a=Kon(n,1);Zun(n.a,1);nsn(n.a,2);nsn(n.a,3);nsn(n.a,4);nsn(n.a,5);n.o=Kon(n,2);Zun(n.o,8);Zun(n.o,9);nsn(n.o,10);nsn(n.o,11);nsn(n.o,12);nsn(n.o,13);nsn(n.o,14);nsn(n.o,15);nsn(n.o,16);nsn(n.o,17);nsn(n.o,18);nsn(n.o,19);nsn(n.o,20);nsn(n.o,21);nsn(n.o,22);nsn(n.o,23);oin(n.o);oin(n.o);oin(n.o);oin(n.o);oin(n.o);oin(n.o);oin(n.o);oin(n.o);oin(n.o);oin(n.o);n.p=Kon(n,3);Zun(n.p,2);Zun(n.p,3);Zun(n.p,4);Zun(n.p,5);nsn(n.p,6);nsn(n.p,7);oin(n.p);oin(n.p);n.q=Kon(n,4);Zun(n.q,8);n.v=Kon(n,5);nsn(n.v,9);oin(n.v);oin(n.v);oin(n.v);n.w=Kon(n,6);Zun(n.w,2);Zun(n.w,3);Zun(n.w,4);nsn(n.w,5);n.B=Kon(n,7);nsn(n.B,1);oin(n.B);oin(n.B);oin(n.B);n.Q=Kon(n,8);nsn(n.Q,0);oin(n.Q);n.R=Kon(n,9);Zun(n.R,1);n.S=Kon(n,10);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);oin(n.S);n.T=Kon(n,11);nsn(n.T,10);nsn(n.T,11);nsn(n.T,12);nsn(n.T,13);nsn(n.T,14);oin(n.T);oin(n.T);n.U=Kon(n,12);Zun(n.U,2);Zun(n.U,3);nsn(n.U,4);nsn(n.U,5);nsn(n.U,6);nsn(n.U,7);oin(n.U);n.V=Kon(n,13);nsn(n.V,10);n.W=Kon(n,14);Zun(n.W,18);Zun(n.W,19);Zun(n.W,20);nsn(n.W,21);nsn(n.W,22);nsn(n.W,23);n.bb=Kon(n,15);Zun(n.bb,10);Zun(n.bb,11);Zun(n.bb,12);Zun(n.bb,13);Zun(n.bb,14);Zun(n.bb,15);Zun(n.bb,16);nsn(n.bb,17);oin(n.bb);oin(n.bb);n.eb=Kon(n,16);Zun(n.eb,2);Zun(n.eb,3);Zun(n.eb,4);Zun(n.eb,5);Zun(n.eb,6);Zun(n.eb,7);nsn(n.eb,8);nsn(n.eb,9);n.ab=Kon(n,17);Zun(n.ab,0);Zun(n.ab,1);n.H=Kon(n,18);nsn(n.H,0);nsn(n.H,1);nsn(n.H,2);nsn(n.H,3);nsn(n.H,4);nsn(n.H,5);oin(n.H);n.db=Kon(n,19);nsn(n.db,2);n.c=Fon(n,20);n.d=Fon(n,21);n.e=Fon(n,22);n.f=Fon(n,23);n.i=Fon(n,24);n.g=Fon(n,25);n.j=Fon(n,26);n.k=Fon(n,27);n.n=Fon(n,28);n.r=Fon(n,29);n.s=Fon(n,30);n.t=Fon(n,31);n.u=Fon(n,32);n.fb=Fon(n,33);n.A=Fon(n,34);n.C=Fon(n,35);n.D=Fon(n,36);n.F=Fon(n,37);n.G=Fon(n,38);n.I=Fon(n,39);n.J=Fon(n,40);n.L=Fon(n,41);n.M=Fon(n,42);n.N=Fon(n,43);n.O=Fon(n,44);n.P=Fon(n,45);n.X=Fon(n,46);n.Y=Fon(n,47);n.Z=Fon(n,48);n.$=Fon(n,49);n._=Fon(n,50);n.cb=Fon(n,51);n.K=Fon(n,52)}function zYn(n,e,t){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P,C;c=new vS;M=bG(lIn(t,(IYn(),oFe)),88);d=0;esn(c,(!e.a&&(e.a=new gz(snt,e,10,11)),e.a));while(c.b!=0){f=bG(c.b==0?null:(PK(c.b!=0),Rin(c,c.a.a)),27);o=H0(f);(BA(YDn(o,zKe))!==BA((Smn(),hHe))||BA(YDn(o,uFe))===BA((Emn(),NNe))||BA(YDn(o,uFe))===BA((Emn(),ANe))||lM(yK(YDn(o,QKe)))||BA(YDn(o,HKe))!==BA((zmn(),hje))||BA(YDn(o,UFe))===BA((CHn(),ZBe))||BA(YDn(o,UFe))===BA((CHn(),nHe))||BA(YDn(o,GFe))===BA((PKn(),TBe))||BA(YDn(o,GFe))===BA((PKn(),EBe)))&&!lM(yK(YDn(f,XKe)))&&Pyn(f,(WYn(),jDe),Bwn(d++));v=!lM(yK(YDn(f,u_e)));if(v){l=(!f.a&&(f.a=new gz(snt,f,10,11)),f.a).i!=0;w=lCn(f);b=BA(YDn(f,SFe))===BA((Dwn(),U5e));C=!jnn(f,(JYn(),b4e))||R9(TK(YDn(f,b4e)));k=null;if(C&&b&&(l||w)){k=LGn(f);Ehn(k,oFe,M);jR(k,N_e)&&sM(new lpn(bM(MK(lIn(k,N_e)))),k);if(bG(YDn(f,r_e),181).gc()!=0){h=k;ES(new gX(null,(!f.c&&(f.c=new gz(ont,f,9,9)),new d3(f.c,16))),new rg(h));b_n(f,k)}}T=t;j=bG(fQ(n.a,H0(f)),10);!!j&&(T=j.e);m=HJn(n,f,T);if(k){m.e=k;k.e=m;esn(c,(!f.a&&(f.a=new gz(snt,f,10,11)),f.a))}}}d=0;w8(c,e,c.c.b,c.c);while(c.b!=0){a=bG(c.b==0?null:(PK(c.b!=0),Rin(c,c.a.a)),27);for(s=new _D((!a.b&&(a.b=new gz(H7e,a,12,3)),a.b));s.e!=s.i.gc();){u=bG(iyn(s),74);sHn(u);(BA(YDn(e,zKe))!==BA((Smn(),hHe))||BA(YDn(e,uFe))===BA((Emn(),NNe))||BA(YDn(e,uFe))===BA((Emn(),ANe))||lM(yK(YDn(e,QKe)))||BA(YDn(e,HKe))!==BA((zmn(),hje))||BA(YDn(e,UFe))===BA((CHn(),ZBe))||BA(YDn(e,UFe))===BA((CHn(),nHe))||BA(YDn(e,GFe))===BA((PKn(),TBe))||BA(YDn(e,GFe))===BA((PKn(),EBe)))&&Pyn(u,(WYn(),jDe),Bwn(d++));S=vCn(bG(Yin((!u.b&&(u.b=new g_(B7e,u,4,7)),u.b),0),84));P=vCn(bG(Yin((!u.c&&(u.c=new g_(B7e,u,5,8)),u.c),0),84));if(lM(yK(YDn(u,u_e)))||lM(yK(YDn(S,u_e)))||lM(yK(YDn(P,u_e)))){continue}g=XNn(u)&&lM(yK(YDn(S,AFe)))&&lM(yK(YDn(u,LFe)));y=a;g||Oin(P,S)?y=S:Oin(S,P)&&(y=P);T=t;j=bG(fQ(n.a,y),10);!!j&&(T=j.e);p=GYn(n,u,y,T);Ehn(p,(WYn(),Q$e),AFn(n,u,e,t))}b=BA(YDn(a,SFe))===BA((Dwn(),U5e));if(b){for(i=new _D((!a.a&&(a.a=new gz(snt,a,10,11)),a.a));i.e!=i.i.gc();){r=bG(iyn(i),27);C=!jnn(r,(JYn(),b4e))||R9(TK(YDn(r,b4e)));E=BA(YDn(r,SFe))===BA(U5e);C&&E&&(w8(c,r,c.c.b,c.c),true)}}}}function WYn(){WYn=O;var n,e;EDe=new Np(j4n);Q$e=new Np("coordinateOrigin");DDe=new Np("processors");W$e=new bF("compoundNode",(Qx(),false));lDe=new bF("insideConnections",false);SDe=new Np("originalBendpoints");PDe=new Np("originalDummyNodePosition");CDe=new Np("originalLabelEdge");RDe=new Np("representedLabels");eDe=new Np("endLabels");tDe=new Np("endLabel.origin");vDe=new bF("labelSide",(xjn(),J5e));TDe=new bF("maxEdgeThickness",0);KDe=new bF("reversed",false);xDe=new Np(E4n);kDe=new bF("longEdgeSource",null);yDe=new bF("longEdgeTarget",null);mDe=new bF("longEdgeHasLabelDummies",false);pDe=new bF("longEdgeBeforeLabelDummy",false);nDe=new bF("edgeConstraint",(Lhn(),BNe));wDe=new Np("inLayerLayoutUnit");bDe=new bF("inLayerConstraint",(irn(),R$e));dDe=new bF("inLayerSuccessorConstraint",new im);gDe=new bF("inLayerSuccessorConstraintBetweenNonDummies",false);NDe=new Np("portDummy");J$e=new bF("crossingHint",Bwn(0));oDe=new bF("graphProperties",(e=bG(Pj(I$e),9),new aB(e,bG(PF(e,e.length),9),0)));cDe=new bF("externalPortSide",(UQn(),Z8e));uDe=new bF("externalPortSize",new wj);iDe=new Np("externalPortReplacedDummies");aDe=new Np("externalPortReplacedDummy");rDe=new bF("externalPortConnections",(n=bG(Pj(e9e),9),new aB(n,bG(PF(n,n.length),9),0)));$De=new bF(t3n,0);q$e=new Np("barycenterAssociates");zDe=new Np("TopSideComments");X$e=new Np("BottomSideComments");z$e=new Np("CommentConnectionPort");hDe=new bF("inputCollect",false);ADe=new bF("outputCollect",false);Z$e=new bF("cyclic",false);Y$e=new Np("crossHierarchyMap");VDe=new Np("targetOffset");new bF("splineLabelSize",new wj);BDe=new Np("spacings");LDe=new bF("partitionConstraint",false);V$e=new Np("breakingPoint.info");qDe=new Np("splines.survivingEdge");GDe=new Np("splines.route.start");HDe=new Np("splines.edgeChain");ODe=new Np("originalPortConstraints");_De=new Np("selfLoopHolder");UDe=new Np("splines.nsPortY");jDe=new Np("modelOrder");MDe=new Np("longEdgeTargetNode");sDe=new bF(F6n,false);FDe=new bF(F6n,false);fDe=new Np("layerConstraints.hiddenNodes");IDe=new Np("layerConstraints.opposidePort");XDe=new Np("targetNode.modelOrder")}function QYn(n,e,r,i){var a,c,u,s,o,f,h,l,b,w,d;for(l=Gkn(n.b,0);l.b!=l.d.c;){h=bG($6(l),40);if(T_(h.c,B9n)){continue}c=bG(v8(new gX(null,new d3(YNn(h,n),16)),gen(new Z,new Y,new sn,zfn(fT($de,1),g1n,108,0,[(Sbn(),Lde)]))),15);e==(Bdn(),o5e)||e==f5e?c.jd(new lu):c.jd(new bu);d=c.gc();for(a=0;a0){s=bG(MR(bG(c.Xb(a),65).a),8).a;b=h.e.a+h.f.a/2;o=bG(MR(bG(c.Xb(a),65).a),8).b;w=h.e.b+h.f.b/2;i>0&&t.Math.abs(o-w)/(t.Math.abs(s-b)/40)>50&&(w>o?fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a+i/5.3,h.e.b+h.f.b*u-i/2)):fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a+i/5.3,h.e.b+h.f.b*u+i/2)))}fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a,h.e.b+h.f.b*u))}else if(e==f5e){f=bM(MK(lIn(h,(DQn(),Uze))));if(h.e.a-i>f){fL(bG(c.Xb(a),65).a,new PO(f-r,h.e.b+h.f.b*u))}else if(bG(c.Xb(a),65).a.b>0){s=bG(MR(bG(c.Xb(a),65).a),8).a;b=h.e.a+h.f.a/2;o=bG(MR(bG(c.Xb(a),65).a),8).b;w=h.e.b+h.f.b/2;i>0&&t.Math.abs(o-w)/(t.Math.abs(s-b)/40)>50&&(w>o?fL(bG(c.Xb(a),65).a,new PO(h.e.a-i/5.3,h.e.b+h.f.b*u-i/2)):fL(bG(c.Xb(a),65).a,new PO(h.e.a-i/5.3,h.e.b+h.f.b*u+i/2)))}fL(bG(c.Xb(a),65).a,new PO(h.e.a,h.e.b+h.f.b*u))}else if(e==l5e){f=bM(MK(lIn(h,(DQn(),Hze))));if(h.e.b+h.f.b+i0){s=bG(MR(bG(c.Xb(a),65).a),8).a;b=h.e.a+h.f.a/2;o=bG(MR(bG(c.Xb(a),65).a),8).b;w=h.e.b+h.f.b/2;i>0&&t.Math.abs(s-b)/(t.Math.abs(o-w)/40)>50&&(b>s?fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a*u-i/2,h.e.b+i/5.3+h.f.b)):fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a*u+i/2,h.e.b+i/5.3+h.f.b)))}fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a*u,h.e.b+h.f.b))}else{f=bM(MK(lIn(h,(DQn(),Uze))));if(bln(bG(c.Xb(a),65),n)){fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a*u,bG(MR(bG(c.Xb(a),65).a),8).b))}else if(h.e.b-i>f){fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a*u,f-r))}else if(bG(c.Xb(a),65).a.b>0){s=bG(MR(bG(c.Xb(a),65).a),8).a;b=h.e.a+h.f.a/2;o=bG(MR(bG(c.Xb(a),65).a),8).b;w=h.e.b+h.f.b/2;i>0&&t.Math.abs(s-b)/(t.Math.abs(o-w)/40)>50&&(b>s?fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a*u-i/2,h.e.b-i/5.3)):fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a*u+i/2,h.e.b-i/5.3)))}fL(bG(c.Xb(a),65).a,new PO(h.e.a+h.f.a*u,h.e.b))}}}}function JYn(){JYn=O;var n,e;b4e=new Np(Vne);L6e=new Np(zne);d4e=(aMn(),R3e);w4e=new TL(q8n,d4e);new tm;g4e=new TL(x3n,null);v4e=new Np(Wne);j4e=(iPn(),nV(f4e,zfn(fT(h4e,1),g1n,298,0,[c4e])));T4e=new TL(r9n,j4e);E4e=new TL(G8n,(Qx(),false));P4e=(Bdn(),h5e);S4e=new TL(z8n,P4e);L4e=(qgn(),T5e);A4e=new TL(v8n,L4e);D4e=new TL(qne,false);R4e=(Dwn(),G5e);x4e=new TL(l8n,R4e);u6e=new NN(12);c6e=new TL(R3n,u6e);B4e=new TL(f4n,false);H4e=new TL(d9n,false);a6e=new TL(b4n,false);y6e=(FPn(),T8e);k6e=new TL(h4n,y6e);I6e=new Np(l9n);O6e=new Np(a4n);A6e=new Np(s4n);$6e=new Np(o4n);G4e=new zk;U4e=new TL(i9n,G4e);M4e=new TL(u9n,false);K4e=new TL(s9n,false);new Np(Qne);X4e=new Kk;q4e=new TL(b9n,X4e);i6e=new TL(H8n,false);new tm;N6e=new TL(Jne,1);y4e=new Np(Yne);k4e=new Np(Zne);Z6e=new TL(m4n,false);new TL(nee,true);Bwn(0);new TL(eee,Bwn(100));new TL(tee,false);Bwn(0);new TL(ree,Bwn(4e3));Bwn(0);new TL(iee,Bwn(400));new TL(aee,false);new TL(cee,false);new TL(uee,true);new TL(see,false);m4e=(Qvn(),q9e);p4e=new TL(Xne,m4e);D6e=new TL(O8n,10);x6e=new TL(A8n,10);R6e=new TL($3n,20);K6e=new TL(L8n,10);F6e=new TL(u4n,2);_6e=new TL(N8n,10);H6e=new TL($8n,0);U6e=new TL(R8n,5);G6e=new TL(D8n,1);q6e=new TL(x8n,1);X6e=new TL(c4n,20);V6e=new TL(K8n,10);Q6e=new TL(F8n,10);B6e=new Np(_8n);W6e=new QL;z6e=new TL(w9n,W6e);f6e=new Np(h9n);o6e=false;s6e=new TL(f9n,o6e);z4e=new NN(5);V4e=new TL(W8n,z4e);Q4e=(ZDn(),e=bG(Pj(o8e),9),new aB(e,bG(PF(e,e.length),9),0));W4e=new TL(v4n,Q4e);b6e=(Zkn(),b8e);l6e=new TL(Y8n,b6e);d6e=new Np(Z8n);g6e=new Np(n9n);v6e=new Np(e9n);w6e=new Np(t9n);Y4e=(n=bG(Pj(w9e),9),new aB(n,bG(PF(n,n.length),9),0));J4e=new TL(g4n,Y4e);r6e=ygn((hUn(),p9e));t6e=new TL(d4n,r6e);e6e=new PO(0,0);n6e=new TL(D4n,e6e);Z4e=new TL(w4n,false);O4e=(ian(),d5e);I4e=new TL(a9n,O4e);C4e=new TL(l4n,false);new Np(oee);Bwn(1);new TL(fee,null);p6e=new Np(o9n);M6e=new Np(c9n);C6e=(UQn(),Z8e);P6e=new TL(U8n,C6e);m6e=new Np(B8n);E6e=(uNn(),ygn(O8e));j6e=new TL(p4n,E6e);T6e=new TL(Q8n,false);S6e=new TL(J8n,true);new tm;r5e=new TL(k4n,1);a5e=new TL(hee,null);Y6e=new TL(y4n,150);J6e=new TL(M4n,1.414);n5e=new TL(T4n,null);e5e=new TL(lee,1);F4e=new TL(X8n,false);_4e=new TL(V8n,false);N4e=new TL(D3n,1);$4e=(HCn(),O5e);new TL(bee,$4e);h6e=true;i5e=($wn(),P9e);c5e=P9e;t5e=P9e}function YYn(){YYn=O;gPe=new NC("DIRECTION_PREPROCESSOR",0);bPe=new NC("COMMENT_PREPROCESSOR",1);vPe=new NC("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2);NPe=new NC("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3);YPe=new NC("PARTITION_PREPROCESSOR",4);RPe=new NC("LABEL_DUMMY_INSERTER",5);iCe=new NC("SELF_LOOP_PREPROCESSOR",6);HPe=new NC("LAYER_CONSTRAINT_PREPROCESSOR",7);QPe=new NC("PARTITION_MIDPROCESSOR",8);CPe=new NC("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9);XPe=new NC("NODE_PROMOTION",10);BPe=new NC("LAYER_CONSTRAINT_POSTPROCESSOR",11);JPe=new NC("PARTITION_POSTPROCESSOR",12);jPe=new NC("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13);cCe=new NC("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14);uPe=new NC("BREAKING_POINT_INSERTER",15);qPe=new NC("LONG_EDGE_SPLITTER",16);nCe=new NC("PORT_SIDE_PROCESSOR",17);$Pe=new NC("INVERTED_PORT_PROCESSOR",18);ZPe=new NC("PORT_LIST_SORTER",19);sCe=new NC("SORT_BY_INPUT_ORDER_OF_MODEL",20);zPe=new NC("NORTH_SOUTH_PORT_PREPROCESSOR",21);sPe=new NC("BREAKING_POINT_PROCESSOR",22);WPe=new NC(g6n,23);oCe=new NC(v6n,24);tCe=new NC("SELF_LOOP_PORT_RESTORER",25);uCe=new NC("SINGLE_EDGE_GRAPH_WRAPPER",26);DPe=new NC("IN_LAYER_CONSTRAINT_PROCESSOR",27);yPe=new NC("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28);xPe=new NC("LABEL_AND_NODE_SIZE_PROCESSOR",29);LPe=new NC("INNERMOST_NODE_MARGIN_CALCULATOR",30);aCe=new NC("SELF_LOOP_ROUTER",31);hPe=new NC("COMMENT_NODE_MARGIN_CALCULATOR",32);mPe=new NC("END_LABEL_PREPROCESSOR",33);FPe=new NC("LABEL_DUMMY_SWITCHER",34);fPe=new NC("CENTER_LABEL_MANAGEMENT_PROCESSOR",35);_Pe=new NC("LABEL_SIDE_SELECTOR",36);OPe=new NC("HYPEREDGE_DUMMY_MERGER",37);EPe=new NC("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38);UPe=new NC("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39);PPe=new NC("HIERARCHICAL_PORT_POSITION_PROCESSOR",40);wPe=new NC("CONSTRAINTS_POSTPROCESSOR",41);lPe=new NC("COMMENT_POSTPROCESSOR",42);APe=new NC("HYPERNODE_PROCESSOR",43);SPe=new NC("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44);GPe=new NC("LONG_EDGE_JOINER",45);rCe=new NC("SELF_LOOP_POSTPROCESSOR",46);oPe=new NC("BREAKING_POINT_REMOVER",47);VPe=new NC("NORTH_SOUTH_PORT_POSTPROCESSOR",48);IPe=new NC("HORIZONTAL_COMPACTOR",49);KPe=new NC("LABEL_DUMMY_REMOVER",50);MPe=new NC("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51);kPe=new NC("END_LABEL_SORTER",52);eCe=new NC("REVERSED_EDGE_RESTORER",53);pPe=new NC("END_LABEL_POSTPROCESSOR",54);TPe=new NC("HIERARCHICAL_NODE_RESIZER",55);dPe=new NC("DIRECTION_POSTPROCESSOR",56)}function ZYn(){ZYn=O;_xe=(Zrn(),xNe);Fxe=new TL(_6n,_xe);rRe=new TL(B6n,(Qx(),false));oRe=(r5(),B$e);sRe=new TL(H6n,oRe);PRe=new TL(U6n,false);CRe=new TL(G6n,true);txe=new TL(q6n,false);zRe=(arn(),gHe);VRe=new TL(X6n,zRe);Bwn(1);tKe=new TL(V6n,Bwn(7));rKe=new TL(z6n,false);iRe=new TL(W6n,false);Kxe=(Emn(),ONe);Rxe=new TL(Q6n,Kxe);SRe=(PKn(),OBe);ERe=new TL(J6n,SRe);gRe=(Wvn(),ZDe);dRe=new TL(Y6n,gRe);Bwn(-1);wRe=new TL(Z6n,null);Bwn(-1);vRe=new TL(n5n,Bwn(-1));Bwn(-1);pRe=new TL(e5n,Bwn(4));Bwn(-1);kRe=new TL(t5n,Bwn(2));jRe=(CHn(),cHe);TRe=new TL(r5n,jRe);Bwn(0);MRe=new TL(i5n,Bwn(0));lRe=new TL(a5n,Bwn(pZn));xxe=(Icn(),kNe);Dxe=new TL(c5n,xxe);pxe=new TL(u5n,false);Pxe=new TL(s5n,.1);Nxe=new TL(o5n,false);Ixe=new TL(f5n,null);Oxe=new TL(h5n,null);Bwn(-1);Axe=new TL(l5n,null);Bwn(-1);Lxe=new TL(b5n,Bwn(-1));Bwn(0);mxe=new TL(w5n,Bwn(40));Exe=(sfn(),N$e);jxe=new TL(d5n,Exe);yxe=A$e;kxe=new TL(g5n,yxe);XRe=(Myn(),qBe);qRe=new TL(v5n,XRe);DRe=new Np(p5n);ORe=(ntn(),ZNe);IRe=new TL(m5n,ORe);NRe=(OSn(),c$e);LRe=new TL(k5n,NRe);new tm;KRe=new TL(y5n,.3);_Re=new Np(M5n);HRe=(rMn(),BBe);BRe=new TL(T5n,HRe);zxe=(son(),SHe);Vxe=new TL(j5n,zxe);Qxe=(Aln(),LHe);Wxe=new TL(E5n,Qxe);Yxe=(Ebn(),KHe);Jxe=new TL(S5n,Yxe);nRe=new TL(P5n,.2);qxe=new TL(C5n,2);YRe=new TL(I5n,null);nKe=new TL(O5n,10);ZRe=new TL(A5n,10);eKe=new TL(L5n,20);Bwn(0);WRe=new TL(N5n,Bwn(0));Bwn(0);QRe=new TL($5n,Bwn(0));Bwn(0);JRe=new TL(D5n,Bwn(0));rxe=new TL(x5n,false);uxe=(HIn(),d$e);cxe=new TL(R5n,uxe);axe=(V7(),gNe);ixe=new TL(K5n,axe);cRe=new TL(F5n,false);Bwn(0);aRe=new TL(_5n,Bwn(16));Bwn(0);uRe=new TL(B5n,Bwn(5));SKe=(Yfn(),VHe);EKe=new TL(H5n,SKe);iKe=new TL(U5n,10);uKe=new TL(G5n,1);gKe=(ocn(),SNe);dKe=new TL(q5n,gKe);fKe=new Np(X5n);bKe=Bwn(1);Bwn(0);lKe=new TL(V5n,bKe);AKe=(scn(),BHe);OKe=new TL(z5n,AKe);PKe=new Np(W5n);yKe=new TL(Q5n,true);mKe=new TL(J5n,2);TKe=new TL(Y5n,true);Gxe=(cOn(),WNe);Uxe=new TL(Z5n,Gxe);Hxe=(jAn(),oNe);Bxe=new TL(n8n,Hxe);vxe=(Smn(),hHe);gxe=new TL(e8n,vxe);dxe=new TL(t8n,false);wxe=new TL(r8n,false);oxe=(zmn(),hje);sxe=new TL(i8n,oxe);bxe=(Nwn(),$Be);lxe=new TL(a8n,bxe);fxe=new TL(c8n,0);hxe=new TL(u8n,0);hRe=LNe;fRe=mNe;mRe=IBe;yRe=IBe;bRe=jBe;Cxe=(Dwn(),U5e);$xe=kNe;Sxe=kNe;Mxe=kNe;Txe=U5e;xRe=zBe;RRe=qBe;ARe=qBe;$Re=qBe;FRe=VBe;GRe=zBe;URe=zBe;Zxe=(qgn(),M5e);eRe=M5e;tRe=KHe;Xxe=y5e;aKe=zHe;cKe=XHe;sKe=zHe;oKe=XHe;vKe=zHe;pKe=XHe;hKe=ENe;wKe=SNe;LKe=zHe;NKe=XHe;CKe=zHe;IKe=XHe;MKe=XHe;kKe=XHe;jKe=XHe}function nZn(n,e,r){var i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P,C,I,O,A,L,N,$,D,x,R,K,F,_,B,H,U,G,q,X,V,z,W,Q,J,Y,Z,nn,en,tn,rn,an,cn,un,sn;Y=0;for(O=e,N=0,x=O.length;N0&&(n.a[U.p]=Y++)}}rn=0;for(A=r,$=0,R=A.length;$0){U=(PK(V.b>0),bG(V.a.Xb(V.c=--V.b),12));X=0;for(s=new nd(U.e);s.a0){if(U.j==(UQn(),D8e)){n.a[U.p]=rn;++rn}else{n.a[U.p]=rn+K+_;++_}}}rn+=_}q=new rm;d=new JL;for(I=e,L=0,D=I.length;Lf.b&&(f.b=z)}else if(U.i.c==J){zf.c&&(f.c=z)}}}Ken(g,0,g.length,null);tn=$nn(Ght,z1n,28,g.length,15,1);i=$nn(Ght,z1n,28,rn+1,15,1);for(p=0;p0){j%2>0&&(a+=un[j+1]);j=(j-1)/2|0;++un[j]}}S=$nn(PGe,jZn,374,g.length*2,0,1);for(y=0;y0&&(x1(L.f),false)){if(bG(YDn(p,n5e),280)==P9e){throw dm(new IM("Topdown Layout Providers should only be used on parallel nodes."))}JA(x1(L.f));null.Um();jN(p,t.Math.max(p.g,null.Vm),t.Math.max(p.f,null.Vm))}else if(YDn(p,a5e)!=null){s=bG(YDn(p,a5e),347);q=s.Tg(p);jN(p,t.Math.max(p.g,q.a),t.Math.max(p.f,q.b))}}}R=bG(YDn(e,c6e),107);w=e.g-(R.b+R.c);b=e.f-(R.d+R.a);z.bh("Available Child Area: ("+w+"|"+b+")");Pyn(e,g4e,w/b);Pkn(e,a,i.eh(D));if(bG(YDn(e,n5e),280)==I9e){ZJn(e);jN(e,R.b+bM(MK(YDn(e,y4e)))+R.c,R.d+bM(MK(YDn(e,k4e)))+R.a)}z.bh("Executed layout algorithm: "+TK(YDn(e,b4e))+" on node "+e.k);if(bG(YDn(e,n5e),280)==P9e){if(w<0||b<0){throw dm(new IM("The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. "+e.k))}jnn(e,y4e)||jnn(e,k4e)||ZJn(e);g=bM(MK(YDn(e,y4e)));d=bM(MK(YDn(e,k4e)));z.bh("Desired Child Area: ("+g+"|"+d+")");F=w/g;_=b/d;K=t.Math.min(F,t.Math.min(_,bM(MK(YDn(e,e5e)))));Pyn(e,r5e,K);z.bh(e.k+" -- Local Scale Factor (X|Y): ("+F+"|"+_+")");y=bG(YDn(e,T4e),21);c=0;u=0;K'?":T_(tre,n)?"'(?<' or '(? toIndex: ",s2n=", toIndex: ",o2n="Index: ",f2n=", Size: ",h2n="org.eclipse.elk.alg.common",l2n={50:1},b2n="org.eclipse.elk.alg.common.compaction",w2n="Scanline/EventHandler",d2n="org.eclipse.elk.alg.common.compaction.oned",g2n="CNode belongs to another CGroup.",v2n="ISpacingsHandler/1",p2n="The ",m2n=" instance has been finished already.",k2n="The direction ",y2n=" is not supported by the CGraph instance.",M2n="OneDimensionalCompactor",T2n="OneDimensionalCompactor/lambda$0$Type",j2n="Quadruplet",E2n="ScanlineConstraintCalculator",S2n="ScanlineConstraintCalculator/ConstraintsScanlineHandler",P2n="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",C2n="ScanlineConstraintCalculator/Timestamp",I2n="ScanlineConstraintCalculator/lambda$0$Type",O2n={178:1,46:1},A2n="org.eclipse.elk.alg.common.compaction.options",L2n="org.eclipse.elk.core.data",N2n="org.eclipse.elk.polyomino.traversalStrategy",$2n="org.eclipse.elk.polyomino.lowLevelSort",D2n="org.eclipse.elk.polyomino.highLevelSort",x2n="org.eclipse.elk.polyomino.fill",R2n={134:1},K2n="polyomino",F2n="org.eclipse.elk.alg.common.networksimplex",_2n={183:1,3:1,4:1},B2n="org.eclipse.elk.alg.common.nodespacing",H2n="org.eclipse.elk.alg.common.nodespacing.cellsystem",U2n="CENTER",G2n={217:1,336:1},q2n={3:1,4:1,5:1,603:1},X2n="LEFT",V2n="RIGHT",z2n="Vertical alignment cannot be null",W2n="BOTTOM",Q2n="org.eclipse.elk.alg.common.nodespacing.internal",J2n="UNDEFINED",Y2n=.01,Z2n="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",n3n="LabelPlacer/lambda$0$Type",e3n="LabelPlacer/lambda$1$Type",t3n="portRatioOrPosition",r3n="org.eclipse.elk.alg.common.overlaps",i3n="DOWN",a3n="org.eclipse.elk.alg.common.polyomino",c3n="NORTH",u3n="EAST",s3n="SOUTH",o3n="WEST",f3n="org.eclipse.elk.alg.common.polyomino.structures",h3n="Direction",l3n="Grid is only of size ",b3n=". Requested point (",w3n=") is out of bounds.",d3n=" Given center based coordinates were (",g3n="org.eclipse.elk.graph.properties",v3n="IPropertyHolder",p3n={3:1,96:1,137:1},m3n="org.eclipse.elk.alg.common.spore",k3n="org.eclipse.elk.alg.common.utils",y3n={205:1},M3n="org.eclipse.elk.core",T3n="Connected Components Compaction",j3n="org.eclipse.elk.alg.disco",E3n="org.eclipse.elk.alg.disco.graph",S3n="org.eclipse.elk.alg.disco.options",P3n="CompactionStrategy",C3n="org.eclipse.elk.disco.componentCompaction.strategy",I3n="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",O3n="org.eclipse.elk.disco.debug.discoGraph",A3n="org.eclipse.elk.disco.debug.discoPolys",L3n="componentCompaction",N3n="org.eclipse.elk.disco",$3n="org.eclipse.elk.spacing.componentComponent",D3n="org.eclipse.elk.edge.thickness",x3n="org.eclipse.elk.aspectRatio",R3n="org.eclipse.elk.padding",K3n="org.eclipse.elk.alg.disco.transform",F3n=1.5707963267948966,_3n=17976931348623157e292,B3n={3:1,4:1,5:1,198:1},H3n={3:1,6:1,4:1,5:1,100:1,115:1},U3n="org.eclipse.elk.alg.force",G3n="ComponentsProcessor",q3n="ComponentsProcessor/1",X3n="ElkGraphImporter/lambda$0$Type",V3n="org.eclipse.elk.alg.force.graph",z3n="Component Layout",W3n="org.eclipse.elk.alg.force.model",Q3n="org.eclipse.elk.force.model",J3n="org.eclipse.elk.force.iterations",Y3n="org.eclipse.elk.force.repulsivePower",Z3n="org.eclipse.elk.force.temperature",n4n=.001,e4n="org.eclipse.elk.force.repulsion",t4n="org.eclipse.elk.alg.force.options",r4n=1.600000023841858,i4n="org.eclipse.elk.force",a4n="org.eclipse.elk.priority",c4n="org.eclipse.elk.spacing.nodeNode",u4n="org.eclipse.elk.spacing.edgeLabel",s4n="org.eclipse.elk.randomSeed",o4n="org.eclipse.elk.separateConnectedComponents",f4n="org.eclipse.elk.interactive",h4n="org.eclipse.elk.portConstraints",l4n="org.eclipse.elk.edgeLabels.inline",b4n="org.eclipse.elk.omitNodeMicroLayout",w4n="org.eclipse.elk.nodeSize.fixedGraphSize",d4n="org.eclipse.elk.nodeSize.options",g4n="org.eclipse.elk.nodeSize.constraints",v4n="org.eclipse.elk.nodeLabels.placement",p4n="org.eclipse.elk.portLabels.placement",m4n="org.eclipse.elk.topdownLayout",k4n="org.eclipse.elk.topdown.scaleFactor",y4n="org.eclipse.elk.topdown.hierarchicalNodeWidth",M4n="org.eclipse.elk.topdown.hierarchicalNodeAspectRatio",T4n="org.eclipse.elk.topdown.nodeType",j4n="origin",E4n="random",S4n="boundingBox.upLeft",P4n="boundingBox.lowRight",C4n="org.eclipse.elk.stress.fixed",I4n="org.eclipse.elk.stress.desiredEdgeLength",O4n="org.eclipse.elk.stress.dimension",A4n="org.eclipse.elk.stress.epsilon",L4n="org.eclipse.elk.stress.iterationLimit",N4n="org.eclipse.elk.stress",$4n="ELK Stress",D4n="org.eclipse.elk.nodeSize.minimum",x4n="org.eclipse.elk.alg.force.stress",R4n="Layered layout",K4n="org.eclipse.elk.alg.layered",F4n="org.eclipse.elk.alg.layered.compaction.components",_4n="org.eclipse.elk.alg.layered.compaction.oned",B4n="org.eclipse.elk.alg.layered.compaction.oned.algs",H4n="org.eclipse.elk.alg.layered.compaction.recthull",U4n="org.eclipse.elk.alg.layered.components",G4n="NONE",q4n="MODEL_ORDER",X4n={3:1,6:1,4:1,9:1,5:1,126:1},V4n={3:1,6:1,4:1,5:1,150:1,100:1,115:1},z4n="org.eclipse.elk.alg.layered.compound",W4n={47:1},Q4n="org.eclipse.elk.alg.layered.graph",J4n=" -> ",Y4n="Not supported by LGraph",Z4n="Port side is undefined",n6n={3:1,6:1,4:1,5:1,483:1,150:1,100:1,115:1},e6n={3:1,6:1,4:1,5:1,150:1,199:1,210:1,100:1,115:1},t6n={3:1,6:1,4:1,5:1,150:1,2042:1,210:1,100:1,115:1},r6n="([{\"' \t\r\n",i6n=")]}\"' \t\r\n",a6n="The given string contains parts that cannot be parsed as numbers.",c6n="org.eclipse.elk.core.math",u6n={3:1,4:1,140:1,214:1,423:1},s6n={3:1,4:1,107:1,214:1,423:1},o6n="org.eclipse.elk.alg.layered.graph.transform",f6n="ElkGraphImporter",h6n="ElkGraphImporter/lambda$1$Type",l6n="ElkGraphImporter/lambda$2$Type",b6n="ElkGraphImporter/lambda$4$Type",w6n="org.eclipse.elk.alg.layered.intermediate",d6n="Node margin calculation",g6n="ONE_SIDED_GREEDY_SWITCH",v6n="TWO_SIDED_GREEDY_SWITCH",p6n="No implementation is available for the layout processor ",m6n="IntermediateProcessorStrategy",k6n="Node '",y6n="FIRST_SEPARATE",M6n="LAST_SEPARATE",T6n="Odd port side processing",j6n="org.eclipse.elk.alg.layered.intermediate.compaction",E6n="org.eclipse.elk.alg.layered.intermediate.greedyswitch",S6n="org.eclipse.elk.alg.layered.p3order.counting",P6n={230:1},C6n="org.eclipse.elk.alg.layered.intermediate.loops",I6n="org.eclipse.elk.alg.layered.intermediate.loops.ordering",O6n="org.eclipse.elk.alg.layered.intermediate.loops.routing",A6n="org.eclipse.elk.alg.layered.intermediate.preserveorder",L6n="org.eclipse.elk.alg.layered.intermediate.wrapping",N6n="org.eclipse.elk.alg.layered.options",$6n="INTERACTIVE",D6n="GREEDY",x6n="DEPTH_FIRST",R6n="EDGE_LENGTH",K6n="SELF_LOOPS",F6n="firstTryWithInitialOrder",_6n="org.eclipse.elk.layered.directionCongruency",B6n="org.eclipse.elk.layered.feedbackEdges",H6n="org.eclipse.elk.layered.interactiveReferencePoint",U6n="org.eclipse.elk.layered.mergeEdges",G6n="org.eclipse.elk.layered.mergeHierarchyEdges",q6n="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",X6n="org.eclipse.elk.layered.portSortingStrategy",V6n="org.eclipse.elk.layered.thoroughness",z6n="org.eclipse.elk.layered.unnecessaryBendpoints",W6n="org.eclipse.elk.layered.generatePositionAndLayerIds",Q6n="org.eclipse.elk.layered.cycleBreaking.strategy",J6n="org.eclipse.elk.layered.layering.strategy",Y6n="org.eclipse.elk.layered.layering.layerConstraint",Z6n="org.eclipse.elk.layered.layering.layerChoiceConstraint",n5n="org.eclipse.elk.layered.layering.layerId",e5n="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",t5n="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",r5n="org.eclipse.elk.layered.layering.nodePromotion.strategy",i5n="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",a5n="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",c5n="org.eclipse.elk.layered.crossingMinimization.strategy",u5n="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",s5n="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",o5n="org.eclipse.elk.layered.crossingMinimization.semiInteractive",f5n="org.eclipse.elk.layered.crossingMinimization.inLayerPredOf",h5n="org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf",l5n="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",b5n="org.eclipse.elk.layered.crossingMinimization.positionId",w5n="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",d5n="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",g5n="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",v5n="org.eclipse.elk.layered.nodePlacement.strategy",p5n="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",m5n="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",k5n="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",y5n="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",M5n="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",T5n="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",j5n="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",E5n="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",S5n="org.eclipse.elk.layered.edgeRouting.splines.mode",P5n="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",C5n="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",I5n="org.eclipse.elk.layered.spacing.baseValue",O5n="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",A5n="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",L5n="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",N5n="org.eclipse.elk.layered.priority.direction",$5n="org.eclipse.elk.layered.priority.shortness",D5n="org.eclipse.elk.layered.priority.straightness",x5n="org.eclipse.elk.layered.compaction.connectedComponents",R5n="org.eclipse.elk.layered.compaction.postCompaction.strategy",K5n="org.eclipse.elk.layered.compaction.postCompaction.constraints",F5n="org.eclipse.elk.layered.highDegreeNodes.treatment",_5n="org.eclipse.elk.layered.highDegreeNodes.threshold",B5n="org.eclipse.elk.layered.highDegreeNodes.treeHeight",H5n="org.eclipse.elk.layered.wrapping.strategy",U5n="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",G5n="org.eclipse.elk.layered.wrapping.correctionFactor",q5n="org.eclipse.elk.layered.wrapping.cutting.strategy",X5n="org.eclipse.elk.layered.wrapping.cutting.cuts",V5n="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",z5n="org.eclipse.elk.layered.wrapping.validify.strategy",W5n="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",Q5n="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",J5n="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",Y5n="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",Z5n="org.eclipse.elk.layered.edgeLabels.sideSelection",n8n="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",e8n="org.eclipse.elk.layered.considerModelOrder.strategy",t8n="org.eclipse.elk.layered.considerModelOrder.portModelOrder",r8n="org.eclipse.elk.layered.considerModelOrder.noModelOrder",i8n="org.eclipse.elk.layered.considerModelOrder.components",a8n="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",c8n="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",u8n="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",s8n="layering",o8n="layering.minWidth",f8n="layering.nodePromotion",h8n="crossingMinimization",l8n="org.eclipse.elk.hierarchyHandling",b8n="crossingMinimization.greedySwitch",w8n="nodePlacement",d8n="nodePlacement.bk",g8n="edgeRouting",v8n="org.eclipse.elk.edgeRouting",p8n="spacing",m8n="priority",k8n="compaction",y8n="compaction.postCompaction",M8n="Specifies whether and how post-process compaction is applied.",T8n="highDegreeNodes",j8n="wrapping",E8n="wrapping.cutting",S8n="wrapping.validify",P8n="wrapping.multiEdge",C8n="edgeLabels",I8n="considerModelOrder",O8n="org.eclipse.elk.spacing.commentComment",A8n="org.eclipse.elk.spacing.commentNode",L8n="org.eclipse.elk.spacing.edgeEdge",N8n="org.eclipse.elk.spacing.edgeNode",$8n="org.eclipse.elk.spacing.labelLabel",D8n="org.eclipse.elk.spacing.labelPortHorizontal",x8n="org.eclipse.elk.spacing.labelPortVertical",R8n="org.eclipse.elk.spacing.labelNode",K8n="org.eclipse.elk.spacing.nodeSelfLoop",F8n="org.eclipse.elk.spacing.portPort",_8n="org.eclipse.elk.spacing.individual",B8n="org.eclipse.elk.port.borderOffset",H8n="org.eclipse.elk.noLayout",U8n="org.eclipse.elk.port.side",G8n="org.eclipse.elk.debugMode",q8n="org.eclipse.elk.alignment",X8n="org.eclipse.elk.insideSelfLoops.activate",V8n="org.eclipse.elk.insideSelfLoops.yo",z8n="org.eclipse.elk.direction",W8n="org.eclipse.elk.nodeLabels.padding",Q8n="org.eclipse.elk.portLabels.nextToPortIfPossible",J8n="org.eclipse.elk.portLabels.treatAsGroup",Y8n="org.eclipse.elk.portAlignment.default",Z8n="org.eclipse.elk.portAlignment.north",n9n="org.eclipse.elk.portAlignment.south",e9n="org.eclipse.elk.portAlignment.west",t9n="org.eclipse.elk.portAlignment.east",r9n="org.eclipse.elk.contentAlignment",i9n="org.eclipse.elk.junctionPoints",a9n="org.eclipse.elk.edgeLabels.placement",c9n="org.eclipse.elk.port.index",u9n="org.eclipse.elk.commentBox",s9n="org.eclipse.elk.hypernode",o9n="org.eclipse.elk.port.anchor",f9n="org.eclipse.elk.partitioning.activate",h9n="org.eclipse.elk.partitioning.partition",l9n="org.eclipse.elk.position",b9n="org.eclipse.elk.margins",w9n="org.eclipse.elk.spacing.portsSurrounding",d9n="org.eclipse.elk.interactiveLayout",g9n="org.eclipse.elk.core.util",v9n={3:1,4:1,5:1,601:1},p9n="NETWORK_SIMPLEX",m9n="SIMPLE",k9n={106:1,47:1},y9n="org.eclipse.elk.alg.layered.p1cycles",M9n="org.eclipse.elk.alg.layered.p2layers",T9n={413:1,230:1},j9n={846:1,3:1,4:1},E9n="org.eclipse.elk.alg.layered.p3order",S9n="org.eclipse.elk.alg.layered.p4nodes",P9n={3:1,4:1,5:1,854:1},C9n=1e-5,I9n="org.eclipse.elk.alg.layered.p4nodes.bk",O9n="org.eclipse.elk.alg.layered.p5edges",A9n="org.eclipse.elk.alg.layered.p5edges.orthogonal",L9n="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",N9n=1e-6,$9n="org.eclipse.elk.alg.layered.p5edges.splines",D9n=.09999999999999998,x9n=1e-8,R9n=4.71238898038469,K9n=3.141592653589793,F9n="org.eclipse.elk.alg.mrtree",_9n=.10000000149011612,B9n="SUPER_ROOT",H9n="org.eclipse.elk.alg.mrtree.graph",U9n=-17976931348623157e292,G9n="org.eclipse.elk.alg.mrtree.intermediate",q9n="Processor compute fanout",X9n={3:1,6:1,4:1,5:1,534:1,100:1,115:1},V9n="Set neighbors in level",z9n="org.eclipse.elk.alg.mrtree.options",W9n="DESCENDANTS",Q9n="org.eclipse.elk.mrtree.compaction",J9n="org.eclipse.elk.mrtree.edgeEndTextureLength",Y9n="org.eclipse.elk.mrtree.treeLevel",Z9n="org.eclipse.elk.mrtree.positionConstraint",n7n="org.eclipse.elk.mrtree.weighting",e7n="org.eclipse.elk.mrtree.edgeRoutingMode",t7n="org.eclipse.elk.mrtree.searchOrder",r7n="Position Constraint",i7n="org.eclipse.elk.mrtree",a7n="org.eclipse.elk.tree",c7n="Processor arrange level",u7n="org.eclipse.elk.alg.mrtree.p2order",s7n="org.eclipse.elk.alg.mrtree.p4route",o7n="org.eclipse.elk.alg.radial",f7n=6.283185307179586,h7n="Before",l7n=5e-324,b7n="After",w7n="org.eclipse.elk.alg.radial.intermediate",d7n="COMPACTION",g7n="org.eclipse.elk.alg.radial.intermediate.compaction",v7n={3:1,4:1,5:1,100:1},p7n="org.eclipse.elk.alg.radial.intermediate.optimization",m7n="No implementation is available for the layout option ",k7n="org.eclipse.elk.alg.radial.options",y7n="org.eclipse.elk.radial.centerOnRoot",M7n="org.eclipse.elk.radial.orderId",T7n="org.eclipse.elk.radial.radius",j7n="org.eclipse.elk.radial.rotate",E7n="org.eclipse.elk.radial.compactor",S7n="org.eclipse.elk.radial.compactionStepSize",P7n="org.eclipse.elk.radial.sorter",C7n="org.eclipse.elk.radial.wedgeCriteria",I7n="org.eclipse.elk.radial.optimizationCriteria",O7n="org.eclipse.elk.radial.rotation.targetAngle",A7n="org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace",L7n="org.eclipse.elk.radial.rotation.outgoingEdgeAngles",N7n="Compaction",$7n="rotation",D7n="org.eclipse.elk.radial",x7n="org.eclipse.elk.alg.radial.p1position.wedge",R7n="org.eclipse.elk.alg.radial.sorting",K7n=5.497787143782138,F7n=3.9269908169872414,_7n=2.356194490192345,B7n="org.eclipse.elk.alg.rectpacking",H7n="org.eclipse.elk.alg.rectpacking.intermediate",U7n="org.eclipse.elk.alg.rectpacking.options",G7n="org.eclipse.elk.rectpacking.trybox",q7n="org.eclipse.elk.rectpacking.currentPosition",X7n="org.eclipse.elk.rectpacking.desiredPosition",V7n="org.eclipse.elk.rectpacking.inNewRow",z7n="org.eclipse.elk.rectpacking.widthApproximation.strategy",W7n="org.eclipse.elk.rectpacking.widthApproximation.targetWidth",Q7n="org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal",J7n="org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift",Y7n="org.eclipse.elk.rectpacking.packing.strategy",Z7n="org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation",nne="org.eclipse.elk.rectpacking.packing.compaction.iterations",ene="org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy",tne="widthApproximation",rne="Compaction Strategy",ine="packing.compaction",ane="org.eclipse.elk.rectpacking",cne="org.eclipse.elk.alg.rectpacking.p1widthapproximation",une="org.eclipse.elk.alg.rectpacking.p2packing",sne="No Compaction",one="org.eclipse.elk.alg.rectpacking.p3whitespaceelimination",fne="org.eclipse.elk.alg.rectpacking.util",hne="No implementation available for ",lne="org.eclipse.elk.alg.spore",bne="org.eclipse.elk.alg.spore.options",wne="org.eclipse.elk.sporeCompaction",dne="org.eclipse.elk.underlyingLayoutAlgorithm",gne="org.eclipse.elk.processingOrder.treeConstruction",vne="org.eclipse.elk.processingOrder.spanningTreeCostFunction",pne="org.eclipse.elk.processingOrder.preferredRoot",mne="org.eclipse.elk.processingOrder.rootSelection",kne="org.eclipse.elk.structure.structureExtractionStrategy",yne="org.eclipse.elk.compaction.compactionStrategy",Mne="org.eclipse.elk.compaction.orthogonal",Tne="org.eclipse.elk.overlapRemoval.maxIterations",jne="org.eclipse.elk.overlapRemoval.runScanline",Ene="processingOrder",Sne="overlapRemoval",Pne="org.eclipse.elk.sporeOverlap",Cne="org.eclipse.elk.alg.spore.p1structure",Ine="org.eclipse.elk.alg.spore.p2processingorder",One="org.eclipse.elk.alg.spore.p3execution",Ane="Topdown Layout",Lne="Invalid index: ",Nne="org.eclipse.elk.core.alg",$ne={341:1},Dne={295:1},xne="Make sure its type is registered with the ",Rne=" utility class.",Kne="true",Fne="false",_ne="Couldn't clone property '",Bne=.05,Hne="org.eclipse.elk.core.options",Une=1.2999999523162842,Gne="org.eclipse.elk.box",qne="org.eclipse.elk.expandNodes",Xne="org.eclipse.elk.box.packingMode",Vne="org.eclipse.elk.algorithm",zne="org.eclipse.elk.resolvedAlgorithm",Wne="org.eclipse.elk.bendPoints",Qne="org.eclipse.elk.labelManager",Jne="org.eclipse.elk.scaleFactor",Yne="org.eclipse.elk.childAreaWidth",Zne="org.eclipse.elk.childAreaHeight",nee="org.eclipse.elk.animate",eee="org.eclipse.elk.animTimeFactor",tee="org.eclipse.elk.layoutAncestors",ree="org.eclipse.elk.maxAnimTime",iee="org.eclipse.elk.minAnimTime",aee="org.eclipse.elk.progressBar",cee="org.eclipse.elk.validateGraph",uee="org.eclipse.elk.validateOptions",see="org.eclipse.elk.zoomToFit",oee="org.eclipse.elk.font.name",fee="org.eclipse.elk.font.size",hee="org.eclipse.elk.topdown.sizeApproximator",lee="org.eclipse.elk.topdown.scaleCap",bee="org.eclipse.elk.edge.type",wee="partitioning",dee="nodeLabels",gee="portAlignment",vee="nodeSize",pee="port",mee="portLabels",kee="topdown",yee="insideSelfLoops",Mee="org.eclipse.elk.fixed",Tee="org.eclipse.elk.random",jee={3:1,34:1,22:1,347:1},Eee="port must have a parent node to calculate the port side",See="The edge needs to have exactly one edge section. Found: ",Pee="org.eclipse.elk.core.util.adapters",Cee="org.eclipse.emf.ecore",Iee="org.eclipse.elk.graph",Oee="EMapPropertyHolder",Aee="ElkBendPoint",Lee="ElkGraphElement",Nee="ElkConnectableShape",$ee="ElkEdge",Dee="ElkEdgeSection",xee="EModelElement",Ree="ENamedElement",Kee="ElkLabel",Fee="ElkNode",_ee="ElkPort",Bee={94:1,93:1},Hee="org.eclipse.emf.common.notify.impl",Uee="The feature '",Gee="' is not a valid changeable feature",qee="Expecting null",Xee="' is not a valid feature",Vee="The feature ID",zee=" is not a valid feature ID",Wee=32768,Qee={110:1,94:1,93:1,58:1,54:1,99:1},Jee="org.eclipse.emf.ecore.impl",Yee="org.eclipse.elk.graph.impl",Zee="Recursive containment not allowed for ",nte="The datatype '",ete="' is not a valid classifier",tte="The value '",rte={195:1,3:1,4:1},ite="The class '",ate="http://www.eclipse.org/elk/ElkGraph",cte="property",ute="value",ste="source",ote="properties",fte="identifier",hte="height",lte="width",bte="parent",wte="text",dte="children",gte="hierarchical",vte="sources",pte="targets",mte="sections",kte="bendPoints",yte="outgoingShape",Mte="incomingShape",Tte="outgoingSections",jte="incomingSections",Ete="org.eclipse.emf.common.util",Ste="Severe implementation error in the Json to ElkGraph importer.",Pte="id",Cte="org.eclipse.elk.graph.json",Ite="Unhandled parameter types: ",Ote="startPoint",Ate="An edge must have at least one source and one target (edge id: '",Lte="').",Nte="Referenced edge section does not exist: ",$te=" (edge id: '",Dte="target",xte="sourcePoint",Rte="targetPoint",Kte="group",Fte="name",_te="connectableShape cannot be null",Bte="edge cannot be null",Hte="Passed edge is not 'simple'.",Ute="org.eclipse.elk.graph.util",Gte="The 'no duplicates' constraint is violated",qte="targetIndex=",Xte=", size=",Vte="sourceIndex=",zte={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1},Wte={3:1,4:1,20:1,31:1,56:1,16:1,51:1,15:1,59:1,70:1,66:1,61:1,596:1},Qte="logging",Jte="measureExecutionTime",Yte="parser.parse.1",Zte="parser.parse.2",nre="parser.next.1",ere="parser.next.2",tre="parser.next.3",rre="parser.next.4",ire="parser.factor.1",are="parser.factor.2",cre="parser.factor.3",ure="parser.factor.4",sre="parser.factor.5",ore="parser.factor.6",fre="parser.atom.1",hre="parser.atom.2",lre="parser.atom.3",bre="parser.atom.4",wre="parser.atom.5",dre="parser.cc.1",gre="parser.cc.2",vre="parser.cc.3",pre="parser.cc.5",mre="parser.cc.6",kre="parser.cc.7",yre="parser.cc.8",Mre="parser.ope.1",Tre="parser.ope.2",jre="parser.ope.3",Ere="parser.descape.1",Sre="parser.descape.2",Pre="parser.descape.3",Cre="parser.descape.4",Ire="parser.descape.5",Ore="parser.process.1",Are="parser.quantifier.1",Lre="parser.quantifier.2",Nre="parser.quantifier.3",$re="parser.quantifier.4",Dre="parser.quantifier.5",xre="org.eclipse.emf.common.notify",Rre={424:1,686:1},Kre={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1},Fre={378:1,152:1},_re="index=",Bre={3:1,4:1,5:1,129:1},Hre={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,61:1},Ure={3:1,6:1,4:1,5:1,198:1},Gre={3:1,4:1,5:1,173:1,379:1},qre=";/?:@&=+$,",Xre="invalid authority: ",Vre="EAnnotation",zre="ETypedElement",Wre="EStructuralFeature",Qre="EAttribute",Jre="EClassifier",Yre="EEnumLiteral",Zre="EGenericType",nie="EOperation",eie="EParameter",tie="EReference",rie="ETypeParameter",iie="org.eclipse.emf.ecore.util",aie={79:1},cie={3:1,20:1,16:1,15:1,61:1,597:1,79:1,71:1,97:1},uie="org.eclipse.emf.ecore.util.FeatureMap$Entry",sie=8192,oie=2048,fie="byte",hie="char",lie="double",bie="float",wie="int",die="long",gie="short",vie="java.lang.Object",pie={3:1,4:1,5:1,254:1},mie={3:1,4:1,5:1,688:1},kie={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,71:1},yie={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,71:1,97:1},Mie="mixed",Tie="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",jie="kind",Eie={3:1,4:1,5:1,689:1},Sie={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1,79:1,71:1,97:1},Pie={20:1,31:1,56:1,16:1,15:1,61:1,71:1},Cie={51:1,128:1,287:1},Iie={76:1,343:1},Oie="The value of type '",Aie="' must be of type '",Lie=1352,Nie="http://www.eclipse.org/emf/2002/Ecore",$ie=-32768,Die="constraints",xie="baseType",Rie="getEStructuralFeature",Kie="getFeatureID",Fie="feature",_ie="getOperationID",Bie="operation",Hie="defaultValue",Uie="eTypeParameters",Gie="isInstance",qie="getEEnumLiteral",Xie="eContainingClass",Vie={57:1},zie={3:1,4:1,5:1,124:1},Wie="org.eclipse.emf.ecore.resource",Qie={94:1,93:1,599:1,2034:1},Jie="org.eclipse.emf.ecore.resource.impl",Yie="unspecified",Zie="simple",nae="attribute",eae="attributeWildcard",tae="element",rae="elementWildcard",iae="collapse",aae="itemType",cae="namespace",uae="##targetNamespace",sae="whiteSpace",oae="wildcards",fae="http://www.eclipse.org/emf/2003/XMLType",hae="##any",lae="uninitialized",bae="The multiplicity constraint is violated",wae="org.eclipse.emf.ecore.xml.type",dae="ProcessingInstruction",gae="SimpleAnyType",vae="XMLTypeDocumentRoot",pae="org.eclipse.emf.ecore.xml.type.impl",mae="INF",kae="processing",yae="ENTITIES_._base",Mae="minLength",Tae="ENTITY",jae="NCName",Eae="IDREFS_._base",Sae="integer",Pae="token",Cae="pattern",Iae="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",Oae="\\i\\c*",Aae="[\\i-[:]][\\c-[:]]*",Lae="nonPositiveInteger",Nae="maxInclusive",$ae="NMTOKEN",Dae="NMTOKENS_._base",xae="nonNegativeInteger",Rae="minInclusive",Kae="normalizedString",Fae="unsignedByte",_ae="unsignedInt",Bae="18446744073709551615",Hae="unsignedShort",Uae="processingInstruction",Gae="org.eclipse.emf.ecore.xml.type.internal",qae=1114111,Xae="Internal Error: shorthands: \\u",Vae="xml:isDigit",zae="xml:isWord",Wae="xml:isSpace",Qae="xml:isNameChar",Jae="xml:isInitialNameChar",Yae="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",Zae="AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",nce="Private Use",ece="ASSIGNED",tce="\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\ufeff\ufeff＀￯",rce="UNASSIGNED",ice={3:1,122:1},ace="org.eclipse.emf.ecore.xml.type.util",cce={3:1,4:1,5:1,381:1},uce="org.eclipse.xtext.xbase.lib",sce="Cannot add elements to a Range",oce="Cannot set elements in a Range",fce="Cannot remove elements from a Range",hce="user.agent";var lce,bce,wce,dce=-1;t.goog=t.goog||{};t.goog.global=t.goog.global||t;bce={};wDn(1,null,{},o);lce.Fb=function n(e){return AL(this,e)};lce.Gb=function n(){return this.Rm};lce.Hb=function n(){return Bx(this)};lce.Ib=function n(){var e;return $j(Cbn(this))+"@"+(e=Vun(this)>>>0,e.toString(16))};lce.equals=function(n){return this.Fb(n)};lce.hashCode=function(){return this.Hb()};lce.toString=function(){return this.Ib()};var gce,vce,pce;wDn(297,1,{297:1,2124:1},$hn);lce.ve=function n(e){var t;t=new $hn;t.i=4;e>1?t.c=X0(this,e-1):t.c=this;return t};lce.we=function n(){jK(this);return this.b};lce.xe=function n(){return $j(this)};lce.ye=function n(){return jK(this),this.k};lce.ze=function n(){return(this.i&4)!=0};lce.Ae=function n(){return(this.i&1)!=0};lce.Ib=function n(){return fin(this)};lce.i=0;var mce=1;var kce=YW(mZn,"Object",1);var yce=YW(mZn,"Class",297);wDn(2096,1,kZn);var Mce=YW(yZn,"Optional",2096);wDn(1191,2096,kZn,f);lce.Fb=function n(e){return e===this};lce.Hb=function n(){return 2040732332};lce.Ib=function n(){return"Optional.absent()"};lce.Jb=function n(e){nQ(e);return yy(),Tce};var Tce;var jce=YW(yZn,"Absent",1191);wDn(636,1,{},GM);var Ece=YW(yZn,"Joiner",636);var Sce=$q(yZn,"Predicate");wDn(589,1,{178:1,589:1,3:1,46:1},Vl);lce.Mb=function n(e){return nln(this,e)};lce.Lb=function n(e){return nln(this,e)};lce.Fb=function n(e){var t;if(G$(e,589)){t=bG(e,589);return LDn(this.a,t.a)}return false};lce.Hb=function n(){return iln(this.a)+306654252};lce.Ib=function n(){return uAn(this.a)};var Pce=YW(yZn,"Predicates/AndPredicate",589);wDn(419,2096,{419:1,3:1},zl);lce.Fb=function n(e){var t;if(G$(e,419)){t=bG(e,419);return bdn(this.a,t.a)}return false};lce.Hb=function n(){return 1502476572+Vun(this.a)};lce.Ib=function n(){return PZn+this.a+")"};lce.Jb=function n(e){return new zl(pZ(e.Kb(this.a),"the Function passed to Optional.transform() must not return null."))};var Cce=YW(yZn,"Present",419);wDn(204,1,IZn);lce.Nb=function n(e){Az(this,e)};lce.Qb=function n(){qM()};var Ice=YW(OZn,"UnmodifiableIterator",204);wDn(2076,204,AZn);lce.Qb=function n(){qM()};lce.Rb=function n(e){throw dm(new Um)};lce.Wb=function n(e){throw dm(new Um)};var Oce=YW(OZn,"UnmodifiableListIterator",2076);wDn(399,2076,AZn);lce.Ob=function n(){return this.c0};lce.Pb=function n(){if(this.c>=this.d){throw dm(new Xm)}return this.Xb(this.c++)};lce.Tb=function n(){return this.c};lce.Ub=function n(){if(this.c<=0){throw dm(new Xm)}return this.Xb(--this.c)};lce.Vb=function n(){return this.c-1};lce.c=0;lce.d=0;var Ace=YW(OZn,"AbstractIndexedListIterator",399);wDn(713,204,IZn);lce.Ob=function n(){return lun(this)};lce.Pb=function n(){return Stn(this)};lce.e=1;var Lce=YW(OZn,"AbstractIterator",713);wDn(2084,1,{229:1});lce.Zb=function n(){var e;return e=this.f,!e?this.f=this.ac():e};lce.Fb=function n(e){return xln(this,e)};lce.Hb=function n(){return Vun(this.Zb())};lce.dc=function n(){return this.gc()==0};lce.ec=function n(){return EV(this)};lce.Ib=function n(){return fvn(this.Zb())};var Nce=YW(OZn,"AbstractMultimap",2084);wDn(742,2084,LZn);lce.$b=function n(){pcn(this)};lce._b=function n(e){return Ij(this,e)};lce.ac=function n(){return new DE(this,this.c)};lce.ic=function n(e){return this.hc()};lce.bc=function n(){return new HD(this,this.c)};lce.jc=function n(){return this.mc(this.hc())};lce.kc=function n(){return new Py(this)};lce.lc=function n(){return $Cn(this.c.vc().Nc(),new l,64,this.d)};lce.cc=function n(e){return r7(this,e)};lce.fc=function n(e){return cwn(this,e)};lce.gc=function n(){return this.d};lce.mc=function n(e){return dZ(),new Qw(e)};lce.nc=function n(){return new Sy(this)};lce.oc=function n(){return $Cn(this.c.Cc().Nc(),new h,64,this.d)};lce.pc=function n(e,t){return new x7(this,e,t,null)};lce.d=0;var $ce=YW(OZn,"AbstractMapBasedMultimap",742);wDn(1696,742,LZn);lce.hc=function n(){return new H7(this.a)};lce.jc=function n(){return dZ(),dZ(),lbe};lce.cc=function n(e){return bG(r7(this,e),15)};lce.fc=function n(e){return bG(cwn(this,e),15)};lce.Zb=function n(){return aZ(this)};lce.Fb=function n(e){return xln(this,e)};lce.qc=function n(e){return bG(r7(this,e),15)};lce.rc=function n(e){return bG(cwn(this,e),15)};lce.mc=function n(e){return AZ(bG(e,15))};lce.pc=function n(e,t){return A6(this,e,bG(t,15),null)};var Dce=YW(OZn,"AbstractListMultimap",1696);wDn(748,1,NZn);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){return this.c.Ob()||this.e.Ob()};lce.Pb=function n(){var e;if(!this.e.Ob()){e=bG(this.c.Pb(),44);this.b=e.ld();this.a=bG(e.md(),16);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};lce.Qb=function n(){this.e.Qb();bG(aJ(this.a),16).dc()&&this.c.Qb();--this.d.d};var xce=YW(OZn,"AbstractMapBasedMultimap/Itr",748);wDn(1129,748,NZn,Sy);lce.sc=function n(e,t){return t};var Rce=YW(OZn,"AbstractMapBasedMultimap/1",1129);wDn(1130,1,{},h);lce.Kb=function n(e){return bG(e,16).Nc()};var Kce=YW(OZn,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1130);wDn(1131,748,NZn,Py);lce.sc=function n(e,t){return new GE(e,t)};var Fce=YW(OZn,"AbstractMapBasedMultimap/2",1131);var _ce=$q($Zn,"Map");wDn(2065,1,DZn);lce.wc=function n(e){ron(this,e)};lce.yc=function n(e,t,r){return tvn(this,e,t,r)};lce.$b=function n(){this.vc().$b()};lce.tc=function n(e){return wTn(this,e)};lce._b=function n(e){return!!CPn(this,e,false)};lce.uc=function n(e){var t,r,i;for(r=this.vc().Kc();r.Ob();){t=bG(r.Pb(),44);i=t.md();if(BA(e)===BA(i)||e!=null&&bdn(e,i)){return true}}return false};lce.Fb=function n(e){var t,r,i;if(e===this){return true}if(!G$(e,85)){return false}i=bG(e,85);if(this.gc()!=i.gc()){return false}for(r=i.vc().Kc();r.Ob();){t=bG(r.Pb(),44);if(!this.tc(t)){return false}}return true};lce.xc=function n(e){return _A(CPn(this,e,false))};lce.Hb=function n(){return chn(this.vc())};lce.dc=function n(){return this.gc()==0};lce.ec=function n(){return new Rw(this)};lce.zc=function n(e,t){throw dm(new CM("Put not supported on this map"))};lce.Ac=function n(e){Bsn(this,e)};lce.Bc=function n(e){return _A(CPn(this,e,true))};lce.gc=function n(){return this.vc().gc()};lce.Ib=function n(){return UPn(this)};lce.Cc=function n(){return new Gw(this)};var Bce=YW($Zn,"AbstractMap",2065);wDn(2085,2065,DZn);lce.bc=function n(){return new ZE(this)};lce.vc=function n(){return jV(this)};lce.ec=function n(){var e;e=this.g;return!e?this.g=this.bc():e};lce.Cc=function n(){var e;e=this.i;return!e?this.i=new YE(this):e};var Hce=YW(OZn,"Maps/ViewCachingAbstractMap",2085);wDn(402,2085,DZn,DE);lce.xc=function n(e){return win(this,e)};lce.Bc=function n(e){return hbn(this,e)};lce.$b=function n(){this.d==this.e.c?this.e.$b():Vq(new Wq(this))};lce._b=function n(e){return zwn(this.d,e)};lce.Ec=function n(){return new Wl(this)};lce.Dc=function(){return this.Ec()};lce.Fb=function n(e){return this===e||bdn(this.d,e)};lce.Hb=function n(){return Vun(this.d)};lce.ec=function n(){return this.e.ec()};lce.gc=function n(){return this.d.gc()};lce.Ib=function n(){return fvn(this.d)};var Uce=YW(OZn,"AbstractMapBasedMultimap/AsMap",402);var Gce=$q(mZn,"Iterable");wDn(31,1,xZn);lce.Jc=function n(e){Y8(this,e)};lce.Lc=function n(){return this.Oc()};lce.Nc=function n(){return new d3(this,0)};lce.Oc=function n(){return new gX(null,this.Nc())};lce.Fc=function n(e){throw dm(new CM("Add not supported on this collection"))};lce.Gc=function n(e){return esn(this,e)};lce.$b=function n(){lY(this)};lce.Hc=function n(e){return npn(this,e,false)};lce.Ic=function n(e){return Sfn(this,e)};lce.dc=function n(){return this.gc()==0};lce.Mc=function n(e){return npn(this,e,true)};lce.Pc=function n(){return AV(this)};lce.Qc=function n(e){return lTn(this,e)};lce.Ib=function n(){return jIn(this)};var qce=YW($Zn,"AbstractCollection",31);var Xce=$q($Zn,"Set");wDn(RZn,31,KZn);lce.Nc=function n(){return new d3(this,1)};lce.Fb=function n(e){return Gmn(this,e)};lce.Hb=function n(){return chn(this)};var Vce=YW($Zn,"AbstractSet",RZn);wDn(2068,RZn,KZn);var zce=YW(OZn,"Sets/ImprovedAbstractSet",2068);wDn(2069,2068,KZn);lce.$b=function n(){this.Rc().$b()};lce.Hc=function n(e){return xpn(this,e)};lce.dc=function n(){return this.Rc().dc()};lce.Mc=function n(e){var t;if(this.Hc(e)&&G$(e,44)){t=bG(e,44);return this.Rc().ec().Mc(t.ld())}return false};lce.gc=function n(){return this.Rc().gc()};var Wce=YW(OZn,"Maps/EntrySet",2069);wDn(1127,2069,KZn,Wl);lce.Hc=function n(e){return Wwn(this.a.d.vc(),e)};lce.Kc=function n(){return new Wq(this.a)};lce.Rc=function n(){return this.a};lce.Mc=function n(e){var t;if(!Wwn(this.a.d.vc(),e)){return false}t=bG(aJ(bG(e,44)),44);V9(this.a.e,t.ld());return true};lce.Nc=function n(){return tG(this.a.d.vc().Nc(),new Ql(this.a))};var Qce=YW(OZn,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1127);wDn(1128,1,{},Ql);lce.Kb=function n(e){return D9(this.a,bG(e,44))};var Jce=YW(OZn,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1128);wDn(746,1,NZn,Wq);lce.Nb=function n(e){Az(this,e)};lce.Pb=function n(){var e;return e=bG(this.b.Pb(),44),this.a=bG(e.md(),16),D9(this.c,e)};lce.Ob=function n(){return this.b.Ob()};lce.Qb=function n(){$B(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var Yce=YW(OZn,"AbstractMapBasedMultimap/AsMap/AsMapIterator",746);wDn(542,2068,KZn,ZE);lce.$b=function n(){this.b.$b()};lce.Hc=function n(e){return this.b._b(e)};lce.Jc=function n(e){nQ(e);this.b.wc(new kb(e))};lce.dc=function n(){return this.b.dc()};lce.Kc=function n(){return new Ky(this.b.vc().Kc())};lce.Mc=function n(e){if(this.b._b(e)){this.b.Bc(e);return true}return false};lce.gc=function n(){return this.b.gc()};var Zce=YW(OZn,"Maps/KeySet",542);wDn(327,542,KZn,HD);lce.$b=function n(){var e;Vq((e=this.b.vc().Kc(),new xE(this,e)))};lce.Ic=function n(e){return this.b.ec().Ic(e)};lce.Fb=function n(e){return this===e||bdn(this.b.ec(),e)};lce.Hb=function n(){return Vun(this.b.ec())};lce.Kc=function n(){var e;return e=this.b.vc().Kc(),new xE(this,e)};lce.Mc=function n(e){var t,r;r=0;t=bG(this.b.Bc(e),16);if(t){r=t.gc();t.$b();this.a.d-=r}return r>0};lce.Nc=function n(){return this.b.ec().Nc()};var nue=YW(OZn,"AbstractMapBasedMultimap/KeySet",327);wDn(747,1,NZn,xE);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){return this.c.Ob()};lce.Pb=function n(){this.a=bG(this.c.Pb(),44);return this.a.ld()};lce.Qb=function n(){var e;$B(!!this.a);e=bG(this.a.md(),16);this.c.Qb();this.b.a.d-=e.gc();e.$b();this.a=null};var eue=YW(OZn,"AbstractMapBasedMultimap/KeySet/1",747);wDn(503,402,{85:1,133:1},KK);lce.bc=function n(){return this.Sc()};lce.ec=function n(){return this.Uc()};lce.Sc=function n(){return new SE(this.c,this.Wc())};lce.Tc=function n(){return this.Wc().Tc()};lce.Uc=function n(){var e;return e=this.b,!e?this.b=this.Sc():e};lce.Vc=function n(){return this.Wc().Vc()};lce.Wc=function n(){return bG(this.d,133)};var tue=YW(OZn,"AbstractMapBasedMultimap/SortedAsMap",503);wDn(446,503,FZn,FK);lce.bc=function n(){return new PE(this.a,bG(bG(this.d,133),139))};lce.Sc=function n(){return new PE(this.a,bG(bG(this.d,133),139))};lce.ec=function n(){var e;return e=this.b,bG(!e?this.b=new PE(this.a,bG(bG(this.d,133),139)):e,277)};lce.Uc=function n(){var e;return e=this.b,bG(!e?this.b=new PE(this.a,bG(bG(this.d,133),139)):e,277)};lce.Wc=function n(){return bG(bG(this.d,133),139)};lce.Xc=function n(e){return bG(bG(this.d,133),139).Xc(e)};lce.Yc=function n(e){return bG(bG(this.d,133),139).Yc(e)};lce.Zc=function n(e,t){return new FK(this.a,bG(bG(this.d,133),139).Zc(e,t))};lce.$c=function n(e){return bG(bG(this.d,133),139).$c(e)};lce._c=function n(e){return bG(bG(this.d,133),139)._c(e)};lce.ad=function n(e,t){return new FK(this.a,bG(bG(this.d,133),139).ad(e,t))};var rue=YW(OZn,"AbstractMapBasedMultimap/NavigableAsMap",446);wDn(502,327,_Zn,SE);lce.Nc=function n(){return this.b.ec().Nc()};var iue=YW(OZn,"AbstractMapBasedMultimap/SortedKeySet",502);wDn(401,502,BZn,PE);var aue=YW(OZn,"AbstractMapBasedMultimap/NavigableKeySet",401);wDn(551,31,xZn,x7);lce.Fc=function n(e){var t,r;pvn(this);r=this.d.dc();t=this.d.Fc(e);if(t){++this.f.d;r&&TF(this)}return t};lce.Gc=function n(e){var t,r,i;if(e.dc()){return false}i=(pvn(this),this.d.gc());t=this.d.Gc(e);if(t){r=this.d.gc();this.f.d+=r-i;i==0&&TF(this)}return t};lce.$b=function n(){var e;e=(pvn(this),this.d.gc());if(e==0){return}this.d.$b();this.f.d-=e;_X(this)};lce.Hc=function n(e){pvn(this);return this.d.Hc(e)};lce.Ic=function n(e){pvn(this);return this.d.Ic(e)};lce.Fb=function n(e){if(e===this){return true}pvn(this);return bdn(this.d,e)};lce.Hb=function n(){pvn(this);return Vun(this.d)};lce.Kc=function n(){pvn(this);return new nG(this)};lce.Mc=function n(e){var t;pvn(this);t=this.d.Mc(e);if(t){--this.f.d;_X(this)}return t};lce.gc=function n(){return QA(this)};lce.Nc=function n(){return pvn(this),this.d.Nc()};lce.Ib=function n(){pvn(this);return fvn(this.d)};var cue=YW(OZn,"AbstractMapBasedMultimap/WrappedCollection",551);var uue=$q($Zn,"List");wDn(744,551,{20:1,31:1,16:1,15:1},QV);lce.jd=function n(e){Run(this,e)};lce.Nc=function n(){return pvn(this),this.d.Nc()};lce.bd=function n(e,t){var r;pvn(this);r=this.d.dc();bG(this.d,15).bd(e,t);++this.a.d;r&&TF(this)};lce.cd=function n(e,t){var r,i,a;if(t.dc()){return false}a=(pvn(this),this.d.gc());r=bG(this.d,15).cd(e,t);if(r){i=this.d.gc();this.a.d+=i-a;a==0&&TF(this)}return r};lce.Xb=function n(e){pvn(this);return bG(this.d,15).Xb(e)};lce.dd=function n(e){pvn(this);return bG(this.d,15).dd(e)};lce.ed=function n(){pvn(this);return new t$(this)};lce.fd=function n(e){pvn(this);return new zY(this,e)};lce.gd=function n(e){var t;pvn(this);t=bG(this.d,15).gd(e);--this.a.d;_X(this);return t};lce.hd=function n(e,t){pvn(this);return bG(this.d,15).hd(e,t)};lce.kd=function n(e,t){pvn(this);return A6(this.a,this.e,bG(this.d,15).kd(e,t),!this.b?this:this.b)};var sue=YW(OZn,"AbstractMapBasedMultimap/WrappedList",744);wDn(1126,744,{20:1,31:1,16:1,15:1,59:1},rR);var oue=YW(OZn,"AbstractMapBasedMultimap/RandomAccessWrappedList",1126);wDn(628,1,NZn,nG);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){GY(this);return this.b.Ob()};lce.Pb=function n(){GY(this);return this.b.Pb()};lce.Qb=function n(){YD(this)};var fue=YW(OZn,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",628);wDn(745,628,HZn,t$,zY);lce.Qb=function n(){YD(this)};lce.Rb=function n(e){var t;t=QA(this.a)==0;(GY(this),bG(this.b,128)).Rb(e);++this.a.a.d;t&&TF(this.a)};lce.Sb=function n(){return(GY(this),bG(this.b,128)).Sb()};lce.Tb=function n(){return(GY(this),bG(this.b,128)).Tb()};lce.Ub=function n(){return(GY(this),bG(this.b,128)).Ub()};lce.Vb=function n(){return(GY(this),bG(this.b,128)).Vb()};lce.Wb=function n(e){(GY(this),bG(this.b,128)).Wb(e)};var hue=YW(OZn,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",745);wDn(743,551,_Zn,xK);lce.Nc=function n(){return pvn(this),this.d.Nc()};var lue=YW(OZn,"AbstractMapBasedMultimap/WrappedSortedSet",743);wDn(1125,743,BZn,CN);var bue=YW(OZn,"AbstractMapBasedMultimap/WrappedNavigableSet",1125);wDn(1124,551,KZn,RK);lce.Nc=function n(){return pvn(this),this.d.Nc()};var wue=YW(OZn,"AbstractMapBasedMultimap/WrappedSet",1124);wDn(1133,1,{},l);lce.Kb=function n(e){return L7(bG(e,44))};var due=YW(OZn,"AbstractMapBasedMultimap/lambda$1$Type",1133);wDn(1132,1,{},nb);lce.Kb=function n(e){return new GE(this.a,e)};var gue=YW(OZn,"AbstractMapBasedMultimap/lambda$2$Type",1132);var vue=$q($Zn,"Map/Entry");wDn(358,1,UZn);lce.Fb=function n(e){var t;if(G$(e,44)){t=bG(e,44);return BQ(this.ld(),t.ld())&&BQ(this.md(),t.md())}return false};lce.Hb=function n(){var e,t;e=this.ld();t=this.md();return(e==null?0:Vun(e))^(t==null?0:Vun(t))};lce.nd=function n(e){throw dm(new Um)};lce.Ib=function n(){return this.ld()+"="+this.md()};var pue=YW(OZn,GZn,358);wDn(2086,31,xZn);lce.$b=function n(){this.od().$b()};lce.Hc=function n(e){var t;if(G$(e,44)){t=bG(e,44);return O4(this.od(),t.ld(),t.md())}return false};lce.Mc=function n(e){var t;if(G$(e,44)){t=bG(e,44);return A4(this.od(),t.ld(),t.md())}return false};lce.gc=function n(){return this.od().d};var mue=YW(OZn,"Multimaps/Entries",2086);wDn(749,2086,xZn,eb);lce.Kc=function n(){return this.a.kc()};lce.od=function n(){return this.a};lce.Nc=function n(){return this.a.lc()};var kue=YW(OZn,"AbstractMultimap/Entries",749);wDn(750,749,KZn,Cy);lce.Nc=function n(){return this.a.lc()};lce.Fb=function n(e){return DOn(this,e)};lce.Hb=function n(){return tsn(this)};var yue=YW(OZn,"AbstractMultimap/EntrySet",750);wDn(751,31,xZn,tb);lce.$b=function n(){this.a.$b()};lce.Hc=function n(e){return Qln(this.a,e)};lce.Kc=function n(){return this.a.nc()};lce.gc=function n(){return this.a.d};lce.Nc=function n(){return this.a.oc()};var Mue=YW(OZn,"AbstractMultimap/Values",751);wDn(2087,31,{849:1,20:1,31:1,16:1});lce.Jc=function n(e){nQ(e);bY(this).Jc(new Sb(e))};lce.Nc=function n(){var e;return e=bY(this).Nc(),$Cn(e,new k,64|e.yd()&1296,this.a.d)};lce.Fc=function n(e){VM();return true};lce.Gc=function n(e){return nQ(this),nQ(e),G$(e,552)?Z4(bG(e,849)):!e.dc()&&frn(this,e.Kc())};lce.Hc=function n(e){var t;return t=bG(Jwn(aZ(this.a),e),16),(!t?0:t.gc())>0};lce.Fb=function n(e){return axn(this,e)};lce.Hb=function n(){return Vun(bY(this))};lce.dc=function n(){return bY(this).dc()};lce.Mc=function n(e){return pNn(this,e,1)>0};lce.Ib=function n(){return fvn(bY(this))};var Tue=YW(OZn,"AbstractMultiset",2087);wDn(2089,2068,KZn);lce.$b=function n(){pcn(this.a.a)};lce.Hc=function n(e){var t,r;if(G$(e,504)){r=bG(e,425);if(bG(r.a.md(),16).gc()<=0){return false}t=A2(this.a,r.a.ld());return t==bG(r.a.md(),16).gc()}return false};lce.Mc=function n(e){var t,r,i,a;if(G$(e,504)){r=bG(e,425);t=r.a.ld();i=bG(r.a.md(),16).gc();if(i!=0){a=this.a;return mNn(a,t,i)}}return false};var jue=YW(OZn,"Multisets/EntrySet",2089);wDn(1139,2089,KZn,rb);lce.Kc=function n(){return new _y(jV(aZ(this.a.a)).Kc())};lce.gc=function n(){return aZ(this.a.a).gc()};var Eue=YW(OZn,"AbstractMultiset/EntrySet",1139);wDn(627,742,LZn);lce.hc=function n(){return this.pd()};lce.jc=function n(){return this.qd()};lce.cc=function n(e){return this.rd(e)};lce.fc=function n(e){return this.sd(e)};lce.Zb=function n(){var e;return e=this.f,!e?this.f=this.ac():e};lce.qd=function n(){return dZ(),dZ(),wbe};lce.Fb=function n(e){return xln(this,e)};lce.rd=function n(e){return bG(r7(this,e),21)};lce.sd=function n(e){return bG(cwn(this,e),21)};lce.mc=function n(e){return dZ(),new aT(bG(e,21))};lce.pc=function n(e,t){return new RK(this,e,bG(t,21))};var Sue=YW(OZn,"AbstractSetMultimap",627);wDn(1723,627,LZn);lce.hc=function n(){return new Vj(this.b)};lce.pd=function n(){return new Vj(this.b)};lce.jc=function n(){return zQ(new Vj(this.b))};lce.qd=function n(){return zQ(new Vj(this.b))};lce.cc=function n(e){return bG(bG(r7(this,e),21),87)};lce.rd=function n(e){return bG(bG(r7(this,e),21),87)};lce.fc=function n(e){return bG(bG(cwn(this,e),21),87)};lce.sd=function n(e){return bG(bG(cwn(this,e),21),87)};lce.mc=function n(e){return G$(e,277)?zQ(bG(e,277)):(dZ(),new Tx(bG(e,87)))};lce.Zb=function n(){var e;return e=this.f,!e?this.f=G$(this.c,139)?new FK(this,bG(this.c,139)):G$(this.c,133)?new KK(this,bG(this.c,133)):new DE(this,this.c):e};lce.pc=function n(e,t){return G$(t,277)?new CN(this,e,bG(t,277)):new xK(this,e,bG(t,87))};var Pue=YW(OZn,"AbstractSortedSetMultimap",1723);wDn(1724,1723,LZn);lce.Zb=function n(){var e;return e=this.f,bG(bG(!e?this.f=G$(this.c,139)?new FK(this,bG(this.c,139)):G$(this.c,133)?new KK(this,bG(this.c,133)):new DE(this,this.c):e,133),139)};lce.ec=function n(){var e;return e=this.i,bG(bG(!e?this.i=G$(this.c,139)?new PE(this,bG(this.c,139)):G$(this.c,133)?new SE(this,bG(this.c,133)):new HD(this,this.c):e,87),277)};lce.bc=function n(){return G$(this.c,139)?new PE(this,bG(this.c,139)):G$(this.c,133)?new SE(this,bG(this.c,133)):new HD(this,this.c)};var Cue=YW(OZn,"AbstractSortedKeySortedSetMultimap",1724);wDn(2109,1,{2046:1});lce.Fb=function n(e){return gSn(this,e)};lce.Hb=function n(){var e;return chn((e=this.g,!e?this.g=new ab(this):e))};lce.Ib=function n(){var e;return UPn((e=this.f,!e?this.f=new ZD(this):e))};var Iue=YW(OZn,"AbstractTable",2109);wDn(679,RZn,KZn,ab);lce.$b=function n(){zM()};lce.Hc=function n(e){var t,r;if(G$(e,479)){t=bG(e,697);r=bG(Jwn(XW(this.a),WA(t.c.e,t.b)),85);return!!r&&Wwn(r.vc(),new GE(WA(t.c.c,t.a),$7(t.c,t.b,t.a)))}return false};lce.Kc=function n(){return NZ(this.a)};lce.Mc=function n(e){var t,r;if(G$(e,479)){t=bG(e,697);r=bG(Jwn(XW(this.a),WA(t.c.e,t.b)),85);return!!r&&Qwn(r.vc(),new GE(WA(t.c.c,t.a),$7(t.c,t.b,t.a)))}return false};lce.gc=function n(){return Fq(this.a)};lce.Nc=function n(){return b6(this.a)};var Oue=YW(OZn,"AbstractTable/CellSet",679);wDn(2025,31,xZn,cb);lce.$b=function n(){zM()};lce.Hc=function n(e){return eCn(this.a,e)};lce.Kc=function n(){return $Z(this.a)};lce.gc=function n(){return Fq(this.a)};lce.Nc=function n(){return S4(this.a)};var Aue=YW(OZn,"AbstractTable/Values",2025);wDn(1697,1696,LZn);var Lue=YW(OZn,"ArrayListMultimapGwtSerializationDependencies",1697);wDn(520,1697,LZn,oT,R2);lce.hc=function n(){return new H7(this.a)};lce.a=0;var Nue=YW(OZn,"ArrayListMultimap",520);wDn(678,2109,{678:1,2046:1,3:1},g$n);var $ue=YW(OZn,"ArrayTable",678);wDn(2021,399,AZn,nx);lce.Xb=function n(e){return new Dhn(this.a,e)};var Due=YW(OZn,"ArrayTable/1",2021);wDn(2022,1,{},Jl);lce.td=function n(e){return new Dhn(this.a,e)};var xue=YW(OZn,"ArrayTable/1methodref$getCell$Type",2022);wDn(2110,1,{697:1});lce.Fb=function n(e){var t;if(e===this){return true}if(G$(e,479)){t=bG(e,697);return BQ(WA(this.c.e,this.b),WA(t.c.e,t.b))&&BQ(WA(this.c.c,this.a),WA(t.c.c,t.a))&&BQ($7(this.c,this.b,this.a),$7(t.c,t.b,t.a))}return false};lce.Hb=function n(){return Dbn(zfn(fT(kce,1),jZn,1,5,[WA(this.c.e,this.b),WA(this.c.c,this.a),$7(this.c,this.b,this.a)]))};lce.Ib=function n(){return"("+WA(this.c.e,this.b)+","+WA(this.c.c,this.a)+")="+$7(this.c,this.b,this.a)};var Rue=YW(OZn,"Tables/AbstractCell",2110);wDn(479,2110,{479:1,697:1},Dhn);lce.a=0;lce.b=0;lce.d=0;var Kue=YW(OZn,"ArrayTable/2",479);wDn(2024,1,{},Yl);lce.td=function n(e){return etn(this.a,e)};var Fue=YW(OZn,"ArrayTable/2methodref$getValue$Type",2024);wDn(2023,399,AZn,ex);lce.Xb=function n(e){return etn(this.a,e)};var _ue=YW(OZn,"ArrayTable/3",2023);wDn(2077,2065,DZn);lce.$b=function n(){Vq(this.kc())};lce.vc=function n(){return new mb(this)};lce.lc=function n(){return new PY(this.kc(),this.gc())};var Bue=YW(OZn,"Maps/IteratorBasedAbstractMap",2077);wDn(842,2077,DZn);lce.$b=function n(){throw dm(new Um)};lce._b=function n(e){return Oj(this.c,e)};lce.kc=function n(){return new tx(this,this.c.b.c.gc())};lce.lc=function n(){return _q(this.c.b.c.gc(),16,new Zl(this))};lce.xc=function n(e){var t;t=bG(nB(this.c,e),17);return!t?null:this.vd(t.a)};lce.dc=function n(){return this.c.b.c.dc()};lce.ec=function n(){return CV(this.c)};lce.zc=function n(e,t){var r;r=bG(nB(this.c,e),17);if(!r){throw dm(new jM(this.ud()+" "+e+" not in "+CV(this.c)))}return this.wd(r.a,t)};lce.Bc=function n(e){throw dm(new Um)};lce.gc=function n(){return this.c.b.c.gc()};var Hue=YW(OZn,"ArrayTable/ArrayMap",842);wDn(2020,1,{},Zl);lce.td=function n(e){return QW(this.a,e)};var Uue=YW(OZn,"ArrayTable/ArrayMap/0methodref$getEntry$Type",2020);wDn(2018,358,UZn,CE);lce.ld=function n(){return bR(this.a,this.b)};lce.md=function n(){return this.a.vd(this.b)};lce.nd=function n(e){return this.a.wd(this.b,e)};lce.b=0;var Gue=YW(OZn,"ArrayTable/ArrayMap/1",2018);wDn(2019,399,AZn,tx);lce.Xb=function n(e){return QW(this.a,e)};var que=YW(OZn,"ArrayTable/ArrayMap/2",2019);wDn(2017,842,DZn,Sz);lce.ud=function n(){return"Column"};lce.vd=function n(e){return $7(this.b,this.a,e)};lce.wd=function n(e,t){return Vfn(this.b,this.a,e,t)};lce.a=0;var Xue=YW(OZn,"ArrayTable/Row",2017);wDn(843,842,DZn,ZD);lce.vd=function n(e){return new Sz(this.a,e)};lce.zc=function n(e,t){return bG(t,85),WM()};lce.wd=function n(e,t){return bG(t,85),QM()};lce.ud=function n(){return"Row"};var Vue=YW(OZn,"ArrayTable/RowMap",843);wDn(1157,1,zZn,IE);lce.Ad=function n(e){return(this.a.yd()&-262&e)!=0};lce.yd=function n(){return this.a.yd()&-262};lce.zd=function n(){return this.a.zd()};lce.Nb=function n(e){this.a.Nb(new AE(e,this.b))};lce.Bd=function n(e){return this.a.Bd(new OE(e,this.b))};var zue=YW(OZn,"CollectSpliterators/1",1157);wDn(1158,1,WZn,OE);lce.Cd=function n(e){this.a.Cd(this.b.Kb(e))};var Wue=YW(OZn,"CollectSpliterators/1/lambda$0$Type",1158);wDn(1159,1,WZn,AE);lce.Cd=function n(e){this.a.Cd(this.b.Kb(e))};var Que=YW(OZn,"CollectSpliterators/1/lambda$1$Type",1159);wDn(1154,1,zZn,B_);lce.Ad=function n(e){return((16464|this.b)&e)!=0};lce.yd=function n(){return 16464|this.b};lce.zd=function n(){return this.a.zd()};lce.Nb=function n(e){this.a.Qe(new NE(e,this.c))};lce.Bd=function n(e){return this.a.Re(new LE(e,this.c))};lce.b=0;var Jue=YW(OZn,"CollectSpliterators/1WithCharacteristics",1154);wDn(1155,1,QZn,LE);lce.Dd=function n(e){this.a.Cd(this.b.td(e))};var Yue=YW(OZn,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1155);wDn(1156,1,QZn,NE);lce.Dd=function n(e){this.a.Cd(this.b.td(e))};var Zue=YW(OZn,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1156);wDn(1150,1,zZn);lce.Ad=function n(e){return(this.a&e)!=0};lce.yd=function n(){return this.a};lce.zd=function n(){!!this.e&&(this.b=y$(this.b,this.e.zd()));return y$(this.b,0)};lce.Nb=function n(e){if(this.e){this.e.Nb(e);this.e=null}this.c.Nb(new $E(this,e));this.b=0};lce.Bd=function n(e){while(true){if(!!this.e&&this.e.Bd(e)){VA(this.b,JZn)&&(this.b=Fgn(this.b,1));return true}else{this.e=null}if(!this.c.Bd(new ub(this))){return false}}};lce.a=0;lce.b=0;var nse=YW(OZn,"CollectSpliterators/FlatMapSpliterator",1150);wDn(1152,1,WZn,ub);lce.Cd=function n(e){P_(this.a,e)};var ese=YW(OZn,"CollectSpliterators/FlatMapSpliterator/lambda$0$Type",1152);wDn(1153,1,WZn,$E);lce.Cd=function n(e){gY(this.a,this.b,e)};var tse=YW(OZn,"CollectSpliterators/FlatMapSpliterator/lambda$1$Type",1153);wDn(1151,1150,zZn,C6);var rse=YW(OZn,"CollectSpliterators/FlatMapSpliteratorOfObject",1151);wDn(253,1,YZn);lce.Fd=function n(e){return this.Ed(bG(e,253))};lce.Ed=function n(e){var t;if(e==(Ty(),sse)){return 1}if(e==(My(),ase)){return-1}t=(QG(),_sn(this.a,e.a));if(t!=0){return t}return G$(this,526)==G$(e,526)?0:G$(this,526)?1:-1};lce.Id=function n(){return this.a};lce.Fb=function n(e){return MTn(this,e)};var ise=YW(OZn,"Cut",253);wDn(1823,253,YZn,Ey);lce.Ed=function n(e){return e==this?0:1};lce.Gd=function n(e){throw dm(new xm)};lce.Hd=function n(e){e.a+="+∞)"};lce.Id=function n(){throw dm(new EM(ZZn))};lce.Hb=function n(){return pS(),xmn(this)};lce.Jd=function n(e){return false};lce.Ib=function n(){return"+∞"};var ase;var cse=YW(OZn,"Cut/AboveAll",1823);wDn(526,253,{253:1,526:1,3:1,34:1},px);lce.Gd=function n(e){eL((e.a+="(",e),this.a)};lce.Hd=function n(e){IQ(eL(e,this.a),93)};lce.Hb=function n(){return~Vun(this.a)};lce.Jd=function n(e){return QG(),_sn(this.a,e)<0};lce.Ib=function n(){return"/"+this.a+"\\"};var use=YW(OZn,"Cut/AboveValue",526);wDn(1822,253,YZn,jy);lce.Ed=function n(e){return e==this?0:-1};lce.Gd=function n(e){e.a+="(-∞"};lce.Hd=function n(e){throw dm(new xm)};lce.Id=function n(){throw dm(new EM(ZZn))};lce.Hb=function n(){return pS(),xmn(this)};lce.Jd=function n(e){return true};lce.Ib=function n(){return"-∞"};var sse;var ose=YW(OZn,"Cut/BelowAll",1822);wDn(1824,253,YZn,mx);lce.Gd=function n(e){eL((e.a+="[",e),this.a)};lce.Hd=function n(e){IQ(eL(e,this.a),41)};lce.Hb=function n(){return Vun(this.a)};lce.Jd=function n(e){return QG(),_sn(this.a,e)<=0};lce.Ib=function n(){return"\\"+this.a+"/"};var fse=YW(OZn,"Cut/BelowValue",1824);wDn(547,1,n1n);lce.Jc=function n(e){Y8(this,e)};lce.Ib=function n(){return ogn(bG(pZ(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())};var hse=YW(OZn,"FluentIterable",547);wDn(442,547,n1n,sN);lce.Kc=function n(){return new GV(sx(this.a.Kc(),new d))};var lse=YW(OZn,"FluentIterable/2",442);wDn(1059,547,n1n,oN);lce.Kc=function n(){return Dz(this)};var bse=YW(OZn,"FluentIterable/3",1059);wDn(724,399,AZn,rx);lce.Xb=function n(e){return this.a[e].Kc()};var wse=YW(OZn,"FluentIterable/3/1",724);wDn(2070,1,{});lce.Ib=function n(){return fvn(this.Kd().b)};var dse=YW(OZn,"ForwardingObject",2070);wDn(2071,2070,e1n);lce.Kd=function n(){return this.Ld()};lce.Jc=function n(e){Y8(this,e)};lce.Lc=function n(){return this.Oc()};lce.Nc=function n(){return new d3(this,0)};lce.Oc=function n(){return new gX(null,this.Nc())};lce.Fc=function n(e){return this.Ld(),Hj()};lce.Gc=function n(e){return this.Ld(),Uj()};lce.$b=function n(){this.Ld(),Gj()};lce.Hc=function n(e){return this.Ld().Hc(e)};lce.Ic=function n(e){return this.Ld().Ic(e)};lce.dc=function n(){return this.Ld().b.dc()};lce.Kc=function n(){return this.Ld().Kc()};lce.Mc=function n(e){return this.Ld(),qj()};lce.gc=function n(){return this.Ld().b.gc()};lce.Pc=function n(){return this.Ld().Pc()};lce.Qc=function n(e){return this.Ld().Qc(e)};var gse=YW(OZn,"ForwardingCollection",2071);wDn(2078,31,t1n);lce.Kc=function n(){return this.Od()};lce.Fc=function n(e){throw dm(new Um)};lce.Gc=function n(e){throw dm(new Um)};lce.Md=function n(){var e;e=this.c;return!e?this.c=this.Nd():e};lce.$b=function n(){throw dm(new Um)};lce.Hc=function n(e){return e!=null&&npn(this,e,false)};lce.Nd=function n(){switch(this.gc()){case 0:return iQ(),iQ(),mse;case 1:return iQ(),new zq(nQ(this.Od().Pb()));default:return new Cz(this,this.Pc())}};lce.Mc=function n(e){throw dm(new Um)};var vse=YW(OZn,"ImmutableCollection",2078);wDn(727,2078,t1n,Im);lce.Kc=function n(){return Ien(this.a.Kc())};lce.Hc=function n(e){return e!=null&&this.a.Hc(e)};lce.Ic=function n(e){return this.a.Ic(e)};lce.dc=function n(){return this.a.dc()};lce.Od=function n(){return Ien(this.a.Kc())};lce.gc=function n(){return this.a.gc()};lce.Pc=function n(){return this.a.Pc()};lce.Qc=function n(e){return this.a.Qc(e)};lce.Ib=function n(){return fvn(this.a)};var pse=YW(OZn,"ForwardingImmutableCollection",727);wDn(307,2078,r1n);lce.Kc=function n(){return this.Od()};lce.ed=function n(){return this.Pd(0)};lce.fd=function n(e){return this.Pd(e)};lce.jd=function n(e){Run(this,e)};lce.Nc=function n(){return new d3(this,16)};lce.kd=function n(e,t){return this.Qd(e,t)};lce.bd=function n(e,t){throw dm(new Um)};lce.cd=function n(e,t){throw dm(new Um)};lce.Md=function n(){return this};lce.Fb=function n(e){return HDn(this,e)};lce.Hb=function n(){return Jon(this)};lce.dd=function n(e){return e==null?-1:bTn(this,e)};lce.Od=function n(){return this.Pd(0)};lce.Pd=function n(e){return lR(this,e)};lce.gd=function n(e){throw dm(new Um)};lce.hd=function n(e,t){throw dm(new Um)};lce.Qd=function n(e,t){var r;return _wn((r=new QE(this),new N2(r,e,t)))};var mse;var kse=YW(OZn,"ImmutableList",307);wDn(2105,307,r1n);lce.Kc=function n(){return Ien(this.Rd().Kc())};lce.kd=function n(e,t){return _wn(this.Rd().kd(e,t))};lce.Hc=function n(e){return e!=null&&this.Rd().Hc(e)};lce.Ic=function n(e){return this.Rd().Ic(e)};lce.Fb=function n(e){return bdn(this.Rd(),e)};lce.Xb=function n(e){return WA(this,e)};lce.Hb=function n(){return Vun(this.Rd())};lce.dd=function n(e){return this.Rd().dd(e)};lce.dc=function n(){return this.Rd().dc()};lce.Od=function n(){return Ien(this.Rd().Kc())};lce.gc=function n(){return this.Rd().gc()};lce.Qd=function n(e,t){return _wn(this.Rd().kd(e,t))};lce.Pc=function n(){return this.Rd().Qc($nn(kce,jZn,1,this.Rd().gc(),5,1))};lce.Qc=function n(e){return this.Rd().Qc(e)};lce.Ib=function n(){return fvn(this.Rd())};var yse=YW(OZn,"ForwardingImmutableList",2105);wDn(729,1,a1n);lce.vc=function n(){return PV(this)};lce.wc=function n(e){ron(this,e)};lce.ec=function n(){return CV(this)};lce.yc=function n(e,t,r){return tvn(this,e,t,r)};lce.Cc=function n(){return this.Vd()};lce.$b=function n(){throw dm(new Um)};lce._b=function n(e){return this.xc(e)!=null};lce.uc=function n(e){return this.Vd().Hc(e)};lce.Td=function n(){return new Om(this)};lce.Ud=function n(){return new Am(this)};lce.Fb=function n(e){return nbn(this,e)};lce.Hb=function n(){return PV(this).Hb()};lce.dc=function n(){return this.gc()==0};lce.zc=function n(e,t){return XM()};lce.Bc=function n(e){throw dm(new Um)};lce.Ib=function n(){return eOn(this)};lce.Vd=function n(){if(this.e){return this.e}return this.e=this.Ud()};lce.c=null;lce.d=null;lce.e=null;var Mse;var Tse=YW(OZn,"ImmutableMap",729);wDn(730,729,a1n);lce._b=function n(e){return Oj(this,e)};lce.uc=function n(e){return sS(this.b,e)};lce.Sd=function n(){return Fwn(new ib(this))};lce.Td=function n(){return Fwn(AJ(this.b))};lce.Ud=function n(){return wB(),new Im(IJ(this.b))};lce.Fb=function n(e){return oS(this.b,e)};lce.xc=function n(e){return nB(this,e)};lce.Hb=function n(){return Vun(this.b.c)};lce.dc=function n(){return this.b.c.dc()};lce.gc=function n(){return this.b.c.gc()};lce.Ib=function n(){return fvn(this.b.c)};var jse=YW(OZn,"ForwardingImmutableMap",730);wDn(2072,2071,c1n);lce.Kd=function n(){return this.Wd()};lce.Ld=function n(){return this.Wd()};lce.Nc=function n(){return new d3(this,1)};lce.Fb=function n(e){return e===this||this.Wd().Fb(e)};lce.Hb=function n(){return this.Wd().Hb()};var Ese=YW(OZn,"ForwardingSet",2072);wDn(1085,2072,c1n,ib);lce.Kd=function n(){return OJ(this.a.b)};lce.Ld=function n(){return OJ(this.a.b)};lce.Hc=function n(e){if(G$(e,44)&&bG(e,44).ld()==null){return false}try{return uS(OJ(this.a.b),e)}catch(t){t=Ofn(t);if(G$(t,212)){return false}else throw dm(t)}};lce.Wd=function n(){return OJ(this.a.b)};lce.Qc=function n(e){var t;t=r1(OJ(this.a.b),e);OJ(this.a.b).b.gc()=0?"+":"")+(i/60|0);r=GL(t.Math.abs(i)%60);return(fIn(),_be)[this.q.getDay()]+" "+Bbe[this.q.getMonth()]+" "+GL(this.q.getDate())+" "+GL(this.q.getHours())+":"+GL(this.q.getMinutes())+":"+GL(this.q.getSeconds())+" GMT"+e+r+" "+this.q.getFullYear()};var hhe=YW($Zn,"Date",206);wDn(2015,206,s0n,_En);lce.a=false;lce.b=0;lce.c=0;lce.d=0;lce.e=0;lce.f=0;lce.g=false;lce.i=0;lce.j=0;lce.k=0;lce.n=0;lce.o=0;lce.p=0;var lhe=YW("com.google.gwt.i18n.shared.impl","DateRecord",2015);wDn(2064,1,{});lce.pe=function n(){return null};lce.qe=function n(){return null};lce.re=function n(){return null};lce.se=function n(){return null};lce.te=function n(){return null};var bhe=YW(o0n,"JSONValue",2064);wDn(221,2064,{221:1},$b,Ob);lce.Fb=function n(e){if(!G$(e,221)){return false}return I3(this.a,bG(e,221).a)};lce.oe=function n(){return bm};lce.Hb=function n(){return DZ(this.a)};lce.pe=function n(){return this};lce.Ib=function n(){var e,t,r;r=new vx("[");for(t=0,e=this.a.length;t0&&(r.a+=",",r);eL(r,brn(this,t))}r.a+="]";return r.a};var whe=YW(o0n,"JSONArray",221);wDn(493,2064,{493:1},Ab);lce.oe=function n(){return wm};lce.qe=function n(){return this};lce.Ib=function n(){return Qx(),""+this.a};lce.a=false;var dhe,ghe;var vhe=YW(o0n,"JSONBoolean",493);wDn(997,63,E1n,Gy);var phe=YW(o0n,"JSONException",997);wDn(1036,2064,{},C);lce.oe=function n(){return gm};lce.Ib=function n(){return CZn};var mhe;var khe=YW(o0n,"JSONNull",1036);wDn(263,2064,{263:1},Lb);lce.Fb=function n(e){if(!G$(e,263)){return false}return this.a==bG(e,263).a};lce.oe=function n(){return hm};lce.Hb=function n(){return DL(this.a)};lce.re=function n(){return this};lce.Ib=function n(){return this.a+""};lce.a=0;var yhe=YW(o0n,"JSONNumber",263);wDn(190,2064,{190:1},qy,Nb);lce.Fb=function n(e){if(!G$(e,190)){return false}return I3(this.a,bG(e,190).a)};lce.oe=function n(){return lm};lce.Hb=function n(){return DZ(this.a)};lce.se=function n(){return this};lce.Ib=function n(){var e,t,r,i,a,c,u;u=new vx("{");e=true;c=rsn(this,$nn(vle,XZn,2,0,6,1));for(r=c,i=0,a=r.length;i=0?":"+this.c:"")+")"};lce.c=0;var gle=YW(mZn,"StackTraceElement",319);pce={3:1,484:1,34:1,2:1};var vle=YW(mZn,P1n,2);wDn(111,427,{484:1},YM,ZM,gx);var ple=YW(mZn,"StringBuffer",111);wDn(104,427,{484:1},nT,eT,vx);var mle=YW(mZn,"StringBuilder",104);wDn(702,77,p0n,tT);var kle=YW(mZn,"StringIndexOutOfBoundsException",702);wDn(2145,1,{});var yle;wDn(48,63,{3:1,103:1,63:1,82:1,48:1},Um,CM);var Mle=YW(mZn,"UnsupportedOperationException",48);wDn(247,242,{3:1,34:1,242:1,247:1},Odn,nE);lce.Fd=function n(e){return FGn(this,bG(e,247))};lce.ue=function n(){return rOn(mVn(this))};lce.Fb=function n(e){var t;if(this===e){return true}if(G$(e,247)){t=bG(e,247);return this.e==t.e&&FGn(this,t)==0}return false};lce.Hb=function n(){var e;if(this.b!=0){return this.b}if(this.a<54){e=Xon(this.f);this.b=MV(O3(e,-1));this.b=33*this.b+MV(O3(FV(e,32),-1));this.b=17*this.b+c0(this.e);return this.b}this.b=17*fwn(this.c)+c0(this.e);return this.b};lce.Ib=function n(){return mVn(this)};lce.a=0;lce.b=0;lce.d=0;lce.e=0;lce.f=0;var Tle,jle,Ele,Sle,Ple,Cle,Ile,Ole;var Ale=YW("java.math","BigDecimal",247);wDn(92,242,{3:1,34:1,242:1,92:1},i8,B3,Zz,akn,LN);lce.Fd=function n(e){return Lmn(this,bG(e,92))};lce.ue=function n(){return rOn(pYn(this,0))};lce.Fb=function n(e){return Nvn(this,e)};lce.Hb=function n(){return fwn(this)};lce.Ib=function n(){return pYn(this,0)};lce.b=-2;lce.c=0;lce.d=0;lce.e=0;var Lle,Nle,$le,Dle,xle,Rle;var Kle=YW("java.math","BigInteger",92);var Fle,_le;var Ble,Hle;wDn(498,2065,DZn);lce.$b=function n(){Fz(this)};lce._b=function n(e){return Lz(this,e)};lce.uc=function n(e){return ebn(this,e,this.i)||ebn(this,e,this.f)};lce.vc=function n(){return new Kw(this)};lce.xc=function n(e){return fQ(this,e)};lce.zc=function n(e,t){return jJ(this,e,t)};lce.Bc=function n(e){return b7(this,e)};lce.gc=function n(){return lS(this)};lce.g=0;var Ule=YW($Zn,"AbstractHashMap",498);wDn(267,RZn,KZn,Kw);lce.$b=function n(){this.a.$b()};lce.Hc=function n(e){return e6(this,e)};lce.Kc=function n(){return new pon(this.a)};lce.Mc=function n(e){var t;if(e6(this,e)){t=bG(e,44).ld();this.a.Bc(t);return true}return false};lce.gc=function n(){return this.a.gc()};var Gle=YW($Zn,"AbstractHashMap/EntrySet",267);wDn(268,1,NZn,pon);lce.Nb=function n(e){Az(this,e)};lce.Pb=function n(){return jun(this)};lce.Ob=function n(){return this.b};lce.Qb=function n(){Dtn(this)};lce.b=false;lce.d=0;var qle=YW($Zn,"AbstractHashMap/EntrySetIterator",268);wDn(426,1,NZn,td);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){return xP(this)};lce.Pb=function n(){return qY(this)};lce.Qb=function n(){RQ(this)};lce.b=0;lce.c=-1;var Xle=YW($Zn,"AbstractList/IteratorImpl",426);wDn(98,426,HZn,K4);lce.Qb=function n(){RQ(this)};lce.Rb=function n(e){MF(this,e)};lce.Sb=function n(){return this.b>0};lce.Tb=function n(){return this.b};lce.Ub=function n(){return PK(this.b>0),this.a.Xb(this.c=--this.b)};lce.Vb=function n(){return this.b-1};lce.Wb=function n(e){CK(this.c!=-1);this.a.hd(this.c,e)};var Vle=YW($Zn,"AbstractList/ListIteratorImpl",98);wDn(244,56,v1n,N2);lce.bd=function n(e,t){l3(e,this.b);this.c.bd(this.a+e,t);++this.b};lce.Xb=function n(e){b3(e,this.b);return this.c.Xb(this.a+e)};lce.gd=function n(e){var t;b3(e,this.b);t=this.c.gd(this.a+e);--this.b;return t};lce.hd=function n(e,t){b3(e,this.b);return this.c.hd(this.a+e,t)};lce.gc=function n(){return this.b};lce.a=0;lce.b=0;var zle=YW($Zn,"AbstractList/SubList",244);wDn(266,RZn,KZn,Rw);lce.$b=function n(){this.a.$b()};lce.Hc=function n(e){return this.a._b(e)};lce.Kc=function n(){var e;return e=this.a.vc().Kc(),new Uw(e)};lce.Mc=function n(e){if(this.a._b(e)){this.a.Bc(e);return true}return false};lce.gc=function n(){return this.a.gc()};var Wle=YW($Zn,"AbstractMap/1",266);wDn(541,1,NZn,Uw);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){return this.a.Ob()};lce.Pb=function n(){var e;return e=bG(this.a.Pb(),44),e.ld()};lce.Qb=function n(){this.a.Qb()};var Qle=YW($Zn,"AbstractMap/1/1",541);wDn(231,31,xZn,Gw);lce.$b=function n(){this.a.$b()};lce.Hc=function n(e){return this.a.uc(e)};lce.Kc=function n(){var e;return e=this.a.vc().Kc(),new qw(e)};lce.gc=function n(){return this.a.gc()};var Jle=YW($Zn,"AbstractMap/2",231);wDn(301,1,NZn,qw);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){return this.a.Ob()};lce.Pb=function n(){var e;return e=bG(this.a.Pb(),44),e.md()};lce.Qb=function n(){this.a.Qb()};var Yle=YW($Zn,"AbstractMap/2/1",301);wDn(494,1,{494:1,44:1});lce.Fb=function n(e){var t;if(!G$(e,44)){return false}t=bG(e,44);return DJ(this.d,t.ld())&&DJ(this.e,t.md())};lce.ld=function n(){return this.d};lce.md=function n(){return this.e};lce.Hb=function n(){return ZN(this.d)^ZN(this.e)};lce.nd=function n(e){return mF(this,e)};lce.Ib=function n(){return this.d+"="+this.e};var Zle=YW($Zn,"AbstractMap/AbstractEntry",494);wDn(397,494,{494:1,397:1,44:1},ZP);var nbe=YW($Zn,"AbstractMap/SimpleEntry",397);wDn(2082,1,N0n);lce.Fb=function n(e){var t;if(!G$(e,44)){return false}t=bG(e,44);return DJ(this.ld(),t.ld())&&DJ(this.md(),t.md())};lce.Hb=function n(){return ZN(this.ld())^ZN(this.md())};lce.Ib=function n(){return this.ld()+"="+this.md()};var ebe=YW($Zn,GZn,2082);wDn(2090,2065,FZn);lce.Xc=function n(e){return Aj(this.Ee(e))};lce.tc=function n(e){return $9(this,e)};lce._b=function n(e){return kF(this,e)};lce.vc=function n(){return new zw(this)};lce.Tc=function n(){return _z(this.Ge())};lce.Yc=function n(e){return Aj(this.He(e))};lce.xc=function n(e){var t;t=e;return _A(this.Fe(t))};lce.$c=function n(e){return Aj(this.Ie(e))};lce.ec=function n(){return new Xw(this)};lce.Vc=function n(){return _z(this.Je())};lce._c=function n(e){return Aj(this.Ke(e))};var tbe=YW($Zn,"AbstractNavigableMap",2090);wDn(629,RZn,KZn,zw);lce.Hc=function n(e){return G$(e,44)&&$9(this.b,bG(e,44))};lce.Kc=function n(){return this.b.De()};lce.Mc=function n(e){var t;if(G$(e,44)){t=bG(e,44);return this.b.Le(t)}return false};lce.gc=function n(){return this.b.gc()};var rbe=YW($Zn,"AbstractNavigableMap/EntrySet",629);wDn(1146,RZn,BZn,Xw);lce.Nc=function n(){return new WP(this)};lce.$b=function n(){this.a.$b()};lce.Hc=function n(e){return kF(this.a,e)};lce.Kc=function n(){var e;e=this.a.vc().b.De();return new Vw(e)};lce.Mc=function n(e){if(kF(this.a,e)){this.a.Bc(e);return true}return false};lce.gc=function n(){return this.a.gc()};var ibe=YW($Zn,"AbstractNavigableMap/NavigableKeySet",1146);wDn(1147,1,NZn,Vw);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){return xP(this.a.a)};lce.Pb=function n(){var e;e=ER(this.a);return e.ld()};lce.Qb=function n(){oB(this.a)};var abe=YW($Zn,"AbstractNavigableMap/NavigableKeySet/1",1147);wDn(2103,31,xZn);lce.Fc=function n(e){return EG(qCn(this,e),$0n),true};lce.Gc=function n(e){cJ(e);jG(e!=this,"Can't add a queue to itself");return esn(this,e)};lce.$b=function n(){while(drn(this)!=null);};var cbe=YW($Zn,"AbstractQueue",2103);wDn(310,31,{4:1,20:1,31:1,16:1},KD,F4);lce.Fc=function n(e){return D6(this,e),true};lce.$b=function n(){Q5(this)};lce.Hc=function n(e){return Nfn(new JJ(this),e)};lce.dc=function n(){return RM(this)};lce.Kc=function n(){return new JJ(this)};lce.Mc=function n(e){return T0(new JJ(this),e)};lce.gc=function n(){return this.c-this.b&this.a.length-1};lce.Nc=function n(){return new d3(this,272)};lce.Qc=function n(e){var t;t=this.c-this.b&this.a.length-1;e.lengtht&&bQ(e,t,null);return e};lce.b=0;lce.c=0;var ube=YW($Zn,"ArrayDeque",310);wDn(459,1,NZn,JJ);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){return this.a!=this.b};lce.Pb=function n(){return own(this)};lce.Qb=function n(){vcn(this)};lce.a=0;lce.b=0;lce.c=-1;var sbe=YW($Zn,"ArrayDeque/IteratorImpl",459);wDn(13,56,D0n,im,H7,iB);lce.bd=function n(e,t){WX(this,e,t)};lce.Fc=function n(e){return ED(this,e)};lce.cd=function n(e,t){return Nbn(this,e,t)};lce.Gc=function n(e){return Dfn(this,e)};lce.$b=function n(){Jm(this.c,0)};lce.Hc=function n(e){return Ctn(this,e,0)!=-1};lce.Jc=function n(e){Lin(this,e)};lce.Xb=function n(e){return Yq(this,e)};lce.dd=function n(e){return Ctn(this,e,0)};lce.dc=function n(){return this.c.length==0};lce.Kc=function n(){return new nd(this)};lce.gd=function n(e){return s7(this,e)};lce.Mc=function n(e){return Ttn(this,e)};lce.ce=function n(e,t){L2(this,e,t)};lce.hd=function n(e,t){return r9(this,e,t)};lce.gc=function n(){return this.c.length};lce.jd=function n(e){g$(this,e)};lce.Pc=function n(){return cq(this.c)};lce.Qc=function n(e){return Okn(this,e)};var obe=YW($Zn,"ArrayList",13);wDn(7,1,NZn,nd);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){return v$(this)};lce.Pb=function n(){return K3(this)};lce.Qb=function n(){cW(this)};lce.a=0;lce.b=-1;var fbe=YW($Zn,"ArrayList/1",7);wDn(2112,t.Function,{},L);lce.Me=function n(e,t){return bgn(e,t)};wDn(151,56,x0n,$M);lce.Hc=function n(e){return ycn(this,e)!=-1};lce.Jc=function n(e){var t,r,i,a;cJ(e);for(r=this.a,i=0,a=r.length;i0){throw dm(new jM(J0n+e+" greater than "+this.e))}return this.f.Te()?W1(this.c,this.b,this.a,e,t):K2(this.c,e,t)};lce.zc=function n(e,t){if(!vjn(this.c,this.f,e,this.b,this.a,this.e,this.d)){throw dm(new jM(e+" outside the range "+this.b+" to "+this.e))}return Bhn(this.c,e,t)};lce.Bc=function n(e){var t;t=e;if(!vjn(this.c,this.f,t,this.b,this.a,this.e,this.d)){return null}return Z1(this.c,t)};lce.Le=function n(e){return FQ(this,e.ld())&&Rnn(this.c,e)};lce.gc=function n(){var e,t,r;this.f.Te()?this.a?t=imn(this.c,this.b,true):t=imn(this.c,this.b,false):t=rtn(this.c);if(!(!!t&&FQ(this,t.d)?t:null)){return 0}e=0;for(r=new ksn(this.c,this.f,this.b,this.a,this.e,this.d);xP(r.a);r.b=bG(qY(r.a),44)){++e}return e};lce.ad=function n(e,t){if(this.f.Te()&&this.c.a.Ne(e,this.b)<0){throw dm(new jM(J0n+e+Y0n+this.b))}return this.f.Ue()?W1(this.c,e,t,this.e,this.d):F2(this.c,e,t)};lce.a=false;lce.d=false;var tde=YW($Zn,"TreeMap/SubMap",631);wDn(304,22,Z0n,QP);lce.Te=function n(){return false};lce.Ue=function n(){return false};var rde,ide,ade,cde;var ude=qan($Zn,"TreeMap/SubMapType",304,joe,U6,dB);wDn(1143,304,Z0n,AN);lce.Ue=function n(){return true};var sde=qan($Zn,"TreeMap/SubMapType/1",1143,ude,null,null);wDn(1144,304,Z0n,L$);lce.Te=function n(){return true};lce.Ue=function n(){return true};var ode=qan($Zn,"TreeMap/SubMapType/2",1144,ude,null,null);wDn(1145,304,Z0n,ON);lce.Te=function n(){return true};var fde=qan($Zn,"TreeMap/SubMapType/3",1145,ude,null,null);var hde;wDn(157,RZn,{3:1,20:1,31:1,16:1,277:1,21:1,87:1,157:1},ok,Vj,ld);lce.Nc=function n(){return new WP(this)};lce.Fc=function n(e){return qz(this,e)};lce.$b=function n(){this.a.$b()};lce.Hc=function n(e){return this.a._b(e)};lce.Kc=function n(){return this.a.ec().Kc()};lce.Mc=function n(e){return wD(this,e)};lce.gc=function n(){return this.a.gc()};var lde=YW($Zn,"TreeSet",157);wDn(1082,1,{},bd);lce.Ve=function n(e,t){return qK(this.a,e,t)};var bde=YW(n2n,"BinaryOperator/lambda$0$Type",1082);wDn(1083,1,{},wd);lce.Ve=function n(e,t){return XK(this.a,e,t)};var wde=YW(n2n,"BinaryOperator/lambda$1$Type",1083);wDn(952,1,{},V);lce.Kb=function n(e){return e};var dde=YW(n2n,"Function/lambda$0$Type",952);wDn(395,1,k1n,dd);lce.Mb=function n(e){return!this.a.Mb(e)};var gde=YW(n2n,"Predicate/lambda$2$Type",395);wDn(581,1,{581:1});var vde=YW(e2n,"Handler",581);wDn(2107,1,kZn);lce.xe=function n(){return"DUMMY"};lce.Ib=function n(){return this.xe()};var pde;var mde=YW(e2n,"Level",2107);wDn(1706,2107,kZn,z);lce.xe=function n(){return"INFO"};var kde=YW(e2n,"Level/LevelInfo",1706);wDn(1843,1,{},sk);var yde;var Mde=YW(e2n,"LogManager",1843);wDn(1896,1,kZn,sB);lce.b=null;var Tde=YW(e2n,"LogRecord",1896);wDn(525,1,{525:1},u9);lce.e=false;var jde=false,Ede=false,Sde=false,Pde=false,Cde=false;var Ide=YW(e2n,"Logger",525);wDn(835,581,{581:1},W);var Ode=YW(e2n,"SimpleConsoleLogHandler",835);wDn(108,22,{3:1,34:1,22:1,108:1},JP);var Ade,Lde,Nde;var $de=qan(i2n,"Collector/Characteristics",108,joe,_2,gB);var Dde;wDn(758,1,{},nW);var xde=YW(i2n,"CollectorImpl",758);wDn(1074,1,{},Q);lce.Ve=function n(e,t){return sdn(bG(e,213),bG(t,213))};var Rde=YW(i2n,"Collectors/10methodref$merge$Type",1074);wDn(1075,1,{},J);lce.Kb=function n(e){return H4(bG(e,213))};var Kde=YW(i2n,"Collectors/11methodref$toString$Type",1075);wDn(1076,1,{},gd);lce.Kb=function n(e){return Qx(),$L(e)?true:false};var Fde=YW(i2n,"Collectors/12methodref$test$Type",1076);wDn(144,1,{},Y);lce.Yd=function n(e,t){bG(e,16).Fc(t)};var _de=YW(i2n,"Collectors/20methodref$add$Type",144);wDn(146,1,{},Z);lce.Xe=function n(){return new im};var Bde=YW(i2n,"Collectors/21methodref$ctor$Type",146);wDn(359,1,{},nn);lce.Xe=function n(){return new uk};var Hde=YW(i2n,"Collectors/23methodref$ctor$Type",359);wDn(360,1,{},en);lce.Yd=function n(e,t){Gz(bG(e,49),t)};var Ude=YW(i2n,"Collectors/24methodref$add$Type",360);wDn(1069,1,{},tn);lce.Ve=function n(e,t){return $S(bG(e,15),bG(t,16))};var Gde=YW(i2n,"Collectors/4methodref$addAll$Type",1069);wDn(1073,1,{},rn);lce.Yd=function n(e,t){l7(bG(e,213),bG(t,484))};var qde=YW(i2n,"Collectors/9methodref$add$Type",1073);wDn(1072,1,{},gG);lce.Xe=function n(){return new rfn(this.a,this.b,this.c)};var Xde=YW(i2n,"Collectors/lambda$15$Type",1072);wDn(1077,1,{},an);lce.Xe=function n(){var e;return e=new b8,xkn(e,(Qx(),false),new im),xkn(e,true,new im),e};var Vde=YW(i2n,"Collectors/lambda$22$Type",1077);wDn(1078,1,{},vd);lce.Xe=function n(){return zfn(fT(kce,1),jZn,1,5,[this.a])};var zde=YW(i2n,"Collectors/lambda$25$Type",1078);wDn(1079,1,{},pd);lce.Yd=function n(e,t){rX(this.a,Uan(e))};var Wde=YW(i2n,"Collectors/lambda$26$Type",1079);wDn(1080,1,{},md);lce.Ve=function n(e,t){return wz(this.a,Uan(e),Uan(t))};var Qde=YW(i2n,"Collectors/lambda$27$Type",1080);wDn(1081,1,{},cn);lce.Kb=function n(e){return Uan(e)[0]};var Jde=YW(i2n,"Collectors/lambda$28$Type",1081);wDn(728,1,{},un);lce.Ve=function n(e,t){return aX(e,t)};var Yde=YW(i2n,"Collectors/lambda$4$Type",728);wDn(145,1,{},sn);lce.Ve=function n(e,t){return OS(bG(e,16),bG(t,16))};var Zde=YW(i2n,"Collectors/lambda$42$Type",145);wDn(361,1,{},on);lce.Ve=function n(e,t){return AS(bG(e,49),bG(t,49))};var nge=YW(i2n,"Collectors/lambda$50$Type",361);wDn(362,1,{},fn);lce.Kb=function n(e){return bG(e,49)};var ege=YW(i2n,"Collectors/lambda$51$Type",362);wDn(1068,1,{},kd);lce.Yd=function n(e,t){jln(this.a,bG(e,85),t)};var tge=YW(i2n,"Collectors/lambda$7$Type",1068);wDn(1070,1,{},hn);lce.Ve=function n(e,t){return xfn(bG(e,85),bG(t,85),new tn)};var rge=YW(i2n,"Collectors/lambda$8$Type",1070);wDn(1071,1,{},yd);lce.Kb=function n(e){return Ygn(this.a,bG(e,85))};var ige=YW(i2n,"Collectors/lambda$9$Type",1071);wDn(550,1,{});lce.$e=function n(){QQ(this)};lce.d=false;var age=YW(i2n,"TerminatableStream",550);wDn(827,550,a2n,$K);lce.$e=function n(){QQ(this)};var cge=YW(i2n,"DoubleStreamImpl",827);wDn(1847,736,zZn,vG);lce.Re=function n(e){return GMn(this,bG(e,189))};lce.a=null;var uge=YW(i2n,"DoubleStreamImpl/2",1847);wDn(1848,1,F0n,Md);lce.Pe=function n(e){FN(this.a,e)};var sge=YW(i2n,"DoubleStreamImpl/2/lambda$0$Type",1848);wDn(1845,1,F0n,Td);lce.Pe=function n(e){KN(this.a,e)};var oge=YW(i2n,"DoubleStreamImpl/lambda$0$Type",1845);wDn(1846,1,F0n,jd);lce.Pe=function n(e){Ppn(this.a,e)};var fge=YW(i2n,"DoubleStreamImpl/lambda$2$Type",1846);wDn(1397,735,zZn,s9);lce.Re=function n(e){return u6(this,bG(e,202))};lce.a=0;lce.b=0;lce.c=0;var hge=YW(i2n,"IntStream/5",1397);wDn(806,550,a2n,DK);lce.$e=function n(){QQ(this)};lce._e=function n(){return WQ(this),this.a};var lge=YW(i2n,"IntStreamImpl",806);wDn(807,550,a2n,TS);lce.$e=function n(){QQ(this)};lce._e=function n(){return WQ(this),XD(),qwe};var bge=YW(i2n,"IntStreamImpl/Empty",807);wDn(1687,1,QZn,Ed);lce.Dd=function n(e){Ton(this.a,e)};var wge=YW(i2n,"IntStreamImpl/lambda$4$Type",1687);var dge=$q(i2n,"Stream");wDn(26,550,{533:1,687:1,848:1},gX);lce.$e=function n(){QQ(this)};var gge;var vge=YW(i2n,"StreamImpl",26);wDn(1102,500,zZn,__);lce.Bd=function n(e){while(Cen(this)){if(this.a.Bd(e)){return true}else{QQ(this.b);this.b=null;this.a=null}}return false};var pge=YW(i2n,"StreamImpl/1",1102);wDn(1103,1,WZn,Sd);lce.Cd=function n(e){TG(this.a,bG(e,848))};var mge=YW(i2n,"StreamImpl/1/lambda$0$Type",1103);wDn(1104,1,k1n,Pd);lce.Mb=function n(e){return Gz(this.a,e)};var kge=YW(i2n,"StreamImpl/1methodref$add$Type",1104);wDn(1105,500,zZn,eZ);lce.Bd=function n(e){var t;if(!this.a){t=new im;this.b.a.Nb(new Cd(t));dZ();g$(t,this.c);this.a=new d3(t,16)}return bin(this.a,e)};lce.a=null;var yge=YW(i2n,"StreamImpl/5",1105);wDn(1106,1,WZn,Cd);lce.Cd=function n(e){ED(this.a,e)};var Mge=YW(i2n,"StreamImpl/5/2methodref$add$Type",1106);wDn(737,500,zZn,stn);lce.Bd=function n(e){this.b=false;while(!this.b&&this.c.Bd(new nC(this,e)));return this.b};lce.b=false;var Tge=YW(i2n,"StreamImpl/FilterSpliterator",737);wDn(1096,1,WZn,nC);lce.Cd=function n(e){JV(this.a,this.b,e)};var jge=YW(i2n,"StreamImpl/FilterSpliterator/lambda$0$Type",1096);wDn(1091,736,zZn,w7);lce.Re=function n(e){return j_(this,bG(e,189))};var Ege=YW(i2n,"StreamImpl/MapToDoubleSpliterator",1091);wDn(1095,1,WZn,eC);lce.Cd=function n(e){jC(this.a,this.b,e)};var Sge=YW(i2n,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1095);wDn(1090,735,zZn,d7);lce.Re=function n(e){return E_(this,bG(e,202))};var Pge=YW(i2n,"StreamImpl/MapToIntSpliterator",1090);wDn(1094,1,WZn,tC);lce.Cd=function n(e){EC(this.a,this.b,e)};var Cge=YW(i2n,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1094);wDn(734,500,zZn,g7);lce.Bd=function n(e){return S_(this,e)};var Ige=YW(i2n,"StreamImpl/MapToObjSpliterator",734);wDn(1093,1,WZn,rC);lce.Cd=function n(e){SC(this.a,this.b,e)};var Oge=YW(i2n,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1093);wDn(1092,500,zZn,Gcn);lce.Bd=function n(e){while(KP(this.b,0)){if(!this.a.Bd(new ln)){return false}this.b=Fgn(this.b,1)}return this.a.Bd(e)};lce.b=0;var Age=YW(i2n,"StreamImpl/SkipSpliterator",1092);wDn(1097,1,WZn,ln);lce.Cd=function n(e){};var Lge=YW(i2n,"StreamImpl/SkipSpliterator/lambda$0$Type",1097);wDn(626,1,WZn,bn);lce.Cd=function n(e){Db(this,e)};var Nge=YW(i2n,"StreamImpl/ValueConsumer",626);wDn(1098,1,WZn,wn);lce.Cd=function n(e){jS()};var $ge=YW(i2n,"StreamImpl/lambda$0$Type",1098);wDn(1099,1,WZn,dn);lce.Cd=function n(e){jS()};var Dge=YW(i2n,"StreamImpl/lambda$1$Type",1099);wDn(1100,1,{},Id);lce.Ve=function n(e,t){return GB(this.a,e,t)};var xge=YW(i2n,"StreamImpl/lambda$4$Type",1100);wDn(1101,1,WZn,aC);lce.Cd=function n(e){EF(this.b,this.a,e)};var Rge=YW(i2n,"StreamImpl/lambda$5$Type",1101);wDn(1107,1,WZn,Od);lce.Cd=function n(e){zon(this.a,bG(e,380))};var Kge=YW(i2n,"TerminatableStream/lambda$0$Type",1107);wDn(2142,1,{});wDn(2014,1,{},gn);var Fge=YW("javaemul.internal","ConsoleLogger",2014);var _ge=0;wDn(2134,1,{});wDn(1830,1,WZn,vn);lce.Cd=function n(e){bG(e,317)};var Bge=YW(h2n,"BowyerWatsonTriangulation/lambda$0$Type",1830);wDn(1831,1,WZn,Ld);lce.Cd=function n(e){esn(this.a,bG(e,317).e)};var Hge=YW(h2n,"BowyerWatsonTriangulation/lambda$1$Type",1831);wDn(1832,1,WZn,pn);lce.Cd=function n(e){bG(e,177)};var Uge=YW(h2n,"BowyerWatsonTriangulation/lambda$2$Type",1832);wDn(1827,1,l2n,Nd);lce.Ne=function n(e,t){return A5(this.a,bG(e,177),bG(t,177))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Gge=YW(h2n,"NaiveMinST/lambda$0$Type",1827);wDn(449,1,{},Ad);var qge=YW(h2n,"NodeMicroLayout",449);wDn(177,1,{177:1},iC);lce.Fb=function n(e){var t;if(G$(e,177)){t=bG(e,177);return DJ(this.a,t.a)&&DJ(this.b,t.b)||DJ(this.a,t.b)&&DJ(this.b,t.a)}else{return false}};lce.Hb=function n(){return ZN(this.a)+ZN(this.b)};var Xge=YW(h2n,"TEdge",177);wDn(317,1,{317:1},yqn);lce.Fb=function n(e){var t;if(G$(e,317)){t=bG(e,317);return _tn(this,t.a)&&_tn(this,t.b)&&_tn(this,t.c)}else{return false}};lce.Hb=function n(){return ZN(this.a)+ZN(this.b)+ZN(this.c)};var Vge=YW(h2n,"TTriangle",317);wDn(225,1,{225:1},N$);var zge=YW(h2n,"Tree",225);wDn(1218,1,{},Q0);var Wge=YW(b2n,"Scanline",1218);var Qge=$q(b2n,w2n);wDn(1758,1,{},ein);var Jge=YW(d2n,"CGraph",1758);wDn(316,1,{316:1},Z0);lce.b=0;lce.c=0;lce.d=0;lce.g=0;lce.i=0;lce.k=M0n;var Yge=YW(d2n,"CGroup",316);wDn(830,1,{},gk);var Zge=YW(d2n,"CGroup/CGroupBuilder",830);wDn(60,1,{60:1},KF);lce.Ib=function n(){var e;if(this.j){return TK(this.j.Kb(this))}return jK(nve),nve.o+"@"+(e=Bx(this)>>>0,e.toString(16))};lce.f=0;lce.i=M0n;var nve=YW(d2n,"CNode",60);wDn(829,1,{},vk);var eve=YW(d2n,"CNode/CNodeBuilder",829);var tve;wDn(1590,1,{},mn);lce.ff=function n(e,t){return 0};lce.gf=function n(e,t){return 0};var rve=YW(d2n,v2n,1590);wDn(1853,1,{},kn);lce.cf=function n(e){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v;h=y0n;for(a=new nd(e.a.b);a.ai.d.c||i.d.c==c.d.c&&i.d.b0?e+this.n.d+this.n.a:0};lce.kf=function n(){var e,r,i,a,c;c=0;if(this.e){this.b?c=this.b.a:!!this.a[1][1]&&(c=this.a[1][1].kf())}else if(this.g){c=Svn(this,mEn(this,null,true))}else{for(r=(ran(),zfn(fT(cpe,1),g1n,237,0,[rpe,ipe,ape])),i=0,a=r.length;i0?c+this.n.b+this.n.c:0};lce.lf=function n(){var e,t,r,i,a;if(this.g){e=mEn(this,null,false);for(r=(ran(),zfn(fT(cpe,1),g1n,237,0,[rpe,ipe,ape])),i=0,a=r.length;i0){a[0]+=this.d;i-=a[0]}if(a[2]>0){a[2]+=this.d;i-=a[2]}this.c.a=t.Math.max(0,i);this.c.d=r.d+e.d+(this.c.a-i)/2;a[1]=t.Math.max(a[1],i);t7(this,ipe,r.d+e.d+a[0]-(a[1]-i)/2,a)};lce.b=null;lce.d=0;lce.e=false;lce.f=false;lce.g=false;var ope=0,fpe=0;var hpe=YW(H2n,"GridContainerCell",1538);wDn(471,22,{3:1,34:1,22:1,471:1},hC);var lpe,bpe,wpe;var dpe=qan(H2n,"HorizontalLabelAlignment",471,joe,H2,yB);var gpe;wDn(314,217,{217:1,314:1},h0,rin,f1);lce.jf=function n(){return sq(this)};lce.kf=function n(){return oq(this)};lce.a=0;lce.c=false;var vpe=YW(H2n,"LabelCell",314);wDn(252,336,{217:1,336:1,252:1},ckn);lce.jf=function n(){return kNn(this)};lce.kf=function n(){return yNn(this)};lce.lf=function n(){rqn(this)};lce.mf=function n(){oqn(this)};lce.b=0;lce.c=0;lce.d=false;var ppe=YW(H2n,"StripContainerCell",252);wDn(1691,1,k1n,Pn);lce.Mb=function n(e){return FM(bG(e,217))};var mpe=YW(H2n,"StripContainerCell/lambda$0$Type",1691);wDn(1692,1,{},Cn);lce.Ye=function n(e){return bG(e,217).kf()};var kpe=YW(H2n,"StripContainerCell/lambda$1$Type",1692);wDn(1693,1,k1n,In);lce.Mb=function n(e){return _M(bG(e,217))};var ype=YW(H2n,"StripContainerCell/lambda$2$Type",1693);wDn(1694,1,{},On);lce.Ye=function n(e){return bG(e,217).jf()};var Mpe=YW(H2n,"StripContainerCell/lambda$3$Type",1694);wDn(472,22,{3:1,34:1,22:1,472:1},lC);var Tpe,jpe,Epe;var Spe=qan(H2n,"VerticalLabelAlignment",472,joe,B2,MB);var Ppe;wDn(800,1,{},OQn);lce.c=0;lce.d=0;lce.k=0;lce.s=0;lce.t=0;lce.v=false;lce.w=0;lce.D=false;lce.F=false;var Cpe=YW(Q2n,"NodeContext",800);wDn(1536,1,l2n,An);lce.Ne=function n(e,t){return zL(bG(e,64),bG(t,64))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Ipe=YW(Q2n,"NodeContext/0methodref$comparePortSides$Type",1536);wDn(1537,1,l2n,Ln);lce.Ne=function n(e,t){return xCn(bG(e,117),bG(t,117))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Ope=YW(Q2n,"NodeContext/1methodref$comparePortContexts$Type",1537);wDn(164,22,{3:1,34:1,22:1,164:1},Msn);var Ape,Lpe,Npe,$pe,Dpe,xpe,Rpe,Kpe,Fpe,_pe,Bpe,Hpe,Upe,Gpe,qpe,Xpe,Vpe,zpe,Wpe,Qpe,Jpe,Ype;var Zpe=qan(Q2n,"NodeLabelLocation",164,joe,Kkn,TB);var nme;wDn(117,1,{117:1},j$n);lce.a=false;var eme=YW(Q2n,"PortContext",117);wDn(1541,1,WZn,Nn);lce.Cd=function n(e){uE(bG(e,314))};var tme=YW(Z2n,n3n,1541);wDn(1542,1,k1n,$n);lce.Mb=function n(e){return!!bG(e,117).c};var rme=YW(Z2n,e3n,1542);wDn(1543,1,WZn,Dn);lce.Cd=function n(e){uE(bG(e,117).c)};var ime=YW(Z2n,"LabelPlacer/lambda$2$Type",1543);var ame;wDn(1540,1,WZn,xn);lce.Cd=function n(e){ZK();mm(bG(e,117))};var cme=YW(Z2n,"NodeLabelAndSizeUtilities/lambda$0$Type",1540);wDn(801,1,WZn,_B);lce.Cd=function n(e){hP(this.b,this.c,this.a,bG(e,187))};lce.a=false;lce.c=false;var ume=YW(Z2n,"NodeLabelCellCreator/lambda$0$Type",801);wDn(1539,1,WZn,Rd);lce.Cd=function n(e){Zm(this.a,bG(e,187))};var sme=YW(Z2n,"PortContextCreator/lambda$0$Type",1539);var ome;wDn(1902,1,{},Rn);var fme=YW(r3n,"GreedyRectangleStripOverlapRemover",1902);wDn(1903,1,l2n,Kn);lce.Ne=function n(e,t){return Nx(bG(e,226),bG(t,226))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var hme=YW(r3n,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1903);wDn(1849,1,{},Mk);lce.a=5;lce.e=0;var lme=YW(r3n,"RectangleStripOverlapRemover",1849);wDn(1850,1,l2n,Fn);lce.Ne=function n(e,t){return $x(bG(e,226),bG(t,226))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var bme=YW(r3n,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1850);wDn(1852,1,l2n,_n);lce.Ne=function n(e,t){return gW(bG(e,226),bG(t,226))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var wme=YW(r3n,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1852);wDn(417,22,{3:1,34:1,22:1,417:1},bC);var dme,gme,vme,pme;var mme=qan(r3n,"RectangleStripOverlapRemover/OverlapRemovalDirection",417,joe,X6,jB);var kme;wDn(226,1,{226:1},iV);var yme=YW(r3n,"RectangleStripOverlapRemover/RectangleNode",226);wDn(1851,1,WZn,Kd);lce.Cd=function n(e){vTn(this.a,bG(e,226))};var Mme=YW(r3n,"RectangleStripOverlapRemover/lambda$1$Type",1851);wDn(1323,1,l2n,Bn);lce.Ne=function n(e,t){return dVn(bG(e,176),bG(t,176))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Tme=YW(a3n,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1323);wDn(1326,1,{},Hn);lce.Kb=function n(e){return bG(e,334).a};var jme=YW(a3n,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1326);wDn(1327,1,k1n,Un);lce.Mb=function n(e){return bG(e,332).a};var Eme=YW(a3n,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1327);wDn(1328,1,k1n,Gn);lce.Mb=function n(e){return bG(e,332).a};var Sme=YW(a3n,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1328);wDn(1321,1,l2n,qn);lce.Ne=function n(e,t){return tHn(bG(e,176),bG(t,176))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Pme=YW(a3n,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1321);wDn(1324,1,{},Xn);lce.Kb=function n(e){return bG(e,334).a};var Cme=YW(a3n,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1324);wDn(781,1,l2n,Vn);lce.Ne=function n(e,t){return vfn(bG(e,176),bG(t,176))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Ime=YW(a3n,"PolyominoCompactor/MinNumOfExtensionsComparator",781);wDn(1319,1,l2n,zn);lce.Ne=function n(e,t){return oun(bG(e,330),bG(t,330))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Ome=YW(a3n,"PolyominoCompactor/MinPerimeterComparator",1319);wDn(1320,1,l2n,Wn);lce.Ne=function n(e,t){return Xyn(bG(e,330),bG(t,330))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Ame=YW(a3n,"PolyominoCompactor/MinPerimeterComparatorWithShape",1320);wDn(1322,1,l2n,Qn);lce.Ne=function n(e,t){return JHn(bG(e,176),bG(t,176))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Lme=YW(a3n,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1322);wDn(1325,1,{},Jn);lce.Kb=function n(e){return bG(e,334).a};var Nme=YW(a3n,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1325);wDn(782,1,{},wC);lce.Ve=function n(e,t){return k6(this,bG(e,42),bG(t,176))};var $me=YW(a3n,"SuccessorCombination",782);wDn(649,1,{},Yn);lce.Ve=function n(e,t){var r;return UNn((r=bG(e,42),bG(t,176),r))};var Dme=YW(a3n,"SuccessorJitter",649);wDn(648,1,{},Zn);lce.Ve=function n(e,t){var r;return fFn((r=bG(e,42),bG(t,176),r))};var xme=YW(a3n,"SuccessorLineByLine",648);wDn(573,1,{},ne);lce.Ve=function n(e,t){var r;return cxn((r=bG(e,42),bG(t,176),r))};var Rme=YW(a3n,"SuccessorManhattan",573);wDn(1344,1,{},ee);lce.Ve=function n(e,t){var r;return vKn((r=bG(e,42),bG(t,176),r))};var Kme=YW(a3n,"SuccessorMaxNormWindingInMathPosSense",1344);wDn(409,1,{},Fd);lce.Ve=function n(e,t){return Vz(this,e,t)};lce.c=false;lce.d=false;lce.e=false;lce.f=false;var Fme=YW(a3n,"SuccessorQuadrantsGeneric",409);wDn(1345,1,{},te);lce.Kb=function n(e){return bG(e,334).a};var _me=YW(a3n,"SuccessorQuadrantsGeneric/lambda$0$Type",1345);wDn(332,22,{3:1,34:1,22:1,332:1},dC);lce.a=false;var Bme,Hme,Ume,Gme;var qme=qan(f3n,h3n,332,joe,G6,EB);var Xme;wDn(1317,1,{});lce.Ib=function n(){var e,t,r,i,a,c;r=" ";e=Bwn(0);for(a=0;a=0?"b"+e+"["+J8(this.a)+"]":"b["+J8(this.a)+"]"}return"b_"+Bx(this)};var gye=YW(V3n,"FBendpoint",250);wDn(290,137,{3:1,290:1,96:1,137:1},FF);lce.Ib=function n(){return J8(this)};var vye=YW(V3n,"FEdge",290);wDn(235,137,{3:1,235:1,96:1,137:1},k7);var pye=YW(V3n,"FGraph",235);wDn(454,309,{3:1,454:1,309:1,96:1,137:1},x5);lce.Ib=function n(){return this.b==null||this.b.length==0?"l["+J8(this.a)+"]":"l_"+this.b};var mye=YW(V3n,"FLabel",454);wDn(153,309,{3:1,153:1,309:1,96:1,137:1},O$);lce.Ib=function n(){return Y3(this)};lce.a=0;var kye=YW(V3n,"FNode",153);wDn(2100,1,{});lce.vf=function n(e){MGn(this,e)};lce.wf=function n(){$Tn(this)};lce.d=0;var yye=YW(W3n,"AbstractForceModel",2100);wDn(641,2100,{641:1},von);lce.uf=function n(e,r){var i,a,c,u,s;QVn(this.f,e,r);c=r_(_$(r.d),e.d);s=t.Math.sqrt(c.a*c.a+c.b*c.b);a=t.Math.max(0,s-KQ(e.e)/2-KQ(r.e)/2);i=ZNn(this.e,e,r);i>0?u=-sW(a,this.c)*i:u=CR(a,this.b)*bG(lIn(e,(oGn(),Jye)),17).a;jD(c,u/s);return c};lce.vf=function n(e){MGn(this,e);this.a=bG(lIn(e,(oGn(),_ye)),17).a;this.c=bM(MK(lIn(e,rMe)));this.b=bM(MK(lIn(e,Zye)))};lce.xf=function n(e){return e0&&(u-=hM(a,this.a)*i);jD(c,u*this.b/s);return c};lce.vf=function n(e){var r,i,a,c,u,s,o;MGn(this,e);this.b=bM(MK(lIn(e,(oGn(),iMe))));this.c=this.b/bG(lIn(e,_ye),17).a;a=e.e.c.length;u=0;c=0;for(o=new nd(e.e);o.a0};lce.a=0;lce.b=0;lce.c=0;var Tye=YW(W3n,"FruchtermanReingoldModel",642);wDn(860,1,R2n,Wh);lce.hf=function n(e){ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Q3n),""),"Force Model"),"Determines the model for force calculation."),Sye),(vAn(),j3e)),Dye),ygn((Hkn(),p3e)))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,J3n),""),"Iterations"),"The number of iterations on the force model."),Bwn(300)),S3e),tle),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Y3n),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),Bwn(0)),S3e),tle),ygn(d3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Z3n),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),n4n),T3e),Yhe),ygn(p3e))));V4(e,Z3n,Q3n,Aye);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,e4n),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),T3e),Yhe),ygn(p3e))));V4(e,e4n,Q3n,Cye);jJn((new Qh,e))};var jye,Eye,Sye,Pye,Cye,Iye,Oye,Aye;var Lye=YW(t4n,"ForceMetaDataProvider",860);wDn(432,22,{3:1,34:1,22:1,432:1},mC);var Nye,$ye;var Dye=qan(t4n,"ForceModelStrategy",432,joe,d1,CB);var xye;wDn(N1n,1,R2n,Qh);lce.hf=function n(e){jJn(e)};var Rye,Kye,Fye,_ye,Bye,Hye,Uye,Gye,qye,Xye,Vye,zye,Wye,Qye,Jye,Yye,Zye,nMe,eMe,tMe,rMe,iMe,aMe,cMe,uMe,sMe,oMe;var fMe=YW(t4n,"ForceOptions",N1n);wDn(1001,1,{},Te);lce.sf=function n(){var e;return e=new dk,e};lce.tf=function n(e){};var hMe=YW(t4n,"ForceOptions/ForceFactory",1001);var lMe,bMe,wMe,dMe;wDn(861,1,R2n,Jh);lce.hf=function n(e){ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,C4n),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(Qx(),false)),(vAn(),M3e)),Uhe),ygn((Hkn(),v3e)))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,I4n),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),T3e),Yhe),nV(p3e,zfn(fT(k3e,1),g1n,170,0,[d3e])))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,O4n),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),pMe),j3e),UMe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,A4n),""),"Stress Epsilon"),"Termination criterion for the iterative process."),n4n),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,L4n),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),Bwn(pZn)),S3e),tle),ygn(p3e))));wWn((new Yh,e))};var gMe,vMe,pMe,mMe,kMe,yMe;var MMe=YW(t4n,"StressMetaDataProvider",861);wDn(1004,1,R2n,Yh);lce.hf=function n(e){wWn(e)};var TMe,jMe,EMe,SMe,PMe,CMe,IMe,OMe,AMe,LMe,NMe,$Me;var DMe=YW(t4n,"StressOptions",1004);wDn(1005,1,{},ye);lce.sf=function n(){var e;return e=new _F,e};lce.tf=function n(e){};var xMe=YW(t4n,"StressOptions/StressFactory",1005);wDn(1110,205,y3n,_F);lce.rf=function n(e,t){var r,i,a,c,u;t.Ug($4n,1);lM(yK(YDn(e,(Xjn(),PMe))))?lM(yK(YDn(e,NMe)))||t0((r=new Ad((jP(),new Zy(e))),r)):iRn(new dk,e,t.eh(1));a=Shn(e);i=cqn(this.a,a);for(u=i.Kc();u.Ob();){c=bG(u.Pb(),235);if(c.e.c.length<=1){continue}oVn(this.b,c);exn(this.b);Lin(c.d,new Me)}a=vJn(i);rYn(a);t.Vg()};var RMe=YW(x4n,"StressLayoutProvider",1110);wDn(1111,1,WZn,Me);lce.Cd=function n(e){rXn(bG(e,454))};var KMe=YW(x4n,"StressLayoutProvider/lambda$0$Type",1111);wDn(1002,1,{},Qm);lce.c=0;lce.e=0;lce.g=0;var FMe=YW(x4n,"StressMajorization",1002);wDn(391,22,{3:1,34:1,22:1,391:1},kC);var _Me,BMe,HMe;var UMe=qan(x4n,"StressMajorization/Dimension",391,joe,G2,IB);var GMe;wDn(1003,1,l2n,Gd);lce.Ne=function n(e,t){return I_(this.a,bG(e,153),bG(t,153))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var qMe=YW(x4n,"StressMajorization/lambda$0$Type",1003);wDn(1192,1,{},s4);var XMe=YW(K4n,"ElkLayered",1192);wDn(1193,1,WZn,qd);lce.Cd=function n(e){DLn(this.a,bG(e,36))};var VMe=YW(K4n,"ElkLayered/lambda$0$Type",1193);wDn(1194,1,WZn,Xd);lce.Cd=function n(e){O_(this.a,bG(e,36))};var zMe=YW(K4n,"ElkLayered/lambda$1$Type",1194);wDn(1281,1,{},Y$);var WMe,QMe,JMe;var YMe=YW(K4n,"GraphConfigurator",1281);wDn(770,1,WZn,Vd);lce.Cd=function n(e){JIn(this.a,bG(e,10))};var ZMe=YW(K4n,"GraphConfigurator/lambda$0$Type",770);wDn(771,1,{},ke);lce.Kb=function n(e){return GEn(),new gX(null,new d3(bG(e,30).a,16))};var nTe=YW(K4n,"GraphConfigurator/lambda$1$Type",771);wDn(772,1,WZn,zd);lce.Cd=function n(e){JIn(this.a,bG(e,10))};var eTe=YW(K4n,"GraphConfigurator/lambda$2$Type",772);wDn(1109,205,y3n,Tk);lce.rf=function n(e,t){var r;r=jXn(new Ek,e);BA(YDn(e,(IYn(),SFe)))===BA((Dwn(),U5e))?Cgn(this.a,r,t):XDn(this.a,r,t);t.$g()||KQn(new Zh,r)};var tTe=YW(K4n,"LayeredLayoutProvider",1109);wDn(367,22,{3:1,34:1,22:1,367:1},yC);var rTe,iTe,aTe,cTe,uTe;var sTe=qan(K4n,"LayeredPhases",367,joe,b9,OB);var oTe;wDn(1717,1,{},Fcn);lce.i=0;var fTe;var hTe=YW(F4n,"ComponentsToCGraphTransformer",1717);var lTe;wDn(1718,1,{},me);lce.yf=function n(e,r){return t.Math.min(e.a!=null?bM(e.a):e.c.i,r.a!=null?bM(r.a):r.c.i)};lce.zf=function n(e,r){return t.Math.min(e.a!=null?bM(e.a):e.c.i,r.a!=null?bM(r.a):r.c.i)};var bTe=YW(F4n,"ComponentsToCGraphTransformer/1",1718);wDn(86,1,{86:1});lce.i=0;lce.k=true;lce.o=M0n;var wTe=YW(_4n,"CNode",86);wDn(470,86,{470:1,86:1},tR,rkn);lce.Ib=function n(){return""};var dTe=YW(F4n,"ComponentsToCGraphTransformer/CRectNode",470);wDn(1688,1,{},je);var gTe,vTe;var pTe=YW(F4n,"OneDimensionalComponentsCompaction",1688);wDn(1689,1,{},Ee);lce.Kb=function n(e){return m2(bG(e,42))};lce.Fb=function n(e){return this===e};var mTe=YW(F4n,"OneDimensionalComponentsCompaction/lambda$0$Type",1689);wDn(1690,1,{},Se);lce.Kb=function n(e){return Bgn(bG(e,42))};lce.Fb=function n(e){return this===e};var kTe=YW(F4n,"OneDimensionalComponentsCompaction/lambda$1$Type",1690);wDn(1720,1,{},mQ);var yTe=YW(_4n,"CGraph",1720);wDn(194,1,{194:1},ikn);lce.b=0;lce.c=0;lce.e=0;lce.g=true;lce.i=M0n;var MTe=YW(_4n,"CGroup",194);wDn(1719,1,{},Pe);lce.yf=function n(e,r){return t.Math.max(e.a!=null?bM(e.a):e.c.i,r.a!=null?bM(r.a):r.c.i)};lce.zf=function n(e,r){return t.Math.max(e.a!=null?bM(e.a):e.c.i,r.a!=null?bM(r.a):r.c.i)};var TTe=YW(_4n,v2n,1719);wDn(1721,1,{},s$n);lce.d=false;var jTe;var ETe=YW(_4n,M2n,1721);wDn(1722,1,{},Ce);lce.Kb=function n(e){return WS(),Qx(),bG(bG(e,42).a,86).d.e!=0?true:false};lce.Fb=function n(e){return this===e};var STe=YW(_4n,T2n,1722);wDn(833,1,{},fX);lce.a=false;lce.b=false;lce.c=false;lce.d=false;var PTe=YW(_4n,j2n,833);wDn(1898,1,{},aV);var CTe=YW(B4n,E2n,1898);var ITe=$q(H4n,w2n);wDn(1899,1,{382:1},GZ);lce.bf=function n(e){_Fn(this,bG(e,476))};var OTe=YW(B4n,S2n,1899);wDn(V1n,1,l2n,Ie);lce.Ne=function n(e,t){return oY(bG(e,86),bG(t,86))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var ATe=YW(B4n,P2n,V1n);wDn(476,1,{476:1},UC);lce.a=false;var LTe=YW(B4n,C2n,476);wDn(1901,1,l2n,Oe);lce.Ne=function n(e,t){return UEn(bG(e,476),bG(t,476))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var NTe=YW(B4n,I2n,1901);wDn(148,1,{148:1},GC,mG);lce.Fb=function n(e){var t;if(e==null){return false}if($Te!=Cbn(e)){return false}t=bG(e,148);return DJ(this.c,t.c)&&DJ(this.d,t.d)};lce.Hb=function n(){return Dbn(zfn(fT(kce,1),jZn,1,5,[this.c,this.d]))};lce.Ib=function n(){return"("+this.c+MZn+this.d+(this.a?"cx":"")+this.b+")"};lce.a=true;lce.c=0;lce.d=0;var $Te=YW(H4n,"Point",148);wDn(416,22,{3:1,34:1,22:1,416:1},IC);var DTe,xTe,RTe,KTe;var FTe=qan(H4n,"Point/Quadrant",416,joe,V6,AB);var _Te;wDn(1708,1,{},kk);lce.b=null;lce.c=null;lce.d=null;lce.e=null;lce.f=null;var BTe,HTe,UTe,GTe,qTe;var XTe=YW(H4n,"RectilinearConvexHull",1708);wDn(583,1,{382:1},fyn);lce.bf=function n(e){$en(this,bG(e,148))};lce.b=0;var VTe;var zTe=YW(H4n,"RectilinearConvexHull/MaximalElementsEventHandler",583);wDn(1710,1,l2n,Ae);lce.Ne=function n(e,t){return fY(MK(e),MK(t))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var WTe=YW(H4n,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1710);wDn(1709,1,{382:1},tin);lce.bf=function n(e){MKn(this,bG(e,148))};lce.a=0;lce.b=null;lce.c=null;lce.d=null;lce.e=null;var QTe=YW(H4n,"RectilinearConvexHull/RectangleEventHandler",1709);wDn(1711,1,l2n,Le);lce.Ne=function n(e,t){return V3(bG(e,148),bG(t,148))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var JTe=YW(H4n,"RectilinearConvexHull/lambda$0$Type",1711);wDn(1712,1,l2n,xe);lce.Ne=function n(e,t){return z3(bG(e,148),bG(t,148))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var YTe=YW(H4n,"RectilinearConvexHull/lambda$1$Type",1712);wDn(1713,1,l2n,Re);lce.Ne=function n(e,t){return X3(bG(e,148),bG(t,148))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var ZTe=YW(H4n,"RectilinearConvexHull/lambda$2$Type",1713);wDn(1714,1,l2n,De);lce.Ne=function n(e,t){return W3(bG(e,148),bG(t,148))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var nje=YW(H4n,"RectilinearConvexHull/lambda$3$Type",1714);wDn(1715,1,l2n,Ke);lce.Ne=function n(e,t){return wIn(bG(e,148),bG(t,148))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var eje=YW(H4n,"RectilinearConvexHull/lambda$4$Type",1715);wDn(1716,1,{},J0);var tje=YW(H4n,"Scanline",1716);wDn(2104,1,{});var rje=YW(U4n,"AbstractGraphPlacer",2104);wDn(335,1,{335:1},_R);lce.Ff=function n(e){if(this.Gf(e)){zNn(this.b,bG(lIn(e,(WYn(),rDe)),21),e);return true}else{return false}};lce.Gf=function n(e){var t,r,i,a;t=bG(lIn(e,(WYn(),rDe)),21);a=bG(r7(ije,t),21);for(i=a.Kc();i.Ob();){r=bG(i.Pb(),21);if(!bG(r7(this.b,r),15).dc()){return false}}return true};var ije;var aje=YW(U4n,"ComponentGroup",335);wDn(779,2104,{},yk);lce.Hf=function n(e){var t,r;for(r=new nd(this.a);r.ai){l=0;b+=o+a;o=0}f=u.c;cHn(u,l+f.a,b+f.b);kL(f);c=t.Math.max(c,l+h.a);o=t.Math.max(o,h.b);l+=h.a+a}r.f.a=c;r.f.b=b+o};lce.Jf=function n(e,t){var r,i,a,c,u;if(BA(lIn(t,(IYn(),HKe)))===BA((zmn(),hje))){for(i=e.Kc();i.Ob();){r=bG(i.Pb(),36);u=0;for(c=new nd(r.a);c.ai&&!bG(lIn(u,(WYn(),rDe)),21).Hc((UQn(),D8e))||!!f&&bG(lIn(f,(WYn(),rDe)),21).Hc((UQn(),$8e))||bG(lIn(u,(WYn(),rDe)),21).Hc((UQn(),n9e))){w=b;d+=o+a;o=0}h=u.c;bG(lIn(u,(WYn(),rDe)),21).Hc((UQn(),D8e))&&(w=c+a);cHn(u,w+h.a,d+h.b);c=t.Math.max(c,w+l.a);bG(lIn(u,rDe),21).Hc(Y8e)&&(b=t.Math.max(b,w+l.a+a));kL(h);o=t.Math.max(o,l.b);w+=l.a+a;f=u}r.f.a=c;r.f.b=d+o};lce.Jf=function n(e,t){};var Pje=YW(U4n,"ModelOrderRowGraphPlacer",1313);wDn(1311,1,l2n,Be);lce.Ne=function n(e,t){return nfn(bG(e,36),bG(t,36))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Cje=YW(U4n,"SimpleRowGraphPlacer/1",1311);var Ije;wDn(1280,1,O2n,He);lce.Lb=function n(e){var t;return t=bG(lIn(bG(e,249).b,(IYn(),DFe)),75),!!t&&t.b!=0};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){var t;return t=bG(lIn(bG(e,249).b,(IYn(),DFe)),75),!!t&&t.b!=0};var Oje=YW(z4n,"CompoundGraphPostprocessor/1",1280);wDn(1279,1,W4n,Sk);lce.Kf=function n(e,t){Yyn(this,bG(e,36),t)};var Aje=YW(z4n,"CompoundGraphPreprocessor",1279);wDn(453,1,{453:1},Adn);lce.c=false;var Lje=YW(z4n,"CompoundGraphPreprocessor/ExternalPort",453);wDn(249,1,{249:1},FB);lce.Ib=function n(){return PR(this.c)+":"+PNn(this.b)};var Nje=YW(z4n,"CrossHierarchyEdge",249);wDn(777,1,l2n,Wd);lce.Ne=function n(e,t){return Kjn(this,bG(e,249),bG(t,249))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var $je=YW(z4n,"CrossHierarchyEdgeComparator",777);wDn(305,137,{3:1,305:1,96:1,137:1});lce.p=0;var Dje=YW(Q4n,"LGraphElement",305);wDn(18,305,{3:1,18:1,305:1,96:1,137:1},zZ);lce.Ib=function n(){return PNn(this)};var xje=YW(Q4n,"LEdge",18);wDn(36,305,{3:1,20:1,36:1,305:1,96:1,137:1},_cn);lce.Jc=function n(e){Y8(this,e)};lce.Kc=function n(){return new nd(this.b)};lce.Ib=function n(){if(this.b.c.length==0){return"G-unlayered"+jIn(this.a)}else if(this.a.c.length==0){return"G-layered"+jIn(this.b)}return"G[layerless"+jIn(this.a)+", layers"+jIn(this.b)+"]"};var Rje=YW(Q4n,"LGraph",36);var Kje;wDn(666,1,{});lce.Lf=function n(){return this.e.n};lce.of=function n(e){return lIn(this.e,e)};lce.Mf=function n(){return this.e.o};lce.Nf=function n(){return this.e.p};lce.pf=function n(e){return jR(this.e,e)};lce.Of=function n(e){this.e.n.a=e.a;this.e.n.b=e.b};lce.Pf=function n(e){this.e.o.a=e.a;this.e.o.b=e.b};lce.Qf=function n(e){this.e.p=e};var Fje=YW(Q4n,"LGraphAdapters/AbstractLShapeAdapter",666);wDn(474,1,{853:1},Qd);lce.Rf=function n(){var e,t;if(!this.b){this.b=sR(this.a.b.c.length);for(t=new nd(this.a.b);t.a0&&Vbn((w3(t-1,e.length),e.charCodeAt(t-1)),i6n)){--t}if(c> ",e),ajn(r));tL(eL((e.a+="[",e),r.i),"]")}return e.a};lce.c=true;lce.d=false;var fEe,hEe,lEe,bEe,wEe,dEe;var gEe=YW(Q4n,"LPort",12);wDn(408,1,n1n,Yd);lce.Jc=function n(e){Y8(this,e)};lce.Kc=function n(){var e;e=new nd(this.a.e);return new Zd(e)};var vEe=YW(Q4n,"LPort/1",408);wDn(1309,1,NZn,Zd);lce.Nb=function n(e){Az(this,e)};lce.Pb=function n(){return bG(K3(this.a),18).c};lce.Ob=function n(){return v$(this.a)};lce.Qb=function n(){cW(this.a)};var pEe=YW(Q4n,"LPort/1/1",1309);wDn(369,1,n1n,ng);lce.Jc=function n(e){Y8(this,e)};lce.Kc=function n(){var e;return e=new nd(this.a.g),new eg(e)};var mEe=YW(Q4n,"LPort/2",369);wDn(776,1,NZn,eg);lce.Nb=function n(e){Az(this,e)};lce.Pb=function n(){return bG(K3(this.a),18).d};lce.Ob=function n(){return v$(this.a)};lce.Qb=function n(){cW(this.a)};var kEe=YW(Q4n,"LPort/2/1",776);wDn(1302,1,n1n,RC);lce.Jc=function n(e){Y8(this,e)};lce.Kc=function n(){return new m7(this)};var yEe=YW(Q4n,"LPort/CombineIter",1302);wDn(208,1,NZn,m7);lce.Nb=function n(e){Az(this,e)};lce.Qb=function n(){Bj()};lce.Ob=function n(){return _x(this)};lce.Pb=function n(){return v$(this.a)?K3(this.a):K3(this.b)};var MEe=YW(Q4n,"LPort/CombineIter/1",208);wDn(1303,1,O2n,Xe);lce.Lb=function n(e){return rz(e)};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return Rsn(),bG(e,12).g.c.length!=0};var TEe=YW(Q4n,"LPort/lambda$0$Type",1303);wDn(1304,1,O2n,Ve);lce.Lb=function n(e){return iz(e)};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return Rsn(),bG(e,12).e.c.length!=0};var jEe=YW(Q4n,"LPort/lambda$1$Type",1304);wDn(1305,1,O2n,ze);lce.Lb=function n(e){return Rsn(),bG(e,12).j==(UQn(),D8e)};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return Rsn(),bG(e,12).j==(UQn(),D8e)};var EEe=YW(Q4n,"LPort/lambda$2$Type",1305);wDn(1306,1,O2n,We);lce.Lb=function n(e){return Rsn(),bG(e,12).j==(UQn(),$8e)};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return Rsn(),bG(e,12).j==(UQn(),$8e)};var SEe=YW(Q4n,"LPort/lambda$3$Type",1306);wDn(1307,1,O2n,Qe);lce.Lb=function n(e){return Rsn(),bG(e,12).j==(UQn(),Y8e)};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return Rsn(),bG(e,12).j==(UQn(),Y8e)};var PEe=YW(Q4n,"LPort/lambda$4$Type",1307);wDn(1308,1,O2n,Je);lce.Lb=function n(e){return Rsn(),bG(e,12).j==(UQn(),n9e)};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return Rsn(),bG(e,12).j==(UQn(),n9e)};var CEe=YW(Q4n,"LPort/lambda$5$Type",1308);wDn(30,305,{3:1,20:1,305:1,30:1,96:1,137:1},pQ);lce.Jc=function n(e){Y8(this,e)};lce.Kc=function n(){return new nd(this.a)};lce.Ib=function n(){return"L_"+Ctn(this.b.b,this,0)+jIn(this.a)};var IEe=YW(Q4n,"Layer",30);wDn(1330,1,{},Ek);var OEe=YW(o6n,f6n,1330);wDn(1334,1,{},Ye);lce.Kb=function n(e){return vCn(bG(e,84))};var AEe=YW(o6n,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1334);wDn(1337,1,{},Ze);lce.Kb=function n(e){return vCn(bG(e,84))};var LEe=YW(o6n,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1337);wDn(1331,1,WZn,tg);lce.Cd=function n(e){S$n(this.a,bG(e,123))};var NEe=YW(o6n,X3n,1331);wDn(1332,1,WZn,rg);lce.Cd=function n(e){S$n(this.a,bG(e,123))};var $Ee=YW(o6n,h6n,1332);wDn(1333,1,{},nt);lce.Kb=function n(e){return new gX(null,new d3(UJ(bG(e,74)),16))};var DEe=YW(o6n,l6n,1333);wDn(1335,1,k1n,ig);lce.Mb=function n(e){return _N(this.a,bG(e,27))};var xEe=YW(o6n,b6n,1335);wDn(1336,1,{},et);lce.Kb=function n(e){return new gX(null,new d3(GJ(bG(e,74)),16))};var REe=YW(o6n,"ElkGraphImporter/lambda$5$Type",1336);wDn(1338,1,k1n,ag);lce.Mb=function n(e){return BN(this.a,bG(e,27))};var KEe=YW(o6n,"ElkGraphImporter/lambda$7$Type",1338);wDn(1339,1,k1n,tt);lce.Mb=function n(e){return JY(bG(e,74))};var FEe=YW(o6n,"ElkGraphImporter/lambda$8$Type",1339);wDn(1297,1,{},Zh);var _Ee;var BEe=YW(o6n,"ElkGraphLayoutTransferrer",1297);wDn(1298,1,k1n,cg);lce.Mb=function n(e){return $F(this.a,bG(e,18))};var HEe=YW(o6n,"ElkGraphLayoutTransferrer/lambda$0$Type",1298);wDn(1299,1,WZn,ug);lce.Cd=function n(e){nP();ED(this.a,bG(e,18))};var UEe=YW(o6n,"ElkGraphLayoutTransferrer/lambda$1$Type",1299);wDn(1300,1,k1n,sg);lce.Mb=function n(e){return UK(this.a,bG(e,18))};var GEe=YW(o6n,"ElkGraphLayoutTransferrer/lambda$2$Type",1300);wDn(1301,1,WZn,og);lce.Cd=function n(e){nP();ED(this.a,bG(e,18))};var qEe=YW(o6n,"ElkGraphLayoutTransferrer/lambda$3$Type",1301);wDn(819,1,{},BF);var XEe=YW(w6n,"BiLinkedHashMultiMap",819);wDn(1550,1,W4n,rt);lce.Kf=function n(e,t){Xun(bG(e,36),t)};var VEe=YW(w6n,"CommentNodeMarginCalculator",1550);wDn(1551,1,{},it);lce.Kb=function n(e){return new gX(null,new d3(bG(e,30).a,16))};var zEe=YW(w6n,"CommentNodeMarginCalculator/lambda$0$Type",1551);wDn(1552,1,WZn,at);lce.Cd=function n(e){pXn(bG(e,10))};var WEe=YW(w6n,"CommentNodeMarginCalculator/lambda$1$Type",1552);wDn(1553,1,W4n,ct);lce.Kf=function n(e,t){n_n(bG(e,36),t)};var QEe=YW(w6n,"CommentPostprocessor",1553);wDn(1554,1,W4n,ut);lce.Kf=function n(e,t){EQn(bG(e,36),t)};var JEe=YW(w6n,"CommentPreprocessor",1554);wDn(1555,1,W4n,st);lce.Kf=function n(e,t){UKn(bG(e,36),t)};var YEe=YW(w6n,"ConstraintsPostprocessor",1555);wDn(1556,1,W4n,ot);lce.Kf=function n(e,t){Non(bG(e,36),t)};var ZEe=YW(w6n,"EdgeAndLayerConstraintEdgeReverser",1556);wDn(1557,1,W4n,ft);lce.Kf=function n(e,t){hpn(bG(e,36),t)};var nSe=YW(w6n,"EndLabelPostprocessor",1557);wDn(1558,1,{},ht);lce.Kb=function n(e){return new gX(null,new d3(bG(e,30).a,16))};var eSe=YW(w6n,"EndLabelPostprocessor/lambda$0$Type",1558);wDn(1559,1,k1n,lt);lce.Mb=function n(e){return Q8(bG(e,10))};var tSe=YW(w6n,"EndLabelPostprocessor/lambda$1$Type",1559);wDn(1560,1,WZn,bt);lce.Cd=function n(e){qEn(bG(e,10))};var rSe=YW(w6n,"EndLabelPostprocessor/lambda$2$Type",1560);wDn(1561,1,W4n,wt);lce.Kf=function n(e,t){xAn(bG(e,36),t)};var iSe=YW(w6n,"EndLabelPreprocessor",1561);wDn(1562,1,{},dt);lce.Kb=function n(e){return new gX(null,new d3(bG(e,30).a,16))};var aSe=YW(w6n,"EndLabelPreprocessor/lambda$0$Type",1562);wDn(1563,1,WZn,KB);lce.Cd=function n(e){lP(this.a,this.b,this.c,bG(e,10))};lce.a=0;lce.b=0;lce.c=false;var cSe=YW(w6n,"EndLabelPreprocessor/lambda$1$Type",1563);wDn(1564,1,k1n,gt);lce.Mb=function n(e){return BA(lIn(bG(e,72),(IYn(),wFe)))===BA((ian(),v5e))};var uSe=YW(w6n,"EndLabelPreprocessor/lambda$2$Type",1564);wDn(1565,1,WZn,fg);lce.Cd=function n(e){hq(this.a,bG(e,72))};var sSe=YW(w6n,"EndLabelPreprocessor/lambda$3$Type",1565);wDn(1566,1,k1n,vt);lce.Mb=function n(e){return BA(lIn(bG(e,72),(IYn(),wFe)))===BA((ian(),g5e))};var oSe=YW(w6n,"EndLabelPreprocessor/lambda$4$Type",1566);wDn(1567,1,WZn,hg);lce.Cd=function n(e){hq(this.a,bG(e,72))};var fSe=YW(w6n,"EndLabelPreprocessor/lambda$5$Type",1567);wDn(1615,1,W4n,qh);lce.Kf=function n(e,t){_dn(bG(e,36),t)};var hSe;var lSe=YW(w6n,"EndLabelSorter",1615);wDn(1616,1,l2n,pt);lce.Ne=function n(e,t){return lkn(bG(e,466),bG(t,466))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var bSe=YW(w6n,"EndLabelSorter/1",1616);wDn(466,1,{466:1},lZ);var wSe=YW(w6n,"EndLabelSorter/LabelGroup",466);wDn(1617,1,{},mt);lce.Kb=function n(e){return ZS(),new gX(null,new d3(bG(e,30).a,16))};var dSe=YW(w6n,"EndLabelSorter/lambda$0$Type",1617);wDn(1618,1,k1n,kt);lce.Mb=function n(e){return ZS(),bG(e,10).k==(YIn(),rEe)};var gSe=YW(w6n,"EndLabelSorter/lambda$1$Type",1618);wDn(1619,1,WZn,yt);lce.Cd=function n(e){ZIn(bG(e,10))};var vSe=YW(w6n,"EndLabelSorter/lambda$2$Type",1619);wDn(1620,1,k1n,Mt);lce.Mb=function n(e){return ZS(),BA(lIn(bG(e,72),(IYn(),wFe)))===BA((ian(),g5e))};var pSe=YW(w6n,"EndLabelSorter/lambda$3$Type",1620);wDn(1621,1,k1n,Tt);lce.Mb=function n(e){return ZS(),BA(lIn(bG(e,72),(IYn(),wFe)))===BA((ian(),v5e))};var mSe=YW(w6n,"EndLabelSorter/lambda$4$Type",1621);wDn(1568,1,W4n,jt);lce.Kf=function n(e,t){WXn(this,bG(e,36))};lce.b=0;lce.c=0;var kSe=YW(w6n,"FinalSplineBendpointsCalculator",1568);wDn(1569,1,{},Et);lce.Kb=function n(e){return new gX(null,new d3(bG(e,30).a,16))};var ySe=YW(w6n,"FinalSplineBendpointsCalculator/lambda$0$Type",1569);wDn(1570,1,{},St);lce.Kb=function n(e){return new gX(null,new RW(new GV(sx(Jgn(bG(e,10)).a.Kc(),new d))))};var MSe=YW(w6n,"FinalSplineBendpointsCalculator/lambda$1$Type",1570);wDn(1571,1,k1n,Pt);lce.Mb=function n(e){return!j9(bG(e,18))};var TSe=YW(w6n,"FinalSplineBendpointsCalculator/lambda$2$Type",1571);wDn(1572,1,k1n,Ct);lce.Mb=function n(e){return jR(bG(e,18),(WYn(),GDe))};var jSe=YW(w6n,"FinalSplineBendpointsCalculator/lambda$3$Type",1572);wDn(1573,1,WZn,lg);lce.Cd=function n(e){rUn(this.a,bG(e,131))};var ESe=YW(w6n,"FinalSplineBendpointsCalculator/lambda$4$Type",1573);wDn(1574,1,WZn,It);lce.Cd=function n(e){qAn(bG(e,18).a)};var SSe=YW(w6n,"FinalSplineBendpointsCalculator/lambda$5$Type",1574);wDn(803,1,W4n,bg);lce.Kf=function n(e,t){gzn(this,bG(e,36),t)};var PSe=YW(w6n,"GraphTransformer",803);wDn(517,22,{3:1,34:1,22:1,517:1},LC);var CSe,ISe;var OSe=qan(w6n,"GraphTransformer/Mode",517,joe,g1,YH);var ASe;wDn(1575,1,W4n,Ot);lce.Kf=function n(e,t){mRn(bG(e,36),t)};var LSe=YW(w6n,"HierarchicalNodeResizingProcessor",1575);wDn(1576,1,W4n,At);lce.Kf=function n(e,t){kun(bG(e,36),t)};var NSe=YW(w6n,"HierarchicalPortConstraintProcessor",1576);wDn(1577,1,l2n,Lt);lce.Ne=function n(e,t){return myn(bG(e,10),bG(t,10))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var $Se=YW(w6n,"HierarchicalPortConstraintProcessor/NodeComparator",1577);wDn(1578,1,W4n,Nt);lce.Kf=function n(e,t){VGn(bG(e,36),t)};var DSe=YW(w6n,"HierarchicalPortDummySizeProcessor",1578);wDn(1579,1,W4n,$t);lce.Kf=function n(e,t){Y_n(this,bG(e,36),t)};lce.a=0;var xSe=YW(w6n,"HierarchicalPortOrthogonalEdgeRouter",1579);wDn(1580,1,l2n,Dt);lce.Ne=function n(e,t){return Dx(bG(e,10),bG(t,10))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var RSe=YW(w6n,"HierarchicalPortOrthogonalEdgeRouter/1",1580);wDn(1581,1,l2n,xt);lce.Ne=function n(e,t){return _en(bG(e,10),bG(t,10))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var KSe=YW(w6n,"HierarchicalPortOrthogonalEdgeRouter/2",1581);wDn(1582,1,W4n,Rt);lce.Kf=function n(e,t){cIn(bG(e,36),t)};var FSe=YW(w6n,"HierarchicalPortPositionProcessor",1582);wDn(1583,1,W4n,nl);lce.Kf=function n(e,t){AJn(this,bG(e,36))};lce.a=0;lce.c=0;var _Se,BSe;var HSe=YW(w6n,"HighDegreeNodeLayeringProcessor",1583);wDn(580,1,{580:1},Kt);lce.b=-1;lce.d=-1;var USe=YW(w6n,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",580);wDn(1584,1,{},Ft);lce.Kb=function n(e){return VB(),Qgn(bG(e,10))};lce.Fb=function n(e){return this===e};var GSe=YW(w6n,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1584);wDn(1585,1,{},_t);lce.Kb=function n(e){return VB(),Jgn(bG(e,10))};lce.Fb=function n(e){return this===e};var qSe=YW(w6n,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1585);wDn(1591,1,W4n,Bt);lce.Kf=function n(e,t){CGn(this,bG(e,36),t)};var XSe=YW(w6n,"HyperedgeDummyMerger",1591);wDn(804,1,{},BB);lce.a=false;lce.b=false;lce.c=false;var VSe=YW(w6n,"HyperedgeDummyMerger/MergeState",804);wDn(1592,1,{},Ht);lce.Kb=function n(e){return new gX(null,new d3(bG(e,30).a,16))};var zSe=YW(w6n,"HyperedgeDummyMerger/lambda$0$Type",1592);wDn(1593,1,{},Ut);lce.Kb=function n(e){return new gX(null,new d3(bG(e,10).j,16))};var WSe=YW(w6n,"HyperedgeDummyMerger/lambda$1$Type",1593);wDn(1594,1,WZn,Gt);lce.Cd=function n(e){bG(e,12).p=-1};var QSe=YW(w6n,"HyperedgeDummyMerger/lambda$2$Type",1594);wDn(1595,1,W4n,qt);lce.Kf=function n(e,t){EGn(bG(e,36),t)};var JSe=YW(w6n,"HypernodesProcessor",1595);wDn(1596,1,W4n,Xt);lce.Kf=function n(e,t){qGn(bG(e,36),t)};var YSe=YW(w6n,"InLayerConstraintProcessor",1596);wDn(1597,1,W4n,Vt);lce.Kf=function n(e,t){Ksn(bG(e,36),t)};var ZSe=YW(w6n,"InnermostNodeMarginCalculator",1597);wDn(1598,1,W4n,zt);lce.Kf=function n(e,t){yQn(this,bG(e,36))};lce.a=M0n;lce.b=M0n;lce.c=y0n;lce.d=y0n;var nPe=YW(w6n,"InteractiveExternalPortPositioner",1598);wDn(1599,1,{},Wt);lce.Kb=function n(e){return bG(e,18).d.i};lce.Fb=function n(e){return this===e};var ePe=YW(w6n,"InteractiveExternalPortPositioner/lambda$0$Type",1599);wDn(1600,1,{},wg);lce.Kb=function n(e){return Rx(this.a,MK(e))};lce.Fb=function n(e){return this===e};var tPe=YW(w6n,"InteractiveExternalPortPositioner/lambda$1$Type",1600);wDn(1601,1,{},Qt);lce.Kb=function n(e){return bG(e,18).c.i};lce.Fb=function n(e){return this===e};var rPe=YW(w6n,"InteractiveExternalPortPositioner/lambda$2$Type",1601);wDn(1602,1,{},dg);lce.Kb=function n(e){return Kx(this.a,MK(e))};lce.Fb=function n(e){return this===e};var iPe=YW(w6n,"InteractiveExternalPortPositioner/lambda$3$Type",1602);wDn(1603,1,{},gg);lce.Kb=function n(e){return JF(this.a,MK(e))};lce.Fb=function n(e){return this===e};var aPe=YW(w6n,"InteractiveExternalPortPositioner/lambda$4$Type",1603);wDn(1604,1,{},vg);lce.Kb=function n(e){return YF(this.a,MK(e))};lce.Fb=function n(e){return this===e};var cPe=YW(w6n,"InteractiveExternalPortPositioner/lambda$5$Type",1604);wDn(81,22,{3:1,34:1,22:1,81:1,196:1},NC);lce.dg=function n(){switch(this.g){case 15:return new ga;case 22:return new va;case 47:return new ka;case 28:case 35:return new ur;case 32:return new rt;case 42:return new ct;case 1:return new ut;case 41:return new st;case 56:return new bg((xsn(),ISe));case 0:return new bg((xsn(),CSe));case 2:return new ot;case 54:return new ft;case 33:return new wt;case 51:return new jt;case 55:return new Ot;case 13:return new At;case 38:return new Nt;case 44:return new $t;case 40:return new Rt;case 9:return new nl;case 49:return new zx;case 37:return new Bt;case 43:return new qt;case 27:return new Xt;case 30:return new Vt;case 3:return new zt;case 18:return new Yt;case 29:return new Zt;case 5:return new el;case 50:return new Jt;case 34:return new tl;case 36:return new sr;case 52:return new qh;case 11:return new or;case 7:return new rl;case 39:return new fr;case 45:return new hr;case 16:return new lr;case 10:return new HI;case 48:return new gr;case 21:return new vr;case 23:return new Yy((ucn(),WUe));case 8:return new mr;case 12:return new yr;case 4:return new Mr;case 19:return new ol;case 17:return new Lr;case 53:return new Nr;case 6:return new Xr;case 25:return new Ik;case 46:return new Fr;case 31:return new qF;case 14:return new ni;case 26:return new Pa;case 20:return new ai;case 24:return new Yy((ucn(),QUe));default:throw dm(new jM(p6n+(this.f!=null?this.f:""+this.g)))}};var uPe,sPe,oPe,fPe,hPe,lPe,bPe,wPe,dPe,gPe,vPe,pPe,mPe,kPe,yPe,MPe,TPe,jPe,EPe,SPe,PPe,CPe,IPe,OPe,APe,LPe,NPe,$Pe,DPe,xPe,RPe,KPe,FPe,_Pe,BPe,HPe,UPe,GPe,qPe,XPe,VPe,zPe,WPe,QPe,JPe,YPe,ZPe,nCe,eCe,tCe,rCe,iCe,aCe,cCe,uCe,sCe,oCe;var fCe=qan(w6n,m6n,81,joe,pKn,JB);var hCe;wDn(1605,1,W4n,Yt);lce.Kf=function n(e,t){pQn(bG(e,36),t)};var lCe=YW(w6n,"InvertedPortProcessor",1605);wDn(1606,1,W4n,Zt);lce.Kf=function n(e,t){_Hn(bG(e,36),t)};var bCe=YW(w6n,"LabelAndNodeSizeProcessor",1606);wDn(1607,1,k1n,nr);lce.Mb=function n(e){return bG(e,10).k==(YIn(),rEe)};var wCe=YW(w6n,"LabelAndNodeSizeProcessor/lambda$0$Type",1607);wDn(1608,1,k1n,er);lce.Mb=function n(e){return bG(e,10).k==(YIn(),nEe)};var dCe=YW(w6n,"LabelAndNodeSizeProcessor/lambda$1$Type",1608);wDn(1609,1,WZn,UB);lce.Cd=function n(e){bP(this.b,this.a,this.c,bG(e,10))};lce.a=false;lce.c=false;var gCe=YW(w6n,"LabelAndNodeSizeProcessor/lambda$2$Type",1609);wDn(1610,1,W4n,el);lce.Kf=function n(e,t){OWn(bG(e,36),t)};var vCe;var pCe=YW(w6n,"LabelDummyInserter",1610);wDn(1611,1,O2n,tr);lce.Lb=function n(e){return BA(lIn(bG(e,72),(IYn(),wFe)))===BA((ian(),d5e))};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return BA(lIn(bG(e,72),(IYn(),wFe)))===BA((ian(),d5e))};var mCe=YW(w6n,"LabelDummyInserter/1",1611);wDn(1612,1,W4n,Jt);lce.Kf=function n(e,t){uWn(bG(e,36),t)};var kCe=YW(w6n,"LabelDummyRemover",1612);wDn(1613,1,k1n,rr);lce.Mb=function n(e){return lM(yK(lIn(bG(e,72),(IYn(),bFe))))};var yCe=YW(w6n,"LabelDummyRemover/lambda$0$Type",1613);wDn(1378,1,W4n,tl);lce.Kf=function n(e,t){zzn(this,bG(e,36),t)};lce.a=null;var MCe;var TCe=YW(w6n,"LabelDummySwitcher",1378);wDn(293,1,{293:1},lHn);lce.c=0;lce.d=null;lce.f=0;var jCe=YW(w6n,"LabelDummySwitcher/LabelDummyInfo",293);wDn(1379,1,{},ir);lce.Kb=function n(e){return Lsn(),new gX(null,new d3(bG(e,30).a,16))};var ECe=YW(w6n,"LabelDummySwitcher/lambda$0$Type",1379);wDn(1380,1,k1n,ar);lce.Mb=function n(e){return Lsn(),bG(e,10).k==(YIn(),eEe)};var SCe=YW(w6n,"LabelDummySwitcher/lambda$1$Type",1380);wDn(1381,1,{},pg);lce.Kb=function n(e){return GK(this.a,bG(e,10))};var PCe=YW(w6n,"LabelDummySwitcher/lambda$2$Type",1381);wDn(1382,1,WZn,mg);lce.Cd=function n(e){yQ(this.a,bG(e,293))};var CCe=YW(w6n,"LabelDummySwitcher/lambda$3$Type",1382);wDn(1383,1,l2n,cr);lce.Ne=function n(e,t){return az(bG(e,293),bG(t,293))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var ICe=YW(w6n,"LabelDummySwitcher/lambda$4$Type",1383);wDn(802,1,W4n,ur);lce.Kf=function n(e,t){_nn(bG(e,36),t)};var OCe=YW(w6n,"LabelManagementProcessor",802);wDn(1614,1,W4n,sr);lce.Kf=function n(e,t){IFn(bG(e,36),t)};var ACe=YW(w6n,"LabelSideSelector",1614);wDn(1622,1,W4n,or);lce.Kf=function n(e,t){Sqn(bG(e,36),t)};var LCe=YW(w6n,"LayerConstraintPostprocessor",1622);wDn(1623,1,W4n,rl);lce.Kf=function n(e,t){jDn(bG(e,36),t)};var NCe;var $Ce=YW(w6n,"LayerConstraintPreprocessor",1623);wDn(371,22,{3:1,34:1,22:1,371:1},$C);var DCe,xCe,RCe,KCe;var FCe=qan(w6n,"LayerConstraintPreprocessor/HiddenNodeConnections",371,joe,W6,YB);var _Ce;wDn(1624,1,W4n,fr);lce.Kf=function n(e,t){YVn(bG(e,36),t)};var BCe=YW(w6n,"LayerSizeAndGraphHeightCalculator",1624);wDn(1625,1,W4n,hr);lce.Kf=function n(e,t){kRn(bG(e,36),t)};var HCe=YW(w6n,"LongEdgeJoiner",1625);wDn(1626,1,W4n,lr);lce.Kf=function n(e,t){vVn(bG(e,36),t)};var UCe=YW(w6n,"LongEdgeSplitter",1626);wDn(1627,1,W4n,HI);lce.Kf=function n(e,t){ZWn(this,bG(e,36),t)};lce.e=0;lce.f=0;lce.j=0;lce.k=0;lce.n=0;lce.o=0;var GCe,qCe;var XCe=YW(w6n,"NodePromotion",1627);wDn(1628,1,l2n,br);lce.Ne=function n(e,t){return Fln(bG(e,10),bG(t,10))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var VCe=YW(w6n,"NodePromotion/1",1628);wDn(1629,1,l2n,wr);lce.Ne=function n(e,t){return _ln(bG(e,10),bG(t,10))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var zCe=YW(w6n,"NodePromotion/2",1629);wDn(1630,1,{},dr);lce.Kb=function n(e){return bG(e,42),zB(),Qx(),true};lce.Fb=function n(e){return this===e};var WCe=YW(w6n,"NodePromotion/lambda$0$Type",1630);wDn(1631,1,{},Tg);lce.Kb=function n(e){return L0(this.a,bG(e,42))};lce.Fb=function n(e){return this===e};lce.a=0;var QCe=YW(w6n,"NodePromotion/lambda$1$Type",1631);wDn(1632,1,{},jg);lce.Kb=function n(e){return A0(this.a,bG(e,42))};lce.Fb=function n(e){return this===e};lce.a=0;var JCe=YW(w6n,"NodePromotion/lambda$2$Type",1632);wDn(1633,1,W4n,gr);lce.Kf=function n(e,t){mJn(bG(e,36),t)};var YCe=YW(w6n,"NorthSouthPortPostprocessor",1633);wDn(1634,1,W4n,vr);lce.Kf=function n(e,t){GQn(bG(e,36),t)};var ZCe=YW(w6n,"NorthSouthPortPreprocessor",1634);wDn(1635,1,l2n,pr);lce.Ne=function n(e,t){return efn(bG(e,12),bG(t,12))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var nIe=YW(w6n,"NorthSouthPortPreprocessor/lambda$0$Type",1635);wDn(1636,1,W4n,mr);lce.Kf=function n(e,t){VUn(bG(e,36),t)};var eIe=YW(w6n,"PartitionMidprocessor",1636);wDn(1637,1,k1n,kr);lce.Mb=function n(e){return jR(bG(e,10),(IYn(),h_e))};var tIe=YW(w6n,"PartitionMidprocessor/lambda$0$Type",1637);wDn(1638,1,WZn,Eg);lce.Cd=function n(e){YY(this.a,bG(e,10))};var rIe=YW(w6n,"PartitionMidprocessor/lambda$1$Type",1638);wDn(1639,1,W4n,yr);lce.Kf=function n(e,t){tKn(bG(e,36),t)};var iIe=YW(w6n,"PartitionPostprocessor",1639);wDn(1640,1,W4n,Mr);lce.Kf=function n(e,t){P$n(bG(e,36),t)};var aIe=YW(w6n,"PartitionPreprocessor",1640);wDn(1641,1,k1n,Tr);lce.Mb=function n(e){return jR(bG(e,10),(IYn(),h_e))};var cIe=YW(w6n,"PartitionPreprocessor/lambda$0$Type",1641);wDn(1642,1,{},jr);lce.Kb=function n(e){return new gX(null,new RW(new GV(sx(Jgn(bG(e,10)).a.Kc(),new d))))};var uIe=YW(w6n,"PartitionPreprocessor/lambda$1$Type",1642);wDn(1643,1,k1n,Er);lce.Mb=function n(e){return Mkn(bG(e,18))};var sIe=YW(w6n,"PartitionPreprocessor/lambda$2$Type",1643);wDn(1644,1,WZn,Sr);lce.Cd=function n(e){ohn(bG(e,18))};var oIe=YW(w6n,"PartitionPreprocessor/lambda$3$Type",1644);wDn(1645,1,W4n,ol);lce.Kf=function n(e,t){pUn(bG(e,36),t)};var fIe,hIe,lIe,bIe,wIe,dIe;var gIe=YW(w6n,"PortListSorter",1645);wDn(1648,1,l2n,Pr);lce.Ne=function n(e,t){return e8(bG(e,12),bG(t,12))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var vIe=YW(w6n,"PortListSorter/lambda$0$Type",1648);wDn(1650,1,l2n,Cr);lce.Ne=function n(e,t){return dGn(bG(e,12),bG(t,12))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var pIe=YW(w6n,"PortListSorter/lambda$1$Type",1650);wDn(1646,1,{},Ir);lce.Kb=function n(e){return Nln(),bG(e,12).e};var mIe=YW(w6n,"PortListSorter/lambda$2$Type",1646);wDn(1647,1,{},Or);lce.Kb=function n(e){return Nln(),bG(e,12).g};var kIe=YW(w6n,"PortListSorter/lambda$3$Type",1647);wDn(1649,1,l2n,Ar);lce.Ne=function n(e,t){return pjn(bG(e,12),bG(t,12))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var yIe=YW(w6n,"PortListSorter/lambda$4$Type",1649);wDn(1651,1,W4n,Lr);lce.Kf=function n(e,t){GDn(bG(e,36),t)};var MIe=YW(w6n,"PortSideProcessor",1651);wDn(1652,1,W4n,Nr);lce.Kf=function n(e,t){ABn(bG(e,36),t)};var TIe=YW(w6n,"ReversedEdgeRestorer",1652);wDn(1657,1,W4n,Ik);lce.Kf=function n(e,t){ETn(this,bG(e,36),t)};var jIe=YW(w6n,"SelfLoopPortRestorer",1657);wDn(1658,1,{},$r);lce.Kb=function n(e){return new gX(null,new d3(bG(e,30).a,16))};var EIe=YW(w6n,"SelfLoopPortRestorer/lambda$0$Type",1658);wDn(1659,1,k1n,Dr);lce.Mb=function n(e){return bG(e,10).k==(YIn(),rEe)};var SIe=YW(w6n,"SelfLoopPortRestorer/lambda$1$Type",1659);wDn(1660,1,k1n,xr);lce.Mb=function n(e){return jR(bG(e,10),(WYn(),_De))};var PIe=YW(w6n,"SelfLoopPortRestorer/lambda$2$Type",1660);wDn(1661,1,{},Rr);lce.Kb=function n(e){return bG(lIn(bG(e,10),(WYn(),_De)),337)};var CIe=YW(w6n,"SelfLoopPortRestorer/lambda$3$Type",1661);wDn(1662,1,WZn,yg);lce.Cd=function n(e){yOn(this.a,bG(e,337))};var IIe=YW(w6n,"SelfLoopPortRestorer/lambda$4$Type",1662);wDn(805,1,WZn,Kr);lce.Cd=function n(e){XOn(bG(e,105))};var OIe=YW(w6n,"SelfLoopPortRestorer/lambda$5$Type",805);wDn(1663,1,W4n,Fr);lce.Kf=function n(e,t){lyn(bG(e,36),t)};var AIe=YW(w6n,"SelfLoopPostProcessor",1663);wDn(1664,1,{},_r);lce.Kb=function n(e){return new gX(null,new d3(bG(e,30).a,16))};var LIe=YW(w6n,"SelfLoopPostProcessor/lambda$0$Type",1664);wDn(1665,1,k1n,Br);lce.Mb=function n(e){return bG(e,10).k==(YIn(),rEe)};var NIe=YW(w6n,"SelfLoopPostProcessor/lambda$1$Type",1665);wDn(1666,1,k1n,Hr);lce.Mb=function n(e){return jR(bG(e,10),(WYn(),_De))};var $Ie=YW(w6n,"SelfLoopPostProcessor/lambda$2$Type",1666);wDn(1667,1,WZn,Ur);lce.Cd=function n(e){ySn(bG(e,10))};var DIe=YW(w6n,"SelfLoopPostProcessor/lambda$3$Type",1667);wDn(1668,1,{},Gr);lce.Kb=function n(e){return new gX(null,new d3(bG(e,105).f,1))};var xIe=YW(w6n,"SelfLoopPostProcessor/lambda$4$Type",1668);wDn(1669,1,WZn,kg);lce.Cd=function n(e){Z6(this.a,bG(e,340))};var RIe=YW(w6n,"SelfLoopPostProcessor/lambda$5$Type",1669);wDn(1670,1,k1n,qr);lce.Mb=function n(e){return!!bG(e,105).i};var KIe=YW(w6n,"SelfLoopPostProcessor/lambda$6$Type",1670);wDn(1671,1,WZn,Mg);lce.Cd=function n(e){uM(this.a,bG(e,105))};var FIe=YW(w6n,"SelfLoopPostProcessor/lambda$7$Type",1671);wDn(1653,1,W4n,Xr);lce.Kf=function n(e,t){Gxn(bG(e,36),t)};var _Ie=YW(w6n,"SelfLoopPreProcessor",1653);wDn(1654,1,{},Vr);lce.Kb=function n(e){return new gX(null,new d3(bG(e,105).f,1))};var BIe=YW(w6n,"SelfLoopPreProcessor/lambda$0$Type",1654);wDn(1655,1,{},zr);lce.Kb=function n(e){return bG(e,340).a};var HIe=YW(w6n,"SelfLoopPreProcessor/lambda$1$Type",1655);wDn(1656,1,WZn,Wr);lce.Cd=function n(e){j$(bG(e,18))};var UIe=YW(w6n,"SelfLoopPreProcessor/lambda$2$Type",1656);wDn(1672,1,W4n,qF);lce.Kf=function n(e,t){BIn(this,bG(e,36),t)};var GIe=YW(w6n,"SelfLoopRouter",1672);wDn(1673,1,{},Qr);lce.Kb=function n(e){return new gX(null,new d3(bG(e,30).a,16))};var qIe=YW(w6n,"SelfLoopRouter/lambda$0$Type",1673);wDn(1674,1,k1n,Jr);lce.Mb=function n(e){return bG(e,10).k==(YIn(),rEe)};var XIe=YW(w6n,"SelfLoopRouter/lambda$1$Type",1674);wDn(1675,1,k1n,Yr);lce.Mb=function n(e){return jR(bG(e,10),(WYn(),_De))};var VIe=YW(w6n,"SelfLoopRouter/lambda$2$Type",1675);wDn(1676,1,{},Zr);lce.Kb=function n(e){return bG(lIn(bG(e,10),(WYn(),_De)),337)};var zIe=YW(w6n,"SelfLoopRouter/lambda$3$Type",1676);wDn(1677,1,WZn,DC);lce.Cd=function n(e){vY(this.a,this.b,bG(e,337))};var WIe=YW(w6n,"SelfLoopRouter/lambda$4$Type",1677);wDn(1678,1,W4n,ni);lce.Kf=function n(e,t){cFn(bG(e,36),t)};var QIe=YW(w6n,"SemiInteractiveCrossMinProcessor",1678);wDn(1679,1,k1n,ei);lce.Mb=function n(e){return bG(e,10).k==(YIn(),rEe)};var JIe=YW(w6n,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1679);wDn(1680,1,k1n,ti);lce.Mb=function n(e){return PX(bG(e,10))._b((IYn(),S_e))};var YIe=YW(w6n,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1680);wDn(1681,1,l2n,ri);lce.Ne=function n(e,t){return Oun(bG(e,10),bG(t,10))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var ZIe=YW(w6n,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1681);wDn(1682,1,{},ii);lce.Ve=function n(e,t){return ZY(bG(e,10),bG(t,10))};var nOe=YW(w6n,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1682);wDn(1684,1,W4n,ai);lce.Kf=function n(e,t){PXn(bG(e,36),t)};var eOe=YW(w6n,"SortByInputModelProcessor",1684);wDn(1685,1,k1n,ci);lce.Mb=function n(e){return bG(e,12).g.c.length!=0};var tOe=YW(w6n,"SortByInputModelProcessor/lambda$0$Type",1685);wDn(1686,1,WZn,Sg);lce.Cd=function n(e){iAn(this.a,bG(e,12))};var rOe=YW(w6n,"SortByInputModelProcessor/lambda$1$Type",1686);wDn(1759,817,{},Uun);lce.df=function n(e){var t,r,i,a;this.c=e;switch(this.a.g){case 2:t=new im;ES(tY(new gX(null,new d3(this.c.a.b,16)),new ki),new XC(this,t));eLn(this,new si);Lin(t,new oi);t.c.length=0;ES(tY(new gX(null,new d3(this.c.a.b,16)),new fi),new Cg(t));eLn(this,new hi);Lin(t,new li);t.c.length=0;r=m$(Csn(iY(new gX(null,new d3(this.c.a.b,16)),new Ig(this))),new bi);ES(new gX(null,new d3(this.c.a.a,16)),new KC(r,t));eLn(this,new di);Lin(t,new gi);t.c.length=0;break;case 3:i=new im;eLn(this,new ui);a=m$(Csn(iY(new gX(null,new d3(this.c.a.b,16)),new Pg(this))),new wi);ES(tY(new gX(null,new d3(this.c.a.b,16)),new vi),new _C(a,i));eLn(this,new pi);Lin(i,new mi);i.c.length=0;break;default:throw dm(new Vm)}};lce.b=0;var iOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation",1759);wDn(1760,1,O2n,ui);lce.Lb=function n(e){return G$(bG(e,60).g,154)};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return G$(bG(e,60).g,154)};var aOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1760);wDn(1761,1,{},Pg);lce.Ye=function n(e){return FLn(this.a,bG(e,60))};var cOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1761);wDn(1769,1,y1n,xC);lce.de=function n(){CEn(this.a,this.b,-1)};lce.b=0;var uOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1769);wDn(1771,1,O2n,si);lce.Lb=function n(e){return G$(bG(e,60).g,154)};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return G$(bG(e,60).g,154)};var sOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1771);wDn(1772,1,WZn,oi);lce.Cd=function n(e){bG(e,380).de()};var oOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1772);wDn(1773,1,k1n,fi);lce.Mb=function n(e){return G$(bG(e,60).g,10)};var fOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1773);wDn(1775,1,WZn,Cg);lce.Cd=function n(e){cvn(this.a,bG(e,60))};var hOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1775);wDn(1774,1,y1n,BC);lce.de=function n(){CEn(this.b,this.a,-1)};lce.a=0;var lOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1774);wDn(1776,1,O2n,hi);lce.Lb=function n(e){return G$(bG(e,60).g,10)};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return G$(bG(e,60).g,10)};var bOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1776);wDn(1777,1,WZn,li);lce.Cd=function n(e){bG(e,380).de()};var wOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1777);wDn(1778,1,{},Ig);lce.Ye=function n(e){return _Ln(this.a,bG(e,60))};var dOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1778);wDn(1779,1,{},bi);lce.We=function n(){return 0};var gOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1779);wDn(1762,1,{},wi);lce.We=function n(){return 0};var vOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1762);wDn(1781,1,WZn,KC);lce.Cd=function n(e){bV(this.a,this.b,bG(e,316))};lce.a=0;var pOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1781);wDn(1780,1,y1n,FC);lce.de=function n(){VDn(this.a,this.b,-1)};lce.b=0;var mOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1780);wDn(1782,1,O2n,di);lce.Lb=function n(e){return bG(e,60),true};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return bG(e,60),true};var kOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1782);wDn(1783,1,WZn,gi);lce.Cd=function n(e){bG(e,380).de()};var yOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1783);wDn(1763,1,k1n,vi);lce.Mb=function n(e){return G$(bG(e,60).g,10)};var MOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1763);wDn(1765,1,WZn,_C);lce.Cd=function n(e){wV(this.a,this.b,bG(e,60))};lce.a=0;var TOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1765);wDn(1764,1,y1n,HC);lce.de=function n(){CEn(this.b,this.a,-1)};lce.a=0;var jOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1764);wDn(1766,1,O2n,pi);lce.Lb=function n(e){return bG(e,60),true};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return bG(e,60),true};var EOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1766);wDn(1767,1,WZn,mi);lce.Cd=function n(e){bG(e,380).de()};var SOe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1767);wDn(1768,1,k1n,ki);lce.Mb=function n(e){return G$(bG(e,60).g,154)};var POe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1768);wDn(1770,1,WZn,XC);lce.Cd=function n(e){Tin(this.a,this.b,bG(e,60))};var COe=YW(j6n,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1770);wDn(1586,1,W4n,zx);lce.Kf=function n(e,t){SVn(this,bG(e,36),t)};var IOe;var OOe=YW(j6n,"HorizontalGraphCompactor",1586);wDn(1587,1,{},Og);lce.ff=function n(e,t){var r,i,a;if(Ftn(e,t)){return 0}r=Y4(e);i=Y4(t);if(!!r&&r.k==(YIn(),nEe)||!!i&&i.k==(YIn(),nEe)){return 0}a=bG(lIn(this.a.a,(WYn(),BDe)),312);return qx(a,r?r.k:(YIn(),tEe),i?i.k:(YIn(),tEe))};lce.gf=function n(e,t){var r,i,a;if(Ftn(e,t)){return 1}r=Y4(e);i=Y4(t);a=bG(lIn(this.a.a,(WYn(),BDe)),312);return Xx(a,r?r.k:(YIn(),tEe),i?i.k:(YIn(),tEe))};var AOe=YW(j6n,"HorizontalGraphCompactor/1",1587);wDn(1588,1,{},yi);lce.ef=function n(e,t){return tP(),e.a.i==0};var LOe=YW(j6n,"HorizontalGraphCompactor/lambda$0$Type",1588);wDn(1589,1,{},Ag);lce.ef=function n(e,t){return iZ(this.a,e,t)};var NOe=YW(j6n,"HorizontalGraphCompactor/lambda$1$Type",1589);wDn(1730,1,{},Atn);var $Oe,DOe;var xOe=YW(j6n,"LGraphToCGraphTransformer",1730);wDn(1738,1,k1n,Mi);lce.Mb=function n(e){return e!=null};var ROe=YW(j6n,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1738);wDn(1731,1,{},Ti);lce.Kb=function n(e){return WB(),fvn(lIn(bG(bG(e,60).g,10),(WYn(),EDe)))};var KOe=YW(j6n,"LGraphToCGraphTransformer/lambda$0$Type",1731);wDn(1732,1,{},ji);lce.Kb=function n(e){return WB(),qwn(bG(bG(e,60).g,154))};var FOe=YW(j6n,"LGraphToCGraphTransformer/lambda$1$Type",1732);wDn(1741,1,k1n,Ei);lce.Mb=function n(e){return WB(),G$(bG(e,60).g,10)};var _Oe=YW(j6n,"LGraphToCGraphTransformer/lambda$10$Type",1741);wDn(1742,1,WZn,Si);lce.Cd=function n(e){IZ(bG(e,60))};var BOe=YW(j6n,"LGraphToCGraphTransformer/lambda$11$Type",1742);wDn(1743,1,k1n,Pi);lce.Mb=function n(e){return WB(),G$(bG(e,60).g,154)};var HOe=YW(j6n,"LGraphToCGraphTransformer/lambda$12$Type",1743);wDn(1747,1,WZn,Ci);lce.Cd=function n(e){Gwn(bG(e,60))};var UOe=YW(j6n,"LGraphToCGraphTransformer/lambda$13$Type",1747);wDn(1744,1,WZn,Lg);lce.Cd=function n(e){nN(this.a,bG(e,8))};lce.a=0;var GOe=YW(j6n,"LGraphToCGraphTransformer/lambda$14$Type",1744);wDn(1745,1,WZn,Ng);lce.Cd=function n(e){tN(this.a,bG(e,116))};lce.a=0;var qOe=YW(j6n,"LGraphToCGraphTransformer/lambda$15$Type",1745);wDn(1746,1,WZn,$g);lce.Cd=function n(e){eN(this.a,bG(e,8))};lce.a=0;var XOe=YW(j6n,"LGraphToCGraphTransformer/lambda$16$Type",1746);wDn(1748,1,{},Ii);lce.Kb=function n(e){return WB(),new gX(null,new RW(new GV(sx(Jgn(bG(e,10)).a.Kc(),new d))))};var VOe=YW(j6n,"LGraphToCGraphTransformer/lambda$17$Type",1748);wDn(1749,1,k1n,Oi);lce.Mb=function n(e){return WB(),j9(bG(e,18))};var zOe=YW(j6n,"LGraphToCGraphTransformer/lambda$18$Type",1749);wDn(1750,1,WZn,Dg);lce.Cd=function n(e){grn(this.a,bG(e,18))};var WOe=YW(j6n,"LGraphToCGraphTransformer/lambda$19$Type",1750);wDn(1734,1,WZn,xg);lce.Cd=function n(e){e4(this.a,bG(e,154))};var QOe=YW(j6n,"LGraphToCGraphTransformer/lambda$2$Type",1734);wDn(1751,1,{},Ai);lce.Kb=function n(e){return WB(),new gX(null,new d3(bG(e,30).a,16))};var JOe=YW(j6n,"LGraphToCGraphTransformer/lambda$20$Type",1751);wDn(1752,1,{},Li);lce.Kb=function n(e){return WB(),new gX(null,new RW(new GV(sx(Jgn(bG(e,10)).a.Kc(),new d))))};var YOe=YW(j6n,"LGraphToCGraphTransformer/lambda$21$Type",1752);wDn(1753,1,{},Ni);lce.Kb=function n(e){return WB(),bG(lIn(bG(e,18),(WYn(),GDe)),15)};var ZOe=YW(j6n,"LGraphToCGraphTransformer/lambda$22$Type",1753);wDn(1754,1,k1n,$i);lce.Mb=function n(e){return Vx(bG(e,15))};var nAe=YW(j6n,"LGraphToCGraphTransformer/lambda$23$Type",1754);wDn(1755,1,WZn,Rg);lce.Cd=function n(e){MLn(this.a,bG(e,15))};var eAe=YW(j6n,"LGraphToCGraphTransformer/lambda$24$Type",1755);wDn(1733,1,WZn,VC);lce.Cd=function n(e){L5(this.a,this.b,bG(e,154))};var tAe=YW(j6n,"LGraphToCGraphTransformer/lambda$3$Type",1733);wDn(1735,1,{},Di);lce.Kb=function n(e){return WB(),new gX(null,new d3(bG(e,30).a,16))};var rAe=YW(j6n,"LGraphToCGraphTransformer/lambda$4$Type",1735);wDn(1736,1,{},xi);lce.Kb=function n(e){return WB(),new gX(null,new RW(new GV(sx(Jgn(bG(e,10)).a.Kc(),new d))))};var iAe=YW(j6n,"LGraphToCGraphTransformer/lambda$5$Type",1736);wDn(1737,1,{},Ri);lce.Kb=function n(e){return WB(),bG(lIn(bG(e,18),(WYn(),GDe)),15)};var aAe=YW(j6n,"LGraphToCGraphTransformer/lambda$6$Type",1737);wDn(1739,1,WZn,Kg);lce.Cd=function n(e){BLn(this.a,bG(e,15))};var cAe=YW(j6n,"LGraphToCGraphTransformer/lambda$8$Type",1739);wDn(1740,1,WZn,zC);lce.Cd=function n(e){E$(this.a,this.b,bG(e,154))};var uAe=YW(j6n,"LGraphToCGraphTransformer/lambda$9$Type",1740);wDn(1729,1,{},Ki);lce.cf=function n(e){var t,r,i,a,c;this.a=e;this.d=new hk;this.c=$nn(Wve,jZn,125,this.a.a.a.c.length,0,1);this.b=0;for(r=new nd(this.a.a.a);r.a=v){ED(u,Bwn(l));k=t.Math.max(k,y[l-1]-b);o+=g;p+=y[l-1]-p;b=y[l-1];g=f[l]}g=t.Math.max(g,f[l]);++l}o+=g}d=t.Math.min(1/k,1/r.b/o);if(d>a){a=d;i=u}}return i};lce.pg=function n(){return false};var aNe=YW(L6n,"MSDCutIndexHeuristic",816);wDn(1683,1,W4n,Pa);lce.Kf=function n(e,t){Nqn(bG(e,36),t)};var cNe=YW(L6n,"SingleEdgeGraphWrapper",1683);wDn(232,22,{3:1,34:1,22:1,232:1},eI);var uNe,sNe,oNe,fNe,hNe,lNe;var bNe=qan(N6n,"CenterEdgeLabelPlacementStrategy",232,joe,Ynn,tH);var wNe;wDn(431,22,{3:1,34:1,22:1,431:1},nI);var dNe,gNe;var vNe=qan(N6n,"ConstraintCalculationStrategy",431,joe,m1,rH);var pNe;wDn(322,22,{3:1,34:1,22:1,322:1,188:1,196:1},tI);lce.dg=function n(){return iNn(this)};lce.qg=function n(){return iNn(this)};var mNe,kNe,yNe;var MNe=qan(N6n,"CrossingMinimizationStrategy",322,joe,X2,iH);var TNe;wDn(351,22,{3:1,34:1,22:1,351:1},rI);var jNe,ENe,SNe;var PNe=qan(N6n,"CuttingStrategy",351,joe,V2,aH);var CNe;wDn(348,22,{3:1,34:1,22:1,348:1,188:1,196:1},iI);lce.dg=function n(){return DDn(this)};lce.qg=function n(){return DDn(this)};var INe,ONe,ANe,LNe,NNe;var $Ne=qan(N6n,"CycleBreakingStrategy",348,joe,d9,cH);var DNe;wDn(428,22,{3:1,34:1,22:1,428:1},aI);var xNe,RNe;var KNe=qan(N6n,"DirectionCongruency",428,joe,p1,uH);var FNe;wDn(460,22,{3:1,34:1,22:1,460:1},cI);var _Ne,BNe,HNe;var UNe=qan(N6n,"EdgeConstraint",460,joe,z2,wH);var GNe;wDn(283,22,{3:1,34:1,22:1,283:1},uI);var qNe,XNe,VNe,zNe,WNe,QNe;var JNe=qan(N6n,"EdgeLabelSideSelection",283,joe,Wnn,dH);var YNe;wDn(488,22,{3:1,34:1,22:1,488:1},sI);var ZNe,n$e;var e$e=qan(N6n,"EdgeStraighteningStrategy",488,joe,S1,gH);var t$e;wDn(281,22,{3:1,34:1,22:1,281:1},oI);var r$e,i$e,a$e,c$e,u$e,s$e;var o$e=qan(N6n,"FixedAlignment",281,joe,Qnn,bH);var f$e;wDn(282,22,{3:1,34:1,22:1,282:1},fI);var h$e,l$e,b$e,w$e,d$e,g$e;var v$e=qan(N6n,"GraphCompactionStrategy",282,joe,Jnn,sH);var p$e;wDn(259,22,{3:1,34:1,22:1,259:1},hI);var m$e,k$e,y$e,M$e,T$e,j$e,E$e,S$e,P$e,C$e;var I$e=qan(N6n,"GraphProperties",259,joe,lsn,oH);var O$e;wDn(299,22,{3:1,34:1,22:1,299:1},lI);var A$e,L$e,N$e;var $$e=qan(N6n,"GreedySwitchType",299,joe,W2,fH);var D$e;wDn(311,22,{3:1,34:1,22:1,311:1},bI);var x$e,R$e,K$e;var F$e=qan(N6n,"InLayerConstraint",311,joe,Q2,hH);var _$e;wDn(429,22,{3:1,34:1,22:1,429:1},wI);var B$e,H$e;var U$e=qan(N6n,"InteractiveReferencePoint",429,joe,v1,lH);var G$e;var q$e,X$e,V$e,z$e,W$e,Q$e,J$e,Y$e,Z$e,nDe,eDe,tDe,rDe,iDe,aDe,cDe,uDe,sDe,oDe,fDe,hDe,lDe,bDe,wDe,dDe,gDe,vDe,pDe,mDe,kDe,yDe,MDe,TDe,jDe,EDe,SDe,PDe,CDe,IDe,ODe,ADe,LDe,NDe,$De,DDe,xDe,RDe,KDe,FDe,_De,BDe,HDe,UDe,GDe,qDe,XDe,VDe,zDe;wDn(171,22,{3:1,34:1,22:1,171:1},dI);var WDe,QDe,JDe,YDe,ZDe;var nxe=qan(N6n,"LayerConstraint",171,joe,v9,vH);var exe;wDn(859,1,R2n,gl);lce.hf=function n(e){ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,_6n),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),_xe),(vAn(),j3e)),KNe),ygn((Hkn(),p3e)))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,B6n),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(Qx(),false)),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,H6n),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),oRe),j3e),U$e),ygn(p3e))));V4(e,H6n,Q6n,hRe);V4(e,H6n,c5n,fRe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,U6n),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,G6n),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),true),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(ZT(tj(ej(rj(QT(WT(nj(JT(YT(new _s,q6n),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),M3e),Uhe),ygn(m3e)),zfn(fT(vle,1),XZn,2,6,["org.eclipse.elk.layered.northOrSouthPort"]))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,X6n),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),zRe),j3e),pHe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,V6n),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),Bwn(7)),S3e),tle),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,z6n),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,W6n),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Q6n),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),Kxe),j3e),$Ne),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,J6n),s8n),"Node Layering Strategy"),"Strategy for node layering."),SRe),j3e),LBe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Y6n),s8n),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),gRe),j3e),nxe),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Z6n),s8n),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),S3e),tle),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,n5n),s8n),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Bwn(-1)),S3e),tle),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,e5n),o8n),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),Bwn(4)),S3e),tle),ygn(p3e))));V4(e,e5n,J6n,mRe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,t5n),o8n),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),Bwn(2)),S3e),tle),ygn(p3e))));V4(e,t5n,J6n,yRe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,r5n),f8n),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),jRe),j3e),sHe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,i5n),f8n),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),Bwn(0)),S3e),tle),ygn(p3e))));V4(e,i5n,r5n,null);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,a5n),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),Bwn(pZn)),S3e),tle),ygn(p3e))));V4(e,a5n,J6n,bRe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,c5n),h8n),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),xxe),j3e),MNe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,u5n),h8n),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,s5n),h8n),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),T3e),Yhe),ygn(p3e))));V4(e,s5n,l8n,Cxe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,o5n),h8n),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),M3e),Uhe),ygn(p3e))));V4(e,o5n,c5n,$xe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,f5n),h8n),"In Layer Predecessor of"),"Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"),null),C3e),vle),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,h5n),h8n),"In Layer Successor of"),"Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"),null),C3e),vle),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,l5n),h8n),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),S3e),tle),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,b5n),h8n),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Bwn(-1)),S3e),tle),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,w5n),b8n),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),Bwn(40)),S3e),tle),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,d5n),b8n),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),Exe),j3e),$$e),ygn(p3e))));V4(e,d5n,c5n,Sxe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,g5n),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),yxe),j3e),$$e),ygn(p3e))));V4(e,g5n,c5n,Mxe);V4(e,g5n,l8n,Txe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,v5n),w8n),"Node Placement Strategy"),"Strategy for node placement."),XRe),j3e),QBe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,p5n),w8n),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),M3e),Uhe),ygn(p3e))));V4(e,p5n,v5n,xRe);V4(e,p5n,v5n,RRe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,m5n),d8n),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),ORe),j3e),e$e),ygn(p3e))));V4(e,m5n,v5n,ARe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,k5n),d8n),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),NRe),j3e),o$e),ygn(p3e))));V4(e,k5n,v5n,$Re);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,y5n),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),T3e),Yhe),ygn(p3e))));V4(e,y5n,v5n,FRe);ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,M5n),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),j3e),UBe),ygn(v3e))));V4(e,M5n,v5n,GRe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,T5n),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),HRe),j3e),UBe),ygn(p3e))));V4(e,T5n,v5n,URe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,j5n),g8n),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),zxe),j3e),CHe),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,E5n),g8n),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),Qxe),j3e),NHe),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,S5n),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),Yxe),j3e),FHe),ygn(p3e))));V4(e,S5n,v8n,Zxe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,P5n),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),T3e),Yhe),ygn(p3e))));V4(e,P5n,v8n,eRe);V4(e,P5n,S5n,tRe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,C5n),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),T3e),Yhe),ygn(p3e))));V4(e,C5n,v8n,Xxe);ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,I5n),p8n),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,O5n),p8n),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,A5n),p8n),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,L5n),p8n),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,N5n),m8n),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),Bwn(0)),S3e),tle),ygn(d3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,$5n),m8n),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),Bwn(0)),S3e),tle),ygn(d3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,D5n),m8n),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),Bwn(0)),S3e),tle),ygn(d3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,x5n),k8n),T3n),"Tries to further compact components (disconnected sub-graphs)."),false),M3e),Uhe),ygn(p3e))));V4(e,x5n,o4n,true);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,R5n),y8n),"Post Compaction Strategy"),M8n),uxe),j3e),v$e),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,K5n),y8n),"Post Compaction Constraint Calculation"),M8n),axe),j3e),vNe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,F5n),T8n),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,_5n),T8n),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),Bwn(16)),S3e),tle),ygn(p3e))));V4(e,_5n,F5n,true);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,B5n),T8n),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),Bwn(5)),S3e),tle),ygn(p3e))));V4(e,B5n,F5n,true);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,H5n),j8n),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),SKe),j3e),WHe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,U5n),j8n),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),T3e),Yhe),ygn(p3e))));V4(e,U5n,H5n,aKe);V4(e,U5n,H5n,cKe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,G5n),j8n),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),T3e),Yhe),ygn(p3e))));V4(e,G5n,H5n,sKe);V4(e,G5n,H5n,oKe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,q5n),E8n),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),gKe),j3e),PNe),ygn(p3e))));V4(e,q5n,H5n,vKe);V4(e,q5n,H5n,pKe);ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,X5n),E8n),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),P3e),uue),ygn(p3e))));V4(e,X5n,q5n,hKe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,V5n),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),bKe),S3e),tle),ygn(p3e))));V4(e,V5n,q5n,wKe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,z5n),S8n),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),AKe),j3e),GHe),ygn(p3e))));V4(e,z5n,H5n,LKe);V4(e,z5n,H5n,NKe);ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,W5n),S8n),"Valid Indices for Wrapping"),null),P3e),uue),ygn(p3e))));V4(e,W5n,H5n,CKe);V4(e,W5n,H5n,IKe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Q5n),P8n),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),true),M3e),Uhe),ygn(p3e))));V4(e,Q5n,H5n,MKe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,J5n),P8n),"Distance Penalty When Improving Cuts"),null),2),T3e),Yhe),ygn(p3e))));V4(e,J5n,H5n,kKe);V4(e,J5n,Q5n,true);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Y5n),P8n),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),true),M3e),Uhe),ygn(p3e))));V4(e,Y5n,H5n,jKe);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Z5n),C8n),"Edge Label Side Selection"),"Method to decide on edge label sides."),Gxe),j3e),JNe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,n8n),C8n),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),Hxe),j3e),bNe),nV(p3e,zfn(fT(k3e,1),g1n,170,0,[g3e])))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,e8n),I8n),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),vxe),j3e),wHe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,t8n),I8n),"Consider Port Order"),"If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,r8n),I8n),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),false),M3e),Uhe),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,i8n),I8n),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),oxe),j3e),lje),ygn(p3e))));V4(e,i8n,o4n,null);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,a8n),I8n),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),bxe),j3e),RBe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,c8n),I8n),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),T3e),Yhe),ygn(p3e))));V4(e,c8n,e8n,null);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,u8n),I8n),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),T3e),Yhe),ygn(p3e))));V4(e,u8n,e8n,null);uZn((new vl,e))};var txe,rxe,ixe,axe,cxe,uxe,sxe,oxe,fxe,hxe,lxe,bxe,wxe,dxe,gxe,vxe,pxe,mxe,kxe,yxe,Mxe,Txe,jxe,Exe,Sxe,Pxe,Cxe,Ixe,Oxe,Axe,Lxe,Nxe,$xe,Dxe,xxe,Rxe,Kxe,Fxe,_xe,Bxe,Hxe,Uxe,Gxe,qxe,Xxe,Vxe,zxe,Wxe,Qxe,Jxe,Yxe,Zxe,nRe,eRe,tRe,rRe,iRe,aRe,cRe,uRe,sRe,oRe,fRe,hRe,lRe,bRe,wRe,dRe,gRe,vRe,pRe,mRe,kRe,yRe,MRe,TRe,jRe,ERe,SRe,PRe,CRe,IRe,ORe,ARe,LRe,NRe,$Re,DRe,xRe,RRe,KRe,FRe,_Re,BRe,HRe,URe,GRe,qRe,XRe,VRe,zRe,WRe,QRe,JRe,YRe,ZRe,nKe,eKe,tKe,rKe,iKe,aKe,cKe,uKe,sKe,oKe,fKe,hKe,lKe,bKe,wKe,dKe,gKe,vKe,pKe,mKe,kKe,yKe,MKe,TKe,jKe,EKe,SKe,PKe,CKe,IKe,OKe,AKe,LKe,NKe;var $Ke=YW(N6n,"LayeredMetaDataProvider",859);wDn(998,1,R2n,vl);lce.hf=function n(e){uZn(e)};var DKe,xKe,RKe,KKe,FKe,_Ke,BKe,HKe,UKe,GKe,qKe,XKe,VKe,zKe,WKe,QKe,JKe,YKe,ZKe,nFe,eFe,tFe,rFe,iFe,aFe,cFe,uFe,sFe,oFe,fFe,hFe,lFe,bFe,wFe,dFe,gFe,vFe,pFe,mFe,kFe,yFe,MFe,TFe,jFe,EFe,SFe,PFe,CFe,IFe,OFe,AFe,LFe,NFe,$Fe,DFe,xFe,RFe,KFe,FFe,_Fe,BFe,HFe,UFe,GFe,qFe,XFe,VFe,zFe,WFe,QFe,JFe,YFe,ZFe,n_e,e_e,t_e,r_e,i_e,a_e,c_e,u_e,s_e,o_e,f_e,h_e,l_e,b_e,w_e,d_e,g_e,v_e,p_e,m_e,k_e,y_e,M_e,T_e,j_e,E_e,S_e,P_e,C_e,I_e,O_e,A_e,L_e,N_e,$_e,D_e,x_e,R_e,K_e,F_e,__e,B_e,H_e,U_e,G_e,q_e,X_e,V_e,z_e,W_e,Q_e,J_e,Y_e,Z_e,nBe,eBe,tBe,rBe,iBe,aBe,cBe,uBe,sBe,oBe,fBe,hBe,lBe,bBe,wBe,dBe;var gBe=YW(N6n,"LayeredOptions",998);wDn(999,1,{},Ca);lce.sf=function n(){var e;return e=new Tk,e};lce.tf=function n(e){};var vBe=YW(N6n,"LayeredOptions/LayeredFactory",999);wDn(1391,1,{});lce.a=0;var pBe;var mBe=YW(g9n,"ElkSpacings/AbstractSpacingsBuilder",1391);wDn(792,1391,{},lpn);var kBe,yBe;var MBe=YW(N6n,"LayeredSpacings/LayeredSpacingsBuilder",792);wDn(265,22,{3:1,34:1,22:1,265:1,188:1,196:1},gI);lce.dg=function n(){return tBn(this)};lce.qg=function n(){return tBn(this)};var TBe,jBe,EBe,SBe,PBe,CBe,IBe,OBe,ABe;var LBe=qan(N6n,"LayeringStrategy",265,joe,ccn,pH);var NBe;wDn(390,22,{3:1,34:1,22:1,390:1},vI);var $Be,DBe,xBe;var RBe=qan(N6n,"LongEdgeOrderingStrategy",390,joe,J2,mH);var KBe;wDn(203,22,{3:1,34:1,22:1,203:1},pI);var FBe,_Be,BBe,HBe;var UBe=qan(N6n,"NodeFlexibility",203,joe,Q6,kH);var GBe;wDn(323,22,{3:1,34:1,22:1,323:1,188:1,196:1},mI);lce.dg=function n(){return $Dn(this)};lce.qg=function n(){return $Dn(this)};var qBe,XBe,VBe,zBe,WBe;var QBe=qan(N6n,"NodePlacementStrategy",323,joe,g9,yH);var JBe;wDn(243,22,{3:1,34:1,22:1,243:1},kI);var YBe,ZBe,nHe,eHe,tHe,rHe,iHe,aHe,cHe,uHe;var sHe=qan(N6n,"NodePromotionStrategy",243,joe,bsn,MH);var oHe;wDn(284,22,{3:1,34:1,22:1,284:1},yI);var fHe,hHe,lHe,bHe;var wHe=qan(N6n,"OrderingStrategy",284,joe,J6,TH);var dHe;wDn(430,22,{3:1,34:1,22:1,430:1},MI);var gHe,vHe;var pHe=qan(N6n,"PortSortingStrategy",430,joe,k1,jH);var mHe;wDn(463,22,{3:1,34:1,22:1,463:1},TI);var kHe,yHe,MHe;var THe=qan(N6n,"PortType",463,joe,Y2,EH);var jHe;wDn(387,22,{3:1,34:1,22:1,387:1},jI);var EHe,SHe,PHe;var CHe=qan(N6n,"SelfLoopDistributionStrategy",387,joe,Z2,SH);var IHe;wDn(349,22,{3:1,34:1,22:1,349:1},EI);var OHe,AHe,LHe;var NHe=qan(N6n,"SelfLoopOrderingStrategy",349,joe,n3,PH);var $He;wDn(312,1,{312:1},Nzn);var DHe=YW(N6n,"Spacings",312);wDn(350,22,{3:1,34:1,22:1,350:1},SI);var xHe,RHe,KHe;var FHe=qan(N6n,"SplineRoutingMode",350,joe,e3,CH);var _He;wDn(352,22,{3:1,34:1,22:1,352:1},PI);var BHe,HHe,UHe;var GHe=qan(N6n,"ValidifyStrategy",352,joe,t3,IH);var qHe;wDn(388,22,{3:1,34:1,22:1,388:1},CI);var XHe,VHe,zHe;var WHe=qan(N6n,"WrappingStrategy",388,joe,r3,OH);var QHe;wDn(1398,1,k9n,sl);lce.rg=function n(e){return bG(e,36),JHe};lce.Kf=function n(e,t){MVn(this,bG(e,36),t)};var JHe;var YHe=YW(y9n,"DepthFirstCycleBreaker",1398);wDn(793,1,k9n,uV);lce.rg=function n(e){return bG(e,36),ZHe};lce.Kf=function n(e,t){yYn(this,bG(e,36),t)};lce.sg=function n(e){return bG(Yq(e,sMn(this.d,e.c.length)),10)};var ZHe;var nUe=YW(y9n,"GreedyCycleBreaker",793);wDn(1401,793,k9n,cL);lce.sg=function n(e){var t,r,i,a;a=null;t=pZn;for(i=new nd(e);i.a1){lM(yK(lIn(VQ((b3(0,e.c.length),bG(e.c[0],10))),(IYn(),QKe))))?xxn(e,this.d,bG(this,669)):(dZ(),g$(e,this.d));Bon(this.e,e)}};lce.lg=function n(e,t,r,i){var a,c,u,s,o,f,h;if(t!=jX(r,e.length)){c=e[t-(r?1:-1)];j7(this.f,c,r?(fcn(),yHe):(fcn(),kHe))}a=e[t][0];h=!i||a.k==(YIn(),nEe);f=a7(e[t]);this.vg(f,h,false,r);u=0;for(o=new nd(f);o.a");e0?(I0(this.a,e[t-1],e[t]),undefined):!r&&t1){lM(yK(lIn(VQ((b3(0,e.c.length),bG(e.c[0],10))),(IYn(),QKe))))?xxn(e,this.d,this):(dZ(),g$(e,this.d));lM(yK(lIn(VQ((b3(0,e.c.length),bG(e.c[0],10))),QKe)))||Bon(this.e,e)}};var aGe=YW(E9n,"ModelOrderBarycenterHeuristic",669);wDn(1866,1,l2n,iv);lce.Ne=function n(e,t){return COn(this.a,bG(e,10),bG(t,10))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var cGe=YW(E9n,"ModelOrderBarycenterHeuristic/lambda$0$Type",1866);wDn(1423,1,k9n,ml);lce.rg=function n(e){var t;return bG(e,36),t=hN(uGe),xq(t,(bIn(),aTe),(YYn(),ZPe)),t};lce.Kf=function n(e,t){IY((bG(e,36),t))};var uGe;var sGe=YW(E9n,"NoCrossingMinimizer",1423);wDn(809,413,T9n,oj);lce.tg=function n(e,t,r){var i,a,c,u,s,o,f,h,l,b,w;l=this.g;switch(r.g){case 1:{a=0;c=0;for(h=new nd(e.j);h.a1&&(a.j==(UQn(),$8e)?this.b[e]=true:a.j==n9e&&e>0&&(this.b[e-1]=true))};lce.f=0;var hGe=YW(S6n,"AllCrossingsCounter",1861);wDn(595,1,{},_un);lce.b=0;lce.d=0;var lGe=YW(S6n,"BinaryIndexedTree",595);wDn(532,1,{},H_);var bGe,wGe;var dGe=YW(S6n,"CrossingsCounter",532);wDn(1950,1,l2n,av);lce.Ne=function n(e,t){return mX(this.a,bG(e,12),bG(t,12))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var gGe=YW(S6n,"CrossingsCounter/lambda$0$Type",1950);wDn(1951,1,l2n,cv);lce.Ne=function n(e,t){return kX(this.a,bG(e,12),bG(t,12))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var vGe=YW(S6n,"CrossingsCounter/lambda$1$Type",1951);wDn(1952,1,l2n,uv);lce.Ne=function n(e,t){return yX(this.a,bG(e,12),bG(t,12))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var pGe=YW(S6n,"CrossingsCounter/lambda$2$Type",1952);wDn(1953,1,l2n,sv);lce.Ne=function n(e,t){return MX(this.a,bG(e,12),bG(t,12))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var mGe=YW(S6n,"CrossingsCounter/lambda$3$Type",1953);wDn(1954,1,WZn,ov);lce.Cd=function n(e){ftn(this.a,bG(e,12))};var kGe=YW(S6n,"CrossingsCounter/lambda$4$Type",1954);wDn(1955,1,k1n,fv);lce.Mb=function n(e){return KI(this.a,bG(e,12))};var yGe=YW(S6n,"CrossingsCounter/lambda$5$Type",1955);wDn(1956,1,WZn,hv);lce.Cd=function n(e){PA(this,e)};var MGe=YW(S6n,"CrossingsCounter/lambda$6$Type",1956);wDn(1957,1,WZn,OI);lce.Cd=function n(e){var t;LU();x6(this.b,(t=this.a,bG(e,12),t))};var TGe=YW(S6n,"CrossingsCounter/lambda$7$Type",1957);wDn(839,1,O2n,Ka);lce.Lb=function n(e){return LU(),jR(bG(e,12),(WYn(),NDe))};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return LU(),jR(bG(e,12),(WYn(),NDe))};var jGe=YW(S6n,"CrossingsCounter/lambda$8$Type",839);wDn(1949,1,{},lv);var EGe=YW(S6n,"HyperedgeCrossingsCounter",1949);wDn(478,1,{34:1,478:1},XF);lce.Fd=function n(e){return qmn(this,bG(e,478))};lce.b=0;lce.c=0;lce.e=0;lce.f=0;var SGe=YW(S6n,"HyperedgeCrossingsCounter/Hyperedge",478);wDn(374,1,{34:1,374:1},pY);lce.Fd=function n(e){return uxn(this,bG(e,374))};lce.b=0;lce.c=0;var PGe=YW(S6n,"HyperedgeCrossingsCounter/HyperedgeCorner",374);wDn(531,22,{3:1,34:1,22:1,531:1},AI);var CGe,IGe;var OGe=qan(S6n,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",531,joe,y1,LH);var AGe;wDn(1425,1,k9n,kl);lce.rg=function n(e){return bG(lIn(bG(e,36),(WYn(),oDe)),21).Hc((o_n(),M$e))?LGe:null};lce.Kf=function n(e,t){VEn(this,bG(e,36),t)};var LGe;var NGe=YW(S9n,"InteractiveNodePlacer",1425);wDn(1426,1,k9n,yl);lce.rg=function n(e){return bG(lIn(bG(e,36),(WYn(),oDe)),21).Hc((o_n(),M$e))?$Ge:null};lce.Kf=function n(e,t){JMn(this,bG(e,36),t)};var $Ge,DGe,xGe;var RGe=YW(S9n,"LinearSegmentsNodePlacer",1426);wDn(261,1,{34:1,261:1},Ck);lce.Fd=function n(e){return NT(this,bG(e,261))};lce.Fb=function n(e){var t;if(G$(e,261)){t=bG(e,261);return this.b==t.b}return false};lce.Hb=function n(){return this.b};lce.Ib=function n(){return"ls"+jIn(this.e)};lce.a=0;lce.b=0;lce.c=-1;lce.d=-1;lce.g=0;var KGe=YW(S9n,"LinearSegmentsNodePlacer/LinearSegment",261);wDn(1428,1,k9n,sV);lce.rg=function n(e){return bG(lIn(bG(e,36),(WYn(),oDe)),21).Hc((o_n(),M$e))?FGe:null};lce.Kf=function n(e,t){nYn(this,bG(e,36),t)};lce.b=0;lce.g=0;var FGe;var _Ge=YW(S9n,"NetworkSimplexPlacer",1428);wDn(1447,1,l2n,Fa);lce.Ne=function n(e,t){return k$(bG(e,17).a,bG(t,17).a)};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var BGe=YW(S9n,"NetworkSimplexPlacer/0methodref$compare$Type",1447);wDn(1449,1,l2n,_a);lce.Ne=function n(e,t){return k$(bG(e,17).a,bG(t,17).a)};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var HGe=YW(S9n,"NetworkSimplexPlacer/1methodref$compare$Type",1449);wDn(655,1,{655:1},LI);var UGe=YW(S9n,"NetworkSimplexPlacer/EdgeRep",655);wDn(412,1,{412:1},mY);lce.b=false;var GGe=YW(S9n,"NetworkSimplexPlacer/NodeRep",412);wDn(515,13,{3:1,4:1,20:1,31:1,56:1,13:1,16:1,15:1,59:1,515:1},Nk);var qGe=YW(S9n,"NetworkSimplexPlacer/Path",515);wDn(1429,1,{},Ba);lce.Kb=function n(e){return bG(e,18).d.i.k};var XGe=YW(S9n,"NetworkSimplexPlacer/Path/lambda$0$Type",1429);wDn(1430,1,k1n,Ha);lce.Mb=function n(e){return bG(e,273)==(YIn(),tEe)};var VGe=YW(S9n,"NetworkSimplexPlacer/Path/lambda$1$Type",1430);wDn(1431,1,{},Ua);lce.Kb=function n(e){return bG(e,18).d.i};var zGe=YW(S9n,"NetworkSimplexPlacer/Path/lambda$2$Type",1431);wDn(1432,1,k1n,bv);lce.Mb=function n(e){return YK($pn(bG(e,10)))};var WGe=YW(S9n,"NetworkSimplexPlacer/Path/lambda$3$Type",1432);wDn(1433,1,k1n,Ga);lce.Mb=function n(e){return Tq(bG(e,12))};var QGe=YW(S9n,"NetworkSimplexPlacer/lambda$0$Type",1433);wDn(1434,1,WZn,NI);lce.Cd=function n(e){P$(this.a,this.b,bG(e,12))};var JGe=YW(S9n,"NetworkSimplexPlacer/lambda$1$Type",1434);wDn(1443,1,WZn,wv);lce.Cd=function n(e){GLn(this.a,bG(e,18))};var YGe=YW(S9n,"NetworkSimplexPlacer/lambda$10$Type",1443);wDn(1444,1,{},qa);lce.Kb=function n(e){return a2(),new gX(null,new d3(bG(e,30).a,16))};var ZGe=YW(S9n,"NetworkSimplexPlacer/lambda$11$Type",1444);wDn(1445,1,WZn,dv);lce.Cd=function n(e){__n(this.a,bG(e,10))};var nqe=YW(S9n,"NetworkSimplexPlacer/lambda$12$Type",1445);wDn(1446,1,{},Xa);lce.Kb=function n(e){return a2(),Bwn(bG(e,125).e)};var eqe=YW(S9n,"NetworkSimplexPlacer/lambda$13$Type",1446);wDn(1448,1,{},Va);lce.Kb=function n(e){return a2(),Bwn(bG(e,125).e)};var tqe=YW(S9n,"NetworkSimplexPlacer/lambda$15$Type",1448);wDn(1450,1,k1n,za);lce.Mb=function n(e){return a2(),bG(e,412).c.k==(YIn(),rEe)};var rqe=YW(S9n,"NetworkSimplexPlacer/lambda$17$Type",1450);wDn(1451,1,k1n,Wa);lce.Mb=function n(e){return a2(),bG(e,412).c.j.c.length>1};var iqe=YW(S9n,"NetworkSimplexPlacer/lambda$18$Type",1451);wDn(1452,1,WZn,kY);lce.Cd=function n(e){_vn(this.c,this.b,this.d,this.a,bG(e,412))};lce.c=0;lce.d=0;var aqe=YW(S9n,"NetworkSimplexPlacer/lambda$19$Type",1452);wDn(1435,1,{},Qa);lce.Kb=function n(e){return a2(),new gX(null,new d3(bG(e,30).a,16))};var cqe=YW(S9n,"NetworkSimplexPlacer/lambda$2$Type",1435);wDn(1453,1,WZn,gv);lce.Cd=function n(e){I$(this.a,bG(e,12))};lce.a=0;var uqe=YW(S9n,"NetworkSimplexPlacer/lambda$20$Type",1453);wDn(1454,1,{},Ja);lce.Kb=function n(e){return a2(),new gX(null,new d3(bG(e,30).a,16))};var sqe=YW(S9n,"NetworkSimplexPlacer/lambda$21$Type",1454);wDn(1455,1,WZn,vv);lce.Cd=function n(e){bD(this.a,bG(e,10))};var oqe=YW(S9n,"NetworkSimplexPlacer/lambda$22$Type",1455);wDn(1456,1,k1n,Ya);lce.Mb=function n(e){return YK(e)};var fqe=YW(S9n,"NetworkSimplexPlacer/lambda$23$Type",1456);wDn(1457,1,{},Za);lce.Kb=function n(e){return a2(),new gX(null,new d3(bG(e,30).a,16))};var hqe=YW(S9n,"NetworkSimplexPlacer/lambda$24$Type",1457);wDn(1458,1,k1n,pv);lce.Mb=function n(e){return HL(this.a,bG(e,10))};var lqe=YW(S9n,"NetworkSimplexPlacer/lambda$25$Type",1458);wDn(1459,1,WZn,$I);lce.Cd=function n(e){FOn(this.a,this.b,bG(e,10))};var bqe=YW(S9n,"NetworkSimplexPlacer/lambda$26$Type",1459);wDn(1460,1,k1n,nc);lce.Mb=function n(e){return a2(),!j9(bG(e,18))};var wqe=YW(S9n,"NetworkSimplexPlacer/lambda$27$Type",1460);wDn(1461,1,k1n,ec);lce.Mb=function n(e){return a2(),!j9(bG(e,18))};var dqe=YW(S9n,"NetworkSimplexPlacer/lambda$28$Type",1461);wDn(1462,1,{},mv);lce.Ve=function n(e,t){return C$(this.a,bG(e,30),bG(t,30))};var gqe=YW(S9n,"NetworkSimplexPlacer/lambda$29$Type",1462);wDn(1436,1,{},tc);lce.Kb=function n(e){return a2(),new gX(null,new RW(new GV(sx(Jgn(bG(e,10)).a.Kc(),new d))))};var vqe=YW(S9n,"NetworkSimplexPlacer/lambda$3$Type",1436);wDn(1437,1,k1n,rc);lce.Mb=function n(e){return a2(),d6(bG(e,18))};var pqe=YW(S9n,"NetworkSimplexPlacer/lambda$4$Type",1437);wDn(1438,1,WZn,kv);lce.Cd=function n(e){jqn(this.a,bG(e,18))};var mqe=YW(S9n,"NetworkSimplexPlacer/lambda$5$Type",1438);wDn(1439,1,{},ic);lce.Kb=function n(e){return a2(),new gX(null,new d3(bG(e,30).a,16))};var kqe=YW(S9n,"NetworkSimplexPlacer/lambda$6$Type",1439);wDn(1440,1,k1n,ac);lce.Mb=function n(e){return a2(),bG(e,10).k==(YIn(),rEe)};var yqe=YW(S9n,"NetworkSimplexPlacer/lambda$7$Type",1440);wDn(1441,1,{},cc);lce.Kb=function n(e){return a2(),new gX(null,new RW(new GV(sx(Wgn(bG(e,10)).a.Kc(),new d))))};var Mqe=YW(S9n,"NetworkSimplexPlacer/lambda$8$Type",1441);wDn(1442,1,k1n,uc);lce.Mb=function n(e){return a2(),Mq(bG(e,18))};var Tqe=YW(S9n,"NetworkSimplexPlacer/lambda$9$Type",1442);wDn(1424,1,k9n,Ml);lce.rg=function n(e){return bG(lIn(bG(e,36),(WYn(),oDe)),21).Hc((o_n(),M$e))?jqe:null};lce.Kf=function n(e,t){HXn(bG(e,36),t)};var jqe;var Eqe=YW(S9n,"SimpleNodePlacer",1424);wDn(185,1,{185:1},ZHn);lce.Ib=function n(){var e;e="";this.c==(p0(),Cqe)?e+=V2n:this.c==Pqe&&(e+=X2n);this.o==(m0(),Aqe)?e+=i3n:this.o==Lqe?e+="UP":e+="BALANCED";return e};var Sqe=YW(I9n,"BKAlignedLayout",185);wDn(523,22,{3:1,34:1,22:1,523:1},DI);var Pqe,Cqe;var Iqe=qan(I9n,"BKAlignedLayout/HDirection",523,joe,T1,NH);var Oqe;wDn(522,22,{3:1,34:1,22:1,522:1},xI);var Aqe,Lqe;var Nqe=qan(I9n,"BKAlignedLayout/VDirection",522,joe,j1,$H);var $qe;wDn(1699,1,{},RI);var Dqe=YW(I9n,"BKAligner",1699);wDn(1702,1,{},Bjn);var xqe=YW(I9n,"BKCompactor",1702);wDn(663,1,{663:1},sc);lce.a=0;var Rqe=YW(I9n,"BKCompactor/ClassEdge",663);wDn(467,1,{467:1},Ok);lce.a=null;lce.b=0;var Kqe=YW(I9n,"BKCompactor/ClassNode",467);wDn(1427,1,k9n,GI);lce.rg=function n(e){return bG(lIn(bG(e,36),(WYn(),oDe)),21).Hc((o_n(),M$e))?Fqe:null};lce.Kf=function n(e,t){FYn(this,bG(e,36),t)};lce.d=false;var Fqe;var _qe=YW(I9n,"BKNodePlacer",1427);wDn(1700,1,{},oc);lce.d=0;var Bqe=YW(I9n,"NeighborhoodInformation",1700);wDn(1701,1,l2n,yv);lce.Ne=function n(e,t){return jin(this,bG(e,42),bG(t,42))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Hqe=YW(I9n,"NeighborhoodInformation/NeighborComparator",1701);wDn(823,1,{});var Uqe=YW(I9n,"ThresholdStrategy",823);wDn(1825,823,{},Ak);lce.wg=function n(e,t,r){return this.a.o==(m0(),Lqe)?y0n:M0n};lce.xg=function n(){};var Gqe=YW(I9n,"ThresholdStrategy/NullThresholdStrategy",1825);wDn(587,1,{587:1},qI);lce.c=false;lce.d=false;var qqe=YW(I9n,"ThresholdStrategy/Postprocessable",587);wDn(1826,823,{},Lk);lce.wg=function n(e,t,r){var i,a,c;a=t==r;i=this.a.a[r.p]==t;if(!(a||i)){return e}c=e;if(this.a.c==(p0(),Cqe)){a&&(c=GXn(this,t,true));!isNaN(c)&&!isFinite(c)&&i&&(c=GXn(this,r,false))}else{a&&(c=GXn(this,t,true));!isNaN(c)&&!isFinite(c)&&i&&(c=GXn(this,r,false))}return c};lce.xg=function n(){var e,t,r,i,a;while(this.d.b!=0){a=bG(V1(this.d),587);i=mGn(this,a);if(!i.a){continue}e=i.a;r=lM(this.a.f[this.a.g[a.b.p].p]);if(!r&&!j9(e)&&e.c.i.c==e.d.i.c){continue}t=sxn(this,a);t||ZL(this.e,a)}while(this.e.a.c.length!=0){sxn(this,bG(lbn(this.e),587))}};var Xqe=YW(I9n,"ThresholdStrategy/SimpleThresholdStrategy",1826);wDn(645,1,{645:1,188:1,196:1},fc);lce.dg=function n(){return Gon(this)};lce.qg=function n(){return Gon(this)};var Vqe;var zqe=YW(O9n,"EdgeRouterFactory",645);wDn(1485,1,k9n,Tl);lce.rg=function n(e){return HFn(bG(e,36))};lce.Kf=function n(e,t){nVn(bG(e,36),t)};var Wqe,Qqe,Jqe,Yqe,Zqe,nXe,eXe,tXe;var rXe=YW(O9n,"OrthogonalEdgeRouter",1485);wDn(1478,1,k9n,UI);lce.rg=function n(e){return lSn(bG(e,36))};lce.Kf=function n(e,t){JQn(this,bG(e,36),t)};var iXe,aXe,cXe,uXe,sXe,oXe;var fXe=YW(O9n,"PolylineEdgeRouter",1478);wDn(1479,1,O2n,lc);lce.Lb=function n(e){return wfn(bG(e,10))};lce.Fb=function n(e){return this===e};lce.Mb=function n(e){return wfn(bG(e,10))};var hXe=YW(O9n,"PolylineEdgeRouter/1",1479);wDn(1872,1,k1n,bc);lce.Mb=function n(e){return bG(e,132).c==(q7(),kXe)};var lXe=YW(A9n,"HyperEdgeCycleDetector/lambda$0$Type",1872);wDn(1873,1,{},wc);lce.Ze=function n(e){return bG(e,132).d};var bXe=YW(A9n,"HyperEdgeCycleDetector/lambda$1$Type",1873);wDn(1874,1,k1n,dc);lce.Mb=function n(e){return bG(e,132).c==(q7(),kXe)};var wXe=YW(A9n,"HyperEdgeCycleDetector/lambda$2$Type",1874);wDn(1875,1,{},gc);lce.Ze=function n(e){return bG(e,132).d};var dXe=YW(A9n,"HyperEdgeCycleDetector/lambda$3$Type",1875);wDn(1876,1,{},vc);lce.Ze=function n(e){return bG(e,132).d};var gXe=YW(A9n,"HyperEdgeCycleDetector/lambda$4$Type",1876);wDn(1877,1,{},hc);lce.Ze=function n(e){return bG(e,132).d};var vXe=YW(A9n,"HyperEdgeCycleDetector/lambda$5$Type",1877);wDn(118,1,{34:1,118:1},afn);lce.Fd=function n(e){return $T(this,bG(e,118))};lce.Fb=function n(e){var t;if(G$(e,118)){t=bG(e,118);return this.g==t.g}return false};lce.Hb=function n(){return this.g};lce.Ib=function n(){var e,t,r,i;e=new vx("{");i=new nd(this.n);while(i.a"+this.b+" ("+SR(this.c)+")"};lce.d=0;var mXe=YW(A9n,"HyperEdgeSegmentDependency",132);wDn(528,22,{3:1,34:1,22:1,528:1},QI);var kXe,yXe;var MXe=qan(A9n,"HyperEdgeSegmentDependency/DependencyType",528,joe,E1,DH);var TXe;wDn(1878,1,{},Mv);var jXe=YW(A9n,"HyperEdgeSegmentSplitter",1878);wDn(1879,1,{},dj);lce.a=0;lce.b=0;var EXe=YW(A9n,"HyperEdgeSegmentSplitter/AreaRating",1879);wDn(339,1,{339:1},DU);lce.a=0;lce.b=0;lce.c=0;var SXe=YW(A9n,"HyperEdgeSegmentSplitter/FreeArea",339);wDn(1880,1,l2n,pc);lce.Ne=function n(e,t){return N_(bG(e,118),bG(t,118))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var PXe=YW(A9n,"HyperEdgeSegmentSplitter/lambda$0$Type",1880);wDn(1881,1,WZn,MY);lce.Cd=function n(e){$5(this.a,this.d,this.c,this.b,bG(e,118))};lce.b=0;var CXe=YW(A9n,"HyperEdgeSegmentSplitter/lambda$1$Type",1881);wDn(1882,1,{},mc);lce.Kb=function n(e){return new gX(null,new d3(bG(e,118).e,16))};var IXe=YW(A9n,"HyperEdgeSegmentSplitter/lambda$2$Type",1882);wDn(1883,1,{},kc);lce.Kb=function n(e){return new gX(null,new d3(bG(e,118).j,16))};var OXe=YW(A9n,"HyperEdgeSegmentSplitter/lambda$3$Type",1883);wDn(1884,1,{},yc);lce.Ye=function n(e){return bM(MK(e))};var AXe=YW(A9n,"HyperEdgeSegmentSplitter/lambda$4$Type",1884);wDn(664,1,{},KW);lce.a=0;lce.b=0;lce.c=0;var LXe=YW(A9n,"OrthogonalRoutingGenerator",664);wDn(1703,1,{},Mc);lce.Kb=function n(e){return new gX(null,new d3(bG(e,118).e,16))};var NXe=YW(A9n,"OrthogonalRoutingGenerator/lambda$0$Type",1703);wDn(1704,1,{},Tc);lce.Kb=function n(e){return new gX(null,new d3(bG(e,118).j,16))};var $Xe=YW(A9n,"OrthogonalRoutingGenerator/lambda$1$Type",1704);wDn(670,1,{});var DXe=YW(L9n,"BaseRoutingDirectionStrategy",670);wDn(1870,670,{},Hk);lce.yg=function n(e,r,i){var a,c,u,s,o,f,h,l,b,w,d,g,v;if(!!e.r&&!e.q){return}l=r+e.o*i;for(h=new nd(e.n);h.an4n){u=l;c=e;a=new PO(b,u);hq(s.a,a);ZUn(this,s,c,a,false);w=e.r;if(w){d=bM(MK(dyn(w.e,0)));a=new PO(d,u);hq(s.a,a);ZUn(this,s,c,a,false);u=r+w.o*i;c=w;a=new PO(d,u);hq(s.a,a);ZUn(this,s,c,a,false)}a=new PO(v,u);hq(s.a,a);ZUn(this,s,c,a,false)}}}}};lce.zg=function n(e){return e.i.n.a+e.n.a+e.a.a};lce.Ag=function n(){return UQn(),Y8e};lce.Bg=function n(){return UQn(),D8e};var xXe=YW(L9n,"NorthToSouthRoutingStrategy",1870);wDn(1871,670,{},Uk);lce.yg=function n(e,r,i){var a,c,u,s,o,f,h,l,b,w,d,g,v;if(!!e.r&&!e.q){return}l=r-e.o*i;for(h=new nd(e.n);h.an4n){u=l;c=e;a=new PO(b,u);hq(s.a,a);ZUn(this,s,c,a,false);w=e.r;if(w){d=bM(MK(dyn(w.e,0)));a=new PO(d,u);hq(s.a,a);ZUn(this,s,c,a,false);u=r-w.o*i;c=w;a=new PO(d,u);hq(s.a,a);ZUn(this,s,c,a,false)}a=new PO(v,u);hq(s.a,a);ZUn(this,s,c,a,false)}}}}};lce.zg=function n(e){return e.i.n.a+e.n.a+e.a.a};lce.Ag=function n(){return UQn(),D8e};lce.Bg=function n(){return UQn(),Y8e};var RXe=YW(L9n,"SouthToNorthRoutingStrategy",1871);wDn(1869,670,{},Gk);lce.yg=function n(e,r,i){var a,c,u,s,o,f,h,l,b,w,d,g,v;if(!!e.r&&!e.q){return}l=r+e.o*i;for(h=new nd(e.n);h.an4n){u=l;c=e;a=new PO(u,b);hq(s.a,a);ZUn(this,s,c,a,true);w=e.r;if(w){d=bM(MK(dyn(w.e,0)));a=new PO(u,d);hq(s.a,a);ZUn(this,s,c,a,true);u=r+w.o*i;c=w;a=new PO(u,d);hq(s.a,a);ZUn(this,s,c,a,true)}a=new PO(u,v);hq(s.a,a);ZUn(this,s,c,a,true)}}}}};lce.zg=function n(e){return e.i.n.b+e.n.b+e.a.b};lce.Ag=function n(){return UQn(),$8e};lce.Bg=function n(){return UQn(),n9e};var KXe=YW(L9n,"WestToEastRoutingStrategy",1869);wDn(828,1,{},Iqn);lce.Ib=function n(){return jIn(this.a)};lce.b=0;lce.c=false;lce.d=false;lce.f=0;var FXe=YW($9n,"NubSpline",828);wDn(418,1,{418:1},MFn,H1);var _Xe=YW($9n,"NubSpline/PolarCP",418);wDn(1480,1,k9n,YTn);lce.rg=function n(e){return VPn(bG(e,36))};lce.Kf=function n(e,t){OJn(this,bG(e,36),t)};var BXe,HXe,UXe,GXe,qXe;var XXe=YW($9n,"SplineEdgeRouter",1480);wDn(274,1,{274:1},D7);lce.Ib=function n(){return this.a+" ->("+this.c+") "+this.b};lce.c=0;var VXe=YW($9n,"SplineEdgeRouter/Dependency",274);wDn(465,22,{3:1,34:1,22:1,465:1},JI);var zXe,WXe;var QXe=qan($9n,"SplineEdgeRouter/SideToProcess",465,joe,A1,xH);var JXe;wDn(1481,1,k1n,jc);lce.Mb=function n(e){return bFn(),!bG(e,131).o};var YXe=YW($9n,"SplineEdgeRouter/lambda$0$Type",1481);wDn(1482,1,{},Ec);lce.Ze=function n(e){return bFn(),bG(e,131).v+1};var ZXe=YW($9n,"SplineEdgeRouter/lambda$1$Type",1482);wDn(1483,1,WZn,XI);lce.Cd=function n(e){Sq(this.a,this.b,bG(e,42))};var nVe=YW($9n,"SplineEdgeRouter/lambda$2$Type",1483);wDn(1484,1,WZn,VI);lce.Cd=function n(e){Pq(this.a,this.b,bG(e,42))};var eVe=YW($9n,"SplineEdgeRouter/lambda$3$Type",1484);wDn(131,1,{34:1,131:1},zAn,$Vn);lce.Fd=function n(e){return KT(this,bG(e,131))};lce.b=0;lce.e=false;lce.f=0;lce.g=0;lce.j=false;lce.k=false;lce.n=0;lce.o=false;lce.p=false;lce.q=false;lce.s=0;lce.u=0;lce.v=0;lce.F=0;var tVe=YW($9n,"SplineSegment",131);wDn(468,1,{468:1},Sc);lce.a=0;lce.b=false;lce.c=false;lce.d=false;lce.e=false;lce.f=0;var rVe=YW($9n,"SplineSegment/EdgeInformation",468);wDn(1198,1,{},Pc);var iVe=YW(F9n,G3n,1198);wDn(1199,1,l2n,Cc);lce.Ne=function n(e,t){return SNn(bG(e,121),bG(t,121))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var aVe=YW(F9n,q3n,1199);wDn(1197,1,{},Wj);var cVe=YW(F9n,"MrTree",1197);wDn(405,22,{3:1,34:1,22:1,405:1,188:1,196:1},YI);lce.dg=function n(){return CNn(this)};lce.qg=function n(){return CNn(this)};var uVe,sVe,oVe,fVe;var hVe=qan(F9n,"TreeLayoutPhases",405,joe,s5,RH);var lVe;wDn(1112,205,y3n,GF);lce.rf=function n(e,t){var r,i,a,c,u,s,o,f;lM(yK(YDn(e,(eqn(),EWe))))||t0((r=new Ad((jP(),new Zy(e))),r));u=t.eh(_9n);u.Ug("build tGraph",1);s=(o=new R7,Yon(o,e),Ehn(o,(DQn(),qze),e),f=new rm,IUn(e,o,f),uGn(e,o,f),o);u.Vg();u=t.eh(_9n);u.Ug("Split graph",1);c=xUn(this.a,s);u.Vg();for(a=new nd(c);a.a"+Z3(this.c):"e_"+Vun(this)};var SVe=YW(H9n,"TEdge",65);wDn(121,137,{3:1,121:1,96:1,137:1},R7);lce.Ib=function n(){var e,t,r,i,a;a=null;for(i=Gkn(this.b,0);i.b!=i.d.c;){r=bG($6(i),40);a+=(r.c==null||r.c.length==0?"n_"+r.g:"n_"+r.c)+"\n"}for(t=Gkn(this.a,0);t.b!=t.d.c;){e=bG($6(t),65);a+=(!!e.b&&!!e.c?Z3(e.b)+"->"+Z3(e.c):"e_"+Vun(e))+"\n"}return a};var PVe=YW(H9n,"TGraph",121);wDn(643,508,{3:1,508:1,643:1,96:1,137:1});var CVe=YW(H9n,"TShape",643);wDn(40,643,{3:1,508:1,40:1,643:1,96:1,137:1},mln);lce.Ib=function n(){return Z3(this)};var IVe=YW(H9n,"TNode",40);wDn(236,1,n1n,Pv);lce.Jc=function n(e){Y8(this,e)};lce.Kc=function n(){var e;return e=Gkn(this.a.d,0),new Cv(e)};var OVe=YW(H9n,"TNode/2",236);wDn(329,1,NZn,Cv);lce.Nb=function n(e){Az(this,e)};lce.Pb=function n(){return bG($6(this.a),65).c};lce.Ob=function n(){return tE(this.a)};lce.Qb=function n(){Sin(this.a)};var AVe=YW(H9n,"TNode/2/1",329);wDn(1923,1,W4n,Dc);lce.Kf=function n(e,t){AYn(this,bG(e,121),t)};var LVe=YW(G9n,"CompactionProcessor",1923);wDn(1924,1,l2n,Iv);lce.Ne=function n(e,t){return Eon(this.a,bG(e,40),bG(t,40))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var NVe=YW(G9n,"CompactionProcessor/lambda$0$Type",1924);wDn(1925,1,k1n,WI);lce.Mb=function n(e){return BZ(this.b,this.a,bG(e,42))};lce.a=0;lce.b=0;var $Ve=YW(G9n,"CompactionProcessor/lambda$1$Type",1925);wDn(1934,1,l2n,xc);lce.Ne=function n(e,t){return jW(bG(e,40),bG(t,40))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var DVe=YW(G9n,"CompactionProcessor/lambda$10$Type",1934);wDn(1935,1,l2n,Rc);lce.Ne=function n(e,t){return Ux(bG(e,40),bG(t,40))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var xVe=YW(G9n,"CompactionProcessor/lambda$11$Type",1935);wDn(1936,1,l2n,Kc);lce.Ne=function n(e,t){return EW(bG(e,40),bG(t,40))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var RVe=YW(G9n,"CompactionProcessor/lambda$12$Type",1936);wDn(1926,1,k1n,Ov);lce.Mb=function n(e){return dD(this.a,bG(e,42))};lce.a=0;var KVe=YW(G9n,"CompactionProcessor/lambda$2$Type",1926);wDn(1927,1,k1n,Av);lce.Mb=function n(e){return gD(this.a,bG(e,42))};lce.a=0;var FVe=YW(G9n,"CompactionProcessor/lambda$3$Type",1927);wDn(1928,1,k1n,Fc);lce.Mb=function n(e){return bG(e,40).c.indexOf(B9n)==-1};var _Ve=YW(G9n,"CompactionProcessor/lambda$4$Type",1928);wDn(1929,1,{},Lv);lce.Kb=function n(e){return h6(this.a,bG(e,40))};lce.a=0;var BVe=YW(G9n,"CompactionProcessor/lambda$5$Type",1929);wDn(1930,1,{},Nv);lce.Kb=function n(e){return otn(this.a,bG(e,40))};lce.a=0;var HVe=YW(G9n,"CompactionProcessor/lambda$6$Type",1930);wDn(1931,1,l2n,$v);lce.Ne=function n(e,t){return W9(this.a,bG(e,240),bG(t,240))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var UVe=YW(G9n,"CompactionProcessor/lambda$7$Type",1931);wDn(1932,1,l2n,Dv);lce.Ne=function n(e,t){return Q9(this.a,bG(e,40),bG(t,40))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var GVe=YW(G9n,"CompactionProcessor/lambda$8$Type",1932);wDn(1933,1,l2n,_c);lce.Ne=function n(e,t){return Gx(bG(e,40),bG(t,40))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var qVe=YW(G9n,"CompactionProcessor/lambda$9$Type",1933);wDn(1921,1,W4n,Bc);lce.Kf=function n(e,t){fBn(bG(e,121),t)};var XVe=YW(G9n,"DirectionProcessor",1921);wDn(1913,1,W4n,UF);lce.Kf=function n(e,t){tGn(this,bG(e,121),t)};var VVe=YW(G9n,"FanProcessor",1913);wDn(1937,1,W4n,Hc);lce.Kf=function n(e,t){K_n(bG(e,121),t)};var zVe=YW(G9n,"GraphBoundsProcessor",1937);wDn(1938,1,{},Uc);lce.Ye=function n(e){return bG(e,40).e.a};var WVe=YW(G9n,"GraphBoundsProcessor/lambda$0$Type",1938);wDn(1939,1,{},Gc);lce.Ye=function n(e){return bG(e,40).e.b};var QVe=YW(G9n,"GraphBoundsProcessor/lambda$1$Type",1939);wDn(1940,1,{},qc);lce.Ye=function n(e){return vP(bG(e,40))};var JVe=YW(G9n,"GraphBoundsProcessor/lambda$2$Type",1940);wDn(1941,1,{},Xc);lce.Ye=function n(e){return gP(bG(e,40))};var YVe=YW(G9n,"GraphBoundsProcessor/lambda$3$Type",1941);wDn(262,22,{3:1,34:1,22:1,262:1,196:1},ZI);lce.dg=function n(){switch(this.g){case 0:return new wy;case 1:return new UF;case 2:return new by;case 3:return new Jc;case 4:return new zc;case 8:return new Vc;case 5:return new Bc;case 6:return new Zc;case 7:return new Dc;case 9:return new Hc;case 10:return new nu;default:throw dm(new jM(p6n+(this.f!=null?this.f:""+this.g)))}};var ZVe,nze,eze,tze,rze,ize,aze,cze,uze,sze,oze;var fze=qan(G9n,m6n,262,joe,bon,KH);var hze;wDn(1920,1,W4n,Vc);lce.Kf=function n(e,t){BQn(bG(e,121),t)};var lze=YW(G9n,"LevelCoordinatesProcessor",1920);wDn(1918,1,W4n,zc);lce.Kf=function n(e,t){iKn(this,bG(e,121),t)};lce.a=0;var bze=YW(G9n,"LevelHeightProcessor",1918);wDn(1919,1,n1n,Wc);lce.Jc=function n(e){Y8(this,e)};lce.Kc=function n(){return dZ(),mS(),gbe};var wze=YW(G9n,"LevelHeightProcessor/1",1919);wDn(1914,1,W4n,by);lce.Kf=function n(e,t){y_n(this,bG(e,121),t)};var dze=YW(G9n,"LevelProcessor",1914);wDn(1915,1,k1n,Qc);lce.Mb=function n(e){return lM(yK(lIn(bG(e,40),(DQn(),Jze))))};var gze=YW(G9n,"LevelProcessor/lambda$0$Type",1915);wDn(1916,1,W4n,Jc);lce.Kf=function n(e,t){_An(this,bG(e,121),t)};lce.a=0;var vze=YW(G9n,"NeighborsProcessor",1916);wDn(1917,1,n1n,Yc);lce.Jc=function n(e){Y8(this,e)};lce.Kc=function n(){return dZ(),mS(),gbe};var pze=YW(G9n,"NeighborsProcessor/1",1917);wDn(1922,1,W4n,Zc);lce.Kf=function n(e,t){eGn(this,bG(e,121),t)};lce.a=0;var mze=YW(G9n,"NodePositionProcessor",1922);wDn(1912,1,W4n,wy);lce.Kf=function n(e,t){OVn(this,bG(e,121),t)};var kze=YW(G9n,"RootProcessor",1912);wDn(1942,1,W4n,nu);lce.Kf=function n(e,t){nMn(bG(e,121),t)};var yze=YW(G9n,"Untreeifyer",1942);wDn(392,22,{3:1,34:1,22:1,392:1},nO);var Mze,Tze,jze;var Eze=qan(z9n,"EdgeRoutingMode",392,joe,c3,FH);var Sze;var Pze,Cze,Ize,Oze,Aze,Lze,Nze,$ze,Dze,xze,Rze,Kze,Fze,_ze,Bze,Hze,Uze,Gze,qze,Xze,Vze,zze,Wze,Qze,Jze,Yze,Zze;wDn(862,1,R2n,jl);lce.hf=function n(e){ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Q9n),""),r7n),"Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level"),(Qx(),false)),(vAn(),M3e)),Uhe),ygn((Hkn(),p3e)))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,J9n),""),"Edge End Texture Length"),"Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing."),7),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Y9n),""),"Tree Level"),"The index for the tree level the node is in"),Bwn(0)),S3e),tle),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Z9n),""),r7n),"When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint"),Bwn(-1)),S3e),tle),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,n7n),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),oWe),j3e),zWe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,e7n),""),"Edge Routing Mode"),"Chooses an Edge Routing algorithm."),rWe),j3e),Eze),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,t7n),""),"Search Order"),"Which search order to use when computing a spanning tree."),cWe),j3e),YWe),ygn(p3e))));SJn((new Pl,e))};var nWe,eWe,tWe,rWe,iWe,aWe,cWe,uWe,sWe,oWe;var fWe=YW(z9n,"MrTreeMetaDataProvider",862);wDn(1006,1,R2n,Pl);lce.hf=function n(e){SJn(e)};var hWe,lWe,bWe,wWe,dWe,gWe,vWe,pWe,mWe,kWe,yWe,MWe,TWe,jWe,EWe,SWe,PWe,CWe,IWe,OWe,AWe,LWe,NWe,$We,DWe,xWe,RWe,KWe,FWe,_We,BWe;var HWe=YW(z9n,"MrTreeOptions",1006);wDn(1007,1,{},eu);lce.sf=function n(){var e;return e=new GF,e};lce.tf=function n(e){};var UWe=YW(z9n,"MrTreeOptions/MrtreeFactory",1007);wDn(353,22,{3:1,34:1,22:1,353:1},eO);var GWe,qWe,XWe,VWe;var zWe=qan(z9n,"OrderWeighting",353,joe,o5,_H);var WWe;wDn(433,22,{3:1,34:1,22:1,433:1},tO);var QWe,JWe;var YWe=qan(z9n,"TreeifyingOrder",433,joe,I1,BH);var ZWe;wDn(1486,1,k9n,Cl);lce.rg=function n(e){return bG(e,121),nQe};lce.Kf=function n(e,t){Fsn(this,bG(e,121),t)};var nQe;var eQe=YW("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1486);wDn(1487,1,k9n,Il);lce.rg=function n(e){return bG(e,121),tQe};lce.Kf=function n(e,t){O_n(this,bG(e,121),t)};var tQe;var rQe=YW(u7n,"NodeOrderer",1487);wDn(1494,1,{},vu);lce.td=function n(e){return Kq(e)};var iQe=YW(u7n,"NodeOrderer/0methodref$lambda$6$Type",1494);wDn(1488,1,k1n,pu);lce.Mb=function n(e){return aan(),lM(yK(lIn(bG(e,40),(DQn(),Jze))))};var aQe=YW(u7n,"NodeOrderer/lambda$0$Type",1488);wDn(1489,1,k1n,mu);lce.Mb=function n(e){return aan(),bG(lIn(bG(e,40),(eqn(),IWe)),17).a<0};var cQe=YW(u7n,"NodeOrderer/lambda$1$Type",1489);wDn(1490,1,k1n,Rv);lce.Mb=function n(e){return qcn(this.a,bG(e,40))};var uQe=YW(u7n,"NodeOrderer/lambda$2$Type",1490);wDn(1491,1,k1n,xv);lce.Mb=function n(e){return g6(this.a,bG(e,40))};var sQe=YW(u7n,"NodeOrderer/lambda$3$Type",1491);wDn(1492,1,l2n,ku);lce.Ne=function n(e,t){return gin(bG(e,40),bG(t,40))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var oQe=YW(u7n,"NodeOrderer/lambda$4$Type",1492);wDn(1493,1,k1n,yu);lce.Mb=function n(e){return aan(),bG(lIn(bG(e,40),(DQn(),Nze)),17).a!=0};var fQe=YW(u7n,"NodeOrderer/lambda$5$Type",1493);wDn(1495,1,k9n,Sl);lce.rg=function n(e){return bG(e,121),hQe};lce.Kf=function n(e,t){fUn(this,bG(e,121),t)};lce.b=0;var hQe;var lQe=YW("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1495);wDn(1496,1,k9n,El);lce.rg=function n(e){return bG(e,121),bQe};lce.Kf=function n(e,t){yHn(bG(e,121),t)};var bQe;var wQe=YW(s7n,"EdgeRouter",1496);wDn(1498,1,l2n,gu);lce.Ne=function n(e,t){return k$(bG(e,17).a,bG(t,17).a)};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var dQe=YW(s7n,"EdgeRouter/0methodref$compare$Type",1498);wDn(1503,1,{},ru);lce.Ye=function n(e){return bM(MK(e))};var gQe=YW(s7n,"EdgeRouter/1methodref$doubleValue$Type",1503);wDn(1505,1,l2n,iu);lce.Ne=function n(e,t){return bgn(bM(MK(e)),bM(MK(t)))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var vQe=YW(s7n,"EdgeRouter/2methodref$compare$Type",1505);wDn(1507,1,l2n,au);lce.Ne=function n(e,t){return bgn(bM(MK(e)),bM(MK(t)))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var pQe=YW(s7n,"EdgeRouter/3methodref$compare$Type",1507);wDn(1509,1,{},tu);lce.Ye=function n(e){return bM(MK(e))};var mQe=YW(s7n,"EdgeRouter/4methodref$doubleValue$Type",1509);wDn(1511,1,l2n,cu);lce.Ne=function n(e,t){return bgn(bM(MK(e)),bM(MK(t)))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var kQe=YW(s7n,"EdgeRouter/5methodref$compare$Type",1511);wDn(1513,1,l2n,uu);lce.Ne=function n(e,t){return bgn(bM(MK(e)),bM(MK(t)))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var yQe=YW(s7n,"EdgeRouter/6methodref$compare$Type",1513);wDn(1497,1,{},su);lce.Kb=function n(e){return can(),bG(lIn(bG(e,40),(eqn(),_We)),17)};var MQe=YW(s7n,"EdgeRouter/lambda$0$Type",1497);wDn(1508,1,{},ou);lce.Kb=function n(e){return NR(bG(e,40))};var TQe=YW(s7n,"EdgeRouter/lambda$11$Type",1508);wDn(1510,1,{},kO);lce.Kb=function n(e){return jq(this.b,this.a,bG(e,40))};lce.a=0;lce.b=0;var jQe=YW(s7n,"EdgeRouter/lambda$13$Type",1510);wDn(1512,1,{},yO);lce.Kb=function n(e){return $R(this.b,this.a,bG(e,40))};lce.a=0;lce.b=0;var EQe=YW(s7n,"EdgeRouter/lambda$15$Type",1512);wDn(1514,1,l2n,fu);lce.Ne=function n(e,t){return Wkn(bG(e,65),bG(t,65))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var SQe=YW(s7n,"EdgeRouter/lambda$17$Type",1514);wDn(1515,1,l2n,hu);lce.Ne=function n(e,t){return Qkn(bG(e,65),bG(t,65))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var PQe=YW(s7n,"EdgeRouter/lambda$18$Type",1515);wDn(1516,1,l2n,lu);lce.Ne=function n(e,t){return Ykn(bG(e,65),bG(t,65))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var CQe=YW(s7n,"EdgeRouter/lambda$19$Type",1516);wDn(1499,1,k1n,Kv);lce.Mb=function n(e){return a0(this.a,bG(e,40))};lce.a=0;var IQe=YW(s7n,"EdgeRouter/lambda$2$Type",1499);wDn(1517,1,l2n,bu);lce.Ne=function n(e,t){return Jkn(bG(e,65),bG(t,65))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var OQe=YW(s7n,"EdgeRouter/lambda$20$Type",1517);wDn(1500,1,l2n,wu);lce.Ne=function n(e,t){return CG(bG(e,40),bG(t,40))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var AQe=YW(s7n,"EdgeRouter/lambda$3$Type",1500);wDn(1501,1,l2n,du);lce.Ne=function n(e,t){return IG(bG(e,40),bG(t,40))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var LQe=YW(s7n,"EdgeRouter/lambda$4$Type",1501);wDn(1502,1,{},Mu);lce.Kb=function n(e){return DR(bG(e,40))};var NQe=YW(s7n,"EdgeRouter/lambda$5$Type",1502);wDn(1504,1,{},MO);lce.Kb=function n(e){return Eq(this.b,this.a,bG(e,40))};lce.a=0;lce.b=0;var $Qe=YW(s7n,"EdgeRouter/lambda$7$Type",1504);wDn(1506,1,{},TO);lce.Kb=function n(e){return xR(this.b,this.a,bG(e,40))};lce.a=0;lce.b=0;var DQe=YW(s7n,"EdgeRouter/lambda$9$Type",1506);wDn(675,1,{675:1},mTn);lce.e=0;lce.f=false;lce.g=false;var xQe=YW(s7n,"MultiLevelEdgeNodeNodeGap",675);wDn(1943,1,l2n,Tu);lce.Ne=function n(e,t){return v2(bG(e,240),bG(t,240))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var RQe=YW(s7n,"MultiLevelEdgeNodeNodeGap/lambda$0$Type",1943);wDn(1944,1,l2n,ju);lce.Ne=function n(e,t){return p2(bG(e,240),bG(t,240))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var KQe=YW(s7n,"MultiLevelEdgeNodeNodeGap/lambda$1$Type",1944);var FQe;wDn(501,22,{3:1,34:1,22:1,501:1,188:1,196:1},rO);lce.dg=function n(){return Gvn(this)};lce.qg=function n(){return Gvn(this)};var _Qe,BQe;var HQe=qan(o7n,"RadialLayoutPhases",501,joe,M1,HH);var UQe;wDn(1113,205,y3n,zj);lce.rf=function n(e,t){var r,i,a,c,u,s;r=qKn(this,e);t.Ug("Radial layout",r.c.length);lM(yK(YDn(e,(IOn(),UJe))))||t0((i=new Ad((jP(),new Zy(e))),i));s=JPn(e);Pyn(e,(AK(),FQe),s);if(!s){throw dm(new jM("The given graph is not a tree!"))}a=bM(MK(YDn(e,zJe)));a==0&&(a=cNn(e));Pyn(e,zJe,a);for(u=new nd(qKn(this,e));u.a=3){T=bG(Yin(y,0),27);j=bG(Yin(y,1),27);u=0;while(u+2=T.f+j.f+l||j.f>=M.f+T.f+l){S=true;break}else{++u}}}else{S=true}if(!S){w=y.i;for(o=new _D(y);o.e!=o.i.gc();){s=bG(iyn(o),27);Pyn(s,(JYn(),O6e),Bwn(w));--w}JGn(e,new gy);r.Vg();return}i=(qJ(this.a),tW(this.a,(tmn(),MYe),bG(YDn(e,FZe),188)),tW(this.a,TYe,bG(YDn(e,OZe),188)),tW(this.a,jYe,bG(YDn(e,xZe),188)),iN(this.a,(C=new mJ,xq(C,MYe,(iMn(),LYe)),xq(C,TYe,AYe),lM(yK(YDn(e,mZe)))&&xq(C,MYe,OYe),C)),ezn(this.a,e));h=1/i.c.length;E=0;for(g=new nd(i);g.a0&&ewn((w3(t-1,e.length),e.charCodeAt(t-1)),i6n)){--t}if(i>=t){throw dm(new jM("The given string does not contain any numbers."))}a=nqn((Unn(i,t,e.length),e.substr(i,t-i)),",|;|\r|\n");if(a.length!=2){throw dm(new jM("Exactly two numbers are expected, "+a.length+" were found."))}try{this.a=rOn(UAn(a[0]));this.b=rOn(UAn(a[1]))}catch(c){c=Ofn(c);if(G$(c,130)){r=c;throw dm(new jM(a6n+r))}else throw dm(c)}};lce.Ib=function n(){return"("+this.a+","+this.b+")"};lce.a=0;lce.b=0;var D3e=YW(c6n,"KVector",8);wDn(75,67,{3:1,4:1,20:1,31:1,56:1,16:1,67:1,15:1,75:1,423:1},zk,cj,zR);lce.Pc=function n(){return sbn(this)};lce.cg=function n(e){var t,r,i,a,c,u;i=nqn(e,",|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n");XY(this);try{r=0;c=0;a=0;u=0;while(r0){c%2==0?a=rOn(i[r]):u=rOn(i[r]);c>0&&c%2!=0&&hq(this,new PO(a,u));++c}++r}}catch(s){s=Ofn(s);if(G$(s,130)){t=s;throw dm(new jM("The given string does not match the expected format for vectors."+t))}else throw dm(s)}};lce.Ib=function n(){var e,t,r;e=new vx("(");t=Gkn(this,0);while(t.b!=t.d.c){r=bG($6(t),8);tL(e,r.a+","+r.b);t.b!=t.d.c&&(e.a+="; ",e)}return(e.a+=")",e).a};var x3e=YW(c6n,"KVectorChain",75);wDn(255,22,{3:1,34:1,22:1,255:1},CO);var R3e,K3e,F3e,_3e,B3e,H3e;var U3e=qan(Hne,"Alignment",255,joe,ren,lU);var G3e;wDn(991,1,R2n,Fl);lce.hf=function n(e){rGn(e)};var q3e,X3e,V3e,z3e,W3e,Q3e,J3e,Y3e,Z3e,n4e,e4e,t4e;var r4e=YW(Hne,"BoxLayouterOptions",991);wDn(992,1,{},Bs);lce.sf=function n(){var e;return e=new Gs,e};lce.tf=function n(e){};var i4e=YW(Hne,"BoxLayouterOptions/BoxFactory",992);wDn(298,22,{3:1,34:1,22:1,298:1},AO);var a4e,c4e,u4e,s4e,o4e,f4e;var h4e=qan(Hne,"ContentAlignment",298,joe,ien,bU);var l4e;wDn(699,1,R2n,_l);lce.hf=function n(e){ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,Vne),""),"Layout Algorithm"),"Select a specific layout algorithm."),(vAn(),C3e)),vle),ygn((Hkn(),p3e)))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,zne),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),P3e),R2e),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,q8n),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),d4e),j3e),U3e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,x3n),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,Wne),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),P3e),x3e),ygn(d3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,r9n),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),j4e),E3e),h4e),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,G8n),""),"Debug Mode"),"Whether additional debug information shall be generated."),(Qx(),false)),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,z8n),""),h3n),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),P4e),j3e),b5e),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,v8n),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),L4e),j3e),j5e),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,qne),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,l8n),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),R4e),j3e),X5e),nV(p3e,zfn(fT(k3e,1),g1n,170,0,[v3e])))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,R3n),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),u6e),P3e),sEe),nV(p3e,zfn(fT(k3e,1),g1n,170,0,[v3e])))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,f4n),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,d9n),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,b4n),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,h4n),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),y6e),j3e),j8e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,l9n),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),P3e),D3e),nV(v3e,zfn(fT(k3e,1),g1n,170,0,[m3e,g3e])))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,a4n),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),S3e),tle),nV(v3e,zfn(fT(k3e,1),g1n,170,0,[d3e])))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,s4n),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),S3e),tle),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,o4n),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,i9n),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),G4e),P3e),x3e),ygn(d3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,u9n),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),false),M3e),Uhe),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,s9n),""),"Hypernode"),"Whether the node should be handled as a hypernode."),false),M3e),Uhe),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,Qne),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),P3e),Jht),nV(p3e,zfn(fT(k3e,1),g1n,170,0,[g3e])))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,b9n),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),X4e),P3e),Qje),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,H8n),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),M3e),Uhe),nV(v3e,zfn(fT(k3e,1),g1n,170,0,[d3e,m3e,g3e])))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Jne),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),T3e),Yhe),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,Yne),""),"Child Area Width"),"The width of the area occupied by the laid out children of a node."),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,Zne),""),"Child Area Height"),"The height of the area occupied by the laid out children of a node."),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,m4n),""),Ane),"Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"),false),M3e),Uhe),ygn(p3e))));V4(e,m4n,T4n,null);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,nee),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),true),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,eee),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),Bwn(100)),S3e),tle),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,tee),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,ree),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),Bwn(4e3)),S3e),tle),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,iee),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),Bwn(400)),S3e),tle),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,aee),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,cee),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,uee),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),true),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,see),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Xne),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),m4e),j3e),X9e),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,O8n),p8n),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,A8n),p8n),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,$3n),p8n),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,L8n),p8n),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,u4n),p8n),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,N8n),p8n),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,$8n),p8n),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,R8n),p8n),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,D8n),p8n),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,x8n),p8n),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,c4n),p8n),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,K8n),p8n),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),T3e),Yhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,F8n),p8n),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),T3e),Yhe),nV(p3e,zfn(fT(k3e,1),g1n,170,0,[v3e])))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,_8n),p8n),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),P3e),h7e),nV(v3e,zfn(fT(k3e,1),g1n,170,0,[d3e,m3e,g3e])))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,w9n),p8n),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),W6e),P3e),Qje),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,h9n),wee),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),S3e),tle),nV(p3e,zfn(fT(k3e,1),g1n,170,0,[v3e])))));V4(e,h9n,f9n,h6e);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,f9n),wee),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),o6e),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,W8n),dee),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),z4e),P3e),sEe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,v4n),dee),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),Q4e),E3e),o8e),nV(v3e,zfn(fT(k3e,1),g1n,170,0,[g3e])))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Y8n),gee),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),b6e),j3e),g8e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,Z8n),gee),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),j3e),g8e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,n9n),gee),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),j3e),g8e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,e9n),gee),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),j3e),g8e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,t9n),gee),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),j3e),g8e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,g4n),vee),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Y4e),E3e),w9e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,d4n),vee),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),r6e),E3e),E9e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,D4n),vee),"Node Size Minimum"),"The minimal size to which a node can be reduced."),e6e),P3e),D3e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,w4n),vee),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),M3e),Uhe),ygn(p3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,a9n),C8n),"Edge Label Placement"),"Gives a hint on where to put edge labels."),O4e),j3e),p5e),ygn(g3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,l4n),C8n),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),M3e),Uhe),ygn(g3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,oee),"font"),"Font Name"),"Font name used for a label."),C3e),vle),ygn(g3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,fee),"font"),"Font Size"),"Font size used for a label."),S3e),tle),ygn(g3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,o9n),pee),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),P3e),D3e),ygn(m3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,c9n),pee),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),S3e),tle),ygn(m3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,U8n),pee),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),C6e),j3e),e9e),ygn(m3e))));ivn(e,new cAn(tj(ej(rj(WT(nj(JT(YT(new _s,B8n),pee),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),T3e),Yhe),ygn(m3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,p4n),mee),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),E6e),E3e),L8e),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,Q8n),mee),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),M3e),Uhe),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,J8n),mee),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),true),M3e),Uhe),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,k4n),kee),"Topdown Scale Factor"),"The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."),1),T3e),Yhe),ygn(p3e))));V4(e,k4n,T4n,i5e);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,hee),kee),"Topdown Size Approximator"),"The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size."),null),j3e),$9e),ygn(v3e))));V4(e,hee,T4n,c5e);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,y4n),kee),"Topdown Hierarchical Node Width"),"The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),150),T3e),Yhe),nV(p3e,zfn(fT(k3e,1),g1n,170,0,[v3e])))));V4(e,y4n,T4n,null);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,M4n),kee),"Topdown Hierarchical Node Aspect Ratio"),"The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),1.414),T3e),Yhe),nV(p3e,zfn(fT(k3e,1),g1n,170,0,[v3e])))));V4(e,M4n,T4n,null);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,T4n),kee),"Topdown Node Type"),"The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes."),null),j3e),O9e),ygn(v3e))));V4(e,T4n,w4n,null);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,lee),kee),"Topdown Scale Cap"),"Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes."),1),T3e),Yhe),ygn(p3e))));V4(e,lee,T4n,t5e);ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,X8n),yee),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),M3e),Uhe),ygn(v3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,V8n),yee),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),false),M3e),Uhe),ygn(d3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,D3n),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),T3e),Yhe),ygn(d3e))));ivn(e,new cAn(tj(ej(rj(QT(WT(nj(JT(YT(new _s,bee),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),$4e),j3e),L5e),ygn(d3e))));wP(e,new $2(XT(zT(VT(new ms,E0n),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));wP(e,new $2(XT(zT(VT(new ms,"org.eclipse.elk.orthogonal"),"Orthogonal"),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));wP(e,new $2(XT(zT(VT(new ms,i4n),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.")));wP(e,new $2(XT(zT(VT(new ms,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.")));wP(e,new $2(XT(zT(VT(new ms,a7n),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.")));wP(e,new $2(XT(zT(VT(new ms,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.")));wP(e,new $2(XT(zT(VT(new ms,D7n),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles.")));EHn((new Bl,e));rGn((new Fl,e));x_n((new Hl,e))};var b4e,w4e,d4e,g4e,v4e,p4e,m4e,k4e,y4e,M4e,T4e,j4e,E4e,S4e,P4e,C4e,I4e,O4e,A4e,L4e,N4e,$4e,D4e,x4e,R4e,K4e,F4e,_4e,B4e,H4e,U4e,G4e,q4e,X4e,V4e,z4e,W4e,Q4e,J4e,Y4e,Z4e,n6e,e6e,t6e,r6e,i6e,a6e,c6e,u6e,s6e,o6e,f6e,h6e,l6e,b6e,w6e,d6e,g6e,v6e,p6e,m6e,k6e,y6e,M6e,T6e,j6e,E6e,S6e,P6e,C6e,I6e,O6e,A6e,L6e,N6e,$6e,D6e,x6e,R6e,K6e,F6e,_6e,B6e,H6e,U6e,G6e,q6e,X6e,V6e,z6e,W6e,Q6e,J6e,Y6e,Z6e,n5e,e5e,t5e,r5e,i5e,a5e,c5e;var u5e=YW(Hne,"CoreOptions",699);wDn(88,22,{3:1,34:1,22:1,88:1},LO);var s5e,o5e,f5e,h5e,l5e;var b5e=qan(Hne,h3n,88,joe,V8,wU);var w5e;wDn(278,22,{3:1,34:1,22:1,278:1},NO);var d5e,g5e,v5e;var p5e=qan(Hne,"EdgeLabelPlacement",278,joe,S3,dU);var m5e;wDn(223,22,{3:1,34:1,22:1,223:1},$O);var k5e,y5e,M5e,T5e;var j5e=qan(Hne,"EdgeRouting",223,joe,b5,gU);var E5e;wDn(321,22,{3:1,34:1,22:1,321:1},DO);var S5e,P5e,C5e,I5e,O5e,A5e;var L5e=qan(Hne,"EdgeType",321,joe,ten,vU);var N5e;wDn(989,1,R2n,Bl);lce.hf=function n(e){EHn(e)};var $5e,D5e,x5e,R5e,K5e,F5e,_5e;var B5e=YW(Hne,"FixedLayouterOptions",989);wDn(990,1,{},Hs);lce.sf=function n(){var e;return e=new Zs,e};lce.tf=function n(e){};var H5e=YW(Hne,"FixedLayouterOptions/FixedFactory",990);wDn(346,22,{3:1,34:1,22:1,346:1},xO);var U5e,G5e,q5e;var X5e=qan(Hne,"HierarchyHandling",346,joe,j3,pU);var V5e;wDn(291,22,{3:1,34:1,22:1,291:1},RO);var z5e,W5e,Q5e,J5e;var Y5e=qan(Hne,"LabelSide",291,joe,l5,mU);var Z5e;wDn(95,22,{3:1,34:1,22:1,95:1},KO);var n8e,e8e,t8e,r8e,i8e,a8e,c8e,u8e,s8e;var o8e=qan(Hne,"NodeLabelPlacement",95,joe,pan,kU);var f8e;wDn(256,22,{3:1,34:1,22:1,256:1},FO);var h8e,l8e,b8e,w8e,d8e;var g8e=qan(Hne,"PortAlignment",256,joe,M9,yU);var v8e;wDn(101,22,{3:1,34:1,22:1,101:1},_O);var p8e,m8e,k8e,y8e,M8e,T8e;var j8e=qan(Hne,"PortConstraints",101,joe,een,MU);var E8e;wDn(279,22,{3:1,34:1,22:1,279:1},BO);var S8e,P8e,C8e,I8e,O8e,A8e;var L8e=qan(Hne,"PortLabelPlacement",279,joe,nen,TU);var N8e;wDn(64,22,{3:1,34:1,22:1,64:1},HO);var $8e,D8e,x8e,R8e,K8e,F8e,_8e,B8e,H8e,U8e,G8e,q8e,X8e,V8e,z8e,W8e,Q8e,J8e,Y8e,Z8e,n9e;var e9e=qan(Hne,"PortSide",64,joe,z8,jU);var t9e;wDn(993,1,R2n,Hl);lce.hf=function n(e){x_n(e)};var r9e,i9e,a9e,c9e,u9e;var s9e=YW(Hne,"RandomLayouterOptions",993);wDn(994,1,{},Us);lce.sf=function n(){var e;return e=new Qs,e};lce.tf=function n(e){};var o9e=YW(Hne,"RandomLayouterOptions/RandomFactory",994);wDn(386,22,{3:1,34:1,22:1,386:1},UO);var f9e,h9e,l9e,b9e;var w9e=qan(Hne,"SizeConstraint",386,joe,h5,EU);var d9e;wDn(264,22,{3:1,34:1,22:1,264:1},GO);var g9e,v9e,p9e,m9e,k9e,y9e,M9e,T9e,j9e;var E9e=qan(Hne,"SizeOptions",264,joe,Pcn,SU);var S9e;wDn(280,22,{3:1,34:1,22:1,280:1},qO);var P9e,C9e,I9e;var O9e=qan(Hne,"TopdownNodeTypes",280,joe,P3,PU);var A9e;wDn(347,22,jee);var L9e,N9e;var $9e=qan(Hne,"TopdownSizeApproximator",347,joe,$1,IU);wDn(987,347,jee,Lq);lce.Tg=function n(e){return wMn(e)};var D9e=qan(Hne,"TopdownSizeApproximator/1",987,$9e,null,null);wDn(988,347,jee,yz);lce.Tg=function n(e){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p,m,k,y,M,T,j,E,S,P;r=bG(YDn(e,(JYn(),L6e)),143);j=(yj(),d=new Xk,d);hKn(j,e);E=new rm;for(u=new _D((!e.a&&(e.a=new gz(snt,e,10,11)),e.a));u.e!=u.i.gc();){a=bG(iyn(u),27);k=(w=new Xk,w);WRn(k,j);hKn(k,a);P=wMn(a);jN(k,t.Math.max(a.g,P.a),t.Math.max(a.f,P.b));ZAn(E.f,a,k)}for(c=new _D((!e.a&&(e.a=new gz(snt,e,10,11)),e.a));c.e!=c.i.gc();){a=bG(iyn(c),27);for(l=new _D((!a.e&&(a.e=new g_(H7e,a,7,4)),a.e));l.e!=l.i.gc();){h=bG(iyn(l),74);M=bG(_A(GX(E.f,a)),27);T=bG(fQ(E,Yin((!h.c&&(h.c=new g_(B7e,h,5,8)),h.c),0)),27);y=(b=new co,b);cen((!y.b&&(y.b=new g_(B7e,y,4,7)),y.b),M);cen((!y.c&&(y.c=new g_(B7e,y,5,8)),y.c),T);xRn(y,H0(M));hKn(y,h)}}v=bG(x1(r.f),205);try{v.rf(j,new ro);nJ(r.f,v)}catch(C){C=Ofn(C);if(G$(C,103)){g=C;throw dm(g)}else throw dm(C)}jnn(j,y4e)||jnn(j,k4e)||ZJn(j);f=bM(MK(YDn(j,y4e)));o=bM(MK(YDn(j,k4e)));s=f/o;i=bM(MK(YDn(j,Y6e)))*t.Math.sqrt((!j.a&&(j.a=new gz(snt,j,10,11)),j.a).i);S=bG(YDn(j,c6e),107);m=S.b+S.c+1;p=S.d+S.a+1;return new PO(t.Math.max(m,i),t.Math.max(p,i/s))};var x9e=qan(Hne,"TopdownSizeApproximator/2",988,$9e,null,null);var R9e;wDn(344,1,{871:1},gy);lce.Ug=function n(e,t){return kCn(this,e,t)};lce.Vg=function n(){LOn(this)};lce.Wg=function n(){return this.q};lce.Xg=function n(){return!this.f?null:AZ(this.f)};lce.Yg=function n(){return AZ(this.a)};lce.Zg=function n(){return this.p};lce.$g=function n(){return false};lce._g=function n(){return this.n};lce.ah=function n(){return this.p!=null&&!this.b};lce.bh=function n(e){var t;if(this.n){t=e;ED(this.f,t)}};lce.dh=function n(e,t){var r,i;this.n&&!!e&&a4(this,(r=new _W,i=lUn(r,e),qWn(r),i),(Oln(),g7e))};lce.eh=function n(e){var t;if(this.b){return null}else{t=sin(this,this.g);hq(this.a,t);t.i=this;this.d=e;return t}};lce.fh=function n(e){e>0&&!this.b&&Xcn(this,e)};lce.b=false;lce.c=0;lce.d=-1;lce.e=null;lce.f=null;lce.g=-1;lce.j=false;lce.k=false;lce.n=false;lce.o=0;lce.q=0;lce.r=0;var K9e=YW(g9n,"BasicProgressMonitor",344);wDn(717,205,y3n,Gs);lce.rf=function n(e,t){JGn(e,t)};var F9e=YW(g9n,"BoxLayoutProvider",717);wDn(983,1,l2n,Qv);lce.Ne=function n(e,t){return cKn(this,bG(e,27),bG(t,27))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};lce.a=false;var _9e=YW(g9n,"BoxLayoutProvider/1",983);wDn(163,1,{163:1},tan,aK);lce.Ib=function n(){return this.c?YBn(this.c):jIn(this.b)};var B9e=YW(g9n,"BoxLayoutProvider/Group",163);wDn(320,22,{3:1,34:1,22:1,320:1},VO);var H9e,U9e,G9e,q9e;var X9e=qan(g9n,"BoxLayoutProvider/PackingMode",320,joe,w5,OU);var V9e;wDn(984,1,l2n,qs);lce.Ne=function n(e,t){return oZ(bG(e,163),bG(t,163))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var z9e=YW(g9n,"BoxLayoutProvider/lambda$0$Type",984);wDn(985,1,l2n,Xs);lce.Ne=function n(e,t){return WY(bG(e,163),bG(t,163))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var W9e=YW(g9n,"BoxLayoutProvider/lambda$1$Type",985);wDn(986,1,l2n,Vs);lce.Ne=function n(e,t){return QY(bG(e,163),bG(t,163))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Q9e=YW(g9n,"BoxLayoutProvider/lambda$2$Type",986);wDn(1384,1,{845:1},zs);lce.Mg=function n(e,t){return iP(),!G$(t,167)||iE((nhn(),h2e,bG(e,167)),t)};var J9e=YW(g9n,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1384);wDn(1385,1,WZn,Jv);lce.Cd=function n(e){dbn(this.a,bG(e,149))};var Y9e=YW(g9n,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1385);wDn(1386,1,WZn,Js);lce.Cd=function n(e){bG(e,96);iP()};var Z9e=YW(g9n,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1386);wDn(1390,1,WZn,Yv);lce.Cd=function n(e){qun(this.a,bG(e,96))};var n7e=YW(g9n,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1390);wDn(1388,1,k1n,zO);lce.Mb=function n(e){return lln(this.a,this.b,bG(e,149))};var e7e=YW(g9n,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1388);wDn(1387,1,k1n,WO);lce.Mb=function n(e){return LR(this.a,this.b,bG(e,845))};var t7e=YW(g9n,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1387);wDn(1389,1,WZn,QO);lce.Cd=function n(e){sz(this.a,this.b,bG(e,149))};var r7e=YW(g9n,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1389);wDn(947,1,{},Ys);lce.Kb=function n(e){return lN(e)};lce.Fb=function n(e){return this===e};var i7e=YW(g9n,"ElkUtil/lambda$0$Type",947);wDn(948,1,WZn,JO);lce.Cd=function n(e){t$n(this.a,this.b,bG(e,74))};lce.a=0;lce.b=0;var a7e=YW(g9n,"ElkUtil/lambda$1$Type",948);wDn(949,1,WZn,YO);lce.Cd=function n(e){cM(this.a,this.b,bG(e,166))};lce.a=0;lce.b=0;var c7e=YW(g9n,"ElkUtil/lambda$2$Type",949);wDn(950,1,WZn,ZO);lce.Cd=function n(e){zN(this.a,this.b,bG(e,135))};lce.a=0;lce.b=0;var u7e=YW(g9n,"ElkUtil/lambda$3$Type",950);wDn(951,1,WZn,Zv);lce.Cd=function n(e){Rq(this.a,bG(e,377))};var s7e=YW(g9n,"ElkUtil/lambda$4$Type",951);wDn(325,1,{34:1,325:1},tm);lce.Fd=function n(e){return mD(this,bG(e,242))};lce.Fb=function n(e){var t;if(G$(e,325)){t=bG(e,325);return this.a==t.a}return false};lce.Hb=function n(){return c0(this.a)};lce.Ib=function n(){return this.a+" (exclusive)"};lce.a=0;var o7e=YW(g9n,"ExclusiveBounds/ExclusiveLowerBound",325);wDn(1119,205,y3n,Zs);lce.rf=function n(e,r){var i,a,c,u,s,o,f,h,l,b,w,g,v,p,m,k,y,M,T,j,E,S,P;r.Ug("Fixed Layout",1);u=bG(YDn(e,(JYn(),A4e)),223);b=0;w=0;for(y=new _D((!e.a&&(e.a=new gz(snt,e,10,11)),e.a));y.e!=y.i.gc();){m=bG(iyn(y),27);P=bG(YDn(m,($ln(),_5e)),8);if(P){EN(m,P.a,P.b);if(bG(YDn(m,D5e),181).Hc((emn(),f9e))){g=bG(YDn(m,R5e),8);g.a>0&&g.b>0&&iJn(m,g.a,g.b,true,true)}}b=t.Math.max(b,m.i+m.g);w=t.Math.max(w,m.j+m.f);for(h=new _D((!m.n&&(m.n=new gz(unt,m,1,7)),m.n));h.e!=h.i.gc();){o=bG(iyn(h),135);P=bG(YDn(o,_5e),8);!!P&&EN(o,P.a,P.b);b=t.Math.max(b,m.i+o.i+o.g);w=t.Math.max(w,m.j+o.j+o.f)}for(j=new _D((!m.c&&(m.c=new gz(ont,m,9,9)),m.c));j.e!=j.i.gc();){T=bG(iyn(j),123);P=bG(YDn(T,_5e),8);!!P&&EN(T,P.a,P.b);E=m.i+T.i;S=m.j+T.j;b=t.Math.max(b,E+T.g);w=t.Math.max(w,S+T.f);for(f=new _D((!T.n&&(T.n=new gz(unt,T,1,7)),T.n));f.e!=f.i.gc();){o=bG(iyn(f),135);P=bG(YDn(o,_5e),8);!!P&&EN(o,P.a,P.b);b=t.Math.max(b,E+o.i+o.g);w=t.Math.max(w,S+o.j+o.f)}}for(c=new GV(sx(uRn(m).a.Kc(),new d));dDn(c);){i=bG(K9(c),74);l=sJn(i);b=t.Math.max(b,l.a);w=t.Math.max(w,l.b)}for(a=new GV(sx(cRn(m).a.Kc(),new d));dDn(a);){i=bG(K9(a),74);if(H0(pIn(i))!=e){l=sJn(i);b=t.Math.max(b,l.a);w=t.Math.max(w,l.b)}}}if(u==(qgn(),k5e)){for(k=new _D((!e.a&&(e.a=new gz(snt,e,10,11)),e.a));k.e!=k.i.gc();){m=bG(iyn(k),27);for(a=new GV(sx(uRn(m).a.Kc(),new d));dDn(a);){i=bG(K9(a),74);s=pGn(i);s.b==0?Pyn(i,U4e,null):Pyn(i,U4e,s)}}}if(!lM(yK(YDn(e,($ln(),x5e))))){M=bG(YDn(e,K5e),107);p=b+M.b+M.c;v=w+M.d+M.a;iJn(e,p,v,true,true)}r.Vg()};var f7e=YW(g9n,"FixedLayoutProvider",1119);wDn(385,137,{3:1,423:1,385:1,96:1,137:1},no,Qtn);lce.cg=function n(e){var t,r,i,a,c,u,s,o,f;if(!e){return}try{o=nqn(e,";,;");for(c=o,u=0,s=c.length;u>16&$1n|t^i<<16};lce.Kc=function n(){return new np(this)};lce.Ib=function n(){return this.a==null&&this.b==null?"pair(null,null)":this.a==null?"pair(null,"+fvn(this.b)+")":this.b==null?"pair("+fvn(this.a)+",null)":"pair("+fvn(this.a)+","+fvn(this.b)+")"};var M7e=YW(g9n,"Pair",42);wDn(995,1,NZn,np);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){return!this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};lce.Pb=function n(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw dm(new Xm)};lce.Qb=function n(){this.c&&this.a.b!=null?this.a.b=null:this.b&&this.a.a!=null&&(this.a.a=null);throw dm(new Bm)};lce.b=false;lce.c=false;var T7e=YW(g9n,"Pair/1",995);wDn(455,1,{455:1},jY);lce.Fb=function n(e){return DJ(this.a,bG(e,455).a)&&DJ(this.c,bG(e,455).c)&&DJ(this.d,bG(e,455).d)&&DJ(this.b,bG(e,455).b)};lce.Hb=function n(){return Dbn(zfn(fT(kce,1),jZn,1,5,[this.a,this.c,this.d,this.b]))};lce.Ib=function n(){return"("+this.a+MZn+this.c+MZn+this.d+MZn+this.b+")"};var j7e=YW(g9n,"Quadruple",455);wDn(1108,205,y3n,Qs);lce.rf=function n(e,t){var r,i,a,c,u;t.Ug("Random Layout",1);if((!e.a&&(e.a=new gz(snt,e,10,11)),e.a).i==0){t.Vg();return}c=bG(YDn(e,(nmn(),c9e)),17);!!c&&c.a!=0?a=new j8(c.a):a=new zvn;r=wM(MK(YDn(e,r9e)));u=wM(MK(YDn(e,u9e)));i=bG(YDn(e,i9e),107);jQn(e,a,r,u,i);t.Vg()};var E7e=YW(g9n,"RandomLayoutProvider",1108);wDn(240,1,{240:1},RU);lce.Fb=function n(e){return DJ(this.a,bG(e,240).a)&&DJ(this.b,bG(e,240).b)&&DJ(this.c,bG(e,240).c)};lce.Hb=function n(){return Dbn(zfn(fT(kce,1),jZn,1,5,[this.a,this.b,this.c]))};lce.Ib=function n(){return"("+this.a+MZn+this.b+MZn+this.c+")"};var S7e=YW(g9n,"Triple",240);var P7e;wDn(562,1,{});lce.Lf=function n(){return new PO(this.f.i,this.f.j)};lce.of=function n(e){if(e1(e,(JYn(),m6e))){return YDn(this.f,C7e)}return YDn(this.f,e)};lce.Mf=function n(){return new PO(this.f.g,this.f.f)};lce.Nf=function n(){return this.g};lce.pf=function n(e){return jnn(this.f,e)};lce.Of=function n(e){San(this.f,e.a);Pan(this.f,e.b)};lce.Pf=function n(e){Ean(this.f,e.a);jan(this.f,e.b)};lce.Qf=function n(e){this.g=e};lce.g=0;var C7e;var I7e=YW(Pee,"ElkGraphAdapters/AbstractElkGraphElementAdapter",562);wDn(563,1,{853:1},ep);lce.Rf=function n(){var e,t;if(!this.b){this.b=l6(BJ(this.a).i);for(t=new _D(BJ(this.a));t.e!=t.i.gc();){e=bG(iyn(t),135);ED(this.b,new nM(e))}}return this.b};lce.b=null;var O7e=YW(Pee,"ElkGraphAdapters/ElkEdgeAdapter",563);wDn(289,562,{},Zy);lce.Sf=function n(){return GTn(this)};lce.a=null;var A7e=YW(Pee,"ElkGraphAdapters/ElkGraphAdapter",289);wDn(640,562,{187:1},nM);var L7e=YW(Pee,"ElkGraphAdapters/ElkLabelAdapter",640);wDn(639,562,{695:1},nR);lce.Rf=function n(){return HTn(this)};lce.Vf=function n(){var e;return e=bG(YDn(this.f,(JYn(),q4e)),140),!e&&(e=new Kk),e};lce.Xf=function n(){return UTn(this)};lce.Zf=function n(e){var t;t=new YU(e);Pyn(this.f,(JYn(),q4e),t)};lce.$f=function n(e){Pyn(this.f,(JYn(),c6e),new ZU(e))};lce.Tf=function n(){return this.d};lce.Uf=function n(){var e,t;if(!this.a){this.a=new im;for(t=new GV(sx(cRn(bG(this.f,27)).a.Kc(),new d));dDn(t);){e=bG(K9(t),74);ED(this.a,new ep(e))}}return this.a};lce.Wf=function n(){var e,t;if(!this.c){this.c=new im;for(t=new GV(sx(uRn(bG(this.f,27)).a.Kc(),new d));dDn(t);){e=bG(K9(t),74);ED(this.c,new ep(e))}}return this.c};lce.Yf=function n(){return mZ(bG(this.f,27)).i!=0||lM(yK(bG(this.f,27).of((JYn(),F4e))))};lce._f=function n(){Jtn(this,(jP(),P7e))};lce.a=null;lce.b=null;lce.c=null;lce.d=null;lce.e=null;var N7e=YW(Pee,"ElkGraphAdapters/ElkNodeAdapter",639);wDn(1284,562,{852:1},tp);lce.Rf=function n(){return ojn(this)};lce.Uf=function n(){var e,t;if(!this.a){this.a=sR(bG(this.f,123).hh().i);for(t=new _D(bG(this.f,123).hh());t.e!=t.i.gc();){e=bG(iyn(t),74);ED(this.a,new ep(e))}}return this.a};lce.Wf=function n(){var e,t;if(!this.c){this.c=sR(bG(this.f,123).ih().i);for(t=new _D(bG(this.f,123).ih());t.e!=t.i.gc();){e=bG(iyn(t),74);ED(this.c,new ep(e))}}return this.c};lce.ag=function n(){return bG(bG(this.f,123).of((JYn(),P6e)),64)};lce.bg=function n(){var e,t,r,i,a,c,u,s;i=d0(bG(this.f,123));for(r=new _D(bG(this.f,123).ih());r.e!=r.i.gc();){e=bG(iyn(r),74);for(s=new _D((!e.c&&(e.c=new g_(B7e,e,5,8)),e.c));s.e!=s.i.gc();){u=bG(iyn(s),84);if(Oin(vCn(u),i)){return true}else if(vCn(u)==i&&lM(yK(YDn(e,(JYn(),_4e))))){return true}}}for(t=new _D(bG(this.f,123).hh());t.e!=t.i.gc();){e=bG(iyn(t),74);for(c=new _D((!e.b&&(e.b=new g_(B7e,e,4,7)),e.b));c.e!=c.i.gc();){a=bG(iyn(c),84);if(Oin(vCn(a),i)){return true}}}return false};lce.a=null;lce.b=null;lce.c=null;var $7e=YW(Pee,"ElkGraphAdapters/ElkPortAdapter",1284);wDn(1285,1,l2n,Ws);lce.Ne=function n(e,t){return JBn(bG(e,123),bG(t,123))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var D7e=YW(Pee,"ElkGraphAdapters/PortComparator",1285);var x7e=$q(Cee,"EObject");var R7e=$q(Iee,Oee);var K7e=$q(Iee,Aee);var F7e=$q(Iee,Lee);var _7e=$q(Iee,"ElkShape");var B7e=$q(Iee,Nee);var H7e=$q(Iee,$ee);var U7e=$q(Iee,Dee);var G7e=$q(Cee,xee);var q7e=$q(Cee,"EFactory");var X7e;var V7e=$q(Cee,Ree);var z7e=$q(Cee,"EPackage");var W7e;var Q7e,J7e,Y7e,Z7e,nnt,ent,tnt,rnt,int,ant,cnt;var unt=$q(Iee,Kee);var snt=$q(Iee,Fee);var ont=$q(Iee,_ee);wDn(93,1,Bee);lce.th=function n(){this.uh();return null};lce.uh=function n(){return null};lce.vh=function n(){return this.uh(),false};lce.wh=function n(){return false};lce.xh=function n(e){Pon(this,e)};var fnt=YW(Hee,"BasicNotifierImpl",93);wDn(99,93,Qee);lce.Yh=function n(){return bN(this)};lce.yh=function n(e,t){return e};lce.zh=function n(){throw dm(new Um)};lce.Ah=function n(e){var t;return t=vMn(bG(uin(this.Dh(),this.Fh()),19)),this.Ph().Th(this,t.n,t.f,e)};lce.Bh=function n(e,t){throw dm(new Um)};lce.Ch=function n(e,t,r){return FUn(this,e,t,r)};lce.Dh=function n(){var e;if(this.zh()){e=this.zh().Nk();if(e){return e}}return this.ii()};lce.Eh=function n(){return tDn(this)};lce.Fh=function n(){throw dm(new Um)};lce.Gh=function n(){var e,t;t=this.$h().Ok();!t&&this.zh().Tk(t=(IP(),e=F1(uqn(this.Dh())),e==null?lat:new Yx(this,e)));return t};lce.Hh=function n(e,t){return e};lce.Ih=function n(e){var t;t=e.pk();return!t?upn(this.Dh(),e):e.Lj()};lce.Jh=function n(){var e;e=this.zh();return!e?null:e.Qk()};lce.Kh=function n(){return!this.zh()?null:this.zh().Nk()};lce.Lh=function n(e,t,r){return _yn(this,e,t,r)};lce.Mh=function n(e){return jen(this,e)};lce.Nh=function n(e,t){return z9(this,e,t)};lce.Oh=function n(){var e;e=this.zh();return!!e&&e.Rk()};lce.Ph=function n(){throw dm(new Um)};lce.Qh=function n(){return Umn(this)};lce.Rh=function n(e,t,r,i){return Eyn(this,e,t,i)};lce.Sh=function n(e,t,r){var i;return i=bG(uin(this.Dh(),t),69),i.wk().zk(this,this.hi(),t-this.ji(),e,r)};lce.Th=function n(e,t,r,i){return D1(this,e,t,i)};lce.Uh=function n(e,t,r){var i;return i=bG(uin(this.Dh(),t),69),i.wk().Ak(this,this.hi(),t-this.ji(),e,r)};lce.Vh=function n(){return!!this.zh()&&!!this.zh().Pk()};lce.Wh=function n(e){return nyn(this,e)};lce.Xh=function n(e){return P0(this,e)};lce.Zh=function n(e){return IWn(this,e)};lce.$h=function n(){throw dm(new Um)};lce._h=function n(){return!this.zh()?null:this.zh().Pk()};lce.ai=function n(){return Umn(this)};lce.bi=function n(e,t){wLn(this,e,t)};lce.ci=function n(e){this.$h().Sk(e)};lce.di=function n(e){this.$h().Vk(e)};lce.ei=function n(e){this.$h().Uk(e)};lce.fi=function n(e,t){var r,i,a,c;c=this.Jh();if(!!c&&!!e){t=Kyn(c.El(),this,t);c.Il(this)}i=this.Ph();if(i){if((LHn(this,this.Ph(),this.Fh()).Bb&S0n)!=0){a=i.Qh();!!a&&(!e?a.Hl(this):!c&&a.Il(this))}else{t=(r=this.Fh(),r>=0?this.Ah(t):this.Ph().Th(this,-1-r,null,t));t=this.Ch(null,-1,t)}}this.di(e);return t};lce.gi=function n(e){var t,r,i,a,c,u,s,o;r=this.Dh();c=upn(r,e);t=this.ji();if(c>=t){return bG(e,69).wk().Dk(this,this.hi(),c-t)}else if(c<=-1){u=szn((yAn(),Vut),r,e);if(u){LP();bG(u,69).xk()||(u=q3(Ktn(Vut,u)));a=(i=this.Ih(u),bG(i>=0?this.Lh(i,true,true):r$n(this,u,true),160));o=u.Ik();if(o>1||o==-1){return bG(bG(a,220).Sl(e,false),79)}}else{throw dm(new jM(Uee+e.xe()+Xee))}}else if(e.Jk()){return i=this.Ih(e),bG(i>=0?this.Lh(i,false,true):r$n(this,e,false),79)}s=new IA(this,e);return s};lce.hi=function n(){return nrn(this)};lce.ii=function n(){return(cQ(),_rt).S};lce.ji=function n(){return sQ(this.ii())};lce.ki=function n(e){lAn(this,e)};lce.Ib=function n(){return jxn(this)};var hnt=YW(Jee,"BasicEObjectImpl",99);var lnt;wDn(119,99,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1});lce.li=function n(e){var t;t=Ztn(this);return t[e]};lce.mi=function n(e,t){var r;r=Ztn(this);bQ(r,e,t)};lce.ni=function n(e){var t;t=Ztn(this);bQ(t,e,null)};lce.th=function n(){return bG(Ron(this,4),129)};lce.uh=function n(){throw dm(new Um)};lce.vh=function n(){return(this.Db&4)!=0};lce.zh=function n(){throw dm(new Um)};lce.oi=function n(e){_mn(this,2,e)};lce.Bh=function n(e,t){this.Db=t<<16|this.Db&255;this.oi(e)};lce.Dh=function n(){return u1(this)};lce.Fh=function n(){return this.Db>>16};lce.Gh=function n(){var e,t;return IP(),t=F1(uqn((e=bG(Ron(this,16),29),!e?this.ii():e))),t==null?(null,lat):new Yx(this,t)};lce.wh=function n(){return(this.Db&1)==0};lce.Jh=function n(){return bG(Ron(this,128),2034)};lce.Kh=function n(){return bG(Ron(this,16),29)};lce.Oh=function n(){return(this.Db&32)!=0};lce.Ph=function n(){return bG(Ron(this,2),54)};lce.Vh=function n(){return(this.Db&64)!=0};lce.$h=function n(){throw dm(new Um)};lce._h=function n(){return bG(Ron(this,64),288)};lce.ci=function n(e){_mn(this,16,e)};lce.di=function n(e){_mn(this,128,e)};lce.ei=function n(e){_mn(this,64,e)};lce.hi=function n(){return Fmn(this)};lce.Db=0;var bnt=YW(Jee,"MinimalEObjectImpl",119);wDn(120,119,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});lce.oi=function n(e){this.Cb=e};lce.Ph=function n(){return this.Cb};var wnt=YW(Jee,"MinimalEObjectImpl/Container",120);wDn(2083,120,{110:1,342:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});lce.Lh=function n(e,t,r){return hjn(this,e,t,r)};lce.Uh=function n(e,t,r){return XIn(this,e,t,r)};lce.Wh=function n(e){return I4(this,e)};lce.bi=function n(e,t){pln(this,e,t)};lce.ii=function n(){return cYn(),cnt};lce.ki=function n(e){ghn(this,e)};lce.nf=function n(){return eyn(this)};lce.gh=function n(){return!this.o&&(this.o=new ven((cYn(),int),Rnt,this,0)),this.o};lce.of=function n(e){return YDn(this,e)};lce.pf=function n(e){return jnn(this,e)};lce.qf=function n(e,t){return Pyn(this,e,t)};var dnt=YW(Yee,"EMapPropertyHolderImpl",2083);wDn(572,120,{110:1,377:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},io);lce.Lh=function n(e,t,r){switch(e){case 0:return this.a;case 1:return this.b}return _yn(this,e,t,r)};lce.Wh=function n(e){switch(e){case 0:return this.a!=0;case 1:return this.b!=0}return nyn(this,e)};lce.bi=function n(e,t){switch(e){case 0:Aan(this,bM(MK(t)));return;case 1:Man(this,bM(MK(t)));return}wLn(this,e,t)};lce.ii=function n(){return cYn(),Q7e};lce.ki=function n(e){switch(e){case 0:Aan(this,0);return;case 1:Man(this,0);return}lAn(this,e)};lce.Ib=function n(){var e;if((this.Db&64)!=0)return jxn(this);e=new gx(jxn(this));e.a+=" (x: ";Dj(e,this.a);e.a+=", y: ";Dj(e,this.b);e.a+=")";return e.a};lce.a=0;lce.b=0;var gnt=YW(Yee,"ElkBendPointImpl",572);wDn(739,2083,{110:1,342:1,167:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});lce.Lh=function n(e,t,r){return Jdn(this,e,t,r)};lce.Sh=function n(e,t,r){return ACn(this,e,t,r)};lce.Uh=function n(e,t,r){return Mfn(this,e,t,r)};lce.Wh=function n(e){return qon(this,e)};lce.bi=function n(e,t){NSn(this,e,t)};lce.ii=function n(){return cYn(),nnt};lce.ki=function n(e){xwn(this,e)};lce.jh=function n(){return this.k};lce.kh=function n(){return BJ(this)};lce.Ib=function n(){return Ogn(this)};lce.k=null;var vnt=YW(Yee,"ElkGraphElementImpl",739);wDn(740,739,{110:1,342:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});lce.Lh=function n(e,t,r){return wvn(this,e,t,r)};lce.Wh=function n(e){return Uvn(this,e)};lce.bi=function n(e,t){$Sn(this,e,t)};lce.ii=function n(){return cYn(),ant};lce.ki=function n(e){Cpn(this,e)};lce.lh=function n(){return this.f};lce.mh=function n(){return this.g};lce.nh=function n(){return this.i};lce.oh=function n(){return this.j};lce.ph=function n(e,t){jN(this,e,t)};lce.qh=function n(e,t){EN(this,e,t)};lce.rh=function n(e){San(this,e)};lce.sh=function n(e){Pan(this,e)};lce.Ib=function n(){return oOn(this)};lce.f=0;lce.g=0;lce.i=0;lce.j=0;var pnt=YW(Yee,"ElkShapeImpl",740);wDn(741,740,{110:1,342:1,84:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1});lce.Lh=function n(e,t,r){return AMn(this,e,t,r)};lce.Sh=function n(e,t,r){return cSn(this,e,t,r)};lce.Uh=function n(e,t,r){return uSn(this,e,t,r)};lce.Wh=function n(e){return sln(this,e)};lce.bi=function n(e,t){ADn(this,e,t)};lce.ii=function n(){return cYn(),J7e};lce.ki=function n(e){Syn(this,e)};lce.hh=function n(){return!this.d&&(this.d=new g_(H7e,this,8,5)),this.d};lce.ih=function n(){return!this.e&&(this.e=new g_(H7e,this,7,4)),this.e};var mnt=YW(Yee,"ElkConnectableShapeImpl",741);wDn(326,739,{110:1,342:1,74:1,167:1,326:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},co);lce.Ah=function n(e){return wEn(this,e)};lce.Lh=function n(e,t,r){switch(e){case 3:return w0(this);case 4:return!this.b&&(this.b=new g_(B7e,this,4,7)),this.b;case 5:return!this.c&&(this.c=new g_(B7e,this,5,8)),this.c;case 6:return!this.a&&(this.a=new gz(U7e,this,6,6)),this.a;case 7:return Qx(),!this.b&&(this.b=new g_(B7e,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new g_(B7e,this,5,8)),this.c.i<=1)?false:true;case 8:return Qx(),Y$n(this)?true:false;case 9:return Qx(),XNn(this)?true:false;case 10:return Qx(),!this.b&&(this.b=new g_(B7e,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new g_(B7e,this,5,8)),this.c.i!=0)?true:false}return Jdn(this,e,t,r)};lce.Sh=function n(e,t,r){var i;switch(t){case 3:!!this.Cb&&(r=(i=this.Db>>16,i>=0?wEn(this,r):this.Cb.Th(this,-1-i,null,r)));return aF(this,bG(e,27),r);case 4:return!this.b&&(this.b=new g_(B7e,this,4,7)),Kpn(this.b,e,r);case 5:return!this.c&&(this.c=new g_(B7e,this,5,8)),Kpn(this.c,e,r);case 6:return!this.a&&(this.a=new gz(U7e,this,6,6)),Kpn(this.a,e,r)}return ACn(this,e,t,r)};lce.Uh=function n(e,t,r){switch(t){case 3:return aF(this,null,r);case 4:return!this.b&&(this.b=new g_(B7e,this,4,7)),Kyn(this.b,e,r);case 5:return!this.c&&(this.c=new g_(B7e,this,5,8)),Kyn(this.c,e,r);case 6:return!this.a&&(this.a=new gz(U7e,this,6,6)),Kyn(this.a,e,r)}return Mfn(this,e,t,r)};lce.Wh=function n(e){switch(e){case 3:return!!w0(this);case 4:return!!this.b&&this.b.i!=0;case 5:return!!this.c&&this.c.i!=0;case 6:return!!this.a&&this.a.i!=0;case 7:return!this.b&&(this.b=new g_(B7e,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new g_(B7e,this,5,8)),this.c.i<=1));case 8:return Y$n(this);case 9:return XNn(this);case 10:return!this.b&&(this.b=new g_(B7e,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new g_(B7e,this,5,8)),this.c.i!=0)}return qon(this,e)};lce.bi=function n(e,t){switch(e){case 3:xRn(this,bG(t,27));return;case 4:!this.b&&(this.b=new g_(B7e,this,4,7));NVn(this.b);!this.b&&(this.b=new g_(B7e,this,4,7));NW(this.b,bG(t,16));return;case 5:!this.c&&(this.c=new g_(B7e,this,5,8));NVn(this.c);!this.c&&(this.c=new g_(B7e,this,5,8));NW(this.c,bG(t,16));return;case 6:!this.a&&(this.a=new gz(U7e,this,6,6));NVn(this.a);!this.a&&(this.a=new gz(U7e,this,6,6));NW(this.a,bG(t,16));return}NSn(this,e,t)};lce.ii=function n(){return cYn(),Y7e};lce.ki=function n(e){switch(e){case 3:xRn(this,null);return;case 4:!this.b&&(this.b=new g_(B7e,this,4,7));NVn(this.b);return;case 5:!this.c&&(this.c=new g_(B7e,this,5,8));NVn(this.c);return;case 6:!this.a&&(this.a=new gz(U7e,this,6,6));NVn(this.a);return}xwn(this,e)};lce.Ib=function n(){return AXn(this)};var knt=YW(Yee,"ElkEdgeImpl",326);wDn(452,2083,{110:1,342:1,166:1,452:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},uo);lce.Ah=function n(e){return Yjn(this,e)};lce.Lh=function n(e,t,r){switch(e){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new PD(K7e,this,5)),this.a;case 6:return g0(this);case 7:if(t)return gMn(this);return this.i;case 8:if(t)return dMn(this);return this.f;case 9:return!this.g&&(this.g=new g_(U7e,this,9,10)),this.g;case 10:return!this.e&&(this.e=new g_(U7e,this,10,9)),this.e;case 11:return this.d}return hjn(this,e,t,r)};lce.Sh=function n(e,t,r){var i,a,c;switch(t){case 6:!!this.Cb&&(r=(a=this.Db>>16,a>=0?Yjn(this,r):this.Cb.Th(this,-1-a,null,r)));return iF(this,bG(e,74),r);case 9:return!this.g&&(this.g=new g_(U7e,this,9,10)),Kpn(this.g,e,r);case 10:return!this.e&&(this.e=new g_(U7e,this,10,9)),Kpn(this.e,e,r)}return c=bG(uin((i=bG(Ron(this,16),29),!i?(cYn(),Z7e):i),t),69),c.wk().zk(this,Fmn(this),t-sQ((cYn(),Z7e)),e,r)};lce.Uh=function n(e,t,r){switch(t){case 5:return!this.a&&(this.a=new PD(K7e,this,5)),Kyn(this.a,e,r);case 6:return iF(this,null,r);case 9:return!this.g&&(this.g=new g_(U7e,this,9,10)),Kyn(this.g,e,r);case 10:return!this.e&&(this.e=new g_(U7e,this,10,9)),Kyn(this.e,e,r)}return XIn(this,e,t,r)};lce.Wh=function n(e){switch(e){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return!!this.a&&this.a.i!=0;case 6:return!!g0(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&this.g.i!=0;case 10:return!!this.e&&this.e.i!=0;case 11:return this.d!=null}return I4(this,e)};lce.bi=function n(e,t){switch(e){case 1:Can(this,bM(MK(t)));return;case 2:Oan(this,bM(MK(t)));return;case 3:Tan(this,bM(MK(t)));return;case 4:Ian(this,bM(MK(t)));return;case 5:!this.a&&(this.a=new PD(K7e,this,5));NVn(this.a);!this.a&&(this.a=new PD(K7e,this,5));NW(this.a,bG(t,16));return;case 6:DRn(this,bG(t,74));return;case 7:Ycn(this,bG(t,84));return;case 8:Jcn(this,bG(t,84));return;case 9:!this.g&&(this.g=new g_(U7e,this,9,10));NVn(this.g);!this.g&&(this.g=new g_(U7e,this,9,10));NW(this.g,bG(t,16));return;case 10:!this.e&&(this.e=new g_(U7e,this,10,9));NVn(this.e);!this.e&&(this.e=new g_(U7e,this,10,9));NW(this.e,bG(t,16));return;case 11:gun(this,TK(t));return}pln(this,e,t)};lce.ii=function n(){return cYn(),Z7e};lce.ki=function n(e){switch(e){case 1:Can(this,0);return;case 2:Oan(this,0);return;case 3:Tan(this,0);return;case 4:Ian(this,0);return;case 5:!this.a&&(this.a=new PD(K7e,this,5));NVn(this.a);return;case 6:DRn(this,null);return;case 7:Ycn(this,null);return;case 8:Jcn(this,null);return;case 9:!this.g&&(this.g=new g_(U7e,this,9,10));NVn(this.g);return;case 10:!this.e&&(this.e=new g_(U7e,this,10,9));NVn(this.e);return;case 11:gun(this,null);return}ghn(this,e)};lce.Ib=function n(){return x$n(this)};lce.b=0;lce.c=0;lce.d=null;lce.j=0;lce.k=0;var ynt=YW(Yee,"ElkEdgeSectionImpl",452);wDn(158,120,{110:1,94:1,93:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1});lce.Lh=function n(e,t,r){var i;if(e==0){return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab}return Fen(this,e-sQ(this.ii()),uin((i=bG(Ron(this,16),29),!i?this.ii():i),e),t,r)};lce.Sh=function n(e,t,r){var i,a;if(t==0){return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kpn(this.Ab,e,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?this.ii():i),t),69),a.wk().zk(this,Fmn(this),t-sQ(this.ii()),e,r)};lce.Uh=function n(e,t,r){var i,a;if(t==0){return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?this.ii():i),t),69),a.wk().Ak(this,Fmn(this),t-sQ(this.ii()),e,r)};lce.Wh=function n(e){var t;if(e==0){return!!this.Ab&&this.Ab.i!=0}return v5(this,e-sQ(this.ii()),uin((t=bG(Ron(this,16),29),!t?this.ii():t),e))};lce.Zh=function n(e){return ZQn(this,e)};lce.bi=function n(e,t){var r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return}vvn(this,e-sQ(this.ii()),uin((r=bG(Ron(this,16),29),!r?this.ii():r),e),t)};lce.di=function n(e){_mn(this,128,e)};lce.ii=function n(){return rZn(),Yrt};lce.ki=function n(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return}wdn(this,e-sQ(this.ii()),uin((t=bG(Ron(this,16),29),!t?this.ii():t),e))};lce.pi=function n(){this.Bb|=1};lce.qi=function n(e){return WUn(this,e)};lce.Bb=0;var Mnt=YW(Jee,"EModelElementImpl",158);wDn(720,158,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},Gl);lce.ri=function n(e,t){return fWn(this,e,t)};lce.si=function n(e){var t,r,i,a,c;if(this.a!=Vin(e)||(e.Bb&256)!=0){throw dm(new jM(ite+e.zb+ete))}for(i=a1(e);Y5(i.a).i!=0;){r=bG(Szn(i,0,(t=bG(Yin(Y5(i.a),0),89),c=t.c,G$(c,90)?bG(c,29):(rZn(),nit))),29);if(qTn(r)){a=Vin(r).wi().si(r);bG(a,54).ci(e);return a}i=a1(r)}return(e.D!=null?e.D:e.B)=="java.util.Map$Entry"?new Oq(e):new XG(e)};lce.ti=function n(e,t){return fYn(this,e,t)};lce.Lh=function n(e,t,r){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.a}return Fen(this,e-sQ((rZn(),Wrt)),uin((i=bG(Ron(this,16),29),!i?Wrt:i),e),t,r)};lce.Sh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kpn(this.Ab,e,r);case 1:!!this.a&&(r=bG(this.a,54).Th(this,4,z7e,r));return Swn(this,bG(e,241),r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),Wrt):i),t),69),a.wk().zk(this,Fmn(this),t-sQ((rZn(),Wrt)),e,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 1:return Swn(this,null,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),Wrt):i),t),69),a.wk().Ak(this,Fmn(this),t-sQ((rZn(),Wrt)),e,r)};lce.Wh=function n(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return!!this.a}return v5(this,e-sQ((rZn(),Wrt)),uin((t=bG(Ron(this,16),29),!t?Wrt:t),e))};lce.bi=function n(e,t){var r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:SIn(this,bG(t,241));return}vvn(this,e-sQ((rZn(),Wrt)),uin((r=bG(Ron(this,16),29),!r?Wrt:r),e),t)};lce.ii=function n(){return rZn(),Wrt};lce.ki=function n(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:SIn(this,null);return}wdn(this,e-sQ((rZn(),Wrt)),uin((t=bG(Ron(this,16),29),!t?Wrt:t),e))};var Tnt,jnt,Ent;var Snt=YW(Jee,"EFactoryImpl",720);wDn(1037,720,{110:1,2113:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},so);lce.ri=function n(e,t){switch(e.hk()){case 12:return bG(t,149).Pg();case 13:return fvn(t);default:throw dm(new jM(nte+e.xe()+ete))}};lce.si=function n(e){var t,r,i,a,c,u,s,o;switch(e.G==-1&&(e.G=(t=Vin(e),t?Vyn(t.vi(),e):-1)),e.G){case 4:return c=new oo,c;case 6:return u=new Xk,u;case 7:return s=new Vk,s;case 8:return i=new co,i;case 9:return r=new io,r;case 10:return a=new uo,a;case 11:return o=new fo,o;default:throw dm(new jM(ite+e.zb+ete))}};lce.ti=function n(e,t){switch(e.hk()){case 13:case 12:return null;default:throw dm(new jM(nte+e.xe()+ete))}};var Pnt=YW(Yee,"ElkGraphFactoryImpl",1037);wDn(448,158,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1});lce.Gh=function n(){var e,t;t=(e=bG(Ron(this,16),29),F1(uqn(!e?this.ii():e)));return t==null?(IP(),IP(),lat):new ZR(this,t)};lce.Lh=function n(e,t,r){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.xe()}return Fen(this,e-sQ(this.ii()),uin((i=bG(Ron(this,16),29),!i?this.ii():i),e),t,r)};lce.Wh=function n(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null}return v5(this,e-sQ(this.ii()),uin((t=bG(Ron(this,16),29),!t?this.ii():t),e))};lce.bi=function n(e,t){var r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:this.ui(TK(t));return}vvn(this,e-sQ(this.ii()),uin((r=bG(Ron(this,16),29),!r?this.ii():r),e),t)};lce.ii=function n(){return rZn(),Zrt};lce.ki=function n(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:this.ui(null);return}wdn(this,e-sQ(this.ii()),uin((t=bG(Ron(this,16),29),!t?this.ii():t),e))};lce.xe=function n(){return this.zb};lce.ui=function n(e){Qun(this,e)};lce.Ib=function n(){return ndn(this)};lce.zb=null;var Cnt=YW(Jee,"ENamedElementImpl",448);wDn(184,448,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},hZ);lce.Ah=function n(e){return tEn(this,e)};lce.Lh=function n(e,t,r){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new jz(this,yrt,this)),this.rb;case 6:return!this.vb&&(this.vb=new s_(z7e,this,6,7)),this.vb;case 7:if(t)return this.Db>>16==7?bG(this.Cb,241):null;return F0(this)}return Fen(this,e-sQ((rZn(),rit)),uin((i=bG(Ron(this,16),29),!i?rit:i),e),t,r)};lce.Sh=function n(e,t,r){var i,a,c;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kpn(this.Ab,e,r);case 4:!!this.sb&&(r=bG(this.sb,54).Th(this,1,q7e,r));return tdn(this,bG(e,480),r);case 5:return!this.rb&&(this.rb=new jz(this,yrt,this)),Kpn(this.rb,e,r);case 6:return!this.vb&&(this.vb=new s_(z7e,this,6,7)),Kpn(this.vb,e,r);case 7:!!this.Cb&&(r=(a=this.Db>>16,a>=0?tEn(this,r):this.Cb.Th(this,-1-a,null,r)));return FUn(this,e,7,r)}return c=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),rit):i),t),69),c.wk().zk(this,Fmn(this),t-sQ((rZn(),rit)),e,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 4:return tdn(this,null,r);case 5:return!this.rb&&(this.rb=new jz(this,yrt,this)),Kyn(this.rb,e,r);case 6:return!this.vb&&(this.vb=new s_(z7e,this,6,7)),Kyn(this.vb,e,r);case 7:return FUn(this,null,7,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),rit):i),t),69),a.wk().Ak(this,Fmn(this),t-sQ((rZn(),rit)),e,r)};lce.Wh=function n(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return!!this.sb;case 5:return!!this.rb&&this.rb.i!=0;case 6:return!!this.vb&&this.vb.i!=0;case 7:return!!F0(this)}return v5(this,e-sQ((rZn(),rit)),uin((t=bG(Ron(this,16),29),!t?rit:t),e))};lce.Zh=function n(e){var t;t=IKn(this,e);return t?t:ZQn(this,e)};lce.bi=function n(e,t){var r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:Qun(this,TK(t));return;case 2:Yun(this,TK(t));return;case 3:Jun(this,TK(t));return;case 4:VIn(this,bG(t,480));return;case 5:!this.rb&&(this.rb=new jz(this,yrt,this));NVn(this.rb);!this.rb&&(this.rb=new jz(this,yrt,this));NW(this.rb,bG(t,16));return;case 6:!this.vb&&(this.vb=new s_(z7e,this,6,7));NVn(this.vb);!this.vb&&(this.vb=new s_(z7e,this,6,7));NW(this.vb,bG(t,16));return}vvn(this,e-sQ((rZn(),rit)),uin((r=bG(Ron(this,16),29),!r?rit:r),e),t)};lce.ei=function n(e){var t,r;if(!!e&&!!this.rb){for(r=new _D(this.rb);r.e!=r.i.gc();){t=iyn(r);G$(t,364)&&(bG(t,364).w=null)}}_mn(this,64,e)};lce.ii=function n(){return rZn(),rit};lce.ki=function n(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:Qun(this,null);return;case 2:Yun(this,null);return;case 3:Jun(this,null);return;case 4:VIn(this,null);return;case 5:!this.rb&&(this.rb=new jz(this,yrt,this));NVn(this.rb);return;case 6:!this.vb&&(this.vb=new s_(z7e,this,6,7));NVn(this.vb);return}wdn(this,e-sQ((rZn(),rit)),uin((t=bG(Ron(this,16),29),!t?rit:t),e))};lce.pi=function n(){ljn(this)};lce.vi=function n(){return!this.rb&&(this.rb=new jz(this,yrt,this)),this.rb};lce.wi=function n(){return this.sb};lce.xi=function n(){return this.ub};lce.yi=function n(){return this.xb};lce.zi=function n(){return this.yb};lce.Ai=function n(e){this.ub=e};lce.Ib=function n(){var e;if((this.Db&64)!=0)return ndn(this);e=new gx(ndn(this));e.a+=" (nsURI: ";ZA(e,this.yb);e.a+=", nsPrefix: ";ZA(e,this.xb);e.a+=")";return e.a};lce.xb=null;lce.yb=null;var Int;var Ont=YW(Jee,"EPackageImpl",184);wDn(569,184,{110:1,2115:1,569:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},sDn);lce.q=false;lce.r=false;var Ant=false;var Lnt=YW(Yee,"ElkGraphPackageImpl",569);wDn(366,740,{110:1,342:1,167:1,135:1,422:1,366:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},oo);lce.Ah=function n(e){return Zjn(this,e)};lce.Lh=function n(e,t,r){switch(e){case 7:return B0(this);case 8:return this.a}return wvn(this,e,t,r)};lce.Sh=function n(e,t,r){var i;switch(t){case 7:!!this.Cb&&(r=(i=this.Db>>16,i>=0?Zjn(this,r):this.Cb.Th(this,-1-i,null,r)));return kV(this,bG(e,167),r)}return ACn(this,e,t,r)};lce.Uh=function n(e,t,r){if(t==7){return kV(this,null,r)}return Mfn(this,e,t,r)};lce.Wh=function n(e){switch(e){case 7:return!!B0(this);case 8:return!T_("",this.a)}return Uvn(this,e)};lce.bi=function n(e,t){switch(e){case 7:jKn(this,bG(t,167));return;case 8:Zcn(this,TK(t));return}$Sn(this,e,t)};lce.ii=function n(){return cYn(),ent};lce.ki=function n(e){switch(e){case 7:jKn(this,null);return;case 8:Zcn(this,"");return}Cpn(this,e)};lce.Ib=function n(){return YOn(this)};lce.a="";var Nnt=YW(Yee,"ElkLabelImpl",366);wDn(207,741,{110:1,342:1,84:1,167:1,27:1,422:1,207:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},Xk);lce.Ah=function n(e){return dEn(this,e)};lce.Lh=function n(e,t,r){switch(e){case 9:return!this.c&&(this.c=new gz(ont,this,9,9)),this.c;case 10:return!this.a&&(this.a=new gz(snt,this,10,11)),this.a;case 11:return H0(this);case 12:return!this.b&&(this.b=new gz(H7e,this,12,3)),this.b;case 13:return Qx(),!this.a&&(this.a=new gz(snt,this,10,11)),this.a.i>0?true:false}return AMn(this,e,t,r)};lce.Sh=function n(e,t,r){var i;switch(t){case 9:return!this.c&&(this.c=new gz(ont,this,9,9)),Kpn(this.c,e,r);case 10:return!this.a&&(this.a=new gz(snt,this,10,11)),Kpn(this.a,e,r);case 11:!!this.Cb&&(r=(i=this.Db>>16,i>=0?dEn(this,r):this.Cb.Th(this,-1-i,null,r)));return a_(this,bG(e,27),r);case 12:return!this.b&&(this.b=new gz(H7e,this,12,3)),Kpn(this.b,e,r)}return cSn(this,e,t,r)};lce.Uh=function n(e,t,r){switch(t){case 9:return!this.c&&(this.c=new gz(ont,this,9,9)),Kyn(this.c,e,r);case 10:return!this.a&&(this.a=new gz(snt,this,10,11)),Kyn(this.a,e,r);case 11:return a_(this,null,r);case 12:return!this.b&&(this.b=new gz(H7e,this,12,3)),Kyn(this.b,e,r)}return uSn(this,e,t,r)};lce.Wh=function n(e){switch(e){case 9:return!!this.c&&this.c.i!=0;case 10:return!!this.a&&this.a.i!=0;case 11:return!!H0(this);case 12:return!!this.b&&this.b.i!=0;case 13:return!this.a&&(this.a=new gz(snt,this,10,11)),this.a.i>0}return sln(this,e)};lce.bi=function n(e,t){switch(e){case 9:!this.c&&(this.c=new gz(ont,this,9,9));NVn(this.c);!this.c&&(this.c=new gz(ont,this,9,9));NW(this.c,bG(t,16));return;case 10:!this.a&&(this.a=new gz(snt,this,10,11));NVn(this.a);!this.a&&(this.a=new gz(snt,this,10,11));NW(this.a,bG(t,16));return;case 11:WRn(this,bG(t,27));return;case 12:!this.b&&(this.b=new gz(H7e,this,12,3));NVn(this.b);!this.b&&(this.b=new gz(H7e,this,12,3));NW(this.b,bG(t,16));return}ADn(this,e,t)};lce.ii=function n(){return cYn(),tnt};lce.ki=function n(e){switch(e){case 9:!this.c&&(this.c=new gz(ont,this,9,9));NVn(this.c);return;case 10:!this.a&&(this.a=new gz(snt,this,10,11));NVn(this.a);return;case 11:WRn(this,null);return;case 12:!this.b&&(this.b=new gz(H7e,this,12,3));NVn(this.b);return}Syn(this,e)};lce.Ib=function n(){return YBn(this)};var $nt=YW(Yee,"ElkNodeImpl",207);wDn(193,741,{110:1,342:1,84:1,167:1,123:1,422:1,193:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},Vk);lce.Ah=function n(e){return nEn(this,e)};lce.Lh=function n(e,t,r){if(e==9){return d0(this)}return AMn(this,e,t,r)};lce.Sh=function n(e,t,r){var i;switch(t){case 9:!!this.Cb&&(r=(i=this.Db>>16,i>=0?nEn(this,r):this.Cb.Th(this,-1-i,null,r)));return cF(this,bG(e,27),r)}return cSn(this,e,t,r)};lce.Uh=function n(e,t,r){if(t==9){return cF(this,null,r)}return uSn(this,e,t,r)};lce.Wh=function n(e){if(e==9){return!!d0(this)}return sln(this,e)};lce.bi=function n(e,t){switch(e){case 9:RRn(this,bG(t,27));return}ADn(this,e,t)};lce.ii=function n(){return cYn(),rnt};lce.ki=function n(e){switch(e){case 9:RRn(this,null);return}Syn(this,e)};lce.Ib=function n(){return ZBn(this)};var Dnt=YW(Yee,"ElkPortImpl",193);var xnt=$q(Ete,"BasicEMap/Entry");wDn(1122,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,119:1,120:1},fo);lce.Fb=function n(e){return this===e};lce.ld=function n(){return this.b};lce.Hb=function n(){return Bx(this)};lce.Di=function n(e){nun(this,bG(e,149))};lce.Lh=function n(e,t,r){switch(e){case 0:return this.b;case 1:return this.c}return _yn(this,e,t,r)};lce.Wh=function n(e){switch(e){case 0:return!!this.b;case 1:return this.c!=null}return nyn(this,e)};lce.bi=function n(e,t){switch(e){case 0:nun(this,bG(t,149));return;case 1:Vcn(this,t);return}wLn(this,e,t)};lce.ii=function n(){return cYn(),int};lce.ki=function n(e){switch(e){case 0:nun(this,null);return;case 1:Vcn(this,null);return}lAn(this,e)};lce.Bi=function n(){var e;if(this.a==-1){e=this.b;this.a=!e?0:Vun(e)}return this.a};lce.md=function n(){return this.c};lce.Ci=function n(e){this.a=e};lce.nd=function n(e){var t;t=this.c;Vcn(this,e);return t};lce.Ib=function n(){var e;if((this.Db&64)!=0)return jxn(this);e=new nT;tL(tL(tL(e,this.b?this.b.Pg():CZn),J4n),lx(this.c));return e.a};lce.a=-1;lce.c=null;var Rnt=YW(Yee,"ElkPropertyToValueMapEntryImpl",1122);wDn(996,1,{},bo);var Knt=YW(Cte,"JsonAdapter",996);wDn(216,63,E1n,AM);var Fnt=YW(Cte,"JsonImportException",216);wDn(868,1,{},iEn);var _nt=YW(Cte,"JsonImporter",868);wDn(903,1,{},eA);var Bnt=YW(Cte,"JsonImporter/lambda$0$Type",903);wDn(904,1,{},tA);var Hnt=YW(Cte,"JsonImporter/lambda$1$Type",904);wDn(912,1,{},rp);var Unt=YW(Cte,"JsonImporter/lambda$10$Type",912);wDn(914,1,{},rA);var Gnt=YW(Cte,"JsonImporter/lambda$11$Type",914);wDn(915,1,{},iA);var qnt=YW(Cte,"JsonImporter/lambda$12$Type",915);wDn(921,1,{},AY);var Xnt=YW(Cte,"JsonImporter/lambda$13$Type",921);wDn(920,1,{},LY);var Vnt=YW(Cte,"JsonImporter/lambda$14$Type",920);wDn(916,1,{},aA);var znt=YW(Cte,"JsonImporter/lambda$15$Type",916);wDn(917,1,{},cA);var Wnt=YW(Cte,"JsonImporter/lambda$16$Type",917);wDn(918,1,{},uA);var Qnt=YW(Cte,"JsonImporter/lambda$17$Type",918);wDn(919,1,{},sA);var Jnt=YW(Cte,"JsonImporter/lambda$18$Type",919);wDn(924,1,{},ip);var Ynt=YW(Cte,"JsonImporter/lambda$19$Type",924);wDn(905,1,{},ap);var Znt=YW(Cte,"JsonImporter/lambda$2$Type",905);wDn(922,1,{},cp);var net=YW(Cte,"JsonImporter/lambda$20$Type",922);wDn(923,1,{},up);var eet=YW(Cte,"JsonImporter/lambda$21$Type",923);wDn(927,1,{},sp);var tet=YW(Cte,"JsonImporter/lambda$22$Type",927);wDn(925,1,{},op);var ret=YW(Cte,"JsonImporter/lambda$23$Type",925);wDn(926,1,{},fp);var iet=YW(Cte,"JsonImporter/lambda$24$Type",926);wDn(929,1,{},hp);var aet=YW(Cte,"JsonImporter/lambda$25$Type",929);wDn(928,1,{},lp);var cet=YW(Cte,"JsonImporter/lambda$26$Type",928);wDn(930,1,WZn,oA);lce.Cd=function n(e){Men(this.b,this.a,TK(e))};var uet=YW(Cte,"JsonImporter/lambda$27$Type",930);wDn(931,1,WZn,fA);lce.Cd=function n(e){Ten(this.b,this.a,TK(e))};var set=YW(Cte,"JsonImporter/lambda$28$Type",931);wDn(932,1,{},hA);var oet=YW(Cte,"JsonImporter/lambda$29$Type",932);wDn(908,1,{},bp);var fet=YW(Cte,"JsonImporter/lambda$3$Type",908);wDn(933,1,{},lA);var het=YW(Cte,"JsonImporter/lambda$30$Type",933);wDn(934,1,{},wp);var bet=YW(Cte,"JsonImporter/lambda$31$Type",934);wDn(935,1,{},dp);var wet=YW(Cte,"JsonImporter/lambda$32$Type",935);wDn(936,1,{},gp);var det=YW(Cte,"JsonImporter/lambda$33$Type",936);wDn(937,1,{},vp);var get=YW(Cte,"JsonImporter/lambda$34$Type",937);wDn(870,1,{},pp);var vet=YW(Cte,"JsonImporter/lambda$35$Type",870);wDn(941,1,{},_U);var pet=YW(Cte,"JsonImporter/lambda$36$Type",941);wDn(938,1,WZn,mp);lce.Cd=function n(e){Z8(this.a,bG(e,377))};var met=YW(Cte,"JsonImporter/lambda$37$Type",938);wDn(939,1,WZn,wA);lce.Cd=function n(e){jA(this.a,this.b,bG(e,166))};var ket=YW(Cte,"JsonImporter/lambda$38$Type",939);wDn(940,1,WZn,dA);lce.Cd=function n(e){EA(this.a,this.b,bG(e,166))};var yet=YW(Cte,"JsonImporter/lambda$39$Type",940);wDn(906,1,{},kp);var Met=YW(Cte,"JsonImporter/lambda$4$Type",906);wDn(942,1,WZn,yp);lce.Cd=function n(e){n9(this.a,bG(e,8))};var Tet=YW(Cte,"JsonImporter/lambda$40$Type",942);wDn(907,1,{},Mp);var jet=YW(Cte,"JsonImporter/lambda$5$Type",907);wDn(911,1,{},Tp);var Eet=YW(Cte,"JsonImporter/lambda$6$Type",911);wDn(909,1,{},jp);var Set=YW(Cte,"JsonImporter/lambda$7$Type",909);wDn(910,1,{},Ep);var Pet=YW(Cte,"JsonImporter/lambda$8$Type",910);wDn(913,1,{},Sp);var Cet=YW(Cte,"JsonImporter/lambda$9$Type",913);wDn(961,1,WZn,Pp);lce.Cd=function n(e){MQ(this.a,new eQ(TK(e)))};var Iet=YW(Cte,"JsonMetaDataConverter/lambda$0$Type",961);wDn(962,1,WZn,Cp);lce.Cd=function n(e){AW(this.a,bG(e,245))};var Oet=YW(Cte,"JsonMetaDataConverter/lambda$1$Type",962);wDn(963,1,WZn,Ip);lce.Cd=function n(e){T2(this.a,bG(e,143))};var Aet=YW(Cte,"JsonMetaDataConverter/lambda$2$Type",963);wDn(964,1,WZn,Op);lce.Cd=function n(e){LW(this.a,bG(e,170))};var Let=YW(Cte,"JsonMetaDataConverter/lambda$3$Type",964);wDn(245,22,{3:1,34:1,22:1,245:1},gA);var Net,$et,Det,xet,Ret,Ket,Fet,_et;var Bet=qan(g3n,"GraphFeature",245,joe,pin,eG);var Het;wDn(11,1,{34:1,149:1},Np,bF,TL,qN);lce.Fd=function n(e){return kD(this,bG(e,149))};lce.Fb=function n(e){return e1(this,e)};lce.Sg=function n(){return tyn(this)};lce.Pg=function n(){return this.b};lce.Hb=function n(){return Mln(this.b)};lce.Ib=function n(){return this.b};var Uet=YW(g3n,"Property",11);wDn(671,1,l2n,Ap);lce.Ne=function n(e,t){return mgn(this,bG(e,96),bG(t,96))};lce.Fb=function n(e){return this===e};lce.Oe=function n(){return new id(this)};var Get=YW(g3n,"PropertyHolderComparator",671);wDn(709,1,NZn,Lp);lce.Nb=function n(e){Az(this,e)};lce.Pb=function n(){return Pen(this)};lce.Qb=function n(){Bj()};lce.Ob=function n(){return!!this.a};var qet=YW(Ute,"ElkGraphUtil/AncestorIterator",709);var Xet=$q(Ete,"EList");wDn(70,56,{20:1,31:1,56:1,16:1,15:1,70:1,61:1});lce.bd=function n(e,t){Fdn(this,e,t)};lce.Fc=function n(e){return cen(this,e)};lce.cd=function n(e,t){return phn(this,e,t)};lce.Gc=function n(e){return NW(this,e)};lce.Ii=function n(){return new aR(this)};lce.Ji=function n(){return new cR(this)};lce.Ki=function n(e){return dcn(this,e)};lce.Li=function n(){return true};lce.Mi=function n(e,t){};lce.Ni=function n(){};lce.Oi=function n(e,t){xnn(this,e,t)};lce.Pi=function n(e,t,r){};lce.Qi=function n(e,t){};lce.Ri=function n(e,t,r){};lce.Fb=function n(e){return W_n(this,e)};lce.Hb=function n(){return Xfn(this)};lce.Si=function n(){return false};lce.Kc=function n(){return new _D(this)};lce.ed=function n(){return new iR(this)};lce.fd=function n(e){var t;t=this.gc();if(e<0||e>t)throw dm(new m_(e,t));return new eW(this,e)};lce.Ui=function n(e,t){this.Ti(e,this.dd(t))};lce.Mc=function n(e){return orn(this,e)};lce.Wi=function n(e,t){return t};lce.hd=function n(e,t){return zyn(this,e,t)};lce.Ib=function n(){return Cvn(this)};lce.Yi=function n(){return true};lce.Zi=function n(e,t){return yln(this,t)};var Vet=YW(Ete,"AbstractEList",70);wDn(66,70,zte,vo,_in,Vsn);lce.Ei=function n(e,t){return LCn(this,e,t)};lce.Fi=function n(e){return eTn(this,e)};lce.Gi=function n(e,t){udn(this,e,t)};lce.Hi=function n(e){Y9(this,e)};lce.$i=function n(e){return Den(this,e)};lce.$b=function n(){Z9(this)};lce.Hc=function n(e){return wSn(this,e)};lce.Xb=function n(e){return Yin(this,e)};lce._i=function n(e){var t,r,i;++this.j;r=this.g==null?0:this.g.length;if(e>r){i=this.g;t=r+(r/2|0)+4;t=0){this.gd(t);return true}else{return false}};lce.Xi=function n(e,t){return this.Dj(e,this.Zi(e,t))};lce.gc=function n(){return this.Ej()};lce.Pc=function n(){return this.Fj()};lce.Qc=function n(e){return this.Gj(e)};lce.Ib=function n(){return this.Hj()};var ftt=YW(Ete,"DelegatingEList",2093);wDn(2094,2093,Kre);lce.Ei=function n(e,t){return kGn(this,e,t)};lce.Fi=function n(e){return this.Ei(this.Ej(),e)};lce.Gi=function n(e,t){fDn(this,e,t)};lce.Hi=function n(e){A$n(this,e)};lce.Li=function n(){return!this.Mj()};lce.$b=function n(){qVn(this)};lce.Ij=function n(e,t,r,i,a){return new YZ(this,e,t,r,i,a)};lce.Jj=function n(e){Pon(this.jj(),e)};lce.Kj=function n(){return null};lce.Lj=function n(){return-1};lce.jj=function n(){return null};lce.Mj=function n(){return false};lce.Nj=function n(e,t){return t};lce.Oj=function n(e,t){return t};lce.Pj=function n(){return false};lce.Qj=function n(){return!this.Aj()};lce.Ti=function n(e,t){var r,i;if(this.Pj()){i=this.Qj();r=MIn(this,e,t);this.Jj(this.Ij(7,Bwn(t),r,e,i));return r}else{return MIn(this,e,t)}};lce.gd=function n(e){var t,r,i,a;if(this.Pj()){r=null;i=this.Qj();t=this.Ij(4,a=Dq(this,e),null,e,i);if(this.Mj()&&!!a){r=this.Oj(a,r);if(!r){this.Jj(t)}else{r.nj(t);r.oj()}}else{if(!r){this.Jj(t)}else{r.nj(t);r.oj()}}return a}else{a=Dq(this,e);if(this.Mj()&&!!a){r=this.Oj(a,null);!!r&&r.oj()}return a}};lce.Xi=function n(e,t){return yGn(this,e,t)};var htt=YW(Hee,"DelegatingNotifyingListImpl",2094);wDn(152,1,Fre);lce.nj=function n(e){return EPn(this,e)};lce.oj=function n(){Ntn(this)};lce.gj=function n(){return this.d};lce.Kj=function n(){return null};lce.Rj=function n(){return null};lce.hj=function n(e){return-1};lce.ij=function n(){return DFn(this)};lce.jj=function n(){return null};lce.kj=function n(){return xFn(this)};lce.lj=function n(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};lce.Sj=function n(){return false};lce.mj=function n(e){var t,r,i,a,c,u,s,o,f,h,l;switch(this.d){case 1:case 2:{a=e.gj();switch(a){case 1:case 2:{c=e.jj();if(BA(c)===BA(this.jj())&&this.hj(null)==e.hj(null)){this.g=e.ij();e.gj()==1&&(this.d=1);return true}}}}case 4:{a=e.gj();switch(a){case 4:{c=e.jj();if(BA(c)===BA(this.jj())&&this.hj(null)==e.hj(null)){f=Ezn(this);o=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;u=e.lj();this.d=6;l=new _in(2);if(o<=u){cen(l,this.n);cen(l,e.kj());this.g=zfn(fT(Ght,1),z1n,28,15,[this.o=o,u+1])}else{cen(l,e.kj());cen(l,this.n);this.g=zfn(fT(Ght,1),z1n,28,15,[this.o=u,o])}this.n=l;f||(this.o=-2-this.o-1);return true}break}}break}case 6:{a=e.gj();switch(a){case 4:{c=e.jj();if(BA(c)===BA(this.jj())&&this.hj(null)==e.hj(null)){f=Ezn(this);u=e.lj();h=bG(this.g,53);i=$nn(Ght,z1n,28,h.length+1,15,1);t=0;while(t>>0,t.toString(16)));i.a+=" (eventType: ";switch(this.d){case 1:{i.a+="SET";break}case 2:{i.a+="UNSET";break}case 3:{i.a+="ADD";break}case 5:{i.a+="ADD_MANY";break}case 4:{i.a+="REMOVE";break}case 6:{i.a+="REMOVE_MANY";break}case 7:{i.a+="MOVE";break}case 8:{i.a+="REMOVING_ADAPTER";break}case 9:{i.a+="RESOLVE";break}default:{xj(i,this.d);break}}MHn(this)&&(i.a+=", touch: true",i);i.a+=", position: ";xj(i,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);i.a+=", notifier: ";YA(i,this.jj());i.a+=", feature: ";YA(i,this.Kj());i.a+=", oldValue: ";YA(i,xFn(this));i.a+=", newValue: ";if(this.d==6&&G$(this.g,53)){r=bG(this.g,53);i.a+="[";for(e=0;e10){if(!this.b||this.c.j!=this.a){this.b=new lX(this);this.a=this.j}return fS(this.b,e)}else{return wSn(this,e)}};lce.Yi=function n(){return true};lce.a=0;var ptt=YW(Ete,"AbstractEList/1",966);wDn(302,77,p0n,m_);var mtt=YW(Ete,"AbstractEList/BasicIndexOutOfBoundsException",302);wDn(37,1,NZn,_D);lce.Nb=function n(e){Az(this,e)};lce.Xj=function n(){if(this.i.j!=this.f){throw dm(new Gm)}};lce.Yj=function n(){return iyn(this)};lce.Ob=function n(){return this.e!=this.i.gc()};lce.Pb=function n(){return this.Yj()};lce.Qb=function n(){FSn(this)};lce.e=0;lce.f=0;lce.g=-1;var ktt=YW(Ete,"AbstractEList/EIterator",37);wDn(286,37,HZn,iR,eW);lce.Qb=function n(){FSn(this)};lce.Rb=function n(e){Apn(this,e)};lce.Zj=function n(){var e;try{e=this.d.Xb(--this.e);this.Xj();this.g=this.e;return e}catch(t){t=Ofn(t);if(G$(t,77)){this.Xj();throw dm(new Xm)}else throw dm(t)}};lce.$j=function n(e){fTn(this,e)};lce.Sb=function n(){return this.e!=0};lce.Tb=function n(){return this.e};lce.Ub=function n(){return this.Zj()};lce.Vb=function n(){return this.e-1};lce.Wb=function n(e){this.$j(e)};var ytt=YW(Ete,"AbstractEList/EListIterator",286);wDn(355,37,NZn,aR);lce.Yj=function n(){return ayn(this)};lce.Qb=function n(){throw dm(new Um)};var Mtt=YW(Ete,"AbstractEList/NonResolvingEIterator",355);wDn(398,286,HZn,cR,K_);lce.Rb=function n(e){throw dm(new Um)};lce.Yj=function n(){var e;try{e=this.c.Vi(this.e);this.Xj();this.g=this.e++;return e}catch(t){t=Ofn(t);if(G$(t,77)){this.Xj();throw dm(new Xm)}else throw dm(t)}};lce.Zj=function n(){var e;try{e=this.c.Vi(--this.e);this.Xj();this.g=this.e;return e}catch(t){t=Ofn(t);if(G$(t,77)){this.Xj();throw dm(new Xm)}else throw dm(t)}};lce.Qb=function n(){throw dm(new Um)};lce.Wb=function n(e){throw dm(new Um)};var Ttt=YW(Ete,"AbstractEList/NonResolvingEListIterator",398);wDn(2080,70,Hre);lce.Ei=function n(e,t){var r,i,a,c,u,s,o,f,h,l,b;a=t.gc();if(a!=0){f=bG(Ron(this.a,4),129);h=f==null?0:f.length;b=h+a;i=Yln(this,b);l=h-e;l>0&&QGn(f,e,i,e+a,l);o=t.Kc();for(u=0;ur)throw dm(new m_(e,r));return new QJ(this,e)};lce.$b=function n(){var e,t;++this.j;e=bG(Ron(this.a,4),129);t=e==null?0:e.length;Lkn(this,null);xnn(this,t,e)};lce.Hc=function n(e){var t,r,i,a,c;t=bG(Ron(this.a,4),129);if(t!=null){if(e!=null){for(i=t,a=0,c=i.length;a=r)throw dm(new m_(e,r));return t[e]};lce.dd=function n(e){var t,r,i;t=bG(Ron(this.a,4),129);if(t!=null){if(e!=null){for(r=0,i=t.length;rr)throw dm(new m_(e,r));return new WJ(this,e)};lce.Ti=function n(e,t){var r,i,a;r=vmn(this);a=r==null?0:r.length;if(e>=a)throw dm(new kM(qte+e+Xte+a));if(t>=a)throw dm(new kM(Vte+t+Xte+a));i=r[t];if(e!=t){e0&&QGn(e,0,t,0,r);return t};lce.Qc=function n(e){var t,r,i;t=bG(Ron(this.a,4),129);i=t==null?0:t.length;if(i>0){if(e.lengthi&&bQ(e,i,null);return e};var jtt;var Ett=YW(Ete,"ArrayDelegatingEList",2080);wDn(1051,37,NZn,P9);lce.Xj=function n(){if(this.b.j!=this.f||BA(bG(Ron(this.b.a,4),129))!==BA(this.a)){throw dm(new Gm)}};lce.Qb=function n(){FSn(this);this.a=bG(Ron(this.b.a,4),129)};var Stt=YW(Ete,"ArrayDelegatingEList/EIterator",1051);wDn(722,286,HZn,Mz,WJ);lce.Xj=function n(){if(this.b.j!=this.f||BA(bG(Ron(this.b.a,4),129))!==BA(this.a)){throw dm(new Gm)}};lce.$j=function n(e){fTn(this,e);this.a=bG(Ron(this.b.a,4),129)};lce.Qb=function n(){FSn(this);this.a=bG(Ron(this.b.a,4),129)};var Ptt=YW(Ete,"ArrayDelegatingEList/EListIterator",722);wDn(1052,355,NZn,C9);lce.Xj=function n(){if(this.b.j!=this.f||BA(bG(Ron(this.b.a,4),129))!==BA(this.a)){throw dm(new Gm)}};var Ctt=YW(Ete,"ArrayDelegatingEList/NonResolvingEIterator",1052);wDn(723,398,HZn,Tz,QJ);lce.Xj=function n(){if(this.b.j!=this.f||BA(bG(Ron(this.b.a,4),129))!==BA(this.a)){throw dm(new Gm)}};var Itt=YW(Ete,"ArrayDelegatingEList/NonResolvingEListIterator",723);wDn(615,302,p0n,ML);var Ott=YW(Ete,"BasicEList/BasicIndexOutOfBoundsException",615);wDn(710,66,zte,xA);lce.bd=function n(e,t){throw dm(new Um)};lce.Fc=function n(e){throw dm(new Um)};lce.cd=function n(e,t){throw dm(new Um)};lce.Gc=function n(e){throw dm(new Um)};lce.$b=function n(){throw dm(new Um)};lce._i=function n(e){throw dm(new Um)};lce.Kc=function n(){return this.Ii()};lce.ed=function n(){return this.Ji()};lce.fd=function n(e){return this.Ki(e)};lce.Ti=function n(e,t){throw dm(new Um)};lce.Ui=function n(e,t){throw dm(new Um)};lce.gd=function n(e){throw dm(new Um)};lce.Mc=function n(e){throw dm(new Um)};lce.hd=function n(e,t){throw dm(new Um)};var Att=YW(Ete,"BasicEList/UnmodifiableEList",710);wDn(721,1,{3:1,20:1,16:1,15:1,61:1,597:1});lce.bd=function n(e,t){rD(this,e,bG(t,44))};lce.Fc=function n(e){return rK(this,bG(e,44))};lce.Jc=function n(e){Y8(this,e)};lce.Xb=function n(e){return bG(Yin(this.c,e),136)};lce.Ti=function n(e,t){return bG(this.c.Ti(e,t),44)};lce.Ui=function n(e,t){iD(this,e,bG(t,44))};lce.Lc=function n(){return new gX(null,new d3(this,16))};lce.gd=function n(e){return bG(this.c.gd(e),44)};lce.hd=function n(e,t){return OW(this,e,bG(t,44))};lce.jd=function n(e){Run(this,e)};lce.Nc=function n(){return new d3(this,16)};lce.Oc=function n(){return new gX(null,new d3(this,16))};lce.cd=function n(e,t){return this.c.cd(e,t)};lce.Gc=function n(e){return this.c.Gc(e)};lce.$b=function n(){this.c.$b()};lce.Hc=function n(e){return this.c.Hc(e)};lce.Ic=function n(e){return Sfn(this.c,e)};lce._j=function n(){var e,t,r;if(this.d==null){this.d=$nn(zet,Ure,66,2*this.f+1,0,1);r=this.e;this.f=0;for(t=this.c.Kc();t.e!=t.i.gc();){e=bG(t.Yj(),136);pMn(this,e)}this.e=r}};lce.Fb=function n(e){return V_(this,e)};lce.Hb=function n(){return Xfn(this.c)};lce.dd=function n(e){return this.c.dd(e)};lce.ak=function n(){this.c=new $p(this)};lce.dc=function n(){return this.f==0};lce.Kc=function n(){return this.c.Kc()};lce.ed=function n(){return this.c.ed()};lce.fd=function n(e){return this.c.fd(e)};lce.bk=function n(){return Cnn(this)};lce.ck=function n(e,t,r){return new BU(e,t,r)};lce.dk=function n(){return new mo};lce.Mc=function n(e){return bcn(this,e)};lce.gc=function n(){return this.f};lce.kd=function n(e,t){return new N2(this.c,e,t)};lce.Pc=function n(){return this.c.Pc()};lce.Qc=function n(e){return this.c.Qc(e)};lce.Ib=function n(){return Cvn(this.c)};lce.e=0;lce.f=0;var Ltt=YW(Ete,"BasicEMap",721);wDn(1046,66,zte,$p);lce.Mi=function n(e,t){ek(this,bG(t,136))};lce.Pi=function n(e,t,r){var i;++(i=this,bG(t,136),i).a.e};lce.Qi=function n(e,t){tk(this,bG(t,136))};lce.Ri=function n(e,t,r){gR(this,bG(t,136),bG(r,136))};lce.Oi=function n(e,t){Don(this.a)};var Ntt=YW(Ete,"BasicEMap/1",1046);wDn(1047,66,zte,mo);lce.aj=function n(e){return $nn(Htt,Gre,621,e,0,1)};var $tt=YW(Ete,"BasicEMap/2",1047);wDn(1048,RZn,KZn,Dp);lce.$b=function n(){this.a.c.$b()};lce.Hc=function n(e){return Spn(this.a,e)};lce.Kc=function n(){return this.a.f==0?(OK(),Gtt.a):new hj(this.a)};lce.Mc=function n(e){var t;t=this.a.f;Amn(this.a,e);return this.a.f!=t};lce.gc=function n(){return this.a.f};var Dtt=YW(Ete,"BasicEMap/3",1048);wDn(1049,31,xZn,xp);lce.$b=function n(){this.a.c.$b()};lce.Hc=function n(e){return Q_n(this.a,e)};lce.Kc=function n(){return this.a.f==0?(OK(),Gtt.a):new lj(this.a)};lce.gc=function n(){return this.a.f};var xtt=YW(Ete,"BasicEMap/4",1049);wDn(1050,RZn,KZn,Rp);lce.$b=function n(){this.a.c.$b()};lce.Hc=function n(e){var t,r,i,a,c,u,s,o,f;if(this.a.f>0&&G$(e,44)){this.a._j();o=bG(e,44);s=o.ld();a=s==null?0:Vun(s);c=sF(this.a,a);t=this.a.d[c];if(t){r=bG(t.g,379);f=t.i;for(u=0;u"+this.c};lce.a=0;var Htt=YW(Ete,"BasicEMap/EntryImpl",621);wDn(546,1,{},ko);var Utt=YW(Ete,"BasicEMap/View",546);var Gtt;wDn(783,1,{});lce.Fb=function n(e){return LDn((dZ(),lbe),e)};lce.Hb=function n(){return iln((dZ(),lbe))};lce.Ib=function n(){return jIn((dZ(),lbe))};var qtt=YW(Ete,"ECollections/BasicEmptyUnmodifiableEList",783);wDn(1348,1,HZn,yo);lce.Nb=function n(e){Az(this,e)};lce.Rb=function n(e){throw dm(new Um)};lce.Ob=function n(){return false};lce.Sb=function n(){return false};lce.Pb=function n(){throw dm(new Xm)};lce.Tb=function n(){return 0};lce.Ub=function n(){throw dm(new Xm)};lce.Vb=function n(){return-1};lce.Qb=function n(){throw dm(new Um)};lce.Wb=function n(e){throw dm(new Um)};var Xtt=YW(Ete,"ECollections/BasicEmptyUnmodifiableEList/1",1348);wDn(1346,783,{20:1,16:1,15:1,61:1},Wk);lce.bd=function n(e,t){sE()};lce.Fc=function n(e){return oE()};lce.cd=function n(e,t){return fE()};lce.Gc=function n(e){return hE()};lce.$b=function n(){lE()};lce.Hc=function n(e){return false};lce.Ic=function n(e){return false};lce.Jc=function n(e){Y8(this,e)};lce.Xb=function n(e){return lL((dZ(),lbe,e)),null};lce.dd=function n(e){return-1};lce.dc=function n(){return true};lce.Kc=function n(){return this.a};lce.ed=function n(){return this.a};lce.fd=function n(e){return this.a};lce.Ti=function n(e,t){return bE()};lce.Ui=function n(e,t){wE()};lce.Lc=function n(){return new gX(null,new d3(this,16))};lce.gd=function n(e){return dE()};lce.Mc=function n(e){return gE()};lce.hd=function n(e,t){return vE()};lce.gc=function n(){return 0};lce.jd=function n(e){Run(this,e)};lce.Nc=function n(){return new d3(this,16)};lce.Oc=function n(){return new gX(null,new d3(this,16))};lce.kd=function n(e,t){return dZ(),new N2(lbe,e,t)};lce.Pc=function n(){return AV((dZ(),lbe))};lce.Qc=function n(e){return dZ(),lTn(lbe,e)};var Vtt=YW(Ete,"ECollections/EmptyUnmodifiableEList",1346);wDn(1347,783,{20:1,16:1,15:1,61:1,597:1},Qk);lce.bd=function n(e,t){sE()};lce.Fc=function n(e){return oE()};lce.cd=function n(e,t){return fE()};lce.Gc=function n(e){return hE()};lce.$b=function n(){lE()};lce.Hc=function n(e){return false};lce.Ic=function n(e){return false};lce.Jc=function n(e){Y8(this,e)};lce.Xb=function n(e){return lL((dZ(),lbe,e)),null};lce.dd=function n(e){return-1};lce.dc=function n(){return true};lce.Kc=function n(){return this.a};lce.ed=function n(){return this.a};lce.fd=function n(e){return this.a};lce.Ti=function n(e,t){return bE()};lce.Ui=function n(e,t){wE()};lce.Lc=function n(){return new gX(null,new d3(this,16))};lce.gd=function n(e){return dE()};lce.Mc=function n(e){return gE()};lce.hd=function n(e,t){return vE()};lce.gc=function n(){return 0};lce.jd=function n(e){Run(this,e)};lce.Nc=function n(){return new d3(this,16)};lce.Oc=function n(){return new gX(null,new d3(this,16))};lce.kd=function n(e,t){return dZ(),new N2(lbe,e,t)};lce.Pc=function n(){return AV((dZ(),lbe))};lce.Qc=function n(e){return dZ(),lTn(lbe,e)};lce.bk=function n(){return dZ(),dZ(),bbe};var ztt=YW(Ete,"ECollections/EmptyUnmodifiableEMap",1347);var Wtt=$q(Ete,"Enumerator");var Qtt;wDn(288,1,{288:1},iBn);lce.Fb=function n(e){var t;if(this===e)return true;if(!G$(e,288))return false;t=bG(e,288);return this.f==t.f&&SX(this.i,t.i)&&EX(this.a,(this.f&256)!=0?(t.f&256)!=0?t.a:null:(t.f&256)!=0?null:t.a)&&EX(this.d,t.d)&&EX(this.g,t.g)&&EX(this.e,t.e)&&ryn(this,t)};lce.Hb=function n(){return this.f};lce.Ib=function n(){return _Un(this)};lce.f=0;var Jtt=0,Ytt=0,Ztt=0,nrt=0,ert=0,trt=0,rrt=0,irt=0,art=0,crt,urt=0,srt=0,ort=0,frt=0,hrt,lrt;var brt=YW(Ete,"URI",288);wDn(1121,45,_0n,Jk);lce.zc=function n(e,t){return bG(o2(this,TK(e),bG(t,288)),288)};var wrt=YW(Ete,"URI/URICache",1121);wDn(506,66,zte,lo,FX);lce.Si=function n(){return true};var drt=YW(Ete,"UniqueEList",506);wDn(590,63,E1n,Ltn);var grt=YW(Ete,"WrappedException",590);var vrt=$q(Cee,Vre);var prt=$q(Cee,zre);var mrt=$q(Cee,Wre);var krt=$q(Cee,Qre);var yrt=$q(Cee,Jre);var Mrt=$q(Cee,"EClass");var Trt=$q(Cee,"EDataType");var jrt;wDn(1233,45,_0n,Yk);lce.xc=function n(e){return HA(e)?z1(this,e):_A(GX(this.f,e))};var Ert=YW(Cee,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1233);var Srt=$q(Cee,"EEnum");var Prt=$q(Cee,Yre);var Crt=$q(Cee,Zre);var Irt=$q(Cee,nie);var Ort;var Art=$q(Cee,eie);var Lrt=$q(Cee,tie);wDn(1042,1,{},ho);lce.Ib=function n(){return"NIL"};var Nrt=YW(Cee,"EStructuralFeature/Internal/DynamicValueHolder/1",1042);var $rt;wDn(1041,45,_0n,Zk);lce.xc=function n(e){return HA(e)?z1(this,e):_A(GX(this.f,e))};var Drt=YW(Cee,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1041);var xrt=$q(Cee,rie);var Rrt=$q(Cee,"EValidator/PatternMatcher");var Krt;var Frt;var _rt;var Brt,Hrt,Urt,Grt,qrt,Xrt,Vrt,zrt,Wrt,Qrt,Jrt,Yrt,Zrt,nit,eit,tit,rit,iit,ait,cit,uit,sit,oit;var fit=$q(iie,"FeatureMap/Entry");wDn(545,1,{76:1},CA);lce.Lk=function n(){return this.a};lce.md=function n(){return this.b};var hit=YW(Jee,"BasicEObjectImpl/1",545);wDn(1040,1,aie,IA);lce.Fk=function n(e){return z9(this.a,this.b,e)};lce.Qj=function n(){return P0(this.a,this.b)};lce.Wb=function n(e){S0(this.a,this.b,e)};lce.Gk=function n(){ZQ(this.a,this.b)};var lit=YW(Jee,"BasicEObjectImpl/4",1040);wDn(2081,1,{114:1});lce.Mk=function n(e){this.e=e==0?bit:$nn(kce,jZn,1,e,5,1)};lce.li=function n(e){return this.e[e]};lce.mi=function n(e,t){this.e[e]=t};lce.ni=function n(e){this.e[e]=null};lce.Nk=function n(){return this.c};lce.Ok=function n(){throw dm(new Um)};lce.Pk=function n(){throw dm(new Um)};lce.Qk=function n(){return this.d};lce.Rk=function n(){return this.e!=null};lce.Sk=function n(e){this.c=e};lce.Tk=function n(e){throw dm(new Um)};lce.Uk=function n(e){throw dm(new Um)};lce.Vk=function n(e){this.d=e};var bit;var wit=YW(Jee,"BasicEObjectImpl/EPropertiesHolderBaseImpl",2081);wDn(192,2081,{114:1},Rl);lce.Ok=function n(){return this.a};lce.Pk=function n(){return this.b};lce.Tk=function n(e){this.a=e};lce.Uk=function n(e){this.b=e};var dit=YW(Jee,"BasicEObjectImpl/EPropertiesHolderImpl",192);wDn(516,99,Qee,Mo);lce.uh=function n(){return this.f};lce.zh=function n(){return this.k};lce.Bh=function n(e,t){this.g=e;this.i=t};lce.Dh=function n(){return(this.j&2)==0?this.ii():this.$h().Nk()};lce.Fh=function n(){return this.i};lce.wh=function n(){return(this.j&1)!=0};lce.Ph=function n(){return this.g};lce.Vh=function n(){return(this.j&4)!=0};lce.$h=function n(){return!this.k&&(this.k=new Rl),this.k};lce.ci=function n(e){this.$h().Sk(e);e?this.j|=2:this.j&=-3};lce.ei=function n(e){this.$h().Uk(e);e?this.j|=4:this.j&=-5};lce.ii=function n(){return(cQ(),_rt).S};lce.i=0;lce.j=1;var git=YW(Jee,"EObjectImpl",516);wDn(798,516,{110:1,94:1,93:1,58:1,114:1,54:1,99:1},XG);lce.li=function n(e){return this.e[e]};lce.mi=function n(e,t){this.e[e]=t};lce.ni=function n(e){this.e[e]=null};lce.Dh=function n(){return this.d};lce.Ih=function n(e){return upn(this.d,e)};lce.Kh=function n(){return this.d};lce.Oh=function n(){return this.e!=null};lce.$h=function n(){!this.k&&(this.k=new To);return this.k};lce.ci=function n(e){this.d=e};lce.hi=function n(){var e;if(this.e==null){e=sQ(this.d);this.e=e==0?vit:$nn(kce,jZn,1,e,5,1)}return this};lce.ji=function n(){return 0};var vit;var pit=YW(Jee,"DynamicEObjectImpl",798);wDn(1522,798,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1},Oq);lce.Fb=function n(e){return this===e};lce.Hb=function n(){return Bx(this)};lce.ci=function n(e){this.d=e;this.b=OKn(e,"key");this.c=OKn(e,ute)};lce.Bi=function n(){var e;if(this.a==-1){e=Ytn(this,this.b);this.a=e==null?0:Vun(e)}return this.a};lce.ld=function n(){return Ytn(this,this.b)};lce.md=function n(){return Ytn(this,this.c)};lce.Ci=function n(e){this.a=e};lce.Di=function n(e){S0(this,this.b,e)};lce.nd=function n(e){var t;t=Ytn(this,this.c);S0(this,this.c,e);return t};lce.a=0;var mit=YW(Jee,"DynamicEObjectImpl/BasicEMapEntry",1522);wDn(1523,1,{114:1},To);lce.Mk=function n(e){throw dm(new Um)};lce.li=function n(e){throw dm(new Um)};lce.mi=function n(e,t){throw dm(new Um)};lce.ni=function n(e){throw dm(new Um)};lce.Nk=function n(){throw dm(new Um)};lce.Ok=function n(){return this.a};lce.Pk=function n(){return this.b};lce.Qk=function n(){return this.c};lce.Rk=function n(){throw dm(new Um)};lce.Sk=function n(e){throw dm(new Um)};lce.Tk=function n(e){this.a=e};lce.Uk=function n(e){this.b=e};lce.Vk=function n(e){this.c=e};var kit=YW(Jee,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1523);wDn(519,158,{110:1,94:1,93:1,598:1,155:1,58:1,114:1,54:1,99:1,519:1,158:1,119:1,120:1},jo);lce.Ah=function n(e){return rEn(this,e)};lce.Lh=function n(e,t,r){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.d;case 2:return r?(!this.b&&(this.b=new JR((rZn(),cit),Nat,this)),this.b):(!this.b&&(this.b=new JR((rZn(),cit),Nat,this)),Cnn(this.b));case 3:return G0(this);case 4:return!this.a&&(this.a=new PD(x7e,this,4)),this.a;case 5:return!this.c&&(this.c=new DD(x7e,this,5)),this.c}return Fen(this,e-sQ((rZn(),Brt)),uin((i=bG(Ron(this,16),29),!i?Brt:i),e),t,r)};lce.Sh=function n(e,t,r){var i,a,c;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kpn(this.Ab,e,r);case 3:!!this.Cb&&(r=(a=this.Db>>16,a>=0?rEn(this,r):this.Cb.Th(this,-1-a,null,r)));return yV(this,bG(e,155),r)}return c=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),Brt):i),t),69),c.wk().zk(this,Fmn(this),t-sQ((rZn(),Brt)),e,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 2:return!this.b&&(this.b=new JR((rZn(),cit),Nat,this)),W_(this.b,e,r);case 3:return yV(this,null,r);case 4:return!this.a&&(this.a=new PD(x7e,this,4)),Kyn(this.a,e,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),Brt):i),t),69),a.wk().Ak(this,Fmn(this),t-sQ((rZn(),Brt)),e,r)};lce.Wh=function n(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return!!this.b&&this.b.f!=0;case 3:return!!G0(this);case 4:return!!this.a&&this.a.i!=0;case 5:return!!this.c&&this.c.i!=0}return v5(this,e-sQ((rZn(),Brt)),uin((t=bG(Ron(this,16),29),!t?Brt:t),e))};lce.bi=function n(e,t){var r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:Bq(this,TK(t));return;case 2:!this.b&&(this.b=new JR((rZn(),cit),Nat,this));ton(this.b,t);return;case 3:EKn(this,bG(t,155));return;case 4:!this.a&&(this.a=new PD(x7e,this,4));NVn(this.a);!this.a&&(this.a=new PD(x7e,this,4));NW(this.a,bG(t,16));return;case 5:!this.c&&(this.c=new DD(x7e,this,5));NVn(this.c);!this.c&&(this.c=new DD(x7e,this,5));NW(this.c,bG(t,16));return}vvn(this,e-sQ((rZn(),Brt)),uin((r=bG(Ron(this,16),29),!r?Brt:r),e),t)};lce.ii=function n(){return rZn(),Brt};lce.ki=function n(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:run(this,null);return;case 2:!this.b&&(this.b=new JR((rZn(),cit),Nat,this));this.b.c.$b();return;case 3:EKn(this,null);return;case 4:!this.a&&(this.a=new PD(x7e,this,4));NVn(this.a);return;case 5:!this.c&&(this.c=new DD(x7e,this,5));NVn(this.c);return}wdn(this,e-sQ((rZn(),Brt)),uin((t=bG(Ron(this,16),29),!t?Brt:t),e))};lce.Ib=function n(){return gdn(this)};lce.d=null;var yit=YW(Jee,"EAnnotationImpl",519);wDn(141,721,cie,ven);lce.Gi=function n(e,t){QN(this,e,bG(t,44))};lce.Wk=function n(e,t){return z_(this,bG(e,44),t)};lce.$i=function n(e){return bG(bG(this.c,71).$i(e),136)};lce.Ii=function n(){return bG(this.c,71).Ii()};lce.Ji=function n(){return bG(this.c,71).Ji()};lce.Ki=function n(e){return bG(this.c,71).Ki(e)};lce.Xk=function n(e,t){return W_(this,e,t)};lce.Fk=function n(e){return bG(this.c,79).Fk(e)};lce.ak=function n(){};lce.Qj=function n(){return bG(this.c,79).Qj()};lce.ck=function n(e,t,r){var i;i=bG(Vin(this.b).wi().si(this.b),136);i.Ci(e);i.Di(t);i.nd(r);return i};lce.dk=function n(){return new Zp(this)};lce.Wb=function n(e){ton(this,e)};lce.Gk=function n(){bG(this.c,79).Gk()};var Mit=YW(iie,"EcoreEMap",141);wDn(165,141,cie,JR);lce._j=function n(){var e,t,r,i,a,c;if(this.d==null){c=$nn(zet,Ure,66,2*this.f+1,0,1);for(r=this.c.Kc();r.e!=r.i.gc();){t=bG(r.Yj(),136);i=t.Bi();a=(i&pZn)%c.length;e=c[a];!e&&(e=c[a]=new Zp(this));e.Fc(t)}this.d=c}};var Tit=YW(Jee,"EAnnotationImpl/1",165);wDn(292,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,481:1,54:1,99:1,158:1,292:1,119:1,120:1});lce.Lh=function n(e,t,r){var i,a;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Qx(),(this.Bb&256)!=0?true:false;case 3:return Qx(),(this.Bb&512)!=0?true:false;case 4:return Bwn(this.s);case 5:return Bwn(this.t);case 6:return Qx(),this.Jk()?true:false;case 7:return Qx(),a=this.s,a>=1?true:false;case 8:if(t)return pEn(this);return this.r;case 9:return this.q}return Fen(this,e-sQ(this.ii()),uin((i=bG(Ron(this,16),29),!i?this.ii():i),e),t,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 9:return $W(this,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?this.ii():i),t),69),a.wk().Ak(this,Fmn(this),t-sQ(this.ii()),e,r)};lce.Wh=function n(e){var t,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&SQ(this.q).i==0;case 9:return!!this.q&&!(!!this.r&&!this.q.e&&SQ(this.q).i==0)}return v5(this,e-sQ(this.ii()),uin((t=bG(Ron(this,16),29),!t?this.ii():t),e))};lce.bi=function n(e,t){var r,i;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:this.ui(TK(t));return;case 2:kdn(this,lM(yK(t)));return;case 3:Tdn(this,lM(yK(t)));return;case 4:Lan(this,bG(t,17).a);return;case 5:this.Zk(bG(t,17).a);return;case 8:Ubn(this,bG(t,142));return;case 9:i=NCn(this,bG(t,89),null);!!i&&i.oj();return}vvn(this,e-sQ(this.ii()),uin((r=bG(Ron(this,16),29),!r?this.ii():r),e),t)};lce.ii=function n(){return rZn(),sit};lce.ki=function n(e){var t,r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:this.ui(null);return;case 2:kdn(this,true);return;case 3:Tdn(this,true);return;case 4:Lan(this,0);return;case 5:this.Zk(1);return;case 8:Ubn(this,null);return;case 9:r=NCn(this,null,null);!!r&&r.oj();return}wdn(this,e-sQ(this.ii()),uin((t=bG(Ron(this,16),29),!t?this.ii():t),e))};lce.pi=function n(){pEn(this);this.Bb|=1};lce.Hk=function n(){return pEn(this)};lce.Ik=function n(){return this.t};lce.Jk=function n(){var e;return e=this.t,e>1||e==-1};lce.Si=function n(){return(this.Bb&512)!=0};lce.Yk=function n(e,t){return rdn(this,e,t)};lce.Zk=function n(e){Nan(this,e)};lce.Ib=function n(){return R$n(this)};lce.s=0;lce.t=1;var jit=YW(Jee,"ETypedElementImpl",292);wDn(462,292,{110:1,94:1,93:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,462:1,292:1,119:1,120:1,692:1});lce.Ah=function n(e){return Mjn(this,e)};lce.Lh=function n(e,t,r){var i,a;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Qx(),(this.Bb&256)!=0?true:false;case 3:return Qx(),(this.Bb&512)!=0?true:false;case 4:return Bwn(this.s);case 5:return Bwn(this.t);case 6:return Qx(),this.Jk()?true:false;case 7:return Qx(),a=this.s,a>=1?true:false;case 8:if(t)return pEn(this);return this.r;case 9:return this.q;case 10:return Qx(),(this.Bb&b1n)!=0?true:false;case 11:return Qx(),(this.Bb&oie)!=0?true:false;case 12:return Qx(),(this.Bb&T0n)!=0?true:false;case 13:return this.j;case 14:return KRn(this);case 15:return Qx(),(this.Bb&sie)!=0?true:false;case 16:return Qx(),(this.Bb&VZn)!=0?true:false;case 17:return U0(this)}return Fen(this,e-sQ(this.ii()),uin((i=bG(Ron(this,16),29),!i?this.ii():i),e),t,r)};lce.Sh=function n(e,t,r){var i,a,c;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kpn(this.Ab,e,r);case 17:!!this.Cb&&(r=(a=this.Db>>16,a>=0?Mjn(this,r):this.Cb.Th(this,-1-a,null,r)));return FUn(this,e,17,r)}return c=bG(uin((i=bG(Ron(this,16),29),!i?this.ii():i),t),69),c.wk().zk(this,Fmn(this),t-sQ(this.ii()),e,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 9:return $W(this,r);case 17:return FUn(this,null,17,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?this.ii():i),t),69),a.wk().Ak(this,Fmn(this),t-sQ(this.ii()),e,r)};lce.Wh=function n(e){var t,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&SQ(this.q).i==0;case 9:return!!this.q&&!(!!this.r&&!this.q.e&&SQ(this.q).i==0);case 10:return(this.Bb&b1n)==0;case 11:return(this.Bb&oie)!=0;case 12:return(this.Bb&T0n)!=0;case 13:return this.j!=null;case 14:return KRn(this)!=null;case 15:return(this.Bb&sie)!=0;case 16:return(this.Bb&VZn)!=0;case 17:return!!U0(this)}return v5(this,e-sQ(this.ii()),uin((t=bG(Ron(this,16),29),!t?this.ii():t),e))};lce.bi=function n(e,t){var r,i;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:y2(this,TK(t));return;case 2:kdn(this,lM(yK(t)));return;case 3:Tdn(this,lM(yK(t)));return;case 4:Lan(this,bG(t,17).a);return;case 5:this.Zk(bG(t,17).a);return;case 8:Ubn(this,bG(t,142));return;case 9:i=NCn(this,bG(t,89),null);!!i&&i.oj();return;case 10:ngn(this,lM(yK(t)));return;case 11:rgn(this,lM(yK(t)));return;case 12:egn(this,lM(yK(t)));return;case 13:TA(this,TK(t));return;case 15:tgn(this,lM(yK(t)));return;case 16:Ngn(this,lM(yK(t)));return}vvn(this,e-sQ(this.ii()),uin((r=bG(Ron(this,16),29),!r?this.ii():r),e),t)};lce.ii=function n(){return rZn(),uit};lce.ki=function n(e){var t,r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:G$(this.Cb,90)&&SLn(S9(bG(this.Cb,90)),4);Qun(this,null);return;case 2:kdn(this,true);return;case 3:Tdn(this,true);return;case 4:Lan(this,0);return;case 5:this.Zk(1);return;case 8:Ubn(this,null);return;case 9:r=NCn(this,null,null);!!r&&r.oj();return;case 10:ngn(this,true);return;case 11:rgn(this,false);return;case 12:egn(this,false);return;case 13:this.i=null;vun(this,null);return;case 15:tgn(this,false);return;case 16:Ngn(this,false);return}wdn(this,e-sQ(this.ii()),uin((t=bG(Ron(this,16),29),!t?this.ii():t),e))};lce.pi=function n(){XJ(Ktn((yAn(),Vut),this));pEn(this);this.Bb|=1};lce.pk=function n(){return this.f};lce.ik=function n(){return KRn(this)};lce.qk=function n(){return U0(this)};lce.uk=function n(){return null};lce.$k=function n(){return this.k};lce.Lj=function n(){return this.n};lce.vk=function n(){return QSn(this)};lce.wk=function n(){var e,t,r,i,a,c,u,s,o;if(!this.p){r=U0(this);(r.i==null&&uqn(r),r.i).length;i=this.uk();!!i&&sQ(U0(i));a=pEn(this);u=a.kk();e=!u?null:(u.i&1)!=0?u==qht?Uhe:u==Ght?tle:u==Wht?Zhe:u==zht?Yhe:u==Xht?ale:u==Qht?wle:u==Vht?Xhe:Whe:u;t=KRn(this);s=a.ik();Zgn(this);(this.Bb&VZn)!=0&&(!!(c=fSn((yAn(),Vut),r))&&c!=this||!!(c=q3(Ktn(Vut,this))))?this.p=new AA(this,c):this.Jk()?this.al()?!i?(this.Bb&sie)!=0?!e?this.bl()?this.p=new WZ(42,this):this.p=new WZ(0,this):e==vue?this.p=new HU(50,xnt,this):this.bl()?this.p=new HU(43,e,this):this.p=new HU(1,e,this):!e?this.bl()?this.p=new WZ(44,this):this.p=new WZ(2,this):e==vue?this.p=new HU(41,xnt,this):this.bl()?this.p=new HU(45,e,this):this.p=new HU(3,e,this):(this.Bb&sie)!=0?!e?this.bl()?this.p=new o8(46,this,i):this.p=new o8(4,this,i):this.bl()?this.p=new NY(47,e,this,i):this.p=new NY(5,e,this,i):!e?this.bl()?this.p=new o8(48,this,i):this.p=new o8(6,this,i):this.bl()?this.p=new NY(49,e,this,i):this.p=new NY(7,e,this,i):G$(a,156)?e==fit?this.p=new WZ(40,this):(this.Bb&512)!=0?(this.Bb&sie)!=0?!e?this.p=new WZ(8,this):this.p=new HU(9,e,this):!e?this.p=new WZ(10,this):this.p=new HU(11,e,this):(this.Bb&sie)!=0?!e?this.p=new WZ(12,this):this.p=new HU(13,e,this):!e?this.p=new WZ(14,this):this.p=new HU(15,e,this):!i?this.bl()?(this.Bb&sie)!=0?!e?this.p=new WZ(16,this):this.p=new HU(17,e,this):!e?this.p=new WZ(18,this):this.p=new HU(19,e,this):(this.Bb&sie)!=0?!e?this.p=new WZ(20,this):this.p=new HU(21,e,this):!e?this.p=new WZ(22,this):this.p=new HU(23,e,this):(o=i.t,o>1||o==-1?this.bl()?(this.Bb&sie)!=0?!e?this.p=new o8(24,this,i):this.p=new NY(25,e,this,i):!e?this.p=new o8(26,this,i):this.p=new NY(27,e,this,i):(this.Bb&sie)!=0?!e?this.p=new o8(28,this,i):this.p=new NY(29,e,this,i):!e?this.p=new o8(30,this,i):this.p=new NY(31,e,this,i):this.bl()?(this.Bb&sie)!=0?!e?this.p=new o8(32,this,i):this.p=new NY(33,e,this,i):!e?this.p=new o8(34,this,i):this.p=new NY(35,e,this,i):(this.Bb&sie)!=0?!e?this.p=new o8(36,this,i):this.p=new NY(37,e,this,i):!e?this.p=new o8(38,this,i):this.p=new NY(39,e,this,i)):this._k()?this.bl()?this.p=new UU(bG(a,29),this,i):this.p=new q1(bG(a,29),this,i):G$(a,156)?e==fit?this.p=new WZ(40,this):(this.Bb&sie)!=0?!e?this.p=new xY(bG(a,156),t,s,this):this.p=new pV(t,s,this,(Lpn(),u==Ght?Qat:u==qht?qat:u==Xht?Jat:u==Wht?Wat:u==zht?zat:u==Qht?Zat:u==Vht?Xat:u==Uht?Vat:Yat)):!e?this.p=new DY(bG(a,156),t,s,this):this.p=new vV(t,s,this,(Lpn(),u==Ght?Qat:u==qht?qat:u==Xht?Jat:u==Wht?Wat:u==zht?zat:u==Qht?Zat:u==Vht?Xat:u==Uht?Vat:Yat)):this.al()?!i?(this.Bb&sie)!=0?this.bl()?this.p=new fK(bG(a,29),this):this.p=new sK(bG(a,29),this):this.bl()?this.p=new uK(bG(a,29),this):this.p=new cK(bG(a,29),this):(this.Bb&sie)!=0?this.bl()?this.p=new WU(bG(a,29),this,i):this.p=new zU(bG(a,29),this,i):this.bl()?this.p=new VU(bG(a,29),this,i):this.p=new GU(bG(a,29),this,i):this.bl()?!i?(this.Bb&sie)!=0?this.p=new hK(bG(a,29),this):this.p=new oK(bG(a,29),this):(this.Bb&sie)!=0?this.p=new QU(bG(a,29),this,i):this.p=new qU(bG(a,29),this,i):!i?(this.Bb&sie)!=0?this.p=new lK(bG(a,29),this):this.p=new DX(bG(a,29),this):(this.Bb&sie)!=0?this.p=new JU(bG(a,29),this,i):this.p=new XU(bG(a,29),this,i)}return this.p};lce.rk=function n(){return(this.Bb&b1n)!=0};lce._k=function n(){return false};lce.al=function n(){return false};lce.sk=function n(){return(this.Bb&VZn)!=0};lce.xk=function n(){return urn(this)};lce.bl=function n(){return false};lce.tk=function n(){return(this.Bb&sie)!=0};lce.cl=function n(e){this.k=e};lce.ui=function n(e){y2(this,e)};lce.Ib=function n(){return PBn(this)};lce.e=false;lce.n=0;var Eit=YW(Jee,"EStructuralFeatureImpl",462);wDn(331,462,{110:1,94:1,93:1,35:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,331:1,158:1,462:1,292:1,119:1,120:1,692:1},ny);lce.Lh=function n(e,t,r){var i,a;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Qx(),(this.Bb&256)!=0?true:false;case 3:return Qx(),(this.Bb&512)!=0?true:false;case 4:return Bwn(this.s);case 5:return Bwn(this.t);case 6:return Qx(),ANn(this)?true:false;case 7:return Qx(),a=this.s,a>=1?true:false;case 8:if(t)return pEn(this);return this.r;case 9:return this.q;case 10:return Qx(),(this.Bb&b1n)!=0?true:false;case 11:return Qx(),(this.Bb&oie)!=0?true:false;case 12:return Qx(),(this.Bb&T0n)!=0?true:false;case 13:return this.j;case 14:return KRn(this);case 15:return Qx(),(this.Bb&sie)!=0?true:false;case 16:return Qx(),(this.Bb&VZn)!=0?true:false;case 17:return U0(this);case 18:return Qx(),(this.Bb&Wee)!=0?true:false;case 19:if(t)return Efn(this);return O7(this)}return Fen(this,e-sQ((rZn(),Hrt)),uin((i=bG(Ron(this,16),29),!i?Hrt:i),e),t,r)};lce.Wh=function n(e){var t,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return ANn(this);case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&SQ(this.q).i==0;case 9:return!!this.q&&!(!!this.r&&!this.q.e&&SQ(this.q).i==0);case 10:return(this.Bb&b1n)==0;case 11:return(this.Bb&oie)!=0;case 12:return(this.Bb&T0n)!=0;case 13:return this.j!=null;case 14:return KRn(this)!=null;case 15:return(this.Bb&sie)!=0;case 16:return(this.Bb&VZn)!=0;case 17:return!!U0(this);case 18:return(this.Bb&Wee)!=0;case 19:return!!O7(this)}return v5(this,e-sQ((rZn(),Hrt)),uin((t=bG(Ron(this,16),29),!t?Hrt:t),e))};lce.bi=function n(e,t){var r,i;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:y2(this,TK(t));return;case 2:kdn(this,lM(yK(t)));return;case 3:Tdn(this,lM(yK(t)));return;case 4:Lan(this,bG(t,17).a);return;case 5:gj(this,bG(t,17).a);return;case 8:Ubn(this,bG(t,142));return;case 9:i=NCn(this,bG(t,89),null);!!i&&i.oj();return;case 10:ngn(this,lM(yK(t)));return;case 11:rgn(this,lM(yK(t)));return;case 12:egn(this,lM(yK(t)));return;case 13:TA(this,TK(t));return;case 15:tgn(this,lM(yK(t)));return;case 16:Ngn(this,lM(yK(t)));return;case 18:Agn(this,lM(yK(t)));return}vvn(this,e-sQ((rZn(),Hrt)),uin((r=bG(Ron(this,16),29),!r?Hrt:r),e),t)};lce.ii=function n(){return rZn(),Hrt};lce.ki=function n(e){var t,r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:G$(this.Cb,90)&&SLn(S9(bG(this.Cb,90)),4);Qun(this,null);return;case 2:kdn(this,true);return;case 3:Tdn(this,true);return;case 4:Lan(this,0);return;case 5:this.b=0;Nan(this,1);return;case 8:Ubn(this,null);return;case 9:r=NCn(this,null,null);!!r&&r.oj();return;case 10:ngn(this,true);return;case 11:rgn(this,false);return;case 12:egn(this,false);return;case 13:this.i=null;vun(this,null);return;case 15:tgn(this,false);return;case 16:Ngn(this,false);return;case 18:Agn(this,false);return}wdn(this,e-sQ((rZn(),Hrt)),uin((t=bG(Ron(this,16),29),!t?Hrt:t),e))};lce.pi=function n(){Efn(this);XJ(Ktn((yAn(),Vut),this));pEn(this);this.Bb|=1};lce.Jk=function n(){return ANn(this)};lce.Yk=function n(e,t){this.b=0;this.a=null;return rdn(this,e,t)};lce.Zk=function n(e){gj(this,e)};lce.Ib=function n(){var e;if((this.Db&64)!=0)return PBn(this);e=new gx(PBn(this));e.a+=" (iD: ";Rj(e,(this.Bb&Wee)!=0);e.a+=")";return e.a};lce.b=0;var Sit=YW(Jee,"EAttributeImpl",331);wDn(364,448,{110:1,94:1,93:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,364:1,158:1,119:1,120:1,691:1});lce.dl=function n(e){return e.Dh()==this};lce.Ah=function n(e){return ZTn(this,e)};lce.Bh=function n(e,t){this.w=null;this.Db=t<<16|this.Db&255;this.Cb=e};lce.Lh=function n(e,t,r){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return qTn(this);case 4:return this.ik();case 5:return this.F;case 6:if(t)return Vin(this);return _0(this);case 7:return!this.A&&(this.A=new LD(xrt,this,7)),this.A}return Fen(this,e-sQ(this.ii()),uin((i=bG(Ron(this,16),29),!i?this.ii():i),e),t,r)};lce.Sh=function n(e,t,r){var i,a,c;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kpn(this.Ab,e,r);case 6:!!this.Cb&&(r=(a=this.Db>>16,a>=0?ZTn(this,r):this.Cb.Th(this,-1-a,null,r)));return FUn(this,e,6,r)}return c=bG(uin((i=bG(Ron(this,16),29),!i?this.ii():i),t),69),c.wk().zk(this,Fmn(this),t-sQ(this.ii()),e,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 6:return FUn(this,null,6,r);case 7:return!this.A&&(this.A=new LD(xrt,this,7)),Kyn(this.A,e,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?this.ii():i),t),69),a.wk().Ak(this,Fmn(this),t-sQ(this.ii()),e,r)};lce.Wh=function n(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!qTn(this);case 4:return this.ik()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!_0(this);case 7:return!!this.A&&this.A.i!=0}return v5(this,e-sQ(this.ii()),uin((t=bG(Ron(this,16),29),!t?this.ii():t),e))};lce.bi=function n(e,t){var r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:k2(this,TK(t));return;case 2:MN(this,TK(t));return;case 5:CWn(this,TK(t));return;case 7:!this.A&&(this.A=new LD(xrt,this,7));NVn(this.A);!this.A&&(this.A=new LD(xrt,this,7));NW(this.A,bG(t,16));return}vvn(this,e-sQ(this.ii()),uin((r=bG(Ron(this,16),29),!r?this.ii():r),e),t)};lce.ii=function n(){return rZn(),Grt};lce.ki=function n(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:G$(this.Cb,184)&&(bG(this.Cb,184).tb=null);Qun(this,null);return;case 2:wbn(this,null);Dan(this,this.D);return;case 5:CWn(this,null);return;case 7:!this.A&&(this.A=new LD(xrt,this,7));NVn(this.A);return}wdn(this,e-sQ(this.ii()),uin((t=bG(Ron(this,16),29),!t?this.ii():t),e))};lce.hk=function n(){var e;return this.G==-1&&(this.G=(e=Vin(this),e?Vyn(e.vi(),this):-1)),this.G};lce.ik=function n(){return null};lce.jk=function n(){return Vin(this)};lce.el=function n(){return this.v};lce.kk=function n(){return qTn(this)};lce.lk=function n(){return this.D!=null?this.D:this.B};lce.mk=function n(){return this.F};lce.fk=function n(e){return RGn(this,e)};lce.fl=function n(e){this.v=e};lce.gl=function n(e){csn(this,e)};lce.hl=function n(e){this.C=e};lce.ui=function n(e){k2(this,e)};lce.Ib=function n(){return Mpn(this)};lce.C=null;lce.D=null;lce.G=-1;var Pit=YW(Jee,"EClassifierImpl",364);wDn(90,364,{110:1,94:1,93:1,29:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,90:1,364:1,158:1,482:1,119:1,120:1,691:1},Ul);lce.dl=function n(e){return ZF(this,e.Dh())};lce.Lh=function n(e,t,r){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return qTn(this);case 4:return null;case 5:return this.F;case 6:if(t)return Vin(this);return _0(this);case 7:return!this.A&&(this.A=new LD(xrt,this,7)),this.A;case 8:return Qx(),(this.Bb&256)!=0?true:false;case 9:return Qx(),(this.Bb&512)!=0?true:false;case 10:return a1(this);case 11:return!this.q&&(this.q=new gz(Irt,this,11,10)),this.q;case 12:return dXn(this);case 13:return iXn(this);case 14:return iXn(this),this.r;case 15:return dXn(this),this.k;case 16:return HAn(this);case 17:return Fqn(this);case 18:return uqn(this);case 19:return TRn(this);case 20:return dXn(this),this.o;case 21:return!this.s&&(this.s=new gz(mrt,this,21,17)),this.s;case 22:return Y5(this);case 23:return B_n(this)}return Fen(this,e-sQ((rZn(),Urt)),uin((i=bG(Ron(this,16),29),!i?Urt:i),e),t,r)};lce.Sh=function n(e,t,r){var i,a,c;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kpn(this.Ab,e,r);case 6:!!this.Cb&&(r=(a=this.Db>>16,a>=0?ZTn(this,r):this.Cb.Th(this,-1-a,null,r)));return FUn(this,e,6,r);case 11:return!this.q&&(this.q=new gz(Irt,this,11,10)),Kpn(this.q,e,r);case 21:return!this.s&&(this.s=new gz(mrt,this,21,17)),Kpn(this.s,e,r)}return c=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),Urt):i),t),69),c.wk().zk(this,Fmn(this),t-sQ((rZn(),Urt)),e,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 6:return FUn(this,null,6,r);case 7:return!this.A&&(this.A=new LD(xrt,this,7)),Kyn(this.A,e,r);case 11:return!this.q&&(this.q=new gz(Irt,this,11,10)),Kyn(this.q,e,r);case 21:return!this.s&&(this.s=new gz(mrt,this,21,17)),Kyn(this.s,e,r);case 22:return Kyn(Y5(this),e,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),Urt):i),t),69),a.wk().Ak(this,Fmn(this),t-sQ((rZn(),Urt)),e,r)};lce.Wh=function n(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!qTn(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!_0(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)!=0;case 9:return(this.Bb&512)!=0;case 10:return!!this.u&&Y5(this.u.a).i!=0&&!(!!this.n&&SMn(this.n));case 11:return!!this.q&&this.q.i!=0;case 12:return dXn(this).i!=0;case 13:return iXn(this).i!=0;case 14:return iXn(this),this.r.i!=0;case 15:return dXn(this),this.k.i!=0;case 16:return HAn(this).i!=0;case 17:return Fqn(this).i!=0;case 18:return uqn(this).i!=0;case 19:return TRn(this).i!=0;case 20:return dXn(this),!!this.o;case 21:return!!this.s&&this.s.i!=0;case 22:return!!this.n&&SMn(this.n);case 23:return B_n(this).i!=0}return v5(this,e-sQ((rZn(),Urt)),uin((t=bG(Ron(this,16),29),!t?Urt:t),e))};lce.Zh=function n(e){var t;t=this.i==null||!!this.q&&this.q.i!=0?null:OKn(this,e);return t?t:ZQn(this,e)};lce.bi=function n(e,t){var r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:k2(this,TK(t));return;case 2:MN(this,TK(t));return;case 5:CWn(this,TK(t));return;case 7:!this.A&&(this.A=new LD(xrt,this,7));NVn(this.A);!this.A&&(this.A=new LD(xrt,this,7));NW(this.A,bG(t,16));return;case 8:ydn(this,lM(yK(t)));return;case 9:jdn(this,lM(yK(t)));return;case 10:qVn(a1(this));NW(a1(this),bG(t,16));return;case 11:!this.q&&(this.q=new gz(Irt,this,11,10));NVn(this.q);!this.q&&(this.q=new gz(Irt,this,11,10));NW(this.q,bG(t,16));return;case 21:!this.s&&(this.s=new gz(mrt,this,21,17));NVn(this.s);!this.s&&(this.s=new gz(mrt,this,21,17));NW(this.s,bG(t,16));return;case 22:NVn(Y5(this));NW(Y5(this),bG(t,16));return}vvn(this,e-sQ((rZn(),Urt)),uin((r=bG(Ron(this,16),29),!r?Urt:r),e),t)};lce.ii=function n(){return rZn(),Urt};lce.ki=function n(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:G$(this.Cb,184)&&(bG(this.Cb,184).tb=null);Qun(this,null);return;case 2:wbn(this,null);Dan(this,this.D);return;case 5:CWn(this,null);return;case 7:!this.A&&(this.A=new LD(xrt,this,7));NVn(this.A);return;case 8:ydn(this,false);return;case 9:jdn(this,false);return;case 10:!!this.u&&qVn(this.u);return;case 11:!this.q&&(this.q=new gz(Irt,this,11,10));NVn(this.q);return;case 21:!this.s&&(this.s=new gz(mrt,this,21,17));NVn(this.s);return;case 22:!!this.n&&NVn(this.n);return}wdn(this,e-sQ((rZn(),Urt)),uin((t=bG(Ron(this,16),29),!t?Urt:t),e))};lce.pi=function n(){var e,t;dXn(this);iXn(this);HAn(this);Fqn(this);uqn(this);TRn(this);B_n(this);Z9(sG(S9(this)));if(this.s){for(e=0,t=this.s.i;e=0;--t){Yin(this,t)}}return ypn(this,e)};lce.Gk=function n(){NVn(this)};lce.Zi=function n(e,t){return _an(this,e,t)};var Nit=YW(iie,"EcoreEList",632);wDn(505,632,yie,GG);lce.Li=function n(){return false};lce.Lj=function n(){return this.c};lce.Mj=function n(){return false};lce.ol=function n(){return true};lce.Si=function n(){return true};lce.Wi=function n(e,t){return t};lce.Yi=function n(){return false};lce.c=0;var $it=YW(iie,"EObjectEList",505);wDn(83,505,yie,PD);lce.Mj=function n(){return true};lce.ml=function n(){return false};lce.al=function n(){return true};var Dit=YW(iie,"EObjectContainmentEList",83);wDn(555,83,yie,CD);lce.Ni=function n(){this.b=true};lce.Qj=function n(){return this.b};lce.Gk=function n(){var e;NVn(this);if(bN(this.e)){e=this.b;this.b=false;Pon(this.e,new I9(this.e,2,this.c,e,false))}else{this.b=false}};lce.b=false;var xit=YW(iie,"EObjectContainmentEList/Unsettable",555);wDn(1161,555,yie,dV);lce.Ti=function n(e,t){var r,i;return r=bG(Ydn(this,e,t),89),bN(this.e)&&rk(this,new men(this.a,7,(rZn(),qrt),Bwn(t),(i=r.c,G$(i,90)?bG(i,29):nit),e)),r};lce.Uj=function n(e,t){return _pn(this,bG(e,89),t)};lce.Vj=function n(e,t){return Fpn(this,bG(e,89),t)};lce.Wj=function n(e,t,r){return CSn(this,bG(e,89),bG(t,89),r)};lce.Ij=function n(e,t,r,i,a){switch(e){case 3:{return s2(this,e,t,r,i,this.i>1)}case 5:{return s2(this,e,t,r,i,this.i-bG(r,15).gc()>0)}default:{return new Utn(this.e,e,this.c,t,r,i,true)}}};lce.Tj=function n(){return true};lce.Qj=function n(){return SMn(this)};lce.Gk=function n(){NVn(this)};var Rit=YW(Jee,"EClassImpl/1",1161);wDn(1175,1174,Rre);lce.dj=function n(e){var t,r,i,a,c,u,s;r=e.gj();if(r!=8){i=Bkn(e);if(i==0){switch(r){case 1:case 9:{s=e.kj();if(s!=null){t=S9(bG(s,482));!t.c&&(t.c=new Uo);orn(t.c,e.jj())}u=e.ij();if(u!=null){a=bG(u,482);if((a.Bb&1)==0){t=S9(a);!t.c&&(t.c=new Uo);cen(t.c,bG(e.jj(),29))}}break}case 3:{u=e.ij();if(u!=null){a=bG(u,482);if((a.Bb&1)==0){t=S9(a);!t.c&&(t.c=new Uo);cen(t.c,bG(e.jj(),29))}}break}case 5:{u=e.ij();if(u!=null){for(c=bG(u,16).Kc();c.Ob();){a=bG(c.Pb(),482);if((a.Bb&1)==0){t=S9(a);!t.c&&(t.c=new Uo);cen(t.c,bG(e.jj(),29))}}}break}case 4:{s=e.kj();if(s!=null){a=bG(s,482);if((a.Bb&1)==0){t=S9(a);!t.c&&(t.c=new Uo);orn(t.c,e.jj())}}break}case 6:{s=e.kj();if(s!=null){for(c=bG(s,16).Kc();c.Ob();){a=bG(c.Pb(),482);if((a.Bb&1)==0){t=S9(a);!t.c&&(t.c=new Uo);orn(t.c,e.jj())}}}break}}}this.ql(i)}};lce.ql=function n(e){pBn(this,e)};lce.b=63;var Kit=YW(Jee,"ESuperAdapter",1175);wDn(1176,1175,Rre,Fp);lce.ql=function n(e){SLn(this,e)};var Fit=YW(Jee,"EClassImpl/10",1176);wDn(1165,710,yie);lce.Ei=function n(e,t){return LCn(this,e,t)};lce.Fi=function n(e){return eTn(this,e)};lce.Gi=function n(e,t){udn(this,e,t)};lce.Hi=function n(e){Y9(this,e)};lce.$i=function n(e){return Den(this,e)};lce.Xi=function n(e,t){return srn(this,e,t)};lce.Wk=function n(e,t){throw dm(new Um)};lce.Ii=function n(){return new aR(this)};lce.Ji=function n(){return new cR(this)};lce.Ki=function n(e){return dcn(this,e)};lce.Xk=function n(e,t){throw dm(new Um)};lce.Fk=function n(e){return this};lce.Qj=function n(){return this.i!=0};lce.Wb=function n(e){throw dm(new Um)};lce.Gk=function n(){throw dm(new Um)};var _it=YW(iie,"EcoreEList/UnmodifiableEList",1165);wDn(328,1165,yie,jL);lce.Yi=function n(){return false};var Bit=YW(iie,"EcoreEList/UnmodifiableEList/FastCompare",328);wDn(1168,328,yie,xhn);lce.dd=function n(e){var t,r,i;if(G$(e,179)){t=bG(e,179);r=t.Lj();if(r!=-1){for(i=this.i;r4){if(this.fk(e)){if(this.al()){i=bG(e,54);r=i.Eh();s=r==this.b&&(this.ml()?i.yh(i.Fh(),bG(uin(u1(this.b),this.Lj()).Hk(),29).kk())==vMn(bG(uin(u1(this.b),this.Lj()),19)).n:-1-i.Fh()==this.Lj());if(this.nl()&&!s&&!r&&!!i.Jh()){for(a=0;a1||i==-1)}else{return false}};lce.ml=function n(){var e,t,r;t=uin(u1(this.b),this.Lj());if(G$(t,102)){e=bG(t,19);r=vMn(e);return!!r}else{return false}};lce.nl=function n(){var e,t;t=uin(u1(this.b),this.Lj());if(G$(t,102)){e=bG(t,19);return(e.Bb&S0n)!=0}else{return false}};lce.dd=function n(e){var t,r,i,a;i=this.zj(e);if(i>=0)return i;if(this.ol()){for(r=0,a=this.Ej();r=0;--e){Szn(this,e,this.xj(e))}}return this.Fj()};lce.Qc=function n(e){var t;if(this.nl()){for(t=this.Ej()-1;t>=0;--t){Szn(this,t,this.xj(t))}}return this.Gj(e)};lce.Gk=function n(){qVn(this)};lce.Zi=function n(e,t){return xen(this,e,t)};var Zit=YW(iie,"DelegatingEcoreEList",756);wDn(1171,756,Sie,hF);lce.qj=function n(e,t){YR(this,e,bG(t,29))};lce.rj=function n(e){XN(this,bG(e,29))};lce.xj=function n(e){var t,r;return t=bG(Yin(Y5(this.a),e),89),r=t.c,G$(r,90)?bG(r,29):(rZn(),nit)};lce.Cj=function n(e){var t,r;return t=bG(u_n(Y5(this.a),e),89),r=t.c,G$(r,90)?bG(r,29):(rZn(),nit)};lce.Dj=function n(e,t){return rTn(this,e,bG(t,29))};lce.Li=function n(){return false};lce.Ij=function n(e,t,r,i,a){return null};lce.sj=function n(){return new Hp(this)};lce.tj=function n(){NVn(Y5(this.a))};lce.uj=function n(e){return Pdn(this,e)};lce.vj=function n(e){var t,r;for(r=e.Kc();r.Ob();){t=r.Pb();if(!Pdn(this,t)){return false}}return true};lce.wj=function n(e){var t,r,i;if(G$(e,15)){i=bG(e,15);if(i.gc()==Y5(this.a).i){for(t=i.Kc(),r=new _D(this);t.Ob();){if(BA(t.Pb())!==BA(iyn(r))){return false}}return true}}return false};lce.yj=function n(){var e,t,r,i,a;r=1;for(t=new _D(Y5(this.a));t.e!=t.i.gc();){e=bG(iyn(t),89);i=(a=e.c,G$(a,90)?bG(a,29):(rZn(),nit));r=31*r+(!i?0:Bx(i))}return r};lce.zj=function n(e){var t,r,i,a;i=0;for(r=new _D(Y5(this.a));r.e!=r.i.gc();){t=bG(iyn(r),89);if(BA(e)===BA((a=t.c,G$(a,90)?bG(a,29):(rZn(),nit)))){return i}++i}return-1};lce.Aj=function n(){return Y5(this.a).i==0};lce.Bj=function n(){return null};lce.Ej=function n(){return Y5(this.a).i};lce.Fj=function n(){var e,t,r,i,a,c;c=Y5(this.a).i;a=$nn(kce,jZn,1,c,5,1);r=0;for(t=new _D(Y5(this.a));t.e!=t.i.gc();){e=bG(iyn(t),89);a[r++]=(i=e.c,G$(i,90)?bG(i,29):(rZn(),nit))}return a};lce.Gj=function n(e){var t,r,i,a,c,u,s;s=Y5(this.a).i;if(e.lengths&&bQ(e,s,null);i=0;for(r=new _D(Y5(this.a));r.e!=r.i.gc();){t=bG(iyn(r),89);c=(u=t.c,G$(u,90)?bG(u,29):(rZn(),nit));bQ(e,i++,c)}return e};lce.Hj=function n(){var e,t,r,i,a;a=new YM;a.a+="[";e=Y5(this.a);for(t=0,i=Y5(this.a).i;t>16,a>=0?ZTn(this,r):this.Cb.Th(this,-1-a,null,r)));return FUn(this,e,6,r);case 9:return!this.a&&(this.a=new gz(Prt,this,9,5)),Kpn(this.a,e,r)}return c=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),Vrt):i),t),69),c.wk().zk(this,Fmn(this),t-sQ((rZn(),Vrt)),e,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 6:return FUn(this,null,6,r);case 7:return!this.A&&(this.A=new LD(xrt,this,7)),Kyn(this.A,e,r);case 9:return!this.a&&(this.a=new gz(Prt,this,9,5)),Kyn(this.a,e,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),Vrt):i),t),69),a.wk().Ak(this,Fmn(this),t-sQ((rZn(),Vrt)),e,r)};lce.Wh=function n(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!qTn(this);case 4:return!!kbn(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!_0(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)==0;case 9:return!!this.a&&this.a.i!=0}return v5(this,e-sQ((rZn(),Vrt)),uin((t=bG(Ron(this,16),29),!t?Vrt:t),e))};lce.bi=function n(e,t){var r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:k2(this,TK(t));return;case 2:MN(this,TK(t));return;case 5:CWn(this,TK(t));return;case 7:!this.A&&(this.A=new LD(xrt,this,7));NVn(this.A);!this.A&&(this.A=new LD(xrt,this,7));NW(this.A,bG(t,16));return;case 8:Mdn(this,lM(yK(t)));return;case 9:!this.a&&(this.a=new gz(Prt,this,9,5));NVn(this.a);!this.a&&(this.a=new gz(Prt,this,9,5));NW(this.a,bG(t,16));return}vvn(this,e-sQ((rZn(),Vrt)),uin((r=bG(Ron(this,16),29),!r?Vrt:r),e),t)};lce.ii=function n(){return rZn(),Vrt};lce.ki=function n(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:G$(this.Cb,184)&&(bG(this.Cb,184).tb=null);Qun(this,null);return;case 2:wbn(this,null);Dan(this,this.D);return;case 5:CWn(this,null);return;case 7:!this.A&&(this.A=new LD(xrt,this,7));NVn(this.A);return;case 8:Mdn(this,true);return;case 9:!this.a&&(this.a=new gz(Prt,this,9,5));NVn(this.a);return}wdn(this,e-sQ((rZn(),Vrt)),uin((t=bG(Ron(this,16),29),!t?Vrt:t),e))};lce.pi=function n(){var e,t;if(this.a){for(e=0,t=this.a.i;e>16==5?bG(this.Cb,685):null}return Fen(this,e-sQ((rZn(),zrt)),uin((i=bG(Ron(this,16),29),!i?zrt:i),e),t,r)};lce.Sh=function n(e,t,r){var i,a,c;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kpn(this.Ab,e,r);case 5:!!this.Cb&&(r=(a=this.Db>>16,a>=0?eEn(this,r):this.Cb.Th(this,-1-a,null,r)));return FUn(this,e,5,r)}return c=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),zrt):i),t),69),c.wk().zk(this,Fmn(this),t-sQ((rZn(),zrt)),e,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 5:return FUn(this,null,5,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),zrt):i),t),69),a.wk().Ak(this,Fmn(this),t-sQ((rZn(),zrt)),e,r)};lce.Wh=function n(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return!!this.b;case 4:return this.c!=null;case 5:return!!(this.Db>>16==5?bG(this.Cb,685):null)}return v5(this,e-sQ((rZn(),zrt)),uin((t=bG(Ron(this,16),29),!t?zrt:t),e))};lce.bi=function n(e,t){var r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:Qun(this,TK(t));return;case 2:$an(this,bG(t,17).a);return;case 3:d$n(this,bG(t,2039));return;case 4:zcn(this,TK(t));return}vvn(this,e-sQ((rZn(),zrt)),uin((r=bG(Ron(this,16),29),!r?zrt:r),e),t)};lce.ii=function n(){return rZn(),zrt};lce.ki=function n(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:Qun(this,null);return;case 2:$an(this,0);return;case 3:d$n(this,null);return;case 4:zcn(this,null);return}wdn(this,e-sQ((rZn(),zrt)),uin((t=bG(Ron(this,16),29),!t?zrt:t),e))};lce.Ib=function n(){var e;return e=this.c,e==null?this.zb:e};lce.b=null;lce.c=null;lce.d=0;var cat=YW(Jee,"EEnumLiteralImpl",582);var uat=$q(Jee,"EFactoryImpl/InternalEDateTimeFormat");wDn(499,1,{2114:1},Up);var sat=YW(Jee,"EFactoryImpl/1ClientInternalEDateTimeFormat",499);wDn(248,120,{110:1,94:1,93:1,89:1,58:1,114:1,54:1,99:1,248:1,119:1,120:1},um);lce.Ch=function n(e,t,r){var i;r=FUn(this,e,t,r);if(!!this.e&&G$(e,179)){i=pRn(this,this.e);i!=this.c&&(r=LWn(this,i,r))}return r};lce.Lh=function n(e,t,r){var i;switch(e){case 0:return this.f;case 1:return!this.d&&(this.d=new PD(Crt,this,1)),this.d;case 2:if(t)return PGn(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(t)return LMn(this);return this.a}return Fen(this,e-sQ((rZn(),Qrt)),uin((i=bG(Ron(this,16),29),!i?Qrt:i),e),t,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return jwn(this,null,r);case 1:return!this.d&&(this.d=new PD(Crt,this,1)),Kyn(this.d,e,r);case 3:return Ewn(this,null,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),Qrt):i),t),69),a.wk().Ak(this,Fmn(this),t-sQ((rZn(),Qrt)),e,r)};lce.Wh=function n(e){var t;switch(e){case 0:return!!this.f;case 1:return!!this.d&&this.d.i!=0;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return v5(this,e-sQ((rZn(),Qrt)),uin((t=bG(Ron(this,16),29),!t?Qrt:t),e))};lce.bi=function n(e,t){var r;switch(e){case 0:fPn(this,bG(t,89));return;case 1:!this.d&&(this.d=new PD(Crt,this,1));NVn(this.d);!this.d&&(this.d=new PD(Crt,this,1));NW(this.d,bG(t,16));return;case 3:oPn(this,bG(t,89));return;case 4:PIn(this,bG(t,850));return;case 5:zin(this,bG(t,142));return}vvn(this,e-sQ((rZn(),Qrt)),uin((r=bG(Ron(this,16),29),!r?Qrt:r),e),t)};lce.ii=function n(){return rZn(),Qrt};lce.ki=function n(e){var t;switch(e){case 0:fPn(this,null);return;case 1:!this.d&&(this.d=new PD(Crt,this,1));NVn(this.d);return;case 3:oPn(this,null);return;case 4:PIn(this,null);return;case 5:zin(this,null);return}wdn(this,e-sQ((rZn(),Qrt)),uin((t=bG(Ron(this,16),29),!t?Qrt:t),e))};lce.Ib=function n(){var e;e=new vx(jxn(this));e.a+=" (expression: ";QXn(this,e);e.a+=")";return e.a};var oat;var fat=YW(Jee,"EGenericTypeImpl",248);wDn(2067,2062,Pie);lce.Gi=function n(e,t){rF(this,e,t)};lce.Wk=function n(e,t){rF(this,this.gc(),e);return t};lce.$i=function n(e){return dyn(this.pj(),e)};lce.Ii=function n(){return this.Ji()};lce.pj=function n(){return new Yp(this)};lce.Ji=function n(){return this.Ki(0)};lce.Ki=function n(e){return this.pj().fd(e)};lce.Xk=function n(e,t){npn(this,e,true);return t};lce.Ti=function n(e,t){var r,i;i=Ujn(this,t);r=this.fd(e);r.Rb(i);return i};lce.Ui=function n(e,t){var r;npn(this,t,true);r=this.fd(e);r.Rb(t)};var hat=YW(iie,"AbstractSequentialInternalEList",2067);wDn(496,2067,Pie,Yx);lce.$i=function n(e){return dyn(this.pj(),e)};lce.Ii=function n(){if(this.b==null){return OP(),OP(),dat}return this.sl()};lce.pj=function n(){return new EL(this.a,this.b)};lce.Ji=function n(){if(this.b==null){return OP(),OP(),dat}return this.sl()};lce.Ki=function n(e){var t,r;if(this.b==null){if(e<0||e>1){throw dm(new kM(_re+e+", size=0"))}return OP(),OP(),dat}r=this.sl();for(t=0;t0){t=this.c[--this.d];if((!this.e||t.pk()!=R7e||t.Lj()!=0)&&(!this.vl()||this.b.Xh(t))){c=this.b.Nh(t,this.ul());this.f=(LP(),bG(t,69).xk());if(this.f||t.Jk()){if(this.ul()){i=bG(c,15);this.k=i}else{i=bG(c,71);this.k=this.j=i}if(G$(this.k,59)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.fd(this.k.gc()):this.j.Ki(this.k.gc())}if(!this.p?dLn(this):kAn(this,this.p)){a=!this.p?!this.j?this.k.Xb(--this.n):this.j.$i(--this.n):this.p.Ub();if(this.f){e=bG(a,76);e.Lk();r=e.md();this.i=r}else{r=a;this.i=r}this.g=-3;return true}}else if(c!=null){this.k=null;this.p=null;r=c;this.i=r;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{a=!this.p?!this.j?this.k.Xb(--this.n):this.j.$i(--this.n):this.p.Ub();if(this.f){e=bG(a,76);e.Lk();r=e.md();this.i=r}else{r=a;this.i=r}this.g=-3;return true}}}};lce.Pb=function n(){return Uon(this)};lce.Tb=function n(){return this.a};lce.Ub=function n(){var e;if(this.g<-1||this.Sb()){--this.a;this.g=0;e=this.i;this.Sb();return e}else{throw dm(new Xm)}};lce.Vb=function n(){return this.a-1};lce.Qb=function n(){throw dm(new Um)};lce.ul=function n(){return false};lce.Wb=function n(e){throw dm(new Um)};lce.vl=function n(){return true};lce.a=0;lce.d=0;lce.f=false;lce.g=0;lce.n=0;lce.o=0;var dat;var gat=YW(iie,"EContentsEList/FeatureIteratorImpl",287);wDn(711,287,Cie,nK);lce.ul=function n(){return true};var vat=YW(iie,"EContentsEList/ResolvingFeatureIteratorImpl",711);wDn(1178,711,Cie,eK);lce.vl=function n(){return false};var pat=YW(Jee,"ENamedElementImpl/1/1",1178);wDn(1179,287,Cie,tK);lce.vl=function n(){return false};var mat=YW(Jee,"ENamedElementImpl/1/2",1179);wDn(39,152,Fre,c8,u8,vz,pen,Utn,I9,Xan,l4,Van,b4,O9,w4,Qan,d4,A9,g4,zan,v4,pz,men,EZ,Wan,p4,L9,m4);lce.Kj=function n(){return aen(this)};lce.Rj=function n(){var e;e=aen(this);if(e){return e.ik()}return null};lce.hj=function n(e){this.b==-1&&!!this.a&&(this.b=this.c.Hh(this.a.Lj(),this.a.pk()));return this.c.yh(this.b,e)};lce.jj=function n(){return this.c};lce.Sj=function n(){var e;e=aen(this);if(e){return e.tk()}return false};lce.b=-1;var kat=YW(Jee,"ENotificationImpl",39);wDn(411,292,{110:1,94:1,93:1,155:1,197:1,58:1,62:1,114:1,481:1,54:1,99:1,158:1,411:1,292:1,119:1,120:1},ry);lce.Ah=function n(e){return gEn(this,e)};lce.Lh=function n(e,t,r){var i,a,c;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Qx(),(this.Bb&256)!=0?true:false;case 3:return Qx(),(this.Bb&512)!=0?true:false;case 4:return Bwn(this.s);case 5:return Bwn(this.t);case 6:return Qx(),c=this.t,c>1||c==-1?true:false;case 7:return Qx(),a=this.s,a>=1?true:false;case 8:if(t)return pEn(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?bG(this.Cb,29):null;case 11:return!this.d&&(this.d=new LD(xrt,this,11)),this.d;case 12:return!this.c&&(this.c=new gz(Art,this,12,10)),this.c;case 13:return!this.a&&(this.a=new lF(this,this)),this.a;case 14:return xtn(this)}return Fen(this,e-sQ((rZn(),eit)),uin((i=bG(Ron(this,16),29),!i?eit:i),e),t,r)};lce.Sh=function n(e,t,r){var i,a,c;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kpn(this.Ab,e,r);case 10:!!this.Cb&&(r=(a=this.Db>>16,a>=0?gEn(this,r):this.Cb.Th(this,-1-a,null,r)));return FUn(this,e,10,r);case 12:return!this.c&&(this.c=new gz(Art,this,12,10)),Kpn(this.c,e,r)}return c=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),eit):i),t),69),c.wk().zk(this,Fmn(this),t-sQ((rZn(),eit)),e,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 9:return $W(this,r);case 10:return FUn(this,null,10,r);case 11:return!this.d&&(this.d=new LD(xrt,this,11)),Kyn(this.d,e,r);case 12:return!this.c&&(this.c=new gz(Art,this,12,10)),Kyn(this.c,e,r);case 14:return Kyn(xtn(this),e,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),eit):i),t),69),a.wk().Ak(this,Fmn(this),t-sQ((rZn(),eit)),e,r)};lce.Wh=function n(e){var t,r,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return i=this.t,i>1||i==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&SQ(this.q).i==0;case 9:return!!this.q&&!(!!this.r&&!this.q.e&&SQ(this.q).i==0);case 10:return!!(this.Db>>16==10?bG(this.Cb,29):null);case 11:return!!this.d&&this.d.i!=0;case 12:return!!this.c&&this.c.i!=0;case 13:return!!this.a&&xtn(this.a.a).i!=0&&!(!!this.b&&PMn(this.b));case 14:return!!this.b&&PMn(this.b)}return v5(this,e-sQ((rZn(),eit)),uin((t=bG(Ron(this,16),29),!t?eit:t),e))};lce.bi=function n(e,t){var r,i;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:Qun(this,TK(t));return;case 2:kdn(this,lM(yK(t)));return;case 3:Tdn(this,lM(yK(t)));return;case 4:Lan(this,bG(t,17).a);return;case 5:Nan(this,bG(t,17).a);return;case 8:Ubn(this,bG(t,142));return;case 9:i=NCn(this,bG(t,89),null);!!i&&i.oj();return;case 11:!this.d&&(this.d=new LD(xrt,this,11));NVn(this.d);!this.d&&(this.d=new LD(xrt,this,11));NW(this.d,bG(t,16));return;case 12:!this.c&&(this.c=new gz(Art,this,12,10));NVn(this.c);!this.c&&(this.c=new gz(Art,this,12,10));NW(this.c,bG(t,16));return;case 13:!this.a&&(this.a=new lF(this,this));qVn(this.a);!this.a&&(this.a=new lF(this,this));NW(this.a,bG(t,16));return;case 14:NVn(xtn(this));NW(xtn(this),bG(t,16));return}vvn(this,e-sQ((rZn(),eit)),uin((r=bG(Ron(this,16),29),!r?eit:r),e),t)};lce.ii=function n(){return rZn(),eit};lce.ki=function n(e){var t,r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:Qun(this,null);return;case 2:kdn(this,true);return;case 3:Tdn(this,true);return;case 4:Lan(this,0);return;case 5:Nan(this,1);return;case 8:Ubn(this,null);return;case 9:r=NCn(this,null,null);!!r&&r.oj();return;case 11:!this.d&&(this.d=new LD(xrt,this,11));NVn(this.d);return;case 12:!this.c&&(this.c=new gz(Art,this,12,10));NVn(this.c);return;case 13:!!this.a&&qVn(this.a);return;case 14:!!this.b&&NVn(this.b);return}wdn(this,e-sQ((rZn(),eit)),uin((t=bG(Ron(this,16),29),!t?eit:t),e))};lce.pi=function n(){var e,t;if(this.c){for(e=0,t=this.c.i;es&&bQ(e,s,null);i=0;for(r=new _D(xtn(this.a));r.e!=r.i.gc();){t=bG(iyn(r),89);c=(u=t.c,u?u:(rZn(),Jrt));bQ(e,i++,c)}return e};lce.Hj=function n(){var e,t,r,i,a;a=new YM;a.a+="[";e=xtn(this.a);for(t=0,i=xtn(this.a).i;t1)}case 5:{return s2(this,e,t,r,i,this.i-bG(r,15).gc()>0)}default:{return new Utn(this.e,e,this.c,t,r,i,true)}}};lce.Tj=function n(){return true};lce.Qj=function n(){return PMn(this)};lce.Gk=function n(){NVn(this)};var jat=YW(Jee,"EOperationImpl/2",1377);wDn(507,1,{2037:1,507:1},OA);var Eat=YW(Jee,"EPackageImpl/1",507);wDn(14,83,yie,gz);lce.il=function n(){return this.d};lce.jl=function n(){return this.b};lce.ml=function n(){return true};lce.b=0;var Sat=YW(iie,"EObjectContainmentWithInverseEList",14);wDn(365,14,yie,s_);lce.nl=function n(){return true};lce.Wi=function n(e,t){return H$n(this,e,bG(t,58))};var Pat=YW(iie,"EObjectContainmentWithInverseEList/Resolving",365);wDn(308,365,yie,jz);lce.Ni=function n(){this.a.tb=null};var Cat=YW(Jee,"EPackageImpl/2",308);wDn(1278,1,{},Lo);var Iat=YW(Jee,"EPackageImpl/3",1278);wDn(733,45,_0n,iy);lce._b=function n(e){return HA(e)?xZ(this,e):!!GX(this.f,e)};var Oat=YW(Jee,"EPackageRegistryImpl",733);wDn(518,292,{110:1,94:1,93:1,155:1,197:1,58:1,2116:1,114:1,481:1,54:1,99:1,158:1,518:1,292:1,119:1,120:1},ay);lce.Ah=function n(e){return vEn(this,e)};lce.Lh=function n(e,t,r){var i,a,c;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Qx(),(this.Bb&256)!=0?true:false;case 3:return Qx(),(this.Bb&512)!=0?true:false;case 4:return Bwn(this.s);case 5:return Bwn(this.t);case 6:return Qx(),c=this.t,c>1||c==-1?true:false;case 7:return Qx(),a=this.s,a>=1?true:false;case 8:if(t)return pEn(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?bG(this.Cb,62):null}return Fen(this,e-sQ((rZn(),iit)),uin((i=bG(Ron(this,16),29),!i?iit:i),e),t,r)};lce.Sh=function n(e,t,r){var i,a,c;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kpn(this.Ab,e,r);case 10:!!this.Cb&&(r=(a=this.Db>>16,a>=0?vEn(this,r):this.Cb.Th(this,-1-a,null,r)));return FUn(this,e,10,r)}return c=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),iit):i),t),69),c.wk().zk(this,Fmn(this),t-sQ((rZn(),iit)),e,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 9:return $W(this,r);case 10:return FUn(this,null,10,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),iit):i),t),69),a.wk().Ak(this,Fmn(this),t-sQ((rZn(),iit)),e,r)};lce.Wh=function n(e){var t,r,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return i=this.t,i>1||i==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&SQ(this.q).i==0;case 9:return!!this.q&&!(!!this.r&&!this.q.e&&SQ(this.q).i==0);case 10:return!!(this.Db>>16==10?bG(this.Cb,62):null)}return v5(this,e-sQ((rZn(),iit)),uin((t=bG(Ron(this,16),29),!t?iit:t),e))};lce.ii=function n(){return rZn(),iit};var Aat=YW(Jee,"EParameterImpl",518);wDn(102,462,{110:1,94:1,93:1,155:1,197:1,58:1,19:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,102:1,462:1,292:1,119:1,120:1,692:1},LK);lce.Lh=function n(e,t,r){var i,a,c,u;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Qx(),(this.Bb&256)!=0?true:false;case 3:return Qx(),(this.Bb&512)!=0?true:false;case 4:return Bwn(this.s);case 5:return Bwn(this.t);case 6:return Qx(),u=this.t,u>1||u==-1?true:false;case 7:return Qx(),a=this.s,a>=1?true:false;case 8:if(t)return pEn(this);return this.r;case 9:return this.q;case 10:return Qx(),(this.Bb&b1n)!=0?true:false;case 11:return Qx(),(this.Bb&oie)!=0?true:false;case 12:return Qx(),(this.Bb&T0n)!=0?true:false;case 13:return this.j;case 14:return KRn(this);case 15:return Qx(),(this.Bb&sie)!=0?true:false;case 16:return Qx(),(this.Bb&VZn)!=0?true:false;case 17:return U0(this);case 18:return Qx(),(this.Bb&Wee)!=0?true:false;case 19:return Qx(),c=vMn(this),!!c&&(c.Bb&Wee)!=0?true:false;case 20:return Qx(),(this.Bb&S0n)!=0?true:false;case 21:if(t)return vMn(this);return this.b;case 22:if(t)return Ghn(this);return H9(this);case 23:return!this.a&&(this.a=new DD(krt,this,23)),this.a}return Fen(this,e-sQ((rZn(),ait)),uin((i=bG(Ron(this,16),29),!i?ait:i),e),t,r)};lce.Wh=function n(e){var t,r,i,a;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return a=this.t,a>1||a==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&SQ(this.q).i==0;case 9:return!!this.q&&!(!!this.r&&!this.q.e&&SQ(this.q).i==0);case 10:return(this.Bb&b1n)==0;case 11:return(this.Bb&oie)!=0;case 12:return(this.Bb&T0n)!=0;case 13:return this.j!=null;case 14:return KRn(this)!=null;case 15:return(this.Bb&sie)!=0;case 16:return(this.Bb&VZn)!=0;case 17:return!!U0(this);case 18:return(this.Bb&Wee)!=0;case 19:return i=vMn(this),!!i&&(i.Bb&Wee)!=0;case 20:return(this.Bb&S0n)==0;case 21:return!!this.b;case 22:return!!H9(this);case 23:return!!this.a&&this.a.i!=0}return v5(this,e-sQ((rZn(),ait)),uin((t=bG(Ron(this,16),29),!t?ait:t),e))};lce.bi=function n(e,t){var r,i;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:y2(this,TK(t));return;case 2:kdn(this,lM(yK(t)));return;case 3:Tdn(this,lM(yK(t)));return;case 4:Lan(this,bG(t,17).a);return;case 5:Nan(this,bG(t,17).a);return;case 8:Ubn(this,bG(t,142));return;case 9:i=NCn(this,bG(t,89),null);!!i&&i.oj();return;case 10:ngn(this,lM(yK(t)));return;case 11:rgn(this,lM(yK(t)));return;case 12:egn(this,lM(yK(t)));return;case 13:TA(this,TK(t));return;case 15:tgn(this,lM(yK(t)));return;case 16:Ngn(this,lM(yK(t)));return;case 18:M2(this,lM(yK(t)));return;case 20:$gn(this,lM(yK(t)));return;case 21:pun(this,bG(t,19));return;case 23:!this.a&&(this.a=new DD(krt,this,23));NVn(this.a);!this.a&&(this.a=new DD(krt,this,23));NW(this.a,bG(t,16));return}vvn(this,e-sQ((rZn(),ait)),uin((r=bG(Ron(this,16),29),!r?ait:r),e),t)};lce.ii=function n(){return rZn(),ait};lce.ki=function n(e){var t,r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:G$(this.Cb,90)&&SLn(S9(bG(this.Cb,90)),4);Qun(this,null);return;case 2:kdn(this,true);return;case 3:Tdn(this,true);return;case 4:Lan(this,0);return;case 5:Nan(this,1);return;case 8:Ubn(this,null);return;case 9:r=NCn(this,null,null);!!r&&r.oj();return;case 10:ngn(this,true);return;case 11:rgn(this,false);return;case 12:egn(this,false);return;case 13:this.i=null;vun(this,null);return;case 15:tgn(this,false);return;case 16:Ngn(this,false);return;case 18:Lgn(this,false);G$(this.Cb,90)&&SLn(S9(bG(this.Cb,90)),2);return;case 20:$gn(this,true);return;case 21:pun(this,null);return;case 23:!this.a&&(this.a=new DD(krt,this,23));NVn(this.a);return}wdn(this,e-sQ((rZn(),ait)),uin((t=bG(Ron(this,16),29),!t?ait:t),e))};lce.pi=function n(){Ghn(this);XJ(Ktn((yAn(),Vut),this));pEn(this);this.Bb|=1};lce.uk=function n(){return vMn(this)};lce._k=function n(){var e;return e=vMn(this),!!e&&(e.Bb&Wee)!=0};lce.al=function n(){return(this.Bb&Wee)!=0};lce.bl=function n(){return(this.Bb&S0n)!=0};lce.Yk=function n(e,t){this.c=null;return rdn(this,e,t)};lce.Ib=function n(){var e;if((this.Db&64)!=0)return PBn(this);e=new gx(PBn(this));e.a+=" (containment: ";Rj(e,(this.Bb&Wee)!=0);e.a+=", resolveProxies: ";Rj(e,(this.Bb&S0n)!=0);e.a+=")";return e.a};var Lat=YW(Jee,"EReferenceImpl",102);wDn(561,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,561:1,119:1,120:1},No);lce.Fb=function n(e){return this===e};lce.ld=function n(){return this.b};lce.md=function n(){return this.c};lce.Hb=function n(){return Bx(this)};lce.Di=function n(e){Hq(this,TK(e))};lce.nd=function n(e){return _G(this,TK(e))};lce.Lh=function n(e,t,r){var i;switch(e){case 0:return this.b;case 1:return this.c}return Fen(this,e-sQ((rZn(),cit)),uin((i=bG(Ron(this,16),29),!i?cit:i),e),t,r)};lce.Wh=function n(e){var t;switch(e){case 0:return this.b!=null;case 1:return this.c!=null}return v5(this,e-sQ((rZn(),cit)),uin((t=bG(Ron(this,16),29),!t?cit:t),e))};lce.bi=function n(e,t){var r;switch(e){case 0:Uq(this,TK(t));return;case 1:tun(this,TK(t));return}vvn(this,e-sQ((rZn(),cit)),uin((r=bG(Ron(this,16),29),!r?cit:r),e),t)};lce.ii=function n(){return rZn(),cit};lce.ki=function n(e){var t;switch(e){case 0:eun(this,null);return;case 1:tun(this,null);return}wdn(this,e-sQ((rZn(),cit)),uin((t=bG(Ron(this,16),29),!t?cit:t),e))};lce.Bi=function n(){var e;if(this.a==-1){e=this.b;this.a=e==null?0:Mln(e)}return this.a};lce.Ci=function n(e){this.a=e};lce.Ib=function n(){var e;if((this.Db&64)!=0)return jxn(this);e=new gx(jxn(this));e.a+=" (key: ";ZA(e,this.b);e.a+=", value: ";ZA(e,this.c);e.a+=")";return e.a};lce.a=-1;lce.b=null;lce.c=null;var Nat=YW(Jee,"EStringToStringMapEntryImpl",561);var $at=$q(iie,"FeatureMap/Entry/Internal");wDn(576,1,Iie);lce.xl=function n(e){return this.yl(bG(e,54))};lce.yl=function n(e){return this.xl(e)};lce.Fb=function n(e){var t,r;if(this===e){return true}else if(G$(e,76)){t=bG(e,76);if(t.Lk()==this.c){r=this.md();return r==null?t.md()==null:bdn(r,t.md())}else{return false}}else{return false}};lce.Lk=function n(){return this.c};lce.Hb=function n(){var e;e=this.md();return Vun(this.c)^(e==null?0:Vun(e))};lce.Ib=function n(){var e,t;e=this.c;t=Vin(e.qk()).yi();e.xe();return(t!=null&&t.length!=0?t+":"+e.xe():e.xe())+"="+this.md()};var Dat=YW(Jee,"EStructuralFeatureImpl/BasicFeatureMapEntry",576);wDn(791,576,Iie,wF);lce.yl=function n(e){return new wF(this.c,e)};lce.md=function n(){return this.a};lce.zl=function n(e,t,r){return Usn(this,e,this.a,t,r)};lce.Al=function n(e,t,r){return Gsn(this,e,this.a,t,r)};var xat=YW(Jee,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",791);wDn(1350,1,{},AA);lce.yk=function n(e,t,r,i,a){var c;c=bG(jen(e,this.b),220);return c.Yl(this.a).Fk(i)};lce.zk=function n(e,t,r,i,a){var c;c=bG(jen(e,this.b),220);return c.Pl(this.a,i,a)};lce.Ak=function n(e,t,r,i,a){var c;c=bG(jen(e,this.b),220);return c.Ql(this.a,i,a)};lce.Bk=function n(e,t,r){var i;i=bG(jen(e,this.b),220);return i.Yl(this.a).Qj()};lce.Ck=function n(e,t,r,i){var a;a=bG(jen(e,this.b),220);a.Yl(this.a).Wb(i)};lce.Dk=function n(e,t,r){return bG(jen(e,this.b),220).Yl(this.a)};lce.Ek=function n(e,t,r){var i;i=bG(jen(e,this.b),220);i.Yl(this.a).Gk()};var Rat=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1350);wDn(91,1,{},HU,NY,WZ,o8);lce.yk=function n(e,t,r,i,a){var c;c=t.li(r);c==null&&t.mi(r,c=BYn(this,e));if(!a){switch(this.e){case 50:case 41:return bG(c,597).bk();case 40:return bG(c,220).Vl()}}return c};lce.zk=function n(e,t,r,i,a){var c,u;u=t.li(r);u==null&&t.mi(r,u=BYn(this,e));c=bG(u,71).Wk(i,a);return c};lce.Ak=function n(e,t,r,i,a){var c;c=t.li(r);c!=null&&(a=bG(c,71).Xk(i,a));return a};lce.Bk=function n(e,t,r){var i;i=t.li(r);return i!=null&&bG(i,79).Qj()};lce.Ck=function n(e,t,r,i){var a;a=bG(t.li(r),79);!a&&t.mi(r,a=BYn(this,e));a.Wb(i)};lce.Dk=function n(e,t,r){var i,a;a=t.li(r);a==null&&t.mi(r,a=BYn(this,e));if(G$(a,79)){return bG(a,79)}else{i=bG(t.li(r),15);return new qp(i)}};lce.Ek=function n(e,t,r){var i;i=bG(t.li(r),79);!i&&t.mi(r,i=BYn(this,e));i.Gk()};lce.b=0;lce.e=0;var Kat=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateMany",91);wDn(512,1,{});lce.zk=function n(e,t,r,i,a){throw dm(new Um)};lce.Ak=function n(e,t,r,i,a){throw dm(new Um)};lce.Dk=function n(e,t,r){return new $Y(this,e,t,r)};var Fat;var _at=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingle",512);wDn(1367,1,aie,$Y);lce.Fk=function n(e){return this.a.yk(this.c,this.d,this.b,e,true)};lce.Qj=function n(){return this.a.Bk(this.c,this.d,this.b)};lce.Wb=function n(e){this.a.Ck(this.c,this.d,this.b,e)};lce.Gk=function n(){this.a.Ek(this.c,this.d,this.b)};lce.b=0;var Bat=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1367);wDn(784,512,{},q1);lce.yk=function n(e,t,r,i,a){return LHn(e,e.Ph(),e.Fh())==this.b?this.bl()&&i?tDn(e):e.Ph():null};lce.zk=function n(e,t,r,i,a){var c,u;!!e.Ph()&&(a=(c=e.Fh(),c>=0?e.Ah(a):e.Ph().Th(e,-1-c,null,a)));u=upn(e.Dh(),this.e);return e.Ch(i,u,a)};lce.Ak=function n(e,t,r,i,a){var c;c=upn(e.Dh(),this.e);return e.Ch(null,c,a)};lce.Bk=function n(e,t,r){var i;i=upn(e.Dh(),this.e);return!!e.Ph()&&e.Fh()==i};lce.Ck=function n(e,t,r,i){var a,c,u,s,o;if(i!=null&&!RGn(this.a,i)){throw dm(new TM(Oie+(G$(i,58)?aPn(bG(i,58).Dh()):fin(Cbn(i)))+Aie+this.a+"'"))}a=e.Ph();u=upn(e.Dh(),this.e);if(BA(i)!==BA(a)||e.Fh()!=u&&i!=null){if(uEn(e,bG(i,58)))throw dm(new jM(Zee+e.Ib()));o=null;!!a&&(o=(c=e.Fh(),c>=0?e.Ah(o):e.Ph().Th(e,-1-c,null,o)));s=bG(i,54);!!s&&(o=s.Rh(e,upn(s.Dh(),this.b),null,o));o=e.Ch(s,u,o);!!o&&o.oj()}else{e.vh()&&e.wh()&&Pon(e,new vz(e,1,u,i,i))}};lce.Ek=function n(e,t,r){var i,a,c,u;i=e.Ph();if(i){u=(a=e.Fh(),a>=0?e.Ah(null):e.Ph().Th(e,-1-a,null,null));c=upn(e.Dh(),this.e);u=e.Ch(null,c,u);!!u&&u.oj()}else{e.vh()&&e.wh()&&Pon(e,new pz(e,1,this.e,null,null))}};lce.bl=function n(){return false};var Hat=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",784);wDn(1351,784,{},UU);lce.bl=function n(){return true};var Uat=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1351);wDn(574,512,{});lce.yk=function n(e,t,r,i,a){var c;return c=t.li(r),c==null?this.b:BA(c)===BA(Fat)?null:c};lce.Bk=function n(e,t,r){var i;i=t.li(r);return i!=null&&(BA(i)===BA(Fat)||!bdn(i,this.b))};lce.Ck=function n(e,t,r,i){var a,c;if(e.vh()&&e.wh()){a=(c=t.li(r),c==null?this.b:BA(c)===BA(Fat)?null:c);if(i==null){if(this.c!=null){t.mi(r,null);i=this.b}else this.b!=null?t.mi(r,Fat):t.mi(r,null)}else{this.Bl(i);t.mi(r,i)}Pon(e,this.d.Cl(e,1,this.e,a,i))}else{if(i==null){this.c!=null?t.mi(r,null):this.b!=null?t.mi(r,Fat):t.mi(r,null)}else{this.Bl(i);t.mi(r,i)}}};lce.Ek=function n(e,t,r){var i,a;if(e.vh()&&e.wh()){i=(a=t.li(r),a==null?this.b:BA(a)===BA(Fat)?null:a);t.ni(r);Pon(e,this.d.Cl(e,1,this.e,i,this.b))}else{t.ni(r)}};lce.Bl=function n(e){throw dm(new Fm)};var Gat=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",574);wDn(Lie,1,{},$o);lce.Cl=function n(e,t,r,i,a){return new pz(e,t,r,i,a)};lce.Dl=function n(e,t,r,i,a,c){return new EZ(e,t,r,i,a,c)};var qat,Xat,Vat,zat,Wat,Qat,Jat,Yat,Zat;var nct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",Lie);wDn(1368,Lie,{},Do);lce.Cl=function n(e,t,r,i,a){return new L9(e,t,r,lM(yK(i)),lM(yK(a)))};lce.Dl=function n(e,t,r,i,a,c){return new m4(e,t,r,lM(yK(i)),lM(yK(a)),c)};var ect=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1368);wDn(1369,Lie,{},xo);lce.Cl=function n(e,t,r,i,a){return new Xan(e,t,r,bG(i,222).a,bG(a,222).a)};lce.Dl=function n(e,t,r,i,a,c){return new l4(e,t,r,bG(i,222).a,bG(a,222).a,c)};var tct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1369);wDn(1370,Lie,{},Ro);lce.Cl=function n(e,t,r,i,a){return new Van(e,t,r,bG(i,180).a,bG(a,180).a)};lce.Dl=function n(e,t,r,i,a,c){return new b4(e,t,r,bG(i,180).a,bG(a,180).a,c)};var rct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1370);wDn(1371,Lie,{},Ko);lce.Cl=function n(e,t,r,i,a){return new O9(e,t,r,bM(MK(i)),bM(MK(a)))};lce.Dl=function n(e,t,r,i,a,c){return new w4(e,t,r,bM(MK(i)),bM(MK(a)),c)};var ict=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1371);wDn(1372,Lie,{},Fo);lce.Cl=function n(e,t,r,i,a){return new Qan(e,t,r,bG(i,161).a,bG(a,161).a)};lce.Dl=function n(e,t,r,i,a,c){return new d4(e,t,r,bG(i,161).a,bG(a,161).a,c)};var act=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1372);wDn(1373,Lie,{},_o);lce.Cl=function n(e,t,r,i,a){return new A9(e,t,r,bG(i,17).a,bG(a,17).a)};lce.Dl=function n(e,t,r,i,a,c){return new g4(e,t,r,bG(i,17).a,bG(a,17).a,c)};var cct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1373);wDn(1374,Lie,{},Bo);lce.Cl=function n(e,t,r,i,a){return new zan(e,t,r,bG(i,168).a,bG(a,168).a)};lce.Dl=function n(e,t,r,i,a,c){return new v4(e,t,r,bG(i,168).a,bG(a,168).a,c)};var uct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1374);wDn(1375,Lie,{},Ho);lce.Cl=function n(e,t,r,i,a){return new Wan(e,t,r,bG(i,191).a,bG(a,191).a)};lce.Dl=function n(e,t,r,i,a,c){return new p4(e,t,r,bG(i,191).a,bG(a,191).a,c)};var sct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1375);wDn(1353,574,{},DY);lce.Bl=function n(e){if(!this.a.fk(e)){throw dm(new TM(Oie+Cbn(e)+Aie+this.a+"'"))}};var oct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1353);wDn(1354,574,{},vV);lce.Bl=function n(e){};var fct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1354);wDn(785,574,{});lce.Bk=function n(e,t,r){var i;i=t.li(r);return i!=null};lce.Ck=function n(e,t,r,i){var a,c;if(e.vh()&&e.wh()){a=true;c=t.li(r);if(c==null){a=false;c=this.b}else BA(c)===BA(Fat)&&(c=null);if(i==null){if(this.c!=null){t.mi(r,null);i=this.b}else{t.mi(r,Fat)}}else{this.Bl(i);t.mi(r,i)}Pon(e,this.d.Dl(e,1,this.e,c,i,!a))}else{if(i==null){this.c!=null?t.mi(r,null):t.mi(r,Fat)}else{this.Bl(i);t.mi(r,i)}}};lce.Ek=function n(e,t,r){var i,a;if(e.vh()&&e.wh()){i=true;a=t.li(r);if(a==null){i=false;a=this.b}else BA(a)===BA(Fat)&&(a=null);t.ni(r);Pon(e,this.d.Dl(e,2,this.e,a,this.b,i))}else{t.ni(r)}};var hct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",785);wDn(1355,785,{},xY);lce.Bl=function n(e){if(!this.a.fk(e)){throw dm(new TM(Oie+Cbn(e)+Aie+this.a+"'"))}};var lct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1355);wDn(1356,785,{},pV);lce.Bl=function n(e){};var bct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1356);wDn(410,512,{},DX);lce.yk=function n(e,t,r,i,a){var c,u,s,o,f;f=t.li(r);if(this.tk()&&BA(f)===BA(Fat)){return null}else if(this.bl()&&i&&f!=null){s=bG(f,54);if(s.Vh()){o=Twn(e,s);if(s!=o){if(!RGn(this.a,o)){throw dm(new TM(Oie+Cbn(o)+Aie+this.a+"'"))}t.mi(r,f=o);if(this.al()){c=bG(o,54);u=s.Th(e,!this.b?-1-upn(e.Dh(),this.e):upn(s.Dh(),this.b),null,null);!c.Ph()&&(u=c.Rh(e,!this.b?-1-upn(e.Dh(),this.e):upn(c.Dh(),this.b),null,u));!!u&&u.oj()}e.vh()&&e.wh()&&Pon(e,new pz(e,9,this.e,s,o))}}return f}else{return f}};lce.zk=function n(e,t,r,i,a){var c,u;u=t.li(r);BA(u)===BA(Fat)&&(u=null);t.mi(r,i);if(this.Mj()){if(BA(u)!==BA(i)&&u!=null){c=bG(u,54);a=c.Th(e,upn(c.Dh(),this.b),null,a)}}else this.al()&&u!=null&&(a=bG(u,54).Th(e,-1-upn(e.Dh(),this.e),null,a));if(e.vh()&&e.wh()){!a&&(a=new fj(4));a.nj(new pz(e,1,this.e,u,i))}return a};lce.Ak=function n(e,t,r,i,a){var c;c=t.li(r);BA(c)===BA(Fat)&&(c=null);t.ni(r);if(e.vh()&&e.wh()){!a&&(a=new fj(4));this.tk()?a.nj(new pz(e,2,this.e,c,null)):a.nj(new pz(e,1,this.e,c,null))}return a};lce.Bk=function n(e,t,r){var i;i=t.li(r);return i!=null};lce.Ck=function n(e,t,r,i){var a,c,u,s,o;if(i!=null&&!RGn(this.a,i)){throw dm(new TM(Oie+(G$(i,58)?aPn(bG(i,58).Dh()):fin(Cbn(i)))+Aie+this.a+"'"))}o=t.li(r);s=o!=null;this.tk()&&BA(o)===BA(Fat)&&(o=null);u=null;if(this.Mj()){if(BA(o)!==BA(i)){if(o!=null){a=bG(o,54);u=a.Th(e,upn(a.Dh(),this.b),null,u)}if(i!=null){a=bG(i,54);u=a.Rh(e,upn(a.Dh(),this.b),null,u)}}}else if(this.al()){if(BA(o)!==BA(i)){o!=null&&(u=bG(o,54).Th(e,-1-upn(e.Dh(),this.e),null,u));i!=null&&(u=bG(i,54).Rh(e,-1-upn(e.Dh(),this.e),null,u))}}i==null&&this.tk()?t.mi(r,Fat):t.mi(r,i);if(e.vh()&&e.wh()){c=new EZ(e,1,this.e,o,i,this.tk()&&!s);if(!u){Pon(e,c)}else{u.nj(c);u.oj()}}else!!u&&u.oj()};lce.Ek=function n(e,t,r){var i,a,c,u,s;s=t.li(r);u=s!=null;this.tk()&&BA(s)===BA(Fat)&&(s=null);c=null;if(s!=null){if(this.Mj()){i=bG(s,54);c=i.Th(e,upn(i.Dh(),this.b),null,c)}else this.al()&&(c=bG(s,54).Th(e,-1-upn(e.Dh(),this.e),null,c))}t.ni(r);if(e.vh()&&e.wh()){a=new EZ(e,this.tk()?2:1,this.e,s,null,u);if(!c){Pon(e,a)}else{c.nj(a);c.oj()}}else!!c&&c.oj()};lce.Mj=function n(){return false};lce.al=function n(){return false};lce.bl=function n(){return false};lce.tk=function n(){return false};var wct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",410);wDn(575,410,{},cK);lce.al=function n(){return true};var dct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",575);wDn(1359,575,{},uK);lce.bl=function n(){return true};var gct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1359);wDn(787,575,{},sK);lce.tk=function n(){return true};var vct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",787);wDn(1361,787,{},fK);lce.bl=function n(){return true};var pct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1361);wDn(650,575,{},GU);lce.Mj=function n(){return true};var mct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",650);wDn(1360,650,{},VU);lce.bl=function n(){return true};var kct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1360);wDn(788,650,{},zU);lce.tk=function n(){return true};var yct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",788);wDn(1362,788,{},WU);lce.bl=function n(){return true};var Mct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1362);wDn(651,410,{},oK);lce.bl=function n(){return true};var Tct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",651);wDn(1363,651,{},hK);lce.tk=function n(){return true};var jct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1363);wDn(789,651,{},qU);lce.Mj=function n(){return true};var Ect=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",789);wDn(1364,789,{},QU);lce.tk=function n(){return true};var Sct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1364);wDn(1357,410,{},lK);lce.tk=function n(){return true};var Pct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1357);wDn(786,410,{},XU);lce.Mj=function n(){return true};var Cct=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",786);wDn(1358,786,{},JU);lce.tk=function n(){return true};var Ict=YW(Jee,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1358);wDn(790,576,Iie,OQ);lce.yl=function n(e){return new OQ(this.a,this.c,e)};lce.md=function n(){return this.b};lce.zl=function n(e,t,r){return Ann(this,e,this.b,r)};lce.Al=function n(e,t,r){return Lnn(this,e,this.b,r)};var Oct=YW(Jee,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",790);wDn(1365,1,aie,qp);lce.Fk=function n(e){return this.a};lce.Qj=function n(){return G$(this.a,97)?bG(this.a,97).Qj():!this.a.dc()};lce.Wb=function n(e){this.a.$b();this.a.Gc(bG(e,15))};lce.Gk=function n(){G$(this.a,97)?bG(this.a,97).Gk():this.a.$b()};var Act=YW(Jee,"EStructuralFeatureImpl/SettingMany",1365);wDn(1366,576,Iie,l8);lce.xl=function n(e){return new dF((bzn(),Lot),this.b.ri(this.a,e))};lce.md=function n(){return null};lce.zl=function n(e,t,r){return r};lce.Al=function n(e,t,r){return r};var Lct=YW(Jee,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1366);wDn(652,576,Iie,dF);lce.xl=function n(e){return new dF(this.c,e)};lce.md=function n(){return this.a};lce.zl=function n(e,t,r){return r};lce.Al=function n(e,t,r){return r};var Nct=YW(Jee,"EStructuralFeatureImpl/SimpleFeatureMapEntry",652);wDn(403,506,zte,Uo);lce.aj=function n(e){return $nn(Mrt,jZn,29,e,0,1)};lce.Yi=function n(){return false};var $ct=YW(Jee,"ESuperAdapter/1",403);wDn(457,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,850:1,54:1,99:1,158:1,457:1,119:1,120:1},Go);lce.Lh=function n(e,t,r){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new xX(this,Crt,this)),this.a}return Fen(this,e-sQ((rZn(),oit)),uin((i=bG(Ron(this,16),29),!i?oit:i),e),t,r)};lce.Uh=function n(e,t,r){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new gz(vrt,this,0,3)),Kyn(this.Ab,e,r);case 2:return!this.a&&(this.a=new xX(this,Crt,this)),Kyn(this.a,e,r)}return a=bG(uin((i=bG(Ron(this,16),29),!i?(rZn(),oit):i),t),69),a.wk().Ak(this,Fmn(this),t-sQ((rZn(),oit)),e,r)};lce.Wh=function n(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return!!this.a&&this.a.i!=0}return v5(this,e-sQ((rZn(),oit)),uin((t=bG(Ron(this,16),29),!t?oit:t),e))};lce.bi=function n(e,t){var r;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NW(this.Ab,bG(t,16));return;case 1:Qun(this,TK(t));return;case 2:!this.a&&(this.a=new xX(this,Crt,this));NVn(this.a);!this.a&&(this.a=new xX(this,Crt,this));NW(this.a,bG(t,16));return}vvn(this,e-sQ((rZn(),oit)),uin((r=bG(Ron(this,16),29),!r?oit:r),e),t)};lce.ii=function n(){return rZn(),oit};lce.ki=function n(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new gz(vrt,this,0,3));NVn(this.Ab);return;case 1:Qun(this,null);return;case 2:!this.a&&(this.a=new xX(this,Crt,this));NVn(this.a);return}wdn(this,e-sQ((rZn(),oit)),uin((t=bG(Ron(this,16),29),!t?oit:t),e))};var Dct=YW(Jee,"ETypeParameterImpl",457);wDn(458,83,yie,xX);lce.Nj=function n(e,t){return TCn(this,bG(e,89),t)};lce.Oj=function n(e,t){return jCn(this,bG(e,89),t)};var xct=YW(Jee,"ETypeParameterImpl/1",458);wDn(647,45,_0n,cy);lce.ec=function n(){return new zp(this)};var Rct=YW(Jee,"ETypeParameterImpl/2",647);wDn(570,RZn,KZn,zp);lce.Fc=function n(e){return n_(this,bG(e,89))};lce.Gc=function n(e){var t,r,i;i=false;for(r=e.Kc();r.Ob();){t=bG(r.Pb(),89);jJ(this.a,t,"")==null&&(i=true)}return i};lce.$b=function n(){Fz(this.a)};lce.Hc=function n(e){return Lz(this.a,e)};lce.Kc=function n(){var e;return e=new pon(new Kw(this.a).a),new Wp(e)};lce.Mc=function n(e){return N7(this,e)};lce.gc=function n(){return lS(this.a)};var Kct=YW(Jee,"ETypeParameterImpl/2/1",570);wDn(571,1,NZn,Wp);lce.Nb=function n(e){Az(this,e)};lce.Pb=function n(){return bG(jun(this.a).ld(),89)};lce.Ob=function n(){return this.a.b};lce.Qb=function n(){Dtn(this.a)};var Fct=YW(Jee,"ETypeParameterImpl/2/1/1",571);wDn(1329,45,_0n,uy);lce._b=function n(e){return HA(e)?xZ(this,e):!!GX(this.f,e)};lce.xc=function n(e){var t,r;t=HA(e)?z1(this,e):_A(GX(this.f,e));if(G$(t,851)){r=bG(t,851);t=r.Kk();jJ(this,bG(e,241),t);return t}else return t!=null?t:e==null?(AP(),yst):null};var _ct=YW(Jee,"EValidatorRegistryImpl",1329);wDn(1349,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,2040:1,54:1,99:1,158:1,119:1,120:1},qo);lce.ri=function n(e,t){switch(e.hk()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return t==null?null:fvn(t);case 25:return Jin(t);case 27:return atn(t);case 28:return ctn(t);case 29:return t==null?null:K$(Tnt[0],bG(t,206));case 41:return t==null?"":$j(bG(t,297));case 42:return fvn(t);case 50:return TK(t);default:throw dm(new jM(nte+e.xe()+ete))}};lce.si=function n(e){var t,r,i,a,c,u,s,o,f,h,l,b,w,d,g,v;switch(e.G==-1&&(e.G=(b=Vin(e),b?Vyn(b.vi(),e):-1)),e.G){case 0:return r=new ny,r;case 1:return t=new jo,t;case 2:return i=new Ul,i;case 4:return a=new Wm,a;case 5:return c=new ty,c;case 6:return u=new zm,u;case 7:return s=new Gl,s;case 10:return f=new Mo,f;case 11:return h=new ry,h;case 12:return l=new hZ,l;case 13:return w=new ay,w;case 14:return d=new LK,d;case 17:return g=new No,g;case 18:return o=new um,o;case 19:return v=new Go,v;default:throw dm(new jM(ite+e.zb+ete))}};lce.ti=function n(e,t){switch(e.hk()){case 20:return t==null?null:new nE(t);case 21:return t==null?null:new LN(t);case 23:case 22:return t==null?null:Dmn(t);case 26:case 24:return t==null?null:Xtn(TUn(t,-128,127)<<24>>24);case 25:return fxn(t);case 27:return wjn(t);case 28:return djn(t);case 29:return oIn(t);case 32:case 31:return t==null?null:rOn(t);case 38:case 37:return t==null?null:new ck(t);case 40:case 39:return t==null?null:Bwn(TUn(t,T1n,pZn));case 41:return null;case 42:return t==null?null:null;case 44:case 43:return t==null?null:Vmn(cJn(t));case 49:case 48:return t==null?null:Hwn(TUn(t,$ie,32767)<<16>>16);case 50:return t;default:throw dm(new jM(nte+e.xe()+ete))}};var Bct=YW(Jee,"EcoreFactoryImpl",1349);wDn(560,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,2038:1,54:1,99:1,158:1,184:1,560:1,119:1,120:1,690:1},kJ);lce.gb=false;lce.hb=false;var Hct,Uct=false;var Gct=YW(Jee,"EcorePackageImpl",560);wDn(1234,1,{851:1},Xo);lce.Kk=function n(){return VD(),Fst};var qct=YW(Jee,"EcorePackageImpl/1",1234);wDn(1243,1,Vie,Vo);lce.fk=function n(e){return G$(e,155)};lce.gk=function n(e){return $nn(G7e,jZn,155,e,0,1)};var Xct=YW(Jee,"EcorePackageImpl/10",1243);wDn(1244,1,Vie,zo);lce.fk=function n(e){return G$(e,197)};lce.gk=function n(e){return $nn(V7e,jZn,197,e,0,1)};var Vct=YW(Jee,"EcorePackageImpl/11",1244);wDn(1245,1,Vie,Wo);lce.fk=function n(e){return G$(e,58)};lce.gk=function n(e){return $nn(x7e,jZn,58,e,0,1)};var zct=YW(Jee,"EcorePackageImpl/12",1245);wDn(1246,1,Vie,Qo);lce.fk=function n(e){return G$(e,411)};lce.gk=function n(e){return $nn(Irt,mie,62,e,0,1)};var Wct=YW(Jee,"EcorePackageImpl/13",1246);wDn(1247,1,Vie,Jo);lce.fk=function n(e){return G$(e,241)};lce.gk=function n(e){return $nn(z7e,jZn,241,e,0,1)};var Qct=YW(Jee,"EcorePackageImpl/14",1247);wDn(1248,1,Vie,Yo);lce.fk=function n(e){return G$(e,518)};lce.gk=function n(e){return $nn(Art,jZn,2116,e,0,1)};var Jct=YW(Jee,"EcorePackageImpl/15",1248);wDn(1249,1,Vie,Zo);lce.fk=function n(e){return G$(e,102)};lce.gk=function n(e){return $nn(Lrt,pie,19,e,0,1)};var Yct=YW(Jee,"EcorePackageImpl/16",1249);wDn(1250,1,Vie,nf);lce.fk=function n(e){return G$(e,179)};lce.gk=function n(e){return $nn(mrt,pie,179,e,0,1)};var Zct=YW(Jee,"EcorePackageImpl/17",1250);wDn(1251,1,Vie,ef);lce.fk=function n(e){return G$(e,481)};lce.gk=function n(e){return $nn(prt,jZn,481,e,0,1)};var nut=YW(Jee,"EcorePackageImpl/18",1251);wDn(1252,1,Vie,tf);lce.fk=function n(e){return G$(e,561)};lce.gk=function n(e){return $nn(Nat,Gre,561,e,0,1)};var eut=YW(Jee,"EcorePackageImpl/19",1252);wDn(1235,1,Vie,rf);lce.fk=function n(e){return G$(e,331)};lce.gk=function n(e){return $nn(krt,pie,35,e,0,1)};var tut=YW(Jee,"EcorePackageImpl/2",1235);wDn(1253,1,Vie,af);lce.fk=function n(e){return G$(e,248)};lce.gk=function n(e){return $nn(Crt,Eie,89,e,0,1)};var rut=YW(Jee,"EcorePackageImpl/20",1253);wDn(1254,1,Vie,cf);lce.fk=function n(e){return G$(e,457)};lce.gk=function n(e){return $nn(xrt,jZn,850,e,0,1)};var iut=YW(Jee,"EcorePackageImpl/21",1254);wDn(1255,1,Vie,uf);lce.fk=function n(e){return UA(e)};lce.gk=function n(e){return $nn(Uhe,XZn,485,e,8,1)};var aut=YW(Jee,"EcorePackageImpl/22",1255);wDn(1256,1,Vie,sf);lce.fk=function n(e){return G$(e,195)};lce.gk=function n(e){return $nn(Vht,XZn,195,e,0,2)};var cut=YW(Jee,"EcorePackageImpl/23",1256);wDn(1257,1,Vie,of);lce.fk=function n(e){return G$(e,222)};lce.gk=function n(e){return $nn(Xhe,XZn,222,e,0,1)};var uut=YW(Jee,"EcorePackageImpl/24",1257);wDn(1258,1,Vie,ff);lce.fk=function n(e){return G$(e,180)};lce.gk=function n(e){return $nn(Whe,XZn,180,e,0,1)};var sut=YW(Jee,"EcorePackageImpl/25",1258);wDn(1259,1,Vie,hf);lce.fk=function n(e){return G$(e,206)};lce.gk=function n(e){return $nn(hhe,XZn,206,e,0,1)};var out=YW(Jee,"EcorePackageImpl/26",1259);wDn(1260,1,Vie,lf);lce.fk=function n(e){return false};lce.gk=function n(e){return $nn(Yht,jZn,2215,e,0,1)};var fut=YW(Jee,"EcorePackageImpl/27",1260);wDn(1261,1,Vie,bf);lce.fk=function n(e){return GA(e)};lce.gk=function n(e){return $nn(Yhe,XZn,345,e,7,1)};var hut=YW(Jee,"EcorePackageImpl/28",1261);wDn(1262,1,Vie,wf);lce.fk=function n(e){return G$(e,61)};lce.gk=function n(e){return $nn(Xet,B3n,61,e,0,1)};var lut=YW(Jee,"EcorePackageImpl/29",1262);wDn(1236,1,Vie,df);lce.fk=function n(e){return G$(e,519)};lce.gk=function n(e){return $nn(vrt,{3:1,4:1,5:1,2033:1},598,e,0,1)};var but=YW(Jee,"EcorePackageImpl/3",1236);wDn(1263,1,Vie,gf);lce.fk=function n(e){return G$(e,582)};lce.gk=function n(e){return $nn(Wtt,jZn,2039,e,0,1)};var wut=YW(Jee,"EcorePackageImpl/30",1263);wDn(1264,1,Vie,vf);lce.fk=function n(e){return G$(e,160)};lce.gk=function n(e){return $nn(rst,B3n,160,e,0,1)};var dut=YW(Jee,"EcorePackageImpl/31",1264);wDn(1265,1,Vie,pf);lce.fk=function n(e){return G$(e,76)};lce.gk=function n(e){return $nn(fit,zie,76,e,0,1)};var gut=YW(Jee,"EcorePackageImpl/32",1265);wDn(1266,1,Vie,mf);lce.fk=function n(e){return G$(e,161)};lce.gk=function n(e){return $nn(Zhe,XZn,161,e,0,1)};var vut=YW(Jee,"EcorePackageImpl/33",1266);wDn(1267,1,Vie,kf);lce.fk=function n(e){return G$(e,17)};lce.gk=function n(e){return $nn(tle,XZn,17,e,0,1)};var put=YW(Jee,"EcorePackageImpl/34",1267);wDn(1268,1,Vie,yf);lce.fk=function n(e){return G$(e,297)};lce.gk=function n(e){return $nn(yce,jZn,297,e,0,1)};var mut=YW(Jee,"EcorePackageImpl/35",1268);wDn(1269,1,Vie,Mf);lce.fk=function n(e){return G$(e,168)};lce.gk=function n(e){return $nn(ale,XZn,168,e,0,1)};var kut=YW(Jee,"EcorePackageImpl/36",1269);wDn(1270,1,Vie,Tf);lce.fk=function n(e){return G$(e,85)};lce.gk=function n(e){return $nn(_ce,jZn,85,e,0,1)};var yut=YW(Jee,"EcorePackageImpl/37",1270);wDn(1271,1,Vie,jf);lce.fk=function n(e){return G$(e,599)};lce.gk=function n(e){return $nn(Kut,jZn,599,e,0,1)};var Mut=YW(Jee,"EcorePackageImpl/38",1271);wDn(1272,1,Vie,Ef);lce.fk=function n(e){return false};lce.gk=function n(e){return $nn(Zht,jZn,2216,e,0,1)};var Tut=YW(Jee,"EcorePackageImpl/39",1272);wDn(1237,1,Vie,Sf);lce.fk=function n(e){return G$(e,90)};lce.gk=function n(e){return $nn(Mrt,jZn,29,e,0,1)};var jut=YW(Jee,"EcorePackageImpl/4",1237);wDn(1273,1,Vie,Pf);lce.fk=function n(e){return G$(e,191)};lce.gk=function n(e){return $nn(wle,XZn,191,e,0,1)};var Eut=YW(Jee,"EcorePackageImpl/40",1273);wDn(1274,1,Vie,Cf);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Sut=YW(Jee,"EcorePackageImpl/41",1274);wDn(1275,1,Vie,If);lce.fk=function n(e){return G$(e,596)};lce.gk=function n(e){return $nn(Wet,jZn,596,e,0,1)};var Put=YW(Jee,"EcorePackageImpl/42",1275);wDn(1276,1,Vie,Of);lce.fk=function n(e){return false};lce.gk=function n(e){return $nn(nlt,XZn,2217,e,0,1)};var Cut=YW(Jee,"EcorePackageImpl/43",1276);wDn(1277,1,Vie,Af);lce.fk=function n(e){return G$(e,44)};lce.gk=function n(e){return $nn(vue,i1n,44,e,0,1)};var Iut=YW(Jee,"EcorePackageImpl/44",1277);wDn(1238,1,Vie,Lf);lce.fk=function n(e){return G$(e,142)};lce.gk=function n(e){return $nn(yrt,jZn,142,e,0,1)};var Out=YW(Jee,"EcorePackageImpl/5",1238);wDn(1239,1,Vie,Nf);lce.fk=function n(e){return G$(e,156)};lce.gk=function n(e){return $nn(Trt,jZn,156,e,0,1)};var Aut=YW(Jee,"EcorePackageImpl/6",1239);wDn(1240,1,Vie,$f);lce.fk=function n(e){return G$(e,469)};lce.gk=function n(e){return $nn(Srt,jZn,685,e,0,1)};var Lut=YW(Jee,"EcorePackageImpl/7",1240);wDn(1241,1,Vie,Df);lce.fk=function n(e){return G$(e,582)};lce.gk=function n(e){return $nn(Prt,jZn,694,e,0,1)};var Nut=YW(Jee,"EcorePackageImpl/8",1241);wDn(1242,1,Vie,xf);lce.fk=function n(e){return G$(e,480)};lce.gk=function n(e){return $nn(q7e,jZn,480,e,0,1)};var $ut=YW(Jee,"EcorePackageImpl/9",1242);wDn(1038,2080,Hre,eM);lce.Mi=function n(e,t){mdn(this,bG(t,424))};lce.Qi=function n(e,t){WAn(this,e,bG(t,424))};var Dut=YW(Jee,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1038);wDn(1039,152,Fre,AQ);lce.jj=function n(){return this.a.a};var xut=YW(Jee,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1039);wDn(1067,1066,{},u$);var Rut=YW("org.eclipse.emf.ecore.plugin","EcorePlugin",1067);var Kut=$q(Wie,"Resource");wDn(799,1524,Qie);lce.Hl=function n(e){};lce.Il=function n(e){};lce.El=function n(){return!this.a&&(this.a=new Qp(this)),this.a};lce.Fl=function n(e){var t,r,i,a,c;i=e.length;if(i>0){w3(0,e.length);if(e.charCodeAt(0)==47){c=new H7(4);a=1;for(t=1;t0&&(e=(Unn(0,r,e.length),e.substr(0,r)))}}}return vNn(this,e)};lce.Gl=function n(){return this.c};lce.Ib=function n(){var e;return $j(this.Rm)+"@"+(e=Vun(this)>>>0,e.toString(16))+" uri='"+this.d+"'"};lce.b=false;var Fut=YW(Jie,"ResourceImpl",799);wDn(1525,799,Qie,Jp);var _ut=YW(Jie,"BinaryResourceImpl",1525);wDn(1190,708,Wte);lce.bj=function n(e){return G$(e,58)?t1(this,bG(e,58)):G$(e,599)?new _D(bG(e,599).El()):BA(e)===BA(this.f)?bG(e,16).Kc():(OK(),Gtt.a)};lce.Ob=function n(){return b$n(this)};lce.a=false;var But=YW(iie,"EcoreUtil/ContentTreeIterator",1190);wDn(1526,1190,Wte,kz);lce.bj=function n(e){return BA(e)===BA(this.f)?bG(e,15).Kc():new R6(bG(e,58))};var Hut=YW(Jie,"ResourceImpl/5",1526);wDn(658,2092,kie,Qp);lce.Hc=function n(e){return this.i<=4?wSn(this,e):G$(e,54)&&bG(e,54).Jh()==this.a};lce.Mi=function n(e,t){e==this.i-1&&(this.a.b||(this.a.b=true,null))};lce.Oi=function n(e,t){e==0?this.a.b||(this.a.b=true,null):xnn(this,e,t)};lce.Qi=function n(e,t){};lce.Ri=function n(e,t,r){};lce.Lj=function n(){return 2};lce.jj=function n(){return this.a};lce.Mj=function n(){return true};lce.Nj=function n(e,t){var r;r=bG(e,54);t=r.fi(this.a,t);return t};lce.Oj=function n(e,t){var r;r=bG(e,54);return r.fi(null,t)};lce.Pj=function n(){return false};lce.Si=function n(){return true};lce.aj=function n(e){return $nn(x7e,jZn,58,e,0,1)};lce.Yi=function n(){return false};var Uut=YW(Jie,"ResourceImpl/ContentsEList",658);wDn(970,2062,v1n,Yp);lce.fd=function n(e){return this.a.Ki(e)};lce.gc=function n(){return this.a.gc()};var Gut=YW(iie,"AbstractSequentialInternalEList/1",970);var qut,Xut,Vut,zut;wDn(634,1,{},VG);var Wut,Qut;var Jut=YW(iie,"BasicExtendedMetaData",634);wDn(1181,1,{},NA);lce.Jl=function n(){return null};lce.Kl=function n(){this.a==-2&&gw(this,QCn(this.d,this.b));return this.a};lce.Ll=function n(){return null};lce.Ml=function n(){return dZ(),dZ(),lbe};lce.xe=function n(){this.c==lae&&vw(this,fkn(this.d,this.b));return this.c};lce.Nl=function n(){return 0};lce.a=-2;lce.c=lae;var Yut=YW(iie,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1181);wDn(1182,1,{},y4);lce.Jl=function n(){this.a==(K7(),Wut)&&kw(this,CBn(this.f,this.b));return this.a};lce.Kl=function n(){return 0};lce.Ll=function n(){this.c==(K7(),Wut)&&pw(this,IBn(this.f,this.b));return this.c};lce.Ml=function n(){!this.d&&Mw(this,sqn(this.f,this.b));return this.d};lce.xe=function n(){this.e==lae&&jw(this,fkn(this.f,this.b));return this.e};lce.Nl=function n(){this.g==-2&&Sw(this,_Pn(this.f,this.b));return this.g};lce.e=lae;lce.g=-2;var Zut=YW(iie,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1182);wDn(1180,1,{},$A);lce.b=false;lce.c=false;var nst=YW(iie,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1180);wDn(1183,1,{},M4);lce.c=-2;lce.e=lae;lce.f=lae;var est=YW(iie,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1183);wDn(593,632,yie,qG);lce.Lj=function n(){return this.c};lce.ol=function n(){return false};lce.Wi=function n(e,t){return t};lce.c=0;var tst=YW(iie,"EDataTypeEList",593);var rst=$q(iie,"FeatureMap");wDn(78,593,{3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},mon);lce.bd=function n(e,t){sKn(this,e,bG(t,76))};lce.Fc=function n(e){return eRn(this,bG(e,76))};lce.Hi=function n(e){DW(this,bG(e,76))};lce.Nj=function n(e,t){return Q_(this,bG(e,76),t)};lce.Oj=function n(e,t){return J_(this,bG(e,76),t)};lce.Ti=function n(e,t){return vUn(this,e,t)};lce.Wi=function n(e,t){return $zn(this,e,bG(t,76))};lce.hd=function n(e,t){return EFn(this,e,bG(t,76))};lce.Uj=function n(e,t){return Y_(this,bG(e,76),t)};lce.Vj=function n(e,t){return Z_(this,bG(e,76),t)};lce.Wj=function n(e,t,r){return hPn(this,bG(e,76),bG(t,76),r)};lce.Zi=function n(e,t){return nCn(this,e,bG(t,76))};lce.Ol=function n(e,t){return zHn(this,e,t)};lce.cd=function n(e,t){var r,i,a,c,u,s,o,f,h;f=new _in(t.gc());for(a=t.Kc();a.Ob();){i=bG(a.Pb(),76);c=i.Lk();if(OFn(this.e,c)){(!c.Si()||!V5(this,c,i.md())&&!wSn(f,i))&&cen(f,i)}else{h=ZKn(this.e.Dh(),c);r=bG(this.g,124);u=true;for(s=0;s=0){t=e[this.c];if(this.k.am(t.Lk())){this.j=this.f?t:t.md();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var cst=YW(iie,"BasicFeatureMap/FeatureEIterator",420);wDn(676,420,HZn,SL);lce.ul=function n(){return true};var ust=YW(iie,"BasicFeatureMap/ResolvingFeatureEIterator",676);wDn(968,496,Pie,W$);lce.pj=function n(){return this};var sst=YW(iie,"EContentsEList/1",968);wDn(969,496,Pie,EL);lce.ul=function n(){return false};var ost=YW(iie,"EContentsEList/2",969);wDn(967,287,Cie,Q$);lce.wl=function n(e){};lce.Ob=function n(){return false};lce.Sb=function n(){return false};var fst=YW(iie,"EContentsEList/FeatureIteratorImpl/1",967);wDn(840,593,yie,ID);lce.Ni=function n(){this.a=true};lce.Qj=function n(){return this.a};lce.Gk=function n(){var e;NVn(this);if(bN(this.e)){e=this.a;this.a=false;Pon(this.e,new I9(this.e,2,this.c,e,false))}else{this.a=false}};lce.a=false;var hst=YW(iie,"EDataTypeEList/Unsettable",840);wDn(1958,593,yie,OD);lce.Si=function n(){return true};var lst=YW(iie,"EDataTypeUniqueEList",1958);wDn(1959,840,yie,AD);lce.Si=function n(){return true};var bst=YW(iie,"EDataTypeUniqueEList/Unsettable",1959);wDn(147,83,yie,LD);lce.nl=function n(){return true};lce.Wi=function n(e,t){return H$n(this,e,bG(t,58))};var wst=YW(iie,"EObjectContainmentEList/Resolving",147);wDn(1184,555,yie,ND);lce.nl=function n(){return true};lce.Wi=function n(e,t){return H$n(this,e,bG(t,58))};var dst=YW(iie,"EObjectContainmentEList/Unsettable/Resolving",1184);wDn(766,14,yie,o_);lce.Ni=function n(){this.a=true};lce.Qj=function n(){return this.a};lce.Gk=function n(){var e;NVn(this);if(bN(this.e)){e=this.a;this.a=false;Pon(this.e,new I9(this.e,2,this.c,e,false))}else{this.a=false}};lce.a=false;var gst=YW(iie,"EObjectContainmentWithInverseEList/Unsettable",766);wDn(1222,766,yie,f_);lce.nl=function n(){return true};lce.Wi=function n(e,t){return H$n(this,e,bG(t,58))};var vst=YW(iie,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1222);wDn(757,505,yie,$D);lce.Ni=function n(){this.a=true};lce.Qj=function n(){return this.a};lce.Gk=function n(){var e;NVn(this);if(bN(this.e)){e=this.a;this.a=false;Pon(this.e,new I9(this.e,2,this.c,e,false))}else{this.a=false}};lce.a=false;var pst=YW(iie,"EObjectEList/Unsettable",757);wDn(338,505,yie,DD);lce.nl=function n(){return true};lce.Wi=function n(e,t){return H$n(this,e,bG(t,58))};var mst=YW(iie,"EObjectResolvingEList",338);wDn(1844,757,yie,xD);lce.nl=function n(){return true};lce.Wi=function n(e,t){return H$n(this,e,bG(t,58))};var kst=YW(iie,"EObjectResolvingEList/Unsettable",1844);wDn(1527,1,{},Rf);var yst;var Mst=YW(iie,"EObjectValidator",1527);wDn(559,505,yie,mz);lce.il=function n(){return this.d};lce.jl=function n(){return this.b};lce.Mj=function n(){return true};lce.ml=function n(){return true};lce.b=0;var Tst=YW(iie,"EObjectWithInverseEList",559);wDn(1225,559,yie,h_);lce.ll=function n(){return true};var jst=YW(iie,"EObjectWithInverseEList/ManyInverse",1225);wDn(635,559,yie,l_);lce.Ni=function n(){this.a=true};lce.Qj=function n(){return this.a};lce.Gk=function n(){var e;NVn(this);if(bN(this.e)){e=this.a;this.a=false;Pon(this.e,new I9(this.e,2,this.c,e,false))}else{this.a=false}};lce.a=false;var Est=YW(iie,"EObjectWithInverseEList/Unsettable",635);wDn(1224,635,yie,w_);lce.ll=function n(){return true};var Sst=YW(iie,"EObjectWithInverseEList/Unsettable/ManyInverse",1224);wDn(767,559,yie,b_);lce.nl=function n(){return true};lce.Wi=function n(e,t){return H$n(this,e,bG(t,58))};var Pst=YW(iie,"EObjectWithInverseResolvingEList",767);wDn(32,767,yie,g_);lce.ll=function n(){return true};var Cst=YW(iie,"EObjectWithInverseResolvingEList/ManyInverse",32);wDn(768,635,yie,d_);lce.nl=function n(){return true};lce.Wi=function n(e,t){return H$n(this,e,bG(t,58))};var Ist=YW(iie,"EObjectWithInverseResolvingEList/Unsettable",768);wDn(1223,768,yie,v_);lce.ll=function n(){return true};var Ost=YW(iie,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1223);wDn(1185,632,yie);lce.Li=function n(){return(this.b&1792)==0};lce.Ni=function n(){this.b|=1};lce.kl=function n(){return(this.b&4)!=0};lce.Mj=function n(){return(this.b&40)!=0};lce.ll=function n(){return(this.b&16)!=0};lce.ml=function n(){return(this.b&8)!=0};lce.nl=function n(){return(this.b&oie)!=0};lce.al=function n(){return(this.b&32)!=0};lce.ol=function n(){return(this.b&b1n)!=0};lce.fk=function n(e){return!this.d?this.Lk().Hk().fk(e):j5(this.d,e)};lce.Qj=function n(){return(this.b&2)!=0?(this.b&1)!=0:this.i!=0};lce.Si=function n(){return(this.b&128)!=0};lce.Gk=function n(){var e;NVn(this);if((this.b&2)!=0){if(bN(this.e)){e=(this.b&1)!=0;this.b&=-2;rk(this,new I9(this.e,2,upn(this.e.Dh(),this.Lk()),e,false))}else{this.b&=-2}}};lce.Yi=function n(){return(this.b&1536)==0};lce.b=0;var Ast=YW(iie,"EcoreEList/Generic",1185);wDn(1186,1185,yie,SZ);lce.Lk=function n(){return this.a};var Lst=YW(iie,"EcoreEList/Dynamic",1186);wDn(765,66,zte,Zp);lce.aj=function n(e){return xan(this.a.a,e)};var Nst=YW(iie,"EcoreEMap/1",765);wDn(764,83,yie,Ez);lce.Mi=function n(e,t){pMn(this.b,bG(t,136))};lce.Oi=function n(e,t){Don(this.b)};lce.Pi=function n(e,t,r){var i;++(i=this.b,bG(t,136),i).e};lce.Qi=function n(e,t){Zdn(this.b,bG(t,136))};lce.Ri=function n(e,t,r){Zdn(this.b,bG(r,136));BA(r)===BA(t)&&bG(r,136).Ci(n$(bG(t,136).ld()));pMn(this.b,bG(t,136))};var $st=YW(iie,"EcoreEMap/DelegateEObjectContainmentEList",764);wDn(1220,141,cie,Bcn);var Dst=YW(iie,"EcoreEMap/Unsettable",1220);wDn(1221,764,yie,p_);lce.Ni=function n(){this.a=true};lce.Qj=function n(){return this.a};lce.Gk=function n(){var e;NVn(this);if(bN(this.e)){e=this.a;this.a=false;Pon(this.e,new I9(this.e,2,this.c,e,false))}else{this.a=false}};lce.a=false;var xst=YW(iie,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1221);wDn(1189,215,_0n,_W);lce.a=false;lce.b=false;var Rst=YW(iie,"EcoreUtil/Copier",1189);wDn(759,1,NZn,R6);lce.Nb=function n(e){Az(this,e)};lce.Ob=function n(){return rmn(this)};lce.Pb=function n(){var e;rmn(this);e=this.b;this.b=null;return e};lce.Qb=function n(){this.a.Qb()};var Kst=YW(iie,"EcoreUtil/ProperContentIterator",759);wDn(1528,1527,{},ql);var Fst;var _st=YW(iie,"EcoreValidator",1528);var Bst;var Hst=$q(iie,"FeatureMapUtil/Validator");wDn(1295,1,{2041:1},Kf);lce.am=function n(e){return true};var Ust=YW(iie,"FeatureMapUtil/1",1295);wDn(773,1,{2041:1},SQn);lce.am=function n(e){var t;if(this.c==e)return true;t=yK(fQ(this.a,e));if(t==null){if(_Bn(this,e)){n7(this.a,e,(Qx(),Hhe));return true}else{n7(this.a,e,(Qx(),Bhe));return false}}else{return t==(Qx(),Hhe)}};lce.e=false;var Gst;var qst=YW(iie,"FeatureMapUtil/BasicValidator",773);wDn(774,45,_0n,z$);var Xst=YW(iie,"FeatureMapUtil/BasicValidator/Cache",774);wDn(509,56,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,71:1,97:1},DA);lce.bd=function n(e,t){RFn(this.c,this.b,e,t)};lce.Fc=function n(e){return zHn(this.c,this.b,e)};lce.cd=function n(e,t){return qXn(this.c,this.b,e,t)};lce.Gc=function n(e){return U$(this,e)};lce.Gi=function n(e,t){din(this.c,this.b,e,t)};lce.Wk=function n(e,t){return DBn(this.c,this.b,e,t)};lce.$i=function n(e){return yXn(this.c,this.b,e,false)};lce.Ii=function n(){return mN(this.c,this.b)};lce.Ji=function n(){return kN(this.c,this.b)};lce.Ki=function n(e){return Dnn(this.c,this.b,e)};lce.Xk=function n(e,t){return oF(this,e,t)};lce.$b=function n(){ik(this)};lce.Hc=function n(e){return V5(this.c,this.b,e)};lce.Ic=function n(e){return Hsn(this.c,this.b,e)};lce.Xb=function n(e){return yXn(this.c,this.b,e,true)};lce.Fk=function n(e){return this};lce.dd=function n(e){return z5(this.c,this.b,e)};lce.dc=function n(){return FA(this)};lce.Qj=function n(){return!Epn(this.c,this.b)};lce.Kc=function n(){return Ern(this.c,this.b)};lce.ed=function n(){return Srn(this.c,this.b)};lce.fd=function n(e){return vgn(this.c,this.b,e)};lce.Ti=function n(e,t){return OGn(this.c,this.b,e,t)};lce.Ui=function n(e,t){Bnn(this.c,this.b,e,t)};lce.gd=function n(e){return ZOn(this.c,this.b,e)};lce.Mc=function n(e){return FHn(this.c,this.b,e)};lce.hd=function n(e,t){return dqn(this.c,this.b,e,t)};lce.Wb=function n(e){N$n(this.c,this.b);U$(this,bG(e,15))};lce.gc=function n(){return ggn(this.c,this.b)};lce.Pc=function n(){return j4(this.c,this.b)};lce.Qc=function n(e){return W5(this.c,this.b,e)};lce.Ib=function n(){var e,t;t=new YM;t.a+="[";for(e=mN(this.c,this.b);ibn(e);){ZA(t,lx(qyn(e)));ibn(e)&&(t.a+=MZn,t)}t.a+="]";return t.a};lce.Gk=function n(){N$n(this.c,this.b)};var Vst=YW(iie,"FeatureMapUtil/FeatureEList",509);wDn(644,39,Fre,s8);lce.hj=function n(e){return Sdn(this,e)};lce.mj=function n(e){var t,r,i,a,c,u,s;switch(this.d){case 1:case 2:{c=e.jj();if(BA(c)===BA(this.c)&&Sdn(this,null)==e.hj(null)){this.g=e.ij();e.gj()==1&&(this.d=1);return true}break}case 3:{a=e.gj();switch(a){case 3:{c=e.jj();if(BA(c)===BA(this.c)&&Sdn(this,null)==e.hj(null)){this.d=5;t=new _in(2);cen(t,this.g);cen(t,e.ij());this.g=t;return true}break}}break}case 5:{a=e.gj();switch(a){case 3:{c=e.jj();if(BA(c)===BA(this.c)&&Sdn(this,null)==e.hj(null)){r=bG(this.g,16);r.Fc(e.ij());return true}break}}break}case 4:{a=e.gj();switch(a){case 3:{c=e.jj();if(BA(c)===BA(this.c)&&Sdn(this,null)==e.hj(null)){this.d=1;this.g=e.ij();return true}break}case 4:{c=e.jj();if(BA(c)===BA(this.c)&&Sdn(this,null)==e.hj(null)){this.d=6;s=new _in(2);cen(s,this.n);cen(s,e.kj());this.n=s;u=zfn(fT(Ght,1),z1n,28,15,[this.o,e.lj()]);this.g=u;return true}break}}break}case 6:{a=e.gj();switch(a){case 4:{c=e.jj();if(BA(c)===BA(this.c)&&Sdn(this,null)==e.hj(null)){r=bG(this.n,16);r.Fc(e.kj());u=bG(this.g,53);i=$nn(Ght,z1n,28,u.length+1,15,1);QGn(u,0,i,0,u.length);i[u.length]=e.lj();this.g=i;return true}break}}break}}return false};var zst=YW(iie,"FeatureMapUtil/FeatureENotificationImpl",644);wDn(564,509,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},Nq);lce.Ol=function n(e,t){return zHn(this.c,e,t)};lce.Pl=function n(e,t,r){return DBn(this.c,e,t,r)};lce.Ql=function n(e,t,r){return gXn(this.c,e,t,r)};lce.Rl=function n(){return this};lce.Sl=function n(e,t){return kXn(this.c,e,t)};lce.Tl=function n(e){return bG(yXn(this.c,this.b,e,false),76).Lk()};lce.Ul=function n(e){return bG(yXn(this.c,this.b,e,false),76).md()};lce.Vl=function n(){return this.a};lce.Wl=function n(e){return!Epn(this.c,e)};lce.Xl=function n(e,t){XXn(this.c,e,t)};lce.Yl=function n(e){return aun(this.c,e)};lce.Zl=function n(e){OTn(this.c,e)};var Wst=YW(iie,"FeatureMapUtil/FeatureFeatureMap",564);wDn(1294,1,aie,LA);lce.Fk=function n(e){return yXn(this.b,this.a,-1,e)};lce.Qj=function n(){return!Epn(this.b,this.a)};lce.Wb=function n(e){XXn(this.b,this.a,e)};lce.Gk=function n(){N$n(this.b,this.a)};var Qst=YW(iie,"FeatureMapUtil/FeatureValue",1294);var Jst,Yst,Zst,not,eot;var tot=$q(wae,"AnyType");wDn(680,63,E1n,LM);var rot=YW(wae,"InvalidDatatypeValueException",680);var iot=$q(wae,dae);var aot=$q(wae,gae);var cot=$q(wae,vae);var uot;var sot;var oot,fot,hot,lot,bot,wot,dot,got,vot,pot,mot,kot,yot,Mot,Tot,jot,Eot,Sot,Pot,Cot,Iot,Oot,Aot,Lot;wDn(844,516,{110:1,94:1,93:1,58:1,54:1,99:1,857:1},sy);lce.Lh=function n(e,t,r){switch(e){case 0:if(r)return!this.c&&(this.c=new mon(this,0)),this.c;return!this.c&&(this.c=new mon(this,0)),this.c.b;case 1:if(r)return!this.c&&(this.c=new mon(this,0)),bG(C2(this.c,(bzn(),fot)),160);return(!this.c&&(this.c=new mon(this,0)),bG(bG(C2(this.c,(bzn(),fot)),160),220)).Vl();case 2:if(r)return!this.b&&(this.b=new mon(this,2)),this.b;return!this.b&&(this.b=new mon(this,2)),this.b.b}return Fen(this,e-sQ(this.ii()),uin((this.j&2)==0?this.ii():(!this.k&&(this.k=new Rl),this.k).Nk(),e),t,r)};lce.Uh=function n(e,t,r){var i;switch(t){case 0:return!this.c&&(this.c=new mon(this,0)),KHn(this.c,e,r);case 1:return(!this.c&&(this.c=new mon(this,0)),bG(bG(C2(this.c,(bzn(),fot)),160),71)).Xk(e,r);case 2:return!this.b&&(this.b=new mon(this,2)),KHn(this.b,e,r)}return i=bG(uin((this.j&2)==0?this.ii():(!this.k&&(this.k=new Rl),this.k).Nk(),t),69),i.wk().Ak(this,nrn(this),t-sQ(this.ii()),e,r)};lce.Wh=function n(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new mon(this,0)),bG(C2(this.c,(bzn(),fot)),160)).dc();case 2:return!!this.b&&this.b.i!=0}return v5(this,e-sQ(this.ii()),uin((this.j&2)==0?this.ii():(!this.k&&(this.k=new Rl),this.k).Nk(),e))};lce.bi=function n(e,t){switch(e){case 0:!this.c&&(this.c=new mon(this,0));fW(this.c,t);return;case 1:(!this.c&&(this.c=new mon(this,0)),bG(bG(C2(this.c,(bzn(),fot)),160),220)).Wb(t);return;case 2:!this.b&&(this.b=new mon(this,2));fW(this.b,t);return}vvn(this,e-sQ(this.ii()),uin((this.j&2)==0?this.ii():(!this.k&&(this.k=new Rl),this.k).Nk(),e),t)};lce.ii=function n(){return bzn(),oot};lce.ki=function n(e){switch(e){case 0:!this.c&&(this.c=new mon(this,0));NVn(this.c);return;case 1:(!this.c&&(this.c=new mon(this,0)),bG(C2(this.c,(bzn(),fot)),160)).$b();return;case 2:!this.b&&(this.b=new mon(this,2));NVn(this.b);return}wdn(this,e-sQ(this.ii()),uin((this.j&2)==0?this.ii():(!this.k&&(this.k=new Rl),this.k).Nk(),e))};lce.Ib=function n(){var e;if((this.j&4)!=0)return jxn(this);e=new gx(jxn(this));e.a+=" (mixed: ";YA(e,this.c);e.a+=", anyAttribute: ";YA(e,this.b);e.a+=")";return e.a};var Not=YW(pae,"AnyTypeImpl",844);wDn(681,516,{110:1,94:1,93:1,58:1,54:1,99:1,2119:1,681:1},Wf);lce.Lh=function n(e,t,r){switch(e){case 0:return this.a;case 1:return this.b}return Fen(this,e-sQ((bzn(),Mot)),uin((this.j&2)==0?Mot:(!this.k&&(this.k=new Rl),this.k).Nk(),e),t,r)};lce.Wh=function n(e){switch(e){case 0:return this.a!=null;case 1:return this.b!=null}return v5(this,e-sQ((bzn(),Mot)),uin((this.j&2)==0?Mot:(!this.k&&(this.k=new Rl),this.k).Nk(),e))};lce.bi=function n(e,t){switch(e){case 0:Iw(this,TK(t));return;case 1:Aw(this,TK(t));return}vvn(this,e-sQ((bzn(),Mot)),uin((this.j&2)==0?Mot:(!this.k&&(this.k=new Rl),this.k).Nk(),e),t)};lce.ii=function n(){return bzn(),Mot};lce.ki=function n(e){switch(e){case 0:this.a=null;return;case 1:this.b=null;return}wdn(this,e-sQ((bzn(),Mot)),uin((this.j&2)==0?Mot:(!this.k&&(this.k=new Rl),this.k).Nk(),e))};lce.Ib=function n(){var e;if((this.j&4)!=0)return jxn(this);e=new gx(jxn(this));e.a+=" (data: ";ZA(e,this.a);e.a+=", target: ";ZA(e,this.b);e.a+=")";return e.a};lce.a=null;lce.b=null;var $ot=YW(pae,"ProcessingInstructionImpl",681);wDn(682,844,{110:1,94:1,93:1,58:1,54:1,99:1,857:1,2120:1,682:1},oy);lce.Lh=function n(e,t,r){switch(e){case 0:if(r)return!this.c&&(this.c=new mon(this,0)),this.c;return!this.c&&(this.c=new mon(this,0)),this.c.b;case 1:if(r)return!this.c&&(this.c=new mon(this,0)),bG(C2(this.c,(bzn(),fot)),160);return(!this.c&&(this.c=new mon(this,0)),bG(bG(C2(this.c,(bzn(),fot)),160),220)).Vl();case 2:if(r)return!this.b&&(this.b=new mon(this,2)),this.b;return!this.b&&(this.b=new mon(this,2)),this.b.b;case 3:return!this.c&&(this.c=new mon(this,0)),TK(kXn(this.c,(bzn(),Eot),true));case 4:return y_(this.a,(!this.c&&(this.c=new mon(this,0)),TK(kXn(this.c,(bzn(),Eot),true))));case 5:return this.a}return Fen(this,e-sQ((bzn(),jot)),uin((this.j&2)==0?jot:(!this.k&&(this.k=new Rl),this.k).Nk(),e),t,r)};lce.Wh=function n(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new mon(this,0)),bG(C2(this.c,(bzn(),fot)),160)).dc();case 2:return!!this.b&&this.b.i!=0;case 3:return!this.c&&(this.c=new mon(this,0)),TK(kXn(this.c,(bzn(),Eot),true))!=null;case 4:return y_(this.a,(!this.c&&(this.c=new mon(this,0)),TK(kXn(this.c,(bzn(),Eot),true))))!=null;case 5:return!!this.a}return v5(this,e-sQ((bzn(),jot)),uin((this.j&2)==0?jot:(!this.k&&(this.k=new Rl),this.k).Nk(),e))};lce.bi=function n(e,t){switch(e){case 0:!this.c&&(this.c=new mon(this,0));fW(this.c,t);return;case 1:(!this.c&&(this.c=new mon(this,0)),bG(bG(C2(this.c,(bzn(),fot)),160),220)).Wb(t);return;case 2:!this.b&&(this.b=new mon(this,2));fW(this.b,t);return;case 3:T4(this,TK(t));return;case 4:T4(this,k_(this.a,t));return;case 5:Ow(this,bG(t,156));return}vvn(this,e-sQ((bzn(),jot)),uin((this.j&2)==0?jot:(!this.k&&(this.k=new Rl),this.k).Nk(),e),t)};lce.ii=function n(){return bzn(),jot};lce.ki=function n(e){switch(e){case 0:!this.c&&(this.c=new mon(this,0));NVn(this.c);return;case 1:(!this.c&&(this.c=new mon(this,0)),bG(C2(this.c,(bzn(),fot)),160)).$b();return;case 2:!this.b&&(this.b=new mon(this,2));NVn(this.b);return;case 3:!this.c&&(this.c=new mon(this,0));XXn(this.c,(bzn(),Eot),null);return;case 4:T4(this,k_(this.a,null));return;case 5:this.a=null;return}wdn(this,e-sQ((bzn(),jot)),uin((this.j&2)==0?jot:(!this.k&&(this.k=new Rl),this.k).Nk(),e))};var Dot=YW(pae,"SimpleAnyTypeImpl",682);wDn(683,516,{110:1,94:1,93:1,58:1,54:1,99:1,2121:1,683:1},fy);lce.Lh=function n(e,t,r){switch(e){case 0:if(r)return!this.a&&(this.a=new mon(this,0)),this.a;return!this.a&&(this.a=new mon(this,0)),this.a.b;case 1:return r?(!this.b&&(this.b=new ven((rZn(),cit),Nat,this,1)),this.b):(!this.b&&(this.b=new ven((rZn(),cit),Nat,this,1)),Cnn(this.b));case 2:return r?(!this.c&&(this.c=new ven((rZn(),cit),Nat,this,2)),this.c):(!this.c&&(this.c=new ven((rZn(),cit),Nat,this,2)),Cnn(this.c));case 3:return!this.a&&(this.a=new mon(this,0)),C2(this.a,(bzn(),Cot));case 4:return!this.a&&(this.a=new mon(this,0)),C2(this.a,(bzn(),Iot));case 5:return!this.a&&(this.a=new mon(this,0)),C2(this.a,(bzn(),Aot));case 6:return!this.a&&(this.a=new mon(this,0)),C2(this.a,(bzn(),Lot))}return Fen(this,e-sQ((bzn(),Pot)),uin((this.j&2)==0?Pot:(!this.k&&(this.k=new Rl),this.k).Nk(),e),t,r)};lce.Uh=function n(e,t,r){var i;switch(t){case 0:return!this.a&&(this.a=new mon(this,0)),KHn(this.a,e,r);case 1:return!this.b&&(this.b=new ven((rZn(),cit),Nat,this,1)),W_(this.b,e,r);case 2:return!this.c&&(this.c=new ven((rZn(),cit),Nat,this,2)),W_(this.c,e,r);case 5:return!this.a&&(this.a=new mon(this,0)),oF(C2(this.a,(bzn(),Aot)),e,r)}return i=bG(uin((this.j&2)==0?(bzn(),Pot):(!this.k&&(this.k=new Rl),this.k).Nk(),t),69),i.wk().Ak(this,nrn(this),t-sQ((bzn(),Pot)),e,r)};lce.Wh=function n(e){switch(e){case 0:return!!this.a&&this.a.i!=0;case 1:return!!this.b&&this.b.f!=0;case 2:return!!this.c&&this.c.f!=0;case 3:return!this.a&&(this.a=new mon(this,0)),!FA(C2(this.a,(bzn(),Cot)));case 4:return!this.a&&(this.a=new mon(this,0)),!FA(C2(this.a,(bzn(),Iot)));case 5:return!this.a&&(this.a=new mon(this,0)),!FA(C2(this.a,(bzn(),Aot)));case 6:return!this.a&&(this.a=new mon(this,0)),!FA(C2(this.a,(bzn(),Lot)))}return v5(this,e-sQ((bzn(),Pot)),uin((this.j&2)==0?Pot:(!this.k&&(this.k=new Rl),this.k).Nk(),e))};lce.bi=function n(e,t){switch(e){case 0:!this.a&&(this.a=new mon(this,0));fW(this.a,t);return;case 1:!this.b&&(this.b=new ven((rZn(),cit),Nat,this,1));ton(this.b,t);return;case 2:!this.c&&(this.c=new ven((rZn(),cit),Nat,this,2));ton(this.c,t);return;case 3:!this.a&&(this.a=new mon(this,0));ik(C2(this.a,(bzn(),Cot)));!this.a&&(this.a=new mon(this,0));U$(C2(this.a,Cot),bG(t,16));return;case 4:!this.a&&(this.a=new mon(this,0));ik(C2(this.a,(bzn(),Iot)));!this.a&&(this.a=new mon(this,0));U$(C2(this.a,Iot),bG(t,16));return;case 5:!this.a&&(this.a=new mon(this,0));ik(C2(this.a,(bzn(),Aot)));!this.a&&(this.a=new mon(this,0));U$(C2(this.a,Aot),bG(t,16));return;case 6:!this.a&&(this.a=new mon(this,0));ik(C2(this.a,(bzn(),Lot)));!this.a&&(this.a=new mon(this,0));U$(C2(this.a,Lot),bG(t,16));return}vvn(this,e-sQ((bzn(),Pot)),uin((this.j&2)==0?Pot:(!this.k&&(this.k=new Rl),this.k).Nk(),e),t)};lce.ii=function n(){return bzn(),Pot};lce.ki=function n(e){switch(e){case 0:!this.a&&(this.a=new mon(this,0));NVn(this.a);return;case 1:!this.b&&(this.b=new ven((rZn(),cit),Nat,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new ven((rZn(),cit),Nat,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new mon(this,0));ik(C2(this.a,(bzn(),Cot)));return;case 4:!this.a&&(this.a=new mon(this,0));ik(C2(this.a,(bzn(),Iot)));return;case 5:!this.a&&(this.a=new mon(this,0));ik(C2(this.a,(bzn(),Aot)));return;case 6:!this.a&&(this.a=new mon(this,0));ik(C2(this.a,(bzn(),Lot)));return}wdn(this,e-sQ((bzn(),Pot)),uin((this.j&2)==0?Pot:(!this.k&&(this.k=new Rl),this.k).Nk(),e))};lce.Ib=function n(){var e;if((this.j&4)!=0)return jxn(this);e=new gx(jxn(this));e.a+=" (mixed: ";YA(e,this.a);e.a+=")";return e.a};var xot=YW(pae,"XMLTypeDocumentRootImpl",683);wDn(2028,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1,2122:1},Ff);lce.ri=function n(e,t){switch(e.hk()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return t==null?null:fvn(t);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return TK(t);case 6:return vK(bG(t,195));case 12:case 47:case 49:case 11:return fWn(this,e,t);case 13:return t==null?null:YXn(bG(t,247));case 15:case 14:return t==null?null:PW(bM(MK(t)));case 17:return lPn((bzn(),t));case 18:return lPn(t);case 21:case 20:return t==null?null:CW(bG(t,161).a);case 27:return pK(bG(t,195));case 30:return ATn((bzn(),bG(t,15)));case 31:return ATn(bG(t,15));case 40:return kK((bzn(),t));case 42:return bPn((bzn(),t));case 43:return bPn(t);case 59:case 48:return mK((bzn(),t));default:throw dm(new jM(nte+e.xe()+ete))}};lce.si=function n(e){var t,r,i,a,c;switch(e.G==-1&&(e.G=(r=Vin(e),r?Vyn(r.vi(),e):-1)),e.G){case 0:return t=new sy,t;case 1:return i=new Wf,i;case 2:return a=new oy,a;case 3:return c=new fy,c;default:throw dm(new jM(ite+e.zb+ete))}};lce.ti=function n(e,t){var r,i,a,c,u,s,o,f,h,l,b,w,d,g,v,p;switch(e.hk()){case 5:case 52:case 4:return t;case 6:return wyn(t);case 8:case 7:return t==null?null:PPn(t);case 9:return t==null?null:Xtn(TUn((i=SXn(t,true),i.length>0&&(w3(0,i.length),i.charCodeAt(0)==43)?(w3(1,i.length+1),i.substr(1)):i),-128,127)<<24>>24);case 10:return t==null?null:Xtn(TUn((a=SXn(t,true),a.length>0&&(w3(0,a.length),a.charCodeAt(0)==43)?(w3(1,a.length+1),a.substr(1)):a),-128,127)<<24>>24);case 11:return TK(fYn(this,(bzn(),bot),t));case 12:return TK(fYn(this,(bzn(),wot),t));case 13:return t==null?null:new nE(SXn(t,true));case 15:case 14:return sRn(t);case 16:return TK(fYn(this,(bzn(),dot),t));case 17:return pmn((bzn(),t));case 18:return pmn(t);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return SXn(t,true);case 21:case 20:return jRn(t);case 22:return TK(fYn(this,(bzn(),got),t));case 23:return TK(fYn(this,(bzn(),vot),t));case 24:return TK(fYn(this,(bzn(),pot),t));case 25:return TK(fYn(this,(bzn(),mot),t));case 26:return TK(fYn(this,(bzn(),kot),t));case 27:return Nkn(t);case 30:return mmn((bzn(),t));case 31:return mmn(t);case 32:return t==null?null:Bwn(TUn((h=SXn(t,true),h.length>0&&(w3(0,h.length),h.charCodeAt(0)==43)?(w3(1,h.length+1),h.substr(1)):h),T1n,pZn));case 33:return t==null?null:new LN((l=SXn(t,true),l.length>0&&(w3(0,l.length),l.charCodeAt(0)==43)?(w3(1,l.length+1),l.substr(1)):l));case 34:return t==null?null:Bwn(TUn((b=SXn(t,true),b.length>0&&(w3(0,b.length),b.charCodeAt(0)==43)?(w3(1,b.length+1),b.substr(1)):b),T1n,pZn));case 36:return t==null?null:Vmn(cJn((w=SXn(t,true),w.length>0&&(w3(0,w.length),w.charCodeAt(0)==43)?(w3(1,w.length+1),w.substr(1)):w)));case 37:return t==null?null:Vmn(cJn((d=SXn(t,true),d.length>0&&(w3(0,d.length),d.charCodeAt(0)==43)?(w3(1,d.length+1),d.substr(1)):d)));case 40:return aTn((bzn(),t));case 42:return kmn((bzn(),t));case 43:return kmn(t);case 44:return t==null?null:new LN((g=SXn(t,true),g.length>0&&(w3(0,g.length),g.charCodeAt(0)==43)?(w3(1,g.length+1),g.substr(1)):g));case 45:return t==null?null:new LN((v=SXn(t,true),v.length>0&&(w3(0,v.length),v.charCodeAt(0)==43)?(w3(1,v.length+1),v.substr(1)):v));case 46:return SXn(t,false);case 47:return TK(fYn(this,(bzn(),yot),t));case 59:case 48:return iTn((bzn(),t));case 49:return TK(fYn(this,(bzn(),Tot),t));case 50:return t==null?null:Hwn(TUn((p=SXn(t,true),p.length>0&&(w3(0,p.length),p.charCodeAt(0)==43)?(w3(1,p.length+1),p.substr(1)):p),$ie,32767)<<16>>16);case 51:return t==null?null:Hwn(TUn((c=SXn(t,true),c.length>0&&(w3(0,c.length),c.charCodeAt(0)==43)?(w3(1,c.length+1),c.substr(1)):c),$ie,32767)<<16>>16);case 53:return TK(fYn(this,(bzn(),Sot),t));case 55:return t==null?null:Hwn(TUn((u=SXn(t,true),u.length>0&&(w3(0,u.length),u.charCodeAt(0)==43)?(w3(1,u.length+1),u.substr(1)):u),$ie,32767)<<16>>16);case 56:return t==null?null:Hwn(TUn((s=SXn(t,true),s.length>0&&(w3(0,s.length),s.charCodeAt(0)==43)?(w3(1,s.length+1),s.substr(1)):s),$ie,32767)<<16>>16);case 57:return t==null?null:Vmn(cJn((o=SXn(t,true),o.length>0&&(w3(0,o.length),o.charCodeAt(0)==43)?(w3(1,o.length+1),o.substr(1)):o)));case 58:return t==null?null:Vmn(cJn((f=SXn(t,true),f.length>0&&(w3(0,f.length),f.charCodeAt(0)==43)?(w3(1,f.length+1),f.substr(1)):f)));case 60:return t==null?null:Bwn(TUn((r=SXn(t,true),r.length>0&&(w3(0,r.length),r.charCodeAt(0)==43)?(w3(1,r.length+1),r.substr(1)):r),T1n,pZn));case 61:return t==null?null:Bwn(TUn(SXn(t,true),T1n,pZn));default:throw dm(new jM(nte+e.xe()+ete))}};var Rot,Kot,Fot,_ot;var Bot=YW(pae,"XMLTypeFactoryImpl",2028);wDn(594,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1,2044:1,594:1},yJ);lce.N=false;lce.O=false;var Hot=false;var Uot=YW(pae,"XMLTypePackageImpl",594);wDn(1961,1,{851:1},_f);lce.Kk=function n(){return jGn(),Rht};var Got=YW(pae,"XMLTypePackageImpl/1",1961);wDn(1970,1,Vie,Bf);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var qot=YW(pae,"XMLTypePackageImpl/10",1970);wDn(1971,1,Vie,Hf);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Xot=YW(pae,"XMLTypePackageImpl/11",1971);wDn(1972,1,Vie,Uf);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Vot=YW(pae,"XMLTypePackageImpl/12",1972);wDn(1973,1,Vie,Gf);lce.fk=function n(e){return GA(e)};lce.gk=function n(e){return $nn(Yhe,XZn,345,e,7,1)};var zot=YW(pae,"XMLTypePackageImpl/13",1973);wDn(1974,1,Vie,qf);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Wot=YW(pae,"XMLTypePackageImpl/14",1974);wDn(1975,1,Vie,Xf);lce.fk=function n(e){return G$(e,15)};lce.gk=function n(e){return $nn(uue,B3n,15,e,0,1)};var Qot=YW(pae,"XMLTypePackageImpl/15",1975);wDn(1976,1,Vie,Vf);lce.fk=function n(e){return G$(e,15)};lce.gk=function n(e){return $nn(uue,B3n,15,e,0,1)};var Jot=YW(pae,"XMLTypePackageImpl/16",1976);wDn(1977,1,Vie,zf);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Yot=YW(pae,"XMLTypePackageImpl/17",1977);wDn(1978,1,Vie,Qf);lce.fk=function n(e){return G$(e,161)};lce.gk=function n(e){return $nn(Zhe,XZn,161,e,0,1)};var Zot=YW(pae,"XMLTypePackageImpl/18",1978);wDn(1979,1,Vie,Jf);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var nft=YW(pae,"XMLTypePackageImpl/19",1979);wDn(1962,1,Vie,Yf);lce.fk=function n(e){return G$(e,857)};lce.gk=function n(e){return $nn(tot,jZn,857,e,0,1)};var eft=YW(pae,"XMLTypePackageImpl/2",1962);wDn(1980,1,Vie,Zf);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var tft=YW(pae,"XMLTypePackageImpl/20",1980);wDn(1981,1,Vie,nh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var rft=YW(pae,"XMLTypePackageImpl/21",1981);wDn(1982,1,Vie,eh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var ift=YW(pae,"XMLTypePackageImpl/22",1982);wDn(1983,1,Vie,th);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var aft=YW(pae,"XMLTypePackageImpl/23",1983);wDn(1984,1,Vie,rh);lce.fk=function n(e){return G$(e,195)};lce.gk=function n(e){return $nn(Vht,XZn,195,e,0,2)};var cft=YW(pae,"XMLTypePackageImpl/24",1984);wDn(1985,1,Vie,ih);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var uft=YW(pae,"XMLTypePackageImpl/25",1985);wDn(1986,1,Vie,ah);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var sft=YW(pae,"XMLTypePackageImpl/26",1986);wDn(1987,1,Vie,ch);lce.fk=function n(e){return G$(e,15)};lce.gk=function n(e){return $nn(uue,B3n,15,e,0,1)};var oft=YW(pae,"XMLTypePackageImpl/27",1987);wDn(1988,1,Vie,uh);lce.fk=function n(e){return G$(e,15)};lce.gk=function n(e){return $nn(uue,B3n,15,e,0,1)};var fft=YW(pae,"XMLTypePackageImpl/28",1988);wDn(1989,1,Vie,sh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var hft=YW(pae,"XMLTypePackageImpl/29",1989);wDn(1963,1,Vie,oh);lce.fk=function n(e){return G$(e,681)};lce.gk=function n(e){return $nn(iot,jZn,2119,e,0,1)};var lft=YW(pae,"XMLTypePackageImpl/3",1963);wDn(1990,1,Vie,fh);lce.fk=function n(e){return G$(e,17)};lce.gk=function n(e){return $nn(tle,XZn,17,e,0,1)};var bft=YW(pae,"XMLTypePackageImpl/30",1990);wDn(1991,1,Vie,hh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var wft=YW(pae,"XMLTypePackageImpl/31",1991);wDn(1992,1,Vie,lh);lce.fk=function n(e){return G$(e,168)};lce.gk=function n(e){return $nn(ale,XZn,168,e,0,1)};var dft=YW(pae,"XMLTypePackageImpl/32",1992);wDn(1993,1,Vie,bh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var gft=YW(pae,"XMLTypePackageImpl/33",1993);wDn(1994,1,Vie,wh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var vft=YW(pae,"XMLTypePackageImpl/34",1994);wDn(1995,1,Vie,dh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var pft=YW(pae,"XMLTypePackageImpl/35",1995);wDn(1996,1,Vie,gh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var mft=YW(pae,"XMLTypePackageImpl/36",1996);wDn(1997,1,Vie,vh);lce.fk=function n(e){return G$(e,15)};lce.gk=function n(e){return $nn(uue,B3n,15,e,0,1)};var kft=YW(pae,"XMLTypePackageImpl/37",1997);wDn(1998,1,Vie,ph);lce.fk=function n(e){return G$(e,15)};lce.gk=function n(e){return $nn(uue,B3n,15,e,0,1)};var yft=YW(pae,"XMLTypePackageImpl/38",1998);wDn(1999,1,Vie,mh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Mft=YW(pae,"XMLTypePackageImpl/39",1999);wDn(1964,1,Vie,kh);lce.fk=function n(e){return G$(e,682)};lce.gk=function n(e){return $nn(aot,jZn,2120,e,0,1)};var Tft=YW(pae,"XMLTypePackageImpl/4",1964);wDn(2e3,1,Vie,yh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var jft=YW(pae,"XMLTypePackageImpl/40",2e3);wDn(2001,1,Vie,Mh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Eft=YW(pae,"XMLTypePackageImpl/41",2001);wDn(2002,1,Vie,Th);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Sft=YW(pae,"XMLTypePackageImpl/42",2002);wDn(2003,1,Vie,jh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Pft=YW(pae,"XMLTypePackageImpl/43",2003);wDn(2004,1,Vie,Eh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Cft=YW(pae,"XMLTypePackageImpl/44",2004);wDn(2005,1,Vie,Sh);lce.fk=function n(e){return G$(e,191)};lce.gk=function n(e){return $nn(wle,XZn,191,e,0,1)};var Ift=YW(pae,"XMLTypePackageImpl/45",2005);wDn(2006,1,Vie,Ph);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Oft=YW(pae,"XMLTypePackageImpl/46",2006);wDn(2007,1,Vie,Ch);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Aft=YW(pae,"XMLTypePackageImpl/47",2007);wDn(2008,1,Vie,Ih);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Lft=YW(pae,"XMLTypePackageImpl/48",2008);wDn(2009,1,Vie,Oh);lce.fk=function n(e){return G$(e,191)};lce.gk=function n(e){return $nn(wle,XZn,191,e,0,1)};var Nft=YW(pae,"XMLTypePackageImpl/49",2009);wDn(1965,1,Vie,Ah);lce.fk=function n(e){return G$(e,683)};lce.gk=function n(e){return $nn(cot,jZn,2121,e,0,1)};var $ft=YW(pae,"XMLTypePackageImpl/5",1965);wDn(2010,1,Vie,Lh);lce.fk=function n(e){return G$(e,168)};lce.gk=function n(e){return $nn(ale,XZn,168,e,0,1)};var Dft=YW(pae,"XMLTypePackageImpl/50",2010);wDn(2011,1,Vie,Nh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var xft=YW(pae,"XMLTypePackageImpl/51",2011);wDn(2012,1,Vie,$h);lce.fk=function n(e){return G$(e,17)};lce.gk=function n(e){return $nn(tle,XZn,17,e,0,1)};var Rft=YW(pae,"XMLTypePackageImpl/52",2012);wDn(1966,1,Vie,Dh);lce.fk=function n(e){return HA(e)};lce.gk=function n(e){return $nn(vle,XZn,2,e,6,1)};var Kft=YW(pae,"XMLTypePackageImpl/6",1966);wDn(1967,1,Vie,xh);lce.fk=function n(e){return G$(e,195)};lce.gk=function n(e){return $nn(Vht,XZn,195,e,0,2)};var Fft=YW(pae,"XMLTypePackageImpl/7",1967);wDn(1968,1,Vie,Rh);lce.fk=function n(e){return UA(e)};lce.gk=function n(e){return $nn(Uhe,XZn,485,e,8,1)};var _ft=YW(pae,"XMLTypePackageImpl/8",1968);wDn(1969,1,Vie,Kh);lce.fk=function n(e){return G$(e,222)};lce.gk=function n(e){return $nn(Xhe,XZn,222,e,0,1)};var Bft=YW(pae,"XMLTypePackageImpl/9",1969);var Hft,Uft;var Gft,qft;var Xft;wDn(55,63,E1n,NM);var Vft=YW(Gae,"RegEx/ParseException",55);wDn(836,1,{},Fh);lce.bm=function n(e){return er*16)throw dm(new NM(oZn((c$(),Sre))));r=r*16+a}while(true);if(this.a!=125)throw dm(new NM(oZn((c$(),Pre))));if(r>qae)throw dm(new NM(oZn((c$(),Cre))));e=r}else{a=0;if(this.c!=0||(a=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));r=a;OYn(this);if(this.c!=0||(a=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));r=r*16+a;e=r}break;case 117:i=0;OYn(this);if(this.c!=0||(i=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));t=i;OYn(this);if(this.c!=0||(i=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));t=t*16+i;OYn(this);if(this.c!=0||(i=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));t=t*16+i;OYn(this);if(this.c!=0||(i=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));t=t*16+i;e=t;break;case 118:OYn(this);if(this.c!=0||(i=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));t=i;OYn(this);if(this.c!=0||(i=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));t=t*16+i;OYn(this);if(this.c!=0||(i=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));t=t*16+i;OYn(this);if(this.c!=0||(i=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));t=t*16+i;OYn(this);if(this.c!=0||(i=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));t=t*16+i;OYn(this);if(this.c!=0||(i=NMn(this.a))<0)throw dm(new NM(oZn((c$(),Ere))));t=t*16+i;if(t>qae)throw dm(new NM(oZn((c$(),"parser.descappe.4"))));e=t;break;case 65:case 90:case 122:throw dm(new NM(oZn((c$(),Ire))))}return e};lce.dm=function n(e){var t,r;switch(e){case 100:r=(this.e&32)==32?EJn("Nd",true):(eZn(),iht);break;case 68:r=(this.e&32)==32?EJn("Nd",false):(eZn(),hht);break;case 119:r=(this.e&32)==32?EJn("IsWord",true):(eZn(),kht);break;case 87:r=(this.e&32)==32?EJn("IsWord",false):(eZn(),bht);break;case 115:r=(this.e&32)==32?EJn("IsSpace",true):(eZn(),dht);break;case 83:r=(this.e&32)==32?EJn("IsSpace",false):(eZn(),lht);break;default:throw dm(new Uy((t=e,Xae+t.toString(16))))}return r};lce.em=function n(e){var t,r,i,a,c,u,s,o,f,h,l,b;this.b=1;OYn(this);t=null;if(this.c==0&&this.a==94){OYn(this);if(e){h=(eZn(),eZn(),++Tht,new U3(5))}else{t=(eZn(),eZn(),++Tht,new U3(4));VFn(t,0,qae);h=(null,++Tht,new U3(4))}}else{h=(eZn(),eZn(),++Tht,new U3(4))}a=true;while((b=this.c)!=1){if(b==0&&this.a==93&&!a)break;a=false;r=this.a;i=false;if(b==10){switch(r){case 100:case 68:case 119:case 87:case 115:case 83:CXn(h,this.dm(r));i=true;break;case 105:case 73:case 99:case 67:r=this.um(h,r);r<0&&(i=true);break;case 112:case 80:l=LNn(this,r);if(!l)throw dm(new NM(oZn((c$(),wre))));CXn(h,l);i=true;break;default:r=this.cm()}}else if(b==20){u=hR(this.i,58,this.d);if(u<0)throw dm(new NM(oZn((c$(),dre))));s=true;if(ZJ(this.i,this.d)==94){++this.d;s=false}c=o1(this.i,this.d,u);o=sen(c,s,(this.e&512)==512);if(!o)throw dm(new NM(oZn((c$(),vre))));CXn(h,o);i=true;if(u+1>=this.j||ZJ(this.i,u+1)!=93)throw dm(new NM(oZn((c$(),dre))));this.d=u+2}OYn(this);if(!i){if(this.c!=0||this.a!=45){VFn(h,r,r)}else{OYn(this);if((b=this.c)==1)throw dm(new NM(oZn((c$(),gre))));if(b==0&&this.a==93){VFn(h,r,r);VFn(h,45,45)}else{f=this.a;b==10&&(f=this.cm());OYn(this);VFn(h,r,f)}}}(this.e&b1n)==b1n&&this.c==0&&this.a==44&&OYn(this)}if(this.c==1)throw dm(new NM(oZn((c$(),gre))));if(t){vWn(t,h);h=t}Mxn(h);bVn(h);this.b=0;OYn(this);return h};lce.fm=function n(){var e,t,r,i;r=this.em(false);while((i=this.c)!=7){e=this.a;if(i==0&&(e==45||e==38)||i==4){OYn(this);if(this.c!=9)throw dm(new NM(oZn((c$(),Mre))));t=this.em(false);if(i==4)CXn(r,t);else if(e==45)vWn(r,t);else if(e==38)Wzn(r,t);else throw dm(new Uy("ASSERT"))}else{throw dm(new NM(oZn((c$(),Tre))))}}OYn(this);return r};lce.gm=function n(){var e,t;e=this.a-48;t=(eZn(),eZn(),++Tht,new G1(12,null,e));!this.g&&(this.g=new fk);Ym(this.g,new nm(e));OYn(this);return t};lce.hm=function n(){OYn(this);return eZn(),ght};lce.im=function n(){OYn(this);return eZn(),wht};lce.jm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.km=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.lm=function n(){OYn(this);return Iln()};lce.mm=function n(){OYn(this);return eZn(),pht};lce.nm=function n(){OYn(this);return eZn(),yht};lce.om=function n(){var e;if(this.d>=this.j||((e=ZJ(this.i,this.d++))&65504)!=64)throw dm(new NM(oZn((c$(),fre))));OYn(this);return eZn(),eZn(),++Tht,new $X(0,e-64)};lce.pm=function n(){OYn(this);return ZGn()};lce.qm=function n(){OYn(this);return eZn(),Mht};lce.rm=function n(){var e;e=(eZn(),eZn(),++Tht,new $X(0,105));OYn(this);return e};lce.sm=function n(){OYn(this);return eZn(),mht};lce.tm=function n(){OYn(this);return eZn(),vht};lce.um=function n(e,t){return this.cm()};lce.vm=function n(){OYn(this);return eZn(),oht};lce.wm=function n(){var e,t,r,i,a;if(this.d+1>=this.j)throw dm(new NM(oZn((c$(),ure))));i=-1;t=null;e=ZJ(this.i,this.d);if(49<=e&&e<=57){i=e-48;!this.g&&(this.g=new fk);Ym(this.g,new nm(i));++this.d;if(ZJ(this.i,this.d)!=41)throw dm(new NM(oZn((c$(),ire))));++this.d}else{e==63&&--this.d;OYn(this);t=uYn(this);switch(t.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));break;default:throw dm(new NM(oZn((c$(),sre))))}}OYn(this);a=Omn(this);r=null;if(a.e==2){if(a.Pm()!=2)throw dm(new NM(oZn((c$(),ore))));r=a.Lm(1);a=a.Lm(0)}if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));OYn(this);return eZn(),eZn(),++Tht,new prn(i,t,a,r)};lce.xm=function n(){OYn(this);return eZn(),fht};lce.ym=function n(){var e;OYn(this);e=Iz(24,Omn(this));if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));OYn(this);return e};lce.zm=function n(){var e;OYn(this);e=Iz(20,Omn(this));if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));OYn(this);return e};lce.Am=function n(){var e;OYn(this);e=Iz(22,Omn(this));if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));OYn(this);return e};lce.Bm=function n(){var e,t,r,i,a;e=0;r=0;t=-1;while(this.d=this.j)throw dm(new NM(oZn((c$(),are))));if(t==45){++this.d;while(this.d=this.j)throw dm(new NM(oZn((c$(),are))))}if(t==58){++this.d;OYn(this);i=WW(Omn(this),e,r);if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));OYn(this)}else if(t==41){++this.d;OYn(this);i=WW(Omn(this),e,r)}else throw dm(new NM(oZn((c$(),cre))));return i};lce.Cm=function n(){var e;OYn(this);e=Iz(21,Omn(this));if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));OYn(this);return e};lce.Dm=function n(){var e;OYn(this);e=Iz(23,Omn(this));if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));OYn(this);return e};lce.Em=function n(){var e,t;OYn(this);e=this.f++;t=Oz(Omn(this),e);if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));OYn(this);return t};lce.Fm=function n(){var e;OYn(this);e=Oz(Omn(this),0);if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));OYn(this);return e};lce.Gm=function n(e){OYn(this);if(this.c==5){OYn(this);return NX(e,(eZn(),eZn(),++Tht,new a8(9,e)))}else return NX(e,(eZn(),eZn(),++Tht,new a8(3,e)))};lce.Hm=function n(e){var t;OYn(this);t=(eZn(),eZn(),++Tht,new e$(2));if(this.c==5){OYn(this);jVn(t,(null,uht));jVn(t,e)}else{jVn(t,e);jVn(t,(null,uht))}return t};lce.Im=function n(e){OYn(this);if(this.c==5){OYn(this);return eZn(),eZn(),++Tht,new a8(9,e)}else return eZn(),eZn(),++Tht,new a8(3,e)};lce.a=0;lce.b=0;lce.c=0;lce.d=0;lce.e=0;lce.f=1;lce.g=null;lce.j=0;var zft=YW(Gae,"RegEx/RegexParser",836);wDn(1947,836,{},hy);lce.bm=function n(e){return false};lce.cm=function n(){return H_n(this)};lce.dm=function n(e){return SUn(e)};lce.em=function n(e){return LYn(this)};lce.fm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.gm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.hm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.im=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.jm=function n(){OYn(this);return SUn(67)};lce.km=function n(){OYn(this);return SUn(73)};lce.lm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.mm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.nm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.om=function n(){OYn(this);return SUn(99)};lce.pm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.qm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.rm=function n(){OYn(this);return SUn(105)};lce.sm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.tm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.um=function n(e,t){return CXn(e,SUn(t)),-1};lce.vm=function n(){OYn(this);return eZn(),eZn(),++Tht,new $X(0,94)};lce.wm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.xm=function n(){OYn(this);return eZn(),eZn(),++Tht,new $X(0,36)};lce.ym=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.zm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.Am=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.Bm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.Cm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.Dm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.Em=function n(){var e;OYn(this);e=Oz(Omn(this),0);if(this.c!=7)throw dm(new NM(oZn((c$(),ire))));OYn(this);return e};lce.Fm=function n(){throw dm(new NM(oZn((c$(),Ore))))};lce.Gm=function n(e){OYn(this);return NX(e,(eZn(),eZn(),++Tht,new a8(3,e)))};lce.Hm=function n(e){var t;OYn(this);t=(eZn(),eZn(),++Tht,new e$(2));jVn(t,e);jVn(t,(null,uht));return t};lce.Im=function n(e){OYn(this);return eZn(),eZn(),++Tht,new a8(3,e)};var Wft=null,Qft=null;var Jft=YW(Gae,"RegEx/ParserForXMLSchema",1947);wDn(122,1,ice,em);lce.Jm=function n(e){throw dm(new Uy("Not supported."))};lce.Km=function n(){return-1};lce.Lm=function n(e){return null};lce.Mm=function n(){return null};lce.Nm=function n(e){};lce.Om=function n(e){};lce.Pm=function n(){return 0};lce.Ib=function n(){return this.Qm(0)};lce.Qm=function n(e){return this.e==11?".":""};lce.e=0;var Yft,Zft,nht,eht,tht,rht=null,iht,aht=null,cht,uht,sht=null,oht,fht,hht,lht,bht,wht,dht,ght,vht,pht,mht,kht,yht,Mht,Tht=0;var jht=YW(Gae,"RegEx/Token",122);wDn(138,122,{3:1,138:1,122:1},U3);lce.Qm=function n(e){var t,r,i;if(this.e==4){if(this==cht)r=".";else if(this==iht)r="\\d";else if(this==kht)r="\\w";else if(this==dht)r="\\s";else{i=new YM;i.a+="[";for(t=0;t0&&(i.a+=",",i);if(this.b[t]===this.b[t+1]){ZA(i,Pqn(this.b[t]))}else{ZA(i,Pqn(this.b[t]));i.a+="-";ZA(i,Pqn(this.b[t+1]))}}i.a+="]";r=i.a}}else{if(this==hht)r="\\D";else if(this==bht)r="\\W";else if(this==lht)r="\\S";else{i=new YM;i.a+="[^";for(t=0;t0&&(i.a+=",",i);if(this.b[t]===this.b[t+1]){ZA(i,Pqn(this.b[t]))}else{ZA(i,Pqn(this.b[t]));i.a+="-";ZA(i,Pqn(this.b[t+1]))}}i.a+="]";r=i.a}}return r};lce.a=false;lce.c=false;var Eht=YW(Gae,"RegEx/RangeToken",138);wDn(592,1,{592:1},nm);lce.a=0;var Sht=YW(Gae,"RegEx/RegexParser/ReferencePosition",592);wDn(591,1,{3:1,591:1},yE);lce.Fb=function n(e){var t;if(e==null)return false;if(!G$(e,591))return false;t=bG(e,591);return T_(this.b,t.b)&&this.a==t.a};lce.Hb=function n(){return Mln(this.b+"/"+JKn(this.a))};lce.Ib=function n(){return this.c.Qm(this.a)};lce.a=0;var Pht=YW(Gae,"RegEx/RegularExpression",591);wDn(228,122,ice,$X);lce.Km=function n(){return this.a};lce.Qm=function n(e){var t,r,i;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:i="\\"+IF(this.a&$1n);break;case 12:i="\\f";break;case 10:i="\\n";break;case 13:i="\\r";break;case 9:i="\\t";break;case 27:i="\\e";break;default:if(this.a>=S0n){r=(t=this.a>>>0,"0"+t.toString(16));i="\\v"+o1(r,r.length-6,r.length)}else i=""+IF(this.a&$1n)}break;case 8:this==oht||this==fht?i=""+IF(this.a&$1n):i="\\"+IF(this.a&$1n);break;default:i=null}return i};lce.a=0;var Cht=YW(Gae,"RegEx/Token/CharToken",228);wDn(318,122,ice,a8);lce.Lm=function n(e){return this.a};lce.Nm=function n(e){this.b=e};lce.Om=function n(e){this.c=e};lce.Pm=function n(){return 1};lce.Qm=function n(e){var t;if(this.e==3){if(this.c<0&&this.b<0){t=this.a.Qm(e)+"*"}else if(this.c==this.b){t=this.a.Qm(e)+"{"+this.c+"}"}else if(this.c>=0&&this.b>=0){t=this.a.Qm(e)+"{"+this.c+","+this.b+"}"}else if(this.c>=0&&this.b<0){t=this.a.Qm(e)+"{"+this.c+",}"}else throw dm(new Uy("Token#toString(): CLOSURE "+this.c+MZn+this.b))}else{if(this.c<0&&this.b<0){t=this.a.Qm(e)+"*?"}else if(this.c==this.b){t=this.a.Qm(e)+"{"+this.c+"}?"}else if(this.c>=0&&this.b>=0){t=this.a.Qm(e)+"{"+this.c+","+this.b+"}?"}else if(this.c>=0&&this.b<0){t=this.a.Qm(e)+"{"+this.c+",}?"}else throw dm(new Uy("Token#toString(): NONGREEDYCLOSURE "+this.c+MZn+this.b))}return t};lce.b=0;lce.c=0;var Iht=YW(Gae,"RegEx/Token/ClosureToken",318);wDn(837,122,ice,uW);lce.Lm=function n(e){return e==0?this.a:this.b};lce.Pm=function n(){return 2};lce.Qm=function n(e){var t;this.b.e==3&&this.b.Lm(0)==this.a?t=this.a.Qm(e)+"+":this.b.e==9&&this.b.Lm(0)==this.a?t=this.a.Qm(e)+"+?":t=this.a.Qm(e)+(""+this.b.Qm(e));return t};var Oht=YW(Gae,"RegEx/Token/ConcatToken",837);wDn(1945,122,ice,prn);lce.Lm=function n(e){if(e==0)return this.d;if(e==1)return this.b;throw dm(new Uy("Internal Error: "+e))};lce.Pm=function n(){return!this.b?1:2};lce.Qm=function n(e){var t;this.c>0?t="(?("+this.c+")":this.a.e==8?t="(?("+this.a+")":t="(?"+this.a;!this.b?t+=this.d+")":t+=this.d+"|"+this.b+")";return t};lce.c=0;var Aht=YW(Gae,"RegEx/Token/ConditionToken",1945);wDn(1946,122,ice,H3);lce.Lm=function n(e){return this.b};lce.Pm=function n(){return 1};lce.Qm=function n(e){return"(?"+(this.a==0?"":JKn(this.a))+(this.c==0?"":JKn(this.c))+":"+this.b.Qm(e)+")"};lce.a=0;lce.c=0;var Lht=YW(Gae,"RegEx/Token/ModifierToken",1946);wDn(838,122,ice,LQ);lce.Lm=function n(e){return this.a};lce.Pm=function n(){return 1};lce.Qm=function n(e){var t;t=null;switch(this.e){case 6:this.b==0?t="(?:"+this.a.Qm(e)+")":t="("+this.a.Qm(e)+")";break;case 20:t="(?="+this.a.Qm(e)+")";break;case 21:t="(?!"+this.a.Qm(e)+")";break;case 22:t="(?<="+this.a.Qm(e)+")";break;case 23:t="(?"+this.a.Qm(e)+")"}return t};lce.b=0;var Nht=YW(Gae,"RegEx/Token/ParenToken",838);wDn(530,122,{3:1,122:1,530:1},G1);lce.Mm=function n(){return this.b};lce.Qm=function n(e){return this.e==12?"\\"+this.a:Kxn(this.b)};lce.a=0;var $ht=YW(Gae,"RegEx/Token/StringToken",530);wDn(477,122,ice,e$);lce.Jm=function n(e){jVn(this,e)};lce.Lm=function n(e){return bG(_Q(this.a,e),122)};lce.Pm=function n(){return!this.a?0:this.a.a.c.length};lce.Qm=function n(e){var t,r,i,a,c;if(this.e==1){if(this.a.a.c.length==2){t=bG(_Q(this.a,0),122);r=bG(_Q(this.a,1),122);r.e==3&&r.Lm(0)==t?a=t.Qm(e)+"+":r.e==9&&r.Lm(0)==t?a=t.Qm(e)+"+?":a=t.Qm(e)+(""+r.Qm(e))}else{c=new YM;for(i=0;i=this.c.b:this.a<=this.c.b};lce.Sb=function n(){return this.b>0};lce.Tb=function n(){return this.b};lce.Vb=function n(){return this.b-1};lce.Qb=function n(){throw dm(new CM(fce))};lce.a=0;lce.b=0;var Hht=YW(uce,"ExclusiveRange/RangeIterator",258);var Uht=dJ(hie,"C");var Ght=dJ(wie,"I");var qht=dJ(wZn,"Z");var Xht=dJ(die,"J");var Vht=dJ(fie,"B");var zht=dJ(lie,"D");var Wht=dJ(bie,"F");var Qht=dJ(gie,"S");var Jht=$q("org.eclipse.elk.core.labels","ILabelManager");var Yht=$q(Ete,"DiagnosticChain");var Zht=$q(Wie,"ResourceSet");var nlt=YW(Ete,"InvocationTargetException",null);var elt=(JM(),T9);var tlt=tlt=YSn;Kcn(pm);jcn("permProps",[[["locale","default"],[hce,"gecko1_8"]],[["locale","default"],[hce,"safari"]]]);tlt(null,"elk",null)}).call(this)}).call(this,typeof t.g!=="undefined"?t.g:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],3:[function(n,e,t){"use strict";function r(n,e){if(!(n instanceof e)){throw new TypeError("Cannot call a class as a function")}}function i(n,e){if(!n){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e&&(typeof e==="object"||typeof e==="function")?e:n}function a(n,e){if(typeof e!=="function"&&e!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof e)}n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:false,writable:true,configurable:true}});if(e)Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e}var c=n("./elk-api.js").default;var u=function(e){a(t,e);function t(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};r(this,t);var a=Object.assign({},e);var c=false;try{n.resolve("web-worker");c=true}catch(f){}if(e.workerUrl){if(c){var u=n("web-worker");a.workerFactory=function(n){return new u(n)}}else{console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.")}}if(!a.workerFactory){var s=n("./elk-worker.min.js"),o=s.Worker;a.workerFactory=function(n){return new o(n)}}return i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,a))}return t}(c);Object.defineProperty(e.exports,"__esModule",{value:true});e.exports=u;u.default=u},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(n,e,t){e.exports=Worker},{}]},{},[3])(3)}))}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6460.d9aaa1e48da295c6035d.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6460.d9aaa1e48da295c6035d.js deleted file mode 100644 index b0085b013c42d9230f350e4122378533a9388bcc..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6460.d9aaa1e48da295c6035d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6460],{56460:(e,t,n)=>{n.r(t);n.d(t,{toml:()=>r});const r={name:"toml",startState:function(){return{inString:false,stringType:"",lhs:true,inArray:0}},token:function(e,t){if(!t.inString&&(e.peek()=='"'||e.peek()=="'")){t.stringType=e.peek();e.next();t.inString=true}if(e.sol()&&t.inArray===0){t.lhs=true}if(t.inString){while(t.inString&&!e.eol()){if(e.peek()===t.stringType){e.next();t.inString=false}else if(e.peek()==="\\"){e.next();e.next()}else{e.match(/^.[^\\\"\']*/)}}return t.lhs?"property":"string"}else if(t.inArray&&e.peek()==="]"){e.next();t.inArray--;return"bracket"}else if(t.lhs&&e.peek()==="["&&e.skipTo("]")){e.next();if(e.peek()==="]")e.next();return"atom"}else if(e.peek()==="#"){e.skipToEnd();return"comment"}else if(e.eatSpace()){return null}else if(t.lhs&&e.eatWhile((function(e){return e!="="&&e!=" "}))){return"property"}else if(t.lhs&&e.peek()==="="){e.next();t.lhs=false;return null}else if(!t.lhs&&e.match(/^\d\d\d\d[\d\-\:\.T]*Z/)){return"atom"}else if(!t.lhs&&(e.match("true")||e.match("false"))){return"atom"}else if(!t.lhs&&e.peek()==="["){t.inArray++;e.next();return"bracket"}else if(!t.lhs&&e.match(/^\-?\d+(?:\.\d+)?/)){return"number"}else if(!e.eatSpace()){e.next()}return null},languageData:{commentTokens:{line:"#"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/649.4081045b1737e4213282.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/649.4081045b1737e4213282.js deleted file mode 100644 index c0296338525c5fd536d5e2601097b9b161b40e14..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/649.4081045b1737e4213282.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[649],{19163:(t,e,a)=>{a.d(e,{S:()=>n});var i=a(75905);function n(t,e){if(t.accDescr){e.setAccDescription?.(t.accDescr)}if(t.accTitle){e.setAccTitle?.(t.accTitle)}if(t.title){e.setDiagramTitle?.(t.title)}}(0,i.K2)(n,"populateCommonDb")},70649:(t,e,a)=>{a.d(e,{diagram:()=>K});var i=a(19163);var n=a(96049);var r=a(93113);var s=a(75905);var o=a(24010);var l=a(24982);var c=s.UI.pie;var p={sections:new Map,showData:false,config:c};var d=p.sections;var u=p.showData;var g=structuredClone(c);var f=(0,s.K2)((()=>structuredClone(g)),"getConfig");var v=(0,s.K2)((()=>{d=new Map;u=p.showData;(0,s.IU)()}),"clear");var h=(0,s.K2)((({label:t,value:e})=>{if(!d.has(t)){d.set(t,e);s.Rm.debug(`added new section: ${t}, with value: ${e}`)}}),"addSection");var m=(0,s.K2)((()=>d),"getSections");var S=(0,s.K2)((t=>{u=t}),"setShowData");var x=(0,s.K2)((()=>u),"getShowData");var w={getConfig:f,clear:v,setDiagramTitle:s.ke,getDiagramTitle:s.ab,setAccTitle:s.SV,getAccTitle:s.iN,setAccDescription:s.EI,getAccDescription:s.m7,addSection:h,getSections:m,setShowData:S,getShowData:x};var D=(0,s.K2)(((t,e)=>{(0,i.S)(t,e);e.setShowData(t.showData);t.sections.map(e.addSection)}),"populateDb");var $={parse:(0,s.K2)((async t=>{const e=await(0,o.qg)("pie",t);s.Rm.debug(e);D(e,w)}),"parse")};var y=(0,s.K2)((t=>`\n .pieCircle{\n stroke: ${t.pieStrokeColor};\n stroke-width : ${t.pieStrokeWidth};\n opacity : ${t.pieOpacity};\n }\n .pieOuterCircle{\n stroke: ${t.pieOuterStrokeColor};\n stroke-width: ${t.pieOuterStrokeWidth};\n fill: none;\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${t.pieTitleTextSize};\n fill: ${t.pieTitleTextColor};\n font-family: ${t.fontFamily};\n }\n .slice {\n font-family: ${t.fontFamily};\n fill: ${t.pieSectionTextColor};\n font-size:${t.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${t.pieLegendTextColor};\n font-family: ${t.fontFamily};\n font-size: ${t.pieLegendTextSize};\n }\n`),"getStyles");var T=y;var C=(0,s.K2)((t=>{const e=[...t.entries()].map((t=>({label:t[0],value:t[1]}))).sort(((t,e)=>e.value-t.value));const a=(0,l.rLf)().value((t=>t.value));return a(e)}),"createPieArcs");var b=(0,s.K2)(((t,e,a,i)=>{s.Rm.debug("rendering pie chart\n"+t);const o=i.db;const c=(0,s.D7)();const p=(0,n.$t)(o.getConfig(),c.pie);const d=40;const u=18;const g=4;const f=450;const v=f;const h=(0,r.D)(e);const m=h.append("g");m.attr("transform","translate("+v/2+","+f/2+")");const{themeVariables:S}=c;let[x]=(0,n.I5)(S.pieOuterStrokeWidth);x??=2;const w=p.textPosition;const D=Math.min(v,f)/2-d;const $=(0,l.JLW)().innerRadius(0).outerRadius(D);const y=(0,l.JLW)().innerRadius(D*w).outerRadius(D*w);m.append("circle").attr("cx",0).attr("cy",0).attr("r",D+x/2).attr("class","pieOuterCircle");const T=o.getSections();const b=C(T);const k=[S.pie1,S.pie2,S.pie3,S.pie4,S.pie5,S.pie6,S.pie7,S.pie8,S.pie9,S.pie10,S.pie11,S.pie12];const K=(0,l.UMr)(k);m.selectAll("mySlices").data(b).enter().append("path").attr("d",$).attr("fill",(t=>K(t.data.label))).attr("class","pieCircle");let A=0;T.forEach((t=>{A+=t}));m.selectAll("mySlices").data(b).enter().append("text").text((t=>(t.data.value/A*100).toFixed(0)+"%")).attr("transform",(t=>"translate("+y.centroid(t)+")")).style("text-anchor","middle").attr("class","slice");m.append("text").text(o.getDiagramTitle()).attr("x",0).attr("y",-(f-50)/2).attr("class","pieTitleText");const R=m.selectAll(".legend").data(K.domain()).enter().append("g").attr("class","legend").attr("transform",((t,e)=>{const a=u+g;const i=a*K.domain().length/2;const n=12*u;const r=e*a-i;return"translate("+n+","+r+")"}));R.append("rect").attr("width",u).attr("height",u).style("fill",K).style("stroke",K);R.data(b).append("text").attr("x",u+g).attr("y",u-g).text((t=>{const{label:e,value:a}=t.data;if(o.getShowData()){return`${e} [${a}]`}return e}));const z=Math.max(...R.selectAll("text").nodes().map((t=>t?.getBoundingClientRect().width??0)));const M=v+d+u+g+z;h.attr("viewBox",`0 0 ${M} ${f}`);(0,s.a$)(h,f,M,p.useMaxWidth)}),"draw");var k={draw:b};var K={parser:$,db:w,renderer:k,styles:T}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6492.804d51a693edf6978ef4.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6492.804d51a693edf6978ef4.js deleted file mode 100644 index c43e3d3d488d2ba7b1038b6dfde231b22527950b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6492.804d51a693edf6978ef4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6492],{46492:(e,t,a)=>{a.r(t);a.d(t,{Cassandra:()=>Xe,MSSQL:()=>Ue,MariaSQL:()=>Te,MySQL:()=>Pe,PLSQL:()=>je,PostgreSQL:()=>Qe,SQLDialect:()=>_e,SQLite:()=>ze,StandardSQL:()=>we,keywordCompletionSource:()=>ye,schemaCompletionSource:()=>ke,sql:()=>Oe});var n=a(4452);var i=a.n(n);var r=a(45145);var s=a.n(r);var o=a(27421);var l=a(75128);const c=36,d=1,u=2,m=3,p=4,f=5,g=6,h=7,b=8,_=9,v=10,y=11,k=12,x=13,O=14,w=15,Q=16,C=17,S=18,q=19,P=20,T=21,U=22,z=23,X=24;function j(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57}function B(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function I(e,t,a){for(let n=false;;){if(e.next<0)return;if(e.next==t&&!n){e.advance();return}n=a&&!n&&e.next==92;e.advance()}}function R(e,t){e:for(;;){if(e.next<0)return;if(e.next==36){e.advance();for(let a=0;a)".charCodeAt(a);for(;;){if(e.next<0)return;if(e.next==n&&e.peek(1)==39){e.advance(2);return}e.advance()}}function Z(e,t){for(;;){if(e.next!=95&&!j(e.next))break;if(t!=null)t+=String.fromCharCode(e.next);e.advance()}return t}function N(e){if(e.next==39||e.next==34||e.next==96){let t=e.next;e.advance();I(e,t,false)}else{Z(e)}}function V(e,t){while(e.next==48||e.next==49)e.advance();if(t&&e.next==t)e.advance()}function D(e,t){for(;;){if(e.next==46){if(t)break;t=true}else if(e.next<48||e.next>57){break}e.advance()}if(e.next==69||e.next==101){e.advance();if(e.next==43||e.next==45)e.advance();while(e.next>=48&&e.next<=57)e.advance()}}function $(e){while(!(e.next<0||e.next==10))e.advance()}function A(e,t){for(let a=0;a!=&|~^/",specialVar:"?",identifierQuotes:'"',caseInsensitiveIdentifiers:false,words:W(M,G)};function K(e,t,a,n){let i={};for(let r in Y)i[r]=(e.hasOwnProperty(r)?e:Y)[r];if(t)i.words=W(t,a||"",n);return i}function F(e){return new o.Lu((t=>{var a;let{next:n}=t;t.advance();if(A(n,E)){while(A(t.next,E))t.advance();t.acceptToken(c)}else if(n==36&&e.doubleDollarQuotedStrings){let e=Z(t,"");if(t.next==36){t.advance();R(t,e);t.acceptToken(m)}}else if(n==39||n==34&&e.doubleQuotedStrings){I(t,n,e.backslashEscapes);t.acceptToken(m)}else if(n==35&&e.hashComments||n==47&&t.next==47&&e.slashComments){$(t);t.acceptToken(d)}else if(n==45&&t.next==45&&(!e.spaceAfterDashes||t.peek(1)==32)){$(t);t.acceptToken(d)}else if(n==47&&t.next==42){t.advance();for(let e=1;;){let a=t.next;if(t.next<0)break;t.advance();if(a==42&&t.next==47){e--;t.advance();if(!e)break}else if(a==47&&t.next==42){e++;t.advance()}}t.acceptToken(u)}else if((n==101||n==69)&&t.next==39){t.advance();I(t,39,true);t.acceptToken(m)}else if((n==110||n==78)&&t.next==39&&e.charSetCasts){t.advance();I(t,39,e.backslashEscapes);t.acceptToken(m)}else if(n==95&&e.charSetCasts){for(let a=0;;a++){if(t.next==39&&a>1){t.advance();I(t,39,e.backslashEscapes);t.acceptToken(m);break}if(!j(t.next))break;t.advance()}}else if(e.plsqlQuotingMechanism&&(n==113||n==81)&&t.next==39&&t.peek(1)>0&&!A(t.peek(1),E)){let e=t.peek(1);t.advance(2);L(t,e);t.acceptToken(m)}else if(n==40){t.acceptToken(h)}else if(n==41){t.acceptToken(b)}else if(n==123){t.acceptToken(_)}else if(n==125){t.acceptToken(v)}else if(n==91){t.acceptToken(y)}else if(n==93){t.acceptToken(k)}else if(n==59){t.acceptToken(x)}else if(e.unquotedBitLiterals&&n==48&&t.next==98){t.advance();V(t);t.acceptToken(U)}else if((n==98||n==66)&&(t.next==39||t.next==34)){const a=t.next;t.advance();if(e.treatBitsAsBytes){I(t,a,e.backslashEscapes);t.acceptToken(z)}else{V(t,a);t.acceptToken(U)}}else if(n==48&&(t.next==120||t.next==88)||(n==120||n==88)&&t.next==39){let e=t.next==39;t.advance();while(B(t.next))t.advance();if(e&&t.next==39)t.advance();t.acceptToken(p)}else if(n==46&&t.next>=48&&t.next<=57){D(t,true);t.acceptToken(p)}else if(n==46){t.acceptToken(O)}else if(n>=48&&n<=57){D(t,false);t.acceptToken(p)}else if(A(n,e.operatorChars)){while(A(t.next,e.operatorChars))t.advance();t.acceptToken(w)}else if(A(n,e.specialVar)){if(t.next==n)t.advance();N(t);t.acceptToken(C)}else if(A(n,e.identifierQuotes)){I(t,n,false);t.acceptToken(q)}else if(n==58||n==44){t.acceptToken(Q)}else if(j(n)){let i=Z(t,String.fromCharCode(n));t.acceptToken(t.next==46||t.peek(-i.length-1)==46?S:(a=e.words[i.toLowerCase()])!==null&&a!==void 0?a:S)}}))}const H=F(Y);const J=o.U1.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,nodeProps:[["isolate",-4,1,2,3,19,""]],skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,H],topRules:{Script:[0,25]},tokenPrec:0});function ee(e){let t=e.cursor().moveTo(e.from,-1);while(/Comment/.test(t.name))t.moveTo(t.from,-1);return t.node}function te(e,t){let a=e.sliceString(t.from,t.to);let n=/^([`'"])(.*)\1$/.exec(a);return n?n[2]:a}function ae(e){return e&&(e.name=="Identifier"||e.name=="QuotedIdentifier")}function ne(e,t){if(t.name=="CompositeIdentifier"){let a=[];for(let n=t.firstChild;n;n=n.nextSibling)if(ae(n))a.push(te(e,n));return a}return[te(e,t)]}function ie(e,t){for(let a=[];;){if(!t||t.name!=".")return a;let n=ee(t);if(!ae(n))return a;a.unshift(te(e,n));t=ee(n)}}function re(e,t){let a=(0,n.syntaxTree)(e).resolveInner(t,-1);let i=oe(e.doc,a);if(a.name=="Identifier"||a.name=="QuotedIdentifier"||a.name=="Keyword"){return{from:a.from,quoted:a.name=="QuotedIdentifier"?e.doc.sliceString(a.from,a.from+1):null,parents:ie(e.doc,ee(a)),aliases:i}}if(a.name=="."){return{from:t,quoted:null,parents:ie(e.doc,a),aliases:i}}else{return{from:t,quoted:null,parents:[],empty:true,aliases:i}}}const se=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function oe(e,t){let a;for(let i=t;!a;i=i.parent){if(!i)return null;if(i.name=="Statement")a=i}let n=null;for(let i=a.firstChild,r=false,s=null;i;i=i.nextSibling){let t=i.name=="Keyword"?e.sliceString(i.from,i.to).toLowerCase():null;let a=null;if(!r){r=t=="from"}else if(t=="as"&&s&&ae(i.nextSibling)){a=te(e,i.nextSibling)}else if(t&&se.has(t)){break}else if(s&&ae(i)){a=te(e,i)}if(a){if(!n)n=Object.create(null);n[a]=ne(e,s)}s=/Identifier$/.test(i.name)?i:null}return n}function le(e,t){if(!e)return t;return t.map((t=>Object.assign(Object.assign({},t),{label:t.label[0]==e?t.label:e+t.label+e,apply:undefined})))}const ce=/^\w*$/,de=/^[`'"]?\w*[`'"]?$/;function ue(e){return e.self&&typeof e.self.label=="string"}class me{constructor(e,t){this.idQuote=e;this.idCaseInsensitive=t;this.list=[];this.children=undefined}child(e){let t=this.children||(this.children=Object.create(null));let a=t[e];if(a)return a;if(e&&!this.list.some((t=>t.label==e)))this.list.push(pe(e,"type",this.idQuote,this.idCaseInsensitive));return t[e]=new me(this.idQuote,this.idCaseInsensitive)}maybeChild(e){return this.children?this.children[e]:null}addCompletion(e){let t=this.list.findIndex((t=>t.label==e.label));if(t>-1)this.list[t]=e;else this.list.push(e)}addCompletions(e){for(let t of e)this.addCompletion(typeof t=="string"?pe(t,"property",this.idQuote,this.idCaseInsensitive):t)}addNamespace(e){if(Array.isArray(e)){this.addCompletions(e)}else if(ue(e)){this.addNamespace(e.children)}else{this.addNamespaceObject(e)}}addNamespaceObject(e){for(let t of Object.keys(e)){let a=e[t],n=null;let i=t.replace(/\\?\./g,(e=>e=="."?"\0":e)).split("\0");let r=this;if(ue(a)){n=a.self;a=a.children}for(let e=0;e{let{parents:t,from:a,quoted:i,empty:r,aliases:s}=re(e.state,e.pos);if(r&&!e.explicit)return null;if(s&&t.length==1)t=s[t[0]]||t;let o=l;for(let m of t){while(!o.children||!o.children[m]){if(o==l&&c)o=c;else if(o==c&&n)o=o.child(n);else return null}let e=o.maybeChild(m);if(!e)return null;o=e}let d=i&&e.state.sliceDoc(e.pos,e.pos+1)==i;let u=o.list;if(o==l&&s)u=u.concat(Object.keys(s).map((e=>({label:e,type:"constant"}))));return{from:a,to:d?e.pos+1:undefined,options:le(i,u),validFor:i?de:ce}}}function ge(e){return e==T?"type":e==P?"keyword":"variable"}function he(e,t,a){let n=Object.keys(e).map((n=>a(t?n.toUpperCase():n,ge(e[n]))));return(0,l.Ar)(["QuotedIdentifier","SpecialVar","String","LineComment","BlockComment","."],(0,l.et)(n))}let be=J.configure({props:[n.indentNodeProp.add({Statement:(0,n.continuedIndent)()}),n.foldNodeProp.add({Statement(e,t){return{from:Math.min(e.from+100,t.doc.lineAt(e.from).to),to:e.to}},BlockComment(e){return{from:e.from+2,to:e.to-2}}}),(0,r.styleTags)({Keyword:r.tags.keyword,Type:r.tags.typeName,Builtin:r.tags.standard(r.tags.name),Bits:r.tags.number,Bytes:r.tags.string,Bool:r.tags.bool,Null:r.tags.null,Number:r.tags.number,String:r.tags.string,Identifier:r.tags.name,QuotedIdentifier:r.tags.special(r.tags.string),SpecialVar:r.tags.special(r.tags.name),LineComment:r.tags.lineComment,BlockComment:r.tags.blockComment,Operator:r.tags.operator,"Semi Punctuation":r.tags.punctuation,"( )":r.tags.paren,"{ }":r.tags.brace,"[ ]":r.tags.squareBracket})]});class _e{constructor(e,t,a){this.dialect=e;this.language=t;this.spec=a}get extension(){return this.language.extension}static define(e){let t=K(e,e.keywords,e.types,e.builtin);let a=n.LRLanguage.define({name:"sql",parser:be.configure({tokenizers:[{from:H,to:F(t)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new _e(t,a,e)}}function ve(e,t){return{label:e,type:t,boost:-1}}function ye(e,t=false,a){return he(e.dialect.words,t,a||ve)}function ke(e){return e.schema?fe(e.schema,e.tables,e.schemas,e.defaultTable,e.defaultSchema,e.dialect||we):()=>null}function xe(e){return e.schema?(e.dialect||we).language.data.of({autocomplete:ke(e)}):[]}function Oe(e={}){let t=e.dialect||we;return new n.LanguageSupport(t.language,[xe(e),t.language.data.of({autocomplete:ye(t,e.upperCaseKeywords,e.keywordCompletion)})])}const we=_e.define({});const Qe=_e.define({charSetCasts:true,doubleDollarQuotedStrings:true,operatorChars:"+-*/<>=~!@#%^&|`?",specialVar:"",keywords:M+"abort abs absent access according ada admin aggregate alias also always analyse analyze array_agg array_max_cardinality asensitive assert assignment asymmetric atomic attach attribute attributes avg backward base64 begin_frame begin_partition bernoulli bit_length blocked bom cache called cardinality catalog_name ceil ceiling chain char_length character_length character_set_catalog character_set_name character_set_schema characteristics characters checkpoint class class_origin cluster coalesce cobol collation_catalog collation_name collation_schema collect column_name columns command_function command_function_code comment comments committed concurrently condition_number configuration conflict connection_name constant constraint_catalog constraint_name constraint_schema contains content control conversion convert copy corr cost covar_pop covar_samp csv cume_dist current_catalog current_row current_schema cursor_name database datalink datatype datetime_interval_code datetime_interval_precision db debug defaults defined definer degree delimiter delimiters dense_rank depends derived detach detail dictionary disable discard dispatch dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue document dump dynamic_function dynamic_function_code element elsif empty enable encoding encrypted end_frame end_partition endexec enforced enum errcode error event every exclude excluding exclusive exp explain expression extension extract family file filter final first_value flag floor following force foreach fortran forward frame_row freeze fs functions fusion generated granted greatest groups handler header hex hierarchy hint id ignore ilike immediately immutable implementation implicit import include including increment indent index indexes info inherit inherits inline insensitive instance instantiable instead integrity intersection invoker isnull key_member key_type label lag last_value lead leakproof least length library like_regex link listen ln load location lock locked log logged lower mapping matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text min minvalue mod mode more move multiset mumps name namespace nfc nfd nfkc nfkd nil normalize normalized nothing notice notify notnull nowait nth_value ntile nullable nullif nulls number occurrences_regex octet_length octets off offset oids operator options ordering others over overlay overriding owned owner parallel parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partition pascal passing passthrough password percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding prepared print_strict_params procedural procedures program publication query quote raise range rank reassign recheck recovery refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex rename repeatable replace replica requiring reset respect restart restore result_oid returned_cardinality returned_length returned_octet_length returned_sqlstate returning reverse routine_catalog routine_name routine_schema routines row_count row_number rowtype rule scale schema_name schemas scope scope_catalog scope_name scope_schema security selective self sensitive sequence sequences serializable server server_name setof share show simple skip slice snapshot source specific_name sqlcode sqlerror sqrt stable stacked standalone statement statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time table_name tables tablesample tablespace temp template ties token top_level_count transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex trigger_catalog trigger_name trigger_schema trim trim_array truncate trusted type types uescape unbounded uncommitted unencrypted unlink unlisten unlogged unnamed untyped upper uri use_column use_variable user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema vacuum valid validate validator value_of var_pop var_samp varbinary variable_conflict variadic verbose version versioning views volatile warning whitespace width_bucket window within wrapper xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate yes",types:G+"bigint int8 bigserial serial8 varbit bool box bytea cidr circle precision float8 inet int4 json jsonb line lseg macaddr macaddr8 money numeric pg_lsn point polygon float4 int2 smallserial serial2 serial serial4 text timetz timestamptz tsquery tsvector txid_snapshot uuid xml"});const Ce="accessible algorithm analyze asensitive authors auto_increment autocommit avg avg_row_length binlog btree cache catalog_name chain change changed checkpoint checksum class_origin client_statistics coalesce code collations columns comment committed completion concurrent consistent contains contributors convert database databases day_hour day_microsecond day_minute day_second delay_key_write delayed delimiter des_key_file dev_pop dev_samp deviance directory disable discard distinctrow div dual dumpfile enable enclosed ends engine engines enum errors escaped even event events every explain extended fast field fields flush force found_rows fulltext grants handler hash high_priority hosts hour_microsecond hour_minute hour_second ignore ignore_server_ids import index index_statistics infile innodb insensitive insert_method install invoker iterate keys kill linear lines list load lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modify mutex mysql_errno no_write_to_binlog offline offset one online optimize optionally outfile pack_keys parser partition partitions password phase plugin plugins prev processlist profile profiles purge query quick range read_write rebuild recover regexp relaylog remove rename reorganize repair repeatable replace require resume rlike row_format rtree schedule schema_name schemas second_microsecond security sensitive separator serializable server share show slave slow snapshot soname spatial sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result ssl starting starts std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace terminated triggers truncate uncommitted uninstall unlock upgrade use use_frm user_resources user_statistics utc_date utc_time utc_timestamp variables views warnings xa xor year_month zerofill";const Se=G+"bool blob long longblob longtext medium mediumblob mediumint mediumtext tinyblob tinyint tinytext text bigint int1 int2 int3 int4 int8 float4 float8 varbinary varcharacter precision datetime unsigned signed";const qe="charset clear edit ego help nopager notee nowarning pager print prompt quit rehash source status system tee";const Pe=_e.define({operatorChars:"*+-%<>!=&|^",charSetCasts:true,doubleQuotedStrings:true,unquotedBitLiterals:true,hashComments:true,spaceAfterDashes:true,specialVar:"@?",identifierQuotes:"`",keywords:M+"group_concat "+Ce,types:Se,builtin:qe});const Te=_e.define({operatorChars:"*+-%<>!=&|^",charSetCasts:true,doubleQuotedStrings:true,unquotedBitLiterals:true,hashComments:true,spaceAfterDashes:true,specialVar:"@?",identifierQuotes:"`",keywords:M+"always generated groupby_concat hard persistent shutdown soft virtual "+Ce,types:Se,builtin:qe});const Ue=_e.define({keywords:M+"trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare exec go if use index holdlock nolock nowait paglock pivot readcommitted readcommittedlock readpast readuncommitted repeatableread rowlock serializable snapshot tablock tablockx unpivot updlock with",types:G+"bigint smallint smallmoney tinyint money real text nvarchar ntext varbinary image hierarchyid uniqueidentifier sql_variant xml",builtin:"binary_checksum checksum connectionproperty context_info current_request_id error_line error_message error_number error_procedure error_severity error_state formatmessage get_filestream_transaction_context getansinull host_id host_name isnull isnumeric min_active_rowversion newid newsequentialid rowcount_big xact_state object_id",operatorChars:"*+-%<>!=^&|/",specialVar:"@"});const ze=_e.define({keywords:M+"abort analyze attach autoincrement conflict database detach exclusive fail glob ignore index indexed instead isnull notnull offset plan pragma query raise regexp reindex rename replace temp vacuum virtual",types:G+"bool blob long longblob longtext medium mediumblob mediumint mediumtext tinyblob tinyint tinytext text bigint int2 int8 unsigned signed real",builtin:"auth backup bail changes clone databases dbinfo dump echo eqp explain fullschema headers help import imposter indexes iotrace lint load log mode nullvalue once print prompt quit restore save scanstats separator shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width",operatorChars:"*+-%<>!=&|/~",identifierQuotes:'`"',specialVar:"@:?$"});const Xe=_e.define({keywords:"add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime infinity NaN",types:G+"ascii bigint blob counter frozen inet list map static text timeuuid tuple uuid varint",slashComments:true});const je=_e.define({keywords:M+"abort accept access add all alter and any arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body by case cast char_base check close cluster clusters colauth column comment commit compress connected constant constraint crash create current currval cursor data_base database dba deallocate debugoff debugon declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry exception exception_init exchange exclusive exists external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base of off offline on online only option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw rebuild record ref references refresh rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work",builtin:"appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define echo editfile embedded feedback flagger flush heading headsep instance linesize lno loboffset logsource longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar repfooter repheader serveroutput shiftinout show showmode spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout timing trimout trimspool ttitle underline verify version wrap",types:G+"ascii bfile bfilename bigserial bit blob dec long number nvarchar nvarchar2 serial smallint string text uid varchar2 xml",operatorChars:"*/+-%<>!=~",doubleQuotedStrings:true,charSetCasts:true,plsqlQuotingMechanism:true})}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6540.51c00e890179a4832552.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6540.51c00e890179a4832552.js deleted file mode 100644 index 01588fd969a0aecfbad7c73fcd3daf9aeb5ac9c8..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6540.51c00e890179a4832552.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 6540.51c00e890179a4832552.js.LICENSE.txt */ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6540],{15287:(e,t)=>{var r=Symbol.for("react.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),i=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),s=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),y=Symbol.iterator;function d(e){if(null===e||"object"!==typeof e)return null;e=y&&e[y]||e["@@iterator"];return"function"===typeof e?e:null}var _={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,b={};function m(e,t,r){this.props=e;this.context=t;this.refs=b;this.updater=r||_}m.prototype.isReactComponent={};m.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};m.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function v(){}v.prototype=m.prototype;function S(e,t,r){this.props=e;this.context=t;this.refs=b;this.updater=r||_}var k=S.prototype=new v;k.constructor=S;h(k,m.prototype);k.isPureReactComponent=!0;var w=Array.isArray,E=Object.prototype.hasOwnProperty,$={current:null},R={key:!0,ref:!0,__self:!0,__source:!0};function C(e,t,n){var o,u={},a=null,c=null;if(null!=t)for(o in void 0!==t.ref&&(c=t.ref),void 0!==t.key&&(a=""+t.key),t)E.call(t,o)&&!R.hasOwnProperty(o)&&(u[o]=t[o]);var i=arguments.length-2;if(1===i)u.children=n;else if(1{if(true){e.exports=r(15287)}else{}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6540.51c00e890179a4832552.js.LICENSE.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6540.51c00e890179a4832552.js.LICENSE.txt deleted file mode 100644 index e9327834feb493c05f735450e5df0559417c49d4..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6540.51c00e890179a4832552.js.LICENSE.txt +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6733.2d8d3e01d56d79a52e7e.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6733.2d8d3e01d56d79a52e7e.js deleted file mode 100644 index 40ca6d72058e92a50aa57c6a350c360a6f418687..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6733.2d8d3e01d56d79a52e7e.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 6733.2d8d3e01d56d79a52e7e.js.LICENSE.txt */ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6733],{26733:(e,r,t)=>{"use strict";t.r(r);t.d(r,{ADDITIONAL_PROPERTIES_KEY:()=>s,ADDITIONAL_PROPERTY_FLAG:()=>a,ALL_OF_KEY:()=>u,ANY_OF_KEY:()=>f,CONST_KEY:()=>c,DEFAULT_KEY:()=>l,DEFINITIONS_KEY:()=>d,DEPENDENCIES_KEY:()=>p,ENUM_KEY:()=>h,ERRORS_KEY:()=>m,ErrorSchemaBuilder:()=>xr,ID_KEY:()=>v,IF_KEY:()=>y,ITEMS_KEY:()=>g,JUNK_OPTION_ID:()=>b,NAME_KEY:()=>w,ONE_OF_KEY:()=>A,PROPERTIES_KEY:()=>x,REF_KEY:()=>E,REQUIRED_KEY:()=>O,RJSF_ADDITONAL_PROPERTIES_FLAG:()=>_,ROOT_SCHEMA_PREFIX:()=>I,SUBMIT_BTN_OPTIONS_KEY:()=>S,TranslatableString:()=>lt,UI_FIELD_KEY:()=>j,UI_GLOBAL_OPTIONS_KEY:()=>$,UI_OPTIONS_KEY:()=>D,UI_WIDGET_KEY:()=>P,allowAdditionalItems:()=>i,ariaDescribedByIds:()=>qr,asNumber:()=>o,canExpand:()=>N,createErrorHandler:()=>U,createSchemaUtils:()=>fr,dataURItoBlob:()=>cr,deepEquals:()=>L,descriptionId:()=>Wr,englishStringTranslator:()=>dr,enumOptionsDeselectValue:()=>hr,enumOptionsIndexForValue:()=>vr,enumOptionsIsSelected:()=>mr,enumOptionsSelectValue:()=>br,enumOptionsValueForIndex:()=>pr,errorId:()=>Lr,examplesId:()=>Cr,findSchemaDefinition:()=>z,getClosestMatchingOption:()=>Ce,getDefaultFormState:()=>Qe,getDiscriminatorFieldFromSchema:()=>ge,getDisplayLabel:()=>er,getFirstMatchingOption:()=>fe,getInputProps:()=>Sr,getMatchingOption:()=>ue,getOptionMatchingSimpleDiscriminator:()=>se,getSchemaType:()=>xe,getSubmitButtonOptions:()=>_r,getTemplate:()=>Ir,getUiOptions:()=>F,getWidget:()=>Nr,guessType:()=>be,hasWidget:()=>Ur,hashForSchema:()=>Tr,helpId:()=>Rr,isConstant:()=>Be,isCustomWidget:()=>Xe,isFilesArray:()=>Ze,isFixedItems:()=>Re,isMultiSelect:()=>Ke,isObject:()=>n,isSelect:()=>Ye,labelValue:()=>Yr,localToUTC:()=>Kr,mergeDefaultsWithFormData:()=>Ve,mergeObjects:()=>qe,mergeSchemas:()=>Oe,mergeValidationData:()=>rr,optionId:()=>Br,optionsList:()=>zr,orderProperties:()=>Hr,pad:()=>Gr,parseDateString:()=>Qr,rangeSpec:()=>Or,replaceStringParameters:()=>lr,retrieveSchema:()=>Se,sanitizeDataForNewSchema:()=>nr,schemaParser:()=>vt,schemaRequiresTrueValue:()=>Xr,shouldRender:()=>Zr,titleId:()=>Vr,toConstant:()=>Jr,toDateString:()=>et,toErrorList:()=>rt,toErrorSchema:()=>it,toIdSchema:()=>or,toPathSchema:()=>sr,unwrapErrorHandler:()=>ot,utcToLocal:()=>at,validationDataMerge:()=>st,withIdRefPrefix:()=>ct});function n(e){if(typeof File!=="undefined"&&e instanceof File){return false}if(typeof Date!=="undefined"&&e instanceof Date){return false}return typeof e==="object"&&e!==null&&!Array.isArray(e)}function i(e){if(e.additionalItems===true){console.warn("additionalItems=true is currently not supported")}return n(e.additionalItems)}function o(e){if(e===""){return undefined}if(e===null){return null}if(/\.$/.test(e)){return e}if(/\.0$/.test(e)){return e}if(/\.\d*0$/.test(e)){return e}const r=Number(e);const t=typeof r==="number"&&!Number.isNaN(r);return t?r:e}const a="__additional_property";const s="additionalProperties";const u="allOf";const f="anyOf";const c="const";const l="default";const d="definitions";const p="dependencies";const h="enum";const m="__errors";const v="$id";const y="if";const g="items";const b="_$junk_option_schema_id$_";const w="$name";const A="oneOf";const x="properties";const O="required";const S="submitButtonOptions";const E="$ref";const _="__rjsf_additionalProperties";const I="__rjsf_rootSchema";const j="ui:field";const P="ui:widget";const D="ui:options";const $="ui:globalOptions";function F(e={},r={}){return Object.keys(e).filter((e=>e.indexOf("ui:")===0)).reduce(((r,t)=>{const i=e[t];if(t===P&&n(i)){console.error("Setting options via ui:widget object is no longer supported, use ui:options instead");return r}if(t===D&&n(i)){return{...r,...i}}return{...r,[t.substring(3)]:i}}),{...r})}function N(e,r={},t){if(!e.additionalProperties){return false}const{expandable:n=true}=F(r);if(n===false){return n}if(e.maxProperties!==undefined&&t){return Object.keys(t).length({...e,[t]:U(r)})),r)}if(T()(e)){const t=e;return Object.keys(t).reduce(((e,r)=>({...e,[r]:U(t[r])})),r)}return r}var k=t(29132);var W=t.n(k);function L(e,r){return W()(e,r,((e,r)=>{if(typeof e==="function"&&typeof r==="function"){return true}return undefined}))}var C=t(58156);var R=t.n(C);var V=t(62193);var q=t.n(V);var B=t(56239);var Y=t(90179);var K=t.n(Y);function J(e,r){const t=r[e];const n=K()(r,[e]);return[n,t]}function z(e,r={}){let t=e||"";if(t.startsWith("#")){t=decodeURIComponent(t.substring(1))}else{throw new Error(`Could not find a definition for ${e}.`)}const n=B.get(r,t);if(n===undefined){throw new Error(`Could not find a definition for ${e}.`)}if(n[E]){const[e,t]=J(E,n);const i=z(t,r);if(Object.keys(e).length>0){return{...e,...i}}return i}return n}var H=t(61448);var G=t.n(H);var Q=t(98023);var X=t.n(Q);var Z=t(23805);var ee=t.n(Z);var re=t(85015);var te=t.n(re);var ne=t(40860);var ie=t.n(ne);var oe=t(6638);var ae=t.n(oe);function se(e,r,t){var n;if(e&&t){const i=R()(e,t);if(i===undefined){return}for(let e=0;e({required:[e]})))};let i;if(o.anyOf){const{...e}=o;if(!e.allOf){e.allOf=[]}else{e.allOf=e.allOf.slice()}e.allOf.push(t);i=e}else{i=Object.assign({},o,t)}delete i.required;if(e.isValid(i,r,n)){return a}}else if(e.isValid(o,r,n)){return a}}return 0}function fe(e,r,t,n,i){return ue(e,r,t,n,i)}var ce=t(2404);var le=t.n(ce);var de=t(63560);var pe=t.n(de);var he=t(69752);var me=t.n(he);var ve=t(33978);var ye=t.n(ve);function ge(e){let r;const t=R()(e,"discriminator.propertyName",undefined);if(te()(t)){r=t}else if(t!==undefined){console.warn(`Expecting discriminator to be a string, got "${typeof t}" instead`)}return r}function be(e){if(Array.isArray(e)){return"array"}if(typeof e==="string"){return"string"}if(e==null){return"null"}if(typeof e==="boolean"){return"boolean"}if(!isNaN(e)){return"number"}if(typeof e==="object"){return"object"}return"string"}var we=t(80299);var Ae=t.n(we);function xe(e){let{type:r}=e;if(!r&&e.const){return be(e.const)}if(!r&&e.enum){return"string"}if(!r&&(e.properties||e.additionalProperties)){return"object"}if(Array.isArray(r)){if(r.length===2&&r.includes("null")){r=r.find((e=>e!=="null"))}else{r=r[0]}}return r}function Oe(e,r){const t=Object.assign({},e);return Object.keys(r).reduce(((t,i)=>{const o=e?e[i]:{},a=r[i];if(e&&i in e&&n(a)){t[i]=Oe(o,a)}else if(e&&r&&(xe(e)==="object"||xe(r)==="object")&&i===O&&Array.isArray(o)&&Array.isArray(a)){t[i]=Ae()(o,a)}else{t[i]=a}return t}),t)}function Se(e,r,t={},n){return $e(e,r,t,n)[0]}function Ee(e,r,t,n,i,o){const{if:a,then:s,else:u,...f}=r;const c=e.isValid(a,o||{},t);let l=[f];let d=[];if(n){if(s&&typeof s!=="boolean"){d=d.concat($e(e,s,t,o,n,i))}if(u&&typeof u!=="boolean"){d=d.concat($e(e,u,t,o,n,i))}}else{const r=c?s:u;if(r&&typeof r!=="boolean"){d=d.concat($e(e,r,t,o,n,i))}}if(d.length){l=d.map((e=>Oe(f,e)))}return l.flatMap((r=>$e(e,r,t,o,n,i)))}function _e(e){const r=e.reduce(((e,r)=>{if(r.length>1){return r.flatMap((r=>ae()(e.length,(t=>[...e[t]].concat(r)))))}e.forEach((e=>e.push(r[0])));return e}),[[]]);return r}function Ie(e,r,t,n,i,o){const a=je(e,r,t,n,i,o);if(a.length>1||a[0]!==r){return a}if(p in r){const a=Ne(e,r,t,n,i,o);return a.flatMap((r=>$e(e,r,t,o,n,i)))}if(u in r&&Array.isArray(r.allOf)){const a=r.allOf.map((r=>$e(e,r,t,o,n,i)));const s=_e(a);return s.map((e=>({...r,allOf:e})))}return[r]}function je(e,r,t,n,i,o){const a=Pe(r,t,i);if(a!==r){return $e(e,a,t,o,n,i)}return[r]}function Pe(e,r,t){if(!n(e)){return e}let i=e;if(E in i){const{$ref:e,...n}=i;if(t.includes(e)){return i}t.push(e);const o=z(e,r);i={...o,...n}}if(x in i){const e=me()(i[x],((e,n,i)=>{e[i]=Pe(n,r,t)}),{});i={...i,[x]:e}}if(g in i&&!Array.isArray(i.items)&&typeof i.items!=="boolean"){i={...i,items:Pe(i.items,r,t)}}return le()(e,i)?e:i}function De(e,r,t,i){const o={...r,properties:{...r.properties}};const s=i&&n(i)?i:{};Object.keys(s).forEach((r=>{if(r in o.properties){return}let n={};if(typeof o.additionalProperties!=="boolean"){if(E in o.additionalProperties){n=Se(e,{$ref:R()(o.additionalProperties,[E])},t,s)}else if("type"in o.additionalProperties){n={...o.additionalProperties}}else if(f in o.additionalProperties||A in o.additionalProperties){n={type:"object",...o.additionalProperties}}else{n={type:be(R()(s,[r]))}}}else{n={type:be(R()(s,[r]))}}o.properties[r]=n;pe()(o.properties,[r,a],true)}));return o}function $e(e,r,t,i,o=false,a=[]){if(!n(r)){return[{}]}const f=Ie(e,r,t,o,a,i);return f.flatMap((r=>{let n=r;if(y in n){return Ee(e,n,t,o,a,i)}if(u in n){if(o){const{allOf:e,...r}=n;return[...e,r]}try{n=ye()(n,{deep:false})}catch(c){console.warn("could not merge subschemas in allOf:\n",c);const{allOf:e,...r}=n;return r}}const f=s in n&&n.additionalProperties!==false;if(f){return De(e,n,t,i)}return n}))}function Fe(e,r,t,n,i){let o;const{oneOf:a,anyOf:s,...u}=r;if(Array.isArray(a)){o=a}else if(Array.isArray(s)){o=s}if(o){const a=i===undefined&&n?{}:i;const s=ge(r);o=o.map((e=>Pe(e,t,[])));const f=fe(e,a,o,t,s);if(n){return o.map((e=>Oe(u,e)))}r=Oe(u,o[f])}return[r]}function Ne(e,r,t,n,i,o){const{dependencies:a,...s}=r;const u=Fe(e,s,t,n,o);return u.flatMap((r=>Me(e,a,r,t,n,i,o)))}function Me(e,r,t,i,o,a,s){let u=[t];for(const f in r){if(!o&&R()(s,[f])===undefined){continue}if(t.properties&&!(f in t.properties)){continue}const[c,l]=J(f,r);if(Array.isArray(l)){u[0]=Te(t,l)}else if(n(l)){u=Ue(e,t,i,f,l,o,a,s)}return u.flatMap((r=>Me(e,c,r,i,o,a,s)))}return u}function Te(e,r){if(!r){return e}const t=Array.isArray(e.required)?Array.from(new Set([...e.required,...r])):r;return{...e,required:t}}function Ue(e,r,t,n,i,o,a,s){const u=$e(e,i,t,s,o,a);return u.flatMap((i=>{const{oneOf:u,...f}=i;r=Oe(r,f);if(u===undefined){return r}const c=u.map((r=>{if(typeof r==="boolean"||!(E in r)){return[r]}return je(e,r,t,o,a,s)}));const l=_e(c);return l.flatMap((i=>ke(e,r,t,n,i,o,a,s)))}))}function ke(e,r,t,n,i,o,a,s){const u=i.filter((r=>{if(typeof r==="boolean"||!r||!r.properties){return false}const{[n]:i}=r.properties;if(i){const r={type:"object",properties:{[n]:i}};return e.isValid(r,s,t)||o}return false}));if(!o&&u.length!==1){console.warn("ignoring oneOf in dependencies because there isn't exactly one subschema that is valid");return[r]}return u.flatMap((i=>{const u=i;const[f]=J(n,u.properties);const c={...u,properties:f};const l=$e(e,c,t,s,o,a);return l.map((e=>Oe(r,e)))}))}const We={type:"object",$id:b,properties:{__not_really_there__:{type:"number"}}};function Le(e,r,t,n={}){let i=0;if(t){if(ee()(t.properties)){i+=ie()(t.properties,((t,i,o)=>{const a=R()(n,o);if(typeof i==="boolean"){return t}if(G()(i,E)){const n=Se(e,i,r,a);return t+Le(e,r,n,a||{})}if((G()(i,A)||G()(i,f))&&a){const n=G()(i,A)?A:f;const o=ge(i);return t+Ce(e,r,a,R()(i,n),-1,o)}if(i.type==="object"){return t+Le(e,r,i,a||{})}if(i.type===be(a)){let e=t+1;if(i.default){e+=a===i.default?1:-1}else if(i.const){e+=a===i.const?1:-1}return e}return t}),0)}else if(te()(t.type)&&t.type===be(n)){i+=1}}return i}function Ce(e,r,t,n,i=-1,o){const a=n.map((e=>Pe(e,r,[])));const s=se(t,n,o);if(X()(s)){return s}const u=a.reduce(((n,i,a)=>{const s=[We,i];const u=fe(e,t,s,r,o);if(u===1){n.push(a)}return n}),[]);if(u.length===1){return u[0]}if(!u.length){ae()(a.length,(e=>u.push(e)))}const f=new Set;const{bestIndex:c}=u.reduce(((n,i)=>{const{bestScore:o}=n;const s=a[i];const u=Le(e,r,s,t);f.add(u);if(u>o){return{bestIndex:i,bestScore:u}}return n}),{bestIndex:i,bestScore:0});if(f.size===1&&i>=0){return i}return c}function Re(e){return Array.isArray(e.items)&&e.items.length>0&&e.items.every((e=>n(e)))}function Ve(e,r,t=false){if(Array.isArray(r)){const n=Array.isArray(e)?e:[];const i=r.map(((e,r)=>{if(n[r]){return Ve(n[r],e,t)}return e}));if(t&&i.length{n[i]=Ve(e?R()(e,i):{},R()(r,i),t);return n}),n)}return r}function qe(e,r,t=false){return Object.keys(r).reduce(((i,o)=>{const a=e?e[o]:{},s=r[o];if(e&&o in e&&n(s)){i[o]=qe(a,s,t)}else if(t&&Array.isArray(a)&&Array.isArray(s)){let e=s;if(t==="preventDuplicates"){e=s.reduce(((e,r)=>{if(!a.includes(r)){e.push(r)}return e}),[])}i[o]=a.concat(e)}else{i[o]=s}return i}),Object.assign({},e))}function Be(e){return Array.isArray(e.enum)&&e.enum.length===1||c in e}function Ye(e,r,t={}){const n=Se(e,r,t,undefined);const i=n.oneOf||n.anyOf;if(Array.isArray(n.enum)){return true}if(Array.isArray(i)){return i.every((e=>typeof e!=="boolean"&&Be(e)))}return false}function Ke(e,r,t){if(!r.uniqueItems||!r.items||typeof r.items==="boolean"){return false}return Ye(e,r.items,t)}var Je;(function(e){e[e["Ignore"]=0]="Ignore";e[e["Invert"]=1]="Invert";e[e["Fallback"]=2]="Fallback"})(Je||(Je={}));function ze(e,r=Je.Ignore,t=-1){if(t>=0){if(Array.isArray(e.items)&&tGe(e,r,{rootSchema:o,includeUndefinedValues:a,_recurseList:s,experimental_defaultFormStateBehavior:u,parentDefaults:Array.isArray(t)?t[n]:undefined,rawFormData:m,required:c})))}else if(A in v){const{oneOf:r,...t}=v;if(r.length===0){return undefined}const n=ge(v);g=r[Ce(e,o,q()(m)?undefined:m,r,0,n)];g=Oe(t,g)}else if(f in v){const{anyOf:r,...t}=v;if(r.length===0){return undefined}const n=ge(v);g=r[Ce(e,o,q()(m)?undefined:m,r,0,n)];g=Oe(t,g)}if(g){return Ge(e,g,{rootSchema:o,includeUndefinedValues:a,_recurseList:b,experimental_defaultFormStateBehavior:u,parentDefaults:y,rawFormData:m,required:c})}if(y===undefined){y=v.default}switch(xe(v)){case"object":{const r=Object.keys(v.properties||{}).reduce(((r,t)=>{var n;const i=Ge(e,R()(v,[x,t]),{rootSchema:o,_recurseList:s,experimental_defaultFormStateBehavior:u,includeUndefinedValues:a===true,parentDefaults:R()(y,[t]),rawFormData:R()(m,[t]),required:(n=v.required)===null||n===void 0?void 0:n.includes(t)});He(r,t,i,a,c,v.required,u);return r}),{});if(v.additionalProperties){const t=n(v.additionalProperties)?v.additionalProperties:{};const i=new Set;if(n(y)){Object.keys(y).filter((e=>!v.properties||!v.properties[e])).forEach((e=>i.add(e)))}const f=[];Object.keys(m).filter((e=>!v.properties||!v.properties[e])).forEach((e=>{i.add(e);f.push(e)}));i.forEach((n=>{var i;const l=Ge(e,t,{rootSchema:o,_recurseList:s,experimental_defaultFormStateBehavior:u,includeUndefinedValues:a===true,parentDefaults:R()(y,[n]),rawFormData:R()(m,[n]),required:(i=v.required)===null||i===void 0?void 0:i.includes(n)});He(r,n,l,a,c,f)}))}return r}case"array":{const r=((d=u===null||u===void 0?void 0:u.arrayMinItems)===null||d===void 0?void 0:d.populate)==="never";const t=((h=u===null||u===void 0?void 0:u.arrayMinItems)===null||h===void 0?void 0:h.populate)==="requiredOnly";if(Array.isArray(y)){y=y.map(((r,t)=>{const n=ze(v,Je.Fallback,t);return Ge(e,n,{rootSchema:o,_recurseList:s,experimental_defaultFormStateBehavior:u,parentDefaults:r,required:c})}))}if(Array.isArray(i)){const t=ze(v);if(r){y=i}else{y=i.map(((r,n)=>Ge(e,t,{rootSchema:o,_recurseList:s,experimental_defaultFormStateBehavior:u,rawFormData:r,parentDefaults:R()(y,[n]),required:c})))}}if(r){return y!==null&&y!==void 0?y:[]}if(t&&!c){return y?y:undefined}const n=Array.isArray(y)?y.length:0;if(!v.minItems||Ke(e,v,o)||v.minItems<=n){return y?y:[]}const a=y||[];const f=ze(v,Je.Invert);const l=f.default;const p=new Array(v.minItems-n).fill(Ge(e,f,{parentDefaults:l,rootSchema:o,_recurseList:s,experimental_defaultFormStateBehavior:u,required:c}));return a.concat(p)}}return y}function Qe(e,r,t,i,o=false,a){if(!n(r)){throw new Error("Invalid schema: "+r)}const s=Se(e,r,i,t);const u=Ge(e,s,{rootSchema:i,includeUndefinedValues:o,experimental_defaultFormStateBehavior:a,rawFormData:t});if(t===undefined||t===null||typeof t==="number"&&isNaN(t)){return u}const{mergeExtraDefaults:f}=(a===null||a===void 0?void 0:a.arrayMinItems)||{};if(n(t)){return Ve(u,t,f)}if(Array.isArray(t)){return Ve(u,t,f)}return t}function Xe(e={}){return"widget"in F(e)&&F(e)["widget"]!=="hidden"}function Ze(e,r,t={},n){if(t[P]==="files"){return true}if(r.items){const t=Se(e,r.items,n);return t.type==="string"&&t.format==="data-url"}return false}function er(e,r,t={},n,i){const o=F(t,i);const{label:a=true}=o;let s=!!a;const u=xe(r);if(u==="array"){s=Ke(e,r,n)||Ze(e,r,t,n)||Xe(t)}if(u==="object"){s=false}if(u==="boolean"&&!t[P]){s=false}if(t[j]){s=false}return s}function rr(e,r,t){if(!t){return r}const{errors:n,errorSchema:i}=r;let o=e.toErrorList(t);let a=t;if(!q()(i)){a=qe(i,t,true);o=[...n].concat(o)}return{errorSchema:a,errors:o}}const tr=Symbol("no Value");function nr(e,r,t,n,i={}){let o;if(G()(t,x)){const a={};if(G()(n,x)){const e=R()(n,x,{});Object.keys(e).forEach((e=>{if(G()(i,e)){a[e]=undefined}}))}const s=Object.keys(R()(t,x,{}));const u={};s.forEach((o=>{const s=R()(i,o);let f=R()(n,[x,o],{});let c=R()(t,[x,o],{});if(G()(f,E)){f=Se(e,f,r,s)}if(G()(c,E)){c=Se(e,c,r,s)}const l=R()(f,"type");const d=R()(c,"type");if(!l||l===d){if(G()(a,o)){delete a[o]}if(d==="object"||d==="array"&&Array.isArray(s)){const t=nr(e,r,c,f,s);if(t!==undefined||d==="array"){u[o]=t}}else{const e=R()(c,"default",tr);const r=R()(f,"default",tr);if(e!==tr&&e!==s){if(r===s){a[o]=e}else if(R()(c,"readOnly")===true){a[o]=undefined}}const t=R()(c,"const",tr);const n=R()(f,"const",tr);if(t!==tr&&t!==s){a[o]=n===s?t:undefined}}}}));o={...typeof i=="string"||Array.isArray(i)?undefined:i,...a,...u}}else if(R()(n,"type")==="array"&&R()(t,"type")==="array"&&Array.isArray(i)){let a=R()(n,"items");let s=R()(t,"items");if(typeof a==="object"&&typeof s==="object"&&!Array.isArray(a)&&!Array.isArray(s)){if(G()(a,E)){a=Se(e,a,r,i)}if(G()(s,E)){s=Se(e,s,r,i)}const n=R()(a,"type");const u=R()(s,"type");if(!n||n===u){const n=R()(t,"maxItems",-1);if(u==="object"){o=i.reduce(((t,i)=>{const o=nr(e,r,s,a,i);if(o!==undefined&&(n<0||t.length0&&i.length>n?i.slice(0,n):i}}}else if(typeof a==="boolean"&&typeof s==="boolean"&&a===s){o=i}}return o}function ir(e,r,t,i,o,a,s,f=[]){if(E in r||p in r||u in r){const n=Se(e,r,a,s);const u=f.findIndex((e=>le()(e,n)));if(u===-1){return ir(e,n,t,i,o,a,s,f.concat(n))}}if(g in r&&!R()(r,[g,E])){return ir(e,R()(r,g),t,i,o,a,s,f)}const c=o||t;const l={$id:c};if(xe(r)==="object"&&x in r){for(const o in r.properties){const u=R()(r,[x,o]);const c=l[v]+i+o;l[o]=ir(e,n(u)?u:{},t,i,c,a,R()(s,[o]),f)}}return l}function or(e,r,t,n,i,o="root",a="_"){return ir(e,r,o,a,t,n,i)}function ar(e,r,t,n,i,o=[]){if(E in r||p in r||u in r){const a=Se(e,r,n,i);const s=o.findIndex((e=>le()(e,a)));if(s===-1){return ar(e,a,t,n,i,o.concat(a))}}let a={[w]:t.replace(/^\./,"")};if(A in r||f in r){const s=A in r?r.oneOf:r.anyOf;const u=ge(r);const f=Ce(e,n,i,s,0,u);const c=s[f];a={...a,...ar(e,c,t,n,i,o)}}if(s in r&&r[s]!==false){pe()(a,_,true)}if(g in r&&Array.isArray(i)){const{items:s,additionalItems:u}=r;if(Array.isArray(s)){i.forEach(((r,i)=>{if(s[i]){a[i]=ar(e,s[i],`${t}.${i}`,n,r,o)}else if(u){a[i]=ar(e,u,`${t}.${i}`,n,r,o)}else{console.warn(`Unable to generate path schema for "${t}.${i}". No schema defined for it`)}}))}else{i.forEach(((r,i)=>{a[i]=ar(e,s,`${t}.${i}`,n,r,o)}))}}else if(x in r){for(const s in r.properties){const u=R()(r,[x,s]);a[s]=ar(e,u,`${t}.${s}`,n,R()(i,[s]),o)}}return a}function sr(e,r,t="",n,i){return ar(e,r,t,n,i)}class ur{constructor(e,r,t){this.rootSchema=r;this.validator=e;this.experimental_defaultFormStateBehavior=t}getValidator(){return this.validator}doesSchemaUtilsDiffer(e,r,t={}){if(!e||!r){return false}return this.validator!==e||!L(this.rootSchema,r)||!L(this.experimental_defaultFormStateBehavior,t)}getDefaultFormState(e,r,t=false){return Qe(this.validator,e,r,this.rootSchema,t,this.experimental_defaultFormStateBehavior)}getDisplayLabel(e,r,t){return er(this.validator,e,r,this.rootSchema,t)}getClosestMatchingOption(e,r,t,n){return Ce(this.validator,this.rootSchema,e,r,t,n)}getFirstMatchingOption(e,r,t){return fe(this.validator,e,r,this.rootSchema,t)}getMatchingOption(e,r,t){return ue(this.validator,e,r,this.rootSchema,t)}isFilesArray(e,r){return Ze(this.validator,e,r,this.rootSchema)}isMultiSelect(e){return Ke(this.validator,e,this.rootSchema)}isSelect(e){return Ye(this.validator,e,this.rootSchema)}mergeValidationData(e,r){return rr(this.validator,e,r)}retrieveSchema(e,r){return Se(this.validator,e,this.rootSchema,r)}sanitizeDataForNewSchema(e,r,t){return nr(this.validator,this.rootSchema,e,r,t)}toIdSchema(e,r,t,n="root",i="_"){return or(this.validator,e,r,this.rootSchema,t,n,i)}toPathSchema(e,r,t){return sr(this.validator,e,r,this.rootSchema,t)}}function fr(e,r,t={}){return new ur(e,r,t)}function cr(e){const r=e.split(",");const t=r[0].split(";");const n=t[0].replace("data:","");const i=t.filter((e=>e.split("=")[0]==="name"));let o;if(i.length!==1){o="unknown"}else{o=decodeURI(i[0].split("=")[1])}try{const e=atob(r[1]);const t=[];for(let r=0;r{const n=e.findIndex((e=>e===`%${t+1}`));if(n>=0){e[n]=r}}));t=e.join("")}return t}function dr(e,r){return lr(e,r)}function pr(e,r=[],t){if(Array.isArray(e)){return e.map((e=>pr(e,r))).filter((e=>e))}const n=e===""||e===null?-1:Number(e);const i=r[n];return i?i.value:t}function hr(e,r,t=[]){const n=pr(e,t);if(Array.isArray(r)){return r.filter((e=>!le()(e,n)))}return le()(n,r)?undefined:r}function mr(e,r){if(Array.isArray(r)){return r.some((r=>le()(r,e)))}return le()(r,e)}function vr(e,r=[],t=false){const n=r.map(((r,t)=>mr(r.value,e)?String(t):undefined)).filter((e=>typeof e!=="undefined"));if(!t){return n[0]}return n}var yr=t(69843);var gr=t.n(yr);function br(e,r,t=[]){const n=pr(e,t);if(!gr()(n)){const e=t.findIndex((e=>n===e.value));const i=t.map((({value:e})=>e));const o=r.slice(0,e).concat(n,r.slice(e));return o.sort(((e,r)=>Number(i.indexOf(e)>i.indexOf(r))))}return r}var wr=t(88055);var Ar=t.n(wr);class xr{constructor(e){this.errorSchema={};this.resetAllErrors(e)}get ErrorSchema(){return this.errorSchema}getOrCreateErrorBlock(e){const r=Array.isArray(e)&&e.length>0||typeof e==="string";let t=r?R()(this.errorSchema,e):this.errorSchema;if(!t&&e){t={};pe()(this.errorSchema,e,t)}return t}resetAllErrors(e){this.errorSchema=e?Ar()(e):{};return this}addErrors(e,r){const t=this.getOrCreateErrorBlock(r);let n=R()(t,m);if(!Array.isArray(n)){n=[];t[m]=n}if(Array.isArray(e)){n.push(...e)}else{n.push(e)}return this}setErrors(e,r){const t=this.getOrCreateErrorBlock(r);const n=Array.isArray(e)?[...e]:[e];pe()(t,m,n);return this}clearErrors(e){const r=this.getOrCreateErrorBlock(e);pe()(r,m,[]);return this}}function Or(e){const r={};if(e.multipleOf){r.step=e.multipleOf}if(e.minimum||e.minimum===0){r.min=e.minimum}if(e.maximum||e.maximum===0){r.max=e.maximum}return r}function Sr(e,r,t={},n=true){const i={type:r||"text",...Or(e)};if(t.inputType){i.type=t.inputType}else if(!r){if(e.type==="number"){i.type="number";if(n&&i.step===undefined){i.step="any"}}else if(e.type==="integer"){i.type="number";if(i.step===undefined){i.step=1}}}if(t.autocomplete){i.autoComplete=t.autocomplete}return i}const Er={props:{disabled:false},submitText:"Submit",norender:false};function _r(e={}){const r=F(e);if(r&&r[S]){const e=r[S];return{...Er,...e}}return Er}function Ir(e,r,t={}){const{templates:n}=r;if(e==="ButtonTemplates"){return n[e]}return t[e]||n[e]}var jr=t(74848);var Pr=t(44914);var Dr=t(44363);const $r={boolean:{checkbox:"CheckboxWidget",radio:"RadioWidget",select:"SelectWidget",hidden:"HiddenWidget"},string:{text:"TextWidget",password:"PasswordWidget",email:"EmailWidget",hostname:"TextWidget",ipv4:"TextWidget",ipv6:"TextWidget",uri:"URLWidget","data-url":"FileWidget",radio:"RadioWidget",select:"SelectWidget",textarea:"TextareaWidget",hidden:"HiddenWidget",date:"DateWidget",datetime:"DateTimeWidget","date-time":"DateTimeWidget","alt-date":"AltDateWidget","alt-datetime":"AltDateTimeWidget",time:"TimeWidget",color:"ColorWidget",file:"FileWidget"},number:{text:"TextWidget",select:"SelectWidget",updown:"UpDownWidget",range:"RangeWidget",radio:"RadioWidget",hidden:"HiddenWidget"},integer:{text:"TextWidget",select:"SelectWidget",updown:"UpDownWidget",range:"RangeWidget",radio:"RadioWidget",hidden:"HiddenWidget"},array:{select:"SelectWidget",checkboxes:"CheckboxesWidget",files:"FileWidget",hidden:"HiddenWidget"}};function Fr(e){let r=R()(e,"MergedWidget");if(!r){const t=e.defaultProps&&e.defaultProps.options||{};r=({options:r,...n})=>(0,jr.jsx)(e,{options:{...t,...r},...n});pe()(e,"MergedWidget",r)}return r}function Nr(e,r,t={}){const n=xe(e);if(typeof r==="function"||r&&Dr.isForwardRef((0,Pr.createElement)(r))||Dr.isMemo(r)){return Fr(r)}if(typeof r!=="string"){throw new Error(`Unsupported widget definition: ${typeof r}`)}if(r in t){const n=t[r];return Nr(e,n,t)}if(typeof n==="string"){if(!(n in $r)){throw new Error(`No widget for type '${n}'`)}if(r in $r[n]){const i=t[$r[n][r]];return Nr(e,i,t)}}throw new Error(`No widget '${r}' for type '${n}'`)}function Mr(e){let r=0;for(let t=0;t(r.add(e),t)));return Mr(JSON.stringify(e,Array.from(r).sort()))}function Ur(e,r,t={}){try{Nr(e,r,t);return true}catch(n){const e=n;if(e.message&&(e.message.startsWith("No widget")||e.message.startsWith("Unsupported widget"))){return false}throw n}}function kr(e,r){const t=te()(e)?e:e[v];return`${t}__${r}`}function Wr(e){return kr(e,"description")}function Lr(e){return kr(e,"error")}function Cr(e){return kr(e,"examples")}function Rr(e){return kr(e,"help")}function Vr(e){return kr(e,"title")}function qr(e,r=false){const t=r?` ${Cr(e)}`:"";return`${Lr(e)} ${Wr(e)} ${Rr(e)}${t}`}function Br(e,r){return`${e}-${r}`}function Yr(e,r,t){return r?t:e}function Kr(e){return e?new Date(e).toJSON():undefined}function Jr(e){if(h in e&&Array.isArray(e.enum)&&e.enum.length===1){return e.enum[0]}if(c in e){return e.const}throw new Error("schema cannot be inferred as a constant")}function zr(e){const r=e;if(r.enumNames&&"production"!=="production"){}if(e.enum){return e.enum.map(((e,t)=>{const n=r.enumNames&&r.enumNames[t]||String(e);return{label:n,value:e}}))}const t=e.oneOf||e.anyOf;return t&&t.map((e=>{const r=e;const t=Jr(r);const n=r.title||String(t);return{schema:r,label:n,value:t}}))}function Hr(e,r){if(!Array.isArray(r)){return e}const t=e=>e.reduce(((e,r)=>{e[r]=true;return e}),{});const n=e=>e.length>1?`properties '${e.join("', '")}'`:`property '${e[0]}'`;const i=t(e);const o=r.filter((e=>e==="*"||i[e]));const a=t(o);const s=e.filter((e=>!a[e]));const u=o.indexOf("*");if(u===-1){if(s.length){throw new Error(`uiSchema order list does not contain ${n(s)}`)}return o}if(u!==o.lastIndexOf("*")){throw new Error("uiSchema order list contains more than one wildcard item")}const f=[...o];f.splice(u,1,...s);return f}function Gr(e,r){let t=String(e);while(t.lengthXr(e);return e.allOf.some(r)}return false}function Zr(e,r,t){const{props:n,state:i}=e;return!L(n,r)||!L(i,t)}function et(e,r=true){const{year:t,month:n,day:i,hour:o=0,minute:a=0,second:s=0}=e;const u=Date.UTC(t,n-1,i,o,a,s);const f=new Date(u).toJSON();return r?f:f.slice(0,10)}function rt(e,r=[]){if(!e){return[]}let t=[];if(m in e){t=t.concat(e[m].map((e=>{const t=`.${r.join(".")}`;return{property:t,message:e,stack:`${t} ${e}`}})))}return Object.keys(e).reduce(((t,n)=>{if(n!==m){const i=e[n];if(T()(i)){t=t.concat(rt(i,[...r,n]))}}return t}),t)}var tt=t(42072);var nt=t.n(tt);function it(e){const r=new xr;if(e.length){e.forEach((e=>{const{property:t,message:n}=e;const i=t==="."?[]:nt()(t);if(i.length>0&&i[0]===""){i.splice(0,1)}if(n){r.addErrors(n,i)}}))}return r.ErrorSchema}function ot(e){return Object.keys(e).reduce(((r,t)=>{if(t==="addError"){return r}else{const n=e[t];if(T()(n)){return{...r,[t]:ot(n)}}return{...r,[t]:n}}}),{})}function at(e){if(!e){return""}const r=new Date(e);const t=Gr(r.getFullYear(),4);const n=Gr(r.getMonth()+1,2);const i=Gr(r.getDate(),2);const o=Gr(r.getHours(),2);const a=Gr(r.getMinutes(),2);const s=Gr(r.getSeconds(),2);const u=Gr(r.getMilliseconds(),3);return`${t}-${n}-${i}T${o}:${a}:${s}.${u}`}function st(e,r){if(!r){return e}const{errors:t,errorSchema:n}=e;let i=rt(r);let o=r;if(!q()(n)){o=qe(n,r,true);i=[...t].concat(i)}return{errorSchema:o,errors:i}}function ut(e){for(const r in e){const t=e;const n=t[r];if(r===E&&typeof n==="string"&&n.startsWith("#")){t[r]=I+n}else{t[r]=ct(n)}}return e}function ft(e){for(let r=0;r{const i=r.findIndex((e=>le()(e,n)));if(i===-1){r.push(n);const i=Fe(e,n,t,true);i.forEach((i=>{if(x in i&&i[x]){pt()(n[x],(n=>{mt(e,r,t,n)}))}}));if(g in n&&!Array.isArray(n.items)&&typeof n.items!=="boolean"){mt(e,r,t,n.items)}}}))}function vt(e){const r=new ht(e);const t=[];mt(r,t,e,e);return r.getSchemaMap()}},6641:(e,r,t)=>{"use strict";var n=t(85419),i=t(96552),o=t(82986);var a=Math.pow(2,31)-1;function s(e,r){var t=1,n;if(e===0){return r}if(r===0){return e}while(e%2===0&&r%2===0){e=e/2;r=r/2;t=t*2}while(e%2===0){e=e/2}while(r){while(r%2===0){r=r/2}if(e>r){n=r;r=e;e=n}r=r-e}return t*e}function u(e,r){var t=0,n;if(e===0){return r}if(r===0){return e}while((e&1)===0&&(r&1)===0){e>>>=1;r>>>=1;t++}while((e&1)===0){e>>>=1}while(r){while((r&1)===0){r>>>=1}if(e>r){n=r;r=e;e=n}r=r-e}return e<1){f=r[0];t=r[1];if(!o(t)){throw new TypeError("gcd()::invalid input argument. Accessor must be a function. Value: `"+t+"`.")}}else{f=r[0]}c=f.length;if(c<2){return null}if(t){l=new Array(c);for(p=0;p{"use strict";var n=t(6641),i=t(85419),o=t(96552),a=t(82986);function s(){var e=arguments.length,r,t,s,u,f,c,l;r=new Array(e);for(l=0;l1){s=r[0];t=r[1];if(!a(t)){throw new TypeError("lcm()::invalid input argument. Accessor must be a function. Value: `"+t+"`.")}}else{s=r[0]}u=s.length;if(u<2){return null}if(t){f=new Array(u);for(l=0;l{var n=t(2404);var i=t(33031);var o=t(63375);var a=t(9063);var s=t(84684);var u=t(80191);var f=t(11331);var c=t(53812);var l=e=>Array.isArray(e)?e:[e];var d=e=>e===undefined;var p=e=>f(e)||Array.isArray(e)?Object.keys(e):[];var h=(e,r)=>e.hasOwnProperty(r);var m=e=>i(o(e));var v=e=>d(e)||Array.isArray(e)&&e.length===0;var y=(e,r,t,n)=>r&&h(r,t)&&e&&h(e,t)&&n(e[t],r[t]);var g=(e,r)=>d(e)&&r===0||d(r)&&e===0||n(e,r);var b=(e,r)=>d(e)&&r===false||d(r)&&e===false||n(e,r);var w=e=>d(e)||n(e,{})||e===true;var A=e=>d(e)||n(e,{});var x=e=>d(e)||f(e)||e===true||e===false;function O(e,r){if(v(e)&&v(r)){return true}else{return n(m(e),m(r))}}function S(e,r){e=l(e);r=l(r);return n(m(e),m(r))}function E(e,r,t,i){var a=o(p(e).concat(p(r)));if(A(e)&&A(r)){return true}else if(A(e)&&p(r).length){return false}else if(A(r)&&p(e).length){return false}return a.every((function(t){var o=e[t];var a=r[t];if(Array.isArray(o)&&Array.isArray(a)){return n(m(e),m(r))}else if(Array.isArray(o)&&!Array.isArray(a)){return false}else if(Array.isArray(a)&&!Array.isArray(o)){return false}return y(e,r,t,i)}))}function _(e,r,t,i){if(f(e)&&f(r)){return i(e,r)}else if(Array.isArray(e)&&Array.isArray(r)){return E(e,r,t,i)}else{return n(e,r)}}function I(e,r,t,n){var i=a(e,n);var o=a(r,n);var s=u(i,o,n);return s.length===Math.max(i.length,o.length)}var j={title:n,uniqueItems:b,minLength:g,minItems:g,minProperties:g,required:O,enum:O,type:S,items:_,anyOf:I,allOf:I,oneOf:I,properties:E,patternProperties:E,dependencies:E};var P=["properties","patternProperties","dependencies","uniqueItems","minLength","minItems","minProperties","required"];var D=["additionalProperties","additionalItems","contains","propertyNames","not"];function $(e,r,t){t=s(t,{ignore:[]});if(w(e)&&w(r)){return true}if(!x(e)||!x(r)){throw new Error("Either of the values are not a JSON schema.")}if(e===r){return true}if(c(e)&&c(r)){return e===r}if(e===undefined&&r===false||r===undefined&&e===false){return false}if(d(e)&&!d(r)||!d(e)&&d(r)){return false}var i=o(Object.keys(e).concat(Object.keys(r)));if(t.ignore.length){i=i.filter((e=>t.ignore.indexOf(e)===-1))}if(!i.length){return true}function a(e,r){return $(e,r,t)}return i.every((function(i){var o=e[i];var s=r[i];if(D.indexOf(i)!==-1){return $(o,s,t)}var u=j[i];if(!u){u=n}if(n(o,s)){return true}if(P.indexOf(i)===-1){if(!h(e,i)&&h(r,i)||h(e,i)&&!h(r,i)){return o===s}}var f=u(o,s,i,a);if(!c(f)){throw new Error("Comparer must return true or false")}return f}))}e.exports=$},5109:(e,r,t)=>{const n=t(35970);const i=t(3176);const o=t(11331);const a=t(63375);const s=t(9063);const u=t(91648);function f(e){for(const r in e){if(d(e,r)&&v(e[r])){delete e[r]}}return e}const c=e=>a(i(e.map(p)));const l=(e,r)=>e.map((e=>e&&e[r]));const d=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);const p=e=>{if(o(e)||Array.isArray(e)){return Object.keys(e)}else{return[]}};const h=e=>e!==undefined;const m=e=>o(e)||e===true||e===false;const v=e=>!p(e).length&&e!==false&&e!==true;const y=(e,...r)=>u.apply(null,[e].concat(n(r)));e.exports={allUniqueKeys:c,deleteUndefinedProps:f,getValues:l,has:d,isEmptySchema:v,isSchema:m,keys:p,notUndefined:h,uniqWith:s,withoutArr:y}},11051:(e,r,t)=>{const n=t(90370);const i=t(39754);const{allUniqueKeys:o,deleteUndefinedProps:a,has:s,isSchema:u,notUndefined:f,uniqWith:c}=t(5109);function l(e){i(e,(function(r,t){if(r===false){e.splice(t,1)}}))}function d(e,r){return e.map((function(e){if(!e){return undefined}if(Array.isArray(e.items)){const t=e.items[r];if(u(t)){return t}else if(s(e,"additionalItems")){return e.additionalItems}}else{return e.items}return undefined}))}function p(e){return e.map((function(e){if(!e){return undefined}if(Array.isArray(e.items)){return e.additionalItems}return e.items}))}function h(e,r,t){const i=o(t);return i.reduce((function(t,i){const o=d(e,i);const a=c(o.filter(f),n);t[i]=r(a,i);return t}),[])}e.exports={keywords:["items","additionalItems"],resolver(e,r,t){const n=e.map((e=>e.items));const i=n.filter(f);const o={};if(i.every(u)){o.items=t.items(n)}else{o.items=h(e,t.items,n)}let s;if(i.every(Array.isArray)){s=e.map((e=>e.additionalItems))}else if(i.some(Array.isArray)){s=p(e)}if(s){o.additionalItems=t.additionalItems(s)}if(o.additionalItems===false&&Array.isArray(o.items)){l(o.items)}return a(o)}}},7894:(e,r,t)=>{const n=t(90370);const i=t(39754);const{allUniqueKeys:o,deleteUndefinedProps:a,getValues:s,keys:u,notUndefined:f,uniqWith:c,withoutArr:l}=t(5109);function d(e){i(e,(function(r,t){if(r===false){delete e[t]}}))}function p(e,r){const t=o(e);return t.reduce((function(t,i){const o=s(e,i);const a=c(o.filter(f),n);t[i]=r(a,i);return t}),{})}e.exports={keywords:["properties","patternProperties","additionalProperties"],resolver(e,r,t,n){if(!n.ignoreAdditionalProperties){e.forEach((function(r){const n=e.filter((e=>e!==r));const i=u(r.properties);const o=u(r.patternProperties);const a=o.map((e=>new RegExp(e)));n.forEach((function(e){const n=u(e.properties);const o=n.filter((e=>a.some((r=>r.test(e)))));const s=l(n,i,o);s.forEach((function(n){e.properties[n]=t.properties([e.properties[n],r.additionalProperties],n)}))}))}));e.forEach((function(r){const t=e.filter((e=>e!==r));const n=u(r.patternProperties);if(r.additionalProperties===false){t.forEach((function(e){const r=u(e.patternProperties);const t=l(r,n);t.forEach((r=>delete e.patternProperties[r]))}))}}))}const i={additionalProperties:t.additionalProperties(e.map((e=>e.additionalProperties))),patternProperties:p(e.map((e=>e.patternProperties)),t.patternProperties),properties:p(e.map((e=>e.properties)),t.properties)};if(i.additionalProperties===false){d(i.properties)}return a(i)}}},33978:(e,r,t)=>{const n=t(88055);const i=t(90370);const o=t(78867);const a=t(74354);const s=t(35970);const u=t(3176);const f=t(5287);const c=t(80191);const l=t(2404);const d=t(11331);const p=t(12358);const h=t(33031);const m=t(63375);const v=t(9063);const y=t(7894);const g=t(11051);const b=(e,r)=>e.indexOf(r)!==-1;const w=e=>d(e)||e===true||e===false;const A=e=>e===false;const x=e=>e===true;const O=(e,r,t)=>t(e);const S=e=>h(m(u(e)));const E=e=>e!==undefined;const _=e=>m(u(e.map(k)));const I=e=>e[0];const j=e=>S(e);const P=e=>Math.max.apply(Math,e);const D=e=>Math.min.apply(Math,e);const $=e=>e.some(x);const F=e=>v(s(e),l);function N(e){return function(r,t){return i({[e]:r},{[e]:t})}}function M(e){let{allOf:r=[],...t}=e;t=d(e)?t:e;return[t,...r.map(M)]}function T(e,r){return e.map((e=>e&&e[r]))}function U(e,r){return e.map((function(e,t){try{return r(e,t)}catch(n){return undefined}})).filter(E)}function k(e){if(d(e)||Array.isArray(e)){return Object.keys(e)}else{return[]}}function W(e,r){r=r||[];if(!e.length){return r}const t=e.slice(0).shift();const n=e.slice(1);if(r.length){return W(n,s(r.map((e=>t.map((r=>[r].concat(e)))))))}return W(n,t.map((e=>e)))}function L(e,r){let t;try{t=e.map((function(e){return JSON.stringify(e,null,2)})).join("\n")}catch(n){t=e.join(", ")}throw new Error('Could not resolve values for path:"'+r.join(".")+'". They are probably incompatible. Values: \n'+t)}function C(e,r,t,n,o,a){if(e.length){const s=o.complexResolvers[r];if(!s||!s.resolver){throw new Error("No resolver found for "+r)}const u=t.map((r=>e.reduce(((e,t)=>{if(r[t]!==undefined)e[t]=r[t];return e}),{})));const f=v(u,i);const c=s.keywords.reduce(((e,r)=>({...e,[r]:(e,t=[])=>n(e,null,a.concat(r,t))})),{});const l=s.resolver(f,a.concat(r),c,o);if(!d(l)){L(f,a.concat(r))}return l}}function R(e){return{required:e}}const V=["properties","patternProperties","definitions","dependencies"];const q=["anyOf","oneOf"];const B=["additionalProperties","additionalItems","contains","propertyNames","not","items"];const Y={type(e){if(e.some(Array.isArray)){const r=e.map((function(e){return Array.isArray(e)?e:[e]}));const t=f.apply(null,r);if(t.length===1){return t[0]}else if(t.length>1){return m(t)}}},dependencies(e,r,t){const n=_(e);return n.reduce((function(r,n){const o=T(e,n);let a=v(o.filter(E),l);const s=a.filter(Array.isArray);if(s.length){if(s.length===a.length){r[n]=S(a)}else{const e=a.filter(w);const i=s.map(R);r[n]=t(e.concat(i),n)}return r}a=v(a,i);r[n]=t(a,n);return r}),{})},oneOf(e,r,t){const o=W(n(e));const a=U(o,t);const s=v(a,i);if(s.length){return s}},not(e){return{anyOf:e}},pattern(e){return e.map((e=>"(?="+e+")")).join("")},multipleOf(e){let r=e.slice(0);let t=1;while(r.some((e=>!Number.isInteger(e)))){r=r.map((e=>e*10));t=t*10}return o(r)/t},enum(e){const r=c.apply(null,e.concat(l));if(r.length){return h(r)}}};Y.$id=I;Y.$ref=I;Y.$schema=I;Y.additionalItems=O;Y.additionalProperties=O;Y.anyOf=Y.oneOf;Y.contains=O;Y.default=I;Y.definitions=Y.dependencies;Y.description=I;Y.examples=F;Y.exclusiveMaximum=D;Y.exclusiveMinimum=P;Y.items=g;Y.maximum=D;Y.maxItems=D;Y.maxLength=D;Y.maxProperties=D;Y.minimum=P;Y.minItems=P;Y.minLength=P;Y.minProperties=P;Y.properties=y;Y.propertyNames=O;Y.required=j;Y.title=I;Y.uniqueItems=$;const K={properties:y,items:g};function J(e,r,t){t=t||[];r=a(r,{ignoreAdditionalProperties:false,resolvers:Y,complexResolvers:K,deep:true});const i=Object.entries(r.complexResolvers);function o(e,a,s){e=n(e.filter(E));s=s||[];const u=d(a)?a:{};if(!e.length){return}if(e.some(A)){return false}if(e.every(x)){return true}e=e.filter(d);const f=_(e);if(r.deep&&b(f,"allOf")){return J({allOf:e},r,t)}const c=i.map((([e,r])=>f.filter((e=>r.keywords.includes(e)))));c.forEach((e=>p(f,e)));f.forEach((function(t){const n=T(e,t);const i=v(n.filter(E),N(t));if(i.length===1&&b(q,t)){u[t]=i[0].map((e=>o([e],e)))}else if(i.length===1&&!b(V,t)&&!b(B,t)){u[t]=i[0]}else{const e=r.resolvers[t]||r.resolvers.defaultResolver;if(!e)throw new Error("No resolver found for key "+t+". You can provide a resolver for this keyword in the options, or provide a default resolver.");const n=(e,r=[])=>o(e,null,s.concat(t,r));u[t]=e(i,s.concat(t),n,r);if(u[t]===undefined){L(i,s.concat(t))}else if(u[t]===undefined){delete u[t]}}}));return i.reduce(((t,[n,i],a)=>({...t,...C(c[a],n,e,o,r,s)})),u)}const s=u(M(e));const f=o(s);return f}J.options={resolvers:Y};e.exports=J},56239:(e,r)=>{var t=/~/;var n=/~[01]/g;function i(e){switch(e){case"~1":return"/";case"~0":return"~"}throw new Error("Invalid tilde escape: "+e)}function o(e){if(!t.test(e))return e;return e.replace(n,i)}function a(e,r,t){var n;var i;for(var a=1,s=r.length;aa;if(typeof e[n]==="undefined"){if(Array.isArray(e)&&n==="-"){n=e.length}if(i){if(r[a]!==""&&r[a]{var n=t(53661),i=t(31380),o=t(51459);function a(e){var r=-1,t=e==null?0:e.length;this.__data__=new n;while(++r{var n=t(96131);function i(e,r){var t=e==null?0:e.length;return!!t&&n(e,r,0)>-1}e.exports=i},29905:e=>{function r(e,r,t){var n=-1,i=e==null?0:e.length;while(++n{function r(e,r,t,n){var i=-1,o=e==null?0:e.length;if(n&&o){t=e[++i]}while(++i{function r(e,r){var t=-1,n=e==null?0:e.length;while(++t{var n=t(98598),i=t(75288);function o(e,r,t){if(t!==undefined&&!i(e[r],t)||t===undefined&&!(r in e)){n(e,r,t)}}e.exports=o},83915:(e,r,t)=>{var n=t(38859),i=t(15325),o=t(29905),a=t(34932),s=t(27301),u=t(19219);var f=200;function c(e,r,t,c){var l=-1,d=i,p=true,h=e.length,m=[],v=r.length;if(!h){return m}if(t){r=a(r,s(t))}if(c){d=o;p=false}else if(r.length>=f){d=u;p=false;r=new n(r)}e:while(++l{var n=t(30641),i=t(38329);var o=i(n);e.exports=o},2523:e=>{function r(e,r,t,n){var i=e.length,o=t+(n?1:-1);while(n?o--:++o{var n=t(83221);var i=n();e.exports=i},30641:(e,r,t)=>{var n=t(86649),i=t(95950);function o(e,r){return e&&n(e,r,i)}e.exports=o},96131:(e,r,t)=>{var n=t(2523),i=t(85463),o=t(76959);function a(e,r,t){return r===r?o(e,r,t):n(e,i,t)}e.exports=a},12027:e=>{function r(e,r,t,n){var i=t-1,o=e.length;while(++i{var n=t(38859),i=t(15325),o=t(29905),a=t(34932),s=t(27301),u=t(19219);var f=Math.min;function c(e,r,t){var c=t?o:i,l=e[0].length,d=e.length,p=d,h=Array(d),m=Infinity,v=[];while(p--){var y=e[p];if(p&&r){y=a(y,s(r))}m=f(y.length,m);h[p]=!t&&(r||l>=120&&y.length>=120)?new n(p&&y):undefined}y=e[0];var g=-1,b=h[0];e:while(++g{var n=t(87068),i=t(40346);function o(e,r,t,a,s){if(e===r){return true}if(e==null||r==null||!i(e)&&!i(r)){return e!==e&&r!==r}return n(e,r,t,a,o,s)}e.exports=o},87068:(e,r,t)=>{var n=t(37217),i=t(25911),o=t(21986),a=t(50689),s=t(5861),u=t(56449),f=t(3656),c=t(37167);var l=1;var d="[object Arguments]",p="[object Array]",h="[object Object]";var m=Object.prototype;var v=m.hasOwnProperty;function y(e,r,t,m,y,g){var b=u(e),w=u(r),A=b?p:s(e),x=w?p:s(r);A=A==d?h:A;x=x==d?h:x;var O=A==h,S=x==h,E=A==x;if(E&&f(e)){if(!f(r)){return false}b=true;O=false}if(E&&!O){g||(g=new n);return b||c(e)?i(e,r,t,m,y,g):o(e,r,A,t,m,y,g)}if(!(t&l)){var _=O&&v.call(e,"__wrapped__"),I=S&&v.call(r,"__wrapped__");if(_||I){var j=_?e.value():e,P=I?r.value():r;g||(g=new n);return y(j,P,t,m,g)}}if(!E){return false}g||(g=new n);return a(e,r,t,m,y,g)}e.exports=y},41799:(e,r,t)=>{var n=t(37217),i=t(60270);var o=1,a=2;function s(e,r,t,s){var u=t.length,f=u,c=!s;if(e==null){return!f}e=Object(e);while(u--){var l=t[u];if(c&&l[2]?l[1]!==e[l[0]]:!(l[0]in e)){return false}}while(++u{function r(e){return e!==e}e.exports=r},15389:(e,r,t)=>{var n=t(93663),i=t(87978),o=t(83488),a=t(56449),s=t(50583);function u(e){if(typeof e=="function"){return e}if(e==null){return o}if(typeof e=="object"){return a(e)?i(e[0],e[1]):n(e)}return s(e)}e.exports=u},5128:(e,r,t)=>{var n=t(80909),i=t(64894);function o(e,r){var t=-1,o=i(e)?Array(e.length):[];n(e,(function(e,n,i){o[++t]=r(e,n,i)}));return o}e.exports=o},93663:(e,r,t)=>{var n=t(41799),i=t(10776),o=t(67197);function a(e){var r=i(e);if(r.length==1&&r[0][2]){return o(r[0][0],r[0][1])}return function(t){return t===e||n(t,e,r)}}e.exports=a},87978:(e,r,t)=>{var n=t(60270),i=t(58156),o=t(80631),a=t(28586),s=t(30756),u=t(67197),f=t(77797);var c=1,l=2;function d(e,r){if(a(e)&&s(r)){return u(f(e),r)}return function(t){var a=i(t,e);return a===undefined&&a===r?o(t,e):n(r,a,c|l)}}e.exports=d},85250:(e,r,t)=>{var n=t(37217),i=t(87805),o=t(86649),a=t(42824),s=t(23805),u=t(37241),f=t(14974);function c(e,r,t,l,d){if(e===r){return}o(r,(function(o,u){d||(d=new n);if(s(o)){a(e,r,u,t,c,l,d)}else{var p=l?l(f(e,u),o,u+"",e,r,d):undefined;if(p===undefined){p=o}i(e,u,p)}}),u)}e.exports=c},42824:(e,r,t)=>{var n=t(87805),i=t(93290),o=t(71961),a=t(23007),s=t(35529),u=t(72428),f=t(56449),c=t(83693),l=t(3656),d=t(1882),p=t(23805),h=t(11331),m=t(37167),v=t(14974),y=t(69884);function g(e,r,t,g,b,w,A){var x=v(e,t),O=v(r,t),S=A.get(O);if(S){n(e,t,S);return}var E=w?w(x,O,t+"",e,r,A):undefined;var _=E===undefined;if(_){var I=f(O),j=!I&&l(O),P=!I&&!j&&m(O);E=O;if(I||j||P){if(f(x)){E=x}else if(c(x)){E=a(x)}else if(j){_=false;E=i(O,true)}else if(P){_=false;E=o(O,true)}else{E=[]}}else if(h(O)||u(O)){E=x;if(u(x)){E=y(x)}else if(!p(x)||d(x)){E=s(O)}}else{_=false}}if(_){A.set(O,E);b(E,O,g,w,A);A["delete"](O)}n(e,t,E)}e.exports=g},46155:(e,r,t)=>{var n=t(34932),i=t(47422),o=t(15389),a=t(5128),s=t(73937),u=t(27301),f=t(43714),c=t(83488),l=t(56449);function d(e,r,t){if(r.length){r=n(r,(function(e){if(l(e)){return function(r){return i(r,e.length===1?e[0]:e)}}return e}))}else{r=[c]}var d=-1;r=n(r,u(o));var p=a(e,(function(e,t,i){var o=n(r,(function(r){return r(e)}));return{criteria:o,index:++d,value:e}}));return s(p,(function(e,r){return f(e,r,t)}))}e.exports=d},47237:e=>{function r(e){return function(r){return r==null?undefined:r[e]}}e.exports=r},17255:(e,r,t)=>{var n=t(47422);function i(e){return function(r){return n(r,e)}}e.exports=i},21988:(e,r,t)=>{var n=t(34932),i=t(96131),o=t(12027),a=t(27301),s=t(23007);var u=Array.prototype;var f=u.splice;function c(e,r,t,u){var c=u?o:i,l=-1,d=r.length,p=e;if(e===r){r=s(r)}if(t){p=n(e,a(t))}while(++l-1){if(p!==e){f.call(p,h,1)}f.call(e,h,1)}}return e}e.exports=c},85558:e=>{function r(e,r,t,n,i){i(e,(function(e,i,o){t=n?(n=false,e):r(t,e,i,o)}));return t}e.exports=r},69302:(e,r,t)=>{var n=t(83488),i=t(56757),o=t(32865);function a(e,r){return o(i(e,r,n),e+"")}e.exports=a},73937:e=>{function r(e,r){var t=e.length;e.sort(r);while(t--){e[t]=e[t].value}return e}e.exports=r},54128:(e,r,t)=>{var n=t(31800);var i=/^\s+/;function o(e){return e?e.slice(0,n(e)+1).replace(i,""):e}e.exports=o},55765:(e,r,t)=>{var n=t(38859),i=t(15325),o=t(29905),a=t(19219),s=t(44517),u=t(84247);var f=200;function c(e,r,t){var c=-1,l=i,d=e.length,p=true,h=[],m=h;if(t){p=false;l=o}else if(d>=f){var v=r?null:s(e);if(v){return u(v)}p=false;l=a;m=new n}else{m=r?[]:h}e:while(++c{function r(e,r){return e.has(r)}e.exports=r},80741:(e,r,t)=>{var n=t(83693);function i(e){return n(e)?e:[]}e.exports=i},24066:(e,r,t)=>{var n=t(83488);function i(e){return typeof e=="function"?e:n}e.exports=i},53730:(e,r,t)=>{var n=t(44394);function i(e,r){if(e!==r){var t=e!==undefined,i=e===null,o=e===e,a=n(e);var s=r!==undefined,u=r===null,f=r===r,c=n(r);if(!u&&!c&&!a&&e>r||a&&s&&f&&!u&&!c||i&&s&&f||!t&&f||!o){return 1}if(!i&&!a&&!c&&e{var n=t(53730);function i(e,r,t){var i=-1,o=e.criteria,a=r.criteria,s=o.length,u=t.length;while(++i=u){return f}var c=t[i];return f*(c=="desc"?-1:1)}}return e.index-r.index}e.exports=i},20999:(e,r,t)=>{var n=t(69302),i=t(36800);function o(e){return n((function(r,t){var n=-1,o=t.length,a=o>1?t[o-1]:undefined,s=o>2?t[2]:undefined;a=e.length>3&&typeof a=="function"?(o--,a):undefined;if(s&&i(t[0],t[1],s)){a=o<3?undefined:a;o=1}r=Object(r);while(++n{var n=t(64894);function i(e,r){return function(t,i){if(t==null){return t}if(!n(t)){return e(t,i)}var o=t.length,a=r?o:-1,s=Object(t);while(r?a--:++a{function r(e){return function(r,t,n){var i=-1,o=Object(r),a=n(r),s=a.length;while(s--){var u=a[e?s:++i];if(t(o[u],u,o)===false){break}}return r}}e.exports=r},44517:(e,r,t)=>{var n=t(76545),i=t(63950),o=t(84247);var a=1/0;var s=!(n&&1/o(new n([,-0]))[1]==a)?i:function(e){return new n(e)};e.exports=s},52606:(e,r,t)=>{var n=t(85250),i=t(23805);function o(e,r,t,a,s,u){if(i(e)&&i(r)){u.set(r,e);n(e,r,undefined,o,u);u["delete"](r)}return e}e.exports=o},25911:(e,r,t)=>{var n=t(38859),i=t(14248),o=t(19219);var a=1,s=2;function u(e,r,t,u,f,c){var l=t&a,d=e.length,p=r.length;if(d!=p&&!(l&&p>d)){return false}var h=c.get(e);var m=c.get(r);if(h&&m){return h==r&&m==e}var v=-1,y=true,g=t&s?new n:undefined;c.set(e,r);c.set(r,e);while(++v{var n=t(51873),i=t(37828),o=t(75288),a=t(25911),s=t(20317),u=t(84247);var f=1,c=2;var l="[object Boolean]",d="[object Date]",p="[object Error]",h="[object Map]",m="[object Number]",v="[object RegExp]",y="[object Set]",g="[object String]",b="[object Symbol]";var w="[object ArrayBuffer]",A="[object DataView]";var x=n?n.prototype:undefined,O=x?x.valueOf:undefined;function S(e,r,t,n,x,S,E){switch(t){case A:if(e.byteLength!=r.byteLength||e.byteOffset!=r.byteOffset){return false}e=e.buffer;r=r.buffer;case w:if(e.byteLength!=r.byteLength||!S(new i(e),new i(r))){return false}return true;case l:case d:case m:return o(+e,+r);case p:return e.name==r.name&&e.message==r.message;case v:case g:return e==r+"";case h:var _=s;case y:var I=n&f;_||(_=u);if(e.size!=r.size&&!I){return false}var j=E.get(e);if(j){return j==r}n|=c;E.set(e,r);var P=a(_(e),_(r),n,x,S,E);E["delete"](e);return P;case b:if(O){return O.call(e)==O.call(r)}}return false}e.exports=S},50689:(e,r,t)=>{var n=t(50002);var i=1;var o=Object.prototype;var a=o.hasOwnProperty;function s(e,r,t,o,s,u){var f=t&i,c=n(e),l=c.length,d=n(r),p=d.length;if(l!=p&&!f){return false}var h=l;while(h--){var m=c[h];if(!(f?m in r:a.call(r,m))){return false}}var v=u.get(e);var y=u.get(r);if(v&&y){return v==r&&y==e}var g=true;u.set(e,r);u.set(r,e);var b=f;while(++h{var n=t(30756),i=t(95950);function o(e){var r=i(e),t=r.length;while(t--){var o=r[t],a=e[o];r[t]=[o,a,n(a)]}return r}e.exports=o},36800:(e,r,t)=>{var n=t(75288),i=t(64894),o=t(30361),a=t(23805);function s(e,r,t){if(!a(t)){return false}var s=typeof r;if(s=="number"?i(t)&&o(r,t.length):s=="string"&&r in t){return n(t[r],e)}return false}e.exports=s},30756:(e,r,t)=>{var n=t(23805);function i(e){return e===e&&!n(e)}e.exports=i},20317:e=>{function r(e){var r=-1,t=Array(e.size);e.forEach((function(e,n){t[++r]=[n,e]}));return t}e.exports=r},67197:e=>{function r(e,r){return function(t){if(t==null){return false}return t[e]===r&&(r!==undefined||e in Object(t))}}e.exports=r},14974:e=>{function r(e,r){if(r==="constructor"&&typeof e[r]==="function"){return}if(r=="__proto__"){return}return e[r]}e.exports=r},31380:e=>{var r="__lodash_hash_undefined__";function t(e){this.__data__.set(e,r);return this}e.exports=t},51459:e=>{function r(e){return this.__data__.has(e)}e.exports=r},84247:e=>{function r(e){var r=-1,t=Array(e.size);e.forEach((function(e){t[++r]=e}));return t}e.exports=r},76959:e=>{function r(e,r,t){var n=t-1,i=e.length;while(++n{var r=/\s/;function t(e){var t=e.length;while(t--&&r.test(e.charAt(t))){}return t}e.exports=t},84684:(e,r,t)=>{var n=t(69302),i=t(75288),o=t(36800),a=t(37241);var s=Object.prototype;var u=s.hasOwnProperty;var f=n((function(e,r){e=Object(e);var t=-1;var n=r.length;var f=n>2?r[2]:undefined;if(f&&o(r[0],r[1],f)){n=1}while(++t{var n=t(91033),i=t(69302),o=t(52606),a=t(6924);var s=i((function(e){e.push(undefined,o);return n(a,undefined,e)}));e.exports=s},3176:(e,r,t)=>{var n=t(83120);var i=1/0;function o(e){var r=e==null?0:e.length;return r?n(e,i):[]}e.exports=o},39754:(e,r,t)=>{var n=t(83729),i=t(80909),o=t(24066),a=t(56449);function s(e,r){var t=a(e)?n:i;return t(e,o(r))}e.exports=s},5287:(e,r,t)=>{var n=t(34932),i=t(27185),o=t(69302),a=t(80741);var s=o((function(e){var r=n(e,a);return r.length&&r[0]===e[0]?i(r):[]}));e.exports=s},80191:(e,r,t)=>{var n=t(34932),i=t(27185),o=t(69302),a=t(80741),s=t(68090);var u=o((function(e){var r=s(e),t=n(e,a);r=typeof r=="function"?r:undefined;if(r){t.pop()}return t.length&&t[0]===e[0]?i(t,undefined,r):[]}));e.exports=u},83693:(e,r,t)=>{var n=t(64894),i=t(40346);function o(e){return i(e)&&n(e)}e.exports=o},53812:(e,r,t)=>{var n=t(72552),i=t(40346);var o="[object Boolean]";function a(e){return e===true||e===false||i(e)&&n(e)==o}e.exports=a},2404:(e,r,t)=>{var n=t(60270);function i(e,r){return n(e,r)}e.exports=i},29132:(e,r,t)=>{var n=t(60270);function i(e,r,t){t=typeof t=="function"?t:undefined;var i=t?t(e,r):undefined;return i===undefined?n(e,r,undefined,t):!!i}e.exports=i},69843:e=>{function r(e){return e==null}e.exports=r},98023:(e,r,t)=>{var n=t(72552),i=t(40346);var o="[object Number]";function a(e){return typeof e=="number"||i(e)&&n(e)==o}e.exports=a},85015:(e,r,t)=>{var n=t(72552),i=t(56449),o=t(40346);var a="[object String]";function s(e){return typeof e=="string"||!i(e)&&o(e)&&n(e)==a}e.exports=s},6924:(e,r,t)=>{var n=t(85250),i=t(20999);var o=i((function(e,r,t,i){n(e,r,t,i)}));e.exports=o},63950:e=>{function r(){}e.exports=r},50583:(e,r,t)=>{var n=t(47237),i=t(17255),o=t(28586),a=t(77797);function s(e){return o(e)?n(a(e)):i(e)}e.exports=s},12358:(e,r,t)=>{var n=t(21988);function i(e,r){return e&&e.length&&r&&r.length?n(e,r):e}e.exports=i},40860:(e,r,t)=>{var n=t(40882),i=t(80909),o=t(15389),a=t(85558),s=t(56449);function u(e,r,t){var u=s(e)?n:a,f=arguments.length<3;return u(e,o(r,4),t,f,i)}e.exports=u},33031:(e,r,t)=>{var n=t(83120),i=t(46155),o=t(69302),a=t(36800);var s=o((function(e,r){if(e==null){return[]}var t=r.length;if(t>1&&a(e,r[0],r[1])){r=[]}else if(t>2&&a(r[0],r[1],r[2])){r=[r[0]]}return i(e,n(r,1),[])}));e.exports=s},6638:(e,r,t)=>{var n=t(78096),i=t(24066),o=t(61489);var a=9007199254740991;var s=4294967295;var u=Math.min;function f(e,r){e=o(e);if(e<1||e>a){return[]}var t=s,f=u(e,s);r=i(r);e-=s;var c=n(f,r);while(++t{var n=t(99374);var i=1/0,o=17976931348623157e292;function a(e){if(!e){return e===0?e:0}e=n(e);if(e===i||e===-i){var r=e<0?-1:1;return r*o}return e===e?e:0}e.exports=a},61489:(e,r,t)=>{var n=t(17400);function i(e){var r=n(e),t=r%1;return r===r?t?r-t:r:0}e.exports=i},99374:(e,r,t)=>{var n=t(54128),i=t(23805),o=t(44394);var a=0/0;var s=/^[-+]0x[0-9a-f]+$/i;var u=/^0b[01]+$/i;var f=/^0o[0-7]+$/i;var c=parseInt;function l(e){if(typeof e=="number"){return e}if(o(e)){return a}if(i(e)){var r=typeof e.valueOf=="function"?e.valueOf():e;e=i(r)?r+"":r}if(typeof e!="string"){return e===0?e:+e}e=n(e);var t=u.test(e);return t||f.test(e)?c(e.slice(2),t?2:8):s.test(e)?a:+e}e.exports=l},69884:(e,r,t)=>{var n=t(21791),i=t(37241);function o(e){return n(e,i(e))}e.exports=o},69752:(e,r,t)=>{var n=t(83729),i=t(39344),o=t(30641),a=t(15389),s=t(28879),u=t(56449),f=t(3656),c=t(1882),l=t(23805),d=t(37167);function p(e,r,t){var p=u(e),h=p||f(e)||d(e);r=a(r,4);if(t==null){var m=e&&e.constructor;if(h){t=p?new m:[]}else if(l(e)){t=c(m)?i(s(e)):{}}else{t={}}}(h?n:o)(e,(function(e,n,i){return r(t,e,n,i)}));return t}e.exports=p},80299:(e,r,t)=>{var n=t(83120),i=t(69302),o=t(55765),a=t(83693);var s=i((function(e){return o(n(e,1,a,true))}));e.exports=s},63375:(e,r,t)=>{var n=t(55765);function i(e){return e&&e.length?n(e):[]}e.exports=i},9063:(e,r,t)=>{var n=t(55765);function i(e,r){r=typeof r=="function"?r:undefined;return e&&e.length?n(e,undefined,r):[]}e.exports=i},91648:(e,r,t)=>{var n=t(83915),i=t(69302),o=t(83693);var a=i((function(e,r){return o(e)?n(e,r):[]}));e.exports=a},22799:(e,r)=>{"use strict";var t=Symbol.for("react.element"),n=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),u=Symbol.for("react.context"),f=Symbol.for("react.server_context"),c=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),d=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),m=Symbol.for("react.offscreen"),v;v=Symbol.for("react.module.reference");function y(e){if("object"===typeof e&&null!==e){var r=e.$$typeof;switch(r){case t:switch(e=e.type,e){case i:case a:case o:case l:case d:return e;default:switch(e=e&&e.$$typeof,e){case f:case u:case c:case h:case p:case s:return e;default:return r}}case n:return r}}}r.ContextConsumer=u;r.ContextProvider=s;r.Element=t;r.ForwardRef=c;r.Fragment=i;r.Lazy=h;r.Memo=p;r.Portal=n;r.Profiler=a;r.StrictMode=o;r.Suspense=l;r.SuspenseList=d;r.isAsyncMode=function(){return!1};r.isConcurrentMode=function(){return!1};r.isContextConsumer=function(e){return y(e)===u};r.isContextProvider=function(e){return y(e)===s};r.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===t};r.isForwardRef=function(e){return y(e)===c};r.isFragment=function(e){return y(e)===i};r.isLazy=function(e){return y(e)===h};r.isMemo=function(e){return y(e)===p};r.isPortal=function(e){return y(e)===n};r.isProfiler=function(e){return y(e)===a};r.isStrictMode=function(e){return y(e)===o};r.isSuspense=function(e){return y(e)===l};r.isSuspenseList=function(e){return y(e)===d};r.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===a||e===o||e===l||e===d||e===m||"object"===typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===p||e.$$typeof===s||e.$$typeof===u||e.$$typeof===c||e.$$typeof===v||void 0!==e.getModuleId)?!0:!1};r.typeOf=y},44363:(e,r,t)=>{"use strict";if(true){e.exports=t(22799)}else{}},85419:e=>{"use strict";function r(e){return Object.prototype.toString.call(e)==="[object Array]"}e.exports=Array.isArray||r},82986:e=>{"use strict";function r(e){return typeof e==="function"}e.exports=r},96552:(e,r,t)=>{"use strict";var n=t(85419),i=t(84356);function o(e){var r;if(!n(e)){return false}r=e.length;if(!r){return false}for(var t=0;t{"use strict";var n=t(66415);function i(e){return n(e)&&e%1===0}e.exports=i},66415:e=>{"use strict";function r(e){return(typeof e==="number"||Object.prototype.toString.call(e)==="[object Number]")&&e.valueOf()===e.valueOf()}e.exports=r}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6733.2d8d3e01d56d79a52e7e.js.LICENSE.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6733.2d8d3e01d56d79a52e7e.js.LICENSE.txt deleted file mode 100644 index 53dcf70ce5b1fcc4b4d914dc5a8e70542caf0bc2..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6733.2d8d3e01d56d79a52e7e.js.LICENSE.txt +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @license React - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6767.4b82d96c237ca7e31bc6.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6767.4b82d96c237ca7e31bc6.js deleted file mode 100644 index bc4ad90bd2292eae3ee97e5a447790a3476b4186..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6767.4b82d96c237ca7e31bc6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6767],{56767:(e,t,r)=>{r.r(t);r.d(t,{vbScript:()=>a,vbScriptASP:()=>i});function n(e){var t="error";function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var n=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]");var a=new RegExp("^((<>)|(<=)|(>=))");var i=new RegExp("^[\\.,]");var o=new RegExp("^[\\(\\)]");var c=new RegExp("^[A-Za-z][_A-Za-z0-9]*");var u=["class","sub","select","while","if","function","property","with","for"];var l=["else","elseif","case"];var s=["next","loop","wend"];var v=r(["and","or","not","xor","is","mod","eqv","imp"]);var b=["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"];var d=["true","false","nothing","empty","null"];var f=["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"];var m=["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"];var p=["WScript","err","debug","RegExp"];var h=["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"];var y=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"];var g=["server","response","request","session","application"];var k=["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"];var w=["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"];var x=y.concat(h);p=p.concat(m);if(e.isASP){p=p.concat(g);x=x.concat(w,k)}var C=r(b);var I=r(d);var L=r(f);var S=r(p);var D=r(x);var E='"';var j=r(u);var O=r(l);var T=r(s);var z=r(["end"]);var R=r(["do"]);var F=r(["on error resume next","exit"]);var A=r(["rem"]);function B(e,t){t.currentIndent++}function N(e,t){t.currentIndent--}function _(e,r){if(e.eatSpace()){return null}var u=e.peek();if(u==="'"){e.skipToEnd();return"comment"}if(e.match(A)){e.skipToEnd();return"comment"}if(e.match(/^((&H)|(&O))?[0-9\.]/i,false)&&!e.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,false)){var l=false;if(e.match(/^\d*\.\d+/i)){l=true}else if(e.match(/^\d+\.\d*/)){l=true}else if(e.match(/^\.\d+/)){l=true}if(l){e.eat(/J/i);return"number"}var s=false;if(e.match(/^&H[0-9a-f]+/i)){s=true}else if(e.match(/^&O[0-7]+/i)){s=true}else if(e.match(/^[1-9]\d*F?/)){e.eat(/J/i);s=true}else if(e.match(/^0(?![\dx])/i)){s=true}if(s){e.eat(/L/i);return"number"}}if(e.match(E)){r.tokenize=W(e.current());return r.tokenize(e,r)}if(e.match(a)||e.match(n)||e.match(v)){return"operator"}if(e.match(i)){return null}if(e.match(o)){return"bracket"}if(e.match(F)){r.doInCurrentLine=true;return"keyword"}if(e.match(R)){B(e,r);r.doInCurrentLine=true;return"keyword"}if(e.match(j)){if(!r.doInCurrentLine)B(e,r);else r.doInCurrentLine=false;return"keyword"}if(e.match(O)){return"keyword"}if(e.match(z)){N(e,r);N(e,r);return"keyword"}if(e.match(T)){if(!r.doInCurrentLine)N(e,r);else r.doInCurrentLine=false;return"keyword"}if(e.match(C)){return"keyword"}if(e.match(I)){return"atom"}if(e.match(D)){return"variableName.special"}if(e.match(L)){return"builtin"}if(e.match(S)){return"builtin"}if(e.match(c)){return"variable"}e.next();return t}function W(e){var t=e.length==1;var r="string";return function(n,a){while(!n.eol()){n.eatWhile(/[^'"]/);if(n.match(e)){a.tokenize=_;return r}else{n.eat(/['"]/)}}if(t){a.tokenize=_}return r}}function q(e,r){var n=r.tokenize(e,r);var a=e.current();if(a==="."){n=r.tokenize(e,r);a=e.current();if(n&&(n.substr(0,8)==="variable"||n==="builtin"||n==="keyword")){if(n==="builtin"||n==="keyword")n="variable";if(x.indexOf(a.substr(1))>-1)n="keyword";return n}else{return t}}return n}return{name:"vbscript",startState:function(){return{tokenize:_,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:false,ignoreKeyword:false}},token:function(e,t){if(e.sol()){t.currentIndent+=t.nextLineIndent;t.nextLineIndent=0;t.doInCurrentLine=0}var r=q(e,t);t.lastToken={style:r,content:e.current()};if(r===null)r=null;return r},indent:function(e,t,r){var n=t.replace(/^\s+|\s+$/g,"");if(n.match(T)||n.match(z)||n.match(O))return r.unit*(e.currentIndent-1);if(e.currentIndent<0)return 0;return e.currentIndent*r.unit}}}const a=n({});const i=n({isASP:true})}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6779.051cfbcb0700a96839b2.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6779.051cfbcb0700a96839b2.js deleted file mode 100644 index 32caff6bbcaabb71fb5cd50a87263b6570ad778b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6779.051cfbcb0700a96839b2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6779],{16779:(r,a,e)=>{e.d(a,{diagram:()=>_});var t=e(88855);var s=e(15051);var p=e(94065);var v=e(33416);var i=e(94746);var u=e(20778);var l=e(57590);var n=e(68232);var o=e(76261);var b=e(96049);var k=e(75905);var _={parser:t.Zk,get db(){return new t.u4(2)},renderer:t.q7,styles:t.tM,init:(0,k.K2)((r=>{if(!r.state){r.state={}}r.state.arrowMarkerAbsolute=r.arrowMarkerAbsolute}),"init")}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6831.1df8fa4cabb5b1c19803.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6831.1df8fa4cabb5b1c19803.js deleted file mode 100644 index 2d0dd31d2ce27968b8198fa4bb483aba20cebbcf..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6831.1df8fa4cabb5b1c19803.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6831],{86831:(e,t,r)=>{r.r(t);r.d(t,{fcl:()=>d});var n={term:true,method:true,accu:true,rule:true,then:true,is:true,and:true,or:true,if:true,default:true};var u={var_input:true,var_output:true,fuzzify:true,defuzzify:true,function_block:true,ruleblock:true};var i={end_ruleblock:true,end_defuzzify:true,end_function_block:true,end_fuzzify:true,end_var:true};var a={true:true,false:true,nan:true,real:true,min:true,max:true,cog:true,cogs:true};var o=/[+\-*&^%:=<>!|\/]/;function l(e,t){var r=e.next();if(/[\d\.]/.test(r)){if(r=="."){e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/)}else if(r=="0"){e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/)}else{e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/)}return"number"}if(r=="/"||r=="("){if(e.eat("*")){t.tokenize=f;return f(e,t)}if(e.eat("/")){e.skipToEnd();return"comment"}}if(o.test(r)){e.eatWhile(o);return"operator"}e.eatWhile(/[\w\$_\xa1-\uffff]/);var l=e.current().toLowerCase();if(n.propertyIsEnumerable(l)||u.propertyIsEnumerable(l)||i.propertyIsEnumerable(l)){return"keyword"}if(a.propertyIsEnumerable(l))return"atom";return"variable"}function f(e,t){var r=false,n;while(n=e.next()){if((n=="/"||n==")")&&r){t.tokenize=l;break}r=n=="*"}return"comment"}function c(e,t,r,n,u){this.indented=e;this.column=t;this.type=r;this.align=n;this.prev=u}function s(e,t,r){return e.context=new c(e.indented,t,r,null,e.context)}function p(e){if(!e.context.prev)return;var t=e.context.type;if(t=="end_block")e.indented=e.context.indented;return e.context=e.context.prev}const d={name:"fcl",startState:function(e){return{tokenize:null,context:new c(-e,0,"top",false),indented:0,startOfLine:true}},token:function(e,t){var r=t.context;if(e.sol()){if(r.align==null)r.align=false;t.indented=e.indentation();t.startOfLine=true}if(e.eatSpace())return null;var n=(t.tokenize||l)(e,t);if(n=="comment")return n;if(r.align==null)r.align=true;var a=e.current().toLowerCase();if(u.propertyIsEnumerable(a))s(t,e.column(),"end_block");else if(i.propertyIsEnumerable(a))p(t);t.startOfLine=false;return n},indent:function(e,t,r){if(e.tokenize!=l&&e.tokenize!=null)return 0;var n=e.context;var u=i.propertyIsEnumerable(t);if(n.align)return n.column+(u?0:1);else return n.indented+(u?0:r.unit)},languageData:{commentTokens:{line:"//",block:{open:"(*",close:"*)"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6843.dabcc3c9658bc6ded6d1.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6843.dabcc3c9658bc6ded6d1.js deleted file mode 100644 index e04f36f1af7b66f26776cb22f92efc92ea40543b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6843.dabcc3c9658bc6ded6d1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6843],{6843:(e,t,n)=>{n.r(t);n.d(t,{tiki:()=>_});function r(e,t,n){return function(r,i){while(!r.eol()){if(r.match(t)){i.tokenize=u;break}r.next()}if(n)i.tokenize=n;return e}}function i(e){return function(t,n){while(!t.eol()){t.next()}n.tokenize=u;return e}}function u(e,t){function n(n){t.tokenize=n;return n(e,t)}var a=e.sol();var o=e.next();switch(o){case"{":e.eat("/");e.eatSpace();e.eatWhile(/[^\s\u00a0=\"\'\/?(}]/);t.tokenize=c;return"tag";case"_":if(e.eat("_"))return n(r("strong","__",u));break;case"'":if(e.eat("'"))return n(r("em","''",u));break;case"(":if(e.eat("("))return n(r("link","))",u));break;case"[":return n(r("url","]",u));break;case"|":if(e.eat("|"))return n(r("comment","||"));break;case"-":if(e.eat("=")){return n(r("header string","=-",u))}else if(e.eat("-")){return n(r("error tw-deleted","--",u))}break;case"=":if(e.match("=="))return n(r("tw-underline","===",u));break;case":":if(e.eat(":"))return n(r("comment","::"));break;case"^":return n(r("tw-box","^"));break;case"~":if(e.match("np~"))return n(r("meta","~/np~"));break}if(a){switch(o){case"!":if(e.match("!!!!!")){return n(i("header string"))}else if(e.match("!!!!")){return n(i("header string"))}else if(e.match("!!!")){return n(i("header string"))}else if(e.match("!!")){return n(i("header string"))}else{return n(i("header string"))}break;case"*":case"#":case"+":return n(i("tw-listitem bracket"));break}}return null}var a,o;function c(e,t){var n=e.next();var r=e.peek();if(n=="}"){t.tokenize=u;return"tag"}else if(n=="("||n==")"){return"bracket"}else if(n=="="){o="equals";if(r==">"){e.next();r=e.peek()}if(!/[\'\"]/.test(r)){t.tokenize=s()}return"operator"}else if(/[\'\"]/.test(n)){t.tokenize=f(n);return t.tokenize(e,t)}else{e.eatWhile(/[^\s\u00a0=\"\'\/?]/);return"keyword"}}function f(e){return function(t,n){while(!t.eol()){if(t.next()==e){n.tokenize=c;break}}return"string"}}function s(){return function(e,t){while(!e.eol()){var n=e.next();var r=e.peek();if(n==" "||n==","||/[ )}]/.test(r)){t.tokenize=c;break}}return"string"}}var l,k;function p(){for(var e=arguments.length-1;e>=0;e--)l.cc.push(arguments[e])}function d(){p.apply(null,arguments);return true}function h(e,t){var n=l.context&&l.context.noIndent;l.context={prev:l.context,pluginName:e,indent:l.indented,startOfLine:t,noIndent:n}}function g(){if(l.context)l.context=l.context.prev}function b(e){if(e=="openPlugin"){l.pluginName=a;return d(v,m(l.startOfLine))}else if(e=="closePlugin"){var t=false;if(l.context){t=l.context.pluginName!=a;g()}else{t=true}if(t)k="error";return d(x(t))}else if(e=="string"){if(!l.context||l.context.name!="!cdata")h("!cdata");if(l.tokenize==u)g();return d()}else return d()}function m(e){return function(t){if(t=="selfclosePlugin"||t=="endPlugin")return d();if(t=="endPlugin"){h(l.pluginName,e);return d()}return d()}}function x(e){return function(t){if(e)k="error";if(t=="endPlugin")return d();return p()}}function v(e){if(e=="keyword"){k="attribute";return d(v)}if(e=="equals")return d(w,v);return p()}function w(e){if(e=="keyword"){k="string";return d()}if(e=="string")return d(z);return p()}function z(e){if(e=="string")return d(z);else return p()}const _={name:"tiki",startState:function(){return{tokenize:u,cc:[],indented:0,startOfLine:true,pluginName:null,context:null}},token:function(e,t){if(e.sol()){t.startOfLine=true;t.indented=e.indentation()}if(e.eatSpace())return null;k=o=a=null;var n=t.tokenize(e,t);if((n||o)&&n!="comment"){l=t;while(true){var r=t.cc.pop()||b;if(r(o||n))break}}t.startOfLine=false;return k||n},indent:function(e,t,n){var r=e.context;if(r&&r.noIndent)return 0;if(r&&/^{\//.test(t))r=r.prev;while(r&&!r.startOfLine)r=r.prev;if(r)return r.indent+n.unit;else return 0}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6874.bb2f7fbc6ce56eecc800.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6874.bb2f7fbc6ce56eecc800.js deleted file mode 100644 index 0a7547117d9c3561513cf5c571b300a8c9cf1222..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6874.bb2f7fbc6ce56eecc800.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6874],{96874:(e,t,T)=>{T.r(t);T.d(t,{ttcnCfg:()=>s});function n(e){var t={},T=e.split(" ");for(var n=0;n{"use strict";r.r(t);r.d(t,{createPrecompiledValidator:()=>w,customizeValidator:()=>z,default:()=>E});var a=r(12776);var n=r(63282);var o=r.n(n);var i=r(68182);var s=r.n(i);var f=r(23805);var d=r.n(f);const c={allErrors:true,multipleOfPrecision:8,strict:false,verbose:true};const u=/^(#?([0-9A-Fa-f]{3}){1,2}\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\(\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*\))|(rgb\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\)))$/;const l=/^data:([a-z]+\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;function m(e,t,r={},n,i=o()){const f=new i({...c,...r});if(n){s()(f,n)}else if(n!==false){s()(f)}f.addFormat("data-url",l);f.addFormat("color",u);f.addKeyword(a.ADDITIONAL_PROPERTY_FLAG);f.addKeyword(a.RJSF_ADDITONAL_PROPERTIES_FLAG);if(Array.isArray(e)){f.addMetaSchema(e)}if(d()(t)){Object.keys(t).forEach((e=>{f.addFormat(e,t[e])}))}return f}var h=r(58156);var p=r.n(h);function v(e=[],t){return e.map((e=>{const{instancePath:r,keyword:n,params:o,schemaPath:i,parentSchema:s,...f}=e;let{message:d=""}=f;let c=r.replace(/\//g,".");let u=`${c} ${d}`.trim();if("missingProperty"in o){c=c?`${c}.${o.missingProperty}`:o.missingProperty;const e=o.missingProperty;const r=(0,a.getUiOptions)(p()(t,`${c.replace(/^\./,"")}`)).title;if(r){d=d.replace(e,r)}else{const t=p()(s,[a.PROPERTIES_KEY,e,"title"]);if(t){d=d.replace(e,t)}}u=d}else{const e=(0,a.getUiOptions)(p()(t,`${c.replace(/^\./,"")}`)).title;if(e){u=`'${e}' ${d}`.trim()}else{const e=s===null||s===void 0?void 0:s.title;if(e){u=`'${e}' ${d}`.trim()}}}return{name:n,property:c,message:d,params:o,stack:u,schemaPath:i}}))}function _(e,t,r,n,o,i,s){const{validationError:f}=t;let d=v(t.errors,s);if(f){d=[...d,{stack:f.message}]}if(typeof i==="function"){d=i(d,s)}let c=(0,a.toErrorSchema)(d);if(f){c={...c,$schema:{__errors:[f.message]}}}if(typeof o!=="function"){return{errors:d,errorSchema:c}}const u=(0,a.getDefaultFormState)(e,n,r,n,true);const l=o(u,(0,a.createErrorHandler)(u),s);const m=(0,a.unwrapErrorHandler)(l);return(0,a.validationDataMerge)({errors:d,errorSchema:c},m)}class ${constructor(e,t){const{additionalMetaSchemas:r,customFormats:a,ajvOptionsOverrides:n,ajvFormatOptions:o,AjvClass:i}=e;this.ajv=m(r,a,n,o,i);this.localizer=t}toErrorList(e,t=[]){return(0,a.toErrorList)(e,t)}rawValidation(e,t){let r=undefined;let n;if(e[a.ID_KEY]){n=this.ajv.getSchema(e[a.ID_KEY])}try{if(n===undefined){n=this.ajv.compile(e)}n(t)}catch(i){r=i}let o;if(n){if(typeof this.localizer==="function"){this.localizer(n.errors)}o=n.errors||undefined;n.errors=null}return{errors:o,validationError:r}}validateFormData(e,t,r,a,n){const o=this.rawValidation(t,e);return _(this,o,e,t,r,a,n)}isValid(e,t,r){var n,o;const i=(n=r[a.ID_KEY])!==null&&n!==void 0?n:a.ROOT_SCHEMA_PREFIX;try{this.ajv.addSchema(r,i);const n=(0,a.withIdRefPrefix)(e);const s=(o=n[a.ID_KEY])!==null&&o!==void 0?o:(0,a.hashForSchema)(n);let f;f=this.ajv.getSchema(s);if(f===undefined){f=this.ajv.addSchema(n,s).getSchema(s)||this.ajv.compile(n)}const d=f(t);return d}catch(s){console.warn("Error encountered compiling schema:",s);return false}finally{this.ajv.removeSchema(i)}}}function z(e={},t){return new $(e,t)}var y=r(2404);var b=r.n(y);class g{constructor(e,t,r){this.rootSchema=t;this.validateFns=e;this.localizer=r;this.mainValidator=this.getValidator(t)}getValidator(e){const t=p()(e,a.ID_KEY)||(0,a.hashForSchema)(e);const r=this.validateFns[t];if(!r){throw new Error(`No precompiled validator function was found for the given schema for "${t}"`)}return r}ensureSameRootSchema(e,t){if(!b()(e,this.rootSchema)){const r=(0,a.retrieveSchema)(this,this.rootSchema,this.rootSchema,t);if(!b()(e,r)){throw new Error("The schema associated with the precompiled validator differs from the rootSchema provided for validation")}}return true}toErrorList(e,t=[]){return(0,a.toErrorList)(e,t)}rawValidation(e,t){this.ensureSameRootSchema(e,t);this.mainValidator(t);if(typeof this.localizer==="function"){this.localizer(this.mainValidator.errors)}const r=this.mainValidator.errors||undefined;this.mainValidator.errors=null;return{errors:r}}validateFormData(e,t,r,a,n){const o=this.rawValidation(t,e);return _(this,o,e,t,r,a,n)}isValid(e,t,r){this.ensureSameRootSchema(r,t);if(p()(e,a.ID_KEY)===a.JUNK_OPTION_ID){return false}const n=this.getValidator(e);return n(t)}}function w(e,t,r){return new g(e,t,r)}const E=z()},14018:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.formatNames=t.fastFormats=t.fullFormats=void 0;function r(e,t){return{validate:e,compare:t}}t.fullFormats={date:r(i,s),time:r(d,c),"date-time":r(l,m),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:v,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:S,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:$,int32:{type:"number",validate:b},int64:{type:"number",validate:g},float:{type:"number",validate:w},double:{type:"number",validate:w},password:true,binary:true};t.fastFormats={...t.fullFormats,date:r(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,s),time:r(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,c),"date-time":r(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,m),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};t.formatNames=Object.keys(t.fullFormats);function a(e){return e%4===0&&(e%100!==0||e%400===0)}const n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;const o=[0,31,28,31,30,31,30,31,31,30,31,30,31];function i(e){const t=n.exec(e);if(!t)return false;const r=+t[1];const i=+t[2];const s=+t[3];return i>=1&&i<=12&&s>=1&&s<=(i===2&&a(r)?29:o[i])}function s(e,t){if(!(e&&t))return undefined;if(e>t)return 1;if(et)return 1;if(e=z}function g(e){return Number.isInteger(e)}function w(){return true}const E=/[^\\]\\Z/;function S(e){if(E.test(e))return false;try{new RegExp(e);return true}catch(t){return false}}},68182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(14018);const n=r(26461);const o=r(99029);const i=new o.Name("fullFormats");const s=new o.Name("fastFormats");const f=(e,t={keywords:true})=>{if(Array.isArray(t)){d(e,t,a.fullFormats,i);return e}const[r,o]=t.mode==="fast"?[a.fastFormats,s]:[a.fullFormats,i];const f=t.formats||a.formatNames;d(e,f,r,o);if(t.keywords)n.default(e);return e};f.get=(e,t="full")=>{const r=t==="fast"?a.fastFormats:a.fullFormats;const n=r[e];if(!n)throw new Error(`Unknown format "${e}"`);return n};function d(e,t,r,a){var n;var i;(n=(i=e.opts.code).formats)!==null&&n!==void 0?n:i.formats=o._`require("ajv-formats/dist/formats").${a}`;for(const o of t)e.addFormat(o,r[o])}e.exports=t=f;Object.defineProperty(t,"__esModule",{value:true});t["default"]=f},26461:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.formatLimitDefinition=void 0;const a=r(63282);const n=r(99029);const o=n.operators;const i={formatMaximum:{okStr:"<=",ok:o.LTE,fail:o.GT},formatMinimum:{okStr:">=",ok:o.GTE,fail:o.LT},formatExclusiveMaximum:{okStr:"<",ok:o.LT,fail:o.GTE},formatExclusiveMinimum:{okStr:">",ok:o.GT,fail:o.LTE}};const s={message:({keyword:e,schemaCode:t})=>n.str`should be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>n._`{comparison: ${i[e].okStr}, limit: ${t}}`};t.formatLimitDefinition={keyword:Object.keys(i),type:"string",schemaType:"string",$data:true,error:s,code(e){const{gen:t,data:r,schemaCode:o,keyword:s,it:f}=e;const{opts:d,self:c}=f;if(!d.validateFormats)return;const u=new a.KeywordCxt(f,c.RULES.all.format.definition,"format");if(u.$data)l();else m();function l(){const r=t.scopeValue("formats",{ref:c.formats,code:d.code.formats});const a=t.const("fmt",n._`${r}[${u.schemaCode}]`);e.fail$data(n.or(n._`typeof ${a} != "object"`,n._`${a} instanceof RegExp`,n._`typeof ${a}.compare != "function"`,h(a)))}function m(){const r=u.schema;const a=c.formats[r];if(!a||a===true)return;if(typeof a!="object"||a instanceof RegExp||typeof a.compare!="function"){throw new Error(`"${s}": format "${r}" does not define "compare" function`)}const o=t.scopeValue("formats",{key:r,ref:a,code:d.code.formats?n._`${d.code.formats}${n.getProperty(r)}`:undefined});e.fail$data(h(o))}function h(e){return n._`${e}.compare(${r}, ${o}) ${i[s].fail} 0`}},dependencies:["format"]};const f=e=>{e.addKeyword(t.formatLimitDefinition);return e};t["default"]=f},38859:(e,t,r)=>{var a=r(53661),n=r(31380),o=r(51459);function i(e){var t=-1,r=e==null?0:e.length;this.__data__=new a;while(++t{function t(e,t){var r=-1,a=e==null?0:e.length;while(++r{var a=r(87068),n=r(40346);function o(e,t,r,i,s){if(e===t){return true}if(e==null||t==null||!n(e)&&!n(t)){return e!==e&&t!==t}return a(e,t,r,i,o,s)}e.exports=o},87068:(e,t,r)=>{var a=r(37217),n=r(25911),o=r(21986),i=r(50689),s=r(5861),f=r(56449),d=r(3656),c=r(37167);var u=1;var l="[object Arguments]",m="[object Array]",h="[object Object]";var p=Object.prototype;var v=p.hasOwnProperty;function _(e,t,r,p,_,$){var z=f(e),y=f(t),b=z?m:s(e),g=y?m:s(t);b=b==l?h:b;g=g==l?h:g;var w=b==h,E=g==h,S=b==g;if(S&&d(e)){if(!d(t)){return false}z=true;w=false}if(S&&!w){$||($=new a);return z||c(e)?n(e,t,r,p,_,$):o(e,t,b,r,p,_,$)}if(!(r&u)){var j=w&&v.call(e,"__wrapped__"),k=E&&v.call(t,"__wrapped__");if(j||k){var x=j?e.value():e,F=k?t.value():t;$||($=new a);return _(x,F,r,p,$)}}if(!S){return false}$||($=new a);return i(e,t,r,p,_,$)}e.exports=_},19219:e=>{function t(e,t){return e.has(t)}e.exports=t},25911:(e,t,r)=>{var a=r(38859),n=r(14248),o=r(19219);var i=1,s=2;function f(e,t,r,f,d,c){var u=r&i,l=e.length,m=t.length;if(l!=m&&!(u&&m>l)){return false}var h=c.get(e);var p=c.get(t);if(h&&p){return h==t&&p==e}var v=-1,_=true,$=r&s?new a:undefined;c.set(e,t);c.set(t,e);while(++v{var a=r(51873),n=r(37828),o=r(75288),i=r(25911),s=r(20317),f=r(84247);var d=1,c=2;var u="[object Boolean]",l="[object Date]",m="[object Error]",h="[object Map]",p="[object Number]",v="[object RegExp]",_="[object Set]",$="[object String]",z="[object Symbol]";var y="[object ArrayBuffer]",b="[object DataView]";var g=a?a.prototype:undefined,w=g?g.valueOf:undefined;function E(e,t,r,a,g,E,S){switch(r){case b:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset){return false}e=e.buffer;t=t.buffer;case y:if(e.byteLength!=t.byteLength||!E(new n(e),new n(t))){return false}return true;case u:case l:case p:return o(+e,+t);case m:return e.name==t.name&&e.message==t.message;case v:case $:return e==t+"";case h:var j=s;case _:var k=a&d;j||(j=f);if(e.size!=t.size&&!k){return false}var x=S.get(e);if(x){return x==t}a|=c;S.set(e,t);var F=i(j(e),j(t),a,g,E,S);S["delete"](e);return F;case z:if(w){return w.call(e)==w.call(t)}}return false}e.exports=E},50689:(e,t,r)=>{var a=r(50002);var n=1;var o=Object.prototype;var i=o.hasOwnProperty;function s(e,t,r,o,s,f){var d=r&n,c=a(e),u=c.length,l=a(t),m=l.length;if(u!=m&&!d){return false}var h=u;while(h--){var p=c[h];if(!(d?p in t:i.call(t,p))){return false}}var v=f.get(e);var _=f.get(t);if(v&&_){return v==t&&_==e}var $=true;f.set(e,t);f.set(t,e);var z=d;while(++h{function t(e){var t=-1,r=Array(e.size);e.forEach((function(e,a){r[++t]=[a,e]}));return r}e.exports=t},31380:e=>{var t="__lodash_hash_undefined__";function r(e){this.__data__.set(e,t);return this}e.exports=r},51459:e=>{function t(e){return this.__data__.has(e)}e.exports=t},84247:e=>{function t(e){var t=-1,r=Array(e.size);e.forEach((function(e){r[++t]=e}));return r}e.exports=t},2404:(e,t,r)=>{var a=r(60270);function n(e,t){return a(e,t)}e.exports=n}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6941.465bebbd3d8a024f5f15.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6941.465bebbd3d8a024f5f15.js deleted file mode 100644 index 85ba2f8f73c7cb927fa4de4ddbfec11b6fa64d82..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6941.465bebbd3d8a024f5f15.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6941],{46941:(t,E,e)=>{e.r(E);e.d(E,{forth:()=>O});function r(t){var E=[];t.split(" ").forEach((function(t){E.push({name:t})}));return E}var n=r("INVERT AND OR XOR 2* 2/ LSHIFT RSHIFT 0= = 0< < > U< MIN MAX 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP >R R> R@ + - 1+ 1- ABS NEGATE S>D * M* UM* FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2! ALIGN ALIGNED +! ALLOT CHAR [CHAR] [ ] BL FIND EXECUTE IMMEDIATE COUNT LITERAL STATE ; DOES> >BODY EVALUATE SOURCE >IN <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL FILL MOVE . CR EMIT SPACE SPACES TYPE U. .R U.R ACCEPT TRUE FALSE <> U> 0<> 0> NIP TUCK ROLL PICK 2>R 2R@ 2R> WITHIN UNUSED MARKER I J TO COMPILE, [COMPILE] SAVE-INPUT RESTORE-INPUT PAD ERASE 2LITERAL DNEGATE D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS M+ M*/ D. D.R 2ROT DU< CATCH THROW FREE RESIZE ALLOCATE CS-PICK CS-ROLL GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL");var i=r("IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE");function R(t,E){var e;for(e=t.length-1;e>=0;e--){if(t[e].name===E.toUpperCase()){return t[e]}}return undefined}const O={name:"forth",startState:function(){return{state:"",base:10,coreWordList:n,immediateWordList:i,wordList:[]}},token:function(t,E){var e;if(t.eatSpace()){return null}if(E.state===""){if(t.match(/^(\]|:NONAME)(\s|$)/i)){E.state=" compilation";return"builtin"}e=t.match(/^(\:)\s+(\S+)(\s|$)+/);if(e){E.wordList.push({name:e[2].toUpperCase()});E.state=" compilation";return"def"}e=t.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i);if(e){E.wordList.push({name:e[2].toUpperCase()});return"def"}e=t.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/);if(e){return"builtin"}}else{if(t.match(/^(\;|\[)(\s)/)){E.state="";t.backUp(1);return"builtin"}if(t.match(/^(\;|\[)($)/)){E.state="";return"builtin"}if(t.match(/^(POSTPONE)\s+\S+(\s|$)+/)){return"builtin"}}e=t.match(/^(\S+)(\s+|$)/);if(e){if(R(E.wordList,e[1])!==undefined){return"variable"}if(e[1]==="\\"){t.skipToEnd();return"comment"}if(R(E.coreWordList,e[1])!==undefined){return"builtin"}if(R(E.immediateWordList,e[1])!==undefined){return"keyword"}if(e[1]==="("){t.eatWhile((function(t){return t!==")"}));t.eat(")");return"comment"}if(e[1]===".("){t.eatWhile((function(t){return t!==")"}));t.eat(")");return"string"}if(e[1]==='S"'||e[1]==='."'||e[1]==='C"'){t.eatWhile((function(t){return t!=='"'}));t.eat('"');return"string"}if(e[1]-68719476735){return"number"}return"atom"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6974.b5b353b8af28fbc91291.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6974.b5b353b8af28fbc91291.js deleted file mode 100644 index c7409079b95f256997653dc3041aeecf7046abc2..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6974.b5b353b8af28fbc91291.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6974],{97134:(e,n,t)=>{t.d(n,{A:()=>o});var r=t(59386);var a=4;function i(e){return(0,r.A)(e,a)}const o=i},66974:(e,n,t)=>{t.r(n);t.d(n,{render:()=>J});var r=t(33416);var a=t(94746);var i=t(20778);var o=t(57590);var s=t(68232);var d=t(76261);var c=t(96049);var l=t(75905);var g=t(82211);var f=t(89523);var u=t(97134);var p=t(8937);var h=t(65791);function m(e){var n={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:w(e),edges:v(e)};if(!f.A(e.graph())){n.value=u.A(e.graph())}return n}function w(e){return p.A(e.nodes(),(function(n){var t=e.node(n);var r=e.parent(n);var a={v:n};if(!f.A(t)){a.value=t}if(!f.A(r)){a.parent=r}return a}))}function v(e){return p.A(e.edges(),(function(n){var t=e.edge(n);var r={v:n.v,w:n.w};if(!f.A(n.name)){r.name=n.name}if(!f.A(t)){r.value=t}return r}))}function R(e){var n=new Graph(e.options).setGraph(e.value);_.each(e.nodes,(function(e){n.setNode(e.v,e.value);if(e.parent){n.setParent(e.v,e.parent)}}));_.each(e.edges,(function(e){n.setEdge({v:e.v,w:e.w,name:e.name},e.value)}));return n}var y=t(84416);var X=new Map;var b=new Map;var E=new Map;var N=(0,l.K2)((()=>{b.clear();E.clear();X.clear()}),"clear");var C=(0,l.K2)(((e,n)=>{const t=b.get(n)||[];l.Rm.trace("In isDescendant",n," ",e," = ",t.includes(e));return t.includes(e)}),"isDescendant");var S=(0,l.K2)(((e,n)=>{const t=b.get(n)||[];l.Rm.info("Descendants of ",n," is ",t);l.Rm.info("Edge is ",e);if(e.v===n||e.w===n){return false}if(!t){l.Rm.debug("Tilt, ",n,",not in descendants");return false}return t.includes(e.v)||C(e.v,n)||C(e.w,n)||t.includes(e.w)}),"edgeInCluster");var x=(0,l.K2)(((e,n,t,r)=>{l.Rm.warn("Copying children of ",e,"root",r,"data",n.node(e),r);const a=n.children(e)||[];if(e!==r){a.push(e)}l.Rm.warn("Copying (nodes) clusterId",e,"nodes",a);a.forEach((a=>{if(n.children(a).length>0){x(a,n,t,r)}else{const i=n.node(a);l.Rm.info("cp ",a," to ",r," with parent ",e);t.setNode(a,i);if(r!==n.parent(a)){l.Rm.warn("Setting parent",a,n.parent(a));t.setParent(a,n.parent(a))}if(e!==r&&a!==e){l.Rm.debug("Setting parent",a,e);t.setParent(a,e)}else{l.Rm.info("In copy ",e,"root",r,"data",n.node(e),r);l.Rm.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e)}const o=n.edges(a);l.Rm.debug("Copying Edges",o);o.forEach((a=>{l.Rm.info("Edge",a);const i=n.edge(a.v,a.w,a.name);l.Rm.info("Edge data",i,r);try{if(S(a,r)){l.Rm.info("Copying as ",a.v,a.w,i,a.name);t.setEdge(a.v,a.w,i,a.name);l.Rm.info("newGraph edges ",t.edges(),t.edge(t.edges()[0]))}else{l.Rm.info("Skipping copy of edge ",a.v,"--\x3e",a.w," rootId: ",r," clusterId:",e)}}catch(o){l.Rm.error(o)}}))}l.Rm.debug("Removing node",a);n.removeNode(a)}))}),"copy");var I=(0,l.K2)(((e,n)=>{const t=n.children(e);let r=[...t];for(const a of t){E.set(a,e);r=[...r,...I(a,n)]}return r}),"extractDescendants");var D=(0,l.K2)(((e,n,t)=>{const r=e.edges().filter((e=>e.v===n||e.w===n));const a=e.edges().filter((e=>e.v===t||e.w===t));const i=r.map((e=>({v:e.v===n?t:e.v,w:e.w===n?n:e.w})));const o=a.map((e=>({v:e.v,w:e.w})));const s=i.filter((e=>o.some((n=>e.v===n.v&&e.w===n.w))));return s}),"findCommonEdges");var A=(0,l.K2)(((e,n,t)=>{const r=n.children(e);l.Rm.trace("Searching children of id ",e,r);if(r.length<1){return e}let a;for(const i of r){const e=A(i,n,t);const r=D(n,t,e);if(e){if(r.length>0){a=e}else{return e}}}return a}),"findNonClusterChild");var O=(0,l.K2)((e=>{if(!X.has(e)){return e}if(!X.get(e).externalConnections){return e}if(X.has(e)){return X.get(e).id}return e}),"getAnchorId");var k=(0,l.K2)(((e,n)=>{if(!e||n>10){l.Rm.debug("Opting out, no graph ");return}else{l.Rm.debug("Opting in, graph ")}e.nodes().forEach((function(n){const t=e.children(n);if(t.length>0){l.Rm.warn("Cluster identified",n," Replacement id in edges: ",A(n,e,n));b.set(n,I(n,e));X.set(n,{id:A(n,e,n),clusterData:e.node(n)})}}));e.nodes().forEach((function(n){const t=e.children(n);const r=e.edges();if(t.length>0){l.Rm.debug("Cluster identified",n,b);r.forEach((e=>{const t=C(e.v,n);const r=C(e.w,n);if(t^r){l.Rm.warn("Edge: ",e," leaves cluster ",n);l.Rm.warn("Descendants of XXX ",n,": ",b.get(n));X.get(n).externalConnections=true}}))}else{l.Rm.debug("Not a cluster ",n,b)}}));for(let t of X.keys()){const n=X.get(t).id;const r=e.parent(n);if(r!==t&&X.has(r)&&!X.get(r).externalConnections){X.get(t).id=r}}e.edges().forEach((function(n){const t=e.edge(n);l.Rm.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n));l.Rm.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let r=n.v;let a=n.w;l.Rm.warn("Fix XXX",X,"ids:",n.v,n.w,"Translating: ",X.get(n.v)," --- ",X.get(n.w));if(X.get(n.v)||X.get(n.w)){l.Rm.warn("Fixing and trying - removing XXX",n.v,n.w,n.name);r=O(n.v);a=O(n.w);e.removeEdge(n.v,n.w,n.name);if(r!==n.v){const a=e.parent(r);X.get(a).externalConnections=true;t.fromCluster=n.v}if(a!==n.w){const r=e.parent(a);X.get(r).externalConnections=true;t.toCluster=n.w}l.Rm.warn("Fix Replacing with XXX",r,a,n.name);e.setEdge(r,a,t,n.name)}}));l.Rm.warn("Adjusted Graph",m(e));G(e,0);l.Rm.trace(X)}),"adjustClustersAndEdges");var G=(0,l.K2)(((e,n)=>{l.Rm.warn("extractor - ",n,m(e),e.children("D"));if(n>10){l.Rm.error("Bailing out");return}let t=e.nodes();let r=false;for(const a of t){const n=e.children(a);r=r||n.length>0}if(!r){l.Rm.debug("Done, no node has children",e.nodes());return}l.Rm.debug("Nodes = ",t,n);for(const a of t){l.Rm.debug("Extracting node",a,X,X.has(a)&&!X.get(a).externalConnections,!e.parent(a),e.node(a),e.children("D")," Depth ",n);if(!X.has(a)){l.Rm.debug("Not a cluster",a,n)}else if(!X.get(a).externalConnections&&e.children(a)&&e.children(a).length>0){l.Rm.warn("Cluster without external connections, without a parent and with children",a,n);const t=e.graph();let r=t.rankdir==="TB"?"LR":"TB";if(X.get(a)?.clusterData?.dir){r=X.get(a).clusterData.dir;l.Rm.warn("Fixing dir",X.get(a).clusterData.dir,r)}const i=new y.T({multigraph:true,compound:true}).setGraph({rankdir:r,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));l.Rm.warn("Old graph before copy",m(e));x(a,e,i,a);e.setNode(a,{clusterNode:true,id:a,clusterData:X.get(a).clusterData,label:X.get(a).label,graph:i});l.Rm.warn("New graph after copy node: (",a,")",m(i));l.Rm.debug("Old graph after copy",m(e))}else{l.Rm.warn("Cluster ** ",a," **not meeting the criteria !externalConnections:",!X.get(a).externalConnections," no parent: ",!e.parent(a)," children ",e.children(a)&&e.children(a).length>0,e.children("D"),n);l.Rm.debug(X)}}t=e.nodes();l.Rm.warn("New list of nodes",t);for(const a of t){const t=e.node(a);l.Rm.warn(" Now next level",a,t);if(t?.clusterNode){G(t.graph,n+1)}}}),"extractor");var K=(0,l.K2)(((e,n)=>{if(n.length===0){return[]}let t=Object.assign([],n);n.forEach((n=>{const r=e.children(n);const a=K(e,r);t=[...t,...a]}));return t}),"sorter");var P=(0,l.K2)((e=>K(e,e.children())),"sortNodesByHierarchy");var T=(0,l.K2)((async(e,n,t,a,s,d)=>{l.Rm.warn("Graph in recursive render:XAX",m(n),s);const c=n.graph().rankdir;l.Rm.trace("Dir in recursive render - dir:",c);const f=e.insert("g").attr("class","root");if(!n.nodes()){l.Rm.info("No nodes found for",n)}else{l.Rm.info("Recursive render XXX",n.nodes())}if(n.edges().length>0){l.Rm.info("Recursive edges",n.edge(n.edges()[0]))}const u=f.insert("g").attr("class","clusters");const p=f.insert("g").attr("class","edgePaths");const h=f.insert("g").attr("class","edgeLabels");const w=f.insert("g").attr("class","nodes");await Promise.all(n.nodes().map((async function(e){const r=n.node(e);if(s!==void 0){const t=JSON.parse(JSON.stringify(s.clusterData));l.Rm.trace("Setting data for parent cluster XXX\n Node.id = ",e,"\n data=",t.height,"\nParent cluster",s.height);n.setNode(s.id,t);if(!n.parent(e)){l.Rm.trace("Setting parent",e,s.id);n.setParent(e,s.id,t)}}l.Rm.info("(Insert) Node XXX"+e+": "+JSON.stringify(n.node(e)));if(r?.clusterNode){l.Rm.info("Cluster identified XBX",e,r.width,n.node(e));const{ranksep:o,nodesep:s}=n.graph();r.graph.setGraph({...r.graph.graph(),ranksep:o+25,nodesep:s});const c=await T(w,r.graph,t,a,n.node(e),d);const g=c.elem;(0,i.lC)(r,g);r.diff=c.diff||0;l.Rm.info("New compound node after recursive render XAX",e,"width",r.width,"height",r.height);(0,i.U7)(g,r)}else{if(n.children(e).length>0){l.Rm.trace("Cluster - the non recursive path XBX",e,r.id,r,r.width,"Graph:",n);l.Rm.trace(A(r.id,n));X.set(r.id,{id:A(r.id,n),node:r})}else{l.Rm.trace("Node - the non recursive path XAX",e,w,n.node(e),c);await(0,i.on)(w,n.node(e),{config:d,dir:c})}}})));const v=(0,l.K2)((async()=>{const e=n.edges().map((async function(e){const t=n.edge(e.v,e.w,e.name);l.Rm.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e));l.Rm.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(n.edge(e)));l.Rm.info("Fix",X,"ids:",e.v,e.w,"Translating: ",X.get(e.v),X.get(e.w));await(0,r.jP)(h,t)}));await Promise.all(e)}),"processEdges");await v();l.Rm.info("Graph before layout:",JSON.stringify(m(n)));l.Rm.info("############################################# XXX");l.Rm.info("### Layout ### XXX");l.Rm.info("############################################# XXX");(0,g.Zp)(n);l.Rm.info("Graph after layout:",JSON.stringify(m(n)));let R=0;let{subGraphTitleTotalMargin:y}=(0,o.O)(d);await Promise.all(P(n).map((async function(e){const t=n.node(e);l.Rm.info("Position XBX => "+e+": ("+t.x,","+t.y,") width: ",t.width," height: ",t.height);if(t?.clusterNode){t.y+=y;l.Rm.info("A tainted cluster node XBX1",e,t.id,t.width,t.height,t.x,t.y,n.parent(e));X.get(t.id).node=t;(0,i.U_)(t)}else{if(n.children(e).length>0){l.Rm.info("A pure cluster node XBX1",e,t.id,t.x,t.y,t.width,t.height,n.parent(e));t.height+=y;n.node(t.parentId);const r=t?.padding/2||0;const a=t?.labelBBox?.height||0;const o=a-r||0;l.Rm.debug("OffsetY",o,"labelHeight",a,"halfPadding",r);await(0,i.U)(u,t);X.get(t.id).node=t}else{const e=n.node(t.parentId);t.y+=y/2;l.Rm.info("A regular node XBX1 - using the padding",t.id,"parent",t.parentId,t.width,t.height,t.x,t.y,"offsetY",t.offsetY,"parent",e,e?.offsetY,t);(0,i.U_)(t)}}})));n.edges().forEach((function(e){const i=n.edge(e);l.Rm.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(i),i);i.points.forEach((e=>e.y+=y/2));const o=n.node(e.v);var s=n.node(e.w);const d=(0,r.Jo)(p,i,X,t,o,s,a);(0,r.T_)(i,d)}));n.nodes().forEach((function(e){const t=n.node(e);l.Rm.info(e,t.type,t.diff);if(t.isGroup){R=t.diff}}));l.Rm.warn("Returning from recursive render XAX",f,R);return{elem:f,diff:R}}),"recursiveRender");var J=(0,l.K2)((async(e,n)=>{const t=new y.T({multigraph:true,compound:true}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));const a=n.select("g");(0,r.g0)(a,e.markers,e.type,e.diagramId);(0,i.gh)();(0,r.IU)();(0,i.IU)();N();e.nodes.forEach((e=>{t.setNode(e.id,{...e});if(e.parentId){t.setParent(e.id,e.parentId)}}));l.Rm.debug("Edges:",e.edges);e.edges.forEach((e=>{if(e.start===e.end){const n=e.start;const r=n+"---"+n+"---1";const a=n+"---"+n+"---2";const i=t.node(n);t.setNode(r,{domId:r,id:r,parentId:i.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10});t.setParent(r,i.parentId);t.setNode(a,{domId:a,id:a,parentId:i.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10});t.setParent(a,i.parentId);const o=structuredClone(e);const s=structuredClone(e);const d=structuredClone(e);o.label="";o.arrowTypeEnd="none";o.id=n+"-cyclic-special-1";s.arrowTypeStart="none";s.arrowTypeEnd="none";s.id=n+"-cyclic-special-mid";d.label="";if(i.isGroup){o.fromCluster=n;d.toCluster=n}d.id=n+"-cyclic-special-2";d.arrowTypeStart="none";t.setEdge(n,r,o,n+"-cyclic-special-0");t.setEdge(r,a,s,n+"-cyclic-special-1");t.setEdge(a,n,d,n+"-cyc{r.d(a,{K:()=>t});var l=Object.defineProperty;var t=(e,a)=>l(e,"name",{value:a,configurable:true})},96986:(e,a,r)=>{r.r(a);r.d(a,{default:()=>i});var l=r(21148);var t=(0,l.K)((async()=>await Promise.all([r.e(8606),r.e(2601),r.e(6439)]).then(r.bind(r,16439))),"loader");var p=["elk.stress","elk.force","elk.mrtree","elk.sporeOverlap"];var o=[{name:"elk",loader:t,algorithm:"elk.layered"},...p.map((e=>({name:e,loader:t,algorithm:e})))];var i=o}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6993.c93f5a810fcf441cbb6f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6993.c93f5a810fcf441cbb6f.js deleted file mode 100644 index 8b28d92500ad10c13e61b3cf9d4d2ae083a7e2fc..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/6993.c93f5a810fcf441cbb6f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[6993],{66993:(u,D,F)=>{F.r(D);F.d(D,{getHeadingList:()=>c,gfmHeadingId:()=>s,resetHeadings:()=>o,unescape:()=>n});const C=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g;const E=Object.hasOwnProperty;class A{constructor(){this.occurrences;this.reset()}slug(u,D){const F=this;let C=B(u,D===true);const A=C;while(E.call(F.occurrences,C)){F.occurrences[A]++;C=A+"-"+F.occurrences[A]}F.occurrences[C]=0;return C}reset(){this.occurrences=Object.create(null)}}function B(u,D){if(typeof u!=="string")return"";if(!D)u=u.toLowerCase();return u.replace(C,"").replace(/ /g,"-")}let e=new A;let r=[];const t=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function n(u){return u.replace(t,((u,D)=>{D=D.toLowerCase();if(D==="colon")return":";if(D.charAt(0)==="#"){return D.charAt(1)==="x"?String.fromCharCode(parseInt(D.substring(2),16)):String.fromCharCode(+D.substring(1))}return""}))}function s({prefix:u="",globalSlugs:D=false}={}){return{headerIds:false,hooks:{preprocess(u){if(!D){o()}return u}},useNewRenderer:true,renderer:{heading({tokens:D,depth:F}){const C=this.parser.parseInline(D);const E=n(C).trim().replace(/<[!\/a-z].*?>/gi,"");const A=F;const B=`${u}${e.slug(E.toLowerCase())}`;const t={level:A,text:C,id:B,raw:E};r.push(t);return`${C}\n`}}}}function c(){return r}function o(){r=[];e=new A}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7116.2c297d9dc519967a6a12.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7116.2c297d9dc519967a6a12.js deleted file mode 100644 index 84621ab3ff5a1618048c27ec480ffd64745d7d1d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7116.2c297d9dc519967a6a12.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7116],{47116:(t,e,n)=>{n.r(e);n.d(e,{mangle:()=>r});function r(){return{mangle:false,walkTokens(t){if(t.type!=="link"){return}if(!t.href.startsWith("mailto:")){return}const e=t.href.substring(7);const n=o(e);t.href=`mailto:${n}`;if(t.tokens.length!==1||t.tokens[0].type!=="text"||t.tokens[0].text!==e){return}t.text=n;t.tokens[0].text=n}}}function o(t){let e="",n,r;const o=t.length;for(n=0;n.5){r="x"+r.toString(16)}e+="&#"+r+";"}return e}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7136.b312751fbb25b73f5e71.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7136.b312751fbb25b73f5e71.js deleted file mode 100644 index 0ffd8017e9c09b48606ee183a811d72df24ff06b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7136.b312751fbb25b73f5e71.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7136],{97136:(e,t,r)=>{r.r(t);r.d(t,{r:()=>_});function n(e){var t={};for(var r=0;r=!&|~$:]/;var m;function d(e,t){m=null;var r=e.next();if(r=="#"){e.skipToEnd();return"comment"}else if(r=="0"&&e.eat("x")){e.eatWhile(/[\da-f]/i);return"number"}else if(r=="."&&e.eat(/\d/)){e.match(/\d*(?:e[+\-]?\d+)?/);return"number"}else if(/\d/.test(r)){e.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/);return"number"}else if(r=="'"||r=='"'){t.tokenize=v(r);return"string"}else if(r=="`"){e.match(/[^`]+`/);return"string.special"}else if(r=="."&&e.match(/.(?:[.]|\d+)/)){return"keyword"}else if(/[a-zA-Z\.]/.test(r)){e.eatWhile(/[\w\.]/);var n=e.current();if(u.propertyIsEnumerable(n))return"atom";if(s.propertyIsEnumerable(n)){if(o.propertyIsEnumerable(n)&&!e.match(/\s*if(\s+|$)/,false))m="block";return"keyword"}if(c.propertyIsEnumerable(n))return"builtin";return"variable"}else if(r=="%"){if(e.skipTo("%"))e.next();return"variableName.special"}else if(r=="<"&&e.eat("-")||r=="<"&&e.match("<-")||r=="-"&&e.match(/>>?/)){return"operator"}else if(r=="="&&t.ctx.argList){return"operator"}else if(p.test(r)){if(r=="$")return"operator";e.eatWhile(p);return"operator"}else if(/[\(\){}\[\];]/.test(r)){m=r;if(r==";")return"punctuation";return null}else{return null}}function v(e){return function(t,r){if(t.eat("\\")){var n=t.next();if(n=="x")t.match(/^[a-f0-9]{2}/i);else if((n=="u"||n=="U")&&t.eat("{")&&t.skipTo("}"))t.next();else if(n=="u")t.match(/^[a-f0-9]{4}/i);else if(n=="U")t.match(/^[a-f0-9]{8}/i);else if(/[0-7]/.test(n))t.match(/^[0-7]{1,2}/);return"string.special"}else{var i;while((i=t.next())!=null){if(i==e){r.tokenize=d;break}if(i=="\\"){t.backUp(1);break}}return"string"}}}var k=1,x=2,b=4;function h(e,t,r){e.ctx={type:t,indent:e.indent,flags:0,column:r.column(),prev:e.ctx}}function g(e,t){var r=e.ctx;e.ctx={type:r.type,indent:r.indent,flags:r.flags|t,column:r.column,prev:r.prev}}function y(e){e.indent=e.ctx.indent;e.ctx=e.ctx.prev}const _={name:"r",startState:function(e){return{tokenize:d,ctx:{type:"top",indent:-e,flags:x},indent:0,afterIdent:false}},token:function(e,t){if(e.sol()){if((t.ctx.flags&3)==0)t.ctx.flags|=x;if(t.ctx.flags&b)y(t);t.indent=e.indentation()}if(e.eatSpace())return null;var r=t.tokenize(e,t);if(r!="comment"&&(t.ctx.flags&x)==0)g(t,k);if((m==";"||m=="{"||m=="}")&&t.ctx.type=="block")y(t);if(m=="{")h(t,"}",e);else if(m=="("){h(t,")",e);if(t.afterIdent)t.ctx.argList=true}else if(m=="[")h(t,"]",e);else if(m=="block")h(t,"block",e);else if(m==t.ctx.type)y(t);else if(t.ctx.type=="block"&&r!="comment")g(t,b);t.afterIdent=r=="variable"||r=="keyword";return r},indent:function(e,t,r){if(e.tokenize!=d)return 0;var n=t&&t.charAt(0),i=e.ctx,a=n==i.type;if(i.flags&b)i=i.prev;if(i.type=="block")return i.indent+(n=="{"?0:r.unit);else if(i.flags&k)return i.column+(a?0:1);else return i.indent+(a?0:r.unit)},languageData:{wordChars:".",commentTokens:{line:"#"},autocomplete:i.concat(a,l)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/721921bab0d001ebff02.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/721921bab0d001ebff02.woff deleted file mode 100644 index f5df02348b3ad03c4828e77e172cd1cee1bef4dc..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/721921bab0d001ebff02.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7250.b88d0a5e237ff5ff1aad.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7250.b88d0a5e237ff5ff1aad.js deleted file mode 100644 index a3886346d7a4a2b176f4a7207f3b474449ed2473..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7250.b88d0a5e237ff5ff1aad.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7250],{97250:(O,Q,P)=>{P.r(Q);P.d(Q,{rust:()=>U,rustLanguage:()=>l});var $=P(27421);var X=P(45145);const i=1,e=2,a=3,h=4,r=5;const t=98,s=101,W=102,Y=114,S=69,x=48,o=46,Z=43,_=45,p=35,b=34,z=124,q=60,w=62;function g(O){return O>=48&&O<=57}function n(O){return g(O)||O==95}const R=new $.Lu(((O,Q)=>{if(g(O.next)){let Q=false;do{O.advance()}while(n(O.next));if(O.next==o){Q=true;O.advance();if(g(O.next)){do{O.advance()}while(n(O.next))}else if(O.next==o||O.next>127||/\w/.test(String.fromCharCode(O.next))){return}}if(O.next==s||O.next==S){Q=true;O.advance();if(O.next==Z||O.next==_)O.advance();if(!n(O.next))return;do{O.advance()}while(n(O.next))}if(O.next==W){let P=O.peek(1);if(P==x+3&&O.peek(2)==x+2||P==x+6&&O.peek(2)==x+4){O.advance(3);Q=true}else{return}}if(Q)O.acceptToken(r)}else if(O.next==t||O.next==Y){if(O.next==t)O.advance();if(O.next!=Y)return;O.advance();let Q=0;while(O.next==p){Q++;O.advance()}if(O.next!=b)return;O.advance();O:for(;;){if(O.next<0)return;let P=O.next==b;O.advance();if(P){for(let P=0;P{if(O.next==z)O.acceptToken(i,1)}));const T=new $.Lu((O=>{if(O.next==q)O.acceptToken(e,1);else if(O.next==w)O.acceptToken(a,1)}));const y=(0,X.styleTags)({"const macro_rules struct union enum type fn impl trait let static":X.tags.definitionKeyword,"mod use crate":X.tags.moduleKeyword,"pub unsafe async mut extern default move":X.tags.modifier,"for if else loop while match continue break return await":X.tags.controlKeyword,"as in ref":X.tags.operatorKeyword,"where _ crate super dyn":X.tags.keyword,self:X.tags.self,String:X.tags.string,Char:X.tags.character,RawString:X.tags.special(X.tags.string),Boolean:X.tags.bool,Identifier:X.tags.variableName,"CallExpression/Identifier":X.tags.function(X.tags.variableName),BoundIdentifier:X.tags.definition(X.tags.variableName),"FunctionItem/BoundIdentifier":X.tags.function(X.tags.definition(X.tags.variableName)),LoopLabel:X.tags.labelName,FieldIdentifier:X.tags.propertyName,"CallExpression/FieldExpression/FieldIdentifier":X.tags.function(X.tags.propertyName),Lifetime:X.tags.special(X.tags.variableName),ScopeIdentifier:X.tags.namespace,TypeIdentifier:X.tags.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":X.tags.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":X.tags.macroName,'"!"':X.tags.macroName,UpdateOp:X.tags.updateOperator,LineComment:X.tags.lineComment,BlockComment:X.tags.blockComment,Integer:X.tags.integer,Float:X.tags.float,ArithOp:X.tags.arithmeticOperator,LogicOp:X.tags.logicOperator,BitOp:X.tags.bitwiseOperator,CompareOp:X.tags.compareOperator,"=":X.tags.definitionOperator,".. ... => ->":X.tags.punctuation,"( )":X.tags.paren,"[ ]":X.tags.squareBracket,"{ }":X.tags.brace,". DerefOp":X.tags.derefOperator,"&":X.tags.operator,", ; ::":X.tags.separator,"Attribute/...":X.tags.meta});const c={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476};const d=$.U1.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5]QYO'#GUO&,SQYO'#JkOOQQ,5]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5]QYO,5]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<]O&3qQWO,5>]OOQO-E;o-E;oOOQO<WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<]QYO<]QYO<]QYO<]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&eQZO7+(|O&@tQWO,5>qOOQO-E]QYO<]QYO,5]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5]QYO,5PO&I]QYO,5@VOOQV<]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<m,5>mOOQO-EnOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-EX,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E]QYO<o,5>oOOQQ-E]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<e,5>eOOQO-E;w-E;wO'?rQWO<wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"⚠ | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[y],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"#?|_R!VOX$hXY1_YZ2ZZ]$h]^1_^p$hpq1_qr2srs4qst5Ztu6Vuv9lvw;jwx=nxy!!ayz!#]z{!$X{|!&R|}!'T}!O!(P!O!P!*Q!P!Q!-|!Q!R!6X!R![!7|![!]!Jw!]!^!Lu!^!_!Mq!_!`# x!`!a##y!a!b#&Q!b!c#&|!c!}#'x!}#O#)o#O#P#*k#P#Q#1b#Q#R#2^#R#S#'x#S#T$h#T#U#'x#U#V#3`#V#f#'x#f#g#6s#g#o#'x#o#p#y!X!Y$h!Y!Z!<}!Z#O$h#O#P%x#P#g$h#g#h!?y#h~$h_!;O_'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!S$h!S!T!;}!T!W$h!W!X!<}!X#O$h#O#P%x#P~$h_!Q]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!S$h!S!T!<}!T#O$h#O#P%x#P~$h_!?Q]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!U$h!U!V!<}!V#O$h#O#P%x#P~$h_!@Q]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P#]$h#]#^!@y#^~$h_!AQ]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P#n$h#n#o!Ay#o~$h_!BQ]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P#X$h#X#Y!<}#Y~$h_!CQ_'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!R!DP!R!S!DP!S#O$h#O#P%x#P#R$h#R#S!DP#S~$h_!DYcuX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!R!DP!R!S!DP!S#O$h#O#P%x#P#R$h#R#S!DP#S#]$h#]#^!9_#^#i$h#i#j!9_#j~$h_!El^'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!Y!Fh!Y#O$h#O#P%x#P#R$h#R#S!Fh#S~$h_!FqbuX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!Y!Fh!Y#O$h#O#P%x#P#R$h#R#S!Fh#S#]$h#]#^!9_#^#i$h#i#j!9_#j~$h_!HQb'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![!IY![!c$h!c!i!IY!i#O$h#O#P%x#P#R$h#R#S!IY#S#T$h#T#Z!IY#Z~$h_!IcfuX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![!IY![!c$h!c!i!IY!i#O$h#O#P%x#P#R$h#R#S!IY#S#T$h#T#Z!IY#Z#]$h#]#^!9_#^#i$h#i#j!9_#j~$h_!KQ]!SX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![$h![!]!Ky!]#O$h#O#P%x#P~$h_!LSZdX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_!MOZyX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_!Mz^#PX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!^$h!^!_!Nv!_!`3u!`#O$h#O#P%x#P~$h_# P]'yX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`:n!`#O$h#O#P%x#P~$h_#!R^oX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`3u!`!a#!}!a#O$h#O#P%x#P~$h_##WZ#RX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#$S^#PX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`3u!`!a#%O!a#O$h#O#P%x#P~$h_#%X]'zX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`:n!`#O$h#O#P%x#P~$h_#&ZZ(RX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$hV#'VZ'pP'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#(Th'_Q'OS!yW'TPOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![#'x![!c$h!c!}#'x!}#O$h#O#P%x#P#R$h#R#S#'x#S#T$h#T#o#'x#o${$h${$|#'x$|4w$h4w5b#'x5b5i$h5i6S#'x6S~$h_#)xZ[X'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$hU#*pX'OSOz#+]z{#+s{!P#+]!P!Q#,X!Q#i#+]#i#j#,j#j#l#+]#l#m#.Y#m~#+]U#+dTrQ'OSOz%xz{&^{!P%x!P!Q'S!Q~%xU#+xTrQOz&pz{&^{!P&p!P!Q({!Q~&pU#,^SrQOz&p{!P&p!P!Q'c!Q~&pU#,o['OSOz%xz{&^{!P%x!P!Q'S!Q![#-e![!c%x!c!i#-e!i#T%x#T#Z#-e#Z#o%x#o#p#/r#p~%xU#-jY'OSOz%xz{&^{!P%x!P!Q'S!Q![#.Y![!c%x!c!i#.Y!i#T%x#T#Z#.Y#Z~%xU#._Y'OSOz%xz{&^{!P%x!P!Q'S!Q![#.}![!c%x!c!i#.}!i#T%x#T#Z#.}#Z~%xU#/SY'OSOz%xz{&^{!P%x!P!Q'S!Q![#+]![!c%x!c!i#+]!i#T%x#T#Z#+]#Z~%xU#/wY'OSOz%xz{&^{!P%x!P!Q'S!Q![#0g![!c%x!c!i#0g!i#T%x#T#Z#0g#Z~%xU#0l['OSOz%xz{&^{!P%x!P!Q'S!Q![#0g![!c%x!c!i#0g!i#T%x#T#Z#0g#Z#q%x#q#r#+]#r~%x_#1kZXX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#2g]'{X'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`:n!`#O$h#O#P%x#P~$h_#3kj'_Q'OS!yW'TPOY$hYZ%bZr$hrs#5]sw$hwx#5sxz$hz{)Q{!P$h!P!Q*p!Q![#'x![!c$h!c!}#'x!}#O$h#O#P%x#P#R$h#R#S#'x#S#T$h#T#o#'x#o${$h${$|#'x$|4w$h4w5b#'x5b5i$h5i6S#'x6S~$h]#5dT'OS'^XOz%xz{&^{!P%x!P!Q'S!Q~%x_#5z]'_Q'OSOY?dYZA`Zr?drsBdsw?dwx@dxz?dz{CO{!P?d!P!QDv!Q#O?d#O#PId#P~?d_#7Oi'_Q'OS!yW'TPOY$hYZ%bZr$hrs%xst#8mtz$hz{)Q{!P$h!P!Q*p!Q![#'x![!c$h!c!}#'x!}#O$h#O#P%x#P#R$h#R#S#'x#S#T$h#T#o#'x#o${$h${$|#'x$|4w$h4w5b#'x5b5i$h5i6S#'x6S~$hV#8tg'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!c$h!c!}#:]!}#O$h#O#P%x#P#R$h#R#S#:]#S#T$h#T#o#:]#o${$h${$|#:]$|4w$h4w5b#:]5b5i$h5i6S#:]6S~$hV#:fh'_Q'OS'TPOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![#:]![!c$h!c!}#:]!}#O$h#O#P%x#P#R$h#R#S#:]#S#T$h#T#o#:]#o${$h${$|#:]$|4w$h4w5b#:]5b5i$h5i6S#:]6S~$h_#U#q~$h_#>_Z'|X'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#?ZZvX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h",tokenizers:[V,T,R,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:O=>c[O]||-1}],tokenPrec:15596});var f=P(4452);const l=f.LRLanguage.define({name:"rust",parser:d.configure({props:[f.indentNodeProp.add({IfExpression:(0,f.continuedIndent)({except:/^\s*({|else\b)/}),"String BlockComment":()=>null,AttributeItem:O=>O.continue(),"Statement MatchArm":(0,f.continuedIndent)()}),f.foldNodeProp.add((O=>{if(/(Block|edTokens|List)$/.test(O.name))return f.foldInside;if(O.name=="BlockComment")return O=>({from:O.from+2,to:O.to-2});return undefined}))]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/,closeBrackets:{stringPrefixes:["b","r","br"]}}});function U(){return new f.LanguageSupport(l)}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7260.b47dcaccbe7991104e8a.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7260.b47dcaccbe7991104e8a.js deleted file mode 100644 index bd723b1f260bf60d1731af4ffc3a6fd8880afb8a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7260.b47dcaccbe7991104e8a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7260],{7260:(e,n,t)=>{t.r(n);t.d(n,{octave:()=>k});function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var a=new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]");var i=new RegExp("^[\\(\\[\\{\\},:=;\\.]");var o=new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))");var u=new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))");var c=new RegExp("^((>>=)|(<<=))");var s=new RegExp("^[\\]\\)]");var f=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*");var m=r(["error","eval","function","abs","acos","atan","asin","cos","cosh","exp","log","prod","sum","log10","max","min","sign","sin","sinh","sqrt","tan","reshape","break","zeros","default","margin","round","ones","rand","syn","ceil","floor","size","clear","zeros","eye","mean","std","cov","det","eig","inv","norm","rank","trace","expm","logm","sqrtm","linspace","plot","title","xlabel","ylabel","legend","text","grid","meshgrid","mesh","num2str","fft","ifft","arrayfun","cellfun","input","fliplr","flipud","ismember"]);var l=r(["return","case","switch","else","elseif","end","endif","endfunction","if","otherwise","do","for","while","try","catch","classdef","properties","events","methods","global","persistent","endfor","endwhile","printf","sprintf","disp","until","continue","pkg"]);function p(e,n){if(!e.sol()&&e.peek()==="'"){e.next();n.tokenize=d;return"operator"}n.tokenize=d;return d(e,n)}function h(e,n){if(e.match(/^.*%}/)){n.tokenize=d;return"comment"}e.skipToEnd();return"comment"}function d(e,n){if(e.eatSpace())return null;if(e.match("%{")){n.tokenize=h;e.skipToEnd();return"comment"}if(e.match(/^[%#]/)){e.skipToEnd();return"comment"}if(e.match(/^[0-9\.+-]/,false)){if(e.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/)){e.tokenize=d;return"number"}if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/)){return"number"}if(e.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/)){return"number"}}if(e.match(r(["nan","NaN","inf","Inf"]))){return"number"}var t=e.match(/^"(?:[^"]|"")*("|$)/)||e.match(/^'(?:[^']|'')*('|$)/);if(t){return t[1]?"string":"error"}if(e.match(l)){return"keyword"}if(e.match(m)){return"builtin"}if(e.match(f)){return"variable"}if(e.match(a)||e.match(o)){return"operator"}if(e.match(i)||e.match(u)||e.match(c)){return null}if(e.match(s)){n.tokenize=p;return null}e.next();return"error"}const k={name:"octave",startState:function(){return{tokenize:d}},token:function(e,n){var t=n.tokenize(e,n);if(t==="number"||t==="variable"){n.tokenize=p}return t},languageData:{commentTokens:{line:"%"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7269.962f078e97afc4f68e79.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7269.962f078e97afc4f68e79.js deleted file mode 100644 index aff67ac2b91c1853f6b35c09de419eb6b8571229..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7269.962f078e97afc4f68e79.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7269],{57269:(e,t,n)=>{n.r(t);n.d(t,{ttcn:()=>M});function r(e){var t={},n=e.split(" ");for(var r=0;r!\/]/;var E;function I(e,t){var n=e.next();if(n=='"'||n=="'"){t.tokenize=z(n);return t.tokenize(e,t)}if(/[\[\]{}\(\),;\\:\?\.]/.test(n)){E=n;return"punctuation"}if(n=="#"){e.skipToEnd();return"atom"}if(n=="%"){e.eatWhile(/\b/);return"atom"}if(/\d/.test(n)){e.eatWhile(/[\w\.]/);return"number"}if(n=="/"){if(e.eat("*")){t.tokenize=C;return C(e,t)}if(e.eat("/")){e.skipToEnd();return"comment"}}if(O.test(n)){if(n=="@"){if(e.match("try")||e.match("catch")||e.match("lazy")){return"keyword"}}e.eatWhile(O);return"operator"}e.eatWhile(/[\w\$_\xa1-\uffff]/);var r=e.current();if(s.propertyIsEnumerable(r))return"keyword";if(l.propertyIsEnumerable(r))return"builtin";if(u.propertyIsEnumerable(r))return"def";if(p.propertyIsEnumerable(r))return"def";if(f.propertyIsEnumerable(r))return"def";if(c.propertyIsEnumerable(r))return"def";if(m.propertyIsEnumerable(r))return"def";if(d.propertyIsEnumerable(r))return"def";if(h.propertyIsEnumerable(r))return"string";if(b.propertyIsEnumerable(r))return"string";if(y.propertyIsEnumerable(r))return"string";if(v.propertyIsEnumerable(r))return"typeName.standard";if(g.propertyIsEnumerable(r))return"modifier";if(x.propertyIsEnumerable(r))return"atom";return"variable"}function z(e){return function(t,n){var r=false,i,o=false;while((i=t.next())!=null){if(i==e&&!r){var a=t.peek();if(a){a=a.toLowerCase();if(a=="b"||a=="h"||a=="o")t.next()}o=true;break}r=!r&&i=="\\"}if(o||!(r||k))n.tokenize=null;return"string"}}function C(e,t){var n=false,r;while(r=e.next()){if(r=="/"&&n){t.tokenize=null;break}n=r=="*"}return"comment"}function L(e,t,n,r,i){this.indented=e;this.column=t;this.type=n;this.align=r;this.prev=i}function _(e,t,n){var r=e.indented;if(e.context&&e.context.type=="statement")r=e.context.indented;return e.context=new L(r,t,n,null,e.context)}function S(e){var t=e.context.type;if(t==")"||t=="]"||t=="}")e.indented=e.context.indented;return e.context=e.context.prev}const M={name:"ttcn",startState:function(){return{tokenize:null,context:new L(0,0,"top",false),indented:0,startOfLine:true}},token:function(e,t){var n=t.context;if(e.sol()){if(n.align==null)n.align=false;t.indented=e.indentation();t.startOfLine=true}if(e.eatSpace())return null;E=null;var r=(t.tokenize||I)(e,t);if(r=="comment")return r;if(n.align==null)n.align=true;if((E==";"||E==":"||E==",")&&n.type=="statement"){S(t)}else if(E=="{")_(t,e.column(),"}");else if(E=="[")_(t,e.column(),"]");else if(E=="(")_(t,e.column(),")");else if(E=="}"){while(n.type=="statement")n=S(t);if(n.type=="}")n=S(t);while(n.type=="statement")n=S(t)}else if(E==n.type)S(t);else if(w&&((n.type=="}"||n.type=="top")&&E!=";"||n.type=="statement"&&E=="newstatement"))_(t,e.column(),"statement");t.startOfLine=false;return r},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:o}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/72bc573386dd1d48c5bb.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/72bc573386dd1d48c5bb.woff deleted file mode 100644 index 9dcf84c4b62b5ce5b8f1953d5482d8431aff3eb1..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/72bc573386dd1d48c5bb.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/731.82a7b980b5b7f4b7a14f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/731.82a7b980b5b7f4b7a14f.js deleted file mode 100644 index b15d976d547ae021e9905161da2764e1d129cda5..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/731.82a7b980b5b7f4b7a14f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[731],{30731:(e,t,a)=>{a.r(t);a.d(t,{yaml:()=>n});var i=["true","false","on","off","yes","no"];var r=new RegExp("\\b(("+i.join(")|(")+"))$","i");const n={name:"yaml",token:function(e,t){var a=e.peek();var i=t.escaped;t.escaped=false;if(a=="#"&&(e.pos==0||/\s/.test(e.string.charAt(e.pos-1)))){e.skipToEnd();return"comment"}if(e.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(t.literal&&e.indentation()>t.keyCol){e.skipToEnd();return"string"}else if(t.literal){t.literal=false}if(e.sol()){t.keyCol=0;t.pair=false;t.pairStart=false;if(e.match("---")){return"def"}if(e.match("...")){return"def"}if(e.match(/^\s*-\s+/)){return"meta"}}if(e.match(/^(\{|\}|\[|\])/)){if(a=="{")t.inlinePairs++;else if(a=="}")t.inlinePairs--;else if(a=="[")t.inlineList++;else t.inlineList--;return"meta"}if(t.inlineList>0&&!i&&a==","){e.next();return"meta"}if(t.inlinePairs>0&&!i&&a==","){t.keyCol=0;t.pair=false;t.pairStart=false;e.next();return"meta"}if(t.pairStart){if(e.match(/^\s*(\||\>)\s*/)){t.literal=true;return"meta"}if(e.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i)){return"variable"}if(t.inlinePairs==0&&e.match(/^\s*-?[0-9\.\,]+\s?$/)){return"number"}if(t.inlinePairs>0&&e.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/)){return"number"}if(e.match(r)){return"keyword"}}if(!t.pair&&e.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)){t.pair=true;t.keyCol=e.indentation();return"atom"}if(t.pair&&e.match(/^:\s*/)){t.pairStart=true;return"meta"}t.pairStart=false;t.escaped=a=="\\";e.next();return null},startState:function(){return{pair:false,pairStart:false,keyCol:0,inlinePairs:0,inlineList:0,literal:false,escaped:false}},languageData:{commentTokens:{line:"#"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7318.7cc6b4b0b3151b205ecb.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7318.7cc6b4b0b3151b205ecb.js deleted file mode 100644 index 3d8d7e61defb8cc6659b2dbc7aa090b60999e774..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7318.7cc6b4b0b3151b205ecb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7318],{97318:(e,t,r)=>{r.r(t);r.d(t,{elm:()=>g});function n(e,t,r){t(r);return r(e,t)}var i=/[a-z]/;var a=/[A-Z]/;var u=/[a-zA-Z0-9_]/;var o=/[0-9]/;var f=/[0-9A-Fa-f]/;var l=/[-&*+.\\/<>=?^|:]/;var s=/[(),[\]{}]/;var c=/[ \v\f]/;function p(){return function(e,t){if(e.eatWhile(c)){return null}var r=e.next();if(s.test(r)){return r==="{"&&e.eat("-")?n(e,t,h(1)):r==="["&&e.match("glsl|")?n(e,t,w):"builtin"}if(r==="'"){return n(e,t,m)}if(r==='"'){return e.eat('"')?e.eat('"')?n(e,t,v):"string":n(e,t,k)}if(a.test(r)){e.eatWhile(u);return"type"}if(i.test(r)){var p=e.pos===1;e.eatWhile(u);return p?"def":"variable"}if(o.test(r)){if(r==="0"){if(e.eat(/[xX]/)){e.eatWhile(f);return"number"}}else{e.eatWhile(o)}if(e.eat(".")){e.eatWhile(o)}if(e.eat(/[eE]/)){e.eat(/[-+]/);e.eatWhile(o)}return"number"}if(l.test(r)){if(r==="-"&&e.eat("-")){e.skipToEnd();return"comment"}e.eatWhile(l);return"keyword"}if(r==="_"){return"keyword"}return"error"}}function h(e){if(e==0){return p()}return function(t,r){while(!t.eol()){var n=t.next();if(n=="{"&&t.eat("-")){++e}else if(n=="-"&&t.eat("}")){--e;if(e===0){r(p());return"comment"}}}r(h(e));return"comment"}}function v(e,t){while(!e.eol()){var r=e.next();if(r==='"'&&e.eat('"')&&e.eat('"')){t(p());return"string"}}return"string"}function k(e,t){while(e.skipTo('\\"')){e.next();e.next()}if(e.skipTo('"')){e.next();t(p());return"string"}e.skipToEnd();t(p());return"error"}function m(e,t){while(e.skipTo("\\'")){e.next();e.next()}if(e.skipTo("'")){e.next();t(p());return"string"}e.skipToEnd();t(p());return"error"}function w(e,t){while(!e.eol()){var r=e.next();if(r==="|"&&e.eat("]")){t(p());return"string"}}return"string"}var x={case:1,of:1,as:1,if:1,then:1,else:1,let:1,in:1,type:1,alias:1,module:1,where:1,import:1,exposing:1,port:1};const g={name:"elm",startState:function(){return{f:p()}},copyState:function(e){return{f:e.f}},token:function(e,t){var r=t.f(e,(function(e){t.f=e}));var n=e.current();return x.hasOwnProperty(n)?"keyword":r},languageData:{commentTokens:{line:"--"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7371.63b12ce793df713ab95b.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7371.63b12ce793df713ab95b.js deleted file mode 100644 index 7fbf0e2e4d0d76b5b97623ea9790e5ac25327ad1..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7371.63b12ce793df713ab95b.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7371],{26527:function(t,e,r){(function e(i,n){if(true)t.exports=n(r(41709));else{}})(this,(function(t){return(()=>{"use strict";var e={658:t=>{t.exports=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments.length,r=Array(e>1?e-1:0),i=1;i{var i=function(){function t(t,e){var r=[];var i=true;var n=false;var o=undefined;try{for(var a=t[Symbol.iterator](),s;!(i=(s=a.next()).done);i=true){r.push(s.value);if(e&&r.length===e)break}}catch(h){n=true;o=h}finally{try{if(!i&&a["return"])a["return"]()}finally{if(n)throw o}}return r}return function(e,r){if(Array.isArray(e)){return e}else if(Symbol.iterator in Object(e)){return t(e,r)}else{throw new TypeError("Invalid attempt to destructure non-iterable instance")}}}();var n=r(140).layoutBase.LinkedList;var o={};o.getTopMostNodes=function(t){var e={};for(var r=0;r0){l.merge(t)}}));for(var c=0;c1){l=s[0];c=l.connectedEdges().length;s.forEach((function(t){if(t.connectedEdges().length0){i.set("dummy"+(i.size+1),g)}}return u};o.relocateComponent=function(t,e,r){if(!r.fixedNodeConstraint){var n=Number.POSITIVE_INFINITY;var o=Number.NEGATIVE_INFINITY;var a=Number.POSITIVE_INFINITY;var s=Number.NEGATIVE_INFINITY;if(r.quality=="draft"){var h=true;var l=false;var c=undefined;try{for(var d=e.nodeIndexes[Symbol.iterator](),f;!(h=(f=d.next()).done);h=true){var g=f.value;var u=i(g,2);var p=u[0];var v=u[1];var y=r.cy.getElementById(p);if(y){var m=y.boundingBox();var E=e.xCoords[v]-m.w/2;var N=e.xCoords[v]+m.w/2;var T=e.yCoords[v]-m.h/2;var A=e.yCoords[v]+m.h/2;if(Eo)o=N;if(Ts)s=A}}}catch(C){l=true;c=C}finally{try{if(!h&&d.return){d.return()}}finally{if(l){throw c}}}var w=t.x-(o+n)/2;var L=t.y-(s+a)/2;e.xCoords=e.xCoords.map((function(t){return t+w}));e.yCoords=e.yCoords.map((function(t){return t+L}))}else{Object.keys(e).forEach((function(t){var r=e[t];var i=r.getRect().x;var h=r.getRect().x+r.getRect().width;var l=r.getRect().y;var c=r.getRect().y+r.getRect().height;if(io)o=h;if(ls)s=c}));var I=t.x-(o+n)/2;var _=t.y-(s+a)/2;Object.keys(e).forEach((function(t){var r=e[t];r.setCenter(r.getCenterX()+I,r.getCenterY()+_)}))}}};o.calcBoundingBox=function(t,e,r,i){var n=Number.MAX_SAFE_INTEGER;var o=Number.MIN_SAFE_INTEGER;var a=Number.MAX_SAFE_INTEGER;var s=Number.MIN_SAFE_INTEGER;var h=void 0;var l=void 0;var c=void 0;var d=void 0;var f=t.descendants().not(":parent");var g=f.length;for(var u=0;uh){n=h}if(oc){a=c}if(s{var i=r(548);var n=r(140).CoSELayout;var o=r(140).CoSENode;var a=r(140).layoutBase.PointD;var s=r(140).layoutBase.DimensionD;var h=r(140).layoutBase.LayoutConstants;var l=r(140).layoutBase.FDLayoutConstants;var c=r(140).CoSEConstants;var d=function t(e,r){var d=e.cy;var f=e.eles;var g=f.nodes();var u=f.edges();var p=void 0;var v=void 0;var y=void 0;var m={};if(e.randomize){p=r["nodeIndexes"];v=r["xCoords"];y=r["yCoords"]}var E=function t(e){return typeof e==="function"};var N=function t(e,r){if(E(e)){return e(r)}else{return e}};var T=i.calcParentsWithoutChildren(d,f);var A=function t(e,r,n,h){var l=r.length;for(var c=0;c0){var A=void 0;A=n.getGraphManager().add(n.newGraph(),g);t(A,f,n,h)}}};var w=function t(r,i,n){var o=0;var a=0;for(var s=0;s0)c.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=o/a;else if(!E(e.idealEdgeLength))c.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=e.idealEdgeLength;else c.DEFAULT_EDGE_LENGTH=l.DEFAULT_EDGE_LENGTH=50;c.MIN_REPULSION_DIST=l.MIN_REPULSION_DIST=l.DEFAULT_EDGE_LENGTH/10;c.DEFAULT_RADIAL_SEPARATION=l.DEFAULT_EDGE_LENGTH}};var L=function t(e,r){if(r.fixedNodeConstraint){e.constraints["fixedNodeConstraint"]=r.fixedNodeConstraint}if(r.alignmentConstraint){e.constraints["alignmentConstraint"]=r.alignmentConstraint}if(r.relativePlacementConstraint){e.constraints["relativePlacementConstraint"]=r.relativePlacementConstraint}};if(e.nestingFactor!=null)c.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=e.nestingFactor;if(e.gravity!=null)c.DEFAULT_GRAVITY_STRENGTH=l.DEFAULT_GRAVITY_STRENGTH=e.gravity;if(e.numIter!=null)c.MAX_ITERATIONS=l.MAX_ITERATIONS=e.numIter;if(e.gravityRange!=null)c.DEFAULT_GRAVITY_RANGE_FACTOR=l.DEFAULT_GRAVITY_RANGE_FACTOR=e.gravityRange;if(e.gravityCompound!=null)c.DEFAULT_COMPOUND_GRAVITY_STRENGTH=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=e.gravityCompound;if(e.gravityRangeCompound!=null)c.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=e.gravityRangeCompound;if(e.initialEnergyOnIncremental!=null)c.DEFAULT_COOLING_FACTOR_INCREMENTAL=l.DEFAULT_COOLING_FACTOR_INCREMENTAL=e.initialEnergyOnIncremental;if(e.tilingCompareBy!=null)c.TILING_COMPARE_BY=e.tilingCompareBy;if(e.quality=="proof")h.QUALITY=2;else h.QUALITY=0;c.NODE_DIMENSIONS_INCLUDE_LABELS=l.NODE_DIMENSIONS_INCLUDE_LABELS=h.NODE_DIMENSIONS_INCLUDE_LABELS=e.nodeDimensionsIncludeLabels;c.DEFAULT_INCREMENTAL=l.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!e.randomize;c.ANIMATE=l.ANIMATE=h.ANIMATE=e.animate;c.TILE=e.tile;c.TILING_PADDING_VERTICAL=typeof e.tilingPaddingVertical==="function"?e.tilingPaddingVertical.call():e.tilingPaddingVertical;c.TILING_PADDING_HORIZONTAL=typeof e.tilingPaddingHorizontal==="function"?e.tilingPaddingHorizontal.call():e.tilingPaddingHorizontal;c.DEFAULT_INCREMENTAL=l.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=true;c.PURE_INCREMENTAL=!e.randomize;h.DEFAULT_UNIFORM_LEAF_NODE_SIZES=e.uniformNodeDimensions;if(e.step=="transformed"){c.TRANSFORM_ON_CONSTRAINT_HANDLING=true;c.ENFORCE_CONSTRAINTS=false;c.APPLY_LAYOUT=false}if(e.step=="enforced"){c.TRANSFORM_ON_CONSTRAINT_HANDLING=false;c.ENFORCE_CONSTRAINTS=true;c.APPLY_LAYOUT=false}if(e.step=="cose"){c.TRANSFORM_ON_CONSTRAINT_HANDLING=false;c.ENFORCE_CONSTRAINTS=false;c.APPLY_LAYOUT=true}if(e.step=="all"){if(e.randomize)c.TRANSFORM_ON_CONSTRAINT_HANDLING=true;else c.TRANSFORM_ON_CONSTRAINT_HANDLING=false;c.ENFORCE_CONSTRAINTS=true;c.APPLY_LAYOUT=true}if(e.fixedNodeConstraint||e.alignmentConstraint||e.relativePlacementConstraint){c.TREE_REDUCTION_ON_INCREMENTAL=false}else{c.TREE_REDUCTION_ON_INCREMENTAL=true}var t=new n;var I=t.newGraphManager();A(I.addRoot(),i.getTopMostNodes(g),t,e);w(t,I,u);L(t,e);t.runLayout();return m};t.exports={coseLayout:d}},212:(t,e,r)=>{var i=function(){function t(t,e){for(var r=0;r0){if(!v){var y=r.eles.boundingBox();g.push({x:y.x1+y.w/2,y:y.y1+y.h/2});if(r.randomize){var m=h(r);o.push(m)}if(r.quality=="default"||r.quality=="proof"){d.push(c(r,o[0]));a.relocateComponent(g[0],d[0],r)}else{a.relocateComponent(g[0],o[0],r)}}else{var E=a.getTopMostNodes(r.eles.nodes());f=a.connectComponents(i,r.eles,E);f.forEach((function(t){var e=t.boundingBox();g.push({x:e.x1+e.w/2,y:e.y1+e.h/2})}));if(r.randomize){f.forEach((function(t){r.eles=t;o.push(h(r))}))}if(r.quality=="default"||r.quality=="proof"){var N=i.collection();if(r.tile){var T=new Map;var A=[];var w=[];var L=0;var I={nodeIndexes:T,xCoords:A,yCoords:w};var _=[];f.forEach((function(t,e){if(t.edges().length==0){t.nodes().forEach((function(e,r){N.merge(t.nodes()[r]);if(!e.isParent()){I.nodeIndexes.set(t.nodes()[r].id(),L++);I.xCoords.push(t.nodes()[0].position().x);I.yCoords.push(t.nodes()[0].position().y)}}));_.push(e)}}));if(N.length>1){var C=N.boundingBox();g.push({x:C.x1+C.w/2,y:C.y1+C.h/2});f.push(N);o.push(I);for(var M=_.length-1;M>=0;M--){f.splice(_[M],1);o.splice(_[M],1);g.splice(_[M],1)}}}f.forEach((function(t,e){r.eles=t;d.push(c(r,o[e]));a.relocateComponent(g[e],d[e],r)}))}else{f.forEach((function(t,e){a.relocateComponent(g[e],o[e],r)}))}var x=new Set;if(f.length>1){var O=[];var D=n.filter((function(t){return t.css("display")=="none"}));f.forEach((function(t,e){var i=void 0;if(r.quality=="draft"){i=o[e].nodeIndexes}if(t.nodes().not(D).length>0){var n={};n.edges=[];n.nodes=[];var s=void 0;t.nodes().not(D).forEach((function(t){if(r.quality=="draft"){if(!t.isParent()){s=i.get(t.id());n.nodes.push({x:o[e].xCoords[s]-t.boundingbox().w/2,y:o[e].yCoords[s]-t.boundingbox().h/2,width:t.boundingbox().w,height:t.boundingbox().h})}else{var h=a.calcBoundingBox(t,o[e].xCoords,o[e].yCoords,i);n.nodes.push({x:h.topLeftX,y:h.topLeftY,width:h.width,height:h.height})}}else{if(d[e][t.id()]){n.nodes.push({x:d[e][t.id()].getLeft(),y:d[e][t.id()].getTop(),width:d[e][t.id()].getWidth(),height:d[e][t.id()].getHeight()})}}}));t.edges().forEach((function(t){var s=t.source();var h=t.target();if(s.css("display")!="none"&&h.css("display")!="none"){if(r.quality=="draft"){var l=i.get(s.id());var c=i.get(h.id());var f=[];var g=[];if(s.isParent()){var u=a.calcBoundingBox(s,o[e].xCoords,o[e].yCoords,i);f.push(u.topLeftX+u.width/2);f.push(u.topLeftY+u.height/2)}else{f.push(o[e].xCoords[l]);f.push(o[e].yCoords[l])}if(h.isParent()){var p=a.calcBoundingBox(h,o[e].xCoords,o[e].yCoords,i);g.push(p.topLeftX+p.width/2);g.push(p.topLeftY+p.height/2)}else{g.push(o[e].xCoords[c]);g.push(o[e].yCoords[c])}n.edges.push({startX:f[0],startY:f[1],endX:g[0],endY:g[1]})}else{if(d[e][s.id()]&&d[e][h.id()]){n.edges.push({startX:d[e][s.id()].getCenterX(),startY:d[e][s.id()].getCenterY(),endX:d[e][h.id()].getCenterX(),endY:d[e][h.id()].getCenterY()})}}}}));if(n.nodes.length>0){O.push(n);x.add(e)}}}));var R=p.packComponents(O,r.randomize).shifts;if(r.quality=="draft"){o.forEach((function(t,e){var r=t.xCoords.map((function(t){return t+R[e].dx}));var i=t.yCoords.map((function(t){return t+R[e].dy}));t.xCoords=r;t.yCoords=i}))}else{var b=0;x.forEach((function(t){Object.keys(d[t]).forEach((function(e){var r=d[t][e];r.setCenter(r.getCenterX()+R[b].dx,r.getCenterY()+R[b].dy)}));b++}))}}}}var G=function t(e,i){if(r.quality=="default"||r.quality=="proof"){if(typeof e==="number"){e=i}var n=void 0;var a=void 0;var s=e.data("id");d.forEach((function(t){if(s in t){n={x:t[s].getRect().getCenterX(),y:t[s].getRect().getCenterY()};a=t[s]}}));if(r.nodeDimensionsIncludeLabels){if(a.labelWidth){if(a.labelPosHorizontal=="left"){n.x+=a.labelWidth/2}else if(a.labelPosHorizontal=="right"){n.x-=a.labelWidth/2}}if(a.labelHeight){if(a.labelPosVertical=="top"){n.y+=a.labelHeight/2}else if(a.labelPosVertical=="bottom"){n.y-=a.labelHeight/2}}}if(n==undefined)n={x:e.position("x"),y:e.position("y")};return{x:n.x,y:n.y}}else{var h=void 0;o.forEach((function(t){var r=t.nodeIndexes.get(e.id());if(r!=undefined){h={x:t.xCoords[r],y:t.yCoords[r]}}}));if(h==undefined)h={x:e.position("x"),y:e.position("y")};return{x:h.x,y:h.y}}};if(r.quality=="default"||r.quality=="proof"||r.randomize){var F=a.calcParentsWithoutChildren(i,n);var S=n.filter((function(t){return t.css("display")=="none"}));r.eles=n.not(S);n.nodes().not(":parent").not(S).layoutPositions(e,r,G);if(F.length>0){F.forEach((function(t){t.position(G(t))}))}}else{console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}}]);return t}();t.exports=f},657:(t,e,r)=>{var i=r(548);var n=r(140).layoutBase.Matrix;var o=r(140).layoutBase.SVD;var a=function t(e){var r=e.cy;var a=e.eles;var s=a.nodes();var h=a.nodes(":parent");var l=new Map;var c=new Map;var d=new Map;var f=[];var g=[];var u=[];var p=[];var v=[];var y=[];var m=[];var E=[];var N=void 0;var T=void 0;var A=1e8;var w=1e-9;var L=e.piTol;var I=e.samplingType;var _=e.nodeSeparation;var C=void 0;var M=function t(){var e=0;var r=0;var i=false;while(r=o){s=n[o++];var p=f[s];for(var m=0;md){d=v[N];g=N}}}return g};var O=function t(e){var r=void 0;if(!e){M();for(var i=0;i=1){break}d=c}for(var v=0;v=1){break}d=c}for(var N=0;N0){if(r.isParent())f[e].push(d.get(r.id()));else f[e].push(r.id())}}))}));var X=function t(e){var i=c.get(e);var n=void 0;l.get(e).forEach((function(t){if(r.getElementById(t).isParent())n=d.get(t);else n=t;f[i].push(n);f[c.get(n)].push(e)}))};var z=true;var V=false;var B=undefined;try{for(var W=l.keys()[Symbol.iterator](),j;!(z=(j=W.next()).done);z=true){var q=j.value;X(q)}}catch(nt){V=true;B=nt}finally{try{if(!z&&W.return){W.return()}}finally{if(V){throw B}}}T=c.size;var $=void 0;if(T>2){C=T{var i=r(212);var n=function t(e){if(!e){return}e("layout","fcose",i)};if(typeof cytoscape!=="undefined"){n(cytoscape)}t.exports=n},140:e=>{e.exports=t}};var r={};function i(t){var n=r[t];if(n!==undefined){return n.exports}var o=r[t]={exports:{}};e[t](o,o.exports,i);return o.exports}var n=i(579);return n})()}))},41709:function(t,e,r){(function e(i,n){if(true)t.exports=n(r(1917));else{}})(this,(function(t){return(()=>{"use strict";var e={45:(t,e,r)=>{var i={};i.layoutBase=r(551);i.CoSEConstants=r(806);i.CoSEEdge=r(767);i.CoSEGraph=r(880);i.CoSEGraphManager=r(578);i.CoSELayout=r(765);i.CoSENode=r(991);i.ConstraintHandler=r(902);t.exports=i},806:(t,e,r)=>{var i=r(551).FDLayoutConstants;function n(){}for(var o in i){n[o]=i[o]}n.DEFAULT_USE_MULTI_LEVEL_SCALING=false;n.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH;n.DEFAULT_COMPONENT_SEPERATION=60;n.TILE=true;n.TILING_PADDING_VERTICAL=10;n.TILING_PADDING_HORIZONTAL=10;n.TRANSFORM_ON_CONSTRAINT_HANDLING=true;n.ENFORCE_CONSTRAINTS=true;n.APPLY_LAYOUT=true;n.RELAX_MOVEMENT_ON_CONSTRAINTS=true;n.TREE_REDUCTION_ON_INCREMENTAL=true;n.PURE_INCREMENTAL=n.DEFAULT_INCREMENTAL;t.exports=n},767:(t,e,r)=>{var i=r(551).FDLayoutEdge;function n(t,e,r){i.call(this,t,e,r)}n.prototype=Object.create(i.prototype);for(var o in i){n[o]=i[o]}t.exports=n},880:(t,e,r)=>{var i=r(551).LGraph;function n(t,e,r){i.call(this,t,e,r)}n.prototype=Object.create(i.prototype);for(var o in i){n[o]=i[o]}t.exports=n},578:(t,e,r)=>{var i=r(551).LGraphManager;function n(t){i.call(this,t)}n.prototype=Object.create(i.prototype);for(var o in i){n[o]=i[o]}t.exports=n},765:(t,e,r)=>{var i=r(551).FDLayout;var n=r(578);var o=r(880);var a=r(991);var s=r(767);var h=r(806);var l=r(902);var c=r(551).FDLayoutConstants;var d=r(551).LayoutConstants;var f=r(551).Point;var g=r(551).PointD;var u=r(551).DimensionD;var p=r(551).Layout;var v=r(551).Integer;var y=r(551).IGeometry;var m=r(551).LGraph;var E=r(551).Transform;var N=r(551).LinkedList;function T(){i.call(this);this.toBeTiled={};this.constraints={}}T.prototype=Object.create(i.prototype);for(var A in i){T[A]=i[A]}T.prototype.newGraphManager=function(){var t=new n(this);this.graphManager=t;return t};T.prototype.newGraph=function(t){return new o(null,this.graphManager,t)};T.prototype.newNode=function(t){return new a(this.graphManager,t)};T.prototype.newEdge=function(t){return new s(null,null,t)};T.prototype.initParameters=function(){i.prototype.initParameters.call(this,arguments);if(!this.isSubLayout){if(h.DEFAULT_EDGE_LENGTH<10){this.idealEdgeLength=10}else{this.idealEdgeLength=h.DEFAULT_EDGE_LENGTH}this.useSmartIdealEdgeLengthCalculation=h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;this.gravityConstant=c.DEFAULT_GRAVITY_STRENGTH;this.compoundGravityConstant=c.DEFAULT_COMPOUND_GRAVITY_STRENGTH;this.gravityRangeFactor=c.DEFAULT_GRAVITY_RANGE_FACTOR;this.compoundGravityRangeFactor=c.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;this.prunedNodesAll=[];this.growTreeIterations=0;this.afterGrowthIterations=0;this.isTreeGrowing=false;this.isGrowthFinished=false}};T.prototype.initSpringEmbedder=function(){i.prototype.initSpringEmbedder.call(this);this.coolingCycle=0;this.maxCoolingCycle=this.maxIterations/c.CONVERGENCE_CHECK_PERIOD;this.finalTemperature=.04;this.coolingAdjuster=1};T.prototype.layout=function(){var t=d.DEFAULT_CREATE_BENDS_AS_NEEDED;if(t){this.createBendpoints();this.graphManager.resetAllEdges()}this.level=0;return this.classicLayout()};T.prototype.classicLayout=function(){this.nodesWithGravity=this.calculateNodesToApplyGravitationTo();this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);this.calcNoOfChildrenForAllNodes();this.graphManager.calcLowestCommonAncestors();this.graphManager.calcInclusionTreeDepths();this.graphManager.getRoot().calcEstimatedSize();this.calcIdealEdgeLengths();if(!this.incremental){var t=this.getFlatForest();if(t.length>0){this.positionNodesRadially(t)}else{this.reduceTrees();this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes());var r=this.nodesWithGravity.filter((function(t){return e.has(t)}));this.graphManager.setAllNodesToApplyGravitation(r);this.positionNodesRandomly()}}else{if(h.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees();this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes());var r=this.nodesWithGravity.filter((function(t){return e.has(t)}));this.graphManager.setAllNodesToApplyGravitation(r)}}if(Object.keys(this.constraints).length>0){l.handleConstraints(this);this.initConstraintVariables()}this.initSpringEmbedder();if(h.APPLY_LAYOUT){this.runSpringEmbedder()}return true};T.prototype.tick=function(){this.totalIterations++;if(this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.prunedNodesAll.length>0){this.isTreeGrowing=true}else{return true}}if(this.totalIterations%c.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(this.prunedNodesAll.length>0){this.isTreeGrowing=true}else{return true}}this.coolingCycle++;if(this.layoutQuality==0){this.coolingAdjuster=this.coolingCycle}else if(this.layoutQuality==1){this.coolingAdjuster=this.coolingCycle/3}this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature);this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0){if(this.prunedNodesAll.length>0){this.graphManager.updateBounds();this.updateGrid();this.growTree(this.prunedNodesAll);this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes());var e=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(e);this.graphManager.updateBounds();this.updateGrid();if(h.PURE_INCREMENTAL)this.coolingFactor=c.DEFAULT_COOLING_FACTOR_INCREMENTAL/2;else this.coolingFactor=c.DEFAULT_COOLING_FACTOR_INCREMENTAL}else{this.isTreeGrowing=false;this.isGrowthFinished=true}}this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged()){return true}if(this.afterGrowthIterations%10==0){this.graphManager.updateBounds();this.updateGrid()}if(h.PURE_INCREMENTAL)this.coolingFactor=c.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100);else this.coolingFactor=c.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100);this.afterGrowthIterations++}var r=!this.isTreeGrowing&&!this.isGrowthFinished;var i=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;this.totalDisplacement=0;this.graphManager.updateBounds();this.calcSpringForces();this.calcRepulsionForces(r,i);this.calcGravitationalForces();this.moveNodes();this.animate();return false};T.prototype.getPositionsData=function(){var t=this.graphManager.getAllNodes();var e={};for(var r=0;r0){this.updateDisplacements()}for(var r=0;r0){i.fixedNodeWeight=o}}}}if(this.constraints.relativePlacementConstraint){var a=new Map;var s=new Map;this.dummyToNodeForVerticalAlignment=new Map;this.dummyToNodeForHorizontalAlignment=new Map;this.fixedNodesOnHorizontal=new Set;this.fixedNodesOnVertical=new Set;this.fixedNodeSet.forEach((function(e){t.fixedNodesOnHorizontal.add(e);t.fixedNodesOnVertical.add(e)}));if(this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical){var l=this.constraints.alignmentConstraint.vertical;for(var r=0;r=2*t.length/3;i--){e=Math.floor(Math.random()*(i+1));r=t[i];t[i]=t[e];t[e]=r}return t};this.nodesInRelativeHorizontal=[];this.nodesInRelativeVertical=[];this.nodeToRelativeConstraintMapHorizontal=new Map;this.nodeToRelativeConstraintMapVertical=new Map;this.nodeToTempPositionMapHorizontal=new Map;this.nodeToTempPositionMapVertical=new Map;this.constraints.relativePlacementConstraint.forEach((function(e){if(e.left){var r=a.has(e.left)?a.get(e.left):e.left;var i=a.has(e.right)?a.get(e.right):e.right;if(!t.nodesInRelativeHorizontal.includes(r)){t.nodesInRelativeHorizontal.push(r);t.nodeToRelativeConstraintMapHorizontal.set(r,[]);if(t.dummyToNodeForVerticalAlignment.has(r)){t.nodeToTempPositionMapHorizontal.set(r,t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(r)[0]).getCenterX())}else{t.nodeToTempPositionMapHorizontal.set(r,t.idToNodeMap.get(r).getCenterX())}}if(!t.nodesInRelativeHorizontal.includes(i)){t.nodesInRelativeHorizontal.push(i);t.nodeToRelativeConstraintMapHorizontal.set(i,[]);if(t.dummyToNodeForVerticalAlignment.has(i)){t.nodeToTempPositionMapHorizontal.set(i,t.idToNodeMap.get(t.dummyToNodeForVerticalAlignment.get(i)[0]).getCenterX())}else{t.nodeToTempPositionMapHorizontal.set(i,t.idToNodeMap.get(i).getCenterX())}}t.nodeToRelativeConstraintMapHorizontal.get(r).push({right:i,gap:e.gap});t.nodeToRelativeConstraintMapHorizontal.get(i).push({left:r,gap:e.gap})}else{var n=s.has(e.top)?s.get(e.top):e.top;var o=s.has(e.bottom)?s.get(e.bottom):e.bottom;if(!t.nodesInRelativeVertical.includes(n)){t.nodesInRelativeVertical.push(n);t.nodeToRelativeConstraintMapVertical.set(n,[]);if(t.dummyToNodeForHorizontalAlignment.has(n)){t.nodeToTempPositionMapVertical.set(n,t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(n)[0]).getCenterY())}else{t.nodeToTempPositionMapVertical.set(n,t.idToNodeMap.get(n).getCenterY())}}if(!t.nodesInRelativeVertical.includes(o)){t.nodesInRelativeVertical.push(o);t.nodeToRelativeConstraintMapVertical.set(o,[]);if(t.dummyToNodeForHorizontalAlignment.has(o)){t.nodeToTempPositionMapVertical.set(o,t.idToNodeMap.get(t.dummyToNodeForHorizontalAlignment.get(o)[0]).getCenterY())}else{t.nodeToTempPositionMapVertical.set(o,t.idToNodeMap.get(o).getCenterY())}}t.nodeToRelativeConstraintMapVertical.get(n).push({bottom:o,gap:e.gap});t.nodeToRelativeConstraintMapVertical.get(o).push({top:n,gap:e.gap})}}))}else{var d=new Map;var f=new Map;this.constraints.relativePlacementConstraint.forEach((function(t){if(t.left){var e=a.has(t.left)?a.get(t.left):t.left;var r=a.has(t.right)?a.get(t.right):t.right;if(d.has(e)){d.get(e).push(r)}else{d.set(e,[r])}if(d.has(r)){d.get(r).push(e)}else{d.set(r,[e])}}else{var i=s.has(t.top)?s.get(t.top):t.top;var n=s.has(t.bottom)?s.get(t.bottom):t.bottom;if(f.has(i)){f.get(i).push(n)}else{f.set(i,[n])}if(f.has(n)){f.get(n).push(i)}else{f.set(n,[i])}}}));var g=function t(e,r){var i=[];var n=[];var o=new N;var a=new Set;var s=0;e.forEach((function(t,h){if(!a.has(h)){i[s]=[];n[s]=false;var l=h;o.push(l);a.add(l);i[s].push(l);while(o.length!=0){l=o.shift();if(r.has(l)){n[s]=true}var c=e.get(l);c.forEach((function(t){if(!a.has(t)){o.push(t);a.add(t);i[s].push(t)}}))}s++}}));return{components:i,isFixed:n}};var u=g(d,t.fixedNodesOnHorizontal);this.componentsOnHorizontal=u.components;this.fixedComponentsOnHorizontal=u.isFixed;var p=g(f,t.fixedNodesOnVertical);this.componentsOnVertical=p.components;this.fixedComponentsOnVertical=p.isFixed}}};T.prototype.updateDisplacements=function(){var t=this;if(this.constraints.fixedNodeConstraint){this.constraints.fixedNodeConstraint.forEach((function(e){var r=t.idToNodeMap.get(e.nodeId);r.displacementX=0;r.displacementY=0}))}if(this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical){var e=this.constraints.alignmentConstraint.vertical;for(var r=0;r1){var s;for(s=0;si){i=Math.floor(a.y)}o=Math.floor(a.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new g(d.WORLD_CENTER_X-a.x/2,d.WORLD_CENTER_Y-a.y/2))};T.radialLayout=function(t,e,r){var i=Math.max(this.maxDiagonalInTree(t),h.DEFAULT_RADIAL_SEPARATION);T.branchRadialLayout(e,null,0,359,0,i);var n=m.calculateBounds(t);var o=new E;o.setDeviceOrgX(n.getMinX());o.setDeviceOrgY(n.getMinY());o.setWorldOrgX(r.x);o.setWorldOrgY(r.y);for(var a=0;a1){var E=m[0];m.splice(0,1);var N=f.indexOf(E);if(N>=0){f.splice(N,1)}p--;g--}if(e!=null){v=(f.indexOf(m[0])+1)%p}else{v=0}var A=Math.abs(i-r)/g;for(var w=v;u!=g;w=++w%p){var L=f[w].getOtherEnd(t);if(L==e){continue}var I=(r+u*A)%360;var _=(I+A)%360;T.branchRadialLayout(L,t,I,_,n+o,o);u++}};T.maxDiagonalInTree=function(t){var e=v.MIN_VALUE;for(var r=0;re){e=n}}return e};T.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength};T.prototype.groupZeroDegreeMembers=function(){var t=this;var e={};this.memberGroups={};this.idToDummyNode={};var r=[];var i=this.graphManager.getAllNodes();for(var n=0;n1){var i="DummyCompound_"+r;t.memberGroups[i]=e[r];var n=e[r][0].getParent();var o=new a(t.graphManager);o.id=i;o.paddingLeft=n.paddingLeft||0;o.paddingRight=n.paddingRight||0;o.paddingBottom=n.paddingBottom||0;o.paddingTop=n.paddingTop||0;t.idToDummyNode[i]=o;var s=t.getGraphManager().add(t.newGraph(),o);var h=n.getChild();h.add(o);for(var l=0;ln){i.rect.x-=(i.labelWidth-n)/2;i.setWidth(i.labelWidth);i.labelMarginLeft=(i.labelWidth-n)/2}else if(i.labelPosHorizontal=="right"){i.setWidth(n+i.labelWidth)}}if(i.labelHeight){if(i.labelPosVertical=="top"){i.rect.y-=i.labelHeight;i.setHeight(o+i.labelHeight);i.labelMarginTop=i.labelHeight}else if(i.labelPosVertical=="center"&&i.labelHeight>o){i.rect.y-=(i.labelHeight-o)/2;i.setHeight(i.labelHeight);i.labelMarginTop=(i.labelHeight-o)/2}else if(i.labelPosVertical=="bottom"){i.setHeight(o+i.labelHeight)}}}}))};T.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;t>=0;t--){var e=this.compoundOrder[t];var r=e.id;var i=e.paddingLeft;var n=e.paddingTop;var o=e.labelMarginLeft;var a=e.labelMarginTop;this.adjustLocations(this.tiledMemberPack[r],e.rect.x,e.rect.y,i,n,o,a)}};T.prototype.repopulateZeroDegreeMembers=function(){var t=this;var e=this.tiledZeroDegreePack;Object.keys(e).forEach((function(r){var i=t.idToDummyNode[r];var n=i.paddingLeft;var o=i.paddingTop;var a=i.labelMarginLeft;var s=i.labelMarginTop;t.adjustLocations(e[r],i.rect.x,i.rect.y,n,o,a,s)}))};T.prototype.getToBeTiled=function(t){var e=t.id;if(this.toBeTiled[e]!=null){return this.toBeTiled[e]}var r=t.getChild();if(r==null){this.toBeTiled[e]=false;return false}var i=r.getNodes();for(var n=0;n0){this.toBeTiled[e]=false;return false}if(o.getChild()==null){this.toBeTiled[o.id]=false;continue}if(!this.getToBeTiled(o)){this.toBeTiled[e]=false;return false}}this.toBeTiled[e]=true;return true};T.prototype.getNodeDegree=function(t){var e=t.id;var r=t.getEdges();var i=0;for(var n=0;nc)c=f.rect.height}r+=c+t.verticalPadding}};T.prototype.tileCompoundMembers=function(t,e){var r=this;this.tiledMemberPack=[];Object.keys(t).forEach((function(i){var n=e[i];r.tiledMemberPack[i]=r.tileNodes(t[i],n.paddingLeft+n.paddingRight);n.rect.width=r.tiledMemberPack[i].width;n.rect.height=r.tiledMemberPack[i].height;n.setCenter(r.tiledMemberPack[i].centerX,r.tiledMemberPack[i].centerY);n.labelMarginLeft=0;n.labelMarginTop=0;if(h.NODE_DIMENSIONS_INCLUDE_LABELS){var o=n.rect.width;var a=n.rect.height;if(n.labelWidth){if(n.labelPosHorizontal=="left"){n.rect.x-=n.labelWidth;n.setWidth(o+n.labelWidth);n.labelMarginLeft=n.labelWidth}else if(n.labelPosHorizontal=="center"&&n.labelWidth>o){n.rect.x-=(n.labelWidth-o)/2;n.setWidth(n.labelWidth);n.labelMarginLeft=(n.labelWidth-o)/2}else if(n.labelPosHorizontal=="right"){n.setWidth(o+n.labelWidth)}}if(n.labelHeight){if(n.labelPosVertical=="top"){n.rect.y-=n.labelHeight;n.setHeight(a+n.labelHeight);n.labelMarginTop=n.labelHeight}else if(n.labelPosVertical=="center"&&n.labelHeight>a){n.rect.y-=(n.labelHeight-a)/2;n.setHeight(n.labelHeight);n.labelMarginTop=(n.labelHeight-a)/2}else if(n.labelPosVertical=="bottom"){n.setHeight(a+n.labelHeight)}}}}))};T.prototype.tileNodes=function(t,e){var r=this.tileNodesByFavoringDim(t,e,true);var i=this.tileNodesByFavoringDim(t,e,false);var n=this.getOrgRatio(r);var o=this.getOrgRatio(i);var a;if(os){s=t.getWidth()}}));var l=o/n;var c=a/n;var d=Math.pow(r-i,2)+4*(l+i)*(c+r)*n;var f=(i-r+Math.sqrt(d))/(2*(l+i));var g;if(e){g=Math.ceil(f);if(g==f){g++}}else{g=Math.floor(f)}var u=g*(l+i)-i;if(s>u){u=s}u+=i*2;return u};T.prototype.tileNodesByFavoringDim=function(t,e,r){var i=h.TILING_PADDING_VERTICAL;var n=h.TILING_PADDING_HORIZONTAL;var o=h.TILING_COMPARE_BY;var a={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:i,horizontalPadding:n,centerX:0,centerY:0};if(o){a.idealRowWidth=this.calcIdealRowWidth(t,r)}var s=function t(e){return e.rect.width*e.rect.height};var l=function t(e,r){return s(r)-s(e)};t.sort((function(t,e){var r=l;if(a.idealRowWidth){r=o;return r(t.id,e.id)}return r(t,e)}));var c=0;var d=0;for(var f=0;f0){a+=t.horizontalPadding}t.rowWidth[r]=a;if(t.width0)s+=t.verticalPadding;var h=0;if(s>t.rowHeight[r]){h=t.rowHeight[r];t.rowHeight[r]=s;h=t.rowHeight[r]-h}t.height+=h;t.rows[r].push(e)};T.prototype.getShortestRowIndex=function(t){var e=-1;var r=Number.MAX_VALUE;for(var i=0;ir){e=i;r=t.rowWidth[i]}}return e};T.prototype.canAddHorizontal=function(t,e,r){if(t.idealRowWidth){var i=t.rows.length-1;var n=t.rowWidth[i];return n+e+t.horizontalPadding<=t.idealRowWidth}var o=this.getShortestRowIndex(t);if(o<0){return true}var a=t.rowWidth[o];if(a+t.horizontalPadding+e<=t.width)return true;var s=0;if(t.rowHeight[o]0)s=r+t.verticalPadding-t.rowHeight[o]}var h;if(t.width-a>=e+t.horizontalPadding){h=(t.height+s)/(a+e+t.horizontalPadding)}else{h=(t.height+s)/t.width}s=r+t.verticalPadding;var l;if(t.widtho&&e!=r){i.splice(-1,1);t.rows[r].push(n);t.rowWidth[e]=t.rowWidth[e]-o;t.rowWidth[r]=t.rowWidth[r]+o;t.width=t.rowWidth[instance.getLongestRowIndex(t)];var a=Number.MIN_VALUE;for(var s=0;sa)a=i[s].height}if(e>0)a+=t.verticalPadding;var h=t.rowHeight[e]+t.rowHeight[r];t.rowHeight[e]=a;if(t.rowHeight[r]0){for(var p=n;p<=o;p++){u[0]+=this.grid[p][a-1].length+this.grid[p][a].length-1}}if(o0){for(var p=a;p<=s;p++){u[3]+=this.grid[n-1][p].length+this.grid[n][p].length-1}}var y=v.MAX_VALUE;var m;var E;for(var N=0;N{var i=r(551).FDLayoutNode;var n=r(551).IMath;function o(t,e,r,n){i.call(this,t,e,r,n)}o.prototype=Object.create(i.prototype);for(var a in i){o[a]=i[a]}o.prototype.calculateDisplacement=function(){var t=this.graphManager.getLayout();if(this.getChild()!=null&&this.fixedNodeWeight){this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight;this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight}else{this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren;this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren}if(Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement){this.displacementX=t.coolingFactor*t.maxNodeDisplacement*n.sign(this.displacementX)}if(Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement){this.displacementY=t.coolingFactor*t.maxNodeDisplacement*n.sign(this.displacementY)}if(this.child&&this.child.getNodes().length>0){this.propogateDisplacementToChildren(this.displacementX,this.displacementY)}};o.prototype.propogateDisplacementToChildren=function(t,e){var r=this.getChild().getNodes();var i;for(var n=0;n{function i(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e0){var i=0;e.forEach((function(t){if(r=="horizontal"){g.set(t,h.has(t)?l[h.get(t)]:a.get(t));i+=g.get(t)}else{g.set(t,h.has(t)?c[h.get(t)]:a.get(t));i+=g.get(t)}}));i=i/e.length;t.forEach((function(t){if(!n.has(t)){g.set(t,i)}}))}else{var o=0;t.forEach((function(t){if(r=="horizontal"){o+=h.has(t)?l[h.get(t)]:a.get(t)}else{o+=h.has(t)?c[h.get(t)]:a.get(t)}}));o=o/t.length;t.forEach((function(t){g.set(t,o)}))}}))}var v=function t(){var i=p.shift();var o=e.get(i);o.forEach((function(t){if(g.get(t.id)o){o=m}if(Es){s=E}}}catch(C){f=true;u=C}finally{try{if(!d&&p.return){p.return()}}finally{if(f){throw u}}}var N=(i+o)/2-(n+s)/2;var T=true;var A=false;var w=undefined;try{for(var L=t[Symbol.iterator](),I;!(T=(I=L.next()).done);T=true){var _=I.value;g.set(_,g.get(_)+N)}}catch(C){A=true;w=C}finally{try{if(!T&&L.return){L.return()}}finally{if(A){throw w}}}}))}return g};var m=function t(e){var r=0,i=0;var n=0,o=0;e.forEach((function(t){if(t.left){l[h.get(t.left)]-l[h.get(t.right)]>=0?r++:i++}else{c[h.get(t.top)]-c[h.get(t.bottom)]>=0?n++:o++}}));if(r>i&&n>o){for(var a=0;ai){for(var s=0;so){for(var d=0;d1){e.fixedNodeConstraint.forEach((function(t,e){A[e]=[t.position.x,t.position.y];w[e]=[l[h.get(t.nodeId)],c[h.get(t.nodeId)]]}));L=true}else if(e.alignmentConstraint){(function(){var t=0;if(e.alignmentConstraint.vertical){var r=e.alignmentConstraint.vertical;var n=function e(n){var o=new Set;r[n].forEach((function(t){o.add(t)}));var a=new Set([].concat(i(o)).filter((function(t){return _.has(t)})));var s=void 0;if(a.size>0)s=l[h.get(a.values().next().value)];else s=v(o).x;r[n].forEach((function(e){A[t]=[s,c[h.get(e)]];w[t]=[l[h.get(e)],c[h.get(e)]];t++}))};for(var o=0;o0)s=l[h.get(o.values().next().value)];else s=v(n).y;a[r].forEach((function(e){A[t]=[l[h.get(e)],s];w[t]=[l[h.get(e)],c[h.get(e)]];t++}))};for(var d=0;dO){O=x[R].length;D=R}}if(O0){var q={x:0,y:0};e.fixedNodeConstraint.forEach((function(t,e){var r={x:l[h.get(t.nodeId)],y:c[h.get(t.nodeId)]};var i=t.position;var n=p(i,r);q.x+=n.x;q.y+=n.y}));q.x/=e.fixedNodeConstraint.length;q.y/=e.fixedNodeConstraint.length;l.forEach((function(t,e){l[e]+=q.x}));c.forEach((function(t,e){c[e]+=q.y}));e.fixedNodeConstraint.forEach((function(t){l[h.get(t.nodeId)]=t.position.x;c[h.get(t.nodeId)]=t.position.y}))}if(e.alignmentConstraint){if(e.alignmentConstraint.vertical){var $=e.alignmentConstraint.vertical;var K=function t(e){var r=new Set;$[e].forEach((function(t){r.add(t)}));var n=new Set([].concat(i(r)).filter((function(t){return _.has(t)})));var o=void 0;if(n.size>0)o=l[h.get(n.values().next().value)];else o=v(r).x;r.forEach((function(t){if(!_.has(t))l[h.get(t)]=o}))};for(var Z=0;Z<$.length;Z++){K(Z)}}if(e.alignmentConstraint.horizontal){var Q=e.alignmentConstraint.horizontal;var J=function t(e){var r=new Set;Q[e].forEach((function(t){r.add(t)}));var n=new Set([].concat(i(r)).filter((function(t){return _.has(t)})));var o=void 0;if(n.size>0)o=c[h.get(n.values().next().value)];else o=v(r).y;r.forEach((function(t){if(!_.has(t))c[h.get(t)]=o}))};for(var tt=0;tt{e.exports=t}};var r={};function i(t){var n=r[t];if(n!==undefined){return n.exports}var o=r[t]={exports:{}};e[t](o,o.exports,i);return o.exports}var n=i(45);return n})()}))},1917:function(t){(function e(r,i){if(true)t.exports=i();else{}})(this,(function(){return function(t){var e={};function r(i){if(e[i]){return e[i].exports}var n=e[i]={i,l:false,exports:{}};t[i].call(n.exports,n,n.exports,r);n.l=true;return n.exports}r.m=t;r.c=e;r.i=function(t){return t};r.d=function(t,e,i){if(!r.o(t,e)){Object.defineProperty(t,e,{configurable:false,enumerable:true,get:i})}};r.n=function(t){var e=t&&t.__esModule?function e(){return t["default"]}:function e(){return t};r.d(e,"a",e);return e};r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};r.p="";return r(r.s=28)}([function(t,e,r){"use strict";function i(){}i.QUALITY=1;i.DEFAULT_CREATE_BENDS_AS_NEEDED=false;i.DEFAULT_INCREMENTAL=false;i.DEFAULT_ANIMATION_ON_LAYOUT=true;i.DEFAULT_ANIMATION_DURING_LAYOUT=false;i.DEFAULT_ANIMATION_PERIOD=50;i.DEFAULT_UNIFORM_LEAF_NODE_SIZES=false;i.DEFAULT_GRAPH_MARGIN=15;i.NODE_DIMENSIONS_INCLUDE_LABELS=false;i.SIMPLE_NODE_SIZE=40;i.SIMPLE_NODE_HALF_SIZE=i.SIMPLE_NODE_SIZE/2;i.EMPTY_COMPOUND_NODE_SIZE=40;i.MIN_EDGE_LENGTH=1;i.WORLD_BOUNDARY=1e6;i.INITIAL_WORLD_BOUNDARY=i.WORLD_BOUNDARY/1e3;i.WORLD_CENTER_X=1200;i.WORLD_CENTER_Y=900;t.exports=i},function(t,e,r){"use strict";var i=r(2);var n=r(8);var o=r(9);function a(t,e,r){i.call(this,r);this.isOverlapingSourceAndTarget=false;this.vGraphObject=r;this.bendpoints=[];this.source=t;this.target=e}a.prototype=Object.create(i.prototype);for(var s in i){a[s]=i[s]}a.prototype.getSource=function(){return this.source};a.prototype.getTarget=function(){return this.target};a.prototype.isInterGraph=function(){return this.isInterGraph};a.prototype.getLength=function(){return this.length};a.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget};a.prototype.getBendpoints=function(){return this.bendpoints};a.prototype.getLca=function(){return this.lca};a.prototype.getSourceInLca=function(){return this.sourceInLca};a.prototype.getTargetInLca=function(){return this.targetInLca};a.prototype.getOtherEnd=function(t){if(this.source===t){return this.target}else if(this.target===t){return this.source}else{throw"Node is not incident with this edge"}};a.prototype.getOtherEndInGraph=function(t,e){var r=this.getOtherEnd(t);var i=e.getGraphManager().getRoot();while(true){if(r.getOwner()==e){return r}if(r.getOwner()==i){break}r=r.getOwner().getParent()}return null};a.prototype.updateLength=function(){var t=new Array(4);this.isOverlapingSourceAndTarget=n.getIntersection(this.target.getRect(),this.source.getRect(),t);if(!this.isOverlapingSourceAndTarget){this.lengthX=t[0]-t[2];this.lengthY=t[1]-t[3];if(Math.abs(this.lengthX)<1){this.lengthX=o.sign(this.lengthX)}if(Math.abs(this.lengthY)<1){this.lengthY=o.sign(this.lengthY)}this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)}};a.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX();this.lengthY=this.target.getCenterY()-this.source.getCenterY();if(Math.abs(this.lengthX)<1){this.lengthX=o.sign(this.lengthX)}if(Math.abs(this.lengthY)<1){this.lengthY=o.sign(this.lengthY)}this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)};t.exports=a},function(t,e,r){"use strict";function i(t){this.vGraphObject=t}t.exports=i},function(t,e,r){"use strict";var i=r(2);var n=r(10);var o=r(13);var a=r(0);var s=r(16);var h=r(5);function l(t,e,r,a){if(r==null&&a==null){a=e}i.call(this,a);if(t.graphManager!=null)t=t.graphManager;this.estimatedSize=n.MIN_VALUE;this.inclusionTreeDepth=n.MAX_VALUE;this.vGraphObject=a;this.edges=[];this.graphManager=t;if(r!=null&&e!=null)this.rect=new o(e.x,e.y,r.width,r.height);else this.rect=new o}l.prototype=Object.create(i.prototype);for(var c in i){l[c]=i[c]}l.prototype.getEdges=function(){return this.edges};l.prototype.getChild=function(){return this.child};l.prototype.getOwner=function(){return this.owner};l.prototype.getWidth=function(){return this.rect.width};l.prototype.setWidth=function(t){this.rect.width=t};l.prototype.getHeight=function(){return this.rect.height};l.prototype.setHeight=function(t){this.rect.height=t};l.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2};l.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2};l.prototype.getCenter=function(){return new h(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)};l.prototype.getLocation=function(){return new h(this.rect.x,this.rect.y)};l.prototype.getRect=function(){return this.rect};l.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)};l.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2};l.prototype.setRect=function(t,e){this.rect.x=t.x;this.rect.y=t.y;this.rect.width=e.width;this.rect.height=e.height};l.prototype.setCenter=function(t,e){this.rect.x=t-this.rect.width/2;this.rect.y=e-this.rect.height/2};l.prototype.setLocation=function(t,e){this.rect.x=t;this.rect.y=e};l.prototype.moveBy=function(t,e){this.rect.x+=t;this.rect.y+=e};l.prototype.getEdgeListToNode=function(t){var e=[];var r;var i=this;i.edges.forEach((function(r){if(r.target==t){if(r.source!=i)throw"Incorrect edge source!";e.push(r)}}));return e};l.prototype.getEdgesBetween=function(t){var e=[];var r;var i=this;i.edges.forEach((function(r){if(!(r.source==i||r.target==i))throw"Incorrect edge source and/or target";if(r.target==t||r.source==t){e.push(r)}}));return e};l.prototype.getNeighborsList=function(){var t=new Set;var e=this;e.edges.forEach((function(r){if(r.source==e){t.add(r.target)}else{if(r.target!=e){throw"Incorrect incidency!"}t.add(r.source)}}));return t};l.prototype.withChildren=function(){var t=new Set;var e;var r;t.add(this);if(this.child!=null){var i=this.child.getNodes();for(var n=0;ne){this.rect.x-=(this.labelWidth-e)/2;this.setWidth(this.labelWidth)}else if(this.labelPosHorizontal=="right"){this.setWidth(e+this.labelWidth)}}if(this.labelHeight){if(this.labelPosVertical=="top"){this.rect.y-=this.labelHeight;this.setHeight(r+this.labelHeight)}else if(this.labelPosVertical=="center"&&this.labelHeight>r){this.rect.y-=(this.labelHeight-r)/2;this.setHeight(this.labelHeight)}else if(this.labelPosVertical=="bottom"){this.setHeight(r+this.labelHeight)}}}}};l.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==n.MAX_VALUE){throw"assert failed"}return this.inclusionTreeDepth};l.prototype.transform=function(t){var e=this.rect.x;if(e>a.WORLD_BOUNDARY){e=a.WORLD_BOUNDARY}else if(e<-a.WORLD_BOUNDARY){e=-a.WORLD_BOUNDARY}var r=this.rect.y;if(r>a.WORLD_BOUNDARY){r=a.WORLD_BOUNDARY}else if(r<-a.WORLD_BOUNDARY){r=-a.WORLD_BOUNDARY}var i=new h(e,r);var n=t.inverseTransformPoint(i);this.setLocation(n.x,n.y)};l.prototype.getLeft=function(){return this.rect.x};l.prototype.getRight=function(){return this.rect.x+this.rect.width};l.prototype.getTop=function(){return this.rect.y};l.prototype.getBottom=function(){return this.rect.y+this.rect.height};l.prototype.getParent=function(){if(this.owner==null){return null}return this.owner.getParent()};t.exports=l},function(t,e,r){"use strict";var i=r(0);function n(){}for(var o in i){n[o]=i[o]}n.MAX_ITERATIONS=2500;n.DEFAULT_EDGE_LENGTH=50;n.DEFAULT_SPRING_STRENGTH=.45;n.DEFAULT_REPULSION_STRENGTH=4500;n.DEFAULT_GRAVITY_STRENGTH=.4;n.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1;n.DEFAULT_GRAVITY_RANGE_FACTOR=3.8;n.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5;n.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=true;n.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=true;n.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3;n.COOLING_ADAPTATION_FACTOR=.33;n.ADAPTATION_LOWER_NODE_LIMIT=1e3;n.ADAPTATION_UPPER_NODE_LIMIT=5e3;n.MAX_NODE_DISPLACEMENT_INCREMENTAL=100;n.MAX_NODE_DISPLACEMENT=n.MAX_NODE_DISPLACEMENT_INCREMENTAL*3;n.MIN_REPULSION_DIST=n.DEFAULT_EDGE_LENGTH/10;n.CONVERGENCE_CHECK_PERIOD=100;n.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1;n.MIN_EDGE_LENGTH=1;n.GRID_CALCULATION_CHECK_PERIOD=10;t.exports=n},function(t,e,r){"use strict";function i(t,e){if(t==null&&e==null){this.x=0;this.y=0}else{this.x=t;this.y=e}}i.prototype.getX=function(){return this.x};i.prototype.getY=function(){return this.y};i.prototype.setX=function(t){this.x=t};i.prototype.setY=function(t){this.y=t};i.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)};i.prototype.getCopy=function(){return new i(this.x,this.y)};i.prototype.translate=function(t){this.x+=t.width;this.y+=t.height;return this};t.exports=i},function(t,e,r){"use strict";var i=r(2);var n=r(10);var o=r(0);var a=r(7);var s=r(3);var h=r(1);var l=r(13);var c=r(12);var d=r(11);function f(t,e,r){i.call(this,r);this.estimatedSize=n.MIN_VALUE;this.margin=o.DEFAULT_GRAPH_MARGIN;this.edges=[];this.nodes=[];this.isConnected=false;this.parent=t;if(e!=null&&e instanceof a){this.graphManager=e}else if(e!=null&&e instanceof Layout){this.graphManager=e.graphManager}}f.prototype=Object.create(i.prototype);for(var g in i){f[g]=i[g]}f.prototype.getNodes=function(){return this.nodes};f.prototype.getEdges=function(){return this.edges};f.prototype.getGraphManager=function(){return this.graphManager};f.prototype.getParent=function(){return this.parent};f.prototype.getLeft=function(){return this.left};f.prototype.getRight=function(){return this.right};f.prototype.getTop=function(){return this.top};f.prototype.getBottom=function(){return this.bottom};f.prototype.isConnected=function(){return this.isConnected};f.prototype.add=function(t,e,r){if(e==null&&r==null){var i=t;if(this.graphManager==null){throw"Graph has no graph mgr!"}if(this.getNodes().indexOf(i)>-1){throw"Node already in graph!"}i.owner=this;this.getNodes().push(i);return i}else{var n=t;if(!(this.getNodes().indexOf(e)>-1&&this.getNodes().indexOf(r)>-1)){throw"Source or target not in graph!"}if(!(e.owner==r.owner&&e.owner==this)){throw"Both owners must be this graph!"}if(e.owner!=r.owner){return null}n.source=e;n.target=r;n.isInterGraph=false;this.getEdges().push(n);e.edges.push(n);if(r!=e){r.edges.push(n)}return n}};f.prototype.remove=function(t){var e=t;if(t instanceof s){if(e==null){throw"Node is null!"}if(!(e.owner!=null&&e.owner==this)){throw"Owner graph is invalid!"}if(this.graphManager==null){throw"Owner graph manager is invalid!"}var r=e.edges.slice();var i;var n=r.length;for(var o=0;o-1&&c>-1)){throw"Source and/or target doesn't know this edge!"}i.source.edges.splice(l,1);if(i.target!=i.source){i.target.edges.splice(c,1)}var a=i.source.owner.getEdges().indexOf(i);if(a==-1){throw"Not in owner's edge list!"}i.source.owner.getEdges().splice(a,1)}};f.prototype.updateLeftTop=function(){var t=n.MAX_VALUE;var e=n.MAX_VALUE;var r;var i;var o;var a=this.getNodes();var s=a.length;for(var h=0;hr){t=r}if(e>i){e=i}}if(t==n.MAX_VALUE){return null}if(a[0].getParent().paddingLeft!=undefined){o=a[0].getParent().paddingLeft}else{o=this.margin}this.left=e-o;this.top=t-o;return new c(this.left,this.top)};f.prototype.updateBounds=function(t){var e=n.MAX_VALUE;var r=-n.MAX_VALUE;var i=n.MAX_VALUE;var o=-n.MAX_VALUE;var a;var s;var h;var c;var d;var f=this.nodes;var g=f.length;for(var u=0;ua){e=a}if(rh){i=h}if(oa){e=a}if(rh){i=h}if(o=this.nodes.length){var f=0;r.forEach((function(e){if(e.owner==t){f++}}));if(f==this.nodes.length){this.isConnected=true}}};t.exports=f},function(t,e,r){"use strict";var i;var n=r(1);function o(t){i=r(6);this.layout=t;this.graphs=[];this.edges=[]}o.prototype.addRoot=function(){var t=this.layout.newGraph();var e=this.layout.newNode(null);var r=this.add(t,e);this.setRootGraph(r);return this.rootGraph};o.prototype.add=function(t,e,r,i,n){if(r==null&&i==null&&n==null){if(t==null){throw"Graph is null!"}if(e==null){throw"Parent node is null!"}if(this.graphs.indexOf(t)>-1){throw"Graph already in this graph mgr!"}this.graphs.push(t);if(t.parent!=null){throw"Already has a parent!"}if(e.child!=null){throw"Already has a child!"}t.parent=e;e.child=t;return t}else{n=r;i=e;r=t;var o=i.getOwner();var a=n.getOwner();if(!(o!=null&&o.getGraphManager()==this)){throw"Source not in this graph mgr!"}if(!(a!=null&&a.getGraphManager()==this)){throw"Target not in this graph mgr!"}if(o==a){r.isInterGraph=false;return o.add(r,i,n)}else{r.isInterGraph=true;r.source=i;r.target=n;if(this.edges.indexOf(r)>-1){throw"Edge already in inter-graph edge list!"}this.edges.push(r);if(!(r.source!=null&&r.target!=null)){throw"Edge source and/or target is null!"}if(!(r.source.edges.indexOf(r)==-1&&r.target.edges.indexOf(r)==-1)){throw"Edge already in source and/or target incidency list!"}r.source.edges.push(r);r.target.edges.push(r);return r}}};o.prototype.remove=function(t){if(t instanceof i){var e=t;if(e.getGraphManager()!=this){throw"Graph not in this graph mgr"}if(!(e==this.rootGraph||e.parent!=null&&e.parent.graphManager==this)){throw"Invalid parent node!"}var r=[];r=r.concat(e.getEdges());var o;var a=r.length;for(var s=0;s=e.getRight()){r[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight())}else if(e.getX()<=t.getX()&&e.getRight()>=t.getRight()){r[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())}if(t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()){r[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom())}else if(e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()){r[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom())}var o=Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()));if(e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()){o=1}var a=o*r[0];var s=r[1]/o;if(r[0]a){r[0]=i;r[1]=h;r[2]=o;r[3]=E;return false}else if(no){r[0]=s;r[1]=n;r[2]=y;r[3]=a;return false}else if(io){r[0]=c;r[1]=d;w=true}else{r[0]=l;r[1]=h;w=true}}else if(I===C){if(i>o){r[0]=s;r[1]=h;w=true}else{r[0]=f;r[1]=d;w=true}}if(-_===C){if(o>i){r[2]=m;r[3]=E;L=true}else{r[2]=y;r[3]=v;L=true}}else if(_===C){if(o>i){r[2]=p;r[3]=v;L=true}else{r[2]=N;r[3]=E;L=true}}if(w&&L){return false}if(i>o){if(n>a){M=this.getCardinalDirection(I,C,4);x=this.getCardinalDirection(_,C,2)}else{M=this.getCardinalDirection(-I,C,3);x=this.getCardinalDirection(-_,C,1)}}else{if(n>a){M=this.getCardinalDirection(-I,C,1);x=this.getCardinalDirection(-_,C,3)}else{M=this.getCardinalDirection(I,C,2);x=this.getCardinalDirection(_,C,4)}}if(!w){switch(M){case 1:D=h;O=i+-u/C;r[0]=O;r[1]=D;break;case 2:O=f;D=n+g*C;r[0]=O;r[1]=D;break;case 3:D=d;O=i+u/C;r[0]=O;r[1]=D;break;case 4:O=c;D=n+-g*C;r[0]=O;r[1]=D;break}}if(!L){switch(x){case 1:b=v;R=o+-A/C;r[2]=R;r[3]=b;break;case 2:R=N;b=a+T*C;r[2]=R;r[3]=b;break;case 3:b=E;R=o+A/C;r[2]=R;r[3]=b;break;case 4:R=m;b=a+-T*C;r[2]=R;r[3]=b;break}}}return false};n.getCardinalDirection=function(t,e,r){if(t>e){return r}else{return 1+r%4}};n.getIntersection=function(t,e,r,n){if(n==null){return this.getIntersection2(t,e,r)}var o=t.x;var a=t.y;var s=e.x;var h=e.y;var l=r.x;var c=r.y;var d=n.x;var f=n.y;var g=void 0,u=void 0;var p=void 0,v=void 0,y=void 0,m=void 0,E=void 0,N=void 0;var T=void 0;p=h-a;y=o-s;E=s*a-o*h;v=f-c;m=l-d;N=d*c-l*f;T=p*m-v*y;if(T===0){return null}g=(y*N-m*E)/T;u=(v*E-p*N)/T;return new i(g,u)};n.angleOfVector=function(t,e,r,i){var n=void 0;if(t!==r){n=Math.atan((i-e)/(r-t));if(r=0){var d=(-h+Math.sqrt(h*h-4*s*l))/(2*s);var f=(-h-Math.sqrt(h*h-4*s*l))/(2*s);var g=null;if(d>=0&&d<=1){return[d]}if(f>=0&&f<=1){return[f]}return g}else return null};n.HALF_PI=.5*Math.PI;n.ONE_AND_HALF_PI=1.5*Math.PI;n.TWO_PI=2*Math.PI;n.THREE_PI=3*Math.PI;t.exports=n},function(t,e,r){"use strict";function i(){}i.sign=function(t){if(t>0){return 1}else if(t<0){return-1}else{return 0}};i.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)};i.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)};t.exports=i},function(t,e,r){"use strict";function i(){}i.MAX_VALUE=2147483647;i.MIN_VALUE=-2147483648;t.exports=i},function(t,e,r){"use strict";var i=function(){function t(t,e){for(var r=0;r0&&e){s.push(l[0]);while(s.length>0&&e){var c=s[0];s.splice(0,1);a.add(c);var d=c.getEdges();for(var o=0;o-1){l.splice(p,1)}}a=new Set;h=new Map}}return t};f.prototype.createDummyNodesForBendpoints=function(t){var e=[];var r=t.source;var i=this.graphManager.calcLowestCommonAncestor(t.source,t.target);for(var n=0;n0){var n=this.edgeToDummyNodes.get(r);for(var o=0;o=0){e.splice(d,1)}var f=s.getNeighborsList();f.forEach((function(t){if(r.indexOf(t)<0){var e=i.get(t);var n=e-1;if(n==1){l.push(t)}i.set(t,n)}}))}r=r.concat(l);if(e.length==1||e.length==2){n=true;o=e[0]}}return o};f.prototype.setGraphManager=function(t){this.graphManager=t};t.exports=f},function(t,e,r){"use strict";function i(){}i.seed=1;i.x=0;i.nextDouble=function(){i.x=Math.sin(i.seed++)*1e4;return i.x-Math.floor(i.x)};t.exports=i},function(t,e,r){"use strict";var i=r(5);function n(t,e){this.lworldOrgX=0;this.lworldOrgY=0;this.ldeviceOrgX=0;this.ldeviceOrgY=0;this.lworldExtX=1;this.lworldExtY=1;this.ldeviceExtX=1;this.ldeviceExtY=1}n.prototype.getWorldOrgX=function(){return this.lworldOrgX};n.prototype.setWorldOrgX=function(t){this.lworldOrgX=t};n.prototype.getWorldOrgY=function(){return this.lworldOrgY};n.prototype.setWorldOrgY=function(t){this.lworldOrgY=t};n.prototype.getWorldExtX=function(){return this.lworldExtX};n.prototype.setWorldExtX=function(t){this.lworldExtX=t};n.prototype.getWorldExtY=function(){return this.lworldExtY};n.prototype.setWorldExtY=function(t){this.lworldExtY=t};n.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX};n.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t};n.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY};n.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t};n.prototype.getDeviceExtX=function(){return this.ldeviceExtX};n.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t};n.prototype.getDeviceExtY=function(){return this.ldeviceExtY};n.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t};n.prototype.transformX=function(t){var e=0;var r=this.lworldExtX;if(r!=0){e=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/r}return e};n.prototype.transformY=function(t){var e=0;var r=this.lworldExtY;if(r!=0){e=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/r}return e};n.prototype.inverseTransformX=function(t){var e=0;var r=this.ldeviceExtX;if(r!=0){e=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/r}return e};n.prototype.inverseTransformY=function(t){var e=0;var r=this.ldeviceExtY;if(r!=0){e=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/r}return e};n.prototype.inverseTransformPoint=function(t){var e=new i(this.inverseTransformX(t.x),this.inverseTransformY(t.y));return e};t.exports=n},function(t,e,r){"use strict";function i(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);eo.ADAPTATION_LOWER_NODE_LIMIT){this.coolingFactor=Math.max(this.coolingFactor*o.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-o.ADAPTATION_LOWER_NODE_LIMIT)/(o.ADAPTATION_UPPER_NODE_LIMIT-o.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-o.COOLING_ADAPTATION_FACTOR))}this.maxNodeDisplacement=o.MAX_NODE_DISPLACEMENT_INCREMENTAL}else{if(t>o.ADAPTATION_LOWER_NODE_LIMIT){this.coolingFactor=Math.max(o.COOLING_ADAPTATION_FACTOR,1-(t-o.ADAPTATION_LOWER_NODE_LIMIT)/(o.ADAPTATION_UPPER_NODE_LIMIT-o.ADAPTATION_LOWER_NODE_LIMIT)*(1-o.COOLING_ADAPTATION_FACTOR))}else{this.coolingFactor=1}this.initialCoolingFactor=this.coolingFactor;this.maxNodeDisplacement=o.MAX_NODE_DISPLACEMENT}this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations);this.displacementThresholdPerNode=3*o.DEFAULT_EDGE_LENGTH/100;this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length;this.repulsionRange=this.calcRepulsionRange()};l.prototype.calcSpringForces=function(){var t=this.getAllEdges();var e;for(var r=0;r0&&arguments[0]!==undefined?arguments[0]:true;var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var r,i;var n,a;var s=this.getAllNodes();var h;if(this.useFRGridVariant){if(this.totalIterations%o.GRID_CALCULATION_CHECK_PERIOD==1&&t){this.updateGrid()}h=new Set;for(r=0;rh||s>h){t.gravitationForceX=-this.gravityConstant*n;t.gravitationForceY=-this.gravityConstant*o}}else{h=e.getEstimatedSize()*this.compoundGravityRangeFactor;if(a>h||s>h){t.gravitationForceX=-this.gravityConstant*n*this.compoundGravityConstant;t.gravitationForceY=-this.gravityConstant*o*this.compoundGravityConstant}}};l.prototype.isConverged=function(){var t;var e=false;if(this.totalIterations>this.maxIterations/3){e=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2}t=this.totalDisplacement=h.length||c>=h[0].length)){for(var d=0;de}}]);return t}();t.exports=a},function(t,e,r){"use strict";function i(){}i.svd=function(t){this.U=null;this.V=null;this.s=null;this.m=0;this.n=0;this.m=t.length;this.n=t[0].length;var e=Math.min(this.m,this.n);this.s=function(t){var e=[];while(t-- >0){e.push(0)}return e}(Math.min(this.m+1,this.n));this.U=function(t){var e=function t(e){if(e.length==0){return 0}else{var r=[];for(var i=0;i0){e.push(0)}return e}(this.n);var n=function(t){var e=[];while(t-- >0){e.push(0)}return e}(this.m);var o=true;var a=true;var s=Math.min(this.m-1,this.n);var h=Math.max(0,Math.min(this.n-2,this.m));for(var l=0;l=0;x--){if(this.s[x]!==0){for(var O=x+1;O=0;P--){if(function(t,e){return t&&e}(P0){var j=void 0;var q=void 0;for(j=_-2;j>=-1;j--){if(j===-1){break}if(Math.abs(r[j])<=W+B*(Math.abs(this.s[j])+Math.abs(this.s[j+1]))){r[j]=0;break}}if(j===_-2){q=4}else{var $=void 0;for($=_-1;$>=j;$--){if($===j){break}var K=($!==_?Math.abs(r[$]):0)+($!==j+1?Math.abs(r[$-1]):0);if(Math.abs(this.s[$])<=W+B*K){this.s[$]=0;break}}if($===j){q=3}else if($===_-1){q=1}else{q=2;j=$}}j++;switch(q){case 1:{var Z=r[_-2];r[_-2]=0;for(var Q=_-2;Q>=j;Q--){var J=i.hypot(this.s[Q],Z);var tt=this.s[Q]/J;var et=Z/J;this.s[Q]=J;if(Q!==j){Z=-et*r[Q-1];r[Q-1]=tt*r[Q-1]}if(a){for(var rt=0;rt=this.s[j+1]){break}var Ct=this.s[j];this.s[j]=this.s[j+1];this.s[j+1]=Ct;if(a&&jMath.abs(e)){r=e/t;r=Math.abs(t)*Math.sqrt(1+r*r)}else if(e!=0){r=t/e;r=Math.abs(e)*Math.sqrt(1+r*r)}else{r=0}return r};t.exports=i},function(t,e,r){"use strict";var i=function(){function t(t,e){for(var r=0;r2&&arguments[2]!==undefined?arguments[2]:1;var o=arguments.length>3&&arguments[3]!==undefined?arguments[3]:-1;var a=arguments.length>4&&arguments[4]!==undefined?arguments[4]:-1;n(this,t);this.sequence1=e;this.sequence2=r;this.match_score=i;this.mismatch_penalty=o;this.gap_penalty=a;this.iMax=e.length+1;this.jMax=r.length+1;this.grid=new Array(this.iMax);for(var s=0;s=0;r--){var i=this.listeners[r];if(i.event===t&&i.callback===e){this.listeners.splice(r,1)}}};n.emit=function(t,e){for(var r=0;r{"use strict";r.d(e,{diagram:()=>yt});var i=r(68232);var n=r(76261);var o=r(19163);var a=r(13249);var s=r(96049);var h=r(93113);var l=r(75905);var c=r(24010);var d=r(76405);var f=r(26527);var g=r.n(f);var u=r(24982);var p={L:"left",R:"right",T:"top",B:"bottom"};var v={L:(0,l.K2)((t=>`${t},${t/2} 0,${t} 0,0`),"L"),R:(0,l.K2)((t=>`0,${t/2} ${t},0 ${t},${t}`),"R"),T:(0,l.K2)((t=>`0,0 ${t},0 ${t/2},${t}`),"T"),B:(0,l.K2)((t=>`${t/2},0 ${t},${t} 0,${t}`),"B")};var y={L:(0,l.K2)(((t,e)=>t-e+2),"L"),R:(0,l.K2)(((t,e)=>t-2),"R"),T:(0,l.K2)(((t,e)=>t-e+2),"T"),B:(0,l.K2)(((t,e)=>t-2),"B")};var m=(0,l.K2)((function(t){if(N(t)){return t==="L"?"R":"L"}else{return t==="T"?"B":"T"}}),"getOppositeArchitectureDirection");var E=(0,l.K2)((function(t){const e=t;return e==="L"||e==="R"||e==="T"||e==="B"}),"isArchitectureDirection");var N=(0,l.K2)((function(t){const e=t;return e==="L"||e==="R"}),"isArchitectureDirectionX");var T=(0,l.K2)((function(t){const e=t;return e==="T"||e==="B"}),"isArchitectureDirectionY");var A=(0,l.K2)((function(t,e){const r=N(t)&&T(e);const i=T(t)&&N(e);return r||i}),"isArchitectureDirectionXY");var w=(0,l.K2)((function(t){const e=t[0];const r=t[1];const i=N(e)&&T(r);const n=T(e)&&N(r);return i||n}),"isArchitecturePairXY");var L=(0,l.K2)((function(t){return t!=="LL"&&t!=="RR"&&t!=="TT"&&t!=="BB"}),"isValidArchitectureDirectionPair");var I=(0,l.K2)((function(t,e){const r=`${t}${e}`;return L(r)?r:void 0}),"getArchitectureDirectionPair");var _=(0,l.K2)((function([t,e],r){const i=r[0];const n=r[1];if(N(i)){if(T(n)){return[t+(i==="L"?-1:1),e+(n==="T"?1:-1)]}else{return[t+(i==="L"?-1:1),e]}}else{if(N(n)){return[t+(n==="L"?1:-1),e+(i==="T"?1:-1)]}else{return[t,e+(i==="T"?1:-1)]}}}),"shiftPositionByArchitectureDirectionPair");var C=(0,l.K2)((function(t){if(t==="LT"||t==="TL"){return[1,1]}else if(t==="BL"||t==="LB"){return[1,-1]}else if(t==="BR"||t==="RB"){return[-1,-1]}else{return[-1,1]}}),"getArchitectureDirectionXYFactors");var M=(0,l.K2)((function(t,e){if(A(t,e)){return"bend"}else if(N(t)){return"horizontal"}return"vertical"}),"getArchitectureDirectionAlignment");var x=(0,l.K2)((function(t){const e=t;return e.type==="service"}),"isArchitectureService");var O=(0,l.K2)((function(t){const e=t;return e.type==="junction"}),"isArchitectureJunction");var D=(0,l.K2)((t=>t.data()),"edgeData");var R=(0,l.K2)((t=>t.data()),"nodeData");var b=l.UI.architecture;var G=new a.m((()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:b,dataStructures:void 0,elements:{}})));var F=(0,l.K2)((()=>{G.reset();(0,l.IU)()}),"clear");var S=(0,l.K2)((function({id:t,icon:e,in:r,title:i,iconText:n}){if(G.records.registeredIds[t]!==void 0){throw new Error(`The service id [${t}] is already in use by another ${G.records.registeredIds[t]}`)}if(r!==void 0){if(t===r){throw new Error(`The service [${t}] cannot be placed within itself`)}if(G.records.registeredIds[r]===void 0){throw new Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`)}if(G.records.registeredIds[r]==="node"){throw new Error(`The service [${t}]'s parent is not a group`)}}G.records.registeredIds[t]="node";G.records.nodes[t]={id:t,type:"service",icon:e,iconText:n,title:i,edges:[],in:r}}),"addService");var P=(0,l.K2)((()=>Object.values(G.records.nodes).filter(x)),"getServices");var U=(0,l.K2)((function({id:t,in:e}){G.records.registeredIds[t]="node";G.records.nodes[t]={id:t,type:"junction",edges:[],in:e}}),"addJunction");var k=(0,l.K2)((()=>Object.values(G.records.nodes).filter(O)),"getJunctions");var Y=(0,l.K2)((()=>Object.values(G.records.nodes)),"getNodes");var H=(0,l.K2)((t=>G.records.nodes[t]),"getNode");var X=(0,l.K2)((function({id:t,icon:e,in:r,title:i}){if(G.records.registeredIds[t]!==void 0){throw new Error(`The group id [${t}] is already in use by another ${G.records.registeredIds[t]}`)}if(r!==void 0){if(t===r){throw new Error(`The group [${t}] cannot be placed within itself`)}if(G.records.registeredIds[r]===void 0){throw new Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`)}if(G.records.registeredIds[r]==="node"){throw new Error(`The group [${t}]'s parent is not a group`)}}G.records.registeredIds[t]="group";G.records.groups[t]={id:t,icon:e,title:i,in:r}}),"addGroup");var z=(0,l.K2)((()=>Object.values(G.records.groups)),"getGroups");var V=(0,l.K2)((function({lhsId:t,rhsId:e,lhsDir:r,rhsDir:i,lhsInto:n,rhsInto:o,lhsGroup:a,rhsGroup:s,title:h}){if(!E(r)){throw new Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${r}`)}if(!E(i)){throw new Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${i}`)}if(G.records.nodes[t]===void 0&&G.records.groups[t]===void 0){throw new Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`)}if(G.records.nodes[e]===void 0&&G.records.groups[t]===void 0){throw new Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`)}const l=G.records.nodes[t].in;const c=G.records.nodes[e].in;if(a&&l&&c&&l==c){throw new Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`)}if(s&&l&&c&&l==c){throw new Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`)}const d={lhsId:t,lhsDir:r,lhsInto:n,lhsGroup:a,rhsId:e,rhsDir:i,rhsInto:o,rhsGroup:s,title:h};G.records.edges.push(d);if(G.records.nodes[t]&&G.records.nodes[e]){G.records.nodes[t].edges.push(G.records.edges[G.records.edges.length-1]);G.records.nodes[e].edges.push(G.records.edges[G.records.edges.length-1])}}),"addEdge");var B=(0,l.K2)((()=>G.records.edges),"getEdges");var W=(0,l.K2)((()=>{if(G.records.dataStructures===void 0){const t={};const e=Object.entries(G.records.nodes).reduce(((e,[r,i])=>{e[r]=i.edges.reduce(((e,i)=>{const n=H(i.lhsId)?.in;const o=H(i.rhsId)?.in;if(n&&o&&n!==o){const e=M(i.lhsDir,i.rhsDir);if(e!=="bend"){t[n]??={};t[n][o]=e;t[o]??={};t[o][n]=e}}if(i.lhsId===r){const t=I(i.lhsDir,i.rhsDir);if(t){e[t]=i.rhsId}}else{const t=I(i.rhsDir,i.lhsDir);if(t){e[t]=i.lhsId}}return e}),{});return e}),{});const r=Object.keys(e)[0];const i={[r]:1};const n=Object.keys(e).reduce(((t,e)=>e===r?t:{...t,[e]:1}),{});const o=(0,l.K2)((t=>{const r={[t]:[0,0]};const o=[t];while(o.length>0){const t=o.shift();if(t){i[t]=1;delete n[t];const a=e[t];const[s,h]=r[t];Object.entries(a).forEach((([t,e])=>{if(!i[e]){r[e]=_([s,h],t);o.push(e)}}))}}return r}),"BFS");const a=[o(r)];while(Object.keys(n).length>0){a.push(o(Object.keys(n)[0]))}G.records.dataStructures={adjList:e,spatialMaps:a,groupAlignments:t}}return G.records.dataStructures}),"getDataStructures");var j=(0,l.K2)(((t,e)=>{G.records.elements[t]=e}),"setElementForId");var q=(0,l.K2)((t=>G.records.elements[t]),"getElementById");var $={clear:F,setDiagramTitle:l.ke,getDiagramTitle:l.ab,setAccTitle:l.SV,getAccTitle:l.iN,setAccDescription:l.EI,getAccDescription:l.m7,addService:S,getServices:P,addJunction:U,getJunctions:k,getNodes:Y,getNode:H,addGroup:X,getGroups:z,addEdge:V,getEdges:B,setElementForId:j,getElementById:q,getDataStructures:W};function K(t){const e=(0,l.D7)().architecture;if(e?.[t]){return e[t]}return b[t]}(0,l.K2)(K,"getConfigField");var Z=(0,l.K2)(((t,e)=>{(0,o.S)(t,e);t.groups.map(e.addGroup);t.services.map((t=>e.addService({...t,type:"service"})));t.junctions.map((t=>e.addJunction({...t,type:"junction"})));t.edges.map(e.addEdge)}),"populateDb");var Q={parse:(0,l.K2)((async t=>{const e=await(0,c.qg)("architecture",t);l.Rm.debug(e);Z(e,$)}),"parse")};var J=(0,l.K2)((t=>`\n .edge {\n stroke-width: ${t.archEdgeWidth};\n stroke: ${t.archEdgeColor};\n fill: none;\n }\n\n .arrow {\n fill: ${t.archEdgeArrowColor};\n }\n\n .node-bkg {\n fill: none;\n stroke: ${t.archGroupBorderColor};\n stroke-width: ${t.archGroupBorderWidth};\n stroke-dasharray: 8;\n }\n .node-icon-text {\n display: flex; \n align-items: center;\n }\n \n .node-icon-text > div {\n color: #fff;\n margin: 1px;\n height: fit-content;\n text-align: center;\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n }\n`),"getStyles");var tt=J;var et=(0,l.K2)((t=>`${t}`),"wrapIcon");var rt={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:et('')},server:{body:et('')},disk:{body:et('')},internet:{body:et('')},cloud:{body:et('')},unknown:i.Gc,blank:{body:et("")}}};var it=(0,l.K2)((async function(t,e){const r=K("padding");const i=K("iconSize");const o=i/2;const a=i/6;const s=a/2;await Promise.all(e.edges().map((async e=>{const{source:i,sourceDir:h,sourceArrow:c,sourceGroup:d,target:f,targetDir:g,targetArrow:u,targetGroup:p,label:m}=D(e);let{x:E,y:L}=e[0].sourceEndpoint();const{x:_,y:M}=e[0].midpoint();let{x,y:O}=e[0].targetEndpoint();const R=r+4;if(d){if(N(h)){E+=h==="L"?-R:R}else{L+=h==="T"?-R:R+18}}if(p){if(N(g)){x+=g==="L"?-R:R}else{O+=g==="T"?-R:R+18}}if(!d&&$.getNode(i)?.type==="junction"){if(N(h)){E+=h==="L"?o:-o}else{L+=h==="T"?o:-o}}if(!p&&$.getNode(f)?.type==="junction"){if(N(g)){x+=g==="L"?o:-o}else{O+=g==="T"?o:-o}}if(e[0]._private.rscratch){const e=t.insert("g");e.insert("path").attr("d",`M ${E},${L} L ${_},${M} L${x},${O} `).attr("class","edge");if(c){const t=N(h)?y[h](E,a):E-s;const r=T(h)?y[h](L,a):L-s;e.insert("polygon").attr("points",v[h](a)).attr("transform",`translate(${t},${r})`).attr("class","arrow")}if(u){const t=N(g)?y[g](x,a):x-s;const r=T(g)?y[g](O,a):O-s;e.insert("polygon").attr("points",v[g](a)).attr("transform",`translate(${t},${r})`).attr("class","arrow")}if(m){const t=!A(h,g)?N(h)?"X":"Y":"XY";let r=0;if(t==="X"){r=Math.abs(E-x)}else if(t==="Y"){r=Math.abs(L-O)/1.5}else{r=Math.abs(E-x)/2}const i=e.append("g");await(0,n.GZ)(i,m,{useHtmlLabels:false,width:r,classes:"architecture-service-label"},(0,l.D7)());i.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");if(t==="X"){i.attr("transform","translate("+_+", "+M+")")}else if(t==="Y"){i.attr("transform","translate("+_+", "+M+") rotate(-90)")}else if(t==="XY"){const t=I(h,g);if(t&&w(t)){const e=i.node().getBoundingClientRect();const[r,n]=C(t);i.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*r*n*45})`);const o=i.node().getBoundingClientRect();i.attr("transform",`\n translate(${_}, ${M-e.height/2})\n translate(${r*o.width/2}, ${n*o.height/2})\n rotate(${-1*r*n*45}, 0, ${e.height/2})\n `)}}}}})))}),"drawEdges");var nt=(0,l.K2)((async function(t,e){const r=K("padding");const o=r*.75;const a=K("fontSize");const s=K("iconSize");const h=s/2;await Promise.all(e.nodes().map((async e=>{const r=R(e);if(r.type==="group"){const{h:s,w:c,x1:d,y1:f}=e.boundingBox();t.append("rect").attr("x",d+h).attr("y",f+h).attr("width",c).attr("height",s).attr("class","node-bkg");const g=t.append("g");let u=d;let p=f;if(r.icon){const t=g.append("g");t.html(`${await(0,i.WY)(r.icon,{height:o,width:o,fallbackPrefix:rt.prefix})}`);t.attr("transform","translate("+(u+h+1)+", "+(p+h+1)+")");u+=o;p+=a/2-1-2}if(r.label){const t=g.append("g");await(0,n.GZ)(t,r.label,{useHtmlLabels:false,width:c,classes:"architecture-service-label"},(0,l.D7)());t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start");t.attr("transform","translate("+(u+h+4)+", "+(p+h+2)+")")}}})))}),"drawGroups");var ot=(0,l.K2)((async function(t,e,r){for(const o of r){const r=e.append("g");const a=K("iconSize");if(o.title){const t=r.append("g");await(0,n.GZ)(t,o.title,{useHtmlLabels:false,width:a*1.5,classes:"architecture-service-label"},(0,l.D7)());t.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");t.attr("transform","translate("+a/2+", "+a+")")}const s=r.append("g");if(o.icon){s.html(`${await(0,i.WY)(o.icon,{height:a,width:a,fallbackPrefix:rt.prefix})}`)}else if(o.iconText){s.html(`${await(0,i.WY)("blank",{height:a,width:a,fallbackPrefix:rt.prefix})}`);const t=s.append("g");const e=t.append("foreignObject").attr("width",a).attr("height",a);const r=e.append("div").attr("class","node-icon-text").attr("style",`height: ${a}px;`).append("div").html(o.iconText);const n=parseInt(window.getComputedStyle(r.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;r.attr("style",`-webkit-line-clamp: ${Math.floor((a-2)/n)};`)}else{s.append("path").attr("class","node-bkg").attr("id","node-"+o.id).attr("d",`M0 ${a} v${-a} q0,-5 5,-5 h${a} q5,0 5,5 v${a} H0 Z`)}r.attr("class","architecture-service");const{width:h,height:c}=r._groups[0][0].getBBox();o.width=h;o.height=c;t.setElementForId(o.id,r)}return 0}),"drawServices");var at=(0,l.K2)((function(t,e,r){r.forEach((r=>{const i=e.append("g");const n=K("iconSize");const o=i.append("g");o.append("rect").attr("id","node-"+r.id).attr("fill-opacity","0").attr("width",n).attr("height",n);i.attr("class","architecture-junction");const{width:a,height:s}=i._groups[0][0].getBBox();i.width=a;i.height=s;t.setElementForId(r.id,i)}))}),"drawJunctions");(0,i.pC)([{name:rt.prefix,icons:rt}]);d.A.use(g());function st(t,e){t.forEach((t=>{e.add({group:"nodes",data:{type:"service",id:t.id,icon:t.icon,label:t.title,parent:t.in,width:K("iconSize"),height:K("iconSize")},classes:"node-service"})}))}(0,l.K2)(st,"addServices");function ht(t,e){t.forEach((t=>{e.add({group:"nodes",data:{type:"junction",id:t.id,parent:t.in,width:K("iconSize"),height:K("iconSize")},classes:"node-junction"})}))}(0,l.K2)(ht,"addJunctions");function lt(t,e){e.nodes().map((e=>{const r=R(e);if(r.type==="group"){return}r.x=e.position().x;r.y=e.position().y;const i=t.getElementById(r.id);i.attr("transform","translate("+(r.x||0)+","+(r.y||0)+")")}))}(0,l.K2)(lt,"positionNodes");function ct(t,e){t.forEach((t=>{e.add({group:"nodes",data:{type:"group",id:t.id,icon:t.icon,label:t.title,parent:t.in},classes:"node-group"})}))}(0,l.K2)(ct,"addGroups");function dt(t,e){t.forEach((t=>{const{lhsId:r,rhsId:i,lhsInto:n,lhsGroup:o,rhsInto:a,lhsDir:s,rhsDir:h,rhsGroup:l,title:c}=t;const d=A(t.lhsDir,t.rhsDir)?"segments":"straight";const f={id:`${r}-${i}`,label:c,source:r,sourceDir:s,sourceArrow:n,sourceGroup:o,sourceEndpoint:s==="L"?"0 50%":s==="R"?"100% 50%":s==="T"?"50% 0":"50% 100%",target:i,targetDir:h,targetArrow:a,targetGroup:l,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};e.add({group:"edges",data:f,classes:d})}))}(0,l.K2)(dt,"addEdges");function ft(t,e,r){const i=(0,l.K2)(((t,e)=>Object.entries(t).reduce(((t,[i,n])=>{let o=0;const a=Object.entries(n);if(a.length===1){t[i]=a[0][1];return t}for(let s=0;s{const r={};const n={};Object.entries(e).forEach((([e,[i,o]])=>{const a=t.getNode(e)?.in??"default";r[o]??={};r[o][a]??=[];r[o][a].push(e);n[i]??={};n[i][a]??=[];n[i][a].push(e)}));return{horiz:Object.values(i(r,"horizontal")).filter((t=>t.length>1)),vert:Object.values(i(n,"vertical")).filter((t=>t.length>1))}}));const[o,a]=n.reduce((([t,e],{horiz:r,vert:i})=>[[...t,...r],[...e,...i]]),[[],[]]);return{horizontal:o,vertical:a}}(0,l.K2)(ft,"getAlignments");function gt(t){const e=[];const r=(0,l.K2)((t=>`${t[0]},${t[1]}`),"posToStr");const i=(0,l.K2)((t=>t.split(",").map((t=>parseInt(t)))),"strToPos");t.forEach((t=>{const n=Object.fromEntries(Object.entries(t).map((([t,e])=>[r(e),t])));const o=[r([0,0])];const a={};const s={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};while(o.length>0){const t=o.shift();if(t){a[t]=1;const h=n[t];if(h){const l=i(t);Object.entries(s).forEach((([t,i])=>{const s=r([l[0]+i[0],l[1]+i[1]]);const c=n[s];if(c&&!a[s]){o.push(s);e.push({[p[t]]:c,[p[m(t)]]:h,gap:1.5*K("iconSize")})}}))}}}}));return e}(0,l.K2)(gt,"getRelativeConstraints");function ut(t,e,r,i,n,{spatialMaps:o,groupAlignments:a}){return new Promise((s=>{const h=(0,u.Ltv)("body").append("div").attr("id","cy").attr("style","display:none");const c=(0,d.A)({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${K("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${K("padding")}px`}}]});h.remove();ct(r,c);st(t,c);ht(e,c);dt(i,c);const f=ft(n,o,a);const g=gt(o);const p=c.layout({name:"fcose",quality:"proof",styleEnabled:false,animate:false,nodeDimensionsIncludeLabels:false,idealEdgeLength(t){const[e,r]=t.connectedNodes();const{parent:i}=R(e);const{parent:n}=R(r);const o=i===n?1.5*K("iconSize"):.5*K("iconSize");return o},edgeElasticity(t){const[e,r]=t.connectedNodes();const{parent:i}=R(e);const{parent:n}=R(r);const o=i===n?.45:.001;return o},alignmentConstraint:f,relativePlacementConstraint:g});p.one("layoutstop",(()=>{function t(t,e,r,i){let n,o;const{x:a,y:s}=t;const{x:h,y:l}=e;o=(i-s+(a-r)*(s-l)/(a-h))/Math.sqrt(1+Math.pow((s-l)/(a-h),2));n=Math.sqrt(Math.pow(i-s,2)+Math.pow(r-a,2)-Math.pow(o,2));const c=Math.sqrt(Math.pow(h-a,2)+Math.pow(l-s,2));n=n/c;let d=(h-a)*(i-s)-(l-s)*(r-a);switch(true){case d>=0:d=1;break;case d<0:d=-1;break}let f=(h-a)*(r-a)+(l-s)*(i-s);switch(true){case f>=0:f=1;break;case f<0:f=-1;break}o=Math.abs(o)*d;n=n*f;return{distances:o,weights:n}}(0,l.K2)(t,"getSegmentWeights");c.startBatch();for(const e of Object.values(c.edges())){if(e.data?.()){const{x:r,y:i}=e.source().position();const{x:n,y:o}=e.target().position();if(r!==n&&i!==o){const r=e.sourceEndpoint();const i=e.targetEndpoint();const{sourceDir:n}=D(e);const[o,a]=T(n)?[r.x,i.y]:[i.x,r.y];const{weights:s,distances:h}=t(r,i,o,a);e.style("segment-distances",h);e.style("segment-weights",s)}}}c.endBatch();p.run()}));p.run();c.ready((t=>{l.Rm.info("Ready",t);s(c)}))}))}(0,l.K2)(ut,"layoutArchitecture");var pt=(0,l.K2)((async(t,e,r,i)=>{const n=i.db;const o=n.getServices();const a=n.getJunctions();const s=n.getGroups();const c=n.getEdges();const d=n.getDataStructures();const f=(0,h.D)(e);const g=f.append("g");g.attr("class","architecture-edges");const u=f.append("g");u.attr("class","architecture-services");const p=f.append("g");p.attr("class","architecture-groups");await ot(n,u,o);at(n,u,a);const v=await ut(o,a,s,c,n,d);await it(g,v);await nt(p,v);lt(n,v);(0,l.ot)(void 0,f,K("padding"),K("useMaxWidth"))}),"draw");var vt={draw:pt};var yt={parser:Q,db:$,renderer:vt,styles:tt}},19163:(t,e,r)=>{"use strict";r.d(e,{S:()=>n});var i=r(75905);function n(t,e){if(t.accDescr){e.setAccDescription?.(t.accDescr)}if(t.accTitle){e.setAccTitle?.(t.accTitle)}if(t.title){e.setDiagramTitle?.(t.title)}}(0,i.K2)(n,"populateCommonDb")},13249:(t,e,r)=>{"use strict";r.d(e,{m:()=>n});var i=r(75905);var n=class{constructor(t){this.init=t;this.records=this.init()}static{(0,i.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7425.f1c25f6c8aaec77e8635.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7425.f1c25f6c8aaec77e8635.js deleted file mode 100644 index ff9bef636c74f32e1523f8a307a6c6b62cb905a1..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7425.f1c25f6c8aaec77e8635.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7425],{37425:(e,O,t)=>{t.r(O);t.d(O,{css:()=>J,cssCompletionSource:()=>K,cssLanguage:()=>L,defineCSSCompletionSource:()=>B});var a=t(27421);var o=t(45145);const r=99,l=1,i=100,n=101,s=2;const d=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];const c=58,p=40,Q=95,u=91,m=45,g=46,S=35,f=37,h=38,y=92,b=10;function $(e){return e>=65&&e<=90||e>=97&&e<=122||e>=161}function P(e){return e>=48&&e<=57}const X=new a.Lu(((e,O)=>{for(let t=false,a=0,o=0;;o++){let{next:r}=e;if($(r)||r==m||r==Q||t&&P(r)){if(!t&&(r!=m||o>0))t=true;if(a===o&&r==m)a++;e.advance()}else if(r==y&&e.peek(1)!=b){e.advance();if(e.next>-1)e.advance();t=true}else{if(t)e.acceptToken(r==p?i:a==2&&O.canShift(s)?s:n);break}}}));const w=new a.Lu((e=>{if(d.includes(e.peek(-1))){let{next:O}=e;if($(O)||O==Q||O==S||O==g||O==u||O==c&&$(e.peek(1))||O==m||O==h)e.acceptToken(r)}}));const k=new a.Lu((e=>{if(!d.includes(e.peek(-1))){let{next:O}=e;if(O==f){e.advance();e.acceptToken(l)}if($(O)){do{e.advance()}while($(e.next)||P(e.next));e.acceptToken(l)}}}));const v=(0,o.styleTags)({"AtKeyword import charset namespace keyframes media supports":o.tags.definitionKeyword,"from to selector":o.tags.keyword,NamespaceName:o.tags.namespace,KeyframeName:o.tags.labelName,KeyframeRangeName:o.tags.operatorKeyword,TagName:o.tags.tagName,ClassName:o.tags.className,PseudoClassName:o.tags.constant(o.tags.className),IdName:o.tags.labelName,"FeatureName PropertyName":o.tags.propertyName,AttributeName:o.tags.attributeName,NumberLiteral:o.tags.number,KeywordQuery:o.tags.keyword,UnaryQueryOp:o.tags.operatorKeyword,"CallTag ValueName":o.tags.atom,VariableName:o.tags.variableName,Callee:o.tags.operatorKeyword,Unit:o.tags.unit,"UniversalSelector NestingSelector":o.tags.definitionOperator,MatchOp:o.tags.compareOperator,"ChildOp SiblingOp, LogicOp":o.tags.logicOperator,BinOp:o.tags.arithmeticOperator,Important:o.tags.modifier,Comment:o.tags.blockComment,ColorLiteral:o.tags.color,"ParenthesizedContent StringLiteral":o.tags.string,":":o.tags.punctuation,"PseudoOp #":o.tags.derefOperator,"; ,":o.tags.separator,"( )":o.tags.paren,"[ ]":o.tags.squareBracket,"{ }":o.tags.brace});const z={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:138};const x={__proto__:null,"@import":118,"@media":142,"@charset":146,"@namespace":150,"@keyframes":156,"@supports":168};const T={__proto__:null,not:132,only:132};const W=a.U1.deserialize({version:14,states:":jQYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DTO$vQ[O'#DWOOQP'#Em'#EmO${QdO'#DgO%jQ[O'#DtO${QdO'#DvO%{Q[O'#DxO&WQ[O'#D{O&`Q[O'#ERO&nQ[O'#ETOOQS'#El'#ElOOQS'#EW'#EWQYQ[OOO&uQXO'#CdO'jQWO'#DcO'oQWO'#EsO'zQ[O'#EsQOQWOOP(UO#tO'#C_POOO)C@[)C@[OOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(aQ[O'#E[O({QWO,58{O)TQ[O,59SO$qQ[O,59oO$vQ[O,59rO(aQ[O,59uO(aQ[O,59wO(aQ[O,59xO)`Q[O'#DbOOQS,58{,58{OOQP'#Ck'#CkOOQO'#DR'#DROOQP,59S,59SO)gQWO,59SO)lQWO,59SOOQP'#DV'#DVOOQP,59o,59oOOQO'#DX'#DXO)qQ`O,59rOOQS'#Cp'#CpO${QdO'#CqO)yQvO'#CsO+ZQtO,5:ROOQO'#Cx'#CxO)lQWO'#CwO+oQWO'#CyO+tQ[O'#DOOOQS'#Ep'#EpOOQO'#Dj'#DjO+|Q[O'#DqO,[QWO'#EtO&`Q[O'#DoO,jQWO'#DrOOQO'#Eu'#EuO)OQWO,5:`O,oQpO,5:bOOQS'#Dz'#DzO,wQWO,5:dO,|Q[O,5:dOOQO'#D}'#D}O-UQWO,5:gO-ZQWO,5:mO-cQWO,5:oOOQS-E8U-E8UO-kQdO,59}O-{Q[O'#E^O.YQWO,5;_O.YQWO,5;_POOO'#EV'#EVP.eO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO/[QXO,5:vOOQO-E8Y-E8YOOQS1G.g1G.gOOQP1G.n1G.nO)gQWO1G.nO)lQWO1G.nOOQP1G/Z1G/ZO/iQ`O1G/^O0SQXO1G/aO0jQXO1G/cO1QQXO1G/dO1hQWO,59|O1mQ[O'#DSO1tQdO'#CoOOQP1G/^1G/^O${QdO1G/^O1{QpO,59]OOQS,59_,59_O${QdO,59aO2TQWO1G/mOOQS,59c,59cO2YQ!bO,59eOOQS'#DP'#DPOOQS'#EY'#EYO2eQ[O,59jOOQS,59j,59jO2mQWO'#DjO2xQWO,5:VO2}QWO,5:]O&`Q[O,5:XO&`Q[O'#E_O3VQWO,5;`O3bQWO,5:ZO(aQ[O,5:^OOQS1G/z1G/zOOQS1G/|1G/|OOQS1G0O1G0OO3sQWO1G0OO3xQdO'#EOOOQS1G0R1G0ROOQS1G0X1G0XOOQS1G0Z1G0ZO4TQtO1G/iOOQO1G/i1G/iOOQO,5:x,5:xO4kQ[O,5:xOOQO-E8[-E8[O4xQWO1G0yPOOO-E8T-E8TPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$x7+$xO${QdO7+$xOOQS1G/h1G/hO5TQXO'#ErO5[QWO,59nO5aQtO'#EXO6XQdO'#EoO6cQWO,59ZO6hQpO7+$xOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%X7+%XOOQS1G/P1G/PO6pQWO1G/POOQS-E8W-E8WOOQS1G/U1G/UO${QdO1G/qOOQO1G/w1G/wOOQO1G/s1G/sO6uQWO,5:yOOQO-E8]-E8]O7TQXO1G/xOOQS7+%j7+%jO7[QYO'#CsOOQO'#EQ'#EQO7gQ`O'#EPOOQO'#EP'#EPO7rQWO'#E`O7zQdO,5:jOOQS,5:j,5:jO8VQtO'#E]O${QdO'#E]O9WQdO7+%TOOQO7+%T7+%TOOQO1G0d1G0dO9kQpO<OAN>OO;]QdO,5:uOOQO-E8X-E8XOOQO<T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#e[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l[[o`#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSt^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#bQOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#[~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!Y^Oy%^z;'S%^;'S;=`%o<%lO%^dCoS|SOy%^z;'S%^;'S;=`%o<%lO%^bDQU!OQOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS!OQo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[![Qo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^nFfSq^Oy%^z;'S%^;'S;=`%o<%lO%^nFwSp^Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!bQo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!TUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!S^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!RQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}",tokenizers:[w,k,X,1,2,3,4,new a.uC("m~RRYZ[z{a~~g~aO#^~~dP!P!Qg~lO#_~~",28,105)],topRules:{StyleSheet:[0,4],Styles:[1,86]},specialized:[{term:100,get:e=>z[e]||-1},{term:58,get:e=>x[e]||-1},{term:101,get:e=>T[e]||-1}],tokenPrec:1219});var R=t(4452);var U=t(66575);let Y=null;function q(){if(!Y&&typeof document=="object"&&document.body){let{style:e}=document.body,O=[],t=new Set;for(let a in e)if(a!="cssText"&&a!="cssFloat"){if(typeof e[a]=="string"){if(/[A-Z]/.test(a))a=a.replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()));if(!t.has(a)){O.push(a);t.add(a)}}}Y=O.sort().map((e=>({type:"property",label:e,apply:e+": "})))}return Y||[]}const Z=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map((e=>({type:"class",label:e})));const C=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map((e=>({type:"keyword",label:e}))).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map((e=>({type:"constant",label:e}))));const _=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map((e=>({type:"type",label:e})));const E=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map((e=>({type:"keyword",label:e})));const G=/^(\w[\w-]*|-\w[\w-]*|)$/,V=/^-(-[\w-]*)?$/;function N(e,O){var t;if(e.name=="("||e.type.isError)e=e.parent||e;if(e.name!="ArgList")return false;let a=(t=e.parent)===null||t===void 0?void 0:t.firstChild;if((a===null||a===void 0?void 0:a.name)!="Callee")return false;return O.sliceString(a.from,a.to)=="var"}const j=new U.NodeWeakMap;const D=["Declaration"];function I(e){for(let O=e;;){if(O.type.isTop)return O;if(!(O=O.parent))return e}}function F(e,O,t){if(O.to-O.from>4096){let a=j.get(O);if(a)return a;let o=[],r=new Set,l=O.cursor(U.IterMode.IncludeAnonymous);if(l.firstChild())do{for(let O of F(e,l.node,t))if(!r.has(O.label)){r.add(O.label);o.push(O)}}while(l.nextSibling());j.set(O,o);return o}else{let a=[],o=new Set;O.cursor().iterate((O=>{var r;if(t(O)&&O.matchContext(D)&&((r=O.node.nextSibling)===null||r===void 0?void 0:r.name)==":"){let t=e.sliceString(O.from,O.to);if(!o.has(t)){o.add(t);a.push({label:t,type:"variable"})}}}));return a}}const B=e=>O=>{let{state:t,pos:a}=O,o=(0,R.syntaxTree)(t).resolveInner(a,-1);let r=o.type.isError&&o.from==o.to-1&&t.doc.sliceString(o.from,o.to)=="-";if(o.name=="PropertyName"||(r||o.name=="TagName")&&/^(Block|Styles)$/.test(o.resolve(o.to).name))return{from:o.from,options:q(),validFor:G};if(o.name=="ValueName")return{from:o.from,options:C,validFor:G};if(o.name=="PseudoClassName")return{from:o.from,options:Z,validFor:G};if(e(o)||(O.explicit||r)&&N(o,t.doc))return{from:e(o)||r?o.from:a,options:F(t.doc,I(o),e),validFor:V};if(o.name=="TagName"){for(let{parent:e}=o;e;e=e.parent)if(e.name=="Block")return{from:o.from,options:q(),validFor:G};return{from:o.from,options:_,validFor:G}}if(o.name=="AtKeyword")return{from:o.from,options:E,validFor:G};if(!O.explicit)return null;let l=o.resolve(a),i=l.childBefore(a);if(i&&i.name==":"&&l.name=="PseudoClassSelector")return{from:a,options:Z,validFor:G};if(i&&i.name==":"&&l.name=="Declaration"||l.name=="ArgList")return{from:a,options:C,validFor:G};if(l.name=="Block"||l.name=="Styles")return{from:a,options:q(),validFor:G};return null};const K=B((e=>e.name=="VariableName"));const L=R.LRLanguage.define({name:"css",parser:W.configure({props:[R.indentNodeProp.add({Declaration:(0,R.continuedIndent)()}),R.foldNodeProp.add({"Block KeyframeList":R.foldInside})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function J(){return new R.LanguageSupport(L,L.data.of({autocomplete:K}))}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7445.7c793c8e1720f8ec4f85.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7445.7c793c8e1720f8ec4f85.js deleted file mode 100644 index 4b96d5d871b9a818dc6f85c5764a4d1a3542a51a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7445.7c793c8e1720f8ec4f85.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7445],{57445:(e,t,n)=>{n.r(t);n.d(t,{oz:()=>g});function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var a=/[\^@!\|<>#~\.\*\-\+\\/,=]/;var i=/(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\=)|(\\=:)|(!!)|(==)|(::)/;var u=/(:::)|(\.\.\.)|(=<:)|(>=:)/;var o=["in","then","else","of","elseof","elsecase","elseif","catch","finally","with","require","prepare","import","export","define","do"];var c=["end"];var f=r(["true","false","nil","unit"]);var s=r(["andthen","at","attr","declare","feat","from","lex","mod","div","mode","orelse","parser","prod","prop","scanner","self","syn","token"]);var l=r(["local","proc","fun","case","class","if","cond","or","dis","choice","not","thread","try","raise","lock","for","suchthat","meth","functor"]);var h=r(o);var d=r(c);function m(e,t){if(e.eatSpace()){return null}if(e.match(/[{}]/)){return"bracket"}if(e.match("[]")){return"keyword"}if(e.match(u)||e.match(i)){return"operator"}if(e.match(f)){return"atom"}var n=e.match(l);if(n){if(!t.doInCurrentLine)t.currentIndent++;else t.doInCurrentLine=false;if(n[0]=="proc"||n[0]=="fun")t.tokenize=z;else if(n[0]=="class")t.tokenize=p;else if(n[0]=="meth")t.tokenize=k;return"keyword"}if(e.match(h)||e.match(s)){return"keyword"}if(e.match(d)){t.currentIndent--;return"keyword"}var r=e.next();if(r=='"'||r=="'"){t.tokenize=b(r);return t.tokenize(e,t)}if(/[~\d]/.test(r)){if(r=="~"){if(!/^[0-9]/.test(e.peek()))return null;else if(e.next()=="0"&&e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))return"number"}if(r=="0"&&e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))return"number";return null}if(r=="%"){e.skipToEnd();return"comment"}else if(r=="/"){if(e.eat("*")){t.tokenize=v;return v(e,t)}}if(a.test(r)){return"operator"}e.eatWhile(/\w/);return"variable"}function p(e,t){if(e.eatSpace()){return null}e.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/);t.tokenize=m;return"type"}function k(e,t){if(e.eatSpace()){return null}e.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/);t.tokenize=m;return"def"}function z(e,t){if(e.eatSpace()){return null}if(!t.hasPassedFirstStage&&e.eat("{")){t.hasPassedFirstStage=true;return"bracket"}else if(t.hasPassedFirstStage){e.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\$/);t.hasPassedFirstStage=false;t.tokenize=m;return"def"}else{t.tokenize=m;return null}}function v(e,t){var n=false,r;while(r=e.next()){if(r=="/"&&n){t.tokenize=m;break}n=r=="*"}return"comment"}function b(e){return function(t,n){var r=false,a,i=false;while((a=t.next())!=null){if(a==e&&!r){i=true;break}r=!r&&a=="\\"}if(i||!r)n.tokenize=m;return"string"}}function w(){var e=o.concat(c);return new RegExp("[\\[\\]]|("+e.join("|")+")$")}const g={name:"oz",startState:function(){return{tokenize:m,currentIndent:0,doInCurrentLine:false,hasPassedFirstStage:false}},token:function(e,t){if(e.sol())t.doInCurrentLine=0;return t.tokenize(e,t)},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");if(r.match(d)||r.match(h)||r.match(/(\[])/))return n.unit*(e.currentIndent-1);if(e.currentIndent<0)return 0;return e.currentIndent*n.unit},languageData:{indentOnInut:w(),commentTokens:{line:"%",block:{open:"/*",close:"*/"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7575.2e3e32236d5667bba43f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7575.2e3e32236d5667bba43f.js deleted file mode 100644 index 7f780b8bc9d74d95e9a347cbc71d16474d0f9d63..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7575.2e3e32236d5667bba43f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7575],{47575:(e,t,r)=>{r.r(t);r.d(t,{julia:()=>$});function n(e,t,r){if(typeof r==="undefined")r="";if(typeof t==="undefined"){t="\\b"}return new RegExp("^"+r+"(("+e.join(")|(")+"))"+t)}var a="\\\\[0-7]{1,3}";var i="\\\\x[A-Fa-f0-9]{1,2}";var u="\\\\[abefnrtv0%?'\"\\\\]";var s="([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])";var o=["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","\\.{2,3}","[\\.\\\\%*+\\-<>!\\/^|&]=?","\\?","\\$","~",":"];var f=n(["[<>]:","[<>=]=","[!=]==","<<=?",">>>?=?","=>?","--?>","<--[->]?","\\/\\/","[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],"");var c=/^[;,()[\]{}]/;var l=/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/;var m=n([a,i,u,s],"'");var p=["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"];var h=["end","else","elseif","catch","finally"];var d=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"];var v=["true","false","nothing","NaN","Inf"];var F=n(p);var k=n(h);var b=n(d);var g=n(v);var y=/^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/;var _=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/;var x=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/;var A=n(o,"","@");var z=n(o,"",":");function E(e){return e.nestedArrays>0}function w(e){return e.nestedGenerators>0}function D(e,t){if(typeof t==="undefined"){t=0}if(e.scopes.length<=t){return null}return e.scopes[e.scopes.length-(t+1)]}function T(e,t){if(e.match("#=",false)){t.tokenize=P;return t.tokenize(e,t)}var r=t.leavingExpr;if(e.sol()){r=false}t.leavingExpr=false;if(r){if(e.match(/^'+/)){return"operator"}}if(e.match(/\.{4,}/)){return"error"}else if(e.match(/\.{1,3}/)){return"operator"}if(e.eatSpace()){return null}var n=e.peek();if(n==="#"){e.skipToEnd();return"comment"}if(n==="["){t.scopes.push("[");t.nestedArrays++}if(n==="("){t.scopes.push("(");t.nestedGenerators++}if(E(t)&&n==="]"){while(t.scopes.length&&D(t)!=="["){t.scopes.pop()}t.scopes.pop();t.nestedArrays--;t.leavingExpr=true}if(w(t)&&n===")"){while(t.scopes.length&&D(t)!=="("){t.scopes.pop()}t.scopes.pop();t.nestedGenerators--;t.leavingExpr=true}if(E(t)){if(t.lastToken=="end"&&e.match(":")){return"operator"}if(e.match("end")){return"number"}}var a;if(a=e.match(F,false)){t.scopes.push(a[0])}if(e.match(k,false)){t.scopes.pop()}if(e.match(/^::(?![:\$])/)){t.tokenize=C;return t.tokenize(e,t)}if(!r&&(e.match(_)||e.match(z))){return"builtin"}if(e.match(f)){return"operator"}if(e.match(/^\.?\d/,false)){var i=RegExp(/^im\b/);var u=false;if(e.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)){u=true}if(e.match(/^0x[0-9a-f_]+/i)){u=true}if(e.match(/^0b[01_]+/i)){u=true}if(e.match(/^0o[0-7_]+/i)){u=true}if(e.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)){u=true}if(e.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)){u=true}if(u){e.match(i);t.leavingExpr=true;return"number"}}if(e.match("'")){t.tokenize=j;return t.tokenize(e,t)}if(e.match(x)){t.tokenize=B(e.current());return t.tokenize(e,t)}if(e.match(y)||e.match(A)){return"meta"}if(e.match(c)){return null}if(e.match(b)){return"keyword"}if(e.match(g)){return"builtin"}var s=t.isDefinition||t.lastToken=="function"||t.lastToken=="macro"||t.lastToken=="type"||t.lastToken=="struct"||t.lastToken=="immutable";if(e.match(l)){if(s){if(e.peek()==="."){t.isDefinition=true;return"variable"}t.isDefinition=false;return"def"}t.leavingExpr=true;return"variable"}e.next();return"error"}function C(e,t){e.match(/.*?(?=[,;{}()=\s]|$)/);if(e.match("{")){t.nestedParameters++}else if(e.match("}")&&t.nestedParameters>0){t.nestedParameters--}if(t.nestedParameters>0){e.match(/.*?(?={|})/)||e.next()}else if(t.nestedParameters==0){t.tokenize=T}return"builtin"}function P(e,t){if(e.match("#=")){t.nestedComments++}if(!e.match(/.*?(?=(#=|=#))/)){e.skipToEnd()}if(e.match("=#")){t.nestedComments--;if(t.nestedComments==0)t.tokenize=T}return"comment"}function j(e,t){var r=false,n;if(e.match(m)){r=true}else if(n=e.match(/\\u([a-f0-9]{1,4})(?=')/i)){var a=parseInt(n[1],16);if(a<=55295||a>=57344){r=true;e.next()}}else if(n=e.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var a=parseInt(n[1],16);if(a<=1114111){r=true;e.next()}}if(r){t.leavingExpr=true;t.tokenize=T;return"string"}if(!e.match(/^[^']+(?=')/)){e.skipToEnd()}if(e.match("'")){t.tokenize=T}return"error"}function B(e){if(e.substr(-3)==='"""'){e='"""'}else if(e.substr(-1)==='"'){e='"'}function t(t,r){if(t.eat("\\")){t.next()}else if(t.match(e)){r.tokenize=T;r.leavingExpr=true;return"string"}else{t.eat(/[`"]/)}t.eatWhile(/[^\\`"]/);return"string"}return t}const $={name:"julia",startState:function(){return{tokenize:T,scopes:[],lastToken:null,leavingExpr:false,isDefinition:false,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(e,t){var r=t.tokenize(e,t);var n=e.current();if(n&&r){t.lastToken=n}return r},indent:function(e,t,r){var n=0;if(t==="]"||t===")"||/^end\b/.test(t)||/^else/.test(t)||/^catch\b/.test(t)||/^elseif\b/.test(t)||/^finally/.test(t)){n=-1}return(e.scopes.length+n)*r.unit},languageData:{indentOnInput:/^\s*(end|else|catch|finally)\b$/,commentTokens:{line:"#",block:{open:"#=",close:"=#"}},closeBrackets:{brackets:["(","[","{",'"']},autocomplete:d.concat(v)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7587.3112240b6b82407b0f16.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7587.3112240b6b82407b0f16.js deleted file mode 100644 index 49def792277cebebd480b44268961297018f2d7d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7587.3112240b6b82407b0f16.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7587],{17587:(e,t,a)=>{a.r(t);a.d(t,{ebnf:()=>c});var s={slash:0,parenthesis:1};var r={comment:0,_string:1,characterClass:2};const c={name:"ebnf",startState:function(){return{stringType:null,commentType:null,braced:0,lhs:true,localState:null,stack:[],inDefinition:false}},token:function(e,t){if(!e)return;if(t.stack.length===0){if(e.peek()=='"'||e.peek()=="'"){t.stringType=e.peek();e.next();t.stack.unshift(r._string)}else if(e.match("/*")){t.stack.unshift(r.comment);t.commentType=s.slash}else if(e.match("(*")){t.stack.unshift(r.comment);t.commentType=s.parenthesis}}switch(t.stack[0]){case r._string:while(t.stack[0]===r._string&&!e.eol()){if(e.peek()===t.stringType){e.next();t.stack.shift()}else if(e.peek()==="\\"){e.next();e.next()}else{e.match(/^.[^\\\"\']*/)}}return t.lhs?"property":"string";case r.comment:while(t.stack[0]===r.comment&&!e.eol()){if(t.commentType===s.slash&&e.match("*/")){t.stack.shift();t.commentType=null}else if(t.commentType===s.parenthesis&&e.match("*)")){t.stack.shift();t.commentType=null}else{e.match(/^.[^\*]*/)}}return"comment";case r.characterClass:while(t.stack[0]===r.characterClass&&!e.eol()){if(!(e.match(/^[^\]\\]+/)||e.match("."))){t.stack.shift()}}return"operator"}var a=e.peek();switch(a){case"[":e.next();t.stack.unshift(r.characterClass);return"bracket";case":":case"|":case";":e.next();return"operator";case"%":if(e.match("%%")){return"header"}else if(e.match(/[%][A-Za-z]+/)){return"keyword"}else if(e.match(/[%][}]/)){return"bracket"}break;case"/":if(e.match(/[\/][A-Za-z]+/)){return"keyword"}case"\\":if(e.match(/[\][a-z]+/)){return"string.special"}case".":if(e.match(".")){return"atom"}case"*":case"-":case"+":case"^":if(e.match(a)){return"atom"}case"$":if(e.match("$$")){return"builtin"}else if(e.match(/[$][0-9]+/)){return"variableName.special"}case"<":if(e.match(/<<[a-zA-Z_]+>>/)){return"builtin"}}if(e.match("//")){e.skipToEnd();return"comment"}else if(e.match("return")){return"operator"}else if(e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)){if(e.match(/(?=[\(.])/)){return"variable"}else if(e.match(/(?=[\s\n]*[:=])/)){return"def"}return"variableName.special"}else if(["[","]","(",")"].indexOf(e.peek())!=-1){e.next();return"bracket"}else if(!e.eatSpace()){e.next()}return null}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7694.1cbff84dccb512476b7c.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7694.1cbff84dccb512476b7c.js deleted file mode 100644 index 0ff28f5d07dd4433353c37d543d35433bc085dc6..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7694.1cbff84dccb512476b7c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7694],{57694:(e,n,t)=>{t.r(n);t.d(n,{jinja2:()=>c});var a=["and","as","block","endblock","by","cycle","debug","else","elif","extends","filter","endfilter","firstof","do","for","endfor","if","endif","ifchanged","endifchanged","ifequal","endifequal","ifnotequal","set","raw","endraw","endifnotequal","in","include","load","not","now","or","parsed","regroup","reversed","spaceless","call","endcall","macro","endmacro","endspaceless","ssi","templatetag","openblock","closeblock","openvariable","closevariable","without","context","openbrace","closebrace","opencomment","closecomment","widthratio","url","with","endwith","get_current_language","trans","endtrans","noop","blocktrans","endblocktrans","get_available_languages","get_current_language_bidi","pluralize","autoescape","endautoescape"],i=/^[+\-*&%=<>!?|~^]/,r=/^[:\[\(\{]/,s=["true","false"],l=/^(\d[+\-\*\/])?\d+(\.\d+)?/;a=new RegExp("(("+a.join(")|(")+"))\\b");s=new RegExp("(("+s.join(")|(")+"))\\b");function o(e,n){var t=e.peek();if(n.incomment){if(!e.skipTo("#}")){e.skipToEnd()}else{e.eatWhile(/\#|}/);n.incomment=false}return"comment"}else if(n.intag){if(n.operator){n.operator=false;if(e.match(s)){return"atom"}if(e.match(l)){return"number"}}if(n.sign){n.sign=false;if(e.match(s)){return"atom"}if(e.match(l)){return"number"}}if(n.instring){if(t==n.instring){n.instring=false}e.next();return"string"}else if(t=="'"||t=='"'){n.instring=t;e.next();return"string"}else if(n.inbraces>0&&t==")"){e.next();n.inbraces--}else if(t=="("){e.next();n.inbraces++}else if(n.inbrackets>0&&t=="]"){e.next();n.inbrackets--}else if(t=="["){e.next();n.inbrackets++}else if(!n.lineTag&&(e.match(n.intag+"}")||e.eat("-")&&e.match(n.intag+"}"))){n.intag=false;return"tag"}else if(e.match(i)){n.operator=true;return"operator"}else if(e.match(r)){n.sign=true}else{if(e.column()==1&&n.lineTag&&e.match(a)){return"keyword"}if(e.eat(" ")||e.sol()){if(e.match(a)){return"keyword"}if(e.match(s)){return"atom"}if(e.match(l)){return"number"}if(e.sol()){e.next()}}else{e.next()}}return"variable"}else if(e.eat("{")){if(e.eat("#")){n.incomment=true;if(!e.skipTo("#}")){e.skipToEnd()}else{e.eatWhile(/\#|}/);n.incomment=false}return"comment"}else if(t=e.eat(/\{|%/)){n.intag=t;n.inbraces=0;n.inbrackets=0;if(t=="{"){n.intag="}"}e.eat("-");return"tag"}}else if(e.eat("#")){if(e.peek()=="#"){e.skipToEnd();return"comment"}else if(!e.eol()){n.intag=true;n.lineTag=true;n.inbraces=0;n.inbrackets=0;return"tag"}}e.next()}const c={name:"jinja2",startState:function(){return{tokenize:o,inbrackets:0,inbraces:0}},token:function(e,n){var t=n.tokenize(e,n);if(e.eol()&&n.lineTag&&!n.instring&&n.inbraces==0&&n.inbrackets==0){n.intag=false;n.lineTag=false}return t},languageData:{commentTokens:{block:{open:"{#",close:"#}",line:"##"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7741.2ad1372a5862c4522be3.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7741.2ad1372a5862c4522be3.js deleted file mode 100644 index 3072630f92f6b0ef522a48215fce4cb6bc38ea7e..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7741.2ad1372a5862c4522be3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7741],{97741:(a,e,p)=>{p.d(e,{createRadarServices:()=>t.f});var t=p(36578);var r=p(74888)}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7756.93d0ab41829355a147ab.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7756.93d0ab41829355a147ab.js deleted file mode 100644 index 3b15b683ee02081c657d3eb54389fda0c98f49c8..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7756.93d0ab41829355a147ab.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7756],{7756:(e,t,r)=>{r.r(t);r.d(t,{tiddlyWiki:()=>y});var n={};var i={allTags:true,closeAll:true,list:true,newJournal:true,newTiddler:true,permaview:true,saveChanges:true,search:true,slider:true,tabs:true,tag:true,tagging:true,tags:true,tiddler:true,timeline:true,today:true,version:true,option:true,with:true,filter:true};var u=/[\w_\-]/i,a=/^\-\-\-\-+$/,f=/^\/\*\*\*$/,l=/^\*\*\*\/$/,o=/^<<<$/,c=/^\/\/\{\{\{$/,m=/^\/\/\}\}\}$/,s=/^$/,h=/^$/,k=/^\{\{\{$/,p=/^\}\}\}$/,b=/.*?\}\}\}/;function d(e,t,r){t.tokenize=r;return r(e,t)}function w(e,t){var r=e.sol(),i=e.peek();t.block=false;if(r&&/[<\/\*{}\-]/.test(i)){if(e.match(k)){t.block=true;return d(e,t,$)}if(e.match(o))return"quote";if(e.match(f)||e.match(l))return"comment";if(e.match(c)||e.match(m)||e.match(s)||e.match(h))return"comment";if(e.match(a))return"contentSeparator"}e.next();if(r&&/[\/\*!#;:>|]/.test(i)){if(i=="!"){e.skipToEnd();return"header"}if(i=="*"){e.eatWhile("*");return"comment"}if(i=="#"){e.eatWhile("#");return"comment"}if(i==";"){e.eatWhile(";");return"comment"}if(i==":"){e.eatWhile(":");return"comment"}if(i==">"){e.eatWhile(">");return"quote"}if(i=="|")return"header"}if(i=="{"&&e.match("{{"))return d(e,t,$);if(/[hf]/i.test(i)&&/[ti]/i.test(e.peek())&&e.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i))return"link";if(i=='"')return"string";if(i=="~")return"brace";if(/[\[\]]/.test(i)&&e.match(i))return"brace";if(i=="@"){e.eatWhile(u);return"link"}if(/\d/.test(i)){e.eatWhile(/\d/);return"number"}if(i=="/"){if(e.eat("%")){return d(e,t,v)}else if(e.eat("/")){return d(e,t,z)}}if(i=="_"&&e.eat("_"))return d(e,t,W);if(i=="-"&&e.eat("-")){if(e.peek()!=" ")return d(e,t,g);if(e.peek()==" ")return"brace"}if(i=="'"&&e.eat("'"))return d(e,t,_);if(i=="<"&&e.eat("<"))return d(e,t,x);e.eatWhile(/[\w\$_]/);return n.propertyIsEnumerable(e.current())?"keyword":null}function v(e,t){var r=false,n;while(n=e.next()){if(n=="/"&&r){t.tokenize=w;break}r=n=="%"}return"comment"}function _(e,t){var r=false,n;while(n=e.next()){if(n=="'"&&r){t.tokenize=w;break}r=n=="'"}return"strong"}function $(e,t){var r=t.block;if(r&&e.current()){return"comment"}if(!r&&e.match(b)){t.tokenize=w;return"comment"}if(r&&e.sol()&&e.match(p)){t.tokenize=w;return"comment"}e.next();return"comment"}function z(e,t){var r=false,n;while(n=e.next()){if(n=="/"&&r){t.tokenize=w;break}r=n=="/"}return"emphasis"}function W(e,t){var r=false,n;while(n=e.next()){if(n=="_"&&r){t.tokenize=w;break}r=n=="_"}return"link"}function g(e,t){var r=false,n;while(n=e.next()){if(n=="-"&&r){t.tokenize=w;break}r=n=="-"}return"deleted"}function x(e,t){if(e.current()=="<<"){return"meta"}var r=e.next();if(!r){t.tokenize=w;return null}if(r==">"){if(e.peek()==">"){e.next();t.tokenize=w;return"meta"}}e.eatWhile(/[\w\$_]/);return i.propertyIsEnumerable(e.current())?"keyword":null}const y={name:"tiddlywiki",startState:function(){return{tokenize:w}},token:function(e,t){if(e.eatSpace())return null;var r=t.tokenize(e,t);return r}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7769.d39df7673ee2660a9ac4.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7769.d39df7673ee2660a9ac4.js deleted file mode 100644 index 1bd879f8e0e0a4fd182b8d5e0c425ed54e7886a5..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7769.d39df7673ee2660a9ac4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7769],{7769:(e,t,r)=>{r.r(t);r.d(t,{idl:()=>p});function i(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var a=["a_correlate","abs","acos","adapt_hist_equal","alog","alog2","alog10","amoeba","annotate","app_user_dir","app_user_dir_query","arg_present","array_equal","array_indices","arrow","ascii_template","asin","assoc","atan","axis","axis","bandpass_filter","bandreject_filter","barplot","bar_plot","beseli","beselj","beselk","besely","beta","biginteger","bilinear","bin_date","binary_template","bindgen","binomial","bit_ffs","bit_population","blas_axpy","blk_con","boolarr","boolean","boxplot","box_cursor","breakpoint","broyden","bubbleplot","butterworth","bytarr","byte","byteorder","bytscl","c_correlate","calendar","caldat","call_external","call_function","call_method","call_procedure","canny","catch","cd","cdf","ceil","chebyshev","check_math","chisqr_cvf","chisqr_pdf","choldc","cholsol","cindgen","cir_3pnt","clipboard","close","clust_wts","cluster","cluster_tree","cmyk_convert","code_coverage","color_convert","color_exchange","color_quan","color_range_map","colorbar","colorize_sample","colormap_applicable","colormap_gradient","colormap_rotation","colortable","comfit","command_line_args","common","compile_opt","complex","complexarr","complexround","compute_mesh_normals","cond","congrid","conj","constrained_min","contour","contour","convert_coord","convol","convol_fft","coord2to3","copy_lun","correlate","cos","cosh","cpu","cramer","createboxplotdata","create_cursor","create_struct","create_view","crossp","crvlength","ct_luminance","cti_test","cursor","curvefit","cv_coord","cvttobm","cw_animate","cw_animate_getp","cw_animate_load","cw_animate_run","cw_arcball","cw_bgroup","cw_clr_index","cw_colorsel","cw_defroi","cw_field","cw_filesel","cw_form","cw_fslider","cw_light_editor","cw_light_editor_get","cw_light_editor_set","cw_orient","cw_palette_editor","cw_palette_editor_get","cw_palette_editor_set","cw_pdmenu","cw_rgbslider","cw_tmpl","cw_zoom","db_exists","dblarr","dcindgen","dcomplex","dcomplexarr","define_key","define_msgblk","define_msgblk_from_file","defroi","defsysv","delvar","dendro_plot","dendrogram","deriv","derivsig","determ","device","dfpmin","diag_matrix","dialog_dbconnect","dialog_message","dialog_pickfile","dialog_printersetup","dialog_printjob","dialog_read_image","dialog_write_image","dictionary","digital_filter","dilate","dindgen","dissolve","dist","distance_measure","dlm_load","dlm_register","doc_library","double","draw_roi","edge_dog","efont","eigenql","eigenvec","ellipse","elmhes","emboss","empty","enable_sysrtn","eof","eos","erase","erf","erfc","erfcx","erode","errorplot","errplot","estimator_filter","execute","exit","exp","expand","expand_path","expint","extract","extract_slice","f_cvf","f_pdf","factorial","fft","file_basename","file_chmod","file_copy","file_delete","file_dirname","file_expand_path","file_gunzip","file_gzip","file_info","file_lines","file_link","file_mkdir","file_move","file_poll_input","file_readlink","file_same","file_search","file_tar","file_test","file_untar","file_unzip","file_which","file_zip","filepath","findgen","finite","fix","flick","float","floor","flow3","fltarr","flush","format_axis_values","forward_function","free_lun","fstat","fulstr","funct","function","fv_test","fx_root","fz_roots","gamma","gamma_ct","gauss_cvf","gauss_pdf","gauss_smooth","gauss2dfit","gaussfit","gaussian_function","gaussint","get_drive_list","get_dxf_objects","get_kbrd","get_login_info","get_lun","get_screen_size","getenv","getwindows","greg2jul","grib","grid_input","grid_tps","grid3","griddata","gs_iter","h_eq_ct","h_eq_int","hanning","hash","hdf","hdf5","heap_free","heap_gc","heap_nosave","heap_refcount","heap_save","help","hilbert","hist_2d","hist_equal","histogram","hls","hough","hqr","hsv","i18n_multibytetoutf8","i18n_multibytetowidechar","i18n_utf8tomultibyte","i18n_widechartomultibyte","ibeta","icontour","iconvertcoord","idelete","identity","idl_base64","idl_container","idl_validname","idlexbr_assistant","idlitsys_createtool","idlunit","iellipse","igamma","igetcurrent","igetdata","igetid","igetproperty","iimage","image","image_cont","image_statistics","image_threshold","imaginary","imap","indgen","int_2d","int_3d","int_tabulated","intarr","interpol","interpolate","interval_volume","invert","ioctl","iopen","ir_filter","iplot","ipolygon","ipolyline","iputdata","iregister","ireset","iresolve","irotate","isa","isave","iscale","isetcurrent","isetproperty","ishft","isocontour","isosurface","isurface","itext","itranslate","ivector","ivolume","izoom","journal","json_parse","json_serialize","jul2greg","julday","keyword_set","krig2d","kurtosis","kw_test","l64indgen","la_choldc","la_cholmprove","la_cholsol","la_determ","la_eigenproblem","la_eigenql","la_eigenvec","la_elmhes","la_gm_linear_model","la_hqr","la_invert","la_least_square_equality","la_least_squares","la_linear_equation","la_ludc","la_lumprove","la_lusol","la_svd","la_tridc","la_trimprove","la_triql","la_trired","la_trisol","label_date","label_region","ladfit","laguerre","lambda","lambdap","lambertw","laplacian","least_squares_filter","leefilt","legend","legendre","linbcg","lindgen","linfit","linkimage","list","ll_arc_distance","lmfit","lmgr","lngamma","lnp_test","loadct","locale_get","logical_and","logical_or","logical_true","lon64arr","lonarr","long","long64","lsode","lu_complex","ludc","lumprove","lusol","m_correlate","machar","make_array","make_dll","make_rt","map","mapcontinents","mapgrid","map_2points","map_continents","map_grid","map_image","map_patch","map_proj_forward","map_proj_image","map_proj_info","map_proj_init","map_proj_inverse","map_set","matrix_multiply","matrix_power","max","md_test","mean","meanabsdev","mean_filter","median","memory","mesh_clip","mesh_decimate","mesh_issolid","mesh_merge","mesh_numtriangles","mesh_obj","mesh_smooth","mesh_surfacearea","mesh_validate","mesh_volume","message","min","min_curve_surf","mk_html_help","modifyct","moment","morph_close","morph_distance","morph_gradient","morph_hitormiss","morph_open","morph_thin","morph_tophat","multi","n_elements","n_params","n_tags","ncdf","newton","noise_hurl","noise_pick","noise_scatter","noise_slur","norm","obj_class","obj_destroy","obj_hasmethod","obj_isa","obj_new","obj_valid","objarr","on_error","on_ioerror","online_help","openr","openu","openw","oplot","oploterr","orderedhash","p_correlate","parse_url","particle_trace","path_cache","path_sep","pcomp","plot","plot3d","plot","plot_3dbox","plot_field","ploterr","plots","polar_contour","polar_surface","polyfill","polyshade","pnt_line","point_lun","polarplot","poly","poly_2d","poly_area","poly_fit","polyfillv","polygon","polyline","polywarp","popd","powell","pref_commit","pref_get","pref_set","prewitt","primes","print","printf","printd","pro","product","profile","profiler","profiles","project_vol","ps_show_fonts","psafm","pseudo","ptr_free","ptr_new","ptr_valid","ptrarr","pushd","qgrid3","qhull","qromb","qromo","qsimp","query_*","query_ascii","query_bmp","query_csv","query_dicom","query_gif","query_image","query_jpeg","query_jpeg2000","query_mrsid","query_pict","query_png","query_ppm","query_srf","query_tiff","query_video","query_wav","r_correlate","r_test","radon","randomn","randomu","ranks","rdpix","read","readf","read_ascii","read_binary","read_bmp","read_csv","read_dicom","read_gif","read_image","read_interfile","read_jpeg","read_jpeg2000","read_mrsid","read_pict","read_png","read_ppm","read_spr","read_srf","read_sylk","read_tiff","read_video","read_wav","read_wave","read_x11_bitmap","read_xwd","reads","readu","real_part","rebin","recall_commands","recon3","reduce_colors","reform","region_grow","register_cursor","regress","replicate","replicate_inplace","resolve_all","resolve_routine","restore","retall","return","reverse","rk4","roberts","rot","rotate","round","routine_filepath","routine_info","rs_test","s_test","save","savgol","scale3","scale3d","scatterplot","scatterplot3d","scope_level","scope_traceback","scope_varfetch","scope_varname","search2d","search3d","sem_create","sem_delete","sem_lock","sem_release","set_plot","set_shading","setenv","sfit","shade_surf","shade_surf_irr","shade_volume","shift","shift_diff","shmdebug","shmmap","shmunmap","shmvar","show3","showfont","signum","simplex","sin","sindgen","sinh","size","skewness","skip_lun","slicer3","slide_image","smooth","sobel","socket","sort","spawn","sph_4pnt","sph_scat","spher_harm","spl_init","spl_interp","spline","spline_p","sprsab","sprsax","sprsin","sprstp","sqrt","standardize","stddev","stop","strarr","strcmp","strcompress","streamline","streamline","stregex","stretch","string","strjoin","strlen","strlowcase","strmatch","strmessage","strmid","strpos","strput","strsplit","strtrim","struct_assign","struct_hide","strupcase","surface","surface","surfr","svdc","svdfit","svsol","swap_endian","swap_endian_inplace","symbol","systime","t_cvf","t_pdf","t3d","tag_names","tan","tanh","tek_color","temporary","terminal_size","tetra_clip","tetra_surface","tetra_volume","text","thin","thread","threed","tic","time_test2","timegen","timer","timestamp","timestamptovalues","tm_test","toc","total","trace","transpose","tri_surf","triangulate","trigrid","triql","trired","trisol","truncate_lun","ts_coef","ts_diff","ts_fcast","ts_smooth","tv","tvcrs","tvlct","tvrd","tvscl","typename","uindgen","uint","uintarr","ul64indgen","ulindgen","ulon64arr","ulonarr","ulong","ulong64","uniq","unsharp_mask","usersym","value_locate","variance","vector","vector_field","vel","velovect","vert_t3d","voigt","volume","voronoi","voxel_proj","wait","warp_tri","watershed","wdelete","wf_draw","where","widget_base","widget_button","widget_combobox","widget_control","widget_displaycontextmenu","widget_draw","widget_droplist","widget_event","widget_info","widget_label","widget_list","widget_propertysheet","widget_slider","widget_tab","widget_table","widget_text","widget_tree","widget_tree_move","widget_window","wiener_filter","window","window","write_bmp","write_csv","write_gif","write_image","write_jpeg","write_jpeg2000","write_nrif","write_pict","write_png","write_ppm","write_spr","write_srf","write_sylk","write_tiff","write_video","write_wav","write_wave","writeu","wset","wshow","wtn","wv_applet","wv_cwt","wv_cw_wavelet","wv_denoise","wv_dwt","wv_fn_coiflet","wv_fn_daubechies","wv_fn_gaussian","wv_fn_haar","wv_fn_morlet","wv_fn_paul","wv_fn_symlet","wv_import_data","wv_import_wavelet","wv_plot3d_wps","wv_plot_multires","wv_pwt","wv_tool_denoise","xbm_edit","xdisplayfile","xdxf","xfont","xinteranimate","xloadct","xmanager","xmng_tmpl","xmtool","xobjview","xobjview_rotate","xobjview_write_image","xpalette","xpcolor","xplot3d","xregistered","xroi","xsq_test","xsurface","xvaredit","xvolume","xvolume_rotate","xvolume_write_image","xyouts","zlib_compress","zlib_uncompress","zoom","zoom_24"];var _=i(a);var o=["begin","end","endcase","endfor","endwhile","endif","endrep","endforeach","break","case","continue","for","foreach","goto","if","then","else","repeat","until","switch","while","do","pro","function"];var l=i(o);var s=new RegExp("^[_a-z¡-￿][_a-z0-9¡-￿]*","i");var n=/[+\-*&=<>\/@#~$]/;var c=new RegExp("(and|or|eq|lt|le|gt|ge|ne|not)","i");function d(e){if(e.eatSpace())return null;if(e.match(";")){e.skipToEnd();return"comment"}if(e.match(/^[0-9\.+-]/,false)){if(e.match(/^[+-]?0x[0-9a-fA-F]+/))return"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))return"number";if(e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))return"number"}if(e.match(/^"([^"]|(""))*"/)){return"string"}if(e.match(/^'([^']|(''))*'/)){return"string"}if(e.match(l)){return"keyword"}if(e.match(_)){return"builtin"}if(e.match(s)){return"variable"}if(e.match(n)||e.match(c)){return"operator"}e.next();return null}const p={name:"idl",token:function(e){return d(e)},languageData:{autocomplete:a.concat(o)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7803.0c8929610218552319bf.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7803.0c8929610218552319bf.js deleted file mode 100644 index bb88637378a66f653413bcaedd12e77544467507..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7803.0c8929610218552319bf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7803],{57803:(t,e,a)=>{a.r(e);a.d(e,{Tag:()=>o,classHighlighter:()=>K,getStyleTags:()=>y,highlightCode:()=>k,highlightTree:()=>u,styleTags:()=>f,tagHighlighter:()=>p,tags:()=>I});var i=a(66575);var r=a.n(i);let n=0;class o{constructor(t,e,a,i){this.name=t;this.set=e;this.base=a;this.modified=i;this.id=n++}toString(){let{name:t}=this;for(let e of this.modified)if(e.name)t=`${e.name}(${t})`;return t}static define(t,e){let a=typeof t=="string"?t:"?";if(t instanceof o)e=t;if(e===null||e===void 0?void 0:e.base)throw new Error("Can not derive from a modified tag");let i=new o(a,[],null,[]);i.set.push(i);if(e)for(let r of e.set)i.set.push(r);return i}static defineModifier(t){let e=new l(t);return t=>{if(t.modified.indexOf(e)>-1)return t;return l.get(t.base||t,t.modified.concat(e).sort(((t,e)=>t.id-e.id)))}}}let s=0;class l{constructor(t){this.name=t;this.instances=[];this.id=s++}static get(t,e){if(!e.length)return t;let a=e[0].instances.find((a=>a.base==t&&c(e,a.modified)));if(a)return a;let i=[],r=new o(t.name,i,t,e);for(let o of e)o.instances.push(r);let n=h(e);for(let o of t.set)if(!o.modified.length)for(let t of n)i.push(l.get(o,t));return r}}function c(t,e){return t.length==e.length&&t.every(((t,a)=>t==e[a]))}function h(t){let e=[[]];for(let a=0;ae.length-t.length))}function f(t){let e=Object.create(null);for(let a in t){let i=t[a];if(!Array.isArray(i))i=[i];for(let t of a.split(" "))if(t){let a=[],r=2,n=t;for(let e=0;;){if(n=="..."&&e>0&&e+3==t.length){r=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(n);if(!i)throw new RangeError("Invalid path: "+t);a.push(i[0]=="*"?"":i[0][0]=='"'?JSON.parse(i[0]):i[0]);e+=i[0].length;if(e==t.length)break;let o=t[e++];if(e==t.length&&o=="!"){r=0;break}if(o!="/")throw new RangeError("Invalid path: "+t);n=t.slice(e)}let o=a.length-1,s=a[o];if(!s)throw new RangeError("Invalid path: "+t);let l=new d(i,r,o>0?a.slice(0,o):null);e[s]=l.sort(e[s])}}return g.add(e)}const g=new i.NodeProp;class d{constructor(t,e,a,i){this.tags=t;this.mode=e;this.context=a;this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(t){if(!t||t.depth{let e=r;for(let i of t){for(let t of i.set){let i=a[t.id];if(i){e=e?e+" "+i:i;break}}}return e},scope:i}}function m(t,e){let a=null;for(let i of t){let t=i.style(e);if(t)a=a?a+" "+t:t}return a}function u(t,e,a,i=0,r=t.length){let n=new b(i,Array.isArray(e)?e:[e],a);n.highlightRange(t.cursor(),i,r,"",n.highlighters);n.flush(r)}function k(t,e,a,i,r,n=0,o=t.length){let s=n;function l(e,a){if(e<=s)return;for(let n=t.slice(s,e),o=0;;){let t=n.indexOf("\n",o);let e=t<0?n.length:t;if(e>o)i(n.slice(o,e),a);if(t<0)break;r();o=t+1}s=e}u(e,a,((t,e,a)=>{l(t,"");l(e,a)}),n,o);l(o,"")}class b{constructor(t,e,a){this.at=t;this.highlighters=e;this.span=a;this.class=""}startSpan(t,e){if(e!=this.class){this.flush(t);if(t>this.at)this.at=t;this.class=e}}flush(t){if(t>this.at&&this.class)this.span(this.at,t,this.class)}highlightRange(t,e,a,r,n){let{type:o,from:s,to:l}=t;if(s>=a||l<=e)return;if(o.isTop)n=this.highlighters.filter((t=>!t.scope||t.scope(o)));let c=r;let h=y(t)||d.empty;let f=m(n,h.tags);if(f){if(c)c+=" ";c+=f;if(h.mode==1)r+=(r?" ":"")+f}this.startSpan(Math.max(e,s),c);if(h.opaque)return;let g=t.tree&&t.tree.prop(i.NodeProp.mounted);if(g&&g.overlay){let i=t.node.enter(g.overlay[0].from+s,1);let o=this.highlighters.filter((t=>!t.scope||t.scope(g.tree.type)));let h=t.firstChild();for(let f=0,d=s;;f++){let p=f=m||!t.nextSibling())break}}if(!p||m>a)break;d=p.to+s;if(d>e){this.highlightRange(i.cursor(),Math.max(e,p.from+s),Math.min(a,d),"",o);this.startSpan(Math.min(a,d),c)}}if(h)t.parent()}else if(t.firstChild()){if(g)r="";do{if(t.to<=e)continue;if(t.from>=a)break;this.highlightRange(t,e,a,r,n);this.startSpan(Math.min(a,t.to),c)}while(t.nextSibling());t.parent()}}}function y(t){let e=t.type.prop(g);while(e&&e.context&&!t.matchContext(e.context))e=e.next;return e||null}const N=o.define;const w=N(),v=N(),x=N(v),M=N(v),O=N(),S=N(O),C=N(O),R=N(),A=N(R),_=N(),T=N(),j=N(),q=N(j),E=N();const I={comment:w,lineComment:N(w),blockComment:N(w),docComment:N(w),name:v,variableName:N(v),typeName:x,tagName:N(x),propertyName:M,attributeName:N(M),className:N(v),labelName:N(v),namespace:N(v),macroName:N(v),literal:O,string:S,docString:N(S),character:N(S),attributeValue:N(S),number:C,integer:N(C),float:N(C),bool:N(O),regexp:N(O),escape:N(O),color:N(O),url:N(O),keyword:_,self:N(_),null:N(_),atom:N(_),unit:N(_),modifier:N(_),operatorKeyword:N(_),controlKeyword:N(_),definitionKeyword:N(_),moduleKeyword:N(_),operator:T,derefOperator:N(T),arithmeticOperator:N(T),logicOperator:N(T),bitwiseOperator:N(T),compareOperator:N(T),updateOperator:N(T),definitionOperator:N(T),typeOperator:N(T),controlOperator:N(T),punctuation:j,separator:N(j),bracket:q,angleBracket:N(q),squareBracket:N(q),paren:N(q),brace:N(q),content:R,heading:A,heading1:N(A),heading2:N(A),heading3:N(A),heading4:N(A),heading5:N(A),heading6:N(A),contentSeparator:N(R),list:N(R),quote:N(R),emphasis:N(R),strong:N(R),link:N(R),monospace:N(R),strikethrough:N(R),inserted:N(),deleted:N(),changed:N(),invalid:N(),meta:E,documentMeta:N(E),annotation:N(E),processingInstruction:N(E),definition:o.defineModifier("definition"),constant:o.defineModifier("constant"),function:o.defineModifier("function"),standard:o.defineModifier("standard"),local:o.defineModifier("local"),special:o.defineModifier("special")};for(let B in I){let t=I[B];if(t instanceof o)t.name=B}const K=p([{tag:I.link,class:"tok-link"},{tag:I.heading,class:"tok-heading"},{tag:I.emphasis,class:"tok-emphasis"},{tag:I.strong,class:"tok-strong"},{tag:I.keyword,class:"tok-keyword"},{tag:I.atom,class:"tok-atom"},{tag:I.bool,class:"tok-bool"},{tag:I.url,class:"tok-url"},{tag:I.labelName,class:"tok-labelName"},{tag:I.inserted,class:"tok-inserted"},{tag:I.deleted,class:"tok-deleted"},{tag:I.literal,class:"tok-literal"},{tag:I.string,class:"tok-string"},{tag:I.number,class:"tok-number"},{tag:[I.regexp,I.escape,I.special(I.string)],class:"tok-string2"},{tag:I.variableName,class:"tok-variableName"},{tag:I.local(I.variableName),class:"tok-variableName tok-local"},{tag:I.definition(I.variableName),class:"tok-variableName tok-definition"},{tag:I.special(I.variableName),class:"tok-variableName2"},{tag:I.definition(I.propertyName),class:"tok-propertyName tok-definition"},{tag:I.typeName,class:"tok-typeName"},{tag:I.namespace,class:"tok-namespace"},{tag:I.className,class:"tok-className"},{tag:I.macroName,class:"tok-macroName"},{tag:I.propertyName,class:"tok-propertyName"},{tag:I.operator,class:"tok-operator"},{tag:I.comment,class:"tok-comment"},{tag:I.meta,class:"tok-meta"},{tag:I.invalid,class:"tok-invalid"},{tag:I.punctuation,class:"tok-punctuation"}])}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7856.dd9523e57bed80f1f694.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7856.dd9523e57bed80f1f694.js deleted file mode 100644 index 30f814c5dfb48086975082fbd34c6a26fa84b68f..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7856.dd9523e57bed80f1f694.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7856,5606],{97856:(e,t,i)=>{var s=i(65606);!function(t,i){if(true)e.exports=i();else{var s,r}}(globalThis,(()=>(()=>{"use strict";var e={4567:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AccessibilityManager=void 0;const n=i(9042),o=i(9924),a=i(844),h=i(4725),c=i(2585),l=i(3656);let d=t.AccessibilityManager=class extends a.Disposable{constructor(e,t,i,s){super(),this._terminal=e,this._coreBrowserService=i,this._renderService=s,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=this._coreBrowserService.mainDocument.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let r=0;rthis._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new o.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize((e=>this._handleResize(e.rows)))),this.register(this._terminal.onRender((e=>this._refreshRows(e.start,e.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((e=>this._handleChar(e)))),this.register(this._terminal.onLineFeed((()=>this._handleChar("\n")))),this.register(this._terminal.onA11yTab((e=>this._handleTab(e)))),this.register(this._terminal.onKey((e=>this._handleKey(e.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this.register((0,l.addDisposableDomListener)(document,"selectionchange",(()=>this._handleSelectionChange()))),this.register(this._coreBrowserService.onDprChange((()=>this._refreshRowsDimensions()))),this._refreshRows(),this.register((0,a.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(e){for(let t=0;t0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,"\n"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=n.tooMuchOutput)))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){const i=this._terminal.buffer,s=i.lines.length.toString();for(let r=e;r<=t;r++){const e=i.lines.get(i.ydisp+r),t=[],n=e?.translateToString(!0,void 0,void 0,t)||"",o=(i.ydisp+r+1).toString(),a=this._rowElements[r];a&&(0===n.length?(a.innerText=" ",this._rowColumns.set(a,[0,1])):(a.textContent=n,this._rowColumns.set(a,t)),a.setAttribute("aria-posinset",o),a.setAttribute("aria-setsize",s))}this._announceCharacters()}_announceCharacters(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(e,t){const i=e.target,s=this._rowElements[0===t?1:this._rowElements.length-2];if(i.getAttribute("aria-posinset")===(0===t?"1":`${this._terminal.buffer.lines.length}`))return;if(e.relatedTarget!==s)return;let r,n;if(0===t?(r=i,n=this._rowElements.pop(),this._rowContainer.removeChild(n)):(r=this._rowElements.shift(),n=i,this._rowContainer.removeChild(r)),r.removeEventListener("focus",this._topBoundaryFocusListener),n.removeEventListener("focus",this._bottomBoundaryFocusListener),0===t){const e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement("afterbegin",e)}else{const e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===t?-1:1),this._rowElements[0===t?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(0===this._rowElements.length)return;const e=document.getSelection();if(!e)return;if(e.isCollapsed)return void(this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection());if(!e.anchorNode||!e.focusNode)return void console.error("anchorNode and/or focusNode are null");let t={node:e.anchorNode,offset:e.anchorOffset},i={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(i.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===i.node&&t.offset>i.offset)&&([t,i]=[i,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;const s=this._rowElements.slice(-1)[0];if(i.node.compareDocumentPosition(s)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(i={node:s,offset:s.textContent?.length??0}),!this._rowContainer.contains(i.node))return;const r=({node:e,offset:t})=>{const i=e instanceof Text?e.parentNode:e;let s=parseInt(i?.getAttribute("aria-posinset"),10)-1;if(isNaN(s))return console.warn("row is invalid. Race condition?"),null;const r=this._rowColumns.get(i);if(!r)return console.warn("columns is null. Race condition?"),null;let n=t=this._terminal.cols&&(++s,n=0),{row:s,column:n}},n=r(t),o=r(i);if(n&&o){if(n.row>o.row||n.row===o.row&&n.column>=o.column)throw new Error("invalid range");this._terminal.select(n.column,n.row,(o.row-n.row)*this._terminal.cols-n.column+o.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let t=this._rowContainer.children.length;te;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const e=this._coreBrowserService.mainDocument.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e{function i(e){return e.replace(/\r?\n/g,"\r")}function s(e,t){return t?"[200~"+e+"[201~":e}function r(e,t,r,n){e=s(e=i(e),r.decPrivateModes.bracketedPasteMode&&!0!==n.rawOptions.ignoreBracketedPasteMode),r.triggerDataEvent(e,!0),t.value=""}function n(e,t,i){const s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width="20px",t.style.height="20px",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex="1000",t.focus()}Object.defineProperty(t,"__esModule",{value:!0}),t.rightClickHandler=t.moveTextAreaUnderMouseCursor=t.paste=t.handlePasteEvent=t.copyHandler=t.bracketTextForPaste=t.prepareTextForTerminal=void 0,t.prepareTextForTerminal=i,t.bracketTextForPaste=s,t.copyHandler=function(e,t){e.clipboardData&&e.clipboardData.setData("text/plain",t.selectionText),e.preventDefault()},t.handlePasteEvent=function(e,t,i,s){e.stopPropagation(),e.clipboardData&&r(e.clipboardData.getData("text/plain"),t,i,s)},t.paste=r,t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(e,t,i,s,r){n(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}},7239:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorContrastCache=void 0;const s=i(1505);t.ColorContrastCache=class{constructor(){this._color=new s.TwoKeyMap,this._css=new s.TwoKeyMap}setCss(e,t,i){this._css.set(e,t,i)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,i){this._color.set(e,t,i)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}}},3656:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},3551:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Linkifier=void 0;const n=i(3656),o=i(8460),a=i(844),h=i(2585),c=i(4725);let l=t.Linkifier=class extends a.Disposable{get currentLink(){return this._currentLink}constructor(e,t,i,s,r){super(),this._element=e,this._mouseService=t,this._renderService=i,this._bufferService=s,this._linkProviderService=r,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new o.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new o.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,a.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,a.toDisposable)((()=>{this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this.register((0,n.addDisposableDomListener)(this._element,"mouseleave",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,n.addDisposableDomListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(e){this._lastMouseEvent=e;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;const i=e.composedPath();for(let s=0;s{e?.forEach((e=>{e.link.dispose&&e.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=e.y);let i=!1;for(const[s,r]of this._linkProviderService.linkProviders.entries())if(t){const t=this._activeProviderReplies?.get(s);t&&(i=this._checkLinkProviderResult(s,e,i))}else r.provideLinks(e.y,(t=>{if(this._isMouseOut)return;const r=t?.map((e=>({link:e})));this._activeProviderReplies?.set(s,r),i=this._checkLinkProviderResult(s,e,i),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)}))}_removeIntersectingLinks(e,t){const i=new Set;for(let s=0;se?this._bufferService.cols:s.link.range.end.x;for(let e=n;e<=o;e++){if(i.has(e)){r.splice(t--,1);break}i.add(e)}}}}_checkLinkProviderResult(e,t,i){if(!this._activeProviderReplies)return i;const s=this._activeProviderReplies.get(e);let r=!1;for(let n=0;nthis._linkAtPosition(e.link,t)));e&&(i=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!i)for(let n=0;nthis._linkAtPosition(e.link,t)));if(e){i=!0,this._handleNewLink(e);break}}return i}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){this._currentLink&&this._lastMouseEvent&&(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,a.disposeArray)(this._linkCacheDisposables))}_handleNewLink(e){if(!this._lastMouseEvent)return;const t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:void 0===e.link.decorations||e.link.decorations.underline,pointerCursor:void 0===e.link.decorations||e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:e=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",e))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:t=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((e=>{if(!this._currentLink)return;const t=0===e.start?0:e.start+1+this._bufferService.buffer.ydisp,i=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=t&&this._currentLink.link.range.end.y<=i&&(this._clearCurrentLink(t,i),this._lastMouseEvent)){const e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}}))))}_linkHover(e,t,i){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add("xterm-cursor-pointer")),t.hover&&t.hover(i,t.text)}_fireUnderlineEvent(e,t){const i=e.range,s=this._bufferService.buffer.ydisp,r=this._createLinkUnderlineEvent(i.start.x-1,i.start.y-s-1,i.end.x,i.end.y-s-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(r)}_linkLeave(e,t,i){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove("xterm-cursor-pointer")),t.leave&&t.leave(i,t.text)}_linkAtPosition(e,t){const i=e.range.start.y*this._bufferService.cols+e.range.start.x,s=e.range.end.y*this._bufferService.cols+e.range.end.x,r=t.y*this._bufferService.cols+t.x;return i<=r&&r<=s}_positionFromMouseEvent(e,t,i){const s=i.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(s)return{x:s[0],y:s[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,i,s,r){return{x1:e,y1:t,x2:i,y2:s,cols:this._bufferService.cols,fg:r}}};t.Linkifier=l=s([r(1,c.IMouseService),r(2,c.IRenderService),r(3,h.IBufferService),r(4,c.ILinkProviderService)],l)},9042:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0,t.promptLabel="Terminal input",t.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},3730:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkProvider=void 0;const n=i(511),o=i(2585);let a=t.OscLinkProvider=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){const i=this._bufferService.buffer.lines.get(e-1);if(!i)return void t(void 0);const s=[],r=this._optionsService.rawOptions.linkHandler,o=new n.CellData,a=i.getTrimmedLength();let c=-1,l=-1,d=!1;for(let n=0;nr?r.activate(e,t,i):h(0,t),hover:(e,t)=>r?.hover?.(e,t,i),leave:(e,t)=>r?.leave?.(e,t,i)})}d=!1,o.hasExtendedAttrs()&&o.extended.urlId?(l=n,c=o.extended.urlId):(l=-1,c=-1)}}t(s)}};function h(e,t){if(confirm(`Do you want to navigate to ${t}?\n\nWARNING: This link could potentially be dangerous`)){const e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn("Opening link blocked as opener could not be cleared")}}t.OscLinkProvider=a=s([r(0,o.IBufferService),r(1,o.IOptionsService),r(2,o.IOscLinkService)],a)},6193:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RenderDebouncer=void 0,t.RenderDebouncer=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(e){return this._refreshCallbacks.push(e),this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh()))),this._animationFrame}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return void this._runRefreshCallbacks();const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(const e of this._refreshCallbacks)e(0);this._refreshCallbacks=[]}}},3236:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Terminal=void 0;const s=i(3614),r=i(3656),n=i(3551),o=i(9042),a=i(3730),h=i(1680),c=i(3107),l=i(5744),d=i(2950),_=i(1296),u=i(428),f=i(4269),v=i(5114),p=i(8934),g=i(3230),m=i(9312),S=i(4725),C=i(6731),b=i(8055),w=i(8969),y=i(8460),E=i(844),k=i(6114),L=i(8437),D=i(2584),R=i(7399),x=i(5941),A=i(9074),B=i(2585),T=i(5435),M=i(4567),O=i(779);class P extends w.CoreTerminal{get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}constructor(e={}){super(e),this.browser=k,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this.register(new E.MutableDisposable),this._onCursorMove=this.register(new y.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new y.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new y.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new y.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new y.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new y.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new y.EventEmitter),this._onBlur=this.register(new y.EventEmitter),this._onA11yCharEmitter=this.register(new y.EventEmitter),this._onA11yTabEmitter=this.register(new y.EventEmitter),this._onWillOpen=this.register(new y.EventEmitter),this._setup(),this._decorationService=this._instantiationService.createInstance(A.DecorationService),this._instantiationService.setService(B.IDecorationService,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(O.LinkProviderService),this._instantiationService.setService(S.ILinkProviderService,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(a.OscLinkProvider)),this.register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this.register(this._inputHandler.onRequestRefreshRows(((e,t)=>this.refresh(e,t)))),this.register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this.register(this._inputHandler.onRequestReset((()=>this.reset()))),this.register(this._inputHandler.onRequestWindowsOptionsReport((e=>this._reportWindowsOptions(e)))),this.register(this._inputHandler.onColor((e=>this._handleColorEvent(e)))),this.register((0,y.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,y.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,y.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,y.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize((e=>this._afterResize(e.cols,e.rows)))),this.register((0,E.toDisposable)((()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)})))}_handleColorEvent(e){if(this._themeService)for(const t of e){let e,i="";switch(t.index){case 256:e="foreground",i="10";break;case 257:e="background",i="11";break;case 258:e="cursor",i="12";break;default:e="ansi",i="4;"+t.index}switch(t.type){case 0:const s=b.color.toColorRGB("ansi"===e?this._themeService.colors.ansi[t.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${D.C0.ESC}]${i};${(0,x.toRgbString)(s)}${D.C1_ESCAPED.ST}`);break;case 1:if("ansi"===e)this._themeService.modifyColors((e=>e.ansi[t.index]=b.channels.toColor(...t.color)));else{const i=e;this._themeService.modifyColors((e=>e[i]=b.channels.toColor(...t.color)))}break;case 2:this._themeService.restoreColor(t.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(D.C0.ESC+"[I"),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(D.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;const e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;const i=Math.min(this.buffer.x,this.cols-1),s=this._renderService.dimensions.css.cell.height,r=t.getWidth(i),n=this._renderService.dimensions.css.cell.width*r,o=this.buffer.y*this._renderService.dimensions.css.cell.height,a=i*this._renderService.dimensions.css.cell.width;this.textarea.style.left=a+"px",this.textarea.style.top=o+"px",this.textarea.style.width=n+"px",this.textarea.style.height=s+"px",this.textarea.style.lineHeight=s+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this.register((0,r.addDisposableDomListener)(this.element,"copy",(e=>{this.hasSelection()&&(0,s.copyHandler)(e,this._selectionService)})));const e=e=>(0,s.handlePasteEvent)(e,this.textarea,this.coreService,this.optionsService);this.register((0,r.addDisposableDomListener)(this.textarea,"paste",e)),this.register((0,r.addDisposableDomListener)(this.element,"paste",e)),k.isFirefox?this.register((0,r.addDisposableDomListener)(this.element,"mousedown",(e=>{2===e.button&&(0,s.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this.register((0,r.addDisposableDomListener)(this.element,"contextmenu",(e=>{(0,s.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),k.isLinux&&this.register((0,r.addDisposableDomListener)(this.element,"auxclick",(e=>{1===e.button&&(0,s.moveTextAreaUnderMouseCursor)(e,this.textarea,this.screenElement)})))}_bindKeys(){this.register((0,r.addDisposableDomListener)(this.textarea,"keyup",(e=>this._keyUp(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,"keydown",(e=>this._keyDown(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,"keypress",(e=>this._keyPress(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,"compositionstart",(()=>this._compositionHelper.compositionstart()))),this.register((0,r.addDisposableDomListener)(this.textarea,"compositionupdate",(e=>this._compositionHelper.compositionupdate(e)))),this.register((0,r.addDisposableDomListener)(this.textarea,"compositionend",(()=>this._compositionHelper.compositionend()))),this.register((0,r.addDisposableDomListener)(this.textarea,"input",(e=>this._inputEvent(e)),!0)),this.register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(e){if(!e)throw new Error("Terminal requires a parent element.");if(e.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this.element?.ownerDocument.defaultView&&this._coreBrowserService)return void(this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView));this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),e.appendChild(this.element);const t=this._document.createDocumentFragment();this._viewportElement=this._document.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),t.appendChild(this._viewportElement),this._viewportScrollArea=this._document.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=this._document.createElement("div"),this.screenElement.classList.add("xterm-screen"),this.register((0,r.addDisposableDomListener)(this.screenElement,"mousemove",(e=>this.updateCursorStyle(e)))),this._helperContainer=this._document.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),t.appendChild(this.screenElement),this.textarea=this._document.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",o.promptLabel),k.isChromeOS||this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this._coreBrowserService=this.register(this._instantiationService.createInstance(v.CoreBrowserService,this.textarea,e.ownerDocument.defaultView??window,this._document??"undefined"!=typeof window?window.document:null)),this._instantiationService.setService(S.ICoreBrowserService,this._coreBrowserService),this.register((0,r.addDisposableDomListener)(this.textarea,"focus",(e=>this._handleTextAreaFocus(e)))),this.register((0,r.addDisposableDomListener)(this.textarea,"blur",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(u.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(S.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(C.ThemeService),this._instantiationService.setService(S.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(f.CharacterJoinerService),this._instantiationService.setService(S.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(g.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(S.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange((e=>this._onRender.fire(e)))),this.onResize((e=>this._renderService.resize(e.cols,e.rows))),this._compositionView=this._document.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(d.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(p.MouseService),this._instantiationService.setService(S.IMouseService,this._mouseService),this.linkifier=this.register(this._instantiationService.createInstance(n.Linkifier,this.screenElement)),this.element.appendChild(t);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this.viewport=this._instantiationService.createInstance(h.Viewport,this._viewportElement,this._viewportScrollArea),this.viewport.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent,1))),this.register(this._inputHandler.onRequestSyncScrollBar((()=>this.viewport.syncScrollArea()))),this.register(this.viewport),this.register(this.onCursorMove((()=>{this._renderService.handleCursorMove(),this._syncTextArea()}))),this.register(this.onResize((()=>this._renderService.handleResize(this.cols,this.rows)))),this.register(this.onBlur((()=>this._renderService.handleBlur()))),this.register(this.onFocus((()=>this._renderService.handleFocus()))),this.register(this._renderService.onDimensionsChange((()=>this.viewport.syncScrollArea()))),this._selectionService=this.register(this._instantiationService.createInstance(m.SelectionService,this.element,this.screenElement,this.linkifier)),this._instantiationService.setService(S.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent)))),this.register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this.register(this._selectionService.onRequestRedraw((e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode)))),this.register(this._selectionService.onLinuxMouseSelection((e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()}))),this.register(this._onScroll.event((e=>{this.viewport.syncScrollArea(),this._selectionService.refresh()}))),this.register((0,r.addDisposableDomListener)(this._viewportElement,"scroll",(()=>this._selectionService.refresh()))),this.register(this._instantiationService.createInstance(c.BufferDecorationRenderer,this.screenElement)),this.register((0,r.addDisposableDomListener)(this.element,"mousedown",(e=>this._selectionService.handleMouseDown(e)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange("screenReaderMode",(e=>this._handleScreenReaderModeOptionChange(e)))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(l.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRulerWidth",(e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(l.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(_.DomRenderer,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){const e=this,t=this.element;function i(t){const i=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!i)return!1;let s,r;switch(t.overrideType||t.type){case"mousemove":r=32,void 0===t.buttons?(s=3,void 0!==t.button&&(s=t.button<3?t.button:3)):s=1&t.buttons?0:4&t.buttons?1:2&t.buttons?2:3;break;case"mouseup":r=0,s=t.button<3?t.button:3;break;case"mousedown":r=1,s=t.button<3?t.button:3;break;case"wheel":if(e._customWheelEventHandler&&!1===e._customWheelEventHandler(t))return!1;if(0===e.viewport.getLinesScrolled(t))return!1;r=t.deltaY<0?0:1,s=4;break;default:return!1}return!(void 0===r||void 0===s||s>4)&&e.coreMouseService.triggerMouseEvent({col:i.col,row:i.row,x:i.x,y:i.y,button:s,action:r,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}const s={mouseup:null,wheel:null,mousedrag:null,mousemove:null},n={mouseup:e=>(i(e),e.buttons||(this._document.removeEventListener("mouseup",s.mouseup),s.mousedrag&&this._document.removeEventListener("mousemove",s.mousedrag)),this.cancel(e)),wheel:e=>(i(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&i(e)},mousemove:e=>{e.buttons||i(e)}};this.register(this.coreMouseService.onProtocolChange((e=>{e?("debug"===this.optionsService.rawOptions.logLevel&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(e)),this.element.classList.add("enable-mouse-events"),this._selectionService.disable()):(this._logService.debug("Unbinding from mouse events."),this.element.classList.remove("enable-mouse-events"),this._selectionService.enable()),8&e?s.mousemove||(t.addEventListener("mousemove",n.mousemove),s.mousemove=n.mousemove):(t.removeEventListener("mousemove",s.mousemove),s.mousemove=null),16&e?s.wheel||(t.addEventListener("wheel",n.wheel,{passive:!1}),s.wheel=n.wheel):(t.removeEventListener("wheel",s.wheel),s.wheel=null),2&e?s.mouseup||(s.mouseup=n.mouseup):(this._document.removeEventListener("mouseup",s.mouseup),s.mouseup=null),4&e?s.mousedrag||(s.mousedrag=n.mousedrag):(this._document.removeEventListener("mousemove",s.mousedrag),s.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,r.addDisposableDomListener)(t,"mousedown",(e=>{if(e.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(e))return i(e),s.mouseup&&this._document.addEventListener("mouseup",s.mouseup),s.mousedrag&&this._document.addEventListener("mousemove",s.mousedrag),this.cancel(e)}))),this.register((0,r.addDisposableDomListener)(t,"wheel",(e=>{if(!s.wheel){if(this._customWheelEventHandler&&!1===this._customWheelEventHandler(e))return!1;if(!this.buffer.hasScrollback){const t=this.viewport.getLinesScrolled(e);if(0===t)return;const i=D.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(e.deltaY<0?"A":"B");let s="";for(let e=0;e{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(e),this.cancel(e)}),{passive:!0})),this.register((0,r.addDisposableDomListener)(t,"touchmove",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(e)?void 0:this.cancel(e)}),{passive:!1}))}refresh(e,t){this._renderService?.refreshRows(e,t)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t,i=0){1===i?(super.scrollLines(e,t,i),this.refresh(0,this.rows-1)):this.viewport?.scrollLines(e)}paste(e){(0,s.paste)(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");const t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(e,t,i){this._selectionService.setSelection(e,t,i)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,t){this._selectionService?.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;const t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;t||"Dead"!==e.key&&"AltGraph"!==e.key||(this._unprocessedDeadKey=!0);const i=(0,R.evaluateKeyboardEvent)(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===i.type||2===i.type){const t=this.rows-1;return this.scrollLines(2===i.type?-t:t),this.cancel(e,!0)}return 1===i.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(i.cancel&&this.cancel(e,!0),!i.key||!!(e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&1===e.key.length&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(i.key!==D.C0.ETX&&i.key!==D.C0.CR||(this.textarea.value=""),this._onKey.fire({key:i.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(i.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey?this.cancel(e,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(e,t){const i=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState("AltGraph");return"keypress"===t.type?i:i&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode}(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null===e.which||void 0===e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)||(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(e){if(e.data&&"insertText"===e.inputType&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){e!==this.cols||t!==this.rows?super.resize(e,t):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(e,t){this._charSizeService?.measure(),this.viewport?.syncScrollArea(!0)}clear(){if(0!==this.buffer.ybase||0!==this.buffer.y){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e{Object.defineProperty(t,"__esModule",{value:!0}),t.TimeBasedDebouncer=void 0,t.TimeBasedDebouncer=class{constructor(e,t=1e3){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t;const s=Date.now();if(s-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=s,this._innerRefresh();else if(!this._additionalRefreshRequested){const e=s-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),t)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}}},1680:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Viewport=void 0;const n=i(3656),o=i(4725),a=i(8460),h=i(844),c=i(2585);let l=t.Viewport=class extends h.Disposable{constructor(e,t,i,s,r,o,h,c){super(),this._viewportElement=e,this._scrollArea=t,this._bufferService=i,this._optionsService=s,this._charSizeService=r,this._renderService=o,this._coreBrowserService=h,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this._onRequestScrollLines=this.register(new a.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,n.addDisposableDomListener)(this._viewportElement,"scroll",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange((e=>this._renderDimensions=e))),this._handleThemeChange(c.colors),this.register(c.onChangeColors((e=>this._handleThemeChange(e)))),this.register(this._optionsService.onSpecificOptionChange("scrollback",(()=>this.syncScrollArea()))),setTimeout((()=>this.syncScrollArea()))}_handleThemeChange(e){this._viewportElement.style.backgroundColor=e.background.css}reset(){this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._coreBrowserService.window.requestAnimationFrame((()=>this.syncScrollArea()))}_refresh(e){if(e)return this._innerRefresh(),void(null!==this._refreshAnimationFrame&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));null===this._refreshAnimationFrame&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderDimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderDimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;const e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderDimensions.css.canvas.height);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}const e=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==e&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=e),this._refreshAnimationFrame=null}syncScrollArea(e=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(e);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(e)}_handleScroll(e){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._onRequestScrollLines.fire({amount:0,suppressScrollEvent:!0});const t=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._onRequestScrollLines.fire({amount:t,suppressScrollEvent:!0})}_smoothScroll(){if(this._isDisposed||-1===this._smoothScrollState.origin||-1===this._smoothScrollState.target)return;const e=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(e*(this._smoothScrollState.target-this._smoothScrollState.origin)),e<1?this._coreBrowserService.window.requestAnimationFrame((()=>this._smoothScroll())):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(e,t){const i=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(t<0&&0!==this._viewportElement.scrollTop||t>0&&i0&&(i=e),s=""}}return{bufferElements:r,cursorElement:i}}getLinesScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._bufferService.rows),t}_applyScrollModifier(e,t){const i=this._optionsService.rawOptions.fastScrollModifier;return"alt"===i&&t.altKey||"ctrl"===i&&t.ctrlKey||"shift"===i&&t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(e){this._lastTouchY=e.touches[0].pageY}handleTouchMove(e){const t=this._lastTouchY-e.touches[0].pageY;return this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}};t.Viewport=l=s([r(2,c.IBufferService),r(3,c.IOptionsService),r(4,o.ICharSizeService),r(5,o.IRenderService),r(6,o.ICoreBrowserService),r(7,o.IThemeService)],l)},3107:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferDecorationRenderer=void 0;const n=i(4725),o=i(844),a=i(2585);let h=t.BufferDecorationRenderer=class extends o.Disposable{constructor(e,t,i,s,r){super(),this._screenElement=e,this._bufferService=t,this._coreBrowserService=i,this._decorationService=s,this._renderService=r,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement("div"),this._container.classList.add("xterm-decoration-container"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange((()=>this._doRefreshDecorations()))),this.register(this._renderService.onDimensionsChange((()=>{this._dimensionsChanged=!0,this._queueRefresh()}))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt}))),this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh()))),this.register(this._decorationService.onDecorationRemoved((e=>this._removeDecoration(e)))),this.register((0,o.toDisposable)((()=>{this._container.remove(),this._decorationElements.clear()})))}_queueRefresh(){void 0===this._animationFrame&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this._doRefreshDecorations(),this._animationFrame=void 0})))}_doRefreshDecorations(){for(const e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){const t=this._coreBrowserService.mainDocument.createElement("div");t.classList.add("xterm-decoration"),t.classList.toggle("xterm-decoration-top-layer","top"===e?.options?.layer),t.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,t.style.height=(e.options.height||1)*this._renderService.dimensions.css.cell.height+"px",t.style.top=(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+"px",t.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;const i=e.options.x??0;return i&&i>this._bufferService.cols&&(t.style.display="none"),this._refreshXPosition(e,t),t}_refreshStyle(e){const t=e.marker.line-this._bufferService.buffers.active.ydisp;if(t<0||t>=this._bufferService.rows)e.element&&(e.element.style.display="none",e.onRenderEmitter.fire(e.element));else{let i=this._decorationElements.get(e);i||(i=this._createElement(e),e.element=i,this._decorationElements.set(e,i),this._container.appendChild(i),e.onDispose((()=>{this._decorationElements.delete(e),i.remove()}))),i.style.top=t*this._renderService.dimensions.css.cell.height+"px",i.style.display=this._altBufferIsActive?"none":"block",e.onRenderEmitter.fire(i)}}_refreshXPosition(e,t=e.element){if(!t)return;const i=e.options.x??0;"right"===(e.options.anchor||"left")?t.style.right=i?i*this._renderService.dimensions.css.cell.width+"px":"":t.style.left=i?i*this._renderService.dimensions.css.cell.width+"px":""}_removeDecoration(e){this._decorationElements.get(e)?.remove(),this._decorationElements.delete(e),e.dispose()}};t.BufferDecorationRenderer=h=s([r(1,a.IBufferService),r(2,n.ICoreBrowserService),r(3,a.IDecorationService),r(4,n.IRenderService)],h)},5871:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorZoneStore=void 0,t.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(e){if(e.options.overviewRulerOptions){for(const t of this._zones)if(t.color===e.options.overviewRulerOptions.color&&t.position===e.options.overviewRulerOptions.position){if(this._lineIntersectsZone(t,e.marker.line))return;if(this._lineAdjacentToZone(t,e.marker.line,e.options.overviewRulerOptions.position))return void this._addLineToZone(t,e.marker.line)}if(this._zonePoolIndex=e.startBufferLine&&t<=e.endBufferLine}_lineAdjacentToZone(e,t,i){return t>=e.startBufferLine-this._linePadding[i||"full"]&&t<=e.endBufferLine+this._linePadding[i||"full"]}_addLineToZone(e,t){e.startBufferLine=Math.min(e.startBufferLine,t),e.endBufferLine=Math.max(e.endBufferLine,t)}}},5744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OverviewRulerRenderer=void 0;const n=i(5871),o=i(4725),a=i(844),h=i(2585),c={full:0,left:0,center:0,right:0},l={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0};let _=t.OverviewRulerRenderer=class extends a.Disposable{get _width(){return this._optionsService.options.overviewRulerWidth||0}constructor(e,t,i,s,r,o,h){super(),this._viewportElement=e,this._screenElement=t,this._bufferService=i,this._decorationService=s,this._renderService=r,this._optionsService=o,this._coreBrowserService=h,this._colorZoneStore=new n.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add("xterm-decoration-overview-ruler"),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement);const c=this._canvas.getContext("2d");if(!c)throw new Error("Ctx cannot be null");this._ctx=c,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,a.toDisposable)((()=>{this._canvas?.remove()})))}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this.register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0))))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?"none":"block"}))),this.register(this._bufferService.onScroll((()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this.register(this._optionsService.onSpecificOptionChange("overviewRulerWidth",(()=>this._queueRefresh(!0)))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh(!0)))),this._queueRefresh(!0)}_refreshDrawConstants(){const e=Math.floor(this._canvas.width/3),t=Math.ceil(this._canvas.width/3);l.full=this._canvas.width,l.left=e,l.center=t,l.right=e,this._refreshDrawHeightConstants(),d.full=0,d.left=0,d.center=l.left,d.right=l.left+l.center}_refreshDrawHeightConstants(){c.full=Math.round(2*this._coreBrowserService.dpr);const e=this._canvas.height/this._bufferService.buffer.lines.length,t=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowserService.dpr);c.left=t,c.center=t,c.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(const t of this._decorationService.decorations)this._colorZoneStore.addDecoration(t);this._ctx.lineWidth=1;const e=this._colorZoneStore.zones;for(const t of e)"full"!==t.position&&this._renderColorZone(t);for(const t of e)"full"===t.position&&this._renderColorZone(t);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(d[e.position||"full"],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-c[e.position||"full"]/2),l[e.position||"full"],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+c[e.position||"full"]))}_queueRefresh(e,t){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=t||this._shouldUpdateAnchor,void 0===this._animationFrame&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};t.OverviewRulerRenderer=_=s([r(2,h.IBufferService),r(3,h.IDecorationService),r(4,o.IRenderService),r(5,h.IOptionsService),r(6,o.ICoreBrowserService)],_)},2950:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompositionHelper=void 0;const n=i(4725),o=i(2585),a=i(2584);let h=t.CompositionHelper=class{get isComposing(){return this._isComposing}constructor(e,t,i,s,r,n){this._textarea=e,this._compositionView=t,this._bufferService=i,this._optionsService=s,this._coreService=r,this._renderService=n,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=""}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._dataAlreadySent="",this._compositionView.classList.add("active")}compositionupdate(e){this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(e){if(this._isComposing||this._isSendingComposition){if(229===e.keyCode)return!1;if(16===e.keyCode||17===e.keyCode||18===e.keyCode)return!1;this._finalizeComposition(!1)}return 229!==e.keyCode||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(e){if(this._compositionView.classList.remove("active"),this._isComposing=!1,e){const e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let t;this._isSendingComposition=!1,e.start+=this._dataAlreadySent.length,t=this._isComposing?this._textarea.value.substring(e.start,e.end):this._textarea.value.substring(e.start),t.length>0&&this._coreService.triggerDataEvent(t,!0)}}),0)}else{this._isSendingComposition=!1;const e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){const e=this._textarea.value;setTimeout((()=>{if(!this._isComposing){const t=this._textarea.value,i=t.replace(e,"");this._dataAlreadySent=i,t.length>e.length?this._coreService.triggerDataEvent(i,!0):t.lengththis.updateCompositionElements(!0)),0)}}};t.CompositionHelper=h=s([r(2,o.IBufferService),r(3,o.IOptionsService),r(4,o.ICoreService),r(5,n.IRenderService)],h)},9806:(e,t)=>{function i(e,t,i){const s=i.getBoundingClientRect(),r=e.getComputedStyle(i),n=parseInt(r.getPropertyValue("padding-left")),o=parseInt(r.getPropertyValue("padding-top"));return[t.clientX-s.left-n,t.clientY-s.top-o]}Object.defineProperty(t,"__esModule",{value:!0}),t.getCoords=t.getCoordsRelativeToElement=void 0,t.getCoordsRelativeToElement=i,t.getCoords=function(e,t,s,r,n,o,a,h,c){if(!o)return;const l=i(e,t,s);return l?(l[0]=Math.ceil((l[0]+(c?a/2:0))/a),l[1]=Math.ceil(l[1]/h),l[0]=Math.min(Math.max(l[0],1),r+(c?1:0)),l[1]=Math.min(Math.max(l[1],1),n),l):void 0}},9504:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.moveToCellSequence=void 0;const s=i(2584);function r(e,t,i,s){const r=e-n(e,i),a=t-n(t,i),l=Math.abs(r-a)-function(e,t,i){let s=0;const r=e-n(e,i),a=t-n(t,i);for(let n=0;n=0&&et?"A":"B"}function a(e,t,i,s,r,n){let o=e,a=t,h="";for(;o!==i||a!==s;)o+=r?1:-1,r&&o>n.cols-1?(h+=n.buffer.translateBufferLineToString(a,!1,e,o),o=0,e=0,a++):!r&&o<0&&(h+=n.buffer.translateBufferLineToString(a,!1,0,e+1),o=n.cols-1,e=o,a--);return h+n.buffer.translateBufferLineToString(a,!1,e,o)}function h(e,t){const i=t?"O":"[";return s.C0.ESC+i+e}function c(e,t){e=Math.floor(e);let i="";for(let s=0;s0?s-n(s,o):t;const _=s,u=function(e,t,i,s,o,a){let h;return h=r(i,s,o,a).length>0?s-n(s,o):t,e=i&&he?"D":"C",c(Math.abs(o-e),h(d,s));d=l>t?"D":"C";const _=Math.abs(l-t);return c(function(e,t){return t.cols-e}(l>t?e:o,i)+(_-1)*i.cols+1+((l>t?o:e)-1),h(d,s))}},1296:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRenderer=void 0;const n=i(3787),o=i(2550),a=i(2223),h=i(6171),c=i(6052),l=i(4725),d=i(8055),_=i(8460),u=i(844),f=i(2585),v="xterm-dom-renderer-owner-",p="xterm-rows",g="xterm-fg-",m="xterm-bg-",S="xterm-focus",C="xterm-selection";let b=1,w=t.DomRenderer=class extends u.Disposable{constructor(e,t,i,s,r,a,l,d,f,g,m,S,w){super(),this._terminal=e,this._document=t,this._element=i,this._screenElement=s,this._viewportElement=r,this._helperContainer=a,this._linkifier2=l,this._charSizeService=f,this._optionsService=g,this._bufferService=m,this._coreBrowserService=S,this._themeService=w,this._terminalClass=b++,this._rowElements=[],this._selectionRenderModel=(0,c.createSelectionRenderModel)(),this.onRequestRedraw=this.register(new _.EventEmitter).event,this._rowContainer=this._document.createElement("div"),this._rowContainer.classList.add(p),this._rowContainer.style.lineHeight="normal",this._rowContainer.setAttribute("aria-hidden","true"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement("div"),this._selectionContainer.classList.add(C),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions=(0,h.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._themeService.onChangeColors((e=>this._injectCss(e)))),this._injectCss(this._themeService.colors),this._rowFactory=d.createInstance(n.DomRendererRowFactory,document),this._element.classList.add(v+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline((e=>this._handleLinkHover(e)))),this.register(this._linkifier2.onHideLinkUnderline((e=>this._handleLinkLeave(e)))),this.register((0,u.toDisposable)((()=>{this._element.classList.remove(v+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()}))),this._widthCache=new o.WidthCache(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){const e=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*e,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(const i of this._rowElements)i.style.width=`${this.dimensions.css.canvas.width}px`,i.style.height=`${this.dimensions.css.cell.height}px`,i.style.lineHeight=`${this.dimensions.css.cell.height}px`,i.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));const t=`${this._terminalSelector} .${p} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(e){this._themeStyleElement||(this._themeStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let t=`${this._terminalSelector} .${p} { color: ${e.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;t+=`${this._terminalSelector} .${p} .xterm-dim { color: ${d.color.multiplyOpacity(e.foreground,.5).css};}`,t+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;const i=`blink_underline_${this._terminalClass}`,s=`blink_bar_${this._terminalClass}`,r=`blink_block_${this._terminalClass}`;t+=`@keyframes ${i} { 50% { border-bottom-style: hidden; }}`,t+=`@keyframes ${s} { 50% { box-shadow: none; }}`,t+=`@keyframes ${r} { 0% { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css}; } 50% { background-color: inherit; color: ${e.cursor.css}; }}`,t+=`${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${i} 1s step-end infinite;}${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${s} 1s step-end infinite;}${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${r} 1s step-end infinite;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-block { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css};}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${e.cursor.css} !important; color: ${e.cursorAccent.css} !important;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${e.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,t+=`${this._terminalSelector} .${C} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${C} div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .${C} div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(const[n,o]of e.ansi.entries())t+=`${this._terminalSelector} .${g}${n} { color: ${o.css}; }${this._terminalSelector} .${g}${n}.xterm-dim { color: ${d.color.multiplyOpacity(o,.5).css}; }${this._terminalSelector} .${m}${n} { background-color: ${o.css}; }`;t+=`${this._terminalSelector} .${g}${a.INVERTED_DEFAULT_COLOR} { color: ${d.color.opaque(e.background).css}; }${this._terminalSelector} .${g}${a.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${d.color.multiplyOpacity(d.color.opaque(e.background),.5).css}; }${this._terminalSelector} .${m}${a.INVERTED_DEFAULT_COLOR} { background-color: ${e.foreground.css}; }`,this._themeStyleElement.textContent=t}_setDefaultSpacing(){const e=this.dimensions.css.cell.width-this._widthCache.get("W",!1,!1);this._rowContainer.style.letterSpacing=`${e}px`,this._rowFactory.defaultSpacing=e}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(e,t){for(let i=this._rowElements.length;i<=t;i++){const e=this._document.createElement("div");this._rowContainer.appendChild(e),this._rowElements.push(e)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(e,t){this._refreshRowElements(e,t),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(S),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(S),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(e,t,i){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(e,t,i),this.renderRows(0,this._bufferService.rows-1),!e||!t)return;this._selectionRenderModel.update(this._terminal,e,t,i);const s=this._selectionRenderModel.viewportStartRow,r=this._selectionRenderModel.viewportEndRow,n=this._selectionRenderModel.viewportCappedStartRow,o=this._selectionRenderModel.viewportCappedEndRow;if(n>=this._bufferService.rows||o<0)return;const a=this._document.createDocumentFragment();if(i){const i=e[0]>t[0];a.appendChild(this._createSelectionElement(n,i?t[0]:e[0],i?e[0]:t[0],o-n+1))}else{const i=s===n?e[0]:0,h=n===r?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(n,i,h));const c=o-n-1;if(a.appendChild(this._createSelectionElement(n+1,0,this._bufferService.cols,c)),n!==o){const e=r===o?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(o,0,e))}}this._selectionContainer.appendChild(a)}_createSelectionElement(e,t,i,s=1){const r=this._document.createElement("div"),n=t*this.dimensions.css.cell.width;let o=this.dimensions.css.cell.width*(i-t);return n+o>this.dimensions.css.canvas.width&&(o=this.dimensions.css.canvas.width-n),r.style.height=s*this.dimensions.css.cell.height+"px",r.style.top=e*this.dimensions.css.cell.height+"px",r.style.left=`${n}px`,r.style.width=`${o}px`,r}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(const e of this._rowElements)e.replaceChildren()}renderRows(e,t){const i=this._bufferService.buffer,s=i.ybase+i.y,r=Math.min(i.x,this._bufferService.cols-1),n=this._optionsService.rawOptions.cursorBlink,o=this._optionsService.rawOptions.cursorStyle,a=this._optionsService.rawOptions.cursorInactiveStyle;for(let h=e;h<=t;h++){const e=h+i.ydisp,t=this._rowElements[h],c=i.lines.get(e);if(!t||!c)break;t.replaceChildren(...this._rowFactory.createRow(c,e,e===s,o,a,r,n,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${v}${this._terminalClass}`}_handleLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_handleLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,t,i,s,r,n){i<0&&(e=0),s<0&&(t=0);const o=this._bufferService.rows-1;i=Math.max(Math.min(i,o),0),s=Math.max(Math.min(s,o),0),r=Math.min(r,this._bufferService.cols);const a=this._bufferService.buffer,h=a.ybase+a.y,c=Math.min(a.x,r-1),l=this._optionsService.rawOptions.cursorBlink,d=this._optionsService.rawOptions.cursorStyle,_=this._optionsService.rawOptions.cursorInactiveStyle;for(let u=i;u<=s;++u){const o=u+a.ydisp,f=this._rowElements[u],v=a.lines.get(o);if(!f||!v)break;f.replaceChildren(...this._rowFactory.createRow(v,o,o===h,d,_,c,l,this.dimensions.css.cell.width,this._widthCache,n?u===i?e:0:-1,n?(u===s?t:r)-1:-1))}}};t.DomRenderer=w=s([r(7,f.IInstantiationService),r(8,l.ICharSizeService),r(9,f.IOptionsService),r(10,f.IBufferService),r(11,l.ICoreBrowserService),r(12,l.IThemeService)],w)},3787:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRendererRowFactory=void 0;const n=i(2223),o=i(643),a=i(511),h=i(2585),c=i(8055),l=i(4725),d=i(4269),_=i(6171),u=i(3734);let f=t.DomRendererRowFactory=class{constructor(e,t,i,s,r,n,o){this._document=e,this._characterJoinerService=t,this._optionsService=i,this._coreBrowserService=s,this._coreService=r,this._decorationService=n,this._themeService=o,this._workCell=new a.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(e,t,i){this._selectionStart=e,this._selectionEnd=t,this._columnSelectMode=i}createRow(e,t,i,s,r,a,h,l,_,f,p){const g=[],m=this._characterJoinerService.getJoinedCharacters(t),S=this._themeService.colors;let C,b=e.getNoBgTrimmedLength();i&&b0&&M===m[0][0]){O=!0;const t=m.shift();I=new d.JoinedCellData(this._workCell,e.translateToString(!0,t[0],t[1]),t[1]-t[0]),P=t[1]-1,b=I.getWidth()}const H=this._isCellInSelection(M,t),F=i&&M===a,W=T&&M>=f&&M<=p;let U=!1;this._decorationService.forEachDecorationAtCell(M,t,void 0,(e=>{U=!0}));let N=I.getChars()||o.WHITESPACE_CELL_CHAR;if(" "===N&&(I.isUnderline()||I.isOverline())&&(N=" "),A=b*l-_.get(N,I.isBold(),I.isItalic()),C){if(w&&(H&&x||!H&&!x&&I.bg===E)&&(H&&x&&S.selectionForeground||I.fg===k)&&I.extended.ext===L&&W===D&&A===R&&!F&&!O&&!U){I.isInvisible()?y+=o.WHITESPACE_CELL_CHAR:y+=N,w++;continue}w&&(C.textContent=y),C=this._document.createElement("span"),w=0,y=""}else C=this._document.createElement("span");if(E=I.bg,k=I.fg,L=I.extended.ext,D=W,R=A,x=H,O&&a>=M&&a<=P&&(a=M),!this._coreService.isCursorHidden&&F&&this._coreService.isCursorInitialized)if(B.push("xterm-cursor"),this._coreBrowserService.isFocused)h&&B.push("xterm-cursor-blink"),B.push("bar"===s?"xterm-cursor-bar":"underline"===s?"xterm-cursor-underline":"xterm-cursor-block");else if(r)switch(r){case"outline":B.push("xterm-cursor-outline");break;case"block":B.push("xterm-cursor-block");break;case"bar":B.push("xterm-cursor-bar");break;case"underline":B.push("xterm-cursor-underline")}if(I.isBold()&&B.push("xterm-bold"),I.isItalic()&&B.push("xterm-italic"),I.isDim()&&B.push("xterm-dim"),y=I.isInvisible()?o.WHITESPACE_CELL_CHAR:I.getChars()||o.WHITESPACE_CELL_CHAR,I.isUnderline()&&(B.push(`xterm-underline-${I.extended.underlineStyle}`)," "===y&&(y=" "),!I.isUnderlineColorDefault()))if(I.isUnderlineColorRGB())C.style.textDecorationColor=`rgb(${u.AttributeData.toColorRGB(I.getUnderlineColor()).join(",")})`;else{let e=I.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&I.isBold()&&e<8&&(e+=8),C.style.textDecorationColor=S.ansi[e].css}I.isOverline()&&(B.push("xterm-overline")," "===y&&(y=" ")),I.isStrikethrough()&&B.push("xterm-strikethrough"),W&&(C.style.textDecoration="underline");let $=I.getFgColor(),j=I.getFgColorMode(),z=I.getBgColor(),K=I.getBgColorMode();const q=!!I.isInverse();if(q){const e=$;$=z,z=e;const t=j;j=K,K=t}let V,G,X,J=!1;switch(this._decorationService.forEachDecorationAtCell(M,t,void 0,(e=>{"top"!==e.options.layer&&J||(e.backgroundColorRGB&&(K=50331648,z=e.backgroundColorRGB.rgba>>8&16777215,V=e.backgroundColorRGB),e.foregroundColorRGB&&(j=50331648,$=e.foregroundColorRGB.rgba>>8&16777215,G=e.foregroundColorRGB),J="top"===e.options.layer)})),!J&&H&&(V=this._coreBrowserService.isFocused?S.selectionBackgroundOpaque:S.selectionInactiveBackgroundOpaque,z=V.rgba>>8&16777215,K=50331648,J=!0,S.selectionForeground&&(j=50331648,$=S.selectionForeground.rgba>>8&16777215,G=S.selectionForeground)),J&&B.push("xterm-decoration-top"),K){case 16777216:case 33554432:X=S.ansi[z],B.push(`xterm-bg-${z}`);break;case 50331648:X=c.channels.toColor(z>>16,z>>8&255,255&z),this._addStyle(C,`background-color:#${v((z>>>0).toString(16),"0",6)}`);break;default:q?(X=S.foreground,B.push(`xterm-bg-${n.INVERTED_DEFAULT_COLOR}`)):X=S.background}switch(V||I.isDim()&&(V=c.color.multiplyOpacity(X,.5)),j){case 16777216:case 33554432:I.isBold()&&$<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&($+=8),this._applyMinimumContrast(C,X,S.ansi[$],I,V,void 0)||B.push(`xterm-fg-${$}`);break;case 50331648:const e=c.channels.toColor($>>16&255,$>>8&255,255&$);this._applyMinimumContrast(C,X,e,I,V,G)||this._addStyle(C,`color:#${v($.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(C,X,S.foreground,I,V,G)||q&&B.push(`xterm-fg-${n.INVERTED_DEFAULT_COLOR}`)}B.length&&(C.className=B.join(" "),B.length=0),F||O||U?C.textContent=y:w++,A!==this.defaultSpacing&&(C.style.letterSpacing=`${A}px`),g.push(C),M=P}return C&&w&&(C.textContent=y),g}_applyMinimumContrast(e,t,i,s,r,n){if(1===this._optionsService.rawOptions.minimumContrastRatio||(0,_.treatGlyphAsBackgroundColor)(s.getCode()))return!1;const o=this._getContrastCache(s);let a;if(r||n||(a=o.getColor(t.rgba,i.rgba)),void 0===a){const e=this._optionsService.rawOptions.minimumContrastRatio/(s.isDim()?2:1);a=c.color.ensureContrastRatio(r||t,n||i,e),o.setColor((r||t).rgba,(n||i).rgba,a??null)}return!!a&&(this._addStyle(e,`color:${a.css}`),!0)}_getContrastCache(e){return e.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(e,t){e.setAttribute("style",`${e.getAttribute("style")||""}${t};`)}_isCellInSelection(e,t){const i=this._selectionStart,s=this._selectionEnd;return!(!i||!s)&&(this._columnSelectMode?i[0]<=s[0]?e>=i[0]&&t>=i[1]&&e=i[1]&&e>=s[0]&&t<=s[1]:t>i[1]&&t=i[0]&&e=i[0])}};function v(e,t,i){for(;e.length{Object.defineProperty(t,"__esModule",{value:!0}),t.WidthCache=void 0,t.WidthCache=class{constructor(e,t){this._flat=new Float32Array(256),this._font="",this._fontSize=0,this._weight="normal",this._weightBold="bold",this._measureElements=[],this._container=e.createElement("div"),this._container.classList.add("xterm-width-cache-measure-container"),this._container.setAttribute("aria-hidden","true"),this._container.style.whiteSpace="pre",this._container.style.fontKerning="none";const i=e.createElement("span");i.classList.add("xterm-char-measure-element");const s=e.createElement("span");s.classList.add("xterm-char-measure-element"),s.style.fontWeight="bold";const r=e.createElement("span");r.classList.add("xterm-char-measure-element"),r.style.fontStyle="italic";const n=e.createElement("span");n.classList.add("xterm-char-measure-element"),n.style.fontWeight="bold",n.style.fontStyle="italic",this._measureElements=[i,s,r,n],this._container.appendChild(i),this._container.appendChild(s),this._container.appendChild(r),this._container.appendChild(n),t.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(e,t,i,s){e===this._font&&t===this._fontSize&&i===this._weight&&s===this._weightBold||(this._font=e,this._fontSize=t,this._weight=i,this._weightBold=s,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${i}`,this._measureElements[1].style.fontWeight=`${s}`,this._measureElements[2].style.fontWeight=`${i}`,this._measureElements[3].style.fontWeight=`${s}`,this.clear())}get(e,t,i){let s=0;if(!t&&!i&&1===e.length&&(s=e.charCodeAt(0))<256){if(-9999!==this._flat[s])return this._flat[s];const t=this._measure(e,0);return t>0&&(this._flat[s]=t),t}let r=e;t&&(r+="B"),i&&(r+="I");let n=this._holey.get(r);if(void 0===n){let s=0;t&&(s|=1),i&&(s|=2),n=this._measure(e,s),n>0&&this._holey.set(r,n)}return n}_measure(e,t){const i=this._measureElements[t];return i.textContent=e.repeat(32),i.offsetWidth/32}}},2223:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(6114);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?"bottom":"ideographic"},6171:(e,t)=>{function i(e){return 57508<=e&&e<=57558}function s(e){return e>=128512&&e<=128591||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=129280&&e<=129535||e>=127462&&e<=127487}Object.defineProperty(t,"__esModule",{value:!0}),t.computeNextVariantOffset=t.createRenderDimensions=t.treatGlyphAsBackgroundColor=t.allowRescaling=t.isEmoji=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error("value must not be falsy");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.isEmoji=s,t.allowRescaling=function(e,t,r,n){return 1===t&&r>Math.ceil(1.5*n)&&void 0!==e&&e>255&&!s(e)&&!i(e)&&!function(e){return 57344<=e&&e<=63743}(e)},t.treatGlyphAsBackgroundColor=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}},t.computeNextVariantOffset=function(e,t,i=0){return(e-(2*Math.round(t)-i))%(2*Math.round(t))}},6052:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createSelectionRenderModel=void 0;class i{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,i,s=!1){if(this.selectionStart=t,this.selectionEnd=i,!t||!i||t[0]===i[0]&&t[1]===i[1])return void this.clear();const r=e.buffers.active.ydisp,n=t[1]-r,o=i[1]-r,a=Math.max(n,0),h=Math.min(o,e.rows-1);a>=e.rows||h<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=n,this.viewportEndRow=o,this.viewportCappedStartRow=a,this.viewportCappedEndRow=h,this.startCol=t[0],this.endCol=i[0])}isCellSelected(e,t,i){return!!this.hasSelection&&(i-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&i>=this.viewportCappedStartRow&&t=this.viewportCappedStartRow&&t>=this.endCol&&i<=this.viewportCappedEndRow:i>this.viewportStartRow&&i=this.startCol&&t=this.startCol)}}t.createSelectionRenderModel=function(){return new i}},456:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionModel=void 0,t.SelectionModel=class{constructor(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?e%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)-1]:[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[Math.max(e,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){const e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])}handleTrim(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharSizeService=void 0;const n=i(2585),o=i(8460),a=i(844);let h=t.CharSizeService=class extends a.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(e,t,i){super(),this._optionsService=i,this.width=0,this.height=0,this._onCharSizeChange=this.register(new o.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this.register(new d(this._optionsService))}catch{this._measureStrategy=this.register(new l(e,t,this._optionsService))}this.register(this._optionsService.onMultipleOptionChange(["fontFamily","fontSize"],(()=>this.measure())))}measure(){const e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};t.CharSizeService=h=s([r(2,n.IOptionsService)],h);class c extends a.Disposable{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(e,t){void 0!==e&&e>0&&void 0!==t&&t>0&&(this._result.width=e,this._result.height=t)}}class l extends c{constructor(e,t,i){super(),this._document=e,this._parentElement=t,this._optionsService=i,this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W".repeat(32),this._measureElement.setAttribute("aria-hidden","true"),this._measureElement.style.whiteSpace="pre",this._measureElement.style.fontKerning="none",this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}}class d extends c{constructor(e){super(),this._optionsService=e,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext("2d");const t=this._ctx.measureText("W");if(!("width"in t&&"fontBoundingBoxAscent"in t&&"fontBoundingBoxDescent"in t))throw new Error("Required font metrics not supported")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;const e=this._ctx.measureText("W");return this._validateAndSet(e.width,e.fontBoundingBoxAscent+e.fontBoundingBoxDescent),this._result}}},4269:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;const n=i(3734),o=i(643),a=i(511),h=i(2585);class c extends n.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData="",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=c;let l=t.CharacterJoinerService=class e{constructor(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new a.CellData}register(e){const t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id}deregister(e){for(let t=0;t1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreBrowserService=void 0;const s=i(844),r=i(8460),n=i(3656);class o extends s.Disposable{constructor(e,t,i){super(),this._textarea=e,this._window=t,this.mainDocument=i,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=new a(this._window),this._onDprChange=this.register(new r.EventEmitter),this.onDprChange=this._onDprChange.event,this._onWindowChange=this.register(new r.EventEmitter),this.onWindowChange=this._onWindowChange.event,this.register(this.onWindowChange((e=>this._screenDprMonitor.setWindow(e)))),this.register((0,r.forwardEvent)(this._screenDprMonitor.onDprChange,this._onDprChange)),this._textarea.addEventListener("focus",(()=>this._isFocused=!0)),this._textarea.addEventListener("blur",(()=>this._isFocused=!1))}get window(){return this._window}set window(e){this._window!==e&&(this._window=e,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return void 0===this._cachedIsFocused&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask((()=>this._cachedIsFocused=void 0))),this._cachedIsFocused}}t.CoreBrowserService=o;class a extends s.Disposable{constructor(e){super(),this._parentWindow=e,this._windowResizeListener=this.register(new s.MutableDisposable),this._onDprChange=this.register(new r.EventEmitter),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this.register((0,s.toDisposable)((()=>this.clearListener())))}setWindow(e){this._parentWindow=e,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=(0,n.addDisposableDomListener)(this._parentWindow,"resize",(()=>this._setDprAndFireIfDiffers()))}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}}},779:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkProviderService=void 0;const s=i(844);class r extends s.Disposable{constructor(){super(),this.linkProviders=[],this.register((0,s.toDisposable)((()=>this.linkProviders.length=0)))}registerLinkProvider(e){return this.linkProviders.push(e),{dispose:()=>{const t=this.linkProviders.indexOf(e);-1!==t&&this.linkProviders.splice(t,1)}}}}t.LinkProviderService=r},8934:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MouseService=void 0;const n=i(4725),o=i(9806);let a=t.MouseService=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,i,s,r){return(0,o.getCoords)(window,e,t,i,s,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,r)}getMouseReportCoords(e,t){const i=(0,o.getCoordsRelativeToElement)(window,e,t);if(this._charSizeService.hasValidSize)return i[0]=Math.min(Math.max(i[0],0),this._renderService.dimensions.css.canvas.width-1),i[1]=Math.min(Math.max(i[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(i[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(i[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(i[0]),y:Math.floor(i[1])}}};t.MouseService=a=s([r(0,n.IRenderService),r(1,n.ICharSizeService)],a)},3230:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenderService=void 0;const n=i(6193),o=i(4725),a=i(8460),h=i(844),c=i(7226),l=i(2585);let d=t.RenderService=class extends h.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(e,t,i,s,r,o,l,d){super(),this._rowCount=e,this._charSizeService=s,this._renderer=this.register(new h.MutableDisposable),this._pausedResizeTask=new c.DebouncedIdleTask,this._observerDisposable=this.register(new h.MutableDisposable),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new a.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new a.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new a.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new a.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new n.RenderDebouncer(((e,t)=>this._renderRows(e,t)),l),this.register(this._renderDebouncer),this.register(l.onDprChange((()=>this.handleDevicePixelRatioChange()))),this.register(o.onResize((()=>this._fullRefresh()))),this.register(o.buffers.onBufferActivate((()=>this._renderer.value?.clear()))),this.register(i.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._charSizeService.onCharSizeChange((()=>this.handleCharSizeChanged()))),this.register(r.onDecorationRegistered((()=>this._fullRefresh()))),this.register(r.onDecorationRemoved((()=>this._fullRefresh()))),this.register(i.onMultipleOptionChange(["customGlyphs","drawBoldTextInBrightColors","letterSpacing","lineHeight","fontFamily","fontSize","fontWeight","fontWeightBold","minimumContrastRatio","rescaleOverlappingGlyphs"],(()=>{this.clear(),this.handleResize(o.cols,o.rows),this._fullRefresh()}))),this.register(i.onMultipleOptionChange(["cursorBlink","cursorStyle"],(()=>this.refreshRows(o.buffer.y,o.buffer.y,!0)))),this.register(d.onChangeColors((()=>this._fullRefresh()))),this._registerIntersectionObserver(l.window,t),this.register(l.onWindowChange((e=>this._registerIntersectionObserver(e,t))))}_registerIntersectionObserver(e,t){if("IntersectionObserver"in e){const i=new e.IntersectionObserver((e=>this._handleIntersectionChange(e[e.length-1])),{threshold:0});i.observe(t),this._observerDisposable.value=(0,h.toDisposable)((()=>i.disconnect()))}}_handleIntersectionChange(e){this._isPaused=void 0===e.isIntersecting?0===e.intersectionRatio:!e.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,t,i=!1){this._isPaused?this._needsFullRefresh=!0:(i||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,t,this._rowCount))}_renderRows(e,t){this._renderer.value&&(e=Math.min(e,this._rowCount-1),t=Math.min(t,this._rowCount-1),this._renderer.value.renderRows(e,t),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:t}),this._onRender.fire({start:e,end:t}),this._isNextRenderRedrawOnly=!0)}resize(e,t){this._rowCount=t,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(e){this._renderer.value=e,this._renderer.value&&(this._renderer.value.onRequestRedraw((e=>this.refreshRows(e.start,e.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(e,t){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set((()=>this._renderer.value?.handleResize(e,t))):this._renderer.value.handleResize(e,t),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(e,t,i){this._selectionState.start=e,this._selectionState.end=t,this._selectionState.columnSelectMode=i,this._renderer.value?.handleSelectionChanged(e,t,i)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};t.RenderService=d=s([r(2,l.IOptionsService),r(3,o.ICharSizeService),r(4,l.IDecorationService),r(5,l.IBufferService),r(6,o.ICoreBrowserService),r(7,o.IThemeService)],d)},9312:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionService=void 0;const n=i(9806),o=i(9504),a=i(456),h=i(4725),c=i(8460),l=i(844),d=i(6114),_=i(4841),u=i(511),f=i(2585),v=String.fromCharCode(160),p=new RegExp(v,"g");let g=t.SelectionService=class extends l.Disposable{constructor(e,t,i,s,r,n,o,h,d){super(),this._element=e,this._screenElement=t,this._linkifier=i,this._bufferService=s,this._coreService=r,this._mouseService=n,this._optionsService=o,this._renderService=h,this._coreBrowserService=d,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new u.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new c.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new c.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new c.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new c.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=e=>this._handleMouseMove(e),this._mouseUpListener=e=>this._handleMouseUp(e),this._coreService.onUserInput((()=>{this.hasSelection&&this.clearSelection()})),this._trimListener=this._bufferService.buffer.lines.onTrim((e=>this._handleTrim(e))),this.register(this._bufferService.buffers.onBufferActivate((e=>this._handleBufferActivate(e)))),this.enable(),this._model=new a.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,l.toDisposable)((()=>{this._removeMouseDownListeners()})))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t||e[0]===t[0]&&e[1]===t[1])}get selectionText(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return"";const i=this._bufferService.buffer,s=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return"";const r=e[0]e.replace(p," "))).join(d.isWindows?"\r\n":"\n")}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),d.isLinux&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})}_isClickInSelection(e){const t=this._getMouseBufferCoords(e),i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!!(i&&s&&t)&&this._areCoordsInSelection(t,i,s)}isCellInSelection(e,t){const i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!(!i||!s)&&this._areCoordsInSelection([e,t],i,s)}_areCoordsInSelection(e,t,i){return e[1]>t[1]&&e[1]=t[0]&&e[0]=t[0]}_selectWordAtCursor(e,t){const i=this._linkifier.currentLink?.link?.range;if(i)return this._model.selectionStart=[i.start.x-1,i.start.y-1],this._model.selectionStartLength=(0,_.getRangeLength)(i,this._bufferService.cols),this._model.selectionEnd=void 0,!0;const s=this._getMouseBufferCoords(e);return!!s&&(this._selectWordAt(s,t),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){const t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=(0,n.getCoordsRelativeToElement)(this._coreBrowserService.window,e,this._screenElement)[1];const i=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=i?0:(t>i&&(t-=i),t=Math.min(Math.max(t,-50),50),t/=50,t/Math.abs(t)+Math.round(14*t))}shouldForceSelection(e){return d.isMac?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):1===e.detail?this._handleSingleClick(e):2===e.detail?this._handleDoubleClick(e):3===e.detail&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval((()=>this._dragScroll()),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;const t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&0===t.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){const t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(d.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;const t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));const i=this._bufferService.buffer;if(this._model.selectionEnd[1]0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){const t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){const t=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(t&&void 0!==t[0]&&void 0!==t[1]){const e=(0,o.moveToCellSequence)(t[0]-1,t[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,i=!(!e||!t||e[0]===t[0]&&e[1]===t[1]);i?e&&t&&(this._oldSelectionStart&&this._oldSelectionEnd&&e[0]===this._oldSelectionStart[0]&&e[1]===this._oldSelectionStart[1]&&t[0]===this._oldSelectionEnd[0]&&t[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(e,t,i)):this._oldHasSelection&&this._fireOnSelectionChange(e,t,i)}_fireOnSelectionChange(e,t,i){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=i,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim((e=>this._handleTrim(e)))}_convertViewportColToCharacterIndex(e,t){let i=t;for(let s=0;t>=s;s++){const r=e.loadCell(s,this._workCell).getChars().length;0===this._workCell.getWidth()?i--:r>1&&t!==s&&(i+=r-1)}return i}setSelection(e,t,i){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=i,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,i=!0,s=!0){if(e[0]>=this._bufferService.cols)return;const r=this._bufferService.buffer,n=r.lines.get(e[1]);if(!n)return;const o=r.translateBufferLineToString(e[1],!1);let a=this._convertViewportColToCharacterIndex(n,e[0]),h=a;const c=e[0]-a;let l=0,d=0,_=0,u=0;if(" "===o.charAt(a)){for(;a>0&&" "===o.charAt(a-1);)a--;for(;h1&&(u+=s-1,h+=s-1);t>0&&a>0&&!this._isCharWordSeparator(n.loadCell(t-1,this._workCell));){n.loadCell(t-1,this._workCell);const e=this._workCell.getChars().length;0===this._workCell.getWidth()?(l++,t--):e>1&&(_+=e-1,a-=e-1),a--,t--}for(;i1&&(u+=e-1,h+=e-1),h++,i++}}h++;let f=a+c-l+_,v=Math.min(this._bufferService.cols,h-a+l+d-_-u);if(t||""!==o.slice(a,h).trim()){if(i&&0===f&&32!==n.getCodePoint(0)){const t=r.lines.get(e[1]-1);if(t&&n.isWrapped&&32!==t.getCodePoint(this._bufferService.cols-1)){const t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){const e=this._bufferService.cols-t.start;f-=e,v+=e}}}if(s&&f+v===this._bufferService.cols&&32!==n.getCodePoint(this._bufferService.cols-1)){const t=r.lines.get(e[1]+1);if(t?.isWrapped&&32!==t.getCodePoint(0)){const t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(v+=t.length)}}return{start:f,length:v}}}_selectWordAt(e,t){const i=this._getWordAt(e,t);if(i){for(;i.start<0;)i.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[i.start,e[1]],this._model.selectionStartLength=i.length}}_selectToWordAt(e){const t=this._getWordAt(e,!0);if(t){let i=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,i--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,i++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,i]}}_isCharWordSeparator(e){return 0!==e.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){const t=this._bufferService.buffer.getWrappedRangeForLine(e),i={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,_.getRangeLength)(i,this._bufferService.cols)}};t.SelectionService=g=s([r(3,f.IBufferService),r(4,f.ICoreService),r(5,h.IMouseService),r(6,f.IOptionsService),r(7,h.IRenderService),r(8,h.ICoreBrowserService)],g)},4725:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ILinkProviderService=t.IThemeService=t.ICharacterJoinerService=t.ISelectionService=t.IRenderService=t.IMouseService=t.ICoreBrowserService=t.ICharSizeService=void 0;const s=i(8343);t.ICharSizeService=(0,s.createDecorator)("CharSizeService"),t.ICoreBrowserService=(0,s.createDecorator)("CoreBrowserService"),t.IMouseService=(0,s.createDecorator)("MouseService"),t.IRenderService=(0,s.createDecorator)("RenderService"),t.ISelectionService=(0,s.createDecorator)("SelectionService"),t.ICharacterJoinerService=(0,s.createDecorator)("CharacterJoinerService"),t.IThemeService=(0,s.createDecorator)("ThemeService"),t.ILinkProviderService=(0,s.createDecorator)("LinkProviderService")},6731:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeService=t.DEFAULT_ANSI_COLORS=void 0;const n=i(7239),o=i(8055),a=i(8460),h=i(844),c=i(2585),l=o.css.toColor("#ffffff"),d=o.css.toColor("#000000"),_=o.css.toColor("#ffffff"),u=o.css.toColor("#000000"),f={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117};t.DEFAULT_ANSI_COLORS=Object.freeze((()=>{const e=[o.css.toColor("#2e3436"),o.css.toColor("#cc0000"),o.css.toColor("#4e9a06"),o.css.toColor("#c4a000"),o.css.toColor("#3465a4"),o.css.toColor("#75507b"),o.css.toColor("#06989a"),o.css.toColor("#d3d7cf"),o.css.toColor("#555753"),o.css.toColor("#ef2929"),o.css.toColor("#8ae234"),o.css.toColor("#fce94f"),o.css.toColor("#729fcf"),o.css.toColor("#ad7fa8"),o.css.toColor("#34e2e2"),o.css.toColor("#eeeeec")],t=[0,95,135,175,215,255];for(let i=0;i<216;i++){const s=t[i/36%6|0],r=t[i/6%6|0],n=t[i%6];e.push({css:o.channels.toCss(s,r,n),rgba:o.channels.toRgba(s,r,n)})}for(let i=0;i<24;i++){const t=8+10*i;e.push({css:o.channels.toCss(t,t,t),rgba:o.channels.toRgba(t,t,t)})}return e})());let v=t.ThemeService=class extends h.Disposable{get colors(){return this._colors}constructor(e){super(),this._optionsService=e,this._contrastCache=new n.ColorContrastCache,this._halfContrastCache=new n.ColorContrastCache,this._onChangeColors=this.register(new a.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:l,background:d,cursor:_,cursorAccent:u,selectionForeground:void 0,selectionBackgroundTransparent:f,selectionBackgroundOpaque:o.color.blend(d,f),selectionInactiveBackgroundTransparent:f,selectionInactiveBackgroundOpaque:o.color.blend(d,f),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange("minimumContrastRatio",(()=>this._contrastCache.clear()))),this.register(this._optionsService.onSpecificOptionChange("theme",(()=>this._setTheme(this._optionsService.rawOptions.theme))))}_setTheme(e={}){const i=this._colors;if(i.foreground=p(e.foreground,l),i.background=p(e.background,d),i.cursor=p(e.cursor,_),i.cursorAccent=p(e.cursorAccent,u),i.selectionBackgroundTransparent=p(e.selectionBackground,f),i.selectionBackgroundOpaque=o.color.blend(i.background,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundTransparent=p(e.selectionInactiveBackground,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundOpaque=o.color.blend(i.background,i.selectionInactiveBackgroundTransparent),i.selectionForeground=e.selectionForeground?p(e.selectionForeground,o.NULL_COLOR):void 0,i.selectionForeground===o.NULL_COLOR&&(i.selectionForeground=void 0),o.color.isOpaque(i.selectionBackgroundTransparent)){const e=.3;i.selectionBackgroundTransparent=o.color.opacity(i.selectionBackgroundTransparent,e)}if(o.color.isOpaque(i.selectionInactiveBackgroundTransparent)){const e=.3;i.selectionInactiveBackgroundTransparent=o.color.opacity(i.selectionInactiveBackgroundTransparent,e)}if(i.ansi=t.DEFAULT_ANSI_COLORS.slice(),i.ansi[0]=p(e.black,t.DEFAULT_ANSI_COLORS[0]),i.ansi[1]=p(e.red,t.DEFAULT_ANSI_COLORS[1]),i.ansi[2]=p(e.green,t.DEFAULT_ANSI_COLORS[2]),i.ansi[3]=p(e.yellow,t.DEFAULT_ANSI_COLORS[3]),i.ansi[4]=p(e.blue,t.DEFAULT_ANSI_COLORS[4]),i.ansi[5]=p(e.magenta,t.DEFAULT_ANSI_COLORS[5]),i.ansi[6]=p(e.cyan,t.DEFAULT_ANSI_COLORS[6]),i.ansi[7]=p(e.white,t.DEFAULT_ANSI_COLORS[7]),i.ansi[8]=p(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),i.ansi[9]=p(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),i.ansi[10]=p(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),i.ansi[11]=p(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),i.ansi[12]=p(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),i.ansi[13]=p(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),i.ansi[14]=p(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),i.ansi[15]=p(e.brightWhite,t.DEFAULT_ANSI_COLORS[15]),e.extendedAnsi){const s=Math.min(i.ansi.length-16,e.extendedAnsi.length);for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0}),t.CircularList=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this.register(new s.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new s.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new s.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;const t=new Array(e);for(let i=0;ithis._length)for(let t=this._length;t=e;s--)this._array[this._getCyclicIndex(s+i.length)]=this._array[this._getCyclicIndex(s)];for(let s=0;sthis._maxLength){const e=this._length+i.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=i.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,i){if(!(t<=0)){if(e<0||e>=this._length)throw new Error("start argument out of range");if(e+i<0)throw new Error("Cannot shift elements in list beyond index 0");if(i>0){for(let r=t-1;r>=0;r--)this.set(e+r+i,this.get(e+r));const s=e+t+i-this._length;if(s>0)for(this._length+=s;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let s=0;s{Object.defineProperty(t,"__esModule",{value:!0}),t.clone=void 0,t.clone=function e(t,i=5){if("object"!=typeof t)return t;const s=Array.isArray(t)?[]:{};for(const r in t)s[r]=i<=1?t[r]:t[r]&&e(t[r],i-1);return s}},8055:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let i=0,s=0,r=0,n=0;var o,a,h,c,l;function d(e){const t=e.toString(16);return t.length<2?"0"+t:t}function _(e,t){return e>>0},e.toColor=function(t,i,s,r){return{css:e.toCss(t,i,s,r),rgba:e.toRgba(t,i,s,r)}}}(o||(t.channels=o={})),function(e){function t(e,t){return n=Math.round(255*t),[i,s,r]=l.toChannels(e.rgba),{css:o.toCss(i,s,r,n),rgba:o.toRgba(i,s,r,n)}}e.blend=function(e,t){if(n=(255&t.rgba)/255,1===n)return{css:t.css,rgba:t.rgba};const a=t.rgba>>24&255,h=t.rgba>>16&255,c=t.rgba>>8&255,l=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return i=l+Math.round((a-l)*n),s=d+Math.round((h-d)*n),r=_+Math.round((c-_)*n),{css:o.toCss(i,s,r),rgba:o.toRgba(i,s,r)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=l.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return o.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[i,s,r]=l.toChannels(t),{css:o.toCss(i,s,r),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return n=255&e.rgba,t(e,n*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(a||(t.color=a={})),function(e){let t,a;try{const e=document.createElement("canvas");e.width=1,e.height=1;const i=e.getContext("2d",{willReadFrequently:!0});i&&(t=i,t.globalCompositeOperation="copy",a=t.createLinearGradient(0,0,1,1))}catch{}e.toColor=function(e){if(e.match(/#[\da-f]{3,8}/i))switch(e.length){case 4:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),o.toColor(i,s,r);case 5:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),n=parseInt(e.slice(4,5).repeat(2),16),o.toColor(i,s,r,n);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const h=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(h)return i=parseInt(h[1]),s=parseInt(h[2]),r=parseInt(h[3]),n=Math.round(255*(void 0===h[5]?1:parseFloat(h[5]))),o.toColor(i,s,r,n);if(!t||!a)throw new Error("css.toColor: Unsupported css format");if(t.fillStyle=a,t.fillStyle=e,"string"!=typeof t.fillStyle)throw new Error("css.toColor: Unsupported css format");if(t.fillRect(0,0,1,1),[i,s,r,n]=t.getImageData(0,0,1,1).data,255!==n)throw new Error("css.toColor: Unsupported css format");return{rgba:o.toRgba(i,s,r,n),css:e}}}(h||(t.css=h={})),function(e){function t(e,t,i){const s=e/255,r=t/255,n=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(c||(t.rgb=c={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l0||a>0||h>0);)o-=Math.max(0,Math.ceil(.1*o)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}function a(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l>>0}e.blend=function(e,t){if(n=(255&t)/255,1===n)return t;const a=t>>24&255,h=t>>16&255,c=t>>8&255,l=e>>24&255,d=e>>16&255,_=e>>8&255;return i=l+Math.round((a-l)*n),s=d+Math.round((h-d)*n),r=_+Math.round((c-_)*n),o.toRgba(i,s,r)},e.ensureContrastRatio=function(e,i,s){const r=c.relativeLuminance(e>>8),n=c.relativeLuminance(i>>8);if(_(r,n)>8));if(o_(r,c.relativeLuminance(t>>8))?n:t}return n}const o=a(e,i,s),h=_(r,c.relativeLuminance(o>>8));if(h_(r,c.relativeLuminance(n>>8))?o:n}return o}},e.reduceLuminance=t,e.increaseLuminance=a,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}}(l||(t.rgba=l={})),t.toPaddedHex=d,t.contrastRatio=_},8969:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreTerminal=void 0;const s=i(844),r=i(2585),n=i(4348),o=i(7866),a=i(744),h=i(7302),c=i(6975),l=i(8460),d=i(1753),_=i(1480),u=i(7994),f=i(9282),v=i(5435),p=i(5981),g=i(2660);let m=!1;class S extends s.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new l.EventEmitter),this._onScroll.event((e=>{this._onScrollApi?.fire(e.position)}))),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(const t in e)this.optionsService.options[t]=e[t]}constructor(e){super(),this._windowsWrappingHeuristics=this.register(new s.MutableDisposable),this._onBinary=this.register(new l.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new l.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new l.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new l.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new l.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new l.EventEmitter),this._instantiationService=new n.InstantiationService,this.optionsService=this.register(new h.OptionsService(e)),this._instantiationService.setService(r.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(a.BufferService)),this._instantiationService.setService(r.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(o.LogService)),this._instantiationService.setService(r.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(c.CoreService)),this._instantiationService.setService(r.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(r.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(_.UnicodeService)),this._instantiationService.setService(r.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(u.CharsetService),this._instantiationService.setService(r.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(g.OscLinkService),this._instantiationService.setService(r.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new v.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,l.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,l.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,l.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,l.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom((()=>this.scrollToBottom()))),this.register(this.coreService.onUserInput((()=>this._writeBuffer.handleUserInput()))),this.register(this.optionsService.onMultipleOptionChange(["windowsMode","windowsPty"],(()=>this._handleWindowsPtyOptionChange()))),this.register(this._bufferService.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this.register(this._inputHandler.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=this.register(new p.WriteBuffer(((e,t)=>this._inputHandler.parse(e,t)))),this.register((0,l.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=r.LogLevelEnum.WARN&&!m&&(this._logService.warn("writeSync is unreliable and will be removed soon."),m=!0),this._writeBuffer.writeSync(e,t)}input(e,t=!0){this.coreService.triggerDataEvent(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,a.MINIMUM_COLS),t=Math.max(t,a.MINIMUM_ROWS),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t,i){this._bufferService.scrollLines(e,t,i)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){const t=e-this._bufferService.buffer.ydisp;0!==t&&this.scrollLines(t)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1;const t=this.optionsService.rawOptions.windowsPty;t&&void 0!==t.buildNumber&&void 0!==t.buildNumber?e=!!("conpty"===t.backend&&t.buildNumber<21376):this.optionsService.rawOptions.windowsMode&&(e=!0),e?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){const e=[];e.push(this.onLineFeed(f.updateWindowsModeWrappedState.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:"H"},(()=>((0,f.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsWrappingHeuristics.value=(0,s.toDisposable)((()=>{for(const t of e)t.dispose()}))}}}t.CoreTerminal=S},8460:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;tt.fire(e)))},t.runAndSubscribe=function(e,t){return t(void 0),e((e=>t(e)))}},5435:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.InputHandler=t.WindowsOptionsReportType=void 0;const n=i(2584),o=i(7116),a=i(2015),h=i(844),c=i(482),l=i(8437),d=i(8460),_=i(643),u=i(511),f=i(3734),v=i(2585),p=i(1480),g=i(6242),m=i(6351),S=i(5941),C={"(":0,")":1,"*":2,"+":3,"-":1,".":2},b=131072;function w(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var y;!function(e){e[e.GET_WIN_SIZE_PIXELS=0]="GET_WIN_SIZE_PIXELS",e[e.GET_CELL_SIZE_PIXELS=1]="GET_CELL_SIZE_PIXELS"}(y||(t.WindowsOptionsReportType=y={}));let E=0;class k extends h.Disposable{getAttrData(){return this._curAttrData}constructor(e,t,i,s,r,h,_,f,v=new a.EscapeSequenceParser){super(),this._bufferService=e,this._charsetService=t,this._coreService=i,this._logService=s,this._optionsService=r,this._oscLinkService=h,this._coreMouseService=_,this._unicodeService=f,this._parser=v,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new c.StringToUtf32,this._utf8Decoder=new c.Utf8ToUtf32,this._workCell=new u.CellData,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new d.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new d.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new d.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new d.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new d.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new d.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new d.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new d.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new d.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new d.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new d.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new d.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new d.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new L(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._parser.setCsiHandlerFallback(((e,t)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(e),params:t.toArray()})})),this._parser.setEscHandlerFallback((e=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(e)})})),this._parser.setExecuteHandlerFallback((e=>{this._logService.debug("Unknown EXECUTE code: ",{code:e})})),this._parser.setOscHandlerFallback(((e,t,i)=>{this._logService.debug("Unknown OSC code: ",{identifier:e,action:t,data:i})})),this._parser.setDcsHandlerFallback(((e,t,i)=>{"HOOK"===t&&(i=i.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(e),action:t,payload:i})})),this._parser.setPrintHandler(((e,t,i)=>this.print(e,t,i))),this._parser.registerCsiHandler({final:"@"},(e=>this.insertChars(e))),this._parser.registerCsiHandler({intermediates:" ",final:"@"},(e=>this.scrollLeft(e))),this._parser.registerCsiHandler({final:"A"},(e=>this.cursorUp(e))),this._parser.registerCsiHandler({intermediates:" ",final:"A"},(e=>this.scrollRight(e))),this._parser.registerCsiHandler({final:"B"},(e=>this.cursorDown(e))),this._parser.registerCsiHandler({final:"C"},(e=>this.cursorForward(e))),this._parser.registerCsiHandler({final:"D"},(e=>this.cursorBackward(e))),this._parser.registerCsiHandler({final:"E"},(e=>this.cursorNextLine(e))),this._parser.registerCsiHandler({final:"F"},(e=>this.cursorPrecedingLine(e))),this._parser.registerCsiHandler({final:"G"},(e=>this.cursorCharAbsolute(e))),this._parser.registerCsiHandler({final:"H"},(e=>this.cursorPosition(e))),this._parser.registerCsiHandler({final:"I"},(e=>this.cursorForwardTab(e))),this._parser.registerCsiHandler({final:"J"},(e=>this.eraseInDisplay(e,!1))),this._parser.registerCsiHandler({prefix:"?",final:"J"},(e=>this.eraseInDisplay(e,!0))),this._parser.registerCsiHandler({final:"K"},(e=>this.eraseInLine(e,!1))),this._parser.registerCsiHandler({prefix:"?",final:"K"},(e=>this.eraseInLine(e,!0))),this._parser.registerCsiHandler({final:"L"},(e=>this.insertLines(e))),this._parser.registerCsiHandler({final:"M"},(e=>this.deleteLines(e))),this._parser.registerCsiHandler({final:"P"},(e=>this.deleteChars(e))),this._parser.registerCsiHandler({final:"S"},(e=>this.scrollUp(e))),this._parser.registerCsiHandler({final:"T"},(e=>this.scrollDown(e))),this._parser.registerCsiHandler({final:"X"},(e=>this.eraseChars(e))),this._parser.registerCsiHandler({final:"Z"},(e=>this.cursorBackwardTab(e))),this._parser.registerCsiHandler({final:"`"},(e=>this.charPosAbsolute(e))),this._parser.registerCsiHandler({final:"a"},(e=>this.hPositionRelative(e))),this._parser.registerCsiHandler({final:"b"},(e=>this.repeatPrecedingCharacter(e))),this._parser.registerCsiHandler({final:"c"},(e=>this.sendDeviceAttributesPrimary(e))),this._parser.registerCsiHandler({prefix:">",final:"c"},(e=>this.sendDeviceAttributesSecondary(e))),this._parser.registerCsiHandler({final:"d"},(e=>this.linePosAbsolute(e))),this._parser.registerCsiHandler({final:"e"},(e=>this.vPositionRelative(e))),this._parser.registerCsiHandler({final:"f"},(e=>this.hVPosition(e))),this._parser.registerCsiHandler({final:"g"},(e=>this.tabClear(e))),this._parser.registerCsiHandler({final:"h"},(e=>this.setMode(e))),this._parser.registerCsiHandler({prefix:"?",final:"h"},(e=>this.setModePrivate(e))),this._parser.registerCsiHandler({final:"l"},(e=>this.resetMode(e))),this._parser.registerCsiHandler({prefix:"?",final:"l"},(e=>this.resetModePrivate(e))),this._parser.registerCsiHandler({final:"m"},(e=>this.charAttributes(e))),this._parser.registerCsiHandler({final:"n"},(e=>this.deviceStatus(e))),this._parser.registerCsiHandler({prefix:"?",final:"n"},(e=>this.deviceStatusPrivate(e))),this._parser.registerCsiHandler({intermediates:"!",final:"p"},(e=>this.softReset(e))),this._parser.registerCsiHandler({intermediates:" ",final:"q"},(e=>this.setCursorStyle(e))),this._parser.registerCsiHandler({final:"r"},(e=>this.setScrollRegion(e))),this._parser.registerCsiHandler({final:"s"},(e=>this.saveCursor(e))),this._parser.registerCsiHandler({final:"t"},(e=>this.windowOptions(e))),this._parser.registerCsiHandler({final:"u"},(e=>this.restoreCursor(e))),this._parser.registerCsiHandler({intermediates:"'",final:"}"},(e=>this.insertColumns(e))),this._parser.registerCsiHandler({intermediates:"'",final:"~"},(e=>this.deleteColumns(e))),this._parser.registerCsiHandler({intermediates:'"',final:"q"},(e=>this.selectProtected(e))),this._parser.registerCsiHandler({intermediates:"$",final:"p"},(e=>this.requestMode(e,!0))),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},(e=>this.requestMode(e,!1))),this._parser.setExecuteHandler(n.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(n.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(n.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(n.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(n.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(n.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(n.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(n.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(n.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new g.OscHandler((e=>(this.setTitle(e),this.setIconName(e),!0)))),this._parser.registerOscHandler(1,new g.OscHandler((e=>this.setIconName(e)))),this._parser.registerOscHandler(2,new g.OscHandler((e=>this.setTitle(e)))),this._parser.registerOscHandler(4,new g.OscHandler((e=>this.setOrReportIndexedColor(e)))),this._parser.registerOscHandler(8,new g.OscHandler((e=>this.setHyperlink(e)))),this._parser.registerOscHandler(10,new g.OscHandler((e=>this.setOrReportFgColor(e)))),this._parser.registerOscHandler(11,new g.OscHandler((e=>this.setOrReportBgColor(e)))),this._parser.registerOscHandler(12,new g.OscHandler((e=>this.setOrReportCursorColor(e)))),this._parser.registerOscHandler(104,new g.OscHandler((e=>this.restoreIndexedColor(e)))),this._parser.registerOscHandler(110,new g.OscHandler((e=>this.restoreFgColor(e)))),this._parser.registerOscHandler(111,new g.OscHandler((e=>this.restoreBgColor(e)))),this._parser.registerOscHandler(112,new g.OscHandler((e=>this.restoreCursorColor(e)))),this._parser.registerEscHandler({final:"7"},(()=>this.saveCursor())),this._parser.registerEscHandler({final:"8"},(()=>this.restoreCursor())),this._parser.registerEscHandler({final:"D"},(()=>this.index())),this._parser.registerEscHandler({final:"E"},(()=>this.nextLine())),this._parser.registerEscHandler({final:"H"},(()=>this.tabSet())),this._parser.registerEscHandler({final:"M"},(()=>this.reverseIndex())),this._parser.registerEscHandler({final:"="},(()=>this.keypadApplicationMode())),this._parser.registerEscHandler({final:">"},(()=>this.keypadNumericMode())),this._parser.registerEscHandler({final:"c"},(()=>this.fullReset())),this._parser.registerEscHandler({final:"n"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"o"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"|"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"}"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"~"},(()=>this.setgLevel(1))),this._parser.registerEscHandler({intermediates:"%",final:"@"},(()=>this.selectDefaultCharset())),this._parser.registerEscHandler({intermediates:"%",final:"G"},(()=>this.selectDefaultCharset()));for(const n in o.CHARSETS)this._parser.registerEscHandler({intermediates:"(",final:n},(()=>this.selectCharset("("+n))),this._parser.registerEscHandler({intermediates:")",final:n},(()=>this.selectCharset(")"+n))),this._parser.registerEscHandler({intermediates:"*",final:n},(()=>this.selectCharset("*"+n))),this._parser.registerEscHandler({intermediates:"+",final:n},(()=>this.selectCharset("+"+n))),this._parser.registerEscHandler({intermediates:"-",final:n},(()=>this.selectCharset("-"+n))),this._parser.registerEscHandler({intermediates:".",final:n},(()=>this.selectCharset("."+n))),this._parser.registerEscHandler({intermediates:"/",final:n},(()=>this.selectCharset("/"+n)));this._parser.registerEscHandler({intermediates:"#",final:"8"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((e=>(this._logService.error("Parsing error: ",e),e))),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new m.DcsHandler(((e,t)=>this.requestStatusString(e,t))))}_preserveStack(e,t,i,s){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=i,this._parseStack.position=s}_logSlowResolvingAsync(e){this._logService.logLevel<=v.LogLevelEnum.WARN&&Promise.race([e,new Promise(((e,t)=>setTimeout((()=>t("#SLOW_TIMEOUT")),5e3)))]).catch((e=>{if("#SLOW_TIMEOUT"!==e)throw e;console.warn("async parser handler taking longer than 5000 ms")}))}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let i,s=this._activeBuffer.x,r=this._activeBuffer.y,n=0;const o=this._parseStack.paused;if(o){if(i=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(i),i;s=this._parseStack.cursorStartX,r=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>b&&(n=this._parseStack.position+b)}if(this._logService.logLevel<=v.LogLevelEnum.DEBUG&&this._logService.debug("parsing data"+("string"==typeof e?` "${e}"`:` "${Array.prototype.map.call(e,(e=>String.fromCharCode(e))).join("")}"`),"string"==typeof e?e.split("").map((e=>e.charCodeAt(0))):e),this._parseBuffer.lengthb)for(let c=n;c0&&2===f.getWidth(this._activeBuffer.x-1)&&f.setCellFromCodepoint(this._activeBuffer.x-1,0,1,u);let v=this._parser.precedingJoinState;for(let g=t;ga)if(h){const e=f;let t=this._activeBuffer.x-m;for(this._activeBuffer.x=m,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),f=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),m>0&&f instanceof l.BufferLine&&f.copyCellsFrom(e,t,0,m,!1);t=0;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}else if(d&&(f.insertCells(this._activeBuffer.x,r-m,this._activeBuffer.getNullCell(u)),2===f.getWidth(a-1)&&f.setCellFromCodepoint(a-1,_.NULL_CELL_CODE,_.NULL_CELL_WIDTH,u)),f.setCellFromCodepoint(this._activeBuffer.x++,s,r,u),r>0)for(;--r;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}this._parser.precedingJoinState=v,this._activeBuffer.x0&&0===f.getWidth(this._activeBuffer.x)&&!f.hasContent(this._activeBuffer.x)&&f.setCellFromCodepoint(this._activeBuffer.x,0,1,u),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return"t"!==e.final||e.prefix||e.intermediates?this._parser.registerCsiHandler(e,t):this._parser.registerCsiHandler(e,(e=>!w(e.params[0],this._optionsService.rawOptions.windowOptions)||t(e)))}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new m.DcsHandler(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new g.OscHandler(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(0===this._activeBuffer.x&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;const e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){const t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){const t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){const t=e.params[0];return 0===t?delete this._activeBuffer.tabs[this._activeBuffer.x]:3===t&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){const t=e.params[0];return 1===t&&(this._curAttrData.bg|=536870912),2!==t&&0!==t||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,i,s=!1,r=!1){const n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.replaceCells(t,i,this._activeBuffer.getNullCell(this._eraseAttrData()),r),s&&(n.isWrapped=!1)}_resetBufferLine(e,t=!1){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i&&(i.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),i.isWrapped=!1)}eraseInDisplay(e,t=!1){let i;switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i++,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);i=this._bufferService.cols&&(this._activeBuffer.lines.get(i+1).isWrapped=!1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 2:for(i=this._bufferService.rows,this._dirtyRowTracker.markDirty(i-1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 3:const e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0))}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.y65535?2:1}let h=a;for(let c=1;c0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(n.C0.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(n.C0.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(n.C0.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(n.C0.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(e.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(n.C0.ESC+"[>83;40003;0c")),!0}_is(e){return 0===(this._optionsService.rawOptions.termName+"").indexOf(e)}setMode(e){for(let t=0;te?1:2,u=e.params[0];return f=u,v=t?2===u?4:4===u?_(o.modes.insertMode):12===u?3:20===u?_(d.convertEol):0:1===u?_(i.applicationCursorKeys):3===u?d.windowOptions.setWinLines?80===h?2:132===h?1:0:0:6===u?_(i.origin):7===u?_(i.wraparound):8===u?3:9===u?_("X10"===s):12===u?_(d.cursorBlink):25===u?_(!o.isCursorHidden):45===u?_(i.reverseWraparound):66===u?_(i.applicationKeypad):67===u?4:1e3===u?_("VT200"===s):1002===u?_("DRAG"===s):1003===u?_("ANY"===s):1004===u?_(i.sendFocus):1005===u?4:1006===u?_("SGR"===r):1015===u?4:1016===u?_("SGR_PIXELS"===r):1048===u?1:47===u||1047===u||1049===u?_(c===l):2004===u?_(i.bracketedPasteMode):0,o.triggerDataEvent(`${n.C0.ESC}[${t?"":"?"}${f};${v}$y`),!0;var f,v}_updateAttrColor(e,t,i,s,r){return 2===t?(e|=50331648,e&=-16777216,e|=f.AttributeData.fromColorRGB([i,s,r])):5===t&&(e&=-50331904,e|=33554432|255&i),e}_extractColor(e,t,i){const s=[0,0,-1,0,0,0];let r=0,n=0;do{if(s[n+r]=e.params[t+n],e.hasSubParams(t+n)){const i=e.getSubParams(t+n);let o=0;do{5===s[1]&&(r=1),s[n+o+1+r]=i[o]}while(++o=2||2===s[1]&&n+r>=5)break;s[1]&&(r=1)}while(++n+t5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,0===e&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=l.DEFAULT_ATTR_DATA.fg,e.bg=l.DEFAULT_ATTR_DATA.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(1===e.length&&0===e.params[0])return this._processSGR0(this._curAttrData),!0;const t=e.length;let i;const s=this._curAttrData;for(let r=0;r=30&&i<=37?(s.fg&=-50331904,s.fg|=16777216|i-30):i>=40&&i<=47?(s.bg&=-50331904,s.bg|=16777216|i-40):i>=90&&i<=97?(s.fg&=-50331904,s.fg|=16777224|i-90):i>=100&&i<=107?(s.bg&=-50331904,s.bg|=16777224|i-100):0===i?this._processSGR0(s):1===i?s.fg|=134217728:3===i?s.bg|=67108864:4===i?(s.fg|=268435456,this._processUnderline(e.hasSubParams(r)?e.getSubParams(r)[0]:1,s)):5===i?s.fg|=536870912:7===i?s.fg|=67108864:8===i?s.fg|=1073741824:9===i?s.fg|=2147483648:2===i?s.bg|=134217728:21===i?this._processUnderline(2,s):22===i?(s.fg&=-134217729,s.bg&=-134217729):23===i?s.bg&=-67108865:24===i?(s.fg&=-268435457,this._processUnderline(0,s)):25===i?s.fg&=-536870913:27===i?s.fg&=-67108865:28===i?s.fg&=-1073741825:29===i?s.fg&=2147483647:39===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg):49===i?(s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):38===i||48===i||58===i?r+=this._extractColor(e,r,s):53===i?s.bg|=1073741824:55===i?s.bg&=-1073741825:59===i?(s.extended=s.extended.clone(),s.extended.underlineColor=-1,s.updateExtended()):100===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg,s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",i);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${n.C0.ESC}[0n`);break;case 6:const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[${e};${t}R`)}return!0}deviceStatusPrivate(e){if(6===e.params[0]){const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[?${e};${t}R`)}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){const t=e.params[0]||1;switch(t){case 1:case 2:this._optionsService.options.cursorStyle="block";break;case 3:case 4:this._optionsService.options.cursorStyle="underline";break;case 5:case 6:this._optionsService.options.cursorStyle="bar"}const i=t%2==1;return this._optionsService.options.cursorBlink=i,!0}setScrollRegion(e){const t=e.params[0]||1;let i;return(e.length<2||(i=e.params[1])>this._bufferService.rows||0===i)&&(i=this._bufferService.rows),i>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=i-1,this._setCursor(0,0)),!0}windowOptions(e){if(!w(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;const t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:2!==t&&this._onRequestWindowsOptionsReport.fire(y.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(y.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${n.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:0!==t&&2!==t||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),0!==t&&1!==t||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:0!==t&&2!==t||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),0!==t&&1!==t||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){const t=[],i=e.split(";");for(;i.length>1;){const e=i.shift(),s=i.shift();if(/^\d+$/.exec(e)){const i=parseInt(e);if(D(i))if("?"===s)t.push({type:0,index:i});else{const e=(0,S.parseColor)(s);e&&t.push({type:1,index:i,color:e})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){const t=e.split(";");return!(t.length<2)&&(t[1]?this._createHyperlink(t[0],t[1]):!t[0]&&this._finishHyperlink())}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();const i=e.split(":");let s;const r=i.findIndex((e=>e.startsWith("id=")));return-1!==r&&(s=i[r].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:s,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){const i=e.split(";");for(let s=0;s=this._specialColors.length);++s,++t)if("?"===i[s])this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{const e=(0,S.parseColor)(i[s]);e&&this._onColor.fire([{type:1,index:this._specialColors[t],color:e}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;const t=[],i=e.split(";");for(let s=0;s=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){const e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){const e=new u.CellData;e.content=1<<22|"E".charCodeAt(0),e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t(this._coreService.triggerDataEvent(`${n.C0.ESC}${e}${n.C0.ESC}\\`),!0))('"q'===e?`P1$r${this._curAttrData.isProtected()?1:0}"q`:'"p'===e?'P1$r61;1"p':"r"===e?`P1$r${i.scrollTop+1};${i.scrollBottom+1}r`:"m"===e?"P1$r0m":" q"===e?`P1$r${{block:2,underline:4,bar:6}[s.cursorStyle]-(s.cursorBlink?1:0)} q`:"P0$r")}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}}t.InputHandler=k;let L=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){ethis.end&&(this.end=e)}markRangeDirty(e,t){e>t&&(E=e,e=t,t=E),ethis.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function D(e){return 0<=e&&e<256}L=s([r(0,v.IBufferService)],L)},844:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},1505:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,n){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,n)}get(e,t,i,s){return this._data.get(e,t)?.get(i,s)}clear(){this._data.clear()}}},6114:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode="undefined"!=typeof s&&"title"in s;const i=t.isNode?"node":navigator.userAgent,r=t.isNode?"node":navigator.platform;t.isFirefox=i.includes("Firefox"),t.isLegacyEdge=i.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\/(\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(r),t.isIpad="iPad"===r,t.isIphone="iPhone"===r,t.isWindows=["Windows","Win16","Win32","WinCE"].includes(r),t.isLinux=r.indexOf("Linux")>=0,t.isChromeOS=/\bCrOS\b/.test(i)},6106:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SortedList=void 0;let i=0;t.SortedList=class{constructor(e){this._getKey=e,this._array=[]}clear(){this._array.length=0}insert(e){0!==this._array.length?(i=this._search(this._getKey(e)),this._array.splice(i,0,e)):this._array.push(e)}delete(e){if(0===this._array.length)return!1;const t=this._getKey(e);if(void 0===t)return!1;if(i=this._search(t),-1===i)return!1;if(this._getKey(this._array[i])!==t)return!1;do{if(this._array[i]===e)return this._array.splice(i,1),!0}while(++i=this._array.length)&&this._getKey(this._array[i])===e))do{yield this._array[i]}while(++i=this._array.length)&&this._getKey(this._array[i])===e))do{t(this._array[i])}while(++i=t;){let s=t+i>>1;const r=this._getKey(this._array[s]);if(r>e)i=s-1;else{if(!(r0&&this._getKey(this._array[s-1])===e;)s--;return s}t=s+1}}return t}}},7226:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const s=i(6114);class r{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._ir)return s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),void this._start();s=r}this.clear()}}class n extends r{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=n,t.IdleTaskQueue=!s.isNode&&"requestIdleCallback"in window?class extends r{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:n,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},9282:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.updateWindowsModeWrappedState=void 0;const s=i(643);t.updateWindowsModeWrappedState=function(e){const t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1),i=t?.get(e.cols-1),r=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);r&&i&&(r.isWrapped=i[s.CHAR_DATA_CODE_INDEX]!==s.NULL_CELL_CODE&&i[s.CHAR_DATA_CODE_INDEX]!==s.WHITESPACE_CELL_CODE)}},3734:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}t.AttributeData=i;class s{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){const e=(3758096384&this._ext)>>29;return e<0?4294967288^e:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},9092:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Buffer=t.MAX_BUFFER_SIZE=void 0;const s=i(6349),r=i(7226),n=i(3734),o=i(8437),a=i(4634),h=i(511),c=i(643),l=i(4863),d=i(7116);t.MAX_BUFFER_SIZE=4294967295,t.Buffer=class{constructor(e,t,i){this._hasScrollback=e,this._optionsService=t,this._bufferService=i,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=o.DEFAULT_ATTR_DATA.clone(),this.savedCharset=d.DEFAULT_CHARSET,this.markers=[],this._nullCell=h.CellData.fromCharData([0,c.NULL_CELL_CHAR,c.NULL_CELL_WIDTH,c.NULL_CELL_CODE]),this._whitespaceCell=h.CellData.fromCharData([0,c.WHITESPACE_CELL_CHAR,c.WHITESPACE_CELL_WIDTH,c.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new r.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new n.ExtendedAttrs),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new n.ExtendedAttrs),this._whitespaceCell}getBlankLine(e,t){return new o.BufferLine(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){const e=this.ybase+this.y-this.ydisp;return e>=0&&et.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:i}fillViewportRows(e){if(0===this.lines.length){void 0===e&&(e=o.DEFAULT_ATTR_DATA);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){const i=this.getNullCell(o.DEFAULT_ATTR_DATA);let s=0;const r=this._getCorrectBufferLength(t);if(r>this.lines.maxLength&&(this.lines.maxLength=r),this.lines.length>0){if(this._cols0&&this.lines.length<=this.ybase+this.y+n+1?(this.ybase--,n++,this.ydisp>0&&this.ydisp--):this.lines.push(new o.BufferLine(e,i)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(r0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=r}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),n&&(this.y+=n),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let n=0;n.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue((()=>this._batchedMemoryCleanup())))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let t=0;for(;this._memoryCleanupPosition100)return!0;return e}get _isReflowEnabled(){const e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&"conpty"===e.backend&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){const i=(0,a.reflowLargerGetLinesToRemove)(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(o.DEFAULT_ATTR_DATA));if(i.length>0){const s=(0,a.reflowLargerCreateNewLayout)(this.lines,i);(0,a.reflowLargerApplyNewLayout)(this.lines,s.layout),this._reflowLargerAdjustViewport(e,t,s.countRemoved)}}_reflowLargerAdjustViewport(e,t,i){const s=this.getNullCell(o.DEFAULT_ATTR_DATA);let r=i;for(;r-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length=0;n--){let h=this.lines.get(n);if(!h||!h.isWrapped&&h.getTrimmedLength()<=e)continue;const c=[h];for(;h.isWrapped&&n>0;)h=this.lines.get(--n),c.unshift(h);const l=this.ybase+this.y;if(l>=n&&l0&&(s.push({start:n+c.length+r,newLines:v}),r+=v.length),c.push(...v);let p=_.length-1,g=_[p];0===g&&(p--,g=_[p]);let m=c.length-u-1,S=d;for(;m>=0;){const e=Math.min(S,g);if(void 0===c[p])break;if(c[p].copyCellsFrom(c[m],S-e,g-e,e,!0),g-=e,0===g&&(p--,g=_[p]),S-=e,0===S){m--;const e=Math.max(m,0);S=(0,a.getWrappedLineTrimmedLength)(c,e,this._cols)}}for(let t=0;t0;)0===this.ybase?this.y0){const e=[],t=[];for(let s=0;s=0;d--)if(a&&a.start>n+h){for(let e=a.newLines.length-1;e>=0;e--)this.lines.set(d--,a.newLines[e]);d++,e.push({index:n+1,amount:a.newLines.length}),h+=a.newLines.length,a=s[++o]}else this.lines.set(d,t[n--]);let c=0;for(let s=e.length-1;s>=0;s--)e[s].index+=c,this.lines.onInsertEmitter.fire(e[s]),c+=e[s].amount;const l=Math.max(0,i+r-this.lines.maxLength);l>0&&this.lines.onTrimEmitter.fire(l)}}translateBufferLineToString(e,t,i=0,s){const r=this.lines.get(e);return r?r.translateToString(t,i,s):""}getWrappedRangeForLine(e){let t=e,i=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;i+10;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t{t.line-=e,t.line<0&&t.dispose()}))),t.register(this.lines.onInsert((e=>{t.line>=e.index&&(t.line+=e.amount)}))),t.register(this.lines.onDelete((e=>{t.line>=e.index&&t.linee.index&&(t.line-=e.amount)}))),t.register(t.onDispose((()=>this._removeMarker(t)))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}}},8437:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLine=t.DEFAULT_ATTR_DATA=void 0;const s=i(3734),r=i(511),n=i(643),o=i(482);t.DEFAULT_ATTR_DATA=Object.freeze(new s.AttributeData);let a=0;class h{constructor(e,t,i=!1){this.isWrapped=i,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*e);const s=t||r.CellData.fromCharData([0,n.NULL_CELL_CHAR,n.NULL_CELL_WIDTH,n.NULL_CELL_CODE]);for(let r=0;r>22,2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):i]}set(e,t){this._data[3*e+1]=t[n.CHAR_DATA_ATTR_INDEX],t[n.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=t[1],this._data[3*e+0]=2097152|e|t[n.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*e+0]=t[n.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|t[n.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(e){return this._data[3*e+0]>>22}hasWidth(e){return 12582912&this._data[3*e+0]}getFg(e){return this._data[3*e+1]}getBg(e){return this._data[3*e+2]}hasContent(e){return 4194303&this._data[3*e+0]}getCodePoint(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&t}isCombined(e){return 2097152&this._data[3*e+0]}getString(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e]:2097151&t?(0,o.stringFromCodePoint)(2097151&t):""}isProtected(e){return 536870912&this._data[3*e+2]}loadCell(e,t){return a=3*e,t.content=this._data[a+0],t.fg=this._data[a+1],t.bg=this._data[a+2],2097152&t.content&&(t.combinedData=this._combined[e]),268435456&t.bg&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){2097152&t.content&&(this._combined[e]=t.combinedData),268435456&t.bg&&(this._extendedAttrs[e]=t.extended),this._data[3*e+0]=t.content,this._data[3*e+1]=t.fg,this._data[3*e+2]=t.bg}setCellFromCodepoint(e,t,i,s){268435456&s.bg&&(this._extendedAttrs[e]=s.extended),this._data[3*e+0]=t|i<<22,this._data[3*e+1]=s.fg,this._data[3*e+2]=s.bg}addCodepointToCell(e,t,i){let s=this._data[3*e+0];2097152&s?this._combined[e]+=(0,o.stringFromCodePoint)(t):2097151&s?(this._combined[e]=(0,o.stringFromCodePoint)(2097151&s)+(0,o.stringFromCodePoint)(t),s&=-2097152,s|=2097152):s=t|1<<22,i&&(s&=-12582913,s|=i<<22),this._data[3*e+0]=s}insertCells(e,t,i){if((e%=this.length)&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),t=0;--i)this.setCell(e+t+i,this.loadCell(e+i,s));for(let r=0;rthis.length){if(this._data.buffer.byteLength>=4*i)this._data=new Uint32Array(this._data.buffer,0,i);else{const e=new Uint32Array(i);e.set(this._data),this._data=e}for(let i=this.length;i=e&&delete this._combined[s]}const s=Object.keys(this._extendedAttrs);for(let i=0;i=e&&delete this._extendedAttrs[t]}}return this.length=e,4*i*2=0;--e)if(4194303&this._data[3*e+0])return e+(this._data[3*e+0]>>22);return 0}getNoBgTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0]||50331648&this._data[3*e+2])return e+(this._data[3*e+0]>>22);return 0}copyCellsFrom(e,t,i,s,r){const n=e._data;if(r)for(let a=s-1;a>=0;a--){for(let e=0;e<3;e++)this._data[3*(i+a)+e]=n[3*(t+a)+e];268435456&n[3*(t+a)+2]&&(this._extendedAttrs[i+a]=e._extendedAttrs[t+a])}else for(let a=0;a=t&&(this._combined[s-t+i]=e._combined[s])}}translateToString(e,t,i,s){t=t??0,i=i??this.length,e&&(i=Math.min(i,this.getTrimmedLength())),s&&(s.length=0);let r="";for(;t>22||1}return s&&s.push(t),r}}t.BufferLine=h},4841:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRangeLength=void 0,t.getRangeLength=function(e,t){if(e.start.y>e.end.y)throw new Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}},4634:(e,t)=>{function i(e,t,i){if(t===e.length-1)return e[t].getTrimmedLength();const s=!e[t].hasContent(i-1)&&1===e[t].getWidth(i-1),r=2===e[t+1].getWidth(0);return s&&r?i-1:i}Object.defineProperty(t,"__esModule",{value:!0}),t.getWrappedLineTrimmedLength=t.reflowSmallerGetNewLineLengths=t.reflowLargerApplyNewLayout=t.reflowLargerCreateNewLayout=t.reflowLargerGetLinesToRemove=void 0,t.reflowLargerGetLinesToRemove=function(e,t,s,r,n){const o=[];for(let a=0;a=a&&r0&&(e>d||0===l[e].getTrimmedLength());e--)v++;v>0&&(o.push(a+l.length-v),o.push(v)),a+=l.length-1}return o},t.reflowLargerCreateNewLayout=function(e,t){const i=[];let s=0,r=t[s],n=0;for(let o=0;oi(e,r,t))).reduce(((e,t)=>e+t));let o=0,a=0,h=0;for(;hc&&(o-=c,a++);const l=2===e[a].getWidth(o-1);l&&o--;const d=l?s-1:s;r.push(d),h+=d}return r},t.getWrappedLineTrimmedLength=i},5295:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferSet=void 0;const s=i(8460),r=i(844),n=i(9092);class o extends r.Disposable{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this.register(new s.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange("scrollback",(()=>this.resize(this._bufferService.cols,this._bufferService.rows)))),this.register(this._optionsService.onSpecificOptionChange("tabStopWidth",(()=>this.setupTabStops())))}reset(){this._normal=new n.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new n.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}}t.BufferSet=o},511:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;const s=i(482),r=i(643),n=i(3734);class o extends n.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new n.ExtendedAttrs,this.combinedData=""}static fromCharData(e){const t=new o;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=o},643:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},4863:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Marker=void 0;const s=i(8460),r=i(844);class n{get id(){return this._id}constructor(e){this.line=e,this.isDisposed=!1,this._disposables=[],this._id=n._nextId++,this._onDispose=this.register(new s.EventEmitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,r.disposeArray)(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}}t.Marker=n,n._nextId=1},7116:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_CHARSET=t.CHARSETS=void 0,t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={"`":"◆",a:"▒",b:"␉",c:"␌",d:"␍",e:"␊",f:"°",g:"±",h:"␤",i:"␋",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},t.CHARSETS.A={"#":"£"},t.CHARSETS.B=void 0,t.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},t.CHARSETS.C=t.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},t.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},t.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},t.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},t.CHARSETS.E=t.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},t.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},t.CHARSETS.H=t.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},2584:(e,t)=>{var i,s,r;Object.defineProperty(t,"__esModule",{value:!0}),t.C1_ESCAPED=t.C1=t.C0=void 0,function(e){e.NUL="\0",e.SOH="",e.STX="",e.ETX="",e.EOT="",e.ENQ="",e.ACK="",e.BEL="",e.BS="\b",e.HT="\t",e.LF="\n",e.VT="\v",e.FF="\f",e.CR="\r",e.SO="",e.SI="",e.DLE="",e.DC1="",e.DC2="",e.DC3="",e.DC4="",e.NAK="",e.SYN="",e.ETB="",e.CAN="",e.EM="",e.SUB="",e.ESC="",e.FS="",e.GS="",e.RS="",e.US="",e.SP=" ",e.DEL=""}(i||(t.C0=i={})),function(e){e.PAD="€",e.HOP="",e.BPH="‚",e.NBH="ƒ",e.IND="„",e.NEL="…",e.SSA="†",e.ESA="‡",e.HTS="ˆ",e.HTJ="‰",e.VTS="Š",e.PLD="‹",e.PLU="Œ",e.RI="",e.SS2="Ž",e.SS3="",e.DCS="",e.PU1="‘",e.PU2="’",e.STS="“",e.CCH="”",e.MW="•",e.SPA="–",e.EPA="—",e.SOS="˜",e.SGCI="™",e.SCI="š",e.CSI="›",e.ST="œ",e.OSC="",e.PM="ž",e.APC="Ÿ"}(s||(t.C1=s={})),function(e){e.ST=`${i.ESC}\\`}(r||(t.C1_ESCAPED=r={}))},7399:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.evaluateKeyboardEvent=void 0;const s=i(2584),r={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};t.evaluateKeyboardEvent=function(e,t,i,n){const o={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:"UIKeyInputUpArrow"===e.key?o.key=t?s.C0.ESC+"OA":s.C0.ESC+"[A":"UIKeyInputLeftArrow"===e.key?o.key=t?s.C0.ESC+"OD":s.C0.ESC+"[D":"UIKeyInputRightArrow"===e.key?o.key=t?s.C0.ESC+"OC":s.C0.ESC+"[C":"UIKeyInputDownArrow"===e.key&&(o.key=t?s.C0.ESC+"OB":s.C0.ESC+"[B");break;case 8:o.key=e.ctrlKey?"\b":s.C0.DEL,e.altKey&&(o.key=s.C0.ESC+o.key);break;case 9:if(e.shiftKey){o.key=s.C0.ESC+"[Z";break}o.key=s.C0.HT,o.cancel=!0;break;case 13:o.key=e.altKey?s.C0.ESC+s.C0.CR:s.C0.CR,o.cancel=!0;break;case 27:o.key=s.C0.ESC,e.altKey&&(o.key=s.C0.ESC+s.C0.ESC),o.cancel=!0;break;case 37:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"D",o.key===s.C0.ESC+"[1;3D"&&(o.key=s.C0.ESC+(i?"b":"[1;5D"))):o.key=t?s.C0.ESC+"OD":s.C0.ESC+"[D";break;case 39:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"C",o.key===s.C0.ESC+"[1;3C"&&(o.key=s.C0.ESC+(i?"f":"[1;5C"))):o.key=t?s.C0.ESC+"OC":s.C0.ESC+"[C";break;case 38:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"A",i||o.key!==s.C0.ESC+"[1;3A"||(o.key=s.C0.ESC+"[1;5A")):o.key=t?s.C0.ESC+"OA":s.C0.ESC+"[A";break;case 40:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"B",i||o.key!==s.C0.ESC+"[1;3B"||(o.key=s.C0.ESC+"[1;5B")):o.key=t?s.C0.ESC+"OB":s.C0.ESC+"[B";break;case 45:e.shiftKey||e.ctrlKey||(o.key=s.C0.ESC+"[2~");break;case 46:o.key=a?s.C0.ESC+"[3;"+(a+1)+"~":s.C0.ESC+"[3~";break;case 36:o.key=a?s.C0.ESC+"[1;"+(a+1)+"H":t?s.C0.ESC+"OH":s.C0.ESC+"[H";break;case 35:o.key=a?s.C0.ESC+"[1;"+(a+1)+"F":t?s.C0.ESC+"OF":s.C0.ESC+"[F";break;case 33:e.shiftKey?o.type=2:e.ctrlKey?o.key=s.C0.ESC+"[5;"+(a+1)+"~":o.key=s.C0.ESC+"[5~";break;case 34:e.shiftKey?o.type=3:e.ctrlKey?o.key=s.C0.ESC+"[6;"+(a+1)+"~":o.key=s.C0.ESC+"[6~";break;case 112:o.key=a?s.C0.ESC+"[1;"+(a+1)+"P":s.C0.ESC+"OP";break;case 113:o.key=a?s.C0.ESC+"[1;"+(a+1)+"Q":s.C0.ESC+"OQ";break;case 114:o.key=a?s.C0.ESC+"[1;"+(a+1)+"R":s.C0.ESC+"OR";break;case 115:o.key=a?s.C0.ESC+"[1;"+(a+1)+"S":s.C0.ESC+"OS";break;case 116:o.key=a?s.C0.ESC+"[15;"+(a+1)+"~":s.C0.ESC+"[15~";break;case 117:o.key=a?s.C0.ESC+"[17;"+(a+1)+"~":s.C0.ESC+"[17~";break;case 118:o.key=a?s.C0.ESC+"[18;"+(a+1)+"~":s.C0.ESC+"[18~";break;case 119:o.key=a?s.C0.ESC+"[19;"+(a+1)+"~":s.C0.ESC+"[19~";break;case 120:o.key=a?s.C0.ESC+"[20;"+(a+1)+"~":s.C0.ESC+"[20~";break;case 121:o.key=a?s.C0.ESC+"[21;"+(a+1)+"~":s.C0.ESC+"[21~";break;case 122:o.key=a?s.C0.ESC+"[23;"+(a+1)+"~":s.C0.ESC+"[23~";break;case 123:o.key=a?s.C0.ESC+"[24;"+(a+1)+"~":s.C0.ESC+"[24~";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(i&&!n||!e.altKey||e.metaKey)!i||e.altKey||e.ctrlKey||e.shiftKey||!e.metaKey?e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&1===e.key.length?o.key=e.key:e.key&&e.ctrlKey&&("_"===e.key&&(o.key=s.C0.US),"@"===e.key&&(o.key=s.C0.NUL)):65===e.keyCode&&(o.type=1);else{const t=r[e.keyCode],i=t?.[e.shiftKey?1:0];if(i)o.key=s.C0.ESC+i;else if(e.keyCode>=65&&e.keyCode<=90){const t=e.ctrlKey?e.keyCode-64:e.keyCode+32;let i=String.fromCharCode(t);e.shiftKey&&(i=i.toUpperCase()),o.key=s.C0.ESC+i}else if(32===e.keyCode)o.key=s.C0.ESC+(e.ctrlKey?s.C0.NUL:" ");else if("Dead"===e.key&&e.code.startsWith("Key")){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),o.key=s.C0.ESC+t,o.cancel=!0}}else e.keyCode>=65&&e.keyCode<=90?o.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?o.key=s.C0.NUL:e.keyCode>=51&&e.keyCode<=55?o.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?o.key=s.C0.DEL:219===e.keyCode?o.key=s.C0.ESC:220===e.keyCode?o.key=s.C0.FS:221===e.keyCode&&(o.key=s.C0.GS)}return o}},482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s="";for(let r=t;r65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let n=r;n=i)return this._interim=r,s;const o=e.charCodeAt(n);56320<=o&&o<=57343?t[s++]=1024*(r-55296)+o-56320+65536:(t[s++]=r,t[s++]=o)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,n,o,a=0,h=0,c=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let n,o=0;for(;(n=63&this.interim[++o])&&o<4;)r<<=6,r|=n;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,l=h-o;for(;c=i)return 0;if(n=e[c++],128!=(192&n)){c--,s=!0;break}this.interim[o++]=n,r<<=6,r|=63&n}s||(2===h?r<128?c--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const l=i-4;let d=c;for(;d=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&n,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=n,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&n)<<6|63&o,h<65536||h>1114111)continue;t[a++]=h}}return a}}},225:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV6=void 0;const s=i(1480),r=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],n=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];let o;t.UnicodeV6=class{constructor(){if(this.version="6",!o){o=new Uint8Array(65536),o.fill(1),o[0]=0,o.fill(0,1,32),o.fill(0,127,160),o.fill(2,4352,4448),o[9001]=2,o[9002]=2,o.fill(2,11904,42192),o[12351]=1,o.fill(2,44032,55204),o.fill(2,63744,64256),o.fill(2,65040,65050),o.fill(2,65072,65136),o.fill(2,65280,65377),o.fill(2,65504,65511);for(let e=0;et[r][1])return!1;for(;r>=s;)if(i=s+r>>1,e>t[i][1])s=i+1;else{if(!(e=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let i=this.wcwidth(e),r=0===i&&0!==t;if(r){const e=s.UnicodeService.extractWidth(t);0===e?r=!1:e>i&&(i=e)}return s.UnicodeService.createPropertyValue(0,i,r)}}},5981:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WriteBuffer=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new s.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(void 0!==t&&this._syncCalls>t)return void(this._syncCalls=0);if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let i;for(this._isSyncWriting=!0;i=this._writeBuffer.shift();){this._action(i);const e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>5e7)throw new Error("write data discarded, use flow control to avoid losing data");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t),void this._innerWrite();setTimeout((()=>this._innerWrite()))}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){const i=e||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){const e=this._writeBuffer[this._bufferOffset],s=this._action(e,t);if(s){const e=e=>Date.now()-i>=12?setTimeout((()=>this._innerWrite(0,e))):this._innerWrite(i,e);return void s.catch((e=>(queueMicrotask((()=>{throw e})),Promise.resolve(!1)))).then(e)}const r=this._callbacks[this._bufferOffset];if(r&&r(),this._bufferOffset++,this._pendingData-=e.length,Date.now()-i>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout((()=>this._innerWrite()))):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}t.WriteBuffer=n},5941:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.toRgbString=t.parseColor=void 0;const i=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,s=/^[\da-f]+$/;function r(e,t){const i=e.toString(16),s=i.length<2?"0"+i:i;switch(t){case 4:return i[0];case 8:return s;case 12:return(s+s).slice(0,3);default:return s+s}}t.parseColor=function(e){if(!e)return;let t=e.toLowerCase();if(0===t.indexOf("rgb:")){t=t.slice(4);const e=i.exec(t);if(e){const t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(0===t.indexOf("#")&&(t=t.slice(1),s.exec(t)&&[3,6,9,12].includes(t.length))){const e=t.length/3,i=[0,0,0];for(let s=0;s<3;++s){const r=parseInt(t.slice(e*s,e*s+e),16);i[s]=1===e?r<<4:2===e?r:3===e?r>>4:r>>8}return i}},t.toRgbString=function(e,t=16){const[i,s,n]=e;return`rgb:${r(i,t)}/${r(s,t)}/${r(n,t)}`}},5770:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PAYLOAD_LIMIT=void 0,t.PAYLOAD_LIMIT=1e7},6351:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DcsHandler=t.DcsParser=void 0;const s=i(482),r=i(8742),n=i(5770),o=[];t.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=o,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=o}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=o,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||o,this._active.length)for(let i=this._active.length-1;i>=0;i--)this._active[i].hook(t);else this._handlerFb(this._ident,"HOOK",t)}put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._ident,"PUT",(0,s.utf32ToString)(e,t,i))}unhook(e,t=!0){if(this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].unhook(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].unhook(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._ident,"UNHOOK",e);this._active=o,this._ident=0}};const a=new r.Params;a.addParam(0),t.DcsHandler=class{constructor(e){this._handler=e,this._data="",this._params=a,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():a,this._data="",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,s.utf32ToString)(e,t,i),this._data.length>n.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then((e=>(this._params=a,this._data="",this._hitLimit=!1,e)));return this._params=a,this._data="",this._hitLimit=!1,t}}},2015:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceParser=t.VT500_TRANSITION_TABLE=t.TransitionTable=void 0;const s=i(844),r=i(8742),n=i(6242),o=i(6351);class a{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,i,s){this.table[t<<8|e]=i<<4|s}addMany(e,t,i,s){for(let r=0;rt)),i=(e,i)=>t.slice(e,i),s=i(32,127),r=i(0,24);r.push(25),r.push.apply(r,i(28,32));const n=i(0,14);let o;for(o in e.setDefault(1,0),e.addMany(s,0,2,0),n)e.addMany([24,26,153,154],o,3,0),e.addMany(i(128,144),o,3,0),e.addMany(i(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(r,0,3,0),e.addMany(r,1,3,1),e.add(127,1,0,1),e.addMany(r,8,0,8),e.addMany(r,3,3,3),e.add(127,3,0,3),e.addMany(r,4,3,4),e.add(127,4,0,4),e.addMany(r,6,3,6),e.addMany(r,5,3,5),e.add(127,5,0,5),e.addMany(r,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(s,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(i(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(s,7,0,7),e.addMany(r,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(i(64,127),3,7,0),e.addMany(i(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(i(48,60),4,8,4),e.addMany(i(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(i(32,64),6,0,6),e.add(127,6,0,6),e.addMany(i(64,127),6,0,0),e.addMany(i(32,48),3,9,5),e.addMany(i(32,48),5,9,5),e.addMany(i(48,64),5,0,6),e.addMany(i(64,127),5,7,0),e.addMany(i(32,48),4,9,5),e.addMany(i(32,48),1,9,2),e.addMany(i(32,48),2,9,2),e.addMany(i(48,127),2,10,0),e.addMany(i(48,80),1,10,0),e.addMany(i(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(i(96,127),1,10,0),e.add(80,1,11,9),e.addMany(r,9,0,9),e.add(127,9,0,9),e.addMany(i(28,32),9,0,9),e.addMany(i(32,48),9,9,12),e.addMany(i(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(r,11,0,11),e.addMany(i(32,128),11,0,11),e.addMany(i(28,32),11,0,11),e.addMany(r,10,0,10),e.add(127,10,0,10),e.addMany(i(28,32),10,0,10),e.addMany(i(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(i(32,48),10,9,12),e.addMany(r,12,0,12),e.add(127,12,0,12),e.addMany(i(28,32),12,0,12),e.addMany(i(32,48),12,9,12),e.addMany(i(48,64),12,0,11),e.addMany(i(64,127),12,12,13),e.addMany(i(64,127),10,12,13),e.addMany(i(64,127),9,12,13),e.addMany(r,13,13,13),e.addMany(s,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(h,0,2,0),e.add(h,8,5,8),e.add(h,6,0,6),e.add(h,11,0,11),e.add(h,13,13,13),e}();class c extends s.Disposable{constructor(e=t.VT500_TRANSITION_TABLE){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new r.Params,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(e,t,i)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,s.toDisposable)((()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)}))),this._oscParser=this.register(new n.OscParser),this._dcsParser=this.register(new o.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},(()=>!0))}_identifier(e,t=[64,126]){let i=0;if(e.prefix){if(e.prefix.length>1)throw new Error("only one byte as prefix supported");if(i=e.prefix.charCodeAt(0),i&&60>i||i>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(e.intermediates){if(e.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let t=0;ts||s>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");i<<=8,i|=s}}if(1!==e.final.length)throw new Error("final must be a single byte");const s=e.final.charCodeAt(0);if(t[0]>s||s>t[1])throw new Error(`final must be in range ${t[0]} .. ${t[1]}`);return i<<=8,i|=s,i}identToString(e){const t=[];for(;e;)t.push(String.fromCharCode(255&e)),e>>=8;return t.reverse().join("")}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){const i=this._identifier(e,[48,126]);void 0===this._escHandlers[i]&&(this._escHandlers[i]=[]);const s=this._escHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){const i=this._identifier(e);void 0===this._csiHandlers[i]&&(this._csiHandlers[i]=[]);const s=this._csiHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,0!==this._parseStack.state&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,i,s,r){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=i,this._parseStack.transition=s,this._parseStack.chunkPos=r}parse(e,t,i){let s,r=0,n=0,o=0;if(this._parseStack.state)if(2===this._parseStack.state)this._parseStack.state=0,o=this._parseStack.chunkPos+1;else{if(void 0===i||1===this._parseStack.state)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");const t=this._parseStack.handlers;let n=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](this._params),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 4:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],s=this._dcsParser.unhook(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],s=this._oscParser.end(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,o=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=15&this._parseStack.transition}for(let a=o;a>4){case 2:for(let s=a+1;;++s){if(s>=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=0&&(s=i[o](this._params),!0!==s);o--)if(s instanceof Promise)return this._preserveStack(3,i,o,n,a),s;o<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingJoinState=0;break;case 8:do{switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}}while(++a47&&r<60);a--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:const c=this._escHandlers[this._collect<<8|r];let l=c?c.length-1:-1;for(;l>=0&&(s=c[l](),!0!==s);l--)if(s instanceof Promise)return this._preserveStack(4,c,l,n,a),s;l<0&&this._escHandlerFb(this._collect<<8|r),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let s=a+1;;++s)if(s>=t||24===(r=e[s])||26===r||27===r||r>127&&r=t||(r=e[s])<32||r>127&&r{Object.defineProperty(t,"__esModule",{value:!0}),t.OscHandler=t.OscParser=void 0;const s=i(5770),r=i(482),n=[];t.OscParser=class{constructor(){this._state=0,this._active=n,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=n}reset(){if(2===this._state)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=n,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||n,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].start();else this._handlerFb(this._id,"START")}_put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._id,"PUT",(0,r.utf32ToString)(e,t,i))}start(){this.reset(),this._state=1}put(e,t,i){if(3!==this._state){if(1===this._state)for(;t0&&this._put(e,t,i)}}end(e,t=!0){if(0!==this._state){if(3!==this._state)if(1===this._state&&this._start(),this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].end(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].end(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._id,"END",e);this._active=n,this._id=-1,this._state=0}}},t.OscHandler=class{constructor(e){this._handler=e,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,r.utf32ToString)(e,t,i),this._data.length>s.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then((e=>(this._data="",this._hitLimit=!1,e)));return this._data="",this._hitLimit=!1,t}}},8742:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Params=void 0;const i=2147483647;class s{static fromArray(e){const t=new s;if(!e.length)return t;for(let i=Array.isArray(e[0])?1:0;i256)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){const e=new s(this.maxLength,this.maxSubParamsLength);return e.params.set(this.params),e.length=this.length,e._subParams.set(this._subParams),e._subParamsLength=this._subParamsLength,e._subParamsIdx.set(this._subParamsIdx),e._rejectDigits=this._rejectDigits,e._rejectSubDigits=this._rejectSubDigits,e._digitIsSub=this._digitIsSub,e}toArray(){const e=[];for(let t=0;t>8,s=255&this._subParamsIdx[t];s-i>0&&e.push(Array.prototype.slice.call(this._subParams,i,s))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>i?i:e}}addSubParam(e){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=e>i?i:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0}getSubParams(e){const t=this._subParamsIdx[e]>>8,i=255&this._subParamsIdx[e];return i-t>0?this._subParams.subarray(t,i):null}getSubParamsAll(){const e={};for(let t=0;t>8,s=255&this._subParamsIdx[t];s-i>0&&(e[t]=this._subParams.slice(i,s))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;const s=this._digitIsSub?this._subParams:this.params,r=s[t-1];s[t-1]=~r?Math.min(10*r+e,i):e}}t.Params=s},5741:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AddonManager=void 0,t.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){const i={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(i),t.dispose=()=>this._wrappedAddonDispose(i),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let i=0;i{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferApiView=void 0;const s=i(3785),r=i(511);t.BufferApiView=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){const t=this._buffer.lines.get(e);if(t)return new s.BufferLineApiView(t)}getNullCell(){return new r.CellData}}},3785:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLineApiView=void 0;const s=i(511);t.BufferLineApiView=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new s.CellData)}translateToString(e,t,i){return this._line.translateToString(e,t,i)}}},8285:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferNamespaceApi=void 0;const s=i(8771),r=i(8460),n=i(844);class o extends n.Disposable{constructor(e){super(),this._core=e,this._onBufferChange=this.register(new r.EventEmitter),this.onBufferChange=this._onBufferChange.event,this._normal=new s.BufferApiView(this._core.buffers.normal,"normal"),this._alternate=new s.BufferApiView(this._core.buffers.alt,"alternate"),this._core.buffers.onBufferActivate((()=>this._onBufferChange.fire(this.active)))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error("Active buffer is neither normal nor alternate")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}t.BufferNamespaceApi=o},7975:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ParserApi=void 0,t.ParserApi=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,(e=>t(e.toArray())))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,((e,i)=>t(e,i.toArray())))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}}},7090:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeApi=void 0,t.UnicodeApi=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}}},744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferService=t.MINIMUM_ROWS=t.MINIMUM_COLS=void 0;const n=i(8460),o=i(844),a=i(5295),h=i(2585);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;let c=t.BufferService=class extends o.Disposable{get buffer(){return this.buffers.active}constructor(e){super(),this.isUserScrolling=!1,this._onResize=this.register(new n.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new n.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,t.MINIMUM_COLS),this.rows=Math.max(e.rawOptions.rows||0,t.MINIMUM_ROWS),this.buffers=this.register(new a.BufferSet(e,this))}resize(e,t){this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){const i=this.buffer;let s;s=this._cachedBlankLine,s&&s.length===this.cols&&s.getFg(0)===e.fg&&s.getBg(0)===e.bg||(s=i.getBlankLine(e,t),this._cachedBlankLine=s),s.isWrapped=t;const r=i.ybase+i.scrollTop,n=i.ybase+i.scrollBottom;if(0===i.scrollTop){const e=i.lines.isFull;n===i.lines.length-1?e?i.lines.recycle().copyFrom(s):i.lines.push(s.clone()):i.lines.splice(n+1,0,s.clone()),e?this.isUserScrolling&&(i.ydisp=Math.max(i.ydisp-1,0)):(i.ybase++,this.isUserScrolling||i.ydisp++)}else{const e=n-r+1;i.lines.shiftElements(r+1,e-1,-1),i.lines.set(n,s.clone())}this.isUserScrolling||(i.ydisp=i.ybase),this._onScroll.fire(i.ydisp)}scrollLines(e,t,i){const s=this.buffer;if(e<0){if(0===s.ydisp)return;this.isUserScrolling=!0}else e+s.ydisp>=s.ybase&&(this.isUserScrolling=!1);const r=s.ydisp;s.ydisp=Math.max(Math.min(s.ydisp+e,s.ybase),0),r!==s.ydisp&&(t||this._onScroll.fire(s.ydisp))}};t.BufferService=c=s([r(0,h.IOptionsService)],c)},7994:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CharsetService=void 0,t.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}}},1753:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreMouseService=void 0;const n=i(2585),o=i(8460),a=i(844),h={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>32!==e.action},DRAG:{events:23,restrict:e=>32!==e.action||3!==e.button},ANY:{events:31,restrict:e=>!0}};function c(e,t){let i=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return 4===e.button?(i|=64,i|=e.action):(i|=3&e.button,4&e.button&&(i|=64),8&e.button&&(i|=128),32===e.action?i|=32:0!==e.action||t||(i|=3)),i}const l=String.fromCharCode,d={DEFAULT:e=>{const t=[c(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?"":`${l(t[0])}${l(t[1])}${l(t[2])}`},SGR:e=>{const t=0===e.action&&4!==e.button?"m":"M";return`[<${c(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{const t=0===e.action&&4!==e.button?"m":"M";return`[<${c(e,!0)};${e.x};${e.y}${t}`}};let _=t.CoreMouseService=class extends a.Disposable{constructor(e,t){super(),this._bufferService=e,this._coreService=t,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._onProtocolChange=this.register(new o.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(const i of Object.keys(h))this.addProtocol(i,h[i]);for(const i of Object.keys(d))this.addEncoding(i,d[i]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}set activeProtocol(e){if(!this._protocols[e])throw new Error(`unknown protocol "${e}"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw new Error(`unknown encoding "${e}"`);this._activeEncoding=e}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows)return!1;if(4===e.button&&32===e.action)return!1;if(3===e.button&&32!==e.action)return!1;if(4!==e.button&&(2===e.action||3===e.action))return!1;if(e.col++,e.row++,32===e.action&&this._lastEvent&&this._equalEvents(this._lastEvent,e,"SGR_PIXELS"===this._activeEncoding))return!1;if(!this._protocols[this._activeProtocol].restrict(e))return!1;const t=this._encodings[this._activeEncoding](e);return t&&("DEFAULT"===this._activeEncoding?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(1&e),up:!!(2&e),drag:!!(4&e),move:!!(8&e),wheel:!!(16&e)}}_equalEvents(e,t,i){if(i){if(e.x!==t.x)return!1;if(e.y!==t.y)return!1}else{if(e.col!==t.col)return!1;if(e.row!==t.row)return!1}return e.button===t.button&&e.action===t.action&&e.ctrl===t.ctrl&&e.alt===t.alt&&e.shift===t.shift}};t.CoreMouseService=_=s([r(0,n.IBufferService),r(1,n.ICoreService)],_)},6975:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreService=void 0;const n=i(1439),o=i(8460),a=i(844),h=i(2585),c=Object.freeze({insertMode:!1}),l=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0});let d=t.CoreService=class extends a.Disposable{constructor(e,t,i){super(),this._bufferService=e,this._logService=t,this._optionsService=i,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new o.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new o.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new o.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new o.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,n.clone)(c),this.decPrivateModes=(0,n.clone)(l)}reset(){this.modes=(0,n.clone)(c),this.decPrivateModes=(0,n.clone)(l)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;const i=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&i.ybase!==i.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data "${e}"`,(()=>e.split("").map((e=>e.charCodeAt(0))))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${e}"`,(()=>e.split("").map((e=>e.charCodeAt(0))))),this._onBinary.fire(e))}};t.CoreService=d=s([r(0,h.IBufferService),r(1,h.ILogService),r(2,h.IOptionsService)],d)},9074:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DecorationService=void 0;const s=i(8055),r=i(8460),n=i(844),o=i(6106);let a=0,h=0;class c extends n.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new o.SortedList((e=>e?.marker.line)),this._onDecorationRegistered=this.register(new r.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new r.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,n.toDisposable)((()=>this.reset())))}registerDecoration(e){if(e.marker.isDisposed)return;const t=new l(e);if(t){const e=t.marker.onDispose((()=>t.dispose()));t.onDispose((()=>{t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())})),this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(const e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,i){let s=0,r=0;for(const n of this._decorations.getKeyIterator(t))s=n.options.x??0,r=s+(n.options.width??1),e>=s&&e{a=t.options.x??0,h=a+(t.options.width??1),e>=a&&e{Object.defineProperty(t,"__esModule",{value:!0}),t.InstantiationService=t.ServiceCollection=void 0;const s=i(2585),r=i(8343);class n{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}forEach(e){for(const[t,i]of this._entries.entries())e(t,i)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}}t.ServiceCollection=n,t.InstantiationService=class{constructor(){this._services=new n,this._services.set(s.IInstantiationService,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){const i=(0,r.getServiceDependencies)(e).sort(((e,t)=>e.index-t.index)),s=[];for(const r of i){const t=this._services.get(r.id);if(!t)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${r.id}.`);s.push(t)}const n=i.length>0?i[0].index:t.length;if(t.length!==n)throw new Error(`[createInstance] First service dependency of ${e.name} at position ${n+1} conflicts with ${t.length} static arguments`);return new e(...[...t,...s])}}},7866:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;const n=i(844),o=i(2585),a={trace:o.LogLevelEnum.TRACE,debug:o.LogLevelEnum.DEBUG,info:o.LogLevelEnum.INFO,warn:o.LogLevelEnum.WARN,error:o.LogLevelEnum.ERROR,off:o.LogLevelEnum.OFF};let h,c=t.LogService=class extends n.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=o.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",(()=>this._updateLogLevel()))),h=this}_updateLogLevel(){this._logLevel=a[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;tJSON.stringify(e))).join(", ")})`);const t=s.apply(this,e);return h.trace(`GlyphRenderer#${s.name} return`,t),t}}},7302:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsService=t.DEFAULT_OPTIONS=void 0;const s=i(8460),r=i(844),n=i(6114);t.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",cursorWidth:1,cursorInactiveStyle:"outline",customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:"info",logger:null,scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rescaleOverlappingGlyphs:!1,rightClickSelectsWord:n.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRulerWidth:0};const o=["normal","bold","100","200","300","400","500","600","700","800","900"];class a extends r.Disposable{constructor(e){super(),this._onOptionChange=this.register(new s.EventEmitter),this.onOptionChange=this._onOptionChange.event;const i={...t.DEFAULT_OPTIONS};for(const t in e)if(t in i)try{const s=e[t];i[t]=this._sanitizeAndValidateOption(t,s)}catch(e){console.error(e)}this.rawOptions=i,this.options={...i},this._setupOptions(),this.register((0,r.toDisposable)((()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null})))}onSpecificOptionChange(e,t){return this.onOptionChange((i=>{i===e&&t(this.rawOptions[e])}))}onMultipleOptionChange(e,t){return this.onOptionChange((i=>{-1!==e.indexOf(i)&&t()}))}_setupOptions(){const e=e=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${e}"`);return this.rawOptions[e]},i=(e,i)=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${e}"`);i=this._sanitizeAndValidateOption(e,i),this.rawOptions[e]!==i&&(this.rawOptions[e]=i,this._onOptionChange.fire(e))};for(const t in this.rawOptions){const s={get:e.bind(this,t),set:i.bind(this,t)};Object.defineProperty(this.options,t,s)}}_sanitizeAndValidateOption(e,i){switch(e){case"cursorStyle":if(i||(i=t.DEFAULT_OPTIONS[e]),!function(e){return"block"===e||"underline"===e||"bar"===e}(i))throw new Error(`"${i}" is not a valid value for ${e}`);break;case"wordSeparator":i||(i=t.DEFAULT_OPTIONS[e]);break;case"fontWeight":case"fontWeightBold":if("number"==typeof i&&1<=i&&i<=1e3)break;i=o.includes(i)?i:t.DEFAULT_OPTIONS[e];break;case"cursorWidth":i=Math.floor(i);case"lineHeight":case"tabStopWidth":if(i<1)throw new Error(`${e} cannot be less than 1, value: ${i}`);break;case"minimumContrastRatio":i=Math.max(1,Math.min(21,Math.round(10*i)/10));break;case"scrollback":if((i=Math.min(i,4294967295))<0)throw new Error(`${e} cannot be less than 0, value: ${i}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(i<=0)throw new Error(`${e} cannot be less than or equal to 0, value: ${i}`);break;case"rows":case"cols":if(!i&&0!==i)throw new Error(`${e} must be numeric, value: ${i}`);break;case"windowsPty":i=i??{}}return i}}t.OptionsService=a},2660:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkService=void 0;const n=i(2585);let o=t.OscLinkService=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){const t=this._bufferService.buffer;if(void 0===e.id){const i=t.addMarker(t.ybase+t.y),s={data:e,id:this._nextId++,lines:[i]};return i.onDispose((()=>this._removeMarkerFromLink(s,i))),this._dataByLinkId.set(s.id,s),s.id}const i=e,s=this._getEntryIdKey(i),r=this._entriesWithId.get(s);if(r)return this.addLineToLink(r.id,t.ybase+t.y),r.id;const n=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(i),data:i,lines:[n]};return n.onDispose((()=>this._removeMarkerFromLink(o,n))),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){const i=this._dataByLinkId.get(e);if(i&&i.lines.every((e=>e.line!==t))){const e=this._bufferService.buffer.addMarker(t);i.lines.push(e),e.onDispose((()=>this._removeMarkerFromLink(i,e)))}}getLinkData(e){return this._dataByLinkId.get(e)?.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){const i=e.lines.indexOf(t);-1!==i&&(e.lines.splice(i,1),0===e.lines.length&&(void 0!==e.data.id&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};t.OscLinkService=o=s([r(0,n.IBufferService)],o)},8343:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;const i="di$target",s="di$dependencies";t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[s]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const r=function(e,t,n){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");!function(e,t,r){t[i]===t?t[s].push({id:e,index:r}):(t[s]=[{id:e,index:r}],t[i]=t)}(r,e,n)};return r.toString=()=>e,t.serviceRegistry.set(e,r),r}},2585:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(8343);var r;t.IBufferService=(0,s.createDecorator)("BufferService"),t.ICoreMouseService=(0,s.createDecorator)("CoreMouseService"),t.ICoreService=(0,s.createDecorator)("CoreService"),t.ICharsetService=(0,s.createDecorator)("CharsetService"),t.IInstantiationService=(0,s.createDecorator)("InstantiationService"),function(e){e[e.TRACE=0]="TRACE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.OFF=5]="OFF"}(r||(t.LogLevelEnum=r={})),t.ILogService=(0,s.createDecorator)("LogService"),t.IOptionsService=(0,s.createDecorator)("OptionsService"),t.IOscLinkService=(0,s.createDecorator)("OscLinkService"),t.IUnicodeService=(0,s.createDecorator)("UnicodeService"),t.IDecorationService=(0,s.createDecorator)("DecorationService")},1480:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeService=void 0;const s=i(8460),r=i(225);class n{static extractShouldJoin(e){return 0!=(1&e)}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,i=!1){return(16777215&e)<<3|(3&t)<<1|(i?1:0)}constructor(){this._providers=Object.create(null),this._active="",this._onChange=new s.EventEmitter,this.onChange=this._onChange.event;const e=new r.UnicodeV6;this.register(e),this._active=e.version,this._activeProvider=e}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw new Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(e){let t=0,i=0;const s=e.length;for(let r=0;r=s)return t+this.wcwidth(o);const i=e.charCodeAt(r);56320<=i&&i<=57343?o=1024*(o-55296)+i-56320+65536:t+=this.wcwidth(i)}const a=this.charProperties(o,i);let h=n.extractWidth(a);n.extractShouldJoin(a)&&(h-=n.extractWidth(i)),t+=h,i=a}return t}charProperties(e,t){return this._activeProvider.charProperties(e,t)}}t.UnicodeService=n}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,i),n.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.Terminal=void 0;const t=i(9042),s=i(3236),n=i(844),o=i(5741),a=i(8285),h=i(7975),c=i(7090),l=["cols","rows"];class d extends n.Disposable{constructor(e){super(),this._core=this.register(new s.Terminal(e)),this._addonManager=this.register(new o.AddonManager),this._publicOptions={...this._core.options};const t=e=>this._core.options[e],i=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(const s in this._core.options){const e={get:t.bind(this,s),set:i.bind(this,s)};Object.defineProperty(this._publicOptions,s,e)}}_checkReadonlyOptions(e){if(l.includes(e))throw new Error(`Option "${e}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new h.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new c.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this.register(new a.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){const e=this._core.coreService.decPrivateModes;let t="none";switch(this._core.coreMouseService.activeProtocol){case"X10":t="x10";break;case"VT200":t="vt200";break;case"DRAG":t="drag";break;case"ANY":t="any"}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(const t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,t=!0){this._core.input(e,t)}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this._core.attachCustomWheelEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.registerMarker(e)}registerDecoration(e){return this._checkProposedApi(),this._verifyPositiveIntegers(e.x??0,e.width??0,e.height??0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,i){this._verifyIntegers(e,t,i),this._core.select(e,t,i)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){super.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write("\r\n",t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return t}_verifyIntegers(...e){for(const t of e)if(t===1/0||isNaN(t)||t%1!=0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(const t of e)if(t&&(t===1/0||isNaN(t)||t%1!=0||t<0))throw new Error("This API only accepts positive integers")}}e.Terminal=d})(),r})()))},65606:e=>{var t=e.exports={};var i;var s;function r(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){i=setTimeout}else{i=r}}catch(e){i=r}try{if(typeof clearTimeout==="function"){s=clearTimeout}else{s=n}}catch(e){s=n}})();function o(e){if(i===setTimeout){return setTimeout(e,0)}if((i===r||!i)&&setTimeout){i=setTimeout;return setTimeout(e,0)}try{return i(e,0)}catch(t){try{return i.call(null,e,0)}catch(t){return i.call(this,e,0)}}}function a(e){if(s===clearTimeout){return clearTimeout(e)}if((s===n||!s)&&clearTimeout){s=clearTimeout;return clearTimeout(e)}try{return s(e)}catch(t){try{return s.call(null,e)}catch(t){return s.call(this,e)}}}var h=[];var c=false;var l;var d=-1;function _(){if(!c||!l){return}c=false;if(l.length){h=l.concat(h)}else{d=-1}if(h.length){u()}}function u(){if(c){return}var e=o(_);c=true;var t=h.length;while(t){l=h;h=[];while(++d1){for(var i=1;i{n.d(e,{P:()=>g});const i="view",r="[",s="]",a="{",o="}",u=":",l=",",c="@",f=">",d=/[[\]{}]/,h={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let p,m;function g(t,e,n){p=e||i;m=n||h;return b(t.trim()).map(x)}function y(t){return m[t]}function v(t,e,n,i,r){const s=t.length;let a=0,o;for(;e=0)--a;else if(i&&i.indexOf(o)>=0)++a}return e}function b(t){const e=[],n=t.length;let i=0,u=0;while(u' after between selector: "+t}i=i.map(x);const a=x(t.slice(1).trim());if(a.between){return{between:i,stream:a}}else{a.between=i}return a}function w(t){const e={source:p},n=[];let i=[0,0],l=0,f=0,h=t.length,m=0,g,b;if(t[h-1]===o){m=t.lastIndexOf(a);if(m>=0){try{i=A(t.substring(m+1,h-1))}catch(x){throw"Invalid throttle specification: "+t}t=t.slice(0,m).trim();h=t.length}else throw"Unmatched right brace: "+t;m=0}if(!h)throw t;if(t[0]===c)l=++m;g=v(t,m,u);if(g1){e.type=n[1];if(l){e.markname=n[0].slice(1)}else if(y(n[0])){e.marktype=n[0]}else{e.source=n[0]}}else{e.type=n[0]}if(e.type.slice(-1)==="!"){e.consume=true;e.type=e.type.slice(0,-1)}if(b!=null)e.filter=b;if(i[0])e.throttle=i[0];if(i[1])e.debounce=i[1];return e}function A(t){const e=t.split(l);if(!t.length||e.length>2)throw t;return e.map((e=>{const n=+e;if(n!==n)throw t;return n}))}},37879:(t,e,n)=>{n.r(e);n.d(e,{Bounds:()=>vd,CanvasHandler:()=>jm,CanvasRenderer:()=>Zm,DATE:()=>it,DAY:()=>rt,DAYOFYEAR:()=>st,Dataflow:()=>Si,Debug:()=>p.y,Error:()=>p.$D,EventStream:()=>Ln,Gradient:()=>Hc,GroupItem:()=>xd,HOURS:()=>at,Handler:()=>hm,HybridHandler:()=>ey,HybridRenderer:()=>ty,Info:()=>p.R2,Item:()=>bd,MILLISECONDS:()=>lt,MINUTES:()=>ot,MONTH:()=>et,Marks:()=>Qp,MultiPulse:()=>pi,None:()=>p.NV,Operator:()=>$n,Parameters:()=>Dn,Pulse:()=>ci,QUARTER:()=>tt,RenderType:()=>oy,Renderer:()=>mm,ResourceLoader:()=>_d,SECONDS:()=>ut,SVGHandler:()=>eg,SVGRenderer:()=>Rg,SVGStringRenderer:()=>Qg,Scenegraph:()=>rm,TIME_UNITS:()=>ct,Transform:()=>zi,View:()=>Hq,WEEK:()=>nt,Warn:()=>p.P$,YEAR:()=>J,accessor:()=>p.sY,accessorFields:()=>p.nS,accessorName:()=>p.N6,array:()=>p.YO,ascending:()=>p.V_,bandwidthNRD:()=>er,bin:()=>nr,bootstrapCI:()=>sr,boundClip:()=>gy,boundContext:()=>jd,boundItem:()=>Kp,boundMark:()=>Jp,boundStroke:()=>kd,changeset:()=>En,clampRange:()=>p.BS,codegenExpression:()=>cO,compare:()=>p.UD,constant:()=>p.dY,cumulativeLogNormal:()=>wr,cumulativeNormal:()=>mr,cumulativeUniform:()=>Cr,dayofyear:()=>yt,debounce:()=>p.sg,defaultLocale:()=>Fe,definition:()=>Ri,densityLogNormal:()=>_r,densityNormal:()=>pr,densityUniform:()=>Dr,domChild:()=>um,domClear:()=>lm,domCreate:()=>am,domFind:()=>om,dotbin:()=>ar,error:()=>p.z3,expressionFunction:()=>UL,extend:()=>p.X$,extent:()=>p.Xx,extentIndex:()=>p.n,falsy:()=>p.me,fastmap:()=>p.nG,field:()=>p.ZZ,flush:()=>p.bX,font:()=>Lp,fontFamily:()=>Np,fontSize:()=>Fp,format:()=>an,formatLocale:()=>xe,formats:()=>on,hasOwnProperty:()=>p.mQ,id:()=>p.id,identity:()=>p.D_,inferType:()=>Qe,inferTypes:()=>Ke,ingest:()=>bn,inherits:()=>p.B,inrange:()=>p.PK,interpolate:()=>oc,interpolateColors:()=>ic,interpolateRange:()=>nc,intersect:()=>cy,intersectBoxLine:()=>th,intersectPath:()=>Qd,intersectPoint:()=>Kd,intersectRule:()=>Jd,isArray:()=>p.cy,isBoolean:()=>p.Lm,isDate:()=>p.$P,isFunction:()=>p.Tn,isIterable:()=>p.xZ,isNumber:()=>p.Et,isObject:()=>p.Gv,isRegExp:()=>p.gd,isString:()=>p.Kg,isTuple:()=>gn,key:()=>p.Eb,lerp:()=>p.Cc,lineHeight:()=>Sp,loader:()=>fn,locale:()=>Ce,logger:()=>p.vF,lruCache:()=>p.EV,markup:()=>Eg,merge:()=>p.h1,mergeConfig:()=>p.io,multiLineOffset:()=>$p,one:()=>p.xH,pad:()=>p.eV,panLinear:()=>p.VC,panLog:()=>p.KH,panPow:()=>p.co,panSymlog:()=>p.zy,parse:()=>mW,parseExpression:()=>aO,parseSelector:()=>Jq.P,path:()=>Qo.Ae,pathCurves:()=>Qc,pathEqual:()=>by,pathParse:()=>nf,pathRectangle:()=>Bf,pathRender:()=>yf,pathSymbols:()=>_f,pathTrail:()=>zf,peek:()=>p.se,point:()=>fm,projection:()=>wk,quantileLogNormal:()=>Ar,quantileNormal:()=>gr,quantileUniform:()=>Fr,quantiles:()=>Ji,quantizeInterpolator:()=>rc,quarter:()=>p.$G,quartiles:()=>tr,random:()=>ir,randomInteger:()=>lr,randomKDE:()=>br,randomLCG:()=>ur,randomLogNormal:()=>kr,randomMixture:()=>Er,randomNormal:()=>vr,randomUniform:()=>Sr,read:()=>ln,regressionConstant:()=>Br,regressionExp:()=>Lr,regressionLinear:()=>Tr,regressionLoess:()=>Wr,regressionLog:()=>Nr,regressionPoly:()=>Ir,regressionPow:()=>Pr,regressionQuad:()=>qr,renderModule:()=>ly,repeat:()=>p.ux,resetDefaultLocale:()=>Se,resetSVGClipId:()=>gd,resetSVGDefIds:()=>_y,responseType:()=>un,runtimeContext:()=>bP,sampleCurve:()=>Kr,sampleLogNormal:()=>xr,sampleNormal:()=>hr,sampleUniform:()=>Mr,scale:()=>Yl,sceneEqual:()=>vy,sceneFromJSON:()=>nm,scenePickVisit:()=>dh,sceneToJSON:()=>em,sceneVisit:()=>fh,sceneZOrder:()=>ch,scheme:()=>pc,serializeXML:()=>Mg,setHybridRendererOptions:()=>Jg,setRandom:()=>rr,span:()=>p.Ln,splitAccessPath:()=>p.iv,stringValue:()=>p.r$,textMetrics:()=>Ap,timeBin:()=>ce,timeFloor:()=>Rt,timeFormatLocale:()=>Me,timeInterval:()=>qt,timeOffset:()=>jt,timeSequence:()=>Wt,timeUnitSpecifier:()=>pt,timeUnits:()=>dt,toBoolean:()=>p.G4,toDate:()=>p.ay,toNumber:()=>p.Ro,toSet:()=>p.M1,toString:()=>p.dI,transform:()=>Oi,transforms:()=>$i,truncate:()=>p.xv,truthy:()=>p.vN,tupleid:()=>yn,typeParsers:()=>Xe,utcFloor:()=>Nt,utcInterval:()=>It,utcOffset:()=>Gt,utcSequence:()=>Xt,utcdayofyear:()=>At,utcquarter:()=>p.vu,utcweek:()=>kt,version:()=>gW,visitArray:()=>p.rt,week:()=>vt,writeConfig:()=>p.AU,zero:()=>p.v_,zoomLinear:()=>p.lL,zoomLog:()=>p.oV,zoomPow:()=>p.SW,zoomSymlog:()=>p.B2});var i={};n.r(i);n.d(i,{aggregate:()=>xs,bin:()=>ws,collect:()=>ks,compare:()=>Es,countpattern:()=>Ds,cross:()=>Fs,density:()=>Ts,dotbin:()=>js,expression:()=>Ys,extent:()=>Xs,facet:()=>Vs,field:()=>Qs,filter:()=>Zs,flatten:()=>Js,fold:()=>ta,formula:()=>ea,generate:()=>na,impute:()=>sa,joinaggregate:()=>la,kde:()=>ca,key:()=>fa,load:()=>ha,lookup:()=>ga,multiextent:()=>ya,multivalues:()=>ba,params:()=>_a,pivot:()=>wa,prefacet:()=>Ma,project:()=>Da,proxy:()=>Fa,quantile:()=>Sa,relay:()=>za,sample:()=>$a,sequence:()=>Ra,sieve:()=>Oa,subflow:()=>Hs,timeunit:()=>Ta,tupleindex:()=>La,values:()=>Pa,window:()=>Xa});var r={};n.r(r);n.d(r,{bound:()=>sv,identifier:()=>uv,mark:()=>cv,overlap:()=>dv,render:()=>xv,viewlayout:()=>Qv});var s={};n.r(s);n.d(s,{axisticks:()=>eb,datajoin:()=>nb,encode:()=>sb,legendentries:()=>ab,linkpath:()=>fb,pie:()=>Eb,scale:()=>Sb,sortitems:()=>jb,stack:()=>Hb});var a={};n.r(a);n.d(a,{contour:()=>Jk,geojson:()=>iE,geopath:()=>rE,geopoint:()=>aE,geoshape:()=>oE,graticule:()=>lE,heatmap:()=>cE,isocontour:()=>qk,kde2d:()=>Vk,projection:()=>mE});var o={};n.r(o);n.d(o,{force:()=>yM});var u={};n.r(u);n.d(u,{nest:()=>oC,pack:()=>mC,partition:()=>yC,stratify:()=>vC,tree:()=>_C,treelinks:()=>wC,treemap:()=>EC});var l={};n.r(l);n.d(l,{label:()=>fF});var c={};n.r(c);n.d(c,{loess:()=>hF,regression:()=>gF});var f={};n.r(f);n.d(f,{voronoi:()=>_z});var d={};n.r(d);n.d(d,{wordcloud:()=>qz});var h={};n.r(h);n.d(h,{crossfilter:()=>Zz,resolvefilter:()=>Jz});var p=n(26372);var m={},g={},y=34,v=10,b=13;function x(t){return new Function("d","return {"+t.map((function(t,e){return JSON.stringify(t)+": d["+e+'] || ""'})).join(",")+"}")}function _(t,e){var n=x(t);return function(i,r){return e(n(i),r,t)}}function w(t){var e=Object.create(null),n=[];t.forEach((function(t){for(var i in t){if(!(i in e)){n.push(e[i]=i)}}}));return n}function A(t,e){var n=t+"",i=n.length;return i9999?"+"+A(t,6):A(t,4)}function E(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),i=t.getUTCSeconds(),r=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":k(t.getUTCFullYear(),4)+"-"+A(t.getUTCMonth()+1,2)+"-"+A(t.getUTCDate(),2)+(r?"T"+A(e,2)+":"+A(n,2)+":"+A(i,2)+"."+A(r,3)+"Z":i?"T"+A(e,2)+":"+A(n,2)+":"+A(i,2)+"Z":n||e?"T"+A(e,2)+":"+A(n,2)+"Z":"")}function M(t){var e=new RegExp('["'+t+"\n\r]"),n=t.charCodeAt(0);function i(t,e){var n,i,s=r(t,(function(t,r){if(n)return n(t,r-1);i=t,n=e?_(t,e):x(t)}));s.columns=i||[];return s}function r(t,e){var i=[],r=t.length,s=0,a=0,o,u=r<=0,l=false;if(t.charCodeAt(r-1)===v)--r;if(t.charCodeAt(r-1)===b)--r;function c(){if(u)return g;if(l)return l=false,m;var e,i=s,a;if(t.charCodeAt(i)===y){while(s++=r)u=true;else if((a=t.charCodeAt(s++))===v)l=true;else if(a===b){l=true;if(t.charCodeAt(s)===v)++s}return t.slice(i+1,e-1).replace(/""/g,'"')}while(s1)i=T(t,e,n);else for(r=0,i=new Array(s=t.arcs.length);r(t[e]=1+n,t)),{});function dt(t){const e=(0,p.YO)(t).slice(),n={};if(!e.length)(0,p.z3)("Missing time unit.");e.forEach((t=>{if((0,p.mQ)(ft,t)){n[t]=1}else{(0,p.z3)(`Invalid time unit: ${t}.`)}}));const i=(n[nt]||n[rt]?1:0)+(n[tt]||n[et]||n[it]?1:0)+(n[st]?1:0);if(i>1){(0,p.z3)(`Incompatible time units: ${t}`)}e.sort(((t,e)=>ft[t]-ft[e]));return e}const ht={[J]:"%Y ",[tt]:"Q%q ",[et]:"%b ",[it]:"%d ",[nt]:"W%U ",[rt]:"%a ",[st]:"%j ",[at]:"%H:00",[ot]:"00:%M",[ut]:":%S",[lt]:".%L",[`${J}-${et}`]:"%Y-%m ",[`${J}-${et}-${it}`]:"%Y-%m-%d ",[`${at}-${ot}`]:"%H:%M"};function pt(t,e){const n=(0,p.X$)({},ht,e),i=dt(t),r=i.length;let s="",a=0,o,u;for(a=0;aa;--o){u=i.slice(a,o).join("-");if(n[u]!=null){s+=n[u];a=o;break}}}return s.trim()}const mt=new Date;function gt(t){mt.setFullYear(t);mt.setMonth(0);mt.setDate(1);mt.setHours(0,0,0,0);return mt}function yt(t){return bt(new Date(t))}function vt(t){return xt(new Date(t))}function bt(t){return G.UA.count(gt(t.getFullYear())-1,t)}function xt(t){return Y.YP.count(gt(t.getFullYear())-1,t)}function _t(t){return gt(t).getDay()}function wt(t,e,n,i,r,s,a){if(0<=t&&t<100){const o=new Date(-1,e,n,i,r,s,a);o.setFullYear(t);return o}return new Date(t,e,n,i,r,s,a)}function At(t){return Et(new Date(t))}function kt(t){return Mt(new Date(t))}function Et(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return G.dA.count(e-1,t)}function Mt(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return Y.Hl.count(e-1,t)}function Dt(t){mt.setTime(Date.UTC(t,0,1));return mt.getUTCDay()}function Ct(t,e,n,i,r,s,a){if(0<=t&&t<100){const t=new Date(Date.UTC(-1,e,n,i,r,s,a));t.setUTCFullYear(n.y);return t}return new Date(Date.UTC(t,e,n,i,r,s,a))}function Ft(t,e,n,i,r){const s=e||1,a=(0,p.se)(t),o=(t,e,r)=>{r=r||t;return St(n[r],i[r],t===a&&s,e)};const u=new Date,l=(0,p.M1)(t),c=l[J]?o(J):(0,p.dY)(2012),f=l[et]?o(et):l[tt]?o(tt):p.v_,d=l[nt]&&l[rt]?o(rt,1,nt+rt):l[nt]?o(nt,1):l[rt]?o(rt,1):l[it]?o(it,1):l[st]?o(st,1):p.xH,h=l[at]?o(at):p.v_,m=l[ot]?o(ot):p.v_,g=l[ut]?o(ut):p.v_,y=l[lt]?o(lt):p.v_;return function(t){u.setTime(+t);const e=c(u);return r(e,f(u),d(u,e),h(u),m(u),g(u),y(u))}}function St(t,e,n,i){const r=n<=1?t:i?(e,r)=>i+n*Math.floor((t(e,r)-i)/n):(e,i)=>n*Math.floor(t(e,i)/n);return e?(t,n)=>e(r(t,n),n):r}function Bt(t,e,n){return e+t*7-(n+6)%7}const zt={[J]:t=>t.getFullYear(),[tt]:t=>Math.floor(t.getMonth()/3),[et]:t=>t.getMonth(),[it]:t=>t.getDate(),[at]:t=>t.getHours(),[ot]:t=>t.getMinutes(),[ut]:t=>t.getSeconds(),[lt]:t=>t.getMilliseconds(),[st]:t=>bt(t),[nt]:t=>xt(t),[nt+rt]:(t,e)=>Bt(xt(t),t.getDay(),_t(e)),[rt]:(t,e)=>Bt(1,t.getDay(),_t(e))};const $t={[tt]:t=>3*t,[nt]:(t,e)=>Bt(t,0,_t(e))};function Rt(t,e){return Ft(t,e||1,zt,$t,wt)}const Ot={[J]:t=>t.getUTCFullYear(),[tt]:t=>Math.floor(t.getUTCMonth()/3),[et]:t=>t.getUTCMonth(),[it]:t=>t.getUTCDate(),[at]:t=>t.getUTCHours(),[ot]:t=>t.getUTCMinutes(),[ut]:t=>t.getUTCSeconds(),[lt]:t=>t.getUTCMilliseconds(),[st]:t=>Et(t),[nt]:t=>Mt(t),[rt]:(t,e)=>Bt(1,t.getUTCDay(),Dt(e)),[nt+rt]:(t,e)=>Bt(Mt(t),t.getUTCDay(),Dt(e))};const Tt={[tt]:t=>3*t,[nt]:(t,e)=>Bt(t,0,Dt(e))};function Nt(t,e){return Ft(t,e||1,Ot,Tt,Ct)}const Lt={[J]:W.he,[tt]:X.Ui.every(3),[et]:X.Ui,[nt]:Y.YP,[it]:G.UA,[rt]:G.UA,[st]:G.UA,[at]:H.Ag,[ot]:V.wX,[ut]:Q.R,[lt]:K.y};const Pt={[J]:W.Mb,[tt]:X.R6.every(3),[et]:X.R6,[nt]:Y.Hl,[it]:G.dA,[rt]:G.dA,[st]:G.dA,[at]:H.pz,[ot]:V.vD,[ut]:Q.R,[lt]:K.y};function qt(t){return Lt[t]}function It(t){return Pt[t]}function Ut(t,e,n){return t?t.offset(e,n):undefined}function jt(t,e,n){return Ut(qt(t),e,n)}function Gt(t,e,n){return Ut(It(t),e,n)}function Yt(t,e,n,i){return t?t.range(e,n,i):undefined}function Wt(t,e,n,i){return Yt(qt(t),e,n,i)}function Xt(t,e,n,i){return Yt(It(t),e,n,i)}const Ht=1e3,Vt=Ht*60,Qt=Vt*60,Kt=Qt*24,Zt=Kt*7,Jt=Kt*30,te=Kt*365;const ee=[J,et,it,at,ot,ut,lt],ne=ee.slice(0,-1),ie=ne.slice(0,-1),re=ie.slice(0,-1),se=re.slice(0,-1),ae=[J,nt],oe=[J,et],ue=[J];const le=[[ne,1,Ht],[ne,5,5*Ht],[ne,15,15*Ht],[ne,30,30*Ht],[ie,1,Vt],[ie,5,5*Vt],[ie,15,15*Vt],[ie,30,30*Vt],[re,1,Qt],[re,3,3*Qt],[re,6,6*Qt],[re,12,12*Qt],[se,1,Kt],[ae,1,Zt],[oe,1,Jt],[oe,3,3*Jt],[ue,1,te]];function ce(t){const e=t.extent,n=t.maxbins||40,i=Math.abs((0,p.Ln)(e))/n;let r=(0,Z.A)((t=>t[2])).right(le,i),s,a;if(r===le.length){s=ue,a=(0,N.sG)(e[0]/te,e[1]/te,n)}else if(r){r=le[i/le[r-1][2]e[n]||(e[n]=t(n))}function pe(t,e){return n=>{const i=t(n),r=i.indexOf(e);if(r<0)return i;let s=me(i,r);const a=sr)if(i[s]!=="0"){++s;break}return i.slice(0,s)+a}}function me(t,e){let n=t.lastIndexOf("e"),i;if(n>0)return n;for(n=t.length;--n>e;){i=t.charCodeAt(n);if(i>=48&&i<=57)return n+1}}function ge(t){const e=he(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(t){const n=(0,L.A)(t||",");if(n.precision==null){n.precision=12;switch(n.type){case"%":n.precision-=2;break;case"e":n.precision-=1;break}return pe(e(n),e(".1f")(1)[1])}else{return e(n)}},formatSpan(t,i,r,s){s=(0,L.A)(s==null?",f":s);const a=(0,N.sG)(t,i,r),o=Math.max(Math.abs(t),Math.abs(i));let u;if(s.precision==null){switch(s.type){case"s":{if(!isNaN(u=(0,P.A)(a,o))){s.precision=u}return n(s,o)}case"":case"e":case"g":case"p":case"r":{if(!isNaN(u=(0,q.A)(a,o))){s.precision=u-(s.type==="e")}break}case"f":case"%":{if(!isNaN(u=(0,I.A)(a))){s.precision=u-(s.type==="%")*2}break}}}return e(s)}}}let ye;ve();function ve(){return ye=ge({format:U.GP,formatPrefix:U.s})}function be(t){return ge((0,j.A)(t))}function xe(t){return arguments.length?ye=be(t):ye}function _e(t,e,n){n=n||{};if(!(0,p.Gv)(n)){(0,p.z3)(`Invalid time multi-format specifier: ${n}`)}const i=e(ut),r=e(ot),s=e(at),a=e(it),o=e(nt),u=e(et),l=e(tt),c=e(J),f=t(n[lt]||".%L"),d=t(n[ut]||":%S"),h=t(n[ot]||"%I:%M"),m=t(n[at]||"%I %p"),g=t(n[it]||n[rt]||"%a %d"),y=t(n[nt]||"%b %d"),v=t(n[et]||"%B"),b=t(n[tt]||"%B"),x=t(n[J]||"%Y");return t=>(i(t)(0,p.Kg)(t)?e(t):_e(e,qt,t),utcFormat:t=>(0,p.Kg)(t)?n(t):_e(n,It,t),timeParse:he(t.parse),utcParse:he(t.utcParse)}}let Ae;ke();function ke(){return Ae=we({format:fe.DC,parse:fe.T6,utcFormat:fe.aL,utcParse:fe.GY})}function Ee(t){return we((0,de.A)(t))}function Me(t){return arguments.length?Ae=Ee(t):Ae}const De=(t,e)=>(0,p.X$)({},t,e);function Ce(t,e){const n=t?be(t):xe();const i=e?Ee(e):Me();return De(n,i)}function Fe(t,e){const n=arguments.length;if(n&&n!==2){(0,p.z3)("defaultLocale expects either zero or two arguments.")}return n?De(xe(t),Me(e)):De(xe(),Me())}function Se(){ve();ke();return Fe()}const Be=/^(data:|([A-Za-z]+:)?\/\/)/;const ze=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i;const $e=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g;const Re="file://";function Oe(t,e){return n=>({options:n||{},sanitize:Ne,load:Te,fileAccess:false,file:Le(e),http:qe(t)})}async function Te(t,e){const n=await this.sanitize(t,e),i=n.href;return n.localFile?this.file(i):this.http(i,e)}async function Ne(t,e){e=(0,p.X$)({},this.options,e);const n=this.fileAccess,i={href:null};let r,s,a;const o=ze.test(t.replace($e,""));if(t==null||typeof t!=="string"||!o){(0,p.z3)("Sanitize failure, invalid URI: "+(0,p.r$)(t))}const u=Be.test(t);if((a=e.baseURL)&&!u){if(!t.startsWith("/")&&!a.endsWith("/")){t="/"+t}t=a+t}s=(r=t.startsWith(Re))||e.mode==="file"||e.mode!=="http"&&!u&&n;if(r){t=t.slice(Re.length)}else if(t.startsWith("//")){if(e.defaultProtocol==="file"){t=t.slice(2);s=true}else{t=(e.defaultProtocol||"http")+":"+t}}Object.defineProperty(i,"localFile",{value:!!s});i.href=t;if(e.target){i.target=e.target+""}if(e.rel){i.rel=e.rel+""}if(e.context==="image"&&e.crossOrigin){i.crossOrigin=e.crossOrigin+""}return i}function Le(t){return t?e=>new Promise(((n,i)=>{t.readFile(e,((t,e)=>{if(t)i(t);else n(e)}))})):Pe}async function Pe(){(0,p.z3)("No file system access.")}function qe(t){return t?async function(e,n){const i=(0,p.X$)({},this.options.http,n),r=n&&n.response,s=await t(e,i);return!s.ok?(0,p.z3)(s.status+""+s.statusText):(0,p.Tn)(s[r])?s[r]():s.text()}:Ie}async function Ie(){(0,p.z3)("No HTTP fetch method available.")}const Ue=t=>t!=null&&t===t;const je=t=>t==="true"||t==="false"||t===true||t===false;const Ge=t=>!Number.isNaN(Date.parse(t));const Ye=t=>!Number.isNaN(+t)&&!(t instanceof Date);const We=t=>Ye(t)&&Number.isInteger(+t);const Xe={boolean:p.G4,integer:p.Ro,number:p.Ro,date:p.ay,string:p.dI,unknown:p.D_};const He=[je,We,Ye,Ge];const Ve=["boolean","integer","number","date"];function Qe(t,e){if(!t||!t.length)return"unknown";const n=t.length,i=He.length,r=He.map(((t,e)=>e+1));for(let s=0,a=0,o,u;st===0?e:t),0)-1]}function Ke(t,e){return e.reduce(((e,n)=>{e[n]=Qe(t,n);return e}),{})}function Ze(t){const e=function(e,n){const i={delimiter:t};return Je(e,n?(0,p.X$)(n,i):i)};e.responseType="text";return e}function Je(t,e){if(e.header){t=e.header.map(p.r$).join(e.delimiter)+"\n"+t}return M(e.delimiter).parse(t+"")}Je.responseType="text";function tn(t){return typeof Buffer==="function"&&(0,p.Tn)(Buffer.isBuffer)?Buffer.isBuffer(t):false}function en(t,e){const n=e&&e.property?(0,p.ZZ)(e.property):p.D_;return(0,p.Gv)(t)&&!tn(t)?nn(n(t),e):n(JSON.parse(t))}en.responseType="json";function nn(t,e){if(!(0,p.cy)(t)&&(0,p.xZ)(t)){t=[...t]}return e&&e.copy?JSON.parse(JSON.stringify(t)):t}const rn={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function sn(t,e){let n,i,r,s;t=en(t,e);if(e&&e.feature){n=S;r=e.feature}else if(e&&e.mesh){n=R;r=e.mesh;s=rn[e.filter]}else{(0,p.z3)("Missing TopoJSON feature or mesh parameter.")}i=(i=t.objects[r])?n(t,i,s):(0,p.z3)("Invalid TopoJSON object: "+r);return i&&i.features||[i]}sn.responseType="json";const an={dsv:Je,csv:Ze(","),tsv:Ze("\t"),json:en,topojson:sn};function on(t,e){if(arguments.length>1){an[t]=e;return this}else{return(0,p.mQ)(an,t)?an[t]:null}}function un(t){const e=on(t);return e&&e.responseType||"text"}function ln(t,e,n,i){e=e||{};const r=on(e.type||"json");if(!r)(0,p.z3)("Unknown data format type: "+e.type);t=r(t,e);if(e.parse)cn(t,e.parse,n,i);if((0,p.mQ)(t,"columns"))delete t.columns;return t}function cn(t,e,n,i){if(!t.length)return;const r=Me();n=n||r.timeParse;i=i||r.utcParse;let s=t.columns||Object.keys(t[0]),a,o,u,l,c,f;if(e==="auto")e=Ke(t,s);s=Object.keys(e);const d=s.map((t=>{const r=e[t];let s,a;if(r&&(r.startsWith("date:")||r.startsWith("utc:"))){s=r.split(/:(.+)?/,2);a=s[1];if(a[0]==="'"&&a[a.length-1]==="'"||a[0]==='"'&&a[a.length-1]==='"'){a=a.slice(1,-1)}const t=s[0]==="utc"?i:n;return t(a)}if(!Xe[r]){throw Error("Illegal format pattern: "+t+":"+r)}return Xe[r]}));for(u=0,c=t.length,f=s.length;u{const r=e(t);if(!i[r]){i[r]=1;n.push(t)}return n};n.remove=t=>{const r=e(t);if(i[r]){i[r]=0;const e=n.indexOf(t);if(e>=0)n.splice(e,1)}return n};return n}async function hn(t,e){try{await e(t)}catch(n){t.error(n)}}const pn=Symbol("vega_id");let mn=1;function gn(t){return!!(t&&yn(t))}function yn(t){return t[pn]}function vn(t,e){t[pn]=e;return t}function bn(t){const e=t===Object(t)?t:{data:t};return yn(e)?e:vn(e,mn++)}function xn(t){return _n(t,bn({}))}function _n(t,e){for(const n in t)e[n]=t[n];return e}function wn(t,e){return vn(e,yn(t))}function An(t,e){return!t?null:e?(n,i)=>t(n,i)||yn(e(n))-yn(e(i)):(e,n)=>t(e,n)||yn(e)-yn(n)}function kn(t){return t&&t.constructor===En}function En(){const t=[],e=[],n=[],i=[],r=[];let s=null,a=false;return{constructor:En,insert(e){const n=(0,p.YO)(e),i=n.length;for(let r=0;r{if(p(t))l[yn(t)]=-1}))}for(f=0,d=t.length;f0){y(m,p,h.value);o.modifies(p)}}for(f=0,d=r.length;f{if(p(t)&&l[yn(t)]>0){y(t,h.field,h.value)}}));o.modifies(h.field)}if(a){o.mod=e.length||i.length?u.filter((t=>l[yn(t)]>0)):u.slice()}else{for(g in c)o.mod.push(c[g])}if(s||s==null&&(e.length||i.length)){o.clean(true)}return o}}}const Mn="_:mod:_";function Dn(){Object.defineProperty(this,Mn,{writable:true,value:{}})}Dn.prototype={set(t,e,n,i){const r=this,s=r[t],a=r[Mn];if(e!=null&&e>=0){if(s[e]!==n||i){s[e]=n;a[e+":"+t]=-1;a[t]=-1}}else if(s!==n||i){r[t]=n;a[t]=(0,p.cy)(n)?1+n.length:-1}return r},modified(t,e){const n=this[Mn];if(!arguments.length){for(const t in n){if(n[t])return true}return false}else if((0,p.cy)(t)){for(let e=0;e=0?e+1{if(a instanceof $n){if(a!==this){if(e)a.targets().add(this);s.push(a)}r.push({op:a,name:t,index:n})}else{i.set(t,n,a)}};for(a in t){o=t[a];if(a===Fn){(0,p.YO)(o).forEach((t=>{if(!(t instanceof $n)){(0,p.z3)("Pulse parameters must be operator instances.")}else if(t!==this){t.targets().add(this);s.push(t)}}));this.source=o}else if((0,p.cy)(o)){i.set(a,-1,Array(u=o.length));for(l=0;l{const n=Date.now();if(n-e>t){e=n;return 1}else{return 0}}))},debounce(t){const e=Pn();this.targets().add(Pn(null,null,(0,p.sg)(t,(t=>{const n=t.dataflow;e.receive(t);if(n&&n.run)n.run()}))));return e},between(t,e){let n=false;t.targets().add(Pn(null,null,(()=>n=true)));e.targets().add(Pn(null,null,(()=>n=false)));return this.filter((()=>n))},detach(){this._filter=p.vN;this._targets=null}};function qn(t,e,n,i){const r=this,s=Pn(n,i),a=function(t){t.dataflow=r;try{s.receive(t)}catch(e){r.error(e)}finally{r.run()}};let o;if(typeof t==="string"&&typeof document!=="undefined"){o=document.querySelectorAll(t)}else{o=(0,p.YO)(t)}const u=o.length;for(let l=0;le=t));n.requests=0;n.done=()=>{if(--n.requests===0){t._pending=null;e(t)}};return t._pending=n}const Wn={skip:true};function Xn(t,e,n,i,r){const s=t instanceof $n?Vn:Hn;s(this,t,e,n,i,r);return this}function Hn(t,e,n,i,r,s){const a=(0,p.X$)({},s,Wn);let o,u;if(!(0,p.Tn)(n))n=(0,p.dY)(n);if(i===undefined){o=e=>t.touch(n(e))}else if((0,p.Tn)(i)){u=new $n(null,i,r,false);o=e=>{u.evaluate(e);const i=n(e),r=u.value;kn(r)?t.pulse(i,r,s):t.update(i,r,a)}}else{o=e=>t.update(n(e),i,a)}e.apply(o)}function Vn(t,e,n,i,r,s){if(i===undefined){e.targets().add(n)}else{const a=s||{},o=new $n(null,Qn(n,i),r,false);o.modified(a.force);o.rank=e.rank;e.targets().add(o);if(n){o.skip(true);o.value=n.value;o.targets().add(n);t.connect(n,[o])}}}function Qn(t,e){e=(0,p.Tn)(e)?e:(0,p.dY)(e);return t?function(n,i){const r=e(n,i);if(!t.skip()){t.skip(r!==this.value).value=r}return r}:e}function Kn(t){t.rank=++this._rank}function Zn(t){const e=[t];let n,i,r;while(e.length){this.rank(n=e.pop());if(i=n._targets){for(r=i.length;--r>=0;){e.push(n=i[r]);if(n===t)(0,p.z3)("Cycle detected in dataflow graph.")}}}}const Jn={};const ti=1<<0,ei=1<<1,ni=1<<2,ii=ti|ei,ri=ti|ni,si=ti|ei|ni,ai=1<<3,oi=1<<4,ui=1<<5,li=1<<6;function ci(t,e,n){this.dataflow=t;this.stamp=e==null?-1:e;this.add=[];this.rem=[];this.mod=[];this.fields=null;this.encode=n||null}function fi(t,e){const n=[];(0,p.rt)(t,e,(t=>n.push(t)));return n}function di(t,e){const n={};t.visit(e,(t=>{n[yn(t)]=1}));return t=>n[yn(t)]?null:t}function hi(t,e){return t?(n,i)=>t(n,i)&&e(n,i):e}ci.prototype={StopPropagation:Jn,ADD:ti,REM:ei,MOD:ni,ADD_REM:ii,ADD_MOD:ri,ALL:si,REFLOW:ai,SOURCE:oi,NO_SOURCE:ui,NO_FIELDS:li,fork(t){return new ci(this.dataflow).init(this,t)},clone(){const t=this.fork(si);t.add=t.add.slice();t.rem=t.rem.slice();t.mod=t.mod.slice();if(t.source)t.source=t.source.slice();return t.materialize(si|oi)},addAll(){let t=this;const e=!t.source||t.add===t.rem||!t.rem.length&&t.source.length===t.add.length;if(e){return t}else{t=new ci(this.dataflow).init(this);t.add=t.source;t.rem=[];return t}},init(t,e){const n=this;n.stamp=t.stamp;n.encode=t.encode;if(t.fields&&!(e&li)){n.fields=t.fields}if(e&ti){n.addF=t.addF;n.add=t.add}else{n.addF=null;n.add=[]}if(e&ei){n.remF=t.remF;n.rem=t.rem}else{n.remF=null;n.rem=[]}if(e&ni){n.modF=t.modF;n.mod=t.mod}else{n.modF=null;n.mod=[]}if(e&ui){n.srcF=null;n.source=null}else{n.srcF=t.srcF;n.source=t.source;if(t.cleans)n.cleans=t.cleans}return n},runAfter(t){this.dataflow.runAfter(t)},changed(t){const e=t||si;return e&ti&&this.add.length||e&ei&&this.rem.length||e&ni&&this.mod.length},reflow(t){if(t)return this.fork(si).reflow();const e=this.add.length,n=this.source&&this.source.length;if(n&&n!==e){this.mod=this.source;if(e)this.filter(ni,di(this,ti))}return this},clean(t){if(arguments.length){this.cleans=!!t;return this}else{return this.cleans}},modifies(t){const e=this.fields||(this.fields={});if((0,p.cy)(t)){t.forEach((t=>e[t]=true))}else{e[t]=true}return this},modified(t,e){const n=this.fields;return!((e||this.mod.length)&&n)?false:!arguments.length?!!n:(0,p.cy)(t)?t.some((t=>n[t])):n[t]},filter(t,e){const n=this;if(t&ti)n.addF=hi(n.addF,e);if(t&ei)n.remF=hi(n.remF,e);if(t&ni)n.modF=hi(n.modF,e);if(t&oi)n.srcF=hi(n.srcF,e);return n},materialize(t){t=t||si;const e=this;if(t&ti&&e.addF){e.add=fi(e.add,e.addF);e.addF=null}if(t&ei&&e.remF){e.rem=fi(e.rem,e.remF);e.remF=null}if(t&ni&&e.modF){e.mod=fi(e.mod,e.modF);e.modF=null}if(t&oi&&e.srcF){e.source=e.source.filter(e.srcF);e.srcF=null}return e},visit(t,e){const n=this,i=e;if(t&oi){(0,p.rt)(n.source,n.srcF,i);return n}if(t&ti)(0,p.rt)(n.add,n.addF,i);if(t&ei)(0,p.rt)(n.rem,n.remF,i);if(t&ni)(0,p.rt)(n.mod,n.modF,i);const r=n.source;if(t&ai&&r){const t=n.add.length+n.mod.length;if(t===r.length);else if(t){(0,p.rt)(r,di(n,ri),i)}else{(0,p.rt)(r,n.srcF,i)}}return n}};function pi(t,e,n,i){const r=this;let s=0;this.dataflow=t;this.stamp=e;this.fields=null;this.encode=i||null;this.pulses=n;for(const a of n){if(a.stamp!==e)continue;if(a.fields){const t=r.fields||(r.fields={});for(const e in a.fields){t[e]=1}}if(a.changed(r.ADD))s|=r.ADD;if(a.changed(r.REM))s|=r.REM;if(a.changed(r.MOD))s|=r.MOD}this.changes=s}(0,p.B)(pi,ci,{fork(t){const e=new ci(this.dataflow).init(this,t&this.NO_FIELDS);if(t!==undefined){if(t&e.ADD)this.visit(e.ADD,(t=>e.add.push(t)));if(t&e.REM)this.visit(e.REM,(t=>e.rem.push(t)));if(t&e.MOD)this.visit(e.MOD,(t=>e.mod.push(t)))}return e},changed(t){return this.changes&t},modified(t){const e=this,n=e.fields;return!(n&&e.changes&e.MOD)?0:(0,p.cy)(t)?t.some((t=>n[t])):n[t]},filter(){(0,p.z3)("MultiPulse does not support filtering.")},materialize(){(0,p.z3)("MultiPulse does not support materialization.")},visit(t,e){const n=this,i=n.pulses,r=i.length;let s=0;if(t&n.SOURCE){for(;si._enqueue(t,true)));i._touched=dn(p.id);let a=0,o,u,l;try{while(i._heap.size()>0){o=i._heap.pop();if(o.rank!==o.qrank){i._enqueue(o,true);continue}u=o.run(i._getPulse(o,t));if(u.then){u=await u}else if(u.async){r.push(u.async);u=Jn}if(u!==Jn){if(o._targets)o._targets.forEach((t=>i._enqueue(t)))}++a}}catch(c){i._heap.clear();l=c}i._input={};i._pulse=null;i.debug(`Pulse ${s}: ${a} operators`);if(l){i._postrun=[];i.error(l)}if(i._postrun.length){const t=i._postrun.sort(((t,e)=>e.priority-t.priority));i._postrun=[];for(let e=0;ei.runAsync(null,(()=>{t.forEach((t=>{try{t(i)}catch(c){i.error(c)}}))}))))}return i}async function gi(t,e,n){while(this._running)await this._running;const i=()=>this._running=null;(this._running=this.evaluate(t,e,n)).then(i,i);return this._running}function yi(t,e,n){return this._pulse?bi(this):(this.evaluate(t,e,n),this)}function vi(t,e,n){if(this._pulse||e){this._postrun.push({priority:n||0,callback:t})}else{try{t(this)}catch(i){this.error(i)}}}function bi(t){t.error("Dataflow already running. Use runAsync() to chain invocations.");return t}function xi(t,e){const n=t.stampt.pulse)),e):this._input[t.id]||wi(this._pulse,n&&n.pulse)}function wi(t,e){if(e&&e.stamp===t.stamp){return e}t=t.fork();if(e&&e!==Jn){t.source=e.source}return t}const Ai={skip:false,force:false};function ki(t,e){const n=e||Ai;if(this._pulse){this._enqueue(t)}else{this._touched.add(t)}if(n.skip)t.skip(true);return this}function Ei(t,e,n){const i=n||Ai;if(t.set(e)||i.force){this.touch(t,i)}return this}function Mi(t,e,n){this.touch(t,n||Ai);const i=new ci(this,this._clock+(this._pulse?0:1)),r=t.pulse&&t.pulse.source||[];i.target=t;this._input[t.id]=e.pulse(i,r);return this}function Di(t){let e=[];return{clear:()=>e=[],size:()=>e.length,peek:()=>e[0],push:n=>{e.push(n);return Ci(e,0,e.length-1,t)},pop:()=>{const n=e.pop();let i;if(e.length){i=e[0];e[0]=n;Fi(e,0,t)}else{i=n}return i}}}function Ci(t,e,n,i){let r,s;const a=t[n];while(n>e){s=n-1>>1;r=t[s];if(i(a,r)<0){t[n]=r;n=s;continue}break}return t[n]=a}function Fi(t,e,n){const i=e,r=t.length,s=t[e];let a=(e<<1)+1,o;while(a=0){a=o}t[e]=t[a];e=a;a=(e<<1)+1}t[e]=s;return Ci(t,i,e,n)}function Si(){this.logger((0,p.vF)());this.logLevel(p.$D);this._clock=0;this._rank=0;this._locale=Fe();try{this._loader=fn()}catch(t){}this._touched=dn(p.id);this._input={};this._pulse=null;this._heap=Di(((t,e)=>t.qrank-e.qrank));this._postrun=[]}function Bi(t){return function(){return this._log[t].apply(this,arguments)}}Si.prototype={stamp(){return this._clock},loader(t){if(arguments.length){this._loader=t;return this}else{return this._loader}},locale(t){if(arguments.length){this._locale=t;return this}else{return this._locale}},logger(t){if(arguments.length){this._log=t;return this}else{return this._log}},error:Bi("error"),warn:Bi("warn"),info:Bi("info"),debug:Bi("debug"),logLevel:Bi("level"),cleanThreshold:1e4,add:On,connect:Tn,rank:Kn,rerank:Zn,pulse:Mi,touch:ki,update:Ei,changeset:En,ingest:Un,parse:In,preload:Gn,request:jn,events:qn,on:Xn,evaluate:mi,run:yi,runAsync:gi,runAfter:vi,_enqueue:xi,_getPulse:_i};function zi(t,e){$n.call(this,t,null,e)}(0,p.B)(zi,$n,{run(t){if(t.stampthis.pulse=t))}else if(e!==t.StopPropagation){this.pulse=e}return e},evaluate(t){const e=this.marshall(t.stamp),n=this.transform(e,t);e.clear();return n},transform(){}});const $i={};function Ri(t){const e=Oi(t);return e&&e.Definition||null}function Oi(t){t=t&&t.toLowerCase();return(0,p.mQ)($i,t)?$i[t]:null}var Ti=n(82887);var Ni=n(21671);var Li=n(44317);function Pi(t,...e){if(typeof t[Symbol.iterator]!=="function")throw new TypeError("values is not iterable");t=Array.from(t);let[n]=e;if(n&&n.length!==2||e.length>1){const i=Uint32Array.from(t,((t,e)=>e));if(e.length>1){e=e.map((e=>t.map(e)));i.sort(((t,n)=>{for(const i of e){const e=Ii(i[t],i[n]);if(e)return e}}))}else{n=t.map(n);i.sort(((t,e)=>Ii(n[t],n[e])))}return permute(t,i)}return t.sort(qi(n))}function qi(t=Ti.A){if(t===Ti.A)return Ii;if(typeof t!=="function")throw new TypeError("compare is not a function");return(e,n)=>{const i=t(e,n);if(i||i===0)return i;return(t(n,n)===0)-(t(e,e)===0)}}function Ii(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(te?1:0)}function Ui(t,e,n=0,i=Infinity,r){e=Math.floor(e);n=Math.floor(Math.max(0,n));i=Math.floor(Math.min(t.length-1,i));if(!(n<=e&&e<=i))return t;r=r===undefined?Ii:qi(r);while(i>n){if(i-n>600){const s=i-n+1;const a=e-n+1;const o=Math.log(s);const u=.5*Math.exp(2*o/3);const l=.5*Math.sqrt(o*u*(s-u)/s)*(a-s/2<0?-1:1);const c=Math.max(n,Math.floor(e-a*u/s+l));const f=Math.min(i,Math.floor(e+(s-a)*u/s+l));Ui(t,e,c,f,r)}const s=t[e];let a=n;let o=i;ji(t,n,e);if(r(t[i],s)>0)ji(t,n,i);while(a0)--o}if(r(t[n],s)===0)ji(t,n,o);else++o,ji(t,o,i);if(o<=e)n=o+1;if(e<=o)i=o-1}return t}function ji(t,e,n){const i=t[e];t[e]=t[n];t[n]=i}var Gi=n(40168);function Yi(t,e,n){t=Float64Array.from((0,Gi.n)(t,n));if(!(i=t.length)||isNaN(e=+e))return;if(e<=0||i<2)return(0,Li.A)(t);if(e>=1)return(0,Ni.A)(t);var i,r=(i-1)*e,s=Math.floor(r),a=(0,Ni.A)(Ui(t,s).subarray(0,s+1)),o=(0,Li.A)(t.subarray(s+1));return a+(o-a)*(r-s)}function Wi(t,e,n=Gi.A){if(!(i=t.length)||isNaN(e=+e))return;if(e<=0||i<2)return+n(t[0],0,t);if(e>=1)return+n(t[i-1],i-1,t);var i,r=(i-1)*e,s=Math.floor(r),a=+n(t[s],s,t),o=+n(t[s+1],s+1,t);return a+(o-a)*(r-s)}function Xi(t,e,n=number){if(isNaN(e=+e))return;i=Float64Array.from(t,((e,i)=>number(n(t[i],i,t))));if(e<=0)return minIndex(i);if(e>=1)return maxIndex(i);var i,r=Uint32Array.from(t,((t,e)=>e)),s=i.length-1,a=Math.floor(s*e);quickselect(r,a,0,s,((t,e)=>ascendingDefined(i[t],i[e])));a=greatest(r.subarray(0,a+1),(t=>i[t]));return a>=0?a:-1}function Hi(t,e){let n=0;let i;let r=0;let s=0;if(e===undefined){for(let e of t){if(e!=null&&(e=+e)>=e){i=e-r;r+=i/++n;s+=i*(e-r)}}}else{let a=-1;for(let o of t){if((o=e(o,++a,t))!=null&&(o=+o)>=o){i=o-r;r+=i/++n;s+=i*(o-r)}}}if(n>1)return s/(n-1)}function Vi(t,e){const n=Hi(t,e);return n?Math.sqrt(n):n}function Qi(t,e){return Yi(t,.5,e)}function Ki(t,e){return quantileIndex(t,.5,e)}function*Zi(t,e){if(e==null){for(let e of t){if(e!=null&&e!==""&&(e=+e)>=e){yield e}}}else{let n=-1;for(let i of t){i=e(i,++n,t);if(i!=null&&i!==""&&(i=+i)>=i){yield i}}}}function Ji(t,e,n){const i=Float64Array.from(Zi(t,n));i.sort(Ti.A);return e.map((t=>Wi(i,t)))}function tr(t,e){return Ji(t,[.25,.5,.75],e)}function er(t,e){const n=t.length,i=Vi(t,e),r=tr(t,e),s=(r[2]-r[0])/1.34,a=Math.min(i,s)||i||Math.abs(r[0])||1;return 1.06*a*Math.pow(n,-.2)}function nr(t){const e=t.maxbins||20,n=t.base||10,i=Math.log(n),r=t.divide||[5,2];let s=t.extent[0],a=t.extent[1],o,u,l,c,f,d;const h=t.span||a-s||Math.abs(s)||1;if(t.step){o=t.step}else if(t.steps){c=h/e;for(f=0,d=t.steps.length;fe){o*=n}for(f=0,d=r.length;f=l&&h/c<=e)o=c}}c=Math.log(o);const p=c>=0?0:~~(-c/i)+1,m=Math.pow(n,-p-1);if(t.nice||t.nice===undefined){c=Math.floor(s/o+m)*o;s=st);const r=t.length,s=new Float64Array(r);let a=0,o=1,u=i(t[0]),l=u,c=u+e,f;for(;o=c){l=(u+l)/2;for(;a>1);while(ar)t[a--]=t[i]}i=r;r=s}return t}function ur(t){return function(){t=(1103515245*t+12345)%2147483647;return t/2147483647}}function lr(t,e){if(e==null){e=t;t=0}let n,i,r;const s={min(t){if(arguments.length){n=t||0;r=i-n;return s}else{return n}},max(t){if(arguments.length){i=t||0;r=i-n;return s}else{return i}},sample(){return n+Math.floor(r*ir())},pdf(t){return t===Math.floor(t)&&t>=n&&t=i?1:(e-n+1)/r},icdf(t){return t>=0&&t<=1?n-1+Math.floor(t*r):NaN}};return s.min(t).max(e)}const cr=Math.sqrt(2*Math.PI);const fr=Math.SQRT2;let dr=NaN;function hr(t,e){t=t||0;e=e==null?1:e;let n=0,i=0,r,s;if(dr===dr){n=dr;dr=NaN}else{do{n=ir()*2-1;i=ir()*2-1;r=n*n+i*i}while(r===0||r>1);s=Math.sqrt(-2*Math.log(r)/r);n*=s;dr=i*s}return t+n*e}function pr(t,e,n){n=n==null?1:n;const i=(t-(e||0))/n;return Math.exp(-.5*i*i)/(n*cr)}function mr(t,e,n){e=e||0;n=n==null?1:n;const i=(t-e)/n,r=Math.abs(i);let s;if(r>37){s=0}else{const t=Math.exp(-r*r/2);let e;if(r<7.07106781186547){e=.0352624965998911*r+.700383064443688;e=e*r+6.37396220353165;e=e*r+33.912866078383;e=e*r+112.079291497871;e=e*r+221.213596169931;e=e*r+220.206867912376;s=t*e;e=.0883883476483184*r+1.75566716318264;e=e*r+16.064177579207;e=e*r+86.7807322029461;e=e*r+296.564248779674;e=e*r+637.333633378831;e=e*r+793.826512519948;e=e*r+440.413735824752;s=s/e}else{e=r+.65;e=r+4/e;e=r+3/e;e=r+2/e;e=r+1/e;s=t/e/2.506628274631}}return i>0?1-s:s}function gr(t,e,n){if(t<0||t>1)return NaN;return(e||0)+(n==null?1:n)*fr*yr(2*t-1)}function yr(t){let e=-Math.log((1-t)*(1+t)),n;if(e<6.25){e-=3.125;n=-364441206401782e-35;n=-16850591381820166e-35+n*e;n=128584807152564e-32+n*e;n=11157877678025181e-33+n*e;n=-1333171662854621e-31+n*e;n=20972767875968562e-33+n*e;n=6637638134358324e-30+n*e;n=-4054566272975207e-29+n*e;n=-8151934197605472e-29+n*e;n=26335093153082323e-28+n*e;n=-12975133253453532e-27+n*e;n=-5415412054294628e-26+n*e;n=1.0512122733215323e-9+n*e;n=-4.112633980346984e-9+n*e;n=-2.9070369957882005e-8+n*e;n=4.2347877827932404e-7+n*e;n=-13654692000834679e-22+n*e;n=-13882523362786469e-21+n*e;n=.00018673420803405714+n*e;n=-.000740702534166267+n*e;n=-.006033670871430149+n*e;n=.24015818242558962+n*e;n=1.6536545626831027+n*e}else if(e<16){e=Math.sqrt(e)-3.25;n=2.2137376921775787e-9;n=9.075656193888539e-8+n*e;n=-2.7517406297064545e-7+n*e;n=1.8239629214389228e-8+n*e;n=15027403968909828e-22+n*e;n=-4013867526981546e-21+n*e;n=29234449089955446e-22+n*e;n=12475304481671779e-21+n*e;n=-47318229009055734e-21+n*e;n=6828485145957318e-20+n*e;n=24031110387097894e-21+n*e;n=-.0003550375203628475+n*e;n=.0009532893797373805+n*e;n=-.0016882755560235047+n*e;n=.002491442096107851+n*e;n=-.003751208507569241+n*e;n=.005370914553590064+n*e;n=1.0052589676941592+n*e;n=3.0838856104922208+n*e}else if(Number.isFinite(e)){e=Math.sqrt(e)-5;n=-27109920616438573e-27;n=-2.555641816996525e-10+n*e;n=1.5076572693500548e-9+n*e;n=-3.789465440126737e-9+n*e;n=7.61570120807834e-9+n*e;n=-1.496002662714924e-8+n*e;n=2.914795345090108e-8+n*e;n=-6.771199775845234e-8+n*e;n=2.2900482228026655e-7+n*e;n=-9.9298272942317e-7+n*e;n=4526062597223154e-21+n*e;n=-1968177810553167e-20+n*e;n=7599527703001776e-20+n*e;n=-.00021503011930044477+n*e;n=-.00013871931833623122+n*e;n=1.0103004648645344+n*e;n=4.849906401408584+n*e}else{n=Infinity}return n*t}function vr(t,e){let n,i;const r={mean(t){if(arguments.length){n=t||0;return r}else{return n}},stdev(t){if(arguments.length){i=t==null?1:t;return r}else{return i}},sample:()=>hr(n,i),pdf:t=>pr(t,n,i),cdf:t=>mr(t,n,i),icdf:t=>gr(t,n,i)};return r.mean(t).stdev(e)}function br(t,e){const n=vr();let i=0;const r={data(n){if(arguments.length){t=n;i=n?n.length:0;return r.bandwidth(e)}else{return t}},bandwidth(n){if(!arguments.length)return e;e=n;if(!e&&t)e=er(t);return r},sample(){return t[~~(ir()*i)]+e*n.sample()},pdf(r){let s=0,a=0;for(;axr(n,i),pdf:t=>_r(t,n,i),cdf:t=>wr(t,n,i),icdf:t=>Ar(t,n,i)};return r.mean(t).stdev(e)}function Er(t,e){let n=0,i;function r(t){const e=[];let i=0,r;for(r=0;r=e&&t<=n?1/(n-e):0}function Cr(t,e,n){if(n==null){n=e==null?1:e;e=0}return tn?1:(t-e)/(n-e)}function Fr(t,e,n){if(n==null){n=e==null?1:e;e=0}return t>=0&&t<=1?e+t*(n-e):NaN}function Sr(t,e){let n,i;const r={min(t){if(arguments.length){n=t||0;return r}else{return n}},max(t){if(arguments.length){i=t==null?1:t;return r}else{return i}},sample:()=>Mr(n,i),pdf:t=>Dr(t,n,i),cdf:t=>Cr(t,n,i),icdf:t=>Fr(t,n,i)};if(e==null){e=t==null?1:t;t=0}return r.min(t).max(e)}function Br(t,e,n){let i=0,r=0;for(const s of t){const t=n(s);if(e(s)==null||t==null||isNaN(t))continue;i+=(t-i)/++r}return{coef:[i],predict:()=>i,rSquared:0}}function zr(t,e,n,i){const r=i-t*t,s=Math.abs(r)<1e-24?0:(n-t*e)/r,a=e-s*t;return[a,s]}function $r(t,e,n,i){t=t.filter((t=>{let i=e(t),r=n(t);return i!=null&&(i=+i)>=i&&r!=null&&(r=+r)>=r}));if(i){t.sort(((t,n)=>e(t)-e(n)))}const r=t.length,s=new Float64Array(r),a=new Float64Array(r);let o=0,u=0,l=0,c,f,d;for(d of t){s[o]=c=+e(d);a[o]=f=+n(d);++o;u+=(c-u)/o;l+=(f-l)/o}for(o=0;o=s&&a!=null&&(a=+a)>=a){i(s,a,++r)}}}function Or(t,e,n,i,r){let s=0,a=0;Rr(t,e,n,((t,e)=>{const n=e-r(t),o=e-i;s+=n*n;a+=o*o}));return 1-s/a}function Tr(t,e,n){let i=0,r=0,s=0,a=0,o=0;Rr(t,e,n,((t,e)=>{++o;i+=(t-i)/o;r+=(e-r)/o;s+=(t*e-s)/o;a+=(t*t-a)/o}));const u=zr(i,r,s,a),l=t=>u[0]+u[1]*t;return{coef:u,predict:l,rSquared:Or(t,e,n,r,l)}}function Nr(t,e,n){let i=0,r=0,s=0,a=0,o=0;Rr(t,e,n,((t,e)=>{++o;t=Math.log(t);i+=(t-i)/o;r+=(e-r)/o;s+=(t*e-s)/o;a+=(t*t-a)/o}));const u=zr(i,r,s,a),l=t=>u[0]+u[1]*Math.log(t);return{coef:u,predict:l,rSquared:Or(t,e,n,r,l)}}function Lr(t,e,n){const[i,r,s,a]=$r(t,e,n);let o=0,u=0,l=0,c=0,f=0,d,h,p;Rr(t,e,n,((t,e)=>{d=i[f++];h=Math.log(e);p=d*e;o+=(e*h-o)/f;u+=(p-u)/f;l+=(p*h-l)/f;c+=(d*p-c)/f}));const[m,g]=zr(u/a,o/a,l/a,c/a),y=t=>Math.exp(m+g*(t-s));return{coef:[Math.exp(m-g*s),g],predict:y,rSquared:Or(t,e,n,a,y)}}function Pr(t,e,n){let i=0,r=0,s=0,a=0,o=0,u=0;Rr(t,e,n,((t,e)=>{const n=Math.log(t),l=Math.log(e);++u;i+=(n-i)/u;r+=(l-r)/u;s+=(n*l-s)/u;a+=(n*n-a)/u;o+=(e-o)/u}));const l=zr(i,r,s,a),c=t=>l[0]*Math.pow(t,l[1]);l[0]=Math.exp(l[0]);return{coef:l,predict:c,rSquared:Or(t,e,n,o,c)}}function qr(t,e,n){const[i,r,s,a]=$r(t,e,n),o=i.length;let u=0,l=0,c=0,f=0,d=0,h,p,m,g;for(h=0;h{t=t-s;return b*t*t+x*t+_+a};return{coef:[_-x*s+b*s*s+a,x-2*b*s,b],predict:w,rSquared:Or(t,e,n,a,w)}}function Ir(t,e,n,i){if(i===0)return Br(t,e,n);if(i===1)return Tr(t,e,n);if(i===2)return qr(t,e,n);const[r,s,a,o]=$r(t,e,n),u=r.length,l=[],c=[],f=i+1;let d,h,p,m,g;for(d=0;d{t-=a;let e=o+y[0]+y[1]*t+y[2]*t*t;for(d=3;d=0;--s){o=e[s];u=1;r[s]+=o;for(a=1;a<=s;++a){u*=(s+1-a)/a;r[s-a]+=o*Math.pow(n,a)*u}}r[0]+=i;return r}function jr(t){const e=t.length-1,n=[];let i,r,s,a,o;for(i=0;iMath.abs(t[i][a])){a=r}}for(s=i;s=i;s--){t[s][r]-=t[s][i]*t[i][r]/t[i][i]}}}for(r=e-1;r>=0;--r){o=0;for(s=r+1;sr[a]-e?i:a;let u=0,l=0,h=0,p=0,m=0;const g=1/Math.abs(r[o]-e||1);for(let t=i;t<=a;++t){const n=r[t],i=s[t],a=Xr(Math.abs(e-n)*g)*d[t],o=n*a;u+=a;l+=o;h+=i*a;p+=i*o;m+=n*o}const[y,v]=zr(l/u,h/u,p/u,m/u);c[n]=y+v*e;f[n]=Math.abs(s[n]-c[n]);Hr(r,n+1,t)}if(h===Gr){break}const e=Qi(f);if(Math.abs(e)=1?Yr:(r=1-i*i)*r}}return Vr(r,c,a,o)}function Xr(t){return(t=1-t*t*t)*t*t}function Hr(t,e,n){const i=t[e];let r=n[0],s=n[1]+1;if(s>=t.length)return;while(e>r&&t[s]-i<=i-t[r]){n[0]=++r;n[1]=s;++s}}function Vr(t,e,n,i){const r=t.length,s=[];let a=0,o=0,u=[],l;for(;a[e,t(e)],s=e[0],a=e[1],o=a-s,u=o/i,l=[r(s)],c=[];if(n===i){for(let t=1;t0;){c.push(r(s+t/n*o))}}let f=l[0];let d=c[c.length-1];const h=1/o;const p=Zr(f[1],c);while(d){const t=r((f[0]+d[0])/2);const e=t[0]-f[0]>=u;if(e&&Jr(f,t,d,h,p)>Qr){c.push(t)}else{f=d;l.push(d);c.pop()}d=c[c.length-1]}return l}function Zr(t,e){let n=t;let i=t;const r=e.length;for(let s=0;si)i=t}return 1/(i-n)}function Jr(t,e,n,i,r){const s=Math.atan2(r*(n[1]-t[1]),i*(n[0]-t[0])),a=Math.atan2(r*(e[1]-t[1]),i*(e[0]-t[0]));return Math.abs(s-a)}function ts(t,e){let n=0;let i=0;if(e===undefined){for(let e of t){if(e!=null&&(e=+e)>=e){++n,i+=e}}}else{let r=-1;for(let s of t){if((s=e(s,++r,t))!=null&&(s=+s)>=s){++n,i+=s}}}if(n)return i/n}var es=n(18312);function ns(t){return e=>{const n=t.length;let i=1,r=String(t[0](e));for(;i{};const as={init:ss,add:ss,rem:ss,idx:0};const os={values:{init:t=>t.cell.store=true,value:t=>t.cell.data.values(),idx:-1},count:{value:t=>t.cell.num},__count__:{value:t=>t.missing+t.valid},missing:{value:t=>t.missing},valid:{value:t=>t.valid},sum:{init:t=>t.sum=0,value:t=>t.valid?t.sum:undefined,add:(t,e)=>t.sum+=+e,rem:(t,e)=>t.sum-=e},product:{init:t=>t.product=1,value:t=>t.valid?t.product:undefined,add:(t,e)=>t.product*=e,rem:(t,e)=>t.product/=e},mean:{init:t=>t.mean=0,value:t=>t.valid?t.mean:undefined,add:(t,e)=>(t.mean_d=e-t.mean,t.mean+=t.mean_d/t.valid),rem:(t,e)=>(t.mean_d=e-t.mean,t.mean-=t.valid?t.mean_d/t.valid:t.mean)},average:{value:t=>t.valid?t.mean:undefined,req:["mean"],idx:1},variance:{init:t=>t.dev=0,value:t=>t.valid>1?t.dev/(t.valid-1):undefined,add:(t,e)=>t.dev+=t.mean_d*(e-t.mean),rem:(t,e)=>t.dev-=t.mean_d*(e-t.mean),req:["mean"],idx:1},variancep:{value:t=>t.valid>1?t.dev/t.valid:undefined,req:["variance"],idx:2},stdev:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid-1)):undefined,req:["variance"],idx:2},stdevp:{value:t=>t.valid>1?Math.sqrt(t.dev/t.valid):undefined,req:["variance"],idx:2},stderr:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid*(t.valid-1))):undefined,req:["variance"],idx:2},distinct:{value:t=>t.cell.data.distinct(t.get),req:["values"],idx:3},ci0:{value:t=>t.cell.data.ci0(t.get),req:["values"],idx:3},ci1:{value:t=>t.cell.data.ci1(t.get),req:["values"],idx:3},median:{value:t=>t.cell.data.q2(t.get),req:["values"],idx:3},q1:{value:t=>t.cell.data.q1(t.get),req:["values"],idx:3},q3:{value:t=>t.cell.data.q3(t.get),req:["values"],idx:3},min:{init:t=>t.min=undefined,value:t=>t.min=Number.isNaN(t.min)?t.cell.data.min(t.get):t.min,add:(t,e)=>{if(e{if(e<=t.min)t.min=NaN},req:["values"],idx:4},max:{init:t=>t.max=undefined,value:t=>t.max=Number.isNaN(t.max)?t.cell.data.max(t.get):t.max,add:(t,e)=>{if(e>t.max||t.max===undefined)t.max=e},rem:(t,e)=>{if(e>=t.max)t.max=NaN},req:["values"],idx:4},argmin:{init:t=>t.argmin=undefined,value:t=>t.argmin||t.cell.data.argmin(t.get),add:(t,e,n)=>{if(e{if(e<=t.min)t.argmin=undefined},req:["min","values"],idx:3},argmax:{init:t=>t.argmax=undefined,value:t=>t.argmax||t.cell.data.argmax(t.get),add:(t,e,n)=>{if(e>t.max)t.argmax=n},rem:(t,e)=>{if(e>=t.max)t.argmax=undefined},req:["max","values"],idx:3},exponential:{init:(t,e)=>{t.exp=0;t.exp_r=e},value:t=>t.valid?t.exp*(1-t.exp_r)/(1-t.exp_r**t.valid):undefined,add:(t,e)=>t.exp=t.exp_r*t.exp+e,rem:(t,e)=>t.exp=(t.exp-e/t.exp_r**(t.valid-1))/t.exp_r},exponentialb:{value:t=>t.valid?t.exp*(1-t.exp_r):undefined,req:["exponential"],idx:1}};const us=Object.keys(os).filter((t=>t!=="__count__"));function ls(t,e){return(n,i)=>(0,p.X$)({name:t,aggregate_param:i,out:n||t},as,e)}[...us,"__count__"].forEach((t=>{os[t]=ls(t,os[t])}));function cs(t,e,n){return os[t](n,e)}function fs(t,e){return t.idx-e.idx}function ds(t){const e={};t.forEach((t=>e[t.name]=t));const n=t=>{if(!t.req)return;t.req.forEach((t=>{if(!e[t])n(e[t]=os[t]())}))};t.forEach(n);return Object.values(e).sort(fs)}function hs(){this.valid=0;this.missing=0;this._ops.forEach((t=>t.aggregate_param==null?t.init(this):t.init(this,t.aggregate_param)))}function ps(t,e){if(t==null||t===""){++this.missing;return}if(t!==t)return;++this.valid;this._ops.forEach((n=>n.add(this,t,e)))}function ms(t,e){if(t==null||t===""){--this.missing;return}if(t!==t)return;--this.valid;this._ops.forEach((n=>n.rem(this,t,e)))}function gs(t){this._out.forEach((e=>t[e.out]=e.value(this)));return t}function ys(t,e){const n=e||p.D_,i=ds(t),r=t.slice().sort(fs);function s(t){this._ops=i;this._out=r;this.cell=t;this.init()}s.prototype.init=hs;s.prototype.add=ps;s.prototype.rem=ms;s.prototype.set=gs;s.prototype.get=n;s.fields=t.map((t=>t.out));return s}function vs(t){this._key=t?(0,p.ZZ)(t):yn;this.reset()}const bs=vs.prototype;bs.reset=function(){this._add=[];this._rem=[];this._ext=null;this._get=null;this._q=null};bs.add=function(t){this._add.push(t)};bs.rem=function(t){this._rem.push(t)};bs.values=function(){this._get=null;if(this._rem.length===0)return this._add;const t=this._add,e=this._rem,n=this._key,i=t.length,r=e.length,s=Array(i-r),a={};let o,u,l;for(o=0;o=0){s=t(e[i])+"";if(!(0,p.mQ)(n,s)){n[s]=1;++r}}return r};bs.extent=function(t){if(this._get!==t||!this._ext){const e=this.values(),n=(0,p.n)(e,t);this._ext=[e[n[0]],e[n[1]]];this._get=t}return this._ext};bs.argmin=function(t){return this.extent(t)[0]||{}};bs.argmax=function(t){return this.extent(t)[1]||{}};bs.min=function(t){const e=this.extent(t)[0];return e!=null?t(e):undefined};bs.max=function(t){const e=this.extent(t)[1];return e!=null?t(e):undefined};bs.quartile=function(t){if(this._get!==t||!this._q){this._q=tr(this.values(),t);this._get=t}return this._q};bs.q1=function(t){return this.quartile(t)[0]};bs.q2=function(t){return this.quartile(t)[1]};bs.q3=function(t){return this.quartile(t)[2]};bs.ci=function(t){if(this._get!==t||!this._ci){this._ci=sr(this.values(),1e3,.05,t);this._get=t}return this._ci};bs.ci0=function(t){return this.ci(t)[0]};bs.ci1=function(t){return this.ci(t)[1]};function xs(t){zi.call(this,null,t);this._adds=[];this._mods=[];this._alen=0;this._mlen=0;this._drop=true;this._cross=false;this._dims=[];this._dnames=[];this._measures=[];this._countOnly=false;this._counts=null;this._prev=null;this._inputs=null;this._outputs=null}xs.Definition={type:"Aggregate",metadata:{generates:true,changes:true},params:[{name:"groupby",type:"field",array:true},{name:"ops",type:"enum",array:true,values:us},{name:"aggregate_params",type:"number",null:true,array:true},{name:"fields",type:"field",null:true,array:true},{name:"as",type:"string",null:true,array:true},{name:"drop",type:"boolean",default:true},{name:"cross",type:"boolean",default:false},{name:"key",type:"field"}]};(0,p.B)(xs,zi,{transform(t,e){const n=this,i=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=t.modified();n.stamp=i.stamp;if(n.value&&(r||e.modified(n._inputs,true))){n._prev=n.value;n.value=r?n.init(t):Object.create(null);e.visit(e.SOURCE,(t=>n.add(t)))}else{n.value=n.value||n.init(t);e.visit(e.REM,(t=>n.rem(t)));e.visit(e.ADD,(t=>n.add(t)))}i.modifies(n._outputs);n._drop=t.drop!==false;if(t.cross&&n._dims.length>1){n._drop=false;n.cross()}if(e.clean()&&n._drop){i.clean(true).runAfter((()=>this.clean()))}return n.changes(i)},cross(){const t=this,e=t.value,n=t._dnames,i=n.map((()=>({}))),r=n.length;function s(t){let e,s,a,o;for(e in t){a=t[e].tuple;for(s=0;s{const e=(0,p.N6)(t);r(t);n.push(e);return e}));this.cellkey=t.key?t.key:is(this._dims);this._countOnly=true;this._counts=[];this._measures=[];const s=t.fields||[null],a=t.ops||["count"],o=t.aggregate_params||[null],u=t.as||[],l=s.length,c={};let f,d,h,m,g,y,v;if(l!==a.length){(0,p.z3)("Unmatched number of fields and aggregate ops.")}for(v=0;vys(t,t.field)));return Object.create(null)},cellkey:is(),cell(t,e){let n=this.value[t];if(!n){n=this.value[t]=this.newcell(t,e);this._adds[this._alen++]=n}else if(n.num===0&&this._drop&&n.stamp{const e=i(t);t[o]=e;t[u]=e==null?null:r+s*(1+(e-r)/s)}:t=>t[o]=i(t));return e.modifies(n?a:o)},_bins(t){if(this.value&&!t.modified()){return this.value}const e=t.field,n=nr(t),i=n.step;let r=n.start,s=r+Math.ceil((n.stop-r)/i)*i,a,o;if((a=t.anchor)!=null){o=a-(r+i*Math.floor((a-r)/i));r+=o;s+=o}const u=function(t){let n=(0,p.Ro)(e(t));return n==null?null:ns?+Infinity:(n=Math.max(r,Math.min(n,s-i)),r+i*Math.floor(_s+(n-r)/i))};u.start=r;u.stop=n.stop;u.step=i;return this.value=(0,p.sY)(u,(0,p.nS)(e),t.name||"bin_"+(0,p.N6)(e))}});function As(t,e,n){const i=t;let r=e||[],s=n||[],a={},o=0;return{add:t=>s.push(t),remove:t=>a[i(t)]=++o,size:()=>r.length,data:(t,e)=>{if(o){r=r.filter((t=>!a[i(t)]));a={};o=0}if(e&&t){r.sort(t)}if(s.length){r=t?(0,p.h1)(t,r,s.sort(t)):r.concat(s);s=[]}return r}}}function ks(t){zi.call(this,[],t)}ks.Definition={type:"Collect",metadata:{source:true},params:[{name:"sort",type:"compare"}]};(0,p.B)(ks,zi,{transform(t,e){const n=e.fork(e.ALL),i=As(yn,this.value,n.materialize(n.ADD).add),r=t.sort,s=e.changed()||r&&(t.modified("sort")||e.modified(r.fields));n.visit(n.REM,i.remove);this.modified(s);this.value=n.source=i.data(An(r),s);if(e.source&&e.source.root){this.value.root=e.source.root}return n}});function Es(t){$n.call(this,null,Ms,t)}(0,p.B)(Es,$n);function Ms(t){return this.value&&!t.modified()?this.value:(0,p.UD)(t.fields,t.orders)}function Ds(t){zi.call(this,null,t)}Ds.Definition={type:"CountPattern",metadata:{generates:true,changes:true},params:[{name:"field",type:"field",required:true},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:true,length:2,default:["text","count"]}]};function Cs(t,e,n){switch(e){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase();break}return t.match(n)}(0,p.B)(Ds,zi,{transform(t,e){const n=e=>n=>{var i=Cs(o(n),t.case,s)||[],r;for(var u=0,l=i.length;ur[t]=1+(r[t]||0))),c=n((t=>r[t]-=1));if(i){e.visit(e.SOURCE,l)}else{e.visit(e.ADD,l);e.visit(e.REM,c)}return this._finish(e,u)},_parameterCheck(t,e){let n=false;if(t.modified("stopwords")||!this._stop){this._stop=new RegExp("^"+(t.stopwords||"")+"$","i");n=true}if(t.modified("pattern")||!this._match){this._match=new RegExp(t.pattern||"[\\w']+","g");n=true}if(t.modified("field")||e.modified(t.field.fields)){n=true}if(n)this._counts={};return n},_finish(t,e){const n=this._counts,i=this._tuples||(this._tuples={}),r=e[0],s=e[1],a=t.fork(t.NO_SOURCE|t.NO_FIELDS);let o,u,l;for(o in n){u=i[o];l=n[o]||0;if(!u&&l){i[o]=u=bn({});u[r]=o;u[s]=l;a.add.push(u)}else if(l===0){if(u)a.rem.push(u);n[o]=null;i[o]=null}else if(u[s]!==l){u[s]=l;a.mod.push(u)}}return a.modifies(e)}});function Fs(t){zi.call(this,null,t)}Fs.Definition={type:"Cross",metadata:{generates:true},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:true,length:2,default:["a","b"]}]};(0,p.B)(Fs,zi,{transform(t,e){const n=e.fork(e.NO_SOURCE),i=t.as||["a","b"],r=i[0],s=i[1],a=!this.value||e.changed(e.ADD_REM)||t.modified("as")||t.modified("filter");let o=this.value;if(a){if(o)n.rem=o;o=e.materialize(e.SOURCE).source;n.add=this.value=Ss(o,r,s,t.filter||p.vN)}else{n.mod=o}n.source=this.value;return n.modifies(i)}});function Ss(t,e,n,i){var r=[],s={},a=t.length,o=0,u,l;for(;oOs(t,e))))}else if(typeof i[r]===$s){i[r](t[r])}}return i}function Ts(t){zi.call(this,null,t)}const Ns=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:true},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}];const Ls={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:true,params:Ns},{name:"weights",type:"number",array:true}]};Ts.Definition={type:"Density",metadata:{generates:true},params:[{name:"extent",type:"number",array:true,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:Ns.concat(Ls)},{name:"as",type:"string",array:true,default:["value","density"]}]};(0,p.B)(Ts,zi,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const i=Os(t.distribution,Ps(e)),r=t.steps||t.minsteps||25,s=t.steps||t.maxsteps||200;let a=t.method||"pdf";if(a!=="pdf"&&a!=="cdf"){(0,p.z3)("Invalid density method: "+a)}if(!t.extent&&!i.data){(0,p.z3)("Missing density extent parameter.")}a=i[a];const o=t.as||["value","density"],u=t.extent||(0,p.Xx)(i.data()),l=Kr(a,u,r,s).map((t=>{const e={};e[o[0]]=t[0];e[o[1]]=t[1];return bn(e)}));if(this.value)n.rem=this.value;this.value=n.add=n.source=l}return n}});function Ps(t){return()=>t.materialize(t.SOURCE).source}function qs(t,e){if(!t)return null;return t.map(((t,n)=>e[n]||(0,p.N6)(t)))}function Is(t,e,n){const i=[],r=t=>t(u);let s,a,o,u,l,c;if(e==null){i.push(t.map(n))}else{for(s={},a=0,o=t.length;a(0,p.Ln)((0,p.Xx)(t,e))/30;(0,p.B)(js,zi,{transform(t,e){if(this.value&&!(t.modified()||e.changed())){return e}const n=e.materialize(e.SOURCE).source,i=Is(e.source,t.groupby,p.D_),r=t.smooth||false,s=t.field,a=t.step||Gs(n,s),o=An(((t,e)=>s(t)-s(e))),u=t.as||Us,l=i.length;let c=Infinity,f=-Infinity,d=0,h;for(;df)f=e;t[++h][u]=e}}this.value={start:c,stop:f,step:a};return e.reflow(true).modifies(u)}});function Ys(t){$n.call(this,null,Ws,t);this.modified(true)}(0,p.B)(Ys,$n);function Ws(t){const e=t.expr;return this.value&&!t.modified("expr")?this.value:(0,p.sY)((n=>e(n,t)),(0,p.nS)(e),(0,p.N6)(e))}function Xs(t){zi.call(this,[undefined,undefined],t)}Xs.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:true}]};(0,p.B)(Xs,zi,{transform(t,e){const n=this.value,i=t.field,r=e.changed()||e.modified(i.fields)||t.modified("field");let s=n[0],a=n[1];if(r||s==null){s=+Infinity;a=-Infinity}e.visit(r?e.SOURCE:e.ADD,(t=>{const e=(0,p.Ro)(i(t));if(e!=null){if(ea)a=e}}));if(!Number.isFinite(s)||!Number.isFinite(a)){let t=(0,p.N6)(i);if(t)t=` for field "${t}"`;e.dataflow.warn(`Infinite extent${t}: [${s}, ${a}]`);s=a=undefined}this.value=[s,a]}});function Hs(t,e){$n.call(this,t);this.parent=e;this.count=0}(0,p.B)(Hs,$n,{connect(t){this.detachSubflow=t.detachSubflow;this.targets().add(t);return t.source=this},add(t){this.count+=1;this.value.add.push(t)},rem(t){this.count-=1;this.value.rem.push(t)},mod(t){this.value.mod.push(t)},init(t){this.value.init(t,t.NO_SOURCE)},evaluate(){return this.value}});function Vs(t){zi.call(this,{},t);this._keys=(0,p.nG)();const e=this._targets=[];e.active=0;e.forEach=t=>{for(let n=0,i=e.active;nt&&t.count>0));this.initTargets(t)}},initTargets(t){const e=this._targets,n=e.length,i=t?t.length:0;let r=0;for(;rthis.subflow(t,r,e);this._group=t.group||{};this.initTargets();e.visit(e.REM,(t=>{const e=yn(t),n=s.get(e);if(n!==undefined){s.delete(e);o(n).rem(t)}}));e.visit(e.ADD,(t=>{const e=i(t);s.set(yn(t),e);o(e).add(t)}));if(a||e.modified(i.fields)){e.visit(e.MOD,(t=>{const e=yn(t),n=s.get(e),r=i(t);if(n===r){o(r).mod(t)}else{s.set(e,r);o(n).rem(t);o(r).add(t)}}))}else if(e.changed(e.MOD)){e.visit(e.MOD,(t=>{o(s.get(yn(t))).mod(t)}))}if(a){e.visit(e.REFLOW,(t=>{const e=yn(t),n=s.get(e),r=i(t);if(n!==r){s.set(e,r);o(n).rem(t);o(r).add(t)}}))}if(e.clean()){n.runAfter((()=>{this.clean();s.clean()}))}else if(s.empty>n.cleanThreshold){n.runAfter(s.clean)}return e}});function Qs(t){$n.call(this,null,Ks,t)}(0,p.B)(Qs,$n);function Ks(t){return this.value&&!t.modified()?this.value:(0,p.cy)(t.name)?(0,p.YO)(t.name).map((t=>(0,p.ZZ)(t))):(0,p.ZZ)(t.name,t.as)}function Zs(t){zi.call(this,(0,p.nG)(),t)}Zs.Definition={type:"Filter",metadata:{changes:true},params:[{name:"expr",type:"expr",required:true}]};(0,p.B)(Zs,zi,{transform(t,e){const n=e.dataflow,i=this.value,r=e.fork(),s=r.add,a=r.rem,o=r.mod,u=t.expr;let l=true;e.visit(e.REM,(t=>{const e=yn(t);if(!i.has(e))a.push(t);else i.delete(e)}));e.visit(e.ADD,(e=>{if(u(e,t))s.push(e);else i.set(yn(e),1)}));function c(e){const n=yn(e),r=u(e,t),c=i.get(n);if(r&&c){i.delete(n);s.push(e)}else if(!r&&!c){i.set(n,1);a.push(e)}else if(l&&r&&!c){o.push(e)}}e.visit(e.MOD,c);if(t.modified()){l=false;e.visit(e.REFLOW,c)}if(i.empty>n.cleanThreshold)n.runAfter(i.clean);return r}});function Js(t){zi.call(this,[],t)}Js.Definition={type:"Flatten",metadata:{generates:true},params:[{name:"fields",type:"field",array:true,required:true},{name:"index",type:"string"},{name:"as",type:"string",array:true}]};(0,p.B)(Js,zi,{transform(t,e){const n=e.fork(e.NO_SOURCE),i=t.fields,r=qs(i,t.as||[]),s=t.index||null,a=r.length;n.rem=this.value;e.visit(e.SOURCE,(t=>{const e=i.map((e=>e(t))),o=e.reduce(((t,e)=>Math.max(t,e.length)),0);let u=0,l,c,f;for(;u{for(let e=0,s;ee[i]=n(e,t)))}});function na(t){zi.call(this,[],t)}(0,p.B)(na,zi,{transform(t,e){const n=e.fork(e.ALL),i=t.generator;let r=this.value,s=t.size-r.length,a,o,u;if(s>0){for(a=[];--s>=0;){a.push(u=bn(i(t)));r.push(u)}n.add=n.add.length?n.materialize(n.ADD).add.concat(a):a}else{o=r.slice(0,-s);n.rem=n.rem.length?n.materialize(n.REM).rem.concat(o):o;r=r.slice(-s)}n.source=this.value=r;return n}});const ia={value:"value",median:Qi,mean:ts,min:Li.A,max:Ni.A};const ra=[];function sa(t){zi.call(this,[],t)}sa.Definition={type:"Impute",metadata:{changes:true},params:[{name:"field",type:"field",required:true},{name:"key",type:"field",required:true},{name:"keyvals",array:true},{name:"groupby",type:"field",array:true},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]};function aa(t){var e=t.method||ia.value,n;if(ia[e]==null){(0,p.z3)("Unrecognized imputation method: "+e)}else if(e===ia.value){n=t.value!==undefined?t.value:0;return()=>n}else{return ia[e]}}function oa(t){const e=t.field;return t=>t?e(t):NaN}(0,p.B)(sa,zi,{transform(t,e){var n=e.fork(e.ALL),i=aa(t),r=oa(t),s=(0,p.N6)(t.field),a=(0,p.N6)(t.key),o=(t.groupby||[]).map(p.N6),u=ua(e.source,t.groupby,t.key,t.keyvals),l=[],c=this.value,f=u.domain.length,d,h,m,g,y,v,b,x,_,w;for(y=0,x=u.length;yt(g),s=[],a=i?i.slice():[],o={},u={},l,c,f,d,h,p,m,g;a.forEach(((t,e)=>o[t]=e+1));for(d=0,m=t.length;dn.add(t)))}else{r=n.value=n.value||this.init(t);e.visit(e.REM,(t=>n.rem(t)));e.visit(e.ADD,(t=>n.add(t)))}n.changes();e.visit(e.SOURCE,(t=>{(0,p.X$)(t,r[n.cellkey(t)].tuple)}));return e.reflow(i).modifies(this._outputs)},changes(){const t=this._adds,e=this._mods;let n,i;for(n=0,i=this._alen;n{const n=br(e,a)[o],i=t.counts?e.length:1,r=c||(0,p.Xx)(e);Kr(n,r,f,d).forEach((t=>{const n={};for(let i=0;i{this._pending=(0,p.YO)(t.data);return t=>t.touch(this)}));return{async:e}}else{return n.request(t.url,t.format).then((t=>ma(this,e,(0,p.YO)(t.data))))}}});function pa(t){return t.modified("async")&&!(t.modified("values")||t.modified("url")||t.modified("format"))}function ma(t,e,n){n.forEach(bn);const i=e.fork(e.NO_FIELDS&e.NO_SOURCE);i.rem=t.value;t.value=i.source=i.add=n;t._pending=null;if(i.rem.length)i.clean(true);return i}function ga(t){zi.call(this,{},t)}ga.Definition={type:"Lookup",metadata:{modifies:true},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:true},{name:"key",type:"field",required:true}]},{name:"values",type:"field",array:true},{name:"fields",type:"field",array:true,required:true},{name:"as",type:"string",array:true},{name:"default",default:null}]};(0,p.B)(ga,zi,{transform(t,e){const n=t.fields,i=t.index,r=t.values,s=t.default==null?null:t.default,a=t.modified(),o=n.length;let u=a?e.SOURCE:e.ADD,l=e,c=t.as,f,d,h;if(r){d=r.length;if(o>1&&!c){(0,p.z3)('Multi-field lookup requires explicit "as" parameter.')}if(c&&c.length!==o*d){(0,p.z3)('The "as" parameter has too few output field names.')}c=c||r.map(p.N6);f=function(t){for(var e=0,a=0,u,l;ee.modified(t.fields)));u|=h?e.MOD:0}e.visit(u,f);return l.modifies(c)}});function ya(t){$n.call(this,null,va,t)}(0,p.B)(ya,$n);function va(t){if(this.value&&!t.modified()){return this.value}const e=t.extents,n=e.length;let i=+Infinity,r=-Infinity,s,a;for(s=0;sr)r=a[1]}return[i,r]}function ba(t){$n.call(this,null,xa,t)}(0,p.B)(ba,$n);function xa(t){return this.value&&!t.modified()?this.value:t.values.reduce(((t,e)=>t.concat(e)),[])}function _a(t){zi.call(this,null,t)}(0,p.B)(_a,zi,{transform(t,e){this.modified(t.modified());this.value=t;return e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function wa(t){xs.call(this,t)}wa.Definition={type:"Pivot",metadata:{generates:true,changes:true},params:[{name:"groupby",type:"field",array:true},{name:"field",type:"field",required:true},{name:"value",type:"field",required:true},{name:"op",type:"enum",values:us,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]};(0,p.B)(wa,xs,{_transform:xs.prototype.transform,transform(t,e){return this._transform(Aa(t,e),e)}});function Aa(t,e){const n=t.field,i=t.value,r=(t.op==="count"?"__count__":t.op)||"sum",s=(0,p.nS)(n).concat((0,p.nS)(i)),a=Ea(n,t.limit||0,e);if(e.changed())t.set("__pivot__",null,null,true);return{key:t.key,groupby:t.groupby,ops:a.map((()=>r)),fields:a.map((t=>ka(t,n,i,s))),as:a.map((t=>t+"")),modified:t.modified.bind(t)}}function ka(t,e,n,i){return(0,p.sY)((i=>e(i)===t?n(i):NaN),i,t+"")}function Ea(t,e,n){const i={},r=[];n.visit(n.SOURCE,(e=>{const n=t(e);if(!i[n]){i[n]=1;r.push(n)}}));r.sort(p.V_);return e?r.slice(0,e):r}function Ma(t){Vs.call(this,t)}(0,p.B)(Ma,Vs,{transform(t,e){const n=t.subflow,i=t.field,r=t=>this.subflow(yn(t),n,e,t);if(t.modified("field")||i&&e.modified((0,p.nS)(i))){(0,p.z3)("PreFacet does not support field modification.")}this.initTargets();if(i){e.visit(e.MOD,(t=>{const e=r(t);i(t).forEach((t=>e.mod(t)))}));e.visit(e.ADD,(t=>{const e=r(t);i(t).forEach((t=>e.add(bn(t))))}));e.visit(e.REM,(t=>{const e=r(t);i(t).forEach((t=>e.rem(t)))}))}else{e.visit(e.MOD,(t=>r(t).mod(t)));e.visit(e.ADD,(t=>r(t).add(t)));e.visit(e.REM,(t=>r(t).rem(t)))}if(e.clean()){e.runAfter((()=>this.clean()))}return e}});function Da(t){zi.call(this,null,t)}Da.Definition={type:"Project",metadata:{generates:true,changes:true},params:[{name:"fields",type:"field",array:true},{name:"as",type:"string",null:true,array:true}]};(0,p.B)(Da,zi,{transform(t,e){const n=e.fork(e.NO_SOURCE),i=t.fields,r=qs(t.fields,t.as||[]),s=i?(t,e)=>Ca(t,e,i,r):_n;let a;if(this.value){a=this.value}else{e=e.addAll();a=this.value={}}e.visit(e.REM,(t=>{const e=yn(t);n.rem.push(a[e]);a[e]=null}));e.visit(e.ADD,(t=>{const e=s(t,bn({}));a[yn(t)]=e;n.add.push(e)}));e.visit(e.MOD,(t=>{n.mod.push(s(t,a[yn(t)]))}));return n}});function Ca(t,e,n,i){for(let r=0,s=n.length;r{const e=Ji(t,l);for(let n=0;n{const e=yn(t);n.rem.push(i[e]);i[e]=null}));e.visit(e.ADD,(t=>{const e=xn(t);i[yn(t)]=e;n.add.push(e)}));e.visit(e.MOD,(t=>{const e=i[yn(t)];for(const i in t){e[i]=t[i];n.modifies(i)}n.mod.push(e)}))}return n}});function $a(t){zi.call(this,[],t);this.count=0}$a.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]};(0,p.B)($a,zi,{transform(t,e){const n=e.fork(e.NO_SOURCE),i=t.modified("size"),r=t.size,s=this.value.reduce(((t,e)=>(t[yn(e)]=1,t)),{});let a=this.value,o=this.count,u=0;function l(t){let e,i;if(a.length=u){e=a[i];if(s[yn(e)])n.rem.push(e);a[i]=t}}++o}if(e.rem.length){e.visit(e.REM,(t=>{const e=yn(t);if(s[e]){s[e]=-1;n.rem.push(t)}--o}));a=a.filter((t=>s[yn(t)]!==-1))}if((e.rem.length||i)&&a.length{if(!s[yn(t)])l(t)}));u=-1}if(i&&a.length>r){const t=a.length-r;for(let e=0;e{if(s[yn(t)])n.mod.push(t)}))}if(e.add.length){e.visit(e.ADD,l)}if(e.add.length||u<0){n.add=a.filter((t=>!s[yn(t)]))}this.count=o;this.value=n.source=a;return n}});function Ra(t){zi.call(this,null,t)}Ra.Definition={type:"Sequence",metadata:{generates:true,changes:true},params:[{name:"start",type:"number",required:true},{name:"stop",type:"number",required:true},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]};(0,p.B)(Ra,zi,{transform(t,e){if(this.value&&!t.modified())return;const n=e.materialize().fork(e.MOD),i=t.as||"data";n.rem=this.value?e.rem.concat(this.value):e.rem;this.value=(0,es.A)(t.start,t.stop,t.step||1).map((t=>{const e={};e[i]=t;return bn(e)}));n.add=e.add.concat(this.value);return n}});function Oa(t){zi.call(this,null,t);this.modified(true)}(0,p.B)(Oa,zi,{transform(t,e){this.value=e.source;return e.changed()?e.fork(e.NO_SOURCE|e.NO_FIELDS):e.StopPropagation}});function Ta(t){zi.call(this,null,t)}const Na=["unit0","unit1"];Ta.Definition={type:"TimeUnit",metadata:{modifies:true},params:[{name:"field",type:"field",required:true},{name:"interval",type:"boolean",default:true},{name:"units",type:"enum",values:ct,array:true},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:true},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:true,length:2,default:Na}]};(0,p.B)(Ta,zi,{transform(t,e){const n=t.field,i=t.interval!==false,r=t.timezone==="utc",s=this._floor(t,e),a=(r?It:qt)(s.unit).offset,o=t.as||Na,u=o[0],l=o[1],c=s.step;let f=s.start||Infinity,d=s.stop||-Infinity,h=e.ADD;if(t.modified()||e.changed(e.REM)||e.modified((0,p.nS)(n))){e=e.reflow(true);h=e.SOURCE;f=Infinity;d=-Infinity}e.visit(h,(t=>{const e=n(t);let r,o;if(e==null){t[u]=null;if(i)t[l]=null}else{t[u]=r=o=s(e);if(i)t[l]=o=a(r,c);if(rd)d=o}}));s.start=f;s.stop=d;return e.modifies(i?o:u)},_floor(t,e){const n=t.timezone==="utc";const{units:i,step:r}=t.units?{units:t.units,step:t.step||1}:ce({extent:t.extent||(0,p.Xx)(e.materialize(e.SOURCE).source,t.field),maxbins:t.maxbins});const s=dt(i),a=this.value||{},o=(n?Nt:Rt)(s,r);o.unit=(0,p.se)(s);o.units=s;o.step=r;o.start=a.start;o.stop=a.stop;return this.value=o}});function La(t){zi.call(this,(0,p.nG)(),t)}(0,p.B)(La,zi,{transform(t,e){const n=e.dataflow,i=t.field,r=this.value,s=t=>r.set(i(t),t);let a=true;if(t.modified("field")||e.modified(i.fields)){r.clear();e.visit(e.SOURCE,s)}else if(e.changed()){e.visit(e.REM,(t=>r.delete(i(t))));e.visit(e.ADD,s)}else{a=false}this.modified(a);if(r.empty>n.cleanThreshold)n.runAfter(r.clean);return e.fork()}});function Pa(t){zi.call(this,null,t)}(0,p.B)(Pa,zi,{transform(t,e){const n=!this.value||t.modified("field")||t.modified("sort")||e.changed()||t.sort&&e.modified(t.sort.fields);if(n){this.value=(t.sort?e.source.slice().sort(An(t.sort)):e.source).map(t.field)}}});function qa(t,e,n,i){const r=Ia[t](e,n);return{init:r.init||p.v_,update:function(t,e){e[i]=r.next(t)}}}const Ia={row_number:function(){return{next:t=>t.index+1}},rank:function(){let t;return{init:()=>t=1,next:e=>{const n=e.index,i=e.data;return n&&e.compare(i[n-1],i[n])?t=n+1:t}}},dense_rank:function(){let t;return{init:()=>t=1,next:e=>{const n=e.index,i=e.data;return n&&e.compare(i[n-1],i[n])?++t:t}}},percent_rank:function(){const t=Ia.rank(),e=t.next;return{init:t.init,next:t=>(e(t)-1)/(t.data.length-1)}},cume_dist:function(){let t;return{init:()=>t=0,next:e=>{const n=e.data,i=e.compare;let r=e.index;if(t0))(0,p.z3)("ntile num must be greater than zero.");const n=Ia.cume_dist(),i=n.next;return{init:n.init,next:t=>Math.ceil(e*i(t))}},lag:function(t,e){e=+e||1;return{next:n=>{const i=n.index-e;return i>=0?t(n.data[i]):null}}},lead:function(t,e){e=+e||1;return{next:n=>{const i=n.index+e,r=n.data;return it(e.data[e.i0])}},last_value:function(t){return{next:e=>t(e.data[e.i1-1])}},nth_value:function(t,e){e=+e;if(!(e>0))(0,p.z3)("nth_value nth must be greater than zero.");return{next:n=>{const i=n.i0+(e-1);return ie=null,next:n=>{const i=t(n.data[n.index]);return i!=null?e=i:e}}},next_value:function(t){let e,n;return{init:()=>(e=null,n=-1),next:i=>{const r=i.data;return i.index<=n?e:(n=Ua(t,r,i.index))<0?(n=r.length,e=null):e=t(r[n])}}}};function Ua(t,e,n){for(let i=e.length;nu[t]=1))}h(t.sort);e.forEach(((t,e)=>{const u=n[e],m=i[e],g=r[e]||null,y=(0,p.N6)(u),v=rs(t,y,s[e]);h(u);a.push(v);if((0,p.mQ)(Ia,t)){o.push(qa(t,u,m,v))}else{if(u==null&&t!=="count"){(0,p.z3)("Null aggregate field specified.")}if(t==="count"){c.push(v);return}d=false;let e=l[y];if(!e){e=l[y]=[];e.field=u;f.push(e)}e.push(cs(t,g,v))}}));if(c.length||f.length){this.cell=Wa(f,c,d)}this.inputs=Object.keys(u)}const Ya=Ga.prototype;Ya.init=function(){this.windows.forEach((t=>t.init()));if(this.cell)this.cell.init()};Ya.update=function(t,e){const n=this.cell,i=this.windows,r=t.data,s=i&&i.length;let a;if(n){for(a=t.p0;ays(t,t.field)));const i={num:0,agg:null,store:false,count:e};if(!n){var r=t.length,s=i.agg=Array(r),a=0;for(;athis.group(r(t));let a=this.state;if(!a||n){a=this.state=new Ga(t)}if(n||e.modified(a.inputs)){this.value={};e.visit(e.SOURCE,(t=>s(t).add(t)))}else{e.visit(e.REM,(t=>s(t).remove(t)));e.visit(e.ADD,(t=>s(t).add(t)))}for(let o=0,u=this._mlen;o0&&!r(s[n],s[n-1]))t.i0=e.left(s,s[n]);if(i=f;--d){o.point(y[d],v[d])}o.lineEnd();o.areaEnd()}}if(m){y[c]=+t(p,c,l),v[c]=+e(p,c,l);o.point(i?+i(p,c,l):y[c],n?+n(p,c,l):v[c])}}if(g)return o=null,g+""||null}function c(){return(0,go.A)().defined(r).curve(a).context(s)}l.x=function(e){return arguments.length?(t=typeof e==="function"?e:(0,mo.A)(+e),i=null,l):t};l.x0=function(e){return arguments.length?(t=typeof e==="function"?e:(0,mo.A)(+e),l):t};l.x1=function(t){return arguments.length?(i=t==null?null:typeof t==="function"?t:(0,mo.A)(+t),l):i};l.y=function(t){return arguments.length?(e=typeof t==="function"?t:(0,mo.A)(+t),n=null,l):e};l.y0=function(t){return arguments.length?(e=typeof t==="function"?t:(0,mo.A)(+t),l):e};l.y1=function(t){return arguments.length?(n=t==null?null:typeof t==="function"?t:(0,mo.A)(+t),l):n};l.lineX0=l.lineY0=function(){return c().x(t).y(e)};l.lineY1=function(){return c().x(t).y(n)};l.lineX1=function(){return c().x(i).y(e)};l.defined=function(t){return arguments.length?(r=typeof t==="function"?t:(0,mo.A)(!!t),l):r};l.curve=function(t){return arguments.length?(a=t,s!=null&&(o=a(s)),l):a};l.context=function(t){return arguments.length?(t==null?s=o=null:o=a(s=t),l):s};return l}var xo=n(98247);const _o=(0,xo.RZ)(3);const wo={draw(t,e){const n=(0,xo.RZ)(e+(0,xo.jk)(e/28,.75))*.59436;const i=n/2;const r=i*_o;t.moveTo(0,n);t.lineTo(0,-n);t.moveTo(-r,-i);t.lineTo(r,i);t.moveTo(-r,i);t.lineTo(r,-i)}};const Ao={draw(t,e){const n=(0,xo.RZ)(e/xo.pi);t.moveTo(n,0);t.arc(0,0,n,0,xo.FA)}};const ko={draw(t,e){const n=(0,xo.RZ)(e/5)/2;t.moveTo(-3*n,-n);t.lineTo(-n,-n);t.lineTo(-n,-3*n);t.lineTo(n,-3*n);t.lineTo(n,-n);t.lineTo(3*n,-n);t.lineTo(3*n,n);t.lineTo(n,n);t.lineTo(n,3*n);t.lineTo(-n,3*n);t.lineTo(-n,n);t.lineTo(-3*n,n);t.closePath()}};const Eo=(0,xo.RZ)(1/3);const Mo=Eo*2;const Do={draw(t,e){const n=(0,xo.RZ)(e/Mo);const i=n*Eo;t.moveTo(0,-n);t.lineTo(i,0);t.lineTo(0,n);t.lineTo(-i,0);t.closePath()}};const Co={draw(t,e){const n=(0,xo.RZ)(e)*.62625;t.moveTo(0,-n);t.lineTo(n,0);t.lineTo(0,n);t.lineTo(-n,0);t.closePath()}};const Fo={draw(t,e){const n=(0,xo.RZ)(e-(0,xo.jk)(e/7,2))*.87559;t.moveTo(-n,0);t.lineTo(n,0);t.moveTo(0,n);t.lineTo(0,-n)}};const So={draw(t,e){const n=(0,xo.RZ)(e);const i=-n/2;t.rect(i,i,n,n)}};const Bo={draw(t,e){const n=(0,xo.RZ)(e)*.4431;t.moveTo(n,n);t.lineTo(n,-n);t.lineTo(-n,-n);t.lineTo(-n,n);t.closePath()}};const zo=.8908130915292852;const $o=(0,xo.F8)(xo.pi/10)/(0,xo.F8)(7*xo.pi/10);const Ro=(0,xo.F8)(xo.FA/10)*$o;const Oo=-(0,xo.gn)(xo.FA/10)*$o;const To={draw(t,e){const n=(0,xo.RZ)(e*zo);const i=Ro*n;const r=Oo*n;t.moveTo(0,-n);t.lineTo(i,r);for(let s=1;s<5;++s){const e=xo.FA*s/5;const a=(0,xo.gn)(e);const o=(0,xo.F8)(e);t.lineTo(o*n,-a*n);t.lineTo(a*i-o*r,o*i+a*r)}t.closePath()}};const No=(0,xo.RZ)(3);const Lo={draw(t,e){const n=-(0,xo.RZ)(e/(No*3));t.moveTo(0,n*2);t.lineTo(-No*n,-n);t.lineTo(No*n,-n);t.closePath()}};const Po=(0,xo.RZ)(3);const qo={draw(t,e){const n=(0,xo.RZ)(e)*.6824;const i=n/2;const r=n*Po/2;t.moveTo(0,-n);t.lineTo(r,i);t.lineTo(-r,i);t.closePath()}};const Io=-.5;const Uo=(0,xo.RZ)(3)/2;const jo=1/(0,xo.RZ)(12);const Go=(jo/2+1)*3;const Yo={draw(t,e){const n=(0,xo.RZ)(e/Go);const i=n/2,r=n*jo;const s=i,a=n*jo+n;const o=-s,u=a;t.moveTo(i,r);t.lineTo(s,a);t.lineTo(o,u);t.lineTo(Io*i-Uo*r,Uo*i+Io*r);t.lineTo(Io*s-Uo*a,Uo*s+Io*a);t.lineTo(Io*o-Uo*u,Uo*o+Io*u);t.lineTo(Io*i+Uo*r,Io*r-Uo*i);t.lineTo(Io*s+Uo*a,Io*a-Uo*s);t.lineTo(Io*o+Uo*u,Io*u-Uo*o);t.closePath()}};const Wo={draw(t,e){const n=(0,xo.RZ)(e-(0,xo.jk)(e/6,1.7))*.6189;t.moveTo(-n,-n);t.lineTo(n,n);t.moveTo(-n,n);t.lineTo(n,-n)}};const Xo=[Ao,ko,Do,So,To,Lo,Yo];const Ho=[Ao,Fo,Wo,qo,wo,Bo,Co];function Vo(t,e){let n=null,i=(0,yo.i)(r);t=typeof t==="function"?t:(0,mo.A)(t||Ao);e=typeof e==="function"?e:(0,mo.A)(e===undefined?64:+e);function r(){let r;if(!n)n=r=i();t.apply(this,arguments).draw(n,+e.apply(this,arguments));if(r)return n=null,r+""||null}r.type=function(e){return arguments.length?(t=typeof e==="function"?e:(0,mo.A)(e),r):t};r.size=function(t){return arguments.length?(e=typeof t==="function"?t:(0,mo.A)(+t),r):e};r.context=function(t){return arguments.length?(n=t==null?null:t,r):n};return r}var Qo=n(69450);function Ko(t,e){if(typeof document!=="undefined"&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext){n.width=t;n.height=e;return n}}return null}const Zo=()=>typeof Image!=="undefined"?Image:null;var Jo=n(71363);var tu=n(20481);var eu=n(60117);function nu(t){var e;function n(t){return t==null||isNaN(t=+t)?e:t}n.invert=n;n.domain=n.range=function(e){return arguments.length?(t=Array.from(e,eu.A),n):t.slice()};n.unknown=function(t){return arguments.length?(e=t,n):e};n.copy=function(){return nu(t).unknown(e)};t=arguments.length?Array.from(t,eu.A):[0,1];return(0,tu.C)(n)}var iu=n(60125);var ru=n(52178);var su=n(25758);function au(t){return Math.log(t)}function ou(t){return Math.exp(t)}function uu(t){return-Math.log(-t)}function lu(t){return-Math.exp(-t)}function cu(t){return isFinite(t)?+("1e"+t):t<0?0:t}function fu(t){return t===10?cu:t===Math.E?Math.exp:e=>Math.pow(t,e)}function du(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function hu(t){return(e,n)=>-t(-e,n)}function pu(t){const e=t(au,ou);const n=e.domain;let i=10;let r;let s;function a(){r=du(i),s=fu(i);if(n()[0]<0){r=hu(r),s=hu(s);t(uu,lu)}else{t(au,ou)}return e}e.base=function(t){return arguments.length?(i=+t,a()):i};e.domain=function(t){return arguments.length?(n(t),a()):n()};e.ticks=t=>{const e=n();let a=e[0];let o=e[e.length-1];const u=o0)for(;l<=c;++l){for(f=1;fo)break;p.push(d)}}else for(;l<=c;++l){for(f=i-1;f>=1;--f){d=l>0?f/s(-l):f*s(l);if(do)break;p.push(d)}}if(p.length*2{if(t==null)t=10;if(n==null)n=i===10?"s":",";if(typeof n!=="function"){if(!(i%1)&&(n=(0,L.A)(n)).precision==null)n.trim=true;n=(0,U.GP)(n)}if(t===Infinity)return n;const a=Math.max(1,i*t/e.ticks().length);return t=>{let e=t/s(Math.round(r(t)));if(e*in((0,iu.A)(n(),{floor:t=>s(Math.floor(r(t))),ceil:t=>s(Math.ceil(r(t)))}));return e}function mu(){const t=pu((0,ru.Gu)()).domain([1,10]);t.copy=()=>(0,ru.C)(t,mu()).base(t.base());su.C.apply(t,arguments);return t}function gu(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function yu(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function vu(t){return t<0?-t*t:t*t}function bu(t){var e=t(ru.D_,ru.D_),n=1;function i(){return n===1?t(ru.D_,ru.D_):n===.5?t(yu,vu):t(gu(n),gu(1/n))}e.exponent=function(t){return arguments.length?(n=+t,i()):n};return(0,tu.C)(e)}function xu(){var t=bu((0,ru.Gu)());t.copy=function(){return(0,ru.C)(t,xu()).exponent(t.exponent())};su.C.apply(t,arguments);return t}function _u(){return xu.apply(null,arguments).exponent(.5)}function wu(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function Au(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function ku(t){var e=1,n=t(wu(e),Au(e));n.constant=function(n){return arguments.length?t(wu(e=+n),Au(e)):e};return(0,tu.C)(n)}function Eu(){var t=ku((0,ru.Gu)());t.copy=function(){return(0,ru.C)(t,Eu()).constant(t.constant())};return su.C.apply(t,arguments)}var Mu=n(74725);var Du=n(20421);function Cu(){return su.C.apply((0,Mu.B)(Du.$Z,Du.lk,W.Mb,X.R6,Y.Hl,G.dA,H.pz,V.vD,Q.R,fe.aL).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}var Fu=n(21406);var Su=n(15307);function Bu(){var t=0,e=1,n,i,r,s,a=ru.D_,o=false,u;function l(t){return t==null||isNaN(t=+t)?u:a(r===0?.5:(t=(s(t)-n)*r,o?Math.max(0,Math.min(1,t)):t))}l.domain=function(a){return arguments.length?([t,e]=a,n=s(t=+t),i=s(e=+e),r=n===i?0:1/(i-n),l):[t,e]};l.clamp=function(t){return arguments.length?(o=!!t,l):o};l.interpolator=function(t){return arguments.length?(a=t,l):a};function c(t){return function(e){var n,i;return arguments.length?([n,i]=e,a=t(n,i),l):[a(0),a(1)]}}l.range=c(Fu.A);l.rangeRound=c(Su.A);l.unknown=function(t){return arguments.length?(u=t,l):u};return function(a){s=a,n=a(t),i=a(e),r=n===i?0:1/(i-n);return l}}function zu(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function $u(){var t=(0,tu.C)(Bu()(ru.D_));t.copy=function(){return zu(t,$u())};return su.K.apply(t,arguments)}function Ru(){var t=pu(Bu()).domain([1,10]);t.copy=function(){return zu(t,Ru()).base(t.base())};return su.K.apply(t,arguments)}function Ou(){var t=ku(Bu());t.copy=function(){return zu(t,Ou()).constant(t.constant())};return su.K.apply(t,arguments)}function Tu(){var t=bu(Bu());t.copy=function(){return zu(t,Tu()).exponent(t.exponent())};return su.K.apply(t,arguments)}function Nu(){return Tu.apply(null,arguments).exponent(.5)}var Lu=n(99793);function Pu(){var t=0,e=.5,n=1,i=1,r,s,a,o,u,l=ru.D_,c,f=false,d;function h(t){return isNaN(t=+t)?d:(t=.5+((t=+c(t))-s)*(i*t0?n[r-1]:t[0],r=n?[i[n-1],e]:[i[a-1],i[a]]};a.unknown=function(t){return arguments.length?(s=t,a):a};a.thresholds=function(){return i.slice()};a.copy=function(){return Wu().domain([t,e]).range(r).unknown(s)};return su.C.apply((0,tu.C)(a),arguments)}function Xu(){var t=[.5],e=[0,1],n,i=1;function r(r){return r!=null&&r<=r?e[(0,Jo.Ay)(t,r,0,i)]:n}r.domain=function(n){return arguments.length?(t=Array.from(n),i=Math.min(t.length,e.length-1),r):t.slice()};r.range=function(n){return arguments.length?(e=Array.from(n),i=Math.min(t.length,e.length-1),r):e.slice()};r.invertExtent=function(n){var i=e.indexOf(n);return[t[i-1],t[i]]};r.unknown=function(t){return arguments.length?(n=t,r):n};r.copy=function(){return Xu().domain(t).range(e).unknown(n)};return su.C.apply(r,arguments)}var Hu=n(16527);var Vu=n(26698);var Qu=n(67360);var Ku=n(58177);const Zu=(0,Ku.A)("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666");const Ju=(0,Ku.A)("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");const tl=(0,Ku.A)("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666");const el=(0,Ku.A)("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0");const nl=(0,Ku.A)("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928");const il=(0,Ku.A)("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2");const rl=(0,Ku.A)("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc");const sl=(0,Ku.A)("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");const al=(0,Ku.A)("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3");const ol=(0,Ku.A)("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function ul(t,e,n){const i=t-e+n*2;return t?i>0?i:1:0}const ll="identity";const cl="linear";const fl="log";const dl="pow";const hl="sqrt";const pl="symlog";const ml="time";const gl="utc";const yl="sequential";const vl="diverging";const bl="quantile";const xl="quantize";const _l="threshold";const wl="ordinal";const Al="point";const kl="band";const El="bin-ordinal";const Ml="continuous";const Dl="discrete";const Cl="discretizing";const Fl="interpolating";const Sl="temporal";function Bl(t){return function(e){let n=e[0],i=e[1],r;if(i=i&&n[u]<=r){if(s<0)s=u;a=u}}if(s<0)return undefined;i=t.invertExtent(n[s]);r=t.invertExtent(n[a]);return[i[0]===undefined?i[1]:i[0],r[1]===undefined?r[0]:r[1]]}}function $l(){const t=(0,Hu.A)().unknown(undefined),e=t.domain,n=t.range;let i=[0,1],r,s,a=false,o=0,u=0,l=.5;delete t.unknown;function c(){const t=e().length,c=i[1]h+r*t));return n(c?p.reverse():p)}t.domain=function(t){if(arguments.length){e(t);return c()}else{return e()}};t.range=function(t){if(arguments.length){i=[+t[0],+t[1]];return c()}else{return i.slice()}};t.rangeRound=function(t){i=[+t[0],+t[1]];a=true;return c()};t.bandwidth=function(){return s};t.step=function(){return r};t.round=function(t){if(arguments.length){a=!!t;return c()}else{return a}};t.padding=function(t){if(arguments.length){u=Math.max(0,Math.min(1,t));o=u;return c()}else{return o}};t.paddingInner=function(t){if(arguments.length){o=Math.max(0,Math.min(1,t));return c()}else{return o}};t.paddingOuter=function(t){if(arguments.length){u=Math.max(0,Math.min(1,t));return c()}else{return u}};t.align=function(t){if(arguments.length){l=Math.max(0,Math.min(1,t));return c()}else{return l}};t.invertRange=function(t){if(t[0]==null||t[1]==null)return;const r=i[1]i[1-r])return;c=Math.max(0,(0,Jo.Jj)(a,u)-1);f=u===l?c:(0,Jo.Jj)(a,l)-1;if(u-a[c]>s+1e-10)++c;if(r){d=c;c=o-f;f=o-d}return c>f?undefined:e().slice(c,f+1)};t.invert=function(e){const n=t.invertRange([e,e]);return n?n[0]:n};t.copy=function(){return $l().domain(e()).range(i).round(a).paddingInner(o).paddingOuter(u).align(l)};return c()}function Rl(t){const e=t.copy;t.padding=t.paddingOuter;delete t.paddingInner;t.copy=function(){return Rl(e())};return t}function Ol(){return Rl($l().paddingInner(1))}var Tl=Array.prototype.map;function Nl(t){return Tl.call(t,p.Ro)}const Ll=Array.prototype.slice;function Pl(){let t=[],e=[];function n(n){return n==null||n!==n?undefined:e[((0,Jo.Ay)(t,n)-1)%e.length]}n.domain=function(e){if(arguments.length){t=Nl(e);return n}else{return t.slice()}};n.range=function(t){if(arguments.length){e=Ll.call(t);return n}else{return e.slice()}};n.tickFormat=function(e,n){return(0,Vu.A)(t[0],(0,p.se)(t),e==null?10:e,n)};n.copy=function(){return Pl().domain(n.domain()).range(n.range())};return n}const ql=new Map;const Il=Symbol("vega_scale");function Ul(t){t[Il]=true;return t}function jl(t){return t&&t[Il]===true}function Gl(t,e,n){const i=function n(){const i=e();if(!i.invertRange){i.invertRange=i.invert?Bl(i):i.invertExtent?zl(i):undefined}i.type=t;return Ul(i)};i.metadata=(0,p.M1)((0,p.YO)(n));return i}function Yl(t,e,n){if(arguments.length>1){ql.set(t,Gl(t,e,n));return this}else{return Wl(t)?ql.get(t):undefined}}Yl(ll,nu);Yl(cl,tu.A,Ml);Yl(fl,mu,[Ml,fl]);Yl(dl,xu,Ml);Yl(hl,_u,Ml);Yl(pl,Eu,Ml);Yl(ml,Mu.A,[Ml,Sl]);Yl(gl,Cu,[Ml,Sl]);Yl(yl,$u,[Ml,Fl]);Yl(`${yl}-${cl}`,$u,[Ml,Fl]);Yl(`${yl}-${fl}`,Ru,[Ml,Fl,fl]);Yl(`${yl}-${dl}`,Tu,[Ml,Fl]);Yl(`${yl}-${hl}`,Nu,[Ml,Fl]);Yl(`${yl}-${pl}`,Ou,[Ml,Fl]);Yl(`${vl}-${cl}`,qu,[Ml,Fl]);Yl(`${vl}-${fl}`,Iu,[Ml,Fl,fl]);Yl(`${vl}-${dl}`,ju,[Ml,Fl]);Yl(`${vl}-${hl}`,Gu,[Ml,Fl]);Yl(`${vl}-${pl}`,Uu,[Ml,Fl]);Yl(bl,Yu,[Cl,bl]);Yl(xl,Wu,Cl);Yl(_l,Xu,Cl);Yl(El,Pl,[Dl,Cl]);Yl(wl,Hu.A,Dl);Yl(kl,$l,Dl);Yl(Al,Ol,Dl);function Wl(t){return ql.has(t)}function Xl(t,e){const n=ql.get(t);return n&&n.metadata[e]}function Hl(t){return Xl(t,Ml)}function Vl(t){return Xl(t,Dl)}function Ql(t){return Xl(t,Cl)}function Kl(t){return Xl(t,fl)}function Zl(t){return Xl(t,Sl)}function Jl(t){return Xl(t,Fl)}function tc(t){return Xl(t,bl)}const ec=["clamp","base","constant","exponent"];function nc(t,e){const n=e[0],i=(0,p.se)(e)-n;return function(e){return t(n+e*i)}}function ic(t,e,n){return Lu.A(oc(e||"rgb",n),t)}function rc(t,e){const n=new Array(e),i=e+1;for(let r=0;rt[e]?a[e](t[e]()):0));return a}}function oc(t,e){const n=Qu[uc(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function uc(t){return"interpolate"+t.toLowerCase().split("-").map((t=>t[0].toUpperCase()+t.slice(1))).join("")}const lc={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"};const cc={accent:Zu,category10:Ju,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:tl,observable10:el,paired:nl,pastel1:il,pastel2:rl,set1:sl,set2:al,set3:ol,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"};function fc(t){if((0,p.cy)(t))return t;const e=t.length/6|0,n=new Array(e);for(let i=0;iic(fc(t))));function pc(t,e){t=t&&t.toLowerCase();if(arguments.length>1){hc[t]=e;return this}else{return hc[t]}}const mc="symbol";const gc="discrete";const yc="gradient";const vc=t=>(0,p.cy)(t)?t.map((t=>String(t))):String(t);const bc=(t,e)=>t[1]-e[1];const xc=(t,e)=>e[1]-t[1];function _c(t,e,n){let i;if((0,p.Et)(e)){if(t.bins){e=Math.max(e,t.bins.length)}if(n!=null){e=Math.min(e,Math.floor((0,p.Ln)(t.domain())/n||1)+1)}}if((0,p.Gv)(e)){i=e.step;e=e.interval}if((0,p.Kg)(e)){e=t.type===ml?qt(e):t.type==gl?It(e):(0,p.z3)("Only time and utc scales accept interval strings.");if(i)e=e.every(i)}return e}function wc(t,e,n){let i=t.range(),r=i[0],s=(0,p.se)(i),a=bc;if(r>s){i=s;s=r;r=i;a=xc}r=Math.floor(r);s=Math.ceil(s);e=e.map((e=>[e,t(e)])).filter((t=>r<=t[1]&&t[1]<=s)).sort(a).map((t=>t[0]));if(n>0&&e.length>1){const t=[e[0],(0,p.se)(e)];while(e.length>n&&e.length>=3){e=e.filter(((t,e)=>!(e%2)))}if(e.length<3){e=t}}return e}function Ac(t,e){return t.bins?wc(t,t.bins,e):t.ticks?t.ticks(e):t.domain()}function kc(t,e,n,i,r,s){const a=e.type;let o=vc;if(a===ml||r===ml){o=t.timeFormat(i)}else if(a===gl||r===gl){o=t.utcFormat(i)}else if(Kl(a)){const r=t.formatFloat(i);if(s||e.bins){o=r}else{const t=Ec(e,n,false);o=e=>t(e)?r(e):""}}else if(e.tickFormat){const r=e.domain();o=t.formatSpan(r[0],r[r.length-1],n,i)}else if(i){o=t.format(i)}return o}function Ec(t,e,n){const i=Ac(t,e),r=t.base(),s=Math.log(r),a=Math.max(1,r*e/i.length);const o=t=>{let e=t/Math.pow(r,Math.round(Math.log(t)/s));if(e*r1?i[1]-i[0]:i[0],a;for(a=1;aMc[t.type]||t.bins;function $c(t,e,n,i,r,s,a){const o=Dc[e.type]&&s!==ml&&s!==gl?Fc(t,e,r):kc(t,e,n,r,s,a);return i===mc&&zc(e)?Rc(o):i===gc?Tc(o):Nc(o)}const Rc=t=>(e,n,i)=>{const r=Oc(i[n+1],Oc(i.max,+Infinity)),s=Lc(e,t),a=Lc(r,t);return s&&a?s+" – "+a:a?"< "+a:"≥ "+s};const Oc=(t,e)=>t!=null?t:e;const Tc=t=>(e,n)=>n?t(e):null;const Nc=t=>e=>t(e);const Lc=(t,e)=>Number.isFinite(t)?e(t):null;function Pc(t){const e=t.domain(),n=e.length-1;let i=+e[0],r=+(0,p.se)(e),s=r-i;if(t.type===_l){const t=n?s/n:.1;i-=t;r+=t;s=r-i}return t=>(t-i)/s}function qc(t,e,n,i){const r=i||e.type;if((0,p.Kg)(n)&&Zl(r)){n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")}return!n&&r===ml?t.timeFormat("%A, %d %B %Y, %X"):!n&&r===gl?t.utcFormat("%A, %d %B %Y, %X UTC"):$c(t,e,5,null,n,i,true)}function Ic(t,e,n){n=n||{};const i=Math.max(3,n.maxlen||7),r=qc(t,e,n.format,n.formatType);if(Ql(e.type)){const t=Cc(e).slice(1).map(r),n=t.length;return`${n} boundar${n===1?"y":"ies"}: ${t.join(", ")}`}else if(Vl(e.type)){const t=e.domain(),n=t.length,s=n>i?t.slice(0,i-2).map(r).join(", ")+", ending with "+t.slice(-1).map(r):t.map(r).join(", ");return`${n} value${n===1?"":"s"}: ${s}`}else{const t=e.domain();return`values from ${r(t[0])} to ${r((0,p.se)(t))}`}}let Uc=0;function jc(){Uc=0}const Gc="p_";function Yc(t){return t&&t.gradient}function Wc(t,e,n){const i=t.gradient;let r=t.id,s=i==="radial"?Gc:"";if(!r){r=t.id="gradient_"+Uc++;if(i==="radial"){t.x1=Xc(t.x1,.5);t.y1=Xc(t.y1,.5);t.r1=Xc(t.r1,0);t.x2=Xc(t.x2,.5);t.y2=Xc(t.y2,.5);t.r2=Xc(t.r2,.5);s=Gc}else{t.x1=Xc(t.x1,0);t.y1=Xc(t.y1,0);t.x2=Xc(t.x2,1);t.y2=Xc(t.y2,0)}}e[r]=t;return"url("+(n||"")+"#"+s+r+")"}function Xc(t,e){return t!=null?t:e}function Hc(t,e){var n=[],i;return i={gradient:"linear",x1:t?t[0]:0,y1:t?t[1]:0,x2:e?e[0]:1,y2:e?e[1]:0,stops:n,stop:function(t,e){n.push({offset:t,color:e});return i}}}const Vc={basis:{curve:Ka.Ay},"basis-closed":{curve:Za.A},"basis-open":{curve:Ja.A},bundle:{curve:to.A,tension:"beta",value:.85},cardinal:{curve:eo.Ay,tension:"tension",value:0},"cardinal-open":{curve:no.A,tension:"tension",value:0},"cardinal-closed":{curve:io.A,tension:"tension",value:0},"catmull-rom":{curve:ro.A,tension:"alpha",value:.5},"catmull-rom-closed":{curve:so.A,tension:"alpha",value:.5},"catmull-rom-open":{curve:ao.A,tension:"alpha",value:.5},linear:{curve:oo.A},"linear-closed":{curve:uo.A},monotone:{horizontal:lo.N,vertical:lo.G},natural:{curve:co.A},step:{curve:fo.Ay},"step-after":{curve:fo.Ps},"step-before":{curve:fo.Ko}};function Qc(t,e,n){var i=(0,p.mQ)(Vc,t)&&Vc[t],r=null;if(i){r=i.curve||i[e||"vertical"];if(i.tension&&n!=null){r=r[i.tension](n)}}return r}const Kc={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7};const Zc=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi;const Jc=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/;const tf=/^((\s+,?\s*)|(,\s*))/;const ef=/^[01]/;function nf(t){const e=[];const n=t.match(Zc)||[];n.forEach((t=>{let n=t[0];const i=n.toLowerCase();const r=Kc[i];const s=rf(i,r,t.slice(1).trim());const a=s.length;if(a1){m=Math.sqrt(m);n*=m;i*=m}const g=d/n;const y=f/n;const v=-f/i;const b=d/i;const x=g*o+y*u;const _=v*o+b*u;const w=g*t+y*e;const A=v*t+b*e;const k=(w-x)*(w-x)+(A-_)*(A-_);let E=1/k-.25;if(E<0)E=0;let M=Math.sqrt(E);if(s==r)M=-M;const D=.5*(x+w)-M*(A-_);const C=.5*(_+A)+M*(w-x);const F=Math.atan2(_-C,x-D);const S=Math.atan2(A-C,w-D);let B=S-F;if(B<0&&s===1){B+=uf}else if(B>0&&s===0){B-=uf}const z=Math.ceil(Math.abs(B/(of+.001)));const $=[];for(let R=0;R+t}function Sf(t,e,n){return Math.max(e,Math.min(t,n))}function Bf(){var t=Ef,e=Mf,n=Df,i=Cf,r=Ff(0),s=r,a=r,o=r,u=null;function l(l,c,f){var d,h=c!=null?c:+t.call(this,l),p=f!=null?f:+e.call(this,l),m=+n.call(this,l),g=+i.call(this,l),y=Math.min(m,g)/2,v=Sf(+r.call(this,l),0,y),b=Sf(+s.call(this,l),0,y),x=Sf(+a.call(this,l),0,y),_=Sf(+o.call(this,l),0,y);if(!u)u=d=(0,Qo.Ae)();if(v<=0&&b<=0&&x<=0&&_<=0){u.rect(h,p,m,g)}else{var w=h+m,A=p+g;u.moveTo(h+v,p);u.lineTo(w-b,p);u.bezierCurveTo(w-kf*b,p,w,p+kf*b,w,p+b);u.lineTo(w,A-_);u.bezierCurveTo(w,A-kf*_,w-kf*_,A,w-_,A);u.lineTo(h+x,A);u.bezierCurveTo(h+kf*x,A,h,A-kf*x,h,A-x);u.lineTo(h,p+v);u.bezierCurveTo(h,p+kf*v,h+kf*v,p,h+v,p);u.closePath()}if(d){u=null;return d+""||null}}l.x=function(e){if(arguments.length){t=Ff(e);return l}else{return t}};l.y=function(t){if(arguments.length){e=Ff(t);return l}else{return e}};l.width=function(t){if(arguments.length){n=Ff(t);return l}else{return n}};l.height=function(t){if(arguments.length){i=Ff(t);return l}else{return i}};l.cornerRadius=function(t,e,n,i){if(arguments.length){r=Ff(t);s=e!=null?Ff(e):r;o=n!=null?Ff(n):r;a=i!=null?Ff(i):s;return l}else{return r}};l.context=function(t){if(arguments.length){u=t==null?null:t;return l}else{return u}};return l}function zf(){var t,e,n,i,r=null,s,a,o,u;function l(t,e,n){const i=n/2;if(s){var l=o-e,c=t-a;if(l||c){var f=Math.hypot(l,c),d=(l/=f)*u,h=(c/=f)*u,p=Math.atan2(c,l);r.moveTo(a-d,o-h);r.lineTo(t-l*i,e-c*i);r.arc(t,e,i,p-Math.PI,p);r.lineTo(a+d,o+h);r.arc(a,o,u,p,p+Math.PI)}else{r.arc(t,e,i,0,uf)}r.closePath()}else{s=1}a=t;o=e;u=i}function c(a){var o,u=a.length,c,f=false,d;if(r==null)r=d=(0,Qo.Ae)();for(o=0;o<=u;++o){if(!(ot.x||0,Of=t=>t.y||0,Tf=t=>t.width||0,Nf=t=>t.height||0,Lf=t=>(t.x||0)+(t.width||0),Pf=t=>(t.y||0)+(t.height||0),qf=t=>t.startAngle||0,If=t=>t.endAngle||0,Uf=t=>t.padAngle||0,jf=t=>t.innerRadius||0,Gf=t=>t.outerRadius||0,Yf=t=>t.cornerRadius||0,Wf=t=>$f(t.cornerRadiusTopLeft,t.cornerRadius)||0,Xf=t=>$f(t.cornerRadiusTopRight,t.cornerRadius)||0,Hf=t=>$f(t.cornerRadiusBottomRight,t.cornerRadius)||0,Vf=t=>$f(t.cornerRadiusBottomLeft,t.cornerRadius)||0,Qf=t=>$f(t.size,64),Kf=t=>t.size||1,Zf=t=>!(t.defined===false),Jf=t=>_f(t.shape||"circle");const td=(0,ho.A)().startAngle(qf).endAngle(If).padAngle(Uf).innerRadius(jf).outerRadius(Gf).cornerRadius(Yf),ed=bo().x(Rf).y1(Of).y0(Pf).defined(Zf),nd=bo().y(Of).x1(Rf).x0(Lf).defined(Zf),id=(0,go.A)().x(Rf).y(Of).defined(Zf),rd=Bf().x(Rf).y(Of).width(Tf).height(Nf).cornerRadius(Wf,Xf,Hf,Vf),sd=Vo().type(Jf).size(Qf),ad=zf().x(Rf).y(Of).defined(Zf).size(Kf);function od(t){return t.cornerRadius||t.cornerRadiusTopLeft||t.cornerRadiusTopRight||t.cornerRadiusBottomRight||t.cornerRadiusBottomLeft}function ud(t,e){return td.context(t)(e)}function ld(t,e){const n=e[0],i=n.interpolate||"linear";return(n.orient==="horizontal"?nd:ed).curve(Qc(i,n.orient,n.tension)).context(t)(e)}function cd(t,e){const n=e[0],i=n.interpolate||"linear";return id.curve(Qc(i,n.orient,n.tension)).context(t)(e)}function fd(t,e,n,i){return rd.context(t)(e,n,i)}function dd(t,e){return(e.mark.shape||e.shape).context(t)(e)}function hd(t,e){return sd.context(t)(e)}function pd(t,e){return ad.context(t)(e)}var md=1;function gd(){md=1}function yd(t,e,n){var i=e.clip,r=t._defs,s=e.clip_id||(e.clip_id="clip"+md++),a=r.clipping[s]||(r.clipping[s]={id:s});if((0,p.Tn)(i)){a.path=i(null)}else if(od(n)){a.path=fd(null,n,0,0)}else{a.width=n.width||0;a.height=n.height||0}return"url(#"+s+")"}function vd(t){this.clear();if(t)this.union(t)}vd.prototype={clone(){return new vd(this)},clear(){this.x1=+Number.MAX_VALUE;this.y1=+Number.MAX_VALUE;this.x2=-Number.MAX_VALUE;this.y2=-Number.MAX_VALUE;return this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2},set(t,e,n,i){if(nthis.x2)this.x2=t;if(e>this.y2)this.y2=e;return this},expand(t){this.x1-=t;this.y1-=t;this.x2+=t;this.y2+=t;return this},round(){this.x1=Math.floor(this.x1);this.y1=Math.floor(this.y1);this.x2=Math.ceil(this.x2);this.y2=Math.ceil(this.y2);return this},scale(t){this.x1*=t;this.y1*=t;this.x2*=t;this.y2*=t;return this},translate(t,e){this.x1+=t;this.x2+=t;this.y1+=e;this.y2+=e;return this},rotate(t,e,n){const i=this.rotatedPoints(t,e,n);return this.clear().add(i[0],i[1]).add(i[2],i[3]).add(i[4],i[5]).add(i[6],i[7])},rotatedPoints(t,e,n){var{x1:i,y1:r,x2:s,y2:a}=this,o=Math.cos(t),u=Math.sin(t),l=e-e*o+n*u,c=n-e*u-n*o;return[o*i-u*r+l,u*i+o*r+c,o*i-u*a+l,u*i+o*a+c,o*s-u*r+l,u*s+o*r+c,o*s-u*a+l,u*s+o*a+c]},union(t){if(t.x1this.x2)this.x2=t.x2;if(t.y2>this.y2)this.y2=t.y2;return this},intersect(t){if(t.x1>this.x1)this.x1=t.x1;if(t.y1>this.y1)this.y1=t.y1;if(t.x2=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},alignsWith(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},intersects(t){return t&&!(this.x2t.x2||this.y2t.y2)},contains(t,e){return!(tthis.x2||ethis.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}};function bd(t){this.mark=t;this.bounds=this.bounds||new vd}function xd(t){bd.call(this,t);this.items=this.items||[]}(0,p.B)(xd,bd);class _d{constructor(t){this._pending=0;this._loader=t||fn()}pending(){return this._pending}sanitizeURL(t){const e=this;wd(e);return e._loader.sanitize(t,{context:"href"}).then((t=>{Ad(e);return t})).catch((()=>{Ad(e);return null}))}loadImage(t){const e=this,n=Zo();wd(e);return e._loader.sanitize(t,{context:"image"}).then((t=>{const i=t.href;if(!i||!n)throw{url:i};const r=new n;const s=(0,p.mQ)(t,"crossOrigin")?t.crossOrigin:"anonymous";if(s!=null)r.crossOrigin=s;r.onload=()=>Ad(e);r.onerror=()=>Ad(e);r.src=i;return r})).catch((t=>{Ad(e);return{complete:false,width:0,height:0,src:t&&t.url||""}}))}ready(){const t=this;return new Promise((e=>{function n(i){if(!t.pending())e(i);else setTimeout((()=>{n(true)}),10)}n(false)}))}}function wd(t){t._pending+=1}function Ad(t){t._pending-=1}function kd(t,e,n){if(e.stroke&&e.opacity!==0&&e.strokeOpacity!==0){const i=e.strokeWidth!=null?+e.strokeWidth:1;t.expand(i+(n?Ed(e,i):0))}return t}function Ed(t,e){return t.strokeJoin&&t.strokeJoin!=="miter"?0:e}const Md=uf-1e-8;let Dd,Cd,Fd,Sd,Bd,zd,$d,Rd;const Od=(t,e)=>Dd.add(t,e);const Td=(t,e)=>Od(Cd=t,Fd=e);const Nd=t=>Od(t,Dd.y1);const Ld=t=>Od(Dd.x1,t);const Pd=(t,e)=>Bd*t+$d*e;const qd=(t,e)=>zd*t+Rd*e;const Id=(t,e)=>Od(Pd(t,e),qd(t,e));const Ud=(t,e)=>Td(Pd(t,e),qd(t,e));function jd(t,e){Dd=t;if(e){Sd=e*sf;Bd=Rd=Math.cos(Sd);zd=Math.sin(Sd);$d=-zd}else{Bd=Rd=1;Sd=zd=$d=0}return Gd}const Gd={beginPath(){},closePath(){},moveTo:Ud,lineTo:Ud,rect(t,e,n,i){if(Sd){Id(t+n,e);Id(t+n,e+i);Id(t,e+i);Ud(t,e)}else{Od(t+n,e+i);Td(t,e)}},quadraticCurveTo(t,e,n,i){const r=Pd(t,e),s=qd(t,e),a=Pd(n,i),o=qd(n,i);Yd(Cd,r,a,Nd);Yd(Fd,s,o,Ld);Td(a,o)},bezierCurveTo(t,e,n,i,r,s){const a=Pd(t,e),o=qd(t,e),u=Pd(n,i),l=qd(n,i),c=Pd(r,s),f=qd(r,s);Wd(Cd,a,u,c,Nd);Wd(Fd,o,l,f,Ld);Td(c,f)},arc(t,e,n,i,r,s){i+=Sd;r+=Sd;Cd=n*Math.cos(r)+t;Fd=n*Math.sin(r)+e;if(Math.abs(r-i)>Md){Od(t-n,e-n);Od(t+n,e+n)}else{const a=i=>Od(n*Math.cos(i)+t,n*Math.sin(i)+e);let o,u;a(i);a(r);if(r!==i){i=i%uf;if(i<0)i+=uf;r=r%uf;if(r<0)r+=uf;if(rr;++u,o-=of)a(o)}else{o=i-i%of+of;for(u=0;u<4&&oaf){c=a*a+o*s;if(c>=0){c=Math.sqrt(c);u=(-a+c)/s;l=(-a-c)/s}}else{u=.5*o/a}if(0d)return false;else if(m>f)f=m}else if(h>0){if(m0){t.globalAlpha=n;t.fillStyle=sh(t,e,e.fill);return true}else{return false}}var oh=[];function uh(t,e,n){var i=(i=e.strokeWidth)!=null?i:1;if(i<=0)return false;n*=e.strokeOpacity==null?1:e.strokeOpacity;if(n>0){t.globalAlpha=n;t.strokeStyle=sh(t,e,e.stroke);t.lineWidth=i;t.lineCap=e.strokeCap||"butt";t.lineJoin=e.strokeJoin||"miter";t.miterLimit=e.strokeMiterLimit||10;if(t.setLineDash){t.setLineDash(e.strokeDash||oh);t.lineDashOffset=e.strokeDashOffset||0}return true}else{return false}}function lh(t,e){return t.zindex-e.zindex||t.index-e.index}function ch(t){if(!t.zdirty)return t.zitems;var e=t.items,n=[],i,r,s;for(r=0,s=e.length;r=0;){if(i=e(n[r]))return i}if(n===s){for(n=t.items,r=n.length;--r>=0;){if(!n[r].zindex){if(i=e(n[r]))return i}}}return null}function hh(t){return function(e,n,i){fh(n,(n=>{if(!i||i.intersects(n.bounds)){mh(t,e,n,n)}}))}}function ph(t){return function(e,n,i){if(n.items.length&&(!i||i.intersects(n.bounds))){mh(t,e,n.items[0],n.items)}}}function mh(t,e,n,i){var r=n.opacity==null?1:n.opacity;if(r===0)return;if(t(e,i))return;eh(e,n);if(n.fill&&ah(e,n,r)){e.fill()}if(n.stroke&&uh(e,n,r)){e.stroke()}}function gh(t){t=t||p.vN;return function(e,n,i,r,s,a){i*=e.pixelRatio;r*=e.pixelRatio;return dh(n,(n=>{const o=n.bounds;if(o&&!o.contains(s,a)||!o)return;if(t(e,n,i,r,s,a))return n}))}}function yh(t,e){return function(n,i,r,s){var a=Array.isArray(i)?i[0]:i,o=e==null?a.fill:e,u=a.stroke&&n.isPointInStroke,l,c;if(u){l=a.strokeWidth;c=a.strokeCap;n.lineWidth=l!=null?l:1;n.lineCap=c!=null?c:"butt"}return t(n,i)?false:o&&n.isPointInPath(r,s)||u&&n.isPointInStroke(r,s)}}function vh(t){return gh(yh(t))}function bh(t,e){return"translate("+t+","+e+")"}function xh(t){return"rotate("+t+")"}function _h(t,e){return"scale("+t+","+e+")"}function wh(t){return bh(t.x||0,t.y||0)}function Ah(t){return bh(t.x||0,t.y||0)+(t.angle?" "+xh(t.angle):"")}function kh(t){return bh(t.x||0,t.y||0)+(t.angle?" "+xh(t.angle):"")+(t.scaleX||t.scaleY?" "+_h(t.scaleX||1,t.scaleY||1):"")}function Eh(t,e,n){function i(t,n){t("transform",Ah(n));t("d",e(null,n))}function r(t,n){e(jd(t,n.angle),n);return kd(t,n).translate(n.x||0,n.y||0)}function s(t,n){var i=n.x||0,r=n.y||0,s=n.angle||0;t.translate(i,r);if(s)t.rotate(s*=sf);t.beginPath();e(t,n);if(s)t.rotate(-s);t.translate(-i,-r)}return{type:t,tag:"path",nested:false,attr:i,bound:r,draw:hh(s),pick:vh(s),isect:n||Qd(s)}}var Mh=Eh("arc",ud);function Dh(t,e){var n=t[0].orient==="horizontal"?e[1]:e[0],i=t[0].orient==="horizontal"?"y":"x",r=t.length,s=+Infinity,a,o;while(--r>=0){if(t[r].defined===false)continue;o=Math.abs(t[r][i]-n);if(o=0){if(t[i].defined===false)continue;r=t[i].x-e[0];s=t[i].y-e[1];a=r*r+s*s;if(a=0){if(t[n].defined===false)continue;i=t[n].x-e[0];r=t[n].y-e[1];s=i*i+r*r;i=t[n].size||1;if(s.5&&e<1.5?.5-Math.abs(e-1):0}function Oh(t,e){t("transform",wh(e))}function Th(t,e){const n=Rh(e);t("d",fd(null,e,n,n))}function Nh(t,e){t("class","background");t("aria-hidden",true);Th(t,e)}function Lh(t,e){t("class","foreground");t("aria-hidden",true);if(e.strokeForeground){Th(t,e)}else{t("d","")}}function Ph(t,e,n){const i=e.clip?yd(n,e,e):null;t("clip-path",i)}function qh(t,e){if(!e.clip&&e.items){const n=e.items,i=n.length;for(let e=0;e{const r=e.x||0,s=e.y||0,a=e.strokeForeground,o=e.opacity==null?1:e.opacity;if((e.stroke||e.fill)&&o){Ih(t,e,r,s);eh(t,e);if(e.fill&&ah(t,e,o)){t.fill()}if(e.stroke&&!a&&uh(t,e,o)){t.stroke()}}t.save();t.translate(r,s);if(e.clip)$h(t,e);if(n)n.translate(-r,-s);fh(e,(e=>{if(e.marktype==="group"||i==null||i.includes(e.marktype)){this.draw(t,e,n,i)}}));if(n)n.translate(r,s);t.restore();if(a&&e.stroke&&o){Ih(t,e,r,s);eh(t,e);if(uh(t,e,o)){t.stroke()}}}))}function Wh(t,e,n,i,r,s){if(e.bounds&&!e.bounds.contains(r,s)||!e.items){return null}const a=n*t.pixelRatio,o=i*t.pixelRatio;return dh(e,(u=>{let l,c,f;const d=u.bounds;if(d&&!d.contains(r,s))return;c=u.x||0;f=u.y||0;const h=c+(u.width||0),p=f+(u.height||0),m=u.clip;if(m&&(rh||sp))return;t.save();t.translate(c,f);c=r-c;f=s-f;if(m&&od(u)&&!Gh(t,u,a,o)){t.restore();return null}const g=u.strokeForeground,y=e.interactive!==false;if(y&&g&&u.stroke&&jh(t,u,a,o)){t.restore();return u}l=dh(u,(t=>Xh(t,c,f)?this.pick(t,n,i,c,f):null));if(!l&&y&&(u.fill||!g&&u.stroke)&&Uh(t,u,a,o)){l=u}t.restore();return l||null}))}function Xh(t,e,n){return(t.interactive!==false||t.marktype==="group")&&t.bounds&&t.bounds.contains(e,n)}var Hh={type:"group",tag:"g",nested:false,attr:Oh,bound:qh,draw:Yh,pick:Wh,isect:Zd,content:Ph,background:Nh,foreground:Lh};var Vh={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function Qh(t,e){var n=t.image;if(!n||t.url&&t.url!==n.url){n={complete:false,width:0,height:0};e.loadImage(t.url).then((e=>{t.image=e;t.image.url=t.url}))}return n}function Kh(t,e){return t.width!=null?t.width:!e||!e.width?0:t.aspect!==false&&t.height?t.height*e.width/e.height:e.width}function Zh(t,e){return t.height!=null?t.height:!e||!e.height?0:t.aspect!==false&&t.width?t.width*e.height/e.width:e.height}function Jh(t,e){return t==="center"?e/2:t==="right"?e:0}function tp(t,e){return t==="middle"?e/2:t==="bottom"?e:0}function ep(t,e,n){const i=Qh(e,n),r=Kh(e,i),s=Zh(e,i),a=(e.x||0)-Jh(e.align,r),o=(e.y||0)-tp(e.baseline,s),u=!i.src&&i.toDataURL?i.toDataURL():i.src||"";t("href",u,Vh["xmlns:xlink"],"xlink:href");t("transform",bh(a,o));t("width",r);t("height",s);t("preserveAspectRatio",e.aspect===false?"none":"xMidYMid")}function np(t,e){const n=e.image,i=Kh(e,n),r=Zh(e,n),s=(e.x||0)-Jh(e.align,i),a=(e.y||0)-tp(e.baseline,r);return t.set(s,a,s+i,a+r)}function ip(t,e,n){fh(e,(e=>{if(n&&!n.intersects(e.bounds))return;const i=Qh(e,this);let r=Kh(e,i);let s=Zh(e,i);if(r===0||s===0)return;let a=(e.x||0)-Jh(e.align,r),o=(e.y||0)-tp(e.baseline,s),u,l,c,f;if(e.aspect!==false){l=i.width/i.height;c=e.width/e.height;if(l===l&&c===c&&l!==c){if(c{if(n&&!n.intersects(e.bounds))return;var i=e.opacity==null?1:e.opacity;if(i&&gp(t,e,i)){eh(t,e);t.stroke()}}))}function vp(t,e,n,i){if(!t.isPointInStroke)return false;return gp(t,e,1)&&t.isPointInStroke(n,i)}var bp={type:"rule",tag:"line",nested:false,attr:pp,bound:mp,draw:yp,pick:gh(vp),isect:Jd};var xp=Eh("shape",dd);var _p=Eh("symbol",hd,Kd);const wp=(0,p.EV)();var Ap={height:Fp,measureWidth:Dp,estimateWidth:Ep,width:Ep,canvas:kp};kp(true);function kp(t){Ap.width=t&&Hd?Dp:Ep}function Ep(t,e){return Mp(Rp(t,e),Fp(t))}function Mp(t,e){return~~(.8*t.length*e)}function Dp(t,e){return Fp(t)<=0||!(e=Rp(t,e))?0:Cp(e,Lp(t))}function Cp(t,e){const n=`(${e}) ${t}`;let i=wp.get(n);if(i===undefined){Hd.font=e;i=Hd.measureText(t).width;wp.set(n,i)}return i}function Fp(t){return t.fontSize!=null?+t.fontSize||0:11}function Sp(t){return t.lineHeight!=null?t.lineHeight:Fp(t)+2}function Bp(t){return(0,p.cy)(t)?t.length>1?t:t[0]:t}function zp(t){return Bp(t.lineBreak&&t.text&&!(0,p.cy)(t.text)?t.text.split(t.lineBreak):t.text)}function $p(t){const e=zp(t);return((0,p.cy)(e)?e.length-1:0)*Sp(t)}function Rp(t,e){const n=e==null?"":(e+"").trim();return t.limit>0&&n.length?Tp(t,n):n}function Op(t){if(Ap.width===Dp){const e=Lp(t);return t=>Cp(t,e)}else if(Ap.width===Ep){const e=Fp(t);return t=>Mp(t,e)}else{return e=>Ap.width(t,e)}}function Tp(t,e){var n=+t.limit,i=Op(t);if(i(e)>>1;if(i(e.slice(u))>n)a=u+1;else o=u}return r+e.slice(a)}else{while(a>>1);if(i(e.slice(0,u))Math.max(t,Ap.width(e,n))),0)}else{f=Ap.width(e,c)}if(r==="center"){u-=f/2}else if(r==="right"){u-=f}else;t.set(u+=a,l+=o,u+f,l+i);if(e.angle&&!n){t.rotate(e.angle*sf,a,o)}else if(n===2){return t.rotatedPoints(e.angle*sf,a,o)}return t}function Yp(t,e,n){fh(e,(e=>{var i=e.opacity==null?1:e.opacity,r,s,a,o,u,l,c;if(n&&!n.intersects(e.bounds)||i===0||e.fontSize<=0||e.text==null||e.text.length===0)return;t.font=Lp(e);t.textAlign=e.align||"left";r=Up(e);s=r.x1,a=r.y1;if(e.angle){t.save();t.translate(s,a);t.rotate(e.angle*sf);s=a=0}s+=e.dx||0;a+=(e.dy||0)+Pp(e);l=zp(e);eh(t,e);if((0,p.cy)(l)){u=Sp(e);for(o=0;oe)t.removeChild(n[--i]);return t}function cm(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function fm(t,e){const n=e.getBoundingClientRect();return[t.clientX-n.left-(e.clientLeft||0),t.clientY-n.top-(e.clientTop||0)]}function dm(t,e,n,i){var r=t&&t.mark,s,a;if(r&&(s=Qp[r.marktype]).tip){a=fm(e,n);a[0]-=i[0];a[1]-=i[1];while(t=t.mark.group){a[0]-=t.x||0;a[1]-=t.y||0}t=s.tip(r.items,a)}return t}class hm{constructor(t,e){this._active=null;this._handlers={};this._loader=t||fn();this._tooltip=e||pm}initialize(t,e,n){this._el=t;this._obj=n||null;return this.origin(e)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}origin(t){if(arguments.length){this._origin=t||[0,0];return this}else{return this._origin.slice()}}scene(t){if(!arguments.length)return this._scene;this._scene=t;return this}on(){}off(){}_handlerIndex(t,e,n){for(let i=t?t.length:0;--i>=0;){if(t[i].type===e&&(!n||t[i].handler===n)){return i}}return-1}handlers(t){const e=this._handlers,n=[];if(t){n.push(...e[this.eventName(t)])}else{for(const t in e){n.push(...e[t])}}return n}eventName(t){const e=t.indexOf(".");return e<0?t:t.slice(0,e)}handleHref(t,e,n){this._loader.sanitize(n,{context:"href"}).then((e=>{const n=new MouseEvent(t.type,t),i=am(null,"a");for(const t in e)i.setAttribute(t,e[t]);i.dispatchEvent(n)})).catch((()=>{}))}handleTooltip(t,e,n){if(e&&e.tooltip!=null){e=dm(e,t,this.canvas(),this._origin);const i=n&&e&&e.tooltip||null;this._tooltip.call(this._obj,this,t,e,i)}}getItemBoundingClientRect(t){const e=this.canvas();if(!e)return;const n=e.getBoundingClientRect(),i=this._origin,r=t.bounds,s=r.width(),a=r.height();let o=r.x1+i[0]+n.left,u=r.y1+i[1]+n.top;while(t.mark&&(t=t.mark.group)){o+=t.x||0;u+=t.y||0}return{x:o,y:u,width:s,height:a,left:o,top:u,right:o+s,bottom:u+a}}}function pm(t,e,n,i){t.element().setAttribute("title",i||"")}class mm{constructor(t){this._el=null;this._bgcolor=null;this._loader=new _d(t)}initialize(t,e,n,i,r){this._el=t;return this.resize(e,n,i,r)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}background(t){if(arguments.length===0)return this._bgcolor;this._bgcolor=t;return this}resize(t,e,n,i){this._width=t;this._height=e;this._origin=n||[0,0];this._scale=i||1;return this}dirty(){}render(t,e){const n=this;n._call=function(){n._render(t,e)};n._call();n._call=null;return n}_render(){}renderAsync(t,e){const n=this.render(t,e);return this._ready?this._ready.then((()=>n)):Promise.resolve(n)}_load(t,e){var n=this,i=n._loader[t](e);if(!n._ready){const t=n._call;n._ready=n._loader.ready().then((e=>{if(e)t();n._ready=null}))}return i}sanitizeURL(t){return this._load("sanitizeURL",t)}loadImage(t){return this._load("loadImage",t)}}const gm="keydown";const ym="keypress";const vm="keyup";const bm="dragenter";const xm="dragleave";const _m="dragover";const wm="pointerdown";const Am="pointerup";const km="pointermove";const Em="pointerout";const Mm="pointerover";const Dm="mousedown";const Cm="mouseup";const Fm="mousemove";const Sm="mouseout";const Bm="mouseover";const zm="click";const $m="dblclick";const Rm="wheel";const Om="mousewheel";const Tm="touchstart";const Nm="touchmove";const Lm="touchend";const Pm=[gm,ym,vm,bm,xm,_m,wm,Am,km,Em,Mm,Dm,Cm,Fm,Sm,Bm,zm,$m,Rm,Om,Tm,Nm,Lm];const qm=km;const Im=Sm;const Um=zm;class jm extends hm{constructor(t,e){super(t,e);this._down=null;this._touch=null;this._first=true;this._events={};this.events=Pm;this.pointermove=Hm([km,Fm],[Mm,Bm],[Em,Sm]);this.dragover=Hm([_m],[bm],[xm]),this.pointerout=Vm([Em,Sm]);this.dragleave=Vm([xm])}initialize(t,e,n){this._canvas=t&&om(t,"canvas");[zm,Dm,wm,km,Em,xm].forEach((t=>Ym(this,t)));return super.initialize(t,e,n)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(t){this.fire(Om,t)}pointerdown(t){this._down=this._active;this.fire(wm,t)}mousedown(t){this._down=this._active;this.fire(Dm,t)}click(t){if(this._down===this._active){this.fire(zm,t);this._down=null}}touchstart(t){this._touch=this.pickEvent(t.changedTouches[0]);if(this._first){this._active=this._touch;this._first=false}this.fire(Tm,t,true)}touchmove(t){this.fire(Nm,t,true)}touchend(t){this.fire(Lm,t,true);this._touch=null}fire(t,e,n){const i=n?this._touch:this._active,r=this._handlers[t];e.vegaType=t;if(t===Um&&i&&i.href){this.handleHref(e,i,i.href)}else if(t===qm||t===Im){this.handleTooltip(e,i,t!==Im)}if(r){for(let t=0,n=r.length;t=0){i.splice(r,1)}return this}pickEvent(t){const e=fm(t,this._canvas),n=this._origin;return this.pick(this._scene,e[0],e[1],e[0]-n[0],e[1]-n[1])}pick(t,e,n,i,r){const s=this.context(),a=Qp[t.marktype];return a.pick.call(this,s,t,e,n,i,r)}}const Gm=t=>t===Tm||t===Nm||t===Lm?[Tm,Nm,Lm]:[t];function Ym(t,e){Gm(e).forEach((e=>Wm(t,e)))}function Wm(t,e){const n=t.canvas();if(n&&!t._events[e]){t._events[e]=1;n.addEventListener(e,t[e]?n=>t[e](n):n=>t.fire(e,n))}}function Xm(t,e,n){e.forEach((e=>t.fire(e,n)))}function Hm(t,e,n){return function(i){const r=this._active,s=this.pickEvent(i);if(s===r){Xm(this,t,i)}else{if(!r||!r.exit){Xm(this,n,i)}this._active=s;Xm(this,e,i);Xm(this,t,i)}}}function Vm(t){return function(e){Xm(this,t,e);this._active=null}}function Qm(){return typeof window!=="undefined"?window.devicePixelRatio||1:1}function Km(t,e,n,i,r,s){const a=typeof HTMLElement!=="undefined"&&t instanceof HTMLElement&&t.parentNode!=null,o=t.getContext("2d"),u=a?Qm():r;t.width=e*u;t.height=n*u;for(const l in s){o[l]=s[l]}if(a&&u!==1){t.style.width=e+"px";t.style.height=n+"px"}o.pixelRatio=u;o.setTransform(u,0,0,u,u*i[0],u*i[1]);return t}class Zm extends mm{constructor(t){super(t);this._options={};this._redraw=false;this._dirty=new vd;this._tempb=new vd}initialize(t,e,n,i,r,s){this._options=s||{};this._canvas=this._options.externalContext?null:Ko(1,1,this._options.type);if(t&&this._canvas){lm(t,0).appendChild(this._canvas);this._canvas.setAttribute("class","marks")}return super.initialize(t,e,n,i,r)}resize(t,e,n,i){super.resize(t,e,n,i);if(this._canvas){Km(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context)}else{const t=this._options.externalContext;if(!t)(0,p.z3)("CanvasRenderer is missing a valid canvas or context");t.scale(this._scale,this._scale);t.translate(this._origin[0],this._origin[1])}this._redraw=true;return this}canvas(){return this._canvas}context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)}dirty(t){const e=this._tempb.clear().union(t.bounds);let n=t.mark.group;while(n){e.translate(n.x||0,n.y||0);n=n.mark.group}this._dirty.union(e)}_render(t,e){const n=this.context(),i=this._origin,r=this._width,s=this._height,a=this._dirty,o=Jm(i,r,s);n.save();const u=this._redraw||a.empty()?(this._redraw=false,o.expand(1)):tg(n,o.intersect(a),i);this.clear(-i[0],-i[1],r,s);this.draw(n,t,u,e);n.restore();a.clear();return this}draw(t,e,n,i){if(e.marktype!=="group"&&i!=null&&!i.includes(e.marktype)){return}const r=Qp[e.marktype];if(e.clip)zh(t,e);r.draw.call(this,t,e,n,i);if(e.clip)t.restore()}clear(t,e,n,i){const r=this._options,s=this.context();if(r.type!=="pdf"&&!r.externalContext){s.clearRect(t,e,n,i)}if(this._bgcolor!=null){s.fillStyle=this._bgcolor;s.fillRect(t,e,n,i)}}}const Jm=(t,e,n)=>(new vd).set(0,0,e,n).translate(-t[0],-t[1]);function tg(t,e,n){e.expand(1).round();if(t.pixelRatio%1){e.scale(t.pixelRatio).round().scale(1/t.pixelRatio)}e.translate(-(n[0]%1),-(n[1]%1));t.beginPath();t.rect(e.x1,e.y1,e.width(),e.height());t.clip();return e}class eg extends hm{constructor(t,e){super(t,e);const n=this;n._hrefHandler=ng(n,((t,e)=>{if(e&&e.href)n.handleHref(t,e,e.href)}));n._tooltipHandler=ng(n,((t,e)=>{n.handleTooltip(t,e,t.type!==Im)}))}initialize(t,e,n){let i=this._svg;if(i){i.removeEventListener(Um,this._hrefHandler);i.removeEventListener(qm,this._tooltipHandler);i.removeEventListener(Im,this._tooltipHandler)}this._svg=i=t&&om(t,"svg");if(i){i.addEventListener(Um,this._hrefHandler);i.addEventListener(qm,this._tooltipHandler);i.addEventListener(Im,this._tooltipHandler)}return super.initialize(t,e,n)}canvas(){return this._svg}on(t,e){const n=this.eventName(t),i=this._handlers,r=this._handlerIndex(i[n],t,e);if(r<0){const r={type:t,handler:e,listener:ng(this,e)};(i[n]||(i[n]=[])).push(r);if(this._svg){this._svg.addEventListener(n,r.listener)}}return this}off(t,e){const n=this.eventName(t),i=this._handlers[n],r=this._handlerIndex(i,t,e);if(r>=0){if(this._svg){this._svg.removeEventListener(n,i[r].listener)}i.splice(r,1)}return this}}const ng=(t,e)=>n=>{let i=n.target.__data__;i=Array.isArray(i)?i[0]:i;n.vegaType=n.type;e.call(t._obj,n,i)};const ig="aria-hidden";const rg="aria-label";const sg="role";const ag="aria-roledescription";const og="graphics-object";const ug="graphics-symbol";const lg=(t,e,n)=>({[sg]:t,[ag]:e,[rg]:n||undefined});const cg=(0,p.M1)(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]);const fg={axis:{desc:"axis",caption:vg},legend:{desc:"legend",caption:bg},"title-text":{desc:"title",caption:t=>`Title text '${yg(t)}'`},"title-subtitle":{desc:"subtitle",caption:t=>`Subtitle text '${yg(t)}'`}};const dg={ariaRole:sg,ariaRoleDescription:ag,description:rg};function hg(t,e){const n=e.aria===false;t(ig,n||undefined);if(n||e.description==null){for(const e in dg){t(dg[e],undefined)}}else{const n=e.mark.marktype;t(rg,e.description);t(sg,e.ariaRole||(n==="group"?og:ug));t(ag,e.ariaRoleDescription||`${n} mark`)}}function pg(t){return t.aria===false?{[ig]:true}:cg[t.role]?null:fg[t.role]?gg(t,fg[t.role]):mg(t)}function mg(t){const e=t.marktype;const n=e==="group"||e==="text"||t.items.some((t=>t.description!=null&&t.aria!==false));return lg(n?og:ug,`${e} mark container`,t.description)}function gg(t,e){try{const n=t.items[0],i=e.caption||(()=>"");return lg(e.role||ug,e.desc,n.description||i(n))}catch(n){return null}}function yg(t){return(0,p.YO)(t.text).join(" ")}function vg(t){const e=t.datum,n=t.orient,i=e.title?xg(t):null,r=t.context,s=r.scales[e.scale].value,a=r.dataflow.locale(),o=s.type,u=n==="left"||n==="right"?"Y":"X";return`${u}-axis`+(i?` titled '${i}'`:"")+` for a ${Vl(o)?"discrete":o} scale`+` with ${Ic(a,s,t)}`}function bg(t){const e=t.datum,n=e.title?xg(t):null,i=`${e.type||""} legend`.trim(),r=e.scales,s=Object.keys(r),a=t.context,o=a.scales[r[s[0]]].value,u=a.dataflow.locale();return wg(i)+(n?` titled '${n}'`:"")+` for ${_g(s)}`+` with ${Ic(u,o,t)}`}function xg(t){try{return(0,p.YO)((0,p.se)(t.items).items[0].text).join(" ")}catch(e){return null}}function _g(t){t=t.map((t=>t+(t==="fill"||t==="stroke"?" color":"")));return t.length<2?t[0]:t.slice(0,-1).join(", ")+" and "+(0,p.se)(t)}function wg(t){return t.length?t[0].toUpperCase()+t.slice(1):t}const Ag=t=>(t+"").replace(/&/g,"&").replace(//g,">");const kg=t=>Ag(t).replace(/"/g,""").replace(/\t/g," ").replace(/\n/g," ").replace(/\r/g," ");function Eg(){let t="",e="",n="";const i=[],r=()=>e=n="",s=s=>{if(e){t+=`${e}>${n}`;r()}i.push(s)},a=(t,n)=>{if(n!=null)e+=` ${t}="${kg(n)}"`;return o},o={open(t){s(t);e="<"+t;for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r${n}`:"/>")}else{t+=``}r();return o},attr:a,text:t=>(n+=Ag(t),o),toString:()=>t};return o}const Mg=t=>Dg(Eg(),t)+"";function Dg(t,e){t.open(e.tagName);if(e.hasAttributes()){const n=e.attributes,i=n.length;for(let e=0;e{t.dirty=e}))}if(i.zdirty)continue;if(n.exit){if(s.nested&&i.items.length){u=i.items[0];if(u._svg)this._update(s,u._svg,u)}else if(n._svg){u=n._svg.parentNode;if(u)u.removeChild(n._svg)}n._svg=null;continue}n=s.nested?i.items[0]:n;if(n._update===e)continue;if(!n._svg||!n._svg.ownerSVGElement){this._dirtyAll=false;Og(n,e)}else{this._update(s,n._svg,n)}n._update=e}return!this._dirtyAll}mark(t,e,n,i){if(!this.isDirty(e)){return e._svg}const r=this._svg,s=e.marktype,a=Qp[s],o=e.interactive===false?"none":null,u=a.tag==="g";const l=Pg(e,t,n,"g",r);if(s!=="group"&&i!=null&&!i.includes(s)){lm(l,0);return e._svg}l.setAttribute("class",cm(e));const c=pg(e);for(const p in c)Xg(l,p,c[p]);if(!u){Xg(l,"pointer-events",o)}Xg(l,"clip-path",e.clip?yd(this,e,e.group):null);let f=null,d=0;const h=t=>{const e=this.isDirty(t),n=Pg(t,l,f,a.tag,r);if(e){this._update(a,n,t);if(u)Lg(this,n,t,i)}f=n;++d};if(a.nested){if(e.items.length)h(e.items[0])}else{fh(e,h)}lm(l,d);return l}_update(t,e,n){Ig=e;Ug=e.__values__;hg(Gg,n);t.attr(Gg,n,this);const i=jg[t.type];if(i)i.call(this,t,e,n);if(Ig)this.style(Ig,n)}style(t,e){if(e==null)return;for(const n in Cg){let i=n==="font"?Np(e):e[n];if(i===Ug[n])continue;const r=Cg[n];if(i==null){t.removeAttribute(r)}else{if(Yc(i)){i=Wc(i,this._defs.gradient,Vg())}t.setAttribute(r,i+"")}Ug[n]=i}for(const n in Fg){Yg(t,Fg[n],e[n])}}defs(){const t=this._svg,e=this._defs;let n=e.el,i=0;for(const r in e.gradient){if(!n)e.el=n=um(t,Bg+1,"defs",$g);i=Tg(n,e.gradient[r],i)}for(const r in e.clipping){if(!n)e.el=n=um(t,Bg+1,"defs",$g);i=Ng(n,e.clipping[r],i)}if(n){i===0?(t.removeChild(n),e.el=null):lm(n,i)}}_clearDefs(){const t=this._defs;t.gradient={};t.clipping={}}}function Og(t,e){for(;t&&t.dirty!==e;t=t.mark.group){t.dirty=e;if(t.mark&&t.mark.dirty!==e){t.mark.dirty=e}else return}}function Tg(t,e,n){let i,r,s;if(e.gradient==="radial"){let i=um(t,n++,"pattern",$g);Wg(i,{id:Gc+e.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"});i=um(i,0,"rect",$g);Wg(i,{width:1,height:1,fill:`url(${Vg()}#${e.id})`});t=um(t,n++,"radialGradient",$g);Wg(t,{id:e.id,fx:e.x1,fy:e.y1,fr:e.r1,cx:e.x2,cy:e.y2,r:e.r2})}else{t=um(t,n++,"linearGradient",$g);Wg(t,{id:e.id,x1:e.x1,x2:e.x2,y1:e.y1,y2:e.y2})}for(i=0,r=e.stops.length;i{r=t.mark(e,n,r,i);++s}));lm(e,1+s)}function Pg(t,e,n,i,r){let s=t._svg,a;if(!s){a=e.ownerDocument;s=am(a,i,$g);t._svg=s;if(t.mark){s.__data__=t;s.__values__={fill:"default"};if(i==="g"){const e=am(a,"path",$g);s.appendChild(e);e.__data__=t;const n=am(a,"g",$g);s.appendChild(n);n.__data__=t;const i=am(a,"path",$g);s.appendChild(i);i.__data__=t;i.__values__={fill:"default"}}}}if(s.ownerSVGElement!==r||qg(s,n)){e.insertBefore(s,n?n.nextSibling:e.firstChild)}return s}function qg(t,e){return t.parentNode&&t.parentNode.childNodes.length>1&&t.previousSibling!=e}let Ig=null,Ug=null;const jg={group(t,e,n){const i=Ig=e.childNodes[2];Ug=i.__values__;t.foreground(Gg,n,this);Ug=e.__values__;Ig=e.childNodes[1];t.content(Gg,n,this);const r=Ig=e.childNodes[0];t.background(Gg,n,this);const s=n.mark.interactive===false?"none":null;if(s!==Ug.events){Xg(i,"pointer-events",s);Xg(r,"pointer-events",s);Ug.events=s}if(n.strokeForeground&&n.stroke){const t=n.fill;Xg(i,"display",null);this.style(r,n);Xg(r,"stroke",null);if(t)n.fill=null;Ug=i.__values__;this.style(i,n);if(t)n.fill=t;Ig=null}else{Xg(i,"display","none")}},image(t,e,n){if(n.smooth===false){Yg(e,"image-rendering","optimizeSpeed");Yg(e,"image-rendering","pixelated")}else{Yg(e,"image-rendering",null)}},text(t,e,n){const i=zp(n);let r,s,a,o;if((0,p.cy)(i)){s=i.map((t=>Rp(n,t)));r=s.join("\n");if(r!==Ug.text){lm(e,0);a=e.ownerDocument;o=Sp(n);s.forEach(((t,i)=>{const r=am(a,"tspan",$g);r.__data__=n;r.textContent=t;if(i){r.setAttribute("x",0);r.setAttribute("dy",o)}e.appendChild(r)}));Ug.text=r}}else{s=Rp(n,i);if(s!==Ug.text){e.textContent=s;Ug.text=s}}Xg(e,"font-family",Np(n));Xg(e,"font-size",Fp(n)+"px");Xg(e,"font-style",n.fontStyle);Xg(e,"font-variant",n.fontVariant);Xg(e,"font-weight",n.fontWeight)}};function Gg(t,e,n){if(e===Ug[t])return;if(n){Hg(Ig,t,e,n)}else{Xg(Ig,t,e)}Ug[t]=e}function Yg(t,e,n){if(n!==Ug[e]){if(n==null){t.style.removeProperty(e)}else{t.style.setProperty(e,n+"")}Ug[e]=n}}function Wg(t,e){for(const n in e){Xg(t,n,e[n])}}function Xg(t,e,n){if(n!=null){t.setAttribute(e,n)}else{t.removeAttribute(e)}}function Hg(t,e,n,i){if(n!=null){t.setAttributeNS(i,e,n)}else{t.removeAttributeNS(i,e)}}function Vg(){let t;return typeof window==="undefined"?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}class Qg extends mm{constructor(t){super(t);this._text=null;this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(t){const e=Eg();e.open("svg",(0,p.X$)({},Vh,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;if(n&&n!=="transparent"&&n!=="none"){e.open("rect",{width:this._width,height:this._height,fill:n}).close()}e.open("g",Sg,{transform:"translate("+this._origin+")"});this.mark(e,t);e.close();this.defs(e);this._text=e.close()+"";return this}mark(t,e){const n=Qp[e.marktype],i=n.tag,r=[hg,n.attr];t.open("g",{class:cm(e),"clip-path":e.clip?yd(this,e,e.group):null},pg(e),{"pointer-events":i!=="g"&&e.interactive===false?"none":null});const s=s=>{const a=this.href(s);if(a)t.open("a",a);t.open(i,this.attr(e,s,r,i!=="g"?i:null));if(i==="text"){const e=zp(s);if((0,p.cy)(e)){const n={x:0,dy:Sp(s)};for(let i=0;ithis.mark(t,e)));t.close();if(i&&a){if(r)s.fill=null;s.stroke=a;t.open("path",this.attr(e,s,n.foreground,"bgrect")).close();if(r)s.fill=r}else{t.open("path",this.attr(e,s,n.foreground,"bgfore")).close()}}t.close();if(a)t.close()};if(n.nested){if(e.items&&e.items.length)s(e.items[0])}else{fh(e,s)}return t.close()}href(t){const e=t.href;let n;if(e){if(n=this._hrefs&&this._hrefs[e]){return n}else{this.sanitizeURL(e).then((t=>{t["xlink:href"]=t.href;t.href=null;(this._hrefs||(this._hrefs={}))[e]=t}))}}return null}attr(t,e,n,i){const r={},s=(t,e,n,i)=>{r[i||t]=e};if(Array.isArray(n)){n.forEach((t=>t(s,e,this)))}else{n(s,e,this)}if(i){Kg(r,e,t,i,this._defs)}return r}defs(t){const e=this._defs.gradient,n=this._defs.clipping,i=Object.keys(e).length+Object.keys(n).length;if(i===0)return;t.open("defs");for(const r in e){const n=e[r],i=n.stops;if(n.gradient==="radial"){t.open("pattern",{id:Gc+r,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"});t.open("rect",{width:"1",height:"1",fill:"url(#"+r+")"}).close();t.close();t.open("radialGradient",{id:r,fx:n.x1,fy:n.y1,fr:n.r1,cx:n.x2,cy:n.y2,r:n.r2})}else{t.open("linearGradient",{id:r,x1:n.x1,x2:n.x2,y1:n.y1,y2:n.y2})}for(let e=0;e!Zg.svgMarkTypes.includes(t)));this._svgRenderer.render(t,Zg.svgMarkTypes);this._canvasRenderer.render(t,i)}resize(t,e,n,i){super.resize(t,e,n,i);this._svgRenderer.resize(t,e,n,i);this._canvasRenderer.resize(t,e,n,i);return this}background(t){if(Zg.svgOnTop){this._canvasRenderer.background(t)}else{this._svgRenderer.background(t)}return this}}class ey extends jm{constructor(t,e){super(t,e)}initialize(t,e,n){const i=um(um(t,0,"div"),Zg.svgOnTop?0:1,"div");return super.initialize(i,e,n)}}const ny="canvas";const iy="hybrid";const ry="png";const sy="svg";const ay="none";const oy={Canvas:ny,PNG:ry,SVG:sy,Hybrid:iy,None:ay};const uy={};uy[ny]=uy[ry]={renderer:Zm,headless:Zm,handler:jm};uy[sy]={renderer:Rg,headless:Qg,handler:eg};uy[iy]={renderer:ty,headless:ty,handler:ey};uy[ay]={};function ly(t,e){t=String(t||"").toLowerCase();if(arguments.length>1){uy[t]=e;return this}else{return uy[t]}}function cy(t,e,n){const i=[],r=(new vd).union(e),s=t.marktype;return s?fy(t,r,n,i):s==="group"?hy(t,r,n,i):(0,p.z3)("Intersect scene must be mark node or group item.")}function fy(t,e,n,i){if(dy(t,e,n)){const r=t.items,s=t.marktype,a=r.length;let o=0;if(s==="group"){for(;o=0;s--){if(n[s]!=i[s])return false}for(s=n.length-1;s>=0;s--){r=n[s];if(!vy(t[r],e[r],r))return false}return typeof t===typeof e}function _y(){gd();jc()}const wy="top";const Ay="left";const ky="right";const Ey="bottom";const My="top-left";const Dy="top-right";const Cy="bottom-left";const Fy="bottom-right";const Sy="start";const By="middle";const zy="end";const $y="x";const Ry="y";const Oy="group";const Ty="axis";const Ny="title";const Ly="frame";const Py="scope";const qy="legend";const Iy="row-header";const Uy="row-footer";const jy="row-title";const Gy="column-header";const Yy="column-footer";const Wy="column-title";const Xy="padding";const Hy="symbol";const Vy="fit";const Qy="fit-x";const Ky="fit-y";const Zy="pad";const Jy="none";const tv="all";const ev="each";const nv="flush";const iv="column";const rv="row";function sv(t){zi.call(this,null,t)}(0,p.B)(sv,zi,{transform(t,e){const n=e.dataflow,i=t.mark,r=i.marktype,s=Qp[r],a=s.bound;let o=i.bounds,u;if(s.nested){if(i.items.length)n.dirty(i.items[0]);o=av(i,a);i.items.forEach((t=>{t.bounds.clear().union(o)}))}else if(r===Oy||t.modified()){e.visit(e.MOD,(t=>n.dirty(t)));o.clear();i.items.forEach((t=>o.union(av(t,a))));switch(i.role){case Ty:case qy:case Ny:e.reflow()}}else{u=e.changed(e.REM);e.visit(e.ADD,(t=>{o.union(av(t,a))}));e.visit(e.MOD,(t=>{u=u||o.alignsWith(t.bounds);n.dirty(t);o.union(av(t,a))}));if(u){o.clear();i.items.forEach((t=>o.union(t.bounds)))}}gy(i);return e.modifies("bounds")}});function av(t,e,n){return e(t.bounds.clear(),t,n)}const ov=":vega_identifier:";function uv(t){zi.call(this,0,t)}uv.Definition={type:"Identifier",metadata:{modifies:true},params:[{name:"as",type:"string",required:true}]};(0,p.B)(uv,zi,{transform(t,e){const n=lv(e.dataflow),i=t.as;let r=n.value;e.visit(e.ADD,(t=>t[i]=t[i]||++r));n.set(this.value=r);return e}});function lv(t){return t._signals[ov]||(t._signals[ov]=t.add(0))}function cv(t){zi.call(this,null,t)}(0,p.B)(cv,zi,{transform(t,e){let n=this.value;if(!n){n=e.dataflow.scenegraph().mark(t.markdef,fv(t),t.index);n.group.context=t.context;if(!t.context.group)t.context.group=n.group;n.source=this.source;n.clip=t.clip;n.interactive=t.interactive;this.value=n}const i=n.marktype===Oy?xd:bd;e.visit(e.ADD,(t=>i.call(t,n)));if(t.modified("clip")||t.modified("interactive")){n.clip=t.clip;n.interactive=!!t.interactive;n.zdirty=true;e.reflow()}n.items=e.source;return e}});function fv(t){const e=t.groups,n=t.parent;return e&&e.size===1?e.get(Object.keys(e.object)[0]):e&&n?e.lookup(n):null}function dv(t){zi.call(this,null,t)}const hv={parity:t=>t.filter(((t,e)=>e%2?t.opacity=0:1)),greedy:(t,e)=>{let n;return t.filter(((t,i)=>!i||!pv(n.bounds,t.bounds,e)?(n=t,1):t.opacity=0))}};const pv=(t,e,n)=>n>Math.max(e.x1-t.x2,t.x1-e.x2,e.y1-t.y2,t.y1-e.y2);const mv=(t,e)=>{for(var n=1,i=t.length,r=t[0].bounds,s;n{const e=t.bounds;return e.width()>1&&e.height()>1};const yv=(t,e,n)=>{var i=t.range(),r=new vd;if(e===wy||e===Ey){r.set(i[0],-Infinity,i[1],+Infinity)}else{r.set(-Infinity,i[0],+Infinity,i[1])}r.expand(n||1);return t=>r.encloses(t.bounds)};const vv=t=>{t.forEach((t=>t.opacity=1));return t};const bv=(t,e)=>t.reflow(e.modified()).modifies("opacity");(0,p.B)(dv,zi,{transform(t,e){const n=hv[t.method]||hv.parity,i=t.separation||0;let r=e.materialize(e.SOURCE).source,s,a;if(!r||!r.length)return;if(!t.method){if(t.modified("method")){vv(r);e=bv(e,t)}return e}r=r.filter(gv);if(!r.length)return;if(t.sort){r=r.slice().sort(t.sort)}s=vv(r);e=bv(e,t);if(s.length>=3&&mv(s,i)){do{s=n(s,i)}while(s.length>=3&&mv(s,i));if(s.length<3&&!(0,p.se)(r).opacity){if(s.length>1)(0,p.se)(s).opacity=0;(0,p.se)(r).opacity=1}}if(t.boundScale&&t.boundTolerance>=0){a=yv(t.boundScale,t.boundOrient,+t.boundTolerance);r.forEach((t=>{if(!a(t))t.opacity=0}))}const o=s[0].mark.bounds.clear();r.forEach((t=>{if(t.opacity)o.union(t.bounds)}));return e}});function xv(t){zi.call(this,null,t)}(0,p.B)(xv,zi,{transform(t,e){const n=e.dataflow;e.visit(e.ALL,(t=>n.dirty(t)));if(e.fields&&e.fields["zindex"]){const t=e.source&&e.source[0];if(t)t.mark.zdirty=true}}});const _v=new vd;function wv(t,e,n){return t[e]===n?0:(t[e]=n,1)}function Av(t){var e=t.items[0].orient;return e===Ay||e===ky}function kv(t){let e=+t.grid;return[t.ticks?e++:-1,t.labels?e++:-1,e+ +t.domain]}function Ev(t,e,n,i){var r=e.items[0],s=r.datum,a=r.translate!=null?r.translate:.5,o=r.orient,u=kv(s),l=r.range,c=r.offset,f=r.position,d=r.minExtent,h=r.maxExtent,p=s.title&&r.items[u[2]].items[0],m=r.titlePadding,g=r.bounds,y=p&&$p(p),v=0,b=0,x,_;_v.clear().union(g);g.clear();if((x=u[0])>-1)g.union(r.items[x].bounds);if((x=u[1])>-1)g.union(r.items[x].bounds);switch(o){case wy:v=f||0;b=-c;_=Math.max(d,Math.min(h,-g.y1));g.add(0,-_).add(l,0);if(p)Mv(t,p,_,m,y,0,-1,g);break;case Ay:v=-c;b=f||0;_=Math.max(d,Math.min(h,-g.x1));g.add(-_,0).add(0,l);if(p)Mv(t,p,_,m,y,1,-1,g);break;case ky:v=n+c;b=f||0;_=Math.max(d,Math.min(h,g.x2));g.add(0,0).add(_,l);if(p)Mv(t,p,_,m,y,1,1,g);break;case Ey:v=f||0;b=i+c;_=Math.max(d,Math.min(h,g.y2));g.add(0,0).add(l,_);if(p)Mv(t,p,_,m,0,0,1,g);break;default:v=r.x;b=r.y}kd(g.translate(v,b),r);if(wv(r,"x",v+a)|wv(r,"y",b+a)){r.bounds=_v;t.dirty(r);r.bounds=g;t.dirty(r)}return r.mark.bounds.clear().union(g)}function Mv(t,e,n,i,r,s,a,o){const u=e.bounds;if(e.auto){const o=a*(n+r+i);let l=0,c=0;t.dirty(e);s?l=(e.x||0)-(e.x=o):c=(e.y||0)-(e.y=o);e.mark.bounds.clear().union(u.translate(-l,-c));t.dirty(e)}o.union(u)}const Dv=(t,e)=>Math.floor(Math.min(t,e));const Cv=(t,e)=>Math.ceil(Math.max(t,e));function Fv(t){var e=t.items,n=e.length,i=0,r,s;const a={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;i1){for(A=0;A0)b[A]+=S/2}}if(o&&zv(n.center,rv)&&c!==1){for(A=0;A0)x[A]+=B/2}}for(A=0;Ar){t.warn("Grid headers exceed limit: "+r);e=e.slice(0,r)}m+=s;for(v=0,x=e.length;v=0&&(A=n[b])==null;b-=d);if(o){k=h==null?A.x:Math.round(A.bounds.x1+h*A.bounds.width());E=m}else{k=m;E=h==null?A.y:Math.round(A.bounds.y1+h*A.bounds.height())}_.union(w.bounds.translate(k-(w.x||0),E-(w.y||0)));w.x=k;w.y=E;t.dirty(w);g=a(g,_[l])}return g}function Pv(t,e,n,i,r,s){if(!e)return;t.dirty(e);var a=n,o=n;i?a=Math.round(r.x1+s*r.width()):o=Math.round(r.y1+s*r.height());e.bounds.translate(a-(e.x||0),o-(e.y||0));e.mark.bounds.clear().union(e.bounds);e.x=a;e.y=o;t.dirty(e)}function qv(t,e){const n=t[e]||{};return(e,i)=>n[e]!=null?n[e]:t[e]!=null?t[e]:i}function Iv(t,e){let n=-Infinity;t.forEach((t=>{if(t.offset!=null)n=Math.max(n,t.offset)}));return n>-Infinity?n:e}function Uv(t,e,n,i,r,s,a){const o=qv(n,e),u=Iv(t,o("offset",0)),l=o("anchor",Sy),c=l===zy?1:l===By?.5:0;const f={align:ev,bounds:o("bounds",nv),columns:o("direction")==="vertical"?1:t.length,padding:o("margin",8),center:o("center"),nodirty:true};switch(e){case Ay:f.anchor={x:Math.floor(i.x1)-u,column:zy,y:c*(a||i.height()+2*i.y1),row:l};break;case ky:f.anchor={x:Math.ceil(i.x2)+u,y:c*(a||i.height()+2*i.y1),row:l};break;case wy:f.anchor={y:Math.floor(r.y1)-u,row:zy,x:c*(s||r.width()+2*r.x1),column:l};break;case Ey:f.anchor={y:Math.ceil(r.y2)+u,x:c*(s||r.width()+2*r.x1),column:l};break;case My:f.anchor={x:u,y:u};break;case Dy:f.anchor={x:s-u,y:u,column:zy};break;case Cy:f.anchor={x:u,y:a-u,row:zy};break;case Fy:f.anchor={x:s-u,y:a-u,column:zy,row:zy};break}return f}function jv(t,e){var n=e.items[0],i=n.datum,r=n.orient,s=n.bounds,a=n.x,o=n.y,u,l;n._bounds?n._bounds.clear().union(s):n._bounds=s.clone();s.clear();Yv(t,n,n.items[0].items[0]);s=Gv(n,s);u=2*n.padding;l=2*n.padding;if(!s.empty()){u=Math.ceil(s.width()+u);l=Math.ceil(s.height()+l)}if(i.type===Hy){Hv(n.items[0].items[0].items[0].items)}if(r!==Jy){n.x=a=0;n.y=o=0}n.width=u;n.height=l;kd(s.set(a,o,a+u,o+l),n);n.mark.bounds.clear().union(s);return n}function Gv(t,e){t.items.forEach((t=>e.union(t.bounds)));e.x1=t.padding;e.y1=t.padding;return e}function Yv(t,e,n){var i=e.padding,r=i-n.x,s=i-n.y;if(!e.datum.title){if(r||s)Xv(t,n,r,s)}else{var a=e.items[1].items[0],o=a.anchor,u=e.titlePadding||0,l=i-a.x,c=i-a.y;switch(a.orient){case Ay:r+=Math.ceil(a.bounds.width())+u;break;case ky:case Ey:break;default:s+=a.bounds.height()+u}if(r||s)Xv(t,n,r,s);switch(a.orient){case Ay:c+=Wv(e,n,a,o,1,1);break;case ky:l+=Wv(e,n,a,zy,0,0)+u;c+=Wv(e,n,a,o,1,1);break;case Ey:l+=Wv(e,n,a,o,0,0);c+=Wv(e,n,a,zy,-1,0,1)+u;break;default:l+=Wv(e,n,a,o,0,0)}if(l||c)Xv(t,a,l,c);if((l=Math.round(a.bounds.x1-i))<0){Xv(t,n,-l,0);Xv(t,a,-l,0)}}}function Wv(t,e,n,i,r,s,a){const o=t.datum.type!=="symbol",u=n.datum.vgrad,l=o&&(s||!u)&&!a?e.items[0]:e,c=l.bounds[r?"y2":"x2"]-t.padding,f=u&&s?c:0,d=u&&s?0:c,h=r<=0?0:$p(n);return Math.round(i===Sy?f:i===zy?d-h:.5*(c-h))}function Xv(t,e,n,i){e.x+=n;e.y+=i;e.bounds.translate(n,i);e.mark.bounds.translate(n,i);t.dirty(e)}function Hv(t){const e=t.reduce(((t,e)=>{t[e.column]=Math.max(e.bounds.x2-e.x,t[e.column]||0);return t}),{});t.forEach((t=>{t.width=e[t.column];t.height=t.bounds.y2-t.y}))}function Vv(t,e,n,i,r){var s=e.items[0],a=s.frame,o=s.orient,u=s.anchor,l=s.offset,c=s.padding,f=s.items[0].items[0],d=s.items[1]&&s.items[1].items[0],h=o===Ay||o===ky?i:n,p=0,m=0,g=0,y=0,v=0,b;if(a!==Oy){o===Ay?(p=r.y2,h=r.y1):o===ky?(p=r.y1,h=r.y2):(p=r.x1,h=r.x2)}else if(o===Ay){p=i,h=0}b=u===Sy?p:u===zy?h:(p+h)/2;if(d&&d.text){switch(o){case wy:case Ey:v=f.bounds.height()+c;break;case Ay:y=f.bounds.width()+c;break;case ky:y=-f.bounds.width()-c;break}_v.clear().union(d.bounds);_v.translate(y-(d.x||0),v-(d.y||0));if(wv(d,"x",y)|wv(d,"y",v)){t.dirty(d);d.bounds.clear().union(_v);d.mark.bounds.clear().union(_v);t.dirty(d)}_v.clear().union(d.bounds)}else{_v.clear()}_v.union(f.bounds);switch(o){case wy:m=b;g=r.y1-_v.height()-l;break;case Ay:m=r.x1-_v.width()-l;g=b;break;case ky:m=r.x2+_v.width()+l;g=b;break;case Ey:m=b;g=r.y2+l;break;default:m=s.x;g=s.y}if(wv(s,"x",m)|wv(s,"y",g)){_v.translate(m,g);t.dirty(s);s.bounds.clear().union(_v);e.bounds.clear().union(_v);t.dirty(s)}return s.bounds}function Qv(t){zi.call(this,null,t)}(0,p.B)(Qv,zi,{transform(t,e){const n=e.dataflow;t.mark.items.forEach((e=>{if(t.layout)Ov(n,e,t.layout);Zv(n,e,t)}));return Kv(t.mark.group)?e.reflow():e}});function Kv(t){return t&&t.mark.role!=="legend-entry"}function Zv(t,e,n){var i=e.items,r=Math.max(0,e.width||0),s=Math.max(0,e.height||0),a=(new vd).set(0,0,r,s),o=a.clone(),u=a.clone(),l=[],c,f,d,h,p,m;for(p=0,m=i.length;p{d=t.orient||ky;if(d!==Jy)(e[d]||(e[d]=[])).push(t)}));for(const i in e){const a=e[i];Rv(t,a,Uv(a,i,n.legends,o,u,r,s))}l.forEach((e=>{const i=e.bounds;if(!i.equals(e._bounds)){e.bounds=e._bounds;t.dirty(e);e.bounds=i;t.dirty(e)}if(n.autosize&&(n.autosize.type===Vy||n.autosize.type===Qy||n.autosize.type===Ky)){switch(e.orient){case Ay:case ky:a.add(i.x1,0).add(i.x2,0);break;case wy:case Ey:a.add(0,i.y1).add(0,i.y2)}}else{a.union(i)}}))}a.union(o).union(u);if(c){a.union(Vv(t,c,r,s,a))}if(e.clip){a.set(0,0,e.width||0,e.height||0)}Jv(t,e,a,n)}function Jv(t,e,n,i){const r=i.autosize||{},s=r.type;if(t._autosize<1||!s)return;let a=t._width,o=t._height,u=Math.max(0,e.width||0),l=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,e.height||0),f=Math.max(0,Math.ceil(-n.y1));const d=Math.max(0,Math.ceil(n.x2-u)),h=Math.max(0,Math.ceil(n.y2-c));if(r.contains===Xy){const e=t.padding();a-=e.left+e.right;o-=e.top+e.bottom}if(s===Jy){l=0;f=0;u=a;c=o}else if(s===Vy){u=Math.max(0,a-l-d);c=Math.max(0,o-f-h)}else if(s===Qy){u=Math.max(0,a-l-d);o=c+f+h}else if(s===Ky){a=u+l+d;c=Math.max(0,o-f-h)}else if(s===Zy){a=u+l+d;o=c+f+h}t._resizeView(a,o,u,c,[l,f],r.resize)}function tb(t,e){let n=0;if(e===undefined){for(let e of t){if(e=+e){n+=e}}}else{let i=-1;for(let r of t){if(r=+e(r,++i,t)){n+=r}}}return n}function eb(t){zi.call(this,null,t)}(0,p.B)(eb,zi,{transform(t,e){if(this.value&&!t.modified()){return e.StopPropagation}var n=e.dataflow.locale(),i=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=this.value,s=t.scale,a=t.count==null?t.values?t.values.length:10:t.count,o=_c(s,a,t.minstep),u=t.format||kc(n,s,o,t.formatSpecifier,t.formatType,!!t.values),l=t.values?wc(s,t.values,o):Ac(s,o);if(r)i.rem=r;r=l.map(((t,e)=>bn({index:e/(l.length-1||1),value:t,label:u(t)})));if(t.extra&&r.length){r.push(bn({index:-1,extra:{value:r[0].value},label:""}))}i.source=r;i.add=r;this.value=r;return i}});function nb(t){zi.call(this,null,t)}function ib(){return bn({})}function rb(t){const e=(0,p.nG)().test((t=>t.exit));e.lookup=n=>e.get(t(n));return e}(0,p.B)(nb,zi,{transform(t,e){var n=e.dataflow,i=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=t.item||ib,s=t.key||yn,a=this.value;if((0,p.cy)(i.encode)){i.encode=null}if(a&&(t.modified("key")||e.modified(s))){(0,p.z3)("DataJoin does not support modified key function or fields.")}if(!a){e=e.addAll();this.value=a=rb(s)}e.visit(e.ADD,(t=>{const e=s(t);let n=a.get(e);if(n){if(n.exit){a.empty--;i.add.push(n)}else{i.mod.push(n)}}else{n=r(t);a.set(e,n);i.add.push(n)}n.datum=t;n.exit=false}));e.visit(e.MOD,(t=>{const e=s(t),n=a.get(e);if(n){n.datum=t;i.mod.push(n)}}));e.visit(e.REM,(t=>{const e=s(t),n=a.get(e);if(t===n.datum&&!n.exit){i.rem.push(n);n.exit=true;++a.empty}}));if(e.changed(e.ADD_MOD))i.modifies("datum");if(e.clean()||t.clean&&a.empty>n.cleanThreshold){n.runAfter(a.clean)}return i}});function sb(t){zi.call(this,null,t)}(0,p.B)(sb,zi,{transform(t,e){var n=e.fork(e.ADD_REM),i=t.mod||false,r=t.encoders,s=e.encode;if((0,p.cy)(s)){if(n.changed()||s.every((t=>r[t]))){s=s[0];n.encode=null}else{return e.StopPropagation}}var a=s==="enter",o=r.update||p.me,u=r.enter||p.me,l=r.exit||p.me,c=(s&&!a?r[s]:o)||p.me;if(e.changed(e.ADD)){e.visit(e.ADD,(e=>{u(e,t);o(e,t)}));n.modifies(u.output);n.modifies(o.output);if(c!==p.me&&c!==o){e.visit(e.ADD,(e=>{c(e,t)}));n.modifies(c.output)}}if(e.changed(e.REM)&&l!==p.me){e.visit(e.REM,(e=>{l(e,t)}));n.modifies(l.output)}if(a||c!==p.me){const r=e.MOD|(t.modified()?e.REFLOW:0);if(a){e.visit(r,(e=>{const r=u(e,t)||i;if(c(e,t)||r)n.mod.push(e)}));if(n.mod.length)n.modifies(u.output)}else{e.visit(r,(e=>{if(c(e,t)||i)n.mod.push(e)}))}if(n.mod.length)n.modifies(c.output)}return n.changed()?n:e.StopPropagation}});function ab(t){zi.call(this,[],t)}(0,p.B)(ab,zi,{transform(t,e){if(this.value!=null&&!t.modified()){return e.StopPropagation}var n=e.dataflow.locale(),i=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=this.value,s=t.type||mc,a=t.scale,o=+t.limit,u=_c(a,t.count==null?5:t.count,t.minstep),l=!!t.values||s===mc,c=t.format||$c(n,a,u,s,t.formatSpecifier,t.formatType,l),f=t.values||Cc(a,u),d,h,m,g,y;if(r)i.rem=r;if(s===mc){if(o&&f.length>o){e.dataflow.warn("Symbol legend count exceeds limit, filtering items.");r=f.slice(0,o-1);y=true}else{r=f}if((0,p.Tn)(m=t.size)){if(!t.values&&a(r[0])===0){r=r.slice(1)}g=r.reduce(((e,n)=>Math.max(e,m(n,t))),0)}else{m=(0,p.dY)(g=m||8)}r=r.map(((e,n)=>bn({index:n,label:c(e,n,r),value:e,offset:g,size:m(e,t)})));if(y){y=f[r.length];r.push(bn({index:r.length,label:`…${f.length-r.length} entries`,value:y,offset:g,size:m(y,t)}))}}else if(s===yc){d=a.domain(),h=ac(a,d[0],(0,p.se)(d));if(f.length<3&&!t.values&&d[0]!==(0,p.se)(d)){f=[d[0],(0,p.se)(d)]}r=f.map(((t,e)=>bn({index:e,label:c(t,e,f),value:t,perc:h(t)})))}else{m=f.length-1;h=Pc(a);r=f.map(((t,e)=>bn({index:e,label:c(t,e,f),value:t,perc:e?h(t):0,perc2:e===m?1:h(f[e+1])})))}i.source=r;i.add=r;this.value=r;return i}});const ob=t=>t.source.x;const ub=t=>t.source.y;const lb=t=>t.target.x;const cb=t=>t.target.y;function fb(t){zi.call(this,{},t)}fb.Definition={type:"LinkPath",metadata:{modifies:true},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]};(0,p.B)(fb,zi,{transform(t,e){var n=t.sourceX||ob,i=t.sourceY||ub,r=t.targetX||lb,s=t.targetY||cb,a=t.as||"path",o=t.orient||"vertical",u=t.shape||"line",l=kb.get(u+"-"+o)||kb.get(u);if(!l){(0,p.z3)("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:""))}e.visit(e.SOURCE,(t=>{t[a]=l(n(t),i(t),r(t),s(t))}));return e.reflow(t.modified()).modifies(a)}});const db=(t,e,n,i)=>"M"+t+","+e+"L"+n+","+i;const hb=(t,e,n,i)=>db(e*Math.cos(t),e*Math.sin(t),i*Math.cos(n),i*Math.sin(n));const pb=(t,e,n,i)=>{var r=n-t,s=i-e,a=Math.hypot(r,s)/2,o=180*Math.atan2(s,r)/Math.PI;return"M"+t+","+e+"A"+a+","+a+" "+o+" 0 1"+" "+n+","+i};const mb=(t,e,n,i)=>pb(e*Math.cos(t),e*Math.sin(t),i*Math.cos(n),i*Math.sin(n));const gb=(t,e,n,i)=>{const r=n-t,s=i-e,a=.2*(r+s),o=.2*(s-r);return"M"+t+","+e+"C"+(t+a)+","+(e+o)+" "+(n+o)+","+(i-a)+" "+n+","+i};const yb=(t,e,n,i)=>gb(e*Math.cos(t),e*Math.sin(t),i*Math.cos(n),i*Math.sin(n));const vb=(t,e,n,i)=>"M"+t+","+e+"V"+i+"H"+n;const bb=(t,e,n,i)=>"M"+t+","+e+"H"+n+"V"+i;const xb=(t,e,n,i)=>{const r=Math.cos(t),s=Math.sin(t),a=Math.cos(n),o=Math.sin(n),u=Math.abs(n-t)>Math.PI?n<=t:n>t;return"M"+e*r+","+e*s+"A"+e+","+e+" 0 0,"+(u?1:0)+" "+e*a+","+e*o+"L"+i*a+","+i*o};const _b=(t,e,n,i)=>{const r=(t+n)/2;return"M"+t+","+e+"C"+r+","+e+" "+r+","+i+" "+n+","+i};const wb=(t,e,n,i)=>{const r=(e+i)/2;return"M"+t+","+e+"C"+t+","+r+" "+n+","+r+" "+n+","+i};const Ab=(t,e,n,i)=>{const r=Math.cos(t),s=Math.sin(t),a=Math.cos(n),o=Math.sin(n),u=(e+i)/2;return"M"+e*r+","+e*s+"C"+u*r+","+u*s+" "+u*a+","+u*o+" "+i*a+","+i*o};const kb=(0,p.nG)({line:db,"line-radial":hb,arc:pb,"arc-radial":mb,curve:gb,"curve-radial":yb,"orthogonal-horizontal":vb,"orthogonal-vertical":bb,"orthogonal-radial":xb,"diagonal-horizontal":_b,"diagonal-vertical":wb,"diagonal-radial":Ab});function Eb(t){zi.call(this,null,t)}Eb.Definition={type:"Pie",metadata:{modifies:true},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:false},{name:"as",type:"string",array:true,length:2,default:["startAngle","endAngle"]}]};(0,p.B)(Eb,zi,{transform(t,e){var n=t.as||["startAngle","endAngle"],i=n[0],r=n[1],s=t.field||p.xH,a=t.startAngle||0,o=t.endAngle!=null?t.endAngle:2*Math.PI,u=e.source,l=u.map(s),c=l.length,f=a,d=(o-a)/tb(l),h=(0,es.A)(c),m,g,y;if(t.sort){h.sort(((t,e)=>l[t]-l[e]))}for(m=0;m-1)return i;var r=e.domain,s=t.type,a=e.zero||e.zero===undefined&&Db(t),o,u;if(!r)return 0;if(a||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null){o=(r=r.slice()).length-1||1;if(a){if(r[0]>0)r[0]=0;if(r[o]<0)r[o]=0}if(e.domainMin!=null)r[0]=e.domainMin;if(e.domainMax!=null)r[o]=e.domainMax;if(e.domainMid!=null){u=e.domainMid;const t=u>r[o]?o+1:ut+(e<0?-1:e>0?1:0)),0));if(i!==e.length){n.warn("Log scale domain includes zero: "+(0,p.r$)(e))}}return e}function Nb(t,e,n){let i=e.bins;if(i&&!(0,p.cy)(i)){const e=t.domain(),n=e[0],r=(0,p.se)(e),s=i.step;let a=i.start==null?n:i.start,o=i.stop==null?r:i.stop;if(!s)(0,p.z3)("Scale bins parameter missing step property.");if(ar)o=s*Math.floor(r/s);i=(0,es.A)(a,o+s/2,s)}if(i){t.bins=i}else if(t.bins){delete t.bins}if(t.type===El){if(!i){t.bins=t.domain()}else if(!e.domain&&!e.domainRaw){t.domain(i);n=i.length}}return n}function Lb(t,e,n){var i=t.type,r=e.round||false,s=e.range;if(e.rangeStep!=null){s=Pb(i,e,n)}else if(e.scheme){s=qb(i,e,n);if((0,p.Tn)(s)){if(t.interpolator){return t.interpolator(s)}else{(0,p.z3)(`Scale type ${i} does not support interpolating color schemes.`)}}}if(s&&Jl(i)){return t.interpolator(ic(Ub(s,e.reverse),e.interpolate,e.interpolateGamma))}if(s&&e.interpolate&&t.interpolate){t.interpolate(oc(e.interpolate,e.interpolateGamma))}else if((0,p.Tn)(t.round)){t.round(r)}else if((0,p.Tn)(t.rangeRound)){t.interpolate(r?Su.A:Fu.A)}if(s)t.range(Ub(s,e.reverse))}function Pb(t,e,n){if(t!==kl&&t!==Al){(0,p.z3)("Only band and point scales support rangeStep.")}var i=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,r=t===Al?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*ul(n,r,i)]}function qb(t,e,n){var i=e.schemeExtent,r,s;if((0,p.cy)(e.scheme)){s=ic(e.scheme,e.interpolate,e.interpolateGamma)}else{r=e.scheme.toLowerCase();s=pc(r);if(!s)(0,p.z3)(`Unrecognized scheme name: ${e.scheme}`)}n=t===_l?n+1:t===El?n-1:t===bl||t===xl?+e.schemeCount||Mb:n;return Jl(t)?Ib(s,i,e.reverse):(0,p.Tn)(s)?rc(Ib(s,i),n):t===wl?s:s.slice(0,n)}function Ib(t,e,n){return(0,p.Tn)(t)&&(e||n)?nc(t,Ub(e||[0,1],n)):t}function Ub(t,e){return e?t.slice().reverse():t}function jb(t){zi.call(this,null,t)}(0,p.B)(jb,zi,{transform(t,e){const n=t.modified("sort")||e.changed(e.ADD)||e.modified(t.sort.fields)||e.modified("datum");if(n)e.source.sort(An(t.sort));this.modified(n);return e}});const Gb="zero",Yb="center",Wb="normalize",Xb=["y0","y1"];function Hb(t){zi.call(this,null,t)}Hb.Definition={type:"Stack",metadata:{modifies:true},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:true},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:Gb,values:[Gb,Yb,Wb]},{name:"as",type:"string",array:true,length:2,default:Xb}]};(0,p.B)(Hb,zi,{transform(t,e){var n=t.as||Xb,i=n[0],r=n[1],s=An(t.sort),a=t.field||p.xH,o=t.offset===Yb?Vb:t.offset===Wb?Qb:Kb,u,l,c,f;u=Zb(e.source,t.groupby,s,a);for(l=0,c=u.length,f=u.max;lt(c),a,o,u,l,c,f,d,h,p;if(e==null){r.push(t.slice())}else{for(a={},o=0,u=t.length;op)p=h;if(n)d.sort(n)}r.max=p;return r}const Jb=t=>t;function tx(t,e){if(t&&nx.hasOwnProperty(t.type)){nx[t.type](t,e)}}var ex={Feature:function(t,e){tx(t.geometry,e)},FeatureCollection:function(t,e){var n=t.features,i=-1,r=n.length;while(++i0){s=t[--e];while(e>0){n=s;i=t[--e];s=n+i;r=i-(s-n);if(r)break}if(e>0&&(r<0&&t[e-1]<0||r>0&&t[e-1]>0)){i=r*2;n=s+i;if(i==n-s)s=n}}return s}}function ox(t,e){const n=new ax;if(e===undefined){for(let e of t){if(e=+e){n.add(e)}}}else{let i=-1;for(let r of t){if(r=+e(r,++i,t)){n.add(r)}}}return+n}function ux(t,e){const n=new ax;let i=-1;return Float64Array.from(t,e===undefined?t=>n.add(+t||0):r=>n.add(+e(r,++i,t)||0))}var lx=1e-6;var cx=1e-12;var fx=Math.PI;var dx=fx/2;var hx=fx/4;var px=fx*2;var mx=180/fx;var gx=fx/180;var yx=Math.abs;var vx=Math.atan;var bx=Math.atan2;var xx=Math.cos;var _x=Math.ceil;var wx=Math.exp;var Ax=Math.floor;var kx=Math.hypot;var Ex=Math.log;var Mx=Math.pow;var Dx=Math.sin;var Cx=Math.sign||function(t){return t>0?1:t<0?-1:0};var Fx=Math.sqrt;var Sx=Math.tan;function Bx(t){return t>1?0:t<-1?fx:Math.acos(t)}function zx(t){return t>1?dx:t<-1?-dx:Math.asin(t)}function $x(t){return(t=Dx(t/2))*t}function Rx(){}var Ox=new ax,Tx=new ax,Nx,Lx,Px,qx;var Ix={point:Rx,lineStart:Rx,lineEnd:Rx,polygonStart:function(){Ix.lineStart=Ux;Ix.lineEnd=Yx},polygonEnd:function(){Ix.lineStart=Ix.lineEnd=Ix.point=Rx;Ox.add(yx(Tx));Tx=new ax},result:function(){var t=Ox/2;Ox=new ax;return t}};function Ux(){Ix.point=jx}function jx(t,e){Ix.point=Gx;Nx=Px=t,Lx=qx=e}function Gx(t,e){Tx.add(qx*t-Px*e);Px=t,qx=e}function Yx(){Gx(Nx,Lx)}const Wx=Ix;var Xx=Infinity,Hx=Xx,Vx=-Xx,Qx=Vx;var Kx={point:Zx,lineStart:Rx,lineEnd:Rx,polygonStart:Rx,polygonEnd:Rx,result:function(){var t=[[Xx,Hx],[Vx,Qx]];Vx=Qx=-(Hx=Xx=Infinity);return t}};function Zx(t,e){if(tVx)Vx=t;if(eQx)Qx=e}const Jx=Kx;var t_=0,e_=0,n_=0,i_=0,r_=0,s_=0,a_=0,o_=0,u_=0,l_,c_,f_,d_;var h_={point:p_,lineStart:m_,lineEnd:v_,polygonStart:function(){h_.lineStart=b_;h_.lineEnd=x_},polygonEnd:function(){h_.point=p_;h_.lineStart=m_;h_.lineEnd=v_},result:function(){var t=u_?[a_/u_,o_/u_]:s_?[i_/s_,r_/s_]:n_?[t_/n_,e_/n_]:[NaN,NaN];t_=e_=n_=i_=r_=s_=a_=o_=u_=0;return t}};function p_(t,e){t_+=t;e_+=e;++n_}function m_(){h_.point=g_}function g_(t,e){h_.point=y_;p_(f_=t,d_=e)}function y_(t,e){var n=t-f_,i=e-d_,r=Fx(n*n+i*i);i_+=r*(f_+t)/2;r_+=r*(d_+e)/2;s_+=r;p_(f_=t,d_=e)}function v_(){h_.point=p_}function b_(){h_.point=__}function x_(){w_(l_,c_)}function __(t,e){h_.point=w_;p_(l_=f_=t,c_=d_=e)}function w_(t,e){var n=t-f_,i=e-d_,r=Fx(n*n+i*i);i_+=r*(f_+t)/2;r_+=r*(d_+e)/2;s_+=r;r=d_*t-f_*e;a_+=r*(f_+t);o_+=r*(d_+e);u_+=r*3;p_(f_=t,d_=e)}const A_=h_;function k_(t){this._context=t}k_.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){if(this._line===0)this._context.closePath();this._point=NaN},point:function(t,e){switch(this._point){case 0:{this._context.moveTo(t,e);this._point=1;break}case 1:{this._context.lineTo(t,e);break}default:{this._context.moveTo(t+this._radius,e);this._context.arc(t,e,this._radius,0,px);break}}},result:Rx};var E_=new ax,M_,D_,C_,F_,S_;var B_={point:Rx,lineStart:function(){B_.point=z_},lineEnd:function(){if(M_)$_(D_,C_);B_.point=Rx},polygonStart:function(){M_=true},polygonEnd:function(){M_=null},result:function(){var t=+E_;E_=new ax;return t}};function z_(t,e){B_.point=$_;D_=F_=t,C_=S_=e}function $_(t,e){F_-=t,S_-=e;E_.add(Fx(F_*F_+S_*S_));F_=t,S_=e}const R_=B_;let O_,T_,N_,L_;class P_{constructor(t){this._append=t==null?q_:I_(t);this._radius=4.5;this._=""}pointRadius(t){this._radius=+t;return this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){if(this._line===0)this._+="Z";this._point=NaN}point(t,e){switch(this._point){case 0:{this._append`M${t},${e}`;this._point=1;break}case 1:{this._append`L${t},${e}`;break}default:{this._append`M${t},${e}`;if(this._radius!==N_||this._append!==T_){const t=this._radius;const e=this._;this._="";this._append`m0,${t}a${t},${t} 0 1,1 0,${-2*t}a${t},${t} 0 1,1 0,${2*t}z`;N_=t;T_=this._append;L_=this._;this._=e}this._+=L_;break}}}result(){const t=this._;this._="";return t.length?t:null}}function q_(t){let e=1;this._+=t[0];for(const n=t.length;e=0))throw new RangeError(`invalid digits: ${t}`);if(e>15)return q_;if(e!==O_){const t=10**e;O_=e;T_=function e(n){let i=1;this._+=n[0];for(const r=n.length;i=0))throw new RangeError(`invalid digits: ${t}`);n=e}if(e===null)s=new P_(n);return a};return a.projection(t).digits(n).context(e)}function j_(){var t=[],e;return{point:function(t,n,i){e.push([t,n,i])},lineStart:function(){t.push(e=[])},lineEnd:Rx,rejoin:function(){if(t.length>1)t.push(t.pop().concat(t.shift()))},result:function(){var n=t;t=[];e=null;return n}}}function G_(t,e){return yx(t[0]-e[0])=0;--o)r.point((f=c[o])[0],f[1])}else{i(d.x,d.p.x,-1,r)}d=d.p}d=d.o;c=d.z;h=!h}while(!d.v);r.lineEnd()}}function X_(t){if(!(e=t.length))return;var e,n=0,i=t[0],r;while(++n=0?1:-1,M=E*k,D=M>fx,C=g*w;u.add(bx(C*E*Dx(M),y*A+C*xx(M)));a+=D?k+E*px:k;if(D^p>=n^x>=n){var F=K_(V_(h),V_(b));tw(F);var S=K_(s,F);tw(S);var B=(D^k>=0?-1:1)*zx(S[2]);if(i>B||i===B&&(F[0]||F[1])){o+=D^k>=0?1:-1}}}}return(a<-lx||a0){if(!u)r.polygonStart(),u=true;r.lineStart();for(n=0;n1&&t&2)e.push(e.pop().concat(e.shift()));c.push(e.filter(aw))}return d}}function aw(t){return t.length>1}function ow(t,e){return((t=t.x)[0]<0?t[1]-dx-lx:dx-t[1])-((e=e.x)[0]<0?e[1]-dx-lx:dx-e[1])}const uw=sw((function(){return true}),lw,fw,[-fx,-dx]);function lw(t){var e=NaN,n=NaN,i=NaN,r;return{lineStart:function(){t.lineStart();r=1},point:function(s,a){var o=s>0?fx:-fx,u=yx(s-e);if(yx(u-fx)0?dx:-dx);t.point(i,n);t.lineEnd();t.lineStart();t.point(o,n);t.point(s,n);r=0}else if(i!==o&&u>=fx){if(yx(e-i)lx?vx((Dx(e)*(s=xx(i))*Dx(n)-Dx(i)*(r=xx(e))*Dx(t))/(r*s*a)):(e+i)/2}function fw(t,e,n,i){var r;if(t==null){r=n*dx;i.point(-fx,r);i.point(0,r);i.point(fx,r);i.point(fx,0);i.point(fx,-r);i.point(0,-r);i.point(-fx,-r);i.point(-fx,0);i.point(-fx,r)}else if(yx(t[0]-e[0])>lx){var s=t[0]0?rs)r+=i*px}for(var l,c=r;i>0?c>s:c0,r=yx(e)>lx;function s(e,i,r,s){dw(s,t,n,r,e,i)}function a(t,n){return xx(t)*xx(n)>e}function o(t){var e,n,s,o,c;return{lineStart:function(){o=s=false;c=1},point:function(f,d){var h=[f,d],p,m=a(f,d),g=i?m?0:l(f,d):m?l(f+(f<0?fx:-fx),d):0;if(!e&&(o=s=m))t.lineStart();if(m!==s){p=u(e,h);if(!p||G_(e,p)||G_(h,p))h[2]=1}if(m!==s){c=0;if(m){t.lineStart();p=u(h,e);t.point(p[0],p[1])}else{p=u(e,h);t.point(p[0],p[1],2);t.lineEnd()}e=p}else if(r&&e&&i^m){var y;if(!(g&n)&&(y=u(h,e,true))){c=0;if(i){t.lineStart();t.point(y[0][0],y[0][1]);t.point(y[1][0],y[1][1]);t.lineEnd()}else{t.point(y[1][0],y[1][1]);t.lineEnd();t.lineStart();t.point(y[0][0],y[0][1],3)}}}if(m&&(!e||!G_(e,h))){t.point(h[0],h[1])}e=h,s=m,n=g},lineEnd:function(){if(s)t.lineEnd();e=null},clean:function(){return c|(o&&s)<<1}}}function u(t,n,i){var r=V_(t),s=V_(n);var a=[1,0,0],o=K_(r,s),u=Q_(o,o),l=o[0],c=u-l*l;if(!c)return!i&&t;var f=e*u/c,d=-e*l/c,h=K_(a,o),p=J_(a,f),m=J_(o,d);Z_(p,m);var g=h,y=Q_(p,g),v=Q_(g,g),b=y*y-v*(Q_(p,p)-1);if(b<0)return;var x=Fx(b),_=J_(g,(-y-x)/v);Z_(_,p);_=H_(_);if(!i)return _;var w=t[0],A=n[0],k=t[1],E=n[1],M;if(A0^_[1]<(yx(_[0]-w)fx^(w<=_[0]&&_[0]<=A)){var S=J_(g,(-y+x)/v);Z_(S,p);return[_,H_(S)]}}function l(e,n){var r=i?t:fx-t,s=0;if(e<-r)s|=1;else if(e>r)s|=2;if(n<-r)s|=4;else if(n>r)s|=8;return s}return sw(a,o,s,i?[0,-t]:[-fx,t-fx])}function gw(t,e,n,i,r,s){var a=t[0],o=t[1],u=e[0],l=e[1],c=0,f=1,d=u-a,h=l-o,p;p=n-a;if(!d&&p>0)return;p/=d;if(d<0){if(p0){if(p>f)return;if(p>c)c=p}p=r-a;if(!d&&p<0)return;p/=d;if(d<0){if(p>f)return;if(p>c)c=p}else if(d>0){if(p0)return;p/=h;if(h<0){if(p0){if(p>f)return;if(p>c)c=p}p=s-o;if(!h&&p<0)return;p/=h;if(h<0){if(p>f)return;if(p>c)c=p}else if(h>0){if(p0)t[0]=a+c*d,t[1]=o+c*h;if(f<1)e[0]=a+f*d,e[1]=o+f*h;return true}var yw=1e9,vw=-yw;function bw(t,e,n,i){function r(r,s){return t<=r&&r<=n&&e<=s&&s<=i}function s(r,s,o,l){var c=0,f=0;if(r==null||(c=a(r,o))!==(f=a(s,o))||u(r,s)<0^o>0){do{l.point(c===0||c===3?t:n,c>1?i:e)}while((c=(c+o+4)%4)!==f)}else{l.point(s[0],s[1])}}function a(i,r){return yx(i[0]-t)0?0:3:yx(i[0]-n)0?2:1:yx(i[1]-e)0?1:0:r>0?3:2}function o(t,e){return u(t.x,e.x)}function u(t,e){var n=a(t,1),i=a(e,1);return n!==i?n-i:n===0?e[1]-t[1]:n===1?t[0]-e[0]:n===2?t[1]-e[1]:e[0]-t[0]}return function(a){var u=a,l=j_(),c,f,d,h,p,m,g,y,v,b,x;var _={point:w,lineStart:M,lineEnd:D,polygonStart:k,polygonEnd:E};function w(t,e){if(r(t,e))u.point(t,e)}function A(){var e=0;for(var n=0,r=f.length;ni&&(d-l)*(i-c)>(h-c)*(t-l))++e}else{if(h<=i&&(d-l)*(i-c)<(h-c)*(t-l))--e}}}return e}function k(){u=l,c=[],f=[],x=true}function E(){var t=A(),e=x&&t,n=(c=rw(c)).length;if(e||n){a.polygonStart();if(e){a.lineStart();s(null,null,1,a);a.lineEnd()}if(n){W_(c,o,t,s,a)}a.polygonEnd()}u=a,c=f=d=null}function M(){_.point=C;if(f)f.push(d=[]);b=true;v=false;g=y=NaN}function D(){if(c){C(h,p);if(m&&v)l.rejoin();c.push(l.result())}_.point=w;if(v)u.lineEnd()}function C(s,a){var o=r(s,a);if(f)d.push([s,a]);if(b){h=s,p=a,m=o;b=false;if(o){u.lineStart();u.point(s,a)}}else{if(o&&v)u.point(s,a);else{var l=[g=Math.max(vw,Math.min(yw,g)),y=Math.max(vw,Math.min(yw,y))],c=[s=Math.max(vw,Math.min(yw,s)),a=Math.max(vw,Math.min(yw,a))];if(gw(l,c,t,e,n,i)){if(!v){u.lineStart();u.point(l[0],l[1])}u.point(c[0],c[1]);if(!o)u.lineEnd();x=false}else if(o){u.lineStart();u.point(s,a);x=false}}}g=s,y=a,v=o}return _}}function xw(t,e){function n(n,i){return n=t(n,i),e(n[0],n[1])}if(t.invert&&e.invert)n.invert=function(n,i){return n=e.invert(n,i),n&&t.invert(n[0],n[1])};return n}function _w(t,e){if(yx(t)>fx)t-=Math.round(t/px)*px;return[t,e]}_w.invert=_w;function ww(t,e,n){return(t%=px)?e||n?xw(kw(t),Ew(e,n)):kw(t):e||n?Ew(e,n):_w}function Aw(t){return function(e,n){e+=t;if(yx(e)>fx)e-=Math.round(e/px)*px;return[e,n]}}function kw(t){var e=Aw(t);e.invert=Aw(-t);return e}function Ew(t,e){var n=xx(t),i=Dx(t),r=xx(e),s=Dx(e);function a(t,e){var a=xx(e),o=xx(t)*a,u=Dx(t)*a,l=Dx(e),c=l*n+o*i;return[bx(u*r-c*s,o*n-l*i),zx(c*r+u*s)]}a.invert=function(t,e){var a=xx(e),o=xx(t)*a,u=Dx(t)*a,l=Dx(e),c=l*r-u*s;return[bx(u*r+l*s,o*n+c*i),zx(c*n-o*i)]};return a}function Mw(t){t=ww(t[0]*gx,t[1]*gx,t.length>2?t[2]*gx:0);function e(e){e=t(e[0]*gx,e[1]*gx);return e[0]*=mx,e[1]*=mx,e}e.invert=function(e){e=t.invert(e[0]*gx,e[1]*gx);return e[0]*=mx,e[1]*=mx,e};return e}function Dw(t){return{stream:Cw(t)}}function Cw(t){return function(e){var n=new Fw;for(var i in t)n[i]=t[i];n.stream=e;return n}}function Fw(){}Fw.prototype={constructor:Fw,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function Sw(t,e,n){var i=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]);if(i!=null)t.clipExtent(null);sx(n,t.stream(Jx));e(Jx.result());if(i!=null)t.clipExtent(i);return t}function Bw(t,e,n){return Sw(t,(function(n){var i=e[1][0]-e[0][0],r=e[1][1]-e[0][1],s=Math.min(i/(n[1][0]-n[0][0]),r/(n[1][1]-n[0][1])),a=+e[0][0]+(i-s*(n[1][0]+n[0][0]))/2,o=+e[0][1]+(r-s*(n[1][1]+n[0][1]))/2;t.scale(150*s).translate([a,o])}),n)}function zw(t,e,n){return Bw(t,[[0,0],e],n)}function $w(t,e,n){return Sw(t,(function(n){var i=+e,r=i/(n[1][0]-n[0][0]),s=(i-r*(n[1][0]+n[0][0]))/2,a=-r*n[0][1];t.scale(150*r).translate([s,a])}),n)}function Rw(t,e,n){return Sw(t,(function(n){var i=+e,r=i/(n[1][1]-n[0][1]),s=-r*n[0][0],a=(i-r*(n[1][1]+n[0][1]))/2;t.scale(150*r).translate([s,a])}),n)}var Ow=16,Tw=xx(30*gx);function Nw(t,e){return+e?Pw(t,e):Lw(t)}function Lw(t){return Cw({point:function(e,n){e=t(e,n);this.stream.point(e[0],e[1])}})}function Pw(t,e){function n(i,r,s,a,o,u,l,c,f,d,h,p,m,g){var y=l-i,v=c-r,b=y*y+v*v;if(b>4*e&&m--){var x=a+d,_=o+h,w=u+p,A=Fx(x*x+_*_+w*w),k=zx(w/=A),E=yx(yx(w)-1)e||yx((y*F+v*S)/b-.5)>.3||a*d+o*h+u*p2?t[2]%360*gx:0,F()):[o*mx,u*mx,l*mx]};D.angle=function(t){return arguments.length?(f=t%360*gx,F()):f*mx};D.reflectX=function(t){return arguments.length?(d=t?-1:1,F()):d<0};D.reflectY=function(t){return arguments.length?(h=t?-1:1,F()):h<0};D.precision=function(t){return arguments.length?(w=Nw(A,_=t*t),S()):Fx(_)};D.fitExtent=function(t,e){return Bw(D,t,e)};D.fitSize=function(t,e){return zw(D,t,e)};D.fitWidth=function(t,e){return $w(D,t,e)};D.fitHeight=function(t,e){return Rw(D,t,e)};function F(){var t=jw(n,0,0,d,h,f).apply(null,e(s,a)),p=jw(n,i-t[0],r-t[1],d,h,f);c=ww(o,u,l);A=xw(e,p);k=xw(c,A);w=Nw(A,_);return S()}function S(){E=M=null;return D}return function(){e=t.apply(this,arguments);D.invert=e.invert&&C;return F()}}function Ww(t){var e=0,n=fx/3,i=Yw(t),r=i(e,n);r.parallels=function(t){return arguments.length?i(e=t[0]*gx,n=t[1]*gx):[e*mx,n*mx]};return r}function Xw(t){var e=xx(t);function n(t,n){return[t*e,Dx(n)/e]}n.invert=function(t,n){return[t/e,zx(n*e)]};return n}function Hw(t,e){var n=Dx(t),i=(n+Dx(e))/2;if(yx(i)=.12&&o<.234&&s>=-.425&&s<-.214?r:o>=.166&&o<.234&&s>=-.214&&s<-.115?a:n).invert(t)};c.stream=function(i){return t&&e===i?t:t=Kw([n.stream(e=i),r.stream(i),a.stream(i)])};c.precision=function(t){if(!arguments.length)return n.precision();n.precision(t),r.precision(t),a.precision(t);return f()};c.scale=function(t){if(!arguments.length)return n.scale();n.scale(t),r.scale(t*.35),a.scale(t);return c.translate(n.translate())};c.translate=function(t){if(!arguments.length)return n.translate();var e=n.scale(),u=+t[0],c=+t[1];i=n.translate(t).clipExtent([[u-.455*e,c-.238*e],[u+.455*e,c+.238*e]]).stream(l);s=r.translate([u-.307*e,c+.201*e]).clipExtent([[u-.425*e+lx,c+.12*e+lx],[u-.214*e-lx,c+.234*e-lx]]).stream(l);o=a.translate([u-.205*e,c+.212*e]).clipExtent([[u-.214*e+lx,c+.166*e+lx],[u-.115*e-lx,c+.234*e-lx]]).stream(l);return f()};c.fitExtent=function(t,e){return Bw(c,t,e)};c.fitSize=function(t,e){return zw(c,t,e)};c.fitWidth=function(t,e){return $w(c,t,e)};c.fitHeight=function(t,e){return Rw(c,t,e)};function f(){t=e=null;return c}return c.scale(1070)}function Jw(t){return function(e,n){var i=xx(e),r=xx(n),s=t(i*r);if(s===Infinity)return[2,0];return[s*r*Dx(e),s*Dx(n)]}}function tA(t){return function(e,n){var i=Fx(e*e+n*n),r=t(i),s=Dx(r),a=xx(r);return[bx(e*s,i*a),zx(i&&n*s/i)]}}var eA=Jw((function(t){return Fx(2/(1+t))}));eA.invert=tA((function(t){return 2*zx(t/2)}));function nA(){return Gw(eA).scale(124.75).clipAngle(180-.001)}var iA=Jw((function(t){return(t=Bx(t))&&t/Dx(t)}));iA.invert=tA((function(t){return t}));function rA(){return Gw(iA).scale(79.4188).clipAngle(180-.001)}function sA(t,e){return[t,Ex(Sx((dx+e)/2))]}sA.invert=function(t,e){return[t,2*vx(wx(e))-dx]};function aA(){return oA(sA).scale(961/px)}function oA(t){var e=Gw(t),n=e.center,i=e.scale,r=e.translate,s=e.clipExtent,a=null,o,u,l;e.scale=function(t){return arguments.length?(i(t),c()):i()};e.translate=function(t){return arguments.length?(r(t),c()):r()};e.center=function(t){return arguments.length?(n(t),c()):n()};e.clipExtent=function(t){return arguments.length?(t==null?a=o=u=l=null:(a=+t[0][0],o=+t[0][1],u=+t[1][0],l=+t[1][1]),c()):a==null?null:[[a,o],[u,l]]};function c(){var n=fx*i(),r=e(Mw(e.rotate()).invert([0,0]));return s(a==null?[[r[0]-n,r[1]-n],[r[0]+n,r[1]+n]]:t===sA?[[Math.max(r[0]-n,a),o],[Math.min(r[0]+n,u),l]]:[[a,Math.max(r[1]-n,o)],[u,Math.min(r[1]+n,l)]])}return c()}function uA(t){return Sx((dx+t)/2)}function lA(t,e){var n=xx(t),i=t===e?Dx(t):Ex(n/xx(e))/Ex(uA(e)/uA(t)),r=n*Mx(uA(t),i)/i;if(!i)return sA;function s(t,e){if(r>0){if(e<-dx+lx)e=-dx+lx}else{if(e>dx-lx)e=dx-lx}var n=r/Mx(uA(e),i);return[n*Dx(i*t),r-n*xx(i*t)]}s.invert=function(t,e){var n=r-e,s=Cx(i)*Fx(t*t+n*n),a=bx(t,yx(n))*Cx(n);if(n*i<0)a-=fx*Cx(t)*Cx(n);return[a/i,2*vx(Mx(r/s,1/i))-dx]};return s}function cA(){return Ww(lA).scale(109.5).parallels([30,30])}function fA(t,e){return[t,e]}fA.invert=fA;function dA(){return Gw(fA).scale(152.63)}function hA(t,e){var n=xx(t),i=t===e?Dx(t):(n-xx(e))/(e-t),r=n/i+t;if(yx(i)lx&&--i>0);return[t/(.8707+(s=n*n)*(-.131979+s*(-.013791+s*s*s*(.003971-.001529*s)))),n]};function DA(){return Gw(MA).scale(175.295)}function CA(t,e){return[xx(e)*Dx(t),Dx(e)]}CA.invert=tA(zx);function FA(){return Gw(CA).scale(249.5).clipAngle(90+lx)}function SA(t,e){var n=xx(e),i=1+xx(t)*n;return[n*Dx(t)/i,Dx(e)/i]}SA.invert=tA((function(t){return 2*vx(t)}));function BA(){return Gw(SA).scale(250).clipAngle(142)}function zA(t,e){return[Ex(Sx((dx+e)/2)),-t]}zA.invert=function(t,e){return[-e,2*vx(wx(t))-dx]};function $A(){var t=oA(zA),e=t.center,n=t.rotate;t.center=function(t){return arguments.length?e([-t[1],t[0]]):(t=e(),[t[1],-t[0]])};t.rotate=function(t){return arguments.length?n([t[0],t[1],t.length>2?t[2]+90:90]):(t=n(),[t[0],t[1],t[2]-90])};return n([0,0,90]).scale(159.155)}var RA=Math.abs;var OA=Math.atan;var TA=Math.atan2;var NA=Math.ceil;var LA=Math.cos;var PA=Math.exp;var qA=Math.floor;var IA=Math.log;var UA=Math.max;var jA=Math.min;var GA=Math.pow;var YA=Math.round;var WA=Math.sign||function(t){return t>0?1:t<0?-1:0};var XA=Math.sin;var HA=Math.tan;var VA=1e-6;var QA=1e-12;var KA=Math.PI;var ZA=KA/2;var JA=KA/4;var tk=Math.SQRT1_2;var ek=lk(2);var nk=lk(KA);var ik=KA*2;var rk=180/KA;var sk=KA/180;function ak(t){return t?t/Math.sin(t):1}function ok(t){return t>1?ZA:t<-1?-ZA:Math.asin(t)}function uk(t){return t>1?0:t<-1?KA:Math.acos(t)}function lk(t){return t>0?Math.sqrt(t):0}function ck(t){t=PA(2*t);return(t-1)/(t+1)}function fk(t){return(PA(t)-PA(-t))/2}function dk(t){return(PA(t)+PA(-t))/2}function hk(t){return IA(t+lk(t*t+1))}function pk(t){return IA(t+lk(t*t-1))}function mk(t,e){var n=t*XA(e),i=30,r;do{e-=r=(e+XA(e)-n)/(1+LA(e))}while(RA(r)>VA&&--i>0);return e/2}function gk(t,e,n){function i(i,r){return[t*i*LA(r=mk(n,r)),e*XA(r)]}i.invert=function(i,r){return r=ok(r/e),[i/(t*LA(r)),ok((2*r+XA(2*r))/n)]};return i}var yk=gk(ek/ZA,ek,KA);function vk(){return Gw(yk).scale(169.529)}const bk=U_();const xk=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function _k(t,e){return function n(){const i=e();i.type=t;i.path=U_().projection(i);i.copy=i.copy||function(){const t=n();xk.forEach((e=>{if(i[e])t[e](i[e]())}));t.path.pointRadius(i.path.pointRadius());return t};return Ul(i)}}function wk(t,e){if(!t||typeof t!=="string"){throw new Error("Projection type must be a name string.")}t=t.toLowerCase();if(arguments.length>1){kk[t]=_k(t,e);return this}else{return kk[t]||null}}function Ak(t){return t&&t.path||bk}const kk={albers:Qw,albersusa:Zw,azimuthalequalarea:nA,azimuthalequidistant:rA,conicconformal:cA,conicequalarea:Vw,conicequidistant:pA,equalEarth:wA,equirectangular:dA,gnomonic:kA,identity:EA,mercator:aA,mollweide:vk,naturalEarth1:DA,orthographic:FA,stereographic:BA,transversemercator:$A};for(const yW in kk){wk(yW,kk[yW])}function Ek(t,e,n){var i=(0,es.A)(t,e-lx,n).concat(e);return function(t){return i.map((function(e){return[t,e]}))}}function Mk(t,e,n){var i=(0,es.A)(t,e-lx,n).concat(e);return function(t){return i.map((function(e){return[e,t]}))}}function Dk(){var t,e,n,i,r,s,a,o,u=10,l=u,c=90,f=360,d,h,p,m,g=2.5;function y(){return{type:"MultiLineString",coordinates:v()}}function v(){return(0,es.A)(_x(i/c)*c,n,c).map(p).concat((0,es.A)(_x(o/f)*f,a,f).map(m)).concat((0,es.A)(_x(e/u)*u,t,u).filter((function(t){return yx(t%c)>lx})).map(d)).concat((0,es.A)(_x(s/l)*l,r,l).filter((function(t){return yx(t%f)>lx})).map(h))}y.lines=function(){return v().map((function(t){return{type:"LineString",coordinates:t}}))};y.outline=function(){return{type:"Polygon",coordinates:[p(i).concat(m(a).slice(1),p(n).reverse().slice(1),m(o).reverse().slice(1))]}};y.extent=function(t){if(!arguments.length)return y.extentMinor();return y.extentMajor(t).extentMinor(t)};y.extentMajor=function(t){if(!arguments.length)return[[i,o],[n,a]];i=+t[0][0],n=+t[1][0];o=+t[0][1],a=+t[1][1];if(i>n)t=i,i=n,n=t;if(o>a)t=o,o=a,a=t;return y.precision(g)};y.extentMinor=function(n){if(!arguments.length)return[[e,s],[t,r]];e=+n[0][0],t=+n[1][0];s=+n[0][1],r=+n[1][1];if(e>t)n=e,e=t,t=n;if(s>r)n=s,s=r,r=n;return y.precision(g)};y.step=function(t){if(!arguments.length)return y.stepMinor();return y.stepMajor(t).stepMinor(t)};y.stepMajor=function(t){if(!arguments.length)return[c,f];c=+t[0],f=+t[1];return y};y.stepMinor=function(t){if(!arguments.length)return[u,l];u=+t[0],l=+t[1];return y};y.precision=function(u){if(!arguments.length)return g;g=+u;d=Ek(s,r,90);h=Mk(e,t,g);p=Ek(o,a,90);m=Mk(i,n,g);return y};return y.extentMajor([[-180,-90+lx],[180,90-lx]]).extentMinor([[-180,-80-lx],[180,80+lx]])}function Ck(){return Dk()()}var Fk=n(33844);function Sk(){}const Bk=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function zk(){var t=1,e=1,n=o;function i(t,e){return e.map((e=>r(t,e)))}function r(t,e){var i=[],r=[];s(t,e,(s=>{n(s,t,e);if($k(s)>0)i.push([s]);else r.push(s)}));r.forEach((t=>{for(var e=0,n=i.length,r;e=i;Bk[f<<1].forEach(p);while(++u=i;Bk[c|f<<1].forEach(p)}Bk[f<<0].forEach(p);while(++l=i;d=n[l*t]>=i;Bk[f<<1|d<<2].forEach(p);while(++u=i;h=d,d=n[l*t+u+1]>=i;Bk[c|f<<1|d<<2|h<<3].forEach(p)}Bk[f|d<<3].forEach(p)}u=-1;d=n[l*t]>=i;Bk[d<<2].forEach(p);while(++u=i;Bk[d<<2|h<<3].forEach(p)}Bk[d<<3].forEach(p);function p(t){var e=[t[0][0]+u,t[0][1]+l],n=[t[1][0]+u,t[1][1]+l],i=a(e),c=a(n),f,d;if(f=o[i]){if(d=s[c]){delete o[f.end];delete s[d.start];if(f===d){f.ring.push(n);r(f.ring)}else{s[f.start]=o[d.end]={start:f.start,end:d.end,ring:f.ring.concat(d.ring)}}}else{delete o[f.end];f.ring.push(n);o[f.end=c]=f}}else if(f=s[c]){if(d=o[i]){delete s[f.start];delete o[d.end];if(f===d){f.ring.push(n);r(f.ring)}else{s[d.start]=o[f.end]={start:d.start,end:f.end,ring:d.ring.concat(f.ring)}}}else{delete s[f.start];f.ring.unshift(e);s[f.start=i]=f}}else{s[i]=o[c]={start:i,end:c,ring:[e,n]}}}}function a(e){return e[0]*2+e[1]*(t+1)*4}function o(n,i,r){n.forEach((n=>{var s=n[0],a=n[1],o=s|0,u=a|0,l,c=i[u*t+o];if(s>0&&s0&&a=0&&s>=0))(0,p.z3)("invalid size");return t=r,e=s,i};i.smooth=function(t){return arguments.length?(n=t?o:Sk,i):n===o};return i}function $k(t){var e=0,n=t.length,i=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];while(++ei!==h>i&&n<(d-l)*(i-c)/(h-c)+l)r=-r}return r}function Tk(t,e,n){var i;return Nk(t,e,n)&&Lk(t[i=+(t[0]===e[0])],n[i],e[i])}function Nk(t,e,n){return(e[0]-t[0])*(n[1]-t[1])===(n[0]-t[0])*(e[1]-t[1])}function Lk(t,e,n){return t<=e&&e<=n||n<=e&&e<=t}function Pk(t,e,n){return function(i){var r=(0,p.Xx)(i),s=n?Math.min(r[0],0):r[0],a=r[1],o=a-s,u=e?(0,N.sG)(s,a,t):o/(t+1);return(0,es.A)(s+u,a,u)}}function qk(t){zi.call(this,null,t)}qk.Definition={type:"Isocontour",metadata:{generates:true},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:true},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:false},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:true},{name:"smooth",type:"boolean",default:true},{name:"scale",type:"number",expr:true},{name:"translate",type:"number",array:true,expr:true},{name:"as",type:"string",null:true,default:"contour"}]};(0,p.B)(qk,zi,{transform(t,e){if(this.value&&!e.changed()&&!t.modified()){return e.StopPropagation}var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=e.materialize(e.SOURCE).source,r=t.field||p.D_,s=zk().smooth(t.smooth!==false),a=t.thresholds||Ik(i,r,t),o=t.as===null?null:t.as||"contour",u=[];i.forEach((e=>{const n=r(e);const i=s.size([n.width,n.height])(n.values,(0,p.cy)(a)?a:a(n.values));Uk(i,n,e,t);i.forEach((t=>{u.push(_n(e,bn(o!=null?{[o]:t}:t)))}))}));if(this.value)n.rem=this.value;this.value=n.source=n.add=u;return n}});function Ik(t,e,n){const i=Pk(n.levels||10,n.nice,n.zero!==false);return n.resolve!=="shared"?i:i(t.map((t=>(0,Ni.A)(e(t).values))))}function Uk(t,e,n,i){let r=i.scale||e.scale,s=i.translate||e.translate;if((0,p.Tn)(r))r=r(n,i);if((0,p.Tn)(s))s=s(n,i);if((r===1||r==null)&&!s)return;const a=((0,p.Et)(r)?r:r[0])||1,o=((0,p.Et)(r)?r:r[1])||1,u=s&&s[0]||0,l=s&&s[1]||0;t.forEach(jk(e,a,o,u,l))}function jk(t,e,n,i,r){const s=t.x1||0,a=t.y1||0,o=e*n<0;function u(t){t.forEach(l)}function l(t){if(o)t.reverse();t.forEach(c)}function c(t){t[0]=(t[0]-s)*e+i;t[1]=(t[1]-a)*n+r}return function(t){t.coordinates.forEach(u);return t}}function Gk(t,e,n){const i=t>=0?t:er(e,n);return Math.round((Math.sqrt(4*i*i+1)-1)/2)}function Yk(t){return(0,p.Tn)(t)?t:(0,p.dY)(+t)}function Wk(){var t=t=>t[0],e=t=>t[1],n=p.xH,i=[-1,-1],r=960,s=500,a=2;function o(o,u){const l=Gk(i[0],o,t)>>a,c=Gk(i[1],o,e)>>a,f=l?l+2:0,d=c?c+2:0,h=2*f+(r>>a),p=2*d+(s>>a),m=new Float32Array(h*p),g=new Float32Array(h*p);let y=m;o.forEach((i=>{const r=f+(+t(i)>>a),s=d+(+e(i)>>a);if(r>=0&&r=0&&s0&&c>0){Xk(h,p,m,g,l);Hk(h,p,g,m,c);Xk(h,p,m,g,l);Hk(h,p,g,m,c);Xk(h,p,m,g,l);Hk(h,p,g,m,c)}else if(l>0){Xk(h,p,m,g,l);Xk(h,p,g,m,l);Xk(h,p,m,g,l);y=g}else if(c>0){Hk(h,p,m,g,c);Hk(h,p,g,m,c);Hk(h,p,m,g,c);y=g}const v=u?Math.pow(2,-2*a):1/tb(y);for(let t=0,e=h*p;t>a),y2:d+(s>>a)}}o.x=function(e){return arguments.length?(t=Yk(e),o):t};o.y=function(t){return arguments.length?(e=Yk(t),o):e};o.weight=function(t){return arguments.length?(n=Yk(t),o):n};o.size=function(t){if(!arguments.length)return[r,s];var e=+t[0],n=+t[1];if(!(e>=0&&n>=0))(0,p.z3)("invalid size");return r=e,s=n,o};o.cellSize=function(t){if(!arguments.length)return 1<=1))(0,p.z3)("invalid cell size");a=Math.floor(Math.log(t)/Math.LN2);return o};o.bandwidth=function(t){if(!arguments.length)return i;t=(0,p.YO)(t);if(t.length===1)t=[+t[0],+t[0]];if(t.length!==2)(0,p.z3)("invalid bandwidth");return i=t,o};return o}function Xk(t,e,n,i,r){const s=(r<<1)+1;for(let a=0;a=r){if(e>=s){o-=n[e-s+a*t]}i[e-r+a*t]=o/Math.min(e+1,t-1+s-e,s)}}}}function Hk(t,e,n,i,r){const s=(r<<1)+1;for(let a=0;a=r){if(o>=s){u-=n[a+(o-s)*t]}i[a+(o-r)*t]=u/Math.min(o+1,e-1+s-o,s)}}}}function Vk(t){zi.call(this,null,t)}Vk.Definition={type:"KDE2D",metadata:{generates:true},params:[{name:"size",type:"number",array:true,length:2,required:true},{name:"x",type:"field",required:true},{name:"y",type:"field",required:true},{name:"weight",type:"field"},{name:"groupby",type:"field",array:true},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:true,length:2},{name:"counts",type:"boolean",default:false},{name:"as",type:"string",default:"grid"}]};const Qk=["x","y","weight","size","cellSize","bandwidth"];function Kk(t,e){Qk.forEach((n=>e[n]!=null?t[n](e[n]):0));return t}(0,p.B)(Vk,zi,{transform(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=e.materialize(e.SOURCE).source,r=Zk(i,t.groupby),s=(t.groupby||[]).map(p.N6),a=Kk(Wk(),t),o=t.as||"grid",u=[];function l(t,e){for(let n=0;nbn(l({[o]:a(e,t.counts)},e.dims))));if(this.value)n.rem=this.value;this.value=n.source=n.add=u;return n}});function Zk(t,e){var n=[],i=t=>t(o),r,s,a,o,u,l;if(e==null){n.push(t)}else{for(r={},s=0,a=t.length;sn.push(o(t))))}if(s&&a){e.visit(u,(t=>{var e=s(t),n=a(t);if(e!=null&&n!=null&&(e=+e)===e&&(n=+n)===n){i.push([e,n])}}));n=n.concat({type:tE,geometry:{type:nE,coordinates:i}})}this.value={type:eE,features:n}}});function rE(t){zi.call(this,null,t)}rE.Definition={type:"GeoPath",metadata:{modifies:true},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:true},{name:"as",type:"string",default:"path"}]};(0,p.B)(rE,zi,{transform(t,e){var n=e.fork(e.ALL),i=this.value,r=t.field||p.D_,s=t.as||"path",a=n.SOURCE;if(!i||t.modified()){this.value=i=Ak(t.projection);n.materialize().reflow()}else{a=r===p.D_||e.modified(r.fields)?n.ADD_MOD:n.ADD}const o=sE(i,t.pointRadius);n.visit(a,(t=>t[s]=i(r(t))));i.pointRadius(o);return n.modifies(s)}});function sE(t,e){const n=t.pointRadius();t.context(null);if(e!=null){t.pointRadius(e)}return n}function aE(t){zi.call(this,null,t)}aE.Definition={type:"GeoPoint",metadata:{modifies:true},params:[{name:"projection",type:"projection",required:true},{name:"fields",type:"field",array:true,required:true,length:2},{name:"as",type:"string",array:true,length:2,default:["x","y"]}]};(0,p.B)(aE,zi,{transform(t,e){var n=t.projection,i=t.fields[0],r=t.fields[1],s=t.as||["x","y"],a=s[0],o=s[1],u;function l(t){const e=n([i(t),r(t)]);if(e){t[a]=e[0];t[o]=e[1]}else{t[a]=undefined;t[o]=undefined}}if(t.modified()){e=e.materialize().reflow(true).visit(e.SOURCE,l)}else{u=e.modified(i.fields)||e.modified(r.fields);e.visit(u?e.ADD_MOD:e.ADD,l)}return e.modifies(s)}});function oE(t){zi.call(this,null,t)}oE.Definition={type:"GeoShape",metadata:{modifies:true,nomod:true},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:true},{name:"as",type:"string",default:"shape"}]};(0,p.B)(oE,zi,{transform(t,e){var n=e.fork(e.ALL),i=this.value,r=t.as||"shape",s=n.ADD;if(!i||t.modified()){this.value=i=uE(Ak(t.projection),t.field||(0,p.ZZ)("datum"),t.pointRadius);n.materialize().reflow();s=n.SOURCE}n.visit(s,(t=>t[r]=i));return n.modifies(r)}});function uE(t,e,n){const i=n==null?n=>t(e(n)):i=>{var r=t.pointRadius(),s=t.pointRadius(n)(e(i));t.pointRadius(r);return s};i.context=e=>{t.context(e);return i};return i}function lE(t){zi.call(this,[],t);this.generator=Dk()}lE.Definition={type:"Graticule",metadata:{changes:true,generates:true},params:[{name:"extent",type:"array",array:true,length:2,content:{type:"number",array:true,length:2}},{name:"extentMajor",type:"array",array:true,length:2,content:{type:"number",array:true,length:2}},{name:"extentMinor",type:"array",array:true,length:2,content:{type:"number",array:true,length:2}},{name:"step",type:"number",array:true,length:2},{name:"stepMajor",type:"number",array:true,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:true,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]};(0,p.B)(lE,zi,{transform(t,e){var n=this.value,i=this.generator,r;if(!n.length||t.modified()){for(const e in t){if((0,p.Tn)(i[e])){i[e](t[e])}}}r=i();if(n.length){e.mod.push(wn(n[0],r))}else{e.add.push(bn(r))}n[0]=r;return e}});function cE(t){zi.call(this,null,t)}cE.Definition={type:"heatmap",metadata:{modifies:true},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:true},{name:"opacity",type:"number",expr:true},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]};(0,p.B)(cE,zi,{transform(t,e){if(!e.changed()&&!t.modified()){return e.StopPropagation}var n=e.materialize(e.SOURCE).source,i=t.resolve==="shared",r=t.field||p.D_,s=dE(t.opacity,t),a=fE(t.color,t),o=t.as||"image",u={$x:0,$y:0,$value:0,$max:i?(0,Ni.A)(n.map((t=>(0,Ni.A)(r(t).values)))):0};n.forEach((t=>{const e=r(t);const n=(0,p.X$)({},t,u);if(!i)n.$max=(0,Ni.A)(e.values||[]);t[o]=pE(e,n,a.dep?a:(0,p.dY)(a(n)),s.dep?s:(0,p.dY)(s(n)))}));return e.reflow(true).modifies(o)}});function fE(t,e){let n;if((0,p.Tn)(t)){n=n=>(0,Fk.Qh)(t(n,e));n.dep=hE(t)}else{n=(0,p.dY)((0,Fk.Qh)(t||"#888"))}return n}function dE(t,e){let n;if((0,p.Tn)(t)){n=n=>t(n,e);n.dep=hE(t)}else if(t){n=(0,p.dY)(t)}else{n=t=>t.$value/t.$max||0;n.dep=true}return n}function hE(t){if(!(0,p.Tn)(t))return false;const e=(0,p.M1)((0,p.nS)(t));return e.$x||e.$y||e.$value||e.$max}function pE(t,e,n,i){const r=t.width,s=t.height,a=t.x1||0,o=t.y1||0,u=t.x2||r,l=t.y2||s,c=t.values,f=c?t=>c[t]:p.v_,d=Ko(u-a,l-o),h=d.getContext("2d"),m=h.getImageData(0,0,u-a,l-o),g=m.data;for(let p=o,y=0;p{if(t[e]!=null)vE(n,e,t[e])}))}else{xk.forEach((e=>{if(t.modified(e))vE(n,e,t[e])}))}if(t.pointRadius!=null)n.path.pointRadius(t.pointRadius);if(t.fit)gE(n,t);return e.fork(e.NO_SOURCE|e.NO_FIELDS)}});function gE(t,e){const n=bE(e.fit);e.extent?t.fitExtent(e.extent,n):e.size?t.fitSize(e.size,n):0}function yE(t){const e=wk((t||"mercator").toLowerCase());if(!e)(0,p.z3)("Unrecognized projection type: "+t);return e()}function vE(t,e,n){if((0,p.Tn)(t[e]))t[e](n)}function bE(t){t=(0,p.YO)(t);return t.length===1?t[0]:{type:eE,features:t.reduce(((t,e)=>t.concat(xE(e))),[])}}function xE(t){return t.type===eE?t.features:(0,p.YO)(t).filter((t=>t!=null)).map((t=>t.type===tE?t:{type:tE,geometry:t}))}function _E(t,e){var n,i=1;if(t==null)t=0;if(e==null)e=0;function r(){var r,s=n.length,a,o=0,u=0;for(r=0;r=(f=(o+l)/2))o=f;else l=f;if(g=n>=(d=(u+c)/2))u=d;else c=d;if(r=s,!(s=s[y=g<<1|m]))return r[y]=a,t}h=+t._x.call(null,s.data);p=+t._y.call(null,s.data);if(e===h&&n===p)return a.next=s,r?r[y]=a:t._root=a,t;do{r=r?r[y]=new Array(4):t._root=new Array(4);if(m=e>=(f=(o+l)/2))o=f;else l=f;if(g=n>=(d=(u+c)/2))u=d;else c=d}while((y=g<<1|m)===(v=(p>=d)<<1|h>=f));return r[v]=s,r[y]=a,t}function kE(t){var e,n,i=t.length,r,s,a=new Array(i),o=new Array(i),u=Infinity,l=Infinity,c=-Infinity,f=-Infinity;for(n=0;nc)c=r;if(sf)f=s}if(u>c||l>f)return this;this.cover(u,l).cover(c,f);for(n=0;nt||t>=r||i>e||e>=s){l=(ec||(o=p.y0)>f||(u=p.x1)=y)<<1|t>=g){p=d[d.length-1];d[d.length-1]=d[d.length-1-m];d[d.length-1-m]=p}}else{var v=t-+this._x.call(null,h.data),b=e-+this._y.call(null,h.data),x=v*v+b*b;if(x=(d=(a+u)/2))a=d;else u=d;if(m=f>=(h=(o+l)/2))o=h;else l=h;if(!(e=n,n=n[g=m<<1|p]))return this;if(!n.length)break;if(e[g+1&3]||e[g+2&3]||e[g+3&3])i=e,y=g}while(n.data!==t)if(!(r=n,n=n.next))return this;if(s=n.next)delete n.next;if(r)return s?r.next=s:delete r.next,this;if(!e)return this._root=s,this;s?e[g]=s:delete e[g];if((n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length){if(i)i[y]=n;else this._root=n}return this}function BE(t){for(var e=0,n=t.length;el.index){var m=c-o.x-o.vx,g=f-o.y-o.vy,y=m*m+g*g;if(yc+p||sf+p||at.r){t.r=t[e].r}}}function u(){if(!e)return;var i,r=e.length,s;n=new Array(r);for(i=0;i(t=(KE*t+ZE)%JE)/JE}function eM(t){return t.x}function nM(t){return t.y}var iM=10,rM=Math.PI*(3-Math.sqrt(5));function sM(t){var e,n=1,i=.001,r=1-Math.pow(i,1/300),s=0,a=.6,o=new Map,u=(0,QE.O1)(f),l=(0,VE.A)("tick","end"),c=tM();if(t==null)t=[];function f(){d();l.call("tick",e);if(n1?(n==null?o.delete(t):o.set(t,p(n)),e):o.get(t)},find:function(e,n,i){var r=0,s=t.length,a,o,u,l,c;if(i==null)i=Infinity;else i*=i;for(r=0;r1?(l.on(t,n),e):l.on(t)}}}function aM(){var t,e,n,i,r=GE(-30),s,a=1,o=Infinity,u=.81;function l(n){var r,s=t.length,a=qE(t,eM,nM).visitAfter(f);for(i=n,r=0;r=o)return;if(t.data!==e||t.next){if(f===0)f=YE(n),p+=f*f;if(d===0)d=YE(n),p+=d*d;if(p[e(t,n,a),t]))),f;for(n=0,o=new Array(r);n=0;)n.tick()}else{if(n.stopped())n.restart();if(!i)return e.StopPropagation}}return this.finish(t,e)},finish(t,e){const n=e.dataflow;for(let o=this._argops,u=0,l=o.length,c;ut.touch(e).run()}function bM(t,e){const n=sM(t),i=n.stop,r=n.restart;let s=false;n.stopped=()=>s;n.restart=()=>(s=false,r());n.stop=()=>(s=true,i());return xM(n,e,true).on("end",(()=>s=true))}function xM(t,e,n,i){var r=(0,p.YO)(e.forces),s,a,o,u;for(s=0,a=pM.length;se(t,n):e)}function kM(t){var e=0,n=t.children,i=n&&n.length;if(!i)e=1;else while(--i>=0)e+=n[i].value;t.value=e}function EM(){return this.eachAfter(kM)}function MM(t,e){let n=-1;for(const i of this){t.call(e,i,++n,this)}return this}function DM(t,e){var n=this,i=[n],r,s,a=-1;while(n=i.pop()){t.call(e,n,++a,this);if(r=n.children){for(s=r.length-1;s>=0;--s){i.push(r[s])}}}return this}function CM(t,e){var n=this,i=[n],r=[],s,a,o,u=-1;while(n=i.pop()){r.push(n);if(s=n.children){for(a=0,o=s.length;a=0)n+=i[r].value;e.value=n}))}function BM(t){return this.eachBefore((function(e){if(e.children){e.children.sort(t)}}))}function zM(t){var e=this,n=$M(e,t),i=[e];while(e!==n){e=e.parent;i.push(e)}var r=i.length;while(t!==n){i.splice(r,0,t);t=t.parent}return i}function $M(t,e){if(t===e)return t;var n=t.ancestors(),i=e.ancestors(),r=null;t=n.pop();e=i.pop();while(t===e){r=t;t=n.pop();e=i.pop()}return r}function RM(){var t=this,e=[t];while(t=t.parent){e.push(t)}return e}function OM(){return Array.from(this)}function TM(){var t=[];this.eachBefore((function(e){if(!e.children){t.push(e)}}));return t}function NM(){var t=this,e=[];t.each((function(n){if(n!==t){e.push({source:n.parent,target:n})}}));return e}function*LM(){var t=this,e,n=[t],i,r,s;do{e=n.reverse(),n=[];while(t=e.pop()){yield t;if(i=t.children){for(r=0,s=i.length;r=0;--o){r.push(s=a[o]=new YM(a[o]));s.parent=i;s.depth=i.depth+1}}}return n.eachBefore(GM)}function qM(){return PM(this).eachBefore(jM)}function IM(t){return t.children}function UM(t){return Array.isArray(t)?t[1]:null}function jM(t){if(t.data.value!==undefined)t.value=t.data.value;t.data=t.data.data}function GM(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function YM(t){this.data=t;this.depth=this.height=0;this.parent=null}YM.prototype=PM.prototype={constructor:YM,count:EM,each:MM,eachAfter:CM,eachBefore:DM,find:FM,sum:SM,sort:BM,path:zM,ancestors:RM,descendants:OM,leaves:TM,links:NM,copy:qM,[Symbol.iterator]:LM};function WM(t){return t==null?null:XM(t)}function XM(t){if(typeof t!=="function")throw new Error;return t}function HM(){return 0}function VM(t){return function(){return t}}const QM=1664525;const KM=1013904223;const ZM=4294967296;function JM(){let t=1;return()=>(t=(QM*t+KM)%ZM)/ZM}function tD(t){return typeof t==="object"&&"length"in t?t:Array.from(t)}function eD(t,e){let n=t.length,i,r;while(n){r=e()*n--|0;i=t[n];t[n]=t[r];t[r]=i}return t}function nD(t){return iD(t,lcg())}function iD(t,e){var n=0,i=(t=eD(Array.from(t),e)).length,r=[],s,a;while(n0&&n*n>i*i+r*r}function oD(t,e){for(var n=0;n1e-6?(D+Math.sqrt(D*D-4*M*C))/(2*M):C/D);return{x:i+w+A*F,y:r+k+E*F,r:F}}function dD(t,e,n){var i=t.x-e.x,r,s,a=t.y-e.y,o,u,l=i*i+a*a;if(l){s=e.r+n.r,s*=s;u=t.r+n.r,u*=u;if(s>u){r=(l+u-s)/(2*l);o=Math.sqrt(Math.max(0,u/l-r*r));n.x=t.x-r*i-o*a;n.y=t.y-r*a+o*i}else{r=(l+s-u)/(2*l);o=Math.sqrt(Math.max(0,s/l-r*r));n.x=e.x+r*i-o*a;n.y=e.y+r*a+o*i}}else{n.x=e.x+n.r;n.y=e.y}}function hD(t,e){var n=t.r+e.r-1e-6,i=e.x-t.x,r=e.y-t.y;return n>0&&n*n>i*i+r*r}function pD(t){var e=t._,n=t.next._,i=e.r+n.r,r=(e.x*n.r+n.x*e.r)/i,s=(e.y*n.r+n.y*e.r)/i;return r*r+s*s}function mD(t){this._=t;this.next=null;this.previous=null}function gD(t,e){if(!(s=(t=tD(t)).length))return 0;var n,i,r,s,a,o,u,l,c,f,d;n=t[0],n.x=0,n.y=0;if(!(s>1))return n.r;i=t[1],n.x=-i.r,i.x=n.r,i.y=0;if(!(s>2))return n.r+i.r;dD(i,n,r=t[2]);n=new mD(n),i=new mD(i),r=new mD(r);n.next=r.previous=i;i.next=n.previous=r;r.next=i.previous=n;t:for(u=3;uzD(n(t,e,i))));const e=t.map($D);const o=new Set(t).add("");for(const n of e){if(!o.has(n)){o.add(n);t.push(n);e.push($D(n));r.push(CD)}}s=(e,n)=>t[n];a=(t,n)=>e[n]}for(l=0,o=r.length;l=0;--t){d=r[t];if(d.data!==CD)break;d.data=null}}c.parent=MD;c.eachBefore((function(t){t.depth=t.parent.depth+1;--o})).eachBefore(GM);c.parent=null;if(o>0)throw new Error("cycle");return c}i.id=function(e){return arguments.length?(t=WM(e),i):t};i.parentId=function(t){return arguments.length?(e=WM(t),i):e};i.path=function(t){return arguments.length?(n=WM(t),i):n};return i}function zD(t){t=`${t}`;let e=t.length;if(RD(t,e-1)&&!RD(t,e-2))t=t.slice(0,-1);return t[0]==="/"?t:`/${t}`}function $D(t){let e=t.length;if(e<2)return"";while(--e>1)if(RD(t,e))break;return t.slice(0,e)}function RD(t,e){if(t[e]==="/"){let n=0;while(e>0&&t[--e]==="\\")++n;if((n&1)===0)return true}return false}function OD(t,e){return t.parent===e.parent?1:2}function TD(t){var e=t.children;return e?e[0]:t.t}function ND(t){var e=t.children;return e?e[e.length-1]:t.t}function LD(t,e,n){var i=n/(e.i-t.i);e.c-=i;e.s+=n;t.c+=i;e.z+=n;e.m+=n}function PD(t){var e=0,n=0,i=t.children,r=i.length,s;while(--r>=0){s=i[r];s.z+=e;s.m+=e;e+=s.s+(n+=s.c)}}function qD(t,e,n){return t.a.parent===e.parent?t.a:n}function ID(t,e){this._=t;this.parent=null;this.children=null;this.A=null;this.a=this;this.z=0;this.m=0;this.c=0;this.s=0;this.t=null;this.i=e}ID.prototype=Object.create(YM.prototype);function UD(t){var e=new ID(t,0),n,i=[e],r,s,a,o;while(n=i.pop()){if(s=n._.children){n.children=new Array(o=s.length);for(a=o-1;a>=0;--a){i.push(r=n.children[a]=new ID(s[a],a));r.parent=n}}}(e.parent=new ID(null,0)).children=[e];return e}function jD(){var t=OD,e=1,n=1,i=null;function r(r){var o=UD(r);o.eachAfter(s),o.parent.m=-o.z;o.eachBefore(a);if(i)r.eachBefore(u);else{var l=r,c=r,f=r;r.eachBefore((function(t){if(t.xc.x)c=t;if(t.depth>f.depth)f=t}));var d=l===c?1:t(l,c)/2,h=d-l.x,p=e/(c.x+d+h),m=n/(f.depth||1);r.eachBefore((function(t){t.x=(t.x+h)*p;t.y=t.depth*m}))}return r}function s(e){var n=e.children,i=e.parent.children,r=e.i?i[e.i-1]:null;if(n){PD(e);var s=(n[0].z+n[n.length-1].z)/2;if(r){e.z=r.z+t(e._,r._);e.m=e.z-s}else{e.z=s}}else if(r){e.z=r.z+t(e._,r._)}e.parent.A=o(e,r,e.parent.A||i[0])}function a(t){t._.x=t.z+t.parent.m;t.m+=t.parent.m}function o(e,n,i){if(n){var r=e,s=e,a=n,o=r.parent.children[0],u=r.m,l=s.m,c=a.m,f=o.m,d;while(a=ND(a),r=TD(r),a&&r){o=TD(o);s=ND(s);s.a=e;d=a.z+c-r.z-u+t(a._,r._);if(d>0){LD(qD(a,e,i),e,d);u+=d;l+=d}c+=a.m;u+=r.m;f+=o.m;l+=s.m}if(a&&!ND(s)){s.t=a;s.m+=c-l}if(r&&!TD(o)){o.t=r;o.m+=u-f;i=e}}return i}function u(t){t.x*=e;t.y=t.depth*n}r.separation=function(e){return arguments.length?(t=e,r):t};r.size=function(t){return arguments.length?(i=false,e=+t[0],n=+t[1],r):i?null:[e,n]};r.nodeSize=function(t){return arguments.length?(i=true,e=+t[0],n=+t[1],r):i?[e,n]:null};return r}function GD(t,e){return t.parent===e.parent?1:2}function YD(t){return t.reduce(WD,0)/t.length}function WD(t,e){return t+e.x}function XD(t){return 1+t.reduce(HD,0)}function HD(t,e){return Math.max(t,e.y)}function VD(t){var e;while(e=t.children)t=e[0];return t}function QD(t){var e;while(e=t.children)t=e[e.length-1];return t}function KD(){var t=GD,e=1,n=1,i=false;function r(r){var s,a=0;r.eachAfter((function(e){var n=e.children;if(n){e.x=YD(n);e.y=XD(n)}else{e.x=s?a+=t(e,s):0;e.y=0;s=e}}));var o=VD(r),u=QD(r),l=o.x-t(o,u)/2,c=u.x+t(u,o)/2;return r.eachAfter(i?function(t){t.x=(t.x-r.x)*e;t.y=(r.y-t.y)*n}:function(t){t.x=(t.x-l)/(c-l)*e;t.y=(1-(r.y?t.y/r.y:1))*n})}r.separation=function(e){return arguments.length?(t=e,r):t};r.size=function(t){return arguments.length?(i=false,e=+t[0],n=+t[1],r):i?null:[e,n]};r.nodeSize=function(t){return arguments.length?(i=true,e=+t[0],n=+t[1],r):i?[e,n]:null};return r}function ZD(t,e,n,i,r){var s=t.children,a,o=s.length,u,l=new Array(o+1);for(l[0]=u=a=0;a=e-1){var u=s[t];u.x0=i,u.y0=r;u.x1=a,u.y1=o;return}var f=l[t],d=n/2+f,h=t+1,p=e-1;while(h>>1;if(l[m]o-r){var v=n?(i*y+a*g)/n:a;c(t,h,g,i,r,v,o);c(h,e,y,v,r,a,o)}else{var b=n?(r*y+o*g)/n:o;c(t,h,g,i,r,a,b);c(h,e,y,i,b,a,o)}}}function JD(t,e,n,i,r){var s=t.children,a,o=-1,u=s.length,l=t.value&&(r-n)/t.value;while(++ov)v=l;w=g*g*_;b=Math.max(v/w,w/y);if(b>x){g-=l;break}x=b}a.push(u={value:g,dice:h1?e:1)};return n}(eC);const rC=function t(e){function n(t,n,i,r,s){if((a=t._squarify)&&a.ratio===e){var a,o,u,l,c=-1,f,d=a.length,h=t.value;while(++c1?e:1)};return n}(eC);function sC(){var t=iC,e=false,n=1,i=1,r=[0],s=HM,a=HM,o=HM,u=HM,l=HM;function c(t){t.x0=t.y0=0;t.x1=n;t.y1=i;t.eachBefore(f);r=[0];if(e)t.eachBefore(AD);return t}function f(e){var n=r[e.depth],i=e.x0+n,c=e.y0+n,f=e.x1-n,d=e.y1-n;if(f{const r=t.data;if(n(r))i[e(r)]=t}));t.lookup=i;return t}function oC(t){zi.call(this,null,t)}oC.Definition={type:"Nest",metadata:{treesource:true,changes:true},params:[{name:"keys",type:"field",array:true},{name:"generate",type:"boolean"}]};const uC=t=>t.values;(0,p.B)(oC,zi,{transform(t,e){if(!e.source){(0,p.z3)("Nest transform requires an upstream data source.")}var n=t.generate,i=t.modified(),r=e.clone(),s=this.value;if(!s||i||e.changed()){if(s){s.each((t=>{if(t.children&&gn(t.data)){r.rem.push(t.data)}}))}this.value=s=PM({values:(0,p.YO)(t.keys).reduce(((t,e)=>{t.key(e);return t}),lC()).entries(r.source)},uC);if(n){s.each((t=>{if(t.children){t=bn(t.data);r.add.push(t);r.source.push(t)}}))}aC(s,yn,yn)}r.source.root=s;return r}});function lC(){const t=[],e={entries:t=>i(n(t,0),0),key:n=>(t.push(n),e)};function n(e,i){if(i>=t.length){return e}const r=e.length,s=t[i++],a={},o={};let u=-1,l,c,f;while(++ut.length)return e;const r=[];for(const t in e){r.push({key:t,values:i(e[t],n)})}return r}return e}function cC(t){zi.call(this,null,t)}const fC=(t,e)=>t.parent===e.parent?1:2;(0,p.B)(cC,zi,{transform(t,e){if(!e.source||!e.source.root){(0,p.z3)(this.constructor.name+" transform requires a backing tree data source.")}const n=this.layout(t.method),i=this.fields,r=e.source.root,s=t.as||i;if(t.field)r.sum(t.field);else r.count();if(t.sort)r.sort(An(t.sort,(t=>t.data)));dC(n,this.params,t);if(n.separation){n.separation(t.separation!==false?fC:p.xH)}try{this.value=n(r)}catch(a){(0,p.z3)(a)}r.each((t=>hC(t,i,s)));return e.reflow(t.modified()).modifies(s).modifies("leaf")}});function dC(t,e,n){for(let i,r=0,s=e.length;rs[yn(t)]=1));i.each((t=>{const e=t.data,n=t.parent&&t.parent.data;if(n&&s[yn(e)]&&s[yn(n)]){r.add.push(bn({source:n,target:e}))}}));this.value=r.add}else if(e.changed(e.MOD)){e.visit(e.MOD,(t=>s[yn(t)]=1));n.forEach((t=>{if(s[yn(t.source)]||s[yn(t.target)]){r.mod.push(t)}}))}return r}});const AC={binary:ZD,dice:kD,slice:JD,slicedice:tC,squarify:iC,resquarify:rC};const kC=["x0","y0","x1","y1","depth","children"];function EC(t){cC.call(this,t)}EC.Definition={type:"Treemap",metadata:{tree:true,modifies:true},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:false},{name:"size",type:"number",array:true,length:2},{name:"as",type:"string",array:true,length:kC.length,default:kC}]};(0,p.B)(EC,cC,{layout(){const t=sC();t.ratio=e=>{const n=t.tile();if(n.ratio)t.tile(n.ratio(e))};t.method=e=>{if((0,p.mQ)(AC,e))t.tile(AC[e]);else(0,p.z3)("Unrecognized Treemap layout method: "+e)};return t},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:kC});const MC=4278190080;function DC(t,e){const n=t.bitmap();(e||[]).forEach((e=>n.set(t(e.boundary[0]),t(e.boundary[3]))));return[n,undefined]}function CC(t,e,n,i,r){const s=t.width,a=t.height,o=i||r,u=Ko(s,a).getContext("2d"),l=Ko(s,a).getContext("2d"),c=o&&Ko(s,a).getContext("2d");n.forEach((t=>SC(u,t,false)));SC(l,e,false);if(o){SC(c,e,true)}const f=FC(u,s,a),d=FC(l,s,a),h=o&&FC(c,s,a),p=t.bitmap(),m=o&&t.bitmap();let g,y,v,b,x,_,w,A;for(y=0;y{e.items.forEach((e=>SC(t,e.items,n)))}))}else{Qp[i].draw(t,{items:n?e.map(BC):e})}}function BC(t){const e=_n(t,{});if(e.stroke&&e.strokeOpacity!==0||e.fill&&e.fillOpacity!==0){return{...e,strokeOpacity:1,stroke:"#000",fillOpacity:0}}return e}const zC=5,$C=31,RC=32,OC=new Uint32Array(RC+1),TC=new Uint32Array(RC+1);TC[0]=0;OC[0]=~TC[0];for(let yW=1;yW<=RC;++yW){TC[yW]=TC[yW-1]<<1|1;OC[yW]=~TC[yW]}function NC(t,e){const n=new Uint32Array(~~((t*e+RC)/RC));function i(t,e){n[t]|=e}function r(t,e){n[t]&=e}return{array:n,get:(e,i)=>{const r=i*t+e;return n[r>>>zC]&1<<(r&$C)},set:(e,n)=>{const r=n*t+e;i(r>>>zC,1<<(r&$C))},clear:(e,n)=>{const i=n*t+e;r(i>>>zC,~(1<<(i&$C)))},getRange:(e,i,r,s)=>{let a=s,o,u,l,c;for(;a>=i;--a){o=a*t+e;u=a*t+r;l=o>>>zC;c=u>>>zC;if(l===c){if(n[l]&OC[o&$C]&TC[(u&$C)+1]){return true}}else{if(n[l]&OC[o&$C])return true;if(n[c]&TC[(u&$C)+1])return true;for(let t=l+1;t{let a,o,u,l,c;for(;n<=s;++n){a=n*t+e;o=n*t+r;u=a>>>zC;l=o>>>zC;if(u===l){i(u,OC[a&$C]&TC[(o&$C)+1])}else{i(u,OC[a&$C]);i(l,TC[(o&$C)+1]);for(c=u+1;c{let a,o,u,l,c;for(;n<=s;++n){a=n*t+e;o=n*t+i;u=a>>>zC;l=o>>>zC;if(u===l){r(u,TC[a&$C]|OC[(o&$C)+1])}else{r(u,TC[a&$C]);r(l,OC[(o&$C)+1]);for(c=u+1;cn<0||i<0||s>=e||r>=t}}function LC(t,e,n){const i=Math.max(1,Math.sqrt(t*e/1e6)),r=~~((t+2*n+i)/i),s=~~((e+2*n+i)/i),a=t=>~~((t+n)/i);a.invert=t=>t*i-n;a.bitmap=()=>NC(r,s);a.ratio=i;a.padding=n;a.width=t;a.height=e;return a}function PC(t,e,n,i){const r=t.width,s=t.height;return function(t){const e=t.datum.datum.items[i].items,n=e.length,a=t.datum.fontSize,o=Ap.width(t.datum,t.datum.text);let u=0,l,c,f,d,h,p,m;for(let i=0;i=u){u=m;t.x=h;t.y=p}}h=o/2;p=a/2;l=t.x-h;c=t.x+h;f=t.y-p;d=t.y+p;t.align="center";if(l<0&&c<=r){t.align="left"}else if(0<=l&&rr||e-(a=i/2)<0||e+a>s}function IC(t,e,n,i,r,s,a,o){const u=r*s/(i*2),l=t(e-u),c=t(e+u),f=t(n-(s=s/2)),d=t(n+s);return a.outOfBounds(l,f,c,d)||a.getRange(l,f,c,d)||o&&o.getRange(l,f,c,d)}function UC(t,e,n,i){const r=t.width,s=t.height,a=e[0],o=e[1];function u(e,n,i,u,l){const c=t.invert(e),f=t.invert(n);let d=i,h=s,p;if(!qC(c,f,u,l,r,s)&&!IC(t,c,f,l,u,d,a,o)&&!IC(t,c,f,l,u,l,a,null)){while(h-d>=1){p=(d+h)/2;if(IC(t,c,f,l,u,p,a,o)){h=p}else{d=p}}if(d>i){return[c,f,d,true]}}}return function(e){const o=e.datum.datum.items[i].items,l=o.length,c=e.datum.fontSize,f=Ap.width(e.datum,e.datum.text);let d=n?c:0,h=false,p=false,m=0,g,y,v,b,x,_,w,A,k,E,M,D,C,F,S,B,z;for(let i=0;iy){z=g;g=y;y=z}if(v>b){z=v;v=b;b=z}k=t(g);M=t(y);E=~~((k+M)/2);D=t(v);F=t(b);C=~~((D+F)/2);for(w=E;w>=k;--w){for(A=C;A>=D;--A){B=u(w,A,d,f,c);if(B){[e.x,e.y,d,h]=B}}}for(w=E;w<=M;++w){for(A=C;A<=F;++A){B=u(w,A,d,f,c);if(B){[e.x,e.y,d,h]=B}}}if(!h&&!n){S=Math.abs(y-g+b-v);x=(g+y)/2;_=(v+b)/2;if(S>=m&&!qC(x,_,f,c,r,s)&&!IC(t,x,_,c,f,c,a,null)){m=S;e.x=x;e.y=_;p=true}}}if(h||p){x=f/2;_=c/2;a.setRange(t(e.x-x),t(e.y-_),t(e.x+x),t(e.y+_));e.align="center";e.baseline="middle";return true}else{return false}}}const jC=[-1,-1,1,1];const GC=[-1,1,-1,1];function YC(t,e,n,i){const r=t.width,s=t.height,a=e[0],o=e[1],u=t.bitmap();return function(e){const l=e.datum.datum.items[i].items,c=l.length,f=e.datum.fontSize,d=Ap.width(e.datum,e.datum.text),h=[];let p=n?f:0,m=false,g=false,y=0,v,b,x,_,w,A,k,E,M,D,C,F;for(let i=0;i=1){C=(M+D)/2;if(IC(t,w,A,f,d,C,a,o)){D=C}else{M=C}}if(M>p){e.x=w;e.y=A;p=M;m=true}}}if(!m&&!n){F=Math.abs(b-v+_-x);w=(v+b)/2;A=(x+_)/2;if(F>=y&&!qC(w,A,d,f,r,s)&&!IC(t,w,A,f,d,f,a,null)){y=F;e.x=w;e.y=A;g=true}}}if(m||g){w=d/2;A=f/2;a.setRange(t(e.x-w),t(e.y-A),t(e.x+w),t(e.y+A));e.align="center";e.baseline="middle";return true}else{return false}}}const WC=["right","center","left"],XC=["bottom","middle","top"];function HC(t,e,n,i){const r=t.width,s=t.height,a=e[0],o=e[1],u=i.length;return function(e){const l=e.boundary,c=e.datum.fontSize;if(l[2]<0||l[5]<0||l[0]>r||l[3]>s){return false}let f=e.textWidth??0,d,h,p,m,g,y,v,b,x,_,w,A,k,E,M;for(let r=0;r>>2&3)-1;p=d===0&&h===0||i[r]<0;m=d&&h?Math.SQRT1_2:1;g=i[r]<0?-1:1;y=l[1+d]+i[r]*d*m;w=l[4+h]+g*c*h/2+i[r]*h*m;b=w-c/2;x=w+c/2;A=t(y);E=t(b);M=t(x);if(!f){if(!VC(A,A,E,M,a,o,y,y,b,x,l,p)){continue}else{f=Ap.width(e.datum,e.datum.text)}}_=y+g*f*d/2;y=_-f/2;v=_+f/2;A=t(y);k=t(v);if(VC(A,k,E,M,a,o,y,v,b,x,l,p)){e.x=!d?_:d*g<0?v:y;e.y=!h?w:h*g<0?x:b;e.align=WC[d*g+1];e.baseline=XC[h*g+1];a.setRange(A,E,k,M);return true}}return false}}function VC(t,e,n,i,r,s,a,o,u,l,c,f){return!(r.outOfBounds(t,n,e,i)||(f&&s||r).getRange(t,n,e,i))}const QC=0,KC=4,ZC=8,JC=0,tF=1,eF=2;const nF={"top-left":QC+JC,top:QC+tF,"top-right":QC+eF,left:KC+JC,middle:KC+tF,right:KC+eF,"bottom-left":ZC+JC,bottom:ZC+tF,"bottom-right":ZC+eF};const iF={naive:PC,"reduced-search":UC,floodfill:YC};function rF(t,e,n,i,r,s,a,o,u,l,c){if(!t.length)return t;const f=Math.max(i.length,r.length),d=sF(i,f),h=aF(r,f),p=oF(t[0].datum),m=p==="group"&&t[0].datum.items[u].marktype,g=m==="area",y=uF(p,m,o,u),v=l===null||l===Infinity,b=g&&c==="naive";let x=-1,_=-1;const w=t.map((t=>{const e=v?Ap.width(t,t.text):undefined;x=Math.max(x,e);_=Math.max(_,t.fontSize);return{datum:t,opacity:0,x:undefined,y:undefined,align:undefined,baseline:undefined,boundary:y(t),textWidth:e}}));l=l===null||l===Infinity?Math.max(x,_)+Math.max(...i):l;const A=LC(e[0],e[1],l);let k;if(!b){if(n){w.sort(((t,e)=>n(t.datum,e.datum)))}let e=false;for(let t=0;tt.datum));k=s.length||i?CC(A,i||[],s,e,g):DC(A,a&&w)}const E=g?iF[c](A,k,a,u):HC(A,k,h,d);w.forEach((t=>t.opacity=+E(t)));return w}function sF(t,e){const n=new Float64Array(e),i=t.length;for(let r=0;r[t.x,t.x,t.x,t.y,t.y,t.y];if(!t){return r}else if(t==="line"||t==="area"){return t=>r(t.datum)}else if(e==="line"){return t=>{const e=t.datum.items[i].items;return r(e.length?e[n==="start"?0:e.length-1]:{x:NaN,y:NaN})}}else{return t=>{const e=t.datum.bounds;return[e.x1,(e.x1+e.x2)/2,e.x2,e.y1,(e.y1+e.y2)/2,e.y2]}}}const lF=["x","y","opacity","align","baseline"];const cF=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function fF(t){zi.call(this,null,t)}fF.Definition={type:"Label",metadata:{modifies:true},params:[{name:"size",type:"number",array:true,length:2,required:true},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:true,default:cF},{name:"offset",type:"number",array:true,default:[1]},{name:"padding",type:"number",default:0,null:true},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:true},{name:"avoidMarks",type:"data",array:true},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:true,length:lF.length,default:lF}]};(0,p.B)(fF,zi,{transform(t,e){function n(n){const i=t[n];return(0,p.Tn)(i)&&e.modified(i.fields)}const i=t.modified();if(!(i||e.changed(e.ADD_REM)||n("sort")))return;if(!t.size||t.size.length!==2){(0,p.z3)("Size parameter should be specified as a [width, height] array.")}const r=t.as||lF;rF(e.materialize(e.SOURCE).source||[],t.size,t.sort,(0,p.YO)(t.offset==null?1:t.offset),(0,p.YO)(t.anchor||cF),t.avoidMarks||[],t.avoidBaseMark!==false,t.lineAnchor||"end",t.markIndex||0,t.padding===undefined?0:t.padding,t.method||"naive").forEach((t=>{const e=t.datum;e[r[0]]=t.x;e[r[1]]=t.y;e[r[2]]=t.opacity;e[r[3]]=t.align;e[r[4]]=t.baseline}));return e.reflow(i).modifies(r)}});function dF(t,e){var n=[],i=function(t){return t(o)},r,s,a,o,u,l;if(e==null){n.push(t)}else{for(r={},s=0,a=t.length;s{Wr(e,t.x,t.y,t.bandwidth||.3).forEach((t=>{const n={};for(let i=0;it==="poly"?e:t==="quad"?2:1;function gF(t){zi.call(this,null,t)}gF.Definition={type:"Regression",metadata:{generates:true},params:[{name:"x",type:"field",required:true},{name:"y",type:"field",required:true},{name:"groupby",type:"field",array:true},{name:"method",type:"string",default:"linear",values:Object.keys(pF)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:true,length:2},{name:"params",type:"boolean",default:false},{name:"as",type:"string",array:true}]};(0,p.B)(gF,zi,{transform(t,e){const n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const i=e.materialize(e.SOURCE).source,r=dF(i,t.groupby),s=(t.groupby||[]).map(p.N6),a=t.method||"linear",o=t.order==null?3:t.order,u=mF(a,o),l=t.as||[(0,p.N6)(t.x),(0,p.N6)(t.y)],c=pF[a],f=[];let d=t.extent;if(!(0,p.mQ)(pF,a)){(0,p.z3)("Invalid regression method: "+a)}if(d!=null){if(a==="log"&&d[0]<=0){e.dataflow.warn("Ignoring extent with values <= 0 for log regression.");d=null}}r.forEach((n=>{const i=n.length;if(i<=u){e.dataflow.warn("Skipping regression with more parameters than data points.");return}const r=c(n,t.x,t.y,o);if(t.params){f.push(bn({keys:n.dims,coef:r.coef,rSquared:r.rSquared}));return}const h=d||(0,p.Xx)(n,t.x),m=t=>{const e={};for(let i=0;im([t,r.predict(t)])))}else{Kr(r.predict,h,25,200).forEach(m)}}));if(this.value)n.rem=this.value;this.value=n.add=n.source=f}return n}});const yF=11102230246251565e-32;const vF=134217729;const bF=(3+8*yF)*yF;function xF(t,e,n,i,r){let s,a,o,u;let l=e[0];let c=i[0];let f=0;let d=0;if(c>l===c>-l){s=l;l=e[++f]}else{s=c;c=i[++d]}let h=0;if(fl===c>-l){a=l+s;o=s-(a-l);l=e[++f]}else{a=c+s;o=s-(a-c);c=i[++d]}s=a;if(o!==0){r[h++]=o}while(fl===c>-l){a=s+l;u=a-s;o=s-(a-u)+(l-u);l=e[++f]}else{a=s+c;u=a-s;o=s-(a-u)+(c-u);c=i[++d]}s=a;if(o!==0){r[h++]=o}}}while(f=S||-F>=S){return F}f=t-E;o=t-(E+f)+(f-r);f=n-M;l=n-(M+f)+(f-r);f=e-D;u=e-(D+f)+(f-s);f=i-C;c=i-(C+f)+(f-s);if(o===0&&u===0&&l===0&&c===0){return F}S=CF*a+bF*Math.abs(F);F+=E*c+C*o-(D*l+M*u);if(F>=S||-F>=S)return F;x=o*C;d=vF*o;h=d-(d-o);p=o-h;d=vF*C;m=d-(d-C);g=C-m;_=p*g-(x-h*m-p*m-h*g);w=u*M;d=vF*u;h=d-(d-u);p=u-h;d=vF*M;m=d-(d-M);g=M-m;A=p*g-(w-h*m-p*m-h*g);y=_-A;f=_-y;$F[0]=_-(y+f)+(f-A);v=x+y;f=v-x;b=x-(v-f)+(y-f);y=b-w;f=b-y;$F[1]=b-(y+f)+(f-w);k=v+y;f=k-v;$F[2]=v-(k-f)+(y-f);$F[3]=k;const B=xF(4,FF,4,$F,SF);x=E*c;d=vF*E;h=d-(d-E);p=E-h;d=vF*c;m=d-(d-c);g=c-m;_=p*g-(x-h*m-p*m-h*g);w=D*l;d=vF*D;h=d-(d-D);p=D-h;d=vF*l;m=d-(d-l);g=l-m;A=p*g-(w-h*m-p*m-h*g);y=_-A;f=_-y;$F[0]=_-(y+f)+(f-A);v=x+y;f=v-x;b=x-(v-f)+(y-f);y=b-w;f=b-y;$F[1]=b-(y+f)+(f-w);k=v+y;f=k-v;$F[2]=v-(k-f)+(y-f);$F[3]=k;const z=xF(B,SF,4,$F,BF);x=o*c;d=vF*o;h=d-(d-o);p=o-h;d=vF*c;m=d-(d-c);g=c-m;_=p*g-(x-h*m-p*m-h*g);w=u*l;d=vF*u;h=d-(d-u);p=u-h;d=vF*l;m=d-(d-l);g=l-m;A=p*g-(w-h*m-p*m-h*g);y=_-A;f=_-y;$F[0]=_-(y+f)+(f-A);v=x+y;f=v-x;b=x-(v-f)+(y-f);y=b-w;f=b-y;$F[1]=b-(y+f)+(f-w);k=v+y;f=k-v;$F[2]=v-(k-f)+(y-f);$F[3]=k;const $=xF(z,BF,4,$F,zF);return zF[$-1]}function OF(t,e,n,i,r,s){const a=(e-s)*(n-r);const o=(t-r)*(i-s);const u=a-o;if(a===0||o===0||a>0!==o>0)return u;const l=Math.abs(a+o);if(Math.abs(u)>=MF*l)return u;return-RF(t,e,n,i,r,s,l)}function TF(t,e,n,i,r,s){return(e-s)*(n-r)-(t-r)*(i-s)}const NF=(7+56*yF)*yF;const LF=(3+28*yF)*yF;const PF=(26+288*yF)*yF*yF;const qF=EF(4);const IF=EF(4);const UF=EF(4);const jF=EF(4);const GF=EF(4);const YF=EF(4);const WF=EF(4);const XF=EF(4);const HF=EF(4);const VF=EF(8);const QF=EF(8);const KF=EF(8);const ZF=EF(4);const JF=EF(8);const tS=EF(8);const eS=EF(8);const nS=EF(12);let iS=EF(192);let rS=EF(192);function sS(t,e,n){t=sum(t,iS,e,n,rS);const i=iS;iS=rS;rS=i;return t}function aS(t,e,n,i,r,s,a,o){let u,l,c,f,d,h,p,m,g,y,v,b,x,_,w,A;if(t===0){if(e===0){a[0]=0;o[0]=0;return 1}else{A=-e;v=A*n;l=splitter*A;c=l-(l-A);f=A-c;l=splitter*n;d=l-(l-n);h=n-d;a[0]=f*h-(v-c*d-f*d-c*h);a[1]=v;v=e*r;l=splitter*e;c=l-(l-e);f=e-c;l=splitter*r;d=l-(l-r);h=r-d;o[0]=f*h-(v-c*d-f*d-c*h);o[1]=v;return 2}}else{if(e===0){v=t*i;l=splitter*t;c=l-(l-t);f=t-c;l=splitter*i;d=l-(l-i);h=i-d;a[0]=f*h-(v-c*d-f*d-c*h);a[1]=v;A=-t;v=A*s;l=splitter*A;c=l-(l-A);f=A-c;l=splitter*s;d=l-(l-s);h=s-d;o[0]=f*h-(v-c*d-f*d-c*h);o[1]=v;return 2}else{v=t*i;l=splitter*t;c=l-(l-t);f=t-c;l=splitter*i;d=l-(l-i);h=i-d;b=f*h-(v-c*d-f*d-c*h);x=e*n;l=splitter*e;c=l-(l-e);f=e-c;l=splitter*n;d=l-(l-n);h=n-d;_=f*h-(x-c*d-f*d-c*h);p=b-_;u=b-p;a[0]=b-(p+u)+(u-_);m=v+p;u=m-v;y=v-(m-u)+(p-u);p=y-x;u=y-p;a[1]=y-(p+u)+(u-x);w=m+p;u=w-m;a[2]=m-(w-u)+(p-u);a[3]=w;v=e*r;l=splitter*e;c=l-(l-e);f=e-c;l=splitter*r;d=l-(l-r);h=r-d;b=f*h-(v-c*d-f*d-c*h);x=t*s;l=splitter*t;c=l-(l-t);f=t-c;l=splitter*s;d=l-(l-s);h=s-d;_=f*h-(x-c*d-f*d-c*h);p=b-_;u=b-p;o[0]=b-(p+u)+(u-_);m=v+p;u=m-v;y=v-(m-u)+(p-u);p=y-x;u=y-p;o[1]=y-(p+u)+(u-x);w=m+p;u=w-m;o[2]=m-(w-u)+(p-u);o[3]=w;return 4}}}function oS(t,e,n,i,r){let s,a,o,u,l,c,f,d,h,p,m,g,y;m=e*n;a=splitter*e;o=a-(a-e);u=e-o;a=splitter*n;l=a-(a-n);c=n-l;g=u*c-(m-o*l-u*l-o*c);a=splitter*i;l=a-(a-i);c=i-l;f=g*i;a=splitter*g;o=a-(a-g);u=g-o;ZF[0]=u*c-(f-o*l-u*l-o*c);d=m*i;a=splitter*m;o=a-(a-m);u=m-o;p=u*c-(d-o*l-u*l-o*c);h=f+p;s=h-f;ZF[1]=f-(h-s)+(p-s);y=d+h;ZF[2]=h-(y-d);ZF[3]=y;t=sS(t,4,ZF);if(r!==0){a=splitter*r;l=a-(a-r);c=r-l;f=g*r;a=splitter*g;o=a-(a-g);u=g-o;ZF[0]=u*c-(f-o*l-u*l-o*c);d=m*r;a=splitter*m;o=a-(a-m);u=m-o;p=u*c-(d-o*l-u*l-o*c);h=f+p;s=h-f;ZF[1]=f-(h-s)+(p-s);y=d+h;ZF[2]=h-(y-d);ZF[3]=y;t=sS(t,4,ZF)}return t}function uS(t,e,n,i,r,s,a,o,u,l,c,f,d){let h;let p,m,g;let y,v,b;let x,_,w;let A,k,E,M,D,C,F,S,B,z,$,R,O,T,N;const L=t-l;const P=i-l;const q=a-l;const I=e-c;const U=r-c;const j=o-c;const G=n-f;const Y=s-f;const W=u-f;$=P*j;k=splitter*P;E=k-(k-P);M=P-E;k=splitter*j;D=k-(k-j);C=j-D;R=M*C-($-E*D-M*D-E*C);O=q*U;k=splitter*q;E=k-(k-q);M=q-E;k=splitter*U;D=k-(k-U);C=U-D;T=M*C-(O-E*D-M*D-E*C);F=R-T;A=R-F;qF[0]=R-(F+A)+(A-T);S=$+F;A=S-$;z=$-(S-A)+(F-A);F=z-O;A=z-F;qF[1]=z-(F+A)+(A-O);N=S+F;A=N-S;qF[2]=S-(N-A)+(F-A);qF[3]=N;$=q*I;k=splitter*q;E=k-(k-q);M=q-E;k=splitter*I;D=k-(k-I);C=I-D;R=M*C-($-E*D-M*D-E*C);O=L*j;k=splitter*L;E=k-(k-L);M=L-E;k=splitter*j;D=k-(k-j);C=j-D;T=M*C-(O-E*D-M*D-E*C);F=R-T;A=R-F;IF[0]=R-(F+A)+(A-T);S=$+F;A=S-$;z=$-(S-A)+(F-A);F=z-O;A=z-F;IF[1]=z-(F+A)+(A-O);N=S+F;A=N-S;IF[2]=S-(N-A)+(F-A);IF[3]=N;$=L*U;k=splitter*L;E=k-(k-L);M=L-E;k=splitter*U;D=k-(k-U);C=U-D;R=M*C-($-E*D-M*D-E*C);O=P*I;k=splitter*P;E=k-(k-P);M=P-E;k=splitter*I;D=k-(k-I);C=I-D;T=M*C-(O-E*D-M*D-E*C);F=R-T;A=R-F;UF[0]=R-(F+A)+(A-T);S=$+F;A=S-$;z=$-(S-A)+(F-A);F=z-O;A=z-F;UF[1]=z-(F+A)+(A-O);N=S+F;A=N-S;UF[2]=S-(N-A)+(F-A);UF[3]=N;h=sum(sum(scale(4,qF,G,JF),JF,scale(4,IF,Y,tS),tS,eS),eS,scale(4,UF,W,JF),JF,iS);let X=estimate(h,iS);let H=LF*d;if(X>=H||-X>=H){return X}A=t-L;p=t-(L+A)+(A-l);A=i-P;m=i-(P+A)+(A-l);A=a-q;g=a-(q+A)+(A-l);A=e-I;y=e-(I+A)+(A-c);A=r-U;v=r-(U+A)+(A-c);A=o-j;b=o-(j+A)+(A-c);A=n-G;x=n-(G+A)+(A-f);A=s-Y;_=s-(Y+A)+(A-f);A=u-W;w=u-(W+A)+(A-f);if(p===0&&m===0&&g===0&&y===0&&v===0&&b===0&&x===0&&_===0&&w===0){return X}H=PF*d+resulterrbound*Math.abs(X);X+=G*(P*b+j*m-(U*g+q*v))+x*(P*j-U*q)+Y*(q*y+I*g-(j*p+L*b))+_*(q*I-j*L)+W*(L*v+U*p-(I*m+P*y))+w*(L*U-I*P);if(X>=H||-X>=H){return X}const V=aS(p,y,P,U,q,j,jF,GF);const Q=aS(m,v,q,j,L,I,YF,WF);const K=aS(g,b,L,I,P,U,XF,HF);const Z=sum(Q,YF,K,HF,VF);h=sS(h,scale(Z,VF,G,eS),eS);const J=sum(K,XF,V,GF,QF);h=sS(h,scale(J,QF,Y,eS),eS);const tt=sum(V,jF,Q,WF,KF);h=sS(h,scale(tt,KF,W,eS),eS);if(x!==0){h=sS(h,scale(4,qF,x,nS),nS);h=sS(h,scale(Z,VF,x,eS),eS)}if(_!==0){h=sS(h,scale(4,IF,_,nS),nS);h=sS(h,scale(J,QF,_,eS),eS)}if(w!==0){h=sS(h,scale(4,UF,w,nS),nS);h=sS(h,scale(tt,KF,w,eS),eS)}if(p!==0){if(v!==0){h=oS(h,p,v,W,w)}if(b!==0){h=oS(h,-p,b,Y,_)}}if(m!==0){if(b!==0){h=oS(h,m,b,G,x)}if(y!==0){h=oS(h,-m,y,W,w)}}if(g!==0){if(y!==0){h=oS(h,g,y,Y,_)}if(v!==0){h=oS(h,-g,v,G,x)}}return iS[h-1]}function lS(t,e,n,i,r,s,a,o,u,l,c,f){const d=t-l;const h=i-l;const p=a-l;const m=e-c;const g=r-c;const y=o-c;const v=n-f;const b=s-f;const x=u-f;const _=h*y;const w=p*g;const A=p*m;const k=d*y;const E=d*g;const M=h*m;const D=v*(_-w)+b*(A-k)+x*(E-M);const C=(Math.abs(_)+Math.abs(w))*Math.abs(v)+(Math.abs(A)+Math.abs(k))*Math.abs(b)+(Math.abs(E)+Math.abs(M))*Math.abs(x);const F=NF*C;if(D>F||-D>F){return D}return uS(t,e,n,i,r,s,a,o,u,l,c,f,C)}function cS(t,e,n,i,r,s,a,o,u,l,c,f){const d=t-l;const h=i-l;const p=a-l;const m=e-c;const g=r-c;const y=o-c;const v=n-f;const b=s-f;const x=u-f;return d*(g*x-b*y)+h*(y*v-x*m)+p*(m*b-v*g)}const fS=(10+96*yF)*yF;const dS=(4+48*yF)*yF;const hS=(44+576*yF)*yF*yF;const pS=EF(4);const mS=EF(4);const gS=EF(4);const yS=EF(4);const vS=EF(4);const bS=EF(4);const xS=EF(4);const _S=EF(4);const wS=EF(8);const AS=EF(8);const kS=EF(8);const ES=EF(8);const MS=EF(8);const DS=EF(8);const CS=EF(8);const FS=EF(8);const SS=EF(8);const BS=EF(4);const zS=EF(4);const $S=EF(4);const RS=EF(8);const OS=EF(16);const TS=EF(16);const NS=EF(16);const LS=EF(32);const PS=EF(32);const qS=EF(48);const IS=EF(64);let US=EF(1152);let jS=EF(1152);function GS(t,e,n){t=sum(t,US,e,n,jS);const i=US;US=jS;jS=i;return t}function YS(t,e,n,i,r,s,a,o,u){let l;let c,f,d,h,p,m;let g,y,v,b,x,_;let w,A,k;let E,M,D;let C,F;let S,B,z,$,R,O,T,N,L,P,q,I,U,j;const G=t-a;const Y=n-a;const W=r-a;const X=e-o;const H=i-o;const V=s-o;P=Y*V;B=splitter*Y;z=B-(B-Y);$=Y-z;B=splitter*V;R=B-(B-V);O=V-R;q=$*O-(P-z*R-$*R-z*O);I=W*H;B=splitter*W;z=B-(B-W);$=W-z;B=splitter*H;R=B-(B-H);O=H-R;U=$*O-(I-z*R-$*R-z*O);T=q-U;S=q-T;pS[0]=q-(T+S)+(S-U);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L-I;S=L-T;pS[1]=L-(T+S)+(S-I);j=N+T;S=j-N;pS[2]=N-(j-S)+(T-S);pS[3]=j;P=W*X;B=splitter*W;z=B-(B-W);$=W-z;B=splitter*X;R=B-(B-X);O=X-R;q=$*O-(P-z*R-$*R-z*O);I=G*V;B=splitter*G;z=B-(B-G);$=G-z;B=splitter*V;R=B-(B-V);O=V-R;U=$*O-(I-z*R-$*R-z*O);T=q-U;S=q-T;mS[0]=q-(T+S)+(S-U);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L-I;S=L-T;mS[1]=L-(T+S)+(S-I);j=N+T;S=j-N;mS[2]=N-(j-S)+(T-S);mS[3]=j;P=G*H;B=splitter*G;z=B-(B-G);$=G-z;B=splitter*H;R=B-(B-H);O=H-R;q=$*O-(P-z*R-$*R-z*O);I=Y*X;B=splitter*Y;z=B-(B-Y);$=Y-z;B=splitter*X;R=B-(B-X);O=X-R;U=$*O-(I-z*R-$*R-z*O);T=q-U;S=q-T;gS[0]=q-(T+S)+(S-U);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L-I;S=L-T;gS[1]=L-(T+S)+(S-I);j=N+T;S=j-N;gS[2]=N-(j-S)+(T-S);gS[3]=j;l=sum(sum(sum(scale(scale(4,pS,G,RS),RS,G,OS),OS,scale(scale(4,pS,X,RS),RS,X,TS),TS,LS),LS,sum(scale(scale(4,mS,Y,RS),RS,Y,OS),OS,scale(scale(4,mS,H,RS),RS,H,TS),TS,PS),PS,IS),IS,sum(scale(scale(4,gS,W,RS),RS,W,OS),OS,scale(scale(4,gS,V,RS),RS,V,TS),TS,LS),LS,US);let Q=estimate(l,US);let K=dS*u;if(Q>=K||-Q>=K){return Q}S=t-G;c=t-(G+S)+(S-a);S=e-X;h=e-(X+S)+(S-o);S=n-Y;f=n-(Y+S)+(S-a);S=i-H;p=i-(H+S)+(S-o);S=r-W;d=r-(W+S)+(S-a);S=s-V;m=s-(V+S)+(S-o);if(c===0&&f===0&&d===0&&h===0&&p===0&&m===0){return Q}K=hS*u+resulterrbound*Math.abs(Q);Q+=(G*G+X*X)*(Y*m+V*f-(H*d+W*p))+2*(G*c+X*h)*(Y*V-H*W)+((Y*Y+H*H)*(W*h+X*d-(V*c+G*m))+2*(Y*f+H*p)*(W*X-V*G))+((W*W+V*V)*(G*p+H*c-(X*f+Y*h))+2*(W*d+V*m)*(G*H-X*Y));if(Q>=K||-Q>=K){return Q}if(f!==0||p!==0||d!==0||m!==0){P=G*G;B=splitter*G;z=B-(B-G);$=G-z;q=$*$-(P-z*z-(z+z)*$);I=X*X;B=splitter*X;z=B-(B-X);$=X-z;U=$*$-(I-z*z-(z+z)*$);T=q+U;S=T-q;yS[0]=q-(T-S)+(U-S);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L+I;S=T-L;yS[1]=L-(T-S)+(I-S);j=N+T;S=j-N;yS[2]=N-(j-S)+(T-S);yS[3]=j}if(d!==0||m!==0||c!==0||h!==0){P=Y*Y;B=splitter*Y;z=B-(B-Y);$=Y-z;q=$*$-(P-z*z-(z+z)*$);I=H*H;B=splitter*H;z=B-(B-H);$=H-z;U=$*$-(I-z*z-(z+z)*$);T=q+U;S=T-q;vS[0]=q-(T-S)+(U-S);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L+I;S=T-L;vS[1]=L-(T-S)+(I-S);j=N+T;S=j-N;vS[2]=N-(j-S)+(T-S);vS[3]=j}if(c!==0||h!==0||f!==0||p!==0){P=W*W;B=splitter*W;z=B-(B-W);$=W-z;q=$*$-(P-z*z-(z+z)*$);I=V*V;B=splitter*V;z=B-(B-V);$=V-z;U=$*$-(I-z*z-(z+z)*$);T=q+U;S=T-q;bS[0]=q-(T-S)+(U-S);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L+I;S=T-L;bS[1]=L-(T-S)+(I-S);j=N+T;S=j-N;bS[2]=N-(j-S)+(T-S);bS[3]=j}if(c!==0){g=scale(4,pS,c,wS);l=GS(l,sum_three(scale(g,wS,2*G,OS),OS,scale(scale(4,bS,c,RS),RS,H,TS),TS,scale(scale(4,vS,c,RS),RS,-V,NS),NS,LS,qS),qS)}if(h!==0){y=scale(4,pS,h,AS);l=GS(l,sum_three(scale(y,AS,2*X,OS),OS,scale(scale(4,vS,h,RS),RS,W,TS),TS,scale(scale(4,bS,h,RS),RS,-Y,NS),NS,LS,qS),qS)}if(f!==0){v=scale(4,mS,f,kS);l=GS(l,sum_three(scale(v,kS,2*Y,OS),OS,scale(scale(4,yS,f,RS),RS,V,TS),TS,scale(scale(4,bS,f,RS),RS,-X,NS),NS,LS,qS),qS)}if(p!==0){b=scale(4,mS,p,ES);l=GS(l,sum_three(scale(b,ES,2*H,OS),OS,scale(scale(4,bS,p,RS),RS,G,TS),TS,scale(scale(4,yS,p,RS),RS,-W,NS),NS,LS,qS),qS)}if(d!==0){x=scale(4,gS,d,MS);l=GS(l,sum_three(scale(x,MS,2*W,OS),OS,scale(scale(4,vS,d,RS),RS,X,TS),TS,scale(scale(4,yS,d,RS),RS,-H,NS),NS,LS,qS),qS)}if(m!==0){_=scale(4,gS,m,DS);l=GS(l,sum_three(scale(_,DS,2*V,OS),OS,scale(scale(4,yS,m,RS),RS,Y,TS),TS,scale(scale(4,vS,m,RS),RS,-G,NS),NS,LS,qS),qS)}if(c!==0||h!==0){if(f!==0||p!==0||d!==0||m!==0){P=f*V;B=splitter*f;z=B-(B-f);$=f-z;B=splitter*V;R=B-(B-V);O=V-R;q=$*O-(P-z*R-$*R-z*O);I=Y*m;B=splitter*Y;z=B-(B-Y);$=Y-z;B=splitter*m;R=B-(B-m);O=m-R;U=$*O-(I-z*R-$*R-z*O);T=q+U;S=T-q;xS[0]=q-(T-S)+(U-S);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L+I;S=T-L;xS[1]=L-(T-S)+(I-S);j=N+T;S=j-N;xS[2]=N-(j-S)+(T-S);xS[3]=j;P=d*-H;B=splitter*d;z=B-(B-d);$=d-z;B=splitter*-H;R=B-(B- -H);O=-H-R;q=$*O-(P-z*R-$*R-z*O);I=W*-p;B=splitter*W;z=B-(B-W);$=W-z;B=splitter*-p;R=B-(B- -p);O=-p-R;U=$*O-(I-z*R-$*R-z*O);T=q+U;S=T-q;_S[0]=q-(T-S)+(U-S);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L+I;S=T-L;_S[1]=L-(T-S)+(I-S);j=N+T;S=j-N;_S[2]=N-(j-S)+(T-S);_S[3]=j;A=sum(4,xS,4,_S,FS);P=f*m;B=splitter*f;z=B-(B-f);$=f-z;B=splitter*m;R=B-(B-m);O=m-R;q=$*O-(P-z*R-$*R-z*O);I=d*p;B=splitter*d;z=B-(B-d);$=d-z;B=splitter*p;R=B-(B-p);O=p-R;U=$*O-(I-z*R-$*R-z*O);T=q-U;S=q-T;zS[0]=q-(T+S)+(S-U);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L-I;S=L-T;zS[1]=L-(T+S)+(S-I);j=N+T;S=j-N;zS[2]=N-(j-S)+(T-S);zS[3]=j;M=4}else{FS[0]=0;A=1;zS[0]=0;M=1}if(c!==0){const t=scale(A,FS,c,NS);l=GS(l,sum(scale(g,wS,c,OS),OS,scale(t,NS,2*G,LS),LS,qS),qS);const e=scale(M,zS,c,RS);l=GS(l,sum_three(scale(e,RS,2*G,OS),OS,scale(e,RS,c,TS),TS,scale(t,NS,c,LS),LS,PS,IS),IS);if(p!==0){l=GS(l,scale(scale(4,bS,c,RS),RS,p,OS),OS)}if(m!==0){l=GS(l,scale(scale(4,vS,-c,RS),RS,m,OS),OS)}}if(h!==0){const t=scale(A,FS,h,NS);l=GS(l,sum(scale(y,AS,h,OS),OS,scale(t,NS,2*X,LS),LS,qS),qS);const e=scale(M,zS,h,RS);l=GS(l,sum_three(scale(e,RS,2*X,OS),OS,scale(e,RS,h,TS),TS,scale(t,NS,h,LS),LS,PS,IS),IS)}}if(f!==0||p!==0){if(d!==0||m!==0||c!==0||h!==0){P=d*X;B=splitter*d;z=B-(B-d);$=d-z;B=splitter*X;R=B-(B-X);O=X-R;q=$*O-(P-z*R-$*R-z*O);I=W*h;B=splitter*W;z=B-(B-W);$=W-z;B=splitter*h;R=B-(B-h);O=h-R;U=$*O-(I-z*R-$*R-z*O);T=q+U;S=T-q;xS[0]=q-(T-S)+(U-S);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L+I;S=T-L;xS[1]=L-(T-S)+(I-S);j=N+T;S=j-N;xS[2]=N-(j-S)+(T-S);xS[3]=j;C=-V;F=-m;P=c*C;B=splitter*c;z=B-(B-c);$=c-z;B=splitter*C;R=B-(B-C);O=C-R;q=$*O-(P-z*R-$*R-z*O);I=G*F;B=splitter*G;z=B-(B-G);$=G-z;B=splitter*F;R=B-(B-F);O=F-R;U=$*O-(I-z*R-$*R-z*O);T=q+U;S=T-q;_S[0]=q-(T-S)+(U-S);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L+I;S=T-L;_S[1]=L-(T-S)+(I-S);j=N+T;S=j-N;_S[2]=N-(j-S)+(T-S);_S[3]=j;k=sum(4,xS,4,_S,SS);P=d*h;B=splitter*d;z=B-(B-d);$=d-z;B=splitter*h;R=B-(B-h);O=h-R;q=$*O-(P-z*R-$*R-z*O);I=c*m;B=splitter*c;z=B-(B-c);$=c-z;B=splitter*m;R=B-(B-m);O=m-R;U=$*O-(I-z*R-$*R-z*O);T=q-U;S=q-T;$S[0]=q-(T+S)+(S-U);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L-I;S=L-T;$S[1]=L-(T+S)+(S-I);j=N+T;S=j-N;$S[2]=N-(j-S)+(T-S);$S[3]=j;D=4}else{SS[0]=0;k=1;$S[0]=0;D=1}if(f!==0){const t=scale(k,SS,f,NS);l=GS(l,sum(scale(v,kS,f,OS),OS,scale(t,NS,2*Y,LS),LS,qS),qS);const e=scale(D,$S,f,RS);l=GS(l,sum_three(scale(e,RS,2*Y,OS),OS,scale(e,RS,f,TS),TS,scale(t,NS,f,LS),LS,PS,IS),IS);if(m!==0){l=GS(l,scale(scale(4,yS,f,RS),RS,m,OS),OS)}if(h!==0){l=GS(l,scale(scale(4,bS,-f,RS),RS,h,OS),OS)}}if(p!==0){const t=scale(k,SS,p,NS);l=GS(l,sum(scale(b,ES,p,OS),OS,scale(t,NS,2*H,LS),LS,qS),qS);const e=scale(D,$S,p,RS);l=GS(l,sum_three(scale(e,RS,2*H,OS),OS,scale(e,RS,p,TS),TS,scale(t,NS,p,LS),LS,PS,IS),IS)}}if(d!==0||m!==0){if(c!==0||h!==0||f!==0||p!==0){P=c*H;B=splitter*c;z=B-(B-c);$=c-z;B=splitter*H;R=B-(B-H);O=H-R;q=$*O-(P-z*R-$*R-z*O);I=G*p;B=splitter*G;z=B-(B-G);$=G-z;B=splitter*p;R=B-(B-p);O=p-R;U=$*O-(I-z*R-$*R-z*O);T=q+U;S=T-q;xS[0]=q-(T-S)+(U-S);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L+I;S=T-L;xS[1]=L-(T-S)+(I-S);j=N+T;S=j-N;xS[2]=N-(j-S)+(T-S);xS[3]=j;C=-X;F=-h;P=f*C;B=splitter*f;z=B-(B-f);$=f-z;B=splitter*C;R=B-(B-C);O=C-R;q=$*O-(P-z*R-$*R-z*O);I=Y*F;B=splitter*Y;z=B-(B-Y);$=Y-z;B=splitter*F;R=B-(B-F);O=F-R;U=$*O-(I-z*R-$*R-z*O);T=q+U;S=T-q;_S[0]=q-(T-S)+(U-S);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L+I;S=T-L;_S[1]=L-(T-S)+(I-S);j=N+T;S=j-N;_S[2]=N-(j-S)+(T-S);_S[3]=j;w=sum(4,xS,4,_S,CS);P=c*p;B=splitter*c;z=B-(B-c);$=c-z;B=splitter*p;R=B-(B-p);O=p-R;q=$*O-(P-z*R-$*R-z*O);I=f*h;B=splitter*f;z=B-(B-f);$=f-z;B=splitter*h;R=B-(B-h);O=h-R;U=$*O-(I-z*R-$*R-z*O);T=q-U;S=q-T;BS[0]=q-(T+S)+(S-U);N=P+T;S=N-P;L=P-(N-S)+(T-S);T=L-I;S=L-T;BS[1]=L-(T+S)+(S-I);j=N+T;S=j-N;BS[2]=N-(j-S)+(T-S);BS[3]=j;E=4}else{CS[0]=0;w=1;BS[0]=0;E=1}if(d!==0){const t=scale(w,CS,d,NS);l=GS(l,sum(scale(x,MS,d,OS),OS,scale(t,NS,2*W,LS),LS,qS),qS);const e=scale(E,BS,d,RS);l=GS(l,sum_three(scale(e,RS,2*W,OS),OS,scale(e,RS,d,TS),TS,scale(t,NS,d,LS),LS,PS,IS),IS);if(h!==0){l=GS(l,scale(scale(4,vS,d,RS),RS,h,OS),OS)}if(p!==0){l=GS(l,scale(scale(4,yS,-d,RS),RS,p,OS),OS)}}if(m!==0){const t=scale(w,CS,m,NS);l=GS(l,sum(scale(_,DS,m,OS),OS,scale(t,NS,2*V,LS),LS,qS),qS);const e=scale(E,BS,m,RS);l=GS(l,sum_three(scale(e,RS,2*V,OS),OS,scale(e,RS,m,TS),TS,scale(t,NS,m,LS),LS,PS,IS),IS)}}return US[l-1]}function WS(t,e,n,i,r,s,a,o){const u=t-a;const l=n-a;const c=r-a;const f=e-o;const d=i-o;const h=s-o;const p=l*h;const m=c*d;const g=u*u+f*f;const y=c*f;const v=u*h;const b=l*l+d*d;const x=u*d;const _=l*f;const w=c*c+h*h;const A=g*(p-m)+b*(y-v)+w*(x-_);const k=(Math.abs(p)+Math.abs(m))*g+(Math.abs(y)+Math.abs(v))*b+(Math.abs(x)+Math.abs(_))*w;const E=fS*k;if(A>E||-A>E){return A}return YS(t,e,n,i,r,s,a,o,k)}function XS(t,e,n,i,r,s,a,o){const u=t-a;const l=e-o;const c=n-a;const f=i-o;const d=r-a;const h=s-o;const p=u*f-c*l;const m=c*h-d*f;const g=d*l-u*h;const y=u*u+l*l;const v=c*c+f*f;const b=d*d+h*h;return y*m+v*g+b*p}const HS=(16+224*yF)*yF;const VS=(5+72*yF)*yF;const QS=(71+1408*yF)*yF*yF;const KS=EF(4);const ZS=EF(4);const JS=EF(4);const tB=EF(4);const eB=EF(4);const nB=EF(4);const iB=EF(4);const rB=EF(4);const sB=EF(4);const aB=EF(4);const oB=EF(24);const uB=EF(24);const lB=EF(24);const cB=EF(24);const fB=EF(24);const dB=EF(24);const hB=EF(24);const pB=EF(24);const mB=EF(24);const gB=EF(24);const yB=EF(1152);const vB=EF(1152);const bB=EF(1152);const xB=EF(1152);const _B=EF(1152);const wB=EF(2304);const AB=EF(2304);const kB=EF(3456);const EB=EF(5760);const MB=EF(8);const DB=EF(8);const CB=EF(8);const FB=EF(16);const SB=EF(24);const BB=EF(48);const zB=EF(48);const $B=EF(96);const RB=EF(192);const OB=EF(384);const TB=EF(384);const NB=EF(384);const LB=EF(768);function PB(t,e,n,i,r,s,a){return sum_three(scale(4,t,i,MB),MB,scale(4,e,r,DB),DB,scale(4,n,s,CB),CB,FB,a)}function qB(t,e,n,i,r,s,a,o,u,l,c,f){const d=sum(sum(t,e,n,i,BB),BB,negate(sum(r,s,a,o,zB),zB),zB,$B);return sum_three(scale(scale(d,$B,u,RB),RB,u,OB),OB,scale(scale(d,$B,l,RB),RB,l,TB),TB,scale(scale(d,$B,c,RB),RB,c,NB),NB,LB,f)}function IB(t,e,n,i,r,s,a,o,u,l,c,f,d,h,p){let m,g,y,v,b,x,_,w,A,k,E,M,D,C;k=t*r;g=splitter*t;y=g-(g-t);v=t-y;g=splitter*r;b=g-(g-r);x=r-b;E=v*x-(k-y*b-v*b-y*x);M=i*e;g=splitter*i;y=g-(g-i);v=i-y;g=splitter*e;b=g-(g-e);x=e-b;D=v*x-(M-y*b-v*b-y*x);_=E-D;m=E-_;KS[0]=E-(_+m)+(m-D);w=k+_;m=w-k;A=k-(w-m)+(_-m);_=A-M;m=A-_;KS[1]=A-(_+m)+(m-M);C=w+_;m=C-w;KS[2]=w-(C-m)+(_-m);KS[3]=C;k=i*o;g=splitter*i;y=g-(g-i);v=i-y;g=splitter*o;b=g-(g-o);x=o-b;E=v*x-(k-y*b-v*b-y*x);M=a*r;g=splitter*a;y=g-(g-a);v=a-y;g=splitter*r;b=g-(g-r);x=r-b;D=v*x-(M-y*b-v*b-y*x);_=E-D;m=E-_;ZS[0]=E-(_+m)+(m-D);w=k+_;m=w-k;A=k-(w-m)+(_-m);_=A-M;m=A-_;ZS[1]=A-(_+m)+(m-M);C=w+_;m=C-w;ZS[2]=w-(C-m)+(_-m);ZS[3]=C;k=a*c;g=splitter*a;y=g-(g-a);v=a-y;g=splitter*c;b=g-(g-c);x=c-b;E=v*x-(k-y*b-v*b-y*x);M=l*o;g=splitter*l;y=g-(g-l);v=l-y;g=splitter*o;b=g-(g-o);x=o-b;D=v*x-(M-y*b-v*b-y*x);_=E-D;m=E-_;JS[0]=E-(_+m)+(m-D);w=k+_;m=w-k;A=k-(w-m)+(_-m);_=A-M;m=A-_;JS[1]=A-(_+m)+(m-M);C=w+_;m=C-w;JS[2]=w-(C-m)+(_-m);JS[3]=C;k=l*h;g=splitter*l;y=g-(g-l);v=l-y;g=splitter*h;b=g-(g-h);x=h-b;E=v*x-(k-y*b-v*b-y*x);M=d*c;g=splitter*d;y=g-(g-d);v=d-y;g=splitter*c;b=g-(g-c);x=c-b;D=v*x-(M-y*b-v*b-y*x);_=E-D;m=E-_;tB[0]=E-(_+m)+(m-D);w=k+_;m=w-k;A=k-(w-m)+(_-m);_=A-M;m=A-_;tB[1]=A-(_+m)+(m-M);C=w+_;m=C-w;tB[2]=w-(C-m)+(_-m);tB[3]=C;k=d*e;g=splitter*d;y=g-(g-d);v=d-y;g=splitter*e;b=g-(g-e);x=e-b;E=v*x-(k-y*b-v*b-y*x);M=t*h;g=splitter*t;y=g-(g-t);v=t-y;g=splitter*h;b=g-(g-h);x=h-b;D=v*x-(M-y*b-v*b-y*x);_=E-D;m=E-_;eB[0]=E-(_+m)+(m-D);w=k+_;m=w-k;A=k-(w-m)+(_-m);_=A-M;m=A-_;eB[1]=A-(_+m)+(m-M);C=w+_;m=C-w;eB[2]=w-(C-m)+(_-m);eB[3]=C;k=t*o;g=splitter*t;y=g-(g-t);v=t-y;g=splitter*o;b=g-(g-o);x=o-b;E=v*x-(k-y*b-v*b-y*x);M=a*e;g=splitter*a;y=g-(g-a);v=a-y;g=splitter*e;b=g-(g-e);x=e-b;D=v*x-(M-y*b-v*b-y*x);_=E-D;m=E-_;nB[0]=E-(_+m)+(m-D);w=k+_;m=w-k;A=k-(w-m)+(_-m);_=A-M;m=A-_;nB[1]=A-(_+m)+(m-M);C=w+_;m=C-w;nB[2]=w-(C-m)+(_-m);nB[3]=C;k=i*c;g=splitter*i;y=g-(g-i);v=i-y;g=splitter*c;b=g-(g-c);x=c-b;E=v*x-(k-y*b-v*b-y*x);M=l*r;g=splitter*l;y=g-(g-l);v=l-y;g=splitter*r;b=g-(g-r);x=r-b;D=v*x-(M-y*b-v*b-y*x);_=E-D;m=E-_;iB[0]=E-(_+m)+(m-D);w=k+_;m=w-k;A=k-(w-m)+(_-m);_=A-M;m=A-_;iB[1]=A-(_+m)+(m-M);C=w+_;m=C-w;iB[2]=w-(C-m)+(_-m);iB[3]=C;k=a*h;g=splitter*a;y=g-(g-a);v=a-y;g=splitter*h;b=g-(g-h);x=h-b;E=v*x-(k-y*b-v*b-y*x);M=d*o;g=splitter*d;y=g-(g-d);v=d-y;g=splitter*o;b=g-(g-o);x=o-b;D=v*x-(M-y*b-v*b-y*x);_=E-D;m=E-_;rB[0]=E-(_+m)+(m-D);w=k+_;m=w-k;A=k-(w-m)+(_-m);_=A-M;m=A-_;rB[1]=A-(_+m)+(m-M);C=w+_;m=C-w;rB[2]=w-(C-m)+(_-m);rB[3]=C;k=l*e;g=splitter*l;y=g-(g-l);v=l-y;g=splitter*e;b=g-(g-e);x=e-b;E=v*x-(k-y*b-v*b-y*x);M=t*c;g=splitter*t;y=g-(g-t);v=t-y;g=splitter*c;b=g-(g-c);x=c-b;D=v*x-(M-y*b-v*b-y*x);_=E-D;m=E-_;sB[0]=E-(_+m)+(m-D);w=k+_;m=w-k;A=k-(w-m)+(_-m);_=A-M;m=A-_;sB[1]=A-(_+m)+(m-M);C=w+_;m=C-w;sB[2]=w-(C-m)+(_-m);sB[3]=C;k=d*r;g=splitter*d;y=g-(g-d);v=d-y;g=splitter*r;b=g-(g-r);x=r-b;E=v*x-(k-y*b-v*b-y*x);M=i*h;g=splitter*i;y=g-(g-i);v=i-y;g=splitter*h;b=g-(g-h);x=h-b;D=v*x-(M-y*b-v*b-y*x);_=E-D;m=E-_;aB[0]=E-(_+m)+(m-D);w=k+_;m=w-k;A=k-(w-m)+(_-m);_=A-M;m=A-_;aB[1]=A-(_+m)+(m-M);C=w+_;m=C-w;aB[2]=w-(C-m)+(_-m);aB[3]=C;const F=PB(KS,ZS,nB,u,n,-s,oB);const S=PB(ZS,JS,iB,f,s,-u,uB);const B=PB(JS,tB,rB,p,u,-f,lB);const z=PB(tB,eB,sB,n,f,-p,cB);const $=PB(eB,KS,aB,s,p,-n,fB);const R=PB(KS,iB,sB,f,n,s,dB);const O=PB(ZS,rB,aB,p,s,u,hB);const T=PB(JS,sB,nB,n,u,f,pB);const N=PB(tB,aB,iB,s,f,p,mB);const L=PB(eB,nB,rB,u,p,n,gB);const P=sum_three(qB(B,lB,O,hB,N,mB,S,uB,t,e,n,yB),yB,qB(z,cB,T,pB,L,gB,B,lB,i,r,s,vB),vB,sum_three(qB($,fB,N,mB,R,dB,z,cB,a,o,u,bB),bB,qB(F,oB,L,gB,O,hB,$,fB,l,c,f,xB),xB,qB(S,uB,R,dB,T,pB,F,oB,d,h,p,_B),_B,AB,kB),kB,wB,EB);return EB[P-1]}const UB=EF(96);const jB=EF(96);const GB=EF(96);const YB=EF(1152);function WB(t,e,n,i,r,s,a,o,u,l){const c=PB(t,e,n,i,r,s,SB);return sum_three(scale(scale(c,SB,a,BB),BB,a,UB),UB,scale(scale(c,SB,o,BB),BB,o,jB),jB,scale(scale(c,SB,u,BB),BB,u,GB),GB,RB,l)}function XB(t,e,n,i,r,s,a,o,u,l,c,f,d,h,p,m){let g,y,v,b,x,_;let w,A,k,E;let M,D,C,F;let S,B,z,$;let R,O,T,N,L,P,q,I,U,j,G,Y,W;const X=t-d;const H=i-d;const V=a-d;const Q=l-d;const K=e-h;const Z=r-h;const J=o-h;const tt=c-h;const et=n-p;const nt=s-p;const it=u-p;const rt=f-p;j=X*Z;O=splitter*X;T=O-(O-X);N=X-T;O=splitter*Z;L=O-(O-Z);P=Z-L;G=N*P-(j-T*L-N*L-T*P);Y=H*K;O=splitter*H;T=O-(O-H);N=H-T;O=splitter*K;L=O-(O-K);P=K-L;W=N*P-(Y-T*L-N*L-T*P);q=G-W;R=G-q;KS[0]=G-(q+R)+(R-W);I=j+q;R=I-j;U=j-(I-R)+(q-R);q=U-Y;R=U-q;KS[1]=U-(q+R)+(R-Y);g=I+q;R=g-I;KS[2]=I-(g-R)+(q-R);KS[3]=g;j=H*J;O=splitter*H;T=O-(O-H);N=H-T;O=splitter*J;L=O-(O-J);P=J-L;G=N*P-(j-T*L-N*L-T*P);Y=V*Z;O=splitter*V;T=O-(O-V);N=V-T;O=splitter*Z;L=O-(O-Z);P=Z-L;W=N*P-(Y-T*L-N*L-T*P);q=G-W;R=G-q;ZS[0]=G-(q+R)+(R-W);I=j+q;R=I-j;U=j-(I-R)+(q-R);q=U-Y;R=U-q;ZS[1]=U-(q+R)+(R-Y);y=I+q;R=y-I;ZS[2]=I-(y-R)+(q-R);ZS[3]=y;j=V*tt;O=splitter*V;T=O-(O-V);N=V-T;O=splitter*tt;L=O-(O-tt);P=tt-L;G=N*P-(j-T*L-N*L-T*P);Y=Q*J;O=splitter*Q;T=O-(O-Q);N=Q-T;O=splitter*J;L=O-(O-J);P=J-L;W=N*P-(Y-T*L-N*L-T*P);q=G-W;R=G-q;JS[0]=G-(q+R)+(R-W);I=j+q;R=I-j;U=j-(I-R)+(q-R);q=U-Y;R=U-q;JS[1]=U-(q+R)+(R-Y);v=I+q;R=v-I;JS[2]=I-(v-R)+(q-R);JS[3]=v;j=Q*K;O=splitter*Q;T=O-(O-Q);N=Q-T;O=splitter*K;L=O-(O-K);P=K-L;G=N*P-(j-T*L-N*L-T*P);Y=X*tt;O=splitter*X;T=O-(O-X);N=X-T;O=splitter*tt;L=O-(O-tt);P=tt-L;W=N*P-(Y-T*L-N*L-T*P);q=G-W;R=G-q;sB[0]=G-(q+R)+(R-W);I=j+q;R=I-j;U=j-(I-R)+(q-R);q=U-Y;R=U-q;sB[1]=U-(q+R)+(R-Y);b=I+q;R=b-I;sB[2]=I-(b-R)+(q-R);sB[3]=b;j=X*J;O=splitter*X;T=O-(O-X);N=X-T;O=splitter*J;L=O-(O-J);P=J-L;G=N*P-(j-T*L-N*L-T*P);Y=V*K;O=splitter*V;T=O-(O-V);N=V-T;O=splitter*K;L=O-(O-K);P=K-L;W=N*P-(Y-T*L-N*L-T*P);q=G-W;R=G-q;nB[0]=G-(q+R)+(R-W);I=j+q;R=I-j;U=j-(I-R)+(q-R);q=U-Y;R=U-q;nB[1]=U-(q+R)+(R-Y);x=I+q;R=x-I;nB[2]=I-(x-R)+(q-R);nB[3]=x;j=H*tt;O=splitter*H;T=O-(O-H);N=H-T;O=splitter*tt;L=O-(O-tt);P=tt-L;G=N*P-(j-T*L-N*L-T*P);Y=Q*Z;O=splitter*Q;T=O-(O-Q);N=Q-T;O=splitter*Z;L=O-(O-Z);P=Z-L;W=N*P-(Y-T*L-N*L-T*P);q=G-W;R=G-q;iB[0]=G-(q+R)+(R-W);I=j+q;R=I-j;U=j-(I-R)+(q-R);q=U-Y;R=U-q;iB[1]=U-(q+R)+(R-Y);_=I+q;R=_-I;iB[2]=I-(_-R)+(q-R);iB[3]=_;const st=sum(sum(negate(WB(ZS,JS,iB,rt,nt,-it,X,K,et,yB),yB),yB,WB(JS,sB,nB,et,it,rt,H,Z,nt,vB),vB,wB),wB,sum(negate(WB(sB,KS,iB,nt,rt,et,V,J,it,bB),bB),bB,WB(KS,ZS,nB,it,et,-nt,Q,tt,rt,xB),xB,AB),AB,YB);let at=estimate(st,YB);let ot=VS*m;if(at>=ot||-at>=ot){return at}R=t-X;w=t-(X+R)+(R-d);R=e-K;M=e-(K+R)+(R-h);R=n-et;S=n-(et+R)+(R-p);R=i-H;A=i-(H+R)+(R-d);R=r-Z;D=r-(Z+R)+(R-h);R=s-nt;B=s-(nt+R)+(R-p);R=a-V;k=a-(V+R)+(R-d);R=o-J;C=o-(J+R)+(R-h);R=u-it;z=u-(it+R)+(R-p);R=l-Q;E=l-(Q+R)+(R-d);R=c-tt;F=c-(tt+R)+(R-h);R=f-rt;$=f-(rt+R)+(R-p);if(w===0&&M===0&&S===0&&A===0&&D===0&&B===0&&k===0&&C===0&&z===0&&E===0&&F===0&&$===0){return at}ot=QS*m+resulterrbound*Math.abs(at);const ut=X*D+Z*w-(K*A+H*M);const lt=H*C+J*A-(Z*k+V*D);const ct=V*F+tt*k-(J*E+Q*C);const ft=Q*M+K*E-(tt*w+X*F);const dt=X*C+J*w-(K*k+V*M);const ht=H*F+tt*A-(Z*E+Q*D);at+=(H*H+Z*Z+nt*nt)*(it*ft+rt*dt+et*ct+(z*b+$*x+S*v))+(Q*Q+tt*tt+rt*rt)*(et*lt-nt*dt+it*ut+(S*y-B*x+z*g))-((X*X+K*K+et*et)*(nt*ct-it*ht+rt*lt+(B*v-z*_+$*y))+(V*V+J*J+it*it)*(rt*ut+et*ht+nt*ft+($*g+S*_+B*b)))+2*((H*A+Z*D+nt*B)*(it*b+rt*x+et*v)+(Q*E+tt*F+rt*$)*(et*y-nt*x+it*g)-((X*w+K*M+et*S)*(nt*v-it*_+rt*y)+(V*k+J*C+it*z)*(rt*g+et*_+nt*b)));if(at>=ot||-at>=ot){return at}return IB(t,e,n,i,r,s,a,o,u,l,c,f,d,h,p)}function HB(t,e,n,i,r,s,a,o,u,l,c,f,d,h,p){const m=t-d;const g=i-d;const y=a-d;const v=l-d;const b=e-h;const x=r-h;const _=o-h;const w=c-h;const A=n-p;const k=s-p;const E=u-p;const M=f-p;const D=m*x;const C=g*b;const F=D-C;const S=g*_;const B=y*x;const z=S-B;const $=y*w;const R=v*_;const O=$-R;const T=v*b;const N=m*w;const L=T-N;const P=m*_;const q=y*b;const I=P-q;const U=g*w;const j=v*x;const G=U-j;const Y=A*z-k*I+E*F;const W=k*O-E*G+M*z;const X=E*L+M*I+A*O;const H=M*F+A*G+k*L;const V=m*m+b*b+A*A;const Q=g*g+x*x+k*k;const K=y*y+_*_+E*E;const Z=v*v+w*w+M*M;const J=K*H-Z*Y+(V*W-Q*X);const tt=Math.abs(A);const et=Math.abs(k);const nt=Math.abs(E);const it=Math.abs(M);const rt=Math.abs(D);const st=Math.abs(C);const at=Math.abs(S);const ot=Math.abs(B);const ut=Math.abs($);const lt=Math.abs(R);const ct=Math.abs(T);const ft=Math.abs(N);const dt=Math.abs(P);const ht=Math.abs(q);const pt=Math.abs(U);const mt=Math.abs(j);const gt=((ut+lt)*et+(mt+pt)*nt+(at+ot)*it)*V+((ct+ft)*nt+(dt+ht)*it+(ut+lt)*tt)*Q+((rt+st)*it+(pt+mt)*tt+(ct+ft)*et)*K+((at+ot)*tt+(ht+dt)*et+(rt+st)*nt)*Z;const yt=HS*gt;if(J>yt||-J>yt){return J}return-XB(t,e,n,i,r,s,a,o,u,l,c,f,d,h,p,gt)}function VB(t,e,n,i,r,s,a,o,u,l,c,f,d,h,p){const m=t-d;const g=i-d;const y=a-d;const v=l-d;const b=e-h;const x=r-h;const _=o-h;const w=c-h;const A=n-p;const k=s-p;const E=u-p;const M=f-p;const D=m*x-g*b;const C=g*_-y*x;const F=y*w-v*_;const S=v*b-m*w;const B=m*_-y*b;const z=g*w-v*x;const $=A*C-k*B+E*D;const R=k*F-E*z+M*C;const O=E*S+M*B+A*F;const T=M*D+A*z+k*S;const N=m*m+b*b+A*A;const L=g*g+x*x+k*k;const P=y*y+_*_+E*E;const q=v*v+w*w+M*M;return P*T-q*$+(N*R-L*O)}const QB=Math.pow(2,-52);const KB=new Uint32Array(512);class ZB{static from(t,e=az,n=oz){const i=t.length;const r=new Float64Array(i*2);for(let s=0;s>1;if(e>0&&typeof t[0]!=="number")throw new Error("Expected coords to contain numbers.");this.coords=t;const n=Math.max(2*e-5,0);this._triangles=new Uint32Array(n*3);this._halfedges=new Int32Array(n*3);this._hashSize=Math.ceil(Math.sqrt(e));this._hullPrev=new Uint32Array(e);this._hullNext=new Uint32Array(e);this._hullTri=new Uint32Array(e);this._hullHash=new Int32Array(this._hashSize).fill(-1);this._ids=new Uint32Array(e);this._dists=new Float64Array(e);this.update()}update(){const{coords:t,_hullPrev:e,_hullNext:n,_hullTri:i,_hullHash:r}=this;const s=t.length>>1;let a=Infinity;let o=Infinity;let u=-Infinity;let l=-Infinity;for(let E=0;Eu)u=e;if(n>l)l=n;this._ids[E]=E}const c=(a+u)/2;const f=(o+l)/2;let d=Infinity;let h,p,m;for(let E=0;E0){p=E;d=e}}let v=t[2*p];let b=t[2*p+1];let x=Infinity;for(let E=0;Ei){e[n++]=r;i=this._dists[r]}}this.hull=e.subarray(0,n);this.triangles=new Uint32Array(0);this.halfedges=new Uint32Array(0);return}if(OF(g,y,v,b,_,w)<0){const t=p;const e=v;const n=b;p=m;v=_;b=w;m=t;_=e;w=n}const A=iz(g,y,v,b,_,w);this._cx=A.x;this._cy=A.y;for(let E=0;E0&&Math.abs(a-M)<=QB&&Math.abs(o-D)<=QB)continue;M=a;D=o;if(s===h||s===p||s===m)continue;let u=0;for(let t=0,e=this._hashKey(a,o);t=0){l=c;if(l===u){l=-1;break}}if(l===-1)continue;let f=this._addTriangle(l,s,n[l],-1,-1,i[l]);i[s]=this._legalize(f+2);i[l]=f;k++;let d=n[l];while(c=n[d],OF(a,o,t[2*d],t[2*d+1],t[2*c],t[2*c+1])<0){f=this._addTriangle(d,s,c,i[s],-1,i[d]);i[s]=this._legalize(f+2);n[d]=d;k--;d=c}if(l===u){while(c=e[l],OF(a,o,t[2*c],t[2*c+1],t[2*l],t[2*l+1])<0){f=this._addTriangle(c,s,l,-1,i[l],i[c]);this._legalize(f+2);i[c]=f;n[l]=l;k--;l=c}}this._hullStart=e[s]=l;n[l]=e[d]=s;n[s]=d;r[this._hashKey(a,o)]=s;r[this._hashKey(t[2*l],t[2*l+1])]=l}this.hull=new Uint32Array(k);for(let E=0,M=this._hullStart;E0?3-n:1+n)/4}function tz(t,e,n,i){const r=t-n;const s=e-i;return r*r+s*s}function ez(t,e,n,i,r,s,a,o){const u=t-a;const l=e-o;const c=n-a;const f=i-o;const d=r-a;const h=s-o;const p=u*u+l*l;const m=c*c+f*f;const g=d*d+h*h;return u*(f*g-m*h)-l*(c*g-m*d)+p*(c*h-f*d)<0}function nz(t,e,n,i,r,s){const a=n-t;const o=i-e;const u=r-t;const l=s-e;const c=a*a+o*o;const f=u*u+l*l;const d=.5/(a*l-o*u);const h=(l*c-o*f)*d;const p=(a*f-u*c)*d;return h*h+p*p}function iz(t,e,n,i,r,s){const a=n-t;const o=i-e;const u=r-t;const l=s-e;const c=a*a+o*o;const f=u*u+l*l;const d=.5/(a*l-o*u);const h=t+(l*c-o*f)*d;const p=e+(a*f-u*c)*d;return{x:h,y:p}}function rz(t,e,n,i){if(i-n<=20){for(let r=n+1;r<=i;r++){const i=t[r];const s=e[i];let a=r-1;while(a>=n&&e[t[a]]>s)t[a+1]=t[a--];t[a+1]=i}}else{const r=n+i>>1;let s=n+1;let a=i;sz(t,r,s);if(e[t[n]]>e[t[i]])sz(t,n,i);if(e[t[s]]>e[t[i]])sz(t,s,i);if(e[t[n]]>e[t[s]])sz(t,n,s);const o=t[s];const u=e[o];while(true){do{s++}while(e[t[s]]u);if(a=a-n){rz(t,e,s,i);rz(t,e,n,a-1)}else{rz(t,e,n,a-1);rz(t,e,s,i)}}}function sz(t,e,n){const i=t[e];t[e]=t[n];t[n]=i}function az(t){return t[0]}function oz(t){return t[1]}const uz=1e-6;class lz{constructor(){this._x0=this._y0=this._x1=this._y1=null;this._=""}moveTo(t,e){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){if(this._x1!==null){this._x1=this._x0,this._y1=this._y0;this._+="Z"}}lineTo(t,e){this._+=`L${this._x1=+t},${this._y1=+e}`}arc(t,e,n){t=+t,e=+e,n=+n;const i=t+n;const r=e;if(n<0)throw new Error("negative radius");if(this._x1===null)this._+=`M${i},${r}`;else if(Math.abs(this._x1-i)>uz||Math.abs(this._y1-r)>uz)this._+="L"+i+","+r;if(!n)return;this._+=`A${n},${n},0,1,1,${t-n},${e}A${n},${n},0,1,1,${this._x1=i},${this._y1=r}`}rect(t,e,n,i){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${+n}v${+i}h${-n}Z`}value(){return this._||null}}class cz{constructor(){this._=[]}moveTo(t,e){this._.push([t,e])}closePath(){this._.push(this._[0].slice())}lineTo(t,e){this._.push([t,e])}value(){return this._.length?this._:null}}class fz{constructor(t,[e,n,i,r]=[0,0,960,500]){if(!((i=+i)>=(e=+e))||!((r=+r)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=t;this._circumcenters=new Float64Array(t.points.length*2);this.vectors=new Float64Array(t.points.length*2);this.xmax=i,this.xmin=e;this.ymax=r,this.ymin=n;this._init()}update(){this.delaunay.update();this._init();return this}_init(){const{delaunay:{points:t,hull:e,triangles:n},vectors:i}=this;let r,s;const a=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let p=0,m=0,g=n.length,y,v;p1)r-=2;for(let s=2;s0){if(e>=this.ymax)return null;if((s=(this.ymax-e)/i)0){if(t>=this.xmax)return null;if((s=(this.xmax-t)/n)this.xmax?2:0)|(ethis.ymax?8:0)}_simplify(t){if(t&&t.length>4){for(let e=0;e1e-10)return false}return true}function yz(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}class vz{static from(t,e=pz,n=mz,i){return new vz("length"in t?bz(t,e,n,i):Float64Array.from(xz(t,e,n,i)))}constructor(t){this._delaunator=new ZB(t);this.inedges=new Int32Array(t.length/2);this._hullIndex=new Int32Array(t.length/2);this.points=this._delaunator.coords;this._init()}update(){this._delaunator.update();this._init();return this}_init(){const t=this._delaunator,e=this.points;if(t.hull&&t.hull.length>2&&gz(t)){this.collinear=Int32Array.from({length:e.length/2},((t,e)=>e)).sort(((t,n)=>e[2*t]-e[2*n]||e[2*t+1]-e[2*n+1]));const t=this.collinear[0],n=this.collinear[this.collinear.length-1],i=[e[2*t],e[2*t+1],e[2*n],e[2*n+1]],r=1e-8*Math.hypot(i[3]-i[1],i[2]-i[0]);for(let s=0,a=e.length/2;s0){this.triangles=new Int32Array(3).fill(-1);this.halfedges=new Int32Array(3).fill(-1);this.triangles[0]=i[0];s[i[0]]=1;if(i.length===2){s[i[1]]=0;this.triangles[1]=i[1];this.triangles[2]=i[1]}}}voronoi(t){return new fz(this,t)}*neighbors(t){const{inedges:e,hull:n,_hullIndex:i,halfedges:r,triangles:s,collinear:a}=this;if(a){const e=a.indexOf(t);if(e>0)yield a[e-1];if(e=0&&r!==n&&r!==i)n=r;return r}_step(t,e,n){const{inedges:i,hull:r,_hullIndex:s,halfedges:a,triangles:o,points:u}=this;if(i[t]===-1||!u.length)return(t+1)%(u.length>>1);let l=t;let c=hz(e-u[t*2],2)+hz(n-u[t*2+1],2);const f=i[t];let d=f;do{let i=o[d];const f=hz(e-u[i*2],2)+hz(n-u[i*2+1],2);if(f>5,Dz=1<<11;function Cz(){var t=[256,256],e,n,i,r,s,a,o,u=$z,l=[],c=Math.random,f={};f.layout=function(){var u=d(Ko()),f=Oz((t[0]>>5)*t[1]),p=null,m=l.length,g=-1,y=[],v=l.map((t=>({text:e(t),font:n(t),style:r(t),weight:s(t),rotate:a(t),size:~~(i(t)+1e-14),padding:o(t),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:false,sprite:null,datum:t}))).sort(((t,e)=>e.size-t.size));while(++g>1;b.y=t[1]*(c()+.5)>>1;Fz(u,b,v,g);if(b.hasText&&h(f,b,p)){y.push(b);if(p)Bz(p,b);else p=[{x:b.x+b.x0,y:b.y+b.y0},{x:b.x+b.x1,y:b.y+b.y1}];b.x-=t[0]>>1;b.y-=t[1]>>1}}return y};function d(t){t.width=t.height=1;var e=Math.sqrt(t.getContext("2d").getImageData(0,0,1,1).data.length>>2);t.width=(Mz<<5)/e;t.height=Dz/e;var n=t.getContext("2d");n.fillStyle=n.strokeStyle="red";n.textAlign="center";return{context:n,ratio:e}}function h(e,n,i){var r=n.x,s=n.y,a=Math.hypot(t[0],t[1]),o=u(t),l=c()<.5?1:-1,f=-l,d,h,p;while(d=o(f+=l)){h=~~d[0];p=~~d[1];if(Math.min(Math.abs(h),Math.abs(p))>=a)break;n.x=r+h;n.y=s+p;if(n.x+n.x0<0||n.y+n.y0<0||n.x+n.x1>t[0]||n.y+n.y1>t[1])continue;if(!i||!Sz(n,e,t[0])){if(!i||zz(n,i)){var m=n.sprite,g=n.width>>5,y=t[0]>>5,v=n.x-(g<<4),b=v&127,x=32-b,_=n.y1-n.y0,w=(n.y+n.y0)*y+(v>>5),A;for(var k=0;k<_;k++){A=0;for(var E=0;E<=g;E++){e[w+E]|=A<>>b:0)}w+=y}n.sprite=null;return true}}}return false}f.words=function(t){if(arguments.length){l=t;return f}else{return l}};f.size=function(e){if(arguments.length){t=[+e[0],+e[1]];return f}else{return t}};f.font=function(t){if(arguments.length){n=Tz(t);return f}else{return n}};f.fontStyle=function(t){if(arguments.length){r=Tz(t);return f}else{return r}};f.fontWeight=function(t){if(arguments.length){s=Tz(t);return f}else{return s}};f.rotate=function(t){if(arguments.length){a=Tz(t);return f}else{return a}};f.text=function(t){if(arguments.length){e=Tz(t);return f}else{return e}};f.spiral=function(t){if(arguments.length){u=Nz[t]||t;return f}else{return u}};f.fontSize=function(t){if(arguments.length){i=Tz(t);return f}else{return i}};f.padding=function(t){if(arguments.length){o=Tz(t);return f}else{return o}};f.random=function(t){if(arguments.length){c=t;return f}else{return c}};return f}function Fz(t,e,n,i){if(e.sprite)return;var r=t.context,s=t.ratio;r.clearRect(0,0,(Mz<<5)/s,Dz/s);var a=0,o=0,u=0,l=n.length,c,f,d,h,p;--i;while(++i>5<<5;d=~~Math.max(Math.abs(v+b),Math.abs(v-b))}else{c=c+31>>5<<5}if(d>u)u=d;if(a+c>=Mz<<5){a=0;o+=u;u=0}if(o+d>=Dz)break;r.translate((a+(c>>1))/s,(o+(d>>1))/s);if(e.rotate)r.rotate(e.rotate*Ez);r.fillText(e.text,0,0);if(e.padding){r.lineWidth=2*e.padding;r.strokeText(e.text,0,0)}r.restore();e.width=c;e.height=d;e.xoff=a;e.yoff=o;e.x1=c>>1;e.y1=d>>1;e.x0=-e.x1;e.y0=-e.y1;e.hasText=true;a+=c}var _=r.getImageData(0,0,(Mz<<5)/s,Dz/s).data,w=[];while(--i>=0){e=n[i];if(!e.hasText)continue;c=e.width;f=c>>5;d=e.y1-e.y0;for(h=0;h>5),M=_[(o+p)*(Mz<<5)+(a+h)<<2]?1<<31-h%32:0;w[E]|=M;A|=M}if(A)k=p;else{e.y0++;d--;p--;o++}}e.y1=e.y0+k;e.sprite=w.slice(0,(e.y1-e.y0)*f)}}function Sz(t,e,n){n>>=5;var i=t.sprite,r=t.width>>5,s=t.x-(r<<4),a=s&127,o=32-a,u=t.y1-t.y0,l=(t.y+t.y0)*n+(s>>5),c;for(var f=0;f>>a:0))&e[l+d])return true}l+=n}return false}function Bz(t,e){var n=t[0],i=t[1];if(e.x+e.x0i.x)i.x=e.x+e.x1;if(e.y+e.y1>i.y)i.y=e.y+e.y1}function zz(t,e){return t.x+t.x1>e[0].x&&t.x+t.x0e[0].y&&t.y+t.y0e(t(n))}r.forEach((t=>{t[a[0]]=NaN;t[a[1]]=NaN;t[a[3]]=0}));const l=s.words(r).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(o).random(ir).layout();const c=s.size(),f=c[0]>>1,d=c[1]>>1,h=l.length;for(let p=0,m,g;pt[e]))}const Uz=t=>new Uint8Array(t);const jz=t=>new Uint16Array(t);const Gz=t=>new Uint32Array(t);function Yz(){let t=8,e=[],n=Gz(0),i=Xz(0,t),r=Xz(0,t);return{data:()=>e,seen:()=>n=Wz(n,e.length),add(t){for(let n=0,i=e.length,r=t.length,s;ne.length,curr:()=>i,prev:()=>r,reset:t=>r[t]=i[t],all:()=>t<257?255:t<65537?65535:4294967295,set(t,e){i[t]|=e},clear(t,e){i[t]&=~e},resize(e,n){const s=i.length;if(e>s||n>t){t=Math.max(n,t);i=Xz(e,t,i);r=Xz(e,t)}}}}function Wz(t,e,n){if(t.length>=e)return t;n=n||new t.constructor(e);n.set(t);return n}function Xz(t,e,n){const i=(e<257?Uz:e<65537?jz:Gz)(t);if(n)i.set(n);return i}function Hz(t,e,n){const i=1<0)for(d=0;dt,size:()=>n}}function Qz(t,e){t.sort.call(e,((e,n)=>{const i=t[e],r=t[n];return ir?1:0}));return Iz(t,e)}function Kz(t,e,n,i,r,s,a,o,u){let l=0,c=0,f;for(f=0;le.modified(t.fields)));return n?this.reinit(t,e):this.eval(t,e)}},init(t,e){const n=t.fields,i=t.query,r=this._indices={},s=this._dims=[],a=i.length;let o=0,u,l;for(;o{const t=r.remove(e,n);for(const e in i)i[e].reindex(t)}))},update(t,e,n){const i=this._dims,r=t.query,s=e.stamp,a=i.length;let o=0,u,l;n.filters=0;for(l=0;lh){for(g=h,y=Math.min(f,p);gp){for(g=Math.max(f,p),y=d;gf){for(p=f,m=Math.min(l,d);pd){for(p=Math.max(l,d),m=c;p!(o[t]&n)?a[t]:null;s.filter(s.MOD,l);if(!(r&r-1)){s.filter(s.ADD,l);s.filter(s.REM,(t=>(o[t]&n)===r?a[t]:null))}else{s.filter(s.ADD,(t=>{const e=o[t]&n,i=!e&&e^u[t]&n;return i?a[t]:null}));s.filter(s.REM,(t=>{const e=o[t]&n,i=e&&!(e^(e^u[t]&n));return i?a[t]:null}))}return s.filter(s.SOURCE,(t=>l(t._index)))}});const t$="RawCode";const e$="Literal";const n$="Property";const i$="Identifier";const r$="ArrayExpression";const s$="BinaryExpression";const a$="CallExpression";const o$="ConditionalExpression";const u$="LogicalExpression";const l$="MemberExpression";const c$="ObjectExpression";const f$="UnaryExpression";function d$(t){this.type=t}d$.prototype.visit=function(t){let e,n,i;if(t(this))return 1;for(e=h$(this),n=0,i=e.length;n";p$[_$]="Identifier";p$[w$]="Keyword";p$[A$]="Null";p$[k$]="Numeric";p$[E$]="Punctuator";p$[M$]="String";p$[D$]="RegularExpression";var C$="ArrayExpression",F$="BinaryExpression",S$="CallExpression",B$="ConditionalExpression",z$="Identifier",$$="Literal",R$="LogicalExpression",O$="MemberExpression",T$="ObjectExpression",N$="Property",L$="UnaryExpression";var P$="Unexpected token %0",q$="Unexpected number",I$="Unexpected string",U$="Unexpected identifier",j$="Unexpected reserved word",G$="Unexpected end of input",Y$="Invalid regular expression",W$="Invalid regular expression: missing /",X$="Octal literals are not allowed in strict mode.",H$="Duplicate data property in object literal not allowed in strict mode";var V$="ILLEGAL",Q$="Disabled.";var K$=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),Z$=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function J$(t,e){if(!t){throw new Error("ASSERT: "+e)}}function tR(t){return t>=48&&t<=57}function eR(t){return"0123456789abcdefABCDEF".includes(t)}function nR(t){return"01234567".includes(t)}function iR(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(t)}function rR(t){return t===10||t===13||t===8232||t===8233}function sR(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&K$.test(String.fromCharCode(t))}function aR(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&Z$.test(String.fromCharCode(t))}const oR={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function uR(){while(g$1114111||t!=="}"){NR({},P$,V$)}if(e<=65535){return String.fromCharCode(e)}n=(e-65536>>10)+55296;i=(e-65536&1023)+56320;return String.fromCharCode(n,i)}function fR(){var t,e;t=m$.charCodeAt(g$++);e=String.fromCharCode(t);if(t===92){if(m$.charCodeAt(g$)!==117){NR({},P$,V$)}++g$;t=lR("u");if(!t||t==="\\"||!sR(t.charCodeAt(0))){NR({},P$,V$)}e=t}while(g$>>="){g$+=4;return{type:E$,value:a,start:t,end:g$}}s=a.substr(0,3);if(s===">>>"||s==="<<="||s===">>="){g$+=3;return{type:E$,value:s,start:t,end:g$}}r=s.substr(0,2);if(i===r[1]&&"+-<>&|".includes(i)||r==="=>"){g$+=2;return{type:E$,value:r,start:t,end:g$}}if(r==="//"){NR({},P$,V$)}if("<>=!+-*%&|^/".includes(i)){++g$;return{type:E$,value:i,start:t,end:g$}}NR({},P$,V$)}function mR(t){let e="";while(g${if(parseInt(e,16)<=1114111){return"x"}NR({},Y$)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x")}try{new RegExp(n)}catch(i){NR({},Y$)}try{return new RegExp(t,e)}catch(r){return null}}function xR(){var t,e,n,i,r;t=m$[g$];J$(t==="/","Regular expression literal must start with a slash");e=m$[g$++];n=false;i=false;while(g$=0){NR({},Y$,n)}return{value:n,literal:e}}function wR(){var t,e,n,i;v$=null;uR();t=g$;e=xR();n=_R();i=bR(e.value,n.value);return{literal:e.literal+n.literal,value:i,regex:{pattern:e.value,flags:n.value},start:t,end:g$}}function AR(t){return t.type===_$||t.type===w$||t.type===b$||t.type===A$}function kR(){uR();if(g$>=y$){return{type:x$,start:g$,end:g$}}const t=m$.charCodeAt(g$);if(sR(t)){return hR()}if(t===40||t===41||t===59){return pR()}if(t===39||t===34){return vR()}if(t===46){if(tR(m$.charCodeAt(g$+1))){return yR()}return pR()}if(tR(t)){return yR()}return pR()}function ER(){const t=v$;g$=t.end;v$=kR();g$=t.end;return t}function MR(){const t=g$;v$=kR();g$=t}function DR(t){const e=new d$(C$);e.elements=t;return e}function CR(t,e,n){const i=new d$(t==="||"||t==="&&"?R$:F$);i.operator=t;i.left=e;i.right=n;return i}function FR(t,e){const n=new d$(S$);n.callee=t;n.arguments=e;return n}function SR(t,e,n){const i=new d$(B$);i.test=t;i.consequent=e;i.alternate=n;return i}function BR(t){const e=new d$(z$);e.name=t;return e}function zR(t){const e=new d$($$);e.value=t.value;e.raw=m$.slice(t.start,t.end);if(t.regex){if(e.raw==="//"){e.raw="/(?:)/"}e.regex=t.regex}return e}function $R(t,e,n){const i=new d$(O$);i.computed=t==="[";i.object=e;i.property=n;if(!i.computed)n.member=true;return i}function RR(t){const e=new d$(T$);e.properties=t;return e}function OR(t,e,n){const i=new d$(N$);i.key=e;i.value=n;i.kind=t;return i}function TR(t,e){const n=new d$(L$);n.operator=t;n.argument=e;n.prefix=true;return n}function NR(t,e){var n,i=Array.prototype.slice.call(arguments,2),r=e.replace(/%(\d)/g,((t,e)=>{J$(e":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function iO(){var t,e,n,i,r,s,a,o,u,l;t=v$;u=eO();i=v$;r=nO(i);if(r===0){return u}i.prec=r;ER();e=[t,v$];a=eO();s=[u,i,a];while((r=nO(v$))>0){while(s.length>2&&r<=s[s.length-2].prec){a=s.pop();o=s.pop().value;u=s.pop();e.pop();n=CR(o,u,a);s.push(n)}i=ER();i.prec=r;s.push(i);e.push(v$);n=eO();s.push(n)}l=s.length-1;n=s[l];e.pop();while(l>1){e.pop();n=CR(s[l-1].value,s[l-2],n);l-=2}return n}function rO(){var t,e,n;t=iO();if(qR("?")){ER();e=rO();PR(":");n=rO();t=SR(t,e,n)}return t}function sO(){const t=rO();if(qR(",")){throw new Error(Q$)}return t}function aO(t){m$=t;g$=0;y$=m$.length;v$=null;MR();const e=sO();if(v$.type!==x$){throw new Error("Unexpect token after expression.")}return e}var oO={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function uO(t){function e(e,n,i,r){let s=t(n[0]);if(i){s=i+"("+s+")";if(i.lastIndexOf("new ",0)===0)s="("+s+")"}return s+"."+e+(r<0?"":r===0?"()":"("+n.slice(1).map(t).join(",")+")")}function n(t,n,i){return r=>e(t,r,n,i)}const i="new Date",r="String",s="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(e){if(e.length<3)(0,p.z3)("Missing arguments to clamp function.");if(e.length>3)(0,p.z3)("Too many arguments to clamp function.");const n=e.map(t);return"Math.max("+n[1]+", Math.min("+n[2]+","+n[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:i,date:n("getDate",i,0),day:n("getDay",i,0),year:n("getFullYear",i,0),month:n("getMonth",i,0),hours:n("getHours",i,0),minutes:n("getMinutes",i,0),seconds:n("getSeconds",i,0),milliseconds:n("getMilliseconds",i,0),time:n("getTime",i,0),timezoneoffset:n("getTimezoneOffset",i,0),utcdate:n("getUTCDate",i,0),utcday:n("getUTCDay",i,0),utcyear:n("getUTCFullYear",i,0),utcmonth:n("getUTCMonth",i,0),utchours:n("getUTCHours",i,0),utcminutes:n("getUTCMinutes",i,0),utcseconds:n("getUTCSeconds",i,0),utcmilliseconds:n("getUTCMilliseconds",i,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",r,0),lower:n("toLowerCase",r,0),substring:n("substring",r),split:n("split",r),trim:n("trim",r,0),btoa:"btoa",atob:"atob",regexp:s,test:n("test",s),if:function(e){if(e.length<3)(0,p.z3)("Missing arguments to if function.");if(e.length>3)(0,p.z3)("Too many arguments to if function.");const n=e.map(t);return"("+n[0]+"?"+n[1]+":"+n[2]+")"}}}function lO(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function cO(t){t=t||{};const e=t.allowed?(0,p.M1)(t.allowed):{},n=t.forbidden?(0,p.M1)(t.forbidden):{},i=t.constants||oO,r=(t.functions||uO)(f),s=t.globalvar,a=t.fieldvar,o=(0,p.Tn)(s)?s:t=>`${s}["${t}"]`;let u={},l={},c=0;function f(t){if((0,p.Kg)(t))return t;const e=d[t.type];if(e==null)(0,p.z3)("Unsupported type: "+t.type);return e(t)}const d={Literal:t=>t.raw,Identifier:t=>{const r=t.name;if(c>0){return r}else if((0,p.mQ)(n,r)){return(0,p.z3)("Illegal identifier: "+r)}else if((0,p.mQ)(i,r)){return i[r]}else if((0,p.mQ)(e,r)){return r}else{u[r]=1;return o(r)}},MemberExpression:t=>{const e=!t.computed,n=f(t.object);if(e)c+=1;const i=f(t.property);if(n===a){l[lO(i)]=1}if(e)c-=1;return n+(e?"."+i:"["+i+"]")},CallExpression:t=>{if(t.callee.type!=="Identifier"){(0,p.z3)("Illegal callee type: "+t.callee.type)}const e=t.callee.name,n=t.arguments,i=(0,p.mQ)(r,e)&&r[e];if(!i)(0,p.z3)("Unrecognized function: "+e);return(0,p.Tn)(i)?i(n):i+"("+n.map(f).join(",")+")"},ArrayExpression:t=>"["+t.elements.map(f).join(",")+"]",BinaryExpression:t=>"("+f(t.left)+" "+t.operator+" "+f(t.right)+")",UnaryExpression:t=>"("+t.operator+f(t.argument)+")",ConditionalExpression:t=>"("+f(t.test)+"?"+f(t.consequent)+":"+f(t.alternate)+")",LogicalExpression:t=>"("+f(t.left)+t.operator+f(t.right)+")",ObjectExpression:t=>"{"+t.properties.map(f).join(",")+"}",Property:t=>{c+=1;const e=f(t.key);c-=1;return e+":"+f(t.value)}};function h(t){const e={code:f(t),globals:Object.keys(u),fields:Object.keys(l)};u={};l={};return e}h.functions=r;h.constants=i;return h}var fO=new ax;var dO=new ax,hO,pO,mO,gO,yO;var vO={point:Rx,lineStart:Rx,lineEnd:Rx,polygonStart:function(){fO=new ax;vO.lineStart=bO;vO.lineEnd=xO},polygonEnd:function(){var t=+fO;dO.add(t<0?px+t:t);this.lineStart=this.lineEnd=this.point=Rx},sphere:function(){dO.add(px)}};function bO(){vO.point=_O}function xO(){wO(hO,pO)}function _O(t,e){vO.point=wO;hO=t,pO=e;t*=gx,e*=gx;mO=t,gO=xx(e=e/2+hx),yO=Dx(e)}function wO(t,e){t*=gx,e*=gx;e=e/2+hx;var n=t-mO,i=n>=0?1:-1,r=i*n,s=xx(e),a=Dx(e),o=yO*a,u=gO*s+o*xx(r),l=o*i*Dx(r);fO.add(bx(l,u));mO=t,gO=s,yO=a}function AO(t){dO=new ax;sx(t,vO);return dO*2}var kO,EO,MO,DO,CO,FO,SO,BO,zO,$O,RO;var OO={point:TO,lineStart:LO,lineEnd:PO,polygonStart:function(){OO.point=qO;OO.lineStart=IO;OO.lineEnd=UO;zO=new ax;vO.polygonStart()},polygonEnd:function(){vO.polygonEnd();OO.point=TO;OO.lineStart=LO;OO.lineEnd=PO;if(fO<0)kO=-(MO=180),EO=-(DO=90);else if(zO>lx)DO=90;else if(zO<-lx)EO=-90;RO[0]=kO,RO[1]=MO},sphere:function(){kO=-(MO=180),EO=-(DO=90)}};function TO(t,e){$O.push(RO=[kO=t,MO=t]);if(eDO)DO=e}function NO(t,e){var n=V_([t*gx,e*gx]);if(BO){var i=K_(BO,n),r=[i[1],-i[0],0],s=K_(r,i);tw(s);s=H_(s);var a=t-CO,o=a>0?1:-1,u=s[0]*mx*o,l,c=yx(a)>180;if(c^(o*CODO)DO=l}else if(u=(u+360)%360-180,c^(o*CODO)DO=e}if(c){if(tjO(kO,MO))MO=t}else{if(jO(t,MO)>jO(kO,MO))kO=t}}else{if(MO>=kO){if(tMO)MO=t}else{if(t>CO){if(jO(kO,t)>jO(kO,MO))MO=t}else{if(jO(t,MO)>jO(kO,MO))kO=t}}}}else{$O.push(RO=[kO=t,MO=t])}if(eDO)DO=e;BO=n,CO=t}function LO(){OO.point=NO}function PO(){RO[0]=kO,RO[1]=MO;OO.point=TO;BO=null}function qO(t,e){if(BO){var n=t-CO;zO.add(yx(n)>180?n+(n>0?360:-360):n)}else{FO=t,SO=e}vO.point(t,e);NO(t,e)}function IO(){vO.lineStart()}function UO(){qO(FO,SO);vO.lineEnd();if(yx(zO)>lx)kO=-(MO=180);RO[0]=kO,RO[1]=MO;BO=null}function jO(t,e){return(e-=t)<0?e+360:e}function GO(t,e){return t[0]-e[0]}function YO(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:ejO(i[0],i[1]))i[1]=r[1];if(jO(r[0],i[1])>jO(i[0],i[1]))i[0]=r[0]}else{s.push(i=r)}}for(a=-Infinity,n=s.length-1,e=0,i=s[n];e<=n;i=r,++e){r=s[e];if((o=jO(i[1],r[0]))>a)a=o,kO=r[0],MO=i[1]}}$O=RO=null;return kO===Infinity||EO===Infinity?[[NaN,NaN],[NaN,NaN]]:[[kO,EO],[MO,DO]]}var XO,HO,VO,QO,KO,ZO,JO,tT,eT,nT,iT,rT,sT,aT,oT,uT;var lT={sphere:Rx,point:cT,lineStart:dT,lineEnd:mT,polygonStart:function(){lT.lineStart=gT;lT.lineEnd=yT},polygonEnd:function(){lT.lineStart=dT;lT.lineEnd=mT}};function cT(t,e){t*=gx,e*=gx;var n=xx(e);fT(n*xx(t),n*Dx(t),Dx(e))}function fT(t,e,n){++XO;VO+=(t-VO)/XO;QO+=(e-QO)/XO;KO+=(n-KO)/XO}function dT(){lT.point=hT}function hT(t,e){t*=gx,e*=gx;var n=xx(e);aT=n*xx(t);oT=n*Dx(t);uT=Dx(e);lT.point=pT;fT(aT,oT,uT)}function pT(t,e){t*=gx,e*=gx;var n=xx(e),i=n*xx(t),r=n*Dx(t),s=Dx(e),a=bx(Fx((a=oT*s-uT*r)*a+(a=uT*i-aT*s)*a+(a=aT*r-oT*i)*a),aT*i+oT*r+uT*s);HO+=a;ZO+=a*(aT+(aT=i));JO+=a*(oT+(oT=r));tT+=a*(uT+(uT=s));fT(aT,oT,uT)}function mT(){lT.point=cT}function gT(){lT.point=vT}function yT(){bT(rT,sT);lT.point=cT}function vT(t,e){rT=t,sT=e;t*=gx,e*=gx;lT.point=bT;var n=xx(e);aT=n*xx(t);oT=n*Dx(t);uT=Dx(e);fT(aT,oT,uT)}function bT(t,e){t*=gx,e*=gx;var n=xx(e),i=n*xx(t),r=n*Dx(t),s=Dx(e),a=oT*s-uT*r,o=uT*i-aT*s,u=aT*r-oT*i,l=kx(a,o,u),c=zx(l),f=l&&-c/l;eT.add(f*a);nT.add(f*o);iT.add(f*u);HO+=c;ZO+=c*(aT+(aT=i));JO+=c*(oT+(oT=r));tT+=c*(uT+(uT=s));fT(aT,oT,uT)}function xT(t){XO=HO=VO=QO=KO=ZO=JO=tT=0;eT=new ax;nT=new ax;iT=new ax;sx(t,lT);var e=+eT,n=+nT,i=+iT,r=kx(e,n,i);if(r=i[s])return false}else if(o.type===UT){if(a>i[s])return false}else if(o.type===jT){if(a<=i[s])return false}else if(o.type===GT){if(a(0,p.X$)(e.fields?{values:e.fields.map((e=>DT(e)(t.datum)))}:{[RT]:OT(t.datum)},e)))}function eN(t,e,n,i){var r=this.context.data[t],s=r?r.values.value:[],a={},o={},u={},l,c,f,d,h,m,g,y,v,b,x=s.length,_=0,w,A;for(;_(t[c[n].field]=e,t)),{}))}}else{h=RT;m=OT(l);g=a[h]||(a[h]={});y=g[d]||(g[d]=[]);y.push(m);if(n){y=o[d]||(o[d]=[]);y.push({[RT]:m})}}}e=e||FT;if(a[RT]){a[RT]=nN[`${RT}_${e}`](...Object.values(a[RT]))}else{Object.keys(a).forEach((t=>{a[t]=Object.keys(a[t]).map((e=>a[t][e])).reduce(((n,i)=>n===undefined?i:nN[`${u[t]}_${e}`](n,i)))}))}s=Object.keys(o);if(n&&s.length){const t=i?BT:ST;a[t]=e===FT?{[zT]:s.reduce(((t,e)=>(t.push(...o[e]),t)),[])}:{[$T]:s.map((t=>({[zT]:o[t]})))}}return a}var nN={[`${RT}_union`]:AT,[`${RT}_intersect`]:kT,E_union:function(t,e){if(!t.length)return e;var n=0,i=e.length;for(;ne.includes(t)))},R_union:function(t,e){var n=(0,p.Ro)(e[0]),i=(0,p.Ro)(e[1]);if(n>i){n=e[1];i=e[0]}if(!t.length)return[n,i];if(t[0]>n)t[0]=n;if(t[1]i){n=e[1];i=e[0]}if(!t.length)return[n,i];if(ii)t[1]=i}return t}};const iN=":",rN="@";function sN(t,e,n,i){if(e[0].type!==e$)(0,p.z3)("First argument to selection functions must be a string literal.");const r=e[0].value,s=e.length>=2&&(0,p.se)(e).value,a="unit",o=rN+a,u=iN+r;if(s===CT&&!(0,p.mQ)(i,o)){i[o]=n.getData(r).indataRef(n,a)}if(!(0,p.mQ)(i,u)){i[u]=n.getData(r).tuplesRef()}}function aN(t){const e=this.context.data[t];return e?e.values.value:[]}function oN(t,e,n){const i=this.context.data[t]["index:"+e],r=i?i.value.get(n):undefined;return r?r.count:r}function uN(t,e){const n=this.context.dataflow,i=this.context.data[t],r=i.input;n.pulse(r,n.changeset().remove(p.vN).insert(e));return 1}function lN(t,e,n){if(t){const n=this.context.dataflow,i=t.mark.source;n.pulse(i,n.changeset().encode(t,e))}return n!==undefined?n:t}const cN=t=>function(e,n){const i=this.context.dataflow.locale();return e===null?"null":i[t](n)(e)};const fN=cN("format");const dN=cN("timeFormat");const hN=cN("utcFormat");const pN=cN("timeParse");const mN=cN("utcParse");const gN=new Date(2e3,0,1);function yN(t,e,n){if(!Number.isInteger(t)||!Number.isInteger(e))return"";gN.setYear(2e3);gN.setMonth(t);gN.setDate(e);return dN.call(this,gN,n)}function vN(t){return yN.call(this,t,1,"%B")}function bN(t){return yN.call(this,t,1,"%b")}function xN(t){return yN.call(this,0,2+t,"%A")}function _N(t){return yN.call(this,0,2+t,"%a")}const wN=":";const AN="@";const kN="%";const EN="$";function MN(t,e,n,i){if(e[0].type!==e$){(0,p.z3)("First argument to data functions must be a string literal.")}const r=e[0].value,s=wN+r;if(!(0,p.mQ)(s,i)){try{i[s]=n.getData(r).tuplesRef()}catch(a){}}}function DN(t,e,n,i){if(e[0].type!==e$)(0,p.z3)("First argument to indata must be a string literal.");if(e[1].type!==e$)(0,p.z3)("Second argument to indata must be a string literal.");const r=e[0].value,s=e[1].value,a=AN+s;if(!(0,p.mQ)(a,i)){i[a]=n.getData(r).indataRef(n,s)}}function CN(t,e,n,i){if(e[0].type===e$){FN(n,i,e[0].value)}else{for(t in n.scales){FN(n,i,t)}}}function FN(t,e,n){const i=kN+n;if(!(0,p.mQ)(e,i)){try{e[i]=t.scaleRef(n)}catch(r){}}}function SN(t,e){if((0,p.Kg)(t)){const n=e.scales[t];return n&&jl(n.value)?n.value:undefined}else if((0,p.Tn)(t)){return jl(t)?t:undefined}return undefined}function BN(t,e,n){e.__bandwidth=t=>t&&t.bandwidth?t.bandwidth():0;n._bandwidth=CN;n._range=CN;n._scale=CN;const i=e=>"_["+(e.type===e$?(0,p.r$)(kN+e.value):(0,p.r$)(kN)+"+"+t(e))+"]";return{_bandwidth:t=>`this.__bandwidth(${i(t[0])})`,_range:t=>`${i(t[0])}.range()`,_scale:e=>`${i(e[0])}(${t(e[1])})`}}function zN(t,e){return function(n,i,r){if(n){const e=SN(n,(r||this).context);return e&&e.path[t](i)}else{return e(i)}}}const $N=zN("area",AO);const RN=zN("bounds",WO);const ON=zN("centroid",xT);function TN(t,e){const n=SN(t,(e||this).context);return n&&n.scale()}function NN(t){const e=this.context.group;let n=false;if(e)while(t){if(t===e){n=true;break}t=t.mark.group}return n}function LN(t,e,n){try{t[e].apply(t,["EXPRESSION"].concat([].slice.call(n)))}catch(i){t.warn(i)}return n[n.length-1]}function PN(){return LN(this.context.dataflow,"warn",arguments)}function qN(){return LN(this.context.dataflow,"info",arguments)}function IN(){return LN(this.context.dataflow,"debug",arguments)}function UN(t){const e=t/255;if(e<=.03928){return e/12.92}return Math.pow((e+.055)/1.055,2.4)}function jN(t){const e=(0,Fk.Qh)(t),n=UN(e.r),i=UN(e.g),r=UN(e.b);return.2126*n+.7152*i+.0722*r}function GN(t,e){const n=jN(t),i=jN(e),r=Math.max(n,i),s=Math.min(n,i);return(r+.05)/(s+.05)}function YN(){const t=[].slice.call(arguments);t.unshift({});return(0,p.X$)(...t)}function WN(t,e){return t===e||t!==t&&e!==e?true:(0,p.cy)(t)?(0,p.cy)(e)&&t.length===e.length?XN(t,e):false:(0,p.Gv)(t)&&(0,p.Gv)(e)?HN(t,e):false}function XN(t,e){for(let n=0,i=t.length;nHN(t,e)}function QN(t,e,n,i,r,s){const a=this.context.dataflow,o=this.context.data[t],u=o.input,l=a.stamp();let c=o.changes,f,d;if(a._trigger===false||!(u.value.length||e||i)){return 0}if(!c||c.stamp{o.modified=true;a.pulse(u,c).run()}),true,1)}if(n){f=n===true?p.vN:(0,p.cy)(n)||gn(n)?n:VN(n);c.remove(f)}if(e){c.insert(e)}if(i){f=VN(i);if(u.value.some(f)){c.remove(f)}else{c.insert(i)}}if(r){for(d in s){c.modify(r,d,s[d])}}return 1}function KN(t){const e=t.touches,n=e[0].clientX-e[1].clientX,i=e[0].clientY-e[1].clientY;return Math.hypot(n,i)}function ZN(t){const e=t.touches;return Math.atan2(e[0].clientY-e[1].clientY,e[0].clientX-e[1].clientX)}const JN={};function tL(t,e){const n=JN[e]||(JN[e]=(0,p.ZZ)(e));return(0,p.cy)(t)?t.map(n):n(t)}function eL(t){return(0,p.cy)(t)||ArrayBuffer.isView(t)?t:null}function nL(t){return eL(t)||((0,p.Kg)(t)?t:null)}function iL(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i1?e-1:0),i=1;i1?e-1:0),i=1;i1?e-1:0),i=1;is.stop(l(e),t(e))));return s}function vL(t,e,n){const i=SN(t,(n||this).context);return function(t){return i?i.path.context(t)(e):""}}function bL(t){let e=null;return function(n){return n?yf(n,e=e||nf(t)):t}}const xL=t=>t.data;function _L(t,e){const n=aN.call(e,t);return n.root&&n.root.lookup||{}}function wL(t,e,n){const i=_L(t,this),r=i[e],s=i[n];return r&&s?r.path(s).map(xL):undefined}function AL(t,e){const n=_L(t,this)[e];return n?n.ancestors().map(xL):undefined}const kL=()=>typeof window!=="undefined"&&window||null;function EL(){const t=kL();return t?t.screen:{}}function ML(){const t=kL();return t?[t.innerWidth,t.innerHeight]:[undefined,undefined]}function DL(){const t=this.context.dataflow,e=t.container&&t.container();return e?[e.clientWidth,e.clientHeight]:[undefined,undefined]}function CL(t,e,n){if(!t)return[];const[i,r]=t,s=(new vd).set(i[0],i[1],r[0],r[1]),a=n||this.context.dataflow.scenegraph().root;return cy(a,s,FL(e))}function FL(t){let e=null;if(t){const n=(0,p.YO)(t.marktype),i=(0,p.YO)(t.markname);e=t=>(!n.length||n.some((e=>t.marktype===e)))&&(!i.length||i.some((e=>t.name===e)))}return e}function SL(t,e,n){let i=arguments.length>3&&arguments[3]!==undefined?arguments[3]:5;t=(0,p.YO)(t);const r=t[t.length-1];return r===undefined||Math.hypot(r[0]-e,r[1]-n)>i?[...t,[e,n]]:t}function BL(t){return(0,p.YO)(t).reduce(((e,n,i)=>{let[r,s]=n;return e+=i==0?`M ${r},${s} `:i===t.length-1?" Z":`L ${r},${s} `}),"")}function zL(t,e,n){const{x:i,y:r,mark:s}=n;const a=(new vd).set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[u,l]of e){if(ua.x2)a.x2=u;if(la.y2)a.y2=l}a.translate(i,r);const o=CL([[a.x1,a.y1],[a.x2,a.y2]],t,s);return o.filter((t=>$L(t.x,t.y,e)))}function $L(t,e,n){let i=0;for(let r=0,s=n.length-1;re!=o>e&&t<(a-u)*(e-l)/(o-l)+u){i++}}return i&1}const RL={random(){return ir()},cumulativeNormal:mr,cumulativeLogNormal:wr,cumulativeUniform:Cr,densityNormal:pr,densityLogNormal:_r,densityUniform:Dr,quantileNormal:gr,quantileLogNormal:Ar,quantileUniform:Fr,sampleNormal:hr,sampleLogNormal:xr,sampleUniform:Mr,isArray:p.cy,isBoolean:p.Lm,isDate:p.$P,isDefined(t){return t!==undefined},isNumber:p.Et,isObject:p.Gv,isRegExp:p.gd,isString:p.Kg,isTuple:gn,isValid(t){return t!=null&&t===t},toBoolean:p.G4,toDate(t){return(0,p.ay)(t)},toNumber:p.Ro,toString:p.dI,indexof:rL,join:iL,lastindexof:sL,replace:oL,reverse:uL,sort:lL,slice:aL,flush:p.bX,lerp:p.Cc,merge:YN,pad:p.eV,peek:p.se,pluck:tL,span:p.Ln,inrange:p.PK,truncate:p.xv,rgb:Fk.Qh,lab:_T.Ay,hcl:_T.aq,hsl:Fk.KI,luminance:jN,contrast:GN,sequence:es.A,format:fN,utcFormat:hN,utcParse:mN,utcOffset:Gt,utcSequence:Xt,timeFormat:dN,timeParse:pN,timeOffset:jt,timeSequence:Wt,timeUnitSpecifier:pt,monthFormat:vN,monthAbbrevFormat:bN,dayFormat:xN,dayAbbrevFormat:_N,quarter:p.$G,utcquarter:p.vu,week:vt,utcweek:kt,dayofyear:yt,utcdayofyear:At,warn:PN,info:qN,debug:IN,extent(t){return(0,p.Xx)(t)},inScope:NN,intersect:CL,clampRange:p.BS,pinchDistance:KN,pinchAngle:ZN,screen:EL,containerSize:DL,windowSize:ML,bandspace:cL,setdata:uN,pathShape:bL,panLinear:p.VC,panLog:p.KH,panPow:p.co,panSymlog:p.zy,zoomLinear:p.lL,zoomLog:p.oV,zoomPow:p.SW,zoomSymlog:p.B2,encode:lN,modify:QN,lassoAppend:SL,lassoPath:BL,intersectLasso:zL};const OL=["view","item","group","xy","x","y"],TL="event.vega.",NL="this.",LL={};const PL={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>`_[${(0,p.r$)(EN+t)}]`,functions:IL,constants:oO,visitors:LL};const qL=cO(PL);function IL(t){const e=uO(t);OL.forEach((t=>e[t]=TL+t));for(const n in RL){e[n]=NL+n}(0,p.X$)(e,BN(t,RL,LL));return e}function UL(t,e,n){if(arguments.length===1){return RL[t]}RL[t]=e;if(n)LL[t]=n;if(qL)qL.functions[t]=NL+t;return this}UL("bandwidth",fL,CN);UL("copy",dL,CN);UL("domain",hL,CN);UL("range",mL,CN);UL("invert",pL,CN);UL("scale",gL,CN);UL("gradient",yL,CN);UL("geoArea",$N,CN);UL("geoBounds",RN,CN);UL("geoCentroid",ON,CN);UL("geoShape",vL,CN);UL("geoScale",TN,CN);UL("indata",oN,DN);UL("data",aN,MN);UL("treePath",wL,MN);UL("treeAncestors",AL,MN);UL("vlSelectionTest",VT,sN);UL("vlSelectionIdTest",JT,sN);UL("vlSelectionResolve",eN,sN);UL("vlSelectionTuples",tN);function jL(t,e){const n={};let i;try{t=(0,p.Kg)(t)?t:(0,p.r$)(t)+"";i=aO(t)}catch(s){(0,p.z3)("Expression parse error: "+t)}i.visit((t=>{if(t.type!==a$)return;const i=t.callee.name,r=PL.visitors[i];if(r)r(i,t.arguments,e,n)}));const r=qL(i);r.globals.forEach((t=>{const i=EN+t;if(!(0,p.mQ)(n,i)&&e.getSignal(t)){n[i]=e.signalRef(t)}}));return{$expr:(0,p.X$)({code:r.code},e.options.ast?{ast:i}:null),$fields:r.fields,$params:n}}function GL(t){const e=this,n=t.operators||[];if(t.background){e.background=t.background}if(t.eventConfig){e.eventConfig=t.eventConfig}if(t.locale){e.locale=t.locale}n.forEach((t=>e.parseOperator(t)));n.forEach((t=>e.parseOperatorParameters(t)));(t.streams||[]).forEach((t=>e.parseStream(t)));(t.updates||[]).forEach((t=>e.parseUpdate(t)));return e.resolve()}const YL=(0,p.M1)(["rule"]),WL=(0,p.M1)(["group","image","rect"]);function XL(t,e){let n="";if(YL[e])return n;if(t.x2){if(t.x){if(WL[e]){n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"}n+="o.width=o.x2-o.x;"}else{n+="o.x=o.x2-(o.width||0);"}}if(t.xc){n+="o.x=o.xc-(o.width||0)/2;"}if(t.y2){if(t.y){if(WL[e]){n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"}n+="o.height=o.y2-o.y;"}else{n+="o.y=o.y2-(o.height||0);"}}if(t.yc){n+="o.y=o.yc-(o.height||0)/2;"}return n}function HL(t){return(t+"").toLowerCase()}function VL(t){return HL(t)==="operator"}function QL(t){return HL(t)==="collect"}function KL(t,e,n){if(!n.endsWith(";")){n="return("+n+");"}const i=Function(...e.concat(n));return t&&t.functions?i.bind(t.functions):i}function ZL(t,e,n,i){return`((u = ${t}) < (v = ${e}) || u == null) && v != null ? ${n}\n : (u > v || v == null) && u != null ? ${i}\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}\n : v !== v && u === u ? ${i} : `}var JL={operator:(t,e)=>KL(t,["_"],e.code),parameter:(t,e)=>KL(t,["datum","_"],e.code),event:(t,e)=>KL(t,["event"],e.code),handler:(t,e)=>{const n=`var datum=event.item&&event.item.datum;return ${e.code};`;return KL(t,["_","event"],n)},encode:(t,e)=>{const{marktype:n,channels:i}=e;let r="var o=item,datum=o.datum,m=0,$;";for(const s in i){const t="o["+(0,p.r$)(s)+"]";r+=`$=${i[s].code};if(${t}!==$)${t}=$,m=1;`}r+=XL(i,n);r+="return m;";return KL(t,["item","_"],r)},codegen:{get(t){const e=`[${t.map(p.r$).join("][")}]`;const n=Function("_",`return _${e};`);n.path=e;return n},comparator(t,e){let n;const i=(t,i)=>{const r=e[i];let s,a;if(t.path){s=`a${t.path}`;a=`b${t.path}`}else{(n=n||{})["f"+i]=t;s=`this.f${i}(a)`;a=`this.f${i}(b)`}return ZL(s,a,-r,r)};const r=Function("a","b","var u, v; return "+t.map(i).join("")+"0;");return n?r.bind(n):r}}};function tP(t){const e=this;if(VL(t.type)||!t.type){e.operator(t,t.update?e.operatorExpression(t.update):null)}else{e.transform(t,t.type)}}function eP(t){const e=this;if(t.params){const n=e.get(t.id);if(!n)(0,p.z3)("Invalid operator id: "+t.id);e.dataflow.connect(n,n.parameters(e.parseParameters(t.params),t.react,t.initonly))}}function nP(t,e){e=e||{};const n=this;for(const i in t){const r=t[i];e[i]=(0,p.cy)(r)?r.map((t=>iP(t,n,e))):iP(r,n,e)}return e}function iP(t,e,n){if(!t||!(0,p.Gv)(t))return t;for(let i=0,r=rP.length,s;it&&t.$tupleid?yn:t));return e.fn[n]||(e.fn[n]=(0,p.UD)(i,t.$order,e.expr.codegen))}function cP(t,e){const n=t.$encode,i={};for(const r in n){const t=n[r];i[r]=(0,p.sY)(e.encodeExpression(t.$expr),t.$fields);i[r].output=t.$output}return i}function fP(t,e){return e}function dP(t,e){const n=t.$subflow;return function(t,i,r){const s=e.fork().parse(n),a=s.get(n.operators[0].id),o=s.signals.parent;if(o)o.set(r);a.detachSubflow=()=>e.detach(s);return a}}function hP(){return yn}function pP(t){var e=this,n=t.filter!=null?e.eventExpression(t.filter):undefined,i=t.stream!=null?e.get(t.stream):undefined,r;if(t.source){i=e.events(t.source,t.type,n)}else if(t.merge){r=t.merge.map((t=>e.get(t)));i=r[0].merge.apply(r[0],r.slice(1))}if(t.between){r=t.between.map((t=>e.get(t)));i=i.between(r[0],r[1])}if(t.filter){i=i.filter(n)}if(t.throttle!=null){i=i.throttle(+t.throttle)}if(t.debounce!=null){i=i.debounce(+t.debounce)}if(i==null){(0,p.z3)("Invalid stream definition: "+JSON.stringify(t))}if(t.consume)i.consume(true);e.stream(t,i)}function mP(t){var e=this,n=(0,p.Gv)(n=t.source)?n.$ref:n,i=e.get(n),r=null,s=t.update,a=undefined;if(!i)(0,p.z3)("Source not defined: "+t.source);r=t.target&&t.target.$expr?e.eventExpression(t.target.$expr):e.get(t.target);if(s&&s.$expr){if(s.$params){a=e.parseParameters(s.$params)}s=e.handlerExpression(s.$expr)}e.update(t,i,r,s,a)}const gP={skip:true};function yP(t){var e=this,n={};if(t.signals){var i=n.signals={};Object.keys(e.signals).forEach((n=>{const r=e.signals[n];if(t.signals(n,r)){i[n]=r.value}}))}if(t.data){var r=n.data={};Object.keys(e.data).forEach((n=>{const i=e.data[n];if(t.data(n,i)){r[n]=i.input.value}}))}if(e.subcontext&&t.recurse!==false){n.subcontext=e.subcontext.map((e=>e.getState(t)))}return n}function vP(t){var e=this,n=e.dataflow,i=t.data,r=t.signals;Object.keys(r||{}).forEach((t=>{n.update(e.signals[t],r[t],gP)}));Object.keys(i||{}).forEach((t=>{n.pulse(e.data[t].input,n.changeset().remove(p.vN).insert(i[t]))}));(t.subcontext||[]).forEach(((t,n)=>{const i=e.subcontext[n];if(i)i.setState(t)}))}function bP(t,e,n,i){return new xP(t,e,n,i)}function xP(t,e,n,i){this.dataflow=t;this.transforms=e;this.events=t.events.bind(t);this.expr=i||JL,this.signals={};this.scales={};this.nodes={};this.data={};this.fn={};if(n){this.functions=Object.create(n);this.functions.context=this}}function _P(t){this.dataflow=t.dataflow;this.transforms=t.transforms;this.events=t.events;this.expr=t.expr;this.signals=Object.create(t.signals);this.scales=Object.create(t.scales);this.nodes=Object.create(t.nodes);this.data=Object.create(t.data);this.fn=Object.create(t.fn);if(t.functions){this.functions=Object.create(t.functions);this.functions.context=this}}xP.prototype=_P.prototype={fork(){const t=new _P(this);(this.subcontext||(this.subcontext=[])).push(t);return t},detach(t){this.subcontext=this.subcontext.filter((e=>e!==t));const e=Object.keys(t.nodes);for(const n of e)t.nodes[n]._targets=null;for(const n of e)t.nodes[n].detach();t.nodes=null},get(t){return this.nodes[t]},set(t,e){return this.nodes[t]=e},add(t,e){const n=this,i=n.dataflow,r=t.value;n.set(t.id,e);if(QL(t.type)&&r){if(r.$ingest){i.ingest(e,r.$ingest,r.$format)}else if(r.$request){i.preload(e,r.$request,r.$format)}else{i.pulse(e,i.changeset().insert(r))}}if(t.root){n.root=e}if(t.parent){let r=n.get(t.parent.$ref);if(r){i.connect(r,[e]);e.targets().add(r)}else{(n.unresolved=n.unresolved||[]).push((()=>{r=n.get(t.parent.$ref);i.connect(r,[e]);e.targets().add(r)}))}}if(t.signal){n.signals[t.signal]=e}if(t.scale){n.scales[t.scale]=e}if(t.data){for(const i in t.data){const r=n.data[i]||(n.data[i]={});t.data[i].forEach((t=>r[t]=e))}}},resolve(){(this.unresolved||[]).forEach((t=>t()));delete this.unresolved;return this},operator(t,e){this.add(t,this.dataflow.add(t.value,e))},transform(t,e){this.add(t,this.dataflow.add(this.transforms[HL(e)]))},stream(t,e){this.set(t.id,e)},update(t,e,n,i,r){this.dataflow.on(e,n,i,r,t.options)},operatorExpression(t){return this.expr.operator(this,t)},parameterExpression(t){return this.expr.parameter(this,t)},eventExpression(t){return this.expr.event(this,t)},handlerExpression(t){return this.expr.handler(this,t)},encodeExpression(t){return this.expr.encode(this,t)},parse:GL,parseOperator:tP,parseOperatorParameters:eP,parseParameters:nP,parseStream:pP,parseUpdate:mP,getState:yP,setState:vP};function wP(t,e,n){var i=new QE.M4,r=e;if(e==null)return i.restart(t,e,n),i;i._restart=i.restart;i.restart=function(t,e,n){e=+e,n=n==null?(0,QE.tB)():+n;i._restart((function s(a){a+=r;i._restart(s,r+=e,n);t(a)}),e,n)};i.restart(t,e,n);return i}function AP(t){const e=t.container();if(e){e.setAttribute("role","graphics-document");e.setAttribute("aria-roleDescription","visualization");kP(e,t.description())}}function kP(t,e){if(t)e==null?t.removeAttribute("aria-label"):t.setAttribute("aria-label",e)}function EP(t){t.add(null,(e=>{t._background=e.bg;t._resize=1;return e.bg}),{bg:t._signals.background})}const MP="default";function DP(t){const e=t._signals.cursor||(t._signals.cursor=t.add({user:MP,item:null}));t.on(t.events("view","pointermove"),e,((t,n)=>{const i=e.value,r=i?(0,p.Kg)(i)?i:i.user:MP,s=n.item&&n.item.cursor||null;return i&&r===i.user&&s==i.item?i:{user:r,item:s}}));t.add(null,(function(e){let n=e.cursor,i=this.value;if(!(0,p.Kg)(n)){i=n.item;n=n.user}CP(t,n&&n!==MP?n:i||n);return i}),{cursor:e})}function CP(t,e){const n=t.globalCursor()?typeof document!=="undefined"&&document.body:t.container();if(n){return e==null?n.style.removeProperty("cursor"):n.style.cursor=e}}function FP(t,e){var n=t._runtime.data;if(!(0,p.mQ)(n,e)){(0,p.z3)("Unrecognized data set: "+e)}return n[e]}function SP(t,e){return arguments.length<2?FP(this,t).values.value:BP.call(this,t,En().remove(p.vN).insert(e))}function BP(t,e){if(!kn(e)){(0,p.z3)("Second argument to changes must be a changeset.")}const n=FP(this,t);n.modified=true;return this.pulse(n.input,e)}function zP(t,e){return BP.call(this,t,En().insert(e))}function $P(t,e){return BP.call(this,t,En().remove(e))}function RP(t){var e=t.padding();return Math.max(0,t._viewWidth+e.left+e.right)}function OP(t){var e=t.padding();return Math.max(0,t._viewHeight+e.top+e.bottom)}function TP(t){var e=t.padding(),n=t._origin;return[e.left+n[0],e.top+n[1]]}function NP(t){var e=TP(t),n=RP(t),i=OP(t);t._renderer.background(t.background());t._renderer.resize(n,i,e);t._handler.origin(e);t._resizeListeners.forEach((e=>{try{e(n,i)}catch(r){t.error(r)}}))}function LP(t,e,n){var i=t._renderer,r=i&&i.canvas(),s,a,o;if(r){o=TP(t);a=e.changedTouches?e.changedTouches[0]:e;s=fm(a,r);s[0]-=o[0];s[1]-=o[1]}e.dataflow=t;e.item=n;e.vega=PP(t,n,s);return e}function PP(t,e,n){const i=e?e.mark.marktype==="group"?e:e.mark.group:null;function r(t){var n=i,r;if(t)for(r=e;r;r=r.mark.group){if(r.mark.name===t){n=r;break}}return n&&n.mark&&n.mark.interactive?n:{}}function s(t){if(!t)return n;if((0,p.Kg)(t))t=r(t);const e=n.slice();while(t){e[0]-=t.x||0;e[1]-=t.y||0;t=t.mark&&t.mark.group}return e}return{view:(0,p.dY)(t),item:(0,p.dY)(e||{}),group:r,xy:s,x:t=>s(t)[0],y:t=>s(t)[1]}}const qP="view",IP="timer",UP="window",jP={trap:false};function GP(t){const e=(0,p.X$)({defaults:{}},t);const n=(t,e)=>{e.forEach((e=>{if((0,p.cy)(t[e]))t[e]=(0,p.M1)(t[e])}))};n(e.defaults,["prevent","allow"]);n(e,["view","window","selector"]);return e}function YP(t,e,n,i){t._eventListeners.push({type:n,sources:(0,p.YO)(e),handler:i})}function WP(t,e){var n=t._eventConfig.defaults,i=n.prevent,r=n.allow;return i===false||r===true?false:i===true||r===false?true:i?i[e]:r?!r[e]:t.preventDefault()}function XP(t,e,n){const i=t._eventConfig&&t._eventConfig[e];if(i===false||(0,p.Gv)(i)&&!i[n]){t.warn(`Blocked ${e} ${n} event listener.`);return false}return true}function HP(t,e,n){var i=this,r=new Ln(n),s=function(n,s){i.runAsync(null,(()=>{if(t===qP&&WP(i,e)){n.preventDefault()}r.receive(LP(i,n,s))}))},a;if(t===IP){if(XP(i,"timer",e)){i.timer(s,e)}}else if(t===qP){if(XP(i,"view",e)){i.addEventListener(e,s,jP)}}else{if(t===UP){if(XP(i,"window",e)&&typeof window!=="undefined"){a=[window]}}else if(typeof document!=="undefined"){if(XP(i,"selector",e)){a=Array.from(document.querySelectorAll(t))}}if(!a){i.warn("Can not resolve event source: "+t)}else{for(var o=0,u=a.length;o=0){e[r].stop()}r=i.length;while(--r>=0){a=i[r];s=a.sources.length;while(--s>=0){a.sources[s].removeEventListener(a.type,a.handler)}}if(t){t.call(this,this._handler,null,null,null)}r=n.length;while(--r>=0){u=n[r].type;o=n[r].handler;this._handler.off(u,o)}return this}function tq(t,e,n){const i=document.createElement(t);for(const r in e)i.setAttribute(r,e[r]);if(n!=null)i.textContent=n;return i}const eq="vega-bind",nq="vega-bind-name",iq="vega-bind-radio";function rq(t,e,n){if(!e)return;const i=n.param;let r=n.state;if(!r){r=n.state={elements:null,active:false,set:null,update:e=>{if(e!=t.signal(i.signal)){t.runAsync(null,(()=>{r.source=true;t.signal(i.signal,e)}))}}};if(i.debounce){r.update=(0,p.sg)(i.debounce,r.update)}}const s=i.input==null&&i.element?sq:oq;s(r,e,i,t);if(!r.active){t.on(t._signals[i.signal],null,(()=>{r.source?r.source=false:r.set(t.signal(i.signal))}));r.active=true}return r}function sq(t,e,n,i){const r=n.event||"input";const s=()=>t.update(e.value);i.signal(n.signal,e.value);e.addEventListener(r,s);YP(i,e,r,s);t.set=t=>{e.value=t;e.dispatchEvent(aq(r))}}function aq(t){return typeof Event!=="undefined"?new Event(t):{type:t}}function oq(t,e,n,i){const r=i.signal(n.signal);const s=tq("div",{class:eq});const a=n.input==="radio"?s:s.appendChild(tq("label"));a.appendChild(tq("span",{class:nq},n.name||n.signal));e.appendChild(s);let o=uq;switch(n.input){case"checkbox":o=lq;break;case"select":o=cq;break;case"radio":o=fq;break;case"range":o=dq;break}o(t,a,n,r)}function uq(t,e,n,i){const r=tq("input");for(const s in n){if(s!=="signal"&&s!=="element"){r.setAttribute(s==="input"?"type":s,n[s])}}r.setAttribute("name",n.signal);r.value=i;e.appendChild(r);r.addEventListener("input",(()=>t.update(r.value)));t.elements=[r];t.set=t=>r.value=t}function lq(t,e,n,i){const r={type:"checkbox",name:n.signal};if(i)r.checked=true;const s=tq("input",r);e.appendChild(s);s.addEventListener("change",(()=>t.update(s.checked)));t.elements=[s];t.set=t=>s.checked=!!t||null}function cq(t,e,n,i){const r=tq("select",{name:n.signal}),s=n.labels||[];n.options.forEach(((t,e)=>{const n={value:t};if(hq(t,i))n.selected=true;r.appendChild(tq("option",n,(s[e]||t)+""))}));e.appendChild(r);r.addEventListener("change",(()=>{t.update(n.options[r.selectedIndex])}));t.elements=[r];t.set=t=>{for(let e=0,i=n.options.length;e{const o={type:"radio",name:n.signal,value:e};if(hq(e,i))o.checked=true;const u=tq("input",o);u.addEventListener("change",(()=>t.update(e)));const l=tq("label",{},(s[a]||e)+"");l.prepend(u);r.appendChild(l);return u}));t.set=e=>{const n=t.elements,i=n.length;for(let t=0;t{u.textContent=o.value;t.update(+o.value)};o.addEventListener("input",l);o.addEventListener("change",l);t.elements=[o];t.set=t=>{o.value=t;u.textContent=t}}function hq(t,e){return t===e||t+""===e+""}function pq(t,e,n,i,r,s){e=e||new i(t.loader());return e.initialize(n,RP(t),OP(t),TP(t),r,s).background(t.background())}function mq(t,e){return!e?null:function(){try{e.apply(this,arguments)}catch(n){t.error(n)}}}function gq(t,e,n,i){const r=new i(t.loader(),mq(t,t.tooltip())).scene(t.scenegraph().root).initialize(n,TP(t),t);if(e){e.handlers().forEach((t=>{r.on(t.type,t.handler)}))}return r}function yq(t,e){const n=this,i=n._renderType,r=n._eventConfig.bind,s=ly(i);t=n._el=t?vq(n,t,true):null;AP(n);if(!s)n.error("Unrecognized renderer type: "+i);const a=s.handler||jm,o=t?s.renderer:s.headless;n._renderer=!o?null:pq(n,n._renderer,t,o);n._handler=gq(n,n._handler,t,a);n._redraw=true;if(t&&r!=="none"){e=e?n._elBind=vq(n,e,true):t.appendChild(tq("form",{class:"vega-bindings"}));n._bind.forEach((t=>{if(t.param.element&&r!=="container"){t.element=vq(n,t.param.element,!!t.param.input)}}));n._bind.forEach((t=>{rq(n,t.element||e,t)}))}return n}function vq(t,e,n){if(typeof e==="string"){if(typeof document!=="undefined"){e=document.querySelector(e);if(!e){t.error("Signal bind element not found: "+e);return null}}else{t.error("DOM document instance not found.");return null}}if(e&&n){try{e.textContent=""}catch(i){e=null;t.error(i)}}return e}const bq=t=>+t||0;const xq=t=>({top:t,bottom:t,left:t,right:t});function _q(t){return(0,p.Gv)(t)?{top:bq(t.top),bottom:bq(t.bottom),left:bq(t.left),right:bq(t.right)}:xq(bq(t))}async function wq(t,e,n,i){const r=ly(e),s=r&&r.headless;if(!s)(0,p.z3)("Unrecognized renderer type: "+e);await t.runAsync();return pq(t,null,null,s,n,i).renderAsync(t._scenegraph.root)}async function Aq(t,e){if(t!==oy.Canvas&&t!==oy.SVG&&t!==oy.PNG){(0,p.z3)("Unrecognized image type: "+t)}const n=await wq(this,t,e);return t===oy.SVG?kq(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")}function kq(t,e){const n=new Blob([t],{type:e});return window.URL.createObjectURL(n)}async function Eq(t,e){const n=await wq(this,oy.Canvas,t,e);return n.canvas()}async function Mq(t){const e=await wq(this,oy.SVG,t);return e.svg()}function Dq(t,e,n){return bP(t,$i,RL,n).parse(e)}function Cq(t){var e=this._runtime.scales;if(!(0,p.mQ)(e,t)){(0,p.z3)("Unrecognized scale or projection: "+t)}return e[t].value}var Fq="width",Sq="height",Bq="padding",zq={skip:true};function $q(t,e){var n=t.autosize(),i=t.padding();return e-(n&&n.contains===Bq?i.left+i.right:0)}function Rq(t,e){var n=t.autosize(),i=t.padding();return e-(n&&n.contains===Bq?i.top+i.bottom:0)}function Oq(t){var e=t._signals,n=e[Fq],i=e[Sq],r=e[Bq];function s(){t._autosize=t._resize=1}t._resizeWidth=t.add(null,(e=>{t._width=e.size;t._viewWidth=$q(t,e.size);s()}),{size:n});t._resizeHeight=t.add(null,(e=>{t._height=e.size;t._viewHeight=Rq(t,e.size);s()}),{size:i});const a=t.add(null,s,{pad:r});t._resizeWidth.rank=n.rank+1;t._resizeHeight.rank=i.rank+1;a.rank=r.rank+1}function Tq(t,e,n,i,r,s){this.runAfter((a=>{let o=0;a._autosize=0;if(a.width()!==n){o=1;a.signal(Fq,n,zq);a._resizeWidth.skip(true)}if(a.height()!==i){o=1;a.signal(Sq,i,zq);a._resizeHeight.skip(true)}if(a._viewWidth!==t){a._resize=1;a._viewWidth=t}if(a._viewHeight!==e){a._resize=1;a._viewHeight=e}if(a._origin[0]!==r[0]||a._origin[1]!==r[1]){a._resize=1;a._origin=r}if(o)a.run("enter");if(s)a.runAfter((t=>t.resize()))}),false,1)}function Nq(t){return this._runtime.getState(t||{data:Lq,signals:Pq,recurse:true})}function Lq(t,e){return e.modified&&(0,p.cy)(e.input.value)&&!t.startsWith("_:vega:_")}function Pq(t,e){return!(t==="parent"||e instanceof $i.proxy)}function qq(t){this.runAsync(null,(e=>{e._trigger=false;e._runtime.setState(t)}),(t=>{t._trigger=true}));return this}function Iq(t,e){function n(e){t({timestamp:Date.now(),elapsed:e})}this._timers.push(wP(n,e))}function Uq(t,e,n,i){const r=t.element();if(r)r.setAttribute("title",jq(i))}function jq(t){return t==null?"":(0,p.cy)(t)?Yq(t):(0,p.Gv)(t)&&!(0,p.$P)(t)?Gq(t):t+""}function Gq(t){return Object.keys(t).map((e=>{const n=t[e];return e+": "+((0,p.cy)(n)?Yq(n):Wq(n))})).join("\n")}function Yq(t){return"["+t.map(Wq).join(", ")+"]"}function Wq(t){return(0,p.cy)(t)?"[…]":(0,p.Gv)(t)&&!(0,p.$P)(t)?"{…}":t}function Xq(){if(this.renderer()==="canvas"&&this._renderer._canvas){let t=null;const e=()=>{if(t!=null){t()}const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",e);t=()=>{n.removeEventListener("change",e)};this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1;this._redraw=true;this._resize=1;this.resize().runAsync()};e()}}function Hq(t,e){const n=this;e=e||{};Si.call(n);if(e.loader)n.loader(e.loader);if(e.logger)n.logger(e.logger);if(e.logLevel!=null)n.logLevel(e.logLevel);if(e.locale||t.locale){const i=(0,p.X$)({},t.locale,e.locale);n.locale(Ce(i.number,i.time))}n._el=null;n._elBind=null;n._renderType=e.renderer||oy.Canvas;n._scenegraph=new rm;const i=n._scenegraph.root;n._renderer=null;n._tooltip=e.tooltip||Uq,n._redraw=true;n._handler=(new jm).scene(i);n._globalCursor=false;n._preventDefault=false;n._timers=[];n._eventListeners=[];n._resizeListeners=[];n._eventConfig=GP(t.eventConfig);n.globalCursor(n._eventConfig.globalCursor);const r=Dq(n,t,e.expr);n._runtime=r;n._signals=r.signals;n._bind=(t.bindings||[]).map((t=>({state:null,param:(0,p.X$)({},t)})));if(r.root)r.root.set(i);i.source=r.data.root.input;n.pulse(r.data.root.input,n.changeset().insert(i.items));n._width=n.width();n._height=n.height();n._viewWidth=$q(n,n._width);n._viewHeight=Rq(n,n._height);n._origin=[0,0];n._resize=0;n._autosize=1;Oq(n);EP(n);DP(n);n.description(t.description);if(e.hover)n.hover();if(e.container)n.initialize(e.container,e.bind);if(e.watchPixelRatio)n._watchPixelRatio()}function Vq(t,e){return(0,p.mQ)(t._signals,e)?t._signals[e]:(0,p.z3)("Unrecognized signal name: "+(0,p.r$)(e))}function Qq(t,e){const n=(t._targets||[]).filter((t=>t._update&&t._update.handler===e));return n.length?n[0]:null}function Kq(t,e,n,i){let r=Qq(n,i);if(!r){r=mq(t,(()=>i(e,n.value)));r.handler=i;t.on(n,null,r)}return t}function Zq(t,e,n){const i=Qq(e,n);if(i)e._targets.remove(i);return t}(0,p.B)(Hq,Si,{async evaluate(t,e,n){await Si.prototype.evaluate.call(this,t,e);if(this._redraw||this._resize){try{if(this._renderer){if(this._resize){this._resize=0;NP(this)}await this._renderer.renderAsync(this._scenegraph.root)}this._redraw=false}catch(i){this.error(i)}}if(n)hn(this,n);return this},dirty(t){this._redraw=true;this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const e=t!=null?t+"":null;if(e!==this._desc)kP(this._el,this._desc=e);return this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(t,e,n){const i=Vq(this,t);return arguments.length===1?i.value:this.update(i,e,n)},width(t){return arguments.length?this.signal("width",t):this.signal("width")},height(t){return arguments.length?this.signal("height",t):this.signal("height")},padding(t){return arguments.length?this.signal("padding",_q(t)):_q(this.signal("padding"))},autosize(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},background(t){return arguments.length?this.signal("background",t):this.signal("background")},renderer(t){if(!arguments.length)return this._renderType;if(!ly(t))(0,p.z3)("Unrecognized renderer type: "+t);if(t!==this._renderType){this._renderType=t;this._resetRenderer()}return this},tooltip(t){if(!arguments.length)return this._tooltip;if(t!==this._tooltip){this._tooltip=t;this._resetRenderer()}return this},loader(t){if(!arguments.length)return this._loader;if(t!==this._loader){Si.prototype.loader.call(this,t);this._resetRenderer()}return this},resize(){this._autosize=1;return this.touch(Vq(this,"autosize"))},_resetRenderer(){if(this._renderer){this._renderer=null;this.initialize(this._el,this._elBind)}},_resizeView:Tq,addEventListener(t,e,n){let i=e;if(!(n&&n.trap===false)){i=mq(this,e);i.raw=e}this._handler.on(t,i);return this},removeEventListener(t,e){var n=this._handler.handlers(t),i=n.length,r,s;while(--i>=0){s=n[i].type;r=n[i].handler;if(t===s&&(e===r||e===r.raw)){this._handler.off(s,r);break}}return this},addResizeListener(t){const e=this._resizeListeners;if(!e.includes(t)){e.push(t)}return this},removeResizeListener(t){var e=this._resizeListeners,n=e.indexOf(t);if(n>=0){e.splice(n,1)}return this},addSignalListener(t,e){return Kq(this,t,Vq(this,t),e)},removeSignalListener(t,e){return Zq(this,Vq(this,t),e)},addDataListener(t,e){return Kq(this,t,FP(this,t).values,e)},removeDataListener(t,e){return Zq(this,FP(this,t).values,e)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const e=CP(this,null);this._globalCursor=!!t;if(e)CP(this,e)}return this}else{return this._globalCursor}},preventDefault(t){if(arguments.length){this._preventDefault=t;return this}else{return this._preventDefault}},timer:Iq,events:HP,finalize:JP,hover:ZP,data:SP,change:BP,insert:zP,remove:$P,scale:Cq,initialize:yq,toImageURL:Aq,toCanvas:Eq,toSVG:Mq,getState:Nq,setState:qq,_watchPixelRatio:Xq});var Jq=n(45948);function tI(t){return(0,p.Gv)(t)?t:{type:t||"pad"}}const eI=t=>+t||0;const nI=t=>({top:t,bottom:t,left:t,right:t});function iI(t){return!(0,p.Gv)(t)?nI(eI(t)):t.signal?t:{top:eI(t.top),bottom:eI(t.bottom),left:eI(t.left),right:eI(t.right)}}const rI=t=>(0,p.Gv)(t)&&!(0,p.cy)(t)?(0,p.X$)({},t):{value:t};function sI(t,e,n,i){if(n!=null){const r=(0,p.Gv)(n)&&!(0,p.cy)(n)||(0,p.cy)(n)&&n.length&&(0,p.Gv)(n[0]);if(r){t.update[e]=n}else{t[i||"enter"][e]={value:n}}return 1}else{return 0}}function aI(t,e,n){for(const i in e){sI(t,i,e[i])}for(const i in n){sI(t,i,n[i],"update")}}function oI(t,e,n){for(const i in e){if(n&&(0,p.mQ)(n,i))continue;t[i]=(0,p.X$)(t[i]||{},e[i])}return t}function uI(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}const lI="mark";const cI="frame";const fI="scope";const dI="axis";const hI="axis-domain";const pI="axis-grid";const mI="axis-label";const gI="axis-tick";const yI="axis-title";const vI="legend";const bI="legend-band";const xI="legend-entry";const _I="legend-gradient";const wI="legend-label";const AI="legend-symbol";const kI="legend-title";const EI="title";const MI="title-text";const DI="title-subtitle";function CI(t,e,n,i,r){const s={},a={};let o,u,l,c;u="lineBreak";if(e==="text"&&r[u]!=null&&!uI(u,t)){FI(s,u,r[u])}if(n=="legend"||String(n).startsWith("axis")){n=null}c=n===cI?r.group:n===lI?(0,p.X$)({},r.mark,r[e]):null;for(u in c){l=uI(u,t)||(u==="fill"||u==="stroke")&&(uI("fill",t)||uI("stroke",t));if(!l)FI(s,u,c[u])}(0,p.YO)(i).forEach((e=>{const n=r.style&&r.style[e];for(const i in n){if(!uI(i,t)){FI(s,i,n[i])}}}));t=(0,p.X$)({},t);for(u in s){c=s[u];if(c.signal){(o=o||{})[u]=c}else{a[u]=c}}t.enter=(0,p.X$)(a,t.enter);if(o)t.update=(0,p.X$)(o,t.update);return t}function FI(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}const SI=t=>(0,p.Kg)(t)?(0,p.r$)(t):t.signal?`(${t.signal})`:TI(t);function BI(t){if(t.gradient!=null){return RI(t)}let e=t.signal?`(${t.signal})`:t.color?$I(t.color):t.field!=null?TI(t.field):t.value!==undefined?(0,p.r$)(t.value):undefined;if(t.scale!=null){e=LI(t,e)}if(e===undefined){e=null}if(t.exponent!=null){e=`pow(${e},${OI(t.exponent)})`}if(t.mult!=null){e+=`*${OI(t.mult)}`}if(t.offset!=null){e+=`+${OI(t.offset)}`}if(t.round){e=`round(${e})`}return e}const zI=(t,e,n,i)=>`(${t}(${[e,n,i].map(BI).join(",")})+'')`;function $I(t){return t.c?zI("hcl",t.h,t.c,t.l):t.h||t.s?zI("hsl",t.h,t.s,t.l):t.l||t.a?zI("lab",t.l,t.a,t.b):t.r||t.g||t.b?zI("rgb",t.r,t.g,t.b):null}function RI(t){const e=[t.start,t.stop,t.count].map((t=>t==null?null:(0,p.r$)(t)));while(e.length&&(0,p.se)(e)==null)e.pop();e.unshift(SI(t.gradient));return`gradient(${e.join(",")})`}function OI(t){return(0,p.Gv)(t)?"("+BI(t)+")":t}function TI(t){return NI((0,p.Gv)(t)?t:{datum:t})}function NI(t){let e,n,i;if(t.signal){e="datum";i=t.signal}else if(t.group||t.parent){n=Math.max(1,t.level||1);e="item";while(n-- >0){e+=".mark.group"}if(t.parent){i=t.parent;e+=".datum"}else{i=t.group}}else if(t.datum){e="datum";i=t.datum}else{(0,p.z3)("Invalid field reference: "+(0,p.r$)(t))}if(!t.signal){i=(0,p.Kg)(i)?(0,p.iv)(i).map(p.r$).join("]["):NI(i)}return e+"["+i+"]"}function LI(t,e){const n=SI(t.scale);if(t.range!=null){e=`lerp(_range(${n}), ${+t.range})`}else{if(e!==undefined)e=`_scale(${n}, ${e})`;if(t.band){e=(e?e+"+":"")+`_bandwidth(${n})`+(+t.band===1?"":"*"+OI(t.band));if(t.extra){e=`(datum.extra ? _scale(${n}, datum.extra.value) : ${e})`}}if(e==null)e="0"}return e}function PI(t){let e="";t.forEach((t=>{const n=BI(t);e+=t.test?`(${t.test})?${n}:`:n}));if((0,p.se)(e)===":"){e+="null"}return e}function qI(t,e,n,i,r,s){const a={};s=s||{};s.encoders={$encode:a};t=CI(t,e,n,i,r.config);for(const o in t){a[o]=II(t[o],e,s,r)}return s}function II(t,e,n,i){const r={},s={};for(const a in t){if(t[a]!=null){r[a]=jI(UI(t[a]),i,n,s)}}return{$expr:{marktype:e,channels:r},$fields:Object.keys(s),$output:Object.keys(t)}}function UI(t){return(0,p.cy)(t)?PI(t):BI(t)}function jI(t,e,n,i){const r=jL(t,e);r.$fields.forEach((t=>i[t]=1));(0,p.X$)(n,r.$params);return r.$expr}const GI="outer",YI=["value","update","init","react","bind"];function WI(t,e){(0,p.z3)(t+' for "outer" push: '+(0,p.r$)(e))}function XI(t,e){const n=t.name;if(t.push===GI){if(!e.signals[n])WI("No prior signal definition",n);YI.forEach((e=>{if(t[e]!==undefined)WI("Invalid property ",e)}))}else{const i=e.addSignal(n,t.value);if(t.react===false)i.react=false;if(t.bind)e.addBinding(n,t.bind)}}function HI(t,e,n,i){this.id=-1;this.type=t;this.value=e;this.params=n;if(i)this.parent=i}function VI(t,e,n,i){return new HI(t,e,n,i)}function QI(t,e){return VI("operator",t,e)}function KI(t){const e={$ref:t.id};if(t.id<0)(t.refs=t.refs||[]).push(e);return e}function ZI(t,e){return e?{$field:t,$name:e}:{$field:t}}const JI=ZI("key");function tU(t,e){return{$compare:t,$order:e}}function eU(t,e){const n={$key:t};if(e)n.$flat=true;return n}const nU="ascending";const iU="descending";function rU(t){return!(0,p.Gv)(t)?"":(t.order===iU?"-":"+")+sU(t.op,t.field)}function sU(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}const aU="scope";const oU="view";function uU(t){return t&&t.signal}function lU(t){return t&&t.expr}function cU(t){if(uU(t))return true;if((0,p.Gv)(t))for(const e in t){if(cU(t[e]))return true}return false}function fU(t,e){return t!=null?t:e}function dU(t){return t&&t.signal||t}const hU="timer";function pU(t,e){const n=t.merge?gU:t.stream?yU:t.type?vU:(0,p.z3)("Invalid stream specification: "+(0,p.r$)(t));return n(t,e)}function mU(t){return t===aU?oU:t||oU}function gU(t,e){const n=t.merge.map((t=>pU(t,e))),i=bU({merge:n},t,e);return e.addStream(i).id}function yU(t,e){const n=pU(t.stream,e),i=bU({stream:n},t,e);return e.addStream(i).id}function vU(t,e){let n;if(t.type===hU){n=e.event(hU,t.throttle);t={between:t.between,filter:t.filter}}else{n=e.event(mU(t.source),t.type)}const i=bU({stream:n},t,e);return Object.keys(i).length===1?n:e.addStream(i).id}function bU(t,e,n){let i=e.between;if(i){if(i.length!==2){(0,p.z3)('Stream "between" parameter must have 2 entries: '+(0,p.r$)(e))}t.between=[pU(i[0],n),pU(i[1],n)]}i=e.filter?[].concat(e.filter):[];if(e.marktype||e.markname||e.markrole){i.push(xU(e.marktype,e.markname,e.markrole))}if(e.source===aU){i.push("inScope(event.item)")}if(i.length){t.filter=jL("("+i.join(")&&(")+")",n).$expr}if((i=e.throttle)!=null){t.throttle=+i}if((i=e.debounce)!=null){t.debounce=+i}if(e.consume){t.consume=true}return t}function xU(t,e,n){const i="event.item";return i+(t&&t!=="*"?"&&"+i+".mark.marktype==='"+t+"'":"")+(n?"&&"+i+".mark.role==='"+n+"'":"")+(e?"&&"+i+".mark.name==='"+e+"'":"")}const _U={code:"_.$value",ast:{type:"Identifier",value:"value"}};function wU(t,e,n){const i=t.encode,r={target:n};let s=t.events,a=t.update,o=[];if(!s){(0,p.z3)("Signal update missing events specification.")}if((0,p.Kg)(s)){s=(0,Jq.P)(s,e.isSubscope()?aU:oU)}s=(0,p.YO)(s).filter((t=>t.signal||t.scale?(o.push(t),0):1));if(o.length>1){o=[kU(o)]}if(s.length){o.push(s.length>1?{merge:s}:s[0])}if(i!=null){if(a)(0,p.z3)("Signal encode and update are mutually exclusive.");a="encode(item(),"+(0,p.r$)(i)+")"}r.update=(0,p.Kg)(a)?jL(a,e):a.expr!=null?jL(a.expr,e):a.value!=null?a.value:a.signal!=null?{$expr:_U,$params:{$value:e.signalRef(a.signal)}}:(0,p.z3)("Invalid signal update specification.");if(t.force){r.options={force:true}}o.forEach((t=>e.addUpdate((0,p.X$)(AU(t,e),r))))}function AU(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):pU(t,e)}}function kU(t){return{signal:"["+t.map((t=>t.scale?'scale("'+t.scale+'")':t.signal))+"]"}}function EU(t,e){const n=e.getSignal(t.name);let i=t.update;if(t.init){if(i){(0,p.z3)("Signals can not include both init and update expressions.")}else{i=t.init;n.initonly=true}}if(i){i=jL(i,e);n.update=i.$expr;n.params=i.$params}if(t.on){t.on.forEach((t=>wU(t,e,n.id)))}}const MU=t=>(e,n,i)=>VI(t,n,e||undefined,i);const DU=MU("aggregate");const CU=MU("axisticks");const FU=MU("bound");const SU=MU("collect");const BU=MU("compare");const zU=MU("datajoin");const $U=MU("encode");const RU=MU("expression");const OU=MU("facet");const TU=MU("field");const NU=MU("key");const LU=MU("legendentries");const PU=MU("load");const qU=MU("mark");const IU=MU("multiextent");const UU=MU("multivalues");const jU=MU("overlap");const GU=MU("params");const YU=MU("prefacet");const WU=MU("projection");const XU=MU("proxy");const HU=MU("relay");const VU=MU("render");const QU=MU("scale");const KU=MU("sieve");const ZU=MU("sortitems");const JU=MU("viewlayout");const tj=MU("values");let ej=0;const nj={min:"min",max:"max",count:"sum"};function ij(t,e){const n=t.type||"linear";if(!Wl(n)){(0,p.z3)("Unrecognized scale type: "+(0,p.r$)(n))}e.addScale(t.name,{type:n,domain:undefined})}function rj(t,e){const n=e.getScale(t.name).params;let i;n.domain=uj(t.domain,t,e);if(t.range!=null){n.range=xj(t,e,n)}if(t.interpolate!=null){bj(t.interpolate,n)}if(t.nice!=null){n.nice=vj(t.nice,e)}if(t.bins!=null){n.bins=yj(t.bins,e)}for(i in t){if((0,p.mQ)(n,i)||i==="name")continue;n[i]=sj(t[i],e)}}function sj(t,e){return!(0,p.Gv)(t)?t:t.signal?e.signalRef(t.signal):(0,p.z3)("Unsupported object: "+(0,p.r$)(t))}function aj(t,e){return t.signal?e.signalRef(t.signal):t.map((t=>sj(t,e)))}function oj(t){(0,p.z3)("Can not find data set: "+(0,p.r$)(t))}function uj(t,e,n){if(!t){if(e.domainMin!=null||e.domainMax!=null){(0,p.z3)("No scale domain defined for domainMin/domainMax to override.")}return}return t.signal?n.signalRef(t.signal):((0,p.cy)(t)?lj:t.fields?fj:cj)(t,e,n)}function lj(t,e,n){return t.map((t=>sj(t,n)))}function cj(t,e,n){const i=n.getData(t.data);if(!i)oj(t.data);return Vl(e.type)?i.valuesRef(n,t.field,pj(t.sort,false)):tc(e.type)?i.domainRef(n,t.field):i.extentRef(n,t.field)}function fj(t,e,n){const i=t.data,r=t.fields.reduce(((t,e)=>{e=(0,p.Kg)(e)?{data:i,field:e}:(0,p.cy)(e)||e.signal?dj(e,n):e;t.push(e);return t}),[]);return(Vl(e.type)?hj:tc(e.type)?mj:gj)(t,n,r)}function dj(t,e){const n="_:vega:_"+ej++,i=SU({});if((0,p.cy)(t)){i.value={$ingest:t}}else if(t.signal){const r="setdata("+(0,p.r$)(n)+","+t.signal+")";i.params.input=e.signalRef(r)}e.addDataPipeline(n,[i,KU({})]);return{data:n,field:"data"}}function hj(t,e,n){const i=pj(t.sort,true);let r,s;const a=n.map((t=>{const n=e.getData(t.data);if(!n)oj(t.data);return n.countsRef(e,t.field,i)}));const o={groupby:JI,pulse:a};if(i){r=i.op||"count";s=i.field?sU(r,i.field):"count";o.ops=[nj[r]];o.fields=[e.fieldRef(s)];o.as=[s]}r=e.add(DU(o));const u=e.add(SU({pulse:KI(r)}));s=e.add(tj({field:JI,sort:e.sortRef(i),pulse:KI(u)}));return KI(s)}function pj(t,e){if(t){if(!t.field&&!t.op){if((0,p.Gv)(t))t.field="key";else t={field:"key"}}else if(!t.field&&t.op!=="count"){(0,p.z3)("No field provided for sort aggregate op: "+t.op)}else if(e&&t.field){if(t.op&&!nj[t.op]){(0,p.z3)("Multiple domain scales can not be sorted using "+t.op)}}}return t}function mj(t,e,n){const i=n.map((t=>{const n=e.getData(t.data);if(!n)oj(t.data);return n.domainRef(e,t.field)}));return KI(e.add(UU({values:i})))}function gj(t,e,n){const i=n.map((t=>{const n=e.getData(t.data);if(!n)oj(t.data);return n.extentRef(e,t.field)}));return KI(e.add(IU({extents:i})))}function yj(t,e){return t.signal||(0,p.cy)(t)?aj(t,e):e.objectProperty(t)}function vj(t,e){return t.signal?e.signalRef(t.signal):(0,p.Gv)(t)?{interval:sj(t.interval),step:sj(t.step)}:sj(t)}function bj(t,e){e.interpolate=sj(t.type||t);if(t.gamma!=null){e.interpolateGamma=sj(t.gamma)}}function xj(t,e,n){const i=e.config.range;let r=t.range;if(r.signal){return e.signalRef(r.signal)}else if((0,p.Kg)(r)){if(i&&(0,p.mQ)(i,r)){t=(0,p.X$)({},t,{range:i[r]});return xj(t,e,n)}else if(r==="width"){r=[0,{signal:"width"}]}else if(r==="height"){r=Vl(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]}else{(0,p.z3)("Unrecognized scale range value: "+(0,p.r$)(r))}}else if(r.scheme){n.scheme=(0,p.cy)(r.scheme)?aj(r.scheme,e):sj(r.scheme,e);if(r.extent)n.schemeExtent=aj(r.extent,e);if(r.count)n.schemeCount=sj(r.count,e);return}else if(r.step){n.rangeStep=sj(r.step,e);return}else if(Vl(t.type)&&!(0,p.cy)(r)){return uj(r,t,e)}else if(!(0,p.cy)(r)){(0,p.z3)("Unsupported range type: "+(0,p.r$)(r))}return r.map((t=>((0,p.cy)(t)?aj:sj)(t,e)))}function _j(t,e){const n=e.config.projection||{},i={};for(const r in t){if(r==="name")continue;i[r]=wj(t[r],r,e)}for(const r in n){if(i[r]==null){i[r]=wj(n[r],r,e)}}e.addProjection(t.name,i)}function wj(t,e,n){return(0,p.cy)(t)?t.map((t=>wj(t,e,n))):!(0,p.Gv)(t)?t:t.signal?n.signalRef(t.signal):e==="fit"?t:(0,p.z3)("Unsupported parameter object: "+(0,p.r$)(t))}const Aj="top";const kj="left";const Ej="right";const Mj="bottom";const Dj="center";const Cj="vertical";const Fj="start";const Sj="middle";const Bj="end";const zj="index";const $j="label";const Rj="offset";const Oj="perc";const Tj="perc2";const Nj="value";const Lj="guide-label";const Pj="guide-title";const qj="group-title";const Ij="group-subtitle";const Uj="symbol";const jj="gradient";const Gj="discrete";const Yj="size";const Wj="shape";const Xj="fill";const Hj="stroke";const Vj="strokeWidth";const Qj="strokeDash";const Kj="opacity";const Zj=[Yj,Wj,Xj,Hj,Vj,Qj,Kj];const Jj={name:1,style:1,interactive:1};const tG={value:0};const eG={value:1};const nG="group";const iG="rect";const rG="rule";const sG="symbol";const aG="text";function oG(t){t.type=nG;t.interactive=t.interactive||false;return t}function uG(t,e){const n=(n,i)=>fU(t[n],fU(e[n],i));n.isVertical=n=>Cj===fU(t.direction,e.direction||(n?e.symbolDirection:e.gradientDirection));n.gradientLength=()=>fU(t.gradientLength,e.gradientLength||e.gradientWidth);n.gradientThickness=()=>fU(t.gradientThickness,e.gradientThickness||e.gradientHeight);n.entryColumns=()=>fU(t.columns,fU(e.columns,+n.isVertical(true)));return n}function lG(t,e){const n=e&&(e.update&&e.update[t]||e.enter&&e.enter[t]);return n&&n.signal?n:n?n.value:null}function cG(t,e,n){const i=e.config.style[n];return i&&i[t]}function fG(t,e,n){return`item.anchor === '${Fj}' ? ${t} : item.anchor === '${Bj}' ? ${e} : ${n}`}const dG=fG((0,p.r$)(kj),(0,p.r$)(Ej),(0,p.r$)(Dj));function hG(t){const e=t("tickBand");let n=t("tickOffset"),i,r;if(!e){i=t("bandPosition");r=t("tickExtra")}else if(e.signal){i={signal:`(${e.signal}) === 'extent' ? 1 : 0.5`};r={signal:`(${e.signal}) === 'extent'`};if(!(0,p.Gv)(n)){n={signal:`(${e.signal}) === 'extent' ? 0 : ${n}`}}}else if(e==="extent"){i=1;r=true;n=0}else{i=.5;r=false}return{extra:r,band:i,offset:n}}function pG(t,e){return!e?t:!t?e:!(0,p.Gv)(t)?{value:t,offset:e}:Object.assign({},t,{offset:pG(t.offset,e)})}function mG(t,e){if(e){t.name=e.name;t.style=e.style||t.style;t.interactive=!!e.interactive;t.encode=oI(t.encode,e,Jj)}else{t.interactive=false}return t}function gG(t,e,n,i){const r=uG(t,n),s=r.isVertical(),a=r.gradientThickness(),o=r.gradientLength();let u,l,c,f,d;if(s){l=[0,1];c=[0,0];f=a;d=o}else{l=[0,0];c=[1,0];f=o;d=a}const h={enter:u={opacity:tG,x:tG,y:tG,width:rI(f),height:rI(d)},update:(0,p.X$)({},u,{opacity:eG,fill:{gradient:e,start:l,stop:c}}),exit:{opacity:tG}};aI(h,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")});return mG({type:iG,role:_I,encode:h},i)}function yG(t,e,n,i,r){const s=uG(t,n),a=s.isVertical(),o=s.gradientThickness(),u=s.gradientLength();let l,c,f,d,h="";a?(l="y",f="y2",c="x",d="width",h="1-"):(l="x",f="x2",c="y",d="height");const m={opacity:tG,fill:{scale:e,field:Nj}};m[l]={signal:h+"datum."+Oj,mult:u};m[c]=tG;m[f]={signal:h+"datum."+Tj,mult:u};m[d]=rI(o);const g={enter:m,update:(0,p.X$)({},m,{opacity:eG}),exit:{opacity:tG}};aI(g,{stroke:s("gradientStrokeColor"),strokeWidth:s("gradientStrokeWidth")},{opacity:s("gradientOpacity")});return mG({type:iG,role:bI,key:Nj,from:r,encode:g},i)}const vG=`datum.${Oj}<=0?"${kj}":datum.${Oj}>=1?"${Ej}":"${Dj}"`,bG=`datum.${Oj}<=0?"${Mj}":datum.${Oj}>=1?"${Aj}":"${Sj}"`;function xG(t,e,n,i){const r=uG(t,e),s=r.isVertical(),a=rI(r.gradientThickness()),o=r.gradientLength();let u=r("labelOverlap"),l,c,f,d,h="";const p={enter:l={opacity:tG},update:c={opacity:eG,text:{field:$j}},exit:{opacity:tG}};aI(p,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:fU(t.labelLimit,e.gradientLabelLimit)});if(s){l.align={value:"left"};l.baseline=c.baseline={signal:bG};f="y";d="x";h="1-"}else{l.align=c.align={signal:vG};l.baseline={value:"top"};f="x";d="y"}l[f]=c[f]={signal:h+"datum."+Oj,mult:o};l[d]=c[d]=a;a.offset=fU(t.labelOffset,e.gradientLabelOffset)||0;u=u?{separation:r("labelSeparation"),method:u,order:"datum."+zj}:undefined;return mG({type:aG,role:wI,style:Lj,key:Nj,from:i,encode:p,overlap:u},n)}function _G(t,e,n,i,r){const s=uG(t,e),a=n.entries,o=!!(a&&a.interactive),u=a?a.name:undefined,l=s("clipHeight"),c=s("symbolOffset"),f={data:"value"},d=`(${r}) ? datum.${Rj} : datum.${Yj}`,h=l?rI(l):{field:Yj},p=`datum.${zj}`,m=`max(1, ${r})`;let g,y,v,b,x;h.mult=.5;g={enter:y={opacity:tG,x:{signal:d,mult:.5,offset:c},y:h},update:v={opacity:eG,x:y.x,y:y.y},exit:{opacity:tG}};let _=null,w=null;if(!t.fill){_=e.symbolBaseFillColor;w=e.symbolBaseStrokeColor}aI(g,{fill:s("symbolFillColor",_),shape:s("symbolType"),size:s("symbolSize"),stroke:s("symbolStrokeColor",w),strokeDash:s("symbolDash"),strokeDashOffset:s("symbolDashOffset"),strokeWidth:s("symbolStrokeWidth")},{opacity:s("symbolOpacity")});Zj.forEach((e=>{if(t[e]){v[e]=y[e]={scale:t[e],field:Nj}}}));const A=mG({type:sG,role:AI,key:Nj,from:f,clip:l?true:undefined,encode:g},n.symbols);const k=rI(c);k.offset=s("labelOffset");g={enter:y={opacity:tG,x:{signal:d,offset:k},y:h},update:v={opacity:eG,text:{field:$j},x:y.x,y:y.y},exit:{opacity:tG}};aI(g,{align:s("labelAlign"),baseline:s("labelBaseline"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontStyle:s("labelFontStyle"),fontWeight:s("labelFontWeight"),limit:s("labelLimit")});const E=mG({type:aG,role:wI,style:Lj,key:Nj,from:f,encode:g},n.labels);g={enter:{noBound:{value:!l},width:tG,height:l?rI(l):tG,opacity:tG},exit:{opacity:tG},update:v={opacity:eG,row:{signal:null},column:{signal:null}}};if(s.isVertical(true)){b=`ceil(item.mark.items.length / ${m})`;v.row.signal=`${p}%${b}`;v.column.signal=`floor(${p} / ${b})`;x={field:["row",p]}}else{v.row.signal=`floor(${p} / ${m})`;v.column.signal=`${p} % ${m}`;x={field:p}}v.column.signal=`(${r})?${v.column.signal}:${p}`;i={facet:{data:i,name:"value",groupby:zj}};return oG({role:fI,from:i,encode:oI(g,a,Jj),marks:[A,E],name:u,interactive:o,sort:x})}function wG(t,e){const n=uG(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:true,column:false},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const AG='item.orient === "left"',kG='item.orient === "right"',EG=`(${AG} || ${kG})`,MG=`datum.vgrad && ${EG}`,DG=fG('"top"','"bottom"','"middle"'),CG=fG('"right"','"left"','"center"'),FG=`datum.vgrad && ${kG} ? (${CG}) : (${EG} && !(datum.vgrad && ${AG})) ? "left" : ${dG}`,SG=`item._anchor || (${EG} ? "middle" : "start")`,BG=`${MG} ? (${AG} ? -90 : 90) : 0`,zG=`${EG} ? (datum.vgrad ? (${kG} ? "bottom" : "top") : ${DG}) : "top"`;function $G(t,e,n,i){const r=uG(t,e);const s={enter:{opacity:tG},update:{opacity:eG,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:tG}};aI(s,{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:SG},angle:{signal:BG},align:{signal:FG},baseline:{signal:zG},text:t.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")});return mG({type:aG,role:kI,style:Pj,from:i,encode:s},n)}function RG(t,e){let n;if((0,p.Gv)(t)){if(t.signal){n=t.signal}else if(t.path){n="pathShape("+OG(t.path)+")"}else if(t.sphere){n="geoShape("+OG(t.sphere)+', {type: "Sphere"})'}}return n?e.signalRef(n):!!t}function OG(t){return(0,p.Gv)(t)&&t.signal?t.signal:(0,p.r$)(t)}function TG(t){const e=t.role||"";return e.startsWith("axis")||e.startsWith("legend")||e.startsWith("title")?e:t.type===nG?fI:e||lI}function NG(t){return{marktype:t.type,name:t.name||undefined,role:t.role||TG(t),zindex:+t.zindex||undefined,aria:t.aria,description:t.description}}function LG(t,e){return t&&t.signal?e.signalRef(t.signal):t===false?false:true}function PG(t,e){const n=Ri(t.type);if(!n)(0,p.z3)("Unrecognized transform type: "+(0,p.r$)(t.type));const i=VI(n.type.toLowerCase(),null,qG(n,t,e));if(t.signal)e.addSignal(t.signal,e.proxy(i));i.metadata=n.metadata||{};return i}function qG(t,e,n){const i={},r=t.params.length;for(let s=0;sUG(t,e,n))):UG(t,r,n)}function UG(t,e,n){const i=t.type;if(uU(e)){return VG(i)?(0,p.z3)("Expression references can not be signals."):QG(i)?n.fieldRef(e):KG(i)?n.compareRef(e):n.signalRef(e.signal)}else{const r=t.expr||QG(i);return r&&WG(e)?n.exprRef(e.expr,e.as):r&&XG(e)?ZI(e.field,e.as):VG(i)?jL(e,n):HG(i)?KI(n.getData(e).values):QG(i)?ZI(e):KG(i)?n.compareRef(e):e}}function jG(t,e,n){if(!(0,p.Kg)(e.from)){(0,p.z3)('Lookup "from" parameter must be a string literal.')}return n.getData(e.from).lookupRef(n,e.key)}function GG(t,e,n){const i=e[t.name];if(t.array){if(!(0,p.cy)(i)){(0,p.z3)("Expected an array of sub-parameters. Instead: "+(0,p.r$)(i))}return i.map((e=>YG(t,e,n)))}else{return YG(t,i,n)}}function YG(t,e,n){const i=t.params.length;let r;for(let a=0;at&&t.expr;const XG=t=>t&&t.field;const HG=t=>t==="data";const VG=t=>t==="expr";const QG=t=>t==="field";const KG=t=>t==="compare";function ZG(t,e,n){let i,r,s,a,o;if(!t){a=KI(n.add(SU(null,[{}])))}else if(i=t.facet){if(!e)(0,p.z3)("Only group marks can be faceted.");if(i.field!=null){a=o=JG(i,n)}else{if(!t.data){s=PG((0,p.X$)({type:"aggregate",groupby:(0,p.YO)(i.groupby)},i.aggregate),n);s.params.key=n.keyRef(i.groupby);s.params.pulse=JG(i,n);a=o=KI(n.add(s))}else{o=KI(n.getData(t.data).aggregate)}r=n.keyRef(i.groupby,true)}}if(!a){a=JG(t,n)}return{key:r,pulse:a,parent:o}}function JG(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:KI(e.getData(t.data).output)}function tY(t,e,n,i,r){this.scope=t;this.input=e;this.output=n;this.values=i;this.aggregate=r;this.index={}}tY.fromEntries=function(t,e){const n=e.length,i=e[n-1],r=e[n-2];let s=e[0],a=null,o=1;if(s&&s.type==="load"){s=e[1]}t.add(e[0]);for(;ot==null?"null":t)).join(",")+"),0)";const c=jL(l,e);u.update=c.$expr;u.params=c.$params}function oY(t,e){const n=TG(t),i=t.type===nG,r=t.from&&t.from.facet,s=t.overlap;let a=t.layout||n===fI||n===cI,o,u,l,c,f,d,h;const m=n===lI||a||r;const g=ZG(t.from,i,e);u=e.add(zU({key:g.key||(t.key?ZI(t.key):undefined),pulse:g.pulse,clean:!i}));const y=KI(u);u=l=e.add(SU({pulse:y}));u=e.add(qU({markdef:NG(t),interactive:LG(t.interactive,e),clip:RG(t.clip,e),context:{$context:true},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:KI(u)}));const v=KI(u);u=c=e.add($U(qI(t.encode,t.type,n,t.style,e,{mod:false,pulse:v})));u.params.parent=e.encode();if(t.transform){t.transform.forEach((t=>{const n=PG(t,e),i=n.metadata;if(i.generates||i.changes){(0,p.z3)("Mark transforms should not generate new data.")}if(!i.nomod)c.params.mod=true;n.params.pulse=KI(u);e.add(u=n)}))}if(t.sort){u=e.add(ZU({sort:e.compareRef(t.sort),pulse:KI(u)}))}const b=KI(u);if(r||a){a=e.add(JU({layout:e.objectProperty(t.layout),legends:e.legends,mark:v,pulse:b}));d=KI(a)}const x=e.add(FU({mark:v,pulse:d||b}));h=KI(x);if(i){if(m){o=e.operators;o.pop();if(a)o.pop()}e.pushState(b,d||h,y);r?rY(t,e,g):m?sY(t,e,g):e.parse(t);e.popState();if(m){if(a)o.push(a);o.push(x)}}if(s){h=uY(s,h,e)}const _=e.add(VU({pulse:h})),w=e.add(KU({pulse:KI(_)},undefined,e.parent()));if(t.name!=null){f=t.name;e.addData(f,new tY(e,l,_,w));if(t.on)t.on.forEach((t=>{if(t.insert||t.remove||t.toggle){(0,p.z3)("Marks only support modify triggers.")}aY(t,e,f)}))}}function uY(t,e,n){const i=t.method,r=t.bound,s=t.separation;const a={separation:uU(s)?n.signalRef(s.signal):s,method:uU(i)?n.signalRef(i.signal):i,pulse:e};if(t.order){a.sort=n.compareRef({field:t.order})}if(r){const t=r.tolerance;a.boundTolerance=uU(t)?n.signalRef(t.signal):+t;a.boundScale=n.scaleRef(r.scale);a.boundOrient=r.orient}return KI(n.add(jU(a)))}function lY(t,e){const n=e.config.legend,i=t.encode||{},r=uG(t,n),s=i.legend||{},a=s.name||undefined,o=s.interactive,u=s.style,l={};let c=0,f,d,h;Zj.forEach((e=>t[e]?(l[e]=t[e],c=c||t[e]):0));if(!c)(0,p.z3)("Missing valid scale for legend.");const m=cY(t,e.scaleType(c));const g={title:t.title!=null,scales:l,type:m,vgrad:m!=="symbol"&&r.isVertical()};const y=KI(e.add(SU(null,[g])));const v={enter:{x:{value:0},y:{value:0}}};const b=KI(e.add(LU(d={type:m,scale:e.scaleRef(c),count:e.objectProperty(r("tickCount")),limit:e.property(r("symbolLimit")),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)})));if(m===jj){h=[gG(t,c,n,i.gradient),xG(t,n,i.labels,b)];d.count=d.count||e.signalRef(`max(2,2*floor((${dU(r.gradientLength())})/100))`)}else if(m===Gj){h=[yG(t,c,n,i.gradient,b),xG(t,n,i.labels,b)]}else{f=wG(t,n);h=[_G(t,n,i,b,dU(f.columns))];d.size=hY(t,e,h[0].marks)}h=[oG({role:xI,from:y,encode:v,marks:h,layout:f,interactive:o})];if(g.title){h.push($G(t,n,i.title,y))}return oY(oG({role:vI,from:y,encode:oI(dY(r,t,n),s,Jj),marks:h,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:a,interactive:o,style:u}),e)}function cY(t,e){let n=t.type||Uj;if(!t.type&&fY(t)===1&&(t.fill||t.stroke)){n=Hl(e)?jj:Ql(e)?Gj:Uj}return n!==jj?n:Ql(e)?Gj:jj}function fY(t){return Zj.reduce(((e,n)=>e+(t[n]?1:0)),0)}function dY(t,e,n){const i={enter:{},update:{}};aI(i,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:t("legendX"),y:t("legendY"),format:e.format,formatType:e.formatType});return i}function hY(t,e,n){const i=dU(pY("size",t,n)),r=dU(pY("strokeWidth",t,n)),s=dU(mY(n[1].encode,e,Lj));return jL(`max(ceil(sqrt(${i})+${r}),${s})`,e)}function pY(t,e,n){return e[t]?`scale("${e[t]}",datum)`:lG(t,n[0].encode)}function mY(t,e,n){return lG("fontSize",t)||cG("fontSize",e,n)}const gY=`item.orient==="${kj}"?-90:item.orient==="${Ej}"?90:0`;function yY(t,e){t=(0,p.Kg)(t)?{text:t}:t;const n=uG(t,e.config.title),i=t.encode||{},r=i.group||{},s=r.name||undefined,a=r.interactive,o=r.style,u=[];const l={},c=KI(e.add(SU(null,[l])));u.push(xY(t,n,vY(t),c));if(t.subtitle){u.push(_Y(t,n,i.subtitle,c))}return oY(oG({role:EI,from:c,encode:bY(n,r),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:s,interactive:a,style:o}),e)}function vY(t){const e=t.encode;return e&&e.title||(0,p.X$)({name:t.name,interactive:t.interactive,style:t.style},e)}function bY(t,e){const n={enter:{},update:{}};aI(n,{orient:t("orient"),anchor:t("anchor"),align:{signal:dG},angle:{signal:gY},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")});return oI(n,e,Jj)}function xY(t,e,n,i){const r={value:0},s=t.text,a={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};aI(a,{text:s,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("color"),font:e("font"),fontSize:e("fontSize"),fontStyle:e("fontStyle"),fontWeight:e("fontWeight"),lineHeight:e("lineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")});return mG({type:aG,role:MI,style:qj,from:i,encode:a},n)}function _Y(t,e,n,i){const r={value:0},s=t.subtitle,a={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};aI(a,{text:s,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("subtitleColor"),font:e("subtitleFont"),fontSize:e("subtitleFontSize"),fontStyle:e("subtitleFontStyle"),fontWeight:e("subtitleFontWeight"),lineHeight:e("subtitleLineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")});return mG({type:aG,role:DI,style:Ij,from:i,encode:a},n)}function wY(t,e){const n=[];if(t.transform){t.transform.forEach((t=>{n.push(PG(t,e))}))}if(t.on){t.on.forEach((n=>{aY(n,e,t.name)}))}e.addDataPipeline(t.name,AY(t,e,n))}function AY(t,e,n){const i=[];let r=null,s=false,a=false,o,u,l,c,f;if(t.values){if(uU(t.values)||cU(t.format)){i.push(EY(e,t));i.push(r=kY())}else{i.push(r=kY({$ingest:t.values,$format:t.format}))}}else if(t.url){if(cU(t.url)||cU(t.format)){i.push(EY(e,t));i.push(r=kY())}else{i.push(r=kY({$request:t.url,$format:t.format}))}}else if(t.source){r=o=(0,p.YO)(t.source).map((t=>KI(e.getData(t).output)));i.push(null)}for(u=0,l=n.length;ut===Mj||t===Aj;const DY=(t,e,n)=>uU(t)?RY(t.signal,e,n):t===kj||t===Aj?e:n;const CY=(t,e,n)=>uU(t)?zY(t.signal,e,n):MY(t)?e:n;const FY=(t,e,n)=>uU(t)?$Y(t.signal,e,n):MY(t)?n:e;const SY=(t,e,n)=>uU(t)?OY(t.signal,e,n):t===Aj?{value:e}:{value:n};const BY=(t,e,n)=>uU(t)?TY(t.signal,e,n):t===Ej?{value:e}:{value:n};const zY=(t,e,n)=>NY(`${t} === '${Aj}' || ${t} === '${Mj}'`,e,n);const $Y=(t,e,n)=>NY(`${t} !== '${Aj}' && ${t} !== '${Mj}'`,e,n);const RY=(t,e,n)=>PY(`${t} === '${kj}' || ${t} === '${Aj}'`,e,n);const OY=(t,e,n)=>PY(`${t} === '${Aj}'`,e,n);const TY=(t,e,n)=>PY(`${t} === '${Ej}'`,e,n);const NY=(t,e,n)=>{e=e!=null?rI(e):e;n=n!=null?rI(n):n;if(LY(e)&&LY(n)){e=e?e.signal||(0,p.r$)(e.value):null;n=n?n.signal||(0,p.r$)(n.value):null;return{signal:`${t} ? (${e}) : (${n})`}}else{return[(0,p.X$)({test:t},e)].concat(n||[])}};const LY=t=>t==null||Object.keys(t).length===1;const PY=(t,e,n)=>({signal:`${t} ? (${IY(e)}) : (${IY(n)})`});const qY=(t,e,n,i,r)=>({signal:(i!=null?`${t} === '${kj}' ? (${IY(i)}) : `:"")+(n!=null?`${t} === '${Mj}' ? (${IY(n)}) : `:"")+(r!=null?`${t} === '${Ej}' ? (${IY(r)}) : `:"")+(e!=null?`${t} === '${Aj}' ? (${IY(e)}) : `:"")+"(null)"});const IY=t=>uU(t)?t.signal:t==null?null:(0,p.r$)(t);const UY=(t,e)=>e===0?0:uU(t)?{signal:`(${t.signal}) * ${e}`}:{value:t*e};const jY=(t,e)=>{const n=t.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+e.signal}:t};function GY(t,e,n,i){let r;if(e&&(0,p.mQ)(e,t)){return e[t]}else if((0,p.mQ)(n,t)){return n[t]}else if(t.startsWith("title")){switch(t){case"titleColor":r="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":r=t[5].toLowerCase()+t.slice(6)}return i[Pj][r]}else if(t.startsWith("label")){switch(t){case"labelColor":r="fill";break;case"labelFont":case"labelFontSize":r=t[5].toLowerCase()+t.slice(6)}return i[Lj][r]}return null}function YY(t){const e={};for(const n of t){if(!n)continue;for(const t in n)e[t]=1}return Object.keys(e)}function WY(t,e){var n=e.config,i=n.style,r=n.axis,s=e.scaleType(t.scale)==="band"&&n.axisBand,a=t.orient,o,u,l;if(uU(a)){const t=YY([n.axisX,n.axisY]),e=YY([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);o={};for(l of t){o[l]=CY(a,GY(l,n.axisX,r,i),GY(l,n.axisY,r,i))}u={};for(l of e){u[l]=qY(a.signal,GY(l,n.axisTop,r,i),GY(l,n.axisBottom,r,i),GY(l,n.axisLeft,r,i),GY(l,n.axisRight,r,i))}}else{o=a===Aj||a===Mj?n.axisX:n.axisY;u=n["axis"+a[0].toUpperCase()+a.slice(1)]}const c=o||u||s?(0,p.X$)({},r,o,u,s):r;return c}function XY(t,e,n,i){const r=uG(t,e),s=t.orient;let a,o;const u={enter:a={opacity:tG},update:o={opacity:eG},exit:{opacity:tG}};aI(u,{stroke:r("domainColor"),strokeCap:r("domainCap"),strokeDash:r("domainDash"),strokeDashOffset:r("domainDashOffset"),strokeWidth:r("domainWidth"),strokeOpacity:r("domainOpacity")});const l=HY(t,0);const c=HY(t,1);a.x=o.x=CY(s,l,tG);a.x2=o.x2=CY(s,c);a.y=o.y=FY(s,l,tG);a.y2=o.y2=FY(s,c);return mG({type:rG,role:hI,from:i,encode:u},n)}function HY(t,e){return{scale:t.scale,range:e}}function VY(t,e,n,i,r){const s=uG(t,e),a=t.orient,o=t.gridScale,u=DY(a,1,-1),l=QY(t.offset,u);let c,f,d;const h={enter:c={opacity:tG},update:d={opacity:eG},exit:f={opacity:tG}};aI(h,{stroke:s("gridColor"),strokeCap:s("gridCap"),strokeDash:s("gridDash"),strokeDashOffset:s("gridDashOffset"),strokeOpacity:s("gridOpacity"),strokeWidth:s("gridWidth")});const m={scale:t.scale,field:Nj,band:r.band,extra:r.extra,offset:r.offset,round:s("tickRound")};const g=CY(a,{signal:"height"},{signal:"width"});const y=o?{scale:o,range:0,mult:u,offset:l}:{value:0,offset:l};const v=o?{scale:o,range:1,mult:u,offset:l}:(0,p.X$)(g,{mult:u,offset:l});c.x=d.x=CY(a,m,y);c.y=d.y=FY(a,m,y);c.x2=d.x2=FY(a,v);c.y2=d.y2=CY(a,v);f.x=CY(a,m);f.y=FY(a,m);return mG({type:rG,role:pI,key:Nj,from:i,encode:h},n)}function QY(t,e){if(e===1);else if(!(0,p.Gv)(t)){t=uU(e)?{signal:`(${e.signal}) * (${t||0})`}:e*(t||0)}else{let n=t=(0,p.X$)({},t);while(n.mult!=null){if(!(0,p.Gv)(n.mult)){n.mult=uU(e)?{signal:`(${n.mult}) * (${e.signal})`}:n.mult*e;return t}else{n=n.mult=(0,p.X$)({},n.mult)}}n.mult=e}return t}function KY(t,e,n,i,r,s){const a=uG(t,e),o=t.orient,u=DY(o,-1,1);let l,c,f;const d={enter:l={opacity:tG},update:f={opacity:eG},exit:c={opacity:tG}};aI(d,{stroke:a("tickColor"),strokeCap:a("tickCap"),strokeDash:a("tickDash"),strokeDashOffset:a("tickDashOffset"),strokeOpacity:a("tickOpacity"),strokeWidth:a("tickWidth")});const h=rI(r);h.mult=u;const p={scale:t.scale,field:Nj,band:s.band,extra:s.extra,offset:s.offset,round:a("tickRound")};f.y=l.y=CY(o,tG,p);f.y2=l.y2=CY(o,h);c.x=CY(o,p);f.x=l.x=FY(o,tG,p);f.x2=l.x2=FY(o,h);c.y=FY(o,p);return mG({type:rG,role:gI,key:Nj,from:i,encode:d},n)}function ZY(t,e,n,i,r){return{signal:'flush(range("'+t+'"), '+'scale("'+t+'", datum.value), '+e+","+n+","+i+","+r+")"}}function JY(t,e,n,i,r,s){const a=uG(t,e),o=t.orient,u=t.scale,l=DY(o,-1,1),c=dU(a("labelFlush")),f=dU(a("labelFlushOffset")),d=a("labelAlign"),h=a("labelBaseline");let p=c===0||!!c,m;const g=rI(r);g.mult=l;g.offset=rI(a("labelPadding")||0);g.offset.mult=l;const y={scale:u,field:Nj,band:.5,offset:pG(s.offset,a("labelOffset"))};const v=CY(o,p?ZY(u,c,'"left"','"right"','"center"'):{value:"center"},BY(o,"left","right"));const b=CY(o,SY(o,"bottom","top"),p?ZY(u,c,'"top"','"bottom"','"middle"'):{value:"middle"});const x=ZY(u,c,`-(${f})`,f,0);p=p&&f;const _={opacity:tG,x:CY(o,y,g),y:FY(o,y,g)};const w={enter:_,update:m={opacity:eG,text:{field:$j},x:_.x,y:_.y,align:v,baseline:b},exit:{opacity:tG,x:_.x,y:_.y}};aI(w,{dx:!d&&p?CY(o,x):null,dy:!h&&p?FY(o,x):null});aI(w,{angle:a("labelAngle"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontWeight:a("labelFontWeight"),fontStyle:a("labelFontStyle"),limit:a("labelLimit"),lineHeight:a("labelLineHeight")},{align:d,baseline:h});const A=a("labelBound");let k=a("labelOverlap");k=k||A?{separation:a("labelSeparation"),method:k,order:"datum.index",bound:A?{scale:u,orient:o,tolerance:A}:null}:undefined;if(m.align!==v){m.align=jY(m.align,v)}if(m.baseline!==b){m.baseline=jY(m.baseline,b)}return mG({type:aG,role:mI,style:Lj,key:Nj,from:i,encode:w,overlap:k},n)}function tW(t,e,n,i){const r=uG(t,e),s=t.orient,a=DY(s,-1,1);let o,u;const l={enter:o={opacity:tG,anchor:rI(r("titleAnchor",null)),align:{signal:dG}},update:u=(0,p.X$)({},o,{opacity:eG,text:rI(t.title)}),exit:{opacity:tG}};const c={signal:`lerp(range("${t.scale}"), ${fG(0,1,.5)})`};u.x=CY(s,c);u.y=FY(s,c);o.angle=CY(s,tG,UY(a,90));o.baseline=CY(s,SY(s,Mj,Aj),{value:Mj});u.angle=o.angle;u.baseline=o.baseline;aI(l,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")});eW(r,s,l,n);l.update.align=jY(l.update.align,o.align);l.update.angle=jY(l.update.angle,o.angle);l.update.baseline=jY(l.update.baseline,o.baseline);return mG({type:aG,role:yI,style:Pj,from:i,encode:l},n)}function eW(t,e,n,i){const r=(t,e)=>t!=null?(n.update[e]=jY(rI(t),n.update[e]),false):!uI(e,i)?true:false;const s=r(t("titleX"),"x"),a=r(t("titleY"),"y");n.enter.auto=a===s?rI(a):CY(e,rI(a),rI(s))}function nW(t,e){const n=WY(t,e),i=t.encode||{},r=i.axis||{},s=r.name||undefined,a=r.interactive,o=r.style,u=uG(t,n),l=hG(u);const c={scale:t.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:t.title!=null};const f=KI(e.add(SU({},[c])));const d=KI(e.add(CU({scale:e.scaleRef(t.scale),extra:e.property(l.extra),count:e.objectProperty(t.tickCount),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)})));const h=[];let p;if(c.grid){h.push(VY(t,n,i.grid,d,l))}if(c.ticks){p=u("tickSize");h.push(KY(t,n,i.ticks,d,p,l))}if(c.labels){p=c.ticks?p:0;h.push(JY(t,n,i.labels,d,p,l))}if(c.domain){h.push(XY(t,n,i.domain,f))}if(c.title){h.push(tW(t,n,i.title,f))}return oY(oG({role:dI,from:f,encode:oI(iW(u,t),r,Jj),marks:h,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:s,interactive:a,style:o}),e)}function iW(t,e){const n={enter:{},update:{}};aI(n,{orient:t("orient"),offset:t("offset")||0,position:fU(e.position,0),titlePadding:t("titlePadding"),minExtent:t("minExtent"),maxExtent:t("maxExtent"),range:{signal:`abs(span(range("${e.scale}")))`},translate:t("translate"),format:e.format,formatType:e.formatType});return n}function rW(t,e,n){const i=(0,p.YO)(t.signals),r=(0,p.YO)(t.scales);if(!n)i.forEach((t=>XI(t,e)));(0,p.YO)(t.projections).forEach((t=>_j(t,e)));r.forEach((t=>ij(t,e)));(0,p.YO)(t.data).forEach((t=>wY(t,e)));r.forEach((t=>rj(t,e)));(n||i).forEach((t=>EU(t,e)));(0,p.YO)(t.axes).forEach((t=>nW(t,e)));(0,p.YO)(t.marks).forEach((t=>oY(t,e)));(0,p.YO)(t.legends).forEach((t=>lY(t,e)));if(t.title)yY(t.title,e);e.parseLambdas();return e}const sW=t=>oI({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function aW(t,e){const n=e.config;const i=KI(e.root=e.add(QI()));const r=uW(t,n);r.forEach((t=>XI(t,e)));e.description=t.description||n.description;e.eventConfig=n.events;e.legends=e.objectProperty(n.legend&&n.legend.layout);e.locale=n.locale;const s=e.add(SU());const a=e.add($U(qI(sW(t.encode),nG,cI,t.style,e,{pulse:KI(s)})));const o=e.add(JU({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:i,pulse:KI(a)}));e.operators.pop();e.pushState(KI(a),KI(o),null);rW(t,e,r);e.operators.push(o);let u=e.add(FU({mark:i,pulse:KI(o)}));u=e.add(VU({pulse:KI(u)}));u=e.add(KU({pulse:KI(u)}));e.addData("root",new tY(e,s,s,u));return e}function oW(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function uW(t,e){const n=n=>fU(t[n],e[n]),i=[oW("background",n("background")),oW("autosize",tI(n("autosize"))),oW("padding",iI(n("padding"))),oW("width",n("width")||0),oW("height",n("height")||0)],r=i.reduce(((t,e)=>(t[e.name]=e,t)),{}),s={};(0,p.YO)(t.signals).forEach((t=>{if((0,p.mQ)(r,t.name)){t=(0,p.X$)(r[t.name],t)}else{i.push(t)}s[t.name]=t}));(0,p.YO)(e.signals).forEach((t=>{if(!(0,p.mQ)(s,t.name)&&!(0,p.mQ)(r,t.name)){i.push(t)}}));return i}function lW(t,e){this.config=t||{};this.options=e||{};this.bindings=[];this.field={};this.signals={};this.lambdas={};this.scales={};this.events={};this.data={};this.streams=[];this.updates=[];this.operators=[];this.eventConfig=null;this.locale=null;this._id=0;this._subid=0;this._nextsub=[0];this._parent=[];this._encode=[];this._lookup=[];this._markpath=[]}function cW(t){this.config=t.config;this.options=t.options;this.legends=t.legends;this.field=Object.create(t.field);this.signals=Object.create(t.signals);this.lambdas=Object.create(t.lambdas);this.scales=Object.create(t.scales);this.events=Object.create(t.events);this.data=Object.create(t.data);this.streams=[];this.updates=[];this.operators=[];this._id=0;this._subid=++t._nextsub[0];this._nextsub=t._nextsub;this._parent=t._parent.slice();this._encode=t._encode.slice();this._lookup=t._lookup.slice();this._markpath=t._markpath}lW.prototype=cW.prototype={parse(t){return rW(t,this)},fork(){return new cW(this)},isSubscope(){return this._subid>0},toRuntime(){this.finish();return{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(t){this.operators.push(t);t.id=this.id();if(t.refs){t.refs.forEach((e=>{e.$ref=t.id}));t.refs=null}return t},proxy(t){const e=t instanceof HI?KI(t):t;return this.add(XU({value:e}))},addStream(t){this.streams.push(t);t.id=this.id();return t},addUpdate(t){this.updates.push(t);return t},finish(){let t,e;if(this.root)this.root.root=true;for(t in this.signals){this.signals[t].signal=t}for(t in this.scales){this.scales[t].scale=t}function n(t,e,n){let i,r;if(t){i=t.data||(t.data={});r=i[e]||(i[e]=[]);r.push(n)}}for(t in this.data){e=this.data[t];n(e.input,t,"input");n(e.output,t,"output");n(e.values,t,"values");for(const i in e.index){n(e.index[i],t,"index:"+i)}}return this},pushState(t,e,n){this._encode.push(KI(this.add(KU({pulse:t}))));this._parent.push(e);this._lookup.push(n?KI(this.proxy(n)):null);this._markpath.push(-1)},popState(){this._encode.pop();this._parent.pop();this._lookup.pop();this._markpath.pop()},parent(){return(0,p.se)(this._parent)},encode(){return(0,p.se)(this._encode)},lookup(){return(0,p.se)(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,e){if((0,p.Kg)(t))return ZI(t,e);if(!t.signal){(0,p.z3)("Unsupported field reference: "+(0,p.r$)(t))}const n=t.signal;let i=this.field[n];if(!i){const t={name:this.signalRef(n)};if(e)t.as=e;this.field[n]=i=KI(this.add(TU(t)))}return i},compareRef(t){let e=false;const n=t=>uU(t)?(e=true,this.signalRef(t.signal)):lU(t)?(e=true,this.exprRef(t.expr)):t;const i=(0,p.YO)(t.field).map(n),r=(0,p.YO)(t.order).map(n);return e?KI(this.add(BU({fields:i,orders:r}))):tU(i,r)},keyRef(t,e){let n=false;const i=t=>uU(t)?(n=true,KI(r[t.signal])):t;const r=this.signals;t=(0,p.YO)(t).map(i);return n?KI(this.add(NU({fields:t,flat:e}))):eU(t,e)},sortRef(t){if(!t)return t;const e=sU(t.op,t.field),n=t.order||nU;return n.signal?KI(this.add(BU({fields:e,orders:this.signalRef(n.signal)}))):tU(e,n)},event(t,e){const n=t+":"+e;if(!this.events[n]){const i=this.id();this.streams.push({id:i,source:t,type:e});this.events[n]=i}return this.events[n]},hasOwnSignal(t){return(0,p.mQ)(this.signals,t)},addSignal(t,e){if(this.hasOwnSignal(t)){(0,p.z3)("Duplicate signal name: "+(0,p.r$)(t))}const n=e instanceof HI?e:this.add(QI(e));return this.signals[t]=n},getSignal(t){if(!this.signals[t]){(0,p.z3)("Unrecognized signal name: "+(0,p.r$)(t))}return this.signals[t]},signalRef(t){if(this.signals[t]){return KI(this.signals[t])}else if(!(0,p.mQ)(this.lambdas,t)){this.lambdas[t]=this.add(QI(null))}return KI(this.lambdas[t])},parseLambdas(){const t=Object.keys(this.lambdas);for(let e=0,n=t.length;e0?",":"")+((0,p.Gv)(e)?e.signal||fW(e):(0,p.r$)(e))}return n+"]"}function hW(t){let e="{",n=0,i,r;for(i in t){r=t[i];e+=(++n>1?",":"")+(0,p.r$)(i)+":"+((0,p.Gv)(r)?r.signal||fW(r):(0,p.r$)(r))}return e+"}"}function pW(){const t="sans-serif",e=30,n=2,i="#4c78a8",r="#000",s="#888",a="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:i},area:{fill:i},image:null,line:{stroke:i,strokeWidth:n},path:{stroke:i},rect:{fill:i},rule:{stroke:r},shape:{stroke:i},symbol:{fill:i,size:64},text:{fill:r,font:t,fontSize:11},trail:{fill:i,size:n},style:{"guide-label":{fill:r,font:t,fontSize:10},"guide-title":{fill:r,font:t,fontSize:11,fontWeight:"bold"},"group-title":{fill:r,font:t,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:r,font:t,fontSize:12},point:{size:e,strokeWidth:n,shape:"circle"},circle:{size:e,strokeWidth:n},square:{size:e,strokeWidth:n,shape:"square"},cell:{fill:"transparent",stroke:a},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:true,domainWidth:1,domainColor:s,grid:false,gridWidth:1,gridColor:a,labels:true,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:true,tickColor:s,tickOffset:0,tickRound:true,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:a,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:true,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:s,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}function mW(t,e,n){if(!(0,p.Gv)(t)){(0,p.z3)("Input Vega specification must be an object.")}e=(0,p.io)(pW(),e,t.config);return aW(t,new lW(e,n)).toRuntime()}var gW="5.33.0";(0,p.X$)($i,i,r,s,a,o,l,u,c,f,d,h)}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7881.c5a234ce171f347c94e2.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7881.c5a234ce171f347c94e2.js deleted file mode 100644 index 380c9f286428e5ec3d972be83ad70f7e7c91fa60..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/7881.c5a234ce171f347c94e2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[7881],{27881:(e,t,r)=>{r.r(t);r.d(t,{liveScript:()=>p});var n=function(e,t){var r=t.next||"start";if(r){t.next=t.next;var n=s[r];if(n.splice){for(var o=0;o|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*"+o+")?))\\s*$");var x="(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))";var g={token:"string",regex:".+"};var s={start:[{token:"docComment",regex:"/\\*",next:"comment"},{token:"comment",regex:"#.*"},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)"+x},{token:"atom",regex:"(?:true|false|yes|no|on|off|null|void|undefined)"+x},{token:"invalid",regex:"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)"+x},{token:"className.standard",regex:"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)"+x},{token:"variableName.function.standard",regex:"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)"+x},{token:"variableName.standard",regex:"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)"+x},{token:"variableName",regex:o+"\\s*:(?![:=])"},{token:"variableName",regex:o},{token:"operatorKeyword",regex:"(?:\\.{3}|\\s+\\?)"},{token:"keyword",regex:"(?:@+|::|\\.\\.)",next:"key"},{token:"operatorKeyword",regex:"\\.\\s*",next:"key"},{token:"string",regex:"\\\\\\S[^\\s,;)}\\]]*"},{token:"docString",regex:"'''",next:"qdoc"},{token:"docString",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string",regex:"<\\[",next:"words"},{token:"regexp",regex:"//",next:"heregex"},{token:"regexp",regex:"\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}",next:"key"},{token:"number",regex:"(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)"},{token:"paren",regex:"[({[]"},{token:"paren",regex:"[)}\\]]",next:"key"},{token:"operatorKeyword",regex:"\\S+"},{token:"content",regex:"\\s+"}],heregex:[{token:"regexp",regex:".*?//[gimy$?]{0,4}",next:"start"},{token:"regexp",regex:"\\s*#{"},{token:"comment",regex:"\\s+(?:#.*)?"},{token:"regexp",regex:"\\S+"}],key:[{token:"operatorKeyword",regex:"[.?@!]+"},{token:"variableName",regex:o,next:"start"},{token:"content",regex:"",next:"start"}],comment:[{token:"docComment",regex:".*?\\*/",next:"start"},{token:"docComment",regex:".+"}],qdoc:[{token:"string",regex:".*?'''",next:"key"},g],qqdoc:[{token:"string",regex:'.*?"""',next:"key"},g],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"key"},g],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"key"},g],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"key"},g],words:[{token:"string",regex:".*?\\]>",next:"key"},g]};for(var i in s){var k=s[i];if(k.splice){for(var l=0,c=k.length;l{"use strict";var t=/("(?:[^\\"]|\\.)*")|[:,]/g;e.exports=function e(r,n){var i,a,o;n=n||{};i=JSON.stringify([1],undefined,n.indent===undefined?2:n.indent).slice(2,-3);a=i===""?Infinity:n.maxLength===undefined?80:n.maxLength;o=n.replacer;return function e(r,n,s){var l,c,u,f,h,p,d,v,g,m,y,b;if(r&&typeof r.toJSON==="function"){r=r.toJSON()}y=JSON.stringify(r,o);if(y===undefined){return y}d=a-n.length-s;if(y.length<=d){g=y.replace(t,(function(e,t){return t||e+" "}));if(g.length<=d){return g}}if(o!=null){r=JSON.parse(y);o=undefined}if(typeof r==="object"&&r!==null){v=n+i;u=[];c=0;if(Array.isArray(r)){m="[";l="]";d=r.length;for(;c0){return[m,i+u.join(",\n"+v),l].join("\n"+n)}}return y}(r,"",0)}},65606:e=>{var t=e.exports={};var r;var n;function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){r=setTimeout}else{r=i}}catch(e){r=i}try{if(typeof clearTimeout==="function"){n=clearTimeout}else{n=a}}catch(e){n=a}})();function o(e){if(r===setTimeout){return setTimeout(e,0)}if((r===i||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function s(e){if(n===clearTimeout){return clearTimeout(e)}if((n===a||!n)&&clearTimeout){n=clearTimeout;return clearTimeout(e)}try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var l=[];var c=false;var u;var f=-1;function h(){if(!c||!u){return}c=false;if(u.length){l=u.concat(l)}else{f=-1}if(l.length){p()}}function p(){if(c){return}var e=o(h);c=true;var t=l.length;while(t){u=l;l=[];while(++f1){for(var r=1;r{"use strict";r.r(t);r.d(t,{DEFAULT_ACTIONS:()=>Ca,default:()=>Wa,guessMode:()=>Ua,vega:()=>Ra,vegaLite:()=>Da,version:()=>Ta});var n={};r.r(n);r.d(n,{JsonPatchError:()=>b,_areEquals:()=>T,applyOperation:()=>A,applyPatch:()=>I,applyReducer:()=>N,deepClone:()=>E,getValueByPointer:()=>O,validate:()=>L,validator:()=>S});var i={};r.r(i);r.d(i,{compare:()=>B,generate:()=>M,observe:()=>_,unobserve:()=>P});var a={};r.r(a);r.d(a,{dark:()=>Le,excel:()=>Re,fivethirtyeight:()=>_e,ggplot2:()=>ze,googlecharts:()=>vt,latimes:()=>qe,powerbi:()=>Mt,quartz:()=>Ke,urbaninstitute:()=>ft,version:()=>zt,vox:()=>tt});var o=undefined&&undefined.__extends||function(){var e=function(t,r){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)if(t.hasOwnProperty(r))e[r]=t[r]};return e(t,r)};return function(t,r){e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var s=Object.prototype.hasOwnProperty;function l(e,t){return s.call(e,t)}function c(e){if(Array.isArray(e)){var t=new Array(e.length);for(var r=0;r=48&&n<=57){t++;continue}return false}return true}function h(e){if(e.indexOf("/")===-1&&e.indexOf("~")===-1)return e;return e.replace(/~/g,"~0").replace(/\//g,"~1")}function p(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function d(e,t){var r;for(var n in e){if(l(e,n)){if(e[n]===t){return h(n)+"/"}else if(typeof e[n]==="object"){r=d(e[n],t);if(r!=""){return h(n)+"/"+r}}}}return""}function v(e,t){if(e===t){return"/"}var r=d(e,t);if(r===""){throw new Error("Object not found in root")}return"/"+r}function g(e){if(e===undefined){return true}if(e){if(Array.isArray(e)){for(var t=0,r=e.length;t0&&l[h-1]=="constructor")){throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README")}if(r){if(v===undefined){if(c[g]===undefined){v=l.slice(0,h).join("/")}else if(h==d-1){v=t.path}if(v!==undefined){m(t,0,e,v)}}}h++;if(Array.isArray(c)){if(g==="-"){g=c.length}else{if(r&&!f(g)){throw new b("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",a,t,e)}else if(f(g)){g=~~g}}if(h>=d){if(r&&t.op==="add"&&g>c.length){throw new b("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",a,t,e)}var o=x[t.op].call(t,c,g,e);if(o.test===false){throw new b("Test operation failed","TEST_OPERATION_FAILED",a,t,e)}return o}}else{if(h>=d){var o=w[t.op].call(t,c,g,e);if(o.test===false){throw new b("Test operation failed","TEST_OPERATION_FAILED",a,t,e)}return o}}c=c[g];if(r&&h0){throw new b('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,r)}else if((e.op==="move"||e.op==="copy")&&typeof e.from!=="string"){throw new b("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,r)}else if((e.op==="add"||e.op==="replace"||e.op==="test")&&e.value===undefined){throw new b("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,r)}else if((e.op==="add"||e.op==="replace"||e.op==="test")&&g(e.value)){throw new b("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,r)}else if(r){if(e.op=="add"){var i=e.path.split("/").length;var a=n.split("/").length;if(i!==a+1&&i!==a){throw new b("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,r)}}else if(e.op==="replace"||e.op==="remove"||e.op==="_get"){if(e.path!==n){throw new b("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,r)}}else if(e.op==="move"||e.op==="copy"){var o={op:"_get",path:e.from,value:undefined};var s=L([o],r);if(s&&s.name==="OPERATION_PATH_UNRESOLVABLE"){throw new b("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,r)}}}}function L(e,t,r){try{if(!Array.isArray(e)){throw new b("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY")}if(t){I(u(t),u(e),r||true)}else{r=r||S;for(var n=0;n0){e.patches=[];if(e.callback){e.callback(n)}}return n}function z(e,t,r,n,i){if(t===e){return}if(typeof t.toJSON==="function"){t=t.toJSON()}var a=c(t);var o=c(e);var s=false;var f=false;for(var p=o.length-1;p>=0;p--){var d=o[p];var v=e[d];if(l(t,d)&&!(t[d]===undefined&&v!==undefined&&Array.isArray(t)===false)){var g=t[d];if(typeof v=="object"&&v!=null&&typeof g=="object"&&g!=null&&Array.isArray(v)===Array.isArray(g)){z(v,g,r,n+"/"+h(d),i)}else{if(v!==g){s=true;if(i){r.push({op:"test",path:n+"/"+h(d),value:u(v)})}r.push({op:"replace",path:n+"/"+h(d),value:u(g)})}}}else if(Array.isArray(e)===Array.isArray(t)){if(i){r.push({op:"test",path:n+"/"+h(d),value:u(v)})}r.push({op:"remove",path:n+"/"+h(d)});f=true}else{if(i){r.push({op:"test",path:n,value:e})}r.push({op:"replace",path:n,value:t});s=true}}if(!f&&a.length==o.length){return}for(var p=0;pe.x2){n=e.x;e.x=e.x2;e.x2=n}e.width=e.x2-e.x}else{e.x=e.x2-(e.width||0)}}if(t.xc){e.x=e.xc-(e.width||0)/2}if(t.y2){if(t.y){if(r&&e.y>e.y2){n=e.y;e.y=e.y2;e.y2=n}e.height=e.y2-e.y}else{e.y=e.y2-(e.height||0)}}if(t.yc){e.y=e.yc-(e.height||0)/2}}var W={NaN,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,PI:Math.PI,SQRT1_2:Math.SQRT1_2,SQRT2:Math.SQRT2,MIN_VALUE:Number.MIN_VALUE,MAX_VALUE:Number.MAX_VALUE};var H={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>ee<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t};var Y={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const J=Array.prototype.slice;const q=(e,t,r)=>{const n=r?r(t[0]):t[0];return n[e].apply(n,J.call(t,1))};const Q=(e,t,r,n,i,a,o)=>new Date(e,t||0,r!=null?r:1,n||0,i||0,a||0,o||0);var Z={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:(e,t,r)=>Math.max(t,Math.min(r,e)),now:Date.now,utc:Date.UTC,datetime:Q,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return q("join",arguments)},indexof:function(){return q("indexOf",arguments)},lastindexof:function(){return q("lastIndexOf",arguments)},slice:function(){return q("slice",arguments)},reverse:e=>e.slice().reverse(),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return q("substring",arguments,String)},split:function(){return q("split",arguments,String)},replace:function(){return q("replace",arguments,String)},trim:e=>String(e).trim(),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const K=["view","item","group","xy","x","y"];const ee=new Set([Function,eval,setTimeout,setInterval]);if(typeof setImmediate==="function")ee.add(setImmediate);const te={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const r=t.name;return e.memberDepth>0?r:r==="datum"?e.datum:r==="event"?e.event:r==="item"?e.item:W[r]||e.params["$"+r]},MemberExpression:(e,t)=>{const r=!t.computed,n=e(t.object);if(r)e.memberDepth+=1;const i=e(t.property);if(r)e.memberDepth-=1;if(ee.has(n[i])){console.error(`Prevented interpretation of member "${i}" which could lead to insecure code execution`);return}return n[i]},CallExpression:(e,t)=>{const r=t.arguments;let n=t.callee.name;if(n.startsWith("_")){n=n.slice(1)}return n==="if"?e(r[0])?e(r[1]):e(r[2]):(e.fn[n]||Z[n]).apply(e.fn,r.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>H[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>Y[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce(((t,r)=>{e.memberDepth+=1;const n=e(r.key);e.memberDepth-=1;if(ee.has(e(r.value))){console.error(`Prevented interpretation of property "${n}" which could lead to insecure code execution`)}else{t[n]=e(r.value)}return t}),{})};function re(e,t,r,n,i,a){const o=e=>te[e.type](o,e);o.memberDepth=0;o.fn=Object.create(t);o.params=r;o.datum=n;o.event=i;o.item=a;K.forEach((e=>o.fn[e]=function(){return i.vega[e](...arguments)}));return o(e)}var ne={operator(e,t){const r=t.ast,n=e.functions;return e=>re(r,n,e)},parameter(e,t){const r=t.ast,n=e.functions;return(e,t)=>re(r,n,t,e)},event(e,t){const r=t.ast,n=e.functions;return e=>re(r,n,undefined,undefined,e)},handler(e,t){const r=t.ast,n=e.functions;return(e,t)=>{const i=t.item&&t.item.datum;return re(r,n,e,i,t)}},encode(e,t){const{marktype:r,channels:n}=t,i=e.functions,a=r==="group"||r==="image"||r==="rect";return(e,t)=>{const o=e.datum;let s=0,l;for(const r in n){l=re(n[r].ast,i,t,o,undefined,e);if(e[r]!==l){e[r]=l;s=1}}if(r!=="rule"){$(e,n,a)}return s}}};var ie=r(17438);function ae(e){const[t,r]=/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3);return{library:t,version:r}}const oe=ae;var se="vega-themes";var le="2.12.1";var ce="Themes for stylized Vega and Vega-Lite visualizations.";var ue=["vega","vega-lite","themes","style"];var fe="BSD-3-Clause";var he={name:"UW Interactive Data Lab",url:"https://idl.cs.washington.edu"};var pe=[{name:"Emily Gu",url:"https://github.com/emilygu"},{name:"Arvind Satyanarayan",url:"http://arvindsatya.com"},{name:"Jeffrey Heer",url:"https://idl.cs.washington.edu"},{name:"Dominik Moritz",url:"https://www.domoritz.de"}];var de="build/vega-themes.js";var ve="build/vega-themes.module.js";var ge="build/vega-themes.min.js";var me="build/vega-themes.min.js";var ye="build/vega-themes.module.d.ts";var be={type:"git",url:"https://github.com/vega/vega-themes.git"};var Ee=["src","build"];var we={prebuild:"yarn clean",build:"rollup -c",clean:"rimraf build && rimraf examples/build","copy:data":"rsync -r node_modules/vega-datasets/data/* examples/data","copy:build":"rsync -r build/* examples/build","deploy:gh":"yarn build && mkdir -p examples/build && rsync -r build/* examples/build && gh-pages -d examples",preversion:"yarn lint",serve:"browser-sync start -s -f build examples --serveStatic examples",start:"yarn build && concurrently --kill-others -n Server,Rollup 'yarn serve' 'rollup -c -w'",prepare:"beemo create-config",eslintbase:"beemo eslint .",format:"yarn eslintbase --fix",lint:"yarn eslintbase",release:"release-it"};var xe={"@release-it/conventional-changelog":"^5.1.1","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.0.1","@rollup/plugin-terser":"^0.4.0","browser-sync":"^2.27.10",concurrently:"^7.3.0","gh-pages":"^5.0.0","release-it":"^15.6.0","rollup-plugin-bundle-size":"^1.0.3","rollup-plugin-ts":"^3.0.2",rollup:"^3.15.0",typescript:"^4.7.4","vega-lite-dev-config":"^0.21.0","vega-lite":"^5.0.0",vega:"^5.19.1"};var Oe={vega:"*","vega-lite":"*"};var Ae={};var Ie={name:se,version:le,description:ce,keywords:ue,license:fe,author:he,contributors:pe,main:de,module:ve,unpkg:ge,jsdelivr:me,types:ye,repository:be,files:Ee,scripts:we,devDependencies:xe,peerDependencies:Oe,dependencies:Ae};const Ne="#fff";const Se="#888";const Le={background:"#333",view:{stroke:Se},title:{color:Ne,subtitleColor:Ne},style:{"guide-label":{fill:Ne},"guide-title":{fill:Ne}},axis:{domainColor:Ne,gridColor:Se,tickColor:Ne}};const Te="#4572a7";const Re={background:"#fff",arc:{fill:Te},area:{fill:Te},line:{stroke:Te,strokeWidth:2},path:{stroke:Te},rect:{fill:Te},shape:{stroke:Te},symbol:{fill:Te,strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:true,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:false,tickExtra:true},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}};const De="#30a2da";const ke="#cbcbcb";const Ce="#999";const Fe="#333";const je="#f0f0f0";const Pe="#333";const _e={arc:{fill:De},area:{fill:De},axis:{domainColor:ke,grid:true,gridColor:ke,gridWidth:1,labelColor:Ce,labelFontSize:10,titleColor:Fe,tickColor:ke,tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:false},background:je,group:{fill:je},legend:{labelColor:Pe,labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:Pe,titleFontSize:14,titlePadding:10},line:{stroke:De,strokeWidth:2},path:{stroke:De,strokeWidth:.5},rect:{fill:De},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},point:{filled:true,shape:"circle"},shape:{stroke:De},bar:{binSpacing:2,fill:De,stroke:null},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}};const Me="#000";const ze={group:{fill:"#e5e5e5"},arc:{fill:Me},area:{fill:Me},line:{stroke:Me},path:{stroke:Me},rect:{fill:Me},shape:{stroke:Me},symbol:{fill:Me,size:40},axis:{domain:false,grid:true,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}};const Be=22;const Ge="normal";const Ue="Benton Gothic, sans-serif";const Ve=11.5;const Xe="normal";const $e="#82c6df";const We="Benton Gothic Bold, sans-serif";const He="normal";const Ye=13;const Je={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"],"ice-7":["#edefee","#dadfe2","#c4ccd2","#a6b7c6","#849eae","#607785","#47525d"]};const qe={background:"#ffffff",title:{anchor:"start",color:"#000000",font:We,fontSize:Be,fontWeight:Ge},arc:{fill:$e},area:{fill:$e},line:{stroke:$e,strokeWidth:2},path:{stroke:$e},rect:{fill:$e},shape:{stroke:$e},symbol:{fill:$e,size:30},axis:{labelFont:Ue,labelFontSize:Ve,labelFontWeight:Xe,titleFont:We,titleFontSize:Ye,titleFontWeight:He},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:Ue,labelFontSize:Ve,symbolType:"square",titleFont:We,titleFontSize:Ye,titleFontWeight:He},range:{category:Je["category-6"],diverging:Je["fireandice-6"],heatmap:Je["fire-7"],ordinal:Je["fire-7"],ramp:Je["fire-7"]}};const Qe="#ab5787";const Ze="#979797";const Ke={background:"#f9f9f9",arc:{fill:Qe},area:{fill:Qe},line:{stroke:Qe},path:{stroke:Qe},rect:{fill:Qe},shape:{stroke:Qe},symbol:{fill:Qe,size:30},axis:{domainColor:Ze,domainWidth:.5,gridWidth:.2,labelColor:Ze,tickColor:Ze,tickWidth:.2,titleColor:Ze},axisBand:{grid:false},axisX:{grid:true,tickSize:10},axisY:{domain:false,grid:true,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}};const et="#3e5c69";const tt={background:"#fff",arc:{fill:et},area:{fill:et},line:{stroke:et},path:{stroke:et},rect:{fill:et},shape:{stroke:et},symbol:{fill:et},axis:{domainWidth:.5,grid:true,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:false},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}};const rt="#1696d2";const nt="#000000";const it="#FFFFFF";const at="Lato";const ot="Lato";const st="Lato";const lt="#DEDDDD";const ct=18;const ut={"main-colors":["#1696d2","#d2d2d2","#000000","#fdbf11","#ec008b","#55b748","#5c5859","#db2b27"],"shades-blue":["#CFE8F3","#A2D4EC","#73BFE2","#46ABDB","#1696D2","#12719E","#0A4C6A","#062635"],"shades-gray":["#F5F5F5","#ECECEC","#E3E3E3","#DCDBDB","#D2D2D2","#9D9D9D","#696969","#353535"],"shades-yellow":["#FFF2CF","#FCE39E","#FDD870","#FCCB41","#FDBF11","#E88E2D","#CA5800","#843215"],"shades-magenta":["#F5CBDF","#EB99C2","#E46AA7","#E54096","#EC008B","#AF1F6B","#761548","#351123"],"shades-green":["#DCEDD9","#BCDEB4","#98CF90","#78C26D","#55B748","#408941","#2C5C2D","#1A2E19"],"shades-black":["#D5D5D4","#ADABAC","#848081","#5C5859","#332D2F","#262223","#1A1717","#0E0C0D"],"shades-red":["#F8D5D4","#F1AAA9","#E9807D","#E25552","#DB2B27","#A4201D","#6E1614","#370B0A"],"one-group":["#1696d2","#000000"],"two-groups-cat-1":["#1696d2","#000000"],"two-groups-cat-2":["#1696d2","#fdbf11"],"two-groups-cat-3":["#1696d2","#db2b27"],"two-groups-seq":["#a2d4ec","#1696d2"],"three-groups-cat":["#1696d2","#fdbf11","#000000"],"three-groups-seq":["#a2d4ec","#1696d2","#0a4c6a"],"four-groups-cat-1":["#000000","#d2d2d2","#fdbf11","#1696d2"],"four-groups-cat-2":["#1696d2","#ec0008b","#fdbf11","#5c5859"],"four-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a"],"five-groups-cat-1":["#1696d2","#fdbf11","#d2d2d2","#ec008b","#000000"],"five-groups-cat-2":["#1696d2","#0a4c6a","#d2d2d2","#fdbf11","#332d2f"],"five-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a","#000000"],"six-groups-cat-1":["#1696d2","#ec008b","#fdbf11","#000000","#d2d2d2","#55b748"],"six-groups-cat-2":["#1696d2","#d2d2d2","#ec008b","#fdbf11","#332d2f","#0a4c6a"],"six-groups-seq":["#cfe8f3","#a2d4ec","#73bfe2","#46abdb","#1696d2","#12719e"],"diverging-colors":["#ca5800","#fdbf11","#fdd870","#fff2cf","#cfe8f3","#73bfe2","#1696d2","#0a4c6a"]};const ft={background:it,title:{anchor:"start",fontSize:ct,font:at},axisX:{domain:true,domainColor:nt,domainWidth:1,grid:false,labelFontSize:12,labelFont:ot,labelAngle:0,tickColor:nt,tickSize:5,titleFontSize:12,titlePadding:10,titleFont:at},axisY:{domain:false,domainWidth:1,grid:true,gridColor:lt,gridWidth:1,labelFontSize:12,labelFont:ot,labelPadding:8,ticks:false,titleFontSize:12,titlePadding:10,titleFont:at,titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:ot,symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:at,orient:"right",offset:10},view:{stroke:"transparent"},range:{category:ut["six-groups-cat-1"],diverging:ut["diverging-colors"],heatmap:ut["diverging-colors"],ordinal:ut["six-groups-seq"],ramp:ut["shades-blue"]},area:{fill:rt},rect:{fill:rt},line:{color:rt,stroke:rt,strokeWidth:5},trail:{color:rt,stroke:rt,strokeWidth:0,size:1},path:{stroke:rt,strokeWidth:.5},point:{filled:true},text:{font:st,color:rt,fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:rt,stroke:null}},arc:{fill:rt},shape:{stroke:rt},symbol:{fill:rt,size:30}};const ht="#3366CC";const pt="#ccc";const dt="Arial, sans-serif";const vt={arc:{fill:ht},area:{fill:ht},path:{stroke:ht},rect:{fill:ht},shape:{stroke:ht},symbol:{stroke:ht},circle:{fill:ht},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:dt,fontSize:12},"guide-title":{font:dt,fontSize:12},"group-title":{font:dt,fontSize:12}},title:{font:dt,fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:pt,tickColor:pt,domain:false,grid:true},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}};const gt=e=>e*(1/3+1);const mt=gt(9);const yt=gt(10);const bt=gt(12);const Et="Segoe UI";const wt="wf_standard-font, helvetica, arial, sans-serif";const xt="#252423";const Ot="#605E5C";const At="transparent";const It="#C8C6C4";const Nt="#118DFF";const St="#12239E";const Lt="#E66C37";const Tt="#6B007B";const Rt="#E044A7";const Dt="#744EC2";const kt="#D9B300";const Ct="#D64550";const Ft=Nt;const jt="#DEEFFF";const Pt=[jt,Ft];const _t=[jt,"#c7e4ff","#b0d9ff","#9aceff","#83c3ff","#6cb9ff","#55aeff","#3fa3ff","#2898ff",Ft];const Mt={view:{stroke:At},background:At,font:Et,header:{titleFont:wt,titleFontSize:bt,titleColor:xt,labelFont:Et,labelFontSize:yt,labelColor:Ot},axis:{ticks:false,grid:false,domain:false,labelColor:Ot,labelFontSize:mt,titleFont:wt,titleColor:xt,titleFontSize:bt,titleFontWeight:"normal"},axisQuantitative:{tickCount:3,grid:true,gridColor:It,gridDash:[1,5],labelFlush:false},axisBand:{tickExtra:true},axisX:{labelPadding:5},axisY:{labelPadding:10},bar:{fill:Nt},line:{stroke:Nt,strokeWidth:3,strokeCap:"round",strokeJoin:"round"},text:{font:Et,fontSize:mt,fill:Ot},arc:{fill:Nt},area:{fill:Nt,line:true,opacity:.6},path:{stroke:Nt},rect:{fill:Nt},point:{fill:Nt,filled:true,size:75},shape:{stroke:Nt},symbol:{fill:Nt,strokeWidth:1.5,size:50},legend:{titleFont:Et,titleFontWeight:"bold",titleColor:Ot,labelFont:Et,labelFontSize:yt,labelColor:Ot,symbolType:"circle",symbolSize:75},range:{category:[Nt,St,Lt,Tt,Rt,Dt,kt,Ct],diverging:Pt,heatmap:Pt,ordinal:_t}};const zt=Ie.version;var Bt=r(26372);var Gt="vega-tooltip";var Ut="0.30.1";var Vt="A tooltip plugin for Vega-Lite and Vega visualizations.";var Xt=["vega-lite","vega","tooltip"];var $t={type:"git",url:"https://github.com/vega/vega-tooltip.git"};var Wt={name:"UW Interactive Data Lab",url:"https://idl.cs.washington.edu"};var Ht=["Dominik Moritz","Sira Horradarn","Zening Qu","Kanit Wongsuphasawat","Yuri Astrakhan","Jeffrey Heer"];var Yt="BSD-3-Clause";var Jt={url:"https://github.com/vega/vega-tooltip/issues"};var qt="https://github.com/vega/vega-tooltip#readme";var Qt="build/vega-tooltip.js";var Zt="build/vega-tooltip.module.js";var Kt="build/vega-tooltip.min.js";var er="build/vega-tooltip.min.js";var tr="build/vega-tooltip.module.d.ts";var rr=["src","build","types"];var nr={prebuild:"yarn clean && yarn build:style",build:"rollup -c","build:style":"./build-style.sh",clean:"rimraf build && rimraf src/style.ts","copy:data":"rsync -r node_modules/vega-datasets/data/* examples/data","copy:build":"rsync -r build/* examples/build","deploy:gh":"yarn build && yarn copy:build && gh-pages -d examples && yarn clean",prepublishOnly:"yarn clean && yarn build",preversion:"yarn lint && yarn test",serve:"browser-sync start -s -f build examples --serveStatic examples",start:"yarn build && concurrently --kill-others -n Server,Rollup 'yarn serve' 'rollup -c -w'",pretest:"yarn build:style",test:"beemo jest","test:inspect":"node --inspect-brk ./node_modules/.bin/jest --runInBand",prepare:"beemo create-config && yarn copy:data",prettierbase:"beemo prettier '*.{css,scss,html}'",eslintbase:"beemo eslint .",format:"yarn eslintbase --fix && yarn prettierbase --write",lint:"yarn eslintbase && yarn prettierbase --check",release:"release-it"};var ir={"@release-it/conventional-changelog":"^5.1.1","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.0.1","release-it":"^15.6.0","browser-sync":"^2.27.11",concurrently:"^7.6.0","gh-pages":"^5.0.0","jest-environment-jsdom":"^29.4.2",path:"^0.12.7",rollup:"^3.15.0","rollup-plugin-bundle-size":"^1.0.3","@rollup/plugin-terser":"^0.4.0","rollup-plugin-ts":"^3.2.0",sass:"^1.58.0",typescript:"~4.9.5","vega-datasets":"^2.5.4","vega-lite-dev-config":"^0.21.0","vega-typings":"^0.22.3"};var ar={"vega-util":"^1.17.0"};var or={name:Gt,version:Ut,description:Vt,keywords:Xt,repository:$t,author:Wt,collaborators:Ht,license:Yt,bugs:Jt,homepage:qt,main:Qt,module:Zt,unpkg:Kt,jsdelivr:er,types:tr,files:rr,scripts:nr,devDependencies:ir,dependencies:ar};function sr(e,t){var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0)r[n]=e[n];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var i=0,n=Object.getOwnPropertySymbols(e);it((0,Bt.Kg)(e)?e:ur(e,r)))).join(", ")}]`}if((0,Bt.Gv)(e)){let n="";const i=e,{title:a,image:o}=i,s=sr(i,["title","image"]);if(a){n+=`

    ${t(a)}

    `}if(o){n+=``}const l=Object.keys(s);if(l.length>0){n+="";for(const e of l){let i=s[e];if(i===undefined){continue}if((0,Bt.Gv)(i)){i=ur(i,r)}n+=``}n+=`
    ${t(e)}:${t(i)}
    `}return n||"{}"}return t(e)}function cr(e){const t=[];return function(r,n){if(typeof n!=="object"||n===null){return n}const i=t.indexOf(this)+1;t.length=i;if(t.length>e){return"[Object]"}if(t.indexOf(n)>=0){return"[Circular]"}t.push(n);return n}}function ur(e,t){return JSON.stringify(e,cr(t))}var fr=`#vg-tooltip-element {\n visibility: hidden;\n padding: 8px;\n position: fixed;\n z-index: 1000;\n font-family: sans-serif;\n font-size: 11px;\n border-radius: 3px;\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n /* The default theme is the light theme. */\n background-color: rgba(255, 255, 255, 0.95);\n border: 1px solid #d9d9d9;\n color: black;\n}\n#vg-tooltip-element.visible {\n visibility: visible;\n}\n#vg-tooltip-element h2 {\n margin-top: 0;\n margin-bottom: 10px;\n font-size: 13px;\n}\n#vg-tooltip-element img {\n max-width: 200px;\n max-height: 200px;\n}\n#vg-tooltip-element table {\n border-spacing: 0;\n}\n#vg-tooltip-element table tr {\n border: none;\n}\n#vg-tooltip-element table tr td {\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n padding-bottom: 2px;\n}\n#vg-tooltip-element table tr td.key {\n color: #808080;\n max-width: 150px;\n text-align: right;\n padding-right: 4px;\n}\n#vg-tooltip-element table tr td.value {\n display: block;\n max-width: 300px;\n max-height: 7em;\n text-align: left;\n}\n#vg-tooltip-element.dark-theme {\n background-color: rgba(32, 32, 32, 0.9);\n border: 1px solid #f5f5f5;\n color: white;\n}\n#vg-tooltip-element.dark-theme td.key {\n color: #bfbfbf;\n}\n`;const hr="vg-tooltip-element";const pr={offsetX:10,offsetY:10,id:hr,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:false,sanitize:dr,maxDepth:2,formatTooltip:lr};function dr(e){return String(e).replace(/&/g,"&").replace(/window.innerWidth){i=+e.clientX-r-t.width}let a=e.clientY+n;if(a+t.height>window.innerHeight){a=+e.clientY-n-t.height}return{x:i,y:a}}class mr{constructor(e){this.options=Object.assign(Object.assign({},pr),e);const t=this.options.id;this.el=null;this.call=this.tooltipHandler.bind(this);if(!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){const e=document.createElement("style");e.setAttribute("id",this.options.styleId);e.innerHTML=vr(t);const r=document.head;if(r.childNodes.length>0){r.insertBefore(e,r.childNodes[0])}else{r.appendChild(e)}}}tooltipHandler(e,t,r,n){var i;this.el=document.getElementById(this.options.id);if(!this.el){this.el=document.createElement("div");this.el.setAttribute("id",this.options.id);this.el.classList.add("vg-tooltip");const e=(i=document.fullscreenElement)!==null&&i!==void 0?i:document.body;e.appendChild(this.el)}if(n==null||n===""){this.el.classList.remove("visible",`${this.options.theme}-theme`);return}this.el.innerHTML=this.options.formatTooltip(n,this.options.sanitize,this.options.maxDepth);this.el.classList.add("visible",`${this.options.theme}-theme`);const{x:a,y:o}=gr(t,this.el.getBoundingClientRect(),this.options.offsetX,this.options.offsetY);this.el.style.top=`${o}px`;this.el.style.left=`${a}px`}}const yr=or.version;function br(e,t){const r=new mr(t);e.tooltip(r.call).run();return r}var Er=r(65606);function wr(e){"@babel/helpers - typeof";return wr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wr(e)}function xr(e,t){if(wr(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==undefined){var n=r.call(e,t||"default");if(wr(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Or(e){var t=xr(e,"string");return wr(t)==="symbol"?t:String(t)}function Ar(e,t,r){t=Or(t);if(t in e){Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true})}else{e[t]=r}return e}function Ir(e,t,r,n,i,a,o){try{var s=e[a](o);var l=s.value}catch(c){r(c);return}if(s.done){t(l)}else{Promise.resolve(l).then(n,i)}}function Nr(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var a=e.apply(t,r);function o(e){Ir(a,n,i,o,s,"next",e)}function s(e){Ir(a,n,i,o,s,"throw",e)}o(undefined)}))}}var Sr=Object.prototype;var Lr=Sr.hasOwnProperty;var Tr;var Rr=typeof Symbol==="function"?Symbol:{};var Dr=Rr.iterator||"@@iterator";var kr=Rr.asyncIterator||"@@asyncIterator";var Cr=Rr.toStringTag||"@@toStringTag";function Fr(e,t,r,n){var i=t&&t.prototype instanceof Gr?t:Gr;var a=Object.create(i.prototype);var o=new an(n||[]);a._invoke=en(e,r,o);return a}function jr(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(n){return{type:"throw",arg:n}}}var Pr="suspendedStart";var _r="suspendedYield";var Mr="executing";var zr="completed";var Br={};function Gr(){}function Ur(){}function Vr(){}var Xr={};Xr[Dr]=function(){return this};var $r=Object.getPrototypeOf;var Wr=$r&&$r($r(sn([])));if(Wr&&Wr!==Sr&&Lr.call(Wr,Dr)){Xr=Wr}var Hr=Vr.prototype=Gr.prototype=Object.create(Xr);Ur.prototype=Hr.constructor=Vr;Vr.constructor=Ur;Vr[Cr]=Ur.displayName="GeneratorFunction";function Yr(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function Jr(e){var t=typeof e==="function"&&e.constructor;return t?t===Ur||(t.displayName||t.name)==="GeneratorFunction":false}function qr(e){if(Object.setPrototypeOf){Object.setPrototypeOf(e,Vr)}else{e.__proto__=Vr;if(!(Cr in e)){e[Cr]="GeneratorFunction"}}e.prototype=Object.create(Hr);return e}function Qr(e){return{__await:e}}function Zr(e,t){function r(n,i,a,o){var s=jr(e[n],e,i);if(s.type==="throw"){o(s.arg)}else{var l=s.arg;var c=l.value;if(c&&typeof c==="object"&&Lr.call(c,"__await")){return t.resolve(c.__await).then((function(e){r("next",e,a,o)}),(function(e){r("throw",e,a,o)}))}return t.resolve(c).then((function(e){l.value=e;a(l)}),(function(e){return r("throw",e,a,o)}))}}var n;function i(e,i){function a(){return new t((function(t,n){r(e,i,t,n)}))}return n=n?n.then(a,a):a()}this._invoke=i}Yr(Zr.prototype);Zr.prototype[kr]=function(){return this};function Kr(e,t,r,n,i){if(i===void 0)i=Promise;var a=new Zr(Fr(e,t,r,n),i);return Jr(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))}function en(e,t,r){var n=Pr;return function i(a,o){if(n===Mr){throw new Error("Generator is already running")}if(n===zr){if(a==="throw"){throw o}return ln()}r.method=a;r.arg=o;while(true){var s=r.delegate;if(s){var l=tn(s,r);if(l){if(l===Br)continue;return l}}if(r.method==="next"){r.sent=r._sent=r.arg}else if(r.method==="throw"){if(n===Pr){n=zr;throw r.arg}r.dispatchException(r.arg)}else if(r.method==="return"){r.abrupt("return",r.arg)}n=Mr;var c=jr(e,t,r);if(c.type==="normal"){n=r.done?zr:_r;if(c.arg===Br){continue}return{value:c.arg,done:r.done}}else if(c.type==="throw"){n=zr;r.method="throw";r.arg=c.arg}}}}function tn(e,t){var r=e.iterator[t.method];if(r===Tr){t.delegate=null;if(t.method==="throw"){if(e.iterator["return"]){t.method="return";t.arg=Tr;tn(e,t);if(t.method==="throw"){return Br}}t.method="throw";t.arg=new TypeError("The iterator does not provide a 'throw' method")}return Br}var n=jr(r,e.iterator,t.arg);if(n.type==="throw"){t.method="throw";t.arg=n.arg;t.delegate=null;return Br}var i=n.arg;if(!i){t.method="throw";t.arg=new TypeError("iterator result is not an object");t.delegate=null;return Br}if(i.done){t[e.resultName]=i.value;t.next=e.nextLoc;if(t.method!=="return"){t.method="next";t.arg=Tr}}else{return i}t.delegate=null;return Br}Yr(Hr);Hr[Cr]="Generator";Hr[Dr]=function(){return this};Hr.toString=function(){return"[object Generator]"};function rn(e){var t={tryLoc:e[0]};if(1 in e){t.catchLoc=e[1]}if(2 in e){t.finallyLoc=e[2];t.afterLoc=e[3]}this.tryEntries.push(t)}function nn(e){var t=e.completion||{};t.type="normal";delete t.arg;e.completion=t}function an(e){this.tryEntries=[{tryLoc:"root"}];e.forEach(rn,this);this.reset(true)}function on(e){var t=[];for(var r in e){t.push(r)}t.reverse();return function r(){while(t.length){var n=t.pop();if(n in e){r.value=n;r.done=false;return r}}r.done=true;return r}}function sn(e){if(e){var t=e[Dr];if(t){return t.call(e)}if(typeof e.next==="function"){return e}if(!isNaN(e.length)){var r=-1,n=function t(){while(++r=0;--i){var a=this.tryEntries[i];var o=a.completion;if(a.tryLoc==="root"){return n("end")}if(a.tryLoc<=this.prev){var s=Lr.call(a,"catchLoc");var l=Lr.call(a,"finallyLoc");if(s&&l){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&Lr.call(i,"finallyLoc")&&this.prev=0;--r){var n=this.tryEntries[r];if(n.finallyLoc===t){this.complete(n.completion,n.afterLoc);nn(n);return Br}}},catch:function e(t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc===t){var i=n.completion;if(i.type==="throw"){var a=i.arg;nn(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function e(t,r,n){this.delegate={iterator:sn(t),resultName:r,nextLoc:n};if(this.method==="next"){this.arg=Tr}return Br}};var cn={wrap:Fr,isGeneratorFunction:Jr,AsyncIterator:Zr,mark:qr,awrap:Qr,async:Kr,keys:on,values:sn};var un;var fn;function hn(){if(fn)return un;fn=1;un=function e(t){t.prototype[Symbol.iterator]=cn.mark((function e(){var t;return cn.wrap((function e(r){while(1)switch(r.prev=r.next){case 0:t=this.head;case 1:if(!t){r.next=7;break}r.next=4;return t.value;case 4:t=t.next;r.next=1;break;case 7:case"end":return r.stop()}}),e,this)}))};return un}var pn=dn;dn.Node=yn;dn.create=dn;function dn(e){var t=this;if(!(t instanceof dn)){t=new dn}t.tail=null;t.head=null;t.length=0;if(e&&typeof e.forEach==="function"){e.forEach((function(e){t.push(e)}))}else if(arguments.length>0){for(var r=0,n=arguments.length;r1){r=t}else if(this.head){n=this.head.next;r=this.head.value}else{throw new TypeError("Reduce of empty list with no initial value")}for(var i=0;n!==null;i++){r=e(r,n.value,i);n=n.next}return r};dn.prototype.reduceReverse=function(e,t){var r;var n=this.tail;if(arguments.length>1){r=t}else if(this.tail){n=this.tail.prev;r=this.tail.value}else{throw new TypeError("Reduce of empty list with no initial value")}for(var i=this.length-1;n!==null;i--){r=e(r,n.value,i);n=n.prev}return r};dn.prototype.toArray=function(){var e=new Array(this.length);for(var t=0,r=this.head;r!==null;t++){e[t]=r.value;r=r.next}return e};dn.prototype.toArrayReverse=function(){var e=new Array(this.length);for(var t=0,r=this.tail;r!==null;t++){e[t]=r.value;r=r.prev}return e};dn.prototype.slice=function(e,t){t=t||this.length;if(t<0){t+=this.length}e=e||0;if(e<0){e+=this.length}var r=new dn;if(tthis.length){t=this.length}for(var n=0,i=this.head;i!==null&&nthis.length){t=this.length}for(var n=this.length,i=this.tail;i!==null&&n>t;n--){i=i.prev}for(;i!==null&&n>e;n--,i=i.prev){r.push(i.value)}return r};dn.prototype.splice=function(e,t){if(e>this.length){e=this.length-1}if(e<0){e=this.length+e}for(var r=0,n=this.head;n!==null&&r1;class Dn{constructor(e){if(typeof e==="number")e={max:e};if(!e)e={};if(e.max&&(typeof e.max!=="number"||e.max<0))throw new TypeError("max must be a non-negative number");this[En]=e.max||Infinity;var t=e.length||Rn;this[xn]=typeof t!=="function"?Rn:t;this[On]=e.stale||false;if(e.maxAge&&typeof e.maxAge!=="number")throw new TypeError("maxAge must be a number");this[An]=e.maxAge||0;this[In]=e.dispose;this[Nn]=e.noDisposeOnSet||false;this[Tn]=e.updateAgeOnGet||false;this.reset()}set max(e){if(typeof e!=="number"||e<0)throw new TypeError("max must be a non-negative number");this[En]=e||Infinity;Fn(this)}get max(){return this[En]}set allowStale(e){this[On]=!!e}get allowStale(){return this[On]}set maxAge(e){if(typeof e!=="number")throw new TypeError("maxAge must be a non-negative number");this[An]=e;Fn(this)}get maxAge(){return this[An]}set lengthCalculator(e){if(typeof e!=="function")e=Rn;if(e!==this[xn]){this[xn]=e;this[wn]=0;this[Sn].forEach((e=>{e.length=this[xn](e.value,e.key);this[wn]+=e.length}))}Fn(this)}get lengthCalculator(){return this[xn]}get length(){return this[wn]}get itemCount(){return this[Sn].length}rforEach(e,t){t=t||this;for(var r=this[Sn].tail;r!==null;){var n=r.prev;_n(this,e,r,t);r=n}}forEach(e,t){t=t||this;for(var r=this[Sn].head;r!==null;){var n=r.next;_n(this,e,r,t);r=n}}keys(){return this[Sn].toArray().map((e=>e.key))}values(){return this[Sn].toArray().map((e=>e.value))}reset(){if(this[In]&&this[Sn]&&this[Sn].length){this[Sn].forEach((e=>this[In](e.key,e.value)))}this[Ln]=new Map;this[Sn]=new bn;this[wn]=0}dump(){return this[Sn].map((e=>Cn(this,e)?false:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[Sn]}set(e,t,r){r=r||this[An];if(r&&typeof r!=="number")throw new TypeError("maxAge must be a number");var n=r?Date.now():0;var i=this[xn](t,e);if(this[Ln].has(e)){if(i>this[En]){jn(this,this[Ln].get(e));return false}var a=this[Ln].get(e);var o=a.value;if(this[In]){if(!this[Nn])this[In](e,o.value)}o.now=n;o.maxAge=r;o.value=t;this[wn]+=i-o.length;o.length=i;this.get(e);Fn(this);return true}var s=new Pn(e,t,i,n,r);if(s.length>this[En]){if(this[In])this[In](e,t);return false}this[wn]+=s.length;this[Sn].unshift(s);this[Ln].set(e,this[Sn].head);Fn(this);return true}has(e){if(!this[Ln].has(e))return false;var t=this[Ln].get(e).value;return!Cn(this,t)}get(e){return kn(this,e,true)}peek(e){return kn(this,e,false)}pop(){var e=this[Sn].tail;if(!e)return null;jn(this,e);return e.value}del(e){jn(this,this[Ln].get(e))}load(e){this.reset();var t=Date.now();for(var r=e.length-1;r>=0;r--){var n=e[r];var i=n.e||0;if(i===0)this.set(n.k,n.v);else{var a=i-t;if(a>0){this.set(n.k,n.v,a)}}}}prune(){this[Ln].forEach(((e,t)=>kn(this,t,false)))}}var kn=(e,t,r)=>{var n=e[Ln].get(t);if(n){var i=n.value;if(Cn(e,i)){jn(e,n);if(!e[On])return undefined}else{if(r){if(e[Tn])n.value.now=Date.now();e[Sn].unshiftNode(n)}}return i.value}};var Cn=(e,t)=>{if(!t||!t.maxAge&&!e[An])return false;var r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[An]&&r>e[An]};var Fn=e=>{if(e[wn]>e[En]){for(var t=e[Sn].tail;e[wn]>e[En]&&t!==null;){var r=t.prev;jn(e,t);t=r}}};var jn=(e,t)=>{if(t){var r=t.value;if(e[In])e[In](r.key,r.value);e[wn]-=r.length;e[Ln].delete(r.key);e[Sn].removeNode(t)}};class Pn{constructor(e,t,r,n,i){this.key=e;this.value=t;this.length=r;this.now=n;this.maxAge=i||0}}var _n=(e,t,r,n)=>{var i=r.value;if(Cn(e,i)){jn(e,r);if(!e[On])i=undefined}if(i)t.call(n,i.value,i.key,e)};var Mn=Dn;var zn=["includePrerelease","loose","rtl"];var Bn=e=>!e?{}:typeof e!=="object"?{loose:true}:zn.filter((t=>e[t])).reduce(((e,t)=>{e[t]=true;return e}),{});var Gn=Bn;var Un={};var Vn={get exports(){return Un},set exports(e){Un=e}};var Xn="2.0.0";var $n=256;var Wn=Number.MAX_SAFE_INTEGER||9007199254740991;var Hn=16;var Yn={SEMVER_SPEC_VERSION:Xn,MAX_LENGTH:$n,MAX_SAFE_INTEGER:Wn,MAX_SAFE_COMPONENT_LENGTH:Hn};var Jn=typeof Er==="object"&&Er.env&&Er.env.NODE_DEBUG&&/\bsemver\b/i.test(Er.env.NODE_DEBUG)?function(){for(var e=arguments.length,t=new Array(e),r=0;r{};var qn=Jn;(function(e,t){var r=Yn.MAX_SAFE_COMPONENT_LENGTH;var n=qn;t=e.exports={};var i=t.re=[];var a=t.src=[];var o=t.t={};var s=0;var l=(e,t,r)=>{var l=s++;n(e,l,t);o[e]=l;a[l]=t;i[l]=new RegExp(t,r?"g":undefined)};l("NUMERICIDENTIFIER","0|[1-9]\\d*");l("NUMERICIDENTIFIERLOOSE","[0-9]+");l("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");l("MAINVERSION","(".concat(a[o.NUMERICIDENTIFIER],")\\.")+"(".concat(a[o.NUMERICIDENTIFIER],")\\.")+"(".concat(a[o.NUMERICIDENTIFIER],")"));l("MAINVERSIONLOOSE","(".concat(a[o.NUMERICIDENTIFIERLOOSE],")\\.")+"(".concat(a[o.NUMERICIDENTIFIERLOOSE],")\\.")+"(".concat(a[o.NUMERICIDENTIFIERLOOSE],")"));l("PRERELEASEIDENTIFIER","(?:".concat(a[o.NUMERICIDENTIFIER],"|").concat(a[o.NONNUMERICIDENTIFIER],")"));l("PRERELEASEIDENTIFIERLOOSE","(?:".concat(a[o.NUMERICIDENTIFIERLOOSE],"|").concat(a[o.NONNUMERICIDENTIFIER],")"));l("PRERELEASE","(?:-(".concat(a[o.PRERELEASEIDENTIFIER],"(?:\\.").concat(a[o.PRERELEASEIDENTIFIER],")*))"));l("PRERELEASELOOSE","(?:-?(".concat(a[o.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(a[o.PRERELEASEIDENTIFIERLOOSE],")*))"));l("BUILDIDENTIFIER","[0-9A-Za-z-]+");l("BUILD","(?:\\+(".concat(a[o.BUILDIDENTIFIER],"(?:\\.").concat(a[o.BUILDIDENTIFIER],")*))"));l("FULLPLAIN","v?".concat(a[o.MAINVERSION]).concat(a[o.PRERELEASE],"?").concat(a[o.BUILD],"?"));l("FULL","^".concat(a[o.FULLPLAIN],"$"));l("LOOSEPLAIN","[v=\\s]*".concat(a[o.MAINVERSIONLOOSE]).concat(a[o.PRERELEASELOOSE],"?").concat(a[o.BUILD],"?"));l("LOOSE","^".concat(a[o.LOOSEPLAIN],"$"));l("GTLT","((?:<|>)?=?)");l("XRANGEIDENTIFIERLOOSE","".concat(a[o.NUMERICIDENTIFIERLOOSE],"|x|X|\\*"));l("XRANGEIDENTIFIER","".concat(a[o.NUMERICIDENTIFIER],"|x|X|\\*"));l("XRANGEPLAIN","[v=\\s]*(".concat(a[o.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(a[o.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(a[o.XRANGEIDENTIFIER],")")+"(?:".concat(a[o.PRERELEASE],")?").concat(a[o.BUILD],"?")+")?)?");l("XRANGEPLAINLOOSE","[v=\\s]*(".concat(a[o.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(a[o.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(a[o.XRANGEIDENTIFIERLOOSE],")")+"(?:".concat(a[o.PRERELEASELOOSE],")?").concat(a[o.BUILD],"?")+")?)?");l("XRANGE","^".concat(a[o.GTLT],"\\s*").concat(a[o.XRANGEPLAIN],"$"));l("XRANGELOOSE","^".concat(a[o.GTLT],"\\s*").concat(a[o.XRANGEPLAINLOOSE],"$"));l("COERCE","".concat("(^|[^\\d])"+"(\\d{1,").concat(r,"})")+"(?:\\.(\\d{1,".concat(r,"}))?")+"(?:\\.(\\d{1,".concat(r,"}))?")+"(?:$|[^\\d])");l("COERCERTL",a[o.COERCE],true);l("LONETILDE","(?:~>?)");l("TILDETRIM","(\\s*)".concat(a[o.LONETILDE],"\\s+"),true);t.tildeTrimReplace="$1~";l("TILDE","^".concat(a[o.LONETILDE]).concat(a[o.XRANGEPLAIN],"$"));l("TILDELOOSE","^".concat(a[o.LONETILDE]).concat(a[o.XRANGEPLAINLOOSE],"$"));l("LONECARET","(?:\\^)");l("CARETTRIM","(\\s*)".concat(a[o.LONECARET],"\\s+"),true);t.caretTrimReplace="$1^";l("CARET","^".concat(a[o.LONECARET]).concat(a[o.XRANGEPLAIN],"$"));l("CARETLOOSE","^".concat(a[o.LONECARET]).concat(a[o.XRANGEPLAINLOOSE],"$"));l("COMPARATORLOOSE","^".concat(a[o.GTLT],"\\s*(").concat(a[o.LOOSEPLAIN],")$|^$"));l("COMPARATOR","^".concat(a[o.GTLT],"\\s*(").concat(a[o.FULLPLAIN],")$|^$"));l("COMPARATORTRIM","(\\s*)".concat(a[o.GTLT],"\\s*(").concat(a[o.LOOSEPLAIN],"|").concat(a[o.XRANGEPLAIN],")"),true);t.comparatorTrimReplace="$1$2$3";l("HYPHENRANGE","^\\s*(".concat(a[o.XRANGEPLAIN],")")+"\\s+-\\s+"+"(".concat(a[o.XRANGEPLAIN],")")+"\\s*$");l("HYPHENRANGELOOSE","^\\s*(".concat(a[o.XRANGEPLAINLOOSE],")")+"\\s+-\\s+"+"(".concat(a[o.XRANGEPLAINLOOSE],")")+"\\s*$");l("STAR","(<|>)?=?\\s*\\*");l("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");l("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Vn,Un);var Qn=/^[0-9]+$/;var Zn=(e,t)=>{var r=Qn.test(e);var n=Qn.test(t);if(r&&n){e=+e;t=+t}return e===t?0:r&&!n?-1:n&&!r?1:eZn(t,e);var ei={compareIdentifiers:Zn,rcompareIdentifiers:Kn};var ti=qn;var ri=Yn.MAX_LENGTH,ni=Yn.MAX_SAFE_INTEGER;var ii=Un.re,ai=Un.t;var oi=Gn;var si=ei.compareIdentifiers;let li=class e{constructor(t,r){r=oi(r);if(t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease){return t}else{t=t.version}}else if(typeof t!=="string"){throw new TypeError("Invalid Version: ".concat(t))}if(t.length>ri){throw new TypeError("version is longer than ".concat(ri," characters"))}ti("SemVer",t,r);this.options=r;this.loose=!!r.loose;this.includePrerelease=!!r.includePrerelease;var n=t.trim().match(r.loose?ii[ai.LOOSE]:ii[ai.FULL]);if(!n){throw new TypeError("Invalid Version: ".concat(t))}this.raw=t;this.major=+n[1];this.minor=+n[2];this.patch=+n[3];if(this.major>ni||this.major<0){throw new TypeError("Invalid major version")}if(this.minor>ni||this.minor<0){throw new TypeError("Invalid minor version")}if(this.patch>ni||this.patch<0){throw new TypeError("Invalid patch version")}if(!n[4]){this.prerelease=[]}else{this.prerelease=n[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t=0){if(typeof this.prerelease[r]==="number"){this.prerelease[r]++;r=-2}}if(r===-1){this.prerelease.push(0)}}if(t){if(si(this.prerelease[0],t)===0){if(isNaN(this.prerelease[1])){this.prerelease=[t,0]}}else{this.prerelease=[t,0]}}break;default:throw new Error("invalid increment argument: ".concat(e))}this.format();this.raw=this.version;return this}};var ci=li;var ui=ci;var fi=(e,t,r)=>new ui(e,r).compare(new ui(t,r));var hi=fi;var pi=hi;var di=(e,t,r)=>pi(e,t,r)===0;var vi=di;var gi=hi;var mi=(e,t,r)=>gi(e,t,r)!==0;var yi=mi;var bi=hi;var Ei=(e,t,r)=>bi(e,t,r)>0;var wi=Ei;var xi=hi;var Oi=(e,t,r)=>xi(e,t,r)>=0;var Ai=Oi;var Ii=hi;var Ni=(e,t,r)=>Ii(e,t,r)<0;var Si=Ni;var Li=hi;var Ti=(e,t,r)=>Li(e,t,r)<=0;var Ri=Ti;var Di=vi;var ki=yi;var Ci=wi;var Fi=Ai;var ji=Si;var Pi=Ri;var _i=(e,t,r,n)=>{switch(t){case"===":if(typeof e==="object"){e=e.version}if(typeof r==="object"){r=r.version}return e===r;case"!==":if(typeof e==="object"){e=e.version}if(typeof r==="object"){r=r.version}return e!==r;case"":case"=":case"==":return Di(e,r,n);case"!=":return ki(e,r,n);case">":return Ci(e,r,n);case">=":return Fi(e,r,n);case"<":return ji(e,r,n);case"<=":return Pi(e,r,n);default:throw new TypeError("Invalid operator: ".concat(t))}};var Mi=_i;var zi;var Bi;function Gi(){if(Bi)return zi;Bi=1;var e=Symbol("SemVer ANY");class t{static get ANY(){return e}constructor(n,i){i=r(i);if(n instanceof t){if(n.loose===!!i.loose){return n}else{n=n.value}}o("comparator",n,i);this.options=i;this.loose=!!i.loose;this.parse(n);if(this.semver===e){this.value=""}else{this.value=this.operator+this.semver.version}o("comp",this)}parse(t){var r=this.options.loose?n[i.COMPARATORLOOSE]:n[i.COMPARATOR];var a=t.match(r);if(!a){throw new TypeError("Invalid comparator: ".concat(t))}this.operator=a[1]!==undefined?a[1]:"";if(this.operator==="="){this.operator=""}if(!a[2]){this.semver=e}else{this.semver=new s(a[2],this.options.loose)}}toString(){return this.value}test(t){o("Comparator.test",t,this.options.loose);if(this.semver===e||t===e){return true}if(typeof t==="string"){try{t=new s(t,this.options)}catch(Ka){return false}}return a(t,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t)){throw new TypeError("a Comparator is required")}if(!r||typeof r!=="object"){r={loose:!!r,includePrerelease:false}}if(this.operator===""){if(this.value===""){return true}return new l(e.value,r).test(this.value)}else if(e.operator===""){if(e.value===""){return true}return new l(this.value,r).test(e.semver)}var n=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">");var i=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<");var o=this.semver.version===e.semver.version;var s=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<=");var c=a(this.semver,"<",e.semver,r)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<");var u=a(this.semver,">",e.semver,r)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return n||i||o&&s||c||u}}zi=t;var r=Gn;var n=Un.re,i=Un.t;var a=Mi;var o=qn;var s=ci;var l=Hi();return zi}function Ui(e,t){var r=typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Vi(e))||t&&e&&typeof e.length==="number"){if(r)e=r;var n=0;var i=function e(){};return{s:i,n:function t(){if(n>=e.length)return{done:true};return{done:false,value:e[n++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a=true,o=false,s;return{s:function t(){r=r.call(e)},n:function e(){var t=r.next();a=t.done;return t},e:function e(t){o=true;s=t},f:function e(){try{if(!a&&r.return!=null)r.return()}finally{if(o)throw s}}}}function Vi(e,t){if(!e)return;if(typeof e==="string")return Xi(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor)r=e.constructor.name;if(r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Xi(e,t)}function Xi(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);rthis.parseRange(e.trim()))).filter((e=>e.length));if(!this.set.length){throw new TypeError("Invalid SemVer Range: ".concat(t))}if(this.set.length>1){var a=this.set[0];this.set=this.set.filter((e=>!h(e[0])));if(this.set.length===0){this.set=[a]}else if(this.set.length>1){var o=Ui(this.set),s;try{for(o.s();!(s=o.n()).done;){var l=s.value;if(l.length===1&&p(l[0])){this.set=[l];break}}}catch(c){o.e(c)}finally{o.f()}}}this.format()}format(){this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim();return this.range}toString(){return this.range}parseRange(e){e=e.trim();var t=Object.keys(this.options).join(",");var n="parseRange:".concat(t,":").concat(e);var o=r.get(n);if(o){return o}var p=this.options.loose;var d=p?s[l.HYPHENRANGELOOSE]:s[l.HYPHENRANGE];e=e.replace(d,I(this.options.includePrerelease));a("hyphen replace",e);e=e.replace(s[l.COMPARATORTRIM],c);a("comparator trim",e);e=e.replace(s[l.TILDETRIM],u);e=e.replace(s[l.CARETTRIM],f);e=e.split(/\s+/).join(" ");var g=e.split(" ").map((e=>v(e,this.options))).join(" ").split(/\s+/).map((e=>A(e,this.options)));if(p){g=g.filter((e=>{a("loose invalid filter",e,this.options);return!!e.match(s[l.COMPARATORLOOSE])}))}a("range list",g);var m=new Map;var y=g.map((e=>new i(e,this.options)));var b=Ui(y),E;try{for(b.s();!(E=b.n()).done;){var w=E.value;if(h(w)){return[w]}m.set(w.value,w)}}catch(O){b.e(O)}finally{b.f()}if(m.size>1&&m.has("")){m.delete("")}var x=[...m.values()];r.set(n,x);return x}intersects(t,r){if(!(t instanceof e)){throw new TypeError("a Range is required")}return this.set.some((e=>d(e,r)&&t.set.some((t=>d(t,r)&&e.every((e=>t.every((t=>e.intersects(t,r)))))))))}test(e){if(!e){return false}if(typeof e==="string"){try{e=new o(e,this.options)}catch(Ka){return false}}for(var t=0;te.value==="<0.0.0-0";var p=e=>e.value==="";var d=(e,t)=>{var r=true;var n=e.slice();var i=n.pop();while(r&&n.length){r=n.every((e=>i.intersects(e,t)));i=n.pop()}return r};var v=(e,t)=>{a("comp",e,t);e=b(e,t);a("caret",e);e=m(e,t);a("tildes",e);e=w(e,t);a("xrange",e);e=O(e,t);a("stars",e);return e};var g=e=>!e||e.toLowerCase()==="x"||e==="*";var m=(e,t)=>e.trim().split(/\s+/).map((e=>y(e,t))).join(" ");var y=(e,t)=>{var r=t.loose?s[l.TILDELOOSE]:s[l.TILDE];return e.replace(r,((t,r,n,i,o)=>{a("tilde",e,t,r,n,i,o);var s;if(g(r)){s=""}else if(g(n)){s=">=".concat(r,".0.0 <").concat(+r+1,".0.0-0")}else if(g(i)){s=">=".concat(r,".").concat(n,".0 <").concat(r,".").concat(+n+1,".0-0")}else if(o){a("replaceTilde pr",o);s=">=".concat(r,".").concat(n,".").concat(i,"-").concat(o," <").concat(r,".").concat(+n+1,".0-0")}else{s=">=".concat(r,".").concat(n,".").concat(i," <").concat(r,".").concat(+n+1,".0-0")}a("tilde return",s);return s}))};var b=(e,t)=>e.trim().split(/\s+/).map((e=>E(e,t))).join(" ");var E=(e,t)=>{a("caret",e,t);var r=t.loose?s[l.CARETLOOSE]:s[l.CARET];var n=t.includePrerelease?"-0":"";return e.replace(r,((t,r,i,o,s)=>{a("caret",e,t,r,i,o,s);var l;if(g(r)){l=""}else if(g(i)){l=">=".concat(r,".0.0").concat(n," <").concat(+r+1,".0.0-0")}else if(g(o)){if(r==="0"){l=">=".concat(r,".").concat(i,".0").concat(n," <").concat(r,".").concat(+i+1,".0-0")}else{l=">=".concat(r,".").concat(i,".0").concat(n," <").concat(+r+1,".0.0-0")}}else if(s){a("replaceCaret pr",s);if(r==="0"){if(i==="0"){l=">=".concat(r,".").concat(i,".").concat(o,"-").concat(s," <").concat(r,".").concat(i,".").concat(+o+1,"-0")}else{l=">=".concat(r,".").concat(i,".").concat(o,"-").concat(s," <").concat(r,".").concat(+i+1,".0-0")}}else{l=">=".concat(r,".").concat(i,".").concat(o,"-").concat(s," <").concat(+r+1,".0.0-0")}}else{a("no pr");if(r==="0"){if(i==="0"){l=">=".concat(r,".").concat(i,".").concat(o).concat(n," <").concat(r,".").concat(i,".").concat(+o+1,"-0")}else{l=">=".concat(r,".").concat(i,".").concat(o).concat(n," <").concat(r,".").concat(+i+1,".0-0")}}else{l=">=".concat(r,".").concat(i,".").concat(o," <").concat(+r+1,".0.0-0")}}a("caret return",l);return l}))};var w=(e,t)=>{a("replaceXRanges",e,t);return e.split(/\s+/).map((e=>x(e,t))).join(" ")};var x=(e,t)=>{e=e.trim();var r=t.loose?s[l.XRANGELOOSE]:s[l.XRANGE];return e.replace(r,((r,n,i,o,s,l)=>{a("xRange",e,r,n,i,o,s,l);var c=g(i);var u=c||g(o);var f=u||g(s);var h=f;if(n==="="&&h){n=""}l=t.includePrerelease?"-0":"";if(c){if(n===">"||n==="<"){r="<0.0.0-0"}else{r="*"}}else if(n&&h){if(u){o=0}s=0;if(n===">"){n=">=";if(u){i=+i+1;o=0;s=0}else{o=+o+1;s=0}}else if(n==="<="){n="<";if(u){i=+i+1}else{o=+o+1}}if(n==="<"){l="-0"}r="".concat(n+i,".").concat(o,".").concat(s).concat(l)}else if(u){r=">=".concat(i,".0.0").concat(l," <").concat(+i+1,".0.0-0")}else if(f){r=">=".concat(i,".").concat(o,".0").concat(l," <").concat(i,".").concat(+o+1,".0-0")}a("xRange return",r);return r}))};var O=(e,t)=>{a("replaceStars",e,t);return e.trim().replace(s[l.STAR],"")};var A=(e,t)=>{a("replaceGTE0",e,t);return e.trim().replace(s[t.includePrerelease?l.GTE0PRE:l.GTE0],"")};var I=e=>(t,r,n,i,a,o,s,l,c,u,f,h,p)=>{if(g(n)){r=""}else if(g(i)){r=">=".concat(n,".0.0").concat(e?"-0":"")}else if(g(a)){r=">=".concat(n,".").concat(i,".0").concat(e?"-0":"")}else if(o){r=">=".concat(r)}else{r=">=".concat(r).concat(e?"-0":"")}if(g(c)){l=""}else if(g(u)){l="<".concat(+c+1,".0.0-0")}else if(g(f)){l="<".concat(c,".").concat(+u+1,".0-0")}else if(h){l="<=".concat(c,".").concat(u,".").concat(f,"-").concat(h)}else if(e){l="<".concat(c,".").concat(u,".").concat(+f+1,"-0")}else{l="<=".concat(l)}return"".concat(r," ").concat(l).trim()};var N=(e,t,r)=>{for(var n=0;n0){var s=e[o].semver;if(s.major===t.major&&s.minor===t.minor&&s.patch===t.patch){return true}}}return false}return true};return $i}var Yi=Hi();var Ji=(e,t,r)=>{try{t=new Yi(t,r)}catch(Ka){return false}return t.test(e)};var qi=Ji;function Qi(e,t,r){var n=e.open(t);var i=1e4;var a=250;var o=new URL(t),s=o.origin;var l=~~(i/a);function c(t){if(t.source===n){l=0;e.removeEventListener("message",c,false)}}e.addEventListener("message",c,false);function u(){if(l<=0){return}n.postMessage(r,s);setTimeout(u,a);l-=1}setTimeout(u,a)}var Zi='.vega-embed {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n}\n.vega-embed.has-actions {\n padding-right: 38px;\n}\n.vega-embed details:not([open]) > :not(summary) {\n display: none !important;\n}\n.vega-embed summary {\n list-style: none;\n position: absolute;\n top: 0;\n right: 0;\n padding: 6px;\n z-index: 1000;\n background: white;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n color: #1b1e23;\n border: 1px solid #aaa;\n border-radius: 999px;\n opacity: 0.2;\n transition: opacity 0.4s ease-in;\n cursor: pointer;\n line-height: 0px;\n}\n.vega-embed summary::-webkit-details-marker {\n display: none;\n}\n.vega-embed summary:active {\n box-shadow: #aaa 0px 0px 0px 1px inset;\n}\n.vega-embed summary svg {\n width: 14px;\n height: 14px;\n}\n.vega-embed details[open] summary {\n opacity: 0.7;\n}\n.vega-embed:hover summary, .vega-embed:focus-within summary {\n opacity: 1 !important;\n transition: opacity 0.2s ease;\n}\n.vega-embed .vega-actions {\n position: absolute;\n z-index: 1001;\n top: 35px;\n right: -9px;\n display: flex;\n flex-direction: column;\n padding-bottom: 8px;\n padding-top: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n border: 1px solid #d9d9d9;\n background: white;\n animation-duration: 0.15s;\n animation-name: scale-in;\n animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n text-align: left;\n}\n.vega-embed .vega-actions a {\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n color: #434a56;\n text-decoration: none;\n}\n.vega-embed .vega-actions a:hover, .vega-embed .vega-actions a:focus {\n background-color: #f7f7f9;\n color: black;\n}\n.vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n content: "";\n display: inline-block;\n position: absolute;\n}\n.vega-embed .vega-actions::before {\n left: auto;\n right: 14px;\n top: -16px;\n border: 8px solid rgba(0, 0, 0, 0);\n border-bottom-color: #d9d9d9;\n}\n.vega-embed .vega-actions::after {\n left: auto;\n right: 15px;\n top: -14px;\n border: 7px solid rgba(0, 0, 0, 0);\n border-bottom-color: #fff;\n}\n.vega-embed .chart-wrapper.fit-x {\n width: 100%;\n}\n.vega-embed .chart-wrapper.fit-y {\n height: 100%;\n}\n\n.vega-embed-wrapper {\n max-width: 100%;\n overflow: auto;\n padding-right: 14px;\n}\n\n@keyframes scale-in {\n from {\n opacity: 0;\n transform: scale(0.6);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n';if(!String.prototype.startsWith){String.prototype.startsWith=function(e,t){return this.substr(!t||t<0?0:+t,e.length)===e}}function Ki(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=e.length)return{done:true};return{done:false,value:e[n++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a=true,o=false,s;return{s:function t(){r=r.call(e)},n:function e(){var t=r.next();a=t.done;return t},e:function e(t){o=true;s=t},f:function e(){try{if(!a&&r.return!=null)r.return()}finally{if(o)throw s}}}}function Ia(e,t){if(!e)return;if(typeof e==="string")return Na(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor)r=e.constructor.name;if(r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Na(e,t)}function Na(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);re,"vega-lite":(e,t)=>Da.compile(e,{config:t}).spec};var Ma='\n\n \n \n \n';var za="chart-wrapper";function Ba(e){return typeof e==="function"}function Ga(e,t,r,n){var i="".concat(t,'
    ');var a="
    ".concat(r,"");var o=window.open("");o.document.write(i+e+a);o.document.title="".concat(ja[n]," JSON Source")}function Ua(e,t){if(e.$schema){var r=oe(e.$schema);if(t&&t!==r.library){var n;console.warn("The given visualization spec is written in ".concat(ja[r.library],", but mode argument sets ").concat((n=ja[t])!==null&&n!==void 0?n:t,"."))}var i=r.library;if(!qi(Pa[i],"^".concat(r.version.slice(1)))){console.warn("The input spec uses ".concat(ja[i]," ").concat(r.version,", but the current version of ").concat(ja[i]," is v").concat(Pa[i],"."))}return i}if("mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e){return"vega-lite"}if("marks"in e||"signals"in e||"scales"in e||"axes"in e){return"vega"}return t!==null&&t!==void 0?t:"vega"}function Va(e){return!!(e&&"load"in e)}function Xa(e){return Va(e)?e:Ra.loader(e)}function $a(e){var t,r;var n=(t=(r=e.usermeta)===null||r===void 0?void 0:r.embedOptions)!==null&&t!==void 0?t:{};if((0,X.isString)(n.defaultStyle)){n.defaultStyle=false}return n}function Wa(e,t){return Ha.apply(this,arguments)}function Ha(){Ha=Nr(cn.mark((function e(t,r){var n,i;var a,o,s,l,c,u,f,h,p,d=arguments;return cn.wrap((function e(v){while(1)switch(v.prev=v.next){case 0:a=d.length>2&&d[2]!==undefined?d[2]:{};if(!(0,X.isString)(r)){v.next=10;break}s=Xa(a.loader);v.t0=JSON;v.next=6;return s.load(r);case 6:v.t1=v.sent;o=v.t0.parse.call(v.t0,v.t1);v.next=11;break;case 10:o=r;case 11:l=$a(o);c=l.loader;if(!s||c){s=Xa((u=a.loader)!==null&&u!==void 0?u:c)}v.next=16;return Ya(l,s);case 16:f=v.sent;v.next=19;return Ya(a,s);case 19:h=v.sent;p=La(La({},Ki(h,f)),{},{config:(0,X.mergeConfig)((n=h.config)!==null&&n!==void 0?n:{},(i=f.config)!==null&&i!==void 0?i:{})});v.next=23;return Qa(t,o,p,s);case 23:return v.abrupt("return",v.sent);case 24:case"end":return v.stop()}}),e)})));return Ha.apply(this,arguments)}function Ya(e,t){return Ja.apply(this,arguments)}function Ja(){Ja=Nr(cn.mark((function e(t,r){var n;var i,a;return cn.wrap((function e(o){while(1)switch(o.prev=o.next){case 0:if(!(0,X.isString)(t.config)){o.next=8;break}o.t1=JSON;o.next=4;return r.load(t.config);case 4:o.t2=o.sent;o.t0=o.t1.parse.call(o.t1,o.t2);o.next=9;break;case 8:o.t0=(n=t.config)!==null&&n!==void 0?n:{};case 9:i=o.t0;if(!(0,X.isString)(t.patch)){o.next=18;break}o.t4=JSON;o.next=14;return r.load(t.patch);case 14:o.t5=o.sent;o.t3=o.t4.parse.call(o.t4,o.t5);o.next=19;break;case 18:o.t3=t.patch;case 19:a=o.t3;return o.abrupt("return",La(La(La({},t),a?{patch:a}:{}),i?{config:i}:{}));case 21:case"end":return o.stop()}}),e)})));return Ja.apply(this,arguments)}function qa(e){var t;var r=e.getRootNode?e.getRootNode():document;return r instanceof ShadowRoot?{root:r,rootContainer:r}:{root:document,rootContainer:(t=document.head)!==null&&t!==void 0?t:document.body}}function Qa(e,t){return Za.apply(this,arguments)}function Za(){Za=Nr(cn.mark((function e(t,r){var n,i,o,s,l,c,u;var f,h,p,d,v,g,m,y,b,E,w,x,O,A,N,S,L,T,R,D,k,C,F,j,P,_,M,z,B,G,U,$,W,H,Y,J,q,Q,Z,K,ee,te,re,ie,ae=arguments;return cn.wrap((function e(se){while(1)switch(se.prev=se.next){case 0:ie=function e(){if(U){document.removeEventListener("click",U)}P.finalize()};f=ae.length>2&&ae[2]!==undefined?ae[2]:{};h=ae.length>3?ae[3]:undefined;p=f.theme?(0,X.mergeConfig)(a[f.theme],(n=f.config)!==null&&n!==void 0?n:{}):f.config;d=(0,X.isBoolean)(f.actions)?f.actions:Ki({},Ca,(i=f.actions)!==null&&i!==void 0?i:{});v=La(La({},Fa),f.i18n);g=(o=f.renderer)!==null&&o!==void 0?o:"canvas";m=(s=f.logLevel)!==null&&s!==void 0?s:Ra.Warn;y=(l=f.downloadFileName)!==null&&l!==void 0?l:"visualization";b=typeof t==="string"?document.querySelector(t):t;if(b){se.next=12;break}throw new Error("".concat(t," does not exist"));case 12:if(f.defaultStyle!==false){E="vega-embed-style";w=qa(b),x=w.root,O=w.rootContainer;if(!x.getElementById(E)){A=document.createElement("style");A.id=E;A.innerHTML=f.defaultStyle===undefined||f.defaultStyle===true?Zi.toString():f.defaultStyle;O.appendChild(A)}}N=Ua(r,f.mode);S=_a[N](r,p);if(N==="vega-lite"){if(S.$schema){L=oe(S.$schema);if(!qi(Pa.vega,"^".concat(L.version.slice(1)))){console.warn("The compiled spec uses Vega ".concat(L.version,", but current version is v").concat(Pa.vega,"."))}}}b.classList.add("vega-embed");if(d){b.classList.add("has-actions")}b.innerHTML="";T=b;if(d){R=document.createElement("div");R.classList.add(za);b.appendChild(R);T=R}D=f.patch;if(D){S=D instanceof Function?D(S):I(S,D,true,false).newDocument}if(f.formatLocale){Ra.formatLocale(f.formatLocale)}if(f.timeFormatLocale){Ra.timeFormatLocale(f.timeFormatLocale)}if(f.expressionFunctions){for(k in f.expressionFunctions){C=f.expressionFunctions[k];if("fn"in C){Ra.expressionFunction(k,C.fn,C["visitor"])}else if(C instanceof Function){Ra.expressionFunction(k,C)}}}F=f.ast;j=Ra.parse(S,N==="vega-lite"?{}:p,{ast:F});P=new(f.viewClass||Ra.View)(j,La({loader:h,logLevel:m,renderer:g},F?{expr:(c=(u=Ra.expressionInterpreter)!==null&&u!==void 0?u:f.expr)!==null&&c!==void 0?c:ne}:{}));P.addSignalListener("autosize",((e,t)=>{var r=t.type;if(r=="fit-x"){T.classList.add("fit-x");T.classList.remove("fit-y")}else if(r=="fit-y"){T.classList.remove("fit-x");T.classList.add("fit-y")}else if(r=="fit"){T.classList.add("fit-x","fit-y")}else{T.classList.remove("fit-x","fit-y")}}));if(f.tooltip!==false){_=Ba(f.tooltip)?f.tooltip:new mr(f.tooltip===true?{}:f.tooltip).call;P.tooltip(_)}M=f.hover;if(M===undefined){M=N==="vega"}if(M){z=typeof M==="boolean"?{}:M,B=z.hoverSet,G=z.updateSet;P.hover(B,G)}if(f){if(f.width!=null){P.width(f.width)}if(f.height!=null){P.height(f.height)}if(f.padding!=null){P.padding(f.padding)}}se.next=37;return P.initialize(T,f.bind).runAsync();case 37:if(!(d!==false)){se.next=63;break}$=b;if(f.defaultStyle!==false){W=document.createElement("details");W.title=v.CLICK_TO_VIEW_ACTIONS;b.append(W);$=W;H=document.createElement("summary");H.innerHTML=Ma;W.append(H);U=e=>{if(!W.contains(e.target)){W.removeAttribute("open")}};document.addEventListener("click",U)}Y=document.createElement("div");$.append(Y);Y.classList.add("vega-actions");if(!(d===true||d.export!==false)){se.next=60;break}J=Aa(["svg","png"]);se.prev=45;Q=cn.mark((function e(){var t,r,n,i;return cn.wrap((function e(a){while(1)switch(a.prev=a.next){case 0:t=q.value;if(d===true||d.export===true||d.export[t]){r=v["".concat(t.toUpperCase(),"_ACTION")];n=document.createElement("a");i=(0,X.isObject)(f.scaleFactor)?f.scaleFactor[t]:f.scaleFactor;n.text=r;n.href="#";n.target="_blank";n.download="".concat(y,".").concat(t);n.addEventListener("mousedown",function(){var e=Nr(cn.mark((function e(r){var n;return cn.wrap((function e(a){while(1)switch(a.prev=a.next){case 0:r.preventDefault();a.next=3;return P.toImageURL(t,i);case 3:n=a.sent;this.href=n;case 5:case"end":return a.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}());Y.append(n)}case 2:case"end":return a.stop()}}),e)}));J.s();case 48:if((q=J.n()).done){se.next=52;break}return se.delegateYield(Q(),"t0",50);case 50:se.next=48;break;case 52:se.next=57;break;case 54:se.prev=54;se.t1=se["catch"](45);J.e(se.t1);case 57:se.prev=57;J.f();return se.finish(57);case 60:if(d===true||d.source!==false){Z=document.createElement("a");Z.text=v.SOURCE_ACTION;Z.href="#";Z.addEventListener("click",(function(e){var t,n;Ga(V()(r),(t=f.sourceHeader)!==null&&t!==void 0?t:"",(n=f.sourceFooter)!==null&&n!==void 0?n:"",N);e.preventDefault()}));Y.append(Z)}if(N==="vega-lite"&&(d===true||d.compiled!==false)){K=document.createElement("a");K.text=v.COMPILED_ACTION;K.href="#";K.addEventListener("click",(function(e){var t,r;Ga(V()(S),(t=f.sourceHeader)!==null&&t!==void 0?t:"",(r=f.sourceFooter)!==null&&r!==void 0?r:"","vega");e.preventDefault()}));Y.append(K)}if(d===true||d.editor!==false){te=(ee=f.editorUrl)!==null&&ee!==void 0?ee:"https://vega.github.io/editor/";re=document.createElement("a");re.text=v.EDITOR_ACTION;re.href="#";re.addEventListener("click",(function(e){Qi(window,te,{config:p,mode:N,renderer:g,spec:V()(r)});e.preventDefault()}));Y.append(re)}case 63:return se.abrupt("return",{view:P,spec:r,vgSpec:S,finalize:ie,embedOptions:f});case 64:case"end":return se.stop()}}),e,null,[[45,54,57,60]])})));return Za.apply(this,arguments)}},26372:(e,t,r)=>{"use strict";r.d(t,{$D:()=>E,$G:()=>Y,$P:()=>me,AU:()=>T,B:()=>de,B2:()=>H,BS:()=>Q,Cc:()=>Oe,D_:()=>p,EV:()=>Ie,Eb:()=>xe,Et:()=>be,G4:()=>De,Gv:()=>N,KH:()=>B,Kg:()=>we,Lm:()=>ge,Ln:()=>Te,M1:()=>je,N6:()=>i,NV:()=>b,P$:()=>w,PK:()=>ve,R2:()=>x,Ro:()=>k,SW:()=>W,Tn:()=>Z,UD:()=>ee,VC:()=>z,V_:()=>te,X$:()=>se,Xx:()=>le,YO:()=>q,ZZ:()=>f,ay:()=>Ce,bX:()=>pe,co:()=>G,cy:()=>I,dI:()=>Fe,dY:()=>ae,eV:()=>Le,gd:()=>Ee,h1:()=>Ne,id:()=>h,io:()=>L,iv:()=>u,lL:()=>X,mQ:()=>ue,me:()=>m,n:()=>ce,nG:()=>he,nS:()=>a,oV:()=>$,r$:()=>Re,rt:()=>_e,sY:()=>n,se:()=>D,sg:()=>oe,ux:()=>Se,vF:()=>A,vN:()=>g,v_:()=>d,vu:()=>J,xH:()=>v,xZ:()=>ye,xv:()=>Pe,y:()=>O,z3:()=>c,zy:()=>U});function n(e,t,r){e.fields=t||[];e.fname=r;return e}function i(e){return e==null?null:e.fname}function a(e){return e==null?null:e.fields}function o(e){return e.length===1?s(e[0]):l(e)}const s=e=>function(t){return t[e]};const l=e=>{const t=e.length;return function(r){for(let n=0;no){u()}else{o=s+1}}else if(l==="["){if(s>o)u();i=o=s+1}else if(l==="]"){if(!i)c("Access path missing open bracket: "+e);if(i>0)u();i=0;o=s+1}}if(i)c("Access path missing closing bracket: "+e);if(n)c("Access path missing closing quote: "+e);if(s>o){s++;u()}return t}function f(e,t,r){const i=u(e);e=i.length===1?i[0]:e;return n((r&&r.get||o)(i),[e],t||e)}const h=f("id");const p=n((e=>e),[],"identity");const d=n((()=>0),[],"zero");const v=n((()=>1),[],"one");const g=n((()=>true),[],"true");const m=n((()=>false),[],"false");function y(e,t,r){const n=[t].concat([].slice.call(r));console[e].apply(console,n)}const b=0;const E=1;const w=2;const x=3;const O=4;function A(e,t){let r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:y;let n=e||b;return{level(e){if(arguments.length){n=+e;return this}else{return n}},error(){if(n>=E)r(t||"error","ERROR",arguments);return this},warn(){if(n>=w)r(t||"warn","WARN",arguments);return this},info(){if(n>=x)r(t||"log","INFO",arguments);return this},debug(){if(n>=O)r(t||"log","DEBUG",arguments);return this}}}var I=Array.isArray;function N(e){return e===Object(e)}const S=e=>e!=="__proto__";function L(){for(var e=arguments.length,t=new Array(e),r=0;r{for(const r in t){if(r==="signals"){e.signals=R(e.signals,t.signals)}else{const n=r==="legend"?{layout:1}:r==="style"?true:null;T(e,r,t[r],n)}}return e}),{})}function T(e,t,r,n){if(!S(t))return;let i,a;if(N(r)&&!I(r)){a=N(e[t])?e[t]:e[t]={};for(i in r){if(n&&(n===true||n[i])){T(a,i,r[i])}else if(S(i)){a[i]=r[i]}}}else{e[t]=r}}function R(e,t){if(e==null)return t;const r={},n=[];function i(e){if(!r[e.name]){r[e.name]=1;n.push(e)}}t.forEach(i);e.forEach(i);return n}function D(e){return e[e.length-1]}function k(e){return e==null||e===""?null:+e}const C=e=>t=>e*Math.exp(t);const F=e=>t=>Math.log(e*t);const j=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e));const P=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e;const _=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function M(e,t,r,n){const i=r(e[0]),a=r(D(e)),o=(a-i)*t;return[n(i-o),n(a-o)]}function z(e,t){return M(e,t,k,p)}function B(e,t){var r=Math.sign(e[0]);return M(e,t,F(r),C(r))}function G(e,t,r){return M(e,t,_(r),_(1/r))}function U(e,t,r){return M(e,t,j(r),P(r))}function V(e,t,r,n,i){const a=n(e[0]),o=n(D(e)),s=t!=null?n(t):(a+o)/2;return[i(s+(a-s)*r),i(s+(o-s)*r)]}function X(e,t,r){return V(e,t,r,k,p)}function $(e,t,r){const n=Math.sign(e[0]);return V(e,t,r,F(n),C(n))}function W(e,t,r,n){return V(e,t,r,_(n),_(1/n))}function H(e,t,r,n){return V(e,t,r,j(n),P(n))}function Y(e){return 1+~~(new Date(e).getMonth()/3)}function J(e){return 1+~~(new Date(e).getUTCMonth()/3)}function q(e){return e!=null?I(e)?e:[e]:[]}function Q(e,t,r){let n=e[0],i=e[1],a;if(i=r-t?[t,r]:[n=Math.min(Math.max(n,t),r-a),n+a]}function Z(e){return typeof e==="function"}const K="descending";function ee(e,t,r){r=r||{};t=q(t)||[];const i=[],o=[],s={},l=r.comparator||re;q(e).forEach(((e,n)=>{if(e==null)return;i.push(t[n]===K?-1:1);o.push(e=Z(e)?e:f(e,null,r));(a(e)||[]).forEach((e=>s[e]=1))}));return o.length===0?null:n(l(o,i),Object.keys(s))}const te=(e,t)=>(et||t==null)&&e!=null?1:(t=t instanceof Date?+t:t,e=e instanceof Date?+e:e)!==e&&t===t?-1:t!==t&&e===e?1:0;const re=(e,t)=>e.length===1?ne(e[0],t[0]):ie(e,t,e.length);const ne=(e,t)=>function(r,n){return te(e(r),e(n))*t};const ie=(e,t,r)=>{t.push(0);return function(n,i){let a,o=0,s=-1;while(o===0&&++se}function oe(e,t){let r;return n=>{if(r)clearTimeout(r);r=setTimeout((()=>(t(n),r=null)),e)}}function se(e){for(let t,r,n=1,i=arguments.length;no)o=i}}}else{for(i=t(e[r]);ro)o=i}}}}return[a,o]}function ce(e,t){const r=e.length;let n=-1,i,a,o,s,l;if(t==null){while(++n=a){i=o=a;break}}if(n===r)return[-1,-1];s=l=n;while(++na){i=a;s=n}if(o=a){i=o=a;break}}if(n===r)return[-1,-1];s=l=n;while(++na){i=a;s=n}if(o{i.set(t,e[t])}));return i}function pe(e,t,r,n,i,a){if(!r&&r!==0)return a;const o=+r;let s=e[0],l=D(e),c;if(la){o=i;i=a;a=o}r=r===undefined||r;n=n===undefined||n;return(r?i<=e:ie.replace(/\\(.)/g,"$1"))):q(e)}const i=e&&e.length,a=r&&r.get||o,s=e=>a(t?[e]:u(e));let l;if(!i){l=function(){return""}}else if(i===1){const t=s(e[0]);l=function(e){return""+t(e)}}else{const t=e.map(s);l=function(e){let r=""+t[0](e),n=0;while(++n{t={};r={};n=0};const a=(i,a)=>{if(++n>e){r=t;t={};n=1}return t[i]=a};i();return{clear:i,has:e=>ue(t,e)||ue(r,e),get:e=>ue(t,e)?t[e]:ue(r,e)?a(e,r[e]):undefined,set:(e,r)=>ue(t,e)?t[e]=r:a(e,r)}}function Ne(e,t,r,n){const i=t.length,a=r.length;if(!a)return t;if(!i)return r;const o=n||new t.constructor(i+a);let s=0,l=0,c=0;for(;s0?r[l++]:t[s++]}for(;s=0)r+=e;return r}function Le(e,t,r,n){const i=r||" ",a=e+"",o=t-a.length;return o<=0?a:n==="left"?Se(i,o)+a:n==="center"?Se(i,~~(o/2))+a+Se(i,Math.ceil(o/2)):a+Se(i,o)}function Te(e){return e&&D(e)-e[0]||0}function Re(e){return I(e)?"["+e.map(Re)+"]":N(e)||we(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function De(e){return e==null||e===""?null:!e||e==="false"||e==="0"?false:!!e}const ke=e=>be(e)?e:me(e)?e:Date.parse(e);function Ce(e,t){t=t||ke;return e==null||e===""?null:t(e)}function Fe(e){return e==null||e===""?null:e+""}function je(e){const t={},r=e.length;for(let n=0;n{a.d(e,{CP:()=>l,HT:()=>h,PB:()=>d,aC:()=>c,lC:()=>n,m:()=>o,tk:()=>i});var s=a(75905);var r=a(16750);var i=(0,s.K2)(((t,e)=>{const a=t.append("rect");a.attr("x",e.x);a.attr("y",e.y);a.attr("fill",e.fill);a.attr("stroke",e.stroke);a.attr("width",e.width);a.attr("height",e.height);if(e.name){a.attr("name",e.name)}if(e.rx){a.attr("rx",e.rx)}if(e.ry){a.attr("ry",e.ry)}if(e.attrs!==void 0){for(const t in e.attrs){a.attr(t,e.attrs[t])}}if(e.class){a.attr("class",e.class)}return a}),"drawRect");var n=(0,s.K2)(((t,e)=>{const a={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};const s=i(t,a);s.lower()}),"drawBackgroundRect");var o=(0,s.K2)(((t,e)=>{const a=e.text.replace(s.H1," ");const r=t.append("text");r.attr("x",e.x);r.attr("y",e.y);r.attr("class","legend");r.style("text-anchor",e.anchor);if(e.class){r.attr("class",e.class)}const i=r.append("tspan");i.attr("x",e.x+e.textMargin*2);i.text(a);return r}),"drawText");var c=(0,s.K2)(((t,e,a,s)=>{const i=t.append("image");i.attr("x",e);i.attr("y",a);const n=(0,r.J)(s);i.attr("xlink:href",n)}),"drawImage");var l=(0,s.K2)(((t,e,a,s)=>{const i=t.append("use");i.attr("x",e);i.attr("y",a);const n=(0,r.J)(s);i.attr("xlink:href",`#${n}`)}),"drawEmbeddedImage");var d=(0,s.K2)((()=>{const t={x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0};return t}),"getNoteRect");var h=(0,s.K2)((()=>{const t={x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:true};return t}),"getTextObj")},13249:(t,e,a)=>{a.d(e,{m:()=>r});var s=a(75905);var r=class{constructor(t){this.init=t;this.records=this.init()}static{(0,s.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},38038:(t,e,a)=>{a.d(e,{diagram:()=>Tt});var s=a(60148);var r=a(13249);var i=a(96049);var n=a(75905);var o=a(24982);var c=a(16750);var l=function(){var t=(0,n.K2)((function(t,e,a,s){for(a=a||{},s=t.length;s--;a[t[s]]=e);return a}),"o"),e=[1,2],a=[1,3],s=[1,4],r=[2,4],i=[1,9],o=[1,11],c=[1,13],l=[1,14],d=[1,16],h=[1,17],p=[1,18],g=[1,24],u=[1,25],f=[1,26],x=[1,27],y=[1,28],b=[1,29],m=[1,30],T=[1,31],E=[1,32],w=[1,33],v=[1,34],k=[1,35],I=[1,36],L=[1,37],_=[1,38],P=[1,39],A=[1,41],N=[1,42],M=[1,43],D=[1,44],S=[1,45],O=[1,46],R=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],Y=[4,5,16,50,52,53],K=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],C=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],B=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],V=[68,69,70],F=[1,122];var W={trace:(0,n.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:(0,n.K2)((function t(e,a,s,r,i,n,o){var c=n.length-1;switch(i){case 3:r.apply(n[c]);return n[c];break;case 4:case 9:this.$=[];break;case 5:case 10:n[c-1].push(n[c]);this.$=n[c-1];break;case 6:case 7:case 11:case 12:this.$=n[c];break;case 8:case 13:this.$=[];break;case 15:n[c].type="createParticipant";this.$=n[c];break;case 16:n[c-1].unshift({type:"boxStart",boxData:r.parseBoxData(n[c-2])});n[c-1].push({type:"boxEnd",boxText:n[c-2]});this.$=n[c-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(n[c-2]),sequenceIndexStep:Number(n[c-1]),sequenceVisible:true,signalType:r.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(n[c-1]),sequenceIndexStep:1,sequenceVisible:true,signalType:r.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:false,signalType:r.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:true,signalType:r.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:n[c-1].actor};break;case 23:this.$={type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:n[c-1].actor};break;case 29:r.setDiagramTitle(n[c].substring(6));this.$=n[c].substring(6);break;case 30:r.setDiagramTitle(n[c].substring(7));this.$=n[c].substring(7);break;case 31:this.$=n[c].trim();r.setAccTitle(this.$);break;case 32:case 33:this.$=n[c].trim();r.setAccDescription(this.$);break;case 34:n[c-1].unshift({type:"loopStart",loopText:r.parseMessage(n[c-2]),signalType:r.LINETYPE.LOOP_START});n[c-1].push({type:"loopEnd",loopText:n[c-2],signalType:r.LINETYPE.LOOP_END});this.$=n[c-1];break;case 35:n[c-1].unshift({type:"rectStart",color:r.parseMessage(n[c-2]),signalType:r.LINETYPE.RECT_START});n[c-1].push({type:"rectEnd",color:r.parseMessage(n[c-2]),signalType:r.LINETYPE.RECT_END});this.$=n[c-1];break;case 36:n[c-1].unshift({type:"optStart",optText:r.parseMessage(n[c-2]),signalType:r.LINETYPE.OPT_START});n[c-1].push({type:"optEnd",optText:r.parseMessage(n[c-2]),signalType:r.LINETYPE.OPT_END});this.$=n[c-1];break;case 37:n[c-1].unshift({type:"altStart",altText:r.parseMessage(n[c-2]),signalType:r.LINETYPE.ALT_START});n[c-1].push({type:"altEnd",signalType:r.LINETYPE.ALT_END});this.$=n[c-1];break;case 38:n[c-1].unshift({type:"parStart",parText:r.parseMessage(n[c-2]),signalType:r.LINETYPE.PAR_START});n[c-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END});this.$=n[c-1];break;case 39:n[c-1].unshift({type:"parStart",parText:r.parseMessage(n[c-2]),signalType:r.LINETYPE.PAR_OVER_START});n[c-1].push({type:"parEnd",signalType:r.LINETYPE.PAR_END});this.$=n[c-1];break;case 40:n[c-1].unshift({type:"criticalStart",criticalText:r.parseMessage(n[c-2]),signalType:r.LINETYPE.CRITICAL_START});n[c-1].push({type:"criticalEnd",signalType:r.LINETYPE.CRITICAL_END});this.$=n[c-1];break;case 41:n[c-1].unshift({type:"breakStart",breakText:r.parseMessage(n[c-2]),signalType:r.LINETYPE.BREAK_START});n[c-1].push({type:"breakEnd",optText:r.parseMessage(n[c-2]),signalType:r.LINETYPE.BREAK_END});this.$=n[c-1];break;case 43:this.$=n[c-3].concat([{type:"option",optionText:r.parseMessage(n[c-1]),signalType:r.LINETYPE.CRITICAL_OPTION},n[c]]);break;case 45:this.$=n[c-3].concat([{type:"and",parText:r.parseMessage(n[c-1]),signalType:r.LINETYPE.PAR_AND},n[c]]);break;case 47:this.$=n[c-3].concat([{type:"else",altText:r.parseMessage(n[c-1]),signalType:r.LINETYPE.ALT_ELSE},n[c]]);break;case 48:n[c-3].draw="participant";n[c-3].type="addParticipant";n[c-3].description=r.parseMessage(n[c-1]);this.$=n[c-3];break;case 49:n[c-1].draw="participant";n[c-1].type="addParticipant";this.$=n[c-1];break;case 50:n[c-3].draw="actor";n[c-3].type="addParticipant";n[c-3].description=r.parseMessage(n[c-1]);this.$=n[c-3];break;case 51:n[c-1].draw="actor";n[c-1].type="addParticipant";this.$=n[c-1];break;case 52:n[c-1].type="destroyParticipant";this.$=n[c-1];break;case 53:this.$=[n[c-1],{type:"addNote",placement:n[c-2],actor:n[c-1].actor,text:n[c]}];break;case 54:n[c-2]=[].concat(n[c-1],n[c-1]).slice(0,2);n[c-2][0]=n[c-2][0].actor;n[c-2][1]=n[c-2][1].actor;this.$=[n[c-1],{type:"addNote",placement:r.PLACEMENT.OVER,actor:n[c-2].slice(0,2),text:n[c]}];break;case 55:this.$=[n[c-1],{type:"addLinks",actor:n[c-1].actor,text:n[c]}];break;case 56:this.$=[n[c-1],{type:"addALink",actor:n[c-1].actor,text:n[c]}];break;case 57:this.$=[n[c-1],{type:"addProperties",actor:n[c-1].actor,text:n[c]}];break;case 58:this.$=[n[c-1],{type:"addDetails",actor:n[c-1].actor,text:n[c]}];break;case 61:this.$=[n[c-2],n[c]];break;case 62:this.$=n[c];break;case 63:this.$=r.PLACEMENT.LEFTOF;break;case 64:this.$=r.PLACEMENT.RIGHTOF;break;case 65:this.$=[n[c-4],n[c-1],{type:"addMessage",from:n[c-4].actor,to:n[c-1].actor,signalType:n[c-3],msg:n[c],activate:true},{type:"activeStart",signalType:r.LINETYPE.ACTIVE_START,actor:n[c-1].actor}];break;case 66:this.$=[n[c-4],n[c-1],{type:"addMessage",from:n[c-4].actor,to:n[c-1].actor,signalType:n[c-3],msg:n[c]},{type:"activeEnd",signalType:r.LINETYPE.ACTIVE_END,actor:n[c-4].actor}];break;case 67:this.$=[n[c-3],n[c-1],{type:"addMessage",from:n[c-3].actor,to:n[c-1].actor,signalType:n[c-2],msg:n[c]}];break;case 68:this.$={type:"addParticipant",actor:n[c]};break;case 69:this.$=r.LINETYPE.SOLID_OPEN;break;case 70:this.$=r.LINETYPE.DOTTED_OPEN;break;case 71:this.$=r.LINETYPE.SOLID;break;case 72:this.$=r.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=r.LINETYPE.DOTTED;break;case 74:this.$=r.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=r.LINETYPE.SOLID_CROSS;break;case 76:this.$=r.LINETYPE.DOTTED_CROSS;break;case 77:this.$=r.LINETYPE.SOLID_POINT;break;case 78:this.$=r.LINETYPE.DOTTED_POINT;break;case 79:this.$=r.parseMessage(n[c].trim().substring(1));break}}),"anonymous"),table:[{3:1,4:e,5:a,6:s},{1:[3]},{3:5,4:e,5:a,6:s},{3:6,4:e,5:a,6:s},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],r,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:i,5:o,8:8,9:10,12:12,13:c,14:l,17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:f,33:x,35:y,36:b,37:m,38:T,39:E,41:w,43:v,44:k,46:I,50:L,52:_,53:P,54:A,59:N,60:M,61:D,62:S,70:O},t(R,[2,5]),{9:47,12:12,13:c,14:l,17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:f,33:x,35:y,36:b,37:m,38:T,39:E,41:w,43:v,44:k,46:I,50:L,52:_,53:P,54:A,59:N,60:M,61:D,62:S,70:O},t(R,[2,7]),t(R,[2,8]),t(R,[2,14]),{12:48,50:L,52:_,53:P},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:O},{22:55,70:O},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(R,[2,29]),t(R,[2,30]),{32:[1,61]},{34:[1,62]},t(R,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:O},{22:72,70:O},{22:73,70:O},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:O},{22:90,70:O},{22:91,70:O},{22:92,70:O},t([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),t(R,[2,6]),t(R,[2,15]),t(Y,[2,9],{10:93}),t(R,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},t(R,[2,21]),{5:[1,97]},{5:[1,98]},t(R,[2,24]),t(R,[2,25]),t(R,[2,26]),t(R,[2,27]),t(R,[2,28]),t(R,[2,31]),t(R,[2,32]),t(K,r,{7:99}),t(K,r,{7:100}),t(K,r,{7:101}),t(C,r,{40:102,7:103}),t(B,r,{42:104,7:105}),t(B,r,{7:105,42:106}),t($,r,{45:107,7:108}),t(K,r,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:O},t(V,[2,69]),t(V,[2,70]),t(V,[2,71]),t(V,[2,72]),t(V,[2,73]),t(V,[2,74]),t(V,[2,75]),t(V,[2,76]),t(V,[2,77]),t(V,[2,78]),{22:118,70:O},{22:120,58:119,70:O},{70:[2,63]},{70:[2,64]},{56:121,81:F},{56:123,81:F},{56:124,81:F},{56:125,81:F},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:L,52:_,53:P},{5:[1,131]},t(R,[2,19]),t(R,[2,20]),t(R,[2,22]),t(R,[2,23]),{4:i,5:o,8:8,9:10,12:12,13:c,14:l,16:[1,132],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:f,33:x,35:y,36:b,37:m,38:T,39:E,41:w,43:v,44:k,46:I,50:L,52:_,53:P,54:A,59:N,60:M,61:D,62:S,70:O},{4:i,5:o,8:8,9:10,12:12,13:c,14:l,16:[1,133],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:f,33:x,35:y,36:b,37:m,38:T,39:E,41:w,43:v,44:k,46:I,50:L,52:_,53:P,54:A,59:N,60:M,61:D,62:S,70:O},{4:i,5:o,8:8,9:10,12:12,13:c,14:l,16:[1,134],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:f,33:x,35:y,36:b,37:m,38:T,39:E,41:w,43:v,44:k,46:I,50:L,52:_,53:P,54:A,59:N,60:M,61:D,62:S,70:O},{16:[1,135]},{4:i,5:o,8:8,9:10,12:12,13:c,14:l,16:[2,46],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:f,33:x,35:y,36:b,37:m,38:T,39:E,41:w,43:v,44:k,46:I,49:[1,136],50:L,52:_,53:P,54:A,59:N,60:M,61:D,62:S,70:O},{16:[1,137]},{4:i,5:o,8:8,9:10,12:12,13:c,14:l,16:[2,44],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:f,33:x,35:y,36:b,37:m,38:T,39:E,41:w,43:v,44:k,46:I,48:[1,138],50:L,52:_,53:P,54:A,59:N,60:M,61:D,62:S,70:O},{16:[1,139]},{16:[1,140]},{4:i,5:o,8:8,9:10,12:12,13:c,14:l,16:[2,42],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:f,33:x,35:y,36:b,37:m,38:T,39:E,41:w,43:v,44:k,46:I,47:[1,141],50:L,52:_,53:P,54:A,59:N,60:M,61:D,62:S,70:O},{4:i,5:o,8:8,9:10,12:12,13:c,14:l,16:[1,142],17:15,18:d,21:h,22:40,23:p,24:19,25:20,26:21,27:22,28:23,29:g,30:u,31:f,33:x,35:y,36:b,37:m,38:T,39:E,41:w,43:v,44:k,46:I,50:L,52:_,53:P,54:A,59:N,60:M,61:D,62:S,70:O},{15:[1,143]},t(R,[2,49]),{15:[1,144]},t(R,[2,51]),t(R,[2,52]),{22:145,70:O},{22:146,70:O},{56:147,81:F},{56:148,81:F},{56:149,81:F},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(R,[2,16]),t(Y,[2,10]),{12:151,50:L,52:_,53:P},t(Y,[2,12]),t(Y,[2,13]),t(R,[2,18]),t(R,[2,34]),t(R,[2,35]),t(R,[2,36]),t(R,[2,37]),{15:[1,152]},t(R,[2,38]),{15:[1,153]},t(R,[2,39]),t(R,[2,40]),{15:[1,154]},t(R,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:F},{56:158,81:F},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:O},t(Y,[2,11]),t(C,r,{7:103,40:160}),t(B,r,{7:105,42:161}),t($,r,{7:108,45:162}),t(R,[2,48]),t(R,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:(0,n.K2)((function t(e,a){if(a.recoverable){this.trace(e)}else{var s=new Error(e);s.hash=a;throw s}}),"parseError"),parse:(0,n.K2)((function t(e){var a=this,s=[0],r=[],i=[null],o=[],c=this.table,l="",d=0,h=0,p=0,g=2,u=1;var f=o.slice.call(arguments,1);var x=Object.create(this.lexer);var y={yy:{}};for(var b in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,b)){y.yy[b]=this.yy[b]}}x.setInput(e,y.yy);y.yy.lexer=x;y.yy.parser=this;if(typeof x.yylloc=="undefined"){x.yylloc={}}var m=x.yylloc;o.push(m);var T=x.options&&x.options.ranges;if(typeof y.yy.parseError==="function"){this.parseError=y.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function E(t){s.length=s.length-2*t;i.length=i.length-t;o.length=o.length-t}(0,n.K2)(E,"popStack");function w(){var t;t=r.pop()||x.lex()||u;if(typeof t!=="number"){if(t instanceof Array){r=t;t=r.pop()}t=a.symbols_[t]||t}return t}(0,n.K2)(w,"lex");var v,k,I,L,_,P,A={},N,M,D,S;while(true){I=s[s.length-1];if(this.defaultActions[I]){L=this.defaultActions[I]}else{if(v===null||typeof v=="undefined"){v=w()}L=c[I]&&c[I][v]}if(typeof L==="undefined"||!L.length||!L[0]){var O="";S=[];for(N in c[I]){if(this.terminals_[N]&&N>g){S.push("'"+this.terminals_[N]+"'")}}if(x.showPosition){O="Parse error on line "+(d+1)+":\n"+x.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[v]||v)+"'"}else{O="Parse error on line "+(d+1)+": Unexpected "+(v==u?"end of input":"'"+(this.terminals_[v]||v)+"'")}this.parseError(O,{text:x.match,token:this.terminals_[v]||v,line:x.yylineno,loc:m,expected:S})}if(L[0]instanceof Array&&L.length>1){throw new Error("Parse Error: multiple actions possible at state: "+I+", token: "+v)}switch(L[0]){case 1:s.push(v);i.push(x.yytext);o.push(x.yylloc);s.push(L[1]);v=null;if(!k){h=x.yyleng;l=x.yytext;d=x.yylineno;m=x.yylloc;if(p>0){p--}}else{v=k;k=null}break;case 2:M=this.productions_[L[1]][1];A.$=i[i.length-M];A._$={first_line:o[o.length-(M||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(M||1)].first_column,last_column:o[o.length-1].last_column};if(T){A._$.range=[o[o.length-(M||1)].range[0],o[o.length-1].range[1]]}P=this.performAction.apply(A,[l,h,d,y.yy,L[1],i,o].concat(f));if(typeof P!=="undefined"){return P}if(M){s=s.slice(0,-1*M*2);i=i.slice(0,-1*M);o=o.slice(0,-1*M)}s.push(this.productions_[L[1]][0]);i.push(A.$);o.push(A._$);D=c[s[s.length-2]][s[s.length-1]];s.push(D);break;case 3:return true}}return true}),"parse")};var q=function(){var t={EOF:1,parseError:(0,n.K2)((function t(e,a){if(this.yy.parser){this.yy.parser.parseError(e,a)}else{throw new Error(e)}}),"parseError"),setInput:(0,n.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,n.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,n.K2)((function(t){var e=t.length;var a=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(a.length-1){this.yylineno-=a.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===s.length?this.yylloc.first_column:0)+s[s.length-a.length].length-a[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,n.K2)((function(){this._more=true;return this}),"more"),reject:(0,n.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,n.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,n.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,n.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,n.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,n.K2)((function(t,e){var a,s,r;if(this.options.backtrack_lexer){r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){r.yylloc.range=this.yylloc.range.slice(0)}}s=t[0].match(/(?:\r\n?|\n).*/g);if(s){this.yylineno+=s.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];a=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(a){return a}else if(this._backtrack){for(var i in r){this[i]=r[i]}return false}return false}),"test_match"),next:(0,n.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,a,s;if(!this._more){this.yytext="";this.match=""}var r=this._currentRules();for(var i=0;ie[0].length)){e=a;s=i;if(this.options.backtrack_lexer){t=this.test_match(a,r[i]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,r[s]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,n.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,n.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,n.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,n.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,n.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,n.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,n.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,n.K2)((function t(e,a,s,r){var i=r;switch(s){case 0:return 5;break;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;break;case 7:this.begin("LINE");return 14;break;case 8:this.begin("ID");return 50;break;case 9:this.begin("ID");return 52;break;case 10:return 13;break;case 11:this.begin("ID");return 53;break;case 12:a.yytext=a.yytext.trim();this.begin("ALIAS");return 70;break;case 13:this.popState();this.popState();this.begin("LINE");return 51;break;case 14:this.popState();this.popState();return 5;break;case 15:this.begin("LINE");return 36;break;case 16:this.begin("LINE");return 37;break;case 17:this.begin("LINE");return 38;break;case 18:this.begin("LINE");return 39;break;case 19:this.begin("LINE");return 49;break;case 20:this.begin("LINE");return 41;break;case 21:this.begin("LINE");return 43;break;case 22:this.begin("LINE");return 48;break;case 23:this.begin("LINE");return 44;break;case 24:this.begin("LINE");return 47;break;case 25:this.begin("LINE");return 46;break;case 26:this.popState();return 15;break;case 27:return 16;break;case 28:return 65;break;case 29:return 66;break;case 30:return 59;break;case 31:return 60;break;case 32:return 61;break;case 33:return 62;break;case 34:return 57;break;case 35:return 54;break;case 36:this.begin("ID");return 21;break;case 37:this.begin("ID");return 23;break;case 38:return 29;break;case 39:return 30;break;case 40:this.begin("acc_title");return 31;break;case 41:this.popState();return"acc_title_value";break;case 42:this.begin("acc_descr");return 33;break;case 43:this.popState();return"acc_descr_value";break;case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";break;case 47:return 6;break;case 48:return 18;break;case 49:return 20;break;case 50:return 64;break;case 51:return 5;break;case 52:a.yytext=a.yytext.trim();return 70;break;case 53:return 73;break;case 54:return 74;break;case 55:return 75;break;case 56:return 76;break;case 57:return 71;break;case 58:return 72;break;case 59:return 77;break;case 60:return 78;break;case 61:return 79;break;case 62:return 80;break;case 63:return 81;break;case 64:return 68;break;case 65:return 69;break;case 66:return 5;break;case 67:return"INVALID";break}}),"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\<->\->:\n,;]+?([\-]*[^\<->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\<->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\<->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:false},acc_descr:{rules:[43],inclusive:false},acc_title:{rules:[41],inclusive:false},ID:{rules:[2,3,12],inclusive:false},ALIAS:{rules:[2,3,13,14],inclusive:false},LINE:{rules:[2,3,26],inclusive:false},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:true}}};return t}();W.lexer=q;function z(){this.yy={}}(0,n.K2)(z,"Parser");z.prototype=W;W.Parser=z;return new z}();l.parser=l;var d=l;var h={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34};var p={FILLED:0,OPEN:1};var g={LEFTOF:0,RIGHTOF:1,OVER:2};var u=class{constructor(){this.state=new r.m((()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:false,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})));this.setAccTitle=n.SV;this.setAccDescription=n.EI;this.setDiagramTitle=n.ke;this.getAccTitle=n.iN;this.getAccDescription=n.m7;this.getDiagramTitle=n.ab;this.apply=this.apply.bind(this);this.parseBoxData=this.parseBoxData.bind(this);this.parseMessage=this.parseMessage.bind(this);this.clear();this.setWrap((0,n.D7)().wrap);this.LINETYPE=h;this.ARROWTYPE=p;this.PLACEMENT=g}static{(0,n.K2)(this,"SequenceDB")}addBox(t){this.state.records.boxes.push({name:t.text,wrap:t.wrap??this.autoWrap(),fill:t.color,actorKeys:[]});this.state.records.currentBox=this.state.records.boxes.slice(-1)[0]}addActor(t,e,a,s){let r=this.state.records.currentBox;const i=this.state.records.actors.get(t);if(i){if(this.state.records.currentBox&&i.box&&this.state.records.currentBox!==i.box){throw new Error(`A same participant should only be defined in one Box: ${i.name} can't be in '${i.box.name}' and in '${this.state.records.currentBox.name}' at the same time.`)}r=i.box?i.box:this.state.records.currentBox;i.box=r;if(i&&e===i.name&&a==null){return}}if(a?.text==null){a={text:e,type:s}}if(s==null||a.text==null){a={text:e,type:s}}this.state.records.actors.set(t,{box:r,name:e,description:a.text,wrap:a.wrap??this.autoWrap(),prevActor:this.state.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:s??"participant"});if(this.state.records.prevActor){const e=this.state.records.actors.get(this.state.records.prevActor);if(e){e.nextActor=t}}if(this.state.records.currentBox){this.state.records.currentBox.actorKeys.push(t)}this.state.records.prevActor=t}activationCount(t){let e;let a=0;if(!t){return 0}for(e=0;e>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]};throw e}}this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:t,to:e,message:a?.text??"",wrap:a?.wrap??this.autoWrap(),type:s,activate:r});return true}hasAtLeastOneBox(){return this.state.records.boxes.length>0}hasAtLeastOneBoxWithTitle(){return this.state.records.boxes.some((t=>t.name))}getMessages(){return this.state.records.messages}getBoxes(){return this.state.records.boxes}getActors(){return this.state.records.actors}getCreatedActors(){return this.state.records.createdActors}getDestroyedActors(){return this.state.records.destroyedActors}getActor(t){return this.state.records.actors.get(t)}getActorKeys(){return[...this.state.records.actors.keys()]}enableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=true}disableSequenceNumbers(){this.state.records.sequenceNumbersEnabled=false}showSequenceNumbers(){return this.state.records.sequenceNumbersEnabled}setWrap(t){this.state.records.wrapEnabled=t}extractWrap(t){if(t===void 0){return{}}t=t.trim();const e=/^:?wrap:/.exec(t)!==null?true:/^:?nowrap:/.exec(t)!==null?false:void 0;const a=(e===void 0?t:t.replace(/^:?(?:no)?wrap:/,"")).trim();return{cleanedText:a,wrap:e}}autoWrap(){if(this.state.records.wrapEnabled!==void 0){return this.state.records.wrapEnabled}return(0,n.D7)().sequence?.wrap??false}clear(){this.state.reset();(0,n.IU)()}parseMessage(t){const e=t.trim();const{wrap:a,cleanedText:s}=this.extractWrap(e);const r={text:s,wrap:a};n.Rm.debug(`parseMessage: ${JSON.stringify(r)}`);return r}parseBoxData(t){const e=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(t);let a=e?.[1]?e[1].trim():"transparent";let s=e?.[2]?e[2].trim():void 0;if(window?.CSS){if(!window.CSS.supports("color",a)){a="transparent";s=t.trim()}}else{const e=(new Option).style;e.color=a;if(e.color!==a){a="transparent";s=t.trim()}}const{wrap:r,cleanedText:i}=this.extractWrap(s);return{text:i?(0,n.jZ)(i,(0,n.D7)()):void 0,color:a,wrap:r}}addNote(t,e,a){const s={actor:t,placement:e,message:a.text,wrap:a.wrap??this.autoWrap()};const r=[].concat(t,t);this.state.records.notes.push(s);this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:r[0],to:r[1],message:a.text,wrap:a.wrap??this.autoWrap(),type:this.LINETYPE.NOTE,placement:e})}addLinks(t,e){const a=this.getActor(t);try{let t=(0,n.jZ)(e.text,(0,n.D7)());t=t.replace(/=/g,"=");t=t.replace(/&/g,"&");const s=JSON.parse(t);this.insertLinks(a,s)}catch(s){n.Rm.error("error while parsing actor link text",s)}}addALink(t,e){const a=this.getActor(t);try{const t={};let s=(0,n.jZ)(e.text,(0,n.D7)());const r=s.indexOf("@");s=s.replace(/=/g,"=");s=s.replace(/&/g,"&");const i=s.slice(0,r-1).trim();const o=s.slice(r+1).trim();t[i]=o;this.insertLinks(a,t)}catch(s){n.Rm.error("error while parsing actor link text",s)}}insertLinks(t,e){if(t.links==null){t.links=e}else{for(const a in e){t.links[a]=e[a]}}}addProperties(t,e){const a=this.getActor(t);try{const t=(0,n.jZ)(e.text,(0,n.D7)());const s=JSON.parse(t);this.insertProperties(a,s)}catch(s){n.Rm.error("error while parsing actor properties text",s)}}insertProperties(t,e){if(t.properties==null){t.properties=e}else{for(const a in e){t.properties[a]=e[a]}}}boxEnd(){this.state.records.currentBox=void 0}addDetails(t,e){const a=this.getActor(t);const s=document.getElementById(e.text);try{const t=s.innerHTML;const e=JSON.parse(t);if(e.properties){this.insertProperties(a,e.properties)}if(e.links){this.insertLinks(a,e.links)}}catch(r){n.Rm.error("error while parsing actor details text",r)}}getActorProperty(t,e){if(t?.properties!==void 0){return t.properties[e]}return void 0}apply(t){if(Array.isArray(t)){t.forEach((t=>{this.apply(t)}))}else{switch(t.type){case"sequenceIndex":this.state.records.messages.push({id:this.state.records.messages.length.toString(),from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:false,type:t.signalType});break;case"addParticipant":this.addActor(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(this.state.records.actors.has(t.actor)){throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior")}this.state.records.lastCreated=t.actor;this.addActor(t.actor,t.actor,t.description,t.draw);this.state.records.createdActors.set(t.actor,this.state.records.messages.length);break;case"destroyParticipant":this.state.records.lastDestroyed=t.actor;this.state.records.destroyedActors.set(t.actor,this.state.records.messages.length);break;case"activeStart":this.addSignal(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":this.addSignal(t.actor,void 0,void 0,t.signalType);break;case"addNote":this.addNote(t.actor,t.placement,t.text);break;case"addLinks":this.addLinks(t.actor,t.text);break;case"addALink":this.addALink(t.actor,t.text);break;case"addProperties":this.addProperties(t.actor,t.text);break;case"addDetails":this.addDetails(t.actor,t.text);break;case"addMessage":if(this.state.records.lastCreated){if(t.to!==this.state.records.lastCreated){throw new Error("The created participant "+this.state.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.")}else{this.state.records.lastCreated=void 0}}else if(this.state.records.lastDestroyed){if(t.to!==this.state.records.lastDestroyed&&t.from!==this.state.records.lastDestroyed){throw new Error("The destroyed participant "+this.state.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.")}else{this.state.records.lastDestroyed=void 0}}this.addSignal(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":this.addBox(t.boxData);break;case"boxEnd":this.boxEnd();break;case"loopStart":this.addSignal(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"rectStart":this.addSignal(void 0,void 0,t.color,t.signalType);break;case"rectEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"optStart":this.addSignal(void 0,void 0,t.optText,t.signalType);break;case"optEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"altStart":this.addSignal(void 0,void 0,t.altText,t.signalType);break;case"else":this.addSignal(void 0,void 0,t.altText,t.signalType);break;case"altEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":(0,n.SV)(t.text);break;case"parStart":this.addSignal(void 0,void 0,t.parText,t.signalType);break;case"and":this.addSignal(void 0,void 0,t.parText,t.signalType);break;case"parEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"criticalStart":this.addSignal(void 0,void 0,t.criticalText,t.signalType);break;case"option":this.addSignal(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break;case"breakStart":this.addSignal(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":this.addSignal(void 0,void 0,void 0,t.signalType);break}}}getConfig(){return(0,n.D7)().sequence}};var f=(0,n.K2)((t=>`.actor {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n\n text.actor > tspan {\n fill: ${t.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${t.actorLineColor};\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${t.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${t.signalColor};\n }\n\n #arrowhead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .sequenceNumber {\n fill: ${t.sequenceNumberColor};\n }\n\n #sequencenumber {\n fill: ${t.signalColor};\n }\n\n #crosshead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .messageText {\n fill: ${t.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBkgColor};\n }\n\n .labelText, .labelText > tspan {\n fill: ${t.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${t.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${t.noteTextColor};\n stroke: none;\n }\n\n .activation0 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation1 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation2 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${t.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n .actor-man circle, line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n stroke-width: 2px;\n }\n`),"getStyles");var x=f;var y=18*2;var b="actor-top";var m="actor-bottom";var T="actor-box";var E="actor-man";var w=(0,n.K2)((function(t,e){return(0,s.tk)(t,e)}),"drawRect");var v=(0,n.K2)((function(t,e,a,s,r){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0){return{height:0,width:0}}const i=e.links;const n=e.actorCnt;const o=e.rectData;var l="none";if(r){l="block !important"}const d=t.append("g");d.attr("id","actor"+n+"_popup");d.attr("class","actorPopupMenu");d.attr("display",l);var h="";if(o.class!==void 0){h=" "+o.class}let p=o.width>a?o.width:a;const g=d.append("rect");g.attr("class","actorPopupMenuPanel"+h);g.attr("x",o.x);g.attr("y",o.height);g.attr("fill",o.fill);g.attr("stroke",o.stroke);g.attr("width",p);g.attr("height",o.height);g.attr("rx",o.rx);g.attr("ry",o.ry);if(i!=null){var u=20;for(let t in i){var f=d.append("a");var x=(0,c.J)(i[t]);f.attr("xlink:href",x);f.attr("target","_blank");U(s)(t,f,o.x+10,o.height+u,p,20,{class:"actor"},s);u+=30}}g.attr("height",u);return{height:o.height+u,width:p}}),"drawPopup");var k=(0,n.K2)((function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"}),"popupMenuToggle");var I=(0,n.K2)((async function(t,e,a=null){let s=t.append("foreignObject");const r=await(0,n.VJ)(e.text,(0,n.zj)());const i=s.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(r);const o=i.node().getBoundingClientRect();s.attr("height",Math.round(o.height)).attr("width",Math.round(o.width));if(e.class==="noteText"){const a=t.node().firstChild;a.setAttribute("height",o.height+2*e.textMargin);const r=a.getBBox();s.attr("x",Math.round(r.x+r.width/2-o.width/2)).attr("y",Math.round(r.y+r.height/2-o.height/2))}else if(a){let{startx:t,stopx:r,starty:i}=a;if(t>r){const e=t;t=r;r=e}s.attr("x",Math.round(t+Math.abs(t-r)/2-o.width/2));if(e.class==="loopText"){s.attr("y",Math.round(i))}else{s.attr("y",Math.round(i-o.height))}}return[s]}),"drawKatex");var L=(0,n.K2)((function(t,e){let a=0;let s=0;const r=e.text.split(n.Y2.lineBreakRegex);const[o,c]=(0,i.I5)(e.fontSize);let l=[];let d=0;let h=(0,n.K2)((()=>e.y),"yfunc");if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0){switch(e.valign){case"top":case"start":h=(0,n.K2)((()=>Math.round(e.y+e.textMargin)),"yfunc");break;case"middle":case"center":h=(0,n.K2)((()=>Math.round(e.y+(a+s+e.textMargin)/2)),"yfunc");break;case"bottom":case"end":h=(0,n.K2)((()=>Math.round(e.y+(a+s+2*e.textMargin)-e.textMargin)),"yfunc");break}}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0){switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin);e.anchor="start";e.dominantBaseline="middle";e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2);e.anchor="middle";e.dominantBaseline="middle";e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin);e.anchor="end";e.dominantBaseline="middle";e.alignmentBaseline="middle";break}}for(let[n,p]of r.entries()){if(e.textMargin!==void 0&&e.textMargin===0&&o!==void 0){d=n*o}const r=t.append("text");r.attr("x",e.x);r.attr("y",h());if(e.anchor!==void 0){r.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline)}if(e.fontFamily!==void 0){r.style("font-family",e.fontFamily)}if(c!==void 0){r.style("font-size",c)}if(e.fontWeight!==void 0){r.style("font-weight",e.fontWeight)}if(e.fill!==void 0){r.attr("fill",e.fill)}if(e.class!==void 0){r.attr("class",e.class)}if(e.dy!==void 0){r.attr("dy",e.dy)}else if(d!==0){r.attr("dy",d)}const g=p||i.pe;if(e.tspan){const t=r.append("tspan");t.attr("x",e.x);if(e.fill!==void 0){t.attr("fill",e.fill)}t.text(g)}else{r.text(g)}if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0){s+=(r._groups||r)[0][0].getBBox().height;a=s}l.push(r)}return l}),"drawText");var _=(0,n.K2)((function(t,e){function a(t,e,a,s,r){return t+","+e+" "+(t+a)+","+e+" "+(t+a)+","+(e+s-r)+" "+(t+a-r*1.2)+","+(e+s)+" "+t+","+(e+s)}(0,n.K2)(a,"genPoints");const s=t.append("polygon");s.attr("points",a(e.x,e.y,e.width,e.height,7));s.attr("class","labelBox");e.y=e.y+e.height/2;L(t,e);return s}),"drawLabel");var P=-1;var A=(0,n.K2)(((t,e,a,s)=>{if(!t.select){return}a.forEach((a=>{const r=e.get(a);const i=t.select("#actor"+r.actorCnt);if(!s.mirrorActors&&r.stopy){i.attr("y2",r.stopy+r.height/2)}else if(s.mirrorActors){i.attr("y2",r.stopy)}}))}),"fixLifeLineHeights");var N=(0,n.K2)((function(t,e,a,r){const i=r?e.stopy:e.starty;const o=e.x+e.width/2;const c=i+e.height;const l=t.append("g").lower();var d=l;if(!r){P++;if(Object.keys(e.links||{}).length&&!a.forceMenus){d.attr("onclick",k(`actor${P}_popup`)).attr("cursor","pointer")}d.append("line").attr("id","actor"+P).attr("x1",o).attr("y1",c).attr("x2",o).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name);d=l.append("g");e.actorCnt=P;if(e.links!=null){d.attr("id","root-"+P)}}const h=(0,s.PB)();var p="actor";if(e.properties?.class){p=e.properties.class}else{h.fill="#eaeaea"}if(r){p+=` ${m}`}else{p+=` ${b}`}h.x=e.x;h.y=i;h.width=e.width;h.height=e.height;h.class=p;h.rx=3;h.ry=3;h.name=e.name;const g=w(d,h);e.rectData=h;if(e.properties?.icon){const t=e.properties.icon.trim();if(t.charAt(0)==="@"){(0,s.CP)(d,h.x+h.width-20,h.y+10,t.substr(1))}else{(0,s.aC)(d,h.x+h.width-20,h.y+10,t)}}j(a,(0,n.Wi)(e.description))(e.description,d,h.x,h.y,h.width,h.height,{class:`actor ${T}`},a);let u=e.height;if(g.node){const t=g.node().getBBox();e.height=t.height;u=t.height}return u}),"drawActorTypeParticipant");var M=(0,n.K2)((function(t,e,a,r){const i=r?e.stopy:e.starty;const o=e.x+e.width/2;const c=i+80;const l=t.append("g").lower();if(!r){P++;l.append("line").attr("id","actor"+P).attr("x1",o).attr("y1",c).attr("x2",o).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name);e.actorCnt=P}const d=t.append("g");let h=E;if(r){h+=` ${m}`}else{h+=` ${b}`}d.attr("class",h);d.attr("name",e.name);const p=(0,s.PB)();p.x=e.x;p.y=i;p.fill="#eaeaea";p.width=e.width;p.height=e.height;p.class="actor";p.rx=3;p.ry=3;d.append("line").attr("id","actor-man-torso"+P).attr("x1",o).attr("y1",i+25).attr("x2",o).attr("y2",i+45);d.append("line").attr("id","actor-man-arms"+P).attr("x1",o-y/2).attr("y1",i+33).attr("x2",o+y/2).attr("y2",i+33);d.append("line").attr("x1",o-y/2).attr("y1",i+60).attr("x2",o).attr("y2",i+45);d.append("line").attr("x1",o).attr("y1",i+45).attr("x2",o+y/2-2).attr("y2",i+60);const g=d.append("circle");g.attr("cx",e.x+e.width/2);g.attr("cy",i+10);g.attr("r",15);g.attr("width",e.width);g.attr("height",e.height);const u=d.node().getBBox();e.height=u.height;j(a,(0,n.Wi)(e.description))(e.description,d,p.x,p.y+35,p.width,p.height,{class:`actor ${E}`},a);return e.height}),"drawActorTypeActor");var D=(0,n.K2)((async function(t,e,a,s){switch(e.type){case"actor":return await M(t,e,a,s);case"participant":return await N(t,e,a,s)}}),"drawActor");var S=(0,n.K2)((function(t,e,a){const s=t.append("g");const r=s;K(r,e);if(e.name){j(a)(e.name,r,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},a)}r.lower()}),"drawBox");var O=(0,n.K2)((function(t){return t.append("g")}),"anchorElement");var R=(0,n.K2)((function(t,e,a,r,i){const n=(0,s.PB)();const o=e.anchored;n.x=e.startx;n.y=e.starty;n.class="activation"+i%3;n.width=e.stopx-e.startx;n.height=a-e.starty;w(o,n)}),"drawActivation");var Y=(0,n.K2)((async function(t,e,a,r){const{boxMargin:i,boxTextMargin:o,labelBoxHeight:c,labelBoxWidth:l,messageFontFamily:d,messageFontSize:h,messageFontWeight:p}=r;const g=t.append("g");const u=(0,n.K2)((function(t,e,a,s){return g.append("line").attr("x1",t).attr("y1",e).attr("x2",a).attr("y2",s).attr("class","loopLine")}),"drawLoopLine");u(e.startx,e.starty,e.stopx,e.starty);u(e.stopx,e.starty,e.stopx,e.stopy);u(e.startx,e.stopy,e.stopx,e.stopy);u(e.startx,e.starty,e.startx,e.stopy);if(e.sections!==void 0){e.sections.forEach((function(t){u(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")}))}let f=(0,s.HT)();f.text=a;f.x=e.startx;f.y=e.starty;f.fontFamily=d;f.fontSize=h;f.fontWeight=p;f.anchor="middle";f.valign="middle";f.tspan=false;f.width=l||50;f.height=c||20;f.textMargin=o;f.class="labelText";_(g,f);f=z();f.text=e.title;f.x=e.startx+l/2+(e.stopx-e.startx)/2;f.y=e.starty+i+o;f.anchor="middle";f.valign="middle";f.textMargin=o;f.class="loopText";f.fontFamily=d;f.fontSize=h;f.fontWeight=p;f.wrap=true;let x=(0,n.Wi)(f.text)?await I(g,f,e):L(g,f);if(e.sectionTitles!==void 0){for(const[t,a]of Object.entries(e.sectionTitles)){if(a.message){f.text=a.message;f.x=e.startx+(e.stopx-e.startx)/2;f.y=e.sections[t].y+i+o;f.class="loopText";f.anchor="middle";f.valign="middle";f.tspan=false;f.fontFamily=d;f.fontSize=h;f.fontWeight=p;f.wrap=e.wrap;if((0,n.Wi)(f.text)){e.starty=e.sections[t].y;await I(g,f,e)}else{L(g,f)}let s=Math.round(x.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));e.sections[t].height+=s-(i+o)}}}e.height=Math.round(e.stopy-e.starty);return g}),"drawLoop");var K=(0,n.K2)((function(t,e){(0,s.lC)(t,e)}),"drawBackgroundRect");var C=(0,n.K2)((function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")}),"insertDatabaseIcon");var B=(0,n.K2)((function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")}),"insertComputerIcon");var $=(0,n.K2)((function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")}),"insertClockIcon");var V=(0,n.K2)((function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")}),"insertArrowHead");var F=(0,n.K2)((function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")}),"insertArrowFilledHead");var W=(0,n.K2)((function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)}),"insertSequenceNumber");var q=(0,n.K2)((function(t){const e=t.append("defs");const a=e.append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5);a.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")}),"insertArrowCrossHead");var z=(0,n.K2)((function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:true,valign:void 0}}),"getTextObj");var H=(0,n.K2)((function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}}),"getNoteRect");var j=function(){function t(t,e,a,s,i,n,o){const c=e.append("text").attr("x",a+i/2).attr("y",s+n/2+5).style("text-anchor","middle").text(t);r(c,o)}(0,n.K2)(t,"byText");function e(t,e,a,s,o,c,l,d){const{actorFontSize:h,actorFontFamily:p,actorFontWeight:g}=d;const[u,f]=(0,i.I5)(h);const x=t.split(n.Y2.lineBreakRegex);for(let i=0;it.height||0)))+(this.loops.length===0?0:this.loops.map((t=>t.height||0)).reduce(((t,e)=>t+e)))+(this.messages.length===0?0:this.messages.map((t=>t.height||0)).reduce(((t,e)=>t+e)))+(this.notes.length===0?0:this.notes.map((t=>t.height||0)).reduce(((t,e)=>t+e)))}),"getHeight"),clear:(0,n.K2)((function(){this.actors=[];this.boxes=[];this.loops=[];this.messages=[];this.notes=[]}),"clear"),addBox:(0,n.K2)((function(t){this.boxes.push(t)}),"addBox"),addActor:(0,n.K2)((function(t){this.actors.push(t)}),"addActor"),addLoop:(0,n.K2)((function(t){this.loops.push(t)}),"addLoop"),addMessage:(0,n.K2)((function(t){this.messages.push(t)}),"addMessage"),addNote:(0,n.K2)((function(t){this.notes.push(t)}),"addNote"),lastActor:(0,n.K2)((function(){return this.actors[this.actors.length-1]}),"lastActor"),lastLoop:(0,n.K2)((function(){return this.loops[this.loops.length-1]}),"lastLoop"),lastMessage:(0,n.K2)((function(){return this.messages[this.messages.length-1]}),"lastMessage"),lastNote:(0,n.K2)((function(){return this.notes[this.notes.length-1]}),"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:(0,n.K2)((function(){this.sequenceItems=[];this.activations=[];this.models.clear();this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0};this.verticalPos=0;ot((0,n.D7)())}),"init"),updateVal:(0,n.K2)((function(t,e,a,s){if(t[e]===void 0){t[e]=a}else{t[e]=s(a,t[e])}}),"updateVal"),updateBounds:(0,n.K2)((function(t,e,a,s){const r=this;let i=0;function o(o){return(0,n.K2)((function n(c){i++;const l=r.sequenceItems.length-i+1;r.updateVal(c,"starty",e-l*J.boxMargin,Math.min);r.updateVal(c,"stopy",s+l*J.boxMargin,Math.max);r.updateVal(G.data,"startx",t-l*J.boxMargin,Math.min);r.updateVal(G.data,"stopx",a+l*J.boxMargin,Math.max);if(!(o==="activation")){r.updateVal(c,"startx",t-l*J.boxMargin,Math.min);r.updateVal(c,"stopx",a+l*J.boxMargin,Math.max);r.updateVal(G.data,"starty",e-l*J.boxMargin,Math.min);r.updateVal(G.data,"stopy",s+l*J.boxMargin,Math.max)}}),"updateItemBounds")}(0,n.K2)(o,"updateFn");this.sequenceItems.forEach(o());this.activations.forEach(o("activation"))}),"updateBounds"),insert:(0,n.K2)((function(t,e,a,s){const r=n.Y2.getMin(t,a);const i=n.Y2.getMax(t,a);const o=n.Y2.getMin(e,s);const c=n.Y2.getMax(e,s);this.updateVal(G.data,"startx",r,Math.min);this.updateVal(G.data,"starty",o,Math.min);this.updateVal(G.data,"stopx",i,Math.max);this.updateVal(G.data,"stopy",c,Math.max);this.updateBounds(r,o,i,c)}),"insert"),newActivation:(0,n.K2)((function(t,e,a){const s=a.get(t.from);const r=ct(t.from).length||0;const i=s.x+s.width/2+(r-1)*J.activationWidth/2;this.activations.push({startx:i,starty:this.verticalPos+2,stopx:i+J.activationWidth,stopy:void 0,actor:t.from,anchored:X.anchorElement(e)})}),"newActivation"),endActivation:(0,n.K2)((function(t){const e=this.activations.map((function(t){return t.actor})).lastIndexOf(t.from);return this.activations.splice(e,1)[0]}),"endActivation"),createLoop:(0,n.K2)((function(t={message:void 0,wrap:false,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}}),"createLoop"),newLoop:(0,n.K2)((function(t={message:void 0,wrap:false,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))}),"newLoop"),endLoop:(0,n.K2)((function(){return this.sequenceItems.pop()}),"endLoop"),isLoopOverlap:(0,n.K2)((function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:false}),"isLoopOverlap"),addSectionToLoop:(0,n.K2)((function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[];e.sectionTitles=e.sectionTitles||[];e.sections.push({y:G.getVerticalPos(),height:0});e.sectionTitles.push(t);this.sequenceItems.push(e)}),"addSectionToLoop"),saveVerticalPos:(0,n.K2)((function(){if(this.isLoopOverlap()){this.savedVerticalPos=this.verticalPos}}),"saveVerticalPos"),resetVerticalPos:(0,n.K2)((function(){if(this.isLoopOverlap()){this.verticalPos=this.savedVerticalPos}}),"resetVerticalPos"),bumpVerticalPos:(0,n.K2)((function(t){this.verticalPos=this.verticalPos+t;this.data.stopy=n.Y2.getMax(this.data.stopy,this.verticalPos)}),"bumpVerticalPos"),getVerticalPos:(0,n.K2)((function(){return this.verticalPos}),"getVerticalPos"),getBounds:(0,n.K2)((function(){return{bounds:this.data,models:this.models}}),"getBounds")};var Z=(0,n.K2)((async function(t,e){G.bumpVerticalPos(J.boxMargin);e.height=J.boxMargin;e.starty=G.getVerticalPos();const a=(0,s.PB)();a.x=e.startx;a.y=e.starty;a.width=e.width||J.width;a.class="note";const r=t.append("g");const i=X.drawRect(r,a);const o=(0,s.HT)();o.x=e.startx;o.y=e.starty;o.width=a.width;o.dy="1em";o.text=e.message;o.class="noteText";o.fontFamily=J.noteFontFamily;o.fontSize=J.noteFontSize;o.fontWeight=J.noteFontWeight;o.anchor=J.noteAlign;o.textMargin=J.noteMargin;o.valign="center";const c=(0,n.Wi)(o.text)?await I(r,o):L(r,o);const l=Math.round(c.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));i.attr("height",l+2*J.noteMargin);e.height+=l+2*J.noteMargin;G.bumpVerticalPos(l+2*J.noteMargin);e.stopy=e.starty+l+2*J.noteMargin;e.stopx=e.startx+a.width;G.insert(e.startx,e.starty,e.stopx,e.stopy);G.models.addNote(e)}),"drawNote");var Q=(0,n.K2)((t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight})),"messageFont");var tt=(0,n.K2)((t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight})),"noteFont");var et=(0,n.K2)((t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight})),"actorFont");async function at(t,e){G.bumpVerticalPos(10);const{startx:a,stopx:s,message:r}=e;const o=n.Y2.splitBreaks(r).length;const c=(0,n.Wi)(r);const l=c?await(0,n.Dl)(r,(0,n.D7)()):i._K.calculateTextDimensions(r,Q(J));if(!c){const t=l.height/o;e.height+=t;G.bumpVerticalPos(t)}let d;let h=l.height-10;const p=l.width;if(a===s){d=G.getVerticalPos()+h;if(!J.rightAngles){h+=J.boxMargin;d=G.getVerticalPos()+h}h+=30;const t=n.Y2.getMax(p/2,J.width/2);G.insert(a-t,G.getVerticalPos()-10+h,s+t,G.getVerticalPos()+30+h)}else{h+=J.boxMargin;d=G.getVerticalPos()+h;G.insert(a,d-10,s,d)}G.bumpVerticalPos(h);e.height+=h;e.stopy=e.starty+e.height;G.insert(e.fromBounds,e.starty,e.toBounds,e.stopy);return d}(0,n.K2)(at,"boundMessage");var st=(0,n.K2)((async function(t,e,a,r){const{startx:o,stopx:c,starty:l,message:d,type:h,sequenceIndex:p,sequenceVisible:g}=e;const u=i._K.calculateTextDimensions(d,Q(J));const f=(0,s.HT)();f.x=o;f.y=l+10;f.width=c-o;f.class="messageText";f.dy="1em";f.text=d;f.fontFamily=J.messageFontFamily;f.fontSize=J.messageFontSize;f.fontWeight=J.messageFontWeight;f.anchor=J.messageAlign;f.valign="center";f.textMargin=J.wrapPadding;f.tspan=false;if((0,n.Wi)(f.text)){await I(t,f,{startx:o,stopx:c,starty:a})}else{L(t,f)}const x=u.width;let y;if(o===c){if(J.rightAngles){y=t.append("path").attr("d",`M ${o},${a} H ${o+n.Y2.getMax(J.width/2,x/2)} V ${a+25} H ${o}`)}else{y=t.append("path").attr("d","M "+o+","+a+" C "+(o+60)+","+(a-10)+" "+(o+60)+","+(a+30)+" "+o+","+(a+20))}}else{y=t.append("line");y.attr("x1",o);y.attr("y1",a);y.attr("x2",c);y.attr("y2",a)}if(h===r.db.LINETYPE.DOTTED||h===r.db.LINETYPE.DOTTED_CROSS||h===r.db.LINETYPE.DOTTED_POINT||h===r.db.LINETYPE.DOTTED_OPEN||h===r.db.LINETYPE.BIDIRECTIONAL_DOTTED){y.style("stroke-dasharray","3, 3");y.attr("class","messageLine1")}else{y.attr("class","messageLine0")}let b="";if(J.arrowMarkerAbsolute){b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search;b=b.replace(/\(/g,"\\(");b=b.replace(/\)/g,"\\)")}y.attr("stroke-width",2);y.attr("stroke","none");y.style("fill","none");if(h===r.db.LINETYPE.SOLID||h===r.db.LINETYPE.DOTTED){y.attr("marker-end","url("+b+"#arrowhead)")}if(h===r.db.LINETYPE.BIDIRECTIONAL_SOLID||h===r.db.LINETYPE.BIDIRECTIONAL_DOTTED){y.attr("marker-start","url("+b+"#arrowhead)");y.attr("marker-end","url("+b+"#arrowhead)")}if(h===r.db.LINETYPE.SOLID_POINT||h===r.db.LINETYPE.DOTTED_POINT){y.attr("marker-end","url("+b+"#filled-head)")}if(h===r.db.LINETYPE.SOLID_CROSS||h===r.db.LINETYPE.DOTTED_CROSS){y.attr("marker-end","url("+b+"#crosshead)")}if(g||J.showSequenceNumbers){y.attr("marker-start","url("+b+"#sequencenumber)");t.append("text").attr("x",o).attr("y",a+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(p)}}),"drawMessage");var rt=(0,n.K2)((function(t,e,a,s,r,i,o){let c=0;let l=0;let d=void 0;let h=0;for(const p of s){const t=e.get(p);const s=t.box;if(d&&d!=s){if(!o){G.models.addBox(d)}l+=J.boxMargin+d.margin}if(s&&s!=d){if(!o){s.x=c+l;s.y=r}l+=s.margin}t.width=t.width||J.width;t.height=n.Y2.getMax(t.height||J.height,J.height);t.margin=t.margin||J.actorMargin;h=n.Y2.getMax(h,t.height);if(a.get(t.name)){l+=t.width/2}t.x=c+l;t.starty=G.getVerticalPos();G.insert(t.x,r,t.x+t.width,t.height);c+=t.width+l;if(t.box){t.box.width=c+s.margin-t.box.x}l=t.margin;d=t.box;G.models.addActor(t)}if(d&&!o){G.models.addBox(d)}G.bumpVerticalPos(h)}),"addActorRenderingData");var it=(0,n.K2)((async function(t,e,a,s){if(!s){for(const s of a){const a=e.get(s);await X.drawActor(t,a,J,false)}}else{let s=0;G.bumpVerticalPos(J.boxMargin*2);for(const r of a){const a=e.get(r);if(!a.stopy){a.stopy=G.getVerticalPos()}const i=await X.drawActor(t,a,J,true);s=n.Y2.getMax(s,i)}G.bumpVerticalPos(s+J.boxMargin)}}),"drawActors");var nt=(0,n.K2)((function(t,e,a,s){let r=0;let i=0;for(const n of a){const a=e.get(n);const o=ut(a);const c=X.drawPopup(t,a,o,J,J.forceMenus,s);if(c.height>r){r=c.height}if(c.width+a.x>i){i=c.width+a.x}}return{maxHeight:r,maxWidth:i}}),"drawActorsPopup");var ot=(0,n.K2)((function(t){(0,n.hH)(J,t);if(t.fontFamily){J.actorFontFamily=J.noteFontFamily=J.messageFontFamily=t.fontFamily}if(t.fontSize){J.actorFontSize=J.noteFontSize=J.messageFontSize=t.fontSize}if(t.fontWeight){J.actorFontWeight=J.noteFontWeight=J.messageFontWeight=t.fontWeight}}),"setConf");var ct=(0,n.K2)((function(t){return G.activations.filter((function(e){return e.actor===t}))}),"actorActivations");var lt=(0,n.K2)((function(t,e){const a=e.get(t);const s=ct(t);const r=s.reduce((function(t,e){return n.Y2.getMin(t,e.startx)}),a.x+a.width/2-1);const i=s.reduce((function(t,e){return n.Y2.getMax(t,e.stopx)}),a.x+a.width/2+1);return[r,i]}),"activationBounds");function dt(t,e,a,s,r){G.bumpVerticalPos(a);let o=s;if(e.id&&e.message&&t[e.id]){const a=t[e.id].width;const r=Q(J);e.message=i._K.wrapLabel(`[${e.message}]`,a-2*J.wrapPadding,r);e.width=a;e.wrap=true;const c=i._K.calculateTextDimensions(e.message,r);const l=n.Y2.getMax(c.height,J.labelBoxHeight);o=s+l;n.Rm.debug(`${l} - ${e.message}`)}r(e);G.bumpVerticalPos(o)}(0,n.K2)(dt,"adjustLoopHeightForWrap");function ht(t,e,a,s,r,i,o){function c(a,s){if(a.x{t.add(e.from);t.add(e.to)}));x=x.filter((e=>t.has(e)))}rt(h,p,g,x,0,y,false);const w=await bt(y,p,E,s);X.insertArrowHead(h);X.insertArrowCrossHead(h);X.insertArrowFilledHead(h);X.insertSequenceNumber(h);function v(t,e){const a=G.endActivation(t);if(a.starty+18>e){a.starty=e-6;e+=12}X.drawActivation(h,a,e,J,ct(t.from).length);G.insert(a.startx,e-10,a.stopx,e)}(0,n.K2)(v,"activeEnd");let k=1;let I=1;const L=[];const _=[];let P=0;for(const o of y){let t,e,a;switch(o.type){case s.db.LINETYPE.NOTE:G.resetVerticalPos();e=o.noteModel;await Z(h,e);break;case s.db.LINETYPE.ACTIVE_START:G.newActivation(o,h,p);break;case s.db.LINETYPE.ACTIVE_END:v(o,G.getVerticalPos());break;case s.db.LINETYPE.LOOP_START:dt(w,o,J.boxMargin,J.boxMargin+J.boxTextMargin,(t=>G.newLoop(t)));break;case s.db.LINETYPE.LOOP_END:t=G.endLoop();await X.drawLoop(h,t,"loop",J);G.bumpVerticalPos(t.stopy-G.getVerticalPos());G.models.addLoop(t);break;case s.db.LINETYPE.RECT_START:dt(w,o,J.boxMargin,J.boxMargin,(t=>G.newLoop(void 0,t.message)));break;case s.db.LINETYPE.RECT_END:t=G.endLoop();_.push(t);G.models.addLoop(t);G.bumpVerticalPos(t.stopy-G.getVerticalPos());break;case s.db.LINETYPE.OPT_START:dt(w,o,J.boxMargin,J.boxMargin+J.boxTextMargin,(t=>G.newLoop(t)));break;case s.db.LINETYPE.OPT_END:t=G.endLoop();await X.drawLoop(h,t,"opt",J);G.bumpVerticalPos(t.stopy-G.getVerticalPos());G.models.addLoop(t);break;case s.db.LINETYPE.ALT_START:dt(w,o,J.boxMargin,J.boxMargin+J.boxTextMargin,(t=>G.newLoop(t)));break;case s.db.LINETYPE.ALT_ELSE:dt(w,o,J.boxMargin+J.boxTextMargin,J.boxMargin,(t=>G.addSectionToLoop(t)));break;case s.db.LINETYPE.ALT_END:t=G.endLoop();await X.drawLoop(h,t,"alt",J);G.bumpVerticalPos(t.stopy-G.getVerticalPos());G.models.addLoop(t);break;case s.db.LINETYPE.PAR_START:case s.db.LINETYPE.PAR_OVER_START:dt(w,o,J.boxMargin,J.boxMargin+J.boxTextMargin,(t=>G.newLoop(t)));G.saveVerticalPos();break;case s.db.LINETYPE.PAR_AND:dt(w,o,J.boxMargin+J.boxTextMargin,J.boxMargin,(t=>G.addSectionToLoop(t)));break;case s.db.LINETYPE.PAR_END:t=G.endLoop();await X.drawLoop(h,t,"par",J);G.bumpVerticalPos(t.stopy-G.getVerticalPos());G.models.addLoop(t);break;case s.db.LINETYPE.AUTONUMBER:k=o.message.start||k;I=o.message.step||I;if(o.message.visible){s.db.enableSequenceNumbers()}else{s.db.disableSequenceNumbers()}break;case s.db.LINETYPE.CRITICAL_START:dt(w,o,J.boxMargin,J.boxMargin+J.boxTextMargin,(t=>G.newLoop(t)));break;case s.db.LINETYPE.CRITICAL_OPTION:dt(w,o,J.boxMargin+J.boxTextMargin,J.boxMargin,(t=>G.addSectionToLoop(t)));break;case s.db.LINETYPE.CRITICAL_END:t=G.endLoop();await X.drawLoop(h,t,"critical",J);G.bumpVerticalPos(t.stopy-G.getVerticalPos());G.models.addLoop(t);break;case s.db.LINETYPE.BREAK_START:dt(w,o,J.boxMargin,J.boxMargin+J.boxTextMargin,(t=>G.newLoop(t)));break;case s.db.LINETYPE.BREAK_END:t=G.endLoop();await X.drawLoop(h,t,"break",J);G.bumpVerticalPos(t.stopy-G.getVerticalPos());G.models.addLoop(t);break;default:try{a=o.msgModel;a.starty=G.getVerticalPos();a.sequenceIndex=k;a.sequenceVisible=s.db.showSequenceNumbers();const t=await at(h,a);ht(o,a,t,P,p,g,u);L.push({messageModel:a,lineStartY:t});G.models.addMessage(a)}catch(K){n.Rm.error("error while drawing message",K)}}if([s.db.LINETYPE.SOLID_OPEN,s.db.LINETYPE.DOTTED_OPEN,s.db.LINETYPE.SOLID,s.db.LINETYPE.DOTTED,s.db.LINETYPE.SOLID_CROSS,s.db.LINETYPE.DOTTED_CROSS,s.db.LINETYPE.SOLID_POINT,s.db.LINETYPE.DOTTED_POINT,s.db.LINETYPE.BIDIRECTIONAL_SOLID,s.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(o.type)){k=k+I}P++}n.Rm.debug("createdActors",g);n.Rm.debug("destroyedActors",u);await it(h,p,x,false);for(const n of L){await st(h,n.messageModel,n.lineStartY,s)}if(J.mirrorActors){await it(h,p,x,true)}_.forEach((t=>X.drawBackgroundRect(h,t)));A(h,p,x,J);for(const n of G.models.boxes){n.height=G.getVerticalPos()-n.y;G.insert(n.x,n.y,n.x+n.width,n.height);n.startx=n.x;n.starty=n.y;n.stopx=n.startx+n.width;n.stopy=n.starty+n.height;n.stroke="rgb(0,0,0, 0.5)";X.drawBox(h,n,J)}if(m){G.bumpVerticalPos(J.boxMargin)}const N=nt(h,p,x,d);const{bounds:M}=G.getBounds();if(M.startx===void 0){M.startx=0}if(M.starty===void 0){M.starty=0}if(M.stopx===void 0){M.stopx=0}if(M.stopy===void 0){M.stopy=0}let D=M.stopy-M.starty;if(D{const a=Q(J);let s=e.actorKeys.reduce(((e,a)=>e+=t.get(a).width+(t.get(a).margin||0)),0);s-=2*J.boxTextMargin;if(e.wrap){e.name=i._K.wrapLabel(e.name,s-2*J.wrapPadding,a)}const o=i._K.calculateTextDimensions(e.name,a);r=n.Y2.getMax(o.height,r);const c=n.Y2.getMax(s,o.width+2*J.wrapPadding);e.margin=J.boxTextMargin;if(st.textMaxHeight=r));return n.Y2.getMax(s,J.height)}(0,n.K2)(ft,"calculateActorMargins");var xt=(0,n.K2)((async function(t,e,a){const s=e.get(t.from);const r=e.get(t.to);const o=s.x;const c=r.x;const l=t.wrap&&t.message;let d=(0,n.Wi)(t.message)?await(0,n.Dl)(t.message,(0,n.D7)()):i._K.calculateTextDimensions(l?i._K.wrapLabel(t.message,J.width,tt(J)):t.message,tt(J));const h={width:l?J.width:n.Y2.getMax(J.width,d.width+2*J.noteMargin),height:0,startx:s.x,stopx:0,starty:0,stopy:0,message:t.message};if(t.placement===a.db.PLACEMENT.RIGHTOF){h.width=l?n.Y2.getMax(J.width,d.width):n.Y2.getMax(s.width/2+r.width/2,d.width+2*J.noteMargin);h.startx=o+(s.width+J.actorMargin)/2}else if(t.placement===a.db.PLACEMENT.LEFTOF){h.width=l?n.Y2.getMax(J.width,d.width+2*J.noteMargin):n.Y2.getMax(s.width/2+r.width/2,d.width+2*J.noteMargin);h.startx=o-h.width+(s.width-J.actorMargin)/2}else if(t.to===t.from){d=i._K.calculateTextDimensions(l?i._K.wrapLabel(t.message,n.Y2.getMax(J.width,s.width),tt(J)):t.message,tt(J));h.width=l?n.Y2.getMax(J.width,s.width):n.Y2.getMax(s.width,J.width,d.width+2*J.noteMargin);h.startx=o+(s.width-h.width)/2}else{h.width=Math.abs(o+s.width/2-(c+r.width/2))+J.actorMargin;h.startx=o2;const g=(0,n.K2)((t=>l?-t:t),"adjustValue");if(t.from===t.to){h=d}else{if(t.activate&&!p){h+=g(J.activationWidth/2-1)}if(![a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN].includes(t.type)){h+=g(3)}if([a.db.LINETYPE.BIDIRECTIONAL_SOLID,a.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)){d-=g(3)}}const u=[s,r,o,c];const f=Math.abs(d-h);if(t.wrap&&t.message){t.message=i._K.wrapLabel(t.message,n.Y2.getMax(f+2*J.wrapPadding,J.width),Q(J))}const x=i._K.calculateTextDimensions(t.message,Q(J));return{width:n.Y2.getMax(t.wrap?0:x.width+2*J.wrapPadding,f+2*J.wrapPadding,J.width),height:0,startx:d,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,u),toBounds:Math.max.apply(null,u)}}),"buildMessageModel");var bt=(0,n.K2)((async function(t,e,a,s){const r={};const i=[];let o,c,l;for(const d of t){switch(d.type){case s.db.LINETYPE.LOOP_START:case s.db.LINETYPE.ALT_START:case s.db.LINETYPE.OPT_START:case s.db.LINETYPE.PAR_START:case s.db.LINETYPE.PAR_OVER_START:case s.db.LINETYPE.CRITICAL_START:case s.db.LINETYPE.BREAK_START:i.push({id:d.id,msg:d.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case s.db.LINETYPE.ALT_ELSE:case s.db.LINETYPE.PAR_AND:case s.db.LINETYPE.CRITICAL_OPTION:if(d.message){o=i.pop();r[o.id]=o;r[d.id]=o;i.push(o)}break;case s.db.LINETYPE.LOOP_END:case s.db.LINETYPE.ALT_END:case s.db.LINETYPE.OPT_END:case s.db.LINETYPE.PAR_END:case s.db.LINETYPE.CRITICAL_END:case s.db.LINETYPE.BREAK_END:o=i.pop();r[o.id]=o;break;case s.db.LINETYPE.ACTIVE_START:{const t=e.get(d.from?d.from:d.to.actor);const a=ct(d.from?d.from:d.to.actor).length;const s=t.x+t.width/2+(a-1)*J.activationWidth/2;const r={startx:s,stopx:s+J.activationWidth,actor:d.from,enabled:true};G.activations.push(r)}break;case s.db.LINETYPE.ACTIVE_END:{const t=G.activations.map((t=>t.actor)).lastIndexOf(d.from);G.activations.splice(t,1).splice(0,1)}break}const t=d.placement!==void 0;if(t){c=await xt(d,e,s);d.noteModel=c;i.forEach((t=>{o=t;o.from=n.Y2.getMin(o.from,c.startx);o.to=n.Y2.getMax(o.to,c.startx+c.width);o.width=n.Y2.getMax(o.width,Math.abs(o.from-o.to))-J.labelBoxWidth}))}else{l=yt(d,e,s);d.msgModel=l;if(l.startx&&l.stopx&&i.length>0){i.forEach((t=>{o=t;if(l.startx===l.stopx){const t=e.get(d.from);const a=e.get(d.to);o.from=n.Y2.getMin(t.x-l.width/2,t.x-t.width/2,o.from);o.to=n.Y2.getMax(a.x+l.width/2,a.x+t.width/2,o.to);o.width=n.Y2.getMax(o.width,Math.abs(o.to-o.from))-J.labelBoxWidth}else{o.from=n.Y2.getMin(l.startx,o.from);o.to=n.Y2.getMax(l.stopx,o.to);o.width=n.Y2.getMax(o.width,l.width)-J.labelBoxWidth}}))}}}G.activations=[];n.Rm.debug("Loop type widths:",r);return r}),"calculateLoopBounds");var mt={bounds:G,drawActors:it,drawActorsPopup:nt,setConf:ot,draw:pt};var Tt={parser:d,get db(){return new u},renderer:mt,styles:x,init:(0,n.K2)((t=>{if(!t.sequence){t.sequence={}}if(t.wrap){t.sequence.wrap=t.wrap;(0,n.XV)({sequence:{wrap:t.wrap}})}}),"init")}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/805.2a0b8ac50aa8e6ab096f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/805.2a0b8ac50aa8e6ab096f.js deleted file mode 100644 index faad3ce33b0b6919717ff787ec0174da9d6c5425..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/805.2a0b8ac50aa8e6ab096f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[805],{27574:(t,e,i)=>{i.d(e,{A:()=>a});var s=i(57991);var r=i(63221);const n=(t,e)=>s.A.lang.round(r.A.parse(t)[e]);const a=n},15051:(t,e,i)=>{i.d(e,{A:()=>n,P:()=>a});var s=i(75905);var r=i(24982);var n=(0,s.K2)(((t,e)=>{let i;if(e==="sandbox"){i=(0,r.Ltv)("#i"+t)}const s=e==="sandbox"?(0,r.Ltv)(i.nodes()[0].contentDocument.body):(0,r.Ltv)("body");const n=s.select(`[id="${t}"]`);return n}),"getDiagramElement");var a=(0,s.K2)(((t,e,i,r)=>{t.attr("class",i);const{width:n,height:a,x:l,y:h}=c(t,e);(0,s.a$)(t,a,n,r);const u=o(l,h,n,a,e);t.attr("viewBox",u);s.Rm.debug(`viewBox configured: ${u} with padding: ${e}`)}),"setupViewPortForSVG");var c=(0,s.K2)(((t,e)=>{const i=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:i.width+e*2,height:i.height+e*2,x:i.x,y:i.y}}),"calculateDimensionsWithPadding");var o=(0,s.K2)(((t,e,i,s,r)=>`${t-r} ${e-r} ${i} ${s}`),"createViewBox")},70805:(t,e,i)=>{i.d(e,{diagram:()=>O});var s=i(15051);var r=i(94065);var n=i(33416);var a=i(94746);var c=i(20778);var o=i(57590);var l=i(68232);var h=i(76261);var u=i(96049);var y=i(75905);var d=i(24982);var b=i(27574);var p=i(3635);var f=function(){var t=(0,y.K2)((function(t,e,i,s){for(i=i||{},s=t.length;s--;i[t[s]]=e);return i}),"o"),e=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,50],i=[1,10],s=[1,11],r=[1,12],n=[1,13],a=[1,20],c=[1,21],o=[1,22],l=[1,23],h=[1,24],u=[1,19],d=[1,25],b=[1,26],p=[1,18],f=[1,33],k=[1,34],_=[1,35],g=[1,36],m=[1,37],E=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,50,63,64,65,66,67],v=[1,42],S=[1,43],O=[1,52],T=[40,50,68,69],A=[1,63],R=[1,61],N=[1,58],I=[1,62],x=[1,64],C=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,63,64,65,66,67],$=[63,64,65,66,67],D=[1,81],w=[1,80],K=[1,78],L=[1,79],M=[6,10,42,47],B=[6,10,13,41,42,47,48,49],F=[1,89],P=[1,88],Y=[1,87],G=[19,56],z=[1,98],U=[1,97],Z=[19,56,58,60];var j={trace:(0,y.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,attribute:51,attributeType:52,attributeName:53,attributeKeyTypeList:54,attributeComment:55,ATTRIBUTE_WORD:56,attributeKeyType:57,",":58,ATTRIBUTE_KEY:59,COMMENT:60,cardinality:61,relType:62,ZERO_OR_ONE:63,ZERO_OR_MORE:64,ONE_OR_MORE:65,ONLY_ONE:66,MD_PARENT:67,NON_IDENTIFYING:68,IDENTIFYING:69,WORD:70,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",56:"ATTRIBUTE_WORD",58:",",59:"ATTRIBUTE_KEY",60:"COMMENT",63:"ZERO_OR_ONE",64:"ZERO_OR_MORE",65:"ONE_OR_MORE",66:"ONLY_ONE",67:"MD_PARENT",68:"NON_IDENTIFYING",69:"IDENTIFYING",70:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[18,1],[18,2],[51,2],[51,3],[51,3],[51,4],[52,1],[53,1],[54,1],[54,3],[57,1],[55,1],[12,3],[61,1],[61,1],[61,1],[61,1],[61,1],[62,1],[62,1],[14,1],[14,1],[14,1]],performAction:(0,y.K2)((function t(e,i,s,r,n,a,c){var o=a.length-1;switch(n){case 1:break;case 2:this.$=[];break;case 3:a[o-1].push(a[o]);this.$=a[o-1];break;case 4:case 5:this.$=a[o];break;case 6:case 7:this.$=[];break;case 8:r.addEntity(a[o-4]);r.addEntity(a[o-2]);r.addRelationship(a[o-4],a[o],a[o-2],a[o-3]);break;case 9:r.addEntity(a[o-8]);r.addEntity(a[o-4]);r.addRelationship(a[o-8],a[o],a[o-4],a[o-5]);r.setClass([a[o-8]],a[o-6]);r.setClass([a[o-4]],a[o-2]);break;case 10:r.addEntity(a[o-6]);r.addEntity(a[o-2]);r.addRelationship(a[o-6],a[o],a[o-2],a[o-3]);r.setClass([a[o-6]],a[o-4]);break;case 11:r.addEntity(a[o-6]);r.addEntity(a[o-4]);r.addRelationship(a[o-6],a[o],a[o-4],a[o-5]);r.setClass([a[o-4]],a[o-2]);break;case 12:r.addEntity(a[o-3]);r.addAttributes(a[o-3],a[o-1]);break;case 13:r.addEntity(a[o-5]);r.addAttributes(a[o-5],a[o-1]);r.setClass([a[o-5]],a[o-3]);break;case 14:r.addEntity(a[o-2]);break;case 15:r.addEntity(a[o-4]);r.setClass([a[o-4]],a[o-2]);break;case 16:r.addEntity(a[o]);break;case 17:r.addEntity(a[o-2]);r.setClass([a[o-2]],a[o]);break;case 18:r.addEntity(a[o-6],a[o-4]);r.addAttributes(a[o-6],a[o-1]);break;case 19:r.addEntity(a[o-8],a[o-6]);r.addAttributes(a[o-8],a[o-1]);r.setClass([a[o-8]],a[o-3]);break;case 20:r.addEntity(a[o-5],a[o-3]);break;case 21:r.addEntity(a[o-7],a[o-5]);r.setClass([a[o-7]],a[o-2]);break;case 22:r.addEntity(a[o-3],a[o-1]);break;case 23:r.addEntity(a[o-5],a[o-3]);r.setClass([a[o-5]],a[o]);break;case 24:case 25:this.$=a[o].trim();r.setAccTitle(this.$);break;case 26:case 27:this.$=a[o].trim();r.setAccDescription(this.$);break;case 32:r.setDirection("TB");break;case 33:r.setDirection("BT");break;case 34:r.setDirection("RL");break;case 35:r.setDirection("LR");break;case 36:this.$=a[o-3];r.addClass(a[o-2],a[o-1]);break;case 37:case 38:case 56:case 64:this.$=[a[o]];break;case 39:case 40:this.$=a[o-2].concat([a[o]]);break;case 41:this.$=a[o-2];r.setClass(a[o-1],a[o]);break;case 42:;this.$=a[o-3];r.addCssStyles(a[o-2],a[o-1]);break;case 43:this.$=[a[o]];break;case 44:a[o-2].push(a[o]);this.$=a[o-2];break;case 46:this.$=a[o-1]+a[o];break;case 54:case 76:case 77:this.$=a[o].replace(/"/g,"");break;case 55:case 78:this.$=a[o];break;case 57:a[o].push(a[o-1]);this.$=a[o];break;case 58:this.$={type:a[o-1],name:a[o]};break;case 59:this.$={type:a[o-2],name:a[o-1],keys:a[o]};break;case 60:this.$={type:a[o-2],name:a[o-1],comment:a[o]};break;case 61:this.$={type:a[o-3],name:a[o-2],keys:a[o-1],comment:a[o]};break;case 62:case 63:case 66:this.$=a[o];break;case 65:a[o-2].push(a[o]);this.$=a[o-2];break;case 67:this.$=a[o].replace(/"/g,"");break;case 68:this.$={cardA:a[o],relType:a[o-1],cardB:a[o-2]};break;case 69:this.$=r.Cardinality.ZERO_OR_ONE;break;case 70:this.$=r.Cardinality.ZERO_OR_MORE;break;case 71:this.$=r.Cardinality.ONE_OR_MORE;break;case 72:this.$=r.Cardinality.ONLY_ONE;break;case 73:this.$=r.Cardinality.MD_PARENT;break;case 74:this.$=r.Identification.NON_IDENTIFYING;break;case 75:this.$=r.Identification.IDENTIFYING;break}}),"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:i,24:s,26:r,28:n,29:14,30:15,31:16,32:17,33:a,34:c,35:o,36:l,37:h,40:u,43:d,44:b,50:p},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:27,11:9,22:i,24:s,26:r,28:n,29:14,30:15,31:16,32:17,33:a,34:c,35:o,36:l,37:h,40:u,43:d,44:b,50:p},t(e,[2,5]),t(e,[2,6]),t(e,[2,16],{12:28,61:32,15:[1,29],17:[1,30],20:[1,31],63:f,64:k,65:_,66:g,67:m}),{23:[1,38]},{25:[1,39]},{27:[1,40]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),t(e,[2,30]),t(e,[2,31]),t(E,[2,54]),t(E,[2,55]),t(e,[2,32]),t(e,[2,33]),t(e,[2,34]),t(e,[2,35]),{16:41,40:v,41:S},{16:44,40:v,41:S},{16:45,40:v,41:S},t(e,[2,4]),{11:46,40:u,50:p},{16:47,40:v,41:S},{18:48,19:[1,49],51:50,52:51,56:O},{11:53,40:u,50:p},{62:54,68:[1,55],69:[1,56]},t(T,[2,69]),t(T,[2,70]),t(T,[2,71]),t(T,[2,72]),t(T,[2,73]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),{13:A,38:57,41:R,42:N,45:59,46:60,48:I,49:x},t(C,[2,37]),t(C,[2,38]),{16:65,40:v,41:S,42:N},{13:A,38:66,41:R,42:N,45:59,46:60,48:I,49:x},{13:[1,67],15:[1,68]},t(e,[2,17],{61:32,12:69,17:[1,70],42:N,63:f,64:k,65:_,66:g,67:m}),{19:[1,71]},t(e,[2,14]),{18:72,19:[2,56],51:50,52:51,56:O},{53:73,56:[1,74]},{56:[2,62]},{21:[1,75]},{61:76,63:f,64:k,65:_,66:g,67:m},t($,[2,74]),t($,[2,75]),{6:D,10:w,39:77,42:K,47:L},{40:[1,82],41:[1,83]},t(M,[2,43],{46:84,13:A,41:R,48:I,49:x}),t(B,[2,45]),t(B,[2,50]),t(B,[2,51]),t(B,[2,52]),t(B,[2,53]),t(e,[2,41],{42:N}),{6:D,10:w,39:85,42:K,47:L},{14:86,40:F,50:P,70:Y},{16:90,40:v,41:S},{11:91,40:u,50:p},{18:92,19:[1,93],51:50,52:51,56:O},t(e,[2,12]),{19:[2,57]},t(G,[2,58],{54:94,55:95,57:96,59:z,60:U}),t([19,56,59,60],[2,63]),t(e,[2,22],{15:[1,100],17:[1,99]}),t([40,50],[2,68]),t(e,[2,36]),{13:A,41:R,45:101,46:60,48:I,49:x},t(e,[2,47]),t(e,[2,48]),t(e,[2,49]),t(C,[2,39]),t(C,[2,40]),t(B,[2,46]),t(e,[2,42]),t(e,[2,8]),t(e,[2,76]),t(e,[2,77]),t(e,[2,78]),{13:[1,102],42:N},{13:[1,104],15:[1,103]},{19:[1,105]},t(e,[2,15]),t(G,[2,59],{55:106,58:[1,107],60:U}),t(G,[2,60]),t(Z,[2,64]),t(G,[2,67]),t(Z,[2,66]),{18:108,19:[1,109],51:50,52:51,56:O},{16:110,40:v,41:S},t(M,[2,44],{46:84,13:A,41:R,48:I,49:x}),{14:111,40:F,50:P,70:Y},{16:112,40:v,41:S},{14:113,40:F,50:P,70:Y},t(e,[2,13]),t(G,[2,61]),{57:114,59:z},{19:[1,115]},t(e,[2,20]),t(e,[2,23],{17:[1,116],42:N}),t(e,[2,11]),{13:[1,117],42:N},t(e,[2,10]),t(Z,[2,65]),t(e,[2,18]),{18:118,19:[1,119],51:50,52:51,56:O},{14:120,40:F,50:P,70:Y},{19:[1,121]},t(e,[2,21]),t(e,[2,9]),t(e,[2,19])],defaultActions:{52:[2,62],72:[2,57]},parseError:(0,y.K2)((function t(e,i){if(i.recoverable){this.trace(e)}else{var s=new Error(e);s.hash=i;throw s}}),"parseError"),parse:(0,y.K2)((function t(e){var i=this,s=[0],r=[],n=[null],a=[],c=this.table,o="",l=0,h=0,u=0,d=2,b=1;var p=a.slice.call(arguments,1);var f=Object.create(this.lexer);var k={yy:{}};for(var _ in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,_)){k.yy[_]=this.yy[_]}}f.setInput(e,k.yy);k.yy.lexer=f;k.yy.parser=this;if(typeof f.yylloc=="undefined"){f.yylloc={}}var g=f.yylloc;a.push(g);var m=f.options&&f.options.ranges;if(typeof k.yy.parseError==="function"){this.parseError=k.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function E(t){s.length=s.length-2*t;n.length=n.length-t;a.length=a.length-t}(0,y.K2)(E,"popStack");function v(){var t;t=r.pop()||f.lex()||b;if(typeof t!=="number"){if(t instanceof Array){r=t;t=r.pop()}t=i.symbols_[t]||t}return t}(0,y.K2)(v,"lex");var S,O,T,A,R,N,I={},x,C,$,D;while(true){T=s[s.length-1];if(this.defaultActions[T]){A=this.defaultActions[T]}else{if(S===null||typeof S=="undefined"){S=v()}A=c[T]&&c[T][S]}if(typeof A==="undefined"||!A.length||!A[0]){var w="";D=[];for(x in c[T]){if(this.terminals_[x]&&x>d){D.push("'"+this.terminals_[x]+"'")}}if(f.showPosition){w="Parse error on line "+(l+1)+":\n"+f.showPosition()+"\nExpecting "+D.join(", ")+", got '"+(this.terminals_[S]||S)+"'"}else{w="Parse error on line "+(l+1)+": Unexpected "+(S==b?"end of input":"'"+(this.terminals_[S]||S)+"'")}this.parseError(w,{text:f.match,token:this.terminals_[S]||S,line:f.yylineno,loc:g,expected:D})}if(A[0]instanceof Array&&A.length>1){throw new Error("Parse Error: multiple actions possible at state: "+T+", token: "+S)}switch(A[0]){case 1:s.push(S);n.push(f.yytext);a.push(f.yylloc);s.push(A[1]);S=null;if(!O){h=f.yyleng;o=f.yytext;l=f.yylineno;g=f.yylloc;if(u>0){u--}}else{S=O;O=null}break;case 2:C=this.productions_[A[1]][1];I.$=n[n.length-C];I._$={first_line:a[a.length-(C||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(C||1)].first_column,last_column:a[a.length-1].last_column};if(m){I._$.range=[a[a.length-(C||1)].range[0],a[a.length-1].range[1]]}N=this.performAction.apply(I,[o,h,l,k.yy,A[1],n,a].concat(p));if(typeof N!=="undefined"){return N}if(C){s=s.slice(0,-1*C*2);n=n.slice(0,-1*C);a=a.slice(0,-1*C)}s.push(this.productions_[A[1]][0]);n.push(I.$);a.push(I._$);$=c[s[s.length-2]][s[s.length-1]];s.push($);break;case 3:return true}}return true}),"parse")};var W=function(){var t={EOF:1,parseError:(0,y.K2)((function t(e,i){if(this.yy.parser){this.yy.parser.parseError(e,i)}else{throw new Error(e)}}),"parseError"),setInput:(0,y.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,y.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,y.K2)((function(t){var e=t.length;var i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(i.length-1){this.yylineno-=i.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===s.length?this.yylloc.first_column:0)+s[s.length-i.length].length-i[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,y.K2)((function(){this._more=true;return this}),"more"),reject:(0,y.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,y.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,y.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,y.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,y.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,y.K2)((function(t,e){var i,s,r;if(this.options.backtrack_lexer){r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){r.yylloc.range=this.yylloc.range.slice(0)}}s=t[0].match(/(?:\r\n?|\n).*/g);if(s){this.yylineno+=s.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(i){return i}else if(this._backtrack){for(var n in r){this[n]=r[n]}return false}return false}),"test_match"),next:(0,y.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,i,s;if(!this._more){this.yytext="";this.match=""}var r=this._currentRules();for(var n=0;ne[0].length)){e=i;s=n;if(this.options.backtrack_lexer){t=this.test_match(i,r[n]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,r[s]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,y.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,y.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,y.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,y.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,y.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,y.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,y.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,y.K2)((function t(e,i,s,r){var n=r;switch(s){case 0:this.begin("acc_title");return 24;break;case 1:this.popState();return"acc_title_value";break;case 2:this.begin("acc_descr");return 26;break;case 3:this.popState();return"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";break;case 7:return 33;break;case 8:return 34;break;case 9:return 35;break;case 10:return 36;break;case 11:return 10;break;case 12:break;case 13:return 8;break;case 14:return 50;break;case 15:return 70;break;case 16:return 4;break;case 17:this.begin("block");return 17;break;case 18:return 49;break;case 19:return 49;break;case 20:return 42;break;case 21:return 15;break;case 22:return 13;break;case 23:break;case 24:return 59;break;case 25:return 56;break;case 26:return 56;break;case 27:return 60;break;case 28:break;case 29:this.popState();return 19;break;case 30:return i.yytext[0];break;case 31:return 20;break;case 32:return 21;break;case 33:this.begin("style");return 44;break;case 34:this.popState();return 10;break;case 35:break;case 36:return 13;break;case 37:return 42;break;case 38:return 49;break;case 39:this.begin("style");return 37;break;case 40:return 43;break;case 41:return 63;break;case 42:return 65;break;case 43:return 65;break;case 44:return 65;break;case 45:return 63;break;case 46:return 63;break;case 47:return 64;break;case 48:return 64;break;case 49:return 64;break;case 50:return 64;break;case 51:return 64;break;case 52:return 65;break;case 53:return 64;break;case 54:return 65;break;case 55:return 66;break;case 56:return 66;break;case 57:return 66;break;case 58:return 66;break;case 59:return 63;break;case 60:return 64;break;case 61:return 65;break;case 62:return 67;break;case 63:return 68;break;case 64:return 69;break;case 65:return 69;break;case 66:return 68;break;case 67:return 68;break;case 68:return 68;break;case 69:return 41;break;case 70:return 47;break;case 71:return 40;break;case 72:return 48;break;case 73:return i.yytext[0];break;case 74:return 6;break}}),"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:[0-9])/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,69,70],inclusive:false},acc_descr_multiline:{rules:[5,6],inclusive:false},acc_descr:{rules:[3],inclusive:false},acc_title:{rules:[1],inclusive:false},block:{rules:[23,24,25,26,27,28,29,30],inclusive:false},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,71,72,73,74],inclusive:true}}};return t}();j.lexer=W;function X(){this.yy={}}(0,y.K2)(X,"Parser");X.prototype=j;j.Parser=X;return new X}();f.parser=f;var k=f;var _=class{constructor(){this.entities=new Map;this.relationships=[];this.classes=new Map;this.direction="TB";this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"};this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"};this.setAccTitle=y.SV;this.getAccTitle=y.iN;this.setAccDescription=y.EI;this.getAccDescription=y.m7;this.setDiagramTitle=y.ke;this.getDiagramTitle=y.ab;this.getConfig=(0,y.K2)((()=>(0,y.D7)().er),"getConfig");this.clear();this.addEntity=this.addEntity.bind(this);this.addAttributes=this.addAttributes.bind(this);this.addRelationship=this.addRelationship.bind(this);this.setDirection=this.setDirection.bind(this);this.addCssStyles=this.addCssStyles.bind(this);this.addClass=this.addClass.bind(this);this.setClass=this.setClass.bind(this);this.setAccTitle=this.setAccTitle.bind(this);this.setAccDescription=this.setAccDescription.bind(this)}static{(0,y.K2)(this,"ErDB")}addEntity(t,e=""){if(!this.entities.has(t)){this.entities.set(t,{id:`entity-${t}-${this.entities.size}`,label:t,attributes:[],alias:e,shape:"erBox",look:(0,y.D7)().look??"default",cssClasses:"default",cssStyles:[]});y.Rm.info("Added new entity :",t)}else if(!this.entities.get(t)?.alias&&e){this.entities.get(t).alias=e;y.Rm.info(`Add alias '${e}' to entity '${t}'`)}return this.entities.get(t)}getEntity(t){return this.entities.get(t)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(t,e){const i=this.addEntity(t);let s;for(s=e.length-1;s>=0;s--){if(!e[s].keys){e[s].keys=[]}if(!e[s].comment){e[s].comment=""}i.attributes.push(e[s]);y.Rm.debug("Added attribute ",e[s].name)}}addRelationship(t,e,i,s){const r=this.entities.get(t);const n=this.entities.get(i);if(!r||!n){return}const a={entityA:r.id,roleA:e,entityB:n.id,relSpec:s};this.relationships.push(a);y.Rm.debug("Added new relationship :",a)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(t){this.direction=t}getCompiledStyles(t){let e=[];for(const i of t){const t=this.classes.get(i);if(t?.styles){e=[...e,...t.styles??[]].map((t=>t.trim()))}if(t?.textStyles){e=[...e,...t.textStyles??[]].map((t=>t.trim()))}}return e}addCssStyles(t,e){for(const i of t){const t=this.entities.get(i);if(!e||!t){return}for(const i of e){t.cssStyles.push(i)}}}addClass(t,e){t.forEach((t=>{let i=this.classes.get(t);if(i===void 0){i={id:t,styles:[],textStyles:[]};this.classes.set(t,i)}if(e){e.forEach((function(t){if(/color/.exec(t)){const e=t.replace("fill","bgFill");i.textStyles.push(e)}i.styles.push(t)}))}}))}setClass(t,e){for(const i of t){const t=this.entities.get(i);if(t){for(const i of e){t.cssClasses+=" "+i}}}}clear(){this.entities=new Map;this.classes=new Map;this.relationships=[];(0,y.IU)()}getData(){const t=[];const e=[];const i=(0,y.D7)();for(const r of this.entities.keys()){const e=this.entities.get(r);if(e){e.cssCompiledStyles=this.getCompiledStyles(e.cssClasses.split(" "));t.push(e)}}let s=0;for(const r of this.relationships){const t={id:(0,u.rY)(r.entityA,r.entityB,{prefix:"id",counter:s++}),type:"normal",curve:"basis",start:r.entityA,end:r.entityB,label:r.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:r.relSpec.cardB.toLowerCase(),arrowTypeEnd:r.relSpec.cardA.toLowerCase(),pattern:r.relSpec.relType=="IDENTIFYING"?"solid":"dashed",look:i.look};e.push(t)}return{nodes:t,edges:e,other:{},config:i,direction:"TB"}}};var g={};(0,y.VA)(g,{draw:()=>m});var m=(0,y.K2)((async function(t,e,i,n){y.Rm.info("REF0:");y.Rm.info("Drawing er diagram (unified)",e);const{securityLevel:a,er:c,layout:o}=(0,y.D7)();const l=n.db.getData();const h=(0,s.A)(e,a);l.type=n.type;l.layoutAlgorithm=(0,r.q7)(o);l.config.flowchart.nodeSpacing=c?.nodeSpacing||140;l.config.flowchart.rankSpacing=c?.rankSpacing||80;l.direction=n.db.getDirection();l.markers=["only_one","zero_or_one","one_or_more","zero_or_more"];l.diagramId=e;await(0,r.XX)(l,h);if(l.layoutAlgorithm==="elk"){h.select(".edges").lower()}const b=h.selectAll('[id*="-background"]');if(Array.from(b).length>0){b.each((function(){const t=(0,d.Ltv)(this);const e=t.attr("id");const i=e.replace("-background","");const s=h.select(`#${CSS.escape(i)}`);if(!s.empty()){const e=s.attr("transform");t.attr("transform",e)}}))}const p=8;u._K.insertTitle(h,"erDiagramTitleText",c?.titleTopMargin??25,n.db.getDiagramTitle());(0,s.P)(h,p,"erDiagram",c?.useMaxWidth??true)}),"draw");var E=(0,y.K2)(((t,e)=>{const i=b.A;const s=i(t,"r");const r=i(t,"g");const n=i(t,"b");return p.A(s,r,n,e)}),"fade");var v=(0,y.K2)((t=>`\n .entityBox {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${t.tertiaryColor};\n opacity: 0.7;\n background-color: ${t.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .labelBkg {\n background-color: ${E(t.tertiaryColor,.5)};\n }\n\n .edgeLabel .label {\n fill: ${t.nodeBorder};\n font-size: 14px;\n }\n\n .label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .edge-pattern-dashed {\n stroke-dasharray: 8,8;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon\n {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .relationshipLine {\n stroke: ${t.lineColor};\n stroke-width: 1;\n fill: none;\n }\n\n .marker {\n fill: none !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n }\n`),"getStyles");var S=v;var O={parser:k,get db(){return new _},renderer:g,styles:S}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8103.ed2b21471519b58a3d73.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8103.ed2b21471519b58a3d73.js deleted file mode 100644 index ff9e0cecde5e062d9279aa89ec1144c055a7468a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8103.ed2b21471519b58a3d73.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8103],{88103:(O,Q,e)=>{e.r(Q);e.d(Q,{autoCloseTags:()=>rO,completionPath:()=>L,esLint:()=>SO,javascript:()=>aO,javascriptLanguage:()=>B,jsxLanguage:()=>M,localCompletionSource:()=>A,scopeCompletionSource:()=>D,snippets:()=>k,tsxLanguage:()=>F,typescriptLanguage:()=>K,typescriptSnippets:()=>_});var a=e(27421);var i=e(45145);const t=301,$=1,r=2,S=302,n=304,P=305,o=3,Z=4;const l=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];const c=125,X=59,s=47,p=42,g=43,Y=45;const b=new a.Aj({start:false,shift(O,Q){return Q==o||Q==Z||Q==n?O:Q==P},strict:false});const f=new a.Lu(((O,Q)=>{let{next:e}=O;if((e==c||e==-1||Q.context)&&Q.canShift(S))O.acceptToken(S)}),{contextual:true,fallback:true});const h=new a.Lu(((O,Q)=>{let{next:e}=O,a;if(l.indexOf(e)>-1)return;if(e==s&&((a=O.peek(1))==s||a==p))return;if(e!=c&&e!=X&&e!=-1&&!Q.context&&Q.canShift(t))O.acceptToken(t)}),{contextual:true});const u=new a.Lu(((O,Q)=>{let{next:e}=O;if(e==g||e==Y){O.advance();if(e==O.next){O.advance();let e=!Q.context&&Q.canShift($);O.acceptToken(e?$:r)}}}),{contextual:true});const W=(0,i.styleTags)({"get set async static":i.tags.modifier,"for while do if else switch try catch finally return throw break continue default case":i.tags.controlKeyword,"in of await yield void typeof delete instanceof":i.tags.operatorKeyword,"let var const function class extends":i.tags.definitionKeyword,"import export from":i.tags.moduleKeyword,"with debugger as new":i.tags.keyword,TemplateString:i.tags.special(i.tags.string),super:i.tags.atom,BooleanLiteral:i.tags.bool,this:i.tags.self,null:i.tags.null,Star:i.tags.modifier,VariableName:i.tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":i.tags.function(i.tags.variableName),VariableDefinition:i.tags.definition(i.tags.variableName),Label:i.tags.labelName,PropertyName:i.tags.propertyName,PrivatePropertyName:i.tags.special(i.tags.propertyName),"CallExpression/MemberExpression/PropertyName":i.tags.function(i.tags.propertyName),"FunctionDeclaration/VariableDefinition":i.tags.function(i.tags.definition(i.tags.variableName)),"ClassDeclaration/VariableDefinition":i.tags.definition(i.tags.className),PropertyDefinition:i.tags.definition(i.tags.propertyName),PrivatePropertyDefinition:i.tags.definition(i.tags.special(i.tags.propertyName)),UpdateOp:i.tags.updateOperator,LineComment:i.tags.lineComment,BlockComment:i.tags.blockComment,Number:i.tags.number,String:i.tags.string,Escape:i.tags.escape,ArithOp:i.tags.arithmeticOperator,LogicOp:i.tags.logicOperator,BitOp:i.tags.bitwiseOperator,CompareOp:i.tags.compareOperator,RegExp:i.tags.regexp,Equals:i.tags.definitionOperator,Arrow:i.tags.function(i.tags.punctuation),": Spread":i.tags.punctuation,"( )":i.tags.paren,"[ ]":i.tags.squareBracket,"{ }":i.tags.brace,"InterpolationStart InterpolationEnd":i.tags.special(i.tags.brace),".":i.tags.derefOperator,", ;":i.tags.separator,"@":i.tags.meta,TypeName:i.tags.typeName,TypeDefinition:i.tags.definition(i.tags.typeName),"type enum interface implements namespace module declare":i.tags.definitionKeyword,"abstract global Privacy readonly override":i.tags.modifier,"is keyof unique infer":i.tags.operatorKeyword,JSXAttributeValue:i.tags.attributeValue,JSXText:i.tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":i.tags.angleBracket,"JSXIdentifier JSXNameSpacedName":i.tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":i.tags.attributeName,"JSXBuiltin/JSXIdentifier":i.tags.standard(i.tags.tagName)});const U={__proto__:null,export:14,as:19,from:27,default:30,async:35,function:36,extends:46,this:50,true:58,false:58,null:70,void:74,typeof:78,super:96,new:130,delete:146,yield:155,await:159,class:164,public:219,private:219,protected:219,readonly:221,instanceof:240,satisfies:243,in:244,const:246,import:278,keyof:333,unique:337,infer:343,is:379,abstract:399,implements:401,type:403,let:406,var:408,interface:415,enum:419,namespace:425,module:427,declare:431,global:435,for:456,of:465,while:468,with:472,do:476,if:480,else:482,switch:486,case:492,try:498,catch:502,finally:506,return:510,throw:514,break:518,continue:522,debugger:526};const m={__proto__:null,async:117,get:119,set:121,public:181,private:181,protected:181,static:183,abstract:185,override:187,readonly:193,accessor:195,new:383};const y={__proto__:null,"<":137};const x=a.U1.deserialize({version:14,states:"$BhO`QUOOO%QQUOOO'TQWOOP(_OSOOO*mQ(CjO'#CfO*tOpO'#CgO+SO!bO'#CgO+bO07`O'#DZO-sQUO'#DaO.TQUO'#DlO%QQUO'#DvO0[QUO'#EOOOQ(CY'#EW'#EWO0rQSO'#ETOOQO'#I_'#I_O0zQSO'#GjOOQO'#Eh'#EhO1VQSO'#EgO1[QSO'#EgO3^Q(CjO'#JbO5}Q(CjO'#JcO6kQSO'#FVO6pQ#tO'#FnOOQ(CY'#F_'#F_O6{O&jO'#F_O7ZQ,UO'#FuO8qQSO'#FtOOQ(CY'#Jc'#JcOOQ(CW'#Jb'#JbOOQQ'#J|'#J|O8vQSO'#IOO8{Q(C[O'#IPOOQQ'#JO'#JOOOQQ'#IT'#ITQ`QUOOO%QQUO'#DnO9TQUO'#DzO%QQUO'#D|O9[QSO'#GjO9aQ,UO'#ClO9oQSO'#EfO9zQSO'#EqO:PQ,UO'#F^O:nQSO'#GjO:sQSO'#GnO;OQSO'#GnO;^QSO'#GqO;^QSO'#GrO;^QSO'#GtO9[QSO'#GwO;}QSO'#GzO=`QSO'#CbO=pQSO'#HXO=xQSO'#H_O=xQSO'#HaO`QUO'#HcO=xQSO'#HeO=xQSO'#HhO=}QSO'#HnO>SQ(C]O'#HtO%QQUO'#HvO>_Q(C]O'#HxO>jQ(C]O'#HzO8{Q(C[O'#H|O>uQ(CjO'#CfO?wQWO'#DfQOQSOOO@_QSO'#EPO9aQ,UO'#EfO@jQSO'#EfO@uQ`O'#F^OOQQ'#Cd'#CdOOQ(CW'#Dk'#DkOOQ(CW'#Jf'#JfO%QQUO'#JfOBOQWO'#E_OOQ(CW'#E^'#E^OBYQ(C`O'#E_OBtQWO'#ESOOQO'#Ji'#JiOCYQWO'#ESOCgQWO'#E_OC}QWO'#EeODQQWO'#E_O@}QWO'#E_OBtQWO'#E_PDkO?MpO'#C`POOO)CDm)CDmOOOO'#IU'#IUODvOpO,59ROOQ(CY,59R,59ROOOO'#IV'#IVOEUO!bO,59RO%QQUO'#D]OOOO'#IX'#IXOEdO07`O,59uOOQ(CY,59u,59uOErQUO'#IYOFVQSO'#JdOHXQbO'#JdO+pQUO'#JdOH`QSO,59{OHvQSO'#EhOITQSO'#JqOI`QSO'#JpOI`QSO'#JpOIhQSO,5;UOImQSO'#JoOOQ(CY,5:W,5:WOItQUO,5:WOKuQ(CjO,5:bOLfQSO,5:jOLkQSO'#JmOMeQ(C[O'#JnO:sQSO'#JmOMlQSO'#JmOMtQSO,5;TOMyQSO'#JmOOQ(CY'#Cf'#CfO%QQUO'#EOONmQ`O,5:oOOQO'#Jj'#JjOOQO-E<]-E<]O9[QSO,5=UO! TQSO,5=UO! YQUO,5;RO!#]Q,UO'#EcO!$pQSO,5;RO!&YQ,UO'#DpO!&aQUO'#DuO!&kQWO,5;[O!&sQWO,5;[O%QQUO,5;[OOQQ'#E}'#E}OOQQ'#FP'#FPO%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]OOQQ'#FT'#FTO!'RQUO,5;nOOQ(CY,5;s,5;sOOQ(CY,5;t,5;tO!)UQSO,5;tOOQ(CY,5;u,5;uO%QQUO'#IeO!)^Q(C[O,5jOOQQ'#JW'#JWOOQQ,5>k,5>kOOQQ-EgQWO'#EkOOQ(CW'#Jo'#JoO!>nQ(C[O'#J}O8{Q(C[O,5=YO;^QSO,5=`OOQO'#Cr'#CrO!>yQWO,5=]O!?RQ,UO,5=^O!?^QSO,5=`O!?cQ`O,5=cO=}QSO'#G|O9[QSO'#HOO!?kQSO'#HOO9aQ,UO'#HRO!?pQSO'#HROOQQ,5=f,5=fO!?uQSO'#HSO!?}QSO'#ClO!@SQSO,58|O!@^QSO,58|O!BfQUO,58|OOQQ,58|,58|O!BsQ(C[O,58|O%QQUO,58|O!COQUO'#HZOOQQ'#H['#H[OOQQ'#H]'#H]O`QUO,5=sO!C`QSO,5=sO`QUO,5=yO`QUO,5={O!CeQSO,5=}O`QUO,5>PO!CjQSO,5>SO!CoQUO,5>YOOQQ,5>`,5>`O%QQUO,5>`O8{Q(C[O,5>bOOQQ,5>d,5>dO!GvQSO,5>dOOQQ,5>f,5>fO!GvQSO,5>fOOQQ,5>h,5>hO!G{QWO'#DXO%QQUO'#JfO!HjQWO'#JfO!IXQWO'#DgO!IjQWO'#DgO!K{QUO'#DgO!LSQSO'#JeO!L[QSO,5:QO!LaQSO'#ElO!LoQSO'#JrO!LwQSO,5;VO!L|QWO'#DgO!MZQWO'#EROOQ(CY,5:k,5:kO%QQUO,5:kO!MbQSO,5:kO=}QSO,5;QO!;xQWO,5;QO!tO+pQUO,5>tOOQO,5>z,5>zO#$vQUO'#IYOOQO-EtO$8XQSO1G5jO$8aQSO1G5vO$8iQbO1G5wO:sQSO,5>zO$8sQSO1G5sO$8sQSO1G5sO:sQSO1G5sO$8{Q(CjO1G5tO%QQUO1G5tO$9]Q(C[O1G5tO$9nQSO,5>|O:sQSO,5>|OOQO,5>|,5>|O$:SQSO,5>|OOQO-E<`-E<`OOQO1G0]1G0]OOQO1G0_1G0_O!)XQSO1G0_OOQQ7+([7+([O!#]Q,UO7+([O%QQUO7+([O$:bQSO7+([O$:mQ,UO7+([O$:{Q(CjO,59nO$=TQ(CjO,5UOOQQ,5>U,5>UO%QQUO'#HkO%&qQSO'#HmOOQQ,5>[,5>[O:sQSO,5>[OOQQ,5>^,5>^OOQQ7+)`7+)`OOQQ7+)f7+)fOOQQ7+)j7+)jOOQQ7+)l7+)lO%&vQWO1G5lO%'[Q$IUO1G0rO%'fQSO1G0rOOQO1G/m1G/mO%'qQ$IUO1G/mO=}QSO1G/mO!'RQUO'#DgOOQO,5>u,5>uOOQO-E{,5>{OOQO-E<_-E<_O!;xQWO1G/mOOQO-E<[-E<[OOQ(CY1G0X1G0XOOQ(CY7+%q7+%qO!MeQSO7+%qOOQ(CY7+&W7+&WO=}QSO7+&WO!;xQWO7+&WOOQO7+%t7+%tO$7kQ(CjO7+&POOQO7+&P7+&PO%QQUO7+&PO%'{Q(C[O7+&PO=}QSO7+%tO!;xQWO7+%tO%(WQ(C[O7+&POBtQWO7+%tO%(fQ(C[O7+&PO%(zQ(C`O7+&PO%)UQWO7+%tOBtQWO7+&PO%)cQWO7+&PO%)yQSO7++_O%)yQSO7++_O%*RQ(CjO7++`O%QQUO7++`OOQO1G4h1G4hO:sQSO1G4hO%*cQSO1G4hOOQO7+%y7+%yO!MeQSO<vOOQO-EwO%QQUO,5>wOOQO-ESQ$IUO1G0wO%>ZQ$IUO1G0wO%@RQ$IUO1G0wO%@fQ(CjO<VOOQQ,5>X,5>XO&#WQSO1G3vO:sQSO7+&^O!'RQUO7+&^OOQO7+%X7+%XO&#]Q$IUO1G5wO=}QSO7+%XOOQ(CY<zAN>zO%QQUOAN?VO=}QSOAN>zO&<^Q(C[OAN?VO!;xQWOAN>zO&zO&RO!V+iO^(qX'j(qX~O#W+mO'|%OO~Og+pO!X$yO'|%OO~O!X+rO~Oy+tO!XXO~O!t+yO~Ob,OO~O's#jO!W(sP~Ob%lO~O%a!OO's%|O~PRO!V,yO!W(fa~O!W2SO~P'TO^%^O#W2]O'j%^O~O^%^O!a#rO#W2]O'j%^O~O^%^O!a#rO!h%ZO!l2aO#W2]O'j%^O'|%OO(`'dO~O!]2bO!^2bO't!iO~PBtO![2eO!]2bO!^2bO#S2fO#T2fO't!iO~PBtO![2eO!]2bO!^2bO#P2gO#S2fO#T2fO't!iO~PBtO^%^O!a#rO!l2aO#W2]O'j%^O(`'dO~O^%^O'j%^O~P!3jO!V$^Oo$ja~O!S&|i!V&|i~P!3jO!V'xO!S(Wi~O!V(PO!S(di~O!S(ei!V(ei~P!3jO!V(]O!g(ai~O!V(bi!g(bi^(bi'j(bi~P!3jO#W2kO!V(bi!g(bi^(bi'j(bi~O|%vO!X%wO!x]O#a2nO#b2mO's%eO~O|%vO!X%wO#b2mO's%eO~Og2uO!X'QO%`2tO~Og2uO!X'QO%`2tO'|%OO~O#cvaPvaXva^vakva!eva!fva!hva!lva#fva#gva#hva#iva#jva#kva#lva#mva#nva#pva#rva#tva#uva'jva(Qva(`va!gva!Sva'hvaova!Xva%`va!ava~P#M{O#c$kaP$kaX$ka^$kak$kaz$ka!e$ka!f$ka!h$ka!l$ka#f$ka#g$ka#h$ka#i$ka#j$ka#k$ka#l$ka#m$ka#n$ka#p$ka#r$ka#t$ka#u$ka'j$ka(Q$ka(`$ka!g$ka!S$ka'h$kao$ka!X$ka%`$ka!a$ka~P#NqO#c$maP$maX$ma^$mak$maz$ma!e$ma!f$ma!h$ma!l$ma#f$ma#g$ma#h$ma#i$ma#j$ma#k$ma#l$ma#m$ma#n$ma#p$ma#r$ma#t$ma#u$ma'j$ma(Q$ma(`$ma!g$ma!S$ma'h$mao$ma!X$ma%`$ma!a$ma~P$ dO#c${aP${aX${a^${ak${az${a!V${a!e${a!f${a!h${a!l${a#f${a#g${a#h${a#i${a#j${a#k${a#l${a#m${a#n${a#p${a#r${a#t${a#u${a'j${a(Q${a(`${a!g${a!S${a'h${a#W${ao${a!X${a%`${a!a${a~P#(yO^#Zq!V#Zq'j#Zq'h#Zq!S#Zq!g#Zqo#Zq!X#Zq%`#Zq!a#Zq~P!3jOd'OX!V'OX~P!$uO!V._Od(Za~O!U2}O!V'PX!g'PX~P%QO!V.bO!g([a~O!V.bO!g([a~P!3jO!S3QO~O#x!ja!W!ja~PI{O#x!ba!V!ba!W!ba~P#?dO#x!na!W!na~P!6TO#x!pa!W!pa~P!8nO!X3dO$TfO$^3eO~O!W3iO~Oo3jO~P#(yO^$gq!V$gq'j$gq'h$gq!S$gq!g$gqo$gq!X$gq%`$gq!a$gq~P!3jO!S3kO~Ol.}O'uTO'xUO~Oy)sO|)tO(h)xOg%Wi(g%Wi!V%Wi#W%Wi~Od%Wi#x%Wi~P$HbOy)sO|)tOg%Yi(g%Yi(h%Yi!V%Yi#W%Yi~Od%Yi#x%Yi~P$ITO(`$WO~P#(yO!U3nO's%eO!V'YX!g'YX~O!V/VO!g(ma~O!V/VO!a#rO!g(ma~O!V/VO!a#rO(`'dO!g(ma~Od$ti!V$ti#W$ti#x$ti~P!-jO!U3vO's*UO!S'[X!V'[X~P!.XO!V/_O!S(na~O!V/_O!S(na~P#(yO!a#rO~O!a#rO#n4OO~Ok4RO!a#rO(`'dO~Od(Oi!V(Oi~P!-jO#W4UOd(Oi!V(Oi~P!-jO!g4XO~O^$hq!V$hq'j$hq'h$hq!S$hq!g$hqo$hq!X$hq%`$hq!a$hq~P!3jO!V4]O!X(oX~P#(yO!f#tO~P3zO!X$rX%TYX^$rX!V$rX'j$rX~P!,aO%T4_OghXyhX|hX!XhX(ghX(hhX^hX!VhX'jhX~O%T4_O~O%a4fO's+WO'uTO'xUO!V'eX!W'eX~O!V0_O!W(ua~OX4jO~O]4kO~O!S4oO~O^%^O'j%^O~P#(yO!X$yO~P#(yO!V4tO#W4vO!W(rX~O!W4wO~Ol!kO|4yO![5WO!]4}O!^4}O!x;oO!|5VO!}5UO#O5UO#P5TO#S5SO#T!wO't!iO'uTO'xUO(T!jO(_!nO~O!W5RO~P%#XOg5]O!X0zO%`5[O~Og5]O!X0zO%`5[O'|%OO~O's#jO!V'dX!W'dX~O!V1VO!W(sa~O'uTO'xUO(T5fO~O]5jO~O!g5mO~P%QO^5oO~O^5oO~P%QO#n5qO&Q5rO~PMPO_1mO!W5vO&`1lO~P`O!a5xO~O!a5zO!V(Yi!W(Yi!a(Yi!h(Yi'|(Yi~O!V#`i!W#`i~P#?dO#W5{O!V#`i!W#`i~O!V!Zi!W!Zi~P#?dO^%^O#W6UO'j%^O~O^%^O!a#rO#W6UO'j%^O~O^%^O!a#rO!l6ZO#W6UO'j%^O(`'dO~O!h%ZO'|%OO~P%(fO!]6[O!^6[O't!iO~PBtO![6_O!]6[O!^6[O#S6`O#T6`O't!iO~PBtO!V(]O!g(aq~O!V(bq!g(bq^(bq'j(bq~P!3jO|%vO!X%wO#b6dO's%eO~O!X'QO%`6gO~Og6jO!X'QO%`6gO~O#c%WiP%WiX%Wi^%Wik%Wiz%Wi!e%Wi!f%Wi!h%Wi!l%Wi#f%Wi#g%Wi#h%Wi#i%Wi#j%Wi#k%Wi#l%Wi#m%Wi#n%Wi#p%Wi#r%Wi#t%Wi#u%Wi'j%Wi(Q%Wi(`%Wi!g%Wi!S%Wi'h%Wio%Wi!X%Wi%`%Wi!a%Wi~P$HbO#c%YiP%YiX%Yi^%Yik%Yiz%Yi!e%Yi!f%Yi!h%Yi!l%Yi#f%Yi#g%Yi#h%Yi#i%Yi#j%Yi#k%Yi#l%Yi#m%Yi#n%Yi#p%Yi#r%Yi#t%Yi#u%Yi'j%Yi(Q%Yi(`%Yi!g%Yi!S%Yi'h%Yio%Yi!X%Yi%`%Yi!a%Yi~P$ITO#c$tiP$tiX$ti^$tik$tiz$ti!V$ti!e$ti!f$ti!h$ti!l$ti#f$ti#g$ti#h$ti#i$ti#j$ti#k$ti#l$ti#m$ti#n$ti#p$ti#r$ti#t$ti#u$ti'j$ti(Q$ti(`$ti!g$ti!S$ti'h$ti#W$tio$ti!X$ti%`$ti!a$ti~P#(yOd'Oa!V'Oa~P!-jO!V'Pa!g'Pa~P!3jO!V.bO!g([i~O#x#Zi!V#Zi!W#Zi~P#?dOP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO(QVOX#eik#ei!e#ei#g#ei#h#ei#i#ei#j#ei#k#ei#l#ei#m#ei#n#ei#p#ei#r#ei#t#ei#u#ei#x#ei(`#ei(g#ei(h#ei!V#ei!W#ei~O#f#ei~P%2xO#f;wO~P%2xOP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO#f;wO#g;xO#h;xO#i;xO(QVOX#ei!e#ei#j#ei#k#ei#l#ei#m#ei#n#ei#p#ei#r#ei#t#ei#u#ei#x#ei(`#ei(g#ei(h#ei!V#ei!W#ei~Ok#ei~P%5TOk;yO~P%5TOP$YOk;yOy#vOz#wO|#xO!f#tO!h#uO!l$YO#f;wO#g;xO#h;xO#i;xO#j;zO(QVO#p#ei#r#ei#t#ei#u#ei#x#ei(`#ei(g#ei(h#ei!V#ei!W#ei~OX#ei!e#ei#k#ei#l#ei#m#ei#n#ei~P%7`OXbO^#vy!V#vy'j#vy'h#vy!S#vy!g#vyo#vy!X#vy%`#vy!a#vy~P!3jOg=jOy)sO|)tO(g)vO(h)xO~OP#eiX#eik#eiz#ei!e#ei!f#ei!h#ei!l#ei#f#ei#g#ei#h#ei#i#ei#j#ei#k#ei#l#ei#m#ei#n#ei#p#ei#r#ei#t#ei#u#ei#x#ei(Q#ei(`#ei!V#ei!W#ei~P%AYO!f#tOP(PXX(PXg(PXk(PXy(PXz(PX|(PX!e(PX!h(PX!l(PX#f(PX#g(PX#h(PX#i(PX#j(PX#k(PX#l(PX#m(PX#n(PX#p(PX#r(PX#t(PX#u(PX#x(PX(Q(PX(`(PX(g(PX(h(PX!V(PX!W(PX~O#x#yi!V#yi!W#yi~P#?dO#x!ni!W!ni~P$!qO!W6vO~O!V'Xa!W'Xa~P#?dO!a#rO(`'dO!V'Ya!g'Ya~O!V/VO!g(mi~O!V/VO!a#rO!g(mi~Od$tq!V$tq#W$tq#x$tq~P!-jO!S'[a!V'[a~P#(yO!a6}O~O!V/_O!S(ni~P#(yO!V/_O!S(ni~O!S7RO~O!a#rO#n7WO~Ok7XO!a#rO(`'dO~O!S7ZO~Od$vq!V$vq#W$vq#x$vq~P!-jO^$hy!V$hy'j$hy'h$hy!S$hy!g$hyo$hy!X$hy%`$hy!a$hy~P!3jO!V4]O!X(oa~O^#Zy!V#Zy'j#Zy'h#Zy!S#Zy!g#Zyo#Zy!X#Zy%`#Zy!a#Zy~P!3jOX7`O~O!V0_O!W(ui~O]7fO~O!a5zO~O(T(qO!V'aX!W'aX~O!V4tO!W(ra~O!h%ZO'|%OO^(YX!a(YX!l(YX#W(YX'j(YX(`(YX~O's7oO~P.[O!x;oO!|7rO!}7qO#O7qO#P7pO#S'bO#T'bO~PBtO^%^O!a#rO!l'hO#W'fO'j%^O(`'dO~O!W7vO~P%#XOl!kO'uTO'xUO(T!jO(_!nO~O|7wO~P%MdO![7{O!]7zO!^7zO#P7pO#S'bO#T'bO't!iO~PBtO![7{O!]7zO!^7zO!}7|O#O7|O#P7pO#S'bO#T'bO't!iO~PBtO!]7zO!^7zO't!iO(T!jO(_!nO~O!X0zO~O!X0zO%`8OO~Og8RO!X0zO%`8OO~OX8WO!V'da!W'da~O!V1VO!W(si~O!g8[O~O!g8]O~O!g8^O~O!g8^O~P%QO^8`O~O!a8cO~O!g8dO~O!V(ei!W(ei~P#?dO^%^O#W8lO'j%^O~O^%^O!a#rO#W8lO'j%^O~O^%^O!a#rO!l8pO#W8lO'j%^O(`'dO~O!h%ZO'|%OO~P&$QO!]8qO!^8qO't!iO~PBtO!V(]O!g(ay~O!V(by!g(by^(by'j(by~P!3jO!X'QO%`8uO~O#c$tqP$tqX$tq^$tqk$tqz$tq!V$tq!e$tq!f$tq!h$tq!l$tq#f$tq#g$tq#h$tq#i$tq#j$tq#k$tq#l$tq#m$tq#n$tq#p$tq#r$tq#t$tq#u$tq'j$tq(Q$tq(`$tq!g$tq!S$tq'h$tq#W$tqo$tq!X$tq%`$tq!a$tq~P#(yO#c$vqP$vqX$vq^$vqk$vqz$vq!V$vq!e$vq!f$vq!h$vq!l$vq#f$vq#g$vq#h$vq#i$vq#j$vq#k$vq#l$vq#m$vq#n$vq#p$vq#r$vq#t$vq#u$vq'j$vq(Q$vq(`$vq!g$vq!S$vq'h$vq#W$vqo$vq!X$vq%`$vq!a$vq~P#(yO!V'Pi!g'Pi~P!3jO#x#Zq!V#Zq!W#Zq~P#?dOy/yOz/yO|/zOPvaXvagvakva!eva!fva!hva!lva#fva#gva#hva#iva#jva#kva#lva#mva#nva#pva#rva#tva#uva#xva(Qva(`va(gva(hva!Vva!Wva~Oy)sO|)tOP$kaX$kag$kak$kaz$ka!e$ka!f$ka!h$ka!l$ka#f$ka#g$ka#h$ka#i$ka#j$ka#k$ka#l$ka#m$ka#n$ka#p$ka#r$ka#t$ka#u$ka#x$ka(Q$ka(`$ka(g$ka(h$ka!V$ka!W$ka~Oy)sO|)tOP$maX$mag$mak$maz$ma!e$ma!f$ma!h$ma!l$ma#f$ma#g$ma#h$ma#i$ma#j$ma#k$ma#l$ma#m$ma#n$ma#p$ma#r$ma#t$ma#u$ma#x$ma(Q$ma(`$ma(g$ma(h$ma!V$ma!W$ma~OP${aX${ak${az${a!e${a!f${a!h${a!l${a#f${a#g${a#h${a#i${a#j${a#k${a#l${a#m${a#n${a#p${a#r${a#t${a#u${a#x${a(Q${a(`${a!V${a!W${a~P%AYO#x$gq!V$gq!W$gq~P#?dO#x$hq!V$hq!W$hq~P#?dO!W9PO~O#x9QO~P!-jO!a#rO!V'Yi!g'Yi~O!a#rO(`'dO!V'Yi!g'Yi~O!V/VO!g(mq~O!S'[i!V'[i~P#(yO!V/_O!S(nq~O!S9WO~P#(yO!S9WO~Od(Oy!V(Oy~P!-jO!V'_a!X'_a~P#(yO!X%Sq^%Sq!V%Sq'j%Sq~P#(yOX9]O~O!V0_O!W(uq~O#W9aO!V'aa!W'aa~O!V4tO!W(ri~P#?dOPYXXYXkYXyYXzYX|YX!SYX!VYX!eYX!fYX!hYX!lYX#WYX#ccX#fYX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#pYX#rYX#tYX#uYX#zYX(QYX(`YX(gYX(hYX~O!a%QX#n%QX~P&6lO#S-cO#T-cO~PBtO#P9eO#S-cO#T-cO~PBtO!}9fO#O9fO#P9eO#S-cO#T-cO~PBtO!]9iO!^9iO't!iO(T!jO(_!nO~O![9lO!]9iO!^9iO#P9eO#S-cO#T-cO't!iO~PBtO!X0zO%`9oO~O'uTO'xUO(T9tO~O!V1VO!W(sq~O!g9wO~O!g9wO~P%QO!g9yO~O!g9zO~O#W9|O!V#`y!W#`y~O!V#`y!W#`y~P#?dO^%^O#W:QO'j%^O~O^%^O!a#rO#W:QO'j%^O~O^%^O!a#rO!l:UO#W:QO'j%^O(`'dO~O!X'QO%`:XO~O#x#vy!V#vy!W#vy~P#?dOP$tiX$tik$tiz$ti!e$ti!f$ti!h$ti!l$ti#f$ti#g$ti#h$ti#i$ti#j$ti#k$ti#l$ti#m$ti#n$ti#p$ti#r$ti#t$ti#u$ti#x$ti(Q$ti(`$ti!V$ti!W$ti~P%AYOy)sO|)tO(h)xOP%WiX%Wig%Wik%Wiz%Wi!e%Wi!f%Wi!h%Wi!l%Wi#f%Wi#g%Wi#h%Wi#i%Wi#j%Wi#k%Wi#l%Wi#m%Wi#n%Wi#p%Wi#r%Wi#t%Wi#u%Wi#x%Wi(Q%Wi(`%Wi(g%Wi!V%Wi!W%Wi~Oy)sO|)tOP%YiX%Yig%Yik%Yiz%Yi!e%Yi!f%Yi!h%Yi!l%Yi#f%Yi#g%Yi#h%Yi#i%Yi#j%Yi#k%Yi#l%Yi#m%Yi#n%Yi#p%Yi#r%Yi#t%Yi#u%Yi#x%Yi(Q%Yi(`%Yi(g%Yi(h%Yi!V%Yi!W%Yi~O#x$hy!V$hy!W$hy~P#?dO#x#Zy!V#Zy!W#Zy~P#?dO!a#rO!V'Yq!g'Yq~O!V/VO!g(my~O!S'[q!V'[q~P#(yO!S:`O~P#(yO!V0_O!W(uy~O!V4tO!W(rq~O#S2fO#T2fO~PBtO#P:gO#S2fO#T2fO~PBtO!]:kO!^:kO't!iO(T!jO(_!nO~O!X0zO%`:nO~O!g:qO~O^%^O#W:vO'j%^O~O^%^O!a#rO#W:vO'j%^O~O!X'QO%`:{O~OP$tqX$tqk$tqz$tq!e$tq!f$tq!h$tq!l$tq#f$tq#g$tq#h$tq#i$tq#j$tq#k$tq#l$tq#m$tq#n$tq#p$tq#r$tq#t$tq#u$tq#x$tq(Q$tq(`$tq!V$tq!W$tq~P%AYOP$vqX$vqk$vqz$vq!e$vq!f$vq!h$vq!l$vq#f$vq#g$vq#h$vq#i$vq#j$vq#k$vq#l$vq#m$vq#n$vq#p$vq#r$vq#t$vq#u$vq#x$vq(Q$vq(`$vq!V$vq!W$vq~P%AYOd%[!Z!V%[!Z#W%[!Z#x%[!Z~P!-jO!V'aq!W'aq~P#?dO#S6`O#T6`O~PBtO!V#`!Z!W#`!Z~P#?dO^%^O#W;ZO'j%^O~O#c%[!ZP%[!ZX%[!Z^%[!Zk%[!Zz%[!Z!V%[!Z!e%[!Z!f%[!Z!h%[!Z!l%[!Z#f%[!Z#g%[!Z#h%[!Z#i%[!Z#j%[!Z#k%[!Z#l%[!Z#m%[!Z#n%[!Z#p%[!Z#r%[!Z#t%[!Z#u%[!Z'j%[!Z(Q%[!Z(`%[!Z!g%[!Z!S%[!Z'h%[!Z#W%[!Zo%[!Z!X%[!Z%`%[!Z!a%[!Z~P#(yOP%[!ZX%[!Zk%[!Zz%[!Z!e%[!Z!f%[!Z!h%[!Z!l%[!Z#f%[!Z#g%[!Z#h%[!Z#i%[!Z#j%[!Z#k%[!Z#l%[!Z#m%[!Z#n%[!Z#p%[!Z#r%[!Z#t%[!Z#u%[!Z#x%[!Z(Q%[!Z(`%[!Z!V%[!Z!W%[!Z~P%AYOo(UX~P1dO't!iO~P!'RO!ScX!VcX#WcX~P&6lOPYXXYXkYXyYXzYX|YX!VYX!VcX!eYX!fYX!hYX!lYX#WYX#WcX#ccX#fYX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#pYX#rYX#tYX#uYX#zYX(QYX(`YX(gYX(hYX~O!acX!gYX!gcX(`cX~P'!sOP;nOQ;nOa=_Ob!fOikOk;nOlkOmkOskOu;nOw;nO|WO!QkO!RkO!XXO!c;qO!hZO!k;nO!l;nO!m;nO!o;rO!q;sO!t!eO$P!hO$TfO's)RO'uTO'xUO(QVO(_[O(l=]O~O!Vv!>v!BnPPP!BuHdPPPPPPPPPPP!FTP!GiPPHd!HyPHdPHdHdHdHdPHd!J`PP!MiP#!nP#!r#!|##Q##QP!MfP##U##UP#&ZP#&_HdHd#&e#)iAQPAQPAQAQP#*sAQAQ#,mAQ#.zAQ#0nAQAQ#1[#3W#3W#3[#3d#3W#3lP#3WPAQ#4hAQ#5pAQAQ6iPPP#6{PP#7e#7eP#7eP#7z#7ePP#8QP#7wP#7w#8d!1p#7w#9O#9U6f(}#9X(}P#9`#9`#9`P(}P(}P(}P(}PP(}P#9f#9iP#9i(}P#9mP#9pP(}P(}P(}P(}P(}P(}(}PP#9v#9|#:W#:^#:d#:j#:p#;O#;U#;[#;f#;l#b#?r#@Q#@W#@^#@d#@j#@t#@z#AQ#A[#An#AtPPPPPPPPPP#AzPPPPPPP#Bn#FYP#Gu#G|#HUPPPP#L`$ U$'t$'w$'z$)w$)z$)}$*UPP$*[$*`$+X$,X$,]$,qPP$,u$,{$-PP$-S$-W$-Z$.P$.g$.l$.o$.r$.x$.{$/P$/TR!yRmpOXr!X#a%]&d&f&g&i,^,c1g1jU!pQ'Q-OQ%ctQ%kwQ%rzQ&[!TS&x!c,vQ'W!f[']!m!r!s!t!u!vS*[$y*aQ+U%lQ+c%tQ+}&UQ,|'PQ-W'XW-`'^'_'`'aQ/p*cQ1U,OU2b-b-d-eS4}0z5QS6[2e2gU7z5U5V5WQ8q6_S9i7{7|Q:k9lR TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:362,context:b,nodeProps:[["group",-26,6,14,16,62,198,202,205,206,208,211,214,225,227,233,235,237,239,242,248,254,256,258,260,262,264,265,"Statement",-32,10,11,25,28,29,35,45,48,49,51,56,64,72,76,78,80,81,102,103,112,113,130,133,135,136,137,138,140,141,161,162,164,"Expression",-23,24,26,30,34,36,38,165,167,169,170,172,173,174,176,177,178,180,181,182,192,194,196,197,"Type",-3,84,95,101,"ClassItem"],["openedBy",31,"InterpolationStart",50,"[",54,"{",69,"(",142,"JSXStartTag",154,"JSXStartTag JSXStartCloseTag"],["closedBy",33,"InterpolationEnd",44,"]",55,"}",70,")",143,"JSXSelfCloseEndTag JSXEndTag",159,"JSXEndTag"]],propSources:[W],skippedNodes:[0,3,4,268],repeatNodeCount:32,tokenData:"$>y(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tu>PuvBavwDxwxGgxyMvyz! Qz{!![{|!%O|}!&]}!O!%O!O!P!'g!P!Q!1w!Q!R#0t!R![#3T![!]#@T!]!^#Aa!^!_#Bk!_!`#GS!`!a#In!a!b#N{!b!c$$z!c!}>P!}#O$&U#O#P$'`#P#Q$,w#Q#R$.R#R#S>P#S#T$/`#T#o$0j#o#p$4z#p#q$5p#q#r$7Q#r#s$8^#s$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$I|>P$I|$I}$P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(n%d_$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$c&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$c&j'y!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU'y!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$c&j'vpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'vpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'vp'y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$c&j'vp'y!b'l(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST'w#S$c&j'm(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$c&j'vp'y!b'm(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$c&j!l$Ip'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#p$Id$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#p$Id$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'u$(n$c&j'y!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$c&j'y!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$c&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$^#t$c&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$^#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$^#t$c&j'y!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ'y!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$^#t'y!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hg$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}st%Ztu`k$c&j'vp'y!b(T!LY's&;d$V#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P+d@`k$c&j'vp'y!b$V#tOY%ZYZ&cZr%Zrs&}st%Ztu@Tuw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![@T![!^%Z!^!_*g!_!c%Z!c!}@T!}#O%Z#O#P&c#P#R%Z#R#S@T#S#T%Z#T#o@T#o#p*g#p$g%Z$g;'S@T;'S;=`BT<%lO@T+dBWP;=`<%l@T(CSB^P;=`<%l>P%#SBl`$c&j'vp'y!b#h$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SCy_$c&j#z$Id'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%DfETa(h%Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>fi$c&j'vp'y!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#>Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#@b_!a$b$c&j#x%Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$JT>P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(CS$=Uk$c&j'vp'y!b'm(;d(T!LY's&;d$V#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P",tokenizers:[h,u,2,3,4,5,6,7,8,9,10,11,12,13,f,new a.uC("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOq~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!O~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(S~~",141,325),new a.uC("j~RQYZXz{^~^O'p~~aP!P!Qd~iO'q~~",25,307)],topRules:{Script:[0,5],SingleExpression:[1,266],SingleClassItem:[2,267]},dialects:{jsx:13213,ts:13215},dynamicPrecedences:{76:1,78:1,162:1,190:1},specialized:[{term:311,get:O=>U[O]||-1},{term:327,get:O=>m[O]||-1},{term:67,get:O=>y[O]||-1}],tokenPrec:13238});var d=e(4452);var j=e(71674);var w=e(22819);var v=e(75128);var V=e(66575);const k=[(0,v.Gw)("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),(0,v.Gw)("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),(0,v.Gw)("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),(0,v.Gw)("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),(0,v.Gw)("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),(0,v.Gw)("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),(0,v.Gw)("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),(0,v.Gw)("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),(0,v.Gw)("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),(0,v.Gw)('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),(0,v.Gw)('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})];const _=k.concat([(0,v.Gw)("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),(0,v.Gw)("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),(0,v.Gw)("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]);const G=new V.NodeWeakMap;const q=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function T(O){return(Q,e)=>{let a=Q.node.getChild("VariableDefinition");if(a)e(a,O);return true}}const R=["FunctionDeclaration"];const C={FunctionDeclaration:T("function"),ClassDeclaration:T("class"),ClassExpression:()=>true,EnumDeclaration:T("constant"),TypeAliasDeclaration:T("type"),NamespaceDeclaration:T("namespace"),VariableDefinition(O,Q){if(!O.matchContext(R))Q(O,"variable")},TypeDefinition(O,Q){Q(O,"type")},__proto__:null};function z(O,Q){let e=G.get(Q);if(e)return e;let a=[],i=true;function t(Q,e){let i=O.sliceString(Q.from,Q.to);a.push({label:i,type:e})}Q.cursor(V.IterMode.IncludeAnonymous).iterate((Q=>{if(i){i=false}else if(Q.name){let O=C[Q.name];if(O&&O(Q,t)||q.has(Q.name))return false}else if(Q.to-Q.from>8192){for(let e of z(O,Q.node))a.push(e);return false}}));G.set(Q,a);return a}const I=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/;const E=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function A(O){let Q=(0,d.syntaxTree)(O.state).resolveInner(O.pos,-1);if(E.indexOf(Q.name)>-1)return null;let e=Q.name=="VariableName"||Q.to-Q.from<20&&I.test(O.state.sliceDoc(Q.from,Q.to));if(!e&&!O.explicit)return null;let a=[];for(let i=Q;i;i=i.parent){if(q.has(i.name))a=a.concat(z(O.state.doc,i))}return{options:a,from:e?Q.from:O.pos,validFor:I}}function J(O,Q,e){var a;let i=[];for(;;){let t=Q.firstChild,$;if((t===null||t===void 0?void 0:t.name)=="VariableName"){i.push(O(t));return{path:i.reverse(),name:e}}else if((t===null||t===void 0?void 0:t.name)=="MemberExpression"&&((a=$=t.lastChild)===null||a===void 0?void 0:a.name)=="PropertyName"){i.push(O($));Q=t}else{return null}}}function L(O){let Q=Q=>O.state.doc.sliceString(Q.from,Q.to);let e=(0,d.syntaxTree)(O.state).resolveInner(O.pos,-1);if(e.name=="PropertyName"){return J(Q,e.parent,Q(e))}else if((e.name=="."||e.name=="?.")&&e.parent.name=="MemberExpression"){return J(Q,e.parent,"")}else if(E.indexOf(e.name)>-1){return null}else if(e.name=="VariableName"||e.to-e.from<20&&I.test(Q(e))){return{path:[],name:Q(e)}}else if(e.name=="MemberExpression"){return J(Q,e,"")}else{return O.explicit?{path:[],name:""}:null}}function N(O,Q){let e=[],a=new Set;for(let t=0;;t++){for(let r of(Object.getOwnPropertyNames||Object.keys)(O)){if(!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(r)||a.has(r))continue;a.add(r);let $;try{$=O[r]}catch(i){continue}e.push({label:r,type:typeof $=="function"?/^[A-Z]/.test(r)?"class":Q?"function":"method":Q?"variable":"property",boost:-t})}let $=Object.getPrototypeOf(O);if(!$)return e;O=$}}function D(O){let Q=new Map;return e=>{let a=L(e);if(!a)return null;let i=O;for(let O of a.path){i=i[O];if(!i)return null}let t=Q.get(i);if(!t)Q.set(i,t=N(i,!a.path.length));return{from:e.pos-a.name.length,options:t,validFor:I}}}const B=d.LRLanguage.define({name:"javascript",parser:x.configure({props:[d.indentNodeProp.add({IfStatement:(0,d.continuedIndent)({except:/^\s*({|else\b)/}),TryStatement:(0,d.continuedIndent)({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:d.flatIndent,SwitchBody:O=>{let Q=O.textAfter,e=/^\s*\}/.test(Q),a=/^\s*(case|default)\b/.test(Q);return O.baseIndent+(e?0:a?1:2)*O.unit},Block:(0,d.delimitedIndent)({closing:"}"}),ArrowFunction:O=>O.baseIndent+O.unit,"TemplateString BlockComment":()=>null,"Statement Property":(0,d.continuedIndent)({except:/^{/}),JSXElement(O){let Q=/^\s*<\//.test(O.textAfter);return O.lineIndent(O.node.from)+(Q?0:O.unit)},JSXEscape(O){let Q=/\s*\}/.test(O.textAfter);return O.lineIndent(O.node.from)+(Q?0:O.unit)},"JSXOpenTag JSXSelfClosingTag"(O){return O.column(O.node.from)+O.unit}}),d.foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":d.foldInside,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}});const H={test:O=>/^JSX/.test(O.name),facet:(0,d.defineLanguageFacet)({commentTokens:{block:{open:"{/*",close:"*/}"}}})};const K=B.configure({dialect:"ts"},"typescript");const M=B.configure({dialect:"jsx",props:[d.sublanguageProp.add((O=>O.isTop?[H]:undefined))]});const F=B.configure({dialect:"jsx ts",props:[d.sublanguageProp.add((O=>O.isTop?[H]:undefined))]},"typescript");let OO=O=>({label:O,type:"keyword"});const QO="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(OO);const eO=QO.concat(["declare","implements","private","protected","public"].map(OO));function aO(O={}){let Q=O.jsx?O.typescript?F:M:O.typescript?K:B;let e=O.typescript?_.concat(eO):k.concat(QO);return new d.LanguageSupport(Q,[B.data.of({autocomplete:(0,v.Ar)(E,(0,v.et)(e))}),B.data.of({autocomplete:A}),O.jsx?rO:[]])}function iO(O){for(;;){if(O.name=="JSXOpenTag"||O.name=="JSXSelfClosingTag"||O.name=="JSXFragmentTag")return O;if(O.name=="JSXEscape"||!O.parent)return null;O=O.parent}}function tO(O,Q,e=O.length){for(let a=Q===null||Q===void 0?void 0:Q.firstChild;a;a=a.nextSibling){if(a.name=="JSXIdentifier"||a.name=="JSXBuiltin"||a.name=="JSXNamespacedName"||a.name=="JSXMemberExpression")return O.sliceString(a.from,Math.min(a.to,e))}return""}const $O=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent);const rO=w.EditorView.inputHandler.of(((O,Q,e,a,i)=>{if(($O?O.composing:O.compositionStarted)||O.state.readOnly||Q!=e||a!=">"&&a!="/"||!B.isActiveAt(O.state,Q,-1))return false;let t=i(),{state:$}=t;let r=$.changeByRange((O=>{var Q;let{head:e}=O,i=(0,d.syntaxTree)($).resolveInner(e-1,-1),t;if(i.name=="JSXStartTag")i=i.parent;if($.doc.sliceString(e-1,e)!=a||i.name=="JSXAttributeValue"&&i.to>e);else if(a==">"&&i.name=="JSXFragmentTag"){return{range:O,changes:{from:e,insert:``}}}else if(a=="/"&&i.name=="JSXStartCloseTag"){let O=i.parent,a=O.parent;if(a&&O.from==e-2&&((t=tO($.doc,a.firstChild,e))||((Q=a.firstChild)===null||Q===void 0?void 0:Q.name)=="JSXFragmentTag")){let O=`${t}>`;return{range:j.EditorSelection.cursor(e+O.length,-1),changes:{from:e,insert:O}}}}else if(a==">"){let Q=iO(i);if(Q&&Q.name=="JSXOpenTag"&&!/^\/?>|^<\//.test($.doc.sliceString(e,e+2))&&(t=tO($.doc,Q,e)))return{range:O,changes:{from:e,insert:``}}}return{range:O}}));if(r.changes.empty)return false;O.dispatch([t,$.update(r,{userEvent:"input.complete",scrollIntoView:true})]);return true}));function SO(O,Q){if(!Q){Q={parserOptions:{ecmaVersion:2019,sourceType:"module"},env:{browser:true,node:true,es6:true,es2015:true,es2017:true,es2020:true},rules:{}};O.getRules().forEach(((O,e)=>{if(O.meta.docs.recommended)Q.rules[e]=2}))}return e=>{let{state:a}=e,i=[];for(let{from:t,to:$}of B.findRegions(a)){let e=a.doc.lineAt(t),r={line:e.number-1,col:t-e.from,pos:t};for(let S of O.verify(a.sliceDoc(t,$),Q))i.push(PO(S,a.doc,r))}return i}}function nO(O,Q,e,a){return e.line(O+a.line).from+Q+(O==1?a.col-1:-1)}function PO(O,Q,e){let a=nO(O.line,O.column,Q,e);let i={from:a,to:O.endLine!=null&&O.endColumn!=1?nO(O.endLine,O.endColumn,Q,e):a,message:O.message,source:O.ruleId?"eslint:"+O.ruleId:"eslint",severity:O.severity==1?"warning":"error"};if(O.fix){let{range:Q,text:t}=O.fix,$=Q[0]+e.pos-a,r=Q[1]+e.pos-a;i.actions=[{name:"fix",apply(O,Q){O.dispatch({changes:{from:Q+$,to:Q+r,insert:t},scrollIntoView:true})}}]}return i}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8217.801fbb0b549a74238760.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8217.801fbb0b549a74238760.js deleted file mode 100644 index 2c9c66a941be9a4ac443a39dcb9cdc5447169c1f..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8217.801fbb0b549a74238760.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8217],{58217:(E,T,I)=>{I.r(T);I.d(T,{cobol:()=>i});var N="builtin",R="comment",A="string",O="atom",C="number",L="keyword",D="header",S="def",U="link";function P(E){var T={},I=E.split(" ");for(var N=0;N >= ");var n={digit:/\d/,digit_or_colon:/[\d:]/,hex:/[0-9a-f]/i,sign:/[+-]/,exponent:/e/i,keyword_char:/[^\s\(\[\;\)\]]/,symbol:/[\w*+\-]/};function G(E,T){if(E==="0"&&T.eat(/x/i)){T.eatWhile(n.hex);return true}if((E=="+"||E=="-")&&n.digit.test(T.peek())){T.eat(n.sign);E=T.next()}if(n.digit.test(E)){T.eat(E);T.eatWhile(n.digit);if("."==T.peek()){T.eat(".");T.eatWhile(n.digit)}if(T.eat(n.exponent)){T.eat(n.sign);T.eatWhile(n.digit)}return true}return false}const i={name:"cobol",startState:function(){return{indentStack:null,indentation:0,mode:false}},token:function(E,T){if(T.indentStack==null&&E.sol()){T.indentation=6}if(E.eatSpace()){return null}var I=null;switch(T.mode){case"string":var P=false;while((P=E.next())!=null){if((P=='"'||P=="'")&&!E.match(/['"]/,false)){T.mode=false;break}}I=A;break;default:var i=E.next();var r=E.column();if(r>=0&&r<=5){I=S}else if(r>=72&&r<=79){E.skipToEnd();I=D}else if(i=="*"&&r==6){E.skipToEnd();I=R}else if(i=='"'||i=="'"){T.mode="string";I=A}else if(i=="'"&&!n.digit_or_colon.test(E.peek())){I=O}else if(i=="."){I=U}else if(G(i,E)){I=C}else{if(E.current().match(n.symbol)){while(r<71){if(E.eat(n.symbol)===undefined){break}else{r++}}}if(M&&M.propertyIsEnumerable(E.current().toUpperCase())){I=L}else if(t&&t.propertyIsEnumerable(E.current().toUpperCase())){I=N}else if(e&&e.propertyIsEnumerable(E.current().toUpperCase())){I=O}else I=null}}return I},indent:function(E){if(E.indentStack==null)return E.indentation;return E.indentStack.indent}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8232.e31d5021e77a9b5215d6.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8232.e31d5021e77a9b5215d6.js deleted file mode 100644 index dbd038d3c0ae62f5d164dea626dc68902b0ea929..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8232.e31d5021e77a9b5215d6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8232],{38232:(e,t,r)=>{r.r(t);r.d(t,{pascal:()=>p});function n(e){var t={},r=e.split(" ");for(var n=0;n!?|\/]/;function l(e,t){var r=e.next();if(r=="#"&&t.startOfLine){e.skipToEnd();return"meta"}if(r=='"'||r=="'"){t.tokenize=u(r);return t.tokenize(e,t)}if(r=="("&&e.eat("*")){t.tokenize=s;return s(e,t)}if(r=="{"){t.tokenize=c;return c(e,t)}if(/[\[\]\(\),;\:\.]/.test(r)){return null}if(/\d/.test(r)){e.eatWhile(/[\w\.]/);return"number"}if(r=="/"){if(e.eat("/")){e.skipToEnd();return"comment"}}if(o.test(r)){e.eatWhile(o);return"operator"}e.eatWhile(/[\w\$_]/);var n=e.current().toLowerCase();if(a.propertyIsEnumerable(n))return"keyword";if(i.propertyIsEnumerable(n))return"atom";return"variable"}function u(e){return function(t,r){var n=false,a,i=false;while((a=t.next())!=null){if(a==e&&!n){i=true;break}n=!n&&a=="\\"}if(i||!n)r.tokenize=null;return"string"}}function s(e,t){var r=false,n;while(n=e.next()){if(n==")"&&r){t.tokenize=null;break}r=n=="*"}return"comment"}function c(e,t){var r;while(r=e.next()){if(r=="}"){t.tokenize=null;break}}return"comment"}const p={name:"pascal",startState:function(){return{tokenize:null}},token:function(e,t){if(e.eatSpace())return null;var r=(t.tokenize||l)(e,t);if(r=="comment"||r=="meta")return r;return r},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{block:{open:"(*",close:"*)"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8313.aac706f5036a7209b3a8.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8313.aac706f5036a7209b3a8.js deleted file mode 100644 index d47b4a1c0d8449d7dea4119cdddc445252ae0c1a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8313.aac706f5036a7209b3a8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8313],{48313:(t,e,n)=>{n.r(e);n.d(e,{DocInput:()=>T,HighlightStyle:()=>Ft,IndentContext:()=>$,LRLanguage:()=>v,Language:()=>k,LanguageDescription:()=>M,LanguageSupport:()=>B,ParseContext:()=>C,StreamLanguage:()=>de,StringStream:()=>fe,TreeIndentContext:()=>K,bidiIsolates:()=>Be,bracketMatching:()=>ee,bracketMatchingHandle:()=>ne,codeFolding:()=>It,continuedIndent:()=>et,defaultHighlightStyle:()=>Gt,defineLanguageFacet:()=>g,delimitedIndent:()=>Y,ensureSyntaxTree:()=>x,flatIndent:()=>tt,foldAll:()=>yt,foldCode:()=>vt,foldEffect:()=>ut,foldGutter:()=>Mt,foldInside:()=>ot,foldKeymap:()=>At,foldNodeProp:()=>st,foldService:()=>it,foldState:()=>pt,foldable:()=>ft,foldedRanges:()=>gt,forceParsing:()=>S,getIndentUnit:()=>V,getIndentation:()=>W,highlightingFor:()=>$t,indentNodeProp:()=>z,indentOnInput:()=>rt,indentRange:()=>U,indentService:()=>R,indentString:()=>j,indentUnit:()=>F,language:()=>L,languageDataProp:()=>p,matchBrackets:()=>se,sublanguageProp:()=>m,syntaxHighlighting:()=>Ut,syntaxParserRunning:()=>P,syntaxTree:()=>b,syntaxTreeAvailable:()=>y,toggleFold:()=>Tt,unfoldAll:()=>St,unfoldCode:()=>bt,unfoldEffect:()=>ct});var r=n(66575);var i=n.n(r);var s=n(71674);var o=n.n(s);var a=n(22819);var l=n.n(a);var f=n(45145);var h=n.n(f);var u=n(23546);var c=n.n(u);var d;const p=new r.NodeProp;function g(t){return s.Facet.define({combine:t?e=>e.concat(t):undefined})}const m=new r.NodeProp;class k{constructor(t,e,n=[],r=""){this.data=t;this.name=r;if(!s.EditorState.prototype.hasOwnProperty("tree"))Object.defineProperty(s.EditorState.prototype,"tree",{get(){return b(this)}});this.parser=e;this.extension=[L.of(this),s.EditorState.languageData.of(((t,e,n)=>{let r=w(t,e,n),i=r.type.prop(p);if(!i)return[];let s=t.facet(i),o=r.type.prop(m);if(o){let i=r.resolve(e-r.from,n);for(let e of o)if(e.test(i,t)){let n=t.facet(e.facet);return e.type=="replace"?n:n.concat(s)}}return s}))].concat(n)}isActiveAt(t,e,n=-1){return w(t,e,n).type.prop(p)==this.data}findRegions(t){let e=t.facet(L);if((e===null||e===void 0?void 0:e.data)==this.data)return[{from:0,to:t.doc.length}];if(!e||!e.allowsNesting)return[];let n=[];let i=(t,e)=>{if(t.prop(p)==this.data){n.push({from:e,to:e+t.length});return}let s=t.prop(r.NodeProp.mounted);if(s){if(s.tree.prop(p)==this.data){if(s.overlay)for(let t of s.overlay)n.push({from:t.from+e,to:t.to+e});else n.push({from:e,to:e+t.length});return}else if(s.overlay){let t=n.length;i(s.tree,s.overlay[0].from+e);if(n.length>t)return}}for(let n=0;nt.isTop?e:undefined))]}),t.name)}configure(t,e){return new v(this.data,this.parser.configure(t),e||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function b(t){let e=t.field(k.state,false);return e?e.tree:r.Tree.empty}function x(t,e,n=50){var r;let i=(r=t.field(k.state,false))===null||r===void 0?void 0:r.context;if(!i)return null;let s=i.viewport;i.updateViewport({from:0,to:e});let o=i.isDone(e)||i.work(n,e)?i.tree:null;i.updateViewport(s);return o}function y(t,e=t.doc.length){var n;return((n=t.field(k.state,false))===null||n===void 0?void 0:n.context.isDone(e))||false}function S(t,e=t.viewport.to,n=100){let r=x(t.state,e,n);if(r!=b(t.state))t.dispatch({});return!!r}function P(t){var e;return((e=t.plugin(E))===null||e===void 0?void 0:e.isWorking())||false}class T{constructor(t){this.doc=t;this.cursorPos=0;this.string="";this.cursor=t.iter()}get length(){return this.doc.length}syncTo(t){this.string=this.cursor.next(t-this.cursorPos).value;this.cursorPos=t+this.string.length;return this.cursorPos-this.string.length}chunk(t){this.syncTo(t);return this.string}get lineChunks(){return true}read(t,e){let n=this.cursorPos-this.string.length;if(t=this.cursorPos)return this.doc.sliceString(t,e);else return this.string.slice(t-n,e-n)}}let A=null;class C{constructor(t,e,n=[],r,i,s,o,a){this.parser=t;this.state=e;this.fragments=n;this.tree=r;this.treeLen=i;this.viewport=s;this.skipped=o;this.scheduleOn=a;this.parse=null;this.tempSkipped=[]}static create(t,e,n){return new C(t,e,[],r.Tree.empty,0,n,[],null)}startParse(){return this.parser.startParse(new T(this.state.doc),this.fragments)}work(t,e){if(e!=null&&e>=this.state.doc.length)e=undefined;if(this.tree!=r.Tree.empty&&this.isDone(e!==null&&e!==void 0?e:this.state.doc.length)){this.takeTree();return true}return this.withContext((()=>{var n;if(typeof t=="number"){let e=Date.now()+t;t=()=>Date.now()>e}if(!this.parse)this.parse=this.startParse();if(e!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&e=this.treeLen){if(this.parse.stoppedAt==null||this.parse.stoppedAt>t)this.parse.stopAt(t);this.withContext((()=>{while(!(e=this.parse.advance())){}}));this.treeLen=t;this.tree=e;this.fragments=this.withoutTempSkipped(r.TreeFragment.addTree(this.tree,this.fragments,true));this.parse=null}}withContext(t){let e=A;A=this;try{return t()}finally{A=e}}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=D(t,e.from,e.to);return t}changes(t,e){let{fragments:n,tree:i,treeLen:s,viewport:o,skipped:a}=this;this.takeTree();if(!t.empty){let e=[];t.iterChangedRanges(((t,n,r,i)=>e.push({fromA:t,toA:n,fromB:r,toB:i})));n=r.TreeFragment.applyChanges(n,e);i=r.Tree.empty;s=0;o={from:t.mapPos(o.from,-1),to:t.mapPos(o.to,1)};if(this.skipped.length){a=[];for(let e of this.skipped){let n=t.mapPos(e.from,1),r=t.mapPos(e.to,-1);if(nt.from){this.fragments=D(this.fragments,e,r);this.skipped.splice(n--,1)}}if(this.skipped.length>=e)return false;this.reset();return true}reset(){if(this.parse){this.takeTree();this.parse=null}}skipUntilInView(t,e){this.skipped.push({from:t,to:e})}static getSkippingParser(t){return new class extends r.Parser{createParse(e,n,i){let s=i[0].from,o=i[i.length-1].to;let a={parsedPos:s,advance(){let e=A;if(e){for(let t of i)e.tempSkipped.push(t);if(t)e.scheduleOn=e.scheduleOn?Promise.all([e.scheduleOn,t]):t}this.parsedPos=o;return new r.Tree(r.NodeType.none,[],[],o-s)},stoppedAt:null,stopAt(){}};return a}}}isDone(t){t=Math.min(t,this.state.doc.length);let e=this.fragments;return this.treeLen>=t&&e.length&&e[0].from==0&&e[0].to>=t}static get(){return A}}function D(t,e,n){return r.TreeFragment.applyChanges(t,[{fromA:e,toA:n,fromB:e,toB:n}])}class I{constructor(t){this.context=t;this.tree=t.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(t.changes,t.state);let n=this.context.treeLen==t.startState.doc.length?undefined:Math.max(t.changes.mapPos(this.context.treeLen),e.viewport.to);if(!e.work(20,n))e.takeTree();return new I(e)}static init(t){let e=Math.min(3e3,t.doc.length);let n=C.create(t.facet(L).parser,t,{from:0,to:e});if(!n.work(20,e))n.takeTree();return new I(n)}}k.state=s.StateField.define({create:I.init,update(t,e){for(let n of e.effects)if(n.is(k.setState))return n.value;if(e.startState.facet(L)!=e.state.facet(L))return I.init(e.state);return t.apply(e)}});let N=t=>{let e=setTimeout((()=>t()),500);return()=>clearTimeout(e)};if(typeof requestIdleCallback!="undefined")N=t=>{let e=-1,n=setTimeout((()=>{e=requestIdleCallback(t,{timeout:500-100})}),100);return()=>e<0?clearTimeout(n):cancelIdleCallback(e)};const O=typeof navigator!="undefined"&&((d=navigator.scheduling)===null||d===void 0?void 0:d.isInputPending)?()=>navigator.scheduling.isInputPending():null;const E=a.ViewPlugin.fromClass(class t{constructor(t){this.view=t;this.working=null;this.workScheduled=0;this.chunkEnd=-1;this.chunkBudget=-1;this.work=this.work.bind(this);this.scheduleWork()}update(t){let e=this.view.state.field(k.state).context;if(e.updateViewport(t.view.viewport)||this.view.viewport.to>e.treeLen)this.scheduleWork();if(t.docChanged||t.selectionSet){if(this.view.hasFocus)this.chunkBudget+=50;this.scheduleWork()}this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:t}=this.view,e=t.field(k.state);if(e.tree!=e.context.tree||!e.context.isDone(t.doc.length))this.working=N(this.work)}work(t){this.working=null;let e=Date.now();if(this.chunkEndr+1e3;let a=i.context.work((()=>O&&O()||Date.now()>s),r+(o?0:1e5));this.chunkBudget-=Date.now()-e;if(a||this.chunkBudget<=0){i.context.takeTree();this.view.dispatch({effects:k.setState.of(new I(i.context))})}if(this.chunkBudget>0&&!(a&&!o))this.scheduleWork();this.checkAsyncSchedule(i.context)}checkAsyncSchedule(t){if(t.scheduleOn){this.workScheduled++;t.scheduleOn.then((()=>this.scheduleWork())).catch((t=>(0,a.logException)(this.view.state,t))).then((()=>this.workScheduled--));t.scheduleOn=null}}destroy(){if(this.working)this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}});const L=s.Facet.define({combine(t){return t.length?t[0]:null},enables:t=>[k.state,E,a.EditorView.contentAttributes.compute([t],(e=>{let n=e.facet(t);return n&&n.name?{"data-language":n.name}:{}}))]});class B{constructor(t,e=[]){this.language=t;this.support=e;this.extension=[t,e]}}class M{constructor(t,e,n,r,i,s=undefined){this.name=t;this.alias=e;this.extensions=n;this.filename=r;this.loadFunc=i;this.support=s;this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then((t=>this.support=t),(t=>{this.loading=null;throw t})))}static of(t){let{load:e,support:n}=t;if(!e){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");e=()=>Promise.resolve(n)}return new M(t.name,(t.alias||[]).concat(t.name).map((t=>t.toLowerCase())),t.extensions||[],t.filename,e,n)}static matchFilename(t,e){for(let r of t)if(r.filename&&r.filename.test(e))return r;let n=/\.([^.]+)$/.exec(e);if(n)for(let r of t)if(r.extensions.indexOf(n[1])>-1)return r;return null}static matchLanguageName(t,e,n=true){e=e.toLowerCase();for(let r of t)if(r.alias.some((t=>t==e)))return r;if(n)for(let r of t)for(let t of r.alias){let n=e.indexOf(t);if(n>-1&&(t.length>2||!/\w/.test(e[n-1])&&!/\w/.test(e[n+t.length])))return r}return null}}const R=s.Facet.define();const F=s.Facet.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some((t=>t!=e[0])))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function V(t){let e=t.facet(F);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function j(t,e){let n="",r=t.tabSize,i=t.facet(F)[0];if(i=="\t"){while(e>=r){n+="\t";e-=r}i=" "}for(let s=0;s=e?H(t,n,e):null}function U(t,e,n){let r=Object.create(null);let i=new $(t,{overrideIndentation:t=>{var e;return(e=r[t])!==null&&e!==void 0?e:-1}});let s=[];for(let o=e;o<=n;){let e=t.doc.lineAt(o);o=e.to+1;let n=W(i,e.from);if(n==null)continue;if(!/\S/.test(e.text))n=0;let a=/^\s*/.exec(e.text)[0];let l=j(t,n);if(a!=l){r[e.from]=n;s.push({from:e.from,to:e.from+a.length,insert:l})}}return t.changes(s)}class ${constructor(t,e={}){this.state=t;this.options=e;this.unit=V(t)}lineAt(t,e=1){let n=this.state.doc.lineAt(t);let{simulateBreak:r,simulateDoubleBreak:i}=this.options;if(r!=null&&r>=n.from&&r<=n.to){if(i&&r==t)return{text:"",from:t};else if(e<0?r-1)i+=s-this.countColumn(n,n.search(/\S|$/));return i}countColumn(t,e=t.length){return(0,s.countColumn)(t,this.state.tabSize,e)}lineIndent(t,e=1){let{text:n,from:r}=this.lineAt(t,e);let i=this.options.overrideIndentation;if(i){let t=i(r);if(t>-1)return t}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const z=new r.NodeProp;function H(t,e,n){let r=e.resolveStack(n);let i=e.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(i!=r.node){let t=[];for(let e=i;e&&!(e.from==r.node.from&&e.type==r.node.type);e=e.parent)t.push(e);for(let e=t.length-1;e>=0;e--)r={node:t[e],next:r}}return G(r,t,n)}function G(t,e,n){for(let r=t;r;r=r.next){let t=q(r.node);if(t)return t(K.create(e,n,r))}return 0}function _(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function q(t){let e=t.type.prop(z);if(e)return e;let n=t.firstChild,i;if(n&&(i=n.type.prop(r.NodeProp.closedBy))){let e=t.lastChild,n=e&&i.indexOf(e.name)>-1;return t=>Z(t,true,1,undefined,n&&!_(t)?e.from:undefined)}return t.parent==null?J:null}function J(){return 0}class K extends ${constructor(t,e,n){super(t.state,t.options);this.base=t;this.pos=e;this.context=n}get node(){return this.context.node}static create(t,e,n){return new K(t,e,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(t){let e=this.state.doc.lineAt(t.from);for(;;){let n=t.resolve(e.from);while(n.parent&&n.parent.from==n.from)n=n.parent;if(Q(n,t))break;e=this.state.doc.lineAt(n.from)}return this.lineIndent(e.from)}continue(){return G(this.context.next,this.base,this.pos)}}function Q(t,e){for(let n=e;n;n=n.parent)if(t==n)return true;return false}function X(t){let e=t.node;let n=e.childAfter(e.from),r=e.lastChild;if(!n)return null;let i=t.options.simulateBreak;let s=t.state.doc.lineAt(n.from);let o=i==null||i<=s.from?s.to:Math.min(s.to,i);for(let a=n.to;;){let t=e.childAfter(a);if(!t||t==r)return null;if(!t.type.isSkipped){if(t.from>=o)return null;let e=/^ */.exec(s.text.slice(n.to-s.from))[0].length;return{from:n.from,to:n.to+e}}a=t.to}}function Y({closing:t,align:e=true,units:n=1}){return r=>Z(r,e,n,t)}function Z(t,e,n,r,i){let s=t.textAfter,o=s.match(/^\s*/)[0].length;let a=r&&s.slice(o,o+r.length)==r||i==t.pos+o;let l=e?X(t):null;if(l)return a?t.column(l.from):t.column(l.to);return t.baseIndent+(a?0:t.unit*n)}const tt=t=>t.baseIndent;function et({except:t,units:e=1}={}){return n=>{let r=t&&t.test(n.textAfter);return n.baseIndent+(r?0:e*n.unit)}}const nt=200;function rt(){return s.EditorState.transactionFilter.of((t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let n=t.newDoc,{head:r}=t.newSelection.main,i=n.lineAt(r);if(r>i.from+nt)return t;let s=n.sliceString(i.from,r);if(!e.some((t=>t.test(s))))return t;let{state:o}=t,a=-1,l=[];for(let{head:f}of o.selection.ranges){let t=o.doc.lineAt(f);if(t.from==a)continue;a=t.from;let e=W(o,t.from);if(e==null)continue;let n=/^\s*/.exec(t.text)[0];let r=j(o,e);if(n!=r)l.push({from:t.from,to:t.from+n.length,insert:r})}return l.length?[t,{changes:l,sequential:true}]:t}))}const it=s.Facet.define();const st=new r.NodeProp;function ot(t){let e=t.firstChild,n=t.lastChild;return e&&e.ton)continue;if(s&&i.from=e&&r.to>n)s=r}}return s}function lt(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function ft(t,e,n){for(let r of t.facet(it)){let i=r(t,e,n);if(i)return i}return at(t,e,n)}function ht(t,e){let n=e.mapPos(t.from,1),r=e.mapPos(t.to,-1);return n>=r?undefined:{from:n,to:r}}const ut=s.StateEffect.define({map:ht});const ct=s.StateEffect.define({map:ht});function dt(t){let e=[];for(let{head:n}of t.state.selection.ranges){if(e.some((t=>t.from<=n&&t.to>=n)))continue;e.push(t.lineBlockAt(n))}return e}const pt=s.StateField.define({create(){return a.Decoration.none},update(t,e){t=t.map(e.changes);for(let n of e.effects){if(n.is(ut)&&!kt(t,n.value.from,n.value.to)){let{preparePlaceholder:r}=e.state.facet(Dt);let i=!r?Ot:a.Decoration.replace({widget:new Et(r(e.state,n.value))});t=t.update({add:[i.range(n.value.from,n.value.to)]})}else if(n.is(ct)){t=t.update({filter:(t,e)=>n.value.from!=t||n.value.to!=e,filterFrom:n.value.from,filterTo:n.value.to})}}if(e.selection){let n=false,{head:r}=e.selection.main;t.between(r,r,((t,e)=>{if(tr)n=true}));if(n)t=t.update({filterFrom:r,filterTo:r,filter:(t,e)=>e<=r||t>=r})}return t},provide:t=>a.EditorView.decorations.from(t),toJSON(t,e){let n=[];t.between(0,e.doc.length,((t,e)=>{n.push(t,e)}));return n},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let n=0;n{if(!i||i.from>t)i={from:t,to:e}}));return i}function kt(t,e,n){let r=false;t.between(e,e,((t,i)=>{if(t==e&&i==n)r=true}));return r}function wt(t,e){return t.field(pt,false)?e:e.concat(s.StateEffect.appendConfig.of(It()))}const vt=t=>{for(let e of dt(t)){let n=ft(t.state,e.from,e.to);if(n){t.dispatch({effects:wt(t.state,[ut.of(n),xt(t,n)])});return true}}return false};const bt=t=>{if(!t.state.field(pt,false))return false;let e=[];for(let n of dt(t)){let r=mt(t.state,n.from,n.to);if(r)e.push(ct.of(r),xt(t,r,false))}if(e.length)t.dispatch({effects:e});return e.length>0};function xt(t,e,n=true){let r=t.state.doc.lineAt(e.from).number,i=t.state.doc.lineAt(e.to).number;return a.EditorView.announce.of(`${t.state.phrase(n?"Folded lines":"Unfolded lines")} ${r} ${t.state.phrase("to")} ${i}.`)}const yt=t=>{let{state:e}=t,n=[];for(let r=0;r{let e=t.state.field(pt,false);if(!e||!e.size)return false;let n=[];e.between(0,t.state.doc.length,((t,e)=>{n.push(ct.of({from:t,to:e}))}));t.dispatch({effects:n});return true};function Pt(t,e){for(let n=e;;){let r=ft(t.state,n.from,n.to);if(r&&r.to>e.from)return r;if(!n.from)return null;n=t.lineBlockAt(n.from-1)}}const Tt=t=>{let e=[];for(let n of dt(t)){let r=mt(t.state,n.from,n.to);if(r){e.push(ct.of(r),xt(t,r,false))}else{let r=Pt(t,n);if(r)e.push(ut.of(r),xt(t,r))}}if(e.length>0)t.dispatch({effects:wt(t.state,e)});return!!e.length};const At=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:vt},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:bt},{key:"Ctrl-Alt-[",run:yt},{key:"Ctrl-Alt-]",run:St}];const Ct={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"};const Dt=s.Facet.define({combine(t){return(0,s.combineConfig)(t,Ct)}});function It(t){let e=[pt,Rt];if(t)e.push(Dt.of(t));return e}function Nt(t,e){let{state:n}=t,r=n.facet(Dt);let i=e=>{let n=t.lineBlockAt(t.posAtDOM(e.target));let r=mt(t.state,n.from,n.to);if(r)t.dispatch({effects:ct.of(r)});e.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(t,i,e);let s=document.createElement("span");s.textContent=r.placeholderText;s.setAttribute("aria-label",n.phrase("folded code"));s.title=n.phrase("unfold");s.className="cm-foldPlaceholder";s.onclick=i;return s}const Ot=a.Decoration.replace({widget:new class extends a.WidgetType{toDOM(t){return Nt(t,null)}}});class Et extends a.WidgetType{constructor(t){super();this.value=t}eq(t){return this.value==t.value}toDOM(t){return Nt(t,this.value)}}const Lt={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>false};class Bt extends a.GutterMarker{constructor(t,e){super();this.config=t;this.open=e}eq(t){return this.config==t.config&&this.open==t.open}toDOM(t){if(this.config.markerDOM)return this.config.markerDOM(this.open);let e=document.createElement("span");e.textContent=this.open?this.config.openText:this.config.closedText;e.title=t.state.phrase(this.open?"Fold line":"Unfold line");return e}}function Mt(t={}){let e=Object.assign(Object.assign({},Lt),t);let n=new Bt(e,true),r=new Bt(e,false);let i=a.ViewPlugin.fromClass(class{constructor(t){this.from=t.viewport.from;this.markers=this.buildMarkers(t)}update(t){if(t.docChanged||t.viewportChanged||t.startState.facet(L)!=t.state.facet(L)||t.startState.field(pt,false)!=t.state.field(pt,false)||b(t.startState)!=b(t.state)||e.foldingChanged(t))this.markers=this.buildMarkers(t.view)}buildMarkers(t){let e=new s.RangeSetBuilder;for(let i of t.viewportLineBlocks){let s=mt(t.state,i.from,i.to)?r:ft(t.state,i.from,i.to)?n:null;if(s)e.add(i.from,i.from,s)}return e.finish()}});let{domEventHandlers:o}=e;return[i,(0,a.gutter)({class:"cm-foldGutter",markers(t){var e;return((e=t.plugin(i))===null||e===void 0?void 0:e.markers)||s.RangeSet.empty},initialSpacer(){return new Bt(e,false)},domEventHandlers:Object.assign(Object.assign({},o),{click:(t,e,n)=>{if(o.click&&o.click(t,e,n))return true;let r=mt(t.state,e.from,e.to);if(r){t.dispatch({effects:ct.of(r)});return true}let i=ft(t.state,e.from,e.to);if(i){t.dispatch({effects:ut.of(i)});return true}return false}})}),It()]}const Rt=a.EditorView.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Ft{constructor(t,e){this.specs=t;let n;function r(t){let e=u.StyleModule.newName();(n||(n=Object.create(null)))["."+e]=t;return e}const i=typeof e.all=="string"?e.all:e.all?r(e.all):undefined;const s=e.scope;this.scope=s instanceof k?t=>t.prop(p)==s.data:s?t=>t==s:undefined;this.style=(0,f.tagHighlighter)(t.map((t=>({tag:t.tag,class:t.class||r(Object.assign({},t,{tag:null}))}))),{all:i}).style;this.module=n?new u.StyleModule(n):null;this.themeType=e.themeType}static define(t,e){return new Ft(t,e||{})}}const Vt=s.Facet.define();const jt=s.Facet.define({combine(t){return t.length?[t[0]]:null}});function Wt(t){let e=t.facet(Vt);return e.length?e:t.facet(jt)}function Ut(t,e){let n=[Ht],r;if(t instanceof Ft){if(t.module)n.push(a.EditorView.styleModule.of(t.module));r=t.themeType}if(e===null||e===void 0?void 0:e.fallback)n.push(jt.of(t));else if(r)n.push(Vt.computeN([a.EditorView.darkTheme],(e=>e.facet(a.EditorView.darkTheme)==(r=="dark")?[t]:[])));else n.push(Vt.of(t));return n}function $t(t,e,n){let r=Wt(t);let i=null;if(r)for(let s of r){if(!s.scope||n&&s.scope(n)){let t=s.style(e);if(t)i=i?i+" "+t:t}}return i}class zt{constructor(t){this.markCache=Object.create(null);this.tree=b(t.state);this.decorations=this.buildDeco(t,Wt(t.state));this.decoratedTo=t.viewport.to}update(t){let e=b(t.state),n=Wt(t.state);let r=n!=Wt(t.startState);let{viewport:i}=t.view,s=t.changes.mapPos(this.decoratedTo,1);if(e.length=i.to){this.decorations=this.decorations.map(t.changes);this.decoratedTo=s}else if(e!=this.tree||t.viewportChanged||r){this.tree=e;this.decorations=this.buildDeco(t.view,n);this.decoratedTo=i.to}}buildDeco(t,e){if(!e||!this.tree.length)return a.Decoration.none;let n=new s.RangeSetBuilder;for(let{from:r,to:i}of t.visibleRanges){(0,f.highlightTree)(this.tree,e,((t,e,r)=>{n.add(t,e,this.markCache[r]||(this.markCache[r]=a.Decoration.mark({class:r})))}),r,i)}return n.finish()}}const Ht=s.Prec.high(a.ViewPlugin.fromClass(zt,{decorations:t=>t.decorations}));const Gt=Ft.define([{tag:f.tags.meta,color:"#404740"},{tag:f.tags.link,textDecoration:"underline"},{tag:f.tags.heading,textDecoration:"underline",fontWeight:"bold"},{tag:f.tags.emphasis,fontStyle:"italic"},{tag:f.tags.strong,fontWeight:"bold"},{tag:f.tags.strikethrough,textDecoration:"line-through"},{tag:f.tags.keyword,color:"#708"},{tag:[f.tags.atom,f.tags.bool,f.tags.url,f.tags.contentSeparator,f.tags.labelName],color:"#219"},{tag:[f.tags.literal,f.tags.inserted],color:"#164"},{tag:[f.tags.string,f.tags.deleted],color:"#a11"},{tag:[f.tags.regexp,f.tags.escape,f.tags.special(f.tags.string)],color:"#e40"},{tag:f.tags.definition(f.tags.variableName),color:"#00f"},{tag:f.tags.local(f.tags.variableName),color:"#30a"},{tag:[f.tags.typeName,f.tags.namespace],color:"#085"},{tag:f.tags.className,color:"#167"},{tag:[f.tags.special(f.tags.variableName),f.tags.macroName],color:"#256"},{tag:f.tags.definition(f.tags.propertyName),color:"#00c"},{tag:f.tags.comment,color:"#940"},{tag:f.tags.invalid,color:"#f00"}]);const _t=a.EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}});const qt=1e4,Jt="()[]{}";const Kt=s.Facet.define({combine(t){return(0,s.combineConfig)(t,{afterCursor:true,brackets:Jt,maxScanDistance:qt,renderMatch:Yt})}});const Qt=a.Decoration.mark({class:"cm-matchingBracket"}),Xt=a.Decoration.mark({class:"cm-nonmatchingBracket"});function Yt(t){let e=[];let n=t.matched?Qt:Xt;e.push(n.range(t.start.from,t.start.to));if(t.end)e.push(n.range(t.end.from,t.end.to));return e}const Zt=s.StateField.define({create(){return a.Decoration.none},update(t,e){if(!e.docChanged&&!e.selection)return t;let n=[];let r=e.state.facet(Kt);for(let i of e.state.selection.ranges){if(!i.empty)continue;let t=se(e.state,i.head,-1,r)||i.head>0&&se(e.state,i.head-1,1,r)||r.afterCursor&&(se(e.state,i.head,1,r)||i.heada.EditorView.decorations.from(t)});const te=[Zt,_t];function ee(t={}){return[Kt.of(t),te]}const ne=new r.NodeProp;function re(t,e,n){let i=t.prop(e<0?r.NodeProp.openedBy:r.NodeProp.closedBy);if(i)return i;if(t.name.length==1){let r=n.indexOf(t.name);if(r>-1&&r%2==(e<0?1:0))return[n[r+e]]}return null}function ie(t){let e=t.type.prop(ne);return e?e(t.node):t}function se(t,e,n,r={}){let i=r.maxScanDistance||qt,s=r.brackets||Jt;let o=b(t),a=o.resolveInner(e,n);for(let l=a;l;l=l.parent){let r=re(l.type,n,s);if(r&&l.from0?e>=i.from&&ei.from&&e<=i.to))return oe(t,e,n,l,i,r,s)}}return ae(t,e,n,o,a.type,i,s)}function oe(t,e,n,r,i,s,o){let a=r.parent,l={from:i.from,to:i.to};let f=0,h=a===null||a===void 0?void 0:a.cursor();if(h&&(n<0?h.childBefore(r.from):h.childAfter(r.to)))do{if(n<0?h.to<=r.from:h.from>=r.to){if(f==0&&s.indexOf(h.type.name)>-1&&h.from0)return null;let f={from:n<0?e-1:e,to:n>0?e+1:e};let h=t.doc.iterRange(e,n>0?t.doc.length:0),u=0;for(let c=0;!h.next().done&&c<=s;){let t=h.value;if(n<0)c+=t.length;let s=e+c*n;for(let e=n>0?0:t.length-1,a=n>0?t.length:-1;e!=a;e+=n){let a=o.indexOf(t[e]);if(a<0||r.resolveInner(s+e,1).type!=i)continue;if(a%2==0==n>0){u++}else if(u==1){return{start:f,end:{from:s+e,to:s+e+1},matched:a>>1==l>>1}}else{u--}}if(n>0)c+=t.length}return h.done?{start:f,matched:false}:null}function le(t,e,n,r=0,i=0){if(e==null){e=t.search(/[^\s\u00a0]/);if(e==-1)e=t.length}let s=i;for(let o=r;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||undefined}next(){if(this.pose}eatSpace(){let t=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>t}skipToEnd(){this.pos=this.string.length}skipTo(t){let e=this.string.indexOf(t,this.pos);if(e>-1){this.pos=e;return true}}backUp(t){this.pos-=t}column(){if(this.lastColumnPosn?t.toLowerCase():t;let i=this.string.substr(this.pos,t.length);if(r(i)==r(t)){if(e!==false)this.pos+=t.length;return true}else return null}else{let n=this.string.slice(this.pos).match(t);if(n&&n.index>0)return null;if(n&&e!==false)this.pos+=n[0].length;return n}}current(){return this.string.slice(this.start,this.pos)}}function he(t){return{name:t.name||"",token:t.token,blankLine:t.blankLine||(()=>{}),startState:t.startState||(()=>true),copyState:t.copyState||ue,indent:t.indent||(()=>null),languageData:t.languageData||{},tokenTable:t.tokenTable||ve,mergeTokens:t.mergeTokens!==false}}function ue(t){if(typeof t!="object")return t;let e={};for(let n in t){let r=t[n];e[n]=r instanceof Array?r.slice():r}return e}const ce=new WeakMap;class de extends k{constructor(t){let e=g(t.languageData);let n=he(t),i;let s=new class extends r.Parser{createParse(t,e,n){return new ke(i,t,e,n)}};super(e,s,[],t.name);this.topNode=Ie(e,this);i=this;this.streamParser=n;this.stateAfter=new r.NodeProp({perNode:true});this.tokenTable=t.tokenTable?new Te(n.tokenTable):Ae}static define(t){return new de(t)}getIndent(t){let e=undefined;let{overrideIndentation:n}=t.options;if(n){e=ce.get(t.state);if(e!=null&&e1e4)return null;while(i=i&&n+e.length<=s&&e.prop(t.stateAfter);if(o)return{state:t.streamParser.copyState(o),pos:n+e.length};for(let a=e.children.length-1;a>=0;a--){let o=e.children[a],l=n+e.positions[a];let f=o instanceof r.Tree&&l=e.length)return e;if(!s&&n==0&&e.type==t.topNode)s=true;for(let o=e.children.length-1;o>=0;o--){let a=e.positions[o],l=e.children[o],f;if(an&&pe(t,r.tree,0-r.offset,n,s),a;if(o&&o.pos<=i&&(a=ge(t,r.tree,n+r.offset,o.pos+r.offset,false)))return{state:o.state,tree:a}}return{state:t.streamParser.startState(s?V(s):4),tree:r.Tree.empty}}class ke{constructor(t,e,n,r){this.lang=t;this.input=e;this.fragments=n;this.ranges=r;this.stoppedAt=null;this.chunks=[];this.chunkPos=[];this.chunk=[];this.chunkReused=undefined;this.rangeIndex=0;this.to=r[r.length-1].to;let i=C.get(),s=r[0].from;let{state:o,tree:a}=me(t,n,s,this.to,i===null||i===void 0?void 0:i.state);this.state=o;this.parsedPos=this.chunkStart=s+a.length;for(let l=0;lt.from<=i.viewport.from&&t.to>=i.viewport.from))){this.state=this.lang.streamParser.startState(V(i.state));i.skipUntilInView(this.parsedPos,i.viewport.from);this.parsedPos=i.viewport.from}this.moveRangeIndex()}advance(){let t=C.get();let e=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt);let n=Math.min(e,this.chunkStart+2048);if(t)n=Math.min(n,t.viewport.to);while(this.parsedPos=e)return this.finish();if(t&&this.parsedPos>=t.viewport.to){t.skipUntilInView(this.parsedPos,e);return this.finish()}return null}stopAt(t){this.stoppedAt=t}lineAfter(t){let e=this.input.chunk(t);if(!this.input.lineChunks){let t=e.indexOf("\n");if(t>-1)e=e.slice(0,t)}else if(e=="\n"){e=""}return t+e.length<=this.to?e:e.slice(0,this.to-t)}nextLine(){let t=this.parsedPos,e=this.lineAfter(t),n=t+e.length;for(let r=this.rangeIndex;;){let t=this.ranges[r].to;if(t>=n)break;e=e.slice(0,t-(n-e.length));r++;if(r==this.ranges.length)break;let i=this.ranges[r].from;let s=this.lineAfter(i);e+=s;n=i+s.length}return{line:e,end:n}}skipGapsTo(t,e,n){for(;;){let r=this.ranges[this.rangeIndex].to,i=t+e;if(n>0?r>i:r>=i)break;let s=this.ranges[++this.rangeIndex].from;e+=s-r}return e}moveRangeIndex(){while(this.ranges[this.rangeIndex].to1){r=this.skipGapsTo(e,r,1);e+=r;let t=this.chunk.length;r=this.skipGapsTo(n,r,-1);n+=r;i+=this.chunk.length-t}let s=this.chunk.length-4;if(this.lang.streamParser.mergeTokens&&i==4&&s>=0&&this.chunk[s]==t&&this.chunk[s+2]==e)this.chunk[s+2]=n;else this.chunk.push(t,e,n,i);return r}parseLine(t){let{line:e,end:n}=this.nextLine(),r=0,{streamParser:i}=this.lang;let s=new fe(e,t?t.state.tabSize:4,t?V(t.state):2);if(s.eol()){i.blankLine(this.state,s.indentUnit)}else{while(!s.eol()){let t=we(i.token,s,this.state);if(t)r=this.emitToken(this.lang.tokenTable.resolve(t),this.parsedPos+s.start,this.parsedPos+s.pos,r);if(s.start>1e4)break}}this.parsedPos=n;this.moveRangeIndex();if(this.parsedPose.start)return r}throw new Error("Stream parser failed to advance stream.")}const ve=Object.create(null);const be=[r.NodeType.none];const xe=new r.NodeSet(be);const ye=[];const Se=Object.create(null);const Pe=Object.create(null);for(let[je,We]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Pe[je]=De(ve,We);class Te{constructor(t){this.extra=t;this.table=Object.assign(Object.create(null),Pe)}resolve(t){return!t?0:this.table[t]||(this.table[t]=De(this.extra,t))}}const Ae=new Te(ve);function Ce(t,e){if(ye.indexOf(t)>-1)return;ye.push(t);console.warn(e)}function De(t,e){let n=[];for(let r of e.split(" ")){let e=[];for(let n of r.split(".")){let r=t[n]||f.tags[n];if(!r){Ce(n,`Unknown highlighting tag ${n}`)}else if(typeof r=="function"){if(!e.length)Ce(n,`Modifier ${n} used at start of tag`);else e=e.map(r)}else{if(e.length)Ce(n,`Tag ${n} used as modifier`);else e=Array.isArray(r)?r:[r]}}for(let t of e)n.push(t)}if(!n.length)return 0;let i=e.replace(/ /g,"_"),s=i+" "+n.map((t=>t.id));let o=Se[s];if(o)return o.id;let a=Se[s]=r.NodeType.define({id:be.length,name:i,props:[(0,f.styleTags)({[i]:n})]});be.push(a);return a.id}function Ie(t,e){let n=r.NodeType.define({id:be.length,name:"Document",props:[p.add((()=>t)),z.add((()=>t=>e.getIndent(t)))],top:true});be.push(n);return n}function Ne(t){return t.length<=4096&&/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/.test(t)}function Oe(t){for(let e=t.iter();!e.next().done;)if(Ne(e.value))return true;return false}function Ee(t){let e=false;t.iterChanges(((t,n,r,i,s)=>{if(!e&&Oe(s))e=true}));return e}const Le=s.Facet.define({combine:t=>t.some((t=>t))});function Be(t={}){let e=[Me];if(t.alwaysIsolate)e.push(Le.of(true));return e}const Me=a.ViewPlugin.fromClass(class{constructor(t){this.always=t.state.facet(Le)||t.textDirection!=a.Direction.LTR||t.state.facet(a.EditorView.perLineTextDirection);this.hasRTL=!this.always&&Oe(t.state.doc);this.tree=b(t.state);this.decorations=this.always||this.hasRTL?Re(t,this.tree,this.always):a.Decoration.none}update(t){let e=t.state.facet(Le)||t.view.textDirection!=a.Direction.LTR||t.state.facet(a.EditorView.perLineTextDirection);if(!e&&!this.hasRTL&&Ee(t.changes))this.hasRTL=true;if(!e&&!this.hasRTL)return;let n=b(t.state);if(e!=this.always||n!=this.tree||t.docChanged||t.viewportChanged){this.tree=n;this.always=e;this.decorations=Re(t.view,n,e)}}},{provide:t=>{function e(e){var n,r;return(r=(n=e.plugin(t))===null||n===void 0?void 0:n.decorations)!==null&&r!==void 0?r:a.Decoration.none}return[a.EditorView.outerDecorations.of(e),s.Prec.lowest(a.EditorView.bidiIsolatedRanges.of(e))]}});function Re(t,e,n){let i=new s.RangeSetBuilder;let o=t.visibleRanges;if(!n)o=Fe(o,t.state.doc);for(let{from:s,to:a}of o){e.iterate({enter:t=>{let e=t.type.prop(r.NodeProp.isolate);if(e)i.add(t.from,t.to,Ve[e])},from:s,to:a})}return i.finish()}function Fe(t,e){let n=e.iter(),r=0,i=[],s=null;for(let{from:o,to:a}of t){if(s&&s.to>o){o=s.to;if(o>=a)continue}if(r+n.value.lengtht-10)s.to=Math.min(a,e);else i.push(s={from:t,to:Math.min(a,e)})}if(e>=a)break;r=e;n.next()}}return i}const Ve={rtl:a.Decoration.mark({class:"cm-iso",inclusive:true,attributes:{dir:"rtl"},bidiIsolate:a.Direction.RTL}),ltr:a.Decoration.mark({class:"cm-iso",inclusive:true,attributes:{dir:"ltr"},bidiIsolate:a.Direction.LTR}),auto:a.Decoration.mark({class:"cm-iso",inclusive:true,attributes:{dir:"auto"},bidiIsolate:null})}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8326.9dda93079a9e4f1b9be6.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8326.9dda93079a9e4f1b9be6.js deleted file mode 100644 index 5c02626784077bd070cb68f53305d9f5735ddd75..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8326.9dda93079a9e4f1b9be6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8326],{98326:(e,_,t)=>{t.r(_);t.d(_,{nginx:()=>f});function r(e){var _={},t=e.split(" ");for(var r=0;r*\/]/.test(r)){return n(null,"select-op")}else if(/[;{}:\[\]]/.test(r)){return n(null,r)}else{e.eatWhile(/[\w\\\-]/);return n("variable","variable")}}function l(e,_){var t=false,r;while((r=e.next())!=null){if(t&&r=="/"){_.tokenize=c;break}t=r=="*"}return n("comment","comment")}function p(e,_){var t=0,r;while((r=e.next())!=null){if(t>=2&&r==">"){_.tokenize=c;break}t=r=="-"?t+1:0}return n("comment","comment")}function u(e){return function(_,t){var r=false,i;while((i=_.next())!=null){if(i==e&&!r)break;r=!r&&i=="\\"}if(!r)t.tokenize=c;return n("string","string")}}const f={name:"nginx",startState:function(){return{tokenize:c,baseIndent:0,stack:[]}},token:function(e,_){if(e.eatSpace())return null;o=null;var t=_.tokenize(e,_);var r=_.stack[_.stack.length-1];if(o=="hash"&&r=="rule")t="atom";else if(t=="variable"){if(r=="rule")t="number";else if(!r||r=="@media{")t="tag"}if(r=="rule"&&/^[\{\};]$/.test(o))_.stack.pop();if(o=="{"){if(r=="@media")_.stack[_.stack.length-1]="@media{";else _.stack.push("{")}else if(o=="}")_.stack.pop();else if(o=="@media")_.stack.push("@media");else if(r=="{"&&o!="comment")_.stack.push("rule");return t},indent:function(e,_,t){var r=e.stack.length;if(/^\}/.test(_))r-=e.stack[e.stack.length-1]=="rule"?2:1;return e.baseIndent+r*t.unit},languageData:{indentOnInput:/^\s*\}$/}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8354.94077232b086a13541cc.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8354.94077232b086a13541cc.js deleted file mode 100644 index 0ce846e00d5ff609871bf980d609c0c5f5146e81..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8354.94077232b086a13541cc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8354],{68354:(a,p,e)=>{e.d(p,{createGitGraphServices:()=>t.b});var t=e(87290);var r=e(74888)}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8368.c75a4b32ae45ec88465d.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8368.c75a4b32ae45ec88465d.js deleted file mode 100644 index 0fab82bc840e0508acfba7af210f0f75e14f2727..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8368.c75a4b32ae45ec88465d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8368],{85987:(e,r,t)=>{t.r(r);t.d(r,{javascript:()=>i,json:()=>a,jsonld:()=>u,typescript:()=>f});function n(e){var r=e.statementIndent;var t=e.jsonld;var n=e.json||t;var i=e.typescript;var a=e.wordCharacters||/[\w$\xa1-\uffff]/;var u=function(){function e(e){return{type:e,style:"keyword"}}var r=e("keyword a"),t=e("keyword b"),n=e("keyword c"),i=e("keyword d");var a=e("operator"),u={type:"atom",style:"atom"};return{if:e("if"),while:r,with:r,else:t,do:t,try:t,finally:t,return:i,break:i,continue:i,new:e("new"),delete:n,void:n,throw:n,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:a,typeof:a,instanceof:a,true:u,false:u,null:u,undefined:u,NaN:u,Infinity:u,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n}}();var f=/[+\-*&%=<>!?|~^@]/;var s=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function o(e){var r=false,t,n=false;while((t=e.next())!=null){if(!r){if(t=="/"&&!n)return;if(t=="[")n=true;else if(n&&t=="]")n=false}r=!r&&t=="\\"}}var l,c;function d(e,r,t){l=e;c=t;return r}function m(e,r){var t=e.next();if(t=='"'||t=="'"){r.tokenize=p(t);return r.tokenize(e,r)}else if(t=="."&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/)){return d("number","number")}else if(t=="."&&e.match("..")){return d("spread","meta")}else if(/[\[\]{}\(\),;\:\.]/.test(t)){return d(t)}else if(t=="="&&e.eat(">")){return d("=>","operator")}else if(t=="0"&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)){return d("number","number")}else if(/\d/.test(t)){e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/);return d("number","number")}else if(t=="/"){if(e.eat("*")){r.tokenize=k;return k(e,r)}else if(e.eat("/")){e.skipToEnd();return d("comment","comment")}else if(er(e,r,1)){o(e);e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/);return d("regexp","string.special")}else{e.eat("=");return d("operator","operator",e.current())}}else if(t=="`"){r.tokenize=v;return v(e,r)}else if(t=="#"&&e.peek()=="!"){e.skipToEnd();return d("meta","meta")}else if(t=="#"&&e.eatWhile(a)){return d("variable","property")}else if(t=="<"&&e.match("!--")||t=="-"&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start))){e.skipToEnd();return d("comment","comment")}else if(f.test(t)){if(t!=">"||!r.lexical||r.lexical.type!=">"){if(e.eat("=")){if(t=="!"||t=="=")e.eat("=")}else if(/[<>*+\-|&?]/.test(t)){e.eat(t);if(t==">")e.eat(t)}}if(t=="?"&&e.eat("."))return d(".");return d("operator","operator",e.current())}else if(a.test(t)){e.eatWhile(a);var n=e.current();if(r.lastType!="."){if(u.propertyIsEnumerable(n)){var i=u[n];return d(i.type,i.style,n)}if(n=="async"&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,false))return d("async","keyword",n)}return d("variable","variable",n)}}function p(e){return function(r,n){var i=false,a;if(t&&r.peek()=="@"&&r.match(s)){n.tokenize=m;return d("jsonld-keyword","meta")}while((a=r.next())!=null){if(a==e&&!i)break;i=!i&&a=="\\"}if(!i)n.tokenize=m;return d("string","string")}}function k(e,r){var t=false,n;while(n=e.next()){if(n=="/"&&t){r.tokenize=m;break}t=n=="*"}return d("comment","comment")}function v(e,r){var t=false,n;while((n=e.next())!=null){if(!t&&(n=="`"||n=="$"&&e.eat("{"))){r.tokenize=m;break}t=!t&&n=="\\"}return d("quasi","string.special",e.current())}var y="([{}])";function w(e,r){if(r.fatArrowAt)r.fatArrowAt=null;var t=e.string.indexOf("=>",e.start);if(t<0)return;if(i){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,t));if(n)t=n.index}var u=0,f=false;for(var s=t-1;s>=0;--s){var o=e.string.charAt(s);var l=y.indexOf(o);if(l>=0&&l<3){if(!u){++s;break}if(--u==0){if(o=="(")f=true;break}}else if(l>=3&&l<6){++u}else if(a.test(o)){f=true}else if(/["'\/`]/.test(o)){for(;;--s){if(s==0)return;var c=e.string.charAt(s-1);if(c==o&&e.string.charAt(s-2)!="\\"){s--;break}}}else if(f&&!u){++s;break}}if(f&&!u)r.fatArrowAt=s}var b={atom:true,number:true,variable:true,string:true,regexp:true,this:true,import:true,"jsonld-keyword":true};function h(e,r,t,n,i,a){this.indented=e;this.column=r;this.type=t;this.prev=i;this.info=a;if(n!=null)this.align=n}function x(e,r){for(var t=e.localVars;t;t=t.next)if(t.name==r)return true;for(var n=e.context;n;n=n.prev){for(var t=n.vars;t;t=t.next)if(t.name==r)return true}}function g(e,r,t,i,a){var u=e.cc;V.state=e;V.stream=a;V.marked=null;V.cc=u;V.style=r;if(!e.lexical.hasOwnProperty("align"))e.lexical.align=true;while(true){var f=u.length?u.pop():n?F:B;if(f(t,i)){while(u.length&&u[u.length-1].lex)u.pop()();if(V.marked)return V.marked;if(t=="variable"&&x(e,i))return"variableName.local";return r}}}var V={state:null,column:null,marked:null,cc:null};function A(){for(var e=arguments.length-1;e>=0;e--)V.cc.push(arguments[e])}function z(){A.apply(null,arguments);return true}function j(e,r){for(var t=r;t;t=t.next)if(t.name==e)return true;return false}function T(r){var t=V.state;V.marked="def";if(t.context){if(t.lexical.info=="var"&&t.context&&t.context.block){var n=_(r,t.context);if(n!=null){t.context=n;return}}else if(!j(r,t.localVars)){t.localVars=new q(r,t.localVars);return}}if(e.globalVars&&!j(r,t.globalVars))t.globalVars=new q(r,t.globalVars)}function _(e,r){if(!r){return null}else if(r.block){var t=_(e,r.prev);if(!t)return null;if(t==r.prev)return r;return new O(t,r.vars,true)}else if(j(e,r.vars)){return r}else{return new O(r.prev,new q(e,r.vars),false)}}function $(e){return e=="public"||e=="private"||e=="protected"||e=="abstract"||e=="readonly"}function O(e,r,t){this.prev=e;this.vars=r;this.block=t}function q(e,r){this.name=e;this.next=r}var E=new q("this",new q("arguments",null));function I(){V.state.context=new O(V.state.context,V.state.localVars,false);V.state.localVars=E}function C(){V.state.context=new O(V.state.context,V.state.localVars,true);V.state.localVars=null}I.lex=C.lex=true;function S(){V.state.localVars=V.state.context.vars;V.state.context=V.state.context.prev}S.lex=true;function N(e,r){var t=function(){var t=V.state,n=t.indented;if(t.lexical.type=="stat")n=t.lexical.indented;else for(var i=t.lexical;i&&i.type==")"&&i.align;i=i.prev)n=i.indented;t.lexical=new h(n,V.stream.column(),e,null,t.lexical,r)};t.lex=true;return t}function P(){var e=V.state;if(e.lexical.prev){if(e.lexical.type==")")e.indented=e.lexical.indented;e.lexical=e.lexical.prev}}P.lex=true;function W(e){function r(t){if(t==e)return z();else if(e==";"||t=="}"||t==")"||t=="]")return A();else return z(r)}return r}function B(e,r){if(e=="var")return z(N("vardef",r),Ae,W(";"),P);if(e=="keyword a")return z(N("form"),G,B,P);if(e=="keyword b")return z(N("form"),B,P);if(e=="keyword d")return V.stream.match(/^\s*$/,false)?z():z(N("stat"),J,W(";"),P);if(e=="debugger")return z(W(";"));if(e=="{")return z(N("}"),C,se,P,S);if(e==";")return z();if(e=="if"){if(V.state.lexical.info=="else"&&V.state.cc[V.state.cc.length-1]==P)V.state.cc.pop()();return z(N("form"),G,B,P,Oe)}if(e=="function")return z(Ce);if(e=="for")return z(N("form"),C,qe,B,S,P);if(e=="class"||i&&r=="interface"){V.marked="keyword";return z(N("form",e=="class"?e:r),Be,P)}if(e=="variable"){if(i&&r=="declare"){V.marked="keyword";return z(B)}else if(i&&(r=="module"||r=="enum"||r=="type")&&V.stream.match(/^\s*\w/,false)){V.marked="keyword";if(r=="enum")return z(Xe);else if(r=="type")return z(Ne,W("operator"),me,W(";"));else return z(N("form"),ze,W("{"),N("}"),se,P,P)}else if(i&&r=="namespace"){V.marked="keyword";return z(N("form"),F,B,P)}else if(i&&r=="abstract"){V.marked="keyword";return z(B)}else{return z(N("stat"),re)}}if(e=="switch")return z(N("form"),G,W("{"),N("}","switch"),C,se,P,P,S);if(e=="case")return z(F,W(":"));if(e=="default")return z(W(":"));if(e=="catch")return z(N("form"),I,D,B,P,S);if(e=="export")return z(N("stat"),Ge,P);if(e=="import")return z(N("stat"),Je,P);if(e=="async")return z(B);if(r=="@")return z(F,B);return A(N("stat"),F,W(";"),P)}function D(e){if(e=="(")return z(Pe,W(")"))}function F(e,r){return H(e,r,false)}function U(e,r){return H(e,r,true)}function G(e){if(e!="(")return A();return z(N(")"),J,W(")"),P)}function H(e,r,t){if(V.state.fatArrowAt==V.stream.start){var n=t?X:R;if(e=="(")return z(I,N(")"),ue(Pe,")"),P,W("=>"),n,S);else if(e=="variable")return A(I,ze,W("=>"),n,S)}var a=t?L:K;if(b.hasOwnProperty(e))return z(a);if(e=="function")return z(Ce,a);if(e=="class"||i&&r=="interface"){V.marked="keyword";return z(N("form"),We,P)}if(e=="keyword c"||e=="async")return z(t?U:F);if(e=="(")return z(N(")"),J,W(")"),P,a);if(e=="operator"||e=="spread")return z(t?U:F);if(e=="[")return z(N("]"),Re,P,a);if(e=="{")return fe(ne,"}",null,a);if(e=="quasi")return A(M,a);if(e=="new")return z(Y(t));return z()}function J(e){if(e.match(/[;\}\)\],]/))return A();return A(F)}function K(e,r){if(e==",")return z(J);return L(e,r,false)}function L(e,r,t){var n=t==false?K:L;var a=t==false?F:U;if(e=="=>")return z(I,t?X:R,S);if(e=="operator"){if(/\+\+|--/.test(r)||i&&r=="!")return z(n);if(i&&r=="<"&&V.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,false))return z(N(">"),ue(me,">"),P,n);if(r=="?")return z(F,W(":"),a);return z(a)}if(e=="quasi"){return A(M,n)}if(e==";")return;if(e=="(")return fe(U,")","call",n);if(e==".")return z(te,n);if(e=="[")return z(N("]"),J,W("]"),P,n);if(i&&r=="as"){V.marked="keyword";return z(me,n)}if(e=="regexp"){V.state.lastType=V.marked="operator";V.stream.backUp(V.stream.pos-V.stream.start-1);return z(a)}}function M(e,r){if(e!="quasi")return A();if(r.slice(r.length-2)!="${")return z(M);return z(J,Q)}function Q(e){if(e=="}"){V.marked="string.special";V.state.tokenize=v;return z(M)}}function R(e){w(V.stream,V.state);return A(e=="{"?B:F)}function X(e){w(V.stream,V.state);return A(e=="{"?B:U)}function Y(e){return function(r){if(r==".")return z(e?ee:Z);else if(r=="variable"&&i)return z(xe,e?L:K);else return A(e?U:F)}}function Z(e,r){if(r=="target"){V.marked="keyword";return z(K)}}function ee(e,r){if(r=="target"){V.marked="keyword";return z(L)}}function re(e){if(e==":")return z(P,B);return A(K,W(";"),P)}function te(e){if(e=="variable"){V.marked="property";return z()}}function ne(e,r){if(e=="async"){V.marked="property";return z(ne)}else if(e=="variable"||V.style=="keyword"){V.marked="property";if(r=="get"||r=="set")return z(ie);var n;if(i&&V.state.fatArrowAt==V.stream.start&&(n=V.stream.match(/^\s*:\s*/,false)))V.state.fatArrowAt=V.stream.pos+n[0].length;return z(ae)}else if(e=="number"||e=="string"){V.marked=t?"property":V.style+" property";return z(ae)}else if(e=="jsonld-keyword"){return z(ae)}else if(i&&$(r)){V.marked="keyword";return z(ne)}else if(e=="["){return z(F,oe,W("]"),ae)}else if(e=="spread"){return z(U,ae)}else if(r=="*"){V.marked="keyword";return z(ne)}else if(e==":"){return A(ae)}}function ie(e){if(e!="variable")return A(ae);V.marked="property";return z(Ce)}function ae(e){if(e==":")return z(U);if(e=="(")return A(Ce)}function ue(e,r,t){function n(i,a){if(t?t.indexOf(i)>-1:i==","){var u=V.state.lexical;if(u.info=="call")u.pos=(u.pos||0)+1;return z((function(t,n){if(t==r||n==r)return A();return A(e)}),n)}if(i==r||a==r)return z();if(t&&t.indexOf(";")>-1)return A(e);return z(W(r))}return function(t,i){if(t==r||i==r)return z();return A(e,n)}}function fe(e,r,t){for(var n=3;n"),me);if(e=="quasi")return A(ye,he)}function pe(e){if(e=="=>")return z(me)}function ke(e){if(e.match(/[\}\)\]]/))return z();if(e==","||e==";")return z(ke);return A(ve,ke)}function ve(e,r){if(e=="variable"||V.style=="keyword"){V.marked="property";return z(ve)}else if(r=="?"||e=="number"||e=="string"){return z(ve)}else if(e==":"){return z(me)}else if(e=="["){return z(W("variable"),le,W("]"),ve)}else if(e=="("){return A(Se,ve)}else if(!e.match(/[;\}\)\],]/)){return z()}}function ye(e,r){if(e!="quasi")return A();if(r.slice(r.length-2)!="${")return z(ye);return z(me,we)}function we(e){if(e=="}"){V.marked="string.special";V.state.tokenize=v;return z(ye)}}function be(e,r){if(e=="variable"&&V.stream.match(/^\s*[?:]/,false)||r=="?")return z(be);if(e==":")return z(me);if(e=="spread")return z(be);return A(me)}function he(e,r){if(r=="<")return z(N(">"),ue(me,">"),P,he);if(r=="|"||e=="."||r=="&")return z(me);if(e=="[")return z(me,W("]"),he);if(r=="extends"||r=="implements"){V.marked="keyword";return z(me)}if(r=="?")return z(me,W(":"),me)}function xe(e,r){if(r=="<")return z(N(">"),ue(me,">"),P,he)}function ge(){return A(me,Ve)}function Ve(e,r){if(r=="=")return z(me)}function Ae(e,r){if(r=="enum"){V.marked="keyword";return z(Xe)}return A(ze,oe,_e,$e)}function ze(e,r){if(i&&$(r)){V.marked="keyword";return z(ze)}if(e=="variable"){T(r);return z()}if(e=="spread")return z(ze);if(e=="[")return fe(Te,"]");if(e=="{")return fe(je,"}")}function je(e,r){if(e=="variable"&&!V.stream.match(/^\s*:/,false)){T(r);return z(_e)}if(e=="variable")V.marked="property";if(e=="spread")return z(ze);if(e=="}")return A();if(e=="[")return z(F,W("]"),W(":"),je);return z(W(":"),ze,_e)}function Te(){return A(ze,_e)}function _e(e,r){if(r=="=")return z(U)}function $e(e){if(e==",")return z(Ae)}function Oe(e,r){if(e=="keyword b"&&r=="else")return z(N("form","else"),B,P)}function qe(e,r){if(r=="await")return z(qe);if(e=="(")return z(N(")"),Ee,P)}function Ee(e){if(e=="var")return z(Ae,Ie);if(e=="variable")return z(Ie);return A(Ie)}function Ie(e,r){if(e==")")return z();if(e==";")return z(Ie);if(r=="in"||r=="of"){V.marked="keyword";return z(F,Ie)}return A(F,Ie)}function Ce(e,r){if(r=="*"){V.marked="keyword";return z(Ce)}if(e=="variable"){T(r);return z(Ce)}if(e=="(")return z(I,N(")"),ue(Pe,")"),P,ce,B,S);if(i&&r=="<")return z(N(">"),ue(ge,">"),P,Ce)}function Se(e,r){if(r=="*"){V.marked="keyword";return z(Se)}if(e=="variable"){T(r);return z(Se)}if(e=="(")return z(I,N(")"),ue(Pe,")"),P,ce,S);if(i&&r=="<")return z(N(">"),ue(ge,">"),P,Se)}function Ne(e,r){if(e=="keyword"||e=="variable"){V.marked="type";return z(Ne)}else if(r=="<"){return z(N(">"),ue(ge,">"),P)}}function Pe(e,r){if(r=="@")z(F,Pe);if(e=="spread")return z(Pe);if(i&&$(r)){V.marked="keyword";return z(Pe)}if(i&&e=="this")return z(oe,_e);return A(ze,oe,_e)}function We(e,r){if(e=="variable")return Be(e,r);return De(e,r)}function Be(e,r){if(e=="variable"){T(r);return z(De)}}function De(e,r){if(r=="<")return z(N(">"),ue(ge,">"),P,De);if(r=="extends"||r=="implements"||i&&e==","){if(r=="implements")V.marked="keyword";return z(i?me:F,De)}if(e=="{")return z(N("}"),Fe,P)}function Fe(e,r){if(e=="async"||e=="variable"&&(r=="static"||r=="get"||r=="set"||i&&$(r))&&V.stream.match(/^\s+#?[\w$\xa1-\uffff]/,false)){V.marked="keyword";return z(Fe)}if(e=="variable"||V.style=="keyword"){V.marked="property";return z(Ue,Fe)}if(e=="number"||e=="string")return z(Ue,Fe);if(e=="[")return z(F,oe,W("]"),Ue,Fe);if(r=="*"){V.marked="keyword";return z(Fe)}if(i&&e=="(")return A(Se,Fe);if(e==";"||e==",")return z(Fe);if(e=="}")return z();if(r=="@")return z(F,Fe)}function Ue(e,r){if(r=="!"||r=="?")return z(Ue);if(e==":")return z(me,_e);if(r=="=")return z(U);var t=V.state.lexical.prev,n=t&&t.info=="interface";return A(n?Se:Ce)}function Ge(e,r){if(r=="*"){V.marked="keyword";return z(Qe,W(";"))}if(r=="default"){V.marked="keyword";return z(F,W(";"))}if(e=="{")return z(ue(He,"}"),Qe,W(";"));return A(B)}function He(e,r){if(r=="as"){V.marked="keyword";return z(W("variable"))}if(e=="variable")return A(U,He)}function Je(e){if(e=="string")return z();if(e=="(")return A(F);if(e==".")return A(K);return A(Ke,Le,Qe)}function Ke(e,r){if(e=="{")return fe(Ke,"}");if(e=="variable")T(r);if(r=="*")V.marked="keyword";return z(Me)}function Le(e){if(e==",")return z(Ke,Le)}function Me(e,r){if(r=="as"){V.marked="keyword";return z(Ke)}}function Qe(e,r){if(r=="from"){V.marked="keyword";return z(F)}}function Re(e){if(e=="]")return z();return A(ue(U,"]"))}function Xe(){return A(N("form"),ze,W("{"),N("}"),ue(Ye,"}"),P,P)}function Ye(){return A(ze,_e)}function Ze(e,r){return e.lastType=="operator"||e.lastType==","||f.test(r.charAt(0))||/[,.]/.test(r.charAt(0))}function er(e,r,t){return r.tokenize==m&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(r.lastType)||r.lastType=="quasi"&&/\{\s*$/.test(e.string.slice(0,e.pos-(t||0)))}return{name:e.name,startState:function(r){var t={tokenize:m,lastType:"sof",cc:[],lexical:new h(-r,0,"block",false),localVars:e.localVars,context:e.localVars&&new O(null,null,false),indented:0};if(e.globalVars&&typeof e.globalVars=="object")t.globalVars=e.globalVars;return t},token:function(e,r){if(e.sol()){if(!r.lexical.hasOwnProperty("align"))r.lexical.align=false;r.indented=e.indentation();w(e,r)}if(r.tokenize!=k&&e.eatSpace())return null;var t=r.tokenize(e,r);if(l=="comment")return t;r.lastType=l=="operator"&&(c=="++"||c=="--")?"incdec":l;return g(r,t,l,c,e)},indent:function(t,n,i){if(t.tokenize==k||t.tokenize==v)return null;if(t.tokenize!=m)return 0;var a=n&&n.charAt(0),u=t.lexical,f;if(!/^\s*else\b/.test(n))for(var s=t.cc.length-1;s>=0;--s){var o=t.cc[s];if(o==P)u=u.prev;else if(o!=Oe&&o!=S)break}while((u.type=="stat"||u.type=="form")&&(a=="}"||(f=t.cc[t.cc.length-1])&&(f==K||f==L)&&!/^[,\.=+\-*:?[\(]/.test(n)))u=u.prev;if(r&&u.type==")"&&u.prev.type=="stat")u=u.prev;var l=u.type,c=a==l;if(l=="vardef")return u.indented+(t.lastType=="operator"||t.lastType==","?u.info.length+1:0);else if(l=="form"&&a=="{")return u.indented;else if(l=="form")return u.indented+i.unit;else if(l=="stat")return u.indented+(Ze(t,n)?r||i.unit:0);else if(u.info=="switch"&&!c&&e.doubleIndentSwitch!=false)return u.indented+(/^(?:case|default)\b/.test(n)?i.unit:2*i.unit);else if(u.align)return u.column+(c?0:1);else return u.indented+(c?0:i.unit)},languageData:{indentOnInput:/^\s*(?:case .*?:|default:|\{|\})$/,commentTokens:n?undefined:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]},wordChars:"$"}}}const i=n({name:"javascript"});const a=n({name:"json",json:true});const u=n({name:"json",jsonld:true});const f=n({name:"typescript",typescript:true})}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8391.e5fb2e35cced405eb819.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8391.e5fb2e35cced405eb819.js deleted file mode 100644 index 9c34660c4e0d0fd29c080686df6d52b38f2321a8..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8391.e5fb2e35cced405eb819.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8391],{78391:(t,e,a)=>{a.d(e,{diagram:()=>j});var i=a(88855);var r=a(15051);var n=a(94065);var s=a(33416);var d=a(94746);var o=a(20778);var c=a(57590);var g=a(68232);var p=a(76261);var h=a(96049);var l=a(75905);var f=a(24982);var x=a(82211);var u=a(84416);var D={};var y=(0,l.K2)(((t,e)=>{D[t]=e}),"set");var w=(0,l.K2)((t=>D[t]),"get");var v=(0,l.K2)((()=>Object.keys(D)),"keys");var m=(0,l.K2)((()=>v().length),"size");var b={get:w,set:y,keys:v,size:m};var B=(0,l.K2)((t=>t.append("circle").attr("class","start-state").attr("r",(0,l.D7)().state.sizeUnit).attr("cx",(0,l.D7)().state.padding+(0,l.D7)().state.sizeUnit).attr("cy",(0,l.D7)().state.padding+(0,l.D7)().state.sizeUnit)),"drawStartState");var k=(0,l.K2)((t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",(0,l.D7)().state.textHeight).attr("class","divider").attr("x2",(0,l.D7)().state.textHeight*2).attr("y1",0).attr("y2",0)),"drawDivider");var S=(0,l.K2)(((t,e)=>{const a=t.append("text").attr("x",2*(0,l.D7)().state.padding).attr("y",(0,l.D7)().state.textHeight+2*(0,l.D7)().state.padding).attr("font-size",(0,l.D7)().state.fontSize).attr("class","state-title").text(e.id);const i=a.node().getBBox();t.insert("rect",":first-child").attr("x",(0,l.D7)().state.padding).attr("y",(0,l.D7)().state.padding).attr("width",i.width+2*(0,l.D7)().state.padding).attr("height",i.height+2*(0,l.D7)().state.padding).attr("rx",(0,l.D7)().state.radius);return a}),"drawSimpleState");var N=(0,l.K2)(((t,e)=>{const a=(0,l.K2)((function(t,e,a){const i=t.append("tspan").attr("x",2*(0,l.D7)().state.padding).text(e);if(!a){i.attr("dy",(0,l.D7)().state.textHeight)}}),"addTspan");const i=t.append("text").attr("x",2*(0,l.D7)().state.padding).attr("y",(0,l.D7)().state.textHeight+1.3*(0,l.D7)().state.padding).attr("font-size",(0,l.D7)().state.fontSize).attr("class","state-title").text(e.descriptions[0]);const r=i.node().getBBox();const n=r.height;const s=t.append("text").attr("x",(0,l.D7)().state.padding).attr("y",n+(0,l.D7)().state.padding*.4+(0,l.D7)().state.dividerMargin+(0,l.D7)().state.textHeight).attr("class","state-description");let d=true;let o=true;e.descriptions.forEach((function(t){if(!d){a(s,t,o);o=false}d=false}));const c=t.append("line").attr("x1",(0,l.D7)().state.padding).attr("y1",(0,l.D7)().state.padding+n+(0,l.D7)().state.dividerMargin/2).attr("y2",(0,l.D7)().state.padding+n+(0,l.D7)().state.dividerMargin/2).attr("class","descr-divider");const g=s.node().getBBox();const p=Math.max(g.width,r.width);c.attr("x2",p+3*(0,l.D7)().state.padding);t.insert("rect",":first-child").attr("x",(0,l.D7)().state.padding).attr("y",(0,l.D7)().state.padding).attr("width",p+2*(0,l.D7)().state.padding).attr("height",g.height+n+2*(0,l.D7)().state.padding).attr("rx",(0,l.D7)().state.radius);return t}),"drawDescrState");var E=(0,l.K2)(((t,e,a)=>{const i=(0,l.D7)().state.padding;const r=2*(0,l.D7)().state.padding;const n=t.node().getBBox();const s=n.width;const d=n.x;const o=t.append("text").attr("x",0).attr("y",(0,l.D7)().state.titleShift).attr("font-size",(0,l.D7)().state.fontSize).attr("class","state-title").text(e.id);const c=o.node().getBBox();const g=c.width+r;let p=Math.max(g,s);if(p===s){p=p+r}let h;const f=t.node().getBBox();if(e.doc){}h=d-i;if(g>s){h=(s-p)/2+i}if(Math.abs(d-f.x)s){h=d-(g-s)/2}const x=1-(0,l.D7)().state.textHeight;t.insert("rect",":first-child").attr("x",h).attr("y",x).attr("class",a?"alt-composit":"composit").attr("width",p).attr("height",f.height+(0,l.D7)().state.textHeight+(0,l.D7)().state.titleShift+1).attr("rx","0");o.attr("x",h+i);if(g<=s){o.attr("x",d+(p-r)/2-g/2+i)}t.insert("rect",":first-child").attr("x",h).attr("y",(0,l.D7)().state.titleShift-(0,l.D7)().state.textHeight-(0,l.D7)().state.padding).attr("width",p).attr("height",(0,l.D7)().state.textHeight*3).attr("rx",(0,l.D7)().state.radius);t.insert("rect",":first-child").attr("x",h).attr("y",(0,l.D7)().state.titleShift-(0,l.D7)().state.textHeight-(0,l.D7)().state.padding).attr("width",p).attr("height",f.height+3+2*(0,l.D7)().state.textHeight).attr("rx",(0,l.D7)().state.radius);return t}),"addTitleAndBox");var K=(0,l.K2)((t=>{t.append("circle").attr("class","end-state-outer").attr("r",(0,l.D7)().state.sizeUnit+(0,l.D7)().state.miniPadding).attr("cx",(0,l.D7)().state.padding+(0,l.D7)().state.sizeUnit+(0,l.D7)().state.miniPadding).attr("cy",(0,l.D7)().state.padding+(0,l.D7)().state.sizeUnit+(0,l.D7)().state.miniPadding);return t.append("circle").attr("class","end-state-inner").attr("r",(0,l.D7)().state.sizeUnit).attr("cx",(0,l.D7)().state.padding+(0,l.D7)().state.sizeUnit+2).attr("cy",(0,l.D7)().state.padding+(0,l.D7)().state.sizeUnit+2)}),"drawEndState");var M=(0,l.K2)(((t,e)=>{let a=(0,l.D7)().state.forkWidth;let i=(0,l.D7)().state.forkHeight;if(e.parentId){let t=a;a=i;i=t}return t.append("rect").style("stroke","black").style("fill","black").attr("width",a).attr("height",i).attr("x",(0,l.D7)().state.padding).attr("y",(0,l.D7)().state.padding)}),"drawForkJoinState");var R=(0,l.K2)(((t,e,a,i)=>{let r=0;const n=i.append("text");n.style("text-anchor","start");n.attr("class","noteText");let s=t.replace(/\r\n/g,"
    ");s=s.replace(/\n/g,"
    ");const d=s.split(l.Y2.lineBreakRegex);let o=1.25*(0,l.D7)().state.noteMargin;for(const c of d){const t=c.trim();if(t.length>0){const i=n.append("tspan");i.text(t);if(o===0){const t=i.node().getBBox();o+=t.height}r+=o;i.attr("x",e+(0,l.D7)().state.noteMargin);i.attr("y",a+r+1.25*(0,l.D7)().state.noteMargin)}}return{textWidth:n.node().getBBox().width,textHeight:r}}),"_drawLongText");var z=(0,l.K2)(((t,e)=>{e.attr("class","state-note");const a=e.append("rect").attr("x",0).attr("y",(0,l.D7)().state.padding);const i=e.append("g");const{textWidth:r,textHeight:n}=R(t,0,0,i);a.attr("height",n+2*(0,l.D7)().state.noteMargin);a.attr("width",r+(0,l.D7)().state.noteMargin*2);return a}),"drawNote");var H=(0,l.K2)((function(t,e){const a=e.id;const i={id:a,label:e.id,width:0,height:0};const r=t.append("g").attr("id",a).attr("class","stateGroup");if(e.type==="start"){B(r)}if(e.type==="end"){K(r)}if(e.type==="fork"||e.type==="join"){M(r,e)}if(e.type==="note"){z(e.note.text,r)}if(e.type==="divider"){k(r)}if(e.type==="default"&&e.descriptions.length===0){S(r,e)}if(e.type==="default"&&e.descriptions.length>0){N(r,e)}const n=r.node().getBBox();i.width=n.width+2*(0,l.D7)().state.padding;i.height=n.height+2*(0,l.D7)().state.padding;b.set(a,i);return i}),"drawState");var T=0;var L=(0,l.K2)((function(t,e,a){const r=(0,l.K2)((function(t){switch(t){case i.u4.relationType.AGGREGATION:return"aggregation";case i.u4.relationType.EXTENSION:return"extension";case i.u4.relationType.COMPOSITION:return"composition";case i.u4.relationType.DEPENDENCY:return"dependency"}}),"getRelationType");e.points=e.points.filter((t=>!Number.isNaN(t.y)));const n=e.points;const s=(0,f.n8j)().x((function(t){return t.x})).y((function(t){return t.y})).curve(f.qrM);const d=t.append("path").attr("d",s(n)).attr("id","edge"+T).attr("class","transition");let o="";if((0,l.D7)().state.arrowMarkerAbsolute){o=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search;o=o.replace(/\(/g,"\\(");o=o.replace(/\)/g,"\\)")}d.attr("marker-end","url("+o+"#"+r(i.u4.relationType.DEPENDENCY)+"End)");if(a.title!==void 0){const i=t.append("g").attr("class","stateLabel");const{x:r,y:n}=h._K.calcLabelPosition(e.points);const s=l.Y2.getRows(a.title);let d=0;const o=[];let c=0;let g=0;for(let t=0;t<=s.length;t++){const e=i.append("text").attr("text-anchor","middle").text(s[t]).attr("x",r).attr("y",n+d);const a=e.node().getBBox();c=Math.max(c,a.width);g=Math.min(g,a.x);l.Rm.info(a.x,r,n+d);if(d===0){const t=e.node().getBBox();d=t.height;l.Rm.info("Title height",d,n)}o.push(e)}let p=d*s.length;if(s.length>1){const t=(s.length-1)*d*.5;o.forEach(((e,a)=>e.attr("y",n+a*d-t)));p=d*s.length}const f=i.node().getBBox();i.insert("rect",":first-child").attr("class","box").attr("x",r-c/2-(0,l.D7)().state.padding/2).attr("y",n-p/2-(0,l.D7)().state.padding/2-3.5).attr("width",c+(0,l.D7)().state.padding).attr("height",p+(0,l.D7)().state.padding);l.Rm.info(f)}T++}),"drawEdge");var A;var G={};var O=(0,l.K2)((function(){}),"setConf");var C=(0,l.K2)((function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}),"insertMarkers");var P=(0,l.K2)((function(t,e,a,i){A=(0,l.D7)().state;const r=(0,l.D7)().securityLevel;let n;if(r==="sandbox"){n=(0,f.Ltv)("#i"+e)}const s=r==="sandbox"?(0,f.Ltv)(n.nodes()[0].contentDocument.body):(0,f.Ltv)("body");const d=r==="sandbox"?n.nodes()[0].contentDocument:document;l.Rm.debug("Rendering diagram "+t);const o=s.select(`[id='${e}']`);C(o);const c=i.db.getRootDoc();_(c,o,void 0,false,s,d,i);const g=A.padding;const p=o.node().getBBox();const h=p.width+g*2;const x=p.height+g*2;const u=h*1.75;(0,l.a$)(o,x,u,A.useMaxWidth);o.attr("viewBox",`${p.x-A.padding} ${p.y-A.padding} `+h+" "+x)}),"draw");var U=(0,l.K2)((t=>t?t.length*A.fontSizeFactor:1),"getLabelWidth");var _=(0,l.K2)(((t,e,a,i,r,n,s)=>{const d=new u.T({compound:true,multigraph:true});let o;let c=true;for(o=0;o{const e=t.parentElement;let a=0;let i=0;if(e){if(e.parentElement){a=e.parentElement.getBBox().width}i=parseInt(e.getAttribute("data-x-shift"),10);if(Number.isNaN(i)){i=0}}t.setAttribute("x1",0-i+8);t.setAttribute("x2",a-i-8)}))}else{l.Rm.debug("No Node "+t+": "+JSON.stringify(d.node(t)))}}));let w=y.getBBox();d.edges().forEach((function(t){if(t!==void 0&&d.edge(t)!==void 0){l.Rm.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(d.edge(t)));L(e,d.edge(t),d.edge(t).relation)}}));w=y.getBBox();const v={id:a?a:"root",label:a?a:"root",width:0,height:0};v.width=w.width+2*A.padding;v.height=w.height+2*A.padding;l.Rm.debug("Doc rendered",v,d);return v}),"renderDoc");var I={setConf:O,draw:P};var j={parser:i.Zk,get db(){return new i.u4(1)},renderer:I,styles:i.tM,init:(0,l.K2)((t=>{if(!t.state){t.state={}}t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute}),"init")}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/84.fe0a55d7756c37585fb4.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/84.fe0a55d7756c37585fb4.js deleted file mode 100644 index 824a9e754077837f3bec9ff5064af12862440b38..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/84.fe0a55d7756c37585fb4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[84],{50084:(e,t,n)=>{n.r(t);n.d(t,{shell:()=>p});var r={};function s(e,t){for(var n=0;n1)e.eat("$");var n=e.next();if(/['"({]/.test(n)){t.tokens[0]=f(n,n=="("?"quote":n=="{"?"def":"string");return h(e,t)}if(!/\d/.test(n))e.eatWhile(/\w/);t.tokens.shift();return"def"};function k(e){return function(t,n){if(t.sol()&&t.string==e)n.tokens.shift();t.skipToEnd();return"string.special"}}function h(e,t){return(t.tokens[0]||a)(e,t)}const p={name:"shell",startState:function(){return{tokens:[]}},token:function(e,t){return h(e,t)},languageData:{autocomplete:i.concat(o,u),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8418.42e29778d4b49fb54e8e.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8418.42e29778d4b49fb54e8e.js deleted file mode 100644 index 773501d41668e8475fb9681404e2ef2a6ddecb76..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8418.42e29778d4b49fb54e8e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8418],{28418:(e,t,r)=>{r.r(t);r.d(t,{go:()=>d});var n={break:true,case:true,chan:true,const:true,continue:true,default:true,defer:true,else:true,fallthrough:true,for:true,func:true,go:true,goto:true,if:true,import:true,interface:true,map:true,package:true,range:true,return:true,select:true,struct:true,switch:true,type:true,var:true,bool:true,byte:true,complex64:true,complex128:true,float32:true,float64:true,int8:true,int16:true,int32:true,int64:true,string:true,uint8:true,uint16:true,uint32:true,uint64:true,int:true,uint:true,uintptr:true,error:true,rune:true,any:true,comparable:true};var u={true:true,false:true,iota:true,nil:true,append:true,cap:true,close:true,complex:true,copy:true,delete:true,imag:true,len:true,make:true,new:true,panic:true,print:true,println:true,real:true,recover:true};var i=/[+\-*&^%:=<>!|\/]/;var a;function l(e,t){var r=e.next();if(r=='"'||r=="'"||r=="`"){t.tokenize=o(r);return t.tokenize(e,t)}if(/[\d\.]/.test(r)){if(r=="."){e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/)}else if(r=="0"){e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/)}else{e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/)}return"number"}if(/[\[\]{}\(\),;\:\.]/.test(r)){a=r;return null}if(r=="/"){if(e.eat("*")){t.tokenize=c;return c(e,t)}if(e.eat("/")){e.skipToEnd();return"comment"}}if(i.test(r)){e.eatWhile(i);return"operator"}e.eatWhile(/[\w\$_\xa1-\uffff]/);var l=e.current();if(n.propertyIsEnumerable(l)){if(l=="case"||l=="default")a="case";return"keyword"}if(u.propertyIsEnumerable(l))return"atom";return"variable"}function o(e){return function(t,r){var n=false,u,i=false;while((u=t.next())!=null){if(u==e&&!n){i=true;break}n=!n&&e!="`"&&u=="\\"}if(i||!(n||e=="`"))r.tokenize=l;return"string"}}function c(e,t){var r=false,n;while(n=e.next()){if(n=="/"&&r){t.tokenize=l;break}r=n=="*"}return"comment"}function f(e,t,r,n,u){this.indented=e;this.column=t;this.type=r;this.align=n;this.prev=u}function s(e,t,r){return e.context=new f(e.indented,t,r,null,e.context)}function p(e){if(!e.context.prev)return;var t=e.context.type;if(t==")"||t=="]"||t=="}")e.indented=e.context.indented;return e.context=e.context.prev}const d={name:"go",startState:function(e){return{tokenize:null,context:new f(-e,0,"top",false),indented:0,startOfLine:true}},token:function(e,t){var r=t.context;if(e.sol()){if(r.align==null)r.align=false;t.indented=e.indentation();t.startOfLine=true;if(r.type=="case")r.type="}"}if(e.eatSpace())return null;a=null;var n=(t.tokenize||l)(e,t);if(n=="comment")return n;if(r.align==null)r.align=true;if(a=="{")s(t,e.column(),"}");else if(a=="[")s(t,e.column(),"]");else if(a=="(")s(t,e.column(),")");else if(a=="case")r.type="case";else if(a=="}"&&r.type=="}")p(t);else if(a==r.type)p(t);t.startOfLine=false;return n},indent:function(e,t,r){if(e.tokenize!=l&&e.tokenize!=null)return null;var n=e.context,u=t&&t.charAt(0);if(n.type=="case"&&/^(?:case|default)\b/.test(t))return n.indented;var i=u==n.type;if(n.align)return n.column+(i?0:1);else return n.indented+(i?0:r.unit)},languageData:{indentOnInput:/^\s([{}]|case |default\s*:)$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8493.3b6106e45d5661438d8e.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8493.3b6106e45d5661438d8e.js deleted file mode 100644 index db0b397fa5c9662129a99e6216c7eff6260150bb..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8493.3b6106e45d5661438d8e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8493],{40874:(e,t,n)=>{n.r(t);n.d(t,{groovy:()=>v});function r(e){var t={},n=e.split(" ");for(var r=0;r")){s="->";return null}if(/[+\-*&%=<>!?|\/~]/.test(n)){e.eatWhile(/[+\-*&%=<>|~]/);return"operator"}e.eatWhile(/[\w\$_]/);if(n=="@"){e.eatWhile(/[\w\$_\.]/);return"meta"}if(t.lastToken==".")return"property";if(e.eat(":")){s="proplabel";return"property"}var r=e.current();if(o.propertyIsEnumerable(r)){return"atom"}if(i.propertyIsEnumerable(r)){if(a.propertyIsEnumerable(r))s="newstatement";else if(l.propertyIsEnumerable(r))s="standalone";return"keyword"}return"variable"}u.isBase=true;function f(e,t,n){var r=false;if(e!="/"&&t.eat(e)){if(t.eat(e))r=true;else return"string"}function i(t,n){var i=false,a,l=!r;while((a=t.next())!=null){if(a==e&&!i){if(!r){break}if(t.match(e+e)){l=true;break}}if(e=='"'&&a=="$"&&!i){if(t.eat("{")){n.tokenize.push(p());return"string"}else if(t.match(/^\w/,false)){n.tokenize.push(c);return"string"}}i=!i&&a=="\\"}if(l)n.tokenize.pop();return"string"}n.tokenize.push(i);return i(t,n)}function p(){var e=1;function t(t,n){if(t.peek()=="}"){e--;if(e==0){n.tokenize.pop();return n.tokenize[n.tokenize.length-1](t,n)}}else if(t.peek()=="{"){e++}return u(t,n)}t.isBase=true;return t}function c(e,t){var n=e.match(/^(\.|[\w\$_]+)/);if(!n||!e.match(n[0]=="."?/^[\w$_]/:/^\./))t.tokenize.pop();if(!n)return t.tokenize[t.tokenize.length-1](e,t);return n[0]=="."?null:"variable"}function h(e,t){var n=false,r;while(r=e.next()){if(r=="/"&&n){t.tokenize.pop();break}n=r=="*"}return"comment"}function k(e,t){return!e||e=="operator"||e=="->"||/[\.\[\{\(,;:]/.test(e)||e=="newstatement"||e=="keyword"||e=="proplabel"||e=="standalone"&&!t}function m(e,t,n,r,i){this.indented=e;this.column=t;this.type=n;this.align=r;this.prev=i}function d(e,t,n){return e.context=new m(e.indented,t,n,null,e.context)}function y(e){var t=e.context.type;if(t==")"||t=="]"||t=="}")e.indented=e.context.indented;return e.context=e.context.prev}const v={name:"groovy",startState:function(e){return{tokenize:[u],context:new m(-e,0,"top",false),indented:0,startOfLine:true,lastToken:null}},token:function(e,t){var n=t.context;if(e.sol()){if(n.align==null)n.align=false;t.indented=e.indentation();t.startOfLine=true;if(n.type=="statement"&&!k(t.lastToken,true)){y(t);n=t.context}}if(e.eatSpace())return null;s=null;var r=t.tokenize[t.tokenize.length-1](e,t);if(r=="comment")return r;if(n.align==null)n.align=true;if((s==";"||s==":")&&n.type=="statement")y(t);else if(s=="->"&&n.type=="statement"&&n.prev.type=="}"){y(t);t.context.align=false}else if(s=="{")d(t,e.column(),"}");else if(s=="[")d(t,e.column(),"]");else if(s=="(")d(t,e.column(),")");else if(s=="}"){while(n.type=="statement")n=y(t);if(n.type=="}")n=y(t);while(n.type=="statement")n=y(t)}else if(s==n.type)y(t);else if(n.type=="}"||n.type=="top"||n.type=="statement"&&s=="newstatement")d(t,e.column(),"statement");t.startOfLine=false;t.lastToken=s||r;return r},indent:function(e,t,n){if(!e.tokenize[e.tokenize.length-1].isBase)return null;var r=t&&t.charAt(0),i=e.context;if(i.type=="statement"&&!k(e.lastToken,true))i=i.prev;var a=r==i.type;if(i.type=="statement")return i.indented+(r=="{"?0:n.unit);else if(i.align)return i.column+(a?0:1);else return i.indented+(a?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8537.21b8b9ae0d81ae264499.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8537.21b8b9ae0d81ae264499.js deleted file mode 100644 index 4003d37cc4873cd830d2bb9f9e2a69668df2d086..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8537.21b8b9ae0d81ae264499.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8537],{98537:(a,r,e)=>{e.d(r,{diagram:()=>l});var t=e(59357);var n=e(93113);var s=e(75905);var i=e(24010);var p={parse:(0,s.K2)((async a=>{const r=await(0,i.qg)("info",a);s.Rm.debug(r)}),"parse")};var o={version:t.n.version};var v=(0,s.K2)((()=>o.version),"getVersion");var d={getVersion:v};var c=(0,s.K2)(((a,r,e)=>{s.Rm.debug("rendering info diagram\n"+a);const t=(0,n.D)(r);(0,s.a$)(t,100,400,true);const i=t.append("g");i.append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${e}`)}),"draw");var g={draw:c};var l={parser:p,db:d,renderer:g}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8606.843a01bad037272e48d7.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8606.843a01bad037272e48d7.js deleted file mode 100644 index b843ea0a2173e897b37791c173050f0037361328..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8606.843a01bad037272e48d7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8606],{82887:(t,n,e)=>{e.d(n,{A:()=>i});function i(t,n){return t==null||n==null?NaN:tn?1:t>=n?0:NaN}},71363:(t,n,e)=>{e.d(n,{Ay:()=>c,Jj:()=>o,ah:()=>u});var i=e(82887);var r=e(9791);var s=e(40168);const a=(0,r.A)(i.A);const o=a.right;const u=a.left;const h=(0,r.A)(s.A).center;const c=o},9791:(t,n,e)=>{e.d(n,{A:()=>s});var i=e(82887);function r(t,n){return t==null||n==null?NaN:nt?1:n>=t?0:NaN}function s(t){let n,e,s;if(t.length!==2){n=i.A;e=(n,e)=>(0,i.A)(t(n),e);s=(n,e)=>t(n)-e}else{n=t===i.A||t===r?t:a;e=t;s=t}function o(t,i,r=0,s=t.length){if(r>>1;if(e(t[n],i)<0)r=n+1;else s=n}while(r>>1;if(e(t[n],i)<=0)r=n+1;else s=n}while(re&&s(t[r-1],n)>-s(t[r],n)?r-1:r}return{left:o,center:h,right:u}}function a(){return 0}},21671:(t,n,e)=>{e.d(n,{A:()=>i});function i(t,n){let e;if(n===undefined){for(const n of t){if(n!=null&&(e=n)){e=n}}}else{let i=-1;for(let r of t){if((r=n(r,++i,t))!=null&&(e=r)){e=r}}}return e}},44317:(t,n,e)=>{e.d(n,{A:()=>i});function i(t,n){let e;if(n===undefined){for(const n of t){if(n!=null&&(e>n||e===undefined&&n>=n)){e=n}}}else{let i=-1;for(let r of t){if((r=n(r,++i,t))!=null&&(e>r||e===undefined&&r>=r)){e=r}}}return e}},40168:(t,n,e)=>{e.d(n,{A:()=>i,n:()=>r});function i(t){return t===null?NaN:+t}function*r(t,n){if(n===undefined){for(let n of t){if(n!=null&&(n=+n)>=n){yield n}}}else{let e=-1;for(let i of t){if((i=n(i,++e,t))!=null&&(i=+i)>=i){yield i}}}}},18312:(t,n,e)=>{e.d(n,{A:()=>i});function i(t,n,e){t=+t,n=+n,e=(r=arguments.length)<2?(n=t,t=0,1):r<3?1:+e;var i=-1,r=Math.max(0,Math.ceil((n-t)/e))|0,s=new Array(r);while(++i{e.d(n,{Ay:()=>o,lq:()=>u,sG:()=>h});const i=Math.sqrt(50),r=Math.sqrt(10),s=Math.sqrt(2);function a(t,n,e){const o=(n-t)/Math.max(0,e),u=Math.floor(Math.log10(o)),h=o/Math.pow(10,u),c=h>=i?10:h>=r?5:h>=s?2:1;let l,f,_;if(u<0){_=Math.pow(10,-u)/c;l=Math.round(t*_);f=Math.round(n*_);if(l/_n)--f;_=-_}else{_=Math.pow(10,u)*c;l=Math.round(t/_);f=Math.round(n/_);if(l*_n)--f}if(f0))return[];if(t===n)return[t];const i=n=r))return[];const u=s-r+1,h=new Array(u);if(i){if(o<0)for(let t=0;t{e.d(n,{Ay:()=>b,Gw:()=>N,KI:()=>R,Q1:()=>r,Qh:()=>k,Uw:()=>a,b:()=>T,ef:()=>s});var i=e(47592);function r(){}var s=.7;var a=1/s;var o="\\s*([+-]?\\d+)\\s*",u="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",h="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",c=/^#([0-9a-f]{3,8})$/,l=new RegExp(`^rgb\\(${o},${o},${o}\\)$`),f=new RegExp(`^rgb\\(${h},${h},${h}\\)$`),_=new RegExp(`^rgba\\(${o},${o},${o},${u}\\)$`),p=new RegExp(`^rgba\\(${h},${h},${h},${u}\\)$`),y=new RegExp(`^hsl\\(${u},${h},${h}\\)$`),g=new RegExp(`^hsla\\(${u},${h},${h},${u}\\)$`);var d={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};(0,i.A)(r,b,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:v,formatHex:v,formatHex8:x,formatHsl:w,formatRgb:m,toString:m});function v(){return this.rgb().formatHex()}function x(){return this.rgb().formatHex8()}function w(){return E(this).formatHsl()}function m(){return this.rgb().formatRgb()}function b(t){var n,e;t=(t+"").trim().toLowerCase();return(n=c.exec(t))?(e=n[1].length,n=parseInt(n[1],16),e===6?A(n):e===3?new N(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):e===8?M(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):e===4?M(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=l.exec(t))?new N(n[1],n[2],n[3],1):(n=f.exec(t))?new N(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=_.exec(t))?M(n[1],n[2],n[3],n[4]):(n=p.exec(t))?M(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=y.exec(t))?P(n[1],n[2]/100,n[3]/100,1):(n=g.exec(t))?P(n[1],n[2]/100,n[3]/100,n[4]):d.hasOwnProperty(t)?A(d[t]):t==="transparent"?new N(NaN,NaN,NaN,0):null}function A(t){return new N(t>>16&255,t>>8&255,t&255,1)}function M(t,n,e,i){if(i<=0)t=n=e=NaN;return new N(t,n,e,i)}function T(t){if(!(t instanceof r))t=b(t);if(!t)return new N;t=t.rgb();return new N(t.r,t.g,t.b,t.opacity)}function k(t,n,e,i){return arguments.length===1?T(t):new N(t,n,e,i==null?1:i)}function N(t,n,e,i){this.r=+t;this.g=+n;this.b=+e;this.opacity=+i}(0,i.A)(N,k,(0,i.X)(r,{brighter(t){t=t==null?a:Math.pow(a,t);return new N(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){t=t==null?s:Math.pow(s,t);return new N(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new N(D(this.r),D(this.g),D(this.b),F(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&(-.5<=this.g&&this.g<255.5)&&(-.5<=this.b&&this.b<255.5)&&(0<=this.opacity&&this.opacity<=1)},hex:C,formatHex:C,formatHex8:$,formatRgb:U,toString:U}));function C(){return`#${S(this.r)}${S(this.g)}${S(this.b)}`}function $(){return`#${S(this.r)}${S(this.g)}${S(this.b)}${S((isNaN(this.opacity)?1:this.opacity)*255)}`}function U(){const t=F(this.opacity);return`${t===1?"rgb(":"rgba("}${D(this.r)}, ${D(this.g)}, ${D(this.b)}${t===1?")":`, ${t})`}`}function F(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function D(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function S(t){t=D(t);return(t<16?"0":"")+t.toString(16)}function P(t,n,e,i){if(i<=0)t=n=e=NaN;else if(e<=0||e>=1)t=n=NaN;else if(n<=0)t=NaN;return new H(t,n,e,i)}function E(t){if(t instanceof H)return new H(t.h,t.s,t.l,t.opacity);if(!(t instanceof r))t=b(t);if(!t)return new H;if(t instanceof H)return t;t=t.rgb();var n=t.r/255,e=t.g/255,i=t.b/255,s=Math.min(n,e,i),a=Math.max(n,e,i),o=NaN,u=a-s,h=(a+s)/2;if(u){if(n===a)o=(e-i)/u+(e0&&h<1?0:o}return new H(o,u,h,t.opacity)}function R(t,n,e,i){return arguments.length===1?E(t):new H(t,n,e,i==null?1:i)}function H(t,n,e,i){this.h=+t;this.s=+n;this.l=+e;this.opacity=+i}(0,i.A)(H,R,(0,i.X)(r,{brighter(t){t=t==null?a:Math.pow(a,t);return new H(this.h,this.s,this.l*t,this.opacity)},darker(t){t=t==null?s:Math.pow(s,t);return new H(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,i=e+(e<.5?e:1-e)*n,r=2*e-i;return new N(L(t>=240?t-240:t+120,r,i),L(t,r,i),L(t<120?t+240:t-120,r,i),this.opacity)},clamp(){return new H(Y(this.h),q(this.s),q(this.l),F(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&(0<=this.l&&this.l<=1)&&(0<=this.opacity&&this.opacity<=1)},formatHsl(){const t=F(this.opacity);return`${t===1?"hsl(":"hsla("}${Y(this.h)}, ${q(this.s)*100}%, ${q(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Y(t){t=(t||0)%360;return t<0?t+360:t}function q(t){return Math.max(0,Math.min(1,t||0))}function L(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}},47592:(t,n,e)=>{e.d(n,{A:()=>i,X:()=>r});function i(t,n,e){t.prototype=n.prototype=e;e.constructor=t}function r(t,n){var e=Object.create(t.prototype);for(var i in n)e[i]=n[i];return e}},14180:(t,n,e)=>{e.d(n,{Ay:()=>g,aq:()=>M});var i=e(47592);var r=e(33844);var s=e(77689);const a=18,o=.96422,u=1,h=.82521,c=4/29,l=6/29,f=3*l*l,_=l*l*l;function p(t){if(t instanceof d)return new d(t.l,t.a,t.b,t.opacity);if(t instanceof T)return k(t);if(!(t instanceof r.Gw))t=(0,r.b)(t);var n=m(t.r),e=m(t.g),i=m(t.b),s=v((.2225045*n+.7168786*e+.0606169*i)/u),a,c;if(n===e&&e===i)a=c=s;else{a=v((.4360747*n+.3850649*e+.1430804*i)/o);c=v((.0139322*n+.0971045*e+.7141733*i)/h)}return new d(116*s-16,500*(a-s),200*(s-c),t.opacity)}function y(t,n){return new d(t,0,0,n==null?1:n)}function g(t,n,e,i){return arguments.length===1?p(t):new d(t,n,e,i==null?1:i)}function d(t,n,e,i){this.l=+t;this.a=+n;this.b=+e;this.opacity=+i}(0,i.A)(d,g,(0,i.X)(r.Q1,{brighter(t){return new d(this.l+a*(t==null?1:t),this.a,this.b,this.opacity)},darker(t){return new d(this.l-a*(t==null?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;n=o*x(n);t=u*x(t);e=h*x(e);return new r.Gw(w(3.1338561*n-1.6168667*t-.4906146*e),w(-.9787684*n+1.9161415*t+.033454*e),w(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}}));function v(t){return t>_?Math.pow(t,1/3):t/f+c}function x(t){return t>l?t*t*t:f*(t-c)}function w(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function m(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function b(t){if(t instanceof T)return new T(t.h,t.c,t.l,t.opacity);if(!(t instanceof d))t=p(t);if(t.a===0&&t.b===0)return new T(NaN,0{e.d(n,{F:()=>i,u:()=>r});const i=Math.PI/180;const r=180/Math.PI},62996:(t,n,e)=>{e.d(n,{A:()=>h});var i={value:()=>{}};function r(){for(var t=0,n=arguments.length,e={},i;t=0)e=t.slice(i+1),t=t.slice(0,i);if(t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))}s.prototype=r.prototype={constructor:s,on:function(t,n){var e=this._,i=a(t+"",e),r,s=-1,h=i.length;if(arguments.length<2){while(++s0)for(var e=new Array(r),i=0,r,s;i{e.d(n,{GP:()=>s,s:()=>a});var i=e(25216);var r;var s;var a;o({thousands:",",grouping:[3],currency:["$",""]});function o(t){r=(0,i.A)(t);s=r.format;a=r.formatPrefix;return r}},40886:(t,n,e)=>{e.d(n,{A:()=>r});var i=e(23735);function r(t){return t=(0,i.f)(Math.abs(t)),t?t[1]:NaN}},23735:(t,n,e)=>{e.d(n,{A:()=>i,f:()=>r});function i(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function r(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,i=t.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+t.slice(e+1)]}},71688:(t,n,e)=>{e.d(n,{A:()=>r});var i=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function r(t){if(!(n=i.exec(t)))throw new Error("invalid format: "+t);var n;return new s({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}r.prototype=s.prototype;function s(t){this.fill=t.fill===undefined?" ":t.fill+"";this.align=t.align===undefined?">":t.align+"";this.sign=t.sign===undefined?"-":t.sign+"";this.symbol=t.symbol===undefined?"":t.symbol+"";this.zero=!!t.zero;this.width=t.width===undefined?undefined:+t.width;this.comma=!!t.comma;this.precision=t.precision===undefined?undefined:+t.precision;this.trim=!!t.trim;this.type=t.type===undefined?"":t.type+""}s.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===undefined?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===undefined?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type}},25216:(t,n,e)=>{e.d(n,{A:()=>g});var i=e(40886);function r(t,n){return function(e,i){var r=e.length,s=[],a=0,o=t[0],u=0;while(r>0&&o>0){if(u+o+1>i)o=Math.max(1,i-u);s.push(e.substring(r-=o,r+o));if((u+=o+1)>i)break;o=t[a=(a+1)%t.length]}return s.reverse().join(n)}}function s(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}var a=e(71688);function o(t){t:for(var n=t.length,e=1,i=-1,r;e0)i=0;break}}return i>0?t.slice(0,i)+t.slice(r+1):t}var u=e(23735);var h;function c(t,n){var e=(0,u.f)(t,n);if(!e)return t+"";var i=e[0],r=e[1],s=r-(h=Math.max(-8,Math.min(8,Math.floor(r/3)))*3)+1,a=i.length;return s===a?i:s>a?i+new Array(s-a+1).join("0"):s>0?i.slice(0,s)+"."+i.slice(s):"0."+new Array(1-s).join("0")+(0,u.f)(t,Math.max(0,n+s-1))[0]}function l(t,n){var e=(0,u.f)(t,n);if(!e)return t+"";var i=e[0],r=e[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}const f={"%":(t,n)=>(t*100).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:u.A,e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>l(t*100,n),r:l,s:c,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function _(t){return t}var p=Array.prototype.map,y=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function g(t){var n=t.grouping===undefined||t.thousands===undefined?_:r(p.call(t.grouping,Number),t.thousands+""),e=t.currency===undefined?"":t.currency[0]+"",u=t.currency===undefined?"":t.currency[1]+"",c=t.decimal===undefined?".":t.decimal+"",l=t.numerals===undefined?_:s(p.call(t.numerals,String)),g=t.percent===undefined?"%":t.percent+"",d=t.minus===undefined?"−":t.minus+"",v=t.nan===undefined?"NaN":t.nan+"";function x(t){t=(0,a.A)(t);var i=t.fill,r=t.align,s=t.sign,_=t.symbol,p=t.zero,x=t.width,w=t.comma,m=t.precision,b=t.trim,A=t.type;if(A==="n")w=true,A="g";else if(!f[A])m===undefined&&(m=12),b=true,A="g";if(p||i==="0"&&r==="=")p=true,i="0",r="=";var M=_==="$"?e:_==="#"&&/[boxX]/.test(A)?"0"+A.toLowerCase():"",T=_==="$"?u:/[%p]/.test(A)?g:"";var k=f[A],N=/[defgprs%]/.test(A);m=m===undefined?6:/[gprs]/.test(A)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m));function C(t){var e=M,a=T,u,f,_;if(A==="c"){a=k(t)+a;t=""}else{t=+t;var g=t<0||1/t<0;t=isNaN(t)?v:k(Math.abs(t),m);if(b)t=o(t);if(g&&+t===0&&s!=="+")g=false;e=(g?s==="("?s:d:s==="-"||s==="("?"":s)+e;a=(A==="s"?y[8+h/3]:"")+a+(g&&s==="("?")":"");if(N){u=-1,f=t.length;while(++u_||_>57){a=(_===46?c+t.slice(u+1):t.slice(u))+a;t=t.slice(0,u);break}}}}if(w&&!p)t=n(t,Infinity);var C=e.length+t.length+a.length,$=C>1)+e+t+a+$.slice(C);break;default:t=$+e+t+a;break}return l(t)}C.toString=function(){return t+""};return C}function w(t,n){var e=x((t=(0,a.A)(t),t.type="f",t)),r=Math.max(-8,Math.min(8,Math.floor((0,i.A)(n)/3)))*3,s=Math.pow(10,-r),o=y[8+r/3];return function(t){return e(s*t)+o}}return{format:x,formatPrefix:w}}},93391:(t,n,e)=>{e.d(n,{A:()=>r});var i=e(40886);function r(t){return Math.max(0,-(0,i.A)(Math.abs(t)))}},86093:(t,n,e)=>{e.d(n,{A:()=>r});var i=e(40886);function r(t,n){return Math.max(0,Math.max(-8,Math.min(8,Math.floor((0,i.A)(n)/3)))*3-(0,i.A)(Math.abs(t)))}},78209:(t,n,e)=>{e.d(n,{A:()=>r});var i=e(40886);function r(t,n){t=Math.abs(t),n=Math.abs(n)-t;return Math.max(0,(0,i.A)(n)-(0,i.A)(t))+1}},69266:(t,n,e)=>{e.d(n,{$:()=>a,A:()=>s});var i=e(21406);var r=e(48561);function s(t,n){return((0,r.p)(n)?r.A:a)(t,n)}function a(t,n){var e=n?n.length:0,r=t?Math.min(e,t.length):0,s=new Array(r),a=new Array(e),o;for(o=0;o{e.d(n,{A:()=>r,H:()=>i});function i(t,n,e,i,r){var s=t*t,a=s*t;return((1-3*t+3*s-a)*n+(4-6*s+3*a)*e+(1+3*t+3*s-3*a)*i+a*r)/6}function r(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),s=t[r],a=t[r+1],o=r>0?t[r-1]:2*s-a,u=r{e.d(n,{A:()=>r});var i=e(13029);function r(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),s=t[(r+n-1)%n],a=t[r%n],o=t[(r+1)%n],u=t[(r+2)%n];return(0,i.H)((e-r/n)*n,s,a,o,u)}}},6504:(t,n,e)=>{e.d(n,{Ay:()=>u,lG:()=>a,uN:()=>o});var i=e(80319);function r(t,n){return function(e){return t+e*n}}function s(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(i){return Math.pow(t+i*n,e)}}function a(t,n){var e=n-t;return e?r(t,e>180||e<-180?e-360*Math.round(e/360):e):(0,i.A)(isNaN(t)?n:t)}function o(t){return(t=+t)===1?u:function(n,e){return e-n?s(n,e,t):(0,i.A)(isNaN(n)?e:n)}}function u(t,n){var e=n-t;return e?r(t,e):(0,i.A)(isNaN(t)?n:t)}},80319:(t,n,e)=>{e.d(n,{A:()=>i});const i=t=>()=>t},57007:(t,n,e)=>{e.d(n,{A:()=>i});function i(t,n){var e=new Date;return t=+t,n=+n,function(i){return e.setTime(t*(1-i)+n*i),e}}},67360:(t,n,e)=>{e.r(n);e.d(n,{interpolate:()=>i.A,interpolateArray:()=>r.A,interpolateBasis:()=>s.A,interpolateBasisClosed:()=>a.A,interpolateCubehelix:()=>G,interpolateCubehelixLong:()=>J,interpolateDate:()=>o.A,interpolateDiscrete:()=>u,interpolateHcl:()=>U,interpolateHclLong:()=>F,interpolateHsl:()=>T,interpolateHslLong:()=>k,interpolateHue:()=>c,interpolateLab:()=>C,interpolateNumber:()=>l.A,interpolateNumberArray:()=>f.A,interpolateObject:()=>_.A,interpolateRgb:()=>b.Ay,interpolateRgbBasis:()=>b.Ik,interpolateRgbBasisClosed:()=>b.uL,interpolateRound:()=>p.A,interpolateString:()=>y.A,interpolateTransformCss:()=>g.T,interpolateTransformSvg:()=>g.I,interpolateZoom:()=>m,piecewise:()=>Z.A,quantize:()=>Q});var i=e(21406);var r=e(69266);var s=e(13029);var a=e(64425);var o=e(57007);function u(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}var h=e(6504);function c(t,n){var e=(0,h.lG)(+t,+n);return function(t){var n=e(t);return n-360*Math.floor(n/360)}}var l=e(85566);var f=e(48561);var _=e(86088);var p=e(15307);var y=e(23318);var g=e(39480);var d=1e-12;function v(t){return((t=Math.exp(t))+1/t)/2}function x(t){return((t=Math.exp(t))-1/t)/2}function w(t){return((t=Math.exp(2*t))-1)/(t+1)}const m=function t(n,e,i){function r(t,r){var s=t[0],a=t[1],o=t[2],u=r[0],h=r[1],c=r[2],l=u-s,f=h-a,_=l*l+f*f,p,y;if(_{e.d(n,{A:()=>i});function i(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}},48561:(t,n,e)=>{e.d(n,{A:()=>i,p:()=>r});function i(t,n){if(!n)n=[];var e=t?Math.min(n.length,t.length):0,i=n.slice(),r;return function(s){for(r=0;r{e.d(n,{A:()=>r});var i=e(21406);function r(t,n){var e={},r={},s;if(t===null||typeof t!=="object")t={};if(n===null||typeof n!=="object")n={};for(s in n){if(s in t){e[s]=(0,i.A)(t[s],n[s])}else{r[s]=n[s]}}return function(t){for(s in e)r[s]=e[s](t);return r}}},99793:(t,n,e)=>{e.d(n,{A:()=>r});var i=e(21406);function r(t,n){if(n===undefined)n=t,t=i.A;var e=0,r=n.length-1,s=n[0],a=new Array(r<0?0:r);while(e{e.d(n,{Ay:()=>o,Ik:()=>h,uL:()=>c});var i=e(33844);var r=e(13029);var s=e(64425);var a=e(6504);const o=function t(n){var e=(0,a.uN)(n);function r(t,n){var r=e((t=(0,i.Qh)(t)).r,(n=(0,i.Qh)(n)).r),s=e(t.g,n.g),o=e(t.b,n.b),u=(0,a.Ay)(t.opacity,n.opacity);return function(n){t.r=r(n);t.g=s(n);t.b=o(n);t.opacity=u(n);return t+""}}r.gamma=t;return r}(1);function u(t){return function(n){var e=n.length,r=new Array(e),s=new Array(e),a=new Array(e),o,u;for(o=0;o{e.d(n,{A:()=>i});function i(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}}},23318:(t,n,e)=>{e.d(n,{A:()=>u});var i=e(85566);var r=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,s=new RegExp(r.source,"g");function a(t){return function(){return t}}function o(t){return function(n){return t(n)+""}}function u(t,n){var e=r.lastIndex=s.lastIndex=0,u,h,c,l=-1,f=[],_=[];t=t+"",n=n+"";while((u=r.exec(t))&&(h=s.exec(n))){if((c=h.index)>e){c=n.slice(e,c);if(f[l])f[l]+=c;else f[++l]=c}if((u=u[0])===(h=h[0])){if(f[l])f[l]+=h;else f[++l]=h}else{f[++l]=null;_.push({i:l,x:(0,i.A)(u,h)})}e=s.lastIndex}if(e{e.d(n,{T:()=>l,I:()=>f});var i=e(85566);var r=180/Math.PI;var s={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function a(t,n,e,i,s,a){var o,u,h;if(o=Math.sqrt(t*t+n*n))t/=o,n/=o;if(h=t*e+n*i)e-=t*h,i-=n*h;if(u=Math.sqrt(e*e+i*i))e/=u,i/=u,h/=u;if(t*i180)n+=360;else if(n-t>180)t+=360;a.push({i:e.push(s(e)+"rotate(",null,r)-2,x:(0,i.A)(t,n)})}else if(n){e.push(s(e)+"rotate("+n+r)}}function u(t,n,e,a){if(t!==n){a.push({i:e.push(s(e)+"skewX(",null,r)-2,x:(0,i.A)(t,n)})}else if(n){e.push(s(e)+"skewX("+n+r)}}function h(t,n,e,r,a,o){if(t!==e||n!==r){var u=a.push(s(a)+"scale(",null,",",null,")");o.push({i:u-4,x:(0,i.A)(t,e)},{i:u-2,x:(0,i.A)(n,r)})}else if(e!==1||r!==1){a.push(s(a)+"scale("+e+","+r+")")}}return function(n,e){var i=[],r=[];n=t(n),e=t(e);a(n.translateX,n.translateY,e.translateX,e.translateY,i,r);o(n.rotate,e.rotate,i,r);u(n.skewX,e.skewX,i,r);h(n.scaleX,n.scaleY,e.scaleX,e.scaleY,i,r);n=e=null;return function(t){var n=-1,e=r.length,s;while(++n{e.d(n,{A:()=>f});var i=e(33844);var r=e(79948);var s=e(69266);var a=e(57007);var o=e(85566);var u=e(86088);var h=e(23318);var c=e(80319);var l=e(48561);function f(t,n){var e=typeof n,f;return n==null||e==="boolean"?(0,c.A)(n):(e==="number"?o.A:e==="string"?(f=(0,i.Ay)(n))?(n=f,r.Ay):h.A:n instanceof i.Ay?r.Ay:n instanceof Date?a.A:(0,l.p)(n)?l.A:Array.isArray(n)?s.$:typeof n.valueOf!=="function"&&typeof n.toString!=="function"||isNaN(n)?u.A:o.A)(t,n)}},69450:(t,n,e)=>{e.d(n,{Ae:()=>c,wA:()=>h});const i=Math.PI,r=2*i,s=1e-6,a=r-s;function o(t){this._+=t[0];for(let n=1,e=t.length;n=0))throw new Error(`invalid digits: ${t}`);if(n>15)return o;const e=10**n;return function(t){this._+=t[0];for(let n=1,i=t.length;ns));else if(!(Math.abs(f*h-c*l)>s)||!a){this._append`L${this._x1=t},${this._y1=n}`}else{let p=e-o,y=r-u,g=h*h+c*c,d=p*p+y*y,v=Math.sqrt(g),x=Math.sqrt(_),w=a*Math.tan((i-Math.acos((g+_-d)/(2*v*x)))/2),m=w/x,b=w/v;if(Math.abs(m-1)>s){this._append`L${t+m*l},${n+m*f}`}this._append`A${a},${a},0,0,${+(f*p>l*y)},${this._x1=t+b*h},${this._y1=n+b*c}`}}arc(t,n,e,o,u,h){t=+t,n=+n,e=+e,h=!!h;if(e<0)throw new Error(`negative radius: ${e}`);let c=e*Math.cos(o),l=e*Math.sin(o),f=t+c,_=n+l,p=1^h,y=h?o-u:u-o;if(this._x1===null){this._append`M${f},${_}`}else if(Math.abs(this._x1-f)>s||Math.abs(this._y1-_)>s){this._append`L${f},${_}`}if(!e)return;if(y<0)y=y%r+r;if(y>a){this._append`A${e},${e},0,1,${p},${t-c},${n-l}A${e},${e},0,1,${p},${this._x1=f},${this._y1=_}`}else if(y>s){this._append`A${e},${e},0,${+(y>=i)},${p},${this._x1=t+e*Math.cos(u)},${this._y1=n+e*Math.sin(u)}`}}rect(t,n,e,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${e=+e}v${+i}h${-e}Z`}toString(){return this._}}function c(){return new h}c.prototype=h.prototype;function l(t=3){return new h(+t)}},58177:(t,n,e)=>{e.d(n,{A:()=>i});function i(t){var n=t.length/6|0,e=new Array(n),i=0;while(i{e.d(n,{C:()=>y,Ay:()=>d,D_:()=>c,Gu:()=>g});var i=e(71363);var r=e(21406);var s=e(85566);var a=e(15307);function o(t){return function(){return t}}var u=e(60117);var h=[0,1];function c(t){return t}function l(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:o(isNaN(n)?NaN:.5)}function f(t,n){var e;if(t>n)e=t,t=n,n=e;return function(e){return Math.max(t,Math.min(n,e))}}function _(t,n,e){var i=t[0],r=t[1],s=n[0],a=n[1];if(r2?p:_;d=v=null;return w}function w(r){return r==null||isNaN(r=+r)?l:(d||(d=g(t.map(i),n,e)))(i(y(r)))}w.invert=function(e){return y(o((v||(v=g(n,t.map(i),s.A)))(e)))};w.domain=function(n){return arguments.length?(t=Array.from(n,u.A),x()):t.slice()};w.range=function(t){return arguments.length?(n=Array.from(t),x()):n.slice()};w.rangeRound=function(t){return n=Array.from(t),e=a.A,x()};w.clamp=function(t){return arguments.length?(y=t?true:c,x()):y!==c};w.interpolate=function(t){return arguments.length?(e=t,x()):e};w.unknown=function(t){return arguments.length?(l=t,w):l};return function(t,n){i=t,o=n;return x()}}function d(){return g()(c,c)}},25758:(t,n,e)=>{e.d(n,{C:()=>i,K:()=>r});function i(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t);break}return this}function r(t,n){switch(arguments.length){case 0:break;case 1:{if(typeof t==="function")this.interpolator(t);else this.range(t);break}default:{this.domain(t);if(typeof n==="function")this.interpolator(n);else this.range(n);break}}return this}},20481:(t,n,e)=>{e.d(n,{A:()=>u,C:()=>o});var i=e(97119);var r=e(52178);var s=e(25758);var a=e(26698);function o(t){var n=t.domain;t.ticks=function(t){var e=n();return(0,i.Ay)(e[0],e[e.length-1],t==null?10:t)};t.tickFormat=function(t,e){var i=n();return(0,a.A)(i[0],i[i.length-1],t==null?10:t,e)};t.nice=function(e){if(e==null)e=10;var r=n();var s=0;var a=r.length-1;var o=r[s];var u=r[a];var h;var c;var l=10;if(u0){c=(0,i.lq)(o,u,e);if(c===h){r[s]=o;r[a]=u;return n(r)}else if(c>0){o=Math.floor(o/c)*c;u=Math.ceil(u/c)*c}else if(c<0){o=Math.ceil(o*c)/c;u=Math.floor(u*c)/c}else{break}h=c}return t};return t}function u(){var t=(0,r.Ay)();t.copy=function(){return(0,r.C)(t,u())};s.C.apply(t,arguments);return o(t)}},60125:(t,n,e)=>{e.d(n,{A:()=>i});function i(t,n){t=t.slice();var e=0,i=t.length-1,r=t[e],s=t[i],a;if(s{e.d(n,{A:()=>i});function i(t){return+t}},16527:(t,n,e)=>{e.d(n,{A:()=>a,h:()=>s});var i=e(30352);var r=e(25758);const s=Symbol("implicit");function a(){var t=new i.B,n=[],e=[],o=s;function u(i){let r=t.get(i);if(r===undefined){if(o!==s)return o;t.set(i,r=n.push(i)-1)}return e[r%e.length]}u.domain=function(e){if(!arguments.length)return n.slice();n=[],t=new i.B;for(const i of e){if(t.has(i))continue;t.set(i,n.push(i)-1)}return u};u.range=function(t){return arguments.length?(e=Array.from(t),u):e.slice()};u.unknown=function(t){return arguments.length?(o=t,u):o};u.copy=function(){return a(n,e).unknown(o)};r.C.apply(u,arguments);return u}},26698:(t,n,e)=>{e.d(n,{A:()=>h});var i=e(97119);var r=e(71688);var s=e(86093);var a=e(24626);var o=e(78209);var u=e(93391);function h(t,n,e,h){var c=(0,i.sG)(t,n,e),l;h=(0,r.A)(h==null?",f":h);switch(h.type){case"s":{var f=Math.max(Math.abs(t),Math.abs(n));if(h.precision==null&&!isNaN(l=(0,s.A)(c,f)))h.precision=l;return(0,a.s)(h,f)}case"":case"e":case"g":case"p":case"r":{if(h.precision==null&&!isNaN(l=(0,o.A)(c,Math.max(Math.abs(t),Math.abs(n)))))h.precision=l-(h.type==="e");break}case"f":case"%":{if(h.precision==null&&!isNaN(l=(0,u.A)(c)))h.precision=l-(h.type==="%")*2;break}}return(0,a.GP)(h)}},74725:(t,n,e)=>{e.d(n,{A:()=>v,B:()=>d});var i=e(20421);var r=e(42706);var s=e(77849);var a=e(61779);var o=e(20293);var u=e(9017);var h=e(23383);var c=e(61147);var l=e(82692);var f=e(52178);var _=e(25758);var p=e(60125);function y(t){return new Date(t)}function g(t){return t instanceof Date?+t:+new Date(+t)}function d(t,n,e,i,r,s,a,o,u,h){var c=(0,f.Ay)(),l=c.invert,_=c.domain;var v=h(".%L"),x=h(":%S"),w=h("%I:%M"),m=h("%I %p"),b=h("%a %d"),A=h("%b %d"),M=h("%B"),T=h("%Y");function k(t){return(u(t){e.d(n,{A:()=>_});var i=e(84653);var r=e(98247);var s=e(18226);function a(t){return t.innerRadius}function o(t){return t.outerRadius}function u(t){return t.startAngle}function h(t){return t.endAngle}function c(t){return t&&t.padAngle}function l(t,n,e,i,s,a,o,u){var h=e-t,c=i-n,l=o-s,f=u-a,_=f*h-l*c;if(_*_F*F+D*D)T=N,k=C;return{cx:T,cy:k,x01:-l,y01:-f,x11:T*(s/b-1),y11:k*(s/b-1)}}function _(){var t=a,n=o,e=(0,i.A)(0),_=null,p=u,y=h,g=c,d=null,v=(0,s.i)(x);function x(){var i,s,a=+t.apply(this,arguments),o=+n.apply(this,arguments),u=p.apply(this,arguments)-r.TW,h=y.apply(this,arguments)-r.TW,c=(0,r.tn)(h-u),x=h>u;if(!d)d=i=v();if(or.Ni))d.moveTo(0,0);else if(c>r.FA-r.Ni){d.moveTo(o*(0,r.gn)(u),o*(0,r.F8)(u));d.arc(0,0,o,u,h,!x);if(a>r.Ni){d.moveTo(a*(0,r.gn)(h),a*(0,r.F8)(h));d.arc(0,0,a,h,u,x)}}else{var w=u,m=h,b=u,A=h,M=c,T=c,k=g.apply(this,arguments)/2,N=k>r.Ni&&(_?+_.apply(this,arguments):(0,r.RZ)(a*a+o*o)),C=(0,r.jk)((0,r.tn)(o-a)/2,+e.apply(this,arguments)),$=C,U=C,F,D;if(N>r.Ni){var S=(0,r.qR)(N/a*(0,r.F8)(k)),P=(0,r.qR)(N/o*(0,r.F8)(k));if((M-=S*2)>r.Ni)S*=x?1:-1,b+=S,A-=S;else M=0,b=A=(u+h)/2;if((T-=P*2)>r.Ni)P*=x?1:-1,w+=P,m-=P;else T=0,w=m=(u+h)/2}var E=o*(0,r.gn)(w),R=o*(0,r.F8)(w),H=a*(0,r.gn)(A),Y=a*(0,r.F8)(A);if(C>r.Ni){var q=o*(0,r.gn)(m),L=o*(0,r.F8)(m),j=a*(0,r.gn)(b),z=a*(0,r.F8)(b),X;if(cr.Ni))d.moveTo(E,R);else if(U>r.Ni){F=f(j,z,E,R,o,U,x);D=f(q,L,H,Y,o,U,x);d.moveTo(F.cx+F.x01,F.cy+F.y01);if(Ur.Ni)||!(M>r.Ni))d.lineTo(H,Y);else if($>r.Ni){F=f(H,Y,q,L,a,-$,x);D=f(E,R,j,z,a,-$,x);d.lineTo(F.cx+F.x01,F.cy+F.y01);if(${e.d(n,{A:()=>r});var i=Array.prototype.slice;function r(t){return typeof t==="object"&&"length"in t?t:Array.from(t)}},84653:(t,n,e)=>{e.d(n,{A:()=>i});function i(t){return function n(){return t}}},24363:(t,n,e)=>{e.d(n,{Ay:()=>s,xO:()=>r,zx:()=>i});function i(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function r(t){this._context=t}r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN;this._point=0},lineEnd:function(){switch(this._point){case 3:i(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}if(this._line||this._line!==0&&this._point===1)this._context.closePath();this._line=1-this._line},point:function(t,n){t=+t,n=+n;switch(this._point){case 0:this._point=1;this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:i(this,t,n);break}this._x0=this._x1,this._x1=t;this._y0=this._y1,this._y1=n}};function s(t){return new r(t)}},82456:(t,n,e)=>{e.d(n,{A:()=>a});var i=e(71649);var r=e(24363);function s(t){this._context=t}s.prototype={areaStart:i.A,areaEnd:i.A,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN;this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2);this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3);this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3);this._context.closePath();break}case 3:{this.point(this._x2,this._y2);this.point(this._x3,this._y3);this.point(this._x4,this._y4);break}}},point:function(t,n){t=+t,n=+n;switch(this._point){case 0:this._point=1;this._x2=t,this._y2=n;break;case 1:this._point=2;this._x3=t,this._y3=n;break;case 2:this._point=3;this._x4=t,this._y4=n;this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:(0,r.zx)(this,t,n);break}this._x0=this._x1,this._x1=t;this._y0=this._y1,this._y1=n}};function a(t){return new s(t)}},69683:(t,n,e)=>{e.d(n,{A:()=>s});var i=e(24363);function r(t){this._context=t}r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN;this._point=0},lineEnd:function(){if(this._line||this._line!==0&&this._point===3)this._context.closePath();this._line=1-this._line},point:function(t,n){t=+t,n=+n;switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:(0,i.zx)(this,t,n);break}this._x0=this._x1,this._x1=t;this._y0=this._y1,this._y1=n}};function s(t){return new r(t)}},54545:(t,n,e)=>{e.d(n,{A:()=>s});var i=e(24363);function r(t,n){this._basis=new i.xO(t);this._beta=n}r.prototype={lineStart:function(){this._x=[];this._y=[];this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0){var i=t[0],r=n[0],s=t[e]-i,a=n[e]-r,o=-1,u;while(++o<=e){u=o/e;this._basis.point(this._beta*t[o]+(1-this._beta)*(i+u*s),this._beta*n[o]+(1-this._beta)*(r+u*a))}}this._x=this._y=null;this._basis.lineEnd()},point:function(t,n){this._x.push(+t);this._y.push(+n)}};const s=function t(n){function e(t){return n===1?new i.xO(t):new r(t,n)}e.beta=function(n){return t(+n)};return e}(.85)},43793:(t,n,e)=>{e.d(n,{Ay:()=>s,vP:()=>r,zx:()=>i});function i(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function r(t,n){this._context=t;this._k=(1-n)/6}r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN;this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:i(this,this._x1,this._y1);break}if(this._line||this._line!==0&&this._point===1)this._context.closePath();this._line=1-this._line},point:function(t,n){t=+t,n=+n;switch(this._point){case 0:this._point=1;this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;this._x1=t,this._y1=n;break;case 2:this._point=3;default:i(this,t,n);break}this._x0=this._x1,this._x1=this._x2,this._x2=t;this._y0=this._y1,this._y1=this._y2,this._y2=n}};const s=function t(n){function e(t){return new r(t,n)}e.tension=function(n){return t(+n)};return e}(0)},13893:(t,n,e)=>{e.d(n,{A:()=>a,L:()=>s});var i=e(71649);var r=e(43793);function s(t,n){this._context=t;this._k=(1-n)/6}s.prototype={areaStart:i.A,areaEnd:i.A,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN;this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3);this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3);this._context.closePath();break}case 3:{this.point(this._x3,this._y3);this.point(this._x4,this._y4);this.point(this._x5,this._y5);break}}},point:function(t,n){t=+t,n=+n;switch(this._point){case 0:this._point=1;this._x3=t,this._y3=n;break;case 1:this._point=2;this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3;this._x5=t,this._y5=n;break;default:(0,r.zx)(this,t,n);break}this._x0=this._x1,this._x1=this._x2,this._x2=t;this._y0=this._y1,this._y1=this._y2,this._y2=n}};const a=function t(n){function e(t){return new s(t,n)}e.tension=function(n){return t(+n)};return e}(0)},46457:(t,n,e)=>{e.d(n,{A:()=>s,H:()=>r});var i=e(43793);function r(t,n){this._context=t;this._k=(1-n)/6}r.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN;this._point=0},lineEnd:function(){if(this._line||this._line!==0&&this._point===3)this._context.closePath();this._line=1-this._line},point:function(t,n){t=+t,n=+n;switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:(0,i.zx)(this,t,n);break}this._x0=this._x1,this._x1=this._x2,this._x2=t;this._y0=this._y1,this._y1=this._y2,this._y2=n}};const s=function t(n){function e(t){return new r(t,n)}e.tension=function(n){return t(+n)};return e}(0)},76413:(t,n,e)=>{e.d(n,{A:()=>o,z:()=>s});var i=e(98247);var r=e(43793);function s(t,n,e){var r=t._x1,s=t._y1,a=t._x2,o=t._y2;if(t._l01_a>i.Ni){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,h=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/h;s=(s*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/h}if(t._l23_a>i.Ni){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,l=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*c+t._x1*t._l23_2a-n*t._l12_2a)/l;o=(o*c+t._y1*t._l23_2a-e*t._l12_2a)/l}t._context.bezierCurveTo(r,s,a,o,t._x2,t._y2)}function a(t,n){this._context=t;this._alpha=n}a.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN;this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}if(this._line||this._line!==0&&this._point===1)this._context.closePath();this._line=1-this._line},point:function(t,n){t=+t,n=+n;if(this._point){var e=this._x2-t,i=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+i*i,this._alpha))}switch(this._point){case 0:this._point=1;this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:s(this,t,n);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a;this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a;this._x0=this._x1,this._x1=this._x2,this._x2=t;this._y0=this._y1,this._y1=this._y2,this._y2=n}};const o=function t(n){function e(t){return n?new a(t,n):new r.vP(t,0)}e.alpha=function(n){return t(+n)};return e}(.5)},25633:(t,n,e)=>{e.d(n,{A:()=>o});var i=e(13893);var r=e(71649);var s=e(76413);function a(t,n){this._context=t;this._alpha=n}a.prototype={areaStart:r.A,areaEnd:r.A,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN;this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3);this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3);this._context.closePath();break}case 3:{this.point(this._x3,this._y3);this.point(this._x4,this._y4);this.point(this._x5,this._y5);break}}},point:function(t,n){t=+t,n=+n;if(this._point){var e=this._x2-t,i=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+i*i,this._alpha))}switch(this._point){case 0:this._point=1;this._x3=t,this._y3=n;break;case 1:this._point=2;this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3;this._x5=t,this._y5=n;break;default:(0,s.z)(this,t,n);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a;this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a;this._x0=this._x1,this._x1=this._x2,this._x2=t;this._y0=this._y1,this._y1=this._y2,this._y2=n}};const o=function t(n){function e(t){return n?new a(t,n):new i.L(t,0)}e.alpha=function(n){return t(+n)};return e}(.5)},13309:(t,n,e)=>{e.d(n,{A:()=>a});var i=e(46457);var r=e(76413);function s(t,n){this._context=t;this._alpha=n}s.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN;this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){if(this._line||this._line!==0&&this._point===3)this._context.closePath();this._line=1-this._line},point:function(t,n){t=+t,n=+n;if(this._point){var e=this._x2-t,i=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:(0,r.z)(this,t,n);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a;this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a;this._x0=this._x1,this._x1=this._x2,this._x2=t;this._y0=this._y1,this._y1=this._y2,this._y2=n}};const a=function t(n){function e(t){return n?new s(t,n):new i.H(t,0)}e.alpha=function(n){return t(+n)};return e}(.5)},71228:(t,n,e)=>{e.d(n,{A:()=>r});function i(t){this._context=t}i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){if(this._line||this._line!==0&&this._point===1)this._context.closePath();this._line=1-this._line},point:function(t,n){t=+t,n=+n;switch(this._point){case 0:this._point=1;this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n);break}}};function r(t){return new i(t)}},43272:(t,n,e)=>{e.d(n,{A:()=>s});var i=e(71649);function r(t){this._context=t}r.prototype={areaStart:i.A,areaEnd:i.A,lineStart:function(){this._point=0},lineEnd:function(){if(this._point)this._context.closePath()},point:function(t,n){t=+t,n=+n;if(this._point)this._context.lineTo(t,n);else this._point=1,this._context.moveTo(t,n)}};function s(t){return new r(t)}},67694:(t,n,e)=>{e.d(n,{G:()=>c,N:()=>l});function i(t){return t<0?-1:1}function r(t,n,e){var r=t._x1-t._x0,s=n-t._x1,a=(t._y1-t._y0)/(r||s<0&&-0),o=(e-t._y1)/(s||r<0&&-0),u=(a*s+o*r)/(r+s);return(i(a)+i(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(u))||0}function s(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function a(t,n,e){var i=t._x0,r=t._y0,s=t._x1,a=t._y1,o=(s-i)/3;t._context.bezierCurveTo(i+o,r+o*n,s-o,a-o*e,s,a)}function o(t){this._context=t}o.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN;this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:a(this,this._t0,s(this,this._t0));break}if(this._line||this._line!==0&&this._point===1)this._context.closePath();this._line=1-this._line},point:function(t,n){var e=NaN;t=+t,n=+n;if(t===this._x1&&n===this._y1)return;switch(this._point){case 0:this._point=1;this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;a(this,s(this,e=r(this,t,n)),e);break;default:a(this,this._t0,e=r(this,t,n));break}this._x0=this._x1,this._x1=t;this._y0=this._y1,this._y1=n;this._t0=e}};function u(t){this._context=new h(t)}(u.prototype=Object.create(o.prototype)).point=function(t,n){o.prototype.point.call(this,n,t)};function h(t){this._context=t}h.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,i,r,s){this._context.bezierCurveTo(n,t,i,e,s,r)}};function c(t){return new o(t)}function l(t){return new u(t)}},29944:(t,n,e)=>{e.d(n,{A:()=>s});function i(t){this._context=t}i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[];this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e){this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]);if(e===2){this._context.lineTo(t[1],n[1])}else{var i=r(t),s=r(n);for(var a=0,o=1;o=0;--n)r[n]=(a[n]-r[n+1])/s[n];s[e-1]=(t[e]+r[e-1])/2;for(n=0;n{e.d(n,{Ay:()=>r,Ko:()=>s,Ps:()=>a});function i(t,n){this._context=t;this._t=n}i.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN;this._point=0},lineEnd:function(){if(0=0)this._t=1-this._t,this._line=1-this._line},point:function(t,n){t=+t,n=+n;switch(this._point){case 0:this._point=1;this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:{if(this._t<=0){this._context.lineTo(this._x,n);this._context.lineTo(t,n)}else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y);this._context.lineTo(e,n)}break}}this._x=t,this._y=n}};function r(t){return new i(t,.5)}function s(t){return new i(t,0)}function a(t){return new i(t,1)}},58679:(t,n,e)=>{e.d(n,{A:()=>u});var i=e(12736);var r=e(84653);var s=e(71228);var a=e(18226);var o=e(59835);function u(t,n){var e=(0,r.A)(true),u=null,h=s.A,c=null,l=(0,a.i)(f);t=typeof t==="function"?t:t===undefined?o.x:(0,r.A)(t);n=typeof n==="function"?n:n===undefined?o.y:(0,r.A)(n);function f(r){var s,a=(r=(0,i.A)(r)).length,o,f=false,_;if(u==null)c=h(_=l());for(s=0;s<=a;++s){if(!(s{e.d(n,{F8:()=>u,FA:()=>_,FP:()=>r,HQ:()=>p,Ni:()=>c,RZ:()=>h,T9:()=>a,TW:()=>f,gn:()=>s,jk:()=>o,pi:()=>l,qR:()=>y,tn:()=>i});const i=Math.abs;const r=Math.atan2;const s=Math.cos;const a=Math.max;const o=Math.min;const u=Math.sin;const h=Math.sqrt;const c=1e-12;const l=Math.PI;const f=l/2;const _=2*l;function p(t){return t>1?0:t<-1?l:Math.acos(t)}function y(t){return t>=1?f:t<=-1?-f:Math.asin(t)}},71649:(t,n,e)=>{e.d(n,{A:()=>i});function i(){}},18226:(t,n,e)=>{e.d(n,{i:()=>r});var i=e(69450);function r(t){let n=3;t.digits=function(e){if(!arguments.length)return n;if(e==null){n=null}else{const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);n=t}return t};return()=>new i.wA(n)}},59835:(t,n,e)=>{e.d(n,{x:()=>i,y:()=>r});function i(t){return t[0]}function r(t){return t[1]}},82692:(t,n,e)=>{e.d(n,{DC:()=>s,GY:()=>u,T6:()=>a,aL:()=>o});var i=e(77613);var r;var s;var a;var o;var u;h({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function h(t){r=(0,i.A)(t);s=r.format;a=r.parse;o=r.utcFormat;u=r.utcParse;return r}},77613:(t,n,e)=>{e.d(n,{A:()=>h});var i=e(61779);var r=e(20293);var s=e(42706);function a(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);n.setFullYear(t.y);return n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function o(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));n.setUTCFullYear(t.y);return n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function u(t,n,e){return{y:t,m:n,d:e,H:0,M:0,S:0,L:0}}function h(t){var n=t.dateTime,e=t.date,s=t.time,h=t.periods,l=t.days,f=t.shortDays,_=t.months,p=t.shortMonths;var y=g(h),Q=d(h),yt=g(l),Nt=d(l),Ct=g(f),$t=d(f),Ut=g(_),Ft=d(_),Dt=g(p),St=d(p);var Pt={a:Zt,A:Qt,b:Bt,B:Wt,c:null,d:Y,e:Y,f:X,g:tt,G:et,H:q,I:L,j,L:z,m:I,M:O,p:Vt,q:Kt,Q:Tt,s:kt,S:G,u:J,U:Z,V:B,w:W,W:V,x:null,X:null,y:K,Y:nt,Z:it,"%":Mt};var Et={a:tn,A:nn,b:en,B:rn,c:null,d:rt,e:rt,f:ht,g:wt,G:bt,H:st,I:at,j:ot,L:ut,m:ct,M:lt,p:sn,q:an,Q:Tt,s:kt,S:ft,u:_t,U:pt,V:gt,w:dt,W:vt,x:null,X:null,y:xt,Y:mt,Z:At,"%":Mt};var Rt={a:jt,A:zt,b:Xt,B:It,c:Ot,d:C,e:C,f:P,g:M,G:A,H:U,I:U,j:$,L:S,m:N,M:F,p:Lt,q:k,Q:R,s:H,S:D,u:x,U:w,V:m,w:v,W:b,x:Gt,X:Jt,y:M,Y:A,Z:T,"%":E};Pt.x=Ht(e,Pt);Pt.X=Ht(s,Pt);Pt.c=Ht(n,Pt);Et.x=Ht(e,Et);Et.X=Ht(s,Et);Et.c=Ht(n,Et);function Ht(t,n){return function(e){var i=[],r=-1,s=0,a=t.length,o,u,h;if(!(e instanceof Date))e=new Date(+e);while(++r53)return null;if(!("w"in s))s.w=1;if("Z"in s){c=o(u(s.y,0,1)),l=c.getUTCDay();c=l>4||l===0?i.rt.ceil(c):(0,i.rt)(c);c=r.dA.offset(c,(s.V-1)*7);s.y=c.getUTCFullYear();s.m=c.getUTCMonth();s.d=c.getUTCDate()+(s.w+6)%7}else{c=a(u(s.y,0,1)),l=c.getDay();c=l>4||l===0?i.AB.ceil(c):(0,i.AB)(c);c=r.UA.offset(c,(s.V-1)*7);s.y=c.getFullYear();s.m=c.getMonth();s.d=c.getDate()+(s.w+6)%7}}else if("W"in s||"U"in s){if(!("w"in s))s.w="u"in s?s.u%7:"W"in s?1:0;l="Z"in s?o(u(s.y,0,1)).getUTCDay():a(u(s.y,0,1)).getDay();s.m=0;s.d="W"in s?(s.w+6)%7+s.W*7-(l+5)%7:s.w+s.U*7-(l+6)%7}if("Z"in s){s.H+=s.Z/100|0;s.M+=s.Z%100;return o(s)}return a(s)}}function qt(t,n,e,i){var r=0,s=n.length,a=e.length,o,u;while(r=a)return-1;o=n.charCodeAt(r++);if(o===37){o=n.charAt(r++);u=Rt[o in c?n.charAt(r++):o];if(!u||(i=u(t,e,i))<0)return-1}else if(o!=e.charCodeAt(i++)){return-1}}return i}function Lt(t,n,e){var i=y.exec(n.slice(e));return i?(t.p=Q.get(i[0].toLowerCase()),e+i[0].length):-1}function jt(t,n,e){var i=Ct.exec(n.slice(e));return i?(t.w=$t.get(i[0].toLowerCase()),e+i[0].length):-1}function zt(t,n,e){var i=yt.exec(n.slice(e));return i?(t.w=Nt.get(i[0].toLowerCase()),e+i[0].length):-1}function Xt(t,n,e){var i=Dt.exec(n.slice(e));return i?(t.m=St.get(i[0].toLowerCase()),e+i[0].length):-1}function It(t,n,e){var i=Ut.exec(n.slice(e));return i?(t.m=Ft.get(i[0].toLowerCase()),e+i[0].length):-1}function Ot(t,e,i){return qt(t,n,e,i)}function Gt(t,n,i){return qt(t,e,n,i)}function Jt(t,n,e){return qt(t,s,n,e)}function Zt(t){return f[t.getDay()]}function Qt(t){return l[t.getDay()]}function Bt(t){return p[t.getMonth()]}function Wt(t){return _[t.getMonth()]}function Vt(t){return h[+(t.getHours()>=12)]}function Kt(t){return 1+~~(t.getMonth()/3)}function tn(t){return f[t.getUTCDay()]}function nn(t){return l[t.getUTCDay()]}function en(t){return p[t.getUTCMonth()]}function rn(t){return _[t.getUTCMonth()]}function sn(t){return h[+(t.getUTCHours()>=12)]}function an(t){return 1+~~(t.getUTCMonth()/3)}return{format:function(t){var n=Ht(t+="",Pt);n.toString=function(){return t};return n},parse:function(t){var n=Yt(t+="",false);n.toString=function(){return t};return n},utcFormat:function(t){var n=Ht(t+="",Et);n.toString=function(){return t};return n},utcParse:function(t){var n=Yt(t+="",true);n.toString=function(){return t};return n}}}var c={"-":"",_:" ",0:"0"},l=/^\s*\d+/,f=/^%/,_=/[\\^$*+?|[\]().{}]/g;function p(t,n,e){var i=t<0?"-":"",r=(i?-t:t)+"",s=r.length;return i+(s[t.toLowerCase(),n])))}function v(t,n,e){var i=l.exec(n.slice(e,e+1));return i?(t.w=+i[0],e+i[0].length):-1}function x(t,n,e){var i=l.exec(n.slice(e,e+1));return i?(t.u=+i[0],e+i[0].length):-1}function w(t,n,e){var i=l.exec(n.slice(e,e+2));return i?(t.U=+i[0],e+i[0].length):-1}function m(t,n,e){var i=l.exec(n.slice(e,e+2));return i?(t.V=+i[0],e+i[0].length):-1}function b(t,n,e){var i=l.exec(n.slice(e,e+2));return i?(t.W=+i[0],e+i[0].length):-1}function A(t,n,e){var i=l.exec(n.slice(e,e+4));return i?(t.y=+i[0],e+i[0].length):-1}function M(t,n,e){var i=l.exec(n.slice(e,e+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),e+i[0].length):-1}function T(t,n,e){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),e+i[0].length):-1}function k(t,n,e){var i=l.exec(n.slice(e,e+1));return i?(t.q=i[0]*3-3,e+i[0].length):-1}function N(t,n,e){var i=l.exec(n.slice(e,e+2));return i?(t.m=i[0]-1,e+i[0].length):-1}function C(t,n,e){var i=l.exec(n.slice(e,e+2));return i?(t.d=+i[0],e+i[0].length):-1}function $(t,n,e){var i=l.exec(n.slice(e,e+3));return i?(t.m=0,t.d=+i[0],e+i[0].length):-1}function U(t,n,e){var i=l.exec(n.slice(e,e+2));return i?(t.H=+i[0],e+i[0].length):-1}function F(t,n,e){var i=l.exec(n.slice(e,e+2));return i?(t.M=+i[0],e+i[0].length):-1}function D(t,n,e){var i=l.exec(n.slice(e,e+2));return i?(t.S=+i[0],e+i[0].length):-1}function S(t,n,e){var i=l.exec(n.slice(e,e+3));return i?(t.L=+i[0],e+i[0].length):-1}function P(t,n,e){var i=l.exec(n.slice(e,e+6));return i?(t.L=Math.floor(i[0]/1e3),e+i[0].length):-1}function E(t,n,e){var i=f.exec(n.slice(e,e+1));return i?e+i[0].length:-1}function R(t,n,e){var i=l.exec(n.slice(e));return i?(t.Q=+i[0],e+i[0].length):-1}function H(t,n,e){var i=l.exec(n.slice(e));return i?(t.s=+i[0],e+i[0].length):-1}function Y(t,n){return p(t.getDate(),n,2)}function q(t,n){return p(t.getHours(),n,2)}function L(t,n){return p(t.getHours()%12||12,n,2)}function j(t,n){return p(1+r.UA.count((0,s.he)(t),t),n,3)}function z(t,n){return p(t.getMilliseconds(),n,3)}function X(t,n){return z(t,n)+"000"}function I(t,n){return p(t.getMonth()+1,n,2)}function O(t,n){return p(t.getMinutes(),n,2)}function G(t,n){return p(t.getSeconds(),n,2)}function J(t){var n=t.getDay();return n===0?7:n}function Z(t,n){return p(i.YP.count((0,s.he)(t)-1,t),n,2)}function Q(t){var n=t.getDay();return n>=4||n===0?(0,i.Mo)(t):i.Mo.ceil(t)}function B(t,n){t=Q(t);return p(i.Mo.count((0,s.he)(t),t)+((0,s.he)(t).getDay()===4),n,2)}function W(t){return t.getDay()}function V(t,n){return p(i.AB.count((0,s.he)(t)-1,t),n,2)}function K(t,n){return p(t.getFullYear()%100,n,2)}function tt(t,n){t=Q(t);return p(t.getFullYear()%100,n,2)}function nt(t,n){return p(t.getFullYear()%1e4,n,4)}function et(t,n){var e=t.getDay();t=e>=4||e===0?(0,i.Mo)(t):i.Mo.ceil(t);return p(t.getFullYear()%1e4,n,4)}function it(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+p(n/60|0,"0",2)+p(n%60,"0",2)}function rt(t,n){return p(t.getUTCDate(),n,2)}function st(t,n){return p(t.getUTCHours(),n,2)}function at(t,n){return p(t.getUTCHours()%12||12,n,2)}function ot(t,n){return p(1+r.dA.count((0,s.Mb)(t),t),n,3)}function ut(t,n){return p(t.getUTCMilliseconds(),n,3)}function ht(t,n){return ut(t,n)+"000"}function ct(t,n){return p(t.getUTCMonth()+1,n,2)}function lt(t,n){return p(t.getUTCMinutes(),n,2)}function ft(t,n){return p(t.getUTCSeconds(),n,2)}function _t(t){var n=t.getUTCDay();return n===0?7:n}function pt(t,n){return p(i.Hl.count((0,s.Mb)(t)-1,t),n,2)}function yt(t){var n=t.getUTCDay();return n>=4||n===0?(0,i.pT)(t):i.pT.ceil(t)}function gt(t,n){t=yt(t);return p(i.pT.count((0,s.Mb)(t),t)+((0,s.Mb)(t).getUTCDay()===4),n,2)}function dt(t){return t.getUTCDay()}function vt(t,n){return p(i.rt.count((0,s.Mb)(t)-1,t),n,2)}function xt(t,n){return p(t.getUTCFullYear()%100,n,2)}function wt(t,n){t=yt(t);return p(t.getUTCFullYear()%100,n,2)}function mt(t,n){return p(t.getUTCFullYear()%1e4,n,4)}function bt(t,n){var e=t.getUTCDay();t=e>=4||e===0?(0,i.pT)(t):i.pT.ceil(t);return p(t.getUTCFullYear()%1e4,n,4)}function At(){return"+0000"}function Mt(){return"%"}function Tt(t){return+t}function kt(t){return Math.floor(+t/1e3)}},20293:(t,n,e)=>{e.d(n,{TW:()=>h,UA:()=>s,dA:()=>o});var i=e(12834);var r=e(29551);const s=(0,i.f)((t=>t.setHours(0,0,0,0)),((t,n)=>t.setDate(t.getDate()+n)),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*r.rR)/r.Nm),(t=>t.getDate()-1));const a=s.range;const o=(0,i.f)((t=>{t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCDate(t.getUTCDate()+n)}),((t,n)=>(n-t)/r.Nm),(t=>t.getUTCDate()-1));const u=o.range;const h=(0,i.f)((t=>{t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCDate(t.getUTCDate()+n)}),((t,n)=>(n-t)/r.Nm),(t=>Math.floor(t/r.Nm)));const c=h.range},29551:(t,n,e)=>{e.d(n,{Fq:()=>o,JJ:()=>s,MP:()=>h,Nm:()=>a,Pv:()=>u,Tt:()=>i,rR:()=>r});const i=1e3;const r=i*60;const s=r*60;const a=s*24;const o=a*7;const u=a*30;const h=a*365},9017:(t,n,e)=>{e.d(n,{Ag:()=>s,pz:()=>o});var i=e(12834);var r=e(29551);const s=(0,i.f)((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*r.Tt-t.getMinutes()*r.rR)}),((t,n)=>{t.setTime(+t+n*r.JJ)}),((t,n)=>(n-t)/r.JJ),(t=>t.getHours()));const a=s.range;const o=(0,i.f)((t=>{t.setUTCMinutes(0,0,0)}),((t,n)=>{t.setTime(+t+n*r.JJ)}),((t,n)=>(n-t)/r.JJ),(t=>t.getUTCHours()));const u=o.range},12834:(t,n,e)=>{e.d(n,{f:()=>s});const i=new Date,r=new Date;function s(t,n,e,a){function o(n){return t(n=arguments.length===0?new Date:new Date(+n)),n}o.floor=n=>(t(n=new Date(+n)),n);o.ceil=e=>(t(e=new Date(e-1)),n(e,1),t(e),e);o.round=t=>{const n=o(t),e=o.ceil(t);return t-n(n(t=new Date(+t),e==null?1:Math.floor(e)),t);o.range=(e,i,r)=>{const s=[];e=o.ceil(e);r=r==null?1:Math.floor(r);if(!(e0))return s;let a;do{s.push(a=new Date(+e)),n(e,r),t(e)}while(as((n=>{if(n>=n)while(t(n),!e(n))n.setTime(n-1)}),((t,i)=>{if(t>=t){if(i<0)while(++i<=0){while(n(t,-1),!e(t)){}}else while(--i>=0){while(n(t,+1),!e(t)){}}}}));if(e){o.count=(n,s)=>{i.setTime(+n),r.setTime(+s);t(i),t(r);return Math.floor(e(i,r))};o.every=t=>{t=Math.floor(t);return!isFinite(t)||!(t>0)?null:!(t>1)?o:o.filter(a?n=>a(n)%t===0:n=>o.count(0,n)%t===0)}}return o}},26530:(t,n,e)=>{e.d(n,{y:()=>r});var i=e(12834);const r=(0,i.f)((()=>{}),((t,n)=>{t.setTime(+t+n)}),((t,n)=>n-t));r.every=t=>{t=Math.floor(t);if(!isFinite(t)||!(t>0))return null;if(!(t>1))return r;return(0,i.f)((n=>{n.setTime(Math.floor(n/t)*t)}),((n,e)=>{n.setTime(+n+e*t)}),((n,e)=>(e-n)/t))};const s=r.range},23383:(t,n,e)=>{e.d(n,{vD:()=>o,wX:()=>s});var i=e(12834);var r=e(29551);const s=(0,i.f)((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*r.Tt)}),((t,n)=>{t.setTime(+t+n*r.rR)}),((t,n)=>(n-t)/r.rR),(t=>t.getMinutes()));const a=s.range;const o=(0,i.f)((t=>{t.setUTCSeconds(0,0)}),((t,n)=>{t.setTime(+t+n*r.rR)}),((t,n)=>(n-t)/r.rR),(t=>t.getUTCMinutes()));const u=o.range},77849:(t,n,e)=>{e.d(n,{R6:()=>a,Ui:()=>r});var i=e(12834);const r=(0,i.f)((t=>{t.setDate(1);t.setHours(0,0,0,0)}),((t,n)=>{t.setMonth(t.getMonth()+n)}),((t,n)=>n.getMonth()-t.getMonth()+(n.getFullYear()-t.getFullYear())*12),(t=>t.getMonth()));const s=r.range;const a=(0,i.f)((t=>{t.setUTCDate(1);t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCMonth(t.getUTCMonth()+n)}),((t,n)=>n.getUTCMonth()-t.getUTCMonth()+(n.getUTCFullYear()-t.getUTCFullYear())*12),(t=>t.getUTCMonth()));const o=a.range},61147:(t,n,e)=>{e.d(n,{R:()=>s});var i=e(12834);var r=e(29551);const s=(0,i.f)((t=>{t.setTime(t-t.getMilliseconds())}),((t,n)=>{t.setTime(+t+n*r.Tt)}),((t,n)=>(n-t)/r.Tt),(t=>t.getUTCSeconds()));const a=s.range},20421:(t,n,e)=>{e.d(n,{$Z:()=>y,Cf:()=>d,lk:()=>g,yE:()=>v});var i=e(9791);var r=e(97119);var s=e(29551);var a=e(26530);var o=e(61147);var u=e(23383);var h=e(9017);var c=e(20293);var l=e(61779);var f=e(77849);var _=e(42706);function p(t,n,e,u,h,c){const l=[[o.R,1,s.Tt],[o.R,5,5*s.Tt],[o.R,15,15*s.Tt],[o.R,30,30*s.Tt],[c,1,s.rR],[c,5,5*s.rR],[c,15,15*s.rR],[c,30,30*s.rR],[h,1,s.JJ],[h,3,3*s.JJ],[h,6,6*s.JJ],[h,12,12*s.JJ],[u,1,s.Nm],[u,2,2*s.Nm],[e,1,s.Fq],[n,1,s.Pv],[n,3,3*s.Pv],[t,1,s.MP]];function f(t,n,e){const i=nt)).right(l,u);if(h===l.length)return t.every((0,r.sG)(n/s.MP,e/s.MP,o));if(h===0)return a.y.every(Math.max((0,r.sG)(n,e,o),1));const[c,f]=l[u/l[h-1][2]{e.d(n,{AB:()=>o,Gu:()=>h,Hl:()=>m,Mo:()=>c,PG:()=>u,TU:()=>l,YP:()=>a,pT:()=>T,rG:()=>f,rt:()=>b});var i=e(12834);var r=e(29551);function s(t){return(0,i.f)((n=>{n.setDate(n.getDate()-(n.getDay()+7-t)%7);n.setHours(0,0,0,0)}),((t,n)=>{t.setDate(t.getDate()+n*7)}),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*r.rR)/r.Fq))}const a=s(0);const o=s(1);const u=s(2);const h=s(3);const c=s(4);const l=s(5);const f=s(6);const _=a.range;const p=o.range;const y=u.range;const g=h.range;const d=c.range;const v=l.range;const x=f.range;function w(t){return(0,i.f)((n=>{n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7);n.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)}),((t,n)=>(n-t)/r.Fq))}const m=w(0);const b=w(1);const A=w(2);const M=w(3);const T=w(4);const k=w(5);const N=w(6);const C=m.range;const $=b.range;const U=A.range;const F=M.range;const D=T.range;const S=k.range;const P=N.range},42706:(t,n,e)=>{e.d(n,{Mb:()=>a,he:()=>r});var i=e(12834);const r=(0,i.f)((t=>{t.setMonth(0,1);t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n)}),((t,n)=>n.getFullYear()-t.getFullYear()),(t=>t.getFullYear()));r.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:(0,i.f)((n=>{n.setFullYear(Math.floor(n.getFullYear()/t)*t);n.setMonth(0,1);n.setHours(0,0,0,0)}),((n,e)=>{n.setFullYear(n.getFullYear()+e*t)}));const s=r.range;const a=(0,i.f)((t=>{t.setUTCMonth(0,1);t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n)}),((t,n)=>n.getUTCFullYear()-t.getUTCFullYear()),(t=>t.getUTCFullYear()));a.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:(0,i.f)((n=>{n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t);n.setUTCMonth(0,1);n.setUTCHours(0,0,0,0)}),((n,e)=>{n.setUTCFullYear(n.getUTCFullYear()+e*t)}));const o=a.range},14036:(t,n,e)=>{e.d(n,{M4:()=>g,O1:()=>d,tB:()=>p});var i=0,r=0,s=0,a=1e3,o,u,h=0,c=0,l=0,f=typeof performance==="object"&&performance.now?performance:Date,_=typeof window==="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function p(){return c||(_(y),c=f.now()+l)}function y(){c=0}function g(){this._call=this._time=this._next=null}g.prototype=d.prototype={constructor:g,restart:function(t,n,e){if(typeof t!=="function")throw new TypeError("callback is not a function");e=(e==null?p():+e)+(n==null?0:+n);if(!this._next&&u!==this){if(u)u._next=this;else o=this;u=this}this._call=t;this._time=e;b()},stop:function(){if(this._call){this._call=null;this._time=Infinity;b()}}};function d(t,n,e){var i=new g;i.restart(t,n,e);return i}function v(){p();++i;var t=o,n;while(t){if((n=c-t._time)>=0)t._call.call(undefined,n);t=t._next}--i}function x(){c=(h=f.now())+l;i=r=0;try{v()}finally{i=0;m();c=0}}function w(){var t=f.now(),n=t-h;if(n>a)l-=n,h=t}function m(){var t,n=o,e,i=Infinity;while(n){if(n._call){if(i>n._time)i=n._time;t=n,n=n._next}else{e=n._next,n._next=null;n=t?t._next=e:o=e}}u=t;b(i)}function b(t){if(i)return;if(r)r=clearTimeout(r);var n=t-c;if(n>24){if(t{e.d(n,{B:()=>i,v:()=>r});class i extends Map{constructor(t,n=u){super();Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}});if(t!=null)for(const[e,i]of t)this.set(e,i)}get(t){return super.get(s(this,t))}has(t){return super.has(s(this,t))}set(t,n){return super.set(a(this,t),n)}delete(t){return super.delete(o(this,t))}}class r extends Set{constructor(t,n=u){super();Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}});if(t!=null)for(const e of t)this.add(e)}has(t){return super.has(s(this,t))}add(t){return super.add(a(this,t))}delete(t){return super.delete(o(this,t))}}function s({_intern:t,_key:n},e){const i=n(e);return t.has(i)?t.get(i):e}function a({_intern:t,_key:n},e){const i=n(e);if(t.has(i))return t.get(i);t.set(i,e);return e}function o({_intern:t,_key:n},e){const i=n(e);if(t.has(i)){e=t.get(e);t.delete(i)}return e}function u(t){return t!==null&&typeof t==="object"?t.valueOf():t}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/867.e814bf26fbfc77fc4f16.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/867.e814bf26fbfc77fc4f16.js deleted file mode 100644 index 88011cf41fb5585676330e644dfaec0889681e1b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/867.e814bf26fbfc77fc4f16.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[867],{90867:(e,t,r)=>{r.r(t);r.d(t,{erlang:()=>H});var n=["-type","-spec","-export_type","-opaque"];var i=["after","begin","catch","case","cond","end","fun","if","let","of","query","receive","try","when"];var a=/[\->,;]/;var o=["->",";",","];var u=["and","andalso","band","bnot","bor","bsl","bsr","bxor","div","not","or","orelse","rem","xor"];var s=/[\+\-\*\/<>=\|:!]/;var c=["=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"];var l=/[<\(\[\{]/;var f=["<<","(","[","{"];var _=/[>\)\]\}]/;var p=["}","]",")",">>"];var m=["is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_record","is_reference","is_tuple","atom","binary","bitstring","boolean","function","integer","list","number","pid","port","record","reference","tuple"];var b=["abs","adler32","adler32_combine","alive","apply","atom_to_binary","atom_to_list","binary_to_atom","binary_to_existing_atom","binary_to_list","binary_to_term","bit_size","bitstring_to_list","byte_size","check_process_code","contact_binary","crc32","crc32_combine","date","decode_packet","delete_module","disconnect_node","element","erase","exit","float","float_to_list","garbage_collect","get","get_keys","group_leader","halt","hd","integer_to_list","internal_bif","iolist_size","iolist_to_binary","is_alive","is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_process_alive","is_record","is_reference","is_tuple","length","link","list_to_atom","list_to_binary","list_to_bitstring","list_to_existing_atom","list_to_float","list_to_integer","list_to_pid","list_to_tuple","load_module","make_ref","module_loaded","monitor_node","node","node_link","node_unlink","nodes","notalive","now","open_port","pid_to_list","port_close","port_command","port_connect","port_control","pre_loaded","process_flag","process_info","processes","purge_module","put","register","registered","round","self","setelement","size","spawn","spawn_link","spawn_monitor","spawn_opt","split_binary","statistics","term_to_binary","time","throw","tl","trunc","tuple_size","tuple_to_list","unlink","unregister","whereis"];var d=/[\w@Ø-ÞÀ-Öß-öø-ÿ]/;var k=/[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;function g(e,t){if(t.in_string){t.in_string=!y(e);return W(t,e,"string")}if(t.in_atom){t.in_atom=!w(e);return W(t,e,"atom")}if(e.eatSpace()){return W(t,e,"whitespace")}if(!Z(t)&&e.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/)){if(z(e.current(),n)){return W(t,e,"type")}else{return W(t,e,"attribute")}}var r=e.next();if(r=="%"){e.skipToEnd();return W(t,e,"comment")}if(r==":"){return W(t,e,"colon")}if(r=="?"){e.eatSpace();e.eatWhile(d);return W(t,e,"macro")}if(r=="#"){e.eatSpace();e.eatWhile(d);return W(t,e,"record")}if(r=="$"){if(e.next()=="\\"&&!e.match(k)){return W(t,e,"error")}return W(t,e,"number")}if(r=="."){return W(t,e,"dot")}if(r=="'"){if(!(t.in_atom=!w(e))){if(e.match(/\s*\/\s*[0-9]/,false)){e.match(/\s*\/\s*[0-9]/,true);return W(t,e,"fun")}if(e.match(/\s*\(/,false)||e.match(/\s*:/,false)){return W(t,e,"function")}}return W(t,e,"atom")}if(r=='"'){t.in_string=!y(e);return W(t,e,"string")}if(/[A-Z_Ø-ÞÀ-Ö]/.test(r)){e.eatWhile(d);return W(t,e,"variable")}if(/[a-z_ß-öø-ÿ]/.test(r)){e.eatWhile(d);if(e.match(/\s*\/\s*[0-9]/,false)){e.match(/\s*\/\s*[0-9]/,true);return W(t,e,"fun")}var g=e.current();if(z(g,i)){return W(t,e,"keyword")}else if(z(g,u)){return W(t,e,"operator")}else if(e.match(/\s*\(/,false)){if(z(g,b)&&(Z(t).token!=":"||Z(t,2).token=="erlang")){return W(t,e,"builtin")}else if(z(g,m)){return W(t,e,"guard")}else{return W(t,e,"function")}}else if(S(e)==":"){if(g=="erlang"){return W(t,e,"builtin")}else{return W(t,e,"function")}}else if(z(g,["true","false"])){return W(t,e,"boolean")}else{return W(t,e,"atom")}}var x=/[0-9]/;var U=/[0-9a-zA-Z]/;if(x.test(r)){e.eatWhile(x);if(e.eat("#")){if(!e.eatWhile(U)){e.backUp(1)}}else if(e.eat(".")){if(!e.eatWhile(x)){e.backUp(1)}else{if(e.eat(/[eE]/)){if(e.eat(/[-+]/)){if(!e.eatWhile(x)){e.backUp(2)}}else{if(!e.eatWhile(x)){e.backUp(1)}}}}}return W(t,e,"number")}if(h(e,l,f)){return W(t,e,"open_paren")}if(h(e,_,p)){return W(t,e,"close_paren")}if(v(e,a,o)){return W(t,e,"separator")}if(v(e,s,c)){return W(t,e,"operator")}return W(t,e,null)}function h(e,t,r){if(e.current().length==1&&t.test(e.current())){e.backUp(1);while(t.test(e.peek())){e.next();if(z(e.current(),r)){return true}}e.backUp(e.current().length-1)}return false}function v(e,t,r){if(e.current().length==1&&t.test(e.current())){while(t.test(e.peek())){e.next()}while(01&&e[t].type==="fun"&&e[t-1].token==="fun"){return e.slice(0,t-1)}switch(e[t].token){case"}":return T(e,{g:["{"]});case"]":return T(e,{i:["["]});case")":return T(e,{i:["("]});case">>":return T(e,{i:["<<"]});case"end":return T(e,{i:["begin","case","fun","if","receive","try"]});case",":return T(e,{e:["begin","try","when","->",",","(","[","{","<<"]});case"->":return T(e,{r:["when"],m:["try","if","case","receive"]});case";":return T(e,{E:["case","fun","if","receive","try","when"]});case"catch":return T(e,{e:["try"]});case"of":return T(e,{e:["case"]});case"after":return T(e,{e:["receive","try"]});default:return e}}function T(e,t){for(var r in t){var n=e.length-1;var i=t[r];for(var a=n-1;-1"){if(z(o.token,["receive","case","if","try"])){return o.column+r.unit+r.unit}else{return o.column+r.unit}}else if(z(a.token,f)){return a.column+a.token.length}else{n=$(e);return G(n)?n.column+r.unit:0}}function N(e){var t=e.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);return G(t)&&t.index===0?t[0]:""}function O(e){var t=e.tokenStack.slice(0,-1);var r=F(t,"type",["open_paren"]);return G(t[r])?t[r]:false}function $(e){var t=e.tokenStack;var r=F(t,"type",["open_paren","separator","keyword"]);var n=F(t,"type",["operator"]);if(G(r)&&G(n)&&r{e.d(a,{diagram:()=>_});var s=e(41359);var t=e(15051);var l=e(94065);var p=e(33416);var v=e(94746);var i=e(20778);var n=e(57590);var u=e(68232);var c=e(76261);var o=e(96049);var b=e(75905);var _={parser:s._$,get db(){return new s.NM},renderer:s.Lh,styles:s.tM,init:(0,b.K2)((r=>{if(!r.class){r.class={}}r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute}),"init")}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8753.56da17175b663d61f9d3.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8753.56da17175b663d61f9d3.js deleted file mode 100644 index c9f7e6aab86003349203d719939393827bc5b8a9..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8753.56da17175b663d61f9d3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8753],{58753:(e,t,n)=>{n.r(t);n.d(t,{sparql:()=>x});var r;function a(e){return new RegExp("^(?:"+e.join("|")+")$","i")}var i=a(["str","lang","langmatches","datatype","bound","sameterm","isiri","isuri","iri","uri","bnode","count","sum","min","max","avg","sample","group_concat","rand","abs","ceil","floor","round","concat","substr","strlen","replace","ucase","lcase","encode_for_uri","contains","strstarts","strends","strbefore","strafter","year","month","day","hours","minutes","seconds","timezone","tz","now","uuid","struuid","md5","sha1","sha256","sha384","sha512","coalesce","if","strlang","strdt","isnumeric","regex","exists","isblank","isliteral","a","bind"]);var u=a(["base","prefix","select","distinct","reduced","construct","describe","ask","from","named","where","order","limit","offset","filter","optional","graph","by","asc","desc","as","having","undef","values","group","minus","in","not","service","silent","using","insert","delete","union","true","false","with","data","copy","to","move","add","create","drop","clear","load","into"]);var o=/[*+\-<>=&|\^\/!\?]/;var s="[A-Za-z_\\-0-9]";var l=new RegExp("[A-Za-z]");var c=new RegExp("(("+s+"|\\.)*("+s+"))?:");function f(e,t){var n=e.next();r=null;if(n=="$"||n=="?"){if(n=="?"&&e.match(/\s/,false)){return"operator"}e.match(/^[A-Za-z0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][A-Za-z0-9_\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]*/);return"variableName.local"}else if(n=="<"&&!e.match(/^[\s\u00a0=]/,false)){e.match(/^[^\s\u00a0>]*>?/);return"atom"}else if(n=='"'||n=="'"){t.tokenize=d(n);return t.tokenize(e,t)}else if(/[{}\(\),\.;\[\]]/.test(n)){r=n;return"bracket"}else if(n=="#"){e.skipToEnd();return"comment"}else if(o.test(n)){return"operator"}else if(n==":"){p(e);return"atom"}else if(n=="@"){e.eatWhile(/[a-z\d\-]/i);return"meta"}else if(l.test(n)&&e.match(c)){p(e);return"atom"}e.eatWhile(/[_\w\d]/);var a=e.current();if(i.test(a))return"builtin";else if(u.test(a))return"keyword";else return"variable"}function p(e){e.match(/(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/i)}function d(e){return function(t,n){var r=false,a;while((a=t.next())!=null){if(a==e&&!r){n.tokenize=f;break}r=!r&&a=="\\"}return"string"}}function m(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function F(e){e.indent=e.context.indent;e.context=e.context.prev}const x={name:"sparql",startState:function(){return{tokenize:f,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()){if(t.context&&t.context.align==null)t.context.align=false;t.indent=e.indentation()}if(e.eatSpace())return null;var n=t.tokenize(e,t);if(n!="comment"&&t.context&&t.context.align==null&&t.context.type!="pattern"){t.context.align=true}if(r=="(")m(t,")",e.column());else if(r=="[")m(t,"]",e.column());else if(r=="{")m(t,"}",e.column());else if(/[\]\}\)]/.test(r)){while(t.context&&t.context.type=="pattern")F(t);if(t.context&&r==t.context.type){F(t);if(r=="}"&&t.context&&t.context.type=="pattern")F(t)}}else if(r=="."&&t.context&&t.context.type=="pattern")F(t);else if(/atom|string|variable/.test(n)&&t.context){if(/[\}\]]/.test(t.context.type))m(t,"pattern",e.column());else if(t.context.type=="pattern"&&!t.context.align){t.context.align=true;t.context.col=e.column()}}return n},indent:function(e,t,n){var r=t&&t.charAt(0);var a=e.context;if(/[\]\}]/.test(r))while(a&&a.type=="pattern")a=a.prev;var i=a&&r==a.type;if(!a)return 0;else if(a.type=="pattern")return a.col;else if(a.align)return a.col+(i?0:1);else return a.indent+(i?0:n.unit)},languageData:{commentTokens:{line:"#"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8778.a3883f9acac5a903d6be.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8778.a3883f9acac5a903d6be.js deleted file mode 100644 index dd72c5614fcc0030fdad3bf1014c9a29d07f2e9e..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8778.a3883f9acac5a903d6be.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8778,5606],{65606:e=>{var t=e.exports={};var r;var n;function s(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){r=setTimeout}else{r=s}}catch(e){r=s}try{if(typeof clearTimeout==="function"){n=clearTimeout}else{n=o}}catch(e){n=o}})();function a(e){if(r===setTimeout){return setTimeout(e,0)}if((r===s||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function i(e){if(n===clearTimeout){return clearTimeout(e)}if((n===o||!n)&&clearTimeout){n=clearTimeout;return clearTimeout(e)}try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var l=[];var c=false;var u;var p=-1;function f(){if(!c||!u){return}c=false;if(u.length){l=u.concat(l)}else{p=-1}if(l.length){h()}}function h(){if(c){return}var e=a(f);c=true;var t=l.length;while(t){u=l;l=[];while(++p1){for(var r=1;r{!function(t,n){true?e.exports=n(r(44914)):0}(r.g,(function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,r),s.l=!0,s.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)r.d(n,s,function(t){return e[t]}.bind(null,s));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}([function(e,t,r){e.exports=r(2)()},function(t,r){t.exports=e},function(e,t,r){"use strict";var n=r(3);function s(){}function o(){}o.resetWarningCache=s,e.exports=function(){function e(e,t,r,s,o,a){if(a!==n){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var r={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:s};return r.PropTypes=r,r}},function(e,t,r){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,r,n){"use strict";n.r(r);var s=n(1),o=n.n(s),a=n(0),i=n.n(a);function l(){return(l=Object.assign||function(e){for(var t=1;t0&&t.handlePageSelected(r-1,e)})),N(R(t),"handleNextPage",(function(e){var r=t.state.selected,n=t.props.pageCount;e.preventDefault?e.preventDefault():e.returnValue=!1,rs-n/2?d=n-(g=s-u):us-a||f>=u-d&&f<=u+g?e.push(v(f)):i&&e[e.length-1]!==m&&(m=o.a.createElement(h,{key:f,breakLabel:i,breakClassName:l,breakLinkClassName:c,breakHandler:t.handleBreakClick.bind(null,f),getEventListener:t.getEventListener}),e.push(m))}return e})),r=e.initialPage?e.initialPage:e.forcePage?e.forcePage:0,t.state={selected:r},t}return t=a,(r=[{key:"componentDidMount",value:function(){var e=this.props,t=e.initialPage,r=e.disableInitialCallback,n=e.extraAriaContext;void 0===t||r||this.callCallback(t),n&&console.warn("DEPRECATED (react-paginate): The extraAriaContext prop is deprecated. You should now use the ariaLabelBuilder instead.")}},{key:"componentDidUpdate",value:function(e){void 0!==this.props.forcePage&&this.props.forcePage!==e.forcePage&&this.setState({selected:this.props.forcePage})}},{key:"getForwardJump",value:function(){var e=this.state.selected,t=this.props,r=t.pageCount,n=e+t.pageRangeDisplayed;return n>=r?r-1:n}},{key:"getBackwardJump",value:function(){var e=this.state.selected-this.props.pageRangeDisplayed;return e<0?0:e}},{key:"hrefBuilder",value:function(e){var t=this.props,r=t.hrefBuilder,n=t.pageCount;if(r&&e!==this.state.selected&&e>=0&&e=0&&e{const n=Symbol("SemVer ANY");class s{static get ANY(){return n}constructor(e,t){t=o(t);if(e instanceof s){if(e.loose===!!t.loose){return e}else{e=e.value}}e=e.trim().split(/\s+/).join(" ");c("comparator",e,t);this.options=t;this.loose=!!t.loose;this.parse(e);if(this.semver===n){this.value=""}else{this.value=this.operator+this.semver.version}c("comp",this)}parse(e){const t=this.options.loose?a[i.COMPARATORLOOSE]:a[i.COMPARATOR];const r=e.match(t);if(!r){throw new TypeError(`Invalid comparator: ${e}`)}this.operator=r[1]!==undefined?r[1]:"";if(this.operator==="="){this.operator=""}if(!r[2]){this.semver=n}else{this.semver=new u(r[2],this.options.loose)}}toString(){return this.value}test(e){c("Comparator.test",e,this.options.loose);if(this.semver===n||e===n){return true}if(typeof e==="string"){try{e=new u(e,this.options)}catch(t){return false}}return l(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof s)){throw new TypeError("a Comparator is required")}if(this.operator===""){if(this.value===""){return true}return new p(e.value,t).test(this.value)}else if(e.operator===""){if(e.value===""){return true}return new p(this.value,t).test(e.semver)}t=o(t);if(t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")){return false}if(!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))){return false}if(this.operator.startsWith(">")&&e.operator.startsWith(">")){return true}if(this.operator.startsWith("<")&&e.operator.startsWith("<")){return true}if(this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")){return true}if(l(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")){return true}if(l(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")){return true}return false}}e.exports=s;const o=r(98587);const{safeRe:a,t:i}=r(99718);const l=r(72111);const c=r(57272);const u=r(31527);const p=r(78311)},78311:(e,t,r)=>{const n=/\s+/g;class s{constructor(e,t){t=i(t);if(e instanceof s){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease){return e}else{return new s(e.raw,t)}}if(e instanceof l){this.raw=e.value;this.set=[[e]];this.formatted=undefined;return this}this.options=t;this.loose=!!t.loose;this.includePrerelease=!!t.includePrerelease;this.raw=e.trim().replace(n," ");this.set=this.raw.split("||").map((e=>this.parseRange(e.trim()))).filter((e=>e.length));if(!this.set.length){throw new TypeError(`Invalid SemVer Range: ${this.raw}`)}if(this.set.length>1){const e=this.set[0];this.set=this.set.filter((e=>!v(e[0])));if(this.set.length===0){this.set=[e]}else if(this.set.length>1){for(const e of this.set){if(e.length===1&&L(e[0])){this.set=[e];break}}}}this.formatted=undefined}get range(){if(this.formatted===undefined){this.formatted="";for(let e=0;e0){this.formatted+="||"}const t=this.set[e];for(let e=0;e0){this.formatted+=" "}this.formatted+=t[e].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){const t=(this.options.includePrerelease&&d)|(this.options.loose&&g);const r=t+":"+e;const n=a.get(r);if(n){return n}const s=this.options.loose;const o=s?p[f.HYPHENRANGELOOSE]:p[f.HYPHENRANGE];e=e.replace(o,A(this.options.includePrerelease));c("hyphen replace",e);e=e.replace(p[f.COMPARATORTRIM],h);c("comparator trim",e);e=e.replace(p[f.TILDETRIM],E);c("tilde trim",e);e=e.replace(p[f.CARETTRIM],m);c("caret trim",e);let i=e.split(" ").map((e=>$(e,this.options))).join(" ").split(/\s+/).map((e=>C(e,this.options)));if(s){i=i.filter((e=>{c("loose invalid filter",e,this.options);return!!e.match(p[f.COMPARATORLOOSE])}))}c("range list",i);const u=new Map;const L=i.map((e=>new l(e,this.options)));for(const a of L){if(v(a)){return[a]}u.set(a.value,a)}if(u.size>1&&u.has("")){u.delete("")}const R=[...u.values()];a.set(r,R);return R}intersects(e,t){if(!(e instanceof s)){throw new TypeError("a Range is required")}return this.set.some((r=>R(r,t)&&e.set.some((e=>R(e,t)&&r.every((r=>e.every((e=>r.intersects(e,t)))))))))}test(e){if(!e){return false}if(typeof e==="string"){try{e=new u(e,this.options)}catch(t){return false}}for(let r=0;re.value==="<0.0.0-0";const L=e=>e.value==="";const R=(e,t)=>{let r=true;const n=e.slice();let s=n.pop();while(r&&n.length){r=n.every((e=>s.intersects(e,t)));s=n.pop()}return r};const $=(e,t)=>{c("comp",e,t);e=O(e,t);c("caret",e);e=I(e,t);c("tildes",e);e=T(e,t);c("xrange",e);e=w(e,t);c("stars",e);return e};const N=e=>!e||e.toLowerCase()==="x"||e==="*";const I=(e,t)=>e.trim().split(/\s+/).map((e=>b(e,t))).join(" ");const b=(e,t)=>{const r=t.loose?p[f.TILDELOOSE]:p[f.TILDE];return e.replace(r,((t,r,n,s,o)=>{c("tilde",e,t,r,n,s,o);let a;if(N(r)){a=""}else if(N(n)){a=`>=${r}.0.0 <${+r+1}.0.0-0`}else if(N(s)){a=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`}else if(o){c("replaceTilde pr",o);a=`>=${r}.${n}.${s}-${o} <${r}.${+n+1}.0-0`}else{a=`>=${r}.${n}.${s} <${r}.${+n+1}.0-0`}c("tilde return",a);return a}))};const O=(e,t)=>e.trim().split(/\s+/).map((e=>y(e,t))).join(" ");const y=(e,t)=>{c("caret",e,t);const r=t.loose?p[f.CARETLOOSE]:p[f.CARET];const n=t.includePrerelease?"-0":"";return e.replace(r,((t,r,s,o,a)=>{c("caret",e,t,r,s,o,a);let i;if(N(r)){i=""}else if(N(s)){i=`>=${r}.0.0${n} <${+r+1}.0.0-0`}else if(N(o)){if(r==="0"){i=`>=${r}.${s}.0${n} <${r}.${+s+1}.0-0`}else{i=`>=${r}.${s}.0${n} <${+r+1}.0.0-0`}}else if(a){c("replaceCaret pr",a);if(r==="0"){if(s==="0"){i=`>=${r}.${s}.${o}-${a} <${r}.${s}.${+o+1}-0`}else{i=`>=${r}.${s}.${o}-${a} <${r}.${+s+1}.0-0`}}else{i=`>=${r}.${s}.${o}-${a} <${+r+1}.0.0-0`}}else{c("no pr");if(r==="0"){if(s==="0"){i=`>=${r}.${s}.${o}${n} <${r}.${s}.${+o+1}-0`}else{i=`>=${r}.${s}.${o}${n} <${r}.${+s+1}.0-0`}}else{i=`>=${r}.${s}.${o} <${+r+1}.0.0-0`}}c("caret return",i);return i}))};const T=(e,t)=>{c("replaceXRanges",e,t);return e.split(/\s+/).map((e=>P(e,t))).join(" ")};const P=(e,t)=>{e=e.trim();const r=t.loose?p[f.XRANGELOOSE]:p[f.XRANGE];return e.replace(r,((r,n,s,o,a,i)=>{c("xRange",e,r,n,s,o,a,i);const l=N(s);const u=l||N(o);const p=u||N(a);const f=p;if(n==="="&&f){n=""}i=t.includePrerelease?"-0":"";if(l){if(n===">"||n==="<"){r="<0.0.0-0"}else{r="*"}}else if(n&&f){if(u){o=0}a=0;if(n===">"){n=">=";if(u){s=+s+1;o=0;a=0}else{o=+o+1;a=0}}else if(n==="<="){n="<";if(u){s=+s+1}else{o=+o+1}}if(n==="<"){i="-0"}r=`${n+s}.${o}.${a}${i}`}else if(u){r=`>=${s}.0.0${i} <${+s+1}.0.0-0`}else if(p){r=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`}c("xRange return",r);return r}))};const w=(e,t)=>{c("replaceStars",e,t);return e.trim().replace(p[f.STAR],"")};const C=(e,t)=>{c("replaceGTE0",e,t);return e.trim().replace(p[t.includePrerelease?f.GTE0PRE:f.GTE0],"")};const A=e=>(t,r,n,s,o,a,i,l,c,u,p,f)=>{if(N(n)){r=""}else if(N(s)){r=`>=${n}.0.0${e?"-0":""}`}else if(N(o)){r=`>=${n}.${s}.0${e?"-0":""}`}else if(a){r=`>=${r}`}else{r=`>=${r}${e?"-0":""}`}if(N(c)){l=""}else if(N(u)){l=`<${+c+1}.0.0-0`}else if(N(p)){l=`<${c}.${+u+1}.0-0`}else if(f){l=`<=${c}.${u}.${p}-${f}`}else if(e){l=`<${c}.${u}.${+p+1}-0`}else{l=`<=${l}`}return`${r} ${l}`.trim()};const S=(e,t,r)=>{for(let n=0;n0){const n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch){return true}}}return false}return true}},31527:(e,t,r)=>{const n=r(57272);const{MAX_LENGTH:s,MAX_SAFE_INTEGER:o}=r(16874);const{safeRe:a,t:i}=r(99718);const l=r(98587);const{compareIdentifiers:c}=r(61123);class u{constructor(e,t){t=l(t);if(e instanceof u){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease){return e}else{e=e.version}}else if(typeof e!=="string"){throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`)}if(e.length>s){throw new TypeError(`version is longer than ${s} characters`)}n("SemVer",e,t);this.options=t;this.loose=!!t.loose;this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?a[i.LOOSE]:a[i.FULL]);if(!r){throw new TypeError(`Invalid Version: ${e}`)}this.raw=e;this.major=+r[1];this.minor=+r[2];this.patch=+r[3];if(this.major>o||this.major<0){throw new TypeError("Invalid major version")}if(this.minor>o||this.minor<0){throw new TypeError("Invalid minor version")}if(this.patch>o||this.patch<0){throw new TypeError("Invalid patch version")}if(!r[4]){this.prerelease=[]}else{this.prerelease=r[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0){if(typeof this.prerelease[n]==="number"){this.prerelease[n]++;n=-2}}if(n===-1){if(t===this.prerelease.join(".")&&r===false){throw new Error("invalid increment argument: identifier already exists")}this.prerelease.push(e)}}if(t){let n=[t,e];if(r===false){n=[t]}if(c(this.prerelease[0],t)===0){if(isNaN(this.prerelease[1])){this.prerelease=n}}else{this.prerelease=n}}break}default:throw new Error(`invalid increment argument: ${e}`)}this.raw=this.format();if(this.build.length){this.raw+=`+${this.build.join(".")}`}return this}}e.exports=u},57414:(e,t,r)=>{const n=r(30144);const s=(e,t)=>{const r=n(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};e.exports=s},72111:(e,t,r)=>{const n=r(94641);const s=r(13999);const o=r(35580);const a=r(54089);const i=r(7059);const l=r(25200);const c=(e,t,r,c)=>{switch(t){case"===":if(typeof e==="object"){e=e.version}if(typeof r==="object"){r=r.version}return e===r;case"!==":if(typeof e==="object"){e=e.version}if(typeof r==="object"){r=r.version}return e!==r;case"":case"=":case"==":return n(e,r,c);case"!=":return s(e,r,c);case">":return o(e,r,c);case">=":return a(e,r,c);case"<":return i(e,r,c);case"<=":return l(e,r,c);default:throw new TypeError(`Invalid operator: ${t}`)}};e.exports=c},46170:(e,t,r)=>{const n=r(31527);const s=r(30144);const{safeRe:o,t:a}=r(99718);const i=(e,t)=>{if(e instanceof n){return e}if(typeof e==="number"){e=String(e)}if(typeof e!=="string"){return null}t=t||{};let r=null;if(!t.rtl){r=e.match(t.includePrerelease?o[a.COERCEFULL]:o[a.COERCE])}else{const n=t.includePrerelease?o[a.COERCERTLFULL]:o[a.COERCERTL];let s;while((s=n.exec(e))&&(!r||r.index+r[0].length!==e.length)){if(!r||s.index+s[0].length!==r.index+r[0].length){r=s}n.lastIndex=s.index+s[1].length+s[2].length}n.lastIndex=-1}if(r===null){return null}const i=r[2];const l=r[3]||"0";const c=r[4]||"0";const u=t.includePrerelease&&r[5]?`-${r[5]}`:"";const p=t.includePrerelease&&r[6]?`+${r[6]}`:"";return s(`${i}.${l}.${c}${u}${p}`,t)};e.exports=i},40909:(e,t,r)=>{const n=r(31527);const s=(e,t,r)=>{const s=new n(e,r);const o=new n(t,r);return s.compare(o)||s.compareBuild(o)};e.exports=s},11763:(e,t,r)=>{const n=r(50560);const s=(e,t)=>n(e,t,true);e.exports=s},50560:(e,t,r)=>{const n=r(31527);const s=(e,t,r)=>new n(e,r).compare(new n(t,r));e.exports=s},51832:(e,t,r)=>{const n=r(30144);const s=(e,t)=>{const r=n(e,null,true);const s=n(t,null,true);const o=r.compare(s);if(o===0){return null}const a=o>0;const i=a?r:s;const l=a?s:r;const c=!!i.prerelease.length;const u=!!l.prerelease.length;if(u&&!c){if(!l.patch&&!l.minor){return"major"}if(i.patch){return"patch"}if(i.minor){return"minor"}return"major"}const p=c?"pre":"";if(r.major!==s.major){return p+"major"}if(r.minor!==s.minor){return p+"minor"}if(r.patch!==s.patch){return p+"patch"}return"prerelease"};e.exports=s},94641:(e,t,r)=>{const n=r(50560);const s=(e,t,r)=>n(e,t,r)===0;e.exports=s},35580:(e,t,r)=>{const n=r(50560);const s=(e,t,r)=>n(e,t,r)>0;e.exports=s},54089:(e,t,r)=>{const n=r(50560);const s=(e,t,r)=>n(e,t,r)>=0;e.exports=s},93007:(e,t,r)=>{const n=r(31527);const s=(e,t,r,s,o)=>{if(typeof r==="string"){o=s;s=r;r=undefined}try{return new n(e instanceof n?e.version:e,r).inc(t,s,o).version}catch(a){return null}};e.exports=s},7059:(e,t,r)=>{const n=r(50560);const s=(e,t,r)=>n(e,t,r)<0;e.exports=s},25200:(e,t,r)=>{const n=r(50560);const s=(e,t,r)=>n(e,t,r)<=0;e.exports=s},32938:(e,t,r)=>{const n=r(31527);const s=(e,t)=>new n(e,t).major;e.exports=s},46254:(e,t,r)=>{const n=r(31527);const s=(e,t)=>new n(e,t).minor;e.exports=s},13999:(e,t,r)=>{const n=r(50560);const s=(e,t,r)=>n(e,t,r)!==0;e.exports=s},30144:(e,t,r)=>{const n=r(31527);const s=(e,t,r=false)=>{if(e instanceof n){return e}try{return new n(e,t)}catch(s){if(!r){return null}throw s}};e.exports=s},24493:(e,t,r)=>{const n=r(31527);const s=(e,t)=>new n(e,t).patch;e.exports=s},31729:(e,t,r)=>{const n=r(30144);const s=(e,t)=>{const r=n(e,t);return r&&r.prerelease.length?r.prerelease:null};e.exports=s},9970:(e,t,r)=>{const n=r(50560);const s=(e,t,r)=>n(t,e,r);e.exports=s},74277:(e,t,r)=>{const n=r(40909);const s=(e,t)=>e.sort(((e,r)=>n(r,e,t)));e.exports=s},97638:(e,t,r)=>{const n=r(78311);const s=(e,t,r)=>{try{t=new n(t,r)}catch(s){return false}return t.test(e)};e.exports=s},43927:(e,t,r)=>{const n=r(40909);const s=(e,t)=>e.sort(((e,r)=>n(e,r,t)));e.exports=s},56953:(e,t,r)=>{const n=r(30144);const s=(e,t)=>{const r=n(e,t);return r?r.version:null};e.exports=s},99589:(e,t,r)=>{const n=r(99718);const s=r(16874);const o=r(31527);const a=r(61123);const i=r(30144);const l=r(56953);const c=r(57414);const u=r(93007);const p=r(51832);const f=r(32938);const h=r(46254);const E=r(24493);const m=r(31729);const d=r(50560);const g=r(9970);const v=r(11763);const L=r(40909);const R=r(43927);const $=r(74277);const N=r(35580);const I=r(7059);const b=r(94641);const O=r(13999);const y=r(54089);const T=r(25200);const P=r(72111);const w=r(46170);const C=r(93904);const A=r(78311);const S=r(97638);const x=r(77631);const k=r(19628);const j=r(270);const D=r(41261);const _=r(13874);const G=r(97075);const M=r(75571);const F=r(5342);const U=r(76780);const X=r(72525);const B=r(75032);e.exports={parse:i,valid:l,clean:c,inc:u,diff:p,major:f,minor:h,patch:E,prerelease:m,compare:d,rcompare:g,compareLoose:v,compareBuild:L,sort:R,rsort:$,gt:N,lt:I,eq:b,neq:O,gte:y,lte:T,cmp:P,coerce:w,Comparator:C,Range:A,satisfies:S,toComparators:x,maxSatisfying:k,minSatisfying:j,minVersion:D,validRange:_,outside:G,gtr:M,ltr:F,intersects:U,simplifyRange:X,subset:B,SemVer:o,re:n.re,src:n.src,tokens:n.t,SEMVER_SPEC_VERSION:s.SEMVER_SPEC_VERSION,RELEASE_TYPES:s.RELEASE_TYPES,compareIdentifiers:a.compareIdentifiers,rcompareIdentifiers:a.rcompareIdentifiers}},16874:e=>{const t="2.0.0";const r=256;const n=Number.MAX_SAFE_INTEGER||9007199254740991;const s=16;const o=r-6;const a=["major","premajor","minor","preminor","patch","prepatch","prerelease"];e.exports={MAX_LENGTH:r,MAX_SAFE_COMPONENT_LENGTH:s,MAX_SAFE_BUILD_LENGTH:o,MAX_SAFE_INTEGER:n,RELEASE_TYPES:a,SEMVER_SPEC_VERSION:t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}},57272:(e,t,r)=>{var n=r(65606);const s=typeof n==="object"&&n.env&&n.env.NODE_DEBUG&&/\bsemver\b/i.test(n.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=s},61123:e=>{const t=/^[0-9]+$/;const r=(e,r)=>{const n=t.test(e);const s=t.test(r);if(n&&s){e=+e;r=+r}return e===r?0:n&&!s?-1:s&&!n?1:er(t,e);e.exports={compareIdentifiers:r,rcompareIdentifiers:n}},68794:e=>{class t{constructor(){this.max=1e3;this.map=new Map}get(e){const t=this.map.get(e);if(t===undefined){return undefined}else{this.map.delete(e);this.map.set(e,t);return t}}delete(e){return this.map.delete(e)}set(e,t){const r=this.delete(e);if(!r&&t!==undefined){if(this.map.size>=this.max){const e=this.map.keys().next().value;this.delete(e)}this.map.set(e,t)}return this}}e.exports=t},98587:e=>{const t=Object.freeze({loose:true});const r=Object.freeze({});const n=e=>{if(!e){return r}if(typeof e!=="object"){return t}return e};e.exports=n},99718:(e,t,r)=>{const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:s,MAX_LENGTH:o}=r(16874);const a=r(57272);t=e.exports={};const i=t.re=[];const l=t.safeRe=[];const c=t.src=[];const u=t.t={};let p=0;const f="[a-zA-Z0-9-]";const h=[["\\s",1],["\\d",o],[f,s]];const E=e=>{for(const[t,r]of h){e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`)}return e};const m=(e,t,r)=>{const n=E(t);const s=p++;a(e,s,t);u[e]=s;c[s]=t;i[s]=new RegExp(t,r?"g":undefined);l[s]=new RegExp(n,r?"g":undefined)};m("NUMERICIDENTIFIER","0|[1-9]\\d*");m("NUMERICIDENTIFIERLOOSE","\\d+");m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${f}*`);m("MAINVERSION",`(${c[u.NUMERICIDENTIFIER]})\\.`+`(${c[u.NUMERICIDENTIFIER]})\\.`+`(${c[u.NUMERICIDENTIFIER]})`);m("MAINVERSIONLOOSE",`(${c[u.NUMERICIDENTIFIERLOOSE]})\\.`+`(${c[u.NUMERICIDENTIFIERLOOSE]})\\.`+`(${c[u.NUMERICIDENTIFIERLOOSE]})`);m("PRERELEASEIDENTIFIER",`(?:${c[u.NUMERICIDENTIFIER]}|${c[u.NONNUMERICIDENTIFIER]})`);m("PRERELEASEIDENTIFIERLOOSE",`(?:${c[u.NUMERICIDENTIFIERLOOSE]}|${c[u.NONNUMERICIDENTIFIER]})`);m("PRERELEASE",`(?:-(${c[u.PRERELEASEIDENTIFIER]}(?:\\.${c[u.PRERELEASEIDENTIFIER]})*))`);m("PRERELEASELOOSE",`(?:-?(${c[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[u.PRERELEASEIDENTIFIERLOOSE]})*))`);m("BUILDIDENTIFIER",`${f}+`);m("BUILD",`(?:\\+(${c[u.BUILDIDENTIFIER]}(?:\\.${c[u.BUILDIDENTIFIER]})*))`);m("FULLPLAIN",`v?${c[u.MAINVERSION]}${c[u.PRERELEASE]}?${c[u.BUILD]}?`);m("FULL",`^${c[u.FULLPLAIN]}$`);m("LOOSEPLAIN",`[v=\\s]*${c[u.MAINVERSIONLOOSE]}${c[u.PRERELEASELOOSE]}?${c[u.BUILD]}?`);m("LOOSE",`^${c[u.LOOSEPLAIN]}$`);m("GTLT","((?:<|>)?=?)");m("XRANGEIDENTIFIERLOOSE",`${c[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);m("XRANGEIDENTIFIER",`${c[u.NUMERICIDENTIFIER]}|x|X|\\*`);m("XRANGEPLAIN",`[v=\\s]*(${c[u.XRANGEIDENTIFIER]})`+`(?:\\.(${c[u.XRANGEIDENTIFIER]})`+`(?:\\.(${c[u.XRANGEIDENTIFIER]})`+`(?:${c[u.PRERELEASE]})?${c[u.BUILD]}?`+`)?)?`);m("XRANGEPLAINLOOSE",`[v=\\s]*(${c[u.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${c[u.XRANGEIDENTIFIERLOOSE]})`+`(?:${c[u.PRERELEASELOOSE]})?${c[u.BUILD]}?`+`)?)?`);m("XRANGE",`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAIN]}$`);m("XRANGELOOSE",`^${c[u.GTLT]}\\s*${c[u.XRANGEPLAINLOOSE]}$`);m("COERCEPLAIN",`${"(^|[^\\d])"+"(\\d{1,"}${n}})`+`(?:\\.(\\d{1,${n}}))?`+`(?:\\.(\\d{1,${n}}))?`);m("COERCE",`${c[u.COERCEPLAIN]}(?:$|[^\\d])`);m("COERCEFULL",c[u.COERCEPLAIN]+`(?:${c[u.PRERELEASE]})?`+`(?:${c[u.BUILD]})?`+`(?:$|[^\\d])`);m("COERCERTL",c[u.COERCE],true);m("COERCERTLFULL",c[u.COERCEFULL],true);m("LONETILDE","(?:~>?)");m("TILDETRIM",`(\\s*)${c[u.LONETILDE]}\\s+`,true);t.tildeTrimReplace="$1~";m("TILDE",`^${c[u.LONETILDE]}${c[u.XRANGEPLAIN]}$`);m("TILDELOOSE",`^${c[u.LONETILDE]}${c[u.XRANGEPLAINLOOSE]}$`);m("LONECARET","(?:\\^)");m("CARETTRIM",`(\\s*)${c[u.LONECARET]}\\s+`,true);t.caretTrimReplace="$1^";m("CARET",`^${c[u.LONECARET]}${c[u.XRANGEPLAIN]}$`);m("CARETLOOSE",`^${c[u.LONECARET]}${c[u.XRANGEPLAINLOOSE]}$`);m("COMPARATORLOOSE",`^${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]})$|^$`);m("COMPARATOR",`^${c[u.GTLT]}\\s*(${c[u.FULLPLAIN]})$|^$`);m("COMPARATORTRIM",`(\\s*)${c[u.GTLT]}\\s*(${c[u.LOOSEPLAIN]}|${c[u.XRANGEPLAIN]})`,true);t.comparatorTrimReplace="$1$2$3";m("HYPHENRANGE",`^\\s*(${c[u.XRANGEPLAIN]})`+`\\s+-\\s+`+`(${c[u.XRANGEPLAIN]})`+`\\s*$`);m("HYPHENRANGELOOSE",`^\\s*(${c[u.XRANGEPLAINLOOSE]})`+`\\s+-\\s+`+`(${c[u.XRANGEPLAINLOOSE]})`+`\\s*$`);m("STAR","(<|>)?=?\\s*\\*");m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")},75571:(e,t,r)=>{const n=r(97075);const s=(e,t,r)=>n(e,t,">",r);e.exports=s},76780:(e,t,r)=>{const n=r(78311);const s=(e,t,r)=>{e=new n(e,r);t=new n(t,r);return e.intersects(t,r)};e.exports=s},5342:(e,t,r)=>{const n=r(97075);const s=(e,t,r)=>n(e,t,"<",r);e.exports=s},19628:(e,t,r)=>{const n=r(31527);const s=r(78311);const o=(e,t,r)=>{let o=null;let a=null;let i=null;try{i=new s(t,r)}catch(l){return null}e.forEach((e=>{if(i.test(e)){if(!o||a.compare(e)===-1){o=e;a=new n(o,r)}}}));return o};e.exports=o},270:(e,t,r)=>{const n=r(31527);const s=r(78311);const o=(e,t,r)=>{let o=null;let a=null;let i=null;try{i=new s(t,r)}catch(l){return null}e.forEach((e=>{if(i.test(e)){if(!o||a.compare(e)===1){o=e;a=new n(o,r)}}}));return o};e.exports=o},41261:(e,t,r)=>{const n=r(31527);const s=r(78311);const o=r(35580);const a=(e,t)=>{e=new s(e,t);let r=new n("0.0.0");if(e.test(r)){return r}r=new n("0.0.0-0");if(e.test(r)){return r}r=null;for(let s=0;s{const t=new n(e.semver.version);switch(e.operator){case">":if(t.prerelease.length===0){t.patch++}else{t.prerelease.push(0)}t.raw=t.format();case"":case">=":if(!a||o(t,a)){a=t}break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}}));if(a&&(!r||o(r,a))){r=a}}if(r&&e.test(r)){return r}return null};e.exports=a},97075:(e,t,r)=>{const n=r(31527);const s=r(93904);const{ANY:o}=s;const a=r(78311);const i=r(97638);const l=r(35580);const c=r(7059);const u=r(25200);const p=r(54089);const f=(e,t,r,f)=>{e=new n(e,f);t=new a(t,f);let h,E,m,d,g;switch(r){case">":h=l;E=u;m=c;d=">";g=">=";break;case"<":h=c;E=p;m=l;d="<";g="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(i(e,t,f)){return false}for(let n=0;n{if(e.semver===o){e=new s(">=0.0.0")}a=a||e;i=i||e;if(h(e.semver,a.semver,f)){a=e}else if(m(e.semver,i.semver,f)){i=e}}));if(a.operator===d||a.operator===g){return false}if((!i.operator||i.operator===d)&&E(e,i.semver)){return false}else if(i.operator===g&&m(e,i.semver)){return false}}return true};e.exports=f},72525:(e,t,r)=>{const n=r(97638);const s=r(50560);e.exports=(e,t,r)=>{const o=[];let a=null;let i=null;const l=e.sort(((e,t)=>s(e,t,r)));for(const s of l){const e=n(s,t,r);if(e){i=s;if(!a){a=s}}else{if(i){o.push([a,i])}i=null;a=null}}if(a){o.push([a,null])}const c=[];for(const[n,s]of o){if(n===s){c.push(n)}else if(!s&&n===l[0]){c.push("*")}else if(!s){c.push(`>=${n}`)}else if(n===l[0]){c.push(`<=${s}`)}else{c.push(`${n} - ${s}`)}}const u=c.join(" || ");const p=typeof t.raw==="string"?t.raw:String(t);return u.length{const n=r(78311);const s=r(93904);const{ANY:o}=s;const a=r(97638);const i=r(50560);const l=(e,t,r={})=>{if(e===t){return true}e=new n(e,r);t=new n(t,r);let s=false;e:for(const n of e.set){for(const e of t.set){const t=p(n,e,r);s=s||t!==null;if(t){continue e}}if(s){return false}}return true};const c=[new s(">=0.0.0-0")];const u=[new s(">=0.0.0")];const p=(e,t,r)=>{if(e===t){return true}if(e.length===1&&e[0].semver===o){if(t.length===1&&t[0].semver===o){return true}else if(r.includePrerelease){e=c}else{e=u}}if(t.length===1&&t[0].semver===o){if(r.includePrerelease){return true}else{t=u}}const n=new Set;let s,l;for(const o of e){if(o.operator===">"||o.operator===">="){s=f(s,o,r)}else if(o.operator==="<"||o.operator==="<="){l=h(l,o,r)}else{n.add(o.semver)}}if(n.size>1){return null}let p;if(s&&l){p=i(s.semver,l.semver,r);if(p>0){return null}else if(p===0&&(s.operator!==">="||l.operator!=="<=")){return null}}for(const o of n){if(s&&!a(o,String(s),r)){return null}if(l&&!a(o,String(l),r)){return null}for(const e of t){if(!a(o,String(e),r)){return false}}return true}let E,m;let d,g;let v=l&&!r.includePrerelease&&l.semver.prerelease.length?l.semver:false;let L=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:false;if(v&&v.prerelease.length===1&&l.operator==="<"&&v.prerelease[0]===0){v=false}for(const o of t){g=g||o.operator===">"||o.operator===">=";d=d||o.operator==="<"||o.operator==="<=";if(s){if(L){if(o.semver.prerelease&&o.semver.prerelease.length&&o.semver.major===L.major&&o.semver.minor===L.minor&&o.semver.patch===L.patch){L=false}}if(o.operator===">"||o.operator===">="){E=f(s,o,r);if(E===o&&E!==s){return false}}else if(s.operator===">="&&!a(s.semver,String(o),r)){return false}}if(l){if(v){if(o.semver.prerelease&&o.semver.prerelease.length&&o.semver.major===v.major&&o.semver.minor===v.minor&&o.semver.patch===v.patch){v=false}}if(o.operator==="<"||o.operator==="<="){m=h(l,o,r);if(m===o&&m!==l){return false}}else if(l.operator==="<="&&!a(l.semver,String(o),r)){return false}}if(!o.operator&&(l||s)&&p!==0){return false}}if(s&&d&&!l&&p!==0){return false}if(l&&g&&!s&&p!==0){return false}if(L||v){return false}return true};const f=(e,t,r)=>{if(!e){return t}const n=i(e.semver,t.semver,r);return n>0?e:n<0?t:t.operator===">"&&e.operator===">="?t:e};const h=(e,t,r)=>{if(!e){return t}const n=i(e.semver,t.semver,r);return n<0?e:n>0?t:t.operator==="<"&&e.operator==="<="?t:e};e.exports=l},77631:(e,t,r)=>{const n=r(78311);const s=(e,t)=>new n(e,t).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")));e.exports=s},13874:(e,t,r)=>{const n=r(78311);const s=(e,t)=>{try{return new n(e,t).range||"*"}catch(r){return null}};e.exports=s}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8779.6eebdb56785e3d38a457.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8779.6eebdb56785e3d38a457.js deleted file mode 100644 index 62ac72404fc0a15087ee3b69abeb69fd97a57382..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8779.6eebdb56785e3d38a457.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8779],{88779:(O,Q,P)=>{P.r(Q);P.d(Q,{java:()=>t,javaLanguage:()=>X});var $=P(27421);var a=P(45145);const i=(0,a.styleTags)({null:a.tags.null,instanceof:a.tags.operatorKeyword,this:a.tags.self,"new super assert open to with void":a.tags.keyword,"class interface extends implements enum var":a.tags.definitionKeyword,"module package import":a.tags.moduleKeyword,"switch while for if else case default do break continue return try catch finally throw":a.tags.controlKeyword,["requires exports opens uses provides public private protected static transitive abstract final "+"strictfp synchronized native transient volatile throws"]:a.tags.modifier,IntegerLiteral:a.tags.integer,FloatingPointLiteral:a.tags.float,"StringLiteral TextBlock":a.tags.string,CharacterLiteral:a.tags.character,LineComment:a.tags.lineComment,BlockComment:a.tags.blockComment,BooleanLiteral:a.tags.bool,PrimitiveType:a.tags.standard(a.tags.typeName),TypeName:a.tags.typeName,Identifier:a.tags.variableName,"MethodName/Identifier":a.tags.function(a.tags.variableName),Definition:a.tags.definition(a.tags.variableName),ArithOp:a.tags.arithmeticOperator,LogicOp:a.tags.logicOperator,BitOp:a.tags.bitwiseOperator,CompareOp:a.tags.compareOperator,AssignOp:a.tags.definitionOperator,UpdateOp:a.tags.updateOperator,Asterisk:a.tags.punctuation,Label:a.tags.labelName,"( )":a.tags.paren,"[ ]":a.tags.squareBracket,"{ }":a.tags.brace,".":a.tags.derefOperator,", ;":a.tags.separator});const r={__proto__:null,true:34,false:34,null:42,void:46,byte:48,short:48,int:48,long:48,char:48,float:48,double:48,boolean:48,extends:62,super:64,class:76,this:78,new:84,public:100,protected:102,private:104,abstract:106,static:108,final:110,strictfp:112,default:114,synchronized:116,native:118,transient:120,volatile:122,throws:150,implements:160,interface:166,enum:176,instanceof:236,open:265,module:267,requires:272,transitive:274,exports:276,to:278,opens:280,uses:282,provides:284,with:286,package:290,import:294,if:306,else:308,while:312,for:316,var:323,assert:330,switch:334,case:340,do:344,break:348,continue:352,return:356,throw:362,try:366,catch:370,finally:378};const e=$.U1.deserialize({version:14,states:"#!hQ]QPOOO&tQQO'#H[O(xQQO'#CbOOQO'#Cb'#CbO)PQPO'#CaO)XOSO'#CpOOQO'#Ha'#HaOOQO'#Cu'#CuO*tQPO'#D_O+_QQO'#HkOOQO'#Hk'#HkO-sQQO'#HfO-zQQO'#HfOOQO'#Hf'#HfOOQO'#He'#HeO0OQPO'#DUO0]QPO'#GlO3TQPO'#D_O3[QPO'#DzO)PQPO'#E[O3}QPO'#E[OOQO'#DV'#DVO5]QQO'#H_O7dQQO'#EeO7kQPO'#EdO7pQPO'#EfOOQO'#H`'#H`O5sQQO'#H`O8sQQO'#FgO8zQPO'#EwO9PQPO'#E|O9PQPO'#FOOOQO'#H_'#H_OOQO'#HW'#HWOOQO'#Gf'#GfOOQO'#HV'#HVO:aQPO'#FhOOQO'#HU'#HUOOQO'#Ge'#GeQ]QPOOOOQO'#Hq'#HqO:fQPO'#HqO:kQPO'#D{O:kQPO'#EVO:kQPO'#EQO:sQPO'#HnO;UQQO'#EfO)PQPO'#C`O;^QPO'#C`O)PQPO'#FbO;cQPO'#FdO;nQPO'#FjO;nQPO'#FmO:kQPO'#FrO;sQPO'#FoO9PQPO'#FvO;nQPO'#FxO]QPO'#F}O;xQPO'#GPOyOSO,59[OOQO,59[,59[OOQO'#Hg'#HgO?jQPO,59eO@lQPO,59yOOQO-E:d-E:dO)PQPO,58zOA`QPO,58zO)PQPO,5;|OAeQPO'#DQOAjQPO'#DQOOQO'#Gi'#GiOBjQQO,59jOOQO'#Dm'#DmODRQPO'#HsOD]QPO'#DlODkQPO'#HrODsQPO,5<^ODxQPO,59^OEcQPO'#CxOOQO,59c,59cOEjQPO,59bOGrQQO'#H[OJVQQO'#CbOJmQPO'#D_OKrQQO'#HkOLSQQO,59pOLZQPO'#DvOLiQPO'#HzOLqQPO,5:`OLvQPO,5:`OM^QPO,5;mOMiQPO'#IROMtQPO,5;dOMyQPO,5=WOOQO-E:j-E:jOOQO,5:f,5:fO! aQPO,5:fO! hQPO,5:vO! mQPO,5<^O)PQPO,5:vO:kQPO,5:gO:kQPO,5:qO:kQPO,5:lO:kQPO,5<^O!!^QPO,59qO9PQPO,5:}O!!eQPO,5;QO9PQPO,59TO!!sQPO'#DXOOQO,5;O,5;OOOQO'#El'#ElOOQO'#En'#EnO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;eOOQO,5;h,5;hOOQO,5],5>]O!%SQPO,5:gO!%bQPO,5:qO!%jQPO,5:lO!%uQPO,5>YOLZQPO,5>YO! {QPO,59UO!&QQQO,58zO!&YQQO,5;|O!&bQQO,5_O!.ZQPO,5:WO:kQPO'#GnO!.bQPO,5>^OOQO1G1x1G1xOOQO1G.x1G.xO!.{QPO'#CyO!/kQPO'#HkO!/uQPO'#CzO!0TQPO'#HjO!0]QPO,59dOOQO1G.|1G.|OEjQPO1G.|O!0sQPO,59eO!1QQQO'#H[O!1cQQO'#CbOOQO,5:b,5:bO:kQPO,5:cOOQO,5:a,5:aO!1tQQO,5:aOOQO1G/[1G/[O!1yQPO,5:bO!2[QPO'#GqO!2oQPO,5>fOOQO1G/z1G/zO!2wQPO'#DvO!3YQPO'#D_O!3aQPO1G/zO!!zQPO'#GoO!3fQPO1G1XO9PQPO1G1XO:kQPO'#GwO!3nQPO,5>mOOQO1G1O1G1OOOQO1G0Q1G0QO!3vQPO'#E]OOQO1G0b1G0bO!4gQPO1G1xO! hQPO1G0bO!%SQPO1G0RO!%bQPO1G0]O!%jQPO1G0WOOQO1G/]1G/]O!4lQQO1G.pO7kQPO1G0jO)PQPO1G0jO:sQPO'#HnO!6`QQO1G.pOOQO1G.p1G.pO!6eQQO1G0iOOQO1G0l1G0lO!6lQPO1G0lO!6wQQO1G.oO!7_QQO'#HoO!7lQPO,59sO!8{QQO1G0pO!:dQQO1G0pO!;rQQO1G0pO!UOOQO1G/O1G/OOOQO7+$h7+$hOOQO1G/{1G/{O#1TQQO1G/{OOQO1G/}1G/}O#1YQPO1G/{OOQO1G/|1G/|O:kQPO1G/}OOQO,5=],5=]OOQO-E:o-E:oOOQO7+%f7+%fOOQO,5=Z,5=ZOOQO-E:m-E:mO9PQPO7+&sOOQO7+&s7+&sOOQO,5=c,5=cOOQO-E:u-E:uO#1_QPO'#EUO#1mQPO'#EUOOQO'#Gu'#GuO#2UQPO,5:wOOQO,5:w,5:wOOQO7+'d7+'dOOQO7+%|7+%|OOQO7+%m7+%mO!AYQPO7+%mO!A_QPO7+%mO!AgQPO7+%mOOQO7+%w7+%wO!BVQPO7+%wOOQO7+%r7+%rO!CUQPO7+%rO!CZQPO7+%rOOQO7+&U7+&UOOQO'#Ee'#EeO7kQPO7+&UO7kQPO,5>YO#2uQPO7+$[OOQO7+&T7+&TOOQO7+&W7+&WO9PQPO'#GjO#3TQPO,5>ZOOQO1G/_1G/_O9PQPO7+&kO#3`QQO,59eO#4cQPO'#DrO! pQPO'#DrO#4nQPO'#HwO#4vQPO,5:]O#5aQQO'#HgO#5|QQO'#CuO! mQPO'#HvO#6lQPO'#DpO#6vQPO'#HvO#7XQPO'#DpO#7aQPO'#IPO#7fQPO'#E`OOQO'#Hp'#HpOOQO'#Gk'#GkO#7nQPO,59vOOQO,59v,59vO#7uQPO'#HqOOQO,5:h,5:hO#9]QPO'#H|OOQO'#EP'#EPOOQO,5:i,5:iO#9hQPO'#EYO:kQPO'#EYO#9yQPO'#H}O#:UQPO,5:sO! mQPO'#HvO!!zQPO'#HvO#:^QPO'#DpOOQO'#Gs'#GsO#:eQPO,5:oOOQO,5:o,5:oOOQO,5:n,5:nOOQO,5;S,5;SO#;_QQO,5;SO#;fQPO,5;SOOQO-E:t-E:tOOQO7+&X7+&XOOQO7+)`7+)`O#;mQQO7+)`OOQO'#Gz'#GzO#=ZQPO,5;rOOQO,5;r,5;rO#=bQPO'#FXO)PQPO'#FXO)PQPO'#FXO)PQPO'#FXO#=pQPO7+'UO#=uQPO7+'UOOQO7+'U7+'UO]QPO7+'[O#>QQPO1G1{O! mQPO1G1{O#>`QQO1G1wO!!sQPO1G1wO#>gQPO1G1wO#>nQQO7+'hOOQO'#G}'#G}O#>uQPO,5|QPO'#HqO9PQPO'#F{O#?UQPO7+'oO#?ZQPO,5=OO! mQPO,5=OO#?`QPO1G2iO#@iQPO1G2iOOQO1G2i1G2iOOQO-E:|-E:|OOQO7+'z7+'zO!2[QPO'#G^OpOOQO1G.n1G.nOOQO<X,5>XOOQO,5=S,5=SOOQO-E:f-E:fO#EjQPO7+%gOOQO7+%g7+%gOOQO7+%i7+%iOOQO<cOOQO1G/w1G/wO#IfQPO'#HsO#ImQPO,59xO#IrQPO,5>bO! mQPO,59xO#I}QPO,5:[O#7fQPO,5:zO! mQPO,5>bO!!zQPO,5>bO#7aQPO,5>kOOQO,5:[,5:[OLvQPO'#DtOOQO,5>k,5>kO#JVQPO'#EaOOQO,5:z,5:zO#MWQPO,5:zO!!zQPO'#DxOOQO-E:i-E:iOOQO1G/b1G/bOOQO,5:y,5:yO!!zQPO'#GrO#M]QPO,5>hOOQO,5:t,5:tO#MhQPO,5:tO#MvQPO,5:tO#NXQPO'#GtO#NoQPO,5>iO#NzQPO'#EZOOQO1G0_1G0_O$ RQPO1G0_O! mQPO,5:pOOQO-E:q-E:qOOQO1G0Z1G0ZOOQO1G0n1G0nO$ WQQO1G0nOOQO<oOOQO1G1Y1G1YO$%uQPO'#FTOOQO,5=e,5=eOOQO-E:w-E:wO$%zQPO'#GmO$&XQPO,5>aOOQO1G/u1G/uOOQO<sAN>sO!AYQPOAN>sOOQOAN>xAN>xOOQOAN?[AN?[O7kQPOAN?[O$&pQPO,5:_OOQO1G/x1G/xOOQO,5=[,5=[OOQO-E:n-E:nO$&{QPO,5>eOOQO1G/d1G/dOOQO1G3|1G3|O$'^QPO1G/dOOQO1G/v1G/vOOQO1G0f1G0fO#MWQPO1G0fO#7aQPO'#HyO$'cQPO1G3|O! mQPO1G3|OOQO1G4V1G4VOK^QPO'#DvOJmQPO'#D_OOQO,5:{,5:{O$'nQPO,5:{O$'nQPO,5:{O$'uQQO'#H_O$'|QQO'#H`O$(WQQO'#EbO$(cQPO'#EbOOQO,5:d,5:dOOQO,5=^,5=^OOQO-E:p-E:pOOQO1G0`1G0`O$(kQPO1G0`OOQO,5=`,5=`OOQO-E:r-E:rO$(yQPO,5:uOOQO7+%y7+%yOOQO7+&Y7+&YOOQO1G1_1G1_O$)QQQO1G1_OOQO-E:y-E:yO$)YQQO'#IWO$)TQPO1G1_O$ mQPO1G1_O)PQPO1G1_OOQOAN@[AN@[O$)eQQO<rO$,cQPO7+&yO$,hQQO'#IXOOQOAN@mAN@mO$,sQQOAN@mOOQOAN@iAN@iO$,zQPOAN@iO$-PQQO<sOOQOG26XG26XOOQOG26TG26TOOQO<bPPP>hP@|PPPAv2vPCoPPDjPEaEgPPPPPPPPPPPPFpGXPJ_JgJqKZKaKgMVMZMZMcPMrNx! k! uP!![NxP!!b!!l!!{!#TP!#r!#|!$SNx!$V!$]EaEa!$a!$k!$n2v!&Y2v2v!(RP.^P!(VP!(vPPPPPP.^P.^!)d.^PP.^P.^PP.^!*x!+SPP!+Y!+cPPPPPPPP&}P&}PP!+g!+g!+z!+gPP!+gP!+gP!,e!,hP!+g!-O!+gP!+gP!-R!-UP!+gP!+gP!+gP!+gP!+g!+gP!+gP!-YP!-`!-c!-iP!+g!-u!-x!.Q!.d!2a!2g!2m!3s!3y!4T!5X!5_!5e!5o!5u!5{!6R!6X!6_!6e!6k!6q!6w!6}!7T!7Z!7e!7k!7u!7{PPP!8R!+g!8vP!a!]!^!?q!^!_!@_!_!`!Ax!`!a!Bl!a!b!DY!b!c!Dx!c!}!Kt!}#O!MQ#O#P%Q#P#Q!Mn#Q#R!N[#R#S4e#S#T%Q#T#o4e#o#p# O#p#q# l#q#r##U#r#s##r#s#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%QS%VV&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS%qO&WSS%tVOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZS&^VOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS&vP;=`<%l%QS&|UOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZS'cP;=`<%l&Z_'mk&WS%wZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qs#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%Q_)iY&WS%wZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XZ*^Y%wZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XV+TX#sP&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QU+wV#_Q&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT,aXOY,|YZ%lZr,|rs3Ys#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T-PXOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT-qX&WSOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT.cVcPOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZT.}V&WSOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT/iW&WSOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0UWOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0sOcPP0vTOY0RYZ0RZ;'S0R;'S;=`1V<%lO0RP1YP;=`<%l0RT1`XOY,|YZ%lZr,|rs1{s#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T2QUcPOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZT2gVOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT3PP;=`<%l-lT3VP;=`<%l,|T3_VcPOY&ZYZ%lZr&Zrs3ts;'S&Z;'S;=`'`<%lO&ZT3yR&USXY4SYZ4`pq4SP4VRXY4SYZ4`pq4SP4eO&VP_4la%}Z&WSOY%QYZ%lZr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o;'S%Q;'S;=`&s<%lO%QU5xX#gQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QU6lV#]Q&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV7YZ&lR&WSOY%QYZ%lZr%Qrs%qsv%Qvw7{w!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QU8SV#aQ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT8nZ&WSOY9aYZ%lZr9ars:Xsw9awx%Qx#O9a#O#Pt<%lO9aT9fZ&WSOY9aYZ%lZr9ars:Xsw9awx;sx#O9a#O#Pt<%lO9aT:[ZOY:}YZ%lZr:}rs>zsw:}wx?px#O:}#O#P@[#P;'S:};'S;=`@t<%lO:}T;QZOY9aYZ%lZr9ars:Xsw9awx;sx#O9a#O#Pt<%lO9aT;zVbP&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTt<%lO9aT=QW&WSOY=jZw=jwx>Vx#O=j#O#P>[#P;'S=j;'S;=`>n<%lO=jP=mWOY=jZw=jwx>Vx#O=j#O#P>[#P;'S=j;'S;=`>n<%lO=jP>[ObPP>_TOY=jYZ=jZ;'S=j;'S;=`>n<%lO=jP>qP;=`<%l=jT>wP;=`<%l9aT>}ZOY:}YZ%lZr:}rs=jsw:}wx?px#O:}#O#P@[#P;'S:};'S;=`@t<%lO:}T?uVbPOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT@_VOY9aYZ<{Zr9ars:Xs;'S9a;'S;=`>t<%lO9aT@wP;=`<%l:}_ARVZZ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVAoVYR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVB_X$YP&WS#fQOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QVCRZ#eR&WSOY%QYZ%lZr%Qrs%qs{%Q{|Ct|!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QVC{V#qR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVDiVqR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVEV[#eR&WSOY%QYZ%lZr%Qrs%qs}%Q}!OCt!O!_%Q!_!`6e!`!aE{!a;'S%Q;'S;=`&s<%lO%QVFSV&vR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_FpZWY&WSOY%QYZ%lZr%Qrs%qs!O%Q!O!PGc!P!Q%Q!Q![Hq![;'S%Q;'S;=`&s<%lO%QVGhX&WSOY%QYZ%lZr%Qrs%qs!O%Q!O!PHT!P;'S%Q;'S;=`&s<%lO%QVH[V&oR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTHxc&WS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hq![!f%Q!f!gJT!g!hJq!h!iJT!i#R%Q#R#SNk#S#W%Q#W#XJT#X#YJq#Y#ZJT#Z;'S%Q;'S;=`&s<%lO%QTJ[V&WS`POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTJv]&WSOY%QYZ%lZr%Qrs%qs{%Q{|Ko|}%Q}!OKo!O!Q%Q!Q![La![;'S%Q;'S;=`&s<%lO%QTKtX&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![La![;'S%Q;'S;=`&s<%lO%QTLhc&WS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![La![!f%Q!f!gJT!g!h%Q!h!iJT!i#R%Q#R#SMs#S#W%Q#W#XJT#X#Y%Q#Y#ZJT#Z;'S%Q;'S;=`&s<%lO%QTMxZ&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![La![#R%Q#R#SMs#S;'S%Q;'S;=`&s<%lO%QTNpZ&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hq![#R%Q#R#SNk#S;'S%Q;'S;=`&s<%lO%Q_! j]&WS#fQOY%QYZ%lZr%Qrs%qsz%Qz{!!c{!P%Q!P!Q!)U!Q!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%Q_!!hX&WSOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{;'S!!c;'S;=`!'d<%lO!!c_!#YT&WSOz!#iz{!#{{;'S!#i;'S;=`!$j<%lO!#iZ!#lTOz!#iz{!#{{;'S!#i;'S;=`!$j<%lO!#iZ!$OVOz!#iz{!#{{!P!#i!P!Q!$e!Q;'S!#i;'S;=`!$j<%lO!#iZ!$jOQZZ!$mP;=`<%l!#i_!$sXOY!%`YZ!#TZr!%`rs!'jsz!%`z{!(Y{;'S!%`;'S;=`!)O<%lO!%`_!%cXOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{;'S!!c;'S;=`!'d<%lO!!c_!&TZ&WSOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{!P!!c!P!Q!&v!Q;'S!!c;'S;=`!'d<%lO!!c_!&}V&WSQZOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!'gP;=`<%l!!c_!'mXOY!%`YZ!#TZr!%`rs!#isz!%`z{!(Y{;'S!%`;'S;=`!)O<%lO!%`_!(]ZOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{!P!!c!P!Q!&v!Q;'S!!c;'S;=`!'d<%lO!!c_!)RP;=`<%l!%`_!)]V&WSPZOY!)UYZ%lZr!)Urs!)rs;'S!)U;'S;=`!*x<%lO!)U_!)wVPZOY!*^YZ%lZr!*^rs!+Os;'S!*^;'S;=`!,R<%lO!*^_!*cVPZOY!)UYZ%lZr!)Urs!)rs;'S!)U;'S;=`!*x<%lO!)U_!*{P;=`<%l!)U_!+TVPZOY!*^YZ%lZr!*^rs!+js;'S!*^;'S;=`!,R<%lO!*^Z!+oSPZOY!+jZ;'S!+j;'S;=`!+{<%lO!+jZ!,OP;=`<%l!+j_!,UP;=`<%l!*^T!,`u&WS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!.s!P!Q%Q!Q![!0P![!d%Q!d!e!3Z!e!f%Q!f!gJT!g!hJq!h!iJT!i!n%Q!n!o!1u!o!q%Q!q!r!5X!r!z%Q!z!{!7P!{#R%Q#R#S!2c#S#U%Q#U#V!3Z#V#W%Q#W#XJT#X#YJq#Y#ZJT#Z#`%Q#`#a!1u#a#c%Q#c#d!5X#d#l%Q#l#m!7P#m;'S%Q;'S;=`&s<%lO%QT!.za&WS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hq![!f%Q!f!gJT!g!hJq!h!iJT!i#W%Q#W#XJT#X#YJq#Y#ZJT#Z;'S%Q;'S;=`&s<%lO%QT!0Wi&WS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!.s!P!Q%Q!Q![!0P![!f%Q!f!gJT!g!hJq!h!iJT!i!n%Q!n!o!1u!o#R%Q#R#S!2c#S#W%Q#W#XJT#X#YJq#Y#ZJT#Z#`%Q#`#a!1u#a;'S%Q;'S;=`&s<%lO%QT!1|V&WS_POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT!2hZ&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!0P![#R%Q#R#S!2c#S;'S%Q;'S;=`&s<%lO%QT!3`Y&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4O!R!S!4O!S;'S%Q;'S;=`&s<%lO%QT!4V`&WS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4O!R!S!4O!S!n%Q!n!o!1u!o#R%Q#R#S!3Z#S#`%Q#`#a!1u#a;'S%Q;'S;=`&s<%lO%QT!5^X&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!5y!Y;'S%Q;'S;=`&s<%lO%QT!6Q_&WS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!5y!Y!n%Q!n!o!1u!o#R%Q#R#S!5X#S#`%Q#`#a!1u#a;'S%Q;'S;=`&s<%lO%QT!7U_&WSOY%QYZ%lZr%Qrs%qs!O%Q!O!P!8T!P!Q%Q!Q![!:c![!c%Q!c!i!:c!i#T%Q#T#Z!:c#Z;'S%Q;'S;=`&s<%lO%QT!8Y]&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9R![!c%Q!c!i!9R!i#T%Q#T#Z!9R#Z;'S%Q;'S;=`&s<%lO%QT!9Wc&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9R![!c%Q!c!i!9R!i!r%Q!r!sJq!s#R%Q#R#S!8T#S#T%Q#T#Z!9R#Z#d%Q#d#eJq#e;'S%Q;'S;=`&s<%lO%QT!:ji&WS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!hX#oR&WSOY%QYZ%lZr%Qrs%qs![%Q![!]!?T!];'S%Q;'S;=`&s<%lO%QV!?[V&tR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!?xV!PR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!@fY&]Z&WSOY%QYZ%lZr%Qrs%qs!^%Q!^!_!AU!_!`+p!`;'S%Q;'S;=`&s<%lO%QU!A]X#hQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QV!BPX!bR&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QV!BsY&[R&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`!a!Cc!a;'S%Q;'S;=`&s<%lO%QU!CjY#hQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`!a!AU!a;'S%Q;'S;=`&s<%lO%Q_!DcV&`X#nQ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!EPX%{Z&WSOY%QYZ%lZr%Qrs%qs#]%Q#]#^!El#^;'S%Q;'S;=`&s<%lO%QV!EqX&WSOY%QYZ%lZr%Qrs%qs#b%Q#b#c!F^#c;'S%Q;'S;=`&s<%lO%QV!FcX&WSOY%QYZ%lZr%Qrs%qs#h%Q#h#i!GO#i;'S%Q;'S;=`&s<%lO%QV!GTX&WSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!Gp#Y;'S%Q;'S;=`&s<%lO%QV!GuX&WSOY%QYZ%lZr%Qrs%qs#f%Q#f#g!Hb#g;'S%Q;'S;=`&s<%lO%QV!HgX&WSOY%QYZ%lZr%Qrs%qs#Y%Q#Y#Z!IS#Z;'S%Q;'S;=`&s<%lO%QV!IXX&WSOY%QYZ%lZr%Qrs%qs#T%Q#T#U!It#U;'S%Q;'S;=`&s<%lO%QV!IyX&WSOY%QYZ%lZr%Qrs%qs#V%Q#V#W!Jf#W;'S%Q;'S;=`&s<%lO%QV!JkX&WSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!KW#Y;'S%Q;'S;=`&s<%lO%QV!K_V&rR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!K{a&PZ&WSOY%QYZ%lZr%Qrs%qst%Qtu!Ktu!Q%Q!Q![!Kt![!c%Q!c!}!Kt!}#R%Q#R#S!Kt#S#T%Q#T#o!Kt#o;'S%Q;'S;=`&s<%lO%Q_!MXVuZ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!MuVsR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QU!NcX#cQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QV# VV}R&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_# uZ&|X#cQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`#p%Q#p#q#!h#q;'S%Q;'S;=`&s<%lO%QU#!oV#dQ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV##]V|R&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT##yV#tP&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q",tokenizers:[0,1,2,3],topRules:{Program:[0,3]},dynamicPrecedences:{27:1,230:-1,241:-1},specialized:[{term:229,get:O=>r[O]||-1}],tokenPrec:7067});var s=P(4452);const X=s.LRLanguage.define({name:"java",parser:e.configure({props:[s.indentNodeProp.add({IfStatement:(0,s.continuedIndent)({except:/^\s*({|else\b)/}),TryStatement:(0,s.continuedIndent)({except:/^\s*({|catch|finally)\b/}),LabeledStatement:s.flatIndent,SwitchBlock:O=>{let Q=O.textAfter,P=/^\s*\}/.test(Q),$=/^\s*(case|default)\b/.test(Q);return O.baseIndent+(P?0:$?1:2)*O.unit},Block:(0,s.delimitedIndent)({closing:"}"}),BlockComment:()=>null,Statement:(0,s.continuedIndent)({except:/^{/})}),s.foldNodeProp.add({["Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody "+"ConstructorBody InterfaceBody ArrayInitializer"]:s.foldInside,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function t(){return new s.LanguageSupport(X)}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8786.a2bc3dfc1ea13c04ba94.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8786.a2bc3dfc1ea13c04ba94.js deleted file mode 100644 index 995e133cef63f18646e412492a5e674bc71a6275..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8786.a2bc3dfc1ea13c04ba94.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 8786.a2bc3dfc1ea13c04ba94.js.LICENSE.txt */ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8786],{76405:(e,t,r)=>{r.d(t,{A:()=>Up});function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r=e.length?{done:true}:{done:false,value:e[a++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=true,s=false;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=true,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw i}}}}function v(e,t,r){return(t=m(t))in e?Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true}):e[t]=r,e}function f(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function c(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var a,n,i,o,s=[],l=true,u=false;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(a=i.call(r)).done)&&(s.push(a.value),s.length!==t);l=!0);}catch(e){u=true,n=e}finally{try{if(!l&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw n}}return s}}function d(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function p(e,t){return n(e)||c(e,t)||x(e,t)||d()}function g(e){return i(e)||f(e)||x(e)||h()}function y(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(undefined!==r){var a=r.call(e,t);if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function m(e){var t=y(e,"string");return"symbol"==typeof t?t:t+""}function b(e){"@babel/helpers - typeof";return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}function x(e,t){if(e){if("string"==typeof e)return a(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):undefined}}var w=typeof window==="undefined"?null:window;var E=w?w.navigator:null;w?w.document:null;var T=b("");var k=b({});var C=b((function(){}));var P=typeof HTMLElement==="undefined"?"undefined":b(HTMLElement);var S=function e(t){return t&&t.instanceString&&B(t.instanceString)?t.instanceString():null};var D=function e(t){return t!=null&&b(t)==T};var B=function e(t){return t!=null&&b(t)===C};var A=function e(t){return!L(t)&&(Array.isArray?Array.isArray(t):t!=null&&t instanceof Array)};var _=function e(t){return t!=null&&b(t)===k&&!A(t)&&t.constructor===Object};var M=function e(t){return t!=null&&b(t)===k};var I=function e(t){return t!=null&&b(t)===b(1)&&!isNaN(t)};var R=function e(t){return I(t)&&Math.floor(t)===t};var N=function e(t){if("undefined"===P){return undefined}else{return null!=t&&t instanceof HTMLElement}};var L=function e(t){return O(t)||z(t)};var O=function e(t){return S(t)==="collection"&&t._private.single};var z=function e(t){return S(t)==="collection"&&!t._private.single};var F=function e(t){return S(t)==="core"};var V=function e(t){return S(t)==="stylesheet"};var j=function e(t){return S(t)==="event"};var X=function e(t){if(t===undefined||t===null){return true}else if(t===""||t.match(/^\s+$/)){return true}return false};var Y=function e(t){if(typeof HTMLElement==="undefined"){return false}else{return t instanceof HTMLElement}};var q=function e(t){return _(t)&&I(t.x1)&&I(t.x2)&&I(t.y1)&&I(t.y2)};var W=function e(t){return M(t)&&B(t.then)};var U=function e(){return E&&E.userAgent.match(/msie|trident|edge/i)};var G=function e(t,r){if(!r){r=function e(){if(arguments.length===1){return arguments[0]}else if(arguments.length===0){return"undefined"}var t=[];for(var r=0;rr){return 1}else{return 0}};var oe=function e(t,r){return-1*ie(t,r)};var se=Object.assign!=null?Object.assign.bind(Object):function(e){var t=arguments;for(var r=1;r1)r-=1;if(r<1/6)return e+(t-e)*6*r;if(r<1/2)return t;if(r<2/3)return e+(t-e)*(2/3-r)*6;return e}var f=new RegExp("^"+te+"$").exec(t);if(f){a=parseInt(f[1]);if(a<0){a=(360- -1*a%360)%360}else if(a>360){a=a%360}a/=360;n=parseFloat(f[2]);if(n<0||n>100){return}n=n/100;i=parseFloat(f[3]);if(i<0||i>100){return}i=i/100;o=f[4];if(o!==undefined){o=parseFloat(o);if(o<0||o>1){return}}if(n===0){s=l=u=Math.round(i*255)}else{var c=i<.5?i*(1+n):i+n-i*n;var d=2*i-c;s=Math.round(255*v(d,c,a+1/3));l=Math.round(255*v(d,c,a));u=Math.round(255*v(d,c,a-1/3))}r=[s,l,u,o]}return r};var ve=function e(t){var r;var a=new RegExp("^"+J+"$").exec(t);if(a){r=[];var n=[];for(var i=1;i<=3;i++){var o=a[i];if(o[o.length-1]==="%"){n[i]=true}o=parseFloat(o);if(n[i]){o=o/100*255}if(o<0||o>255){return}r.push(Math.floor(o))}var s=n[1]||n[2]||n[3];var l=n[1]&&n[2]&&n[3];if(s&&!l){return}var u=a[4];if(u!==undefined){u=parseFloat(u);if(u<0||u>1){return}r.push(u)}}return r};var fe=function e(t){return de[t.toLowerCase()]};var ce=function e(t){return(A(t)?t:null)||fe(t)||le(t)||ve(t)||ue(t)};var de={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};var he=function e(t){var r=t.map;var a=t.keys;var n=a.length;for(var i=0;i=s||t<0||y&&r>=f}function T(){var e=t();if(E(e)){return k(e)}d=setTimeout(T,w(e))}function k(e){d=undefined;if(m&&u){return b(e)}u=v=undefined;return c}function C(){if(d!==undefined){clearTimeout(d)}p=0;u=h=v=d=undefined}function P(){return d===undefined?c:k(t())}function S(){var e=t(),r=E(e);u=arguments;v=this;h=e;if(r){if(d===undefined){return x(h)}if(y){clearTimeout(d);d=setTimeout(T,s);return b(h)}}if(d===undefined){d=setTimeout(T,s)}return c}S.cancel=C;S.flush=P;return S}at=o;return at}var ot=it();var st=ye(ot);var lt=w?w.performance:null;var ut=lt&<.now?function(){return lt.now()}:function(){return Date.now()};var vt=function(){if(w){if(w.requestAnimationFrame){return function(e){w.requestAnimationFrame(e)}}else if(w.mozRequestAnimationFrame){return function(e){w.mozRequestAnimationFrame(e)}}else if(w.webkitRequestAnimationFrame){return function(e){w.webkitRequestAnimationFrame(e)}}else if(w.msRequestAnimationFrame){return function(e){w.msRequestAnimationFrame(e)}}}return function(e){if(e){setTimeout((function(){e(ut())}),1e3/60)}}}();var ft=function e(t){return vt(t)};var ct=ut;var dt=9261;var ht=65599;var pt=5381;var gt=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:dt;var a=r;var n;for(;;){n=t.next();if(n.done){break}a=a*ht+n.value|0}return a};var yt=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:dt;return r*ht+t|0};var mt=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:pt;return(r<<5)+r+t|0};var bt=function e(t,r){return t*2097152+r};var xt=function e(t){return t[0]*2097152+t[1]};var wt=function e(t,r){return[yt(t[0],r[0]),mt(t[1],r[1])]};var Et=function e(t,r){var a={value:0,done:false};var n=0;var i=t.length;var o={next:function e(){if(n=0;n--){if(t[n]===r){t.splice(n,1)}}};var Wt=function e(t){t.splice(0,t.length)};var Ut=function e(t,r){for(var a=0;a2&&arguments[2]!==undefined?arguments[2]:true;if(t===undefined||r===undefined||!F(t)){Rt("An element must have a core reference and parameters set");return}var n=r.group;if(n==null){if(r.data&&r.data.source!=null&&r.data.target!=null){n="edges"}else{n="nodes"}}if(n!=="nodes"&&n!=="edges"){Rt("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1;this[0]=this;var i=this._private={cy:t,single:true,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:undefined,autoHeight:undefined,autoPadding:undefined,compoundBoundsClean:false,listeners:[],group:n,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:true,selected:r.selected?true:false,selectable:r.selectable===undefined?true:r.selectable?true:false,locked:r.locked?true:false,grabbed:false,grabbable:r.grabbable===undefined?true:r.grabbable?true:false,pannable:r.pannable===undefined?n==="edges"?true:false:r.pannable?true:false,active:false,classes:new Jt,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:false,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(i.position.x==null){i.position.x=0}if(i.position.y==null){i.position.y=0}if(r.renderedPosition){var o=r.renderedPosition;var s=t.pan();var l=t.zoom();i.position={x:(o.x-s.x)/l,y:(o.y-s.y)/l}}var u=[];if(A(r.classes)){u=r.classes}else if(D(r.classes)){u=r.classes.split(/\s+/)}for(var v=0,f=u.length;vt){return 1}return 0};u=function(e,t,n,i,o){var s;if(n==null){n=0}if(o==null){o=r}if(n<0){throw new Error("lo must be non-negative")}if(i==null){i=e.length}while(nr;0<=r?t++:t--){u.push(t)}return u}.apply(this).reverse();l=[];for(i=0,o=s.length;ip;0<=p?++c:--c){g.push(i(e,a))}return g};h=function(e,t,a,n){var i,o,s;if(n==null){n=r}i=e[a];while(a>t){s=a-1>>1;o=e[s];if(n(i,o)<0){e[a]=o;a=s;continue}break}return e[a]=i};p=function(e,t,a){var n,i,o,s,l;if(a==null){a=r}i=e.length;l=t;o=e[t];n=2*t+1;while(n0){var E=m.pop();var T=g(E);var k=E.id();c[k]=T;if(T===Infinity){continue}var C=E.neighborhood().intersect(h);for(var P=0;P0){a.unshift(r);while(f[i]){var o=f[i];a.unshift(o.edge);a.unshift(o.node);n=o.node;i=n.id()}}return s.spawn(a)}}}};var hr={kruskal:function e(t){t=t||function(e){return 1};var r=this.byGroup(),a=r.nodes,n=r.edges;var i=a.length;var o=new Array(i);var s=a;var l=function e(t){for(var r=0;r0){w();T++;if(x===v){var k=[];var C=i;var P=v;var S=y[P];for(;;){k.unshift(C);if(S!=null){k.unshift(S)}C=g[P];if(C==null){break}P=C.id();S=y[P]}return{found:true,distance:f[x],path:this.spawn(k),steps:T}}d[x]=true;var D=b._private.edges;for(var B=0;BS){h[P]=S;m[P]=C;b[P]=w}if(!i){var B=C*v+k;if(!i&&h[B]>S){h[B]=S;m[B]=k;b[B]=w}}}for(var A=0;A1&&arguments[1]!==undefined?arguments[1]:o;var n=b(t);var i=[];var s=n;for(;;){if(s==null){return r.spawn()}var u=m(s),v=u.edge,f=u.pred;i.unshift(s[0]);if(s.same(a)&&i.length>0){break}if(v!=null){i.unshift(v)}s=f}return l.spawn(i)};for(var E=0;E=0;v--){var f=u[v];var c=f[1];var d=f[2];if(r[c]===s&&r[d]===l||r[c]===l&&r[d]===s){u.splice(v,1)}}for(var h=0;hn){var i=Math.floor(Math.random()*r.length);r=Er(i,t,r);a--}return r};var kr={kargerStein:function e(){var t=this;var r=this.byGroup(),a=r.nodes,n=r.edges;n.unmergeBy((function(e){return e.isLoop()}));var i=a.length;var o=n.length;var s=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2));var l=Math.floor(i/wr);if(i<2){Rt("At least 2 nodes are required for Karger-Stein algorithm");return undefined}var u=[];for(var v=0;v1&&arguments[1]!==undefined?arguments[1]:0;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:t.length;var e=Infinity;for(var n=r;n1&&arguments[1]!==undefined?arguments[1]:0;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:t.length;var e=-Infinity;for(var n=r;n1&&arguments[1]!==undefined?arguments[1]:0;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:t.length;var n=0;var i=0;for(var o=r;o1&&arguments[1]!==undefined?arguments[1]:0;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:t.length;var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var i=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var o=arguments.length>5&&arguments[5]!==undefined?arguments[5]:true;if(n){t=t.slice(r,a)}else{if(a0){t.splice(0,r)}}var s=0;for(var l=t.length-1;l>=0;l--){var u=t[l];if(o){if(!isFinite(u)){t[l]=-Infinity;s++}}else{t.splice(l,1)}}if(i){t.sort((function(e,t){return e-t}))}var v=t.length;var f=Math.floor(v/2);if(v%2!==0){return t[f+1+s]}else{return(t[f-1+s]+t[f+s])/2}};var Ir=function e(t){return Math.PI*t/180};var Rr=function e(t,r){return Math.atan2(r,t)-Math.PI/2};var Nr=Math.log2||function(e){return Math.log(e)/Math.log(2)};var Lr=function e(t){if(t>0){return 1}else if(t<0){return-1}else{return 0}};var Or=function e(t,r){return Math.sqrt(zr(t,r))};var zr=function e(t,r){var a=r.x-t.x;var n=r.y-t.y;return a*a+n*n};var Fr=function e(t){var r=t.length;var a=0;for(var n=0;n=t.x1&&t.y2>=t.y1){return{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,w:t.x2-t.x1,h:t.y2-t.y1}}else if(t.w!=null&&t.h!=null&&t.w>=0&&t.h>=0){return{x1:t.x1,y1:t.y1,x2:t.x1+t.w,y2:t.y1+t.h,w:t.w,h:t.h}}}};var Wr=function e(t){return{x1:t.x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h}};var Ur=function e(t){t.x1=Infinity;t.y1=Infinity;t.x2=-Infinity;t.y2=-Infinity;t.w=0;t.h=0};var Gr=function e(t,r,a){return{x1:t.x1+r,x2:t.x2+r,y1:t.y1+a,y2:t.y2+a,w:t.w,h:t.h}};var Hr=function e(t,r){t.x1=Math.min(t.x1,r.x1);t.x2=Math.max(t.x2,r.x2);t.w=t.x2-t.x1;t.y1=Math.min(t.y1,r.y1);t.y2=Math.max(t.y2,r.y2);t.h=t.y2-t.y1};var Kr=function e(t,r,a){t.x1=Math.min(t.x1,r);t.x2=Math.max(t.x2,r);t.w=t.x2-t.x1;t.y1=Math.min(t.y1,a);t.y2=Math.max(t.y2,a);t.h=t.y2-t.y1};var Zr=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;t.x1-=r;t.x2+=r;t.y1-=r;t.y2+=r;t.w=t.x2-t.x1;t.h=t.y2-t.y1;return t};var $r=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[0];var a,n,i,o;if(r.length===1){a=n=i=o=r[0]}else if(r.length===2){a=i=r[0];o=n=r[1]}else if(r.length===4){var s=p(r,4);a=s[0];n=s[1];i=s[2];o=s[3]}t.x1-=o;t.x2+=n;t.y1-=a;t.y2+=i;t.w=t.x2-t.x1;t.h=t.y2-t.y1;return t};var Qr=function e(t,r){t.x1=r.x1;t.y1=r.y1;t.x2=r.x2;t.y2=r.y2;t.w=t.x2-t.x1;t.h=t.y2-t.y1};var Jr=function e(t,r){if(t.x1>r.x2){return false}if(r.x1>t.x2){return false}if(t.x2r.y2){return false}if(r.y1>t.y2){return false}return true};var ea=function e(t,r,a){return t.x1<=r&&r<=t.x2&&t.y1<=a&&a<=t.y2};var ta=function e(t,r){return ea(t,r.x,r.y)};var ra=function e(t,r){return ea(t,r.x1,r.y1)&&ea(t,r.x2,r.y2)};var aa=function e(t,r,a,n,i,o,s){var l=arguments.length>7&&arguments[7]!==undefined?arguments[7]:"auto";var u=l==="auto"?Pa(i,o):l;var v=i/2;var f=o/2;u=Math.min(u,v,f);var c=u!==v,d=u!==f;var h;if(c){var p=a-v+u-s;var g=n-f-s;var y=a+v-u+s;var m=g;h=ba(t,r,a,n,p,g,y,m,false);if(h.length>0){return h}}if(d){var b=a+v+s;var x=n-f+u-s;var w=b;var E=n+f-u+s;h=ba(t,r,a,n,b,x,w,E,false);if(h.length>0){return h}}if(c){var T=a-v+u-s;var k=n+f+s;var C=a+v-u+s;var P=k;h=ba(t,r,a,n,T,k,C,P,false);if(h.length>0){return h}}if(d){var S=a-v-s;var D=n-f+u-s;var B=S;var A=n+f-u+s;h=ba(t,r,a,n,S,D,B,A,false);if(h.length>0){return h}}var _;{var M=a-v+u;var I=n-f+u;_=ya(t,r,a,n,M,I,u+s);if(_.length>0&&_[0]<=M&&_[1]<=I){return[_[0],_[1]]}}{var R=a+v-u;var N=n-f+u;_=ya(t,r,a,n,R,N,u+s);if(_.length>0&&_[0]>=R&&_[1]<=N){return[_[0],_[1]]}}{var L=a+v-u;var O=n+f-u;_=ya(t,r,a,n,L,O,u+s);if(_.length>0&&_[0]>=L&&_[1]>=O){return[_[0],_[1]]}}{var z=a-v+u;var F=n+f-u;_=ya(t,r,a,n,z,F,u+s);if(_.length>0&&_[0]<=z&&_[1]>=F){return[_[0],_[1]]}}return[]};var na=function e(t,r,a,n,i,o,s){var l=s;var u=Math.min(a,i);var v=Math.max(a,i);var f=Math.min(n,o);var c=Math.max(n,o);return u-l<=t&&t<=v+l&&f-l<=r&&r<=c+l};var ia=function e(t,r,a,n,i,o,s,l,u){var v={x1:Math.min(a,s,i)-u,x2:Math.max(a,s,i)+u,y1:Math.min(n,l,o)-u,y2:Math.max(n,l,o)+u};if(tv.x2||rv.y2){return false}else{return true}};var oa=function e(t,r,a,n){a-=n;var i=r*r-4*t*a;if(i<0){return[]}var o=Math.sqrt(i);var s=2*t;var l=(-r+o)/s;var u=(-r-o)/s;return[l,u]};var sa=function e(t,r,a,n,i){var o=1e-5;if(t===0){t=o}r/=t;a/=t;n/=t;var s,l,u,v,f,c,d,h;l=(3*a-r*r)/9;u=-(27*n)+r*(9*a-2*(r*r));u/=54;s=l*l*l+u*u;i[1]=0;d=r/3;if(s>0){f=u+Math.sqrt(s);f=f<0?-Math.pow(-f,1/3):Math.pow(f,1/3);c=u-Math.sqrt(s);c=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3);i[0]=-d+f+c;d+=(f+c)/2;i[4]=i[2]=-d;d=Math.sqrt(3)*(-c+f)/2;i[3]=d;i[5]=-d;return}i[5]=i[3]=0;if(s===0){h=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);i[0]=-d+2*h;i[4]=i[2]=-(h+d);return}l=-l;v=l*l*l;v=Math.acos(u/Math.sqrt(v));h=2*Math.sqrt(l);i[0]=-d+h*Math.cos(v/3);i[2]=-d+h*Math.cos((v+2*Math.PI)/3);i[4]=-d+h*Math.cos((v+4*Math.PI)/3);return};var la=function e(t,r,a,n,i,o,s,l){var u=1*a*a-4*a*i+2*a*s+4*i*i-4*i*s+s*s+n*n-4*n*o+2*n*l+4*o*o-4*o*l+l*l;var v=1*9*a*i-3*a*a-3*a*s-6*i*i+3*i*s+9*n*o-3*n*n-3*n*l-6*o*o+3*o*l;var f=1*3*a*a-6*a*i+a*s-a*t+2*i*i+2*i*t-s*t+3*n*n-6*n*o+n*l-n*r+2*o*o+2*o*r-l*r;var c=1*a*i-a*a+a*t-i*t+n*o-n*n+n*r-o*r;var d=[];sa(u,v,f,c,d);var h=1e-7;var p=[];for(var g=0;g<6;g+=2){if(Math.abs(d[g+1])=0&&d[g]<=1){p.push(d[g])}}p.push(1);p.push(0);var y=-1;var m,b,x;for(var w=0;w=0){if(xu){return(t-i)*(t-i)+(r-o)*(r-o)}return v-c};var va=function e(t,r,a){var n,i,o,s;var l;var u=0;for(var v=0;v=t&&t>=o||n<=t&&t<=o){l=(t-n)/(o-n)*(s-i)+i;if(l>r){u++}}else{continue}}if(u%2===0){return false}else{return true}};var fa=function e(t,r,a,n,i,o,s,l,u){var v=new Array(a.length);var f;if(l[0]!=null){f=Math.atan(l[1]/l[0]);if(l[0]<0){f=f+Math.PI/2}else{f=-f-Math.PI/2}}else{f=l}var c=Math.cos(-f);var d=Math.sin(-f);for(var h=0;h0){var g=ha(v,-u);p=da(g)}else{p=v}return va(t,r,p)};var ca=function e(t,r,a,n,i,o,s,l){var u=new Array(a.length*2);for(var v=0;v=0&&g<=1){m.push(g)}if(y>=0&&y<=1){m.push(y)}if(m.length===0){return[]}var b=m[0]*l[0]+t;var x=m[0]*l[1]+r;if(m.length>1){if(m[0]==m[1]){return[b,x]}else{var w=m[1]*l[0]+t;var E=m[1]*l[1]+r;return[b,x,w,E]}}else{return[b,x]}};var ma=function e(t,r,a){if(r<=t&&t<=a||a<=t&&t<=r){return t}else if(t<=r&&r<=a||a<=r&&r<=t){return r}else{return a}};var ba=function e(t,r,a,n,i,o,s,l,u){var v=t-i;var f=a-t;var c=s-i;var d=r-o;var h=n-r;var p=l-o;var g=c*d-p*v;var y=f*d-h*v;var m=p*f-c*h;if(m!==0){var b=g/m;var x=y/m;var w=.001;var E=0-w;var T=1+w;if(E<=b&&b<=T&&E<=x&&x<=T){return[t+b*f,r+b*h]}else{if(!u){return[]}else{return[t+b*f,r+b*h]}}}else{if(g===0||y===0){if(ma(t,a,s)===s){return[s,l]}if(ma(t,a,i)===i){return[i,o]}if(ma(i,s,a)===a){return[a,n]}return[]}else{return[]}}};var xa=function e(t,r,a,n,i,o,s,l){var u=[];var v;var f=new Array(a.length);var c=true;if(o==null){c=false}var d;if(c){for(var h=0;h0){var p=ha(f,-l);d=da(p)}else{d=f}}else{d=a}var g,y,m,b;for(var x=0;x2){var h=[v[0],v[1]];var p=Math.pow(h[0]-t,2)+Math.pow(h[1]-r,2);for(var g=1;gv){v=r}},get:function e(t){return u[t]}};for(var c=0;c0){x=b.edgesTo(m)[0]}else{x=m.edgesTo(b)[0]}var w=n(x);m=m.id();if(v[m]>v[p]+w){v[m]=v[p]+w;if(c.nodes.indexOf(m)<0){c.push(m)}else{c.updateItem(m)}u[m]=0;a[m]=[]}if(v[m]==v[p]+w){u[m]=u[m]+u[p];a[m].push(p)}}}else{for(var E=0;E0){var P=r.pop();for(var S=0;S0){s.push(a[l])}}if(s.length!==0){i.push(n.collection(s))}}return i};var Ka=function e(t,r){for(var a=0;a5&&arguments[5]!==undefined?arguments[5]:Ja;var s=n;var l,u;for(var v=0;v=2){return on(t,r,a,0,rn,an)}else{return on(t,r,a,0,tn)}},squaredEuclidean:function e(t,r,a){return on(t,r,a,0,rn)},manhattan:function e(t,r,a){return on(t,r,a,0,tn)},max:function e(t,r,a){return on(t,r,a,-Infinity,nn)}};sn["squared-euclidean"]=sn["squaredEuclidean"];sn["squaredeuclidean"]=sn["squaredEuclidean"];function ln(e,t,r,a,n,i){var o;if(B(e)){o=e}else{o=sn[e]||sn.euclidean}if(t===0&&B(e)){return o(n,i)}else{return o(t,r,a,n,i)}}var un=Yt({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:false,testCentroids:null});var vn=function e(t){return un(t)};var fn=function e(t,r,a,n,i){var o=i!=="kMedoids";var s=o?function(e){return a[e]}:function(e){return n[e](a)};var l=function e(t){return n[t](r)};var u=a;var v=r;return ln(t,n.length,s,l,u,v)};var cn=function e(t,r,a){var n=a.length;var i=new Array(n);var o=new Array(n);var s=new Array(r);var l=null;for(var u=0;ua){return false}}}return true};var yn=function e(t,r,a){for(var n=0;ns){s=r[u][v];l=v}}i[l].push(t[u])}for(var f=0;f=i.threshold||i.mode==="dendrogram"&&t.length===1){return false}var h=r[o];var p=r[n[o]];var g;if(i.mode==="dendrogram"){g={left:h,right:p,key:h.key}}else{g={value:h.value.concat(p.value),key:h.key}}t[h.index]=g;t.splice(p.index,1);r[h.key]=g;for(var y=0;ya[p.key][m.key]){l=a[p.key][m.key]}}else if(i.linkage==="max"){l=a[h.key][m.key];if(a[h.key][m.key]0){n.push(i)}}return n};var jn=function e(t,r,a){var n=[];for(var i=0;is){o=u;s=r[i*t+u]}}if(o>0){n.push(o)}}for(var v=0;vu){l=v;u=f}}a[i]=o[l]}n=jn(t,r,a);return n};var Yn=function e(t){var r=this.cy();var a=this.nodes();var n=On(t);var i={};for(var o=0;o=S){D=S;S=A;B=_}else if(A>D){D=A}}for(var M=0;M0?1:0;T[C%n.minIterations*s+z]=F;O+=F}if(O>0&&(C>=n.minIterations-1||C==n.maxIterations-1)){var V=0;for(var j=0;j1||n>1){s=true}f[t]=[];e.outgoers().forEach((function(e){if(e.isEdge())f[t].push(e.id())}))}else{c[t]=[undefined,e.target().id()]}}))}else{o.forEach((function(e){var t=e.id();if(e.isNode()){var r=e.degree(true);if(r%2){if(!l)l=t;else if(!u)u=t;else s=true}f[t]=[];e.connectedEdges().forEach((function(e){return f[t].push(e.id())}))}else{c[t]=[e.source().id(),e.target().id()]}}))}var d={found:false,trail:undefined};if(s)return d;else if(u&&l){if(i){if(v&&u!=v){return d}v=u}else{if(v&&u!=v&&l!=v){return d}else if(!v){v=u}}}else{if(!v)v=o[0].id()}var h=function e(t){var r=t;var a=[t];var n,o,s;while(f[r].length){n=f[r].shift();o=c[n][0];s=c[n][1];if(r!=s){f[s]=f[s].filter((function(e){return e!=n}));r=s}else if(!i&&r!=o){f[o]=f[o].filter((function(e){return e!=n}));r=o}a.unshift(n);a.unshift(r)}return a};var p=[];var g=[];g=h(v);while(g.length!=1){if(f[g[0]].length==0){p.unshift(o.getElementById(g.shift()));p.unshift(o.getElementById(g.shift()))}else{g=h(g.shift()).concat(g)}}p.unshift(o.getElementById(g.shift()));for(var y in f){if(f[y].length){return d}}d.found=true;d.trail=this.spawn(p,true);return d}};var Gn=function e(){var t=this;var r={};var a=0;var n=0;var i=[];var o=[];var s={};var l=function e(a,n){var s=o.length-1;var l=[];var u=t.spawn();while(o[s].x!=a||o[s].y!=n){l.push(o.pop().edge);s--}l.push(o.pop().edge);l.forEach((function(e){var a=e.connectedNodes().intersection(t);u.merge(e);a.forEach((function(e){var a=e.id();var n=e.connectedEdges().intersection(t);u.merge(e);if(!r[a].cutVertex){u.merge(n)}else{u.merge(n.filter((function(e){return e.isLoop()})))}}))}));i.push(u)};var u=function e(v,f,c){if(v===c)n+=1;r[f]={id:a,low:a++,cutVertex:false};var d=t.getElementById(f).connectedEdges().intersection(t);if(d.size()===0){i.push(t.spawn(t.getElementById(f)))}else{var h,p,g,y;d.forEach((function(e){h=e.source().id();p=e.target().id();g=h===f?p:h;if(g!==c){y=e.id();if(!s[y]){s[y]=true;o.push({x:f,y:g,edge:e})}if(!(g in r)){u(v,g,f);r[f].low=Math.min(r[f].low,r[g].low);if(r[f].id<=r[g].low){r[f].cutVertex=true;l(f,g)}}else{r[f].low=Math.min(r[f].low,r[g].id)}}}))}};t.forEach((function(e){if(e.isNode()){var t=e.id();if(!(t in r)){n=0;u(t,t);r[t].cutVertex=n>1}}}));var v=Object.keys(r).filter((function(e){return r[e].cutVertex})).map((function(e){return t.getElementById(e)}));return{cut:t.spawn(v),components:i}};var Hn={hopcroftTarjanBiconnected:Gn,htbc:Gn,htb:Gn,hopcroftTarjanBiconnectedComponents:Gn};var Kn=function e(){var t=this;var r={};var a=0;var n=[];var i=[];var o=t.spawn(t);var s=function e(l){i.push(l);r[l]={index:a,low:a++,explored:false};var u=t.getElementById(l).connectedEdges().intersection(t);u.forEach((function(e){var t=e.target().id();if(t!==l){if(!(t in r)){s(t)}if(!r[t].explored){r[l].low=Math.min(r[l].low,r[t].low)}}}));if(r[l].index===r[l].low){var v=t.spawn();for(;;){var f=i.pop();v.merge(t.getElementById(f));r[f].low=r[l].index;r[f].explored=true;if(f===l){break}}var c=v.edgesWith(v);var d=v.merge(c);n.push(d);o=o.difference(d)}};t.forEach((function(e){if(e.isNode()){var t=e.id();if(!(t in r)){s(t)}}}));return{cut:o,components:n}};var Zn={tarjanStronglyConnected:Kn,tsc:Kn,tscc:Kn,tarjanStronglyConnectedComponents:Kn};var $n={};[rr,dr,hr,gr,mr,xr,kr,Ma,Ra,La,za,Qa,Pn,Nn,qn,Un,Hn,Zn].forEach((function(e){se($n,e)}));var Qn=0;var Jn=1;var ei=2;var ti=function e(t){if(!(this instanceof ti))return new ti(t);this.id="Thenable/1.0.7";this.state=Qn;this.fulfillValue=undefined;this.rejectReason=undefined;this.onFulfilled=[];this.onRejected=[];this.proxy={then:this.then.bind(this)};if(typeof t==="function")t.call(this,this.fulfill.bind(this),this.reject.bind(this))};ti.prototype={fulfill:function e(t){return ri(this,Jn,"fulfillValue",t)},reject:function e(t){return ri(this,ei,"rejectReason",t)},then:function e(t,r){var a=this;var n=new ti;a.onFulfilled.push(ii(t,n,"fulfill"));a.onRejected.push(ii(r,n,"reject"));ai(a);return n.proxy}};var ri=function e(t,r,a,n){if(t.state===Qn){t.state=r;t[a]=n;ai(t)}return t};var ai=function e(t){if(t.state===Jn)ni(t,"onFulfilled",t.fulfillValue);else if(t.state===ei)ni(t,"onRejected",t.rejectReason)};var ni=function e(t,r,a){if(t[r].length===0)return;var n=t[r];t[r]=[];var i=function e(){for(var t=0;t0}}},clearQueue:function e(){return function e(){var t=this;var r=t.length!==undefined;var a=r?t:[t];var n=this._private.cy||this;if(!n.styleEnabled()){return this}for(var i=0;i-1}wo=t;return wo}var ko;var Co;function Po(){if(Co)return ko;Co=1;var e=ho();function t(t,r){var a=this.__data__,n=e(a,t);if(n<0){++this.size;a.push([t,r])}else{a[n][1]=r}return this}ko=t;return ko}var So;var Do;function Bo(){if(Do)return So;Do=1;var e=so(),t=yo(),r=xo(),a=To(),n=Po();function i(e){var t=-1,r=e==null?0:e.length;this.clear();while(++t-1&&r%1==0&&r0){this.spawn(n).updateStyle().emit("class")}return r},addClass:function e(t){return this.toggleClass(t,true)},hasClass:function e(t){var r=this[0];return r!=null&&r._private.classes.has(t)},toggleClass:function e(t,r){if(!A(t)){t=t.match(/\S+/g)||[]}var a=this;var n=r===undefined;var i=[];for(var o=0,s=a.length;o0){this.spawn(i).updateStyle().emit("class")}return a},removeClass:function e(t){return this.toggleClass(t,false)},flashClass:function e(t,r){var a=this;if(r==null){r=250}else if(r===0){return a}a.addClass(t);setTimeout((function(){a.removeClass(t)}),r);return a}};dl.className=dl.classNames=dl.classes;var hl={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:'"(?:\\\\"|[^"])*"'+"|"+"'(?:\\\\'|[^'])*'",number:Q,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};hl.variable="(?:[\\w-.]|(?:\\\\"+hl.metaChar+"))+";hl.className="(?:[\\w-]|(?:\\\\"+hl.metaChar+"))+";hl.value=hl.string+"|"+hl.number;hl.id=hl.variable;(function(){var e,t,r;e=hl.comparatorOp.split("|");for(r=0;r=0){continue}if(t==="="){continue}hl.comparatorOp+="|\\!"+t}})();var pl=function e(){return{checks:[]}};var gl={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20};var yl=[{selector:":selected",matches:function e(t){return t.selected()}},{selector:":unselected",matches:function e(t){return!t.selected()}},{selector:":selectable",matches:function e(t){return t.selectable()}},{selector:":unselectable",matches:function e(t){return!t.selectable()}},{selector:":locked",matches:function e(t){return t.locked()}},{selector:":unlocked",matches:function e(t){return!t.locked()}},{selector:":visible",matches:function e(t){return t.visible()}},{selector:":hidden",matches:function e(t){return!t.visible()}},{selector:":transparent",matches:function e(t){return t.transparent()}},{selector:":grabbed",matches:function e(t){return t.grabbed()}},{selector:":free",matches:function e(t){return!t.grabbed()}},{selector:":removed",matches:function e(t){return t.removed()}},{selector:":inside",matches:function e(t){return!t.removed()}},{selector:":grabbable",matches:function e(t){return t.grabbable()}},{selector:":ungrabbable",matches:function e(t){return!t.grabbable()}},{selector:":animated",matches:function e(t){return t.animated()}},{selector:":unanimated",matches:function e(t){return!t.animated()}},{selector:":parent",matches:function e(t){return t.isParent()}},{selector:":childless",matches:function e(t){return t.isChildless()}},{selector:":child",matches:function e(t){return t.isChild()}},{selector:":orphan",matches:function e(t){return t.isOrphan()}},{selector:":nonorphan",matches:function e(t){return t.isChild()}},{selector:":compound",matches:function e(t){if(t.isNode()){return t.isParent()}else{return t.source().isParent()||t.target().isParent()}}},{selector:":loop",matches:function e(t){return t.isLoop()}},{selector:":simple",matches:function e(t){return t.isSimple()}},{selector:":active",matches:function e(t){return t.active()}},{selector:":inactive",matches:function e(t){return!t.active()}},{selector:":backgrounding",matches:function e(t){return t.backgrounding()}},{selector:":nonbackgrounding",matches:function e(t){return!t.backgrounding()}}].sort((function(e,t){return oe(e.selector,t.selector)}));var ml=function(){var e={};var t;for(var r=0;r0&&v.edgeCount>0){Lt("The selector `"+t+"` is invalid because it uses both a compound selector and an edge selector");return false}if(v.edgeCount>1){Lt("The selector `"+t+"` is invalid because it uses multiple edge selectors");return false}else if(v.edgeCount===1){Lt("The selector `"+t+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}}return true};var Sl=function e(){if(this.toStringCache!=null){return this.toStringCache}var t=function e(t){if(t==null){return""}else{return t}};var r=function e(r){if(D(r)){return'"'+r+'"'}else{return t(r)}};var a=function e(t){return" "+t+" "};var n=function e(n,o){var s=n.type,l=n.value;switch(s){case gl.GROUP:{var u=t(l);return u.substring(0,u.length-1)}case gl.DATA_COMPARE:{var v=n.field,f=n.operator;return"["+v+a(t(f))+r(l)+"]"}case gl.DATA_BOOL:{var c=n.operator,d=n.field;return"["+t(c)+d+"]"}case gl.DATA_EXIST:{var h=n.field;return"["+h+"]"}case gl.META_COMPARE:{var p=n.operator,g=n.field;return"[["+g+a(t(p))+r(l)+"]]"}case gl.STATE:{return l}case gl.ID:{return"#"+l}case gl.CLASS:{return"."+l}case gl.PARENT:case gl.CHILD:{return i(n.parent,o)+a(">")+i(n.child,o)}case gl.ANCESTOR:case gl.DESCENDANT:{return i(n.ancestor,o)+" "+i(n.descendant,o)}case gl.COMPOUND_SPLIT:{var y=i(n.left,o);var m=i(n.subject,o);var b=i(n.right,o);return y+(y.length>0?" ":"")+m+b}case gl.TRUE:{return""}}};var i=function e(t,r){return t.checks.reduce((function(e,a,i){return e+(r===t&&i===0?"$":"")+n(a,r)}),"")};var o="";for(var s=0;s1&&s=0){r=r.replace("!","");f=true}if(r.indexOf("@")>=0){r=r.replace("@","");v=true}if(i||s||v){l=!i&&!o?"":""+t;u=""+a}if(v){t=l=l.toLowerCase();a=u=u.toLowerCase()}switch(r){case"*=":n=l.indexOf(u)>=0;break;case"$=":n=l.indexOf(u,l.length-u.length)>=0;break;case"^=":n=l.indexOf(u)===0;break;case"=":n=t===a;break;case">":c=true;n=t>a;break;case">=":c=true;n=t>=a;break;case"<":c=true;n=t0){var v=n.shift();t(v);i.add(v.id());if(s){a(n,i,v)}}return e}function Wl(e,t,r){if(r.isParent()){var a=r._private.children;for(var n=0;n1&&arguments[1]!==undefined?arguments[1]:true;return ql(this,e,t,Wl)};function Ul(e,t,r){if(r.isChild()){var a=r._private.parent;if(!t.has(a.id())){e.push(a)}}}Yl.forEachUp=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return ql(this,e,t,Ul)};function Gl(e,t,r){Ul(e,t,r);Wl(e,t,r)}Yl.forEachUpAndDown=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return ql(this,e,t,Gl)};Yl.ancestors=Yl.parents;var Hl,Kl;Hl=Kl={data:fl.data({field:"data",bindingEvent:"data",allowBinding:true,allowSetting:true,settingEvent:"data",settingTriggersEvent:true,triggerFnName:"trigger",allowGetting:true,immutableKeys:{id:true,source:true,target:true,parent:true},updateStyle:true}),removeData:fl.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:true,immutableKeys:{id:true,source:true,target:true,parent:true},updateStyle:true}),scratch:fl.data({field:"scratch",bindingEvent:"scratch",allowBinding:true,allowSetting:true,settingEvent:"scratch",settingTriggersEvent:true,triggerFnName:"trigger",allowGetting:true,updateStyle:true}),removeScratch:fl.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:true,updateStyle:true}),rscratch:fl.data({field:"rscratch",allowBinding:false,allowSetting:true,settingTriggersEvent:false,allowGetting:true}),removeRscratch:fl.removeData({field:"rscratch",triggerEvent:false}),id:function e(){var t=this[0];if(t){return t._private.data.id}}};Hl.attr=Hl.data;Hl.removeAttr=Hl.removeData;var Zl=Kl;var $l={};function Ql(e){return function(t){var r=this;if(t===undefined){t=true}if(r.length===0){return}if(r.isNode()&&!r.removed()){var a=0;var n=r[0];var i=n._private.edges;for(var o=0;ot})),minIndegree:Jl("indegree",(function(e,t){return et})),minOutdegree:Jl("outdegree",(function(e,t){return et}))});se($l,{totalDegree:function e(t){var r=0;var a=this.nodes();for(var n=0;n0;var c=f;if(f){v=v[0]}var d=c?v.position():{x:0,y:0};if(r!==undefined){u.position(t,r+d[t])}else if(i!==undefined){u.position({x:i.x+d.x,y:i.y+d.y})}}}else{var h=a.position();var p=s?a.parent():null;var g=p&&p.length>0;var y=g;if(g){p=p[0]}var m=y?p.position():{x:0,y:0};i={x:h.x-m.x,y:h.y-m.y};if(t===undefined){return i}else{return i[t]}}}else if(!o){return undefined}return this}};eu.modelPosition=eu.point=eu.position;eu.modelPositions=eu.points=eu.positions;eu.renderedPoint=eu.renderedPosition;eu.relativePoint=eu.relativePosition;var nu=tu;var iu,ou;iu=ou={};ou.renderedBoundingBox=function(e){var t=this.boundingBox(e);var r=this.cy();var a=r.zoom();var n=r.pan();var i=t.x1*a+n.x;var o=t.x2*a+n.x;var s=t.y1*a+n.y;var l=t.y2*a+n.y;return{x1:i,x2:o,y1:s,y2:l,w:o-i,h:l-s}};ou.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes()){return this}this.forEachUp((function(t){if(t.isParent()){var r=t._private;r.compoundBoundsClean=false;r.bbCache=null;if(!e){t.emitAndNotify("bounds")}}}));return this};ou.updateCompoundBounds=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes()){return this}if(!e&&t.batching()){return this}function r(e){if(!e.isParent()){return}var t=e._private;var r=e.children();var a=e.pstyle("compound-sizing-wrt-labels").value==="include";var n={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}};var i=r.boundingBox({includeLabels:a,includeOverlays:false,useCache:false});var o=t.position;if(i.w===0||i.h===0){i={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue};i.x1=o.x-i.w/2;i.x2=o.x+i.w/2;i.y1=o.y-i.h/2;i.y2=o.y+i.h/2}function s(e,t,r){var a=0;var n=0;var i=t+r;if(e>0&&i>0){a=t/i*e;n=r/i*e}return{biasDiff:a,biasComplementDiff:n}}function l(e,t,r,a){if(r.units==="%"){switch(a){case"width":return e>0?r.pfValue*e:0;case"height":return t>0?r.pfValue*t:0;case"average":return e>0&&t>0?r.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?r.pfValue*t:r.pfValue*e:0;case"max":return e>0&&t>0?e>t?r.pfValue*e:r.pfValue*t:0;default:return 0}}else if(r.units==="px"){return r.pfValue}else{return 0}}var u=n.width.left.value;if(n.width.left.units==="px"&&n.width.val>0){u=u*100/n.width.val}var v=n.width.right.value;if(n.width.right.units==="px"&&n.width.val>0){v=v*100/n.width.val}var f=n.height.top.value;if(n.height.top.units==="px"&&n.height.val>0){f=f*100/n.height.val}var c=n.height.bottom.value;if(n.height.bottom.units==="px"&&n.height.val>0){c=c*100/n.height.val}var d=s(n.width.val-i.w,u,v);var h=d.biasDiff;var p=d.biasComplementDiff;var g=s(n.height.val-i.h,f,c);var y=g.biasDiff;var m=g.biasComplementDiff;t.autoPadding=l(i.w,i.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value);t.autoWidth=Math.max(i.w,n.width.val);o.x=(-h+i.x1+i.x2+p)/2;t.autoHeight=Math.max(i.h,n.height.val);o.y=(-y+i.y1+i.y2+m)/2}for(var a=0;at.x2?n:t.x2;t.y1=at.y2?i:t.y2;t.w=t.x2-t.x1;t.h=t.y2-t.y1};var uu=function e(t,r){if(r==null){return t}return lu(t,r.x1,r.y1,r.x2,r.y2)};var vu=function e(t,r,a){return Gt(t,r,a)};var fu=function e(t,r,a){if(r.cy().headless()){return}var n=r._private;var i=n.rstyle;var o=i.arrowWidth/2;var s=r.pstyle(a+"-arrow-shape").value;var l;var u;if(s!=="none"){if(a==="source"){l=i.srcX;u=i.srcY}else if(a==="target"){l=i.tgtX;u=i.tgtY}else{l=i.midX;u=i.midY}var v=n.arrowBounds=n.arrowBounds||{};var f=v[a]=v[a]||{};f.x1=l-o;f.y1=u-o;f.x2=l+o;f.y2=u+o;f.w=f.x2-f.x1;f.h=f.y2-f.y1;Zr(f,1);lu(t,f.x1,f.y1,f.x2,f.y2)}};var cu=function e(t,r,a){if(r.cy().headless()){return}var n;if(a){n=a+"-"}else{n=""}var i=r._private;var o=i.rstyle;var s=r.pstyle(n+"label").strValue;if(s){var l=r.pstyle("text-halign");var u=r.pstyle("text-valign");var v=vu(o,"labelWidth",a);var f=vu(o,"labelHeight",a);var c=vu(o,"labelX",a);var d=vu(o,"labelY",a);var h=r.pstyle(n+"text-margin-x").pfValue;var p=r.pstyle(n+"text-margin-y").pfValue;var g=r.isEdge();var y=r.pstyle(n+"text-rotation");var m=r.pstyle("text-outline-width").pfValue;var b=r.pstyle("text-border-width").pfValue;var x=b/2;var w=r.pstyle("text-background-padding").pfValue;var E=2;var T=f;var k=v;var C=k/2;var P=T/2;var S,D,B,A;if(g){S=c-C;D=c+C;B=d-P;A=d+P}else{switch(l.value){case"left":S=c-k;D=c;break;case"center":S=c-C;D=c+C;break;case"right":S=c;D=c+k;break}switch(u.value){case"top":B=d-T;A=d;break;case"center":B=d-P;A=d+P;break;case"bottom":B=d;A=d+T;break}}var _=h-Math.max(m,x)-w-E;var M=h+Math.max(m,x)+w+E;var I=p-Math.max(m,x)-w-E;var R=p+Math.max(m,x)+w+E;S+=_;D+=M;B+=I;A+=R;var N=a||"main";var L=i.labelBounds;var O=L[N]=L[N]||{};O.x1=S;O.y1=B;O.x2=D;O.y2=A;O.w=D-S;O.h=A-B;O.leftPad=_;O.rightPad=M;O.topPad=I;O.botPad=R;var z=g&&y.strValue==="autorotate";var F=y.pfValue!=null&&y.pfValue!==0;if(z||F){var V=z?vu(i.rstyle,"labelAngle",a):y.pfValue;var j=Math.cos(V);var X=Math.sin(V);var Y=(S+D)/2;var q=(B+A)/2;if(!g){switch(l.value){case"left":Y=D;break;case"right":Y=S;break}switch(u.value){case"top":q=A;break;case"bottom":q=B;break}}var W=function e(t,r){t=t-Y;r=r-q;return{x:t*j-r*X+Y,y:t*X+r*j+q}};var U=W(S,B);var G=W(S,A);var H=W(D,B);var K=W(D,A);S=Math.min(U.x,G.x,H.x,K.x);D=Math.max(U.x,G.x,H.x,K.x);B=Math.min(U.y,G.y,H.y,K.y);A=Math.max(U.y,G.y,H.y,K.y)}var Z=N+"Rot";var $=L[Z]=L[Z]||{};$.x1=S;$.y1=B;$.x2=D;$.y2=A;$.w=D-S;$.h=A-B;lu(t,S,B,D,A);lu(i.labelBounds.all,S,B,D,A)}return t};var du=function e(t,r){if(r.cy().headless()){return}var a=r.pstyle("outline-opacity").value;var n=r.pstyle("outline-width").value;if(a>0&&n>0){var i=r.pstyle("outline-offset").value;var o=r.pstyle("shape").value;var s=n+i;var l=(t.w+s*2)/t.w;var u=(t.h+s*2)/t.h;var v=0;var f=0;if(["diamond","pentagon","round-triangle"].includes(o)){l=(t.w+s*2.4)/t.w;f=-s/3.6}else if(["concave-hexagon","rhomboid","right-rhomboid"].includes(o)){l=(t.w+s*2.4)/t.w}else if(o==="star"){l=(t.w+s*2.8)/t.w;u=(t.h+s*2.6)/t.h;f=-s/3.8}else if(o==="triangle"){l=(t.w+s*2.8)/t.w;u=(t.h+s*2.4)/t.h;f=-s/1.4}else if(o==="vee"){l=(t.w+s*4.4)/t.w;u=(t.h+s*3.8)/t.h;f=-s*.5}var c=t.h*u-t.h;var d=t.w*l-t.w;$r(t,[Math.ceil(c/2),Math.ceil(d/2)]);if(v!=0||f!==0){var h=Gr(t,v,f);Hr(t,h)}}};var hu=function e(t,r){var a=t._private.cy;var n=a.styleEnabled();var i=a.headless();var o=qr();var s=t._private;var l=t.isNode();var u=t.isEdge();var v,f,c,d;var h,p;var g=s.rstyle;var y=l&&n?t.pstyle("bounds-expansion").pfValue:[0];var m=function e(t){return t.pstyle("display").value!=="none"};var b=!n||m(t)&&(!u||m(t.source())&&m(t.target()));if(b){var x=0;var w=0;if(n&&r.includeOverlays){x=t.pstyle("overlay-opacity").value;if(x!==0){w=t.pstyle("overlay-padding").value}}var E=0;var T=0;if(n&&r.includeUnderlays){E=t.pstyle("underlay-opacity").value;if(E!==0){T=t.pstyle("underlay-padding").value}}var k=Math.max(w,T);var C=0;var P=0;if(n){C=t.pstyle("width").pfValue;P=C/2}if(l&&r.includeNodes){var S=t.position();h=S.x;p=S.y;var D=t.outerWidth();var B=D/2;var A=t.outerHeight();var _=A/2;v=h-B;f=h+B;c=p-_;d=p+_;lu(o,v,c,f,d);if(n&&r.includeOutlines){du(o,t)}}else if(u&&r.includeEdges){if(n&&!i){var M=t.pstyle("curve-style").strValue;v=Math.min(g.srcX,g.midX,g.tgtX);f=Math.max(g.srcX,g.midX,g.tgtX);c=Math.min(g.srcY,g.midY,g.tgtY);d=Math.max(g.srcY,g.midY,g.tgtY);v-=P;f+=P;c-=P;d+=P;lu(o,v,c,f,d);if(M==="haystack"){var I=g.haystackPts;if(I&&I.length===2){v=I[0].x;c=I[0].y;f=I[1].x;d=I[1].y;if(v>f){var R=v;v=f;f=R}if(c>d){var N=c;c=d;d=N}lu(o,v-P,c-P,f+P,d+P)}}else if(M==="bezier"||M==="unbundled-bezier"||M.endsWith("segments")||M.endsWith("taxi")){var L;switch(M){case"bezier":case"unbundled-bezier":L=g.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":L=g.linePts;break}if(L!=null){for(var O=0;Of){var Y=v;v=f;f=Y}if(c>d){var q=c;c=d;d=q}v-=P;f+=P;c-=P;d+=P;lu(o,v,c,f,d)}}if(n&&r.includeEdges&&u){fu(o,t,"mid-source");fu(o,t,"mid-target");fu(o,t,"source");fu(o,t,"target")}if(n){var W=t.pstyle("ghost").value==="yes";if(W){var U=t.pstyle("ghost-offset-x").pfValue;var G=t.pstyle("ghost-offset-y").pfValue;lu(o,o.x1+U,o.y1+G,o.x2+U,o.y2+G)}}var H=s.bodyBounds=s.bodyBounds||{};Qr(H,o);$r(H,y);Zr(H,1);if(n){v=o.x1;f=o.x2;c=o.y1;d=o.y2;lu(o,v-k,c-k,f+k,d+k)}var K=s.overlayBounds=s.overlayBounds||{};Qr(K,o);$r(K,y);Zr(K,1);var Z=s.labelBounds=s.labelBounds||{};if(Z.all!=null){Ur(Z.all)}else{Z.all=qr()}if(n&&r.includeLabels){if(r.includeMainLabels){cu(o,t,null)}if(u){if(r.includeSourceLabels){cu(o,t,"source")}if(r.includeTargetLabels){cu(o,t,"target")}}}}o.x1=su(o.x1);o.y1=su(o.y1);o.x2=su(o.x2);o.y2=su(o.y2);o.w=su(o.x2-o.x1);o.h=su(o.y2-o.y1);if(o.w>0&&o.h>0&&b){$r(o,y);Zr(o,1)}return o};var pu=function e(t){var r=0;var a=function e(t){return(t?1:0)<0&&arguments[0]!==undefined?arguments[0]:Wu;var t=arguments.length>1?arguments[1]:undefined;for(var r=0;r=0;s--){o(s)}return this};Gu.removeAllListeners=function(){return this.removeListener("*")};Gu.emit=Gu.trigger=function(e,t,r){var a=this.listeners;var n=a.length;this.emitting++;if(!A(t)){t=[t]}Zu(this,(function(e,i){if(r!=null){a=[{event:i.event,type:i.type,namespace:i.namespace,callback:r}];n=a.length}var o=function r(){var n=a[s];if(n.type===i.type&&(!n.namespace||n.namespace===i.namespace||n.namespace===Xu)&&e.eventMatches(e.context,n,i)){var o=[i];if(t!=null){Ut(o,t)}e.beforeEmit(e.context,n,i);if(n.conf&&n.conf.one){e.listeners=e.listeners.filter((function(e){return e!==n}))}var l=e.callbackContext(e.context,n,i);var u=n.callback.apply(l,o);e.afterEmit(e.context,n,i);if(u===false){i.stopPropagation();i.preventDefault()}}};for(var s=0;s1&&!o){var s=this.length-1;var l=this[s];var u=l._private.data.id;this[s]=undefined;this[t]=l;i.set(u,{ele:l,index:t})}this.length--;return this},unmergeOne:function e(t){t=t[0];var r=this._private;var a=t._private.data.id;var n=r.map;var i=n.get(a);if(!i){return this}var o=i.index;this.unmergeAt(o);return this},unmerge:function e(t){var r=this._private.cy;if(!t){return this}if(t&&D(t)){var a=t;t=r.mutableElements().filter(a)}for(var n=0;n=0;r--){var a=this[r];if(t(a)){this.unmergeAt(r)}}return this},map:function e(t,r){var a=[];var n=this;for(var i=0;ie){e=s;a=o}}return{value:e,ele:a}},min:function e(t,r){var e=Infinity;var a;var n=this;for(var i=0;i=0&&i1&&arguments[1]!==undefined?arguments[1]:true;var a=this[0];var n=a.cy();if(!n.styleEnabled()){return}if(a){if(a._private.styleDirty){a._private.styleDirty=false;n.style().apply(a)}var i=a._private.style[t];if(i!=null){return i}else if(r){return n.style().getDefaultProperty(t)}else{return null}}},numericStyle:function e(t){var r=this[0];if(!r.cy().styleEnabled()){return}if(r){var a=r.pstyle(t);return a.pfValue!==undefined?a.pfValue:a.value}},numericStyleUnits:function e(t){var r=this[0];if(!r.cy().styleEnabled()){return}if(r){return r.pstyle(t).units}},renderedStyle:function e(t){var r=this.cy();if(!r.styleEnabled()){return this}var a=this[0];if(a){return r.style().getRenderedStyle(a,t)}},style:function e(t,r){var a=this.cy();if(!a.styleEnabled()){return this}var n=false;var e=a.style();if(_(t)){var i=t;e.applyBypass(this,i,n);this.emitAndNotify("style")}else if(D(t)){if(r===undefined){var o=this[0];if(o){return e.getStylePropertyValue(o,t)}else{return}}else{e.applyBypass(this,t,r,n);this.emitAndNotify("style")}}else if(t===undefined){var s=this[0];if(s){return e.getRawStyle(s)}else{return}}return this},removeStyle:function e(t){var r=this.cy();if(!r.styleEnabled()){return this}var a=false;var n=r.style();var i=this;if(t===undefined){for(var o=0;o0){t.push(v[0])}t.push(s[0])}}return this.spawn(t,true).filter(e)}),"neighborhood"),closedNeighborhood:function e(t){return this.neighborhood().add(this).filter(t)},openNeighborhood:function e(t){return this.neighborhood(t)}});Ev.neighbourhood=Ev.neighborhood;Ev.closedNeighbourhood=Ev.closedNeighborhood;Ev.openNeighbourhood=Ev.openNeighborhood;se(Ev,{source:Xl((function e(t){var r=this[0];var a;if(r){a=r._private.source||r.cy().collection()}return a&&t?a.filter(t):a}),"source"),target:Xl((function e(t){var r=this[0];var a;if(r){a=r._private.target||r.cy().collection()}return a&&t?a.filter(t):a}),"target"),sources:Pv({attr:"source"}),targets:Pv({attr:"target"})});function Pv(e){return function t(r){var a=[];for(var n=0;n0);return e},component:function e(){var t=this[0];return t.cy().mutableElements().components(t)[0]}});Ev.componentsOf=Ev.components;var Bv=function e(t,r){var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(t===undefined){Rt("A collection must have a reference to the core");return}var i=new Zt;var o=false;if(!r){r=[]}else if(r.length>0&&_(r[0])&&!O(r[0])){o=true;var s=[];var l=new Jt;for(var u=0,v=r.length;u0&&arguments[0]!==undefined?arguments[0]:true;var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var r=this;var a=r.cy();var n=a._private;var i=[];var o=[];var s;for(var l=0,u=r.length;l0){var O=s.length===r.length?r:new Bv(a,s);for(var z=0;z0&&arguments[0]!==undefined?arguments[0]:true;var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var r=this;var a=[];var n={};var i=r._private.cy;function o(e){var t=e._private.edges;for(var r=0;r0){if(e){S.emitAndNotify("remove")}else if(t){S.emit("remove")}}for(var D=0;D0){n=l}else{a=l}}while(Math.abs(i)>o&&++u=i){return m(t,v)}else if(f===0){return v}else{return x(t,a,a+u)}}var E=false;function T(){E=true;if(e!==t||r!==a){b()}}var k=function n(i){if(!E){T()}if(e===t&&r===a){return i}if(i===0){return 0}if(i===1){return 1}return g(w(i),t,a)};k.getControlPoints=function(){return[{x:e,y:t},{x:r,y:a}]};var C="generateBezier("+[e,t,r,a]+")";k.toString=function(){return C};return k}var Iv=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},i=t(r,a*.5,n),o=t(r,a*.5,i),s=t(r,a,o),l=1/6*(n.dx+2*(i.dx+o.dx)+s.dx),u=1/6*(n.dv+2*(i.dv+o.dv)+s.dv);r.x=r.x+l*a;r.v=r.v+u*a;return r}return function e(t,a,n){var i={x:-1,v:0,tension:null,friction:null},o=[0],s=0,l=1/1e4,u=16/1e3,v,f,c;t=parseFloat(t)||500;a=parseFloat(a)||20;n=n||null;i.tension=t;i.friction=a;v=n!==null;if(v){s=e(t,a);f=s/n*u}else{f=u}for(;;){c=r(c||i,f);o.push(1+c.x);s+=16;if(!(Math.abs(c.x)>l&&Math.abs(c.v)>l)){break}}return!v?s:function(e){return o[e*(o.length-1)|0]}}}();var Rv=function e(t,r,a,n){var i=Mv(t,r,a,n);return function(e,t,r){return e+(t-e)*i(r)}};var Nv={linear:function e(t,r,a){return t+(r-t)*a},ease:Rv(.25,.1,.25,1),"ease-in":Rv(.42,0,1,1),"ease-out":Rv(0,0,.58,1),"ease-in-out":Rv(.42,0,.58,1),"ease-in-sine":Rv(.47,0,.745,.715),"ease-out-sine":Rv(.39,.575,.565,1),"ease-in-out-sine":Rv(.445,.05,.55,.95),"ease-in-quad":Rv(.55,.085,.68,.53),"ease-out-quad":Rv(.25,.46,.45,.94),"ease-in-out-quad":Rv(.455,.03,.515,.955),"ease-in-cubic":Rv(.55,.055,.675,.19),"ease-out-cubic":Rv(.215,.61,.355,1),"ease-in-out-cubic":Rv(.645,.045,.355,1),"ease-in-quart":Rv(.895,.03,.685,.22),"ease-out-quart":Rv(.165,.84,.44,1),"ease-in-out-quart":Rv(.77,0,.175,1),"ease-in-quint":Rv(.755,.05,.855,.06),"ease-out-quint":Rv(.23,1,.32,1),"ease-in-out-quint":Rv(.86,0,.07,1),"ease-in-expo":Rv(.95,.05,.795,.035),"ease-out-expo":Rv(.19,1,.22,1),"ease-in-out-expo":Rv(1,0,0,1),"ease-in-circ":Rv(.6,.04,.98,.335),"ease-out-circ":Rv(.075,.82,.165,1),"ease-in-out-circ":Rv(.785,.135,.15,.86),spring:function e(t,r,a){if(a===0){return Nv.linear}var e=Iv(t,r,a);return function(t,r,a){return t+(r-t)*e(a)}},"cubic-bezier":Rv};function Lv(e,t,r,a,n){if(a===1){return r}if(t===r){return r}var i=n(t,r,a);if(e==null){return i}if(e.roundValue||e.color){i=Math.round(i)}if(e.min!==undefined){i=Math.max(i,e.min)}if(e.max!==undefined){i=Math.min(i,e.max)}return i}function Ov(e,t){if(e.pfValue!=null||e.value!=null){if(e.pfValue!=null&&(t==null||t.type.units!=="%")){return e.pfValue}else{return e.value}}else{return e}}function zv(e,t,r,a,n){var i=n!=null?n.type:null;if(r<0){r=0}else if(r>1){r=1}var o=Ov(e,n);var s=Ov(t,n);if(I(o)&&I(s)){return Lv(i,o,s,r,a)}else if(A(o)&&A(s)){var l=[];for(var u=0;u0){if(d==="spring"){h.push(o.duration)}o.easingImpl=Nv[d].apply(null,h)}else{o.easingImpl=Nv[d]}}}var p=o.easingImpl;var g;if(o.duration===0){g=1}else{g=(r-l)/o.duration}if(o.applying){g=o.progress}if(g<0){g=0}else if(g>1){g=1}if(o.delay==null){var y=o.startPosition;var m=o.position;if(m&&n&&!e.locked()){var b={};if(Vv(y.x,m.x)){b.x=zv(y.x,m.x,g,p)}if(Vv(y.y,m.y)){b.y=zv(y.y,m.y,g,p)}e.position(b)}var x=o.startPan;var w=o.pan;var E=i.pan;var T=w!=null&&a;if(T){if(Vv(x.x,w.x)){E.x=zv(x.x,w.x,g,p)}if(Vv(x.y,w.y)){E.y=zv(x.y,w.y,g,p)}e.emit("pan")}var k=o.startZoom;var C=o.zoom;var P=C!=null&&a;if(P){if(Vv(k,C)){i.zoom=Yr(i.minZoom,zv(k,C,g,p),i.maxZoom)}e.emit("zoom")}if(T||P){e.emit("viewport")}var S=o.style;if(S&&S.length>0&&n){for(var B=0;B=0;r--){var a=t[r];a()}t.splice(0,t.length)};for(var v=i.length-1;v>=0;v--){var f=i[v];var c=f._private;if(c.stopped){i.splice(v,1);c.hooked=false;c.playing=false;c.started=false;u(c.frames);continue}if(!c.playing&&!c.applying){continue}if(c.playing&&c.applying){c.applying=false}if(!c.started){jv(t,f,e)}Fv(t,f,e,r);if(c.applying){c.applying=false}u(c.frames);if(c.step!=null){c.step(e)}if(f.completed()){i.splice(v,1);c.hooked=false;c.playing=false;c.started=false;u(c.completes)}s=true}if(!r&&i.length===0&&o.length===0){a.push(t)}return s}var i=false;for(var o=0;o0){t.notify("draw",r)}else{t.notify("draw")}}r.unmerge(a);t.emit("step")}var Yv={animate:fl.animate(),animation:fl.animation(),animated:fl.animated(),clearQueue:fl.clearQueue(),delay:fl.delay(),delayAnimation:fl.delayAnimation(),stop:fl.stop(),addToAnimationPool:function e(t){var r=this;if(!r.styleEnabled()){return}r._private.aniEles.merge(t)},stopAnimationLoop:function e(){this._private.animationsRunning=false},startAnimationLoop:function e(){var t=this;t._private.animationsRunning=true;if(!t.styleEnabled()){return}function r(){if(!t._private.animationsRunning){return}ft((function e(a){Xv(a,t);r()}))}var a=t.renderer();if(a&&a.beforeRender){a.beforeRender((function e(r,a){Xv(a,t)}),a.beforeRenderPriorities.animations)}else{r()}}};var qv={qualifierCompare:function e(t,r){if(t==null||r==null){return t==null&&r==null}else{return t.sameText(r)}},eventMatches:function e(t,r,a){var n=r.qualifier;if(n!=null){return t!==a.target&&O(a.target)&&n.matches(a.target)}return true},addEventFields:function e(t,r){r.cy=t;r.target=t},callbackContext:function e(t,r,a){return r.qualifier!=null?a.target:t}};var Wv=function e(t){if(D(t)){return new Fl(t)}else{return t}};var Uv={createEmitter:function e(){var t=this._private;if(!t.emitter){t.emitter=new Uu(qv,this)}return this},emitter:function e(){return this._private.emitter},on:function e(t,r,a){this.emitter().on(t,Wv(r),a);return this},removeListener:function e(t,r,a){this.emitter().removeListener(t,Wv(r),a);return this},removeAllListeners:function e(){this.emitter().removeAllListeners();return this},one:function e(t,r,a){this.emitter().one(t,Wv(r),a);return this},once:function e(t,r,a){this.emitter().one(t,Wv(r),a);return this},emit:function e(t,r){this.emitter().emit(t,r);return this},emitAndNotify:function e(t,r){this.emit(t);this.notify(t,r);return this}};fl.eventAliasesOn(Uv);var Gv={png:function e(t){var r=this._private.renderer;t=t||{};return r.png(t)},jpg:function e(t){var r=this._private.renderer;t=t||{};t.bg=t.bg||"#fff";return r.jpg(t)}};Gv.jpeg=Gv.jpg;var Hv={layout:function e(t){var r=this;if(t==null){Rt("Layout options must be specified to make a layout");return}if(t.name==null){Rt("A `name` must be specified to make a layout");return}var a=t.name;var n=r.extension("layout",a);if(n==null){Rt("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;if(D(t.eles)){i=r.$(t.eles)}else{i=t.eles!=null?t.eles:r.$()}var e=new n(se({},t,{cy:r,eles:i}));return e}};Hv.createLayout=Hv.makeLayout=Hv.layout;var Kv={notify:function e(t,r){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[t]=a.batchNotifications[t]||this.collection();if(r!=null){n.merge(r)}return}if(!a.notificationsEnabled){return}var i=this.renderer();if(this.destroyed()||!i){return}i.notify(t,r)},notifications:function e(t){var r=this._private;if(t===undefined){return r.notificationsEnabled}else{r.notificationsEnabled=t?true:false}return this},noNotifications:function e(t){this.notifications(false);t();this.notifications(true)},batching:function e(){return this._private.batchCount>0},startBatch:function e(){var t=this._private;if(t.batchCount==null){t.batchCount=0}if(t.batchCount===0){t.batchStyleEles=this.collection();t.batchNotifications={}}t.batchCount++;return this},endBatch:function e(){var t=this._private;if(t.batchCount===0){return this}t.batchCount--;if(t.batchCount===0){t.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(t.batchNotifications).forEach((function(e){var a=t.batchNotifications[e];if(a.empty()){r.notify(e)}else{r.notify(e,a)}}))}return this},batch:function e(t){this.startBatch();t();this.endBatch();return this},batchData:function e(t){var r=this;return this.batch((function(){var e=Object.keys(t);for(var a=0;a0){r.removeChild(r.childNodes[0])}}t._private.renderer=null;t.mutableElements().forEach((function(e){var t=e._private;t.rscratch={};t.rstyle={};t.animation.current=[];t.animation.queue=[]}))},onRender:function e(t){return this.on("render",t)},offRender:function e(t){return this.off("render",t)}};$v.invalidateDimensions=$v.resize;var Qv={collection:function e(t,r){if(D(t)){return this.$(t)}else if(L(t)){return t.collection()}else if(A(t)){if(!r){r={}}return new Bv(this,t,r.unique,r.removed)}return new Bv(this)},nodes:function e(t){var e=this.$((function(e){return e.isNode()}));if(t){return e.filter(t)}return e},edges:function e(t){var e=this.$((function(e){return e.isEdge()}));if(t){return e.filter(t)}return e},$:function e(t){var r=this._private.elements;if(t){return r.filter(t)}else{return r.spawnSelf()}},mutableElements:function e(){return this._private.elements}};Qv.elements=Qv.filter=Qv.$;var Jv={};var ef="t";var tf="f";Jv.apply=function(e){var t=this;var r=t._private;var a=r.cy;var n=a.collection();for(var i=0;i0;if(c||f&&d){var h=undefined;if(c&&d){h=u.properties}else if(c){h=u.properties}else if(d){h=u.mappedProperties}for(var p=0;p1){x=1}if(s.color){var E=a.valueMin[0];var T=a.valueMax[0];var k=a.valueMin[1];var C=a.valueMax[1];var P=a.valueMin[2];var S=a.valueMax[2];var D=a.valueMin[3]==null?1:a.valueMin[3];var B=a.valueMax[3]==null?1:a.valueMax[3];var A=[Math.round(E+(T-E)*x),Math.round(k+(C-k)*x),Math.round(P+(S-P)*x),Math.round(D+(B-D)*x)];i={bypass:a.bypass,name:a.name,value:A,strValue:"rgb("+A[0]+", "+A[1]+", "+A[2]+")"}}else if(s.number){var _=a.valueMin+(a.valueMax-a.valueMin)*x;i=this.parse(a.name,_,a.bypass,c)}else{return false}if(!i){p();return false}i.mapping=a;a=i;break}case o.data:{var M=a.field.split(".");var R=f.data;for(var N=0;N0&&i>0){var s={};var l=false;for(var u=0;u0){e.delayAnimation(o).play().promise().then(t)}else{t()}})).then((function(){return e.animation({style:s,duration:i,easing:e.pstyle("transition-timing-function").value,queue:false}).play().promise()})).then((function(){r.removeBypasses(e,n);e.emitAndNotify("style");a.transitioning=false}))}else if(a.transitioning){this.removeBypasses(e,n);e.emitAndNotify("style");a.transitioning=false}};Jv.checkTrigger=function(e,t,r,a,n,i){var o=this.properties[t];var s=n(o);if(e.removed()){return}if(s!=null&&s(r,a,e)){i(o)}};Jv.checkZOrderTrigger=function(e,t,r,a){var n=this;this.checkTrigger(e,t,r,a,(function(e){return e.triggersZOrder}),(function(){n._private.cy.notify("zorder",e)}))};Jv.checkBoundsTrigger=function(e,t,r,a){this.checkTrigger(e,t,r,a,(function(e){return e.triggersBounds}),(function(t){e.dirtyCompoundBoundsCache();e.dirtyBoundingBoxCache()}))};Jv.checkConnectedEdgesBoundsTrigger=function(e,t,r,a){this.checkTrigger(e,t,r,a,(function(e){return e.triggersBoundsOfConnectedEdges}),(function(t){e.connectedEdges().forEach((function(e){e.dirtyBoundingBoxCache()}))}))};Jv.checkParallelEdgesBoundsTrigger=function(e,t,r,a){this.checkTrigger(e,t,r,a,(function(e){return e.triggersBoundsOfParallelEdges}),(function(t){e.parallelEdges().forEach((function(e){e.dirtyBoundingBoxCache()}))}))};Jv.checkTriggers=function(e,t,r,a){e.dirtyStyleCache();this.checkZOrderTrigger(e,t,r,a);this.checkBoundsTrigger(e,t,r,a);this.checkConnectedEdgesBoundsTrigger(e,t,r,a);this.checkParallelEdgesBoundsTrigger(e,t,r,a)};var rf={};rf.applyBypass=function(e,t,r,a){var n=this;var i=[];var o=true;if(t==="*"||t==="**"){if(r!==undefined){for(var s=0;sn.length){a=a.substr(n.length)}else{a=""}}function l(){if(i.length>o.length){i=i.substr(o.length)}else{i=""}}for(;;){var u=a.match(/^\s*$/);if(u){break}var v=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!v){Lt("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=v[0];var f=v[1];if(f!=="core"){var c=new Fl(f);if(c.invalid){Lt("Skipping parsing of block: Invalid selector found in string stylesheet: "+f);s();continue}}var d=v[2];var h=false;i=d;var p=[];for(;;){var g=i.match(/^\s*$/);if(g){break}var y=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!y){Lt("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+d);h=true;break}o=y[0];var m=y[1];var b=y[2];var x=t.properties[m];if(!x){Lt("Skipping property: Invalid property name in: "+o);l();continue}var w=r.parse(m,b);if(!w){Lt("Skipping property: Invalid property definition in: "+o);l();continue}p.push({name:m,val:b});l()}if(h){s();break}r.selector(f);for(var E=0;E=7&&t[0]==="d"&&(v=new RegExp(s.data.regex).exec(t))){if(r){return false}var c=s.data;return{name:e,value:v,strValue:""+t,mapped:c,field:v[1],bypass:r}}else if(t.length>=10&&t[0]==="m"&&(f=new RegExp(s.mapData.regex).exec(t))){if(r){return false}if(u.multiple){return false}var d=s.mapData;if(!(u.color||u.number)){return false}var h=this.parse(e,f[4]);if(!h||h.mapped){return false}var p=this.parse(e,f[5]);if(!p||p.mapped){return false}if(h.pfValue===p.pfValue||h.strValue===p.strValue){Lt("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+h.strValue+"`");return this.parse(e,h.strValue)}else if(u.color){var g=h.value;var y=p.value;var m=g[0]===y[0]&&g[1]===y[1]&&g[2]===y[2]&&(g[3]===y[3]||(g[3]==null||g[3]===1)&&(y[3]==null||y[3]===1));if(m){return false}}return{name:e,value:f,strValue:""+t,mapped:d,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:h.value,valueMax:p.value,bypass:r}}if(u.multiple&&a!=="multiple"){var b;if(l){b=t.split(/\s+/)}else if(A(t)){b=t}else{b=[t]}if(u.evenMultiple&&b.length%2!==0){return null}var x=[];var w=[];var E=[];var T="";var k=false;for(var C=0;C0?" ":"")+P.strValue}if(u.validate&&!u.validate(x,w)){return null}if(u.singleEnum&&k){if(x.length===1&&D(x[0])){return{name:e,value:x[0],strValue:x[0],bypass:r}}else{return null}}return{name:e,value:x,pfValue:E,strValue:T,bypass:r,units:w}}var S=function a(){for(var n=0;nu.max||u.strictMax&&t===u.max)){return null}var L={name:e,value:t,strValue:""+t+(_?_:""),units:_,bypass:r};if(u.unitless||_!=="px"&&_!=="em"){L.pfValue=t}else{L.pfValue=_==="px"||!_?t:this.getEmSizeInPixels()*t}if(_==="ms"||_==="s"){L.pfValue=_==="ms"?t:1e3*t}if(_==="deg"||_==="rad"){L.pfValue=_==="rad"?t:Ir(t)}if(_==="%"){L.pfValue=t/100}return L}else if(u.propList){var O=[];var z=""+t;if(z==="none");else{var F=z.split(/\s*,\s*|\s+/);for(var V=0;V0&&s>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){l=Math.min((o-2*r)/a.w,(s-2*r)/a.h);l=l>this._private.maxZoom?this._private.maxZoom:l;l=l=a.minZoom){a.maxZoom=r}return this},minZoom:function e(t){if(t===undefined){return this._private.minZoom}else{return this.zoomRange({min:t})}},maxZoom:function e(t){if(t===undefined){return this._private.maxZoom}else{return this.zoomRange({max:t})}},getZoomedViewport:function e(t){var r=this._private;var a=r.pan;var n=r.zoom;var i;var o;var s=false;if(!r.zoomingEnabled){s=true}if(I(t)){o=t}else if(_(t)){o=t.level;if(t.position!=null){i=Pr(t.position,n,a)}else if(t.renderedPosition!=null){i=t.renderedPosition}if(i!=null&&!r.panningEnabled){s=true}}o=o>r.maxZoom?r.maxZoom:o;o=or.maxZoom||!r.zoomingEnabled){o=true}else{r.zoom=l;i.push("zoom")}}if(n&&(!o||!t.cancelOnFailedZoom)&&r.panningEnabled){var u=t.pan;if(I(u.x)){r.pan.x=u.x;s=false}if(I(u.y)){r.pan.y=u.y;s=false}if(!s){i.push("pan")}}if(i.length>0){i.push("viewport");this.emit(i.join(" "));this.notify("viewport")}return this},center:function e(t){var r=this.getCenterPan(t);if(r){this._private.pan=r;this.emit("pan viewport");this.notify("viewport")}return this},getCenterPan:function e(t,r){if(!this._private.panningEnabled){return}if(D(t)){var a=t;t=this.mutableElements().filter(a)}else if(!L(t)){t=this.mutableElements()}if(t.length===0){return}var n=t.boundingBox();var i=this.width();var o=this.height();r=r===undefined?this._private.zoom:r;var s={x:(i-r*(n.x1+n.x2))/2,y:(o-r*(n.y1+n.y2))/2};return s},reset:function e(){if(!this._private.panningEnabled||!this._private.zoomingEnabled){return this}this.viewport({pan:{x:0,y:0},zoom:1});return this},invalidateSize:function e(){this._private.sizeCache=null},size:function e(){var t=this._private;var r=t.container;var a=this;return t.sizeCache=t.sizeCache||(r?function(){var e=a.window().getComputedStyle(r);var t=function t(r){return parseFloat(e.getPropertyValue(r))};return{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}}():{width:1,height:1})},width:function e(){return this.size().width},height:function e(){return this.size().height},extent:function e(){var t=this._private.pan;var r=this._private.zoom;var a=this.renderedExtent();var n={x1:(a.x1-t.x)/r,x2:(a.x2-t.x)/r,y1:(a.y1-t.y)/r,y2:(a.y2-t.y)/r};n.w=n.x2-n.x1;n.h=n.y2-n.y1;return n},renderedExtent:function e(){var t=this.width();var r=this.height();return{x1:0,y1:0,x2:t,y2:r,w:t,h:r}},multiClickDebounceTime:function e(t){if(t)this._private.multiClickDebounceTime=t;else return this._private.multiClickDebounceTime;return this}};hf.centre=hf.center;hf.autolockNodes=hf.autolock;hf.autoungrabifyNodes=hf.autoungrabify;var pf={data:fl.data({field:"data",bindingEvent:"data",allowBinding:true,allowSetting:true,settingEvent:"data",settingTriggersEvent:true,triggerFnName:"trigger",allowGetting:true,updateStyle:true}),removeData:fl.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:true,updateStyle:true}),scratch:fl.data({field:"scratch",bindingEvent:"scratch",allowBinding:true,allowSetting:true,settingEvent:"scratch",settingTriggersEvent:true,triggerFnName:"trigger",allowGetting:true,updateStyle:true}),removeScratch:fl.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:true,updateStyle:true})};pf.attr=pf.data;pf.removeAttr=pf.removeData;var gf=function e(t){var r=this;t=se({},t);var a=t.container;if(a&&!N(a)&&N(a[0])){a=a[0]}var n=a?a._cyreg:null;n=n||{};if(n&&n.cy){n.cy.destroy();n={}}var i=n.readies=n.readies||[];if(a){a._cyreg=n}n.cy=r;var o=w!==undefined&&a!==undefined&&!t.headless;var s=t;s.layout=se({name:o?"grid":"null"},s.layout);s.renderer=se({name:o?"canvas":"null"},s.renderer);var l=function e(t,r,a){if(r!==undefined){return r}else if(a!==undefined){return a}else{return t}};var u=this._private={container:a,ready:false,options:s,elements:new Bv(this),listeners:[],aniEles:new Bv(this),data:s.data||{},scratch:{},layout:null,renderer:null,destroyed:false,notificationsEnabled:true,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:l(true,s.zoomingEnabled),userZoomingEnabled:l(true,s.userZoomingEnabled),panningEnabled:l(true,s.panningEnabled),userPanningEnabled:l(true,s.userPanningEnabled),boxSelectionEnabled:l(true,s.boxSelectionEnabled),autolock:l(false,s.autolock,s.autolockNodes),autoungrabify:l(false,s.autoungrabify,s.autoungrabifyNodes),autounselectify:l(false,s.autounselectify),styleEnabled:s.styleEnabled===undefined?o:s.styleEnabled,zoom:I(s.zoom)?s.zoom:1,pan:{x:_(s.pan)&&I(s.pan.x)?s.pan.x:0,y:_(s.pan)&&I(s.pan.y)?s.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:false,multiClickDebounceTime:l(250,s.multiClickDebounceTime)};this.createEmitter();this.selectionType(s.selectionType);this.zoomRange({min:s.minZoom,max:s.maxZoom});var v=function e(t,r){var a=t.some(W);if(a){return si.all(t).then(r)}else{r(t)}};if(u.styleEnabled){r.setStyle([])}var f=se({},s,s.renderer);r.initRenderer(f);var c=function e(t,a,n){r.notifications(false);var i=r.mutableElements();if(i.length>0){i.remove()}if(t!=null){if(_(t)||A(t)){r.add(t)}}r.one("layoutready",(function(e){r.notifications(true);r.emit(e);r.one("load",a);r.emitAndNotify("load")})).one("layoutstop",(function(){r.one("done",n);r.emit("done")}));var o=se({},r._private.options.layout);o.eles=r.elements();r.layout(o).run()};v([s.style,s.elements],(function(e){var t=e[0];var a=e[1];if(u.styleEnabled){r.style().append(t)}c(a,(function(){r.startAnimationLoop();u.ready=true;if(B(s.ready)){r.on("ready",s.ready)}for(var e=0;e0;var s=!!e.boundingBox;var l=t.extent();var u=qr(s?e.boundingBox:{x1:l.x1,y1:l.y1,w:l.w,h:l.h});var v;if(L(e.roots)){v=e.roots}else if(A(e.roots)){var f=[];for(var c=0;c0){var I=M();var R=P(I,B);if(R){I.outgoers().filter((function(e){return e.isNode()&&r.has(e)})).forEach(_)}else if(R===null){Lt("Detected double maximal shift for node `"+I.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var N=0;if(e.avoidOverlap){for(var O=0;O0&&m[0].length<=3?o/2:0);var v=2*Math.PI/m[n].length*i;if(n===0&&m[0].length===1){l=1}return{x:Q.x+l*Math.cos(v),y:Q.y+l*Math.sin(v)}}else{var f=m[n].length;var c=Math.max(f===1?0:s?(u.w-e.padding*2-J.w)/((e.grid?te:f)-1):(u.w-e.padding*2-J.w)/((e.grid?te:f)+1),N);var d={x:Q.x+(i+1-(f+1)/2)*c,y:Q.y+(n+1-(W+1)/2)*ee};return d}};r.nodes().layoutPositions(this,e,re);return this};var Tf={fit:true,padding:30,boundingBox:undefined,avoidOverlap:true,nodeDimensionsIncludeLabels:false,spacingFactor:undefined,radius:undefined,startAngle:3/2*Math.PI,sweep:undefined,clockwise:true,sort:undefined,animate:false,animationDuration:500,animationEasing:undefined,animateFilter:function e(t,r){return true},ready:undefined,stop:undefined,transform:function e(t,r){return r}};function kf(e){this.options=se({},Tf,e)}kf.prototype.run=function(){var e=this.options;var t=e;var r=e.cy;var a=t.eles;var n=t.counterclockwise!==undefined?!t.counterclockwise:t.clockwise;var i=a.nodes().not(":parent");if(t.sort){i=i.sort(t.sort)}var o=qr(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});var s={x:o.x1+o.w/2,y:o.y1+o.h/2};var l=t.sweep===undefined?2*Math.PI-2*Math.PI/i.length:t.sweep;var u=l/Math.max(1,i.length-1);var v;var f=0;for(var c=0;c1&&t.avoidOverlap){f*=1.75;var y=Math.cos(u)-Math.cos(0);var m=Math.sin(u)-Math.sin(0);var b=Math.sqrt(f*f/(y*y+m*m));v=Math.max(b,v)}var x=function e(r,a){var i=t.startAngle+a*u*(n?1:-1);var o=v*Math.cos(i);var l=v*Math.sin(i);var f={x:s.x+o,y:s.y+l};return f};a.nodes().layoutPositions(this,t,x);return this};var Cf={fit:true,padding:30,startAngle:3/2*Math.PI,sweep:undefined,clockwise:true,equidistant:false,minNodeSpacing:10,boundingBox:undefined,avoidOverlap:true,nodeDimensionsIncludeLabels:false,height:undefined,width:undefined,spacingFactor:undefined,concentric:function e(t){return t.degree()},levelWidth:function e(t){return t.maxDegree()/4},animate:false,animationDuration:500,animationEasing:undefined,animateFilter:function e(t,r){return true},ready:undefined,stop:undefined,transform:function e(t,r){return r}};function Pf(e){this.options=se({},Cf,e)}Pf.prototype.run=function(){var e=this.options;var t=e;var r=t.counterclockwise!==undefined?!t.counterclockwise:t.clockwise;var a=e.cy;var n=t.eles;var i=n.nodes().not(":parent");var o=qr(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()});var s={x:o.x1+o.w/2,y:o.y1+o.h/2};var l=[];var u=0;for(var v=0;v0){var w=Math.abs(m[0].value-x.value);if(w>=g){m=[];y.push(m)}}m.push(x)}var E=u+t.minNodeSpacing;if(!t.avoidOverlap){var T=y.length>0&&y[0].length>1;var k=Math.min(o.w,o.h)/2-E;var C=k/(y.length+T?1:0);E=Math.min(E,C)}var P=0;for(var S=0;S1&&t.avoidOverlap){var _=Math.cos(A)-Math.cos(0);var M=Math.sin(A)-Math.sin(0);var I=Math.sqrt(E*E/(_*_+M*M));P=Math.max(I,P)}D.r=P;P+=E}if(t.equidistant){var R=0;var N=0;for(var L=0;L=e.numIter){return false}Of(a,e);a.temperature=a.temperature*e.coolingFactor;if(a.temperature=e.animationThreshold){i()}ft(v)}};v()}else{while(u){u=o(l);l++}Kf(a,e);s()}return this};Bf.prototype.stop=function(){this.stopped=true;if(this.thread){this.thread.stop()}this.emit("layoutstop");return this};Bf.prototype.destroy=function(){if(this.thread){this.thread.stop()}return this};var Af=function e(t,r,a){var n=a.eles.edges();var i=a.eles.nodes();var o=qr(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});var s={isCompound:t.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:a.initialTemp,clientWidth:o.w,clientHeight:o.h,boundingBox:o};var l=a.eles.components();var u={};for(var v=0;v0){s.graphSet.push(k);for(var v=0;vn.count){return 0}else{return n.graph}};var Mf=function e(t,r,a,n){var i=n.graphSet[a];if(-10){var f=n.nodeOverlap*v;var c=Math.sqrt(s*s+l*l);var d=f*s/c;var h=f*l/c}else{var p=Xf(t,s,l);var g=Xf(r,-1*s,-1*l);var y=g.x-p.x;var m=g.y-p.y;var b=y*y+m*m;var c=Math.sqrt(b);var f=(t.nodeRepulsion+r.nodeRepulsion)/b;var d=f*y/c;var h=f*m/c}if(!t.isLocked){t.offsetX-=d;t.offsetY-=h}if(!r.isLocked){r.offsetX+=d;r.offsetY+=h}return};var jf=function e(t,r,a,n){if(a>0){var i=t.maxX-r.minX}else{var i=r.maxX-t.minX}if(n>0){var o=t.maxY-r.minY}else{var o=r.maxY-t.minY}if(i>=0&&o>=0){return Math.sqrt(i*i+o*o)}else{return 0}};var Xf=function e(t,r,a){var n=t.positionX;var i=t.positionY;var o=t.height||1;var s=t.width||1;var l=a/r;var u=o/s;var v={};if(0===r&&0a){v.x=n;v.y=i+o/2;return v}if(0r&&-1*u<=l&&l<=u){v.x=n-s/2;v.y=i-s*a/2/r;return v}if(0=u)){v.x=n+o*r/2/a;v.y=i+o/2;return v}if(0>a&&(l<=-1*u||l>=u)){v.x=n-o*r/2/a;v.y=i-o/2;return v}return v};var Yf=function e(t,r){for(var a=0;aa){var g=r.gravity*d/p;var y=r.gravity*h/p;c.offsetX+=g;c.offsetY+=y}}}};var Wf=function e(t,r){var a=[];var n=0;var i=-1;a.push.apply(a,t.graphSet[0]);i+=t.graphSet[0].length;while(n<=i){var o=a[n++];var s=t.idToIndex[o];var l=t.layoutNodes[s];var u=l.children;if(0a){var i={x:a*t/n,y:a*r/n}}else{var i={x:t,y:r}}return i};var Hf=function e(t,r){var a=t.parentId;if(null==a){return}var n=r.layoutNodes[r.idToIndex[a]];var i=false;if(null==n.maxX||t.maxX+n.padRight>n.maxX){n.maxX=t.maxX+n.padRight;i=true}if(null==n.minX||t.minX-n.padLeftn.maxY){n.maxY=t.maxY+n.padBottom;i=true}if(null==n.minY||t.minY-n.padTopy){h+=g+r.componentSpacing;d=0;p=0;g=0}}};var Zf={fit:true,padding:30,boundingBox:undefined,avoidOverlap:true,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:false,spacingFactor:undefined,condense:false,rows:undefined,cols:undefined,position:function e(t){},sort:undefined,animate:false,animationDuration:500,animationEasing:undefined,animateFilter:function e(t,r){return true},ready:undefined,stop:undefined,transform:function e(t,r){return r}};function $f(e){this.options=se({},Zf,e)}$f.prototype.run=function(){var e=this.options;var t=e;var r=e.cy;var a=t.eles;var n=a.nodes().not(":parent");if(t.sort){n=n.sort(t.sort)}var i=qr(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(i.h===0||i.w===0){a.nodes().layoutPositions(this,t,(function(e){return{x:i.x1,y:i.y1}}))}else{var o=n.size();var s=Math.sqrt(o*i.h/i.w);var l=Math.round(s);var u=Math.round(i.w/i.h*s);var v=function e(t){if(t==null){return Math.min(l,u)}else{var r=Math.min(l,u);if(r==l){l=t}else{u=t}}};var f=function e(t){if(t==null){return Math.max(l,u)}else{var r=Math.max(l,u);if(r==l){l=t}else{u=t}}};var c=t.rows;var d=t.cols!=null?t.cols:t.columns;if(c!=null&&d!=null){l=c;u=d}else if(c!=null&&d==null){l=c;u=Math.ceil(o/l)}else if(c==null&&d!=null){u=d;l=Math.ceil(o/u)}else if(u*l>o){var h=v();var p=f();if((h-1)*p>=o){v(h-1)}else if((p-1)*h>=o){f(p-1)}}else{while(u*l=o){f(y+1)}else{v(g+1)}}}var m=i.w/u;var b=i.h/l;if(t.condense){m=0;b=0}if(t.avoidOverlap){for(var x=0;x=u){_=0;A++}};var I={};for(var R=0;R(b=ua(e,t,x[w],x[w+1],x[w+2],x[w+3]))){g(r,b);return true}}}else if(o.edgeType==="bezier"||o.edgeType==="multibezier"||o.edgeType==="self"||o.edgeType==="compound"){var x=o.allpts;for(var w=0;w+5(b=la(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5]))){g(r,b);return true}}}var p=p||a.source;var m=m||a.target;var E=n.getArrowWidth(l,f);var T=[{name:"source",x:o.arrowStartX,y:o.arrowStartY,angle:o.srcArrowAngle},{name:"target",x:o.arrowEndX,y:o.arrowEndY,angle:o.tgtArrowAngle},{name:"mid-source",x:o.midX,y:o.midY,angle:o.midsrcArrowAngle},{name:"mid-target",x:o.midX,y:o.midY,angle:o.midtgtArrowAngle}];for(var w=0;w0){y(p);y(m)}}function b(e,t,r){return Gt(e,t,r)}function x(r,a){var n=r._private;var i=c;var o;if(a){o=a+"-"}else{o=""}r.boundingBox();var s=n.labelBounds[a||"main"];var l=r.pstyle(o+"label").value;var u=r.pstyle("text-events").strValue==="yes";if(!u||!l){return}var v=b(n.rscratch,"labelX",a);var f=b(n.rscratch,"labelY",a);var d=b(n.rscratch,"labelAngle",a);var h=r.pstyle(o+"text-margin-x").pfValue;var p=r.pstyle(o+"text-margin-y").pfValue;var y=s.x1-i-h;var m=s.x2+i-h;var x=s.y1-i-p;var w=s.y2+i-p;if(d){var E=Math.cos(d);var T=Math.sin(d);var k=function e(t,r){t=t-v;r=r-f;return{x:t*E-r*T+v,y:t*T+r*E+f}};var C=k(y,x);var P=k(y,w);var S=k(m,x);var D=k(m,w);var B=[C.x+h,C.y+p,S.x+h,S.y+p,D.x+h,D.y+p,P.x+h,P.y+p];if(va(e,t,B)){g(r);return true}}else{if(ea(s,e,t)){g(r);return true}}}for(var w=o.length-1;w>=0;w--){var E=o[w];if(E.isNode()){y(E)||x(E)}else{m(E)||x(E)||x(E,"source")||x(E,"target")}}return s};uc.getAllInBox=function(e,t,r,a){var n=this.getCachedZSortedEles().interactive;var i=[];var o=Math.min(e,r);var s=Math.max(e,r);var l=Math.min(t,a);var u=Math.max(t,a);e=o;r=s;t=l;a=u;var v=qr({x1:e,y1:t,x2:r,y2:a});for(var f=0;f0?-(Math.PI-t.ang):Math.PI+t.ang};var Mc=function e(t,r,a,n,i){t!==Bc?Ac(r,t,dc):_c(hc,dc);Ac(r,a,hc);pc=dc.nx*hc.ny-dc.ny*hc.nx;gc=dc.nx*hc.nx-dc.ny*-hc.ny;bc=Math.asin(Math.max(-1,Math.min(1,pc)));if(Math.abs(bc)<1e-6){fc=r.x;cc=r.y;wc=Tc=0;return}yc=1;mc=false;if(gc<0){if(bc<0){bc=Math.PI+bc}else{bc=Math.PI-bc;yc=-1;mc=true}}else{if(bc>0){yc=-1;mc=true}}if(r.radius!==undefined){Tc=r.radius}else{Tc=n}xc=bc/2;kc=Math.min(dc.len/2,hc.len/2);if(i){Ec=Math.abs(Math.cos(xc)*Tc/Math.sin(xc));if(Ec>kc){Ec=kc;wc=Math.abs(Ec*Math.sin(xc)/Math.cos(xc))}else{wc=Tc}}else{Ec=Math.min(kc,Tc);wc=Math.abs(Ec*Math.sin(xc)/Math.cos(xc))}Sc=r.x+hc.nx*Ec;Dc=r.y+hc.ny*Ec;fc=Sc-hc.ny*wc*yc;cc=Dc+hc.nx*wc*yc;Cc=r.x+dc.nx*Ec;Pc=r.y+dc.ny*Ec;Bc=r};function Ic(e,t){if(t.radius===0)e.lineTo(t.cx,t.cy);else e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function Rc(e,t,r,a){var n=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;if(a===0||t.radius===0)return{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:undefined,endAngle:undefined,counterClockwise:undefined};Mc(e,t,r,a,n);return{cx:fc,cy:cc,radius:wc,startX:Cc,startY:Pc,stopX:Sc,stopY:Dc,startAngle:dc.ang+Math.PI/2*yc,endAngle:hc.ang-Math.PI/2*yc,counterClockwise:mc}}var Nc={};Nc.findMidptPtsEtc=function(e,t){var r=t.posPts,a=t.intersectionPts,n=t.vectorNormInverse;var i;var o=e.pstyle("source-endpoint");var s=e.pstyle("target-endpoint");var l=o.units!=null&&s.units!=null;var u=function e(t,r,a,n){var i=n-r;var o=a-t;var s=Math.sqrt(o*o+i*i);return{x:-i/s,y:o/s}};var v=e.pstyle("edge-distances").value;switch(v){case"node-position":i=r;break;case"intersection":i=a;break;case"endpoints":{if(l){var f=this.manualEndptToPx(e.source()[0],o),c=p(f,2),d=c[0],h=c[1];var g=this.manualEndptToPx(e.target()[0],s),y=p(g,2),m=y[0],b=y[1];var x={x1:d,y1:h,x2:m,y2:b};n=u(d,h,m,b);i=x}else{Lt("Edge ".concat(e.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default)."));i=a}break}}return{midptPts:i,vectorNormInverse:n}};Nc.findHaystackPoints=function(e){for(var t=0;t0){return Math.max(t-r,0)}else{return Math.min(t+r,0)}};var B=D(P,k);var A=D(S,C);var _=false;if(m===u){y=Math.abs(B)>Math.abs(A)?n:a}else if(m===l||m===s){y=a;_=true}else if(m===i||m===o){y=n;_=true}var M=y===a;var I=M?A:B;var R=M?S:P;var N=Lr(R);var L=false;if(!(_&&(x||E))&&(m===s&&R<0||m===l&&R>0||m===i&&R>0||m===o&&R<0)){N*=-1;I=N*Math.abs(I);L=true}var O;if(x){var z=w<0?1+w:w;O=z*I}else{var F=w<0?I:0;O=F+w*N}var V=function e(t){return Math.abs(t)=Math.abs(I)};var j=V(O);var X=V(Math.abs(I)-Math.abs(O));var Y=j||X;if(Y&&!L){if(M){var q=Math.abs(R)<=c/2;var W=Math.abs(P)<=d/2;if(q){var U=(v.x1+v.x2)/2;var G=v.y1,H=v.y2;r.segpts=[U,G,U,H]}else if(W){var K=(v.y1+v.y2)/2;var Z=v.x1,$=v.x2;r.segpts=[Z,K,$,K]}else{r.segpts=[v.x1,v.y2]}}else{var Q=Math.abs(R)<=f/2;var J=Math.abs(S)<=h/2;if(Q){var ee=(v.y1+v.y2)/2;var te=v.x1,re=v.x2;r.segpts=[te,ee,re,ee]}else if(J){var ae=(v.x1+v.x2)/2;var ne=v.y1,ie=v.y2;r.segpts=[ae,ne,ae,ie]}else{r.segpts=[v.x2,v.y1]}}}else{if(M){var oe=v.y1+O+(g?c/2*N:0);var se=v.x1,le=v.x2;r.segpts=[se,oe,le,oe]}else{var ue=v.x1+O+(g?f/2*N:0);var ve=v.y1,fe=v.y2;r.segpts=[ue,ve,ue,fe]}}if(r.isRound){var ce=e.pstyle("taxi-radius").value;var de=e.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(ce);r.isArcRadius=new Array(r.segpts.length/2).fill(de)}};Nc.tryToCorrectInvalidPoints=function(e,t){var r=e._private.rscratch;if(r.edgeType==="bezier"){var a=t.srcPos,n=t.tgtPos,i=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,v=t.tgtShape,f=t.srcCornerRadius,c=t.tgtCornerRadius,d=t.srcRs,h=t.tgtRs;var p=!I(r.startX)||!I(r.startY);var g=!I(r.arrowStartX)||!I(r.arrowStartY);var y=!I(r.endX)||!I(r.endY);var m=!I(r.arrowEndX)||!I(r.arrowEndY);var b=3;var x=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth;var w=b*x;var E=Or({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY});var T=Eg.poolIndex()){var y=p;p=g;g=y}var m=f.srcPos=p.position();var b=f.tgtPos=g.position();var x=f.srcW=p.outerWidth();var w=f.srcH=p.outerHeight();var E=f.tgtW=g.outerWidth();var T=f.tgtH=g.outerHeight();var C=f.srcShape=r.nodeShapes[t.getNodeShape(p)];var P=f.tgtShape=r.nodeShapes[t.getNodeShape(g)];var S=f.srcCornerRadius=p.pstyle("corner-radius").value==="auto"?"auto":p.pstyle("corner-radius").pfValue;var D=f.tgtCornerRadius=g.pstyle("corner-radius").value==="auto"?"auto":g.pstyle("corner-radius").pfValue;var B=f.tgtRs=g._private.rscratch;var A=f.srcRs=p._private.rscratch;f.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var _=0;_0){var K=i;var Z=zr(K,Dr(r));var $=zr(K,Dr(H));var Q=Z;if($2){var J=zr(K,{x:H[2],y:H[3]});if(J0){var ce=o;var de=zr(ce,Dr(r));var he=zr(ce,Dr(fe));var pe=de;if(he2){var ge=zr(ce,{x:fe[2],y:fe[3]});if(ge=v||b){c={cp:g,segment:m};break}}if(c){break}}var x=c.cp;var w=c.segment;var E=(v-d)/w.length;var T=w.t1-w.t0;var k=u?w.t0+T*E:w.t1-T*E;k=Yr(0,k,1);t=jr(x.p0,x.p1,x.p2,k);s=Yc(x.p0,x.p1,x.p2,k);break}case"straight":case"segments":case"haystack":{var C=0,P,S;var D,B;var A=a.allpts.length;for(var _=0;_+3=v){break}}var M=v-S;var I=M/P;I=Yr(0,I,1);t=Xr(D,B,I);s=Xc(D,B);break}}o("labelX",n,t.x);o("labelY",n,t.y);o("labelAutoAngle",n,s)};u("source");u("target");this.applyLabelDimensions(e)};Vc.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e);if(e.isEdge()){this.applyPrefixedLabelDimensions(e,"source");this.applyPrefixedLabelDimensions(e,"target")}};Vc.applyPrefixedLabelDimensions=function(e,t){var r=e._private;var a=this.getLabelText(e,t);var n=this.calculateLabelDimensions(e,a);var i=e.pstyle("line-height").pfValue;var o=e.pstyle("text-wrap").strValue;var s=Gt(r.rscratch,"labelWrapCachedLines",t)||[];var l=o!=="wrap"?1:Math.max(s.length,1);var u=n.height/l;var v=u*i;var f=n.width;var c=n.height+(l-1)*(i-1)*u;Ht(r.rstyle,"labelWidth",t,f);Ht(r.rscratch,"labelWidth",t,f);Ht(r.rstyle,"labelHeight",t,c);Ht(r.rscratch,"labelHeight",t,c);Ht(r.rscratch,"labelLineHeight",t,v)};Vc.getLabelText=function(e,t){var r=e._private;var a=t?t+"-":"";var n=e.pstyle(a+"label").strValue;var i=e.pstyle("text-transform").value;var o=function e(a,n){if(n){Ht(r.rscratch,a,t,n);return n}else{return Gt(r.rscratch,a,t)}};if(!n){return""}if(i=="none");else if(i=="uppercase"){n=n.toUpperCase()}else if(i=="lowercase"){n=n.toLowerCase()}var s=e.pstyle("text-wrap").value;if(s==="wrap"){var l=o("labelKey");if(l!=null&&o("labelWrapKey")===l){return o("labelWrapCachedText")}var v="​";var f=n.split("\n");var c=e.pstyle("text-max-width").pfValue;var d=e.pstyle("text-overflow-wrap").value;var h=d==="anywhere";var p=[];var g=/[\s\u200b]+|$/g;for(var y=0;yc){var E=m.matchAll(g);var T="";var k=0;var C=u(E),P;try{for(C.s();!(P=C.n()).done;){var S=P.value;var D=S[0];var B=m.substring(k,S.index);k=S.index+D.length;var A=T.length===0?B:T+B+D;var _=this.calculateLabelDimensions(e,A);var M=_.width;if(M<=c){T+=B+D}else{if(T){p.push(T)}T=B+D}}}catch(F){C.e(F)}finally{C.f()}if(!T.match(/^[\s\u200b]+$/)){p.push(T)}}else{p.push(m)}}o("labelWrapCachedLines",p);n=o("labelWrapCachedText",p.join("\n"));o("labelWrapKey",l)}else if(s==="ellipsis"){var I=e.pstyle("text-max-width").pfValue;var R="";var N="…";var L=false;if(this.calculateLabelDimensions(e,n).widthI){break}R+=n[O];if(O===n.length-1){L=true}}if(!L){R+=N}return R}return n};Vc.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue;var r=e.pstyle("text-halign").strValue;if(t==="auto"){if(e.isNode()){switch(r){case"left":return"right";case"right":return"left";default:return"center"}}else{return"center"}}else{return t}};Vc.calculateLabelDimensions=function(e,t){var r=this;var a=r.cy.window();var n=a.document;var i=Tt(t,e._private.labelDimsKey);var o=r.labelDimCache||(r.labelDimCache=[]);var s=o[i];if(s!=null){return s}var l=0;var u=e.pstyle("font-style").strValue;var v=e.pstyle("font-size").pfValue;var f=e.pstyle("font-family").strValue;var c=e.pstyle("font-weight").strValue;var d=this.labelCalcCanvas;var h=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=n.createElement("canvas");h=this.labelCalcCanvasContext=d.getContext("2d");var p=d.style;p.position="absolute";p.left="-9999px";p.top="-9999px";p.zIndex="-1";p.visibility="hidden";p.pointerEvents="none"}h.font="".concat(u," ").concat(c," ").concat(v,"px ").concat(f);var g=0;var y=0;var m=t.split("\n");for(var b=0;b1&&arguments[1]!==undefined?arguments[1]:true;t.merge(r);if(a){for(var n=0;n=e.desktopTapThreshold2}var B=i(r);if(E){e.hoverData.tapholdCancelled=true}var A=function t(){var r=e.hoverData.dragDelta=e.hoverData.dragDelta||[];if(r.length===0){r.push(x[0]);r.push(x[1])}else{r[0]+=x[0];r[1]+=x[1]}};s=true;n(g,["mousemove","vmousemove","tapdrag"],r,{x:f[0],y:f[1]});var _=function t(){e.data.bgActivePosistion=undefined;if(!e.hoverData.selecting){l.emit({originalEvent:r,type:"boxstart",position:{x:f[0],y:f[1]}})}h[4]=1;e.hoverData.selecting=true;e.redrawHint("select",true);e.redraw()};if(e.hoverData.which===3){if(E){var M={originalEvent:r,type:"cxtdrag",position:{x:f[0],y:f[1]}};if(b){b.emit(M)}else{l.emit(M)}e.hoverData.cxtDragged=true;if(!e.hoverData.cxtOver||g!==e.hoverData.cxtOver){if(e.hoverData.cxtOver){e.hoverData.cxtOver.emit({originalEvent:r,type:"cxtdragout",position:{x:f[0],y:f[1]}})}e.hoverData.cxtOver=g;if(g){g.emit({originalEvent:r,type:"cxtdragover",position:{x:f[0],y:f[1]}})}}}}else if(e.hoverData.dragging){s=true;if(l.panningEnabled()&&l.userPanningEnabled()){var R;if(e.hoverData.justStartedPan){var N=e.hoverData.mdownPos;R={x:(f[0]-N[0])*u,y:(f[1]-N[1])*u};e.hoverData.justStartedPan=false}else{R={x:x[0]*u,y:x[1]*u}}l.panBy(R);l.emit("dragpan");e.hoverData.dragged=true}f=e.projectIntoViewport(r.clientX,r.clientY)}else if(h[4]==1&&(b==null||b.pannable())){if(E){if(!e.hoverData.dragging&&l.boxSelectionEnabled()&&(B||!l.panningEnabled()||!l.userPanningEnabled())){_()}else if(!e.hoverData.selecting&&l.panningEnabled()&&l.userPanningEnabled()){var L=o(b,e.hoverData.downs);if(L){e.hoverData.dragging=true;e.hoverData.justStartedPan=true;h[4]=0;e.data.bgActivePosistion=Dr(c);e.redrawHint("select",true);e.redraw()}}if(b&&b.pannable()&&b.active()){b.unactivate()}}}else{if(b&&b.pannable()&&b.active()){b.unactivate()}if((!b||!b.grabbed())&&g!=m){if(m){n(m,["mouseout","tapdragout"],r,{x:f[0],y:f[1]})}if(g){n(g,["mouseover","tapdragover"],r,{x:f[0],y:f[1]})}e.hoverData.last=g}if(b){if(E){if(l.boxSelectionEnabled()&&B){if(b&&b.grabbed()){y(w);b.emit("freeon");w.emit("free");if(e.dragData.didDrag){b.emit("dragfreeon");w.emit("dragfree")}}_()}else if(b&&b.grabbed()&&e.nodeIsDraggable(b)){var O=!e.dragData.didDrag;if(O){e.redrawHint("eles",true)}e.dragData.didDrag=true;if(!e.hoverData.draggingEles){p(w,{inDragLayer:true})}var z={x:0,y:0};if(I(x[0])&&I(x[1])){z.x+=x[0];z.y+=x[1];if(O){var F=e.hoverData.dragDelta;if(F&&I(F[0])&&I(F[1])){z.x+=F[0];z.y+=F[1]}}}e.hoverData.draggingEles=true;w.silentShift(z).emit("position drag");e.redrawHint("drag",true);e.redraw()}}else{A()}}s=true}h[2]=f[0];h[3]=f[1];if(s){if(r.stopPropagation)r.stopPropagation();if(r.preventDefault)r.preventDefault();return false}}),false);var D,B,A;e.registerBinding(t,"mouseup",(function t(a){if(e.hoverData.which===1&&a.which!==1&&e.hoverData.capture){return}var o=e.hoverData.capture;if(!o){return}e.hoverData.capture=false;var s=e.cy;var l=e.projectIntoViewport(a.clientX,a.clientY);var u=e.selection;var v=e.findNearestElement(l[0],l[1],true,false);var f=e.dragData.possibleDragElements;var c=e.hoverData.down;var d=i(a);if(e.data.bgActivePosistion){e.redrawHint("select",true);e.redraw()}e.hoverData.tapholdCancelled=true;e.data.bgActivePosistion=undefined;if(c){c.unactivate()}if(e.hoverData.which===3){var h={originalEvent:a,type:"cxttapend",position:{x:l[0],y:l[1]}};if(c){c.emit(h)}else{s.emit(h)}if(!e.hoverData.cxtDragged){var p={originalEvent:a,type:"cxttap",position:{x:l[0],y:l[1]}};if(c){c.emit(p)}else{s.emit(p)}}e.hoverData.cxtDragged=false;e.hoverData.which=null}else if(e.hoverData.which===1){n(v,["mouseup","tapend","vmouseup"],a,{x:l[0],y:l[1]});if(!e.dragData.didDrag&&!e.hoverData.dragged&&!e.hoverData.selecting&&!e.hoverData.isOverThresholdDrag){n(c,["click","tap","vclick"],a,{x:l[0],y:l[1]});B=false;if(a.timeStamp-A<=s.multiClickDebounceTime()){D&&clearTimeout(D);B=true;A=null;n(c,["dblclick","dbltap","vdblclick"],a,{x:l[0],y:l[1]})}else{D=setTimeout((function(){if(B)return;n(c,["oneclick","onetap","voneclick"],a,{x:l[0],y:l[1]})}),s.multiClickDebounceTime());A=a.timeStamp}}if(c==null&&!e.dragData.didDrag&&!e.hoverData.selecting&&!e.hoverData.dragged&&!i(a)){s.$(r).unselect(["tapunselect"]);if(f.length>0){e.redrawHint("eles",true)}e.dragData.possibleDragElements=f=s.collection()}if(v==c&&!e.dragData.didDrag&&!e.hoverData.selecting){if(v!=null&&v._private.selectable){if(e.hoverData.dragging);else if(s.selectionType()==="additive"||d){if(v.selected()){v.unselect(["tapunselect"])}else{v.select(["tapselect"])}}else{if(!d){s.$(r).unmerge(v).unselect(["tapunselect"]);v.select(["tapselect"])}}e.redrawHint("eles",true)}}if(e.hoverData.selecting){var g=s.collection(e.getAllInBox(u[0],u[1],u[2],u[3]));e.redrawHint("select",true);if(g.length>0){e.redrawHint("eles",true)}s.emit({type:"boxend",originalEvent:a,position:{x:l[0],y:l[1]}});var m=function e(t){return t.selectable()&&!t.selected()};if(s.selectionType()==="additive"){g.emit("box").stdFilter(m).select().emit("boxselect")}else{if(!d){s.$(r).unmerge(g).unselect()}g.emit("box").stdFilter(m).select().emit("boxselect")}e.redraw()}if(e.hoverData.dragging){e.hoverData.dragging=false;e.redrawHint("select",true);e.redrawHint("eles",true);e.redraw()}if(!u[4]){e.redrawHint("drag",true);e.redrawHint("eles",true);var b=c&&c.grabbed();y(f);if(b){c.emit("freeon");f.emit("free");if(e.dragData.didDrag){c.emit("dragfreeon");f.emit("dragfree")}}}}u[4]=0;e.hoverData.down=null;e.hoverData.cxtStarted=false;e.hoverData.draggingEles=false;e.hoverData.selecting=false;e.hoverData.isOverThresholdDrag=false;e.dragData.didDrag=false;e.hoverData.dragged=false;e.hoverData.dragDelta=[];e.hoverData.mdownPos=null;e.hoverData.mdownGPos=null;e.hoverData.which=null}),false);var _=function t(r){if(e.scrollingPage){return}var a=e.cy;var n=a.zoom();var i=a.pan();var o=e.projectIntoViewport(r.clientX,r.clientY);var s=[o[0]*n+i.x,o[1]*n+i.y];if(e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||C()){r.preventDefault();return}if(a.panningEnabled()&&a.userPanningEnabled()&&a.zoomingEnabled()&&a.userZoomingEnabled()){r.preventDefault();e.data.wheelZooming=true;clearTimeout(e.data.wheelTimeout);e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=false;e.redrawHint("eles",true);e.redraw()}),150);var l;if(r.deltaY!=null){l=r.deltaY/-250}else if(r.wheelDeltaY!=null){l=r.wheelDeltaY/1e3}else{l=r.wheelDelta/1e3}l=l*e.wheelSensitivity;var u=r.deltaMode===1;if(u){l*=33}var v=a.zoom()*Math.pow(10,l);if(r.type==="gesturechange"){v=e.gestureStartZoom*r.scale}a.zoom({level:v,renderedPosition:{x:s[0],y:s[1]}});a.emit(r.type==="gesturechange"?"pinchzoom":"scrollzoom")}};e.registerBinding(e.container,"wheel",_,true);e.registerBinding(t,"scroll",(function t(r){e.scrollingPage=true;clearTimeout(e.scrollingPageTimeout);e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=false}),250)}),true);e.registerBinding(e.container,"gesturestart",(function t(r){e.gestureStartZoom=e.cy.zoom();if(!e.hasTouchStarted){r.preventDefault()}}),true);e.registerBinding(e.container,"gesturechange",(function(t){if(!e.hasTouchStarted){_(t)}}),true);e.registerBinding(e.container,"mouseout",(function t(r){var a=e.projectIntoViewport(r.clientX,r.clientY);e.cy.emit({originalEvent:r,type:"mouseout",position:{x:a[0],y:a[1]}})}),false);e.registerBinding(e.container,"mouseover",(function t(r){var a=e.projectIntoViewport(r.clientX,r.clientY);e.cy.emit({originalEvent:r,type:"mouseover",position:{x:a[0],y:a[1]}})}),false);var M,R,N,L;var O,z;var F,V;var j,X;var Y,q;var W;var U=function e(t,r,a,n){return Math.sqrt((a-t)*(a-t)+(n-r)*(n-r))};var G=function e(t,r,a,n){return(a-t)*(a-t)+(n-r)*(n-r)};var H;e.registerBinding(e.container,"touchstart",H=function t(r){e.hasTouchStarted=true;if(!P(r)){return}b();e.touchData.capture=true;e.data.bgActivePosistion=undefined;var a=e.cy;var i=e.touchData.now;var o=e.touchData.earlier;if(r.touches[0]){var s=e.projectIntoViewport(r.touches[0].clientX,r.touches[0].clientY);i[0]=s[0];i[1]=s[1]}if(r.touches[1]){var s=e.projectIntoViewport(r.touches[1].clientX,r.touches[1].clientY);i[2]=s[0];i[3]=s[1]}if(r.touches[2]){var s=e.projectIntoViewport(r.touches[2].clientX,r.touches[2].clientY);i[4]=s[0];i[5]=s[1]}if(r.touches[1]){e.touchData.singleTouchMoved=true;y(e.dragData.touchDragEles);var l=e.findContainerClientCoords();j=l[0];X=l[1];Y=l[2];q=l[3];M=r.touches[0].clientX-j;R=r.touches[0].clientY-X;N=r.touches[1].clientX-j;L=r.touches[1].clientY-X;W=0<=M&&M<=Y&&0<=N&&N<=Y&&0<=R&&R<=q&&0<=L&&L<=q;var u=a.pan();var v=a.zoom();O=U(M,R,N,L);z=G(M,R,N,L);F=[(M+N)/2,(R+L)/2];V=[(F[0]-u.x)/v,(F[1]-u.y)/v];var c=200;var d=c*c;if(z=1){var C=e.touchData.startPosition=[null,null,null,null,null,null];for(var S=0;S=e.touchTapThreshold2}if(a&&e.touchData.cxt){r.preventDefault();var T=r.touches[0].clientX-j,k=r.touches[0].clientY-X;var C=r.touches[1].clientX-j,S=r.touches[1].clientY-X;var D=G(T,k,C,S);var B=D/z;var A=150;var _=A*A;var F=1.5;var Y=F*F;if(B>=Y||D>=_){e.touchData.cxt=false;e.data.bgActivePosistion=undefined;e.redrawHint("select",true);var q={originalEvent:r,type:"cxttapend",position:{x:l[0],y:l[1]}};if(e.touchData.start){e.touchData.start.unactivate().emit(q);e.touchData.start=null}else{s.emit(q)}}}if(a&&e.touchData.cxt){var q={originalEvent:r,type:"cxtdrag",position:{x:l[0],y:l[1]}};e.data.bgActivePosistion=undefined;e.redrawHint("select",true);if(e.touchData.start){e.touchData.start.emit(q)}else{s.emit(q)}if(e.touchData.start){e.touchData.start._private.grabbed=false}e.touchData.cxtDragged=true;var H=e.findNearestElement(l[0],l[1],true,true);if(!e.touchData.cxtOver||H!==e.touchData.cxtOver){if(e.touchData.cxtOver){e.touchData.cxtOver.emit({originalEvent:r,type:"cxtdragout",position:{x:l[0],y:l[1]}})}e.touchData.cxtOver=H;if(H){H.emit({originalEvent:r,type:"cxtdragover",position:{x:l[0],y:l[1]}})}}}else if(a&&r.touches[2]&&s.boxSelectionEnabled()){r.preventDefault();e.data.bgActivePosistion=undefined;this.lastThreeTouch=+new Date;if(!e.touchData.selecting){s.emit({originalEvent:r,type:"boxstart",position:{x:l[0],y:l[1]}})}e.touchData.selecting=true;e.touchData.didSelect=true;i[4]=1;if(!i||i.length===0||i[0]===undefined){i[0]=(l[0]+l[2]+l[4])/3;i[1]=(l[1]+l[3]+l[5])/3;i[2]=(l[0]+l[2]+l[4])/3+1;i[3]=(l[1]+l[3]+l[5])/3+1}else{i[2]=(l[0]+l[2]+l[4])/3;i[3]=(l[1]+l[3]+l[5])/3}e.redrawHint("select",true);e.redraw()}else if(a&&r.touches[1]&&!e.touchData.didSelect&&s.zoomingEnabled()&&s.panningEnabled()&&s.userZoomingEnabled()&&s.userPanningEnabled()){r.preventDefault();e.data.bgActivePosistion=undefined;e.redrawHint("select",true);var K=e.dragData.touchDragEles;if(K){e.redrawHint("drag",true);for(var Z=0;Z0&&!e.hoverData.draggingEles&&!e.swipePanning&&e.data.bgActivePosistion!=null){e.data.bgActivePosistion=undefined;e.redrawHint("select",true);e.redraw()}},false);var Z;e.registerBinding(t,"touchcancel",Z=function t(r){var a=e.touchData.start;e.touchData.capture=false;if(a){a.unactivate()}});var $,Q,J,ee;e.registerBinding(t,"touchend",$=function t(a){var i=e.touchData.start;var o=e.touchData.capture;if(o){if(a.touches.length===0){e.touchData.capture=false}a.preventDefault()}else{return}var s=e.selection;e.swipePanning=false;e.hoverData.draggingEles=false;var l=e.cy;var u=l.zoom();var v=e.touchData.now;var f=e.touchData.earlier;if(a.touches[0]){var c=e.projectIntoViewport(a.touches[0].clientX,a.touches[0].clientY);v[0]=c[0];v[1]=c[1]}if(a.touches[1]){var c=e.projectIntoViewport(a.touches[1].clientX,a.touches[1].clientY);v[2]=c[0];v[3]=c[1]}if(a.touches[2]){var c=e.projectIntoViewport(a.touches[2].clientX,a.touches[2].clientY);v[4]=c[0];v[5]=c[1]}if(i){i.unactivate()}var d;if(e.touchData.cxt){d={originalEvent:a,type:"cxttapend",position:{x:v[0],y:v[1]}};if(i){i.emit(d)}else{l.emit(d)}if(!e.touchData.cxtDragged){var h={originalEvent:a,type:"cxttap",position:{x:v[0],y:v[1]}};if(i){i.emit(h)}else{l.emit(h)}}if(e.touchData.start){e.touchData.start._private.grabbed=false}e.touchData.cxt=false;e.touchData.start=null;e.redraw();return}if(!a.touches[2]&&l.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=false;var p=l.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));s[0]=undefined;s[1]=undefined;s[2]=undefined;s[3]=undefined;s[4]=0;e.redrawHint("select",true);l.emit({type:"boxend",originalEvent:a,position:{x:v[0],y:v[1]}});var g=function e(t){return t.selectable()&&!t.selected()};p.emit("box").stdFilter(g).select().emit("boxselect");if(p.nonempty()){e.redrawHint("eles",true)}e.redraw()}if(i!=null){i.unactivate()}if(a.touches[2]){e.data.bgActivePosistion=undefined;e.redrawHint("select",true)}else if(a.touches[1]);else if(a.touches[0]);else if(!a.touches[0]){e.data.bgActivePosistion=undefined;e.redrawHint("select",true);var m=e.dragData.touchDragEles;if(i!=null){var b=i._private.grabbed;y(m);e.redrawHint("drag",true);e.redrawHint("eles",true);if(b){i.emit("freeon");m.emit("free");if(e.dragData.didDrag){i.emit("dragfreeon");m.emit("dragfree")}}n(i,["touchend","tapend","vmouseup","tapdragout"],a,{x:v[0],y:v[1]});i.unactivate();e.touchData.start=null}else{var x=e.findNearestElement(v[0],v[1],true,true);n(x,["touchend","tapend","vmouseup","tapdragout"],a,{x:v[0],y:v[1]})}var w=e.touchData.startPosition[0]-v[0];var E=w*w;var T=e.touchData.startPosition[1]-v[1];var k=T*T;var C=E+k;var P=C*u*u;if(!e.touchData.singleTouchMoved){if(!i){l.$(":selected").unselect(["tapunselect"])}n(i,["tap","vclick"],a,{x:v[0],y:v[1]});Q=false;if(a.timeStamp-ee<=l.multiClickDebounceTime()){J&&clearTimeout(J);Q=true;ee=null;n(i,["dbltap","vdblclick"],a,{x:v[0],y:v[1]})}else{J=setTimeout((function(){if(Q)return;n(i,["onetap","voneclick"],a,{x:v[0],y:v[1]})}),l.multiClickDebounceTime());ee=a.timeStamp}}if(i!=null&&!e.dragData.didDrag&&i._private.selectable&&P0){return p[0]}}return null};var h=Object.keys(c);for(var p=0;p0){return d}return aa(i,o,t,r,a,n,s,l)},checkPoint:function e(t,r,a,n,i,o,s,l){l=l==="auto"?Pa(n,i):l;var u=2*l;if(fa(t,r,this.points,o,s,n,i-u,[0,-1],a)){return true}if(fa(t,r,this.points,o,s,n-u,i,[0,-1],a)){return true}var v=n/2+2*a;var f=i/2+2*a;var c=[o-v,s-f,o-v,s,o+v,s,o+v,s-f];if(va(t,r,c)){return true}if(ga(t,r,u,u,o+n/2-l,s+i/2-l,a)){return true}if(ga(t,r,u,u,o-n/2+l,s+i/2-l,a)){return true}return false}}};Qc.registerNodeShapes=function(){var e=this.nodeShapes={};var t=this;this.generateEllipse();this.generatePolygon("triangle",Ta(3,0));this.generateRoundPolygon("round-triangle",Ta(3,0));this.generatePolygon("rectangle",Ta(4,0));e["square"]=e["rectangle"];this.generateRoundRectangle();this.generateCutRectangle();this.generateBarrel();this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r);this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",Ta(5,0));this.generateRoundPolygon("round-pentagon",Ta(5,0));this.generatePolygon("hexagon",Ta(6,0));this.generateRoundPolygon("round-hexagon",Ta(6,0));this.generatePolygon("heptagon",Ta(7,0));this.generateRoundPolygon("round-heptagon",Ta(7,0));this.generatePolygon("octagon",Ta(8,0));this.generateRoundPolygon("round-octagon",Ta(8,0));var a=new Array(20);{var n=Ca(5,0);var i=Ca(5,Math.PI/5);var o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s=t.deqFastCost*g){break}}else{if(i){if(h>=t.deqCost*u||h>=t.deqAvgCost*l){break}}else if(p>=t.deqNoDrawCost*nd){break}}var y=t.deq(r,c,f);if(y.length>0){for(var m=0;m0){t.onDeqd(r,v);if(!i&&t.shouldRedraw(r,v,c,f)){n()}}};var o=t.priority||It;a.beforeRender(i,o(r))}}};var od=function(){function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_t;o(this,e);this.idsByKey=new Zt;this.keyForId=new Zt;this.cachesByLvl=new Zt;this.lvls=[];this.getKey=t;this.doesEleInvalidateKey=r}return l(e,[{key:"getIdsFor",value:function e(t){if(t==null){Rt("Can not get id list for null key")}var r=this.idsByKey;var a=this.idsByKey.get(t);if(!a){a=new Jt;r.set(t,a)}return a}},{key:"addIdForKey",value:function e(t,r){if(t!=null){this.getIdsFor(t).add(r)}}},{key:"deleteIdForKey",value:function e(t,r){if(t!=null){this.getIdsFor(t)["delete"](r)}}},{key:"getNumberOfIdsForKey",value:function e(t){if(t==null){return 0}else{return this.getIdsFor(t).size}}},{key:"updateKeyMappingFor",value:function e(t){var r=t.id();var a=this.keyForId.get(r);var n=this.getKey(t);this.deleteIdForKey(a,r);this.addIdForKey(n,r);this.keyForId.set(r,n)}},{key:"deleteKeyMappingFor",value:function e(t){var r=t.id();var a=this.keyForId.get(r);this.deleteIdForKey(a,r);this.keyForId["delete"](r)}},{key:"keyHasChangedFor",value:function e(t){var r=t.id();var a=this.keyForId.get(r);var n=this.getKey(t);return a!==n}},{key:"isInvalid",value:function e(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)}},{key:"getCachesAt",value:function e(t){var r=this.cachesByLvl,a=this.lvls;var n=r.get(t);if(!n){n=new Zt;r.set(t,n);a.push(t)}return n}},{key:"getCache",value:function e(t,r){return this.getCachesAt(r).get(t)}},{key:"get",value:function e(t,r){var a=this.getKey(t);var n=this.getCache(a,r);if(n!=null){this.updateKeyMappingFor(t)}return n}},{key:"getForCachedKey",value:function e(t,r){var a=this.keyForId.get(t.id());var n=this.getCache(a,r);return n}},{key:"hasCache",value:function e(t,r){return this.getCachesAt(r).has(t)}},{key:"has",value:function e(t,r){var a=this.getKey(t);return this.hasCache(a,r)}},{key:"setCache",value:function e(t,r,a){a.key=t;this.getCachesAt(r).set(t,a)}},{key:"set",value:function e(t,r,a){var n=this.getKey(t);this.setCache(n,r,a);this.updateKeyMappingFor(t)}},{key:"deleteCache",value:function e(t,r){this.getCachesAt(r)["delete"](t)}},{key:"delete",value:function e(t,r){var a=this.getKey(t);this.deleteCache(a,r)}},{key:"invalidateKey",value:function e(t){var r=this;this.lvls.forEach((function(e){return r.deleteCache(t,e)}))}},{key:"invalidate",value:function e(t){var r=t.id();var a=this.keyForId.get(r);this.deleteKeyMappingFor(t);var n=this.doesEleInvalidateKey(t);if(n){this.invalidateKey(a)}return n||this.getNumberOfIdsForKey(a)===0}}])}();var sd=25;var ld=50;var ud=-4;var vd=3;var fd=7.99;var cd=8;var dd=1024;var hd=1024;var pd=1024;var gd=.2;var yd=.8;var md=10;var bd=.15;var xd=.1;var wd=.9;var Ed=.9;var Td=100;var kd=1;var Cd={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"};var Pd=Yt({getKey:null,doesEleInvalidateKey:_t,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:At,allowEdgeTxrCaching:true,allowParentTxrCaching:true});var Sd=function e(t,r){var a=this;a.renderer=t;a.onDequeues=[];var n=Pd(r);se(a,n);a.lookup=new od(n.getKey,n.doesEleInvalidateKey);a.setupDequeueing()};var Dd=Sd.prototype;Dd.reasons=Cd;Dd.getTextureQueue=function(e){var t=this;t.eleImgCaches=t.eleImgCaches||{};return t.eleImgCaches[e]=t.eleImgCaches[e]||[]};Dd.getRetiredTextureQueue=function(e){var t=this;var r=t.eleImgCaches.retired=t.eleImgCaches.retired||{};var a=r[e]=r[e]||[];return a};Dd.getElementQueue=function(){var e=this;var t=e.eleCacheQueue=e.eleCacheQueue||new fr((function(e,t){return t.reqs-e.reqs}));return t};Dd.getElementKeyToQueue=function(){var e=this;var t=e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{};return t};Dd.getElement=function(e,t,r,a,n){var i=this;var o=this.renderer;var s=o.cy.zoom();var l=this.lookup;if(!t||t.w===0||t.h===0||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed()){return null}if(!i.allowEdgeTxrCaching&&e.isEdge()||!i.allowParentTxrCaching&&e.isParent()){return null}if(a==null){a=Math.ceil(Nr(s*r))}if(a=fd||a>vd){return null}var u=Math.pow(2,a);var v=t.h*u;var f=t.w*u;var c=o.eleTextBiggerThanMin(e,u);if(!this.isVisible(e,c)){return null}var d=l.get(e,a);if(d&&d.invalidated){d.invalidated=false;d.texture.invalidatedWidth-=d.width}if(d){return d}var h;if(v<=sd){h=sd}else if(v<=ld){h=ld}else{h=Math.ceil(v/ld)*ld}if(v>pd||f>hd){return null}var p=i.getTextureQueue(h);var g=p[p.length-2];var y=function e(){return i.recycleTexture(h,f)||i.addTexture(h,f)};if(!g){g=p[p.length-1]}if(!g){g=y()}if(g.width-g.usedWidtha;S--){C=i.getElement(e,t,r,S,Cd.downscale)}P()}else{i.queueElement(e,E.level-1);return E}}else{var D;if(!b&&!x&&!w){for(var B=a-1;B>=ud;B--){var A=l.get(e,B);if(A){D=A;break}}}if(m(D)){i.queueElement(e,a);return D}g.context.translate(g.usedWidth,0);g.context.scale(u,u);this.drawElement(g.context,e,t,c,false);g.context.scale(1/u,1/u);g.context.translate(-g.usedWidth,0)}d={x:g.usedWidth,texture:g,level:a,scale:u,width:f,height:v,scaledLabelShown:c};g.usedWidth+=Math.ceil(f+cd);g.eleCaches.push(d);l.set(e,a,d);i.checkTextureFullness(g);return d};Dd.invalidateElements=function(e){for(var t=0;t=gd*e.width){this.retireTexture(e)}};Dd.checkTextureFullness=function(e){var t=this;var r=t.getTextureQueue(e.height);if(e.usedWidth/e.width>yd&&e.fullnessChecks>=md){qt(r,e)}else{e.fullnessChecks++}};Dd.retireTexture=function(e){var t=this;var r=e.height;var a=t.getTextureQueue(r);var n=this.lookup;qt(a,e);e.retired=true;var i=e.eleCaches;for(var o=0;o=t){o.retired=false;o.usedWidth=0;o.invalidatedWidth=0;o.fullnessChecks=0;Wt(o.eleCaches);o.context.setTransform(1,0,0,1,0,0);o.context.clearRect(0,0,o.width,o.height);qt(n,o);a.push(o);return o}}};Dd.queueElement=function(e,t){var r=this;var a=r.getElementQueue();var n=r.getElementKeyToQueue();var i=this.getKey(e);var o=n[i];if(o){o.level=Math.max(o.level,t);o.eles.merge(e);o.reqs++;a.updateItem(o)}else{var s={eles:e.spawn().merge(e),level:t,reqs:1,key:i};a.push(s);n[i]=s}};Dd.dequeue=function(e){var t=this;var r=t.getElementQueue();var a=t.getElementKeyToQueue();var n=[];var i=t.lookup;for(var o=0;o0){var s=r.pop();var l=s.key;var u=s.eles[0];var v=i.hasCache(u,s.level);a[l]=null;if(v){continue}n.push(s);var f=t.getBoundingBox(u);t.getElement(u,f,e,s.level,Cd.dequeue)}else{break}}return n};Dd.removeFromQueue=function(e){var t=this;var r=t.getElementQueue();var a=t.getElementKeyToQueue();var n=this.getKey(e);var i=a[n];if(i!=null){if(i.eles.length===1){i.reqs=Bt;r.updateItem(i);r.pop();a[n]=null}else{i.eles.unmerge(e)}}};Dd.onDequeue=function(e){this.onDequeues.push(e)};Dd.offDequeue=function(e){qt(this.onDequeues,e)};Dd.setupDequeueing=id.setupDequeueing({deqRedrawThreshold:Td,deqCost:bd,deqAvgCost:xd,deqNoDrawCost:wd,deqFastCost:Ed,deq:function e(t,r,a){return t.dequeue(r,a)},onDeqd:function e(t,r){for(var a=0;a=Md||r>_d){return null}}a.validateLayersElesOrdering(r,e);var l=a.layersByLevel;var u=Math.pow(2,r);var v=l[r]=l[r]||[];var f;var c=a.levelIsComplete(r,e);var d;var h=function t(){var n=function t(r){a.validateLayersElesOrdering(r,e);if(a.levelIsComplete(r,e)){d=l[r];return true}};var i=function e(t){if(d){return}for(var a=r+t;Ad<=a&&a<=_d;a+=t){if(n(a)){break}}};i(1);i(-1);for(var o=v.length-1;o>=0;o--){var s=v[o];if(s.invalid){qt(v,s)}}};if(!c){h()}else{return v}var p=function t(){if(!f){f=qr();for(var r=0;rXd||o>Xd){return null}var s=i*o;if(s>jd){return null}var l=a.makeLayer(f,r);if(n!=null){var c=v.indexOf(n)+1;v.splice(c,0,l)}else if(t.insert===undefined||t.insert){v.unshift(l)}return l};if(a.skipping&&!s){return null}var y=null;var m=e.length/Bd;var b=!s;for(var x=0;x=m||!ra(y.bb,w.boundingBox())){y=g({insert:true,after:y});if(!y){return null}}if(d||b){a.queueLayer(y,w)}else{a.drawEleInLayer(y,w,r,t)}y.eles.push(w);T[r]=y}if(d){return d}if(b){return null}return v};Wd.getEleLevelForLayerLevel=function(e,t){return e};Wd.drawEleInLayer=function(e,t,r,a){var n=this;var i=this.renderer;var o=e.context;var s=t.boundingBox();if(s.w===0||s.h===0||!t.visible()){return}r=n.getEleLevelForLayerLevel(r,a);{i.setImgSmoothing(o,false)}{i.drawCachedElement(o,t,null,null,r,Yd)}{i.setImgSmoothing(o,true)}};Wd.levelIsComplete=function(e,t){var r=this;var a=r.layersByLevel[e];if(!a||a.length===0){return false}var n=0;for(var i=0;i0){return false}if(o.invalid){return false}n+=o.eles.length}if(n!==t.length){return false}return true};Wd.validateLayersElesOrdering=function(e,t){var r=this.layersByLevel[e];if(!r){return}for(var a=0;a0){t=true;break}}return t};Wd.invalidateElements=function(e){var t=this;if(e.length===0){return}t.lastInvalidationTime=ct();if(e.length===0||!t.haveLayers()){return}t.updateElementsInLayers(e,(function e(r,a,n){t.invalidateLayer(r)}))};Wd.invalidateLayer=function(e){this.lastInvalidationTime=ct();if(e.invalid){return}var t=e.level;var r=e.eles;var a=this.layersByLevel[t];qt(a,e);e.elesQueue=[];e.invalid=true;if(e.replacement){e.replacement.invalid=true}for(var n=0;n3&&arguments[3]!==undefined?arguments[3]:true;var n=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var i=arguments.length>5&&arguments[5]!==undefined?arguments[5]:true;var o=this;var s=t._private.rscratch;if(i&&!t.visible()){return}if(s.badLine||s.allpts==null||isNaN(s.allpts[0])){return}var l;if(r){l=r;e.translate(-l.x1,-l.y1)}var u=i?t.pstyle("opacity").value:1;var v=i?t.pstyle("line-opacity").value:1;var f=t.pstyle("curve-style").value;var c=t.pstyle("line-style").value;var d=t.pstyle("width").pfValue;var h=t.pstyle("line-cap").value;var p=t.pstyle("line-outline-width").value;var g=t.pstyle("line-outline-color").value;var y=u*v;var m=u*v;var b=function r(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:y;if(f==="straight-triangle"){o.eleStrokeStyle(e,t,a);o.drawEdgeTrianglePath(t,e,s.allpts)}else{e.lineWidth=d;e.lineCap=h;o.eleStrokeStyle(e,t,a);o.drawEdgePath(t,e,s.allpts,c);e.lineCap="butt"}};var x=function r(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:y;e.lineWidth=d+p;e.lineCap=h;if(p>0){o.colorStrokeStyle(e,g[0],g[1],g[2],a)}else{e.lineCap="butt";return}if(f==="straight-triangle"){o.drawEdgeTrianglePath(t,e,s.allpts)}else{o.drawEdgePath(t,e,s.allpts,c);e.lineCap="butt"}};var w=function r(){if(!n){return}o.drawEdgeOverlay(e,t)};var E=function r(){if(!n){return}o.drawEdgeUnderlay(e,t)};var T=function r(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:m;o.drawArrowheads(e,t,a)};var k=function r(){o.drawElementText(e,t,null,a)};e.lineJoin="round";var C=t.pstyle("ghost").value==="yes";if(C){var P=t.pstyle("ghost-offset-x").pfValue;var S=t.pstyle("ghost-offset-y").pfValue;var D=t.pstyle("ghost-opacity").value;var B=y*D;e.translate(P,S);b(B);T(B);e.translate(-P,-S)}else{x()}E();b();T();w();k();if(r){e.translate(l.x1,l.y1)}};var uh=function e(t){if(!["overlay","underlay"].includes(t)){throw new Error("Invalid state")}return function(e,r){if(!r.visible()){return}var a=r.pstyle("".concat(t,"-opacity")).value;if(a===0){return}var n=this;var i=n.usePaths();var o=r._private.rscratch;var s=r.pstyle("".concat(t,"-padding")).pfValue;var l=2*s;var u=r.pstyle("".concat(t,"-color")).value;e.lineWidth=l;if(o.edgeType==="self"&&!i){e.lineCap="butt"}else{e.lineCap="round"}n.colorStrokeStyle(e,u[0],u[1],u[2],a);n.drawEdgePath(r,e,o.allpts,"solid")}};lh.drawEdgeOverlay=uh("overlay");lh.drawEdgeUnderlay=uh("underlay");lh.drawEdgePath=function(e,t,r,a){var n=e._private.rscratch;var i=t;var o;var s=false;var l=this.usePaths();var v=e.pstyle("line-dash-pattern").pfValue;var f=e.pstyle("line-dash-offset").pfValue;if(l){var c=r.join("$");var d=n.pathCacheKey&&n.pathCacheKey===c;if(d){o=t=n.pathCache;s=true}else{o=t=new Path2D;n.pathCacheKey=c;n.pathCache=o}}if(i.setLineDash){switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(v);i.lineDashOffset=f;break;case"solid":i.setLineDash([]);break}}if(!s&&!n.badLine){if(t.beginPath){t.beginPath()}t.moveTo(r[0],r[1]);switch(n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var h=2;h+35&&arguments[5]!==undefined?arguments[5]:true;var o=this;if(a==null){if(i&&!o.eleTextBiggerThanMin(t)){return}}else if(a===false){return}if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value){return}var l=o.getLabelJustification(t);e.textAlign=l;e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine;var v=t.pstyle("label");var f=t.pstyle("source-label");var c=t.pstyle("target-label");if(u||(!v||!v.value)&&(!f||!f.value)&&(!c||!c.value)){return}e.textAlign="center";e.textBaseline="bottom"}var d=!r;var h;if(r){h=r;e.translate(-h.x1,-h.y1)}if(n==null){o.drawText(e,t,null,d,i);if(t.isEdge()){o.drawText(e,t,"source",d,i);o.drawText(e,t,"target",d,i)}}else{o.drawText(e,t,n,d,i)}if(r){e.translate(h.x1,h.y1)}};fh.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==undefined?arguments[2]:true;var a=t.pstyle("font-style").strValue;var n=t.pstyle("font-size").pfValue+"px";var i=t.pstyle("font-family").strValue;var o=t.pstyle("font-weight").strValue;var s=r?t.effectiveOpacity()*t.pstyle("text-opacity").value:1;var l=t.pstyle("text-outline-opacity").value*s;var u=t.pstyle("color").value;var v=t.pstyle("text-outline-color").value;e.font=a+" "+o+" "+n+" "+i;e.lineJoin="round";this.colorFillStyle(e,u[0],u[1],u[2],s);this.colorStrokeStyle(e,v[0],v[1],v[2],l)};function ch(e,t,r,a,n){var i=arguments.length>5&&arguments[5]!==undefined?arguments[5]:5;var o=arguments.length>6?arguments[6]:undefined;e.beginPath();e.moveTo(t+i,r);e.lineTo(t+a-i,r);e.quadraticCurveTo(t+a,r,t+a,r+i);e.lineTo(t+a,r+n-i);e.quadraticCurveTo(t+a,r+n,t+a-i,r+n);e.lineTo(t+i,r+n);e.quadraticCurveTo(t,r+n,t,r+n-i);e.lineTo(t,r+i);e.quadraticCurveTo(t,r,t+i,r);e.closePath();if(o)e.stroke();else e.fill()}fh.getTextAngle=function(e,t){var r;var a=e._private;var n=a.rscratch;var i=t?t+"-":"";var o=e.pstyle(i+"text-rotation");if(o.strValue==="autorotate"){var s=Gt(n,"labelAngle",t);r=e.isEdge()?s:0}else if(o.strValue==="none"){r=0}else{r=o.pfValue}return r};fh.drawText=function(e,t,r){var a=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var n=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var i=t._private;var o=i.rscratch;var s=n?t.effectiveOpacity():1;if(n&&(s===0||t.pstyle("text-opacity").value===0)){return}if(r==="main"){r=null}var l=Gt(o,"labelX",r);var u=Gt(o,"labelY",r);var v,f;var c=this.getLabelText(t,r);if(c!=null&&c!==""&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(e,t,n);var d=r?r+"-":"";var h=Gt(o,"labelWidth",r);var p=Gt(o,"labelHeight",r);var g=t.pstyle(d+"text-margin-x").pfValue;var y=t.pstyle(d+"text-margin-y").pfValue;var m=t.isEdge();var b=t.pstyle("text-halign").value;var x=t.pstyle("text-valign").value;if(m){b="center";x="center"}l+=g;u+=y;var w;if(!a){w=0}else{w=this.getTextAngle(t,r)}if(w!==0){v=l;f=u;e.translate(v,f);e.rotate(w);l=0;u=0}switch(x){case"top":break;case"center":u+=p/2;break;case"bottom":u+=p;break}var E=t.pstyle("text-background-opacity").value;var T=t.pstyle("text-border-opacity").value;var k=t.pstyle("text-border-width").pfValue;var C=t.pstyle("text-background-padding").pfValue;var P=t.pstyle("text-background-shape").strValue;var S=P.indexOf("round")===0;var D=2;if(E>0||k>0&&T>0){var B=l-C;switch(b){case"left":B-=h;break;case"center":B-=h/2;break}var A=u-p-C;var _=h+2*C;var M=p+2*C;if(E>0){var I=e.fillStyle;var R=t.pstyle("text-background-color").value;e.fillStyle="rgba("+R[0]+","+R[1]+","+R[2]+","+E*s+")";if(S){ch(e,B,A,_,M,D)}else{e.fillRect(B,A,_,M)}e.fillStyle=I}if(k>0&&T>0){var N=e.strokeStyle;var L=e.lineWidth;var O=t.pstyle("text-border-color").value;var z=t.pstyle("text-border-style").value;e.strokeStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+T*s+")";e.lineWidth=k;if(e.setLineDash){switch(z){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=k/4;e.setLineDash([]);break;case"solid":e.setLineDash([]);break}}if(S){ch(e,B,A,_,M,D,"stroke")}else{e.strokeRect(B,A,_,M)}if(z==="double"){var F=k/2;if(S){ch(e,B+F,A+F,_-F*2,M-F*2,D,"stroke")}else{e.strokeRect(B+F,A+F,_-F*2,M-F*2)}}if(e.setLineDash){e.setLineDash([])}e.lineWidth=L;e.strokeStyle=N}}var V=2*t.pstyle("text-outline-width").pfValue;if(V>0){e.lineWidth=V}if(t.pstyle("text-wrap").value==="wrap"){var j=Gt(o,"labelWrapCachedLines",r);var X=Gt(o,"labelLineHeight",r);var Y=h/2;var q=this.getLabelJustification(t);if(q==="auto");else if(b==="left"){if(q==="left"){l+=-h}else if(q==="center"){l+=-Y}}else if(b==="center"){if(q==="left"){l+=-Y}else if(q==="right"){l+=Y}}else if(b==="right"){if(q==="center"){l+=Y}else if(q==="right"){l+=h}}switch(x){case"top":u-=(j.length-1)*X;break;case"center":case"bottom":u-=(j.length-1)*X;break}for(var W=0;W0){e.strokeText(j[W],l,u)}e.fillText(j[W],l,u);u+=X}}else{if(V>0){e.strokeText(c,l,u)}e.fillText(c,l,u)}if(w!==0){e.rotate(-w);e.translate(-v,-f)}}};var dh={};dh.drawNode=function(e,t,r){var a=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var n=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var i=arguments.length>5&&arguments[5]!==undefined?arguments[5]:true;var o=this;var s,l;var u=t._private;var v=u.rscratch;var f=t.position();if(!I(f.x)||!I(f.y)){return}if(i&&!t.visible()){return}var c=i?t.effectiveOpacity():1;var d=o.usePaths();var h;var p=false;var g=t.padding();s=t.width()+2*g;l=t.height()+2*g;var y;if(r){y=r;e.translate(-y.x1,-y.y1)}var m=t.pstyle("background-image");var b=m.value;var x=new Array(b.length);var w=new Array(b.length);var E=0;for(var T=0;T0&&arguments[0]!==undefined?arguments[0]:B;o.eleFillStyle(e,t,a)};var U=function t(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:z;o.colorStrokeStyle(e,A[0],A[1],A[2],r)};var G=function t(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:X;o.colorStrokeStyle(e,V[0],V[1],V[2],r)};var H=function e(t,r,a,n){var i=o.nodePathCache=o.nodePathCache||[];var s=kt(a==="polygon"?a+","+n.join(","):a,""+r,""+t,""+q);var l=i[s];var u;var f=false;if(l!=null){u=l;f=true;v.pathCache=u}else{u=new Path2D;i[s]=v.pathCache=u}return{path:u,cacheHit:f}};var K=t.pstyle("shape").strValue;var Z=t.pstyle("shape-polygon-points").pfValue;if(d){e.translate(f.x,f.y);var $=H(s,l,K,Z);h=$.path;p=$.cacheHit}var Q=function r(){if(!p){var a=f;if(d){a={x:0,y:0}}o.nodeShapes[o.getNodeShape(t)].draw(h||e,a.x,a.y,s,l,q,v)}if(d){e.fill(h)}else{e.fill()}};var J=function r(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:c;var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var i=u.backgrounding;var s=0;for(var l=0;l0&&arguments[0]!==undefined?arguments[0]:false;var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:c;if(o.hasPie(t)){o.drawPie(e,t,n);if(a){if(!d){o.nodeShapes[o.getNodeShape(t)].draw(e,f.x,f.y,s,l,q,v)}}}};var te=function t(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:c;var a=(S>0?S:-S)*r;var n=S>0?0:255;if(S!==0){o.colorFillStyle(e,n,n,n,a);if(d){e.fill(h)}else{e.fill()}}};var re=function t(){if(D>0){e.lineWidth=D;e.lineCap=R;e.lineJoin=M;if(e.setLineDash){switch(_){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(L);e.lineDashOffset=O;break;case"solid":case"double":e.setLineDash([]);break}}if(N!=="center"){e.save();e.lineWidth*=2;if(N==="inside"){d?e.clip(h):e.clip()}else{var r=new Path2D;r.rect(-s/2-D,-l/2-D,s+2*D,l+2*D);r.addPath(h);e.clip(r,"evenodd")}d?e.stroke(h):e.stroke();e.restore()}else{d?e.stroke(h):e.stroke()}if(_==="double"){e.lineWidth=D/3;var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out";if(d){e.stroke(h)}else{e.stroke()}e.globalCompositeOperation=a}if(e.setLineDash){e.setLineDash([])}}};var ae=function r(){if(F>0){e.lineWidth=F;e.lineCap="butt";if(e.setLineDash){switch(j){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([]);break}}var a=f;if(d){a={x:0,y:0}}var n=o.getNodeShape(t);var i=D;if(N==="inside")i=0;if(N==="outside")i*=2;var u=(s+i+(F+Y))/s;var v=(l+i+(F+Y))/l;var c=s*u;var h=l*v;var p=o.nodeShapes[n].points;var g;if(d){var y=H(c,h,n,p);g=y.path}if(n==="ellipse"){o.drawEllipsePath(g||e,a.x,a.y,c,h)}else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(n)){var m=0;var b=0;var x=0;if(n==="round-diamond"){m=(i+Y+F)*1.4}else if(n==="round-heptagon"){m=(i+Y+F)*1.075;x=-(i/2+Y+F)/35}else if(n==="round-hexagon"){m=(i+Y+F)*1.12}else if(n==="round-pentagon"){m=(i+Y+F)*1.13;x=-(i/2+Y+F)/15}else if(n==="round-tag"){m=(i+Y+F)*1.12;b=(i/2+F+Y)*.07}else if(n==="round-triangle"){m=(i+Y+F)*(Math.PI/2);x=-(i+Y/2+F)/Math.PI}if(m!==0){u=(s+m)/s;c=s*u;if(!["round-hexagon","round-tag"].includes(n)){v=(l+m)/l;h=l*v}}q=q==="auto"?Sa(c,h):q;var w=c/2;var E=h/2;var T=q+(i+F+Y)/2;var k=new Array(p.length/2);var C=new Array(p.length/2);for(var P=0;P0){a=a||r.position();if(n==null||i==null){var c=r.padding();n=r.width()+2*c;i=r.height()+2*c}o.colorFillStyle(e,u[0],u[1],u[2],l);o.nodeShapes[v].draw(e,a.x,a.y,n+s*2,i+s*2,f);e.fill()}}};dh.drawNodeOverlay=hh("overlay");dh.drawNodeUnderlay=hh("underlay");dh.hasPie=function(e){e=e[0];return e._private.hasPie};dh.drawPie=function(e,t,r,a){t=t[0];a=a||t.position();var n=t.cy().style();var i=t.pstyle("pie-size");var o=a.x;var s=a.y;var l=t.width();var u=t.height();var v=Math.min(l,u)/2;var f=0;var c=this.usePaths();if(c){o=0;s=0}if(i.units==="%"){v=v*i.pfValue}else if(i.pfValue!==undefined){v=i.pfValue/2}for(var d=1;d<=n.pieBackgroundN;d++){var h=t.pstyle("pie-"+d+"-background-size").value;var p=t.pstyle("pie-"+d+"-background-color").value;var g=t.pstyle("pie-"+d+"-background-opacity").value*r;var y=h/100;if(y+f>1){y=1-f}var m=1.5*Math.PI+2*Math.PI*f;var b=2*Math.PI*y;var x=m+b;if(h===0||f>=1||f+y>1){continue}e.beginPath();e.moveTo(o,s);e.arc(o,s,v,m,x);e.closePath();this.colorFillStyle(e,p[0],p[1],p[2],g);e.fill();f+=y}};var ph={};var gh=100;ph.getPixelRatio=function(){var e=this.data.contexts[0];if(this.forcedPixelRatio!=null){return this.forcedPixelRatio}var t=this.cy.window();var r=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/r};ph.paintCache=function(e){var t=this.paintCaches=this.paintCaches||[];var r=true;var a;for(var n=0;nt.minMbLowQualFrames){t.motionBlurPxRatio=t.mbPxRBlurry}}if(t.clearingMotionBlur){t.motionBlurPxRatio=1}if(t.textureDrawLastFrame&&!f){v[t.NODE]=true;v[t.SELECT_BOX]=true}var m=r.style();var b=r.zoom();var x=o!==undefined?o:b;var w=r.pan();var E={x:w.x,y:w.y};var T={zoom:b,pan:{x:w.x,y:w.y}};var k=t.prevViewport;var C=k===undefined||T.zoom!==k.zoom||T.pan.x!==k.pan.x||T.pan.y!==k.pan.y;if(!C&&!(p&&!h)){t.motionBlurPxRatio=1}if(s){E=s}x*=l;E.x*=l;E.y*=l;var P=t.getCachedZSortedEles();function S(e,r,a,n,i){var o=e.globalCompositeOperation;e.globalCompositeOperation="destination-out";t.colorFillStyle(e,255,255,255,t.motionBlurTransparency);e.fillRect(r,a,n,i);e.globalCompositeOperation=o}function D(e,r){var i,l,v,f;if(!t.clearingMotionBlur&&(e===u.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]||e===u.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG])){i={x:w.x*d,y:w.y*d};l=b*d;v=t.canvasWidth*d;f=t.canvasHeight*d}else{i=E;l=x;v=t.canvasWidth;f=t.canvasHeight}e.setTransform(1,0,0,1,0,0);if(r==="motionBlur"){S(e,0,0,v,f)}else if(!a&&(r===undefined||r)){e.clearRect(0,0,v,f)}if(!n){e.translate(i.x,i.y);e.scale(l,l)}if(s){e.translate(s.x,s.y)}if(o){e.scale(o,o)}}if(!f){t.textureDrawLastFrame=false}if(f){t.textureDrawLastFrame=true;if(!t.textureCache){t.textureCache={};t.textureCache.bb=r.mutableElements().boundingBox();t.textureCache.texture=t.data.bufferCanvases[t.TEXTURE_BUFFER];var B=t.data.bufferContexts[t.TEXTURE_BUFFER];B.setTransform(1,0,0,1,0,0);B.clearRect(0,0,t.canvasWidth*t.textureMult,t.canvasHeight*t.textureMult);t.render({forcedContext:B,drawOnlyNodeLayer:true,forcedPxRatio:l*t.textureMult});var T=t.textureCache.viewport={zoom:r.zoom(),pan:r.pan(),width:t.canvasWidth,height:t.canvasHeight};T.mpan={x:(0-T.pan.x)/T.zoom,y:(0-T.pan.y)/T.zoom}}v[t.DRAG]=false;v[t.NODE]=false;var A=u.contexts[t.NODE];var _=t.textureCache.texture;var T=t.textureCache.viewport;A.setTransform(1,0,0,1,0,0);if(c){S(A,0,0,T.width,T.height)}else{A.clearRect(0,0,T.width,T.height)}var M=m.core("outside-texture-bg-color").value;var I=m.core("outside-texture-bg-opacity").value;t.colorFillStyle(A,M[0],M[1],M[2],I);A.fillRect(0,0,T.width,T.height);var b=r.zoom();D(A,false);A.clearRect(T.mpan.x,T.mpan.y,T.width/T.zoom/l,T.height/T.zoom/l);A.drawImage(_,T.mpan.x,T.mpan.y,T.width/T.zoom/l,T.height/T.zoom/l)}else if(t.textureOnViewport&&!a){t.textureCache=null}var R=r.extent();var N=t.pinching||t.hoverData.dragging||t.swipePanning||t.data.wheelZooming||t.hoverData.draggingEles||t.cy.animated();var L=t.hideEdgesOnViewport&&N;var O=[];O[t.NODE]=!v[t.NODE]&&c&&!t.clearedForMotionBlur[t.NODE]||t.clearingMotionBlur;if(O[t.NODE]){t.clearedForMotionBlur[t.NODE]=true}O[t.DRAG]=!v[t.DRAG]&&c&&!t.clearedForMotionBlur[t.DRAG]||t.clearingMotionBlur;if(O[t.DRAG]){t.clearedForMotionBlur[t.DRAG]=true}if(v[t.NODE]||n||i||O[t.NODE]){var z=c&&!O[t.NODE]&&d!==1;var A=a||(z?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]:u.contexts[t.NODE]);var F=c&&!z?"motionBlur":undefined;D(A,F);if(L){t.drawCachedNodes(A,P.nondrag,l,R)}else{t.drawLayeredElements(A,P.nondrag,l,R)}if(t.debug){t.drawDebugPoints(A,P.nondrag)}if(!n&&!c){v[t.NODE]=false}}if(!i&&(v[t.DRAG]||n||O[t.DRAG])){var z=c&&!O[t.DRAG]&&d!==1;var A=a||(z?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG]:u.contexts[t.DRAG]);D(A,c&&!z?"motionBlur":undefined);if(L){t.drawCachedNodes(A,P.drag,l,R)}else{t.drawCachedElements(A,P.drag,l,R)}if(t.debug){t.drawDebugPoints(A,P.drag)}if(!n&&!c){v[t.DRAG]=false}}this.drawSelectionRectangle(e,D);if(c&&d!==1){var V=u.contexts[t.NODE];var j=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE];var X=u.contexts[t.DRAG];var Y=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG];var q=function e(r,a,n){r.setTransform(1,0,0,1,0,0);if(n||!y){r.clearRect(0,0,t.canvasWidth,t.canvasHeight)}else{S(r,0,0,t.canvasWidth,t.canvasHeight)}var i=d;r.drawImage(a,0,0,t.canvasWidth*i,t.canvasHeight*i,0,0,t.canvasWidth,t.canvasHeight)};if(v[t.NODE]||O[t.NODE]){q(V,j,O[t.NODE]);v[t.NODE]=false}if(v[t.DRAG]||O[t.DRAG]){q(X,Y,O[t.DRAG]);v[t.DRAG]=false}}t.prevViewport=T;if(t.clearingMotionBlur){t.clearingMotionBlur=false;t.motionBlurCleared=true;t.motionBlur=true}if(c){t.motionBlurTimeout=setTimeout((function(){t.motionBlurTimeout=null;t.clearedForMotionBlur[t.NODE]=false;t.clearedForMotionBlur[t.DRAG]=false;t.motionBlur=false;t.clearingMotionBlur=!f;t.mbFrames=0;v[t.NODE]=true;v[t.DRAG]=true;t.redraw()}),gh)}if(!a){r.emit("render")}};var yh;ph.drawSelectionRectangle=function(e,t){var r=this;var a=r.cy;var n=r.data;var i=a.style();var o=e.drawOnlyNodeLayer;var s=e.drawAllLayers;var l=n.canvasNeedsRedraw;var u=e.forcedContext;if(r.showFps||!o&&l[r.SELECT_BOX]&&!s){var v=u||n.contexts[r.SELECT_BOX];t(v);if(r.selection[4]==1&&(r.hoverData.selecting||r.touchData.selecting)){var f=r.cy.zoom();var c=i.core("selection-box-border-width").value/f;v.lineWidth=c;v.fillStyle="rgba("+i.core("selection-box-color").value[0]+","+i.core("selection-box-color").value[1]+","+i.core("selection-box-color").value[2]+","+i.core("selection-box-opacity").value+")";v.fillRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]);if(c>0){v.strokeStyle="rgba("+i.core("selection-box-border-color").value[0]+","+i.core("selection-box-border-color").value[1]+","+i.core("selection-box-border-color").value[2]+","+i.core("selection-box-opacity").value+")";v.strokeRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1])}}if(n.bgActivePosistion&&!r.hoverData.selecting){var f=r.cy.zoom();var d=n.bgActivePosistion;v.fillStyle="rgba("+i.core("active-bg-color").value[0]+","+i.core("active-bg-color").value[1]+","+i.core("active-bg-color").value[2]+","+i.core("active-bg-opacity").value+")";v.beginPath();v.arc(d.x,d.y,i.core("active-bg-size").pfValue/f,0,2*Math.PI);v.fill()}var h=r.lastRedrawTime;if(r.showFps&&h){h=Math.round(h);var p=Math.round(1e3/h);var g="1 frame = "+h+" ms = "+p+" fps";v.setTransform(1,0,0,1,0,0);v.fillStyle="rgba(255, 0, 0, 0.75)";v.strokeStyle="rgba(255, 0, 0, 0.75)";v.font="30px Arial";if(!yh){var y=v.measureText(g);yh=y.actualBoundingBoxAscent}v.fillText(g,0,yh);var m=60;v.strokeRect(0,yh+10,250,20);v.fillRect(0,yh+10,250*Math.min(p/m,1),20)}if(!s){l[r.SELECT_BOX]=false}}};function mh(e,t,r){var a=e.createShader(t);e.shaderSource(a,r);e.compileShader(a);if(!e.getShaderParameter(a,e.COMPILE_STATUS)){throw new Error(e.getShaderInfoLog(a))}return a}function bh(e,t,r){var a=mh(e,e.VERTEX_SHADER,t);var n=mh(e,e.FRAGMENT_SHADER,r);var i=e.createProgram();e.attachShader(i,a);e.attachShader(i,n);e.linkProgram(i);if(!e.getProgramParameter(i,e.LINK_STATUS)){throw new Error("Could not initialize shaders")}return i}function xh(e,t,r){if(r===undefined){r=t}var a=e.makeOffscreenCanvas(t,r);var n=a.context=a.getContext("2d");a.clear=function(){return n.clearRect(0,0,a.width,a.height)};a.clear();return a}function wh(e){var t=e.pixelRatio;var r=e.cy.zoom();var a=e.cy.pan();return{zoom:r*t,pan:{x:a.x*t,y:a.y*t}}}function Eh(e,t,r,a,n){var i=a*r+t.x;var o=n*r+t.y;o=Math.round(e.canvasHeight-o);return[i,o]}function Th(e,t,r){var a=e[0]/255;var n=e[1]/255;var i=e[2]/255;var o=t;var s=r||new Array(4);s[0]=a*o;s[1]=n*o;s[2]=i*o;s[3]=o;return s}function kh(e,t){var r=t||new Array(4);r[0]=(e>>0&255)/255;r[1]=(e>>8&255)/255;r[2]=(e>>16&255)/255;r[3]=(e>>24&255)/255;return r}function Ch(e){return e[0]+(e[1]<<8)+(e[2]<<16)+(e[3]<<24)}function Ph(e,t){var r=e.createTexture();r.buffer=function(t){e.bindTexture(e.TEXTURE_2D,r);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR_MIPMAP_NEAREST);e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,true);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);e.generateMipmap(e.TEXTURE_2D);e.bindTexture(e.TEXTURE_2D,null)};r.deleteTexture=function(){e.deleteTexture(r)};return r}function Sh(e,t){switch(t){case"float":return[1,e.FLOAT,4];case"vec2":return[2,e.FLOAT,4];case"vec3":return[3,e.FLOAT,4];case"vec4":return[4,e.FLOAT,4];case"int":return[1,e.INT,4];case"ivec2":return[2,e.INT,4]}}function Dh(e,t,r){switch(t){case e.FLOAT:return new Float32Array(r);case e.INT:return new Int32Array(r)}}function Bh(e,t,r,a,n,i){switch(t){case e.FLOAT:return new Float32Array(r.buffer,i*a,n);case e.INT:return new Int32Array(r.buffer,i*a,n)}}function Ah(e,t,r,a){var n=Sh(e,t),i=p(n,2),o=i[0],s=i[1];var l=Dh(e,s,a);var u=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,u);e.bufferData(e.ARRAY_BUFFER,l,e.STATIC_DRAW);if(s===e.FLOAT){e.vertexAttribPointer(r,o,s,false,0,0)}else if(s===e.INT){e.vertexAttribIPointer(r,o,s,0,0)}e.enableVertexAttribArray(r);e.bindBuffer(e.ARRAY_BUFFER,null);return u}function _h(e,t,r,a){var n=Sh(e,r),i=p(n,3),o=i[0],s=i[1],l=i[2];var u=Dh(e,s,t*o);var v=o*l;var f=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,f);e.bufferData(e.ARRAY_BUFFER,t*v,e.DYNAMIC_DRAW);e.enableVertexAttribArray(a);if(s===e.FLOAT){e.vertexAttribPointer(a,o,s,false,v,0)}else if(s===e.INT){e.vertexAttribIPointer(a,o,s,v,0)}e.vertexAttribDivisor(a,1);e.bindBuffer(e.ARRAY_BUFFER,null);var c=new Array(t);for(var d=0;di){o=i/r;s=r*o;l=a*o}return{scale:o,texW:s,texH:l}}},{key:"draw",value:function e(t,r,a){var n=this;if(this.locked)throw new Error("can't draw, atlas is locked");var i=this.texSize,o=this.texRows,s=this.texHeight;var l=this.getScale(r),u=l.scale,v=l.texW,f=l.texH;var c=[null,null];var d=function e(t,n){if(a&&n){var i=n.context;var o=t.x,l=t.row;var v=o;var f=s*l;i.save();i.translate(v,f);i.scale(u,u);a(i,r);i.restore()}};var h=function e(){d(n.freePointer,n.canvas);c[0]={x:n.freePointer.x,y:n.freePointer.row*s,w:v,h:f};c[1]={x:n.freePointer.x+v,y:n.freePointer.row*s,w:0,h:f};n.freePointer.x+=v;if(n.freePointer.x==i){n.freePointer.x=0;n.freePointer.row++}};var p=function e(){var t=n.scratch,r=n.canvas;t.clear();d({x:0,row:0},t);var a=i-n.freePointer.x;var o=v-a;var l=s;{var u=n.freePointer.x;var h=n.freePointer.row*s;var p=a;r.context.drawImage(t,0,0,p,l,u,h,p,l);c[0]={x:u,y:h,w:p,h:f}}{var g=a;var y=(n.freePointer.row+1)*s;var m=o;if(r){r.context.drawImage(t,g,0,m,l,0,y,m,l)}c[1]={x:0,y,w:m,h:f}}n.freePointer.x=o;n.freePointer.row++};var g=function e(){n.freePointer.x=0;n.freePointer.row++};if(this.freePointer.x+v<=i){h()}else if(this.freePointer.row>=o-1){return false}else if(this.freePointer.x===i){g();h()}else if(this.enableWrapping){p()}else{g();h()}this.keyToLocation.set(t,c);this.needsBuffer=true;return c}},{key:"getOffsets",value:function e(t){return this.keyToLocation.get(t)}},{key:"isEmpty",value:function e(){return this.freePointer.x===0&&this.freePointer.row===0}},{key:"canFit",value:function e(t){if(this.locked)return false;var r=this.texSize,a=this.texRows;var n=this.getScale(t),i=n.texW;if(this.freePointer.x+i>r){return this.freePointer.row1&&arguments[1]!==undefined?arguments[1]:{},a=r.forceRedraw,n=a===undefined?false:a,i=r.filterEle,o=i===undefined?function(){return true}:i,s=r.filterType,l=s===undefined?function(){return true}:s;var v=false;var f=false;var c=u(t),d;try{for(c.s();!(d=c.n()).done;){var h=d.value;if(o(h)){var p=u(this.renderTypes.values()),g;try{for(p.s();!(g=p.n()).done;){var y=g.value;var m=y.type;if(l(m)){var b=y.getKey(h);var x=this.collections.get(y.collection);if(n){x.markKeyForGC(b);f=true}else{var w=y.getID?y.getID(h):h.id();var E=this._key(m,w);var T=this.typeAndIdToKey.get(E);if(T!==undefined&&T!==b){this.typeAndIdToKey["delete"](E);x.markKeyForGC(T);v=true}}}}}catch(k){p.e(k)}finally{p.f()}}}}catch(k){c.e(k)}finally{c.f()}if(f){this.gc();v=false}return v}},{key:"gc",value:function e(){var t=u(this.collections.values()),r;try{for(t.s();!(r=t.n()).done;){var a=r.value;a.gc()}}catch(n){t.e(n)}finally{t.f()}}},{key:"getOrCreateAtlas",value:function e(t,r,a){var n=this.renderTypes.get(r);var i=n.getKey(t);if(!a)a=n.getBoundingBox(t);var o=this.collections.get(n.collection);var s=false;var l=o.draw(i,a,(function(e){n.drawElement(e,t,a,true,true);s=true}));if(s){var u=n.getID?n.getID(t):t.id();var v=this._key(r,u);this.typeAndIdToKey.set(v,i)}return l}},{key:"startBatch",value:function e(){this.batchAtlases=[]}},{key:"getAtlasCount",value:function e(){return this.batchAtlases.length}},{key:"getAtlases",value:function e(){return this.batchAtlases}},{key:"canAddToCurrentBatch",value:function e(t,r){if(this.batchAtlases.length===this.maxAtlasesPerBatch){var a=this.renderTypes.get(r);var n=a.getKey(t);var i=this.collections.get(a.collection);var o=i.getAtlas(n);return Boolean(o)&&this.batchAtlases.includes(o)}return true}},{key:"getAtlasIndexForBatch",value:function e(t){var r=this.batchAtlases.indexOf(t);if(r<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch){return}this.batchAtlases.push(t);r=this.batchAtlases.length-1}return r}},{key:"getIndexArray",value:function e(){return Array.from({length:this.maxAtlasesPerBatch},(function(e,t){return t}))}},{key:"getAtlasInfo",value:function e(t,r){var a=this.renderTypes.get(r);var n=a.getBoundingBox(t);var i=this.getOrCreateAtlas(t,r,n);var o=this.getAtlasIndexForBatch(i);if(o===undefined){return undefined}var s=a.getKey(t);var l=i.getOffsets(s),u=p(l,2),v=u[0],f=u[1];return{index:o,tex1:v,tex2:f,bb:n}}},{key:"setTransformMatrix",value:function e(t,r,a,n){var i=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var o=this.getRenderTypeOpts(a);var s=o.getPadding?o.getPadding(t):0;if(n){var l=n.bb,u=n.tex1,v=n.tex2;var f=u.w/(u.w+v.w);if(!i){f=1-f}var c=this.getAdjustedBB(l,s,i,f);this._applyTransformMatrix(r,c,o,t)}else{var d=o.getBoundingBox(t);var h=this.getAdjustedBB(d,s,true,1);this._applyTransformMatrix(r,h,o,t)}}},{key:"_applyTransformMatrix",value:function e(t,r,a,n){var i,o;Lh(t);var s=a.getRotation?a.getRotation(n):0;if(s!==0){var l=a.getRotationPoint(n),u=l.x,v=l.y;zh(t,t,[u,v]);Fh(t,t,s);var f=a.getRotationOffset(n);i=f.x+r.xOffset;o=f.y}else{i=r.x1;o=r.y1}zh(t,t,[i,o]);Vh(t,t,[r.w,r.h])}},{key:"getAdjustedBB",value:function e(t,r,a,n){var i=t.x1,o=t.y1,s=t.w,l=t.h;if(r){i-=r;o-=r;s+=2*r;l+=2*r}var u=0;var v=s*n;if(a&&n<1){s=v}else if(!a&&n<1){u=s-v;i+=u;s=v}return{x1:i,y1:o,w:s,h:l,xOffset:u}}},{key:"getDebugInfo",value:function e(){var t=[];var r=u(this.collections),a;try{for(r.s();!(a=r.n()).done;){var n=p(a.value,2),i=n[0],o=n[1];var s=o.getCounts(),l=s.keyCount,v=s.atlasCount;t.push({type:i,keyCount:l,atlasCount:v})}}catch(f){r.e(f)}finally{r.f()}return t}}])}();var Kh=0;var Zh=1;var $h=2;var Qh=3;var Jh=4;var ep=function(){function e(t,r,a){o(this,e);this.r=t;this.gl=r;this.maxInstances=a.webglBatchSize;this.atlasSize=a.webglTexSize;this.bgColor=a.bgColor;this.debug=a.webglDebug;this.batchDebugInfo=[];a.enableWrapping=true;a.createTextureCanvas=xh;this.atlasManager=new Hh(t,a);this.program=this.createShaderProgram(Xh.SCREEN);this.pickingProgram=this.createShaderProgram(Xh.PICKING);this.vao=this.createVAO()}return l(e,[{key:"addAtlasCollection",value:function e(t,r){this.atlasManager.addAtlasCollection(t,r)}},{key:"addAtlasRenderType",value:function e(t,r){this.atlasManager.addRenderType(t,r)}},{key:"invalidate",value:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},a=r.type;var n=this.atlasManager;if(a){return n.invalidate(t,{filterType:function e(t){return t===a},forceRedraw:true})}else{return n.invalidate(t)}}},{key:"gc",value:function e(){this.atlasManager.gc()}},{key:"createShaderProgram",value:function e(t){var r=this.gl;var a="#version 300 es\n precision highp float;\n\n uniform mat3 uPanZoomMatrix;\n uniform int uAtlasSize;\n \n // instanced\n in vec2 aPosition; \n\n in mat3 aTransform;\n\n // what are we rendering?\n in int aVertType;\n\n // for picking\n in vec4 aIndex;\n \n // For textures\n in int aAtlasId; // which shader unit/atlas to use\n in vec4 aTex; // x/y/w/h of texture in atlas\n\n // for edges\n in vec4 aPointAPointB;\n in vec4 aPointCPointD;\n in float aLineWidth;\n in vec4 aColor;\n\n out vec2 vTexCoord;\n out vec4 vColor;\n flat out int vAtlasId;\n flat out vec4 vIndex;\n flat out int vVertType;\n\n void main(void) {\n int vid = gl_VertexID;\n vec2 position = aPosition;\n\n if(aVertType == ".concat(Kh,") {\n float texX = aTex.x;\n float texY = aTex.y;\n float texW = aTex.z;\n float texH = aTex.w;\n\n int vid = gl_VertexID;\n\n if(vid == 1 || vid == 2 || vid == 4) {\n texX += texW;\n }\n if(vid == 2 || vid == 4 || vid == 5) {\n texY += texH;\n }\n\n float d = float(uAtlasSize);\n vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1\n\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n }\n else if(aVertType == ").concat(Jh,") {\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n vColor = aColor;\n }\n else if(aVertType == ").concat(Zh,") {\n vec2 source = aPointAPointB.xy;\n vec2 target = aPointAPointB.zw;\n\n // adjust the geometry so that the line is centered on the edge\n position.y = position.y - 0.5;\n\n vec2 xBasis = target - source;\n vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x));\n vec2 point = source + xBasis * position.x + yBasis * aLineWidth * position.y;\n\n gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0);\n vColor = aColor;\n } \n else if(aVertType == ").concat($h,") {\n vec2 pointA = aPointAPointB.xy;\n vec2 pointB = aPointAPointB.zw;\n vec2 pointC = aPointCPointD.xy;\n vec2 pointD = aPointCPointD.zw;\n\n // adjust the geometry so that the line is centered on the edge\n position.y = position.y - 0.5;\n\n vec2 p0 = pointA;\n vec2 p1 = pointB;\n vec2 p2 = pointC;\n vec2 pos = position;\n if(position.x == 1.0) {\n p0 = pointD;\n p1 = pointC;\n p2 = pointB;\n pos = vec2(0.0, -position.y);\n }\n\n vec2 p01 = p1 - p0;\n vec2 p12 = p2 - p1;\n vec2 p21 = p1 - p2;\n\n // Find the normal vector.\n vec2 tangent = normalize(normalize(p12) + normalize(p01));\n vec2 normal = vec2(-tangent.y, tangent.x);\n\n // Find the vector perpendicular to p0 -> p1.\n vec2 p01Norm = normalize(vec2(-p01.y, p01.x));\n\n // Determine the bend direction.\n float sigma = sign(dot(p01 + p21, normal));\n float width = aLineWidth;\n\n if(sign(pos.y) == -sigma) {\n // This is an intersecting vertex. Adjust the position so that there's no overlap.\n vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm);\n gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);\n } else {\n // This is a non-intersecting vertex. Treat it like a mitre join.\n vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm);\n gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);\n }\n\n vColor = aColor;\n } \n else if(aVertType == ").concat(Qh," && vid < 3) {\n // massage the first triangle into an edge arrow\n if(vid == 0)\n position = vec2(-0.15, -0.3);\n if(vid == 1)\n position = vec2( 0.0, 0.0);\n if(vid == 2)\n position = vec2( 0.15, -0.3);\n\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n vColor = aColor;\n }\n else {\n gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space\n }\n\n vAtlasId = aAtlasId;\n vIndex = aIndex;\n vVertType = aVertType;\n }\n ");var n=this.atlasManager.getIndexArray();var i="#version 300 es\n precision highp float;\n\n // define texture unit for each node in the batch\n ".concat(n.map((function(e){return"uniform sampler2D uTexture".concat(e,";")})).join("\n\t"),"\n\n uniform vec4 uBGColor;\n\n in vec2 vTexCoord;\n in vec4 vColor;\n flat in int vAtlasId;\n flat in vec4 vIndex;\n flat in int vVertType;\n\n out vec4 outColor;\n\n void main(void) {\n if(vVertType == ").concat(Kh,") {\n ").concat(n.map((function(e){return"if(vAtlasId == ".concat(e,") outColor = texture(uTexture").concat(e,", vTexCoord);")})).join("\n\telse "),"\n } else if(vVertType == ").concat(Qh,") {\n // blend arrow color with background (using premultiplied alpha)\n outColor.rgb = vColor.rgb + (uBGColor.rgb * (1.0 - vColor.a)); \n outColor.a = 1.0; // make opaque, masks out line under arrow\n } else {\n outColor = vColor;\n }\n\n ").concat(t.picking?"if(outColor.a == 0.0) discard;\n else outColor = vIndex;":"","\n }\n ");var o=bh(r,a,i);o.aPosition=r.getAttribLocation(o,"aPosition");o.aIndex=r.getAttribLocation(o,"aIndex");o.aVertType=r.getAttribLocation(o,"aVertType");o.aTransform=r.getAttribLocation(o,"aTransform");o.aAtlasId=r.getAttribLocation(o,"aAtlasId");o.aTex=r.getAttribLocation(o,"aTex");o.aPointAPointB=r.getAttribLocation(o,"aPointAPointB");o.aPointCPointD=r.getAttribLocation(o,"aPointCPointD");o.aLineWidth=r.getAttribLocation(o,"aLineWidth");o.aColor=r.getAttribLocation(o,"aColor");o.uPanZoomMatrix=r.getUniformLocation(o,"uPanZoomMatrix");o.uAtlasSize=r.getUniformLocation(o,"uAtlasSize");o.uBGColor=r.getUniformLocation(o,"uBGColor");o.uTextures=[];for(var s=0;s1&&arguments[1]!==undefined?arguments[1]:Xh.SCREEN;this.panZoomMatrix=t;this.renderTarget=r;this.batchDebugInfo=[];this.wrappedCount=0;this.rectangleCount=0;this.startBatch()}},{key:"startBatch",value:function e(){this.instanceCount=0;this.atlasManager.startBatch()}},{key:"endFrame",value:function e(){this.endBatch()}},{key:"getTempMatrix",value:function e(){return this.tempMatrix=this.tempMatrix||Nh()}},{key:"drawTexture",value:function e(t,r,a){var n=this.atlasManager;if(!t.visible()){return}if(!n.getRenderTypeOpts(a).isVisible(t)){return}if(!n.canAddToCurrentBatch(t,a)){this.endBatch()}if(this.instanceCount+1>=this.maxInstances){this.endBatch()}var i=this.instanceCount;this.vertTypeBuffer.getView(i)[0]=Kh;var o=this.indexBuffer.getView(i);kh(r,o);var s=n.getAtlasInfo(t,a);var l=s.index,u=s.tex1,v=s.tex2;if(v.w>0)this.wrappedCount++;var f=true;for(var c=0,d=[u,v];c=this.maxInstances){this.endBatch()}}},{key:"drawSimpleRectangle",value:function e(t,r,a){if(!t.visible()){return}var n=this.atlasManager;var i=this.instanceCount;this.vertTypeBuffer.getView(i)[0]=Jh;var o=this.indexBuffer.getView(i);kh(r,o);var s=t.pstyle("background-color").value;var l=t.pstyle("background-opacity").value;var u=this.colorBuffer.getView(i);Th(s,l,u);var v=this.transformBuffer.getMatrixView(i);n.setTransformMatrix(t,v,a);this.rectangleCount++;this.instanceCount++;if(this.instanceCount>=this.maxInstances){this.endBatch()}}},{key:"drawEdgeArrow",value:function e(t,r,a){if(!t.visible()){return}var n=t._private.rscratch;var i,o,s;if(a==="source"){i=n.arrowStartX;o=n.arrowStartY;s=n.srcArrowAngle}else{i=n.arrowEndX;o=n.arrowEndY;s=n.tgtArrowAngle}if(isNaN(i)||i==null||isNaN(o)||o==null||isNaN(s)||s==null){return}var l=t.pstyle(a+"-arrow-shape").value;if(l==="none"){return}var u=t.pstyle(a+"-arrow-color").value;var v=t.pstyle("opacity").value;var f=t.pstyle("line-opacity").value;var c=v*f;var d=t.pstyle("width").pfValue;var h=t.pstyle("arrow-scale").value;var p=this.r.getArrowWidth(d,h);var g=this.instanceCount;var y=this.transformBuffer.getMatrixView(g);Lh(y);zh(y,y,[i,o]);Vh(y,y,[p,p]);Fh(y,y,s);this.vertTypeBuffer.getView(g)[0]=Qh;var m=this.indexBuffer.getView(g);kh(r,m);var b=this.colorBuffer.getView(g);Th(u,c,b);this.instanceCount++;if(this.instanceCount>=this.maxInstances){this.endBatch()}}},{key:"drawEdgeLine",value:function e(t,r){if(!t.visible()){return}var a=this.getEdgePoints(t);if(!a){return}var n=t.pstyle("opacity").value;var i=t.pstyle("line-opacity").value;var o=t.pstyle("width").pfValue;var s=t.pstyle("line-color").value;var l=n*i;if(a.length/2+this.instanceCount>this.maxInstances){this.endBatch()}if(a.length==4){var u=this.instanceCount;this.vertTypeBuffer.getView(u)[0]=Zh;var v=this.indexBuffer.getView(u);kh(r,v);var f=this.colorBuffer.getView(u);Th(s,l,f);var c=this.lineWidthBuffer.getView(u);c[0]=o;var d=this.pointAPointBBuffer.getView(u);d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=a[3];this.instanceCount++;if(this.instanceCount>=this.maxInstances){this.endBatch()}}else{for(var h=0;h=this.maxInstances){this.endBatch()}}}}},{key:"getEdgePoints",value:function e(t){var r=t._private.rscratch;if(r.badLine||r.allpts==null||isNaN(r.allpts[0])){return}var a=r.allpts;if(a.length==4){return a}var n=this.getNumSegments(t);return this.getCurveSegmentPoints(a,n)}},{key:"getNumSegments",value:function e(t){var r=15;return Math.min(Math.max(r,5),this.maxInstances)}},{key:"getCurveSegmentPoints",value:function e(t,r){if(t.length==4){return t}var a=Array((r+1)*2);for(var n=0;n<=r;n++){if(n==0){a[0]=t[0];a[1]=t[1]}else if(n==r){a[n*2]=t[t.length-2];a[n*2+1]=t[t.length-1]}else{var i=n/r;this.setCurvePoint(t,i,a,n*2)}}return a}},{key:"setCurvePoint",value:function e(t,r,a,n){if(t.length<=2){a[n]=t[0];a[n+1]=t[1]}else{var i=Array(t.length-2);for(var o=0;o0}},{key:"getStyle",value:function e(t,r){var a=r.pstyle("".concat(t,"-opacity")).value;var n=r.pstyle("".concat(t,"-color")).value;var i=r.pstyle("".concat(t,"-shape")).value;return{opacity:a,color:n,shape:i}}},{key:"getPadding",value:function e(t,r){return r.pstyle("".concat(t,"-padding")).pfValue}},{key:"draw",value:function e(t,r,a,n){if(!this.isVisible(t,a))return;var i=this.r;var o=n.w;var s=n.h;var l=o/2;var u=s/2;var v=this.getStyle(t,a),f=v.shape,c=v.color,d=v.opacity;r.save();r.fillStyle=tp(c,d);if(f==="round-rectangle"||f==="roundrectangle"){i.drawRoundRectanglePath(r,l,u,o,s,"auto")}else if(f==="ellipse"){i.drawEllipsePath(r,l,u,o,s)}r.fill();r.restore()}}])}();var ap={};ap.initWebgl=function(e,t){var r=this;var a=r.data.contexts[r.WEBGL];e.bgColor=np(r);e.webglTexSize=Math.min(e.webglTexSize,a.getParameter(a.MAX_TEXTURE_SIZE));e.webglTexRows=Math.min(e.webglTexRows,54);e.webglTexRowsNodes=Math.min(e.webglTexRowsNodes,54);e.webglBatchSize=Math.min(e.webglBatchSize,16384);e.webglTexPerBatch=Math.min(e.webglTexPerBatch,a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS));r.webglDebug=e.webglDebug;r.webglDebugShowAtlases=e.webglDebugShowAtlases;r.pickingFrameBuffer=Ih(a);r.pickingFrameBuffer.needsDraw=true;var n=function e(t){return function(e){return r.getTextAngle(e,t)}};var i=function e(t){return function(e){var r=e.pstyle(t);return r&&r.value}};r.drawing=new ep(r,a,e);var o=new rp(r);r.drawing.addAtlasCollection("node",Yh({texRows:e.webglTexRowsNodes}));r.drawing.addAtlasCollection("label",Yh({texRows:e.webglTexRows}));r.drawing.addAtlasRenderType("node-body",qh({collection:"node",getKey:t.getStyleKey,getBoundingBox:t.getElementBox,drawElement:t.drawElement}));r.drawing.addAtlasRenderType("label",qh({collection:"label",getKey:t.getLabelKey,getBoundingBox:t.getLabelBox,drawElement:t.drawLabel,getRotation:n(null),getRotationPoint:t.getLabelRotationPoint,getRotationOffset:t.getLabelRotationOffset,isVisible:i("label")}));r.drawing.addAtlasRenderType("node-overlay",qh({collection:"node",getBoundingBox:t.getElementBox,getKey:function e(t){return o.getStyleKey("overlay",t)},drawElement:function e(t,r,a){return o.draw("overlay",t,r,a)},isVisible:function e(t){return o.isVisible("overlay",t)},getPadding:function e(t){return o.getPadding("overlay",t)}}));r.drawing.addAtlasRenderType("node-underlay",qh({collection:"node",getBoundingBox:t.getElementBox,getKey:function e(t){return o.getStyleKey("underlay",t)},drawElement:function e(t,r,a){return o.draw("underlay",t,r,a)},isVisible:function e(t){return o.isVisible("underlay",t)},getPadding:function e(t){return o.getPadding("underlay",t)}}));r.drawing.addAtlasRenderType("edge-source-label",qh({collection:"label",getKey:t.getSourceLabelKey,getBoundingBox:t.getSourceLabelBox,drawElement:t.drawSourceLabel,getRotation:n("source"),getRotationPoint:t.getSourceLabelRotationPoint,getRotationOffset:t.getSourceLabelRotationOffset,isVisible:i("source-label")}));r.drawing.addAtlasRenderType("edge-target-label",qh({collection:"label",getKey:t.getTargetLabelKey,getBoundingBox:t.getTargetLabelBox,drawElement:t.drawTargetLabel,getRotation:n("target"),getRotationPoint:t.getTargetLabelRotationPoint,getRotationOffset:t.getTargetLabelRotationOffset,isVisible:i("target-label")}));var s=st((function(){console.log("garbage collect flag set");r.data.gc=true}),1e4);r.onUpdateEleCalcs((function(e,t){var a=false;if(t&&t.length>0){a|=r.drawing.invalidate(t)}if(a){s()}}));ip(r)};function np(e){var t=e.cy.container();var r=t&&t.style&&t.style.backgroundColor||"white";return ce(r)}function ip(e){{var t=e.render;e.render=function(r){r=r||{};var a=e.cy;if(e.webgl){if(a.zoom()>fd){op(e);t.call(e,r)}else{sp(e);yp(e,r,Xh.SCREEN)}}}}{var r=e.matchCanvasSize;e.matchCanvasSize=function(t){r.call(e,t);e.pickingFrameBuffer.setFramebufferAttachmentSizes(e.canvasWidth,e.canvasHeight);e.pickingFrameBuffer.needsDraw=true}}{e.findNearestElements=function(t,r,a,n){return hp(e,t,r)}}{var a=e.invalidateCachedZSortedEles;e.invalidateCachedZSortedEles=function(){a.call(e);e.pickingFrameBuffer.needsDraw=true}}{var n=e.notify;e.notify=function(t,r){n.call(e,t,r);if(t==="viewport"||t==="bounds"){e.pickingFrameBuffer.needsDraw=true}else if(t==="background"){e.drawing.invalidate(r,{type:"node-body"})}}}}function op(e){var t=e.data.contexts[e.WEBGL];t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}function sp(e){var t=function t(r){r.save();r.setTransform(1,0,0,1,0,0);r.clearRect(0,0,e.canvasWidth,e.canvasHeight);r.restore()};t(e.data.contexts[e.NODE]);t(e.data.contexts[e.DRAG])}function lp(e){var t=e.canvasWidth;var r=e.canvasHeight;var a=wh(e),n=a.pan,i=a.zoom;var o=Nh();zh(o,o,[n.x,n.y]);Vh(o,o,[i,i]);var s=Nh();jh(s,t,r);var l=Nh();Oh(l,s,o);return l}function up(e,t){var r=e.canvasWidth;var a=e.canvasHeight;var n=wh(e),i=n.pan,o=n.zoom;t.setTransform(1,0,0,1,0,0);t.clearRect(0,0,r,a);t.translate(i.x,i.y);t.scale(o,o)}function vp(e,t){e.drawSelectionRectangle(t,(function(t){return up(e,t)}))}function fp(e){var t=e.data.contexts[e.NODE];t.save();up(e,t);t.strokeStyle="rgba(0, 0, 0, 0.3)";t.beginPath();t.moveTo(-1e3,0);t.lineTo(1e3,0);t.stroke();t.beginPath();t.moveTo(0,-1e3);t.lineTo(0,1e3);t.stroke();t.restore()}function cp(e){var t=function t(r,a,n){var i=r.atlasManager.getAtlasCollection(a);var o=e.data.contexts[e.NODE];var s=.125;var l=i.atlases;for(var u=0;u=0){w.add(k)}}return w}function hp(e,t,r){var a=dp(e,t,r);var n=e.getCachedZSortedEles();var i,o;var s=u(a),l;try{for(s.s();!(l=s.n()).done;){var v=l.value;var f=n[v];if(!i&&f.isNode()){i=f}if(!o&&f.isEdge()){o=f}if(i&&o){break}}}catch(c){s.e(c)}finally{s.f()}return[i,o].filter(Boolean)}function pp(e){return e.pstyle("shape").value==="rectangle"&&e.pstyle("background-fill").value==="solid"&&e.pstyle("border-width").pfValue===0&&e.pstyle("background-image").strValue==="none"}function gp(e,t,r){var a=e.drawing;t+=1;if(r.isNode()){a.drawTexture(r,t,"node-underlay");if(pp(r)){a.drawSimpleRectangle(r,t,"node-body")}else{a.drawTexture(r,t,"node-body")}a.drawTexture(r,t,"label");a.drawTexture(r,t,"node-overlay")}else{a.drawEdgeLine(r,t);a.drawEdgeArrow(r,t,"source");a.drawEdgeArrow(r,t,"target");a.drawTexture(r,t,"label");a.drawTexture(r,t,"edge-source-label");a.drawTexture(r,t,"edge-target-label")}}function yp(e,t,r){var a;if(e.webglDebug){a=performance.now()}var n=e.drawing;var i=0;if(r.screen){if(e.data.canvasNeedsRedraw[e.SELECT_BOX]){vp(e,t)}}if(e.data.canvasNeedsRedraw[e.NODE]||r.picking){var o=e.data.contexts[e.WEBGL];if(r.screen){o.clearColor(0,0,0,0);o.enable(o.BLEND);o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA)}else{o.disable(o.BLEND)}o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT);o.viewport(0,0,o.canvas.width,o.canvas.height);var s=lp(e);var l=e.getCachedZSortedEles();i=l.length;n.startFrame(s,r);if(r.screen){for(var v=0;v0&&o>0){d.clearRect(0,0,i,o);d.globalCompositeOperation="source-over";var h=this.getCachedZSortedEles();if(e.full){d.translate(-a.x1*u,-a.y1*u);d.scale(u,u);this.drawElements(d,h);d.scale(1/u,1/u);d.translate(a.x1*u,a.y1*u)}else{var p=t.pan();var g={x:p.x*u,y:p.y*u};u*=t.zoom();d.translate(g.x,g.y);d.scale(u,u);this.drawElements(d,h);d.scale(1/u,1/u);d.translate(-g.x,-g.y)}if(e.bg){d.globalCompositeOperation="destination-over";d.fillStyle=e.bg;d.rect(0,0,i,o);d.fill()}}return c};function Pp(e,t){var r=atob(e);var a=new ArrayBuffer(r.length);var n=new Uint8Array(a);for(var i=0;i=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(r,"__esModule",{value:true});r.MathJax=r.combineWithMathJax=r.combineDefaults=r.combineConfig=r.isObject=void 0;var n=t(71471);function o(e){return typeof e==="object"&&e!==null}r.isObject=o;function i(e,r){var t,n;try{for(var s=a(Object.keys(r)),l=s.next();!l.done;l=s.next()){var f=l.value;if(f==="__esModule")continue;if(o(e[f])&&o(r[f])&&!(r[f]instanceof Promise)){i(e[f],r[f])}else if(r[f]!==null&&r[f]!==undefined){e[f]=r[f]}}}catch(c){t={error:c}}finally{try{if(l&&!l.done&&(n=s.return))n.call(s)}finally{if(t)throw t.error}}return e}r.combineConfig=i;function s(e,r,t){var n,i;if(!e[r]){e[r]={}}e=e[r];try{for(var l=a(Object.keys(t)),f=l.next();!f.done;f=l.next()){var c=f.value;if(o(e[c])&&o(t[c])){s(e,c,t[c])}else if(e[c]==null&&t[c]!=null){e[c]=t[c]}}}catch(u){n={error:u}}finally{try{if(f&&!f.done&&(i=l.return))i.call(l)}finally{if(n)throw n.error}}return e}r.combineDefaults=s;function l(e){return i(r.MathJax,e)}r.combineWithMathJax=l;if(typeof t.g.MathJax==="undefined"){t.g.MathJax={}}if(!t.g.MathJax.version){t.g.MathJax={version:n.VERSION,_:{},config:t.g.MathJax}}r.MathJax=t.g.MathJax},59228:function(e,r,t){var a="/";var n=this&&this.__values||function(e){var r=typeof Symbol==="function"&&Symbol.iterator,t=r&&e[r],a=0;if(t)return t.call(e);if(e&&typeof e.length==="number")return{next:function(){if(e&&a>=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")};var o,i;Object.defineProperty(r,"__esModule",{value:true});r.CONFIG=r.MathJax=r.Loader=r.PathFilters=r.PackageError=r.Package=void 0;var s=t(58496);var l=t(6875);var f=t(6875);Object.defineProperty(r,"Package",{enumerable:true,get:function(){return f.Package}});Object.defineProperty(r,"PackageError",{enumerable:true,get:function(){return f.PackageError}});var c=t(43899);r.PathFilters={source:function(e){if(r.CONFIG.source.hasOwnProperty(e.name)){e.name=r.CONFIG.source[e.name]}return true},normalize:function(e){var r=e.name;if(!r.match(/^(?:[a-z]+:\/)?\/|[a-z]:\\|\[/i)){e.name="[mathjax]/"+r.replace(/^\.\//,"")}if(e.addExtension&&!r.match(/\.[^\/]+$/)){e.name+=".js"}return true},prefix:function(e){var t;while(t=e.name.match(/^\[([^\]]*)\]/)){if(!r.CONFIG.paths.hasOwnProperty(t[1]))break;e.name=r.CONFIG.paths[t[1]]+e.name.substr(t[0].length)}return true}};var u;(function(e){var t=s.MathJax.version;e.versions=new Map;function o(){var e,r;var t=[];for(var a=0;a=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")};var o=this&&this.__read||function(e,r){var t=typeof Symbol==="function"&&e[Symbol.iterator];if(!t)return e;var a=t.call(e),n,o=[],i;try{while((r===void 0||r-- >0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(t=a["return"]))t.call(a)}finally{if(i)throw i.error}}return o};var i=this&&this.__spreadArray||function(e,r,t){if(t||arguments.length===2)for(var a=0,n=r.length,o;a=e.length)e=void 0;return{value:e&&e[a++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")};var n=this&&this.__read||function(e,r){var t=typeof Symbol==="function"&&e[Symbol.iterator];if(!t)return e;var a=t.call(e),n,o=[],i;try{while((r===void 0||r-- >0)&&!(n=a.next()).done)o.push(n.value)}catch(s){i={error:s}}finally{try{if(n&&!n.done&&(t=a["return"]))t.call(a)}finally{if(i)throw i.error}}return o};var o=this&&this.__spreadArray||function(e,r,t){if(t||arguments.length===2)for(var a=0,n=r.length,o;a{n.r(t);n.d(t,{cython:()=>c,mkPython:()=>s,python:()=>u});function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var i=r(["and","or","not","is"]);var a=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in","False","True"];var o=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];function l(e){return e.scopes[e.scopes.length-1]}function s(e){var t="error";var n=e.delimiters||e.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/;var s=[e.singleOperators,e.doubleOperators,e.doubleDelimiters,e.tripleDelimiters,e.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/];for(var f=0;fi)_(e,n);else if(a0&&z(e,n))o+=" "+t;return o}}return v(e,n)}function v(e,r,a){if(e.eatSpace())return null;if(!a&&e.match(/^#.*/))return"comment";if(e.match(/^[0-9\.]/,false)){var o=false;if(e.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)){o=true}if(e.match(/^[\d_]+\.\d*/)){o=true}if(e.match(/^\.\d+/)){o=true}if(o){e.eat(/J/i);return"number"}var l=false;if(e.match(/^0x[0-9a-f_]+/i))l=true;if(e.match(/^0b[01_]+/i))l=true;if(e.match(/^0o[0-7_]+/i))l=true;if(e.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)){e.eat(/J/i);l=true}if(e.match(/^0(?![\dx])/i))l=true;if(l){e.eat(/L/i);return"number"}}if(e.match(h)){var f=e.current().toLowerCase().indexOf("f")!==-1;if(!f){r.tokenize=x(e.current(),r.tokenize);return r.tokenize(e,r)}else{r.tokenize=k(e.current(),r.tokenize);return r.tokenize(e,r)}}for(var u=0;u=0)n=n.substr(1);var i=n.length==1;var a="string";function o(e){return function(t,n){var r=v(t,n,true);if(r=="punctuation"){if(t.current()=="{"){n.tokenize=o(e+1)}else if(t.current()=="}"){if(e>1)n.tokenize=o(e-1);else n.tokenize=l}}return r}}function l(l,s){while(!l.eol()){l.eatWhile(/[^'"\{\}\\]/);if(l.eat("\\")){l.next();if(i&&l.eol())return a}else if(l.match(n)){s.tokenize=r;return a}else if(l.match("{{")){return a}else if(l.match("{",false)){s.tokenize=o(0);if(l.current())return a;else return s.tokenize(l,s)}else if(l.match("}}")){return a}else if(l.match("}")){return t}else{l.eat(/['"]/)}}if(i){if(e.singleLineStringErrors)return t;else s.tokenize=r}return a}l.isString=true;return l}function x(n,r){while("rubf".indexOf(n.charAt(0).toLowerCase())>=0)n=n.substr(1);var i=n.length==1;var a="string";function o(o,l){while(!o.eol()){o.eatWhile(/[^'"\\]/);if(o.eat("\\")){o.next();if(i&&o.eol())return a}else if(o.match(n)){l.tokenize=r;return a}else{o.eat(/['"]/)}}if(i){if(e.singleLineStringErrors)return t;else l.tokenize=r}return a}o.isString=true;return o}function _(e,t){while(l(t).type!="py")t.scopes.pop();t.scopes.push({offset:l(t).offset+e.indentUnit,type:"py",align:null})}function w(e,t,n){var r=e.match(/^[\s\[\{\(]*(?:#|$)/,false)?null:e.column()+1;t.scopes.push({offset:t.indent+(u||e.indentUnit),type:n,align:r})}function z(e,t){var n=e.indentation();while(t.scopes.length>1&&l(t).offset>n){if(l(t).type!="py")return true;t.scopes.pop()}return l(t).offset!=n}function F(e,n){if(e.sol()){n.beginningOfLine=true;n.dedent=false}var r=n.tokenize(e,n);var i=e.current();if(n.beginningOfLine&&i=="@")return e.match(m,false)?"meta":d?"operator":t;if(/\S/.test(i))n.beginningOfLine=false;if((r=="variable"||r=="builtin")&&n.lastToken=="meta")r="meta";if(i=="pass"||i=="return")n.dedent=true;if(i=="lambda")n.lambda=true;if(i==":"&&!n.lambda&&l(n).type=="py"&&e.match(/^\s*(?:#|$)/,false))_(e,n);if(i.length==1&&!/string|comment/.test(r)){var a="[({".indexOf(i);if(a!=-1)w(e,n,"])}".slice(a,a+1));a="])}".indexOf(i);if(a!=-1){if(l(n).type==i)n.indent=n.scopes.pop().offset-(u||e.indentUnit);else return t}}if(n.dedent&&e.eol()&&l(n).type=="py"&&n.scopes.length>1)n.scopes.pop();return r}return{name:"python",startState:function(){return{tokenize:g,scopes:[{offset:0,type:"py",align:null}],indent:0,lastToken:null,lambda:false,dedent:0}},token:function(e,n){var r=n.errorToken;if(r)n.errorToken=false;var i=F(e,n);if(i&&i!="comment")n.lastToken=i=="keyword"||i=="punctuation"?e.current():i;if(i=="punctuation")i=null;if(e.eol()&&n.lambda)n.lambda=false;return r?t:i},indent:function(e,t,n){if(e.tokenize!=g)return e.tokenize.isString?null:0;var r=l(e);var i=r.type==t.charAt(0)||r.type=="py"&&!e.dedent&&/^(else:|elif |except |finally:)/.test(t);if(r.align!=null)return r.align-(i?1:0);else return r.offset-(i?u||n.unit:0)},languageData:{autocomplete:a.concat(o).concat(["exec","print"]),indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/,commentTokens:{line:"#"},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}}}var f=function(e){return e.split(" ")};const u=s({});const c=s({extra_keywords:f("by cdef cimport cpdef ctypedef enum except "+"extern gil include nogil property public "+"readonly struct union DEF IF ELIF ELSE")})}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8855.b17b9969fce42d0398e4.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8855.b17b9969fce42d0398e4.js deleted file mode 100644 index a7f223a7fcf4d56daea1e5165c37a9376b4202a4..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8855.b17b9969fce42d0398e4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8855],{88855:(t,e,s)=>{s.d(e,{Zk:()=>l,q7:()=>Q,tM:()=>Tt,u4:()=>_t});var i=s(15051);var r=s(94065);var n=s(96049);var a=s(75905);var o=function(){var t=(0,a.K2)((function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s}),"o"),e=[1,2],s=[1,3],i=[1,4],r=[2,4],n=[1,9],o=[1,11],l=[1,16],c=[1,17],h=[1,18],d=[1,19],u=[1,32],p=[1,20],f=[1,21],y=[1,22],g=[1,23],m=[1,24],S=[1,26],b=[1,27],k=[1,28],_=[1,29],v=[1,30],T=[1,31],E=[1,34],D=[1,35],x=[1,36],C=[1,37],$=[1,33],I=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],L=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],A=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54];var w={trace:(0,a.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"--\x3e":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"--\x3e",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:(0,a.K2)((function t(e,s,i,r,n,a,o){var l=a.length-1;switch(n){case 3:r.setRootDoc(a[l]);return a[l];break;case 4:this.$=[];break;case 5:if(a[l]!="nl"){a[l-1].push(a[l]);this.$=a[l-1]}break;case 6:case 7:this.$=a[l];break;case 8:this.$="nl";break;case 12:this.$=a[l];break;case 13:const t=a[l-1];t.description=r.trimColon(a[l]);this.$=t;break;case 14:this.$={stmt:"relation",state1:a[l-2],state2:a[l]};break;case 15:const e=r.trimColon(a[l]);this.$={stmt:"relation",state1:a[l-3],state2:a[l-1],description:e};break;case 19:this.$={stmt:"state",id:a[l-3],type:"default",description:"",doc:a[l-1]};break;case 20:var c=a[l];var h=a[l-2].trim();if(a[l].match(":")){var d=a[l].split(":");c=d[0];h=[h,d[1]]}this.$={stmt:"state",id:c,type:"default",description:h};break;case 21:this.$={stmt:"state",id:a[l-3],type:"default",description:a[l-5],doc:a[l-1]};break;case 22:this.$={stmt:"state",id:a[l],type:"fork"};break;case 23:this.$={stmt:"state",id:a[l],type:"join"};break;case 24:this.$={stmt:"state",id:a[l],type:"choice"};break;case 25:this.$={stmt:"state",id:r.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:a[l-1].trim(),note:{position:a[l-2].trim(),text:a[l].trim()}};break;case 29:this.$=a[l].trim();r.setAccTitle(this.$);break;case 30:case 31:this.$=a[l].trim();r.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:a[l-1].trim(),classes:a[l].trim()};break;case 34:this.$={stmt:"style",id:a[l-1].trim(),styleClass:a[l].trim()};break;case 35:this.$={stmt:"applyClass",id:a[l-1].trim(),styleClass:a[l].trim()};break;case 36:r.setDirection("TB");this.$={stmt:"dir",value:"TB"};break;case 37:r.setDirection("BT");this.$={stmt:"dir",value:"BT"};break;case 38:r.setDirection("RL");this.$={stmt:"dir",value:"RL"};break;case 39:r.setDirection("LR");this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:a[l].trim(),type:"default",description:""};break;case 44:this.$={stmt:"state",id:a[l-2].trim(),classes:[a[l].trim()],type:"default",description:""};break;case 45:this.$={stmt:"state",id:a[l-2].trim(),classes:[a[l].trim()],type:"default",description:""};break}}),"anonymous"),table:[{3:1,4:e,5:s,6:i},{1:[3]},{3:5,4:e,5:s,6:i},{3:6,4:e,5:s,6:i},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],r,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:n,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,22:d,24:u,25:p,26:f,27:y,28:g,29:m,32:25,33:S,35:b,37:k,38:_,42:v,45:T,48:E,49:D,50:x,51:C,54:$},t(I,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:l,17:c,19:h,22:d,24:u,25:p,26:f,27:y,28:g,29:m,32:25,33:S,35:b,37:k,38:_,42:v,45:T,48:E,49:D,50:x,51:C,54:$},t(I,[2,7]),t(I,[2,8]),t(I,[2,9]),t(I,[2,10]),t(I,[2,11]),t(I,[2,12],{14:[1,39],15:[1,40]}),t(I,[2,16]),{18:[1,41]},t(I,[2,18],{20:[1,42]}),{23:[1,43]},t(I,[2,22]),t(I,[2,23]),t(I,[2,24]),t(I,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},t(I,[2,28]),{34:[1,48]},{36:[1,49]},t(I,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},t(L,[2,42],{55:[1,54]}),t(L,[2,43],{55:[1,55]}),t(I,[2,36]),t(I,[2,37]),t(I,[2,38]),t(I,[2,39]),t(I,[2,6]),t(I,[2,13]),{13:56,24:u,54:$},t(I,[2,17]),t(A,r,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},t(I,[2,29]),t(I,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},t(I,[2,14],{14:[1,67]}),{4:n,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,21:[1,68],22:d,24:u,25:p,26:f,27:y,28:g,29:m,32:25,33:S,35:b,37:k,38:_,42:v,45:T,48:E,49:D,50:x,51:C,54:$},t(I,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},t(I,[2,32]),t(I,[2,33]),t(I,[2,34]),t(I,[2,35]),t(L,[2,44]),t(L,[2,45]),t(I,[2,15]),t(I,[2,19]),t(A,r,{7:72}),t(I,[2,26]),t(I,[2,27]),{4:n,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,21:[1,73],22:d,24:u,25:p,26:f,27:y,28:g,29:m,32:25,33:S,35:b,37:k,38:_,42:v,45:T,48:E,49:D,50:x,51:C,54:$},t(I,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:(0,a.K2)((function t(e,s){if(s.recoverable){this.trace(e)}else{var i=new Error(e);i.hash=s;throw i}}),"parseError"),parse:(0,a.K2)((function t(e){var s=this,i=[0],r=[],n=[null],o=[],l=this.table,c="",h=0,d=0,u=0,p=2,f=1;var y=o.slice.call(arguments,1);var g=Object.create(this.lexer);var m={yy:{}};for(var S in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,S)){m.yy[S]=this.yy[S]}}g.setInput(e,m.yy);m.yy.lexer=g;m.yy.parser=this;if(typeof g.yylloc=="undefined"){g.yylloc={}}var b=g.yylloc;o.push(b);var k=g.options&&g.options.ranges;if(typeof m.yy.parseError==="function"){this.parseError=m.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function _(t){i.length=i.length-2*t;n.length=n.length-t;o.length=o.length-t}(0,a.K2)(_,"popStack");function v(){var t;t=r.pop()||g.lex()||f;if(typeof t!=="number"){if(t instanceof Array){r=t;t=r.pop()}t=s.symbols_[t]||t}return t}(0,a.K2)(v,"lex");var T,E,D,x,C,$,I={},L,A,w,R;while(true){D=i[i.length-1];if(this.defaultActions[D]){x=this.defaultActions[D]}else{if(T===null||typeof T=="undefined"){T=v()}x=l[D]&&l[D][T]}if(typeof x==="undefined"||!x.length||!x[0]){var O="";R=[];for(L in l[D]){if(this.terminals_[L]&&L>p){R.push("'"+this.terminals_[L]+"'")}}if(g.showPosition){O="Parse error on line "+(h+1)+":\n"+g.showPosition()+"\nExpecting "+R.join(", ")+", got '"+(this.terminals_[T]||T)+"'"}else{O="Parse error on line "+(h+1)+": Unexpected "+(T==f?"end of input":"'"+(this.terminals_[T]||T)+"'")}this.parseError(O,{text:g.match,token:this.terminals_[T]||T,line:g.yylineno,loc:b,expected:R})}if(x[0]instanceof Array&&x.length>1){throw new Error("Parse Error: multiple actions possible at state: "+D+", token: "+T)}switch(x[0]){case 1:i.push(T);n.push(g.yytext);o.push(g.yylloc);i.push(x[1]);T=null;if(!E){d=g.yyleng;c=g.yytext;h=g.yylineno;b=g.yylloc;if(u>0){u--}}else{T=E;E=null}break;case 2:A=this.productions_[x[1]][1];I.$=n[n.length-A];I._$={first_line:o[o.length-(A||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(A||1)].first_column,last_column:o[o.length-1].last_column};if(k){I._$.range=[o[o.length-(A||1)].range[0],o[o.length-1].range[1]]}$=this.performAction.apply(I,[c,d,h,m.yy,x[1],n,o].concat(y));if(typeof $!=="undefined"){return $}if(A){i=i.slice(0,-1*A*2);n=n.slice(0,-1*A);o=o.slice(0,-1*A)}i.push(this.productions_[x[1]][0]);n.push(I.$);o.push(I._$);w=l[i[i.length-2]][i[i.length-1]];i.push(w);break;case 3:return true}}return true}),"parse")};var R=function(){var t={EOF:1,parseError:(0,a.K2)((function t(e,s){if(this.yy.parser){this.yy.parser.parseError(e,s)}else{throw new Error(e)}}),"parseError"),setInput:(0,a.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,a.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,a.K2)((function(t){var e=t.length;var s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(s.length-1){this.yylineno-=s.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,a.K2)((function(){this._more=true;return this}),"more"),reject:(0,a.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,a.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,a.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,a.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,a.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,a.K2)((function(t,e){var s,i,r;if(this.options.backtrack_lexer){r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){r.yylloc.range=this.yylloc.range.slice(0)}}i=t[0].match(/(?:\r\n?|\n).*/g);if(i){this.yylineno+=i.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(s){return s}else if(this._backtrack){for(var n in r){this[n]=r[n]}return false}return false}),"test_match"),next:(0,a.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,s,i;if(!this._more){this.yytext="";this.match=""}var r=this._currentRules();for(var n=0;ne[0].length)){e=s;i=n;if(this.options.backtrack_lexer){t=this.test_match(s,r[n]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,r[i]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,a.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,a.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,a.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,a.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,a.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,a.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,a.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,a.K2)((function t(e,s,i,r){var n=r;switch(i){case 0:return 41;break;case 1:return 48;break;case 2:return 49;break;case 3:return 50;break;case 4:return 51;break;case 5:break;case 6:{}break;case 7:return 5;break;case 8:break;case 9:break;case 10:break;case 11:break;case 12:this.pushState("SCALE");return 17;break;case 13:return 18;break;case 14:this.popState();break;case 15:this.begin("acc_title");return 33;break;case 16:this.popState();return"acc_title_value";break;case 17:this.begin("acc_descr");return 35;break;case 18:this.popState();return"acc_descr_value";break;case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";break;case 22:this.pushState("CLASSDEF");return 38;break;case 23:this.popState();this.pushState("CLASSDEFID");return"DEFAULT_CLASSDEF_ID";break;case 24:this.popState();this.pushState("CLASSDEFID");return 39;break;case 25:this.popState();return 40;break;case 26:this.pushState("CLASS");return 45;break;case 27:this.popState();this.pushState("CLASS_STYLE");return 46;break;case 28:this.popState();return 47;break;case 29:this.pushState("STYLE");return 42;break;case 30:this.popState();this.pushState("STYLEDEF_STYLES");return 43;break;case 31:this.popState();return 44;break;case 32:this.pushState("SCALE");return 17;break;case 33:return 18;break;case 34:this.popState();break;case 35:this.pushState("STATE");break;case 36:this.popState();s.yytext=s.yytext.slice(0,-8).trim();return 25;break;case 37:this.popState();s.yytext=s.yytext.slice(0,-8).trim();return 26;break;case 38:this.popState();s.yytext=s.yytext.slice(0,-10).trim();return 27;break;case 39:this.popState();s.yytext=s.yytext.slice(0,-8).trim();return 25;break;case 40:this.popState();s.yytext=s.yytext.slice(0,-8).trim();return 26;break;case 41:this.popState();s.yytext=s.yytext.slice(0,-10).trim();return 27;break;case 42:return 48;break;case 43:return 49;break;case 44:return 50;break;case 45:return 51;break;case 46:this.pushState("STATE_STRING");break;case 47:this.pushState("STATE_ID");return"AS";break;case 48:this.popState();return"ID";break;case 49:this.popState();break;case 50:return"STATE_DESCR";break;case 51:return 19;break;case 52:this.popState();break;case 53:this.popState();this.pushState("struct");return 20;break;case 54:break;case 55:this.popState();return 21;break;case 56:break;case 57:this.begin("NOTE");return 29;break;case 58:this.popState();this.pushState("NOTE_ID");return 56;break;case 59:this.popState();this.pushState("NOTE_ID");return 57;break;case 60:this.popState();this.pushState("FLOATING_NOTE");break;case 61:this.popState();this.pushState("FLOATING_NOTE_ID");return"AS";break;case 62:break;case 63:return"NOTE_TEXT";break;case 64:this.popState();return"ID";break;case 65:this.popState();this.pushState("NOTE_TEXT");return 24;break;case 66:this.popState();s.yytext=s.yytext.substr(2).trim();return 31;break;case 67:this.popState();s.yytext=s.yytext.slice(0,-8).trim();return 31;break;case 68:return 6;break;case 69:return 6;break;case 70:return 16;break;case 71:return 54;break;case 72:return 24;break;case 73:s.yytext=s.yytext.trim();return 14;break;case 74:return 15;break;case 75:return 28;break;case 76:return 55;break;case 77:return 5;break;case 78:return"INVALID";break}}),"anonymous"),rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:false},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:false},FLOATING_NOTE_ID:{rules:[64],inclusive:false},FLOATING_NOTE:{rules:[61,62,63],inclusive:false},NOTE_TEXT:{rules:[66,67],inclusive:false},NOTE_ID:{rules:[65],inclusive:false},NOTE:{rules:[58,59,60],inclusive:false},STYLEDEF_STYLEOPTS:{rules:[],inclusive:false},STYLEDEF_STYLES:{rules:[31],inclusive:false},STYLE_IDS:{rules:[],inclusive:false},STYLE:{rules:[30],inclusive:false},CLASS_STYLE:{rules:[28],inclusive:false},CLASS:{rules:[27],inclusive:false},CLASSDEFID:{rules:[25],inclusive:false},CLASSDEF:{rules:[23,24],inclusive:false},acc_descr_multiline:{rules:[20,21],inclusive:false},acc_descr:{rules:[18],inclusive:false},acc_title:{rules:[16],inclusive:false},SCALE:{rules:[13,14,33,34],inclusive:false},ALIAS:{rules:[],inclusive:false},STATE_ID:{rules:[48],inclusive:false},STATE_STRING:{rules:[49,50],inclusive:false},FORK_STATE:{rules:[],inclusive:false},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:false},ID:{rules:[9,10],inclusive:false},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:true}}};return t}();w.lexer=R;function O(){this.yy={}}(0,a.K2)(O,"Parser");O.prototype=w;w.Parser=O;return new O}();o.parser=o;var l=o;var c="TB";var h="TB";var d="dir";var u="state";var p="relation";var f="classDef";var y="style";var g="applyClass";var m="default";var S="divider";var b="fill:none";var k="fill: #333";var _="c";var v="text";var T="normal";var E="rect";var D="rectWithTitle";var x="stateStart";var C="stateEnd";var $="divider";var I="roundedWithTitle";var L="note";var A="noteGroup";var w="statediagram";var R="state";var O=`${w}-${R}`;var N="transition";var K="note";var B="note-edge";var F=`${N} ${B}`;var Y=`${w}-${K}`;var P="cluster";var G=`${w}-${P}`;var j="cluster-alt";var z=`${w}-${j}`;var U="parent";var M="note";var V="state";var X="----";var W=`${X}${M}`;var H=`${X}${U}`;var J=(0,a.K2)(((t,e=h)=>{if(!t.doc){return e}let s=e;for(const i of t.doc){if(i.stmt==="dir"){s=i.value}}return s}),"getDir");var q=(0,a.K2)((function(t,e){return e.db.getClasses()}),"getClasses");var Z=(0,a.K2)((async function(t,e,s,o){a.Rm.info("REF0:");a.Rm.info("Drawing state diagram (v2)",e);const{securityLevel:l,state:c,layout:h}=(0,a.D7)();o.db.extract(o.db.getRootDocV2());const d=o.db.getData();const u=(0,i.A)(e,l);d.type=o.type;d.layoutAlgorithm=h;d.nodeSpacing=c?.nodeSpacing||50;d.rankSpacing=c?.rankSpacing||50;d.markers=["barb"];d.diagramId=e;await(0,r.XX)(d,u);const p=8;n._K.insertTitle(u,"statediagramTitleText",c?.titleTopMargin??25,o.db.getDiagramTitle());(0,i.P)(u,p,w,c?.useMaxWidth??true)}),"draw");var Q={getClasses:q,draw:Z,getDir:J};var tt=new Map;var et=0;function st(t="",e=0,s="",i=X){const r=s!==null&&s.length>0?`${i}${s}`:"";return`${V}-${t}${r}-${e}`}(0,a.K2)(st,"stateDomId");var it=(0,a.K2)(((t,e,s,i,r,n,o,l)=>{a.Rm.trace("items",e);e.forEach((e=>{switch(e.stmt){case u:lt(t,e,s,i,r,n,o,l);break;case m:lt(t,e,s,i,r,n,o,l);break;case p:{lt(t,e.state1,s,i,r,n,o,l);lt(t,e.state2,s,i,r,n,o,l);const c={id:"edge"+et,start:e.state1.id,end:e.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:b,labelStyle:"",label:a.Y2.sanitizeText(e.description,(0,a.D7)()),arrowheadStyle:k,labelpos:_,labelType:v,thickness:T,classes:N,look:o};r.push(c);et++}break}}))}),"setupDoc");var rt=(0,a.K2)(((t,e=h)=>{let s=e;if(t.doc){for(const e of t.doc){if(e.stmt==="dir"){s=e.value}}}return s}),"getDir");function nt(t,e,s){if(!e.id||e.id===""||e.id===""){return}if(e.cssClasses){if(!Array.isArray(e.cssCompiledStyles)){e.cssCompiledStyles=[]}e.cssClasses.split(" ").forEach((t=>{if(s.get(t)){const i=s.get(t);e.cssCompiledStyles=[...e.cssCompiledStyles,...i.styles]}}))}const i=t.find((t=>t.id===e.id));if(i){Object.assign(i,e)}else{t.push(e)}}(0,a.K2)(nt,"insertOrUpdateNode");function at(t){return t?.classes?.join(" ")??""}(0,a.K2)(at,"getClassesFromDbInfo");function ot(t){return t?.styles??[]}(0,a.K2)(ot,"getStylesFromDbInfo");var lt=(0,a.K2)(((t,e,s,i,r,n,o,l)=>{const c=e.id;const h=s.get(c);const d=at(h);const u=ot(h);a.Rm.info("dataFetcher parsedItem",e,h,u);if(c!=="root"){let s=E;if(e.start===true){s=x}else if(e.start===false){s=C}if(e.type!==m){s=e.type}if(!tt.get(c)){tt.set(c,{id:c,shape:s,description:a.Y2.sanitizeText(c,(0,a.D7)()),cssClasses:`${d} ${O}`,cssStyles:u})}const h=tt.get(c);if(e.description){if(Array.isArray(h.description)){h.shape=D;h.description.push(e.description)}else{if(h.description?.length>0){h.shape=D;if(h.description===c){h.description=[e.description]}else{h.description=[h.description,e.description]}}else{h.shape=E;h.description=e.description}}h.description=a.Y2.sanitizeTextOrArray(h.description,(0,a.D7)())}if(h.description?.length===1&&h.shape===D){if(h.type==="group"){h.shape=I}else{h.shape=E}}if(!h.type&&e.doc){a.Rm.info("Setting cluster for XCX",c,rt(e));h.type="group";h.isGroup=true;h.dir=rt(e);h.shape=e.type===S?$:I;h.cssClasses=`${h.cssClasses} ${G} ${n?z:""}`}const p={labelStyle:"",shape:h.shape,label:h.description,cssClasses:h.cssClasses,cssCompiledStyles:[],cssStyles:h.cssStyles,id:c,dir:h.dir,domId:st(c,et),type:h.type,isGroup:h.type==="group",padding:8,rx:10,ry:10,look:o};if(p.shape===$){p.label=""}if(t&&t.id!=="root"){a.Rm.trace("Setting node ",c," to be child of its parent ",t.id);p.parentId=t.id}p.centerLabel=true;if(e.note){const t={labelStyle:"",shape:L,label:e.note.text,cssClasses:Y,cssStyles:[],cssCompilesStyles:[],id:c+W+"-"+et,domId:st(c,et,M),type:h.type,isGroup:h.type==="group",padding:(0,a.D7)().flowchart.padding,look:o,position:e.note.position};const s=c+H;const n={labelStyle:"",shape:A,label:e.note.text,cssClasses:h.cssClasses,cssStyles:[],id:c+H,domId:st(c,et,U),type:"group",isGroup:true,padding:16,look:o,position:e.note.position};et++;n.id=s;t.parentId=s;nt(i,n,l);nt(i,t,l);nt(i,p,l);let d=c;let u=t.id;if(e.note.position==="left of"){d=t.id;u=c}r.push({id:d+"-"+u,start:d,end:u,arrowhead:"none",arrowTypeEnd:"",style:b,labelStyle:"",classes:F,arrowheadStyle:k,labelpos:_,labelType:v,thickness:T,look:o})}else{nt(i,p,l)}}if(e.doc){a.Rm.trace("Adding nodes children ");it(e,e.doc,s,i,r,!n,o,l)}}),"dataFetcher");var ct=(0,a.K2)((()=>{tt.clear();et=0}),"reset");var ht="[*]";var dt="start";var ut=ht;var pt="end";var ft="color";var yt="fill";var gt="bgFill";var mt=",";function St(){return new Map}(0,a.K2)(St,"newClassesList");var bt=(0,a.K2)((()=>({relations:[],states:new Map,documents:{}})),"newDoc");var kt=(0,a.K2)((t=>JSON.parse(JSON.stringify(t))),"clone");var _t=class{static{(0,a.K2)(this,"StateDB")}constructor(t){this.clear();this.version=t;this.setRootDoc=this.setRootDoc.bind(this);this.getDividerId=this.getDividerId.bind(this);this.setDirection=this.setDirection.bind(this);this.trimColon=this.trimColon.bind(this)}version;nodes=[];edges=[];rootDoc=[];classes=St();documents={root:bt()};currentDocument=this.documents.root;startEndCount=0;dividerCnt=0;static relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3};setRootDoc(t){a.Rm.info("Setting root doc",t);this.rootDoc=t;if(this.version===1){this.extract(t)}else{this.extract(this.getRootDocV2())}}getRootDoc(){return this.rootDoc}docTranslator(t,e,s){if(e.stmt===p){this.docTranslator(t,e.state1,true);this.docTranslator(t,e.state2,false)}else{if(e.stmt===u){if(e.id==="[*]"){e.id=s?t.id+"_start":t.id+"_end";e.start=s}else{e.id=e.id.trim()}}if(e.doc){const t=[];let s=[];let i;for(i=0;i0&&s.length>0){const i={stmt:u,id:(0,n.$C)(),type:"divider",doc:kt(s)};t.push(kt(i));e.doc=t}e.doc.forEach((t=>this.docTranslator(e,t,true)))}}}getRootDocV2(){this.docTranslator({id:"root"},{id:"root",doc:this.rootDoc},true);return{id:"root",doc:this.rootDoc}}extract(t){let e;if(t.doc){e=t.doc}else{e=t}a.Rm.info(e);this.clear(true);a.Rm.info("Extract initial document:",e);e.forEach((t=>{a.Rm.warn("Statement",t.stmt);switch(t.stmt){case u:this.addState(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case p:this.addRelation(t.state1,t.state2,t.description);break;case f:this.addStyleClass(t.id.trim(),t.classes);break;case y:{const e=t.id.trim().split(",");const s=t.styleClass.split(",");e.forEach((t=>{let e=this.getState(t);if(e===void 0){const s=t.trim();this.addState(s);e=this.getState(s)}e.styles=s.map((t=>t.replace(/;/g,"")?.trim()))}))}break;case g:this.setCssClass(t.id.trim(),t.styleClass);break}}));const s=this.getStates();const i=(0,a.D7)();const r=i.look;ct();lt(void 0,this.getRootDocV2(),s,this.nodes,this.edges,true,r,this.classes);this.nodes.forEach((t=>{if(Array.isArray(t.label)){t.description=t.label.slice(1);if(t.isGroup&&t.description.length>0){throw new Error("Group nodes can only have label. Remove the additional description for node ["+t.id+"]")}t.label=t.label[0]}}))}addState(t,e=m,s=null,i=null,r=null,n=null,o=null,l=null){const c=t?.trim();if(!this.currentDocument.states.has(c)){a.Rm.info("Adding state ",c,i);this.currentDocument.states.set(c,{id:c,descriptions:[],type:e,doc:s,note:r,classes:[],styles:[],textStyles:[]})}else{if(!this.currentDocument.states.get(c).doc){this.currentDocument.states.get(c).doc=s}if(!this.currentDocument.states.get(c).type){this.currentDocument.states.get(c).type=e}}if(i){a.Rm.info("Setting state description",c,i);if(typeof i==="string"){this.addDescription(c,i.trim())}if(typeof i==="object"){i.forEach((t=>this.addDescription(c,t.trim())))}}if(r){const t=this.currentDocument.states.get(c);t.note=r;t.note.text=a.Y2.sanitizeText(t.note.text,(0,a.D7)())}if(n){a.Rm.info("Setting state classes",c,n);const t=typeof n==="string"?[n]:n;t.forEach((t=>this.setCssClass(c,t.trim())))}if(o){a.Rm.info("Setting state styles",c,o);const t=typeof o==="string"?[o]:o;t.forEach((t=>this.setStyle(c,t.trim())))}if(l){a.Rm.info("Setting state styles",c,o);const t=typeof l==="string"?[l]:l;t.forEach((t=>this.setTextStyle(c,t.trim())))}}clear(t){this.nodes=[];this.edges=[];this.documents={root:bt()};this.currentDocument=this.documents.root;this.startEndCount=0;this.classes=St();if(!t){(0,a.IU)()}}getState(t){return this.currentDocument.states.get(t)}getStates(){return this.currentDocument.states}logDocuments(){a.Rm.info("Documents = ",this.documents)}getRelations(){return this.currentDocument.relations}startIdIfNeeded(t=""){let e=t;if(t===ht){this.startEndCount++;e=`${dt}${this.startEndCount}`}return e}startTypeIfNeeded(t="",e=m){return t===ht?dt:e}endIdIfNeeded(t=""){let e=t;if(t===ut){this.startEndCount++;e=`${pt}${this.startEndCount}`}return e}endTypeIfNeeded(t="",e=m){return t===ut?pt:e}addRelationObjs(t,e,s){let i=this.startIdIfNeeded(t.id.trim());let r=this.startTypeIfNeeded(t.id.trim(),t.type);let n=this.startIdIfNeeded(e.id.trim());let o=this.startTypeIfNeeded(e.id.trim(),e.type);this.addState(i,r,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);this.addState(n,o,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles);this.currentDocument.relations.push({id1:i,id2:n,relationTitle:a.Y2.sanitizeText(s,(0,a.D7)())})}addRelation(t,e,s){if(typeof t==="object"){this.addRelationObjs(t,e,s)}else{const i=this.startIdIfNeeded(t.trim());const r=this.startTypeIfNeeded(t);const n=this.endIdIfNeeded(e.trim());const o=this.endTypeIfNeeded(e);this.addState(i,r);this.addState(n,o);this.currentDocument.relations.push({id1:i,id2:n,title:a.Y2.sanitizeText(s,(0,a.D7)())})}}addDescription(t,e){const s=this.currentDocument.states.get(t);const i=e.startsWith(":")?e.replace(":","").trim():e;s.descriptions.push(a.Y2.sanitizeText(i,(0,a.D7)()))}cleanupLabel(t){if(t.substring(0,1)===":"){return t.substr(2).trim()}else{return t.trim()}}getDividerId(){this.dividerCnt++;return"divider-id-"+this.dividerCnt}addStyleClass(t,e=""){if(!this.classes.has(t)){this.classes.set(t,{id:t,styles:[],textStyles:[]})}const s=this.classes.get(t);if(e!==void 0&&e!==null){e.split(mt).forEach((t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(RegExp(ft).exec(t)){const t=e.replace(yt,gt);const i=t.replace(ft,yt);s.textStyles.push(i)}s.styles.push(e)}))}}getClasses(){return this.classes}setCssClass(t,e){t.split(",").forEach((t=>{let s=this.getState(t);if(s===void 0){const e=t.trim();this.addState(e);s=this.getState(e)}s.classes.push(e)}))}setStyle(t,e){const s=this.getState(t);if(s!==void 0){s.styles.push(e)}}setTextStyle(t,e){const s=this.getState(t);if(s!==void 0){s.textStyles.push(e)}}getDirectionStatement(){return this.rootDoc.find((t=>t.stmt===d))}getDirection(){return this.getDirectionStatement()?.value??c}setDirection(t){const e=this.getDirectionStatement();if(e){e.value=t}else{this.rootDoc.unshift({stmt:d,value:t})}}trimColon(t){return t&&t[0]===":"?t.substr(1).trim():t.trim()}getData(){const t=(0,a.D7)();return{nodes:this.nodes,edges:this.edges,other:{},config:t,direction:J(this.getRootDocV2())}}getConfig(){return(0,a.D7)().state}getAccTitle=a.iN;setAccTitle=a.SV;getAccDescription=a.m7;setAccDescription=a.EI;setDiagramTitle=a.ke;getDiagramTitle=a.ab};var vt=(0,a.K2)((t=>`\ndefs #statediagram-barbEnd {\n fill: ${t.transitionColor};\n stroke: ${t.transitionColor};\n }\ng.stateGroup text {\n fill: ${t.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${t.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${t.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${t.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${t.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n\n text {\n fill: ${t.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${t.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel {\n background-color: ${t.edgeLabelBackground};\n p {\n background-color: ${t.edgeLabelBackground};\n }\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n}\n.edgeLabel .label text {\n fill: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${t.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${t.innerEndBackground};\n stroke: ${t.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${t.compositeBackground||t.background};\n // stroke: ${t.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${t.stateBkg||t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${t.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${t.compositeTitleBackground};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${t.stateLabelColor};\n // line-height: 1;\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${t.stateBorder||t.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${t.compositeBackground||t.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${t.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${t.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${t.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${t.lineColor};\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`),"getStyles");var Tt=vt},15051:(t,e,s)=>{s.d(e,{A:()=>n,P:()=>a});var i=s(75905);var r=s(24982);var n=(0,i.K2)(((t,e)=>{let s;if(e==="sandbox"){s=(0,r.Ltv)("#i"+t)}const i=e==="sandbox"?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body");const n=i.select(`[id="${t}"]`);return n}),"getDiagramElement");var a=(0,i.K2)(((t,e,s,r)=>{t.attr("class",s);const{width:n,height:a,x:c,y:h}=o(t,e);(0,i.a$)(t,a,n,r);const d=l(c,h,n,a,e);t.attr("viewBox",d);i.Rm.debug(`viewBox configured: ${d} with padding: ${e}`)}),"setupViewPortForSVG");var o=(0,i.K2)(((t,e)=>{const s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+e*2,height:s.height+e*2,x:s.x,y:s.y}}),"calculateDimensionsWithPadding");var l=(0,i.K2)(((t,e,s,i,r)=>`${t-r} ${e-r} ${s} ${i}`),"createViewBox")}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/88b98cad3688915e50da.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/88b98cad3688915e50da.woff deleted file mode 100644 index 2805af50f1fb0f5fb5a8429873de45d1fe713759..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/88b98cad3688915e50da.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/89.933673451ca4a51053cb.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/89.933673451ca4a51053cb.js deleted file mode 100644 index 7f38e31dd3c34ae203ccd84bed820df586a4c051..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/89.933673451ca4a51053cb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[89],{30089:(e,t,n)=>{n.r(t);n.d(t,{q:()=>f});var r,i=s(["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"]),o=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/;function s(e){return new RegExp("^("+e.join("|")+")$")}function a(e,t){var n=e.sol(),s=e.next();r=null;if(n)if(s=="/")return(t.tokenize=c)(e,t);else if(s=="\\"){if(e.eol()||/\s/.test(e.peek()))return e.skipToEnd(),/^\\\s*$/.test(e.current())?(t.tokenize=u)(e):t.tokenize=a,"comment";else return t.tokenize=a,"builtin"}if(/\s/.test(s))return e.peek()=="/"?(e.skipToEnd(),"comment"):"null";if(s=='"')return(t.tokenize=p)(e,t);if(s=="`")return e.eatWhile(/[A-Za-z\d_:\/.]/),"macroName";if("."==s&&/\d/.test(e.peek())||/\d/.test(s)){var l=null;e.backUp(1);if(e.match(/^\d{4}\.\d{2}(m|\.\d{2}([DT](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/)||e.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/)||e.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/)||e.match(/^\d+[ptuv]{1}/))l="temporal";else if(e.match(/^0[NwW]{1}/)||e.match(/^0x[\da-fA-F]*/)||e.match(/^[01]+[b]{1}/)||e.match(/^\d+[chijn]{1}/)||e.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/))l="number";return l&&(!(s=e.peek())||o.test(s))?l:(e.next(),"error")}if(/[A-Za-z]|\./.test(s))return e.eatWhile(/[A-Za-z._\d]/),i.test(e.current())?"keyword":"variable";if(/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(s))return null;if(/[{}\(\[\]\)]/.test(s))return null;return"error"}function c(e,t){return e.skipToEnd(),/\/\s*$/.test(e.current())?(t.tokenize=l)(e,t):t.tokenize=a,"comment"}function l(e,t){var n=e.sol()&&e.peek()=="\\";e.skipToEnd();if(n&&/^\\\s*$/.test(e.current()))t.tokenize=a;return"comment"}function u(e){return e.skipToEnd(),"comment"}function p(e,t){var n=false,r,i=false;while(r=e.next()){if(r=='"'&&!n){i=true;break}n=!n&&r=="\\"}if(i)t.tokenize=a;return"string"}function d(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function m(e){e.indent=e.context.indent;e.context=e.context.prev}const f={name:"q",startState:function(){return{tokenize:a,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()){if(t.context&&t.context.align==null)t.context.align=false;t.indent=e.indentation()}var n=t.tokenize(e,t);if(n!="comment"&&t.context&&t.context.align==null&&t.context.type!="pattern"){t.context.align=true}if(r=="(")d(t,")",e.column());else if(r=="[")d(t,"]",e.column());else if(r=="{")d(t,"}",e.column());else if(/[\]\}\)]/.test(r)){while(t.context&&t.context.type=="pattern")m(t);if(t.context&&r==t.context.type)m(t)}else if(r=="."&&t.context&&t.context.type=="pattern")m(t);else if(/atom|string|variable/.test(n)&&t.context){if(/[\}\]]/.test(t.context.type))d(t,"pattern",e.column());else if(t.context.type=="pattern"&&!t.context.align){t.context.align=true;t.context.col=e.column()}}return n},indent:function(e,t,n){var r=t&&t.charAt(0);var i=e.context;if(/[\]\}]/.test(r))while(i&&i.type=="pattern")i=i.prev;var o=i&&r==i.type;if(!i)return 0;else if(i.type=="pattern")return i.col;else if(i.align)return i.col+(o?0:1);else return i.indent+(o?0:n.unit)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8915.ab253990b1581460b255.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8915.ab253990b1581460b255.js deleted file mode 100644 index 7d50a7a2c1249b9246b60eed254301c55bb1730b..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8915.ab253990b1581460b255.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8915],{87799:function(t,e,r){(function e(i,n){if(true)t.exports=n(r(23143));else{}})(this,(function(t){return function(t){var e={};function r(i){if(e[i]){return e[i].exports}var n=e[i]={i,l:false,exports:{}};t[i].call(n.exports,n,n.exports,r);n.l=true;return n.exports}r.m=t;r.c=e;r.i=function(t){return t};r.d=function(t,e,i){if(!r.o(t,e)){Object.defineProperty(t,e,{configurable:false,enumerable:true,get:i})}};r.n=function(t){var e=t&&t.__esModule?function e(){return t["default"]}:function e(){return t};r.d(e,"a",e);return e};r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};r.p="";return r(r.s=7)}([function(e,r){e.exports=t},function(t,e,r){"use strict";var i=r(0).FDLayoutConstants;function n(){}for(var o in i){n[o]=i[o]}n.DEFAULT_USE_MULTI_LEVEL_SCALING=false;n.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH;n.DEFAULT_COMPONENT_SEPERATION=60;n.TILE=true;n.TILING_PADDING_VERTICAL=10;n.TILING_PADDING_HORIZONTAL=10;n.TREE_REDUCTION_ON_INCREMENTAL=false;t.exports=n},function(t,e,r){"use strict";var i=r(0).FDLayoutEdge;function n(t,e,r){i.call(this,t,e,r)}n.prototype=Object.create(i.prototype);for(var o in i){n[o]=i[o]}t.exports=n},function(t,e,r){"use strict";var i=r(0).LGraph;function n(t,e,r){i.call(this,t,e,r)}n.prototype=Object.create(i.prototype);for(var o in i){n[o]=i[o]}t.exports=n},function(t,e,r){"use strict";var i=r(0).LGraphManager;function n(t){i.call(this,t)}n.prototype=Object.create(i.prototype);for(var o in i){n[o]=i[o]}t.exports=n},function(t,e,r){"use strict";var i=r(0).FDLayoutNode;var n=r(0).IMath;function o(t,e,r,n){i.call(this,t,e,r,n)}o.prototype=Object.create(i.prototype);for(var a in i){o[a]=i[a]}o.prototype.move=function(){var t=this.graphManager.getLayout();this.displacementX=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren;this.displacementY=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren;if(Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement){this.displacementX=t.coolingFactor*t.maxNodeDisplacement*n.sign(this.displacementX)}if(Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement){this.displacementY=t.coolingFactor*t.maxNodeDisplacement*n.sign(this.displacementY)}if(this.child==null){this.moveBy(this.displacementX,this.displacementY)}else if(this.child.getNodes().length==0){this.moveBy(this.displacementX,this.displacementY)}else{this.propogateDisplacementToChildren(this.displacementX,this.displacementY)}t.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY);this.springForceX=0;this.springForceY=0;this.repulsionForceX=0;this.repulsionForceY=0;this.gravitationForceX=0;this.gravitationForceY=0;this.displacementX=0;this.displacementY=0};o.prototype.propogateDisplacementToChildren=function(t,e){var r=this.getChild().getNodes();var i;for(var n=0;n0){this.positionNodesRadially(t)}else{this.reduceTrees();this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes());var r=this.nodesWithGravity.filter((function(t){return e.has(t)}));this.graphManager.setAllNodesToApplyGravitation(r);this.positionNodesRandomly()}}else{if(h.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees();this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes());var r=this.nodesWithGravity.filter((function(t){return e.has(t)}));this.graphManager.setAllNodesToApplyGravitation(r)}}this.initSpringEmbedder();this.runSpringEmbedder();return true};E.prototype.tick=function(){this.totalIterations++;if(this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.prunedNodesAll.length>0){this.isTreeGrowing=true}else{return true}}if(this.totalIterations%l.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(this.prunedNodesAll.length>0){this.isTreeGrowing=true}else{return true}}this.coolingCycle++;if(this.layoutQuality==0){this.coolingAdjuster=this.coolingCycle}else if(this.layoutQuality==1){this.coolingAdjuster=this.coolingCycle/3}this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature);this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0){if(this.prunedNodesAll.length>0){this.graphManager.updateBounds();this.updateGrid();this.growTree(this.prunedNodesAll);this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes());var e=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(e);this.graphManager.updateBounds();this.updateGrid();this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL}else{this.isTreeGrowing=false;this.isGrowthFinished=true}}this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged()){return true}if(this.afterGrowthIterations%10==0){this.graphManager.updateBounds();this.updateGrid()}this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100);this.afterGrowthIterations++}var r=!this.isTreeGrowing&&!this.isGrowthFinished;var i=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;this.totalDisplacement=0;this.graphManager.updateBounds();this.calcSpringForces();this.calcRepulsionForces(r,i);this.calcGravitationalForces();this.moveNodes();this.animate();return false};E.prototype.getPositionsData=function(){var t=this.graphManager.getAllNodes();var e={};for(var r=0;r1){var s;for(s=0;si){i=Math.floor(a.y)}o=Math.floor(a.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new g(c.WORLD_CENTER_X-a.x/2,c.WORLD_CENTER_Y-a.y/2))};E.radialLayout=function(t,e,r){var i=Math.max(this.maxDiagonalInTree(t),h.DEFAULT_RADIAL_SEPARATION);E.branchRadialLayout(e,null,0,359,0,i);var n=v.calculateBounds(t);var o=new y;o.setDeviceOrgX(n.getMinX());o.setDeviceOrgY(n.getMinY());o.setWorldOrgX(r.x);o.setWorldOrgY(r.y);for(var a=0;a1){var m=_[0];_.splice(0,1);var N=g.indexOf(m);if(N>=0){g.splice(N,1)}v--;d--}if(e!=null){y=(g.indexOf(_[0])+1)%v}else{y=0}var A=Math.abs(i-r)/d;for(var L=y;p!=d;L=++L%v){var T=g[L].getOtherEnd(t);if(T==e){continue}var O=(r+p*A)%360;var D=(O+A)%360;E.branchRadialLayout(T,t,O,D,n+o,o);p++}};E.maxDiagonalInTree=function(t){var e=p.MIN_VALUE;for(var r=0;re){e=n}}return e};E.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength};E.prototype.groupZeroDegreeMembers=function(){var t=this;var e={};this.memberGroups={};this.idToDummyNode={};var r=[];var i=this.graphManager.getAllNodes();for(var n=0;n1){var i="DummyCompound_"+r;t.memberGroups[i]=e[r];var n=e[r][0].getParent();var o=new a(t.graphManager);o.id=i;o.paddingLeft=n.paddingLeft||0;o.paddingRight=n.paddingRight||0;o.paddingBottom=n.paddingBottom||0;o.paddingTop=n.paddingTop||0;t.idToDummyNode[i]=o;var s=t.getGraphManager().add(t.newGraph(),o);var h=n.getChild();h.add(o);for(var l=0;l=0;t--){var e=this.compoundOrder[t];var r=e.id;var i=e.paddingLeft;var n=e.paddingTop;this.adjustLocations(this.tiledMemberPack[r],e.rect.x,e.rect.y,i,n)}};E.prototype.repopulateZeroDegreeMembers=function(){var t=this;var e=this.tiledZeroDegreePack;Object.keys(e).forEach((function(r){var i=t.idToDummyNode[r];var n=i.paddingLeft;var o=i.paddingTop;t.adjustLocations(e[r],i.rect.x,i.rect.y,n,o)}))};E.prototype.getToBeTiled=function(t){var e=t.id;if(this.toBeTiled[e]!=null){return this.toBeTiled[e]}var r=t.getChild();if(r==null){this.toBeTiled[e]=false;return false}var i=r.getNodes();for(var n=0;n0){this.toBeTiled[e]=false;return false}if(o.getChild()==null){this.toBeTiled[o.id]=false;continue}if(!this.getToBeTiled(o)){this.toBeTiled[e]=false;return false}}this.toBeTiled[e]=true;return true};E.prototype.getNodeDegree=function(t){var e=t.id;var r=t.getEdges();var i=0;for(var n=0;nh)h=c.rect.height}r+=h+t.verticalPadding}};E.prototype.tileCompoundMembers=function(t,e){var r=this;this.tiledMemberPack=[];Object.keys(t).forEach((function(i){var n=e[i];r.tiledMemberPack[i]=r.tileNodes(t[i],n.paddingLeft+n.paddingRight);n.rect.width=r.tiledMemberPack[i].width;n.rect.height=r.tiledMemberPack[i].height}))};E.prototype.tileNodes=function(t,e){var r=h.TILING_PADDING_VERTICAL;var i=h.TILING_PADDING_HORIZONTAL;var n={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:r,horizontalPadding:i};t.sort((function(t,e){if(t.rect.width*t.rect.height>e.rect.width*e.rect.height)return-1;if(t.rect.width*t.rect.height0){a+=t.horizontalPadding}t.rowWidth[r]=a;if(t.width0)s+=t.verticalPadding;var h=0;if(s>t.rowHeight[r]){h=t.rowHeight[r];t.rowHeight[r]=s;h=t.rowHeight[r]-h}t.height+=h;t.rows[r].push(e)};E.prototype.getShortestRowIndex=function(t){var e=-1;var r=Number.MAX_VALUE;for(var i=0;ir){e=i;r=t.rowWidth[i]}}return e};E.prototype.canAddHorizontal=function(t,e,r){var i=this.getShortestRowIndex(t);if(i<0){return true}var n=t.rowWidth[i];if(n+t.horizontalPadding+e<=t.width)return true;var o=0;if(t.rowHeight[i]0)o=r+t.verticalPadding-t.rowHeight[i]}var a;if(t.width-n>=e+t.horizontalPadding){a=(t.height+o)/(n+e+t.horizontalPadding)}else{a=(t.height+o)/t.width}o=r+t.verticalPadding;var s;if(t.widtho&&e!=r){i.splice(-1,1);t.rows[r].push(n);t.rowWidth[e]=t.rowWidth[e]-o;t.rowWidth[r]=t.rowWidth[r]+o;t.width=t.rowWidth[instance.getLongestRowIndex(t)];var a=Number.MIN_VALUE;for(var s=0;sa)a=i[s].height}if(e>0)a+=t.verticalPadding;var h=t.rowHeight[e]+t.rowHeight[r];t.rowHeight[e]=a;if(t.rowHeight[r]0){for(var f=n;f<=o;f++){d[0]+=this.grid[f][a-1].length+this.grid[f][a].length-1}}if(o0){for(var f=a;f<=s;f++){d[3]+=this.grid[n-1][f].length+this.grid[n][f].length-1}}var v=p.MAX_VALUE;var y;var E;for(var _=0;_0){var f;f=r.getGraphManager().add(r.newGraph(),c);this.processChildrenList(f,a,r)}}};g.prototype.stop=function(){this.stopped=true;return this};var p=function t(e){e("layout","cose-bilkent",g)};if(typeof cytoscape!=="undefined"){p(cytoscape)}t.exports=p}])}))},23143:function(t){(function e(r,i){if(true)t.exports=i();else{}})(this,(function(){return function(t){var e={};function r(i){if(e[i]){return e[i].exports}var n=e[i]={i,l:false,exports:{}};t[i].call(n.exports,n,n.exports,r);n.l=true;return n.exports}r.m=t;r.c=e;r.i=function(t){return t};r.d=function(t,e,i){if(!r.o(t,e)){Object.defineProperty(t,e,{configurable:false,enumerable:true,get:i})}};r.n=function(t){var e=t&&t.__esModule?function e(){return t["default"]}:function e(){return t};r.d(e,"a",e);return e};r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};r.p="";return r(r.s=26)}([function(t,e,r){"use strict";function i(){}i.QUALITY=1;i.DEFAULT_CREATE_BENDS_AS_NEEDED=false;i.DEFAULT_INCREMENTAL=false;i.DEFAULT_ANIMATION_ON_LAYOUT=true;i.DEFAULT_ANIMATION_DURING_LAYOUT=false;i.DEFAULT_ANIMATION_PERIOD=50;i.DEFAULT_UNIFORM_LEAF_NODE_SIZES=false;i.DEFAULT_GRAPH_MARGIN=15;i.NODE_DIMENSIONS_INCLUDE_LABELS=false;i.SIMPLE_NODE_SIZE=40;i.SIMPLE_NODE_HALF_SIZE=i.SIMPLE_NODE_SIZE/2;i.EMPTY_COMPOUND_NODE_SIZE=40;i.MIN_EDGE_LENGTH=1;i.WORLD_BOUNDARY=1e6;i.INITIAL_WORLD_BOUNDARY=i.WORLD_BOUNDARY/1e3;i.WORLD_CENTER_X=1200;i.WORLD_CENTER_Y=900;t.exports=i},function(t,e,r){"use strict";var i=r(2);var n=r(8);var o=r(9);function a(t,e,r){i.call(this,r);this.isOverlapingSourceAndTarget=false;this.vGraphObject=r;this.bendpoints=[];this.source=t;this.target=e}a.prototype=Object.create(i.prototype);for(var s in i){a[s]=i[s]}a.prototype.getSource=function(){return this.source};a.prototype.getTarget=function(){return this.target};a.prototype.isInterGraph=function(){return this.isInterGraph};a.prototype.getLength=function(){return this.length};a.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget};a.prototype.getBendpoints=function(){return this.bendpoints};a.prototype.getLca=function(){return this.lca};a.prototype.getSourceInLca=function(){return this.sourceInLca};a.prototype.getTargetInLca=function(){return this.targetInLca};a.prototype.getOtherEnd=function(t){if(this.source===t){return this.target}else if(this.target===t){return this.source}else{throw"Node is not incident with this edge"}};a.prototype.getOtherEndInGraph=function(t,e){var r=this.getOtherEnd(t);var i=e.getGraphManager().getRoot();while(true){if(r.getOwner()==e){return r}if(r.getOwner()==i){break}r=r.getOwner().getParent()}return null};a.prototype.updateLength=function(){var t=new Array(4);this.isOverlapingSourceAndTarget=n.getIntersection(this.target.getRect(),this.source.getRect(),t);if(!this.isOverlapingSourceAndTarget){this.lengthX=t[0]-t[2];this.lengthY=t[1]-t[3];if(Math.abs(this.lengthX)<1){this.lengthX=o.sign(this.lengthX)}if(Math.abs(this.lengthY)<1){this.lengthY=o.sign(this.lengthY)}this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)}};a.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX();this.lengthY=this.target.getCenterY()-this.source.getCenterY();if(Math.abs(this.lengthX)<1){this.lengthX=o.sign(this.lengthX)}if(Math.abs(this.lengthY)<1){this.lengthY=o.sign(this.lengthY)}this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)};t.exports=a},function(t,e,r){"use strict";function i(t){this.vGraphObject=t}t.exports=i},function(t,e,r){"use strict";var i=r(2);var n=r(10);var o=r(13);var a=r(0);var s=r(16);var h=r(4);function l(t,e,r,a){if(r==null&&a==null){a=e}i.call(this,a);if(t.graphManager!=null)t=t.graphManager;this.estimatedSize=n.MIN_VALUE;this.inclusionTreeDepth=n.MAX_VALUE;this.vGraphObject=a;this.edges=[];this.graphManager=t;if(r!=null&&e!=null)this.rect=new o(e.x,e.y,r.width,r.height);else this.rect=new o}l.prototype=Object.create(i.prototype);for(var c in i){l[c]=i[c]}l.prototype.getEdges=function(){return this.edges};l.prototype.getChild=function(){return this.child};l.prototype.getOwner=function(){return this.owner};l.prototype.getWidth=function(){return this.rect.width};l.prototype.setWidth=function(t){this.rect.width=t};l.prototype.getHeight=function(){return this.rect.height};l.prototype.setHeight=function(t){this.rect.height=t};l.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2};l.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2};l.prototype.getCenter=function(){return new h(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)};l.prototype.getLocation=function(){return new h(this.rect.x,this.rect.y)};l.prototype.getRect=function(){return this.rect};l.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)};l.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2};l.prototype.setRect=function(t,e){this.rect.x=t.x;this.rect.y=t.y;this.rect.width=e.width;this.rect.height=e.height};l.prototype.setCenter=function(t,e){this.rect.x=t-this.rect.width/2;this.rect.y=e-this.rect.height/2};l.prototype.setLocation=function(t,e){this.rect.x=t;this.rect.y=e};l.prototype.moveBy=function(t,e){this.rect.x+=t;this.rect.y+=e};l.prototype.getEdgeListToNode=function(t){var e=[];var r;var i=this;i.edges.forEach((function(r){if(r.target==t){if(r.source!=i)throw"Incorrect edge source!";e.push(r)}}));return e};l.prototype.getEdgesBetween=function(t){var e=[];var r;var i=this;i.edges.forEach((function(r){if(!(r.source==i||r.target==i))throw"Incorrect edge source and/or target";if(r.target==t||r.source==t){e.push(r)}}));return e};l.prototype.getNeighborsList=function(){var t=new Set;var e=this;e.edges.forEach((function(r){if(r.source==e){t.add(r.target)}else{if(r.target!=e){throw"Incorrect incidency!"}t.add(r.source)}}));return t};l.prototype.withChildren=function(){var t=new Set;var e;var r;t.add(this);if(this.child!=null){var i=this.child.getNodes();for(var n=0;ne){this.rect.x-=(this.labelWidth-e)/2;this.setWidth(this.labelWidth)}if(this.labelHeight>r){if(this.labelPos=="center"){this.rect.y-=(this.labelHeight-r)/2}else if(this.labelPos=="top"){this.rect.y-=this.labelHeight-r}this.setHeight(this.labelHeight)}}}};l.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==n.MAX_VALUE){throw"assert failed"}return this.inclusionTreeDepth};l.prototype.transform=function(t){var e=this.rect.x;if(e>a.WORLD_BOUNDARY){e=a.WORLD_BOUNDARY}else if(e<-a.WORLD_BOUNDARY){e=-a.WORLD_BOUNDARY}var r=this.rect.y;if(r>a.WORLD_BOUNDARY){r=a.WORLD_BOUNDARY}else if(r<-a.WORLD_BOUNDARY){r=-a.WORLD_BOUNDARY}var i=new h(e,r);var n=t.inverseTransformPoint(i);this.setLocation(n.x,n.y)};l.prototype.getLeft=function(){return this.rect.x};l.prototype.getRight=function(){return this.rect.x+this.rect.width};l.prototype.getTop=function(){return this.rect.y};l.prototype.getBottom=function(){return this.rect.y+this.rect.height};l.prototype.getParent=function(){if(this.owner==null){return null}return this.owner.getParent()};t.exports=l},function(t,e,r){"use strict";function i(t,e){if(t==null&&e==null){this.x=0;this.y=0}else{this.x=t;this.y=e}}i.prototype.getX=function(){return this.x};i.prototype.getY=function(){return this.y};i.prototype.setX=function(t){this.x=t};i.prototype.setY=function(t){this.y=t};i.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)};i.prototype.getCopy=function(){return new i(this.x,this.y)};i.prototype.translate=function(t){this.x+=t.width;this.y+=t.height;return this};t.exports=i},function(t,e,r){"use strict";var i=r(2);var n=r(10);var o=r(0);var a=r(6);var s=r(3);var h=r(1);var l=r(13);var c=r(12);var u=r(11);function g(t,e,r){i.call(this,r);this.estimatedSize=n.MIN_VALUE;this.margin=o.DEFAULT_GRAPH_MARGIN;this.edges=[];this.nodes=[];this.isConnected=false;this.parent=t;if(e!=null&&e instanceof a){this.graphManager=e}else if(e!=null&&e instanceof Layout){this.graphManager=e.graphManager}}g.prototype=Object.create(i.prototype);for(var d in i){g[d]=i[d]}g.prototype.getNodes=function(){return this.nodes};g.prototype.getEdges=function(){return this.edges};g.prototype.getGraphManager=function(){return this.graphManager};g.prototype.getParent=function(){return this.parent};g.prototype.getLeft=function(){return this.left};g.prototype.getRight=function(){return this.right};g.prototype.getTop=function(){return this.top};g.prototype.getBottom=function(){return this.bottom};g.prototype.isConnected=function(){return this.isConnected};g.prototype.add=function(t,e,r){if(e==null&&r==null){var i=t;if(this.graphManager==null){throw"Graph has no graph mgr!"}if(this.getNodes().indexOf(i)>-1){throw"Node already in graph!"}i.owner=this;this.getNodes().push(i);return i}else{var n=t;if(!(this.getNodes().indexOf(e)>-1&&this.getNodes().indexOf(r)>-1)){throw"Source or target not in graph!"}if(!(e.owner==r.owner&&e.owner==this)){throw"Both owners must be this graph!"}if(e.owner!=r.owner){return null}n.source=e;n.target=r;n.isInterGraph=false;this.getEdges().push(n);e.edges.push(n);if(r!=e){r.edges.push(n)}return n}};g.prototype.remove=function(t){var e=t;if(t instanceof s){if(e==null){throw"Node is null!"}if(!(e.owner!=null&&e.owner==this)){throw"Owner graph is invalid!"}if(this.graphManager==null){throw"Owner graph manager is invalid!"}var r=e.edges.slice();var i;var n=r.length;for(var o=0;o-1&&c>-1)){throw"Source and/or target doesn't know this edge!"}i.source.edges.splice(l,1);if(i.target!=i.source){i.target.edges.splice(c,1)}var a=i.source.owner.getEdges().indexOf(i);if(a==-1){throw"Not in owner's edge list!"}i.source.owner.getEdges().splice(a,1)}};g.prototype.updateLeftTop=function(){var t=n.MAX_VALUE;var e=n.MAX_VALUE;var r;var i;var o;var a=this.getNodes();var s=a.length;for(var h=0;hr){t=r}if(e>i){e=i}}if(t==n.MAX_VALUE){return null}if(a[0].getParent().paddingLeft!=undefined){o=a[0].getParent().paddingLeft}else{o=this.margin}this.left=e-o;this.top=t-o;return new c(this.left,this.top)};g.prototype.updateBounds=function(t){var e=n.MAX_VALUE;var r=-n.MAX_VALUE;var i=n.MAX_VALUE;var o=-n.MAX_VALUE;var a;var s;var h;var c;var u;var g=this.nodes;var d=g.length;for(var p=0;pa){e=a}if(rh){i=h}if(oa){e=a}if(rh){i=h}if(o=this.nodes.length){var g=0;r.forEach((function(e){if(e.owner==t){g++}}));if(g==this.nodes.length){this.isConnected=true}}};t.exports=g},function(t,e,r){"use strict";var i;var n=r(1);function o(t){i=r(5);this.layout=t;this.graphs=[];this.edges=[]}o.prototype.addRoot=function(){var t=this.layout.newGraph();var e=this.layout.newNode(null);var r=this.add(t,e);this.setRootGraph(r);return this.rootGraph};o.prototype.add=function(t,e,r,i,n){if(r==null&&i==null&&n==null){if(t==null){throw"Graph is null!"}if(e==null){throw"Parent node is null!"}if(this.graphs.indexOf(t)>-1){throw"Graph already in this graph mgr!"}this.graphs.push(t);if(t.parent!=null){throw"Already has a parent!"}if(e.child!=null){throw"Already has a child!"}t.parent=e;e.child=t;return t}else{n=r;i=e;r=t;var o=i.getOwner();var a=n.getOwner();if(!(o!=null&&o.getGraphManager()==this)){throw"Source not in this graph mgr!"}if(!(a!=null&&a.getGraphManager()==this)){throw"Target not in this graph mgr!"}if(o==a){r.isInterGraph=false;return o.add(r,i,n)}else{r.isInterGraph=true;r.source=i;r.target=n;if(this.edges.indexOf(r)>-1){throw"Edge already in inter-graph edge list!"}this.edges.push(r);if(!(r.source!=null&&r.target!=null)){throw"Edge source and/or target is null!"}if(!(r.source.edges.indexOf(r)==-1&&r.target.edges.indexOf(r)==-1)){throw"Edge already in source and/or target incidency list!"}r.source.edges.push(r);r.target.edges.push(r);return r}}};o.prototype.remove=function(t){if(t instanceof i){var e=t;if(e.getGraphManager()!=this){throw"Graph not in this graph mgr"}if(!(e==this.rootGraph||e.parent!=null&&e.parent.graphManager==this)){throw"Invalid parent node!"}var r=[];r=r.concat(e.getEdges());var o;var a=r.length;for(var s=0;s=e.getRight()){r[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight())}else if(e.getX()<=t.getX()&&e.getRight()>=t.getRight()){r[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())}if(t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()){r[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom())}else if(e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()){r[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom())}var o=Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()));if(e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()){o=1}var a=o*r[0];var s=r[1]/o;if(r[0]a){r[0]=i;r[1]=h;r[2]=o;r[3]=_;return false}else if(no){r[0]=s;r[1]=n;r[2]=y;r[3]=a;return false}else if(io){r[0]=c;r[1]=u;L=true}else{r[0]=l;r[1]=h;L=true}}else if(O===I){if(i>o){r[0]=s;r[1]=h;L=true}else{r[0]=g;r[1]=u;L=true}}if(-D===I){if(o>i){r[2]=E;r[3]=_;T=true}else{r[2]=y;r[3]=v;T=true}}else if(D===I){if(o>i){r[2]=f;r[3]=v;T=true}else{r[2]=m;r[3]=_;T=true}}if(L&&T){return false}if(i>o){if(n>a){w=this.getCardinalDirection(O,I,4);R=this.getCardinalDirection(D,I,2)}else{w=this.getCardinalDirection(-O,I,3);R=this.getCardinalDirection(-D,I,1)}}else{if(n>a){w=this.getCardinalDirection(-O,I,1);R=this.getCardinalDirection(-D,I,3)}else{w=this.getCardinalDirection(O,I,2);R=this.getCardinalDirection(D,I,4)}}if(!L){switch(w){case 1:M=h;C=i+-p/I;r[0]=C;r[1]=M;break;case 2:C=g;M=n+d*I;r[0]=C;r[1]=M;break;case 3:M=u;C=i+p/I;r[0]=C;r[1]=M;break;case 4:C=c;M=n+-d*I;r[0]=C;r[1]=M;break}}if(!T){switch(R){case 1:b=v;x=o+-A/I;r[2]=x;r[3]=b;break;case 2:x=m;b=a+N*I;r[2]=x;r[3]=b;break;case 3:b=_;x=o+A/I;r[2]=x;r[3]=b;break;case 4:x=E;b=a+-N*I;r[2]=x;r[3]=b;break}}}return false};n.getCardinalDirection=function(t,e,r){if(t>e){return r}else{return 1+r%4}};n.getIntersection=function(t,e,r,n){if(n==null){return this.getIntersection2(t,e,r)}var o=t.x;var a=t.y;var s=e.x;var h=e.y;var l=r.x;var c=r.y;var u=n.x;var g=n.y;var d=void 0,p=void 0;var f=void 0,v=void 0,y=void 0,E=void 0,_=void 0,m=void 0;var N=void 0;f=h-a;y=o-s;_=s*a-o*h;v=g-c;E=l-u;m=u*c-l*g;N=f*E-v*y;if(N===0){return null}d=(y*m-E*_)/N;p=(v*_-f*m)/N;return new i(d,p)};n.angleOfVector=function(t,e,r,i){var n=void 0;if(t!==r){n=Math.atan((i-e)/(r-t));if(r0){return 1}else if(t<0){return-1}else{return 0}};i.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)};i.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)};t.exports=i},function(t,e,r){"use strict";function i(){}i.MAX_VALUE=2147483647;i.MIN_VALUE=-2147483648;t.exports=i},function(t,e,r){"use strict";var i=function(){function t(t,e){for(var r=0;r0&&e){s.push(l[0]);while(s.length>0&&e){var c=s[0];s.splice(0,1);a.add(c);var u=c.getEdges();for(var o=0;o-1){l.splice(f,1)}}a=new Set;h=new Map}}return t};g.prototype.createDummyNodesForBendpoints=function(t){var e=[];var r=t.source;var i=this.graphManager.calcLowestCommonAncestor(t.source,t.target);for(var n=0;n0){var n=this.edgeToDummyNodes.get(r);for(var o=0;o=0){e.splice(u,1)}var g=s.getNeighborsList();g.forEach((function(t){if(r.indexOf(t)<0){var e=i.get(t);var n=e-1;if(n==1){l.push(t)}i.set(t,n)}}))}r=r.concat(l);if(e.length==1||e.length==2){n=true;o=e[0]}}return o};g.prototype.setGraphManager=function(t){this.graphManager=t};t.exports=g},function(t,e,r){"use strict";function i(){}i.seed=1;i.x=0;i.nextDouble=function(){i.x=Math.sin(i.seed++)*1e4;return i.x-Math.floor(i.x)};t.exports=i},function(t,e,r){"use strict";var i=r(4);function n(t,e){this.lworldOrgX=0;this.lworldOrgY=0;this.ldeviceOrgX=0;this.ldeviceOrgY=0;this.lworldExtX=1;this.lworldExtY=1;this.ldeviceExtX=1;this.ldeviceExtY=1}n.prototype.getWorldOrgX=function(){return this.lworldOrgX};n.prototype.setWorldOrgX=function(t){this.lworldOrgX=t};n.prototype.getWorldOrgY=function(){return this.lworldOrgY};n.prototype.setWorldOrgY=function(t){this.lworldOrgY=t};n.prototype.getWorldExtX=function(){return this.lworldExtX};n.prototype.setWorldExtX=function(t){this.lworldExtX=t};n.prototype.getWorldExtY=function(){return this.lworldExtY};n.prototype.setWorldExtY=function(t){this.lworldExtY=t};n.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX};n.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t};n.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY};n.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t};n.prototype.getDeviceExtX=function(){return this.ldeviceExtX};n.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t};n.prototype.getDeviceExtY=function(){return this.ldeviceExtY};n.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t};n.prototype.transformX=function(t){var e=0;var r=this.lworldExtX;if(r!=0){e=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/r}return e};n.prototype.transformY=function(t){var e=0;var r=this.lworldExtY;if(r!=0){e=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/r}return e};n.prototype.inverseTransformX=function(t){var e=0;var r=this.ldeviceExtX;if(r!=0){e=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/r}return e};n.prototype.inverseTransformY=function(t){var e=0;var r=this.ldeviceExtY;if(r!=0){e=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/r}return e};n.prototype.inverseTransformPoint=function(t){var e=new i(this.inverseTransformX(t.x),this.inverseTransformY(t.y));return e};t.exports=n},function(t,e,r){"use strict";function i(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);eo.ADAPTATION_LOWER_NODE_LIMIT){this.coolingFactor=Math.max(this.coolingFactor*o.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-o.ADAPTATION_LOWER_NODE_LIMIT)/(o.ADAPTATION_UPPER_NODE_LIMIT-o.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-o.COOLING_ADAPTATION_FACTOR))}this.maxNodeDisplacement=o.MAX_NODE_DISPLACEMENT_INCREMENTAL}else{if(t>o.ADAPTATION_LOWER_NODE_LIMIT){this.coolingFactor=Math.max(o.COOLING_ADAPTATION_FACTOR,1-(t-o.ADAPTATION_LOWER_NODE_LIMIT)/(o.ADAPTATION_UPPER_NODE_LIMIT-o.ADAPTATION_LOWER_NODE_LIMIT)*(1-o.COOLING_ADAPTATION_FACTOR))}else{this.coolingFactor=1}this.initialCoolingFactor=this.coolingFactor;this.maxNodeDisplacement=o.MAX_NODE_DISPLACEMENT}this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations);this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length;this.repulsionRange=this.calcRepulsionRange()};l.prototype.calcSpringForces=function(){var t=this.getAllEdges();var e;for(var r=0;r0&&arguments[0]!==undefined?arguments[0]:true;var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var r,i;var n,a;var s=this.getAllNodes();var h;if(this.useFRGridVariant){if(this.totalIterations%o.GRID_CALCULATION_CHECK_PERIOD==1&&t){this.updateGrid()}h=new Set;for(r=0;rh||s>h){t.gravitationForceX=-this.gravityConstant*n;t.gravitationForceY=-this.gravityConstant*o}}else{h=e.getEstimatedSize()*this.compoundGravityRangeFactor;if(a>h||s>h){t.gravitationForceX=-this.gravityConstant*n*this.compoundGravityConstant;t.gravitationForceY=-this.gravityConstant*o*this.compoundGravityConstant}}};l.prototype.isConverged=function(){var t;var e=false;if(this.totalIterations>this.maxIterations/3){e=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2}t=this.totalDisplacement=h.length||c>=h[0].length)){for(var u=0;ue}}]);return t}();t.exports=a},function(t,e,r){"use strict";var i=function(){function t(t,e){for(var r=0;r2&&arguments[2]!==undefined?arguments[2]:1;var o=arguments.length>3&&arguments[3]!==undefined?arguments[3]:-1;var a=arguments.length>4&&arguments[4]!==undefined?arguments[4]:-1;n(this,t);this.sequence1=e;this.sequence2=r;this.match_score=i;this.mismatch_penalty=o;this.gap_penalty=a;this.iMax=e.length+1;this.jMax=r.length+1;this.grid=new Array(this.iMax);for(var s=0;s=0;r--){var i=this.listeners[r];if(i.event===t&&i.callback===e){this.listeners.splice(r,1)}}};n.emit=function(t,e){for(var r=0;r{"use strict";r.d(e,{diagram:()=>J});var i=r(76261);var n=r(96049);var o=r(93113);var a=r(75905);var s=r(76405);var h=r(43457);var l=r.n(h);var c=r(24982);var u=r(63170);var g=r(77470);var d=r(48750);var p=function(){var t=(0,a.K2)((function(t,e,r,i){for(r=r||{},i=t.length;i--;r[t[i]]=e);return r}),"o"),e=[1,4],r=[1,13],i=[1,12],n=[1,15],o=[1,16],s=[1,20],h=[1,19],l=[6,7,8],c=[1,26],u=[1,24],g=[1,25],d=[6,7,11],p=[1,6,13,15,16,19,22],f=[1,33],v=[1,34],y=[1,6,7,11,13,15,16,19,22];var E={trace:(0,a.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:(0,a.K2)((function t(e,r,i,n,o,a,s){var h=a.length-1;switch(o){case 6:case 7:return n;break;case 8:n.getLogger().trace("Stop NL ");break;case 9:n.getLogger().trace("Stop EOF ");break;case 11:n.getLogger().trace("Stop NL2 ");break;case 12:n.getLogger().trace("Stop EOF2 ");break;case 15:n.getLogger().info("Node: ",a[h].id);n.addNode(a[h-1].length,a[h].id,a[h].descr,a[h].type);break;case 16:n.getLogger().trace("Icon: ",a[h]);n.decorateNode({icon:a[h]});break;case 17:case 21:n.decorateNode({class:a[h]});break;case 18:n.getLogger().trace("SPACELIST");break;case 19:n.getLogger().trace("Node: ",a[h].id);n.addNode(0,a[h].id,a[h].descr,a[h].type);break;case 20:n.decorateNode({icon:a[h]});break;case 25:n.getLogger().trace("node found ..",a[h-2]);this.$={id:a[h-1],descr:a[h-1],type:n.getType(a[h-2],a[h])};break;case 26:this.$={id:a[h],descr:a[h],type:n.nodeType.DEFAULT};break;case 27:n.getLogger().trace("node found ..",a[h-3]);this.$={id:a[h-3],descr:a[h-1],type:n.getType(a[h-2],a[h])};break}}),"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:i,14:14,15:n,16:o,17:17,18:18,19:s,22:h},t(l,[2,3]),{1:[2,2]},t(l,[2,4]),t(l,[2,5]),{1:[2,6],6:r,12:21,13:i,14:14,15:n,16:o,17:17,18:18,19:s,22:h},{6:r,9:22,12:11,13:i,14:14,15:n,16:o,17:17,18:18,19:s,22:h},{6:c,7:u,10:23,11:g},t(d,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:h}),t(d,[2,18]),t(d,[2,19]),t(d,[2,20]),t(d,[2,21]),t(d,[2,23]),t(d,[2,24]),t(d,[2,26],{19:[1,30]}),{20:[1,31]},{6:c,7:u,10:32,11:g},{1:[2,7],6:r,12:21,13:i,14:14,15:n,16:o,17:17,18:18,19:s,22:h},t(p,[2,14],{7:f,11:v}),t(y,[2,8]),t(y,[2,9]),t(y,[2,10]),t(d,[2,15]),t(d,[2,16]),t(d,[2,17]),{20:[1,35]},{21:[1,36]},t(p,[2,13],{7:f,11:v}),t(y,[2,11]),t(y,[2,12]),{21:[1,37]},t(d,[2,25]),t(d,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:(0,a.K2)((function t(e,r){if(r.recoverable){this.trace(e)}else{var i=new Error(e);i.hash=r;throw i}}),"parseError"),parse:(0,a.K2)((function t(e){var r=this,i=[0],n=[],o=[null],s=[],h=this.table,l="",c=0,u=0,g=0,d=2,p=1;var f=s.slice.call(arguments,1);var v=Object.create(this.lexer);var y={yy:{}};for(var E in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,E)){y.yy[E]=this.yy[E]}}v.setInput(e,y.yy);y.yy.lexer=v;y.yy.parser=this;if(typeof v.yylloc=="undefined"){v.yylloc={}}var _=v.yylloc;s.push(_);var m=v.options&&v.options.ranges;if(typeof y.yy.parseError==="function"){this.parseError=y.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function N(t){i.length=i.length-2*t;o.length=o.length-t;s.length=s.length-t}(0,a.K2)(N,"popStack");function A(){var t;t=n.pop()||v.lex()||p;if(typeof t!=="number"){if(t instanceof Array){n=t;t=n.pop()}t=r.symbols_[t]||t}return t}(0,a.K2)(A,"lex");var L,T,O,D,I,w,R={},C,M,x,b;while(true){O=i[i.length-1];if(this.defaultActions[O]){D=this.defaultActions[O]}else{if(L===null||typeof L=="undefined"){L=A()}D=h[O]&&h[O][L]}if(typeof D==="undefined"||!D.length||!D[0]){var G="";b=[];for(C in h[O]){if(this.terminals_[C]&&C>d){b.push("'"+this.terminals_[C]+"'")}}if(v.showPosition){G="Parse error on line "+(c+1)+":\n"+v.showPosition()+"\nExpecting "+b.join(", ")+", got '"+(this.terminals_[L]||L)+"'"}else{G="Parse error on line "+(c+1)+": Unexpected "+(L==p?"end of input":"'"+(this.terminals_[L]||L)+"'")}this.parseError(G,{text:v.match,token:this.terminals_[L]||L,line:v.yylineno,loc:_,expected:b})}if(D[0]instanceof Array&&D.length>1){throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+L)}switch(D[0]){case 1:i.push(L);o.push(v.yytext);s.push(v.yylloc);i.push(D[1]);L=null;if(!T){u=v.yyleng;l=v.yytext;c=v.yylineno;_=v.yylloc;if(g>0){g--}}else{L=T;T=null}break;case 2:M=this.productions_[D[1]][1];R.$=o[o.length-M];R._$={first_line:s[s.length-(M||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(M||1)].first_column,last_column:s[s.length-1].last_column};if(m){R._$.range=[s[s.length-(M||1)].range[0],s[s.length-1].range[1]]}w=this.performAction.apply(R,[l,u,c,y.yy,D[1],o,s].concat(f));if(typeof w!=="undefined"){return w}if(M){i=i.slice(0,-1*M*2);o=o.slice(0,-1*M);s=s.slice(0,-1*M)}i.push(this.productions_[D[1]][0]);o.push(R.$);s.push(R._$);x=h[i[i.length-2]][i[i.length-1]];i.push(x);break;case 3:return true}}return true}),"parse")};var _=function(){var t={EOF:1,parseError:(0,a.K2)((function t(e,r){if(this.yy.parser){this.yy.parser.parseError(e,r)}else{throw new Error(e)}}),"parseError"),setInput:(0,a.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,a.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,a.K2)((function(t){var e=t.length;var r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(r.length-1){this.yylineno-=r.length-1}var n=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===i.length?this.yylloc.first_column:0)+i[i.length-r.length].length-r[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[n[0],n[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,a.K2)((function(){this._more=true;return this}),"more"),reject:(0,a.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,a.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,a.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,a.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,a.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,a.K2)((function(t,e){var r,i,n;if(this.options.backtrack_lexer){n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){n.yylloc.range=this.yylloc.range.slice(0)}}i=t[0].match(/(?:\r\n?|\n).*/g);if(i){this.yylineno+=i.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(r){return r}else if(this._backtrack){for(var o in n){this[o]=n[o]}return false}return false}),"test_match"),next:(0,a.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,r,i;if(!this._more){this.yytext="";this.match=""}var n=this._currentRules();for(var o=0;oe[0].length)){e=r;i=o;if(this.options.backtrack_lexer){t=this.test_match(r,n[o]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,n[i]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,a.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,a.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,a.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,a.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,a.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,a.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,a.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,a.K2)((function t(e,r,i,n){var o=n;switch(i){case 0:e.getLogger().trace("Found comment",r.yytext);return 6;break;case 1:return 8;break;case 2:this.begin("CLASS");break;case 3:this.popState();return 16;break;case 4:this.popState();break;case 5:e.getLogger().trace("Begin icon");this.begin("ICON");break;case 6:e.getLogger().trace("SPACELINE");return 6;break;case 7:return 7;break;case 8:return 15;break;case 9:e.getLogger().trace("end icon");this.popState();break;case 10:e.getLogger().trace("Exploding node");this.begin("NODE");return 19;break;case 11:e.getLogger().trace("Cloud");this.begin("NODE");return 19;break;case 12:e.getLogger().trace("Explosion Bang");this.begin("NODE");return 19;break;case 13:e.getLogger().trace("Cloud Bang");this.begin("NODE");return 19;break;case 14:this.begin("NODE");return 19;break;case 15:this.begin("NODE");return 19;break;case 16:this.begin("NODE");return 19;break;case 17:this.begin("NODE");return 19;break;case 18:return 13;break;case 19:return 22;break;case 20:return 11;break;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";break;case 23:this.popState();break;case 24:e.getLogger().trace("Starting NSTR");this.begin("NSTR");break;case 25:e.getLogger().trace("description:",r.yytext);return"NODE_DESCR";break;case 26:this.popState();break;case 27:this.popState();e.getLogger().trace("node end ))");return"NODE_DEND";break;case 28:this.popState();e.getLogger().trace("node end )");return"NODE_DEND";break;case 29:this.popState();e.getLogger().trace("node end ...",r.yytext);return"NODE_DEND";break;case 30:this.popState();e.getLogger().trace("node end ((");return"NODE_DEND";break;case 31:this.popState();e.getLogger().trace("node end (-");return"NODE_DEND";break;case 32:this.popState();e.getLogger().trace("node end (-");return"NODE_DEND";break;case 33:this.popState();e.getLogger().trace("node end ((");return"NODE_DEND";break;case 34:this.popState();e.getLogger().trace("node end ((");return"NODE_DEND";break;case 35:e.getLogger().trace("Long description:",r.yytext);return 20;break;case 36:e.getLogger().trace("Long description:",r.yytext);return 20;break}}),"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:false},ICON:{rules:[8,9],inclusive:false},NSTR2:{rules:[22,23],inclusive:false},NSTR:{rules:[25,26],inclusive:false},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:false},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:true}}};return t}();E.lexer=_;function m(){this.yy={}}(0,a.K2)(m,"Parser");m.prototype=E;E.Parser=m;return new m}();p.parser=p;var f=p;var v=[];var y=0;var E={};var _=(0,a.K2)((()=>{v=[];y=0;E={}}),"clear");var m=(0,a.K2)((function(t){for(let e=v.length-1;e>=0;e--){if(v[e].levelv.length>0?v[0]:null),"getMindmap");var A=(0,a.K2)(((t,e,r,i)=>{a.Rm.info("addNode",t,e,r,i);const n=(0,a.D7)();let o=n.mindmap?.padding??a.UI.mindmap.padding;switch(i){case L.ROUNDED_RECT:case L.RECT:case L.HEXAGON:o*=2}const s={id:y++,nodeId:(0,a.jZ)(e,n),level:t,descr:(0,a.jZ)(r,n),type:i,children:[],width:n.mindmap?.maxNodeWidth??a.UI.mindmap.maxNodeWidth,padding:o};const h=m(t);if(h){h.children.push(s);v.push(s)}else{if(v.length===0){v.push(s)}else{throw new Error('There can be only one root. No parent could be found for ("'+s.descr+'")')}}}),"addNode");var L={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6};var T=(0,a.K2)(((t,e)=>{a.Rm.debug("In get type",t,e);switch(t){case"[":return L.RECT;case"(":return e===")"?L.ROUNDED_RECT:L.CLOUD;case"((":return L.CIRCLE;case")":return L.CLOUD;case"))":return L.BANG;case"{{":return L.HEXAGON;default:return L.DEFAULT}}),"getType");var O=(0,a.K2)(((t,e)=>{E[t]=e}),"setElementForId");var D=(0,a.K2)((t=>{if(!t){return}const e=(0,a.D7)();const r=v[v.length-1];if(t.icon){r.icon=(0,a.jZ)(t.icon,e)}if(t.class){r.class=(0,a.jZ)(t.class,e)}}),"decorateNode");var I=(0,a.K2)((t=>{switch(t){case L.DEFAULT:return"no-border";case L.RECT:return"rect";case L.ROUNDED_RECT:return"rounded-rect";case L.CIRCLE:return"circle";case L.CLOUD:return"cloud";case L.BANG:return"bang";case L.HEXAGON:return"hexgon";default:return"no-border"}}),"type2Str");var w=(0,a.K2)((()=>a.Rm),"getLogger");var R=(0,a.K2)((t=>E[t]),"getElementById");var C={clear:_,addNode:A,getMindmap:N,nodeType:L,getType:T,setElementForId:O,decorateNode:D,type2Str:I,getLogger:w,getElementById:R};var M=C;var x=12;var b=(0,a.K2)((function(t,e,r,i){const n=5;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 ${r.height-n} v${-r.height+2*n} q0,-5 5,-5 h${r.width-2*n} q5,0 5,5 v${r.height-n} H0 Z`);e.append("line").attr("class","node-line-"+i).attr("x1",0).attr("y1",r.height).attr("x2",r.width).attr("y2",r.height)}),"defaultBkg");var G=(0,a.K2)((function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("width",r.width)}),"rectBkg");var S=(0,a.K2)((function(t,e,r){const i=r.width;const n=r.height;const o=.15*i;const a=.25*i;const s=.35*i;const h=.2*i;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${o},${o} 0 0,1 ${i*.25},${-1*i*.1}\n a${s},${s} 1 0,1 ${i*.4},${-1*i*.1}\n a${a},${a} 1 0,1 ${i*.35},${1*i*.2}\n\n a${o},${o} 1 0,1 ${i*.15},${1*n*.35}\n a${h},${h} 1 0,1 ${-1*i*.15},${1*n*.65}\n\n a${a},${o} 1 0,1 ${-1*i*.25},${i*.15}\n a${s},${s} 1 0,1 ${-1*i*.5},${0}\n a${o},${o} 1 0,1 ${-1*i*.25},${-1*i*.15}\n\n a${o},${o} 1 0,1 ${-1*i*.1},${-1*n*.35}\n a${h},${h} 1 0,1 ${i*.1},${-1*n*.65}\n\n H0 V0 Z`)}),"cloudBkg");var F=(0,a.K2)((function(t,e,r){const i=r.width;const n=r.height;const o=.15*i;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${o},${o} 1 0,0 ${i*.25},${-1*n*.1}\n a${o},${o} 1 0,0 ${i*.25},${0}\n a${o},${o} 1 0,0 ${i*.25},${0}\n a${o},${o} 1 0,0 ${i*.25},${1*n*.1}\n\n a${o},${o} 1 0,0 ${i*.15},${1*n*.33}\n a${o*.8},${o*.8} 1 0,0 ${0},${1*n*.34}\n a${o},${o} 1 0,0 ${-1*i*.15},${1*n*.33}\n\n a${o},${o} 1 0,0 ${-1*i*.25},${n*.15}\n a${o},${o} 1 0,0 ${-1*i*.25},${0}\n a${o},${o} 1 0,0 ${-1*i*.25},${0}\n a${o},${o} 1 0,0 ${-1*i*.25},${-1*n*.15}\n\n a${o},${o} 1 0,0 ${-1*i*.1},${-1*n*.33}\n a${o*.8},${o*.8} 1 0,0 ${0},${-1*n*.34}\n a${o},${o} 1 0,0 ${i*.1},${-1*n*.33}\n\n H0 V0 Z`)}),"bangBkg");var P=(0,a.K2)((function(t,e,r){e.append("circle").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("r",r.width/2)}),"circleBkg");function k(t,e,r,i,n){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("transform","translate("+(n.width-e)/2+", "+r+")")}(0,a.K2)(k,"insertPolygonShape");var U=(0,a.K2)((function(t,e,r){const i=r.height;const n=4;const o=i/n;const a=r.width-r.padding+2*o;const s=[{x:o,y:0},{x:a-o,y:0},{x:a,y:-i/2},{x:a-o,y:-i},{x:o,y:-i},{x:0,y:-i/2}];k(e,a,i,s,r)}),"hexagonBkg");var Y=(0,a.K2)((function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("rx",r.padding).attr("ry",r.padding).attr("width",r.width)}),"roundedRectBkg");var X=(0,a.K2)((async function(t,e,r,o,a){const s=a.htmlLabels;const h=o%(x-1);const l=e.append("g");r.section=h;let c="section-"+h;if(h<0){c+=" section-root"}l.attr("class",(r.class?r.class+" ":"")+"mindmap-node "+c);const u=l.append("g");const g=l.append("g");const d=r.descr.replace(/()/g,"\n");await(0,i.GZ)(g,d,{useHtmlLabels:s,width:r.width,classes:"mindmap-node-label"},a);if(!s){g.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle")}const p=g.node().getBBox();const[f]=(0,n.I5)(a.fontSize);r.height=p.height+f*1.1*.5+r.padding;r.width=p.width+2*r.padding;if(r.icon){if(r.type===t.nodeType.CIRCLE){r.height+=50;r.width+=50;const t=l.append("foreignObject").attr("height","50px").attr("width",r.width).attr("style","text-align: center;");t.append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+h+" "+r.icon);g.attr("transform","translate("+r.width/2+", "+(r.height/2-1.5*r.padding)+")")}else{r.width+=50;const t=r.height;r.height=Math.max(t,60);const e=Math.abs(r.height-t);const i=l.append("foreignObject").attr("width","60px").attr("height",r.height).attr("style","text-align: center;margin-top:"+e/2+"px;");i.append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+h+" "+r.icon);g.attr("transform","translate("+(25+r.width/2)+", "+(e/2+r.padding/2)+")")}}else{if(!s){const t=r.width/2;const e=r.padding/2;g.attr("transform","translate("+t+", "+e+")")}else{const t=(r.width-p.width)/2;const e=(r.height-p.height)/2;g.attr("transform","translate("+t+", "+e+")")}}switch(r.type){case t.nodeType.DEFAULT:b(t,u,r,h);break;case t.nodeType.ROUNDED_RECT:Y(t,u,r,h);break;case t.nodeType.RECT:G(t,u,r,h);break;case t.nodeType.CIRCLE:u.attr("transform","translate("+r.width/2+", "+ +r.height/2+")");P(t,u,r,h);break;case t.nodeType.CLOUD:S(t,u,r,h);break;case t.nodeType.BANG:F(t,u,r,h);break;case t.nodeType.HEXAGON:U(t,u,r,h);break}t.setElementForId(r.id,l);return r.height}),"drawNode");var $=(0,a.K2)((function(t,e){const r=t.getElementById(e.id);const i=e.x||0;const n=e.y||0;r.attr("transform","translate("+i+","+n+")")}),"positionNode");s.A.use(l());async function B(t,e,r,i,n){await X(t,e,r,i,n);if(r.children){await Promise.all(r.children.map(((r,o)=>B(t,e,r,i<0?o:i,n))))}}(0,a.K2)(B,"drawNodes");function H(t,e){e.edges().map(((e,r)=>{const i=e.data();if(e[0]._private.bodyBounds){const n=e[0]._private.rscratch;a.Rm.trace("Edge: ",r,i);t.insert("path").attr("d",`M ${n.startX},${n.startY} L ${n.midX},${n.midY} L${n.endX},${n.endY} `).attr("class","edge section-edge-"+i.section+" edge-depth-"+i.depth)}}))}(0,a.K2)(H,"drawEdges");function W(t,e,r,i){e.add({group:"nodes",data:{id:t.id.toString(),labelText:t.descr,height:t.height,width:t.width,level:i,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}});if(t.children){t.children.forEach((n=>{W(n,e,r,i+1);e.add({group:"edges",data:{id:`${t.id}_${n.id}`,source:t.id,target:n.id,depth:i,section:n.section}})}))}}(0,a.K2)(W,"addNodes");function j(t,e){return new Promise((r=>{const i=(0,c.Ltv)("body").append("div").attr("id","cy").attr("style","display:none");const n=(0,s.A)({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});i.remove();W(t,n,e,0);n.nodes().forEach((function(t){t.layoutDimensions=()=>{const e=t.data();return{w:e.width,h:e.height}}}));n.layout({name:"cose-bilkent",quality:"proof",styleEnabled:false,animate:false}).run();n.ready((t=>{a.Rm.info("Ready",t);r(n)}))}))}(0,a.K2)(j,"layoutMindmap");function V(t,e){e.nodes().map(((e,r)=>{const i=e.data();i.x=e.position().x;i.y=e.position().y;$(t,i);const n=t.getElementById(i.nodeId);a.Rm.info("Id:",r,"Position: (",e.position().x,", ",e.position().y,")",i);n.attr("transform",`translate(${e.position().x-i.width/2}, ${e.position().y-i.height/2})`);n.attr("attr",`apa-${r})`)}))}(0,a.K2)(V,"positionNodes");var K=(0,a.K2)((async(t,e,r,i)=>{a.Rm.debug("Rendering mindmap diagram\n"+t);const n=i.db;const s=n.getMindmap();if(!s){return}const h=(0,a.D7)();h.htmlLabels=false;const l=(0,o.D)(e);const c=l.append("g");c.attr("class","mindmap-edges");const u=l.append("g");u.attr("class","mindmap-nodes");await B(n,u,s,-1,h);const g=await j(s,h);H(c,g);V(n,g);(0,a.ot)(void 0,l,h.mindmap?.padding??a.UI.mindmap.padding,h.mindmap?.useMaxWidth??a.UI.mindmap.useMaxWidth)}),"draw");var z={draw:K};var q=(0,a.K2)((t=>{let e="";for(let r=0;r`\n .edge {\n stroke-width: 3;\n }\n ${q(t)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${t.git0};\n }\n .section-root text {\n fill: ${t.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .mindmap-node-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n`),"getStyles");var Q=Z;var J={db:M,renderer:z,parser:f,styles:Q}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/898.ed04189e15f0a3781fb1.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/898.ed04189e15f0a3781fb1.js deleted file mode 100644 index 1a2cf71616b8389ae303e82bd058a063416c6728..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/898.ed04189e15f0a3781fb1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[898],{19163:(t,e,a)=>{a.d(e,{S:()=>n});var r=a(75905);function n(t,e){if(t.accDescr){e.setAccDescription?.(t.accDescr)}if(t.accTitle){e.setAccTitle?.(t.accTitle)}if(t.title){e.setDiagramTitle?.(t.title)}}(0,r.K2)(n,"populateCommonDb")},80898:(t,e,a)=>{a.d(e,{diagram:()=>_});var r=a(19163);var n=a(96049);var s=a(93113);var i=a(75905);var o=a(24010);var c={showLegend:true,ticks:5,max:null,min:0,graticule:"circle"};var l={axes:[],curves:[],options:c};var d=structuredClone(l);var p=i.UI.radar;var g=(0,i.K2)((()=>{const t=(0,n.$t)({...p,...(0,i.zj)().radar});return t}),"getConfig");var u=(0,i.K2)((()=>d.axes),"getAxes");var h=(0,i.K2)((()=>d.curves),"getCurves");var x=(0,i.K2)((()=>d.options),"getOptions");var m=(0,i.K2)((t=>{d.axes=t.map((t=>({name:t.name,label:t.label??t.name})))}),"setAxes");var v=(0,i.K2)((t=>{d.curves=t.map((t=>({name:t.name,label:t.label??t.name,entries:$(t.entries)})))}),"setCurves");var $=(0,i.K2)((t=>{if(t[0].axis==void 0){return t.map((t=>t.value))}const e=u();if(e.length===0){throw new Error("Axes must be populated before curves for reference entries")}return e.map((e=>{const a=t.find((t=>t.axis?.$refText===e.name));if(a===void 0){throw new Error("Missing entry for axis "+e.label)}return a.value}))}),"computeCurveEntries");var f=(0,i.K2)((t=>{const e=t.reduce(((t,e)=>{t[e.name]=e;return t}),{});d.options={showLegend:e.showLegend?.value??c.showLegend,ticks:e.ticks?.value??c.ticks,max:e.max?.value??c.max,min:e.min?.value??c.min,graticule:e.graticule?.value??c.graticule}}),"setOptions");var y=(0,i.K2)((()=>{(0,i.IU)();d=structuredClone(l)}),"clear");var b={getAxes:u,getCurves:h,getOptions:x,setAxes:m,setCurves:v,setOptions:f,getConfig:g,clear:y,setAccTitle:i.SV,getAccTitle:i.iN,setDiagramTitle:i.ke,getDiagramTitle:i.ab,getAccDescription:i.m7,setAccDescription:i.EI};var w=(0,i.K2)((t=>{(0,r.S)(t,b);const{axes:e,curves:a,options:n}=t;b.setAxes(e);b.setCurves(a);b.setOptions(n)}),"populate");var C={parse:(0,i.K2)((async t=>{const e=await(0,o.qg)("radar",t);i.Rm.debug(e);w(e)}),"parse")};var M=(0,i.K2)(((t,e,a,r)=>{const n=r.db;const i=n.getAxes();const o=n.getCurves();const c=n.getOptions();const l=n.getConfig();const d=n.getDiagramTitle();const p=(0,s.D)(e);const g=K(p,l);const u=c.max??Math.max(...o.map((t=>Math.max(...t.entries))));const h=c.min;const x=Math.min(l.width,l.height)/2;L(g,i,x,c.ticks,c.graticule);T(g,i,x,l);k(g,i,o,h,u,c.graticule,l);S(g,o,c.showLegend,l);g.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-l.height/2-l.marginTop)}),"draw");var K=(0,i.K2)(((t,e)=>{const a=e.width+e.marginLeft+e.marginRight;const r=e.height+e.marginTop+e.marginBottom;const n={x:e.marginLeft+e.width/2,y:e.marginTop+e.height/2};t.attr("viewbox",`0 0 ${a} ${r}`).attr("width",a).attr("height",r);return t.append("g").attr("transform",`translate(${n.x}, ${n.y})`)}),"drawFrame");var L=(0,i.K2)(((t,e,a,r,n)=>{if(n==="circle"){for(let e=0;e{const a=2*e*Math.PI/n-Math.PI/2;const r=i*Math.cos(a);const s=i*Math.sin(a);return`${r},${s}`})).join(" ");t.append("polygon").attr("points",o).attr("class","radarGraticule")}}}),"drawGraticule");var T=(0,i.K2)(((t,e,a,r)=>{const n=e.length;for(let s=0;s{if(e.entries.length!==o){return}const l=e.entries.map(((t,e)=>{const a=2*Math.PI*e/o-Math.PI/2;const s=A(t,r,n,c);const i=s*Math.cos(a);const l=s*Math.sin(a);return{x:i,y:l}}));if(s==="circle"){t.append("path").attr("d",O(l,i.curveTension)).attr("class",`radarCurve-${a}`)}else if(s==="polygon"){t.append("polygon").attr("points",l.map((t=>`${t.x},${t.y}`)).join(" ")).attr("class",`radarCurve-${a}`)}}))}(0,i.K2)(k,"drawCurves");function A(t,e,a,r){const n=Math.min(Math.max(t,e),a);return r*(n-e)/(a-e)}(0,i.K2)(A,"relativeRadius");function O(t,e){const a=t.length;let r=`M${t[0].x},${t[0].y}`;for(let n=0;n{const r=t.append("g").attr("transform",`translate(${n}, ${s+a*i})`);r.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${a}`);r.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(e.label)}))}(0,i.K2)(S,"drawLegend");var I={draw:M};var D=(0,i.K2)(((t,e)=>{let a="";for(let r=0;r{const e=(0,i.P$)();const a=(0,i.zj)();const r=(0,n.$t)(e,a.themeVariables);const s=(0,n.$t)(r.radar,t);return{themeVariables:r,radarOptions:s}}),"buildRadarStyleOptions");var E=(0,i.K2)((({radar:t}={})=>{const{themeVariables:e,radarOptions:a}=z(t);return`\n\t.radarTitle {\n\t\tfont-size: ${e.fontSize};\n\t\tcolor: ${e.titleColor};\n\t\tdominant-baseline: hanging;\n\t\ttext-anchor: middle;\n\t}\n\t.radarAxisLine {\n\t\tstroke: ${a.axisColor};\n\t\tstroke-width: ${a.axisStrokeWidth};\n\t}\n\t.radarAxisLabel {\n\t\tdominant-baseline: middle;\n\t\ttext-anchor: middle;\n\t\tfont-size: ${a.axisLabelFontSize}px;\n\t\tcolor: ${a.axisColor};\n\t}\n\t.radarGraticule {\n\t\tfill: ${a.graticuleColor};\n\t\tfill-opacity: ${a.graticuleOpacity};\n\t\tstroke: ${a.graticuleColor};\n\t\tstroke-width: ${a.graticuleStrokeWidth};\n\t}\n\t.radarLegendText {\n\t\ttext-anchor: start;\n\t\tfont-size: ${a.legendFontSize}px;\n\t\tdominant-baseline: hanging;\n\t}\n\t${D(e,a)}\n\t`}),"styles");var _={parser:C,db:b,renderer:I,styles:E}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8ea8791754915a898a31.woff2 b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8ea8791754915a898a31.woff2 deleted file mode 100644 index 402f81c0bc082532fca61319959cb4b8e597de9d..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8ea8791754915a898a31.woff2 and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8ea8dbb1b02e6f730f55.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8ea8dbb1b02e6f730f55.woff deleted file mode 100644 index 6496d17f5261f2f4e4cf47522441db9f9dc52ad8..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/8ea8dbb1b02e6f730f55.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9023.2ff687d7ff50df3719fc.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9023.2ff687d7ff50df3719fc.js deleted file mode 100644 index 333f0fbc38436bc1e3a69e3251b81120ca760d34..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9023.2ff687d7ff50df3719fc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9023],{99023:(e,t,n)=>{n.r(t);n.d(t,{cypher:()=>f});var r=function(e){return new RegExp("^(?:"+e.join("|")+")$","i")};var a=function(e){o=null;var t=e.next();if(t==='"'){e.match(/^.*?"/);return"string"}if(t==="'"){e.match(/^.*?'/);return"string"}if(/[{}\(\),\.;\[\]]/.test(t)){o=t;return"punctuation"}else if(t==="/"&&e.eat("/")){e.skipToEnd();return"comment"}else if(d.test(t)){e.eatWhile(d);return null}else{e.eatWhile(/[_\w\d]/);if(e.eat(":")){e.eatWhile(/[\w\d_\-]/);return"atom"}var n=e.current();if(l.test(n))return"builtin";if(c.test(n))return"def";if(u.test(n)||p.test(n))return"keyword";return"variable"}};var i=function(e,t,n){return e.context={prev:e.context,indent:e.indent,col:n,type:t}};var s=function(e){e.indent=e.context.indent;return e.context=e.context.prev};var o;var l=r(["abs","acos","allShortestPaths","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endnode","exp","extract","filter","floor","haversin","head","id","keys","labels","last","left","length","log","log10","lower","ltrim","max","min","node","nodes","percentileCont","percentileDisc","pi","radians","rand","range","reduce","rel","relationship","relationships","replace","reverse","right","round","rtrim","shortestPath","sign","sin","size","split","sqrt","startnode","stdev","stdevp","str","substring","sum","tail","tan","timestamp","toFloat","toInt","toString","trim","type","upper"]);var c=r(["all","and","any","contains","exists","has","in","none","not","or","single","xor"]);var u=r(["as","asc","ascending","assert","by","case","commit","constraint","create","csv","cypher","delete","desc","descending","detach","distinct","drop","else","end","ends","explain","false","fieldterminator","foreach","from","headers","in","index","is","join","limit","load","match","merge","null","on","optional","order","periodic","profile","remove","return","scan","set","skip","start","starts","then","true","union","unique","unwind","using","when","where","with","call","yield"]);var p=r(["access","active","assign","all","alter","as","catalog","change","copy","create","constraint","constraints","current","database","databases","dbms","default","deny","drop","element","elements","exists","from","grant","graph","graphs","if","index","indexes","label","labels","management","match","name","names","new","node","nodes","not","of","on","or","password","populated","privileges","property","read","relationship","relationships","remove","replace","required","revoke","role","roles","set","show","start","status","stop","suspended","to","traverse","type","types","user","users","with","write"]);var d=/[*+\-<>=&|~%^]/;const f={name:"cypher",startState:function(){return{tokenize:a,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()){if(t.context&&t.context.align==null){t.context.align=false}t.indent=e.indentation()}if(e.eatSpace()){return null}var n=t.tokenize(e,t);if(n!=="comment"&&t.context&&t.context.align==null&&t.context.type!=="pattern"){t.context.align=true}if(o==="("){i(t,")",e.column())}else if(o==="["){i(t,"]",e.column())}else if(o==="{"){i(t,"}",e.column())}else if(/[\]\}\)]/.test(o)){while(t.context&&t.context.type==="pattern"){s(t)}if(t.context&&o===t.context.type){s(t)}}else if(o==="."&&t.context&&t.context.type==="pattern"){s(t)}else if(/atom|string|variable/.test(n)&&t.context){if(/[\}\]]/.test(t.context.type)){i(t,"pattern",e.column())}else if(t.context.type==="pattern"&&!t.context.align){t.context.align=true;t.context.col=e.column()}}return n},indent:function(e,t,n){var r=t&&t.charAt(0);var a=e.context;if(/[\]\}]/.test(r)){while(a&&a.type==="pattern"){a=a.prev}}var i=a&&r===a.type;if(!a)return 0;if(a.type==="keywords")return null;if(a.align)return a.col+(i?0:1);return a.indent+(i?0:n.unit)}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9046.99c477ea375dcbb8c7ca.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9046.99c477ea375dcbb8c7ca.js deleted file mode 100644 index 7e2c20ba479e25629e48149d55025f4c23bad5e7..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9046.99c477ea375dcbb8c7ca.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9046,5606],{32421:(t,e,n)=>{"use strict";n.d(e,{HT:()=>c,HV:()=>s,S2:()=>o,cy:()=>d});const s=t=>t[t.length-1];const r=()=>[];const i=t=>t.slice();const o=(t,e)=>{for(let n=0;n{for(let n=0;n{for(let n=0;nt.length===e.length&&l(t,((t,n)=>t===e[n]));const u=t=>t.reduce(((t,e)=>t.concat(e)),[]);const d=Array.isArray;const f=t=>c(set.from(t));const g=(t,e)=>{const n=set.create();const s=[];for(let r=0;r{"use strict";n.d(e,{EK:()=>u,OK:()=>r,vo:()=>a});var s=n(70641);const r=(t,e,n=0)=>{try{for(;n{};const o=t=>t();const c=t=>t;const l=(t,e)=>t===e;const h=(t,e)=>t===e||t!=null&&e!=null&&t.constructor===e.constructor&&(t instanceof Array&&array.equalFlat(t,e)||typeof t==="object"&&object.equalFlat(t,e));const a=(t,e)=>{if(t==null||e==null){return l(t,e)}if(t.constructor!==e.constructor){return false}if(t===e){return true}switch(t.constructor){case ArrayBuffer:t=new Uint8Array(t);e=new Uint8Array(e);case Uint8Array:{if(t.byteLength!==e.byteLength){return false}for(let n=0;ne.includes(t)},61662:(t,e,n)=>{"use strict";n.d(e,{C:()=>r,Tj:()=>o,_4:()=>i,bz:()=>c,vt:()=>s});const s=()=>new Map;const r=t=>{const e=s();t.forEach(((t,n)=>{e.set(n,t)}));return e};const i=(t,e,n)=>{let s=t.get(e);if(s===undefined){t.set(e,s=n())}return s};const o=(t,e)=>{const n=[];for(const[s,r]of t){n.push(e(r,s))}return n};const c=(t,e)=>{for(const[n,s]of t){if(e(s,n)){return true}}return false};const l=(t,e)=>{for(const[n,s]of t){if(!e(s,n)){return false}}return true}},63616:(t,e,n)=>{"use strict";n.d(e,{RI:()=>s,T9:()=>g,jk:()=>f,sj:()=>b,tn:()=>i});const s=Math.floor;const r=Math.ceil;const i=Math.abs;const o=Math.imul;const c=Math.round;const l=Math.log10;const h=Math.log2;const a=Math.log;const u=Math.sqrt;const d=(t,e)=>t+e;const f=(t,e)=>tt>e?t:e;const p=Number.isNaN;const w=Math.pow;const m=t=>Math.pow(10,t);const y=Math.sign;const b=t=>t!==0?t<0:1/t<0},70641:(t,e,n)=>{"use strict";n.d(e,{Bw:()=>l,SQ:()=>f,i5:()=>d});const s=()=>Object.create(null);const r=Object.assign;const i=Object.keys;const o=(t,e)=>{for(const n in t){e(t[n],n)}};const c=(t,e)=>{const n=[];for(const s in t){n.push(e(t[s],s))}return n};const l=t=>i(t).length;const h=(t,e)=>{for(const n in t){if(e(t[n],n)){return true}}return false};const a=t=>{for(const e in t){return false}return true};const u=(t,e)=>{for(const n in t){if(!e(t[n],n)){return false}}return true};const d=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);const f=(t,e)=>t===e||l(t)===l(e)&&u(t,((t,n)=>(t!==undefined||d(e,n))&&e[n]===t))},5739:(t,e,n)=>{"use strict";n.d(e,{c:()=>o});var s=n(61662);var r=n(25404);var i=n(32421);class o{constructor(){this._observers=s.vt()}on(t,e){s._4(this._observers,t,r.vt).add(e)}once(t,e){const n=(...s)=>{this.off(t,n);e(...s)};this.on(t,n)}off(t,e){const n=this._observers.get(t);if(n!==undefined){n.delete(e);if(n.size===0){this._observers.delete(t)}}}emit(t,e){return i.HT((this._observers.get(t)||s.vt()).values()).forEach((t=>t(...e)))}destroy(){this._observers=s.vt()}}},25404:(t,e,n)=>{"use strict";n.d(e,{vt:()=>s});const s=()=>new Set;const r=t=>Array.from(t);const i=t=>t.values().next().value||undefined;const o=t=>new Set(t)},64191:(t,e,n)=>{"use strict";n.d(e,{_g:()=>r});const s=()=>new Date;const r=Date.now;const i=t=>{if(t<6e4){const e=metric.prefix(t,-1);return math.round(e.n*100)/100+e.prefix+"s"}t=math.floor(t/1e3);const e=t%60;const n=math.floor(t/60)%60;const s=math.floor(t/3600)%24;const r=math.floor(t/86400);if(r>0){return r+"d"+(s>0||n>30?" "+(n>30?s+1:s)+"h":"")}if(s>0){return s+"h"+(n>0||e>30?" "+(e>30?n+1:n)+"min":"")}return n+"min"+(e>0?" "+e+"s":"")}},65606:t=>{var e=t.exports={};var n;var s;function r(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){n=setTimeout}else{n=r}}catch(t){n=r}try{if(typeof clearTimeout==="function"){s=clearTimeout}else{s=i}}catch(t){s=i}})();function o(t){if(n===setTimeout){return setTimeout(t,0)}if((n===r||!n)&&setTimeout){n=setTimeout;return setTimeout(t,0)}try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}function c(t){if(s===clearTimeout){return clearTimeout(t)}if((s===i||!s)&&clearTimeout){s=clearTimeout;return clearTimeout(t)}try{return s(t)}catch(e){try{return s.call(null,t)}catch(e){return s.call(this,t)}}}var l=[];var h=false;var a;var u=-1;function d(){if(!h||!a){return}h=false;if(a.length){l=a.concat(l)}else{u=-1}if(l.length){f()}}function f(){if(h){return}var t=o(d);h=true;var e=l.length;while(e){a=l;l=[];while(++u1){for(var n=1;n{"use strict";n.r(e);n.d(e,{AbsolutePosition:()=>to,AbstractConnector:()=>Yr,AbstractStruct:()=>Al,AbstractType:()=>Tc,Array:()=>Yc,ContentAny:()=>Jl,ContentBinary:()=>Il,ContentDeleted:()=>Ul,ContentEmbed:()=>Vl,ContentFormat:()=>jl,ContentJSON:()=>Fl,ContentString:()=>Hl,ContentType:()=>eh,Doc:()=>ai,GC:()=>xl,ID:()=>zi,Item:()=>ch,Map:()=>Qc,PermanentUserData:()=>Xi,RelativePosition:()=>Gi,Snapshot:()=>ao,Text:()=>pl,Transaction:()=>No,UndoManager:()=>Ko,UpdateEncoderV1:()=>wi,XmlElement:()=>kl,XmlFragment:()=>yl,XmlHook:()=>El,XmlText:()=>Dl,YArrayEvent:()=>qc,YEvent:()=>wc,YMapEvent:()=>Gc,YTextEvent:()=>gl,YXmlEvent:()=>Sl,applyUpdate:()=>Ai,applyUpdateV2:()=>vi,cleanupYTextFormatting:()=>dl,compareIDs:()=>Ji,compareRelativePositions:()=>ho,convertUpdateFormatV1ToV2:()=>gc,convertUpdateFormatV2ToV1:()=>pc,createAbsolutePositionFromRelativePosition:()=>lo,createDeleteSet:()=>ri,createDeleteSetFromStructStore:()=>ii,createDocFromSnapshot:()=>So,createID:()=>$i,createRelativePositionFromJSON:()=>Zi,createRelativePositionFromTypeIndex:()=>so,createSnapshot:()=>mo,decodeRelativePosition:()=>co,decodeSnapshot:()=>wo,decodeSnapshotV2:()=>po,decodeStateVector:()=>Ui,decodeUpdate:()=>Qo,decodeUpdateV2:()=>Zo,diffUpdate:()=>hc,diffUpdateV2:()=>lc,emptySnapshot:()=>yo,encodeRelativePosition:()=>io,encodeSnapshot:()=>go,encodeSnapshotV2:()=>fo,encodeStateAsUpdate:()=>Ii,encodeStateAsUpdateV2:()=>xi,encodeStateVector:()=>Ri,encodeStateVectorFromUpdate:()=>sc,encodeStateVectorFromUpdateV2:()=>nc,equalSnapshots:()=>uo,findIndexSS:()=>Ao,findRootTypeKey:()=>Ki,getItem:()=>xo,getState:()=>Do,getTypeChildren:()=>vc,isDeleted:()=>ti,isParentOf:()=>qi,iterateDeletedStructs:()=>Qr,logType:()=>Yi,logUpdate:()=>Xo,logUpdateV2:()=>Go,mergeUpdates:()=>ec,mergeUpdatesV2:()=>cc,parseUpdateMeta:()=>ic,parseUpdateMetaV2:()=>rc,readUpdate:()=>Di,readUpdateV2:()=>Ci,relativePositionToJSON:()=>Qi,snapshot:()=>bo,transact:()=>Jo,tryGc:()=>Fo,typeListToArraySnapshot:()=>Mc,typeMapGetSnapshot:()=>Wc});var s=n(5739);var r=n(32421);var i=n(63616);var o=n(61662);const c=String.fromCharCode;const l=String.fromCodePoint;const h=t=>t.toLowerCase();const a=/^\s*/g;const u=t=>t.replace(a,"");const d=/([A-Z])/g;const f=(t,e)=>u(t.replace(d,(t=>`${e}${h(t)}`)));const g=t=>unescape(encodeURIComponent(t)).length;const p=t=>{const e=unescape(encodeURIComponent(t));const n=e.length;const s=new Uint8Array(n);for(let r=0;rw.encode(t);const y=w?m:p;const b=t=>{let e=t.length;let n="";let s=0;while(e>0){const r=e<1e4?e:1e4;const i=t.subarray(s,s+r);s+=r;n+=String.fromCodePoint.apply(null,i);e-=r}return decodeURIComponent(escape(n))};let k=typeof TextDecoder==="undefined"?null:new TextDecoder("utf-8",{fatal:true,ignoreBOM:true});if(k&&k.decode(new Uint8Array).length===1){k=null}const _=t=>k.decode(t);const S=null&&(k?_:b);const E=(t,e,n,s="")=>t.slice(0,e)+s+t.slice(e+n);const C=t=>t===undefined?null:t;class D{constructor(){this.map=new Map}setItem(t,e){this.map.set(t,e)}getItem(t){return this.map.get(t)}}let v=new D;let A=true;try{if(typeof localStorage!=="undefined"){v=localStorage;A=false}}catch(gh){}const T=v;const x=t=>A||addEventListener("storage",t);var I=n(53110);var M=n(65606);const U=typeof M!=="undefined"&&M.release&&/node|io\.js/.test(M.release.name);const O=typeof window!=="undefined"&&typeof document!=="undefined"&&!U;const L=typeof navigator!=="undefined"?/Mac/.test(navigator.platform):false;let N;const R=[];const V=()=>{if(N===undefined){if(U){N=o.vt();const t=M.argv;let e=null;for(let n=0;n{if(t.length!==0){const[e,n]=t.split("=");N.set(`--${f(e,"-")}`,n);N.set(`-${f(e,"-")}`,n)}}))}else{N=o.vt()}}return N};const P=t=>V().has(t);const j=(t,e)=>V().get(t)||e;const B=t=>U?C(M.env[t.toUpperCase()]):C(T.getItem(t));const F=t=>V().get("--"+t)||B(t);const z=t=>P("--"+t)||B(t)!==null;const J=z("production");const $=U&&I.EK(M.env.FORCE_COLOR,["true","1","2"]);const H=!P("no-colors")&&(!U||M.stdout.isTTY||$)&&(!U||P("color")||$||B("COLORTERM")!==null||(B("TERM")||"").includes("color"));const W=t=>new Uint8Array(t);const K=(t,e,n)=>new Uint8Array(t,e,n);const q=t=>new Uint8Array(t);const Y=t=>{let e="";for(let n=0;nBuffer.from(t.buffer,t.byteOffset,t.byteLength).toString("base64");const G=t=>{const e=atob(t);const n=W(e.length);for(let s=0;s{const e=Buffer.from(t,"base64");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)};const Z=O?Y:X;const tt=O?G:Q;const et=t=>{const e=W(t.byteLength);e.set(t);return e};const nt=t=>{const e=encoding.createEncoder();encoding.writeAny(e,t);return encoding.toUint8Array(e)};const st=t=>decoding.readAny(decoding.createDecoder(t));const rt=1;const it=2;const ot=4;const ct=8;const lt=16;const ht=32;const at=64;const ut=128;const dt=256;const ft=512;const gt=1024;const pt=2048;const wt=4096;const mt=8192;const yt=16384;const bt=32768;const kt=65536;const _t=1<<17;const St=1<<18;const Et=1<<19;const Ct=1<<20;const Dt=1<<21;const vt=1<<22;const At=1<<23;const Tt=1<<24;const xt=1<<25;const It=1<<26;const Mt=1<<27;const Ut=1<<28;const Ot=1<<29;const Lt=1<<30;const Nt=null&&1<<31;const Rt=0;const Vt=1;const Pt=3;const jt=7;const Bt=15;const Ft=31;const zt=63;const Jt=127;const $t=255;const Ht=511;const Wt=1023;const Kt=2047;const qt=4095;const Yt=8191;const Xt=16383;const Gt=32767;const Qt=65535;const Zt=_t-1;const te=St-1;const ee=Et-1;const ne=Ct-1;const se=Dt-1;const re=vt-1;const ie=At-1;const oe=Tt-1;const ce=xt-1;const le=It-1;const he=Mt-1;const ae=Ut-1;const ue=Ot-1;const de=Lt-1;const fe=2147483647;const ge=4294967295;const pe=Number.MAX_SAFE_INTEGER;const we=Number.MIN_SAFE_INTEGER;const me=null&&1<<31;const ye=fe;const be=Number.isInteger||(t=>typeof t==="number"&&isFinite(t)&&i.RI(t)===t);const ke=Number.isNaN;const _e=Number.parseInt;class Se{constructor(){this.cpos=0;this.cbuf=new Uint8Array(100);this.bufs=[]}}const Ee=()=>new Se;const Ce=t=>{let e=t.cpos;for(let n=0;n{const e=new Uint8Array(Ce(t));let n=0;for(let s=0;s{const n=t.cbuf.length;if(n-t.cpos{const n=t.cbuf.length;if(t.cpos===n){t.bufs.push(t.cbuf);t.cbuf=new Uint8Array(n*2);t.cpos=0}t.cbuf[t.cpos++]=e};const Te=(t,e,n)=>{let s=null;for(let r=0;r{Ae(t,e&binary.BITS8);Ae(t,e>>>8&binary.BITS8)};const Ue=(t,e,n)=>{Te(t,e,n&binary.BITS8);Te(t,e+1,n>>>8&binary.BITS8)};const Oe=(t,e)=>{for(let n=0;n<4;n++){Ae(t,e&binary.BITS8);e>>>=8}};const Le=(t,e)=>{for(let n=3;n>=0;n--){Ae(t,e>>>8*n&binary.BITS8)}};const Ne=(t,e,n)=>{for(let s=0;s<4;s++){Te(t,e+s,n&binary.BITS8);n>>>=8}};const Re=(t,e)=>{while(e>Jt){Ae(t,ut|Jt&e);e=i.RI(e/128)}Ae(t,Jt&e)};const Ve=(t,e)=>{const n=i.sj(e);if(n){e=-e}Ae(t,(e>zt?ut:0)|(n?at:0)|zt&e);e=i.RI(e/64);while(e>0){Ae(t,(e>Jt?ut:0)|Jt&e);e=i.RI(e/128)}};const Pe=new Uint8Array(3e4);const je=Pe.length/3;const Be=(t,e)=>{if(e.length{const n=unescape(encodeURIComponent(e));const s=n.length;Re(t,s);for(let r=0;r$e(t,De(e));const $e=(t,e)=>{const n=t.cbuf.length;const s=t.cpos;const r=i.jk(n-s,e.length);const o=e.length-r;t.cbuf.set(e.subarray(0,r),s);t.cpos+=r;if(o>0){t.bufs.push(t.cbuf);t.cbuf=new Uint8Array(i.T9(n*2,o));t.cbuf.set(e.subarray(r));t.cpos=o}};const He=(t,e)=>{Re(t,e.byteLength);$e(t,e)};const We=(t,e)=>{ve(t,e);const n=new DataView(t.cbuf.buffer,t.cpos,e);t.cpos+=e;return n};const Ke=(t,e)=>We(t,4).setFloat32(0,e,false);const qe=(t,e)=>We(t,8).setFloat64(0,e,false);const Ye=(t,e)=>We(t,8).setBigInt64(0,e,false);const Xe=(t,e)=>We(t,8).setBigUint64(0,e,false);const Ge=new DataView(new ArrayBuffer(4));const Qe=t=>{Ge.setFloat32(0,t);return Ge.getFloat32(0)===t};const Ze=(t,e)=>{switch(typeof e){case"string":Ae(t,119);ze(t,e);break;case"number":if(be(e)&&i.tn(e)<=fe){Ae(t,125);Ve(t,e)}else if(Qe(e)){Ae(t,124);Ke(t,e)}else{Ae(t,123);qe(t,e)}break;case"bigint":Ae(t,122);Ye(t,e);break;case"object":if(e===null){Ae(t,126)}else if(e instanceof Array){Ae(t,117);Re(t,e.length);for(let n=0;n0){Re(this,this.count-1)}this.count=1;this.w(this,t);this.s=t}}}class en extends Se{constructor(t){super();this.s=t}write(t){Ve(this,t-this.s);this.s=t}}class nn extends Se{constructor(t){super();this.s=t;this.count=0}write(t){if(this.s===t&&this.count>0){this.count++}else{if(this.count>0){Re(this,this.count-1)}this.count=1;Ve(this,t-this.s);this.s=t}}}const sn=t=>{if(t.count>0){Ve(t.encoder,t.count===1?t.s:-t.s);if(t.count>1){Re(t.encoder,t.count-2)}}};class rn{constructor(){this.encoder=new Se;this.s=0;this.count=0}write(t){if(this.s===t){this.count++}else{sn(this);this.count=1;this.s=t}}toUint8Array(){sn(this);return De(this.encoder)}}class on{constructor(){this.encoder=new Se;this.s=0;this.count=0}write(t){if(this.s+this.count===t){this.count++}else{sn(this);this.count=1;this.s=t}}toUint8Array(){sn(this);return De(this.encoder)}}const cn=t=>{if(t.count>0){const e=t.diff*2+(t.count===1?0:1);Ve(t.encoder,e);if(t.count>1){Re(t.encoder,t.count-2)}}};class ln{constructor(){this.encoder=new Se;this.s=0;this.count=0;this.diff=0}write(t){if(this.diff===t-this.s){this.s=t;this.count++}else{cn(this);this.count=1;this.diff=t-this.s;this.s=t}}toUint8Array(){cn(this);return De(this.encoder)}}class hn{constructor(){this.sarr=[];this.s="";this.lensE=new rn}write(t){this.s+=t;if(this.s.length>19){this.sarr.push(this.s);this.s=""}this.lensE.write(t.length)}toUint8Array(){const t=new Se;this.sarr.push(this.s);this.s="";ze(t,this.sarr.join(""));$e(t,this.lensE.toUint8Array());return De(t)}}const an=t=>new Error(t);const un=()=>{throw an("Method unimplemented")};const dn=()=>{throw an("Unexpected case")};const fn=an("Unexpected end of array");const gn=an("Integer out of Range");class pn{constructor(t){this.arr=t;this.pos=0}}const wn=t=>new pn(t);const mn=t=>t.pos!==t.arr.length;const yn=(t,e=t.pos)=>{const n=wn(t.arr);n.pos=e;return n};const bn=(t,e)=>{const n=K(t.arr.buffer,t.pos+t.arr.byteOffset,e);t.pos+=e;return n};const kn=t=>bn(t,In(t));const _n=t=>bn(t,t.arr.length-t.pos);const Sn=t=>t.pos++;const En=t=>t.arr[t.pos++];const Cn=t=>{const e=t.arr[t.pos]+(t.arr[t.pos+1]<<8);t.pos+=2;return e};const Dn=t=>{const e=t.arr[t.pos]+(t.arr[t.pos+1]<<8)+(t.arr[t.pos+2]<<16)+(t.arr[t.pos+3]<<24)>>>0;t.pos+=4;return e};const vn=t=>{const e=t.arr[t.pos+3]+(t.arr[t.pos+2]<<8)+(t.arr[t.pos+1]<<16)+(t.arr[t.pos]<<24)>>>0;t.pos+=4;return e};const An=t=>t.arr[t.pos];const Tn=t=>t.arr[t.pos]+(t.arr[t.pos+1]<<8);const xn=t=>t.arr[t.pos]+(t.arr[t.pos+1]<<8)+(t.arr[t.pos+2]<<16)+(t.arr[t.pos+3]<<24)>>>0;const In=t=>{let e=0;let n=1;const s=t.arr.length;while(t.pospe){throw gn}}throw fn};const Mn=t=>{let e=t.arr[t.pos++];let n=e&zt;let s=64;const r=(e&at)>0?-1:1;if((e&ut)===0){return r*n}const i=t.arr.length;while(t.pospe){throw gn}}throw fn};const Un=t=>{const e=t.pos;const n=In(t);t.pos=e;return n};const On=t=>{const e=t.pos;const n=Mn(t);t.pos=e;return n};const Ln=t=>{let e=In(t);if(e===0){return""}else{let n=String.fromCodePoint(En(t));if(--e<100){while(e--){n+=String.fromCodePoint(En(t))}}else{while(e>0){const s=e<1e4?e:1e4;const r=t.arr.subarray(t.pos,t.pos+s);t.pos+=s;n+=String.fromCodePoint.apply(null,r);e-=s}}return decodeURIComponent(escape(n))}};const Nn=t=>k.decode(kn(t));const Rn=k?Nn:Ln;const Vn=t=>{const e=t.pos;const n=Rn(t);t.pos=e;return n};const Pn=(t,e)=>{const n=new DataView(t.arr.buffer,t.arr.byteOffset+t.pos,e);t.pos+=e;return n};const jn=t=>Pn(t,4).getFloat32(0,false);const Bn=t=>Pn(t,8).getFloat64(0,false);const Fn=t=>Pn(t,8).getBigInt64(0,false);const zn=t=>Pn(t,8).getBigUint64(0,false);const Jn=[t=>undefined,t=>null,Mn,jn,Bn,Fn,t=>false,t=>true,Rn,t=>{const e=In(t);const n={};for(let s=0;s{const e=In(t);const n=[];for(let s=0;sJn[127-En(t)](t);class Hn extends pn{constructor(t,e){super(t);this.reader=e;this.s=null;this.count=0}read(){if(this.count===0){this.s=this.reader(this);if(mn(this)){this.count=In(this)+1}else{this.count=-1}}this.count--;return this.s}}class Wn extends pn{constructor(t,e){super(t);this.s=e}read(){this.s+=Mn(this);return this.s}}class Kn extends pn{constructor(t,e){super(t);this.s=e;this.count=0}read(){if(this.count===0){this.s+=Mn(this);if(mn(this)){this.count=In(this)+1}else{this.count=-1}}this.count--;return this.s}}class qn extends pn{constructor(t){super(t);this.s=0;this.count=0}read(){if(this.count===0){this.s=Mn(this);const t=i.sj(this.s);this.count=1;if(t){this.s=-this.s;this.count=In(this)+2}}this.count--;return this.s}}class Yn extends pn{constructor(t){super(t);this.s=0;this.count=0}read(){if(this.count===0){this.s=Mn(this);const t=i.sj(this.s);this.count=1;if(t){this.s=-this.s;this.count=In(this)+2}}this.count--;return this.s++}}class Xn extends pn{constructor(t){super(t);this.s=0;this.count=0;this.diff=0}read(){if(this.count===0){const t=Mn(this);const e=t&1;this.diff=i.RI(t/2);this.count=1;if(e){this.count=In(this)+2}}this.s+=this.diff;this.count--;return this.s}}class Gn{constructor(t){this.decoder=new qn(t);this.str=Rn(this.decoder);this.spos=0}read(){const t=this.spos+this.decoder.read();const e=this.str.slice(this.spos,t);this.spos=t;return e}}const Qn=typeof window==="undefined"?null:typeof window.performance!=="undefined"&&window.performance||null;const Zn=typeof crypto==="undefined"?null:crypto;const ts=Zn!==null?t=>{const e=new ArrayBuffer(t);const n=new Uint8Array(e);Zn.getRandomValues(n);return e}:t=>{const e=new ArrayBuffer(t);const n=new Uint8Array(e);for(let s=0;s>>0)}return e};const es=Math.random;const ns=()=>new Uint32Array(ts(4))[0];const ss=()=>{const t=new Uint32Array(cryptoRandomBuffer(8));return(t[0]&binary.BITS21)*(binary.BITS32+1)+(t[1]>>>0)};const rs=t=>t[math.floor(es()*t.length)];const is=[1e7]+-1e3+-4e3+-8e3+-1e11;const os=()=>is.replace(/[018]/g,(t=>(t^ns()&15>>t/4).toString(16)));const cs=t=>new Promise(t);const ls=t=>new Promise(t);const hs=t=>Promise.all(t);const as=t=>Promise.reject(t);const us=t=>Promise.resolve(t);const ds=t=>Promise.resolve(t);const fs=(t,e,n=10)=>cs(((s,r)=>{const i=time.getUnixTime();const o=t>0;const c=()=>{if(e()){clearInterval(l);s()}else if(o){if(time.getUnixTime()-i>t){clearInterval(l);r(new Error("Timeout"))}}};const l=setInterval(c,n)}));const gs=t=>cs(((e,n)=>setTimeout(e,t)));const ps=t=>t instanceof Promise||t&&t.then&&t.catch&&t.finally;var ws=n(25404);const ms=Symbol;const ys=t=>typeof t==="symbol";class bs{constructor(t,e){this.left=t;this.right=e}}const ks=(t,e)=>new bs(t,e);const _s=(t,e)=>new bs(e,t);const Ss=(t,e)=>t.forEach((t=>e(t.left,t.right)));const Es=(t,e)=>t.map((t=>e(t.left,t.right)));const Cs=typeof document!=="undefined"?document:{};const Ds=t=>Cs.createElement(t);const vs=()=>Cs.createDocumentFragment();const As=t=>Cs.createTextNode(t);const Ts=typeof DOMParser!=="undefined"?new DOMParser:null;const xs=(t,e,n)=>t.dispatchEvent(new CustomEvent(e,n));const Is=(t,e)=>{pair.forEach(e,((e,n)=>{if(n===false){t.removeAttribute(e)}else if(n===true){t.setAttribute(e,"")}else{t.setAttribute(e,n)}}));return t};const Ms=(t,e)=>{e.forEach(((e,n)=>{t.setAttribute(n,e)}));return t};const Us=t=>{const e=vs();for(let n=0;n{Zs(t,Us(e));return t};const Ls=t=>t.remove();const Ns=(t,e,n)=>t.addEventListener(e,n);const Rs=(t,e,n)=>t.removeEventListener(e,n);const Vs=(t,e)=>{pair.forEach(e,((e,n)=>Ns(t,e,n)));return t};const Ps=(t,e)=>{pair.forEach(e,((e,n)=>Rs(t,e,n)));return t};const js=(t,e=[],n=[])=>Os(Is(Ds(t),e),n);const Bs=(t,e)=>{const n=Ds("canvas");n.height=e;n.width=t;return n};const Fs=null&&As;const zs=t=>`${t.left}:${t.right};`;const Js=t=>t.map(zs).join("");const $s=t=>o.Tj(t,((t,e)=>`${e}:${t};`)).join("");const Hs=(t,e)=>t.querySelector(e);const Ws=(t,e)=>t.querySelectorAll(e);const Ks=t=>Cs.getElementById(t);const qs=t=>Ts.parseFromString(`${t}`,"text/html").body;const Ys=t=>Us(qs(t).childNodes);const Xs=t=>qs(t).firstElementChild;const Gs=(t,e)=>t.replaceWith(e);const Qs=(t,e,n)=>t.insertBefore(e,n);const Zs=(t,e)=>t.appendChild(e);const tr=Cs.ELEMENT_NODE;const er=Cs.TEXT_NODE;const nr=Cs.CDATA_SECTION_NODE;const sr=Cs.COMMENT_NODE;const rr=Cs.DOCUMENT_NODE;const ir=Cs.DOCUMENT_TYPE_NODE;const or=Cs.DOCUMENT_FRAGMENT_NODE;const cr=(t,e)=>t.nodeType===e;const lr=(t,e)=>{let n=e.parentNode;while(n&&n!==t){n=n.parentNode}return n===t};var hr=n(64191);const ar=ms();const ur=ms();const dr=ms();const fr=ms();const gr=ms();const pr=ms();const wr=ms();const mr=ms();const yr=ms();const br={[ar]:ks("font-weight","bold"),[ur]:ks("font-weight","normal"),[dr]:ks("color","blue"),[gr]:ks("color","green"),[fr]:ks("color","grey"),[pr]:ks("color","red"),[wr]:ks("color","purple"),[mr]:ks("color","orange"),[yr]:ks("color","black")};const kr={[ar]:"",[ur]:"",[dr]:"",[gr]:"",[fr]:"",[pr]:"",[wr]:"",[mr]:"",[yr]:""};const _r=t=>{const e=[];const n=[];const s=o.vt();let r=[];let i=0;for(;i0||t.length>0){e.push("%c"+r);n.push(t)}else{e.push(r)}}else{break}}}if(i>0){r=n;r.unshift(e.join(""))}for(;i{const e=[];const n=[];let s=0;for(;s0){n.push(e.join(""))}for(;s{const e=[];const n=[];let s=0;for(;s0){e.push("");n.push(e.join(""))}for(;s{console.log(...Cr(t));Nr.forEach((e=>e.print(t)))};const vr=(...t)=>{console.warn(...Cr(t));t.unshift(mr);Nr.forEach((e=>e.print(t)))};const Ar=t=>{console.error(t);Nr.forEach((e=>e.printError(t)))};const Tr=(t,e)=>{if(env.isBrowser){console.log("%c ",`font-size: ${e}px; background-size: contain; background-repeat: no-repeat; background-image: url(${t})`)}Nr.forEach((n=>n.printImg(t,e)))};const xr=(t,e)=>Tr(`data:image/gif;base64,${t}`,e);const Ir=(...t)=>{console.group(...Cr(t));Nr.forEach((e=>e.group(t)))};const Mr=(...t)=>{console.groupCollapsed(...Cr(t));Nr.forEach((e=>e.groupCollapsed(t)))};const Ur=()=>{console.groupEnd();Nr.forEach((t=>t.groupEnd()))};const Or=t=>Nr.forEach((e=>e.printDom(t())));const Lr=(t,e)=>Tr(t.toDataURL(),e);const Nr=ws.vt();const Rr=t=>{const e=[];const n=new Map;let s=0;for(;s{const n=dom.element("span",[pair.create("hidden",e),pair.create("style","color:grey;font-size:120%;")],[dom.text("▼")]);const s=dom.element("span",[pair.create("hidden",!e),pair.create("style","color:grey;font-size:125%;")],[dom.text("▶")]);const r=dom.element("div",[pair.create("style",`${Vr};padding-left:${this.depth*10}px`)],[n,s,dom.text(" ")].concat(Rr(t)));const i=dom.element("div",[pair.create("hidden",e)]);const o=dom.element("div",[],[r,i]);dom.append(this.ccontainer,[o]);this.ccontainer=i;this.depth++;dom.addEventListener(r,"click",(t=>{i.toggleAttribute("hidden");n.toggleAttribute("hidden");s.toggleAttribute("hidden")}))}))}groupCollapsed(t){this.group(t,true)}groupEnd(){eventloop.enqueue((()=>{if(this.depth>0){this.depth--;this.ccontainer=this.ccontainer.parentElement.parentElement}}))}print(t){eventloop.enqueue((()=>{dom.append(this.ccontainer,[dom.element("div",[pair.create("style",`${Vr};padding-left:${this.depth*10}px`)],Rr(t))])}))}printError(t){this.print([pr,ar,t.toString()])}printImg(t,e){eventloop.enqueue((()=>{dom.append(this.ccontainer,[dom.element("img",[pair.create("src",t),pair.create("height",`${math.round(e*1.5)}px`)])])}))}printDom(t){eventloop.enqueue((()=>{dom.append(this.ccontainer,[t])}))}destroy(){eventloop.enqueue((()=>{Nr.delete(this)}))}}const jr=t=>new Pr(t);const Br=[gr,wr,mr,dr];let Fr=0;let zr=hr._g();const Jr=t=>{const e=Br[Fr];const n=env.getVariable("log");const s=n!==null&&(n==="*"||n==="true"||new RegExp(n,"gi").test(t));Fr=(Fr+1)%Br.length;t+=": ";return!s?func.nop:(...n)=>{const s=time.getUnixTime();const r=s-zr;zr=s;Dr(e,t,yr,...n.map((t=>typeof t==="string"||typeof t==="symbol"?t:JSON.stringify(t))),e," +"+r+"ms")}};const $r=(t,e)=>({[Symbol.iterator](){return this},next(){const n=t.next();return{value:n.done?undefined:e(n.value),done:n.done}}});const Hr=t=>({[Symbol.iterator](){return this},next:t});const Wr=(t,e)=>Hr((()=>{let n;do{n=t.next()}while(!n.done&&!e(n.value));return n}));const Kr=(t,e)=>Hr((()=>{const{done:n,value:s}=t.next();return{done:n,value:n?undefined:e(s)}}));var qr=n(70641);class Yr extends s.c{constructor(t,e){super();this.doc=t;this.awareness=e}}class Xr{constructor(t,e){this.clock=t;this.len=e}}class Gr{constructor(){this.clients=new Map}}const Qr=(t,e,n)=>e.clients.forEach(((e,s)=>{const r=t.doc.store.clients.get(s);for(let i=0;i{let n=0;let s=t.length-1;while(n<=s){const r=i.RI((n+s)/2);const o=t[r];const c=o.clock;if(c<=e){if(e{const n=t.clients.get(e.client);return n!==undefined&&Zr(n,e.clock)!==null};const ei=t=>{t.clients.forEach((t=>{t.sort(((t,e)=>t.clock-e.clock));let e,n;for(e=1,n=1;e=r.clock){s.len=i.T9(s.len,r.clock+r.len-s.clock)}else{if(n{const e=new Gr;for(let n=0;n{if(!e.clients.has(i)){const o=s.slice();for(let e=n+1;e{o._4(t.clients,e,(()=>[])).push(new Xr(n,s))};const ri=()=>new Gr;const ii=t=>{const e=ri();t.clients.forEach(((t,n)=>{const s=[];for(let e=0;e0){e.clients.set(n,s)}}));return e};const oi=(t,e)=>{Re(t.restEncoder,e.clients.size);r.HT(e.clients.entries()).sort(((t,e)=>e[0]-t[0])).forEach((([e,n])=>{t.resetDsCurVal();Re(t.restEncoder,e);const s=n.length;Re(t.restEncoder,s);for(let r=0;r{const e=new Gr;const n=In(t.restDecoder);for(let s=0;s0){const r=o._4(e.clients,n,(()=>[]));for(let e=0;e{const s=new Gr;const r=In(t.restDecoder);for(let i=0;i0){const t=new yi;Re(t.restEncoder,0);oi(t,s);return t.toUint8Array()}return null};const hi=ns;class ai extends s.c{constructor({guid:t=os(),collectionid:e=null,gc:n=true,gcFilter:s=()=>true,meta:r=null,autoLoad:i=false,shouldLoad:o=true}={}){super();this.gc=n;this.gcFilter=s;this.clientID=hi();this.guid=t;this.collectionid=e;this.share=new Map;this.store=new Eo;this._transaction=null;this._transactionCleanups=[];this.subdocs=new Set;this._item=null;this.shouldLoad=o;this.autoLoad=i;this.meta=r;this.isLoaded=false;this.isSynced=false;this.whenLoaded=cs((t=>{this.on("load",(()=>{this.isLoaded=true;t(this)}))}));const c=()=>cs((t=>{const e=n=>{if(n===undefined||n===true){this.off("sync",e);t()}};this.on("sync",e)}));this.on("sync",(t=>{if(t===false&&this.isSynced){this.whenSynced=c()}this.isSynced=t===undefined||t===true;if(!this.isLoaded){this.emit("load",[])}}));this.whenSynced=c()}load(){const t=this._item;if(t!==null&&!this.shouldLoad){Jo(t.parent.doc,(t=>{t.subdocsLoaded.add(this)}),null,true)}this.shouldLoad=true}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(r.HT(this.subdocs).map((t=>t.guid)))}transact(t,e=null){Jo(this,t,e)}get(t,e=Tc){const n=o._4(this.share,t,(()=>{const t=new e;t._integrate(this,null);return t}));const s=n.constructor;if(e!==Tc&&s!==e){if(s===Tc){const s=new e;s._map=n._map;n._map.forEach((t=>{for(;t!==null;t=t.left){t.parent=s}}));s._start=n._start;for(let t=s._start;t!==null;t=t.right){t.parent=s}s._length=n._length;this.share.set(t,s);s._integrate(this,null);return s}else{throw new Error(`Type with the name ${t} has already been defined with a different constructor`)}}return n}getArray(t=""){return this.get(t,Yc)}getText(t=""){return this.get(t,pl)}getMap(t=""){return this.get(t,Qc)}getXmlFragment(t=""){return this.get(t,yl)}toJSON(){const t={};this.share.forEach(((e,n)=>{t[n]=e.toJSON()}));return t}destroy(){r.HT(this.subdocs).forEach((t=>t.destroy()));const t=this._item;if(t!==null){this._item=null;const e=t.content;e.doc=new ai({guid:this.guid,...e.opts,shouldLoad:false});e.doc._item=t;Jo(t.parent.doc,(n=>{const s=e.doc;if(!t.deleted){n.subdocsAdded.add(s)}n.subdocsRemoved.add(this)}),null,true)}this.emit("destroyed",[true]);this.emit("destroy",[this]);super.destroy()}on(t,e){super.on(t,e)}off(t,e){super.off(t,e)}}class ui{constructor(t){this.restDecoder=t}resetDsCurVal(){}readDsClock(){return In(this.restDecoder)}readDsLen(){return In(this.restDecoder)}}class di extends ui{readLeftID(){return $i(In(this.restDecoder),In(this.restDecoder))}readRightID(){return $i(In(this.restDecoder),In(this.restDecoder))}readClient(){return In(this.restDecoder)}readInfo(){return En(this.restDecoder)}readString(){return Rn(this.restDecoder)}readParentInfo(){return In(this.restDecoder)===1}readTypeRef(){return In(this.restDecoder)}readLen(){return In(this.restDecoder)}readAny(){return $n(this.restDecoder)}readBuf(){return et(kn(this.restDecoder))}readJSON(){return JSON.parse(Rn(this.restDecoder))}readKey(){return Rn(this.restDecoder)}}class fi{constructor(t){this.dsCurrVal=0;this.restDecoder=t}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){this.dsCurrVal+=In(this.restDecoder);return this.dsCurrVal}readDsLen(){const t=In(this.restDecoder)+1;this.dsCurrVal+=t;return t}}class gi extends fi{constructor(t){super(t);this.keys=[];In(t);this.keyClockDecoder=new Xn(kn(t));this.clientDecoder=new qn(kn(t));this.leftClockDecoder=new Xn(kn(t));this.rightClockDecoder=new Xn(kn(t));this.infoDecoder=new Hn(kn(t),En);this.stringDecoder=new Gn(kn(t));this.parentInfoDecoder=new Hn(kn(t),En);this.typeRefDecoder=new qn(kn(t));this.lenDecoder=new qn(kn(t))}readLeftID(){return new zi(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new zi(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return this.parentInfoDecoder.read()===1}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return $n(this.restDecoder)}readBuf(){return kn(this.restDecoder)}readJSON(){return $n(this.restDecoder)}readKey(){const t=this.keyClockDecoder.read();if(t{s=i.T9(s,e[0].id.clock);const r=Ao(e,s);Re(t.restEncoder,e.length-r);t.writeClient(n);Re(t.restEncoder,s);const o=e[r];o.write(t,s-o.id.clock);for(let i=r+1;i{const s=new Map;n.forEach(((t,n)=>{if(Do(e,n)>t){s.set(n,t)}}));Co(e).forEach(((t,e)=>{if(!n.has(e)){s.set(e,0)}}));Re(t.restEncoder,s.size);r.HT(s.entries()).sort(((t,e)=>e[0]-t[0])).forEach((([n,s])=>{bi(t,e.clients.get(n),n,s)}))};const _i=(t,e)=>{const n=o.vt();const s=In(t.restDecoder);for(let r=0;r{const s=[];let i=r.HT(n.keys()).sort(((t,e)=>t-e));if(i.length===0){return null}const c=()=>{if(i.length===0){return null}let t=n.get(i[i.length-1]);while(t.refs.length===t.i){i.pop();if(i.length>0){t=n.get(i[i.length-1])}else{return null}}return t};let l=c();if(l===null&&s.length===0){return null}const h=new Eo;const a=new Map;const u=(t,e)=>{const n=a.get(t);if(n==null||n>e){a.set(t,e)}};let d=l.refs[l.i++];const f=new Map;const g=()=>{for(const t of s){const e=t.id.client;const s=n.get(e);if(s){s.i--;h.clients.set(e,s.refs.slice(s.i));n.delete(e);s.i=0;s.refs=[]}else{h.clients.set(e,[t])}i=i.filter((t=>t!==e))}s.length=0};while(true){if(d.constructor!==uh){const r=o._4(f,d.id.client,(()=>Do(e,d.id.client)));const i=r-d.id.clock;if(i<0){s.push(d);u(d.id.client,d.id.clock-1);g()}else{const r=d.getMissing(t,e);if(r!==null){s.push(d);const t=n.get(r)||{refs:[],i:0};if(t.refs.length===t.i){u(r,Do(e,r));g()}else{d=t.refs[t.i++];continue}}else if(i===0||i0){d=s.pop()}else if(l!==null&&l.i0){const t=new yi;ki(t,h,new Map);Re(t.restEncoder,0);return{missing:a,update:t.toUint8Array()}}return null};const Ei=(t,e)=>ki(t,e.doc.store,e.beforeState);const Ci=(t,e,n,s=new gi(t))=>Jo(e,(t=>{t.local=false;let e=false;const n=t.doc;const r=n.store;const i=_i(s,n);const o=Si(t,r,i);const c=r.pendingStructs;if(c){for(const[t,n]of c.missing){if(ne){c.missing.set(t,e)}}c.update=cc([c.update,o.update])}}else{r.pendingStructs=o}const l=li(s,t,r);if(r.pendingDs){const e=new gi(wn(r.pendingDs));In(e.restDecoder);const n=li(e,t,r);if(l&&n){r.pendingDs=cc([l,n])}else{r.pendingDs=l||n}}else{r.pendingDs=l}if(e){const e=r.pendingStructs.update;r.pendingStructs=null;vi(t.doc,e)}}),n,false);const Di=(t,e,n)=>Ci(t,e,n,new di(t));const vi=(t,e,n,s=gi)=>{const r=wn(e);Ci(r,t,n,new s(r))};const Ai=(t,e,n)=>vi(t,e,n,di);const Ti=(t,e,n=new Map)=>{ki(t,e.store,n);oi(t,ii(e.store))};const xi=(t,e=new Uint8Array([0]),n=new yi)=>{const s=Ui(e);Ti(n,t,s);const r=[n.toUint8Array()];if(t.store.pendingDs){r.push(t.store.pendingDs)}if(t.store.pendingStructs){r.push(lc(t.store.pendingStructs.update,e))}if(r.length>1){if(n.constructor===wi){return ec(r.map(((t,e)=>e===0?t:pc(t))))}else if(n.constructor===yi){return cc(r)}}return r[0]};const Ii=(t,e)=>xi(t,e,new wi);const Mi=t=>{const e=new Map;const n=In(t.restDecoder);for(let s=0;sMi(new ui(wn(t)));const Oi=(t,e)=>{Re(t.restEncoder,e.size);r.HT(e.entries()).sort(((t,e)=>e[0]-t[0])).forEach((([e,n])=>{Re(t.restEncoder,e);Re(t.restEncoder,n)}));return t};const Li=(t,e)=>Oi(t,Co(e.store));const Ni=(t,e=new mi)=>{if(t instanceof Map){Oi(e,t)}else{Li(e,t)}return e.toUint8Array()};const Ri=t=>Ni(t,new pi);class Vi{constructor(){this.l=[]}}const Pi=()=>new Vi;const ji=(t,e)=>t.l.push(e);const Bi=(t,e)=>{const n=t.l;const s=n.length;t.l=n.filter((t=>e!==t));if(s===t.l.length){console.error("[yjs] Tried to remove event handler that doesn't exist.")}};const Fi=(t,e,n)=>I.OK(t.l,[e,n]);class zi{constructor(t,e){this.client=t;this.clock=e}}const Ji=(t,e)=>t===e||t!==null&&e!==null&&t.client===e.client&&t.clock===e.clock;const $i=(t,e)=>new zi(t,e);const Hi=(t,e)=>{Re(t,e.client);Re(t,e.clock)};const Wi=t=>$i(In(t),In(t));const Ki=t=>{for(const[e,n]of t.doc.share.entries()){if(n===t){return e}}throw dn()};const qi=(t,e)=>{while(e!==null){if(e.parent===t){return true}e=e.parent._item}return false};const Yi=t=>{const e=[];let n=t._start;while(n){e.push(n);n=n.right}console.log("Children: ",e);console.log("Children content: ",e.filter((t=>!t.deleted)).map((t=>t.content)))};class Xi{constructor(t,e=t.getMap("users")){const n=new Map;this.yusers=e;this.doc=t;this.clients=new Map;this.dss=n;const s=(t,e)=>{const n=t.get("ds");const s=t.get("ids");const r=t=>this.clients.set(t,e);n.observe((t=>{t.changes.added.forEach((t=>{t.content.getContent().forEach((t=>{if(t instanceof Uint8Array){this.dss.set(e,ni([this.dss.get(e)||ri(),ci(new ui(wn(t)))]))}}))}))}));this.dss.set(e,ni(n.map((t=>ci(new ui(wn(t)))))));s.observe((t=>t.changes.added.forEach((t=>t.content.getContent().forEach(r)))));s.forEach(r)};e.observe((t=>{t.keysChanged.forEach((t=>s(e.get(t),t)))}));e.forEach(s)}setUserMapping(t,e,n,{filter:s=()=>true}={}){const r=this.yusers;let i=r.get(n);if(!i){i=new Qc;i.set("ids",new Yc);i.set("ds",new Yc);r.set(n,i)}i.get("ids").push([e]);r.observe((t=>{setTimeout((()=>{const t=r.get(n);if(t!==i){i=t;this.clients.forEach(((t,e)=>{if(n===t){i.get("ids").push([e])}}));const e=new pi;const s=this.dss.get(n);if(s){oi(e,s);i.get("ds").push([e.toUint8Array()])}}}),0)}));t.on("afterTransaction",(t=>{setTimeout((()=>{const e=i.get("ds");const n=t.deleteSet;if(t.local&&n.clients.size>0&&s(t,n)){const t=new pi;oi(t,n);e.push([t.toUint8Array()])}}))}))}getUserByClientId(t){return this.clients.get(t)||null}getUserByDeletedId(t){for(const[e,n]of this.dss.entries()){if(ti(n,t)){return e}}return null}}class Gi{constructor(t,e,n,s=0){this.type=t;this.tname=e;this.item=n;this.assoc=s}}const Qi=t=>{const e={};if(t.type){e.type=t.type}if(t.tname){e.tname=t.tname}if(t.item){e.item=t.item}if(t.assoc!=null){e.assoc=t.assoc}return e};const Zi=t=>new Gi(t.type==null?null:$i(t.type.client,t.type.clock),t.tname||null,t.item==null?null:$i(t.item.client,t.item.clock),t.assoc==null?0:t.assoc);class to{constructor(t,e,n=0){this.type=t;this.index=e;this.assoc=n}}const eo=(t,e,n=0)=>new to(t,e,n);const no=(t,e,n)=>{let s=null;let r=null;if(t._item===null){r=Ki(t)}else{s=$i(t._item.id.client,t._item.id.clock)}return new Gi(s,r,e,n)};const so=(t,e,n=0)=>{let s=t._start;if(n<0){if(e===0){return no(t,null,n)}e--}while(s!==null){if(!s.deleted&&s.countable){if(s.length>e){return no(t,$i(s.id.client,s.id.clock+e),n)}e-=s.length}if(s.right===null&&n<0){return no(t,s.lastId,n)}s=s.right}return no(t,null,n)};const ro=(t,e)=>{const{type:n,tname:s,item:r,assoc:i}=e;if(r!==null){Re(t,0);Hi(t,r)}else if(s!==null){xe(t,1);ze(t,s)}else if(n!==null){xe(t,2);Hi(t,n)}else{throw dn()}Ve(t,i);return t};const io=t=>{const e=Ee();ro(e,t);return De(e)};const oo=t=>{let e=null;let n=null;let s=null;switch(In(t)){case 0:s=Wi(t);break;case 1:n=Rn(t);break;case 2:{e=Wi(t)}}const r=mn(t)?Mn(t):0;return new Gi(e,n,s,r)};const co=t=>oo(wn(t));const lo=(t,e)=>{const n=e.store;const s=t.item;const r=t.type;const i=t.tname;const o=t.assoc;let c=null;let l=0;if(s!==null){if(Do(n,s.client)<=s.clock){return null}const t=sh(n,s);const e=t.item;if(!(e instanceof ch)){return null}c=e.parent;if(c._item===null||!c._item.deleted){l=e.deleted||!e.countable?0:t.diff+(o>=0?0:1);let n=e.left;while(n!==null){if(!n.deleted&&n.countable){l+=n.length}n=n.left}}}else{if(i!==null){c=e.get(i)}else if(r!==null){if(Do(n,r.client)<=r.clock){return null}const{item:t}=sh(n,r);if(t instanceof ch&&t.content instanceof eh){c=t.content.type}else{return null}}else{throw dn()}if(o>=0){l=c._length}else{l=0}}return eo(c,l,t.assoc)};const ho=(t,e)=>t===e||t!==null&&e!==null&&t.tname===e.tname&&Ji(t.item,e.item)&&Ji(t.type,e.type)&&t.assoc===e.assoc;class ao{constructor(t,e){this.ds=t;this.sv=e}}const uo=(t,e)=>{const n=t.ds.clients;const s=e.ds.clients;const r=t.sv;const i=e.sv;if(r.size!==i.size||n.size!==s.size){return false}for(const[o,c]of r.entries()){if(i.get(o)!==c){return false}}for(const[o,c]of n.entries()){const t=s.get(o)||[];if(c.length!==t.length){return false}for(let e=0;e{oi(e,t.ds);Oi(e,t.sv);return e.toUint8Array()};const go=t=>fo(t,new pi);const po=(t,e=new fi(wn(t)))=>new ao(ci(e),Mi(e));const wo=t=>po(t,new ui(wn(t)));const mo=(t,e)=>new ao(t,e);const yo=mo(ri(),new Map);const bo=t=>mo(ii(t.store),Co(t.store));const ko=(t,e)=>e===undefined?!t.deleted:e.sv.has(t.id.client)&&(e.sv.get(t.id.client)||0)>t.id.clock&&!ti(e.ds,t.id);const _o=(t,e)=>{const n=o._4(t.meta,_o,ws.vt);const s=t.doc.store;if(!n.has(e)){e.sv.forEach(((e,n)=>{if(e{}));n.add(e)}};const So=(t,e,n=new ai)=>{if(t.gc){throw new Error("originDoc must not be garbage collected")}const{sv:s,ds:r}=e;const i=new yi;t.transact((e=>{let n=0;s.forEach((t=>{if(t>0){n++}}));Re(i.restEncoder,n);for(const[r,o]of s){if(o===0){continue}if(o{const e=new Map;t.clients.forEach(((t,n)=>{const s=t[t.length-1];e.set(n,s.id.clock+s.length)}));return e};const Do=(t,e)=>{const n=t.clients.get(e);if(n===undefined){return 0}const s=n[n.length-1];return s.id.clock+s.length};const vo=(t,e)=>{let n=t.clients.get(e.id.client);if(n===undefined){n=[];t.clients.set(e.id.client,n)}else{const t=n[n.length-1];if(t.id.clock+t.length!==e.id.clock){throw dn()}}n.push(e)};const Ao=(t,e)=>{let n=0;let s=t.length-1;let r=t[s];let o=r.id.clock;if(o===e){return s}let c=i.RI(e/(o+r.length-1)*s);while(n<=s){r=t[c];o=r.id.clock;if(o<=e){if(e{const n=t.clients.get(e.client);return n[Ao(n,e.clock)]};const xo=To;const Io=(t,e,n)=>{const s=Ao(e,n);const r=e[s];if(r.id.clock{const n=t.doc.store.clients.get(e.client);return n[Io(t,n,e.clock)]};const Uo=(t,e,n)=>{const s=e.clients.get(n.client);const r=Ao(s,n.clock);const i=s[r];if(n.clock!==i.id.clock+i.length-1&&i.constructor!==xl){s.splice(r+1,0,ih(t,i,n.clock-i.id.clock+1))}return i};const Oo=(t,e,n)=>{const s=t.clients.get(e.id.client);s[Ao(s,e.id.clock)]=n};const Lo=(t,e,n,s,r)=>{if(s===0){return}const i=n+s;let o=Io(t,e,n);let c;do{c=e[o++];if(i{if(e.deleteSet.clients.size===0&&!o.bz(e.afterState,((t,n)=>e.beforeState.get(n)!==t))){return false}ei(e.deleteSet);Ei(t,e);oi(t,e.deleteSet);return true};const Vo=(t,e,n)=>{const s=e._item;if(s===null||s.id.clock<(t.beforeState.get(s.id.client)||0)&&!s.deleted){o._4(t.changed,e,ws.vt).add(n)}};const Po=(t,e)=>{const n=t[e-1];const s=t[e];if(n.deleted===s.deleted&&n.constructor===s.constructor){if(n.mergeWith(s)){t.splice(e,1);if(s instanceof ch&&s.parentSub!==null&&s.parent._map.get(s.parentSub)===s){s.parent._map.set(s.parentSub,n)}}}};const jo=(t,e,n)=>{for(const[s,r]of t.clients.entries()){const t=e.clients.get(s);for(let s=r.length-1;s>=0;s--){const i=r[s];const o=i.clock+i.len;for(let s=Ao(t,i.clock),r=t[s];s{t.clients.forEach(((t,n)=>{const s=e.clients.get(n);for(let e=t.length-1;e>=0;e--){const n=t[e];const r=i.jk(s.length-1,1+Ao(s,n.clock+n.len-1));for(let t=r,e=s[t];t>0&&e.id.clock>=n.clock;e=s[--t]){Po(s,t)}}}))};const Fo=(t,e,n)=>{jo(t,e,n);Bo(t,e)};const zo=(t,e)=>{if(et.push((()=>{if(s._item===null||!s._item.deleted){s._callObserver(n,e)}}))));t.push((()=>{n.changedParentTypes.forEach(((e,s)=>t.push((()=>{if(s._item===null||!s._item.deleted){e=e.filter((t=>t.target._item===null||!t.target._item.deleted));e.forEach((t=>{t.currentTarget=s}));e.sort(((t,e)=>t.path.length-e.path.length));Fi(s._dEH,e,n)}}))));t.push((()=>s.emit("afterTransaction",[n,s])))}));(0,I.OK)(t,[])}finally{if(s.gc){jo(o,r,s.gcFilter)}Bo(o,r);n.afterState.forEach(((t,e)=>{const s=n.beforeState.get(e)||0;if(s!==t){const t=r.clients.get(e);const n=i.T9(Ao(t,s),1);for(let e=t.length-1;e>=n;e--){Po(t,e)}}}));for(let t=0;t0){Po(s,i)}}if(!n.local&&n.afterState.get(s.clientID)!==n.beforeState.get(s.clientID)){Dr(mr,ar,"[yjs] ",ur,pr,"Changed the client-id because another client seems to be using it.");s.clientID=hi()}s.emit("afterTransactionCleanup",[n,s]);if(s._observers.has("update")){const t=new wi;const e=Ro(t,n);if(e){s.emit("update",[t.toUint8Array(),n.origin,s,n])}}if(s._observers.has("updateV2")){const t=new yi;const e=Ro(t,n);if(e){s.emit("updateV2",[t.toUint8Array(),n.origin,s,n])}}const{subdocsAdded:l,subdocsLoaded:h,subdocsRemoved:a}=n;if(l.size>0||a.size>0||h.size>0){l.forEach((t=>{t.clientID=s.clientID;if(t.collectionid==null){t.collectionid=s.collectionid}s.subdocs.add(t)}));a.forEach((t=>s.subdocs.delete(t)));s.emit("subdocs",[{loaded:h,added:l,removed:a},s,n]);a.forEach((t=>t.destroy()))}if(t.length<=e+1){s._transactionCleanups=[];s.emit("afterAllTransactions",[s,t])}else{zo(t,e+1)}}}};const Jo=(t,e,n=null,s=true)=>{const r=t._transactionCleanups;let i=false;let o=null;if(t._transaction===null){i=true;t._transaction=new No(t,n,s);r.push(t._transaction);if(r.length===1){t.emit("beforeAllTransactions",[t])}t.emit("beforeTransaction",[t._transaction,t])}try{o=e(t._transaction)}finally{if(i){const e=t._transaction===r[0];t._transaction=null;if(e){zo(r,0)}}}return o};class $o{constructor(t,e){this.insertions=e;this.deletions=t;this.meta=new Map}}const Ho=(t,e,n)=>{Qr(t,n.deletions,(t=>{if(t instanceof ch&&e.scope.some((e=>qi(e,t)))){rh(t,false)}}))};const Wo=(t,e,n)=>{let s=null;let r=null;const i=t.doc;const o=t.scope;Jo(i,(n=>{while(e.length>0&&s===null){const r=i.store;const c=e.pop();const l=new Set;const h=[];let a=false;Qr(n,c.insertions,(t=>{if(t instanceof ch){if(t.redone!==null){let{item:e,diff:s}=sh(r,t.id);if(s>0){e=Mo(n,$i(e.id.client,e.id.clock+s))}t=e}if(!t.deleted&&o.some((e=>qi(e,t)))){h.push(t)}}}));Qr(n,c.deletions,(t=>{if(t instanceof ch&&o.some((e=>qi(e,t)))&&!ti(c.insertions,t.id)){l.add(t)}}));l.forEach((e=>{a=oh(n,e,l,c.insertions,t.ignoreRemoteMapChanges)!==null||a}));for(let e=h.length-1;e>=0;e--){const s=h[e];if(t.deleteFilter(s)){s.delete(n);a=true}}s=a?c:null}n.changed.forEach(((t,e)=>{if(t.has(null)&&e._searchMarker){e._searchMarker.length=0}}));r=n}),t);if(s!=null){const e=r.changedParentTypes;t.emit("stack-item-popped",[{stackItem:s,type:n,changedParentTypes:e},t])}return s};class Ko extends s.c{constructor(t,{captureTimeout:e=500,captureTransaction:n=t=>true,deleteFilter:s=()=>true,trackedOrigins:i=new Set([null]),ignoreRemoteMapChanges:o=false,doc:c=(r.cy(t)?t[0].doc:t.doc)}={}){super();this.scope=[];this.addToScope(t);this.deleteFilter=s;i.add(this);this.trackedOrigins=i;this.captureTransaction=n;this.undoStack=[];this.redoStack=[];this.undoing=false;this.redoing=false;this.doc=c;this.lastChange=0;this.ignoreRemoteMapChanges=o;this.captureTimeout=e;this.afterTransactionHandler=t=>{if(!this.captureTransaction(t)||!this.scope.some((e=>t.changedParentTypes.has(e)))||!this.trackedOrigins.has(t.origin)&&(!t.origin||!this.trackedOrigins.has(t.origin.constructor))){return}const e=this.undoing;const n=this.redoing;const s=e?this.redoStack:this.undoStack;if(e){this.stopCapturing()}else if(!n){this.clear(false,true)}const r=new Gr;t.afterState.forEach(((e,n)=>{const s=t.beforeState.get(n)||0;const i=e-s;if(i>0){si(r,n,s,i)}}));const i=hr._g();let o=false;if(this.lastChange>0&&i-this.lastChange0&&!e&&!n){const e=s[s.length-1];e.deletions=ni([e.deletions,t.deleteSet]);e.insertions=ni([e.insertions,r])}else{s.push(new $o(t.deleteSet,r));o=true}if(!e&&!n){this.lastChange=i}Qr(t,t.deleteSet,(t=>{if(t instanceof ch&&this.scope.some((e=>qi(e,t)))){rh(t,true)}}));const c=[{stackItem:s[s.length-1],origin:t.origin,type:e?"redo":"undo",changedParentTypes:t.changedParentTypes},this];if(o){this.emit("stack-item-added",c)}else{this.emit("stack-item-updated",c)}};this.doc.on("afterTransaction",this.afterTransactionHandler);this.doc.on("destroy",(()=>{this.destroy()}))}addToScope(t){t=r.cy(t)?t:[t];t.forEach((t=>{if(this.scope.every((e=>e!==t))){this.scope.push(t)}}))}addTrackedOrigin(t){this.trackedOrigins.add(t)}removeTrackedOrigin(t){this.trackedOrigins.delete(t)}clear(t=true,e=true){if(t&&this.canUndo()||e&&this.canRedo()){this.doc.transact((n=>{if(t){this.undoStack.forEach((t=>Ho(n,this,t)));this.undoStack=[]}if(e){this.redoStack.forEach((t=>Ho(n,this,t)));this.redoStack=[]}this.emit("stack-cleared",[{undoStackCleared:t,redoStackCleared:e}])}))}}stopCapturing(){this.lastChange=0}undo(){this.undoing=true;let t;try{t=Wo(this,this.undoStack,"undo")}finally{this.undoing=false}return t}redo(){this.redoing=true;let t;try{t=Wo(this,this.redoStack,"redo")}finally{this.redoing=false}return t}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}destroy(){this.trackedOrigins.delete(this);this.doc.off("afterTransaction",this.afterTransactionHandler);super.destroy()}}function*qo(t){const e=In(t.restDecoder);for(let n=0;nGo(t,di);const Go=(t,e=gi)=>{const n=[];const s=new e(wn(t));const r=new Yo(s,false);for(let o=r.curr;o!==null;o=r.next()){n.push(o)}Dr("Structs: ",n);const i=ci(s);Dr("DeleteSet: ",i)};const Qo=t=>Zo(t,di);const Zo=(t,e=gi)=>{const n=[];const s=new e(wn(t));const r=new Yo(s,false);for(let i=r.curr;i!==null;i=r.next()){n.push(i)}return{structs:n,ds:ci(s)}};class tc{constructor(t){this.currClient=0;this.startClock=0;this.written=0;this.encoder=t;this.clientStructs=[]}}const ec=t=>cc(t,di,wi);const nc=(t,e=mi,n=gi)=>{const s=new e;const r=new Yo(new n(wn(t)),false);let i=r.curr;if(i!==null){let t=0;let e=i.id.client;let n=i.id.clock!==0;let o=n?0:i.id.clock+i.length;for(;i!==null;i=r.next()){if(e!==i.id.client){if(o!==0){t++;Re(s.restEncoder,e);Re(s.restEncoder,o)}e=i.id.client;o=0;n=i.id.clock!==0}if(i.constructor===uh){n=true}if(!n){o=i.id.clock+i.length}}if(o!==0){t++;Re(s.restEncoder,e);Re(s.restEncoder,o)}const c=Ee();Re(c,t);Je(c,s.restEncoder);s.restEncoder=c;return s.toUint8Array()}else{Re(s.restEncoder,0);return s.toUint8Array()}};const sc=t=>nc(t,pi,di);const rc=(t,e=gi)=>{const n=new Map;const s=new Map;const r=new Yo(new e(wn(t)),false);let i=r.curr;if(i!==null){let t=i.id.client;let e=i.id.clock;n.set(t,e);for(;i!==null;i=r.next()){if(t!==i.id.client){s.set(t,e);n.set(i.id.client,i.id.clock);t=i.id.client}e=i.id.clock+i.length}s.set(t,e)}return{from:n,to:s}};const ic=t=>rc(t,di);const oc=(t,e)=>{if(t.constructor===xl){const{client:n,clock:s}=t.id;return new xl($i(n,s+e),t.length-e)}else if(t.constructor===uh){const{client:n,clock:s}=t.id;return new uh($i(n,s+e),t.length-e)}else{const n=t;const{client:s,clock:r}=n.id;return new ch($i(s,r+e),null,$i(s,r+e-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(e))}};const cc=(t,e=gi,n=yi)=>{if(t.length===1){return t[0]}const s=t.map((t=>new e(wn(t))));let r=s.map((t=>new Yo(t,true)));let i=null;const o=new n;const c=new tc(o);while(true){r=r.filter((t=>t.curr!==null));r.sort(((t,e)=>{if(t.curr.id.client===e.curr.id.client){const n=t.curr.id.clock-e.curr.id.clock;if(n===0){return t.curr.constructor===e.curr.constructor?0:t.curr.constructor===uh?1:-1}else{return n}}else{return e.curr.id.client-t.curr.id.client}}));if(r.length===0){break}const t=r[0];const e=t.curr.id.client;if(i!==null){let n=t.curr;let s=false;while(n!==null&&n.id.clock+n.length<=i.struct.id.clock+i.struct.length&&n.id.client>=i.struct.id.client){n=t.next();s=true}if(n===null||n.id.client!==e||s&&n.id.clock>i.struct.id.clock+i.struct.length){continue}if(e!==i.struct.id.client){uc(c,i.struct,i.offset);i={struct:n,offset:0};t.next()}else{if(i.struct.id.clock+i.struct.length0){if(i.struct.constructor===uh){i.struct.length-=e}else{n=oc(n,e)}}if(!i.struct.mergeWith(n)){uc(c,i.struct,i.offset);i={struct:n,offset:0};t.next()}}}}else{i={struct:t.curr,offset:0};t.next()}for(let n=t.curr;n!==null&&n.id.client===e&&n.id.clock===i.struct.id.clock+i.struct.length&&n.constructor!==uh;n=t.next()){uc(c,i.struct,i.offset);i={struct:n,offset:0}}}if(i!==null){uc(c,i.struct,i.offset);i=null}dc(c);const l=s.map((t=>ci(t)));const h=ni(l);oi(o,h);return o.toUint8Array()};const lc=(t,e,n=gi,s=yi)=>{const r=Ui(e);const o=new s;const c=new tc(o);const l=new n(wn(t));const h=new Yo(l,false);while(h.curr){const t=h.curr;const e=t.id.client;const n=r.get(e)||0;if(h.curr.constructor===uh){h.next();continue}if(t.id.clock+t.length>n){uc(c,t,i.T9(n-t.id.clock,0));h.next();while(h.curr&&h.curr.id.client===e){uc(c,h.curr,0);h.next()}}else{while(h.curr&&h.curr.id.client===e&&h.curr.id.clock+h.curr.length<=n){h.next()}}}dc(c);const a=ci(l);oi(o,a);return o.toUint8Array()};const hc=(t,e)=>lc(t,e,di,wi);const ac=t=>{if(t.written>0){t.clientStructs.push({written:t.written,restEncoder:De(t.encoder.restEncoder)});t.encoder.restEncoder=Ee();t.written=0}};const uc=(t,e,n)=>{if(t.written>0&&t.currClient!==e.id.client){ac(t)}if(t.written===0){t.currClient=e.id.client;t.encoder.writeClient(e.id.client);Re(t.encoder.restEncoder,e.id.clock+n)}e.write(t.encoder,n);t.written++};const dc=t=>{ac(t);const e=t.encoder.restEncoder;Re(e,t.clientStructs.length);for(let n=0;n{const s=new e(wn(t));const r=new Yo(s,false);const i=new n;const o=new tc(i);for(let l=r.curr;l!==null;l=r.next()){uc(o,l,0)}dc(o);const c=ci(s);oi(i,c);return i.toUint8Array()};const gc=t=>fc(t,di,yi);const pc=t=>fc(t,gi,wi);class wc{constructor(t,e){this.target=t;this.currentTarget=t;this.transaction=e;this._changes=null;this._keys=null;this._delta=null}get path(){return mc(this.currentTarget,this.target)}deletes(t){return ti(this.transaction.deleteSet,t.id)}get keys(){if(this._keys===null){const t=new Map;const e=this.target;const n=this.transaction.changed.get(e);n.forEach((n=>{if(n!==null){const s=e._map.get(n);let i;let o;if(this.adds(s)){let t=s.left;while(t!==null&&this.adds(t)){t=t.left}if(this.deletes(s)){if(t!==null&&this.deletes(t)){i="delete";o=r.HV(t.content.getContent())}else{return}}else{if(t!==null&&this.deletes(t)){i="update";o=r.HV(t.content.getContent())}else{i="add";o=undefined}}}else{if(this.deletes(s)){i="delete";o=r.HV(s.content.getContent())}else{return}}t.set(n,{action:i,oldValue:o})}}));this._keys=t}return this._keys}get delta(){return this.changes.delta}adds(t){return t.id.clock>=(this.transaction.beforeState.get(t.id.client)||0)}get changes(){let t=this._changes;if(t===null){const e=this.target;const n=ws.vt();const s=ws.vt();const r=[];t={added:n,deleted:s,delta:r,keys:this.keys};const i=this.transaction.changed.get(e);if(i.has(null)){let t=null;const i=()=>{if(t){r.push(t)}};for(let r=e._start;r!==null;r=r.right){if(r.deleted){if(this.deletes(r)&&!this.adds(r)){if(t===null||t.delete===undefined){i();t={delete:0}}t.delete+=r.length;s.add(r)}}else{if(this.adds(r)){if(t===null||t.insert===undefined){i();t={insert:[]}}t.insert=t.insert.concat(r.content.getContent());n.add(r)}else{if(t===null||t.retain===undefined){i();t={retain:0}}t.retain+=r.length}}}if(t!==null&&t.retain===undefined){i()}}this._changes=t}return t}}const mc=(t,e)=>{const n=[];while(e._item!==null&&e!==t){if(e._item.parentSub!==null){n.unshift(e._item.parentSub)}else{let t=0;let s=e._item.parent._start;while(s!==e._item&&s!==null){if(!s.deleted){t++}s=s.right}n.unshift(t)}e=e._item.parent}return n};const yc=80;let bc=0;class kc{constructor(t,e){t.marker=true;this.p=t;this.index=e;this.timestamp=bc++}}const _c=t=>{t.timestamp=bc++};const Sc=(t,e,n)=>{t.p.marker=false;t.p=e;e.marker=true;t.index=n;t.timestamp=bc++};const Ec=(t,e,n)=>{if(t.length>=yc){const s=t.reduce(((t,e)=>t.timestamp{if(t._start===null||e===0||t._searchMarker===null){return null}const n=t._searchMarker.length===0?null:t._searchMarker.reduce(((t,n)=>i.tn(e-t.index)e){s=s.left;if(!s.deleted&&s.countable){r-=s.length}}while(s.left!==null&&s.left.id.client===s.id.client&&s.left.id.clock+s.left.length===s.id.clock){s=s.left;if(!s.deleted&&s.countable){r-=s.length}}if(n!==null&&i.tn(n.index-r){for(let s=t.length-1;s>=0;s--){const r=t[s];if(n>0){let e=r.p;e.marker=false;while(e&&(e.deleted||!e.countable)){e=e.left;if(e&&!e.deleted&&e.countable){r.index-=e.length}}if(e===null||e.marker===true){t.splice(s,1);continue}r.p=e;e.marker=true}if(e0&&e===r.index){r.index=i.T9(e,r.index+n)}}};const vc=t=>{let e=t._start;const n=[];while(e){n.push(e);e=e.right}return n};const Ac=(t,e,n)=>{const s=t;const r=e.changedParentTypes;while(true){o._4(r,t,(()=>[])).push(n);if(t._item===null){break}t=t._item.parent}Fi(s._eH,n,e)};class Tc{constructor(){this._item=null;this._map=new Map;this._start=null;this.doc=null;this._length=0;this._eH=Pi();this._dEH=Pi();this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(t,e){this.doc=t;this._item=e}_copy(){throw un()}clone(){throw un()}_write(t){}get _first(){let t=this._start;while(t!==null&&t.deleted){t=t.right}return t}_callObserver(t,e){if(!t.local&&this._searchMarker){this._searchMarker.length=0}}observe(t){ji(this._eH,t)}observeDeep(t){ji(this._dEH,t)}unobserve(t){Bi(this._eH,t)}unobserveDeep(t){Bi(this._dEH,t)}toJSON(){}}const xc=(t,e,n)=>{if(e<0){e=t._length+e}if(n<0){n=t._length+n}let s=n-e;const r=[];let i=t._start;while(i!==null&&s>0){if(i.countable&&!i.deleted){const t=i.content.getContent();if(t.length<=e){e-=t.length}else{for(let n=e;n0;n++){r.push(t[n]);s--}e=0}}i=i.right}return r};const Ic=t=>{const e=[];let n=t._start;while(n!==null){if(n.countable&&!n.deleted){const t=n.content.getContent();for(let n=0;n{const n=[];let s=t._start;while(s!==null){if(s.countable&&ko(s,e)){const t=s.content.getContent();for(let e=0;e{let n=0;let s=t._start;while(s!==null){if(s.countable&&!s.deleted){const r=s.content.getContent();for(let s=0;s{const n=[];Uc(t,((s,r)=>{n.push(e(s,r,t))}));return n};const Lc=t=>{let e=t._start;let n=null;let s=0;return{[Symbol.iterator](){return this},next:()=>{if(n===null){while(e!==null&&e.deleted){e=e.right}if(e===null){return{done:true,value:undefined}}n=e.content.getContent();s=0;e=e.right}const t=n[s++];if(n.length<=s){n=null}return{done:false,value:t}}}};const Nc=(t,e)=>{const n=Cc(t,e);let s=t._start;if(n!==null){s=n.p;e-=n.index}for(;s!==null;s=s.right){if(!s.deleted&&s.countable){if(e{let r=n;const i=t.doc;const o=i.clientID;const c=i.store;const l=n===null?e._start:n.right;let h=[];const a=()=>{if(h.length>0){r=new ch($i(o,Do(c,o)),r,r&&r.lastId,l,l&&l.id,e,null,new Jl(h));r.integrate(t,0);h=[]}};s.forEach((n=>{if(n===null){h.push(n)}else{switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:h.push(n);break;default:a();switch(n.constructor){case Uint8Array:case ArrayBuffer:r=new ch($i(o,Do(c,o)),r,r&&r.lastId,l,l&&l.id,e,null,new Il(new Uint8Array(n)));r.integrate(t,0);break;case ai:r=new ch($i(o,Do(c,o)),r,r&&r.lastId,l,l&&l.id,e,null,new Nl(n));r.integrate(t,0);break;default:if(n instanceof Tc){r=new ch($i(o,Do(c,o)),r,r&&r.lastId,l,l&&l.id,e,null,new eh(n));r.integrate(t,0)}else{throw new Error("Unexpected content type in insert operation")}}}}}));a()};const Vc=an("Length exceeded!");const Pc=(t,e,n,s)=>{if(n>e._length){throw Vc}if(n===0){if(e._searchMarker){Dc(e._searchMarker,n,s.length)}return Rc(t,e,null,s)}const r=n;const i=Cc(e,n);let o=e._start;if(i!==null){o=i.p;n-=i.index;if(n===0){o=o.prev;n+=o&&o.countable&&!o.deleted?o.length:0}}for(;o!==null;o=o.right){if(!o.deleted&&o.countable){if(n<=o.length){if(n{const s=(e._searchMarker||[]).reduce(((t,e)=>e.index>t.index?e:t),{index:0,p:e._start});let r=s.p;if(r){while(r.right){r=r.right}}return Rc(t,e,r,n)};const Bc=(t,e,n,s)=>{if(s===0){return}const r=n;const i=s;const o=Cc(e,n);let c=e._start;if(o!==null){c=o.p;n-=o.index}for(;c!==null&&n>0;c=c.right){if(!c.deleted&&c.countable){if(n0&&c!==null){if(!c.deleted){if(s0){throw Vc}if(e._searchMarker){Dc(e._searchMarker,r,-i+s)}};const Fc=(t,e,n)=>{const s=e._map.get(n);if(s!==undefined){s.delete(t)}};const zc=(t,e,n,s)=>{const r=e._map.get(n)||null;const i=t.doc;const o=i.clientID;let c;if(s==null){c=new Jl([s])}else{switch(s.constructor){case Number:case Object:case Boolean:case Array:case String:c=new Jl([s]);break;case Uint8Array:c=new Il(s);break;case ai:c=new Nl(s);break;default:if(s instanceof Tc){c=new eh(s)}else{throw new Error("Unexpected content type")}}}new ch($i(o,Do(i.store,o)),r,r&&r.lastId,null,null,e,n,c).integrate(t,0)};const Jc=(t,e)=>{const n=t._map.get(e);return n!==undefined&&!n.deleted?n.content.getContent()[n.length-1]:undefined};const $c=t=>{const e={};t._map.forEach(((t,n)=>{if(!t.deleted){e[n]=t.content.getContent()[t.length-1]}}));return e};const Hc=(t,e)=>{const n=t._map.get(e);return n!==undefined&&!n.deleted};const Wc=(t,e,n)=>{let s=t._map.get(e)||null;while(s!==null&&(!n.sv.has(s.id.client)||s.id.clock>=(n.sv.get(s.id.client)||0))){s=s.left}return s!==null&&ko(s,n)?s.content.getContent()[s.length-1]:undefined};const Kc=t=>Wr(t.entries(),(t=>!t[1].deleted));class qc extends wc{constructor(t,e){super(t,e);this._transaction=e}}class Yc extends Tc{constructor(){super();this._prelimContent=[];this._searchMarker=[]}static from(t){const e=new Yc;e.push(t);return e}_integrate(t,e){super._integrate(t,e);this.insert(0,this._prelimContent);this._prelimContent=null}_copy(){return new Yc}clone(){const t=new Yc;t.insert(0,this.toArray().map((t=>t instanceof Tc?t.clone():t)));return t}get length(){return this._prelimContent===null?this._length:this._prelimContent.length}_callObserver(t,e){super._callObserver(t,e);Ac(this,t,new qc(this,t))}insert(t,e){if(this.doc!==null){Jo(this.doc,(n=>{Pc(n,this,t,e)}))}else{this._prelimContent.splice(t,0,...e)}}push(t){if(this.doc!==null){Jo(this.doc,(e=>{jc(e,this,t)}))}else{this._prelimContent.push(...t)}}unshift(t){this.insert(0,t)}delete(t,e=1){if(this.doc!==null){Jo(this.doc,(n=>{Bc(n,this,t,e)}))}else{this._prelimContent.splice(t,e)}}get(t){return Nc(this,t)}toArray(){return Ic(this)}slice(t=0,e=this.length){return xc(this,t,e)}toJSON(){return this.map((t=>t instanceof Tc?t.toJSON():t))}map(t){return Oc(this,t)}forEach(t){Uc(this,t)}[Symbol.iterator](){return Lc(this)}_write(t){t.writeTypeRef(ql)}}const Xc=t=>new Yc;class Gc extends wc{constructor(t,e,n){super(t,e);this.keysChanged=n}}class Qc extends Tc{constructor(t){super();this._prelimContent=null;if(t===undefined){this._prelimContent=new Map}else{this._prelimContent=new Map(t)}}_integrate(t,e){super._integrate(t,e);this._prelimContent.forEach(((t,e)=>{this.set(e,t)}));this._prelimContent=null}_copy(){return new Qc}clone(){const t=new Qc;this.forEach(((e,n)=>{t.set(n,e instanceof Tc?e.clone():e)}));return t}_callObserver(t,e){Ac(this,t,new Gc(this,t,e))}toJSON(){const t={};this._map.forEach(((e,n)=>{if(!e.deleted){const s=e.content.getContent()[e.length-1];t[n]=s instanceof Tc?s.toJSON():s}}));return t}get size(){return[...Kc(this._map)].length}keys(){return Kr(Kc(this._map),(t=>t[0]))}values(){return Kr(Kc(this._map),(t=>t[1].content.getContent()[t[1].length-1]))}entries(){return Kr(Kc(this._map),(t=>[t[0],t[1].content.getContent()[t[1].length-1]]))}forEach(t){this._map.forEach(((e,n)=>{if(!e.deleted){t(e.content.getContent()[e.length-1],n,this)}}))}[Symbol.iterator](){return this.entries()}delete(t){if(this.doc!==null){Jo(this.doc,(e=>{Fc(e,this,t)}))}else{this._prelimContent.delete(t)}}set(t,e){if(this.doc!==null){Jo(this.doc,(n=>{zc(n,this,t,e)}))}else{this._prelimContent.set(t,e)}return e}get(t){return Jc(this,t)}has(t){return Hc(this,t)}clear(){if(this.doc!==null){Jo(this.doc,(t=>{this.forEach((function(e,n,s){Fc(t,s,n)}))}))}else{this._prelimContent.clear()}}_write(t){t.writeTypeRef(Yl)}}const Zc=t=>new Qc;const tl=(t,e)=>t===e||typeof t==="object"&&typeof e==="object"&&t&&e&&qr.SQ(t,e);class el{constructor(t,e,n,s){this.left=t;this.right=e;this.index=n;this.currentAttributes=s}forward(){if(this.right===null){dn()}switch(this.right.content.constructor){case jl:if(!this.right.deleted){il(this.currentAttributes,this.right.content)}break;default:if(!this.right.deleted){this.index+=this.right.length}break}this.left=this.right;this.right=this.right.right}}const nl=(t,e,n)=>{while(e.right!==null&&n>0){switch(e.right.content.constructor){case jl:if(!e.right.deleted){il(e.currentAttributes,e.right.content)}break;default:if(!e.right.deleted){if(n{const s=new Map;const r=Cc(e,n);if(r){const e=new el(r.p.left,r.p,r.index,s);return nl(t,e,n-r.index)}else{const r=new el(null,e._start,0,s);return nl(t,r,n)}};const rl=(t,e,n,s)=>{while(n.right!==null&&(n.right.deleted===true||n.right.content.constructor===jl&&tl(s.get(n.right.content.key),n.right.content.value))){if(!n.right.deleted){s.delete(n.right.content.key)}n.forward()}const r=t.doc;const i=r.clientID;s.forEach(((s,o)=>{const c=n.left;const l=n.right;const h=new ch($i(i,Do(r.store,i)),c,c&&c.lastId,l,l&&l.id,e,null,new jl(o,s));h.integrate(t,0);n.right=h;n.forward()}))};const il=(t,e)=>{const{key:n,value:s}=e;if(s===null){t.delete(n)}else{t.set(n,s)}};const ol=(t,e)=>{while(true){if(t.right===null){break}else if(t.right.deleted||t.right.content.constructor===jl&&tl(e[t.right.content.key]||null,t.right.content.value));else{break}t.forward()}};const cl=(t,e,n,s)=>{const r=t.doc;const i=r.clientID;const o=new Map;for(const c in s){const l=s[c];const h=n.currentAttributes.get(c)||null;if(!tl(h,l)){o.set(c,h);const{left:s,right:a}=n;n.right=new ch($i(i,Do(r.store,i)),s,s&&s.lastId,a,a&&a.id,e,null,new jl(c,l));n.right.integrate(t,0);n.forward()}}return o};const ll=(t,e,n,s,r)=>{n.currentAttributes.forEach(((t,e)=>{if(r[e]===undefined){r[e]=null}}));const i=t.doc;const o=i.clientID;ol(n,r);const c=cl(t,e,n,r);const l=s.constructor===String?new Hl(s):s instanceof Tc?new eh(s):new Vl(s);let{left:h,right:a,index:u}=n;if(e._searchMarker){Dc(e._searchMarker,n.index,l.getLength())}a=new ch($i(o,Do(i.store,o)),h,h&&h.lastId,a,a&&a.id,e,null,l);a.integrate(t,0);n.right=a;n.index=u;n.forward();rl(t,e,n,c)};const hl=(t,e,n,s,r)=>{const i=t.doc;const o=i.clientID;ol(n,r);const c=cl(t,e,n,r);t:while(n.right!==null&&(s>0||c.size>0&&(n.right.deleted||n.right.content.constructor===jl))){if(!n.right.deleted){switch(n.right.content.constructor){case jl:{const{key:e,value:i}=n.right.content;const o=r[e];if(o!==undefined){if(tl(o,i)){c.delete(e)}else{if(s===0){break t}c.set(e,i)}n.right.delete(t)}else{n.currentAttributes.set(e,i)}break}default:if(s0){let r="";for(;s>0;s--){r+="\n"}n.right=new ch($i(o,Do(i.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,e,null,new Hl(r));n.right.integrate(t,0);n.forward()}rl(t,e,n,c)};const al=(t,e,n,s,r)=>{let i=e;const c=o.vt();while(i&&(!i.countable||i.deleted)){if(!i.deleted&&i.content.constructor===jl){const t=i.content;c.set(t.key,t)}i=i.right}let l=0;let h=false;while(e!==i){if(n===e){h=true}if(!e.deleted){const n=e.content;switch(n.constructor){case jl:{const{key:i,value:o}=n;const a=s.get(i)||null;if(c.get(i)!==n||a===o){e.delete(t);l++;if(!h&&(r.get(i)||null)===o&&a!==o){if(a===null){r.delete(i)}else{r.set(i,a)}}}if(!h&&!e.deleted){il(r,n)}break}}}e=e.right}return l};const ul=(t,e)=>{while(e&&e.right&&(e.right.deleted||!e.right.countable)){e=e.right}const n=new Set;while(e&&(e.deleted||!e.countable)){if(!e.deleted&&e.content.constructor===jl){const s=e.content.key;if(n.has(s)){e.delete(t)}else{n.add(s)}}e=e.left}};const dl=t=>{let e=0;Jo(t.doc,(n=>{let s=t._start;let r=t._start;let i=o.vt();const c=o.C(i);while(r){if(r.deleted===false){switch(r.content.constructor){case jl:il(c,r.content);break;default:e+=al(n,s,r,i,c);i=o.C(c);s=r;break}}r=r.right}}));return e};const fl=(t,e,n)=>{const s=n;const r=o.C(e.currentAttributes);const i=e.right;while(n>0&&e.right!==null){if(e.right.deleted===false){switch(e.right.content.constructor){case eh:case Vl:case Hl:if(n{if(t===null){this.childListChanged=true}else{this.keysChanged.add(t)}}))}get changes(){if(this._changes===null){const t={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=t}return this._changes}get delta(){if(this._delta===null){const t=this.target.doc;const e=[];Jo(t,(t=>{const n=new Map;const s=new Map;let r=this.target._start;let i=null;const o={};let c="";let l=0;let h=0;const a=()=>{if(i!==null){let t;switch(i){case"delete":t={delete:h};h=0;break;case"insert":t={insert:c};if(n.size>0){t.attributes={};n.forEach(((e,n)=>{if(e!==null){t.attributes[n]=e}}))}c="";break;case"retain":t={retain:l};if(Object.keys(o).length>0){t.attributes={};for(const e in o){t.attributes[e]=o[e]}}l=0;break}e.push(t);i=null}};while(r!==null){switch(r.content.constructor){case eh:case Vl:if(this.adds(r)){if(!this.deletes(r)){a();i="insert";c=r.content.getContent()[0];a()}}else if(this.deletes(r)){if(i!=="delete"){a();i="delete"}h+=1}else if(!r.deleted){if(i!=="retain"){a();i="retain"}l+=1}break;case Hl:if(this.adds(r)){if(!this.deletes(r)){if(i!=="insert"){a();i="insert"}c+=r.content.str}}else if(this.deletes(r)){if(i!=="delete"){a();i="delete"}h+=r.length}else if(!r.deleted){if(i!=="retain"){a();i="retain"}l+=r.length}break;case jl:{const{key:e,value:c}=r.content;if(this.adds(r)){if(!this.deletes(r)){const l=n.get(e)||null;if(!tl(l,c)){if(i==="retain"){a()}if(tl(c,s.get(e)||null)){delete o[e]}else{o[e]=c}}else if(c!==null){r.delete(t)}}}else if(this.deletes(r)){s.set(e,c);const t=n.get(e)||null;if(!tl(t,c)){if(i==="retain"){a()}o[e]=t}}else if(!r.deleted){s.set(e,c);const n=o[e];if(n!==undefined){if(!tl(n,c)){if(i==="retain"){a()}if(c===null){delete o[e]}else{o[e]=c}}else if(n!==null){r.delete(t)}}}if(!r.deleted){if(i==="insert"){a()}il(n,r.content)}break}}r=r.right}a();while(e.length>0){const t=e[e.length-1];if(t.retain!==undefined&&t.attributes===undefined){e.pop()}else{break}}}));this._delta=e}return this._delta}}class pl extends Tc{constructor(t){super();this._pending=t!==undefined?[()=>this.insert(0,t)]:[];this._searchMarker=[]}get length(){return this._length}_integrate(t,e){super._integrate(t,e);try{this._pending.forEach((t=>t()))}catch(gh){console.error(gh)}this._pending=null}_copy(){return new pl}clone(){const t=new pl;t.applyDelta(this.toDelta());return t}_callObserver(t,e){super._callObserver(t,e);const n=new gl(this,t,e);const s=t.doc;Ac(this,t,n);if(!t.local){let e=false;for(const[n,r]of t.afterState.entries()){const i=t.beforeState.get(n)||0;if(r===i){continue}Lo(t,s.store.clients.get(n),i,r,(t=>{if(!t.deleted&&t.content.constructor===jl){e=true}}));if(e){break}}if(!e){Qr(t,t.deleteSet,(t=>{if(t instanceof xl||e){return}if(t.parent===this&&t.content.constructor===jl){e=true}}))}Jo(s,(t=>{if(e){dl(this)}else{Qr(t,t.deleteSet,(e=>{if(e instanceof xl){return}if(e.parent===this){ul(t,e)}}))}}))}}toString(){let t="";let e=this._start;while(e!==null){if(!e.deleted&&e.countable&&e.content.constructor===Hl){t+=e.content.str}e=e.right}return t}toJSON(){return this.toString()}applyDelta(t,{sanitize:e=true}={}){if(this.doc!==null){Jo(this.doc,(n=>{const s=new el(null,this._start,0,new Map);for(let r=0;r0){ll(n,this,s,o,i.attributes||{})}}else if(i.retain!==undefined){hl(n,this,s,i.retain,i.attributes||{})}else if(i.delete!==undefined){fl(n,s,i.delete)}}}))}else{this._pending.push((()=>this.applyDelta(t)))}}toDelta(t,e,n){const s=[];const r=new Map;const i=this.doc;let o="";let c=this._start;function l(){if(o.length>0){const t={};let e=false;r.forEach(((n,s)=>{e=true;t[s]=n}));const n={insert:o};if(e){n.attributes=t}s.push(n);o=""}}Jo(i,(i=>{if(t){_o(i,t)}if(e){_o(i,e)}while(c!==null){if(ko(c,t)||e!==undefined&&ko(c,e)){switch(c.content.constructor){case Hl:{const s=r.get("ychange");if(t!==undefined&&!ko(c,t)){if(s===undefined||s.user!==c.id.client||s.type!=="removed"){l();r.set("ychange",n?n("removed",c.id):{type:"removed"})}}else if(e!==undefined&&!ko(c,e)){if(s===undefined||s.user!==c.id.client||s.type!=="added"){l();r.set("ychange",n?n("added",c.id):{type:"added"})}}else if(s!==undefined){l();r.delete("ychange")}o+=c.content.str;break}case eh:case Vl:{l();const t={insert:c.content.getContent()[0]};if(r.size>0){const e={};t.attributes=e;r.forEach(((t,n)=>{e[n]=t}))}s.push(t);break}case jl:if(ko(c,t)){l();il(r,c.content)}break}}c=c.right}l()}),"cleanup");return s}insert(t,e,n){if(e.length<=0){return}const s=this.doc;if(s!==null){Jo(s,(s=>{const r=sl(s,this,t);if(!n){n={};r.currentAttributes.forEach(((t,e)=>{n[e]=t}))}ll(s,this,r,e,n)}))}else{this._pending.push((()=>this.insert(t,e,n)))}}insertEmbed(t,e,n={}){const s=this.doc;if(s!==null){Jo(s,(s=>{const r=sl(s,this,t);ll(s,this,r,e,n)}))}else{this._pending.push((()=>this.insertEmbed(t,e,n)))}}delete(t,e){if(e===0){return}const n=this.doc;if(n!==null){Jo(n,(n=>{fl(n,sl(n,this,t),e)}))}else{this._pending.push((()=>this.delete(t,e)))}}format(t,e,n){if(e===0){return}const s=this.doc;if(s!==null){Jo(s,(s=>{const r=sl(s,this,t);if(r.right===null){return}hl(s,this,r,e,n)}))}else{this._pending.push((()=>this.format(t,e,n)))}}removeAttribute(t){if(this.doc!==null){Jo(this.doc,(e=>{Fc(e,this,t)}))}else{this._pending.push((()=>this.removeAttribute(t)))}}setAttribute(t,e){if(this.doc!==null){Jo(this.doc,(n=>{zc(n,this,t,e)}))}else{this._pending.push((()=>this.setAttribute(t,e)))}}getAttribute(t){return Jc(this,t)}getAttributes(){return $c(this)}_write(t){t.writeTypeRef(Xl)}}const wl=t=>new pl;class ml{constructor(t,e=()=>true){this._filter=e;this._root=t;this._currentNode=t._start;this._firstCall=true}[Symbol.iterator](){return this}next(){let t=this._currentNode;let e=t&&t.content&&t.content.type;if(t!==null&&(!this._firstCall||t.deleted||!this._filter(e))){do{e=t.content.type;if(!t.deleted&&(e.constructor===kl||e.constructor===yl)&&e._start!==null){t=e._start}else{while(t!==null){if(t.right!==null){t=t.right;break}else if(t.parent===this._root){t=null}else{t=t.parent._item}}}}while(t!==null&&(t.deleted||!this._filter(t.content.type)))}this._firstCall=false;if(t===null){return{value:undefined,done:true}}this._currentNode=t;return{value:t.content.type,done:false}}}class yl extends Tc{constructor(){super();this._prelimContent=[]}get firstChild(){const t=this._first;return t?t.content.getContent()[0]:null}_integrate(t,e){super._integrate(t,e);this.insert(0,this._prelimContent);this._prelimContent=null}_copy(){return new yl}clone(){const t=new yl;t.insert(0,this.toArray().map((t=>t instanceof Tc?t.clone():t)));return t}get length(){return this._prelimContent===null?this._length:this._prelimContent.length}createTreeWalker(t){return new ml(this,t)}querySelector(t){t=t.toUpperCase();const e=new ml(this,(e=>e.nodeName&&e.nodeName.toUpperCase()===t));const n=e.next();if(n.done){return null}else{return n.value}}querySelectorAll(t){t=t.toUpperCase();return r.HT(new ml(this,(e=>e.nodeName&&e.nodeName.toUpperCase()===t)))}_callObserver(t,e){Ac(this,t,new Sl(this,e,t))}toString(){return Jo(this.doc,(()=>Oc(this,(t=>t.toString())).join("")))}toJSON(){return this.toString()}toDOM(t=document,e={},n){const s=t.createDocumentFragment();if(n!==undefined){n._createAssociation(s,this)}Uc(this,(r=>{s.insertBefore(r.toDOM(t,e,n),null)}));return s}insert(t,e){if(this.doc!==null){Jo(this.doc,(n=>{Pc(n,this,t,e)}))}else{this._prelimContent.splice(t,0,...e)}}insertAfter(t,e){if(this.doc!==null){Jo(this.doc,(n=>{const s=t&&t instanceof Tc?t._item:t;Rc(n,this,s,e)}))}else{const n=this._prelimContent;const s=t===null?0:n.findIndex((e=>e===t))+1;if(s===0&&t!==null){throw an("Reference item not found")}n.splice(s,0,...e)}}delete(t,e=1){if(this.doc!==null){Jo(this.doc,(n=>{Bc(n,this,t,e)}))}else{this._prelimContent.splice(t,e)}}toArray(){return Ic(this)}push(t){this.insert(this.length,t)}unshift(t){this.insert(0,t)}get(t){return Nc(this,t)}slice(t=0,e=this.length){return xc(this,t,e)}forEach(t){Uc(this,t)}_write(t){t.writeTypeRef(Ql)}}const bl=t=>new yl;class kl extends yl{constructor(t="UNDEFINED"){super();this.nodeName=t;this._prelimAttrs=new Map}get nextSibling(){const t=this._item?this._item.next:null;return t?t.content.type:null}get prevSibling(){const t=this._item?this._item.prev:null;return t?t.content.type:null}_integrate(t,e){super._integrate(t,e);this._prelimAttrs.forEach(((t,e)=>{this.setAttribute(e,t)}));this._prelimAttrs=null}_copy(){return new kl(this.nodeName)}clone(){const t=new kl(this.nodeName);const e=this.getAttributes();for(const n in e){t.setAttribute(n,e[n])}t.insert(0,this.toArray().map((t=>t instanceof Tc?t.clone():t)));return t}toString(){const t=this.getAttributes();const e=[];const n=[];for(const o in t){n.push(o)}n.sort();const s=n.length;for(let o=0;o0?" "+e.join(" "):"";return`<${r}${i}>${super.toString()}`}removeAttribute(t){if(this.doc!==null){Jo(this.doc,(e=>{Fc(e,this,t)}))}else{this._prelimAttrs.delete(t)}}setAttribute(t,e){if(this.doc!==null){Jo(this.doc,(n=>{zc(n,this,t,e)}))}else{this._prelimAttrs.set(t,e)}}getAttribute(t){return Jc(this,t)}hasAttribute(t){return Hc(this,t)}getAttributes(){return $c(this)}toDOM(t=document,e={},n){const s=t.createElement(this.nodeName);const r=this.getAttributes();for(const i in r){s.setAttribute(i,r[i])}Uc(this,(r=>{s.appendChild(r.toDOM(t,e,n))}));if(n!==undefined){n._createAssociation(s,this)}return s}_write(t){t.writeTypeRef(Gl);t.writeKey(this.nodeName)}}const _l=t=>new kl(t.readKey());class Sl extends wc{constructor(t,e,n){super(t,n);this.childListChanged=false;this.attributesChanged=new Set;e.forEach((t=>{if(t===null){this.childListChanged=true}else{this.attributesChanged.add(t)}}))}}class El extends Qc{constructor(t){super();this.hookName=t}_copy(){return new El(this.hookName)}clone(){const t=new El(this.hookName);this.forEach(((e,n)=>{t.set(n,e)}));return t}toDOM(t=document,e={},n){const s=e[this.hookName];let r;if(s!==undefined){r=s.createDom(this)}else{r=document.createElement(this.hookName)}r.setAttribute("data-yjs-hook",this.hookName);if(n!==undefined){n._createAssociation(r,this)}return r}_write(t){t.writeTypeRef(Zl);t.writeKey(this.hookName)}}const Cl=t=>new El(t.readKey());class Dl extends pl{get nextSibling(){const t=this._item?this._item.next:null;return t?t.content.type:null}get prevSibling(){const t=this._item?this._item.prev:null;return t?t.content.type:null}_copy(){return new Dl}clone(){const t=new Dl;t.applyDelta(this.toDelta());return t}toDOM(t=document,e,n){const s=t.createTextNode(this.toString());if(n!==undefined){n._createAssociation(s,this)}return s}toString(){return this.toDelta().map((t=>{const e=[];for(const s in t.attributes){const n=[];for(const e in t.attributes[s]){n.push({key:e,value:t.attributes[s][e]})}n.sort(((t,e)=>t.keyt.nodeName=0;s--){n+=``}return n})).join("")}toJSON(){return this.toString()}_write(t){t.writeTypeRef(th)}}const vl=t=>new Dl;class Al{constructor(t,e){this.id=t;this.length=e}get deleted(){throw un()}mergeWith(t){return false}write(t,e,n){throw un()}integrate(t,e){throw un()}}const Tl=0;class xl extends Al{get deleted(){return true}delete(){}mergeWith(t){if(this.constructor!==t.constructor){return false}this.length+=t.length;return true}integrate(t,e){if(e>0){this.id.clock+=e;this.length-=e}vo(t.doc.store,this)}write(t,e){t.writeInfo(Tl);t.writeLen(this.length-e)}getMissing(t,e){return null}}class Il{constructor(t){this.content=t}getLength(){return 1}getContent(){return[this.content]}isCountable(){return true}copy(){return new Il(this.content)}splice(t){throw un()}mergeWith(t){return false}integrate(t,e){}delete(t){}gc(t){}write(t,e){t.writeBuf(this.content)}getRef(){return 3}}const Ml=t=>new Il(t.readBuf());class Ul{constructor(t){this.len=t}getLength(){return this.len}getContent(){return[]}isCountable(){return false}copy(){return new Ul(this.len)}splice(t){const e=new Ul(this.len-t);this.len=t;return e}mergeWith(t){this.len+=t.len;return true}integrate(t,e){si(t.deleteSet,e.id.client,e.id.clock,this.len);e.markDeleted()}delete(t){}gc(t){}write(t,e){t.writeLen(this.len-e)}getRef(){return 1}}const Ol=t=>new Ul(t.readLen());const Ll=(t,e)=>new ai({guid:t,...e,shouldLoad:e.shouldLoad||e.autoLoad||false});class Nl{constructor(t){if(t._item){console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid.")}this.doc=t;const e={};this.opts=e;if(!t.gc){e.gc=false}if(t.autoLoad){e.autoLoad=true}if(t.meta!==null){e.meta=t.meta}}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return true}copy(){return new Nl(Ll(this.doc.guid,this.opts))}splice(t){throw un()}mergeWith(t){return false}integrate(t,e){this.doc._item=e;t.subdocsAdded.add(this.doc);if(this.doc.shouldLoad){t.subdocsLoaded.add(this.doc)}}delete(t){if(t.subdocsAdded.has(this.doc)){t.subdocsAdded.delete(this.doc)}else{t.subdocsRemoved.add(this.doc)}}gc(t){}write(t,e){t.writeString(this.doc.guid);t.writeAny(this.opts)}getRef(){return 9}}const Rl=t=>new Nl(Ll(t.readString(),t.readAny()));class Vl{constructor(t){this.embed=t}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return true}copy(){return new Vl(this.embed)}splice(t){throw un()}mergeWith(t){return false}integrate(t,e){}delete(t){}gc(t){}write(t,e){t.writeJSON(this.embed)}getRef(){return 5}}const Pl=t=>new Vl(t.readJSON());class jl{constructor(t,e){this.key=t;this.value=e}getLength(){return 1}getContent(){return[]}isCountable(){return false}copy(){return new jl(this.key,this.value)}splice(t){throw un()}mergeWith(t){return false}integrate(t,e){e.parent._searchMarker=null}delete(t){}gc(t){}write(t,e){t.writeKey(this.key);t.writeJSON(this.value)}getRef(){return 6}}const Bl=t=>new jl(t.readKey(),t.readJSON());class Fl{constructor(t){this.arr=t}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return true}copy(){return new Fl(this.arr)}splice(t){const e=new Fl(this.arr.slice(t));this.arr=this.arr.slice(0,t);return e}mergeWith(t){this.arr=this.arr.concat(t.arr);return true}integrate(t,e){}delete(t){}gc(t){}write(t,e){const n=this.arr.length;t.writeLen(n-e);for(let s=e;s{const e=t.readLen();const n=[];for(let s=0;s{const e=t.readLen();const n=[];for(let s=0;s=55296&&n<=56319){this.str=this.str.slice(0,t-1)+"�";e.str="�"+e.str.slice(1)}return e}mergeWith(t){this.str+=t.str;return true}integrate(t,e){}delete(t){}gc(t){}write(t,e){t.writeString(e===0?this.str:this.str.slice(e))}getRef(){return 4}}const Wl=t=>new Hl(t.readString());const Kl=[Xc,Zc,wl,_l,bl,Cl,vl];const ql=0;const Yl=1;const Xl=2;const Gl=3;const Ql=4;const Zl=5;const th=6;class eh{constructor(t){this.type=t}getLength(){return 1}getContent(){return[this.type]}isCountable(){return true}copy(){return new eh(this.type._copy())}splice(t){throw un()}mergeWith(t){return false}integrate(t,e){this.type._integrate(t.doc,e)}delete(t){let e=this.type._start;while(e!==null){if(!e.deleted){e.delete(t)}else{t._mergeStructs.push(e)}e=e.right}this.type._map.forEach((e=>{if(!e.deleted){e.delete(t)}else{t._mergeStructs.push(e)}}));t.changed.delete(this.type)}gc(t){let e=this.type._start;while(e!==null){e.gc(t,true);e=e.right}this.type._start=null;this.type._map.forEach((e=>{while(e!==null){e.gc(t,true);e=e.left}}));this.type._map=new Map}write(t,e){this.type._write(t)}getRef(){return 7}}const nh=t=>new eh(Kl[t.readTypeRef()](t));const sh=(t,e)=>{let n=e;let s=0;let r;do{if(s>0){n=$i(n.client,n.clock+s)}r=xo(t,n);s=n.clock-r.id.clock;n=r.redone}while(n!==null&&r instanceof ch);return{item:r,diff:s}};const rh=(t,e)=>{while(t!==null&&t.keep!==e){t.keep=e;t=t.parent._item}};const ih=(t,e,n)=>{const{client:s,clock:r}=e.id;const i=new ch($i(s,r+n),e,$i(s,r+n-1),e.right,e.rightOrigin,e.parent,e.parentSub,e.content.splice(n));if(e.deleted){i.markDeleted()}if(e.keep){i.keep=true}if(e.redone!==null){i.redone=$i(e.redone.client,e.redone.clock+n)}e.right=i;if(i.right!==null){i.right.left=i}t._mergeStructs.push(i);if(i.parentSub!==null&&i.right===null){i.parent._map.set(i.parentSub,i)}e.length=n;return i};const oh=(t,e,n,s,r)=>{const i=t.doc;const o=i.store;const c=i.clientID;const l=e.redone;if(l!==null){return Mo(t,l)}let h=e.parent._item;let a=null;let u;if(h!==null&&h.deleted===true){if(h.redone===null&&(!n.has(h)||oh(t,h,n,s,r)===null)){return null}while(h.redone!==null){h=Mo(t,h.redone)}}const d=h===null?e.parent:h.content.type;if(e.parentSub===null){a=e.left;u=e;while(a!==null){let e=a;while(e!==null&&e.parent._item!==h){e=e.redone===null?null:Mo(t,e.redone)}if(e!==null&&e.parent._item===h){a=e;break}a=a.left}while(u!==null){let e=u;while(e!==null&&e.parent._item!==h){e=e.redone===null?null:Mo(t,e.redone)}if(e!==null&&e.parent._item===h){u=e;break}u=u.right}}else{u=null;if(e.right&&!r){a=e;while(a!==null&&a.right!==null&&ti(s,a.right.id)){a=a.right}while(a!==null&&a.redone!==null){a=Mo(t,a.redone)}if(a&&a.right!==null){return null}}else{a=d._map.get(e.parentSub)||null}}const f=Do(o,c);const g=$i(c,f);const p=new ch(g,a,a&&a.lastId,u,u&&u.id,d,e.parentSub,e.content.copy());e.redone=g;rh(p,true);p.integrate(t,0);return p};class ch extends Al{constructor(t,e,n,s,r,i,o,c){super(t,c.getLength());this.origin=n;this.left=e;this.right=s;this.rightOrigin=r;this.parent=i;this.parentSub=o;this.redone=null;this.content=c;this.info=this.content.isCountable()?it:0}set marker(t){if((this.info&ct)>0!==t){this.info^=ct}}get marker(){return(this.info&ct)>0}get keep(){return(this.info&rt)>0}set keep(t){if(this.keep!==t){this.info^=rt}}get countable(){return(this.info&it)>0}get deleted(){return(this.info&ot)>0}set deleted(t){if(this.deleted!==t){this.info^=ot}}markDeleted(){this.info|=ot}getMissing(t,e){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=Do(e,this.origin.client)){return this.origin.client}if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=Do(e,this.rightOrigin.client)){return this.rightOrigin.client}if(this.parent&&this.parent.constructor===zi&&this.id.client!==this.parent.client&&this.parent.clock>=Do(e,this.parent.client)){return this.parent.client}if(this.origin){this.left=Uo(t,e,this.origin);this.origin=this.left.lastId}if(this.rightOrigin){this.right=Mo(t,this.rightOrigin);this.rightOrigin=this.right.id}if(this.left&&this.left.constructor===xl||this.right&&this.right.constructor===xl){this.parent=null}if(!this.parent){if(this.left&&this.left.constructor===ch){this.parent=this.left.parent;this.parentSub=this.left.parentSub}if(this.right&&this.right.constructor===ch){this.parent=this.right.parent;this.parentSub=this.right.parentSub}}else if(this.parent.constructor===zi){const t=xo(e,this.parent);if(t.constructor===xl){this.parent=null}else{this.parent=t.content.type}}return null}integrate(t,e){if(e>0){this.id.clock+=e;this.left=Uo(t,t.doc.store,$i(this.id.client,this.id.clock-1));this.origin=this.left.lastId;this.content=this.content.splice(e);this.length-=e}if(this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let e=this.left;let n;if(e!==null){n=e.right}else if(this.parentSub!==null){n=this.parent._map.get(this.parentSub)||null;while(n!==null&&n.left!==null){n=n.left}}else{n=this.parent._start}const s=new Set;const r=new Set;while(n!==null&&n!==this.right){r.add(n);s.add(n);if(Ji(this.origin,n.origin)){if(n.id.client{if(e.p===t){e.p=this;if(!this.deleted&&this.countable){e.index-=this.length}}}))}if(t.keep){this.keep=true}this.right=t.right;if(this.right!==null){this.right.left=this}this.length+=t.length;return true}return false}delete(t){if(!this.deleted){const e=this.parent;if(this.countable&&this.parentSub===null){e._length-=this.length}this.markDeleted();si(t.deleteSet,this.id.client,this.id.clock,this.length);Vo(t,e,this.parentSub);this.content.delete(t)}}gc(t,e){if(!this.deleted){throw dn()}this.content.gc(t);if(e){Oo(t,this,new xl(this.id,this.length))}else{this.content=new Ul(this.length)}}write(t,e){const n=e>0?$i(this.id.client,this.id.clock+e-1):this.origin;const s=this.rightOrigin;const r=this.parentSub;const i=this.content.getRef()&Ft|(n===null?0:ut)|(s===null?0:at)|(r===null?0:ht);t.writeInfo(i);if(n!==null){t.writeLeftID(n)}if(s!==null){t.writeRightID(s)}if(n===null&&s===null){const e=this.parent;if(e._item!==undefined){const n=e._item;if(n===null){const n=Ki(e);t.writeParentInfo(true);t.writeString(n)}else{t.writeParentInfo(false);t.writeLeftID(n.id)}}else if(e.constructor===String){t.writeParentInfo(true);t.writeString(e)}else if(e.constructor===zi){t.writeParentInfo(false);t.writeLeftID(e)}else{dn()}if(r!==null){t.writeString(r)}}this.content.write(t,e)}}const lh=(t,e)=>hh[e&Ft](t);const hh=[()=>{dn()},Ol,zl,Ml,Wl,Pl,Bl,nh,$l,Rl,()=>{dn()}];const ah=10;class uh extends Al{get deleted(){return true}delete(){}mergeWith(t){if(this.constructor!==t.constructor){return false}this.length+=t.length;return true}integrate(t,e){dn()}write(t,e){t.writeInfo(ah);Re(t.restEncoder,this.length-e)}getMissing(t,e){return null}}const dh=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof n.g!=="undefined"?n.g:{};const fh="__ $YJS$ __";if(dh[fh]===true){console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438")}dh[fh]=true}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9085.5a959b5878e7afd8a878.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9085.5a959b5878e7afd8a878.js deleted file mode 100644 index de8e40941c0691ca23ec52e1bfeffe543775cc90..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9085.5a959b5878e7afd8a878.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 9085.5a959b5878e7afd8a878.js.LICENSE.txt */ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9085],{91033:r=>{function e(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}r.exports=e},83729:r=>{function e(r,e){var t=-1,n=r==null?0:r.length;while(++t{var n=t(98598),o=t(75288);var a=Object.prototype;var u=a.hasOwnProperty;function c(r,e,t){var a=r[e];if(!(u.call(r,e)&&o(a,t))||t===undefined&&!(e in r)){n(r,e,t)}}r.exports=c},74733:(r,e,t)=>{var n=t(21791),o=t(95950);function a(r,e){return r&&n(e,o(e),r)}r.exports=a},43838:(r,e,t)=>{var n=t(21791),o=t(37241);function a(r,e){return r&&n(e,o(e),r)}r.exports=a},98598:(r,e,t)=>{var n=t(93243);function o(r,e,t){if(e=="__proto__"&&n){n(r,e,{configurable:true,enumerable:true,value:t,writable:true})}else{r[e]=t}}r.exports=o},9999:(r,e,t)=>{var n=t(37217),o=t(83729),a=t(16547),u=t(74733),c=t(43838),i=t(93290),f=t(23007),s=t(92271),l=t(48948),v=t(50002),p=t(83349),b=t(5861),y=t(76189),j=t(77199),x=t(35529),d=t(56449),h=t(3656),w=t(87730),g=t(23805),O=t(38440),_=t(95950),A=t(37241);var S=1,m=2,P=4;var k="[object Arguments]",E="[object Array]",I="[object Boolean]",U="[object Date]",F="[object Error]",C="[object Function]",D="[object GeneratorFunction]",M="[object Map]",R="[object Number]",B="[object Object]",L="[object RegExp]",N="[object Set]",T="[object String]",$="[object Symbol]",V="[object WeakMap]";var W="[object ArrayBuffer]",z="[object DataView]",G="[object Float32Array]",Y="[object Float64Array]",q="[object Int8Array]",H="[object Int16Array]",J="[object Int32Array]",K="[object Uint8Array]",Q="[object Uint8ClampedArray]",X="[object Uint16Array]",Z="[object Uint32Array]";var rr={};rr[k]=rr[E]=rr[W]=rr[z]=rr[I]=rr[U]=rr[G]=rr[Y]=rr[q]=rr[H]=rr[J]=rr[M]=rr[R]=rr[B]=rr[L]=rr[N]=rr[T]=rr[$]=rr[K]=rr[Q]=rr[X]=rr[Z]=true;rr[F]=rr[C]=rr[V]=false;function er(r,e,t,E,I,U){var F,M=e&S,R=e&m,L=e&P;if(t){F=I?t(r,E,I,U):t(r)}if(F!==undefined){return F}if(!g(r)){return r}var N=d(r);if(N){F=y(r);if(!M){return f(r,F)}}else{var T=b(r),$=T==C||T==D;if(h(r)){return i(r,M)}if(T==B||T==k||$&&!I){F=R||$?{}:x(r);if(!M){return R?l(r,c(F,r)):s(r,u(F,r))}}else{if(!rr[T]){return I?r:{}}F=j(r,T,M)}}U||(U=new n);var V=U.get(r);if(V){return V}U.set(r,F);if(O(r)){r.forEach((function(n){F.add(er(n,e,t,n,r,U))}))}else if(w(r)){r.forEach((function(n,o){F.set(o,er(n,e,t,o,r,U))}))}var W=L?R?p:v:R?A:_;var z=N?undefined:W(r);o(z||r,(function(n,o){if(z){o=n;n=r[o]}a(F,o,er(n,e,t,o,r,U))}));return F}r.exports=er},39344:(r,e,t)=>{var n=t(23805);var o=Object.create;var a=function(){function r(){}return function(e){if(!n(e)){return{}}if(o){return o(e)}r.prototype=e;var t=new r;r.prototype=undefined;return t}}();r.exports=a},83120:(r,e,t)=>{var n=t(14528),o=t(45891);function a(r,e,t,u,c){var i=-1,f=r.length;t||(t=o);c||(c=[]);while(++i0&&t(s)){if(e>1){a(s,e-1,t,u,c)}else{n(c,s)}}else if(!u){c[c.length]=s}}return c}r.exports=a},20426:r=>{var e=Object.prototype;var t=e.hasOwnProperty;function n(r,e){return r!=null&&t.call(r,e)}r.exports=n},28077:r=>{function e(r,e){return r!=null&&e in Object(r)}r.exports=e},29172:(r,e,t)=>{var n=t(5861),o=t(40346);var a="[object Map]";function u(r){return o(r)&&n(r)==a}r.exports=u},16038:(r,e,t)=>{var n=t(5861),o=t(40346);var a="[object Set]";function u(r){return o(r)&&n(r)==a}r.exports=u},72903:(r,e,t)=>{var n=t(23805),o=t(55527),a=t(90181);var u=Object.prototype;var c=u.hasOwnProperty;function i(r){if(!n(r)){return a(r)}var e=o(r),t=[];for(var u in r){if(!(u=="constructor"&&(e||!c.call(r,u)))){t.push(u)}}return t}r.exports=i},73170:(r,e,t)=>{var n=t(16547),o=t(31769),a=t(30361),u=t(23805),c=t(77797);function i(r,e,t,i){if(!u(r)){return r}e=o(e,r);var f=-1,s=e.length,l=s-1,v=r;while(v!=null&&++f{var n=t(37334),o=t(93243),a=t(83488);var u=!o?a:function(r,e){return o(r,"toString",{configurable:true,enumerable:false,value:n(e),writable:true})};r.exports=u},25160:r=>{function e(r,e,t){var n=-1,o=r.length;if(e<0){e=-e>o?0:o+e}t=t>o?o:t;if(t<0){t+=o}o=e>t?0:t-e>>>0;e>>>=0;var a=Array(o);while(++n{var n=t(31769),o=t(68090),a=t(68969),u=t(77797);function c(r,e){e=n(e,r);r=a(r,e);return r==null||delete r[u(o(e))]}r.exports=c},49653:(r,e,t)=>{var n=t(37828);function o(r){var e=new r.constructor(r.byteLength);new n(e).set(new n(r));return e}r.exports=o},93290:(r,e,t)=>{r=t.nmd(r);var n=t(9325);var o=true&&e&&!e.nodeType&&e;var a=o&&"object"=="object"&&r&&!r.nodeType&&r;var u=a&&a.exports===o;var c=u?n.Buffer:undefined,i=c?c.allocUnsafe:undefined;function f(r,e){if(e){return r.slice()}var t=r.length,n=i?i(t):new r.constructor(t);r.copy(n);return n}r.exports=f},76169:(r,e,t)=>{var n=t(49653);function o(r,e){var t=e?n(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}r.exports=o},73201:r=>{var e=/\w*$/;function t(r){var t=new r.constructor(r.source,e.exec(r));t.lastIndex=r.lastIndex;return t}r.exports=t},93736:(r,e,t)=>{var n=t(51873);var o=n?n.prototype:undefined,a=o?o.valueOf:undefined;function u(r){return a?Object(a.call(r)):{}}r.exports=u},71961:(r,e,t)=>{var n=t(49653);function o(r,e){var t=e?n(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}r.exports=o},23007:r=>{function e(r,e){var t=-1,n=r.length;e||(e=Array(n));while(++t{var n=t(16547),o=t(98598);function a(r,e,t,a){var u=!t;t||(t={});var c=-1,i=e.length;while(++c{var n=t(21791),o=t(4664);function a(r,e){return n(r,o(r),e)}r.exports=a},48948:(r,e,t)=>{var n=t(21791),o=t(86375);function a(r,e){return n(r,o(r),e)}r.exports=a},53138:(r,e,t)=>{var n=t(11331);function o(r){return n(r)?undefined:r}r.exports=o},93243:(r,e,t)=>{var n=t(56110);var o=function(){try{var r=n(Object,"defineProperty");r({},"",{});return r}catch(e){}}();r.exports=o},38816:(r,e,t)=>{var n=t(35970),o=t(56757),a=t(32865);function u(r){return a(o(r,undefined,n),r+"")}r.exports=u},83349:(r,e,t)=>{var n=t(82199),o=t(86375),a=t(37241);function u(r){return n(r,a,o)}r.exports=u},28879:(r,e,t)=>{var n=t(74335);var o=n(Object.getPrototypeOf,Object);r.exports=o},86375:(r,e,t)=>{var n=t(14528),o=t(28879),a=t(4664),u=t(63345);var c=Object.getOwnPropertySymbols;var i=!c?u:function(r){var e=[];while(r){n(e,a(r));r=o(r)}return e};r.exports=i},49326:(r,e,t)=>{var n=t(31769),o=t(72428),a=t(56449),u=t(30361),c=t(30294),i=t(77797);function f(r,e,t){e=n(e,r);var f=-1,s=e.length,l=false;while(++f{var e=Object.prototype;var t=e.hasOwnProperty;function n(r){var e=r.length,n=new r.constructor(e);if(e&&typeof r[0]=="string"&&t.call(r,"index")){n.index=r.index;n.input=r.input}return n}r.exports=n},77199:(r,e,t)=>{var n=t(49653),o=t(76169),a=t(73201),u=t(93736),c=t(71961);var i="[object Boolean]",f="[object Date]",s="[object Map]",l="[object Number]",v="[object RegExp]",p="[object Set]",b="[object String]",y="[object Symbol]";var j="[object ArrayBuffer]",x="[object DataView]",d="[object Float32Array]",h="[object Float64Array]",w="[object Int8Array]",g="[object Int16Array]",O="[object Int32Array]",_="[object Uint8Array]",A="[object Uint8ClampedArray]",S="[object Uint16Array]",m="[object Uint32Array]";function P(r,e,t){var P=r.constructor;switch(e){case j:return n(r);case i:case f:return new P(+r);case x:return o(r,t);case d:case h:case w:case g:case O:case _:case A:case S:case m:return c(r,t);case s:return new P;case l:case b:return new P(r);case v:return a(r);case p:return new P;case y:return u(r)}}r.exports=P},35529:(r,e,t)=>{var n=t(39344),o=t(28879),a=t(55527);function u(r){return typeof r.constructor=="function"&&!a(r)?n(o(r)):{}}r.exports=u},45891:(r,e,t)=>{var n=t(51873),o=t(72428),a=t(56449);var u=n?n.isConcatSpreadable:undefined;function c(r){return a(r)||o(r)||!!(u&&r&&r[u])}r.exports=c},90181:r=>{function e(r){var e=[];if(r!=null){for(var t in Object(r)){e.push(t)}}return e}r.exports=e},56757:(r,e,t)=>{var n=t(91033);var o=Math.max;function a(r,e,t){e=o(e===undefined?r.length-1:e,0);return function(){var a=arguments,u=-1,c=o(a.length-e,0),i=Array(c);while(++u{var n=t(47422),o=t(25160);function a(r,e){return e.length<2?r:n(r,o(e,0,-1))}r.exports=a},32865:(r,e,t)=>{var n=t(19570),o=t(51811);var a=o(n);r.exports=a},51811:r=>{var e=800,t=16;var n=Date.now;function o(r){var o=0,a=0;return function(){var u=n(),c=t-(u-a);a=u;if(c>0){if(++o>=e){return arguments[0]}}else{o=0}return r.apply(undefined,arguments)}}r.exports=o},88055:(r,e,t)=>{var n=t(9999);var o=1,a=4;function u(r){return n(r,o|a)}r.exports=u},37334:r=>{function e(r){return function(){return r}}r.exports=e},35970:(r,e,t)=>{var n=t(83120);function o(r){var e=r==null?0:r.length;return e?n(r,1):[]}r.exports=o},61448:(r,e,t)=>{var n=t(20426),o=t(49326);function a(r,e){return r!=null&&o(r,e,n)}r.exports=a},80631:(r,e,t)=>{var n=t(28077),o=t(49326);function a(r,e){return r!=null&&o(r,e,n)}r.exports=a},83488:r=>{function e(r){return r}r.exports=e},62193:(r,e,t)=>{var n=t(88984),o=t(5861),a=t(72428),u=t(56449),c=t(64894),i=t(3656),f=t(55527),s=t(37167);var l="[object Map]",v="[object Set]";var p=Object.prototype;var b=p.hasOwnProperty;function y(r){if(r==null){return true}if(c(r)&&(u(r)||typeof r=="string"||typeof r.splice=="function"||i(r)||s(r)||a(r))){return!r.length}var e=o(r);if(e==l||e==v){return!r.size}if(f(r)){return!n(r).length}for(var t in r){if(b.call(r,t)){return false}}return true}r.exports=y},87730:(r,e,t)=>{var n=t(29172),o=t(27301),a=t(86009);var u=a&&a.isMap;var c=u?o(u):n;r.exports=c},11331:(r,e,t)=>{var n=t(72552),o=t(28879),a=t(40346);var u="[object Object]";var c=Function.prototype,i=Object.prototype;var f=c.toString;var s=i.hasOwnProperty;var l=f.call(Object);function v(r){if(!a(r)||n(r)!=u){return false}var e=o(r);if(e===null){return true}var t=s.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&f.call(t)==l}r.exports=v},38440:(r,e,t)=>{var n=t(16038),o=t(27301),a=t(86009);var u=a&&a.isSet;var c=u?o(u):n;r.exports=c},37241:(r,e,t)=>{var n=t(70695),o=t(72903),a=t(64894);function u(r){return a(r)?n(r,true):o(r)}r.exports=u},68090:r=>{function e(r){var e=r==null?0:r.length;return e?r[e-1]:undefined}r.exports=e},90179:(r,e,t)=>{var n=t(34932),o=t(9999),a=t(19931),u=t(31769),c=t(21791),i=t(53138),f=t(38816),s=t(83349);var l=1,v=2,p=4;var b=f((function(r,e){var t={};if(r==null){return t}var f=false;e=n(e,(function(e){e=u(e,r);f||(f=e.length>1);return e}));c(r,s(r),t);if(f){t=o(t,l|v|p,i)}var b=e.length;while(b--){a(t,e[b])}return t}));r.exports=b},63560:(r,e,t)=>{var n=t(73170);function o(r,e,t){return r==null?r:n(r,e,t)}r.exports=o},42072:(r,e,t)=>{var n=t(34932),o=t(23007),a=t(56449),u=t(44394),c=t(61802),i=t(77797),f=t(13222);function s(r){if(a(r)){return n(r,i)}return u(r)?[r]:o(c(f(r)))}r.exports=s},21020:(r,e,t)=>{"use strict";var n=t(44914),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),u=Object.prototype.hasOwnProperty,c=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function f(r,e,t){var n,a={},f=null,s=null;void 0!==t&&(f=""+t);void 0!==e.key&&(f=""+e.key);void 0!==e.ref&&(s=e.ref);for(n in e)u.call(e,n)&&!i.hasOwnProperty(n)&&(a[n]=e[n]);if(r&&r.defaultProps)for(n in e=r.defaultProps,e)void 0===a[n]&&(a[n]=e[n]);return{$$typeof:o,type:r,key:f,ref:s,props:a,_owner:c.current}}e.Fragment=a;e.jsx=f;e.jsxs=f},74848:(r,e,t)=>{"use strict";if(true){r.exports=t(21020)}else{}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9085.5a959b5878e7afd8a878.js.LICENSE.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9085.5a959b5878e7afd8a878.js.LICENSE.txt deleted file mode 100644 index e68557b276e85c5ba9b75686382f339f3e148abe..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9085.5a959b5878e7afd8a878.js.LICENSE.txt +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9123.501219cd782693d6539f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9123.501219cd782693d6539f.js deleted file mode 100644 index a8543817d07727cb306727f8048e9f1389c56c3c..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9123.501219cd782693d6539f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9123],{19123:(i,l,e)=>{e.r(l);e.d(l,{gas:()=>t,gasArm:()=>n});function a(i){var l=[];var e="";var a={".abort":"builtin",".align":"builtin",".altmacro":"builtin",".ascii":"builtin",".asciz":"builtin",".balign":"builtin",".balignw":"builtin",".balignl":"builtin",".bundle_align_mode":"builtin",".bundle_lock":"builtin",".bundle_unlock":"builtin",".byte":"builtin",".cfi_startproc":"builtin",".comm":"builtin",".data":"builtin",".def":"builtin",".desc":"builtin",".dim":"builtin",".double":"builtin",".eject":"builtin",".else":"builtin",".elseif":"builtin",".end":"builtin",".endef":"builtin",".endfunc":"builtin",".endif":"builtin",".equ":"builtin",".equiv":"builtin",".eqv":"builtin",".err":"builtin",".error":"builtin",".exitm":"builtin",".extern":"builtin",".fail":"builtin",".file":"builtin",".fill":"builtin",".float":"builtin",".func":"builtin",".global":"builtin",".gnu_attribute":"builtin",".hidden":"builtin",".hword":"builtin",".ident":"builtin",".if":"builtin",".incbin":"builtin",".include":"builtin",".int":"builtin",".internal":"builtin",".irp":"builtin",".irpc":"builtin",".lcomm":"builtin",".lflags":"builtin",".line":"builtin",".linkonce":"builtin",".list":"builtin",".ln":"builtin",".loc":"builtin",".loc_mark_labels":"builtin",".local":"builtin",".long":"builtin",".macro":"builtin",".mri":"builtin",".noaltmacro":"builtin",".nolist":"builtin",".octa":"builtin",".offset":"builtin",".org":"builtin",".p2align":"builtin",".popsection":"builtin",".previous":"builtin",".print":"builtin",".protected":"builtin",".psize":"builtin",".purgem":"builtin",".pushsection":"builtin",".quad":"builtin",".reloc":"builtin",".rept":"builtin",".sbttl":"builtin",".scl":"builtin",".section":"builtin",".set":"builtin",".short":"builtin",".single":"builtin",".size":"builtin",".skip":"builtin",".sleb128":"builtin",".space":"builtin",".stab":"builtin",".string":"builtin",".struct":"builtin",".subsection":"builtin",".symver":"builtin",".tag":"builtin",".text":"builtin",".title":"builtin",".type":"builtin",".uleb128":"builtin",".val":"builtin",".version":"builtin",".vtable_entry":"builtin",".vtable_inherit":"builtin",".warning":"builtin",".weak":"builtin",".weakref":"builtin",".word":"builtin"};var t={};function n(){e="#";t.al="variable";t.ah="variable";t.ax="variable";t.eax="variableName.special";t.rax="variableName.special";t.bl="variable";t.bh="variable";t.bx="variable";t.ebx="variableName.special";t.rbx="variableName.special";t.cl="variable";t.ch="variable";t.cx="variable";t.ecx="variableName.special";t.rcx="variableName.special";t.dl="variable";t.dh="variable";t.dx="variable";t.edx="variableName.special";t.rdx="variableName.special";t.si="variable";t.esi="variableName.special";t.rsi="variableName.special";t.di="variable";t.edi="variableName.special";t.rdi="variableName.special";t.sp="variable";t.esp="variableName.special";t.rsp="variableName.special";t.bp="variable";t.ebp="variableName.special";t.rbp="variableName.special";t.ip="variable";t.eip="variableName.special";t.rip="variableName.special";t.cs="keyword";t.ds="keyword";t.ss="keyword";t.es="keyword";t.fs="keyword";t.gs="keyword"}function b(){e="@";a.syntax="builtin";t.r0="variable";t.r1="variable";t.r2="variable";t.r3="variable";t.r4="variable";t.r5="variable";t.r6="variable";t.r7="variable";t.r8="variable";t.r9="variable";t.r10="variable";t.r11="variable";t.r12="variable";t.sp="variableName.special";t.lr="variableName.special";t.pc="variableName.special";t.r13=t.sp;t.r14=t.lr;t.r15=t.pc;l.push((function(i,l){if(i==="#"){l.eatWhile(/\w/);return"number"}}))}if(i==="x86"){n()}else if(i==="arm"||i==="armv6"){b()}function r(i,l){var e=false,a;while((a=i.next())!=null){if(a===l&&!e){return false}e=!e&&a==="\\"}return e}function u(i,l){var e=false,a;while((a=i.next())!=null){if(a==="/"&&e){l.tokenize=null;break}e=a==="*"}return"comment"}return{name:"gas",startState:function(){return{tokenize:null}},token:function(i,n){if(n.tokenize){return n.tokenize(i,n)}if(i.eatSpace()){return null}var b,s,c=i.next();if(c==="/"){if(i.eat("*")){n.tokenize=u;return u(i,n)}}if(c===e){i.skipToEnd();return"comment"}if(c==='"'){r(i,'"');return"string"}if(c==="."){i.eatWhile(/\w/);s=i.current().toLowerCase();b=a[s];return b||null}if(c==="="){i.eatWhile(/\w/);return"tag"}if(c==="{"){return"bracket"}if(c==="}"){return"bracket"}if(/\d/.test(c)){if(c==="0"&&i.eat("x")){i.eatWhile(/[0-9a-fA-F]/);return"number"}i.eatWhile(/\d/);return"number"}if(/\w/.test(c)){i.eatWhile(/\w/);if(i.eat(":")){return"tag"}s=i.current().toLowerCase();b=t[s];return b||null}for(var o=0;o{p.d(e,{createInfoServices:()=>t.v});var t=p(25996);var c=p(74888)}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9137.179a3c47465e7fb8f067.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9137.179a3c47465e7fb8f067.js deleted file mode 100644 index 38f400317c376a2fbec079f0df368917ac4e7a57..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9137.179a3c47465e7fb8f067.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9137],{59137:(e,r,t)=>{t.r(r);t.d(r,{css:()=>_,gss:()=>S,keywords:()=>q,less:()=>O,mkCSS:()=>i,sCSS:()=>C});function i(e){e={...K,...e};var r=e.inline;var t=e.tokenHooks,i=e.documentTypes||{},o=e.mediaTypes||{},a=e.mediaFeatures||{},n=e.mediaValueKeywords||{},l=e.propertyKeywords||{},s=e.nonStandardPropertyKeywords||{},c=e.fontProperties||{},d=e.counterDescriptors||{},p=e.colorKeywords||{},u=e.valueKeywords||{},m=e.allowNested,f=e.lineComment,g=e.supportsAtComponent===true,h=e.highlightNonStandardPropertyKeywords!==false;var b,k;function y(e,r){b=r;return e}function w(e,r){var i=e.next();if(t[i]){var o=t[i](e,r);if(o!==false)return o}if(i=="@"){e.eatWhile(/[\w\\\-]/);return y("def",e.current())}else if(i=="="||(i=="~"||i=="|")&&e.eat("=")){return y(null,"compare")}else if(i=='"'||i=="'"){r.tokenize=v(i);return r.tokenize(e,r)}else if(i=="#"){e.eatWhile(/[\w\\\-]/);return y("atom","hash")}else if(i=="!"){e.match(/^\s*\w*/);return y("keyword","important")}else if(/\d/.test(i)||i=="."&&e.eat(/\d/)){e.eatWhile(/[\w.%]/);return y("number","unit")}else if(i==="-"){if(/[\d.]/.test(e.peek())){e.eatWhile(/[\w.%]/);return y("number","unit")}else if(e.match(/^-[\w\\\-]*/)){e.eatWhile(/[\w\\\-]/);if(e.match(/^\s*:/,false))return y("def","variable-definition");return y("variableName","variable")}else if(e.match(/^\w+-/)){return y("meta","meta")}}else if(/[,+>*\/]/.test(i)){return y(null,"select-op")}else if(i=="."&&e.match(/^-?[_a-z][_a-z0-9-]*/i)){return y("qualifier","qualifier")}else if(/[:;{}\[\]\(\)]/.test(i)){return y(null,i)}else if(e.match(/^[\w-.]+(?=\()/)){if(/^(url(-prefix)?|domain|regexp)$/i.test(e.current())){r.tokenize=x}return y("variableName.function","variable")}else if(/[\w\\\-]/.test(i)){e.eatWhile(/[\w\\\-]/);return y("property","word")}else{return y(null,null)}}function v(e){return function(r,t){var i=false,o;while((o=r.next())!=null){if(o==e&&!i){if(e==")")r.backUp(1);break}i=!i&&o=="\\"}if(o==e||!i&&e!=")")t.tokenize=null;return y("string","string")}}function x(e,r){e.next();if(!e.match(/^\s*[\"\')]/,false))r.tokenize=v(")");else r.tokenize=null;return y(null,"(")}function z(e,r,t){this.type=e;this.indent=r;this.prev=t}function j(e,r,t,i){e.context=new z(t,r.indentation()+(i===false?0:r.indentUnit),e.context);return t}function q(e){if(e.context.prev)e.context=e.context.prev;return e.context.type}function _(e,r,t){return O[t.context.type](e,r,t)}function B(e,r,t,i){for(var o=i||1;o>0;o--)t.context=t.context.prev;return _(e,r,t)}function C(e){var r=e.current().toLowerCase();if(u.hasOwnProperty(r))k="atom";else if(p.hasOwnProperty(r))k="keyword";else k="variable"}var O={};O.top=function(e,r,t){if(e=="{"){return j(t,r,"block")}else if(e=="}"&&t.context.prev){return q(t)}else if(g&&/@component/i.test(e)){return j(t,r,"atComponentBlock")}else if(/^@(-moz-)?document$/i.test(e)){return j(t,r,"documentTypes")}else if(/^@(media|supports|(-moz-)?document|import)$/i.test(e)){return j(t,r,"atBlock")}else if(/^@(font-face|counter-style)/i.test(e)){t.stateArg=e;return"restricted_atBlock_before"}else if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e)){return"keyframes"}else if(e&&e.charAt(0)=="@"){return j(t,r,"at")}else if(e=="hash"){k="builtin"}else if(e=="word"){k="tag"}else if(e=="variable-definition"){return"maybeprop"}else if(e=="interpolation"){return j(t,r,"interpolation")}else if(e==":"){return"pseudo"}else if(m&&e=="("){return j(t,r,"parens")}return t.context.type};O.block=function(e,r,t){if(e=="word"){var i=r.current().toLowerCase();if(l.hasOwnProperty(i)){k="property";return"maybeprop"}else if(s.hasOwnProperty(i)){k=h?"string.special":"property";return"maybeprop"}else if(m){k=r.match(/^\s*:(?:\s|$)/,false)?"property":"tag";return"block"}else{k="error";return"maybeprop"}}else if(e=="meta"){return"block"}else if(!m&&(e=="hash"||e=="qualifier")){k="error";return"block"}else{return O.top(e,r,t)}};O.maybeprop=function(e,r,t){if(e==":")return j(t,r,"prop");return _(e,r,t)};O.prop=function(e,r,t){if(e==";")return q(t);if(e=="{"&&m)return j(t,r,"propBlock");if(e=="}"||e=="{")return B(e,r,t);if(e=="(")return j(t,r,"parens");if(e=="hash"&&!/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(r.current())){k="error"}else if(e=="word"){C(r)}else if(e=="interpolation"){return j(t,r,"interpolation")}return"prop"};O.propBlock=function(e,r,t){if(e=="}")return q(t);if(e=="word"){k="property";return"maybeprop"}return t.context.type};O.parens=function(e,r,t){if(e=="{"||e=="}")return B(e,r,t);if(e==")")return q(t);if(e=="(")return j(t,r,"parens");if(e=="interpolation")return j(t,r,"interpolation");if(e=="word")C(r);return"parens"};O.pseudo=function(e,r,t){if(e=="meta")return"pseudo";if(e=="word"){k="variableName.constant";return t.context.type}return _(e,r,t)};O.documentTypes=function(e,r,t){if(e=="word"&&i.hasOwnProperty(r.current())){k="tag";return t.context.type}else{return O.atBlock(e,r,t)}};O.atBlock=function(e,r,t){if(e=="(")return j(t,r,"atBlock_parens");if(e=="}"||e==";")return B(e,r,t);if(e=="{")return q(t)&&j(t,r,m?"block":"top");if(e=="interpolation")return j(t,r,"interpolation");if(e=="word"){var i=r.current().toLowerCase();if(i=="only"||i=="not"||i=="and"||i=="or")k="keyword";else if(o.hasOwnProperty(i))k="attribute";else if(a.hasOwnProperty(i))k="property";else if(n.hasOwnProperty(i))k="keyword";else if(l.hasOwnProperty(i))k="property";else if(s.hasOwnProperty(i))k=h?"string.special":"property";else if(u.hasOwnProperty(i))k="atom";else if(p.hasOwnProperty(i))k="keyword";else k="error"}return t.context.type};O.atComponentBlock=function(e,r,t){if(e=="}")return B(e,r,t);if(e=="{")return q(t)&&j(t,r,m?"block":"top",false);if(e=="word")k="error";return t.context.type};O.atBlock_parens=function(e,r,t){if(e==")")return q(t);if(e=="{"||e=="}")return B(e,r,t,2);return O.atBlock(e,r,t)};O.restricted_atBlock_before=function(e,r,t){if(e=="{")return j(t,r,"restricted_atBlock");if(e=="word"&&t.stateArg=="@counter-style"){k="variable";return"restricted_atBlock_before"}return _(e,r,t)};O.restricted_atBlock=function(e,r,t){if(e=="}"){t.stateArg=null;return q(t)}if(e=="word"){if(t.stateArg=="@font-face"&&!c.hasOwnProperty(r.current().toLowerCase())||t.stateArg=="@counter-style"&&!d.hasOwnProperty(r.current().toLowerCase()))k="error";else k="property";return"maybeprop"}return"restricted_atBlock"};O.keyframes=function(e,r,t){if(e=="word"){k="variable";return"keyframes"}if(e=="{")return j(t,r,"top");return _(e,r,t)};O.at=function(e,r,t){if(e==";")return q(t);if(e=="{"||e=="}")return B(e,r,t);if(e=="word")k="tag";else if(e=="hash")k="builtin";return"at"};O.interpolation=function(e,r,t){if(e=="}")return q(t);if(e=="{"||e==";")return B(e,r,t);if(e=="word")k="variable";else if(e!="variable"&&e!="("&&e!=")")k="error";return"interpolation"};return{name:e.name,startState:function(){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new z(r?"block":"top",0,null)}},token:function(e,r){if(!r.tokenize&&e.eatSpace())return null;var t=(r.tokenize||w)(e,r);if(t&&typeof t=="object"){b=t[1];t=t[0]}k=t;if(b!="comment")r.state=O[r.state](b,e,r);return k},indent:function(e,r,t){var i=e.context,o=r&&r.charAt(0);var a=i.indent;if(i.type=="prop"&&(o=="}"||o==")"))i=i.prev;if(i.prev){if(o=="}"&&(i.type=="block"||i.type=="top"||i.type=="interpolation"||i.type=="restricted_atBlock")){i=i.prev;a=i.indent}else if(o==")"&&(i.type=="parens"||i.type=="atBlock_parens")||o=="{"&&(i.type=="at"||i.type=="atBlock")){a=Math.max(0,i.indent-t.unit)}}return a},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:f,block:{open:"/*",close:"*/"}},autocomplete:P}}}function o(e){var r={};for(var t=0;t{i.r(e);i.d(e,{BidiSpan:()=>Gt,BlockInfo:()=>gs,BlockType:()=>Mt,Decoration:()=>Ct,Direction:()=>Vt,EditorView:()=>oo,GutterMarker:()=>Zn,MatchDecorator:()=>_o,RectangleMarker:()=>Mo,ViewPlugin:()=>ke,ViewUpdate:()=>Fe,WidgetType:()=>xt,__test:()=>Br,closeHoverTooltips:()=>Yn,crosshairCursor:()=>Sn,drawSelection:()=>Bo,dropCursor:()=>qo,getDrawSelectionConfig:()=>Lo,getPanel:()=>jn,getTooltip:()=>In,gutter:()=>or,gutterLineClass:()=>tr,gutterWidgetClass:()=>er,gutters:()=>rr,hasHoverTooltips:()=>qn,highlightActiveLine:()=>an,highlightActiveLineGutter:()=>Cr,highlightSpecialChars:()=>Jo,highlightTrailingWhitespace:()=>Rr,highlightWhitespace:()=>Tr,hoverTooltip:()=>zn,keymap:()=>po,layer:()=>Eo,lineNumberMarkers:()=>pr,lineNumberWidgetMarker:()=>gr,lineNumbers:()=>yr,logException:()=>Se,panels:()=>Gn,placeholder:()=>dn,rectangularSelection:()=>vn,repositionTooltips:()=>_n,runScopeHandlers:()=>wo,scrollPastEnd:()=>ln,showPanel:()=>Jn,showTooltip:()=>Bn,tooltips:()=>Cn});var s=i(71674);var o=i(23546);var n={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"};var r={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'};var l=typeof navigator!="undefined"&&/Chrome\/(\d+)/.exec(navigator.userAgent);var a=typeof navigator!="undefined"&&/Gecko\/\d+/.test(navigator.userAgent);var h=typeof navigator!="undefined"&&/Mac/.test(navigator.platform);var c=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);var f=h||l&&+l[1]<57;for(var d=0;d<10;d++)n[48+d]=n[96+d]=String(d);for(var d=1;d<=24;d++)n[d+111]="F"+d;for(var d=65;d<=90;d++){n[d]=String.fromCharCode(d+32);r[d]=String.fromCharCode(d)}for(var u in n)if(!r.hasOwnProperty(u))r[u]=n[u];function p(t){var e=f&&(t.ctrlKey||t.altKey||t.metaKey)||c&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified";var i=!e&&t.key||(t.shiftKey?r:n)[t.keyCode]||t.key||"Unidentified";if(i=="Esc")i="Escape";if(i=="Del")i="Delete";if(i=="Left")i="ArrowLeft";if(i=="Up")i="ArrowUp";if(i=="Right")i="ArrowRight";if(i=="Down")i="ArrowDown";return i}function g(t){let e;if(t.nodeType==11){e=t.getSelection?t:t.ownerDocument}else{e=t}return e.getSelection()}function m(t,e){return e?t==e||t.contains(e.nodeType!=1?e.parentNode:e):false}function w(t,e){if(!e.anchorNode)return false;try{return m(t,e.anchorNode)}catch(i){return false}}function v(t){if(t.nodeType==3)return L(t,0,t.nodeValue.length).getClientRects();else if(t.nodeType==1)return t.getClientRects();else return[]}function b(t,e,i,s){return i?x(t,e,i,s,-1)||x(t,e,i,s,1):false}function y(t){for(var e=0;;e++){t=t.previousSibling;if(!t)return e}}function S(t){return t.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}function x(t,e,i,s,o){for(;;){if(t==i&&e==s)return true;if(e==(o<0?0:M(t))){if(t.nodeName=="DIV")return false;let i=t.parentNode;if(!i||i.nodeType!=1)return false;e=y(t)+(o<0?0:1);t=i}else if(t.nodeType==1){t=t.childNodes[e+(o<0?-1:0)];if(t.nodeType==1&&t.contentEditable=="false")return false;e=o<0?M(t):0}else{return false}}}function M(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function C(t,e){let i=e?t.left:t.right;return{left:i,right:i,top:t.top,bottom:t.bottom}}function k(t){let e=t.visualViewport;if(e)return{left:0,right:e.width,top:0,bottom:e.height};return{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function A(t,e){let i=e.width/t.offsetWidth;let s=e.height/t.offsetHeight;if(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.width-t.offsetWidth)<1)i=1;if(s>.995&&s<1.005||!isFinite(s)||Math.abs(e.height-t.offsetHeight)<1)s=1;return{scaleX:i,scaleY:s}}function D(t,e,i,s,o,n,r,l){let a=t.ownerDocument,h=a.defaultView||window;for(let c=t,f=false;c&&!f;){if(c.nodeType==1){let t,d=c==a.body;let u=1,p=1;if(d){t=k(h)}else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position))f=true;if(c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let e=c.getBoundingClientRect();({scaleX:u,scaleY:p}=A(c,e));t={left:e.left,right:e.left+c.clientWidth*u,top:e.top,bottom:e.top+c.clientHeight*p}}let g=0,m=0;if(o=="nearest"){if(e.top0&&e.bottom>t.bottom+m)m=e.bottom-t.bottom+r}else if(e.bottom>t.bottom){m=e.bottom-t.bottom+r;if(i<0&&e.top-m0&&e.right>t.right+g)g=e.right-t.right+n}else if(e.right>t.right){g=e.right-t.right+n;if(i<0&&e.leftt.bottom||e.leftt.right)e={left:Math.max(e.left,t.left),right:Math.min(e.right,t.right),top:Math.max(e.top,t.top),bottom:Math.min(e.bottom,t.bottom)};c=c.assignedSlot||c.parentNode}else if(c.nodeType==11){c=c.host}else{break}}}function O(t){let e=t.ownerDocument,i,s;for(let o=t.parentNode;o;){if(o==e.body||i&&s){break}else if(o.nodeType==1){if(!s&&o.scrollHeight>o.clientHeight)s=o;if(!i&&o.scrollWidth>o.clientWidth)i=o;o=o.assignedSlot||o.parentNode}else if(o.nodeType==11){o=o.host}else{break}}return{x:i,y:s}}class T{constructor(){this.anchorNode=null;this.anchorOffset=0;this.focusNode=null;this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}setRange(t){let{anchorNode:e,focusNode:i}=t;this.set(e,Math.min(t.anchorOffset,e?M(e):0),i,Math.min(t.focusOffset,i?M(i):0))}set(t,e,i,s){this.anchorNode=t;this.anchorOffset=e;this.focusNode=i;this.focusOffset=s}}let E=null;function R(t){if(t.setActive)return t.setActive();if(E)return t.focus(E);let e=[];for(let i=t;i;i=i.parentNode){e.push(i,i.scrollTop,i.scrollLeft);if(i==i.ownerDocument)break}t.focus(E==null?{get preventScroll(){E={preventScroll:true};return true}}:undefined);if(!E){E=false;for(let t=0;tMath.max(1,t.scrollHeight-t.clientHeight-4)}function W(t,e){for(let i=t,s=e;;){if(i.nodeType==3&&s>0){return{node:i,offset:s}}else if(i.nodeType==1&&s>0){if(i.contentEditable=="false")return null;i=i.childNodes[s-1];s=M(i)}else if(i.parentNode&&!S(i)){s=y(i);i=i.parentNode}else{return null}}}function z(t,e){for(let i=t,s=e;;){if(i.nodeType==3&&se)return i.domBoundsAround(t,e,a);if(c>=t&&s==-1){s=l;o=a}if(a>e&&i.dom.parentNode==this.dom){n=l;r=h;break}h=c;a=c+i.breakAfter}return{from:o,to:r<0?i+this.length:r,startDOM:(s?this.children[s-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:n=0?this.children[n].dom:null}}markDirty(t=false){this.flags|=2;this.markParentsDirty(t)}markParentsDirty(t){for(let e=this.parent;e;e=e.parent){if(t)e.flags|=2;if(e.flags&1)return;e.flags|=1;t=false}}setParent(t){if(this.parent!=t){this.parent=t;if(this.flags&7)this.markParentsDirty(true)}}setDOM(t){if(this.dom==t)return;if(this.dom)this.dom.cmView=null;this.dom=t;t.cmView=this}get rootView(){for(let t=this;;){let e=t.parent;if(!e)return t;t=e}}replaceChildren(t,e,i=q){this.markDirty();for(let s=t;sthis.pos||t==this.pos&&(e>0||this.i==0||this.children[this.i-1].breakAfter)){this.off=t-this.pos;return this}let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function X(t,e,i,s,o,n,r,l,a){let{children:h}=t;let c=h.length?h[e]:null;let f=n.length?n[n.length-1]:null;let d=f?f.breakAfter:r;if(e==s&&c&&!r&&!d&&n.length<2&&c.merge(i,o,n.length?f:null,i==0,l,a))return;if(s0){if(!r&&n.length&&c.merge(i,c.length,n[0],false,l,0)){c.breakAfter=n.shift().breakAfter}else if(i2);var nt={mac:ot||/Mac/.test(j.platform),windows:/Win/.test(j.platform),linux:/Linux|X11/.test(j.platform),ie:Z,ie_version:Q?$.documentMode||6:J?+J[1]:U?+U[1]:0,gecko:tt,gecko_version:tt?+(/Firefox\/(\d+)/.exec(j.userAgent)||[0,0])[1]:0,chrome:!!et,chrome_version:et?+et[1]:0,ios:ot,android:/Android\b/.test(j.userAgent),webkit:it,safari:st,webkit_version:it?+(/\bAppleWebKit\/(\d+)/.exec(j.userAgent)||[0,0])[1]:0,tabSize:$.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const rt=256;class lt extends K{constructor(t){super();this.text=t}get length(){return this.text.length}createDOM(t){this.setDOM(t||document.createTextNode(this.text))}sync(t,e){if(!this.dom)this.createDOM();if(this.dom.nodeValue!=this.text){if(e&&e.node==this.dom)e.written=true;this.dom.nodeValue=this.text}}reuseDOM(t){if(t.nodeType==3)this.createDOM(t)}merge(t,e,i){if(this.flags&8||i&&(!(i instanceof lt)||this.length-(e-t)+i.length>rt||i.flags&8))return false;this.text=this.text.slice(0,t)+(i?i.text:"")+this.text.slice(e);this.markDirty();return true}split(t){let e=new lt(this.text.slice(t));this.text=this.text.slice(0,t);this.markDirty();e.flags|=this.flags&8;return e}localPosFromDOM(t,e){return t==this.dom?e:e?this.text.length:0}domAtPos(t){return new I(this.dom,t)}domBoundsAround(t,e,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(t,e){return ht(this.dom,t,e)}}class at extends K{constructor(t,e=[],i=0){super();this.mark=t;this.children=e;this.length=i;for(let s of e)s.setParent(this)}setAttrs(t){N(t);if(this.mark.class)t.className=this.mark.class;if(this.mark.attrs)for(let e in this.mark.attrs)t.setAttribute(e,this.mark.attrs[e]);return t}canReuseDOM(t){return super.canReuseDOM(t)&&!((this.flags|t.flags)&8)}reuseDOM(t){if(t.nodeName==this.mark.tagName.toUpperCase()){this.setDOM(t);this.flags|=4|2}}sync(t,e){if(!this.dom)this.setDOM(this.setAttrs(document.createElement(this.mark.tagName)));else if(this.flags&4)this.setAttrs(this.dom);super.sync(t,e)}merge(t,e,i,s,o,n){if(i&&(!(i instanceof at&&i.mark.eq(this.mark))||t&&o<=0||et)e.push(i=t)s=o;i=n;o++}let n=this.length-t;this.length=t;if(s>-1){this.children.length=s;this.markDirty()}return new at(this.mark,e,n)}domAtPos(t){return dt(this,t)}coordsAt(t,e){return pt(this,t,e)}}function ht(t,e,i){let s=t.nodeValue.length;if(e>s)e=s;let o=e,n=e,r=0;if(e==0&&i<0||e==s&&i>=0){if(!(nt.chrome||nt.gecko)){if(e){o--;r=1}else if(n=0)?0:l.length-1];if(nt.safari&&!r&&a.width==0)a=Array.prototype.find.call(l,(t=>t.width))||a;return r?C(a,r<0):a||null}class ct extends K{static create(t,e,i){return new ct(t,e,i)}constructor(t,e,i){super();this.widget=t;this.length=e;this.side=i;this.prevWidget=null}split(t){let e=ct.create(this.widget,this.length-t,this.side);this.length-=t;return e}sync(t){if(!this.dom||!this.widget.updateDOM(this.dom,t)){if(this.dom&&this.prevWidget)this.prevWidget.destroy(this.dom);this.prevWidget=null;this.setDOM(this.widget.toDOM(t));if(!this.widget.editable)this.dom.contentEditable="false"}}getSide(){return this.side}merge(t,e,i,s,o,n){if(i&&(!(i instanceof ct)||!this.widget.compare(i.widget)||t>0&&o<=0||e0)?I.before(this.dom):I.after(this.dom,t==this.length)}domBoundsAround(){return null}coordsAt(t,e){let i=this.widget.coordsAt(this.dom,t,e);if(i)return i;let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let n=this.side?this.side<0:t>0;for(let r=n?s.length-1:0;;r+=n?-1:1){o=s[r];if(t>0?r==0:r==s.length-1||o.top0?I.before(this.dom):I.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(t){return this.dom.getBoundingClientRect()}get overrideDOMText(){return s.Text.empty}get isHidden(){return true}}lt.prototype.children=ct.prototype.children=ft.prototype.children=q;function dt(t,e){let i=t.dom,{children:s}=t,o=0;for(let n=0;on&&e0;n--){let t=s[n-1];if(t.dom.parentNode==i)return t.domAtPos(t.length)}for(let n=o;n0&&e instanceof at&&o.length&&(s=o[o.length-1])instanceof at&&s.mark.eq(e.mark)){ut(s,e.children[0],i-1)}else{o.push(e);e.setParent(t)}t.length+=e.length}function pt(t,e,i){let s=null,o=-1,n=null,r=-1;function l(t,e){for(let a=0,h=0;a=e){if(c.children.length){l(c,e-h)}else if((!n||n.isHidden&&(i>0||mt(n,c)))&&(f>e||h==f&&c.getSide()>0)){n=c;r=e-h}else if(h-1?1:0)!=o.length-(i&&o.indexOf(i)>-1?1:0))return false;for(let n of s){if(n!=i&&(o.indexOf(n)==-1||t[n]!==e[n]))return false}return true}function yt(t,e,i){let s=false;if(e)for(let o in e)if(!(i&&o in i)){s=true;if(o=="style")t.style.cssText="";else t.removeAttribute(o)}if(i)for(let o in i)if(!(e&&e[o]==i[o])){s=true;if(o=="style")t.style.cssText=i[o];else t.setAttribute(o,i[o])}return s}function St(t){let e=Object.create(null);for(let i=0;i0?3e8:-4e8:e>0?1e8:-1e8;return new Dt(t,e,e,i,t.widget||null,false)}static replace(t){let e=!!t.block,i,s;if(t.isBlockGap){i=-5e8;s=4e8}else{let{start:o,end:n}=Ot(t,e);i=(o?e?-3e8:-1:5e8)-1;s=(n?e?2e8:1:-6e8)+1}return new Dt(t,i,s,e,t.widget||null,true)}static line(t){return new At(t)}static set(t,e=false){return s.RangeSet.of(t,e)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:false}}Ct.none=s.RangeSet.empty;class kt extends Ct{constructor(t){let{start:e,end:i}=Ot(t);super(e?-1:5e8,i?1:-6e8,null,t);this.tagName=t.tagName||"span";this.class=t.class||"";this.attrs=t.attributes||null}eq(t){var e,i;return this==t||t instanceof kt&&this.tagName==t.tagName&&(this.class||((e=this.attrs)===null||e===void 0?void 0:e.class))==(t.class||((i=t.attrs)===null||i===void 0?void 0:i.class))&&bt(this.attrs,t.attrs,"class")}range(t,e=t){if(t>=e)throw new RangeError("Mark decorations may not be empty");return super.range(t,e)}}kt.prototype.point=false;class At extends Ct{constructor(t){super(-2e8,-2e8,null,t)}eq(t){return t instanceof At&&this.spec.class==t.spec.class&&bt(this.spec.attributes,t.spec.attributes)}range(t,e=t){if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,e)}}At.prototype.mapMode=s.MapMode.TrackBefore;At.prototype.point=true;class Dt extends Ct{constructor(t,e,i,o,n,r){super(e,i,n,t);this.block=o;this.isReplace=r;this.mapMode=!o?s.MapMode.TrackDel:e<=0?s.MapMode.TrackBefore:s.MapMode.TrackAfter}get type(){return this.startSide!=this.endSide?Mt.WidgetRange:this.startSide<=0?Mt.WidgetBefore:Mt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(t){return t instanceof Dt&&Tt(this.widget,t.widget)&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide}range(t,e=t){if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,e)}}Dt.prototype.point=true;function Ot(t,e=false){let{inclusiveStart:i,inclusiveEnd:s}=t;if(i==null)i=t.inclusive;if(s==null)s=t.inclusive;return{start:i!==null&&i!==void 0?i:e,end:s!==null&&s!==void 0?s:e}}function Tt(t,e){return t==e||!!(t&&e&&t.compare(e))}function Et(t,e,i,s=0){let o=i.length-1;if(o>=0&&i[o]+s>=t)i[o]=Math.max(i[o],e);else i.push(t,e)}class Rt extends K{constructor(){super(...arguments);this.children=[];this.length=0;this.prevAttrs=undefined;this.attrs=null;this.breakAfter=0}merge(t,e,i,s,o,n){if(i){if(!(i instanceof Rt))return false;if(!this.dom)i.transferDOM(this)}if(s)this.setDeco(i?i.attrs:null);G(this,t,e,i?i.children.slice():[],o,n);return true}split(t){let e=new Rt;e.breakAfter=this.breakAfter;if(this.length==0)return e;let{i,off:s}=this.childPos(t);if(s){e.append(this.children[i].split(s),0);this.children[i].merge(s,this.children[i].length,null,false,0,0);i++}for(let o=i;o0&&this.children[i-1].length==0)this.children[--i].destroy();this.children.length=i;this.markDirty();this.length=t;return e}transferDOM(t){if(!this.dom)return;this.markDirty();t.setDOM(this.dom);t.prevAttrs=this.prevAttrs===undefined?this.attrs:this.prevAttrs;this.prevAttrs=undefined;this.dom=null}setDeco(t){if(!bt(this.attrs,t)){if(this.dom){this.prevAttrs=this.attrs;this.markDirty()}this.attrs=t}}append(t,e){ut(this,t,e)}addLineDeco(t){let e=t.spec.attributes,i=t.spec.class;if(e)this.attrs=wt(e,this.attrs||{});if(i)this.attrs=wt({class:i},this.attrs||{})}domAtPos(t){return dt(this,t)}reuseDOM(t){if(t.nodeName=="DIV"){this.setDOM(t);this.flags|=4|2}}sync(t,e){var i;if(!this.dom){this.setDOM(document.createElement("div"));this.dom.className="cm-line";this.prevAttrs=this.attrs?null:undefined}else if(this.flags&4){N(this.dom);this.dom.className="cm-line";this.prevAttrs=this.attrs?null:undefined}if(this.prevAttrs!==undefined){yt(this.dom,this.prevAttrs,this.attrs);this.dom.classList.add("cm-line");this.prevAttrs=undefined}super.sync(t,e);let s=this.dom.lastChild;while(s&&K.get(s)instanceof at)s=s.lastChild;if(!s||!this.length||s.nodeName!="BR"&&((i=K.get(s))===null||i===void 0?void 0:i.isEditable)==false&&(!nt.ios||!this.children.some((t=>t instanceof lt)))){let t=document.createElement("BR");t.cmIgnore=true;this.dom.appendChild(t)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let t=0,e;for(let i of this.children){if(!(i instanceof lt)||/[^ -~]/.test(i.text))return null;let s=v(i.dom);if(s.length!=1)return null;t+=s[0].width;e=s[0].height}return!t?null:{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length,textHeight:e}}coordsAt(t,e){let i=pt(this,t,e);if(!this.children.length&&i&&this.parent){let{heightOracle:t}=this.parent.view.viewState,e=i.bottom-i.top;if(Math.abs(e-t.lineHeight)<2&&t.textHeight=e){if(o instanceof Rt)return o;if(n>e)break}s=n+o.breakAfter}return null}}class Bt extends K{constructor(t,e,i){super();this.widget=t;this.length=e;this.deco=i;this.breakAfter=0;this.prevWidget=null}merge(t,e,i,s,o,n){if(i&&(!(i instanceof Bt)||!this.widget.compare(i.widget)||t>0&&o<=0||e0}}class Lt extends xt{constructor(t){super();this.height=t}toDOM(){let t=document.createElement("div");t.className="cm-gap";this.updateDOM(t);return t}eq(t){return t.height==this.height}updateDOM(t){t.style.height=this.height+"px";return true}get editable(){return true}get estimatedHeight(){return this.height}ignoreEvent(){return false}}class Pt{constructor(t,e,i,s){this.doc=t;this.pos=e;this.end=i;this.disallowBlockEffectsFor=s;this.content=[];this.curLine=null;this.breakAtStart=0;this.pendingBuffer=0;this.bufferMarks=[];this.atCursorPos=true;this.openStart=-1;this.openEnd=-1;this.text="";this.textOff=0;this.cursor=t.iter();this.skip=e}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let t=this.content[this.content.length-1];return!(t.breakAfter||t instanceof Bt&&t.deco.endSide<0)}getLine(){if(!this.curLine){this.content.push(this.curLine=new Rt);this.atCursorPos=true}return this.curLine}flushBuffer(t=this.bufferMarks){if(this.pendingBuffer){this.curLine.append(Ht(new ft(-1),t),t.length);this.pendingBuffer=0}}addBlockWidget(t){this.flushBuffer();this.curLine=null;this.content.push(t)}finish(t){if(this.pendingBuffer&&t<=this.bufferMarks.length)this.flushBuffer();else this.pendingBuffer=0;if(!this.posCovered()&&!(t&&this.content.length&&this.content[this.content.length-1]instanceof Bt))this.getLine()}buildText(t,e,i){while(t>0){if(this.textOff==this.text.length){let{value:e,lineBreak:i,done:s}=this.cursor.next(this.skip);this.skip=0;if(s)throw new Error("Ran out of text content when drawing inline views");if(i){if(!this.posCovered())this.getLine();if(this.content.length)this.content[this.content.length-1].breakAfter=1;else this.breakAtStart=1;this.flushBuffer();this.curLine=null;this.atCursorPos=true;t--;continue}else{this.text=e;this.textOff=0}}let s=Math.min(this.text.length-this.textOff,t,512);this.flushBuffer(e.slice(e.length-i));this.getLine().append(Ht(new lt(this.text.slice(this.textOff,this.textOff+s)),e),i);this.atCursorPos=true;this.textOff+=s;t-=s;i=0}}span(t,e,i,s){this.buildText(e-t,i,s);this.pos=e;if(this.openStart<0)this.openStart=s}point(t,e,i,s,o,n){if(this.disallowBlockEffectsFor[n]&&i instanceof Dt){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(e>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let r=e-t;if(i instanceof Dt){if(i.block){if(i.startSide>0&&!this.posCovered())this.getLine();this.addBlockWidget(new Bt(i.widget||Nt.block,r,i))}else{let n=ct.create(i.widget||Nt.inline,r,r?0:i.startSide);let l=this.atCursorPos&&!n.isEditable&&o<=s.length&&(t0);let a=!n.isEditable&&(ts.length||i.startSide<=0);let h=this.getLine();if(this.pendingBuffer==2&&!l&&!n.isEditable)this.pendingBuffer=0;this.flushBuffer(s);if(l){h.append(Ht(new ft(1),s),o);o=s.length+Math.max(0,o-s.length)}h.append(Ht(n,s),o);this.atCursorPos=a;this.pendingBuffer=!a?0:ts.length?1:2;if(this.pendingBuffer)this.bufferMarks=s.slice()}}else if(this.doc.lineAt(this.pos).from==this.pos){this.getLine().addLineDeco(i)}if(r){if(this.textOff+r<=this.text.length){this.textOff+=r}else{this.skip+=r-(this.text.length-this.textOff);this.text="";this.textOff=0}this.pos=e}if(this.openStart<0)this.openStart=o}static build(t,e,i,o,n){let r=new Pt(t,e,i,n);r.openEnd=s.RangeSet.spans(o,e,i,r);if(r.openStart<0)r.openStart=r.openEnd;r.finish(r.openEnd);return r}}function Ht(t,e){for(let i of e)t=new at(i,[t],t.length);return t}class Nt extends xt{constructor(t){super();this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}get isHidden(){return true}}Nt.inline=new Nt("span");Nt.block=new Nt("div");var Vt=function(t){t[t["LTR"]=0]="LTR";t[t["RTL"]=1]="RTL";return t}(Vt||(Vt={}));const Ft=Vt.LTR,Wt=Vt.RTL;function zt(t){let e=[];for(let i=0;i=e){if(r.level==i)return n;if(o<0||(s!=0?s<0?r.frome:t[o].level>r.level))o=n}}if(o<0)throw new RangeError("Index out of range");return o}}function jt(t,e){if(t.length!=e.length)return false;for(let i=0;i=0;t-=3){if(Yt[t+1]==-s){let i=Yt[t+2];let s=i&2?o:!(i&4)?0:i&1?n:o;if(s)$t[e]=$t[Yt[t]]=s;l=t;break}}}else if(Yt.length==189){break}else{Yt[l++]=e;Yt[l++]=i;Yt[l++]=a}}else if((r=$t[e])==2||r==1){let t=r==o;a=t?0:1;for(let e=l-3;e>=0;e-=3){let i=Yt[e+2];if(i&2)break;if(t){Yt[e+2]|=2}else{if(i&4)break;Yt[e+2]|=4}}}}}}function Jt(t,e,i,s){for(let o=0,n=s;o<=i.length;o++){let r=o?i[o-1].to:t,l=oa;){if(e==n){e=i[--s].from;n=s?i[s-1].to:t}$t[--e]=f}a=r}else{n=r;a++}}}}function Zt(t,e,i,s,o,n,r){let l=s%2?2:1;if(s%2==o%2){for(let a=e,h=0;aa)r.push(new Gt(a,p.from,d));let e=p.direction==Ft!=!(d%2);te(t,e?s+1:s,o,p.inner,p.from,p.to,r);a=p.to}u=p.to}else if(u==i||(e?$t[u]!=l:$t[u]==l)){break}else{u++}}if(f)Zt(t,a,u,s+1,o,f,r);else if(ae;){let i=true,c=false;if(!h||a>n[h-1].to){let t=$t[a-1];if(t!=l){i=false;c=t==16}}let f=!i&&l==1?[]:null;let d=i?s:s+1;let u=a;t:for(;;){if(h&&u==n[h-1].to){if(c)break t;let p=n[--h];if(!i)for(let t=p.from,i=h;;){if(t==e)break t;if(i&&n[i-1].to==t)t=n[--i].from;else if($t[t-1]==l)break t;else break}if(f){f.push(p)}else{if(p.to$t.length)$t[$t.length]=256;let s=[],o=e==Ft?0:1;te(t,o,o,i,0,t.length,s);return s}function ie(t){return[new Gt(0,t,0)]}let se="";function oe(t,e,i,o,n){var r;let l=o.head-t.from;let a=Gt.find(e,l,(r=o.bidiLevel)!==null&&r!==void 0?r:-1,o.assoc);let h=e[a],c=h.side(n,i);if(l==c){let t=a+=n?1:-1;if(t<0||t>=e.length)return null;h=e[a=t];l=h.side(!n,i);c=h.side(n,i)}let f=(0,s.findClusterBreak)(t.text,l,h.forward(n,i));if(fh.to)f=c;se=t.text.slice(Math.min(l,f),Math.max(l,f));let d=a==(n?e.length-1:0)?null:e[a+(n?1:-1)];if(d&&f==c&&d.level+(n?0:1)t.some((t=>t))});const me=s.Facet.define({combine:t=>t.some((t=>t))});const we=s.Facet.define();class ve{constructor(t,e="nearest",i="nearest",s=5,o=5,n=false){this.range=t;this.y=e;this.x=i;this.yMargin=s;this.xMargin=o;this.isSnapshot=n}map(t){return t.empty?this:new ve(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(t){return this.range.to<=t.doc.length?this:new ve(s.EditorSelection.cursor(t.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const be=s.StateEffect.define({map:(t,e)=>t.map(e)});const ye=s.StateEffect.define();function Se(t,e,i){let s=t.facet(he);if(s.length)s[0](e);else if(window.onerror)window.onerror(String(e),i,undefined,undefined,e);else if(i)console.error(i+":",e);else console.error(e)}const xe=s.Facet.define({combine:t=>t.length?t[0]:true});let Me=0;const Ce=s.Facet.define();class ke{constructor(t,e,i,s,o){this.id=t;this.create=e;this.domEventHandlers=i;this.domEventObservers=s;this.extension=o(this)}static define(t,e){const{eventHandlers:i,eventObservers:s,provide:o,decorations:n}=e||{};return new ke(Me++,t,i,s,(t=>{let e=[Ce.of(t)];if(n)e.push(Te.of((e=>{let i=e.plugin(t);return i?n(i):Ct.none})));if(o)e.push(o(t));return e}))}static fromClass(t,e){return ke.define((e=>new t(e)),e)}}class Ae{constructor(t){this.spec=t;this.mustUpdate=null;this.value=null}update(t){if(!this.value){if(this.spec){try{this.value=this.spec.create(t)}catch(e){Se(t.state,e,"CodeMirror plugin crashed");this.deactivate()}}}else if(this.mustUpdate){let t=this.mustUpdate;this.mustUpdate=null;if(this.value.update){try{this.value.update(t)}catch(e){Se(t.state,e,"CodeMirror plugin crashed");if(this.value.destroy)try{this.value.destroy()}catch(i){}this.deactivate()}}}return this}destroy(t){var e;if((e=this.value)===null||e===void 0?void 0:e.destroy){try{this.value.destroy()}catch(i){Se(t.state,i,"CodeMirror plugin crashed")}}}deactivate(){this.spec=this.value=null}}const De=s.Facet.define();const Oe=s.Facet.define();const Te=s.Facet.define();const Ee=s.Facet.define();const Re=s.Facet.define();const Be=s.Facet.define();function Le(t,e){let i=t.state.facet(Be);if(!i.length)return i;let o=i.map((e=>e instanceof Function?e(t):e));let n=[];s.RangeSet.spans(o,e.from,e.to,{point(){},span(t,i,s,o){let r=t-e.from,l=i-e.from;let a=n;for(let n=s.length-1;n>=0;n--,o--){let t=s[n].spec.bidiIsolate,i;if(t==null)t=ne(e.text,r,l);if(o>0&&a.length&&(i=a[a.length-1]).to==r&&i.direction==t){i.to=l;a=i.inner}else{let e={from:r,to:l,direction:t,inner:[]};a.push(e);a=e.inner}}}});return n}const Pe=s.Facet.define();function He(t){let e=0,i=0,s=0,o=0;for(let n of t.state.facet(Pe)){let r=n(t);if(r){if(r.left!=null)e=Math.max(e,r.left);if(r.right!=null)i=Math.max(i,r.right);if(r.top!=null)s=Math.max(s,r.top);if(r.bottom!=null)o=Math.max(o,r.bottom)}}return{left:e,right:i,top:s,bottom:o}}const Ne=s.Facet.define();class Ve{constructor(t,e,i,s){this.fromA=t;this.toA=e;this.fromB=i;this.toB=s}join(t){return new Ve(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let e=t.length,i=this;for(;e>0;e--){let s=t[e-1];if(s.fromA>i.toA)continue;if(s.toAh)break;else o+=2}if(!l)return i;new Ve(l.fromA,l.toA,l.fromB,l.toB).addToSet(i);n=l.toA;r=l.toB}}}class Fe{constructor(t,e,i){this.view=t;this.state=e;this.transactions=i;this.flags=0;this.startState=t.state;this.changes=s.ChangeSet.empty(this.startState.doc.length);for(let s of i)this.changes=this.changes.compose(s.changes);let o=[];this.changes.iterChangedRanges(((t,e,i,s)=>o.push(new Ve(t,e,i,s))));this.changedRanges=o}static create(t,e,i){return new Fe(t,e,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&(16|2))>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((t=>t.selection))}get empty(){return this.flags==0&&this.transactions.length==0}}class We extends K{get length(){return this.view.state.doc.length}constructor(t){super();this.view=t;this.decorations=[];this.dynamicDecorationMap=[false];this.domChanged=null;this.hasComposition=null;this.markedForComposition=new Set;this.editContextFormatting=Ct.none;this.lastCompositionAfterCursor=false;this.minWidth=0;this.minWidthFrom=0;this.minWidthTo=0;this.impreciseAnchor=null;this.impreciseHead=null;this.forceSelection=false;this.lastUpdate=Date.now();this.setDOM(t.contentDOM);this.children=[new Rt];this.children[0].setParent(this);this.updateDeco();this.updateInner([new Ve(0,0,0,t.state.doc.length)],0,null)}update(t){var e;let i=t.changedRanges;if(this.minWidth>0&&i.length){if(!i.every((({fromA:t,toA:e})=>ethis.minWidthTo))){this.minWidth=this.minWidthFrom=this.minWidthTo=0}else{this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1);this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)}}this.updateEditContextFormatting(t);let s=-1;if(this.view.inputState.composing>=0&&!this.view.observer.editContext){if((e=this.domChanged)===null||e===void 0?void 0:e.newSel)s=this.domChanged.newSel.head;else if(!Ge(t.changes,this.hasComposition)&&!t.selectionSet)s=t.state.selection.main.head}let o=s>-1?qe(this.view,t.changes,s):null;this.domChanged=null;if(this.hasComposition){this.markedForComposition.clear();let{from:e,to:s}=this.hasComposition;i=new Ve(e,s,t.changes.mapPos(e,-1),t.changes.mapPos(s,1)).addToSet(i.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null;if((nt.ie||nt.chrome)&&!o&&t&&t.state.doc.lines!=t.startState.doc.lines)this.forceSelection=true;let n=this.decorations,r=this.updateDeco();let l=_e(n,r,t.changes);i=Ve.extendWithRanges(i,l);if(!(this.flags&7)&&i.length==0){return false}else{this.updateInner(i,t.startState.doc.length,o);if(t.transactions.length)this.lastUpdate=Date.now();return true}}updateInner(t,e,i){this.view.viewState.mustMeasureContent=true;this.updateChildren(t,e,i);let{observer:s}=this.view;s.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px";this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let t=nt.chrome||nt.ios?{node:s.selectionRange.focusNode,written:false}:undefined;this.sync(this.view,t);this.flags&=~7;if(t&&(t.written||s.selectionRange.focusNode!=t.node))this.forceSelection=true;this.dom.style.height=""}));this.markedForComposition.forEach((t=>t.flags&=~8));let o=[];if(this.view.viewport.from||this.view.viewport.to=0?s[n]:null;if(!t)break;let{fromA:e,toA:r,fromB:l,toB:a}=t,h,c,f,d;if(i&&i.range.fromBl){let t=Pt.build(this.view.state.doc,l,i.range.fromB,this.decorations,this.dynamicDecorationMap);let e=Pt.build(this.view.state.doc,i.range.toB,a,this.decorations,this.dynamicDecorationMap);c=t.breakAtStart;f=t.openStart;d=e.openEnd;let s=this.compositionView(i);if(e.breakAtStart){s.breakAfter=1}else if(e.content.length&&s.merge(s.length,s.length,e.content[0],false,e.openStart,0)){s.breakAfter=e.content[0].breakAfter;e.content.shift()}if(t.content.length&&s.merge(0,0,t.content[t.content.length-1],true,0,t.openEnd)){t.content.pop()}h=t.content.concat(s).concat(e.content)}else{({content:h,breakAtStart:c,openStart:f,openEnd:d}=Pt.build(this.view.state.doc,l,a,this.decorations,this.dynamicDecorationMap))}let{i:u,off:p}=o.findPos(r,1);let{i:g,off:m}=o.findPos(e,-1);X(this,g,m,u,p,h,c,f,d)}if(i)this.fixCompositionDOM(i)}updateEditContextFormatting(t){this.editContextFormatting=this.editContextFormatting.map(t.changes);for(let e of t.transactions)for(let t of e.effects)if(t.is(ye)){this.editContextFormatting=t.value}}compositionView(t){let e=new lt(t.text.nodeValue);e.flags|=8;for(let{deco:s}of t.marks)e=new at(s,[e],e.length);let i=new Rt;i.append(e,0);return i}fixCompositionDOM(t){let e=(t,e)=>{e.flags|=8|(e.children.some((t=>t.flags&7))?1:0);this.markedForComposition.add(e);let i=K.get(t);if(i&&i!=e)i.dom=null;e.setDOM(t)};let i=this.childPos(t.range.fromB,1);let s=this.children[i.i];e(t.line,s);for(let o=t.marks.length-1;o>=-1;o--){i=s.childPos(i.off,1);s=s.children[i.i];e(o>=0?t.marks[o].node:t.text,s)}}updateSelection(t=false,e=false){if(t||!this.view.observer.selectionRange.focusNode)this.view.observer.readSelectionRange();let i=this.view.root.activeElement,s=i==this.dom;let o=!s&&!(this.view.state.facet(xe)||this.dom.tabIndex>-1)&&w(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(s||e||o))return;let n=this.forceSelection;this.forceSelection=false;let r=this.view.state.selection.main;let l=this.moveToLine(this.domAtPos(r.anchor));let a=r.empty?l:this.moveToLine(this.domAtPos(r.head));if(nt.gecko&&r.empty&&!this.hasComposition&&ze(l)){let t=document.createTextNode("");this.view.observer.ignore((()=>l.node.insertBefore(t,l.node.childNodes[l.offset]||null)));l=a=new I(t,0);n=true}let h=this.view.observer.selectionRange;if(n||!h.focusNode||(!b(l.node,l.offset,h.anchorNode,h.anchorOffset)||!b(a.node,a.offset,h.focusNode,h.focusOffset))&&!this.suppressWidgetCursorChange(h,r)){this.view.observer.ignore((()=>{if(nt.android&&nt.chrome&&this.dom.contains(h.focusNode)&&Xe(h.focusNode,this.dom)){this.dom.blur();this.dom.focus({preventScroll:true})}let t=g(this.view.root);if(!t);else if(r.empty){if(nt.gecko){let t=Ke(l.node,l.offset);if(t&&t!=(1|2)){let e=(t==1?W:z)(l.node,l.offset);if(e)l=new I(e.node,e.offset)}}t.collapse(l.node,l.offset);if(r.bidiLevel!=null&&t.caretBidiLevel!==undefined)t.caretBidiLevel=r.bidiLevel}else if(t.extend){t.collapse(l.node,l.offset);try{t.extend(a.node,a.offset)}catch(e){}}else{let e=document.createRange();if(r.anchor>r.head)[l,a]=[a,l];e.setEnd(a.node,a.offset);e.setStart(l.node,l.offset);t.removeAllRanges();t.addRange(e)}if(o&&this.view.root.activeElement==this.dom){this.dom.blur();if(i)i.focus()}}));this.view.observer.setSelectionRange(l,a)}this.impreciseAnchor=l.precise?null:new I(h.anchorNode,h.anchorOffset);this.impreciseHead=a.precise?null:new I(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(t,e){return this.hasComposition&&e.empty&&b(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset)&&this.posFromDOM(t.focusNode,t.focusOffset)==e.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:t}=this,e=t.state.selection.main;let i=g(t.root);let{anchorNode:s,anchorOffset:o}=t.observer.selectionRange;if(!i||!e.empty||!e.assoc||!i.modify)return;let n=Rt.find(this,e.head);if(!n)return;let r=n.posAtStart;if(e.head==r||e.head==r+n.length)return;let l=this.coordsAt(e.head,-1),a=this.coordsAt(e.head,1);if(!l||!a||l.bottom>a.top)return;let h=this.domAtPos(e.head+e.assoc);i.collapse(h.node,h.offset);i.modify("move",e.assoc<0?"forward":"backward","lineboundary");t.observer.readSelectionRange();let c=t.observer.selectionRange;if(t.docView.posFromDOM(c.anchorNode,c.anchorOffset)!=e.from)i.collapse(s,o)}moveToLine(t){let e=this.dom,i;if(t.node!=e)return t;for(let s=t.offset;!i&&s=0;s--){let t=K.get(e.childNodes[s]);if(t instanceof Rt)i=t.domAtPos(t.length)}return i?new I(i.node,i.offset,true):t}nearest(t){for(let e=t;e;){let t=K.get(e);if(t&&t.rootView==this)return t;e=e.parentNode}return null}posFromDOM(t,e){let i=this.nearest(t);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(t,e)+i.posAtStart}domAtPos(t){let{i:e,off:i}=this.childCursor().findPos(t,-1);for(;e=0;n--){let r=this.children[n],l=o-r.breakAfter,a=l-r.length;if(lt||r.covers(1))&&(!i||r instanceof Rt&&!(i instanceof Rt&&e>=0))){i=r;s=a}else if(i&&a==t&&l==t&&r instanceof Bt&&Math.abs(e)<2){if(r.deco.startSide<0)break;else if(n)i=null}o=a}return i?i.coordsAt(t-s,e):null}coordsForChar(t){let{i:e,off:i}=this.childPos(t,1),o=this.children[e];if(!(o instanceof Rt))return null;while(o.children.length){let{i:t,off:e}=o.childPos(i,1);for(;;t++){if(t==o.children.length)return null;if((o=o.children[t]).length)break}i=e}if(!(o instanceof lt))return null;let n=(0,s.findClusterBreak)(o.text,i);if(n==i)return null;let r=L(o.dom,i,n).getClientRects();for(let s=0;sMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1;let r=-1,l=this.view.textDirection==Vt.LTR;for(let a=0,h=0;hs)break;if(a>=i){let i=t.dom.getBoundingClientRect();e.push(i.height);if(n){let e=t.dom.lastChild;let s=e?v(e):[];if(s.length){let t=s[s.length-1];let e=l?t.right-i.left:i.right-t.left;if(e>r){r=e;this.minWidth=o;this.minWidthFrom=a;this.minWidthTo=c}}}}a=c+t.breakAfter}return e}textDirectionAt(t){let{i:e}=this.childPos(t,1);return getComputedStyle(this.children[e].dom).direction=="rtl"?Vt.RTL:Vt.LTR}measureTextSize(){for(let o of this.children){if(o instanceof Rt){let t=o.measureTextSize();if(t)return t}}let t=document.createElement("div"),e,i,s;t.className="cm-line";t.style.width="99999px";t.style.position="absolute";t.textContent="abc def ghi jkl mno pqr stu";this.view.observer.ignore((()=>{this.dom.appendChild(t);let o=v(t.firstChild)[0];e=t.getBoundingClientRect().height;i=o?o.width/27:7;s=o?o.height:e;t.remove()}));return{lineHeight:e,charWidth:i,textHeight:s}}childCursor(t=this.length){let e=this.children.length;if(e)t-=this.children[--e].length;return new _(this.children,t,e)}computeBlockGapDeco(){let t=[],e=this.view.viewState;for(let i=0,s=0;;s++){let o=s==e.viewports.length?null:e.viewports[s];let n=o?o.from-1:this.length;if(n>i){let s=(e.lineBlockAt(n).bottom-e.lineBlockAt(i).top)/this.view.scaleY;t.push(Ct.replace({widget:new Lt(s),block:true,inclusive:true,isBlockGap:true}).range(i,n))}if(!o)break;i=o.to+1}return Ct.set(t)}updateDeco(){let t=1;let e=this.view.state.facet(Te).map((e=>{let i=this.dynamicDecorationMap[t++]=typeof e=="function";return i?e(this.view):e}));let i=false,o=this.view.state.facet(Ee).map(((t,e)=>{let s=typeof t=="function";if(s)i=true;return s?t(this.view):t}));if(o.length){this.dynamicDecorationMap[t++]=i;e.push(s.RangeSet.join(o))}this.decorations=[this.editContextFormatting,...e,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];while(te.anchor?-1:1),s;if(!i)return;if(!e.empty&&(s=this.coordsAt(e.anchor,e.anchor>e.head?-1:1)))i={left:Math.min(i.left,s.left),top:Math.min(i.top,s.top),right:Math.max(i.right,s.right),bottom:Math.max(i.bottom,s.bottom)};let o=He(this.view);let n={left:i.left-o.left,top:i.top-o.top,right:i.right+o.right,bottom:i.bottom+o.bottom};let{offsetWidth:r,offsetHeight:l}=this.view.scrollDOM;D(this.view.scrollDOM,n,e.head{if(te.from)i=true}));return i}function je(t,e,i=1){let o=t.charCategorizer(e);let n=t.doc.lineAt(e),r=e-n.from;if(n.length==0)return s.EditorSelection.cursor(e);if(r==0)i=1;else if(r==n.length)i=-1;let l=r,a=r;if(i<0)l=(0,s.findClusterBreak)(n.text,r,false);else a=(0,s.findClusterBreak)(n.text,r);let h=o(n.text.slice(l,a));while(l>0){let t=(0,s.findClusterBreak)(n.text,l,false);if(o(n.text.slice(t,l))!=h)break;l=t}while(at?e.left-t:Math.max(0,t-e.right)}function Ue(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function Qe(t,e){return t.tope.top+1}function Je(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function ti(t,e,i){let s,o,n,r,l=false;let a,h,c,f;for(let p=t.firstChild;p;p=p.nextSibling){let t=v(p);for(let d=0;dm||r==m&&n>g){s=p;o=u;n=g;r=m;let a=m?i0?d0)}if(g==0){if(i>u.bottom&&(!c||c.bottomu.top)){h=p;f=u}}else if(c&&Qe(c,u)){c=Ze(c,u.bottom)}else if(f&&Qe(f,u)){f=Je(f,u.top)}}}if(c&&c.bottom>=i){s=a;o=c}else if(f&&f.top<=i){s=h;o=f}if(!s)return{node:t,offset:0};let d=Math.max(o.left,Math.min(o.right,e));if(s.nodeType==3)return ei(s,d,i);if(l&&s.contentEditable!="false")return ti(s,d,i);let u=Array.prototype.indexOf.call(t.childNodes,s)+(e>=(o.left+o.right)/2?1:0);return{node:t,offset:u}}function ei(t,e,i){let s=t.nodeValue.length;let o=-1,n=1e9,r=0;for(let l=0;li?h.top-i:i-h.bottom)-1;if(h.left-1<=e&&h.right+1>=e&&c=(h.left+h.right)/2,s=i;if(nt.chrome||nt.gecko){let e=L(t,l).getBoundingClientRect();if(e.left==h.right)s=!i}if(c<=0)return{node:t,offset:l+(s?1:0)};o=l+(s?1:0);n=c}}}return{node:t,offset:o>-1?o:r>0?t.nodeValue.length:0}}function ii(t,e,i,s=-1){var o,n;let r=t.contentDOM.getBoundingClientRect(),l=r.top+t.viewState.paddingTop;let a,{docHeight:h}=t.viewState;let{x:c,y:f}=e,d=f-l;if(d<0)return 0;if(d>h)return t.state.doc.length;for(let y=t.viewState.heightOracle.textHeight/2,S=false;;){a=t.elementAtHeight(d);if(a.type==Mt.Text)break;for(;;){d=s>0?a.bottom+y:a.top-y;if(d>=0&&d<=h)break;if(S)return i?null:0;S=true;s=-s}}f=l+d;let u=a.from;if(ut.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:i?null:si(t,r,a,c,f);let p=t.dom.ownerDocument;let g=t.root.elementFromPoint?t.root:p;let m=g.elementFromPoint(c,f);if(m&&!t.contentDOM.contains(m))m=null;if(!m){c=Math.max(r.left+1,Math.min(r.right-1,c));m=g.elementFromPoint(c,f);if(m&&!t.contentDOM.contains(m))m=null}let w,v=-1;if(m&&((o=t.docView.nearest(m))===null||o===void 0?void 0:o.isEditable)!=false){if(p.caretPositionFromPoint){let t=p.caretPositionFromPoint(c,f);if(t)({offsetNode:w,offset:v}=t)}else if(p.caretRangeFromPoint){let e=p.caretRangeFromPoint(c,f);if(e){({startContainer:w,startOffset:v}=e);if(!t.contentDOM.contains(w)||nt.safari&&oi(w,v,c)||nt.chrome&&ni(w,v,c))w=undefined}}if(w)v=Math.min(M(w),v)}if(!w||!t.docView.dom.contains(w)){let e=Rt.find(t.docView,u);if(!e)return d>a.top+a.height/2?a.to:a.from;({node:w,offset:v}=ti(e.dom,c,f))}let b=t.docView.nearest(w);if(!b)return null;if(b.isWidget&&((n=b.dom)===null||n===void 0?void 0:n.nodeType)==1){let t=b.dom.getBoundingClientRect();return e.yt.defaultLineHeight*1.5){let e=t.viewState.heightOracle.textHeight;let s=Math.floor((n-i.top-(t.defaultLineHeight-e)*.5)/e);r+=s*t.viewState.heightOracle.lineLength}let l=t.state.sliceDoc(i.from,i.to);return i.from+(0,s.findColumn)(l,r,t.state.tabSize)}function oi(t,e,i){let s;if(t.nodeType!=3||e!=(s=t.nodeValue.length))return false;for(let o=t.nextSibling;o;o=o.nextSibling)if(o.nodeType!=1||o.nodeName!="BR")return false;return L(t,s-1,s).getBoundingClientRect().left>i}function ni(t,e,i){if(e!=0)return false;for(let o=t;;){let t=o.parentNode;if(!t||t.nodeType!=1||t.firstChild!=o)return false;if(t.classList.contains("cm-line"))break;o=t}let s=t.nodeType==1?t.getBoundingClientRect():L(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return i-s.left>5}function ri(t,e,i){let s=t.lineBlockAt(e);if(Array.isArray(s.type)){let t;for(let o of s.type){if(o.from>e)break;if(o.toe)return o;if(!t||o.type==Mt.Text&&(t.type!=o.type||(i<0?o.frome)))t=o}return t||s}return s}function li(t,e,i,o){let n=ri(t,e.head,e.assoc||-1);let r=!o||n.type!=Mt.Text||!(t.lineWrapping||n.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(r){let e=t.dom.getBoundingClientRect();let o=t.textDirectionAt(n.from);let l=t.posAtCoords({x:i==(o==Vt.LTR)?e.right-1:e.left+1,y:(r.top+r.bottom)/2});if(l!=null)return s.EditorSelection.cursor(l,i?-1:1)}return s.EditorSelection.cursor(i?n.to:n.from,i?-1:1)}function ai(t,e,i,s){let o=t.state.doc.lineAt(e.head),n=t.bidiSpans(o);let r=t.textDirectionAt(o.from);for(let l=e,a=null;;){let e=oe(o,n,r,l,i),h=se;if(!e){if(o.number==(i?t.state.doc.lines:1))return l;h="\n";o=t.state.doc.line(o.number+(i?1:-1));n=t.bidiSpans(o);e=t.visualLineSide(o,!i)}if(!a){if(!s)return e;a=s(h)}else if(!a(h)){return l}l=e}}function hi(t,e,i){let o=t.state.charCategorizer(e);let n=o(i);return t=>{let e=o(t);if(n==s.CharCategory.Space)n=e;return n==e}}function ci(t,e,i,o){let n=e.head,r=i?1:-1;if(n==(i?t.state.doc.length:0))return s.EditorSelection.cursor(n,e.assoc);let l=e.goalColumn,a;let h=t.contentDOM.getBoundingClientRect();let c=t.coordsAtPos(n,e.assoc||-1),f=t.documentTop;if(c){if(l==null)l=c.left-h.left;a=r<0?c.top:c.bottom}else{let e=t.viewState.lineBlockAt(n);if(l==null)l=Math.min(h.right-h.left,t.defaultCharacterWidth*(n-e.from));a=(r<0?e.top:e.bottom)+f}let d=h.left+l;let u=o!==null&&o!==void 0?o:t.viewState.heightOracle.textHeight>>1;for(let p=0;;p+=10){let e=a+(u+p)*r;let i=ii(t,{x:d,y:e},false,r);if(eh.bottom||(r<0?in)){let o=t.docView.coordsForChar(i);let n=!o||e{if(e>t&&ee(t))),i.from,e.head>i.from?-1:1);return o==i.from?i:s.EditorSelection.cursor(o,ot)this.lineBreak();s=o}this.findPointBefore(i,e);return this}readTextNode(t){let e=t.nodeValue;for(let i of this.points)if(i.node==t)i.pos=this.text.length+Math.min(i.offset,e.length);for(let i=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let o=-1,n=1,r;if(this.lineSeparator){o=e.indexOf(this.lineSeparator,i);n=this.lineSeparator.length}else if(r=s.exec(e)){o=r.index;n=r[0].length}this.append(e.slice(i,o<0?e.length:o));if(o<0)break;this.lineBreak();if(n>1)for(let e of this.points)if(e.node==t&&e.pos>this.text.length)e.pos-=n-1;i=o+n}}readNode(t){if(t.cmIgnore)return;let e=K.get(t);let i=e&&e.overrideDOMText;if(i!=null){this.findPointInside(t,i.length);for(let t=i.iter();!t.next().done;){if(t.lineBreak)this.lineBreak();else this.append(t.value)}}else if(t.nodeType==3){this.readTextNode(t)}else if(t.nodeName=="BR"){if(t.nextSibling)this.lineBreak()}else if(t.nodeType==1){this.readRange(t.firstChild,null)}}findPointBefore(t,e){for(let i of this.points)if(i.node==t&&t.childNodes[i.offset]==e)i.pos=this.text.length}findPointInside(t,e){for(let i of this.points)if(t.nodeType==3?i.node==t:t.contains(i.node))i.pos=this.text.length+(gi(t,i.node,i.offset)?e:0)}}function gi(t,e,i){for(;;){if(!e||i-1;let{impreciseHead:n,impreciseAnchor:r}=t.docView;if(t.state.readOnly&&e>-1){this.newSel=null}else if(e>-1&&(this.bounds=t.docView.domBoundsAround(e,i,0))){let e=n||r?[]:xi(t);let i=new pi(e,t.state);i.readRange(this.bounds.startDOM,this.bounds.endDOM);this.text=i.text;this.newSel=Mi(e,this.bounds.from)}else{let e=t.observer.selectionRange;let i=n&&n.node==e.focusNode&&n.offset==e.focusOffset||!m(t.contentDOM,e.focusNode)?t.state.selection.main.head:t.docView.posFromDOM(e.focusNode,e.focusOffset);let o=r&&r.node==e.anchorNode&&r.offset==e.anchorOffset||!m(t.contentDOM,e.anchorNode)?t.state.selection.main.anchor:t.docView.posFromDOM(e.anchorNode,e.anchorOffset);let l=t.viewport;if((nt.ios||nt.chrome)&&t.state.selection.main.empty&&i!=o&&(l.from>0||l.toDate.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:l}=e.bounds;let a=n.from,h=null;if(r===8||nt.android&&e.text.length=n.from&&i.to<=n.to&&(i.from!=n.from||i.to!=n.to)&&n.to-n.from-(i.to-i.from)<=4){i={from:n.from,to:n.to,insert:t.state.doc.slice(n.from,i.from).append(i.insert).append(t.state.doc.slice(i.to,n.to))}}else if(nt.chrome&&i&&i.from==i.to&&i.from==n.head&&i.insert.toString()=="\n "&&t.lineWrapping){if(o)o=s.EditorSelection.single(o.main.anchor-1,o.main.head-1);i={from:n.from,to:n.to,insert:s.Text.of([" "])}}if(i){return bi(t,i,o,r)}else if(o&&!o.main.eq(n)){let e=false,i="select";if(t.inputState.lastSelectionTime>Date.now()-50){if(t.inputState.lastSelectionOrigin=="select")e=true;i=t.inputState.lastSelectionOrigin}t.dispatch({selection:o,scrollIntoView:e,userEvent:i});return true}else{return false}}function bi(t,e,i,s=-1){if(nt.ios&&t.inputState.flushIOSKey(e))return true;let o=t.state.selection.main;if(nt.android&&(e.to==o.to&&(e.from==o.from||e.from==o.from-1&&t.state.sliceDoc(e.from,o.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&P(t.contentDOM,"Enter",13)||(e.from==o.from-1&&e.to==o.to&&e.insert.length==0||s==8&&e.insert.lengtho.head)&&P(t.contentDOM,"Backspace",8)||e.from==o.from&&e.to==o.to+1&&e.insert.length==0&&P(t.contentDOM,"Delete",46)))return true;let n=e.insert.toString();if(t.inputState.composing>=0)t.inputState.composing++;let r;let l=()=>r||(r=yi(t,e,i));if(!t.state.facet(fe).some((i=>i(t,e.from,e.to,n,l))))t.dispatch(l());return true}function yi(t,e,i){let o,n=t.state,r=n.selection.main;if(e.from>=r.from&&e.to<=r.to&&e.to-e.from>=(r.to-r.from)/3&&(!i||i.main.empty&&i.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let i=r.frome.to?n.sliceDoc(e.to,r.to):"";o=n.replaceSelection(t.state.toText(i+e.insert.sliceString(0,undefined,t.state.lineBreak)+s))}else{let l=n.changes(e);let a=i&&i.main.to<=l.newLength?i.main:undefined;if(n.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=r.to&&e.to>=r.to-10){let h=t.state.sliceDoc(e.from,e.to);let c,f=i&&Ie(t,i.main.head);if(f){let t=e.insert.length-(e.to-e.from);c={from:f.from,to:f.to-t}}else{c=t.state.doc.lineAt(r.head)}let d=r.to-e.to,u=r.to-r.from;o=n.changeByRange((i=>{if(i.from==r.from&&i.to==r.to)return{changes:l,range:a||i.map(l)};let o=i.to-d,f=o-h.length;if(i.to-i.from!=u||t.state.sliceDoc(f,o)!=h||i.to>=c.from&&i.from<=c.to)return{range:i};let p=n.changes({from:f,to:o,insert:e.insert}),g=i.to-r.to;return{changes:p,range:!a?i.map(p):s.EditorSelection.range(Math.max(0,a.anchor+g),Math.max(0,a.head+g))}}))}else{o={changes:l,selection:a&&n.selection.replaceRange(a)}}}let l="input.type";if(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50){t.inputState.compositionPendingChange=false;l+=".compose";if(t.inputState.compositionFirstChange){l+=".start";t.inputState.compositionFirstChange=false}}return n.update(o,{userEvent:l,scrollIntoView:true})}function Si(t,e,i,s){let o=Math.min(t.length,e.length);let n=0;while(n0&&l>0&&t.charCodeAt(r-1)==e.charCodeAt(l-1)){r--;l--}if(s=="end"){let t=Math.max(0,n-Math.min(r,l));i-=r+t-n}if(r=r?n-i:0;n-=t;l=n+(l-r);r=n}else if(l=l?n-i:0;n-=t;r=n+(r-l);l=n}return{from:n,toA:r,toB:l}}function xi(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:i,anchorOffset:s,focusNode:o,focusOffset:n}=t.observer.selectionRange;if(i){e.push(new mi(i,s));if(o!=i||n!=s)e.push(new mi(o,n))}return e}function Mi(t,e){if(t.length==0)return null;let i=t[0].pos,o=t.length==2?t[1].pos:i;return i>-1&&o>-1?s.EditorSelection.single(i+e,o+e):null}class Ci{setSelectionOrigin(t){this.lastSelectionOrigin=t;this.lastSelectionTime=Date.now()}constructor(t){this.view=t;this.lastKeyCode=0;this.lastKeyTime=0;this.lastTouchTime=0;this.lastFocusTime=0;this.lastScrollTop=0;this.lastScrollLeft=0;this.pendingIOSKey=undefined;this.tabFocusMode=-1;this.lastSelectionOrigin=null;this.lastSelectionTime=0;this.lastContextMenu=0;this.scrollHandlers=[];this.handlers=Object.create(null);this.composing=-1;this.compositionFirstChange=null;this.compositionEndedAt=0;this.compositionPendingKey=false;this.compositionPendingChange=false;this.mouseSelection=null;this.draggedContent=null;this.handleEvent=this.handleEvent.bind(this);this.notifiedFocused=t.hasFocus;if(nt.safari)t.contentDOM.addEventListener("input",(()=>null));if(nt.gecko)hs(t.contentDOM.ownerDocument)}handleEvent(t){if(!Vi(this.view,t)||this.ignoreDuringComposition(t))return;if(t.type=="keydown"&&this.keydown(t))return;if(this.view.updateState!=0)Promise.resolve().then((()=>this.runHandlers(t.type,t)));else this.runHandlers(t.type,t)}runHandlers(t,e){let i=this.handlers[t];if(i){for(let t of i.observers)t(this.view,e);for(let t of i.handlers){if(e.defaultPrevented)break;if(t(this.view,e)){e.preventDefault();break}}}}ensureHandlers(t){let e=Ai(t),i=this.handlers,s=this.view.contentDOM;for(let o in e)if(o!="scroll"){let t=!e[o].handlers.length;let n=i[o];if(n&&t!=!n.handlers.length){s.removeEventListener(o,this.handleEvent);n=null}if(!n)s.addEventListener(o,this.handleEvent,{passive:t})}for(let o in i)if(o!="scroll"&&!e[o])s.removeEventListener(o,this.handleEvent);this.handlers=e}keydown(t){this.lastKeyCode=t.keyCode;this.lastKeyTime=Date.now();if(t.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return true;if(this.tabFocusMode>0&&t.keyCode!=27&&Ti.indexOf(t.keyCode)<0)this.tabFocusMode=-1;if(nt.android&&nt.chrome&&!t.synthetic&&(t.keyCode==13||t.keyCode==8)){this.view.observer.delayAndroidKey(t.key,t.keyCode);return true}let e;if(nt.ios&&!t.synthetic&&!t.altKey&&!t.metaKey&&((e=Di.find((e=>e.keyCode==t.keyCode)))&&!t.ctrlKey||Oi.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)){this.pendingIOSKey=e||t;setTimeout((()=>this.flushIOSKey()),250);return true}if(t.keyCode!=229)this.view.observer.forceFlush();return false}flushIOSKey(t){let e=this.pendingIOSKey;if(!e)return false;if(e.key=="Enter"&&t&&t.from0)return true;if(nt.safari&&!nt.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100){this.compositionPendingKey=false;return true}return false}startMouseSelection(t){if(this.mouseSelection)this.mouseSelection.destroy();this.mouseSelection=t}update(t){this.view.observer.update(t);if(this.mouseSelection)this.mouseSelection.update(t);if(this.draggedContent&&t.docChanged)this.draggedContent=this.draggedContent.map(t.changes);if(t.transactions.length)this.lastKeyCode=this.lastSelectionTime=0}destroy(){if(this.mouseSelection)this.mouseSelection.destroy()}}function ki(t,e){return(i,s)=>{try{return e.call(t,s,i)}catch(o){Se(i.state,o)}}}function Ai(t){let e=Object.create(null);function i(t){return e[t]||(e[t]={observers:[],handlers:[]})}for(let s of t){let t=s.spec;if(t&&t.domEventHandlers)for(let e in t.domEventHandlers){let o=t.domEventHandlers[e];if(o)i(e).handlers.push(ki(s.value,o))}if(t&&t.domEventObservers)for(let e in t.domEventObservers){let o=t.domEventObservers[e];if(o)i(e).observers.push(ki(s.value,o))}}for(let s in Fi)i(s).handlers.push(Fi[s]);for(let s in Wi)i(s).observers.push(Wi[s]);return e}const Di=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}];const Oi="dthko";const Ti=[16,17,18,20,91,92,224,225];const Ei=6;function Ri(t){return Math.max(0,t)*.7+8}function Bi(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}class Li{constructor(t,e,i,o){this.view=t;this.startEvent=e;this.style=i;this.mustSelect=o;this.scrollSpeed={x:0,y:0};this.scrolling=-1;this.lastEvent=e;this.scrollParents=O(t.contentDOM);this.atoms=t.state.facet(Re).map((e=>e(t)));let n=t.contentDOM.ownerDocument;n.addEventListener("mousemove",this.move=this.move.bind(this));n.addEventListener("mouseup",this.up=this.up.bind(this));this.extend=e.shiftKey;this.multiple=t.state.facet(s.EditorState.allowMultipleSelections)&&Pi(t,e);this.dragging=Ni(t,e)&&Ji(e)==1?null:false}start(t){if(this.dragging===false)this.select(t)}move(t){if(t.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&Bi(this.startEvent,t)<10)return;this.select(this.lastEvent=t);let e=0,i=0;let s=0,o=0,n=this.view.win.innerWidth,r=this.view.win.innerHeight;if(this.scrollParents.x)({left:s,right:n}=this.scrollParents.x.getBoundingClientRect());if(this.scrollParents.y)({top:o,bottom:r}=this.scrollParents.y.getBoundingClientRect());let l=He(this.view);if(t.clientX-l.left<=s+Ei)e=-Ri(s-t.clientX);else if(t.clientX+l.right>=n-Ei)e=Ri(t.clientX-n);if(t.clientY-l.top<=o+Ei)i=-Ri(o-t.clientY);else if(t.clientY+l.bottom>=r-Ei)i=Ri(t.clientY-r);this.setScrollSpeed(e,i)}up(t){if(this.dragging==null)this.select(this.lastEvent);if(!this.dragging)t.preventDefault();this.destroy()}destroy(){this.setScrollSpeed(0,0);let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move);t.removeEventListener("mouseup",this.up);this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(t,e){this.scrollSpeed={x:t,y:e};if(t||e){if(this.scrolling<0)this.scrolling=setInterval((()=>this.scroll()),50)}else if(this.scrolling>-1){clearInterval(this.scrolling);this.scrolling=-1}}scroll(){let{x:t,y:e}=this.scrollSpeed;if(t&&this.scrollParents.x){this.scrollParents.x.scrollLeft+=t;t=0}if(e&&this.scrollParents.y){this.scrollParents.y.scrollTop+=e;e=0}if(t||e)this.view.win.scrollBy(t,e);if(this.dragging===false)this.select(this.lastEvent)}skipAtoms(t){let e=null;for(let i=0;it.isUserEvent("input.type"))))this.destroy();else if(this.style.update(t))setTimeout((()=>this.select(this.lastEvent)),20)}}function Pi(t,e){let i=t.state.facet(re);return i.length?i[0](e):nt.mac?e.metaKey:e.ctrlKey}function Hi(t,e){let i=t.state.facet(le);return i.length?i[0](e):nt.mac?!e.altKey:!e.ctrlKey}function Ni(t,e){let{main:i}=t.state.selection;if(i.empty)return false;let s=g(t.root);if(!s||s.rangeCount==0)return true;let o=s.getRangeAt(0).getClientRects();for(let n=0;n=e.clientX&&t.top<=e.clientY&&t.bottom>=e.clientY)return true}return false}function Vi(t,e){if(!e.bubbles)return true;if(e.defaultPrevented)return false;for(let i=e.target,s;i!=t.contentDOM;i=i.parentNode)if(!i||i.nodeType==11||(s=K.get(i))&&s.ignoreEvent(e))return false;return true}const Fi=Object.create(null);const Wi=Object.create(null);const zi=nt.ie&&nt.ie_version<15||nt.ios&&nt.webkit_version<604;function Ii(t){let e=t.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px";i.focus();setTimeout((()=>{t.focus();i.remove();Ki(t,i.value)}),50)}function qi(t,e,i){for(let s of t.facet(e))i=s(i,t);return i}function Ki(t,e){e=qi(t.state,ue,e);let{state:i}=t,o,n=1,r=i.toText(e);let l=r.lines==i.selection.ranges.length;let a=os!=null&&i.selection.ranges.every((t=>t.empty))&&os==r.toString();if(a){let t=-1;o=i.changeByRange((o=>{let a=i.doc.lineAt(o.from);if(a.from==t)return{range:o};t=a.from;let h=i.toText((l?r.line(n++).text:e)+i.lineBreak);return{changes:{from:a.from,insert:h},range:s.EditorSelection.cursor(o.from+h.length)}}))}else if(l){o=i.changeByRange((t=>{let e=r.line(n++);return{changes:{from:t.from,to:t.to,insert:e.text},range:s.EditorSelection.cursor(t.from+e.length)}}))}else{o=i.replaceSelection(r)}t.dispatch(o,{userEvent:"input.paste",scrollIntoView:true})}Wi.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop;t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};Fi.keydown=(t,e)=>{t.inputState.setSelectionOrigin("select");if(e.keyCode==27&&t.inputState.tabFocusMode!=0)t.inputState.tabFocusMode=Date.now()+2e3;return false};Wi.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now();t.inputState.setSelectionOrigin("select.pointer")};Wi.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};Fi.mousedown=(t,e)=>{t.observer.flush();if(t.inputState.lastTouchTime>Date.now()-2e3)return false;let i=null;for(let s of t.state.facet(ae)){i=s(t,e);if(i)break}if(!i&&e.button==0)i=Zi(t,e);if(i){let s=!t.hasFocus;t.inputState.startMouseSelection(new Li(t,e,i,s));if(s)t.observer.ignore((()=>{R(t.contentDOM);let e=t.root.activeElement;if(e&&!e.contains(t.contentDOM))e.blur()}));let o=t.inputState.mouseSelection;if(o){o.start(e);return o.dragging===false}}return false};function Yi(t,e,i,o){if(o==1){return s.EditorSelection.cursor(e,i)}else if(o==2){return je(t.state,e,i)}else{let i=Rt.find(t.docView,e),o=t.state.doc.lineAt(i?i.posAtEnd:e);let n=i?i.posAtStart:o.from,r=i?i.posAtEnd:o.to;if(re>=i.top&&e<=i.bottom&&t>=i.left&&t<=i.right;function Xi(t,e,i,s){let o=Rt.find(t.docView,e);if(!o)return 1;let n=e-o.posAtStart;if(n==0)return 1;if(n==o.length)return-1;let r=o.coordsAt(n,-1);if(r&&_i(i,s,r))return-1;let l=o.coordsAt(n,1);if(l&&_i(i,s,l))return 1;return r&&r.bottom>=s?-1:1}function Gi(t,e){let i=t.posAtCoords({x:e.clientX,y:e.clientY},false);return{pos:i,bias:Xi(t,i,e.clientX,e.clientY)}}const ji=nt.ie&&nt.ie_version<=11;let $i=null,Ui=0,Qi=0;function Ji(t){if(!ji)return t.detail;let e=$i,i=Qi;$i=t;Qi=Date.now();return Ui=!e||i>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(Ui+1)%3:1}function Zi(t,e){let i=Gi(t,e),o=Ji(e);let n=t.state.selection;return{update(t){if(t.docChanged){i.pos=t.changes.mapPos(i.pos);n=n.map(t.changes)}},get(e,r,l){let a=Gi(t,e),h;let c=Yi(t,a.pos,a.bias,o);if(i.pos!=a.pos&&!r){let e=Yi(t,i.pos,i.bias,o);let n=Math.min(e.from,c.from),r=Math.max(e.to,c.to);c=n1&&(h=ts(n,a.pos)))return h;else if(l)return n.addRange(c);else return s.EditorSelection.create([c])}}}function ts(t,e){for(let i=0;i=e)return s.EditorSelection.create(t.ranges.slice(0,i).concat(t.ranges.slice(i+1)),t.mainIndex==i?0:t.mainIndex-(t.mainIndex>i?1:0))}return null}Fi.dragstart=(t,e)=>{let{selection:{main:i}}=t.state;if(e.target.draggable){let o=t.docView.nearest(e.target);if(o&&o.isWidget){let t=o.posAtStart,e=t+o.length;if(t>=i.to||e<=i.from)i=s.EditorSelection.range(t,e)}}let{inputState:o}=t;if(o.mouseSelection)o.mouseSelection.dragging=true;o.draggedContent=i;if(e.dataTransfer){e.dataTransfer.setData("Text",qi(t.state,pe,t.state.sliceDoc(i.from,i.to)));e.dataTransfer.effectAllowed="copyMove"}return false};Fi.dragend=t=>{t.inputState.draggedContent=null;return false};function es(t,e,i,s){i=qi(t.state,ue,i);if(!i)return;let o=t.posAtCoords({x:e.clientX,y:e.clientY},false);let{draggedContent:n}=t.inputState;let r=s&&n&&Hi(t,e)?{from:n.from,to:n.to}:null;let l={from:o,insert:i};let a=t.state.changes(r?[r,l]:l);t.focus();t.dispatch({changes:a,selection:{anchor:a.mapPos(o,-1),head:a.mapPos(o,1)},userEvent:r?"move.drop":"input.drop"});t.inputState.draggedContent=null}Fi.drop=(t,e)=>{if(!e.dataTransfer)return false;if(t.state.readOnly)return true;let i=e.dataTransfer.files;if(i&&i.length){let s=Array(i.length),o=0;let n=()=>{if(++o==i.length)es(t,e,s.filter((t=>t!=null)).join(t.state.lineBreak),false)};for(let t=0;t{if(!/[\x00-\x08\x0e-\x1f]{2}/.test(e.result))s[t]=e.result;n()};e.readAsText(i[t])}return true}else{let i=e.dataTransfer.getData("Text");if(i){es(t,e,i,true);return true}}return false};Fi.paste=(t,e)=>{if(t.state.readOnly)return true;t.observer.flush();let i=zi?null:e.clipboardData;if(i){Ki(t,i.getData("text/plain")||i.getData("text/uri-list"));return true}else{Ii(t);return false}};function is(t,e){let i=t.dom.parentNode;if(!i)return;let s=i.appendChild(document.createElement("textarea"));s.style.cssText="position: fixed; left: -10000px; top: 10px";s.value=e;s.focus();s.selectionEnd=e.length;s.selectionStart=0;setTimeout((()=>{s.remove();t.focus()}),50)}function ss(t){let e=[],i=[],s=false;for(let o of t.selection.ranges)if(!o.empty){e.push(t.sliceDoc(o.from,o.to));i.push(o)}if(!e.length){let o=-1;for(let{from:s}of t.selection.ranges){let n=t.doc.lineAt(s);if(n.number>o){e.push(n.text);i.push({from:n.from,to:Math.min(t.doc.length,n.to+1)})}o=n.number}s=true}return{text:qi(t,pe,e.join(t.lineBreak)),ranges:i,linewise:s}}let os=null;Fi.copy=Fi.cut=(t,e)=>{let{text:i,ranges:s,linewise:o}=ss(t.state);if(!i&&!o)return false;os=o?i:null;if(e.type=="cut"&&!t.state.readOnly)t.dispatch({changes:s,scrollIntoView:true,userEvent:"delete.cut"});let n=zi?null:e.clipboardData;if(n){n.clearData();n.setData("text/plain",i);return true}else{is(t,i);return false}};const ns=s.Annotation.define();function rs(t,e){let i=[];for(let s of t.facet(de)){let o=s(t,e);if(o)i.push(o)}return i.length?t.update({effects:i,annotations:ns.of(true)}):null}function ls(t){setTimeout((()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let i=rs(t.state,e);if(i)t.dispatch(i);else t.update([])}}),10)}Wi.focus=t=>{t.inputState.lastFocusTime=Date.now();if(!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)){t.scrollDOM.scrollTop=t.inputState.lastScrollTop;t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft}ls(t)};Wi.blur=t=>{t.observer.clearSelectionRange();ls(t)};Wi.compositionstart=Wi.compositionupdate=t=>{if(t.observer.editContext)return;if(t.inputState.compositionFirstChange==null)t.inputState.compositionFirstChange=true;if(t.inputState.composing<0){t.inputState.composing=0}};Wi.compositionend=t=>{if(t.observer.editContext)return;t.inputState.composing=-1;t.inputState.compositionEndedAt=Date.now();t.inputState.compositionPendingKey=true;t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0;t.inputState.compositionFirstChange=null;if(nt.chrome&&nt.android){t.observer.flushSoon()}else if(t.inputState.compositionPendingChange){Promise.resolve().then((()=>t.observer.flush()))}else{setTimeout((()=>{if(t.inputState.composing<0&&t.docView.hasComposition)t.update([])}),50)}};Wi.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};Fi.beforeinput=(t,e)=>{var i,s;if(e.inputType=="insertReplacementText"&&t.observer.editContext){let s=(i=e.dataTransfer)===null||i===void 0?void 0:i.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let e=o[0];let i=t.posAtDOM(e.startContainer,e.startOffset),n=t.posAtDOM(e.endContainer,e.endOffset);bi(t,{from:i,to:n,insert:t.state.toText(s)},null);return true}}let o;if(nt.chrome&&nt.android&&(o=Di.find((t=>t.inputType==e.inputType)))){t.observer.delayAndroidKey(o.key,o.keyCode);if(o.key=="Backspace"||o.key=="Delete"){let e=((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0;setTimeout((()=>{var i;if((((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0)>e+10&&t.hasFocus){t.contentDOM.blur();t.focus()}}),100)}}if(nt.ios&&e.inputType=="deleteContentForward"){t.observer.flushSoon()}if(nt.safari&&e.inputType=="insertText"&&t.inputState.composing>=0){setTimeout((()=>Wi.compositionend(t,e)),20)}return false};const as=new Set;function hs(t){if(!as.has(t)){as.add(t);t.addEventListener("copy",(()=>{}));t.addEventListener("cut",(()=>{}))}}const cs=["pre-wrap","normal","pre-line","break-spaces"];let fs=false;function ds(){fs=false}class us{constructor(t){this.lineWrapping=t;this.doc=s.Text.empty;this.heightSamples={};this.lineHeight=14;this.charWidth=7;this.textHeight=14;this.lineLength=30}heightForGap(t,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;if(this.lineWrapping)i+=Math.max(0,Math.ceil((e-t-i*this.lineLength*.5)/this.lineLength));return this.lineHeight*i}heightForLine(t){if(!this.lineWrapping)return this.lineHeight;let e=1+Math.max(0,Math.ceil((t-this.lineLength)/(this.lineLength-5)));return e*this.lineHeight}setDoc(t){this.doc=t;return this}mustRefreshForWrapping(t){return cs.indexOf(t)>-1!=this.lineWrapping}mustRefreshForHeights(t){let e=false;for(let i=0;i-1;let l=Math.round(e)!=Math.round(this.lineHeight)||this.lineWrapping!=r;this.lineWrapping=r;this.lineHeight=e;this.charWidth=i;this.textHeight=s;this.lineLength=o;if(l){this.heightSamples={};for(let t=0;t0}set outdated(t){this.flags=(t?2:0)|this.flags&~2}setHeight(t){if(this.height!=t){if(Math.abs(this.height-t)>ws)fs=true;this.height=t}}replace(t,e,i){return vs.of(i)}decomposeLeft(t,e){e.push(this)}decomposeRight(t,e){e.push(this)}applyChanges(t,e,i,s){let o=this,n=i.doc;for(let r=s.length-1;r>=0;r--){let{fromA:l,toA:a,fromB:h,toB:c}=s[r];let f=o.lineAt(l,ms.ByPosNoHeight,i.setDoc(e),0,0);let d=f.to>=a?f:o.lineAt(a,ms.ByPosNoHeight,i,0,0);c+=d.to-a;a=d.to;while(r>0&&f.from<=s[r-1].toA){l=s[r-1].fromA;h=s[r-1].fromB;r--;if(lo*2){let o=t[e-1];if(o.break)t.splice(--e,1,o.left,null,o.right);else t.splice(--e,1,o.left,o.right);i+=1+o.break;s-=o.size}else if(o>s*2){let e=t[i];if(e.break)t.splice(i,1,e.left,null,e.right);else t.splice(i,1,e.left,e.right);i+=2+e.break;o-=e.size}else{break}}else if(s=o)n(this.blockAt(0,i,s,o))}updateHeight(t,e=0,i=false,s){if(s&&s.from<=e&&s.more)this.setHeight(s.heights[s.index++]);this.outdated=false;return this}toString(){return`block(${this.length})`}}class Ss extends ys{constructor(t,e){super(t,e,null);this.collapsed=0;this.widgetHeight=0;this.breaks=0}blockAt(t,e,i,s){return new gs(s,this.length,i,this.height,this.breaks)}replace(t,e,i){let s=i[0];if(i.length==1&&(s instanceof Ss||s instanceof xs&&s.flags&4)&&Math.abs(this.length-s.length)<10){if(s instanceof xs)s=new Ss(s.length,this.height);else s.height=this.height;if(!this.outdated)s.outdated=false;return s}else{return vs.of(i)}}updateHeight(t,e=0,i=false,s){if(s&&s.from<=e&&s.more)this.setHeight(s.heights[s.index++]);else if(i||this.outdated)this.setHeight(Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))+this.breaks*t.lineHeight);this.outdated=false;return this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class xs extends vs{constructor(t){super(t,0)}heightMetrics(t,e){let i=t.doc.lineAt(e).number,s=t.doc.lineAt(e+this.length).number;let o=s-i+1;let n,r=0;if(t.lineWrapping){let e=Math.min(this.height,t.lineHeight*o);n=e/o;if(this.length>o+1)r=(this.height-e)/(this.length-o-1)}else{n=this.height/o}return{firstLine:i,lastLine:s,perLine:n,perChar:r}}blockAt(t,e,i,s){let{firstLine:o,lastLine:n,perLine:r,perChar:l}=this.heightMetrics(e,s);if(e.lineWrapping){let o=s+(t0){let t=i[i.length-1];if(t instanceof xs)i[i.length-1]=new xs(t.length+s);else i.push(null,new xs(s-1))}if(t>0){let e=i[0];if(e instanceof xs)i[0]=new xs(t+e.length);else i.unshift(new xs(t-1),null)}return vs.of(i)}decomposeLeft(t,e){e.push(new xs(t-1),null)}decomposeRight(t,e){e.push(null,new xs(this.length-t-1))}updateHeight(t,e=0,i=false,s){let o=e+this.length;if(s&&s.from<=e+this.length&&s.more){let i=[],n=Math.max(e,s.from),r=-1;if(s.from>e)i.push(new xs(s.from-e-1).updateHeight(t,e));while(n<=o&&s.more){let e=t.doc.lineAt(n).length;if(i.length)i.push(null);let o=s.heights[s.index++];if(r==-1)r=o;else if(Math.abs(o-r)>=ws)r=-2;let l=new Ss(e,o);l.outdated=false;i.push(l);n+=e+1}if(n<=o)i.push(null,new xs(o-n).updateHeight(t,n));let l=vs.of(i);if(r<0||Math.abs(l.height-this.height)>=ws||Math.abs(r-this.heightMetrics(t,e).perLine)>=ws)fs=true;return bs(this,l)}else if(i||this.outdated){this.setHeight(t.heightForGap(e,e+this.length));this.outdated=false}return this}toString(){return`gap(${this.length})`}}class Ms extends vs{constructor(t,e,i){super(t.length+e+i.length,t.height+i.height,e|(t.outdated||i.outdated?2:0));this.left=t;this.right=i;this.size=t.size+i.size}get break(){return this.flags&1}blockAt(t,e,i,s){let o=i+this.left.height;return tr))return a;let h=e==ms.ByPosNoHeight?ms.ByPosNoHeight:ms.ByPos;if(l)return a.join(this.right.lineAt(r,h,i,n,r));else return this.left.lineAt(r,h,i,s,o).join(a)}forEachLine(t,e,i,s,o,n){let r=s+this.left.height,l=o+this.left.length+this.break;if(this.break){if(t=l)this.right.forEachLine(t,e,i,r,l,n)}else{let a=this.lineAt(l,ms.ByPos,i,s,o);if(t=t&&a.from<=e)n(a);if(e>a.to)this.right.forEachLine(a.to+1,e,i,r,l,n)}}replace(t,e,i){let s=this.left.length+this.break;if(ethis.left.length)return this.balanced(this.left,this.right.replace(t-s,e-s,i));let o=[];if(t>0)this.decomposeLeft(t,o);let n=o.length;for(let r of i)o.push(r);if(t>0)Cs(o,n-1);if(e=i)e.push(null)}if(t>i)this.right.decomposeLeft(t-i,e)}decomposeRight(t,e){let i=this.left.length,s=i+this.break;if(t>=s)return this.right.decomposeRight(t-s,e);if(t2*e.size||e.size>2*t.size)return vs.of(this.break?[t,null,e]:[t,e]);this.left=bs(this.left,t);this.right=bs(this.right,e);this.setHeight(t.height+e.height);this.outdated=t.outdated||e.outdated;this.size=t.size+e.size;this.length=t.length+this.break+e.length;return this}updateHeight(t,e=0,i=false,s){let{left:o,right:n}=this,r=e+o.length+this.break,l=null;if(s&&s.from<=e+o.length&&s.more)l=o=o.updateHeight(t,e,i,s);else o.updateHeight(t,e,i);if(s&&s.from<=r+n.length&&s.more)l=n=n.updateHeight(t,r,i,s);else n.updateHeight(t,r,i);if(l)return this.balanced(o,n);this.height=this.left.height+this.right.height;this.outdated=false;return this}toString(){return this.left+(this.break?" ":"-")+this.right}}function Cs(t,e){let i,s;if(t[e]==null&&(i=t[e-1])instanceof xs&&(s=t[e+1])instanceof xs)t.splice(e-1,3,new xs(i.length+1+s.length))}const ks=5;class As{constructor(t,e){this.pos=t;this.oracle=e;this.nodes=[];this.lineStart=-1;this.lineEnd=-1;this.covering=null;this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,e){if(this.lineStart>-1){let t=Math.min(e,this.lineEnd),i=this.nodes[this.nodes.length-1];if(i instanceof Ss)i.length+=t-this.pos;else if(t>this.pos||!this.isCovered)this.nodes.push(new Ss(t-this.pos,-1));this.writtenTo=t;if(e>t){this.nodes.push(null);this.writtenTo++;this.lineStart=-1}}this.pos=e}point(t,e,i){if(t=ks){this.addLineDeco(s,o,n)}}else if(e>t){this.span(t,e)}if(this.lineEnd>-1&&this.lineEnd-1)return;let{from:t,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=t;this.lineEnd=e;if(this.writtenTot)this.nodes.push(new Ss(this.pos-t,-1));this.writtenTo=this.pos}blankContent(t,e){let i=new xs(e-t);if(this.oracle.doc.lineAt(t).to==e)i.flags|=4;return i}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof Ss)return t;let e=new Ss(0,-1);this.nodes.push(e);return e}addBlock(t){this.enterLine();let e=t.deco;if(e&&e.startSide>0&&!this.isCovered)this.ensureLine();this.nodes.push(t);this.writtenTo=this.pos=this.pos+t.length;if(e&&e.endSide>0)this.covering=t}addLineDeco(t,e,i){let s=this.ensureLine();s.length+=i;s.collapsed+=i;s.widgetHeight=Math.max(s.widgetHeight,t);s.breaks+=e;this.writtenTo=this.pos=this.pos+i}finish(t){let e=this.nodes.length==0?null:this.nodes[this.nodes.length-1];if(this.lineStart>-1&&!(e instanceof Ss)&&!this.isCovered)this.nodes.push(new Ss(0,-1));else if(this.writtenToe.clientHeight||e.scrollWidth>e.clientWidth)&&i.overflow!="visible"){let i=e.getBoundingClientRect();n=Math.max(n,i.left);r=Math.min(r,i.right);l=Math.max(l,i.top);a=Math.min(h==t.parentNode?o.innerHeight:a,i.bottom)}h=i.position=="absolute"||i.position=="fixed"?e.offsetParent:e.parentNode}else if(h.nodeType==11){h=h.host}else{break}}return{left:n-i.left,right:Math.max(n,r)-i.left,top:l-(i.top+e),bottom:Math.max(l,a)-(i.top+e)}}function Es(t){let e=t.getBoundingClientRect(),i=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function Rs(t,e){let i=t.getBoundingClientRect();return{left:0,right:i.right-i.left,top:e,bottom:i.bottom-(i.top+e)}}class Bs{constructor(t,e,i,s){this.from=t;this.to=e;this.size=i;this.displaySize=s}static same(t,e){if(t.length!=e.length)return false;for(let i=0;itypeof t!="function"&&t.class=="cm-lineWrapping"));this.heightOracle=new us(e);this.stateDeco=t.facet(Te).filter((t=>typeof t!="function"));this.heightMap=vs.empty().applyChanges(this.stateDeco,s.Text.empty,this.heightOracle.setDoc(t.doc),[new Ve(0,0,0,t.doc.length)]);for(let i=0;i<2;i++){this.viewport=this.getViewport(0,null);if(!this.updateForViewport())break}this.updateViewportLines();this.lineGaps=this.ensureLineGaps([]);this.lineGapDeco=Ct.set(this.lineGaps.map((t=>t.draw(this,false))));this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let s=i?e.head:e.anchor;if(!t.some((({from:t,to:e})=>s>=t&&s<=e))){let{from:e,to:i}=this.lineBlockAt(s);t.push(new Hs(e,i))}}this.viewports=t.sort(((t,e)=>t.from-e.from));return this.updateScaler()}updateScaler(){let t=this.scaler;this.scaler=this.heightMap.height<=7e6?zs:new Is(this.heightOracle,this.heightMap,this.viewports);return t.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[];this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(t=>{this.viewportLines.push(qs(t,this.scaler))}))}update(t,e=null){this.state=t.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Te).filter((t=>typeof t!="function"));let o=t.changedRanges;let n=Ve.extendWithRanges(o,Ds(i,this.stateDeco,t?t.changes:s.ChangeSet.empty(this.state.doc.length)));let r=this.heightMap.height;let l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);ds();this.heightMap=this.heightMap.applyChanges(this.stateDeco,t.startState.doc,this.heightOracle.setDoc(this.state.doc),n);if(this.heightMap.height!=r||fs)t.flags|=2;if(l){this.scrollAnchorPos=t.changes.mapPos(l.from,-1);this.scrollAnchorHeight=l.top}else{this.scrollAnchorPos=-1;this.scrollAnchorHeight=r}let a=n.length?this.mapViewport(this.viewport,t.changes):this.viewport;if(e&&(e.range.heada.to)||!this.viewportIsAppropriate(a))a=this.getViewport(0,e);let h=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a;t.flags|=this.updateForViewport();if(h||!t.changes.empty||t.flags&2)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes)));t.flags|=this.computeVisibleRanges(t.changes);if(e)this.scrollTarget=e;if(!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&!t.state.facet(me))this.mustEnforceCursorAssoc=true}measure(t){let e=t.contentDOM,i=window.getComputedStyle(e);let o=this.heightOracle;let n=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?Vt.RTL:Vt.LTR;let r=this.heightOracle.mustRefreshForWrapping(n);let l=e.getBoundingClientRect();let a=r||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height;this.mustMeasureContent=false;let h=0,c=0;if(l.width&&l.height){let{scaleX:t,scaleY:i}=A(e,l);if(t>.005&&Math.abs(this.scaleX-t)>.005||i>.005&&Math.abs(this.scaleY-i)>.005){this.scaleX=t;this.scaleY=i;h|=16;r=a=true}}let f=(parseInt(i.paddingTop)||0)*this.scaleY;let d=(parseInt(i.paddingBottom)||0)*this.scaleY;if(this.paddingTop!=f||this.paddingBottom!=d){this.paddingTop=f;this.paddingBottom=d;h|=16|2}if(this.editorWidth!=t.scrollDOM.clientWidth){if(o.lineWrapping)a=true;this.editorWidth=t.scrollDOM.clientWidth;h|=16}let u=t.scrollDOM.scrollTop*this.scaleY;if(this.scrollTop!=u){this.scrollAnchorHeight=-1;this.scrollTop=u}this.scrolledToBottom=F(t.scrollDOM);let p=(this.printing?Rs:Ts)(e,this.paddingTop);let g=p.top-this.pixelViewport.top,m=p.bottom-this.pixelViewport.bottom;this.pixelViewport=p;let w=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(w!=this.inView){this.inView=w;if(w)a=true}if(!this.inView&&!this.scrollTarget&&!Es(t.dom))return 0;let v=l.width;if(this.contentDOMWidth!=v||this.editorHeight!=t.scrollDOM.clientHeight){this.contentDOMWidth=l.width;this.editorHeight=t.scrollDOM.clientHeight;h|=16}if(a){let e=t.docView.measureVisibleLineHeights(this.viewport);if(o.mustRefreshForHeights(e))r=true;if(r||o.lineWrapping&&Math.abs(v-this.contentDOMWidth)>o.charWidth){let{lineHeight:i,charWidth:s,textHeight:l}=t.docView.measureTextSize();r=i>0&&o.refresh(n,i,s,l,v/s,e);if(r){t.docView.minWidth=0;h|=16}}if(g>0&&m>0)c=Math.max(g,m);else if(g<0&&m<0)c=Math.min(g,m);ds();for(let i of this.viewports){let n=i.from==this.viewport.from?e:t.docView.measureVisibleLineHeights(i);this.heightMap=(r?vs.empty().applyChanges(this.stateDeco,s.Text.empty,this.heightOracle,[new Ve(0,0,0,t.state.doc.length)]):this.heightMap).updateHeight(o,0,r,new ps(i.from,n))}if(fs)h|=2}let b=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);if(b){if(h&2)h|=this.updateScaler();this.viewport=this.getViewport(c,this.scrollTarget);h|=this.updateForViewport()}if(h&2||b)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(r?[]:this.lineGaps,t));h|=this.computeVisibleRanges();if(this.mustEnforceCursorAssoc){this.mustEnforceCursorAssoc=false;t.docView.enforceCursorAssoc()}return h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(t,e){let i=.5-Math.max(-.5,Math.min(.5,t/1e3/2));let s=this.heightMap,o=this.heightOracle;let{visibleTop:n,visibleBottom:r}=this;let l=new Hs(s.lineAt(n-i*1e3,ms.ByHeight,o,0,0).from,s.lineAt(r+(1-i)*1e3,ms.ByHeight,o,0,0).to);if(e){let{head:t}=e.range;if(tl.to){let i=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top);let n=s.lineAt(t,ms.ByPos,o,0,0),r;if(e.y=="center")r=(n.top+n.bottom)/2-i/2;else if(e.y=="start"||e.y=="nearest"&&t=r+Math.max(10,Math.min(i,250)))&&(s>n-2*1e3&&o>1,r=o<<1;if(this.defaultTextDirection!=Vt.LTR&&!i)return[];let l=[];let a=(o,r,h,c)=>{if(r-oo&&tt.from>=h.from&&t.to<=h.to&&Math.abs(t.from-o)t.frome))));if(!u){if(rt.from<=r&&t.to>=r))){let t=e.moveToLineBoundary(s.EditorSelection.cursor(r),false,true).head;if(t>o)r=t}let t=this.gapSize(h,o,r,c);let n=i||t<2e6?t:2e6;u=new Bs(o,r,t,n)}l.push(u)};let h=e=>{if(e.length2e6)for(let s of t){if(s.from>=e.from&&s.frome.from)a(e.from,l,e,s);if(ht.draw(this,this.heightOracle.lineWrapping))))}}computeVisibleRanges(t){let e=this.stateDeco;if(this.lineGaps.length)e=e.concat(this.lineGapDeco);let i=[];s.RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(t,e){i.push({from:t,to:e})},point(){}},20);let o=0;if(i.length!=this.visibleRanges.length){o=8|4}else{for(let e=0;e=this.viewport.from&&t<=this.viewport.to&&this.viewportLines.find((e=>e.from<=t&&e.to>=t))||qs(this.heightMap.lineAt(t,ms.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(t){return t>=this.viewportLines[0].top&&t<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find((e=>e.top<=t&&e.bottom>=t))||qs(this.heightMap.lineAt(this.scaler.fromDOM(t),ms.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(t){let e=this.lineBlockAtHeight(t+8);return e.from>=this.viewport.from||this.viewportLines[0].top-t>200?e:this.viewportLines[0]}elementAtHeight(t){return qs(this.heightMap.blockAt(this.scaler.fromDOM(t),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Hs{constructor(t,e){this.from=t;this.to=e}}function Ns(t,e,i){let o=[],n=t,r=0;s.RangeSet.spans(i,t,e,{span(){},point(t,e){if(t>n){o.push({from:n,to:t});r+=t-n}n=e}},20);if(n=1)return e[e.length-1].to;let s=Math.floor(t*i);for(let o=0;;o++){let{from:t,to:i}=e[o],n=i-t;if(s<=n)return t+s;s-=n}}function Fs(t,e){let i=0;for(let{from:s,to:o}of t.ranges){if(e<=o){i+=e-s;break}i+=o-s}return i/t.total}function Ws(t,e){for(let i of t)if(e(i))return i;return undefined}const zs={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}};class Is{constructor(t,e,i){let s=0,o=0,n=0;this.viewports=i.map((({from:i,to:o})=>{let n=e.lineAt(i,ms.ByPos,t,0,0).top;let r=e.lineAt(o,ms.ByPos,t,0,0).bottom;s+=r-n;return{from:i,to:o,top:n,bottom:r,domTop:0,domBottom:0}}));this.scale=(7e6-s)/(e.height-s);for(let r of this.viewports){r.domTop=n+(r.top-o)*this.scale;n=r.domBottom=r.domTop+(r.bottom-r.top);o=r.bottom}}toDOM(t){for(let e=0,i=0,s=0;;e++){let o=ee.from==t.viewports[i].from&&e.to==t.viewports[i].to))}}function qs(t,e){if(e.scale==1)return t;let i=e.toDOM(t.top),s=e.toDOM(t.bottom);return new gs(t.from,t.length,i,s-i,Array.isArray(t._content)?t._content.map((t=>qs(t,e))):t._content)}const Ks=s.Facet.define({combine:t=>t.join(" ")});const Ys=s.Facet.define({combine:t=>t.indexOf(true)>-1});const _s=o.StyleModule.newName(),Xs=o.StyleModule.newName(),Gs=o.StyleModule.newName();const js={"&light":"."+Xs,"&dark":"."+Gs};function $s(t,e,i){return new o.StyleModule(e,{finish(e){return/&/.test(e)?e.replace(/&\w*/,(e=>{if(e=="&")return t;if(!i||!i[e])throw new RangeError(`Unsupported selector: ${e}`);return i[e]})):t+" "+e}})}const Us=$s("."+_s,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},js);const Qs={childList:true,characterData:true,subtree:true,attributes:true,characterDataOldValue:true};const Js=nt.ie&&nt.ie_version<=11;class Zs{constructor(t){this.view=t;this.active=false;this.editContext=null;this.selectionRange=new T;this.selectionChanged=false;this.delayedFlush=-1;this.resizeTimeout=-1;this.queue=[];this.delayedAndroidKey=null;this.flushingAndroidKey=-1;this.lastChange=0;this.scrollTargets=[];this.intersection=null;this.resizeScroll=null;this.intersecting=false;this.gapIntersection=null;this.gaps=[];this.printQuery=null;this.parentCheck=-1;this.dom=t.contentDOM;this.observer=new MutationObserver((e=>{for(let t of e)this.queue.push(t);if((nt.ie&&nt.ie_version<=11||nt.ios&&t.composing)&&e.some((t=>t.type=="childList"&&t.removedNodes.length||t.type=="characterData"&&t.oldValue.length>t.target.nodeValue.length)))this.flushSoon();else this.flush()}));if(window.EditContext&&t.constructor.EDIT_CONTEXT!==false&&!(nt.chrome&&nt.chrome_version<126)){this.editContext=new so(t);if(t.state.facet(xe))t.contentDOM.editContext=this.editContext.editContext}if(Js)this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue});this.flushSoon()};this.onSelectionChange=this.onSelectionChange.bind(this);this.onResize=this.onResize.bind(this);this.onPrint=this.onPrint.bind(this);this.onScroll=this.onScroll.bind(this);if(window.matchMedia)this.printQuery=window.matchMedia("print");if(typeof ResizeObserver=="function"){this.resizeScroll=new ResizeObserver((()=>{var t;if(((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){if(this.parentCheck<0)this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3);if(t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting){this.intersecting=!this.intersecting;if(this.intersecting!=this.view.inView)this.onScrollChanged(document.createEvent("Event"))}}),{threshold:[0,.001]});this.intersection.observe(this.dom);this.gapIntersection=new IntersectionObserver((t=>{if(t.length>0&&t[t.length-1].intersectionRatio>0)this.onScrollChanged(document.createEvent("Event"))}),{})}this.listenForScroll();this.readSelectionRange()}onScrollChanged(t){this.view.inputState.runHandlers("scroll",t);if(this.intersecting)this.view.measure()}onScroll(t){if(this.intersecting)this.flush(false);if(this.editContext)this.view.requestMeasure(this.editContext.measureReq);this.onScrollChanged(t)}onResize(){if(this.resizeTimeout<0)this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1;this.view.requestMeasure()}),50)}onPrint(t){if((t.type=="change"||!t.type)&&!t.matches)return;this.view.viewState.printing=true;this.view.measure();setTimeout((()=>{this.view.viewState.printing=false;this.view.requestMeasure()}),500)}updateGaps(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some(((e,i)=>e!=t[i])))){this.gapIntersection.disconnect();for(let e of t)this.gapIntersection.observe(e);this.gaps=t}}onSelectionChange(t){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,s=this.selectionRange;if(i.state.facet(xe)?i.root.activeElement!=this.dom:!w(this.dom,s))return;let o=s.anchorNode&&i.docView.nearest(s.anchorNode);if(o&&o.ignoreEvent(t)){if(!e)this.selectionChanged=false;return}if((nt.ie&&nt.ie_version<=11||nt.android&&nt.chrome)&&!i.state.selection.main.empty&&s.focusNode&&b(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset))this.flushSoon();else this.flush(false)}readSelectionRange(){let{view:t}=this;let e=g(t.root);if(!e)return false;let i=nt.safari&&t.root.nodeType==11&&t.root.activeElement==this.dom&&io(this.view,e)||e;if(!i||this.selectionRange.eq(i))return false;let s=w(this.dom,i);if(s&&!this.selectionChanged&&t.inputState.lastFocusTime>Date.now()-200&&t.inputState.lastTouchTime{let t=this.delayedAndroidKey;if(t){this.clearDelayedAndroidKey();this.view.inputState.lastKeyCode=t.keyCode;this.view.inputState.lastKeyTime=Date.now();let e=this.flush();if(!e&&t.force)P(this.dom,t.key,t.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(t)}if(!this.delayedAndroidKey||t=="Enter")this.delayedAndroidKey={key:t,keyCode:e,force:this.lastChange{this.delayedFlush=-1;this.flush()}))}forceFlush(){if(this.delayedFlush>=0){this.view.win.cancelAnimationFrame(this.delayedFlush);this.delayedFlush=-1}this.flush()}pendingRecords(){for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}processRecords(){let t=this.pendingRecords();if(t.length)this.queue=[];let e=-1,i=-1,s=false;for(let o of t){let t=this.readMutation(o);if(!t)continue;if(t.typeOver)s=true;if(e==-1){({from:e,to:i}=t)}else{e=Math.min(t.from,e);i=Math.max(t.to,i)}}return{from:e,to:i,typeOver:s}}readChange(){let{from:t,to:e,typeOver:i}=this.processRecords();let s=this.selectionChanged&&w(this.dom,this.selectionRange);if(t<0&&!s)return null;if(t>-1)this.lastChange=Date.now();this.view.inputState.lastFocusTime=0;this.selectionChanged=false;let o=new wi(this.view,t,e,i);this.view.docView.domChanged={newSel:o.newSel?o.newSel.main:null};return o}flush(t=true){if(this.delayedFlush>=0||this.delayedAndroidKey)return false;if(t)this.readSelectionRange();let e=this.readChange();if(!e){this.view.requestMeasure();return false}let i=this.view.state;let s=vi(this.view,e);if(this.view.state==i&&(e.domChanged||e.newSel&&!e.newSel.main.eq(this.view.state.selection.main)))this.view.update([]);return s}readMutation(t){let e=this.view.docView.nearest(t.target);if(!e||e.ignoreMutation(t))return null;e.markDirty(t.type=="attributes");if(t.type=="attributes")e.flags|=4;if(t.type=="childList"){let i=to(e,t.previousSibling||t.target.previousSibling,-1);let s=to(e,t.nextSibling||t.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:s?e.posBefore(s):e.posAtEnd,typeOver:false}}else if(t.type=="characterData"){return{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}}else{return null}}setWindow(t){if(t!=this.win){this.removeWindowListeners(this.win);this.win=t;this.addWindowListeners(this.win)}}addWindowListeners(t){t.addEventListener("resize",this.onResize);if(this.printQuery){if(this.printQuery.addEventListener)this.printQuery.addEventListener("change",this.onPrint);else this.printQuery.addListener(this.onPrint)}else t.addEventListener("beforeprint",this.onPrint);t.addEventListener("scroll",this.onScroll);t.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(t){t.removeEventListener("scroll",this.onScroll);t.removeEventListener("resize",this.onResize);if(this.printQuery){if(this.printQuery.removeEventListener)this.printQuery.removeEventListener("change",this.onPrint);else this.printQuery.removeListener(this.onPrint)}else t.removeEventListener("beforeprint",this.onPrint);t.document.removeEventListener("selectionchange",this.onSelectionChange)}update(t){if(this.editContext){this.editContext.update(t);if(t.startState.facet(xe)!=t.state.facet(xe))t.view.contentDOM.editContext=t.state.facet(xe)?this.editContext.editContext:null}}destroy(){var t,e,i;this.stop();(t=this.intersection)===null||t===void 0?void 0:t.disconnect();(e=this.gapIntersection)===null||e===void 0?void 0:e.disconnect();(i=this.resizeScroll)===null||i===void 0?void 0:i.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win);clearTimeout(this.parentCheck);clearTimeout(this.resizeTimeout);this.win.cancelAnimationFrame(this.delayedFlush);this.win.cancelAnimationFrame(this.flushingAndroidKey);if(this.editContext){this.view.contentDOM.editContext=null;this.editContext.destroy()}}}function to(t,e,i){while(e){let s=K.get(e);if(s&&s.parent==t)return s;let o=e.parentNode;e=o!=t.dom?o:i>0?e.nextSibling:e.previousSibling}return null}function eo(t,e){let i=e.startContainer,s=e.startOffset;let o=e.endContainer,n=e.endOffset;let r=t.docView.domAtPos(t.state.selection.main.anchor);if(b(r.node,r.offset,o,n))[i,s,o,n]=[o,n,i,s];return{anchorNode:i,anchorOffset:s,focusNode:o,focusOffset:n}}function io(t,e){if(e.getComposedRanges){let i=e.getComposedRanges(t.root)[0];if(i)return eo(t,i)}let i=null;function s(t){t.preventDefault();t.stopImmediatePropagation();i=t.getTargetRanges()[0]}t.contentDOM.addEventListener("beforeinput",s,true);t.dom.ownerDocument.execCommand("indent");t.contentDOM.removeEventListener("beforeinput",s,true);return i?eo(t,i):null}class so{constructor(t){this.from=0;this.to=0;this.pendingContextChange=null;this.handlers=Object.create(null);this.composing=null;this.resetRange(t.state);let e=this.editContext=new window.EditContext({text:t.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,t.state.selection.main.anchor))),selectionEnd:this.toContextPos(t.state.selection.main.head)});this.handlers.textupdate=e=>{let i=t.state.selection.main,{anchor:o,head:n}=i;let r=this.toEditorPos(e.updateRangeStart),l=this.toEditorPos(e.updateRangeEnd);if(t.inputState.composing>=0&&!this.composing)this.composing={contextBase:e.updateRangeStart,editorBase:r,drifted:false};let a={from:r,to:l,insert:s.Text.of(e.text.split("\n"))};if(a.from==this.from&&othis.to)a.to=o;if(a.from==a.to&&!a.insert.length){let o=s.EditorSelection.single(this.toEditorPos(e.selectionStart),this.toEditorPos(e.selectionEnd));if(!o.main.eq(i))t.dispatch({selection:o,userEvent:"select"});return}if((nt.mac||nt.android)&&a.from==n-1&&/^\. ?$/.test(e.text)&&t.contentDOM.getAttribute("autocorrect")=="off")a={from:r,to:l,insert:s.Text.of([e.text.replace("."," ")])};this.pendingContextChange=a;if(!t.state.readOnly){let i=this.to-this.from+(a.to-a.from+a.insert.length);bi(t,a,s.EditorSelection.single(this.toEditorPos(e.selectionStart,i),this.toEditorPos(e.selectionEnd,i)))}if(this.pendingContextChange){this.revertPending(t.state);this.setSelection(t.state)}};this.handlers.characterboundsupdate=i=>{let s=[],o=null;for(let e=this.toEditorPos(i.rangeStart),n=this.toEditorPos(i.rangeEnd);e{let i=[];for(let t of e.getTextFormats()){let e=t.underlineStyle,s=t.underlineThickness;if(e!="None"&&s!="None"){let o=this.toEditorPos(t.rangeStart),n=this.toEditorPos(t.rangeEnd);if(o{if(t.inputState.composing<0){t.inputState.composing=0;t.inputState.compositionFirstChange=true}};this.handlers.compositionend=()=>{t.inputState.composing=-1;t.inputState.compositionFirstChange=null;if(this.composing){let{drifted:e}=this.composing;this.composing=null;if(e)this.reset(t.state)}};for(let i in this.handlers)e.addEventListener(i,this.handlers[i]);this.measureReq={read:t=>{this.editContext.updateControlBounds(t.contentDOM.getBoundingClientRect());let e=g(t.root);if(e&&e.rangeCount)this.editContext.updateSelectionBounds(e.getRangeAt(0).getBoundingClientRect())}}}applyEdits(t){let e=0,i=false,s=this.pendingContextChange;t.changes.iterChanges(((o,n,r,l,a)=>{if(i)return;let h=a.length-(n-o);if(s&&n>=s.to){if(s.from==o&&s.to==n&&s.insert.eq(a)){s=this.pendingContextChange=null;e+=h;this.to+=h;return}else{s=null;this.revertPending(t.state)}}o+=e;n+=e;if(n<=this.from){this.from+=h;this.to+=h}else if(othis.to||this.to-this.from+a.length>3e4){i=true;return}this.editContext.updateText(this.toContextPos(o),this.toContextPos(n),a.toString());this.to+=h}e+=h}));if(s&&!i)this.revertPending(t.state);return!i}update(t){let e=this.pendingContextChange,i=t.startState.selection.main;if(this.composing&&(this.composing.drifted||!t.changes.touchesRange(i.from,i.to)&&t.transactions.some((t=>!t.isUserEvent("input.type")&&t.changes.touchesRange(this.from,this.to))))){this.composing.drifted=true;this.composing.editorBase=t.changes.mapPos(this.composing.editorBase)}else if(!this.applyEdits(t)||!this.rangeIsValid(t.state)){this.pendingContextChange=null;this.reset(t.state)}else if(t.docChanged||t.selectionSet||e){this.setSelection(t.state)}if(t.geometryChanged||t.docChanged||t.selectionSet)t.view.requestMeasure(this.measureReq)}resetRange(t){let{head:e}=t.selection.main;this.from=Math.max(0,e-1e4);this.to=Math.min(t.doc.length,e+1e4)}reset(t){this.resetRange(t);this.editContext.updateText(0,this.editContext.text.length,t.doc.sliceString(this.from,this.to));this.setSelection(t)}revertPending(t){let e=this.pendingContextChange;this.pendingContextChange=null;this.editContext.updateText(this.toContextPos(e.from),this.toContextPos(e.from+e.insert.length),t.doc.sliceString(e.from,e.to))}setSelection(t){let{main:e}=t.selection;let i=this.toContextPos(Math.max(this.from,Math.min(this.to,e.anchor)));let s=this.toContextPos(e.head);if(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=s)this.editContext.updateSelection(i,s)}rangeIsValid(t){let{head:e}=t.selection.main;return!(this.from>0&&e-this.from<500||this.to1e4*3)}toEditorPos(t,e=this.to-this.from){t=Math.min(t,e);let i=this.composing;return i&&i.drifted?i.editorBase+(t-i.contextBase):t+this.from}toContextPos(t){let e=this.composing;return e&&e.drifted?e.contextBase+(t-e.editorBase):t-this.from}destroy(){for(let t in this.handlers)this.editContext.removeEventListener(t,this.handlers[t])}}class oo{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(t={}){var e;this.plugins=[];this.pluginMap=new Map;this.editorAttrs={};this.contentAttrs={};this.bidiCache=[];this.destroyed=false;this.updateState=2;this.measureScheduled=-1;this.measureRequests=[];this.contentDOM=document.createElement("div");this.scrollDOM=document.createElement("div");this.scrollDOM.tabIndex=-1;this.scrollDOM.className="cm-scroller";this.scrollDOM.appendChild(this.contentDOM);this.announceDOM=document.createElement("div");this.announceDOM.className="cm-announced";this.announceDOM.setAttribute("aria-live","polite");this.dom=document.createElement("div");this.dom.appendChild(this.announceDOM);this.dom.appendChild(this.scrollDOM);if(t.parent)t.parent.appendChild(this.dom);let{dispatch:i}=t;this.dispatchTransactions=t.dispatchTransactions||i&&(t=>t.forEach((t=>i(t,this))))||(t=>this.update(t));this.dispatch=this.dispatch.bind(this);this._root=t.root||H(t.parent)||document;this.viewState=new Ps(t.state||s.EditorState.create(t));if(t.scrollTo&&t.scrollTo.is(be))this.viewState.scrollTarget=t.scrollTo.value.clip(this.viewState.state);this.plugins=this.state.facet(Ce).map((t=>new Ae(t)));for(let s of this.plugins)s.update(this);this.observer=new Zs(this);this.inputState=new Ci(this);this.inputState.ensureHandlers(this.plugins);this.docView=new We(this);this.mountStyles();this.updateAttrs();this.updateState=0;this.requestMeasure();if((e=document.fonts)===null||e===void 0?void 0:e.ready)document.fonts.ready.then((()=>this.requestMeasure()))}dispatch(...t){let e=t.length==1&&t[0]instanceof s.Transaction?t:t.length==1&&Array.isArray(t[0])?t[0]:[this.state.update(...t)];this.dispatchTransactions(e,this)}update(t){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let e=false,i=false,o;let n=this.state;for(let s of t){if(s.startState!=n)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");n=s.state}if(this.destroyed){this.viewState.state=n;return}let r=this.hasFocus,l=0,a=null;if(t.some((t=>t.annotation(ns)))){this.inputState.notifiedFocused=r;l=1}else if(r!=this.inputState.notifiedFocused){this.inputState.notifiedFocused=r;a=rs(n,r);if(!a)l=1}let h=this.observer.delayedAndroidKey,c=null;if(h){this.observer.clearDelayedAndroidKey();c=this.observer.readChange();if(c&&!this.state.doc.eq(n.doc)||!this.state.selection.eq(n.selection))c=null}else{this.observer.clear()}if(n.facet(s.EditorState.phrases)!=this.state.facet(s.EditorState.phrases))return this.setState(n);o=Fe.create(this,n,t);o.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let e of t){if(f)f=f.map(e.changes);if(e.scrollIntoView){let{main:t}=e.state.selection;f=new ve(t.empty?t:s.EditorSelection.cursor(t.head,t.head>t.anchor?-1:1))}for(let t of e.effects)if(t.is(be))f=t.value.clip(this.state)}this.viewState.update(o,f);this.bidiCache=lo.update(this.bidiCache,o.changes);if(!o.empty){this.updatePlugins(o);this.inputState.update(o)}e=this.docView.update(o);if(this.state.facet(Ne)!=this.styleModules)this.mountStyles();i=this.updateAttrs();this.showAnnouncements(t);this.docView.updateSelection(e,t.some((t=>t.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(o.startState.facet(Ks)!=o.state.facet(Ks))this.viewState.mustMeasureContent=true;if(e||i||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)this.requestMeasure();if(e)this.docViewUpdate();if(!o.empty)for(let s of this.state.facet(ce)){try{s(o)}catch(d){Se(this.state,d,"update listener")}}if(a||c)Promise.resolve().then((()=>{if(a&&this.state==a.startState)this.dispatch(a);if(c){if(!vi(this,c)&&h.force)P(this.contentDOM,h.key,h.keyCode)}}))}setState(t){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=t;return}this.updateState=2;let e=this.hasFocus;try{for(let t of this.plugins)t.destroy(this);this.viewState=new Ps(t);this.plugins=t.facet(Ce).map((t=>new Ae(t)));this.pluginMap.clear();for(let t of this.plugins)t.update(this);this.docView.destroy();this.docView=new We(this);this.inputState.ensureHandlers(this.plugins);this.mountStyles();this.updateAttrs();this.bidiCache=[]}finally{this.updateState=0}if(e)this.focus();this.requestMeasure()}updatePlugins(t){let e=t.startState.facet(Ce),i=t.state.facet(Ce);if(e!=i){let s=[];for(let o of i){let i=e.indexOf(o);if(i<0){s.push(new Ae(o))}else{let e=this.plugins[i];e.mustUpdate=t;s.push(e)}}for(let e of this.plugins)if(e.mustUpdate!=t)e.destroy(this);this.plugins=s;this.pluginMap.clear()}else{for(let e of this.plugins)e.mustUpdate=t}for(let s=0;s-1)this.win.cancelAnimationFrame(this.measureScheduled);if(this.observer.delayedAndroidKey){this.measureScheduled=-1;this.requestMeasure();return}this.measureScheduled=0;if(t)this.observer.forceFlush();let e=null;let i=this.scrollDOM,s=i.scrollTop*this.scaleY;let{scrollAnchorPos:o,scrollAnchorHeight:n}=this.viewState;if(Math.abs(s-this.viewState.scrollTop)>1)n=-1;this.viewState.scrollAnchorHeight=-1;try{for(let t=0;;t++){if(n<0){if(F(i)){o=-1;n=this.viewState.heightMap.height}else{let t=this.viewState.scrollAnchorAt(s);o=t.from;n=t.top}}this.updateState=1;let l=this.viewState.measure(this);if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(t>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let a=[];if(!(l&4))[this.measureRequests,a]=[a,this.measureRequests];let h=a.map((t=>{try{return t.read(this)}catch(e){Se(this.state,e);return ro}}));let c=Fe.create(this,this.state,[]),f=false;c.flags|=l;if(!e)e=c;else e.flags|=l;this.updateState=2;if(!c.empty){this.updatePlugins(c);this.inputState.update(c);this.updateAttrs();f=this.docView.update(c);if(f)this.docViewUpdate()}for(let t=0;t1||e<-1){s=s+e;i.scrollTop=s/this.scaleY;n=-1;continue}}}break}}}finally{this.updateState=0;this.measureScheduled=-1}if(e&&!e.empty)for(let l of this.state.facet(ce))l(e)}get themeClasses(){return _s+" "+(this.state.facet(Ys)?Gs:Xs)+" "+this.state.facet(Ks)}updateAttrs(){let t=ao(this,De,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses});let e={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:!this.state.facet(xe)?"false":"true",class:"cm-content",style:`${nt.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};if(this.state.readOnly)e["aria-readonly"]="true";ao(this,Oe,e);let i=this.observer.ignore((()=>{let i=yt(this.contentDOM,this.contentAttrs,e);let s=yt(this.dom,this.editorAttrs,t);return i||s}));this.editorAttrs=t;this.contentAttrs=e;return i}showAnnouncements(t){let e=true;for(let i of t)for(let t of i.effects)if(t.is(oo.announce)){if(e)this.announceDOM.textContent="";e=false;let i=this.announceDOM.appendChild(document.createElement("div"));i.textContent=t.value}}mountStyles(){this.styleModules=this.state.facet(Ne);let t=this.state.facet(oo.cspNonce);o.StyleModule.mount(this.root,this.styleModules.concat(Us).reverse(),t?{nonce:t}:undefined)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");if(this.updateState==0&&this.measureScheduled>-1)this.measure(false)}requestMeasure(t){if(this.measureScheduled<0)this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()));if(t){if(this.measureRequests.indexOf(t)>-1)return;if(t.key!=null)for(let e=0;ee.spec==t))||null);return e&&e.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(t){this.readMeasured();return this.viewState.elementAtHeight(t)}lineBlockAtHeight(t){this.readMeasured();return this.viewState.lineBlockAtHeight(t)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(t){return this.viewState.lineBlockAt(t)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,e,i){return di(this,t,ai(this,t,e,i))}moveByGroup(t,e){return di(this,t,ai(this,t,e,(e=>hi(this,t.head,e))))}visualLineSide(t,e){let i=this.bidiSpans(t),o=this.textDirectionAt(t.from);let n=i[e?i.length-1:0];return s.EditorSelection.cursor(n.side(e,o)+t.from,n.forward(!e,o)?1:-1)}moveToLineBoundary(t,e,i=true){return li(this,t,e,i)}moveVertically(t,e,i){return di(this,t,ci(this,t,e,i))}domAtPos(t){return this.docView.domAtPos(t)}posAtDOM(t,e=0){return this.docView.posFromDOM(t,e)}posAtCoords(t,e=true){this.readMeasured();return ii(this,t,e)}coordsAtPos(t,e=1){this.readMeasured();let i=this.docView.coordsAt(t,e);if(!i||i.left==i.right)return i;let s=this.state.doc.lineAt(t),o=this.bidiSpans(s);let n=o[Gt.find(o,t-s.from,-1,e)];return C(i,n.dir==Vt.LTR==e>0)}coordsForChar(t){this.readMeasured();return this.docView.coordsForChar(t)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(t){let e=this.state.facet(ge);if(!e||tthis.viewport.to)return this.textDirection;this.readMeasured();return this.docView.textDirectionAt(t)}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>no)return ie(t.length);let e=this.textDirectionAt(t.from),i;for(let o of this.bidiCache){if(o.from==t.from&&o.dir==e&&(o.fresh||jt(o.isolates,i=Le(this,t))))return o.order}if(!i)i=Le(this,t);let s=ee(t.text,e,i);this.bidiCache.push(new lo(t.from,t.to,e,i,true,s));return s}get hasFocus(){var t;return(this.dom.ownerDocument.hasFocus()||nt.safari&&((t=this.inputState)===null||t===void 0?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{R(this.contentDOM);this.docView.updateSelection()}))}setRoot(t){if(this._root!=t){this._root=t;this.observer.setWindow((t.nodeType==9?t:t.ownerDocument).defaultView||window);this.mountStyles()}}destroy(){if(this.root.activeElement==this.contentDOM)this.contentDOM.blur();for(let t of this.plugins)t.destroy(this);this.plugins=[];this.inputState.destroy();this.docView.destroy();this.dom.remove();this.observer.destroy();if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);this.destroyed=true}static scrollIntoView(t,e={}){return be.of(new ve(typeof t=="number"?s.EditorSelection.cursor(t):t,e.y,e.x,e.yMargin,e.xMargin))}scrollSnapshot(){let{scrollTop:t,scrollLeft:e}=this.scrollDOM;let i=this.viewState.scrollAnchorAt(t);return be.of(new ve(s.EditorSelection.cursor(i.from),"start","start",i.top-t,e,true))}setTabFocusMode(t){if(t==null)this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1;else if(typeof t=="boolean")this.inputState.tabFocusMode=t?0:-1;else if(this.inputState.tabFocusMode!=0)this.inputState.tabFocusMode=Date.now()+t}static domEventHandlers(t){return ke.define((()=>({})),{eventHandlers:t})}static domEventObservers(t){return ke.define((()=>({})),{eventObservers:t})}static theme(t,e){let i=o.StyleModule.newName();let s=[Ks.of(i),Ne.of($s(`.${i}`,t))];if(e&&e.dark)s.push(Ys.of(true));return s}static baseTheme(t){return s.Prec.lowest(Ne.of($s("."+_s,t,js)))}static findFromDOM(t){var e;let i=t.querySelector(".cm-content");let s=i&&K.get(i)||K.get(t);return((e=s===null||s===void 0?void 0:s.rootView)===null||e===void 0?void 0:e.view)||null}}oo.styleModule=Ne;oo.inputHandler=fe;oo.clipboardInputFilter=ue;oo.clipboardOutputFilter=pe;oo.scrollHandler=we;oo.focusChangeEffect=de;oo.perLineTextDirection=ge;oo.exceptionSink=he;oo.updateListener=ce;oo.editable=xe;oo.mouseSelectionStyle=ae;oo.dragMovesSelection=le;oo.clickAddsSelectionRange=re;oo.decorations=Te;oo.outerDecorations=Ee;oo.atomicRanges=Re;oo.bidiIsolatedRanges=Be;oo.scrollMargins=Pe;oo.darkTheme=Ys;oo.cspNonce=s.Facet.define({combine:t=>t.length?t[0]:""});oo.contentAttributes=Oe;oo.editorAttributes=De;oo.lineWrapping=oo.contentAttributes.of({class:"cm-lineWrapping"});oo.announce=s.StateEffect.define();const no=4096;const ro={};class lo{constructor(t,e,i,s,o,n){this.from=t;this.to=e;this.dir=i;this.isolates=s;this.fresh=o;this.order=n}static update(t,e){if(e.empty&&!t.some((t=>t.fresh)))return t;let i=[],s=t.length?t[t.length-1].dir:Vt.LTR;for(let o=Math.max(0,t.length-10);o=0;o--){let e=s[o],n=typeof e=="function"?e(t):e;if(n)wt(n,i)}return i}const ho=nt.mac?"mac":nt.windows?"win":nt.linux?"linux":"key";function co(t,e){const i=t.split(/-(?!$)/);let s=i[i.length-1];if(s=="Space")s=" ";let o,n,r,l;for(let a=0;at.concat(e)),[])));return i}function wo(t,e,i){return xo(mo(t.state),e,t,i)}let vo=null;const bo=4e3;function yo(t,e=ho){let i=Object.create(null);let s=Object.create(null);let o=(t,e)=>{let i=s[t];if(i==null)s[t]=e;else if(i!=e)throw new Error("Key binding "+t+" is used both as a regular binding and as a multi-stroke prefix")};let n=(t,s,n,r,l)=>{var a,h;let c=i[t]||(i[t]=Object.create(null));let f=s.split(/ (?!$)/).map((t=>co(t,e)));for(let e=1;e{let s=vo={view:e,prefix:i,scope:t};setTimeout((()=>{if(vo==s)vo=null}),bo);return true}]}}let d=f.join(" ");o(d,false);let u=c[d]||(c[d]={preventDefault:false,stopPropagation:false,run:((h=(a=c._any)===null||a===void 0?void 0:a.run)===null||h===void 0?void 0:h.slice())||[]});if(n)u.run.push(n);if(r)u.preventDefault=true;if(l)u.stopPropagation=true};for(let r of t){let t=r.scope?r.scope.split(" "):["editor"];if(r.any)for(let e of t){let t=i[e]||(i[e]=Object.create(null));if(!t._any)t._any={preventDefault:false,stopPropagation:false,run:[]};let{any:s}=r;for(let e in t)t[e].run.push((t=>s(t,So)))}let s=r[e]||r.key;if(!s)continue;for(let e of t){n(e,s,r.run,r.preventDefault,r.stopPropagation);if(r.shift)n(e,"Shift-"+s,r.shift,r.preventDefault,r.stopPropagation)}}return i}let So=null;function xo(t,e,i,o){So=e;let l=p(e);let a=(0,s.codePointAt)(l,0),h=(0,s.codePointSize)(a)==l.length&&l!=" ";let c="",f=false,d=false,u=false;if(vo&&vo.view==i&&vo.scope==o){c=vo.prefix+" ";if(Ti.indexOf(e.keyCode)<0){d=true;vo=null}}let g=new Set;let m=t=>{if(t){for(let e of t.run)if(!g.has(e)){g.add(e);if(e(i)){if(t.stopPropagation)u=true;return true}}if(t.preventDefault){if(t.stopPropagation)u=true;d=true}}return false};let w=t[o],v,b;if(w){if(m(w[c+fo(l,e,!h)])){f=true}else if(h&&(e.altKey||e.metaKey||e.ctrlKey)&&!(nt.windows&&e.ctrlKey&&e.altKey)&&(v=n[e.keyCode])&&v!=l){if(m(w[c+fo(v,e,true)])){f=true}else if(e.shiftKey&&(b=r[e.keyCode])!=l&&b!=v&&m(w[c+fo(b,e,false)])){f=true}}else if(h&&e.shiftKey&&m(w[c+fo(l,e,true)])){f=true}if(!f&&m(w._any))f=true}if(d)f=true;if(f&&u)e.stopPropagation();So=null;return f}class Mo{constructor(t,e,i,s,o){this.className=t;this.left=e;this.top=i;this.width=s;this.height=o}draw(){let t=document.createElement("div");t.className=this.className;this.adjust(t);return t}update(t,e){if(e.className!=this.className)return false;this.adjust(t);return true}adjust(t){t.style.left=this.left+"px";t.style.top=this.top+"px";if(this.width!=null)t.style.width=this.width+"px";t.style.height=this.height+"px"}eq(t){return this.left==t.left&&this.top==t.top&&this.width==t.width&&this.height==t.height&&this.className==t.className}static forRange(t,e,i){if(i.empty){let s=t.coordsAtPos(i.head,i.assoc||1);if(!s)return[];let o=Co(t);return[new Mo(e,s.left-o.left,s.top-o.top,null,s.bottom-s.top)]}else{return Ao(t,e,i)}}}function Co(t){let e=t.scrollDOM.getBoundingClientRect();let i=t.textDirection==Vt.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX;return{left:i-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function ko(t,e,i,s){let o=t.coordsAtPos(e,i*2);if(!o)return s;let n=t.dom.getBoundingClientRect();let r=(o.top+o.bottom)/2;let l=t.posAtCoords({x:n.left+1,y:r});let a=t.posAtCoords({x:n.right-1,y:r});if(l==null||a==null)return s;return{from:Math.max(s.from,Math.min(l,a)),to:Math.min(s.to,Math.max(l,a))}}function Ao(t,e,i){if(i.to<=t.viewport.from||i.from>=t.viewport.to)return[];let s=Math.max(i.from,t.viewport.from),o=Math.min(i.to,t.viewport.to);let n=t.textDirection==Vt.LTR;let r=t.contentDOM,l=r.getBoundingClientRect(),a=Co(t);let h=r.querySelector(".cm-line"),c=h&&window.getComputedStyle(h);let f=l.left+(c?parseInt(c.paddingLeft)+Math.min(0,parseInt(c.textIndent)):0);let d=l.right-(c?parseInt(c.paddingRight):0);let u=ri(t,s,1),p=ri(t,o,-1);let g=u.type==Mt.Text?u:null;let m=p.type==Mt.Text?p:null;if(g&&(t.lineWrapping||u.widgetLineBreaks))g=ko(t,s,1,g);if(m&&(t.lineWrapping||p.widgetLineBreaks))m=ko(t,o,-1,m);if(g&&m&&g.from==m.from&&g.to==m.to){return v(b(i.from,i.to,g))}else{let e=g?b(i.from,null,g):y(u,false);let s=m?b(null,i.to,m):y(p,true);let o=[];if((g||u).to<(m||p).from-(g&&m?1:0)||u.widgetLineBreaks>1&&e.bottom+t.defaultLineHeight/2h&&n.from=o)break;if(l>s)a(Math.max(t,s),e==null&&t<=h,Math.min(l,o),i==null&&l>=c,r.dir)}s=n.to+1;if(s>=o)break}}if(l.length==0)a(h,e==null,c,i==null,t.textDirection);return{top:o,bottom:r,horizontal:l}}function y(t,e){let i=l.top+(e?t.top:t.bottom);return{top:i,bottom:i,horizontal:[]}}}function Do(t,e){return t.constructor==e.constructor&&t.eq(e)}class Oo{constructor(t,e){this.view=t;this.layer=e;this.drawn=[];this.scaleX=1;this.scaleY=1;this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)};this.dom=t.scrollDOM.appendChild(document.createElement("div"));this.dom.classList.add("cm-layer");if(e.above)this.dom.classList.add("cm-layer-above");if(e.class)this.dom.classList.add(e.class);this.scale();this.dom.setAttribute("aria-hidden","true");this.setOrder(t.state);t.requestMeasure(this.measureReq);if(e.mount)e.mount(this.dom,t)}update(t){if(t.startState.facet(To)!=t.state.facet(To))this.setOrder(t.state);if(this.layer.update(t,this.dom)||t.geometryChanged){this.scale();t.view.requestMeasure(this.measureReq)}}docViewUpdate(t){if(this.layer.updateOnDocViewUpdate!==false)t.requestMeasure(this.measureReq)}setOrder(t){let e=0,i=t.facet(To);while(e!Do(t,this.drawn[e])))){let e=this.dom.firstChild,i=0;for(let s of t){if(s.update&&e&&s.constructor&&this.drawn[i].constructor&&s.update(e,this.drawn[i])){e=e.nextSibling;i++}else{this.dom.insertBefore(s.draw(),e)}}while(e){let t=e.nextSibling;e.remove();e=t}this.drawn=t}}destroy(){if(this.layer.destroy)this.layer.destroy(this.dom,this.view);this.dom.remove()}}const To=s.Facet.define();function Eo(t){return[ke.define((e=>new Oo(e,t))),To.of(t)]}const Ro=s.Facet.define({combine(t){return(0,s.combineConfig)(t,{cursorBlinkRate:1200,drawRangeCursor:true},{cursorBlinkRate:(t,e)=>Math.min(t,e),drawRangeCursor:(t,e)=>t||e})}});function Bo(t={}){return[Ro.of(t),Ho,Vo,Fo,me.of(true)]}function Lo(t){return t.facet(Ro)}function Po(t){return t.startState.facet(Ro)!=t.state.facet(Ro)}const Ho=Eo({above:true,markers(t){let{state:e}=t,i=e.facet(Ro);let o=[];for(let n of e.selection.ranges){let r=n==e.selection.main;if(n.empty||i.drawRangeCursor){let e=r?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary";let i=n.empty?n:s.EditorSelection.cursor(n.head,n.head>n.anchor?-1:1);for(let s of Mo.forRange(t,e,i))o.push(s)}}return o},update(t,e){if(t.transactions.some((t=>t.selection)))e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink";let i=Po(t);if(i)No(t.state,e);return t.docChanged||t.selectionSet||i},mount(t,e){No(e.state,t)},class:"cm-cursorLayer"});function No(t,e){e.style.animationDuration=t.facet(Ro).cursorBlinkRate+"ms"}const Vo=Eo({above:false,markers(t){return t.state.selection.ranges.map((e=>e.empty?[]:Mo.forRange(t,"cm-selectionBackground",e))).reduce(((t,e)=>t.concat(e)))},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||Po(t)},class:"cm-selectionLayer"});const Fo=s.Prec.highest(oo.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}}));const Wo=s.StateEffect.define({map(t,e){return t==null?null:e.mapPos(t)}});const zo=s.StateField.define({create(){return null},update(t,e){if(t!=null)t=e.changes.mapPos(t);return e.effects.reduce(((t,e)=>e.is(Wo)?e.value:t),t)}});const Io=ke.fromClass(class{constructor(t){this.view=t;this.cursor=null;this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let i=t.state.field(zo);if(i==null){if(this.cursor!=null){(e=this.cursor)===null||e===void 0?void 0:e.remove();this.cursor=null}}else{if(!this.cursor){this.cursor=this.view.scrollDOM.appendChild(document.createElement("div"));this.cursor.className="cm-dropCursor"}if(t.startState.field(zo)!=i||t.docChanged||t.geometryChanged)this.view.requestMeasure(this.measureReq)}}readPos(){let{view:t}=this;let e=t.state.field(zo);let i=e!=null&&t.coordsAtPos(e);if(!i)return null;let s=t.scrollDOM.getBoundingClientRect();return{left:i.left-s.left+t.scrollDOM.scrollLeft*t.scaleX,top:i.top-s.top+t.scrollDOM.scrollTop*t.scaleY,height:i.bottom-i.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:i}=this.view;if(t){this.cursor.style.left=t.left/e+"px";this.cursor.style.top=t.top/i+"px";this.cursor.style.height=t.height/i+"px"}else{this.cursor.style.left="-100000px"}}}destroy(){if(this.cursor)this.cursor.remove()}setDropPos(t){if(this.view.state.field(zo)!=t)this.view.dispatch({effects:Wo.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){if(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function qo(){return[zo,Io]}function Ko(t,e,i,s,o){e.lastIndex=0;for(let n=t.iterRange(i,s),r=i,l;!n.next().done;r+=n.value.length){if(!n.lineBreak)while(l=e.exec(n.value))o(r+l.index,l)}}function Yo(t,e){let i=t.visibleRanges;if(i.length==1&&i[0].from==t.viewport.from&&i[0].to==t.viewport.to)return i;let s=[];for(let{from:o,to:n}of i){o=Math.max(t.state.doc.lineAt(o).from,o-e);n=Math.min(t.state.doc.lineAt(n).to,n+e);if(s.length&&s[s.length-1].to>=o)s[s.length-1].to=n;else s.push({from:o,to:n})}return s}class _o{constructor(t){const{regexp:e,decoration:i,decorate:s,boundary:o,maxLength:n=1e3}=t;if(!e.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");this.regexp=e;if(s){this.addMatch=(t,e,i,o)=>s(o,i,i+t[0].length,t,e)}else if(typeof i=="function"){this.addMatch=(t,e,s,o)=>{let n=i(t,e,s);if(n)o(s,s+t[0].length,n)}}else if(i){this.addMatch=(t,e,s,o)=>o(s,s+t[0].length,i)}else{throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator")}this.boundary=o;this.maxLength=n}createDeco(t){let e=new s.RangeSetBuilder,i=e.add.bind(e);for(let{from:s,to:o}of Yo(t,this.maxLength))Ko(t.state.doc,this.regexp,s,o,((e,s)=>this.addMatch(s,t,e,i)));return e.finish()}updateDeco(t,e){let i=1e9,s=-1;if(t.docChanged)t.changes.iterChanges(((e,o,n,r)=>{if(r>=t.view.viewport.from&&n<=t.view.viewport.to){i=Math.min(n,i);s=Math.max(r,s)}}));if(t.viewportMoved||s-i>1e3)return this.createDeco(t.view);if(s>-1)return this.updateRange(t.view,e.map(t.changes),i,s);return e}updateRange(t,e,i,s){for(let o of t.visibleRanges){let n=Math.max(o.from,i),r=Math.min(o.to,s);if(r>n){let i=t.state.doc.lineAt(n),s=i.toi.from;n--)if(this.boundary.test(i.text[n-1-i.from])){l=n;break}for(;rh.push(i.range(t,e));if(i==s){this.regexp.lastIndex=l-i.from;while((c=this.regexp.exec(i.text))&&c.indexthis.addMatch(i,t,e,f)))}e=e.update({filterFrom:l,filterTo:a,filter:(t,e)=>ta,add:h})}}return e}}const Xo=/x/.unicode!=null?"gu":"g";const Go=new RegExp("[\0-\b\n--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\ufeff-]",Xo);const jo={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let $o=null;function Uo(){var t;if($o==null&&typeof document!="undefined"&&document.body){let e=document.body.style;$o=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return $o||false}const Qo=s.Facet.define({combine(t){let e=(0,s.combineConfig)(t,{render:null,specialChars:Go,addSpecialChars:null});if(e.replaceTabs=!Uo())e.specialChars=new RegExp("\t|"+e.specialChars.source,Xo);if(e.addSpecialChars)e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Xo);return e}});function Jo(t={}){return[Qo.of(t),tn()]}let Zo=null;function tn(){return Zo||(Zo=ke.fromClass(class{constructor(t){this.view=t;this.decorations=Ct.none;this.decorationCache=Object.create(null);this.decorator=this.makeDecorator(t.state.facet(Qo));this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new _o({regexp:t.specialChars,decoration:(e,i,o)=>{let{doc:n}=i.state;let r=(0,s.codePointAt)(e[0],0);if(r==9){let t=n.lineAt(o);let e=i.state.tabSize,r=(0,s.countColumn)(t.text,e,o-t.from);return Ct.replace({widget:new nn((e-r%e)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[r]||(this.decorationCache[r]=Ct.replace({widget:new on(t,r)}))},boundary:t.replaceTabs?undefined:/[^]/})}update(t){let e=t.state.facet(Qo);if(t.startState.facet(Qo)!=e){this.decorator=this.makeDecorator(e);this.decorations=this.decorator.createDeco(t.view)}else{this.decorations=this.decorator.updateDeco(t,this.decorations)}}},{decorations:t=>t.decorations}))}const en="•";function sn(t){if(t>=32)return en;if(t==10)return"␤";return String.fromCharCode(9216+t)}class on extends xt{constructor(t,e){super();this.options=t;this.code=e}eq(t){return t.code==this.code}toDOM(t){let e=sn(this.code);let i=t.state.phrase("Control character")+" "+(jo[this.code]||"0x"+this.code.toString(16));let s=this.options.render&&this.options.render(this.code,i,e);if(s)return s;let o=document.createElement("span");o.textContent=e;o.title=i;o.setAttribute("aria-label",i);o.className="cm-specialChar";return o}ignoreEvent(){return false}}class nn extends xt{constructor(t){super();this.width=t}eq(t){return t.width==this.width}toDOM(){let t=document.createElement("span");t.textContent="\t";t.className="cm-tab";t.style.width=this.width+"px";return t}ignoreEvent(){return false}}const rn=ke.fromClass(class{constructor(){this.height=1e3;this.attrs={style:"padding-bottom: 1000px"}}update(t){let{view:e}=t;let i=e.viewState.editorHeight-e.defaultLineHeight-e.documentPadding.top-.5;if(i>=0&&i!=this.height){this.height=i;this.attrs={style:`padding-bottom: ${i}px`}}}});function ln(){return[rn,Oe.of((t=>{var e;return((e=t.plugin(rn))===null||e===void 0?void 0:e.attrs)||null}))]}function an(){return cn}const hn=Ct.line({class:"cm-activeLine"});const cn=ke.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){if(t.docChanged||t.selectionSet)this.decorations=this.getDeco(t.view)}getDeco(t){let e=-1,i=[];for(let s of t.state.selection.ranges){let o=t.lineBlockAt(s.head);if(o.from>e){i.push(hn.range(o.from));e=o.from}}return Ct.set(i)}},{decorations:t=>t.decorations});class fn extends xt{constructor(t){super();this.content=t}toDOM(t){let e=document.createElement("span");e.className="cm-placeholder";e.style.pointerEvents="none";e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(t):this.content.cloneNode(true));if(typeof this.content=="string")e.setAttribute("aria-label","placeholder "+this.content);else e.setAttribute("aria-hidden","true");return e}coordsAt(t){let e=t.firstChild?v(t.firstChild):[];if(!e.length)return null;let i=window.getComputedStyle(t.parentNode);let s=C(e[0],i.direction!="rtl");let o=parseInt(i.lineHeight);if(s.bottom-s.top>o*1.5)return{left:s.left,right:s.right,top:s.top,bottom:s.top+o};return s}ignoreEvent(){return false}}function dn(t){return ke.fromClass(class{constructor(e){this.view=e;this.placeholder=t?Ct.set([Ct.widget({widget:new fn(t),side:1}).range(0)]):Ct.none}get decorations(){return this.view.state.doc.length?Ct.none:this.placeholder}},{decorations:t=>t.decorations})}const un=2e3;function pn(t,e,i){let o=Math.min(e.line,i.line),n=Math.max(e.line,i.line);let r=[];if(e.off>un||i.off>un||e.col<0||i.col<0){let l=Math.min(e.off,i.off),a=Math.max(e.off,i.off);for(let e=o;e<=n;e++){let i=t.doc.line(e);if(i.length<=a)r.push(s.EditorSelection.range(i.from+l,i.to+a))}}else{let l=Math.min(e.col,i.col),a=Math.max(e.col,i.col);for(let e=o;e<=n;e++){let i=t.doc.line(e);let o=(0,s.findColumn)(i.text,l,t.tabSize,true);if(o<0){r.push(s.EditorSelection.cursor(i.to))}else{let e=(0,s.findColumn)(i.text,a,t.tabSize);r.push(s.EditorSelection.range(i.from+o,i.from+e))}}}return r}function gn(t,e){let i=t.coordsAtPos(t.viewport.from);return i?Math.round(Math.abs((i.left-e)/t.defaultCharacterWidth)):-1}function mn(t,e){let i=t.posAtCoords({x:e.clientX,y:e.clientY},false);let o=t.state.doc.lineAt(i),n=i-o.from;let r=n>un?-1:n==o.length?gn(t,e.clientX):(0,s.countColumn)(o.text,t.state.tabSize,i-o.from);return{line:o.number,col:r,off:n}}function wn(t,e){let i=mn(t,e),o=t.state.selection;if(!i)return null;return{update(t){if(t.docChanged){let e=t.changes.mapPos(t.startState.doc.line(i.line).from);let s=t.state.doc.lineAt(e);i={line:s.number,col:i.col,off:Math.min(i.off,s.length)};o=o.map(t.changes)}},get(e,n,r){let l=mn(t,e);if(!l)return o;let a=pn(t.state,i,l);if(!a.length)return o;if(r)return s.EditorSelection.create(a.concat(o.ranges));else return s.EditorSelection.create(a)}}}function vn(t){let e=(t===null||t===void 0?void 0:t.eventFilter)||(t=>t.altKey&&t.button==0);return oo.mouseSelectionStyle.of(((t,i)=>e(i)?wn(t,i):null))}const bn={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]};const yn={style:"cursor: crosshair"};function Sn(t={}){let[e,i]=bn[t.key||"Alt"];let s=ke.fromClass(class{constructor(t){this.view=t;this.isDown=false}set(t){if(this.isDown!=t){this.isDown=t;this.view.update([])}}},{eventObservers:{keydown(t){this.set(t.keyCode==e||i(t))},keyup(t){if(t.keyCode==e||!i(t))this.set(false)},mousemove(t){this.set(i(t))}}});return[s,oo.contentAttributes.of((t=>{var e;return((e=t.plugin(s))===null||e===void 0?void 0:e.isDown)?yn:null}))]}const xn="-10000px";class Mn{constructor(t,e,i,s){this.facet=e;this.createTooltipView=i;this.removeTooltipView=s;this.input=t.state.facet(e);this.tooltips=this.input.filter((t=>t));let o=null;this.tooltipViews=this.tooltips.map((t=>o=i(t,o)))}update(t,e){var i;let s=t.state.facet(this.facet);let o=s.filter((t=>t));if(s===this.input){for(let e of this.tooltipViews)if(e.update)e.update(t);return false}let n=[],r=e?[]:null;for(let l=0;le[i]=t));e.length=r.length}this.input=s;this.tooltips=o;this.tooltipViews=n;return true}}function Cn(t={}){return An.of(t)}function kn(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const An=s.Facet.define({combine:t=>{var e,i,s;return{position:nt.ios?"absolute":((e=t.find((t=>t.position)))===null||e===void 0?void 0:e.position)||"fixed",parent:((i=t.find((t=>t.parent)))===null||i===void 0?void 0:i.parent)||null,tooltipSpace:((s=t.find((t=>t.tooltipSpace)))===null||s===void 0?void 0:s.tooltipSpace)||kn}}});const Dn=new WeakMap;const On=ke.fromClass(class{constructor(t){this.view=t;this.above=[];this.inView=true;this.madeAbsolute=false;this.lastTransaction=0;this.measureTimeout=-1;let e=t.state.facet(An);this.position=e.position;this.parent=e.parent;this.classes=t.themeClasses;this.createContainer();this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this};this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver((()=>this.measureSoon())):null;this.manager=new Mn(t,Bn,((t,e)=>this.createTooltip(t,e)),(t=>{if(this.resizeObserver)this.resizeObserver.unobserve(t.dom);t.dom.remove()}));this.above=this.manager.tooltips.map((t=>!!t.above));this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver((t=>{if(Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1)this.measureSoon()}),{threshold:[1]}):null;this.observeIntersection();t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this));this.maybeMeasure()}createContainer(){if(this.parent){this.container=document.createElement("div");this.container.style.position="relative";this.container.className=this.view.themeClasses;this.parent.appendChild(this.container)}else{this.container=this.view.dom}}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){if(this.measureTimeout<0)this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1;this.maybeMeasure()}),50)}update(t){if(t.transactions.length)this.lastTransaction=Date.now();let e=this.manager.update(t,this.above);if(e)this.observeIntersection();let i=e||t.geometryChanged;let s=t.state.facet(An);if(s.position!=this.position&&!this.madeAbsolute){this.position=s.position;for(let t of this.manager.tooltipViews)t.dom.style.position=this.position;i=true}if(s.parent!=this.parent){if(this.parent)this.container.remove();this.parent=s.parent;this.createContainer();for(let t of this.manager.tooltipViews)this.container.appendChild(t.dom);i=true}else if(this.parent&&this.view.themeClasses!=this.classes){this.classes=this.container.className=this.view.themeClasses}if(i)this.maybeMeasure()}createTooltip(t,e){let i=t.create(this.view);let s=e?e.dom:null;i.dom.classList.add("cm-tooltip");if(t.arrow&&!i.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let t=document.createElement("div");t.className="cm-tooltip-arrow";i.dom.appendChild(t)}i.dom.style.position=this.position;i.dom.style.top=xn;i.dom.style.left="0px";this.container.insertBefore(i.dom,s);if(i.mount)i.mount(this.view);if(this.resizeObserver)this.resizeObserver.observe(i.dom);return i}destroy(){var t,e,i;this.view.win.removeEventListener("resize",this.measureSoon);for(let s of this.manager.tooltipViews){s.dom.remove();(t=s.destroy)===null||t===void 0?void 0:t.call(s)}if(this.parent)this.container.remove();(e=this.resizeObserver)===null||e===void 0?void 0:e.disconnect();(i=this.intersectionObserver)===null||i===void 0?void 0:i.disconnect();clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,i=false;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:t}=this.manager.tooltipViews[0];if(nt.gecko){i=t.offsetParent!=this.container.ownerDocument.body}else if(t.style.top==xn&&t.style.left=="0px"){let e=t.getBoundingClientRect();i=Math.abs(e.top+1e4)>1||Math.abs(e.left)>1}}if(i||this.position=="absolute"){if(this.parent){let i=this.parent.getBoundingClientRect();if(i.width&&i.height){t=i.width/this.parent.offsetWidth;e=i.height/this.parent.offsetHeight}}else{({scaleX:t,scaleY:e}=this.view.viewState)}}let s=this.view.scrollDOM.getBoundingClientRect(),o=He(this.view);return{visible:{left:s.left+o.left,top:s.top+o.top,right:s.right-o.right,bottom:s.bottom-o.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map(((t,e)=>{let i=this.manager.tooltipViews[e];return i.getCoords?i.getCoords(t.pos):this.view.coordsAtPos(t.pos)})),size:this.manager.tooltipViews.map((({dom:t})=>t.getBoundingClientRect())),space:this.view.state.facet(An).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:i}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=true;this.position="absolute";for(let t of this.manager.tooltipViews)t.dom.style.position="absolute"}let{visible:i,space:s,scaleX:o,scaleY:n}=t;let r=[];for(let l=0;l=Math.min(i.bottom,s.bottom)||f.rightMath.min(i.right,s.right)+.1)){c.style.top=xn;continue}let u=a.arrow?h.dom.querySelector(".cm-tooltip-arrow"):null;let p=u?7:0;let g=d.right-d.left,m=(e=Dn.get(h))!==null&&e!==void 0?e:d.bottom-d.top;let w=h.offset||Rn,v=this.view.textDirection==Vt.LTR;let b=d.width>s.right-s.left?v?s.left:s.right-d.width:v?Math.max(s.left,Math.min(f.left-(u?14:0)+w.x,s.right-g)):Math.min(Math.max(s.left,f.left-g+(u?14:0)-w.x),s.right-g);let y=this.above[l];if(!a.strictSide&&(y?f.top-m-p-w.ys.bottom)&&y==s.bottom-f.bottom>f.top-s.top)y=this.above[l]=!y;let S=(y?f.top-s.top:s.bottom-f.bottom)-p;if(Sb&&t.topx)x=y?t.top-m-2-p:t.bottom+p+2;if(this.position=="absolute"){c.style.top=(x-t.parent.top)/n+"px";Tn(c,(b-t.parent.left)/o)}else{c.style.top=x/n+"px";Tn(c,b/o)}if(u){let t=f.left+(v?w.x:-w.x)-(b+14-7);u.style.left=t/o+"px"}if(h.overlap!==true)r.push({left:b,top:x,right:M,bottom:x+m});c.classList.toggle("cm-tooltip-above",y);c.classList.toggle("cm-tooltip-below",!y);if(h.positioned)h.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length){if(this.view.inView)this.view.requestMeasure(this.measureReq);if(this.inView!=this.view.inView){this.inView=this.view.inView;if(!this.inView)for(let t of this.manager.tooltipViews)t.dom.style.top=xn}}}},{eventObservers:{scroll(){this.maybeMeasure()}}});function Tn(t,e){let i=parseInt(t.style.left,10);if(isNaN(i)||Math.abs(e-i)>1)t.style.left=e+"px"}const En=oo.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}});const Rn={x:0,y:0};const Bn=s.Facet.define({enables:[On,En]});const Ln=s.Facet.define({combine:t=>t.reduce(((t,e)=>t.concat(e)),[])});class Pn{static create(t){return new Pn(t)}constructor(t){this.view=t;this.mounted=false;this.dom=document.createElement("div");this.dom.classList.add("cm-tooltip-hover");this.manager=new Mn(t,Ln,((t,e)=>this.createHostedView(t,e)),(t=>t.dom.remove()))}createHostedView(t,e){let i=t.create(this.view);i.dom.classList.add("cm-tooltip-section");this.dom.insertBefore(i.dom,e?e.dom.nextSibling:this.dom.firstChild);if(this.mounted&&i.mount)i.mount(this.view);return i}mount(t){for(let e of this.manager.tooltipViews){if(e.mount)e.mount(t)}this.mounted=true}positioned(t){for(let e of this.manager.tooltipViews){if(e.positioned)e.positioned(t)}}update(t){this.manager.update(t)}destroy(){var t;for(let e of this.manager.tooltipViews)(t=e.destroy)===null||t===void 0?void 0:t.call(e)}passProp(t){let e=undefined;for(let i of this.manager.tooltipViews){let s=i[t];if(s!==undefined){if(e===undefined)e=s;else if(e!==s)return undefined}}return e}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const Hn=Bn.compute([Ln],(t=>{let e=t.facet(Ln);if(e.length===0)return null;return{pos:Math.min(...e.map((t=>t.pos))),end:Math.max(...e.map((t=>{var e;return(e=t.end)!==null&&e!==void 0?e:t.pos}))),create:Pn.create,above:e[0].above,arrow:e.some((t=>t.arrow))}}));class Nn{constructor(t,e,i,s,o){this.view=t;this.source=e;this.field=i;this.setHover=s;this.hoverTime=o;this.hoverTimeout=-1;this.restartTimeout=-1;this.pending=null;this.lastMove={x:0,y:0,target:t.dom,time:0};this.checkHover=this.checkHover.bind(this);t.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this));t.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){if(this.pending){this.pending=null;clearTimeout(this.restartTimeout);this.restartTimeout=setTimeout((()=>this.startHover()),20)}}get active(){return this.view.state.field(this.field)}checkHover(){this.hoverTimeout=-1;if(this.active.length)return;let t=Date.now()-this.lastMove.time;if(ti.bottom||e.xi.right+t.defaultCharacterWidth)return;let n=t.bidiSpans(t.state.doc.lineAt(s)).find((t=>t.from<=s&&t.to>=s));let r=n&&n.dir==Vt.RTL?-1:1;o=e.x{if(this.pending==e){this.pending=null;if(i&&!(Array.isArray(i)&&!i.length))t.dispatch({effects:this.setHover.of(Array.isArray(i)?i:[i])})}}),(e=>Se(t.state,e,"hover tooltip")))}else if(n&&!(Array.isArray(n)&&!n.length)){t.dispatch({effects:this.setHover.of(Array.isArray(n)?n:[n])})}}get tooltip(){let t=this.view.plugin(On);let e=t?t.manager.tooltips.findIndex((t=>t.create==Pn.create)):-1;return e>-1?t.manager.tooltipViews[e]:null}mousemove(t){var e,i;this.lastMove={x:t.clientX,y:t.clientY,target:t.target,time:Date.now()};if(this.hoverTimeout<0)this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime);let{active:s,tooltip:o}=this;if(s.length&&o&&!Fn(o.dom,t)||this.pending){let{pos:o}=s[0]||this.pending,n=(i=(e=s[0])===null||e===void 0?void 0:e.end)!==null&&i!==void 0?i:o;if(o==n?this.view.posAtCoords(this.lastMove)!=o:!Wn(this.view,o,n,t.clientX,t.clientY)){this.view.dispatch({effects:this.setHover.of([])});this.pending=null}}}mouseleave(t){clearTimeout(this.hoverTimeout);this.hoverTimeout=-1;let{active:e}=this;if(e.length){let{tooltip:e}=this;let i=e&&e.dom.contains(t.relatedTarget);if(!i)this.view.dispatch({effects:this.setHover.of([])});else this.watchTooltipLeave(e.dom)}}watchTooltipLeave(t){let e=i=>{t.removeEventListener("mouseleave",e);if(this.active.length&&!this.view.dom.contains(i.relatedTarget))this.view.dispatch({effects:this.setHover.of([])})};t.addEventListener("mouseleave",e)}destroy(){clearTimeout(this.hoverTimeout);this.view.dom.removeEventListener("mouseleave",this.mouseleave);this.view.dom.removeEventListener("mousemove",this.mousemove)}}const Vn=4;function Fn(t,e){let{left:i,right:s,top:o,bottom:n}=t.getBoundingClientRect(),r;if(r=t.querySelector(".cm-tooltip-arrow")){let t=r.getBoundingClientRect();o=Math.min(t.top,o);n=Math.max(t.bottom,n)}return e.clientX>=i-Vn&&e.clientX<=s+Vn&&e.clientY>=o-Vn&&e.clientY<=n+Vn}function Wn(t,e,i,s,o,n){let r=t.scrollDOM.getBoundingClientRect();let l=t.documentTop+t.documentPadding.top+t.contentHeight;if(r.left>s||r.righto||Math.min(r.bottom,l)=e&&a<=i}function zn(t,e={}){let i=s.StateEffect.define();let o=s.StateField.define({create(){return[]},update(t,o){if(t.length){if(e.hideOnChange&&(o.docChanged||o.selection))t=[];else if(e.hideOn)t=t.filter((t=>!e.hideOn(o,t)));if(o.docChanged){let e=[];for(let i of t){let t=o.changes.mapPos(i.pos,-1,s.MapMode.TrackDel);if(t!=null){let s=Object.assign(Object.create(null),i);s.pos=t;if(s.end!=null)s.end=o.changes.mapPos(s.end);e.push(s)}}t=e}}for(let e of o.effects){if(e.is(i))t=e.value;if(e.is(Kn))t=[]}return t},provide:t=>Ln.from(t)});return{active:o,extension:[o,ke.define((s=>new Nn(s,t,o,i,e.hoverTime||300))),Hn]}}function In(t,e){let i=t.plugin(On);if(!i)return null;let s=i.manager.tooltips.indexOf(e);return s<0?null:i.manager.tooltipViews[s]}function qn(t){return t.facet(Ln).some((t=>t))}const Kn=s.StateEffect.define();const Yn=Kn.of(null);function _n(t){let e=t.plugin(On);if(e)e.maybeMeasure()}const Xn=s.Facet.define({combine(t){let e,i;for(let s of t){e=e||s.topContainer;i=i||s.bottomContainer}return{topContainer:e,bottomContainer:i}}});function Gn(t){return t?[Xn.of(t)]:[]}function jn(t,e){let i=t.plugin($n);let s=i?i.specs.indexOf(e):-1;return s>-1?i.panels[s]:null}const $n=ke.fromClass(class{constructor(t){this.input=t.state.facet(Jn);this.specs=this.input.filter((t=>t));this.panels=this.specs.map((e=>e(t)));let e=t.state.facet(Xn);this.top=new Un(t,true,e.topContainer);this.bottom=new Un(t,false,e.bottomContainer);this.top.sync(this.panels.filter((t=>t.top)));this.bottom.sync(this.panels.filter((t=>!t.top)));for(let i of this.panels){i.dom.classList.add("cm-panel");if(i.mount)i.mount()}}update(t){let e=t.state.facet(Xn);if(this.top.container!=e.topContainer){this.top.sync([]);this.top=new Un(t.view,true,e.topContainer)}if(this.bottom.container!=e.bottomContainer){this.bottom.sync([]);this.bottom=new Un(t.view,false,e.bottomContainer)}this.top.syncClasses();this.bottom.syncClasses();let i=t.state.facet(Jn);if(i!=this.input){let e=i.filter((t=>t));let s=[],o=[],n=[],r=[];for(let i of e){let e=this.specs.indexOf(i),l;if(e<0){l=i(t.view);r.push(l)}else{l=this.panels[e];if(l.update)l.update(t)}s.push(l);(l.top?o:n).push(l)}this.specs=e;this.panels=s;this.top.sync(o);this.bottom.sync(n);for(let t of r){t.dom.classList.add("cm-panel");if(t.mount)t.mount()}}else{for(let e of this.panels)if(e.update)e.update(t)}}destroy(){this.top.sync([]);this.bottom.sync([])}},{provide:t=>oo.scrollMargins.of((e=>{let i=e.plugin(t);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}}))});class Un{constructor(t,e,i){this.view=t;this.top=e;this.container=i;this.dom=undefined;this.classes="";this.panels=[];this.syncClasses()}sync(t){for(let e of this.panels)if(e.destroy&&t.indexOf(e)<0)e.destroy();this.panels=t;this.syncDOM()}syncDOM(){if(this.panels.length==0){if(this.dom){this.dom.remove();this.dom=undefined}return}if(!this.dom){this.dom=document.createElement("div");this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom";this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let t=this.dom.firstChild;for(let e of this.panels){if(e.dom.parentNode==this.dom){while(t!=e.dom)t=Qn(t);t=t.nextSibling}else{this.dom.insertBefore(e.dom,t)}}while(t)t=Qn(t)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!this.container||this.classes==this.view.themeClasses)return;for(let t of this.classes.split(" "))if(t)this.container.classList.remove(t);for(let t of(this.classes=this.view.themeClasses).split(" "))if(t)this.container.classList.add(t)}}function Qn(t){let e=t.nextSibling;t.remove();return e}const Jn=s.Facet.define({enables:$n});class Zn extends s.RangeValue{compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}eq(t){return false}destroy(t){}}Zn.prototype.elementClass="";Zn.prototype.toDOM=undefined;Zn.prototype.mapMode=s.MapMode.TrackBefore;Zn.prototype.startSide=Zn.prototype.endSide=-1;Zn.prototype.point=true;const tr=s.Facet.define();const er=s.Facet.define();const ir={class:"",renderEmptyElements:false,elementStyle:"",markers:()=>s.RangeSet.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}};const sr=s.Facet.define();function or(t){return[rr(),sr.of(Object.assign(Object.assign({},ir),t))]}const nr=s.Facet.define({combine:t=>t.some((t=>t))});function rr(t){let e=[lr];if(t&&t.fixed===false)e.push(nr.of(true));return e}const lr=ke.fromClass(class{constructor(t){this.view=t;this.prevViewport=t.viewport;this.dom=document.createElement("div");this.dom.className="cm-gutters";this.dom.setAttribute("aria-hidden","true");this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px";this.gutters=t.state.facet(sr).map((e=>new fr(t,e)));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!t.state.facet(nr);if(this.fixed){this.dom.style.position="sticky"}this.syncGutters(false);t.scrollDOM.insertBefore(this.dom,t.contentDOM)}update(t){if(this.updateGutters(t)){let e=this.prevViewport,i=t.view.viewport;let s=Math.min(e.to,i.to)-Math.max(e.from,i.from);this.syncGutters(s<(i.to-i.from)*.8)}if(t.geometryChanged){this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px"}if(this.view.state.facet(nr)!=!this.fixed){this.fixed=!this.fixed;this.dom.style.position=this.fixed?"sticky":""}this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;if(t)this.dom.remove();let i=s.RangeSet.iter(this.view.state.facet(tr),this.view.viewport.from);let o=[];let n=this.gutters.map((t=>new cr(t,this.view.viewport,-this.view.documentPadding.top)));for(let s of this.view.viewportLineBlocks){if(o.length)o=[];if(Array.isArray(s.type)){let t=true;for(let e of s.type){if(e.type==Mt.Text&&t){hr(i,o,e.from);for(let t of n)t.line(this.view,e,o);t=false}else if(e.widget){for(let t of n)t.widget(this.view,e)}}}else if(s.type==Mt.Text){hr(i,o,s.from);for(let t of n)t.line(this.view,s,o)}else if(s.widget){for(let t of n)t.widget(this.view,s)}}for(let s of n)s.finish();if(t)this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(t){let e=t.startState.facet(sr),i=t.state.facet(sr);let o=t.docChanged||t.heightChanged||t.viewportChanged||!s.RangeSet.eq(t.startState.facet(tr),t.state.facet(tr),t.view.viewport.from,t.view.viewport.to);if(e==i){for(let e of this.gutters)if(e.update(t))o=true}else{o=true;let s=[];for(let o of i){let i=e.indexOf(o);if(i<0){s.push(new fr(this.view,o))}else{this.gutters[i].update(t);s.push(this.gutters[i])}}for(let t of this.gutters){t.dom.remove();if(s.indexOf(t)<0)t.destroy()}for(let t of s)this.dom.appendChild(t.dom);this.gutters=s}return o}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove()}},{provide:t=>oo.scrollMargins.of((e=>{let i=e.plugin(t);if(!i||i.gutters.length==0||!i.fixed)return null;return e.textDirection==Vt.LTR?{left:i.dom.offsetWidth*e.scaleX}:{right:i.dom.offsetWidth*e.scaleX}}))});function ar(t){return Array.isArray(t)?t:[t]}function hr(t,e,i){while(t.value&&t.from<=i){if(t.from==i)e.push(t.value);t.next()}}class cr{constructor(t,e,i){this.gutter=t;this.height=i;this.i=0;this.cursor=s.RangeSet.iter(t.markers,e.from)}addElement(t,e,i){let{gutter:s}=this,o=(e.top-this.height)/t.scaleY,n=e.height/t.scaleY;if(this.i==s.elements.length){let e=new dr(t,n,o,i);s.elements.push(e);s.dom.appendChild(e.dom)}else{s.elements[this.i].update(t,n,o,i)}this.height=e.bottom;this.i++}line(t,e,i){let s=[];hr(this.cursor,s,e.from);if(i.length)s=s.concat(i);let o=this.gutter.config.lineMarker(t,e,s);if(o)s.unshift(o);let n=this.gutter;if(s.length==0&&!n.config.renderEmptyElements)return;this.addElement(t,e,s)}widget(t,e){let i=this.gutter.config.widgetMarker(t,e.widget,e),s=i?[i]:null;for(let o of t.state.facet(er)){let i=o(t,e.widget,e);if(i)(s||(s=[])).push(i)}if(s)this.addElement(t,e,s)}finish(){let t=this.gutter;while(t.elements.length>this.i){let e=t.elements.pop();t.dom.removeChild(e.dom);e.destroy()}}}class fr{constructor(t,e){this.view=t;this.config=e;this.elements=[];this.spacer=null;this.dom=document.createElement("div");this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in e.domEventHandlers){this.dom.addEventListener(i,(s=>{let o=s.target,n;if(o!=this.dom&&this.dom.contains(o)){while(o.parentNode!=this.dom)o=o.parentNode;let t=o.getBoundingClientRect();n=(t.top+t.bottom)/2}else{n=s.clientY}let r=t.lineBlockAtHeight(n-t.documentTop);if(e.domEventHandlers[i](t,r,s))s.preventDefault()}))}this.markers=ar(e.markers(t));if(e.initialSpacer){this.spacer=new dr(t,0,0,[e.initialSpacer(t)]);this.dom.appendChild(this.spacer.dom);this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none"}}update(t){let e=this.markers;this.markers=ar(this.config.markers(t.view));if(this.spacer&&this.config.updateSpacer){let e=this.config.updateSpacer(this.spacer.markers[0],t);if(e!=this.spacer.markers[0])this.spacer.update(t.view,0,0,[e])}let i=t.view.viewport;return!s.RangeSet.eq(this.markers,e,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(t):false)}destroy(){for(let t of this.elements)t.destroy()}}class dr{constructor(t,e,i,s){this.height=-1;this.above=0;this.markers=[];this.dom=document.createElement("div");this.dom.className="cm-gutterElement";this.update(t,e,i,s)}update(t,e,i,s){if(this.height!=e){this.height=e;this.dom.style.height=e+"px"}if(this.above!=i)this.dom.style.marginTop=(this.above=i)?i+"px":"";if(!ur(this.markers,s))this.setMarkers(t,s)}setMarkers(t,e){let i="cm-gutterElement",s=this.dom.firstChild;for(let o=0,n=0;;){let r=n,l=ot(e,i,s)||o(e,i,s):o}return i}})}});class wr extends Zn{constructor(t){super();this.number=t}eq(t){return this.number==t.number}toDOM(){return document.createTextNode(this.number)}}function vr(t,e){return t.state.facet(mr).formatNumber(e,t.state)}const br=sr.compute([mr],(t=>({class:"cm-lineNumbers",renderEmptyElements:false,markers(t){return t.state.facet(pr)},lineMarker(t,e,i){if(i.some((t=>t.toDOM)))return null;return new wr(vr(t,t.state.doc.lineAt(e.from).number))},widgetMarker:(t,e,i)=>{for(let s of t.state.facet(gr)){let o=s(t,e,i);if(o)return o}return null},lineMarkerChange:t=>t.startState.facet(mr)!=t.state.facet(mr),initialSpacer(t){return new wr(vr(t,Sr(t.state.doc.lines)))},updateSpacer(t,e){let i=vr(e.view,Sr(e.view.state.doc.lines));return i==t.number?t:new wr(i)},domEventHandlers:t.facet(mr).domEventHandlers})));function yr(t={}){return[mr.of(t),rr(),br]}function Sr(t){let e=9;while(e{let e=[],i=-1;for(let s of t.selection.ranges){let o=t.doc.lineAt(s.head).from;if(o>i){i=o;e.push(xr.range(o))}}return s.RangeSet.of(e)}));function Cr(){return Mr}function kr(t){return ke.define((e=>({decorations:t.createDeco(e),update(e){this.decorations=t.updateDeco(e,this.decorations)}})),{decorations:t=>t.decorations})}const Ar=Ct.mark({class:"cm-highlightTab"});const Dr=Ct.mark({class:"cm-highlightSpace"});const Or=kr(new _o({regexp:/\t| /g,decoration:t=>t[0]=="\t"?Ar:Dr,boundary:/\S/}));function Tr(){return Or}const Er=kr(new _o({regexp:/\s+$/g,decoration:Ct.mark({class:"cm-trailingSpace"}),boundary:/\S/}));function Rr(){return Er}const Br={HeightMap:vs,HeightOracle:us,MeasuredHeights:ps,QueryType:ms,ChangedRange:Ve,computeOrder:ee,moveVisually:oe,clearHeightChangeFlag:ds,getHeightChangeFlag:()=>fs}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9311.ad0012965aa52db7a3e3.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9311.ad0012965aa52db7a3e3.js deleted file mode 100644 index 703a6c22e176337aa275e26d7ad198f5d28c8b9c..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9311.ad0012965aa52db7a3e3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9311],{79311:(e,t,n)=>{n.r(t);n.d(t,{commonmarkLanguage:()=>Je,deleteMarkupBackward:()=>ut,insertNewlineContinueMarkup:()=>lt,markdown:()=>pt,markdownKeymap:()=>ct,markdownLanguage:()=>Ye});var r=n(71674);var s=n(22819);var i=n(4452);var l=n(75128);var o=n(66575);var a=n(45145);class h{static create(e,t,n,r,s){let i=r+(r<<8)+e+(t<<4)|0;return new h(e,t,n,i,s,[],[])}constructor(e,t,n,r,s,i,l){this.type=e;this.value=t;this.from=n;this.hash=r;this.end=s;this.children=i;this.positions=l;this.hashProp=[[o.NodeProp.contextHash,r]]}addChild(e,t){if(e.prop(o.NodeProp.contextHash)!=this.hash)e=new o.Tree(e.type,e.children,e.positions,e.length,this.hashProp);this.children.push(e);this.positions.push(t)}toTree(e,t=this.end){let n=this.children.length-1;if(n>=0)t=Math.max(t,this.positions[n]+this.children[n].length+this.from);return new o.Tree(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(e,t,n)=>new o.Tree(o.NodeType.none,e,t,n,this.hashProp)})}}var f;(function(e){e[e["Document"]=1]="Document";e[e["CodeBlock"]=2]="CodeBlock";e[e["FencedCode"]=3]="FencedCode";e[e["Blockquote"]=4]="Blockquote";e[e["HorizontalRule"]=5]="HorizontalRule";e[e["BulletList"]=6]="BulletList";e[e["OrderedList"]=7]="OrderedList";e[e["ListItem"]=8]="ListItem";e[e["ATXHeading1"]=9]="ATXHeading1";e[e["ATXHeading2"]=10]="ATXHeading2";e[e["ATXHeading3"]=11]="ATXHeading3";e[e["ATXHeading4"]=12]="ATXHeading4";e[e["ATXHeading5"]=13]="ATXHeading5";e[e["ATXHeading6"]=14]="ATXHeading6";e[e["SetextHeading1"]=15]="SetextHeading1";e[e["SetextHeading2"]=16]="SetextHeading2";e[e["HTMLBlock"]=17]="HTMLBlock";e[e["LinkReference"]=18]="LinkReference";e[e["Paragraph"]=19]="Paragraph";e[e["CommentBlock"]=20]="CommentBlock";e[e["ProcessingInstructionBlock"]=21]="ProcessingInstructionBlock";e[e["Escape"]=22]="Escape";e[e["Entity"]=23]="Entity";e[e["HardBreak"]=24]="HardBreak";e[e["Emphasis"]=25]="Emphasis";e[e["StrongEmphasis"]=26]="StrongEmphasis";e[e["Link"]=27]="Link";e[e["Image"]=28]="Image";e[e["InlineCode"]=29]="InlineCode";e[e["HTMLTag"]=30]="HTMLTag";e[e["Comment"]=31]="Comment";e[e["ProcessingInstruction"]=32]="ProcessingInstruction";e[e["Autolink"]=33]="Autolink";e[e["HeaderMark"]=34]="HeaderMark";e[e["QuoteMark"]=35]="QuoteMark";e[e["ListMark"]=36]="ListMark";e[e["LinkMark"]=37]="LinkMark";e[e["EmphasisMark"]=38]="EmphasisMark";e[e["CodeMark"]=39]="CodeMark";e[e["CodeText"]=40]="CodeText";e[e["CodeInfo"]=41]="CodeInfo";e[e["LinkTitle"]=42]="LinkTitle";e[e["LinkLabel"]=43]="LinkLabel";e[e["URL"]=44]="URL"})(f||(f={}));class u{constructor(e,t){this.start=e;this.content=t;this.marks=[];this.parsers=[]}}class c{constructor(){this.text="";this.baseIndent=0;this.basePos=0;this.depth=0;this.markers=[];this.pos=0;this.indent=0;this.next=-1}forward(){if(this.basePos>this.pos)this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent);this.pos=e;this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return m(this.text,e)}reset(e){this.text=e;this.baseIndent=this.basePos=this.pos=this.indent=0;this.forwardInner();this.depth=1;while(this.markers.length)this.markers.pop()}moveBase(e){this.basePos=e;this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e;this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,n=0){for(let r=t;r=t.stack[n.depth+1].value+n.baseIndent)return true;if(n.indent>=n.baseIndent+4)return false;let r=(e.type==f.OrderedList?C:S)(n,t,false);return r>0&&(e.type!=f.BulletList||b(n,t,false)<0)&&n.text.charCodeAt(n.pos+r-1)==e.value}const p={[f.Blockquote](e,t,n){if(n.next!=62)return false;n.markers.push(J(f.QuoteMark,t.lineStart+n.pos,t.lineStart+n.pos+1));n.moveBase(n.pos+(g(n.text.charCodeAt(n.pos+1))?2:1));e.end=t.lineStart+n.text.length;return true},[f.ListItem](e,t,n){if(n.indent-1)return false;n.moveBaseColumn(n.baseIndent+e.value);return true},[f.OrderedList]:d,[f.BulletList]:d,[f.Document](){return true}};function g(e){return e==32||e==9||e==10||e==13}function m(e,t=0){while(tn&&g(e.charCodeAt(t-1)))t--;return t}function x(e){if(e.next!=96&&e.next!=126)return-1;let t=e.pos+1;while(t-1&&e.depth==t.stack.length)return-1;return r<3?-1:1}function w(e,t){for(let n=e.stack.length-1;n>=0;n--)if(e.stack[n].type==t)return true;return false}function S(e,t,n){return(e.next==45||e.next==43||e.next==42)&&(e.pos==e.text.length-1||g(e.text.charCodeAt(e.pos+1)))&&(!n||w(t,f.BulletList)||e.skipSpace(e.pos+2)=48&&s<=57)r++;else break;if(r==e.text.length)return-1;s=e.text.charCodeAt(r)}if(r==e.pos||r>e.pos+9||s!=46&&s!=41||re.pos+1||e.next!=49))return-1;return r+1-e.pos}function y(e){if(e.next!=35)return-1;let t=e.pos+1;while(t6?-1:n}function T(e){if(e.next!=45&&e.next!=61||e.indent>=e.baseIndent+4)return-1;let t=e.pos+1;while(t/,B=/\?>/;const E=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(r);if(i)return e.append(J(f.Comment,n,n+1+i[0].length));let l=/^\?[^]*?\?>/.exec(r);if(l)return e.append(J(f.ProcessingInstruction,n,n+1+l[0].length));let o=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(r);if(!o)return-1;return e.append(J(f.HTMLTag,n,n+1+o[0].length))},Emphasis(e,t,n){if(t!=95&&t!=42)return-1;let r=n+1;while(e.char(r)==t)r++;let s=e.slice(n-1,n),i=e.slice(r,r+1);let l=se.test(s),o=se.test(i);let a=/\s|^$/.test(s),h=/\s|^$/.test(i);let f=!h&&(!o||a||l);let u=!a&&(!l||h||o);let c=f&&(t==42||!u||l);let d=u&&(t==42||!f||o);return e.append(new ne(t==95?W:Y,n,r,(c?1:0)|(d?2:0)))},HardBreak(e,t,n){if(t==92&&e.char(n+1)==10)return e.append(J(f.HardBreak,n,n+2));if(t==32){let t=n+1;while(e.char(t)==32)t++;if(e.char(t)==10&&t>=n+2)return e.append(J(f.HardBreak,n,t+1))}return-1},Link(e,t,n){return t==91?e.append(new ne(ee,n,n+1,1)):-1},Image(e,t,n){return t==33&&e.char(n+1)==91?e.append(new ne(te,n,n+2,1)):-1},LinkEnd(e,t,n){if(t!=93)return-1;for(let r=e.parts.length-1;r>=0;r--){let t=e.parts[r];if(t instanceof ne&&(t.type==ee||t.type==te)){if(!t.side||e.skipSpace(t.to)==n&&!/[(\[]/.test(e.slice(n+1,n+2))){e.parts[r]=null;return-1}let s=e.takeContent(r);let i=e.parts[r]=le(e,s,t.type==ee?f.Link:f.Image,t.from,n+1);if(t.type==ee)for(let t=0;tt?J(f.URL,t+n,s+n):s==e.length?null:false}}function ae(e,t,n){let r=e.charCodeAt(t);if(r!=39&&r!=34&&r!=40)return false;let s=r==40?41:r;for(let i=t+1,l=false;i=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){this.parts.push(e);return e.to}addDelimiter(e,t,n,r,s){return this.append(new ne(e,t,n,(r?1:0)|(s?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let t=this.parts[e];if(t instanceof ne&&(t.type==ee||t.type==te))return true}return false}addElement(e){return this.append(e)}resolveMarkers(e){for(let n=e;n=e;l--){let e=this.parts[l];if(e instanceof ne&&e.side&1&&e.type==t.type&&!(r&&(t.side&1||e.side&2)&&(e.to-e.from+s)%3==0&&((e.to-e.from)%3||s%3))){i=e;break}}if(!i)continue;let o=t.type.resolve,a=[];let h=i.from,f=t.to;if(r){let e=Math.min(2,i.to-i.from,s);h=i.to-e;f=t.from+e;o=e==1?"Emphasis":"StrongEmphasis"}if(i.type.mark)a.push(this.elt(i.type.mark,h,i.to));for(let e=l+1;e=0;t--){let n=this.parts[t];if(n instanceof ne&&n.type==e)return t}return null}takeContent(e){let t=this.resolveMarkers(e);this.parts.length=e;return t}skipSpace(e){return m(this.text,e-this.offset)+this.offset}elt(e,t,n,r){if(typeof e=="string")return J(this.parser.getNodeType(e),t,n,r);return new K(e,t)}}function ue(e,t){if(!t.length)return e;if(!e.length)return t;let n=e.slice(),r=0;for(let s of t){while(r(e?e-1:0))return false;if(this.fragmentEnd<0){let e=this.fragment.to;while(e>0&&this.input.read(e-1,e)!="\n")e--;this.fragmentEnd=e?e-1:0}let n=this.cursor;if(!n){n=this.cursor=this.fragment.tree.cursor();n.firstChild()}let r=e+this.fragment.offset;while(n.to<=r)if(!n.parent())return false;for(;;){if(n.from>=r)return this.fragment.from<=t;if(!n.childAfter(r))return false}}matches(e){let t=this.cursor.tree;return t&&t.prop(o.NodeProp.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,r=this.fragmentEnd-(this.fragment.openEnd?1:0);let s=e.absoluteLineStart,i=s,l=e.block.children.length;let a=i,h=l;for(;;){if(t.to-n>r){if(t.type.isAnonymous&&t.firstChild())continue;break}let s=pe(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to){e.addNode(t.tree,s)}else{let n=new o.Tree(e.parser.nodeSet.types[f.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(n,t.tree);e.addNode(n,s)}if(t.type.is("Block")){if(ce.indexOf(t.type.id)<0){i=t.to-n;l=e.block.children.length}else{i=a;l=h;a=t.to-n;h=e.block.children.length}}if(!t.nextSibling())break}while(e.block.children.length>l){e.block.children.pop();e.block.positions.pop()}return i-s}}function pe(e,t){let n=e;for(let r=1;rv[e])),Object.keys(v).map((e=>X[e])),Object.keys(v),z,p,Object.keys(ie).map((e=>ie[e])),Object.keys(ie),[]);function ke(e,t,n){let r=[];for(let s=e.firstChild,i=t;;s=s.nextSibling){let e=s?s.from:n;if(e>i)r.push({from:i,to:e});if(!s)break;i=s.to}return r}function xe(e){let{codeParser:t,htmlParser:n}=e;let r=(0,o.parseMixed)(((e,r)=>{let s=e.type.id;if(t&&(s==f.CodeBlock||s==f.FencedCode)){let n="";if(s==f.FencedCode){let t=e.node.getChild(f.CodeInfo);if(t)n=r.read(t.from,t.to)}let i=t(n);if(i)return{parser:i,overlay:e=>e.type.id==f.CodeText}}else if(n&&(s==f.HTMLBlock||s==f.HTMLTag)){return{parser:n,overlay:ke(e.node,e.from,e.to)}}return null}));return{wrap:r}}const Le={resolve:"Strikethrough",mark:"StrikethroughMark"};const be={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":a.tags.strikethrough}},{name:"StrikethroughMark",style:a.tags.processingInstruction}],parseInline:[{name:"Strikethrough",parse(e,t,n){if(t!=126||e.char(n+1)!=126||e.char(n+2)==126)return-1;let r=e.slice(n-1,n),s=e.slice(n+2,n+3);let i=/\s|^$/.test(r),l=/\s|^$/.test(s);let o=se.test(r),a=se.test(s);return e.addDelimiter(Le,n,n+2,!l&&(!a||i||o),!i&&(!o||l||a))},after:"Emphasis"}]};function we(e,t,n=0,r,s=0){let i=0,l=true,o=-1,a=-1,h=false;let f=()=>{r.push(e.elt("TableCell",s+o,s+a,e.parser.parseInline(t.slice(o,a),s+o)))};for(let u=n;u-1)i++;l=false;if(r){if(o>-1)f();r.push(e.elt("TableDelimiter",u+s,u+s+1))}o=a=-1}else if(h||n!=32&&n!=9){if(o<0)o=u;a=u+1}h=!h&&n==92}if(o>-1){i++;if(r)f()}return i}function Se(e,t){for(let n=t;ne instanceof ye))||!Se(t.text,t.basePos))return false;let r=e.scanLine(e.absoluteLineEnd+1).text;return Ce.test(r)&&we(e,t.text,t.basePos)==we(e,r,t.basePos)},before:"SetextHeading"}]};class Ae{nextLine(){return false}finish(e,t){e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)]));return true}}const Ie={defineNodes:[{name:"Task",block:true,style:a.tags.list},{name:"TaskMarker",style:a.tags.atom}],parseBlock:[{name:"TaskList",leaf(e,t){return/^\[[ xX]\][ \t]/.test(t.content)&&e.parentType().name=="ListItem"?new Ae:null},after:"SetextHeading"}]};const Be=/(www\.)|(https?:\/\/)|([\w.+-]+@)|(mailto:|xmpp:)/gy;const Ee=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy;const Me=/[\w-]+\.[\w-]+($|\/)/;const Pe=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy;const He=/\/[a-zA-Z\d@.]+/gy;function ve(e,t,n,r){let s=0;for(let i=t;i-1)return-1;let r=t+n[0].length;for(;;){let n=e[r-1],s;if(/[?!.,:*_~]/.test(n)||n==")"&&ve(e,t,r,")")>ve(e,t,r,"("))r--;else if(n==";"&&(s=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(e.slice(t,r))))r=t+s.index;else break}return r}function Oe(e,t){Pe.lastIndex=t;let n=Pe.exec(e);if(!n)return-1;let r=n[0][n[0].length-1];return r=="_"||r=="-"?-1:t+n[0].length-(r=="."?1:0)}const Re={parseInline:[{name:"Autolink",parse(e,t,n){let r=n-e.offset;Be.lastIndex=r;let s=Be.exec(e.text),i=-1;if(!s)return-1;if(s[1]||s[2]){i=Ne(e.text,r+s[0].length);if(i>-1&&e.hasOpenLink){let t=/([^\[\]]|\[[^\]]*\])*/.exec(e.text.slice(r,i));i=r+t[0].length}}else if(s[3]){i=Oe(e.text,r)}else{i=Oe(e.text,r+s[0].length);if(i>-1&&s[0]=="xmpp:"){He.lastIndex=i;s=He.exec(e.text);if(s)i=s.index+s[0].length}}if(i<0)return-1;e.addElement(e.elt("URL",n,i+e.offset));return i+e.offset}}]};const Xe=[Te,Ie,be,Re];function ze(e,t,n){return(r,s,i)=>{if(s!=e||r.char(i+1)==e)return-1;let l=[r.elt(n,i,i+1)];for(let o=i+1;o!e.is("Block")||e.is("Document")||Qe(e)!=null||Ze(e)?undefined:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to}))),qe.add(Qe),i.indentNodeProp.add({Document:()=>null}),i.languageDataProp.add({Document:je})]});function Qe(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:undefined}function Ze(e){return e.name=="OrderedList"||e.name=="BulletList"}function Ve(e,t){let n=e;for(;;){let e=n.nextSibling,r;if(!e||(r=Qe(e.type))!=null&&r<=t)break;n=e}return n.to}const Ge=i.foldService.of(((e,t,n)=>{for(let r=(0,i.syntaxTree)(e).resolveInner(n,-1);r;r=r.parent){if(r.fromn)return{from:n,to:s}}return null}));function Ke(e){return new i.Language(je,e,[Ge],"markdown")}const Je=Ke(Ue);const We=Ue.configure([Xe,$e,De,_e,{props:[i.foldNodeProp.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]);const Ye=Ke(We);function et(e,t){return n=>{if(n&&e){let t=null;n=/\S*/.exec(n)[0];if(typeof e=="function")t=e(n);else t=i.LanguageDescription.matchLanguageName(e,n,true);if(t instanceof i.LanguageDescription)return t.support?t.support.language.parser:i.ParseContext.getSkippingParser(t.load());else if(t)return t.parser}return t?t.parser:null}}class tt{constructor(e,t,n,r,s,i,l){this.node=e;this.from=t;this.to=n;this.spaceBefore=r;this.spaceAfter=s;this.type=i;this.item=l}blank(e,t=true){let n=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){while(n.length0;e--)n+=" ";return n+(t?this.spaceAfter:"")}}marker(e,t){let n=this.node.name=="OrderedList"?String(+rt(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}}function nt(e,t){let n=[],r=[];for(let s=e;s;s=s.parent){if(s.name=="FencedCode")return r;if(s.name=="ListItem"||s.name=="Blockquote")n.push(s)}for(let s=n.length-1;s>=0;s--){let e=n[s],i;let l=t.lineAt(e.from),o=e.from-l.from;if(e.name=="Blockquote"&&(i=/^ *>( ?)/.exec(l.text.slice(o)))){r.push(new tt(e,o,o+i[0].length,"",i[1],">",null))}else if(e.name=="ListItem"&&e.parent.name=="OrderedList"&&(i=/^( *)\d+([.)])( *)/.exec(l.text.slice(o)))){let t=i[3],n=i[0].length;if(t.length>=4){t=t.slice(0,t.length-4);n-=4}r.push(new tt(e.parent,o,o+n,i[1],t,i[2],e))}else if(e.name=="ListItem"&&e.parent.name=="BulletList"&&(i=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(l.text.slice(o)))){let t=i[4],n=i[0].length;if(t.length>4){t=t.slice(0,t.length-4);n-=4}let s=i[2];if(i[3])s+=i[3].replace(/[xX]/," ");r.push(new tt(e.parent,o,o+n,i[1],t,s,e))}}return r}function rt(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function st(e,t,n,r=0){for(let s=-1,i=e;;){if(i.name=="ListItem"){let e=rt(i,t);let l=+e[2];if(s>=0){if(l!=s+1)return;n.push({from:i.from+e[1].length,to:i.from+e[0].length,insert:String(s+2+r)})}s=l}let e=i.nextSibling;if(!e)break;i=e}}function it(e,t){let n=/^[ \t]*/.exec(e)[0].length;if(!n||t.facet(i.indentUnit)!="\t")return e;let s=(0,r.countColumn)(e,4,n);let l="";for(let r=s;r>0;){if(r>=4){l+="\t";r-=4}else{l+=" ";r--}}return l+e.slice(n)}const lt=({state:e,dispatch:t})=>{let n=(0,i.syntaxTree)(e),{doc:s}=e;let l=null,o=e.changeByRange((t=>{if(!t.empty||!Ye.isActiveAt(e,t.from,0))return l={range:t};let i=t.from,o=s.lineAt(i);let a=nt(n.resolveInner(i,-1),s);while(a.length&&a[a.length-1].from>i-o.from)a.pop();if(!a.length)return l={range:t};let h=a[a.length-1];if(h.to-h.spaceAfter.length>i-o.from)return l={range:t};let f=i>=h.to-h.spaceAfter.length&&!/\S/.test(o.text.slice(h.to));if(h.item&&f){let t=h.node.firstChild,n=h.node.getChild("ListItem","ListItem");if(t.to>=i||n&&n.to0&&!/[^\s>]/.test(s.lineAt(o.from-1).text)){let e=a.length>1?a[a.length-2]:null;let t,n="";if(e&&e.item){t=o.from+e.from;n=e.marker(s,1)}else{t=o.from+(e?e.to:0)}let l=[{from:t,to:i,insert:n}];if(h.node.name=="OrderedList")st(h.item,s,l,-2);if(e&&e.node.name=="OrderedList")st(e.item,s,l);return{range:r.EditorSelection.cursor(t+n.length),changes:l}}else{let t=ht(a,e,o);return{range:r.EditorSelection.cursor(i+t.length+1),changes:{from:o.from,insert:t+e.lineBreak}}}}if(h.node.name=="Blockquote"&&f&&o.from){let n=s.lineAt(o.from-1),r=/>\s*$/.exec(n.text);if(r&&r.index==h.from){let s=e.changes([{from:n.from+r.index,to:n.to},{from:o.from+h.from,to:o.to}]);return{range:t.map(s),changes:s}}}let u=[];if(h.node.name=="OrderedList")st(h.item,s,u);let c=h.item&&h.item.from]*/.exec(o.text)[0].length>=h.to){for(let e=0,t=a.length-1;e<=t;e++){d+=e==t&&!c?a[e].marker(s,1):a[e].blank(eo.from&&/\s/.test(o.text.charAt(p-o.from-1)))p--;d=it(d,e);if(at(h.node,e.doc))d=ht(a,e,o)+e.lineBreak+d;u.push({from:p,to:i,insert:e.lineBreak+d});return{range:r.EditorSelection.cursor(p+d.length+1),changes:u}}));if(l)return false;t(e.update(o,{scrollIntoView:true,userEvent:"input"}));return true};function ot(e){return e.name=="QuoteMark"||e.name=="ListMark"}function at(e,t){if(e.name!="OrderedList"&&e.name!="BulletList")return false;let n=e.firstChild,r=e.getChild("ListItem","ListItem");if(!r)return false;let s=t.lineAt(n.to),i=t.lineAt(r.from);let l=/^[\s>]*$/.test(s.text);return s.number+(l?0:1){let n=(0,i.syntaxTree)(e);let s=null,l=e.changeByRange((t=>{let i=t.from,{doc:l}=e;if(t.empty&&Ye.isActiveAt(e,t.from)){let t=l.lineAt(i);let s=nt(ft(n,i),l);if(s.length){let n=s[s.length-1];let l=n.to-n.spaceAfter.length+(n.spaceAfter?1:0);if(i-t.from>l&&!/\S/.test(t.text.slice(l,i-t.from)))return{range:r.EditorSelection.cursor(t.from+l),changes:{from:t.from+l,to:i}};if(i-t.from==l&&(!n.item||t.from<=n.item.from||!/\S/.test(t.text.slice(0,n.to)))){let s=t.from+n.from;if(n.item&&n.node.from{e.r(i);e.d(i,{globalCompletion:()=>Oi,localCompletionSource:()=>BO,python:()=>ni,pythonLanguage:()=>ai});var a=e(27421);var n=e(45145);const Q=1,t=194,r=195,o=196,d=197,s=198,T=199,l=200,S=2,p=3,q=201,g=24,$=25,P=49,m=50,c=55,h=56,X=57,f=59,y=60,W=61,z=62,u=63,v=65,R=238,k=71,x=241,_=242,U=243,V=244,G=245,b=246,w=247,Z=248,j=72,E=249,Y=250,F=251,J=252,A=253,C=254,I=255,N=256,D=73,H=77,L=263,B=112,K=130,M=151,OO=152,iO=155;const eO=10,aO=13,nO=32,QO=9,tO=35,rO=40,oO=46,dO=123,sO=125,TO=39,lO=34,SO=92,pO=111,qO=120,gO=78,$O=117,PO=85;const mO=new Set([$,P,m,L,v,K,h,X,R,z,u,j,D,H,y,W,M,OO,iO,B]);function cO(O){return O==eO||O==aO}function hO(O){return O>=48&&O<=57||O>=65&&O<=70||O>=97&&O<=102}const XO=new a.Lu(((O,i)=>{let e;if(O.next<0){O.acceptToken(T)}else if(i.context.flags&yO){if(cO(O.next))O.acceptToken(s,1)}else if(((e=O.peek(-1))<0||cO(e))&&i.canShift(d)){let i=0;while(O.next==nO||O.next==QO){O.advance();i++}if(O.next==eO||O.next==aO||O.next==tO)O.acceptToken(d,-i)}else if(cO(O.next)){O.acceptToken(o,1)}}),{contextual:true});const fO=new a.Lu(((O,i)=>{let e=i.context;if(e.flags)return;let a=O.peek(-1);if(a==eO||a==aO){let i=0,a=0;for(;;){if(O.next==nO)i++;else if(O.next==QO)i+=8-i%8;else break;O.advance();a++}if(i!=e.indent&&O.next!=eO&&O.next!=aO&&O.next!=tO){if(i[O,i|WO])));const VO=new a.Aj({start:xO,reduce(O,i,e,a){if(O.flags&yO&&mO.has(i)||(i==k||i==j)&&O.flags&WO)return O.parent;return O},shift(O,i,e,a){if(i==t)return new kO(O,_O(a.read(a.pos,e.pos)),0);if(i==r)return O.parent;if(i==g||i==c||i==f||i==p)return new kO(O,0,yO);if(UO.has(i))return new kO(O,0,UO.get(i)|O.flags&yO);return O},hash(O){return O.hash}});const GO=new a.Lu((O=>{for(let i=0;i<5;i++){if(O.next!="print".charCodeAt(i))return;O.advance()}if(/\w/.test(String.fromCharCode(O.next)))return;for(let i=0;;i++){let e=O.peek(i);if(e==nO||e==QO)continue;if(e!=rO&&e!=oO&&e!=eO&&e!=aO&&e!=tO)O.acceptToken(Q);return}}));const bO=new a.Lu(((O,i)=>{let{flags:e}=i.context;let a=e&zO?lO:TO;let n=(e&uO)>0;let Q=!(e&vO);let t=(e&RO)>0;let r=O.pos;for(;;){if(O.next<0){break}else if(t&&O.next==dO){if(O.peek(1)==dO){O.advance(2)}else{if(O.pos==r){O.acceptToken(p,1);return}break}}else if(Q&&O.next==SO){if(O.pos==r){O.advance();let i=O.next;if(i>=0){O.advance();wO(O,i)}O.acceptToken(S);return}break}else if(O.next==a&&(!n||O.peek(1)==a&&O.peek(2)==a)){if(O.pos==r){O.acceptToken(q,n?3:1);return}break}else if(O.next==eO){if(n){O.advance()}else if(O.pos==r){O.acceptToken(q);return}break}else{O.advance()}}if(O.pos>r)O.acceptToken(l)}));function wO(O,i){if(i==pO){for(let i=0;i<2&&O.next>=48&&O.next<=55;i++)O.advance()}else if(i==qO){for(let i=0;i<2&&hO(O.next);i++)O.advance()}else if(i==$O){for(let i=0;i<4&&hO(O.next);i++)O.advance()}else if(i==PO){for(let i=0;i<8&&hO(O.next);i++)O.advance()}else if(i==gO){if(O.next==dO){O.advance();while(O.next>=0&&O.next!=sO&&O.next!=TO&&O.next!=lO&&O.next!=eO)O.advance();if(O.next==sO)O.advance()}}}const ZO=(0,n.styleTags)({'async "*" "**" FormatConversion FormatSpec':n.tags.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":n.tags.controlKeyword,"in not and or is del":n.tags.operatorKeyword,"from def class global nonlocal lambda":n.tags.definitionKeyword,import:n.tags.moduleKeyword,"with as print":n.tags.keyword,Boolean:n.tags.bool,None:n.tags.null,VariableName:n.tags.variableName,"CallExpression/VariableName":n.tags.function(n.tags.variableName),"FunctionDefinition/VariableName":n.tags.function(n.tags.definition(n.tags.variableName)),"ClassDefinition/VariableName":n.tags.definition(n.tags.className),PropertyName:n.tags.propertyName,"CallExpression/MemberExpression/PropertyName":n.tags.function(n.tags.propertyName),Comment:n.tags.lineComment,Number:n.tags.number,String:n.tags.string,FormatString:n.tags.special(n.tags.string),Escape:n.tags.escape,UpdateOp:n.tags.updateOperator,"ArithOp!":n.tags.arithmeticOperator,BitOp:n.tags.bitwiseOperator,CompareOp:n.tags.compareOperator,AssignOp:n.tags.definitionOperator,Ellipsis:n.tags.punctuation,At:n.tags.meta,"( )":n.tags.paren,"[ ]":n.tags.squareBracket,"{ }":n.tags.brace,".":n.tags.derefOperator,", ;":n.tags.separator});const jO={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285};const EO=a.U1.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5QQdO'#DoOOQS,5:Y,5:YO5eQdO'#HdOOQS,5:],5:]O5rQ!fO,5:]O5wQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8gQdO,59bO8lQdO,59bO8sQdO,59jO8zQdO'#HTO:QQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:iQdO,59aO'vQdO,59aO:wQdO,59aOOQS,59y,59yO:|QdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;[QdO,5:QO;aQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;rQdO,5:UO;wQdO,5:WOOOW'#Fy'#FyO;|OWO,5:aOOQS,5:a,5:aOOOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/RQtO1G.|O!/YQtO1G.|O1lQdO1G.|O!/uQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!/|QdO1G/eO!0^QdO1G/eO!0fQdO1G/fO'vQdO'#H[O!0kQdO'#H[O!0pQtO1G.{O!1QQdO,59iO!2WQdO,5=zO!2hQdO,5=zO!2pQdO1G/mO!2uQtO1G/mOOQS1G/l1G/lO!3VQdO,5=uO!3|QdO,5=uO0rQdO1G/qO!4kQdO1G/sO!4pQtO1G/sO!5QQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5bQdO'#HxO0rQdO'#HxO!5sQdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6RQ#xO1G2zO!6rQtO1G2zO'vQdO,5kOOQS1G1`1G1`O!7xQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!7}QdO'#FrO!8YQdO,59oO!8bQdO1G/XO!8lQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9]QdO'#GtOOQS,5jO!;QQdO,5>jO1XQdO,5>jO!;cQdO,5>iOOQS-E:R-E:RO!;hQdO1G0lO!;sQdO1G0lO!;xQdO,5>lO!lO!hO!<|QdO,5>hO!=_QdO'#EpO0rQdO1G0tO!=jQdO1G0tO!=oQgO1G0zO!AmQgO1G0}O!EhQdO,5>oO!ErQdO,5>oO!EzQtO,5>oO0rQdO1G1PO!FUQdO1G1PO4iQdO1G1UO!!sQdO1G1WOOQV,5;a,5;aO!FZQfO,5;aO!F`QgO1G1QO!JaQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JqQdO,5>pO!KOQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KWQdO'#FSO!KiQ!fO1G1WO!KqQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!KvQdO1G1]O!LOQdO'#F^OOQV1G1b1G1bO!#WQtO1G1bPOOO1G2v1G2vP!LTOSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LYQdO,5=|O!LmQdO,5=|OOQS1G/u1G/uO!LuQdO,5>PO!MVQdO,5>PO!M_QdO,5>PO!MrQdO,5>PO!NSQdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8bQdO7+$pO# uQdO1G.|O# |QdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!TQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!eQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!jQdO7+%PO#!rQdO7+%QO#!wQdO1G3fOOQS7+%X7+%XO##XQdO1G3fO##aQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##fQdO1G3aOOQS-E9q-E9qO#$]QdO7+%]OOQS7+%_7+%_O#$kQdO1G3aO#%YQdO7+%_O#%_QdO1G3gO#%oQdO1G3gO#%wQdO7+%]O#%|QdO,5>dO#&gQdO,5>dO#&gQdO,5>dOOQS'#Dx'#DxO#&xO&jO'#DzO#'TO`O'#HyOOOW1G3}1G3}O#'YQdO1G3}O#'bQdO1G3}O#'mQ#xO7+(fO#(^QtO1G2UP#(wQdO'#GOOOQS,5bQdO,5gQdO1G4OOOQS-E9y-E9yO#?QQdO1G4OOe,5>eOOOW7+)i7+)iO#?nQdO7+)iO#?vQdO1G2zO#@aQdO1G2zP'vQdO'#FuO0rQdO<mO#AtQdO,5>mOOQS1G0v1G0vOOQS<rO#KZQdO,5>rOOQS,5>r,5>rO#KfQdO,5>qO#KwQdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<VAN>VO$ WQdO<cAN>cO0rQdO1G1|O$ hQtO1G1|P$ rQdO'#FvOOQS1G2R1G2RP$!PQdO'#F{O$!^QdO7+)jO$!wQdO,5>gOOOO-E9z-E9zOOOW<tO$4dQdO,5>tO1XQdO,5vO$)VQdO,5>vOOQS1G1p1G1pO$8[QtO,5<[OOQU7+'P7+'PO$+cQdO1G/iO$)VQdO,5wO$8jQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)VQdO'#GdO$8rQdO1G4bO$8|QdO1G4bO$9UQdO1G4bOOQS7+%T7+%TO$9dQdO1G1tO$9rQtO'#FaO$9yQdO,5<}OOQS,5<},5<}O$:XQdO1G4cOOQS-E:a-E:aO$)VQdO,5<|O$:`QdO,5<|O$:eQdO7+)|OOQS-E:`-E:`O$:oQdO7+)|O$)VQdO,5m>pPP'Z'ZPP?PPP'Z'ZPP'Z'Z'Z'Z'Z?T?}'ZP@QP@WD_G{HPPHSH^Hb'ZPPPHeHn'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHtIQIYPIaIgPIaPIaIaPPPIaPKuPLOLYL`KuPIaLiPIaPLpLvPLzM`M}NhLzLzNnN{LzLzLzLz! a! g! j! o! r! |!!S!!`!!r!!x!#S!#Y!#v!#|!$S!$^!$d!$j!$|!%W!%^!%d!%n!%t!%z!&Q!&W!&^!&h!&n!&x!'O!'X!'_!'n!'v!(Q!(XPPPPPPPPPPP!(_!(b!(h!(q!({!)WPPPPPPPPPPPP!-z!/`!3`!6pPP!6x!7X!7b!8Z!8Q!8d!8j!8m!8p!8s!8{!9lPPPPPPPPPPPPPPPPP!9o!9s!9yP!:_!:c!:o!:x!;U!;l!;o!;r!;x!_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[GO,fO,XO,bO,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:O=>jO[O]||-1}],tokenPrec:7652});var YO=e(4452);var FO=e(66575);var JO=e(75128);const AO=new FO.NodeWeakMap;const CO=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function IO(O){return(i,e,a)=>{if(a)return false;let n=i.node.getChild("VariableName");if(n)e(n,O);return true}}const NO={FunctionDefinition:IO("function"),ClassDefinition:IO("class"),ForStatement(O,i,e){if(e)for(let a=O.node.firstChild;a;a=a.nextSibling){if(a.name=="VariableName")i(a,"variable");else if(a.name=="in")break}},ImportStatement(O,i){var e,a;let{node:n}=O;let Q=((e=n.firstChild)===null||e===void 0?void 0:e.name)=="from";for(let t=n.getChild("import");t;t=t.nextSibling){if(t.name=="VariableName"&&((a=t.nextSibling)===null||a===void 0?void 0:a.name)!="as")i(t,Q?"variable":"namespace")}},AssignStatement(O,i){for(let e=O.node.firstChild;e;e=e.nextSibling){if(e.name=="VariableName")i(e,"variable");else if(e.name==":"||e.name=="AssignOp")break}},ParamList(O,i){for(let e=null,a=O.node.firstChild;a;a=a.nextSibling){if(a.name=="VariableName"&&(!e||!/\*|AssignOp/.test(e.name)))i(a,"variable");e=a}},CapturePattern:IO("variable"),AsPattern:IO("variable"),__proto__:null};function DO(O,i){let e=AO.get(i);if(e)return e;let a=[],n=true;function Q(i,e){let n=O.sliceString(i.from,i.to);a.push({label:n,type:e})}i.cursor(FO.IterMode.IncludeAnonymous).iterate((i=>{if(i.name){let O=NO[i.name];if(O&&O(i,Q,n)||!n&&CO.has(i.name))return false;n=false}else if(i.to-i.from>8192){for(let e of DO(O,i.node))a.push(e);return false}}));AO.set(i,a);return a}const HO=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/;const LO=["String","FormatString","Comment","PropertyName"];function BO(O){let i=(0,YO.syntaxTree)(O.state).resolveInner(O.pos,-1);if(LO.indexOf(i.name)>-1)return null;let e=i.name=="VariableName"||i.to-i.from<20&&HO.test(O.state.sliceDoc(i.from,i.to));if(!e&&!O.explicit)return null;let a=[];for(let n=i;n;n=n.parent){if(CO.has(n.name))a=a.concat(DO(O.state.doc,n))}return{options:a,from:e?i.from:O.pos,validFor:HO}}const KO=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map((O=>({label:O,type:"constant"}))).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map((O=>({label:O,type:"type"})))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map((O=>({label:O,type:"class"})))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map((O=>({label:O,type:"function"}))));const MO=[(0,JO.Gw)("def ${name}(${params}):\n\t${}",{label:"def",detail:"function",type:"keyword"}),(0,JO.Gw)("for ${name} in ${collection}:\n\t${}",{label:"for",detail:"loop",type:"keyword"}),(0,JO.Gw)("while ${}:\n\t${}",{label:"while",detail:"loop",type:"keyword"}),(0,JO.Gw)("try:\n\t${}\nexcept ${error}:\n\t${}",{label:"try",detail:"/ except block",type:"keyword"}),(0,JO.Gw)("if ${}:\n\t\n",{label:"if",detail:"block",type:"keyword"}),(0,JO.Gw)("if ${}:\n\t${}\nelse:\n\t${}",{label:"if",detail:"/ else block",type:"keyword"}),(0,JO.Gw)("class ${name}:\n\tdef __init__(self, ${params}):\n\t\t\t${}",{label:"class",detail:"definition",type:"keyword"}),(0,JO.Gw)("import ${module}",{label:"import",detail:"statement",type:"keyword"}),(0,JO.Gw)("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})];const Oi=(0,JO.Ar)(LO,(0,JO.et)(KO.concat(MO)));function ii(O){let{node:i,pos:e}=O;let a=O.lineIndent(e,-1);let n=null;for(;;){let Q=i.childBefore(e);if(!Q){break}else if(Q.name=="Comment"){e=Q.from}else if(Q.name=="Body"||Q.name=="MatchBody"){if(O.baseIndentFor(Q)+O.unit<=a)n=Q;i=Q}else if(Q.name=="MatchClause"){i=Q}else if(Q.type.is("Statement")){i=Q}else{break}}return n}function ei(O,i){let e=O.baseIndentFor(i);let a=O.lineAt(O.pos,-1),n=a.from+a.text.length;if(/^\s*($|#)/.test(a.text)&&O.node.toe)return null;return e+O.unit}const ai=YO.LRLanguage.define({name:"python",parser:EO.configure({props:[YO.indentNodeProp.add({Body:O=>{var i;let e=ii(O);return(i=ei(O,e||O.node))!==null&&i!==void 0?i:O.continue()},MatchBody:O=>{var i;let e=ii(O);return(i=ei(O,e||O.node))!==null&&i!==void 0?i:O.continue()},IfStatement:O=>/^\s*(else:|elif )/.test(O.textAfter)?O.baseIndent:O.continue(),"ForStatement WhileStatement":O=>/^\s*else:/.test(O.textAfter)?O.baseIndent:O.continue(),TryStatement:O=>/^\s*(except |finally:|else:)/.test(O.textAfter)?O.baseIndent:O.continue(),MatchStatement:O=>{if(/^\s*case /.test(O.textAfter))return O.baseIndent+O.unit;return O.continue()},"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":(0,YO.delimitedIndent)({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":(0,YO.delimitedIndent)({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":(0,YO.delimitedIndent)({closing:"]"}),MemberExpression:O=>O.baseIndent+O.unit,"String FormatString":()=>null,Script:O=>{var i;let e=ii(O);return(i=e&&ei(O,e))!==null&&i!==void 0?i:O.continue()}}),YO.foldNodeProp.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":YO.foldInside,Body:(O,i)=>({from:O.from+1,to:O.to-(O.to==i.doc.length?0:1)}),"String FormatString":(O,i)=>({from:i.doc.lineAt(O.from).to,to:O.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function ni(){return new YO.LanguageSupport(ai,[ai.data.of({autocomplete:BO}),ai.data.of({autocomplete:Oi})])}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9359.34d1b961b733676193cb.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9359.34d1b961b733676193cb.js deleted file mode 100644 index e9ad8980f49bed59cdd0b1f825ee4481ea8883fe..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9359.34d1b961b733676193cb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9359],{79359:(e,a,p)=>{p.d(a,{createArchitectureServices:()=>t.S});var t=p(77018);var c=p(74888)}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9400.90fd1d2212781c80b587.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9400.90fd1d2212781c80b587.js deleted file mode 100644 index 8187835908f4977d31f93f894120da18c15fdfbe..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9400.90fd1d2212781c80b587.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9400],{42519:function(t,e,r){var o=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function o(){this.constructor=e}e.prototype=r===null?Object.create(r):(o.prototype=r.prototype,new o)}}();var n=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],o=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&o>=t.length)t=void 0;return{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.HTMLAdaptor=void 0;var i=r(21747);var a=function(t){o(e,t);function e(e){var r=t.call(this,e.document)||this;r.window=e;r.parser=new e.DOMParser;return r}e.prototype.parse=function(t,e){if(e===void 0){e="text/html"}return this.parser.parseFromString(t,e)};e.prototype.create=function(t,e){return e?this.document.createElementNS(e,t):this.document.createElement(t)};e.prototype.text=function(t){return this.document.createTextNode(t)};e.prototype.head=function(t){return t.head||t};e.prototype.body=function(t){return t.body||t};e.prototype.root=function(t){return t.documentElement||t};e.prototype.doctype=function(t){return t.doctype?""):""};e.prototype.tags=function(t,e,r){if(r===void 0){r=null}var o=r?t.getElementsByTagNameNS(r,e):t.getElementsByTagName(e);return Array.from(o)};e.prototype.getElements=function(t,e){var r,o;var i=[];try{for(var a=n(t),u=a.next();!u.done;u=a.next()){var l=u.value;if(typeof l==="string"){i=i.concat(Array.from(this.document.querySelectorAll(l)))}else if(Array.isArray(l)){i=i.concat(Array.from(l))}else if(l instanceof this.window.NodeList||l instanceof this.window.HTMLCollection){i=i.concat(Array.from(l))}else{i.push(l)}}}catch(p){r={error:p}}finally{try{if(u&&!u.done&&(o=a.return))o.call(a)}finally{if(r)throw r.error}}return i};e.prototype.contains=function(t,e){return t.contains(e)};e.prototype.parent=function(t){return t.parentNode};e.prototype.append=function(t,e){return t.appendChild(e)};e.prototype.insert=function(t,e){return this.parent(e).insertBefore(t,e)};e.prototype.remove=function(t){return this.parent(t).removeChild(t)};e.prototype.replace=function(t,e){return this.parent(e).replaceChild(t,e)};e.prototype.clone=function(t){return t.cloneNode(true)};e.prototype.split=function(t,e){return t.splitText(e)};e.prototype.next=function(t){return t.nextSibling};e.prototype.previous=function(t){return t.previousSibling};e.prototype.firstChild=function(t){return t.firstChild};e.prototype.lastChild=function(t){return t.lastChild};e.prototype.childNodes=function(t){return Array.from(t.childNodes)};e.prototype.childNode=function(t,e){return t.childNodes[e]};e.prototype.kind=function(t){var e=t.nodeType;return e===1||e===3||e===8?t.nodeName.toLowerCase():""};e.prototype.value=function(t){return t.nodeValue||""};e.prototype.textContent=function(t){return t.textContent};e.prototype.innerHTML=function(t){return t.innerHTML};e.prototype.outerHTML=function(t){return t.outerHTML};e.prototype.serializeXML=function(t){var e=new this.window.XMLSerializer;return e.serializeToString(t)};e.prototype.setAttribute=function(t,e,r,o){if(o===void 0){o=null}if(!o){return t.setAttribute(e,r)}e=o.replace(/.*\//,"")+":"+e.replace(/^.*:/,"");return t.setAttributeNS(o,e,r)};e.prototype.getAttribute=function(t,e){return t.getAttribute(e)};e.prototype.removeAttribute=function(t,e){return t.removeAttribute(e)};e.prototype.hasAttribute=function(t,e){return t.hasAttribute(e)};e.prototype.allAttributes=function(t){return Array.from(t.attributes).map((function(t){return{name:t.name,value:t.value}}))};e.prototype.addClass=function(t,e){if(t.classList){t.classList.add(e)}else{t.className=(t.className+" "+e).trim()}};e.prototype.removeClass=function(t,e){if(t.classList){t.classList.remove(e)}else{t.className=t.className.split(/ /).filter((function(t){return t!==e})).join(" ")}};e.prototype.hasClass=function(t,e){if(t.classList){return t.classList.contains(e)}return t.className.split(/ /).indexOf(e)>=0};e.prototype.setStyle=function(t,e,r){t.style[e]=r};e.prototype.getStyle=function(t,e){return t.style[e]};e.prototype.allStyles=function(t){return t.style.cssText};e.prototype.insertRules=function(t,e){var r,o;try{for(var i=n(e.reverse()),a=i.next();!a.done;a=i.next()){var u=a.value;try{t.sheet.insertRule(u,0)}catch(l){console.warn("MathJax: can't insert css rule '".concat(u,"': ").concat(l.message))}}}catch(p){r={error:p}}finally{try{if(a&&!a.done&&(o=i.return))o.call(i)}finally{if(r)throw r.error}}};e.prototype.fontSize=function(t){var e=this.window.getComputedStyle(t);return parseFloat(e.fontSize)};e.prototype.fontFamily=function(t){var e=this.window.getComputedStyle(t);return e.fontFamily||""};e.prototype.nodeSize=function(t,e,r){if(e===void 0){e=1}if(r===void 0){r=false}if(r&&t.getBBox){var o=t.getBBox(),n=o.width,i=o.height;return[n/e,i/e]}return[t.offsetWidth/e,t.offsetHeight/e]};e.prototype.nodeBBox=function(t){var e=t.getBoundingClientRect(),r=e.left,o=e.right,n=e.top,i=e.bottom;return{left:r,right:o,top:n,bottom:i}};return e}(i.AbstractDOMAdaptor);e.HTMLAdaptor=a},59400:(t,e,r)=>{Object.defineProperty(e,"__esModule",{value:true});e.browserAdaptor=void 0;var o=r(42519);function n(){return new o.HTMLAdaptor(window)}e.browserAdaptor=n},21747:function(t,e){var r=this&&this.__values||function(t){var e=typeof Symbol==="function"&&Symbol.iterator,r=e&&t[e],o=0;if(r)return r.call(t);if(t&&typeof t.length==="number")return{next:function(){if(t&&o>=t.length)t=void 0;return{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:true});e.AbstractDOMAdaptor=void 0;var o=function(){function t(t){if(t===void 0){t=null}this.document=t}t.prototype.node=function(t,e,o,n){var i,a;if(e===void 0){e={}}if(o===void 0){o=[]}var u=this.create(t,n);this.setAttributes(u,e);try{for(var l=r(o),p=l.next();!p.done;p=l.next()){var s=p.value;this.append(u,s)}}catch(c){i={error:c}}finally{try{if(p&&!p.done&&(a=l.return))a.call(l)}finally{if(i)throw i.error}}return u};t.prototype.setAttributes=function(t,e){var o,n,i,a,u,l;if(e.style&&typeof e.style!=="string"){try{for(var p=r(Object.keys(e.style)),s=p.next();!s.done;s=p.next()){var c=s.value;this.setStyle(t,c.replace(/-([a-z])/g,(function(t,e){return e.toUpperCase()})),e.style[c])}}catch(v){o={error:v}}finally{try{if(s&&!s.done&&(n=p.return))n.call(p)}finally{if(o)throw o.error}}}if(e.properties){try{for(var f=r(Object.keys(e.properties)),y=f.next();!y.done;y=f.next()){var c=y.value;t[c]=e.properties[c]}}catch(m){i={error:m}}finally{try{if(y&&!y.done&&(a=f.return))a.call(f)}finally{if(i)throw i.error}}}try{for(var d=r(Object.keys(e)),h=d.next();!h.done;h=d.next()){var c=h.value;if((c!=="style"||typeof e.style==="string")&&c!=="properties"){this.setAttribute(t,c,e[c])}}}catch(b){u={error:b}}finally{try{if(h&&!h.done&&(l=d.return))l.call(d)}finally{if(u)throw u.error}}};t.prototype.replace=function(t,e){this.insert(t,e);this.remove(e);return e};t.prototype.childNode=function(t,e){return this.childNodes(t)[e]};t.prototype.allClasses=function(t){var e=this.getAttribute(t,"class");return!e?[]:e.replace(/ +/g," ").replace(/^ /,"").replace(/ $/,"").split(/ /)};return t}();e.AbstractDOMAdaptor=o}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9474.01b4e1d1e3376f4a5919.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9474.01b4e1d1e3376f4a5919.js deleted file mode 100644 index ad4f4413b6753b70cdfe25b1c665a94db4090444..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9474.01b4e1d1e3376f4a5919.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9474],{59474:(e,t,n)=>{n.r(t);n.d(t,{turtle:()=>p});var r;function i(e){return new RegExp("^(?:"+e.join("|")+")$","i")}var l=i([]);var a=i(["@prefix","@base","a"]);var o=/[*+\-<>=&|]/;function c(e,t){var n=e.next();r=null;if(n=="<"&&!e.match(/^[\s\u00a0=]/,false)){e.match(/^[^\s\u00a0>]*>?/);return"atom"}else if(n=='"'||n=="'"){t.tokenize=u(n);return t.tokenize(e,t)}else if(/[{}\(\),\.;\[\]]/.test(n)){r=n;return null}else if(n=="#"){e.skipToEnd();return"comment"}else if(o.test(n)){e.eatWhile(o);return null}else if(n==":"){return"operator"}else{e.eatWhile(/[_\w\d]/);if(e.peek()==":"){return"variableName.special"}else{var i=e.current();if(a.test(i)){return"meta"}if(n>="A"&&n<="Z"){return"comment"}else{return"keyword"}}var i=e.current();if(l.test(i))return null;else if(a.test(i))return"meta";else return"variable"}}function u(e){return function(t,n){var r=false,i;while((i=t.next())!=null){if(i==e&&!r){n.tokenize=c;break}r=!r&&i=="\\"}return"string"}}function s(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function f(e){e.indent=e.context.indent;e.context=e.context.prev}const p={name:"turtle",startState:function(){return{tokenize:c,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()){if(t.context&&t.context.align==null)t.context.align=false;t.indent=e.indentation()}if(e.eatSpace())return null;var n=t.tokenize(e,t);if(n!="comment"&&t.context&&t.context.align==null&&t.context.type!="pattern"){t.context.align=true}if(r=="(")s(t,")",e.column());else if(r=="[")s(t,"]",e.column());else if(r=="{")s(t,"}",e.column());else if(/[\]\}\)]/.test(r)){while(t.context&&t.context.type=="pattern")f(t);if(t.context&&r==t.context.type)f(t)}else if(r=="."&&t.context&&t.context.type=="pattern")f(t);else if(/atom|string|variable/.test(n)&&t.context){if(/[\}\]]/.test(t.context.type))s(t,"pattern",e.column());else if(t.context.type=="pattern"&&!t.context.align){t.context.align=true;t.context.col=e.column()}}return n},indent:function(e,t,n){var r=t&&t.charAt(0);var i=e.context;if(/[\]\}]/.test(r))while(i&&i.type=="pattern")i=i.prev;var l=i&&r==i.type;if(!i)return 0;else if(i.type=="pattern")return i.col;else if(i.align)return i.col+(l?0:1);else return i.indent+(l?0:n.unit)},languageData:{commentTokens:{line:"#"}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9517.7056cafdf1da3a136d45.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9517.7056cafdf1da3a136d45.js deleted file mode 100644 index 12eacf29b44f4326af74960eae2e06308cbc4573..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9517.7056cafdf1da3a136d45.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9517],{79517:(e,t,i)=>{i.r(t);i.d(t,{properties:()=>n});const n={name:"properties",token:function(e,t){var i=e.sol()||t.afterSection;var n=e.eol();t.afterSection=false;if(i){if(t.nextMultiline){t.inMultiline=true;t.nextMultiline=false}else{t.position="def"}}if(n&&!t.nextMultiline){t.inMultiline=false;t.position="def"}if(i){while(e.eatSpace()){}}var l=e.next();if(i&&(l==="#"||l==="!"||l===";")){t.position="comment";e.skipToEnd();return"comment"}else if(i&&l==="["){t.afterSection=true;e.skipTo("]");e.eat("]");return"header"}else if(l==="="||l===":"){t.position="quote";return null}else if(l==="\\"&&t.position==="quote"){if(e.eol()){t.nextMultiline=true}}return t.position},startState:function(){return{position:"def",nextMultiline:false,inMultiline:false,afterSection:false}}}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9572.f91bbaa33e932d524f8f.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9572.f91bbaa33e932d524f8f.js deleted file mode 100644 index fbfbb00be96b77ff6a6ab1fd8a64b87ab4cba064..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9572.f91bbaa33e932d524f8f.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9572],{19756:function(t){!function(e,n){true?t.exports=n():0}(this,(function(){"use strict";return function(t,e){var n=e.prototype,i=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return i.bind(this)(t);var r=this.$utils(),s=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":return e.weekYear();case"GGGG":return e.isoWeekYear();case"wo":return n.ordinal(e.week(),"W");case"w":case"ww":return r.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return r.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return r.s(String(0===e.$H?24:e.$H),"k"===t?1:2,"0");case"X":return Math.floor(e.$d.getTime()/1e3);case"x":return e.$d.getTime();case"z":return"["+e.offsetName()+"]";case"zzz":return"["+e.offsetName("long")+"]";default:return t}}));return i.bind(this)(s)}}}))},90445:function(t){!function(e,n){true?t.exports=n():0}(this,(function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d/,i=/\d\d/,r=/\d\d?/,s=/\d*[^-_:/,()\s\d]+/,a={},o=function(t){return(t=+t)+(t>68?1900:2e3)};var c=function(t){return function(e){this[t]=+e}},l=[/[+-]\d\d:?(\d\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t)return 0;if("Z"===t)return 0;var e=t.match(/([+-]|\d\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:"+"===e[0]?-n:n}(t)}],u=function(t){var e=a[t];return e&&(e.indexOf?e:e.s.concat(e.f))},d=function(t,e){var n,i=a.meridiem;if(i){for(var r=1;r<=24;r+=1)if(t.indexOf(i(r,0,e))>-1){n=r>12;break}}else n=t===(e?"pm":"PM");return n},f={A:[s,function(t){this.afternoon=d(t,!1)}],a:[s,function(t){this.afternoon=d(t,!0)}],Q:[n,function(t){this.month=3*(t-1)+1}],S:[n,function(t){this.milliseconds=100*+t}],SS:[i,function(t){this.milliseconds=10*+t}],SSS:[/\d{3}/,function(t){this.milliseconds=+t}],s:[r,c("seconds")],ss:[r,c("seconds")],m:[r,c("minutes")],mm:[r,c("minutes")],H:[r,c("hours")],h:[r,c("hours")],HH:[r,c("hours")],hh:[r,c("hours")],D:[r,c("day")],DD:[i,c("day")],Do:[s,function(t){var e=a.ordinal,n=t.match(/\d+/);if(this.day=n[0],e)for(var i=1;i<=31;i+=1)e(i).replace(/\[|\]/g,"")===t&&(this.day=i)}],w:[r,c("week")],ww:[i,c("week")],M:[r,c("month")],MM:[i,c("month")],MMM:[s,function(t){var e=u("months"),n=(u("monthsShort")||e.map((function(t){return t.slice(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[s,function(t){var e=u("months").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\d+/,c("year")],YY:[i,function(t){this.year=o(t)}],YYYY:[/\d{4}/,c("year")],Z:l,ZZ:l};function h(n){var i,r;i=n,r=a&&a.formats;for(var s=(n=i.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,i){var s=i&&i.toUpperCase();return n||r[i]||t[i]||r[s].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),o=s.length,c=0;c-1)return new Date(("X"===e?1e3:1)*t);var r=h(e)(t),s=r.year,a=r.month,o=r.day,c=r.hours,l=r.minutes,u=r.seconds,d=r.milliseconds,f=r.zone,k=r.week,y=new Date,m=o||(s||a?1:y.getDate()),p=s||y.getFullYear(),g=0;s&&!a||(g=a>0?a-1:y.getMonth());var v,b=c||0,T=l||0,x=u||0,w=d||0;return f?new Date(Date.UTC(p,g,m,b,T,x,w+60*f.offset*1e3)):n?new Date(Date.UTC(p,g,m,b,T,x,w)):(v=new Date(p,g,m,b,T,x,w),k&&(v=i(v).week(k).toDate()),v)}catch(t){return new Date("")}}(e,o,i,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&e!=this.format(o)&&(this.$d=new Date("")),a={}}else if(o instanceof Array)for(var f=o.length,k=1;k<=f;k+=1){s[1]=o[k-1];var y=n.apply(this,s);if(y.isValid()){this.$d=y.$d,this.$L=y.$L,this.init();break}k===f&&(this.$d=new Date(""))}else r.call(this,t)}}}))},90694:function(t){!function(e,n){true?t.exports=n():0}(this,(function(){"use strict";var t="day";return function(e,n,i){var r=function(e){return e.add(4-e.isoWeekday(),t)},s=n.prototype;s.isoWeekYear=function(){return r(this).year()},s.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,s,a,o,c=r(this),l=(n=this.isoWeekYear(),s=this.$u,a=(s?i.utc:i)().year(n).startOf("year"),o=4-a.isoWeekday(),a.isoWeekday()>4&&(o+=7),a.add(o,t));return c.diff(l,"week")+1},s.isoWeekday=function(t){return this.$utils().u(t)?this.day()||7:this.day(this.day()%7?t:t-7)};var a=s.startOf;s.startOf=function(t,e){var n=this.$utils(),i=!!n.u(e)||e;return"isoweek"===n.p(t)?i?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):a.bind(this)(t,e)}}}))},87191:(t,e,n)=>{"use strict";n.d(e,{diagram:()=>Nt});var i=n(96049);var r=n(75905);var s=n(16750);var a=n(74353);var o=n.n(a);var c=n(90694);var l=n.n(c);var u=n(90445);var d=n.n(u);var f=n(19756);var h=n.n(f);var k=n(24982);var y=function(){var t=(0,r.K2)((function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n}),"o"),e=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],n=[1,26],i=[1,27],s=[1,28],a=[1,29],o=[1,30],c=[1,31],l=[1,32],u=[1,33],d=[1,34],f=[1,9],h=[1,10],k=[1,11],y=[1,12],m=[1,13],p=[1,14],g=[1,15],v=[1,16],b=[1,19],T=[1,20],x=[1,21],w=[1,22],_=[1,23],D=[1,25],$=[1,35];var C={trace:(0,r.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:(0,r.K2)((function t(e,n,i,r,s,a,o){var c=a.length-1;switch(s){case 1:return a[c-1];break;case 2:this.$=[];break;case 3:a[c-1].push(a[c]);this.$=a[c-1];break;case 4:case 5:this.$=a[c];break;case 6:case 7:this.$=[];break;case 8:r.setWeekday("monday");break;case 9:r.setWeekday("tuesday");break;case 10:r.setWeekday("wednesday");break;case 11:r.setWeekday("thursday");break;case 12:r.setWeekday("friday");break;case 13:r.setWeekday("saturday");break;case 14:r.setWeekday("sunday");break;case 15:r.setWeekend("friday");break;case 16:r.setWeekend("saturday");break;case 17:r.setDateFormat(a[c].substr(11));this.$=a[c].substr(11);break;case 18:r.enableInclusiveEndDates();this.$=a[c].substr(18);break;case 19:r.TopAxis();this.$=a[c].substr(8);break;case 20:r.setAxisFormat(a[c].substr(11));this.$=a[c].substr(11);break;case 21:r.setTickInterval(a[c].substr(13));this.$=a[c].substr(13);break;case 22:r.setExcludes(a[c].substr(9));this.$=a[c].substr(9);break;case 23:r.setIncludes(a[c].substr(9));this.$=a[c].substr(9);break;case 24:r.setTodayMarker(a[c].substr(12));this.$=a[c].substr(12);break;case 27:r.setDiagramTitle(a[c].substr(6));this.$=a[c].substr(6);break;case 28:this.$=a[c].trim();r.setAccTitle(this.$);break;case 29:case 30:this.$=a[c].trim();r.setAccDescription(this.$);break;case 31:r.addSection(a[c].substr(8));this.$=a[c].substr(8);break;case 33:r.addTask(a[c-1],a[c]);this.$="task";break;case 34:this.$=a[c-1];r.setClickEvent(a[c-1],a[c],null);break;case 35:this.$=a[c-2];r.setClickEvent(a[c-2],a[c-1],a[c]);break;case 36:this.$=a[c-2];r.setClickEvent(a[c-2],a[c-1],null);r.setLink(a[c-2],a[c]);break;case 37:this.$=a[c-3];r.setClickEvent(a[c-3],a[c-2],a[c-1]);r.setLink(a[c-3],a[c]);break;case 38:this.$=a[c-2];r.setClickEvent(a[c-2],a[c],null);r.setLink(a[c-2],a[c-1]);break;case 39:this.$=a[c-3];r.setClickEvent(a[c-3],a[c-1],a[c]);r.setLink(a[c-3],a[c-2]);break;case 40:this.$=a[c-1];r.setLink(a[c-1],a[c]);break;case 41:case 47:this.$=a[c-1]+" "+a[c];break;case 42:case 43:case 45:this.$=a[c-2]+" "+a[c-1]+" "+a[c];break;case 44:case 46:this.$=a[c-3]+" "+a[c-2]+" "+a[c-1]+" "+a[c];break}}),"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:i,14:s,15:a,16:o,17:c,18:l,19:18,20:u,21:d,22:f,23:h,24:k,25:y,26:m,27:p,28:g,29:v,30:b,31:T,33:x,35:w,36:_,37:24,38:D,40:$},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:n,13:i,14:s,15:a,16:o,17:c,18:l,19:18,20:u,21:d,22:f,23:h,24:k,25:y,26:m,27:p,28:g,29:v,30:b,31:T,33:x,35:w,36:_,37:24,38:D,40:$},t(e,[2,5]),t(e,[2,6]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:(0,r.K2)((function t(e,n){if(n.recoverable){this.trace(e)}else{var i=new Error(e);i.hash=n;throw i}}),"parseError"),parse:(0,r.K2)((function t(e){var n=this,i=[0],s=[],a=[null],o=[],c=this.table,l="",u=0,d=0,f=0,h=2,k=1;var y=o.slice.call(arguments,1);var m=Object.create(this.lexer);var p={yy:{}};for(var g in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,g)){p.yy[g]=this.yy[g]}}m.setInput(e,p.yy);p.yy.lexer=m;p.yy.parser=this;if(typeof m.yylloc=="undefined"){m.yylloc={}}var v=m.yylloc;o.push(v);var b=m.options&&m.options.ranges;if(typeof p.yy.parseError==="function"){this.parseError=p.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function T(t){i.length=i.length-2*t;a.length=a.length-t;o.length=o.length-t}(0,r.K2)(T,"popStack");function x(){var t;t=s.pop()||m.lex()||k;if(typeof t!=="number"){if(t instanceof Array){s=t;t=s.pop()}t=n.symbols_[t]||t}return t}(0,r.K2)(x,"lex");var w,_,D,$,C,S,K={},E,M,A,L;while(true){D=i[i.length-1];if(this.defaultActions[D]){$=this.defaultActions[D]}else{if(w===null||typeof w=="undefined"){w=x()}$=c[D]&&c[D][w]}if(typeof $==="undefined"||!$.length||!$[0]){var Y="";L=[];for(E in c[D]){if(this.terminals_[E]&&E>h){L.push("'"+this.terminals_[E]+"'")}}if(m.showPosition){Y="Parse error on line "+(u+1)+":\n"+m.showPosition()+"\nExpecting "+L.join(", ")+", got '"+(this.terminals_[w]||w)+"'"}else{Y="Parse error on line "+(u+1)+": Unexpected "+(w==k?"end of input":"'"+(this.terminals_[w]||w)+"'")}this.parseError(Y,{text:m.match,token:this.terminals_[w]||w,line:m.yylineno,loc:v,expected:L})}if($[0]instanceof Array&&$.length>1){throw new Error("Parse Error: multiple actions possible at state: "+D+", token: "+w)}switch($[0]){case 1:i.push(w);a.push(m.yytext);o.push(m.yylloc);i.push($[1]);w=null;if(!_){d=m.yyleng;l=m.yytext;u=m.yylineno;v=m.yylloc;if(f>0){f--}}else{w=_;_=null}break;case 2:M=this.productions_[$[1]][1];K.$=a[a.length-M];K._$={first_line:o[o.length-(M||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(M||1)].first_column,last_column:o[o.length-1].last_column};if(b){K._$.range=[o[o.length-(M||1)].range[0],o[o.length-1].range[1]]}S=this.performAction.apply(K,[l,d,u,p.yy,$[1],a,o].concat(y));if(typeof S!=="undefined"){return S}if(M){i=i.slice(0,-1*M*2);a=a.slice(0,-1*M);o=o.slice(0,-1*M)}i.push(this.productions_[$[1]][0]);a.push(K.$);o.push(K._$);A=c[i[i.length-2]][i[i.length-1]];i.push(A);break;case 3:return true}}return true}),"parse")};var S=function(){var t={EOF:1,parseError:(0,r.K2)((function t(e,n){if(this.yy.parser){this.yy.parser.parseError(e,n)}else{throw new Error(e)}}),"parseError"),setInput:(0,r.K2)((function(t,e){this.yy=e||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,r.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);if(e){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,r.K2)((function(t){var e=t.length;var n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-e);this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(n.length-1){this.yylineno-=n.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-e]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,r.K2)((function(){this._more=true;return this}),"more"),reject:(0,r.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,r.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,r.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,r.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,r.K2)((function(){var t=this.pastInput();var e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"}),"showPosition"),test_match:(0,r.K2)((function(t,e){var n,i,r;if(this.options.backtrack_lexer){r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){r.yylloc.range=this.yylloc.range.slice(0)}}i=t[0].match(/(?:\r\n?|\n).*/g);if(i){this.yylineno+=i.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(n){return n}else if(this._backtrack){for(var s in r){this[s]=r[s]}return false}return false}),"test_match"),next:(0,r.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,e,n,i;if(!this._more){this.yytext="";this.match=""}var r=this._currentRules();for(var s=0;se[0].length)){e=n;i=s;if(this.options.backtrack_lexer){t=this.test_match(n,r[s]);if(t!==false){return t}else if(this._backtrack){e=false;continue}else{return false}}else if(!this.options.flex){break}}}if(e){t=this.test_match(e,r[i]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,r.K2)((function t(){var e=this.next();if(e){return e}else{return this.lex()}}),"lex"),begin:(0,r.K2)((function t(e){this.conditionStack.push(e)}),"begin"),popState:(0,r.K2)((function t(){var e=this.conditionStack.length-1;if(e>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,r.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,r.K2)((function t(e){e=this.conditionStack.length-1-Math.abs(e||0);if(e>=0){return this.conditionStack[e]}else{return"INITIAL"}}),"topState"),pushState:(0,r.K2)((function t(e){this.begin(e)}),"pushState"),stateStackSize:(0,r.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,r.K2)((function t(e,n,i,r){var s=r;switch(i){case 0:this.begin("open_directive");return"open_directive";break;case 1:this.begin("acc_title");return 31;break;case 2:this.popState();return"acc_title_value";break;case 3:this.begin("acc_descr");return 33;break;case 4:this.popState();return"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";break;case 8:break;case 9:break;case 10:break;case 11:return 10;break;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 43;break;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState();this.begin("callbackargs");break;case 20:return 41;break;case 21:this.popState();break;case 22:return 42;break;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 40;break;case 26:return 4;break;case 27:return 22;break;case 28:return 23;break;case 29:return 24;break;case 30:return 25;break;case 31:return 26;break;case 32:return 28;break;case 33:return 27;break;case 34:return 29;break;case 35:return 12;break;case 36:return 13;break;case 37:return 14;break;case 38:return 15;break;case 39:return 16;break;case 40:return 17;break;case 41:return 18;break;case 42:return 20;break;case 43:return 21;break;case 44:return"date";break;case 45:return 30;break;case 46:return"accDescription";break;case 47:return 36;break;case 48:return 38;break;case 49:return 39;break;case 50:return":";break;case 51:return 6;break;case 52:return"INVALID";break}}),"anonymous"),rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:false},acc_descr:{rules:[4],inclusive:false},acc_title:{rules:[2],inclusive:false},callbackargs:{rules:[21,22],inclusive:false},callbackname:{rules:[18,19,20],inclusive:false},href:{rules:[15,16],inclusive:false},click:{rules:[24,25],inclusive:false},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:true}}};return t}();C.lexer=S;function K(){this.yy={}}(0,r.K2)(K,"Parser");K.prototype=C;C.Parser=K;return new K}();y.parser=y;var m=y;o().extend(l());o().extend(d());o().extend(h());var p={friday:5,saturday:6};var g="";var v="";var b=void 0;var T="";var x=[];var w=[];var _=new Map;var D=[];var $=[];var C="";var S="";var K=["active","done","crit","milestone"];var E=[];var M=false;var A=false;var L="sunday";var Y="saturday";var I=0;var F=(0,r.K2)((function(){D=[];$=[];C="";E=[];kt=0;gt=void 0;vt=void 0;bt=[];g="";v="";S="";b=void 0;T="";x=[];w=[];M=false;A=false;I=0;_=new Map;(0,r.IU)();L="sunday";Y="saturday"}),"clear");var W=(0,r.K2)((function(t){v=t}),"setAxisFormat");var O=(0,r.K2)((function(){return v}),"getAxisFormat");var P=(0,r.K2)((function(t){b=t}),"setTickInterval");var B=(0,r.K2)((function(){return b}),"getTickInterval");var z=(0,r.K2)((function(t){T=t}),"setTodayMarker");var N=(0,r.K2)((function(){return T}),"getTodayMarker");var G=(0,r.K2)((function(t){g=t}),"setDateFormat");var H=(0,r.K2)((function(){M=true}),"enableInclusiveEndDates");var j=(0,r.K2)((function(){return M}),"endDatesAreInclusive");var R=(0,r.K2)((function(){A=true}),"enableTopAxis");var U=(0,r.K2)((function(){return A}),"topAxisEnabled");var V=(0,r.K2)((function(t){S=t}),"setDisplayMode");var Z=(0,r.K2)((function(){return S}),"getDisplayMode");var X=(0,r.K2)((function(){return g}),"getDateFormat");var q=(0,r.K2)((function(t){x=t.toLowerCase().split(/[\s,]+/)}),"setIncludes");var Q=(0,r.K2)((function(){return x}),"getIncludes");var J=(0,r.K2)((function(t){w=t.toLowerCase().split(/[\s,]+/)}),"setExcludes");var tt=(0,r.K2)((function(){return w}),"getExcludes");var et=(0,r.K2)((function(){return _}),"getLinks");var nt=(0,r.K2)((function(t){C=t;D.push(t)}),"addSection");var it=(0,r.K2)((function(){return D}),"getSections");var rt=(0,r.K2)((function(){let t=Dt();const e=10;let n=0;while(!t&&n[\d\w- ]+)/;const s=i.exec(n);if(s!==null){let t=null;for(const n of s.groups.ids.split(" ")){let e=wt(n);if(e!==void 0&&(!t||e.endTime>t.endTime)){t=e}}if(t){return t.endTime}const e=new Date;e.setHours(0,0,0,0);return e}let a=o()(n,e.trim(),true);if(a.isValid()){return a.toDate()}else{r.Rm.debug("Invalid date:"+n);r.Rm.debug("With date format:"+e.trim());const t=new Date(n);if(t===void 0||isNaN(t.getTime())||t.getFullYear()<-1e4||t.getFullYear()>1e4){throw new Error("Invalid date:"+n)}return t}}),"getStartDate");var ft=(0,r.K2)((function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());if(e!==null){return[Number.parseFloat(e[1]),e[2]]}return[NaN,"ms"]}),"parseDuration");var ht=(0,r.K2)((function(t,e,n,i=false){n=n.trim();const r=/^until\s+(?[\d\w- ]+)/;const s=r.exec(n);if(s!==null){let t=null;for(const n of s.groups.ids.split(" ")){let e=wt(n);if(e!==void 0&&(!t||e.startTime{window.open(n,"_self")}));_.set(t,n)}}));Ct(t,"clickable")}),"setLink");var Ct=(0,r.K2)((function(t,e){t.split(",").forEach((function(t){let n=wt(t);if(n!==void 0){n.classes.push(e)}}))}),"setClass");var St=(0,r.K2)((function(t,e,n){if((0,r.D7)().securityLevel!=="loose"){return}if(e===void 0){return}let s=[];if(typeof n==="string"){s=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t{i._K.runFunc(e,...s)}))}}),"setClickFun");var Kt=(0,r.K2)((function(t,e){E.push((function(){const n=document.querySelector(`[id="${t}"]`);if(n!==null){n.addEventListener("click",(function(){e()}))}}),(function(){const n=document.querySelector(`[id="${t}-text"]`);if(n!==null){n.addEventListener("click",(function(){e()}))}}))}),"pushFun");var Et=(0,r.K2)((function(t,e,n){t.split(",").forEach((function(t){St(t,e,n)}));Ct(t,"clickable")}),"setClickEvent");var Mt=(0,r.K2)((function(t){E.forEach((function(e){e(t)}))}),"bindFunctions");var At={getConfig:(0,r.K2)((()=>(0,r.D7)().gantt),"getConfig"),clear:F,setDateFormat:G,getDateFormat:X,enableInclusiveEndDates:H,endDatesAreInclusive:j,enableTopAxis:R,topAxisEnabled:U,setAxisFormat:W,getAxisFormat:O,setTickInterval:P,getTickInterval:B,setTodayMarker:z,getTodayMarker:N,setAccTitle:r.SV,getAccTitle:r.iN,setDiagramTitle:r.ke,getDiagramTitle:r.ab,setDisplayMode:V,getDisplayMode:Z,setAccDescription:r.EI,getAccDescription:r.m7,addSection:nt,getSections:it,getTasks:rt,addTask:xt,findTaskById:wt,addTaskOrg:_t,setIncludes:q,getIncludes:Q,setExcludes:J,getExcludes:tt,setClickEvent:Et,setLink:$t,getLinks:et,bindFunctions:Mt,parseDuration:ft,isInvalidDate:st,setWeekday:at,getWeekday:ot,setWeekend:ct};function Lt(t,e,n){let i=true;while(i){i=false;n.forEach((function(n){const r="^\\s*"+n+"\\s*$";const s=new RegExp(r);if(t[0].match(s)){e[n]=true;t.shift(1);i=true}}))}}(0,r.K2)(Lt,"getTaskTags");var Yt=(0,r.K2)((function(){r.Rm.debug("Something is calling, setConf, remove the call")}),"setConf");var It={monday:k.ABi,tuesday:k.PGu,wednesday:k.GuW,thursday:k.Mol,friday:k.TUC,saturday:k.rGn,sunday:k.YPH};var Ft=(0,r.K2)(((t,e)=>{let n=[...t].map((()=>-Infinity));let i=[...t].sort(((t,e)=>t.startTime-e.startTime||t.order-e.order));let r=0;for(const s of i){for(let t=0;t=n[t]){n[t]=s.endTime;s.order=t+e;if(t>r){r=t}break}}}return r}),"getMaxIntersections");var Wt;var Ot=(0,r.K2)((function(t,e,n,i){const s=(0,r.D7)().gantt;const a=(0,r.D7)().securityLevel;let c;if(a==="sandbox"){c=(0,k.Ltv)("#i"+e)}const l=a==="sandbox"?(0,k.Ltv)(c.nodes()[0].contentDocument.body):(0,k.Ltv)("body");const u=a==="sandbox"?c.nodes()[0].contentDocument:document;const d=u.getElementById(e);Wt=d.parentElement.offsetWidth;if(Wt===void 0){Wt=1200}if(s.useWidth!==void 0){Wt=s.useWidth}const f=i.db.getTasks();let h=[];for(const r of f){h.push(r.type)}h=$(h);const y={};let m=2*s.topPadding;if(i.db.getDisplayMode()==="compact"||s.displayMode==="compact"){const t={};for(const n of f){if(t[n.section]===void 0){t[n.section]=[n]}else{t[n.section].push(n)}}let e=0;for(const n of Object.keys(t)){const i=Ft(t[n],e)+1;e+=i;m+=i*(s.barHeight+s.barGap);y[n]=i}}else{m+=f.length*(s.barHeight+s.barGap);for(const t of h){y[t]=f.filter((e=>e.type===t)).length}}d.setAttribute("viewBox","0 0 "+Wt+" "+m);const p=l.select(`[id="${e}"]`);const g=(0,k.w7C)().domain([(0,k.jkA)(f,(function(t){return t.startTime})),(0,k.T9B)(f,(function(t){return t.endTime}))]).rangeRound([0,Wt-s.leftPadding-s.rightPadding]);function v(t,e){const n=t.startTime;const i=e.startTime;let r=0;if(n>i){r=1}else if(nt.order)))];const f=d.map((e=>t.find((t=>t.order===e))));p.append("g").selectAll("rect").data(f).enter().append("rect").attr("x",0).attr("y",(function(t,e){e=t.order;return e*n+a-2})).attr("width",(function(){return u-s.rightPadding/2})).attr("height",n).attr("class",(function(t){for(const[e,n]of h.entries()){if(t.type===n){return"section section"+e%s.numberSectionStyles}}return"section section0"}));const y=p.append("g").selectAll("rect").data(t).enter();const m=i.db.getLinks();y.append("rect").attr("id",(function(t){return t.id})).attr("rx",3).attr("ry",3).attr("x",(function(t){if(t.milestone){return g(t.startTime)+o+.5*(g(t.endTime)-g(t.startTime))-.5*c}return g(t.startTime)+o})).attr("y",(function(t,e){e=t.order;return e*n+a})).attr("width",(function(t){if(t.milestone){return c}return g(t.renderEndTime||t.endTime)-g(t.startTime)})).attr("height",c).attr("transform-origin",(function(t,e){e=t.order;return(g(t.startTime)+o+.5*(g(t.endTime)-g(t.startTime))).toString()+"px "+(e*n+a+.5*c).toString()+"px"})).attr("class",(function(t){const e="task";let n="";if(t.classes.length>0){n=t.classes.join(" ")}let i=0;for(const[a,o]of h.entries()){if(t.type===o){i=a%s.numberSectionStyles}}let r="";if(t.active){if(t.crit){r+=" activeCrit"}else{r=" active"}}else if(t.done){if(t.crit){r=" doneCrit"}else{r=" done"}}else{if(t.crit){r+=" crit"}}if(r.length===0){r=" task"}if(t.milestone){r=" milestone "+r}r+=i;r+=" "+n;return e+r}));y.append("text").attr("id",(function(t){return t.id+"-text"})).text((function(t){return t.task})).attr("font-size",s.fontSize).attr("x",(function(t){let e=g(t.startTime);let n=g(t.renderEndTime||t.endTime);if(t.milestone){e+=.5*(g(t.endTime)-g(t.startTime))-.5*c}if(t.milestone){n=e+c}const i=this.getBBox().width;if(i>n-e){if(n+i+1.5*s.leftPadding>u){return e+o-5}else{return n+o+5}}else{return(n-e)/2+e+o}})).attr("y",(function(t,e){e=t.order;return e*n+s.barHeight/2+(s.fontSize/2-2)+a})).attr("text-height",c).attr("class",(function(t){const e=g(t.startTime);let n=g(t.endTime);if(t.milestone){n=e+c}const i=this.getBBox().width;let r="";if(t.classes.length>0){r=t.classes.join(" ")}let a=0;for(const[c,l]of h.entries()){if(t.type===l){a=c%s.numberSectionStyles}}let o="";if(t.active){if(t.crit){o="activeCritText"+a}else{o="activeText"+a}}if(t.done){if(t.crit){o=o+" doneCritText"+a}else{o=o+" doneText"+a}}else{if(t.crit){o=o+" critText"+a}}if(t.milestone){o+=" milestoneText"}if(i>n-e){if(n+i+1.5*s.leftPadding>u){return r+" taskTextOutsideLeft taskTextOutside"+a+" "+o}else{return r+" taskTextOutsideRight taskTextOutside"+a+" "+o+" width-"+i}}else{return r+" taskText taskText"+a+" "+o+" width-"+i}}));const v=(0,r.D7)().securityLevel;if(v==="sandbox"){let t;t=(0,k.Ltv)("#i"+e);const n=t.nodes()[0].contentDocument;y.filter((function(t){return m.has(t.id)})).each((function(t){var e=n.querySelector("#"+t.id);var i=n.querySelector("#"+t.id+"-text");const r=e.parentNode;var s=n.createElement("a");s.setAttribute("xlink:href",m.get(t.id));s.setAttribute("target","_top");r.appendChild(s);s.appendChild(e);s.appendChild(i)}))}}(0,r.K2)(T,"drawRects");function x(t,e,n,a,c,l,u,d){if(u.length===0&&d.length===0){return}let f;let h;for(const{startTime:i,endTime:r}of l){if(f===void 0||ih){h=r}}if(!f||!h){return}if(o()(h).diff(o()(f),"year")>5){r.Rm.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const k=i.db.getDateFormat();const y=[];let m=null;let v=o()(f);while(v.valueOf()<=h){if(i.db.isInvalidDate(v,k,u,d)){if(!m){m={start:v,end:v}}else{m.end=v}}else{if(m){y.push(m);m=null}}v=v.add(1,"d")}const b=p.append("g").selectAll("rect").data(y).enter();b.append("rect").attr("id",(function(t){return"exclude-"+t.start.format("YYYY-MM-DD")})).attr("x",(function(t){return g(t.start)+n})).attr("y",s.gridLineStartPadding).attr("width",(function(t){const e=t.end.add(1,"day");return g(e)-g(t.start)})).attr("height",c-e-s.gridLineStartPadding).attr("transform-origin",(function(e,i){return(g(e.start)+n+.5*(g(e.end)-g(e.start))).toString()+"px "+(i*t+.5*c).toString()+"px"})).attr("class","exclude-range")}(0,r.K2)(x,"drawExcludeDays");function w(t,e,n,r){let a=(0,k.l78)(g).tickSize(-r+e+s.gridLineStartPadding).tickFormat((0,k.DCK)(i.db.getAxisFormat()||s.axisFormat||"%Y-%m-%d"));const o=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/;const c=o.exec(i.db.getTickInterval()||s.tickInterval);if(c!==null){const t=c[1];const e=c[2];const n=i.db.getWeekday()||s.weekday;switch(e){case"millisecond":a.ticks(k.t6C.every(t));break;case"second":a.ticks(k.ucG.every(t));break;case"minute":a.ticks(k.wXd.every(t));break;case"hour":a.ticks(k.Agd.every(t));break;case"day":a.ticks(k.UAC.every(t));break;case"week":a.ticks(It[n].every(t));break;case"month":a.ticks(k.Ui6.every(t));break}}p.append("g").attr("class","grid").attr("transform","translate("+t+", "+(r-50)+")").call(a).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em");if(i.db.topAxisEnabled()||s.topAxis){let n=(0,k.tlR)(g).tickSize(-r+e+s.gridLineStartPadding).tickFormat((0,k.DCK)(i.db.getAxisFormat()||s.axisFormat||"%Y-%m-%d"));if(c!==null){const t=c[1];const e=c[2];const r=i.db.getWeekday()||s.weekday;switch(e){case"millisecond":n.ticks(k.t6C.every(t));break;case"second":n.ticks(k.ucG.every(t));break;case"minute":n.ticks(k.wXd.every(t));break;case"hour":n.ticks(k.Agd.every(t));break;case"day":n.ticks(k.UAC.every(t));break;case"week":n.ticks(It[r].every(t));break;case"month":n.ticks(k.Ui6.every(t));break}}p.append("g").attr("class","grid").attr("transform","translate("+t+", "+e+")").call(n).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}(0,r.K2)(w,"makeGrid");function _(t,e){let n=0;const i=Object.keys(y).map((t=>[t,y[t]]));p.append("g").selectAll("text").data(i).enter().append((function(t){const e=t[0].split(r.Y2.lineBreakRegex);const n=-(e.length-1)/2;const i=u.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("dy",n+"em");for(const[r,s]of e.entries()){const t=u.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttribute("alignment-baseline","central");t.setAttribute("x","10");if(r>0){t.setAttribute("dy","1em")}t.textContent=s;i.appendChild(t)}return i})).attr("x",10).attr("y",(function(r,s){if(s>0){for(let a=0;a`\n .mermaid-main-font {\n font-family: ${t.fontFamily};\n }\n\n .exclude-range {\n fill: ${t.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${t.sectionBkgColor};\n }\n\n .section2 {\n fill: ${t.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${t.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n font-family: ${t.fontFamily};\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${t.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n }\n\n .grid .tick text {\n font-family: ${t.fontFamily};\n fill: ${t.textColor};\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${t.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: ${t.fontFamily};\n }\n\n .taskTextOutsideRight {\n fill: ${t.taskTextDarkColor};\n text-anchor: start;\n font-family: ${t.fontFamily};\n }\n\n .taskTextOutsideLeft {\n fill: ${t.taskTextDarkColor};\n text-anchor: end;\n }\n\n\n /* Special case clickable */\n\n .task.clickable {\n cursor: pointer;\n }\n\n .taskText.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${t.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${t.taskBkgColor};\n stroke: ${t.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${t.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${t.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${t.activeTaskBkgColor};\n stroke: ${t.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${t.doneTaskBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.titleColor||t.textColor};\n font-family: ${t.fontFamily};\n }\n`),"getStyles");var zt=Bt;var Nt={parser:m,db:At,renderer:Pt,styles:zt}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/961.29c067b15a524e556eed.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/961.29c067b15a524e556eed.js deleted file mode 100644 index e439443e48faf8267c50f165274bdde3555d668d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/961.29c067b15a524e556eed.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 961.29c067b15a524e556eed.js.LICENSE.txt */ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[961],{22551:(e,n,t)=>{var r=t(44914),l=t(69982);function a(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;tn}return!1}function y(e,n,t,r,l,a,u){this.acceptsBooleans=2===n||3===n||4===n;this.attributeName=r;this.attributeNamespace=l;this.mustUseProperty=t;this.propertyName=e;this.type=n;this.sanitizeURL=a;this.removeEmptyString=u}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new y(e,0,!1,e,null,!1,!1)}));[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var n=e[0];b[n]=new y(n,1,!1,e[1],null,!1,!1)}));["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new y(e,2,!1,e.toLowerCase(),null,!1,!1)}));["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new y(e,2,!1,e,null,!1,!1)}));"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new y(e,3,!1,e.toLowerCase(),null,!1,!1)}));["checked","multiple","muted","selected"].forEach((function(e){b[e]=new y(e,3,!0,e,null,!1,!1)}));["capture","download"].forEach((function(e){b[e]=new y(e,4,!1,e,null,!1,!1)}));["cols","rows","size","span"].forEach((function(e){b[e]=new y(e,6,!1,e,null,!1,!1)}));["rowSpan","start"].forEach((function(e){b[e]=new y(e,5,!1,e.toLowerCase(),null,!1,!1)}));var k=/[\-:]([a-z])/g;function w(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var n=e.replace(k,w);b[n]=new y(n,1,!1,e,null,!1,!1)}));"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var n=e.replace(k,w);b[n]=new y(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}));["xml:base","xml:lang","xml:space"].forEach((function(e){var n=e.replace(k,w);b[n]=new y(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}));["tabIndex","crossOrigin"].forEach((function(e){b[e]=new y(e,1,!1,e.toLowerCase(),null,!1,!1)}));b.xlinkHref=new y("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach((function(e){b[e]=new y(e,1,!1,e.toLowerCase(),null,!0,!0)}));function S(e,n,t,r){var l=b.hasOwnProperty(n)?b[n]:null;if(null!==l?0!==l.type:r||!(2i||l[u]!==a[i]){var o="\n"+l[u].replace(" at new "," at ");e.displayName&&o.includes("")&&(o=o.replace("",e.displayName));return o}}while(1<=u&&0<=i)}break}}}finally{H=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?B(e):""}function Q(e){switch(e.tag){case 5:return B(e.type);case 16:return B("Lazy");case 13:return B("Suspense");case 19:return B("SuspenseList");case 0:case 2:case 15:return e=W(e.type,!1),e;case 11:return e=W(e.type.render,!1),e;case 1:return e=W(e.type,!0),e;default:return""}}function j(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case _:return"Fragment";case C:return"Portal";case z:return"Profiler";case N:return"StrictMode";case M:return"Suspense";case F:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case P:return(e._context.displayName||"Context")+".Provider";case L:var n=e.render;e=e.displayName;e||(e=n.displayName||n.name||"",e=""!==e?"ForwardRef("+e+")":"ForwardRef");return e;case D:return n=e.displayName||null,null!==n?n:j(e.type)||"Memo";case R:n=e._payload;e=e._init;try{return j(e(n))}catch(t){}}return null}function $(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return j(n);case 8:return n===N?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof n)return n.displayName||n.name||null;if("string"===typeof n)return n}return null}function K(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function q(e){var n=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===n||"radio"===n)}function Y(e){var n=q(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&"undefined"!==typeof t&&"function"===typeof t.get&&"function"===typeof t.set){var l=t.get,a=t.set;Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(e){r=""+e;a.call(this,e)}});Object.defineProperty(e,n,{enumerable:t.enumerable});return{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null;delete e[n]}}}}function X(e){e._valueTracker||(e._valueTracker=Y(e))}function G(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue();var r="";e&&(r=q(e)?e.checked?"true":"false":e.value);e=r;return e!==t?(n.setValue(e),!0):!1}function Z(e){e=e||("undefined"!==typeof document?document:void 0);if("undefined"===typeof e)return null;try{return e.activeElement||e.body}catch(n){return e.body}}function J(e,n){var t=n.checked;return V({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=t?t:e._wrapperState.initialChecked})}function ee(e,n){var t=null==n.defaultValue?"":n.defaultValue,r=null!=n.checked?n.checked:n.defaultChecked;t=K(null!=n.value?n.value:t);e._wrapperState={initialChecked:r,initialValue:t,controlled:"checkbox"===n.type||"radio"===n.type?null!=n.checked:null!=n.value}}function ne(e,n){n=n.checked;null!=n&&S(e,"checked",n,!1)}function te(e,n){ne(e,n);var t=K(n.value),r=n.type;if(null!=t)if("number"===r){if(0===t&&""===e.value||e.value!=t)e.value=""+t}else e.value!==""+t&&(e.value=""+t);else if("submit"===r||"reset"===r){e.removeAttribute("value");return}n.hasOwnProperty("value")?le(e,n.type,t):n.hasOwnProperty("defaultValue")&&le(e,n.type,K(n.defaultValue));null==n.checked&&null!=n.defaultChecked&&(e.defaultChecked=!!n.defaultChecked)}function re(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!("submit"!==r&&"reset"!==r||void 0!==n.value&&null!==n.value))return;n=""+e._wrapperState.initialValue;t||n===e.value||(e.value=n);e.defaultValue=n}t=e.name;""!==t&&(e.name="");e.defaultChecked=!!e._wrapperState.initialChecked;""!==t&&(e.name=t)}function le(e,n,t){if("number"!==n||Z(e.ownerDocument)!==e)null==t?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t)}var ae=Array.isArray;function ue(e,n,t,r){e=e.options;if(n){n={};for(var l=0;l"+n.valueOf().toString()+"";for(n=pe.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}}));function he(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&3===t.nodeType){t.nodeValue=n;return}}e.textContent=n}var ge={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ve=["Webkit","ms","Moz","O"];Object.keys(ge).forEach((function(e){ve.forEach((function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1);ge[n]=ge[e]}))}));function ye(e,n,t){return null==n||"boolean"===typeof n||""===n?"":t||"number"!==typeof n||0===n||ge.hasOwnProperty(e)&&ge[e]?(""+n).trim():n+"px"}function be(e,n){e=e.style;for(var t in n)if(n.hasOwnProperty(t)){var r=0===t.indexOf("--"),l=ye(t,n[t],r);"float"===t&&(t="cssFloat");r?e.setProperty(t,l):e[t]=l}}var ke=V({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function we(e,n){if(n){if(ke[e]&&(null!=n.children||null!=n.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=n.dangerouslySetInnerHTML){if(null!=n.children)throw Error(a(60));if("object"!==typeof n.dangerouslySetInnerHTML||!("__html"in n.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=n.style&&"object"!==typeof n.style)throw Error(a(62))}}function Se(e,n){if(-1===e.indexOf("-"))return"string"===typeof n.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var xe=null;function Ee(e){e=e.target||e.srcElement||window;e.correspondingUseElement&&(e=e.correspondingUseElement);return 3===e.nodeType?e.parentNode:e}var Ce=null,_e=null,Ne=null;function ze(e){if(e=Bl(e)){if("function"!==typeof Ce)throw Error(a(280));var n=e.stateNode;n&&(n=Wl(n),Ce(e.stateNode,e.type,n))}}function Pe(e){_e?Ne?Ne.push(e):Ne=[e]:_e=e}function Te(){if(_e){var e=_e,n=Ne;Ne=_e=null;ze(e);if(n)for(e=0;e>>=0;return 0===e?32:31-(mn(e)/hn|0)|0}var vn=64,yn=4194304;function bn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function kn(e,n){var t=e.pendingLanes;if(0===t)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,u=t&268435455;if(0!==u){var i=u&~l;0!==i?r=bn(i):(a&=u,0!==a&&(r=bn(a)))}else u=t&~l,0!==u?r=bn(u):0!==a&&(r=bn(a));if(0===r)return 0;if(0!==n&&n!==r&&0===(n&l)&&(l=r&-r,a=n&-n,l>=a||16===l&&0!==(a&4194240)))return n;0!==(r&4)&&(r|=t&16);n=e.entangledLanes;if(0!==n)for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function _n(e,n,t){e.pendingLanes|=n;536870912!==n&&(e.suspendedLanes=0,e.pingedLanes=0);e=e.eventTimes;n=31-pn(n);e[n]=t}function Nn(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n;e.suspendedLanes=0;e.pingedLanes=0;e.expiredLanes&=n;e.mutableReadLanes&=n;e.entangledLanes&=n;n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Zt),nr=String.fromCharCode(32),tr=!1;function rr(e,n){switch(e){case"keyup":return-1!==Xt.indexOf(n.keyCode);case"keydown":return 229!==n.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function lr(e){e=e.detail;return"object"===typeof e&&"data"in e?e.data:null}var ar=!1;function ur(e,n){switch(e){case"compositionend":return lr(n);case"keypress":if(32!==n.which)return null;tr=!0;return nr;case"textInput":return e=n.data,e===nr&&tr?null:e;default:return null}}function ir(e,n){if(ar)return"compositionend"===e||!Gt&&rr(e,n)?(e=ft(),ct=st=ot=null,ar=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:t,offset:n-e};e=r}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=Pr(t)}}function Lr(e,n){return e&&n?e===n?!0:e&&3===e.nodeType?!1:n&&3===n.nodeType?Lr(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Mr(){for(var e=window,n=Z();n instanceof e.HTMLIFrameElement;){try{var t="string"===typeof n.contentWindow.location.href}catch(r){t=!1}if(t)e=n.contentWindow;else break;n=Z(e.document)}return n}function Fr(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&("input"===n&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===n||"true"===e.contentEditable)}function Dr(e){var n=Mr(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&Lr(t.ownerDocument.documentElement,t)){if(null!==r&&Fr(t))if(n=r.start,e=r.end,void 0===e&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if(e=(n=t.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var l=t.textContent.length,a=Math.min(r.start,l);r=void 0===r.end?a:Math.min(r.end,l);!e.extend&&a>r&&(l=r,r=a,a=l);l=Tr(t,a);var u=Tr(t,r);l&&u&&(1!==e.rangeCount||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==u.node||e.focusOffset!==u.offset)&&(n=n.createRange(),n.setStart(l.node,l.offset),e.removeAllRanges(),a>r?(e.addRange(n),e.extend(u.node,u.offset)):(n.setEnd(u.node,u.offset),e.addRange(n)))}n=[];for(e=t;e=e.parentNode;)1===e.nodeType&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});"function"===typeof t.focus&&t.focus();for(t=0;t=document.documentMode,Or=null,Ir=null,Ur=null,Vr=!1;function Ar(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;Vr||null==Or||Or!==Z(r)||(r=Or,"selectionStart"in r&&Fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ur&&zr(Ur,r)||(Ur=r,r=ml(Ir,"onSelect"),0jl||(e.current=Ql[jl],Ql[jl]=null,jl--)}function ql(e,n){jl++;Ql[jl]=e.current;e.current=n}var Yl={},Xl=$l(Yl),Gl=$l(!1),Zl=Yl;function Jl(e,n){var t=e.type.contextTypes;if(!t)return Yl;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l={},a;for(a in t)l[a]=n[a];r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=l);return l}function ea(e){e=e.childContextTypes;return null!==e&&void 0!==e}function na(){Kl(Gl);Kl(Xl)}function ta(e,n,t){if(Xl.current!==Yl)throw Error(a(168));ql(Xl,n);ql(Gl,t)}function ra(e,n,t){var r=e.stateNode;n=n.childContextTypes;if("function"!==typeof r.getChildContext)return t;r=r.getChildContext();for(var l in r)if(!(l in n))throw Error(a(108,$(e)||"Unknown",l));return V({},t,r)}function la(e){e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Yl;Zl=Xl.current;ql(Xl,e);ql(Gl,Gl.current);return!0}function aa(e,n,t){var r=e.stateNode;if(!r)throw Error(a(169));t?(e=ra(e,n,Zl),r.__reactInternalMemoizedMergedChildContext=e,Kl(Gl),Kl(Xl),ql(Xl,e)):Kl(Gl);ql(Gl,t)}var ua=null,ia=!1,oa=!1;function sa(e){null===ua?ua=[e]:ua.push(e)}function ca(e){ia=!0;sa(e)}function fa(){if(!oa&&null!==ua){oa=!0;var e=0,n=Pn;try{var t=ua;for(Pn=1;e>=u;l-=u;ba=1<<32-pn(n)+l|t<h?(g=f,f=null):g=f.sibling;var v=p(l,f,i[h],o);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&n(l,f);a=u(v,a,h);null===c?s=v:c.sibling=v;c=v;f=g}if(h===i.length)return t(l,f),Na&&wa(l,h),s;if(null===f){for(;hg?(v=h,h=null):v=h.sibling;var b=p(l,h,y.value,s);if(null===b){null===h&&(h=v);break}e&&h&&null===b.alternate&&n(l,h);i=u(b,i,g);null===f?c=b:f.sibling=b;f=b;h=v}if(y.done)return t(l,h),Na&&wa(l,g),c;if(null===h){for(;!y.done;g++,y=o.next())y=d(l,y.value,s),null!==y&&(i=u(y,i,g),null===f?c=y:f.sibling=y,f=y);Na&&wa(l,g);return c}for(h=r(l,h);!y.done;g++,y=o.next())y=m(h,l,g,y.value,s),null!==y&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),i=u(y,i,g),null===f?c=y:f.sibling=y,f=y);e&&h.forEach((function(e){return n(l,e)}));Na&&wa(l,g);return c}function v(e,r,a,u){"object"===typeof a&&null!==a&&a.type===_&&null===a.key&&(a=a.props.children);if("object"===typeof a&&null!==a){switch(a.$$typeof){case E:e:{for(var o=a.key,s=r;null!==s;){if(s.key===o){o=a.type;if(o===_){if(7===s.tag){t(e,s.sibling);r=l(s,a.props.children);r.return=e;e=r;break e}}else if(s.elementType===o||"object"===typeof o&&null!==o&&o.$$typeof===R&&vu(o)===s.type){t(e,s.sibling);r=l(s,a.props);r.ref=hu(e,s,a);r.return=e;e=r;break e}t(e,s);break}else n(e,s);s=s.sibling}a.type===_?(r=fc(a.props.children,e.mode,u,a.key),r.return=e,e=r):(u=cc(a.type,a.key,a.props,null,e.mode,u),u.ref=hu(e,r,a),u.return=e,e=u)}return i(e);case C:e:{for(s=a.key;null!==r;){if(r.key===s)if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){t(e,r.sibling);r=l(r,a.children||[]);r.return=e;e=r;break e}else{t(e,r);break}else n(e,r);r=r.sibling}r=mc(a,e.mode,u);r.return=e;e=r}return i(e);case R:return s=a._init,v(e,r,s(a._payload),u)}if(ae(a))return h(e,r,a,u);if(U(a))return g(e,r,a,u);gu(e,a)}return"string"===typeof a&&""!==a||"number"===typeof a?(a=""+a,null!==r&&6===r.tag?(t(e,r.sibling),r=l(r,a),r.return=e,e=r):(t(e,r),r=pc(a,e.mode,u),r.return=e,e=r),i(e)):t(e,r)}return v}var bu=yu(!0),ku=yu(!1),wu={},Su=$l(wu),xu=$l(wu),Eu=$l(wu);function Cu(e){if(e===wu)throw Error(a(174));return e}function _u(e,n){ql(Eu,n);ql(xu,e);ql(Su,wu);e=n.nodeType;switch(e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:de(null,"");break;default:e=8===e?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=de(n,e)}Kl(Su);ql(Su,n)}function Nu(){Kl(Su);Kl(xu);Kl(Eu)}function zu(e){Cu(Eu.current);var n=Cu(Su.current);var t=de(n,e.type);n!==t&&(ql(xu,e),ql(Su,t))}function Pu(e){xu.current===e&&(Kl(Su),Kl(xu))}var Tu=$l(0);function Lu(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(t=t.dehydrated,null===t||"$?"===t.data||"$!"===t.data))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!==(n.flags&128))return n}else if(null!==n.child){n.child.return=n;n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return;n=n.sibling}return null}var Mu=[];function Fu(){for(var e=0;et?t:4;e(!0);var r=Ru.transition;Ru.transition={};try{e(!1),n()}finally{Pn=t,Ru.transition=r}}function Si(){return Yu().memoizedState}function xi(e,n,t){var r=Ns(e);t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(Ci(e))_i(n,t);else if(t=Ga(e,n,t,r),null!==t){var l=_s();zs(t,e,r,l);Ni(t,n,r)}}function Ei(e,n,t){var r=Ns(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(Ci(e))_i(n,l);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&(a=n.lastRenderedReducer,null!==a))try{var u=n.lastRenderedState,i=a(u,t);l.hasEagerState=!0;l.eagerState=i;if(Nr(i,u)){var o=n.interleaved;null===o?(l.next=l,Xa(n)):(l.next=o.next,o.next=l);n.interleaved=l;return}}catch(s){}finally{}t=Ga(e,n,l,r);null!==t&&(l=_s(),zs(t,e,r,l),Ni(t,n,r))}}function Ci(e){var n=e.alternate;return e===Iu||null!==n&&n===Iu}function _i(e,n){Bu=Au=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n);e.pending=n}function Ni(e,n,t){if(0!==(t&4194240)){var r=n.lanes;r&=e.pendingLanes;t|=r;n.lanes=t;zn(e,t)}}var zi={readContext:qa,useCallback:Qu,useContext:Qu,useEffect:Qu,useImperativeHandle:Qu,useInsertionEffect:Qu,useLayoutEffect:Qu,useMemo:Qu,useReducer:Qu,useRef:Qu,useState:Qu,useDebugValue:Qu,useDeferredValue:Qu,useTransition:Qu,useMutableSource:Qu,useSyncExternalStore:Qu,useId:Qu,unstable_isNewReconciler:!1},Pi={readContext:qa,useCallback:function(e,n){qu().memoizedState=[e,void 0===n?null:n];return e},useContext:qa,useEffect:fi,useImperativeHandle:function(e,n,t){t=null!==t&&void 0!==t?t.concat([e]):null;return si(4194308,4,hi.bind(null,n,e),t)},useLayoutEffect:function(e,n){return si(4194308,4,e,n)},useInsertionEffect:function(e,n){return si(4,2,e,n)},useMemo:function(e,n){var t=qu();n=void 0===n?null:n;e=e();t.memoizedState=[e,n];return e},useReducer:function(e,n,t){var r=qu();n=void 0!==t?t(n):n;r.memoizedState=r.baseState=n;e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n};r.queue=e;e=e.dispatch=xi.bind(null,Iu,e);return[r.memoizedState,e]},useRef:function(e){var n=qu();e={current:e};return n.memoizedState=e},useState:ui,useDebugValue:vi,useDeferredValue:function(e){return qu().memoizedState=e},useTransition:function(){var e=ui(!1),n=e[0];e=wi.bind(null,e[1]);qu().memoizedState=e;return[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=Iu,l=qu();if(Na){if(void 0===t)throw Error(a(407));t=t()}else{t=n();if(null===ns)throw Error(a(349));0!==(Ou&30)||ni(r,n,t)}l.memoizedState=t;var u={value:t,getSnapshot:n};l.queue=u;fi(ri.bind(null,r,u,e),[e]);r.flags|=2048;ii(9,ti.bind(null,r,u,t,n),void 0,null);return t},useId:function(){var e=qu(),n=ns.identifierPrefix;if(Na){var t=ka;var r=ba;t=(r&~(1<<32-pn(r)-1)).toString(32)+t;n=":"+n+"R"+t;t=Hu++;0<\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=o.createElement(t,{is:r.is}):(e=o.createElement(t),"select"===t&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,t);e[Dl]=n;e[Rl]=r;po(e,n,!1,!1);n.stateNode=e;e:{o=Se(t,r);switch(t){case"dialog":il("cancel",e);il("close",e);l=r;break;case"iframe":case"object":case"embed":il("load",e);l=r;break;case"video":case"audio":for(l=0;lms&&(n.flags|=128,r=!0,vo(u,!1),n.lanes=4194304)}else{if(!r)if(e=Lu(o),null!==e){if(n.flags|=128,r=!0,t=e.updateQueue,null!==t&&(n.updateQueue=t,n.flags|=4),vo(u,!0),null===u.tail&&"hidden"===u.tailMode&&!o.alternate&&!Na)return yo(n),null}else 2*tn()-u.renderingStartTime>ms&&1073741824!==t&&(n.flags|=128,r=!0,vo(u,!1),n.lanes=4194304);u.isBackwards?(o.sibling=n.child,n.child=o):(t=u.last,null!==t?t.sibling=o:n.child=o,u.last=o)}if(null!==u.tail)return n=u.tail,u.rendering=n,u.tail=n.sibling,u.renderingStartTime=tn(),n.sibling=null,t=Tu.current,ql(Tu,r?t&1|2:t&1),n;yo(n);return null;case 22:case 23:return Us(),r=null!==n.memoizedState,null!==e&&null!==e.memoizedState!==r&&(n.flags|=8192),r&&0!==(n.mode&1)?0!==(ls&1073741824)&&(yo(n),n.subtreeFlags&6&&(n.flags|=8192)):yo(n),null;case 24:return null;case 25:return null}throw Error(a(156,n.tag))}function ko(e,n){Ea(n);switch(n.tag){case 1:return ea(n.type)&&na(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Nu(),Kl(Gl),Kl(Xl),Fu(),e=n.flags,0!==(e&65536)&&0===(e&128)?(n.flags=e&-65537|128,n):null;case 5:return Pu(n),null;case 13:Kl(Tu);e=n.memoizedState;if(null!==e&&null!==e.dehydrated){if(null===n.alternate)throw Error(a(340));Oa()}e=n.flags;return e&65536?(n.flags=e&-65537|128,n):null;case 19:return Kl(Tu),null;case 4:return Nu(),null;case 10:return ja(n.type._context),null;case 22:case 23:return Us(),null;case 24:return null;default:return null}}var wo=!1,So=!1,xo="function"===typeof WeakSet?WeakSet:Set,Eo=null;function Co(e,n){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(r){Zs(e,n,r)}else t.current=null}function _o(e,n,t){try{t()}catch(r){Zs(e,n,r)}}var No=!1;function zo(e,n){Sl=nt;e=Mr();if(Fr(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var r=t.getSelection&&t.getSelection();if(r&&0!==r.rangeCount){t=r.anchorNode;var l=r.anchorOffset,u=r.focusNode;r=r.focusOffset;try{t.nodeType,u.nodeType}catch(w){t=null;break e}var i=0,o=-1,s=-1,c=0,f=0,d=e,p=null;n:for(;;){for(var m;;){d!==t||0!==l&&3!==d.nodeType||(o=i+l);d!==u||0!==r&&3!==d.nodeType||(s=i+r);3===d.nodeType&&(i+=d.nodeValue.length);if(null===(m=d.firstChild))break;p=d;d=m}for(;;){if(d===e)break n;p===t&&++c===l&&(o=i);p===u&&++f===r&&(s=i);if(null!==(m=d.nextSibling))break;d=p;p=d.parentNode}d=m}t=-1===o||-1===s?null:{start:o,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;xl={focusedElem:e,selectionRange:t};nt=!1;for(Eo=n;null!==Eo;)if(n=Eo,e=n.child,0!==(n.subtreeFlags&1028)&&null!==e)e.return=n,Eo=e;else for(;null!==Eo;){n=Eo;try{var h=n.alternate;if(0!==(n.flags&1024))switch(n.tag){case 0:case 11:case 15:break;case 1:if(null!==h){var g=h.memoizedProps,v=h.memoizedState,y=n.stateNode,b=y.getSnapshotBeforeUpdate(n.elementType===n.type?g:Va(n.type,g),v);y.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var k=n.stateNode.containerInfo;1===k.nodeType?k.textContent="":9===k.nodeType&&k.documentElement&&k.removeChild(k.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(a(163))}}catch(w){Zs(n,n.return,w)}e=n.sibling;if(null!==e){e.return=n.return;Eo=e;break}Eo=n.return}h=No;No=!1;return h}function Po(e,n,t){var r=n.updateQueue;r=null!==r?r.lastEffect:null;if(null!==r){var l=r=r.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0;void 0!==a&&_o(n,t,a)}l=l.next}while(l!==r)}}function To(e,n){n=n.updateQueue;n=null!==n?n.lastEffect:null;if(null!==n){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function Lo(e){var n=e.ref;if(null!==n){var t=e.stateNode;switch(e.tag){case 5:e=t;break;default:e=t}"function"===typeof n?n(e):n.current=e}}function Mo(e){var n=e.alternate;null!==n&&(e.alternate=null,Mo(n));e.child=null;e.deletions=null;e.sibling=null;5===e.tag&&(n=e.stateNode,null!==n&&(delete n[Dl],delete n[Rl],delete n[Il],delete n[Ul],delete n[Vl]));e.stateNode=null;e.return=null;e.dependencies=null;e.memoizedProps=null;e.memoizedState=null;e.pendingProps=null;e.stateNode=null;e.updateQueue=null}function Fo(e){return 5===e.tag||3===e.tag||4===e.tag}function Do(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||Fo(e.return))return null;e=e.return}e.sibling.return=e.return;for(e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(e.flags&2)continue e;if(null===e.child||4===e.tag)continue e;else e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ro(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?8===t.nodeType?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(8===t.nodeType?(n=t.parentNode,n.insertBefore(e,t)):(n=t,n.appendChild(e)),t=t._reactRootContainer,null!==t&&void 0!==t||null!==n.onclick||(n.onclick=wl));else if(4!==r&&(e=e.child,null!==e))for(Ro(e,n,t),e=e.sibling;null!==e;)Ro(e,n,t),e=e.sibling}function Oo(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(4!==r&&(e=e.child,null!==e))for(Oo(e,n,t),e=e.sibling;null!==e;)Oo(e,n,t),e=e.sibling}var Io=null,Uo=!1;function Vo(e,n,t){for(t=t.child;null!==t;)Ao(e,n,t),t=t.sibling}function Ao(e,n,t){if(fn&&"function"===typeof fn.onCommitFiberUnmount)try{fn.onCommitFiberUnmount(cn,t)}catch(i){}switch(t.tag){case 5:So||Co(t,n);case 6:var r=Io,l=Uo;Io=null;Vo(e,n,t);Io=r;Uo=l;null!==Io&&(Uo?(e=Io,t=t.stateNode,8===e.nodeType?e.parentNode.removeChild(t):e.removeChild(t)):Io.removeChild(t.stateNode));break;case 18:null!==Io&&(Uo?(e=Io,t=t.stateNode,8===e.nodeType?Tl(e.parentNode,t):1===e.nodeType&&Tl(e,t),Jn(e)):Tl(Io,t.stateNode));break;case 4:r=Io;l=Uo;Io=t.stateNode.containerInfo;Uo=!0;Vo(e,n,t);Io=r;Uo=l;break;case 0:case 11:case 14:case 15:if(!So&&(r=t.updateQueue,null!==r&&(r=r.lastEffect,null!==r))){l=r=r.next;do{var a=l,u=a.destroy;a=a.tag;void 0!==u&&(0!==(a&2)?_o(t,n,u):0!==(a&4)&&_o(t,n,u));l=l.next}while(l!==r)}Vo(e,n,t);break;case 1:if(!So&&(Co(t,n),r=t.stateNode,"function"===typeof r.componentWillUnmount))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(i){Zs(t,n,i)}Vo(e,n,t);break;case 21:Vo(e,n,t);break;case 22:t.mode&1?(So=(r=So)||null!==t.memoizedState,Vo(e,n,t),So=r):Vo(e,n,t);break;default:Vo(e,n,t)}}function Bo(e){var n=e.updateQueue;if(null!==n){e.updateQueue=null;var t=e.stateNode;null===t&&(t=e.stateNode=new xo);n.forEach((function(n){var r=tc.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))}))}}function Ho(e,n){var t=n.deletions;if(null!==t)for(var r=0;rl&&(l=i);r&=~u}r=l;r=tn()-r;r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Xo(r/1960))-r;if(10e?16:e;if(null===ks)var r=!1;else{e=ks;ks=null;ws=0;if(0!==(es&6))throw Error(a(331));var l=es;es|=4;for(Eo=e.current;null!==Eo;){var u=Eo,i=u.child;if(0!==(Eo.flags&16)){var o=u.deletions;if(null!==o){for(var s=0;stn()-ps?Vs(e,0):cs|=t);Ps(e,n)}function ec(e,n){0===n&&(0===(e.mode&1)?n=1:(n=yn,yn<<=1,0===(yn&130023424)&&(yn=4194304)));var t=_s();e=Za(e,n);null!==e&&(_n(e,n,t),Ps(e,t))}function nc(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane);ec(e,t)}function tc(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode;var l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(n);ec(e,t)}var rc;rc=function(e,n,t){if(null!==e)if(e.memoizedProps!==n.pendingProps||Gl.current)Hi=!0;else{if(0===(e.lanes&t)&&0===(n.flags&128))return Hi=!1,fo(e,n,t);Hi=0!==(e.flags&131072)?!0:!1}else Hi=!1,Na&&0!==(n.flags&1048576)&&Sa(n,ha,n.index);n.lanes=0;switch(n.tag){case 2:var r=n.type;so(e,n);e=n.pendingProps;var l=Jl(n,Xl.current);Ka(n,t);l=$u(null,n,r,e,l,t);var u=Ku();n.flags|=1;"object"===typeof l&&null!==l&&"function"===typeof l.render&&void 0===l.$$typeof?(n.tag=1,n.memoizedState=null,n.updateQueue=null,ea(r)?(u=!0,la(n)):u=!1,n.memoizedState=null!==l.state&&void 0!==l.state?l.state:null,eu(n),l.updater=cu,n.stateNode=l,l._reactInternals=n,mu(n,r,e,t),n=Gi(null,n,r,!0,u,t)):(n.tag=0,Na&&u&&xa(n),Wi(null,n,l,t),n=n.child);return n;case 16:r=n.elementType;e:{so(e,n);e=n.pendingProps;l=r._init;r=l(r._payload);n.type=r;l=n.tag=oc(r);e=Va(r,e);switch(l){case 0:n=Yi(null,n,r,e,t);break e;case 1:n=Xi(null,n,r,e,t);break e;case 11:n=Qi(null,n,r,e,t);break e;case 14:n=ji(null,n,r,Va(r.type,e),t);break e}throw Error(a(306,r,""))}return n;case 0:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Va(r,l),Yi(e,n,r,l,t);case 1:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Va(r,l),Xi(e,n,r,l,t);case 3:e:{Zi(n);if(null===e)throw Error(a(387));r=n.pendingProps;u=n.memoizedState;l=u.element;nu(e,n);uu(n,r,null,t);var i=n.memoizedState;r=i.element;if(u.isDehydrated)if(u={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},n.updateQueue.baseState=u,n.memoizedState=u,n.flags&256){l=Mi(Error(a(423)),n);n=Ji(e,n,r,t,l);break e}else if(r!==l){l=Mi(Error(a(424)),n);n=Ji(e,n,r,t,l);break e}else for(_a=Ll(n.stateNode.containerInfo.firstChild),Ca=n,Na=!0,za=null,t=ku(n,null,r,t),n.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{Oa();if(r===l){n=co(e,n,t);break e}Wi(e,n,r,t)}n=n.child}return n;case 5:return zu(n),null===e&&Ma(n),r=n.type,l=n.pendingProps,u=null!==e?e.memoizedProps:null,i=l.children,El(r,l)?i=null:null!==u&&El(r,u)&&(n.flags|=32),qi(e,n),Wi(e,n,i,t),n.child;case 6:return null===e&&Ma(n),null;case 13:return to(e,n,t);case 4:return _u(n,n.stateNode.containerInfo),r=n.pendingProps,null===e?n.child=bu(n,null,r,t):Wi(e,n,r,t),n.child;case 11:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Va(r,l),Qi(e,n,r,l,t);case 7:return Wi(e,n,n.pendingProps,t),n.child;case 8:return Wi(e,n,n.pendingProps.children,t),n.child;case 12:return Wi(e,n,n.pendingProps.children,t),n.child;case 10:e:{r=n.type._context;l=n.pendingProps;u=n.memoizedProps;i=l.value;ql(Aa,r._currentValue);r._currentValue=i;if(null!==u)if(Nr(u.value,i)){if(u.children===l.children&&!Gl.current){n=co(e,n,t);break e}}else for(u=n.child,null!==u&&(u.return=n);null!==u;){var o=u.dependencies;if(null!==o){i=u.child;for(var s=o.firstContext;null!==s;){if(s.context===r){if(1===u.tag){s=tu(-1,t&-t);s.tag=2;var c=u.updateQueue;if(null!==c){c=c.shared;var f=c.pending;null===f?s.next=s:(s.next=f.next,f.next=s);c.pending=s}}u.lanes|=t;s=u.alternate;null!==s&&(s.lanes|=t);$a(u.return,t,n);o.lanes|=t;break}s=s.next}}else if(10===u.tag)i=u.type===n.type?null:u.child;else if(18===u.tag){i=u.return;if(null===i)throw Error(a(341));i.lanes|=t;o=i.alternate;null!==o&&(o.lanes|=t);$a(i,t,n);i=u.sibling}else i=u.child;if(null!==i)i.return=u;else for(i=u;null!==i;){if(i===n){i=null;break}u=i.sibling;if(null!==u){u.return=i.return;i=u;break}i=i.return}u=i}Wi(e,n,l.children,t);n=n.child}return n;case 9:return l=n.type,r=n.pendingProps.children,Ka(n,t),l=qa(l),r=r(l),n.flags|=1,Wi(e,n,r,t),n.child;case 14:return r=n.type,l=Va(r,n.pendingProps),l=Va(r.type,l),ji(e,n,r,l,t);case 15:return $i(e,n,n.type,n.pendingProps,t);case 17:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Va(r,l),so(e,n),n.tag=1,ea(r)?(e=!0,la(n)):e=!1,Ka(n,t),du(n,r,l),mu(n,r,l,t),Gi(null,n,r,!0,e,t);case 19:return oo(e,n,t);case 22:return Ki(e,n,t)}throw Error(a(156,n.tag))};function lc(e,n){return Ze(e,n)}function ac(e,n,t,r){this.tag=e;this.key=t;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=n;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=r;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function uc(e,n,t,r){return new ac(e,n,t,r)}function ic(e){e=e.prototype;return!(!e||!e.isReactComponent)}function oc(e){if("function"===typeof e)return ic(e)?1:0;if(void 0!==e&&null!==e){e=e.$$typeof;if(e===L)return 11;if(e===D)return 14}return 2}function sc(e,n){var t=e.alternate;null===t?(t=uc(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null);t.flags=e.flags&14680064;t.childLanes=e.childLanes;t.lanes=e.lanes;t.child=e.child;t.memoizedProps=e.memoizedProps;t.memoizedState=e.memoizedState;t.updateQueue=e.updateQueue;n=e.dependencies;t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext};t.sibling=e.sibling;t.index=e.index;t.ref=e.ref;return t}function cc(e,n,t,r,l,u){var i=2;r=e;if("function"===typeof e)ic(e)&&(i=1);else if("string"===typeof e)i=5;else e:switch(e){case _:return fc(t.children,l,u,n);case N:i=8;l|=8;break;case z:return e=uc(12,t,n,l|2),e.elementType=z,e.lanes=u,e;case M:return e=uc(13,t,n,l),e.elementType=M,e.lanes=u,e;case F:return e=uc(19,t,n,l),e.elementType=F,e.lanes=u,e;case O:return dc(t,l,u,n);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case P:i=10;break e;case T:i=9;break e;case L:i=11;break e;case D:i=14;break e;case R:i=16;r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}n=uc(i,t,n,l);n.elementType=e;n.type=r;n.lanes=u;return n}function fc(e,n,t,r){e=uc(7,e,r,n);e.lanes=t;return e}function dc(e,n,t,r){e=uc(22,e,r,n);e.elementType=O;e.lanes=t;e.stateNode={isHidden:!1};return e}function pc(e,n,t){e=uc(6,e,null,n);e.lanes=t;return e}function mc(e,n,t){n=uc(4,null!==e.children?e.children:[],e.key,n);n.lanes=t;n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation};return n}function hc(e,n,t,r,l){this.tag=n;this.containerInfo=e;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=Cn(0);this.expirationTimes=Cn(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=Cn(0);this.identifierPrefix=r;this.onRecoverableError=l;this.mutableSourceEagerHydrationData=null}function gc(e,n,t,r,l,a,u,i,o){e=new hc(e,n,t,i,o);1===n?(n=1,!0===a&&(n|=8)):n=0;a=uc(3,null,null,n);e.current=a;a.stateNode=e;a.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null};eu(a);return e}function vc(e,n,t){var r=3{function r(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__==="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=="function"){return}if(false){}try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(e){console.error(e)}}if(true){r();e.exports=t(22551)}else{}},7463:(e,n)=>{function t(e,n){var t=e.length;e.push(n);e:for(;0>>1,l=e[r];if(0>>1;ra(o,t))sa(c,o)?(e[r]=c,e[s]=t,r=s):(e[r]=o,e[i]=t,r=i);else if(sa(c,t))e[r]=c,e[s]=t,r=s;else break e}}return n}function a(e,n){var t=e.sortIndex-n.sortIndex;return 0!==t?t:e.id-n.id}if("object"===typeof performance&&"function"===typeof performance.now){var u=performance;n.unstable_now=function(){return u.now()}}else{var i=Date,o=i.now();n.unstable_now=function(){return i.now()-o}}var s=[],c=[],f=1,d=null,p=3,m=!1,h=!1,g=!1,v="function"===typeof setTimeout?setTimeout:null,y="function"===typeof clearTimeout?clearTimeout:null,b="undefined"!==typeof setImmediate?setImmediate:null;"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function k(e){for(var n=r(c);null!==n;){if(null===n.callback)l(c);else if(n.startTime<=e)l(c),n.sortIndex=n.expirationTime,t(s,n);else break;n=r(c)}}function w(e){g=!1;k(e);if(!h)if(null!==r(s))h=!0,F(S);else{var n=r(c);null!==n&&D(w,n.startTime-e)}}function S(e,t){h=!1;g&&(g=!1,y(C),C=-1);m=!0;var a=p;try{k(t);for(d=r(s);null!==d&&(!(d.expirationTime>t)||e&&!z());){var u=d.callback;if("function"===typeof u){d.callback=null;p=d.priorityLevel;var i=u(d.expirationTime<=t);t=n.unstable_now();"function"===typeof i?d.callback=i:d===r(s)&&l(s);k(t)}else l(s);d=r(s)}if(null!==d)var o=!0;else{var f=r(c);null!==f&&D(w,f.startTime-t);o=!1}return o}finally{d=null,p=a,m=!1}}var x=!1,E=null,C=-1,_=5,N=-1;function z(){return n.unstable_now()-N<_?!1:!0}function P(){if(null!==E){var e=n.unstable_now();N=e;var t=!0;try{t=E(!0,e)}finally{t?T():(x=!1,E=null)}}else x=!1}var T;if("function"===typeof b)T=function(){b(P)};else if("undefined"!==typeof MessageChannel){var L=new MessageChannel,M=L.port2;L.port1.onmessage=P;T=function(){M.postMessage(null)}}else T=function(){v(P,0)};function F(e){E=e;x||(x=!0,T())}function D(e,t){C=v((function(){e(n.unstable_now())}),t)}n.unstable_IdlePriority=5;n.unstable_ImmediatePriority=1;n.unstable_LowPriority=4;n.unstable_NormalPriority=3;n.unstable_Profiling=null;n.unstable_UserBlockingPriority=2;n.unstable_cancelCallback=function(e){e.callback=null};n.unstable_continueExecution=function(){h||m||(h=!0,F(S))};n.unstable_forceFrameRate=function(e){0>e||125u?(e.sortIndex=a,t(c,e),null===r(s)&&e===r(c)&&(g?(y(C),C=-1):g=!0,D(w,a-u))):(e.sortIndex=i,t(s,e),h||m||(h=!0,F(S)));return e};n.unstable_shouldYield=z;n.unstable_wrapCallback=function(e){var n=p;return function(){var t=p;p=n;try{return e.apply(this,arguments)}finally{p=t}}}},69982:(e,n,t)=>{if(true){e.exports=t(7463)}else{}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/961.29c067b15a524e556eed.js.LICENSE.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/961.29c067b15a524e556eed.js.LICENSE.txt deleted file mode 100644 index 122393a3f28d235cd077495ec4705a88bccaea41..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/961.29c067b15a524e556eed.js.LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** - * @license React - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9652.a8d2e5854bcae4d40041.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9652.a8d2e5854bcae4d40041.js deleted file mode 100644 index 795845d9c7ae9fda89d8980ae750927b0dc53f18..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9652.a8d2e5854bcae4d40041.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9652,5606],{89031:e=>{"use strict";function t(e,t){var r=e;t.slice(0,-1).forEach((function(e){r=r[e]||{}}));var n=t[t.length-1];return n in r}function r(e){if(typeof e==="number"){return true}if(/^0x[0-9a-f]+$/i.test(e)){return true}return/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function n(e,t){return t==="constructor"&&typeof e[t]==="function"||t==="__proto__"}e.exports=function(e,o){if(!o){o={}}var i={bools:{},strings:{},unknownFn:null};if(typeof o.unknown==="function"){i.unknownFn=o.unknown}if(typeof o.boolean==="boolean"&&o.boolean){i.allBools=true}else{[].concat(o.boolean).filter(Boolean).forEach((function(e){i.bools[e]=true}))}var s={};function a(e){return s[e].some((function(e){return i.bools[e]}))}Object.keys(o.alias||{}).forEach((function(e){s[e]=[].concat(o.alias[e]);s[e].forEach((function(t){s[t]=[e].concat(s[e].filter((function(e){return t!==e})))}))}));[].concat(o.string).filter(Boolean).forEach((function(e){i.strings[e]=true;if(s[e]){[].concat(s[e]).forEach((function(e){i.strings[e]=true}))}}));var f=o.default||{};var l={_:[]};function u(e,t){return i.allBools&&/^--[^=]+$/.test(t)||i.strings[e]||i.bools[e]||s[e]}function c(e,t,r){var o=e;for(var s=0;s{"use strict";var n=r(65606);function o(e){if(typeof e!=="string"){throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}}function i(e,t){var r="";var n=0;var o=-1;var i=0;var s;for(var a=0;a<=e.length;++a){if(a2){var f=r.lastIndexOf("/");if(f!==r.length-1){if(f===-1){r="";n=0}else{r=r.slice(0,f);n=r.length-1-r.lastIndexOf("/")}o=a;i=0;continue}}else if(r.length===2||r.length===1){r="";n=0;o=a;i=0;continue}}if(t){if(r.length>0)r+="/..";else r="..";n=2}}else{if(r.length>0)r+="/"+e.slice(o+1,a);else r=e.slice(o+1,a);n=a-o-1}o=a;i=0}else if(s===46&&i!==-1){++i}else{i=-1}}return r}function s(e,t){var r=t.dir||t.root;var n=t.base||(t.name||"")+(t.ext||"");if(!r){return n}if(r===t.root){return r+n}return r+e+n}var a={resolve:function e(){var t="";var r=false;var s;for(var a=arguments.length-1;a>=-1&&!r;a--){var f;if(a>=0)f=arguments[a];else{if(s===undefined)s=n.cwd();f=s}o(f);if(f.length===0){continue}t=f+"/"+t;r=f.charCodeAt(0)===47}t=i(t,!r);if(r){if(t.length>0)return"/"+t;else return"/"}else if(t.length>0){return t}else{return"."}},normalize:function e(t){o(t);if(t.length===0)return".";var r=t.charCodeAt(0)===47;var n=t.charCodeAt(t.length-1)===47;t=i(t,!r);if(t.length===0&&!r)t=".";if(t.length>0&&n)t+="/";if(r)return"/"+t;return t},isAbsolute:function e(t){o(t);return t.length>0&&t.charCodeAt(0)===47},join:function e(){if(arguments.length===0)return".";var t;for(var r=0;r0){if(t===undefined)t=n;else t+="/"+n}}if(t===undefined)return".";return a.normalize(t)},relative:function e(t,r){o(t);o(r);if(t===r)return"";t=a.resolve(t);r=a.resolve(r);if(t===r)return"";var n=1;for(;nc){if(r.charCodeAt(f+p)===47){return r.slice(f+p+1)}else if(p===0){return r.slice(f+p)}}else if(s>c){if(t.charCodeAt(n+p)===47){h=p}else if(p===0){h=0}}break}var d=t.charCodeAt(n+p);var v=r.charCodeAt(f+p);if(d!==v)break;else if(d===47)h=p}var g="";for(p=n+h+1;p<=i;++p){if(p===i||t.charCodeAt(p)===47){if(g.length===0)g+="..";else g+="/.."}}if(g.length>0)return g+r.slice(f+h);else{f+=h;if(r.charCodeAt(f)===47)++f;return r.slice(f)}},_makeLong:function e(t){return t},dirname:function e(t){o(t);if(t.length===0)return".";var r=t.charCodeAt(0);var n=r===47;var i=-1;var s=true;for(var a=t.length-1;a>=1;--a){r=t.charCodeAt(a);if(r===47){if(!s){i=a;break}}else{s=false}}if(i===-1)return n?"/":".";if(n&&i===1)return"//";return t.slice(0,i)},basename:function e(t,r){if(r!==undefined&&typeof r!=="string")throw new TypeError('"ext" argument must be a string');o(t);var n=0;var i=-1;var s=true;var a;if(r!==undefined&&r.length>0&&r.length<=t.length){if(r.length===t.length&&r===t)return"";var f=r.length-1;var l=-1;for(a=t.length-1;a>=0;--a){var u=t.charCodeAt(a);if(u===47){if(!s){n=a+1;break}}else{if(l===-1){s=false;l=a+1}if(f>=0){if(u===r.charCodeAt(f)){if(--f===-1){i=a}}else{f=-1;i=l}}}}if(n===i)i=l;else if(i===-1)i=t.length;return t.slice(n,i)}else{for(a=t.length-1;a>=0;--a){if(t.charCodeAt(a)===47){if(!s){n=a+1;break}}else if(i===-1){s=false;i=a+1}}if(i===-1)return"";return t.slice(n,i)}},extname:function e(t){o(t);var r=-1;var n=0;var i=-1;var s=true;var a=0;for(var f=t.length-1;f>=0;--f){var l=t.charCodeAt(f);if(l===47){if(!s){n=f+1;break}continue}if(i===-1){s=false;i=f+1}if(l===46){if(r===-1)r=f;else if(a!==1)a=1}else if(r!==-1){a=-1}}if(r===-1||i===-1||a===0||a===1&&r===i-1&&r===n+1){return""}return t.slice(r,i)},format:function e(t){if(t===null||typeof t!=="object"){throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t)}return s("/",t)},parse:function e(t){o(t);var r={root:"",dir:"",base:"",ext:"",name:""};if(t.length===0)return r;var n=t.charCodeAt(0);var i=n===47;var s;if(i){r.root="/";s=1}else{s=0}var a=-1;var f=0;var l=-1;var u=true;var c=t.length-1;var h=0;for(;c>=s;--c){n=t.charCodeAt(c);if(n===47){if(!u){f=c+1;break}continue}if(l===-1){u=false;l=c+1}if(n===46){if(a===-1)a=c;else if(h!==1)h=1}else if(a!==-1){h=-1}}if(a===-1||l===-1||h===0||h===1&&a===l-1&&a===f+1){if(l!==-1){if(f===0&&i)r.base=r.name=t.slice(1,l);else r.base=r.name=t.slice(f,l)}}else{if(f===0&&i){r.name=t.slice(1,a);r.base=t.slice(1,l)}else{r.name=t.slice(f,a);r.base=t.slice(f,l)}r.ext=t.slice(a,l)}if(f>0)r.dir=t.slice(0,f-1);else if(i)r.dir="/";return r},sep:"/",delimiter:":",win32:null,posix:null};a.posix=a;e.exports=a},65606:e=>{var t=e.exports={};var r;var n;function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){r=setTimeout}else{r=o}}catch(e){r=o}try{if(typeof clearTimeout==="function"){n=clearTimeout}else{n=i}}catch(e){n=i}})();function s(e){if(r===setTimeout){return setTimeout(e,0)}if((r===o||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function a(e){if(n===clearTimeout){return clearTimeout(e)}if((n===i||!n)&&clearTimeout){n=clearTimeout;return clearTimeout(e)}try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var f=[];var l=false;var u;var c=-1;function h(){if(!l||!u){return}l=false;if(u.length){f=u.concat(f)}else{c=-1}if(f.length){p()}}function p(){if(l){return}var e=s(h);l=true;var t=f.length;while(t){u=f;f=[];while(++c1){for(var r=1;r{"use strict";var r=Object.prototype.hasOwnProperty,n;function o(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return null}}function i(e){try{return encodeURIComponent(e)}catch(t){return null}}function s(e){var t=/([^=?#&]+)=?([^&]*)/g,r={},n;while(n=t.exec(e)){var i=o(n[1]),s=o(n[2]);if(i===null||s===null||i in r)continue;r[i]=s}return r}function a(e,t){t=t||"";var o=[],s,a;if("string"!==typeof t)t="?";for(a in e){if(r.call(e,a)){s=e[a];if(!s&&(s===null||s===n||isNaN(s))){s=""}a=i(a);s=i(s);if(a===null||s===null)continue;o.push(a+"="+s)}}return o.length?t+o.join("&"):""}t.stringify=a;t.parse=s},92063:e=>{"use strict";e.exports=function e(t,r){r=r.split(":")[0];t=+t;if(!t)return false;switch(r){case"http":case"ws":return t!==80;case"https":case"wss":return t!==443;case"ftp":return t!==21;case"gopher":return t!==70;case"file":return false}return t!==0}},61160:(e,t,r)=>{"use strict";var n=r(92063),o=r(73992),i=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,s=/[\n\r\t]/g,a=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,f=/:\d+$/,l=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,u=/^[a-zA-Z]:/;function c(e){return(e?e:"").toString().replace(i,"")}var h=[["#","hash"],["?","query"],function e(t,r){return v(r.protocol)?t.replace(/\\/g,"/"):t},["/","pathname"],["@","auth",1],[NaN,"host",undefined,1,1],[/:(\d*)$/,"port",undefined,1],[NaN,"hostname",undefined,1,1]];var p={hash:1,query:1};function d(e){var t;if(typeof window!=="undefined")t=window;else if(typeof r.g!=="undefined")t=r.g;else if(typeof self!=="undefined")t=self;else t={};var n=t.location||{};e=e||n;var o={},i=typeof e,s;if("blob:"===e.protocol){o=new b(unescape(e.pathname),{})}else if("string"===i){o=new b(e,{});for(s in p)delete o[s]}else if("object"===i){for(s in e){if(s in p)continue;o[s]=e[s]}if(o.slashes===undefined){o.slashes=a.test(e.href)}}return o}function v(e){return e==="file:"||e==="ftp:"||e==="http:"||e==="https:"||e==="ws:"||e==="wss:"}function g(e,t){e=c(e);e=e.replace(s,"");t=t||{};var r=l.exec(e);var n=r[1]?r[1].toLowerCase():"";var o=!!r[2];var i=!!r[3];var a=0;var f;if(o){if(i){f=r[2]+r[3]+r[4];a=r[2].length+r[3].length}else{f=r[2]+r[4];a=r[2].length}}else{if(i){f=r[3]+r[4];a=r[3].length}else{f=r[4]}}if(n==="file:"){if(a>=2){f=f.slice(2)}}else if(v(n)){f=r[4]}else if(n){if(o){f=f.slice(2)}}else if(a>=2&&v(t.protocol)){f=r[4]}return{protocol:n,slashes:o||v(n),slashesCount:a,rest:f}}function m(e,t){if(e==="")return t;var r=(t||"/").split("/").slice(0,-1).concat(e.split("/")),n=r.length,o=r[n-1],i=false,s=0;while(n--){if(r[n]==="."){r.splice(n,1)}else if(r[n]===".."){r.splice(n,1);s++}else if(s){if(n===0)i=true;r.splice(n,1);s--}}if(i)r.unshift("");if(o==="."||o==="..")r.push("");return r.join("/")}function b(e,t,r){e=c(e);e=e.replace(s,"");if(!(this instanceof b)){return new b(e,t,r)}var i,a,f,l,p,y,w=h.slice(),C=typeof t,A=this,k=0;if("object"!==C&&"string"!==C){r=t;t=null}if(r&&"function"!==typeof r)r=o.parse;t=d(t);a=g(e||"",t);i=!a.protocol&&!a.slashes;A.slashes=a.slashes||i&&t.slashes;A.protocol=a.protocol||t.protocol||"";e=a.rest;if(a.protocol==="file:"&&(a.slashesCount!==2||u.test(e))||!a.slashes&&(a.protocol||a.slashesCount<2||!v(A.protocol))){w[3]=[/(.*)/,"pathname"]}for(;k - - - -Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9746.c7e86b432363dfd28caa.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9746.c7e86b432363dfd28caa.js deleted file mode 100644 index ee5732664b7cc8d3372782edd601a18916709d6e..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9746.c7e86b432363dfd28caa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9746],{89746:(t,e,n)=>{n.r(e);n.d(e,{stex:()=>a,stexMath:()=>i});function r(t){function e(t,e){t.cmdState.push(e)}function n(t){if(t.cmdState.length>0){return t.cmdState[t.cmdState.length-1]}else{return null}}function r(t){var e=t.cmdState.pop();if(e){e.closeBracket()}}function a(t){var e=t.cmdState;for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.name=="DEFAULT"){continue}return r}return{styleIdentifier:function(){return null}}}function i(t,e,n){return function(){this.name=t;this.bracketNo=0;this.style=e;this.styles=n;this.argument=null;this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null};this.openBracket=function(){this.bracketNo++;return"bracket"};this.closeBracket=function(){}}}var u={};u["importmodule"]=i("importmodule","tag",["string","builtin"]);u["documentclass"]=i("documentclass","tag",["","atom"]);u["usepackage"]=i("usepackage","tag",["atom"]);u["begin"]=i("begin","tag",["atom"]);u["end"]=i("end","tag",["atom"]);u["label"]=i("label","tag",["atom"]);u["ref"]=i("ref","tag",["atom"]);u["eqref"]=i("eqref","tag",["atom"]);u["cite"]=i("cite","tag",["atom"]);u["bibitem"]=i("bibitem","tag",["atom"]);u["Bibitem"]=i("Bibitem","tag",["atom"]);u["RBibitem"]=i("RBibitem","tag",["atom"]);u["DEFAULT"]=function(){this.name="DEFAULT";this.style="tag";this.styleIdentifier=this.openBracket=this.closeBracket=function(){}};function c(t,e){t.f=e}function f(t,r){var i;if(t.match(/^\\[a-zA-Z@\xc0-\u1fff\u2060-\uffff]+/)){var f=t.current().slice(1);i=u.hasOwnProperty(f)?u[f]:u["DEFAULT"];i=new i;e(r,i);c(r,s);return i.style}if(t.match(/^\\[$&%#{}_]/)){return"tag"}if(t.match(/^\\[,;!\/\\]/)){return"tag"}if(t.match("\\[")){c(r,(function(t,e){return o(t,e,"\\]")}));return"keyword"}if(t.match("\\(")){c(r,(function(t,e){return o(t,e,"\\)")}));return"keyword"}if(t.match("$$")){c(r,(function(t,e){return o(t,e,"$$")}));return"keyword"}if(t.match("$")){c(r,(function(t,e){return o(t,e,"$")}));return"keyword"}var m=t.next();if(m=="%"){t.skipToEnd();return"comment"}else if(m=="}"||m=="]"){i=n(r);if(i){i.closeBracket(m);c(r,s)}else{return"error"}return"bracket"}else if(m=="{"||m=="["){i=u["DEFAULT"];i=new i;e(r,i);return"bracket"}else if(/\d/.test(m)){t.eatWhile(/[\w.%]/);return"atom"}else{t.eatWhile(/[\w\-_]/);i=a(r);if(i.name=="begin"){i.argument=t.current()}return i.styleIdentifier()}}function o(t,e,n){if(t.eatSpace()){return null}if(n&&t.match(n)){c(e,f);return"keyword"}if(t.match(/^\\[a-zA-Z@]+/)){return"tag"}if(t.match(/^[a-zA-Z]+/)){return"variableName.special"}if(t.match(/^\\[$&%#{}_]/)){return"tag"}if(t.match(/^\\[,;!\/]/)){return"tag"}if(t.match(/^[\^_&]/)){return"tag"}if(t.match(/^[+\-<>|=,\/@!*:;'"`~#?]/)){return null}if(t.match(/^(\d+\.\d*|\d*\.\d+|\d+)/)){return"number"}var r=t.next();if(r=="{"||r=="}"||r=="["||r=="]"||r=="("||r==")"){return"bracket"}if(r=="%"){t.skipToEnd();return"comment"}return"error"}function s(t,e){var a=t.peek(),i;if(a=="{"||a=="["){i=n(e);i.openBracket(a);t.eat(a);c(e,f);return"bracket"}if(/[ \t\r]/.test(a)){t.eat(a);return null}c(e,f);r(e);return f(t,e)}return{name:"stex",startState:function(){var e=t?function(t,e){return o(t,e)}:f;return{cmdState:[],f:e}},copyState:function(t){return{cmdState:t.cmdState.slice(),f:t.f}},token:function(t,e){return e.f(t,e)},blankLine:function(t){t.f=f;t.cmdState.length=0},languageData:{commentTokens:{line:"%"}}}}const a=r(false);const i=r(true)}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9834b82ad26e2a37583d.woff2 b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9834b82ad26e2a37583d.woff2 deleted file mode 100644 index 2217164f0c05a385d7d0d83e030fdbae01e99304..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9834b82ad26e2a37583d.woff2 and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9881.37d189ff085cb3468683.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9881.37d189ff085cb3468683.js deleted file mode 100644 index bc9fa14700502135c5fe641b439781561282cc7a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9881.37d189ff085cb3468683.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9881],{79881:(t,i,e)=>{e.d(i,{diagram:()=>nt});var s=e(76261);var a=e(96049);var n=e(93113);var h=e(75905);var o=e(24982);var r=function(){var t=(0,h.K2)((function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e}),"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],a=[1,5],n=[1,6],o=[1,7],r=[1,5,10,12,14,16,18,19,21,23,34,35,36],l=[1,25],c=[1,26],u=[1,28],g=[1,29],x=[1,30],f=[1,31],p=[1,32],d=[1,33],y=[1,34],m=[1,35],b=[1,36],k=[1,37],A=[1,43],S=[1,42],w=[1,47],C=[1,50],_=[1,10,12,14,16,18,19,21,23,34,35,36],T=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],R=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],D=[1,64];var v={trace:(0,h.K2)((function t(){}),"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:(0,h.K2)((function t(i,e,s,a,n,h,o){var r=h.length-1;switch(n){case 5:a.setOrientation(h[r]);break;case 9:a.setDiagramTitle(h[r].text.trim());break;case 12:a.setLineData({text:"",type:"text"},h[r]);break;case 13:a.setLineData(h[r-1],h[r]);break;case 14:a.setBarData({text:"",type:"text"},h[r]);break;case 15:a.setBarData(h[r-1],h[r]);break;case 16:this.$=h[r].trim();a.setAccTitle(this.$);break;case 17:case 18:this.$=h[r].trim();a.setAccDescription(this.$);break;case 19:this.$=h[r-1];break;case 20:this.$=[Number(h[r-2]),...h[r]];break;case 21:this.$=[Number(h[r])];break;case 22:a.setXAxisTitle(h[r]);break;case 23:a.setXAxisTitle(h[r-1]);break;case 24:a.setXAxisTitle({type:"text",text:""});break;case 25:a.setXAxisBand(h[r]);break;case 26:a.setXAxisRangeData(Number(h[r-2]),Number(h[r]));break;case 27:this.$=h[r-1];break;case 28:this.$=[h[r-2],...h[r]];break;case 29:this.$=[h[r]];break;case 30:a.setYAxisTitle(h[r]);break;case 31:a.setYAxisTitle(h[r-1]);break;case 32:a.setYAxisTitle({type:"text",text:""});break;case 33:a.setYAxisRangeData(Number(h[r-2]),Number(h[r]));break;case 37:this.$={text:h[r],type:"text"};break;case 38:this.$={text:h[r],type:"text"};break;case 39:this.$={text:h[r],type:"markdown"};break;case 40:this.$=h[r];break;case 41:this.$=h[r-1]+""+h[r];break}}),"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,34:a,35:n,36:o}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,34:a,35:n,36:o}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:a,35:n,36:o}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(r,[2,34]),t(r,[2,35]),t(r,[2,36]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,34:a,35:n,36:o}),{1:[2,3]},t(r,[2,5]),t(i,[2,7],{4:22,34:a,35:n,36:o}),{11:23,37:24,38:l,39:c,40:27,41:u,42:g,43:x,44:f,45:p,46:d,47:y,48:m,49:b,50:k},{11:39,13:38,24:A,27:S,29:40,30:41,37:24,38:l,39:c,40:27,41:u,42:g,43:x,44:f,45:p,46:d,47:y,48:m,49:b,50:k},{11:45,15:44,27:w,33:46,37:24,38:l,39:c,40:27,41:u,42:g,43:x,44:f,45:p,46:d,47:y,48:m,49:b,50:k},{11:49,17:48,24:C,37:24,38:l,39:c,40:27,41:u,42:g,43:x,44:f,45:p,46:d,47:y,48:m,49:b,50:k},{11:52,17:51,24:C,37:24,38:l,39:c,40:27,41:u,42:g,43:x,44:f,45:p,46:d,47:y,48:m,49:b,50:k},{20:[1,53]},{22:[1,54]},t(_,[2,18]),{1:[2,2]},t(_,[2,8]),t(_,[2,9]),t(T,[2,37],{40:55,41:u,42:g,43:x,44:f,45:p,46:d,47:y,48:m,49:b,50:k}),t(T,[2,38]),t(T,[2,39]),t(R,[2,40]),t(R,[2,42]),t(R,[2,43]),t(R,[2,44]),t(R,[2,45]),t(R,[2,46]),t(R,[2,47]),t(R,[2,48]),t(R,[2,49]),t(R,[2,50]),t(R,[2,51]),t(_,[2,10]),t(_,[2,22],{30:41,29:56,24:A,27:S}),t(_,[2,24]),t(_,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:l,39:c,40:27,41:u,42:g,43:x,44:f,45:p,46:d,47:y,48:m,49:b,50:k},t(_,[2,11]),t(_,[2,30],{33:60,27:w}),t(_,[2,32]),{31:[1,61]},t(_,[2,12]),{17:62,24:C},{25:63,27:D},t(_,[2,14]),{17:65,24:C},t(_,[2,16]),t(_,[2,17]),t(R,[2,41]),t(_,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(_,[2,31]),{27:[1,69]},t(_,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(_,[2,15]),t(_,[2,26]),t(_,[2,27]),{11:59,32:72,37:24,38:l,39:c,40:27,41:u,42:g,43:x,44:f,45:p,46:d,47:y,48:m,49:b,50:k},t(_,[2,33]),t(_,[2,19]),{25:73,27:D},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:(0,h.K2)((function t(i,e){if(e.recoverable){this.trace(i)}else{var s=new Error(i);s.hash=e;throw s}}),"parseError"),parse:(0,h.K2)((function t(i){var e=this,s=[0],a=[],n=[null],o=[],r=this.table,l="",c=0,u=0,g=0,x=2,f=1;var p=o.slice.call(arguments,1);var d=Object.create(this.lexer);var y={yy:{}};for(var m in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,m)){y.yy[m]=this.yy[m]}}d.setInput(i,y.yy);y.yy.lexer=d;y.yy.parser=this;if(typeof d.yylloc=="undefined"){d.yylloc={}}var b=d.yylloc;o.push(b);var k=d.options&&d.options.ranges;if(typeof y.yy.parseError==="function"){this.parseError=y.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function A(t){s.length=s.length-2*t;n.length=n.length-t;o.length=o.length-t}(0,h.K2)(A,"popStack");function S(){var t;t=a.pop()||d.lex()||f;if(typeof t!=="number"){if(t instanceof Array){a=t;t=a.pop()}t=e.symbols_[t]||t}return t}(0,h.K2)(S,"lex");var w,C,_,T,R,D,v={},L,P,E,K;while(true){_=s[s.length-1];if(this.defaultActions[_]){T=this.defaultActions[_]}else{if(w===null||typeof w=="undefined"){w=S()}T=r[_]&&r[_][w]}if(typeof T==="undefined"||!T.length||!T[0]){var I="";K=[];for(L in r[_]){if(this.terminals_[L]&&L>x){K.push("'"+this.terminals_[L]+"'")}}if(d.showPosition){I="Parse error on line "+(c+1)+":\n"+d.showPosition()+"\nExpecting "+K.join(", ")+", got '"+(this.terminals_[w]||w)+"'"}else{I="Parse error on line "+(c+1)+": Unexpected "+(w==f?"end of input":"'"+(this.terminals_[w]||w)+"'")}this.parseError(I,{text:d.match,token:this.terminals_[w]||w,line:d.yylineno,loc:b,expected:K})}if(T[0]instanceof Array&&T.length>1){throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+w)}switch(T[0]){case 1:s.push(w);n.push(d.yytext);o.push(d.yylloc);s.push(T[1]);w=null;if(!C){u=d.yyleng;l=d.yytext;c=d.yylineno;b=d.yylloc;if(g>0){g--}}else{w=C;C=null}break;case 2:P=this.productions_[T[1]][1];v.$=n[n.length-P];v._$={first_line:o[o.length-(P||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(P||1)].first_column,last_column:o[o.length-1].last_column};if(k){v._$.range=[o[o.length-(P||1)].range[0],o[o.length-1].range[1]]}D=this.performAction.apply(v,[l,u,c,y.yy,T[1],n,o].concat(p));if(typeof D!=="undefined"){return D}if(P){s=s.slice(0,-1*P*2);n=n.slice(0,-1*P);o=o.slice(0,-1*P)}s.push(this.productions_[T[1]][0]);n.push(v.$);o.push(v._$);E=r[s[s.length-2]][s[s.length-1]];s.push(E);break;case 3:return true}}return true}),"parse")};var L=function(){var t={EOF:1,parseError:(0,h.K2)((function t(i,e){if(this.yy.parser){this.yy.parser.parseError(i,e)}else{throw new Error(i)}}),"parseError"),setInput:(0,h.K2)((function(t,i){this.yy=i||this.yy||{};this._input=t;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this}),"setInput"),input:(0,h.K2)((function(){var t=this._input[0];this.yytext+=t;this.yyleng++;this.offset++;this.match+=t;this.matched+=t;var i=t.match(/(?:\r\n?|\n).*/g);if(i){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return t}),"input"),unput:(0,h.K2)((function(t){var i=t.length;var e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-i);this.offset-=i;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(e.length-1){this.yylineno-=e.length-1}var a=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===s.length?this.yylloc.first_column:0)+s[s.length-e.length].length-e[0].length:this.yylloc.first_column-i};if(this.options.ranges){this.yylloc.range=[a[0],a[0]+this.yyleng-i]}this.yyleng=this.yytext.length;return this}),"unput"),more:(0,h.K2)((function(){this._more=true;return this}),"more"),reject:(0,h.K2)((function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this}),"reject"),less:(0,h.K2)((function(t){this.unput(this.match.slice(t))}),"less"),pastInput:(0,h.K2)((function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")}),"pastInput"),upcomingInput:(0,h.K2)((function(){var t=this.match;if(t.length<20){t+=this._input.substr(0,20-t.length)}return(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")}),"upcomingInput"),showPosition:(0,h.K2)((function(){var t=this.pastInput();var i=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"}),"showPosition"),test_match:(0,h.K2)((function(t,i){var e,s,a;if(this.options.backtrack_lexer){a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){a.yylloc.range=this.yylloc.range.slice(0)}}s=t[0].match(/(?:\r\n?|\n).*/g);if(s){this.yylineno+=s.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length};this.yytext+=t[0];this.match+=t[0];this.matches=t;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(t[0].length);this.matched+=t[0];e=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(e){return e}else if(this._backtrack){for(var n in a){this[n]=a[n]}return false}return false}),"test_match"),next:(0,h.K2)((function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var t,i,e,s;if(!this._more){this.yytext="";this.match=""}var a=this._currentRules();for(var n=0;ni[0].length)){i=e;s=n;if(this.options.backtrack_lexer){t=this.test_match(e,a[n]);if(t!==false){return t}else if(this._backtrack){i=false;continue}else{return false}}else if(!this.options.flex){break}}}if(i){t=this.test_match(i,a[s]);if(t!==false){return t}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}}),"next"),lex:(0,h.K2)((function t(){var i=this.next();if(i){return i}else{return this.lex()}}),"lex"),begin:(0,h.K2)((function t(i){this.conditionStack.push(i)}),"begin"),popState:(0,h.K2)((function t(){var i=this.conditionStack.length-1;if(i>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}}),"popState"),_currentRules:(0,h.K2)((function t(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}}),"_currentRules"),topState:(0,h.K2)((function t(i){i=this.conditionStack.length-1-Math.abs(i||0);if(i>=0){return this.conditionStack[i]}else{return"INITIAL"}}),"topState"),pushState:(0,h.K2)((function t(i){this.begin(i)}),"pushState"),stateStackSize:(0,h.K2)((function t(){return this.conditionStack.length}),"stateStackSize"),options:{"case-insensitive":true},performAction:(0,h.K2)((function t(i,e,s,a){var n=a;switch(s){case 0:break;case 1:break;case 2:this.popState();return 34;break;case 3:this.popState();return 34;break;case 4:return 34;break;case 5:break;case 6:return 10;break;case 7:this.pushState("acc_title");return 19;break;case 8:this.popState();return"acc_title_value";break;case 9:this.pushState("acc_descr");return 21;break;case 10:this.popState();return"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";break;case 14:return 5;break;case 15:return 8;break;case 16:this.pushState("axis_data");return"X_AXIS";break;case 17:this.pushState("axis_data");return"Y_AXIS";break;case 18:this.pushState("axis_band_data");return 24;break;case 19:return 31;break;case 20:this.pushState("data");return 16;break;case 21:this.pushState("data");return 18;break;case 22:this.pushState("data_inner");return 24;break;case 23:return 27;break;case 24:this.popState();return 26;break;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";break;case 29:return 24;break;case 30:return 26;break;case 31:return 43;break;case 32:return"COLON";break;case 33:return 44;break;case 34:return 28;break;case 35:return 45;break;case 36:return 46;break;case 37:return 48;break;case 38:return 50;break;case 39:return 47;break;case 40:return 41;break;case 41:return 49;break;case 42:return 42;break;case 43:break;case 44:return 35;break;case 45:return 36;break}}),"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:true},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:true},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:true},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:true},acc_descr_multiline:{rules:[12,13],inclusive:false},acc_descr:{rules:[10],inclusive:false},acc_title:{rules:[8],inclusive:false},title:{rules:[],inclusive:false},md_string:{rules:[],inclusive:false},string:{rules:[27,28],inclusive:false},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:true}}};return t}();v.lexer=L;function P(){this.yy={}}(0,h.K2)(P,"Parser");P.prototype=v;v.Parser=P;return new P}();r.parser=r;var l=r;function c(t){return t.type==="bar"}(0,h.K2)(c,"isBarPlot");function u(t){return t.type==="band"}(0,h.K2)(u,"isBandAxisData");function g(t){return t.type==="linear"}(0,h.K2)(g,"isLinearAxisData");var x=class{constructor(t){this.parentGroup=t}static{(0,h.K2)(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,i){if(!this.parentGroup){return{width:t.reduce(((t,i)=>Math.max(i.length,t)),0)*i,height:i}}const e={width:0,height:0};const a=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(const n of t){const t=(0,s.W6)(a,1,n);const h=t?t.width:n.length*i;const o=t?t.height:i;e.width=Math.max(e.width,h);e.height=Math.max(e.height,o)}a.remove();return e}};var f=.7;var p=.2;var d=class{constructor(t,i,e,s){this.axisConfig=t;this.title=i;this.textDimensionCalculator=e;this.axisThemeConfig=s;this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left";this.showTitle=false;this.showLabel=false;this.showTick=false;this.showAxisLine=false;this.outerPadding=0;this.titleTextHeight=0;this.labelTextHeight=0;this.range=[0,10];this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left"}static{(0,h.K2)(this,"BaseAxis")}setRange(t){this.range=t;if(this.axisPosition==="left"||this.axisPosition==="right"){this.boundingRect.height=t[1]-t[0]}else{this.boundingRect.width=t[1]-t[0]}this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t;this.setRange(this.range)}getTickDistance(){const t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map((t=>t.toString())),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){if(f*this.getTickDistance()>this.outerPadding*2){this.outerPadding=Math.floor(f*this.getTickDistance()/2)}this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth){i-=this.axisConfig.axisLineWidth;this.showAxisLine=true}if(this.axisConfig.showLabel){const e=this.getLabelDimension();const s=p*t.width;this.outerPadding=Math.min(e.width/2,s);const a=e.height+this.axisConfig.labelPadding*2;this.labelTextHeight=e.height;if(a<=i){i-=a;this.showLabel=true}}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength){this.showTick=true;i-=this.axisConfig.tickLength}if(this.axisConfig.showTitle&&this.title){const t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize);const e=t.height+this.axisConfig.titlePadding*2;this.titleTextHeight=t.height;if(e<=i){i-=e;this.showTitle=true}}this.boundingRect.width=t.width;this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth){i-=this.axisConfig.axisLineWidth;this.showAxisLine=true}if(this.axisConfig.showLabel){const e=this.getLabelDimension();const s=p*t.height;this.outerPadding=Math.min(e.height/2,s);const a=e.width+this.axisConfig.labelPadding*2;if(a<=i){i-=a;this.showLabel=true}}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength){this.showTick=true;i-=this.axisConfig.tickLength}if(this.axisConfig.showTitle&&this.title){const t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize);const e=t.height+this.axisConfig.titlePadding*2;this.titleTextHeight=t.height;if(e<=i){i-=e;this.showTitle=true}}this.boundingRect.width=t.width-i;this.boundingRect.height=t.height}calculateSpace(t){if(this.axisPosition==="left"||this.axisPosition==="right"){this.calculateSpaceIfDrawnVertical(t)}else{this.calculateSpaceIfDrawnHorizontally(t)}this.recalculateScale();return{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x;this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel){t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map((t=>({text:t.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(t),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"})))})}if(this.showTick){const i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map((t=>({path:`M ${i},${this.getScaleValue(t)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(t)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth})))})}if(this.showTitle){t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]})}return t}getDrawableElementsForBottomAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel){t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map((t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"})))})}if(this.showTick){const i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map((t=>({path:`M ${this.getScaleValue(t)},${i} L ${this.getScaleValue(t)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth})))})}if(this.showTitle){t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]})}return t}getDrawableElementsForTopAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel){t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map((t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"})))})}if(this.showTick){const i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map((t=>({path:`M ${this.getScaleValue(t)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(t)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth})))})}if(this.showTitle){t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]})}return t}getDrawableElements(){if(this.axisPosition==="left"){return this.getDrawableElementsForLeftAxis()}if(this.axisPosition==="right"){throw Error("Drawing of right axis is not implemented")}if(this.axisPosition==="bottom"){return this.getDrawableElementsForBottomAxis()}if(this.axisPosition==="top"){return this.getDrawableElementsForTopAxis()}return[]}};var y=class extends d{static{(0,h.K2)(this,"BandAxis")}constructor(t,i,e,s,a){super(t,s,a,i);this.categories=e;this.scale=(0,o.WH)().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=(0,o.WH)().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5);h.Rm.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}};var m=class extends d{static{(0,h.K2)(this,"LinearAxis")}constructor(t,i,e,s,a){super(t,s,a,i);this.domain=e;this.scale=(0,o.m4Y)().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const t=[...this.domain];if(this.axisPosition==="left"){t.reverse()}this.scale=(0,o.m4Y)().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}};function b(t,i,e,s){const a=new x(s);if(u(t)){return new y(i,e,t.categories,t.title,a)}return new m(i,e,[t.min,t.max],t.title,a)}(0,h.K2)(b,"getAxis");var k=class{constructor(t,i,e,s){this.textDimensionCalculator=t;this.chartConfig=i;this.chartData=e;this.chartThemeConfig=s;this.boundingRect={x:0,y:0,width:0,height:0};this.showChartTitle=false}static{(0,h.K2)(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x;this.boundingRect.y=t.y}calculateSpace(t){const i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize);const e=Math.max(i.width,t.width);const s=i.height+2*this.chartConfig.titlePadding;if(i.width<=e&&i.height<=s&&this.chartConfig.showTitle&&this.chartData.title){this.boundingRect.width=e;this.boundingRect.height=s;this.showChartTitle=true}return{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const t=[];if(this.showChartTitle){t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]})}return t}};function A(t,i,e,s){const a=new x(s);return new k(a,t,i,e)}(0,h.K2)(A,"getChartTitleComponent");var S=class{constructor(t,i,e,s,a){this.plotData=t;this.xAxis=i;this.yAxis=e;this.orientation=s;this.plotIndex=a}static{(0,h.K2)(this,"LinePlot")}getDrawableElement(){const t=this.plotData.data.map((t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]));let i;if(this.orientation==="horizontal"){i=(0,o.n8j)().y((t=>t[0])).x((t=>t[1]))(t)}else{i=(0,o.n8j)().x((t=>t[0])).y((t=>t[1]))(t)}if(!i){return[]}return[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:i,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]}};var w=class{constructor(t,i,e,s,a,n){this.barData=t;this.boundingRect=i;this.xAxis=e;this.yAxis=s;this.orientation=a;this.plotIndex=n}static{(0,h.K2)(this,"BarPlot")}getDrawableElement(){const t=this.barData.data.map((t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]));const i=.05;const e=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-i);const s=e/2;if(this.orientation==="horizontal"){return[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map((t=>({x:this.boundingRect.x,y:t[0]-s,height:e,width:t[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill})))}]}return[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map((t=>({x:t[0]-s,y:t[1],width:e,height:this.boundingRect.y+this.boundingRect.height-t[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill})))}]}};var C=class{constructor(t,i,e){this.chartConfig=t;this.chartData=i;this.chartThemeConfig=e;this.boundingRect={x:0,y:0,width:0,height:0}}static{(0,h.K2)(this,"BasePlot")}setAxes(t,i){this.xAxis=t;this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x;this.boundingRect.y=t.y}calculateSpace(t){this.boundingRect.width=t.width;this.boundingRect.height=t.height;return{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis)){throw Error("Axes must be passed to render Plots")}const t=[];for(const[i,e]of this.chartData.plots.entries()){switch(e.type){case"line":{const s=new S(e,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break;case"bar":{const s=new w(e,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break}}return t}};function _(t,i,e){return new C(t,i,e)}(0,h.K2)(_,"getPlotComponent");var T=class{constructor(t,i,e,s){this.chartConfig=t;this.chartData=i;this.componentStore={title:A(t,i,e,s),plot:_(t,i,e),xAxis:b(i.xAxis,t.xAxis,{titleColor:e.xAxisTitleColor,labelColor:e.xAxisLabelColor,tickColor:e.xAxisTickColor,axisLineColor:e.xAxisLineColor},s),yAxis:b(i.yAxis,t.yAxis,{titleColor:e.yAxisTitleColor,labelColor:e.yAxisLabelColor,tickColor:e.yAxisTickColor,axisLineColor:e.yAxisLineColor},s)}}static{(0,h.K2)(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width;let i=this.chartConfig.height;let e=0;let s=0;let a=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100);let n=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100);let h=this.componentStore.plot.calculateSpace({width:a,height:n});t-=h.width;i-=h.height;h=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i});s=h.height;i-=h.height;this.componentStore.xAxis.setAxisPosition("bottom");h=this.componentStore.xAxis.calculateSpace({width:t,height:i});i-=h.height;this.componentStore.yAxis.setAxisPosition("left");h=this.componentStore.yAxis.calculateSpace({width:t,height:i});e=h.width;t-=h.width;if(t>0){a+=t;t=0}if(i>0){n+=i;i=0}this.componentStore.plot.calculateSpace({width:a,height:n});this.componentStore.plot.setBoundingBoxXY({x:e,y:s});this.componentStore.xAxis.setRange([e,e+a]);this.componentStore.xAxis.setBoundingBoxXY({x:e,y:s+n});this.componentStore.yAxis.setRange([s,s+n]);this.componentStore.yAxis.setBoundingBoxXY({x:0,y:s});if(this.chartData.plots.some((t=>c(t)))){this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}}calculateHorizontalSpace(){let t=this.chartConfig.width;let i=this.chartConfig.height;let e=0;let s=0;let a=0;let n=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100);let h=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100);let o=this.componentStore.plot.calculateSpace({width:n,height:h});t-=o.width;i-=o.height;o=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i});e=o.height;i-=o.height;this.componentStore.xAxis.setAxisPosition("left");o=this.componentStore.xAxis.calculateSpace({width:t,height:i});t-=o.width;s=o.width;this.componentStore.yAxis.setAxisPosition("top");o=this.componentStore.yAxis.calculateSpace({width:t,height:i});i-=o.height;a=e+o.height;if(t>0){n+=t;t=0}if(i>0){h+=i;i=0}this.componentStore.plot.calculateSpace({width:n,height:h});this.componentStore.plot.setBoundingBoxXY({x:s,y:a});this.componentStore.yAxis.setRange([s,s+n]);this.componentStore.yAxis.setBoundingBoxXY({x:s,y:e});this.componentStore.xAxis.setRange([a,a+h]);this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a});if(this.chartData.plots.some((t=>c(t)))){this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}}calculateSpace(){if(this.chartConfig.chartOrientation==="horizontal"){this.calculateHorizontalSpace()}else{this.calculateVerticalSpace()}}getDrawableElement(){this.calculateSpace();const t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const i of Object.values(this.componentStore)){t.push(...i.getDrawableElements())}return t}};var R=class{static{(0,h.K2)(this,"XYChartBuilder")}static build(t,i,e,s){const a=new T(t,i,e,s);return a.getDrawableElement()}};var D=0;var v;var L=B();var P=M();var E=z();var K=P.plotColorPalette.split(",").map((t=>t.trim()));var I=false;var $=false;function M(){const t=(0,h.P$)();const i=(0,h.zj)();return(0,a.$t)(t.xyChart,i.themeVariables.xyChart)}(0,h.K2)(M,"getChartDefaultThemeConfig");function B(){const t=(0,h.zj)();return(0,a.$t)(h.UI.xyChart,t.xyChart)}(0,h.K2)(B,"getChartDefaultConfig");function z(){return{yAxis:{type:"linear",title:"",min:Infinity,max:-Infinity},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}(0,h.K2)(z,"getChartDefaultData");function W(t){const i=(0,h.zj)();return(0,h.jZ)(t.trim(),i)}(0,h.K2)(W,"textSanitizer");function O(t){v=t}(0,h.K2)(O,"setTmpSVGG");function F(t){if(t==="horizontal"){L.chartOrientation="horizontal"}else{L.chartOrientation="vertical"}}(0,h.K2)(F,"setOrientation");function N(t){E.xAxis.title=W(t.text)}(0,h.K2)(N,"setXAxisTitle");function V(t,i){E.xAxis={type:"linear",title:E.xAxis.title,min:t,max:i};I=true}(0,h.K2)(V,"setXAxisRangeData");function X(t){E.xAxis={type:"band",title:E.xAxis.title,categories:t.map((t=>W(t.text)))};I=true}(0,h.K2)(X,"setXAxisBand");function Y(t){E.yAxis.title=W(t.text)}(0,h.K2)(Y,"setYAxisTitle");function U(t,i){E.yAxis={type:"linear",title:E.yAxis.title,min:t,max:i};$=true}(0,h.K2)(U,"setYAxisRangeData");function H(t){const i=Math.min(...t);const e=Math.max(...t);const s=g(E.yAxis)?E.yAxis.min:Infinity;const a=g(E.yAxis)?E.yAxis.max:-Infinity;E.yAxis={type:"linear",title:E.yAxis.title,min:Math.min(s,i),max:Math.max(a,e)}}(0,h.K2)(H,"setYAxisRangeFromPlotData");function j(t){let i=[];if(t.length===0){return i}if(!I){const i=g(E.xAxis)?E.xAxis.min:Infinity;const e=g(E.xAxis)?E.xAxis.max:-Infinity;V(Math.min(i,1),Math.max(e,t.length))}if(!$){H(t)}if(u(E.xAxis)){i=E.xAxis.categories.map(((i,e)=>[i,t[e]]))}if(g(E.xAxis)){const e=E.xAxis.min;const s=E.xAxis.max;const a=(s-e)/(t.length-1);const n=[];for(let t=e;t<=s;t+=a){n.push(`${t}`)}i=n.map(((i,e)=>[i,t[e]]))}return i}(0,h.K2)(j,"transformDataWithoutCategory");function G(t){return K[t===0?0:t%K.length]}(0,h.K2)(G,"getPlotColorFromPalette");function Q(t,i){const e=j(i);E.plots.push({type:"line",strokeFill:G(D),strokeWidth:2,data:e});D++}(0,h.K2)(Q,"setLineData");function Z(t,i){const e=j(i);E.plots.push({type:"bar",fill:G(D),data:e});D++}(0,h.K2)(Z,"setBarData");function q(){if(E.plots.length===0){throw Error("No Plot to render, please provide a plot with some data")}E.title=(0,h.ab)();return R.build(L,E,P,v)}(0,h.K2)(q,"getDrawableElem");function J(){return P}(0,h.K2)(J,"getChartThemeConfig");function tt(){return L}(0,h.K2)(tt,"getChartConfig");var it=(0,h.K2)((function(){(0,h.IU)();D=0;L=B();E=z();P=M();K=P.plotColorPalette.split(",").map((t=>t.trim()));I=false;$=false}),"clear");var et={getDrawableElem:q,clear:it,setAccTitle:h.SV,getAccTitle:h.iN,setDiagramTitle:h.ke,getDiagramTitle:h.ab,getAccDescription:h.m7,setAccDescription:h.EI,setOrientation:F,setXAxisTitle:N,setXAxisRangeData:V,setXAxisBand:X,setYAxisTitle:Y,setYAxisRangeData:U,setLineData:Q,setBarData:Z,setTmpSVGG:O,getChartThemeConfig:J,getChartConfig:tt};var st=(0,h.K2)(((t,i,e,s)=>{const a=s.db;const o=a.getChartThemeConfig();const r=a.getChartConfig();function l(t){return t==="top"?"text-before-edge":"middle"}(0,h.K2)(l,"getDominantBaseLine");function c(t){return t==="left"?"start":t==="right"?"end":"middle"}(0,h.K2)(c,"getTextAnchor");function u(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}(0,h.K2)(u,"getTextTransformation");h.Rm.debug("Rendering xychart chart\n"+t);const g=(0,n.D)(i);const x=g.append("g").attr("class","main");const f=x.append("rect").attr("width",r.width).attr("height",r.height).attr("class","background");(0,h.a$)(g,r.height,r.width,true);g.attr("viewBox",`0 0 ${r.width} ${r.height}`);f.attr("fill",o.backgroundColor);a.setTmpSVGG(g.append("g").attr("class","mermaid-tmp-group"));const p=a.getDrawableElem();const d={};function y(t){let i=x;let e="";for(const[s]of t.entries()){let a=x;if(s>0&&d[e]){a=d[e]}e+=t[s];i=d[e];if(!i){i=d[e]=a.append("g").attr("class",t[s])}}return i}(0,h.K2)(y,"getGroup");for(const n of p){if(n.data.length===0){continue}const t=y(n.groupTexts);switch(n.type){case"rect":t.selectAll("rect").data(n.data).enter().append("rect").attr("x",(t=>t.x)).attr("y",(t=>t.y)).attr("width",(t=>t.width)).attr("height",(t=>t.height)).attr("fill",(t=>t.fill)).attr("stroke",(t=>t.strokeFill)).attr("stroke-width",(t=>t.strokeWidth));break;case"text":t.selectAll("text").data(n.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",(t=>t.fill)).attr("font-size",(t=>t.fontSize)).attr("dominant-baseline",(t=>l(t.verticalPos))).attr("text-anchor",(t=>c(t.horizontalPos))).attr("transform",(t=>u(t))).text((t=>t.text));break;case"path":t.selectAll("path").data(n.data).enter().append("path").attr("d",(t=>t.path)).attr("fill",(t=>t.fill?t.fill:"none")).attr("stroke",(t=>t.strokeFill)).attr("stroke-width",(t=>t.strokeWidth));break}}}),"draw");var at={draw:st};var nt={parser:l,db:et,renderer:at}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9890.75ea8024e2c1c49c89a3.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9890.75ea8024e2c1c49c89a3.js deleted file mode 100644 index 8c44382c53bee0638c767f8702247d932a3a7df2..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9890.75ea8024e2c1c49c89a3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9890],{19163:(t,e,r)=>{r.d(e,{S:()=>n});var a=r(75905);function n(t,e){if(t.accDescr){e.setAccDescription?.(t.accDescr)}if(t.accTitle){e.setAccTitle?.(t.accTitle)}if(t.title){e.setDiagramTitle?.(t.title)}}(0,a.K2)(n,"populateCommonDb")},13249:(t,e,r)=>{r.d(e,{m:()=>n});var a=r(75905);var n=class{constructor(t){this.init=t;this.records=this.init()}static{(0,a.K2)(this,"ImperativeState")}reset(){this.records=this.init()}}},99890:(t,e,r)=>{r.d(e,{diagram:()=>Mt});var a=r(19163);var n=r(13249);var o=r(96049);var s=r(75905);var c=r(24010);var i=r(24982);var m={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4};var d=s.UI.gitGraph;var h=(0,s.K2)((()=>{const t=(0,o.$t)({...d,...(0,s.zj)().gitGraph});return t}),"getConfig");var l=new n.m((()=>{const t=h();const e=t.mainBranchName;const r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}}));function g(){return(0,o.yT)({length:7})}(0,s.K2)(g,"getID");function p(t,e){const r=Object.create(null);return t.reduce(((t,a)=>{const n=e(a);if(!r[n]){r[n]=true;t.push(a)}return t}),[])}(0,s.K2)(p,"uniqBy");var f=(0,s.K2)((function(t){l.records.direction=t}),"setDirection");var $=(0,s.K2)((function(t){s.Rm.debug("options str",t);t=t?.trim();t=t||"{}";try{l.records.options=JSON.parse(t)}catch(e){s.Rm.error("error while parsing gitGraph options",e.message)}}),"setOptions");var y=(0,s.K2)((function(){return l.records.options}),"getOptions");var x=(0,s.K2)((function(t){let e=t.msg;let r=t.id;const a=t.type;let n=t.tags;s.Rm.info("commit",e,r,a,n);s.Rm.debug("Entering commit:",e,r,a,n);const o=h();r=s.Y2.sanitizeText(r,o);e=s.Y2.sanitizeText(e,o);n=n?.map((t=>s.Y2.sanitizeText(t,o)));const c={id:r?r:l.records.seq+"-"+g(),message:e,seq:l.records.seq++,type:a??m.NORMAL,tags:n??[],parents:l.records.head==null?[]:[l.records.head.id],branch:l.records.currBranch};l.records.head=c;s.Rm.info("main branch",o.mainBranchName);l.records.commits.set(c.id,c);l.records.branches.set(l.records.currBranch,c.id);s.Rm.debug("in pushCommit "+c.id)}),"commit");var u=(0,s.K2)((function(t){let e=t.name;const r=t.order;e=s.Y2.sanitizeText(e,h());if(l.records.branches.has(e)){throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`)}l.records.branches.set(e,l.records.head!=null?l.records.head.id:null);l.records.branchConfig.set(e,{name:e,order:r});v(e);s.Rm.debug("in createBranch")}),"branch");var b=(0,s.K2)((t=>{let e=t.branch;let r=t.id;const a=t.type;const n=t.tags;const o=h();e=s.Y2.sanitizeText(e,o);if(r){r=s.Y2.sanitizeText(r,o)}const c=l.records.branches.get(l.records.currBranch);const i=l.records.branches.get(e);const d=c?l.records.commits.get(c):void 0;const p=i?l.records.commits.get(i):void 0;if(d&&p&&d.branch===e){throw new Error(`Cannot merge branch '${e}' into itself.`)}if(l.records.currBranch===e){const t=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]};throw t}if(d===void 0||!d){const t=new Error(`Incorrect usage of "merge". Current branch (${l.records.currBranch})has no commits`);t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]};throw t}if(!l.records.branches.has(e)){const t=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]};throw t}if(p===void 0||!p){const t=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']};throw t}if(d===p){const t=new Error('Incorrect usage of "merge". Both branches have same head');t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]};throw t}if(r&&l.records.commits.has(r)){const t=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom Id");t.hash={text:`merge ${e} ${r} ${a} ${n?.join(" ")}`,token:`merge ${e} ${r} ${a} ${n?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${a} ${n?.join(" ")}`]};throw t}const f=i?i:"";const $={id:r||`${l.records.seq}-${g()}`,message:`merged branch ${e} into ${l.records.currBranch}`,seq:l.records.seq++,parents:l.records.head==null?[]:[l.records.head.id,f],branch:l.records.currBranch,type:m.MERGE,customType:a,customId:r?true:false,tags:n??[]};l.records.head=$;l.records.commits.set($.id,$);l.records.branches.set(l.records.currBranch,$.id);s.Rm.debug(l.records.branches);s.Rm.debug("in mergeBranch")}),"merge");var w=(0,s.K2)((function(t){let e=t.id;let r=t.targetId;let a=t.tags;let n=t.parent;s.Rm.debug("Entering cherryPick:",e,r,a);const o=h();e=s.Y2.sanitizeText(e,o);r=s.Y2.sanitizeText(r,o);a=a?.map((t=>s.Y2.sanitizeText(t,o)));n=s.Y2.sanitizeText(n,o);if(!e||!l.records.commits.has(e)){const t=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]};throw t}const c=l.records.commits.get(e);if(c===void 0||!c){throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided')}if(n&&!(Array.isArray(c.parents)&&c.parents.includes(n))){const t=new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");throw t}const i=c.branch;if(c.type===m.MERGE&&!n){const t=new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");throw t}if(!r||!l.records.commits.has(r)){if(i===l.records.currBranch){const t=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]};throw t}const t=l.records.branches.get(l.records.currBranch);if(t===void 0||!t){const t=new Error(`Incorrect usage of "cherry-pick". Current branch (${l.records.currBranch})has no commits`);t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]};throw t}const o=l.records.commits.get(t);if(o===void 0||!o){const t=new Error(`Incorrect usage of "cherry-pick". Current branch (${l.records.currBranch})has no commits`);t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]};throw t}const d={id:l.records.seq+"-"+g(),message:`cherry-picked ${c?.message} into ${l.records.currBranch}`,seq:l.records.seq++,parents:l.records.head==null?[]:[l.records.head.id,c.id],branch:l.records.currBranch,type:m.CHERRY_PICK,tags:a?a.filter(Boolean):[`cherry-pick:${c.id}${c.type===m.MERGE?`|parent:${n}`:""}`]};l.records.head=d;l.records.commits.set(d.id,d);l.records.branches.set(l.records.currBranch,d.id);s.Rm.debug(l.records.branches);s.Rm.debug("in cherryPick")}}),"cherryPick");var v=(0,s.K2)((function(t){t=s.Y2.sanitizeText(t,h());if(!l.records.branches.has(t)){const e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]};throw e}else{l.records.currBranch=t;const e=l.records.branches.get(l.records.currBranch);if(e===void 0||!e){l.records.head=null}else{l.records.head=l.records.commits.get(e)??null}}}),"checkout");function B(t,e,r){const a=t.indexOf(e);if(a===-1){t.push(r)}else{t.splice(a,1,r)}}(0,s.K2)(B,"upsert");function E(t){const e=t.reduce(((t,e)=>{if(t.seq>e.seq){return t}return e}),t[0]);let r="";t.forEach((function(t){if(t===e){r+="\t*"}else{r+="\t|"}}));const a=[r,e.id,e.seq];for(const n in l.records.branches){if(l.records.branches.get(n)===e.id){a.push(n)}}s.Rm.debug(a.join(" "));if(e.parents&&e.parents.length==2&&e.parents[0]&&e.parents[1]){const r=l.records.commits.get(e.parents[0]);B(t,e,r);if(e.parents[1]){t.push(l.records.commits.get(e.parents[1]))}}else if(e.parents.length==0){return}else{if(e.parents[0]){const r=l.records.commits.get(e.parents[0]);B(t,e,r)}}t=p(t,(t=>t.id));E(t)}(0,s.K2)(E,"prettyPrintCommitHistory");var C=(0,s.K2)((function(){s.Rm.debug(l.records.commits);const t=R()[0];E([t])}),"prettyPrint");var k=(0,s.K2)((function(){l.reset();(0,s.IU)()}),"clear");var L=(0,s.K2)((function(){const t=[...l.records.branchConfig.values()].map(((t,e)=>{if(t.order!==null&&t.order!==void 0){return t}return{...t,order:parseFloat(`0.${e}`)}})).sort(((t,e)=>(t.order??0)-(e.order??0))).map((({name:t})=>({name:t})));return t}),"getBranchesAsObjArray");var T=(0,s.K2)((function(){return l.records.branches}),"getBranches");var M=(0,s.K2)((function(){return l.records.commits}),"getCommits");var R=(0,s.K2)((function(){const t=[...l.records.commits.values()];t.forEach((function(t){s.Rm.debug(t.id)}));t.sort(((t,e)=>t.seq-e.seq));return t}),"getCommitsArray");var K=(0,s.K2)((function(){return l.records.currBranch}),"getCurrentBranch");var O=(0,s.K2)((function(){return l.records.direction}),"getDirection");var P=(0,s.K2)((function(){return l.records.head}),"getHead");var A={commitType:m,getConfig:h,setDirection:f,setOptions:$,getOptions:y,commit:x,branch:u,merge:b,cherryPick:w,checkout:v,prettyPrint:C,clear:k,getBranchesAsObjArray:L,getBranches:T,getCommits:M,getCommitsArray:R,getCurrentBranch:K,getDirection:O,getHead:P,setAccTitle:s.SV,getAccTitle:s.iN,getAccDescription:s.m7,setAccDescription:s.EI,setDiagramTitle:s.ke,getDiagramTitle:s.ab};var q=(0,s.K2)(((t,e)=>{(0,a.S)(t,e);if(t.dir){e.setDirection(t.dir)}for(const r of t.statements){I(r,e)}}),"populate");var I=(0,s.K2)(((t,e)=>{const r={Commit:(0,s.K2)((t=>e.commit(G(t))),"Commit"),Branch:(0,s.K2)((t=>e.branch(W(t))),"Branch"),Merge:(0,s.K2)((t=>e.merge(H(t))),"Merge"),Checkout:(0,s.K2)((t=>e.checkout(D(t))),"Checkout"),CherryPicking:(0,s.K2)((t=>e.cherryPick(N(t))),"CherryPicking")};const a=r[t.$type];if(a){a(t)}else{s.Rm.error(`Unknown statement type: ${t.$type}`)}}),"parseStatement");var G=(0,s.K2)((t=>{const e={id:t.id,msg:t.message??"",type:t.type!==void 0?m[t.type]:m.NORMAL,tags:t.tags??void 0};return e}),"parseCommit");var W=(0,s.K2)((t=>{const e={name:t.name,order:t.order??0};return e}),"parseBranch");var H=(0,s.K2)((t=>{const e={branch:t.branch,id:t.id??"",type:t.type!==void 0?m[t.type]:void 0,tags:t.tags??void 0};return e}),"parseMerge");var D=(0,s.K2)((t=>{const e=t.branch;return e}),"parseCheckout");var N=(0,s.K2)((t=>{const e={id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent};return e}),"parseCherryPicking");var _={parse:(0,s.K2)((async t=>{const e=await(0,c.qg)("gitGraph",t);s.Rm.debug(e);q(e,A)}),"parse")};if(void 0){const{it:t,expect:e,describe:r}=void 0;const a={commitType:m,setDirection:vi.fn(),commit:vi.fn(),branch:vi.fn(),merge:vi.fn(),cherryPick:vi.fn(),checkout:vi.fn()};r("GitGraph Parser",(()=>{t("should parse a commit statement",(()=>{const t={$type:"Commit",id:"1",message:"test",tags:["tag1","tag2"],type:"NORMAL"};I(t,a);e(a.commit).toHaveBeenCalledWith({id:"1",msg:"test",tags:["tag1","tag2"],type:0})}));t("should parse a branch statement",(()=>{const t={$type:"Branch",name:"newBranch",order:1};I(t,a);e(a.branch).toHaveBeenCalledWith({name:"newBranch",order:1})}));t("should parse a checkout statement",(()=>{const t={$type:"Checkout",branch:"newBranch"};I(t,a);e(a.checkout).toHaveBeenCalledWith("newBranch")}));t("should parse a merge statement",(()=>{const t={$type:"Merge",branch:"newBranch",id:"1",tags:["tag1","tag2"],type:"NORMAL"};I(t,a);e(a.merge).toHaveBeenCalledWith({branch:"newBranch",id:"1",tags:["tag1","tag2"],type:0})}));t("should parse a cherry picking statement",(()=>{const t={$type:"CherryPicking",id:"1",tags:["tag1","tag2"],parent:"2"};I(t,a);e(a.cherryPick).toHaveBeenCalledWith({id:"1",targetId:"",parent:"2",tags:["tag1","tag2"]})}));t("should parse a langium generated gitGraph ast",(()=>{const t={$type:"GitGraph",statements:[]};const r={$type:"GitGraph",statements:[{$container:t,$type:"Commit",id:"1",message:"test",tags:["tag1","tag2"],type:"NORMAL"},{$container:t,$type:"Branch",name:"newBranch",order:1},{$container:t,$type:"Merge",branch:"newBranch",id:"1",tags:["tag1","tag2"],type:"NORMAL"},{$container:t,$type:"Checkout",branch:"newBranch"},{$container:t,$type:"CherryPicking",id:"1",tags:["tag1","tag2"],parent:"2"}]};q(r,a);e(a.commit).toHaveBeenCalledWith({id:"1",msg:"test",tags:["tag1","tag2"],type:0});e(a.branch).toHaveBeenCalledWith({name:"newBranch",order:1});e(a.merge).toHaveBeenCalledWith({branch:"newBranch",id:"1",tags:["tag1","tag2"],type:0});e(a.checkout).toHaveBeenCalledWith("newBranch")}))}))}var S=(0,s.D7)();var z=S?.gitGraph;var Y=10;var j=40;var Z=4;var F=2;var U=8;var V=new Map;var J=new Map;var Q=30;var X=new Map;var tt=[];var et=0;var rt="LR";var at=(0,s.K2)((()=>{V.clear();J.clear();X.clear();et=0;tt=[];rt="LR"}),"clear");var nt=(0,s.K2)((t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");const r=typeof t==="string"?t.split(/\\n|\n|/gi):t;r.forEach((t=>{const r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve");r.setAttribute("dy","1em");r.setAttribute("x","0");r.setAttribute("class","row");r.textContent=t.trim();e.appendChild(r)}));return e}),"drawText");var ot=(0,s.K2)((t=>{let e;let r;let a;if(rt==="BT"){r=(0,s.K2)(((t,e)=>t<=e),"comparisonFunc");a=Infinity}else{r=(0,s.K2)(((t,e)=>t>=e),"comparisonFunc");a=0}t.forEach((t=>{const n=rt==="TB"||rt=="BT"?J.get(t)?.y:J.get(t)?.x;if(n!==void 0&&r(n,a)){e=t;a=n}}));return e}),"findClosestParent");var st=(0,s.K2)((t=>{let e="";let r=Infinity;t.forEach((t=>{const a=J.get(t).y;if(a<=r){e=t;r=a}}));return e||void 0}),"findClosestParentBT");var ct=(0,s.K2)(((t,e,r)=>{let a=r;let n=r;const o=[];t.forEach((t=>{const r=e.get(t);if(!r){throw new Error(`Commit not found for key ${t}`)}if(r.parents.length){a=mt(r);n=Math.max(a,n)}else{o.push(r)}dt(r,a)}));a=n;o.forEach((t=>{ht(t,a,r)}));t.forEach((t=>{const r=e.get(t);if(r?.parents.length){const t=st(r.parents);a=J.get(t).y-j;if(a<=n){n=a}const e=V.get(r.branch).pos;const o=a-Y;J.set(r.id,{x:e,y:o})}}))}),"setParallelBTPos");var it=(0,s.K2)((t=>{const e=ot(t.parents.filter((t=>t!==null)));if(!e){throw new Error(`Closest parent not found for commit ${t.id}`)}const r=J.get(e)?.y;if(r===void 0){throw new Error(`Closest parent position not found for commit ${t.id}`)}return r}),"findClosestParentPos");var mt=(0,s.K2)((t=>{const e=it(t);return e+j}),"calculateCommitPosition");var dt=(0,s.K2)(((t,e)=>{const r=V.get(t.branch);if(!r){throw new Error(`Branch not found for commit ${t.id}`)}const a=r.pos;const n=e+Y;J.set(t.id,{x:a,y:n});return{x:a,y:n}}),"setCommitPosition");var ht=(0,s.K2)(((t,e,r)=>{const a=V.get(t.branch);if(!a){throw new Error(`Branch not found for commit ${t.id}`)}const n=e+r;const o=a.pos;J.set(t.id,{x:o,y:n})}),"setRootPosition");var lt=(0,s.K2)(((t,e,r,a,n,o)=>{if(o===m.HIGHLIGHT){t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${n%U} ${a}-outer`);t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${n%U} ${a}-inner`)}else if(o===m.CHERRY_PICK){t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} ${a}`);t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${a}`);t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${a}`);t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${a}`);t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${a}`)}else{const s=t.append("circle");s.attr("cx",r.x);s.attr("cy",r.y);s.attr("r",e.type===m.MERGE?9:10);s.attr("class",`commit ${e.id} commit${n%U}`);if(o===m.MERGE){const o=t.append("circle");o.attr("cx",r.x);o.attr("cy",r.y);o.attr("r",6);o.attr("class",`commit ${a} ${e.id} commit${n%U}`)}if(o===m.REVERSE){const o=t.append("path");o.attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${a} ${e.id} commit${n%U}`)}}}),"drawCommitBullet");var gt=(0,s.K2)(((t,e,r,a)=>{if(e.type!==m.CHERRY_PICK&&(e.customId&&e.type===m.MERGE||e.type!==m.MERGE)&&z?.showCommitLabel){const n=t.append("g");const o=n.insert("rect").attr("class","commit-label-bkg");const s=n.append("text").attr("x",a).attr("y",r.y+25).attr("class","commit-label").text(e.id);const c=s.node()?.getBBox();if(c){o.attr("x",r.posWithOffset-c.width/2-F).attr("y",r.y+13.5).attr("width",c.width+2*F).attr("height",c.height+2*F);if(rt==="TB"||rt==="BT"){o.attr("x",r.x-(c.width+4*Z+5)).attr("y",r.y-12);s.attr("x",r.x-(c.width+4*Z)).attr("y",r.y+c.height-12)}else{s.attr("x",r.posWithOffset-c.width/2)}if(z.rotateCommitLabel){if(rt==="TB"||rt==="BT"){s.attr("transform","rotate(-45, "+r.x+", "+r.y+")");o.attr("transform","rotate(-45, "+r.x+", "+r.y+")")}else{const t=-7.5-(c.width+10)/25*9.5;const e=10+c.width/25*8.5;n.attr("transform","translate("+t+", "+e+") rotate(-45, "+a+", "+r.y+")")}}}}}),"drawCommitLabel");var pt=(0,s.K2)(((t,e,r,a)=>{if(e.tags.length>0){let n=0;let o=0;let s=0;const c=[];for(const a of e.tags.reverse()){const e=t.insert("polygon");const i=t.append("circle");const m=t.append("text").attr("y",r.y-16-n).attr("class","tag-label").text(a);const d=m.node()?.getBBox();if(!d){throw new Error("Tag bbox not found")}o=Math.max(o,d.width);s=Math.max(s,d.height);m.attr("x",r.posWithOffset-d.width/2);c.push({tag:m,hole:i,rect:e,yOffset:n});n+=20}for(const{tag:t,hole:e,rect:i,yOffset:m}of c){const n=s/2;const c=r.y-19.2-m;i.attr("class","tag-label-bkg").attr("points",`\n ${a-o/2-Z/2},${c+F} \n ${a-o/2-Z/2},${c-F}\n ${r.posWithOffset-o/2-Z},${c-n-F}\n ${r.posWithOffset+o/2+Z},${c-n-F}\n ${r.posWithOffset+o/2+Z},${c+n+F}\n ${r.posWithOffset-o/2-Z},${c+n+F}`);e.attr("cy",c).attr("cx",a-o/2+Z/2).attr("r",1.5).attr("class","tag-hole");if(rt==="TB"||rt==="BT"){const s=a+m;i.attr("class","tag-label-bkg").attr("points",`\n ${r.x},${s+2}\n ${r.x},${s-2}\n ${r.x+Y},${s-n-2}\n ${r.x+Y+o+4},${s-n-2}\n ${r.x+Y+o+4},${s+n+2}\n ${r.x+Y},${s+n+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+a+")");e.attr("cx",r.x+Z/2).attr("cy",s).attr("transform","translate(12,12) rotate(45, "+r.x+","+a+")");t.attr("x",r.x+5).attr("y",s+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+a+")")}}}}),"drawCommitTags");var ft=(0,s.K2)((t=>{const e=t.customType??t.type;switch(e){case m.NORMAL:return"commit-normal";case m.REVERSE:return"commit-reverse";case m.HIGHLIGHT:return"commit-highlight";case m.MERGE:return"commit-merge";case m.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}}),"getCommitClassType");var $t=(0,s.K2)(((t,e,r,a)=>{const n={x:0,y:0};if(t.parents.length>0){const r=ot(t.parents);if(r){const o=a.get(r)??n;if(e==="TB"){return o.y+j}else if(e==="BT"){const e=a.get(t.id)??n;return e.y-j}else{return o.x+j}}}else{if(e==="TB"){return Q}else if(e==="BT"){const e=a.get(t.id)??n;return e.y-j}else{return 0}}return 0}),"calculatePosition");var yt=(0,s.K2)(((t,e,r)=>{const a=rt==="BT"&&r?e:e+Y;const n=rt==="TB"||rt==="BT"?a:V.get(t.branch)?.pos;const o=rt==="TB"||rt==="BT"?V.get(t.branch)?.pos:a;if(o===void 0||n===void 0){throw new Error(`Position were undefined for commit ${t.id}`)}return{x:o,y:n,posWithOffset:a}}),"getCommitPosition");var xt=(0,s.K2)(((t,e,r)=>{if(!z){throw new Error("GitGraph config not found")}const a=t.append("g").attr("class","commit-bullets");const n=t.append("g").attr("class","commit-labels");let o=rt==="TB"||rt==="BT"?Q:0;const c=[...e.keys()];const i=z?.parallelCommits??false;const m=(0,s.K2)(((t,r)=>{const a=e.get(t)?.seq;const n=e.get(r)?.seq;return a!==void 0&&n!==void 0?a-n:0}),"sortKeys");let d=c.sort(m);if(rt==="BT"){if(i){ct(d,e,o)}d=d.reverse()}d.forEach((t=>{const s=e.get(t);if(!s){throw new Error(`Commit not found for key ${t}`)}if(i){o=$t(s,rt,o,J)}const c=yt(s,o,i);if(r){const t=ft(s);const e=s.customType??s.type;const r=V.get(s.branch)?.index??0;lt(a,s,c,t,r,e);gt(n,s,c,o);pt(n,s,c,o)}if(rt==="TB"||rt==="BT"){J.set(s.id,{x:c.x,y:c.posWithOffset})}else{J.set(s.id,{x:c.posWithOffset,y:c.y})}o=rt==="BT"&&i?o+j:o+j+Y;if(o>et){et=o}}))}),"drawCommits");var ut=(0,s.K2)(((t,e,r,a,n)=>{const o=rt==="TB"||rt==="BT"?r.xt.branch===c),"isOnBranchToGetCurve");const m=(0,s.K2)((r=>r.seq>t.seq&&r.seqm(t)&&i(t)))}),"shouldRerouteArrow");var bt=(0,s.K2)(((t,e,r=0)=>{const a=t+Math.abs(t-e)/2;if(r>5){return a}const n=tt.every((t=>Math.abs(t-a)>=10));if(n){tt.push(a);return a}const o=Math.abs(t-e);return bt(t,e-o/5,r+1)}),"findLane");var wt=(0,s.K2)(((t,e,r,a)=>{const n=J.get(e.id);const o=J.get(r.id);if(n===void 0||o===void 0){throw new Error(`Commit positions not found for commits ${e.id} and ${r.id}`)}const s=ut(e,r,n,o,a);let c="";let i="";let d=0;let h=0;let l=V.get(r.branch)?.index;if(r.type===m.MERGE&&e.id!==r.parents[0]){l=V.get(e.branch)?.index}let g;if(s){c="A 10 10, 0, 0, 0,";i="A 10 10, 0, 0, 1,";d=10;h=10;const t=n.yo.x){c="A 20 20, 0, 0, 0,";i="A 20 20, 0, 0, 1,";d=20;h=20;if(r.type===m.MERGE&&e.id!==r.parents[0]){g=`M ${n.x} ${n.y} L ${n.x} ${o.y-d} ${i} ${n.x-h} ${o.y} L ${o.x} ${o.y}`}else{g=`M ${n.x} ${n.y} L ${o.x+d} ${n.y} ${c} ${o.x} ${n.y+h} L ${o.x} ${o.y}`}}if(n.x===o.x){g=`M ${n.x} ${n.y} L ${o.x} ${o.y}`}}else if(rt==="BT"){if(n.xo.x){c="A 20 20, 0, 0, 0,";i="A 20 20, 0, 0, 1,";d=20;h=20;if(r.type===m.MERGE&&e.id!==r.parents[0]){g=`M ${n.x} ${n.y} L ${n.x} ${o.y+d} ${c} ${n.x-h} ${o.y} L ${o.x} ${o.y}`}else{g=`M ${n.x} ${n.y} L ${o.x-d} ${n.y} ${c} ${o.x} ${n.y-h} L ${o.x} ${o.y}`}}if(n.x===o.x){g=`M ${n.x} ${n.y} L ${o.x} ${o.y}`}}else{if(n.yo.y){if(r.type===m.MERGE&&e.id!==r.parents[0]){g=`M ${n.x} ${n.y} L ${o.x-d} ${n.y} ${c} ${o.x} ${n.y-h} L ${o.x} ${o.y}`}else{g=`M ${n.x} ${n.y} L ${n.x} ${o.y+d} ${i} ${n.x+h} ${o.y} L ${o.x} ${o.y}`}}if(n.y===o.y){g=`M ${n.x} ${n.y} L ${o.x} ${o.y}`}}}if(g===void 0){throw new Error("Line definition not found")}t.append("path").attr("d",g).attr("class","arrow arrow"+l%U)}),"drawArrow");var vt=(0,s.K2)(((t,e)=>{const r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach((t=>{const a=e.get(t);if(a.parents&&a.parents.length>0){a.parents.forEach((t=>{wt(r,e.get(t),a,e)}))}}))}),"drawArrows");var Bt=(0,s.K2)(((t,e)=>{const r=t.append("g");e.forEach(((t,e)=>{const a=e%U;const n=V.get(t.name)?.pos;if(n===void 0){throw new Error(`Position not found for branch ${t.name}`)}const o=r.append("line");o.attr("x1",0);o.attr("y1",n);o.attr("x2",et);o.attr("y2",n);o.attr("class","branch branch"+a);if(rt==="TB"){o.attr("y1",Q);o.attr("x1",n);o.attr("y2",et);o.attr("x2",n)}else if(rt==="BT"){o.attr("y1",et);o.attr("x1",n);o.attr("y2",Q);o.attr("x2",n)}tt.push(n);const s=t.name;const c=nt(s);const i=r.insert("rect");const m=r.insert("g").attr("class","branchLabel");const d=m.insert("g").attr("class","label branch-label"+a);d.node().appendChild(c);const h=c.getBBox();i.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-h.width-4-(z?.rotateCommitLabel===true?30:0)).attr("y",-h.height/2+8).attr("width",h.width+18).attr("height",h.height+4);d.attr("transform","translate("+(-h.width-14-(z?.rotateCommitLabel===true?30:0))+", "+(n-h.height/2-1)+")");if(rt==="TB"){i.attr("x",n-h.width/2-10).attr("y",0);d.attr("transform","translate("+(n-h.width/2-5)+", 0)")}else if(rt==="BT"){i.attr("x",n-h.width/2-10).attr("y",et);d.attr("transform","translate("+(n-h.width/2-5)+", "+et+")")}else{i.attr("transform","translate(-19, "+(n-h.height/2)+")")}}))}),"drawBranches");var Et=(0,s.K2)((function(t,e,r,a,n){V.set(t,{pos:e,index:r});e+=50+(n?40:0)+(rt==="TB"||rt==="BT"?a.width/2:0);return e}),"setBranchPosition");var Ct=(0,s.K2)((function(t,e,r,a){at();s.Rm.debug("in gitgraph renderer",t+"\n","id:",e,r);if(!z){throw new Error("GitGraph config not found")}const n=z.rotateCommitLabel??false;const c=a.db;X=c.getCommits();const m=c.getBranchesAsObjArray();rt=c.getDirection();const d=(0,i.Ltv)(`[id="${e}"]`);let h=0;m.forEach(((t,e)=>{const r=nt(t.name);const a=d.append("g");const o=a.insert("g").attr("class","branchLabel");const s=o.insert("g").attr("class","label branch-label");s.node()?.appendChild(r);const c=r.getBBox();h=Et(t.name,h,e,c,n);s.remove();o.remove();a.remove()}));xt(d,X,false);if(z.showBranches){Bt(d,m)}vt(d,X);xt(d,X,true);o._K.insertTitle(d,"gitTitleText",z.titleTopMargin??0,c.getDiagramTitle());(0,s.mj)(void 0,d,z.diagramPadding,z.useMaxWidth)}),"draw");var kt={draw:Ct};if(void 0){const{it:t,expect:e,describe:r}=void 0;r("drawText",(()=>{t("should drawText",(()=>{const t=nt("main");e(t).toBeDefined();e(t.children[0].innerHTML).toBe("main")}))}));r("branchPosition",(()=>{const r={x:0,y:0,width:10,height:10,top:0,right:0,bottom:0,left:0,toJSON:(0,s.K2)((()=>""),"toJSON")};t("should setBranchPositions LR with two branches",(()=>{rt="LR";const t=Et("main",0,0,r,true);e(t).toBe(90);e(V.get("main")).toEqual({pos:0,index:0});const a=Et("develop",t,1,r,true);e(a).toBe(180);e(V.get("develop")).toEqual({pos:t,index:1})}));t("should setBranchPositions TB with two branches",(()=>{rt="TB";r.width=34.9921875;const t=Et("main",0,0,r,true);e(t).toBe(107.49609375);e(V.get("main")).toEqual({pos:0,index:0});r.width=56.421875;const a=Et("develop",t,1,r,true);e(a).toBe(225.70703125);e(V.get("develop")).toEqual({pos:t,index:1})}))}));r("commitPosition",(()=>{const a=new Map([["commitZero",{id:"ZERO",message:"",seq:0,type:m.NORMAL,tags:[],parents:[],branch:"main"}],["commitA",{id:"A",message:"",seq:1,type:m.NORMAL,tags:[],parents:["ZERO"],branch:"feature"}],["commitB",{id:"B",message:"",seq:2,type:m.NORMAL,tags:[],parents:["A"],branch:"feature"}],["commitM",{id:"M",message:"merged branch feature into main",seq:3,type:m.MERGE,tags:[],parents:["ZERO","B"],branch:"main",customId:true}],["commitC",{id:"C",message:"",seq:4,type:m.NORMAL,tags:[],parents:["ZERO"],branch:"release"}],["commit5_8928ea0",{id:"5-8928ea0",message:"cherry-picked [object Object] into release",seq:5,type:m.CHERRY_PICK,tags:[],parents:["C","M"],branch:"release"}],["commitD",{id:"D",message:"",seq:6,type:m.NORMAL,tags:[],parents:["5-8928ea0"],branch:"release"}],["commit7_ed848ba",{id:"7-ed848ba",message:"cherry-picked [object Object] into release",seq:7,type:m.CHERRY_PICK,tags:[],parents:["D","M"],branch:"release"}]]);let n=0;V.set("main",{pos:0,index:0});V.set("feature",{pos:107.49609375,index:1});V.set("release",{pos:224.03515625,index:2});r("TB",(()=>{n=30;rt="TB";const r=new Map([["commitZero",{x:0,y:40,posWithOffset:40}],["commitA",{x:107.49609375,y:90,posWithOffset:90}],["commitB",{x:107.49609375,y:140,posWithOffset:140}],["commitM",{x:0,y:190,posWithOffset:190}],["commitC",{x:224.03515625,y:240,posWithOffset:240}],["commit5_8928ea0",{x:224.03515625,y:290,posWithOffset:290}],["commitD",{x:224.03515625,y:340,posWithOffset:340}],["commit7_ed848ba",{x:224.03515625,y:390,posWithOffset:390}]]);a.forEach(((a,o)=>{t(`should give the correct position for commit ${o}`,(()=>{const t=yt(a,n,false);e(t).toEqual(r.get(o));n+=50}))}))}));r("LR",(()=>{let r=30;rt="LR";const n=new Map([["commitZero",{x:0,y:40,posWithOffset:40}],["commitA",{x:107.49609375,y:90,posWithOffset:90}],["commitB",{x:107.49609375,y:140,posWithOffset:140}],["commitM",{x:0,y:190,posWithOffset:190}],["commitC",{x:224.03515625,y:240,posWithOffset:240}],["commit5_8928ea0",{x:224.03515625,y:290,posWithOffset:290}],["commitD",{x:224.03515625,y:340,posWithOffset:340}],["commit7_ed848ba",{x:224.03515625,y:390,posWithOffset:390}]]);a.forEach(((a,o)=>{t(`should give the correct position for commit ${o}`,(()=>{const t=yt(a,r,false);e(t).toEqual(n.get(o));r+=50}))}))}));r("getCommitClassType",(()=>{const r=new Map([["commitZero","commit-normal"],["commitA","commit-normal"],["commitB","commit-normal"],["commitM","commit-merge"],["commitC","commit-normal"],["commit5_8928ea0","commit-cherry-pick"],["commitD","commit-normal"],["commit7_ed848ba","commit-cherry-pick"]]);a.forEach(((a,n)=>{t(`should give the correct class type for commit ${n}`,(()=>{const t=ft(a);e(t).toBe(r.get(n))}))}))}))}));r("building BT parallel commit diagram",(()=>{const r=new Map([["1-abcdefg",{id:"1-abcdefg",message:"",seq:0,type:0,tags:[],parents:[],branch:"main"}],["2-abcdefg",{id:"2-abcdefg",message:"",seq:1,type:0,tags:[],parents:["1-abcdefg"],branch:"main"}],["3-abcdefg",{id:"3-abcdefg",message:"",seq:2,type:0,tags:[],parents:["2-abcdefg"],branch:"develop"}],["4-abcdefg",{id:"4-abcdefg",message:"",seq:3,type:0,tags:[],parents:["3-abcdefg"],branch:"develop"}],["5-abcdefg",{id:"5-abcdefg",message:"",seq:4,type:0,tags:[],parents:["2-abcdefg"],branch:"feature"}],["6-abcdefg",{id:"6-abcdefg",message:"",seq:5,type:0,tags:[],parents:["5-abcdefg"],branch:"feature"}],["7-abcdefg",{id:"7-abcdefg",message:"",seq:6,type:0,tags:[],parents:["2-abcdefg"],branch:"main"}],["8-abcdefg",{id:"8-abcdefg",message:"",seq:7,type:0,tags:[],parents:["7-abcdefg"],branch:"main"}]]);const a=new Map([["1-abcdefg",{x:0,y:40}],["2-abcdefg",{x:0,y:90}],["3-abcdefg",{x:107.49609375,y:140}],["4-abcdefg",{x:107.49609375,y:190}],["5-abcdefg",{x:225.70703125,y:140}],["6-abcdefg",{x:225.70703125,y:190}],["7-abcdefg",{x:0,y:140}],["8-abcdefg",{x:0,y:190}]]);const n=new Map([["1-abcdefg",{x:0,y:210}],["2-abcdefg",{x:0,y:160}],["3-abcdefg",{x:107.49609375,y:110}],["4-abcdefg",{x:107.49609375,y:60}],["5-abcdefg",{x:225.70703125,y:110}],["6-abcdefg",{x:225.70703125,y:60}],["7-abcdefg",{x:0,y:110}],["8-abcdefg",{x:0,y:60}]]);const o=new Map([["1-abcdefg",30],["2-abcdefg",80],["3-abcdefg",130],["4-abcdefg",180],["5-abcdefg",130],["6-abcdefg",180],["7-abcdefg",130],["8-abcdefg",180]]);const s=[...a.keys()];t("should get the correct commit position and current position",(()=>{rt="BT";let t=30;J.clear();V.clear();V.set("main",{pos:0,index:0});V.set("develop",{pos:107.49609375,index:1});V.set("feature",{pos:225.70703125,index:2});z.parallelCommits=true;r.forEach(((r,n)=>{if(r.parents.length>0){t=mt(r)}const s=dt(r,t);e(s).toEqual(a.get(n));e(t).toEqual(o.get(n))}))}));t("should get the correct commit position after parallel commits",(()=>{J.clear();V.clear();rt="BT";const t=30;J.clear();V.clear();V.set("main",{pos:0,index:0});V.set("develop",{pos:107.49609375,index:1});V.set("feature",{pos:225.70703125,index:2});ct(s,r,t);s.forEach((t=>{const r=J.get(t);e(r).toEqual(n.get(t))}))}))}));z.parallelCommits=false;t("add",(()=>{J.set("parent1",{x:1,y:1});J.set("parent2",{x:2,y:2});J.set("parent3",{x:3,y:3});rt="LR";const t=["parent1","parent2","parent3"];const r=ot(t);e(r).toBe("parent3");J.clear()}))}var Lt=(0,s.K2)((t=>`\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0,1,2,3,4,5,6,7].map((e=>`\n .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; }\n .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; }\n .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; }\n .label${e} { fill: ${t["git"+e]}; }\n .arrow${e} { stroke: ${t["git"+e]}; }\n `)).join("\n")}\n\n .branch {\n stroke-width: 1;\n stroke: ${t.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};}\n .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};}\n .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; }\n .tag-hole { fill: ${t.textColor}; }\n\n .commit-merge {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n .commit-reverse {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n`),"getStyles");var Tt=Lt;var Mt={parser:_,db:A,renderer:kt,styles:Tt}}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9892.6d289e7baed8c64d88e2.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9892.6d289e7baed8c64d88e2.js deleted file mode 100644 index a4f37cceddb3da50abf365d55550002e3281c5ed..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9892.6d289e7baed8c64d88e2.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 9892.6d289e7baed8c64d88e2.js.LICENSE.txt */ -"use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[9892],{58488:u=>{const e={mode:"lazy"};u.exports=e},9128:(u,e,r)=>{const d=r(58488);const a=r(62545);const t=r(34999);const n=new WeakMap;function f(u){return d.mode==="spec-compliant"?c(this,u):i(this,u)}function i(u,e){const r=u.lastIndex;const d=a.call(u,e);if(d===null)return null;let t;Object.defineProperty(d,"indices",{enumerable:true,configurable:true,get(){if(t===undefined){const{measurementRegExp:n,groupInfos:f}=o(u);n.lastIndex=r;const i=a.call(n,e);if(i===null)throw new TypeError;l(d,"indices",t=s(i,f))}return t},set(u){l(d,"indices",u)}});return d}function c(u,e){const{measurementRegExp:r,groupInfos:d}=o(u);r.lastIndex=u.lastIndex;const t=a.call(r,e);if(t===null)return null;u.lastIndex=r.lastIndex;const n=[];l(n,0,t[0]);for(const a of d){l(n,a.oldGroupNumber,t[a.newGroupNumber])}l(n,"index",t.index);l(n,"input",t.input);l(n,"groups",t.groups);l(n,"indices",s(t,d));return n}function o(u){let e=n.get(u);if(!e){e=T(t.parse(`/${u.source}/${u.flags}`));n.set(u,e)}const r=e.getExtra();const d=e.toRegExp();return{measurementRegExp:d,groupInfos:r}}function s(u,e){const r=u.index;const d=r+u[0].length;const a=!!u.groups;const t=[];const n=a?Object.create(null):undefined;l(t,0,[r,d]);for(const f of e){let e;if(u[f.newGroupNumber]!==undefined){let d=r;if(f.measurementGroups){for(const e of f.measurementGroups){d+=u[e].length}}const a=d+u[f.newGroupNumber].length;e=[d,a]}l(t,f.oldGroupNumber,e);if(n&&f.groupName!==undefined){l(n,f.groupName,e)}}l(t,"groups",n);return t}function l(u,e,r){const d=Object.getOwnPropertyDescriptor(u,e);if(d?d.configurable:Object.isExtensible(u)){const a={enumerable:d?d.enumerable:true,configurable:d?d.configurable:true,writable:true,value:r};Object.defineProperty(u,e,a)}}let b;let p=false;let h=new Set;let v=[];let g=false;let y=1;let m=[];let _=new Map;let C=new Map;const S={init(){p=false;h.clear();v.length=0;g=false;y=1;m.length=0;_.clear();C.clear();b=[]},RegExp(u){t.traverse(u.node,A);if(h.size>0){t.transform(u.node,k);t.transform(u.node,P);if(p){t.transform(u.node,w)}}return false}};const x={pre(u){v.push(g);g=u.node.type==="Group"&&u.node.capturing},post(u){if(g){h.add(u.node)}g=v.pop()||g}};const A={Alternative:x,Disjunction:x,Assertion:x,Group:x,Repetition:x,Backreference(u){p=true}};const k={Alternative(u){if(h.has(u.node)){let e=0;let r=[];const d=[];const a=[];for(let n=0;ne){const u={type:"Group",capturing:true,number:-1,expression:r.length>1?{type:"Alternative",expressions:r}:r.length===1?r[0]:null};a.push(u);d.push(u);e=n;r=[]}m.push(d);t.transform(f,k);m.pop();r.push(f);continue}r.push(f)}u.update({expressions:a.concat(r)})}return false},Group(u){if(!u.node.capturing)return;_.set(u.node,E())}};const P={Group(u){if(!b)throw new Error("Not initialized.");if(!u.node.capturing)return;const e=u.node.number;const r=y++;const d=_.get(u.node);if(e!==-1){b.push({oldGroupNumber:e,newGroupNumber:r,measurementGroups:d&&d.map((u=>u.number)),groupName:u.node.name});C.set(e,r)}u.update({number:r})}};const w={Backreference(u){const e=C.get(u.node.number);if(e){if(u.node.kind==="number"){u.update({number:e,reference:e})}else{u.update({number:e})}}}};function E(){const u=[];for(const e of m){for(const r of e){u.push(r)}}return u}function T(u){const e=t.transform(u,S);return new t.TransformResult(e.getAST(),b)}u.exports=f},9892:(u,e,r)=>{const d=r(9128);const a=r(62545);const t=r(93581);const n=r(74443);const f=r(58488);const i=t();function c(u,e){return i.call(u,e)}c.implementation=d;c.native=a;c.getPolyfill=t;c.shim=n;c.config=f;(function(u){})(c||(c={}));u.exports=c},62545:u=>{const e=RegExp.prototype.exec;u.exports=e},93581:(u,e,r)=>{const d=r(62545);const a=r(9128);function t(){const u=new RegExp("a");const e=d.call(u,"a");if(e.indices){return d}return a}u.exports=t},74443:(u,e,r)=>{const d=r(93581);function a(){const u=d();if(RegExp.prototype.exec!==u){RegExp.prototype.exec=u}}u.exports=a},9182:(u,e,r)=>{var d=r(43034);var a=r(2003);u.exports={transform:function u(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var t=r.length>0?r:Object.keys(d);var n=void 0;var f={};t.forEach((function(u){if(!d.hasOwnProperty(u)){throw new Error("Unknown compat-transform: "+u+". "+"Available transforms are: "+Object.keys(d).join(", "))}var r=d[u];n=a.transform(e,r);e=n.getAST();if(typeof r.getExtra==="function"){f[u]=r.getExtra()}}));n.setExtra(f);return n}}},51537:u=>{var e=function(){function u(u,e){for(var r=0;r{u.exports={_hasUFlag:false,shouldRun:function u(e){var u=e.flags.includes("s");if(!u){return false}e.flags=e.flags.replace("s","");this._hasUFlag=e.flags.includes("u");return true},Char:function u(e){var r=e.node;if(r.kind!=="meta"||r.value!=="."){return}var d="\\uFFFF";var a="￿";if(this._hasUFlag){d="\\u{10FFFF}";a="􏿿"}e.replace({type:"CharacterClass",expressions:[{type:"ClassRange",from:{type:"Char",value:"\\0",kind:"decimal",symbol:"\0"},to:{type:"Char",value:d,kind:"unicode",symbol:a}}]})}}},62514:u=>{u.exports={_groupNames:{},init:function u(){this._groupNames={}},getExtra:function u(){return this._groupNames},Group:function u(e){var r=e.node;if(!r.name){return}this._groupNames[r.name]=r.number;delete r.name;delete r.nameRaw},Backreference:function u(e){var r=e.node;if(r.kind!=="name"){return}r.kind="number";r.reference=r.number;delete r.referenceRaw}}},57559:u=>{u.exports={RegExp:function u(e){var r=e.node;if(r.flags.includes("x")){r.flags=r.flags.replace("x","")}}}},43034:(u,e,r)=>{u.exports={dotAll:r(45640),namedCapturingGroups:r(62514),xFlag:r(57559)}},20042:u=>{function e(u){return u?r[u.type](u):""}var r={RegExp:function u(r){return"/"+e(r.body)+"/"+r.flags},Alternative:function u(r){return(r.expressions||[]).map(e).join("")},Disjunction:function u(r){return e(r.left)+"|"+e(r.right)},Group:function u(r){var d=e(r.expression);if(r.capturing){if(r.name){return"(?<"+(r.nameRaw||r.name)+">"+d+")"}return"("+d+")"}return"(?:"+d+")"},Backreference:function u(e){switch(e.kind){case"number":return"\\"+e.reference;case"name":return"\\k<"+(e.referenceRaw||e.reference)+">";default:throw new TypeError("Unknown Backreference kind: "+e.kind)}},Assertion:function u(r){switch(r.kind){case"^":case"$":case"\\b":case"\\B":return r.kind;case"Lookahead":{var d=e(r.assertion);if(r.negative){return"(?!"+d+")"}return"(?="+d+")"}case"Lookbehind":{var a=e(r.assertion);if(r.negative){return"(?{var e=function(){function u(u,e){var r=[];var d=true;var a=false;var t=undefined;try{for(var n=u[Symbol.iterator](),f;!(d=(f=n.next()).done);d=true){r.push(f.value);if(e&&r.length===e)break}}catch(i){a=true;t=i}finally{try{if(!d&&n["return"])n["return"]()}finally{if(a)throw t}}return r}return function(e,r){if(Array.isArray(e)){return e}else if(Symbol.iterator in Object(e)){return u(e,r)}else{throw new TypeError("Invalid attempt to destructure non-iterable instance")}}}();function r(u){return Array.isArray(u)?u:Array.from(u)}function d(u){if(Array.isArray(u)){for(var e=0,r=Array(u.length);e0}))];var b=void 0;var p=void 0;b=l[l.length-1];p=l[l.length-2];var h=function u(){var e={};var n=true;var i=false;var o=undefined;try{for(var s=b[Symbol.iterator](),h;!(n=(h=s.next()).done);n=true){var v=h.value;var g={};var y=r(v),m=y[0],_=y.slice(1);g[m]=new Set([m]);var C=true;var S=false;var x=undefined;try{u:for(var A=_[Symbol.iterator](),k;!(C=(k=A.next()).done);C=true){var P=k.value;var w=true;var E=false;var T=undefined;try{for(var O=Object.keys(g)[Symbol.iterator](),R;!(w=(R=O.next()).done);w=true){var N=R.value;if(f(P,N,t,c)){g[N].add(P);g[P]=g[N];continue u}}}catch(I){E=true;T=I}finally{try{if(!w&&O.return){O.return()}}finally{if(E){throw T}}}g[P]=new Set([P])}}catch(I){S=true;x=I}finally{try{if(!C&&A.return){A.return()}}finally{if(S){throw x}}}Object.assign(e,g)}}catch(I){i=true;o=I}finally{try{if(!n&&s.return){s.return()}}finally{if(i){throw o}}}a=e;var L=new Set(Object.keys(e).map((function(u){return e[u]})));l.push([].concat(d(L)));b=l[l.length-1];p=l[l.length-2]};while(!n(b,p)){h()}var v=new Map;var g=1;b.forEach((function(u){return v.set(u,g++)}));var y={};var m=new Set;var _=function u(e,r){var d=true;var a=false;var t=undefined;try{for(var n=e[Symbol.iterator](),f;!(d=(f=n.next()).done);d=true){var i=f.value;if(o.has(i)){m.add(r)}}}catch(c){a=true;t=c}finally{try{if(!d&&n.return){n.return()}}finally{if(a){throw t}}}};var C=true;var S=false;var x=undefined;try{for(var A=v.entries()[Symbol.iterator](),k;!(C=(k=A.next()).done);C=true){var P=k.value;var w=e(P,2);var E=w[0];var T=w[1];y[T]={};var O=true;var R=false;var N=undefined;try{for(var L=c[Symbol.iterator](),I;!(O=(I=L.next()).done);O=true){var F=I.value;_(E,T);var D=void 0;var M=true;var G=false;var j=undefined;try{for(var B=E[Symbol.iterator](),U;!(M=(U=B.next()).done);M=true){var H=U.value;D=t[H][F];if(D){break}}}catch(q){G=true;j=q}finally{try{if(!M&&B.return){B.return()}}finally{if(G){throw j}}}if(D){y[T][F]=v.get(a[D])}}}catch(q){R=true;N=q}finally{try{if(!O&&L.return){L.return()}}finally{if(R){throw N}}}}}catch(q){S=true;x=q}finally{try{if(!C&&A.return){A.return()}}finally{if(S){throw x}}}u.setTransitionTable(y);u.setAcceptingStateNumbers(m);return u}function n(u,e){if(!e){return false}if(u.length!==e.length){return false}for(var r=0;r{var d=function(){function u(u,e){for(var r=0;r0){var l=n.shift();var b=l.join(",");o[b]={};var p=true;var h=false;var v=undefined;try{for(var g=f[Symbol.iterator](),y;!(p=(y=g.next()).done);p=true){var m=y.value;var _=[];s(l);var C=true;var S=false;var x=undefined;try{for(var A=l[Symbol.iterator](),k;!(C=(k=A.next()).done);C=true){var P=k.value;var w=r[P][m];if(!w){continue}var E=true;var T=false;var O=undefined;try{for(var R=w[Symbol.iterator](),N;!(E=(N=R.next()).done);E=true){var L=N.value;if(!r[L]){continue}_.push.apply(_,a(r[L][i]))}}catch(M){T=true;O=M}finally{try{if(!E&&R.return){R.return()}}finally{if(T){throw O}}}}}catch(M){S=true;x=M}finally{try{if(!C&&A.return){A.return()}}finally{if(S){throw x}}}var I=new Set(_);var F=[].concat(a(I));if(F.length>0){var D=F.join(",");o[b][m]=D;if(!o.hasOwnProperty(D)){n.unshift(F)}}}}catch(M){h=true;v=M}finally{try{if(!p&&g.return){g.return()}}finally{if(h){throw v}}}}return this._transitionTable=this._remapStateNumbers(o)}},{key:"_remapStateNumbers",value:function u(e){var r={};this._originalTransitionTable=e;var d={};Object.keys(e).forEach((function(u,e){r[u]=e+1}));for(var a in e){var t=e[a];var n={};for(var f in t){n[f]=r[t[f]]}d[r[a]]=n}this._originalAcceptingStateNumbers=this._acceptingStateNumbers;this._acceptingStateNumbers=new Set;var i=true;var c=false;var o=undefined;try{for(var s=this._originalAcceptingStateNumbers[Symbol.iterator](),l;!(i=(l=s.next()).done);i=true){var b=l.value;this._acceptingStateNumbers.add(r[b])}}catch(p){c=true;o=p}finally{try{if(!i&&s.return){s.return()}}finally{if(c){throw o}}}return d}},{key:"getOriginalTransitionTable",value:function u(){if(!this._originalTransitionTable){this.getTransitionTable()}return this._originalTransitionTable}},{key:"matches",value:function u(e){var r=1;var d=0;var a=this.getTransitionTable();while(e[d]){r=a[r][e[d++]];if(!r){return false}}if(!this.getAcceptingStateNumbers().has(r)){return false}return true}}]);return u}();u.exports=c},36734:(u,e,r)=>{var d=r(91909);var a=r(32569);var t=r(28398);var n=r(70860);u.exports={NFA:d,DFA:a,builders:n,toNFA:function u(e){return t.build(e)},toDFA:function u(e){return new a(this.toNFA(e))},test:function u(e,r){return this.toDFA(e).matches(r)}}},70860:(u,e,r)=>{var d=r(91909);var a=r(48617);var t=r(75821),n=t.EPSILON;function f(u){var e=new a;var r=new a({accepting:true});return new d(e.addTransition(u,r),r)}function i(){return f(n)}function c(u,e){u.out.accepting=false;e.out.accepting=true;u.out.addTransition(n,e.in);return new d(u.in,e.out)}function o(u){for(var e=arguments.length,r=Array(e>1?e-1:0),d=1;d1?e-1:0),d=1;d{function d(u){if(Array.isArray(u)){for(var e=0,r=Array(u.length);e{var d=function(){function u(u,e){for(var r=0;r1&&arguments[1]!==undefined?arguments[1]:new Set;if(r.has(this)){return false}r.add(this);if(e.length===0){if(this.accepting){return true}var d=true;var a=false;var t=undefined;try{for(var n=this.getTransitionsOnSymbol(c)[Symbol.iterator](),f;!(d=(f=n.next()).done);d=true){var i=f.value;if(i.matches("",r)){return true}}}catch(k){a=true;t=k}finally{try{if(!d&&n.return){n.return()}}finally{if(a){throw t}}}return false}var o=e[0];var s=e.slice(1);var l=this.getTransitionsOnSymbol(o);var b=true;var p=false;var h=undefined;try{for(var v=l[Symbol.iterator](),g;!(b=(g=v.next()).done);b=true){var y=g.value;if(y.matches(s)){return true}}}catch(k){p=true;h=k}finally{try{if(!b&&v.return){v.return()}}finally{if(p){throw h}}}var m=true;var _=false;var C=undefined;try{for(var S=this.getTransitionsOnSymbol(c)[Symbol.iterator](),x;!(m=(x=S.next()).done);m=true){var A=x.value;if(A.matches(e,r)){return true}}}catch(k){_=true;C=k}finally{try{if(!m&&S.return){S.return()}}finally{if(_){throw C}}}return false}},{key:"getEpsilonClosure",value:function u(){var e=this;if(!this._epsilonClosure){(function(){var u=e.getTransitionsOnSymbol(c);var r=e._epsilonClosure=new Set;r.add(e);var d=true;var a=false;var t=undefined;try{for(var n=u[Symbol.iterator](),f;!(d=(f=n.next()).done);d=true){var i=f.value;if(!r.has(i)){r.add(i);var o=i.getEpsilonClosure();o.forEach((function(u){return r.add(u)}))}}}catch(s){a=true;t=s}finally{try{if(!d&&n.return){n.return()}}finally{if(a){throw t}}}})()}return this._epsilonClosure}}]);return e}(f);u.exports=o},91909:(u,e,r)=>{var d=function(){function u(u,e){var r=[];var d=true;var a=false;var t=undefined;try{for(var n=u[Symbol.iterator](),f;!(d=(f=n.next()).done);d=true){r.push(f.value);if(e&&r.length===e)break}}catch(i){a=true;t=i}finally{try{if(!d&&n["return"])n["return"]()}finally{if(a)throw t}}return r}return function(e,r){if(Array.isArray(e)){return e}else if(Symbol.iterator in Object(e)){return u(e,r)}else{throw new TypeError("Invalid attempt to destructure non-iterable instance")}}}();var a=function(){function u(u,e){for(var r=0;r{var e="ε";var r=e+"*";u.exports={EPSILON:e,EPSILON_CLOSURE:r}},81191:u=>{var e=function(){function u(u,e){for(var r=0;r0&&arguments[0]!==undefined?arguments[0]:{},d=e.accepting,a=d===undefined?false:d;r(this,u);this._transitions=new Map;this.accepting=a}e(u,[{key:"getTransitions",value:function u(){return this._transitions}},{key:"addTransition",value:function u(e,r){this.getTransitionsOnSymbol(e).add(r);return this}},{key:"getTransitionsOnSymbol",value:function u(e){var r=this._transitions.get(e);if(!r){r=new Set;this._transitions.set(e,r)}return r}}]);return u}();u.exports=d},63072:(u,e,r)=>{var d=r(1379);var a=r(23810);var t=r(2003);var n=r(53256);u.exports={optimize:function u(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},f=r.whitelist,i=f===undefined?[]:f,c=r.blacklist,o=c===undefined?[]:c;var s=i.length>0?i:Array.from(n.keys());var l=s.filter((function(u){return!o.includes(u)}));var b=e;if(e instanceof RegExp){e=""+e}if(typeof e==="string"){b=a.parse(e)}var p=new t.TransformResult(b);var h=void 0;do{h=p.toString();b=d(p.getAST());l.forEach((function(u){if(!n.has(u)){throw new Error("Unknown optimization-transform: "+u+". "+"Available transforms are: "+Array.from(n.keys()).join(", "))}var e=n.get(u);var r=t.transform(b,e);if(r.toString()!==p.toString()){if(r.toString().length<=p.toString().length){p=r}else{b=d(p.getAST())}}}))}while(p.toString()!==h);return p}}},98002:u=>{var e="A".codePointAt(0);var r="Z".codePointAt(0);u.exports={_AZClassRanges:null,_hasUFlag:false,init:function u(e){this._AZClassRanges=new Set;this._hasUFlag=e.flags.includes("u")},shouldRun:function u(e){return e.flags.includes("i")},Char:function u(e){var r=e.node,t=e.parent;if(isNaN(r.codePoint)){return}if(!this._hasUFlag&&r.codePoint>=4096){return}if(t.type==="ClassRange"){if(!this._AZClassRanges.has(t)&&!d(t)){return}this._AZClassRanges.add(t)}var n=r.symbol.toLowerCase();if(n!==r.symbol){r.value=a(n,r);r.symbol=n;r.codePoint=n.codePointAt(0)}}};function d(u){var d=u.from,a=u.to;return d.codePoint>=e&&d.codePoint<=r&&a.codePoint>=e&&a.codePoint<=r}function a(u,e){var r=u.codePointAt(0);if(e.kind==="decimal"){return"\\"+r}if(e.kind==="oct"){return"\\0"+r.toString(8)}if(e.kind==="hex"){return"\\x"+r.toString(16)}if(e.kind==="unicode"){if(e.isSurrogatePair){var d=t(r),a=d.lead,n=d.trail;return"\\u"+"0".repeat(4-a.length)+a+"\\u"+"0".repeat(4-n.length)+n}else if(e.value.includes("{")){return"\\u{"+r.toString(16)+"}"}else{var f=r.toString(16);return"\\u"+"0".repeat(4-f.length)+f}}return u}function t(u){var e=Math.floor((u-65536)/1024)+55296;var r=(u-65536)%1024+56320;return{lead:e.toString(16),trail:r.toString(16)}}},70436:u=>{u.exports={_hasIUFlags:false,init:function u(e){this._hasIUFlags=e.flags.includes("i")&&e.flags.includes("u")},CharacterClass:function u(r){var a=r.node;var n=a.expressions;var f=[];n.forEach((function(u){if(d(u)){f.push(u.value)}}));n.sort(e);for(var i=0;i1&&arguments[1]!==undefined?arguments[1]:null;return u.type==="Char"&&u.kind==="meta"&&(e?u.value===e:/^\\[dws]$/i.test(u.value))}function a(u){return u.type==="Char"&&u.kind==="control"}function t(u,e,r){for(var d=0;d=8192&&u.codePoint<=8202||u.codePoint===8232||u.codePoint===8233||u.codePoint===8239||u.codePoint===8287||u.codePoint===12288||u.codePoint===65279}function i(u){return u.codePoint>=48&&u.codePoint<=57}function c(u,e){return i(u)||u.codePoint>=65&&u.codePoint<=90||u.codePoint>=97&&u.codePoint<=122||u.value==="_"||e&&(u.codePoint===383||u.codePoint===8490)}function o(u,e){if(e&&e.type==="ClassRange"){if(l(u,e)){return true}else if(p(u)&&e.to.codePoint===u.codePoint-1){e.to=u;return true}else if(u.type==="ClassRange"&&u.from.codePoint<=e.to.codePoint+1&&u.to.codePoint>=e.from.codePoint-1){if(u.from.codePointe.to.codePoint){e.to=u.to}return true}}return false}function s(u,e){if(e&&e.type==="ClassRange"){if(p(u)&&e.from.codePoint===u.codePoint+1){e.from=u;return true}}return false}function l(u,e){if(u.type==="Char"&&isNaN(u.codePoint)){return false}if(u.type==="ClassRange"){return l(u.from,e)&&l(u.to,e)}return u.codePoint>=e.from.codePoint&&u.codePoint<=e.to.codePoint}function b(u,e,r){if(!p(u)){return 0}var d=0;while(e>0){var a=r[e];var t=r[e-1];if(p(t)&&t.codePoint===a.codePoint-1){d++;e--}else{break}}if(d>1){r[e]={type:"ClassRange",from:r[e],to:u};return d}return 0}function p(u){return u&&u.type==="Char"&&!isNaN(u.codePoint)&&(c(u,false)||u.kind==="unicode"||u.kind==="hex"||u.kind==="oct"||u.kind==="decimal")}},76953:u=>{u.exports={ClassRange:function u(e){var r=e.node;if(r.from.codePoint===r.to.codePoint){e.replace(r.from)}else if(r.from.codePoint===r.to.codePoint-1){e.getParent().insertChildAt(r.to,e.index+1);e.replace(r.from)}}}},322:u=>{u.exports={CharacterClass:function u(e){var r=e.node;var d={};for(var a=0;a{function e(u){if(Array.isArray(u)){for(var e=0,r=Array(u.length);e2&&arguments[2]!==undefined?arguments[2]:"simple";return u.type==="Char"&&u.value===e&&u.kind===r}function i(u,e){return f(u,e,"meta")}function c(u){return u.type==="ClassRange"&&u.from.value==="a"&&u.to.value==="z"}function o(u){return u.type==="ClassRange"&&u.from.value==="A"&&u.to.value==="Z"}function s(u){return u.type==="Char"&&u.value==="_"&&u.kind==="simple"}function l(u,e){return u.type==="Char"&&u.kind==="unicode"&&u.codePoint===e}},11810:u=>{u.exports={CharacterClass:function u(n){var f=n.node;if(f.expressions.length!==1||!a(n)||!e(f.expressions[0])){return}var i=f.expressions[0],c=i.value,o=i.kind,s=i.escaped;if(f.negative){if(!r(c)){return}c=d(c)}n.replace({type:"Char",value:c,kind:o,escaped:s||t(c)})}};function e(u){return u.type==="Char"&&u.value!=="\\b"}function r(u){return/^\\[dwsDWS]$/.test(u)}function d(u){return/[dws]/.test(u)?u.toUpperCase():u.toLowerCase()}function a(u){var e=u.parent,r=u.index;if(e.type!=="Alternative"){return true}var d=e.expressions[r-1];if(d==null){return true}if(d.type==="Backreference"&&d.kind==="number"){return false}if(d.type==="Char"&&d.kind==="decimal"){return false}return true}function t(u){return/[*[()+?$./{}|]/.test(u)}},88111:u=>{var e="A".codePointAt(0);var r="Z".codePointAt(0);var d="a".codePointAt(0);var a="z".codePointAt(0);var t="0".codePointAt(0);var n="9".codePointAt(0);u.exports={Char:function u(e){var r=e.node,d=e.parent;if(isNaN(r.codePoint)||r.kind==="simple"){return}if(d.type==="ClassRange"){if(!f(d)){return}}if(!i(r.codePoint)){return}var a=String.fromCodePoint(r.codePoint);var t={type:"Char",kind:"simple",value:a,symbol:a,codePoint:r.codePoint};if(c(a,d.type)){t.escaped=true}e.replace(t)}};function f(u){var f=u.from,i=u.to;return f.codePoint>=t&&f.codePoint<=n&&i.codePoint>=t&&i.codePoint<=n||f.codePoint>=e&&f.codePoint<=r&&i.codePoint>=e&&i.codePoint<=r||f.codePoint>=d&&f.codePoint<=a&&i.codePoint>=d&&i.codePoint<=a}function i(u){return u>=32&&u<=126}function c(u,e){if(e==="ClassRange"||e==="CharacterClass"){return/[\]\\^-]/.test(u)}return/[*[()+?^$./\\|{}]/.test(u)}},6632:u=>{u.exports={_hasXFlag:false,init:function u(e){this._hasXFlag=e.flags.includes("x")},Char:function u(r){var d=r.node;if(!d.escaped){return}if(e(r,this._hasXFlag)){delete d.escaped}}};function e(u,e){var a=u.node.value,t=u.index,n=u.parent;if(n.type!=="CharacterClass"&&n.type!=="ClassRange"){return!d(a,t,n,e)}return!r(a,t,n)}function r(u,e,r){if(u==="^"){return e===0&&!r.negative}if(u==="-"){return true}return/[\]\\]/.test(u)}function d(u,e,r,d){if(u==="{"){return n(e,r)}if(u==="}"){return f(e,r)}if(d&&/[ #]/.test(u)){return true}return/[*[()+?^$./\\|]/.test(u)}function a(u,e,r){var d=u;var a=(r?d>=0:d=0:d=0&&e.expressions[d];if(r&&t(n,"{")){return true}if(t(n,",")){r=a(d-1,e,true);d=d-r-1;n=d{u.exports={shouldRun:function u(e){return e.flags.includes("u")},Char:function u(e){var r=e.node;if(r.kind!=="unicode"||!r.isSurrogatePair||isNaN(r.codePoint)){return}r.value="\\u{"+r.codePoint.toString(16)+"}";delete r.isSurrogatePair}}},97648:(u,e,r)=>{function d(u){if(Array.isArray(u)){for(var e=0,r=Array(u.length);e=r.expressions.length){break}a=e.getChild(d);d=Math.max(1,i(e,a,d));if(d>=r.expressions.length){break}a=e.getChild(d);d=Math.max(1,c(e,a,d));d++}}};function f(u,e,r){var t=u.node;var n=Math.ceil(r/2);var f=0;while(f{var d=r(41059);var a=r(33166),t=a.disjunctionToList,n=a.listToDisjunction;u.exports={Disjunction:function u(e){var r=e.node;var a={};var f=t(r).filter((function(u){var e=u?d.getForNode(u).jsonEncode():"null";if(a.hasOwnProperty(e)){return false}a[e]=u;return true}));e.replace(n(f))}}},5808:u=>{u.exports={Disjunction:function u(d){var a=d.node,t=d.parent;if(!e[t.type]){return}var n=new Map;if(!r(a,n)||!n.size){return}var f={type:"CharacterClass",expressions:Array.from(n.keys()).sort().map((function(u){return n.get(u)}))};e[t.type](d.getParent(),f)}};var e={RegExp:function u(e,r){var d=e.node;d.body=r},Group:function u(e,r){var d=e.node;if(d.capturing){d.expression=r}else{e.replace(r)}}};function r(u,e){if(!u){return false}var d=u.type;if(d==="Disjunction"){var a=u.left,t=u.right;return r(a,e)&&r(t,e)}else if(d==="Char"){var n=u.value;e.set(n,u);return true}else if(d==="CharacterClass"&&!u.negative){return u.expressions.every((function(u){return r(u,e)}))}return false}},53256:(u,e,r)=>{u.exports=new Map([["charSurrogatePairToSingleUnicode",r(8988)],["charCodeToSimpleChar",r(88111)],["charCaseInsensitiveLowerCaseTransform",r(98002)],["charClassRemoveDuplicates",r(322)],["quantifiersMerge",r(31837)],["quantifierRangeToSymbol",r(88190)],["charClassClassrangesToChars",r(76953)],["charClassToMeta",r(4090)],["charClassToSingleChar",r(11810)],["charEscapeUnescape",r(6632)],["charClassClassrangesMerge",r(70436)],["disjunctionRemoveDuplicates",r(61013)],["groupSingleCharsToCharClass",r(5808)],["removeEmptyGroup",r(72097)],["ungroup",r(95435)],["combineRepeatingPatterns",r(97648)]])},88190:u=>{u.exports={Quantifier:function u(a){var t=a.node;if(t.kind!=="Range"){return}e(a);r(a);d(a)}};function e(u){var e=u.node;if(e.from!==0||e.to){return}e.kind="*";delete e.from}function r(u){var e=u.node;if(e.from!==1||e.to){return}e.kind="+";delete e.from}function d(u){var e=u.node;if(e.from!==1||e.to!==1){return}u.parentPath.replace(u.parentPath.node.expression)}},31837:(u,e,r)=>{var d=r(33166),a=d.increaseQuantifierByOne;u.exports={Repetition:function u(e){var r=e.node,d=e.parent;if(d.type!=="Alternative"||!e.index){return}var f=e.getPreviousSibling();if(!f){return}if(f.node.type==="Repetition"){if(!f.getChild().hasEqualSource(e.getChild())){return}var i=n(f.node.quantifier),c=i.from,o=i.to;var s=n(r.quantifier),l=s.from,b=s.to;if(f.node.quantifier.greedy!==r.quantifier.greedy&&!t(f.node.quantifier)&&!t(r.quantifier)){return}r.quantifier.kind="Range";r.quantifier.from=c+l;if(o&&b){r.quantifier.to=o+b}else{delete r.quantifier.to}if(t(f.node.quantifier)||t(r.quantifier)){r.quantifier.greedy=true}f.remove()}else{if(!f.hasEqualSource(e.getChild())){return}a(r.quantifier);f.remove()}}};function t(u){return u.greedy&&(u.kind==="+"||u.kind==="*"||u.kind==="Range"&&!u.to)}function n(u){var e=void 0,r=void 0;if(u.kind==="*"){e=0}else if(u.kind==="+"){e=1}else if(u.kind==="?"){e=0;r=1}else{e=u.from;if(u.to){r=u.to}}return{from:e,to:r}}},72097:u=>{u.exports={Group:function u(e){var r=e.node,d=e.parent;var a=e.getChild();if(r.capturing||a){return}if(d.type==="Repetition"){e.getParent().replace(r)}else if(d.type!=="RegExp"){e.remove()}}}},95435:u=>{function e(u){if(Array.isArray(u)){for(var e=0,r=Array(u.length);e{var d=function(){function u(u,e){var r=[];var d=true;var a=false;var t=undefined;try{for(var n=u[Symbol.iterator](),f;!(d=(f=n.next()).done);d=true){r.push(f.value);if(e&&r.length===e)break}}catch(i){a=true;t=i}finally{try{if(!d&&n["return"])n["return"]()}finally{if(a)throw t}}return r}return function(e,r){if(Array.isArray(e)){return e}else if(Symbol.iterator in Object(e)){return u(e,r)}else{throw new TypeError("Invalid attempt to destructure non-iterable instance")}}}();function a(u){if(Array.isArray(u)){for(var e=0,r=Array(u.length);e/,function(){var u=t.slice(3,-1);F(u,this.getCurrentState());return"NAMED_GROUP_REF"}],[/^\\b/,function(){return"ESC_b"}],[/^\\B/,function(){return"ESC_B"}],[/^\\c[a-zA-Z]/,function(){return"CTRL_CH"}],[/^\\0\d{1,2}/,function(){return"OCT_CODE"}],[/^\\0/,function(){return"DEC_CODE"}],[/^\\\d{1,3}/,function(){return"DEC_CODE"}],[/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/,function(){return"U_CODE_SURROGATE"}],[/^\\u\{[0-9a-fA-F]{1,}\}/,function(){return"U_CODE"}],[/^\\u[0-9a-fA-F]{4}/,function(){return"U_CODE"}],[/^\\[pP]\{\w+(?:=\w+)?\}/,function(){return"U_PROP_VALUE_EXP"}],[/^\\x[0-9a-fA-F]{2}/,function(){return"HEX_CODE"}],[/^\\[tnrdDsSwWvf]/,function(){return"META_CHAR"}],[/^\\\//,function(){return"ESC_CHAR"}],[/^\\[ #]/,function(){return"ESC_CHAR"}],[/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/,function(){return"ESC_CHAR"}],[/^\\[^*?+\[()\\|]/,function(){var u=this.getCurrentState();if(u==="u_class"&&t==="\\-"){return"ESC_CHAR"}else if(u==="u"||u==="xu"||u==="u_class"){throw new SyntaxError("invalid Unicode escape "+t)}return"ESC_CHAR"}],[/^\(/,function(){return"CHAR"}],[/^\)/,function(){return"CHAR"}],[/^\(\?=/,function(){return"POS_LA_ASSERT"}],[/^\(\?!/,function(){return"NEG_LA_ASSERT"}],[/^\(\?<=/,function(){return"POS_LB_ASSERT"}],[/^\(\?/,function(){t=t.slice(3,-1);F(t,this.getCurrentState());return"NAMED_CAPTURE_GROUP"}],[/^\(/,function(){return"L_PAREN"}],[/^\)/,function(){return"R_PAREN"}],[/^[*?+[^$]/,function(){return"CHAR"}],[/^\\\]/,function(){return"ESC_CHAR"}],[/^\]/,function(){this.popState();return"R_BRACKET"}],[/^\^/,function(){return"BOS"}],[/^\$/,function(){return"EOS"}],[/^\*/,function(){return"STAR"}],[/^\?/,function(){return"Q_MARK"}],[/^\+/,function(){return"PLUS"}],[/^\|/,function(){return"BAR"}],[/^\./,function(){return"ANY"}],[/^\//,function(){return"SLASH"}],[/^[^*?+\[()\\|]/,function(){return"CHAR"}],[/^\[\^/,function(){var u=this.getCurrentState();this.pushState(u==="u"||u==="xu"?"u_class":"class");return"NEG_CLASS"}],[/^\[/,function(){var u=this.getCurrentState();this.pushState(u==="u"||u==="xu"?"u_class":"class");return"L_BRACKET"}]];var y={INITIAL:[8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],xu:[0,1,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],x:[0,1,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,30,31,32,33,34,35,36,37,41,42,43,44,45,46,47,48,49,50,51],u_class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],class:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]};var m={type:s,value:""};v={initString:function u(e){this._string=e;this._cursor=0;this._states=["INITIAL"];this._tokensQueue=[];this._currentLine=1;this._currentColumn=0;this._currentLineBeginOffset=0;this._tokenStartOffset=0;this._tokenEndOffset=0;this._tokenStartLine=1;this._tokenEndLine=1;this._tokenStartColumn=0;this._tokenEndColumn=0;return this},getStates:function u(){return this._states},getCurrentState:function u(){return this._states[this._states.length-1]},pushState:function u(e){this._states.push(e)},begin:function u(e){this.pushState(e)},popState:function u(){if(this._states.length>1){return this._states.pop()}return this._states[0]},getNextToken:function u(){if(this._tokensQueue.length>0){return this.onToken(this._toToken(this._tokensQueue.shift()))}if(!this.hasMoreTokens()){return this.onToken(m)}var e=this._string.slice(this._cursor);var r=y[this.getCurrentState()];for(var d=0;d0){var l;(l=this._tokensQueue).unshift.apply(l,a(s))}}return this.onToken(this._toToken(o,t))}}if(this.isEOF()){this._cursor++;return m}this.throwUnexpectedToken(e[0],this._currentLine,this._currentColumn)},throwUnexpectedToken:function u(e,r,d){var a=this._string.split("\n")[r-1];var t="";if(a){var n=" ".repeat(d);t="\n\n"+a+"\n"+n+"^\n"}throw new SyntaxError(t+'Unexpected token: "'+e+'" '+("at "+r+":"+d+"."))},getCursor:function u(){return this._cursor},getCurrentLine:function u(){return this._currentLine},getCurrentColumn:function u(){return this._currentColumn},_captureLocation:function u(e){var r=/\n/g;this._tokenStartOffset=this._cursor;this._tokenStartLine=this._currentLine;this._tokenStartColumn=this._tokenStartOffset-this._currentLineBeginOffset;var d=void 0;while((d=r.exec(e))!==null){this._currentLine++;this._currentLineBeginOffset=this._tokenStartOffset+d.index+1}this._tokenEndOffset=this._cursor+e.length;this._tokenEndLine=this._currentLine;this._tokenEndColumn=this._currentColumn=this._tokenEndOffset-this._currentLineBeginOffset},_toToken:function u(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";return{type:e,value:r,startOffset:this._tokenStartOffset,endOffset:this._tokenEndOffset,startLine:this._tokenStartLine,endLine:this._tokenEndLine,startColumn:this._tokenStartColumn,endColumn:this._tokenEndColumn}},isEOF:function u(){return this._cursor===this._string.length},hasMoreTokens:function u(){return this._cursor<=this._string.length},_match:function u(e,r){var d=e.match(r);if(d){this._captureLocation(d[0]);this._cursor+=d[0].length;return d[0]}return null},onToken:function u(e){return e}};f.lexer=v;f.tokenizer=v;f.options={captureLocations:true};var _={setOptions:function u(e){f.options=e;return this},getOptions:function u(){return f.options},parse:function u(e,r){if(!v){throw new Error("Tokenizer instance wasn't specified.")}v.initString(e);var d=f.options;if(r){f.options=Object.assign({},f.options,r)}_.onParseBegin(e,v,f.options);h.length=0;h.push(0);var o=v.getNextToken();var s=null;do{if(!o){f.options=d;H()}var g=h[h.length-1];var y=b[o.type];if(!p[g].hasOwnProperty(y)){f.options=d;U(o)}var m=p[g][y];if(m[0]==="s"){var C=null;if(f.options.captureLocations){C={startOffset:o.startOffset,endOffset:o.endOffset,startLine:o.startLine,endLine:o.endLine,startColumn:o.startColumn,endColumn:o.endColumn}}s=this.onShift(o);h.push({symbol:b[s.type],semanticValue:s.value,loc:C},Number(m.slice(1)));o=v.getNextToken()}else if(m[0]==="r"){var S=m.slice(1);var x=l[S];var A=typeof x[2]==="function";var k=A?[]:null;var P=A&&f.options.captureLocations?[]:null;if(x[1]!==0){var w=x[1];while(w-- >0){h.pop();var E=h.pop();if(A){k.unshift(E.semanticValue);if(P){P.unshift(E.loc)}}}}var T={symbol:x[0]};if(A){t=s?s.value:null;n=s?s.value.length:null;var O=P!==null?k.concat(P):k;x[2].apply(x,a(O));T.semanticValue=i;if(P){T.loc=c}}var R=h[h.length-1];var N=x[0];h.push(T,p[R][N])}else if(m==="acc"){h.pop();var L=h.pop();if(h.length!==1||h[0]!==0||v.hasMoreTokens()){f.options=d;U(o)}if(L.hasOwnProperty("semanticValue")){f.options=d;_.onParseEnd(L.semanticValue);return L.semanticValue}_.onParseEnd();f.options=d;return true}}while(v.hasMoreTokens()||h.length>1)},setTokenizer:function u(e){v=e;return _},getTokenizer:function u(){return v},onParseBegin:function u(e,r,d){},onParseEnd:function u(e){},onShift:function u(e){return e}};var C=0;var S={};var x="";_.onParseBegin=function(u,e){x=u;C=0;S={};var r=u.lastIndexOf("/");var d=u.slice(r);if(d.includes("x")&&d.includes("u")){e.pushState("xu")}else{if(d.includes("x")){e.pushState("x")}if(d.includes("u")){e.pushState("u")}}};_.onShift=function(u){if(u.type==="L_PAREN"||u.type==="NAMED_CAPTURE_GROUP"){u.value=new String(u.value);u.value.groupNumber=++C}return u};function A(u){var e=u.match(/\d+/g).map(Number);if(Number.isFinite(e[1])&&e[1]e.codePoint){throw new SyntaxError("Range "+u.value+"-"+e.value+" out of order in character class")}}var P=r(37047);function w(u,e){var r=u[1]==="P";var d=u.indexOf("=");var a=u.slice(3,d!==-1?d:-1);var t=void 0;var n=d===-1&&P.isGeneralCategoryValue(a);var f=d===-1&&P.isBinaryPropertyName(a);if(n){t=a;a="General_Category"}else if(f){t=a}else{if(!P.isValidName(a)){throw new SyntaxError("Invalid unicode property name: "+a+".")}t=u.slice(d+1,-1);if(!P.isValidValue(a,t)){throw new SyntaxError("Invalid "+a+" unicode property value: "+t+".")}}return j({type:"UnicodeProperty",name:a,value:t,negative:r,shorthand:n,binary:f,canonicalName:P.getCanonicalName(a)||a,canonicalValue:P.getCanonicalValue(t)||t},e)}function E(u,e,r){var a=void 0;var t=void 0;switch(e){case"decimal":{t=Number(u.slice(1));a=String.fromCodePoint(t);break}case"oct":{t=parseInt(u.slice(1),8);a=String.fromCodePoint(t);break}case"hex":case"unicode":{if(u.lastIndexOf("\\u")>0){var n=u.split("\\u").slice(1),f=d(n,2),i=f[0],c=f[1];i=parseInt(i,16);c=parseInt(c,16);t=(i-55296)*1024+(c-56320)+65536;a=String.fromCodePoint(t)}else{var o=u.slice(2).replace("{","");t=parseInt(o,16);if(t>1114111){throw new SyntaxError("Bad character escape sequence: "+u)}a=String.fromCodePoint(t)}break}case"meta":{switch(u){case"\\t":a="\t";t=a.codePointAt(0);break;case"\\n":a="\n";t=a.codePointAt(0);break;case"\\r":a="\r";t=a.codePointAt(0);break;case"\\v":a="\v";t=a.codePointAt(0);break;case"\\f":a="\f";t=a.codePointAt(0);break;case"\\b":a="\b";t=a.codePointAt(0);case"\\0":a="\0";t=0;case".":a=".";t=NaN;break;default:t=NaN}break}case"simple":{a=u;t=a.codePointAt(0);break}}return j({type:"Char",value:u,kind:e,symbol:a,codePoint:t},r)}var T="gimsuxy";function O(u){var e=new Set;var r=true;var d=false;var a=undefined;try{for(var t=u[Symbol.iterator](),n;!(r=(n=t.next()).done);r=true){var f=n.value;if(e.has(f)||!T.includes(f)){throw new SyntaxError("Invalid flags: "+u)}e.add(f)}}catch(i){d=true;a=i}finally{try{if(!r&&t.return){t.return()}}finally{if(d){throw a}}}return u.split("").sort().join("")}function R(u,e){var r=Number(u.slice(1));if(r>0&&r<=C){return j({type:"Backreference",kind:"number",number:r,reference:r},e)}return E(u,"decimal",e)}var N=/^\\u[0-9a-fA-F]{4}/;var L=/^\\u\{[0-9a-fA-F]{1,}\}/;var I=/\\u\{[0-9a-fA-F]{1,}\}/;function F(u,e){var r=I.test(u);var d=e==="u"||e==="xu"||e==="u_class";if(r&&!d){throw new SyntaxError('invalid group Unicode name "'+u+'", use `u` flag.')}return u}var D=/\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/;function M(u){return u.replace(new RegExp(D,"g"),(function(u,e,r,d,a,t,n){if(e){return String.fromCodePoint(parseInt(e,16),parseInt(r,16))}if(d){return String.fromCodePoint(parseInt(d,16))}if(a){return String.fromCodePoint(parseInt(a,16))}if(t){return String.fromCodePoint(parseInt(t,16))}if(n){return String.fromCodePoint(parseInt(n,16))}return u}))}function G(u,e){var r=u.slice(3,-1);var d=M(r);if(S.hasOwnProperty(d)){return j({type:"Backreference",kind:"name",number:S[d],reference:d,referenceRaw:r},e)}var a=null;var t=null;var n=null;var f=null;if(e){a=e.startOffset;t=e.startLine;n=e.endLine;f=e.startColumn}var i=/^[\w$<>]/;var c=void 0;var o=[E(u.slice(1,2),"simple",a?{startLine:t,endLine:n,startColumn:f,startOffset:a,endOffset:a+=2,endColumn:f+=2}:null)];o[0].escaped=true;u=u.slice(2);while(u.length>0){var s=null;if((s=u.match(N))||(s=u.match(L))){if(a){c={startLine:t,endLine:n,startColumn:f,startOffset:a,endOffset:a+=s[0].length,endColumn:f+=s[0].length}}o.push(E(s[0],"unicode",c));u=u.slice(s[0].length)}else if(s=u.match(i)){if(a){c={startLine:t,endLine:n,startColumn:f,startOffset:a,endOffset:++a,endColumn:++f}}o.push(E(s[0],"simple",c));u=u.slice(1)}}return o}function j(u,e){if(f.options.captureLocations){u.loc={source:x.slice(e.startOffset,e.endOffset),start:{line:e.startLine,column:e.startColumn,offset:e.startOffset},end:{line:e.endLine,column:e.endColumn,offset:e.endOffset}}}return u}function B(u,e){if(!f.options.captureLocations){return null}return{startOffset:u.startOffset,endOffset:e.endOffset,startLine:u.startLine,endLine:e.endLine,startColumn:u.startColumn,endColumn:e.endColumn}}function U(u){if(u.type===s){H()}v.throwUnexpectedToken(u.value,u.startLine,u.startColumn)}function H(){q("Unexpected end of input.")}function q(u){throw new SyntaxError(u)}u.exports=_},23810:(u,e,r)=>{var d=r(97e3);var a=d.parse.bind(d);d.parse=function(u,e){return a(""+u,e)};d.setOptions({captureLocations:false});u.exports=d},37047:u=>{var e={General_Category:"gc",Script:"sc",Script_Extensions:"scx"};var r=c(e);var d={ASCII:"ASCII",ASCII_Hex_Digit:"AHex",Alphabetic:"Alpha",Any:"Any",Assigned:"Assigned",Bidi_Control:"Bidi_C",Bidi_Mirrored:"Bidi_M",Case_Ignorable:"CI",Cased:"Cased",Changes_When_Casefolded:"CWCF",Changes_When_Casemapped:"CWCM",Changes_When_Lowercased:"CWL",Changes_When_NFKC_Casefolded:"CWKCF",Changes_When_Titlecased:"CWT",Changes_When_Uppercased:"CWU",Dash:"Dash",Default_Ignorable_Code_Point:"DI",Deprecated:"Dep",Diacritic:"Dia",Emoji:"Emoji",Emoji_Component:"Emoji_Component",Emoji_Modifier:"Emoji_Modifier",Emoji_Modifier_Base:"Emoji_Modifier_Base",Emoji_Presentation:"Emoji_Presentation",Extended_Pictographic:"Extended_Pictographic",Extender:"Ext",Grapheme_Base:"Gr_Base",Grapheme_Extend:"Gr_Ext",Hex_Digit:"Hex",IDS_Binary_Operator:"IDSB",IDS_Trinary_Operator:"IDST",ID_Continue:"IDC",ID_Start:"IDS",Ideographic:"Ideo",Join_Control:"Join_C",Logical_Order_Exception:"LOE",Lowercase:"Lower",Math:"Math",Noncharacter_Code_Point:"NChar",Pattern_Syntax:"Pat_Syn",Pattern_White_Space:"Pat_WS",Quotation_Mark:"QMark",Radical:"Radical",Regional_Indicator:"RI",Sentence_Terminal:"STerm",Soft_Dotted:"SD",Terminal_Punctuation:"Term",Unified_Ideograph:"UIdeo",Uppercase:"Upper",Variation_Selector:"VS",White_Space:"space",XID_Continue:"XIDC",XID_Start:"XIDS"};var a=c(d);var t={Cased_Letter:"LC",Close_Punctuation:"Pe",Connector_Punctuation:"Pc",Control:["Cc","cntrl"],Currency_Symbol:"Sc",Dash_Punctuation:"Pd",Decimal_Number:["Nd","digit"],Enclosing_Mark:"Me",Final_Punctuation:"Pf",Format:"Cf",Initial_Punctuation:"Pi",Letter:"L",Letter_Number:"Nl",Line_Separator:"Zl",Lowercase_Letter:"Ll",Mark:["M","Combining_Mark"],Math_Symbol:"Sm",Modifier_Letter:"Lm",Modifier_Symbol:"Sk",Nonspacing_Mark:"Mn",Number:"N",Open_Punctuation:"Ps",Other:"C",Other_Letter:"Lo",Other_Number:"No",Other_Punctuation:"Po",Other_Symbol:"So",Paragraph_Separator:"Zp",Private_Use:"Co",Punctuation:["P","punct"],Separator:"Z",Space_Separator:"Zs",Spacing_Mark:"Mc",Surrogate:"Cs",Symbol:"S",Titlecase_Letter:"Lt",Unassigned:"Cn",Uppercase_Letter:"Lu"};var n=c(t);var f={Adlam:"Adlm",Ahom:"Ahom",Anatolian_Hieroglyphs:"Hluw",Arabic:"Arab",Armenian:"Armn",Avestan:"Avst",Balinese:"Bali",Bamum:"Bamu",Bassa_Vah:"Bass",Batak:"Batk",Bengali:"Beng",Bhaiksuki:"Bhks",Bopomofo:"Bopo",Brahmi:"Brah",Braille:"Brai",Buginese:"Bugi",Buhid:"Buhd",Canadian_Aboriginal:"Cans",Carian:"Cari",Caucasian_Albanian:"Aghb",Chakma:"Cakm",Cham:"Cham",Cherokee:"Cher",Common:"Zyyy",Coptic:["Copt","Qaac"],Cuneiform:"Xsux",Cypriot:"Cprt",Cyrillic:"Cyrl",Deseret:"Dsrt",Devanagari:"Deva",Dogra:"Dogr",Duployan:"Dupl",Egyptian_Hieroglyphs:"Egyp",Elbasan:"Elba",Ethiopic:"Ethi",Georgian:"Geor",Glagolitic:"Glag",Gothic:"Goth",Grantha:"Gran",Greek:"Grek",Gujarati:"Gujr",Gunjala_Gondi:"Gong",Gurmukhi:"Guru",Han:"Hani",Hangul:"Hang",Hanifi_Rohingya:"Rohg",Hanunoo:"Hano",Hatran:"Hatr",Hebrew:"Hebr",Hiragana:"Hira",Imperial_Aramaic:"Armi",Inherited:["Zinh","Qaai"],Inscriptional_Pahlavi:"Phli",Inscriptional_Parthian:"Prti",Javanese:"Java",Kaithi:"Kthi",Kannada:"Knda",Katakana:"Kana",Kayah_Li:"Kali",Kharoshthi:"Khar",Khmer:"Khmr",Khojki:"Khoj",Khudawadi:"Sind",Lao:"Laoo",Latin:"Latn",Lepcha:"Lepc",Limbu:"Limb",Linear_A:"Lina",Linear_B:"Linb",Lisu:"Lisu",Lycian:"Lyci",Lydian:"Lydi",Mahajani:"Mahj",Makasar:"Maka",Malayalam:"Mlym",Mandaic:"Mand",Manichaean:"Mani",Marchen:"Marc",Medefaidrin:"Medf",Masaram_Gondi:"Gonm",Meetei_Mayek:"Mtei",Mende_Kikakui:"Mend",Meroitic_Cursive:"Merc",Meroitic_Hieroglyphs:"Mero",Miao:"Plrd",Modi:"Modi",Mongolian:"Mong",Mro:"Mroo",Multani:"Mult",Myanmar:"Mymr",Nabataean:"Nbat",New_Tai_Lue:"Talu",Newa:"Newa",Nko:"Nkoo",Nushu:"Nshu",Ogham:"Ogam",Ol_Chiki:"Olck",Old_Hungarian:"Hung",Old_Italic:"Ital",Old_North_Arabian:"Narb",Old_Permic:"Perm",Old_Persian:"Xpeo",Old_Sogdian:"Sogo",Old_South_Arabian:"Sarb",Old_Turkic:"Orkh",Oriya:"Orya",Osage:"Osge",Osmanya:"Osma",Pahawh_Hmong:"Hmng",Palmyrene:"Palm",Pau_Cin_Hau:"Pauc",Phags_Pa:"Phag",Phoenician:"Phnx",Psalter_Pahlavi:"Phlp",Rejang:"Rjng",Runic:"Runr",Samaritan:"Samr",Saurashtra:"Saur",Sharada:"Shrd",Shavian:"Shaw",Siddham:"Sidd",SignWriting:"Sgnw",Sinhala:"Sinh",Sogdian:"Sogd",Sora_Sompeng:"Sora",Soyombo:"Soyo",Sundanese:"Sund",Syloti_Nagri:"Sylo",Syriac:"Syrc",Tagalog:"Tglg",Tagbanwa:"Tagb",Tai_Le:"Tale",Tai_Tham:"Lana",Tai_Viet:"Tavt",Takri:"Takr",Tamil:"Taml",Tangut:"Tang",Telugu:"Telu",Thaana:"Thaa",Thai:"Thai",Tibetan:"Tibt",Tifinagh:"Tfng",Tirhuta:"Tirh",Ugaritic:"Ugar",Vai:"Vaii",Warang_Citi:"Wara",Yi:"Yiii",Zanabazar_Square:"Zanb"};var i=c(f);function c(u){var e={};for(var r in u){if(!u.hasOwnProperty(r)){continue}var d=u[r];if(Array.isArray(d)){for(var a=0;a{var d=r(9182);var a=r(20042);var t=r(63072);var n=r(23810);var f=r(2003);var i=r(29171);var c=r(36734);var o=r(51537),s=o.RegExpTree;var l={parser:n,fa:c,TransformResult:f.TransformResult,parse:function u(e,r){return n.parse(""+e,r)},traverse:function u(e,r,d){return i.traverse(e,r,d)},transform:function u(e,r){return f.transform(e,r)},generate:function u(e){return a.generate(e)},toRegExp:function u(e){var r=this.compatTranspile(e);return new RegExp(r.getSource(),r.getFlags())},optimize:function u(e,r){var d=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{},a=d.blacklist;return t.optimize(e,{whitelist:r,blacklist:a})},compatTranspile:function u(e,r){return d.transform(e,r)},exec:function u(e,r){if(typeof e==="string"){var d=this.compatTranspile(e);var a=d.getExtra();if(a.namedCapturingGroups){e=new s(d.toRegExp(),{flags:d.getFlags(),source:d.getSource(),groups:a.namedCapturingGroups})}else{e=d.toRegExp()}}return e.exec(r)}};u.exports=l},2003:(u,e,r)=>{var d=function(){function u(u,e){for(var r=0;r1&&arguments[1]!==undefined?arguments[1]:null;a(this,u);this._ast=e;this._source=null;this._string=null;this._regexp=null;this._extra=r}d(u,[{key:"getAST",value:function u(){return this._ast}},{key:"setExtra",value:function u(e){this._extra=e}},{key:"getExtra",value:function u(){return this._extra}},{key:"toRegExp",value:function u(){if(!this._regexp){this._regexp=new RegExp(this.getSource(),this._ast.flags)}return this._regexp}},{key:"getSource",value:function u(){if(!this._source){this._source=t.generate(this._ast.body)}return this._source}},{key:"getFlags",value:function u(){return this._ast.flags}},{key:"toString",value:function u(){if(!this._string){this._string=t.generate(this._ast)}return this._string}}]);return u}();u.exports={TransformResult:i,transform:function u(e,r){var d=e;if(e instanceof RegExp){e=""+e}if(typeof e==="string"){d=n.parse(e,{captureLocations:true})}f.traverse(d,r);return new i(d)}}},33166:u=>{function e(u){if(Array.isArray(u)){for(var e=0,r=Array(u.length);e{var d=r(41059);function a(u){var e=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var r=e.pre;var a=e.post;var t=e.skipProperty;function n(u,e,f,i){if(!u||typeof u.type!=="string"){return}var c=undefined;if(r){c=r(u,e,f,i)}if(c!==false){if(e&&e[f]){if(!isNaN(i)){u=e[f][i]}else{u=e[f]}}for(var o in u){if(u.hasOwnProperty(o)){if(t?t(o,u):o[0]==="$"){continue}var s=u[o];if(Array.isArray(s)){var l=0;d.traversingIndexStack.push(l);while(l2&&arguments[2]!==undefined?arguments[2]:{asNodes:false};if(!Array.isArray(r)){r=[r]}r=r.filter((function(u){if(typeof u.shouldRun!=="function"){return true}return u.shouldRun(e)}));d.initRegistry();r.forEach((function(u){if(typeof u.init==="function"){u.init(e)}}));function n(u,e,r,a){var t=d.getForNode(e);var n=d.getForNode(u,t,r,a);return n}a(e,{pre:function u(e,d,a,f){var i=void 0;if(!t.asNodes){i=n(e,d,a,f)}var c=true;var o=false;var s=undefined;try{for(var l=r[Symbol.iterator](),b;!(c=(b=l.next()).done);c=true){var p=b.value;if(typeof p["*"]==="function"){if(i){if(!i.isRemoved()){var h=p["*"](i);if(h===false){return false}}}else{p["*"](e,d,a,f)}}var v=void 0;if(typeof p[e.type]==="function"){v=p[e.type]}else if(typeof p[e.type]==="object"&&typeof p[e.type].pre==="function"){v=p[e.type].pre}if(v){if(i){if(!i.isRemoved()){var g=v.call(p,i);if(g===false){return false}}}else{v.call(p,e,d,a,f)}}}}catch(y){o=true;s=y}finally{try{if(!c&&l.return){l.return()}}finally{if(o){throw s}}}},post:function u(e,d,a,f){if(!e){return}var i=void 0;if(!t.asNodes){i=n(e,d,a,f)}var c=true;var o=false;var s=undefined;try{for(var l=r[Symbol.iterator](),b;!(c=(b=l.next()).done);c=true){var p=b.value;var h=void 0;if(typeof p[e.type]==="object"&&typeof p[e.type].post==="function"){h=p[e.type].post}if(h){if(i){if(!i.isRemoved()){var v=h.call(p,i);if(v===false){return false}}}else{h.call(p,e,d,a,f)}}}}catch(g){o=true;s=g}finally{try{if(!c&&l.return){l.return()}}finally{if(o){throw s}}}},skipProperty:function u(e){return e==="loc"}})}}},41059:u=>{var e=function(){function u(u,e){for(var r=0;r1&&arguments[1]!==undefined?arguments[1]:null;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var t=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;r(this,u);this.node=e;this.parentPath=d;this.parent=d?d.node:null;this.property=a;this.index=t}e(u,[{key:"_enforceProp",value:function u(e){if(!this.node.hasOwnProperty(e)){throw new Error("Node of type "+this.node.type+" doesn't have \""+e+'" collection.')}}},{key:"setChild",value:function e(r){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var n=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var f=void 0;if(t!=null){if(!n){n=d}this._enforceProp(n);this.node[n][t]=r;f=u.getForNode(r,this,n,t)}else{if(!n){n=a}this._enforceProp(n);this.node[n]=r;f=u.getForNode(r,this,n,null)}return f}},{key:"appendChild",value:function u(e){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(!r){r=d}this._enforceProp(r);var a=this.node[r].length;return this.setChild(e,a,r)}},{key:"insertChildAt",value:function e(r,a){var t=arguments.length>2&&arguments[2]!==undefined?arguments[2]:d;this._enforceProp(t);this.node[t].splice(a,0,r);if(a<=u.getTraversingIndex()){u.updateTraversingIndex(+1)}this._rebuildIndex(this.node,t)}},{key:"remove",value:function e(){if(this.isRemoved()){return}u.registry.delete(this.node);this.node=null;if(!this.parent){return}if(this.index!==null){this.parent[this.property].splice(this.index,1);if(this.index<=u.getTraversingIndex()){u.updateTraversingIndex(-1)}this._rebuildIndex(this.parent,this.property);this.index=null;this.property=null;return}delete this.parent[this.property];this.property=null}},{key:"_rebuildIndex",value:function e(r,d){var a=u.getForNode(r);for(var t=0;t0&&arguments[0]!==undefined?arguments[0]:0;if(this.node.expressions){return u.getForNode(this.node.expressions[r],this,d,r)}else if(this.node.expression&&r==0){return u.getForNode(this.node.expression,this,a)}return null}},{key:"hasEqualSource",value:function u(e){return JSON.stringify(this.node,n)===JSON.stringify(e.node,n)}},{key:"jsonEncode",value:function u(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},r=e.format,d=e.useLoc;return JSON.stringify(this.node,d?null:n,r)}},{key:"getPreviousSibling",value:function e(){if(!this.parent||this.index==null){return null}return u.getForNode(this.parent[this.property][this.index-1],u.getForNode(this.parent),this.property,this.index-1)}},{key:"getNextSibling",value:function e(){if(!this.parent||this.index==null){return null}return u.getForNode(this.parent[this.property][this.index+1],u.getForNode(this.parent),this.property,this.index+1)}}],[{key:"getForNode",value:function e(r){var d=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var t=arguments.length>3&&arguments[3]!==undefined?arguments[3]:-1;if(!r){return null}if(!u.registry.has(r)){u.registry.set(r,new u(r,d,a,t==-1?null:t))}var n=u.registry.get(r);if(d!==null){n.parentPath=d;n.parent=n.parentPath.node}if(a!==null){n.property=a}if(t>=0){n.index=t}return n}},{key:"initRegistry",value:function e(){if(!u.registry){u.registry=new Map}u.registry.clear()}},{key:"updateTraversingIndex",value:function e(r){return u.traversingIndexStack[u.traversingIndexStack.length-1]+=r}},{key:"getTraversingIndex",value:function e(){return u.traversingIndexStack[u.traversingIndexStack.length-1]}}]);return u}();t.initRegistry();t.traversingIndexStack=[];function n(u,e){if(u==="loc"){return undefined}return e}u.exports=t},1379:u=>{u.exports=function u(e){if(e===null||typeof e!=="object"){return e}var r=void 0;if(Array.isArray(e)){r=[]}else{r={}}for(var d in e){r[d]=u(e[d])}return r}},34999:(u,e,r)=>{u.exports=r(54676)}}]); \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9892.6d289e7baed8c64d88e2.js.LICENSE.txt b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9892.6d289e7baed8c64d88e2.js.LICENSE.txt deleted file mode 100644 index 5ef2b40c0581b98689d39124cc07c0cf73c194a4..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/9892.6d289e7baed8c64d88e2.js.LICENSE.txt +++ /dev/null @@ -1,15 +0,0 @@ -/*! -Copyright 2019 Ron Buckton - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/a009bea404f7a500ded4.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/a009bea404f7a500ded4.woff deleted file mode 100644 index e62ff5fdceb428c7b53974b4815c0a76ecae5016..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/a009bea404f7a500ded4.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/a3b9817780214caf01e8.svg b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/a3b9817780214caf01e8.svg deleted file mode 100644 index b9881a43b7313e5a033582e4bf0bcb26bf11730c..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/a3b9817780214caf01e8.svg +++ /dev/null @@ -1,3717 +0,0 @@ - - - - -Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/af04542b29eaac04550a.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/af04542b29eaac04550a.woff deleted file mode 100644 index 57819c51537046bcb02f0a05f62cb681b093c79b..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/af04542b29eaac04550a.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/af96f67d7accf5fd2a4a.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/af96f67d7accf5fd2a4a.woff deleted file mode 100644 index a9d1f345bff3b0131f7759f0022778e393fb2b00..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/af96f67d7accf5fd2a4a.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/b418136e3b384baaadec.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/b418136e3b384baaadec.woff deleted file mode 100644 index d1ff7c6bd3e49326fd38d631fb05d5106f3455e6..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/b418136e3b384baaadec.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/be0a084962d8066884f7.svg b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/be0a084962d8066884f7.svg deleted file mode 100644 index 463af27c02dd3cf5f729e35f23050d4567855824..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/be0a084962d8066884f7.svg +++ /dev/null @@ -1,801 +0,0 @@ - - - - -Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/bootstrap.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/bootstrap.js deleted file mode 100644 index 9a5ae3eb3187ce70450db1ea825a58b551ac140c..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/bootstrap.js +++ /dev/null @@ -1,98 +0,0 @@ -// This file is auto-generated from the corresponding file in /dev_mode -/* - * Copyright (c) Jupyter Development Team. - * Distributed under the terms of the Modified BSD License. - */ - -// We copy some of the pageconfig parsing logic in @jupyterlab/coreutils -// below, since this must run before any other files are loaded (including -// @jupyterlab/coreutils). - -/** - * Get global configuration data for the Jupyter application. - * - * @param name - The name of the configuration option. - * - * @returns The config value or an empty string if not found. - * - * #### Notes - * All values are treated as strings. For browser based applications, it is - * assumed that the page HTML includes a script tag with the id - * `jupyter-config-data` containing the configuration as valid JSON. - */ -let _CONFIG_DATA = null; -function getOption(name) { - if (_CONFIG_DATA === null) { - let configData = {}; - // Use script tag if available. - if (typeof document !== 'undefined' && document) { - const el = document.getElementById('jupyter-config-data'); - - if (el) { - configData = JSON.parse(el.textContent || '{}'); - } - } - _CONFIG_DATA = configData; - } - - return _CONFIG_DATA[name] || ''; -} - -// eslint-disable-next-line no-undef -__webpack_public_path__ = getOption('fullStaticUrl') + '/'; - -function loadScript(url) { - return new Promise((resolve, reject) => { - const newScript = document.createElement('script'); - newScript.onerror = reject; - newScript.onload = resolve; - newScript.async = true; - document.head.appendChild(newScript); - newScript.src = url; - }); -} - -async function loadComponent(url, scope) { - await loadScript(url); - - // From https://webpack.js.org/concepts/module-federation/#dynamic-remote-containers - // eslint-disable-next-line no-undef - await __webpack_init_sharing__('default'); - const container = window._JUPYTERLAB[scope]; - // Initialize the container, it may provide shared modules and may need ours - // eslint-disable-next-line no-undef - await container.init(__webpack_share_scopes__.default); -} - -void (async function bootstrap() { - // This is all the data needed to load and activate plugins. This should be - // gathered by the server and put onto the initial page template. - const extension_data = getOption('federated_extensions'); - - // We first load all federated components so that the shared module - // deduplication can run and figure out which shared modules from all - // components should be actually used. We have to do this before importing - // and using the module that actually uses these components so that all - // dependencies are initialized. - let labExtensionUrl = getOption('fullLabextensionsUrl'); - const extensions = await Promise.allSettled( - extension_data.map(async data => { - await loadComponent( - `${labExtensionUrl}/${data.name}/${data.load}`, - data.name - ); - }) - ); - - extensions.forEach(p => { - if (p.status === 'rejected') { - // There was an error loading the component - console.error(p.reason); - } - }); - - // Now that all federated containers are initialized with the main - // container, we can import the main function. - let main = (await import('./index.out.js')).main; - window.addEventListener('load', main); -})(); diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/build_log.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/build_log.json deleted file mode 100644 index 4fd169ad3f9709ed263f51d062ddf215db3cc25a..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/build_log.json +++ /dev/null @@ -1,805 +0,0 @@ -[ - { - "bail": true, - "module": { - "rules": [ - { - "test": {}, - "type": "asset/source" - }, - { - "test": {}, - "use": [ - "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/style-loader/dist/cjs.js", - "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/css-loader/dist/cjs.js" - ] - }, - { - "test": {}, - "type": "asset/source" - }, - { - "test": {}, - "type": "asset/source" - }, - { - "test": {}, - "type": "asset/resource" - }, - { - "test": {}, - "type": "asset/resource" - }, - { - "test": {}, - "type": "asset/resource" - }, - { - "test": {}, - "type": "asset/resource" - }, - { - "test": {}, - "type": "asset/resource" - }, - { - "test": {}, - "type": "asset/resource" - }, - { - "test": {}, - "issuer": {}, - "type": "asset", - "generator": {} - }, - { - "test": {}, - "issuer": {}, - "type": "asset/source" - }, - { - "test": {}, - "type": "javascript/auto" - }, - { - "test": {}, - "resolve": { - "fullySpecified": false - } - }, - { - "test": {}, - "resolve": { - "fullySpecified": false - } - }, - { - "test": {}, - "include": [], - "use": [ - "source-map-loader" - ], - "enforce": "pre" - } - ] - }, - "resolve": { - "fallback": { - "url": false, - "buffer": false, - "crypto": false, - "path": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/path-browserify/index.js", - "process": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/process/browser.js" - } - }, - "watchOptions": { - "poll": 500, - "aggregateTimeout": 1000 - }, - "output": { - "hashFunction": "sha256", - "path": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/build", - "publicPath": "{{page_config.fullStaticUrl}}/", - "filename": "[name].[contenthash].js" - }, - "plugins": [ - { - "definitions": { - "process": "process/browser" - } - }, - { - "options": { - "verbose": true, - "showHelp": true, - "emitError": false, - "strict": true - } - }, - { - "userOptions": { - "chunksSortMode": "none", - "template": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/templates/template.html", - "title": "JupyterLab" - }, - "version": 5 - }, - {}, - { - "buildDir": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/build", - "staticDir": "../static", - "_first": true - }, - { - "_options": { - "library": { - "type": "var", - "name": [ - "_JUPYTERLAB", - "CORE_LIBRARY_FEDERATION" - ] - }, - "name": "CORE_FEDERATION", - "shared": { - "@codemirror/language": { - "requiredVersion": "^6.0.0", - "singleton": true - }, - "@codemirror/state": { - "requiredVersion": "^6.2.0", - "singleton": true - }, - "@codemirror/view": { - "requiredVersion": "^6.9.6", - "singleton": true - }, - "@jupyter/react-components": { - "requiredVersion": "^0.16.6", - "singleton": true - }, - "@jupyter/web-components": { - "requiredVersion": "^0.16.6", - "singleton": true - }, - "@jupyter/ydoc": { - "requiredVersion": "^3.0.0-a3", - "singleton": true - }, - "@jupyterlab/application": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/application-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/apputils": { - "requiredVersion": "~4.5.2", - "singleton": true - }, - "@jupyterlab/apputils-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/attachments": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/cell-toolbar": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/cell-toolbar-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/cells": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/celltags-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/codeeditor": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/codemirror": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/codemirror-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/completer": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/completer-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/console": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/console-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/coreutils": { - "requiredVersion": "~6.4.2", - "singleton": true - }, - "@jupyterlab/csvviewer": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/csvviewer-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/debugger": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/debugger-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/docmanager": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/docmanager-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/docregistry": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/documentsearch": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/documentsearch-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/extensionmanager": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/extensionmanager-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/filebrowser": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/filebrowser-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/fileeditor": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/fileeditor-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/help-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/htmlviewer": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/htmlviewer-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/hub-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/imageviewer": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/imageviewer-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/inspector": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/inspector-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/javascript-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/json-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/launcher": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/launcher-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/logconsole": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/logconsole-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/lsp": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/lsp-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/mainmenu": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/mainmenu-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/markdownviewer": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/markdownviewer-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/markedparser-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/mathjax-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/mermaid": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/mermaid-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/metadataform": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/metadataform-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/metapackage": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/nbconvert-css": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/nbformat": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/notebook": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/notebook-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/observables": { - "requiredVersion": "~5.4.2" - }, - "@jupyterlab/outputarea": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/pdf-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/pluginmanager": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/pluginmanager-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/property-inspector": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/rendermime": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/rendermime-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/rendermime-interfaces": { - "requiredVersion": "~3.12.2", - "singleton": true - }, - "@jupyterlab/running": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/running-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/services": { - "requiredVersion": "~7.4.2", - "singleton": true - }, - "@jupyterlab/services-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/settingeditor": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/settingeditor-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/settingregistry": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/shortcuts-extension": { - "requiredVersion": "~5.2.2" - }, - "@jupyterlab/statedb": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/statusbar": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/statusbar-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/terminal": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/terminal-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/theme-dark-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/theme-dark-high-contrast-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/theme-light-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/toc": { - "requiredVersion": "~6.4.2", - "singleton": true - }, - "@jupyterlab/toc-extension": { - "requiredVersion": "~6.4.2" - }, - "@jupyterlab/tooltip": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/tooltip-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/translation": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/translation-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/ui-components": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/ui-components-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/vega5-extension": { - "requiredVersion": "~4.4.2" - }, - "@jupyterlab/workspaces": { - "requiredVersion": "~4.4.2", - "singleton": true - }, - "@jupyterlab/workspaces-extension": { - "requiredVersion": "~4.4.2" - }, - "@lezer/common": { - "requiredVersion": "^1.0.0", - "singleton": true - }, - "@lezer/highlight": { - "requiredVersion": "^1.0.0", - "singleton": true - }, - "@lumino/algorithm": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/application": { - "requiredVersion": "^2.3.0-alpha.0", - "singleton": true - }, - "@lumino/commands": { - "requiredVersion": "^2.0.1", - "singleton": true - }, - "@lumino/coreutils": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/datagrid": { - "requiredVersion": "^2.3.0-alpha.0", - "singleton": true - }, - "@lumino/disposable": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/domutils": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/dragdrop": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/keyboard": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/messaging": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/polling": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/properties": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/signaling": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/virtualdom": { - "requiredVersion": "^2.0.0", - "singleton": true - }, - "@lumino/widgets": { - "requiredVersion": "^2.3.1-alpha.0", - "singleton": true - }, - "@microsoft/fast-element": { - "requiredVersion": "^1.12.0", - "singleton": true - }, - "@microsoft/fast-foundation": { - "requiredVersion": "^2.49.2", - "singleton": true - }, - "react": { - "requiredVersion": "^18.2.0", - "singleton": true - }, - "react-dom": { - "requiredVersion": "^18.2.0", - "singleton": true - }, - "yjs": { - "requiredVersion": "^13.5.40", - "singleton": true - }, - "react-toastify": { - "requiredVersion": "^9.0.8" - }, - "@rjsf/utils": { - "requiredVersion": "^5.13.4" - }, - "@codemirror/commands": { - "requiredVersion": "^6.8.1" - }, - "@codemirror/lang-markdown": { - "requiredVersion": "^6.3.2" - }, - "@codemirror/legacy-modes": { - "requiredVersion": "^6.5.1" - }, - "@codemirror/search": { - "requiredVersion": "^6.5.10" - }, - "@rjsf/validator-ajv8": { - "requiredVersion": "^5.13.4" - }, - "marked": { - "requiredVersion": "^15.0.7" - }, - "marked-gfm-heading-id": { - "requiredVersion": "^4.1.1" - }, - "marked-mangle": { - "requiredVersion": "^1.1.10" - }, - "mathjax-full": { - "requiredVersion": "^3.2.2" - }, - "react-highlight-words": { - "requiredVersion": "^0.20.0" - }, - "react-json-tree": { - "requiredVersion": "^0.18.0" - }, - "style-mod": { - "requiredVersion": "^4.0.0" - }, - "vega": { - "requiredVersion": "^5.20.0" - }, - "vega-embed": { - "requiredVersion": "^6.2.1" - }, - "vega-lite": { - "requiredVersion": "^5.6.1-next.1" - } - } - } - } - ], - "mode": "development", - "entry": { - "main": [ - "./publicpath", - "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/build/bootstrap.js" - ] - }, - "optimization": { - "splitChunks": { - "chunks": "all", - "cacheGroups": { - "jlab_core": { - "test": {}, - "name": "jlab_core" - } - } - } - }, - "devtool": "inline-source-map", - "externals": [ - "ws" - ] - }, - { - "mode": "production", - "entry": { - "index": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/@jupyterlab/theme-dark-extension/style/theme.css" - }, - "output": { - "path": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/themes/@jupyterlab/theme-dark-extension", - "filename": "[name].js", - "hashFunction": "sha256" - }, - "module": { - "rules": [ - { - "test": {}, - "use": [ - "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/mini-css-extract-plugin/dist/loader.js", - "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/css-loader/dist/cjs.js" - ] - }, - { - "test": {}, - "type": "asset/inline", - "generator": {} - }, - { - "test": {}, - "type": "asset" - } - ] - }, - "plugins": [ - { - "_sortedModulesCache": {}, - "options": { - "filename": "[name].css", - "ignoreOrder": false, - "runtime": true, - "chunkFilename": "[id].css" - }, - "runtimeOptions": { - "linkType": "text/css" - } - } - ] - }, - { - "mode": "production", - "entry": { - "index": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/@jupyterlab/theme-dark-high-contrast-extension/style/theme.css" - }, - "output": { - "path": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/themes/@jupyterlab/theme-dark-high-contrast-extension", - "filename": "[name].js", - "hashFunction": "sha256" - }, - "module": { - "rules": [ - { - "test": {}, - "use": [ - "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/mini-css-extract-plugin/dist/loader.js", - "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/css-loader/dist/cjs.js" - ] - }, - { - "test": {}, - "type": "asset/inline", - "generator": {} - }, - { - "test": {}, - "type": "asset" - } - ] - }, - "plugins": [ - { - "_sortedModulesCache": {}, - "options": { - "filename": "[name].css", - "ignoreOrder": false, - "runtime": true, - "chunkFilename": "[id].css" - }, - "runtimeOptions": { - "linkType": "text/css" - } - } - ] - }, - { - "mode": "production", - "entry": { - "index": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/@jupyterlab/theme-light-extension/style/theme.css" - }, - "output": { - "path": "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/themes/@jupyterlab/theme-light-extension", - "filename": "[name].js", - "hashFunction": "sha256" - }, - "module": { - "rules": [ - { - "test": {}, - "use": [ - "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/mini-css-extract-plugin/dist/loader.js", - "/home/runner/work/jupyterlab/jupyterlab/.jupyter_releaser_checkout/jupyterlab/staging/node_modules/css-loader/dist/cjs.js" - ] - }, - { - "test": {}, - "type": "asset/inline", - "generator": {} - }, - { - "test": {}, - "type": "asset" - } - ] - }, - "plugins": [ - { - "_sortedModulesCache": {}, - "options": { - "filename": "[name].css", - "ignoreOrder": false, - "runtime": true, - "chunkFilename": "[id].css" - }, - "runtimeOptions": { - "linkType": "text/css" - } - } - ] - } -] \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/c49810b53ecc0d87d802.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/c49810b53ecc0d87d802.woff deleted file mode 100644 index e735ddf8505afa47b3901ab90560caa72e57b755..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/c49810b53ecc0d87d802.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/c56da8d69f1a0208b8e0.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/c56da8d69f1a0208b8e0.woff deleted file mode 100644 index 510a8dacfa0a6e6db1e139cf1ae6095c689f3849..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/c56da8d69f1a0208b8e0.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/cb9e9e693192413cde2b.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/cb9e9e693192413cde2b.woff deleted file mode 100644 index ad077c6bec782b7c15bfa4ec96ee5900faaa3ccb..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/cb9e9e693192413cde2b.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/e42a88444448ac3d6054.woff2 b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/e42a88444448ac3d6054.woff2 deleted file mode 100644 index 56328948b3b1bacb23a13af9d727fd75c0343448..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/e42a88444448ac3d6054.woff2 and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/e8711bbb871afd8e9dea.ttf b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/e8711bbb871afd8e9dea.ttf deleted file mode 100644 index 7157aafbacdb095b479ae52f59e28e19ce61d79a..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/e8711bbb871afd8e9dea.ttf and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/f9217f66874b0c01cd8c.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/f9217f66874b0c01cd8c.woff deleted file mode 100644 index 3375bef0911555af28fea3c02c3e7671c50a5e7b..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/f9217f66874b0c01cd8c.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/fc6ddf5df402b263cfb1.woff b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/fc6ddf5df402b263cfb1.woff deleted file mode 100644 index 22e5eff737c68962138420de5742413683fbcea0..0000000000000000000000000000000000000000 Binary files a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/fc6ddf5df402b263cfb1.woff and /dev/null differ diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/index.html b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/index.html deleted file mode 100644 index 834e6fe06523ca1199fd62dd6fedd95d6895ddcb..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/index.html +++ /dev/null @@ -1,25 +0,0 @@ -JupyterLab{# Copy so we do not modify the page_config with updates. #} {% set page_config_full = page_config.copy() %} {# Set a dummy variable - we just want the side effect of the update. #} {% set _ = page_config_full.update(baseUrl=base_url, wsUrl=ws_url) %}{% block favicon %}{% endblock %} {% if custom_css %}{% endif %} \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/index.out.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/index.out.js deleted file mode 100644 index a0d845be45f025098774346159d57e96933a05c3..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/index.out.js +++ /dev/null @@ -1,827 +0,0 @@ -// This file is auto-generated from the corresponding file in /dev_mode -/* - * Copyright (c) Jupyter Development Team. - * Distributed under the terms of the Modified BSD License. - */ - -import { PageConfig } from '@jupyterlab/coreutils'; -import { PluginRegistry } from '@lumino/coreutils'; - -import './style.js'; - -async function createModule(scope, module) { - try { - const factory = await window._JUPYTERLAB[scope].get(module); - const instance = factory(); - instance.__scope__ = scope; - return instance; - } catch(e) { - console.warn(`Failed to create module: package: ${scope}; module: ${module}`); - throw e; - } -} - -/** - * The main entry point for the application. - */ -export async function main() { - - // Handle a browser test. - // Set up error handling prior to loading extensions. - var browserTest = PageConfig.getOption('browserTest'); - if (browserTest.toLowerCase() === 'true') { - var el = document.createElement('div'); - el.id = 'browserTest'; - document.body.appendChild(el); - el.textContent = '[]'; - el.style.display = 'none'; - var errors = []; - var reported = false; - var timeout = 25000; - - var report = function() { - if (reported) { - return; - } - reported = true; - el.className = 'completed'; - } - - window.onerror = function(msg, url, line, col, error) { - errors.push(String(error)); - el.textContent = JSON.stringify(errors) - }; - console.error = function(message) { - errors.push(String(message)); - el.textContent = JSON.stringify(errors) - }; - } - - var pluginRegistry = new PluginRegistry(); - var JupyterLab = require('@jupyterlab/application').JupyterLab; - var disabled = []; - var deferred = []; - var ignorePlugins = []; - var register = []; - - - const federatedExtensionPromises = []; - const federatedMimeExtensionPromises = []; - const federatedStylePromises = []; - - // Start initializing the federated extensions - const extensions = JSON.parse( - PageConfig.getOption('federated_extensions') - ); - - // Keep a mapping of renamed plugin ids to ensure user configs don't break. - // The mapping is defined in the main index.js for JupyterLab, since it may not be relevant for - // other lab-based applications (they may not use the same set of plugins). - const renamedPluginIds = { - '@jupyterlab/application:mimedocument': '@jupyterlab/application-extension:mimedocument', - '@jupyterlab/help-extension:licenses': '@jupyterlab/apputils-extension:licenses-plugin', - '@jupyterlab/lsp:ILSPCodeExtractorsManager': '@jupyterlab/lsp-extension:code-extractor-manager', - '@jupyterlab/translation:translator': '@jupyterlab/translation-extension:translator', - '@jupyterlab/workspaces:commands': '@jupyterlab/workspaces-extension:commands' - }; - - // Transparently handle the case of renamed plugins, so current configs don't break. - // And emit a warning in the dev tools console to notify about the rename so - // users can update their config. - const disabledExtensions = PageConfig.Extension.disabled.map(id => { - if (renamedPluginIds[id]) { - console.warn(`Plugin ${id} has been renamed to ${renamedPluginIds[id]}. Consider updating your config to use the new name.`); - return renamedPluginIds[id]; - } - return id; - }); - - const deferredExtensions = PageConfig.Extension.deferred.map(id => { - if (renamedPluginIds[id]) { - console.warn(`Plugin id ${id} has been renamed to ${renamedPluginIds[id]}. Consider updating your config to use the new name.`); - return renamedPluginIds[id]; - } - return id; - }); - - // This is basically a copy of PageConfig.Extension.isDisabled to - // take into account the case of renamed plugins. - const isPluginDisabled = (id) => { - const separatorIndex = id.indexOf(':'); - let extName = ''; - if (separatorIndex !== -1) { - extName = id.slice(0, separatorIndex); - } - return disabledExtensions.some(val => val === id || (extName && val === extName)); - } - - // This is basically a copy of PageConfig.Extension.isDeferred to - // take into account the case of renamed plugins. - const isPluginDeferred = (id) => { - const separatorIndex = id.indexOf(':'); - let extName = ''; - if (separatorIndex !== -1) { - extName = id.slice(0, separatorIndex); - } - return deferredExtensions.some(val => val === id || (extName && val === extName)); - } - - const queuedFederated = []; - - extensions.forEach(data => { - if (data.extension) { - queuedFederated.push(data.name); - federatedExtensionPromises.push(createModule(data.name, data.extension)); - } - if (data.mimeExtension) { - queuedFederated.push(data.name); - federatedMimeExtensionPromises.push(createModule(data.name, data.mimeExtension)); - } - - if (data.style && !isPluginDisabled(data.name)) { - federatedStylePromises.push(createModule(data.name, data.style)); - } - }); - - const allPlugins = []; - - /** - * Get the plugins from an extension. - */ - function getPlugins(extension) { - // Handle commonjs or es2015 modules - let exports; - if (extension.hasOwnProperty('__esModule')) { - exports = extension.default; - } else { - // CommonJS exports. - exports = extension; - } - - return Array.isArray(exports) ? exports : [exports]; - } - - /** - * Iterate over active plugins in an extension. - * - * #### Notes - * This also populates the disabled, deferred, and ignored arrays. - */ - function* activePlugins(extension) { - const plugins = getPlugins(extension); - for (let plugin of plugins) { - const isDisabled = isPluginDisabled(plugin.id); - allPlugins.push({ - id: plugin.id, - description: plugin.description, - requires: plugin.requires ?? [], - optional: plugin.optional ?? [], - provides: plugin.provides ?? null, - autoStart: plugin.autoStart, - enabled: !isDisabled, - extension: extension.__scope__ - }); - if (isDisabled) { - disabled.push(plugin.id); - continue; - } - if (isPluginDeferred(plugin.id)) { - deferred.push(plugin.id); - ignorePlugins.push(plugin.id); - } - yield plugin; - } - } - - // Handle the registered mime extensions. - const mimeExtensions = []; - if (!queuedFederated.includes('@jupyterlab/javascript-extension')) { - try { - let ext = require('@jupyterlab/javascript-extension'); - ext.__scope__ = '@jupyterlab/javascript-extension'; - for (let plugin of activePlugins(ext)) { - mimeExtensions.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/json-extension')) { - try { - let ext = require('@jupyterlab/json-extension'); - ext.__scope__ = '@jupyterlab/json-extension'; - for (let plugin of activePlugins(ext)) { - mimeExtensions.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/mermaid-extension')) { - try { - let ext = require('@jupyterlab/mermaid-extension/lib/mime.js'); - ext.__scope__ = '@jupyterlab/mermaid-extension'; - for (let plugin of activePlugins(ext)) { - mimeExtensions.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/pdf-extension')) { - try { - let ext = require('@jupyterlab/pdf-extension'); - ext.__scope__ = '@jupyterlab/pdf-extension'; - for (let plugin of activePlugins(ext)) { - mimeExtensions.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/vega5-extension')) { - try { - let ext = require('@jupyterlab/vega5-extension'); - ext.__scope__ = '@jupyterlab/vega5-extension'; - for (let plugin of activePlugins(ext)) { - mimeExtensions.push(plugin); - } - } catch (e) { - console.error(e); - } - } - - // Add the federated mime extensions. - const federatedMimeExtensions = await Promise.allSettled(federatedMimeExtensionPromises); - federatedMimeExtensions.forEach(p => { - if (p.status === "fulfilled") { - for (let plugin of activePlugins(p.value)) { - mimeExtensions.push(plugin); - } - } else { - console.error(p.reason); - } - }); - - // Handled the registered standard extensions. - if (!queuedFederated.includes('@jupyterlab/application-extension')) { - try { - let ext = require('@jupyterlab/application-extension'); - ext.__scope__ = '@jupyterlab/application-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/apputils-extension')) { - try { - let ext = require('@jupyterlab/apputils-extension'); - ext.__scope__ = '@jupyterlab/apputils-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/cell-toolbar-extension')) { - try { - let ext = require('@jupyterlab/cell-toolbar-extension'); - ext.__scope__ = '@jupyterlab/cell-toolbar-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/celltags-extension')) { - try { - let ext = require('@jupyterlab/celltags-extension'); - ext.__scope__ = '@jupyterlab/celltags-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/codemirror-extension')) { - try { - let ext = require('@jupyterlab/codemirror-extension'); - ext.__scope__ = '@jupyterlab/codemirror-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/completer-extension')) { - try { - let ext = require('@jupyterlab/completer-extension'); - ext.__scope__ = '@jupyterlab/completer-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/console-extension')) { - try { - let ext = require('@jupyterlab/console-extension'); - ext.__scope__ = '@jupyterlab/console-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/csvviewer-extension')) { - try { - let ext = require('@jupyterlab/csvviewer-extension'); - ext.__scope__ = '@jupyterlab/csvviewer-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/debugger-extension')) { - try { - let ext = require('@jupyterlab/debugger-extension'); - ext.__scope__ = '@jupyterlab/debugger-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/docmanager-extension')) { - try { - let ext = require('@jupyterlab/docmanager-extension'); - ext.__scope__ = '@jupyterlab/docmanager-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/documentsearch-extension')) { - try { - let ext = require('@jupyterlab/documentsearch-extension'); - ext.__scope__ = '@jupyterlab/documentsearch-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/extensionmanager-extension')) { - try { - let ext = require('@jupyterlab/extensionmanager-extension'); - ext.__scope__ = '@jupyterlab/extensionmanager-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/filebrowser-extension')) { - try { - let ext = require('@jupyterlab/filebrowser-extension'); - ext.__scope__ = '@jupyterlab/filebrowser-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/fileeditor-extension')) { - try { - let ext = require('@jupyterlab/fileeditor-extension'); - ext.__scope__ = '@jupyterlab/fileeditor-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/help-extension')) { - try { - let ext = require('@jupyterlab/help-extension'); - ext.__scope__ = '@jupyterlab/help-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/htmlviewer-extension')) { - try { - let ext = require('@jupyterlab/htmlviewer-extension'); - ext.__scope__ = '@jupyterlab/htmlviewer-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/hub-extension')) { - try { - let ext = require('@jupyterlab/hub-extension'); - ext.__scope__ = '@jupyterlab/hub-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/imageviewer-extension')) { - try { - let ext = require('@jupyterlab/imageviewer-extension'); - ext.__scope__ = '@jupyterlab/imageviewer-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/inspector-extension')) { - try { - let ext = require('@jupyterlab/inspector-extension'); - ext.__scope__ = '@jupyterlab/inspector-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/launcher-extension')) { - try { - let ext = require('@jupyterlab/launcher-extension'); - ext.__scope__ = '@jupyterlab/launcher-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/logconsole-extension')) { - try { - let ext = require('@jupyterlab/logconsole-extension'); - ext.__scope__ = '@jupyterlab/logconsole-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/lsp-extension')) { - try { - let ext = require('@jupyterlab/lsp-extension'); - ext.__scope__ = '@jupyterlab/lsp-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/mainmenu-extension')) { - try { - let ext = require('@jupyterlab/mainmenu-extension'); - ext.__scope__ = '@jupyterlab/mainmenu-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/markdownviewer-extension')) { - try { - let ext = require('@jupyterlab/markdownviewer-extension'); - ext.__scope__ = '@jupyterlab/markdownviewer-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/markedparser-extension')) { - try { - let ext = require('@jupyterlab/markedparser-extension'); - ext.__scope__ = '@jupyterlab/markedparser-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/mathjax-extension')) { - try { - let ext = require('@jupyterlab/mathjax-extension'); - ext.__scope__ = '@jupyterlab/mathjax-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/mermaid-extension')) { - try { - let ext = require('@jupyterlab/mermaid-extension'); - ext.__scope__ = '@jupyterlab/mermaid-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/metadataform-extension')) { - try { - let ext = require('@jupyterlab/metadataform-extension'); - ext.__scope__ = '@jupyterlab/metadataform-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/notebook-extension')) { - try { - let ext = require('@jupyterlab/notebook-extension'); - ext.__scope__ = '@jupyterlab/notebook-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/pluginmanager-extension')) { - try { - let ext = require('@jupyterlab/pluginmanager-extension'); - ext.__scope__ = '@jupyterlab/pluginmanager-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/rendermime-extension')) { - try { - let ext = require('@jupyterlab/rendermime-extension'); - ext.__scope__ = '@jupyterlab/rendermime-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/running-extension')) { - try { - let ext = require('@jupyterlab/running-extension'); - ext.__scope__ = '@jupyterlab/running-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/services-extension')) { - try { - let ext = require('@jupyterlab/services-extension'); - ext.__scope__ = '@jupyterlab/services-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/settingeditor-extension')) { - try { - let ext = require('@jupyterlab/settingeditor-extension'); - ext.__scope__ = '@jupyterlab/settingeditor-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/shortcuts-extension')) { - try { - let ext = require('@jupyterlab/shortcuts-extension'); - ext.__scope__ = '@jupyterlab/shortcuts-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/statusbar-extension')) { - try { - let ext = require('@jupyterlab/statusbar-extension'); - ext.__scope__ = '@jupyterlab/statusbar-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/terminal-extension')) { - try { - let ext = require('@jupyterlab/terminal-extension'); - ext.__scope__ = '@jupyterlab/terminal-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/theme-dark-extension')) { - try { - let ext = require('@jupyterlab/theme-dark-extension'); - ext.__scope__ = '@jupyterlab/theme-dark-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/theme-dark-high-contrast-extension')) { - try { - let ext = require('@jupyterlab/theme-dark-high-contrast-extension'); - ext.__scope__ = '@jupyterlab/theme-dark-high-contrast-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/theme-light-extension')) { - try { - let ext = require('@jupyterlab/theme-light-extension'); - ext.__scope__ = '@jupyterlab/theme-light-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/toc-extension')) { - try { - let ext = require('@jupyterlab/toc-extension'); - ext.__scope__ = '@jupyterlab/toc-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/tooltip-extension')) { - try { - let ext = require('@jupyterlab/tooltip-extension'); - ext.__scope__ = '@jupyterlab/tooltip-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/translation-extension')) { - try { - let ext = require('@jupyterlab/translation-extension'); - ext.__scope__ = '@jupyterlab/translation-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/ui-components-extension')) { - try { - let ext = require('@jupyterlab/ui-components-extension'); - ext.__scope__ = '@jupyterlab/ui-components-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - if (!queuedFederated.includes('@jupyterlab/workspaces-extension')) { - try { - let ext = require('@jupyterlab/workspaces-extension'); - ext.__scope__ = '@jupyterlab/workspaces-extension'; - for (let plugin of activePlugins(ext)) { - register.push(plugin); - } - } catch (e) { - console.error(e); - } - } - - // Add the federated extensions. - const federatedExtensions = await Promise.allSettled(federatedExtensionPromises); - federatedExtensions.forEach(p => { - if (p.status === "fulfilled") { - for (let plugin of activePlugins(p.value)) { - register.push(plugin); - } - } else { - console.error(p.reason); - } - }); - - // Load all federated component styles and log errors for any that do not - (await Promise.allSettled(federatedStylePromises)).filter(({status}) => status === "rejected").forEach(({reason}) => { - console.error(reason); - }); - - // 2. Register the plugins - pluginRegistry.registerPlugins(register); - - // 3. Get and resolve the service manager and connection status plugins - const IConnectionStatus = require('@jupyterlab/services').IConnectionStatus; - const IServiceManager = require('@jupyterlab/services').IServiceManager; - const connectionStatus = await pluginRegistry.resolveOptionalService(IConnectionStatus); - const serviceManager = await pluginRegistry.resolveRequiredService(IServiceManager); - - const lab = new JupyterLab({ - pluginRegistry, - serviceManager, - mimeExtensions, - connectionStatus, - disabled: { - matches: disabled, - patterns: disabledExtensions - .map(function (val) { return val.raw; }) - }, - deferred: { - matches: deferred, - patterns: deferredExtensions - .map(function (val) { return val.raw; }) - }, - availablePlugins: allPlugins - }); - - // 4. Start the application, which will activate the other plugins - lab.start({ ignorePlugins, bubblingKeydown: true }); - - // Expose global app instance when in dev mode or when toggled explicitly. - var exposeAppInBrowser = (PageConfig.getOption('exposeAppInBrowser') || '').toLowerCase() === 'true'; - var devMode = (PageConfig.getOption('devMode') || '').toLowerCase() === 'true'; - - if (exposeAppInBrowser || devMode) { - window.jupyterapp = lab; - } - - // Handle a browser test. - if (browserTest.toLowerCase() === 'true') { - lab.restored - .then(function() { report(errors); }) - .catch(function(reason) { report([`RestoreError: ${reason.message}`]); }); - - // Handle failures to restore after the timeout has elapsed. - window.setTimeout(function() { report(errors); }, timeout); - } -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/jlab_core.aa4a06aeb6f3290b5d8c.js b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/jlab_core.aa4a06aeb6f3290b5d8c.js deleted file mode 100644 index 4303d822c3765fc72b88d9d53c2d94abc5444e57..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/lab/static/jlab_core.aa4a06aeb6f3290b5d8c.js +++ /dev/null @@ -1 +0,0 @@ -(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[4470],{27902:(e,t,n)=>{"use strict";n.r(t);n.d(t,{DEFAULT_CONTEXT_ITEM_RANK:()=>y,default:()=>F});var i=n(94307);var s=n(14366);var o=n(30397);var r=n(57257);var a=n(84739);var l=n(94931);var d=n(24735);var c=n(30619);var h=n(26331);var u=n(34236);var p=n(5592);var m=n(93247);var g=n(90044);var f=n(1143);var v=n(44914);const _="TopBar";const b={id:"@jupyterlab/application-extension:top-bar",description:"Adds a toolbar to the top area (next to the main menu bar).",autoStart:true,requires:[a.ISettingRegistry,s.IToolbarWidgetRegistry],optional:[c.ITranslator],activate:(e,t,n,i)=>{const o=(i!==null&&i!==void 0?i:c.nullTranslator).load("jupyterlab");const r=new h.Toolbar;r.id="jp-top-bar";r.node.setAttribute("aria-label",o.__("Topbar toolbar"));(0,s.setToolbar)(r,(0,s.createToolbarFactory)(n,t,_,b.id,i!==null&&i!==void 0?i:c.nullTranslator),r);e.shell.add(r,"top",{rank:900})}};const y=100;var w;(function(e){e.activateNextTab="application:activate-next-tab";e.activatePreviousTab="application:activate-previous-tab";e.activateNextTabBar="application:activate-next-tab-bar";e.activatePreviousTabBar="application:activate-previous-tab-bar";e.close="application:close";e.closeOtherTabs="application:close-other-tabs";e.closeRightTabs="application:close-right-tabs";e.closeAll="application:close-all";e.setMode="application:set-mode";e.showPropertyPanel="property-inspector:show-panel";e.resetLayout="application:reset-layout";e.toggleContextMenu="application:toggle-context-menu";e.toggleHeader="application:toggle-header";e.toggleMode="application:toggle-mode";e.toggleLeftArea="application:toggle-left-area";e.toggleRightArea="application:toggle-right-area";e.toggleSideTabBar="application:toggle-side-tabbar";e.toggleSidebarWidget="application:toggle-sidebar-widget";e.togglePresentationMode="application:toggle-presentation-mode";e.toggleFullscreenMode="application:toggle-fullscreen-mode";e.tree="router:tree";e.switchSidebar="sidebar:switch"})(w||(w={}));const C={id:"@jupyterlab/application-extension:commands",description:"Adds commands related to the shell.",autoStart:true,requires:[c.ITranslator],optional:[i.ILabShell,s.ICommandPalette],activate:(e,t,n,s)=>{var r;const{commands:a,shell:l}=e;const d=t.load("jupyterlab");const c=d.__("Main Area");a.addCommand(i.JupyterFrontEndContextMenu.contextMenu,{label:d.__("Shift+Right Click for Browser Menu"),isEnabled:()=>false,execute:()=>void 0});const h=()=>{const t=e=>!!e.dataset.id;const n=e.contextMenuHitTest(t);if(!n){return l.currentWidget}return(0,u.find)(l.widgets("main"),(e=>e.id===n.dataset.id))||l.currentWidget};const p=e=>{e.forEach((e=>e.close()))};const m=(e,t)=>{if(e.type==="tab-area"){return e.widgets.includes(t)?e:null}if(e.type==="split-area"){for(const n of e.children){const e=m(n,t);if(e){return e}}}return null};const g=e=>{var t;const i=n===null||n===void 0?void 0:n.saveLayout();const s=i===null||i===void 0?void 0:i.mainArea;if(!s||o.PageConfig.getOption("mode")!=="multiple-document"){return null}const r=(t=s.dock)===null||t===void 0?void 0:t.main;return r?m(r,e):null};const f=e=>{const{id:t}=e;const n=g(e);const i=n?n.widgets||[]:[];const s=i.findIndex((e=>e.id===t));if(s<0){return[]}return i.slice(s+1)};const v=e=>{let t;if(e!="left"&&e!="right"){throw Error(`Unsupported sidebar: ${e}`)}if(e==="left"){t=document.querySelector(".lm-TabBar-tab.lm-mod-current")}else{const e=document.querySelectorAll(".lm-TabBar-tab.lm-mod-current");t=e[e.length-1]}const n=t===null||t===void 0?void 0:t.getAttribute("data-id");if(n){return n===null||n===void 0?void 0:n.toString()}else{return""}};function _(e){if(e){e.focus()}}a.addCommand(w.close,{label:()=>d.__("Close Tab"),isEnabled:()=>{const e=h();return!!e&&e.title.closable},execute:()=>{const e=h();if(e){e.close()}}});a.addCommand(w.closeOtherTabs,{label:()=>d.__("Close All Other Tabs"),isEnabled:()=>(0,u.some)(l.widgets("main"),((e,t)=>t===1)),execute:()=>{const e=h();if(!e){return}const{id:t}=e;for(const n of l.widgets("main")){if(n.id!==t){n.close()}}}});a.addCommand(w.closeRightTabs,{label:()=>d.__("Close Tabs to Right"),isEnabled:()=>!!h()&&f(h()).length>0,execute:()=>{const e=h();if(!e){return}p(f(e))}});(r=l.currentChanged)===null||r===void 0?void 0:r.connect((()=>{[w.close,w.closeOtherTabs,w.closeRightTabs].forEach((e=>a.notifyCommandChanged(e)))}));if(n){a.addCommand(w.activateNextTab,{label:d.__("Activate Next Tab"),execute:()=>{n.activateNextTab()}});a.addCommand(w.activatePreviousTab,{label:d.__("Activate Previous Tab"),execute:()=>{n.activatePreviousTab()}});a.addCommand(w.activateNextTabBar,{label:d.__("Activate Next Tab Bar"),execute:()=>{n.activateNextTabBar()}});a.addCommand(w.activatePreviousTabBar,{label:d.__("Activate Previous Tab Bar"),execute:()=>{n.activatePreviousTabBar()}});a.addCommand(w.closeAll,{label:d.__("Close All Tabs"),execute:()=>{n.closeAll()}});a.addCommand(w.toggleHeader,{label:d.__("Show Header"),execute:()=>{if(n.mode==="single-document"){n.toggleTopInSimpleModeVisibility()}},isToggled:()=>n.isTopInSimpleModeVisible(),isVisible:()=>n.mode==="single-document"});a.addCommand(w.toggleLeftArea,{label:d.__("Show Left Sidebar"),execute:()=>{if(n.leftCollapsed){n.expandLeft()}else{n.collapseLeft();if(n.currentWidget){n.activateById(n.currentWidget.id)}}},isToggled:()=>!n.leftCollapsed,isEnabled:()=>!n.isEmpty("left")});a.addCommand(w.toggleRightArea,{label:d.__("Show Right Sidebar"),execute:()=>{if(n.rightCollapsed){n.expandRight()}else{n.collapseRight();if(n.currentWidget){n.activateById(n.currentWidget.id)}}},isToggled:()=>!n.rightCollapsed,isEnabled:()=>!n.isEmpty("right")});a.addCommand(w.toggleSidebarWidget,{label:e=>e===undefined||e.side===undefined||e.index===undefined?d.__("Toggle Sidebar Element"):e.side==="right"?d.__("Toggle Element %1 in Right Sidebar",parseInt(e.index,10)+1):d.__("Toggle Element %1 in Left Sidebar",parseInt(e.index,10)+1),execute:e=>{const t=parseInt(e.index,10);if(e.side!="left"&&e.side!="right"){throw Error(`Unsupported sidebar: ${e.side}`)}const i=Array.from(n.widgets(e.side));if(t>=i.length){return}const s=i[t].id;const o=document.querySelector("[data-id='"+s+"']");if(v(e.side)===s){if(e.side=="left"){n.collapseLeft();_(o)}if(e.side=="right"){n.collapseRight();_(o)}}else{n.activateById(s);_(o)}}});a.addCommand(w.toggleSideTabBar,{label:e=>e.side==="right"?d.__("Show Right Activity Bar"):d.__("Show Left Activity Bar"),execute:e=>{if(e.side==="right"){n.toggleSideTabBarVisibility("right")}else{n.toggleSideTabBarVisibility("left")}},isToggled:e=>e.side==="right"?n.isSideTabBarVisible("right"):n.isSideTabBarVisible("left"),isEnabled:e=>e.side==="right"?!n.isEmpty("right"):!n.isEmpty("left")});a.addCommand(w.togglePresentationMode,{label:()=>d.__("Presentation Mode"),execute:()=>{n.presentationMode=!n.presentationMode},isToggled:()=>n.presentationMode,isVisible:()=>true});a.addCommand(w.toggleFullscreenMode,{label:d.__("Fullscreen Mode"),execute:()=>{if(document.fullscreenElement===null||document.fullscreenElement===undefined){document.documentElement.requestFullscreen().catch((e=>{console.error("Failed to enter fullscreen mode.",e)}))}else if(document.fullscreenElement!==null){document.exitFullscreen().catch((e=>{console.error("Failed to exit fullscreen mode.",e)}))}},isToggled:()=>document.fullscreenElement!==null});a.addCommand(w.setMode,{label:e=>e["mode"]?d.__("Set %1 mode.",e["mode"]):d.__("Set the layout `mode`."),caption:d.__('The layout `mode` can be "single-document" or "multiple-document".'),isVisible:e=>{const t=e["mode"];return t==="single-document"||t==="multiple-document"},execute:e=>{const t=e["mode"];if(t==="single-document"||t==="multiple-document"){n.mode=t;return}throw new Error(`Unsupported application shell mode: ${t}`)}});a.addCommand(w.toggleMode,{label:d.__("Simple Interface"),isToggled:()=>n.mode==="single-document",execute:()=>{const e=n.mode==="multiple-document"?{mode:"single-document"}:{mode:"multiple-document"};return a.execute(w.setMode,e)}});a.addCommand(w.resetLayout,{label:d.__("Reset Default Layout"),execute:()=>{if(n.presentationMode){a.execute(w.togglePresentationMode).catch((e=>{console.error("Failed to undo presentation mode.",e)}))}if(document.fullscreenElement!==null||document.fullscreenElement!==undefined){a.execute(w.toggleFullscreenMode).catch((e=>{console.error("Failed to exit fullscreen mode.",e)}))}if(n.mode==="single-document"&&!n.isTopInSimpleModeVisible()){a.execute(w.toggleHeader).catch((e=>{console.error("Failed to display title header.",e)}))}["left","right"].forEach((e=>{if(!n.isSideTabBarVisible(e)&&!n.isEmpty(e)){a.execute(w.toggleSideTabBar,{side:e}).catch((t=>{console.error(`Failed to show ${e} activity bar.`,t)}))}}))}})}if(s){[w.activateNextTab,w.activatePreviousTab,w.activateNextTabBar,w.activatePreviousTabBar,w.close,w.closeAll,w.closeOtherTabs,w.closeRightTabs,w.toggleHeader,w.toggleLeftArea,w.toggleRightArea,w.togglePresentationMode,w.toggleFullscreenMode,w.toggleMode,w.resetLayout].forEach((e=>s.addItem({command:e,category:c})));["right","left"].forEach((e=>{s.addItem({command:w.toggleSideTabBar,category:c,args:{side:e}})}))}}};const x={id:"@jupyterlab/application-extension:main",description:"Initializes the application and provides the URL tree path handler.",requires:[i.IRouter,s.IWindowResolver,c.ITranslator,i.JupyterFrontEnd.ITreeResolver],optional:[i.IConnectionLost],provides:i.ITreePathUpdater,activate:(e,t,n,r,a,l)=>{const d=r.load("jupyterlab");if(!(e instanceof i.JupyterLab)){throw new Error(`${x.id} must be activated in JupyterLab.`)}let c="";let h="";function u(e){void a.paths.then((()=>{h=e;if(!c){const n=o.PageConfig.getUrl({treePath:e});const i=o.URLExt.parse(n).pathname;t.navigate(i,{skipRouting:true});o.PageConfig.setOption("treePath",e)}}))}const p=n.name;console.debug(`Starting application in workspace: "${p}"`);if(e.registerPluginErrors.length!==0){const t=v.createElement("pre",null,e.registerPluginErrors.map((e=>e.message)).join("\n"));void(0,s.showErrorMessage)(d.__("Error Registering Plugins"),{message:t})}e.shell.modeChanged.connect(((e,n)=>{const i=o.PageConfig.getUrl({mode:n});const s=o.URLExt.parse(i).pathname;t.navigate(s,{skipRouting:true});o.PageConfig.setOption("mode",n)}));void a.paths.then((()=>{e.shell.currentPathChanged.connect(((e,n)=>{const i=n.newValue;const s=i||h;const r=o.PageConfig.getUrl({treePath:s});const a=o.URLExt.parse(r).pathname;t.navigate(a,{skipRouting:true});o.PageConfig.setOption("treePath",s);c=i}))}));l=l||i.ConnectionLost;e.serviceManager.connectionFailure.connect(((e,t)=>l(e,t,r)));const m=e.serviceManager.builder;const g=()=>m.build().then((()=>(0,s.showDialog)({title:d.__("Build Complete"),body:v.createElement("div",null,d.__("Build successfully completed, reload page?"),v.createElement("br",null),d.__("You will lose any unsaved changes.")),buttons:[s.Dialog.cancelButton({label:d.__("Reload Without Saving"),actions:["reload"]}),s.Dialog.okButton({label:d.__("Save and Reload")})],hasClose:true}))).then((({button:{accept:n,actions:i}})=>{if(n){void e.commands.execute("docmanager:save").then((()=>{t.reload()})).catch((e=>{void(0,s.showErrorMessage)(d.__("Save Failed"),{message:v.createElement("pre",null,e.message)})}))}else if(i.includes("reload")){t.reload()}})).catch((e=>{void(0,s.showErrorMessage)(d.__("Build Failed"),{message:v.createElement("pre",null,e.message)})}));if(m.isAvailable&&m.shouldCheck){void m.getStatus().then((e=>{if(e.status==="building"){return g()}if(e.status!=="needed"){return}const t=v.createElement("div",null,d.__("JupyterLab build is suggested:"),v.createElement("br",null),v.createElement("pre",null,e.message));void(0,s.showDialog)({title:d.__("Build Recommended"),body:t,buttons:[s.Dialog.cancelButton(),s.Dialog.okButton({label:d.__("Build")})]}).then((e=>e.button.accept?g():undefined))}))}return u},autoStart:true};const S={id:"@jupyterlab/application-extension:context-menu",description:"Populates the context menu.",autoStart:true,requires:[a.ISettingRegistry,c.ITranslator],optional:[s.ICommandPalette],activate:(e,t,n,i)=>{const s=n.load("jupyterlab");function o(t){const n=new h.RankedMenu({...t,commands:e.commands});if(t.label){n.title.label=s.__(t.label)}return n}e.started.then((()=>z.loadSettingsContextMenu(e.contextMenu,e.commands,t,o,n))).then((()=>{if(i){i===null||i===void 0?void 0:i.addItem({category:s.__("Settings"),command:w.toggleContextMenu})}})).catch((e=>{console.error("Failed to load context menu items from settings registry.",e)}))}};const k={id:"@jupyterlab/application-extension:dirty",description:"Adds safeguard dialog when closing the browser tab with unsaved modifications.",autoStart:true,requires:[c.ITranslator],activate:(e,t)=>{if(!(e instanceof i.JupyterLab)){throw new Error(`${k.id} must be activated in JupyterLab.`)}const n=t.load("jupyterlab");const s=n.__("Are you sure you want to exit JupyterLab?\n\nAny unsaved changes will be lost.");window.addEventListener("beforeunload",(t=>{if(e.status.isDirty){return t.returnValue=s}}))}};const j={id:"@jupyterlab/application-extension:layout",description:"Provides the shell layout restorer.",requires:[l.IStateDB,i.ILabShell,a.ISettingRegistry],optional:[c.ITranslator],activate:(e,t,n,r,a)=>{const l=(a!==null&&a!==void 0?a:c.nullTranslator).load("jupyterlab");const d=e.started;const h=e.commands;const u=o.PageConfig.getOption("mode");const m=new i.LayoutRestorer({connector:t,first:d,registry:h,mode:u});r.load(D.id).then((t=>{var i,s;const o=t.composite["layout"];void n.restoreLayout(u,m,{"multiple-document":(i=o.multiple)!==null&&i!==void 0?i:{},"single-document":(s=o.single)!==null&&s!==void 0?s:{}}).then((()=>{n.layoutModified.connect((()=>{void m.save(n.saveLayout())}));t.changed.connect(g);z.activateSidebarSwitcher(e,n,t,l)}))})).catch((e=>{console.error("Fail to load settings for the layout restorer.");console.error(e)}));return m;async function g(e){if(!p.JSONExt.deepEqual(e.composite["layout"],{single:n.userLayout["single-document"],multiple:n.userLayout["multiple-document"]})){const e=await(0,s.showDialog)({title:l.__("Information"),body:l.__("User layout customization has changed. You may need to reload JupyterLab to see the changes."),buttons:[s.Dialog.cancelButton(),s.Dialog.okButton({label:l.__("Reload")})]});if(e.button.accept){location.reload()}}}},autoStart:true,provides:i.ILayoutRestorer};const I={id:"@jupyterlab/application-extension:router",description:"Provides the URL router",requires:[i.JupyterFrontEnd.IPaths],activate:(e,t)=>{const{commands:n}=e;const s=t.urls.base;const o=new i.Router({base:s,commands:n});void e.started.then((()=>{void o.route();window.addEventListener("popstate",(()=>{void o.route()}))}));return o},autoStart:true,provides:i.IRouter};const E={id:"@jupyterlab/application-extension:tree-resolver",description:"Provides the tree route resolver",autoStart:true,requires:[i.IRouter],provides:i.JupyterFrontEnd.ITreeResolver,activate:(e,t)=>{const{commands:n}=e;const i=new g.DisposableSet;const s=new p.PromiseDelegate;const r=new RegExp("/(lab|doc)(/workspaces/[a-zA-Z0-9-_]+)?(/tree/.*)?");i.add(n.addCommand(w.tree,{execute:async e=>{var t;if(i.isDisposed){return}const n=o.URLExt.queryStringToObject((t=e.search)!==null&&t!==void 0?t:"");const r=n["file-browser-path"]||"";delete n["file-browser-path"];i.dispose();s.resolve({browser:r,file:o.PageConfig.getOption("treePath")})}}));i.add(t.register({command:w.tree,pattern:r}));const a=()=>{if(i.isDisposed){return}i.dispose();s.resolve(null)};t.routed.connect(a);i.add(new g.DisposableDelegate((()=>{t.routed.disconnect(a)})));return{paths:s.promise}}};const T={id:"@jupyterlab/application-extension:notfound",description:"Defines the behavior for not found URL (aka route).",requires:[i.JupyterFrontEnd.IPaths,i.IRouter,c.ITranslator],activate:(e,t,n,i)=>{const o=i.load("jupyterlab");const r=t.urls.notFound;if(!r){return}const a=n.base;const l=o.__("The path: %1 was not found. JupyterLab redirected to: %2",r,a);n.navigate("");void(0,s.showErrorMessage)(o.__("Path Not Found"),{message:l})},autoStart:true};const M={id:"@jupyterlab/application-extension:faviconbusy",description:"Handles the favicon depending on the application status.",requires:[i.ILabStatus],activate:async(e,t)=>{t.busySignal.connect(((e,t)=>{const n=document.querySelector(`link[rel="icon"]${t?".idle.favicon":".busy.favicon"}`);if(!n){return}const i=document.querySelector(`link${t?".busy.favicon":".idle.favicon"}`);if(!i){return}if(n!==i){n.rel="";i.rel="icon";i.parentNode.replaceChild(i,i)}}))},autoStart:true};const D={id:"@jupyterlab/application-extension:shell",description:"Provides the JupyterLab shell. It has an extended API compared to `app.shell`.",optional:[a.ISettingRegistry],activate:(e,t)=>{if(!(e.shell instanceof i.LabShell)){throw new Error(`${D.id} did not find a LabShell instance.`)}if(t){void t.load(D.id).then((t=>{e.shell.updateConfig(t.composite);t.changed.connect((()=>{e.shell.updateConfig(t.composite)}))}))}return e.shell},autoStart:true,provides:i.ILabShell};const A={id:"@jupyterlab/application-extension:status",description:"Provides the application status.",activate:e=>{if(!(e instanceof i.JupyterLab)){throw new Error(`${A.id} must be activated in JupyterLab.`)}return e.status},autoStart:true,provides:i.ILabStatus};const P={id:"@jupyterlab/application-extension:info",description:"Provides the application information.",activate:e=>{if(!(e instanceof i.JupyterLab)){throw new Error(`${P.id} must be activated in JupyterLab.`)}return e.info},autoStart:true,provides:i.JupyterLab.IInfo};const L={id:"@jupyterlab/application-extension:paths",description:"Provides the application paths.",activate:e=>{if(!(e instanceof i.JupyterLab)){throw new Error(`${L.id} must be activated in JupyterLab.`)}return e.paths},autoStart:true,provides:i.JupyterFrontEnd.IPaths};const R={id:"@jupyterlab/application-extension:property-inspector",description:"Provides the property inspector.",autoStart:true,requires:[i.ILabShell,c.ITranslator],optional:[i.ILayoutRestorer],provides:r.IPropertyInspectorProvider,activate:(e,t,n,i)=>{const s=n.load("jupyterlab");const o=new r.SideBarPropertyInspectorProvider({shell:t,translator:n});o.title.icon=h.buildIcon;o.title.caption=s.__("Property Inspector");o.id="jp-property-inspector";t.add(o,"right",{rank:100,type:"Property Inspector"});e.commands.addCommand(w.showPropertyPanel,{label:s.__("Property Inspector"),execute:()=>{t.activateById(o.id)}});if(i){i.add(o,"jp-property-inspector")}return o}};const N={id:"@jupyterlab/application-extension:logo",description:"Sets the application logo.",autoStart:true,requires:[i.ILabShell],activate:(e,t)=>{const n=new f.Widget;h.jupyterIcon.element({container:n.node,elementPosition:"center",margin:"2px 2px 2px 8px",height:"auto",width:"16px"});n.id="jp-MainLogo";t.add(n,"top",{rank:0})}};const O={id:"@jupyterlab/application-extension:mode-switch",description:"Adds the interface mode switch",requires:[i.ILabShell,c.ITranslator],optional:[d.IStatusBar,a.ISettingRegistry],activate:(e,t,n,i,s)=>{if(i===null){return}const o=n.load("jupyterlab");const r=new h.Switch;r.id="jp-single-document-mode";r.valueChanged.connect(((e,n)=>{t.mode=n.newValue?"single-document":"multiple-document"}));t.modeChanged.connect(((e,t)=>{r.value=t==="single-document"}));if(s){const n=s.load(D.id);const i=e=>{const n=e.get("startMode").composite;if(n){t.mode=n==="single"?"single-document":"multiple-document"}};Promise.all([n,e.restored]).then((([e])=>{i(e)})).catch((e=>{console.error(e.message)}))}const a=()=>{const t=e.commands.keyBindings.find((e=>e.command==="application:toggle-mode"));if(t){const e=t.keys.map(m.CommandRegistry.formatKeystroke).join(", ");r.caption=o.__("Simple Interface (%1)",e)}else{r.caption=o.__("Simple Interface")}};a();e.commands.keyBindingChanged.connect((()=>{a()}));r.label=o.__("Simple");i.registerStatusItem(O.id,{priority:1,item:r,align:"left",rank:-1})},autoStart:true};const B=[S,k,x,C,j,I,E,T,M,D,A,P,O,L,R,N,b];const F=B;var z;(function(e){async function t(e){const t=await(0,s.showDialog)({title:e.__("Information"),body:e.__("Context menu customization has changed. You will need to reload JupyterLab to see the changes."),buttons:[s.Dialog.cancelButton(),s.Dialog.okButton({label:e.__("Reload")})]});if(t.button.accept){location.reload()}}async function n(e,n,i,o,r){var l;const d=r.load("jupyterlab");const c=S.id;let h=null;let u={};function m(e){var t,n;u={};const s=Object.keys(i.plugins).map((e=>{var t,n;const s=(n=(t=i.plugins[e].schema["jupyter.lab.menus"])===null||t===void 0?void 0:t.context)!==null&&n!==void 0?n:[];u[e]=s;return s})).concat([(n=(t=e["jupyter.lab.menus"])===null||t===void 0?void 0:t.context)!==null&&n!==void 0?n:[]]).reduceRight(((e,t)=>a.SettingRegistry.reconcileItems(e,t,true)),[]);e.properties.contextMenu.default=a.SettingRegistry.reconcileItems(s,e.properties.contextMenu.default,true).sort(((e,t)=>{var n,i;return((n=e.rank)!==null&&n!==void 0?n:Infinity)-((i=t.rank)!==null&&i!==void 0?i:Infinity)}))}i.transform(c,{compose:e=>{var t,n,i,s;if(!h){h=p.JSONExt.deepCopy(e.schema);m(h)}const o=(i=(n=(t=h.properties)===null||t===void 0?void 0:t.contextMenu)===null||n===void 0?void 0:n.default)!==null&&i!==void 0?i:[];const r={...e.data.user,contextMenu:(s=e.data.user.contextMenu)!==null&&s!==void 0?s:[]};const l={...e.data.composite,contextMenu:a.SettingRegistry.reconcileItems(o,r.contextMenu,false)};e.data={composite:l,user:r};return e},fetch:e=>{if(!h){h=p.JSONExt.deepCopy(e.schema);m(h)}return{data:e.data,id:e.id,raw:e.raw,schema:h,version:e.version}}});const g=await i.load(c);const f=e=>{const t=document.body;const n=t.hasAttribute("data-jp-suppress-context-menu");const i=e.get("disabled").composite;if(n&&!i){t.removeAttribute("data-jp-suppress-context-menu")}else if(i&&!n){t.setAttribute("data-jp-suppress-context-menu","true")}};const v=(l=g.composite.contextMenu)!==null&&l!==void 0?l:[];a.SettingRegistry.filterDisabledItems(v).forEach((t=>{s.MenuFactory.addContextItem({rank:y,...t},e,o)}));g.changed.connect((()=>{var e;const n=(e=g.composite.contextMenu)!==null&&e!==void 0?e:[];if(!p.JSONExt.deepEqual(v,n)){void t(d)}f(g)}));i.pluginChanged.connect((async(n,r)=>{var l,h,m,g;if(r!==c){const n=(l=u[r])!==null&&l!==void 0?l:[];const c=(m=(h=i.plugins[r].schema["jupyter.lab.menus"])===null||h===void 0?void 0:h.context)!==null&&m!==void 0?m:[];if(!p.JSONExt.deepEqual(n,c)){if(u[r]){await t(d)}else{u[r]=p.JSONExt.deepCopy(c);const t=(g=a.SettingRegistry.reconcileItems(c,v,false,false))!==null&&g!==void 0?g:[];a.SettingRegistry.filterDisabledItems(t).forEach((t=>{s.MenuFactory.addContextItem({rank:y,...t},e,o)}))}}}}));f(g);n.addCommand(w.toggleContextMenu,{label:d.__("Enable Context Menu"),isToggleable:true,isToggled:()=>!g.get("disabled").composite,execute:()=>void g.set("disabled",!g.get("disabled").composite)})}e.loadSettingsContextMenu=n;function i(e,t,n,i){e.commands.addCommand(w.switchSidebar,{label:i.__("Switch Sidebar Side"),execute:()=>{const i=e.contextMenuHitTest((e=>!!e.dataset.id));if(!i){return}const s=i.dataset["id"];const o=document.getElementById("jp-left-stack");const r=document.getElementById(s);let a=null;if(o&&r&&o.contains(r)){const e=(0,u.find)(t.widgets("left"),(e=>e.id===s));if(e){a=t.move(e,"right");t.activateById(e.id)}}else{const e=(0,u.find)(t.widgets("right"),(e=>e.id===s));if(e){a=t.move(e,"left");t.activateById(e.id)}}if(a){n.set("layout",{single:a["single-document"],multiple:a["multiple-document"]}).catch((e=>{console.error("Failed to save user layout customization.",e)}))}}});e.commands.commandExecuted.connect(((e,t)=>{if(t.id===w.resetLayout){n.remove("layout").catch((e=>{console.error("Failed to remove user layout customization.",e)}))}}))}e.activateSidebarSwitcher=i})(z||(z={}))},20979:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(3579);var a=n(58130);var l=n(85072);var d=n.n(l);var c=n(97825);var h=n.n(c);var u=n(77659);var p=n.n(u);var m=n(55056);var g=n.n(m);var f=n(10540);var v=n.n(f);var _=n(41113);var b=n.n(_);var y=n(24118);var w={};w.styleTagTransform=b();w.setAttributes=g();w.insert=p().bind(null,"head");w.domAPI=h();w.insertStyleElement=v();var C=d()(y.A,w);const x=y.A&&y.A.locals?y.A.locals:undefined},16214:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ConnectionLost:()=>o,IConnectionLost:()=>q,ILabShell:()=>O,ILabStatus:()=>$,ILayoutRestorer:()=>b,IMimeDocumentTracker:()=>x,IRouter:()=>K,ITreePathUpdater:()=>J,JupyterFrontEnd:()=>p,JupyterFrontEndContextMenu:()=>g,JupyterLab:()=>W,LabShell:()=>B,LabStatus:()=>H,LayoutRestorer:()=>w,Router:()=>U,addSemanticCommand:()=>G,createRendermimePlugin:()=>k,createRendermimePlugins:()=>S,createSemanticCommand:()=>Y});var i=n(14366);var s=n(30619);const o=async function(e,t,n){n=n||s.nullTranslator;const o=n.load("jupyterlab");const a=o.__("Server Connection Error");const l=o.__("A connection to the Jupyter server could not be established.\n"+"JupyterLab will continue trying to reconnect.\n"+"Check your network connection or Jupyter server configuration.\n");if(!r.displayConnectionLost){return}if(r.serverConnectionLost){await r.serverConnectionLost;return}const d=(0,i.showDialog)({title:a,body:l,checkbox:{label:o.__("Do not show this message again in this session."),caption:o.__("If checked, you will not see a dialog informing you about an issue with server connection in this session.")},buttons:[i.Dialog.cancelButton({label:o.__("Close")})]}).then((e=>{if(e.isChecked){r.displayConnectionLost=false}return})).catch((e=>{console.error("An error occurred while showing the dialog: ",e)})).finally((()=>{r.serverConnectionLost=undefined}));r.serverConnectionLost=d};var r;(function(e){e.displayConnectionLost=true})(r||(r={}));var a=n(93037);var l=n(28548);var d=n(26331);var c=n(95286);var h=n(5592);var u=n(2336);class p extends c.Application{constructor(e){super(e);this._formatChanged=new u.Signal(this);e.shell.addClass("jp-ThemedContainer");this.contextMenu=new d.ContextMenuSvg({commands:this.commands,renderer:e.contextMenuRenderer,groupByTarget:false,sortBySelector:false});const t=new Promise((e=>{requestAnimationFrame((()=>{e()}))}));this.commandLinker=e.commandLinker||new i.CommandLinker({commands:this.commands});this.docRegistry=e.docRegistry||new a.DocumentRegistry;this.restored=e.restored||this.started.then((()=>t)).catch((()=>t));this.serviceManager=e.serviceManager||new l.ServiceManager}get format(){return this._format}set format(e){if(this._format!==e){this._format=e;document.body.dataset["format"]=e;this._formatChanged.emit(e)}}get formatChanged(){return this._formatChanged}contextMenuHitTest(e){if(!this._contextMenuEvent||!(this._contextMenuEvent.target instanceof Node)){return undefined}let t=this._contextMenuEvent.target;do{if(t instanceof HTMLElement&&e(t)){return t}t=t.parentNode}while(t&&t.parentNode&&t!==t.parentNode);return undefined}evtContextMenu(e){this._contextMenuEvent=e;if(e.shiftKey||m.suppressContextMenu(e.target)){return}const t=this.contextMenu.open(e);if(t){const t=this.contextMenu.menu.items;if(t.length===1&&t[0].command===g.contextMenu){this.contextMenu.menu.close();return}e.preventDefault();e.stopPropagation()}}}(function(e){function t(e,t){const n=new RegExp(`^${t.urls.doc}`);const i=e.match(n);if(i){return true}else{return false}}e.inDocMode=t;e.IPaths=new h.Token("@jupyterlab/application:IPaths",`A service providing information about various\n URLs and server paths for the current application. Use this service if you want to\n assemble URLs to use the JupyterLab REST API.`);e.ITreeResolver=new h.Token("@jupyterlab/application:ITreeResolver","A service to resolve the tree path.")})(p||(p={}));var m;(function(e){function t(e){return e.closest("[data-jp-suppress-context-menu]")!==null}e.suppressContextMenu=t})(m||(m={}));var g;(function(e){e.contextMenu="__internal:context-menu-info"})(g||(g={}));var f=n(30397);var v=n(44539);var _=n(94466);const b=new h.Token("@jupyterlab/application:ILayoutRestorer","A service providing application layout restoration functionality. Use this to have your activities restored across page loads.");const y="layout-restorer:data";class w{constructor(e){this._deferred=new Array;this._deferredMainArea=null;this._firstDone=false;this._promisesDone=false;this._promises=[];this._restored=new h.PromiseDelegate;this._trackers=new Set;this._widgets=new Map;this._mode="multiple-document";this._connector=e.connector;this._first=e.first;this._registry=e.registry;if(e.mode){this._mode=e.mode}void this._first.then((()=>{this._firstDone=true})).then((()=>Promise.all(this._promises))).then((()=>{this._promisesDone=true;this._trackers.clear()})).then((()=>{this._restored.resolve(void 0)}))}get isDeferred(){return this._deferred.length>0}get restored(){return this._restored.promise}add(e,t){C.nameProperty.set(e,t);this._widgets.set(t,e);e.disposed.connect(this._onWidgetDisposed,this)}async fetch(){var e;const t={fresh:true,mainArea:null,downArea:null,leftArea:null,rightArea:null,topArea:null,relativeSizes:null};const n=this._connector.fetch(y);try{const[i]=await Promise.all([n,this.restored]);if(!i){return t}const{main:s,down:o,left:r,right:a,relativeSizes:l,top:d}=i;const c=false;let h=null;if(this._mode==="multiple-document"){h=this._rehydrateMainArea(s)}else{this._deferredMainArea=s}const u=this._rehydrateDownArea(o);const p=this._rehydrateSideArea(r);const m=this._rehydrateSideArea(a);return{fresh:c,mainArea:h,downArea:u,leftArea:p,rightArea:m,relativeSizes:l||null,topArea:(e=d)!==null&&e!==void 0?e:null}}catch(i){return t}}async restore(e,t){if(this._firstDone){throw new Error("restore() must be called before `first` has resolved.")}const{namespace:n}=e;if(this._trackers.has(n)){throw new Error(`The tracker "${n}" is already restored.`)}const{args:i,command:s,name:o,when:r}=t;this._trackers.add(n);e.widgetAdded.connect(((e,t)=>{const i=o(t);if(i){this.add(t,`${n}:${i}`)}}),this);e.widgetUpdated.connect(((e,t)=>{const i=o(t);if(i){const e=`${n}:${i}`;C.nameProperty.set(t,e);this._widgets.set(e,t)}}));const a=this._first;if(this._mode=="multiple-document"){const t=e.restore({args:i||(()=>h.JSONExt.emptyObject),command:s,connector:this._connector,name:o,registry:this._registry,when:r?[a].concat(r):a}).catch((e=>{console.error(e)}));this._promises.push(t);return t}e.defer({args:i||(()=>h.JSONExt.emptyObject),command:s,connector:this._connector,name:o,registry:this._registry,when:r?[a].concat(r):a});this._deferred.push(e)}async restoreDeferred(){if(!this.isDeferred){return null}const e=Promise.resolve();const t=this._deferred.map((t=>e.then((()=>t.restore()))));this._deferred.length=0;await Promise.all(t);return this._rehydrateMainArea(this._deferredMainArea)}save(e){var t;if(!this._promisesDone){const e="save() was called prematurely.";console.warn(e);return Promise.reject(e)}const n={};n.main=this.isDeferred?this._deferredMainArea:this._dehydrateMainArea(e.mainArea);if(this.isDeferred){const i=(t=e.mainArea)===null||t===void 0?void 0:t.currentWidget;if(i){const e=C.nameProperty.get(i);n.main={...n.main,current:e||undefined}}}n.down=this._dehydrateDownArea(e.downArea);n.left=this._dehydrateSideArea(e.leftArea);n.right=this._dehydrateSideArea(e.rightArea);n.relativeSizes=e.relativeSizes;n.top={...e.topArea};return this._connector.save(y,n)}_dehydrateMainArea(e){if(!e){return null}return C.serializeMain(e)}_rehydrateMainArea(e){if(!e){return null}return C.deserializeMain(e,this._widgets)}_dehydrateDownArea(e){if(!e){return null}const t={size:e.size};if(e.currentWidget){const n=C.nameProperty.get(e.currentWidget);if(n){t.current=n}}if(e.widgets){t.widgets=e.widgets.map((e=>C.nameProperty.get(e))).filter((e=>!!e))}return t}_rehydrateDownArea(e){var t;if(!e){return{currentWidget:null,size:0,widgets:null}}const n=this._widgets;const i=e.current&&n.has(`${e.current}`)?n.get(`${e.current}`):null;const s=!Array.isArray(e.widgets)?null:e.widgets.map((e=>n.has(`${e}`)?n.get(`${e}`):null)).filter((e=>!!e));return{currentWidget:i,size:(t=e.size)!==null&&t!==void 0?t:0,widgets:s}}_dehydrateSideArea(e){if(!e){return null}const t={collapsed:e.collapsed,visible:e.visible};if(e.currentWidget){const n=C.nameProperty.get(e.currentWidget);if(n){t.current=n}}if(e.widgets){t.widgets=e.widgets.map((e=>C.nameProperty.get(e))).filter((e=>!!e))}if(e.widgetStates){t.widgetStates=e.widgetStates}return t}_rehydrateSideArea(e){var t,n;if(!e){return{collapsed:true,currentWidget:null,visible:true,widgets:null,widgetStates:{["null"]:{sizes:null,expansionStates:null}}}}const i=this._widgets;const s=(t=e.collapsed)!==null&&t!==void 0?t:false;const o=e.current&&i.has(`${e.current}`)?i.get(`${e.current}`):null;const r=!Array.isArray(e.widgets)?null:e.widgets.map((e=>i.has(`${e}`)?i.get(`${e}`):null)).filter((e=>!!e));const a=e.widgetStates;return{collapsed:s,currentWidget:o,widgets:r,visible:(n=e.visible)!==null&&n!==void 0?n:true,widgetStates:a}}_onWidgetDisposed(e){const t=C.nameProperty.get(e);this._widgets.delete(t)}}var C;(function(e){e.nameProperty=new _.AttachedProperty({name:"name",create:e=>""});function t(n){if(!n||!n.type){return null}if(n.type==="tab-area"){return{type:"tab-area",currentIndex:n.currentIndex,widgets:n.widgets.map((t=>e.nameProperty.get(t))).filter((e=>!!e))}}return{type:"split-area",orientation:n.orientation,sizes:n.sizes,children:n.children.map(t).filter((e=>!!e))}}function n(n){const i={dock:n&&n.dock&&t(n.dock.main)||null};if(n){if(n.currentWidget){const t=e.nameProperty.get(n.currentWidget);if(t){i.current=t}}}return i}e.serializeMain=n;function i(e,t){if(!e){return null}const n=e.type||"unknown";if(n==="unknown"||n!=="tab-area"&&n!=="split-area"){console.warn(`Attempted to deserialize unknown type: ${n}`);return null}if(n==="tab-area"){const{currentIndex:n,widgets:i}=e;const s={type:"tab-area",currentIndex:n||0,widgets:i&&i.map((e=>t.get(e))).filter((e=>!!e))||[]};if(s.currentIndex>s.widgets.length-1){s.currentIndex=0}return s}const{orientation:s,sizes:o,children:r}=e;const a={type:"split-area",orientation:s,sizes:o||[],children:r&&r.map((e=>i(e,t))).filter((e=>!!e))||[]};return a}function s(e,t){if(!e){return null}const n=e.current||null;const s=e.dock||null;return{currentWidget:n&&t.has(n)&&t.get(n)||null,dock:s?{main:i(s,t)}:null}}e.deserializeMain=s})(C||(C={}));const x=new h.Token("@jupyterlab/application:IMimeDocumentTracker","A widget tracker for documents rendered using a mime renderer extension. Use this if you want to list and interact with documents rendered by such extensions.");function S(e){const t=[];const n="application-mimedocuments";const s=new i.WidgetTracker({namespace:n});e.forEach((e=>{let n=e.default;if(!e.hasOwnProperty("__esModule")){n=e}if(!Array.isArray(n)){n=[n]}n.forEach((e=>{t.push(k(s,e))}))}));t.push({id:"@jupyterlab/application-extension:mimedocument",description:"Provides a mime document widget tracker.",optional:[b],provides:x,autoStart:true,activate:(e,t)=>{if(t){void t.restore(s,{command:"docmanager:open",args:e=>({path:e.context.path,factory:j.factoryNameProperty.get(e)}),name:e=>`${e.context.path}:${j.factoryNameProperty.get(e)}`})}return s}});return t}function k(e,t){return{id:t.id,description:t.description,requires:[v.IRenderMimeRegistry,s.ITranslator],autoStart:true,activate:(n,i,s)=>{if(t.rank!==undefined){i.addFactory(t.rendererFactory,t.rank)}else{i.addFactory(t.rendererFactory)}if(!t.documentWidgetFactoryOptions){return}const o=n.docRegistry;let r=[];if(Array.isArray(t.documentWidgetFactoryOptions)){r=t.documentWidgetFactoryOptions}else{r=[t.documentWidgetFactoryOptions]}if(t.fileTypes){t.fileTypes.forEach((e=>{if(e.icon){e={...e,icon:d.LabIcon.resolve({icon:e.icon})}}n.docRegistry.addFileType(e)}))}r.forEach((n=>{const r=n.toolbarFactory?e=>n.toolbarFactory(e.content.renderer):undefined;const l=new a.MimeDocumentFactory({renderTimeout:t.renderTimeout,dataType:t.dataType,rendermime:i,modelName:n.modelName,name:n.name,primaryFileType:o.getFileType(n.primaryFileType),fileTypes:n.fileTypes,defaultFor:n.defaultFor,defaultRendered:n.defaultRendered,toolbarFactory:r,translator:s,factory:t.rendererFactory});o.addWidgetFactory(l);l.widgetCreated.connect(((t,n)=>{j.factoryNameProperty.set(n,l.name);n.context.pathChanged.connect((()=>{void e.save(n)}));void e.add(n)}))}))}}}var j;(function(e){e.factoryNameProperty=new _.AttachedProperty({name:"factoryName",create:()=>undefined})})(j||(j={}));var I=n(34236);var E=n(42856);var T=n(26568);var M=n(1143);const D="jp-LabShell";const A="jp-SideBar";const P="jp-mod-current";const L="jp-mod-active";const R=900;const N="jp-Activity";const O=new h.Token("@jupyterlab/application:ILabShell","A service for interacting with the JupyterLab shell. The top-level ``application`` object also has a reference to the shell, but it has a restricted interface in order to be agnostic to different shell implementations on the application. Use this to get more detailed information about currently active widgets and layout state.");class B extends M.Widget{constructor(e){super();this._dockChildHook=(e,t)=>{switch(t.type){case"child-added":t.child.addClass(N);this._tracker.add(t.child);break;case"child-removed":t.child.removeClass(N);this._tracker.remove(t.child);break;default:break}return true};this._activeChanged=new u.Signal(this);this._cachedLayout=null;this._currentChanged=new u.Signal(this);this._currentPath="";this._currentPathChanged=new u.Signal(this);this._modeChanged=new u.Signal(this);this._isRestored=false;this._layoutModified=new u.Signal(this);this._layoutDebouncer=new T.Debouncer((()=>{this._layoutModified.emit(undefined)}),0);this._restored=new h.PromiseDelegate;this._tracker=new M.FocusTracker;this._topHandlerHiddenByUser=false;this._idTypeMap=new Map;this._mainOptionsCache=new Map;this._sideOptionsCache=new Map;this._delayedWidget=new Array;this.addClass(D);this.id="main";if((e===null||e===void 0?void 0:e.waitForRestore)===false){this._userLayout={"multiple-document":{},"single-document":{}}}const t=this._skipLinkWidget=new F.SkipLinkWidget(this);this._skipLinkWidget.show();const n=new M.Panel;n.addClass("jp-skiplink-wrapper");n.addWidget(t);const i=this._headerPanel=new M.BoxPanel;const o=this._menuHandler=new F.PanelHandler;o.panel.node.setAttribute("role","navigation");const r=this._topHandler=new F.PanelHandler;r.panel.node.setAttribute("role","banner");const l=this._bottomPanel=new M.BoxPanel;l.node.setAttribute("role","contentinfo");const c=new M.BoxPanel;const p=this._vsplitPanel=new F.RestorableSplitPanel;const m=this._dockPanel=new d.DockPanelSvg({hiddenMode:M.Widget.HiddenMode.Display});E.MessageLoop.installMessageHook(m,this._dockChildHook);const g=this._hsplitPanel=new F.RestorableSplitPanel;const f=this._downPanel=new d.TabPanelSvg({tabsMovable:true});const v=this._leftHandler=new F.SideBarHandler;const _=this._rightHandler=new F.SideBarHandler;const b=new M.BoxLayout;i.id="jp-header-panel";o.panel.id="jp-menu-panel";r.panel.id="jp-top-panel";l.id="jp-bottom-panel";c.id="jp-main-content-panel";p.id="jp-main-vsplit-panel";m.id="jp-main-dock-panel";g.id="jp-main-split-panel";f.id="jp-down-stack";v.sideBar.addClass(A);v.sideBar.addClass("jp-mod-left");v.sideBar.node.setAttribute("role","complementary");v.stackedPanel.id="jp-left-stack";_.sideBar.addClass(A);_.sideBar.addClass("jp-mod-right");_.sideBar.node.setAttribute("role","complementary");_.stackedPanel.id="jp-right-stack";m.node.setAttribute("role","main");c.spacing=0;p.spacing=1;m.spacing=5;g.spacing=1;i.direction="top-to-bottom";p.orientation="vertical";c.direction="left-to-right";g.orientation="horizontal";l.direction="bottom-to-top";M.SplitPanel.setStretch(v.stackedPanel,0);M.SplitPanel.setStretch(f,0);M.SplitPanel.setStretch(m,1);M.SplitPanel.setStretch(_.stackedPanel,0);M.BoxPanel.setStretch(v.sideBar,0);M.BoxPanel.setStretch(g,1);M.BoxPanel.setStretch(_.sideBar,0);M.SplitPanel.setStretch(p,1);g.addWidget(v.stackedPanel);g.addWidget(m);g.addWidget(_.stackedPanel);p.addWidget(g);p.addWidget(f);c.addWidget(v.sideBar);c.addWidget(p);c.addWidget(_.sideBar);b.direction="top-to-bottom";b.spacing=0;p.setRelativeSizes([3,1]);g.setRelativeSizes([1,2.5,1]);M.BoxLayout.setStretch(i,0);M.BoxLayout.setStretch(o.panel,0);M.BoxLayout.setStretch(r.panel,0);M.BoxLayout.setStretch(c,1);M.BoxLayout.setStretch(l,0);b.addWidget(n);b.addWidget(i);b.addWidget(r.panel);b.addWidget(c);b.addWidget(l);this._headerPanel.hide();this._bottomPanel.hide();this._downPanel.hide();this.layout=b;this._tracker.currentChanged.connect(this._onCurrentChanged,this);this._tracker.activeChanged.connect(this._onActiveChanged,this);this._dockPanel.layoutModified.connect(this._onLayoutModified,this);this._vsplitPanel.updated.connect(this._onLayoutModified,this);this._downPanel.currentChanged.connect(this._onLayoutModified,this);this._downPanel.tabBar.tabMoved.connect(this._onTabPanelChanged,this);this._downPanel.stackedPanel.widgetRemoved.connect(this._onTabPanelChanged,this);this._leftHandler.updated.connect(this._onLayoutModified,this);this._rightHandler.updated.connect(this._onLayoutModified,this);this._hsplitPanel.updated.connect(this._onLayoutModified,this);const y=this._titleHandler=new F.TitleHandler(this);this.add(y,"top",{rank:100});if(this._dockPanel.mode==="multiple-document"){this._topHandler.addWidget(this._menuHandler.panel,100);y.hide()}else{b.insertWidget(3,this._menuHandler.panel)}this.translator=s.nullTranslator;this.currentChanged.connect(((e,t)=>{let n=t.newValue;let i=t.oldValue;if(i){i.title.changed.disconnect(this._updateTitlePanelTitle,this);if(i instanceof a.DocumentWidget){i.context.pathChanged.disconnect(this._updateCurrentPath,this)}}if(n){n.title.changed.connect(this._updateTitlePanelTitle,this);this._updateTitlePanelTitle();if(n instanceof a.DocumentWidget){n.context.pathChanged.connect(this._updateCurrentPath,this)}}this._updateCurrentPath()}))}get activeChanged(){return this._activeChanged}get activeWidget(){return this._tracker.activeWidget}get addButtonEnabled(){return this._dockPanel.addButtonEnabled}set addButtonEnabled(e){this._dockPanel.addButtonEnabled=e}get addRequested(){return this._dockPanel.addRequested}get currentChanged(){return this._currentChanged}get currentPath(){return this._currentPath}get currentPathChanged(){return this._currentPathChanged}get currentWidget(){return this._tracker.currentWidget}get layoutModified(){return this._layoutModified}get leftCollapsed(){return!this._leftHandler.sideBar.currentTitle}get rightCollapsed(){return!this._rightHandler.sideBar.currentTitle}get presentationMode(){return this.hasClass("jp-mod-presentationMode")}set presentationMode(e){this.toggleClass("jp-mod-presentationMode",e)}get mode(){return this._dockPanel.mode}set mode(e){const t=this._dockPanel;if(e===t.mode){return}const n=this.currentWidget;if(e==="single-document"){this._cachedLayout=t.saveLayout();t.mode=e;if(this.currentWidget){t.activateWidget(this.currentWidget)}this.layout.insertWidget(3,this._menuHandler.panel);this._titleHandler.show();this._updateTitlePanelTitle();if(this._topHandlerHiddenByUser){this._topHandler.panel.hide()}}else{const i=Array.from(t.widgets());t.mode=e;if(this._cachedLayout){F.normalizeAreaConfig(t,this._cachedLayout.main);t.restoreLayout(this._cachedLayout);this._cachedLayout=null}if(this._layoutRestorer.isDeferred){this._layoutRestorer.restoreDeferred().then((e=>{if(e){const{currentWidget:t,dock:n}=e;if(n){this._dockPanel.restoreLayout(n)}if(t){this.activateById(t.id)}}})).catch((e=>{console.error("Failed to restore the deferred layout.");console.error(e)}))}i.forEach((e=>{if(!e.parent){this._addToMainArea(e,{...this._mainOptionsCache.get(e),activate:false})}}));this._mainOptionsCache.clear();if(n){t.activateWidget(n)}this.add(this._menuHandler.panel,"top",{rank:100});this._titleHandler.hide()}this.node.dataset.shellMode=e;this._downPanel.fit();this._modeChanged.emit(e)}get modeChanged(){return this._modeChanged}get restored(){return this._restored.promise}get translator(){var e;return(e=this._translator)!==null&&e!==void 0?e:s.nullTranslator}set translator(e){if(e!==this._translator){this._translator=e;d.TabBarSvg.translator=e;const t=e.load("jupyterlab");this._menuHandler.panel.node.setAttribute("aria-label",t.__("main menu"));this._leftHandler.sideBar.node.setAttribute("aria-label",t.__("main sidebar"));this._leftHandler.sideBar.contentNode.setAttribute("aria-label",t.__("main sidebar"));this._rightHandler.sideBar.node.setAttribute("aria-label",t.__("alternate sidebar"));this._rightHandler.sideBar.contentNode.setAttribute("aria-label",t.__("alternate sidebar"));this._topHandler.panel.node.setAttribute("aria-label",t.__("Top Bar"));this._bottomPanel.node.setAttribute("aria-label",t.__("Bottom Panel"));this._dockPanel.node.setAttribute("aria-label",t.__("Main Content"))}}get userLayout(){return h.JSONExt.deepCopy(this._userLayout)}activateById(e){if(this._leftHandler.has(e)){this._leftHandler.activate(e);return}if(this._rightHandler.has(e)){this._rightHandler.activate(e);return}const t=this._downPanel.tabBar.titles.findIndex((t=>t.owner.id===e));if(t>=0){this._downPanel.currentIndex=t;return}const n=this._dockPanel;const i=(0,I.find)(n.widgets(),(t=>t.id===e));if(i){n.activateWidget(i)}}activateArea(e="main"){switch(e){case"main":{const e=this._currentTabBar();if(!e){return}if(e.currentTitle){e.currentTitle.owner.activate()}}return;case"left":case"right":case"header":case"top":case"menu":case"bottom":console.debug(`Area: ${e} activation not yet implemented`);break;default:throw new Error(`Invalid area: ${e}`)}}activateNextTab(){const e=this._currentTabBar();if(!e){return}const t=e.currentIndex;if(t===-1){return}if(t0){e.currentIndex-=1;if(e.currentTitle){e.currentTitle.owner.activate()}return}if(t===0){const e=this._adjacentBar("previous");if(e){const t=e.titles.length;e.currentIndex=t-1;if(e.currentTitle){e.currentTitle.owner.activate()}}}}activateNextTabBar(){const e=this._adjacentBar("next");if(e){if(e.currentTitle){e.currentTitle.owner.activate()}}}activatePreviousTabBar(){const e=this._adjacentBar("previous");if(e){if(e.currentTitle){e.currentTitle.owner.activate()}}}add(e,t="main",n){var i;if(!this._userLayout){this._delayedWidget.push({widget:e,area:t,options:n});return}let s;if((n===null||n===void 0?void 0:n.type)&&this._userLayout[this.mode][n.type]){s=this._userLayout[this.mode][n.type];this._idTypeMap.set(e.id,n.type)}else{s=this._userLayout[this.mode][e.id]}if(n===null||n===void 0?void 0:n.type){this._idTypeMap.set(e.id,n.type);e.disposed.connect((()=>{this._idTypeMap.delete(e.id)}))}t=(i=s===null||s===void 0?void 0:s.area)!==null&&i!==void 0?i:t;n=n||(s===null||s===void 0?void 0:s.options)?{...n,...s===null||s===void 0?void 0:s.options}:undefined;switch(t||"main"){case"bottom":return this._addToBottomArea(e,n);case"down":return this._addToDownArea(e,n);case"header":return this._addToHeaderArea(e,n);case"left":return this._addToLeftArea(e,n);case"main":return this._addToMainArea(e,n);case"menu":return this._addToMenuArea(e,n);case"right":return this._addToRightArea(e,n);case"top":return this._addToTopArea(e,n);default:throw new Error(`Invalid area: ${t}`)}}move(e,t,n){var i;const s=(i=this._idTypeMap.get(e.id))!==null&&i!==void 0?i:e.id;for(const o of["single-document","multiple-document"].filter((e=>!n||e===n))){this._userLayout[o][s]={...this._userLayout[o][s],area:t}}this.add(e,t);return this._userLayout}collapseLeft(){this._leftHandler.collapse();this._onLayoutModified()}collapseRight(){this._rightHandler.collapse();this._onLayoutModified()}dispose(){if(this.isDisposed){return}this._layoutDebouncer.dispose();super.dispose()}expandLeft(){this._leftHandler.expand();this._onLayoutModified()}expandRight(){this._rightHandler.expand();this._onLayoutModified()}closeAll(){Array.from(this._dockPanel.widgets()).forEach((e=>e.close()));this._downPanel.stackedPanel.widgets.forEach((e=>e.close()))}isSideTabBarVisible(e){switch(e){case"left":return this._leftHandler.isVisible;case"right":return this._rightHandler.isVisible}}isTopInSimpleModeVisible(){return!this._topHandlerHiddenByUser}isEmpty(e){switch(e){case"bottom":return this._bottomPanel.widgets.length===0;case"down":return this._downPanel.stackedPanel.widgets.length===0;case"header":return this._headerPanel.widgets.length===0;case"left":return this._leftHandler.stackedPanel.widgets.length===0;case"main":return this._dockPanel.isEmpty;case"menu":return this._menuHandler.panel.widgets.length===0;case"right":return this._rightHandler.stackedPanel.widgets.length===0;case"top":return this._topHandler.panel.widgets.length===0;default:return true}}async restoreLayout(e,t,n={}){var i,s,o,r;this._userLayout={"single-document":(i=n["single-document"])!==null&&i!==void 0?i:{},"multiple-document":(s=n["multiple-document"])!==null&&s!==void 0?s:{}};this._delayedWidget.forEach((({widget:e,area:t,options:n})=>{this.add(e,t,n)}));this._delayedWidget.length=0;this._layoutRestorer=t;const a=await t.fetch();const{mainArea:l,downArea:d,leftArea:c,rightArea:h,topArea:u,relativeSizes:p}=a;if(l){const{currentWidget:t,dock:n}=l;if(n&&e==="multiple-document"){this._dockPanel.restoreLayout(n)}if(e){this.mode=e}if(t){this.activateById(t.id)}}else{if(e){this.mode=e}}if((u===null||u===void 0?void 0:u.simpleVisibility)!==undefined){this._topHandlerHiddenByUser=!u.simpleVisibility;if(this.mode==="single-document"){this._topHandler.panel.setHidden(this._topHandlerHiddenByUser)}}if(d){const{currentWidget:e,widgets:t,size:n}=d;const i=(o=t===null||t===void 0?void 0:t.map((e=>e.id)))!==null&&o!==void 0?o:[];this._downPanel.tabBar.titles.filter((e=>!i.includes(e.owner.id))).map((e=>e.owner.close()));const s=this._downPanel.tabBar.titles.map((e=>e.owner.id));t===null||t===void 0?void 0:t.filter((e=>!s.includes(e.id))).map((e=>this._downPanel.addWidget(e)));while(!I.ArrayExt.shallowEqual(i,this._downPanel.tabBar.titles.map((e=>e.owner.id)))){this._downPanel.tabBar.titles.forEach(((e,t)=>{const n=i.findIndex((t=>e.owner.id==t));if(n>=0&&n!=t){this._downPanel.tabBar.insertTab(n,e)}}))}if(e){const t=this._downPanel.stackedPanel.widgets.findIndex((t=>t.id===e.id));if(t){this._downPanel.currentIndex=t;(r=this._downPanel.currentWidget)===null||r===void 0?void 0:r.activate()}}if(n&&n>0){this._vsplitPanel.setRelativeSizes([1-n,n])}else{this._downPanel.stackedPanel.widgets.forEach((e=>e.close()));this._downPanel.hide()}}if(c){this._leftHandler.rehydrate(c)}else{if(e==="single-document"){this.collapseLeft()}}if(h){this._rightHandler.rehydrate(h)}else{if(e==="single-document"){this.collapseRight()}}if(p){this._hsplitPanel.setRelativeSizes(p)}if(!this._isRestored){E.MessageLoop.flush();this._restored.resolve(a)}}saveLayout(){const e={mainArea:{currentWidget:this._tracker.currentWidget,dock:this.mode==="single-document"?this._cachedLayout||this._dockPanel.saveLayout():this._dockPanel.saveLayout()},downArea:{currentWidget:this._downPanel.currentWidget,widgets:Array.from(this._downPanel.stackedPanel.widgets),size:this._vsplitPanel.relativeSizes()[1]},leftArea:this._leftHandler.dehydrate(),rightArea:this._rightHandler.dehydrate(),topArea:{simpleVisibility:!this._topHandlerHiddenByUser},relativeSizes:this._hsplitPanel.relativeSizes()};return e}toggleTopInSimpleModeVisibility(){if(this.mode==="single-document"){if(this._topHandler.panel.isVisible){this._topHandlerHiddenByUser=true;this._topHandler.panel.hide()}else{this._topHandlerHiddenByUser=false;this._topHandler.panel.show();this._updateTitlePanelTitle()}this._onLayoutModified()}}toggleSideTabBarVisibility(e){if(e==="right"){if(this._rightHandler.isVisible){this._rightHandler.hide()}else{this._rightHandler.show()}}else{if(this._leftHandler.isVisible){this._leftHandler.hide()}else{this._leftHandler.show()}}}updateConfig(e){if(e.hiddenMode){switch(e.hiddenMode){case"display":this._dockPanel.hiddenMode=M.Widget.HiddenMode.Display;break;case"scale":this._dockPanel.hiddenMode=M.Widget.HiddenMode.Scale;break;case"contentVisibility":this._dockPanel.hiddenMode=M.Widget.HiddenMode.ContentVisibility;break}}}widgets(e){switch(e!==null&&e!==void 0?e:"main"){case"main":return this._dockPanel.widgets();case"left":return(0,I.map)(this._leftHandler.sideBar.titles,(e=>e.owner));case"right":return(0,I.map)(this._rightHandler.sideBar.titles,(e=>e.owner));case"header":return this._headerPanel.children();case"top":return this._topHandler.panel.children();case"menu":return this._menuHandler.panel.children();case"bottom":return this._bottomPanel.children();default:throw new Error(`Invalid area: ${e}`)}}onAfterAttach(e){this.node.dataset.shellMode=this.mode}_updateTitlePanelTitle(){let e=this.currentWidget;const t=this._titleHandler.inputElement;t.value=e?e.title.label:"";t.title=e?e.title.caption:""}_updateCurrentPath(){let e=this.currentWidget;let t="";if(e&&e instanceof a.DocumentWidget){t=e.context.path}this._currentPathChanged.emit({newValue:t,oldValue:this._currentPath});this._currentPath=t}_addToLeftArea(e,t){if(!e.id){console.error("Widgets added to app shell must have unique id property.");return}t=t||this._sideOptionsCache.get(e)||{};this._sideOptionsCache.set(e,t);const n="rank"in t?t.rank:R;this._leftHandler.addWidget(e,n);this._onLayoutModified()}_addToMainArea(e,t){if(!e.id){console.error("Widgets added to app shell must have unique id property.");return}t=t||{};const n=this._dockPanel;const i=t.mode||"tab-after";let s=this.currentWidget;if(t.ref){s=(0,I.find)(n.widgets(),(e=>e.id===t.ref))||null}const{title:o}=e;o.dataset={...o.dataset,id:e.id};if(o.icon instanceof d.LabIcon){o.icon=o.icon.bindprops({stylesheet:"mainAreaTab"})}else if(typeof o.icon==="string"||!o.icon){o.iconClass=(0,d.classes)(o.iconClass,"jp-Icon")}n.addWidget(e,{mode:i,ref:s});if(n.mode==="single-document"){this._mainOptionsCache.set(e,t)}if(t.activate!==false){n.activateWidget(e)}}_addToRightArea(e,t){if(!e.id){console.error("Widgets added to app shell must have unique id property.");return}t=t||this._sideOptionsCache.get(e)||{};const n="rank"in t?t.rank:R;this._sideOptionsCache.set(e,t);this._rightHandler.addWidget(e,n);this._onLayoutModified()}_addToTopArea(e,t){var n;if(!e.id){console.error("Widgets added to app shell must have unique id property.");return}t=t||{};const i=(n=t.rank)!==null&&n!==void 0?n:R;this._topHandler.addWidget(e,i);this._onLayoutModified();if(this._topHandler.panel.isHidden){this._topHandler.panel.show()}}_addToMenuArea(e,t){var n;if(!e.id){console.error("Widgets added to app shell must have unique id property.");return}t=t||{};const i=(n=t.rank)!==null&&n!==void 0?n:R;this._menuHandler.addWidget(e,i);this._onLayoutModified();if(this._menuHandler.panel.isHidden){this._menuHandler.panel.show()}}_addToHeaderArea(e,t){if(!e.id){console.error("Widgets added to app shell must have unique id property.");return}this._headerPanel.addWidget(e);this._onLayoutModified();if(this._headerPanel.isHidden){this._headerPanel.show()}}_addToBottomArea(e,t){if(!e.id){console.error("Widgets added to app shell must have unique id property.");return}this._bottomPanel.addWidget(e);this._onLayoutModified();if(this._bottomPanel.isHidden){this._bottomPanel.show()}}_addToDownArea(e,t){if(!e.id){console.error("Widgets added to app shell must have unique id property.");return}t=t||{};const{title:n}=e;n.dataset={...n.dataset,id:e.id};if(n.icon instanceof d.LabIcon){n.icon=n.icon.bindprops({stylesheet:"mainAreaTab"})}else if(typeof n.icon==="string"||!n.icon){n.iconClass=(0,d.classes)(n.iconClass,"jp-Icon")}this._downPanel.addWidget(e);this._onLayoutModified();if(this._downPanel.isHidden){this._downPanel.show()}}_adjacentBar(e){const t=this._currentTabBar();if(!t){return null}const n=Array.from(this._dockPanel.tabBars());const i=n.length;const s=n.indexOf(t);if(e==="previous"){return s>0?n[s-1]:s===0?n[i-1]:null}return se.titles.indexOf(t)>-1))||null}_onActiveChanged(e,t){if(t.newValue){t.newValue.title.className+=` ${L}`}if(t.oldValue){t.oldValue.title.className=t.oldValue.title.className.replace(L,"")}this._activeChanged.emit(t)}_onCurrentChanged(e,t){if(t.newValue){t.newValue.title.className+=` ${P}`}if(t.oldValue){t.oldValue.title.className=t.oldValue.title.className.replace(P,"")}this._currentChanged.emit(t);this._onLayoutModified()}_onTabPanelChanged(){if(this._downPanel.stackedPanel.widgets.length===0){this._downPanel.hide()}this._onLayoutModified()}_onLayoutModified(){void this._layoutDebouncer.invoke()}}var F;(function(e){function t(e,t){return e.rank-t.rank}e.itemCmp=t;function n(e,t){if(!t){return}if(t.type==="tab-area"){t.widgets=t.widgets.filter((t=>!t.isDisposed&&t.parent===e));return}t.children.forEach((t=>{n(e,t)}))}e.normalizeAreaConfig=n;class i{constructor(){this._panelChildHook=(e,t)=>{switch(t.type){case"child-added":{const e=t.child;if(this._items.find((t=>t.widget===e))){break}const n=this._items[this._items.length-1].rank;this._items.push({widget:e,rank:n})}break;case"child-removed":{const e=t.child;I.ArrayExt.removeFirstWhere(this._items,(t=>t.widget===e))}break;default:break}return true};this._items=new Array;this._panel=new M.Panel;E.MessageLoop.installMessageHook(this._panel,this._panelChildHook)}get panel(){return this._panel}addWidget(t,n){t.parent=null;const i={widget:t,rank:n};const s=I.ArrayExt.upperBound(this._items,i,e.itemCmp);I.ArrayExt.insert(this._items,s,i);this._panel.insertWidget(s,t)}}e.PanelHandler=i;class s{constructor(){this._isHiddenByUser=false;this._items=new Array;this._updated=new u.Signal(this);this._sideBar=new M.TabBar({insertBehavior:"none",removeBehavior:"none",allowDeselect:true,orientation:"vertical"});this._stackedPanel=new M.StackedPanel;this._sideBar.hide();this._stackedPanel.hide();this._lastCurrent=null;this._sideBar.currentChanged.connect(this._onCurrentChanged,this);this._sideBar.tabActivateRequested.connect(this._onTabActivateRequested,this);this._stackedPanel.widgetRemoved.connect(this._onWidgetRemoved,this)}get isVisible(){return this._sideBar.isVisible}get sideBar(){return this._sideBar}get stackedPanel(){return this._stackedPanel}get updated(){return this._updated}_onHandleMoved(){return this._refreshVisibility()}_onExpansionToggle(e,t){return this._refreshVisibility()}expand(){const e=this._lastCurrent||this._items.length>0&&this._items[0].widget;if(e){this.activate(e.id)}}activate(e){const t=this._findWidgetByID(e);if(t){this._sideBar.currentTitle=t.title;t.activate()}}has(e){return this._findWidgetByID(e)!==null}collapse(){this._sideBar.currentTitle=null}addWidget(e,t){var n,i,s,o;e.parent=null;e.hide();const r={widget:e,rank:t};const a=this._findInsertIndex(r);I.ArrayExt.insert(this._items,a,r);this._stackedPanel.insertWidget(a,e);const l=this._sideBar.insertTab(a,e.title);l.dataset={id:e.id};if(l.icon instanceof d.LabIcon){l.icon=l.icon.bindprops({stylesheet:"sideBar"})}else if(typeof l.icon==="string"&&l.icon!=""){l.iconClass=(0,d.classes)(l.iconClass,"jp-Icon","jp-Icon-20")}else if(!l.icon&&!l.label){l.icon=d.tabIcon.bindprops({stylesheet:"sideBar"})}(i=(n=e.content)===null||n===void 0?void 0:n.expansionToggled)===null||i===void 0?void 0:i.connect(this._onExpansionToggle,this);(o=(s=e.content)===null||s===void 0?void 0:s.handleMoved)===null||o===void 0?void 0:o.connect(this._onHandleMoved,this);this._refreshVisibility()}dehydrate(){const e=this._sideBar.currentTitle===null;const t=Array.from(this._stackedPanel.widgets);const n=t[this._sideBar.currentIndex];const i={};this._stackedPanel.widgets.forEach((e=>{if(e.id&&e.content instanceof M.SplitPanel){i[e.id]={sizes:e.content.relativeSizes(),expansionStates:e.content.widgets.map((e=>e.isVisible))}}}));return{collapsed:e,currentWidget:n,visible:!this._isHiddenByUser,widgets:t,widgetStates:i}}rehydrate(e){if(e.currentWidget){this.activate(e.currentWidget.id)}if(e.collapsed){this.collapse()}if(!e.visible){this.hide()}if(e.widgetStates){this._stackedPanel.widgets.forEach((t=>{var n;if(t.id&&t.content instanceof M.SplitPanel){const i=(n=e.widgetStates[t.id])!==null&&n!==void 0?n:{};t.content.widgets.forEach(((e,n)=>{var s;const o=((s=i.expansionStates)!==null&&s!==void 0?s:[])[n];if(typeof o==="boolean"&&t.content instanceof M.AccordionPanel){o?t.content.expand(n):t.content.collapse(n)}}));if(i.sizes){t.content.setRelativeSizes(i.sizes)}}}))}}hide(){this._isHiddenByUser=true;this._refreshVisibility()}show(){this._isHiddenByUser=false;this._refreshVisibility()}_findInsertIndex(t){return I.ArrayExt.upperBound(this._items,t,e.itemCmp)}_findWidgetIndex(e){return I.ArrayExt.findFirstIndex(this._items,(t=>t.widget===e))}_findWidgetByTitle(e){const t=(0,I.find)(this._items,(t=>t.widget.title===e));return t?t.widget:null}_findWidgetByID(e){const t=(0,I.find)(this._items,(t=>t.widget.id===e));return t?t.widget:null}_refreshVisibility(){this._stackedPanel.setHidden(this._sideBar.currentTitle===null);this._sideBar.setHidden(this._isHiddenByUser||this._sideBar.titles.length===0);this._updated.emit()}_onCurrentChanged(e,t){const n=t.previousTitle?this._findWidgetByTitle(t.previousTitle):null;const i=t.currentTitle?this._findWidgetByTitle(t.currentTitle):null;if(n){n.hide()}if(i){i.show()}this._lastCurrent=i||n;this._refreshVisibility()}_onTabActivateRequested(e,t){t.title.owner.activate()}_onWidgetRemoved(e,t){if(t===this._lastCurrent){this._lastCurrent=null}I.ArrayExt.removeAt(this._items,this._findWidgetIndex(t));this._sideBar.removeTab(t.title);this._refreshVisibility()}}e.SideBarHandler=s;class o extends M.Widget{constructor(e){super();this.addClass("jp-skiplink");this.id="jp-skiplink";this._shell=e;this._createSkipLink("Skip to main panel","main")}handleEvent(e){var t,n;switch(e.type){case"click":if(e.target instanceof HTMLElement){this._shell.activateArea((n=(t=e.target)===null||t===void 0?void 0:t.dataset)===null||n===void 0?void 0:n.targetarea)}break}}onAfterAttach(e){super.onAfterAttach(e);this.node.addEventListener("click",this)}onBeforeDetach(e){this.node.removeEventListener("click",this);super.onBeforeDetach(e)}_createSkipLink(e,t){const n=document.createElement("a");n.href="#";n.tabIndex=0;n.text=e;n.className="skip-link";n.dataset["targetarea"]=t;this.node.appendChild(n)}}e.SkipLinkWidget=o;class r extends M.Widget{constructor(e){super();this._selected=false;const t=document.createElement("input");t.type="text";this.node.appendChild(t);this._shell=e;this.id="jp-title-panel-title"}onAfterAttach(e){super.onAfterAttach(e);this.inputElement.addEventListener("keyup",this);this.inputElement.addEventListener("click",this);this.inputElement.addEventListener("blur",this)}onBeforeDetach(e){super.onBeforeDetach(e);this.inputElement.removeEventListener("keyup",this);this.inputElement.removeEventListener("click",this);this.inputElement.removeEventListener("blur",this)}handleEvent(e){switch(e.type){case"keyup":void this._evtKeyUp(e);break;case"click":this._evtClick(e);break;case"blur":this._selected=false;break}}async _evtKeyUp(e){if(e.key=="Enter"){const e=this._shell.currentWidget;if(e==null){return}const t=e.title.label;const n=this.inputElement;const i=n.value;n.blur();if(i!==t){e.title.label=i}else{n.value=t}}}_evtClick(e){if(e.button!==0||this._selected){return}const t=this.inputElement;e.preventDefault();e.stopPropagation();this._selected=true;const n=t.value.indexOf(".");if(n===-1){t.select()}else{t.setSelectionRange(0,n)}}get inputElement(){return this.node.children[0]}}e.TitleHandler=r;class a extends M.SplitPanel{constructor(e={}){super(e);this._updated=new u.Signal(this)}get updated(){return this._updated}onUpdateRequest(e){super.onUpdateRequest(e);this._updated.emit()}}e.RestorableSplitPanel=a})(F||(F={}));var z=n(90044);class H{constructor(e){this._busyCount=0;this._dirtyCount=0;this._busySignal=new u.Signal(e);this._dirtySignal=new u.Signal(e)}get busySignal(){return this._busySignal}get dirtySignal(){return this._dirtySignal}get isBusy(){return this._busyCount>0}get isDirty(){return this._dirtyCount>0}setDirty(){const e=this.isDirty;this._dirtyCount++;if(this.isDirty!==e){this._dirtySignal.emit(this.isDirty)}return new z.DisposableDelegate((()=>{const e=this.isDirty;this._dirtyCount=Math.max(0,this._dirtyCount-1);if(this.isDirty!==e){this._dirtySignal.emit(this.isDirty)}}))}setBusy(){const e=this.isBusy;this._busyCount++;if(this.isBusy!==e){this._busySignal.emit(this.isBusy)}return new z.DisposableDelegate((()=>{const e=this.isBusy;this._busyCount--;if(this.isBusy!==e){this._busySignal.emit(this.isBusy)}}))}}class W extends p{constructor(e={shell:new B}){super({...e,shell:e.shell||new B,serviceManager:e.serviceManager||new l.ServiceManager({standby:()=>!this._info.isConnected||"when-hidden"})});this.name=f.PageConfig.getOption("appName")||"JupyterLab";this.namespace=f.PageConfig.getOption("appNamespace")||this.name;this.registerPluginErrors=[];this.status=new H(this);this.version=f.PageConfig.getOption("appVersion")||"unknown";this._allPluginsActivated=new h.PromiseDelegate;this._info=new W.Info(e);this.restored=this.shell.restored.then((async()=>{const e=[];const t=this.activateDeferredPlugins().catch((e=>{console.error("Error when activating deferred plugins\n:",e)}));e.push(t);if(this._info.deferred){const t=Promise.all(this._info.deferred.matches.map((e=>this.activatePlugin(e)))).catch((e=>{console.error("Error when activating customized list of deferred plugins:\n",e)}));e.push(t)}Promise.all(e).then((()=>{this._allPluginsActivated.resolve()})).catch((()=>undefined))})).catch((()=>undefined));const t=W.defaultPaths.urls;const n=W.defaultPaths.directories;const i=e.paths&&e.paths.urls||{};const s=e.paths&&e.paths.directories||{};this._paths={urls:Object.keys(t).reduce(((e,n)=>{if(n in i){const t=i[n];e[n]=t}else{e[n]=t[n]}return e}),{}),directories:Object.keys(W.defaultPaths.directories).reduce(((e,t)=>{if(t in s){const n=s[t];e[t]=n}else{e[t]=n[t]}return e}),{})};if(this._info.devMode){this.shell.addClass("jp-mod-devMode")}this.docRegistry.addModelFactory(new a.Base64ModelFactory);if(e.mimeExtensions){for(const t of S(e.mimeExtensions)){this.registerPlugin(t)}}}get info(){return this._info}get paths(){return this._paths}get allPluginsActivated(){return this._allPluginsActivated.promise}registerPluginModule(e){let t=e.default;if(!e.hasOwnProperty("__esModule")){t=e}if(!Array.isArray(t)){t=[t]}t.forEach((e=>{try{this.registerPlugin(e)}catch(t){this.registerPluginErrors.push(t)}}))}registerPluginModules(e){e.forEach((e=>{this.registerPluginModule(e)}))}evtKeydown(e){const t=new h.PromiseDelegate;this.commands.holdKeyBindingExecution(e,t.promise);this.commands.processKeydownEvent(e);const n=e.target;if(!n){return t.resolve(true)}let i=null;let s=null;const o=()=>{if(i){n.removeEventListener("beforeinput",i)}if(s){n.removeEventListener("keyup",s)}};const r=Promise.race([new Promise((e=>{i=t=>{switch(t.inputType){case"historyUndo":case"historyRedo":{if(t.target instanceof Element&&t.target.closest("[data-jp-undoer]")){t.preventDefault();o();return e(false)}break}case"insertLineBreak":{if(t.target instanceof Element&&t.target.closest(".jp-Cell")){t.preventDefault();o();return e(false)}break}}o();return e(true)};n.addEventListener("beforeinput",i,{once:true})})),new Promise((t=>{s=n=>{if(n.code===e.code){o();return t(false)}};n.addEventListener("keyup",s,{once:true})})),new Promise((e=>{setTimeout((()=>{o();return e(false)}),V.INPUT_GUARD_TIMEOUT)}))]);r.then((e=>{t.resolve(!e)})).catch(console.warn)}}(function(e){e.IInfo=new h.Token("@jupyterlab/application:IInfo","A service providing metadata about the current application, including disabled extensions and whether dev mode is enabled.");class t{constructor({connectionStatus:t,...n}={}){var i,s,o,r,a,d,c;this._connectionStatus=t!==null&&t!==void 0?t:new l.ConnectionStatus;this._availablePlugins=(i=n.availablePlugins)!==null&&i!==void 0?i:e.defaultInfo.availablePlugins;this._devMode=(s=n.devMode)!==null&&s!==void 0?s:e.defaultInfo.devMode;this._deferred=JSON.parse(JSON.stringify((o=n.deferred)!==null&&o!==void 0?o:e.defaultInfo.deferred));this._disabled=JSON.parse(JSON.stringify((r=n.disabled)!==null&&r!==void 0?r:e.defaultInfo.disabled));this._filesCached=(a=n.filesCached)!==null&&a!==void 0?a:e.defaultInfo.filesCached;this._mimeExtensions=JSON.parse(JSON.stringify((d=n.mimeExtensions)!==null&&d!==void 0?d:e.defaultInfo.mimeExtensions));this.isConnected=(c=n.isConnected)!==null&&c!==void 0?c:e.defaultInfo.isConnected}get availablePlugins(){return this._availablePlugins}get devMode(){return this._devMode}get deferred(){return this._deferred}get disabled(){return this._disabled}get filesCached(){return this._filesCached}get isConnected(){return this._connectionStatus.isConnected}set isConnected(e){this._connectionStatus.isConnected=e}get mimeExtensions(){return this._mimeExtensions}}e.Info=t;e.defaultInfo={devMode:f.PageConfig.getOption("devMode").toLowerCase()==="true",deferred:{patterns:[],matches:[]},disabled:{patterns:[],matches:[]},mimeExtensions:[],availablePlugins:[],filesCached:f.PageConfig.getOption("cacheFiles").toLowerCase()==="true",isConnected:true};e.defaultPaths={urls:{base:f.PageConfig.getOption("baseUrl"),notFound:f.PageConfig.getOption("notFoundUrl"),app:f.PageConfig.getOption("appUrl"),doc:f.PageConfig.getOption("docUrl"),static:f.PageConfig.getOption("staticUrl"),settings:f.PageConfig.getOption("settingsUrl"),themes:f.PageConfig.getOption("themesUrl"),translations:f.PageConfig.getOption("translationsApiUrl"),hubHost:f.PageConfig.getOption("hubHost")||undefined,hubPrefix:f.PageConfig.getOption("hubPrefix")||undefined,hubUser:f.PageConfig.getOption("hubUser")||undefined,hubServerName:f.PageConfig.getOption("hubServerName")||undefined},directories:{appSettings:f.PageConfig.getOption("appSettingsDir"),schemas:f.PageConfig.getOption("schemasDir"),static:f.PageConfig.getOption("staticDir"),templates:f.PageConfig.getOption("templatesDir"),themes:f.PageConfig.getOption("themesDir"),userSettings:f.PageConfig.getOption("userSettingsDir"),serverRoot:f.PageConfig.getOption("serverRoot"),workspaces:f.PageConfig.getOption("workspacesDir")}}})(W||(W={}));var V;(function(e){e.INPUT_GUARD_TIMEOUT=10})(V||(V={}));class U{constructor(e){this.stop=new h.Token("@jupyterlab/application:Router#stop");this._routed=new u.Signal(this);this._rules=new Map;this.base=e.base;this.commands=e.commands}get current(){var e,t;const{base:n}=this;const i=f.URLExt.parse(window.location.href);const{search:s,hash:o}=i;const r=(t=(e=i.pathname)===null||e===void 0?void 0:e.replace(n,"/"))!==null&&t!==void 0?t:"";const a=r+s+o;return{hash:o,path:r,request:a,search:s}}get routed(){return this._routed}navigate(e,t={}){const{base:n}=this;const{history:i}=window;const{hard:s}=t;const o=document.location.href;const r=e&&e.indexOf(n)===0?e:f.URLExt.join(n,e);if(r===o){return s?this.reload():undefined}i.pushState({},"",r);if(s){return this.reload()}if(!t.skipRouting){requestAnimationFrame((()=>{void this.route()}))}}register(e){var t;const{command:n,pattern:i}=e;const s=(t=e.rank)!==null&&t!==void 0?t:100;const o=this._rules;o.set(i,{command:n,rank:s});return new z.DisposableDelegate((()=>{o.delete(i)}))}reload(){window.location.reload()}route(){const{commands:e,current:t,stop:n}=this;const{request:i}=t;const s=this._routed;const o=this._rules;const r=[];o.forEach(((e,t)=>{if(i===null||i===void 0?void 0:i.match(t)){r.push(e)}}));const a=r.sort(((e,t)=>t.rank-e.rank));const l=new h.PromiseDelegate;const d=async()=>{if(!a.length){s.emit(t);l.resolve(undefined);return}const{command:o}=a.pop();try{const i=this.current.request;const s=await e.execute(o,t);if(s===n){a.length=0;console.debug(`Routing ${i} was short-circuited by ${o}`)}}catch(r){console.warn(`Routing ${i} to ${o} failed`,r)}void d()};void d();return l.promise}}const q=new h.Token("@jupyterlab/application:IConnectionLost",`A service for invoking the dialog shown\n when JupyterLab has lost its connection to the server. Use this if, for some reason,\n you want to bring up the "connection lost" dialog under new circumstances.`);const $=new h.Token("@jupyterlab/application:ILabStatus",`A service for interacting with the application busy/dirty\n status. Use this if you want to set the application "busy" favicon, or to set\n the application "dirty" status, which asks the user for confirmation before leaving the application page.`);const K=new h.Token("@jupyterlab/application:IRouter","The URL router used by the application. Use this to add custom URL-routing for your extension (e.g., to invoke a command if the user navigates to a sub-path).");const J=new h.Token("@jupyterlab/application:ITreePathUpdater","A service to update the tree path.");function G(e){const{id:t,commands:n,shell:i,semanticCommands:o,default:r,overrides:a,trans:l}=e;n.addCommand(t,{...Y({commands:n,shell:i},o,r!==null&&r!==void 0?r:{},l!==null&&l!==void 0?l:s.nullTranslator.load("jupyterlab")),...a});const d=Array.isArray(o)?o:[o];const c=(e,n)=>{if(n.id){if(n.id===t&&n.type==="removed"){e.commandChanged.disconnect(c)}else{const i=d.reduce(((e,t)=>e.concat(t.ids)),[]);if(i.includes(n.id)){switch(n.type){case"changed":case"many-changed":e.notifyCommandChanged(t);break;case"removed":for(const e of d){e.remove(n.id)}break}}}}};n.commandChanged.connect(c)}function Y(e,t,n,s){const{commands:o,shell:r}=e;const a=Array.isArray(t)?t:[t];return{label:d("label"),caption:d("caption"),isEnabled:()=>{var e;const t=l("isEnabled");return t.length>0&&!t.some((e=>e===false))||((e=n.isEnabled)!==null&&e!==void 0?e:false)},isToggled:()=>{var e;const t=l("isToggled");return t.some((e=>e===true))||((e=n.isToggled)!==null&&e!==void 0?e:false)},isVisible:()=>{var e;const t=l("isVisible");return t.length>0&&!t.some((e=>e===false))||((e=n.isVisible)!==null&&e!==void 0?e:true)},execute:async()=>{const e=r.currentWidget;const t=a.map((t=>e!==null?t.getActiveCommandId(e):null));const s=t.filter((e=>e!==null&&o.isEnabled(e)));let l=null;if(s.length>0){for(const t of s){const n={[i.SemanticCommand.WIDGET]:e.id};l=await o.execute(t,n);if(typeof l==="boolean"&&l===false){break}}}else if(n.execute){l=await o.execute(n.execute)}return l}};function l(e){const t=r.currentWidget;const n=a.map((e=>t!==null?e.getActiveCommandId(t):null));const i=n.filter((e=>e!==null)).map((t=>o[e](t)));return i}function d(e){return()=>{var t;const i=l(e).map(((t,n)=>e=="caption"&&n>0?t.toLocaleLowerCase():t));switch(i.length){case 0:return(t=n[e])!==null&&t!==void 0?t:"";case 1:return i[0];default:{const e=i.some((e=>/…$/.test(e)));const t=i.slice(undefined,-1).map((e=>e.replace(/…$/,""))).join(", ");const n=i.slice(-1)[0].replace(/…$/,"")+(e?"…":"");return s.__("%1 and %2",t,n)}}}}}},3579:(e,t,n)=>{"use strict";var i=n(2898);var s=n(40244);var o=n(10395);var r=n(40662);var a=n(97913);var l=n(79010);var d=n(85072);var c=n.n(d);var h=n(97825);var u=n.n(h);var p=n(77659);var m=n.n(p);var g=n(55056);var f=n.n(g);var v=n(10540);var _=n.n(v);var b=n(41113);var y=n.n(b);var w=n(30966);var C={};C.styleTagTransform=y();C.setAttributes=f();C.insert=m().bind(null,"head");C.domAPI=u();C.insertStyleElement=_();var x=c()(w.A,C);const S=w.A&&w.A.locals?w.A.locals:undefined},97472:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>De,kernelSettings:()=>Te,toggleHeader:()=>xe});var i=n(94307);var s=n(14366);var o=n(30397);var r=n(84739);var a=n(94931);var l=n(30619);var d=n(26331);var c=n(5592);var h=n(90044);var u=n(26568);var p=n(28548);const m="help:open";const g="/lab/api/news";const f="/lab/api/update";const v="https://jupyterlab.readthedocs.io/en/stable/privacy_policies.html";async function _(e,t={}){const n=p.ServerConnection.makeSettings();const i=o.URLExt.join(n.baseUrl,e);let s;try{s=await p.ServerConnection.makeRequest(i,t,n)}catch(a){throw new p.ServerConnection.NetworkError(a)}const r=await s.json();if(!s.ok){throw new p.ServerConnection.ResponseError(s,r.message)}return r}const b={id:"@jupyterlab/apputils-extension:announcements",description:"Add the announcement feature. It will fetch news on the internet and check for application updates.",autoStart:true,optional:[p.IConfigSectionManager,r.ISettingRegistry,l.ITranslator],activate:(e,t,n,i)=>{var o,r;const a=b.id.replace(/[^\w]/g,"");void Promise.all([e.restored,(o=n===null||n===void 0?void 0:n.load("@jupyterlab/apputils-extension:notification"))!==null&&o!==void 0?o:Promise.resolve(null),(r=t===null||t===void 0?void 0:t.create({name:a}))!==null&&r!==void 0?r:Promise.resolve(null)]).then((async([t,n,o])=>{const r=(i!==null&&i!==void 0?i:l.nullTranslator).load("jupyterlab");s.Notification.manager.changed.connect(((e,t)=>{var n;if(t.type!=="removed"){return}const{id:i,tags:s}=(n=t.notification.options.data)!==null&&n!==void 0?n:{};if((s!==null&&s!==void 0?s:[]).some((e=>["news","update"].includes(e)))&&i){const e={};e[i]={seen:true,dismissed:true};o===null||o===void 0?void 0:o.update(e).catch((e=>{console.error(`Failed to update the announcements config:\n${e}`)}))}}));const a=n===null||n===void 0?void 0:n.get("fetchNews").composite;if(a==="none"){const t=s.Notification.emit(r.__("Would you like to get notified about official Jupyter news?"),"default",{autoClose:false,actions:[{label:r.__("Open privacy policy"),caption:v,callback:t=>{t.preventDefault();if(e.commands.hasCommand(m)){void e.commands.execute(m,{text:r.__("Privacy policies"),url:v})}else{window.open(v,"_blank","noreferrer")}},displayType:"link"},{label:r.__("Yes"),callback:()=>{s.Notification.dismiss(t);o===null||o===void 0?void 0:o.update({}).then((()=>d())).catch((e=>{console.error(`Failed to get the news:\n${e}`)}));n===null||n===void 0?void 0:n.set("fetchNews","true").catch((e=>{console.error(`Failed to save setting 'fetchNews':\n${e}`)}))}},{label:r.__("No"),callback:()=>{s.Notification.dismiss(t);n===null||n===void 0?void 0:n.set("fetchNews","false").catch((e=>{console.error(`Failed to save setting 'fetchNews':\n${e}`)}))}}]})}else{await d()}async function d(){var e,t,i,a;if(((e=n===null||n===void 0?void 0:n.get("fetchNews").composite)!==null&&e!==void 0?e:"false")==="true"){try{const e=await _(g);for(const{link:n,message:i,type:a,options:l}of e.news){const e=l.data["id"];const d=(t=o===null||o===void 0?void 0:o.data[e])!==null&&t!==void 0?t:{seen:false,dismissed:false};if(!d.dismissed){l.actions=[{label:r.__("Hide"),caption:r.__("Never show this notification again."),callback:()=>{const t={};t[e]={seen:true,dismissed:true};o===null||o===void 0?void 0:o.update(t).catch((e=>{console.error(`Failed to update the announcements config:\n${e}`)}))}}];if((n===null||n===void 0?void 0:n.length)===2){l.actions.push({label:n[0],caption:n[1],callback:()=>{window.open(n[1],"_blank","noreferrer")},displayType:"link"})}if(!d.seen){l.autoClose=5e3;const t={};t[e]={seen:true};o===null||o===void 0?void 0:o.update(t).catch((e=>{console.error(`Failed to update the announcements config:\n${e}`)}))}s.Notification.emit(i,a,l)}}}catch(l){console.log("Failed to get the announcements.",l)}}if((i=n===null||n===void 0?void 0:n.get("checkForUpdates").composite)!==null&&i!==void 0?i:true){const e=await _(f);if(e.notification){const{link:t,message:i,type:l,options:d}=e.notification;const c=d.data["id"];const h=(a=o===null||o===void 0?void 0:o.data[c])!==null&&a!==void 0?a:{seen:false,dismissed:false};if(!h.dismissed){let e;d.actions=[{label:r.__("Ignore all updates"),caption:r.__("Do not prompt me if a new JupyterLab version is available."),callback:()=>{n===null||n===void 0?void 0:n.set("checkForUpdates",false).then((()=>{s.Notification.dismiss(e)})).catch((e=>{console.error("Failed to set the `checkForUpdates` setting.",e)}))}}];if((t===null||t===void 0?void 0:t.length)===2){d.actions.push({label:t[0],caption:t[1],callback:()=>{window.open(t[1],"_blank","noreferrer")},displayType:"accent"})}if(!h.seen){d.autoClose=5e3;const e={};e[c]={seen:true};o===null||o===void 0?void 0:o.update(e).catch((e=>{console.error(`Failed to update the announcements config:\n${e}`)}))}e=s.Notification.emit(i,l,d)}}}}}))}};var y=n(23899);var w;(function(e){e.licenses="apputils:licenses";e.licenseReport="apputils:license-report";e.refreshLicenses="apputils:licenses-refresh"})(w||(w={}));const C={id:"@jupyterlab/apputils-extension:licenses-client",description:"The licenses client plugin for fetching licenses.",autoStart:true,provides:s.ILicensesClient,activate:e=>{const t=o.URLExt.join(o.PageConfig.getBaseUrl(),o.PageConfig.getOption("licensesUrl"))+"/";const n=e.serviceManager.serverSettings;return new s.Licenses.LicensesClient({licensesUrl:t,serverSettings:n})}};const x={id:"@jupyterlab/apputils-extension:licenses-plugin",description:"Adds licenses reporting tools.",requires:[s.ILicensesClient,l.ITranslator],optional:[i.ILayoutRestorer,y.IMainMenu,s.ICommandPalette],autoStart:true,activate:(e,t,n,i,r,a)=>{const{commands:l,shell:c}=e;const h=n.load("jupyterlab");const u=h.__("Help");const p=h.__("Download All Licenses as");const m=h.__("Refresh Licenses");const g="help-licenses";const f=new s.WidgetTracker({namespace:g});const v=h.__("Licenses");let _=0;function b(e){const n=new s.Licenses.Model({...e,client:t,trans:h});const i=new s.Licenses({model:n});i.id=`${g}-${++_}`;i.title.label=v;i.title.icon=d.copyrightIcon;const o=new s.MainAreaWidget({content:i,reveal:n.licensesReady});o.toolbar.addItem("refresh-licenses",new d.CommandToolbarButton({id:w.refreshLicenses,args:{noLabel:1},commands:l}));o.toolbar.addItem("spacer",d.Toolbar.createSpacerItem());for(const t of Object.keys(s.Licenses.REPORT_FORMATS)){const e=new d.CommandToolbarButton({id:w.licenseReport,args:{format:t,noLabel:1},commands:l});o.toolbar.addItem(`download-${t}`,e)}return o}function y(e){return s.Licenses.REPORT_FORMATS[e]||s.Licenses.REPORT_FORMATS[s.Licenses.DEFAULT_FORMAT]}l.addCommand(w.licenses,{label:v,execute:e=>{if(!o.PageConfig.getOption("licensesUrl")){console.warn("No license API available from the server");return}const t=b(e);c.add(t,"main",{type:"Licenses"});void f.add(t);t.content.model.trackerDataChanged.connect((()=>{void f.save(t)}));return t}});l.addCommand(w.refreshLicenses,{label:e=>e.noLabel?"":m,caption:m,icon:d.refreshIcon,execute:async()=>{var e;return(e=f.currentWidget)===null||e===void 0?void 0:e.content.model.initLicenses()}});l.addCommand(w.licenseReport,{label:e=>{if(e.noLabel){return""}const t=y(`${e.format}`);return`${p} ${t.title}`},caption:e=>{const t=y(`${e.format}`);return`${p} ${t.title}`},icon:e=>{const t=y(`${e.format}`);return t.icon},execute:async e=>{var t;const n=y(`${e.format}`);return await((t=f.currentWidget)===null||t===void 0?void 0:t.content.model.download({format:n.id}))}});if(a){a.addItem({command:w.licenses,category:u})}if(r){const e=r.helpMenu;e.addGroup([{command:w.licenses}],0)}if(i){void i.restore(f,{command:w.licenses,name:e=>"licenses",args:e=>{const{currentBundleName:t,currentPackageIndex:n,packageFilter:i}=e.content.model;const s={currentBundleName:t,currentPackageIndex:n,packageFilter:i};return s}})}}};var S=n(24735);var k=n(1143);var j=n(44914);var I=n(5338);const E="jp-Notification-Toast-Close";const T="jp-Notification-Toast-Close-Margin";const M=140;var D;(function(e){e.dismiss="apputils:dismiss-notification";e.display="apputils:display-notifications";e.notify="apputils:notify";e.update="apputils:update-notification"})(D||(D={}));const A=4;function P(e){const{manager:t,onClose:n,trans:i}=e;const[s,o]=j.useState([]);const[r,a]=j.useState(null);j.useEffect((()=>{async function e(){o(await Promise.all(t.notifications.map((async e=>Object.freeze({...e})))))}if(s.length!==t.count){void e()}t.changed.connect(e);return()=>{t.changed.disconnect(e)}}),[t]);j.useEffect((()=>{O.getIcons().then((e=>{a(e)})).catch((e=>{console.error(`Failed to get react-toastify icons:\n${e}`)}))}),[]);return j.createElement(d.UseSignal,{signal:t.changed},(()=>j.createElement(j.Fragment,null,j.createElement("h2",{className:"jp-Notification-Header jp-Toolbar"},j.createElement("span",{className:"jp-Toolbar-item"},t.count>0?i._n("%1 notification","%1 notifications",t.count):i.__("No notifications")),j.createElement("span",{className:"jp-Toolbar-item jp-Toolbar-spacer"}),j.createElement(d.ToolbarButtonComponent,{noFocusOnClick:false,onClick:()=>{t.dismiss()},icon:d.deleteIcon,tooltip:i.__("Dismiss all notifications"),enabled:t.count>0}),j.createElement(d.ToolbarButtonComponent,{noFocusOnClick:false,onClick:n,icon:d.closeIcon,tooltip:i.__("Hide notifications")})),j.createElement("ol",{className:"jp-Notification-List"},s.map((e=>{var n;const{id:s,message:o,type:a,options:l}=e;const c=a==="in-progress"?"default":a;const h=()=>{t.dismiss(s)};const u=a==="default"?null:a==="in-progress"?(n=r===null||r===void 0?void 0:r.spinner)!==null&&n!==void 0?n:null:r&&r[a];return j.createElement("li",{className:"jp-Notification-List-Item",key:e.id,onClick:e=>{e.stopPropagation()}},j.createElement("div",{className:`Toastify__toast Toastify__toast-theme--light Toastify__toast--${c} jp-Notification-Toast-${c}`},j.createElement("div",{className:"Toastify__toast-body"},u&&j.createElement("div",{className:"Toastify__toast-icon"},u({theme:"light",type:c})),j.createElement("div",null,O.createContent(o,h,l.actions))),j.createElement(O.CloseButton,{close:h,closeIcon:d.deleteIcon.react,title:i.__("Dismiss notification"),closeIconMargin:true})))}))))))}class L extends d.VDomModel{constructor(e){super();this.manager=e;this._highlight=false;this._listOpened=false;this._doNotDisturbMode=false;this._count=e.count;this.manager.changed.connect(this.onNotificationChanged,this)}get count(){return this._count}get doNotDisturbMode(){return this._doNotDisturbMode}set doNotDisturbMode(e){this._doNotDisturbMode=e}get highlight(){return this._highlight}get listOpened(){return this._listOpened}set listOpened(e){this._listOpened=e;if(this._listOpened||this._highlight){this._highlight=false}this.stateChanged.emit()}onNotificationChanged(e,t){this._count=this.manager.count;const{autoClose:n}=t.notification.options;const i=this.doNotDisturbMode||typeof n==="number"&&n<=0;if(!this._listOpened&&t.type!=="removed"&&i){this._highlight=true}this.stateChanged.emit()}}function R(e){return j.createElement(S.GroupItem,{spacing:A,onClick:()=>{e.onClick()},title:e.count>0?e.trans._n("%1 notification","%1 notifications",e.count):e.trans.__("No notifications")},j.createElement(S.TextItem,{className:"jp-Notification-Status-Text",source:`${e.count}`}),j.createElement(d.bellIcon.react,{top:"2px",stylesheet:"statusBar"}))}const N={id:"@jupyterlab/apputils-extension:notification",description:"Add the notification center and its status indicator.",autoStart:true,optional:[S.IStatusBar,r.ISettingRegistry,l.ITranslator],activate:(e,t,n,i)=>{O.translator=i!==null&&i!==void 0?i:l.nullTranslator;const o=O.translator.load("jupyterlab");const r=new L(s.Notification.manager);r.doNotDisturbMode=false;if(n){void Promise.all([n.load(N.id),e.restored]).then((([e])=>{const t=()=>{r.doNotDisturbMode=e.get("doNotDisturbMode").composite};t();e.changed.connect(t)}))}e.commands.addCommand(D.notify,{label:o.__("Emit a notification"),caption:o.__("Notification is described by {message: string, type?: string, options?: {autoClose?: number | false, actions: {label: string, commandId: string, args?: ReadOnlyJSONObject, caption?: string, className?: string}[], data?: ReadOnlyJSONValue}}."),execute:t=>{var n;const{message:i,type:o}=t;const r=(n=t.options)!==null&&n!==void 0?n:{};return s.Notification.manager.notify(i,o!==null&&o!==void 0?o:"default",{...r,actions:r.actions?r.actions.map((t=>({...t,callback:()=>{e.commands.execute(t.commandId,t.args).catch((e=>{console.error(`Failed to executed '${t.commandId}':\n${e}`)}))}}))):null})}});e.commands.addCommand(D.update,{label:o.__("Update a notification"),caption:o.__("Notification is described by {id: string, message: string, type?: string, options?: {autoClose?: number | false, actions: {label: string, commandId: string, args?: ReadOnlyJSONObject, caption?: string, className?: string}[], data?: ReadOnlyJSONValue}}."),execute:t=>{const{id:n,message:i,type:o,...r}=t;return s.Notification.manager.update({id:n,message:i,type:o!==null&&o!==void 0?o:"default",...r,actions:r.actions?r.actions.map((t=>({...t,callback:()=>{e.commands.execute(t.commandId,t.args).catch((e=>{console.error(`Failed to executed '${t.commandId}':\n${e}`)}))}}))):null})}});e.commands.addCommand(D.dismiss,{label:o.__("Dismiss a notification"),execute:e=>{const{id:t}=e;s.Notification.manager.dismiss(t)}});let a=null;r.listOpened=false;const c=s.ReactWidget.create(j.createElement(P,{manager:s.Notification.manager,onClose:()=>{a===null||a===void 0?void 0:a.dispose()},trans:o}));c.addClass("jp-Notification-Center");async function h(e,t){var n;if(r.doNotDisturbMode||a!==null&&!a.isDisposed){return}const{message:i,type:s,options:o,id:l}=t.notification;if(typeof o.autoClose==="number"&&o.autoClose<=0){return}switch(t.type){case"added":await O.createToast(l,i,s,o);break;case"updated":{const t=await O.toast();const r=o.actions;const a=(n=o.autoClose)!==null&&n!==void 0?n:r&&r.length>0?false:null;if(t.isActive(l)){const n=()=>{t.dismiss(l);e.dismiss(l)};t.update(l,{type:s==="in-progress"?null:s,isLoading:s==="in-progress",autoClose:a,render:O.createContent(i,n,o.actions)})}else{await O.createToast(l,i,s,o)}}break;case"removed":await O.toast().then((e=>{e.dismiss(l)}));break}}s.Notification.manager.changed.connect(h);const u=()=>{if(a){a.dispose();a=null}else{a=(0,S.showPopup)({body:c,anchor:p,align:"right",hasDynamicSize:true,startHidden:true});O.toast().then((e=>{e.dismiss()})).catch((e=>{console.error(`Failed to dismiss all toasts:\n${e}`)})).finally((()=>{a===null||a===void 0?void 0:a.launch();c.node.focus();a===null||a===void 0?void 0:a.disposed.connect((()=>{r.listOpened=false;a=null}))}))}r.listOpened=a!==null};e.commands.addCommand(D.display,{label:o.__("Show Notifications"),execute:u});const p=s.ReactWidget.create(j.createElement(d.UseSignal,{signal:r.stateChanged},(()=>{if(r.highlight||a&&!a.isDisposed){p.addClass("jp-mod-selected")}else{p.removeClass("jp-mod-selected")}return j.createElement(R,{count:r.count,highlight:r.highlight,trans:o,onClick:u})})));p.addClass("jp-Notification-Status");if(t){t.registerStatusItem(N.id,{item:p,align:"right",rank:-1})}else{p.addClass("jp-ThemedContainer");p.node.style.position="fixed";p.node.style.bottom="0";p.node.style.right="10px";k.Widget.attach(p,document.body);p.show()}}};var O;(function(e){e.translator=l.nullTranslator;let t=null;function i(e){var t;return j.createElement("button",{className:`jp-Button jp-mod-minimal ${E}${e.closeIconMargin?` ${T}`:""}`,title:(t=e.title)!==null&&t!==void 0?t:"",onClick:e.close},j.createElement(e.closeIcon,{className:"jp-icon-hover",tag:"span"}))}e.CloseButton=i;function o(t){const n=e.translator.load("jupyterlab");return j.createElement(i,{close:t.closeToast,closeIcon:d.closeIcon.react,title:n.__("Hide notification")})}let r=null;async function a(){if(r===null){r=new c.PromiseDelegate}else{await r.promise}if(t===null){t=await n.e(1210).then(n.t.bind(n,91210,23));const e=document.body.appendChild(document.createElement("div"));e.id="react-toastify-container";e.classList.add("jp-ThemedContainer");const i=(0,I.H)(e);i.render(j.createElement(t.ToastContainer,{draggable:false,closeOnClick:false,hideProgressBar:true,newestOnTop:true,pauseOnFocusLoss:true,pauseOnHover:true,position:"bottom-right",className:"jp-toastContainer",transition:t.Slide,closeButton:o}));r.resolve()}return t.toast}e.toast=a;async function h(){if(t===null){await a()}return t.Icons}e.getIcons=h;const u={accent:"jp-mod-accept",link:"jp-mod-link",warn:"jp-mod-warn",default:""};function p({action:e,closeToast:t}){var n,i;const s=n=>{e.callback(n);if(!n.defaultPrevented){t()}};const o=["jp-toast-button",u[(n=e.displayType)!==null&&n!==void 0?n:"default"]].join(" ");return j.createElement(d.Button,{title:(i=e.caption)!==null&&i!==void 0?i:e.label,className:o,onClick:s,small:true},e.label)}function m(e,t,n){var i;const s=e.length>M?e.slice(0,M)+"…":e;return j.createElement(j.Fragment,null,j.createElement("div",{className:"jp-toast-message"},s.split("\n").map(((e,t)=>j.createElement(j.Fragment,{key:`part-${t}`},t>0?j.createElement("br",null):null,e)))),((i=n===null||n===void 0?void 0:n.length)!==null&&i!==void 0?i:0)>0&&j.createElement("div",{className:"jp-toast-buttonBar"},j.createElement("div",{className:"jp-toast-spacer"}),n.map(((e,n)=>j.createElement(p,{key:"button-"+n,action:e,closeToast:t})))))}e.createContent=m;async function g(e,t,n,i={}){const{actions:o,autoClose:r,data:l}=i;const d=await a();const c={autoClose:r!==null&&r!==void 0?r:o&&o.length>0?false:undefined,data:l,className:`jp-Notification-Toast-${n}`,toastId:e,type:n==="in-progress"?null:n,isLoading:n==="in-progress"};return d((({closeToast:n})=>m(t,(()=>{if(n)n();s.Notification.manager.dismiss(e)}),o)),c)}e.createToast=g})(O||(O={}));var B=n(34236);var F=n(93247);var z;(function(e){e.activate="apputils:activate-command-palette"})(z||(z={}));const H="@jupyterlab/apputils-extension:palette";class W{constructor(e,t){this.translator=t||l.nullTranslator;const n=this.translator.load("jupyterlab");this._palette=e;this._palette.title.label="";this._palette.title.caption=n.__("Command Palette")}set placeholder(e){this._palette.inputNode.placeholder=e}get placeholder(){return this._palette.inputNode.placeholder}activate(){this._palette.activate()}addItem(e){const t=this._palette.addItem(e);return new h.DisposableDelegate((()=>{this._palette.removeItem(t)}))}}(function(e){function t(t,n,i){const{commands:o,shell:r}=t;const a=n.load("jupyterlab");const l=V.createPalette(t,n);const d=new s.ModalCommandPalette({commandPalette:l});let c=false;l.node.setAttribute("role","region");l.node.setAttribute("aria-label",a.__("Command Palette Section"));r.add(l,"left",{rank:300,type:"Command Palette"});if(i){const e=i.load(H);const n=e=>{const t=e.get("modal").composite;if(c&&!t){l.parent=null;d.detach();r.add(l,"left",{rank:300,type:"Command Palette"})}else if(!c&&t){l.parent=null;d.palette=l;l.show();d.attach()}c=t};Promise.all([e,t.restored]).then((([e])=>{n(e);e.changed.connect((e=>{n(e)}))})).catch((e=>{console.error(e.message)}))}const h=()=>{const e=(0,B.find)(t.commands.keyBindings,(e=>e.command===z.activate));if(e){const t=e.keys.map(F.CommandRegistry.formatKeystroke).join(", ");l.title.caption=a.__("Commands (%1)",t)}else{l.title.caption=a.__("Commands")}};h();t.commands.keyBindingChanged.connect((()=>{h()}));o.addCommand(z.activate,{execute:()=>{if(c){d.activate()}else{r.activateById(l.id)}},label:a.__("Activate Command Palette")});l.inputNode.placeholder=a.__("SEARCH");return new e(l,n)}e.activate=t;function n(e,t,n){const i=V.createPalette(e,n);t.add(i,"command-palette")}e.restore=n})(W||(W={}));var V;(function(e){let t;function n(e,n){if(!t){t=new k.CommandPalette({commands:e.commands,renderer:d.CommandPaletteSvg.defaultRenderer});t.id="command-palette";t.title.icon=d.paletteIcon;const i=n.load("jupyterlab");t.title.label=i.__("Commands")}return t}e.createPalette=n})(V||(V={}));class U extends a.DataConnector{constructor(e){super();this._throttlers=Object.create(null);this._connector=e}fetch(e){const t=this._throttlers;if(!(e in t)){t[e]=new u.Throttler((()=>this._connector.fetch(e)),100)}return t[e].invoke()}async list(e="all"){const{isDisabled:t}=o.PageConfig.Extension;const{ids:n,values:i}=await this._connector.list(e==="ids"?"ids":undefined);if(e==="all"){return{ids:n,values:i}}if(e==="ids"){return{ids:n}}return{ids:n.filter((e=>!t(e))),values:i.filter((({id:e})=>!t(e)))}}async save(e,t){await this._connector.save(e,t)}}const q={id:"@jupyterlab/apputils-extension:settings-connector",description:"Provides the settings connector.",autoStart:true,provides:r.ISettingConnector,activate:e=>new U(e.serviceManager.settings)};const $={id:"@jupyterlab/apputils-extension:settings",autoStart:true,provides:r.ISettingRegistry,optional:[r.ISettingConnector],description:"Provides the setting registry.",activate:async(e,t)=>{const{isDisabled:n}=o.PageConfig.Extension;const i=t!==null&&t!==void 0?t:new U(e.serviceManager.settings);const s=new r.SettingRegistry({connector:i,plugins:(await i.list("active")).values.filter((t=>e.hasPlugin(t.id)))});void e.restored.then((async()=>{const t=await i.list("ids");t.ids.forEach((async t=>{if(!e.hasPlugin(t)||n(t)||t in s.plugins){return}try{await s.load(t)}catch(i){console.warn(`Settings failed to load for (${t})`,i);if(!e.isPluginActivated(t)){console.warn(`If 'jupyter.lab.transform=true' in the plugin schema, this `+`may happen if {autoStart: false} in (${t}) or if it is `+`one of the deferredExtensions in page config.`)}}}))}));return s}};const K={id:"@jupyterlab/apputils-extension:kernel-status",description:"Provides the kernel status indicator model.",autoStart:true,requires:[S.IStatusBar],provides:s.IKernelStatusModel,optional:[s.ISessionContextDialogs,l.ITranslator,i.ILabShell],activate:(e,t,n,i,o)=>{const r=i!==null&&i!==void 0?i:l.nullTranslator;const a=n!==null&&n!==void 0?n:new s.SessionContextDialogs({translator:r});const d=async()=>{if(!h.model.sessionContext){return}await a.selectKernel(h.model.sessionContext)};const c=async e=>{if(e.key==="Enter"||e.key==="Spacebar"||e.key===" "){e.preventDefault();e.stopPropagation();return d()}};const h=new s.KernelStatus({onClick:d,onKeyDown:c},r);const u=new Set;const p=t=>{u.add(t);if(e.shell.currentWidget){m(e.shell,{newValue:e.shell.currentWidget,oldValue:null})}};function m(e,t){var n;const{oldValue:i,newValue:s}=t;if(i){i.title.changed.disconnect(g)}h.model.sessionContext=(n=[...u].map((e=>e(t.newValue))).filter((e=>e!==null))[0])!==null&&n!==void 0?n:null;if(s&&h.model.sessionContext){g(s.title);s.title.changed.connect(g)}}const g=e=>{h.model.activityName=e.label};if(o){o.currentChanged.connect(m)}t.registerStatusItem(K.id,{priority:1,item:h,align:"left",rank:1,isActive:()=>h.model.sessionContext!==null});return{addSessionProvider:p}}};const J={id:"@jupyterlab/apputils-extension:running-sessions-status",description:"Add the running sessions and terminals status bar item.",autoStart:true,requires:[S.IStatusBar,l.ITranslator],optional:[r.ISettingRegistry],activate:(e,t,n,i)=>{const o=t=>{const i=new s.RunningSessions({onClick:()=>e.shell.activateById("jp-running-sessions"),onKeyDown:t=>{if(t.key==="Enter"||t.key==="Spacebar"||t.key===" "){t.preventDefault();t.stopPropagation();e.shell.activateById("jp-running-sessions")}},serviceManager:e.serviceManager,translator:n,...t});i.model.sessions=Array.from(e.serviceManager.sessions.running()).length;i.model.terminals=Array.from(e.serviceManager.terminals.running()).length;return i};const r=e=>{const n=o(e);return t.registerStatusItem(J.id,{item:n,align:"left",rank:0})};if(i){let e;const t=(t,n)=>{var i,s;const o={"if-any":undefined,never:false,always:true};const a=(i=t===null||t===void 0?void 0:t.get("showStatusBarItem").composite)!==null&&i!==void 0?i:true;const l=o[(s=n===null||n===void 0?void 0:n.get("showStatusBarItem").composite)!==null&&s!==void 0?s:"if-any"];e===null||e===void 0?void 0:e.dispose();if(a||l!==false){e=r({showKernels:a,showTerminals:l})}};const n="@jupyterlab/apputils-extension:kernels-settings";const s="@jupyterlab/terminal-extension:plugin";void Promise.all([n in i.plugins?i.load(n).catch((()=>undefined)):Promise.resolve(undefined),s in i.plugins?i.load(s).catch((()=>undefined)):Promise.resolve(undefined)]).then((([e,n])=>{t(e,n);if(e){e.changed.connect((i=>{e=i;t(e,n)}))}if(n){n.changed.connect((i=>{n=i;t(e,n)}))}}))}else{r({showKernels:true})}}};const G={id:"@jupyterlab/apputils-extension:subshell-settings",description:"Kernel subshell settings.",autoStart:true,requires:[],optional:[r.ISettingRegistry],activate:(e,t)=>{if(t){e.started.then((async()=>{const n=await t.load("@jupyterlab/apputils-extension:kernels-settings");const i=n.get("commsOverSubshells").composite;e.serviceManager.kernels.commsOverSubshells=i;n.changed.connect((()=>{const t=n.get("commsOverSubshells").composite;e.serviceManager.kernels.commsOverSubshells=t}))})).catch((e=>{console.error("Fail to load settings for the subshells.");console.error(e)}))}}};const Y="/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n/*\n * Webkit scrollbar styling.\n * Separate file which is dynamically loaded based on user/theme settings.\n */\n\n/* use standard opaque scrollbars for most nodes */\n\n::-webkit-scrollbar,\n::-webkit-scrollbar-corner {\n background: var(--jp-scrollbar-background-color);\n}\n\n::-webkit-scrollbar-thumb {\n background: rgb(var(--jp-scrollbar-thumb-color));\n border: var(--jp-scrollbar-thumb-margin) solid transparent;\n background-clip: content-box;\n border-radius: var(--jp-scrollbar-thumb-radius);\n}\n\n::-webkit-scrollbar-track:horizontal {\n border-left: var(--jp-scrollbar-endpad) solid\n var(--jp-scrollbar-background-color);\n border-right: var(--jp-scrollbar-endpad) solid\n var(--jp-scrollbar-background-color);\n}\n\n::-webkit-scrollbar-track:vertical {\n border-top: var(--jp-scrollbar-endpad) solid\n var(--jp-scrollbar-background-color);\n border-bottom: var(--jp-scrollbar-endpad) solid\n var(--jp-scrollbar-background-color);\n}\n\n/* for code nodes, use a transparent style of scrollbar */\n\n.CodeMirror-hscrollbar::-webkit-scrollbar,\n.CodeMirror-vscrollbar::-webkit-scrollbar,\n.CodeMirror-hscrollbar::-webkit-scrollbar-corner,\n.CodeMirror-vscrollbar::-webkit-scrollbar-corner {\n background-color: transparent;\n}\n\n.CodeMirror-hscrollbar::-webkit-scrollbar-thumb,\n.CodeMirror-vscrollbar::-webkit-scrollbar-thumb {\n background: rgba(var(--jp-scrollbar-thumb-color), 0.5);\n border: var(--jp-scrollbar-thumb-margin) solid transparent;\n background-clip: content-box;\n border-radius: var(--jp-scrollbar-thumb-radius);\n}\n\n.CodeMirror-hscrollbar::-webkit-scrollbar-track:horizontal {\n border-left: var(--jp-scrollbar-endpad) solid transparent;\n border-right: var(--jp-scrollbar-endpad) solid transparent;\n}\n\n.CodeMirror-vscrollbar::-webkit-scrollbar-track:vertical {\n border-top: var(--jp-scrollbar-endpad) solid transparent;\n border-bottom: var(--jp-scrollbar-endpad) solid transparent;\n}\n";var X;(function(e){e.changeTheme="apputils:change-theme";e.changePreferredLightTheme="apputils:change-light-theme";e.changePreferredDarkTheme="apputils:change-dark-theme";e.toggleAdaptiveTheme="apputils:adaptive-theme";e.themeScrollbars="apputils:theme-scrollbars";e.changeFont="apputils:change-font";e.incrFontSize="apputils:incr-font-size";e.decrFontSize="apputils:decr-font-size"})(X||(X={}));function Q(e){const t=document.createElement("style");t.setAttribute("type","text/css");t.appendChild(document.createTextNode(e));return t}const Z={id:"@jupyterlab/apputils-extension:themes",description:"Provides the theme manager.",requires:[r.ISettingRegistry,i.JupyterFrontEnd.IPaths,l.ITranslator],optional:[s.ISplashScreen],activate:(e,t,n,i,r)=>{const a=i.load("jupyterlab");const l=e.shell;const d=e.commands;const c=o.URLExt.join(o.PageConfig.getBaseUrl(),n.urls.themes);const h=Z.id;const u=new s.ThemeManager({key:h,host:l,settings:t,splash:r!==null&&r!==void 0?r:undefined,url:c});let p=null;let m;u.themeChanged.connect(((e,t)=>{m=t.newValue;document.body.dataset.jpThemeLight=String(u.isLight(m));document.body.dataset.jpThemeName=m;document.body.style.colorScheme=u.isLight(m)?"light":"dark";if(document.body.dataset.jpThemeScrollbars!==String(u.themeScrollbars(m))){document.body.dataset.jpThemeScrollbars=String(u.themeScrollbars(m));if(u.themeScrollbars(m)){if(!p){p=Q(Y)}if(!p.parentElement){document.body.appendChild(p)}}else{if(p&&p.parentElement){p.parentElement.removeChild(p)}}}d.notifyCommandChanged(X.changeTheme)}));d.addCommand(X.changeTheme,{label:e=>{if(e.theme===undefined){return a.__("Switch to the provided `theme`.")}const t=e["theme"];const n=u.getDisplayName(t);return e["isPalette"]?a.__("Use Theme: %1",n):n},isToggled:e=>e["theme"]===m,execute:e=>{const t=e["theme"];if(t===u.theme){return}if(u.isToggledAdaptiveTheme()){return u.toggleAdaptiveTheme()}return u.setTheme(t)}});d.addCommand(X.changePreferredLightTheme,{label:e=>{if(e.theme===undefined){return a.__("Switch to the provided light `theme`.")}const t=e["theme"];const n=u.getDisplayName(t);return e["isPalette"]?a.__("Set Preferred Light Theme: %1",n):n},isToggled:e=>e["theme"]===u.preferredLightTheme,execute:e=>{const t=e["theme"];if(t===u.preferredLightTheme){return}return u.setPreferredLightTheme(t)}});d.addCommand(X.changePreferredDarkTheme,{label:e=>{if(e.theme===undefined){return a.__("Switch to the provided dark `theme`.")}const t=e["theme"];const n=u.getDisplayName(t);return e["isPalette"]?a.__("Set Preferred Dark Theme: %1",n):n},isToggled:e=>e["theme"]===u.preferredDarkTheme,execute:e=>{const t=e["theme"];if(t===u.preferredDarkTheme){return}return u.setPreferredDarkTheme(t)}});d.addCommand(X.toggleAdaptiveTheme,{label:e=>e["isPalette"]?a.__("Synchronize Styling Theme with System Settings"):a.__("Synchronize with System Settings"),isToggled:()=>u.isToggledAdaptiveTheme(),execute:()=>{u.toggleAdaptiveTheme().catch(console.warn)}});d.addCommand(X.themeScrollbars,{label:a.__("Theme Scrollbars"),isToggled:()=>u.isToggledThemeScrollbars(),execute:()=>u.toggleThemeScrollbars()});d.addCommand(X.changeFont,{label:e=>e["enabled"]?`${e["font"]}`:a.__("waiting for fonts"),isEnabled:e=>e["enabled"],isToggled:e=>u.getCSS(e["key"])===e["font"],execute:e=>u.setCSSOverride(e["key"],e["font"])});d.addCommand(X.incrFontSize,{label:e=>{switch(e.key){case"code-font-size":return a.__("Increase Code Font Size");case"content-font-size1":return a.__("Increase Content Font Size");case"ui-font-size1":return a.__("Increase UI Font Size");default:return a.__("Increase Font Size")}},execute:e=>u.incrFontSize(e["key"])});d.addCommand(X.decrFontSize,{label:e=>{switch(e.key){case"code-font-size":return a.__("Decrease Code Font Size");case"content-font-size1":return a.__("Decrease Content Font Size");case"ui-font-size1":return a.__("Decrease UI Font Size");default:return a.__("Decrease Font Size")}},execute:e=>u.decrFontSize(e["key"])});return u},autoStart:true,provides:s.IThemeManager};const ee={id:"@jupyterlab/apputils-extension:themes-palette-menu",description:"Adds theme commands to the menu and the command palette.",requires:[s.IThemeManager,l.ITranslator],optional:[s.ICommandPalette,y.IMainMenu],activate:(e,t,n,i,s)=>{const o=n.load("jupyterlab");if(s){void e.restored.then((()=>{var e;const n=false;const i=(e=s.settingsMenu.items.find((e=>{var t;return e.type==="submenu"&&((t=e.submenu)===null||t===void 0?void 0:t.id)==="jp-mainmenu-settings-apputilstheme"})))===null||e===void 0?void 0:e.submenu;if(i){t.themes.forEach(((e,t)=>{i.insertItem(t,{command:X.changeTheme,args:{isPalette:n,theme:e}})}))}}))}if(i){void e.restored.then((()=>{const e=o.__("Theme");const n=X.changeTheme;const s=true;t.themes.forEach((t=>{i.addItem({command:n,args:{isPalette:s,theme:t},category:e})}));t.themes.forEach((t=>{i.addItem({command:X.changePreferredLightTheme,args:{isPalette:s,theme:t},category:e})}));t.themes.forEach((t=>{i.addItem({command:X.changePreferredDarkTheme,args:{isPalette:s,theme:t},category:e})}));i.addItem({command:X.toggleAdaptiveTheme,args:{isPalette:s},category:e});i.addItem({command:X.themeScrollbars,category:e});i.addItem({command:X.incrFontSize,args:{key:"code-font-size"},category:e});i.addItem({command:X.decrFontSize,args:{key:"code-font-size"},category:e});i.addItem({command:X.incrFontSize,args:{key:"content-font-size1"},category:e});i.addItem({command:X.decrFontSize,args:{key:"content-font-size1"},category:e});i.addItem({command:X.incrFontSize,args:{key:"ui-font-size1"},category:e});i.addItem({command:X.decrFontSize,args:{key:"ui-font-size1"},category:e})}))}},autoStart:true};const te={id:"@jupyterlab/apputils-extension:toolbar-registry",description:"Provides toolbar items registry.",autoStart:true,provides:s.IToolbarWidgetRegistry,activate:e=>{const t=new s.ToolbarWidgetRegistry({defaultFactory:(0,s.createDefaultFactory)(e.commands)});return t}};var ne=n(93037);var ie=n(6751);const se="jupyterlab-workspace";const oe="."+se;const re="workspace-ui:lastSave";const ae="jp-JupyterIcon";const le={id:"@jupyterlab/apputils-extension:workspaces",description:"Add workspace file type.",autoStart:true,requires:[a.IStateDB,l.ITranslator,i.JupyterFrontEnd.IPaths],optional:[i.IRouter,ie.IWorkspaceCommands],activate:(e,t,n,i,s,r)=>{const a=new de.WorkspaceFactory({workspaces:e.serviceManager.workspaces,state:t,translator:n,open:async t=>{if(r){await e.commands.execute(r.open,{workspace:t})}else{const e=o.URLExt.join(i.urls.app,"workspaces");const n=o.URLExt.join(e,t);if(!n.startsWith(e)){throw new Error("Can only be used for workspaces")}if(s){s.navigate(n,{hard:true})}else{document.location.href=n}}}});const l=n.load("jupyterlab");e.docRegistry.addFileType({name:se,contentType:"file",fileFormat:"text",displayName:l.__("JupyterLab Workspace File"),extensions:[oe],mimeTypes:["text/json"],iconClass:ae});e.docRegistry.addWidgetFactory(a)}};var de;(function(e){class t extends ne.ABCWidgetFactory{constructor(e){const t=(e.translator||l.nullTranslator).load("jupyterlab");super({name:"Workspace loader",label:t.__("Workspace loader"),fileTypes:[se],defaultFor:[se],readOnly:true});this._state=e.state;this._workspaces=e.workspaces;this._open=e.open}createNewWidget(e){void e.ready.then((async()=>{const t=e.model;const n=t.toJSON();const i=e.path;const s=n.metadata.id;await this._workspaces.save(s,n);await this._state.save(re,i);await this._open(s)}));return n(e)}}e.WorkspaceFactory=t;function n(e){const t=new ne.DocumentWidget({content:new k.Widget,context:e});t.content.dispose();return t}})(de||(de={}));var ce=n(76326);const he="jp-ContextualShortcut-TableRow";const ue="jp-ContextualShortcut-TableLastRow";const pe="jp-ContextualShortcut-TableItem";const me="jp-ContextualShortcut-Key";function ge(e){const{commands:t,trans:n,activeElement:i}=e;const o=i!==null&&i!==void 0?i:document.activeElement;function r(e){const t=[];e.forEach(((e,n)=>{const i=[];e.split(" ").forEach(((e,t)=>{i.push(j.createElement("span",{className:me,key:`ch-${t}`},j.createElement("kbd",null,e)),j.createElement(j.Fragment,{key:`fragment-${t}`}," + "))}));t.push(j.createElement("span",{key:`key-${n}`},i.slice(0,-1)),j.createElement(j.Fragment,{key:`fragment-${n}`}," + "))}));return j.createElement("span",null,t.slice(0,-1))}function a(e){const t=e.charAt(0).toUpperCase()+e.slice(1);return t}function l(e){const n=t.label(e.command);const i=e.command.split(":")[1];const s=i.split("-");let o="";for(let t=0;t0){return n}else{return o}}function d(e,t){let n=t;for(let i=0;n!==null&&n!==n.parentElement;n=n.parentElement,++i){if(n.hasAttribute("data-lm-suppress-shortcuts")){return-1}if(n.matches(e)){return i}}return-1}const c=new Map;for(let s=0;sce.Selector.calculateSpecificity(e.selector)){continue}}c.set(i,[n,e])}let h=-1;const u=new Map;for(let[s,g]of c.values()){h=Math.max(s,h);if(!u.has(s)){u.set(s,[])}u.get(s).push(g)}const p=[];for(let s=0;s<=h;s++){if(u.has(s)){p.push(u.get(s).map((e=>j.createElement("tr",{className:he,key:`${e.command}-${e.keys.join("-").replace(" ","_")}`},j.createElement("td",{className:pe},l(e)),j.createElement("td",{className:pe},r([...e.keys]))))));p.push(j.createElement("tr",{className:ue,key:`group-${s}-last`}))}}const m=j.createElement("table",null,j.createElement("tbody",null,p));return(0,s.showDialog)({title:n.__("Keyboard Shortcuts"),body:m,buttons:[s.Dialog.cancelButton({label:n.__("Close")})]})}const fe=12e3;var ve;(function(e){e.loadState="apputils:load-statedb";e.print="apputils:print";e.reset="apputils:reset";e.resetOnLoad="apputils:reset-on-load";e.runFirstEnabled="apputils:run-first-enabled";e.runAllEnabled="apputils:run-all-enabled";e.toggleHeader="apputils:toggle-header";e.displayShortcuts="apputils:display-shortcuts"})(ve||(ve={}));const _e={id:"@jupyterlab/apputils-extension:palette",description:"Provides the command palette.",autoStart:true,requires:[l.ITranslator],provides:s.ICommandPalette,optional:[r.ISettingRegistry],activate:(e,t,n)=>W.activate(e,t,n)};const be={id:"@jupyterlab/apputils-extension:palette-restorer",description:"Restores the command palette.",autoStart:true,requires:[i.ILayoutRestorer,l.ITranslator],activate:(e,t,n)=>{W.restore(e,t,n)}};const ye={id:"@jupyterlab/apputils-extension:resolver",description:"Provides the window name resolver.",autoStart:true,provides:s.IWindowResolver,requires:[i.JupyterFrontEnd.IPaths,i.IRouter],activate:async(e,t,n)=>{const{hash:i,search:r}=n.current;const a=o.URLExt.queryStringToObject(r||"");const l=new s.WindowResolver;const d=o.PageConfig.getOption("workspace");const c=o.PageConfig.getOption("treePath");const h=o.PageConfig.getOption("mode")==="multiple-document"?"lab":"doc";const u=d?d:o.PageConfig.defaultWorkspace;const p=c?o.URLExt.join("tree",c):"";try{await l.resolve(u);return l}catch(m){return new Promise((()=>{const{base:e}=t.urls;const s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";const r=s[Math.floor(Math.random()*s.length)];let l=o.URLExt.join(e,h,"workspaces",`auto-${r}`);l=p?o.URLExt.join(l,o.URLExt.encodeParts(p)):l;a["reset"]="";const d=l+o.URLExt.objectToQueryString(a)+(i||"");n.navigate(d,{hard:true})}))}}};const we={id:"@jupyterlab/apputils-extension:splash",description:"Provides the splash screen.",autoStart:true,requires:[l.ITranslator],provides:s.ISplashScreen,activate:(e,t)=>{const n=t.load("jupyterlab");const{commands:i,restored:o}=e;const r=document.createElement("div");const a=document.createElement("div");const l=document.createElement("div");r.id="jupyterlab-splash";a.id="galaxy";l.id="main-logo";d.jupyterFaviconIcon.element({container:l,stylesheet:"splash"});a.appendChild(l);["1","2","3"].forEach((e=>{const t=document.createElement("div");const n=document.createElement("div");t.id=`moon${e}`;t.className="moon orbit";n.id=`planet${e}`;n.className="planet";t.appendChild(n);a.appendChild(t)}));r.appendChild(a);let c;const p=new u.Throttler((async()=>{if(c){return}c=new s.Dialog({title:n.__("Loading…"),body:n.__(`The loading screen is taking a long time.\nWould you like to clear the workspace or keep waiting?`),buttons:[s.Dialog.cancelButton({label:n.__("Keep Waiting")}),s.Dialog.warnButton({label:n.__("Clear Workspace")})]});try{const e=await c.launch();c.dispose();c=null;if(e.button.accept&&i.hasCommand(ve.reset)){return i.execute(ve.reset)}requestAnimationFrame((()=>{void p.invoke().catch((e=>undefined))}))}catch(e){}}),{limit:fe,edge:"trailing"});let m=0;return{show:(e=true)=>{r.classList.remove("splash-fade");r.classList.toggle("light",e);r.classList.toggle("dark",!e);m++;document.body.appendChild(r);void p.invoke().catch((e=>undefined));return new h.DisposableDelegate((async()=>{await o;if(--m===0){void p.stop();if(c){c.dispose();c=null}r.classList.add("splash-fade");window.setTimeout((()=>{document.body.removeChild(r)}),200)}}))}}}};const Ce={id:"@jupyterlab/apputils-extension:print",description:"Add the print capability",autoStart:true,requires:[l.ITranslator],activate:(e,t)=>{var n;const i=t.load("jupyterlab");e.commands.addCommand(ve.print,{label:i.__("Print…"),isEnabled:()=>{const t=e.shell.currentWidget;return s.Printing.getPrintFunction(t)!==null},execute:async()=>{const t=e.shell.currentWidget;const n=s.Printing.getPrintFunction(t);if(n){await n()}}});(n=e.shell.currentChanged)===null||n===void 0?void 0:n.connect((()=>{e.commands.notifyCommandChanged(ve.print)}))}};const xe={id:"@jupyterlab/apputils-extension:toggle-header",description:"Adds a command to display the main area widget content header.",autoStart:true,requires:[l.ITranslator],optional:[s.ICommandPalette],activate:(e,t,n)=>{var i;const o=t.load("jupyterlab");const r=o.__("Main Area");e.commands.addCommand(ve.toggleHeader,{label:o.__("Show Header Above Content"),isEnabled:()=>e.shell.currentWidget instanceof s.MainAreaWidget&&!e.shell.currentWidget.contentHeader.isDisposed&&e.shell.currentWidget.contentHeader.widgets.length>0,isToggled:()=>{const t=e.shell.currentWidget;return t instanceof s.MainAreaWidget?!t.contentHeader.isHidden:false},execute:async()=>{const t=e.shell.currentWidget;if(t instanceof s.MainAreaWidget){t.contentHeader.setHidden(!t.contentHeader.isHidden)}}});(i=e.shell.currentChanged)===null||i===void 0?void 0:i.connect((()=>{e.commands.notifyCommandChanged(ve.toggleHeader)}));if(n){n.addItem({command:ve.toggleHeader,category:r})}}};async function Se(e,t,n){var i,s;const r=await t.toJSON();let a=(s=(i=r["layout-restorer:data"])===null||i===void 0?void 0:i.main)===null||s===void 0?void 0:s.current;if(a===undefined||!(a.startsWith("notebook")||a.startsWith("editor"))){document.title=`${o.PageConfig.getOption("appName")||"JupyterLab"}${e==="default"?"":` (${e})`}`}else{let t=o.PathExt.basename(decodeURIComponent(window.location.href));t=t.length>15?t.slice(0,12).concat(`…`):t;e=e.length>15?e.slice(0,12).concat(`…`):e;const i=Object.keys(r).filter((e=>e.startsWith("notebook")||e.startsWith("editor"))).length;document.title=`${t}${i>1?` (${i})`:``} - ${e==="default"?n:e}`}}const ke={id:"@jupyterlab/apputils-extension:state",description:"Provides the application state. It is stored per workspaces.",autoStart:true,provides:a.IStateDB,requires:[i.JupyterFrontEnd.IPaths,i.IRouter,l.ITranslator],optional:[s.IWindowResolver],activate:(e,t,n,i,s)=>{const r=i.load("jupyterlab");if(s===null){return new a.StateDB}let l=false;const{commands:d,name:h,serviceManager:p}=e;const{workspaces:m}=p;const g=s.name;const f=new c.PromiseDelegate;const v=new a.StateDB({transform:f.promise});const _=new u.Debouncer((async()=>{const e=g;const t={id:e};const n=await v.toJSON();await m.save(e,{data:n,metadata:t})}));v.changed.connect((()=>void _.invoke()),v);v.changed.connect((()=>Se(g,v,h)));d.addCommand(ve.loadState,{label:r.__("Load state for the current workspace."),execute:async e=>{if(l){return}const{hash:t,path:i,search:s}=e;const r=o.URLExt.queryStringToObject(s||"");const a=typeof r["clone"]==="string"?r["clone"]===""?o.PageConfig.defaultWorkspace:r["clone"]:null;const d=a||g||null;if(d===null){console.error(`${ve.loadState} cannot load null workspace.`);return}try{const e=await m.fetch(d);if(!l){l=true;f.resolve({type:"overwrite",contents:e.data})}}catch({message:c}){console.warn(`Fetching workspace "${g}" failed.`,c);if(!l){l=true;f.resolve({type:"cancel",contents:null})}}if(d===a){delete r["clone"];const e=i+o.URLExt.objectToQueryString(r)+t;const s=_.invoke().then((()=>n.stop));void s.then((()=>{n.navigate(e)}));return s}await _.invoke()}});d.addCommand(ve.reset,{label:r.__("Reset Application State"),execute:async({reload:e})=>{await v.clear();await _.invoke();if(e){n.reload()}}});d.addCommand(ve.resetOnLoad,{label:r.__("Reset state when loading for the workspace."),execute:e=>{const{hash:t,path:i,search:s}=e;const r=o.URLExt.queryStringToObject(s||"");const a="reset"in r;const d="clone"in r;if(!a){return}if(l){return n.reload()}l=true;f.resolve({type:"clear",contents:null});delete r["reset"];const c=i+o.URLExt.objectToQueryString(r)+t;const h=v.clear().then((()=>_.invoke()));if(d){void h.then((()=>{n.navigate(c,{hard:true})}))}else{void h.then((()=>{n.navigate(c)}))}return h}});n.register({command:ve.loadState,pattern:/.?/,rank:30});n.register({command:ve.resetOnLoad,pattern:/(\?reset|\&reset)($|&)/,rank:20});return v}};const je={id:"@jupyterlab/apputils-extension:sessionDialogs",description:"Provides the session context dialogs.",provides:s.ISessionContextDialogs,optional:[l.ITranslator,r.ISettingRegistry],autoStart:true,activate:async(e,t,n)=>new s.SessionContextDialogs({translator:t!==null&&t!==void 0?t:l.nullTranslator,settingRegistry:n!==null&&n!==void 0?n:null})};const Ie={id:"@jupyterlab/apputils-extension:utilityCommands",description:"Adds meta commands to run set of other commands.",requires:[l.ITranslator],optional:[s.ICommandPalette],autoStart:true,activate:(e,t,n)=>{const i=t.load("jupyterlab");const{commands:o}=e;o.addCommand(ve.runFirstEnabled,{label:i.__("Run First Enabled Command"),execute:t=>{const n=t.commands;const i=t.args;const s=Array.isArray(t);for(let o=0;o{var n,i;const s=(n=t.commands)!==null&&n!==void 0?n:[];const o=t.args;const r=Array.isArray(t);const a=(i=t.errorIfNotEnabled)!==null&&i!==void 0?i:false;for(let l=0;l{var n;const i=(n=t.commands)!==null&&n!==void 0?n:[];const s=t.args;const o=Array.isArray(t);return i.some(((t,n)=>e.commands.isEnabled(t,o?s[n]:s)))}});o.addCommand(ve.displayShortcuts,{label:i.__("Show Keyboard Shortcuts…"),caption:i.__("Show relevant keyboard shortcuts for the current active widget"),execute:t=>{var n;const r=e.shell.currentWidget;const a=r===null||r===void 0?void 0:r.node.contains(document.activeElement);if(!a&&r instanceof s.MainAreaWidget){const e=(n=r.content.node)!==null&&n!==void 0?n:r===null||r===void 0?void 0:r.node;e===null||e===void 0?void 0:e.focus()}const l={commands:o,trans:i};return ge(l)}});if(n){const e=i.__("Help");n.addItem({command:ve.displayShortcuts,category:e})}}};const Ee={id:"@jupyterlab/apputils-extension:sanitizer",description:"Provides the HTML sanitizer.",autoStart:true,provides:s.ISanitizer,requires:[r.ISettingRegistry],activate:(e,t)=>{const n=new s.Sanitizer;const i=e=>{const t=e.get("allowedSchemes").composite;const i=e.get("autolink").composite;const s=e.get("allowNamedProperties").composite;if(t){n.setAllowedSchemes(t)}n.setAutolink(i);n.setAllowNamedProperties(s)};t.load("@jupyterlab/apputils-extension:sanitizer").then((e=>{i(e);e.changed.connect(i)})).catch((e=>{console.error(`Failed to load sanitizer settings:`,e)}));return n}};const Te={id:"@jupyterlab/apputils-extension:kernels-settings",description:"Reserves the name for kernel settings.",autoStart:true,requires:[r.ISettingRegistry],activate:(e,t)=>{void t.load(Te.id)}};const Me=[Te,b,K,C,x,N,_e,be,Ce,ye,J,G,Ee,q,$,ke,we,je,Z,ee,xe,te,Ie,le];const De=Me},25313:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(97913);var a=n(79010);var l=n(3579);var d=n(67996);var c=n(85072);var h=n.n(c);var u=n(97825);var p=n.n(u);var m=n(77659);var g=n.n(m);var f=n(55056);var v=n.n(f);var _=n(10540);var b=n.n(_);var y=n(41113);var w=n.n(y);var C=n(61510);var x={};x.styleTagTransform=w();x.setAttributes=v();x.insert=g().bind(null,"head");x.domAPI=p();x.insertStyleElement=b();var S=h()(C.A,x);const k=C.A&&C.A.locals?C.A.locals:undefined},12253:(e,t,n)=>{"use strict";n.r(t);n.d(t,{Clipboard:()=>M,Collapse:()=>i.Collapser,CommandLinker:()=>L,CommandToolbarButton:()=>i.CommandToolbarButton,CommandToolbarButtonComponent:()=>i.CommandToolbarButtonComponent,DOMUtils:()=>B,Dialog:()=>v,HoverBox:()=>i.HoverBox,ICommandPalette:()=>be,IFrame:()=>i.IFrame,IKernelStatusModel:()=>ye,ILicensesClient:()=>we,ISanitizer:()=>Se,ISessionContextDialogs:()=>Ce,ISplashScreen:()=>ke,IThemeManager:()=>xe,IToolbarWidgetRegistry:()=>Ie,IWindowResolver:()=>je,InputDialog:()=>H,KernelStatus:()=>k,Licenses:()=>Z,MainAreaWidget:()=>ne,MenuFactory:()=>ie,ModalCommandPalette:()=>N,Notification:()=>oe,NotificationManager:()=>se,Printing:()=>ee,ReactWidget:()=>i.ReactWidget,RunningSessions:()=>le,Sanitizer:()=>ue,SemanticCommand:()=>pe,SessionContext:()=>b,SessionContextDialogs:()=>y,Spinner:()=>i.Spinner,Styling:()=>i.Styling,ThemeManager:()=>ve,Toolbar:()=>ze,ToolbarButton:()=>i.ToolbarButton,ToolbarButtonComponent:()=>i.ToolbarButtonComponent,ToolbarWidgetRegistry:()=>Ee,UseSignal:()=>i.UseSignal,VDomModel:()=>i.VDomModel,VDomRenderer:()=>i.VDomRenderer,WidgetTracker:()=>m,WindowResolver:()=>Be,addCommandToolbarButtonClass:()=>i.addCommandToolbarButtonClass,addToolbarButtonClass:()=>i.addToolbarButtonClass,createDefaultFactory:()=>Te,createToolbarFactory:()=>Ne,setToolbar:()=>Oe,showDialog:()=>g,showErrorMessage:()=>f,translateKernelStatuses:()=>x});var i=n(26331);var s=n(30619);var o=n(1143);var r=n(44914);var a=n.n(r);var l=n(30397);var d=n(34236);var c=n(5592);var h=n(2336);var u=n(42856);var p=n(94931);class m{constructor(e){this._currentChanged=new h.Signal(this);this._deferred=null;this._isDisposed=false;this._widgetAdded=new h.Signal(this);this._widgetUpdated=new h.Signal(this);const t=this._focusTracker=new o.FocusTracker;const n=this._pool=new p.RestorablePool(e);this.namespace=e.namespace;t.currentChanged.connect(((e,t)=>{if(t.newValue!==this.currentWidget){n.current=t.newValue}}),this);n.added.connect(((e,t)=>{this._widgetAdded.emit(t)}),this);n.currentChanged.connect(((e,i)=>{if(i===null&&t.currentWidget){n.current=t.currentWidget;return}this.onCurrentChanged(i);this._currentChanged.emit(i)}),this);n.updated.connect(((e,t)=>{this._widgetUpdated.emit(t)}),this)}get currentChanged(){return this._currentChanged}get currentWidget(){return this._pool.current||null}get restored(){if(this._deferred){return Promise.resolve()}else{return this._pool.restored}}get size(){return this._pool.size}get widgetAdded(){return this._widgetAdded}get widgetUpdated(){return this._widgetUpdated}async add(e){this._focusTracker.add(e);await this._pool.add(e);if(!this._focusTracker.activeWidget){this._pool.current=e}}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;this._pool.dispose();this._focusTracker.dispose();h.Signal.clearData(this)}find(e){return this._pool.find(e)}forEach(e){return this._pool.forEach(e)}filter(e){return this._pool.filter(e)}inject(e){return this._pool.inject(e)}has(e){return this._pool.has(e)}async restore(e){const t=this._deferred;if(t){this._deferred=null;return this._pool.restore(t)}if(e){return this._pool.restore(e)}console.warn("No options provided to restore the tracker.")}defer(e){this._deferred=e}async save(e){return this._pool.save(e)}onCurrentChanged(e){}}function g(e={}){const t=new v(e);return t.launch()}function f(e,t,n){const i=v.translator.load("jupyterlab");n=n!==null&&n!==void 0?n:[v.cancelButton({label:i.__("Close")})];console.warn("Showing error:",t);const s=typeof t==="string"?t:t.message;const o=e+"----"+s;const r=_.errorMessagePromiseCache.get(o);if(r){return r}else{const t=g({title:e,body:s,buttons:n}).then((()=>{_.errorMessagePromiseCache.delete(o)}),(e=>{_.errorMessagePromiseCache.delete(o);throw e}));_.errorMessagePromiseCache.set(o,t);return t}}class v extends o.Widget{constructor(e={}){const t=document.createElement("dialog");t.ariaModal="true";super({node:t});this._hasValidationErrors=false;this._ready=new c.PromiseDelegate;this._focusNodeSelector="";this.addClass("jp-Dialog");this.addClass("jp-ThemedContainer");const n=_.handleOptions(e);const i=n.renderer;this._host=n.host;this._defaultButton=n.defaultButton;this._buttons=n.buttons;this._hasClose=n.hasClose;this._buttonNodes=this._buttons.map((e=>i.createButtonNode(e)));this._checkboxNode=null;this._lastMouseDownInDialog=false;if(n.checkbox){const{label:e="",caption:t="",checked:s=false,className:o=""}=n.checkbox;this._checkboxNode=i.createCheckboxNode({label:e,caption:t!==null&&t!==void 0?t:e,checked:s,className:o})}const s=this.layout=new o.PanelLayout;const r=new o.Panel;r.addClass("jp-Dialog-content");if(typeof e.body==="string"){r.addClass("jp-Dialog-content-small");t.ariaLabel=[n.title,e.body].join(" ")}s.addWidget(r);this._body=n.body;const a=i.createHeader(n.title,(()=>this.reject()),e);const l=i.createBody(n.body);const d=i.createFooter(this._buttonNodes,this._checkboxNode);r.addWidget(a);r.addWidget(l);r.addWidget(d);this._bodyWidget=l;this._primary=this._buttonNodes[this._defaultButton];this._focusNodeSelector=e.focusNodeSelector;void v.tracker.add(this)}get ready(){return this._ready.promise}dispose(){const e=this._promise;if(e){this._promise=null;e.reject(void 0);d.ArrayExt.removeFirstOf(_.launchQueue,e.promise)}super.dispose()}launch(){if(this._promise){return this._promise.promise}const e=this._promise=new c.PromiseDelegate;const t=Promise.all(_.launchQueue);_.launchQueue.push(this._promise.promise);return t.then((()=>{if(!this._promise){return Promise.resolve({button:v.cancelButton(),isChecked:null,value:null})}o.Widget.attach(this,this._host);return e.promise}))}resolve(e){if(!this._promise){return}if(e===undefined){e=this._defaultButton}this._resolve(this._buttons[e])}reject(){if(!this._promise){return}this._resolve(v.cancelButton())}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"mousedown":this._evtMouseDown(e);break;case"click":this._evtClick(e);break;case"input":this._evtInput(e);break;case"focus":this._evtFocus(e);break;case"contextmenu":e.preventDefault();e.stopPropagation();break;default:break}}onAfterAttach(e){const t=this.node;t.addEventListener("keydown",this,true);t.addEventListener("contextmenu",this,true);t.addEventListener("click",this,true);document.addEventListener("mousedown",this,true);document.addEventListener("focus",this,true);document.addEventListener("input",this,true);this._first=_.findFirstFocusable(this.node);this._original=document.activeElement;const n=()=>{var e;if(this._focusNodeSelector){const e=this.node.querySelector(".jp-Dialog-body");const t=e===null||e===void 0?void 0:e.querySelector(this._focusNodeSelector);if(t){this._primary=t}}(e=this._primary)===null||e===void 0?void 0:e.focus();this._ready.resolve()};if(this._bodyWidget instanceof i.ReactWidget&&this._bodyWidget.renderPromise!==undefined){this._bodyWidget.renderPromise.then((()=>{n()})).catch((()=>{console.error("Error while loading Dialog's body")}))}else{n()}}onAfterDetach(e){const t=this.node;t.removeEventListener("keydown",this,true);t.removeEventListener("contextmenu",this,true);t.removeEventListener("click",this,true);document.removeEventListener("focus",this,true);document.removeEventListener("mousedown",this,true);document.removeEventListener("input",this,true);this._original.focus()}onCloseRequest(e){if(this._promise){this.reject()}super.onCloseRequest(e)}_evtInput(e){this._hasValidationErrors=!!this.node.querySelector(":invalid");for(let t=0;t{e.dispose()}))}e.flush=d;class c{createHeader(t,n=()=>{},s={}){let o;const a=e=>{if(e.button===0){e.preventDefault();n()}};const l=e=>{const{key:t}=e;if(t==="Enter"||t===" "){n()}};if(typeof t==="string"){const n=e.translator.load("jupyterlab");o=i.ReactWidget.create(r.createElement(r.Fragment,null,t,s.hasClose&&r.createElement(i.Button,{className:"jp-Dialog-close-button",onMouseDown:a,onKeyDown:l,title:n.__("Cancel"),minimal:true},r.createElement(i.LabIcon.resolveReact,{icon:i.closeIcon,tag:"span"}))))}else{o=i.ReactWidget.create(t)}o.addClass("jp-Dialog-header");i.Styling.styleNode(o.node);return o}createBody(e){const t=e=>{if(e.renderPromise!==undefined){e.renderPromise.then((()=>{i.Styling.styleNode(e.node)})).catch((()=>{console.error("Error while loading Dialog's body")}))}else{i.Styling.styleNode(e.node)}};let n;if(typeof e==="string"){n=new o.Widget({node:document.createElement("span")});n.node.textContent=e}else if(e instanceof o.Widget){n=e;if(n instanceof i.ReactWidget){t(n)}else{i.Styling.styleNode(n.node)}}else{n=i.ReactWidget.create(e);u.MessageLoop.sendMessage(n,o.Widget.Msg.UpdateRequest);t(n)}n.addClass("jp-Dialog-body");return n}createFooter(e,t){const n=new o.Widget;n.addClass("jp-Dialog-footer");if(t){n.node.appendChild(t);n.node.insertAdjacentHTML("beforeend",'')}const s=document.createElement("div");for(const i of e){s.appendChild(i)}n.node.appendChild(s);i.Styling.styleNode(n.node);return n}createButtonNode(e){const t=document.createElement("button");t.className=this.createItemClass(e);t.appendChild(this.renderIcon(e));t.appendChild(this.renderLabel(e));return t}createCheckboxNode(e){const t=document.createElement("label");t.className="jp-Dialog-checkbox";if(e.className){t.classList.add(e.className)}t.title=e.caption;t.textContent=e.label;const n=document.createElement("input");n.type="checkbox";n.checked=!!e.checked;t.insertAdjacentElement("afterbegin",n);return t}createItemClass(e){let t="jp-Dialog-button";if(e.accept){t+=" jp-mod-accept"}else{t+=" jp-mod-reject"}if(e.displayType==="warn"){t+=" jp-mod-warn"}const n=e.className;if(n){t+=` ${n}`}return t}renderIcon(e){const t=document.createElement("div");t.className=this.createIconClass(e);t.appendChild(document.createTextNode(e.iconLabel));return t}createIconClass(e){const t="jp-Dialog-buttonIcon";const n=e.iconClass;return n?`${t} ${n}`:t}renderLabel(e){const t=document.createElement("div");t.className="jp-Dialog-buttonLabel";t.title=e.caption;t.ariaLabel=e.ariaLabel;t.appendChild(document.createTextNode(e.label));return t}}e.Renderer=c;e.defaultRenderer=new c;e.tracker=new m({namespace:"@jupyterlab/apputils:Dialog"})})(v||(v={}));var _;(function(e){e.launchQueue=[];e.errorMessagePromiseCache=new Map;function t(e={}){var t,n,i,s,o,r,a,l,d;const c=(t=e.buttons)!==null&&t!==void 0?t:[v.cancelButton(),v.okButton()];return{title:(n=e.title)!==null&&n!==void 0?n:"",body:(i=e.body)!==null&&i!==void 0?i:"",host:(s=e.host)!==null&&s!==void 0?s:document.body,checkbox:(o=e.checkbox)!==null&&o!==void 0?o:null,buttons:c,defaultButton:(r=e.defaultButton)!==null&&r!==void 0?r:c.length-1,renderer:(a=e.renderer)!==null&&a!==void 0?a:v.defaultRenderer,focusNodeSelector:(l=e.focusNodeSelector)!==null&&l!==void 0?l:"",hasClose:(d=e.hasClose)!==null&&d!==void 0?d:true}}e.handleOptions=t;function n(e){const t=["input","select","a[href]","textarea","button","[tabindex]"].join(",");return e.querySelectorAll(t)[0]}e.findFirstFocusable=n})(_||(_={}));class b{constructor(e){var t,n,i,o;this._path="";this._name="";this._type="";this._prevKernelName="";this._isDisposed=false;this._disposed=new h.Signal(this);this._session=null;this._ready=new c.PromiseDelegate;this._initializing=false;this._initStarted=new c.PromiseDelegate;this._initPromise=new c.PromiseDelegate;this._isReady=false;this._isTerminating=false;this._isRestarting=false;this._kernelChanged=new h.Signal(this);this._preferenceChanged=new h.Signal(this);this._sessionChanged=new h.Signal(this);this._statusChanged=new h.Signal(this);this._connectionStatusChanged=new h.Signal(this);this._pendingInput=false;this._iopubMessage=new h.Signal(this);this._unhandledMessage=new h.Signal(this);this._propertyChanged=new h.Signal(this);this._dialog=null;this._busyDisposable=null;this._pendingKernelName="";this._pendingSessionRequest="";this.kernelManager=e.kernelManager;this.sessionManager=e.sessionManager;this.specsManager=e.specsManager;this.translator=e.translator||s.nullTranslator;this._trans=this.translator.load("jupyterlab");this._path=(t=e.path)!==null&&t!==void 0?t:c.UUID.uuid4();this._type=(n=e.type)!==null&&n!==void 0?n:"";this._name=(i=e.name)!==null&&i!==void 0?i:"";this._setBusy=e.setBusy;this._kernelPreference=(o=e.kernelPreference)!==null&&o!==void 0?o:{}}get session(){var e;return(e=this._session)!==null&&e!==void 0?e:null}get path(){return this._path}get type(){return this._type}get name(){return this._name}get kernelChanged(){return this._kernelChanged}get sessionChanged(){return this._sessionChanged}get statusChanged(){return this._statusChanged}get pendingInput(){return this._pendingInput}get connectionStatusChanged(){return this._connectionStatusChanged}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get propertyChanged(){return this._propertyChanged}get kernelPreference(){return this._kernelPreference}set kernelPreference(e){if(!c.JSONExt.deepEqual(e,this._kernelPreference)){const t=this._kernelPreference;this._kernelPreference=e;this._preferenceChanged.emit({name:"kernelPreference",oldValue:t,newValue:c.JSONExt.deepCopy(e)})}}get kernelPreferenceChanged(){return this._preferenceChanged}get isReady(){return this._isReady}get ready(){return this._ready.promise}get isTerminating(){return this._isTerminating}get isRestarting(){return this._isRestarting}get hasNoKernel(){return this.kernelDisplayName===this.noKernelName}get kernelDisplayName(){var e,t,n,i,s,o,r;const a=(e=this.session)===null||e===void 0?void 0:e.kernel;if(this._pendingKernelName===this.noKernelName){return this.noKernelName}if(this._pendingKernelName){return(i=(n=(t=this.specsManager.specs)===null||t===void 0?void 0:t.kernelspecs[this._pendingKernelName])===null||n===void 0?void 0:n.display_name)!==null&&i!==void 0?i:this._pendingKernelName}if(!a){return this.noKernelName}return(r=(o=(s=this.specsManager.specs)===null||s===void 0?void 0:s.kernelspecs[a.name])===null||o===void 0?void 0:o.display_name)!==null&&r!==void 0?r:a.name}get kernelDisplayStatus(){var e,t;const n=(e=this.session)===null||e===void 0?void 0:e.kernel;if(this._isTerminating){return"terminating"}if(this._isRestarting){return"restarting"}if(this._pendingKernelName===this.noKernelName){return"unknown"}if(!n&&this._pendingKernelName){return"initializing"}if(!n&&!this.isReady&&this.kernelPreference.canStart!==false&&this.kernelPreference.shouldStart!==false){return"initializing"}return(t=(n===null||n===void 0?void 0:n.connectionStatus)==="connected"?n===null||n===void 0?void 0:n.status:n===null||n===void 0?void 0:n.connectionStatus)!==null&&t!==void 0?t:"unknown"}get prevKernelName(){return this._prevKernelName}get isDisposed(){return this._isDisposed}get disposed(){return this._disposed}get noKernelName(){return this._trans.__("No Kernel")}dispose(){if(this._isDisposed){return}this._isDisposed=true;this._disposed.emit();if(this._session){if(this.kernelPreference.shutdownOnDispose){this.sessionManager.shutdown(this._session.id).catch((e=>{console.error(`Kernel not shut down ${e}`)}))}this._session.dispose();this._session=null}if(this._dialog){this._dialog.dispose()}if(this._busyDisposable){this._busyDisposable.dispose();this._busyDisposable=null}h.Signal.clearData(this)}async startKernel(){const e=this.kernelPreference;if(!e.autoStartDefault&&e.shouldStart===false){return true}let t;if(e.id){t={id:e.id}}else{const n=w.getDefaultKernel({specs:this.specsManager.specs,sessions:this.sessionManager.running(),preference:e});if(n){t={name:n}}}if(t){try{await this._changeKernel(t);return false}catch(n){}}return true}async restartKernel(){var e,t,n,i,s,o;const r=((e=this.session)===null||e===void 0?void 0:e.kernel)||null;if(this._isRestarting){return}this._isRestarting=true;this._isReady=false;this._statusChanged.emit("restarting");try{await((n=(t=this.session)===null||t===void 0?void 0:t.kernel)===null||n===void 0?void 0:n.restart());this._isReady=true}catch(a){console.error(a)}this._isRestarting=false;this._statusChanged.emit(((s=(i=this.session)===null||i===void 0?void 0:i.kernel)===null||s===void 0?void 0:s.status)||"unknown");this._kernelChanged.emit({name:"kernel",oldValue:r,newValue:((o=this.session)===null||o===void 0?void 0:o.kernel)||null})}async changeKernel(e={}){if(this.isDisposed){throw new Error("Disposed")}await this._initStarted.promise;return this._changeKernel(e)}async shutdown(){if(this.isDisposed||!this._initializing){return}await this._initStarted.promise;this._pendingSessionRequest="";this._pendingKernelName=this.noKernelName;return this._shutdownSession()}async initialize(){if(this._initializing){return this._initPromise.promise}this._initializing=true;const e=await this._initialize();if(!e){this._isReady=true;this._ready.resolve(undefined)}if(!this._pendingSessionRequest){this._initStarted.resolve(void 0)}this._initPromise.resolve(e);return e}async _initialize(){const e=this.sessionManager;await e.ready;await e.refreshRunning();const t=(0,d.find)(e.running(),(e=>e.path===this._path));if(t){try{const n=e.connectTo({model:t});this._handleNewSession(n)}catch(n){void this._handleSessionError(n);return Promise.reject(n)}}return await this._startIfNecessary()}async _shutdownSession(){var e;const t=this._session;const n=this._isTerminating;const i=this._isReady;this._isTerminating=true;this._isReady=false;this._statusChanged.emit("terminating");try{await(t===null||t===void 0?void 0:t.shutdown());this._isTerminating=false;t===null||t===void 0?void 0:t.dispose();this._session=null;const e=(t===null||t===void 0?void 0:t.kernel)||null;this._statusChanged.emit("unknown");this._kernelChanged.emit({name:"kernel",oldValue:e,newValue:null});this._sessionChanged.emit({name:"session",oldValue:t,newValue:null})}catch(s){this._isTerminating=n;this._isReady=i;const o=(e=t===null||t===void 0?void 0:t.kernel)===null||e===void 0?void 0:e.status;if(o===undefined){this._statusChanged.emit("unknown")}else{this._statusChanged.emit(o)}throw s}return}async _startIfNecessary(){var e;const t=this.kernelPreference;if(this.isDisposed||((e=this.session)===null||e===void 0?void 0:e.kernel)||t.shouldStart===false||t.canStart===false){return false}return this.startKernel()}async _changeKernel(e={}){if(e.name){this._pendingKernelName=e.name}if(!this._session){this._kernelChanged.emit({name:"kernel",oldValue:null,newValue:null})}if(!this._pendingSessionRequest){this._initStarted.resolve(void 0)}if(this._session&&!this._isTerminating){try{await this._session.changeKernel(e);return this._session.kernel}catch(i){void this._handleSessionError(i);throw i}}const t=l.PathExt.dirname(this._path);const n=this._pendingSessionRequest=l.PathExt.join(t,c.UUID.uuid4());try{this._statusChanged.emit("starting");const t=await this.sessionManager.startNew({path:n,type:this._type,name:this._name,kernel:e});if(this._pendingSessionRequest!==t.path){await t.shutdown();t.dispose();return null}await t.setPath(this._path);await t.setName(this._name);if(this._session&&!this._isTerminating){await this._shutdownSession()}return this._handleNewSession(t)}catch(i){void this._handleSessionError(i);throw i}}_handleNewSession(e){var t,n,i;if(this.isDisposed){throw Error("Disposed")}if(!this._isReady){this._isReady=true;this._ready.resolve(undefined)}if(this._session){this._session.dispose()}this._session=e;this._pendingKernelName="";if(e){this._prevKernelName=(n=(t=e.kernel)===null||t===void 0?void 0:t.name)!==null&&n!==void 0?n:"";e.disposed.connect(this._onSessionDisposed,this);e.propertyChanged.connect(this._onPropertyChanged,this);e.kernelChanged.connect(this._onKernelChanged,this);e.statusChanged.connect(this._onStatusChanged,this);e.connectionStatusChanged.connect(this._onConnectionStatusChanged,this);e.pendingInput.connect(this._onPendingInput,this);e.iopubMessage.connect(this._onIopubMessage,this);e.unhandledMessage.connect(this._onUnhandledMessage,this);if(e.path!==this._path){this._onPropertyChanged(e,"path")}if(e.name!==this._name){this._onPropertyChanged(e,"name")}if(e.type!==this._type){this._onPropertyChanged(e,"type")}}this._sessionChanged.emit({name:"session",oldValue:null,newValue:e});this._kernelChanged.emit({oldValue:null,newValue:(e===null||e===void 0?void 0:e.kernel)||null,name:"kernel"});this._statusChanged.emit(((i=e===null||e===void 0?void 0:e.kernel)===null||i===void 0?void 0:i.status)||"unknown");return(e===null||e===void 0?void 0:e.kernel)||null}async _handleSessionError(e){this._handleNewSession(null);let t="";let n="";try{t=e.traceback;n=e.message}catch(e){}await this._displayKernelError(n,t)}async _displayKernelError(e,t){const n=r.createElement("div",null,e&&r.createElement("pre",null,e),t&&r.createElement("details",{className:"jp-mod-wide"},r.createElement("pre",null,t)));const i=this._dialog=new v({title:this._trans.__("Error Starting Kernel"),body:n,buttons:[v.okButton()]});await i.launch();this._dialog=null}_onSessionDisposed(){if(this._session){const e=this._session;this._session=null;const t=this._session;this._sessionChanged.emit({name:"session",oldValue:e,newValue:t})}}_onPropertyChanged(e,t){switch(t){case"path":this._path=e.path;break;case"name":this._name=e.name;break;case"type":this._type=e.type;break;default:throw new Error(`unrecognized property ${t}`)}this._propertyChanged.emit(t)}_onKernelChanged(e,t){this._kernelChanged.emit(t)}_onStatusChanged(e,t){var n;if(t==="dead"){const t=(n=e.kernel)===null||n===void 0?void 0:n.model;if(t===null||t===void 0?void 0:t.reason){const e=t.traceback||"";void this._displayKernelError(t.reason,e)}}if(this._setBusy){if(t==="busy"){if(!this._busyDisposable){this._busyDisposable=this._setBusy()}}else{if(this._busyDisposable){this._busyDisposable.dispose();this._busyDisposable=null}}}this._statusChanged.emit(t)}_onConnectionStatusChanged(e,t){this._connectionStatusChanged.emit(t)}_onPendingInput(e,t){this._pendingInput=t}_onIopubMessage(e,t){if(t.header.msg_type==="shutdown_reply"){this.session.kernel.removeInputGuard()}this._iopubMessage.emit(t)}_onUnhandledMessage(e,t){this._unhandledMessage.emit(t)}}(function(e){function t(e){const{preference:t}=e;const{shouldStart:n}=t;if(n===false){return null}return w.getDefaultKernel(e)}e.getDefaultKernel=t})(b||(b={}));class y{constructor(e={}){var t;this._translator=(t=e.translator)!==null&&t!==void 0?t:s.nullTranslator;this._settingRegistry=e.settingRegistry||null}async selectKernel(e){if(e.isDisposed){return Promise.resolve()}const t=this._translator;const n=t.load("jupyterlab");let i=n.__("Cancel");if(e.hasNoKernel){i=e.kernelDisplayName}const s=[v.cancelButton({label:i}),v.okButton({label:n.__("Select"),ariaLabel:n.__("Select Kernel")})];const o=e.kernelPreference.autoStartDefault;const r=typeof o==="boolean";const a=new v({title:n.__("Select Kernel"),body:w.createKernelSelector(e,t),buttons:s,checkbox:r?{label:n.__("Always start the preferred kernel"),caption:n.__("Remember my choice and always start the preferred kernel"),checked:o}:null});const l=await a.launch();if(e.isDisposed||!l.button.accept){return}if(r&&l.isChecked!==null){e.kernelPreference={...e.kernelPreference,autoStartDefault:l.isChecked}}const d=l.value;if(d===null&&!e.hasNoKernel){return e.shutdown()}if(d){await e.changeKernel(d)}}async restart(e){var t,n,i,s,o;const r=this._translator.load("jupyterlab");await e.initialize();if(e.isDisposed){throw new Error("session already disposed")}const a=(t=e.session)===null||t===void 0?void 0:t.kernel;if(!a&&e.prevKernelName){await e.changeKernel({name:e.prevKernelName});return true}if(!a){throw new Error("No kernel to restart")}const l="@jupyterlab/apputils-extension:sessionDialogs";const d=(i=(n=e.kernelPreference)===null||n===void 0?void 0:n.skipKernelRestartDialog)!==null&&i!==void 0?i:false;const c=(o=await((s=this._settingRegistry)===null||s===void 0?void 0:s.get(l,"skipKernelRestartDialog")))===null||o===void 0?void 0:o.composite;if(c||d){await e.restartKernel();return true}const h=v.warnButton({label:r.__("Restart"),ariaLabel:r.__("Confirm Kernel Restart")});const u=await g({title:r.__("Restart Kernel?"),body:r.__("Do you want to restart the kernel of %1? All variables will be lost.",e.name),buttons:[v.cancelButton({ariaLabel:r.__("Cancel Kernel Restart")}),h],checkbox:{label:r.__("Do not ask me again."),caption:r.__("If checked, the kernel will restart without confirmation prompt in the future; you can change this back in the settings.")}});if(a.isDisposed){return false}if(u.button.accept){if(typeof u.isChecked==="boolean"&&u.isChecked==true){e.kernelPreference={...e.kernelPreference,skipKernelRestartDialog:true}}await e.restartKernel();return true}return false}}(function(e){function t(e,t=null){var n,i,o,r,a,d,c;const h={disabled:false,groups:[]};const u=Array.from((i=(n=e.kernelManager)===null||n===void 0?void 0:n.running())!==null&&i!==void 0?i:Array.from(e.sessionManager.running()).filter((e=>!!e.kernel)).map((e=>e.kernel)));const p=Array.from((o=e.sessionManager.running())!==null&&o!==void 0?o:[]).reduce(((e,t)=>{var n;if((n=t.kernel)===null||n===void 0?void 0:n.id)e[t.kernel.id]=t;return e}),{});const m={...e.kernelPreference,id:(a=(r=e.session)===null||r===void 0?void 0:r.kernel)===null||a===void 0?void 0:a.id};const g=!e.hasNoKernel?e.kernelDisplayName:null;const f={default:"",kernelspecs:Object.create(null),...e.specsManager.specs};const v=[];const _=Object.create(null);for(const s in f.kernelspecs){v.push(f.kernelspecs[s]);_[s]=f.kernelspecs[s].language}v.sort(((e,t)=>e.display_name.localeCompare(t.display_name)));t=t||s.nullTranslator;const b=t.load("jupyterlab");const y=m.language||_[m.name]||(m.id?_[(d=p[m.id])===null||d===void 0?void 0:d.name]:"");const w={connectKernel:b.__("Connect to Existing Kernel"),startPreferred:b.__("Start %1 Kernel",y),startOther:b.__("Start Kernel"),connectToPreferred:b.__("Connect to Existing %1 Kernel",y),connectToOther:b.__("Connect to Other Kernel"),noKernel:b.__("No Kernel"),startKernel:b.__("Start Kernel"),useNoKernel:b.__("Use No Kernel")};const C={label:w.useNoKernel,options:[{text:w.noKernel,title:w.noKernel,value:JSON.stringify(null)}]};const x=(e,t,n)=>{const i=n?n.name||l.PathExt.basename(n.path):e.name||b.__("Unknown Kernel");return{text:`${i} (${e.id.split("-")[0]})`,title:(n?`${b.__("Path: %1",n.path)}\n`:``)+`${b.__("Name: %1",i)}\n`+`${b.__("Kernel Name: %1",t!==null&&t!==void 0?t:e.name)}\n`+`${b.__("Kernel Id: %1",e.id)}`,value:JSON.stringify({id:e.id})}};const S=e=>({text:e.display_name,value:JSON.stringify({name:e.name})});if(m.canStart===false){h.disabled=true;h.groups.push(C);return h}if(y){const e={label:w.startPreferred,options:[]};const t={label:w.startOther,options:[]};const n={label:w.connectToPreferred,options:[]};const i={label:w.connectToOther,options:[]};for(const s of v){(s.language===y?e:t).options.push(S(s))}h.groups.push(e);h.groups.push(C);h.groups.push(t);u.map((e=>{var t,n;return{option:x(e,(n=(t=f.kernelspecs[e.name])===null||t===void 0?void 0:t.display_name)!==null&&n!==void 0?n:"",p[e.id]),language:_[e.name]}})).sort(((e,t)=>e.option.text.localeCompare(t.option.text))).forEach((e=>(y===e.language?n:i).options.push(e.option)));if(n.options.length)h.groups.push(n);if(i.options.length)h.groups.push(i)}else{h.groups.push({label:w.startKernel,options:v.map((e=>S(e)))});h.groups.push(C);h.groups.push({label:w.connectKernel,options:u.map((e=>{var t,n;return x(e,(n=(t=f.kernelspecs[e.name])===null||t===void 0?void 0:t.display_name)!==null&&n!==void 0?n:"",p[e.id])})).sort(((e,t)=>e.text.localeCompare(t.text)))})}if(m.id||g||m.name){for(const e of h.groups){for(const t of e.options){const e=JSON.parse(t.value);if(!e)continue;if(m.id){if(m.id===e.id){t.selected=true;return h}continue}if(g){if(g===((c=f.kernelspecs[e.name])===null||c===void 0?void 0:c.display_name)){t.selected=true;return h}continue}if(m.name){if(m.name===e.name){t.selected=true;return h}continue}}}}return h}e.kernelOptions=t})(y||(y={}));var w;(function(e){e.createKernelSelector=(e,i)=>new t({node:n(e,i)});class t extends o.Widget{getValue(){const e=this.node.querySelector("select");return JSON.parse(e.value)}}function n(e,t){t=t||s.nullTranslator;const n=t.load("jupyterlab");const i=document.createElement("div");const o=document.createElement("label");o.textContent=`${n.__("Select kernel for:")} "${e.name}"`;i.appendChild(o);const r=document.createElement("select");const a=y.kernelOptions(e,t);if(a.disabled)r.disabled=true;for(const s of a.groups){const{label:e,options:t}=s;const n=document.createElement("optgroup");n.label=e;for(const{selected:i,text:s,title:o,value:r}of t){const e=document.createElement("option");if(i)e.selected=true;if(o)e.title=o;e.text=s;e.value=r;n.appendChild(e)}r.appendChild(n)}i.appendChild(r);return i}function i(e){var t;const{specs:n,preference:i}=e;const{name:s,language:o,canStart:r,autoStartDefault:a}=i;if(!n||r===false){return null}const l=a?n.default:null;if(!s&&!o){return l}for(const c in n.kernelspecs){if(c===s){return s}}if(!o){return l}const d=[];for(const c in n.kernelspecs){const e=(t=n.kernelspecs[c])===null||t===void 0?void 0:t.language;if(o===e){d.push(c)}}if(d.length===1){const e=d[0];console.warn("No exact match found for "+e+", using kernel "+e+" that matches "+"language="+o);return e}return l}e.getDefaultKernel=i})(w||(w={}));var C=n(24735);function x(e){e=e||s.nullTranslator;const t=e.load("jupyterlab");const n={unknown:t.__("Unknown"),starting:t.__("Starting"),idle:t.__("Idle"),busy:t.__("Busy"),terminating:t.__("Terminating"),restarting:t.__("Restarting"),autorestarting:t.__("Autorestarting"),dead:t.__("Dead"),connected:t.__("Connected"),connecting:t.__("Connecting"),disconnected:t.__("Disconnected"),initializing:t.__("Initializing"),"":""};return n}function S(e){const t=e.translator||s.nullTranslator;const n=t.load("jupyterlab");let i="";if(e.status){i=` | ${e.status}`}return a().createElement(C.TextItem,{onClick:e.handleClick,onKeyDown:e.handleKeyDown,source:`${e.kernelName}${i}`,title:n.__("Change kernel for %1",e.activityName),tabIndex:0})}class k extends i.VDomRenderer{constructor(e,t){super(new k.Model(t));this.translator=t||s.nullTranslator;this._handleClick=e.onClick;this._handleKeyDown=e.onKeyDown;this.addClass("jp-mod-highlighted")}render(){if(this.model===null){return null}else{return a().createElement(S,{status:this.model.status,kernelName:this.model.kernelName,activityName:this.model.activityName,handleClick:this._handleClick,handleKeyDown:this._handleKeyDown,translator:this.translator})}}}(function(e){class t extends i.VDomModel{constructor(e){super();this._activityName="";this._kernelName="";this._kernelStatus="";this._sessionContext=null;e=e!==null&&e!==void 0?e:s.nullTranslator;this._trans=e.load("jupyterlab");this._statusNames=x(e)}get kernelName(){return this._kernelName}get status(){return this._kernelStatus?this._statusNames[this._kernelStatus]:undefined}get activityName(){return this._activityName}set activityName(e){const t=this._activityName;if(t===e){return}this._activityName=e;this.stateChanged.emit()}get sessionContext(){return this._sessionContext}set sessionContext(e){var t,n,i,s;(t=this._sessionContext)===null||t===void 0?void 0:t.statusChanged.disconnect(this._onKernelStatusChanged,this);(n=this._sessionContext)===null||n===void 0?void 0:n.connectionStatusChanged.disconnect(this._onKernelStatusChanged,this);(i=this._sessionContext)===null||i===void 0?void 0:i.kernelChanged.disconnect(this._onKernelChanged,this);const o=this._getAllState();this._sessionContext=e;this._kernelStatus=e===null||e===void 0?void 0:e.kernelDisplayStatus;this._kernelName=(s=e===null||e===void 0?void 0:e.kernelDisplayName)!==null&&s!==void 0?s:this._trans.__("No Kernel");e===null||e===void 0?void 0:e.statusChanged.connect(this._onKernelStatusChanged,this);e===null||e===void 0?void 0:e.connectionStatusChanged.connect(this._onKernelStatusChanged,this);e===null||e===void 0?void 0:e.kernelChanged.connect(this._onKernelChanged,this);this._triggerChange(o,this._getAllState())}_onKernelStatusChanged(){var e;this._kernelStatus=(e=this._sessionContext)===null||e===void 0?void 0:e.kernelDisplayStatus;this.stateChanged.emit(void 0)}_onKernelChanged(e,t){var n;const i=this._getAllState();this._kernelStatus=(n=this._sessionContext)===null||n===void 0?void 0:n.kernelDisplayStatus;this._kernelName=e.kernelDisplayName;this._triggerChange(i,this._getAllState())}_getAllState(){return[this._kernelName,this._kernelStatus,this._activityName]}_triggerChange(e,t){if(c.JSONExt.deepEqual(e,t)){this.stateChanged.emit(void 0)}}}e.Model=t})(k||(k={}));const j="jp-Toolbar-kernelName";const I="jp-Toolbar-kernelStatus";var E;(function(e){function t(e,t){t=t||s.nullTranslator;const n=t.load("jupyterlab");return new i.ToolbarButton({icon:i.stopIcon,onClick:()=>{var t,n;void((n=(t=e.session)===null||t===void 0?void 0:t.kernel)===null||n===void 0?void 0:n.interrupt())},tooltip:n.__("Interrupt the kernel")})}e.createInterruptButton=t;function n(e,t,n){n=n!==null&&n!==void 0?n:s.nullTranslator;const o=n.load("jupyterlab");return new i.ToolbarButton({icon:i.refreshIcon,onClick:()=>{void(t!==null&&t!==void 0?t:new y({translator:n})).restart(e)},tooltip:o.__("Restart the kernel")})}e.createRestartButton=n;function o(e,t,n){const s=i.ReactWidget.create(r.createElement(T.KernelNameComponent,{sessionContext:e,dialogs:t!==null&&t!==void 0?t:new y({translator:n}),translator:n}));s.addClass("jp-KernelName");return s}e.createKernelNameItem=o;function a(e,t){return new T.KernelStatus(e,t)}e.createKernelStatusItem=a})(E||(E={}));var T;(function(e){function t(e){const t=e.translator||s.nullTranslator;const n=t.load("jupyterlab");const o=()=>{void e.dialogs.selectKernel(e.sessionContext)};return r.createElement(i.UseSignal,{signal:e.sessionContext.kernelChanged,initialSender:e.sessionContext},(e=>r.createElement(i.ToolbarButtonComponent,{className:j,onClick:o,tooltip:n.__("Switch kernel"),label:e===null||e===void 0?void 0:e.kernelDisplayName})))}e.KernelNameComponent=t;class n extends o.Widget{constructor(e,t){super();this.translator=t||s.nullTranslator;this._trans=this.translator.load("jupyterlab");this.addClass(I);this._statusNames=x(this.translator);this._onStatusChanged(e);e.statusChanged.connect(this._onStatusChanged,this);e.connectionStatusChanged.connect(this._onStatusChanged,this)}_onStatusChanged(e){if(this.isDisposed){return}const t=e.kernelDisplayStatus;const n={container:this.node,title:this._trans.__("Kernel %1",this._statusNames[t]||t),stylesheet:"toolbarButton",alignSelf:"normal",height:"24px"};i.LabIcon.remove(this.node);if(t==="busy"||t==="starting"||t==="terminating"||t==="restarting"||t==="initializing"){i.circleIcon.element(n)}else if(t==="connecting"||t==="disconnected"||t==="unknown"){i.offlineBoltIcon.element(n)}else{i.circleEmptyIcon.element(n)}}}e.KernelStatus=n})(T||(T={}));var M;(function(e){function t(){return D.instance}e.getInstance=t;function n(e){D.instance=e}e.setInstance=n;function i(e){const t=document.body;const n=i=>{const s=i.clipboardData||window.clipboardData;if(typeof e==="string"){s.setData("text",e)}else{e.types().map((t=>{s.setData(t,e.getData(t))}))}i.preventDefault();t.removeEventListener("copy",n)};t.addEventListener("copy",n);s(t)}e.copyToSystem=i;function s(e,t="copy"){let n=window.getSelection();const i=[];for(let o=0,r=(n===null||n===void 0?void 0:n.rangeCount)||0;o{if(this.isAttached&&this.isVisible){this.hideAndReset()}}));this.node.tabIndex=0}get palette(){return this._commandPalette}set palette(e){this._commandPalette=e;if(!this.searchIconGroup){this._commandPalette.inputNode.insertAdjacentElement("afterend",this.createSearchIconGroup())}this.addWidget(e);this.hideAndReset()}attach(){o.Widget.attach(this,document.body)}detach(){o.Widget.detach(this)}hideAndReset(){this.hide();this._commandPalette.inputNode.value="";this._commandPalette.refresh()}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"blur":{if(this.node.contains(e.target)&&!this.node.contains(e.relatedTarget)){e.stopPropagation();this.hideAndReset()}break}case"contextmenu":e.preventDefault();e.stopPropagation();break;default:break}}get searchIconGroup(){return this._commandPalette.node.getElementsByClassName(R)[0]}createSearchIconGroup(){const e=document.createElement("div");e.classList.add(R);i.searchIcon.render(e);return e}onAfterAttach(e){this.node.addEventListener("keydown",this,true);this.node.addEventListener("contextmenu",this,true)}onAfterDetach(e){this.node.removeEventListener("keydown",this,true);this.node.removeEventListener("contextmenu",this,true)}onBeforeHide(e){document.removeEventListener("blur",this,true)}onAfterShow(e){document.addEventListener("blur",this,true)}onActivateRequest(e){if(this.isAttached){this.show();this._commandPalette.activate()}}_evtKeydown(e){switch(e.keyCode){case 27:e.stopPropagation();e.preventDefault();this.hideAndReset();break;default:break}}}var O=n(76326);var B;(function(e){function t(e,t,n){return d.ArrayExt.findFirstIndex(e,(e=>O.ElementExt.hitTest(e,t,n)))}e.hitTestNodes=t;function n(e,t){return e.querySelector(`.${t}`)}e.findElement=n;function i(e,t){return e.getElementsByClassName(t)}e.findElements=i;function s(){return`id-${c.UUID.uuid4()}`}e.createDomID=s;function o(e,t=document){const n=t.activeElement;return!!(n&&e.contains(n)&&(n.matches(":read-write")||n.shadowRoot&&o(n.shadowRoot,n.shadowRoot)))}e.hasActiveEditableElement=o})(B||(B={}));const F="jp-Input-Dialog";const z="jp-Input-Boolean-Dialog";var H;(function(e){function t(e){return g({...e,body:new V(e),buttons:[v.cancelButton({label:e.cancelLabel}),v.okButton({label:e.okLabel})],focusNodeSelector:"input"})}e.getBoolean=t;function n(e){return g({...e,body:new U(e),buttons:[v.cancelButton({label:e.cancelLabel}),v.okButton({label:e.okLabel})],focusNodeSelector:"input"})}e.getNumber=n;function i(e){return g({...e,body:new J(e),buttons:[v.cancelButton({label:e.cancelLabel}),v.okButton({label:e.okLabel})],focusNodeSelector:e.editable?"input":"select"})}e.getItem=i;function s(e){return g({...e,body:new G(e),buttons:[v.cancelButton({label:e.cancelLabel}),v.okButton({label:e.okLabel})]})}e.getMultipleItems=s;function o(e){return g({...e,body:new $(e),buttons:[v.cancelButton({label:e.cancelLabel}),v.okButton({label:e.okLabel})],focusNodeSelector:"input"})}e.getText=o;function r(e){return g({...e,body:new K(e),buttons:[v.cancelButton({label:e.cancelLabel}),v.okButton({label:e.okLabel})],focusNodeSelector:"input"})}e.getPassword=r})(H||(H={}));class W extends o.Widget{constructor(e){super();this.addClass(F);this._input=document.createElement("input");this._input.classList.add("jp-mod-styled");this._input.id="jp-dialog-input-id";if(e.label!==undefined){const t=document.createElement("label");t.textContent=e.label;t.htmlFor=this._input.id;this.node.appendChild(t)}const t=document.createElement("div");t.className="jp-InputDialog-inputWrapper";if(e.prefix){const n=document.createElement("span");n.className="jp-InputDialog-inputPrefix";n.textContent=e.prefix;n.ariaHidden="true";t.appendChild(n)}t.appendChild(this._input);if(e.suffix){const n=document.createElement("span");n.className="jp-InputDialog-inputSuffix";n.textContent=e.suffix;n.ariaHidden="true";t.appendChild(n)}this.node.appendChild(t)}}class V extends W{constructor(e){super(e);this.addClass(z);this._input.type="checkbox";this._input.checked=e.value?true:false}getValue(){return this._input.checked}}class U extends W{constructor(e){super(e);this._input.type="number";this._input.value=e.value?e.value.toString():"0"}getValue(){if(this._input.value){return Number(this._input.value)}else{return Number.NaN}}}class q extends W{constructor(e){super(e);this._input.value=e.text?e.text:"";if(e.placeholder){this._input.placeholder=e.placeholder}if(e.pattern){this._input.pattern=e.pattern}if(e.required){this._input.required=e.required}}getValue(){return this._input.value}}class $ extends q{constructor(e){var t;super(e);this._input.type="text";this._initialSelectionRange=Math.min(this._input.value.length,Math.max(0,(t=e.selectionRange)!==null&&t!==void 0?t:this._input.value.length))}onAfterAttach(e){super.onAfterAttach(e);if(this._initialSelectionRange>0&&this._input.value){this._input.setSelectionRange(0,this._initialSelectionRange)}}}class K extends q{constructor(e){super(e);this._input.type="password"}onAfterAttach(e){super.onAfterAttach(e);if(this._input.value){this._input.select()}}}class J extends W{constructor(e){super(e);this._editable=e.editable||false;let t=e.current||0;let n;if(typeof t==="number"){n=Math.max(0,Math.min(t,e.items.length-1));t=""}this._list=document.createElement("select");e.items.forEach(((e,i)=>{const s=document.createElement("option");if(i===n){s.selected=true;t=e}s.value=e;s.textContent=e;this._list.appendChild(s)}));if(e.editable){const n=document.createElement("datalist");n.id="input-dialog-items";n.appendChild(this._list);this._input.type="list";this._input.value=t;this._input.setAttribute("list",n.id);if(e.placeholder){this._input.placeholder=e.placeholder}this.node.appendChild(n)}else{this._input.parentElement.replaceChild(this._list,this._input)}}getValue(){if(this._editable){return this._input.value}else{return this._list.value}}}class G extends W{constructor(e){super(e);let t=e.defaults||[];this._list=document.createElement("select");this._list.setAttribute("multiple","");e.items.forEach((e=>{const t=document.createElement("option");t.value=e;t.textContent=e;this._list.appendChild(t)}));this._input.remove();this.node.appendChild(this._list);const n=this._list.options;for(let i=0;ithis._updateBundles()));this.model.trackerDataChanged.connect((()=>{this.title.label=this.model.title}))}dispose(){if(this.isDisposed){return}this._bundles.currentChanged.disconnect(this.onBundleSelected,this);this.model.dispose();super.dispose()}initLeftPanel(){this._leftPanel=new o.Panel;this._leftPanel.addClass("jp-Licenses-FormArea");this.addWidget(this._leftPanel);o.SplitPanel.setStretch(this._leftPanel,1)}initFilters(){this._filters=new Z.Filters(this.model);o.SplitPanel.setStretch(this._filters,1);this._leftPanel.addWidget(this._filters)}initBundles(){this._bundles=new o.TabBar({orientation:"vertical",renderer:new Z.BundleTabRenderer(this.model)});this._bundles.addClass("jp-Licenses-Bundles");o.SplitPanel.setStretch(this._bundles,1);this._leftPanel.addWidget(this._bundles);this._bundles.currentChanged.connect(this.onBundleSelected,this);this.model.stateChanged.connect((()=>this._bundles.update()))}initGrid(){this._grid=new Z.Grid(this.model);o.SplitPanel.setStretch(this._grid,1);this.addWidget(this._grid)}initLicenseText(){this._licenseText=new Z.FullText(this.model);o.SplitPanel.setStretch(this._grid,1);this.addWidget(this._licenseText)}onBundleSelected(){var e;if((e=this._bundles.currentTitle)===null||e===void 0?void 0:e.label){this.model.currentBundleName=this._bundles.currentTitle.label}}_updateBundles(){this._bundles.clearTabs();let e=0;const{currentBundleName:t}=this.model;let n=0;for(const i of this.model.bundleNames){const s=new o.Widget;s.title.label=i;if(i===t){n=e}this._bundles.insertTab(++e,s.title)}this._bundles.currentIndex=n}}(function(e){e.REPORT_FORMATS={markdown:{id:"markdown",title:"Markdown",icon:i.markdownIcon},csv:{id:"csv",title:"CSV",icon:i.spreadsheetIcon},json:{id:"json",title:"JSON",icon:i.jsonIcon}};e.DEFAULT_FORMAT="markdown";class t{constructor(e={}){var t;this._licensesUrl=e.licensesUrl||"";this._serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:Y.ServerConnection.makeSettings()}async download(e){const t=`${this._licensesUrl}?format=${e.format}&download=1`;const n=document.createElement("a");n.href=t;n.download="";document.body.appendChild(n);n.click();document.body.removeChild(n);URL.revokeObjectURL(t);return void 0}async getBundles(){const e=await Y.ServerConnection.makeRequest(this._licensesUrl,{},this._serverSettings);return e.json()}}e.LicensesClient=t;class n extends i.VDomModel{constructor(e){super();this._selectedPackageChanged=new h.Signal(this);this._trackerDataChanged=new h.Signal(this);this._currentPackageIndex=0;this._licensesReady=new c.PromiseDelegate;this._packageFilter={};this._trans=e.trans;this._client=e.client;if(e.currentBundleName){this._currentBundleName=e.currentBundleName}if(e.packageFilter){this._packageFilter=e.packageFilter}if(e.currentPackageIndex){this._currentPackageIndex=e.currentPackageIndex}}async initLicenses(){try{this._serverResponse=await this._client.getBundles();this._licensesReady.resolve();this.stateChanged.emit(void 0)}catch(e){this._licensesReady.reject(e)}}async download(e){return this._client.download(e)}get selectedPackageChanged(){return this._selectedPackageChanged}get trackerDataChanged(){return this._trackerDataChanged}get bundleNames(){var e;return Object.keys(((e=this._serverResponse)===null||e===void 0?void 0:e.bundles)||{})}get currentBundleName(){if(this._currentBundleName){return this._currentBundleName}if(this.bundleNames.length){return this.bundleNames[0]}return null}set currentBundleName(e){if(this._currentBundleName!==e){this._currentBundleName=e;this.stateChanged.emit(void 0);this._trackerDataChanged.emit(void 0)}}get licensesReady(){return this._licensesReady.promise}get bundles(){var e;return((e=this._serverResponse)===null||e===void 0?void 0:e.bundles)||{}}get currentPackageIndex(){return this._currentPackageIndex}set currentPackageIndex(e){if(this._currentPackageIndex===e){return}this._currentPackageIndex=e;this._selectedPackageChanged.emit(void 0);this.stateChanged.emit(void 0);this._trackerDataChanged.emit(void 0)}get currentPackage(){var e;if(this.currentBundleName&&this.bundles&&this._currentPackageIndex!=null){return this.getFilteredPackages(((e=this.bundles[this.currentBundleName])===null||e===void 0?void 0:e.packages)||[])[this._currentPackageIndex]}return null}get trans(){return this._trans}get title(){return`${this._currentBundleName||""} ${this._trans.__("Licenses")}`.trim()}get packageFilter(){return this._packageFilter}set packageFilter(e){this._packageFilter=e;this.stateChanged.emit(void 0);this._trackerDataChanged.emit(void 0)}getFilteredPackages(e){let t=[];let n=Object.entries(this._packageFilter).filter((([e,t])=>t&&`${t}`.trim().length)).map((([e,t])=>[e,`${t}`.toLowerCase().trim().split(" ")]));for(const i of e){let e=0;for(const[t,s]of n){let n=0;let o=`${i[t]}`.toLowerCase();for(const e of s){if(o.includes(e)){n+=1}}if(n){e+=1}}if(e===n.length){t.push(i)}}return Object.values(t)}}e.Model=n;class s extends i.VDomRenderer{constructor(e){super(e);this.renderFilter=e=>{const t=this.model.packageFilter[e]||"";return r.createElement("input",{type:"text",name:e,defaultValue:t,className:"jp-mod-styled",onInput:this.onFilterInput})};this.onFilterInput=e=>{const t=e.currentTarget;const{name:n,value:i}=t;this.model.packageFilter={...this.model.packageFilter,[n]:i}};this.addClass("jp-Licenses-Filters");this.addClass("jp-RenderedHTMLCommon")}render(){const{trans:e}=this.model;return r.createElement("div",null,r.createElement("label",null,r.createElement("strong",{className:Q},e.__("Filter Licenses By"))),r.createElement("ul",null,r.createElement("li",null,r.createElement("label",null,e.__("Package")),this.renderFilter("name")),r.createElement("li",null,r.createElement("label",null,e.__("Version")),this.renderFilter("versionInfo")),r.createElement("li",null,r.createElement("label",null,e.__("License")),this.renderFilter("licenseId"))),r.createElement("label",null,r.createElement("strong",{className:Q},e.__("Distributions"))))}}e.Filters=s;class a extends o.TabBar.Renderer{constructor(e){super();this.closeIconSelector=".lm-TabBar-tabCloseIcon";this.model=e}renderTab(e){let t=e.title.caption;let n=this.createTabKey(e);let i=this.createTabStyle(e);let s=this.createTabClass(e);let o=this.createTabDataset(e);return X.h.li({key:n,className:s,title:t,style:i,dataset:o},this.renderIcon(e),this.renderLabel(e),this.renderCountBadge(e))}renderCountBadge(e){const t=e.title.label;const{bundles:n}=this.model;const i=this.model.getFilteredPackages((n&&t?n[t].packages:[])||[]);return X.h.label({},`${i.length}`)}}e.BundleTabRenderer=a;class l extends i.VDomRenderer{constructor(e){super(e);this.renderRow=(e,t)=>{const n=t===this.model.currentPackageIndex;const i=()=>this.model.currentPackageIndex=t;return r.createElement("tr",{key:e.name,className:n?"jp-mod-selected":"",onClick:i},r.createElement("td",null,r.createElement("input",{type:"radio",name:"show-package-license",value:t,onChange:i,checked:n})),r.createElement("th",null,e.name),r.createElement("td",null,r.createElement("code",null,e.versionInfo)),r.createElement("td",null,r.createElement("code",null,e.licenseId)))};this.addClass("jp-Licenses-Grid");this.addClass("jp-RenderedHTMLCommon")}render(){var e;const{bundles:t,currentBundleName:n,trans:i}=this.model;const s=this.model.getFilteredPackages(t&&n?((e=t[n])===null||e===void 0?void 0:e.packages)||[]:[]);if(!s.length){return r.createElement("blockquote",null,r.createElement("em",null,i.__("No Packages found")))}return r.createElement("form",null,r.createElement("table",null,r.createElement("thead",null,r.createElement("tr",null,r.createElement("td",null),r.createElement("th",null,i.__("Package")),r.createElement("th",null,i.__("Version")),r.createElement("th",null,i.__("License")))),r.createElement("tbody",null,s.map(this.renderRow))))}}e.Grid=l;class d extends i.VDomRenderer{constructor(e){super(e);this.addClass("jp-Licenses-Text");this.addClass("jp-RenderedHTMLCommon");this.addClass("jp-RenderedMarkdown")}render(){const{currentPackage:e,trans:t}=this.model;let n="";let i=t.__("No Package selected");let s="";if(e){const{name:o,versionInfo:r,licenseId:a,extractedText:l}=e;n=`${o} v${r}`;i=`${t.__("License")}: ${a||t.__("No License ID found")}`;s=l||t.__("No License Text found")}return[r.createElement("h1",{key:"h1"},n),r.createElement("blockquote",{key:"quote"},r.createElement("em",null,i)),r.createElement("code",{key:"code"},s)]}}e.FullText=d})(Z||(Z={}));var ee;(function(e){e.symbol=Symbol("printable");function t(t){if(typeof t!=="object"||!t){return false}return e.symbol in t}e.isPrintable=t;function n(n){if(t(n)){return n[e.symbol]()}return null}e.getPrintFunction=n;function i(e){return o(e.node)}e.printWidget=i;async function s(e){const t=Y.ServerConnection.makeSettings();const n=await(await Y.ServerConnection.makeRequest(e,{},t)).text();return o(n)}e.printURL=s;async function o(e){const t=typeof e==="string";const n=r();const i=window.document.body;i.appendChild(n);if(t){n.srcdoc=e;await l(n)}else{n.src="about:blank";await l(n);a(n,e)}const s=d();c(n.contentWindow);await s;i.removeChild(n)}function r(){const e=window.document.createElement("iframe");e.setAttribute("sandbox","allow-modals allow-same-origin");const t="visibility:hidden;width:0;height:0;position:absolute;z-index:-9999;bottom:0;";e.setAttribute("style",t);e.setAttribute("width","0");e.setAttribute("height","0");return e}function a(e,t){e.contentDocument.body.appendChild(t.cloneNode(true));e.contentDocument.close()}function l(e){return new Promise((t=>{e.onload=()=>t()}))}function d(){return new Promise((e=>{const t=()=>{document.removeEventListener("mousemove",t,true);document.removeEventListener("mousedown",t,true);document.removeEventListener("keydown",t,true);e()};document.addEventListener("mousemove",t,true);document.addEventListener("mousedown",t,true);document.addEventListener("keydown",t,true)}))}function c(e){const t=e.document.execCommand("print",false);if(!t){e.print()}}})(ee||(ee={}));const te=true;class ne extends o.Widget{constructor(e){super(e);this._changeGuard=false;this._spinner=new i.Spinner;this._isRevealed=false;this._evtMouseDown=()=>{if(!this.node.contains(document.activeElement)){this._focusContent()}};this.addClass("jp-MainAreaWidget");this.addClass("jp-MainAreaWidget-ContainStrict");this.id=B.createDomID();const t=(e.translator||s.nullTranslator).load("jupyterlab");const n=this._content=e.content;n.node.setAttribute("role","region");n.node.setAttribute("aria-label",t.__("notebook content"));const r=this._toolbar=e.toolbar||new i.ReactiveToolbar({noFocusOnClick:true});r.node.setAttribute("role","toolbar");r.node.setAttribute("aria-label",t.__("notebook actions"));const a=this._contentHeader=e.contentHeader||new o.BoxPanel({direction:"top-to-bottom",spacing:0});const l=this.layout=new o.BoxLayout({spacing:0});l.direction="top-to-bottom";o.BoxLayout.setStretch(r,0);o.BoxLayout.setStretch(a,0);o.BoxLayout.setStretch(n,1);l.addWidget(r);l.addWidget(a);l.addWidget(n);if(!n.id){n.id=B.createDomID()}n.node.tabIndex=-1;this._updateTitle();n.title.changed.connect(this._updateTitle,this);this.title.closable=true;this.title.changed.connect(this._updateContentTitle,this);if(e.reveal){this.node.appendChild(this._spinner.node);this._revealed=e.reveal.then((()=>{if(n.isDisposed){this.dispose();return}n.disposed.connect((()=>this.dispose()));const e=document.activeElement===this._spinner.node;this._disposeSpinner();this._isRevealed=true;if(e){this._focusContent()}})).catch((e=>{const t=new o.Widget;t.addClass("jp-MainAreaWidget-error");const i=document.createElement("pre");i.textContent=String(e);t.node.appendChild(i);o.BoxLayout.setStretch(t,1);this._disposeSpinner();n.dispose();this._content=null;r.dispose();this._toolbar=null;l.addWidget(t);this._isRevealed=true;throw t}))}else{this._spinner.dispose();this.removeClass("jp-MainAreaWidget-ContainStrict");n.disposed.connect((()=>this.dispose()));this._isRevealed=true;this._revealed=Promise.resolve(undefined)}}[ee.symbol](){if(!this._content){return null}return ee.getPrintFunction(this._content)}get content(){return this._content}get toolbar(){return this._toolbar}get contentHeader(){return this._contentHeader}get isRevealed(){return this._isRevealed}get revealed(){return this._revealed}onActivateRequest(e){if(this._isRevealed){this._focusContent()}else{this._spinner.node.focus()}}onAfterAttach(e){super.onAfterAttach(e);this.node.addEventListener("mousedown",this._evtMouseDown,te)}onBeforeDetach(e){this.node.removeEventListener("mousedown",this._evtMouseDown,te);super.onBeforeDetach(e)}onCloseRequest(e){this.dispose()}onUpdateRequest(e){if(this._content){u.MessageLoop.sendMessage(this._content,e)}}_disposeSpinner(){this.node.removeChild(this._spinner.node);this._spinner.dispose();this.removeClass("jp-MainAreaWidget-ContainStrict")}_updateTitle(){if(this._changeGuard||!this.content){return}this._changeGuard=true;const e=this.content;this.title.label=e.title.label;this.title.mnemonic=e.title.mnemonic;this.title.icon=e.title.icon;this.title.iconClass=e.title.iconClass;this.title.iconLabel=e.title.iconLabel;this.title.caption=e.title.caption;this.title.className=e.title.className;this.title.dataset=e.title.dataset;this._changeGuard=false}_updateContentTitle(){if(this._changeGuard||!this.content){return}this._changeGuard=true;const e=this.content;e.title.label=this.title.label;e.title.mnemonic=this.title.mnemonic;e.title.icon=this.title.icon;e.title.iconClass=this.title.iconClass;e.title.iconLabel=this.title.iconLabel;e.title.caption=this.title.caption;e.title.className=this.title.className;e.title.dataset=this.title.dataset;this._changeGuard=false}_focusContent(){if(!this.content){return}if(!this.content.node.contains(document.activeElement)){this.content.node.focus()}this.content.activate()}}var ie;(function(e){function t(e,t){return e.filter((e=>!e.disabled)).sort(((e,t)=>{var n,i;return((n=e.rank)!==null&&n!==void 0?n:Infinity)-((i=t.rank)!==null&&i!==void 0?i:Infinity)})).map((e=>n(e,t)))}e.createMenus=t;function n(e,t){var n,s;const r=t(e);r.id=e.id;if(!r.title.label){r.title.label=(n=e.label)!==null&&n!==void 0?n:l.Text.titleCase(r.id.trim())}if(e.icon){r.title.icon=i.LabIcon.resolve({icon:e.icon})}if(e.mnemonic!==undefined){r.title.mnemonic=e.mnemonic}(s=e.items)===null||s===void 0?void 0:s.filter((e=>!e.disabled)).sort(((e,t)=>{var n,i;return((n=e.rank)!==null&&n!==void 0?n:Infinity)-((i=t.rank)!==null&&i!==void 0?i:Infinity)})).map((e=>{o(e,r,t)}));return r}function s(e,t,i){const{submenu:s,...o}=e;t.addItem({...o,submenu:s?n(s,i):null})}e.addContextItem=s;function o(e,t,i){const{submenu:s,...o}=e;t.addItem({...o,submenu:s?n(s,i):null})}function r(e,t,i){const s=[];t.forEach((t=>{const o=e.find((e=>e.id===t.id));if(o){a(t,o,i)}else{if(!t.disabled){s.push(n(t,i))}}}));e.push(...s);return s}e.updateMenus=r;function a(e,t,n){var i;if(e.disabled){t.dispose()}else{(i=e.items)===null||i===void 0?void 0:i.forEach((e=>{var i,s;const r=t===null||t===void 0?void 0:t.items.find(((t,n)=>{var i,s,o;return t.type===e.type&&t.command===((i=e.command)!==null&&i!==void 0?i:"")&&((s=t.submenu)===null||s===void 0?void 0:s.id)===((o=e.submenu)===null||o===void 0?void 0:o.id)}));if(r&&e.type!=="separator"){if(e.disabled){t.removeItem(r)}else{switch((i=e.type)!==null&&i!==void 0?i:"command"){case"command":if(e.command){if(!c.JSONExt.deepEqual(r.args,(s=e.args)!==null&&s!==void 0?s:{})){o(e,t,n)}}break;case"submenu":if(e.submenu){a(e.submenu,r.submenu,n)}}}}else{o(e,t,n)}}))}}})(ie||(ie={}));class se{constructor(){this._isDisposed=false;this._queue=[];this._changed=new h.Signal(this)}get changed(){return this._changed}get count(){return this._queue.length}get isDisposed(){return this._isDisposed}get notifications(){return this._queue.slice()}dismiss(e){if(typeof e==="undefined"){const e=this._queue.slice();this._queue.length=0;for(const t of e){this._changed.emit({type:"removed",notification:t})}}else{const t=this._queue.findIndex((t=>t.id===e));if(t>-1){const e=this._queue.splice(t,1)[0];this._changed.emit({type:"removed",notification:e})}}}dispose(){if(this._isDisposed){return}this._isDisposed=true;h.Signal.clearData(this)}has(e){return this._queue.findIndex((t=>t.id===e))>-1}notify(e,t,n){const i=Date.now();const{progress:s,...o}=n;const r=Object.freeze({id:c.UUID.uuid4(),createdAt:i,modifiedAt:i,message:e,type:t,options:{autoClose:0,progress:typeof s==="number"?Math.min(Math.max(0,s),1):s,...o}});this._queue.unshift(r);this._changed.emit({type:"added",notification:r});return r.id}update(e){const{id:t,message:n,actions:i,autoClose:s,data:o,progress:r,type:a}=e;const l=typeof r==="number"?Math.min(Math.max(0,r),1):r;const d=this._queue.findIndex((e=>e.id===t));if(d>-1){const e=this._queue[d];const t=Object.freeze({...e,message:n!==null&&n!==void 0?n:e.message,type:a!==null&&a!==void 0?a:e.type,options:{actions:i!==null&&i!==void 0?i:e.options.actions,autoClose:s!==null&&s!==void 0?s:e.options.autoClose,data:o!==null&&o!==void 0?o:e.options.data,progress:l!==null&&l!==void 0?l:e.options.progress},modifiedAt:Date.now()});this._queue.splice(d,1);this._queue.unshift(t);this._changed.emit({type:"updated",notification:t});return true}return false}}var oe;(function(e){e.manager=new se;function t(t){e.manager.dismiss(t)}e.dismiss=t;function n(t,n="default",i={}){return e.manager.notify(t,n,i)}e.emit=n;function i(t,n={}){return e.manager.notify(t,"error",n)}e.error=i;function s(t,n={}){return e.manager.notify(t,"info",n)}e.info=s;function o(t,n){var i;const{pending:s,error:o,success:r}=n;const a=e.manager.notify(s.message,"in-progress",(i=s.options)!==null&&i!==void 0?i:{});t.then((t=>{var n,i,s;e.manager.update({id:a,message:r.message(t,(n=r.options)===null||n===void 0?void 0:n.data),type:"success",...r.options,data:(s=(i=r.options)===null||i===void 0?void 0:i.data)!==null&&s!==void 0?s:t})})).catch((t=>{var n,i,s;e.manager.update({id:a,message:o.message(t,(n=o.options)===null||n===void 0?void 0:n.data),type:"error",...o.options,data:(s=(i=o.options)===null||i===void 0?void 0:i.data)!==null&&s!==void 0?s:t})}));return a}e.promise=o;function r(t,n={}){return e.manager.notify(t,"success",n)}e.success=r;function a(t){return e.manager.update(t)}e.update=a;function l(t,n={}){return e.manager.notify(t,"warning",n)}e.warning=l})(oe||(oe={}));const re=4;function ae(e){var t,n;const s=(t=e.showKernels)!==null&&t!==void 0?t:true;const o=(n=e.showTerminals)!==null&&n!==void 0?n:e.terminals>0;return a().createElement(C.GroupItem,{tabIndex:0,spacing:re,onClick:e.handleClick,onKeyDown:e.handleKeyDown,style:{cursor:"pointer"}},o?a().createElement(C.GroupItem,{spacing:re},a().createElement(C.TextItem,{source:e.terminals}),a().createElement(i.terminalIcon.react,{verticalAlign:"middle",stylesheet:"statusBar"})):null,s?a().createElement(C.GroupItem,{spacing:re},a().createElement(C.TextItem,{source:e.sessions}),a().createElement(i.kernelIcon.react,{verticalAlign:"middle",stylesheet:"statusBar"})):null)}class le extends i.VDomRenderer{constructor(e){super(new le.Model);this._serviceManager=e.serviceManager;this._handleClick=e.onClick;this._handleKeyDown=e.onKeyDown;this.translator=e.translator||s.nullTranslator;this._showKernels=e.showKernels;this._showTerminals=e.showTerminals;this._trans=this.translator.load("jupyterlab");this._serviceManager.sessions.runningChanged.connect(this._onSessionsRunningChanged,this);this._serviceManager.terminals.runningChanged.connect(this._onTerminalsRunningChanged,this);this.addClass("jp-mod-highlighted")}render(){if(!this.model){return null}const e=this._trans.__("%1 Terminals, %2 Kernel sessions",this.model.terminals,this.model.sessions);this.node.title=e;return a().createElement(ae,{sessions:this.model.sessions,terminals:this.model.terminals,handleClick:this._handleClick,handleKeyDown:this._handleKeyDown,showKernels:this._showKernels,showTerminals:this._showTerminals})}dispose(){super.dispose();this._serviceManager.sessions.runningChanged.disconnect(this._onSessionsRunningChanged,this);this._serviceManager.terminals.runningChanged.disconnect(this._onTerminalsRunningChanged,this)}_onSessionsRunningChanged(e,t){this.model.sessions=t.length}_onTerminalsRunningChanged(e,t){this.model.terminals=t.length}}(function(e){class t extends i.VDomModel{constructor(){super(...arguments);this._terminals=0;this._sessions=0}get sessions(){return this._sessions}set sessions(e){const t=this._sessions;this._sessions=e;if(t!==this._sessions){this.stateChanged.emit(void 0)}}get terminals(){return this._terminals}set terminals(e){const t=this._terminals;this._terminals=e;if(t!==this._terminals){this.stateChanged.emit(void 0)}}}e.Model=t})(le||(le={}));var de=n(74728);var ce=n.n(de);class he{static reg(e){return new RegExp("^"+e+"$","i")}}he.N={integer:`[+-]?[0-9]+`,integer_pos:`[+]?[0-9]+`,integer_zero_ff:`([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])`,number:`[+-]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?`,number_pos:`[+]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?`,number_zero_hundred:`[+]?(([0-9]|[1-9][0-9])([.][0-9]+)?|100)`,number_zero_one:`[+]?(1([.][0]+)?|0?([.][0-9]+)?)`};he.B={angle:`(${he.N.number}(deg|rad|grad|turn)|0)`,frequency:`${he.N.number}(Hz|kHz)`,ident:String.raw`-?([_a-z]|[\xA0-\xFF]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])([_a-z0-9-]|[\xA0-\xFF]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*`,len_or_perc:`(0|${he.N.number}(px|em|rem|ex|in|cm|mm|pt|pc|%))`,length:`(${he.N.number}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,length_pos:`(${he.N.number_pos}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,percentage:`${he.N.number}%`,percentage_pos:`${he.N.number_pos}%`,percentage_zero_hundred:`${he.N.number_zero_hundred}%`,string:String.raw`(\"([^\n\r\f\\"]|\\\n|\r\n|\r|\f|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*\")|(\'([^\n\r\f\\']|\\\n|\r\n|\r|\f|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*\')`,time:`${he.N.number}(s|ms)`,url:`url\\(.*?\\)`,z_index:`[+-]?[0-9]{1,7}`};he.A={absolute_size:`xx-small|x-small|small|medium|large|x-large|xx-large`,attachment:`scroll|fixed|local`,bg_origin:`border-box|padding-box|content-box`,border_style:`none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset`,box:`border-box|padding-box|content-box`,display_inside:`auto|block|table|flex|grid`,display_outside:`block-level|inline-level|none|table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption`,ending_shape:`circle|ellipse`,generic_family:`serif|sans-serif|cursive|fantasy|monospace`,generic_voice:`male|female|child`,relative_size:`smaller|larger`,repeat_style:`repeat-x|repeat-y|((?:repeat|space|round|no-repeat)(?:\\s*(?:repeat|space|round|no-repeat))?)`,side_or_corner:`(left|right)?\\s*(top|bottom)?`,single_animation_direction:`normal|reverse|alternate|alternate-reverse`,single_animation_fill_mode:`none|forwards|backwards|both`,single_animation_play_state:`running|paused`};he._COLOR={hex:`\\#(0x)?[0-9a-f]+`,name:`aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|transparent|violet|wheat|white|whitesmoke|yellow|yellowgreen`,rgb:String.raw`rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)`,rgba:String.raw`rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(${he.N.integer_zero_ff}|${he.N.number_zero_one}|${he.B.percentage_zero_hundred})\s*\)`};he._C={alpha:`${he.N.integer_zero_ff}|${he.N.number_zero_one}|${he.B.percentage_zero_hundred}`,alphavalue:he.N.number_zero_one,bg_position:`((${he.B.len_or_perc}|left|center|right|top|bottom)\\s*){1,4}`,bg_size:`(${he.B.length_pos}|${he.B.percentage}|auto){1,2}|cover|contain`,border_width:`thin|medium|thick|${he.B.length}`,bottom:`${he.B.length}|auto`,color:`${he._COLOR.hex}|${he._COLOR.rgb}|${he._COLOR.rgba}|${he._COLOR.name}`,color_stop_length:`(${he.B.len_or_perc}\\s*){1,2}`,linear_color_hint:`${he.B.len_or_perc}`,family_name:`${he.B.string}|(${he.B.ident}\\s*)+`,image_decl:he.B.url,left:`${he.B.length}|auto`,loose_quotable_words:`(${he.B.ident})+`,margin_width:`${he.B.len_or_perc}|auto`,padding_width:`${he.B.length_pos}|${he.B.percentage_pos}`,page_url:he.B.url,position:`((${he.B.len_or_perc}|left|center|right|top|bottom)\\s*){1,4}`,right:`${he.B.length}|auto`,shadow:"",size:`closest-side|farthest-side|closest-corner|farthest-corner|${he.B.length}|(${he.B.len_or_perc})\\s+(${he.B.len_or_perc})`,top:`${he.B.length}|auto`};he._C1={image_list:`image\\(\\s*(${he.B.url})*\\s*(${he.B.url}|${he._C.color})\\s*\\)`,linear_color_stop:`(${he._C.color})(\\s*${he._C.color_stop_length})?`,shadow:`((${he._C.color})\\s+((${he.B.length})\\s*){2,4}(s+inset)?)|((inset\\s+)?((${he.B.length})\\s*){2,4}\\s*(${he._C.color})?)`};he._C2={color_stop_list:`((${he._C1.linear_color_stop})(\\s*(${he._C.linear_color_hint}))?\\s*,\\s*)+(${he._C1.linear_color_stop})`,shape:`rect\\(\\s*(${he._C.top})\\s*,\\s*(${he._C.right})\\s*,\\s*(${he._C.bottom})\\s*,\\s*(${he._C.left})\\s*\\)`};he._C3={linear_gradient:`linear-gradient\\((((${he.B.angle})|to\\s+(${he.A.side_or_corner}))\\s*,\\s*)?\\s*(${he._C2.color_stop_list})\\s*\\)`,radial_gradient:`radial-gradient\\(((((${he.A.ending_shape})|(${he._C.size}))\\s*)*\\s*(at\\s+${he._C.position})?\\s*,\\s*)?\\s*(${he._C2.color_stop_list})\\s*\\)`};he._C4={image:`${he.B.url}|${he._C3.linear_gradient}|${he._C3.radial_gradient}|${he._C1.image_list}`,bg_image:`(${he.B.url}|${he._C3.linear_gradient}|${he._C3.radial_gradient}|${he._C1.image_list})|none`};he.C={...he._C,...he._C1,...he._C2,...he._C3,...he._C4};he.AP={border_collapse:`collapse|separate`,box:`normal|none|contents`,box_sizing:`content-box|padding-box|border-box`,caption_side:`top|bottom`,clear:`none|left|right|both`,direction:`ltr|rtl`,empty_cells:`show|hide`,float:`left|right|none`,font_stretch:`normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded`,font_style:`normal|italic|oblique`,font_variant:`normal|small-caps`,font_weight:`normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900`,list_style_position:`inside|outside`,list_style_type:`disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-latin|upper-latin|armenian|georgian|lower-alpha|upper-alpha|none`,overflow:`visible|hidden|scroll|auto`,overflow_wrap:`normal|break-word`,overflow_x:`visible|hidden|scroll|auto|no-display|no-content`,page_break_after:`auto|always|avoid|left|right`,page_break_before:`auto|always|avoid|left|right`,page_break_inside:`avoid|auto`,position:`static|relative|absolute`,resize:`none|both|horizontal|vertical`,speak:`normal|none|spell-out`,speak_header:`once|always`,speak_numeral:`digits|continuous`,speak_punctuation:`code|none`,table_layout:`auto|fixed`,text_align:`left|right|center|justify`,text_decoration:`none|((underline|overline|line-through|blink)\\s*)+`,text_transform:`capitalize|uppercase|lowercase|none`,text_wrap:`normal|unrestricted|none|suppress`,unicode_bidi:`normal|embed|bidi-override`,visibility:`visible|hidden|collapse`,white_space:`normal|pre|nowrap|pre-wrap|pre-line`,word_break:`normal|keep-all|break-all`};he._CP={background_attachment:`${he.A.attachment}(,\\s*${he.A.attachment})*`,background_color:he.C.color,background_origin:`${he.A.box}(,\\s*${he.A.box})*`,background_repeat:`${he.A.repeat_style}(,\\s*${he.A.repeat_style})*`,border:`((${he.C.border_width}|${he.A.border_style}|${he.C.color})\\s*){1,3}`,border_radius:`((${he.B.len_or_perc})\\s*){1,4}(\\/\\s*((${he.B.len_or_perc})\\s*){1,4})?`,border_spacing:`${he.B.length}\\s*(${he.B.length})?`,border_top_color:he.C.color,border_top_style:he.A.border_style,border_width:`((${he.C.border_width})\\s*){1,4}`,color:he.C.color,cursor:`(${he.B.url}(\\s*,\\s*)?)*(auto|crosshair|default|pointer|move|e-resize|ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|w-resize|text|wait|help|progress|all-scroll|col-resize|hand|no-drop|not-allowed|row-resize|vertical-text)`,display:`inline|block|list-item|run-in|inline-list-item|inline-block|table|inline-table|table-cell|table-caption|flex|inline-flex|grid|inline-grid|${he.A.display_inside}|${he.A.display_outside}|inherit|inline-box|inline-stack`,display_outside:he.A.display_outside,elevation:`${he.B.angle}|below|level|above|higher|lower`,font_family:`(${he.C.family_name}|${he.A.generic_family})(,\\s*(${he.C.family_name}|${he.A.generic_family}))*`,height:`${he.B.length}|${he.B.percentage}|auto`,letter_spacing:`normal|${he.B.length}`,list_style_image:`${he.C.image}|none`,margin_right:he.C.margin_width,max_height:`${he.B.length_pos}|${he.B.percentage_pos}|none|auto`,min_height:`${he.B.length_pos}|${he.B.percentage_pos}|auto`,opacity:he.C.alphavalue,outline_color:`${he.C.color}|invert`,outline_width:he.C.border_width,padding:`((${he.C.padding_width})\\s*){1,4}`,padding_top:he.C.padding_width,pitch_range:he.N.number,right:`${he.B.length}|${he.B.percentage}|auto`,stress:he.N.number,text_indent:`${he.B.length}|${he.B.percentage}`,text_shadow:`none|${he.C.shadow}(,\\s*(${he.C.shadow}))*`,volume:`${he.N.number_pos}|${he.B.percentage_pos}|silent|x-soft|soft|medium|loud|x-loud`,word_wrap:he.AP.overflow_wrap,zoom:`normal|${he.N.number_pos}|${he.B.percentage_pos}`,backface_visibility:he.AP.visibility,background_clip:`${he.A.box}(,\\s*(${he.A.box}))*`,background_position:`${he.C.bg_position}(,\\s*(${he.C.bg_position}))*`,border_bottom_color:he.C.color,border_bottom_style:he.A.border_style,border_color:`((${he.C.color})\\s*){1,4}`,border_left_color:he.C.color,border_right_color:he.C.color,border_style:`((${he.A.border_style})\\s*){1,4}`,border_top_left_radius:`(${he.B.length}|${he.B.percentage})(\\s*(${he.B.length}|${he.B.percentage}))?`,border_top_width:he.C.border_width,box_shadow:`none|${he.C.shadow}(,\\s*(${he.C.shadow}))*`,clip:`${he.C.shape}|auto`,display_inside:he.A.display_inside,font_size:`${he.A.absolute_size}|${he.A.relative_size}|${he.B.length_pos}|${he.B.percentage_pos}`,line_height:`normal|${he.N.number_pos}|${he.B.length_pos}|${he.B.percentage_pos}`,margin_left:he.C.margin_width,max_width:`${he.B.length_pos}|${he.B.percentage_pos}|none|auto`,outline_style:he.A.border_style,padding_bottom:he.C.padding_width,padding_right:he.C.padding_width,perspective:`none|${he.B.length}`,richness:he.N.number,text_overflow:`((clip|ellipsis|${he.B.string})\\s*){1,2}`,top:`${he.B.length}|${he.B.percentage}|auto`,width:`${he.B.length_pos}|${he.B.percentage_pos}|auto`,z_index:`auto|${he.B.z_index}`,background:`(((${he.C.bg_position}\\s*(\\/\\s*${he.C.bg_size})?)|(${he.A.repeat_style})|(${he.A.attachment})|(${he.A.bg_origin})|(${he.C.bg_image})|(${he.C.color}))\\s*)+`,background_size:`${he.C.bg_size}(,\\s*${he.C.bg_size})*`,border_bottom_left_radius:`(${he.B.length}|${he.B.percentage})(\\s*(${he.B.length}|${he.B.percentage}))?`,border_bottom_width:he.C.border_width,border_left_style:he.A.border_style,border_right_style:he.A.border_style,border_top:`((${he.C.border_width}|${he.A.border_style}|${he.C.color})\\s*){1,3}`,bottom:`${he.B.len_or_perc}|auto`,list_style:`((${he.AP.list_style_type}|${he.AP.list_style_position}|${he.C.image}|none})\\s*){1,3}`,margin_top:he.C.margin_width,outline:`((${he.C.color}|invert|${he.A.border_style}|${he.C.border_width})\\s*){1,3}`,overflow_y:he.AP.overflow_x,pitch:`${he.B.frequency}|x-low|low|medium|high|x-high`,vertical_align:`baseline|sub|super|top|text-top|middle|bottom|text-bottom|${he.B.len_or_perc}`,word_spacing:`normal|${he.B.length}`,background_image:`${he.C.bg_image}(,\\s*${he.C.bg_image})*`,border_bottom_right_radius:`(${he.B.length}|${he.B.percentage})(\\s*(${he.B.length}|${he.B.percentage}))?`,border_left_width:he.C.border_width,border_right_width:he.C.border_width,left:`${he.B.len_or_perc}|auto`,margin_bottom:he.C.margin_width,pause_after:`${he.B.time}|${he.B.percentage}`,speech_rate:`${he.N.number}|x-slow|slow|medium|fast|x-fast|faster|slower`,transition_duration:`${he.B.time}(,\\s*${he.B.time})*`,border_bottom:`((${he.C.border_width}|${he.A.border_style}|${he.C.color})\\s*){1,3}`,border_right:`((${he.C.border_width}|${he.A.border_style}|${he.C.color})\\s*){1,3}`,margin:`((${he.C.margin_width})\\s*){1,4}`,padding_left:he.C.padding_width,border_left:`((${he.C.border_width}|${he.A.border_style}|${he.C.color})\\s*){1,3}`,quotes:`(${he.B.string}\\s*${he.B.string})+|none`,border_top_right_radius:`(${he.B.length}|${he.B.percentage})(\\s*(${he.B.length}|${he.B.percentage}))?`,min_width:`${he.B.length_pos}|${he.B.percentage_pos}|auto`};he._CP1={font:`(((((${he.AP.font_style}|${he.AP.font_variant}|${he.AP.font_weight})\\s*){1,3})?\\s*(${he._CP.font_size})\\s*(\\/\\s*(${he._CP.line_height}))?\\s+(${he._CP.font_family}))|caption|icon|menu|message-box|small-caption|status-bar)`};he.CP={...he._CP,...he._CP1};he.BORDER_COLLAPSE=he.reg(he.AP.border_collapse);he.BOX=he.reg(he.AP.box);he.BOX_SIZING=he.reg(he.AP.box_sizing);he.CAPTION_SIDE=he.reg(he.AP.caption_side);he.CLEAR=he.reg(he.AP.clear);he.DIRECTION=he.reg(he.AP.direction);he.EMPTY_CELLS=he.reg(he.AP.empty_cells);he.FLOAT=he.reg(he.AP.float);he.FONT_STRETCH=he.reg(he.AP.font_stretch);he.FONT_STYLE=he.reg(he.AP.font_style);he.FONT_VARIANT=he.reg(he.AP.font_variant);he.FONT_WEIGHT=he.reg(he.AP.font_weight);he.LIST_STYLE_POSITION=he.reg(he.AP.list_style_position);he.LIST_STYLE_TYPE=he.reg(he.AP.list_style_type);he.OVERFLOW=he.reg(he.AP.overflow);he.OVERFLOW_WRAP=he.reg(he.AP.overflow_wrap);he.OVERFLOW_X=he.reg(he.AP.overflow_x);he.PAGE_BREAK_AFTER=he.reg(he.AP.page_break_after);he.PAGE_BREAK_BEFORE=he.reg(he.AP.page_break_before);he.PAGE_BREAK_INSIDE=he.reg(he.AP.page_break_inside);he.POSITION=he.reg(he.AP.position);he.RESIZE=he.reg(he.AP.resize);he.SPEAK=he.reg(he.AP.speak);he.SPEAK_HEADER=he.reg(he.AP.speak_header);he.SPEAK_NUMERAL=he.reg(he.AP.speak_numeral);he.SPEAK_PUNCTUATION=he.reg(he.AP.speak_punctuation);he.TABLE_LAYOUT=he.reg(he.AP.table_layout);he.TEXT_ALIGN=he.reg(he.AP.text_align);he.TEXT_DECORATION=he.reg(he.AP.text_decoration);he.TEXT_TRANSFORM=he.reg(he.AP.text_transform);he.TEXT_WRAP=he.reg(he.AP.text_wrap);he.UNICODE_BIDI=he.reg(he.AP.unicode_bidi);he.VISIBILITY=he.reg(he.AP.visibility);he.WHITE_SPACE=he.reg(he.AP.white_space);he.WORD_BREAK=he.reg(he.AP.word_break);he.BACKGROUND_ATTACHMENT=he.reg(he.CP.background_attachment);he.BACKGROUND_COLOR=he.reg(he.CP.background_color);he.BACKGROUND_ORIGIN=he.reg(he.CP.background_origin);he.BACKGROUND_REPEAT=he.reg(he.CP.background_repeat);he.BORDER=he.reg(he.CP.border);he.BORDER_RADIUS=he.reg(he.CP.border_radius);he.BORDER_SPACING=he.reg(he.CP.border_spacing);he.BORDER_TOP_COLOR=he.reg(he.CP.border_top_color);he.BORDER_TOP_STYLE=he.reg(he.CP.border_top_style);he.BORDER_WIDTH=he.reg(he.CP.border_width);he.COLOR=he.reg(he.CP.color);he.CURSOR=he.reg(he.CP.cursor);he.DISPLAY=he.reg(he.CP.display);he.DISPLAY_OUTSIDE=he.reg(he.CP.display_outside);he.ELEVATION=he.reg(he.CP.elevation);he.FONT_FAMILY=he.reg(he.CP.font_family);he.HEIGHT=he.reg(he.CP.height);he.LETTER_SPACING=he.reg(he.CP.letter_spacing);he.LIST_STYLE_IMAGE=he.reg(he.CP.list_style_image);he.MARGIN_RIGHT=he.reg(he.CP.margin_right);he.MAX_HEIGHT=he.reg(he.CP.max_height);he.MIN_HEIGHT=he.reg(he.CP.min_height);he.OPACITY=he.reg(he.CP.opacity);he.OUTLINE_COLOR=he.reg(he.CP.outline_color);he.OUTLINE_WIDTH=he.reg(he.CP.outline_width);he.PADDING=he.reg(he.CP.padding);he.PADDING_TOP=he.reg(he.CP.padding_top);he.PITCH_RANGE=he.reg(he.CP.pitch_range);he.RIGHT=he.reg(he.CP.right);he.STRESS=he.reg(he.CP.stress);he.TEXT_INDENT=he.reg(he.CP.text_indent);he.TEXT_SHADOW=he.reg(he.CP.text_shadow);he.VOLUME=he.reg(he.CP.volume);he.WORD_WRAP=he.reg(he.CP.word_wrap);he.ZOOM=he.reg(he.CP.zoom);he.BACKFACE_VISIBILITY=he.reg(he.CP.backface_visibility);he.BACKGROUND_CLIP=he.reg(he.CP.background_clip);he.BACKGROUND_POSITION=he.reg(he.CP.background_position);he.BORDER_BOTTOM_COLOR=he.reg(he.CP.border_bottom_color);he.BORDER_BOTTOM_STYLE=he.reg(he.CP.border_bottom_style);he.BORDER_COLOR=he.reg(he.CP.border_color);he.BORDER_LEFT_COLOR=he.reg(he.CP.border_left_color);he.BORDER_RIGHT_COLOR=he.reg(he.CP.border_right_color);he.BORDER_STYLE=he.reg(he.CP.border_style);he.BORDER_TOP_LEFT_RADIUS=he.reg(he.CP.border_top_left_radius);he.BORDER_TOP_WIDTH=he.reg(he.CP.border_top_width);he.BOX_SHADOW=he.reg(he.CP.box_shadow);he.CLIP=he.reg(he.CP.clip);he.DISPLAY_INSIDE=he.reg(he.CP.display_inside);he.FONT_SIZE=he.reg(he.CP.font_size);he.LINE_HEIGHT=he.reg(he.CP.line_height);he.MARGIN_LEFT=he.reg(he.CP.margin_left);he.MAX_WIDTH=he.reg(he.CP.max_width);he.OUTLINE_STYLE=he.reg(he.CP.outline_style);he.PADDING_BOTTOM=he.reg(he.CP.padding_bottom);he.PADDING_RIGHT=he.reg(he.CP.padding_right);he.PERSPECTIVE=he.reg(he.CP.perspective);he.RICHNESS=he.reg(he.CP.richness);he.TEXT_OVERFLOW=he.reg(he.CP.text_overflow);he.TOP=he.reg(he.CP.top);he.WIDTH=he.reg(he.CP.width);he.Z_INDEX=he.reg(he.CP.z_index);he.BACKGROUND=he.reg(he.CP.background);he.BACKGROUND_SIZE=he.reg(he.CP.background_size);he.BORDER_BOTTOM_LEFT_RADIUS=he.reg(he.CP.border_bottom_left_radius);he.BORDER_BOTTOM_WIDTH=he.reg(he.CP.border_bottom_width);he.BORDER_LEFT_STYLE=he.reg(he.CP.border_left_style);he.BORDER_RIGHT_STYLE=he.reg(he.CP.border_right_style);he.BORDER_TOP=he.reg(he.CP.border_top);he.BOTTOM=he.reg(he.CP.bottom);he.LIST_STYLE=he.reg(he.CP.list_style);he.MARGIN_TOP=he.reg(he.CP.margin_top);he.OUTLINE=he.reg(he.CP.outline);he.OVERFLOW_Y=he.reg(he.CP.overflow_y);he.PITCH=he.reg(he.CP.pitch);he.VERTICAL_ALIGN=he.reg(he.CP.vertical_align);he.WORD_SPACING=he.reg(he.CP.word_spacing);he.BACKGROUND_IMAGE=he.reg(he.CP.background_image);he.BORDER_BOTTOM_RIGHT_RADIUS=he.reg(he.CP.border_bottom_right_radius);he.BORDER_LEFT_WIDTH=he.reg(he.CP.border_left_width);he.BORDER_RIGHT_WIDTH=he.reg(he.CP.border_right_width);he.LEFT=he.reg(he.CP.left);he.MARGIN_BOTTOM=he.reg(he.CP.margin_bottom);he.PAUSE_AFTER=he.reg(he.CP.pause_after);he.SPEECH_RATE=he.reg(he.CP.speech_rate);he.TRANSITION_DURATION=he.reg(he.CP.transition_duration);he.BORDER_BOTTOM=he.reg(he.CP.border_bottom);he.BORDER_RIGHT=he.reg(he.CP.border_right);he.MARGIN=he.reg(he.CP.margin);he.PADDING_LEFT=he.reg(he.CP.padding_left);he.BORDER_LEFT=he.reg(he.CP.border_left);he.FONT=he.reg(he.CP.font);he.QUOTES=he.reg(he.CP.quotes);he.BORDER_TOP_RIGHT_RADIUS=he.reg(he.CP.border_top_right_radius);he.MIN_WIDTH=he.reg(he.CP.min_width);class ue{constructor(){this._autolink=true;this._allowNamedProperties=false;this._generateOptions=()=>({allowedTags:["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blockquote","br","button","canvas","caption","center","cite","code","col","colgroup","colspan","command","data","datalist","dd","del","details","dfn","dir","div","dl","dt","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","img","input","ins","kbd","label","legend","li","map","mark","menu","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rowspan","s","samp","section","select","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"],allowedAttributes:{"*":["class","dir","draggable","hidden",...this._allowNamedProperties?["id"]:[],"inert","itemprop","itemref","itemscope","lang","spellcheck","style","title","translate"],a:["accesskey","coords","href","hreflang",...this._allowNamedProperties?["name"]:[],"rel","shape","tabindex","target","type"],area:["accesskey","alt","coords","href","nohref","shape","tabindex"],audio:["autoplay","controls","loop","mediagroup","muted","preload","src"],bdo:["dir"],blockquote:["cite"],br:["clear"],button:["accesskey","data-commandlinker-args","data-commandlinker-command","disabled",...this._allowNamedProperties?["name"]:[],"tabindex","type","value"],canvas:["height","width"],caption:["align"],col:["align","char","charoff","span","valign","width"],colgroup:["align","char","charoff","span","valign","width"],command:["checked","command","disabled","icon","label","radiogroup","type"],data:["value"],del:["cite","datetime"],details:["open"],dir:["compact"],div:["align"],dl:["compact"],fieldset:["disabled"],font:["color","face","size"],form:["accept","autocomplete","enctype","method",...this._allowNamedProperties?["name"]:[],"novalidate"],h1:["align"],h2:["align"],h3:["align"],h4:["align"],h5:["align"],h6:["align"],hr:["align","noshade","size","width"],iframe:["align","frameborder","height","marginheight","marginwidth","width"],img:["align","alt","border","height","hspace","ismap",...this._allowNamedProperties?["name"]:[],"src","usemap","vspace","width"],input:["accept","accesskey","align","alt","autocomplete","checked","disabled","inputmode","ismap","list","max","maxlength","min","multiple",...this._allowNamedProperties?["name"]:[],"placeholder","readonly","required","size","src","step","tabindex","type","usemap","value"],ins:["cite","datetime"],label:["accesskey","for"],legend:["accesskey","align"],li:["type","value"],map:this._allowNamedProperties?["name"]:[],menu:["compact","label","type"],meter:["high","low","max","min","value"],ol:["compact","reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for",...this._allowNamedProperties?["name"]:[]],p:["align"],pre:["width"],progress:["max","min","value"],q:["cite"],select:["autocomplete","disabled","multiple",...this._allowNamedProperties?["name"]:[],"required","size","tabindex"],source:["type"],table:["align","bgcolor","border","cellpadding","cellspacing","frame","rules","summary","width"],tbody:["align","char","charoff","valign"],td:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],textarea:["accesskey","autocomplete","cols","disabled","inputmode",...this._allowNamedProperties?["name"]:[],"placeholder","readonly","required","rows","tabindex","wrap"],tfoot:["align","char","charoff","valign"],th:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],thead:["align","char","charoff","valign"],tr:["align","bgcolor","char","charoff","valign"],track:["default","kind","label","srclang"],ul:["compact","type"],video:["autoplay","controls","height","loop","mediagroup","muted","poster","preload","src","width"]},allowedStyles:{"*":{"backface-visibility":[he.BACKFACE_VISIBILITY],background:[he.BACKGROUND],"background-attachment":[he.BACKGROUND_ATTACHMENT],"background-clip":[he.BACKGROUND_CLIP],"background-color":[he.BACKGROUND_COLOR],"background-image":[he.BACKGROUND_IMAGE],"background-origin":[he.BACKGROUND_ORIGIN],"background-position":[he.BACKGROUND_POSITION],"background-repeat":[he.BACKGROUND_REPEAT],"background-size":[he.BACKGROUND_SIZE],border:[he.BORDER],"border-bottom":[he.BORDER_BOTTOM],"border-bottom-color":[he.BORDER_BOTTOM_COLOR],"border-bottom-left-radius":[he.BORDER_BOTTOM_LEFT_RADIUS],"border-bottom-right-radius":[he.BORDER_BOTTOM_RIGHT_RADIUS],"border-bottom-style":[he.BORDER_BOTTOM_STYLE],"border-bottom-width":[he.BORDER_BOTTOM_WIDTH],"border-collapse":[he.BORDER_COLLAPSE],"border-color":[he.BORDER_COLOR],"border-left":[he.BORDER_LEFT],"border-left-color":[he.BORDER_LEFT_COLOR],"border-left-style":[he.BORDER_LEFT_STYLE],"border-left-width":[he.BORDER_LEFT_WIDTH],"border-radius":[he.BORDER_RADIUS],"border-right":[he.BORDER_RIGHT],"border-right-color":[he.BORDER_RIGHT_COLOR],"border-right-style":[he.BORDER_RIGHT_STYLE],"border-right-width":[he.BORDER_RIGHT_WIDTH],"border-spacing":[he.BORDER_SPACING],"border-style":[he.BORDER_STYLE],"border-top":[he.BORDER_TOP],"border-top-color":[he.BORDER_TOP_COLOR],"border-top-left-radius":[he.BORDER_TOP_LEFT_RADIUS],"border-top-right-radius":[he.BORDER_TOP_RIGHT_RADIUS],"border-top-style":[he.BORDER_TOP_STYLE],"border-top-width":[he.BORDER_TOP_WIDTH],"border-width":[he.BORDER_WIDTH],bottom:[he.BOTTOM],box:[he.BOX],"box-shadow":[he.BOX_SHADOW],"box-sizing":[he.BOX_SIZING],"caption-side":[he.CAPTION_SIDE],clear:[he.CLEAR],clip:[he.CLIP],color:[he.COLOR],cursor:[he.CURSOR],direction:[he.DIRECTION],display:[he.DISPLAY],"display-inside":[he.DISPLAY_INSIDE],"display-outside":[he.DISPLAY_OUTSIDE],elevation:[he.ELEVATION],"empty-cells":[he.EMPTY_CELLS],float:[he.FLOAT],font:[he.FONT],"font-family":[he.FONT_FAMILY],"font-size":[he.FONT_SIZE],"font-stretch":[he.FONT_STRETCH],"font-style":[he.FONT_STYLE],"font-variant":[he.FONT_VARIANT],"font-weight":[he.FONT_WEIGHT],height:[he.HEIGHT],left:[he.LEFT],"letter-spacing":[he.LETTER_SPACING],"line-height":[he.LINE_HEIGHT],"list-style":[he.LIST_STYLE],"list-style-image":[he.LIST_STYLE_IMAGE],"list-style-position":[he.LIST_STYLE_POSITION],"list-style-type":[he.LIST_STYLE_TYPE],margin:[he.MARGIN],"margin-bottom":[he.MARGIN_BOTTOM],"margin-left":[he.MARGIN_LEFT],"margin-right":[he.MARGIN_RIGHT],"margin-top":[he.MARGIN_TOP],"max-height":[he.MAX_HEIGHT],"max-width":[he.MAX_WIDTH],"min-height":[he.MIN_HEIGHT],"min-width":[he.MIN_WIDTH],opacity:[he.OPACITY],outline:[he.OUTLINE],"outline-color":[he.OUTLINE_COLOR],"outline-style":[he.OUTLINE_STYLE],"outline-width":[he.OUTLINE_WIDTH],overflow:[he.OVERFLOW],"overflow-wrap":[he.OVERFLOW_WRAP],"overflow-x":[he.OVERFLOW_X],"overflow-y":[he.OVERFLOW_Y],padding:[he.PADDING],"padding-bottom":[he.PADDING_BOTTOM],"padding-left":[he.PADDING_LEFT],"padding-right":[he.PADDING_RIGHT],"padding-top":[he.PADDING_TOP],"page-break-after":[he.PAGE_BREAK_AFTER],"page-break-before":[he.PAGE_BREAK_BEFORE],"page-break-inside":[he.PAGE_BREAK_INSIDE],"pause-after":[he.PAUSE_AFTER],perspective:[he.PERSPECTIVE],pitch:[he.PITCH],"pitch-range":[he.PITCH_RANGE],position:[he.POSITION],quotes:[he.QUOTES],resize:[he.RESIZE],richness:[he.RICHNESS],right:[he.RIGHT],speak:[he.SPEAK],"speak-header":[he.SPEAK_HEADER],"speak-numeral":[he.SPEAK_NUMERAL],"speak-punctuation":[he.SPEAK_PUNCTUATION],"speech-rate":[he.SPEECH_RATE],stress:[he.STRESS],"table-layout":[he.TABLE_LAYOUT],"text-align":[he.TEXT_ALIGN],"text-decoration":[he.TEXT_DECORATION],"text-indent":[he.TEXT_INDENT],"text-overflow":[he.TEXT_OVERFLOW],"text-shadow":[he.TEXT_SHADOW],"text-transform":[he.TEXT_TRANSFORM],"text-wrap":[he.TEXT_WRAP],top:[he.TOP],"unicode-bidi":[he.UNICODE_BIDI],"vertical-align":[he.VERTICAL_ALIGN],visibility:[he.VISIBILITY],volume:[he.VOLUME],"white-space":[he.WHITE_SPACE],width:[he.WIDTH],"word-break":[he.WORD_BREAK],"word-spacing":[he.WORD_SPACING],"word-wrap":[he.WORD_WRAP],"z-index":[he.Z_INDEX],zoom:[he.ZOOM]}},transformTags:{a:ce().simpleTransform("a",{rel:"nofollow"}),input:ce().simpleTransform("input",{disabled:"disabled"})},allowedSchemes:[...ce().defaults.allowedSchemes],allowedSchemesByTag:{img:ce().defaults.allowedSchemes.concat(["attachment"])},allowedSchemesAppliedToAttributes:["href","cite"]});this._options=this._generateOptions()}sanitize(e,t){return ce()(e,{...this._options,...t||{}})}getAutolink(){return this._autolink}setAllowedSchemes(e){this._options.allowedSchemes=[...e]}setAutolink(e){this._autolink=e}setAllowNamedProperties(e){this._allowNamedProperties=e;this._options=this._generateOptions()}}class pe{constructor(){this._commands=new Array}get ids(){return this._commands.map((e=>e.id))}add(e){if(this._commands.map((e=>e.id)).includes(e.id)){throw Error(`Command ${e.id} is already defined.`)}this._commands.push({isEnabled:()=>true,rank:pe.DEFAULT_RANK,...e})}getActiveCommandId(e){var t;const n=this._commands.filter((t=>t.isEnabled(e))).sort(((e,t)=>{const n=e.rank-t.rank;return n||(e.idt.id===e));if(t>=0){this._commands.splice(t,1)}}}pe.DEFAULT_RANK=500;pe.WIDGET="semanticWidget";var me=n(90044);const ge=75;const fe=20;class ve{constructor(e){this._current=null;this._links=[];this._overrides={};this._overrideProps={};this._outstanding=null;this._pending=0;this._requests={};this._themes={};this._themeChanged=new h.Signal(this);const{host:t,key:n,splash:i,url:o}=e;this.translator=e.translator||s.nullTranslator;this._trans=this.translator.load("jupyterlab");const r=e.settings;this._base=o;this._host=t;this._splash=i||null;void r.load(n).then((e=>{this._settings=e;this._initOverrideProps();this._settings.changed.connect(this._loadSettings,this);this._loadSettings()}))}get theme(){return this._current}get preferredLightTheme(){return this._settings.composite["preferred-light-theme"]}get preferredDarkTheme(){return this._settings.composite["preferred-dark-theme"]}get preferredTheme(){if(!this.isToggledAdaptiveTheme()){return this.theme}if(this.isSystemColorSchemeDark()){return this.preferredDarkTheme}return this.preferredLightTheme}get themes(){return Object.keys(this._themes)}get lightThemes(){return Object.entries(this._themes).filter((([e,t])=>t.isLight)).map((([e,t])=>e))}get darkThemes(){return Object.entries(this._themes).filter((([e,t])=>!t.isLight)).map((([e,t])=>e))}get themeChanged(){return this._themeChanged}isSystemColorSchemeDark(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}getCSS(e){var t;return(t=this._overrides[e])!==null&&t!==void 0?t:getComputedStyle(document.documentElement).getPropertyValue(`--jp-${e}`)}loadCSS(e){const t=this._base;const n=l.URLExt.isLocal(e)?l.URLExt.join(t,e):e;const i=this._links;return new Promise(((e,t)=>{const s=document.createElement("link");s.setAttribute("rel","stylesheet");s.setAttribute("type","text/css");s.setAttribute("href",n);s.addEventListener("load",(()=>{e(undefined)}));s.addEventListener("error",(()=>{t(`Stylesheet failed to load: ${n}`)}));document.body.appendChild(s);i.push(s);this.loadCSSOverrides()}))}loadCSSOverrides(){var e;const t=(e=this._settings.user["overrides"])!==null&&e!==void 0?e:{};Object.keys({...this._overrides,...t}).forEach((e=>{const n=t[e];if(n&&this.validateCSS(e,n)){document.documentElement.style.setProperty(`--jp-${e}`,n)}else{delete t[e];document.documentElement.style.removeProperty(`--jp-${e}`)}}));this._overrides=t}validateCSS(e,t){const n=this._overrideProps[e];if(!n){console.warn("CSS validation failed: could not find property corresponding to key.\n"+`key: '${e}', val: '${t}'`);return false}if(CSS.supports(n,t)){return true}else{console.warn("CSS validation failed: invalid value.\n"+`key: '${e}', val: '${t}', prop: '${n}'`);return false}}register(e){const{name:t}=e;const n=this._themes;if(n[t]){throw new Error(`Theme already registered for ${t}`)}n[t]=e;return new me.DisposableDelegate((()=>{delete n[t]}))}setCSSOverride(e,t){return this._settings.set("overrides",{...this._overrides,[e]:t})}setTheme(e){return this._settings.set("theme",e)}setPreferredLightTheme(e){return this._settings.set("preferred-light-theme",e)}setPreferredDarkTheme(e){return this._settings.set("preferred-dark-theme",e)}isLight(e){return this._themes[e].isLight}incrFontSize(e){return this._incrFontSize(e,true)}decrFontSize(e){return this._incrFontSize(e,false)}themeScrollbars(e){return!!this._settings.composite["theme-scrollbars"]&&!!this._themes[e].themeScrollbars}isToggledThemeScrollbars(){return!!this._settings.composite["theme-scrollbars"]}toggleThemeScrollbars(){return this._settings.set("theme-scrollbars",!this._settings.composite["theme-scrollbars"])}isToggledAdaptiveTheme(){return!!this._settings.composite["adaptive-theme"]}toggleAdaptiveTheme(){return this._settings.set("adaptive-theme",!this._settings.composite["adaptive-theme"])}getDisplayName(e){var t,n;return(n=(t=this._themes[e])===null||t===void 0?void 0:t.displayName)!==null&&n!==void 0?n:e}_incrFontSize(e,t=true){var n;const i=((n=this.getCSS(e))!==null&&n!==void 0?n:"13px").split(/([a-zA-Z]+)/);const s=(t?1:-1)*(i[1]==="em"?.1:1);return this.setCSSOverride(e,`${Number(i[0])+s}${i[1]}`)}_initOverrideProps(){const e=this._settings.schema.definitions;const t=e.cssOverrides.properties;Object.keys(t).forEach((e=>{let n;switch(e){case"code-font-size":case"content-font-size1":case"ui-font-size1":n="font-size";break;default:n=t[e].description;break}this._overrideProps[e]=n}))}_loadSettings(){const e=this._outstanding;const t=this._pending;const n=this._requests;if(t){window.clearTimeout(t);this._pending=0}const i=this._settings;const s=this._themes;let o=i.composite["theme"];if(this.isToggledAdaptiveTheme()){if(this.isSystemColorSchemeDark()){o=this.preferredDarkTheme}else{o=this.preferredLightTheme}}if(e){e.then((()=>{this._loadSettings()})).catch((()=>{this._loadSettings()}));this._outstanding=null;return}n[o]=n[o]?n[o]+1:1;if(s[o]){this._outstanding=this._loadTheme(o);delete n[o];return}if(n[o]>fe){const e=i.default("theme");delete n[o];if(!s[e]){this._onError(this._trans.__("Neither theme %1 nor default %2 loaded.",o,e));return}console.warn(`Could not load theme ${o}, using default ${e}.`);this._outstanding=this._loadTheme(e);return}this._pending=window.setTimeout((()=>{this._loadSettings()}),ge)}_loadTheme(e){var t;const n=this._current;const i=this._links;const s=this._themes;const o=this._splash?this._splash.show(s[e].isLight):new me.DisposableDelegate((()=>undefined));i.forEach((e=>{if(e.parentElement){e.parentElement.removeChild(e)}}));i.length=0;const r=(t=this._settings.schema.properties)===null||t===void 0?void 0:t.theme;if(r){r.enum=Object.keys(s).map((e=>{var t;return(t=s[e].displayName)!==null&&t!==void 0?t:e}))}const a=n?s[n].unload():Promise.resolve();return Promise.all([a,s[e].load()]).then((()=>{this._current=e;this._themeChanged.emit({name:"theme",oldValue:n,newValue:e});this._host.hide();requestAnimationFrame((()=>{this._host.show();_e.fitAll(this._host);o.dispose()}))})).catch((e=>{this._onError(e);o.dispose()}))}_onError(e){void g({title:this._trans.__("Error Loading Theme"),body:String(e),buttons:[v.okButton({label:this._trans.__("OK")})]})}}var _e;(function(e){function t(e){for(const n of e.children()){t(n)}e.fit()}e.fitAll=t})(_e||(_e={}));const be=new c.Token("@jupyterlab/apputils:ICommandPalette",`A service for the application command palette\n in the left panel. Use this to add commands to the palette.`);const ye=new c.Token("@jupyterlab/apputils:IKernelStatusModel","A service to register kernel session provider to the kernel status indicator.");const we=new c.Token("@jupyterlab/apputils:ILicensesClient","A service for fetching licenses.");const Ce=new c.Token("@jupyterlab/apputils:ISessionContextDialogs","A service for handling the session dialogs.");const xe=new c.Token("@jupyterlab/apputils:IThemeManager","A service for the theme manager for the application. This is used primarily in theme extensions to register new themes.");const Se=new c.Token("@jupyterlab/apputils:ISanitizer","A service for sanitizing HTML strings.");const ke=new c.Token("@jupyterlab/apputils:ISplashScreen",`A service for the splash screen for the application.\n Use this if you want to show the splash screen for your own purposes.`);const je=new c.Token("@jupyterlab/apputils:IWindowResolver",`A service for a window resolver for the\n application. JupyterLab workspaces are given a name, which are determined using\n the window resolver. Require this if you want to use the name of the current workspace.`);const Ie=new c.Token("@jupyterlab/apputils:IToolbarWidgetRegistry",`A registry for toolbar widgets. Require this\n if you want to build the toolbar dynamically from a data definition (stored in settings for example).`);class Ee{constructor(e){this._widgets=new Map;this._factoryAdded=new h.Signal(this);this._defaultFactory=e.defaultFactory}get defaultFactory(){return this._defaultFactory}set defaultFactory(e){this._defaultFactory=e}get factoryAdded(){return this._factoryAdded}createWidget(e,t,n){var i;const s=(i=this._widgets.get(e))===null||i===void 0?void 0:i.get(n.name);return s?s(t):this._defaultFactory(e,t,n)}addFactory(e,t,n){let i=this._widgets.get(e);const s=i===null||i===void 0?void 0:i.get(t);if(!i){i=new Map;this._widgets.set(e,i)}i.set(t,n);this._factoryAdded.emit(t);return s}registerFactory(e,t,n){return this.addFactory(e,t,n)}}function Te(e){return(t,n,s)=>{var r,a;switch((r=s.type)!==null&&r!==void 0?r:"command"){case"command":{const{command:t,args:o,label:r,caption:l,icon:d}=s;const c=t!==null&&t!==void 0?t:"";const h={toolbar:true,...o};const u=d?i.LabIcon.resolve({icon:d}):undefined;const p=n.toolbar;const m=(u!==null&&u!==void 0?u:e.icon(c,h))?r!==null&&r!==void 0?r:"":r;return new i.CommandToolbarButton({commands:e,id:c,args:h,icon:u,label:m,caption:l,noFocusOnClick:(a=p===null||p===void 0?void 0:p.noFocusOnClick)!==null&&a!==void 0?a:false})}case"spacer":return i.Toolbar.createSpacerItem();default:return new o.Widget}}}var Me=n(44336);var De=n(84739);const Ae=50;const Pe="jupyter.lab.toolbars";async function Le(e){const t=await g({title:e.__("Information"),body:e.__("Toolbar customization has changed. You will need to reload JupyterLab to see the changes."),buttons:[v.cancelButton(),v.okButton({label:e.__("Reload")})]});if(t.button.accept){location.reload()}}async function Re(e,t,n,i,s,o="toolbar"){var r;const a=s.load("jupyterlab");let l=null;let d={};let h=true;try{function g(e){var s,r;d={};const a=Object.keys(t.plugins).filter((e=>e!==i)).map((e=>{var i,s;const o=(s=((i=t.plugins[e].schema[Pe])!==null&&i!==void 0?i:{})[n])!==null&&s!==void 0?s:[];d[e]=o;return o})).concat([(r=((s=e[Pe])!==null&&s!==void 0?s:{})[n])!==null&&r!==void 0?r:[]]).reduceRight(((e,t)=>De.SettingRegistry.reconcileToolbarItems(e,t,true)),[]);e.properties[o].default=De.SettingRegistry.reconcileToolbarItems(a,e.properties[o].default,true).sort(((e,t)=>{var n,i;return((n=e.rank)!==null&&n!==void 0?n:Ae)-((i=t.rank)!==null&&i!==void 0?i:Ae)}))}t.transform(i,{compose:e=>{var t,n,i,s,r;if(!l){l=c.JSONExt.deepCopy(e.schema);g(l)}const a=(i=((n=((t=l.properties)!==null&&t!==void 0?t:{})[o])!==null&&n!==void 0?n:{}).default)!==null&&i!==void 0?i:[];const d=e.data.user;const h=e.data.composite;d[o]=(s=e.data.user[o])!==null&&s!==void 0?s:[];h[o]=((r=De.SettingRegistry.reconcileToolbarItems(a,d[o],false))!==null&&r!==void 0?r:[]).sort(((e,t)=>{var n,i;return((n=e.rank)!==null&&n!==void 0?n:Ae)-((i=t.rank)!==null&&i!==void 0?i:Ae)}));e.data={composite:h,user:d};return e},fetch:e=>{if(!l){l=c.JSONExt.deepCopy(e.schema);g(l)}return{data:e.data,id:e.id,raw:e.raw,schema:l,version:e.version}}})}catch(m){if(m.name==="TransformError"){h=false}else{throw m}}const u=await t.load(i);u.changed.connect((()=>{var e;const t=(e=u.composite[o])!==null&&e!==void 0?e:[];p(t)}));const p=t=>{e.clear();e.pushAll(t.filter((e=>!e.disabled)))};p((r=u.composite[o])!==null&&r!==void 0?r:[]);if(!h){return}t.pluginChanged.connect((async(e,s)=>{var o,r,h;if(s===i){return}const u=(o=d[s])!==null&&o!==void 0?o:[];const p=(h=((r=t.plugins[s].schema[Pe])!==null&&r!==void 0?r:{})[n])!==null&&h!==void 0?h:[];if(!c.JSONExt.deepEqual(u,p)){if(d[s]){await Le(a)}else{if(p.length>0){l=null;const e=t.plugins[i].schema;e.properties.toolbar.default=[];await t.load(i,true)}}}}))}function Ne(e,t,n,i,s,o="toolbar"){const r=new Me.ObservableList({itemCmp:(e,t)=>c.JSONExt.deepEqual(e,t)});Re(r,t,n,i,s,o).catch((e=>{console.error(`Failed to load toolbar items for factory ${n} from ${i}`,e)}));return t=>{const i=(i,s)=>{switch(s.type){case"move":o.move(s.oldIndex,s.newIndex);break;case"add":s.newValues.forEach((i=>o.push({name:i.name,widget:e.createWidget(n,t,i)})));break;case"remove":s.oldValues.forEach((()=>o.remove(s.oldIndex)));break;case"set":s.newValues.forEach((i=>o.set(s.newIndex,{name:i.name,widget:e.createWidget(n,t,i)})));break}};const s=(i,s)=>{const a=Array.from(r).findIndex((e=>e.name===s));if(a>=0){o.set(a,{name:s,widget:e.createWidget(n,t,r.get(a))})}};const o=new Me.ObservableList({values:Array.from(r).map((i=>({name:i.name,widget:e.createWidget(n,t,i)})))});e.factoryAdded.connect(s);r.changed.connect(i);t.disposed.connect((()=>{r.changed.disconnect(i);e.factoryAdded.disconnect(s)}));return o}}function Oe(e,t,n){var i;if(!e.toolbar&&!n){console.log(`Widget ${e.id} has no 'toolbar' and no explicit toolbar was provided.`);return}const s=(i=e.toolbar)!==null&&i!==void 0?i:n;const o=t(e);if(Array.isArray(o)){o.forEach((({name:e,widget:t})=>{s.addItem(e,t)}))}else{const t=(e,t)=>{switch(t.type){case"add":t.newValues.forEach(((e,n)=>{s.insertItem(t.newIndex+n,e.name,e.widget)}));break;case"move":t.oldValues.forEach((e=>{e.widget.parent=null}));t.newValues.forEach(((e,n)=>{s.insertItem(t.newIndex+n,e.name,e.widget)}));break;case"remove":t.oldValues.forEach((e=>{e.widget.parent=null}));break;case"set":t.oldValues.forEach((e=>{e.widget.parent=null}));t.newValues.forEach(((e,n)=>{const i=(0,d.findIndex)(s.names(),(t=>e.name===t));if(i>=0){Array.from(s.children())[i].parent=null}s.insertItem(t.newIndex+n,e.name,e.widget)}));break}};t(o,{newIndex:0,newValues:Array.from(o),oldIndex:0,oldValues:[],type:"add"});o.changed.connect(t);e.disposed.connect((()=>{o.changed.disconnect(t)}))}}class Be{get name(){return this._name}resolve(e){return Fe.resolve(e).then((e=>{this._name=e}))}}var Fe;(function(e){const t="@jupyterlab/statedb:StateDB";const n=`${t}:beacon`;const i=Math.floor(200+Math.random()*300);const s=`${t}:window`;let o=null;let r=null;const a=new c.PromiseDelegate;const l={};let d=null;let h=false;function u(){window.addEventListener("storage",(e=>{const{key:t,newValue:i}=e;if(i===null){return}if(t===n&&i!==o&&r!==null){p(h?d:r);return}if(h||t!==s){return}const a=i.replace(/\-\d+$/,"");l[a]=null;if(!r||r in l){m()}}))}function p(e){if(e===null){return}const{localStorage:t}=window;t.setItem(s,`${e}-${(new Date).getTime()}`)}function m(){h=true;o=null;a.reject(`Window name candidate "${r}" already exists`)}function g(e){if(h){return a.promise}r=e;if(r in l){m();return a.promise}const{localStorage:t,setTimeout:s}=window;s((()=>{if(h){return}if(!r||r in l){return m()}h=true;o=null;a.resolve(d=r);p(d)}),i);o=`${Math.random()}-${(new Date).getTime()}`;t.setItem(n,o);return a.promise}e.resolve=g;(()=>{u()})()})(Fe||(Fe={}));class ze extends i.Toolbar{}(function(e){e.createInterruptButton=E.createInterruptButton;e.createKernelNameItem=E.createKernelNameItem;e.createKernelStatusItem=E.createKernelStatusItem;e.createRestartButton=E.createRestartButton;e.createSpacerItem=i.Toolbar.createSpacerItem})(ze||(ze={}))},97913:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(41510);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},39721:(e,t,n)=>{"use strict";n.r(t);n.d(t,{AttachmentsModel:()=>r,AttachmentsResolver:()=>a});var i=n(44336);var s=n(44539);var o=n(2336);class r{constructor(e){var t;this._map=new i.ObservableMap;this._isDisposed=false;this._stateChanged=new o.Signal(this);this._changed=new o.Signal(this);this._serialized=null;this._changeGuard=false;this.contentFactory=(t=e.contentFactory)!==null&&t!==void 0?t:r.defaultContentFactory;if(e.values){for(const t of Object.keys(e.values)){if(e.values[t]!==undefined){this.set(t,e.values[t])}}}this._map.changed.connect(this._onMapChanged,this)}get stateChanged(){return this._stateChanged}get changed(){return this._changed}get keys(){return this._map.keys()}get length(){return this._map.keys().length}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;this._map.dispose();o.Signal.clearData(this)}has(e){return this._map.has(e)}get(e){return this._map.get(e)}set(e,t){const n=this._createItem({value:t});this._map.set(e,n)}remove(e){this._map.delete(e)}clear(){this._map.values().forEach((e=>{e.dispose()}));this._map.clear()}fromJSON(e){this.clear();Object.keys(e).forEach((t=>{if(e[t]!==undefined){this.set(t,e[t])}}))}toJSON(){const e={};for(const t of this._map.keys()){e[t]=this._map.get(t).toJSON()}return e}_createItem(e){const t=this.contentFactory;const n=t.createAttachmentModel(e);n.changed.connect(this._onGenericChange,this);return n}_onMapChanged(e,t){if(this._serialized&&!this._changeGuard){this._changeGuard=true;this._serialized.set(this.toJSON());this._changeGuard=false}this._changed.emit(t);this._stateChanged.emit(void 0)}_onGenericChange(){this._stateChanged.emit(void 0)}}(function(e){class t{createAttachmentModel(e){return new s.AttachmentModel(e)}}e.ContentFactory=t;e.defaultContentFactory=new t})(r||(r={}));class a{constructor(e){this._parent=e.parent||null;this._model=e.model}async resolveUrl(e){if(this._parent&&!e.startsWith("attachment:")){return this._parent.resolveUrl(e)}return e}async getDownloadUrl(e){if(this._parent&&!e.startsWith("attachment:")){return this._parent.getDownloadUrl(e)}const t=e.slice("attachment:".length);const n=this._model.get(t);if(n===undefined){return e}const{data:i}=n;const o=Object.keys(i)[0];if(o===undefined||s.imageRendererFactory.mimeTypes.indexOf(o)===-1){throw new Error(`Cannot render unknown image mime type "${o}".`)}const r=`data:${o};base64,${i[o]}`;return r}isLocal(e){var t,n,i;if(this._parent&&!e.startsWith("attachment:")){return(i=(n=(t=this._parent).isLocal)===null||n===void 0?void 0:n.call(t,e))!==null&&i!==void 0?i:true}return true}}},39470:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>p});var i=n(84739);var s=n.n(i);var o=n(84823);var r=n.n(o);var a=n(14366);var l=n.n(a);var d=n(30619);var c=n.n(d);const h="@jupyterlab/cell-toolbar-extension:plugin";const u={id:h,description:"Add the cells toolbar.",autoStart:true,activate:async(e,t,n,i)=>{function s(e){const t=e===null?true:e.get("showToolbar").composite;l.enabled=t}const r=t&&n?(0,a.createToolbarFactory)(n,t,o.CellBarExtension.FACTORY_NAME,u.id,i!==null&&i!==void 0?i:d.nullTranslator):undefined;const l=new o.CellBarExtension(e.commands,r);if(t!==null){void Promise.all([e.restored,t.load(h)]).then((([,e])=>{s(e);e.changed.connect(s)}))}e.docRegistry.addWidgetExtension("Notebook",l)},optional:[i.ISettingRegistry,a.IToolbarWidgetRegistry,d.ITranslator]};const p=u},56104:(e,t,n)=>{"use strict";var i=n(97913);var s=n(3579);var o=n(10395);var r=n(40662);var a=n(79010);var l=n(53377);var d=n(28006);var c=n(85072);var h=n.n(c);var u=n(97825);var p=n.n(u);var m=n(77659);var g=n.n(m);var f=n(55056);var v=n.n(f);var _=n(10540);var b=n.n(_);var y=n(41113);var w=n.n(y);var C=n(31772);var x={};x.styleTagTransform=w();x.setAttributes=v();x.insert=g().bind(null,"head");x.domAPI=p();x.insertStyleElement=b();var S=h()(C.A,x);const k=C.A&&C.A.locals?C.A.locals:undefined},23168:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CellBarExtension:()=>g,CellToolbarTracker:()=>p});var i=n(14366);var s=n(44336);var o=n(26331);var r=n(34236);var a=n(2336);var l=n(30619);const d=["text/plain","application/vnd.jupyter.stdout","application/vnd.jupyter.stderr"];const c="jp-cell-toolbar";const h="jp-cell-menu";const u="jp-toolbar-overlap";class p{constructor(e,t,n,i){this._isDisposed=false;this._toolbar=null;this._toolbarItems=null;this._toolbarFactory=null;this._panel=e;this._previousActiveCell=this._panel.content.activeCell;this._toolbarItems=t!==null&&t!==void 0?t:null;this._toolbarFactory=n!==null&&n!==void 0?n:null;this._enabled=true;this._trans=(i!==null&&i!==void 0?i:l.nullTranslator).load("jupyterlab");if(this._toolbarItems===null&&this._toolbarFactory===null){throw Error("You must provide the toolbarFactory or the toolbar items.")}if(!this._toolbarFactory&&this._toolbarItems){this._onToolbarChanged();this._toolbarItems.changed.connect(this._onToolbarChanged,this)}void e.revealed.then((()=>{requestAnimationFrame((()=>{const t=e.content;this._onActiveCellChanged(t);t.activeCellChanged.connect(this._onActiveCellChanged,this);t.renderingLayoutChanged.connect(this._onActiveCellChanged,this);t.disposed.connect((()=>{t.activeCellChanged.disconnect(this._onActiveCellChanged)}))}))}))}_onMetadataChanged(e,t){if(t.key==="jupyter"){if(typeof t.newValue==="object"&&t.newValue.source_hidden===true&&(t.type==="add"||t.type==="change")){this._removeToolbar(e)}else if(typeof t.oldValue==="object"&&t.oldValue.source_hidden===true){this._addToolbar(e)}}}_onActiveCellChanged(e){if(this._previousActiveCell&&!this._previousActiveCell.isDisposed){this._removeToolbar(this._previousActiveCell.model);this._previousActiveCell.model.metadataChanged.disconnect(this._onMetadataChanged)}const t=e.activeCell;this._previousActiveCell=t;if(t===null||t.inputHidden){return}t.model.metadataChanged.connect(this._onMetadataChanged,this);this._addToolbar(t.model)}get isDisposed(){return this._isDisposed}get enabled(){return this._enabled}set enabled(e){this._enabled=e;this._onToolbarChanged()}dispose(){var e,t;if(this.isDisposed){return}this._isDisposed=true;(e=this._toolbarItems)===null||e===void 0?void 0:e.changed.disconnect(this._onToolbarChanged,this);(t=this._toolbar)===null||t===void 0?void 0:t.dispose();this._panel=null;a.Signal.clearData(this)}_addToolbar(e){if(!this.enabled){return}const t=this._getCell(e);if(t&&!t.isDisposed){const e=this._toolbar=new o.Toolbar;e.addClass(h);e.addClass(c);e.node.setAttribute("aria-label",this._trans.__("Cell toolbar"));const n=[t.ready];if(this._toolbarFactory){(0,i.setToolbar)(t,this._toolbarFactory,e);e.layout.widgets.forEach((e=>{e.update()}))}else{for(const{name:t,widget:i}of this._toolbarItems){e.addItem(t,i);if(i instanceof o.ReactWidget&&i.renderPromise!==undefined){i.update();n.push(i.renderPromise)}}}n.push(t.ready);Promise.all(n).then((()=>{var n;if(t.isDisposed||((n=this._panel)===null||n===void 0?void 0:n.content.activeCell)!==t){e.dispose();return}t.node.classList.add(u);t.inputArea.layout.insertWidget(0,e);t.displayChanged.connect(this._resizeEventCallback,this);t.model.contentChanged.connect(this._changedEventCallback,this);this._updateCellForToolbarOverlap(t)})).catch((e=>{console.error("Error rendering buttons of the cell toolbar: ",e)}))}}_getCell(e){var t;return(t=this._panel)===null||t===void 0?void 0:t.content.widgets.find((t=>t.model===e))}_removeToolbar(e){var t,n;const i=this._getCell(e);if(i&&!i.isDisposed){i.displayChanged.disconnect(this._resizeEventCallback,this)}e.contentChanged.disconnect(this._changedEventCallback,this);if(((t=this._toolbar)===null||t===void 0?void 0:t.parent)===(i===null||i===void 0?void 0:i.inputArea)&&((n=this._toolbar)===null||n===void 0?void 0:n.isDisposed)===false){this._toolbar.dispose()}}_onToolbarChanged(){var e;const t=(e=this._panel)===null||e===void 0?void 0:e.content.activeCell;if(t){this._removeToolbar(t.model);this._addToolbar(t.model)}}_changedEventCallback(){var e;const t=(e=this._panel)===null||e===void 0?void 0:e.content.activeCell;if(t===null||t===undefined){return}this._updateCellForToolbarOverlap(t)}_resizeEventCallback(){var e;const t=(e=this._panel)===null||e===void 0?void 0:e.content.activeCell;if(t===null||t===undefined){return}this._updateCellForToolbarOverlap(t)}_updateCellForToolbarOverlap(e){requestIdleCallback((()=>{const t=e.node;t.classList.remove(u);if(this._cellToolbarOverlapsContents(e)){t.classList.add(u)}}))}_cellToolbarOverlapsContents(e){var t,n,i,s;if(!e.model){return false}const o=e.model.type;const r=(t=e.editorWidget)===null||t===void 0?void 0:t.node.getBoundingClientRect();const a=(n=r===null||r===void 0?void 0:r.left)!==null&&n!==void 0?n:0;const l=(i=r===null||r===void 0?void 0:r.right)!==null&&i!==void 0?i:0;const d=this._cellToolbarLeft(e);if(d===null){return false}if((a+l)/2>d){return true}if(o==="markdown"&&e.rendered){return this._markdownOverlapsToolbar(e)}if(((s=this._panel)===null||s===void 0?void 0:s.content.renderingLayout)==="default"){return this._codeOverlapsToolbar(e)}else{return this._outputOverlapsToolbar(e)}}_markdownOverlapsToolbar(e){const t=e.inputArea;if(!t){return false}const n=t.renderedInput;const i=n.node;const s=i.firstElementChild;if(s===null){return false}const o=s.style.maxWidth;s.style.maxWidth="max-content";const r=s.getBoundingClientRect().right;s.style.maxWidth=o;const a=this._cellToolbarLeft(e);return a===null?false:r>a}_outputOverlapsToolbar(e){const t=e.outputArea.node;if(t){const n=t.querySelectorAll("[data-mime-type]");const i=this._cellToolbarRect(e);if(i){const{left:e,bottom:t}=i;return(0,r.some)(n,(n=>{const i=n.firstElementChild;if(i){const s=new Range;if(d.includes(n.getAttribute("data-mime-type")||"")){s.selectNodeContents(i)}else{s.selectNode(i)}const{right:o,top:r}=s.getBoundingClientRect();return o>e&&rr}_cellToolbarRect(e){var t;if(((t=this._toolbar)===null||t===void 0?void 0:t.parent)!==e.inputArea){return null}const n=this._toolbar.node;return n.getBoundingClientRect()}_cellToolbarLeft(e){var t;return((t=this._cellToolbarRect(e))===null||t===void 0?void 0:t.left)||null}}const m=[{command:"notebook:duplicate-below",name:"duplicate-cell"},{command:"notebook:move-cell-up",name:"move-cell-up"},{command:"notebook:move-cell-down",name:"move-cell-down"},{command:"notebook:insert-cell-above",name:"insert-cell-above"},{command:"notebook:insert-cell-below",name:"insert-cell-below"},{command:"notebook:delete-cell",name:"delete-cell"}];class g{constructor(e,t){this._commands=e;this._toolbarFactory=t!==null&&t!==void 0?t:this.defaultToolbarFactory}get defaultToolbarFactory(){const e=(0,i.createDefaultFactory)(this._commands);return t=>new s.ObservableList({values:m.map((n=>({name:n.name,widget:e(g.FACTORY_NAME,t,n)})))})}createNew(e){return this._tracker=new p(e,undefined,this._toolbarFactory)}get enabled(){return this._tracker.enabled}set enabled(e){if(this._tracker){this._tracker.enabled=e}}}g.FACTORY_NAME="Cell"},30531:(e,t,n)=>{"use strict";n.r(t);n.d(t,{AttachmentsCell:()=>$e,AttachmentsCellModel:()=>W,Cell:()=>Ve,CellDragUtils:()=>c,CellFooter:()=>k,CellHeader:()=>S,CellModel:()=>H,CellSearchProvider:()=>re,CodeCell:()=>qe,CodeCellLayout:()=>Ue,CodeCellModel:()=>q,Collapser:()=>_,InputArea:()=>D,InputCollapser:()=>b,InputPlaceholder:()=>ee,InputPrompt:()=>A,MarkdownCell:()=>Ke,MarkdownCellModel:()=>U,OutputCollapser:()=>y,OutputPlaceholder:()=>te,Placeholder:()=>Z,RawCell:()=>Je,RawCellModel:()=>V,SELECTED_HIGHLIGHT_CLASS:()=>oe,createCellSearchProvider:()=>de,isCodeCellModel:()=>B,isMarkdownCellModel:()=>F,isRawCellModel:()=>z});var i=n(97290);const s=5;const o="jp-dragImage";const r="jp-dragImage-singlePrompt";const a="jp-dragImage-content";const l="jp-dragImage-prompt";const d="jp-dragImage-multipleBack";var c;(function(e){function t(e,t,n){let i=-1;while(e&&e.parentElement){if(n(e)){let n=-1;for(const s of t){if(s.node===e){i=++n;break}}break}e=e.parentElement}return i}e.findCell=t;function n(e,t){var n,i;let s;if(e){if((n=e.editorWidget)===null||n===void 0?void 0:n.node.contains(t)){s="input"}else if((i=e.promptNode)===null||i===void 0?void 0:i.contains(t)){s="prompt"}else{s="cell"}}else{s="unknown"}return s}e.detectTargetArea=n;function c(e,t,n,i){const o=Math.abs(n-e);const r=Math.abs(i-t);return o>=s||r>=s}e.shouldStartDrag=c;function h(e,t){const n=t.length;let s;if(e.model.type==="code"){const t=e.model.executionCount;s=" ";if(t){s=t.toString()}}else{s=""}const c=e.model.sharedModel.getSource().split("\n")[0].slice(0,26);if(n>1){if(s!==""){return i.VirtualDOM.realize(i.h.div(i.h.div({className:o},i.h.span({className:l},"["+s+"]:"),i.h.span({className:a},c)),i.h.div({className:d},"")))}else{return i.VirtualDOM.realize(i.h.div(i.h.div({className:o},i.h.span({className:l}),i.h.span({className:a},c)),i.h.div({className:d},"")))}}else{if(s!==""){return i.VirtualDOM.realize(i.h.div(i.h.div({className:`${o} ${r}`},i.h.span({className:l},"["+s+"]:"),i.h.span({className:a},c))))}else{return i.VirtualDOM.realize(i.h.div(i.h.div({className:`${o} ${r}`},i.h.span({className:l}),i.h.span({className:a},c))))}}}e.createCellDragImage=h})(c||(c={}));var h=n(26331);var u=n(76326);var p=n(44914);const m="jp-Collapser";const g="jp-Collapser-child";const f="jp-InputCollapser";const v="jp-OutputCollapser";class _ extends h.ReactWidget{constructor(){super();this.addClass(m)}get collapsed(){return false}render(){const e=g;return p.createElement("div",{className:e,onClick:e=>this.handleClick(e)})}}class b extends _{constructor(){super();this.addClass(f)}get collapsed(){var e;const t=(e=this.parent)===null||e===void 0?void 0:e.parent;if(t){return t.inputHidden}else{return false}}handleClick(e){var t;const n=(t=this.parent)===null||t===void 0?void 0:t.parent;if(n){n.inputHidden=!n.inputHidden}this.update()}}class y extends _{constructor(){super();this.addClass(v)}get collapsed(){var e;const t=(e=this.parent)===null||e===void 0?void 0:e.parent;if(t){return t.outputHidden}else{return false}}handleClick(e){var t,n;const i=(t=this.parent)===null||t===void 0?void 0:t.parent;if(i){i.outputHidden=!i.outputHidden;if(i.outputHidden){let e=(n=i.parent)===null||n===void 0?void 0:n.node;if(e){u.ElementExt.scrollIntoViewIfNeeded(e,i.node)}}}this.update()}}var w=n(1143);const C="jp-CellHeader";const x="jp-CellFooter";class S extends w.Widget{constructor(){super();this.addClass(C)}}class k extends w.Widget{constructor(){super();this.addClass(x)}}var j=n(54723);const I="jp-InputArea";const E="jp-InputArea-prompt";const T="jp-InputPrompt";const M="jp-InputArea-editor";class D extends w.Widget{constructor(e){super();this.addClass(I);const{contentFactory:t,editorOptions:n,model:i}=e;this.model=i;this.contentFactory=t;const s=this._prompt=t.createInputPrompt();s.addClass(E);const o=this._editor=new j.CodeEditorWrapper({factory:t.editorFactory,model:i,editorOptions:n});o.addClass(M);const r=this.layout=new w.PanelLayout;r.addWidget(s);r.addWidget(o)}get editorWidget(){return this._editor}get editor(){return this._editor.editor}get promptNode(){return this._prompt.node}get renderedInput(){return this._rendered}renderInput(e){const t=this.layout;if(this._rendered){this._rendered.parent=null}this._editor.hide();this._rendered=e;t.addWidget(e)}showEditor(){if(this._rendered){this._rendered.parent=null}this._editor.show()}setPrompt(e){this._prompt.executionCount=e}dispose(){if(this.isDisposed){return}this._prompt=null;this._editor=null;this._rendered=null;super.dispose()}}(function(e){class t{constructor(e){this._editor=e.editorFactory}get editorFactory(){return this._editor}createInputPrompt(){return new A}}e.ContentFactory=t})(D||(D={}));class A extends w.Widget{constructor(){super();this._executionCount=null;this.addClass(T)}get executionCount(){return this._executionCount}set executionCount(e){this._executionCount=e;if(e===null){this.node.textContent=" "}else{this.node.textContent=`[${e||" "}]:`}}}var P=n(2336);var L=n(18815);var R=n(94493);var N=n(95917);const O=(0,N.createMutex)();function B(e){return e.type==="code"}function F(e){return e.type==="markdown"}function z(e){return e.type==="raw"}class H extends j.CodeEditor.Model{constructor(e={}){const{cell_type:t,sharedModel:n,...i}=e;super({sharedModel:n!==null&&n!==void 0?n:(0,N.createStandaloneCell)({cell_type:t!==null&&t!==void 0?t:"raw",id:e.id}),...i});this.contentChanged=new P.Signal(this);this.stateChanged=new P.Signal(this);this._metadataChanged=new P.Signal(this);this._trusted=false;this.standaloneModel=typeof e.sharedModel==="undefined";this.trusted=!!this.getMetadata("trusted")||!!e.trusted;this.sharedModel.changed.connect(this.onGenericChange,this);this.sharedModel.metadataChanged.connect(this._onMetadataChanged,this)}get metadataChanged(){return this._metadataChanged}get id(){return this.sharedModel.getId()}get metadata(){return this.sharedModel.metadata}get trusted(){return this._trusted}set trusted(e){const t=this.trusted;if(t!==e){this._trusted=e;this.onTrustedChanged(this,{newValue:e,oldValue:t})}}dispose(){if(this.isDisposed){return}this.sharedModel.changed.disconnect(this.onGenericChange,this);this.sharedModel.metadataChanged.disconnect(this._onMetadataChanged,this);super.dispose()}onTrustedChanged(e,t){}deleteMetadata(e){return this.sharedModel.deleteMetadata(e)}getMetadata(e){return this.sharedModel.getMetadata(e)}setMetadata(e,t){if(typeof t==="undefined"){this.sharedModel.deleteMetadata(e)}else{this.sharedModel.setMetadata(e,t)}}toJSON(){return this.sharedModel.toJSON()}onGenericChange(){this.contentChanged.emit(void 0)}_onMetadataChanged(e,t){this._metadataChanged.emit(t)}}class W extends H{constructor(e){var t;super(e);const n=(t=e.contentFactory)!==null&&t!==void 0?t:W.defaultContentFactory;const i=this.sharedModel.getAttachments();this._attachments=n.createAttachmentsModel({values:i});this._attachments.stateChanged.connect(this.onGenericChange,this);this._attachments.changed.connect(this._onAttachmentsChange,this);this.sharedModel.changed.connect(this._onSharedModelChanged,this)}get attachments(){return this._attachments}dispose(){if(this.isDisposed){return}this._attachments.stateChanged.disconnect(this.onGenericChange,this);this._attachments.changed.disconnect(this._onAttachmentsChange,this);this._attachments.dispose();this.sharedModel.changed.disconnect(this._onSharedModelChanged,this);super.dispose()}toJSON(){return super.toJSON()}_onAttachmentsChange(e,t){const n=this.sharedModel;O((()=>n.setAttachments(e.toJSON())))}_onSharedModelChanged(e,t){if(t.attachmentsChange){const e=this.sharedModel;O((()=>{var t;return this._attachments.fromJSON((t=e.getAttachments())!==null&&t!==void 0?t:{})}))}}}(function(e){class t{createAttachmentsModel(e){return new L.AttachmentsModel(e)}}e.ContentFactory=t;e.defaultContentFactory=new t})(W||(W={}));class V extends W{constructor(e={}){super({cell_type:"raw",...e})}get type(){return"raw"}toJSON(){return super.toJSON()}}class U extends W{constructor(e={}){super({cell_type:"markdown",...e});this.mimeType="text/x-ipythongfm"}get type(){return"markdown"}toJSON(){return super.toJSON()}}class q extends H{constructor(e={}){var t;super({cell_type:"code",...e});this._executedCode="";this._isDirty=false;const n=(t=e===null||e===void 0?void 0:e.contentFactory)!==null&&t!==void 0?t:q.defaultContentFactory;const i=this.trusted;const s=this.sharedModel.getOutputs();this._outputs=n.createOutputArea({trusted:i,values:s});this.sharedModel.changed.connect(this._onSharedModelChanged,this);this._outputs.changed.connect(this.onGenericChange,this);this._outputs.changed.connect(this.onOutputsChange,this)}get type(){return"code"}get executionCount(){return this.sharedModel.execution_count||null}set executionCount(e){this.sharedModel.execution_count=e||null}get executionState(){return this.sharedModel.executionState}set executionState(e){this.sharedModel.executionState=e}get isDirty(){return this._isDirty}set isDirty(e){this._setDirty(e)}get outputs(){return this._outputs}clearExecution(){this.outputs.clear();this.executionCount=null;this.executionState="idle";this._setDirty(false);this.sharedModel.deleteMetadata("execution");this.trusted=true}dispose(){if(this.isDisposed){return}this.sharedModel.changed.disconnect(this._onSharedModelChanged,this);this._outputs.changed.disconnect(this.onGenericChange,this);this._outputs.changed.disconnect(this.onOutputsChange,this);this._outputs.dispose();this._outputs=null;super.dispose()}onTrustedChanged(e,t){const n=t.newValue;if(this._outputs){this._outputs.trusted=n}if(n){const e=this.sharedModel;const t=e.getMetadata();t.trusted=true;e.setMetadata(t)}this.stateChanged.emit({name:"trusted",oldValue:t.oldValue,newValue:n})}toJSON(){return super.toJSON()}onOutputsChange(e,t){const n=this.sharedModel;O((()=>{switch(t.type){case"add":{for(const n of t.newValues){if(n.type==="stream"){n.streamText.changed.connect(((e,n)=>{if(n.options!==undefined&&n.options["silent"]){return}const i=this.sharedModel;if(n.type==="remove"){i.removeStreamOutput(t.newIndex,n.start,"silent-change")}else{i.appendStreamOutput(t.newIndex,n.value,"silent-change")}}),this)}}const e=t.newValues.map((e=>e.toJSON()));n.updateOutputs(t.newIndex,t.newIndex,e,"silent-change");break}case"set":{const e=t.newValues.map((e=>e.toJSON()));n.updateOutputs(t.oldIndex,t.oldIndex+e.length,e,"silent-change");break}case"remove":n.updateOutputs(t.oldIndex,t.oldValues.length,[],"silent-change");break;default:throw new Error(`Invalid event type: ${t.type}`)}}))}_onSharedModelChanged(e,t){if(t.streamOutputChange){O((()=>{for(const e of t.streamOutputChange){if("delete"in e){this._outputs.removeStreamOutput(e.delete)}if("insert"in e){this._outputs.appendStreamOutput(e.insert.toString())}}}))}if(t.outputsChange){O((()=>{let e=0;for(const n of t.outputsChange){if("retain"in n){e+=n.retain}if("delete"in n){for(let t=0;t{if(e){this.cmHandler.setEditor(this.editor)}}))}}get editor(){return this.cell.editor}get model(){return this.cell.model}}class ae extends re{constructor(e){super(e);this.currentProviderIndex=-1;this.outputsProvider=[];const t=this.cell.outputArea;this._onOutputsChanged(t,t.widgets.length).catch((e=>{console.error(`Failed to initialize search on cell outputs.`,e)}));t.outputLengthChanged.connect(this._onOutputsChanged,this);t.disposed.connect((()=>{t.outputLengthChanged.disconnect(this._onOutputsChanged)}),this)}get matchesCount(){if(!this.isActive){return 0}return super.matchesCount+this.outputsProvider.reduce(((e,t)=>{var n;return e+((n=t.matchesCount)!==null&&n!==void 0?n:0)}),0)}async clearHighlight(){await super.clearHighlight();await Promise.all(this.outputsProvider.map((e=>e.clearHighlight())))}dispose(){if(this.isDisposed){return}super.dispose();this.outputsProvider.map((e=>{e.dispose()}));this.outputsProvider.length=0}async highlightNext(e,t){var n;const i=(n=t===null||t===void 0?void 0:t.from)!==null&&n!==void 0?n:"";if(this.matchesCount===0||i==="previous-match"&&this.currentIndex!==null&&this.currentIndex+1>=this.cmHandler.matches.length||!this.isActive){this.currentIndex=null}else{if(this.currentProviderIndex===-1){const n=await super.highlightNext(e,t);if(n){this.currentIndex=this.cmHandler.currentIndex;return n}else{this.currentProviderIndex=0}}while(this.currentProviderIndex{var n;return e+=(n=t.matchesCount)!==null&&n!==void 0?n:0}),0)+e.currentMatchIndex;return t}else{this.currentProviderIndex+=1}}this.currentProviderIndex=-1;this.currentIndex=null;return undefined}}async highlightPrevious(){if(this.matchesCount===0||!this.isActive){this.currentIndex=null}else{if(this.currentIndex===null){this.currentProviderIndex=this.outputsProvider.length-1}while(this.currentProviderIndex>=0){const e=this.outputsProvider[this.currentProviderIndex];const t=await e.highlightPrevious(false);if(t){this.currentIndex=super.matchesCount+this.outputsProvider.slice(0,this.currentProviderIndex).reduce(((e,t)=>{var n;return e+=(n=t.matchesCount)!==null&&n!==void 0?n:0}),0)+e.currentMatchIndex;return t}else{this.currentProviderIndex-=1}}const e=await super.highlightPrevious();if(e){this.currentIndex=this.cmHandler.currentIndex;return e}else{this.currentIndex=null;return undefined}}}async startQuery(e,t){await super.startQuery(e,t);if((t===null||t===void 0?void 0:t.output)!==false&&this.isActive){await Promise.all(this.outputsProvider.map((t=>t.startQuery(e))))}}async endQuery(){var e;await super.endQuery();if(((e=this.filters)===null||e===void 0?void 0:e.output)!==false&&this.isActive){await Promise.all(this.outputsProvider.map((e=>e.endQuery())))}}async replaceAllMatches(e,t){if(this.model.getMetadata("editable")===false)return Promise.resolve(false);const n=await super.replaceAllMatches(e,t);return n}async replaceCurrentMatch(e,t,n){if(this.model.getMetadata("editable")===false)return Promise.resolve(false);const i=await super.replaceCurrentMatch(e,t,n);return i}async _onOutputsChanged(e,t){var n;this.outputsProvider.forEach((e=>{e.dispose()}));this.outputsProvider.length=0;this.currentProviderIndex=-1;this.outputsProvider=this.cell.outputArea.widgets.map((e=>new se.GenericSearchProvider(e)));if(this.isActive&&this.query&&((n=this.filters)===null||n===void 0?void 0:n.output)!==false){await Promise.all([this.outputsProvider.map((e=>{void e.startQuery(this.query)}))])}this._stateChanged.emit()}}class le extends re{constructor(e){super(e);this._unrenderedByHighlight=false;this.renderedProvider=new se.GenericSearchProvider(e.renderer)}async clearHighlight(){await super.clearHighlight();await this.renderedProvider.clearHighlight()}dispose(){if(this.isDisposed){return}super.dispose();this.renderedProvider.dispose()}async endQuery(){await super.endQuery();await this.renderedProvider.endQuery()}async highlightNext(e=true,t){let n=undefined;if(!this.isActive){return n}const i=this.cell;if(i.rendered&&this.matchesCount>0){this._unrenderedByHighlight=true;const e=(0,ie.signalToPromise)(i.renderedChanged);i.rendered=false;await e}n=await super.highlightNext(e,t);return n}async highlightPrevious(){let e=undefined;const t=this.cell;if(t.rendered&&this.matchesCount>0){this._unrenderedByHighlight=true;const e=(0,ie.signalToPromise)(t.renderedChanged);t.rendered=false;await e}e=await super.highlightPrevious();return e}async startQuery(e,t){await super.startQuery(e,t);const n=this.cell;if(n.rendered){this.onRenderedChanged(n,n.rendered)}n.renderedChanged.connect(this.onRenderedChanged,this)}async replaceAllMatches(e,t){if(this.model.getMetadata("editable")===false)return Promise.resolve(false);const n=await super.replaceAllMatches(e,t);if(this.cell.rendered){this.cell.update()}return n}async replaceCurrentMatch(e,t,n){if(this.model.getMetadata("editable")===false)return Promise.resolve(false);const i=await super.replaceCurrentMatch(e,t,n);return i}onRenderedChanged(e,t){var n;if(!this._unrenderedByHighlight){this.currentIndex=null}this._unrenderedByHighlight=false;if(this.isActive){if(t){void this.renderedProvider.startQuery(this.query)}else{(n=e.editor)===null||n===void 0?void 0:n.setCursorPosition({column:0,line:0});void this.renderedProvider.endQuery()}}}}function de(e){if(e.isPlaceholder()){return new re(e)}switch(e.model.type){case"code":return new ae(e);case"markdown":return new le(e);default:return new re(e)}}var ce=n(22819);var he=n(14366);var ue=n(44539);var pe=n(62149);var me=n(5592);var ge=n(34236);var fe=n(42856);var ve=n(26568);const _e="jp-CellResizeHandle";const be="jp-mod-resizedCell";class ye extends w.Widget{constructor(e){super();this.targetNode=e;this._isActive=false;this._isDragging=false;this.sizeChanged=new P.Signal(this);this.addClass(_e);this._resizer=new ve.Throttler((e=>this._resize(e)),50)}dispose(){this._resizer.dispose();super.dispose()}handleEvent(e){var t,n;switch(e.type){case"dblclick":(t=this.targetNode.parentNode)===null||t===void 0?void 0:t.childNodes.forEach((e=>{e.classList.remove(be)}));document.documentElement.style.setProperty("--jp-side-by-side-output-size",`1fr`);this._isActive=false;break;case"mousedown":this._isDragging=true;if(!this._isActive){(n=this.targetNode.parentNode)===null||n===void 0?void 0:n.childNodes.forEach((e=>{e.classList.add(be)}));this._isActive=true}window.addEventListener("mousemove",this);window.addEventListener("mouseup",this);break;case"mousemove":{if(this._isActive&&this._isDragging){void this._resizer.invoke(e)}break}case"mouseup":this._isDragging=false;window.removeEventListener("mousemove",this);window.removeEventListener("mouseup",this);break;default:break}}onAfterAttach(e){this.node.addEventListener("dblclick",this);this.node.addEventListener("mousedown",this);super.onAfterAttach(e)}onBeforeDetach(e){this.node.removeEventListener("dblclick",this);this.node.removeEventListener("mousedown",this);super.onBeforeDetach(e)}_resize(e){const{width:t,x:n}=this.targetNode.getBoundingClientRect();const i=e.clientX-n;const s=t/i-1;if(0{const i=this._inViewport!==null;const s=i&&!this._inViewport;this._scrollRequested.emit({defaultPrevented:s,scrollWithinCell:()=>{e.dispatch({effects:ce.EditorView.scrollIntoView(t,n)})}});return s}));this._editorConfig={};this._editorExtensions=[];this._inputHidden=false;this._inViewportChanged=new P.Signal(this);this._readOnly=false;this._ready=new me.PromiseDelegate;this._resizeDebouncer=new ve.Debouncer((()=>{this._displayChanged.emit()}),0);this._syncCollapse=false;this._syncEditable=false;this.addClass(we);const o=this._model=e.model;this.contentFactory=e.contentFactory;this.layout=(t=e.layout)!==null&&t!==void 0?t:new w.PanelLayout;this.translator=(n=e.translator)!==null&&n!==void 0?n:$.nullTranslator;this._editorConfig={searchWithCM:false,...e.editorConfig};this._editorExtensions=(i=e.editorExtensions)!==null&&i!==void 0?i:[];this._editorExtensions.push(this._scrollHandlerExtension);this._placeholder=true;this._inViewport=null;this.placeholder=(s=e.placeholder)!==null&&s!==void 0?s:true;o.metadataChanged.connect(this.onMetadataChanged,this)}initializeState(){this.loadCollapseState();this.loadEditableState();return this}get displayChanged(){return this._displayChanged}get inViewport(){var e;return(e=this._inViewport)!==null&&e!==void 0?e:false}set inViewport(e){if(this._inViewport!==e){this._inViewport=e;this._inViewportChanged.emit(this._inViewport)}}get inViewportChanged(){return this._inViewportChanged}get placeholder(){return this._placeholder}set placeholder(e){if(this._placeholder!==e&&e===false){this.initializeDOM();this._placeholder=e;this._ready.resolve()}}get promptNode(){if(this.placeholder){return null}if(!this._inputHidden){return this._input.promptNode}else{return this._inputPlaceholder.node.firstElementChild}}get editorWidget(){var e,t;return(t=(e=this._input)===null||e===void 0?void 0:e.editorWidget)!==null&&t!==void 0?t:null}get editor(){var e,t;return(t=(e=this._input)===null||e===void 0?void 0:e.editor)!==null&&t!==void 0?t:null}get editorConfig(){return this._editorConfig}get headings(){return new Array}get model(){return this._model}get inputArea(){return this._input}get readOnly(){return this._readOnly}set readOnly(e){if(e===this._readOnly){return}this._readOnly=e;if(this.syncEditable){this.saveEditableState()}this.update()}isPlaceholder(){return this.placeholder}saveEditableState(){const{sharedModel:e}=this.model;const t=e.getMetadata("editable");if(this.readOnly&&t===false||!this.readOnly&&t===undefined){return}if(this.readOnly){e.setMetadata("editable",false)}else{e.deleteMetadata("editable")}}loadEditableState(){this.readOnly=this.model.sharedModel.getMetadata("editable")===false}get ready(){return this._ready.promise}setPrompt(e){return this._setPrompt(e)}_setPrompt(e){var t;this.prompt=e;(t=this._input)===null||t===void 0?void 0:t.setPrompt(e)}get inputHidden(){return this._inputHidden}set inputHidden(e){var t;if(this._inputHidden===e){return}if(!this.placeholder){const n=this._inputWrapper.layout;if(e){this._input.parent=null;if(this._inputPlaceholder){this._inputPlaceholder.text=(t=this.model.sharedModel.getSource().split("\n"))===null||t===void 0?void 0:t[0]}n.addWidget(this._inputPlaceholder)}else{this._inputPlaceholder.parent=null;n.addWidget(this._input)}}this._inputHidden=e;if(this.syncCollapse){this.saveCollapseState()}this.handleInputHidden(e)}saveCollapseState(){const e={...this.model.getMetadata("jupyter")};if(this.inputHidden&&e.source_hidden===true||!this.inputHidden&&e.source_hidden===undefined){return}if(this.inputHidden){e.source_hidden=true}else{delete e.source_hidden}if(Object.keys(e).length===0){this.model.deleteMetadata("jupyter")}else{this.model.setMetadata("jupyter",e)}}loadCollapseState(){var e;const t=(e=this.model.getMetadata("jupyter"))!==null&&e!==void 0?e:{};this.inputHidden=!!t.source_hidden}handleInputHidden(e){return}get syncCollapse(){return this._syncCollapse}set syncCollapse(e){if(this._syncCollapse===e){return}this._syncCollapse=e;if(e){this.loadCollapseState()}}get syncEditable(){return this._syncEditable}set syncEditable(e){if(this._syncEditable===e){return}this._syncEditable=e;if(e){this.loadEditableState()}}clone(){const e=this.constructor;return new e({model:this.model,contentFactory:this.contentFactory,placeholder:false,translator:this.translator})}dispose(){if(this.isDisposed){return}this._resizeDebouncer.dispose();this._input=null;this._model=null;this._inputWrapper=null;this._inputPlaceholder=null;super.dispose()}updateEditorConfig(e){this._editorConfig={...this._editorConfig,...e};if(this.editor){this.editor.setBaseOptions(this._editorConfig)}}get scrollRequested(){return this._scrollRequested}initializeDOM(){if(!this.placeholder){return}const e=this.contentFactory;const t=this._model;const n=e.createCellHeader();n.addClass(Ce);this.layout.addWidget(n);const i=this._inputWrapper=new w.Panel;i.addClass(Se);const s=new b;s.addClass(Ee);const o=this._input=new D({model:t,contentFactory:e,editorOptions:this.getEditorOptions()});o.addClass(je);i.addWidget(s);i.addWidget(o);this.layout.addWidget(i);this._inputPlaceholder=new ee({callback:()=>{this.inputHidden=!this.inputHidden},text:o.model.sharedModel.getSource().split("\n")[0],translator:this.translator});o.model.contentChanged.connect(((e,t)=>{var n;if(this._inputPlaceholder&&this.inputHidden){this._inputPlaceholder.text=(n=e.sharedModel.getSource().split("\n"))===null||n===void 0?void 0:n[0]}}));if(this.inputHidden){o.parent=null;i.layout.addWidget(this._inputPlaceholder)}const r=this.contentFactory.createCellFooter();r.addClass(xe);this.layout.addWidget(r)}getEditorOptions(){return{config:this.editorConfig,extensions:this._editorExtensions}}onBeforeAttach(e){if(this.placeholder){this.placeholder=false}}onAfterAttach(e){this.update()}onActivateRequest(e){var t;(t=this.editor)===null||t===void 0?void 0:t.focus()}onResize(e){void this._resizeDebouncer.invoke()}onUpdateRequest(e){var t,n;if(!this._model){return}if(((t=this.editor)===null||t===void 0?void 0:t.getOption("readOnly"))!==this._readOnly){(n=this.editor)===null||n===void 0?void 0:n.setOption("readOnly",this._readOnly)}}onContentChanged(){var e;if(this.inputHidden&&this._inputPlaceholder){this._inputPlaceholder.text=(e=this.model.sharedModel.getSource().split("\n"))===null||e===void 0?void 0:e[0]}}onMetadataChanged(e,t){switch(t.key){case"jupyter":if(this.syncCollapse){this.loadCollapseState()}break;case"editable":if(this.syncEditable){this.loadEditableState()}break;default:break}}}(function(e){let t;(function(e){e[e["HTML"]=0]="HTML";e[e["Markdown"]=1]="Markdown"})(t=e.HeadingType||(e.HeadingType={}));class n{constructor(e){this._editorFactory=e.editorFactory}get editorFactory(){return this._editorFactory}createCellHeader(){return new S}createCellFooter(){return new k}createInputPrompt(){return new A}createOutputPrompt(){return new R.OutputPrompt}createStdin(e){return new R.Stdin(e)}}e.ContentFactory=n})(Ve||(Ve={}));class Ue extends w.PanelLayout{onBeforeAttach(e){let t=true;const n=this.parent.node.firstElementChild;for(const i of this){if(n){if(i.node===n){t=false}else{fe.MessageLoop.sendMessage(i,e);if(t){this.parent.node.insertBefore(i.node,n)}else{this.parent.node.appendChild(i.node)}if(!this.parent.isHidden){i.setFlag(w.Widget.Flag.IsVisible)}fe.MessageLoop.sendMessage(i,w.Widget.Msg.AfterAttach)}}}}onAfterDetach(e){for(const t of this){if(!t.hasClass(ke)&&t.node.isConnected){fe.MessageLoop.sendMessage(t,w.Widget.Msg.BeforeDetach);this.parent.node.removeChild(t.node);fe.MessageLoop.sendMessage(t,e)}}}}class qe extends Ve{constructor(e){var t;super({layout:new Ue,...e,placeholder:true});this._detectCaretMovementInOuput=e=>{const t=this._inViewport!==null;const n=t&&!this._inViewport;const i=e.target;if(!i||!(i instanceof HTMLElement)){return}if(this._lastTarget){this._lastTarget.removeEventListener("selectionchange",this._lastOnCaretMovedHandler);document.removeEventListener("selectionchange",this._lastOnCaretMovedHandler)}const s=()=>{this._scrollRequested.emit({scrollWithinCell:({scroller:e})=>{u.ElementExt.scrollIntoViewIfNeeded(e,i)},defaultPrevented:n})};this._lastTarget=i;this._lastOnCaretMovedHandler=s;i.addEventListener("selectionchange",s,{once:true});document.addEventListener("selectionchange",s,{once:true});setTimeout((()=>{i.removeEventListener("selectionchange",s);document.removeEventListener("selectionchange",s)}),250)};this._headingsCache=null;this._outputHidden=false;this._outputWrapper=null;this._outputPlaceholder=null;this._syncScrolled=false;this._lastTarget=null;this._lastOutputHeight="";this.addClass(De);const n=this.translator.load("jupyterlab");const i=this._rendermime=e.rendermime;const s=this.contentFactory;const o=this.model;this.maxNumberOutputs=e.maxNumberOutputs;const r=o.outputs.length===0?n.__("Code Cell Content"):n.__("Code Cell Content with Output");this.node.setAttribute("aria-label",r);const a=this._output=new R.OutputArea({model:this.model.outputs,rendermime:i,contentFactory:s,maxNumberOutputs:this.maxNumberOutputs,translator:this.translator,promptOverlay:true,inputHistoryScope:e.inputHistoryScope,showInputPlaceholder:e.showInputPlaceholder});a.node.addEventListener("keydown",this._detectCaretMovementInOuput);a.addClass(Ie);a.toggleScrolling.connect((()=>{this.outputsScrolled=!this.outputsScrolled}));a.initialize.connect((()=>{this.updatePromptOverlayIcon()}));this.placeholder=(t=e.placeholder)!==null&&t!==void 0?t:true;o.outputs.changed.connect(this.onOutputChanged,this);o.outputs.stateChanged.connect(this.onOutputChanged,this);o.stateChanged.connect(this.onStateChanged,this)}initializeDOM(){if(!this.placeholder){return}super.initializeDOM();this._updatePrompt();const e=this._outputWrapper=new w.Panel;e.addClass(ke);const t=new y;t.addClass(Te);e.addWidget(t);if(this.model.outputs.length===0){this.addClass(Fe)}this._output.outputLengthChanged.connect(this._outputLengthHandler,this);e.addWidget(this._output);const n=this.layout;const i=new ye(this.node);i.sizeChanged.connect(this._sizeChangedHandler,this);n.insertWidget(n.widgets.length-1,i);n.insertWidget(n.widgets.length-1,e);if(this.model.isDirty){this.addClass(Me)}this._outputPlaceholder=new te({callback:()=>{this.outputHidden=!this.outputHidden},text:this.getOutputPlaceholderText(),translator:this.translator});const s=e.layout;if(this.outputHidden){s.removeWidget(this._output);s.addWidget(this._outputPlaceholder);if(this.inputHidden&&!e.isHidden){this._outputWrapper.hide()}}const o=this.translator.load("jupyterlab");const r=this.model.outputs.length===0?o.__("Code Cell Content"):o.__("Code Cell Content with Output");this.node.setAttribute("aria-label",r)}getOutputPlaceholderText(){var e;const t=this.model.outputs.get(0);const n=t===null||t===void 0?void 0:t.data;if(!n){return undefined}const i=["text/html","image/svg+xml","application/pdf","text/markdown","text/plain","application/vnd.jupyter.stderr","application/vnd.jupyter.stdout","text"];const s=i.find((e=>{const n=t.data[e];return(Array.isArray(n)?typeof n[0]:typeof n)==="string"}));const o=t.data[s!==null&&s!==void 0?s:""];if(o!==undefined){return(e=Array.isArray(o)?o:o===null||o===void 0?void 0:o.split("\n"))===null||e===void 0?void 0:e.find((e=>e!==""))}return undefined}initializeState(){super.initializeState();this.loadScrolledState();this._updatePrompt();return this}get headings(){if(!this._headingsCache){const e=[];const t=this.model.outputs;for(let n=0;n{if(!o&&pe.TableOfContentsUtils.Markdown.isMarkdown(e)){o=e}else if(!s&&pe.TableOfContentsUtils.isHTML(e)){s=e}}));if(s){let t=i.data[s];if(typeof t!=="string"){t=t.join("\n")}e.push(...pe.TableOfContentsUtils.getHTMLHeadings(this._rendermime.sanitizer.sanitize(t)).map((e=>({...e,outputIndex:n,type:Ve.HeadingType.HTML}))))}else if(o){e.push(...pe.TableOfContentsUtils.Markdown.getHeadings(i.data[o]).map((e=>({...e,outputIndex:n,type:Ve.HeadingType.Markdown}))))}}this._headingsCache=e}return[...this._headingsCache]}get outputArea(){return this._output}get outputHidden(){return this._outputHidden}set outputHidden(e){var t;if(this._outputHidden===e){return}if(!this.placeholder){const n=this._outputWrapper.layout;if(e){n.removeWidget(this._output);n.addWidget(this._outputPlaceholder);if(this.inputHidden&&!this._outputWrapper.isHidden){this._outputWrapper.hide()}if(this._outputPlaceholder){this._outputPlaceholder.text=(t=this.getOutputPlaceholderText())!==null&&t!==void 0?t:""}}else{if(this._outputWrapper.isHidden){this._outputWrapper.show()}n.removeWidget(this._outputPlaceholder);n.addWidget(this._output)}}this._outputHidden=e;if(this.syncCollapse){this.saveCollapseState()}}saveCollapseState(){this.model.sharedModel.transact((()=>{super.saveCollapseState();const e=this.model.getMetadata("collapsed");if(this.outputHidden&&e===true||!this.outputHidden&&e===undefined){return}if(this.outputHidden){this.model.setMetadata("collapsed",true)}else{this.model.deleteMetadata("collapsed")}}),false,"silent-change")}loadCollapseState(){super.loadCollapseState();this.outputHidden=!!this.model.getMetadata("collapsed")}get outputsScrolled(){return this._outputsScrolled}set outputsScrolled(e){this.toggleClass("jp-mod-outputsScrolled",e);this._outputsScrolled=e;if(this.syncScrolled){this.saveScrolledState()}this.updatePromptOverlayIcon()}updatePromptOverlayIcon(){var e;const t=he.DOMUtils.findElement(this.node,"jp-OutputArea-promptOverlay");if(!t){return}const n=16+4+4;if(t.clientHeight<=n){(e=t.firstChild)===null||e===void 0?void 0:e.remove();return}let i;if(this._outputsScrolled){h.expandIcon.element({container:t});i="Expand Output"}else{h.collapseIcon.element({container:t});i="Collapse Output"}const s=this.translator.load("jupyterlab");t.title=s.__(i)}saveScrolledState(){const e=this.model.getMetadata("scrolled");if(this.outputsScrolled&&e===true||!this.outputsScrolled&&e===undefined){return}if(this.outputsScrolled){this.model.setMetadata("scrolled",true)}else{this.outputArea.node.style.height="";this.model.deleteMetadata("scrolled")}}loadScrolledState(){if(this.model.getMetadata("scrolled")==="auto"){this.outputsScrolled=false}else{this.outputsScrolled=!!this.model.getMetadata("scrolled")}}get syncScrolled(){return this._syncScrolled}set syncScrolled(e){if(this._syncScrolled===e){return}this._syncScrolled=e;if(e){this.loadScrolledState()}}handleInputHidden(e){if(this.placeholder){return}if(!e&&this._outputWrapper.isHidden){this._outputWrapper.show()}else if(e&&!this._outputWrapper.isHidden&&this._outputHidden){this._outputWrapper.hide()}}clone(){const e=this.constructor;return new e({model:this.model,contentFactory:this.contentFactory,rendermime:this._rendermime,placeholder:false,translator:this.translator})}cloneOutputArea(){return new R.SimplifiedOutputArea({model:this.model.outputs,contentFactory:this.contentFactory,rendermime:this._rendermime})}dispose(){if(this.isDisposed){return}this._output.outputLengthChanged.disconnect(this._outputLengthHandler,this);this._output.node.removeEventListener("keydown",this._detectCaretMovementInOuput);this._rendermime=null;this._output=null;this._outputWrapper=null;this._outputPlaceholder=null;super.dispose()}onStateChanged(e,t){switch(t.name){case"executionCount":if(t.newValue!==null){this.model.executionState="idle"}this._updatePrompt();break;case"executionState":this._updatePrompt();break;case"isDirty":if(e.isDirty){this.addClass(Me)}else{this.removeClass(Me)}break;default:break}}onOutputChanged(){var e;this._headingsCache=null;if(this._outputPlaceholder&&this.outputHidden){this._outputPlaceholder.text=(e=this.getOutputPlaceholderText())!==null&&e!==void 0?e:""}this.updatePromptOverlayIcon();const t=this.outputArea.node.style.height;if(this.model.outputs.length===0&&t!==""){this._lastOutputHeight=t;this.outputArea.node.style.height=""}else if(this.model.outputs.length>0&&t===""){this.outputArea.node.style.height=this._lastOutputHeight}}onMetadataChanged(e,t){switch(t.key){case"scrolled":if(this.syncScrolled){this.loadScrolledState()}break;case"collapsed":if(this.syncCollapse){this.loadCollapseState()}break;default:break}super.onMetadataChanged(e,t)}_updatePrompt(){let e;if(this.model.executionState=="running"){e="*"}else{e=`${this.model.executionCount||""}`}this._setPrompt(e)}_outputLengthHandler(e,t){const n=t===0?true:false;this.toggleClass(Fe,n);const i=this.translator.load("jupyterlab");const s=n?i.__("Code Cell Content"):i.__("Code Cell Content with Output");this.node.setAttribute("aria-label",s)}_sizeChangedHandler(e){this._displayChanged.emit()}}(function(e){async function t(e,t,n){var i;const s=e.model;const o=s.sharedModel.getSource();if(!o.trim()||!((i=t.session)===null||i===void 0?void 0:i.kernel)){s.sharedModel.transact((()=>{s.clearExecution()}),false,"silent-change");return}const r={cellId:s.sharedModel.getId()};n={...s.metadata,...n,...r};const{recordTiming:a}=n;s.sharedModel.transact((()=>{s.clearExecution();e.outputHidden=false}),false,"silent-change");s.executionState="running";s.trusted=true;let l;try{const i=R.OutputArea.execute(o,e.outputArea,t,n);if(a){const t=e=>{let t;switch(e.header.msg_type){case"status":t=`status.${e.content.execution_state}`;break;case"execute_input":t="execute_input";break;default:return true}const n=e.header.date||(new Date).toISOString();const i=Object.assign({},s.getMetadata("execution"));i[`iopub.${t}`]=n;s.setMetadata("execution",i);return true};e.outputArea.future.registerMessageHook(t)}else{s.deleteMetadata("execution")}l=e.outputArea.future;const r=await i;s.executionCount=r.content.execution_count;if(a){const e=Object.assign({},s.getMetadata("execution"));const t=r.metadata.started;if(t){e["shell.execute_reply.started"]=t}const n=r.header.date;e["shell.execute_reply"]=n||(new Date).toISOString();s.setMetadata("execution",e)}return r}catch(d){if(l&&!e.isDisposed&&e.outputArea.future===l){e.model.executionState="idle";if(a&&l.isDisposed){const e=Object.assign({},s.getMetadata("execution"));e["execution_failed"]=(new Date).toISOString();s.setMetadata("execution",e)}}throw d}}e.execute=t})(qe||(qe={}));class $e extends Ve{handleEvent(e){switch(e.type){case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;default:break}}getEditorOptions(){var e,t;const n=(e=super.getEditorOptions())!==null&&e!==void 0?e:{};n.extensions=[...(t=n.extensions)!==null&&t!==void 0?t:[],ce.EditorView.domEventHandlers({dragenter:e=>{e.preventDefault()},dragover:e=>{e.preventDefault()},drop:e=>{this._evtNativeDrop(e)},paste:e=>{this._evtPaste(e)}})];return n}onAfterAttach(e){super.onAfterAttach(e);const t=this.node;t.addEventListener("lm-dragover",this);t.addEventListener("lm-drop",this)}onBeforeDetach(e){const t=this.node;t.removeEventListener("lm-dragover",this);t.removeEventListener("lm-drop",this);super.onBeforeDetach(e)}_evtDragOver(e){const t=(0,ge.some)(ue.imageRendererFactory.mimeTypes,(t=>{if(!e.mimeData.hasData(We)){return false}const n=e.mimeData.getData(We);return n.model.mimetype===t}));if(!t){return}e.preventDefault();e.stopPropagation();e.dropAction=e.proposedAction}_evtPaste(e){var t;const n=(t=this.model.getMetadata("editable"))!==null&&t!==void 0?t:true;if(e.clipboardData&&n){const t=e.clipboardData.items;for(let n=0;n{var t,n;(n=(t=this.editor).replaceSelection)===null||n===void 0?void 0:n.call(t,e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"))}))}this._attachFiles(e.clipboardData.items)}}e.preventDefault()}_evtNativeDrop(e){if(e.dataTransfer){this._attachFiles(e.dataTransfer.items)}e.preventDefault()}_evtDrop(e){const t=e.mimeData.types().filter((t=>{if(t===We){const t=e.mimeData.getData(We);return ue.imageRendererFactory.mimeTypes.indexOf(t.model.mimetype)!==-1}return ue.imageRendererFactory.mimeTypes.indexOf(t)!==-1}));if(t.length===0){return}e.preventDefault();e.stopPropagation();if(e.proposedAction==="none"){e.dropAction="none";return}e.dropAction="copy";for(const n of t){if(n===We){const{model:t,withContent:n}=e.mimeData.getData(We);if(t.type==="file"){const e=this._generateURI(t.name);this.updateCellSourceWithAttachment(t.name,e);void n().then((t=>{this.model.attachments.set(e,{[t.mimetype]:t.content})}))}}else{const t=this._generateURI();this.model.attachments.set(t,{[n]:e.mimeData.getData(n)});this.updateCellSourceWithAttachment(t,t)}}}_attachFiles(e){for(let t=0;t{const{href:i,protocol:s}=ie.URLExt.parse(t.result);if(s!=="data:"){return}const o=/([\w+\/\+]+)?(?:;(charset=[\w\d-]*|base64))?,(.*)/;const r=o.exec(i);if(!r||r.length!==4){return}const a=r[1];const l=r[3];const d={[a]:l};const c=this._generateURI(e.name);if(a.startsWith("image/")){this.model.attachments.set(c,d);this.updateCellSourceWithAttachment(e.name,c)}};t.onerror=t=>{console.error(`Failed to attach ${e.name}`+t)};t.readAsDataURL(e)}_generateURI(e=""){const t=e.lastIndexOf(".");return t!==-1?me.UUID.uuid4().concat(e.substring(t)):me.UUID.uuid4()}}class Ke extends $e{constructor(e){var t,n,i,s;super({...e,placeholder:true});this._headingsCache=null;this._headingCollapsedChanged=new P.Signal(this);this._prevText="";this._rendered=true;this._renderedChanged=new P.Signal(this);this._showEditorForReadOnlyMarkdown=true;this.addClass(Ae);this.model.contentChanged.connect(this.onContentChanged,this);const o=this.translator.load("jupyterlab");this.node.setAttribute("aria-label",o.__("Markdown Cell Content"));this._rendermime=e.rendermime.clone({resolver:new L.AttachmentsResolver({parent:(t=e.rendermime.resolver)!==null&&t!==void 0?t:undefined,model:this.model.attachments})});this._renderer=this._rendermime.createRenderer("text/markdown");this._renderer.addClass(Pe);this._headingCollapsed=(n=this.model.getMetadata(Le))!==null&&n!==void 0?n:false;this._showEditorForReadOnlyMarkdown=(i=e.showEditorForReadOnlyMarkdown)!==null&&i!==void 0?i:Ke.defaultShowEditorForReadOnlyMarkdown;this.placeholder=(s=e.placeholder)!==null&&s!==void 0?s:true;this._monitor=new ie.ActivityMonitor({signal:this.model.contentChanged,timeout:He});this.ready.then((()=>{if(this.isDisposed){return}this._monitor.activityStopped.connect((()=>{if(this._rendered){this.update()}}),this)})).catch((e=>{console.error("Failed to be ready",e)}))}get headingInfo(){const e=this.headings;if(e.length>0){const{text:t,level:n}=e.reduce(((e,t)=>e.level<=t.level?e:t),e[0]);return{text:t,level:n}}else{return{text:"",level:-1}}}get headings(){if(!this._headingsCache){const e=pe.TableOfContentsUtils.Markdown.getHeadings(this.model.sharedModel.getSource());this._headingsCache=e.map((e=>({...e,type:Ve.HeadingType.Markdown})))}return[...this._headingsCache]}get headingCollapsed(){return this._headingCollapsed}set headingCollapsed(e){var t;if(this._headingCollapsed!==e){this._headingCollapsed=e;if(e){this.model.setMetadata(Le,e)}else if(this.model.getMetadata(Le)!=="undefined"){this.model.deleteMetadata(Le)}const n=(t=this.inputArea)===null||t===void 0?void 0:t.promptNode.getElementsByClassName(Re)[0];if(n){if(e){n.classList.add("jp-mod-collapsed")}else{n.classList.remove("jp-mod-collapsed")}}this.renderCollapseButtons(this._renderer);this._headingCollapsedChanged.emit(this._headingCollapsed)}}get numberChildNodes(){return this._numberChildNodes}set numberChildNodes(e){this._numberChildNodes=e;this.renderCollapseButtons(this._renderer)}get headingCollapsedChanged(){return this._headingCollapsedChanged}get rendered(){return this._rendered}set rendered(e){if(this.readOnly&&this._showEditorForReadOnlyMarkdown===false){e=true}if(e===this._rendered){return}this._rendered=e;this._handleRendered().then((()=>{this._displayChanged.emit();this._renderedChanged.emit(this._rendered)})).catch((e=>{console.error("Failed to render",e)}))}get renderedChanged(){return this._renderedChanged}get showEditorForReadOnly(){return this._showEditorForReadOnlyMarkdown}set showEditorForReadOnly(e){this._showEditorForReadOnlyMarkdown=e;if(e===false){this.rendered=true}}get renderer(){return this._renderer}dispose(){if(this.isDisposed){return}this._monitor.dispose();super.dispose()}initializeDOM(){if(!this.placeholder){return}super.initializeDOM();this.renderCollapseButtons(this._renderer);this._handleRendered().catch((e=>{console.error("Failed to render",e)}))}maybeCreateCollapseButton(){var e;const{level:t}=this.headingInfo;if(t>0&&((e=this.inputArea)===null||e===void 0?void 0:e.promptNode.getElementsByClassName(Re).length)==0){let e=this.inputArea.promptNode.appendChild(document.createElement("button"));e.className=`jp-Button ${Re}`;e.setAttribute("data-heading-level",t.toString());if(this._headingCollapsed){e.classList.add("jp-mod-collapsed")}else{e.classList.remove("jp-mod-collapsed")}e.onclick=e=>{this.headingCollapsed=!this.headingCollapsed}}}maybeCreateOrUpdateExpandButton(){const e=this.node.getElementsByClassName(Ne);let t=this.translator.load("jupyterlab");let n=t._n("%1 cell hidden","%1 cells hidden",this._numberChildNodes);let i=this.headingCollapsed&&this._numberChildNodes>0&&e.length==0;if(i){const e=document.createElement("button");e.className=`jp-mod-minimal jp-Button ${Ne}`;h.addIcon.render(e);const t=document.createElement("div");t.textContent=n;e.appendChild(t);e.onclick=()=>{this.headingCollapsed=false};this.node.appendChild(e)}let s=this.headingCollapsed&&this._numberChildNodes>0&&e.length==1;if(s){e[0].childNodes[1].textContent=n}let o=!(this.headingCollapsed&&this._numberChildNodes>0);if(o){for(const t of e){this.node.removeChild(t)}}}onContentChanged(){super.onContentChanged();this._headingsCache=null}renderCollapseButtons(e){this.node.classList.toggle(Le,this._headingCollapsed);this.maybeCreateCollapseButton();this.maybeCreateOrUpdateExpandButton()}renderInput(e){this.addClass(Be);if(!this.placeholder&&!this.isDisposed){this.renderCollapseButtons(e);this.inputArea.renderInput(e)}}showEditor(){this.removeClass(Be);if(!this.placeholder&&!this.isDisposed){this.inputArea.showEditor();let e=(this.model.sharedModel.getSource().match(/^#+/g)||[""])[0].length;if(e>0){this.inputArea.editor.setCursorPosition({column:e+1,line:0},{scroll:false})}}}onUpdateRequest(e){this._handleRendered().catch((e=>{console.error("Failed to render",e)}));super.onUpdateRequest(e)}updateCellSourceWithAttachment(e,t){var n,i;const s=`![${e}](attachment:${t!==null&&t!==void 0?t:e})`;(i=(n=this.editor)===null||n===void 0?void 0:n.replaceSelection)===null||i===void 0?void 0:i.call(n,s)}async _handleRendered(){if(!this._rendered){this.showEditor()}else{await this._updateRenderedInput();if(this._rendered){this.renderInput(this._renderer)}}}_updateRenderedInput(){if(this.placeholder){return Promise.resolve()}const e=this.model;const t=e&&e.sharedModel.getSource()||ze;if(t!==this._prevText){const e=new ue.MimeModel({data:{"text/markdown":t}});this._prevText=t;return this._renderer.renderModel(e)}return Promise.resolve()}clone(){const e=this.constructor;return new e({model:this.model,contentFactory:this.contentFactory,rendermime:this._rendermime,placeholder:false,translator:this.translator})}}(function(e){e.defaultShowEditorForReadOnlyMarkdown=true})(Ke||(Ke={}));class Je extends Ve{constructor(e){super(e);this.addClass(Oe);const t=this.translator.load("jupyterlab");this.node.setAttribute("aria-label",t.__("Raw Cell Content"))}clone(){const e=this.constructor;return new e({model:this.model,contentFactory:this.contentFactory,placeholder:false,translator:this.translator})}}},53377:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(5893);var a=n(38457);var l=n(17325);var d=n(19562);var c=n(23359);var h=n(39063);var u=n(1649);var p=n(66731);var m=n(85072);var g=n.n(m);var f=n(97825);var v=n.n(f);var _=n(77659);var b=n.n(_);var y=n(55056);var w=n.n(y);var C=n(10540);var x=n.n(C);var S=n(41113);var k=n.n(S);var j=n(55717);var I={};I.styleTagTransform=k();I.setAttributes=w();I.insert=b().bind(null,"head");I.domAPI=v();I.insertStyleElement=x();var E=g()(j.A,I);const T=j.A&&j.A.locals?j.A.locals:undefined},28211:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>_});var i=n(80349);var s=n(44914);var o=n.n(s);var r=n(26331);var a=n(34236);var l=n(30619);const d="jp-CellTags";const c="jp-CellTags-Tag";const h="jp-CellTags-Applied";const u="jp-CellTags-Unapplied";const p="jp-CellTags-Holder";const m="jp-CellTags-Add";const g="jp-CellTags-Empty";class f{constructor(e,t){this._tracker=e;this._translator=t||l.nullTranslator;this._trans=this._translator.load("jupyterlab");this._editing=false}addTag(e,t){const n=e.formData;if(t&&!n.includes(t)){n.push(t);e.formContext.updateMetadata({[e.name]:n},true)}}pullTags(){var e,t;const n=(e=this._tracker)===null||e===void 0?void 0:e.currentWidget;const i=(t=n===null||n===void 0?void 0:n.model)===null||t===void 0?void 0:t.cells;if(i===undefined){return[]}const s=(0,a.reduce)(i,((e,t)=>{var n;const i=(n=t.getMetadata("tags"))!==null&&n!==void 0?n:[];return[...e,...i]}),[]);return[...new Set(s)].filter((e=>e!==""))}_emptyAddTag(e){e.value="";e.style.width="";e.classList.add(g)}_onAddTagKeyDown(e,t){const n=t.target;if(t.ctrlKey)return;if(t.key==="Enter"){this.addTag(e,n.value)}else if(t.key==="Escape"){this._emptyAddTag(n)}}_onAddTagFocus(e){if(!this._editing){e.target.blur()}}_onAddTagBlur(e){if(this._editing){this._editing=false;this._emptyAddTag(e)}}_onChange(e){if(!e.target.value){this._emptyAddTag(e.target)}else{e.target.classList.remove(g);const t=document.createElement("span");t.className=m;t.textContent=e.target.value;document.body.appendChild(t);e.target.style.setProperty("width",`calc(${t.getBoundingClientRect().width}px + var(--jp-add-tag-extra-width))`);document.body.removeChild(t)}}_onAddTagClick(e,t){const n=t.target.closest("div");const i=n===null||n===void 0?void 0:n.childNodes[0];if(!this._editing){this._editing=true;i.value="";i.focus()}else if(t.target!==i){this.addTag(e,i.value)}t.preventDefault()}_onTagClick(e,t){const n=e.formData;if(n.includes(t)){n.splice(n.indexOf(t),1)}else{n.push(t)}e.formContext.updateMetadata({[e.name]:n},true)}render(e){const t=this.pullTags();return o().createElement("div",{className:d},o().createElement("div",{className:"jp-FormGroup-fieldLabel jp-FormGroup-contentItem"},"Cell Tags"),t&&t.map(((t,n)=>o().createElement("div",{key:n,className:`${c} ${e.formData.includes(t)?h:u}`,onClick:()=>this._onTagClick(e,t)},o().createElement("div",{className:p},o().createElement("span",null,t),e.formData.includes(t)&&o().createElement(r.LabIcon.resolveReact,{icon:r.checkIcon,tag:"span",elementPosition:"center",height:"18px",width:"18px",marginLeft:"5px",marginRight:"-3px"}))))),o().createElement("div",{className:`${c} ${u}`},o().createElement("div",{className:p,onMouseDown:t=>this._onAddTagClick(e,t)},o().createElement("input",{className:`${m} ${g}`,type:"text",placeholder:this._trans.__("Add Tag"),onKeyDown:t=>this._onAddTagKeyDown(e,t),onFocus:e=>this._onAddTagFocus(e),onBlur:e=>this._onAddTagBlur(e.target),onChange:e=>{this._onChange(e)}}),o().createElement(r.LabIcon.resolveReact,{icon:r.addIcon,tag:"span",height:"18px",width:"18px",className:p}))))}}const v={id:"@jupyterlab/celltags-extension:plugin",description:"Adds the cell tags editor.",autoStart:true,requires:[i.INotebookTracker],optional:[r.IFormRendererRegistry],activate:(e,t,n)=>{if(n){const e={fieldRenderer:e=>new f(t).render(e)};n.addRenderer("@jupyterlab/celltags-extension:plugin.renderer",e)}}};const _=[v]},11114:(e,t,n)=>{"use strict";var i=n(40662);var s=n(3579);var o=n(28006);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(96415);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},32069:(e,t,n)=>{"use strict";n.r(t);n.d(t,{COMPLETER_ACTIVE_CLASS:()=>k,COMPLETER_ENABLED_CLASS:()=>S,COMPLETER_LINE_BEGINNING_CLASS:()=>j,CodeEditor:()=>a,CodeEditorWrapper:()=>P,CodeViewerWidget:()=>R,IEditorMimeTypeService:()=>r,IEditorServices:()=>I,IPositionModel:()=>E,JSONEditor:()=>f,LineCol:()=>x});var i=n(95917);var s=n(44336);var o=n(2336);var r;(function(e){e.defaultMimeType="text/plain"})(r||(r={}));var a;(function(e){class t{constructor(e={}){var t,n;this.standaloneModel=false;this._isDisposed=false;this._selections=new s.ObservableMap;this._mimeType=r.defaultMimeType;this._mimeTypeChanged=new o.Signal(this);this.standaloneModel=typeof e.sharedModel==="undefined";this.sharedModel=(t=e.sharedModel)!==null&&t!==void 0?t:new i.YFile;this._mimeType=(n=e.mimeType)!==null&&n!==void 0?n:r.defaultMimeType}get mimeTypeChanged(){return this._mimeTypeChanged}get selections(){return this._selections}get mimeType(){return this._mimeType}set mimeType(e){const t=this.mimeType;if(t===e){return}this._mimeType=e;this._mimeTypeChanged.emit({name:"mimeType",oldValue:t,newValue:e})}get isDisposed(){return this._isDisposed}dispose(){if(this._isDisposed){return}this._isDisposed=true;this._selections.dispose();if(this.standaloneModel){this.sharedModel.dispose()}o.Signal.clearData(this)}}e.Model=t})(a||(a={}));var l=n(30619);var d=n(26331);var c=n(5592);var h=n(1143);const u="jp-JSONEditor";const p="jp-mod-error";const m="jp-JSONEditor-host";const g="jp-JSONEditor-header";class f extends h.Widget{constructor(e){super();this._dataDirty=false;this._inputDirty=false;this._source=null;this._originalValue=c.JSONExt.emptyObject;this._changeGuard=false;this.translator=e.translator||l.nullTranslator;this._trans=this.translator.load("jupyterlab");this.addClass(u);this.headerNode=document.createElement("div");this.headerNode.className=g;this.revertButtonNode=d.undoIcon.element({tag:"span",title:this._trans.__("Revert changes to data")});this.commitButtonNode=d.checkIcon.element({tag:"span",title:this._trans.__("Commit changes to data"),marginLeft:"8px"});this.editorHostNode=document.createElement("div");this.editorHostNode.className=m;this.headerNode.appendChild(this.revertButtonNode);this.headerNode.appendChild(this.commitButtonNode);this.node.appendChild(this.headerNode);this.node.appendChild(this.editorHostNode);const t=new a.Model({mimeType:"application/json"});t.sharedModel.changed.connect(this._onModelChanged,this);this.model=t;this.editor=e.editorFactory({host:this.editorHostNode,model:t,config:{readOnly:true}})}get source(){return this._source}set source(e){if(this._source===e){return}if(this._source){this._source.changed.disconnect(this._onSourceChanged,this)}this._source=e;this.editor.setOption("readOnly",e===null);if(e){e.changed.connect(this._onSourceChanged,this)}this._setValue()}get isDirty(){return this._dataDirty||this._inputDirty}dispose(){var e;if(this.isDisposed){return}(e=this.source)===null||e===void 0?void 0:e.dispose();this.model.dispose();this.editor.dispose();super.dispose()}handleEvent(e){switch(e.type){case"blur":this._evtBlur(e);break;case"click":this._evtClick(e);break;default:break}}onAfterAttach(e){const t=this.editorHostNode;t.addEventListener("blur",this,true);t.addEventListener("click",this,true);this.revertButtonNode.hidden=true;this.commitButtonNode.hidden=true;this.headerNode.addEventListener("click",this)}onBeforeDetach(e){const t=this.editorHostNode;t.removeEventListener("blur",this,true);t.removeEventListener("click",this,true);this.headerNode.removeEventListener("click",this)}_onSourceChanged(e,t){if(this._changeGuard){return}if(this._inputDirty||this.editor.hasFocus()){this._dataDirty=true;return}this._setValue()}_onModelChanged(e,t){if(t.sourceChange){let e=true;try{const e=JSON.parse(this.editor.model.sharedModel.getSource());this.removeClass(p);this._inputDirty=!this._changeGuard&&!c.JSONExt.deepEqual(e,this._originalValue)}catch(n){this.addClass(p);this._inputDirty=true;e=false}this.revertButtonNode.hidden=!this._inputDirty;this.commitButtonNode.hidden=!e||!this._inputDirty}}_evtBlur(e){if(!this._inputDirty&&this._dataDirty){this._setValue()}}_evtClick(e){const t=e.target;if(this.revertButtonNode.contains(t)){this._setValue()}else if(this.commitButtonNode.contains(t)){if(!this.commitButtonNode.hidden&&!this.hasClass(p)){this._changeGuard=true;this._mergeContent();this._changeGuard=false;this._setValue()}}else if(this.editorHostNode.contains(t)){this.editor.focus()}}_mergeContent(){const e=this.editor.model;const t=this._originalValue;const n=JSON.parse(e.sharedModel.getSource());const i=this.source;if(!i){return}for(const s in n){if(!c.JSONExt.deepEqual(n[s],t[s]||null)){i.set(s,n[s])}}for(const s in t){if(!(s in n)){i.delete(s)}}}_setValue(){this._dataDirty=false;this._inputDirty=false;this.revertButtonNode.hidden=true;this.commitButtonNode.hidden=true;this.removeClass(p);const e=this.editor.model;const t=this._source?this._source.toJSON():{};this._changeGuard=true;if(t===void 0){e.sharedModel.setSource(this._trans.__("No data!"));this._originalValue=c.JSONExt.emptyObject}else{const n=JSON.stringify(t,null,4);e.sharedModel.setSource(n);this._originalValue=t;if(n.length>1&&n[0]==="{"){this.editor.setCursorPosition({line:0,column:1})}}this._changeGuard=false;this.commitButtonNode.hidden=true;this.revertButtonNode.hidden=true}}var v=n(24735);var _=n(44914);var b=n.n(_);var y=n(14366);class w extends b().Component{constructor(e){super(e);this._handleChange=e=>{this.setState({value:e.currentTarget.value})};this._handleSubmit=e=>{e.preventDefault();const t=parseInt(this._textInput.value,10);if(!isNaN(t)&&isFinite(t)&&1<=t&&t<=this.props.maxLine){this.props.handleSubmit(t)}return false};this._handleFocus=()=>{this.setState({hasFocus:true})};this._handleBlur=()=>{this.setState({hasFocus:false})};this._textInput=null;this.translator=e.translator||l.nullTranslator;this._trans=this.translator.load("jupyterlab");this.state={value:"",hasFocus:false,textInputId:y.DOMUtils.createDomID()+"-line-number-input"}}componentDidMount(){this._textInput.focus()}render(){return b().createElement("div",{className:"jp-lineFormSearch"},b().createElement("form",{name:"lineColumnForm",onSubmit:this._handleSubmit,noValidate:true},b().createElement("div",{className:(0,d.classes)("jp-lineFormWrapper","lm-lineForm-wrapper",this.state.hasFocus?"jp-lineFormWrapperFocusWithin":undefined)},b().createElement("input",{type:"text",id:this.state.textInputId,className:"jp-lineFormInput",onChange:this._handleChange,onFocus:this._handleFocus,onBlur:this._handleBlur,value:this.state.value,ref:e=>{this._textInput=e}}),b().createElement("div",{className:"jp-baseLineForm jp-lineFormButtonContainer"},b().createElement(d.lineFormIcon.react,{className:"jp-baseLineForm jp-lineFormButtonIcon",elementPosition:"center"}),b().createElement("input",{type:"submit",className:"jp-baseLineForm jp-lineFormButton",value:""}))),b().createElement("label",{className:"jp-lineFormCaption",htmlFor:this.state.textInputId},this._trans.__("Go to line number between 1 and %1",this.props.maxLine))))}}function C(e){const t=e.translator||l.nullTranslator;const n=t.load("jupyterlab");const i=t=>{if(t.key==="Enter"||t.key==="Spacebar"||t.key===" "){t.preventDefault();t.stopPropagation();e.handleClick()}else{return}};return b().createElement(v.TextItem,{onClick:e.handleClick,source:n.__("Ln %1, Col %2",e.line,e.column),title:n.__("Go to line number…"),tabIndex:0,onKeyDown:i})}class x extends d.VDomRenderer{constructor(e){super(new x.Model);this._popup=null;this.addClass("jp-mod-highlighted");this.translator=e||l.nullTranslator}render(){if(this.model===null){return null}else{return b().createElement(C,{line:this.model.line,column:this.model.column,translator:this.translator,handleClick:()=>this._handleClick()})}}_handleClick(){if(this._popup){this._popup.dispose()}const e=d.ReactWidget.create(b().createElement(w,{handleSubmit:e=>this._handleSubmit(e),currentLine:this.model.line,maxLine:this.model.editor.lineCount,translator:this.translator}));this._popup=(0,v.showPopup)({body:e,anchor:this,align:"right"})}_handleSubmit(e){this.model.editor.setCursorPosition({line:e-1,column:0});this._popup.dispose();this.model.editor.focus()}}(function(e){class t extends d.VDomModel{constructor(){super(...arguments);this._onSelectionChanged=()=>{const e=this._getAllState();const t=this.editor.getCursorPosition();this._line=t.line+1;this._column=t.column+1;this._triggerChange(e,this._getAllState())};this._line=1;this._column=1;this._editor=null}get editor(){return this._editor}set editor(e){var t;const n=this._editor;if((t=n===null||n===void 0?void 0:n.model)===null||t===void 0?void 0:t.selections){n.model.selections.changed.disconnect(this._onSelectionChanged)}const i=this._getAllState();this._editor=e;if(!this._editor){this._column=1;this._line=1}else{this._editor.model.selections.changed.connect(this._onSelectionChanged);const e=this._editor.getCursorPosition();this._column=e.column+1;this._line=e.line+1}this._triggerChange(i,this._getAllState())}get line(){return this._line}get column(){return this._column}_getAllState(){return[this._line,this._column]}_triggerChange(e,t){if(e[0]!==t[0]||e[1]!==t[1]){this.stateChanged.emit(void 0)}}}e.Model=t})(x||(x={}));const S="jp-mod-completer-enabled";const k="jp-mod-completer-active";const j="jp-mod-at-line-beginning";const I=new c.Token("@jupyterlab/codeeditor:IEditorServices",`A service for the text editor provider\n for the application. Use this to create new text editors and host them in your\n UI elements.`);const E=new c.Token("@jupyterlab/codeeditor:IPositionModel",`A service to handle an code editor cursor position.`);const T="jp-mod-has-primary-selection";const M="jp-mod-in-leading-whitespace";const D="jp-mod-dropTarget";const A=/^\s+$/;class P extends h.Widget{constructor(e){super();const{factory:t,model:n,editorOptions:i}=e;const s=this.editor=t({host:this.node,model:n,...i});s.model.selections.changed.connect(this._onSelectionsChanged,this)}get model(){return this.editor.model}dispose(){if(this.isDisposed){return}this.editor.dispose();super.dispose()}handleEvent(e){switch(e.type){case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;default:break}}onActivateRequest(e){this.editor.focus()}onAfterAttach(e){super.onAfterAttach(e);const t=this.node;t.addEventListener("lm-dragenter",this);t.addEventListener("lm-dragleave",this);t.addEventListener("lm-dragover",this);t.addEventListener("lm-drop",this)}onBeforeDetach(e){const t=this.node;t.removeEventListener("lm-dragenter",this);t.removeEventListener("lm-dragleave",this);t.removeEventListener("lm-dragover",this);t.removeEventListener("lm-drop",this)}_onSelectionsChanged(){const{start:e,end:t}=this.editor.getSelection();if(e.column!==t.column||e.line!==t.line){this.addClass(T);this.removeClass(M)}else{this.removeClass(T);if(this.editor.getLine(t.line).slice(0,t.column).match(A)){this.addClass(M)}else{this.removeClass(M)}}}_evtDragEnter(e){if(this.editor.getOption("readOnly")===true){return}const t=L.findTextData(e.mimeData);if(t===undefined){return}e.preventDefault();e.stopPropagation();this.addClass("jp-mod-dropTarget")}_evtDragLeave(e){this.removeClass(D);if(this.editor.getOption("readOnly")===true){return}const t=L.findTextData(e.mimeData);if(t===undefined){return}e.preventDefault();e.stopPropagation()}_evtDragOver(e){this.removeClass(D);if(this.editor.getOption("readOnly")===true){return}const t=L.findTextData(e.mimeData);if(t===undefined){return}e.preventDefault();e.stopPropagation();e.dropAction="copy";this.addClass(D)}_evtDrop(e){if(this.editor.getOption("readOnly")===true){return}const t=L.findTextData(e.mimeData);if(t===undefined){return}const n={top:e.y,bottom:e.y,left:e.x,right:e.x};const i=this.editor.getPositionForCoordinate(n);if(i===null){return}this.removeClass(D);e.preventDefault();e.stopPropagation();if(e.proposedAction==="none"){e.dropAction="none";return}const s=this.editor.getOffsetAt(i);this.model.sharedModel.updateSource(s,s,t)}}var L;(function(e){function t(e){const t=e.types();const n=t.find((e=>e.indexOf("text")===0));if(n===undefined){return undefined}return e.getData(n)}e.findTextData=t})(L||(L={}));class R extends h.Widget{constructor(e){var t;super();this.model=e.model;const n=new P({factory:e.factory,model:this.model,editorOptions:{...e.editorOptions,config:{...(t=e.editorOptions)===null||t===void 0?void 0:t.config,readOnly:true}}});this.editor=n.editor;const i=this.layout=new h.StackedLayout;i.addWidget(n)}static createCodeViewer(e){const{content:t,mimeType:n,...i}=e;const s=new a.Model({mimeType:n});s.sharedModel.setSource(t);const o=new R({...i,model:s});o.disposed.connect((()=>{s.dispose()}));return o}get content(){return this.model.sharedModel.getSource()}get mimeType(){return this.model.mimeType}}},17325:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(97913);var a=n(38457);var l=n(85072);var d=n.n(l);var c=n(97825);var h=n.n(c);var u=n(77659);var p=n.n(u);var m=n(55056);var g=n.n(m);var f=n(10540);var v=n.n(f);var _=n(41113);var b=n.n(_);var y=n(9534);var w={};w.styleTagTransform=b();w.setAttributes=g();w.insert=p().bind(null,"head");w.domAPI=h();w.insertStyleElement=v();var C=d()(y.A,w);const x=y.A&&y.A.locals?y.A.locals:undefined},21699:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>T,lineColItem:()=>I});var i=n(94307);var s=n(54723);var o=n(24735);var r=n(30619);var a=n(58285);var l=n(43370);var d;(function(e){e.deleteLine="codemirror:delete-line";e.toggleBlockComment="codemirror:toggle-block-comment";e.toggleComment="codemirror:toggle-comment";e.selectNextOccurrence="codemirror:select-next-occurrence";e.toggleTabFocusMode="codemirror:toggle-tab-focus-mode"})(d||(d={}));const c=".cm-content";const h={id:"@jupyterlab/codemirror-extension:commands",description:"Registers commands acting on selected/active CodeMirror editor.",autoStart:true,optional:[r.ITranslator],activate:(e,t)=>{t=t!==null&&t!==void 0?t:r.nullTranslator;const n=t.load("jupyterlab");const i=e=>e.classList.contains(c);const s=()=>{var t,n;const s=(t=e.contextMenuHitTest(i))!==null&&t!==void 0?t:(n=document.activeElement)===null||n===void 0?void 0:n.closest(c);if(!s){return}if(!("cmView"in s)){return}return s.cmView.view};const o=()=>!!s();e.commands.addCommand(d.deleteLine,{label:n.__("Delete the current line"),execute:()=>{const e=s();if(!e){return}(0,a.deleteLine)(e)},isEnabled:o});e.commands.addCommand(d.toggleBlockComment,{label:n.__("Toggle Block Comment"),caption:n.__("Toggles block comments in languages which support it (e.g. C, JavaScript)"),execute:()=>{const e=s();if(!e){return}(0,a.toggleBlockComment)(e)},isEnabled:o});e.commands.addCommand(d.toggleComment,{label:n.__("Toggle Comment"),execute:()=>{const e=s();if(!e){return}(0,a.toggleComment)(e)},isEnabled:o});e.commands.addCommand(d.toggleTabFocusMode,{label:n.__("Toggle Tab Focus Mode"),caption:n.__("Toggles behavior of Tab key between inserting indentation and moving to next focusable element"),execute:()=>{const e=s();if(!e){return}(0,a.toggleTabFocusMode)(e)},isEnabled:o});e.commands.addCommand(d.selectNextOccurrence,{label:n.__("Select Next Occurrence"),execute:()=>{const e=s();if(!e){return}(0,l.selectNextOccurrence)(e)},isEnabled:o})}};var u=n(4452);var p=n(66899);var m=n(84739);var g=n(26331);var f=n(5592);var v=n(41742);var _=n.n(v);var b=n(44914);var y=n.n(b);const w="@jupyterlab/codemirror-extension:plugin";const C={id:"@jupyterlab/codemirror-extension:languages",description:"Provides the CodeMirror languages registry.",provides:p.IEditorLanguageRegistry,optional:[r.ITranslator],activate:(e,t)=>{const i=new p.EditorLanguageRegistry;for(const n of p.EditorLanguageRegistry.getDefaultLanguages(t)){i.addLanguage(n)}i.addLanguage({name:"ipythongfm",mime:"text/x-ipythongfm",load:async()=>{const[e,t,s]=await Promise.all([n.e(5625).then(n.t.bind(n,95625,23)),Promise.all([n.e(1423),n.e(9329),n.e(2819),n.e(1674),n.e(6575),n.e(5145)]).then(n.bind(n,9329)),n.e(9746).then(n.bind(n,89746))]);const o=e.markdown({base:e.markdownLanguage,codeLanguages:e=>i.findBest(e),extensions:[(0,p.parseMathIPython)(u.StreamLanguage.define(s.stexMath).parser)]});return new u.LanguageSupport(o.language,[o.support,(0,p.pythonBuiltin)(t.pythonLanguage)])}});return i}};const x={id:"@jupyterlab/codemirror-extension:themes",description:"Provides the CodeMirror theme registry",provides:p.IEditorThemeRegistry,optional:[r.ITranslator],activate:(e,t)=>{const n=new p.EditorThemeRegistry;for(const i of p.EditorThemeRegistry.getDefaultThemes(t)){n.addTheme(i)}return n}};const S={id:"@jupyterlab/codemirror-extension:extensions",description:"Provides the CodeMirror extension factory registry.",provides:p.IEditorExtensionRegistry,requires:[p.IEditorThemeRegistry],optional:[r.ITranslator,m.ISettingRegistry,g.IFormRendererRegistry],activate:(e,t,n,i,s)=>{const o=new p.EditorExtensionRegistry;for(const r of p.EditorExtensionRegistry.getDefaultExtensions({themes:t,translator:n})){o.addExtension(r)}if(i){const t=e=>{var t;o.baseConfiguration=(t=e.get("defaultConfig").composite)!==null&&t!==void 0?t:{}};void Promise.all([i.load(w),e.restored]).then((([e])=>{t(e);e.changed.connect(t)}));s===null||s===void 0?void 0:s.addRenderer(`${w}.defaultConfig`,{fieldRenderer:e=>{const t=y().useMemo((()=>o.settingsSchema),[]);const i={};for(const[n,s]of Object.entries(o.defaultConfiguration)){if(typeof t[n]!=="undefined"){i[n]=s}}return y().createElement("div",{className:"jp-FormGroup-contentNormal"},y().createElement("h3",{className:"jp-FormGroup-fieldLabel jp-FormGroup-contentItem"},e.schema.title),e.schema.description&&y().createElement("div",{className:"jp-FormGroup-description"},e.schema.description),y().createElement(g.FormComponent,{schema:{title:e.schema.title,description:e.schema.description,type:"object",properties:t,additionalProperties:false},validator:_(),formData:{...i,...e.formData},formContext:{defaultFormData:i},liveValidate:true,onChange:t=>{var n;const s={};for(const[e,o]of Object.entries((n=t.formData)!==null&&n!==void 0?n:{})){const t=i[e];if(t===undefined||!f.JSONExt.deepEqual(o,t)){s[e]=o}}e.onChange(s)},tagName:"div",translator:n!==null&&n!==void 0?n:r.nullTranslator}))}})}return o}};const k={id:"@jupyterlab/codemirror-extension:binding",description:"Register the CodeMirror extension factory binding the editor and the shared model.",autoStart:true,requires:[p.IEditorExtensionRegistry],activate:(e,t)=>{t.addExtension({name:"shared-model-binding",factory:e=>{var t;const n=e.model.sharedModel;return p.EditorExtensionRegistry.createImmutableExtension((0,p.ybinding)({ytext:n.ysource,undoManager:(t=n.undoManager)!==null&&t!==void 0?t:undefined}))}})}};const j={id:"@jupyterlab/codemirror-extension:services",description:"Provides the service to instantiate CodeMirror editors.",provides:s.IEditorServices,requires:[p.IEditorLanguageRegistry,p.IEditorExtensionRegistry],optional:[r.ITranslator],activate:(e,t,n,i)=>{const s=new p.CodeMirrorEditorFactory({extensions:n,languages:t,translator:i!==null&&i!==void 0?i:r.nullTranslator});return{factoryService:s,mimeTypeService:new p.CodeMirrorMimeTypeService(t)}}};const I={id:"@jupyterlab/codemirror-extension:line-col-status",description:"Provides the code editor cursor position model.",autoStart:true,requires:[r.ITranslator],optional:[i.ILabShell,o.IStatusBar],provides:s.IPositionModel,activate:(e,t,n,i)=>{const o=new s.LineCol(t);const r=new Set;if(i){i.registerStatusItem(I.id,{priority:1,item:o,align:"right",rank:2,isActive:()=>!!o.model.editor})}const a=t=>{r.add(t);if(e.shell.currentWidget){d(e.shell,{newValue:e.shell.currentWidget,oldValue:null})}};const l=()=>{d(e.shell,{oldValue:e.shell.currentWidget,newValue:e.shell.currentWidget})};function d(e,t){Promise.all([...r].map((e=>e(t.newValue)))).then((e=>{var t;o.model.editor=(t=e.filter((e=>e!==null))[0])!==null&&t!==void 0?t:null})).catch((e=>{console.error("Get editors",e)}))}if(n){n.currentChanged.connect(d)}return{addEditorProvider:a,update:l}}};const E=[h,C,x,k,S,j,I];const T=E},72508:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(17325);var a=n(3579);var l=n(23359)},68191:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CodeMirrorEditor:()=>le,CodeMirrorEditorFactory:()=>ce,CodeMirrorMimeTypeService:()=>he,CodeMirrorSearchHighlighter:()=>me,EditorExtensionRegistry:()=>J,EditorLanguageRegistry:()=>se,EditorSearchProvider:()=>pe,EditorThemeRegistry:()=>ee,ExtensionsHandler:()=>K,IEditorExtensionRegistry:()=>fe,IEditorLanguageRegistry:()=>ve,IEditorThemeRegistry:()=>_e,PythonBuiltin:()=>te,StateCommands:()=>d,YRange:()=>F,YSyncConfig:()=>z,customTheme:()=>b,jupyterEditorTheme:()=>X,jupyterHighlightStyle:()=>Q,jupyterTheme:()=>Z,parseMathIPython:()=>E,pythonBuiltin:()=>ne,rulers:()=>P,ySync:()=>V,ySyncAnnotation:()=>W,ySyncFacet:()=>H,ybinding:()=>U});var i=n(58285);var s=n(54723);const o="[data-jp-code-runner]";const r='[data-jp-interaction-mode="terminal"]';const a=".jp-CodeMirrorEditor:not(.jp-mod-has-primary-selection):not(.jp-mod-in-leading-whitespace):not(.jp-mod-completer-active)";const l=".jp-mod-editMode .jp-Cell.jp-mod-active";var d;(function(e){function t(e){var t;let n=(t=e.dom.parentElement)===null||t===void 0?void 0:t.classList;let o=n===null||n===void 0?void 0:n.contains(s.COMPLETER_ENABLED_CLASS);let r=n===null||n===void 0?void 0:n.contains(s.COMPLETER_LINE_BEGINNING_CLASS);if(o&&!r){return false}const a={state:e.state,dispatch:e.dispatch};const l=e.state.selection.main.from;const d=e.state.selection.main.to;if(l!=d){return(0,i.indentMore)(a)}const c=e.state.doc.lineAt(l);const h=e.state.doc.slice(c.from,l).toString();if(/^\s*$/.test(h)){return(0,i.indentMore)(a)}else{return(0,i.insertTab)(a)}}e.indentMoreOrInsertTab=t;function n(e){var t;if((t=e.dom.parentElement)===null||t===void 0?void 0:t.classList.contains(s.COMPLETER_ACTIVE_CLASS)){return false}if(e.dom.closest(r)){return false}const n={state:e.state,dispatch:e.dispatch};return(0,i.insertNewlineAndIndent)(n)}e.completerOrInsertNewLine=n;function d(e){if(e.dom.closest(o)){return true}return false}e.preventNewLineOnRun=d;function c(e){if(e.dom.closest(o)){return false}else{const t={state:e.state,dispatch:e.dispatch};return(0,i.insertBlankLine)(t)}}e.insertBlankLineOnRun=c;function h(e){const t={state:e.state,dispatch:e.dispatch};const n=(0,i.simplifySelection)(t);if(e.dom.closest(l)){return false}else{return n}}e.simplifySelectionAndMaybeSwitchToCommandMode=h;function u(e){if(e.dom.closest(a)){return false}return(0,i.indentLess)(e)}e.dedentIfNotLaunchingTooltip=u})(d||(d={}));var c=n(4452);var h=n(71674);var u=n(22819);var p=n(5592);var m=n(2336);var g=n(75128);var f=n(30619);const v=h.Facet.define({combine(e){return(0,h.combineConfig)(e,{fontFamily:null,fontSize:null,lineHeight:null},{fontFamily:(e,t)=>e!==null&&e!==void 0?e:t,fontSize:(e,t)=>e!==null&&e!==void 0?e:t,lineHeight:(e,t)=>e!==null&&e!==void 0?e:t})}});function _(e){const{fontFamily:t,fontSize:n,lineHeight:i}=e.state.facet(v);let s="";if(n){s+=`font-size: ${n}px !important;`}if(t){s+=`font-family: ${t} !important;`}if(i){s+=`line-height: ${i.toString()} !important`}return{style:s}}function b(e){return[v.of(e),u.EditorView.editorAttributes.of(_)]}var y=n(66575);var w=n(45145);const C="InlineMathDollar";const x="InlineMathBracket";const S="BlockMathDollar";const k="BlockMathBracket";const j={[C]:1,[x]:3,[S]:2,[k]:3};const I=Object.keys(j).reduce(((e,t)=>{e[t]={mark:`${t}Mark`,resolve:t};return e}),{});function E(e){const t=new Array;Object.keys(j).forEach((e=>{t.push({name:e,style:w.tags.emphasis},{name:`${e}Mark`,style:w.tags.processingInstruction})}));return{defineNodes:t,parseInline:[{name:S,parse(e,t,n){if(t!=36||e.char(n+1)!=36){return-1}return e.addDelimiter(I[S],n,n+j[S],true,true)}},{name:C,parse(e,t,n){if(t!=36||e.char(n+1)==36){return-1}return e.addDelimiter(I[C],n,n+j[C],true,true)}},{name:x,before:"Escape",parse(e,t,n){if(t!=92||e.char(n+1)!=92||![40,41].includes(e.char(n+2))){return-1}return e.addDelimiter(I[x],n,n+j[x],e.char(n+2)==40,e.char(n+2)==41)}},{name:k,before:"Escape",parse(e,t,n){if(t!=92||e.char(n+1)!=92||![91,93].includes(e.char(n+2))){return-1}return e.addDelimiter(I[k],n,n+j[k],e.char(n+2)==91,e.char(n+2)==93)}}],wrap:e?(0,y.parseMixed)(((t,n)=>{const i=j[t.type.name];if(i){return{parser:e,overlay:[{from:t.from+i,to:t.to-i}]}}return null})):undefined}}const T="cm-rulers";const M=u.EditorView.baseTheme({[`.${T}`]:{borderRight:"1px dotted gray",opacity:.7}});const D=h.Facet.define({combine(e){const t=e.reduce(((e,t)=>e.concat(t.filter(((n,i)=>!e.includes(n)&&i==t.lastIndexOf(n))))),[]);return t}});const A=u.ViewPlugin.fromClass(class{constructor(e){var t,n;this.rulersContainer=e.dom.appendChild(document.createElement("div"));this.rulersContainer.style.cssText=`\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: hidden;\n `;const i=e.defaultCharacterWidth;const s=e.state.facet(D);const o=(n=(t=e.scrollDOM.querySelector(".cm-gutters"))===null||t===void 0?void 0:t.clientWidth)!==null&&n!==void 0?n:0;this.rulers=s.map((e=>{const t=this.rulersContainer.appendChild(document.createElement("div"));t.classList.add(T);t.style.cssText=`\n position: absolute;\n left: ${o+e*i}px;\n height: 100%;\n `;t.style.width="6px";return t}))}update(e){var t,n;const i=e.view.state.facet(D);if(e.viewportChanged||e.geometryChanged||!p.JSONExt.deepEqual(i,e.startState.facet(D))){const s=(n=(t=e.view.scrollDOM.querySelector(".cm-gutters"))===null||t===void 0?void 0:t.clientWidth)!==null&&n!==void 0?n:0;const o=e.view.defaultCharacterWidth;this.rulers.forEach(((e,t)=>{e.style.left=`${s+i[t]*o}px`}))}}destroy(){this.rulers.forEach((e=>{e.remove()}));this.rulersContainer.remove()}});function P(e){return[M,D.of(e),A]}class L{constructor(e){this.undoManager=e}}const R=h.Facet.define({combine(e){return e[e.length-1]}});class N{constructor(e){this._onStackItemAdded=({stackItem:e,changedParentTypes:t})=>{if(t.has(this._syncConf.ytext)&&this._beforeChangeSelection&&!e.meta.has(this)){e.meta.set(this,this._beforeChangeSelection)}};this._onStackItemPopped=({stackItem:e})=>{const t=e.meta.get(this);if(t){const e=this._syncConf.fromYRange(t);this._view.dispatch(this._view.state.update({selection:e,effects:[u.EditorView.scrollIntoView(e)]}));this._storeSelection()}};this._storeSelection=()=>{this._beforeChangeSelection=this._syncConf.toYRange(this._view.state.selection.main)};this._view=e;this._conf=e.state.facet(R);this._undoManager=this._conf.undoManager;this._syncConf=e.state.facet(H);this._beforeChangeSelection=null;this._undoManager.on("stack-item-added",this._onStackItemAdded);this._undoManager.on("stack-item-popped",this._onStackItemPopped);this._undoManager.addTrackedOrigin(this._syncConf)}update(e){if(e.selectionSet&&(e.transactions.length===0||e.transactions[0].annotation(W)!==this._syncConf)){this._storeSelection()}}destroy(){this._undoManager.off("stack-item-added",this._onStackItemAdded);this._undoManager.off("stack-item-popped",this._onStackItemPopped);this._undoManager.removeTrackedOrigin(this._syncConf)}}const O=u.ViewPlugin.fromClass(N);var B=n(74356);class F{constructor(e,t){this.yanchor=e;this.yhead=t}toJSON(){return{yanchor:(0,B.relativePositionToJSON)(this.yanchor),yhead:(0,B.relativePositionToJSON)(this.yhead)}}static fromJSON(e){return new F((0,B.createRelativePositionFromJSON)(e.yanchor),(0,B.createRelativePositionFromJSON)(e.yhead))}}class z{constructor(e){this.ytext=e}toYPos(e,t=0){return(0,B.createRelativePositionFromTypeIndex)(this.ytext,e,t)}fromYPos(e){const t=(0,B.createAbsolutePositionFromRelativePosition)((0,B.createRelativePositionFromJSON)(e),this.ytext.doc);if(t==null||t.type!==this.ytext){throw new Error("[y-codemirror] The position you want to retrieve was created by a different document")}return{pos:t.index,assoc:t.assoc}}toYRange(e){const t=e.assoc;const n=this.toYPos(e.anchor,t);const i=this.toYPos(e.head,t);return new F(n,i)}fromYRange(e){const t=this.fromYPos(e.yanchor);const n=this.fromYPos(e.yhead);if(t.pos===n.pos){return h.EditorSelection.cursor(n.pos,n.assoc)}return h.EditorSelection.range(t.pos,n.pos)}}const H=h.Facet.define({combine(e){return e[e.length-1]}});const W=h.Annotation.define();const V=u.ViewPlugin.fromClass(class{constructor(e){this.conf=e.state.facet(H);this._observer=(t,n)=>{var i;if(n.origin!==this.conf){const n=t.delta;const s=[];let o=0;for(let e=0;e0&&e.transactions[0].annotation(W)===this.conf){return}const t=this.conf.ytext;t.doc.transact((()=>{let n=0;e.changes.iterChanges(((e,i,s,o,r)=>{const a=r.sliceString(0,r.length,"\n");if(e!==i){t.delete(e+n,i-e)}if(a.length>0){t.insert(e+n,a)}n+=a.length-(i-e)}))}),this.conf)}destroy(){this._ytext.unobserve(this._observer)}});function U({ytext:e,undoManager:t}){const n=new z(e);const i=[H.of(n),V];if(t){i.push(R.of(new L(t)),O)}return i}var q=n(43370);const $="jp-mod-readOnly";class K{constructor({baseConfiguration:e,config:t,defaultExtensions:n}={}){this._configChanged=new m.Signal(this);this._disposed=new m.Signal(this);this._isDisposed=false;this._immutables=new Set;this._baseConfig=e!==null&&e!==void 0?e:{};this._config=t!==null&&t!==void 0?t:{};this._configurableBuilderMap=new Map(n);const i=Object.keys(this._config).concat(Object.keys(this._baseConfig));this._immutables=new Set([...this._configurableBuilderMap.keys()].filter((e=>!i.includes(e))))}get configChanged(){return this._configChanged}get disposed(){return this._disposed}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;this._disposed.emit();m.Signal.clearData(this)}getOption(e){var t;return(t=this._config[e])!==null&&t!==void 0?t:this._baseConfig[e]}hasOption(e){return Object.keys(this._config).includes(e)||Object.keys(this._baseConfig).includes(e)}setOption(e,t){if(this._config[e]!==t){this._config[e]=t;this._configChanged.emit({[e]:t})}}setBaseOptions(e){const t=this._getChangedOptions(e,this._baseConfig);if(t.length>0){this._baseConfig=e;const n=Object.keys(this._config);const i=t.filter((e=>!n.includes(e)));if(i.length>0){this._configChanged.emit(i.reduce(((e,t)=>{e[t]=this._baseConfig[t];return e}),{}))}}for(const n of Object.keys(e)){if(n in this._config&&this._config[n]!=e[n]){this.setOption(n,e[n])}}}setOptions(e){const t=this._getChangedOptions(e,this._config);if(t.length>0){this._config={...e};this._configChanged.emit(t.reduce(((e,t)=>{var n;e[t]=(n=this._config[t])!==null&&n!==void 0?n:this._baseConfig[t];return e}),{}))}}reconfigureExtension(e,t,n){const i=this.getEffect(e.state,t,n);if(i){e.dispatch({effects:[i]})}}reconfigureExtensions(e,t){const n=Object.keys(t).filter((e=>this.has(e))).map((n=>this.getEffect(e.state,n,t[n])));e.dispatch({effects:n.filter((e=>e!==null))})}injectExtension(e,t){e.dispatch({effects:h.StateEffect.appendConfig.of(t)})}getInitialExtensions(){const e={...this._baseConfig,...this._config};const t=[...this._immutables].map((e=>{var t;return(t=this.get(e))===null||t===void 0?void 0:t.instance(undefined)})).filter((e=>e));for(const n of Object.keys(e)){const i=this.get(n);if(i){const s=e[n];t.push(i.instance(s))}}return t}get(e){return this._configurableBuilderMap.get(e)}has(e){return this._configurableBuilderMap.has(e)}getEffect(e,t,n){var i;const s=this.get(t);return(i=s===null||s===void 0?void 0:s.reconfigure(n))!==null&&i!==void 0?i:null}_getChangedOptions(e,t){const n=new Array;const i=new Array;for(const[s,o]of Object.entries(e)){i.push(s);if(t[s]!==o){n.push(s)}}n.push(...Object.keys(t).filter((e=>!i.includes(e))));return n}}class J{constructor(){this.configurationBuilder=new Map;this.configurationSchema={};this.defaultOptions={};this.handlers=new Set;this.immutableExtensions=new Set;this._baseConfiguration={}}get baseConfiguration(){return{...this.defaultOptions,...this._baseConfiguration}}set baseConfiguration(e){if(!p.JSONExt.deepEqual(e,this._baseConfiguration)){this._baseConfiguration=e;for(const e of this.handlers){e.setBaseOptions(this.baseConfiguration)}}}get defaultConfiguration(){return Object.freeze({...this.defaultOptions})}get settingsSchema(){return Object.freeze(p.JSONExt.deepCopy(this.configurationSchema))}addExtension(e){var t;if(this.configurationBuilder.has(e.name)){throw new Error(`Extension named ${e.name} is already registered.`)}this.configurationBuilder.set(e.name,e);if(typeof e.default!="undefined"){this.defaultOptions[e.name]=e.default}if(e.schema){this.configurationSchema[e.name]={default:(t=e.default)!==null&&t!==void 0?t:null,...e.schema};this.defaultOptions[e.name]=this.configurationSchema[e.name].default}}createNew(e){const t=new Array;for(const[i,s]of this.configurationBuilder.entries()){const n=s.factory(e);if(n){t.push([i,n])}}const n=new K({baseConfiguration:this.baseConfiguration,config:e.config,defaultExtensions:t});this.handlers.add(n);n.disposed.connect((()=>{this.handlers.delete(n)}));return n}}(function(e){class t{constructor(e){this._compartment=new h.Compartment;this._builder=e}instance(e){return this._compartment.of(this._builder(e))}reconfigure(e){return this._compartment.reconfigure(this._builder(e))}}class n{constructor(e){this._extension=e}instance(){return this._extension}reconfigure(){return null}}function s(e){return new t(e)}e.createConfigurableExtension=s;function o(e,n=[]){return new t((t=>t?e:n))}e.createConditionalExtension=o;function r(e){return new n(e)}e.createImmutableExtension=r;function a(e={}){const{themes:t,translator:n}=e;const a=(n!==null&&n!==void 0?n:f.nullTranslator).load("jupyterlab");const l=[Object.freeze({name:"autoClosingBrackets",default:false,factory:()=>o((0,g.wm)()),schema:{type:"boolean",title:a.__("Auto Closing Brackets")}}),Object.freeze({name:"codeFolding",default:false,factory:()=>o((0,c.foldGutter)()),schema:{type:"boolean",title:a.__("Code Folding")}}),Object.freeze({name:"cursorBlinkRate",default:1200,factory:()=>s((e=>(0,u.drawSelection)({cursorBlinkRate:e}))),schema:{type:"number",title:a.__("Cursor blinking rate"),description:a.__("Half-period in milliseconds used for cursor blinking. The default blink rate is 1200ms. By setting this to zero, blinking can be disabled.")}}),Object.freeze({name:"highlightActiveLine",default:false,factory:()=>o((0,u.highlightActiveLine)()),schema:{type:"boolean",title:a.__("Highlight the active line")}}),Object.freeze({name:"highlightSpecialCharacters",default:true,factory:()=>o((0,u.highlightSpecialChars)()),schema:{type:"boolean",title:a.__("Highlight special characters")}}),Object.freeze({name:"highlightTrailingWhitespace",default:false,factory:()=>o((0,u.highlightTrailingWhitespace)()),schema:{type:"boolean",title:a.__("Highlight trailing white spaces")}}),Object.freeze({name:"highlightWhitespace",default:false,factory:()=>o((0,u.highlightWhitespace)()),schema:{type:"boolean",title:a.__("Highlight white spaces")}}),Object.freeze({name:"indentUnit",default:"4",factory:()=>s((e=>e=="Tab"?c.indentUnit.of("\t"):c.indentUnit.of(" ".repeat(parseInt(e,10))))),schema:{type:"string",title:a.__("Indentation unit"),description:a.__("The indentation is a `Tab` or the number of spaces. This defaults to 4 spaces."),enum:["Tab","1","2","4","8"]}}),Object.freeze({name:"keymap",default:[{key:"Mod-Enter",run:d.insertBlankLineOnRun},{key:"Enter",run:d.completerOrInsertNewLine},{key:"Escape",run:d.simplifySelectionAndMaybeSwitchToCommandMode},...i.defaultKeymap.filter((e=>!["Ctrl-m","Mod-Enter","Shift-Mod-k","Mod-/","Alt-A","Escape","Enter"].includes(e.key))),{key:"Tab",run:d.indentMoreOrInsertTab,shift:d.dedentIfNotLaunchingTooltip}],factory:()=>s((e=>u.keymap.of(e)))}),Object.freeze({name:"lineNumbers",default:true,factory:()=>o((0,u.lineNumbers)()),schema:{type:"boolean",title:a.__("Line Numbers")}}),Object.freeze({name:"lineWrap",factory:()=>o(u.EditorView.lineWrapping),default:true,schema:{type:"boolean",title:a.__("Line Wrap")}}),Object.freeze({name:"dropCursor",default:true,factory:()=>o((0,u.dropCursor)()),schema:{type:"boolean",title:a.__("Drop Cursor")}}),Object.freeze({name:"matchBrackets",default:true,factory:()=>o([(0,c.bracketMatching)(),h.Prec.high(u.keymap.of(g.Bc))]),schema:{type:"boolean",title:a.__("Match Brackets")}}),Object.freeze({name:"rectangularSelection",default:true,factory:()=>o([(0,u.rectangularSelection)(),(0,u.crosshairCursor)()]),schema:{type:"boolean",title:a.__("Rectangular selection"),description:a.__("Rectangular (block) selection can be created by dragging the mouse pointer while holding the left mouse button and the Alt key. When the Alt key is pressed, a crosshair cursor will appear, indicating that the rectangular selection mode is active.")}}),Object.freeze({name:"readOnly",default:false,factory:()=>s((e=>[h.EditorState.readOnly.of(e),e?u.EditorView.editorAttributes.of({class:$}):[]]))}),Object.freeze({name:"rulers",default:[],factory:()=>s((e=>e.length>0?P(e):[])),schema:{type:"array",title:a.__("Rulers"),items:{type:"number",minimum:0}}}),Object.freeze({name:"extendSelection",default:true,factory:()=>o(u.keymap.of([{key:"Mod-Shift-l",run:q.selectSelectionMatches,preventDefault:true}]))}),Object.freeze({name:"searchWithCM",default:false,factory:()=>o(u.keymap.of([{key:"Mod-f",run:q.openSearchPanel,scope:"editor search-panel"},{key:"F3",run:q.findNext,shift:q.findPrevious,scope:"editor search-panel",preventDefault:true},{key:"Mod-g",run:q.findNext,shift:q.findPrevious,scope:"editor search-panel",preventDefault:true},{key:"Escape",run:q.closeSearchPanel,scope:"editor search-panel"}]))}),Object.freeze({name:"scrollPastEnd",default:false,factory:e=>e.inline?null:o((0,u.scrollPastEnd)())}),Object.freeze({name:"smartIndent",default:true,factory:()=>o((0,c.indentOnInput)()),schema:{type:"boolean",title:a.__("Smart Indentation")}}),Object.freeze({name:"tabFocusable",default:true,factory:()=>o(u.EditorView.contentAttributes.of({tabIndex:"0"}),u.EditorView.contentAttributes.of({tabIndex:"-1"}))}),Object.freeze({name:"tabSize",default:4,factory:()=>s((e=>h.EditorState.tabSize.of(e))),schema:{type:"number",title:a.__("Tab size")}}),Object.freeze({name:"tooltips",factory:()=>r((0,u.tooltips)({position:"absolute",parent:document.body}))}),Object.freeze({name:"allowMultipleSelections",default:true,factory:()=>s((e=>h.EditorState.allowMultipleSelections.of(e))),schema:{type:"boolean",title:a.__("Multiple selections")}}),Object.freeze({name:"customStyles",factory:()=>s((e=>b(e))),default:{fontFamily:null,fontSize:null,lineHeight:null},schema:{title:a.__("Custom editor styles"),type:"object",properties:{fontFamily:{type:["string","null"],title:a.__("Font Family")},fontSize:{type:["number","null"],minimum:1,maximum:100,title:a.__("Font Size")},lineHeight:{type:["number","null"],title:a.__("Line Height")}},additionalProperties:false}})];if(t){l.push(Object.freeze({name:"theme",default:"jupyter",factory:()=>s((e=>t.getTheme(e))),schema:{type:"string",title:a.__("Theme"),description:a.__("CodeMirror theme")}}))}if(n){l.push(Object.freeze({name:"translation",default:{"Control character":a.__("Control character"),"Selection deleted":a.__("Selection deleted"),"Folded lines":a.__("Folded lines"),"Unfolded lines":a.__("Unfolded lines"),to:a.__("to"),"folded code":a.__("folded code"),unfold:a.__("unfold"),"Fold line":a.__("Fold line"),"Unfold line":a.__("Unfold line"),"Go to line":a.__("Go to line"),go:a.__("go"),Find:a.__("Find"),Replace:a.__("Replace"),next:a.__("next"),previous:a.__("previous"),all:a.__("all"),"match case":a.__("match case"),replace:a.__("replace"),"replace all":a.__("replace all"),close:a.__("close"),"current match":a.__("current match"),"replaced $ matches":a.__("replaced $ matches"),"replaced match on line $":a.__("replaced match on line $"),"on line":a.__("on line"),Completions:a.__("Completions"),Diagnostics:a.__("Diagnostics"),"No diagnostics":a.__("No diagnostics")},factory:()=>s((e=>h.EditorState.phrases.of(e)))}))}return l}e.getDefaultExtensions=a})(J||(J={}));var G=n(30397);var Y=n(91268);const X=u.EditorView.theme({"&":{background:"var(--jp-layout-color0)",color:"var(--jp-content-font-color1)"},".jp-CodeConsole &, .jp-Notebook &":{background:"transparent"},".cm-content":{caretColor:"var(--jp-editor-cursor-color)"},".cm-scroller":{fontFamily:"inherit"},".cm-cursor, .cm-dropCursor":{borderLeft:"var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color)"},".cm-selectionBackground, .cm-content ::selection":{backgroundColor:"var(--jp-editor-selected-background)"},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{backgroundColor:"var(--jp-editor-selected-focused-background)"},".cm-gutters":{borderRight:"1px solid var(--jp-border-color2)",backgroundColor:"var(--jp-layout-color2)"},".cm-gutter":{backgroundColor:"var(--jp-layout-color2)"},".cm-activeLine":{backgroundColor:"color-mix(in srgb, var(--jp-layout-color3) 25%, transparent)"},".cm-lineNumbers":{color:"var(--jp-ui-font-color2)"},".cm-searchMatch":{backgroundColor:"var(--jp-search-unselected-match-background-color)",color:"var(--jp-search-unselected-match-color)"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"var(--jp-search-selected-match-background-color) !important",color:"var(--jp-search-selected-match-color) !important"},".cm-tooltip":{backgroundColor:"var(--jp-layout-color1)"}});const Q=c.HighlightStyle.define([{tag:w.tags.meta,color:"var(--jp-mirror-editor-meta-color)"},{tag:w.tags.heading,color:"var(--jp-mirror-editor-header-color)"},{tag:[w.tags.heading1,w.tags.heading2,w.tags.heading3,w.tags.heading4],color:"var(--jp-mirror-editor-header-color)",fontWeight:"bold"},{tag:w.tags.keyword,color:"var(--jp-mirror-editor-keyword-color)",fontWeight:"bold"},{tag:w.tags.atom,color:"var(--jp-mirror-editor-atom-color)"},{tag:w.tags.number,color:"var(--jp-mirror-editor-number-color)"},{tag:[w.tags.definition(w.tags.name),w.tags.function(w.tags.definition(w.tags.variableName))],color:"var(--jp-mirror-editor-def-color)"},{tag:w.tags.standard(w.tags.variableName),color:"var(--jp-mirror-editor-builtin-color)"},{tag:[w.tags.special(w.tags.variableName),w.tags.self],color:"var(--jp-mirror-editor-variable-2-color)"},{tag:w.tags.punctuation,color:"var(--jp-mirror-editor-punctuation-color)"},{tag:w.tags.propertyName,color:"var(--jp-mirror-editor-property-color)"},{tag:w.tags.operator,color:"var(--jp-mirror-editor-operator-color)",fontWeight:"bold"},{tag:w.tags.comment,color:"var(--jp-mirror-editor-comment-color)",fontStyle:"italic"},{tag:w.tags.string,color:"var(--jp-mirror-editor-string-color)"},{tag:[w.tags.labelName,w.tags.monospace,w.tags.special(w.tags.string)],color:"var(--jp-mirror-editor-string-2-color)"},{tag:w.tags.bracket,color:"var(--jp-mirror-editor-bracket-color)"},{tag:w.tags.tagName,color:"var(--jp-mirror-editor-tag-color)"},{tag:w.tags.attributeName,color:"var(--jp-mirror-editor-attribute-color)"},{tag:w.tags.quote,color:"var(--jp-mirror-editor-quote-color)"},{tag:w.tags.link,color:"var(--jp-mirror-editor-link-color)",textDecoration:"underline"},{tag:[w.tags.separator,w.tags.derefOperator,w.tags.paren],color:""},{tag:w.tags.strong,fontWeight:"bold"},{tag:w.tags.emphasis,fontStyle:"italic"},{tag:w.tags.strikethrough,textDecoration:"line-through"},{tag:w.tags.bool,color:"var(--jp-mirror-editor-keyword-color)",fontWeight:"bold"}]);const Z=[X,(0,c.syntaxHighlighting)(Q)];class ee{constructor(){this._themeMap=new Map([["jupyter",Object.freeze({name:"jupyter",theme:Z})]])}get themes(){return Array.from(this._themeMap.values())}defaultTheme(){return this._themeMap.get("jupyter").theme}addTheme(e){if(this._themeMap.has(e.name)){throw new Error(`A theme named '${e.name}' is already registered.`)}this._themeMap.set(e.name,{displayName:e.name,...e})}getTheme(e){var t;const n=(t=this._themeMap.get(e))===null||t===void 0?void 0:t.theme;return n!==null&&n!==void 0?n:this.defaultTheme()}}(function(e){function t(e){const t=(e!==null&&e!==void 0?e:f.nullTranslator).load("jupyterlab");return[Object.freeze({name:"codemirror",displayName:t.__("codemirror"),theme:[u.EditorView.baseTheme({}),(0,c.syntaxHighlighting)(c.defaultHighlightStyle)]})]}e.getDefaultThemes=t})(ee||(ee={}));class te{constructor(e,t){this.langPython=t;this.tree=(0,c.syntaxTree)(e.state);this.mark=u.Decoration.mark({class:"cm-builtin"});this.decorations=this.buildDeco(e);this.decoratedTo=e.viewport.to}update(e){let t=(0,c.syntaxTree)(e.state);let{viewport:n}=e.view,i=e.changes.mapPos(this.decoratedTo,1);if(t.length=n.to){this.decorations=this.decorations.map(e.changes);this.decoratedTo=i}else if(t!=this.tree||e.viewportChanged){this.tree=t;this.decorations=this.buildDeco(e.view);this.decoratedTo=n.to}}buildDeco(e){if(!this.tree.length)return u.Decoration.none;let t=new h.RangeSetBuilder;const n=i=>{var s;const o=i.node.cursor();const r=o.tree&&o.tree.prop(y.NodeProp.mounted);if(r&&r.overlay){(s=i.node.enter(r.overlay[0].from+i.from,1))===null||s===void 0?void 0:s.cursor().iterate(n)}if(this.langPython.isActiveAt(e.state,i.from+1)&&i.name==="VariableName"){const n=e.state.sliceDoc(i.from,i.to);if(ie.includes(n)){t.add(i.from,i.to,this.mark)}}};for(let{from:i,to:s}of e.visibleRanges){this.tree.iterate({enter:n,from:i,to:s})}return t.finish()}}function ne(e){return u.ViewPlugin.define((t=>new te(t,e)),{decorations:e=>e.decorations})}const ie=["abs","aiter","all","any","anext","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__"];class se{constructor(){this._modeList=[];this.addLanguage({name:"none",mime:"text/plain",support:new c.LanguageSupport(c.LRLanguage.define({parser:(0,Y.KO)("@top Program { }")}))})}addLanguage(e){var t;const n=(t=this.findByName(e.name))!==null&&t!==void 0?t:this.findByMIME(e.mime,true);if(n){throw new Error(`${e.mime} already registered`)}this._modeList.push(this.makeSpec(e))}async getLanguage(e){const t=this.findBest(e);if(t&&!t.support){t.support=await t.load()}return t}getLanguages(){return[...this._modeList]}findByMIME(e,t=false){if(Array.isArray(e)){for(let t=0;t-1&&t.substring(n+1,t.length);if(i){return this.findByExtension(i)}return null}findBest(e,t=true){var n,i,o,r;const a=typeof e==="string"?e:e.name;const l=typeof e!=="string"?e.mime:a;const d=typeof e!=="string"?(n=e.extensions)!==null&&n!==void 0?n:[]:[];return(r=(o=(i=a?this.findByName(a):null)!==null&&i!==void 0?i:l?this.findByMIME(l):null)!==null&&o!==void 0?o:this.findByExtension(d))!==null&&r!==void 0?r:t?this.findByMIME(s.IEditorMimeTypeService.defaultMimeType):null}async highlight(e,t,n){var i;if(t){await this.getLanguage(t)}const s=(i=t===null||t===void 0?void 0:t.support)===null||i===void 0?void 0:i.language;if(!s){n.appendChild(document.createTextNode(e));return}const o=s.parser.parse(e);let r=0;(0,w.highlightTree)(o,Q,((t,i,s)=>{if(t>r){n.appendChild(document.createTextNode(e.slice(r,t)))}const o=n.appendChild(document.createElement("span"));o.className=s;o.appendChild(document.createTextNode(e.slice(t,i)));r=i}));if(rthis.onKeydown(e)});const c=u.EditorView.updateListener.of((e=>{this._onDocChanged(e)}));this._editor=de.createEditor(a,this._configurator,[h.Prec.high(d),c,this._language.of([]),...(r=e.extensions)!==null&&r!==void 0?r:[]],l.sharedModel.source);this._onMimeTypeChanged();this._onCursorActivity();this._configurator.configChanged.connect(this.onConfigChanged,this);l.mimeTypeChanged.connect(this._onMimeTypeChanged,this)}get uuid(){return this._uuid}set uuid(e){this._uuid=e}get editor(){return this._editor}get doc(){return this._editor.state.doc}get lineCount(){return this.doc.lines}get model(){return this._model}get lineHeight(){return this._editor.defaultLineHeight}get charWidth(){return this._editor.defaultCharacterWidth}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;this.host.removeEventListener("focus",this,true);this.host.removeEventListener("blur",this,true);this.host.removeEventListener("scroll",this,true);this._configurator.dispose();m.Signal.clearData(this);this.editor.destroy()}getOption(e){return this._configurator.getOption(e)}hasOption(e){return this._configurator.hasOption(e)}setOption(e,t){this._configurator.setOption(e,t)}setOptions(e){this._configurator.setOptions(e)}setBaseOptions(e){this._configurator.setBaseOptions(e)}injectExtension(e){this._configurator.injectExtension(this._editor,e)}getLine(e){e=e+1;return e<=this.doc.lines?this.doc.line(e).text:undefined}getOffsetAt(e){return this.doc.line(e.line+1).from+e.column}getPositionAt(e){const t=this.doc.lineAt(e);return{line:t.number-1,column:e-t.from}}undo(){this.model.sharedModel.undo()}redo(){this.model.sharedModel.redo()}clearHistory(){this.model.sharedModel.clearUndoHistory()}focus(){this._editor.focus()}hasFocus(){return this._editor.hasFocus}blur(){this._editor.contentDOM.blur()}get state(){return this._editor.state}firstLine(){return 0}lastLine(){return this.doc.lines-1}cursorCoords(e,t){const n=this.state.selection.main;const i=e?n.from:n.to;const s=this.editor.coordsAtPos(i);return s}getRange(e,t,n){const i=this.getOffsetAt(this._toPosition(e));const s=this.getOffsetAt(this._toPosition(t));return this.state.sliceDoc(i,s)}revealPosition(e){const t=this.getOffsetAt(e);this._editor.dispatch({effects:u.EditorView.scrollIntoView(t)})}revealSelection(e){const t=this.getOffsetAt(e.start);const n=this.getOffsetAt(e.end);this._editor.dispatch({effects:u.EditorView.scrollIntoView(h.EditorSelection.range(t,n))})}getCoordinateForPosition(e){const t=this.getOffsetAt(e);const n=this.editor.coordsAtPos(t);return n}getPositionForCoordinate(e){const t=this.editor.posAtCoords({x:e.left,y:e.top});return this.getPositionAt(t)||null}getCursorPosition(){const e=this.state.selection.main.head;return this.getPositionAt(e)}setCursorPosition(e,t={}){const n=this.getOffsetAt(e);this.editor.dispatch({selection:{anchor:n},scrollIntoView:t.scroll===false?false:true});if(!this.editor.hasFocus){this.model.selections.set(this.uuid,this.getSelections())}}getSelection(){return this.getSelections()[0]}setSelection(e){this.setSelections([e])}getSelections(){const e=this.state.selection.ranges;if(e.length>0){const t=e.map((e=>({anchor:this._toCodeMirrorPosition(this.getPositionAt(e.from)),head:this._toCodeMirrorPosition(this.getPositionAt(e.to))})));return t.map((e=>this._toSelection(e)))}const t=this._toCodeMirrorPosition(this.getPositionAt(this.state.selection.main.head));const n=this._toSelection({anchor:t,head:t});return[n]}setSelections(e){const t=e.length?e.map((e=>h.EditorSelection.range(this.getOffsetAt(e.start),this.getOffsetAt(e.end)))):[h.EditorSelection.range(0,0)];this.editor.dispatch({selection:h.EditorSelection.create(t)})}replaceSelection(e){const t=this.getSelections()[0];this.model.sharedModel.updateSource(this.getOffsetAt(t.start),this.getOffsetAt(t.end),e);const n=this.getPositionAt(this.getOffsetAt(t.start)+e.length);this.setSelection({start:n,end:n})}getTokens(){const e=[];const t=(0,c.ensureSyntaxTree)(this.state,this.doc.length);if(t){t.iterate({enter:t=>{if(t.node.firstChild===null){e.push({value:this.state.sliceDoc(t.from,t.to),offset:t.from,type:t.name})}return true}})}return e}getTokenAt(e){const t=(0,c.ensureSyntaxTree)(this.state,e);let n=null;if(t){t.iterate({enter:t=>{if(n){return false}if(t.node.firstChild){return true}if(e>=t.from&&e<=t.to){let e=t;if(t.name==="⚠"&&t.from===t.to&&t.node.parent){e=t.node.parent}n={value:this.state.sliceDoc(e.from,e.to),offset:e.from,type:e.name};return false}return true}})}return n||{offset:e,value:""}}getTokenAtCursor(){return this.getTokenAt(this.state.selection.main.head)}newIndentedLine(){(0,i.insertNewlineAndIndent)({state:this.state,dispatch:this.editor.dispatch})}execCommand(e){e(this.editor)}onConfigChanged(e,t){const n=Object.keys(t).reduce(((e,n)=>{if(t[n]!=undefined){e[n]=t[n]}return e}),{});e.reconfigureExtensions(this._editor,n);if(t["customStyles"]&&!t["fontSize"]){this.editor.setState(this.editor.state)}}onKeydown(e){const t=this.state.selection.main.head;if(t===0&&e.keyCode===re){if(!e.shiftKey){this.edgeRequested.emit("top")}return false}const n=this.doc.lineAt(t).number;if(n===1&&e.keyCode===re){if(!e.shiftKey){this.edgeRequested.emit("topLine")}return false}const i=this.doc.length;if(t===i&&e.keyCode===ae){if(!e.shiftKey){this.edgeRequested.emit("bottom")}return false}return false}_onMimeTypeChanged(){this._languages.getLanguage(this._model.mimeType).then((e=>{var t;this._editor.dispatch({effects:this._language.reconfigure((t=e===null||e===void 0?void 0:e.support)!==null&&t!==void 0?t:[])})})).catch((e=>{console.log(`Failed to load language for '${this._model.mimeType}'.`,e);this._editor.dispatch({effects:this._language.reconfigure([])})}))}_onCursorActivity(){if(this._editor.hasFocus){const e=this.getSelections();this.model.selections.set(this.uuid,e)}}_toSelection(e){return{uuid:this.uuid,start:this._toPosition(e.anchor),end:this._toPosition(e.head)}}_toPosition(e){return{line:e.line,column:e.ch}}_toCodeMirrorPosition(e){return{line:e.line,ch:e.column}}_onDocChanged(e){if(e.transactions.length&&e.transactions[0].selection){this._onCursorActivity()}}handleEvent(e){switch(e.type){case"focus":this._evtFocus(e);break;case"blur":this._evtBlur(e);break;default:break}}_evtFocus(e){this.host.classList.add("jp-mod-focused");this._onCursorActivity()}_evtBlur(e){this.host.classList.remove("jp-mod-focused")}}var de;(function(e){function t(e,t,n,i){const s=t.getInitialExtensions();s.push(...n);const o=new u.EditorView({state:h.EditorState.create({doc:i,extensions:s}),parent:e});return o}e.createEditor=t})(de||(de={}));class ce{constructor(e={}){var t,n,i;this.newInlineEditor=e=>{e.host.dataset.type="inline";return this.newEditor({...e,config:{...this.inlineCodeMirrorConfig,...e.config||{}},inline:true})};this.newDocumentEditor=e=>{var t,n;e.host.dataset.type="document";return this.newEditor({...e,config:{...this.documentCodeMirrorConfig,...(t=e.config)!==null&&t!==void 0?t:{}},inline:false,extensions:[u.keymap.of([{key:"Shift-Enter",run:e=>true}])].concat((n=e.extensions)!==null&&n!==void 0?n:[])})};this.languages=(t=e.languages)!==null&&t!==void 0?t:new se;this.extensions=(n=e.extensions)!==null&&n!==void 0?n:new J;this.translator=(i=e.translator)!==null&&i!==void 0?i:f.nullTranslator;this.inlineCodeMirrorConfig={searchWithCM:true};this.documentCodeMirrorConfig={lineNumbers:true,scrollPastEnd:true}}newEditor(e){const t=new le({extensionsRegistry:this.extensions,languages:this.languages,translator:this.translator,...e});return t}}class he{constructor(e){this.languages=e}getMimeTypeByLanguage(e){var t;const n=e.file_extension||"";const i=this.languages.findBest(e.codemirror_mode||{mimetype:e.mimetype,name:e.name,ext:[n.split(".").slice(-1)[0]]});return i?Array.isArray(i.mime)?(t=i.mime[0])!==null&&t!==void 0?t:s.IEditorMimeTypeService.defaultMimeType:i.mime:s.IEditorMimeTypeService.defaultMimeType}getMimeTypeByFilePath(e){var t;const n=G.PathExt.extname(e);if(n===".ipy"){return"text/x-python"}else if(n===".md"){return"text/x-ipythongfm"}const i=this.languages.findByFileName(e);return i?Array.isArray(i.mime)?(t=i.mime[0])!==null&&t!==void 0?t:s.IEditorMimeTypeService.defaultMimeType:i.mime:s.IEditorMimeTypeService.defaultMimeType}}var ue=n(22441);class pe{constructor(){this.currentIndex=null;this.query=null;this._isActive=true;this._inSelection=null;this._isDisposed=false;this._cmHandler=null;this.currentIndex=null;this._stateChanged=new m.Signal(this)}get cmHandler(){if(!this._cmHandler){this._cmHandler=new me(this.editor)}return this._cmHandler}get stateChanged(){return this._stateChanged}get currentMatchIndex(){return this.isActive?this.currentIndex:null}get isActive(){return this._isActive}get isDisposed(){return this._isDisposed}get matchesCount(){return this.isActive?this.cmHandler.matches.length:0}clearHighlight(){this.currentIndex=null;this.cmHandler.clearHighlight();return Promise.resolve()}dispose(){if(this._isDisposed){return}this._isDisposed=true;m.Signal.clearData(this);if(this.isActive){this.endQuery().catch((e=>{console.error(`Failed to end search query on cells.`,e)}))}}async setIsActive(e){if(this._isActive===e){return}this._isActive=e;if(this._isActive){if(this.query!==null){await this.startQuery(this.query,this.filters)}}else{await this.endQuery()}}async setSearchSelection(e){if(this._inSelection===e){return}this._inSelection=e;await this.updateCodeMirror(this.model.sharedModel.getSource());this._stateChanged.emit()}setProtectSelection(e){this.cmHandler.protectSelection=e}async startQuery(e,t){this.query=e;this.filters=t;const n=this.model.sharedModel.getSource();await this.updateCodeMirror(n);this.model.sharedModel.changed.connect(this.onSharedModelChanged,this)}async endQuery(){await this.clearHighlight();await this.cmHandler.endQuery();this.currentIndex=null}async highlightNext(e=true,t){if(this.matchesCount===0||!this.isActive){this.currentIndex=null}else{let n=await this.cmHandler.highlightNext(t);if(n){this.currentIndex=this.cmHandler.currentIndex}else{this.currentIndex=e?0:null}return n}return Promise.resolve(this.getCurrentMatch())}async highlightPrevious(e=true,t){if(this.matchesCount===0||!this.isActive){this.currentIndex=null}else{let n=await this.cmHandler.highlightPrevious(t);if(n){this.currentIndex=this.cmHandler.currentIndex}else{this.currentIndex=e?this.matchesCount-1:null}return n}return Promise.resolve(this.getCurrentMatch())}replaceCurrentMatch(e,t,n){if(!this.isActive){return Promise.resolve(false)}if(this.currentIndex!==null&&this.currentIndex{this.updateCodeMirror(this.model.sharedModel.getSource()).then((()=>{const n=this.cmHandler.matches;const i=t.position+s.length;let o=false;for(let e=this.currentIndex||0;e=i){this.currentIndex=e;o=true;break}void this.highlightNext(false,{from:"previous-match"})}if(!o){this.currentIndex=null}e(true)})).catch((e=>{const t=`Failed to regenerate match list: ${e}`;console.error(t);n(t)}))}))}}return Promise.resolve(false)}replaceAllMatches(e,t){if(!this.isActive){return Promise.resolve(false)}let n=this.cmHandler.matches.length>0;let i=this.model.sharedModel.getSource();let s=0;const o=this.cmHandler.matches.reduce(((n,o)=>{const r=o.position;const a=r+o.text.length;const l=(t===null||t===void 0?void 0:t.regularExpression)?o.text.replace(this.query,e):e;const d=(t===null||t===void 0?void 0:t.preserveCase)?ue.GenericSearchProvider.preserveCase(o.text,l):l;const c=`${n}${i.slice(s,r)}${d}`;s=a;return c}),"");if(n){this.cmHandler.matches=[];this.currentIndex=null;this.model.sharedModel.setSource(`${o}${i.slice(s)}`)}return Promise.resolve(n)}getCurrentMatch(){if(this.currentIndex===null){return undefined}else{let e=undefined;if(this.currentIndexe.position>=n&&e.position<=i));if(this.cmHandler.currentIndex===null&&this.cmHandler.matches.length>0){await this.cmHandler.highlightNext({from:"selection",select:false,scroll:false})}this.currentIndex=this.cmHandler.currentIndex}else{this.cmHandler.matches=t}}else{this.cmHandler.matches=[]}}}class me{constructor(e){this._current=null;this._cm=e;this._matches=new Array;this._currentIndex=null;this._highlightEffect=h.StateEffect.define({map:(e,t)=>{const n=e=>({text:e.text,position:t.mapPos(e.position)});return{matches:e.matches.map(n),currentMatch:e.currentMatch?n(e.currentMatch):null}}});this._highlightMark=u.Decoration.mark({class:"cm-searching"});this._currentMark=u.Decoration.mark({class:"jp-current-match"});this._highlightField=h.StateField.define({create:()=>u.Decoration.none,update:(e,t)=>{e=e.map(t.changes);for(let n of t.effects){if(n.is(this._highlightEffect)){const t=n;if(t.value.matches.length){e=e.update({add:t.value.matches.map((e=>this._highlightMark.range(e.position,e.position+e.text.length))),filter:()=>false});e=e.update({add:t.value.currentMatch?[this._currentMark.range(t.value.currentMatch.position,t.value.currentMatch.position+t.value.currentMatch.text.length)]:[]})}else{e=u.Decoration.none}}}return e},provide:e=>u.EditorView.decorations.from(e)});this._domEventHandlers=u.EditorView.domEventHandlers({focus:()=>{this._selectCurrentMatch()}})}get currentIndex(){return this._currentIndex}get matches(){return this._matches}set matches(e){this._matches=e;if(this._currentIndex!==null&&this._currentIndex>this._matches.length){this._currentIndex=this._matches.length>0?0:null}this._highlightCurrentMatch({select:false})}get protectSelection(){return this._protectSelection}set protectSelection(e){this._protectSelection=e}clearHighlight(){this._currentIndex=null;this._highlightCurrentMatch()}endQuery(){this._currentIndex=null;this._matches=[];if(this._cm){this._cm.editor.dispatch({effects:this._highlightEffect.of({matches:[],currentMatch:null})})}return Promise.resolve()}highlightNext(e){var t;this._currentIndex=this._findNext(false,(t=e===null||e===void 0?void 0:e.from)!==null&&t!==void 0?t:"auto");this._highlightCurrentMatch(e);return Promise.resolve(this._currentIndex!==null?this._matches[this._currentIndex]:undefined)}highlightPrevious(e){var t;this._currentIndex=this._findNext(true,(t=e===null||e===void 0?void 0:e.from)!==null&&t!==void 0?t:"auto");this._highlightCurrentMatch(e);return Promise.resolve(this._currentIndex!==null?this._matches[this._currentIndex]:undefined)}setEditor(e){if(this._cm){throw new Error("CodeMirrorEditor already set.")}else{this._cm=e;if(this._currentIndex!==null){this._highlightCurrentMatch()}this._cm.editor.dispatch({effects:h.StateEffect.appendConfig.of(this._domEventHandlers)});this._refresh()}}_selectCurrentMatch(e=true){const t=this._current;if(!t){return}if(!this._cm){return}const n={anchor:t.position,head:t.position+t.text.length};const i=this._cm.editor.state.selection.main;if(i.from===t.position&&i.to===t.position+t.text.length||this._protectSelection){if(e){this._cm.editor.dispatch({effects:u.EditorView.scrollIntoView(h.EditorSelection.range(n.anchor,n.head))});return}}else{this._cm.editor.dispatch({selection:n,scrollIntoView:e})}}_highlightCurrentMatch(e){var t,n,i;if(!this._cm){return}if(this._currentIndex!==null){const s=this.matches[this._currentIndex];this._current=s;if((t=e===null||e===void 0?void 0:e.select)!==null&&t!==void 0?t:true){if(this._cm.hasFocus()){this._selectCurrentMatch((n=e===null||e===void 0?void 0:e.scroll)!==null&&n!==void 0?n:true)}else if((i=e===null||e===void 0?void 0:e.scroll)!==null&&i!==void 0?i:true){this._cm.editor.dispatch({effects:u.EditorView.scrollIntoView(s.position)})}}}else{this._current=null}this._refresh()}_refresh(){if(!this._cm){return}let e=[this._highlightEffect.of({matches:this.matches,currentMatch:this._current})];if(!this._cm.state.field(this._highlightField,false)){e.push(h.StateEffect.appendConfig.of([this._highlightField]))}this._cm.editor.dispatch({effects:e})}_findNext(e,t="auto"){var n,i,s,o;if(this._matches.length===0){return null}if(!this._cm&&!["previous-match","start"].includes(t)){t="previous-match"}let r=0;if(t==="auto"&&((i=(n=this._cm)===null||n===void 0?void 0:n.hasFocus())!==null&&i!==void 0?i:false)||t==="selection"){const t=this._cm.state.selection.main;r=e?t.anchor:t.head}else if(t==="selection-start"){const e=this._cm.state.selection.main;r=Math.min(e.anchor,e.head)}else if(t==="start"){r=0}else if(this._current){r=e?this._current.position:this._current.position+this._current.text.length}if(r===0&&e&&this.currentIndex===null){r=(o=(s=this._cm)===null||s===void 0?void 0:s.doc.length)!==null&&o!==void 0?o:d(this._matches[this._matches.length-1])}const a=r;let l=ge.findNext(this._matches,a,0,this._matches.length-1);if(l===null){return e?this._matches.length-1:null}if(e){l-=1;if(l<0){return null}}return l;function d(e){return e?e.position+e.text.length:0}}}var ge;(function(e){function t(e,t,n=0,i=Infinity){i=Math.min(e.length-1,i);while(n<=i){let s=Math.floor(.5*(n+i));const o=e[s].position;if(ot){return n}}else if(o>t){i=s-1;if(i>0&&e[i].position0?n-1:0;const o=e[s];return o.position>=t?s:null}e.findNext=t})(ge||(ge={}));const fe=new p.Token("@jupyterlab/codemirror:IEditorExtensionRegistry",`A registry for CodeMirror extension factories.`);const ve=new p.Token("@jupyterlab/codemirror:IEditorLanguageRegistry","A registry for CodeMirror languages.");const _e=new p.Token("@jupyterlab/codemirror:IEditorThemeRegistry","A registry for CodeMirror theme.")},23359:(e,t,n)=>{"use strict";var i=n(17325);var s=n(19562);var o=n(85072);var r=n.n(o);var a=n(97825);var l=n.n(a);var d=n(77659);var c=n.n(d);var h=n(55056);var u=n.n(h);var p=n(10540);var m=n.n(p);var g=n(41113);var f=n.n(g);var v=n(29500);var _={};_.styleTagTransform=f();_.setAttributes=u();_.insert=c().bind(null,"head");_.domAPI=l();_.insertStyleElement=m();var b=r()(v.A,_);const y=v.A&&v.A.locals?v.A.locals:undefined},76177:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>C});var i=n(54723);var s=n(26331);var o=n(29939);var r=n(84739);var a=n(30619);var l=n(93247);var d=n(44914);var c=n.n(d);const h="availableProviders";function u(e){const{schema:t}=e;const n=t.title;const i=t.description;const s=e.formContext.settings;const o=s.get(h).user;const r={...t.default};if(o){for(const e of Object.keys(r)){if(e in o){r[e]=o[e]}else{r[e]=-1}}}const[a,l]=(0,d.useState)(r);const u=(e,t)=>{const n={...a,[e]:parseInt(t.target.value)};s.set(h,n).catch(console.error);l(n)};return c().createElement("div",null,c().createElement("fieldset",null,c().createElement("legend",null,n),c().createElement("p",{className:"field-description"},i),Object.keys(r).map((e=>c().createElement("div",{key:e,className:"form-group small-field"},c().createElement("div",null,c().createElement("h3",null," ",e),c().createElement("div",{className:"inputFieldWrapper"},c().createElement("input",{className:"form-control",type:"number",value:a[e],onChange:t=>{u(e,t)}}))))))))}const p="@jupyterlab/completer-extension:manager";const m="@jupyterlab/completer-extension:inline-completer";var g;(function(e){e.nextInline="inline-completer:next";e.previousInline="inline-completer:previous";e.acceptInline="inline-completer:accept";e.invokeInline="inline-completer:invoke"})(g||(g={}));const f={id:"@jupyterlab/completer-extension:base-service",description:"Adds context and kernel completion providers.",requires:[o.ICompletionProviderManager],autoStart:true,activate:(e,t)=>{t.registerProvider(new o.ContextCompleterProvider);t.registerProvider(new o.KernelCompleterProvider)}};const v={id:"@jupyterlab/completer-extension:inline-history",description:"Adds inline completion provider suggesting code from execution history.",requires:[o.ICompletionProviderManager],optional:[a.ITranslator],autoStart:true,activate:(e,t,n)=>{t.registerInlineProvider(new o.HistoryInlineCompletionProvider({translator:n!==null&&n!==void 0?n:a.nullTranslator}))}};const _={id:"@jupyterlab/completer-extension:inline-completer-factory",description:"Provides a factory for inline completer.",provides:o.IInlineCompleterFactory,optional:[a.ITranslator],autoStart:true,activate:(e,t)=>{const n=(t||a.nullTranslator).load("jupyterlab");return{factory:t=>{const i=new o.InlineCompleter({...t,trans:n});const r=t=>{const n=e.commands.keyBindings.find((e=>e.command===t));const i=n?l.CommandRegistry.formatKeystroke(n.keys):"";return i?`${i}`:""};const a={[g.previousInline]:r(g.previousInline),[g.nextInline]:r(g.nextInline),[g.acceptInline]:r(g.acceptInline)};e.commands.keyBindingChanged.connect(((t,n)=>{const i=n.binding.command;if(a.hasOwnProperty(i)){const t=a[i];const n=r(i);if(n!==t){a[i]=n;e.commands.notifyCommandChanged(i)}}}));i.toolbar.addItem("previous-inline-completion",new s.CommandToolbarButton({commands:e.commands,icon:s.caretLeftIcon,id:g.previousInline,label:()=>a[g.previousInline],caption:n.__("Previous")}));i.toolbar.addItem("next-inline-completion",new s.CommandToolbarButton({commands:e.commands,icon:s.caretRightIcon,id:g.nextInline,label:()=>a[g.nextInline],caption:n.__("Next")}));i.toolbar.addItem("accept-inline-completion",new s.CommandToolbarButton({commands:e.commands,icon:s.checkIcon,id:g.acceptInline,label:()=>a[g.acceptInline],caption:n.__("Accept")}));i.model.suggestionsChanged.connect((()=>{for(const t of[g.previousInline,g.nextInline,g.acceptInline]){e.commands.notifyCommandChanged(t)}}));return i}}}};const b={id:m,description:"Registers the inline completer factory; adds inline completer commands, shortcuts and settings.",requires:[o.ICompletionProviderManager,o.IInlineCompleterFactory,r.ISettingRegistry],optional:[a.ITranslator],autoStart:true,activate:(e,t,n,s,o)=>{t.setInlineCompleterFactory(n);const r=(o||a.nullTranslator).load("jupyterlab");const l=()=>!!e.shell.currentWidget&&!!t.inline;let d;e.commands.addCommand(g.nextInline,{execute:()=>{var n;(n=t.inline)===null||n===void 0?void 0:n.cycle(e.shell.currentWidget.id,"next")},label:r.__("Next Inline Completion"),isEnabled:l});e.commands.addCommand(g.previousInline,{execute:()=>{var n;(n=t.inline)===null||n===void 0?void 0:n.cycle(e.shell.currentWidget.id,"previous")},label:r.__("Previous Inline Completion"),isEnabled:l});e.commands.addCommand(g.acceptInline,{execute:()=>{var n;(n=t.inline)===null||n===void 0?void 0:n.accept(e.shell.currentWidget.id)},label:r.__("Accept Inline Completion"),isEnabled:()=>l()&&t.inline.isActive(e.shell.currentWidget.id)});e.commands.addCommand(g.invokeInline,{execute:()=>{var n;(n=t.inline)===null||n===void 0?void 0:n.invoke(e.shell.currentWidget.id)},label:r.__("Invoke Inline Completer"),isEnabled:l});const c=e=>{var n;d=e.composite;(n=t.inline)===null||n===void 0?void 0:n.configure(d)};e.restored.then((()=>{var e;const n=(e=t.inlineProviders)!==null&&e!==void 0?e:[];const i=e=>{var t,n;return{enabled:true,autoFillInMiddle:false,timeout:5e3,debouncerDelay:0,...(n=(t=e.schema)===null||t===void 0?void 0:t.default)!==null&&n!==void 0?n:{}}};s.transform(m,{compose:e=>{var t,s;const o=(t=e.data.composite["providers"])!==null&&t!==void 0?t:{};for(const r of n){const e=i(r);o[r.identifier]={...e,...(s=o[r.identifier])!==null&&s!==void 0?s:{}}}e.data["composite"]["providers"]=o;return e},fetch:e=>{var t,s;const o=e.schema.properties;const a={};for(const l of n){a[l.identifier]={title:r.__("%1 provider",l.name),properties:{...(s=(t=l.schema)===null||t===void 0?void 0:t.properties)!==null&&s!==void 0?s:{},timeout:{title:r.__("Timeout"),description:r.__("Timeout for %1 provider (in milliseconds).",l.name),type:"number",minimum:0},debouncerDelay:{title:r.__("Debouncer delay"),minimum:0,description:r.__("Time since the last key press to wait before requesting completions from %1 provider (in milliseconds).",l.name),type:"number"},enabled:{title:r.__("Enabled"),description:r.__("Whether to fetch completions %1 provider.",l.name),type:"boolean"},autoFillInMiddle:{title:r.__("Fill in middle on typing"),description:r.__("Whether to show completions in the middle of the code line from %1 provider on typing.",l.name),type:"boolean"}},default:i(l),type:"object"}}o["providers"]["properties"]=a;return e}});const o=s.load(m);o.then((e=>{c(e);e.changed.connect((e=>{c(e)}))})).catch(console.error)})).catch(console.error);const h=t=>e.commands.keyBindings.find((e=>e.command===t));const u={[g.acceptInline]:h(g.acceptInline),[g.invokeInline]:h(g.invokeInline)};e.commands.keyBindingChanged.connect(((e,t)=>{const n=t.binding.command;if(u.hasOwnProperty(n)){u[n]=h(n)}}));const p=t=>{if(!(t.target instanceof Element)){return}const n=t.target;switch(t.keyCode){case 9:{const s=[u[g.acceptInline],u[g.invokeInline]];for(const o of s){if(o&&o.keys.length===1&&o.keys[0]==="Tab"&&n.closest(o.selector)&&e.commands.isEnabled(o.command)){const s=n.closest("."+i.COMPLETER_ACTIVE_CLASS);if((d===null||d===void 0?void 0:d.suppressIfTabCompleterActive)&&s){return}e.commands.execute(o.command).catch(console.error);t.preventDefault();t.stopPropagation();t.stopImmediatePropagation();return}}break}default:return}};document.addEventListener("keydown",p,true)}};const y={id:p,description:"Provides the completion provider manager.",requires:[r.ISettingRegistry],optional:[s.IFormRendererRegistry],provides:o.ICompletionProviderManager,autoStart:true,activate:(e,t,n)=>{const i="availableProviders";const s=new o.CompletionProviderManager;const r=(e,t)=>{var n;const o=e.get(i);const r=e.composite;s.setTimeout(r.providerTimeout);s.setShowDocumentationPanel(r.showDocumentationPanel);s.setContinuousHinting(r.autoCompletion);s.setSuppressIfInlineCompleterActive(r.suppressIfInlineCompleterActive);const a=(n=o.user)!==null&&n!==void 0?n:o.composite;const l=Object.entries(a!==null&&a!==void 0?a:{}).filter((e=>e[1]>=0&&t.includes(e[0]))).sort((([,e],[,t])=>t-e)).map((e=>e[0]));s.activateProvider(l)};e.restored.then((()=>{const e=[...s.getProviders().entries()];const n=e.map((([e,t])=>e));t.transform(p,{fetch:t=>{const n=t.schema.properties;const s={};e.forEach((([e,t],n)=>{var i;s[e]=(i=t.rank)!==null&&i!==void 0?i:(n+1)*10}));n[i]["default"]=s;return t}});const o=t.load(p);o.then((e=>{r(e,n);e.changed.connect((e=>{r(e,n)}))})).catch(console.error)})).catch(console.error);if(n){const e={fieldRenderer:e=>u(e)};n.addRenderer(`${p}.availableProviders`,e)}return s}};const w=[y,f,v,_,b];const C=w},2129:(e,t,n)=>{"use strict";var i=n(40662);var s=n(17325);var o=n(3579);var r=n(36060)},33107:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CONTEXT_PROVIDER_ID:()=>D,Completer:()=>E,CompleterModel:()=>g,CompletionHandler:()=>u,CompletionProviderManager:()=>ne,CompletionTriggerKind:()=>l,ContextCompleterProvider:()=>A,HistoryInlineCompletionProvider:()=>le,ICompletionProviderManager:()=>h,IInlineCompleterFactory:()=>c,InlineCompleter:()=>te,InlineCompletionTriggerKind:()=>d,KERNEL_PROVIDER_ID:()=>L,KernelCompleterProvider:()=>R,ProviderReconciliator:()=>M,completerWidgetIcon:()=>re,inlineCompleterIcon:()=>oe});var i=n(54723);var s=n(30397);var o=n(42856);var r=n(2336);var a=n(5592);var l;(function(e){e[e["Invoked"]=1]="Invoked";e[e["TriggerCharacter"]=2]="TriggerCharacter";e[e["TriggerForIncompleteCompletions"]=3]="TriggerForIncompleteCompletions"})(l||(l={}));var d;(function(e){e[e["Invoke"]=0]="Invoke";e[e["Automatic"]=1]="Automatic"})(d||(d={}));const c=new a.Token("@jupyterlab/completer:IInlineCompleterFactory","A factory of inline completer widgets.");const h=new a.Token("@jupyterlab/completer:ICompletionProviderManager","A service for the completion providers management.");class u{constructor(e){this._fetchingInline=0;this._editor=null;this._enabled=false;this._isDisposed=false;this._autoCompletion=false;this._continuousInline=true;this._tabCompleterActive=false;this.completer=e.completer;this.inlineCompleter=e.inlineCompleter;this.completer.selected.connect(this.onCompletionSelected,this);this.completer.visibilityChanged.connect(this.onVisibilityChanged,this);this._reconciliator=e.reconciliator}set reconciliator(e){this._reconciliator=e}get editor(){return this._editor}set editor(e){if(e===this._editor){return}let t=this._editor;if(t&&!t.isDisposed){const e=t.model;t.host.classList.remove(i.COMPLETER_ENABLED_CLASS);t.host.classList.remove(i.COMPLETER_ACTIVE_CLASS);e.selections.changed.disconnect(this.onSelectionsChanged,this);e.sharedModel.changed.disconnect(this._onSharedModelChanged,this)}this.completer.reset();this.completer.editor=e;t=this._editor=e;if(t){const e=t.model;this._enabled=false;e.selections.changed.connect(this.onSelectionsChanged,this);const n=e.sharedModel;n.changed.connect(this._onSharedModelChanged,this);this.onSelectionsChanged();if(this.inlineCompleter){this.inlineCompleter.editor=t}}}get isDisposed(){return this._isDisposed}set autoCompletion(e){this._autoCompletion=e}get autoCompletion(){return this._autoCompletion}dispose(){if(this.isDisposed){return}this._isDisposed=true;r.Signal.clearData(this)}invokeInline(){const e=this._editor;if(e){this._makeInlineRequest(e.getCursorPosition(),d.Invoke).catch((e=>{console.warn("Inline invoke request bailed",e)}))}}invoke(){o.MessageLoop.sendMessage(this,u.Msg.InvokeRequest)}processMessage(e){switch(e.type){case u.Msg.InvokeRequest.type:this.onInvokeRequest(e);break;default:break}}getState(e,t){return{text:e.model.sharedModel.getSource(),line:t.line,column:t.column}}onCompletionSelected(e,t){const n=e.model;const i=this._editor;if(!i||!n){return}const s=n.createPatch(t);if(!s){return}const{start:o,end:r,value:a}=s;const l=i.getOffsetAt(i.getCursorPosition());const d={changes:{from:o,to:r,insert:a}};if(l<=r&&l>=o){d.selection={anchor:o+a.length}}i.editor.dispatch(d)}onInvokeRequest(e){if(!this.completer.model){return}if(this.completer.model.original){return}const t=this._editor;if(t){this._makeRequest(t.getCursorPosition(),l.Invoked).catch((e=>{console.warn("Invoke request bailed",e)}))}}onSelectionsChanged(){var e;const t=this.completer.model;const n=this._editor;if(!n){return}const s=(e=this.inlineCompleter)===null||e===void 0?void 0:e.model;if(s){s.handleSelectionChange(n.getSelection())}const o=n.host;if(!t){this._enabled=false;o.classList.remove(i.COMPLETER_ENABLED_CLASS);return}if(t.subsetMatch){return}const r=n.getCursorPosition();const a=n.getLine(r.line);const{start:l,end:d}=n.getSelection();if(l.column!==d.column||l.line!==d.line){this._enabled=false;t.reset(true);o.classList.remove(i.COMPLETER_ENABLED_CLASS);return}if(!a||d.column===0){o.classList.add(i.COMPLETER_LINE_BEGINNING_CLASS)}else if(a&&a.slice(0,r.column).match(/^\s*$/)){o.classList.add(i.COMPLETER_LINE_BEGINNING_CLASS)}else{o.classList.remove(i.COMPLETER_LINE_BEGINNING_CLASS)}if(!this._enabled){this._enabled=true;o.classList.add(i.COMPLETER_ENABLED_CLASS)}t.handleCursorChange(this.getState(n,n.getCursorPosition()))}async onTextChanged(e,t){var n;if(!this._enabled){return}const i=this.completer.model;const s=this.editor;if(!s){return}if(i&&this._autoCompletion&&this._reconciliator.shouldShowContinuousHint&&await this._reconciliator.shouldShowContinuousHint(this.completer.isVisible,t)){void this._makeRequest(s.getCursorPosition(),l.TriggerCharacter)}const o=(n=this.inlineCompleter)===null||n===void 0?void 0:n.model;if(o){o.handleTextChange(t);if(this._continuousInline){void this._makeInlineRequest(s.getCursorPosition(),d.Automatic)}}if(i){const{start:e,end:t}=s.getSelection();if(e.column!==t.column||e.line!==t.line){return}i.handleTextChange(this.getState(s,s.getCursorPosition()))}}onVisibilityChanged(e){var t;if(e.isDisposed||e.isHidden){this._tabCompleterActive=false;if(this._editor){this._editor.host.classList.remove(i.COMPLETER_ACTIVE_CLASS);this._editor.focus()}return}this._tabCompleterActive=true;(t=this._editor)===null||t===void 0?void 0:t.host.classList.add(i.COMPLETER_ACTIVE_CLASS)}async _onSharedModelChanged(e,t){if(t.sourceChange){await this.onTextChanged(e,t)}}_makeRequest(e,t){const n=this.editor;if(!n){return Promise.reject(new Error("No active editor"))}const i=this._composeRequest(n,e);const s=this.getState(n,e);return this._reconciliator.fetch(i,t).then((e=>{var t;if(!e){return}const n=this._updateModel(s,e.start,e.end);if(!n){return}if(this.completer.suppressIfInlineCompleterActive&&((t=this.inlineCompleter)===null||t===void 0?void 0:t.isActive)){return}if(n.setCompletionItems){n.setCompletionItems(e.items)}})).catch((e=>{}))}async _makeInlineRequest(e,t){const n=this.editor;if(!n){return Promise.reject(new Error("No active editor"))}if(!this.inlineCompleter){return Promise.reject(new Error("No inline completer"))}const i=n.getLine(e.line);if(t===d.Automatic&&(typeof i==="undefined"||i.slice(0,e.column).match(/^\s*$/))){this._fetchingInline+=1;return}let s=false;if(typeof i!=="undefined"&&e.column{var t;if(c||!e||!e.items){return}if(a!==this._fetchingInline){return}h.add(d);if(h.size===1){if(((t=this.inlineCompleter)===null||t===void 0?void 0:t.suppressIfTabCompleterActive)&&this._tabCompleterActive){c=true;return}r.setCompletions(e)}else{r.appendCompletions(e)}})).catch((e=>{console.warn(e)})).finally((()=>{h.add(d);const e=l.length-h.size;r.notifyProgress({pendingProviders:e,totalProviders:l.length})}))}}_composeRequest(e,t){const n=e.model.sharedModel.getSource();const i=e.model.mimeType;const o=s.Text.jsIndexToCharIndex(e.getOffsetAt(t),n);return{text:n,offset:o,mimeType:i}}_updateModel(e,t,n){const i=this.completer.model;const o=e.text;if(!i){return null}i.original=e;i.cursor={start:s.Text.charIndexToJsIndex(t,o),end:s.Text.charIndexToJsIndex(n,o)};return i}}(function(e){let t;(function(e){e[e["opened"]=0]="opened";e[e["update"]=1]="update";e[e["closed"]=2]="closed"})(t=e.StraemEvent||(e.StraemEvent={}));let n;(function(e){e.InvokeRequest=new o.Message("invoke-request")})(n=e.Msg||(e.Msg={}))})(u||(u={}));var p=n(34236);function m(e){const t=document.createElement("span");t.textContent=e;return t.innerHTML}class g{constructor(){this.processedItemsCache=null;this._current=null;this._cursor=null;this._isDisposed=false;this._completionItems=[];this._original=null;this._query="";this._subsetMatch=false;this._typeMap={};this._orderedTypes=[];this._stateChanged=new r.Signal(this);this._queryChanged=new r.Signal(this);this._processedToOriginalItem=null;this._resolvingItem=0}get stateChanged(){return this._stateChanged}get queryChanged(){return this._queryChanged}get original(){return this._original}set original(e){const t=this._original===e||this._original&&e&&a.JSONExt.deepEqual(e,this._original);if(t){return}this._reset();this._current=this._original=e;this._stateChanged.emit(undefined)}get current(){return this._current}set current(e){const t=this._current===e||this._current&&e&&a.JSONExt.deepEqual(e,this._current);if(t){return}const n=this._original;if(!n){return}const i=this._cursor;if(!i){return}const s=this._current=e;if(!s){this._stateChanged.emit(undefined);return}const o=n.text.split("\n")[n.line];const r=s.text.split("\n")[s.line];if(!this._subsetMatch&&r.lengthe.processedItem));this._processedToOriginalItem=new WeakMap(t.map((e=>[e.processedItem,e.originalItem])))}else{this.processedItemsCache=this._completionItems.map((e=>this._escapeItemLabel(e)));this._processedToOriginalItem=null}}return this.processedItemsCache}setCompletionItems(e){if(a.JSONExt.deepEqual(e,this._completionItems)){return}this._completionItems=e;this._orderedTypes=f.findOrderedCompletionItemTypes(this._completionItems);this.processedItemsCache=null;this._processedToOriginalItem=null;this._stateChanged.emit(undefined)}typeMap(){return this._typeMap}orderedTypes(){return this._orderedTypes}handleCursorChange(e){if(!this._original){return}const{column:t,line:n}=e;const{current:i,original:s}=this;if(!s){return}if(n!==s.line){this.reset(true);return}if(ts.column+r+d){this.reset(true);return}}handleTextChange(e){const t=this._original;if(!t){return}const{text:n,column:i,line:s}=e;const o=n.split("\n")[s][i-1];if(o&&o.match(/\S/)||e.column>=t.column){this.current=e;return}this.reset(false)}createPatch(e){const t=this._original;const n=this._cursor;const i=this._current;if(!t||!n||!i){return undefined}let{start:s,end:o}=n;o=o+(i.text.length-t.text.length);return{start:s,end:o,value:e}}reset(e=false){if(!e&&this._subsetMatch){return}this._reset();this._stateChanged.emit(undefined)}_markup(e){var t;const n=this._completionItems;let i=[];for(const s of n){const n=s.label.indexOf("(");const o=n>-1?s.label.substring(0,n):s.label;const r=p.StringExt.matchSumOfSquares(m(o),e);if(r){let e=p.StringExt.highlight(m(s.label),r.indices,f.mark);const n=Object.assign({},s);n.label=e.join("");n.insertText=(t=s.insertText)!==null&&t!==void 0?t:s.label;i.push({item:n,score:r.score,originalItem:s})}}i.sort(f.scoreCmp);return i.map((e=>({processedItem:e.item,originalItem:e.originalItem})))}resolveItem(e){let t;if(typeof e==="number"){const n=this.completionItems();if(!n||!n[e]){return undefined}t=n[e]}else{t=e}if(!t){return undefined}let n;if(this._processedToOriginalItem){n=this._processedToOriginalItem.get(t)}else{n=t}if(!n){return undefined}return this._resolveItemByValue(n)}_resolveItemByValue(e){const t=++this._resolvingItem;let n;if(e.resolve){let t;if(e.insertText){t=this.createPatch(e.insertText)}n=e.resolve(t)}else{n=Promise.resolve(e)}return n.then((n=>{this._escapeItemLabel(n,true);Object.keys(n).forEach((t=>{e[t]=n[t]}));e.resolve=undefined;if(t!==this._resolvingItem){return Promise.resolve(null)}return n})).catch((t=>{console.error(t);return Promise.resolve(e)}))}_escapeItemLabel(e,t=false){var n;const i=m(e.label);if(i!==e.label){const s=t?e:Object.assign({},e);s.insertText=(n=e.insertText)!==null&&n!==void 0?n:e.label;s.label=i;return s}return e}_reset(){const e=this._query;this._current=null;this._cursor=null;this._completionItems=[];this._original=null;this._query="";this.processedItemsCache=null;this._processedToOriginalItem=null;this._subsetMatch=false;this._typeMap={};this._orderedTypes=[];if(e){this._queryChanged.emit({newValue:this._query,origin:"reset"})}}}var f;(function(e){const t=["function","instance","class","module","keyword"];const n=t.reduce(((e,t)=>{e[t]=null;return e}),{});function i(e){return`${e}`}e.mark=i;function s(e,t){var n,i,s;const o=e.score-t.score;if(o!==0){return o}return(s=(n=e.item.insertText)===null||n===void 0?void 0:n.localeCompare((i=t.item.insertText)!==null&&i!==void 0?i:""))!==null&&s!==void 0?s:0}e.scoreCmp=s;function o(e){const n=new Set;e.forEach((e=>{if(e.type&&!t.includes(e.type)&&!n.has(e.type)){n.add(e.type)}}));const i=Array.from(n);i.sort(((e,t)=>e.localeCompare(t)));return t.concat(i)}e.findOrderedCompletionItemTypes=o;function r(e){const i=Object.keys(e).map((t=>e[t])).filter((e=>!!e&&!(e in n))).sort(((e,t)=>e.localeCompare(t)));return t.concat(i)}e.findOrderedTypes=r})(f||(f={}));var v=n(14366);var _=n(44539);var b=n(26331);var y=n(76326);var w=n(1143);const C="jp-Completer-item";const x="jp-mod-active";const S="jp-Completer-list";const k="jp-Completer-docpanel";const j=true;const I=10;class E extends w.Widget{constructor(e){var t,n,i,s;super({node:document.createElement("div")});this._activeIndex=0;this._editor=null;this._model=null;this._selected=new r.Signal(this);this._visibilityChanged=new r.Signal(this);this._indexChanged=new r.Signal(this);this._lastSubsetMatch="";this._geometryLock=false;this._geometryCounter=0;this._docPanelExpanded=false;this._renderCounter=0;this.sanitizer=(t=e.sanitizer)!==null&&t!==void 0?t:new v.Sanitizer;this._defaultRenderer=E.getDefaultRenderer(this.sanitizer);this._renderer=(n=e.renderer)!==null&&n!==void 0?n:this._defaultRenderer;this._docPanel=this._createDocPanelNode();this.model=(i=e.model)!==null&&i!==void 0?i:null;this.editor=(s=e.editor)!==null&&s!==void 0?s:null;this.addClass("jp-Completer");this.addClass("jp-ThemedContainer");this._updateConstraints()}_updateConstraints(){const e=document.createElement("div");e.classList.add(S);e.style.visibility="hidden";e.style.overflowY="scroll";document.body.appendChild(e);const t=window.getComputedStyle(e);this._maxHeight=parseInt(t.maxHeight,10);this._minHeight=parseInt(t.minHeight,10);this._scrollbarWidth=e.offsetWidth-e.clientWidth;document.body.removeChild(e);const n=this._createDocPanelNode();this._docPanelWidth=T.measureSize(n,"inline-block").width}get activeIndex(){return this._activeIndex}get editor(){return this._editor}set editor(e){this._editor=e}get selected(){return this._selected}get visibilityChanged(){return this._visibilityChanged}get indexChanged(){return this._indexChanged}get model(){return this._model}set model(e){if(!e&&!this._model||e===this._model){return}if(this._model){this._model.stateChanged.disconnect(this.onModelStateChanged,this);this._model.queryChanged.disconnect(this.onModelQueryChanged,this)}this._model=e;if(this._model){this._model.stateChanged.connect(this.onModelStateChanged,this);this._model.queryChanged.connect(this.onModelQueryChanged,this)}}get renderer(){return this._renderer}set renderer(e){this._renderer=e}set showDocsPanel(e){this._showDoc=e}get showDocsPanel(){return this._showDoc}dispose(){this._sizeCache=undefined;this._model=null;super.dispose()}handleEvent(e){if(this.isHidden||!this._editor){return}switch(e.type){case"keydown":this._evtKeydown(e);break;case"pointerdown":this._evtPointerdown(e);break;case"scroll":this._evtScroll(e);break;default:break}}reset(){this._activeIndex=0;this._lastSubsetMatch="";if(this._model){this._model.reset(true)}this._docPanel.style.display="none";this._sizeCache=undefined;this.node.scrollTop=0}selectActive(){const e=this.node.querySelector(`.${x}`);if(!e){this.reset();return}this._selected.emit(e.getAttribute("data-value"));this.reset()}onAfterAttach(e){document.addEventListener("keydown",this,j);document.addEventListener("pointerdown",this,j);document.addEventListener("scroll",this,j)}onBeforeDetach(e){document.removeEventListener("keydown",this,j);document.removeEventListener("pointerdown",this,j);document.removeEventListener("scroll",this,j)}onModelStateChanged(){if(this.isAttached){this._activeIndex=0;this._indexChanged.emit(this._activeIndex);this.update()}}onModelQueryChanged(e,t){if(this._sizeCache&&t.origin==="editorUpdate"){const t=e.completionItems();const n=this._sizeCache.items;const i=n[this._findWidestItemIndex(n)];const s=t[this._findWidestItemIndex(t)];const o=this._getPreferredItemWidthHeuristic();if(t.length!==this._sizeCache.items.length||o(i)!==o(s)){this._sizeCache=undefined}}}onUpdateRequest(e){var t;const n=this._model;if(!n){return}if(!n.query){this._populateSubset()}let i=n.completionItems();if(!i.length){if(!this.isHidden){this.reset();this.hide();this._visibilityChanged.emit(undefined)}return}this._updateConstraints();this._geometryLock=true;const s=this._createCompleterNode(n,i);let o=s.querySelectorAll(`.${C}`)[this._activeIndex];o.classList.add(x);const r=(t=this.model)===null||t===void 0?void 0:t.resolveItem(i[this._activeIndex]);if(this._showDoc){this._docPanel.innerText="";s.appendChild(this._docPanel);this._docPanelExpanded=false;this._docPanel.style.display="none";this._updateDocPanel(r,o)}if(this.isHidden){this.show();this._setGeometry();this._visibilityChanged.emit(undefined)}else{this._setGeometry()}this._geometryLock=false}get sizeCache(){if(!this._sizeCache){return}return{width:this._sizeCache.width+this._sizeCache.docPanelWidth,height:Math.max(this._sizeCache.height,this._sizeCache.docPanelHeight)}}_createDocPanelNode(){const e=document.createElement("div");e.className=k;return e}_createCompleterNode(e,t){const n=++this._renderCounter;let i=this.node;i.textContent="";let s=e.orderedTypes();let o=document.createElement("ul");o.className=S;const r=this._renderer.createCompletionItemNode(t[0],s);const a=[r];const l=T.measureSize(r,"inline-grid");const d=Math.max(Math.ceil(this._maxHeight/l.height),5);const c=Math.min(d+1,t.length);const h=performance.now();for(let g=1;g{if(r>=t.length){return}const e=l.height*(t.length-r);d.style.marginBottom=`${e}px`;requestAnimationFrame((()=>{if(n!=this._renderCounter){return}d.style.marginBottom="";const e=Math.min(t.length,r+i);for(let n=r;n{this._setGeometry()}))}_populateSubset(){const{model:e}=this;if(!e){return false}const t=e.completionItems();const n=T.commonSubset(t.map((e=>e.insertText||e.label)));const{query:i}=e;if(n&&n!==i&&n.indexOf(i)===0){e.query=n;return true}return false}_setGeometry(){const{node:e}=this;const t=this._model;const n=this._editor;if(!n||!t||!t.original||!t.cursor){return}const i=t.cursor.start;const s=n.getPositionAt(i);const o=n.getCoordinateForPosition(s);if(!o){return}const r=window.getComputedStyle(e);const a=parseInt(r.borderLeftWidth,10)||0;const l=parseInt(r.paddingLeft,10)||0;const d=n.host.closest(".jp-MainAreaWidget > .lm-Widget")||n.host;const c=t.completionItems();if(this._sizeCache&&this._sizeCache.items.length!==c.length){this._sizeCache=undefined}b.HoverBox.setGeometry({anchor:o,host:d,maxHeight:this._maxHeight,minHeight:this._minHeight,node:e,size:this.sizeCache,offset:{horizontal:a+l},privilege:"below",style:r,outOfViewDisplay:{top:"stick-inside",bottom:"stick-inside",left:"stick-inside",right:"stick-outside"}});const h=++this._geometryCounter;if(!this._sizeCache){requestAnimationFrame((()=>{if(h!=this._geometryCounter){return}let t=e.getBoundingClientRect();let n=this._docPanel.getBoundingClientRect();this._sizeCache={width:t.width-n.width,height:t.height,items:c,docPanelWidth:n.width,docPanelHeight:n.height}}))}}_updateDocPanel(e,t){var n,i,s;let o=this._docPanel;if(!e){this._toggleDocPanel(false);return}const r=(s=(i=(n=this._renderer).createLoadingDocsIndicator)===null||i===void 0?void 0:i.call(n))!==null&&s!==void 0?s:this._defaultRenderer.createLoadingDocsIndicator();t.appendChild(r);e.then((e=>{var t,n,i;if(!e){return}if(!o){return}if(e.documentation){const s=(i=(n=(t=this._renderer).createDocumentationNode)===null||n===void 0?void 0:n.call(t,e))!==null&&i!==void 0?i:this._defaultRenderer.createDocumentationNode(e);o.textContent="";o.appendChild(s);this._toggleDocPanel(true)}else{this._toggleDocPanel(false)}})).catch((e=>console.error(e))).finally((()=>{t.removeChild(r)}))}_toggleDocPanel(e){let t=this._docPanel;if(e){if(this._docPanelExpanded){return}t.style.display="";this._docPanelExpanded=true}else{if(!this._docPanelExpanded){return}t.style.display="none";this._docPanelExpanded=false}const n=this._sizeCache;if(n){n.docPanelHeight=e?this._maxHeight:0;n.docPanelWidth=e?this._docPanelWidth:0;if(!this._geometryLock){this._setGeometry()}}}}(function(e){class t{constructor(e){this.sanitizer=(e===null||e===void 0?void 0:e.sanitizer)||new v.Sanitizer}createCompletionItemNode(e,t){let n=this._createWrapperNode(e.insertText||e.label);if(e.deprecated){n.classList.add("jp-Completer-deprecated")}return this._constructNode(n,this._createLabelNode(e.label),!!e.type,e.type,t,e.icon)}createDocumentationNode(e){const t=document.createElement("div");t.classList.add("jp-RenderedText");const n=this.sanitizer;const i=e.documentation||"";(0,_.renderText)({host:t,sanitizer:n,source:i}).catch(console.error);return t}itemWidthHeuristic(e){var t;const n=e.label.replace(/<(\/)?mark>/g,"");return n.length+(((t=e.type)===null||t===void 0?void 0:t.length)||0)}createLoadingDocsIndicator(){const e=document.createElement("div");e.classList.add("jp-Completer-loading-bar-container");const t=document.createElement("div");t.classList.add("jp-Completer-loading-bar");e.append(t);return e}_createWrapperNode(e){const t=document.createElement("li");t.className=C;t.setAttribute("data-value",e);return t}_createLabelNode(e){const t=document.createElement("code");t.className="jp-Completer-match";t.innerHTML=e;return t}_constructNode(e,t,n,i,s,o){if(o){const t=o.element({className:"jp-Completer-type jp-Completer-icon"});e.appendChild(t)}else if(n){const t=document.createElement("span");t.textContent=(i[0]||"").toLowerCase();const n=s.indexOf(i)%I+1;t.className="jp-Completer-type jp-Completer-monogram";t.setAttribute(`data-color-index`,n.toString());e.appendChild(t)}else{const t=document.createElement("span");t.className="jp-Completer-monogram";e.appendChild(t)}e.appendChild(t);if(n){e.title=i;const t=document.createElement("code");t.className="jp-Completer-typeExtended";t.textContent=i.toLocaleLowerCase();e.appendChild(t)}else{const t=document.createElement("span");t.className="jp-Completer-typeExtended";e.appendChild(t)}return e}}e.Renderer=t;let n;function i(e){if(!n||e&&n.sanitizer!==e){n=new t({sanitizer:e})}return n}e.getDefaultRenderer=i})(E||(E={}));var T;(function(e){e.keyCodeMap={38:"up",40:"down",33:"pageUp",34:"pageDown"};function t(e){const t=e.length;let n="";if(t<2){return n}const i=e[0].length;for(let s=0;se.resolve?n=>e.resolve(t,this._context,n):undefined;this._fetching=0;this._inlineFetching=0;this._providers=e.providers;this._inlineProviders=(t=e.inlineProviders)!==null&&t!==void 0?t:[];this._inlineProvidersSettings=(n=e.inlineProvidersSettings)!==null&&n!==void 0?n:{};this._context=e.context;this._timeout=e.timeout}async applicableProviders(){const e=this._providers.map((e=>e.isApplicable(this._context)));const t=await Promise.all(e);return this._providers.filter(((e,n)=>t[n]))}fetchInline(e,t,n){let i=[];const s=++this._inlineFetching;for(const o of this._inlineProviders){const a=this._inlineProvidersSettings[o.identifier];if(t!==d.Invoke&&n&&!a.autoFillInMiddle){continue}let l=0;if(t===d.Automatic){l=a.debouncerDelay}const c=()=>{const n=o.fetch(e,{...this._context,triggerKind:t}).then((e=>({...e,items:e.items.map((e=>{const t=e;t.stream=new r.Signal(t);t.provider=o;void this._stream(t,o);return t}))})));const i=new Promise((e=>setTimeout((()=>e(null)),l+a.timeout)));return Promise.race([n,i])};const h=l===0?c():new Promise(((e,t)=>setTimeout((()=>{if(s!=this._inlineFetching){return t(null)}else{return e(c())}}),l)));i.push(h.catch((e=>e)))}return i}async _stream(e,t){if(!e.isIncomplete||!t.stream||!e.token){return}const n=e.stream;const i=e.token;e.token=undefined;e.streaming=true;n.emit(u.StraemEvent.opened);for await(const s of t.stream(i)){const t=s.response;const i=t.insertText.substring(e.insertText.length);e.insertText=t.insertText;e.lastStreamed=i;e.error=s.response.error;n.emit(u.StraemEvent.update)}e.isIncomplete=false;e.lastStreamed=undefined;e.streaming=false;n.emit(u.StraemEvent.closed)}async fetch(e,t){const n=++this._fetching;let i=[];const s=await this.applicableProviders();for(const r of s){let s;s=r.fetch(e,this._context,t).then((e=>{if(n!==this._fetching){return Promise.reject(void 0)}const t=e.items.map((e=>({...e,resolve:this._resolveFactory(r,e)})));return{...e,items:t}}));const o=new Promise((e=>setTimeout((()=>e(null)),this._timeout)));s=Promise.race([s,o]);i.push(s.catch((e=>e)))}const o=Promise.all(i);return this._mergeCompletions(o)}async shouldShowContinuousHint(e,t){const n=await this.applicableProviders();if(n.length===0){return false}if(n[0].shouldShowContinuousHint){return n[0].shouldShowContinuousHint(e,t,this._context)}return this._defaultShouldShowContinuousHint(e,t)}_alignPrefixes(e,t,n){if(t!=n){const t=this._context.editor;if(!t){return e}const i=t.getCursorPosition();const s=t.getLine(i.line);if(!s){return e}const o=t.getOffsetAt({line:i.line,column:0});return e.map((e=>{const t=Math.max(e.start-o,0);const i=Math.max(n-o,0);if(t==i){return e}const r=s.substring(t,i);return{...e,items:e.items.map((e=>{let t=e.insertText||e.label;e.insertText=t.startsWith(r)?t.slice(r.length):t;return e}))}}))}return e}async _mergeCompletions(e){let t=(await e).filter((e=>{if(!e||e instanceof Error){return false}if(!e.items.length){return false}return true}));if(t.length==0){return null}else if(t.length==1){return t[0]}const n=Math.min(...t.map((e=>e.end)));const i=t.map((e=>e.start));const s=Math.min(...i);const o=Math.max(...i);t=this._alignPrefixes(t,s,o);const r=new Set;const a=new Array;for(const l of t){l.items.forEach((e=>{let t=(e.insertText||e.label).trim();if(r.has(t)){return}r.add(t);a.push(e)}))}return{start:o,end:n,items:a}}_defaultShouldShowContinuousHint(e,t){return!e&&(t.sourceChange==null||t.sourceChange.some((e=>e.insert!=null&&e.insert.length>0)))}}const D="CompletionProvider:context";class A{constructor(){this.identifier=D;this.rank=500;this.renderer=null}async isApplicable(e){return true}fetch(e,t){const n=t.editor;if(!n){return Promise.reject("No editor")}return new Promise((e=>{e(P.contextHint(n))}))}}var P;(function(e){function t(e){const t=e.getTokenAtCursor();const i=n(t,e);const s=i.filter((e=>e.type)).map((e=>e.value));const o=new Set(s);const r=new Array;o.forEach((e=>r.push({label:e})));return{start:t.offset,end:t.offset+t.value.length,items:r}}e.contextHint=t;function n(e,t){const n=t.getTokens();return n.filter((t=>t.value.indexOf(e.value)===0&&t.value!==e.value))}})(P||(P={}));const L="CompletionProvider:kernel";class R{constructor(){this.identifier=L;this.rank=550;this.renderer=null}async isApplicable(e){var t;const n=(t=e.session)===null||t===void 0?void 0:t.kernel;if(!n){return false}return true}async fetch(e,t){var n;const i=(n=t.session)===null||n===void 0?void 0:n.kernel;if(!i){throw new Error("No kernel for completion request.")}const s={code:e.text,cursor_pos:e.offset};const o=await i.requestComplete(s);const r=o.content;if(r.status!=="ok"){throw new Error("Completion fetch failed to return successfully.")}const a=new Array;const l=r.metadata._jupyter_types_experimental;r.matches.forEach(((e,t)=>{if(l&&l[t]){a.push({label:e,type:l[t].type,insertText:l[t].text})}else{a.push({label:e})}}));return{start:r.cursor_start,end:r.cursor_end,items:a}}async resolve(e,t,n){const{editor:i,session:o}=t;if(o&&i){let t=i.model.sharedModel.getSource();const r=i.getCursorPosition();let a=s.Text.jsIndexToCharIndex(i.getOffsetAt(r),t);const l=o.kernel;if(!t||!l){return Promise.resolve(e)}if(n){const{start:e,value:i}=n;t=t.substring(0,e)+i;a=a+i.length}const d={code:t,cursor_pos:a,detail_level:0};const c=await l.requestInspect(d);const h=c.content;if(h.status!=="ok"||!h.found){return e}e.documentation=h.data["text/plain"];return e}return e}shouldShowContinuousHint(e,t){const n=t.sourceChange;if(n==null){return true}if(n.some((e=>e.delete!=null))){return false}return n.some((t=>t.insert!=null&&(t.insert==="."||!e&&t.insert.trim().length>0)))}}var N=n(22819);var O=n(71674);const B="jp-GhostText-lineSpacer";const F="jp-GhostText-letterSpacer";const z="jp-GhostText";const H="jp-GhostText-streamedToken";const W="jp-GhostText-streamingIndicator";const V="jp-GhostText-errorIndicator";const U="jp-GhostText-hiddenLines";class q{constructor(e){this.options=e}placeGhost(e,t){const n=[Y.addMark.of(t)];if(!e.state.field(Y.markField,false)){n.push(O.StateEffect.appendConfig.of([Y.markField]));n.push(O.StateEffect.appendConfig.of([N.EditorView.domEventHandlers({blur:t=>{if(this.options.onBlur(t)===false){return true}const n=[Y.removeMark.of(null)];setTimeout((()=>{e.dispatch({effects:n})}),0)}})]))}e.dispatch({effects:n})}clearGhosts(e){const t=[Y.removeMark.of(null)];e.dispatch({effects:t})}}q.streamingAnimation="uncover";q.spacerRemovalDelay=700;q.spacerRemovalDuration=300;class $ extends N.WidgetType{constructor(e){super();this.options=e;this.isSpacer=false;this._clearErrorTimeout=null}eq(e){return e.content==this.content&&e.options.streaming===this.options.streaming&&e.options.error===this.options.error}get lineBreaks(){return(this.content.match(/\n/g)||"").length}updateDOM(e,t){this._updateDOM(e);return true}get content(){return this.options.content}toDOM(){let e=document.createElement("span");if(this.options.onPointerOver){e.addEventListener("pointerover",this.options.onPointerOver)}if(this.options.onPointerLeave){e.addEventListener("pointerleave",this.options.onPointerLeave)}e.classList.add(z);e.dataset.animation=q.streamingAnimation;e.dataset.providedBy=this.options.providerId;this._updateDOM(e);return e}_removeErrorAnimation(e){const t=e.querySelectorAll(`.${V}`);t.forEach((e=>{e.remove()}))}_mountErrorAnimation(e){const t=document.createElement("span");t.className=V;const n=this.options.error;if(n===null||n===void 0?void 0:n.message){t.title=n===null||n===void 0?void 0:n.message}const i=e.querySelectorAll(`.${W}, .${V}`);i.forEach((e=>{e.remove()}));e.appendChild(t)}_updateDOM(e){var t,n;if(this.options.error){this._mountErrorAnimation(e);this._clearErrorTimeout=setTimeout((()=>{this._removeErrorAnimation(e);this._clearErrorTimeout=null}),5e3);return}if(this._clearErrorTimeout!==null){clearTimeout(this._clearErrorTimeout);this._removeErrorAnimation(e);this._clearErrorTimeout=null}let i=this.content;let s="";let o=this.options.addedPart;if(o){if(o.startsWith("\n")){o=o.substring(1)}i=i.substring(0,i.length-o.length)}if(this.options.maxLines){const e=i.split("\n");i=e.slice(0,this.options.maxLines).join("\n");s=e.slice(this.options.maxLines).join("\n")}const r=Math.min((t=this.options.minLines)!==null&&t!==void 0?t:0,(n=this.options.maxLines)!==null&&n!==void 0?n:Infinity);const a=Math.max(0,r-i.split("\n").length+1);const l=new Array(a).fill("").join("\n");if(this.isSpacer){e.innerText=i+l;return}e.innerText=i;let d=e;if(s.length>0){const t=document.createElement("span");t.className="jp-GhostText-hiddenWrapper";e.appendChild(t);const n=document.createElement("span");n.className="jp-GhostText-expandHidden";n.innerText="⇓";const i=document.createElement("span");t.appendChild(n);i.className=U;i.innerText="\n"+s;t.appendChild(i);d=i}if(o){const e=document.createElement("span");e.className=H;e.innerText=o;d.appendChild(e)}if(this.options.streaming){const e=document.createElement("span");e.className=W;d.appendChild(e)}if(l.length>0){const e=document.createTextNode(l);d.appendChild(e)}}destroy(e){if(this.options.onPointerOver){e.removeEventListener("pointerover",this.options.onPointerOver)}if(this.options.onPointerLeave){e.removeEventListener("pointerleave",this.options.onPointerLeave)}super.destroy(e)}}class K extends ${constructor(){super(...arguments);this.isSpacer=true}}class J extends K{toDOM(){const e=super.toDOM();e.classList.add(B);e.style.animationDelay=q.spacerRemovalDelay+"ms";e.style.animationDuration=q.spacerRemovalDuration+"ms";return e}}class G extends K{get content(){return this.options.content[0]}toDOM(){const e=super.toDOM();e.classList.add(F);return e}}var Y;(function(e){let t;(function(e){e[e["Set"]=0]="Set";e[e["Remove"]=1]="Remove";e[e["FilterAndUpdate"]=2]="FilterAndUpdate"})(t||(t={}));e.addMark=O.StateEffect.define({map:(e,t)=>({...e,from:t.mapPos(e.from),to:t.mapPos(e.from+e.content.length)})});e.removeMark=O.StateEffect.define();function n(n){for(let i of n.effects){if(i.is(e.addMark)){return{action:t.Set,spec:i.value}}else if(i.is(e.removeMark)){return{action:t.Remove}}}if(n.docChanged||n.selection){return{action:t.FilterAndUpdate}}return null}function i(e,t){const n=N.Decoration.widget({widget:new $(e),side:1,ghostSpec:e});return n.range(Math.min(e.from,t.newDoc.length),Math.min(e.from,t.newDoc.length))}function s(e,t,n=1e3){if(e.content.length<2){return[]}const i={elapsed:false};setTimeout((()=>{i.elapsed=true}),n);const s=N.Decoration.widget({widget:new G(e),side:1,timeoutInfo:i});const o=N.Decoration.widget({widget:new J(e),side:1,timeoutInfo:i});return[s.range(Math.min(e.from,t.newDoc.length),Math.min(e.from,t.newDoc.length)),o.range(Math.min(e.from,t.newDoc.length),Math.min(e.from,t.newDoc.length))]}e.markField=O.StateField.define({create(){return N.Decoration.none},update(e,o){const r=n(o);e=e.update({filter:(e,t,n)=>{if(n.spec.widget instanceof K){return!n.spec.timeoutInfo.elapsed}return true}});if(!r){return e.map(o.changes)}switch(r.action){case t.Set:{const t=r.spec;const n=i(t,o);return e.update({add:[n],filter:(e,t,i)=>i===n.value})}case t.Remove:return e.update({filter:()=>false});case t.FilterAndUpdate:{let t=e.iter();while(t.value&&t.value.spec.widget instanceof K){t.next()}if(!t.value){return e.map(o.changes)}const n=t.value.spec.ghostSpec;const r={...n};let l=false;o.changes.iterChanges(((e,t,n,i,s)=>{if(l){return}if(e===t&&n!==i){for(let e=0;e0?"\n"+t:t;if(r.content.startsWith(n)){r.content=r.content.slice(n.length);r.from+=n.length}else{l=true;break}}}else if(n===i&&e!==t){l=true}else{l=true}}));const d=l?s(n,o):[i(r,o)];const c=d.map((e=>e.value));e=e.update({add:d,filter:(e,t,n)=>c.includes(n)});if(l){try{e=e.map(o.changes)}catch(a){console.warn(a);return N.Decoration.none}}return e}}},provide:e=>N.EditorView.decorations.from(e)})})(Y||(Y={}));const X="jp-InlineCompleter";const Q="jp-mod-inline-completer-active";const Z="jp-InlineCompleter-hover";const ee="jp-InlineCompleter-progressBar";class te extends w.Widget{constructor(e){var t,n;super({node:document.createElement("div")});this._clearHoverTimeout=null;this._current=0;this._editor=null;this._lastItem=null;this._model=null;this._providerWidget=new w.Widget;this._showShortcuts=te.defaultSettings.showShortcuts;this._showWidget=te.defaultSettings.showWidget;this._suggestionsCounter=new w.Widget;this._toolbar=new b.Toolbar;this.model=(t=e.model)!==null&&t!==void 0?t:null;this.editor=(n=e.editor)!==null&&n!==void 0?n:null;this.addClass(X);this.addClass("jp-ThemedContainer");this._ghostManager=new q({onBlur:this._onEditorBlur.bind(this)});this._trans=e.trans;const i=this.layout=new w.PanelLayout;i.addWidget(this._suggestionsCounter);i.addWidget(this.toolbar);i.addWidget(this._providerWidget);this._progressBar=document.createElement("div");this._progressBar.className=ee;this.node.appendChild(this._progressBar);this._updateShortcutsVisibility();this._updateDisplay();this.node.tabIndex=0}get toolbar(){return this._toolbar}get editor(){return this._editor}set editor(e){var t;(t=this.model)===null||t===void 0?void 0:t.reset();this._editor=e}get model(){return this._model}set model(e){if(!e&&!this._model||e===this._model){return}if(this._model){this._model.suggestionsChanged.disconnect(this._onModelSuggestionsChanged,this);this._model.filterTextChanged.disconnect(this._onModelFilterTextChanged,this);this._model.provisionProgress.disconnect(this._onProvisionProgress,this)}this._model=e;if(this._model){this._model.suggestionsChanged.connect(this._onModelSuggestionsChanged,this);this._model.filterTextChanged.connect(this._onModelFilterTextChanged,this);this._model.provisionProgress.connect(this._onProvisionProgress,this)}}cycle(e){var t,n;const i=(n=(t=this.model)===null||t===void 0?void 0:t.completions)===null||n===void 0?void 0:n.items;if(!i){return}if(e==="next"){const e=this._current+1;this._current=e===i.length?0:e}else{const e=this._current-1;this._current=e===-1?i.length-1:e}this._updateStreamTracking();this._render()}accept(){const e=this.model;const t=this.current;const n=this._editor;if(!n||!e||!t){return}const i=e.cursor;const s=t.insertText;const o=n.getOffsetAt(n.getCursorPosition());const r=n.getOffsetAt(i);const a=r;const l=o;const d={changes:{from:a,to:l,insert:s}};if(o<=l&&o>=a){d.selection={anchor:a+s.length}}n.editor.dispatch(d);e.reset();this.update()}get current(){var e;const t=(e=this.model)===null||e===void 0?void 0:e.completions;if(!t){return null}return t.items[this._current]}_updateStreamTracking(){if(this._lastItem){this._lastItem.stream.disconnect(this._onStream,this)}const e=this.current;if(e){e.stream.connect(this._onStream,this)}this._lastItem=e}_onStream(e,t){var n;const i=(n=this.model)===null||n===void 0?void 0:n.completions;if(!i||!i.items||i.items.length===0){return}if(this.isHidden){return}const s=i.items[this._current];this._setText(s)}configure(e){this._showWidget=e.showWidget;this._updateDisplay();if(e.showShortcuts!==this._showShortcuts){this._showShortcuts=e.showShortcuts;this._updateShortcutsVisibility()}q.streamingAnimation=e.streamingAnimation;q.spacerRemovalDelay=Math.max(0,e.editorResizeDelay-300);q.spacerRemovalDuration=Math.max(0,Math.min(300,e.editorResizeDelay-300));this._minLines=e.minLines;this._maxLines=e.maxLines;this._reserveSpaceForLongest=e.reserveSpaceForLongest;this._suppressIfTabCompleterActive=e.suppressIfTabCompleterActive}get suppressIfTabCompleterActive(){return this._suppressIfTabCompleterActive}get isActive(){var e;return!!((e=this.editor)===null||e===void 0?void 0:e.host.classList.contains(Q))}handleEvent(e){if(this.isHidden||!this._editor){return}switch(e.type){case"pointerdown":this._evtPointerdown(e);break;case"scroll":this._evtScroll(e);break;default:break}}onUpdateRequest(e){super.onUpdateRequest(e);const t=this._model;if(!t){return}let n=t.completions;if(!n||!n.items||n.items.length===0){if(!this.isHidden){this.hide()}return}if(this.isHidden){this.show();this._setGeometry()}}onAfterAttach(e){document.addEventListener("scroll",this,true);document.addEventListener("pointerdown",this,true)}onBeforeDetach(e){document.removeEventListener("scroll",this,true);document.removeEventListener("pointerdown",this,true)}_evtPointerdown(e){var t;if(this.isHidden||!this._editor){return}const n=e.target;if(this.node.contains(n)){return true}this.hide();(t=this.model)===null||t===void 0?void 0:t.reset()}_evtScroll(e){if(this.isHidden||!this._editor){return}const{node:t}=this;if(t.contains(e.target)){return}requestAnimationFrame((()=>{this._setGeometry()}))}_onEditorBlur(e){var t;if(this.node.contains(e.relatedTarget)){return false}(t=this._editor)===null||t===void 0?void 0:t.host.classList.remove(Q);this.hide()}_onModelSuggestionsChanged(e,t){var n;if(!this.isAttached){this.update();return}if(t.event==="set"){this._current=(n=t.indexMap.get(this._current))!==null&&n!==void 0?n:0}else if(t.event==="clear"){const e=this.editor;if(e){this._ghostManager.clearGhosts(e.editor);e.host.classList.remove(Q)}}this._updateStreamTracking();this.update();this._render()}_onModelFilterTextChanged(e,t){var n,i;const s=(n=this.model)===null||n===void 0?void 0:n.completions;if(!s||!s.items||s.items.length===0){return}this._current=(i=t.get(this._current))!==null&&i!==void 0?i:0;this._updateStreamTracking();setTimeout((()=>{this._render();this._setGeometry()}),0)}_onProvisionProgress(e,t){requestAnimationFrame((()=>{if(t.pendingProviders===0){this._progressBar.style.display="none"}else{this._progressBar.style.display="";this._progressBar.style.width=100*t.pendingProviders/t.totalProviders+"%"}}))}_render(){var e,t;const n=(e=this.model)===null||e===void 0?void 0:e.completions;if(!n||!n.items||n.items.length===0){return}const i=n.items[this._current];this._setText(i);if(this._showWidget==="never"){return}this._suggestionsCounter.node.innerText=this._trans.__("%1/%2",this._current+1,n.items.length);this._providerWidget.node.title=this._trans.__("Provider: %1",i.provider.name);const s=(t=i.provider.icon)!==null&&t!==void 0?t:b.kernelIcon;s.render(this._providerWidget.node)}_setText(e){var t,n,i;const s=e.insertText;const o=this._editor;const r=this._model;if(!r||!o){return}const a=o.editor;let l;if(this._reserveSpaceForLongest){const e=(i=(n=(t=this.model)===null||t===void 0?void 0:t.completions)===null||n===void 0?void 0:n.items)!==null&&i!==void 0?i:[];const s=Math.max(...e.map((e=>e.insertText.split("\n").length)));l=Math.max(this._minLines,s)}else{l=this._minLines}this._ghostManager.placeGhost(a,{from:o.getOffsetAt(r.cursor),content:s,providerId:e.provider.identifier,addedPart:e.lastStreamed,streaming:e.streaming,minLines:l,maxLines:this._maxLines,onPointerOver:this._onPointerOverGhost.bind(this),onPointerLeave:this._onPointerLeaveGhost.bind(this),error:e.error});o.host.classList.add(Q)}_onPointerOverGhost(){if(this._clearHoverTimeout!==null){window.clearTimeout(this._clearHoverTimeout);this._clearHoverTimeout=null}this.node.classList.add(Z)}_onPointerLeaveGhost(){this._clearHoverTimeout=window.setTimeout((()=>this.node.classList.remove(Z)),500)}_setGeometry(){const{node:e}=this;const t=this._model;const n=this._editor;if(!n||!t||!t.cursor){return}const i=n.host.closest(".jp-MainAreaWidget > .lm-Widget")||n.host;let s;try{const e=n.getCoordinateForPosition(t.cursor);if(!e){throw Error("No coordinates for cursor position")}s=e}catch(o){this.hide();return}b.HoverBox.setGeometry({anchor:s,host:i,maxHeight:40,minHeight:20,node:e,privilege:"forceAbove",outOfViewDisplay:{top:"stick-outside",bottom:"stick-inside",left:"stick-inside",right:"stick-outside"}})}_updateShortcutsVisibility(){this.node.dataset.showShortcuts=this._showShortcuts+""}_updateDisplay(){this.node.dataset.display=this._showWidget}}(function(e){e.defaultSettings={showWidget:"onHover",showShortcuts:true,streamingAnimation:"uncover",providers:{},minLines:2,maxLines:4,editorResizeDelay:1e3,reserveSpaceForLongest:false,suppressIfTabCompleterActive:true};class t{constructor(){this.suggestionsChanged=new r.Signal(this);this.filterTextChanged=new r.Signal(this);this.provisionProgress=new r.Signal(this);this._isDisposed=false;this._completions=null}setCompletions(e){var t,n;const i=new Map((n=(t=this._completions)===null||t===void 0?void 0:t.items)===null||n===void 0?void 0:n.map(((e,t)=>[e.insertText,t])));this._completions=e;const s=new Map(e.items.map(((e,t)=>[i.get(e.insertText),t])));this.suggestionsChanged.emit({event:"set",indexMap:s})}appendCompletions(e){if(!this._completions||!this._completions.items){console.warn("No completions to append to");return}this._completions.items.push(...e.items);this.suggestionsChanged.emit({event:"append"})}notifyProgress(e){this.provisionProgress.emit(e)}get cursor(){return this._cursor}set cursor(e){this._cursor=e}get completions(){return this._completions}reset(){this._completions=null;this.suggestionsChanged.emit({event:"clear"})}get isDisposed(){return this._isDisposed}handleTextChange(e){var t;const n=this._completions;if(!n||!n.items||n.items.length===0){return}const i=new Map(n.items.map(((e,t)=>[e,t])));for(let o of(t=e.sourceChange)!==null&&t!==void 0?t:[]){const e=o.insert;if(e){const t=n.items.filter((t=>{var n;const i=(n=t.filterText)!==null&&n!==void 0?n:t.insertText;if(!i.startsWith(e)){return false}t.filterText=i.substring(e.length);t.insertText=t.insertText.substring(e.length);return true}));if(t.length===0){this._completions=null}n.items=t}else{if(!o.retain){this._completions=null}}}const s=new Map(n.items.map(((e,t)=>[i.get(e),t])));this.filterTextChanged.emit(s)}handleSelectionChange(e){const t=this.cursor;if(!t){return}const{start:n,end:i}=e;if(n.column!==i.column||n.line!==i.line){this.reset()}if(n.line!==t.line||n.columnt.completer.showDocsPanel=e));this._showDoc=e}setSuppressIfInlineCompleterActive(e){this._panelHandlers.forEach((t=>t.completer.suppressIfInlineCompleterActive=e));this._suppressIfInlineCompleterActive=e}setContinuousHinting(e){this._panelHandlers.forEach((t=>t.autoCompletion=e));this._autoCompletion=e}registerProvider(e){const t=e.identifier;if(this._providers.has(t)){console.warn(`Completion provider with identifier ${t} is already registered`)}else{this._providers.set(t,e);this._panelHandlers.forEach(((e,t)=>{void this.updateCompleter(this._mostRecentContext.get(t))}))}}registerInlineProvider(e){const t=e.identifier;if(this._inlineProviders.has(t)){console.warn(`Completion provider with identifier ${t} is already registered`)}else{this._inlineProviders.set(t,e);this._panelHandlers.forEach(((e,t)=>{void this.updateCompleter(this._mostRecentContext.get(t))}))}}getProviders(){return this._providers}activateProvider(e){this._activeProviders=new Set([]);e.forEach((e=>{if(this._providers.has(e)){this._activeProviders.add(e)}}));if(this._activeProviders.size===0){this._activeProviders.add(L);this._activeProviders.add(D)}this._activeProvidersChanged.emit()}async updateCompleter(e){var t,n;const{widget:i,editor:s,sanitizer:o}=e;const r=i.id;const a=this._panelHandlers.get(r);const l=[...this._activeProviders][0];const d=this._providers.get(l);let c=(t=d===null||d===void 0?void 0:d.renderer)!==null&&t!==void 0?t:E.getDefaultRenderer(o);const h=d===null||d===void 0?void 0:d.modelFactory;let u;if(h){u=await h.call(d,e)}else{u=new g}this._mostRecentContext.set(i.id,e);const p={model:u,editor:s,renderer:c,sanitizer:o,showDoc:this._showDoc};if(!a){const t=await this._generateHandler(e,p);this._panelHandlers.set(i.id,t);t.completer.selected.connect(((e,t)=>this._selected.emit({insertText:t})));i.disposed.connect((e=>{this.disposeHandler(e.id,t);this._mostRecentContext.delete(r)}))}else{const t=a.completer;(n=t.model)===null||n===void 0?void 0:n.dispose();t.model=p.model;t.renderer=p.renderer;t.showDocsPanel=p.showDoc;t.suppressIfInlineCompleterActive=this._suppressIfInlineCompleterActive;a.autoCompletion=this._autoCompletion;if(s){a.editor=s;a.reconciliator=await this.generateReconciliator(e)}}}invoke(e){const t=this._panelHandlers.get(e);if(t){t.invoke()}}select(e){const t=this._panelHandlers.get(e);if(t){t.completer.selectActive()}}setInlineCompleterFactory(e){this._inlineCompleterFactory=e;this._panelHandlers.forEach(((e,t)=>{void this.updateCompleter(this._mostRecentContext.get(t))}));if(this.inline){return}this.inline={invoke:e=>{const t=this._panelHandlers.get(e);if(t&&t.inlineCompleter){t.invokeInline()}},isActive:e=>{const t=this._panelHandlers.get(e);if(t&&t.inlineCompleter){return t.inlineCompleter.isActive}return false},cycle:(e,t)=>{const n=this._panelHandlers.get(e);if(n&&n.inlineCompleter){n.inlineCompleter.cycle(t)}},accept:e=>{const t=this._panelHandlers.get(e);if(t&&t.inlineCompleter){t.inlineCompleter.accept()}},configure:e=>{this._inlineCompleterSettings=e;for(const[t,n]of this._inlineProviders.entries()){if(n.configure){n.configure(e.providers[t])}}this._panelHandlers.forEach(((t,n)=>{if(t.inlineCompleter){t.inlineCompleter.configure(e)}void this.updateCompleter(this._mostRecentContext.get(n))}))}}}get inlineProviders(){return[...this._inlineProviders.values()]}async generateReconciliator(e){const t=[];for(const[s,o]of Object.entries(this._inlineCompleterSettings.providers)){if(o.enabled===true){t.push(s)}}const n=[...this._inlineProviders.values()].filter((e=>t.includes(e.identifier)));const i=[];for(const s of this._activeProviders){const e=this._providers.get(s);if(e){i.push(e)}}return new M({context:e,providers:i,inlineProviders:n,inlineProvidersSettings:this._inlineCompleterSettings.providers,timeout:this._timeout})}disposeHandler(e,t){var n,i,s,o;(n=t.completer.model)===null||n===void 0?void 0:n.dispose();t.completer.dispose();(s=(i=t.inlineCompleter)===null||i===void 0?void 0:i.model)===null||s===void 0?void 0:s.dispose();(o=t.inlineCompleter)===null||o===void 0?void 0:o.dispose();t.dispose();this._panelHandlers.delete(e)}async _generateHandler(e,t){const n=new E(t);const i=this._inlineCompleterFactory?this._inlineCompleterFactory.factory({...t,model:new te.Model}):undefined;n.hide();w.Widget.attach(n,document.body);if(i){w.Widget.attach(i,document.body);i.hide();i.configure(this._inlineCompleterSettings)}const s=await this.generateReconciliator(e);const o=new u({completer:n,inlineCompleter:i,reconciliator:s});o.editor=e.editor;return o}}const ie='\n \n \n\n';const se='\n\n\n\n';const oe=new b.LabIcon({name:"completer:inline",svgstr:ie});const re=new b.LabIcon({name:"completer:widget",svgstr:se});var ae=n(30619);class le{constructor(e){this.options=e;this.identifier="@jupyterlab/inline-completer:history";this._maxSuggestions=100;const t=e.translator||ae.nullTranslator;this._trans=t.load("jupyterlab")}get name(){return this._trans.__("History")}get icon(){return b.historyIcon}get schema(){return{properties:{maxSuggestions:{title:this._trans.__("Maximum number of suggestions"),description:this._trans.__("The maximum number of suggestions to retrieve from history."),type:"number"}},default:{enabled:false,maxSuggestions:100}}}configure(e){var t;this._maxSuggestions=(t=e.maxSuggestions)!==null&&t!==void 0?t:100}async fetch(e,t,n){var i;const s=(i=t.session)===null||i===void 0?void 0:i.kernel;if(!s){throw new Error("No kernel for completion request.")}const o=e.text.slice(0,e.offset);const r=o.split("\n").slice(-1)[0];const a=e.text.slice(e.offset).split("\n")[0];let l;const d=[];if(r===""){l={output:false,raw:true,hist_access_type:"tail",n:this._maxSuggestions};const e=await s.requestHistory(l);if(e.content.status==="ok"){let t=e.content.history;const n=new Map;for(const e of t.reverse()){const t=e[2];n.set(t,(n.get(t)||0)+1)}const i=Array.from(n.entries());const s=i.sort(((e,t)=>{if(e[1]>t[1]){return-1}else if(e[1]{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(23359);var a=n(5893);var l=n(85072);var d=n.n(l);var c=n(97825);var h=n.n(c);var u=n(77659);var p=n.n(u);var m=n(55056);var g=n.n(m);var f=n(10540);var v=n.n(f);var _=n(41113);var b=n.n(_);var y=n(57331);var w={};w.styleTagTransform=b();w.setAttributes=g();w.insert=p().bind(null,"head");w.domAPI=h();w.insertStyleElement=v();var C=d()(y.A,w);const x=y.A&&y.A.locals?y.A.locals:undefined},70802:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>A});var i=n(94307);var s=n(14366);var o=n(54723);var r=n(29939);var a=n(9155);var l=n(42875);var d=n(74955);var c=n(23899);var h=n(44539);var u=n(84739);var p=n(30619);var m=n(26331);var g=n(34236);var f=n(5592);var v=n(90044);var _=n(1143);var b=n(94466);const y={id:"@jupyterlab/console-extension:foreign",description:"Add foreign handler of IOPub messages to the console.",requires:[a.IConsoleTracker,u.ISettingRegistry,p.ITranslator],optional:[s.ICommandPalette],activate:C,autoStart:true};const w=y;function C(e,t,n,i,s){var o;const r=i.load("jupyterlab");const{shell:l}=e;t.widgetAdded.connect(((e,t)=>{const i=t.console;const s=new a.ForeignHandler({sessionContext:i.sessionContext,parent:i});x.foreignHandlerProperty.set(i,s);void n.get("@jupyterlab/console-extension:tracker","showAllKernelActivity").then((({composite:e})=>{const t=e;s.enabled=t}));i.disposed.connect((()=>{s.dispose()}))}));const{commands:d}=e;const c=r.__("Console");const h="console:toggle-show-all-kernel-activity";function u(e){const n=t.currentWidget;const i=e["activate"]!==false;if(i&&n){l.activateById(n.id)}return n}d.addCommand(h,{label:e=>r.__("Show All Kernel Activity"),execute:e=>{const t=u(e);if(!t){return}const n=x.foreignHandlerProperty.get(t.console);if(n){n.enabled=!n.enabled}},isToggled:()=>{var e;return t.currentWidget!==null&&!!((e=x.foreignHandlerProperty.get(t.currentWidget.console))===null||e===void 0?void 0:e.enabled)},isEnabled:()=>t.currentWidget!==null&&t.currentWidget===l.currentWidget});const p=()=>{d.notifyCommandChanged(h)};t.currentChanged.connect(p);(o=l.currentChanged)===null||o===void 0?void 0:o.connect(p);if(s){s.addItem({command:h,category:c,args:{isPalette:true}})}}var x;(function(e){e.foreignHandlerProperty=new b.AttachedProperty({name:"foreignHandler",create:()=>undefined})})(x||(x={}));const S={id:"@jupyterlab/console-extension:cell-executor",description:"Provides the console cell executor.",autoStart:true,provides:a.IConsoleCellExecutor,activate:()=>Object.freeze({runCell:a.runCell})};var k;(function(e){e.autoClosingBrackets="console:toggle-autoclosing-brackets";e.create="console:create";e.clear="console:clear";e.runUnforced="console:run-unforced";e.runForced="console:run-forced";e.linebreak="console:linebreak";e.interrupt="console:interrupt-kernel";e.restart="console:restart-kernel";e.closeAndShutdown="console:close-and-shutdown";e.open="console:open";e.inject="console:inject";e.changeKernel="console:change-kernel";e.getKernel="console:get-kernel";e.interactionMode="console:interaction-mode";e.redo="console:redo";e.replaceSelection="console:replace-selection";e.shutdown="console:shutdown";e.undo="console:undo";e.invokeCompleter="completer:invoke-console";e.selectCompleter="completer:select-console"})(k||(k={}));const j={id:"@jupyterlab/console-extension:tracker",description:"Provides the console widget tracker.",provides:a.IConsoleTracker,requires:[a.ConsolePanel.IContentFactory,o.IEditorServices,a.IConsoleCellExecutor,h.IRenderMimeRegistry,u.ISettingRegistry],optional:[i.ILayoutRestorer,l.IDefaultFileBrowser,c.IMainMenu,s.ICommandPalette,d.ILauncher,i.ILabStatus,s.ISessionContextDialogs,m.IFormRendererRegistry,p.ITranslator,s.ISessionContextDialogs,s.IToolbarWidgetRegistry],activate:P,autoStart:true};const I={id:"@jupyterlab/console-extension:factory",description:"Provides the console widget content factory.",provides:a.ConsolePanel.IContentFactory,requires:[o.IEditorServices],autoStart:true,activate:(e,t)=>{const n=t.factoryService.newInlineEditor;return new a.ConsolePanel.ContentFactory({editorFactory:n})}};const E={id:"@jupyterlab/console-extension:kernel-status",description:"Adds the console to the kernel status indicator model.",autoStart:true,requires:[a.IConsoleTracker,s.IKernelStatusModel],activate:(e,t,n)=>{const i=e=>{let n=null;if(e&&t.has(e)){return e.sessionContext}return n};n.addSessionProvider(i)}};const T={id:"@jupyterlab/console-extension:cursor-position",description:"Adds the console to the code editor cursor position model.",autoStart:true,requires:[a.IConsoleTracker,o.IPositionModel],activate:(e,t,n)=>{let i=null;const s=async e=>{let s=null;if(e!==i){i===null||i===void 0?void 0:i.console.promptCellCreated.disconnect(n.update);i=null;if(e&&t.has(e)){e.console.promptCellCreated.connect(n.update);const t=e.console.promptCell;s=null;if(t){await t.ready;s=t.editor}i=e}}else if(e){const t=e.console.promptCell;s=null;if(t){await t.ready;s=t.editor}}return s};n.addEditorProvider(s)}};const M={id:"@jupyterlab/console-extension:completer",description:"Adds completion to the console.",autoStart:true,requires:[a.IConsoleTracker],optional:[r.ICompletionProviderManager,p.ITranslator,s.ISanitizer],activate:L};const D=[I,j,w,E,T,M,S];const A=D;async function P(e,t,n,i,o,r,l,d,c,h,u,b,y,w,C,x,S){var j;const I=C!==null&&C!==void 0?C:p.nullTranslator;const E=I.load("jupyterlab");const T=e.serviceManager;const{commands:M,shell:D}=e;const A=E.__("Console");const P=y!==null&&y!==void 0?y:new s.SessionContextDialogs({translator:I});const L="@jupyterlab/console-extension:tracker";const R=["top","bottom","left","right"];let N;if(S){const e="ConsolePanel";N=(0,s.createToolbarFactory)(S,r,e,L,I);if(x){S.addFactory(e,"kernelName",(e=>s.Toolbar.createKernelNameItem(e.sessionContext,x,I)))}S.addFactory(e,"kernelStatus",(e=>{const t=e.sessionContext;const n=s.Toolbar.createKernelStatusItem(t);return n}));const t=new _.Menu({commands:M});t.addClass("jp-CodeConsolePromptMenu");R.forEach((e=>{t.addItem({command:`console:prompt-to-${e}`})}));S.addFactory(e,"promptPosition",(e=>{const n=new m.ToolbarButton({tooltip:E.__("Change Console Prompt Position"),icon:m.dotsIcon,onClick:()=>{const e=n.node.getBoundingClientRect().right;const i=n.node.getBoundingClientRect().bottom;t.open(e,i,{horizontalAlignment:"right"})}});return n}))}const O=new s.WidgetTracker({namespace:"console"});if(l){void l.restore(O,{command:k.create,args:e=>{const{path:t,name:n,kernelPreference:i}=e.console.sessionContext;return{path:t,name:n,kernelPreference:{...i}}},name:e=>{var t;return(t=e.console.sessionContext.path)!==null&&t!==void 0?t:f.UUID.uuid4()},when:T.ready})}if(u){void T.ready.then((()=>{let e=null;const t=()=>{if(e){e.dispose();e=null}const t=T.kernelspecs.specs;if(!t){return}e=new v.DisposableSet;for(const n in t.kernelspecs){const i=n===t.default?0:Infinity;const s=t.kernelspecs[n];const o=s.resources["logo-svg"]||s.resources["logo-64x64"];e.add(u.add({command:k.create,args:{isLauncher:true,kernelPreference:{name:n}},category:E.__("Console"),rank:i,kernelIconUrl:o,metadata:{kernel:f.JSONExt.deepCopy(s.metadata||{})}}))}};t();T.kernelspecs.specsChanged.connect(t)}))}async function B(e){var l,d;await T.ready;const c=new a.ConsolePanel({manager:T,contentFactory:t,mimeTypeService:n.mimeTypeService,rendermime:o,sessionDialogs:P,executor:i,translator:I,setBusy:(l=b&&(()=>b.setBusy()))!==null&&l!==void 0?l:undefined,...e});if(N){(0,s.setToolbar)(c,N)}const h=(await r.get("@jupyterlab/console-extension:tracker","interactionMode")).composite;c.console.node.dataset.jpInteractionMode=h;await O.add(c);c.sessionContext.propertyChanged.connect((()=>{void O.save(c)}));if(e.subshell){c.sessionContext.kernelChanged.connect((async()=>{if(!c.sessionContext.isDisposed){c.sessionContext.ready.then((async()=>{if(c.sessionContext.session===null){console.error("Cannot create subshell without session")}else if(c.sessionContext.session.kernel===null){console.error("Cannot create subshell without kernel")}else{const{kernel:e}=c.sessionContext.session;await e.info;const t=await e.requestCreateSubshell({}).done;e.subshellId=t.content.subshell_id}})).catch((e=>{console.error("Failed to initialize SessionContext or create new subshell.",e)}))}}))}D.add(c,"main",{ref:e.ref,mode:e.insertMode,activate:e.activate!==false,type:(d=e.type)!==null&&d!==void 0?d:"Console"});return c}let F;let z;let H;let W;let V={};let U;let q;async function $(e){F=(await r.get(L,"clearCellsOnExecute")).composite;z=(await r.get(L,"clearCodeContentOnExecute")).composite;H=(await r.get(L,"hideCodeInput")).composite;W=(await r.get(L,"interactionMode")).composite;V=(await r.get(L,"promptCellConfig")).composite;U=(await r.get(L,"promptCellPosition")).composite;q=(await r.get(L,"showBanner")).composite;const t=e=>{var t,n;e.console.node.dataset.jpInteractionMode=W;e.console.editorConfig=V;(n=(t=e.console.promptCell)===null||t===void 0?void 0:t.editor)===null||n===void 0?void 0:n.setOptions(V);e.console.setConfig({clearCellsOnExecute:F,clearCodeContentOnExecute:z,hideCodeInput:H,promptCellPosition:U,showBanner:q})};if(e){t(e)}else{O.forEach(t)}}r.pluginChanged.connect(((e,t)=>{if(t===L){void $()}}));await $();if(w){const e=w.getRenderer("@jupyterlab/codemirror-extension:plugin.defaultConfig");if(e){w.addRenderer("@jupyterlab/console-extension:tracker.promptCellConfig",e)}}O.widgetAdded.connect(((e,t)=>{void $(t)}));M.addCommand(k.autoClosingBrackets,{execute:async e=>{var t;V.autoClosingBrackets=!!((t=e["force"])!==null&&t!==void 0?t:!V.autoClosingBrackets);await r.set(L,"promptCellConfig",V)},label:E.__("Auto Close Brackets for Code Console Prompt"),isToggled:()=>V.autoClosingBrackets});function K(){return O.currentWidget!==null&&O.currentWidget===D.currentWidget}M.addCommand(k.open,{label:E.__("Open a console for the provided `path`."),execute:e=>{const t=e["path"];const n=O.find((e=>{var n;return((n=e.console.sessionContext.session)===null||n===void 0?void 0:n.path)===t}));if(n){if(e.activate!==false){D.activateById(n.id)}return n}else{return T.ready.then((()=>{const n=(0,g.find)(T.sessions.running(),(e=>e.path===t));if(n){return B(e)}return Promise.reject(`No running kernel session for path: ${t}`)}))}}});M.addCommand(k.create,{label:e=>{var t,n,i,s;if(e["isPalette"]){return E.__("New Console")}else if(e["isLauncher"]&&e["kernelPreference"]){const o=e["kernelPreference"];return(s=(i=(n=(t=T.kernelspecs)===null||t===void 0?void 0:t.specs)===null||n===void 0?void 0:n.kernelspecs[o.name||""])===null||i===void 0?void 0:i.display_name)!==null&&s!==void 0?s:""}return E.__("Console")},icon:e=>e["isPalette"]?undefined:m.consoleIcon,execute:e=>{var t;const n=(t=e["basePath"]||e["cwd"]||(d===null||d===void 0?void 0:d.model.path))!==null&&t!==void 0?t:"";return B({basePath:n,...e})}});function J(e){var t;const n=e[s.SemanticCommand.WIDGET]?(t=O.find((t=>t.id===e[s.SemanticCommand.WIDGET])))!==null&&t!==void 0?t:null:O.currentWidget;const i=e["activate"]!==false;if(i&&n){D.activateById(n.id)}return n}const G={top:m.dockTopIcon,bottom:m.dockBottomIcon,right:m.dockRightIcon,left:m.dockLeftIcon};R.forEach((e=>{const t=`console:prompt-to-${e}`;M.addCommand(t,{execute:t=>{const n=J(t);if(!n){return}n.console.setConfig({promptCellPosition:e})},isEnabled:K,label:E.__(`Prompt to ${e}`),icon:t=>t["isPalette"]?undefined:G[e]});if(h){h.addItem({command:t,category:A,args:{isPalette:true}})}}));M.addCommand(k.undo,{execute:e=>{var t;const n=J(e);if(!n){return}const i=(t=n.console.promptCell)===null||t===void 0?void 0:t.editor;if(!i){return}i.undo()},isEnabled:e=>{var t,n,i;if(!K()){return false}const s=(i=(n=(t=J(e))===null||t===void 0?void 0:t.console)===null||n===void 0?void 0:n.promptCell)===null||i===void 0?void 0:i.editor;if(!s){return false}return s.model.sharedModel.canUndo()},icon:m.undoIcon.bindprops({stylesheet:"menuItem"}),label:E.__("Undo")});M.addCommand(k.redo,{execute:e=>{var t;const n=J(e);if(!n){return}const i=(t=n.console.promptCell)===null||t===void 0?void 0:t.editor;if(!i){return}i.redo()},isEnabled:e=>{var t,n,i;if(!K()){return false}const s=(i=(n=(t=J(e))===null||t===void 0?void 0:t.console)===null||n===void 0?void 0:n.promptCell)===null||i===void 0?void 0:i.editor;if(!s){return false}return s.model.sharedModel.canRedo()},icon:m.redoIcon.bindprops({stylesheet:"menuItem"}),label:E.__("Redo")});M.addCommand(k.clear,{label:E.__("Clear Console Cells"),icon:e=>e.toolbar?m.clearIcon:undefined,execute:e=>{const t=J(e);if(!t){return}t.console.clear()},isEnabled:K});M.addCommand(k.runUnforced,{label:E.__("Run Cell (unforced)"),icon:e=>e.toolbar?m.runIcon:undefined,execute:e=>{const t=J(e);if(!t){return}return t.console.execute()},isEnabled:K});M.addCommand(k.runForced,{label:E.__("Run Cell (forced)"),icon:e=>e.toolbar?m.runIcon:undefined,execute:e=>{const t=J(e);if(!t){return}return t.console.execute(true)},isEnabled:K});M.addCommand(k.linebreak,{label:E.__("Insert Line Break"),execute:e=>{const t=J(e);if(!t){return}t.console.insertLinebreak()},isEnabled:K});M.addCommand(k.replaceSelection,{label:E.__("Replace Selection in Console"),execute:e=>{const t=J(e);if(!t){return}const n=e["text"]||"";t.console.replaceSelection(n)},isEnabled:K});M.addCommand(k.interrupt,{label:E.__("Interrupt Kernel"),execute:e=>{var t;const n=J(e);if(!n){return}const i=(t=n.console.sessionContext.session)===null||t===void 0?void 0:t.kernel;if(i){return i.interrupt()}},isEnabled:K});M.addCommand(k.restart,{label:E.__("Restart Kernel…"),icon:e=>e.toolbar?m.refreshIcon:undefined,execute:e=>{const t=J(e);if(!t){return}return P.restart(t.console.sessionContext)},isEnabled:K});M.addCommand(k.shutdown,{label:E.__("Shut Down"),execute:e=>{const t=J(e);if(!t){return}return t.console.sessionContext.shutdown()}});M.addCommand(k.closeAndShutdown,{label:E.__("Close and Shut Down…"),execute:e=>{const t=J(e);if(!t){return}return(0,s.showDialog)({title:E.__("Shut down the console?"),body:E.__('Are you sure you want to close "%1"?',t.title.label),buttons:[s.Dialog.cancelButton({ariaLabel:E.__("Cancel console Shut Down")}),s.Dialog.warnButton({ariaLabel:E.__("Confirm console Shut Down")})]}).then((e=>{if(e.button.accept){return M.execute(k.shutdown,{activate:false}).then((()=>{t.dispose();return true}))}else{return false}}))},isEnabled:K});M.addCommand(k.inject,{label:E.__("Inject some code in a console."),execute:e=>{const t=e["path"];O.find((n=>{var i;if(((i=n.console.sessionContext.session)===null||i===void 0?void 0:i.path)===t){if(e["activate"]!==false){D.activateById(n.id)}void n.console.inject(e["code"],e["metadata"]);return true}return false}))},isEnabled:K});M.addCommand(k.changeKernel,{label:E.__("Change Kernel…"),execute:e=>{const t=J(e);if(!t){return}return P.selectKernel(t.console.sessionContext)},isEnabled:K});M.addCommand(k.getKernel,{label:E.__("Get Kernel"),execute:e=>{var t;const n=J({activate:false,...e});if(!n){return}return(t=n.sessionContext.session)===null||t===void 0?void 0:t.kernel},isEnabled:K});const Y=[k.create];const X=()=>{Object.values(k).filter((e=>!Y.includes(e))).forEach((t=>e.commands.notifyCommandChanged(t)))};O.currentChanged.connect(X);(j=D.currentChanged)===null||j===void 0?void 0:j.connect(X);if(h){[k.create,k.linebreak,k.clear,k.runUnforced,k.runForced,k.restart,k.interrupt,k.changeKernel,k.closeAndShutdown].forEach((e=>{h.addItem({command:e,category:A,args:{isPalette:true}})}))}if(c){c.fileMenu.closeAndCleaners.add({id:k.closeAndShutdown,isEnabled:K});c.kernelMenu.kernelUsers.changeKernel.add({id:k.changeKernel,isEnabled:K});c.kernelMenu.kernelUsers.clearWidget.add({id:k.clear,isEnabled:K});c.kernelMenu.kernelUsers.interruptKernel.add({id:k.interrupt,isEnabled:K});c.kernelMenu.kernelUsers.restartKernel.add({id:k.restart,isEnabled:K});c.kernelMenu.kernelUsers.shutdownKernel.add({id:k.shutdown,isEnabled:K});c.runMenu.codeRunners.run.add({id:k.runForced,isEnabled:K});c.editMenu.clearers.clearCurrent.add({id:k.clear,isEnabled:K});c.editMenu.undoers.redo.add({id:k.redo,isEnabled:K});c.editMenu.undoers.undo.add({id:k.undo,isEnabled:K});c.helpMenu.getKernel.add({id:k.getKernel,isEnabled:K})}const Q={notebook:E.__("Execute with Shift+Enter"),terminal:E.__("Execute with Enter")};M.addCommand(k.interactionMode,{label:e=>{var t;return(t=Q[e["interactionMode"]])!==null&&t!==void 0?t:"Set the console interaction mode."},execute:async e=>{const t="keyMap";try{await r.set(L,"interactionMode",e["interactionMode"])}catch(n){console.error(`Failed to set ${L}:${t} - ${n.message}`)}},isToggled:e=>e["interactionMode"]===W});return O}function L(e,t,n,i,o){if(!n){return}const r=(i!==null&&i!==void 0?i:p.nullTranslator).load("jupyterlab");const a=o!==null&&o!==void 0?o:new s.Sanitizer;e.commands.addCommand(k.invokeCompleter,{label:r.__("Display the completion helper."),execute:()=>{const e=t.currentWidget&&t.currentWidget.id;if(e){return n.invoke(e)}}});e.commands.addCommand(k.selectCompleter,{label:r.__("Select the completion suggestion."),execute:()=>{const e=t.currentWidget&&t.currentWidget.id;if(e){return n.select(e)}}});e.commands.addKeyBinding({command:k.selectCompleter,keys:["Enter"],selector:".jp-ConsolePanel .jp-mod-completer-active"});const l=async(e,t)=>{var i,s;const o={editor:(s=(i=t.console.promptCell)===null||i===void 0?void 0:i.editor)!==null&&s!==void 0?s:null,session:t.console.sessionContext.session,widget:t};await n.updateCompleter(o);t.console.promptCellCreated.connect(((e,i)=>{const s={editor:i.editor,session:e.sessionContext.session,widget:t,sanitzer:a};n.updateCompleter(s).catch(console.error)}));t.console.sessionContext.sessionChanged.connect((()=>{var e,i;const s={editor:(i=(e=t.console.promptCell)===null||e===void 0?void 0:e.editor)!==null&&i!==void 0?i:null,session:t.console.sessionContext.session,widget:t,sanitizer:a};n.updateCompleter(s).catch(console.error)}))};t.widgetAdded.connect(l);n.activeProvidersChanged.connect((()=>{t.forEach((e=>{l(undefined,e).catch((e=>console.error(e)))}))}))}},99382:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(17325);var a=n(5893);var l=n(3579);var d=n(36060);var c=n(39063);var h=n(50286);var u=n(75797);var p=n(67996);var m=n(85072);var g=n.n(m);var f=n(97825);var v=n.n(f);var _=n(77659);var b=n.n(_);var y=n(55056);var w=n.n(y);var C=n(10540);var x=n.n(C);var S=n(41113);var k=n.n(S);var j=n(19961);var I={};I.styleTagTransform=k();I.setAttributes=w();I.insert=b().bind(null,"head");I.domAPI=v();I.insertStyleElement=x();var E=g()(j.A,I);const T=j.A&&j.A.locals?j.A.locals:undefined},57958:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CodeConsole:()=>A,ConsoleHistory:()=>l,ConsolePanel:()=>R,ForeignHandler:()=>a,IConsoleCellExecutor:()=>B,IConsoleTracker:()=>O,runCell:()=>s});var i=n(5061);async function s({cell:e,onCellExecuted:t,sessionContext:n}){const s=n=>{if(n&&n.content.status==="ok"){const i=n.content;if(i.payload&&i.payload.length){const t=i.payload.filter((e=>e.source==="set_next_input"))[0];if(t){const n=t.text;e.model.sharedModel.setSource(n)}}t({cell:e,executionDate:new Date,success:true});return true}else if(n&&n.content.status==="error"){const i=n.content.ename;const s=n.content.evalue;t({cell:e,executionDate:new Date,success:false,error:new Error(`KernelReplyNotOK: ${i} ${s}`)});return false}t({cell:e,executionDate:new Date,success:false});return false};const o=n=>{t({cell:e,executionDate:new Date,success:false,error:new Error(n)});return false};return i.CodeCell.execute(e,n).then(s,o)}var o=n(2336);const r="jp-CodeConsole-foreignCell";class a{constructor(e){this._enabled=false;this._isDisposed=false;this.sessionContext=e.sessionContext;this.sessionContext.iopubMessage.connect(this.onIOPubMessage,this);this._parent=e.parent}get enabled(){return this._enabled}set enabled(e){this._enabled=e}get parent(){return this._parent}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;o.Signal.clearData(this)}onIOPubMessage(e,t){var n;if(!this._enabled){return false}const i=(n=this.sessionContext.session)===null||n===void 0?void 0:n.kernel;if(!i){return false}const s=this._parent;const o=t.parent_header.session;if(o===i.clientId){return false}const r=t.header.msg_type;const a=t.parent_header;const l=a.msg_id;let d;switch(r){case"execute_input":{const e=t;d=this._newCell(l);const n=d.model;n.executionCount=e.content.execution_count;n.sharedModel.setSource(e.content.code);n.trusted=true;s.update();return true}case"execute_result":case"display_data":case"stream":case"error":{d=this._parent.getCell(l);if(!d){return false}const e={...t.content,output_type:r};d.model.outputs.add(e);s.update();return true}case"clear_output":{const e=t.content.wait;d=this._parent.getCell(l);if(d){d.model.outputs.clear(e)}return true}default:return false}}_newCell(e){const t=this.parent.createCodeCell();t.addClass(r);this._parent.addCell(t,e);return t}}class l{constructor(e){this._cursor=0;this._hasSession=false;this._history=[];this._placeholder="";this._setByHistory=false;this._isDisposed=false;this._editor=null;this._filtered=[];const{sessionContext:t}=e;if(t){this.sessionContext=t;void this._handleKernel();this.sessionContext.kernelChanged.connect(this._handleKernel,this)}}get editor(){return this._editor}set editor(e){if(this._editor===e){return}const t=this._editor;if(t){t.edgeRequested.disconnect(this.onEdgeRequest,this);t.model.sharedModel.changed.disconnect(this.onTextChange,this)}this._editor=e;if(e){e.edgeRequested.connect(this.onEdgeRequest,this);e.model.sharedModel.changed.connect(this.onTextChange,this)}}get placeholder(){return this._placeholder}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed=true;this._history.length=0;o.Signal.clearData(this)}back(e){if(!this._hasSession){this._hasSession=true;this._placeholder=e;this.setFilter(e);this._cursor=this._filtered.length-1}--this._cursor;this._cursor=Math.max(0,this._cursor);const t=this._filtered[this._cursor];return Promise.resolve(t)}forward(e){if(!this._hasSession){this._hasSession=true;this._placeholder=e;this.setFilter(e);this._cursor=this._filtered.length}++this._cursor;this._cursor=Math.min(this._filtered.length-1,this._cursor);const t=this._filtered[this._cursor];return Promise.resolve(t)}push(e){if(e&&e!==this._history[this._history.length-1]){this._history.push(e)}this.reset()}reset(){this._cursor=this._history.length;this._hasSession=false;this._placeholder=""}onHistory(e){this._history.length=0;let t="";let n="";if(e.content.status==="ok"){for(let i=0;i{if(this.isDisposed||!t){return}if(n.getSource()===t){return}this._setByHistory=true;n.setSource(t);let i=0;i=t.indexOf("\n");if(i<0){i=t.length}e.setCursorPosition({line:0,column:i})}))}else{void this.forward(i).then((t=>{if(this.isDisposed){return}const i=t||this.placeholder;if(n.getSource()===i){return}this._setByHistory=true;n.setSource(i);const s=e.getPositionAt(i.length);if(s){e.setCursorPosition(s)}}))}}async _handleKernel(){var e,t;const n=(t=(e=this.sessionContext)===null||e===void 0?void 0:e.session)===null||t===void 0?void 0:t.kernel;if(!n){this._history.length=0;return}return n.requestHistory(d.initialRequest).then((e=>{this.onHistory(e)}))}setFilter(e=""){this._filtered.length=0;let t="";let n="";for(let i=0;i0){e.get(0).dispose()}}createCodeCell(){const e=this.contentFactory;const t=this._createCodeCellOptions();const n=e.createCodeCell(t);n.readOnly=true;n.model.mimeType=this._mimetype;return n}dispose(){if(this.isDisposed){return}this._msgIdCells=null;this._msgIds=null;this._history.dispose();super.dispose()}async execute(e=false,t=T){var n,i;if(((i=(n=this.sessionContext.session)===null||n===void 0?void 0:n.kernel)===null||i===void 0?void 0:i.status)==="dead"){return}const s=this.promptCell;if(!s){throw new Error("Cannot execute without a prompt cell")}s.model.trusted=true;if(e){this.newPromptCell();await this._execute(s);return}const o=await this._shouldExecute(t);if(this.isDisposed){return}if(o){this.newPromptCell();this.promptCell.editor.focus();await this._execute(s)}else{s.editor.newIndentedLine()}}getCell(e){return this._msgIds.get(e)}inject(e,t={}){const n=this.createCodeCell();n.model.sharedModel.setSource(e);for(const i of Object.keys(t)){n.model.setMetadata(i,t[i])}this.addCell(n);return this._execute(n)}insertLinebreak(){const e=this.promptCell;if(!e){return}e.editor.newIndentedLine()}replaceSelection(e){var t,n;const i=this.promptCell;if(!i){return}(n=(t=i.editor).replaceSelection)===null||n===void 0?void 0:n.call(t,e)}setConfig(e){const{clearCellsOnExecute:t,clearCodeContentOnExecute:n,hideCodeInput:i,promptCellPosition:s,showBanner:o}=e;this._config={clearCellsOnExecute:t!==null&&t!==void 0?t:this._config.clearCellsOnExecute,clearCodeContentOnExecute:n!==null&&n!==void 0?n:this._config.clearCodeContentOnExecute,hideCodeInput:i!==null&&i!==void 0?i:this._config.hideCodeInput,promptCellPosition:s!==null&&s!==void 0?s:this._config.promptCellPosition,showBanner:o!==null&&o!==void 0?o:this._config.showBanner};this._updateLayout()}serialize(){const e=[];for(const t of this._cells){const n=t.model;if((0,i.isCodeCellModel)(n)){e.push(n.toJSON())}}if(this.promptCell){e.push(this.promptCell.model.toJSON())}return e}_evtMouseDown(e){const{button:t,shiftKey:n}=e;if(!(t===0||t===2)||n&&t===2){return}let s=e.target;const o=e=>e.classList.contains(x);let r=i.CellDragUtils.findCell(s,this._cells,o);if(r===-1){s=document.elementFromPoint(e.clientX,e.clientY);r=i.CellDragUtils.findCell(s,this._cells,o)}if(r===-1){return}const a=this._cells.get(r);const l=i.CellDragUtils.detectTargetArea(a,e.target);if(l==="prompt"){this._dragData={pressX:e.clientX,pressY:e.clientY,index:r};this._focusedCell=a;document.addEventListener("mouseup",this,true);document.addEventListener("mousemove",this,true);e.preventDefault()}}_evtMouseMove(e){const t=this._dragData;if(t&&i.CellDragUtils.shouldStartDrag(t.pressX,t.pressY,e.clientX,e.clientY)){void this._startDrag(t.index,e.clientX,e.clientY)}}_startDrag(e,t,n){const s=this._focusedCell.model;const o=[s.toJSON()];const r=i.CellDragUtils.createCellDragImage(this._focusedCell,o);this._drag=new b.Drag({mimeData:new g.MimeData,dragImage:r,proposedAction:"copy",supportedActions:"copy",source:this});this._drag.mimeData.setData(M,o);const a=s.sharedModel.getSource();this._drag.mimeData.setData("text/plain",a);this._focusedCell=null;document.removeEventListener("mousemove",this,true);document.removeEventListener("mouseup",this,true);return this._drag.start(t,n).then((()=>{if(this.isDisposed){return}this._drag=null;this._dragData=null}))}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":this._evtMouseMove(e);break;case"mouseup":this._evtMouseUp(e);break;case"resize":this._splitPanel.fit();break;case"focusin":this._evtFocusIn(e);break;case"focusout":this._evtFocusOut(e);break;default:break}}onAfterAttach(e){const t=this.node;t.addEventListener("keydown",this,true);t.addEventListener("click",this);t.addEventListener("mousedown",this);t.addEventListener("focusin",this);t.addEventListener("focusout",this);if(!this.promptCell){this.newPromptCell()}else{this.promptCell.editor.focus();this.update()}}onBeforeDetach(e){const t=this.node;t.removeEventListener("keydown",this,true);t.removeEventListener("click",this);t.removeEventListener("focusin",this);t.removeEventListener("focusout",this)}onActivateRequest(e){const t=this.promptCell&&this.promptCell.editor;if(t){t.focus()}this.update()}newPromptCell(){var e,t,n,i,s;let r=this.promptCell;const a=this._input;const l=(e=r===null||r===void 0?void 0:r.model.sharedModel.getSource())!==null&&e!==void 0?e:"";const d=(t=r===null||r===void 0?void 0:r.editor)===null||t===void 0?void 0:t.getCursorPosition();if(r){r.readOnly=true;r.removeClass(k);const e=r;requestIdleCallback((()=>{o.Signal.clearData(e.editor)}));(n=r.editor)===null||n===void 0?void 0:n.blur();const t=a.widgets[0];t.parent=null;if(this._config.hideCodeInput){(i=r.inputArea)===null||i===void 0?void 0:i.setHidden(true)}this.addCell(r)}const c=this.contentFactory;const h=this._createCodeCellOptions();r=c.createCodeCell(h);r.model.mimeType=this._mimetype;r.addClass(k);this._input.addWidget(r);this._history.editor=r.editor;if(!this._config.clearCodeContentOnExecute){r.model.sharedModel.setSource(l);if(d){(s=r.editor)===null||s===void 0?void 0:s.setCursorPosition(d)}}this._promptCellCreated.emit(r)}onUpdateRequest(e){P.scrollToBottom(this._content.node)}_evtKeyDown(e){const t=this.promptCell&&this.promptCell.editor;if(!t){return}if(e.keyCode===13&&!t.hasFocus()){e.preventDefault();t.focus()}else if(e.keyCode===27&&t.hasFocus()){e.preventDefault();e.stopPropagation();this.node.focus()}}_evtMouseUp(e){if(this.promptCell&&this.promptCell.node.contains(e.target)){this.promptCell.editor.focus()}}_evtFocusIn(e){this._updateReadWrite()}_evtFocusOut(e){this._updateReadWrite()}async _execute(e){const t=e.model.sharedModel.getSource();this._history.push(t);if(t==="clear"||t==="%clear"){this.clear();return Promise.resolve(void 0)}e.model.contentChanged.connect(this.update,this);const n={cell:e,sessionContext:this.sessionContext,onCellExecuted:e=>{this._executed.emit(e.executionDate);if(e.error){for(const e of this._cells){if(e.model.executionCount===null){e.model.executionState="idle"}}}}};try{await this._executor.runCell(n)}finally{if(!this.isDisposed){e.model.contentChanged.disconnect(this.update,this);this.update()}}}_handleInfo(e){if(e.status!=="ok"){if(this._banner){this._banner.model.sharedModel.setSource("Error in getting kernel banner")}return}if(this._banner){this._banner.model.sharedModel.setSource(e.banner)}const t=e.language_info;this._mimetype=this._mimeTypeService.getMimeTypeByLanguage(t);if(this.promptCell){this.promptCell.model.mimeType=this._mimetype}}_createCodeCellOptions(){const e=this.contentFactory;const t=this.modelFactory;const n=t.createCodeCell({});const i=this.rendermime;const s=this.editorConfig;return{model:n,rendermime:i,contentFactory:e,editorConfig:s,placeholder:false,translator:this._translator}}_onCellDisposed(e,t){if(!this.isDisposed){this._cells.removeValue(e);const t=this._msgIdCells.get(e);if(t){this._msgIdCells.delete(e);this._msgIds.delete(t)}}}_shouldExecute(e){const t=this.promptCell;if(!t){return Promise.resolve(false)}const n=t.model;const i=n.sharedModel.getSource();return new Promise(((t,n)=>{var s;const o=setTimeout((()=>{t(true)}),e);const r=(s=this.sessionContext.session)===null||s===void 0?void 0:s.kernel;if(!r){t(false);return}r.requestIsComplete({code:i}).then((e=>{clearTimeout(o);if(this.isDisposed){t(false)}if(e.content.status!=="incomplete"){t(true);return}t(false)})).catch((()=>{t(true)}))}))}async _onKernelChanged(){var e;this.clear();if(this._banner){this._banner.dispose();this._banner=null}if(this._config.showBanner){this.addBanner()}if((e=this.sessionContext.session)===null||e===void 0?void 0:e.kernel){this._handleInfo(await this.sessionContext.session.kernel.info)}}async _onKernelStatusChanged(){var e;const t=(e=this.sessionContext.session)===null||e===void 0?void 0:e.kernel;if((t===null||t===void 0?void 0:t.status)==="restarting"){if(this._config.showBanner){this.addBanner()}this._handleInfo(await(t===null||t===void 0?void 0:t.info))}}_updateReadWrite(){const e=c.DOMUtils.hasActiveEditableElement(this.node);this.node.classList.toggle(E,e)}_updateLayout(){const{promptCellPosition:e="bottom"}=this._config;this._splitPanel.orientation=["left","right"].includes(e)?"horizontal":"vertical";f.SplitPanel.setStretch(this._content,1);f.SplitPanel.setStretch(this._input,1);if(e==="bottom"||e==="right"){this._splitPanel.insertWidget(0,this._content);this._splitPanel.insertWidget(1,this._input)}else{this._splitPanel.insertWidget(0,this._input);this._splitPanel.insertWidget(1,this._content)}let t=[1,1];if(e==="top"){t=[1,100]}else if(e==="bottom"){t=[100,1]}this._splitPanel.setRelativeSizes(t)}}(function(e){e.defaultEditorConfig={codeFolding:false,lineNumbers:false};class t extends i.Cell.ContentFactory{createCodeCell(e){return new i.CodeCell(e).initializeState()}createRawCell(e){return new i.RawCell(e).initializeState()}}e.ContentFactory=t;class n{constructor(e={}){this.codeCellContentFactory=e.codeCellContentFactory||i.CodeCellModel.defaultContentFactory}createCodeCell(e={}){if(!e.contentFactory){e.contentFactory=this.codeCellContentFactory}return new i.CodeCellModel(e)}createRawCell(e){return new i.RawCellModel(e)}}e.ModelFactory=n;e.defaultModelFactory=new n({})})(A||(A={}));var P;(function(e){function t(e){e.scrollTop=e.scrollHeight-e.clientHeight}e.scrollToBottom=t})(P||(P={}));const L="jp-ConsolePanel";class R extends c.MainAreaWidget{constructor(e){super({content:new f.Panel});this._executed=null;this._connected=null;this.addClass(L);let{executor:t,rendermime:n,mimeTypeService:i,path:s,basePath:o,name:r,manager:a,modelFactory:l,sessionContext:d,translator:v}=e;this.translator=v!==null&&v!==void 0?v:p.nullTranslator;const _=this.translator.load("jupyterlab");const b=this.contentFactory=e.contentFactory;const y=N.count++;if(!s){s=h.PathExt.join(o||"",`console-${y}-${g.UUID.uuid4()}`)}d=this._sessionContext=d!==null&&d!==void 0?d:new c.SessionContext({kernelManager:a.kernels,sessionManager:a.sessions,specsManager:a.kernelspecs,path:a.contents.localPath(s),name:r||_.__("Console %1",y),type:"console",kernelPreference:e.kernelPreference,setBusy:e.setBusy});const w=new u.RenderMimeRegistry.UrlResolver({path:s,contents:a.contents});n=n.clone({resolver:w});this.console=b.createConsole({executor:t,rendermime:n,sessionContext:d,mimeTypeService:i,contentFactory:b,modelFactory:l,translator:v});this.content.addWidget(this.console);void d.initialize().then((async t=>{var n;if(t){await((n=e.sessionDialogs)!==null&&n!==void 0?n:new c.SessionContextDialogs({translator:v})).selectKernel(d)}this._connected=new Date;this._updateTitlePanel()}));this.console.executed.connect(this._onExecuted,this);this._updateTitlePanel();d.kernelChanged.connect(this._updateTitlePanel,this);d.propertyChanged.connect(this._updateTitlePanel,this);this.title.icon=m.consoleIcon;this.title.closable=true;this.id=`console-${y}`}get sessionContext(){return this._sessionContext}dispose(){this.sessionContext.dispose();this.console.dispose();super.dispose()}onActivateRequest(e){const t=this.console.promptCell;if(t){t.editor.focus()}}onCloseRequest(e){super.onCloseRequest(e);this.dispose()}_onExecuted(e,t){this._executed=t;this._updateTitlePanel()}_updateTitlePanel(){N.updateTitle(this,this._connected,this._executed,this.translator)}}(function(e){class t extends A.ContentFactory{createConsole(e){return new A(e)}}e.ContentFactory=t;e.IContentFactory=new g.Token("@jupyterlab/console:IContentFactory","A factory object that creates new code consoles. Use this if you want to create and host code consoles in your own UI elements.")})(R||(R={}));var N;(function(e){e.count=1;function t(e,t,n,i){i=i||p.nullTranslator;const s=i.load("jupyterlab");const o=e.console.sessionContext.session;if(o){let i=s.__("Name: %1\n",o.name)+s.__("Directory: %1\n",h.PathExt.dirname(o.path))+s.__("Kernel: %1",e.console.sessionContext.kernelDisplayName);if(t){i+=s.__("\nConnected: %1",h.Time.format(t.toISOString()))}if(n){i+=s.__("\nLast Execution: %1")}e.title.label=o.name;e.title.caption=i}else{e.title.label=s.__("Console");e.title.caption=""}}e.updateTitle=t})(N||(N={}));const O=new g.Token("@jupyterlab/console:IConsoleTracker",`A widget tracker for code consoles.\n Use this if you want to be able to iterate over and interact with code consoles\n created by the application.`);const B=new g.Token("@jupyterlab/console:IConsoleCellExecutor",`The console cell executor`)},50286:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(5893);var a=n(38457);var l=n(17325);var d=n(53377);var c=n(85072);var h=n.n(c);var u=n(97825);var p=n.n(u);var m=n(77659);var g=n.n(m);var f=n(55056);var v=n.n(f);var _=n(10540);var b=n.n(_);var y=n(41113);var w=n.n(y);var C=n(16513);var x={};x.styleTagTransform=w();x.setAttributes=v();x.insert=g().bind(null,"head");x.domAPI=p();x.insertStyleElement=b();var S=h()(C.A,x);const k=C.A&&C.A.locals?C.A.locals:undefined},75013:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ActivityMonitor=void 0;const i=n(2336);class s{constructor(e){this._timer=-1;this._timeout=-1;this._isDisposed=false;this._activityStopped=new i.Signal(this);e.signal.connect(this._onSignalFired,this);this._timeout=e.timeout||1e3}get activityStopped(){return this._activityStopped}get timeout(){return this._timeout}set timeout(e){this._timeout=e}get isDisposed(){return this._isDisposed}dispose(){if(this._isDisposed){return}this._isDisposed=true;i.Signal.clearData(this)}_onSignalFired(e,t){clearTimeout(this._timer);this._sender=e;this._args=t;this._timer=setTimeout((()=>{this._activityStopped.emit({sender:this._sender,args:this._args})}),this._timeout)}}t.ActivityMonitor=s},26376:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){if(i===undefined)i=n;var s=Object.getOwnPropertyDescriptor(t,n);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[n]}}}Object.defineProperty(e,i,s)}:function(e,t,n,i){if(i===undefined)i=n;e[i]=t[n]});var s=this&&this.__exportStar||function(e,t){for(var n in e)if(n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n))i(t,e,n)};Object.defineProperty(t,"__esModule",{value:true});s(n(75013),t);s(n(23106),t);s(n(24477),t);s(n(87484),t);s(n(92279),t);s(n(67169),t);s(n(97058),t);s(n(80121),t);s(n(9659),t);s(n(67881),t)},23106:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true})},24477:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.LruCache=void 0;const n=128;class i{constructor(e={}){this._map=new Map;this._maxSize=(e===null||e===void 0?void 0:e.maxSize)||n}get size(){return this._map.size}clear(){this._map.clear()}get(e){const t=this._map.get(e)||null;if(t!=null){this._map.delete(e);this._map.set(e,t)}return t}set(e,t){if(this._map.size>=this._maxSize){this._map.delete(this._map.keys().next().value)}this._map.set(e,t)}}t.LruCache=i},87484:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MarkdownCodeBlocks=void 0;var n;(function(e){e.CODE_BLOCK_MARKER="```";const t=[".markdown",".mdown",".mkdn",".md",".mkd",".mdwn",".mdtxt",".mdtext",".text",".txt",".Rmd"];class n{constructor(e){this.startLine=e;this.code="";this.endLine=-1}}e.MarkdownCodeBlock=n;function i(e){return t.indexOf(e)>-1}e.isMarkdown=i;function s(t){if(!t||t===""){return[]}const i=t.split("\n");const s=[];let o=null;for(let r=0;re===t||i&&e===i))}e.isDeferred=n;function i(t){const n=t.indexOf(":");let i="";if(n!==-1){i=t.slice(0,n)}return e.disabled.some((e=>e===t||i&&e===i))}e.isDisabled=i})(Extension=PageConfig.Extension||(PageConfig.Extension={}))})(PageConfig||(exports.PageConfig=PageConfig={}))},67169:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.PathExt=void 0;const i=n(57975);var s;(function(e){function t(...e){const t=i.posix.join(...e);return t==="."?"":h(t)}e.join=t;function n(...e){const t=i.posix.join(...e);return t==="."?"":t}e.joinWithLeadingSlash=n;function s(e,t){return i.posix.basename(e,t)}e.basename=s;function o(e){const t=h(i.posix.dirname(e));return t==="."?"":t}e.dirname=o;function r(e){return i.posix.extname(e)}e.extname=r;function a(e){if(e===""){return""}return h(i.posix.normalize(e))}e.normalize=a;function l(...e){return h(i.posix.resolve(...e))}e.resolve=l;function d(e,t){return h(i.posix.relative(e,t))}e.relative=d;function c(e){if(e.length>0&&e.indexOf(".")!==0){e=`.${e}`}return e}e.normalizeExtension=c;function h(e){if(e.indexOf("/")===0){e=e.slice(1)}return e}e.removeSlash=h})(s||(t.PathExt=s={}))},97058:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.signalToPromise=s;const i=n(5592);function s(e,t){const n=new i.PromiseDelegate;function s(){e.disconnect(o)}function o(e,t){s();n.resolve([e,t])}e.connect(o);if((t!==null&&t!==void 0?t:0)>0){setTimeout((()=>{s();n.reject(`Signal not emitted within ${t} ms.`)}),t)}return n.promise}},80121:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Text=void 0;var n;(function(e){const t="𝐚".length>1;function n(e,n){if(t){return e}let i=e;for(let t=0;t+1=55296&&e<=56319){const e=n.charCodeAt(t+1);if(e>=56320&&e<=57343){i--;t++}}}return i}e.jsIndexToCharIndex=n;function i(e,n){if(t){return e}let i=e;for(let t=0;t+1=55296&&e<=56319){const e=n.charCodeAt(t+1);if(e>=56320&&e<=57343){i++;t++}}}return i}e.charIndexToJsIndex=i;function s(e,t=false){return e.replace(/^(\w)|[\s-_:]+(\w)/g,(function(e,n,i){if(i){return i.toUpperCase()}else{return t?n.toUpperCase():n.toLowerCase()}}))}e.camelCase=s;function o(e){return(e||"").toLowerCase().split(" ").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join(" ")}e.titleCase=o})(n||(t.Text=n={}))},9659:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Time=void 0;const n=[{name:"years",milliseconds:365*24*60*60*1e3},{name:"months",milliseconds:30*24*60*60*1e3},{name:"days",milliseconds:24*60*60*1e3},{name:"hours",milliseconds:60*60*1e3},{name:"minutes",milliseconds:60*1e3},{name:"seconds",milliseconds:1e3}];var i;(function(e){function t(e,t="long"){const i=document.documentElement.lang||"en";const s=new Intl.RelativeTimeFormat(i,{numeric:"auto",style:t});const o=new Date(e).getTime()-Date.now();for(let r of n){const e=Math.ceil(o/r.milliseconds);if(e===0){continue}return s.format(e,r.name)}return s.format(0,"seconds")}e.formatHuman=t;function i(e){const t=document.documentElement.lang||"en";const n=new Intl.DateTimeFormat(t,{dateStyle:"short",timeStyle:"short"});return n.format(new Date(e))}e.format=i})(i||(t.Time=i={}))},67881:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.URLExt=void 0;const s=n(57975);const o=i(n(61160));var r;(function(e){function t(e){if(typeof document!=="undefined"&&document){const t=document.createElement("a");t.href=e;return t}return(0,o.default)(e)}e.parse=t;function n(e){return(0,o.default)(e).hostname}e.getHostName=n;function i(e){return e&&t(e).toString()}e.normalize=i;function r(...e){let t=(0,o.default)(e[0],{});const n=t.protocol===""&&t.slashes;if(n){t=(0,o.default)(e[0],"https:"+e[0])}const i=`${n?"":t.protocol}${t.slashes?"//":""}${t.auth}${t.auth?"@":""}${t.host}`;const r=s.posix.join(`${!!i&&t.pathname[0]!=="/"?"/":""}${t.pathname}`,...e.slice(1));return`${i}${r==="."?"":r}`}e.join=r;function a(e){return r(...e.split("/").map(encodeURIComponent))}e.encodeParts=a;function l(e){const t=Object.keys(e).filter((e=>e.length>0));if(!t.length){return""}return"?"+t.map((t=>{const n=encodeURIComponent(String(e[t]));return t+(n?"="+n:"")})).join("&")}e.objectToQueryString=l;function d(e){return e.replace(/^\?/,"").split("&").reduce(((e,t)=>{const[n,i]=t.split("=");if(n.length>0){e[n]=decodeURIComponent(i||"")}return e}),{})}e.queryStringToObject=d;function c(e,n=false){const{protocol:i}=t(e);return(!i||e.toLowerCase().indexOf(i)!==0)&&(n?e.indexOf("//")!==0:e.indexOf("/")!==0)}e.isLocal=c})(r||(t.URLExt=r={}))},32254:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>k});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(92500);var l=n(69105);var d=n(22441);var c=n.n(d);var h=n(23899);var u=n.n(h);var p=n(84739);var m=n.n(p);var g=n(30619);var f=n.n(g);const v="CSVTable";const _="TSVTable";var b;(function(e){e.CSVGoToLine="csv:go-to-line";e.TSVGoToLine="tsv:go-to-line"})(b||(b={}));const y={activate:C,id:"@jupyterlab/csvviewer-extension:csv",description:"Adds viewer for CSV file types",requires:[g.ITranslator],optional:[i.ILayoutRestorer,o.IThemeManager,h.IMainMenu,d.ISearchProviderRegistry,p.ISettingRegistry,o.IToolbarWidgetRegistry],autoStart:true};const w={activate:x,id:"@jupyterlab/csvviewer-extension:tsv",description:"Adds viewer for TSV file types.",requires:[g.ITranslator],optional:[i.ILayoutRestorer,o.IThemeManager,h.IMainMenu,d.ISearchProviderRegistry,p.ISettingRegistry,o.IToolbarWidgetRegistry],autoStart:true};function C(e,t,i,s,r,d,c,h){var u;const{commands:p,shell:m}=e;let g;if(h){h.addFactory(v,"delimiter",(e=>new l.G({widget:e.content,translator:t})));if(c){g=(0,o.createToolbarFactory)(h,c,v,y.id,t)}}const f=t.load("jupyterlab");const _=new a.Pb({name:v,label:f.__("CSV Viewer"),fileTypes:["csv"],defaultFor:["csv"],readOnly:true,toolbarFactory:g,translator:t});const w=new o.WidgetTracker({namespace:"csvviewer"});let C=j.LIGHT_STYLE;let x=j.LIGHT_TEXT_CONFIG;if(i){void i.restore(w,{command:"docmanager:open",args:e=>({path:e.context.path,factory:v}),name:e=>e.context.path})}e.docRegistry.addWidgetFactory(_);const S=e.docRegistry.getFileType("csv");let k=false;_.widgetCreated.connect((async(e,t)=>{void w.add(t);t.context.pathChanged.connect((()=>{void w.save(t)}));if(S){t.title.icon=S.icon;t.title.iconClass=S.iconClass;t.title.iconLabel=S.iconLabel}if(d&&!k){const{CSVSearchProvider:e}=await Promise.all([n.e(4470),n.e(9059)]).then(n.bind(n,54041));d.add("csv",e);k=true}await t.content.ready;t.content.style=C;t.content.rendererConfig=x;I()}));const I=()=>{const e=s&&s.theme?s.isLight(s.theme):true;C=e?j.LIGHT_STYLE:j.DARK_STYLE;x=e?j.LIGHT_TEXT_CONFIG:j.DARK_TEXT_CONFIG;w.forEach((async e=>{await e.content.ready;e.content.style=C;e.content.rendererConfig=x}))};if(s){s.themeChanged.connect(I)}const E=()=>w.currentWidget!==null&&w.currentWidget===m.currentWidget;p.addCommand(b.CSVGoToLine,{label:f.__("Go to Line"),execute:async()=>{const e=w.currentWidget;if(e===null){return}const t=await o.InputDialog.getNumber({title:f.__("Go to Line"),value:0});if(t.button.accept&&t.value!==null){e.content.goToLine(t.value)}},isEnabled:E});if(r){r.editMenu.goToLiners.add({id:b.CSVGoToLine,isEnabled:E})}const T=()=>{p.notifyCommandChanged(b.CSVGoToLine)};w.currentChanged.connect(T);(u=m.currentChanged)===null||u===void 0?void 0:u.connect(T)}function x(e,t,i,s,r,d,c,h){const{commands:u,shell:p}=e;let m;if(h){h.addFactory(_,"delimiter",(e=>new l.G({widget:e.content,translator:t})));if(c){m=(0,o.createToolbarFactory)(h,c,_,w.id,t)}}const g=t.load("jupyterlab");const f=new a.og({name:_,label:g.__("TSV Viewer"),fileTypes:["tsv"],defaultFor:["tsv"],readOnly:true,toolbarFactory:m,translator:t});const v=new o.WidgetTracker({namespace:"tsvviewer"});let y=j.LIGHT_STYLE;let C=j.LIGHT_TEXT_CONFIG;if(i){void i.restore(v,{command:"docmanager:open",args:e=>({path:e.context.path,factory:_}),name:e=>e.context.path})}e.docRegistry.addWidgetFactory(f);const x=e.docRegistry.getFileType("tsv");let S=false;f.widgetCreated.connect((async(e,t)=>{void v.add(t);t.context.pathChanged.connect((()=>{void v.save(t)}));if(x){t.title.icon=x.icon;t.title.iconClass=x.iconClass;t.title.iconLabel=x.iconLabel}if(d&&!S){const{CSVSearchProvider:e}=await Promise.all([n.e(4470),n.e(9059)]).then(n.bind(n,54041));d.add("tsv",e);S=true}await t.content.ready;t.content.style=y;t.content.rendererConfig=C}));const k=()=>{const e=s&&s.theme?s.isLight(s.theme):true;y=e?j.LIGHT_STYLE:j.DARK_STYLE;C=e?j.LIGHT_TEXT_CONFIG:j.DARK_TEXT_CONFIG;v.forEach((async e=>{await e.content.ready;e.content.style=y;e.content.rendererConfig=C}))};if(s){s.themeChanged.connect(k)}const I=()=>v.currentWidget!==null&&v.currentWidget===p.currentWidget;u.addCommand(b.TSVGoToLine,{label:g.__("Go to Line"),execute:async()=>{const e=v.currentWidget;if(e===null){return}const t=await o.InputDialog.getNumber({title:g.__("Go to Line"),value:0});if(t.button.accept&&t.value!==null){e.content.goToLine(t.value)}},isEnabled:I});if(r){r.editMenu.goToLiners.add({id:b.TSVGoToLine,isEnabled:I})}v.currentChanged.connect((()=>{u.notifyCommandChanged(b.TSVGoToLine)}))}const S=[y,w];const k=S;var j;(function(e){e.LIGHT_STYLE={voidColor:"#F3F3F3",backgroundColor:"white",headerBackgroundColor:"#EEEEEE",gridLineColor:"rgba(20, 20, 20, 0.15)",headerGridLineColor:"rgba(20, 20, 20, 0.25)",rowBackgroundColor:e=>e%2===0?"#F5F5F5":"white"};e.DARK_STYLE={voidColor:"black",backgroundColor:"#111111",headerBackgroundColor:"#424242",gridLineColor:"rgba(235, 235, 235, 0.15)",headerGridLineColor:"rgba(235, 235, 235, 0.25)",rowBackgroundColor:e=>e%2===0?"#212121":"#111111"};e.LIGHT_TEXT_CONFIG={textColor:"#111111",matchBackgroundColor:"#FFFFE0",currentMatchBackgroundColor:"#FFFF00",horizontalAlignment:"right"};e.DARK_TEXT_CONFIG={textColor:"#F5F5F5",matchBackgroundColor:"#838423",currentMatchBackgroundColor:"#A3807A",horizontalAlignment:"right"}})(j||(j={}))},54041:(e,t,n)=>{"use strict";n.d(t,{CSVSearchProvider:()=>d});var i=n(79059);var s=n.n(i);var o=n(93037);var r=n.n(o);var a=n(22441);var l=n.n(a);class d extends a.SearchProvider{constructor(){super(...arguments);this.isReadOnly=true}static createNew(e,t){return new d(e)}static isApplicable(e){return e instanceof o.DocumentWidget&&e.content instanceof i.CSVViewer}clearHighlight(){return Promise.resolve()}highlightNext(e){this.widget.content.searchService.find(this._query);return Promise.resolve(undefined)}highlightPrevious(e){this.widget.content.searchService.find(this._query,true);return Promise.resolve(undefined)}replaceCurrentMatch(e,t){return Promise.resolve(false)}replaceAllMatches(e){return Promise.resolve(false)}startQuery(e){this._query=e;this.widget.content.searchService.find(e);return Promise.resolve()}endQuery(){this.widget.content.searchService.clear();return Promise.resolve()}}},36672:(e,t,n)=>{"use strict";var i=n(10395);var s=n(97913);var o=n(79010);var r=n(3579);var a=n(40662);var l=n(85072);var d=n.n(l);var c=n(97825);var h=n.n(c);var u=n(77659);var p=n.n(u);var m=n(55056);var g=n.n(m);var f=n(10540);var v=n.n(f);var _=n(41113);var b=n.n(_);var y=n(40538);var w={};w.styleTagTransform=b();w.setAttributes=g();w.insert=p().bind(null,"head");w.domAPI=h();w.insertStyleElement=v();var C=d()(y.A,w);const x=y.A&&y.A.locals?y.A.locals:undefined;var S=n(19562);var k=n(67996)},77678:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CSVDelimiter:()=>o.G,CSVDocumentWidget:()=>r.Am,CSVViewer:()=>r.t2,CSVViewerFactory:()=>r.Pb,DSVModel:()=>i.DSVModel,GridSearchService:()=>r.Mv,TSVViewerFactory:()=>r.og,TextRenderConfig:()=>r.Gg,parseDSV:()=>s.h,parseDSVNoQuotes:()=>s.l});var i=n(77515);var s=n(69181);var o=n(69105);var r=n(92500)},77515:(e,t,n)=>{"use strict";n.r(t);n.d(t,{DSVModel:()=>d});var i=n(5592);var s=n.n(i);var o=n(28426);var r=n.n(o);var a=n(69181);const l={quotes:a.h,noquotes:a.l};class d extends o.DataModel{constructor(e){super();this._rowCount=0;this._header=[];this._columnOffsets=new Uint32Array(0);this._columnOffsetsStartingRow=0;this._maxCacheGet=1e3;this._rowOffsets=new Uint32Array(0);this._delayedParse=null;this._startedParsing=false;this._doneParsing=false;this._isDisposed=false;this._ready=new i.PromiseDelegate;let{data:t,delimiter:n=",",rowDelimiter:s=undefined,quote:o='"',quoteParser:r=undefined,header:a=true,initialRows:l=500}=e;this._rawData=t;this._delimiter=n;this._quote=o;this._quoteEscaped=new RegExp(o+o,"g");this._initialRows=l;if(s===undefined){const e=t.slice(0,5e3).indexOf("\r");if(e===-1){s="\n"}else if(t[e+1]==="\n"){s="\r\n"}else{s="\r"}}this._rowDelimiter=s;if(r===undefined){r=t.indexOf(o)>=0}this._parser=r?"quotes":"noquotes";this.parseAsync();if(a===true&&this._columnCount>0){const e=[];for(let t=0;t{}));this._ready.reject(undefined)}if(this._delayedParse!==null){window.clearTimeout(this._delayedParse)}}getOffsetIndex(e,t){const n=this._columnCount;let i=(e-this._columnOffsetsStartingRow)*n;if(i<0||i>this._columnOffsets.length){this._columnOffsets.fill(4294967295);this._columnOffsetsStartingRow=e;i=0}if(this._columnOffsets[i]===4294967295){let t=1;while(t<=this._maxCacheGet&&this._columnOffsets[i+t*n]===16777215){t++}const{offsets:s}=l[this._parser]({data:this._rawData,delimiter:this._delimiter,rowDelimiter:this._rowDelimiter,quote:this._quote,columnOffsets:true,maxRows:t,ncols:n,startIndex:this._rowOffsets[e]});for(let e=0;e{try{this._computeRowOffsets(e)}catch(t){if(this._parser==="quotes"){console.warn(t);this._parser="noquotes";this._resetParser();this._computeRowOffsets(e)}else{throw t}}return this._doneParsing};this._resetParser();const s=i(e);if(s){return}const o=()=>{const s=i(e+t);e+=t;if(t<1e6){t*=2}if(s){this._delayedParse=null}else{this._delayedParse=window.setTimeout(o,n)}};this._delayedParse=window.setTimeout(o,n)}_computeRowOffsets(e=4294967295){var t;if(this._rowCount>=e||this._doneParsing===true){return}if(this._columnCount===undefined){this._columnCount=l[this._parser]({data:this._rawData,delimiter:this._delimiter,rowDelimiter:this._rowDelimiter,quote:this._quote,columnOffsets:true,maxRows:1}).ncols}const n=this._rowCount>0?1:0;const{nrows:i,offsets:s}=l[this._parser]({data:this._rawData,startIndex:(t=this._rowOffsets[this._rowCount-n])!==null&&t!==void 0?t:0,delimiter:this._delimiter,rowDelimiter:this._rowDelimiter,quote:this._quote,columnOffsets:false,maxRows:e-this._rowCount+n});if(this._startedParsing&&i<=n){this._doneParsing=true;this._ready.resolve(undefined);return}this._startedParsing=true;const o=this._rowCount;const r=Math.min(i,n);this._rowCount=o+i-r;if(this._rowCounto){const e=this._rowOffsets;this._rowOffsets=new Uint32Array(this._rowCount);this._rowOffsets.set(e);this._rowOffsets.set(s,o-r)}const a=Math.floor(33554432/this._columnCount);if(o<=a){if(this._rowCount<=a){const e=this._columnOffsets;this._columnOffsets=new Uint32Array(this._rowCount*this._columnCount);this._columnOffsets.set(e);this._columnOffsets.fill(4294967295,e.length)}else{const e=this._columnOffsets;this._columnOffsets=new Uint32Array(Math.min(this._maxCacheGet,a)*this._columnCount);this._columnOffsets.set(e.subarray(0,this._columnOffsets.length));this._columnOffsets.fill(4294967295,e.length);this._columnOffsetsStartingRow=0}}let d=o;if(this._header.length>0){d-=1}this.emitChanged({type:"rows-inserted",region:"body",index:d,span:this._rowCount-o})}_getField(e,t){let n;let i;const s=this.getOffsetIndex(e,t);let o=0;let r=0;if(t===this._columnCount-1){if(e{}));this._ready.reject(undefined)}this._doneParsing=false;this._ready=new i.PromiseDelegate;if(this._delayedParse!==null){window.clearTimeout(this._delayedParse);this._delayedParse=null}this.emitChanged({type:"model-reset"})}}},69181:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,l:()=>r});var i;(function(e){e[e["QUOTED_FIELD"]=0]="QUOTED_FIELD";e[e["QUOTED_FIELD_QUOTE"]=1]="QUOTED_FIELD_QUOTE";e[e["UNQUOTED_FIELD"]=2]="UNQUOTED_FIELD";e[e["NEW_FIELD"]=3]="NEW_FIELD";e[e["NEW_ROW"]=4]="NEW_ROW"})(i||(i={}));var s;(function(e){e[e["CR"]=0]="CR";e[e["CRLF"]=1]="CRLF";e[e["LF"]=2]="LF"})(s||(s={}));function o(e){const{data:t,columnOffsets:n,delimiter:o=",",startIndex:r=0,maxRows:a=4294967295,rowDelimiter:l="\r\n",quote:d='"'}=e;let c=e.ncols;let h=0;const u=[];const p=o.charCodeAt(0);const m=d.charCodeAt(0);const g=10;const f=13;const v=t.length;const{QUOTED_FIELD:_,QUOTED_FIELD_QUOTE:b,UNQUOTED_FIELD:y,NEW_FIELD:w,NEW_ROW:C}=i;const{CR:x,LF:S,CRLF:k}=s;const[j,I]=l==="\r\n"?[k,2]:l==="\r"?[x,1]:[S,1];let E=C;let T=r;let M=0;let D;while(Tc){u.length=u.length-(M-c)}}if(h===a){return{nrows:h,ncols:n?c:0,offsets:u}}break;case w:if(n===true){u.push(T)}M++;break;default:break}}if(E!==C){h++;if(n===true){if(c===undefined){c=M}if(Mc){u.length=u.length-(M-c)}}}return{nrows:h,ncols:n?c!==null&&c!==void 0?c:0:0,offsets:u}}function r(e){const{data:t,columnOffsets:n,delimiter:i=",",rowDelimiter:s="\r\n",startIndex:o=0,maxRows:r=4294967295}=e;let a=e.ncols;const l=[];let d=0;const c=s.length;let h=o;const u=t.length;let p;let m;let g;let f;let v;p=o;while(p!==-1&&d{"use strict";n.d(t,{G:()=>u});var i=n(30619);var s=n.n(i);var o=n(26331);var r=n.n(o);var a=n(1143);var l=n.n(a);const d="jp-CSVDelimiter";const c="jp-CSVDelimiter-label";const h="jp-CSVDelimiter-dropdown";class u extends a.Widget{constructor(e){super({node:p.createNode(e.widget.delimiter,e.translator)});this._widget=e.widget;this.addClass(d)}get selectNode(){return this.node.getElementsByTagName("select")[0]}handleEvent(e){switch(e.type){case"change":this._widget.delimiter=this.selectNode.value;break;default:break}}onAfterAttach(e){this.selectNode.addEventListener("change",this)}onBeforeDetach(e){this.selectNode.removeEventListener("change",this)}}var p;(function(e){function t(e,t){t=t||i.nullTranslator;const n=t===null||t===void 0?void 0:t.load("jupyterlab");const s=[[",",","],[";",";"],["\t",n.__("tab")],["|",n.__("pipe")],["#",n.__("hash")]];const r=document.createElement("div");const a=document.createElement("span");const l=document.createElement("select");a.textContent=n.__("Delimiter: ");a.className=c;for(const[i,o]of s){const t=document.createElement("option");t.value=i;t.textContent=o;if(i===e){t.selected=true}l.appendChild(t)}r.appendChild(a);const d=o.Styling.wrapSelect(l);d.classList.add(h);r.appendChild(d);return r}e.createNode=t})(p||(p={}))},92500:(e,t,n)=>{"use strict";n.d(t,{Am:()=>y,Gg:()=>v,Mv:()=>_,Pb:()=>w,og:()=>C,t2:()=>b});var i=n(30397);var s=n.n(i);var o=n(93037);var r=n.n(o);var a=n(5592);var l=n.n(a);var d=n(2336);var c=n.n(d);var h=n(1143);var u=n.n(h);var p=n(69105);const m="jp-CSVViewer";const g="jp-CSVViewer-grid";const f=1e3;class v{}class _{constructor(e){this._looping=true;this._changed=new d.Signal(this);this._grid=e;this._query=null;this._row=0;this._column=-1}get changed(){return this._changed}cellBackgroundColorRendererFunc(e){return({value:t,row:n,column:i})=>{if(this._query){if(t.match(this._query)){if(this._row===n&&this._column===i){return e.currentMatchBackgroundColor}return e.matchBackgroundColor}}return""}}clear(){this._query=null;this._row=0;this._column=-1;this._changed.emit(undefined)}find(e,t=false){const n=this._grid.dataModel;const i=n.rowCount("body");const s=n.columnCount("body");if(this._query!==e){this._row=0;this._column=-1}this._query=e;const o=this._grid.scrollY/this._grid.defaultSizes.rowHeight;const r=(this._grid.scrollY+this._grid.pageHeight)/this._grid.defaultSizes.rowHeight;const a=this._grid.scrollX/this._grid.defaultSizes.columnHeaderHeight;const l=(this._grid.scrollX+this._grid.pageWidth)/this._grid.defaultSizes.columnHeaderHeight;const d=(e,t)=>e>=o&&e<=r&&t>=a&&t<=l;const c=t?-1:1;this._column+=c;for(let h=this._row;t?h>=0:h=0:i=n-1){this._row=0;this._column=-1}}get query(){return this._query}}class b extends h.Widget{constructor(e){super();this._monitor=null;this._delimiter=",";this._revealed=new a.PromiseDelegate;this._baseRenderer=null;this._context=e.context;this.layout=new h.PanelLayout;this.addClass(m);this._ready=this.initialize()}get ready(){return this._ready}async initialize(){const e=this.layout;if(this.isDisposed||!e){return}const{BasicKeyHandler:t,BasicMouseHandler:n,DataGrid:s}=await x.ensureDataGrid();this._defaultStyle=s.defaultStyle;this._grid=new s({defaultSizes:{rowHeight:24,columnWidth:144,rowHeaderWidth:64,columnHeaderHeight:36}});this._grid.addClass(g);this._grid.headerVisibility="all";this._grid.keyHandler=new t;this._grid.mouseHandler=new n;this._grid.copyConfig={separator:"\t",format:s.copyFormatGeneric,headers:"all",warningThreshold:1e6};e.addWidget(this._grid);this._searchService=new _(this._grid);this._searchService.changed.connect(this._updateRenderer,this);await this._context.ready;await this._updateGrid();this._revealed.resolve(undefined);this._monitor=new i.ActivityMonitor({signal:this._context.model.contentChanged,timeout:f});this._monitor.activityStopped.connect(this._updateGrid,this)}get context(){return this._context}get revealed(){return this._revealed.promise}get delimiter(){return this._delimiter}set delimiter(e){if(e===this._delimiter){return}this._delimiter=e;void this._updateGrid()}get style(){return this._grid.style}set style(e){this._grid.style={...this._defaultStyle,...e}}set rendererConfig(e){this._baseRenderer=e;void this._updateRenderer()}get searchService(){return this._searchService}dispose(){if(this._monitor){this._monitor.dispose()}super.dispose()}goToLine(e){this._grid.scrollToRow(e)}onActivateRequest(e){this.node.tabIndex=-1;this.node.focus()}async _updateGrid(){const{BasicSelectionModel:e}=await x.ensureDataGrid();const{DSVModel:t}=await x.ensureDSVModel();const n=this._context.model.toString();const i=this._delimiter;const s=this._grid.dataModel;const o=this._grid.dataModel=new t({data:n,delimiter:i});this._grid.selectionModel=new e({dataModel:o});if(s){s.dispose()}}async _updateRenderer(){if(this._baseRenderer===null){return}const{TextRenderer:e}=await x.ensureDataGrid();const t=this._baseRenderer;const n=new e({textColor:t.textColor,horizontalAlignment:t.horizontalAlignment,backgroundColor:this._searchService.cellBackgroundColorRendererFunc(t)});this._grid.cellRenderers.update({body:n,"column-header":n,"corner-header":n,"row-header":n})}}class y extends o.DocumentWidget{constructor(e){let{content:t,context:n,delimiter:i,reveal:s,...o}=e;t=t||x.createContent(n);s=Promise.all([s,t.revealed]);super({content:t,context:n,reveal:s,...o});if(i){t.delimiter=i}}setFragment(e){const t=e.split("=");if(t[0]!=="#row"){return}let n=t[1].split(";")[0];n=n.split("-")[0];void this.context.ready.then((()=>{this.content.goToLine(Number(n))}))}}class w extends o.ABCWidgetFactory{createNewWidget(e){const t=this.translator;return new y({context:e,translator:t})}defaultToolbarFactory(e){return[{name:"delimiter",widget:new p.G({widget:e.content,translator:this.translator})}]}}class C extends w{createNewWidget(e){const t="\t";return new y({context:e,delimiter:t,translator:this.translator})}}var x;(function(e){let t=null;let i=null;async function s(){if(t==null){t=new a.PromiseDelegate;t.resolve(await n.e(8426).then(n.t.bind(n,28426,23)))}return t.promise}e.ensureDataGrid=s;async function o(){if(i==null){i=new a.PromiseDelegate;i.resolve(await Promise.all([n.e(4470),n.e(8426)]).then(n.bind(n,77515)))}return i.promise}e.ensureDSVModel=o;function r(e){return new b({context:e})}e.createContent=r})(x||(x={}))},5367:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>U});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(5061);var l=n.n(a);var d=n(54723);var c=n.n(d);var h=n(9155);var u=n.n(h);var p=n(30397);var m=n.n(p);var g=n(85253);var f=n.n(g);var v=n(93037);var _=n.n(v);var b=n(4341);var y=n.n(b);var w=n(13105);var C=n.n(w);var x=n(80349);var S=n.n(x);var k=n(44539);var j=n.n(k);var I=n(84739);var E=n.n(I);var T=n(30619);var M=n.n(T);function D(e){Object.values(g.Debugger.CommandIDs).forEach((t=>{if(e.hasCommand(t)){e.notifyCommandChanged(t)}}))}function A(e,t){const n=t.hasStoppedThreads();if(n){document.body.dataset.jpDebuggerStoppedThreads="true"}else{delete document.body.dataset.jpDebuggerStoppedThreads}D(e)}const P={id:"@jupyterlab/debugger-extension:consoles",description:"Add debugger capability to the consoles.",autoStart:true,requires:[g.IDebugger,h.IConsoleTracker],optional:[i.ILabShell],activate:(e,t,n,i)=>{const s=new g.Debugger.Handler({type:"console",shell:e.shell,service:t});const o=async n=>{const{sessionContext:i}=n;await i.ready;await s.updateContext(n,i);A(e.commands,t)};if(i){i.currentChanged.connect(((e,t)=>{const n=t.newValue;if(n instanceof h.ConsolePanel){void o(n)}}))}else{n.currentChanged.connect(((e,t)=>{if(t){void o(t)}}))}}};const L={id:"@jupyterlab/debugger-extension:files",description:"Adds debugger capabilities to files.",autoStart:true,requires:[g.IDebugger,b.IEditorTracker],optional:[i.ILabShell],activate:(e,t,n,i)=>{const s=new g.Debugger.Handler({type:"file",shell:e.shell,service:t});const o={};const r=async n=>{const i=e.serviceManager.sessions;try{const r=await i.findByPath(n.context.path);if(!r){return}let a=o[r.id];if(!a){a=i.connectTo({model:r});o[r.id]=a}await s.update(n,a);A(e.commands,t)}catch(r){return}};if(i){i.currentChanged.connect(((e,t)=>{const n=t.newValue;if(n instanceof v.DocumentWidget){const{content:e}=n;if(e instanceof b.FileEditor){void r(n)}}}))}else{n.currentChanged.connect(((e,t)=>{if(t){void r(t)}}))}}};const R={id:"@jupyterlab/debugger-extension:notebooks",description:"Adds debugger capability to notebooks and provides the debugger notebook handler.",autoStart:true,requires:[g.IDebugger,x.INotebookTracker],optional:[i.ILabShell,o.ICommandPalette,o.ISessionContextDialogs,T.ITranslator],provides:g.IDebuggerHandler,activate:(e,t,n,i,s,r,a)=>{const l=a!==null&&a!==void 0?a:T.nullTranslator;const d=r!==null&&r!==void 0?r:new o.SessionContextDialogs({translator:l});const c=new g.Debugger.Handler({type:"notebook",shell:e.shell,service:t});const h=l.load("jupyterlab");e.commands.addCommand(g.Debugger.CommandIDs.restartDebug,{label:h.__("Restart Kernel and Debug…"),caption:h.__("Restart Kernel and Debug…"),isEnabled:()=>t.isStarted,execute:async()=>{const e=t.getDebuggerState();await t.stop();const i=n.currentWidget;if(!i){return}const{content:s,sessionContext:o}=i;const r=await d.restart(o);if(!r){return}await t.restoreDebuggerState(e);await c.updateWidget(i,o.session);await x.NotebookActions.runAll(s,o,d,l)}});const u=async n=>{if(n){const{sessionContext:e}=n;await e.ready;await c.updateContext(n,e)}A(e.commands,t)};if(i){i.currentChanged.connect(((e,t)=>{const n=t.newValue;if(n instanceof x.NotebookPanel){void u(n)}}))}else{n.currentChanged.connect(((e,t)=>{if(t){void u(t)}}))}if(s){s.addItem({category:"Notebook Operations",command:g.Debugger.CommandIDs.restartDebug})}return c}};const N={id:"@jupyterlab/debugger-extension:service",description:"Provides the debugger service.",autoStart:true,provides:g.IDebugger,requires:[g.IDebuggerConfig],optional:[g.IDebuggerSources,T.ITranslator],activate:(e,t,n,i)=>new g.Debugger.Service({config:t,debuggerSources:n,specsManager:e.serviceManager.kernelspecs,translator:i})};const O={id:"@jupyterlab/debugger-extension:config",description:"Provides the debugger configuration",provides:g.IDebuggerConfig,autoStart:true,activate:()=>new g.Debugger.Config};const B={id:"@jupyterlab/debugger-extension:sources",description:"Provides the source feature for debugging",autoStart:true,provides:g.IDebuggerSources,requires:[g.IDebuggerConfig,d.IEditorServices],optional:[x.INotebookTracker,h.IConsoleTracker,b.IEditorTracker],activate:(e,t,n,i,s,o)=>new g.Debugger.Sources({config:t,shell:e.shell,editorServices:n,notebookTracker:i,consoleTracker:s,editorTracker:o})};const F={id:"@jupyterlab/debugger-extension:variables",description:"Adds variables renderer and inspection in the debugger variable panel.",autoStart:true,requires:[g.IDebugger,g.IDebuggerHandler,T.ITranslator],optional:[o.IThemeManager,k.IRenderMimeRegistry],activate:(e,t,n,i,s,r)=>{const a=i.load("jupyterlab");const{commands:l,shell:d}=e;const c=new o.WidgetTracker({namespace:"debugger/inspect-variable"});const h=new o.WidgetTracker({namespace:"debugger/render-variable"});const u=g.Debugger.CommandIDs;l.addCommand(u.inspectVariable,{label:a.__("Inspect Variable"),caption:a.__("Inspect Variable"),isEnabled:e=>{var n,i,s,o;return!!((n=t.session)===null||n===void 0?void 0:n.isStarted)&&Number((o=(i=e.variableReference)!==null&&i!==void 0?i:(s=t.model.variables.selectedVariable)===null||s===void 0?void 0:s.variablesReference)!==null&&o!==void 0?o:0)>0},execute:async e=>{var n,i,r,a;let{variableReference:h,name:u}=e;if(!h){h=(n=t.model.variables.selectedVariable)===null||n===void 0?void 0:n.variablesReference}if(!u){u=(i=t.model.variables.selectedVariable)===null||i===void 0?void 0:i.name}const p=`jp-debugger-variable-${u}`;if(!u||!h||c.find((e=>e.id===p))){return}const m=await t.inspectVariable(h);if(!m||m.length===0){return}const f=t.model.variables;const v=new o.MainAreaWidget({content:new g.Debugger.VariablesGrid({model:f,commands:l,scopes:[{name:u,variables:m}],themeManager:s})});v.addClass("jp-DebuggerVariables");v.id=p;v.title.icon=g.Debugger.Icons.variableIcon;v.title.label=`${(a=(r=t.session)===null||r===void 0?void 0:r.connection)===null||a===void 0?void 0:a.name} - ${u}`;void c.add(v);const _=()=>{v.dispose();f.changed.disconnect(_)};f.changed.connect(_);d.add(v,"main",{mode:c.currentWidget?"split-right":"split-bottom",activate:false,type:"Debugger Variables"})}});l.addCommand(u.renderMimeVariable,{label:a.__("Render Variable"),caption:a.__("Render variable according to its mime type"),isEnabled:()=>{var e;return!!((e=t.session)===null||e===void 0?void 0:e.isStarted)},isVisible:()=>t.model.hasRichVariableRendering&&(r!==null||n.activeWidget instanceof x.NotebookPanel),execute:e=>{var s,o,a,l,c,u,p,m;let{name:f,frameId:v}=e;if(!f){f=(s=t.model.variables.selectedVariable)===null||s===void 0?void 0:s.name}if(!v){v=(o=t.model.callstack.frame)===null||o===void 0?void 0:o.id}const _=n.activeWidget;let b=_ instanceof x.NotebookPanel?_.content.rendermime:r;if(!b){return}const y=`jp-debugger-variable-mime-${f}-${(l=(a=t.session)===null||a===void 0?void 0:a.connection)===null||l===void 0?void 0:l.path.replace("/","-")}`;if(!f||h.find((e=>e.id===y))||!v&&t.hasStoppedThreads()){return}const w=t.model.variables;const C=new g.Debugger.VariableRenderer({dataLoader:()=>t.inspectRichVariable(f,v),rendermime:b,translator:i});C.addClass("jp-DebuggerRichVariable");C.id=y;C.title.icon=g.Debugger.Icons.variableIcon;C.title.label=`${f} - ${(u=(c=t.session)===null||c===void 0?void 0:c.connection)===null||u===void 0?void 0:u.name}`;C.title.caption=`${f} - ${(m=(p=t.session)===null||p===void 0?void 0:p.connection)===null||m===void 0?void 0:m.path}`;void h.add(C);const S=()=>{C.dispose();w.changed.disconnect(k);_===null||_===void 0?void 0:_.disposed.disconnect(S)};const k=()=>{if(n.activeWidget===_){void C.refresh()}};C.disposed.connect(S);w.changed.connect(k);_===null||_===void 0?void 0:_.disposed.connect(S);d.add(C,"main",{mode:h.currentWidget?"split-right":"split-bottom",activate:false,type:"Debugger Variables"})}});l.addCommand(u.copyToClipboard,{label:a.__("Copy to Clipboard"),caption:a.__("Copy text representation of the value to clipboard"),isEnabled:()=>{var e,n;return!!((e=t.session)===null||e===void 0?void 0:e.isStarted)&&!!((n=t.model.variables.selectedVariable)===null||n===void 0?void 0:n.value)},isVisible:()=>n.activeWidget instanceof x.NotebookPanel,execute:async()=>{const e=t.model.variables.selectedVariable.value;if(e){o.Clipboard.copyToSystem(e)}}});l.addCommand(u.copyToGlobals,{label:a.__("Copy Variable to Globals"),caption:a.__("Copy variable to globals scope"),isEnabled:()=>{var e;return!!((e=t.session)===null||e===void 0?void 0:e.isStarted)},isVisible:()=>n.activeWidget instanceof x.NotebookPanel&&t.model.supportCopyToGlobals,execute:async e=>{const n=t.model.variables.selectedVariable.name;await t.copyToGlobals(n)}})}};const z={id:"@jupyterlab/debugger-extension:sidebar",description:"Provides the debugger sidebar.",provides:g.IDebuggerSidebar,requires:[g.IDebugger,d.IEditorServices,T.ITranslator],optional:[o.IThemeManager,I.ISettingRegistry],autoStart:true,activate:async(e,t,n,i,s,o)=>{const{commands:r}=e;const a=g.Debugger.CommandIDs;const l={registry:r,continue:a.debugContinue,terminate:a.terminate,next:a.next,stepIn:a.stepIn,stepOut:a.stepOut,evaluate:a.evaluate};const d={registry:r,pauseOnExceptions:a.pauseOnExceptions};const c=new g.Debugger.Sidebar({service:t,callstackCommands:l,breakpointsCommands:d,editorServices:n,themeManager:s,translator:i});if(o){const e=await o.load(W.id);const n=()=>{var n,i,s,o;const r=e.get("variableFilters").composite;const a=(o=(s=(i=(n=t.session)===null||n===void 0?void 0:n.connection)===null||i===void 0?void 0:i.kernel)===null||s===void 0?void 0:s.name)!==null&&o!==void 0?o:"";if(a&&r[a]){c.variables.filter=new Set(r[a])}const l=e.get("defaultKernelSourcesFilter").composite;c.kernelSources.filter=l};n();e.changed.connect(n);t.sessionChanged.connect(n)}return c}};const H={id:"@jupyterlab/debugger-extension:source-viewer",description:"Initialize the debugger sources viewer.",requires:[g.IDebugger,d.IEditorServices,g.IDebuggerSources,T.ITranslator],provides:g.IDebuggerSourceViewer,autoStart:true,activate:async(e,t,n,i,s)=>{const r=new g.Debugger.ReadOnlyEditorFactory({editorServices:n});const{model:a}=t;const l=(e,n)=>{var s,o,r,a,l,d,c,h,u;i.find({focus:true,kernel:(a=(r=(o=(s=t.session)===null||s===void 0?void 0:s.connection)===null||o===void 0?void 0:o.kernel)===null||r===void 0?void 0:r.name)!==null&&a!==void 0?a:"",path:(c=(d=(l=t.session)===null||l===void 0?void 0:l.connection)===null||d===void 0?void 0:d.path)!==null&&c!==void 0?c:"",source:(u=(h=n===null||n===void 0?void 0:n.source)===null||h===void 0?void 0:h.path)!==null&&u!==void 0?u:""}).forEach((e=>{requestAnimationFrame((()=>{void e.reveal().then((()=>{const t=e.get();if(t){g.Debugger.EditorHandler.showCurrentLine(t,n.line)}}))}))}))};a.callstack.currentFrameChanged.connect(l);const d=(e,n)=>{var s,o,a,l,d,c,h;if(!e){return}const{content:u,mimeType:m,path:f}=e;const v=i.find({focus:true,kernel:(l=(a=(o=(s=t.session)===null||s===void 0?void 0:s.connection)===null||o===void 0?void 0:o.kernel)===null||a===void 0?void 0:a.name)!==null&&l!==void 0?l:"",path:(h=(c=(d=t.session)===null||d===void 0?void 0:d.connection)===null||c===void 0?void 0:c.path)!==null&&h!==void 0?h:"",source:f});if(v.length>0){if(n&&typeof n.line!=="undefined"){v.forEach((e=>{void e.reveal().then((()=>{var t;(t=e.get())===null||t===void 0?void 0:t.revealPosition({line:n.line-1,column:n.column||0})}))}))}return}const _=r.createNewEditor({content:u,mimeType:m,path:f});const b=_.editor;const y=new g.Debugger.EditorHandler({debuggerService:t,editorReady:()=>Promise.resolve(b),getEditor:()=>b,path:f,src:b.model.sharedModel});_.disposed.connect((()=>y.dispose()));i.open({label:p.PathExt.basename(f),caption:f,editorWrapper:_});const w=t.model.callstack.frame;if(w){g.Debugger.EditorHandler.showCurrentLine(b,w.line)}};const c=s.load("jupyterlab");e.commands.addCommand(g.Debugger.CommandIDs.openSource,{label:c.__("Open Source"),caption:c.__("Open Source"),isEnabled:()=>!!H,execute:async e=>{const n=e.path||"";if(!n){throw Error("Path to open is needed")}if(!t.isStarted){const e=await(0,o.showDialog)({title:c.__("Start debugger?"),body:c.__("The debugger service is needed to open the source %1",n),buttons:[o.Dialog.cancelButton({label:c.__("Cancel")}),o.Dialog.okButton({label:c.__("Start debugger")})]});if(e.button.accept){await t.start()}else{return}}const i=await t.getSource({path:n});return d(i)}});return Object.freeze({open:d})}};const W={id:"@jupyterlab/debugger-extension:main",description:"Initialize the debugger user interface.",requires:[g.IDebugger,g.IDebuggerSidebar,d.IEditorServices,T.ITranslator],optional:[o.ICommandPalette,g.IDebuggerSourceViewer,i.ILabShell,i.ILayoutRestorer,w.ILoggerRegistry,I.ISettingRegistry],autoStart:true,activate:async(e,t,n,i,s,r,l,d,c,h,u)=>{var m;const f=s.load("jupyterlab");const{commands:v,shell:_,serviceManager:b}=e;const{kernelspecs:y}=b;const w=g.Debugger.CommandIDs;const C=p.PageConfig.getOption("alwaysShowDebuggerExtension").toLowerCase()==="true";if(!C){await y.ready;const e=(m=y.specs)===null||m===void 0?void 0:m.kernelspecs;if(!e){return}const t=Object.keys(e).some((t=>{var n,i,s;return!!((s=(i=(n=e[t])===null||n===void 0?void 0:n.metadata)===null||i===void 0?void 0:i["debugger"])!==null&&s!==void 0?s:false)}));if(!t){return}}const x=async()=>{var e,n,s;const o=(n=(e=t.session)===null||e===void 0?void 0:e.connection)===null||n===void 0?void 0:n.kernel;if(!o){return""}const r=(await o.info).language_info;const a=r.name;const l=(s=i.mimeTypeService.getMimeTypeByLanguage({name:a}))!==null&&s!==void 0?s:"";return l};const S=new k.RenderMimeRegistry({initialFactories:k.standardRendererFactories});v.addCommand(w.evaluate,{label:f.__("Evaluate Code"),caption:f.__("Evaluate Code"),icon:g.Debugger.Icons.evaluateIcon,isEnabled:()=>t.hasStoppedThreads(),execute:async()=>{var e,n,s;const o=await x();const r=await g.Debugger.Dialogs.getCode({title:f.__("Evaluate Code"),okLabel:f.__("Evaluate"),cancelLabel:f.__("Cancel"),mimeType:o,contentFactory:new a.CodeCell.ContentFactory({editorFactory:e=>i.factoryService.newInlineEditor(e)}),rendermime:S});const l=r.value;if(!r.button.accept||!l){return}const d=await t.evaluate(l);if(d){const i=d.result;const o=(n=(e=t===null||t===void 0?void 0:t.session)===null||e===void 0?void 0:e.connection)===null||n===void 0?void 0:n.path;const r=o?(s=h===null||h===void 0?void 0:h.getLogger)===null||s===void 0?void 0:s.call(h,o):undefined;if(r){r.log({type:"text",data:i,level:r.level})}else{console.debug(i)}}}});v.addCommand(w.debugContinue,{label:()=>t.hasStoppedThreads()?f.__("Continue"):f.__("Pause"),caption:()=>t.hasStoppedThreads()?f.__("Continue"):f.__("Pause"),icon:()=>t.hasStoppedThreads()?g.Debugger.Icons.continueIcon:g.Debugger.Icons.pauseIcon,isEnabled:()=>{var e,n;return(n=(e=t.session)===null||e===void 0?void 0:e.isStarted)!==null&&n!==void 0?n:false},execute:async()=>{if(t.hasStoppedThreads()){await t.continue()}else{await t.pause()}v.notifyCommandChanged(w.debugContinue)}});v.addCommand(w.terminate,{label:f.__("Terminate"),caption:f.__("Terminate"),icon:g.Debugger.Icons.terminateIcon,isEnabled:()=>t.hasStoppedThreads(),execute:async()=>{await t.restart();A(e.commands,t)}});v.addCommand(w.next,{label:f.__("Next"),caption:f.__("Next"),icon:g.Debugger.Icons.stepOverIcon,isEnabled:()=>t.hasStoppedThreads(),execute:async()=>{await t.next()}});v.addCommand(w.stepIn,{label:f.__("Step In"),caption:f.__("Step In"),icon:g.Debugger.Icons.stepIntoIcon,isEnabled:()=>t.hasStoppedThreads(),execute:async()=>{await t.stepIn()}});v.addCommand(w.stepOut,{label:f.__("Step Out"),caption:f.__("Step Out"),icon:g.Debugger.Icons.stepOutIcon,isEnabled:()=>t.hasStoppedThreads(),execute:async()=>{await t.stepOut()}});v.addCommand(w.pauseOnExceptions,{label:e=>e.filter||"Breakpoints on exception",caption:e=>e.description,isToggled:e=>{var n;return((n=t.session)===null||n===void 0?void 0:n.isPausingOnException(e.filter))||false},isEnabled:()=>t.pauseOnExceptionsIsValid(),execute:async e=>{var n,i,s;if(e===null||e===void 0?void 0:e.filter){let n=e.filter;await t.pauseOnExceptionsFilter(n)}else{let e=[];(i=(n=t.session)===null||n===void 0?void 0:n.exceptionBreakpointFilters)===null||i===void 0?void 0:i.forEach((t=>{e.push(t.filter)}));const r=await o.InputDialog.getMultipleItems({title:f.__("Select a filter for breakpoints on exception"),items:e,defaults:((s=t.session)===null||s===void 0?void 0:s.currentExceptionFilters)||[]});let a=r.button.accept?r.value:null;if(a!==null){await t.pauseOnExceptions(a)}}}});let j=false;if(u){const e=await u.load(W.id);const t=()=>{j=e.get("autoCollapseDebuggerSidebar").composite};t();e.changed.connect(t)}t.eventMessage.connect(((i,s)=>{A(e.commands,t);if(d&&s.event==="initialized"){d.activateById(n.id)}else if(d&&n.isVisible&&s.event==="terminated"&&j){d.collapseRight()}}));t.sessionChanged.connect((n=>{A(e.commands,t)}));if(c){c.add(n,"debugger-sidebar")}n.node.setAttribute("role","region");n.node.setAttribute("aria-label",f.__("Debugger section"));n.title.caption=f.__("Debugger");_.add(n,"right",{type:"Debugger"});v.addCommand(w.showPanel,{label:f.__("Debugger Panel"),execute:()=>{_.activateById(n.id)}});if(r){const e=f.__("Debugger");[w.debugContinue,w.terminate,w.next,w.stepIn,w.stepOut,w.evaluate,w.pauseOnExceptions].forEach((t=>{r.addItem({command:t,category:e})}))}if(l){const{model:e}=t;const n=(e,t,n)=>{if(!t){return}l.open(t,n)};e.sources.currentSourceOpened.connect(((e,t)=>{l.open(t)}));e.kernelSources.kernelSourceOpened.connect(n);e.breakpoints.clicked.connect((async(e,n)=>{var i;const s=(i=n.source)===null||i===void 0?void 0:i.path;const o=await t.getSource({sourceReference:0,path:s});l.open(o,n)}))}}};const V=[N,P,L,R,F,z,W,B,H,O];const U=V},1904:(e,t,n)=>{"use strict";var i=n(97913);var s=n(17325);var o=n(5893);var r=n(79010);var a=n(3579);var l=n(53377);var d=n(50286);var c=n(77748);var h=n(28006);var u=n(10395);var p=n(40662);var m=n(23359);var g=n(85072);var f=n.n(g);var v=n(97825);var _=n.n(v);var b=n(77659);var y=n.n(b);var w=n(55056);var C=n.n(w);var x=n(10540);var S=n.n(x);var k=n(41113);var j=n.n(k);var I=n(1597);var E={};E.styleTagTransform=j();E.setAttributes=C();E.insert=y().bind(null,"head");E.domAPI=_();E.insertStyleElement=S();var T=f()(I.A,E);const M=I.A&&I.A.locals?I.A.locals:undefined;var D=n(69704)},35086:(e,t,n)=>{"use strict";n.d(t,{s:()=>Re});var i=n(26331);const s=1540483477;const o=new TextEncoder;function r(e,t){const n=o.encode(e);let i=n.length;let r=t^i;let a=0;while(i>=4){let e=n[a]&255|(n[++a]&255)<<8|(n[++a]&255)<<16|(n[++a]&255)<<24;e=(e&65535)*s+(((e>>>16)*s&65535)<<16);e^=e>>>24;e=(e&65535)*s+(((e>>>16)*s&65535)<<16);r=(r&65535)*s+(((r>>>16)*s&65535)<<16)^e;i-=4;++a}switch(i){case 3:r^=(n[a+2]&255)<<16;case 2:r^=(n[a+1]&255)<<8;case 1:r^=n[a]&255;r=(r&65535)*s+(((r>>>16)*s&65535)<<16)}r^=r>>>13;r=(r&65535)*s+(((r>>>16)*s&65535)<<16);r^=r>>>15;return r>>>0}class a{constructor(){this._fileParams=new Map;this._hashMethods=new Map}getCodeId(e,t){const n=this._fileParams.get(t);if(!n){throw new Error(`Kernel (${t}) has no tmp file params.`)}const i=this._hashMethods.get(t);if(!i){throw new Error(`Kernel (${t}) has no hashing params.`)}const{prefix:s,suffix:o}=n;return`${s}${i(e)}${o}`}setHashParams(e){const{kernel:t,method:n,seed:i}=e;if(!t){throw new TypeError(`Kernel name is not defined.`)}switch(n){case"Murmur2":this._hashMethods.set(t,(e=>r(e,i).toString()));break;default:throw new Error(`Hash method (${n}) is not supported.`)}}setTmpFileParams(e){const{kernel:t,prefix:n,suffix:i}=e;if(!t){throw new TypeError(`Kernel name is not defined.`)}this._fileParams.set(t,{kernel:t,prefix:n,suffix:i})}getTmpFileParams(e){return this._fileParams.get(e)}}var l=n(14366);var d=n(5061);var c=n(1143);var h;(function(e){function t(e){const t=new u({...e,body:new p(e),buttons:[l.Dialog.cancelButton({label:e.cancelLabel}),l.Dialog.okButton({label:e.okLabel})]});return t.launch()}e.getCode=t})(h||(h={}));class u extends l.Dialog{handleEvent(e){if(e.type==="keydown"){const t=e;const{code:n,shiftKey:i}=t;if(i&&n==="Enter"){return this.resolve()}if(n==="Enter"){return}}super.handleEvent(e)}}class p extends c.Widget{constructor(e){super();const{contentFactory:t,rendermime:n,mimeType:i}=e;const s=new d.CodeCellModel;s.mimeType=i!==null&&i!==void 0?i:"";this._prompt=new d.CodeCell({contentFactory:t,rendermime:n,model:s,placeholder:false}).initializeState();this._prompt.inputArea.promptNode.remove();this.node.appendChild(this._prompt.node)}getValue(){return this._prompt.model.sharedModel.getSource()}onAfterAttach(e){super.onAfterAttach(e);this._prompt.activate()}}var m=n(54723);class g{constructor(e){this._services=e.editorServices}createNewEditor(e){const{content:t,mimeType:n,path:i}=e;const s=this._services.factoryService.newInlineEditor;const o=this._services.mimeTypeService;const r=new m.CodeEditor.Model({mimeType:n||o.getMimeTypeByFilePath(i)});r.sharedModel.source=t;const a=new m.CodeEditorWrapper({editorOptions:{config:{readOnly:true,lineNumbers:true}},model:r,factory:s});a.node.setAttribute("data-jp-debugger","true");a.disposed.connect((()=>{r.dispose()}));return a}}var f=n(30619);var v=n(44336);var _=n(2336);var b=n(30397);var y=n(71674);var w=n(22819);const C="jp-DebuggerEditor-highlight";const x=1e3;class S{constructor(e){var t,n,i,s;this._src=e.src;this._id=(i=(n=(t=e.debuggerService.session)===null||t===void 0?void 0:t.connection)===null||n===void 0?void 0:n.id)!==null&&i!==void 0?i:"";this._path=(s=e.path)!==null&&s!==void 0?s:"";this._debuggerService=e.debuggerService;this._editor=e.getEditor;this._editorMonitor=new b.ActivityMonitor({signal:this._src.changed,timeout:x});this._editorMonitor.activityStopped.connect((()=>{this._sendEditorBreakpoints()}),this);this._debuggerService.model.breakpoints.changed.connect((async()=>{const e=this.editor;if(!e||e.isDisposed){return}this._addBreakpointsToEditor()}));this._debuggerService.model.breakpoints.restored.connect((async()=>{const e=this.editor;if(!e||e.isDisposed){return}this._addBreakpointsToEditor()}));this._debuggerService.model.callstack.currentFrameChanged.connect((()=>{const e=this.editor;if(e){S.clearHighlight(e)}}));this._breakpointEffect=y.StateEffect.define({map:(e,t)=>({pos:e.pos.map((e=>t.mapPos(e)))})});this._breakpointState=y.StateField.define({create:()=>y.RangeSet.empty,update:(e,t)=>{e=e.map(t.changes);for(let n of t.effects){if(n.is(this._breakpointEffect)){let t=n;if(t.value.pos.length){e=e.update({add:t.value.pos.map((e=>k.breakpointMarker.range(e))),sort:true})}else{e=y.RangeSet.empty}}}return e}});this._gutter=new y.Compartment;this._highlightDeco=w.Decoration.line({class:C});this._highlightState=y.StateField.define({create:()=>w.Decoration.none,update:(e,t)=>{e=e.map(t.changes);for(let n of t.effects){if(n.is(S._highlightEffect)){let t=n;if(t.value.pos.length){e=e.update({add:t.value.pos.map((e=>this._highlightDeco.range(e)))})}else{e=w.Decoration.none}}}return e},provide:e=>w.EditorView.decorations.from(e)});void e.editorReady().then((()=>{this._setupEditor()}))}get editor(){return this._editor()}dispose(){if(this.isDisposed){return}this._editorMonitor.dispose();this._clearEditor();this.isDisposed=true;_.Signal.clearData(this)}refreshBreakpoints(){this._addBreakpointsToEditor()}_setupEditor(){const e=this.editor;if(!e||e.isDisposed){return}e.setOption("lineNumbers",true);const t=[this._breakpointState,this._highlightState,y.Prec.highest((0,w.gutter)({class:"cm-breakpoint-gutter",renderEmptyElements:true,markers:e=>e.state.field(this._breakpointState),initialSpacer:()=>k.breakpointMarker,domEventHandlers:{mousedown:(e,t)=>{this._onGutterClick(e,t.from);return true}}}))];e.injectExtension(this._gutter.of(t));this._addBreakpointsToEditor()}_clearEditor(){const e=this.editor;if(!e||e.isDisposed){return}S.clearHighlight(e);this._clearGutter(e);e.setOption("lineNumbers",false);e.editor.dispatch({effects:this._gutter.reconfigure([])})}_sendEditorBreakpoints(){var e;if((e=this.editor)===null||e===void 0?void 0:e.isDisposed){return}const t=this._getBreakpointsFromEditor().map((e=>{var t,n;return k.createBreakpoint(((n=(t=this._debuggerService.session)===null||t===void 0?void 0:t.connection)===null||n===void 0?void 0:n.name)||"",e)}));void this._debuggerService.updateBreakpoints(this._src.getSource(),t,this._path)}_onGutterClick(e,t){var n,i,s;if(this._id!==((i=(n=this._debuggerService.session)===null||n===void 0?void 0:n.connection)===null||i===void 0?void 0:i.id)){return}const o=e.state.doc.lineAt(t).number;let r=e.state.field(this._breakpointState);let a=false;r.between(t,t,(()=>{a=true}));let l=this._getBreakpoints();if(a){l=l.filter((e=>e.line!==o))}else{l.push(k.createBreakpoint((s=this._path)!==null&&s!==void 0?s:this._debuggerService.session.connection.name,o))}l.sort(((e,t)=>e.line-t.line));void this._debuggerService.updateBreakpoints(this._src.getSource(),l,this._path)}_addBreakpointsToEditor(){var e,t;if(this._id!==((t=(e=this._debuggerService.session)===null||e===void 0?void 0:e.connection)===null||t===void 0?void 0:t.id)){return}const n=this.editor;const i=this._getBreakpoints();this._clearGutter(n);const s=i.map((e=>n.state.doc.line(e.line).from));n.editor.dispatch({effects:this._breakpointEffect.of({pos:s})})}_getBreakpointsFromEditor(){const e=this.editor;const t=e.editor.state.field(this._breakpointState);let n=[];t.between(0,e.doc.length,(t=>{n.push(e.doc.lineAt(t).number)}));return n}_clearGutter(e){if(!e){return}const t=e.editor;t.dispatch({effects:this._breakpointEffect.of({pos:[]})})}_getBreakpoints(){const e=this._src.getSource();return this._debuggerService.model.breakpoints.getBreakpoints(this._path||this._debuggerService.getCodeId(e))}}(function(e){e._highlightEffect=y.StateEffect.define({map:(e,t)=>({pos:e.pos.map((e=>t.mapPos(e)))})});function t(t,i){n(t);const s=t;const o=s.doc.line(i).from;s.editor.dispatch({effects:e._highlightEffect.of({pos:[o]})})}e.showCurrentLine=t;function n(t){if(!t||t.isDisposed){return}const n=t;n.editor.dispatch({effects:e._highlightEffect.of({pos:[]})})}e.clearHighlight=n})(S||(S={}));var k;(function(e){e.breakpointMarker=new class extends w.GutterMarker{toDOM(){const e=document.createTextNode("●");return e}};function t(e,t){return{line:t,verified:true,source:{name:e}}}e.createBreakpoint=t})(k||(k={}));class j{constructor(e){this._debuggerService=e.debuggerService;this._consolePanel=e.widget;this._cellMap=new v.ObservableMap;const t=this._consolePanel.console;if(t.promptCell){this._addEditorHandler(t.promptCell)}t.promptCellCreated.connect(((e,t)=>{this._addEditorHandler(t)}));const n=()=>{for(const e of t.cells){this._addEditorHandler(e)}};n();this._consolePanel.console.cells.changed.connect(n)}dispose(){if(this.isDisposed){return}this.isDisposed=true;this._cellMap.values().forEach((e=>e.dispose()));this._cellMap.dispose();_.Signal.clearData(this)}_addEditorHandler(e){const t=e.model.id;if(e.model.type!=="code"||this._cellMap.has(t)){return}const n=e;const i=new S({debuggerService:this._debuggerService,editorReady:async()=>{await n.ready;return n.editor},getEditor:()=>n.editor,src:e.model.sharedModel});n.disposed.connect((()=>{this._cellMap.delete(t);i.dispose()}));this._cellMap.set(t,i)}}class I{constructor(e){var t;this._debuggerService=e.debuggerService;this._fileEditor=e.widget.content;this._hasLineNumber=(t=this._fileEditor.editor.getOption("lineNumbers"))!==null&&t!==void 0?t:false;this._editorHandler=new S({debuggerService:this._debuggerService,editorReady:()=>Promise.resolve(this._fileEditor.editor),getEditor:()=>this._fileEditor.editor,src:this._fileEditor.model.sharedModel})}dispose(){var e,t;if(this.isDisposed){return}this.isDisposed=true;(e=this._editorHandler)===null||e===void 0?void 0:e.dispose();(t=this._editorHandler)===null||t===void 0?void 0:t.editor.setOptions({lineNumbers:this._hasLineNumber});_.Signal.clearData(this)}}class E{constructor(e){this._debuggerService=e.debuggerService;this._notebookPanel=e.widget;this._cellMap=new v.ObservableMap;const t=this._notebookPanel.content;t.model.cells.changed.connect(this._onCellsChanged,this);this._onCellsChanged()}dispose(){if(this.isDisposed){return}this.isDisposed=true;this._cellMap.values().forEach((e=>{var t;e.dispose();(t=e.editor)===null||t===void 0?void 0:t.setOptions({...this._notebookPanel.content.editorConfig.code})}));this._cellMap.dispose();_.Signal.clearData(this)}_onCellsChanged(e,t){var n;this._notebookPanel.content.widgets.forEach((e=>this._addEditorHandler(e)));if((t===null||t===void 0?void 0:t.type)==="move"){for(const e of t.newValues){(n=this._cellMap.get(e.id))===null||n===void 0?void 0:n.refreshBreakpoints()}}}_addEditorHandler(e){const t=e.model.id;if(e.model.type!=="code"||this._cellMap.has(t)){return}const n=e;const i=new S({debuggerService:this._debuggerService,editorReady:async()=>{await n.ready;return n.editor},getEditor:()=>n.editor,src:e.model.sharedModel});n.disposed.connect((()=>{this._cellMap.delete(t);i.dispose()}));this._cellMap.set(e.model.id,i)}}const T="debugger-icon";function M(e,t,n,s,o=f.nullTranslator){const r=o.load("jupyterlab");const a=new i.ToolbarButton({className:"jp-DebuggerBugButton",icon:i.bugIcon,tooltip:r.__("Enable Debugger"),pressedIcon:i.bugDotIcon,pressedTooltip:r.__("Disable Debugger"),disabledTooltip:r.__("Select a kernel that supports debugging to enable debugger"),enabled:n,pressed:s,onClick:t});if(!e.toolbar.insertBefore("kernelName",T,a)){e.toolbar.addItem(T,a)}return a}function D(e,t,n=true,i){if(e){e.enabled=n;e.pressed=t;if(i){e.onClick=i}}}class A{constructor(e){this._handlers={};this._contextKernelChangedHandlers={};this._kernelChangedHandlers={};this._statusChangedHandlers={};this._iopubMessageHandlers={};this._iconButtons={};this._type=e.type;this._shell=e.shell;this._service=e.service}get activeWidget(){return this._activeWidget}async update(e,t){if(!t){delete this._kernelChangedHandlers[e.id];delete this._statusChangedHandlers[e.id];delete this._iopubMessageHandlers[e.id];return this.updateWidget(e,t)}const n=()=>{void this.updateWidget(e,t)};const i=this._kernelChangedHandlers[e.id];if(i){t.kernelChanged.disconnect(i)}this._kernelChangedHandlers[e.id]=n;t.kernelChanged.connect(n);const s=(n,i)=>{if(i.endsWith("restarting")){void this.updateWidget(e,t)}};const o=this._statusChangedHandlers[e.id];if(o){t.statusChanged.disconnect(o)}t.statusChanged.connect(s);this._statusChangedHandlers[e.id]=s;const r=(e,t)=>{if(this._service.isStarted&&!this._service.hasStoppedThreads()&&t.parent_header.msg_type==="execute_request"){void this._service.displayDefinedVariables()}};const a=this._iopubMessageHandlers[e.id];if(a){t.iopubMessage.disconnect(a)}t.iopubMessage.connect(r);this._iopubMessageHandlers[e.id]=r;this._activeWidget=e;return this.updateWidget(e,t)}async updateContext(e,t){const n=()=>{const{session:n}=t;void this.update(e,n)};const i=this._contextKernelChangedHandlers[e.id];if(i){t.kernelChanged.disconnect(i)}this._contextKernelChangedHandlers[e.id]=n;t.kernelChanged.connect(n);return this.update(e,t.session)}async updateWidget(e,t){var n,i,s,o;if(!this._service.model||!t){return}const r=()=>this._shell.currentWidget===e;const a=()=>{if(!this._handlers[e.id]){e.node.removeAttribute("data-jp-debugger");return}e.node.setAttribute("data-jp-debugger","true")};const l=()=>{if(this._handlers[e.id]){return}switch(this._type){case"notebook":this._handlers[e.id]=new E({debuggerService:this._service,widget:e});break;case"console":this._handlers[e.id]=new j({debuggerService:this._service,widget:e});break;case"file":this._handlers[e.id]=new I({debuggerService:this._service,widget:e});break;default:throw Error(`No handler for the type ${this._type}`)}a()};const d=()=>{var n,i,s,o;const r=this._handlers[e.id];if(!r){return}r.dispose();delete this._handlers[e.id];delete this._kernelChangedHandlers[e.id];delete this._statusChangedHandlers[e.id];delete this._iopubMessageHandlers[e.id];delete this._contextKernelChangedHandlers[e.id];if(((i=(n=this._service.session)===null||n===void 0?void 0:n.connection)===null||i===void 0?void 0:i.path)===(t===null||t===void 0?void 0:t.path)||!((o=(s=this._service.session)===null||s===void 0?void 0:s.connection)===null||o===void 0?void 0:o.kernel)){const e=this._service.model;e.clear()}a()};const c=(t=true)=>{const n=this._iconButtons[e.id];if(!n){this._iconButtons[e.id]=M(e,m,this._service.isStarted,t)}else{D(n,this._service.isStarted,t,m)}};const h=()=>{var e;return this._service.isStarted&&((e=this._previousConnection)===null||e===void 0?void 0:e.id)===(t===null||t===void 0?void 0:t.id)};const u=async()=>{this._service.session.connection=t;await this._service.stop()};const p=async()=>{var e,n;this._service.session.connection=t;this._previousConnection=t;await this._service.restoreState(true);await this._service.displayDefinedVariables();if((n=(e=this._service.session)===null||e===void 0?void 0:e.capabilities)===null||n===void 0?void 0:n.supportsModulesRequest){await this._service.displayModules()}};const m=async()=>{if(!r()){return}const t=this._iconButtons[e.id];if(h()){await u();d();D(t,false)}else{await p();l();D(t,true)}};c(false);e.disposed.connect((async()=>{if(h()){await u()}d();delete this._iconButtons[e.id];delete this._contextKernelChangedHandlers[e.id]}));const g=await this._service.isAvailable(t);if(!g){d();D(this._iconButtons[e.id],false,false);return}if(!this._service.session){this._service.session=new Re.Session({connection:t,config:this._service.config})}else{this._previousConnection=((n=this._service.session.connection)===null||n===void 0?void 0:n.kernel)?this._service.session.connection:null;this._service.session.connection=t}await this._service.restoreState(false);if(this._service.isStarted&&!this._service.hasStoppedThreads()){await this._service.displayDefinedVariables();if((s=(i=this._service.session)===null||i===void 0?void 0:i.capabilities)===null||s===void 0?void 0:s.supportsModulesRequest){await this._service.displayModules()}}D(this._iconButtons[e.id],this._service.isStarted,true);if(!this._service.isStarted){d();this._service.session.connection=(o=this._previousConnection)!==null&&o!==void 0?o:t;await this._service.restoreState(false);return}l();this._previousConnection=t}}class P{constructor(){this._breakpoints=new Map;this._changed=new _.Signal(this);this._restored=new _.Signal(this);this._clicked=new _.Signal(this)}get changed(){return this._changed}get restored(){return this._restored}get clicked(){return this._clicked}get breakpoints(){return this._breakpoints}setBreakpoints(e,t){this._breakpoints.set(e,t);this._changed.emit(t)}getBreakpoints(e){var t;return(t=this._breakpoints.get(e))!==null&&t!==void 0?t:[]}restoreBreakpoints(e){this._breakpoints=e;this._restored.emit()}}class L{constructor(){this._state=[];this._currentFrame=null;this._framesChanged=new _.Signal(this);this._currentFrameChanged=new _.Signal(this)}get frames(){return this._state}set frames(e){this._state=e;const t=this.frame!==null?R.getFrameId(this.frame):"";const n=e.find((e=>R.getFrameId(e)===t));if(!n){this.frame=e[0]}this._framesChanged.emit(e)}get frame(){return this._currentFrame}set frame(e){this._currentFrame=e;this._currentFrameChanged.emit(e)}get framesChanged(){return this._framesChanged}get currentFrameChanged(){return this._currentFrameChanged}}var R;(function(e){function t(e){var t;return`${(t=e===null||e===void 0?void 0:e.source)===null||t===void 0?void 0:t.path}-${e===null||e===void 0?void 0:e.id}`}e.getFrameId=t})(R||(R={}));class N{constructor(e){this._currentSourceOpened=new _.Signal(this);this._currentSourceChanged=new _.Signal(this);this.currentFrameChanged=e.currentFrameChanged}get currentSourceOpened(){return this._currentSourceOpened}get currentSourceChanged(){return this._currentSourceChanged}get currentSource(){return this._currentSource}set currentSource(e){this._currentSource=e;this._currentSourceChanged.emit(e)}open(){this._currentSourceOpened.emit(this._currentSource)}}var O=n(26568);const B=500;const F=(e,t)=>{if(e.namet.name){return 1}return 0};class z{constructor(){this._filteredKernelSources=null;this._filter="";this._isDisposed=false;this._kernelSources=null;this._changed=new _.Signal(this);this._filterChanged=new _.Signal(this);this._kernelSourceOpened=new _.Signal(this);this.refresh=this.refresh.bind(this);this._refreshDebouncer=new O.Debouncer(this.refresh,B)}get filter(){return this._filter}set filter(e){this._filter=e;this._filterChanged.emit(e);void this._refreshDebouncer.invoke()}get isDisposed(){return this._isDisposed}get kernelSources(){return this._kernelSources}set kernelSources(e){this._kernelSources=e;this.refresh()}get changed(){return this._changed}get filterChanged(){return this._filterChanged}get kernelSourceOpened(){return this._kernelSourceOpened}dispose(){if(this._isDisposed){return}this._isDisposed=true;this._refreshDebouncer.dispose();_.Signal.clearData(this)}open(e){this._kernelSourceOpened.emit(e)}getFilteredKernelSources(){const e=new RegExp(this._filter);return this._kernelSources.filter((t=>e.test(t.name)))}refresh(){if(this._kernelSources){this._filteredKernelSources=this._filter?this.getFilteredKernelSources():this._kernelSources;this._filteredKernelSources.sort(F)}else{this._kernelSources=new Array;this._filteredKernelSources=new Array}this._changed.emit(this._filteredKernelSources)}}class H{constructor(){this._selectedVariable=null;this._state=[];this._variableExpanded=new _.Signal(this);this._changed=new _.Signal(this)}get scopes(){return this._state}set scopes(e){this._state=e;this._changed.emit()}get changed(){return this._changed}get variableExpanded(){return this._variableExpanded}get selectedVariable(){return this._selectedVariable}set selectedVariable(e){this._selectedVariable=e}expandVariable(e){this._variableExpanded.emit(e)}}class W{constructor(){this._disposed=new _.Signal(this);this._isDisposed=false;this._hasRichVariableRendering=false;this._supportCopyToGlobals=false;this._stoppedThreads=new Set;this._title="-";this._titleChanged=new _.Signal(this);this.breakpoints=new P;this.callstack=new L;this.variables=new H;this.sources=new N({currentFrameChanged:this.callstack.currentFrameChanged});this.kernelSources=new z}get disposed(){return this._disposed}get hasRichVariableRendering(){return this._hasRichVariableRendering}set hasRichVariableRendering(e){this._hasRichVariableRendering=e}get supportCopyToGlobals(){return this._supportCopyToGlobals}set supportCopyToGlobals(e){this._supportCopyToGlobals=e}get isDisposed(){return this._isDisposed}get stoppedThreads(){return this._stoppedThreads}set stoppedThreads(e){this._stoppedThreads=e}get title(){return this._title}set title(e){if(e===this._title){return}this._title=e!==null&&e!==void 0?e:"-";this._titleChanged.emit(e)}get titleChanged(){return this._titleChanged}dispose(){if(this._isDisposed){return}this._isDisposed=true;this.kernelSources.dispose();this._disposed.emit()}clear(){this._stoppedThreads.clear();const e=new Map;this.breakpoints.restoreBreakpoints(e);this.callstack.frames=[];this.variables.scopes=[];this.sources.currentSource=null;this.kernelSources.kernelSources=null;this.title="-"}}class V extends c.Panel{constructor(e){super();this._filter=new Set;this._grid=null;this._pending=null;this.commands=e.commands;this.model=e.model;this.themeManager=e.themeManager;this.translator=e.translator;this.model.changed.connect((()=>this.update()),this);this.addClass("jp-DebuggerVariables-body")}get filter(){return this._filter}set filter(e){this._filter=e;this.update()}get scope(){return this._scope}set scope(e){this._scope=e;if(e!=="Globals"){this.addClass("jp-debuggerVariables-local")}else{this.removeClass("jp-debuggerVariables-local")}this.update()}async initialize(){if(this._grid||this._pending){return}const{Grid:e}=await(this._pending=Promise.all([n.e(4470),n.e(8426)]).then(n.bind(n,5011)));const{commands:t,model:i,themeManager:s,translator:o}=this;this._grid=new e({commands:t,model:i,themeManager:s,translator:o});this._grid.addClass("jp-DebuggerVariables-grid");this._pending=null;this.addWidget(this._grid);this.update()}onBeforeShow(e){if(!this._grid&&!this._pending){void this.initialize()}super.onBeforeShow(e)}onUpdateRequest(e){var t;if(this._grid){const{dataModel:e}=this._grid;e.filter=this._filter;e.scope=this._scope;e.setData((t=this.model.scopes)!==null&&t!==void 0?t:[])}super.onUpdateRequest(e)}}var U=n(44539);var q=n(5592);const $="jp-VariableRendererPanel";const K="jp-VariableRendererPanel-renderer";class J extends l.MainAreaWidget{constructor(e){const{dataLoader:t,rendermime:n,translator:i}=e;const s=new c.Panel;const o=new q.PromiseDelegate;super({content:s,reveal:Promise.all([t,o.promise])});this.content.addClass($);this.trans=(i!==null&&i!==void 0?i:f.nullTranslator).load("jupyterlab");this.dataLoader=t;this.renderMime=n;this._dataHash=null;this.refresh().then((()=>{o.resolve()})).catch((e=>o.reject(e)))}async refresh(e=false){let t=await this.dataLoader();if(Object.keys(t.data).length===0){t={data:{"text/plain":this.trans.__("The variable is undefined in the active context.")},metadata:{}}}if(t.data){const n=r(JSON.stringify(t),17);if(e||this._dataHash!==n){if(this.content.layout){this.content.widgets.forEach((e=>{this.content.layout.removeWidget(e)}))}const e=this.renderMime.preferredMimeType(t.data,"any");if(e){const i=this.renderMime.createRenderer(e);i.addClass(K);const s=new U.MimeModel({...t,trusted:true});this._dataHash=n;await i.renderModel(s);this.content.addWidget(i)}else{this._dataHash=null;return Promise.reject("Unable to determine the preferred mime type.")}}}else{this._dataHash=null;return Promise.reject("Unable to get a view on the variable.")}}}class G{constructor(e){var t,n;this._eventMessage=new _.Signal(this);this._isDisposed=false;this._sessionChanged=new _.Signal(this);this._pauseOnExceptionChanged=new _.Signal(this);this._config=e.config;this._session=null;this._specsManager=(t=e.specsManager)!==null&&t!==void 0?t:null;this._model=new Re.Model;this._debuggerSources=(n=e.debuggerSources)!==null&&n!==void 0?n:null;this._trans=(e.translator||f.nullTranslator).load("jupyterlab")}get eventMessage(){return this._eventMessage}get config(){return this._config}get isDisposed(){return this._isDisposed}get isStarted(){var e,t;return(t=(e=this._session)===null||e===void 0?void 0:e.isStarted)!==null&&t!==void 0?t:false}get pauseOnExceptionChanged(){return this._pauseOnExceptionChanged}get model(){return this._model}get session(){return this._session}set session(e){var t;if(this._session===e){return}if(this._session){this._session.dispose()}this._session=e;(t=this._session)===null||t===void 0?void 0:t.eventMessage.connect(((e,t)=>{if(t.event==="stopped"){this._model.stoppedThreads.add(t.body.threadId);void this._getAllFrames()}else if(t.event==="continued"){this._model.stoppedThreads.delete(t.body.threadId);this._clearModel();this._clearSignals()}this._eventMessage.emit(t)}));this._sessionChanged.emit(e)}get sessionChanged(){return this._sessionChanged}dispose(){if(this.isDisposed){return}this._isDisposed=true;_.Signal.clearData(this)}getCodeId(e){var t,n,i,s;try{return this._config.getCodeId(e,(s=(i=(n=(t=this.session)===null||t===void 0?void 0:t.connection)===null||n===void 0?void 0:n.kernel)===null||i===void 0?void 0:i.name)!==null&&s!==void 0?s:"")}catch(o){return""}}hasStoppedThreads(){var e,t;return(t=((e=this._model)===null||e===void 0?void 0:e.stoppedThreads.size)>0)!==null&&t!==void 0?t:false}async isAvailable(e){var t,n,i,s;if(!this._specsManager){return true}await this._specsManager.ready;const o=e===null||e===void 0?void 0:e.kernel;if(!o){return false}const r=o.name;if(!((t=this._specsManager.specs)===null||t===void 0?void 0:t.kernelspecs[r])){return true}return!!((s=(i=(n=this._specsManager.specs.kernelspecs[r])===null||n===void 0?void 0:n.metadata)===null||i===void 0?void 0:i["debugger"])!==null&&s!==void 0?s:false)}async clearBreakpoints(){var e;if(((e=this.session)===null||e===void 0?void 0:e.isStarted)!==true){return}this._model.breakpoints.breakpoints.forEach(((e,t,n)=>{void this._setBreakpoints([],t)}));let t=new Map;this._model.breakpoints.restoreBreakpoints(t)}async continue(){try{if(!this.session){throw new Error("No active debugger session")}await this.session.sendRequest("continue",{threadId:this._currentThread()});this._model.stoppedThreads.delete(this._currentThread());this._clearModel();this._clearSignals()}catch(e){console.error("Error:",e.message)}}async getSource(e){var t,n;if(!this.session){throw new Error("No active debugger session")}const i=await this.session.sendRequest("source",{source:e,sourceReference:(t=e.sourceReference)!==null&&t!==void 0?t:0});return{...i.body,path:(n=e.path)!==null&&n!==void 0?n:""}}async evaluate(e){var t;if(!this.session){throw new Error("No active debugger session")}const n=(t=this.model.callstack.frame)===null||t===void 0?void 0:t.id;const i=await this.session.sendRequest("evaluate",{context:"repl",expression:e,frameId:n});if(!i.success){return null}this._clearModel();await this._getAllFrames();return i.body}async next(){try{if(!this.session){throw new Error("No active debugger session")}await this.session.sendRequest("next",{threadId:this._currentThread()})}catch(e){console.error("Error:",e.message)}}async inspectRichVariable(e,t){if(!this.session){throw new Error("No active debugger session")}const n=await this.session.sendRequest("richInspectVariables",{variableName:e,frameId:t});if(n.success){return n.body}else{throw new Error(n.message)}}async inspectVariable(e){if(!this.session){throw new Error("No active debugger session")}const t=await this.session.sendRequest("variables",{variablesReference:e});if(t.success){return t.body.variables}else{throw new Error(t.message)}}async copyToGlobals(e){if(!this.session){throw new Error("No active debugger session")}if(!this.model.supportCopyToGlobals){throw new Error('The "copyToGlobals" request is not supported by the kernel')}const t=this.model.callstack.frames;this.session.sendRequest("copyToGlobals",{srcVariableName:e,dstVariableName:e,srcFrameId:t[0].id}).then((async()=>{const e=await this._getScopes(t[0]);const n=await Promise.all(e.map((e=>this._getVariables(e))));const i=this._convertScopes(e,n);this._model.variables.scopes=i})).catch((e=>{console.error(e)}))}async displayDefinedVariables(){if(!this.session){throw new Error("No active debugger session")}const e=await this.session.sendRequest("inspectVariables",{});const t=e.body.variables;const n=[{name:this._trans.__("Globals"),variables:t}];this._model.variables.scopes=n}async displayModules(){if(!this.session){throw new Error("No active debugger session")}const e=await this.session.sendRequest("modules",{});this._model.kernelSources.kernelSources=e.body.modules.map((e=>({name:e.name,path:e.path})))}async restart(){const{breakpoints:e}=this._model.breakpoints;await this.stop();await this.start();await this._restoreBreakpoints(e)}async restoreState(e){var t,n,i,s,o,r,a,l,d,c;if(!this.model||!this.session){return}const h=await this.session.restoreState();const{body:u}=h;const p=this._mapBreakpoints(u.breakpoints);const m=new Set(u.stoppedThreads);this._model.hasRichVariableRendering=u.richRendering===true;this._model.supportCopyToGlobals=u.copyToGlobals===true;this._config.setHashParams({kernel:(s=(i=(n=(t=this.session)===null||t===void 0?void 0:t.connection)===null||n===void 0?void 0:n.kernel)===null||i===void 0?void 0:i.name)!==null&&s!==void 0?s:"",method:u.hashMethod,seed:u.hashSeed});this._config.setTmpFileParams({kernel:(l=(a=(r=(o=this.session)===null||o===void 0?void 0:o.connection)===null||r===void 0?void 0:r.kernel)===null||a===void 0?void 0:a.name)!==null&&l!==void 0?l:"",prefix:u.tmpFilePrefix,suffix:u.tmpFileSuffix});this._model.stoppedThreads=m;if(!this.isStarted&&(e||m.size!==0)){await this.start()}if(this.isStarted||e){this._model.title=this.isStarted?((c=(d=this.session)===null||d===void 0?void 0:d.connection)===null||c===void 0?void 0:c.name)||"-":"-"}if(this._debuggerSources){const e=this._filterBreakpoints(p);this._model.breakpoints.restoreBreakpoints(e)}else{this._model.breakpoints.restoreBreakpoints(p)}if(m.size!==0){await this._getAllFrames()}else if(this.isStarted){this._clearModel();this._clearSignals()}if(this.session.currentExceptionFilters){await this.pauseOnExceptions(this.session.currentExceptionFilters)}}start(){if(!this.session){throw new Error("No active debugger session")}return this.session.start()}async pause(){try{if(!this.session){throw new Error("No active debugger session")}await this.session.sendRequest("pause",{threadId:this._currentThread()})}catch(e){console.error("Error:",e.message)}}async stepIn(){try{if(!this.session){throw new Error("No active debugger session")}await this.session.sendRequest("stepIn",{threadId:this._currentThread()})}catch(e){console.error("Error:",e.message)}}async stepOut(){try{if(!this.session){throw new Error("No active debugger session")}await this.session.sendRequest("stepOut",{threadId:this._currentThread()})}catch(e){console.error("Error:",e.message)}}async stop(){if(!this.session){throw new Error("No active debugger session")}await this.session.stop();if(this._model){this._model.clear()}}async updateBreakpoints(e,t,n){var i;if(!((i=this.session)===null||i===void 0?void 0:i.isStarted)){return}if(!n){n=(await this._dumpCell(e)).body.sourcePath}const s=await this.session.restoreState();const o=t.filter((({line:e})=>typeof e==="number")).map((({line:e})=>({line:e})));const r=this._mapBreakpoints(s.body.breakpoints);if(this._debuggerSources){const e=this._filterBreakpoints(r);this._model.breakpoints.restoreBreakpoints(e)}else{this._model.breakpoints.restoreBreakpoints(r)}let a=new Set;const l=await this._setBreakpoints(o,n);const d=l.body.breakpoints.filter(((e,t,n)=>{const i=n.findIndex((t=>t.line===e.line))>-1;const s=!a.has(e.line);a.add(e.line);return i&&s}));this._model.breakpoints.setBreakpoints(n,d);await this.session.sendRequest("configurationDone",{})}pauseOnExceptionsIsValid(){var e,t;if(this.isStarted){if(((t=(e=this.session)===null||e===void 0?void 0:e.exceptionBreakpointFilters)===null||t===void 0?void 0:t.length)!==0){return true}}return false}async pauseOnExceptionsFilter(e){var t;if(!((t=this.session)===null||t===void 0?void 0:t.isStarted)){return}let n=this.session.currentExceptionFilters;if(this.session.isPausingOnException(e)){const t=n.indexOf(e);n.splice(t,1)}else{n===null||n===void 0?void 0:n.push(e)}await this.pauseOnExceptions(n)}async pauseOnExceptions(e){var t,n;if(!((t=this.session)===null||t===void 0?void 0:t.isStarted)){return}const i=((n=this.session.exceptionBreakpointFilters)===null||n===void 0?void 0:n.map((e=>e.filter)))||[];let s={filters:[]};e.forEach((e=>{if(i.includes(e)){s.filters.push(e)}}));this.session.currentExceptionFilters=s.filters;await this.session.sendRequest("setExceptionBreakpoints",s);this._pauseOnExceptionChanged.emit()}getDebuggerState(){var e,t,n,i,s,o,r;const a=this._model.breakpoints.breakpoints;let l=[];if(this._debuggerSources){for(const d of a.keys()){const a=this._debuggerSources.find({focus:false,kernel:(i=(n=(t=(e=this.session)===null||e===void 0?void 0:e.connection)===null||t===void 0?void 0:t.kernel)===null||n===void 0?void 0:n.name)!==null&&i!==void 0?i:"",path:(r=(o=(s=this._session)===null||s===void 0?void 0:s.connection)===null||o===void 0?void 0:o.path)!==null&&r!==void 0?r:"",source:d});const c=a.map((e=>e.src.getSource()));l=l.concat(c)}}return{cells:l,breakpoints:a}}async restoreDebuggerState(e){var t,n,i,s;await this.start();for(const c of e.cells){await this._dumpCell(c)}const o=new Map;const r=(s=(i=(n=(t=this.session)===null||t===void 0?void 0:t.connection)===null||n===void 0?void 0:n.kernel)===null||i===void 0?void 0:i.name)!==null&&s!==void 0?s:"";const{prefix:a,suffix:l}=this._config.getTmpFileParams(r);for(const c of e.breakpoints){const[e,t]=c;const n=e.substr(0,e.length-l.length);const i=n.substr(n.lastIndexOf("/")+1);const s=a.concat(i).concat(l);o.set(s,t)}await this._restoreBreakpoints(o);const d=await this.session.sendRequest("configurationDone",{});await this.restoreState(false);return d.success}_clearModel(){this._model.callstack.frames=[];this._model.variables.scopes=[]}_clearSignals(){this._model.callstack.currentFrameChanged.disconnect(this._onCurrentFrameChanged,this);this._model.variables.variableExpanded.disconnect(this._onVariableExpanded,this)}_convertScopes(e,t){if(!t||!e){return[]}return e.map(((e,n)=>({name:e.name,variables:t[n].map((e=>({...e})))})))}_currentThread(){return 1}async _dumpCell(e){if(!this.session){throw new Error("No active debugger session")}return this.session.sendRequest("dumpCell",{code:e})}_filterBreakpoints(e){if(!this._debuggerSources){return e}let t=new Map;for(const n of e){const[e,i]=n;i.forEach((()=>{var n,s,o,r,a,l,d;this._debuggerSources.find({focus:false,kernel:(r=(o=(s=(n=this.session)===null||n===void 0?void 0:n.connection)===null||s===void 0?void 0:s.kernel)===null||o===void 0?void 0:o.name)!==null&&r!==void 0?r:"",path:(d=(l=(a=this._session)===null||a===void 0?void 0:a.connection)===null||l===void 0?void 0:l.path)!==null&&d!==void 0?d:"",source:e}).forEach((()=>{if(i.length>0){t.set(e,i)}}))}))}return t}async _getAllFrames(){this._model.callstack.currentFrameChanged.connect(this._onCurrentFrameChanged,this);this._model.variables.variableExpanded.connect(this._onVariableExpanded,this);const e=await this._getFrames(this._currentThread());this._model.callstack.frames=e}async _getFrames(e){if(!this.session){throw new Error("No active debugger session")}const t=await this.session.sendRequest("stackTrace",{threadId:e});const n=t.body.stackFrames;return n}async _getScopes(e){if(!this.session){throw new Error("No active debugger session")}if(!e){return[]}const t=await this.session.sendRequest("scopes",{frameId:e.id});return t.body.scopes}async _getVariables(e){if(!this.session){throw new Error("No active debugger session")}if(!e){return[]}const t=await this.session.sendRequest("variables",{variablesReference:e.variablesReference});return t.body.variables}_mapBreakpoints(e){if(!e.length){return new Map}return e.reduce(((e,t)=>{const{breakpoints:n,source:i}=t;e.set(i,n.map((e=>({...e,source:{path:i},verified:true}))));return e}),new Map)}async _onCurrentFrameChanged(e,t){if(!t){return}const n=await this._getScopes(t);const i=await Promise.all(n.map((e=>this._getVariables(e))));const s=this._convertScopes(n,i);this._model.variables.scopes=s}async _onVariableExpanded(e,t){if(!this.session){throw new Error("No active debugger session")}const n=await this.session.sendRequest("variables",{variablesReference:t.variablesReference});let i={...t,expanded:true};n.body.variables.forEach((e=>{i={[e.name]:e,...i}}));const s=this._model.variables.scopes.map((e=>{const n=e.variables.findIndex((e=>e.variablesReference===t.variablesReference));e.variables[n]=i;return{...e}}));this._model.variables.scopes=[...s];return n.body.variables}async _setBreakpoints(e,t){if(!this.session){throw new Error("No active debugger session")}return await this.session.sendRequest("setBreakpoints",{breakpoints:e,source:{path:t},sourceModified:false})}async _restoreBreakpoints(e){for(const[t,n]of e){await this._setBreakpoints(n.filter((({line:e})=>typeof e==="number")).map((({line:e})=>({line:e}))),t)}this._model.breakpoints.restoreBreakpoints(e)}}class Y{constructor(e){this._seq=0;this._ready=new q.PromiseDelegate;this._isDisposed=false;this._isStarted=false;this._exceptionPaths=[];this._exceptionBreakpointFilters=[];this._currentExceptionFilters={};this._disposed=new _.Signal(this);this._eventMessage=new _.Signal(this);this.connection=e.connection;this._config=e.config;this.translator=e.translator||f.nullTranslator}get isDisposed(){return this._isDisposed}get capabilities(){return this._capabilities}get disposed(){return this._disposed}get connection(){return this._connection}set connection(e){var t,n;if(this._connection){this._connection.iopubMessage.disconnect(this._handleEvent,this)}this._connection=e;if(!this._connection){this._isStarted=false;return}this._connection.iopubMessage.connect(this._handleEvent,this);this._ready=new q.PromiseDelegate;const i=(n=(t=this.connection)===null||t===void 0?void 0:t.kernel)===null||n===void 0?void 0:n.requestDebug({type:"request",seq:0,command:"debugInfo"});if(i){i.onReply=e=>{this._ready.resolve();i.dispose()}}}get isStarted(){return this._isStarted}get exceptionPaths(){return this._exceptionPaths}get exceptionBreakpointFilters(){return this._exceptionBreakpointFilters}get currentExceptionFilters(){var e,t,n;const i=(n=(t=(e=this.connection)===null||e===void 0?void 0:e.kernel)===null||t===void 0?void 0:t.name)!==null&&n!==void 0?n:"";if(!i){return[]}const s=this._config.getTmpFileParams(i);if(!s){return[]}let o=s.prefix;if(Object.keys(this._currentExceptionFilters).includes(o)){return this._currentExceptionFilters[o]}return[]}set currentExceptionFilters(e){var t,n,i;const s=(i=(n=(t=this.connection)===null||t===void 0?void 0:t.kernel)===null||n===void 0?void 0:n.name)!==null&&i!==void 0?i:"";if(!s){return}const o=this._config.getTmpFileParams(s);if(!o){return}let r=o.prefix;if(e===null){if(Object.keys(this._currentExceptionFilters).includes(r)){delete this._currentExceptionFilters[r]}}else{this._currentExceptionFilters[r]=e}}get eventMessage(){return this._eventMessage}dispose(){if(this._isDisposed){return}this._isDisposed=true;this._disposed.emit();_.Signal.clearData(this)}async start(){var e,t,n,i;const s=await this.sendRequest("initialize",{clientID:"jupyterlab",clientName:"JupyterLab",adapterID:(n=(t=(e=this.connection)===null||e===void 0?void 0:e.kernel)===null||t===void 0?void 0:t.name)!==null&&n!==void 0?n:"",pathFormat:"path",linesStartAt1:true,columnsStartAt1:true,supportsVariableType:true,supportsVariablePaging:true,supportsRunInTerminalRequest:true,locale:document.documentElement.lang});if(!s.success){throw new Error(`Could not start the debugger: ${s.message}`)}this._capabilities=s.body;this._isStarted=true;this._exceptionBreakpointFilters=(i=s.body)===null||i===void 0?void 0:i.exceptionBreakpointFilters;await this.sendRequest("attach",{})}async stop(){this._isStarted=false;await this.sendRequest("disconnect",{restart:false,terminateDebuggee:false})}async restoreState(){var e;const t=await this.sendRequest("debugInfo",{});this._isStarted=t.body.isStarted;this._exceptionPaths=(e=t.body)===null||e===void 0?void 0:e.exceptionPaths;return t}isPausingOnException(e){var t,n;if(e){return(n=(t=this.currentExceptionFilters)===null||t===void 0?void 0:t.includes(e))!==null&&n!==void 0?n:false}else{return this.currentExceptionFilters.length>0}}async sendRequest(e,t){await this._ready.promise;const n=await this._sendDebugMessage({type:"request",seq:this._seq++,command:e,arguments:t});return n.content}_handleEvent(e,t){const n=t.header.msg_type;if(n!=="debug_event"){return}const i=t.content;this._eventMessage.emit(i)}async _sendDebugMessage(e){var t;const n=(t=this.connection)===null||t===void 0?void 0:t.kernel;if(!n){return Promise.reject(new Error("A kernel is required to send debug messages."))}const i=new q.PromiseDelegate;const s=n.requestDebug(e);s.onReply=e=>{i.resolve(e)};await s.done;return i.promise}}var X=n(44914);var Q=n.n(X);class Z extends i.ReactWidget{constructor(e){super();this._model=e;this.addClass("jp-DebuggerBreakpoints-body")}render(){return Q().createElement(ee,{model:this._model})}}const ee=({model:e})=>{const[t,n]=(0,X.useState)(Array.from(e.breakpoints.entries()));(0,X.useEffect)((()=>{const t=(t,i)=>{n(Array.from(e.breakpoints.entries()))};const i=t=>{n(Array.from(e.breakpoints.entries()))};e.changed.connect(t);e.restored.connect(i);return()=>{e.changed.disconnect(t);e.restored.disconnect(i)}}));return Q().createElement(Q().Fragment,null,t.map((t=>Q().createElement(te,{key:t[0],breakpoints:t[1],model:e}))))};const te=({breakpoints:e,model:t})=>Q().createElement(Q().Fragment,null,e.sort(((e,t)=>{var n,i;return((n=e.line)!==null&&n!==void 0?n:0)-((i=t.line)!==null&&i!==void 0?i:0)})).map(((e,n)=>{var i,s;return Q().createElement(ne,{key:((s=(i=e.source)===null||i===void 0?void 0:i.path)!==null&&s!==void 0?s:"")+n,breakpoint:e,model:t})})));const ne=({breakpoint:e,model:t})=>{var n,i,s;const o=e=>e[0]==="/"?e.slice(1)+"/":e;return Q().createElement("div",{className:"jp-DebuggerBreakpoint",onClick:()=>t.clicked.emit(e),title:(n=e.source)===null||n===void 0?void 0:n.path},Q().createElement("span",{className:"jp-DebuggerBreakpoint-marker"},"●"),Q().createElement("span",{className:"jp-DebuggerBreakpoint-source jp-left-truncated"},o((s=(i=e.source)===null||i===void 0?void 0:i.path)!==null&&s!==void 0?s:"")),Q().createElement("span",{className:"jp-DebuggerBreakpoint-line"},e.line))};const ie="jp-debugger-pauseOnExceptions";const se="jp-PauseOnExceptions";const oe="jp-PauseOnExceptions-menu";class re extends i.ToolbarButton{constructor(e){super();this.onclick=()=>{this._menu.open(this.node.getBoundingClientRect().left,this.node.getBoundingClientRect().bottom)};this._menu=new ae({service:e.service,commands:{registry:e.commands.registry,pauseOnExceptions:e.commands.pauseOnExceptions}});this.node.className=ie;this._props=e;this._props.className=se;this._props.service.eventMessage.connect(((e,t)=>{if(t.event==="initialized"||t.event==="terminated"){this.onChange()}}),this);this._props.enabled=this._props.service.pauseOnExceptionsIsValid();this._props.service.pauseOnExceptionChanged.connect(this.onChange,this)}onChange(){var e;const t=this._props.service.session;const n=t===null||t===void 0?void 0:t.exceptionBreakpointFilters;this._props.className=se;if(((e=this._props.service.session)===null||e===void 0?void 0:e.isStarted)&&n){this._props.pressed=t.isPausingOnException();this._props.enabled=true}else{this._props.enabled=false}this.update()}render(){return X.createElement(i.ToolbarButtonComponent,{...this._props,onClick:this.onclick})}}class ae extends i.MenuSvg{constructor(e){super({commands:e.commands.registry});this._service=e.service;this._command=e.commands.pauseOnExceptions;e.service.eventMessage.connect(((e,t)=>{if(t.event==="initialized"){this._build()}}),this);this._build();this.addClass(oe)}_build(){var e,t;this.clearItems();const n=(t=(e=this._service.session)===null||e===void 0?void 0:e.exceptionBreakpointFilters)!==null&&t!==void 0?t:[];n.map(((e,t)=>{this.addItem({command:this._command,args:{filter:e.filter,description:e.description}})}))}}class le extends i.PanelWithToolbar{constructor(e){var t;super(e);this.clicked=new _.Signal(this);const{model:n,service:s,commands:o}=e;const r=((t=e.translator)!==null&&t!==void 0?t:f.nullTranslator).load("jupyterlab");this.title.label=r.__("Breakpoints");const a=new Z(n);this.toolbar.node.setAttribute("aria-label",r.__("Breakpoints panel toolbar"));this.toolbar.addItem("pauseOnException",new re({service:s,commands:o,icon:i.exceptionsIcon,tooltip:r.__("Pause on exception filter")}));this.toolbar.addItem("closeAll",new i.ToolbarButton({icon:i.closeAllIcon,onClick:async()=>{if(n.breakpoints.size===0){return}const e=await(0,l.showDialog)({title:r.__("Remove All Breakpoints"),body:r.__("Are you sure you want to remove all breakpoints?"),buttons:[l.Dialog.okButton({label:r.__("Remove breakpoints")}),l.Dialog.cancelButton()],hasClose:true});if(e.button.accept){return s.clearBreakpoints()}},tooltip:r.__("Remove All Breakpoints")}));this.addWidget(a);this.addClass("jp-DebuggerBreakpoints")}}class de extends i.ReactWidget{constructor(e){super();this._model=e;this.addClass("jp-DebuggerCallstack-body")}render(){return Q().createElement(ce,{model:this._model})}}const ce=({model:e})=>{const[t,n]=(0,X.useState)(e.frames);const[i,s]=(0,X.useState)(e.frame);const o=t=>{s(t);e.frame=t};(0,X.useEffect)((()=>{const t=()=>{s(e.frame);n(e.frames)};e.framesChanged.connect(t);return()=>{e.framesChanged.disconnect(t)}}),[e]);const r=e=>{var t;const n=((t=e.source)===null||t===void 0?void 0:t.path)||"";const i=b.PathExt.basename(b.PathExt.dirname(n));const s=b.PathExt.basename(n);const o=b.PathExt.join(i,s);return`${o}:${e.line}`};return Q().createElement("ul",null,t.map((e=>{var t;return Q().createElement("li",{key:e.id,onClick:()=>o(e),className:(i===null||i===void 0?void 0:i.id)===e.id?"selected jp-DebuggerCallstackFrame":"jp-DebuggerCallstackFrame"},Q().createElement("span",{className:"jp-DebuggerCallstackFrame-name"},e.name),Q().createElement("span",{className:"jp-DebuggerCallstackFrame-location",title:(t=e.source)===null||t===void 0?void 0:t.path},r(e)))})))};class he extends i.PanelWithToolbar{constructor(e){var t;super(e);const{commands:n,model:s}=e;const o=((t=e.translator)!==null&&t!==void 0?t:f.nullTranslator).load("jupyterlab");this.title.label=o.__("Callstack");const r=new de(s);this.toolbar.node.setAttribute("aria-label",o.__("Callstack panel toolbar"));this.toolbar.addItem("continue",new i.CommandToolbarButton({commands:n.registry,id:n.continue,label:""}));this.toolbar.addItem("terminate",new i.CommandToolbarButton({commands:n.registry,id:n.terminate,label:""}));this.toolbar.addItem("step-over",new i.CommandToolbarButton({commands:n.registry,id:n.next,label:""}));this.toolbar.addItem("step-in",new i.CommandToolbarButton({commands:n.registry,id:n.stepIn,label:""}));this.toolbar.addItem("step-out",new i.CommandToolbarButton({commands:n.registry,id:n.stepOut,label:""}));this.toolbar.addItem("evaluate",new i.CommandToolbarButton({commands:n.registry,id:n.evaluate,label:""}));this.addWidget(r);this.addClass("jp-DebuggerCallstack")}}class ue extends c.Widget{constructor(e){super();this._model=e.model;this._debuggerService=e.service;this._mimeTypeService=e.editorServices.mimeTypeService;const t=new Re.ReadOnlyEditorFactory({editorServices:e.editorServices});this._editor=t.createNewEditor({content:"",mimeType:"",path:""});this._editor.hide();this._model.currentFrameChanged.connect((async(e,t)=>{if(!t){this._clearEditor();return}void this._showSource(t)}));const n=new c.PanelLayout;n.addWidget(this._editor);this.layout=n;this.addClass("jp-DebuggerSources-body")}dispose(){var e;if(this.isDisposed){return}(e=this._editorHandler)===null||e===void 0?void 0:e.dispose();_.Signal.clearData(this);super.dispose()}_clearEditor(){this._model.currentSource=null;this._editor.hide()}async _showSource(e){var t;const n=(t=e.source)===null||t===void 0?void 0:t.path;const i=await this._debuggerService.getSource({sourceReference:0,path:n});if(!(i===null||i===void 0?void 0:i.content)){this._clearEditor();return}if(this._editorHandler){this._editorHandler.dispose()}const{content:s,mimeType:o}=i;const r=o||this._mimeTypeService.getMimeTypeByFilePath(n!==null&&n!==void 0?n:"");this._editor.model.sharedModel.setSource(s);this._editor.model.mimeType=r;this._editorHandler=new S({debuggerService:this._debuggerService,editorReady:()=>Promise.resolve(this._editor.editor),getEditor:()=>this._editor.editor,path:n,src:this._editor.model.sharedModel});this._model.currentSource={content:s,mimeType:r,path:n!==null&&n!==void 0?n:""};requestAnimationFrame((()=>{S.showCurrentLine(this._editor.editor,e.line)}));this._editor.show()}}const pe=({model:e,trans:t})=>Q().createElement(i.UseSignal,{signal:e.currentSourceChanged,initialSender:e},(e=>{var n,i;return Q().createElement("span",{onClick:t=>{if(t.ctrlKey){e===null||e===void 0?void 0:e.open()}},title:t.__("Ctrl + click to open in the Main Area"),className:"jp-DebuggerSources-header-path"},(i=(n=e===null||e===void 0?void 0:e.currentSource)===null||n===void 0?void 0:n.path)!==null&&i!==void 0?i:"")}));class me extends i.PanelWithToolbar{constructor(e){var t;super();const{model:n,service:s,editorServices:o}=e;const r=((t=e.translator)!==null&&t!==void 0?t:f.nullTranslator).load("jupyterlab");this.title.label=r.__("Source");this.toolbar.addClass("jp-DebuggerSources-header");this.toolbar.node.setAttribute("aria-label",r.__("Sources preview panel toolbar"));const a=new ue({service:s,model:n,editorServices:o});this.toolbar.addItem("open",new i.ToolbarButton({icon:i.viewBreakpointIcon,onClick:()=>n.open(),tooltip:r.__("Open in the Main Area")}));const l=i.ReactWidget.create(Q().createElement(pe,{model:n,trans:r}));this.toolbar.addItem("sourcePath",l);this.addClass("jp-DebuggerSources-header");this.addWidget(a);this.addClass("jp-DebuggerSources")}}var ge=n(54158);const fe=e=>{const t=t=>{const n=t.target.value;e.model.filter=n};return Q().createElement(ge.Search,{onChange:t,placeholder:e.trans.__("Filter the kernel sources"),value:e.model.filter})};const ve=e=>Q().createElement(i.UseSignal,{signal:e.model.filterChanged,initialArgs:e.model.filter},(t=>Q().createElement(fe,{model:e.model,trans:e.trans})));const _e="jp-DebuggerKernelSource-filterBox";const be="jp-DebuggerKernelSource-filterBox-hidden";const ye="jp-DebuggerKernelSource-source";class we extends i.ReactWidget{constructor(e){var t;super();this._showFilter=false;this._model=e.model;this._debuggerService=e.service;this._trans=((t=e.translator)!==null&&t!==void 0?t:f.nullTranslator).load("jupyterlab");this.addClass("jp-DebuggerKernelSources-body")}render(){let e=_e;if(!this._showFilter){e+=" "+be}return Q().createElement(Q().Fragment,null,Q().createElement("div",{className:e,key:"filter"},Q().createElement(ve,{model:this._model,trans:this._trans})),Q().createElement(i.UseSignal,{signal:this._model.changed},((e,t)=>{const n={};return(t!==null&&t!==void 0?t:[]).map((e=>{var t;const s=e.name;const o=e.path;const r=s+(n[s]=((t=n[s])!==null&&t!==void 0?t:0)+1).toString();return Q().createElement("div",{key:r,title:o,className:ye,onClick:()=>{this._debuggerService.getSource({sourceReference:0,path:o}).then((e=>{this._model.open(e)})).catch((e=>{void(0,l.showErrorMessage)(this._trans.__("Fail to get source"),this._trans.__("Fail to get '%1' source:\n%2",o,e))}))}},Q().createElement(i.LabIcon.resolveReact,{icon:i.openKernelSourceIcon,iconClass:(0,i.classes)("jp-Icon"),tag:null}),s)}))})))}toggleFilterbox(){this._showFilter=!this._showFilter;this.update()}}class Ce extends i.PanelWithToolbar{constructor(e){var t;super();const{model:n,service:s}=e;this._model=n;const o=((t=e.translator)!==null&&t!==void 0?t:f.nullTranslator).load("jupyterlab");this.title.label=o.__("Kernel Sources");this.toolbar.addClass("jp-DebuggerKernelSources-header");this.toolbar.node.setAttribute("aria-label",o.__("Kernel sources panel toolbar"));this._body=new we({service:s,model:n,translator:e.translator});this.toolbar.addItem("open-filter",new i.ToolbarButton({icon:i.searchIcon,onClick:async()=>{this._body.toggleFilterbox()},tooltip:o.__("Toggle search filter")}));this.toolbar.addItem("refresh",new i.ToolbarButton({icon:i.refreshIcon,onClick:()=>{this._model.kernelSources=[];void s.displayModules().catch((e=>{void(0,l.showErrorMessage)(o.__("Fail to get kernel sources"),o.__("Fail to get kernel sources:\n%2",e))}))},tooltip:o.__("Refresh kernel sources")}));this.addClass("jp-DebuggerKernelSources-header");this.addWidget(this._body);this.addClass("jp-DebuggerKenelSources")}set filter(e){this._model.filter=e}}const xe=({model:e,tree:t,grid:n,trans:s})=>{const[o,r]=(0,X.useState)("-");const a=e.scopes;const l=e=>{const i=e.target.value;r(i);t.scope=i;n.scope=i};return Q().createElement(i.HTMLSelect,{onChange:l,value:o,"aria-label":s.__("Scope")},a.map((e=>Q().createElement("option",{key:e.name,value:e.name},s.__(e.name)))))};class Se extends i.ReactWidget{constructor(e){super();const{translator:t,model:n,tree:i,grid:s}=e;this._model=n;this._tree=i;this._grid=s;this._trans=(t||f.nullTranslator).load("jupyterlab")}render(){return Q().createElement(i.UseSignal,{signal:this._model.changed,initialSender:this._model},(()=>Q().createElement(xe,{model:this._model,trans:this._trans,tree:this._tree,grid:this._grid})))}}var ke=n(34236);class je extends i.ReactWidget{constructor(e){super();this._scope="";this._scopes=[];this._filter=new Set;this._commands=e.commands;this._service=e.service;this._translator=e.translator;const t=this.model=e.model;t.changed.connect(this._updateScopes,this);this.addClass("jp-DebuggerVariables-body")}render(){var e;const t=(e=this._scopes.find((e=>e.name===this._scope)))!==null&&e!==void 0?e:this._scopes[0];const n=e=>{this.model.selectedVariable=e};if((t===null||t===void 0?void 0:t.name)!=="Globals"){this.addClass("jp-debuggerVariables-local")}else{this.removeClass("jp-debuggerVariables-local")}return t?Q().createElement(Q().Fragment,null,Q().createElement(ge.TreeView,{className:"jp-TreeView"},Q().createElement(Ie,{key:t.name,commands:this._commands,service:this._service,data:t.variables,filter:this._filter,translator:this._translator,handleSelectVariable:n}))):Q().createElement("div",null)}set filter(e){this._filter=e;this.update()}set scope(e){this._scope=e;this.update()}_updateScopes(e){if(ke.ArrayExt.shallowEqual(this._scopes,e.scopes)){return}this._scopes=e.scopes;this.update()}}const Ie=e=>{const{commands:t,data:n,service:i,filter:s,translator:o,handleSelectVariable:r}=e;const[a,l]=(0,X.useState)(n);(0,X.useEffect)((()=>{l(n)}),[n]);return Q().createElement(Q().Fragment,null,a.filter((e=>!(s||new Set).has(e.evaluateName||""))).map((e=>{const n=`${e.name}-${e.evaluateName}-${e.type}-${e.value}-${e.variablesReference}`;return Q().createElement(Te,{key:n,commands:t,data:e,service:i,filter:s,translator:o,onSelect:r})})))};function Ee(e){if(e.type==="float"&&(e.value=="inf"||e.value=="-inf")){return e.value}const t=De(e);if(e.type==="float"&&isNaN(t)){return"NaN"}return t}const Te=e=>{var t,n;const{commands:s,data:o,service:r,filter:a,translator:l,onSelect:d}=e;const[c]=(0,X.useState)(o);const[h,u]=(0,X.useState)(false);const[p,m]=(0,X.useState)(false);const[g,v]=(0,X.useState)(null);const _=(0,X.useMemo)((()=>(l!==null&&l!==void 0?l:f.nullTranslator).load("jupyterlab")),[l]);const b=d!==null&&d!==void 0?d:()=>void 0;const y=(0,X.useMemo)((()=>c.variablesReference!==0||c.type==="function"),[c.variablesReference,c.type]);const w=(0,X.useMemo)((()=>Ee(c)),[c]);const C=(0,X.useMemo)((()=>!["special variables","protected variables","function variables","class variables"].includes(c.name)),[c.name]);const x=(0,X.useMemo)((()=>{var e;return!r.model.hasRichVariableRendering||!s.isEnabled(Re.CommandIDs.renderMimeVariable,{name:c.name,frameID:(e=r.model.callstack.frame)===null||e===void 0?void 0:e.id})}),[r.model.hasRichVariableRendering,c.name,(t=r.model.callstack.frame)===null||t===void 0?void 0:t.id]);const S=(0,X.useCallback)((async()=>{if(y&&!g){v(await r.inspectVariable(c.variablesReference))}}),[y,r,c.variablesReference,g]);const k=(0,X.useCallback)((async e=>{const t=(0,i.getTreeItemElement)(e.target);if(e.currentTarget!==t){return}if(!y){return}m(!p)}),[y,p]);const j=(0,X.useCallback)((e=>{if(e.currentTarget===e.detail&&e.detail.selected){b(c)}}),[c]);const I=(0,X.useCallback)((()=>{var e;s.execute(Re.CommandIDs.renderMimeVariable,{name:c.name,frameID:(e=r.model.callstack.frame)===null||e===void 0?void 0:e.id}).catch((e=>{console.error(`Failed to render variable ${c===null||c===void 0?void 0:c.name}`,e)}))}),[s,c.name,(n=r.model.callstack.frame)===null||n===void 0?void 0:n.id]);const E=(0,X.useCallback)((e=>{const t=(0,i.getTreeItemElement)(e.target);if(e.currentTarget!==t){return}b(c)}),[c]);return Q().createElement(ge.TreeItem,{className:"jp-TreeItem nested",expanded:p,onSelect:j,onExpand:S,onClick:e=>k(e),onContextMenu:E,onKeyDown:e=>{if(e.key=="Enter"){if(C&&h){b(c);I()}}},onFocus:e=>{u(!e.defaultPrevented);e.preventDefault()},onBlur:e=>{u(false)},onMouseOver:e=>{u(!e.defaultPrevented);e.preventDefault()},onMouseLeave:e=>{u(false)}},Q().createElement("span",{className:"jp-DebuggerVariables-name"},c.name),w&&Q().createElement("span",{className:"jp-DebuggerVariables-detail"},w),C&&h&&Q().createElement(ge.Button,{className:"jp-DebuggerVariables-renderVariable",appearance:"stealth",slot:"end",disabled:x,onClick:e=>{e.stopPropagation();I()},title:_.__("Render variable: %1",c===null||c===void 0?void 0:c.name)},Q().createElement(i.searchIcon.react,{tag:null})),g?Q().createElement(Ie,{key:c.name,commands:s,data:g,service:r,filter:a,translator:l,handleSelectVariable:d}):y&&Q().createElement(ge.TreeItem,null))};class Me extends i.PanelWithToolbar{constructor(e){super(e);const{model:t,service:n,commands:s,themeManager:o}=e;const r=e.translator||f.nullTranslator;const a=r.load("jupyterlab");this.title.label=a.__("Variables");this.toolbar.addClass("jp-DebuggerVariables-toolbar");this.toolbar.node.setAttribute("aria-label",a.__("Variables toolbar"));this._tree=new je({model:t,service:n,commands:s,translator:r});this._table=new V({model:t,commands:s,themeManager:o,translator:r});this._table.hide();this.toolbar.addItem("scope-switcher",new Se({translator:r,model:t,tree:this._tree,grid:this._table}));const l=()=>{if(this._table.isHidden){this._tree.hide();this._table.show();this.node.setAttribute("data-jp-table","true");h("table")}else{this._tree.show();this._table.hide();this.node.removeAttribute("data-jp-table");h("tree")}this.update()};const d=new i.ToolbarButton({icon:i.treeViewIcon,className:"jp-TreeView-Button",onClick:l,tooltip:a.__("Tree View")});const c=new i.ToolbarButton({icon:i.tableRowsIcon,className:"jp-TableView-Button",onClick:l,tooltip:a.__("Table View")});const h=e=>{c.pressed=e!=="tree";d.pressed=!c.pressed};h(this._table.isHidden?"tree":"table");this.toolbar.addItem("view-VariableTreeView",d);this.toolbar.addItem("view-VariableTableView",c);this.addWidget(this._tree);this.addWidget(this._table);this.addClass("jp-DebuggerVariables")}set filter(e){this._tree.filter=e;this._table.filter=e}onResize(e){super.onResize(e);this._resizeBody(e)}_resizeBody(e){const t=e.height-this.toolbar.node.offsetHeight;this._tree.node.style.height=`${t}px`}}const De=e=>{var t,n;const{type:i,value:s}=e;switch(i){case"int":return parseInt(s,10);case"float":return parseFloat(s);case"bool":return s;case"str":if((n=(t=e.presentationHint)===null||t===void 0?void 0:t.attributes)===null||n===void 0?void 0:n.includes("rawString")){return s.slice(1,s.length-1)}else{return s}default:return i!==null&&i!==void 0?i:s}};class Ae extends i.SidePanel{constructor(e){const t=e.translator||f.nullTranslator;super({translator:t});this.id="jp-debugger-sidebar";this.title.icon=i.bugIcon;this.addClass("jp-DebuggerSidebar");const{callstackCommands:n,breakpointsCommands:s,editorServices:o,service:r,themeManager:a}=e;const l=r.model;this.variables=new Me({model:l.variables,commands:n.registry,service:r,themeManager:a,translator:t});this.callstack=new he({commands:n,model:l.callstack,translator:t});this.breakpoints=new le({service:r,commands:s,model:l.breakpoints,translator:t});this.sources=new me({model:l.sources,service:r,editorServices:o,translator:t});this.kernelSources=new Ce({model:l.kernelSources,service:r,translator:t});const d=new Ae.Header;this.header.addWidget(d);l.titleChanged.connect(((e,t)=>{d.title.label=t}));this.content.addClass("jp-DebuggerSidebar-body");this.addWidget(this.variables);this.addWidget(this.callstack);this.addWidget(this.breakpoints);this.addWidget(this.sources);this.addWidget(this.kernelSources)}}(function(e){class t extends c.Widget{constructor(){super({node:Pe.createHeader()});this.title.changed.connect((e=>{this.node.textContent=this.title.label}))}}e.Header=t})(Ae||(Ae={}));var Pe;(function(e){function t(){const e=document.createElement("h2");e.textContent="-";e.classList.add("jp-text-truncated");return e}e.createHeader=t})(Pe||(Pe={}));class Le{constructor(e){var t,n,i;this._config=e.config;this._shell=e.shell;this._notebookTracker=(t=e.notebookTracker)!==null&&t!==void 0?t:null;this._consoleTracker=(n=e.consoleTracker)!==null&&n!==void 0?n:null;this._editorTracker=(i=e.editorTracker)!==null&&i!==void 0?i:null;this._readOnlyEditorTracker=new l.WidgetTracker({namespace:"@jupyterlab/debugger"})}find(e){return[...this._findInConsoles(e),...this._findInEditors(e),...this._findInNotebooks(e),...this._findInReadOnlyEditors(e)]}open(e){const{editorWrapper:t,label:n,caption:s}=e;const o=new l.MainAreaWidget({content:t});o.id=l.DOMUtils.createDomID();o.title.label=n;o.title.closable=true;o.title.caption=s;o.title.icon=i.textEditorIcon;this._shell.add(o,"main",{type:"Debugger Sources"});void this._readOnlyEditorTracker.add(o)}_findInNotebooks(e){if(!this._notebookTracker){return[]}const{focus:t,kernel:n,path:i,source:s}=e;const o=[];this._notebookTracker.forEach((e=>{const r=e.sessionContext;if(i!==r.path){return}const a=e.content;if(t){a.mode="command"}const l=e.content.widgets;l.forEach(((i,r)=>{const l=i.model.sharedModel.getSource();const d=this._getCodeId(l,n);if(!d){return}if(s!==d){return}if(t){a.activeCellIndex=r;if(a.activeCell){a.scrollToItem(a.activeCellIndex,"smart").catch((e=>{}))}this._shell.activateById(e.id)}o.push(Object.freeze({get:()=>i.editor,reveal:()=>a.scrollToItem(r,"smart"),src:i.model.sharedModel}))}))}));return o}_findInConsoles(e){if(!this._consoleTracker){return[]}const{focus:t,kernel:n,path:i,source:s}=e;const o=[];this._consoleTracker.forEach((e=>{const r=e.sessionContext;if(i!==r.path){return}const a=e.console.cells;for(const i of a){const r=i.model.sharedModel.getSource();const a=this._getCodeId(r,n);if(!a){break}if(s!==a){break}o.push(Object.freeze({get:()=>i.editor,reveal:()=>Promise.resolve(this._shell.activateById(e.id)),src:i.model.sharedModel}));if(t){this._shell.activateById(e.id)}}}));return o}_findInEditors(e){if(!this._editorTracker){return[]}const{focus:t,kernel:n,path:i,source:s}=e;const o=[];this._editorTracker.forEach((e=>{const r=e.content;if(i!==r.context.path){return}const a=r.editor;if(!a){return}const l=a.model.sharedModel.getSource();const d=this._getCodeId(l,n);if(!d){return}if(s!==d){return}o.push(Object.freeze({get:()=>a,reveal:()=>Promise.resolve(this._shell.activateById(e.id)),src:r.model.sharedModel}));if(t){this._shell.activateById(e.id)}}));return o}_findInReadOnlyEditors(e){const{focus:t,kernel:n,source:i}=e;const s=[];this._readOnlyEditorTracker.forEach((e=>{var o;const r=(o=e.content)===null||o===void 0?void 0:o.editor;if(!r){return}const a=r.model.sharedModel.getSource();const l=this._getCodeId(a,n);if(!l){return}if(e.title.caption!==i&&i!==l){return}s.push(Object.freeze({get:()=>r,reveal:()=>Promise.resolve(this._shell.activateById(e.id)),src:r.model.sharedModel}));if(t){this._shell.activateById(e.id)}}));return s}_getCodeId(e,t){try{return this._config.getCodeId(e,t)}catch(n){return""}}}var Re;(function(e){class t extends a{}e.Config=t;class n extends S{}e.EditorHandler=n;class s extends A{}e.Handler=s;class o extends W{}e.Model=o;class r extends g{}e.ReadOnlyEditorFactory=r;class l extends G{}e.Service=l;class d extends Y{}e.Session=d;class c extends Ae{}e.Sidebar=c;class u extends Le{}e.Sources=u;class p extends V{}e.VariablesGrid=p;class m extends J{}e.VariableRenderer=m;let f;(function(e){e.debugContinue="debugger:continue";e.terminate="debugger:terminate";e.next="debugger:next";e.showPanel="debugger:show-panel";e.stepIn="debugger:stepIn";e.stepOut="debugger:stepOut";e.inspectVariable="debugger:inspect-variable";e.renderMimeVariable="debugger:render-mime-variable";e.evaluate="debugger:evaluate";e.restartDebug="debugger:restart-debug";e.pauseOnExceptions="debugger:pause-on-exceptions";e.copyToClipboard="debugger:copy-to-clipboard";e.copyToGlobals="debugger:copy-to-globals";e.openSource="debugger:open-source"})(f=e.CommandIDs||(e.CommandIDs={}));let v;(function(e){e.closeAllIcon=i.closeAllIcon;e.evaluateIcon=i.codeIcon;e.continueIcon=i.runIcon;e.pauseIcon=i.pauseIcon;e.stepIntoIcon=i.stepIntoIcon;e.stepOutIcon=i.stepOutIcon;e.stepOverIcon=i.stepOverIcon;e.terminateIcon=i.stopIcon;e.variableIcon=i.variableIcon;e.viewBreakpointIcon=i.viewBreakpointIcon;e.pauseOnExceptionsIcon=i.pauseIcon})(v=e.Icons||(e.Icons={}));let _;(function(e){e.getCode=h.getCode})(_=e.Dialogs||(e.Dialogs={}))})(Re||(Re={}))},85995:(e,t,n)=>{"use strict";n.r(t);n.d(t,{Debugger:()=>i.s,IDebugger:()=>o,IDebuggerConfig:()=>r,IDebuggerHandler:()=>d,IDebuggerSidebar:()=>l,IDebuggerSourceViewer:()=>c,IDebuggerSources:()=>a});var i=n(35086);var s=n(5592);const o=new s.Token("@jupyterlab/debugger:IDebugger","A debugger user interface.");const r=new s.Token("@jupyterlab/debugger:IDebuggerConfig","A service to handle the debugger configuration.");const a=new s.Token("@jupyterlab/debugger:IDebuggerSources","A service to display sources in debug mode.");const l=new s.Token("@jupyterlab/debugger:IDebuggerSidebar","A service for the debugger sidebar.");const d=new s.Token("@jupyterlab/debugger:IDebuggerHandler","A service for handling notebook debugger.");const c=new s.Token("@jupyterlab/debugger:IDebuggerSourceViewer","A debugger source viewer.")},5011:(e,t,n)=>{"use strict";n.r(t);n.d(t,{Grid:()=>u,GridModel:()=>p});var i=n(28426);var s=n.n(i);var o=n(2336);var r=n.n(o);var a=n(1143);var l=n.n(a);var d=n(30619);var c=n.n(d);var h=n(35086);class u extends a.Panel{constructor(e){super();const{commands:t,model:n,themeManager:s}=e;this.model=n;const o=new p(e.translator);const r=new i.DataGrid;const a=new m.MouseHandler;a.doubleClicked.connect(((e,n)=>t.execute(h.s.CommandIDs.inspectVariable,{variableReference:o.getVariableReference(n.row),name:o.getVariableName(n.row)})));a.selected.connect(((e,t)=>{const{row:n}=t;this.model.selectedVariable={name:o.getVariableName(n),value:o.data("body",n,1),type:o.data("body",n,2),variablesReference:o.getVariableReference(n)}}));r.dataModel=o;r.keyHandler=new i.BasicKeyHandler;r.mouseHandler=a;r.selectionModel=new i.BasicSelectionModel({dataModel:o});r.stretchLastColumn=true;r.node.style.height="100%";this._grid=r;if(s){s.themeChanged.connect(this._updateStyles,this)}this.addWidget(r)}set filter(e){this._grid.dataModel.filter=e;this.update()}set scope(e){this._grid.dataModel.scope=e;this.update()}get dataModel(){return this._grid.dataModel}onAfterAttach(e){super.onAfterAttach(e);this._updateStyles()}_updateStyles(){const{style:e,textRenderer:t}=m.computeStyle();this._grid.cellRenderers.update({},t);this._grid.style=e}}class p extends i.DataModel{constructor(e){super();this._filter=new Set;this._scope="";this._data={name:[],type:[],value:[],variablesReference:[]};this._trans=(e||d.nullTranslator).load("jupyterlab")}get filter(){return this._filter}set filter(e){this._filter=e}get scope(){return this._scope}set scope(e){this._scope=e}rowCount(e){return e==="body"?this._data.name.length:1}columnCount(e){return e==="body"?2:1}data(e,t,n){if(e==="row-header"){return this._data.name[t]}if(e==="column-header"){return n===1?this._trans.__("Value"):this._trans.__("Type")}if(e==="corner-header"){return this._trans.__("Name")}return n===1?this._data.value[t]:this._data.type[t]}getVariableReference(e){return this._data.variablesReference[e]}getVariableName(e){return this._data.name[e]}setData(e){var t,n;this._clearData();this.emitChanged({type:"model-reset"});const i=(t=e.find((e=>e.name===this._scope)))!==null&&t!==void 0?t:e[0];const s=(n=i===null||i===void 0?void 0:i.variables)!==null&&n!==void 0?n:[];const o=s.filter((e=>e.name&&!this._filter.has(e.name)));o.forEach(((e,t)=>{var n;this._data.name[t]=e.name;this._data.type[t]=(n=e.type)!==null&&n!==void 0?n:"";this._data.value[t]=e.value;this._data.variablesReference[t]=e.variablesReference}));this.emitChanged({type:"rows-inserted",region:"body",index:1,span:o.length})}_clearData(){this._data={name:[],type:[],value:[],variablesReference:[]}}}var m;(function(e){function t(){const e=document.createElement("div");e.className="jp-DebuggerVariables-colorPalette";e.innerHTML=`\n \n \n \n \n \n \n \n `;return e}function n(){const e=t();document.body.appendChild(e);let n;n=e.querySelector(".jp-mod-void");const s=getComputedStyle(n).color;n=e.querySelector(".jp-mod-background");const o=getComputedStyle(n).color;n=e.querySelector(".jp-mod-header-background");const r=getComputedStyle(n).color;n=e.querySelector(".jp-mod-grid-line");const a=getComputedStyle(n).color;n=e.querySelector(".jp-mod-header-grid-line");const l=getComputedStyle(n).color;n=e.querySelector(".jp-mod-selection");const d=getComputedStyle(n).color;n=e.querySelector(".jp-mod-text");const c=getComputedStyle(n).color;document.body.removeChild(e);return{style:{voidColor:s,backgroundColor:o,headerBackgroundColor:r,gridLineColor:a,headerGridLineColor:l,rowBackgroundColor:e=>e%2===0?s:o,selectionFillColor:d},textRenderer:new i.TextRenderer({font:"12px sans-serif",textColor:c,backgroundColor:"",verticalAlignment:"center",horizontalAlignment:"left"})}}e.computeStyle=n;class s extends i.BasicMouseHandler{constructor(){super(...arguments);this._doubleClicked=new o.Signal(this);this._selected=new o.Signal(this)}get doubleClicked(){return this._doubleClicked}get selected(){return this._selected}dispose(){if(this.isDisposed){return}o.Signal.disconnectSender(this);super.dispose()}onMouseDoubleClick(e,t){const n=e.hitTest(t.clientX,t.clientY);this._doubleClicked.emit(n)}onMouseDown(e,t){let{clientX:n,clientY:i}=t;let s=e.hitTest(n,i);this._selected.emit(s);super.onMouseDown(e,t)}onContextMenu(e,t){let{clientX:n,clientY:i}=t;let s=e.hitTest(n,i);this._selected.emit(s)}}e.MouseHandler=s})(m||(m={}))},82372:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ToolbarItems:()=>A,default:()=>D,downloadPlugin:()=>E,openBrowserTabPlugin:()=>T,pathStatusPlugin:()=>I,savingStatusPlugin:()=>j});var i=n(94307);var s=n(14366);var o=n(30397);var r=n(43801);var a=n(84739);var l=n(24735);var d=n(30619);var c=n(26331);var h=n(34236);var u=n(5592);var p=n(2336);var m=n(1143);var g=n(44914);var f=n(94931);var v;(function(e){e.clearRecents="docmanager:clear-recents"})(v||(v={}));var _;(function(e){e.recentsManager="@jupyterlab/docmanager-extension:recents";e.reopenClosed="@jupyterlab/docmanager-extension:reopen-recently-closed";e.mainPlugin="@jupyterlab/docmanager-extension:plugin"})(_||(_={}));const b={id:_.recentsManager,description:"Provides a manager of recently opened and closed documents.",autoStart:true,requires:[f.IStateDB],optional:[a.ISettingRegistry,d.ITranslator],provides:r.IRecentsManager,activate:(e,t,n,i)=>{const{serviceManager:s}=e;const o=(i!==null&&i!==void 0?i:d.nullTranslator).load("jupyterlab");const a=new r.RecentsManager({stateDB:t,contents:s.contents});const l=e=>{a.maximalRecentsLength=e.get("maxNumberRecents").composite};if(n){void Promise.all([e.restored,n.load(_.mainPlugin)]).then((([e,t])=>{t.changed.connect(l);l(t)}))}e.commands.addCommand(v.clearRecents,{execute:()=>{a.clearRecents()},isEnabled:()=>a.recentlyOpened.length!=0||a.recentlyClosed.length!=0,label:o.__("Clear Recent Documents"),caption:o.__("Clear the list of recently opened items.")});return a}};var y;(function(e){e.clone="docmanager:clone";e.deleteFile="docmanager:delete-file";e.newUntitled="docmanager:new-untitled";e.open="docmanager:open";e.openBrowserTab="docmanager:open-browser-tab";e.reload="docmanager:reload";e.rename="docmanager:rename";e.del="docmanager:delete";e.duplicate="docmanager:duplicate";e.restoreCheckpoint="docmanager:restore-checkpoint";e.save="docmanager:save";e.saveAll="docmanager:save-all";e.saveAs="docmanager:save-as";e.download="docmanager:download";e.toggleAutosave="docmanager:toggle-autosave";e.showInFileBrowser="docmanager:show-in-file-browser"})(y||(y={}));const w="@jupyterlab/docmanager-extension:plugin";const C={id:"@jupyterlab/docmanager-extension:opener",description:"Provides the widget opener.",autoStart:true,provides:r.IDocumentWidgetOpener,activate:e=>{const{shell:t}=e;return new class{constructor(){this._opened=new p.Signal(this)}open(e,n){if(!e.id){e.id=`document-manager-${++B.id}`}e.title.dataset={type:"document-title",...e.title.dataset};if(!e.isAttached){t.add(e,"main",n||{})}t.activateById(e.id);this._opened.emit(e)}get opened(){return this._opened}}}};const x={id:"@jupyterlab/docmanager-extension:contexts",description:"Adds the handling of opened documents dirty state.",autoStart:true,requires:[r.IDocumentManager,r.IDocumentWidgetOpener],optional:[i.ILabStatus],activate:(e,t,n,i)=>{const s=new WeakSet;n.opened.connect(((e,n)=>{const o=t.contextForWidget(n);if(o&&!s.has(o)){if(i){O(i,o)}s.add(o)}}))}};const S={id:"@jupyterlab/docmanager-extension:manager",description:"Provides the document manager.",provides:r.IDocumentManager,requires:[r.IDocumentWidgetOpener],optional:[d.ITranslator,i.ILabStatus,s.ISessionContextDialogs,i.JupyterLab.IInfo,r.IRecentsManager],activate:(e,t,n,i,o,a,l)=>{var c;const{serviceManager:h,docRegistry:u}=e;const p=n!==null&&n!==void 0?n:d.nullTranslator;const m=o!==null&&o!==void 0?o:new s.SessionContextDialogs({translator:p});const g=e.restored.then((()=>void 0));const f=new r.DocumentManager({registry:u,manager:h,opener:t,when:g,setBusy:(c=i&&(()=>i.setBusy()))!==null&&c!==void 0?c:undefined,sessionDialogs:m,translator:p!==null&&p!==void 0?p:d.nullTranslator,isConnectedCallback:()=>{if(a){return a.isConnected}return true},recentsManager:l!==null&&l!==void 0?l:undefined});return f}};const k={id:w,description:"Adds commands and settings to the document manager.",autoStart:true,requires:[r.IDocumentManager,r.IDocumentWidgetOpener,a.ISettingRegistry],optional:[d.ITranslator,s.ICommandPalette,i.ILabShell],activate:(e,t,n,i,s,o,r)=>{s=s!==null&&s!==void 0?s:d.nullTranslator;const a=s.load("jupyterlab");const l=e.docRegistry;R(e,t,n,i,s,r,o);const c=n=>{const i=n.get("autosave").composite;t.autosave=i===true||i===false?i:true;e.commands.notifyCommandChanged(y.toggleAutosave);const s=n.get("confirmClosingDocument").composite;t.confirmClosingDocument=s!==null&&s!==void 0?s:true;const o=n.get("autosaveInterval").composite;t.autosaveInterval=o||120;const r=n.get("lastModifiedCheckMargin").composite;t.lastModifiedCheckMargin=r||500;const a=n.get("renameUntitledFileOnSave").composite;t.renameUntitledFileOnSave=a!==null&&a!==void 0?a:true;const d=n.get("defaultViewers").composite;const c={};Object.keys(d).forEach((e=>{if(!l.getFileType(e)){console.warn(`File Type ${e} not found`);return}if(!l.getWidgetFactory(d[e])){console.warn(`Document viewer ${d[e]} not found`)}c[e]=d[e]}));for(const e of l.fileTypes()){try{l.setDefaultWidgetFactory(e.name,c[e.name])}catch(h){console.warn(`Failed to set default viewer ${c[e.name]} for file type ${e.name}`)}}};Promise.all([i.load(w),e.restored]).then((([e])=>{e.changed.connect(c);c(e);const n=(t,n)=>{if(["autosave","autosaveInterval","confirmClosingDocument","lastModifiedCheckMargin","renameUntitledFileOnSave"].includes(n.name)&&e.get(n.name).composite!==n.newValue){e.set(n.name,n.newValue).catch((e=>{console.error(`Failed to set the setting '${n.name}':\n${e}`)}))}};t.stateChanged.connect(n)})).catch((e=>{console.error(e.message)}));i.transform(w,{fetch:e=>{const t=Array.from(l.fileTypes()).map((e=>e.name)).join(" \n");const n=Array.from(l.widgetFactories()).map((e=>e.name)).join(" \n");const i=a.__(`Overrides for the default viewers for file types.\nSpecify a mapping from file type name to document viewer name, for example:\n\ndefaultViewers: {\n markdown: "Markdown Preview"\n}\n\nIf you specify non-existent file types or viewers, or if a viewer cannot\nopen a given file type, the override will not function.\n\nAvailable viewers:\n%1\n\nAvailable file types:\n%2`,n,t);const s=u.JSONExt.deepCopy(e.schema);s.properties.defaultViewers.description=i;return{...e,schema:s}}});l.changed.connect((()=>i.load(w,true)))}};const j={id:"@jupyterlab/docmanager-extension:saving-status",description:"Adds a saving status indicator.",autoStart:true,requires:[r.IDocumentManager,i.ILabShell],optional:[d.ITranslator,l.IStatusBar],activate:(e,t,n,i,s)=>{if(!s){return}const o=new r.SavingStatus({docManager:t,translator:i!==null&&i!==void 0?i:d.nullTranslator});o.model.widget=n.currentWidget;n.currentChanged.connect((()=>{o.model.widget=n.currentWidget}));s.registerStatusItem(j.id,{item:o,align:"middle",isActive:()=>o.model!==null&&o.model.status!==null,activeStateChanged:o.model.stateChanged})}};const I={id:"@jupyterlab/docmanager-extension:path-status",description:"Adds a file path indicator in the status bar.",autoStart:true,requires:[r.IDocumentManager,i.ILabShell],optional:[l.IStatusBar],activate:(e,t,n,i)=>{if(!i){return}const s=new r.PathStatus({docManager:t});s.model.widget=n.currentWidget;n.currentChanged.connect((()=>{s.model.widget=n.currentWidget}));i.registerStatusItem(I.id,{item:s,align:"right",rank:0})}};const E={id:"@jupyterlab/docmanager-extension:download",description:"Adds command to download files.",autoStart:true,requires:[r.IDocumentManager],optional:[d.ITranslator,s.ICommandPalette],activate:(e,t,n,i)=>{var o;const r=(n!==null&&n!==void 0?n:d.nullTranslator).load("jupyterlab");const{commands:a,shell:l}=e;const c=()=>{const{currentWidget:e}=l;return!!(e&&t.contextForWidget(e))};a.addCommand(y.download,{label:r.__("Download"),caption:r.__("Download the file to your computer"),isEnabled:c,execute:()=>{if(c()){const e=t.contextForWidget(l.currentWidget);if(!e){return(0,s.showDialog)({title:r.__("Cannot Download"),body:r.__("No context found for current widget!"),buttons:[s.Dialog.okButton()]})}return e.download()}}});(o=e.shell.currentChanged)===null||o===void 0?void 0:o.connect((()=>{e.commands.notifyCommandChanged(y.download)}));const h=r.__("File Operations");if(i){i.addItem({command:y.download,category:h})}}};const T={id:"@jupyterlab/docmanager-extension:open-browser-tab",description:"Adds command to open a browser tab.",autoStart:true,requires:[r.IDocumentManager],optional:[d.ITranslator],activate:(e,t,n)=>{const i=(n!==null&&n!==void 0?n:d.nullTranslator).load("jupyterlab");const{commands:s}=e;s.addCommand(y.openBrowserTab,{execute:e=>{const n=typeof e["path"]==="undefined"?"":e["path"];if(!n){return}return t.services.contents.getDownloadUrl(n).then((e=>{const t=window.open();if(t){t.opener=null;t.location.href=e}else{throw new Error("Failed to open new browser tab.")}}))},iconClass:e=>e["icon"]||"",label:()=>i.__("Open in New Browser Tab")})}};const M=[S,k,x,I,j,E,T,C,b];const D=M;var A;(function(e){function t(e,t){return(0,s.addCommandToolbarButtonClass)(s.ReactWidget.create(g.createElement(s.UseSignal,{signal:t},(()=>g.createElement(s.CommandToolbarButtonComponent,{commands:e,id:y.save,label:"",args:{toolbar:true}})))))}e.createSaveButton=t})(A||(A={}));class P extends m.Widget{constructor(e,t,n="notebook"){super({node:B.createRevertConfirmNode(e,n,t)})}}function L(e,t){if(!e){return"File"}const n=t.contextForWidget(e);if(!n){return""}const i=t.registry.getFileTypesForPath(n.path);return i.length&&i[0].displayName?i[0].displayName:"File"}function R(e,t,n,i,r,a,l){var d;const u=r.load("jupyterlab");const{commands:p,shell:m}=e;const g=u.__("File Operations");const f=()=>{const{currentWidget:e}=m;return!!(e&&t.contextForWidget(e))};const v=()=>{var e;const{currentWidget:n}=m;if(!n){return false}const i=t.contextForWidget(n);return!!((e=i===null||i===void 0?void 0:i.contentsModel)===null||e===void 0?void 0:e.writable)};const _=e=>s.Notification.warning(u.__(`%1 is read-only. Use "Save as…" instead.`,e),{autoClose:5e3});if(a){N(e,t,a,n,r)}p.addCommand(y.deleteFile,{label:()=>`Delete ${L(m.currentWidget,t)}`,execute:e=>{const n=typeof e["path"]==="undefined"?"":e["path"];if(!n){const e=y.deleteFile;throw new Error(`A non-empty path is required for ${e}.`)}return t.deleteFile(n)}});p.addCommand(y.newUntitled,{execute:async e=>{const n=e["error"]||u.__("Error");const i=typeof e["path"]==="undefined"?"":e["path"];const o={type:e["type"],path:i};if(e["type"]==="file"){o.ext=e["ext"]||".txt"}return t.services.contents.newUntitled(o).catch((e=>(0,s.showErrorMessage)(n,e)))},label:e=>e["label"]||`New ${e["type"]}`});p.addCommand(y.open,{execute:async e=>{const n=typeof e["path"]==="undefined"?"":e["path"];const i=e["factory"]||void 0;const s=e===null||e===void 0?void 0:e.kernel;const o=e["options"]||void 0;return t.services.contents.get(n,{content:false}).then((()=>t.openOrReveal(n,i,s,o)))},iconClass:e=>e["icon"]||"",label:e=>{var t;return(t=e["label"]||e["factory"])!==null&&t!==void 0?t:u.__("Open the provided `path`.")},mnemonic:e=>e["mnemonic"]||-1});p.addCommand(y.reload,{label:()=>u.__("Reload %1 from Disk",L(m.currentWidget,t)),caption:u.__("Reload contents from disk"),isEnabled:f,execute:()=>{if(!f()){return}const e=t.contextForWidget(m.currentWidget);const n=L(m.currentWidget,t);if(!e){return(0,s.showDialog)({title:u.__("Cannot Reload"),body:u.__("No context found for current widget!"),buttons:[s.Dialog.okButton()]})}if(e.model.dirty){return(0,s.showDialog)({title:u.__("Reload %1 from Disk",n),body:u.__("Are you sure you want to reload the %1 from the disk?",n),buttons:[s.Dialog.cancelButton(),s.Dialog.warnButton({label:u.__("Reload")})]}).then((t=>{if(t.button.accept&&!e.isDisposed){return e.revert()}}))}else{if(!e.isDisposed){return e.revert()}}}});p.addCommand(y.restoreCheckpoint,{label:()=>u.__("Revert %1 to Checkpoint…",L(m.currentWidget,t)),caption:u.__("Revert contents to previous checkpoint"),isEnabled:f,execute:()=>{if(!f()){return}const e=t.contextForWidget(m.currentWidget);if(!e){return(0,s.showDialog)({title:u.__("Cannot Revert"),body:u.__("No context found for current widget!"),buttons:[s.Dialog.okButton()]})}return e.listCheckpoints().then((async n=>{const i=L(m.currentWidget,t);if(n.length<1){await(0,s.showErrorMessage)(u.__("No checkpoints"),u.__("No checkpoints are available for this %1.",i));return}const o=n.length===1?n[0]:await B.getTargetCheckpoint(n.reverse(),u);if(!o){return}return(0,s.showDialog)({title:u.__("Revert %1 to checkpoint",i),body:new P(o,u,i),buttons:[s.Dialog.cancelButton(),s.Dialog.warnButton({label:u.__("Revert"),ariaLabel:u.__("Revert to Checkpoint")})]}).then((t=>{if(e.isDisposed){return}if(t.button.accept){if(e.model.readOnly){return e.revert()}return e.restoreCheckpoint(o.id).then((()=>e.revert()))}}))}))}});const b=()=>{if(m.currentWidget){const e=t.contextForWidget(m.currentWidget);if(e===null||e===void 0?void 0:e.model.collaborative){return u.__("In collaborative mode, the document is saved automatically after every change")}if(!v()){return u.__(`Document is read-only. "Save" is disabled; use "Save as…" instead`)}}return u.__("Save and create checkpoint")};const C=new WeakSet;p.addCommand(y.save,{label:()=>u.__("Save %1",L(m.currentWidget,t)),caption:b,icon:e=>e.toolbar?c.saveIcon:undefined,isEnabled:e=>{if(e._luminoEvent){return e._luminoEvent.type==="keybinding"?true:v()}else{return v()}},execute:async e=>{var n,r,a,l,d;const c=m.currentWidget;const h=t.contextForWidget(c);if(f()){if(!h){return(0,s.showDialog)({title:u.__("Cannot Save"),body:u.__("No context found for current widget!"),buttons:[s.Dialog.okButton()]})}else{if(C.has(h)){return}if(!((n=h.contentsModel)===null||n===void 0?void 0:n.writable)){let t=(r=e._luminoEvent)===null||r===void 0?void 0:r.type;if(e._luminoEvent&&t==="keybinding"){_(h.path);return}else{return(0,s.showDialog)({title:u.__("Cannot Save"),body:u.__("Document is read-only"),buttons:[s.Dialog.okButton()]})}}C.add(h);const m=o.PathExt.basename((l=(a=h.contentsModel)===null||a===void 0?void 0:a.path)!==null&&l!==void 0?l:"");let g=m;if(t.renameUntitledFileOnSave&&c.isUntitled===true){const e=await s.InputDialog.getText({title:u.__("Rename file"),okLabel:u.__("Rename and Save"),placeholder:u.__("File name"),text:m,selectionRange:m.length-o.PathExt.extname(m).length,checkbox:{label:u.__("Do not ask for rename on first save."),caption:u.__("If checked, you will not be asked to rename future untitled files when saving them.")}});if(e.button.accept){g=(d=e.value)!==null&&d!==void 0?d:m;c.isUntitled=false;if(typeof e.isChecked==="boolean"){const t=(await i.get(w,"renameUntitledFileOnSave")).composite;if(e.isChecked===t){i.set(w,"renameUntitledFileOnSave",!e.isChecked).catch((e=>{console.error(`Fail to set 'renameUntitledFileOnSave:\n${e}`)}))}}}}try{await h.save();if(!(c===null||c===void 0?void 0:c.isDisposed)){return h.createCheckpoint()}}catch(p){if(p.name==="ModalCancelError"){return}throw p}finally{C.delete(h);if(g!==m){await h.rename(g)}}}}}});p.addCommand(y.saveAll,{label:()=>u.__("Save All"),caption:u.__("Save all open documents"),isEnabled:()=>(0,h.some)(m.widgets("main"),(e=>{var n,i,s;return(s=(i=(n=t.contextForWidget(e))===null||n===void 0?void 0:n.contentsModel)===null||i===void 0?void 0:i.writable)!==null&&s!==void 0?s:false})),execute:()=>{var e;const n=[];const i=new Set;for(const s of m.widgets("main")){const o=t.contextForWidget(s);if(o&&!i.has(o.path)){if((e=o.contentsModel)===null||e===void 0?void 0:e.writable){i.add(o.path);n.push(o.save())}else{_(o.path)}}}return Promise.all(n)}});p.addCommand(y.saveAs,{label:()=>u.__("Save %1 As…",L(m.currentWidget,t)),caption:u.__("Save with new path"),isEnabled:f,execute:()=>{if(f()){const e=t.contextForWidget(m.currentWidget);if(!e){return(0,s.showDialog)({title:u.__("Cannot Save"),body:u.__("No context found for current widget!"),buttons:[s.Dialog.okButton()]})}const n=(n,i)=>{if(i.type==="save"&&i.newValue&&i.newValue.path!==e.path){void t.closeFile(e.path);void p.execute(y.open,{path:i.newValue.path})}};t.services.contents.fileChanged.connect(n);void e.saveAs().finally((()=>t.services.contents.fileChanged.disconnect(n)))}}});(d=e.shell.currentChanged)===null||d===void 0?void 0:d.connect((()=>{[y.reload,y.restoreCheckpoint,y.save,y.saveAll,y.saveAs].forEach((t=>{e.commands.notifyCommandChanged(t)}))}));p.addCommand(y.toggleAutosave,{label:u.__("Autosave Documents"),isToggled:()=>t.autosave,execute:()=>{const e=!t.autosave;const n="autosave";return i.set(w,n,e).catch((e=>{console.error(`Failed to set ${w}:${n} - ${e.message}`)}))}});if(l){[y.reload,y.restoreCheckpoint,y.save,y.saveAs,y.toggleAutosave,y.duplicate].forEach((e=>{l.addItem({command:e,category:g})}))}}function N(e,t,n,i,o){const a=o.load("jupyterlab");const{commands:l}=e;const d=()=>{var i;const s=/[Pp]ath:\s?(.*)\n?/;const o=e=>{var t;return!!((t=e["title"])===null||t===void 0?void 0:t.match(s))};const r=e.contextMenuHitTest(o);const a=r===null||r===void 0?void 0:r["title"].match(s);return(i=a&&t.findWidget(a[1],null))!==null&&i!==void 0?i:n.currentWidget};const c=()=>{const{currentWidget:e}=n;return!!(e&&t.contextForWidget(e))};l.addCommand(y.clone,{label:()=>a.__("New View for %1",L(d(),t)),isEnabled:c,execute:e=>{const n=d();const s=e["options"]||{mode:"split-right"};if(!n){return}const o=t.cloneWidget(n);if(o){i.open(o,s)}}});l.addCommand(y.rename,{label:()=>{let e=L(d(),t);if(e){e=" "+e}return a.__("Rename%1…",e)},isEnabled:c,execute:()=>{if(c()){const e=t.contextForWidget(d());return(0,r.renameDialog)(t,e)}}});l.addCommand(y.duplicate,{label:()=>a.__("Duplicate %1",L(d(),t)),isEnabled:c,execute:()=>{if(c()){const e=t.contextForWidget(d());if(!e){return}return t.duplicate(e.path)}}});l.addCommand(y.del,{label:()=>a.__("Delete %1",L(d(),t)),isEnabled:c,execute:async()=>{if(c()){const n=t.contextForWidget(d());if(!n){return}const i=await(0,s.showDialog)({title:a.__("Delete"),body:a.__("Are you sure you want to delete %1",n.path),buttons:[s.Dialog.cancelButton(),s.Dialog.warnButton({label:a.__("Delete")})]});if(i.button.accept){await e.commands.execute("docmanager:delete-file",{path:n.path})}}}});l.addCommand(y.showInFileBrowser,{label:()=>a.__("Show in File Browser"),isEnabled:c,execute:async()=>{const e=d();const n=e&&t.contextForWidget(e);if(!n){return}await l.execute("filebrowser:activate",{path:n.path});await l.execute("filebrowser:go-to-path",{path:n.path})}});n.currentChanged.connect((()=>{[y.clone,y.rename,y.duplicate,y.del,y.showInFileBrowser].forEach((t=>{e.commands.notifyCommandChanged(t)}))}))}function O(e,t){let n=null;const i=(t,i)=>{if(i.name==="dirty"){if(i.newValue===true){if(!n){n=e.setDirty()}}else if(n){n.dispose();n=null}}};void t.ready.then((()=>{t.model.stateChanged.connect(i);if(t.model.dirty){n=e.setDirty()}}));t.disposed.connect((()=>{if(n){n.dispose()}}))}var B;(function(e){e.id=0;function t(e,t,n){const i=document.createElement("div");const s=document.createElement("p");const r=document.createTextNode(n.__("Are you sure you want to revert the %1 to checkpoint? ",t));const a=document.createElement("strong");a.textContent=n.__("This cannot be undone.");s.appendChild(r);s.appendChild(a);const l=document.createElement("p");const d=document.createTextNode(n.__("The checkpoint was last updated at: "));const c=document.createElement("p");const h=new Date(e.last_modified);c.style.textAlign="center";c.textContent=o.Time.format(h)+" ("+o.Time.formatHuman(h)+")";l.appendChild(d);l.appendChild(c);i.appendChild(s);i.appendChild(l);return i}e.createRevertConfirmNode=t;async function n(e,t){const n=".";const i=e.map(((e,t)=>{const i=o.Time.format(e.last_modified);const s=o.Time.formatHuman(e.last_modified);return`${t}${n} ${i} (${s})`}));const r=(await s.InputDialog.getItem({items:i,title:t.__("Choose a checkpoint")})).value;if(!r){return}const a=r.split(n,1)[0];return e[parseInt(a,10)]}e.getTargetCheckpoint=n})(B||(B={}))},87779:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(97913);var a=n(79010);var l=n(3579);var d=n(41603)},89069:(e,t,n)=>{"use strict";n.r(t);n.d(t,{DocumentManager:()=>j,DocumentWidgetManager:()=>S,IDocumentManager:()=>O,IDocumentWidgetOpener:()=>B,IRecentsManager:()=>F,PathStatus:()=>P,RecentsManager:()=>H,SaveHandler:()=>y,SavingStatus:()=>N,isValidFileName:()=>u,renameDialog:()=>d,renameFile:()=>c,shouldOverwrite:()=>h});var i=n(14366);var s=n(30397);var o=n(30619);var r=n(1143);const a="jp-FileDialog";const l="jp-new-name-title";function d(e,t,n){n=n||o.nullTranslator;const s=n.load("jupyterlab");const r=t.localPath.split("/");const a=r.pop()||t.localPath;return(0,i.showDialog)({title:s.__("Rename File"),body:new p(a),focusNodeSelector:"input",buttons:[i.Dialog.cancelButton(),i.Dialog.okButton({label:s.__("Rename"),ariaLabel:s.__("Rename File")})]}).then((e=>{if(!e.value){return null}if(!u(e.value)){void(0,i.showErrorMessage)(s.__("Rename Error"),Error(s.__('"%1" is not a valid name for a file. Names must have nonzero length, and cannot include "/", "\\", or ":"',e.value)));return null}return t.rename(e.value)}))}function c(e,t,n){return e.rename(t,n).catch((i=>{if(i.response.status!==409){throw i}return h(n).then((i=>{if(i){return e.overwrite(t,n)}return Promise.reject("File not renamed")}))}))}function h(e,t){t=t||o.nullTranslator;const n=t.load("jupyterlab");const s={title:n.__("Overwrite file?"),body:n.__('"%1" already exists, overwrite?',e),buttons:[i.Dialog.cancelButton(),i.Dialog.warnButton({label:n.__("Overwrite"),ariaLabel:n.__("Overwrite Existing File")})]};return(0,i.showDialog)(s).then((e=>Promise.resolve(e.button.accept)))}function u(e){const t=/[\/\\:]/;return e.length>0&&!t.test(e)}class p extends r.Widget{constructor(e){super({node:m.createRenameNode(e)});this.addClass(a);const t=s.PathExt.extname(e);const n=this.inputNode.value=s.PathExt.basename(e);this.inputNode.setSelectionRange(0,n.length-t.length)}get inputNode(){return this.node.getElementsByTagName("input")[0]}getValue(){return this.inputNode.value}}var m;(function(e){function t(e,t){t=t||o.nullTranslator;const n=t.load("jupyterlab");const i=document.createElement("div");const s=document.createElement("label");s.textContent=n.__("File Path");const r=document.createElement("span");r.textContent=e;const a=document.createElement("label");a.textContent=n.__("New Name");a.className=l;const d=document.createElement("input");i.appendChild(s);i.appendChild(r);i.appendChild(a);i.appendChild(d);return i}e.createRenameNode=t})(m||(m={}));var g=n(93037);var f=n(34236);var v=n(5592);var _=n(94466);var b=n(2336);class y{constructor(e){this._autosaveTimer=-1;this._minInterval=-1;this._interval=-1;this._isActive=false;this._inDialog=false;this._isDisposed=false;this._multiplier=10;this._context=e.context;this._isConnectedCallback=e.isConnectedCallback||(()=>true);const t=e.saveInterval||120;this._minInterval=t*1e3;this._interval=this._minInterval;this._context.fileChanged.connect(this._setTimer,this);this._context.disposed.connect(this.dispose,this)}get saveInterval(){return this._interval/1e3}set saveInterval(e){this._minInterval=this._interval=e*1e3;if(this._isActive){this._setTimer()}}get isActive(){return this._isActive}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;clearTimeout(this._autosaveTimer);b.Signal.clearData(this)}start(){this._isActive=true;this._setTimer()}stop(){this._isActive=false;clearTimeout(this._autosaveTimer)}_setTimer(){clearTimeout(this._autosaveTimer);if(!this._isActive){return}this._autosaveTimer=window.setTimeout((()=>{if(this._isConnectedCallback()){this._save()}else{this._setTimer()}}),this._interval)}_save(){var e;const t=this._context;this._setTimer();if(!t){return}if(!((e=t.canSave)!==null&&e!==void 0?e:true)||!t.model.dirty||this._inDialog){return}const n=(new Date).getTime();t.save().then((()=>{if(this.isDisposed){return}const e=(new Date).getTime()-n;this._interval=Math.max(this._multiplier*e,this._minInterval);this._setTimer()})).catch((e=>{const{name:t}=e;if(t==="ModalCancelError"||t==="ModalDuplicateError"){return}console.error("Error in Auto-Save",e.message)}))}}var w=n(90044);var C=n(42856);const x="jp-Document";class S{constructor(e){this._activateRequested=new b.Signal(this);this._confirmClosingTab=false;this._isDisposed=false;this._stateChanged=new b.Signal(this);this._registry=e.registry;this.translator=e.translator||o.nullTranslator;this._recentsManager=e.recentsManager||null}get activateRequested(){return this._activateRequested}get confirmClosingDocument(){return this._confirmClosingTab}set confirmClosingDocument(e){if(this._confirmClosingTab!==e){const t=this._confirmClosingTab;this._confirmClosingTab=e;this._stateChanged.emit({name:"confirmClosingDocument",oldValue:t,newValue:e})}}get stateChanged(){return this._stateChanged}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;b.Signal.disconnectReceiver(this)}createWidget(e,t){const n=e.createNew(t);this._initializeWidget(n,e,t);return n}_initializeWidget(e,t,n){k.factoryProperty.set(e,t);const i=new w.DisposableSet;for(const s of this._registry.widgetExtensions(t.name)){const t=s.createNew(e,n);if(t){i.add(t)}}k.disposablesProperty.set(e,i);e.disposed.connect(this._onWidgetDisposed,this);this.adoptWidget(n,e);n.fileChanged.connect(this._onFileChanged,this);n.pathChanged.connect(this._onPathChanged,this);void n.ready.then((()=>{void this.setCaption(e)}))}adoptWidget(e,t){const n=k.widgetsProperty.get(e);n.push(t);C.MessageLoop.installMessageHook(t,this);t.addClass(x);t.title.closable=true;t.disposed.connect(this._widgetDisposed,this);k.contextProperty.set(t,e)}findWidget(e,t){const n=k.widgetsProperty.get(e);if(!n){return undefined}return(0,f.find)(n,(e=>{const n=k.factoryProperty.get(e);if(!n){return false}return n.name===t}))}contextForWidget(e){return k.contextProperty.get(e)}cloneWidget(e){const t=k.contextProperty.get(e);if(!t){return undefined}const n=k.factoryProperty.get(e);if(!n){return undefined}const i=n.createNew(t,e);this._initializeWidget(i,n,t);return i}closeWidgets(e){const t=k.widgetsProperty.get(e);return Promise.all(t.map((e=>this.onClose(e)))).then((()=>undefined))}deleteWidgets(e){const t=k.widgetsProperty.get(e);return Promise.all(t.map((e=>this.onDelete(e)))).then((()=>undefined))}messageHook(e,t){switch(t.type){case"close-request":void this.onClose(e);return false;case"activate-request":{const t=e;const n=this.contextForWidget(t);if(n){n.ready.then((()=>{this._recordAsRecentlyOpened(t,n.contentsModel)})).catch((()=>{console.warn("Could not record the recents status for",n)}));this._activateRequested.emit(n.path)}break}default:break}return true}async setCaption(e){const t=this.translator.load("jupyterlab");const n=k.contextProperty.get(e);if(!n){return}const i=n.contentsModel;if(!i){e.title.caption="";return}return n.listCheckpoints().then((o=>{if(e.isDisposed){return}const r=o[o.length-1];const a=r?s.Time.format(r.last_modified):"None";let l=t.__("Name: %1\nPath: %2\n",i.name,i.path);if(n.model.readOnly){l+=t.__("Read-only")}else{l+=t.__("Last Saved: %1\n",s.Time.format(i.last_modified))+t.__("Last Checkpoint: %1",a)}e.title.caption=l}))}async onClose(e){var t;const[n,i]=await this._maybeClose(e,this.translator);if(e.isDisposed){return true}if(n){const n=k.contextProperty.get(e);if(!i){if(!n){return true}if((t=n.contentsModel)===null||t===void 0?void 0:t.writable){await n.save()}else{await n.saveAs()}}if(n){const t=await Promise.race([n.ready,new Promise((e=>setTimeout(e,3e3,"timeout")))]);if(t==="timeout"){console.warn("Could not record the widget as recently closed because the context did not become ready in 3 seconds")}else{this._recordAsRecentlyClosed(e,n.contentsModel)}}if(e.isDisposed){return true}e.dispose()}return n}onDelete(e){e.dispose();return Promise.resolve(void 0)}_recordAsRecentlyOpened(e,t){var n;const i=this._recentsManager;if(!i){return}const s=t.path;const o=this._registry.getFileTypeForModel(t);const r=o.contentType;const a=(n=k.factoryProperty.get(e))===null||n===void 0?void 0:n.name;i.addRecent({path:s,contentType:r,factory:a},"opened");if(r!=="directory"){const e=s.lastIndexOf("/")>0?s.slice(0,s.lastIndexOf("/")):"";i.addRecent({path:e,contentType:"directory"},"opened")}}_recordAsRecentlyClosed(e,t){var n;const i=this._recentsManager;if(!i){return}const s=t.path;const o=this._registry.getFileTypeForModel(t);const r=o.contentType;const a=(n=k.factoryProperty.get(e))===null||n===void 0?void 0:n.name;i.addRecent({path:s,contentType:r,factory:a},"closed")}async _maybeClose(e,t){var n,s;t=t||o.nullTranslator;const r=t.load("jupyterlab");const a=k.contextProperty.get(e);if(!a){return Promise.resolve([true,true])}let l=k.widgetsProperty.get(a);if(!l){return Promise.resolve([true,true])}l=l.filter((e=>{const t=k.factoryProperty.get(e);if(!t){return false}return t.readOnly===false}));const d=e.title.label;const c=k.factoryProperty.get(e);const h=a.model.dirty&&l.length<=1&&!((n=c===null||c===void 0?void 0:c.readOnly)!==null&&n!==void 0?n:true);if(this.confirmClosingDocument){const e=[i.Dialog.cancelButton(),i.Dialog.okButton({label:h?r.__("Close and save"):r.__("Close"),ariaLabel:h?r.__("Close and save Document"):r.__("Close Document")})];if(h){e.splice(1,0,i.Dialog.warnButton({label:r.__("Close without saving"),ariaLabel:r.__("Close Document without saving")}))}const t=await(0,i.showDialog)({title:r.__("Confirmation"),body:r.__('Please confirm you want to close "%1".',d),checkbox:h?null:{label:r.__("Do not ask me again."),caption:r.__("If checked, no confirmation to close a document will be asked in the future.")},buttons:e});if(t.isChecked){this.confirmClosingDocument=false}return Promise.resolve([t.button.accept,h?t.button.displayType==="warn":true])}else{if(!h){return Promise.resolve([true,true])}const e=((s=a.contentsModel)===null||s===void 0?void 0:s.writable)?r.__("Save"):r.__("Save as");const t=await(0,i.showDialog)({title:r.__("Save your work"),body:r.__('Save changes in "%1" before closing?',d),buttons:[i.Dialog.cancelButton(),i.Dialog.warnButton({label:r.__("Discard"),ariaLabel:r.__("Discard changes to file")}),i.Dialog.okButton({label:e})]});return[t.button.accept,t.button.displayType==="warn"]}}_widgetDisposed(e){const t=k.contextProperty.get(e);if(!t){return}const n=k.widgetsProperty.get(t);if(!n){return}f.ArrayExt.removeFirstOf(n,e);if(!n.length){t.dispose()}}_onWidgetDisposed(e){const t=k.disposablesProperty.get(e);t.dispose()}_onFileChanged(e){const t=k.widgetsProperty.get(e);for(const n of t){void this.setCaption(n)}}_onPathChanged(e){const t=k.widgetsProperty.get(e);for(const n of t){void this.setCaption(n)}}}var k;(function(e){e.contextProperty=new _.AttachedProperty({name:"context",create:()=>undefined});e.factoryProperty=new _.AttachedProperty({name:"factory",create:()=>undefined});e.widgetsProperty=new _.AttachedProperty({name:"widgets",create:()=>[]});e.disposablesProperty=new _.AttachedProperty({name:"disposables",create:()=>new w.DisposableSet})})(k||(k={}));class j{constructor(e){var t;this._activateRequested=new b.Signal(this);this._contexts=[];this._isDisposed=false;this._autosave=true;this._autosaveInterval=120;this._lastModifiedCheckMargin=500;this._renameUntitledFileOnSave=true;this._stateChanged=new b.Signal(this);this.translator=e.translator||o.nullTranslator;this.registry=e.registry;this.services=e.manager;this._dialogs=(t=e.sessionDialogs)!==null&&t!==void 0?t:new i.SessionContextDialogs({translator:e.translator});this._isConnectedCallback=e.isConnectedCallback||(()=>true);this._opener=e.opener;this._when=e.when||e.manager.ready;const n=new S({registry:this.registry,translator:this.translator,recentsManager:e.recentsManager});n.activateRequested.connect(this._onActivateRequested,this);n.stateChanged.connect(this._onWidgetStateChanged,this);this._widgetManager=n;this._setBusy=e.setBusy}get activateRequested(){return this._activateRequested}get autosave(){return this._autosave}set autosave(e){if(this._autosave!==e){const t=this._autosave;this._autosave=e;this._contexts.forEach((t=>{const n=I.saveHandlerProperty.get(t);if(!n){return}if(e===true&&!n.isActive){n.start()}else if(e===false&&n.isActive){n.stop()}}));this._stateChanged.emit({name:"autosave",oldValue:t,newValue:e})}}get autosaveInterval(){return this._autosaveInterval}set autosaveInterval(e){if(this._autosaveInterval!==e){const t=this._autosaveInterval;this._autosaveInterval=e;this._contexts.forEach((t=>{const n=I.saveHandlerProperty.get(t);if(!n){return}n.saveInterval=e||120}));this._stateChanged.emit({name:"autosaveInterval",oldValue:t,newValue:e})}}get confirmClosingDocument(){return this._widgetManager.confirmClosingDocument}set confirmClosingDocument(e){if(this._widgetManager.confirmClosingDocument!==e){const t=this._widgetManager.confirmClosingDocument;this._widgetManager.confirmClosingDocument=e;this._stateChanged.emit({name:"confirmClosingDocument",oldValue:t,newValue:e})}}get lastModifiedCheckMargin(){return this._lastModifiedCheckMargin}set lastModifiedCheckMargin(e){if(this._lastModifiedCheckMargin!==e){const t=this._lastModifiedCheckMargin;this._lastModifiedCheckMargin=e;this._contexts.forEach((t=>{t.lastModifiedCheckMargin=e}));this._stateChanged.emit({name:"lastModifiedCheckMargin",oldValue:t,newValue:e})}}get renameUntitledFileOnSave(){return this._renameUntitledFileOnSave}set renameUntitledFileOnSave(e){if(this._renameUntitledFileOnSave!==e){const t=this._renameUntitledFileOnSave;this._renameUntitledFileOnSave=e;this._stateChanged.emit({name:"renameUntitledFileOnSave",oldValue:t,newValue:e})}}get stateChanged(){return this._stateChanged}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;b.Signal.clearData(this);this._contexts.forEach((e=>this._widgetManager.closeWidgets(e)));this._widgetManager.dispose();this._contexts.length=0}cloneWidget(e){return this._widgetManager.cloneWidget(e)}closeAll(){return Promise.all(this._contexts.map((e=>this._widgetManager.closeWidgets(e)))).then((()=>undefined))}closeFile(e){const t=this._contextsForPath(e).map((e=>this._widgetManager.closeWidgets(e)));return Promise.all(t).then((e=>undefined))}contextForWidget(e){return this._widgetManager.contextForWidget(e)}copy(e,t){return this.services.contents.copy(e,t)}createNew(e,t="default",n){return this._createOrOpenDocument("create",e,t,n)}deleteFile(e){return this.services.sessions.stopIfNeeded(e).then((()=>this.services.contents.delete(e))).then((()=>{this._contextsForPath(e).forEach((e=>this._widgetManager.deleteWidgets(e)));return Promise.resolve(void 0)}))}duplicate(e){const t=s.PathExt.dirname(e);return this.services.contents.copy(e,t)}findWidget(e,t="default"){const n=s.PathExt.normalize(e);let i=[t];if(t==="default"){const e=this.registry.defaultWidgetFactory(n);if(!e){return undefined}i=[e.name]}else if(t===null){i=this.registry.preferredWidgetFactories(n).map((e=>e.name))}for(const s of this._contextsForPath(n)){for(const e of i){if(e!==null){const t=this._widgetManager.findWidget(s,e);if(t){return t}}}}return undefined}newUntitled(e){if(e.type==="file"){e.ext=e.ext||".txt"}return this.services.contents.newUntitled(e)}open(e,t="default",n,i){return this._createOrOpenDocument("open",e,t,n,i)}openOrReveal(e,t="default",n,i){const s=this.findWidget(e,t);if(s){this._opener.open(s,{type:t,...i});return s}return this.open(e,t,n,i!==null&&i!==void 0?i:{})}overwrite(e,t){const n=`${t}.${v.UUID.uuid4()}`;const i=()=>this.rename(n,t);return this.rename(e,n).then((()=>this.deleteFile(t))).then(i,i)}rename(e,t){return this.services.contents.rename(e,t)}_findContext(e,t){const n=this.services.contents.normalize(e);return(0,f.find)(this._contexts,(e=>e.path===n&&e.factoryName===t))}_contextsForPath(e){const t=this.services.contents.normalize(e);return this._contexts.filter((e=>e.path===t))}_createContext(e,t,n,i){const s=(e,t)=>{this._widgetManager.adoptWidget(o,e);this._opener.open(e,t)};const o=new g.Context({opener:s,manager:this.services,factory:t,path:e,kernelPreference:n,setBusy:this._setBusy,sessionDialogs:this._dialogs,lastModifiedCheckMargin:this._lastModifiedCheckMargin,translator:this.translator,contentProviderId:i});const r=new y({context:o,isConnectedCallback:this._isConnectedCallback,saveInterval:this.autosaveInterval});I.saveHandlerProperty.set(o,r);void o.ready.then((()=>{if(this.autosave){r.start()}}));o.disposed.connect(this._onContextDisposed,this);this._contexts.push(o);return o}_onContextDisposed(e){f.ArrayExt.removeFirstOf(this._contexts,e)}_widgetFactoryFor(e,t){const{registry:n}=this;if(t==="default"){const i=n.defaultWidgetFactory(e);if(!i){return undefined}t=i.name}return n.getWidgetFactory(t)}_createOrOpenDocument(e,t,n="default",i,s){const o=this._widgetFactoryFor(t,n);if(!o){return undefined}const r=o.modelName||"text";const a=this.registry.getModelFactory(r);if(!a){return undefined}const l=this.registry.getKernelPreference(t,o.name,i);let d;let c=Promise.resolve(undefined);if(e==="open"){d=this._findContext(t,a.name)||null;if(!d){d=this._createContext(t,a,l,o.contentProviderId);c=this._when.then((()=>d.initialize(false)))}}else if(e==="create"){d=this._createContext(t,a,l,o.contentProviderId);c=this._when.then((()=>d.initialize(true)))}else{throw new Error(`Invalid argument 'which': ${e}`)}const h=this._widgetManager.createWidget(o,d);this._opener.open(h,{type:o.name,...s});c.catch((e=>{console.error(`Failed to initialize the context with '${a.name}' for ${t}`,e);h.close()}));return h}_onActivateRequested(e,t){this._activateRequested.emit(t)}_onWidgetStateChanged(e,t){if(t.name==="confirmClosingDocument"){this._stateChanged.emit(t)}}}var I;(function(e){e.saveHandlerProperty=new _.AttachedProperty({name:"saveHandler",create:()=>undefined})})(I||(I={}));var E=n(24735);var T=n(26331);var M=n(44914);var D=n.n(M);function A(e){return D().createElement(E.TextItem,{source:e.name,title:e.fullPath})}class P extends T.VDomRenderer{constructor(e){super(new P.Model(e.docManager));this.node.title=this.model.path}render(){return D().createElement(A,{fullPath:this.model.path,name:this.model.name})}}(function(e){class t extends T.VDomModel{constructor(e){super();this._onTitleChange=e=>{const t=this._getAllState();this._name=e.label;this._triggerChange(t,this._getAllState())};this._onPathChange=(e,t)=>{const n=this._getAllState();this._path=t;this._name=s.PathExt.basename(t);this._triggerChange(n,this._getAllState())};this._path="";this._name="";this._widget=null;this._docManager=e}get path(){return this._path}get name(){return this._name}get widget(){return this._widget}set widget(e){const t=this._widget;if(t!==null){const e=this._docManager.contextForWidget(t);if(e){e.pathChanged.disconnect(this._onPathChange)}else{t.title.changed.disconnect(this._onTitleChange)}}const n=this._getAllState();this._widget=e;if(this._widget===null){this._path="";this._name=""}else{const e=this._docManager.contextForWidget(this._widget);if(e){this._path=e.path;this._name=s.PathExt.basename(e.path);e.pathChanged.connect(this._onPathChange)}else{this._path="";this._name=this._widget.title.label;this._widget.title.changed.connect(this._onTitleChange)}}this._triggerChange(n,this._getAllState())}_getAllState(){return[this._path,this._name]}_triggerChange(e,t){if(e[0]!==t[0]||e[1]!==t[1]){this.stateChanged.emit(void 0)}}}e.Model=t})(P||(P={}));function L(e){return D().createElement(E.TextItem,{source:e.fileStatus})}const R=2e3;class N extends T.VDomRenderer{constructor(e){super(new N.Model(e.docManager));const t=e.translator||o.nullTranslator;const n=t.load("jupyterlab");this._statusMap={completed:n.__("Saving completed"),started:n.__("Saving started"),failed:n.__("Saving failed")}}render(){if(this.model===null||this.model.status===null){return null}else{return D().createElement(L,{fileStatus:this._statusMap[this.model.status]})}}}(function(e){class t extends T.VDomModel{constructor(e){super();this._onStatusChange=(e,t)=>{this._status=t;if(this._status==="completed"){setTimeout((()=>{this._status=null;this.stateChanged.emit(void 0)}),R);this.stateChanged.emit(void 0)}else{this.stateChanged.emit(void 0)}};this._status=null;this._widget=null;this._status=null;this.widget=null;this._docManager=e}get status(){return this._status}get widget(){return this._widget}set widget(e){var t,n;const i=this._widget;if(i!==null){const e=this._docManager.contextForWidget(i);if(e){e.saveState.disconnect(this._onStatusChange)}else if((t=this._widget.content)===null||t===void 0?void 0:t.saveStateChanged){this._widget.content.saveStateChanged.disconnect(this._onStatusChange)}}this._widget=e;if(this._widget===null){this._status=null}else{const e=this._docManager.contextForWidget(this._widget);if(e){e.saveState.connect(this._onStatusChange)}else if((n=this._widget.content)===null||n===void 0?void 0:n.saveStateChanged){this._widget.content.saveStateChanged.connect(this._onStatusChange)}}}}e.Model=t})(N||(N={}));const O=new v.Token("@jupyterlab/docmanager:IDocumentManager",`A service for the manager for all\n documents used by the application. Use this if you want to open and close documents,\n create and delete files, and otherwise interact with the file system.`);const B=new v.Token("@jupyterlab/docmanager:IDocumentWidgetOpener",`A service to open a widget.`);const F=new v.Token("@jupyterlab/docmanager:IRecentsManager",`A service providing information about recently opened and closed documents`);var z=n(26568);class H{constructor(e){this._recentsChanged=new b.Signal(this);this._recents={opened:[],closed:[]};this._isDisposed=false;this._maxRecentsLength=10;this._saveDebouncer=new z.Debouncer(this._save.bind(this),500);this._stateDB=e.stateDB;this._contentsManager=e.contents;this.updateRootDir();this._loadRecents().catch((e=>{console.error(`Failed to load recent list from state:\n${e}`)}))}get isDisposed(){return this._isDisposed}get recentlyOpened(){const e=this._recents.opened||[];return e.filter((e=>e.root===this._serverRoot))}get recentlyClosed(){const e=this._recents.closed||[];return e.filter((e=>e.root===this._serverRoot))}get changed(){return this._recentsChanged}get maximalRecentsLength(){return this._maxRecentsLength}set maximalRecentsLength(e){this._maxRecentsLength=Math.round(Math.max(1,e));let t=false;for(const n of["opened","closed"]){if(this._recents[n].length>this._maxRecentsLength){this._recents[n].length=this._maxRecentsLength;t=true}}if(t){this._recentsChanged.emit(undefined)}}dispose(){if(this.isDisposed){return}this._isDisposed=true;b.Signal.clearData(this);this._saveDebouncer.dispose()}addRecent(e,t){const n={...e,root:this._serverRoot};const i=this._recents[t];const s=i.findIndex((t=>t.path===e.path));if(s>=0){i.splice(s,1)}i.unshift(n);this._setRecents(i,t);this._recentsChanged.emit(undefined)}clearRecents(){this._setRecents([],"opened");this._setRecents([],"closed");this._recentsChanged.emit(undefined)}removeRecent(e,t){this._removeRecent(e.path,[t])}async validate(e){const t=await this._isValid(e);if(!t){this._removeRecent(e.path)}return t}updateRootDir(){this._serverRoot=s.PageConfig.getOption("serverRoot")}_removeRecent(e,t=["opened","closed"]){let n=false;for(const i of t){const t=this._recents[i];const s=t.filter((t=>e!==t.path));if(t.length!==s.length){this._setRecents(s,i);n=true}}if(n){this._recentsChanged.emit(undefined)}}async _isValid(e){var t;try{await this._contentsManager.get(e.path,{content:false})}catch(n){if(((t=n.response)===null||t===void 0?void 0:t.status)===404){return false}}return true}_setRecents(e,t){this._recents[t]=e.slice(0,this.maximalRecentsLength).sort(((e,t)=>{if(e.root===t.root){return 0}else{return e.root!==this._serverRoot?1:-1}}));this._saveDebouncer.invoke().catch(console.warn)}async _loadRecents(){const e=await this._stateDB.fetch(W.stateDBKey)||{opened:[],closed:[]};const t=[...e.opened,...e.closed];const n=new Set(await this._getInvalidPaths(t));for(const i of["opened","closed"]){this._setRecents(e[i].filter((e=>!n.has(e.path))),i)}this._recentsChanged.emit(undefined)}async _getInvalidPaths(e){const t=await Promise.all(e.map((async e=>{if(await this._isValid(e)){return null}else{return e.path}})));return t.filter((e=>typeof e==="string"))}async _save(){try{await this._stateDB.save(W.stateDBKey,this._recents)}catch(e){console.log("Saving recents failed",e)}}}var W;(function(e){e.stateDBKey="docmanager:recents"})(W||(W={}))},41603:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(79010)},70491:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ABCWidgetFactory:()=>b,Base64ModelFactory:()=>_,Context:()=>h,DocumentModel:()=>f,DocumentRegistry:()=>T,DocumentWidget:()=>w,MimeContent:()=>x,MimeDocument:()=>S,MimeDocumentFactory:()=>k,TextModelFactory:()=>v,createReadonlyLabel:()=>g});var i=n(14366);var s=n(30397);var o=n(44539);var r=n(30619);var a=n(5592);var l=n(90044);var d=n(2336);var c=n(1143);class h{constructor(e){var t,n;this._isReady=false;this._isDisposed=false;this._isPopulated=false;this._path="";this._lineEnding=null;this._contentsModel=null;this._populatedPromise=new a.PromiseDelegate;this._pathChanged=new d.Signal(this);this._fileChanged=new d.Signal(this);this._saveState=new d.Signal(this);this._disposed=new d.Signal(this);this._lastModifiedCheckMargin=500;this._conflictModalIsOpen=false;const l=this._manager=e.manager;this.translator=e.translator||r.nullTranslator;this._contentProviderId=e.contentProviderId;this._trans=this.translator.load("jupyterlab");this._factory=e.factory;this._dialogs=(t=e.sessionDialogs)!==null&&t!==void 0?t:new i.SessionContextDialogs({translator:e.translator});this._opener=e.opener||u.noOp;this._path=this._manager.contents.normalize(e.path);this._lastModifiedCheckMargin=e.lastModifiedCheckMargin||500;const c=this._manager.contents.localPath(this._path);const h=this._factory.preferredLanguage(s.PathExt.basename(c));const p=this._manager.contents.getSharedModelFactory(this._path,{contentProviderId:e.contentProviderId});const m=p===null||p===void 0?void 0:p.createNew({path:c,format:this._factory.fileFormat,contentType:this._factory.contentType,collaborative:this._factory.collaborative});this._model=this._factory.createNew({languagePreference:h,sharedModel:m,collaborationEnabled:(n=p===null||p===void 0?void 0:p.collaborative)!==null&&n!==void 0?n:false});this._readyPromise=l.ready.then((()=>this._populatedPromise.promise));const g=s.PathExt.extname(this._path);this.sessionContext=new i.SessionContext({kernelManager:l.kernels,sessionManager:l.sessions,specsManager:l.kernelspecs,path:c,type:g===".ipynb"?"notebook":"file",name:s.PathExt.basename(c),kernelPreference:e.kernelPreference||{shouldStart:false},setBusy:e.setBusy});this.sessionContext.propertyChanged.connect(this._onSessionChanged,this);l.contents.fileChanged.connect(this._onFileChanged,this);this.urlResolver=new o.RenderMimeRegistry.UrlResolver({path:this._path,contents:l.contents})}get pathChanged(){return this._pathChanged}get fileChanged(){return this._fileChanged}get saveState(){return this._saveState}get disposed(){return this._disposed}get lastModifiedCheckMargin(){return this._lastModifiedCheckMargin}set lastModifiedCheckMargin(e){this._lastModifiedCheckMargin=e}get model(){return this._model}get path(){return this._path}get localPath(){return this._manager.contents.localPath(this._path)}get contentsModel(){return this._contentsModel?{...this._contentsModel}:null}get factoryName(){return this.isDisposed?"":this._factory.name}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;this.sessionContext.dispose();this._model.dispose();this._model.sharedModel.dispose();this._disposed.emit(void 0);d.Signal.clearData(this)}get isReady(){return this._isReady}get ready(){return this._readyPromise}get canSave(){var e;return!!(((e=this._contentsModel)===null||e===void 0?void 0:e.writable)&&!this._model.collaborative)}async initialize(e){if(e){await this._save()}else{await this._revert()}this.model.sharedModel.clearUndoHistory()}rename(e){return this.ready.then((()=>this._manager.ready.then((()=>this._rename(e)))))}async save(){await this.ready;await this._save()}async saveAs(){await this.ready;const e=this._manager.contents.localPath(this.path);const t=await u.getSavePath(e);if(this.isDisposed||!t){return}const n=this._manager.contents.driveName(this.path);const i=n==""?t:`${n}:${t}`;if(i===this._path){return this.save()}try{await this._manager.ready;await this._manager.contents.get(i,{contentProviderId:this._contentProviderId});await this._maybeOverWrite(i)}catch(s){if(!s.response||s.response.status!==404){throw s}await this._finishSaveAs(i)}}async download(){const e=await this._manager.contents.getDownloadUrl(this._path);const t=document.createElement("a");t.href=e;t.download="";document.body.appendChild(t);t.click();document.body.removeChild(t);return void 0}async revert(){await this.ready;await this._revert()}createCheckpoint(){const e=this._manager.contents;return this._manager.ready.then((()=>e.createCheckpoint(this._path)))}deleteCheckpoint(e){const t=this._manager.contents;return this._manager.ready.then((()=>t.deleteCheckpoint(this._path,e)))}restoreCheckpoint(e){const t=this._manager.contents;const n=this._path;return this._manager.ready.then((()=>{if(e){return t.restoreCheckpoint(n,e)}return this.listCheckpoints().then((i=>{if(this.isDisposed||!i.length){return}e=i[i.length-1].id;return t.restoreCheckpoint(n,e)}))}))}listCheckpoints(){const e=this._manager.contents;return this._manager.ready.then((()=>e.listCheckpoints(this._path)))}addSibling(e,t={}){const n=this._opener;if(n){n(e,t)}return new l.DisposableDelegate((()=>{e.close()}))}_onFileChanged(e,t){var n,i,s;if(t.type==="save"&&this._model.collaborative){if(((n=this._contentsModel)===null||n===void 0?void 0:n.path)!==((i=t.newValue)===null||i===void 0?void 0:i.path)){return}this._updateContentsModel({...this._contentsModel,...t.newValue});return}if(t.type!=="rename"){return}let o=t.oldValue&&t.oldValue.path;let r=t.newValue&&t.newValue.path;if(r&&this._path.indexOf(o||"")===0){let e=t.newValue;if(o!==this._path){r=this._path.replace(new RegExp(`^${o}/`),`${r}/`);o=this._path;e={last_modified:(s=t.newValue)===null||s===void 0?void 0:s.created,path:r}}this._updateContentsModel({...this._contentsModel,...e});this._updatePath(r)}}_onSessionChanged(e,t){if(t!=="path"){return}const n=this._manager.contents.driveName(this.path);let i=this.sessionContext.session.path;if(n){i=`${n}:${i}`}this._updatePath(i)}_updateContentsModel(e){var t,n,i,s;const o={path:e.path,name:e.name,type:e.type,writable:e.writable,created:e.created,last_modified:e.last_modified,mimetype:e.mimetype,format:e.format,hash:e.hash,hash_algorithm:e.hash_algorithm};const r=(n=(t=this._contentsModel)===null||t===void 0?void 0:t.last_modified)!==null&&n!==void 0?n:null;const a=(s=(i=this._contentsModel)===null||i===void 0?void 0:i.hash)!==null&&s!==void 0?s:null;this._contentsModel=o;if(!r&&!a||!a&&o.last_modified!==r||a&&o.hash!==a){this._fileChanged.emit(o)}}_updatePath(e){var t,n,i,o;if(this._path===e){return}this._path=e;const r=this._manager.contents.localPath(e);const a=s.PathExt.basename(r);if(((t=this.sessionContext.session)===null||t===void 0?void 0:t.path)!==r){void((n=this.sessionContext.session)===null||n===void 0?void 0:n.setPath(r))}if(((i=this.sessionContext.session)===null||i===void 0?void 0:i.name)!==a){void((o=this.sessionContext.session)===null||o===void 0?void 0:o.setName(a))}if(this.urlResolver.path!==e){this.urlResolver.path=e}if(this._contentsModel&&(this._contentsModel.path!==e||this._contentsModel.name!==a)){const t={...this._contentsModel,name:a,path:e};this._updateContentsModel(t)}this._pathChanged.emit(e)}async _populate(){this._isPopulated=true;this._isReady=true;this._populatedPromise.resolve(void 0);await this._maybeCheckpoint(false);if(this.isDisposed){return}const e=this._model.defaultKernelName||this.sessionContext.kernelPreference.name;this.sessionContext.kernelPreference={...this.sessionContext.kernelPreference,name:e,language:this._model.defaultKernelLanguage};void this.sessionContext.initialize().then((e=>{if(e){void this._dialogs.selectKernel(this.sessionContext)}}))}async _rename(e){const t=this.localPath.split("/");t[t.length-1]=e;let n=s.PathExt.join(...t);const i=this._manager.contents.driveName(this.path);if(i){n=`${i}:${n}`}await this._manager.contents.rename(this.path,n)}async _save(){this._saveState.emit("started");const e=this._createSaveOptions();try{await this._manager.ready;if(this._model.collaborative){this._saveState.emit("completed");return Promise.resolve()}const t=await this._maybeSave(e);if(this.isDisposed){return}this._model.dirty=false;this._updateContentsModel(t);if(!this._isPopulated){await this._populate()}this._saveState.emit("completed")}catch(t){const{name:e}=t;if(e==="ModalCancelError"||e==="ModalDuplicateError"){throw t}const n=this._manager.contents.localPath(this._path);const i=s.PathExt.basename(n);void this._handleError(t,this._trans.__("File Save Error for %1",i));this._saveState.emit("failed");throw t}}_revert(e=false){const t={type:this._factory.contentType,content:this._factory.fileFormat!==null,hash:this._factory.fileFormat!==null,...this._factory.fileFormat!==null?{format:this._factory.fileFormat}:{},contentProviderId:this._contentProviderId};const n=this._path;const i=this._model;return this._manager.ready.then((()=>this._manager.contents.get(n,t))).then((e=>{if(this.isDisposed){return}if(e.content){if(e.format==="json"){i.fromJSON(e.content)}else{let t=e.content;if(t.indexOf("\r\n")!==-1){this._lineEnding="\r\n";t=t.replace(/\r\n/g,"\n")}else if(t.indexOf("\r")!==-1){this._lineEnding="\r";t=t.replace(/\r/g,"\n")}else{this._lineEnding=null}i.fromString(t)}}this._updateContentsModel(e);i.dirty=false;if(!this._isPopulated){return this._populate()}})).catch((async e=>{const t=this._manager.contents.localPath(this._path);const n=s.PathExt.basename(t);void this._handleError(e,this._trans.__("File Load Error for %1",n));throw e}))}_maybeSave(e){const t=this._path;const n=this._manager.contents.get(t,{content:false,hash:true,contentProviderId:this._contentProviderId});return n.then((n=>{var i,s,o,r;if(this.isDisposed){return Promise.reject(new Error("Disposed"))}const a=((i=this.contentsModel)===null||i===void 0?void 0:i.hash)!==undefined&&((s=this.contentsModel)===null||s===void 0?void 0:s.hash)!==null&&n.hash!==undefined&&n.hash!==null;const l=(o=this.contentsModel)===null||o===void 0?void 0:o.hash;const d=n.hash;if(a&&l!==d){console.warn(`Different hash found for ${this.path}`);return this._raiseConflict(n,e)}const c=this._lastModifiedCheckMargin;const h=(r=this.contentsModel)===null||r===void 0?void 0:r.last_modified;const u=h?new Date(h):new Date;const p=new Date(n.last_modified);if(!a&&h&&p.getTime()-u.getTime()>c){console.warn(`Last saving performed ${u} `+`while the current file seems to have been saved `+`${p}`);return this._raiseConflict(n,e)}return this._manager.contents.save(t,e).then((async e=>{const n=await this._manager.contents.get(t,{content:false,hash:true,contentProviderId:this._contentProviderId});return{...e,hash:n.hash,hash_algorithm:n.hash_algorithm}}))}),(n=>{if(n.response&&n.response.status===404){return this._manager.contents.save(t,e).then((async e=>{const n=await this._manager.contents.get(t,{content:false,hash:true,contentProviderId:this._contentProviderId});return{...e,hash:n.hash,hash_algorithm:n.hash_algorithm}}))}throw n}))}async _handleError(e,t){await(0,i.showErrorMessage)(t,e);return}_maybeCheckpoint(e){let t=Promise.resolve(void 0);if(!this.canSave){return t}if(e){t=this.createCheckpoint().then()}else{t=this.listCheckpoints().then((e=>{if(!this.isDisposed&&!e.length&&this.canSave){return this.createCheckpoint().then()}}))}return t.catch((e=>{if(!e.response||e.response.status!==403){throw e}}))}_raiseConflict(e,t){if(this._conflictModalIsOpen){const e=new Error("Modal is already displayed");e.name="ModalDuplicateError";return Promise.reject(e)}const n=this._trans.__(`"%1" has changed on disk since the last time it was opened or saved.\nDo you want to overwrite the file on disk with the version open here,\nor load the version on disk (revert)?`,this.path);const s=i.Dialog.okButton({label:this._trans.__("Revert"),actions:["revert"]});const o=i.Dialog.warnButton({label:this._trans.__("Overwrite"),actions:["overwrite"]});this._conflictModalIsOpen=true;return(0,i.showDialog)({title:this._trans.__("File Changed"),body:n,buttons:[i.Dialog.cancelButton(),s,o]}).then((n=>{this._conflictModalIsOpen=false;if(this.isDisposed){return Promise.reject(new Error("Disposed"))}if(n.button.actions.includes("overwrite")){return this._manager.contents.save(this._path,{...t,contentProviderId:this._contentProviderId})}if(n.button.actions.includes("revert")){return this.revert().then((()=>e))}const i=new Error("Cancel");i.name="ModalCancelError";return Promise.reject(i)}))}_maybeOverWrite(e){const t=this._trans.__('"%1" already exists. Do you want to replace it?',e);const n=i.Dialog.warnButton({label:this._trans.__("Overwrite"),accept:true});return(0,i.showDialog)({title:this._trans.__("File Overwrite?"),body:t,buttons:[i.Dialog.cancelButton(),n]}).then((t=>{if(this.isDisposed){return Promise.reject(new Error("Disposed"))}if(t.button.accept){return this._manager.contents.delete(e).then((()=>this._finishSaveAs(e)))}}))}async _finishSaveAs(e){this._saveState.emit("started");try{await this._manager.ready;const t=this._createSaveOptions();await this._manager.contents.save(e,t);await this._maybeCheckpoint(true);this._saveState.emit("completed")}catch(t){if(t.message==="Cancel"||t.message==="Modal is already displayed"){throw t}const e=this._manager.contents.localPath(this._path);const n=s.PathExt.basename(e);void this._handleError(t,this._trans.__("File Save Error for %1",n));this._saveState.emit("failed");return}}_createSaveOptions(){let e=null;if(this._factory.fileFormat==="json"){e=this._model.toJSON()}else{e=this._model.toString();if(this._lineEnding){e=e.replace(/\n/g,this._lineEnding)}}return{type:this._factory.contentType,format:this._factory.fileFormat,content:e}}}var u;(function(e){function t(e,t){t=t||r.nullTranslator;const n=t.load("jupyterlab");const o=i.Dialog.okButton({label:n.__("Save"),accept:true});return(0,i.showDialog)({title:n.__("Save File As…"),body:new s(e),buttons:[i.Dialog.cancelButton(),o]}).then((e=>{var t;if(e.button.accept){return(t=e.value)!==null&&t!==void 0?t:undefined}return}))}e.getSavePath=t;function n(){}e.noOp=n;class s extends c.Widget{constructor(e){super({node:o(e)})}getValue(){return this.node.value}}function o(e){const t=document.createElement("input");t.value=e;return t}})(u||(u={}));var p=n(54723);var m=n(44914);function g(e,t){var n;let s=(t!==null&&t!==void 0?t:r.nullTranslator).load("jupyterlab");return i.ReactWidget.create(m.createElement("div",null,m.createElement("span",{className:"jp-ToolbarLabelComponent",title:s.__(`Document is read-only. "Save" is disabled; use "Save as…" instead`)},s.__(`%1 is read-only`,(n=e.context.contentsModel)===null||n===void 0?void 0:n.type))))}class f extends p.CodeEditor.Model{constructor(e={}){var t;super({sharedModel:e.sharedModel});this._defaultLang="";this._dirty=false;this._readOnly=false;this._contentChanged=new d.Signal(this);this._stateChanged=new d.Signal(this);this._defaultLang=(t=e.languagePreference)!==null&&t!==void 0?t:"";this._collaborationEnabled=!!e.collaborationEnabled;this.sharedModel.changed.connect(this._onStateChanged,this)}get contentChanged(){return this._contentChanged}get stateChanged(){return this._stateChanged}get dirty(){return this._dirty}set dirty(e){const t=this._dirty;if(e===t){return}this._dirty=e;this.triggerStateChange({name:"dirty",oldValue:t,newValue:e})}get readOnly(){return this._readOnly}set readOnly(e){if(e===this._readOnly){return}const t=this._readOnly;this._readOnly=e;this.triggerStateChange({name:"readOnly",oldValue:t,newValue:e})}get defaultKernelName(){return""}get defaultKernelLanguage(){return this._defaultLang}get collaborative(){return this._collaborationEnabled}toString(){return this.sharedModel.getSource()}fromString(e){this.sharedModel.setSource(e)}toJSON(){return JSON.parse(this.sharedModel.getSource()||"null")}fromJSON(e){this.fromString(JSON.stringify(e))}initialize(){return}triggerStateChange(e){this._stateChanged.emit(e)}triggerContentChange(){this._contentChanged.emit(void 0);this.dirty=true}_onStateChanged(e,t){if(t.sourceChange){this.triggerContentChange()}if(t.stateChange){t.stateChange.forEach((e=>{if(e.name==="dirty"){this.dirty=e.newValue}else if(e.oldValue!==e.newValue){this.triggerStateChange({newValue:undefined,oldValue:undefined,...e})}}))}}}class v{constructor(e){this._isDisposed=false;this._collaborative=e!==null&&e!==void 0?e:true}get name(){return"text"}get contentType(){return"file"}get fileFormat(){return"text"}get collaborative(){return this._collaborative}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed=true}createNew(e={}){const t=e.collaborationEnabled&&this.collaborative;return new f({...e,collaborationEnabled:t})}preferredLanguage(e){return""}}class _ extends v{get name(){return"base64"}get contentType(){return"file"}get fileFormat(){return"base64"}}class b{constructor(e){this._isDisposed=false;this._widgetCreated=new d.Signal(this);this._translator=e.translator||r.nullTranslator;this._name=e.name;this._label=e.label||e.name;this._readOnly=e.readOnly===undefined?false:e.readOnly;this._defaultFor=e.defaultFor?e.defaultFor.slice():[];this._defaultRendered=(e.defaultRendered||[]).slice();this._fileTypes=e.fileTypes.slice();this._modelName=e.modelName||"text";this._preferKernel=!!e.preferKernel;this._canStartKernel=!!e.canStartKernel;this._shutdownOnClose=!!e.shutdownOnClose;this._autoStartDefault=!!e.autoStartDefault;this._toolbarFactory=e.toolbarFactory;this._contentProviderId=e.contentProviderId}get widgetCreated(){return this._widgetCreated}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;d.Signal.clearData(this)}get readOnly(){return this._readOnly}get name(){return this._name}get label(){return this._label}get fileTypes(){return this._fileTypes.slice()}get modelName(){return this._modelName}get defaultFor(){return this._defaultFor.slice()}get defaultRendered(){return this._defaultRendered.slice()}get preferKernel(){return this._preferKernel}get canStartKernel(){return this._canStartKernel}get translator(){return this._translator}get shutdownOnClose(){return this._shutdownOnClose}set shutdownOnClose(e){this._shutdownOnClose=e}get autoStartDefault(){return this._autoStartDefault}set autoStartDefault(e){this._autoStartDefault=e}createNew(e,t){var n;const s=this.createNewWidget(e,t);(0,i.setToolbar)(s,(n=this._toolbarFactory)!==null&&n!==void 0?n:this.defaultToolbarFactory.bind(this));this._widgetCreated.emit(s);return s}get contentProviderId(){return this._contentProviderId}set contentProviderId(e){if(this._contentProviderId&&e!==this._contentProviderId){throw Error(`Cannot change content provider on factory with an existing provider: ${this._contentProviderId}`)}this._contentProviderId=e}defaultToolbarFactory(e){return[]}}const y="jp-mod-dirty";class w extends i.MainAreaWidget{constructor(e){var t;e.reveal=Promise.all([e.reveal,e.context.ready]);super(e);this._trans=((t=e.translator)!==null&&t!==void 0?t:r.nullTranslator).load("jupyterlab");this.context=e.context;this.context.pathChanged.connect(this._onPathChanged,this);this._onPathChanged(this.context,this.context.path);this.context.model.stateChanged.connect(this._onModelStateChanged,this);void this.context.ready.then((()=>{this._handleDirtyState()}));this.title.changed.connect(this._onTitleChanged,this)}setFragment(e){}async _onTitleChanged(e){const t=/[\/\\:]/;const n=this.title.label;const i=this.context.localPath.split("/").pop()||this.context.localPath;if(n===i){return}if(n.length>0&&!t.test(n)){const e=this.context.path;await this.context.rename(n);if(this.context.path!==e){return}}this.title.label=i}_onPathChanged(e,t){this.title.label=s.PathExt.basename(e.localPath);this.isUntitled=false}_onModelStateChanged(e,t){var n;if(t.name==="dirty"){this._handleDirtyState()}if(!this.context.model.dirty){if(((n=this.context.contentsModel)===null||n===void 0?void 0:n.writable)===false){const e=g(this);let t=this.toolbar.insertBefore("kernelName","read-only-indicator",e);if(!t){this.toolbar.addItem("read-only-indicator",e)}}}}_handleDirtyState(){if(this.context.model.dirty&&!this.title.className.includes(y)){this.title.className+=` ${y}`}else{this.title.className=this.title.className.replace(y,"")}}}var C=n(42856);class x extends c.Widget{constructor(e){super();this._changeCallback=e=>{if(!e.data||!e.data[this.mimeType]){return}const t=e.data[this.mimeType];if(typeof t==="string"){if(t!==this._context.model.toString()){this._context.model.fromString(t)}}else if(t!==null&&t!==undefined&&!a.JSONExt.deepEqual(t,this._context.model.toJSON())){this._context.model.fromJSON(t)}};this._fragment="";this._ready=new a.PromiseDelegate;this._isRendering=false;this._renderRequested=false;this.addClass("jp-MimeDocument");this.translator=e.translator||r.nullTranslator;this._trans=this.translator.load("jupyterlab");this.mimeType=e.mimeType;this._dataType=e.dataType||"string";this._context=e.context;this.renderer=e.renderer;const t=this.layout=new c.StackedLayout;t.addWidget(this.renderer);this._context.ready.then((()=>this._render())).then((()=>{if(this.node===document.activeElement){C.MessageLoop.sendMessage(this.renderer,c.Widget.Msg.ActivateRequest)}this._monitor=new s.ActivityMonitor({signal:this._context.model.contentChanged,timeout:e.renderTimeout});this._monitor.activityStopped.connect(this.update,this);this._ready.resolve(undefined)})).catch((e=>{requestAnimationFrame((()=>{this.dispose()}));void(0,i.showErrorMessage)(this._trans.__("Renderer Failure: %1",this._context.path),e)}))}[i.Printing.symbol](){return i.Printing.getPrintFunction(this.renderer)}get ready(){return this._ready.promise}setFragment(e){this._fragment=e;this.update()}dispose(){if(this.isDisposed){return}if(this._monitor){this._monitor.dispose()}this._monitor=null;super.dispose()}onUpdateRequest(e){if(this._context.isReady){void this._render();this._fragment=""}}async _render(){if(this.isDisposed){return}if(this._isRendering){this._renderRequested=true;return}this._renderRequested=false;const e=this._context;const t=e.model;const n={};if(this._dataType==="string"){n[this.mimeType]=t.toString()}else{n[this.mimeType]=t.toJSON()}const s=new o.MimeModel({data:n,callback:this._changeCallback,metadata:{fragment:this._fragment}});try{this._isRendering=true;await this.renderer.renderModel(s);this._isRendering=false;if(this._renderRequested){return this._render()}}catch(r){requestAnimationFrame((()=>{this.dispose()}));void(0,i.showErrorMessage)(this._trans.__("Renderer Failure: %1",e.path),r)}}}class S extends w{setFragment(e){this.content.setFragment(e)}}class k extends b{constructor(e){super(j.createRegistryOptions(e));this._rendermime=e.rendermime;this._renderTimeout=e.renderTimeout||1e3;this._dataType=e.dataType||"string";this._fileType=e.primaryFileType;this._factory=e.factory}createNewWidget(e){var t,n;const i=this._fileType;const s=(i===null||i===void 0?void 0:i.mimeTypes.length)?i.mimeTypes[0]:p.IEditorMimeTypeService.defaultMimeType;const o=this._rendermime.clone({resolver:e.urlResolver});let r;if(this._factory&&this._factory.mimeTypes.includes(s)){r=this._factory.createRenderer({mimeType:s,resolver:o.resolver,sanitizer:o.sanitizer,linkHandler:o.linkHandler,latexTypesetter:o.latexTypesetter,markdownParser:o.markdownParser})}else{r=o.createRenderer(s)}const a=new x({context:e,renderer:r,mimeType:s,renderTimeout:this._renderTimeout,dataType:this._dataType});a.title.icon=i===null||i===void 0?void 0:i.icon;a.title.iconClass=(t=i===null||i===void 0?void 0:i.iconClass)!==null&&t!==void 0?t:"";a.title.iconLabel=(n=i===null||i===void 0?void 0:i.iconLabel)!==null&&n!==void 0?n:"";const l=new S({content:a,context:e});return l}}var j;(function(e){function t(e){return{...e,readOnly:true}}e.createRegistryOptions=t})(j||(j={}));var I=n(26331);var E=n(34236);class T{constructor(e={}){this._modelFactories=Object.create(null);this._widgetFactories=Object.create(null);this._defaultWidgetFactory="";this._defaultWidgetFactoryOverrides=Object.create(null);this._defaultWidgetFactories=Object.create(null);this._defaultRenderedWidgetFactories=Object.create(null);this._widgetFactoriesForFileType=Object.create(null);this._fileTypes=[];this._extenders=Object.create(null);this._changed=new d.Signal(this);this._isDisposed=false;const t=e.textModelFactory;this.translator=e.translator||r.nullTranslator;if(t&&t.name!=="text"){throw new Error("Text model factory must have the name `text`")}this._modelFactories["text"]=t||new v(true);const n=e.initialFileTypes||T.getDefaultFileTypes(this.translator);n.forEach((e=>{const t={...T.getFileTypeDefaults(this.translator),...e};this._fileTypes.push(t)}))}get changed(){return this._changed}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;for(const e in this._modelFactories){this._modelFactories[e].dispose()}for(const e in this._widgetFactories){this._widgetFactories[e].dispose()}for(const e in this._extenders){this._extenders[e].length=0}this._fileTypes.length=0;d.Signal.clearData(this)}addWidgetFactory(e){const t=e.name.toLowerCase();if(!t||t==="default"){throw Error("Invalid factory name")}if(this._widgetFactories[t]){console.warn(`Duplicate registered factory ${t}`);return new l.DisposableDelegate(M.noOp)}this._widgetFactories[t]=e;for(const n of e.defaultFor||[]){if(e.fileTypes.indexOf(n)===-1){continue}if(n==="*"){this._defaultWidgetFactory=t}else{this._defaultWidgetFactories[n]=t}}for(const n of e.defaultRendered||[]){if(e.fileTypes.indexOf(n)===-1){continue}this._defaultRenderedWidgetFactories[n]=t}for(const n of e.fileTypes){if(!this._widgetFactoriesForFileType[n]){this._widgetFactoriesForFileType[n]=[]}this._widgetFactoriesForFileType[n].push(t)}this._changed.emit({type:"widgetFactory",name:t,change:"added"});return new l.DisposableDelegate((()=>{delete this._widgetFactories[t];if(this._defaultWidgetFactory===t){this._defaultWidgetFactory=""}for(const e of Object.keys(this._defaultWidgetFactories)){if(this._defaultWidgetFactories[e]===t){delete this._defaultWidgetFactories[e]}}for(const e of Object.keys(this._defaultRenderedWidgetFactories)){if(this._defaultRenderedWidgetFactories[e]===t){delete this._defaultRenderedWidgetFactories[e]}}for(const e of Object.keys(this._widgetFactoriesForFileType)){E.ArrayExt.removeFirstOf(this._widgetFactoriesForFileType[e],t);if(this._widgetFactoriesForFileType[e].length===0){delete this._widgetFactoriesForFileType[e]}}for(const e of Object.keys(this._defaultWidgetFactoryOverrides)){if(this._defaultWidgetFactoryOverrides[e]===t){delete this._defaultWidgetFactoryOverrides[e]}}this._changed.emit({type:"widgetFactory",name:t,change:"removed"})}))}addModelFactory(e){const t=e.name.toLowerCase();if(this._modelFactories[t]){console.warn(`Duplicate registered factory ${t}`);return new l.DisposableDelegate(M.noOp)}this._modelFactories[t]=e;this._changed.emit({type:"modelFactory",name:t,change:"added"});return new l.DisposableDelegate((()=>{delete this._modelFactories[t];this._changed.emit({type:"modelFactory",name:t,change:"removed"})}))}addWidgetExtension(e,t){e=e.toLowerCase();if(!(e in this._extenders)){this._extenders[e]=[]}const n=this._extenders[e];const i=E.ArrayExt.firstIndexOf(n,t);if(i!==-1){console.warn(`Duplicate registered extension for ${e}`);return new l.DisposableDelegate(M.noOp)}this._extenders[e].push(t);this._changed.emit({type:"widgetExtension",name:e,change:"added"});return new l.DisposableDelegate((()=>{E.ArrayExt.removeFirstOf(this._extenders[e],t);this._changed.emit({type:"widgetExtension",name:e,change:"removed"})}))}addFileType(e,t){const n={...T.getFileTypeDefaults(this.translator),...e,...!(e.icon||e.iconClass)&&{icon:I.fileIcon}};this._fileTypes.push(n);if(t){const e=n.name.toLowerCase();t.map((e=>e.toLowerCase())).forEach((t=>{if(!this._widgetFactoriesForFileType[e]){this._widgetFactoriesForFileType[e]=[]}if(!this._widgetFactoriesForFileType[e].includes(t)){this._widgetFactoriesForFileType[e].push(t)}}));if(!this._defaultWidgetFactories[e]){this._defaultWidgetFactories[e]=this._widgetFactoriesForFileType[e][0]}}this._changed.emit({type:"fileType",name:n.name,change:"added"});return new l.DisposableDelegate((()=>{E.ArrayExt.removeFirstOf(this._fileTypes,n);if(t){const e=n.name.toLowerCase();for(const n of t.map((e=>e.toLowerCase()))){E.ArrayExt.removeFirstOf(this._widgetFactoriesForFileType[e],n)}if(this._defaultWidgetFactories[e]===t[0].toLowerCase()){delete this._defaultWidgetFactories[e]}}this._changed.emit({type:"fileType",name:e.name,change:"removed"})}))}preferredWidgetFactories(e){const t=new Set;const n=this.getFileTypesForPath(s.PathExt.basename(e));n.forEach((e=>{if(e.name in this._defaultWidgetFactoryOverrides){t.add(this._defaultWidgetFactoryOverrides[e.name])}}));n.forEach((e=>{if(e.name in this._defaultWidgetFactories){t.add(this._defaultWidgetFactories[e.name])}}));n.forEach((e=>{if(e.name in this._defaultRenderedWidgetFactories){t.add(this._defaultRenderedWidgetFactories[e.name])}}));if(this._defaultWidgetFactory){t.add(this._defaultWidgetFactory)}for(const s of n){if(s.name in this._widgetFactoriesForFileType){for(const e of this._widgetFactoriesForFileType[s.name]){t.add(e)}}}if("*"in this._widgetFactoriesForFileType){for(const e of this._widgetFactoriesForFileType["*"]){t.add(e)}}const i=[];for(const s of t){const e=this._widgetFactories[s];if(!e){continue}const t=e.modelName||"text";if(t in this._modelFactories){i.push(e)}}return i}defaultRenderedWidgetFactory(e){const t=this.getFileTypesForPath(s.PathExt.basename(e)).map((e=>e.name));for(const n in t){if(n in this._defaultWidgetFactoryOverrides){return this._widgetFactories[this._defaultWidgetFactoryOverrides[n]]}}for(const n in t){if(n in this._defaultRenderedWidgetFactories){return this._widgetFactories[this._defaultRenderedWidgetFactories[n]]}}return this.defaultWidgetFactory(e)}defaultWidgetFactory(e){if(!e){return this._widgetFactories[this._defaultWidgetFactory]}return this.preferredWidgetFactories(e)[0]}setDefaultWidgetFactory(e,t){e=e.toLowerCase();if(!this.getFileType(e)){throw Error(`Cannot find file type ${e}`)}if(!t){if(this._defaultWidgetFactoryOverrides[e]){delete this._defaultWidgetFactoryOverrides[e]}return}if(!this.getWidgetFactory(t)){throw Error(`Cannot find widget factory ${t}`)}t=t.toLowerCase();const n=this._widgetFactoriesForFileType[e];if(t!==this._defaultWidgetFactory&&!(n&&n.includes(t))){throw Error(`Factory ${t} cannot view file type ${e}`)}this._defaultWidgetFactoryOverrides[e]=t}*widgetFactories(){for(const e in this._widgetFactories){yield this._widgetFactories[e]}}*modelFactories(){for(const e in this._modelFactories){yield this._modelFactories[e]}}*widgetExtensions(e){e=e.toLowerCase();if(e in this._extenders){for(const t of this._extenders[e]){yield t}}}*fileTypes(){for(const e of this._fileTypes){yield e}}getWidgetFactory(e){return this._widgetFactories[e.toLowerCase()]}getModelFactory(e){return this._modelFactories[e.toLowerCase()]}getFileType(e){e=e.toLowerCase();return(0,E.find)(this._fileTypes,(t=>t.name.toLowerCase()===e))}getKernelPreference(e,t,n){t=t.toLowerCase();const i=this._widgetFactories[t];if(!i){return void 0}const o=this.getModelFactory(i.modelName||"text");if(!o){return void 0}const r=o.preferredLanguage(s.PathExt.basename(e));const a=n&&n.name;const l=n&&n.id;return{id:l,name:a,language:r,shouldStart:i.preferKernel,canStart:i.canStartKernel,shutdownOnDispose:i.shutdownOnClose,autoStartDefault:i.autoStartDefault}}getFileTypeForModel(e){let t=null;if(e.name||e.path){const n=e.name||s.PathExt.basename(e.path);const i=this.getFileTypesForPath(n);if(i.length>0){t=i[0]}}switch(e.type){case"directory":if(t!==null&&t.contentType==="directory"){return t}return(0,E.find)(this._fileTypes,(e=>e.contentType==="directory"))||T.getDefaultDirectoryFileType(this.translator);case"notebook":if(t!==null&&t.contentType==="notebook"){return t}return(0,E.find)(this._fileTypes,(e=>e.contentType==="notebook"))||T.getDefaultNotebookFileType(this.translator);default:if(t!==null){return t}return this.getFileType("text")||T.getDefaultTextFileType(this.translator)}}getFileTypesForPath(e){const t=[];const n=s.PathExt.basename(e);let i=(0,E.find)(this._fileTypes,(e=>!!(e.pattern&&n.match(e.pattern)!==null)));if(i){t.push(i)}let o=M.extname(n);while(o.length>1){const e=this._fileTypes.filter((e=>e.extensions.map((e=>e.toLowerCase())).includes(o)));t.push(...e);o="."+o.split(".").slice(2).join(".")}return t}}(function(e){function t(e){e=e||r.nullTranslator;const t=e===null||e===void 0?void 0:e.load("jupyterlab");return{name:"default",displayName:t.__("default"),extensions:[],mimeTypes:[],contentType:"file",fileFormat:"text"}}e.getFileTypeDefaults=t;function n(e){e=e||r.nullTranslator;const n=e===null||e===void 0?void 0:e.load("jupyterlab");const i=t(e);return{...i,name:"text",displayName:n.__("Text"),mimeTypes:["text/plain"],extensions:[".txt"],icon:I.fileIcon}}e.getDefaultTextFileType=n;function i(e){e=e||r.nullTranslator;const n=e===null||e===void 0?void 0:e.load("jupyterlab");return{...t(e),name:"notebook",displayName:n.__("Notebook"),mimeTypes:["application/x-ipynb+json"],extensions:[".ipynb"],contentType:"notebook",fileFormat:"json",icon:I.notebookIcon}}e.getDefaultNotebookFileType=i;function s(e){e=e||r.nullTranslator;const n=e===null||e===void 0?void 0:e.load("jupyterlab");return{...t(e),name:"directory",displayName:n.__("Directory"),extensions:[],mimeTypes:["text/directory"],contentType:"directory",icon:I.folderIcon}}e.getDefaultDirectoryFileType=s;function o(e){e=e||r.nullTranslator;const t=e===null||e===void 0?void 0:e.load("jupyterlab");return[n(e),i(e),s(e),{name:"markdown",displayName:t.__("Markdown File"),extensions:[".md"],mimeTypes:["text/markdown"],icon:I.markdownIcon},{name:"PDF",displayName:t.__("PDF File"),extensions:[".pdf"],mimeTypes:["application/pdf"],icon:I.pdfIcon},{name:"python",displayName:t.__("Python File"),extensions:[".py"],mimeTypes:["text/x-python"],icon:I.pythonIcon},{name:"json",displayName:t.__("JSON File"),extensions:[".json"],mimeTypes:["application/json"],icon:I.jsonIcon},{name:"jsonl",displayName:t.__("JSONLines File"),extensions:[".jsonl",".ndjson"],mimeTypes:["text/jsonl","application/jsonl","application/json-lines"],icon:I.jsonIcon},{name:"julia",displayName:t.__("Julia File"),extensions:[".jl"],mimeTypes:["text/x-julia"],icon:I.juliaIcon},{name:"csv",displayName:t.__("CSV File"),extensions:[".csv"],mimeTypes:["text/csv"],icon:I.spreadsheetIcon},{name:"tsv",displayName:t.__("TSV File"),extensions:[".tsv"],mimeTypes:["text/csv"],icon:I.spreadsheetIcon},{name:"r",displayName:t.__("R File"),mimeTypes:["text/x-rsrc"],extensions:[".R"],icon:I.rKernelIcon},{name:"yaml",displayName:t.__("YAML File"),mimeTypes:["text/x-yaml","text/yaml"],extensions:[".yaml",".yml"],icon:I.yamlIcon},{name:"svg",displayName:t.__("Image"),mimeTypes:["image/svg+xml"],extensions:[".svg"],icon:I.imageIcon,fileFormat:"base64"},{name:"tiff",displayName:t.__("Image"),mimeTypes:["image/tiff"],extensions:[".tif",".tiff"],icon:I.imageIcon,fileFormat:"base64"},{name:"jpeg",displayName:t.__("Image"),mimeTypes:["image/jpeg"],extensions:[".jpg",".jpeg"],icon:I.imageIcon,fileFormat:"base64"},{name:"gif",displayName:t.__("Image"),mimeTypes:["image/gif"],extensions:[".gif"],icon:I.imageIcon,fileFormat:"base64"},{name:"png",displayName:t.__("Image"),mimeTypes:["image/png"],extensions:[".png"],icon:I.imageIcon,fileFormat:"base64"},{name:"bmp",displayName:t.__("Image"),mimeTypes:["image/bmp"],extensions:[".bmp"],icon:I.imageIcon,fileFormat:"base64"},{name:"webp",displayName:t.__("Image"),mimeTypes:["image/webp"],extensions:[".webp"],icon:I.imageIcon,fileFormat:"base64"}]}e.getDefaultFileTypes=o})(T||(T={}));var M;(function(e){function t(e){const t=s.PathExt.basename(e).split(".");t.shift();const n="."+t.join(".");return n.toLowerCase()}e.extname=t;function n(){}e.noOp=n})(M||(M={}))},79010:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(79993);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},68201:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>w});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(22441);var l=n.n(a);var d=n(84739);var c=n.n(d);var h=n(30619);var u=n.n(h);var p=n(1143);var m=n.n(p);const g="jp-mod-searchable";const f="jp-mod-search-active";var v;(function(e){e.search="documentsearch:start";e.searchAndReplace="documentsearch:startWithReplace";e.findNext="documentsearch:highlightNext";e.findPrevious="documentsearch:highlightPrevious";e.end="documentsearch:end";e.toggleSearchInSelection="documentsearch:toggleSearchInSelection"})(v||(v={}));const _={id:"@jupyterlab/documentsearch-extension:labShellWidgetListener",description:"Active search on valid document",requires:[i.ILabShell,a.ISearchProviderRegistry],autoStart:true,activate:(e,t,n)=>{const i=e=>{if(!e){return}if(n.hasProvider(e)){e.addClass(g)}else{e.removeClass(g)}};n.changed.connect((()=>i(t.activeWidget)));t.activeChanged.connect(((e,t)=>{const n=t.oldValue;if(n){n.removeClass(g)}i(t.newValue)}))}};class b{constructor(e){this._commandRegistry=e;this._cache=this._buildCache();this._commandRegistry.keyBindingChanged.connect(this._rebuildCache,this)}get next(){return this._cache.next}get previous(){return this._cache.previous}get toggleSearchInSelection(){return this._cache.toggleSearchInSelection}_rebuildCache(){this._cache=this._buildCache()}_buildCache(){const e=this._commandRegistry.keyBindings.find((e=>e.command===v.findNext));const t=this._commandRegistry.keyBindings.find((e=>e.command===v.findPrevious));const n=this._commandRegistry.keyBindings.find((e=>e.command===v.toggleSearchInSelection));return{next:e,previous:t,toggleSearchInSelection:n}}dispose(){this._commandRegistry.keyBindingChanged.disconnect(this._rebuildCache,this)}}const y={id:"@jupyterlab/documentsearch-extension:plugin",description:"Provides the document search registry.",provides:a.ISearchProviderRegistry,requires:[h.ITranslator],optional:[o.ICommandPalette,d.ISettingRegistry],autoStart:true,activate:(e,t,n,i)=>{var s;const r=t.load("jupyterlab");let l=500;let d="never";const c=new a.SearchProviderRegistry(t);const h=new Map;if(i){const t=i.load(y.id);const n=e=>{l=e.get("searchDebounceTime").composite;d=e.get("autoSearchInSelection").composite};Promise.all([t,e.restored]).then((([e])=>{n(e);e.changed.connect((e=>{n(e)}))})).catch((e=>{console.error(e.message)}))}const u=()=>{const t=e.shell.currentWidget;if(!t){return false}return c.hasProvider(t)};const m=n=>{if(!n){return}const i=n.id;let s=h.get(i);if(!s){const o=c.getProvider(n);if(!o){return}const r=new a.SearchDocumentModel(o,l);const d=new b(e.commands);const u=new a.SearchDocumentView(r,t,d);h.set(i,u);[v.findNext,v.findPrevious,v.end,v.toggleSearchInSelection].forEach((t=>{e.commands.notifyCommandChanged(t)}));u.closed.connect((()=>{if(!n.isDisposed){n.activate();n.removeClass(f)}}));u.disposed.connect((()=>{if(!n.isDisposed){n.activate();n.removeClass(f)}h.delete(i);[v.findNext,v.findPrevious,v.end,v.toggleSearchInSelection].forEach((t=>{e.commands.notifyCommandChanged(t)}))}));n.disposed.connect((()=>{u.dispose();r.dispose();o.dispose();d.dispose()}));s=u}if(!s.isAttached){p.Widget.attach(s,n.node);n.addClass(f);if(n instanceof o.MainAreaWidget){s.node.style.top=`${n.toolbar.node.getBoundingClientRect().height+n.contentHeader.node.getBoundingClientRect().height}px`}if(s.model.searchExpression){s.model.refresh()}}return s};e.commands.addCommand(v.search,{label:r.__("Find…"),isEnabled:u,execute:async t=>{const n=m(e.shell.currentWidget);if(n){const e=t["searchText"];if(e){n.setSearchText(e)}else{n.setSearchText(n.model.suggestedInitialQuery)}const i=n.model.selectionState;let s=false;switch(d){case"multiple-selected":s=i==="multiple";break;case"any-selected":s=i==="multiple"||i==="single";break;case"never":break}if(s){await n.model.setFilter("selection",true)}n.focusSearchInput()}}});e.commands.addCommand(v.searchAndReplace,{label:r.__("Find and Replace…"),isEnabled:u,execute:t=>{const n=m(e.shell.currentWidget);if(n){const e=t["searchText"];if(e){n.setSearchText(e)}else{n.setSearchText(n.model.suggestedInitialQuery)}const i=t["replaceText"];if(i){n.setReplaceText(i)}n.showReplace();n.focusSearchInput()}}});e.commands.addCommand(v.findNext,{label:r.__("Find Next"),isEnabled:()=>!!e.shell.currentWidget&&h.has(e.shell.currentWidget.id),execute:async()=>{var t;const n=e.shell.currentWidget;if(!n){return}await((t=h.get(n.id))===null||t===void 0?void 0:t.model.highlightNext())}});e.commands.addCommand(v.findPrevious,{label:r.__("Find Previous"),isEnabled:()=>!!e.shell.currentWidget&&h.has(e.shell.currentWidget.id),execute:async()=>{var t;const n=e.shell.currentWidget;if(!n){return}await((t=h.get(n.id))===null||t===void 0?void 0:t.model.highlightPrevious())}});e.commands.addCommand(v.end,{label:r.__("End Search"),isEnabled:()=>!!e.shell.currentWidget&&h.has(e.shell.currentWidget.id),execute:async()=>{var t;const n=e.shell.currentWidget;if(!n){return}(t=h.get(n.id))===null||t===void 0?void 0:t.close()}});e.commands.addCommand(v.toggleSearchInSelection,{label:r.__("Search in Selection"),isEnabled:()=>!!e.shell.currentWidget&&h.has(e.shell.currentWidget.id)&&"selection"in h.get(e.shell.currentWidget.id).model.filtersDefinition,execute:async()=>{var t;const n=e.shell.currentWidget;if(!n){return}const i=(t=h.get(n.id))===null||t===void 0?void 0:t.model;if(!i){return}const s=i.filters["selection"];return i.setFilter("selection",!s)}});(s=e.shell.currentChanged)===null||s===void 0?void 0:s.connect((()=>{Object.values(v).forEach((t=>{e.commands.notifyCommandChanged(t)}))}));if(n){[v.search,v.findNext,v.findPrevious,v.end,v.toggleSearchInSelection].forEach((e=>{n.addItem({command:e,category:r.__("Main Area")})}))}return c}};const w=[y,_]},13067:(e,t,n)=>{"use strict";var i=n(10395);var s=n(97913);var o=n(3579);var r=n(19562)},42866:(e,t,n)=>{"use strict";n.r(t);n.d(t,{FOUND_CLASSES:()=>a,GenericSearchProvider:()=>c,HTMLSearchEngine:()=>d,ISearchProviderRegistry:()=>se,SearchDocumentModel:()=>g,SearchDocumentView:()=>ee,SearchProvider:()=>o,SearchProviderRegistry:()=>ne,TextSearchEngine:()=>u});var i=n(1143);var s=n(2336);class o{constructor(e){this.widget=e;this._stateChanged=new s.Signal(this);this._filtersChanged=new s.Signal(this);this._disposed=false}get stateChanged(){return this._stateChanged}get filtersChanged(){return this._filtersChanged}get currentMatchIndex(){return null}get isDisposed(){return this._disposed}get matchesCount(){return null}dispose(){if(this._disposed){return}this._disposed=true;s.Signal.clearData(this)}getInitialQuery(){return""}getFilters(){return{}}static preserveCase(e,t){if(e.toUpperCase()===e){return t.toUpperCase()}if(e.toLowerCase()===e){return t.toLowerCase()}if(r(e)===e){return r(t)}return t}}function r([e="",...t]){return e.toUpperCase()+""+t.join("").toLowerCase()}const a=["cm-string","cm-overlay","cm-searching"];const l=["CodeMirror-selectedtext"];class d{static search(e,t){if(!(t instanceof Node)){console.warn("Unable to search with HTMLSearchEngine the provided object.",t);return Promise.resolve([])}if(!e.global){e=new RegExp(e.source,e.flags+"g")}const n=[];const i=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode:n=>{let i=n.parentElement;while(i!==t){if(i.nodeName in d.UNSUPPORTED_ELEMENTS){return NodeFilter.FILTER_REJECT}i=i.parentElement}return e.test(n.textContent)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});let s=null;while((s=i.nextNode())!==null){e.lastIndex=0;let t=null;while((t=e.exec(s.textContent))!==null){n.push({text:t[0],position:t.index,node:s})}}return Promise.resolve(n)}}d.UNSUPPORTED_ELEMENTS={BASE:true,HEAD:true,LINK:true,META:true,STYLE:true,TITLE:true,BODY:true,AREA:true,AUDIO:true,IMG:true,MAP:true,TRACK:true,VIDEO:true,APPLET:true,EMBED:true,IFRAME:true,NOEMBED:true,OBJECT:true,PARAM:true,PICTURE:true,SOURCE:true,CANVAS:true,NOSCRIPT:true,SCRIPT:true,svg:true,SVG:true};class c extends o{constructor(){super(...arguments);this.isReadOnly=true;this._matches=[];this._mutationObserver=new MutationObserver(this._onWidgetChanged.bind(this));this._markNodes=new Array}static isApplicable(e){return e instanceof i.Widget}static createNew(e,t,n){return new c(e)}get currentMatchIndex(){return this._currentMatchIndex>=0?this._currentMatchIndex:null}get currentMatch(){var e;return(e=this._matches[this._currentMatchIndex])!==null&&e!==void 0?e:null}get matches(){return this._matches?this._matches.map((e=>Object.assign({},e))):this._matches}get matchesCount(){return this._matches.length}clearHighlight(){if(this._currentMatchIndex>=0){const e=this._markNodes[this._currentMatchIndex];e.classList.remove(...l)}this._currentMatchIndex=-1;return Promise.resolve()}dispose(){if(this.isDisposed){return}this.endQuery().catch((e=>{console.error(`Failed to end search query.`,e)}));super.dispose()}async highlightNext(e){var t;return(t=this._highlightNext(false,e!==null&&e!==void 0?e:true))!==null&&t!==void 0?t:undefined}async highlightPrevious(e){var t;return(t=this._highlightNext(true,e!==null&&e!==void 0?e:true))!==null&&t!==void 0?t:undefined}async replaceCurrentMatch(e,t){return Promise.resolve(false)}async replaceAllMatches(e){return Promise.resolve(false)}async startQuery(e,t={}){await this.endQuery();this._query=e;if(e===null){return Promise.resolve()}const n=await d.search(e,this.widget.node);let i=0;while(i{const i=document.createElement("mark");i.classList.add(...a);i.textContent=n.text;const s=e.splitText(n.position);s.textContent=s.textContent.slice(n.text.length);t.insertBefore(i,s);return i}));for(let n=o.length-1;n>=0;n--){this._markNodes.push(o[n])}}this._mutationObserver.observe(this.widget.node,{attributes:false,characterData:true,childList:true,subtree:true});this._matches=n}async endQuery(){this._mutationObserver.disconnect();this._markNodes.forEach((e=>{const t=e.parentNode;t.replaceChild(document.createTextNode(e.textContent),e);t.normalize()}));this._markNodes=[];this._matches=[];this._currentMatchIndex=-1}_highlightNext(e,t){if(this._matches.length===0){return null}if(this._currentMatchIndex===-1){this._currentMatchIndex=e?this.matches.length-1:0}else{const n=this._markNodes[this._currentMatchIndex];n.classList.remove(...l);this._currentMatchIndex=e?this._currentMatchIndex-1:this._currentMatchIndex+1;if(t&&(this._currentMatchIndex<0||this._currentMatchIndex>=this._matches.length)){this._currentMatchIndex=(this._currentMatchIndex+this._matches.length)%this._matches.length}}if(this._currentMatchIndex>=0&&this._currentMatchIndex=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.left>=0&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}const u={search(e,t){if(typeof t!=="string"){try{t=JSON.stringify(t)}catch(s){console.warn("Unable to search with TextSearchEngine non-JSON serializable object.",s,t);return Promise.resolve([])}}if(!e.global){e=new RegExp(e.source,e.flags+"g")}const n=new Array;let i=null;while((i=e.exec(t))!==null){n.push({text:i[0],position:i.index})}return Promise.resolve(n)}};var p=n(26331);var m=n(26568);class g extends p.VDomModel{constructor(e,t){super();this.searchProvider=e;this._caseSensitive=false;this._disposed=new s.Signal(this);this._parsingError="";this._preserveCase=false;this._initialQuery="";this._filters={};this._replaceText="";this._searchActive=false;this._searchExpression="";this._useRegex=false;this._wholeWords=false;this._filters={};if(this.searchProvider.getFilters){const e=this.searchProvider.getFilters();for(const t in e){this._filters[t]=e[t].default}}e.stateChanged.connect(this._onProviderStateChanged,this);this._searchDebouncer=new m.Debouncer((()=>{this._updateSearch().catch((e=>{console.error("Failed to update search on document.",e)}))}),t)}get caseSensitive(){return this._caseSensitive}set caseSensitive(e){if(this._caseSensitive!==e){this._caseSensitive=e;this.stateChanged.emit();this.refresh()}}get currentIndex(){return this.searchProvider.currentMatchIndex}get disposed(){return this._disposed}get filters(){return this._filters}get filtersDefinition(){var e,t,n;return(n=(t=(e=this.searchProvider).getFilters)===null||t===void 0?void 0:t.call(e))!==null&&n!==void 0?n:{}}get filtersDefinitionChanged(){return this.searchProvider.filtersChanged||null}get initialQuery(){return this._initialQuery}set initialQuery(e){this._initialQuery=e}get suggestedInitialQuery(){return this.searchProvider.getInitialQuery()}get selectionState(){return this.searchProvider.getSelectionState?this.searchProvider.getSelectionState():undefined}get isReadOnly(){return this.searchProvider.isReadOnly}get replaceOptionsSupport(){return this.searchProvider.replaceOptionsSupport}get parsingError(){return this._parsingError}get preserveCase(){return this._preserveCase}set preserveCase(e){if(this._preserveCase!==e){this._preserveCase=e;this.stateChanged.emit();this.refresh()}}get replaceText(){return this._replaceText}set replaceText(e){if(this._replaceText!==e){this._replaceText=e;this.stateChanged.emit()}}get searchExpression(){return this._searchExpression}set searchExpression(e){if(this._searchExpression!==e){this._searchExpression=e;this.stateChanged.emit();this.refresh()}}get totalMatches(){return this.searchProvider.matchesCount}get useRegex(){return this._useRegex}set useRegex(e){if(this._useRegex!==e){this._useRegex=e;this.stateChanged.emit();this.refresh()}}get wholeWords(){return this._wholeWords}set wholeWords(e){if(this._wholeWords!==e){this._wholeWords=e;this.stateChanged.emit();this.refresh()}}dispose(){if(this.isDisposed){return}if(this._searchExpression){this.endQuery().catch((e=>{console.error(`Failed to end query '${this._searchExpression}.`,e)}))}this.searchProvider.stateChanged.disconnect(this._onProviderStateChanged,this);this._searchDebouncer.dispose();super.dispose()}async endQuery(){this._searchActive=false;await this.searchProvider.endQuery();this.stateChanged.emit()}async highlightNext(){await this.searchProvider.highlightNext();this.stateChanged.emit()}async highlightPrevious(){await this.searchProvider.highlightPrevious();this.stateChanged.emit()}refresh(){this._searchDebouncer.invoke().catch((e=>{console.error("Failed to invoke search document debouncer.",e)}))}async replaceAllMatches(){await this.searchProvider.replaceAllMatches(this._replaceText,{preserveCase:this.preserveCase,regularExpression:this.useRegex});this.stateChanged.emit()}async replaceCurrentMatch(){await this.searchProvider.replaceCurrentMatch(this._replaceText,true,{preserveCase:this.preserveCase,regularExpression:this.useRegex});this.stateChanged.emit()}async setFilter(e,t){if(this._filters[e]!==t){if(this.searchProvider.validateFilter){this._filters[e]=await this.searchProvider.validateFilter(e,t);if(this._filters[e]===t){this.stateChanged.emit();this.refresh()}}else{this._filters[e]=t;this.stateChanged.emit();this.refresh()}}}async _updateSearch(){if(this._parsingError){this._parsingError="";this.stateChanged.emit()}try{const e=this.searchExpression?f.parseQuery(this.searchExpression,this.caseSensitive,this.useRegex,this.wholeWords):null;if(e){this._searchActive=true;await this.searchProvider.startQuery(e,this._filters)}else{this._searchActive=false;await this.searchProvider.endQuery()}this.stateChanged.emit()}catch(e){this._parsingError=e.toString();this.stateChanged.emit();console.error(`Failed to parse expression ${this.searchExpression}`,e)}}_onProviderStateChanged(){if(this._searchActive){this.refresh()}}}var f;(function(e){function t(e,t,n,i){const s=t?"gm":"gim";let o=n?e:e.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&");if(i){o="\\b"+o+"\\b"}const r=new RegExp(o,s);if(r.test("")){return null}return r}e.parseQuery=t})(f||(f={}));var v=n(30619);var _=n(93247);var b=n(14366);var y=n(44914);const w="jp-DocumentSearch-overlay";const C="jp-DocumentSearch-overlay-row";const x="jp-DocumentSearch-input";const S="jp-DocumentSearch-input-label";const k="jp-DocumentSearch-input-wrapper";const j="jp-DocumentSearch-input-button-off";const I="jp-DocumentSearch-input-button-on";const E="jp-DocumentSearch-index-counter";const T="jp-DocumentSearch-up-down-wrapper";const M="jp-DocumentSearch-up-down-button";const D="jp-DocumentSearch-filter-button";const A="jp-DocumentSearch-filter-button-enabled";const P="jp-DocumentSearch-regex-error";const L="jp-DocumentSearch-search-options";const R="jp-DocumentSearch-search-filter-disabled";const N="jp-DocumentSearch-search-filter";const O="jp-DocumentSearch-replace-button";const B="jp-DocumentSearch-replace-button-wrapper";const F="jp-DocumentSearch-replace-wrapper-class";const z="jp-DocumentSearch-replace-toggle";const H="jp-DocumentSearch-toggle-wrapper";const W="jp-DocumentSearch-toggle-placeholder";const V="jp-DocumentSearch-button-content";const U="jp-DocumentSearch-button-wrapper";const q="jp-DocumentSearch-spacer";function $(e){const[t,n]=(0,y.useState)(1);const i=(0,y.useCallback)((t=>{var i;const s=t?t.target:(i=e.inputRef)===null||i===void 0?void 0:i.current;if(s){const e=s.value.split(/\n/);let t=e.reduce(((e,t)=>e.length>t.length?e:t),"");if(s.parentNode&&s.parentNode instanceof HTMLElement){s.parentNode.dataset.value=t}n(e.length)}}),[]);(0,y.useEffect)((()=>{var t,n;(n=(t=e.inputRef)===null||t===void 0?void 0:t.current)===null||n===void 0?void 0:n.select();i()}),[e.initialValue]);return y.createElement("label",{className:S},y.createElement("textarea",{onChange:t=>{e.onChange(t);i(t)},onKeyDown:t=>{e.onKeyDown(t);i(t)},rows:t,placeholder:e.placeholder,className:x,key:e.autoUpdate?e.initialValue:null,tabIndex:0,ref:e.inputRef,title:e.title,defaultValue:e.initialValue||e.lastSearchText,autoFocus:e.autoFocus}))}function K(e){var t;const n=((t=e.translator)!==null&&t!==void 0?t:v.nullTranslator).load("jupyterlab");const i=(0,p.classes)(e.caseSensitive?I:j,V);const s=(0,p.classes)(e.useRegex?I:j,V);const o=(0,p.classes)(e.wholeWords?I:j,V);const r=k;return y.createElement("div",{className:r},y.createElement($,{placeholder:n.__("Find"),onChange:t=>e.onChange(t),onKeyDown:t=>e.onKeydown(t),inputRef:e.inputRef,initialValue:e.initialSearchText,lastSearchText:e.lastSearchText,title:n.__("Find"),autoFocus:true,autoUpdate:true}),y.createElement("button",{className:U,onClick:()=>{e.onCaseSensitiveToggled()},tabIndex:0,title:n.__("Match Case")},y.createElement(p.caseSensitiveIcon.react,{className:i,tag:"span"})),y.createElement("button",{className:U,onClick:()=>e.onWordToggled(),tabIndex:0,title:n.__("Match Whole Word")},y.createElement(p.wordIcon.react,{className:o,tag:"span"})),y.createElement("button",{className:U,onClick:()=>e.onRegexToggled(),tabIndex:0,title:n.__("Use Regular Expression")},y.createElement(p.regexIcon.react,{className:s,tag:"span"})))}function J(e){var t,n,i;const s=((t=e.translator)!==null&&t!==void 0?t:v.nullTranslator).load("jupyterlab");const o=(0,p.classes)(e.preserveCase?I:j,V);return y.createElement("div",{className:F},y.createElement("div",{className:k},y.createElement($,{placeholder:s.__("Replace"),initialValue:(n=e.replaceText)!==null&&n!==void 0?n:"",onKeyDown:t=>e.onReplaceKeydown(t),onChange:t=>e.onChange(t),title:s.__("Replace"),autoFocus:false,autoUpdate:false}),((i=e.replaceOptionsSupport)===null||i===void 0?void 0:i.preserveCase)?y.createElement("button",{className:U,onClick:()=>e.onPreserveCaseToggled(),tabIndex:0,title:s.__("Preserve Case")},y.createElement(p.caseSensitiveIcon.react,{className:o,tag:"span"})):null),y.createElement("button",{className:B,onClick:()=>e.onReplaceCurrent(),tabIndex:0},y.createElement("span",{className:`${O} ${V}`,tabIndex:0},s.__("Replace"))),y.createElement("button",{className:B,tabIndex:0,onClick:()=>e.onReplaceAll()},y.createElement("span",{className:`${O} ${V}`,tabIndex:-1},s.__("Replace All"))))}function G(e){var t,n;const i=(t=e.keyBindings)===null||t===void 0?void 0:t.next;const s=(n=e.keyBindings)===null||n===void 0?void 0:n.previous;const o=i?_.CommandRegistry.formatKeystroke(i.keys):"";const r=s?_.CommandRegistry.formatKeystroke(s.keys):"";const a=r?` (${r})`:"";const l=o?` (${o})`:"";const d=y.createElement("button",{className:U,onClick:()=>e.isEnabled?e.onHighlightPrevious():false,tabIndex:0,title:`${e.trans.__("Previous Match")}${a}`,disabled:!e.isEnabled},y.createElement(p.caretUpEmptyThinIcon.react,{className:(0,p.classes)(M,V),tag:"span"}));const c=y.createElement("button",{className:U,onClick:()=>e.isEnabled?e.onHighlightNext():false,tabIndex:0,title:`${e.trans.__("Next Match")}${l}`,disabled:!e.isEnabled},y.createElement(p.caretDownEmptyThinIcon.react,{className:(0,p.classes)(M,V),tag:"span"}));return y.createElement("div",{className:T},d,c)}function Y(e){return y.createElement("div",{className:E},e.totalMatches===0?"-/-":`${e.currentIndex===null?"-":e.currentIndex+1}/${e.totalMatches}`)}function X(e){let t=`${D} ${V}`;if(e.visible){t=`${t} ${A}`}const n=e.anyEnabled?p.filterDotIcon:p.filterIcon;return y.createElement("button",{className:U,onClick:()=>e.toggleVisible(),tabIndex:0,title:e.visible?e.trans.__("Hide Search Filters"):e.trans.__("Show Search Filters")},y.createElement(n.react,{className:t,tag:"span",height:"20px",width:"20px"}))}function Q(e){return y.createElement("label",{className:e.isEnabled?N:`${N} ${R}`,title:e.description},y.createElement("input",{type:"checkbox",className:"jp-mod-styled",disabled:!e.isEnabled,checked:e.value,onChange:e.onToggle}),e.title)}class Z extends y.Component{constructor(e){super(e);this.translator=e.translator||v.nullTranslator}_onSearchChange(e){const t=e.target.value;this.props.onSearchChanged(t)}_onSearchKeydown(e){if(e.keyCode===13){e.stopPropagation();e.preventDefault();if(e.ctrlKey){const t=e.target;this._insertNewLine(t);this.props.onSearchChanged(t.value)}else{e.shiftKey?this.props.onHighlightPrevious():this.props.onHighlightNext()}}}_onReplaceKeydown(e){if(e.keyCode===13){e.stopPropagation();e.preventDefault();if(e.ctrlKey){this._insertNewLine(e.target)}else{this.props.onReplaceCurrent()}}}_insertNewLine(e){const[t,n]=[e.selectionStart,e.selectionEnd];e.setRangeText("\n",t,n,"end")}_onClose(){this.props.onClose()}_onReplaceToggled(){if(!this.props.replaceEntryVisible){for(const e in this.props.filtersDefinition){const t=this.props.filtersDefinition[e];if(!t.supportReplace){this.props.onFilterChanged(e,false).catch((e=>{console.error(`Fail to update filter value for ${t.title}:\n${e}`)}))}}}this.props.onReplaceEntryShown(!this.props.replaceEntryVisible)}_toggleFiltersVisibility(){this.props.onFiltersVisibilityChanged(!this.props.filtersVisible)}render(){var e,t,n;const i=this.translator.load("jupyterlab");const s=!this.props.isReadOnly&&this.props.replaceEntryVisible;const o=this.props.filtersDefinition;const r=Object.keys(o).length>0;const a=r?y.createElement(X,{visible:this.props.filtersVisible,anyEnabled:Object.keys(o).some((e=>{var t;const n=o[e];return(t=this.props.filters[e])!==null&&t!==void 0?t:n.default})),toggleVisible:()=>this._toggleFiltersVisibility(),trans:i}):null;const l=(e=this.props.keyBindings)===null||e===void 0?void 0:e.toggleSearchInSelection;const d=l?_.CommandRegistry.formatKeystroke(l.keys):"";const c=d?` (${d})`:"";const h=r?y.createElement("div",{className:L},Object.keys(o).map((e=>{var t,n;const i=o[e];const r=!s||i.supportReplace;const a=r?i.description:(t=i.disabledDescription)!==null&&t!==void 0?t:i.description;return y.createElement(Q,{key:e,title:i.title,description:a+(e=="selection"?c:""),isEnabled:r,onToggle:async()=>{await this.props.onFilterChanged(e,!this.props.filters[e])},value:(n=this.props.filters[e])!==null&&n!==void 0?n:i.default})}))):null;const u=this.props.replaceEntryVisible?p.caretDownIcon:p.caretRightIcon;return y.createElement(y.Fragment,null,y.createElement("div",{className:C},this.props.isReadOnly?y.createElement("div",{className:W}):y.createElement("button",{className:H,onClick:()=>this._onReplaceToggled(),tabIndex:0,title:s?i.__("Hide Replace"):i.__("Show Replace")},y.createElement(u.react,{className:`${z} ${V}`,tag:"span",elementPosition:"center",height:"20px",width:"20px"})),y.createElement(K,{inputRef:this.props.searchInputRef,useRegex:this.props.useRegex,caseSensitive:this.props.caseSensitive,wholeWords:this.props.wholeWords,onCaseSensitiveToggled:this.props.onCaseSensitiveToggled,onRegexToggled:this.props.onRegexToggled,onWordToggled:this.props.onWordToggled,onKeydown:e=>this._onSearchKeydown(e),onChange:e=>this._onSearchChange(e),initialSearchText:this.props.initialSearchText,lastSearchText:this.props.lastSearchText,translator:this.translator}),a,y.createElement(Y,{currentIndex:this.props.currentIndex,totalMatches:(t=this.props.totalMatches)!==null&&t!==void 0?t:0}),y.createElement(G,{onHighlightPrevious:()=>{this.props.onHighlightPrevious()},onHighlightNext:()=>{this.props.onHighlightNext()},trans:i,keyBindings:this.props.keyBindings,isEnabled:!!((n=this.props.searchInputRef.current)===null||n===void 0?void 0:n.value)}),y.createElement("button",{className:U,onClick:()=>this._onClose(),tabIndex:0,title:i.__("Close Search Box")},y.createElement(p.closeIcon.react,{className:"jp-icon-hover",elementPosition:"center",height:"16px",width:"16px"}))),y.createElement("div",{className:C},s?y.createElement(y.Fragment,null,y.createElement(J,{onPreserveCaseToggled:this.props.onPreserveCaseToggled,onReplaceKeydown:e=>this._onReplaceKeydown(e),onChange:e=>this.props.onReplaceChanged(e.target.value),onReplaceCurrent:()=>this.props.onReplaceCurrent(),onReplaceAll:()=>this.props.onReplaceAll(),replaceOptionsSupport:this.props.replaceOptionsSupport,replaceText:this.props.replaceText,preserveCase:this.props.preserveCase,translator:this.translator}),y.createElement("div",{className:q})):null),this.props.filtersVisible?h:null,!!this.props.errorMessage&&y.createElement("div",{className:P},this.props.errorMessage))}}class ee extends p.VDomRenderer{constructor(e,t,n){super(e);this.translator=t;this._showReplace=false;this._showFilters=false;this._closed=new s.Signal(this);this.addClass(w);this._searchInput=y.createRef();this._keyBindings=n}get closed(){return this._closed}focusSearchInput(){var e;(e=this._searchInput.current)===null||e===void 0?void 0:e.select()}setSearchText(e){this.model.initialQuery=e;if(e){this.model.searchExpression=e}}setReplaceText(e){this.model.replaceText=e}showReplace(){this.setReplaceInputVisibility(true)}onCloseRequest(e){super.onCloseRequest(e);this._closed.emit();void this.model.endQuery()}setReplaceInputVisibility(e){if(this._showReplace!==e){this._showReplace=e;this.update()}}setFiltersVisibility(e){if(this._showFilters!==e){this._showFilters=e;this.update()}}render(){return this.model.filtersDefinitionChanged?y.createElement(b.UseSignal,{signal:this.model.filtersDefinitionChanged},(()=>this._renderOverlay())):this._renderOverlay()}_renderOverlay(){return y.createElement(Z,{caseSensitive:this.model.caseSensitive,currentIndex:this.model.currentIndex,isReadOnly:this.model.isReadOnly,errorMessage:this.model.parsingError,filters:this.model.filters,filtersDefinition:this.model.filtersDefinition,preserveCase:this.model.preserveCase,replaceEntryVisible:this._showReplace,filtersVisible:this._showFilters,replaceOptionsSupport:this.model.replaceOptionsSupport,replaceText:this.model.replaceText,initialSearchText:this.model.initialQuery,lastSearchText:this.model.searchExpression,searchInputRef:this._searchInput,totalMatches:this.model.totalMatches,translator:this.translator,useRegex:this.model.useRegex,wholeWords:this.model.wholeWords,onCaseSensitiveToggled:()=>{this.model.caseSensitive=!this.model.caseSensitive},onRegexToggled:()=>{this.model.useRegex=!this.model.useRegex},onWordToggled:()=>{this.model.wholeWords=!this.model.wholeWords},onFilterChanged:async(e,t)=>{await this.model.setFilter(e,t)},onFiltersVisibilityChanged:e=>{this.setFiltersVisibility(e)},onHighlightNext:()=>{void this.model.highlightNext()},onHighlightPrevious:()=>{void this.model.highlightPrevious()},onPreserveCaseToggled:()=>{this.model.preserveCase=!this.model.preserveCase},onSearchChanged:e=>{this.model.searchExpression=e},onClose:()=>{this.close()},onReplaceEntryShown:e=>{this.setReplaceInputVisibility(e)},onReplaceChanged:e=>{this.model.replaceText=e},onReplaceCurrent:()=>{void this.model.replaceCurrentMatch()},onReplaceAll:()=>{void this.model.replaceAllMatches()},keyBindings:this._keyBindings})}}var te=n(90044);class ne{constructor(e=v.nullTranslator){this.translator=e;this._changed=new s.Signal(this);this._providerMap=new Map}add(e,t){this._providerMap.set(e,t);this._changed.emit();return new te.DisposableDelegate((()=>{this._providerMap.delete(e);this._changed.emit()}))}getProvider(e){for(const t of this._providerMap.values()){if(t.isApplicable(e)){return t.createNew(e,this.translator)}}return undefined}hasProvider(e){for(const t of this._providerMap.values()){if(t.isApplicable(e)){return true}}return false}get changed(){return this._changed}}var ie=n(5592);const se=new ie.Token("@jupyterlab/documentsearch:ISearchProviderRegistry",`A service for a registry of search\n providers for the application. Plugins can register their UI elements with this registry\n to provide find/replace support.`)},19562:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(20939);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},53316:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>_});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(90043);var l=n.n(a);var d=n(84739);var c=n.n(d);var h=n(30619);var u=n.n(h);var p=n(26331);var m=n.n(p);const g="@jupyterlab/extensionmanager-extension:plugin";var f;(function(e){e.showPanel="extensionmanager:show-panel";e.toggle="extensionmanager:toggle"})(f||(f={}));const v={id:g,description:"Adds the extension manager plugin.",autoStart:true,requires:[d.ISettingRegistry],optional:[h.ITranslator,i.ILayoutRestorer,o.ICommandPalette],activate:async(e,t,n,i,s)=>{const{commands:o,shell:r,serviceManager:l}=e;n=n!==null&&n!==void 0?n:h.nullTranslator;const d=n.load("jupyterlab");const c=new a.ListModel(l,n);const u=()=>{const e=new a.ExtensionsPanel({model:c,translator:n});e.id="extensionmanager.main-view";e.title.icon=p.extensionIcon;e.title.caption=d.__("Extension Manager");e.node.setAttribute("role","region");e.node.setAttribute("aria-label",d.__("Extension Manager section"));if(i){i.add(e,e.id)}r.add(e,"left",{rank:1e3});return e};let m=u();Promise.all([e.restored,t.load(g)]).then((([,t])=>{c.isDisclaimed=t.get("disclaimed").composite;c.isEnabled=t.get("enabled").composite;c.stateChanged.connect((()=>{if(c.isDisclaimed!==t.get("disclaimed").composite){t.set("disclaimed",c.isDisclaimed).catch((e=>{console.error(`Failed to set setting 'disclaimed'.\n${e}`)}))}if(c.isEnabled!==t.get("enabled").composite){t.set("enabled",c.isEnabled).catch((e=>{console.error(`Failed to set setting 'enabled'.\n${e}`)}))}}));if(c.isEnabled){m=m!==null&&m!==void 0?m:u()}else{m===null||m===void 0?void 0:m.dispose();m=null}t.changed.connect((async()=>{c.isDisclaimed=t.get("disclaimed").composite;c.isEnabled=t.get("enabled").composite;e.commands.notifyCommandChanged(f.toggle);if(c.isEnabled){if(m===null||!m.isAttached){const e=await b.showWarning(d);if(!e){void t.set("enabled",false);return}}m=m!==null&&m!==void 0?m:u()}else{m===null||m===void 0?void 0:m.dispose();m=null}}))})).catch((e=>{console.error(`Something went wrong when reading the settings.\n${e}`)}));o.addCommand(f.showPanel,{label:d.__("Extension Manager"),execute:()=>{if(m){r.activateById(m.id)}},isVisible:()=>c.isEnabled});o.addCommand(f.toggle,{label:d.__("Enable Extension Manager"),execute:()=>{if(t){void t.set(v.id,"enabled",!c.isEnabled)}},isToggled:()=>c.isEnabled});if(s){s.addItem({command:f.toggle,category:d.__("Extension Manager")})}}};const _=v;var b;(function(e){async function t(e){const t=await(0,o.showDialog)({title:e.__("Enable Extension Manager?"),body:e.__(`Thanks for trying out JupyterLab's extension manager.\nThe JupyterLab development team is excited to have a robust\nthird-party extension community.\nHowever, we cannot vouch for every extension,\nand some may introduce security risks.\nDo you want to continue?`),buttons:[o.Dialog.cancelButton({label:e.__("Disable")}),o.Dialog.warnButton({label:e.__("Enable")})]});return t.button.accept}e.showWarning=t})(b||(b={}))},67374:(e,t,n)=>{"use strict";var i=n(40662);var s=n(97913);var o=n(3579);var r=n(10395);var a=n(85072);var l=n.n(a);var d=n(97825);var c=n.n(d);var h=n(77659);var u=n.n(h);var p=n(55056);var m=n.n(p);var g=n(10540);var f=n.n(g);var v=n(41113);var _=n.n(v);var b=n(40502);var y={};y.styleTagTransform=_();y.setAttributes=m();y.insert=u().bind(null,"head");y.domAPI=c();y.insertStyleElement=f();var w=l()(b.A,y);const C=b.A&&b.A.locals?b.A.locals:undefined},84468:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ExtensionsPanel:()=>I,ListModel:()=>p});var i=n(14366);var s=n(30397);var o=n(28548);var r=n(30619);var a=n(26331);var l=n(26568);var d=n(99589);var c=n(44914);function h(e,t,n){n=n||r.nullTranslator;const s=n.load("jupyterlab");const o=[];o.push(c.createElement("p",null,s.__(`An error occurred installing "${e}".`)));if(t){o.push(c.createElement("p",null,c.createElement("span",{className:"jp-extensionmanager-dialog-subheader"},s.__("Error message:"))),c.createElement("pre",null,t.trim()))}const a=c.createElement("div",{className:"jp-extensionmanager-dialog"},o);void(0,i.showDialog)({title:s.__("Extension Installation Error"),body:a,buttons:[i.Dialog.warnButton({label:s.__("Ok")})]})}const u="lab/api/extensions";class p extends a.VDomModel{constructor(e,t){super();this.actionError=null;this.installedError=null;this.searchError=null;this.promptReload=false;this._isDisclaimed=false;this._isEnabled=false;this._isLoadingInstalledExtensions=false;this._isSearching=false;this._query="";this._page=1;this._pagination=30;this._lastPage=1;this._pendingActions=[];const n=JSON.parse(s.PageConfig.getOption("extensionManager")||"{}");this.name=n.name;this.canInstall=n.can_install;this.installPath=n.install_path;this.translator=t||r.nullTranslator;this._installed=[];this._lastSearchResult=[];this.serviceManager=e;this._debouncedSearch=new l.Debouncer(this.search.bind(this),1e3)}get installed(){return this._installed}get isDisclaimed(){return this._isDisclaimed}set isDisclaimed(e){if(e!==this._isDisclaimed){this._isDisclaimed=e;this.stateChanged.emit();void this._debouncedSearch.invoke()}}get isEnabled(){return this._isEnabled}set isEnabled(e){if(e!==this._isEnabled){this._isEnabled=e;this.stateChanged.emit()}}get isLoadingInstalledExtensions(){return this._isLoadingInstalledExtensions}get isSearching(){return this._isSearching}get searchResult(){return this._lastSearchResult}get query(){return this._query}set query(e){if(this._query!==e){this._query=e;this._page=1;void this._debouncedSearch.invoke()}}get page(){return this._page}set page(e){if(this._page!==e){this._page=e;void this._debouncedSearch.invoke()}}get pagination(){return this._pagination}set pagination(e){if(this._pagination!==e){this._pagination=e;void this._debouncedSearch.invoke()}}get lastPage(){return this._lastPage}dispose(){if(this.isDisposed){return}this._debouncedSearch.dispose();super.dispose()}hasPendingActions(){return this._pendingActions.length>0}async install(e,t={}){await this.performAction("install",e,t).then((t=>{if(t.status!=="ok"){h(e.name,t.message,this.translator)}return this.update(true)}))}async uninstall(e){if(!e.installed){throw new Error(`Not installed, cannot uninstall: ${e.name}`)}await this.performAction("uninstall",e);return this.update(true)}async enable(e){if(e.enabled){throw new Error(`Already enabled: ${e.name}`)}await this.performAction("enable",e);await this.refreshInstalled(true)}async disable(e){if(!e.enabled){throw new Error(`Already disabled: ${e.name}`)}await this.performAction("disable",e);await this.refreshInstalled(true)}async refreshInstalled(e=false){this.installedError=null;this._isLoadingInstalledExtensions=true;this.stateChanged.emit();try{const[t]=await m.requestAPI({refresh:e?1:0});this._installed=t.sort(m.installedComparator)}catch(t){this.installedError=t.toString()}finally{this._isLoadingInstalledExtensions=false;this.stateChanged.emit()}}async search(e=false){var t,n;if(!this.isDisclaimed){return Promise.reject("Installation warning is not disclaimed.")}this.searchError=null;this._isSearching=true;this.stateChanged.emit();try{const[i,o]=await m.requestAPI({query:(t=this.query)!==null&&t!==void 0?t:"",page:this.page,per_page:this.pagination,refresh:e?1:0});const r=o["last"];if(r){const e=s.URLExt.queryStringToObject((n=s.URLExt.parse(r).search)!==null&&n!==void 0?n:"")["page"];if(e){this._lastPage=parseInt(e,10)}}const a=this._installed.map((e=>e.name));this._lastSearchResult=i.filter((e=>!a.includes(e.name)))}catch(i){this.searchError=i.toString()}finally{this._isSearching=false;this.stateChanged.emit()}}async update(e=false){if(this.isDisclaimed){await this.refreshInstalled(e);await this.search()}}performAction(e,t,n={}){const s={cmd:e,extension_name:t.name};if(n.useVersion){s["extension_version"]=n.useVersion}const o=m.requestAPI({},{method:"POST",body:JSON.stringify(s)});o.then((([e])=>{const t=this.translator.load("jupyterlab");if(e.needs_restart.includes("server")){void(0,i.showDialog)({title:t.__("Information"),body:t.__("You will need to restart JupyterLab to apply the changes."),buttons:[i.Dialog.okButton({label:t.__("Ok")})]})}else{const n=[];if(e.needs_restart.includes("frontend")){n.push(window.isElectron?t.__("reload JupyterLab"):t.__("refresh the web page"))}if(e.needs_restart.includes("kernel")){n.push(t.__("install the extension in all kernels and restart them"))}void(0,i.showDialog)({title:t.__("Information"),body:t.__("You will need to %1 to apply the changes.",n.join(t.__(" and "))),buttons:[i.Dialog.okButton({label:t.__("Ok")})]})}this.actionError=null}),(e=>{this.actionError=e.toString()}));this.addPendingAction(o);return o.then((([e])=>e))}addPendingAction(e){this._pendingActions.push(e);const t=()=>{const t=this._pendingActions.indexOf(e);this._pendingActions.splice(t,1);this.stateChanged.emit(undefined)};e.then(t,t);this.stateChanged.emit(undefined)}}(function(e){function t(e){if(!e.installed||!e.latest_version){return false}return d.lt(e.installed_version,e.latest_version)}e.entryHasUpdate=t})(p||(p={}));var m;(function(e){function t(e,t){return e.name.localeCompare(t.name)}e.installedComparator=t;const n=/<([^>]+)>; rel="([^"]+)",?/g;async function i(e={},t={}){var i;const r=o.ServerConnection.makeSettings();const a=s.URLExt.join(r.baseUrl,u);let l;try{l=await o.ServerConnection.makeRequest(a+s.URLExt.objectToQueryString(e),t,r)}catch(m){throw new o.ServerConnection.NetworkError(m)}let d=await l.text();if(d.length>0){try{d=JSON.parse(d)}catch(m){console.log("Not a JSON response body.",l)}}if(!l.ok){throw new o.ServerConnection.ResponseError(l,d.message||d)}const c=(i=l.headers.get("Link"))!==null&&i!==void 0?i:"";const h={};let p=null;while((p=n.exec(c))!==null){h[p[2]]=p[1]}return[d,h]}e.requestAPI=i})(m||(m={}));var g=n(49764);var f=n.n(g);const v=32;const _=Math.floor(devicePixelRatio*v);function b(e){if(e.homepage_url&&e.homepage_url.startsWith("https://github.com/")){return e.homepage_url.split("/")[3]}else if(e.repository_url&&e.repository_url.startsWith("https://github.com/")){return e.repository_url.split("/")[3]}return null}function y(e){const{canFetch:t,entry:n,supportInstallation:i,trans:s}=e;const o=[];if(n.status&&["ok","warning","error"].indexOf(n.status)!==-1){o.push(`jp-extensionmanager-entry-${n.status}`)}const r=t?b(n):null;if(!n.allowed){o.push(`jp-extensionmanager-entry-should-be-uninstalled`)}return c.createElement("li",{className:`jp-extensionmanager-entry ${o.join(" ")}`,style:{display:"flex"}},c.createElement("div",{style:{marginRight:"8px"}},r?c.createElement("img",{src:`https://github.com/${r}.png?size=${_}`,style:{width:"32px",height:"32px"}}):c.createElement("div",{style:{width:`${v}px`,height:`${v}px`}})),c.createElement("div",{className:"jp-extensionmanager-entry-description"},c.createElement("div",{className:"jp-extensionmanager-entry-title"},c.createElement("div",{className:"jp-extensionmanager-entry-name"},n.homepage_url?c.createElement("a",{href:n.homepage_url,target:"_blank",rel:"noopener noreferrer",title:s.__("%1 extension home page",n.name)},n.name):c.createElement("div",null,n.name)),c.createElement("div",{className:"jp-extensionmanager-entry-version"},c.createElement("div",{title:s.__("Version: %1",n.installed_version)},n.installed_version)),n.installed&&!n.allowed&&c.createElement(a.ToolbarButtonComponent,{icon:a.infoIcon,iconLabel:s.__("%1 extension is not allowed anymore. Please uninstall it immediately or contact your administrator.",n.name),onClick:()=>window.open("https://jupyterlab.readthedocs.io/en/stable/user/extensions.html")}),n.approved&&c.createElement(a.jupyterIcon.react,{className:"jp-extensionmanager-is-approved",top:"1px",height:"auto",width:"1em",title:s.__("This extension is approved by your security team.")})),c.createElement("div",{className:"jp-extensionmanager-entry-content"},c.createElement("div",{className:"jp-extensionmanager-entry-description"},n.description),e.performAction&&c.createElement("div",{className:"jp-extensionmanager-entry-buttons"},n.installed?c.createElement(c.Fragment,null,i&&c.createElement(c.Fragment,null,p.entryHasUpdate(n)&&c.createElement(a.Button,{onClick:()=>e.performAction("install",n,{useVersion:n.latest_version}),title:s.__('Update "%1" to "%2"',n.name,n.latest_version),minimal:true,small:true},s.__("Update to %1",n.latest_version)),c.createElement(a.Button,{onClick:()=>e.performAction("uninstall",n),title:s.__('Uninstall "%1"',n.name),minimal:true,small:true},s.__("Uninstall"))),n.enabled?c.createElement(a.Button,{onClick:()=>e.performAction("disable",n),title:s.__('Disable "%1"',n.name),minimal:true,small:true},s.__("Disable")):c.createElement(a.Button,{onClick:()=>e.performAction("enable",n),title:s.__('Enable "%1"',n.name),minimal:true,small:true},s.__("Enable"))):i&&c.createElement(a.Button,{onClick:()=>e.performAction("install",n),title:s.__('Install "%1"',n.name),minimal:true,small:true},s.__("Install"))))))}function w(e){var t;const{canFetch:n,performAction:i,supportInstallation:s,trans:o}=e;return c.createElement("div",{className:"jp-extensionmanager-listview-wrapper"},e.entries.length>0?c.createElement("ul",{className:"jp-extensionmanager-listview"},e.entries.map((e=>c.createElement(y,{key:e.name,canFetch:n,entry:e,performAction:i,supportInstallation:s,trans:o})))):c.createElement("div",{key:"message",className:"jp-extensionmanager-listview-message"},o.__("No entries")),e.numPages>1&&c.createElement("div",{className:"jp-extensionmanager-pagination"},c.createElement(f(),{previousLabel:"<",nextLabel:">",breakLabel:"...",breakClassName:"break",initialPage:((t=e.initialPage)!==null&&t!==void 0?t:1)-1,pageCount:e.numPages,marginPagesDisplayed:2,pageRangeDisplayed:3,onPageChange:t=>e.onPage(t.selected+1),activeClassName:"active"})))}function C(e){return c.createElement("div",{className:"jp-extensionmanager-error"},e.children)}class x extends a.ReactWidget{constructor(e,t,n){super();this.model=e;this.trans=t;this.searchInputRef=n;e.stateChanged.connect(this.update,this);this.addClass("jp-extensionmanager-header")}render(){return c.createElement(c.Fragment,null,c.createElement("div",{className:"jp-extensionmanager-title"},c.createElement("span",null,this.trans.__("%1 Manager",this.model.name)),this.model.installPath&&c.createElement(a.infoIcon.react,{className:"jp-extensionmanager-path",tag:"span",title:this.trans.__("Extension installation path: %1",this.model.installPath)})),c.createElement(a.FilterBox,{placeholder:this.trans.__("Search extensions"),disabled:!this.model.isDisclaimed,updateFilter:(e,t)=>{this.model.query=t!==null&&t!==void 0?t:""},useFuzzyFilter:false,inputRef:this.searchInputRef}),c.createElement("div",{className:`jp-extensionmanager-pending ${this.model.hasPendingActions()?"jp-mod-hasPending":""}`}),this.model.actionError&&c.createElement(C,null,c.createElement("p",null,this.trans.__("Error when performing an action.")),c.createElement("p",null,this.trans.__("Reason given:")),c.createElement("pre",null,this.model.actionError)))}}class S extends a.ReactWidget{constructor(e,t){super();this.model=e;this.trans=t;this.addClass("jp-extensionmanager-disclaimer");e.stateChanged.connect(this.update,this)}render(){return c.createElement(c.Fragment,null,c.createElement("p",null,this.trans.__(`The JupyterLab development team is excited to have a robust\nthird-party extension community. However, we do not review\nthird-party extensions, and some extensions may introduce security\nrisks or contain malicious code that runs on your machine. Moreover in order\nto work, this panel needs to fetch data from web services. Do you agree to\nactivate this feature?`),c.createElement("br",null),c.createElement("a",{href:"https://jupyterlab.readthedocs.io/en/stable/privacy_policies.html",target:"_blank",rel:"noreferrer"},this.trans.__("Please read the privacy policy."))),this.model.isDisclaimed?c.createElement(a.Button,{className:"jp-extensionmanager-disclaimer-disable",onClick:e=>{this.model.isDisclaimed=false},title:this.trans.__("This will withdraw your consent.")},this.trans.__("No")):c.createElement("div",null,c.createElement(a.Button,{className:"jp-extensionmanager-disclaimer-enable",onClick:()=>{this.model.isDisclaimed=true}},this.trans.__("Yes")),c.createElement(a.Button,{className:"jp-extensionmanager-disclaimer-disable",onClick:()=>{this.model.isEnabled=false},title:this.trans.__("This will disable the extension manager panel; including the listing of installed extension.")},this.trans.__("No, disable"))))}}class k extends a.ReactWidget{constructor(e,t){super();this.model=e;this.trans=t;e.stateChanged.connect(this.update,this)}render(){return c.createElement(c.Fragment,null,this.model.installedError!==null?c.createElement(C,null,`Error querying installed extensions${this.model.installedError?`: ${this.model.installedError}`:"."}`):this.model.isLoadingInstalledExtensions?c.createElement("div",{className:"jp-extensionmanager-loader"},this.trans.__("Updating extensions list…")):c.createElement(w,{canFetch:this.model.isDisclaimed,entries:this.model.installed.filter((e=>new RegExp(this.model.query.toLowerCase()).test(e.name))),numPages:1,trans:this.trans,onPage:e=>{},performAction:this.model.isDisclaimed?this.onAction.bind(this):null,supportInstallation:this.model.canInstall&&this.model.isDisclaimed}))}onAction(e,t,n={}){switch(e){case"install":return this.model.install(t,n);case"uninstall":return this.model.uninstall(t);case"enable":return this.model.enable(t);case"disable":return this.model.disable(t);default:throw new Error(`Invalid action: ${e}`)}}}class j extends a.ReactWidget{constructor(e,t){super();this.model=e;this.trans=t;e.stateChanged.connect(this.update,this)}onPage(e){this.model.page=e}onAction(e,t,n={}){switch(e){case"install":return this.model.install(t,n);case"uninstall":return this.model.uninstall(t);case"enable":return this.model.enable(t);case"disable":return this.model.disable(t);default:throw new Error(`Invalid action: ${e}`)}}render(){return c.createElement(c.Fragment,null,this.model.searchError!==null?c.createElement(C,null,`Error searching for extensions${this.model.searchError?`: ${this.model.searchError}`:"."}`):this.model.isSearching?c.createElement("div",{className:"jp-extensionmanager-loader"},this.trans.__("Updating extensions list…")):c.createElement(w,{canFetch:this.model.isDisclaimed,entries:this.model.searchResult,initialPage:this.model.page,numPages:this.model.lastPage,onPage:e=>{this.onPage(e)},performAction:this.model.isDisclaimed?this.onAction.bind(this):null,supportInstallation:this.model.canInstall&&this.model.isDisclaimed,trans:this.trans}))}update(){this.title.label=this.model.query?this.trans.__("Search Results"):this.trans.__("Discover");super.update()}}class I extends a.SidePanel{constructor(e){const{model:t,translator:n}=e;super({translator:n});this._wasInitialized=false;this._wasDisclaimed=true;this.model=t;this._searchInputRef=c.createRef();this.addClass("jp-extensionmanager-view");this.trans=n.load("jupyterlab");this.header.addWidget(new x(t,this.trans,this._searchInputRef));const i=new S(t,this.trans);i.title.label=this.trans.__("Warning");this.addWidget(i);const s=new a.PanelWithToolbar;s.addClass("jp-extensionmanager-installedlist");s.toolbar.node.setAttribute("aria-label",this.trans.__("Extensions panel toolbar"));s.title.label=this.trans.__("Installed");s.toolbar.addItem("refresh",new a.ToolbarButton({icon:a.refreshIcon,onClick:()=>{t.refreshInstalled(true).catch((e=>{console.error(`Failed to refresh the installed extensions list:\n${e}`)}))},tooltip:this.trans.__("Refresh extensions list")}));s.addWidget(new k(t,this.trans));this.addWidget(s);if(this.model.canInstall){const e=new j(t,this.trans);e.addClass("jp-extensionmanager-searchresults");this.addWidget(e)}this._wasDisclaimed=this.model.isDisclaimed;if(this.model.isDisclaimed){this.content.collapse(0);this.content.layout.setRelativeSizes([0,1,1])}else{this.content.expand(0);this.content.collapse(1);this.content.collapse(2)}this.model.stateChanged.connect(this._onStateChanged,this)}dispose(){if(this.isDisposed){return}this.model.stateChanged.disconnect(this._onStateChanged,this);super.dispose()}handleEvent(e){switch(e.type){case"focus":case"blur":this._toggleFocused();break;default:break}}onBeforeAttach(e){this.node.addEventListener("focus",this,true);this.node.addEventListener("blur",this,true);super.onBeforeAttach(e)}onBeforeShow(e){if(!this._wasInitialized){this._wasInitialized=true;this.model.refreshInstalled().catch((e=>{console.log(`Failed to refresh installed extension list:\n${e}`)}))}}onAfterDetach(e){super.onAfterDetach(e);this.node.removeEventListener("focus",this,true);this.node.removeEventListener("blur",this,true)}onActivateRequest(e){if(this.isAttached){const e=this._searchInputRef.current;if(e){if(e.focus){e.focus()}if(e.select){e.select()}}}super.onActivateRequest(e)}_onStateChanged(){if(!this._wasDisclaimed&&this.model.isDisclaimed){this.content.collapse(0);this.content.expand(1);this.content.expand(2)}this._wasDisclaimed=this.model.isDisclaimed}_toggleFocused(){const e=document.activeElement===this._searchInputRef.current;this.toggleClass("lm-mod-focused",e)}}},48934:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>U,fileUploadStatus:()=>z});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(30397);var l=n.n(a);var d=n(43801);var c=n.n(d);var h=n(42875);var u=n.n(h);var p=n(84739);var m=n.n(p);var g=n(94931);var f=n.n(g);var v=n(24735);var _=n.n(v);var b=n(30619);var y=n.n(b);var w=n(26331);var C=n.n(w);var x=n(34236);var S=n.n(x);var k=n(93247);var j=n.n(k);const I="FileBrowser";const E="@jupyterlab/filebrowser-extension:browser";var T;(function(e){e.copy="filebrowser:copy";e.copyDownloadLink="filebrowser:copy-download-link";e.cut="filebrowser:cut";e.del="filebrowser:delete";e.download="filebrowser:download";e.duplicate="filebrowser:duplicate";e.hideBrowser="filebrowser:hide-main";e.goToPath="filebrowser:go-to-path";e.goUp="filebrowser:go-up";e.openPath="filebrowser:open-path";e.openUrl="filebrowser:open-url";e.open="filebrowser:open";e.openBrowserTab="filebrowser:open-browser-tab";e.paste="filebrowser:paste";e.createNewDirectory="filebrowser:create-new-directory";e.createNewFile="filebrowser:create-new-file";e.createNewMarkdownFile="filebrowser:create-new-markdown-file";e.refresh="filebrowser:refresh";e.rename="filebrowser:rename";e.copyShareableLink="filebrowser:share-main";e.copyPath="filebrowser:copy-path";e.showBrowser="filebrowser:activate";e.shutdown="filebrowser:shutdown";e.toggleBrowser="filebrowser:toggle-main";e.toggleFileFilter="filebrowser:toggle-file-filter";e.toggleNavigateToCurrentDirectory="filebrowser:toggle-navigate-to-current-directory";e.toggleLastModified="filebrowser:toggle-last-modified";e.toggleShowFullPath="filebrowser:toggle-show-full-path";e.toggleFileSize="filebrowser:toggle-file-size";e.toggleSortNotebooksFirst="filebrowser:toggle-sort-notebooks-first";e.search="filebrowser:search";e.toggleHiddenFiles="filebrowser:toggle-hidden-files";e.toggleSingleClick="filebrowser:toggle-single-click-navigation";e.toggleFileCheckboxes="filebrowser:toggle-file-checkboxes"})(T||(T={}));const M="filebrowser";const D={id:E,description:"Set up the default file browser commands and state restoration",requires:[h.IDefaultFileBrowser,h.IFileBrowserFactory,b.ITranslator],optional:[i.ILayoutRestorer,p.ISettingRegistry,i.ITreePathUpdater,o.ICommandPalette],provides:h.IFileBrowserCommands,autoStart:true,activate:async(e,t,n,i,s,o,r,l)=>{const d=t;if(s){s.add(d,M)}const c=a.PageConfig.getOption("preferredPath");if(c){await d.model.cd(c)}W(e,d,n,i,o,l);void Promise.all([e.restored,d.model.restored]).then((()=>{if(r){d.model.pathChanged.connect(((e,t)=>{r(t.newValue)}))}}));return{openPath:T.openPath}}};const A={id:"@jupyterlab/filebrowser-extension:settings",description:"Set up the default file browser settings",requires:[h.IDefaultFileBrowser],optional:[p.ISettingRegistry],autoStart:true,activate:(e,t,n)=>{if(n){void n.load(E).then((e=>{const n={navigateToCurrentDirectory:false,singleClickNavigation:false,showLastModifiedColumn:true,showFileSizeColumn:false,showHiddenFiles:false,showFileCheckboxes:false,sortNotebooksFirst:false,showFullPath:false};function i(e){let i;for(i in n){const n=e.get(i).composite;t[i]=n}const s=e.get("filterDirectories").composite;const o=e.get("useFuzzyFilter").composite;t.model.filterDirectories=s;t.model.useFuzzyFilter=o}e.changed.connect(i);i(e)}))}}};const P={id:"@jupyterlab/filebrowser-extension:factory",description:"Provides the file browser factory.",provides:h.IFileBrowserFactory,requires:[d.IDocumentManager,b.ITranslator],optional:[g.IStateDB,i.JupyterLab.IInfo],activate:async(e,t,n,i,s)=>{const r=new o.WidgetTracker({namespace:M});const a=(e,o={})=>{var a;const l=o.state===null?undefined:o.state||i||undefined;const d=new h.FilterFileBrowserModel({translator:n,auto:(a=o.auto)!==null&&a!==void 0?a:true,manager:t,driveName:o.driveName||"",refreshInterval:o.refreshInterval,refreshStandby:()=>{if(s){return!s.isConnected||"when-hidden"}return"when-hidden"},state:l});const c=o.restore;const u=new h.FileBrowser({id:e,model:d,restore:c,translator:n,state:l});void r.add(u);return u};return{createFileBrowser:a,tracker:r}}};const L={id:"@jupyterlab/filebrowser-extension:default-file-browser",description:"Provides the default file browser",provides:h.IDefaultFileBrowser,requires:[h.IFileBrowserFactory],optional:[i.IRouter,i.JupyterFrontEnd.ITreeResolver,i.ILabShell,b.ITranslator],activate:async(e,t,n,i,s,o)=>{const{commands:r}=e;const a=(o!==null&&o!==void 0?o:b.nullTranslator).load("jupyterlab");const l=t.createFileBrowser("filebrowser",{auto:false,restore:false});l.node.setAttribute("role","region");l.node.setAttribute("aria-label",a.__("File Browser Section"));l.title.icon=w.folderIcon;const d=()=>{const t=e.commands.keyBindings.find((e=>e.command===T.toggleBrowser));if(t){const e=t.keys.map(k.CommandRegistry.formatKeystroke).join(", ");l.title.caption=a.__("File Browser (%1)",e)}else{l.title.caption=a.__("File Browser")}};d();e.commands.keyBindingChanged.connect((()=>{d()}));void q.restoreBrowser(l,r,n,i,e,s);return l}};const R={id:"@jupyterlab/filebrowser-extension:download",description:"Adds the download file commands. Disabling this plugin will NOT disable downloading files from the server, if the user enters the appropriate download URLs.",requires:[h.IFileBrowserFactory,b.ITranslator],autoStart:true,activate:(e,t,n)=>{const i=n.load("jupyterlab");const{commands:s}=e;const{tracker:r}=t;s.addCommand(T.download,{execute:()=>{const e=r.currentWidget;if(e){return e.download()}},icon:w.downloadIcon.bindprops({stylesheet:"menuItem"}),label:i.__("Download")});s.addCommand(T.copyDownloadLink,{execute:()=>{const e=r.currentWidget;if(!e){return}return e.model.manager.services.contents.getDownloadUrl(e.selectedItems().next().value.path).then((e=>{o.Clipboard.copyToSystem(e)}))},isVisible:()=>!!r.currentWidget&&Array.from(r.currentWidget.selectedItems()).length===1,icon:w.copyIcon.bindprops({stylesheet:"menuItem"}),label:i.__("Copy Download Link"),mnemonic:0})}};const N={id:"@jupyterlab/filebrowser-extension:widget",description:"Adds the file browser to the application shell.",requires:[d.IDocumentManager,h.IDefaultFileBrowser,h.IFileBrowserFactory,p.ISettingRegistry,o.IToolbarWidgetRegistry,b.ITranslator,i.ILabShell,h.IFileBrowserCommands],optional:[o.ICommandPalette],autoStart:true,activate:(e,t,n,i,s,r,a,l,d,c)=>{const{commands:u}=e;const{tracker:p}=i;const m=a.load("jupyterlab");r.addFactory(I,"uploader",(e=>new h.Uploader({model:e.model,translator:a})));(0,o.setToolbar)(n,(0,o.createToolbarFactory)(r,s,I,N.id,a));l.add(n,"left",{rank:100,type:"File Browser"});u.addCommand(T.toggleBrowser,{label:m.__("File Browser"),execute:()=>{if(n.isHidden){return u.execute(T.showBrowser,void 0)}return u.execute(T.hideBrowser,void 0)}});u.addCommand(T.showBrowser,{label:m.__("Open the file browser for the provided `path`."),execute:e=>{const t=e.path||"";const s=q.getBrowserForPath(t,n,i);if(!s){return}if(n===s){l.activateById(n.id);return}else{const e=["left","right"];for(const t of e){for(const e of l.widgets(t)){if(e.contains(s)){l.activateById(e.id);return}}}}}});u.addCommand(T.hideBrowser,{label:m.__("Hide the file browser."),execute:()=>{const e=p.currentWidget;if(e&&!e.isHidden){l.collapseLeft()}}});u.addCommand(T.toggleNavigateToCurrentDirectory,{label:m.__("Show Active File in File Browser"),isToggled:()=>n.navigateToCurrentDirectory,execute:()=>{const e=!n.navigateToCurrentDirectory;const t="navigateToCurrentDirectory";return s.set(E,t,e).catch((e=>{console.error(`Failed to set navigateToCurrentDirectory setting`)}))}});if(c){c.addItem({command:T.toggleNavigateToCurrentDirectory,category:m.__("File Operations")})}void l.restored.then((e=>{if(e.fresh&&l.mode!=="single-document"){void u.execute(T.showBrowser,void 0)}}));void Promise.all([e.restored,n.model.restored]).then((()=>{l.currentChanged.connect((async(e,s)=>{if(n.navigateToCurrentDirectory&&s.newValue){const{newValue:e}=s;const r=t.contextForWidget(e);if(r){const{path:e}=r;try{await q.navigateToPath(e,n,i,a)}catch(o){console.warn(`${T.goToPath} failed to open: ${e}`,o)}}}}))}))}};const O={id:"@jupyterlab/filebrowser-extension:share-file",description:'Adds the "Copy Shareable Link" command; useful for JupyterHub deployment for example.',requires:[h.IFileBrowserFactory,b.ITranslator],autoStart:true,activate:(e,t,n)=>{const i=n.load("jupyterlab");const{commands:s}=e;const{tracker:r}=t;s.addCommand(T.copyShareableLink,{execute:()=>{const e=r.currentWidget;const t=e===null||e===void 0?void 0:e.selectedItems().next();if(t===undefined||t.done){return}o.Clipboard.copyToSystem(a.PageConfig.getUrl({workspace:a.PageConfig.defaultWorkspace,treePath:t.value.path,toShare:true}))},isVisible:()=>!!r.currentWidget&&Array.from(r.currentWidget.selectedItems()).length===1,icon:w.linkIcon.bindprops({stylesheet:"menuItem"}),label:i.__("Copy Shareable Link")})}};const B={id:"@jupyterlab/filebrowser-extension:open-with",description:"Adds the open-with feature allowing an user to pick the non-preferred document viewer.",requires:[h.IFileBrowserFactory],autoStart:true,activate:(e,t)=>{const{docRegistry:n}=e;const{tracker:i}=t;let s=[];function o(e){var t,o;const r=(o=(t=e.menu.items.find((e=>{var t;return e.type==="submenu"&&((t=e.submenu)===null||t===void 0?void 0:t.id)==="jp-contextmenu-open-with"})))===null||t===void 0?void 0:t.submenu)!==null&&o!==void 0?o:null;if(!r){return}s.forEach((e=>e.dispose()));s.length=0;r.clearItems();const a=i.currentWidget?q.OpenWith.intersection((0,x.map)(i.currentWidget.selectedItems(),(e=>q.OpenWith.getFactories(n,e)))):new Set;s=[...a].map((e=>r.addItem({args:{factory:e.name,label:e.label||e.name},command:T.open})))}e.contextMenu.opened.connect(o)}};const F={id:"@jupyterlab/filebrowser-extension:open-browser-tab",description:"Adds the open-in-new-browser-tab features.",requires:[h.IFileBrowserFactory,b.ITranslator],autoStart:true,activate:(e,t,n)=>{const{commands:i}=e;const s=n.load("jupyterlab");const{tracker:o}=t;i.addCommand(T.openBrowserTab,{execute:e=>{const t=o.currentWidget;if(!t){return}const n=e["mode"];return Promise.all(Array.from((0,x.map)(t.selectedItems(),(e=>{if(n==="single-document"){const t=a.PageConfig.getUrl({mode:"single-document",treePath:e.path});const n=window.open();if(n){n.opener=null;n.location.href=t}else{throw new Error("Failed to open new browser tab.")}}else{return i.execute("docmanager:open-browser-tab",{path:e.path})}}))))},icon:w.addIcon.bindprops({stylesheet:"menuItem"}),label:e=>e["mode"]==="single-document"?s.__("Open in Simple Mode"):s.__("Open in New Browser Tab"),mnemonic:0})}};const z={id:"@jupyterlab/filebrowser-extension:file-upload-status",description:"Adds a file upload status widget.",autoStart:true,requires:[h.IFileBrowserFactory,b.ITranslator],optional:[v.IStatusBar],activate:(e,t,n,i)=>{if(!i){return}const s=new h.FileUploadStatus({tracker:t.tracker,translator:n});i.registerStatusItem("@jupyterlab/filebrowser-extension:file-upload-status",{item:s,align:"middle",isActive:()=>!!s.model&&s.model.items.length>0,activeStateChanged:s.model.stateChanged})}};const H={id:"@jupyterlab/filebrowser-extension:open-url",description:'Adds the feature "Open files from remote URLs".',autoStart:true,requires:[h.IDefaultFileBrowser,b.ITranslator],optional:[o.ICommandPalette],activate:(e,t,n,i)=>{const{commands:s}=e;const r=n.load("jupyterlab");const l=T.openUrl;s.addCommand(l,{label:e=>e.url?r.__("Open %1",e.url):r.__("Open from URL…"),caption:e=>e.url?r.__("Open %1",e.url):r.__("Open from URL"),execute:async e=>{var n,i,l;let d=(n=e===null||e===void 0?void 0:e.url)!==null&&n!==void 0?n:"";if(!d){d=(i=(await o.InputDialog.getText({label:r.__("URL"),placeholder:"https://example.com/path/to/file",title:r.__("Open URL"),okLabel:r.__("Open")})).value)!==null&&i!==void 0?i:undefined}if(!d){return}let c="";let h;try{const e=await fetch(d);h=await e.blob();c=(l=e.headers.get("Content-Type"))!==null&&l!==void 0?l:""}catch(u){if(u.response&&u.response.status!==200){u.message=r.__("Could not open URL: %1",d)}return(0,o.showErrorMessage)(r.__("Cannot fetch"),u)}try{const e=a.PathExt.basename(d);const n=new File([h],e,{type:c});const i=await t.model.upload(n);return s.execute("docmanager:open",{path:i.path})}catch(p){return(0,o.showErrorMessage)(r._p("showErrorMessage","Upload Error"),p)}}});if(i){i.addItem({command:l,category:r.__("File Operations")})}}};function W(e,t,n,i,s,r){const l=i.load("jupyterlab");const{docRegistry:d,commands:c}=e;const{tracker:h}=n;const u=a.PageConfig.getOption("delete_to_trash")==="true";c.addCommand(T.del,{execute:()=>{const e=h.currentWidget;if(e){return e.delete()}},icon:w.closeIcon.bindprops({stylesheet:"menuItem"}),label:u?l.__("Move to Trash"):l.__("Delete"),mnemonic:0});c.addCommand(T.copy,{execute:()=>{const e=h.currentWidget;if(e){return e.copy()}},icon:w.copyIcon.bindprops({stylesheet:"menuItem"}),label:l.__("Copy"),mnemonic:0});c.addCommand(T.cut,{execute:()=>{const e=h.currentWidget;if(e){return e.cut()}},icon:w.cutIcon.bindprops({stylesheet:"menuItem"}),label:l.__("Cut")});c.addCommand(T.duplicate,{execute:()=>{const e=h.currentWidget;if(e){return e.duplicate()}},icon:w.copyIcon.bindprops({stylesheet:"menuItem"}),label:l.__("Duplicate")});c.addCommand(T.goToPath,{label:l.__("Update the file browser to display the provided `path`."),execute:async e=>{var s;const o=e.path||"";const r=!((s=e===null||e===void 0?void 0:e.dontShowBrowser)!==null&&s!==void 0?s:false);try{const e=await q.navigateToPath(o,t,n,i);if(e.type!=="directory"&&r){const e=q.getBrowserForPath(o,t,n);if(e){e.clearSelectedItems();const t=o.split("/");const n=t[t.length-1];if(n){await e.selectItemByName(n)}}}}catch(a){console.warn(`${T.goToPath} failed to go to: ${o}`,a)}if(r){return c.execute(T.showBrowser,{path:o})}}});c.addCommand(T.goUp,{label:"go up",execute:async()=>{const e=q.getBrowserForPath("",t,n);if(!e){return}const{model:i}=e;await i.restored;void e.goUp()}});c.addCommand(T.openPath,{label:e=>e.path?l.__("Open %1",e.path):l.__("Open from Path…"),caption:e=>e.path?l.__("Open %1",e.path):l.__("Open from path"),execute:async e=>{var i;let s;if(e===null||e===void 0?void 0:e.path){s=e.path}else{s=(i=(await o.InputDialog.getText({label:l.__("Path"),placeholder:"/path/relative/to/jlab/root",title:l.__("Open Path"),okLabel:l.__("Open")})).value)!==null&&i!==void 0?i:undefined}if(!s){return}try{const i=s!=="/"&&s.endsWith("/");if(i){s=s.slice(0,s.length-1)}const o=q.getBrowserForPath(s,t,n);const{services:r}=o.model.manager;const a=await r.contents.get(s,{content:false});if(i&&a.type!=="directory"){throw new Error(`Path ${s}/ is not a directory`)}await c.execute(T.goToPath,{path:s,dontShowBrowser:e.dontShowBrowser});if(a.type==="directory"){return}return c.execute("docmanager:open",{path:s})}catch(r){if(r.response&&r.response.status===404){r.message=l.__("Could not find path: %1",s)}return(0,o.showErrorMessage)(l.__("Cannot open"),r)}}});if(r){r.addItem({command:T.openPath,category:l.__("File Operations")})}c.addCommand(T.open,{execute:e=>{const t=e["factory"]||void 0;const n=h.currentWidget;if(!n){return}const{contents:i}=n.model.manager.services;return Promise.all(Array.from((0,x.map)(n.selectedItems(),(e=>{if(e.type==="directory"){const t=i.localPath(e.path);return n.model.cd(`/${t}`)}return c.execute("docmanager:open",{factory:t,path:e.path})}))))},icon:e=>{var t;const n=e["factory"]||void 0;if(n){const e=d.getFileType(n);return(t=e===null||e===void 0?void 0:e.icon)===null||t===void 0?void 0:t.bindprops({stylesheet:"menuItem"})}else{return w.folderIcon.bindprops({stylesheet:"menuItem"})}},label:e=>e["label"]||e["factory"]||l.__("Open"),mnemonic:0});c.addCommand(T.paste,{execute:()=>{const e=h.currentWidget;if(e){return e.paste()}},icon:w.pasteIcon.bindprops({stylesheet:"menuItem"}),label:l.__("Paste"),mnemonic:0});c.addCommand(T.createNewDirectory,{execute:()=>{const e=h.currentWidget;if(e){return e.createNewDirectory()}},icon:w.newFolderIcon.bindprops({stylesheet:"menuItem"}),label:l.__("New Folder")});c.addCommand(T.createNewFile,{execute:()=>{const e=h.currentWidget;if(e){return e.createNewFile({ext:"txt"})}},icon:w.textEditorIcon.bindprops({stylesheet:"menuItem"}),label:l.__("New File")});c.addCommand(T.createNewMarkdownFile,{execute:()=>{const e=h.currentWidget;if(e){return e.createNewFile({ext:"md"})}},icon:w.markdownIcon.bindprops({stylesheet:"menuItem"}),label:l.__("New Markdown File")});c.addCommand(T.refresh,{execute:e=>{const t=h.currentWidget;if(t){return t.model.refresh()}},icon:w.refreshIcon.bindprops({stylesheet:"menuItem"}),caption:l.__("Refresh the file browser."),label:l.__("Refresh File List")});c.addCommand(T.rename,{execute:e=>{const t=h.currentWidget;if(t){return t.rename()}},isVisible:()=>!!h.currentWidget&&Array.from(h.currentWidget.selectedItems()).length===1,icon:w.editIcon.bindprops({stylesheet:"menuItem"}),label:l.__("Rename"),mnemonic:0});c.addCommand(T.copyPath,{execute:()=>{var e;const t=h.currentWidget;if(!t){return}const n=t.selectedItems().next();if(n.done){return}if(a.PageConfig.getOption("copyAbsolutePath")==="true"){const t=a.PathExt.joinWithLeadingSlash((e=a.PageConfig.getOption("serverRoot"))!==null&&e!==void 0?e:"",n.value.path);o.Clipboard.copyToSystem(t)}else{o.Clipboard.copyToSystem(n.value.path)}},isVisible:()=>!!h.currentWidget&&Array.from(h.currentWidget.selectedItems()).length===1,icon:w.fileIcon.bindprops({stylesheet:"menuItem"}),label:l.__("Copy Path")});c.addCommand(T.shutdown,{execute:()=>{const e=h.currentWidget;if(e){return e.shutdownKernels()}},icon:w.stopIcon.bindprops({stylesheet:"menuItem"}),label:l.__("Shut Down Kernel")});c.addCommand(T.toggleFileFilter,{execute:()=>{t.showFileFilter=!t.showFileFilter;c.notifyCommandChanged(T.toggleFileFilter)},isToggled:()=>{const e=t.showFileFilter;return e},icon:w.filterIcon.bindprops({stylesheet:"menuItem"}),label:l.__("Toggle File Filter")});c.addCommand(T.toggleLastModified,{label:l.__("Show Last Modified Column"),isToggled:()=>t.showLastModifiedColumn,execute:()=>{const e=!t.showLastModifiedColumn;const n="showLastModifiedColumn";if(s){return s.set(E,n,e).catch((e=>{console.error(`Failed to set ${n} setting`)}))}}});c.addCommand(T.toggleShowFullPath,{label:l.__("Show Full Path"),isToggled:()=>t.showFullPath,execute:()=>{const e=!t.showFullPath;const n="showFullPath";if(s){return s.set(E,n,e).catch((e=>{console.error(`Failed to set ${n} setting`)}))}}});c.addCommand(T.toggleSortNotebooksFirst,{label:l.__("Sort Notebooks Above Files"),isToggled:()=>t.sortNotebooksFirst,execute:()=>{const e=!t.sortNotebooksFirst;const n="sortNotebooksFirst";if(s){return s.set(E,n,e).catch((e=>{console.error(`Failed to set ${n} setting`)}))}}});c.addCommand(T.toggleFileSize,{label:l.__("Show File Size Column"),isToggled:()=>t.showFileSizeColumn,execute:()=>{const e=!t.showFileSizeColumn;const n="showFileSizeColumn";if(s){return s.set(E,n,e).catch((e=>{console.error(`Failed to set ${n} setting`)}))}}});c.addCommand(T.toggleSingleClick,{label:l.__("Enable Single Click Navigation"),isToggled:()=>t.singleClickNavigation,execute:()=>{const e=!t.singleClickNavigation;const n="singleClickNavigation";if(s){return s.set(E,n,e).catch((e=>{console.error(`Failed to set singleClickNavigation setting`)}))}}});c.addCommand(T.toggleHiddenFiles,{label:l.__("Show Hidden Files"),isToggled:()=>t.showHiddenFiles,isVisible:()=>a.PageConfig.getOption("allow_hidden_files")==="true",execute:()=>{const e=!t.showHiddenFiles;const n="showHiddenFiles";if(s){return s.set(E,n,e).catch((e=>{console.error(`Failed to set showHiddenFiles setting`)}))}}});c.addCommand(T.toggleFileCheckboxes,{label:l.__("Show File Checkboxes"),isToggled:()=>t.showFileCheckboxes,execute:()=>{const e=!t.showFileCheckboxes;const n="showFileCheckboxes";if(s){return s.set(E,n,e).catch((e=>{console.error(`Failed to set showFileCheckboxes setting`)}))}}});c.addCommand(T.search,{label:l.__("Search on File Names"),execute:()=>alert("search")})}const V=[P,L,D,A,O,z,R,N,B,F,H];const U=V;var q;(function(e){function t(e,t,n){const{tracker:i}=n;const s=t.model.manager.services.contents.driveName(e);if(s){const t=i.find((e=>e.model.driveName===s));if(!t){console.warn(`${T.goToPath} failed to find filebrowser for path: ${e}`);return}return t}return t}e.getBrowserForPath=t;async function n(t,n,i,s){const o=s.load("jupyterlab");const r=e.getBrowserForPath(t,n,i);if(!r){throw new Error(o.__("No browser for path"))}const{services:l}=r.model.manager;const d=l.contents.localPath(t);await l.ready;const c=await l.contents.get(t,{content:false});const{model:h}=r;await h.restored;if(c.type==="directory"){await h.cd(`/${d}`)}else{await h.cd(`/${a.PathExt.dirname(d)}`)}return c}e.navigateToPath=n;async function i(e,t,n,i,s,o){const r="jp-mod-restoring";e.addClass(r);if(!n){await e.model.restore(e.id);await e.model.refresh();e.removeClass(r);return}const a=async()=>{n.routed.disconnect(a);const s=await(i===null||i===void 0?void 0:i.paths);if((s===null||s===void 0?void 0:s.file)||(s===null||s===void 0?void 0:s.browser)){await e.model.restore(e.id,false);if(s.file){await t.execute(T.openPath,{path:s.file,dontShowBrowser:true})}if(s.browser){await t.execute(T.openPath,{path:s.browser,dontShowBrowser:true})}}else{await e.model.restore(e.id);await e.model.refresh()}e.removeClass(r);if(o===null||o===void 0?void 0:o.isEmpty("main")){void t.execute("launcher:create")}};n.routed.connect(a)}e.restoreBrowser=i;let s;(function(e){function t(e,t){const n=e.preferredWidgetFactories(t.path);const i=e.getWidgetFactory("notebook");if(i&&t.type==="notebook"&&n.indexOf(i)===-1){n.unshift(i)}return n}e.getFactories=t;function n(e){let t=undefined;for(const n of e){if(t===undefined){t=new Set(n);continue}if(t.size===0){return t}let e=new Set;for(const i of n){if(t.has(i)){e.add(i)}}t=e}return t!==null&&t!==void 0?t:new Set}e.intersection=n})(s=e.OpenWith||(e.OpenWith={}))})(q||(q={}))},20135:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(97913);var a=n(79010);var l=n(3579);var d=n(41603);var c=n(39063);var h=n(85072);var u=n.n(h);var p=n(97825);var m=n.n(p);var g=n(77659);var f=n.n(g);var v=n(55056);var _=n.n(v);var b=n(10540);var y=n.n(b);var w=n(41113);var C=n.n(w);var x=n(538);var S={};S.styleTagTransform=C();S.setAttributes=_();S.insert=f().bind(null,"head");S.domAPI=m();S.insertStyleElement=y();var k=u()(x.A,S);const j=x.A&&x.A.locals?x.A.locals:undefined},21813:(e,t,n)=>{"use strict";n.r(t);n.d(t,{BreadCrumbs:()=>C,CHUNK_SIZE:()=>xe,DirListing:()=>ce,FileBrowser:()=>be,FileBrowserModel:()=>Se,FileDialog:()=>Te,FileUploadStatus:()=>He,FilterFileBrowserModel:()=>je,IDefaultFileBrowser:()=>Pe,IFileBrowserCommands:()=>Le,IFileBrowserFactory:()=>Ae,LARGE_FILE_SIZE:()=>Ce,TogglableHiddenFileBrowserModel:()=>ke,Uploader:()=>Re});var i=n(14366);var s=n(30397);var o=n(28548);var r=n(30619);var a=n(26331);var l=n(1143);var d=n(44914);var c=n.n(d);var h=n(43801);var u=n(34236);var p=n(5592);var m=n(76326);const g="jp-BreadCrumbs";const f="jp-BreadCrumbs-home";const v="jp-BreadCrumbs-preferred";const _="jp-BreadCrumbs-item";const b=["/","../../","../",""];const y="application/x-jupyter-icontents";const w="jp-mod-dropTarget";class C extends l.Widget{constructor(e){super();this._previousState=null;this.translator=e.translator||r.nullTranslator;this._trans=this.translator.load("jupyterlab");this._model=e.model;this._fullPath=e.fullPath||false;this.addClass(g);this._crumbs=x.createCrumbs();this._crumbSeps=x.createCrumbSeparators();const t=s.PageConfig.getOption("preferredPath");this._hasPreferred=t&&t!=="/"?true:false;if(this._hasPreferred){this.node.appendChild(this._crumbs[x.Crumb.Preferred])}this.node.appendChild(this._crumbs[x.Crumb.Home]);this._model.refreshed.connect(this.update,this)}handleEvent(e){switch(e.type){case"click":this._evtClick(e);break;case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;default:return}}get fullPath(){return this._fullPath}set fullPath(e){this._fullPath=e}onAfterAttach(e){super.onAfterAttach(e);this.update();const t=this.node;t.addEventListener("click",this);t.addEventListener("lm-dragenter",this);t.addEventListener("lm-dragleave",this);t.addEventListener("lm-dragover",this);t.addEventListener("lm-drop",this)}onBeforeDetach(e){super.onBeforeDetach(e);const t=this.node;t.removeEventListener("click",this);t.removeEventListener("lm-dragenter",this);t.removeEventListener("lm-dragleave",this);t.removeEventListener("lm-dragover",this);t.removeEventListener("lm-drop",this)}onUpdateRequest(e){const t=this._model.manager.services.contents;const n=t.localPath(this._model.path);const i={path:n,hasPreferred:this._hasPreferred,fullPath:this._fullPath};if(this._previousState&&p.JSONExt.deepEqual(i,this._previousState)){return}this._previousState=i;x.updateCrumbs(this._crumbs,this._crumbSeps,i)}_evtClick(e){if(e.button!==0){return}let t=e.target;while(t&&t!==this.node){if(t.classList.contains(v)){this._model.cd(s.PageConfig.getOption("preferredPath")).catch((e=>(0,i.showErrorMessage)(this._trans.__("Open Error"),e)));e.preventDefault();e.stopPropagation();return}if(t.classList.contains(_)||t.classList.contains(f)){let n=u.ArrayExt.findFirstIndex(this._crumbs,(e=>e===t));let s=b[n];if(this._fullPath&&n<0&&!t.classList.contains(f)){s=t.title}this._model.cd(s).catch((e=>(0,i.showErrorMessage)(this._trans.__("Open Error"),e)));e.preventDefault();e.stopPropagation();return}t=t.parentElement}}_evtDragEnter(e){if(e.mimeData.hasData(y)){const t=u.ArrayExt.findFirstIndex(this._crumbs,(t=>m.ElementExt.hitTest(t,e.clientX,e.clientY)));if(t!==-1){if(t!==x.Crumb.Current){this._crumbs[t].classList.add(w);e.preventDefault();e.stopPropagation()}}}}_evtDragLeave(e){e.preventDefault();e.stopPropagation();const t=i.DOMUtils.findElement(this.node,w);if(t){t.classList.remove(w)}}_evtDragOver(e){e.preventDefault();e.stopPropagation();e.dropAction=e.proposedAction;const t=i.DOMUtils.findElement(this.node,w);if(t){t.classList.remove(w)}const n=u.ArrayExt.findFirstIndex(this._crumbs,(t=>m.ElementExt.hitTest(t,e.clientX,e.clientY)));if(n!==-1){this._crumbs[n].classList.add(w)}}_evtDrop(e){e.preventDefault();e.stopPropagation();if(e.proposedAction==="none"){e.dropAction="none";return}if(!e.mimeData.hasData(y)){return}e.dropAction=e.proposedAction;let t=e.target;while(t&&t.parentElement){if(t.classList.contains(w)){t.classList.remove(w);break}t=t.parentElement}const n=u.ArrayExt.findFirstIndex(this._crumbs,(e=>e===t));if(n===-1){return}const o=this._model;const r=s.PathExt.resolve(o.path,b[n]);const a=o.manager;const l=[];const d=e.mimeData.getData(y);for(const i of d){const e=a.services.contents.localPath(i);const t=s.PathExt.basename(e);const n=s.PathExt.join(r,t);l.push((0,h.renameFile)(a,i,n))}void Promise.all(l).catch((e=>(0,i.showErrorMessage)(this._trans.__("Move Error"),e)))}}var x;(function(e){let t;(function(e){e[e["Home"]=0]="Home";e[e["Ellipsis"]=1]="Ellipsis";e[e["Parent"]=2]="Parent";e[e["Current"]=3]="Current";e[e["Preferred"]=4]="Preferred"})(t=e.Crumb||(e.Crumb={}));function n(e,n,i){const s=e[0].parentNode;const o=s.firstChild;while(o&&o.nextSibling){s.removeChild(o.nextSibling)}if(i.hasPreferred){s.appendChild(e[t.Home]);s.appendChild(n[0])}else{s.appendChild(n[0])}const r=i.path.split("/");if(!i.fullPath&&r.length>2){s.appendChild(e[t.Ellipsis]);const i=r.slice(0,r.length-2).join("/");e[t.Ellipsis].title=i;s.appendChild(n[1])}if(i.path){if(!i.fullPath){if(r.length>=2){e[t.Parent].textContent=r[r.length-2];s.appendChild(e[t.Parent]);const i=r.slice(0,r.length-1).join("/");e[t.Parent].title=i;s.appendChild(n[2])}e[t.Current].textContent=r[r.length-1];s.appendChild(e[t.Current]);e[t.Current].title=i.path;s.appendChild(n[3])}else{for(let e=0;ethis.selection[e.path]))}sortedItems(){return this._sortedItems[Symbol.iterator]()}sort(e){this._sortedItems=he.sort(this.model.items(),e,this._sortNotebooksFirst,this.translator);this._sortState=e;this.update()}rename(){return this._doRename()}cut(){this._isCut=true;this._copy();this.update()}copy(){this._copy()}paste(){if(!this._clipboard.length){this._isCut=false;return Promise.resolve(undefined)}const e=this._model.path;const t=[];for(const n of this._clipboard){if(this._isCut){const i=this._manager.services.contents.localPath(n);const o=i.split("/");const r=o[o.length-1];const a=s.PathExt.join(e,r);t.push(this._model.manager.rename(n,a))}else{t.push(this._model.manager.copy(n,e))}}for(const n of this._items){n.classList.remove(ee)}this._clipboard.length=0;this._isCut=false;this.removeClass(Z);return Promise.all(t).then((()=>undefined)).catch((e=>{void(0,i.showErrorMessage)(this._trans._p("showErrorMessage","Paste Error"),e)}))}async delete(){const e=s.PageConfig.getOption("delete_to_trash")==="true";const t=this._sortedItems.filter((e=>this.selection[e.path]));if(!t.length){return}const n=this._trans.__("Are you sure you want to move to trash: %1?",t[0].name);const o=this._trans.__("Are you sure you want to permanently delete: %1?",t[0].name);const r=this._trans._n("Are you sure you want to move to trash the %1 selected item?","Are you sure you want to move to trash the %1 selected items?",t.length);const a=this._trans._n("Are you sure you want to permanently delete the %1 selected item?","Are you sure you want to permanently delete the %1 selected items?",t.length);const l=e?n:o;const d=e?r:a;const c=e?this._trans.__("Move to Trash"):this._trans.__("Delete");const h=t.length===1?l:d;const u=await(0,i.showDialog)({title:c,body:h,buttons:[i.Dialog.cancelButton({label:this._trans.__("Cancel")}),i.Dialog.warnButton({label:c})],defaultButton:0});if(!this.isDisposed&&u.button.accept){await this._delete(t.map((e=>e.path)))}let p=this._focusIndex;const m=this._sortedItems.length-t.length-1;if(p>m){p=Math.max(0,m)}this._focusItem(p)}duplicate(){const e=this._model.path;const t=[];for(const n of this.selectedItems()){if(n.type!=="directory"){t.push(this._model.manager.copy(n.path,e))}}return Promise.all(t).then((()=>undefined)).catch((e=>{void(0,i.showErrorMessage)(this._trans._p("showErrorMessage","Duplicate file"),e)}))}async download(){await Promise.all(Array.from(this.selectedItems()).filter((e=>e.type!=="directory")).map((e=>this._model.download(e.path))))}async restore(e){const t=`file-browser-${e}:columns`;const n=this._state;this._stateColumnsKey=t;if(!n){return}try{const e=await n.fetch(t);if(!e){return}const i=e["sizes"];if(!i){return}for(const[t,n]of Object.entries(i)){this._columnSizes[t]=n}this._updateColumnSizes()}catch(i){await n.remove(t)}}shutdownKernels(){const e=this._model;const t=this._sortedItems;const n=t.map((e=>e.path));const s=Array.from(this._model.sessions()).filter((e=>{const i=u.ArrayExt.firstIndexOf(n,e.path);return this.selection[t[i].path]})).map((t=>e.manager.services.sessions.shutdown(t.id)));return Promise.all(s).then((()=>undefined)).catch((e=>{void(0,i.showErrorMessage)(this._trans._p("showErrorMessage","Shut down kernel"),e)}))}selectNext(e=false){let t=-1;const n=Object.keys(this.selection);const i=this._sortedItems;if(n.length===1||e){const e=n[n.length-1];t=u.ArrayExt.findFirstIndex(i,(t=>t.path===e));t+=1;if(t===this._items.length){t=0}}else if(n.length===0){t=0}else{const e=n[n.length-1];t=u.ArrayExt.findFirstIndex(i,(t=>t.path===e))}if(t!==-1){this._selectItem(t,e);m.ElementExt.scrollIntoViewIfNeeded(this.contentNode,this._items[t])}}selectPrevious(e=false){let t=-1;const n=Object.keys(this.selection);const i=this._sortedItems;if(n.length===1||e){const e=n[0];t=u.ArrayExt.findFirstIndex(i,(t=>t.path===e));t-=1;if(t===-1){t=this._items.length-1}}else if(n.length===0){t=this._items.length-1}else{const e=n[0];t=u.ArrayExt.findFirstIndex(i,(t=>t.path===e))}if(t!==-1){this._selectItem(t,e);m.ElementExt.scrollIntoViewIfNeeded(this.contentNode,this._items[t])}}selectByPrefix(){const e=this._searchPrefix.toLowerCase();const t=this._sortedItems;const n=u.ArrayExt.findFirstIndex(t,(t=>t.name.toLowerCase().substr(0,e.length)===e));if(n!==-1){this._selectItem(n,false);m.ElementExt.scrollIntoViewIfNeeded(this.contentNode,this._items[n])}}isSelected(e){const t=this._sortedItems;return Array.from((0,u.filter)(t,(t=>t.name===e&&this.selection[t.path]))).length!==0}modelForClick(e){const t=this._sortedItems;const n=he.hitTestNodes(this._items,e);if(n!==-1){return t[n]}return undefined}clearSelectedItems(){this.selection=Object.create(null)}async selectItemByName(e,t=false){return this._selectItemByName(e,t)}async _selectItemByName(e,t=false,n=false){if(!n&&this.isSelected(e)){return}await this.model.refresh();if(this.isDisposed){throw new Error("File browser is disposed.")}const i=this._sortedItems;const s=u.ArrayExt.findFirstIndex(i,(t=>t.name===e));if(s===-1){throw new Error("Item does not exist.")}this._selectItem(s,false,t);I.MessageLoop.sendMessage(this,l.Widget.Msg.UpdateRequest);m.ElementExt.scrollIntoViewIfNeeded(this.contentNode,this._items[s])}handleEvent(e){switch(e.type){case"mousedown":this._evtMousedown(e);break;case"mouseup":this._evtMouseup(e);break;case"mousemove":this._evtMousemove(e);break;case"keydown":this.evtKeydown(e);break;case"click":this._evtClick(e);break;case"dblclick":this.evtDblClick(e);break;case"dragenter":case"dragover":this.addClass("jp-mod-native-drop");e.preventDefault();break;case"dragleave":case"dragend":this.removeClass("jp-mod-native-drop");break;case"drop":this.removeClass("jp-mod-native-drop");this.evtNativeDrop(e);break;case"scroll":this._evtScroll(e);break;case"lm-dragenter":this.evtDragEnter(e);break;case"lm-dragleave":this.evtDragLeave(e);break;case"lm-dragover":this.evtDragOver(e);break;case"lm-drop":this.evtDrop(e);break;default:break}}onAfterAttach(e){super.onAfterAttach(e);const t=this.node;this._width=this._computeContentWidth();const n=i.DOMUtils.findElement(t,R);t.addEventListener("mousedown",this);t.addEventListener("keydown",this);t.addEventListener("click",this);t.addEventListener("dblclick",this);this._contentSizeObserver.observe(n);n.addEventListener("dragenter",this);n.addEventListener("dragover",this);n.addEventListener("dragleave",this);n.addEventListener("dragend",this);n.addEventListener("drop",this);n.addEventListener("scroll",this);n.addEventListener("lm-dragenter",this);n.addEventListener("lm-dragleave",this);n.addEventListener("lm-dragover",this);n.addEventListener("lm-drop",this)}onBeforeDetach(e){super.onBeforeDetach(e);const t=this.node;const n=i.DOMUtils.findElement(t,R);t.removeEventListener("mousedown",this);t.removeEventListener("keydown",this);t.removeEventListener("click",this);t.removeEventListener("dblclick",this);this._contentSizeObserver.disconnect();n.removeEventListener("scroll",this);n.removeEventListener("dragover",this);n.removeEventListener("dragover",this);n.removeEventListener("dragleave",this);n.removeEventListener("dragend",this);n.removeEventListener("drop",this);n.removeEventListener("lm-dragenter",this);n.removeEventListener("lm-dragleave",this);n.removeEventListener("lm-dragover",this);n.removeEventListener("lm-drop",this);document.removeEventListener("mousemove",this,true);document.removeEventListener("mouseup",this,true)}onAfterShow(e){if(this._isDirty){this.sort(this.sortState);this.update()}}_onContentResize(){const e=i.DOMUtils.findElement(this.node,R);const t=e.offsetWidth-e.clientWidth;if(t!=this._contentScrollbarWidth){this._contentScrollbarWidth=t;this._width=this._computeContentWidth();this._updateColumnSizes()}}_computeContentWidth(e=null){if(!e){e=this.node.getBoundingClientRect().width}this._paddingWidth=parseFloat(window.getComputedStyle(this.node).getPropertyValue("--jp-dirlisting-padding-width"));const t=this.node.querySelector(`.${Q}`);this._handleWidth=t?t.getBoundingClientRect().width:re;return e-this._paddingWidth*2-this._contentScrollbarWidth}_updateModifiedSize(e){var t,n;const s=i.DOMUtils.findElement(e,q);this._modifiedWidth=(n=(t=this._columnSizes["last_modified"])!==null&&t!==void 0?t:s===null||s===void 0?void 0:s.getBoundingClientRect().width)!==null&&n!==void 0?n:83;this._modifiedStyle=this._modifiedWidth<100?"narrow":this._modifiedWidth>120?"long":"short"}_updateModifiedStyleAndSize(){const e=this._modifiedStyle;this._updateModifiedSize(this.node);if(e!==this._modifiedStyle){this.updateModified(this._sortedItems,this._items)}}updateModified(e,t){e.forEach(((e,n)=>{const s=t[n];if(s&&e.last_modified){const t=i.DOMUtils.findElement(s,z);if(this.renderer.updateItemModified!==undefined){this.renderer.updateItemModified(t,e.last_modified,this._modifiedStyle)}else{ce.defaultRenderer.updateItemModified(t,e.last_modified,this._modifiedStyle)}}}))}updateNodes(e,t,n=false){var i;e.forEach(((e,i)=>{const s=t[i];if(n&&this.renderer.updateItemSize){if(!s){return}return this.renderer.updateItemSize(s,e,this._modifiedStyle,this._columnSizes)}const o=this._manager.registry.getFileTypeForModel(e);this.renderer.updateItemNode(s,e,o,this.translator,this._hiddenColumns,this.selection[e.path],this._modifiedStyle,this._columnSizes);if(this.selection[e.path]&&this._isCut&&this._model.path===this._prevPath){s.classList.add(ee)}s.setAttribute("data-isdir",e.type==="directory"?"true":"false")}));const s=Object.keys(this.selection).length;if(s){this.addClass(Y);if(s>1){this.addClass(te)}}const o=e.map((e=>e.path));for(const r of this._model.sessions()){const e=u.ArrayExt.firstIndexOf(o,r.path);const n=t[e];if(n){let e=(i=r.kernel)===null||i===void 0?void 0:i.name;const t=this._model.specs;n.classList.add(ne);if(t&&e){const n=t.kernelspecs[e];e=n?n.display_name:this._trans.__("unknown")}const s=this._lastRenderedState.get(n);if(s!==n.title){n.title=this._trans.__("%1\nKernel: %2",n.title,e);this._lastRenderedState.set(n,n.title)}}}}onUpdateRequest(e){this._isDirty=false;const t=this._sortedItems;const n=this._items;const s=i.DOMUtils.findElement(this.node,R);const o=this._renderer;this.removeClass(te);this.removeClass(Y);while(n.length>t.length){s.removeChild(n.pop())}while(n.length{e.classList.remove(Y);e.classList.remove(ne);e.classList.remove(ee);const n=o.getCheckboxNode(e);if(n){n.checked=false}const i=o.getNameNode(e);if(i){i.tabIndex=t===this._focusIndex?0:-1}}));const r=o.getCheckboxNode(this.headerNode);if(r){const e=Object.keys(this.selection).length;const n=t.length>0&&e===t.length;const i=!n&&e>0;r.checked=n;r.indeterminate=i;r.dataset.checked=String(n);r.dataset.indeterminate=String(i);const s=this.translator.load("jupyterlab");r===null||r===void 0?void 0:r.setAttribute("aria-label",n||i?s.__("Deselect all files and directories"):s.__("Select all files and directories"))}this.updateNodes(t,n);this._prevPath=this._model.path}onResize(e){const{width:t}=e.width===-1?this.node.getBoundingClientRect():e;this._width=this._computeContentWidth(t);this._updateColumnSizes()}setColumnVisibility(e,t){if(t){this._hiddenColumns.delete(e)}else{this._hiddenColumns.add(e)}this.headerNode.innerHTML="";this._renderer.populateHeaderNode(this.headerNode,this.translator,this._hiddenColumns,this._columnSizes);this._updateColumnSizes()}_updateColumnSizes(e=null){const t=this._visibleColumns.map((e=>({...e,element:i.DOMUtils.findElement(this.node,e.className)}))).filter((e=>e.element));let n=0;for(const i of t){let e=this._columnSizes[i.id];if(e===null){e=i.element.getBoundingClientRect().width}e=Math.max(e,i.minWidth);if(this._width){let n=0;for(const e of t){if(e.id===i.id){continue}n+=e.minWidth}e=Math.min(e,this._width-n)}this._columnSizes[i.id]=e;n+=e}if(this._width){const i=this._width-n;let s=e===null;const o=t.filter((t=>{if(s){return true}if(t.id===e){s=true}return false}));const r=o.map((e=>e.grow)).reduce(((e,t)=>e+t),0);for(const e of o){const t=i*e.grow/r;this._columnSizes[e.id]=this._columnSizes[e.id]+t}}const s=this.node.getElementsByClassName(Q);const o=t.map((e=>he.isResizable(e)));let r=0;for(const i of t){let e=this._columnSizes[i.id];if(he.isResizable(i)&&e){e-=this._handleWidth*s.length/o.length;if(r===0||r===o.length-1){e+=this._paddingWidth}r+=1}i.element.style.width=e===null?"":e+"px"}this._updateModifiedStyleAndSize();if(this.isVisible){const e=this._items;if(e.length!==0){this.updateNodes(this._sortedItems,this._items,true)}}if(this._state&&this._stateColumnsKey){void this._state.save(this._stateColumnsKey,{sizes:this._columnSizes})}}get _visibleColumns(){return ce.columns.filter((e=>{var t;return e.id==="name"||!((t=this._hiddenColumns)===null||t===void 0?void 0:t.has(e.id))}))}_setColumnSize(e,t){var n;const s=this._columnSizes[e];if(s&&t&&t>s){let s=0;let o=true;for(const r of this._visibleColumns){if(r.id===e){s+=t;o=false;continue}if(o){const e=i.DOMUtils.findElement(this.node,r.className);s+=(n=this._columnSizes[r.id])!==null&&n!==void 0?n:e.getBoundingClientRect().width}else{s+=r.minWidth}}if(this._width&&s>this._width){return}}this._columnSizes[e]=t;this._updateColumnSizes(e)}setNotebooksFirstSorting(e){let t=this._sortNotebooksFirst;this._sortNotebooksFirst=e;if(this._sortNotebooksFirst!==t){this.sort(this._sortState)}}setAllowSingleClickNavigation(e){this._allowSingleClick=e}isWithinCheckboxHitArea(e){let t=e.target;while(t){if(t.classList.contains(W)){return true}t=t.parentElement}return false}_evtClick(e){const t=e.target;const n=this.headerNode;const i=this._renderer;if(n.contains(t)){const t=i.getCheckboxNode(n);if(t&&this.isWithinCheckboxHitArea(e)){const e=t.dataset.indeterminate==="false"&&t.dataset.checked==="false";if(e){this._sortedItems.forEach((e=>this.selection[e.path]=true))}else{this.clearSelectedItems()}this.update()}else{const t=this.renderer.handleHeaderClick(n,e);if(t){this.sort(t)}}return}else{this._focusItem(this._focusIndex)}if(this._allowSingleClick){this.evtDblClick(e)}}_evtScroll(e){this.headerNode.scrollLeft=this.contentNode.scrollLeft}_evtMousedown(e){if(e.target===this._editNode){return}if(this._editNode.parentNode){if(this._editNode!==e.target){this._editNode.focus();this._editNode.blur();clearTimeout(this._selectTimer)}else{return}}let t=he.hitTestNodes(this._items,e);if(t===-1){if(e.button===0){const t=e.target;if(t instanceof HTMLElement&&t.classList.contains(Q)){const n=t.dataset.column;if(!n){throw Error("Column resize handle is missing data-column attribute")}const s=ce.columns.find((e=>e.id===n));if(!s){throw Error(`Column with identifier ${n} not found`)}const o=i.DOMUtils.findElement(this.node,s.className);t.classList.add(ie);const r=j.Drag.overrideCursor("col-resize");this._resizeData={pressX:e.clientX,column:n,initialSize:o.getBoundingClientRect().width,overrides:new k.DisposableDelegate((()=>{r.dispose();t.classList.remove(ie)}))};document.addEventListener("mouseup",this,true);document.addEventListener("mousemove",this,true);return}}return}this.handleFileSelect(e);if(e.button!==0){clearTimeout(this._selectTimer)}const n=le&&e.ctrlKey||e.button===2;if(n){return}if(e.button===0){this._dragData={pressX:e.clientX,pressY:e.clientY,index:t};document.addEventListener("mouseup",this,true);document.addEventListener("mousemove",this,true)}}_evtMouseup(e){if(this._softSelection){const t=e.metaKey||e.shiftKey||e.ctrlKey;if(!t&&e.button===0){this.clearSelectedItems();this.selection[this._softSelection]=true;this.update()}this._softSelection=""}if(e.button===0){this._focusItem(this._focusIndex)}if(this._resizeData){this._resizeData.overrides.dispose();this._resizeData=null;document.removeEventListener("mousemove",this,true);document.removeEventListener("mouseup",this,true);return}if(e.button!==0||!this._drag){document.removeEventListener("mousemove",this,true);document.removeEventListener("mouseup",this,true);return}e.preventDefault();e.stopPropagation()}_evtMousemove(e){e.preventDefault();e.stopPropagation();if(this._resizeData){const{initialSize:t,column:n,pressX:i}=this._resizeData;this._setColumnSize(n,t+e.clientX-i);return}if(this._drag||!this._dragData){return}const t=this._dragData;const n=Math.abs(e.clientX-t.pressX);const i=Math.abs(e.clientY-t.pressY);if(n(0,i.showErrorMessage)(this._trans._p("showErrorMessage","Open directory"),e)))}else{const t=e.path;this._manager.openOrReveal(t)}}_getNextFocusIndex(e,t){const n=e+t;if(n===-1||n===this._items.length){return e}else{return n}}_handleArrowY(e,t){if(e.altKey||e.metaKey){return}if(!this._items.length){return}if(!e.target.classList.contains(O)){return}e.stopPropagation();e.preventDefault();const n=this._focusIndex;let i=this._getNextFocusIndex(n,t);if(t>0&&n===0&&!e.ctrlKey&&Object.keys(this.selection).length===0){i=0}if(e.shiftKey){this._handleMultiSelect(i)}else if(!e.ctrlKey){this._selectItem(i,e.shiftKey,false)}this._focusItem(i);this.update()}async goUp(){const e=this.model;if(e.path===e.rootPath){return}try{await e.cd("..")}catch(t){console.warn(`Failed to go to parent directory of ${e.path}`,t)}}evtKeydown(e){if(this._inRename){return}switch(e.keyCode){case 13:{if(e.ctrlKey||e.shiftKey||e.altKey||e.metaKey){return}e.preventDefault();e.stopPropagation();for(const e of this.selectedItems()){this.handleOpen(e)}return}case 38:this._handleArrowY(e,-1);return;case 40:this._handleArrowY(e,1);return;case 32:{if(e.ctrlKey){if(e.metaKey||e.shiftKey||e.altKey){return}const t=this._items[this._focusIndex];if(!(t.contains(e.target)&&t.contains(document.activeElement))){return}e.stopPropagation();e.preventDefault();const{path:n}=this._sortedItems[this._focusIndex];if(this.selection[n]){delete this.selection[n]}else{this.selection[n]=true}this.update();return}break}}if(e.key!==undefined&&e.key.length===1&&!((e.key===" "||e.keyCode===32)&&e.target.type==="checkbox")){if(e.ctrlKey||e.shiftKey||e.altKey||e.metaKey){return}this._searchPrefix+=e.key;clearTimeout(this._searchPrefixTimer);this._searchPrefixTimer=window.setTimeout((()=>{this._searchPrefix=""}),oe);this.selectByPrefix();e.stopPropagation();e.preventDefault()}}evtDblClick(e){if(e.button!==0){return}if(e.ctrlKey||e.shiftKey||e.altKey||e.metaKey){return}if(this.isWithinCheckboxHitArea(e)){return}e.preventDefault();e.stopPropagation();clearTimeout(this._selectTimer);this._editNode.blur();const t=e.target;const n=u.ArrayExt.findFirstIndex(this._items,(e=>e.contains(t)));if(n===-1){return}const i=this._sortedItems[n];this.handleOpen(i)}evtNativeDrop(e){var t,n,i;e.preventDefault();const s=(t=e.dataTransfer)===null||t===void 0?void 0:t.items;if(!s){const t=(n=e.dataTransfer)===null||n===void 0?void 0:n.files;if(!t||t.length===0){return}const i=[];for(const e of t){const t=this._model.upload(e);i.push(t)}Promise.all(i).then((()=>this._allUploaded.emit())).catch((e=>{console.error("Error while uploading files: ",e)}));return}const o=async(e,t)=>{if(he.isDirectoryEntry(e)){const n=await he.createDirectory(this._model.manager,t,e.name);const i=e.createReader();const s=await he.collectEntries(i);for(const e of s){await o(e,n)}}else if(he.isFileEntry(e)){const n=await he.readFile(e);await this._model.upload(n,t)}};const r=[];for(const a of s){const e=he.defensiveGetAsEntry(a);if(!e){continue}const t=o(e,(i=this._model.path)!==null&&i!==void 0?i:"/");r.push(t)}Promise.all(r).then((()=>this._allUploaded.emit())).catch((e=>{console.error("Error while uploading files: ",e)}))}get allUploaded(){return this._allUploaded}evtDragEnter(e){if(e.mimeData.hasData(K)){const t=he.hitTestNodes(this._items,e);if(t===-1){return}const n=this._sortedItems[t];if(n.type!=="directory"||this.selection[n.path]){return}const i=e.target;i.classList.add(G);e.preventDefault();e.stopPropagation()}}evtDragLeave(e){e.preventDefault();e.stopPropagation();const t=i.DOMUtils.findElement(this.node,G);if(t){t.classList.remove(G)}}evtDragOver(e){e.preventDefault();e.stopPropagation();e.dropAction=e.proposedAction;const t=i.DOMUtils.findElement(this.node,G);if(t){t.classList.remove(G)}const n=he.hitTestNodes(this._items,e);this._items[n].classList.add(G)}evtDrop(e){e.preventDefault();e.stopPropagation();clearTimeout(this._selectTimer);if(e.proposedAction==="none"){e.dropAction="none";return}if(!e.mimeData.hasData(K)){return}let t=e.target;while(t&&t.parentElement){if(t.classList.contains(G)){t.classList.remove(G);break}t=t.parentElement}const n=u.ArrayExt.firstIndexOf(this._items,t);const o=this._sortedItems;let r=this._model.path;if(o[n].type==="directory"){r=s.PathExt.join(r,o[n].name)}const a=this._manager;const l=[];const d=e.mimeData.getData(K);if(e.ctrlKey&&e.proposedAction==="move"){e.dropAction="copy"}else{e.dropAction=e.proposedAction}for(const i of d){const t=a.services.contents.localPath(i);const n=s.PathExt.basename(t);const o=s.PathExt.join(r,n);if(o===i){continue}if(e.dropAction==="copy"){l.push(a.copy(i,r))}else{l.push((0,h.renameFile)(a,i,o))}}Promise.all(l).catch((e=>{void(0,i.showErrorMessage)(this._trans._p("showErrorMessage","Error while copying/moving files"),e)}))}_startDrag(e,t,n){let i=Object.keys(this.selection);const s=this._items[e];const o=this._sortedItems;let r;let a;if(!s.classList.contains(Y)){a=o[e];i=[a.path];r=[a]}else{const e=i[0];a=o.find((t=>t.path===e));r=this.selectedItems()}if(!a){return}const l=this._manager.registry.getFileTypeForModel(a);const d=this.renderer.createDragImage(s,i.length,this._trans,l);this._drag=new j.Drag({dragImage:d,mimeData:new p.MimeData,supportedActions:"move",proposedAction:"move"});this._drag.mimeData.setData(K,i);const c=this.model.manager.services;for(const h of r){this._drag.mimeData.setData(J,{model:h,withContent:async()=>await c.contents.get(h.path)})}if(a&&a.type!=="directory"){const e=i.slice(1).reverse();this._drag.mimeData.setData(de,(()=>{if(!a){return}const t=a.path;let n=this._manager.findWidget(t);if(!n){n=this._manager.open(a.path)}if(e.length){const t=new p.PromiseDelegate;void t.promise.then((()=>{let t=n;e.forEach((e=>{const n={ref:t===null||t===void 0?void 0:t.id,mode:"tab-after"};t=this._manager.openOrReveal(e,void 0,void 0,n);this._manager.openOrReveal(a.path)}))}));t.resolve(void 0)}return n}))}document.removeEventListener("mousemove",this,true);document.removeEventListener("mouseup",this,true);clearTimeout(this._selectTimer);void this._drag.start(t,n).then((e=>{this._drag=null;clearTimeout(this._selectTimer)}))}handleFileSelect(e){const t=this._sortedItems;const n=he.hitTestNodes(this._items,e);clearTimeout(this._selectTimer);if(n===-1){return}this._softSelection="";const i=t[n].path;const s=Object.keys(this.selection);const o=e.button===0&&!(le&&e.ctrlKey)&&this.isWithinCheckboxHitArea(e);if(le&&e.metaKey||!le&&e.ctrlKey||o){if(this.selection[i]){delete this.selection[i]}else{this.selection[i]=true}this._focusItem(n)}else if(e.shiftKey){this._handleMultiSelect(n);this._focusItem(n)}else if(i in this.selection&&s.length>1){this._softSelection=i}else{return this._selectItem(n,false,true)}this.update()}_focusItem(e){const t=this._items;if(t.length===0){this._focusIndex=0;this.node.focus();return}this._focusIndex=e;const n=t[e];const i=this.renderer.getNameNode(n);if(i){i.tabIndex=0;i.focus()}}_allSelectedBetween(e,t){if(e===t){return}const[n,i]=ee&&this.selection[t.path]),true)}_handleMultiSelect(e){const t=this._sortedItems;const n=this._focusIndex;const i=t[e];let s=true;if(e===n){this.selection[i.path]=true;return}if(this.selection[i.path]){if(Math.abs(e-n)===1){const i=t[n];const s=t[n+(ethis._model.manager.deleteFile(e).catch((e=>{void(0,i.showErrorMessage)(this._trans._p("showErrorMessage","Delete Failed"),e)})))))}async _doRename(){this._inRename=true;const e=Object.keys(this.selection);if(e.length===0){this._inRename=false;return Promise.resolve("")}const t=this._sortedItems;let{path:n}=t[this._focusIndex];if(!this.selection[n]){n=e.slice(-1)[0]}const o=u.ArrayExt.findFirstIndex(t,(e=>e.path===n));const r=this._items[o];const a=t[o];const l=this.renderer.getNameNode(r);const d=a.name;this._editNode.value=d;this._selectItem(o,false,true);const c=await he.userInputForRename(l,this._editNode,d);if(this.isDisposed){this._inRename=false;throw new Error("File browser is disposed.")}let p=c;if(!c||c===d){p=d}else if(!(0,h.isValidFileName)(c)){void(0,i.showErrorMessage)(this._trans.__("Rename Error"),Error(this._trans._p("showErrorMessage",'"%1" is not a valid name for a file. Names must have nonzero length, and cannot include "/", "\\", or ":"',c)));p=d}else{const e=this._manager;const t=s.PathExt.join(this._model.path,d);const n=s.PathExt.join(this._model.path,c);try{await(0,h.renameFile)(e,t,n)}catch(m){if(m!=="File not renamed"){void(0,i.showErrorMessage)(this._trans._p("showErrorMessage","Rename Error"),m)}p=d}if(this.isDisposed){this._inRename=false;throw new Error("File browser is disposed.")}}if(!this.isDisposed&&Object.keys(this.selection).length===1&&this.selection[a.path]){try{await this._selectItemByName(p,true,true)}catch(g){console.warn("After rename, failed to select file",p)}}this._inRename=false;return p}_selectItem(e,t,n=true){const i=this._sortedItems;if(!t){this.clearSelectedItems()}const s=i[e].path;this.selection[s]=true;if(n){this._focusItem(e)}this.update()}_onModelRefreshed(){const e=Object.keys(this.selection);this.clearSelectedItems();for(const t of this._model.items()){const n=t.path;if(e.indexOf(n)!==-1){this.selection[n]=true}}if(this.isVisible){this.sort(this.sortState)}else{this._isDirty=true}}_onPathChanged(){this.clearSelectedItems();this.sort(this.sortState);requestAnimationFrame((()=>{this._focusItem(0)}))}_onFileChanged(e,t){const n=t.newValue;if(!n){return}const i=n.name;if(t.type!=="new"||!i){return}void this.selectItemByName(i).catch((()=>{}))}_onActivateRequested(e,t){const n=s.PathExt.dirname(t);if(n!==this._model.path){return}const i=s.PathExt.basename(t);this.selectItemByName(i).catch((()=>{}))}}(function(e){e.columns=[{id:"is_selected",className:W,itemClassName:W,minWidth:18,resizable:false,sortable:false,grow:0},{id:"name",className:U,itemClassName:B,minWidth:60,resizable:true,sortable:true,caretSide:"right",grow:3},{id:"last_modified",className:q,itemClassName:z,minWidth:60,resizable:true,sortable:true,caretSide:"left",grow:1},{id:"file_size",className:$,itemClassName:H,minWidth:60,resizable:true,sortable:true,caretSide:"left",grow:.5}];class t{constructor(){this.itemFactories={name:()=>{const e=document.createElement("span");const t=document.createElement("span");const n=document.createElement("span");t.className=F;n.className=O;e.className=B;e.appendChild(t);e.appendChild(n);return e},last_modified:()=>{const e=document.createElement("span");e.className=z;return e},file_size:()=>{const e=document.createElement("span");e.className=H;return e},is_selected:()=>this.createCheckboxWrapperNode()};this._modifiedColumnLastUpdate=new WeakMap;this._lastRenderedState=new WeakMap}createNode(){const e=document.createElement("div");const t=document.createElement("div");const n=document.createElement("ul");n.setAttribute("data-lm-dragscroll","true");n.className=R;t.className=D;e.appendChild(t);e.appendChild(n);e.tabIndex=-1;return e}populateHeaderNode(t,n,s,o){n=n||r.nullTranslator;const a=n.load("jupyterlab");const l={name:()=>this.createHeaderItemNode(a.__("Name")),last_modified:()=>this._createHeaderItemNodeWithSizes({small:a.__("Modified"),large:a.__("Last Modified")}),file_size:()=>this._createHeaderItemNodeWithSizes({small:a.__("Size"),large:a.__("File Size")}),is_selected:()=>this.createCheckboxWrapperNode({alwaysVisible:true,headerNode:true})};const d=e.columns.filter((e=>e.id==="name"||!(s===null||s===void 0?void 0:s.has(e.id))));for(const e of d){const n=l[e.id];const i=n();i.classList.add(e.className);const s=e.id===d[d.length-1].id;if(o){const t=o[e.id];if(!s){i.style.width=t+"px"}}t.appendChild(i);if(he.isResizable(e)&&!s){const n=document.createElement("div");n.classList.add(Q);n.dataset.column=e.id;t.appendChild(n)}}const c=i.DOMUtils.findElement(t,U);c.classList.add(Y);he.updateCaret(i.DOMUtils.findElement(c,L),"right","up")}handleHeaderClick(t,n){const s={direction:"ascending",key:"name"};const o=n.target;const r=e.columns.filter(he.isSortable);for(const e of r){const n=t.querySelector(`.${e.className}`);if(!n){continue}if(n.contains(o)){s.key=e.id;const o=i.DOMUtils.findElement(n,L);if(n.classList.contains(Y)){if(!n.classList.contains(se)){s.direction="descending";n.classList.add(se);he.updateCaret(o,e.caretSide,"down")}else{n.classList.remove(se);he.updateCaret(o,e.caretSide,"up")}}else{n.classList.remove(se);he.updateCaret(o,e.caretSide,"up")}n.classList.add(Y);for(const n of r){if(n.id===e.id){continue}const s=t.querySelector(`.${n.className}`);if(!s){continue}s.classList.remove(Y);s.classList.remove(se);const o=i.DOMUtils.findElement(s,L);he.updateCaret(o,n.caretSide)}return s}}return s}createItemNode(t,n){const i=document.createElement("li");for(const s of e.columns){if(s.id!="name"&&(t===null||t===void 0?void 0:t.has(s.id))){continue}const e=this.itemFactories[s.id];const o=e();i.appendChild(o);if(n){const e=n[s.id];o.style.width=e+"px"}}return i}createCheckboxWrapperNode(e){const t=document.createElement("label");t.classList.add(W);const n=document.createElement("input");n.type="checkbox";if(!(e===null||e===void 0?void 0:e.headerNode)){n.addEventListener("click",(e=>{e.preventDefault()}))}if(e===null||e===void 0?void 0:e.alwaysVisible){t.classList.add("jp-mod-visible")}else{n.tabIndex=-1}t.appendChild(n);return t}updateItemModified(e,t,n){const i=this._modifiedColumnLastUpdate.get(e);if((i===null||i===void 0?void 0:i.date)===t&&(i===null||i===void 0?void 0:i.style)===n){return}const o=new Date(t);const r=s.Time.formatHuman(o,n);const a=s.Time.format(o);e.textContent=r;e.title=a;this._modifiedColumnLastUpdate.set(e,{date:t,style:n})}updateItemNode(e,t,n,o,l,d,c,h){if(d){e.classList.add(Y)}n=n||S.DocumentRegistry.getDefaultTextFileType(o);const{icon:p,iconClass:m,name:g}=n;o=o||r.nullTranslator;const f=o.load("jupyterlab");const v=this._lastRenderedState.get(e);const _=JSON.stringify({name:t.name,selected:d,lastModified:t.last_modified,modifiedStyle:c,hiddenColumns:l,columnsSizes:h,fileSize:t.size});const b=i.DOMUtils.findElement(e,W);const y=b===null||b===void 0?void 0:b.querySelector('input[type="checkbox"]');if(y)y.checked=d!==null&&d!==void 0?d:false;if(v===_)return;this._lastRenderedState.set(e,_);const w=i.DOMUtils.findElement(e,F);const C=i.DOMUtils.findElement(e,O);const x=i.DOMUtils.findElement(e,B);let k=i.DOMUtils.findElement(e,z);let j=i.DOMUtils.findElement(e,H);const I=!(l===null||l===void 0?void 0:l.has("is_selected"));if(b&&!I){e.removeChild(b)}else if(I&&!b){const e=this.createCheckboxWrapperNode();x.insertAdjacentElement("beforebegin",e)}const E=!(l===null||l===void 0?void 0:l.has("last_modified"));if(k&&!E){e.removeChild(k)}else if(E&&!k){k=this.itemFactories.last_modified();x.insertAdjacentElement("afterend",k)}const M=!(l===null||l===void 0?void 0:l.has("file_size"));if(j&&!M){e.removeChild(j)}else if(M&&!j){j=this.itemFactories.file_size();(k!==null&&k!==void 0?k:x).insertAdjacentElement("afterend",j)}requestAnimationFrame((()=>{a.LabIcon.resolveElement({icon:p,iconClass:(0,a.classes)(m,"jp-Icon"),container:w,className:F,stylesheet:"listing"})}));let D=f.__("Name: %1",t.name);if(t.size!==null&&t.size!==undefined){const e=he.formatFileSize(t.size,1,1024);if(j){j.textContent=e}D+=f.__("\nSize: %1",he.formatFileSize(t.size,1,1024))}else if(j){j.textContent=""}if(t.path){const e=s.PathExt.dirname(t.path);if(e){D+=f.__("\nPath: %1",e.substr(0,50));if(e.length>50){D+="..."}}}if(t.created){D+=f.__("\nCreated: %1",s.Time.format(new Date(t.created)))}if(t.last_modified){D+=f.__("\nModified: %1",s.Time.format(new Date(t.last_modified)))}D+=f.__("\nWritable: %1",t.writable);e.title=D;e.setAttribute("data-file-type",g);if(t.name.startsWith(".")){e.setAttribute("data-is-dot","true")}else{e.removeAttribute("data-is-dot")}const A=!t.indices?[]:t.indices;let P=u.StringExt.highlight(t.name,A,T.h.mark);if(C){T.VirtualDOM.render(T.h.span(P),C)}if(y){let e;if(n.contentType==="directory"){e=d?f.__('Deselect directory "%1"',P):f.__('Select directory "%1"',P)}else{e=d?f.__('Deselect file "%1"',P):f.__('Select file "%1"',P)}y.setAttribute("aria-label",e);y.checked=d!==null&&d!==void 0?d:false}this.updateItemSize(e,t,c,h)}updateItemSize(t,n,s,o){if(o){for(const n of e.columns){const e=i.DOMUtils.findElement(t,n.itemClassName);if(!e){continue}const s=o[n.id];const r=s===null?"":s+"px";if(r!==e.style.width){e.style.width=r}}}let r=i.DOMUtils.findElement(t,z);if(n.last_modified&&r){this.updateItemModified(r,n.last_modified,s!==null&&s!==void 0?s:"short")}}getNameNode(e){return i.DOMUtils.findElement(e,O)}getCheckboxNode(e){return e.querySelector(`.${W} input[type=checkbox]`)}createDragImage(t,n,s,o){const r=t.cloneNode(true);const a=i.DOMUtils.findElement(r,F);const l=e.columns.filter((e=>e.id!=="name"));for(const e of l){const t=i.DOMUtils.findElement(r,e.itemClassName);if(!t){continue}r.removeChild(t)}if(!o){a.textContent="";a.className=""}else{a.textContent=o.iconLabel||"";a.className=o.iconClass||""}a.classList.add(X);if(n>1){const e=i.DOMUtils.findElement(r,O);e.textContent=s._n("%1 Item","%1 Items",n)}return r}createHeaderItemNode(e){const t=document.createElement("div");const n=document.createElement("span");const i=document.createElement("span");t.className=A;n.className=P;i.className=L;n.textContent=e;t.appendChild(n);t.appendChild(i);return t}_createHeaderItemNodeWithSizes(e){const t=document.createElement("div");t.className=A;const n=document.createElement("span");n.className=L;for(let i of Object.keys(e)){const n=document.createElement("span");n.classList.add(P,P+"-"+i);n.textContent=e[i];t.appendChild(n)}t.appendChild(n);return t}}e.Renderer=t;e.defaultRenderer=new t})(ce||(ce={}));var he;(function(e){function t(e,t,n){const i=e.parentElement;i.replaceChild(t,e);t.focus();const s=t.value.lastIndexOf(".");if(s===-1){t.setSelectionRange(0,t.value.length)}else{t.setSelectionRange(0,s)}return new Promise((s=>{t.onblur=()=>{i.replaceChild(e,t);s(t.value)};t.onkeydown=i=>{switch(i.keyCode){case 13:i.stopPropagation();i.preventDefault();t.blur();break;case 27:i.stopPropagation();i.preventDefault();t.value=n;t.blur();e.focus();break;default:break}}}))}e.userInputForRename=t;function n(e,t,n=false,i){const s=Array.from(e);const o=t.direction==="descending"?1:-1;function r(e,t){if(n){return e.type!==t.type}return e.type==="directory"!==(t.type==="directory")}function a(e){if(e.type==="directory"){return 2}if(e.type==="notebook"&&n){return 1}return 0}function l(e,t){var n;const s=navigator.language.split("@")[0];const o=((n=i.languageCode)!==null&&n!==void 0?n:s).replace("_","-");try{return e.name.localeCompare(t.name,o,{numeric:true,sensitivity:"base"})}catch(r){console.warn(`localeCompare failed to compare ${e.name} and ${t.name} under languageCode: ${o}`);return e.name.localeCompare(t.name,s,{numeric:true,sensitivity:"base"})}}function d(e){return(t,n)=>{if(r(t,n)){return a(n)-a(t)}const i=e(t,n);if(i!==0){return i*o}return l(t,n)}}if(t.key==="last_modified"){s.sort(d(((e,t)=>new Date(e.last_modified).getTime()-new Date(t.last_modified).getTime())))}else if(t.key==="file_size"){s.sort(d(((e,t)=>{var n,i;return((n=t.size)!==null&&n!==void 0?n:0)-((i=e.size)!==null&&i!==void 0?i:0)})))}else{s.sort(d(((e,t)=>l(t,e))))}return s}e.sort=n;e.isResizable=e=>"resizable"in e&&e.resizable;e.isSortable=e=>"sortable"in e&&e.sortable;function i(e,t){return u.ArrayExt.findFirstIndex(e,(e=>m.ElementExt.hitTest(e,t.clientX,t.clientY)||t.target===e))}e.hitTestNodes=i;function o(e,t,n){if(e===0){return"0 B"}const i=t||2;const s=["B","KB","MB","GB","TB","PB","EB","ZB","YB"];const o=Math.floor(Math.log(e)/Math.log(n));if(o>=0&&oe.readEntries(t,n)))}function g(e){return new Promise(((t,n)=>e.file(t,n)))}e.readFile=g;async function f(e){const t=[];let n=false;while(!n){const i=await p(e);if(i.length===0){n=true}else{t.push(...i)}}return t}e.collectEntries=f})(he||(he={}));const ue="jp-FileBrowser";const pe="jp-FileBrowser-Panel";const me="jp-FileBrowser-crumbs";const ge="jp-FileBrowser-toolbar";const fe="jp-FileBrowser-filterToolbar";const ve="jp-FileBrowser-listing";const _e="jp-FileBrowser-filterBox";class be extends a.SidePanel{constructor(e){var t;super({content:new l.Panel,translator:e.translator});this._directoryPending=null;this._filePending=null;this._fileFilterRef=(0,d.createRef)();this._allowSingleClick=false;this._showFileCheckboxes=false;this._showFileFilter=false;this._showFileSizeColumn=false;this._showHiddenFiles=false;this._showLastModifiedColumn=true;this._sortNotebooksFirst=false;this.addClass(ue);this.toolbar.addClass(ge);this.id=e.id;const n=this.translator=(t=e.translator)!==null&&t!==void 0?t:r.nullTranslator;const i=this.model=e.model;const s=e.renderer;i.connectionFailure.connect(this._onConnectionFailure,this);this._manager=i.manager;this.toolbar.node.setAttribute("aria-label",this._trans.__("file browser"));this.mainPanel=new l.Panel;this.mainPanel.addClass(pe);this.mainPanel.title.label=this._trans.__("File Browser");this.crumbs=new C({model:i,translator:n});this.crumbs.addClass(me);const o=(0,a.FilenameSearcher)({updateFilter:(e,t)=>{this.model.setFilter((t=>e(t.name.toLowerCase())))},useFuzzyFilter:this.model.useFuzzyFilter,placeholder:this._trans.__("Filter files by name"),forceRefresh:false,showIcon:false,inputRef:this._fileFilterRef,filterSettingsChanged:this.model.filterSettingsChanged});o.addClass(_e);this.filterToolbar=new a.Toolbar;this.filterToolbar.addClass(fe);this.filterToolbar.node.setAttribute("aria-label",this._trans.__("File browser toolbar"));this.filterToolbar.addItem("fileNameSearcher",o);this.filterToolbar.setHidden(!this.showFileFilter);this.listing=this.createDirListing({model:i,renderer:s,translator:n,state:e.state});this.listing.addClass(ve);this.mainPanel.addWidget(this.crumbs);this.mainPanel.addWidget(this.filterToolbar);this.mainPanel.addWidget(this.listing);this.addWidget(this.mainPanel);if(e.restore!==false){void i.restore(this.id)}void this.listing.restore(this.id)}get navigateToCurrentDirectory(){return this._navigateToCurrentDirectory}set navigateToCurrentDirectory(e){this._navigateToCurrentDirectory=e}get showLastModifiedColumn(){return this._showLastModifiedColumn}set showLastModifiedColumn(e){if(this.listing.setColumnVisibility){this.listing.setColumnVisibility("last_modified",e);this._showLastModifiedColumn=e}else{console.warn("Listing does not support toggling column visibility")}}get showFullPath(){return this.crumbs.fullPath}set showFullPath(e){this.crumbs.fullPath=e}get showFileSizeColumn(){return this._showFileSizeColumn}set showFileSizeColumn(e){if(this.listing.setColumnVisibility){this.listing.setColumnVisibility("file_size",e);this._showFileSizeColumn=e}else{console.warn("Listing does not support toggling column visibility")}}get showHiddenFiles(){return this._showHiddenFiles}set showHiddenFiles(e){this.model.showHiddenFiles(e);this._showHiddenFiles=e}get showFileCheckboxes(){return this._showFileCheckboxes}set showFileCheckboxes(e){if(this.listing.setColumnVisibility){this.listing.setColumnVisibility("is_selected",e);this._showFileCheckboxes=e}else{console.warn("Listing does not support toggling column visibility")}}get showFileFilter(){return this._showFileFilter}set showFileFilter(e){var t;const n=this.showFileFilter;if(n&&!e){if(this._fileFilterRef.current){this._fileFilterRef.current.value=""}this.model.setFilter((e=>({})));this.model.refresh().catch(console.warn)}this._showFileFilter=e;this.filterToolbar.setHidden(!this.showFileFilter);if(this.showFileFilter){(t=this._fileFilterRef.current)===null||t===void 0?void 0:t.focus()}}get sortNotebooksFirst(){return this._sortNotebooksFirst}set sortNotebooksFirst(e){if(this.listing.setNotebooksFirstSorting){this.listing.setNotebooksFirstSorting(e);this._sortNotebooksFirst=e}else{console.warn("Listing does not support sorting notebooks first")}}get singleClickNavigation(){return this._allowSingleClick}set singleClickNavigation(e){if(this.listing.setAllowSingleClickNavigation){this.listing.setAllowSingleClickNavigation(e);this._allowSingleClick=e}else{console.warn("Listing does not support single click navigation")}}selectedItems(){return this.listing.selectedItems()}async selectItemByName(e){await this.listing.selectItemByName(e)}clearSelectedItems(){this.listing.clearSelectedItems()}rename(){return this.listing.rename()}cut(){this.listing.cut()}copy(){this.listing.copy()}paste(){return this.listing.paste()}async _createNew(e){if(e.path){const t=this._manager.services.contents.localPath(e.path);e.path=this._toDrivePath(this.model.driveName,t)}try{const t=await this._manager.newUntitled(e);await this.listing.selectItemByName(t.name,true);await this.rename();return t}catch(t){void(0,i.showErrorMessage)(this._trans.__("Error"),t);throw t}}async createNewDirectory(){if(this._directoryPending){return this._directoryPending}this._directoryPending=this._createNew({path:this.model.path,type:"directory"});try{return await this._directoryPending}finally{this._directoryPending=null}}async createNewFile(e){if(this._filePending){return this._filePending}this._filePending=this._createNew({path:this.model.path,type:"file",ext:e.ext});try{return await this._filePending}finally{this._filePending=null}}delete(){return this.listing.delete()}duplicate(){return this.listing.duplicate()}download(){return this.listing.download()}async goUp(){return this.listing.goUp()}shutdownKernels(){return this.listing.shutdownKernels()}selectNext(){this.listing.selectNext()}selectPrevious(){this.listing.selectPrevious()}modelForClick(e){return this.listing.modelForClick(e)}createDirListing(e){return new ce(e)}_onConnectionFailure(e,t){if(t instanceof o.ServerConnection.ResponseError&&t.response.status===404){const e=this._trans.__("Directory not found");t.message=this._trans.__('Directory not found: "%1"',this.model.path);void(0,i.showErrorMessage)(e,t)}}_toDrivePath(e,t){if(e===""){return t}else{return`${e}:${s.PathExt.removeSlash(t)}`}}}var ye=n(26568);const we=1e4;const Ce=15*1024*1024;const xe=1024*1024;class Se{constructor(e){var t;this._connectionFailure=new E.Signal(this);this._fileChanged=new E.Signal(this);this._items=[];this._key="";this._pathChanged=new E.Signal(this);this._paths=new Set;this._pending=null;this._pendingPath=null;this._refreshed=new E.Signal(this);this._sessions=[];this._state=null;this._isDisposed=false;this._restored=new p.PromiseDelegate;this._uploads=[];this._uploadChanged=new E.Signal(this);this.manager=e.manager;this.translator=e.translator||r.nullTranslator;this._trans=this.translator.load("jupyterlab");this._driveName=e.driveName||"";this._model={path:this.rootPath,name:s.PathExt.basename(this.rootPath),type:"directory",content:undefined,writable:false,created:"unknown",last_modified:"unknown",mimetype:"text/plain",format:"text"};this._state=e.state||null;const n=e.refreshInterval||we;const{services:i}=e.manager;i.contents.fileChanged.connect(this.onFileChanged,this);i.sessions.runningChanged.connect(this.onRunningChanged,this);this._unloadEventListener=e=>{if(this._uploads.length>0){const t=this._trans.__("Files still uploading");e.returnValue=t;return t}};window.addEventListener("beforeunload",this._unloadEventListener);this._poll=new ye.Poll({auto:(t=e.auto)!==null&&t!==void 0?t:true,name:"@jupyterlab/filebrowser:Model",factory:()=>this.cd("."),frequency:{interval:n,backoff:true,max:300*1e3},standby:e.refreshStandby||"when-hidden"})}get connectionFailure(){return this._connectionFailure}get driveName(){return this._driveName}get restored(){return this._restored.promise}get fileChanged(){return this._fileChanged}get path(){return this._model?this._model.path:""}get rootPath(){return this._driveName?this._driveName+":":""}get pathChanged(){return this._pathChanged}get refreshed(){return this._refreshed}get specs(){return this.manager.services.kernelspecs.specs}get isDisposed(){return this._isDisposed}get uploadChanged(){return this._uploadChanged}uploads(){return this._uploads[Symbol.iterator]()}dispose(){if(this.isDisposed){return}window.removeEventListener("beforeunload",this._unloadEventListener);this._isDisposed=true;this._poll.dispose();this._sessions.length=0;this._items.length=0;E.Signal.clearData(this)}items(){return this._items[Symbol.iterator]()}sessions(){return this._sessions[Symbol.iterator]()}async refresh(){await this._poll.refresh();await this._poll.tick;this._refreshed.emit(void 0)}async cd(e="."){if(e!=="."){e=this.manager.services.contents.resolvePath(this._model.path,e)}else{e=this._pendingPath||this._model.path}if(this._pending){if(e===this._pendingPath){return this._pending}await this._pending}const t=this.path;const n={content:true};this._pendingPath=e;if(t!==e){this._sessions.length=0}const i=this.manager.services;this._pending=i.contents.get(e,n).then((n=>{if(this.isDisposed){return}this.handleContents(n);this._pendingPath=null;this._pending=null;if(t!==e){if(this._state&&this._key){void this._state.save(this._key,{path:e})}this._pathChanged.emit({name:"path",oldValue:t,newValue:e})}this.onRunningChanged(i.sessions,i.sessions.running());this._refreshed.emit(void 0)})).catch((t=>{this._pendingPath=null;this._pending=null;if(t.response&&t.response.status===404&&e!=="/"){t.message=this._trans.__('Directory not found: "%1"',this._model.path);console.error(t);this._connectionFailure.emit(t);return this.cd("/")}else{this._connectionFailure.emit(t)}}));return this._pending}async download(e){const t=await this.manager.services.contents.getDownloadUrl(e);const n=document.createElement("a");n.href=t;n.download="";document.body.appendChild(n);n.click();document.body.removeChild(n);return void 0}async restore(e,t=true){const{manager:n}=this;const i=`file-browser-${e}:cwd`;const s=this._state;const o=!!this._key;if(o){return}this._key=i;if(!t||!s){this._restored.resolve(undefined);return}await n.services.ready;try{const e=await s.fetch(i);if(!e){this._restored.resolve(undefined);return}const t=e["path"];if(t){await this.cd("/")}const o=n.services.contents.localPath(t);await n.services.contents.get(t);await this.cd(o)}catch(r){await s.remove(i)}this._restored.resolve(undefined)}async upload(e,t){const n=s.PageConfig.getNotebookVersion();const i=n<[4,0,0]||n>=[5,1,0];const o=e.size>Ce;if(o&&!i){const t=this._trans.__("Cannot upload file (>%1 MB). %2",Ce/(1024*1024),e.name);console.warn(t);throw t}const r="File not uploaded";if(o&&!(await this._shouldUploadLarge(e))){throw"Cancelled large file upload"}await this._uploadCheckDisposed();await this.refresh();await this._uploadCheckDisposed();if(this._items.find((t=>t.name===e.name))&&!(await(0,h.shouldOverwrite)(e.name))){throw r}await this._uploadCheckDisposed();const a=i&&e.size>xe;return await this._upload(e,a,t)}async _shouldUploadLarge(e){const{button:t}=await(0,i.showDialog)({title:this._trans.__("Large file size warning"),body:this._trans.__("The file size is %1 MB. Do you still want to upload it?",Math.round(e.size/(1024*1024))),buttons:[i.Dialog.cancelButton({label:this._trans.__("Cancel")}),i.Dialog.warnButton({label:this._trans.__("Upload")})]});return t.accept}async _upload(e,t,n){let i=typeof n==="undefined"?this._model.path:n;i=i?i+"/"+e.name:e.name;const s=e.name;const o="file";const r="base64";const a=async(t,n)=>{await this._uploadCheckDisposed();const a=new FileReader;a.readAsDataURL(t);await new Promise(((t,n)=>{a.onload=t;a.onerror=t=>n(`Failed to upload "${e.name}":`+t)}));await this._uploadCheckDisposed();const l=a.result.split(",")[1];const d={type:o,format:r,name:s,chunk:n,content:l};return await this.manager.services.contents.save(i,d)};if(!t){try{return await a(e)}catch(c){u.ArrayExt.removeFirstWhere(this._uploads,(t=>e.name===t.path));throw c}}let l;let d={path:i,progress:0};this._uploadChanged.emit({name:"start",newValue:d,oldValue:null});for(let h=0;!l;h+=xe){const t=h+xe;const n=t>=e.size;const s=n?-1:t/xe;const o={path:i,progress:h/e.size};this._uploads.splice(this._uploads.indexOf(d));this._uploads.push(o);this._uploadChanged.emit({name:"update",newValue:o,oldValue:d});d=o;let r;try{r=await a(e.slice(h,t),s)}catch(c){u.ArrayExt.removeFirstWhere(this._uploads,(t=>e.name===t.path));this._uploadChanged.emit({name:"failure",newValue:d,oldValue:null});throw c}if(n){l=r}}this._uploads.splice(this._uploads.indexOf(d));this._uploadChanged.emit({name:"finish",newValue:null,oldValue:d});return l}_uploadCheckDisposed(){if(this.isDisposed){return Promise.reject("Filemanager disposed. File upload canceled")}return Promise.resolve()}handleContents(e){this._model={name:e.name,path:e.path,type:e.type,content:undefined,writable:e.writable,created:e.created,last_modified:e.last_modified,size:e.size,mimetype:e.mimetype,format:e.format};this._items=e.content;this._paths.clear();e.content.forEach((e=>{this._paths.add(e.path)}))}onRunningChanged(e,t){this._populateSessions(t);this._refreshed.emit(void 0)}onFileChanged(e,t){const n=this._model.path;const{sessions:i}=this.manager.services;const{oldValue:o,newValue:r}=t;const a=this.driveName.length>0?this.driveName+":":"";const l=o&&o.path&&a+s.PathExt.dirname(o.path)===n?o:r&&r.path&&a+s.PathExt.dirname(r.path)===n?r:undefined;if(l){void this._poll.refresh();this._populateSessions(i.running());this._fileChanged.emit(t);return}}_populateSessions(e){this._sessions.length=0;for(const t of e){if(this._paths.has(t.path)){this._sessions.push(t)}}}}class ke extends Se{constructor(e){super(e);this._includeHiddenFiles=e.includeHiddenFiles||false}items(){return this._includeHiddenFiles?super.items():(0,u.filter)(super.items(),(e=>!e.name.startsWith(".")))}showHiddenFiles(e){this._includeHiddenFiles=e;void this.refresh()}}class je extends ke{constructor(e){var t,n,i;super(e);this._filterSettingsChanged=new E.Signal(this);this._filter=(t=e.filter)!==null&&t!==void 0?t:e=>({});this._filterDirectories=(n=e.filterDirectories)!==null&&n!==void 0?n:true;this._useFuzzyFilter=(i=e.useFuzzyFilter)!==null&&i!==void 0?i:true}get filterDirectories(){return this._filterDirectories}set filterDirectories(e){this._filterDirectories=e}get useFuzzyFilter(){return this._useFuzzyFilter}set useFuzzyFilter(e){if(this._useFuzzyFilter===e){return}this._useFuzzyFilter=e;this._filterSettingsChanged.emit({useFuzzyFilter:e})}get filterSettingsChanged(){return this._filterSettingsChanged}items(){return(0,u.filter)(super.items(),(e=>{if(!this._filterDirectories&&e.type==="directory"){return true}else{const t=this._filter(e);e.indices=t===null||t===void 0?void 0:t.indices;return!!t}}))}setFilter(e){this._filter=e;void this.refresh()}}const Ie="jp-Open-Dialog";const Ee="jp-Open-Dialog-label";var Te;(function(e){async function t(e){const t=e.translator||r.nullTranslator;const n=t.load("jupyterlab");const s=new Me(e.manager,e.filter,t,e.defaultPath,e.label);const o={title:e.title,buttons:[i.Dialog.cancelButton(),i.Dialog.okButton({label:n.__("Select")})],focusNodeSelector:e.focusNodeSelector,host:e.host,renderer:e.renderer,body:s};await s.ready;const a=new i.Dialog(o);return a.launch()}e.getOpenFiles=t;function n(e){return t({...e,filter:e=>e.type==="directory"?{}:null})}e.getExistingDirectory=n})(Te||(Te={}));class Me extends l.Widget{constructor(e,t,n,s,o,d){super();this._ready=new p.PromiseDelegate;n=n!==null&&n!==void 0?n:r.nullTranslator;const c=n.load("jupyterlab");this.addClass(Ie);De.createFilteredFileBrowser("filtered-file-browser-dialog",e,t,{},n,s,d).then((e=>{this._browser=e;(0,i.setToolbar)(this._browser,(e=>[{name:"new-folder",widget:new i.ToolbarButton({icon:a.newFolderIcon,onClick:()=>{void e.createNewDirectory()},tooltip:c.__("New Folder")})},{name:"refresher",widget:new i.ToolbarButton({icon:a.refreshIcon,onClick:()=>{e.model.refresh().catch((e=>{console.error("Failed to refresh file browser in open dialog.",e)}))},tooltip:c.__("Refresh File List")})}]));const t=new l.PanelLayout;if(o){const e=new l.Widget;e.addClass(Ee);e.node.textContent=o;t.addWidget(e)}t.addWidget(this._browser);this.dispose=()=>{if(this.isDisposed){return}this._browser.model.dispose();super.dispose()};this.layout=t;this._ready.resolve()})).catch((e=>{console.error("Error while creating file browser in open dialog",e);this._ready.reject(void 0)}))}getValue(){const e=Array.from(this._browser.selectedItems());if(e.length===0){return[{path:this._browser.model.path,name:s.PathExt.basename(this._browser.model.path),type:"directory",content:undefined,writable:false,created:"unknown",last_modified:"unknown",mimetype:"text/plain",format:"text"}]}else{return e}}get ready(){return this._ready.promise}}var De;(function(e){e.createFilteredFileBrowser=async(e,t,n,i={},s,o,a)=>{s=s||r.nullTranslator;const l=new je({manager:t,filter:n,translator:s,driveName:i.driveName,refreshInterval:i.refreshInterval,filterDirectories:a});const d=new be({id:e,model:l,translator:s});if(o){await d.model.cd(o)}return d}})(De||(De={}));const Ae=new p.Token("@jupyterlab/filebrowser:IFileBrowserFactory",`A factory object that creates file browsers.\n Use this if you want to create your own file browser (e.g., for a custom storage backend),\n or to interact with other file browsers that have been created by extensions.`);const Pe=new p.Token("@jupyterlab/filebrowser:IDefaultFileBrowser","A service for the default file browser.");const Le=new p.Token("@jupyterlab/filebrowser:IFileBrowserCommands","A token to ensure file browser commands are loaded.");class Re extends a.ToolbarButton{constructor(e){super({icon:a.fileUploadIcon,label:e.label,onClick:()=>{this._input.click()},tooltip:Ne.translateToolTip(e.translator)});this._onInputChanged=()=>{const e=Array.prototype.slice.call(this._input.files);const t=e.map((e=>this.fileBrowserModel.upload(e)));void Promise.all(t).catch((e=>{void(0,i.showErrorMessage)(this._trans._p("showErrorMessage","Upload Error"),e)}))};this._onInputClicked=()=>{this._input.value=""};this._input=Ne.createUploadInput();this.fileBrowserModel=e.model;this.translator=e.translator||r.nullTranslator;this._trans=this.translator.load("jupyterlab");this._input.onclick=this._onInputClicked;this._input.onchange=this._onInputChanged;this.addClass("jp-id-upload")}}var Ne;(function(e){function t(){const e=document.createElement("input");e.type="file";e.multiple=true;return e}e.createUploadInput=t;function n(e){e=e||r.nullTranslator;const t=e.load("jupyterlab");return t.__("Upload Files")}e.translateToolTip=n})(Ne||(Ne={}));var Oe=n(24735);const Be=4;function Fe(e){const t=e.translator||r.nullTranslator;const n=t.load("jupyterlab");return c().createElement(Oe.GroupItem,{spacing:Be},c().createElement(Oe.TextItem,{source:n.__("Uploading…")}),c().createElement(Oe.ProgressBar,{percentage:e.upload}))}const ze=2e3;class He extends a.VDomRenderer{constructor(e){super(new He.Model(e.tracker.currentWidget&&e.tracker.currentWidget.model));this._onBrowserChange=(e,t)=>{if(t===null){this.model.browserModel=null}else{this.model.browserModel=t.model}};this.translator=e.translator||r.nullTranslator;this._trans=this.translator.load("jupyterlab");this._tracker=e.tracker;this._tracker.currentChanged.connect(this._onBrowserChange)}render(){const e=this.model.items;if(e.length>0){const e=this.model.items[0];if(e.complete){return c().createElement(Oe.TextItem,{source:this._trans.__("Complete!")})}else{return c().createElement(Fe,{upload:this.model.items[0].progress,translator:this.translator})}}else{return c().createElement(Fe,{upload:100,translator:this.translator})}}dispose(){super.dispose();this._tracker.currentChanged.disconnect(this._onBrowserChange)}}(function(e){class t extends a.VDomModel{constructor(e){super();this._uploadChanged=(e,t)=>{if(t.name==="start"){this._items.push({path:t.newValue.path,progress:t.newValue.progress*100,complete:false})}else if(t.name==="update"){const e=u.ArrayExt.findFirstIndex(this._items,(e=>e.path===t.oldValue.path));if(e!==-1){this._items[e].progress=t.newValue.progress*100}}else if(t.name==="finish"){const e=u.ArrayExt.findFirstValue(this._items,(e=>e.path===t.oldValue.path));if(e){e.complete=true;setTimeout((()=>{u.ArrayExt.removeFirstOf(this._items,e);this.stateChanged.emit(void 0)}),ze)}}else if(t.name==="failure"){u.ArrayExt.removeFirstWhere(this._items,(e=>e.path===t.newValue.path))}this.stateChanged.emit(void 0)};this._items=[];this._browserModel=null;this.browserModel=e}get items(){return this._items}get browserModel(){return this._browserModel}set browserModel(e){const t=this._browserModel;if(t){t.uploadChanged.disconnect(this._uploadChanged)}this._browserModel=e;this._items=[];if(this._browserModel!==null){this._browserModel.uploadChanged.connect(this._uploadChanged)}this.stateChanged.emit(void 0)}}e.Model=t})(He||(He={}))},39063:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(38457);var a=n(79010);var l=n(41603);var d=n(85072);var c=n.n(d);var h=n(97825);var u=n.n(h);var p=n(77659);var m=n.n(p);var g=n(55056);var f=n.n(g);var v=n(10540);var _=n.n(v);var b=n(41113);var y=n.n(b);var w=n(96562);var C={};C.styleTagTransform=y();C.setAttributes=f();C.insert=m().bind(null,"head");C.domAPI=u();C.insertStyleElement=_();var x=c()(w.A,C);const S=w.A&&w.A.locals?w.A.locals:undefined},57256:(e,t,n)=>{"use strict";n.r(t);n.d(t,{Commands:()=>E,default:()=>B,tabSpaceStatus:()=>A});var i=n(94307);var s=n(14366);var o=n(54723);var r=n(66899);var a=n(29939);var l=n(9155);var d=n(22441);var c=n(42875);var h=n(4341);var u=n(74955);var p=n(7243);var m=n(23899);var g=n(84739);var f=n(24735);var v=n(62149);var _=n(30619);var b=n(26331);var y=n(34236);var w=n(58285);var C=n(43370);var x=n(30397);const S="notebook:toggle-autoclosing-brackets";const k="console:toggle-autoclosing-brackets";var j;(function(e){e.createNew="fileeditor:create-new";e.createNewMarkdown="fileeditor:create-new-markdown-file";e.changeFontSize="fileeditor:change-font-size";e.lineNumbers="fileeditor:toggle-line-numbers";e.currentLineNumbers="fileeditor:toggle-current-line-numbers";e.lineWrap="fileeditor:toggle-line-wrap";e.currentLineWrap="fileeditor:toggle-current-line-wrap";e.changeTabs="fileeditor:change-tabs";e.matchBrackets="fileeditor:toggle-match-brackets";e.currentMatchBrackets="fileeditor:toggle-current-match-brackets";e.autoClosingBrackets="fileeditor:toggle-autoclosing-brackets";e.autoClosingBracketsUniversal="fileeditor:toggle-autoclosing-brackets-universal";e.createConsole="fileeditor:create-console";e.replaceSelection="fileeditor:replace-selection";e.restartConsole="fileeditor:restart-console";e.runCode="fileeditor:run-code";e.runAllCode="fileeditor:run-all";e.markdownPreview="fileeditor:markdown-preview";e.undo="fileeditor:undo";e.redo="fileeditor:redo";e.cut="fileeditor:cut";e.copy="fileeditor:copy";e.paste="fileeditor:paste";e.selectAll="fileeditor:select-all";e.invokeCompleter="completer:invoke-file";e.selectCompleter="completer:select-file";e.openCodeViewer="code-viewer:open";e.changeTheme="fileeditor:change-theme";e.changeLanguage="fileeditor:change-language";e.find="fileeditor:find";e.goToLine="fileeditor:go-to-line"})(j||(j={}));const I="Editor";var E;(function(e){let t={};let n=true;function i(e,t){return async function n(i,s){var o,r,a;const l=s||{};const d=await e.execute("console:create",{activate:l["activate"],name:(o=i.context.contentsModel)===null||o===void 0?void 0:o.name,path:i.context.path,preferredLanguage:i.context.model.defaultKernelLanguage||((a=(r=t.findByFileName(i.context.path))===null||r===void 0?void 0:r.name)!==null&&a!==void 0?a:""),ref:i.id,insertMode:"split-bottom"});i.context.pathChanged.connect(((e,t)=>{var n;d.session.setPath(t);d.session.setName((n=i.context.contentsModel)===null||n===void 0?void 0:n.name)}))}}function r(e,i){var s;t=(s=e.get("editorConfig").composite)!==null&&s!==void 0?s:{};n=e.get("scrollPasteEnd").composite;i.notifyCommandChanged(j.lineNumbers);i.notifyCommandChanged(j.currentLineNumbers);i.notifyCommandChanged(j.lineWrap);i.notifyCommandChanged(j.currentLineWrap);i.notifyCommandChanged(j.changeTabs);i.notifyCommandChanged(j.matchBrackets);i.notifyCommandChanged(j.currentMatchBrackets);i.notifyCommandChanged(j.autoClosingBrackets);i.notifyCommandChanged(j.changeLanguage)}e.updateSettings=r;function a(e){e.forEach((e=>{l(e.content)}))}e.updateTracker=a;function l(e){const i=e.editor;i.setOptions({...t,scrollPastEnd:n})}e.updateWidget=l;function d(e,n,r,a,l,d,c,m,g,f,v,_){var y;e.addCommand(j.changeFontSize,{execute:e=>{var i;const s=Number(e["delta"]);if(Number.isNaN(s)){console.error(`${j.changeFontSize}: delta arg must be a number`);return}const o=window.getComputedStyle(document.documentElement);const r=parseInt(o.getPropertyValue("--jp-code-font-size"),10);if(!t.customStyles){t.customStyles={}}const l=((i=t["customStyles"]["fontSize"])!==null&&i!==void 0?i:m.baseConfiguration["customStyles"]["fontSize"])||r;t.customStyles.fontSize=l+s;return n.set(a,"editorConfig",t).catch((e=>{console.error(`Failed to set ${a}: ${e.message}`)}))},label:e=>{const t=Number(e["delta"]);if(Number.isNaN(t)){console.error(`${j.changeFontSize}: delta arg must be a number`)}if(t>0){return e.isMenu?r.__("Increase Text Editor Font Size"):r.__("Increase Font Size")}else{return e.isMenu?r.__("Decrease Text Editor Font Size"):r.__("Decrease Font Size")}}});e.addCommand(j.lineNumbers,{execute:async()=>{var e;t.lineNumbers=!((e=t.lineNumbers)!==null&&e!==void 0?e:m.baseConfiguration.lineNumbers);try{return await n.set(a,"editorConfig",t)}catch(i){console.error(`Failed to set ${a}: ${i.message}`)}},isEnabled:l,isToggled:()=>{var e;return(e=t.lineNumbers)!==null&&e!==void 0?e:m.baseConfiguration.lineNumbers},label:r.__("Show Line Numbers")});e.addCommand(j.currentLineNumbers,{label:r.__("Show Line Numbers"),caption:r.__("Show the line numbers for the current file."),execute:()=>{const e=d.currentWidget;if(!e){return}const t=!e.content.editor.getOption("lineNumbers");e.content.editor.setOption("lineNumbers",t)},isEnabled:l,isToggled:()=>{var e;const t=d.currentWidget;return(e=t===null||t===void 0?void 0:t.content.editor.getOption("lineNumbers"))!==null&&e!==void 0?e:false}});e.addCommand(j.lineWrap,{execute:async e=>{var i;t.lineWrap=(i=e["mode"])!==null&&i!==void 0?i:false;try{return await n.set(a,"editorConfig",t)}catch(s){console.error(`Failed to set ${a}: ${s.message}`)}},isEnabled:l,isToggled:e=>{var n,i;const s=(n=e["mode"])!==null&&n!==void 0?n:false;return s===((i=t.lineWrap)!==null&&i!==void 0?i:m.baseConfiguration.lineWrap)},label:r.__("Word Wrap")});e.addCommand(j.currentLineWrap,{label:r.__("Wrap Words"),caption:r.__("Wrap words for the current file."),execute:()=>{const e=d.currentWidget;if(!e){return}const t=e.content.editor.getOption("lineWrap");e.content.editor.setOption("lineWrap",!t)},isEnabled:l,isToggled:()=>{var e;const t=d.currentWidget;return(e=t===null||t===void 0?void 0:t.content.editor.getOption("lineWrap"))!==null&&e!==void 0?e:false}});e.addCommand(j.changeTabs,{label:e=>{var t;if(e.size){return r._p("v4","Spaces: %1",(t=e.size)!==null&&t!==void 0?t:"")}else{return r.__("Indent with Tab")}},execute:async e=>{var i;t.indentUnit=e["size"]!==undefined?((i=e["size"])!==null&&i!==void 0?i:"4").toString():"Tab";try{return await n.set(a,"editorConfig",t)}catch(s){console.error(`Failed to set ${a}: ${s.message}`)}},isToggled:e=>{var n;const i=(n=t.indentUnit)!==null&&n!==void 0?n:m.baseConfiguration.indentUnit;return e["size"]?e["size"]===i:"Tab"==i}});e.addCommand(j.matchBrackets,{execute:async()=>{var e;t.matchBrackets=!((e=t.matchBrackets)!==null&&e!==void 0?e:m.baseConfiguration.matchBrackets);try{return await n.set(a,"editorConfig",t)}catch(i){console.error(`Failed to set ${a}: ${i.message}`)}},label:r.__("Match Brackets"),isEnabled:l,isToggled:()=>{var e;return(e=t.matchBrackets)!==null&&e!==void 0?e:m.baseConfiguration.matchBrackets}});e.addCommand(j.currentMatchBrackets,{label:r.__("Match Brackets"),caption:r.__("Change match brackets for the current file."),execute:()=>{const e=d.currentWidget;if(!e){return}const t=!e.content.editor.getOption("matchBrackets");e.content.editor.setOption("matchBrackets",t)},isEnabled:l,isToggled:()=>{var e;const t=d.currentWidget;return(e=t===null||t===void 0?void 0:t.content.editor.getOption("matchBrackets"))!==null&&e!==void 0?e:false}});e.addCommand(j.autoClosingBrackets,{execute:async e=>{var i,s;t.autoClosingBrackets=!!((i=e["force"])!==null&&i!==void 0?i:!((s=t.autoClosingBrackets)!==null&&s!==void 0?s:m.baseConfiguration.autoClosingBrackets));try{return await n.set(a,"editorConfig",t)}catch(o){console.error(`Failed to set ${a}: ${o.message}`)}},label:r.__("Auto Close Brackets in Text Editor"),isToggled:()=>{var e;return(e=t.autoClosingBrackets)!==null&&e!==void 0?e:m.baseConfiguration.autoClosingBrackets}});e.addCommand(j.autoClosingBracketsUniversal,{execute:()=>{const t=e.isToggled(j.autoClosingBrackets)||e.isToggled(S)||e.isToggled(k);if(t){void e.execute(j.autoClosingBrackets,{force:false});void e.execute(S,{force:false});void e.execute(k,{force:false})}else{void e.execute(j.autoClosingBrackets,{force:true});void e.execute(S,{force:true});void e.execute(k,{force:true})}},label:r.__("Auto Close Brackets"),isToggled:()=>e.isToggled(j.autoClosingBrackets)||e.isToggled(S)||e.isToggled(k)});e.addCommand(j.changeTheme,{label:e=>{var n,i,s,o;return(o=(s=(i=(n=e.displayName)!==null&&n!==void 0?n:e.theme)!==null&&i!==void 0?i:t.theme)!==null&&s!==void 0?s:m.baseConfiguration.theme)!==null&&o!==void 0?o:r.__("Editor Theme")},execute:async e=>{var i;t.theme=(i=e["theme"])!==null&&i!==void 0?i:t.theme;try{return await n.set(a,"editorConfig",t)}catch(s){console.error(`Failed to set theme - ${s.message}`)}},isToggled:e=>{var n;return e["theme"]===((n=t.theme)!==null&&n!==void 0?n:m.baseConfiguration.theme)}});e.addCommand(j.find,{label:r.__("Find…"),execute:()=>{const e=d.currentWidget;if(!e){return}const t=e.content.editor;t.execCommand(C.findNext)},isEnabled:l});e.addCommand(j.goToLine,{label:r.__("Go to Line…"),execute:e=>{const t=d.currentWidget;if(!t){return}const n=t.content.editor;const i=e["line"];const s=e["column"];if(i!==undefined||s!==undefined){n.setCursorPosition({line:(i!==null&&i!==void 0?i:1)-1,column:(s!==null&&s!==void 0?s:1)-1})}else{n.execCommand(C.gotoLine)}},isEnabled:l});e.addCommand(j.changeLanguage,{label:e=>{var t,n;return(n=(t=e["displayName"])!==null&&t!==void 0?t:e["name"])!==null&&n!==void 0?n:r.__("Change editor language.")},execute:e=>{var t;const n=e["name"];const i=d.currentWidget;if(n&&i){const e=g.findByName(n);if(e){if(Array.isArray(e.mime)){i.content.model.mimeType=(t=e.mime[0])!==null&&t!==void 0?t:o.IEditorMimeTypeService.defaultMimeType}else{i.content.model.mimeType=e.mime}}}},isEnabled:l,isToggled:e=>{const t=d.currentWidget;if(!t){return false}const n=t.content.model.mimeType;const i=g.findByMIME(n);const s=i&&i.name;return e["name"]===s}});e.addCommand(j.replaceSelection,{execute:e=>{var t,n;const i=e["text"]||"";const s=d.currentWidget;if(!s){return}(n=(t=s.content.editor).replaceSelection)===null||n===void 0?void 0:n.call(t,i)},isEnabled:l,label:r.__("Replace Selection in Editor")});e.addCommand(j.createConsole,{execute:t=>{const n=d.currentWidget;if(!n){return}return i(e,g)(n,t)},isEnabled:l,icon:b.consoleIcon,label:r.__("Create Console for Editor")});e.addCommand(j.restartConsole,{execute:async()=>{var e;const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t||f===null){return}const n=f.find((e=>{var n;return((n=e.sessionContext.session)===null||n===void 0?void 0:n.path)===t.context.path}));if(n){return v.restart(n.sessionContext)}},label:r.__("Restart Kernel"),isEnabled:()=>f!==null&&l()});e.addCommand(j.runCode,{execute:()=>{var t;const n=(t=d.currentWidget)===null||t===void 0?void 0:t.content;if(!n){return}let i="";const s=n.editor;const o=n.context.path;const r=x.PathExt.extname(o);const a=s.getSelection();const{start:l,end:c}=a;let h=l.column!==c.column||l.line!==c.line;if(h){const e=s.getOffsetAt(a.start);const t=s.getOffsetAt(a.end);i=s.model.sharedModel.getSource().substring(e,t)}else if(x.MarkdownCodeBlocks.isMarkdown(r)){const e=s.model.sharedModel.getSource();const t=x.MarkdownCodeBlocks.findMarkdownCodeBlocks(e);for(const n of t){if(n.startLine<=l.line&&l.line<=n.endLine){i=n.code;h=true;break}}}if(!h){i=s.getLine(a.start.line);const e=s.getCursorPosition();if(e.line+1===s.lineCount){const e=s.model.sharedModel.getSource();s.model.sharedModel.setSource(e+"\n")}s.setCursorPosition({line:e.line+1,column:e.column})}const u=false;if(i){return e.execute("console:inject",{activate:u,code:i,path:o})}else{return Promise.resolve(void 0)}},isEnabled:l,label:r.__("Run Selected Code")});e.addCommand(j.runAllCode,{execute:()=>{var t;const n=(t=d.currentWidget)===null||t===void 0?void 0:t.content;if(!n){return}let i="";const s=n.editor;const o=s.model.sharedModel.getSource();const r=n.context.path;const a=x.PathExt.extname(r);if(x.MarkdownCodeBlocks.isMarkdown(a)){const e=x.MarkdownCodeBlocks.findMarkdownCodeBlocks(o);for(const t of e){i+=t.code}}else{i=o}const l=false;if(i){return e.execute("console:inject",{activate:l,code:i,path:r})}else{return Promise.resolve(void 0)}},isEnabled:l,label:r.__("Run All Code")});e.addCommand(j.markdownPreview,{execute:()=>{const t=d.currentWidget;if(!t){return}const n=t.context.path;return e.execute("markdownviewer:open",{path:n,options:{mode:"split-right"}})},isVisible:()=>{const e=d.currentWidget;return e&&x.PathExt.extname(e.context.path)===".md"||false},icon:b.markdownIcon,label:r.__("Show Markdown Preview")});e.addCommand(j.createNew,{label:e=>{var t,n;if(e.isPalette){return(t=e.paletteLabel)!==null&&t!==void 0?t:r.__("New Text File")}return(n=e.launcherLabel)!==null&&n!==void 0?n:r.__("Text File")},caption:e=>{var t;return(t=e.caption)!==null&&t!==void 0?t:r.__("Create a new text file")},icon:e=>{var t;return e.isPalette?undefined:b.LabIcon.resolve({icon:(t=e.iconName)!==null&&t!==void 0?t:b.textEditorIcon})},execute:t=>{var n;const i=t.cwd||c.model.path;return p(e,i,(n=t.fileExt)!==null&&n!==void 0?n:"txt")}});e.addCommand(j.createNewMarkdown,{label:e=>e["isPalette"]?r.__("New Markdown File"):r.__("Markdown File"),caption:r.__("Create a new markdown file"),icon:e=>e["isPalette"]?undefined:b.markdownIcon,execute:t=>{const n=t["cwd"]||c.model.path;return p(e,n,"md")}});e.addCommand(j.undo,{execute:()=>{var e;const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t){return}t.editor.undo()},isEnabled:()=>{var e;if(!l()){return false}const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t){return false}return t.editor.model.sharedModel.canUndo()},icon:b.undoIcon.bindprops({stylesheet:"menuItem"}),label:r.__("Undo")});e.addCommand(j.redo,{execute:()=>{var e;const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t){return}t.editor.redo()},isEnabled:()=>{var e;if(!l()){return false}const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t){return false}return t.editor.model.sharedModel.canRedo()},icon:b.redoIcon.bindprops({stylesheet:"menuItem"}),label:r.__("Redo")});e.addCommand(j.cut,{execute:()=>{var e;const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t){return}const n=t.editor;const i=u(n);s.Clipboard.copyToSystem(i);n.replaceSelection&&n.replaceSelection("")},isEnabled:()=>{var e;if(!l()){return false}const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t){return false}return h(t.editor)},icon:b.cutIcon.bindprops({stylesheet:"menuItem"}),label:r.__("Cut")});e.addCommand(j.copy,{execute:()=>{var e;const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t){return}const n=t.editor;const i=u(n);s.Clipboard.copyToSystem(i)},isEnabled:()=>{var e;if(!l()){return false}const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t){return false}return h(t.editor)},icon:b.copyIcon.bindprops({stylesheet:"menuItem"}),label:r.__("Copy")});e.addCommand(j.paste,{execute:async()=>{var e;const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t){return}const n=t.editor;const i=window.navigator.clipboard;const s=await i.readText();if(s){n.replaceSelection&&n.replaceSelection(s)}},isEnabled:()=>{var e;return Boolean(l()&&((e=d.currentWidget)===null||e===void 0?void 0:e.content))},icon:b.pasteIcon.bindprops({stylesheet:"menuItem"}),label:r.__("Paste")});e.addCommand(j.selectAll,{execute:()=>{var e;const t=(e=d.currentWidget)===null||e===void 0?void 0:e.content;if(!t){return}const n=t.editor;n.execCommand(w.selectAll)},isEnabled:()=>{var e;return Boolean(l()&&((e=d.currentWidget)===null||e===void 0?void 0:e.content))},label:r.__("Select All")});const I=[j.lineNumbers,j.currentLineNumbers,j.lineWrap,j.currentLineWrap,j.matchBrackets,j.currentMatchBrackets,j.find,j.goToLine,j.changeLanguage,j.replaceSelection,j.createConsole,j.restartConsole,j.runCode,j.runAllCode,j.undo,j.redo,j.cut,j.copy,j.paste,j.selectAll,j.createConsole];const E=()=>{I.forEach((t=>e.notifyCommandChanged(t)))};d.currentChanged.connect(E);(y=_.currentChanged)===null||y===void 0?void 0:y.connect(E)}e.addCommands=d;function c(e,t,n,i){const s=(i!==null&&i!==void 0?i:_.nullTranslator).load("jupyterlab");e.addCommand(j.invokeCompleter,{label:s.__("Display the completion helper."),execute:()=>{const e=t.currentWidget&&t.currentWidget.id;if(e){return n.invoke(e)}}});e.addCommand(j.selectCompleter,{label:s.__("Select the completion suggestion."),execute:()=>{const e=t.currentWidget&&t.currentWidget.id;if(e){return n.select(e)}}});e.addKeyBinding({command:j.selectCompleter,keys:["Enter"],selector:".jp-FileEditor .jp-mod-completer-active"})}e.addCompleterCommands=c;function h(e){const t=e.getSelection();const{start:n,end:i}=t;const s=n.column!==i.column||n.line!==i.line;return s}function u(e){const t=e.getSelection();const n=e.getOffsetAt(t.start);const i=e.getOffsetAt(t.end);const s=e.model.sharedModel.getSource().substring(n,i);return s}async function p(e,t,n="txt"){const i=await e.execute("docmanager:new-untitled",{path:t,type:"file",ext:n});if(i!=undefined){const t=await e.execute("docmanager:open",{path:i.path,factory:I});t.isUntitled=true;return t}}function m(e,t){g(e,t);f(e,t)}e.addLauncherItems=m;function g(e,t){e.add({command:j.createNew,category:t.__("Other"),rank:1})}e.addCreateNewToLauncher=g;function f(e,t){e.add({command:j.createNewMarkdown,category:t.__("Other"),rank:2})}e.addCreateNewMarkdownToLauncher=f;function v(e,t,n){for(let i of n){e.add({command:j.createNew,category:t.__("Other"),rank:3,args:i})}}e.addKernelLanguageLauncherItems=v;function E(e,t){T(e,t);M(e,t);D(e,t);A(e,t)}e.addPaletteItems=E;function T(e,t){const n=t.__("Text Editor");const i={size:4};const s=j.changeTabs;e.addItem({command:s,args:i,category:n});for(const o of[1,2,4,8]){const t={size:o};e.addItem({command:s,args:t,category:n})}}e.addChangeTabsCommandsToPalette=T;function M(e,t){const n=t.__("Text Editor");e.addItem({command:j.createNew,args:{isPalette:true},category:n})}e.addCreateNewCommandToPalette=M;function D(e,t){const n=t.__("Text Editor");e.addItem({command:j.createNewMarkdown,args:{isPalette:true},category:n})}e.addCreateNewMarkdownCommandToPalette=D;function A(e,t){const n=t.__("Text Editor");const i=j.changeFontSize;let s={delta:1};e.addItem({command:i,args:s,category:n});s={delta:-1};e.addItem({command:i,args:s,category:n})}e.addChangeFontSizeCommandsToPalette=A;function P(e,t,n){const i=t.__("Text Editor");for(let s of n){e.addItem({command:j.createNew,args:{...s,isPalette:true},category:i})}}e.addKernelLanguagePaletteItems=P;function L(e,t,n,i){e.editMenu.undoers.redo.add({id:j.redo,isEnabled:i});e.editMenu.undoers.undo.add({id:j.undo,isEnabled:i});e.viewMenu.editorViewers.toggleLineNumbers.add({id:j.currentLineNumbers,isEnabled:i});e.viewMenu.editorViewers.toggleMatchBrackets.add({id:j.currentMatchBrackets,isEnabled:i});e.viewMenu.editorViewers.toggleWordWrap.add({id:j.currentLineWrap,isEnabled:i});e.fileMenu.consoleCreators.add({id:j.createConsole,isEnabled:i});if(n){N(e,n,i)}}e.addMenuItems=L;function R(e,t){for(let n of t){e.fileMenu.newMenu.addItem({command:j.createNew,args:n,rank:31})}}e.addKernelLanguageMenuItems=R;function N(e,t,n){const i=e=>n()&&e.context&&!!t.find((t=>{var n;return((n=t.sessionContext.session)===null||n===void 0?void 0:n.path)===e.context.path}));e.runMenu.codeRunners.restart.add({id:j.restartConsole,isEnabled:i});e.runMenu.codeRunners.run.add({id:j.runCode,isEnabled:i});e.runMenu.codeRunners.runAll.add({id:j.runAllCode,isEnabled:i})}e.addCodeRunnersToRunMenu=N;function O(e,t,n,i){const r=async r=>{var a;const l=t.factoryService.newDocumentEditor;const d=e=>l(e);let c=r.mimeType;if(!c&&r.extension){c=t.mimeTypeService.getMimeTypeByFilePath(`temp.${r.extension.replace(/\\.$/,"")}`)}const h=o.CodeViewerWidget.createCodeViewer({factory:d,content:r.content,mimeType:c});h.title.label=r.label||i.__("Code Viewer");h.title.caption=h.title.label;const u=(0,y.find)(e.docRegistry.fileTypes(),(e=>c?e.mimeTypes.includes(c):false));h.title.icon=(a=u===null||u===void 0?void 0:u.icon)!==null&&a!==void 0?a:b.textEditorIcon;if(r.widgetId){h.id=r.widgetId}const p=new s.MainAreaWidget({content:h});await n.add(p);e.shell.add(p,"main");return h};e.commands.addCommand(j.openCodeViewer,{label:i.__("Open Code Viewer"),execute:e=>r(e)})}e.addOpenCodeViewerCommand=O})(E||(E={}));const T={id:"@jupyterlab/fileeditor-extension:editor-syntax-status",description:"Adds a file editor syntax status widget.",autoStart:true,requires:[h.IEditorTracker,r.IEditorLanguageRegistry,i.ILabShell,_.ITranslator],optional:[f.IStatusBar],activate:(e,t,n,i,s,o)=>{if(!o){return}const r=new h.EditorSyntaxStatus({commands:e.commands,languages:n,translator:s});i.currentChanged.connect((()=>{const e=i.currentWidget;if(e&&t.has(e)&&r.model){r.model.editor=e.content.editor}}));o.registerStatusItem(T.id,{item:r,align:"left",rank:0,isActive:()=>!!i.currentWidget&&!!t.currentWidget&&i.currentWidget===t.currentWidget})}};const M={activate:F,id:"@jupyterlab/fileeditor-extension:plugin",description:"Provides the file editor widget tracker.",requires:[h.IEditorWidgetFactory,o.IEditorServices,r.IEditorExtensionRegistry,r.IEditorLanguageRegistry,r.IEditorThemeRegistry,c.IDefaultFileBrowser,g.ISettingRegistry],optional:[l.IConsoleTracker,s.ICommandPalette,u.ILauncher,m.IMainMenu,i.ILayoutRestorer,s.ISessionContextDialogs,v.ITableOfContentsRegistry,_.ITranslator,b.IFormRendererRegistry],provides:h.IEditorTracker,autoStart:true};const D={id:"@jupyterlab/fileeditor-extension:widget-factory",description:"Provides the factory for creating file editors.",autoStart:true,requires:[o.IEditorServices,g.ISettingRegistry],optional:[s.IToolbarWidgetRegistry,_.ITranslator],provides:h.IEditorWidgetFactory,activate:(e,t,n,i,o)=>{const r=M.id;const a=o!==null&&o!==void 0?o:_.nullTranslator;const l=a.load("jupyterlab");let d;if(i){d=(0,s.createToolbarFactory)(i,n,I,r,a)}const c=new h.FileEditorFactory({editorServices:t,factoryOptions:{name:I,label:l.__("Editor"),fileTypes:["markdown","*"],defaultFor:["markdown","*"],toolbarFactory:d,translator:a}});e.docRegistry.addWidgetFactory(c);return c}};const A={id:"@jupyterlab/fileeditor-extension:tab-space-status",description:"Adds a file editor indentation status widget.",autoStart:true,requires:[h.IEditorTracker,r.IEditorExtensionRegistry,g.ISettingRegistry,_.ITranslator],optional:[f.IStatusBar],activate:(e,t,n,i,s,o)=>{const r=s.load("jupyterlab");if(!o){return}const a=new b.MenuSvg({commands:e.commands});const l="fileeditor:change-tabs";const{shell:d}=e;const c={name:r.__("Indent with Tab")};a.addItem({command:l,args:c});for(const h of["1","2","4","8"]){const e={size:h,name:r._p("v4","Spaces: %1",h)};a.addItem({command:l,args:e})}const u=new h.TabSpaceStatus({menu:a,translator:s});const p=e=>{var t,i,s;u.model.indentUnit=(s=(i=(t=e.get("editorConfig").composite)===null||t===void 0?void 0:t.indentUnit)!==null&&i!==void 0?i:n.baseConfiguration.indentUnit)!==null&&s!==void 0?s:null};void Promise.all([i.load("@jupyterlab/fileeditor-extension:plugin"),e.restored]).then((([e])=>{p(e);e.changed.connect(p)}));o.registerStatusItem("@jupyterlab/fileeditor-extension:tab-space-status",{item:u,align:"right",rank:1,isActive:()=>!!d.currentWidget&&t.has(d.currentWidget)})}};const P={id:"@jupyterlab/fileeditor-extension:cursor-position",description:"Adds a file editor cursor position status widget.",activate:(e,t,n)=>{n.addEditorProvider((e=>Promise.resolve(e&&t.has(e)?e.content.editor:null)))},requires:[h.IEditorTracker,o.IPositionModel],autoStart:true};const L={id:"@jupyterlab/fileeditor-extension:completer",description:"Adds the completer capability to the file editor.",requires:[h.IEditorTracker],optional:[a.ICompletionProviderManager,_.ITranslator,s.ISanitizer],activate:z,autoStart:true};const R={id:"@jupyterlab/fileeditor-extension:search",description:"Adds search capability to the file editor.",requires:[d.ISearchProviderRegistry],autoStart:true,activate:(e,t)=>{t.add("jp-fileeditorSearchProvider",h.FileEditorSearchProvider)}};const N={id:"@jupyterlab/fileeditor-extension:language-server",description:"Adds Language Server capability to the file editor.",requires:[h.IEditorTracker,p.ILSPDocumentConnectionManager,p.ILSPFeatureManager,p.ILSPCodeExtractorsManager,p.IWidgetLSPAdapterTracker],activate:H,autoStart:true};const O=[D,M,P,L,N,R,T,A];const B=O;function F(e,t,n,i,o,r,a,l,d,c,u,p,m,g,f,v,b){const y=M.id;const w=v!==null&&v!==void 0?v:_.nullTranslator;const C=g!==null&&g!==void 0?g:new s.SessionContextDialogs({translator:w});const x=w.load("jupyterlab");const S="editor";const{commands:k,restored:T,shell:D}=e;const A=new s.WidgetTracker({namespace:S});const P=()=>A.currentWidget!==null&&A.currentWidget===D.currentWidget;const L=new Map([["python",[{fileExt:"py",iconName:"ui-components:python",launcherLabel:x.__("Python File"),paletteLabel:x.__("New Python File"),caption:x.__("Create a new Python file")}]],["julia",[{fileExt:"jl",iconName:"ui-components:julia",launcherLabel:x.__("Julia File"),paletteLabel:x.__("New Julia File"),caption:x.__("Create a new Julia file")}]],["R",[{fileExt:"r",iconName:"ui-components:r-kernel",launcherLabel:x.__("R File"),paletteLabel:x.__("New R File"),caption:x.__("Create a new R file")}]]]);const R=async()=>{var t,n;const i=e.serviceManager.kernelspecs;await i.ready;let s=new Set;const o=(n=(t=i.specs)===null||t===void 0?void 0:t.kernelspecs)!==null&&n!==void 0?n:{};Object.keys(o).forEach((e=>{const t=o[e];if(t){const e=L.get(t.language);e===null||e===void 0?void 0:e.forEach((e=>s.add(e)))}}));return s};if(m){void m.restore(A,{command:"docmanager:open",args:e=>({path:e.context.path,factory:I}),name:e=>e.context.path})}Promise.all([l.load(y),T]).then((([e])=>{var t,n,i;if(p){const e=(t=p.viewMenu.items.find((e=>{var t;return e.type==="submenu"&&((t=e.submenu)===null||t===void 0?void 0:t.id)==="jp-mainmenu-view-codemirror-language"})))===null||t===void 0?void 0:t.submenu;if(e){o.getLanguages().sort(((e,t)=>{const n=e.name;const i=t.name;return n.localeCompare(i)})).forEach((t=>{if(t.name.toLowerCase().indexOf("brainf")===0){return}e.addItem({command:j.changeLanguage,args:{...t}})}))}const s=(n=p.settingsMenu.items.find((e=>{var t;return e.type==="submenu"&&((t=e.submenu)===null||t===void 0?void 0:t.id)==="jp-mainmenu-settings-codemirror-theme"})))===null||n===void 0?void 0:n.submenu;if(s){for(const e of r.themes){s.addItem({command:j.changeTheme,args:{theme:e.name,displayName:(i=e.displayName)!==null&&i!==void 0?i:e.name}})}}p.editMenu.goToLiners.add({id:j.goToLine,isEnabled:e=>A.currentWidget!==null&&A.has(e)})}E.updateSettings(e,k);E.updateTracker(A);e.changed.connect((()=>{E.updateSettings(e,k);E.updateTracker(A)}))})).catch((e=>{console.error(e.message);E.updateTracker(A)}));if(b){const e=b.getRenderer("@jupyterlab/codemirror-extension:plugin.defaultConfig");if(e){b.addRenderer("@jupyterlab/fileeditor-extension:plugin.editorConfig",e)}}t.widgetCreated.connect(((e,t)=>{t.context.pathChanged.connect((()=>{void A.save(t)}));void A.add(t);E.updateWidget(t.content)}));A.widgetAdded.connect(((e,t)=>{E.updateWidget(t.content)}));E.addCommands(e.commands,l,x,y,P,A,a,i,o,d,C,e.shell);const N=new s.WidgetTracker({namespace:"codeviewer"});if(m){void m.restore(N,{command:j.openCodeViewer,args:e=>({content:e.content.content,label:e.content.title.label,mimeType:e.content.mimeType,widgetId:e.content.id}),name:e=>e.content.id})}E.addOpenCodeViewerCommand(e,n,N,x);if(u){E.addLauncherItems(u,x)}if(c){E.addPaletteItems(c,x)}if(p){E.addMenuItems(p,A,d,P)}R().then((e=>{if(u){E.addKernelLanguageLauncherItems(u,x,e)}if(c){E.addKernelLanguagePaletteItems(c,x,e)}if(p){E.addKernelLanguageMenuItems(p,e)}})).catch((e=>{console.error(e.message)}));if(f){f.add(new h.LaTeXTableOfContentsFactory(A));f.add(new h.MarkdownTableOfContentsFactory(A));f.add(new h.PythonTableOfContentsFactory(A))}return A}function z(e,t,n,i,o){if(!n){return}E.addCompleterCommands(e.commands,t,n,i);const r=e.serviceManager.sessions;const a=o!==null&&o!==void 0?o:new s.Sanitizer;const l=new Map;const d=async(e,t)=>{const i={editor:t.content.editor,widget:t};await n.updateCompleter(i);const s=(e,i)=>{const s=l.get(t.id);const o=(0,y.find)(i,(e=>e.path===t.context.path));if(o){if(s&&s.id===o.id){return}if(s){l.delete(t.id);s.dispose()}const e=r.connectTo({model:o});const i={editor:t.content.editor,widget:t,session:e,sanitizer:a};n.updateCompleter(i).catch(console.error);l.set(t.id,e)}else{if(s){l.delete(t.id);s.dispose()}}};s(r,Array.from(r.running()));r.runningChanged.connect(s);t.disposed.connect((()=>{r.runningChanged.disconnect(s);const e=l.get(t.id);if(e){l.delete(t.id);e.dispose()}}))};t.widgetAdded.connect(d);n.activeProvidersChanged.connect((()=>{t.forEach((e=>{d(t,e).catch(console.error)}))}))}function H(e,t,n,i,s,o){t.widgetAdded.connect((async(t,r)=>{const a=new h.FileEditorAdapter(r,{connectionManager:n,featureManager:i,foreignCodeExtractorsManager:s,docRegistry:e.docRegistry});o.add(a)}))}},61689:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(97913);var a=n(17325);var l=n(79010);var d=n(3579);var c=n(19562);var h=n(23359);var u=n(36060);var p=n(39063);var m=n(66731);var g=n(50286);var f=n(13137);var v=n(77748);var _=n(75797);var b=n(67996)},53062:(e,t,n)=>{"use strict";n.r(t);n.d(t,{EditorSyntaxStatus:()=>x,EditorTableOfContentsFactory:()=>I,FileEditor:()=>m,FileEditorAdapter:()=>r,FileEditorFactory:()=>f,FileEditorSearchProvider:()=>v,FileEditorWidget:()=>g,IEditorTracker:()=>O,IEditorWidgetFactory:()=>B,LaTeXTableOfContentsFactory:()=>D,LaTeXTableOfContentsModel:()=>M,MarkdownTableOfContentsFactory:()=>P,MarkdownTableOfContentsModel:()=>A,PythonTableOfContentsFactory:()=>N,PythonTableOfContentsModel:()=>R,TabSpaceStatus:()=>k});var i=n(54723);var s=n(7243);var o=n(5592);class r extends s.WidgetLSPAdapter{constructor(e,t){const{docRegistry:n,...i}=t;super(e,i);this._readyDelegate=new o.PromiseDelegate;this.editor=e.content;this._docRegistry=n;this._virtualEditor=Object.freeze({getEditor:()=>this.editor.editor,ready:()=>Promise.resolve(this.editor.editor),reveal:()=>Promise.resolve(this.editor.editor)});Promise.all([this.editor.context.ready,this.connectionManager.ready]).then((async()=>{await this.initOnceReady();this._readyDelegate.resolve();this._editorAdded.emit({editor:this._virtualEditor})})).catch(console.error)}get ready(){return this._readyDelegate.promise}get documentPath(){return this.widget.context.path}get mimeType(){var e;const t=this.editor.model.mimeType;const n=Array.isArray(t)?(e=t[0])!==null&&e!==void 0?e:i.IEditorMimeTypeService.defaultMimeType:t;const s=this.editor.context.contentsModel;if(n!=i.IEditorMimeTypeService.defaultMimeType){return n}else if(s){let e=this._docRegistry.getFileTypeForModel(s);return e.mimeTypes[0]}else{return n}}get languageFileExtension(){let e=this.documentPath.split(".");return e[e.length-1]}get ceEditor(){return this.editor.editor}get activeEditor(){return this._virtualEditor}get wrapperElement(){return this.widget.node}get path(){return this.widget.context.path}get editors(){var e,t;return[{ceEditor:this._virtualEditor,type:"code",value:(t=(e=this.editor)===null||e===void 0?void 0:e.model.sharedModel.getSource())!==null&&t!==void 0?t:""}]}dispose(){if(this.isDisposed){return}this._editorRemoved.emit({editor:this._virtualEditor});this.editor.model.mimeTypeChanged.disconnect(this.reloadConnection);super.dispose()}createVirtualDocument(){return new s.VirtualDocument({language:this.language,foreignCodeExtractors:this.options.foreignCodeExtractorsManager,path:this.documentPath,fileExtension:this.languageFileExtension,standalone:true,hasLspSupportedFile:true})}getEditorIndexAt(e){return 0}getEditorIndex(e){return 0}getEditorWrapper(e){return this.wrapperElement}async initOnceReady(){this.initVirtual();await this.connectDocument(this.virtualDocument,false);this.editor.model.mimeTypeChanged.connect(this.reloadConnection,this)}}var a=n(14366);var l=n(66899);var d=n(93037);var c=n(26331);var h=n(1143);const u="jpCodeRunner";const p="jpUndoer";class m extends h.Widget{constructor(e){super();this._ready=new o.PromiseDelegate;this.addClass("jp-FileEditor");const t=this._context=e.context;this._mimeTypeService=e.mimeTypeService;const n=this._editorWidget=new i.CodeEditorWrapper({factory:e.factory,model:t.model,editorOptions:{config:m.defaultEditorConfig}});this._editorWidget.addClass("jp-FileEditorCodeWrapper");this._editorWidget.node.dataset[u]="true";this._editorWidget.node.dataset[p]="true";this.editor=n.editor;this.model=n.model;void t.ready.then((()=>{this._onContextReady()}));this._onPathChanged();t.pathChanged.connect(this._onPathChanged,this);const s=this.layout=new h.StackedLayout;s.addWidget(n)}get context(){return this._context}get ready(){return this._ready.promise}handleEvent(e){if(!this.model){return}switch(e.type){case"mousedown":this._ensureFocus();break;default:break}}onAfterAttach(e){super.onAfterAttach(e);const t=this.node;t.addEventListener("mousedown",this)}onBeforeDetach(e){const t=this.node;t.removeEventListener("mousedown",this)}onActivateRequest(e){this._ensureFocus()}_ensureFocus(){if(!this.editor.hasFocus()){this.editor.focus()}}_onContextReady(){if(this.isDisposed){return}this.editor.clearHistory();this._ready.resolve(undefined)}_onPathChanged(){const e=this.editor;const t=this._context.localPath;e.model.mimeType=this._mimeTypeService.getMimeTypeByFilePath(t)}}(function(e){e.defaultEditorConfig={lineNumbers:true,scrollPastEnd:true}})(m||(m={}));class g extends d.DocumentWidget{async setFragment(e){const t=e.split("=");if(t[0]!=="#line"){return}const n=t[1];let i;if(n.includes(",")){i=n.split(",")[0]||"0"}else{i=n}return this.context.ready.then((()=>{const e={line:parseInt(i,10),column:0};this.content.editor.setCursorPosition(e);this.content.editor.revealPosition(e)}))}}class f extends d.ABCWidgetFactory{constructor(e){super(e.factoryOptions);this._services=e.editorServices}createNewWidget(e){const t=this._services.factoryService.newDocumentEditor;const n=e=>t(e);const i=new m({factory:n,context:e,mimeTypeService:this._services.mimeTypeService});i.title.icon=c.textEditorIcon;const s=new g({content:i,context:e});return s}}class v extends l.EditorSearchProvider{constructor(e){super();this.widget=e;this._searchActive=false}get isReadOnly(){return this.editor.getOption("readOnly")}get replaceOptionsSupport(){return{preserveCase:true}}get editor(){return this.widget.content.editor}get model(){return this.widget.content.model}async startQuery(e,t){this._searchActive=true;await super.startQuery(e,t);await this.highlightNext(true,{from:"selection-start",scroll:false,select:false})}async endQuery(){this._searchActive=false;await super.endQuery()}async onSharedModelChanged(e,t){if(this._searchActive){return super.onSharedModelChanged(e,t)}}static createNew(e,t){return new v(e)}static isApplicable(e){return e instanceof a.MainAreaWidget&&e.content instanceof m&&e.content.editor instanceof l.CodeMirrorEditor}getInitialQuery(){const e=this.editor;const t=e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to);return t}}var _=n(24735);var b=n(30619);var y=n(44914);var w=n.n(y);function C(e){return w().createElement(_.TextItem,{source:e.language,onClick:e.handleClick})}class x extends c.VDomRenderer{constructor(e){var t;super(new x.Model(e.languages));this._handleClick=()=>{const e=new h.Menu({commands:this._commands});const t="fileeditor:change-language";if(this._popup){this._popup.dispose()}this.model.languages.getLanguages().sort(((e,t)=>{var n,i;const s=(n=e.displayName)!==null&&n!==void 0?n:e.name;const o=(i=t.displayName)!==null&&i!==void 0?i:t.name;return s.localeCompare(o)})).forEach((n=>{var i;if(n.name.toLowerCase().indexOf("brainf")===0){return}const s={name:n.name,displayName:(i=n.displayName)!==null&&i!==void 0?i:n.name};e.addItem({command:t,args:s})}));this._popup=(0,_.showPopup)({body:e,anchor:this,align:"left"})};this._popup=null;this._commands=e.commands;this.translator=(t=e.translator)!==null&&t!==void 0?t:b.nullTranslator;const n=this.translator.load("jupyterlab");this.addClass("jp-mod-highlighted");this.title.caption=n.__("Change text editor syntax highlighting")}render(){if(!this.model){return null}return w().createElement(C,{language:this.model.language,handleClick:this._handleClick})}}(function(e){class t extends c.VDomModel{constructor(e){super();this.languages=e;this._onMIMETypeChange=(e,t)=>{var n;const s=this._language;const o=this.languages.findByMIME(t.newValue);this._language=(n=o===null||o===void 0?void 0:o.name)!==null&&n!==void 0?n:i.IEditorMimeTypeService.defaultMimeType;this._triggerChange(s,this._language)};this._language="";this._editor=null}get language(){return this._language}get editor(){return this._editor}set editor(e){var t;const n=this._editor;if(n!==null){n.model.mimeTypeChanged.disconnect(this._onMIMETypeChange)}const s=this._language;this._editor=e;if(this._editor===null){this._language=""}else{const e=this.languages.findByMIME(this._editor.model.mimeType);this._language=(t=e===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:i.IEditorMimeTypeService.defaultMimeType;this._editor.model.mimeTypeChanged.connect(this._onMIMETypeChange)}this._triggerChange(s,this._language)}_triggerChange(e,t){if(e!==t){this.stateChanged.emit(void 0)}}}e.Model=t})(x||(x={}));function S(e){const t=e.translator||b.nullTranslator;const n=t.load("jupyterlab");const i=typeof e.tabSpace==="number"?n.__("Spaces"):n.__("Tab Indent");return w().createElement(_.TextItem,{onClick:e.handleClick,source:typeof e.tabSpace==="number"?`${i}: ${e.tabSpace}`:i,title:n.__("Change the indentation…")})}class k extends c.VDomRenderer{constructor(e){super(new k.Model);this._popup=null;this._menu=e.menu;this.translator=e.translator||b.nullTranslator;this.addClass("jp-mod-highlighted")}render(){var e;if(!((e=this.model)===null||e===void 0?void 0:e.indentUnit)){return null}else{const e=this.model.indentUnit==="Tab"?null:parseInt(this.model.indentUnit,10);return w().createElement(S,{tabSpace:e,handleClick:()=>this._handleClick(),translator:this.translator})}}_handleClick(){const e=this._menu;if(this._popup){this._popup.dispose()}e.aboutToClose.connect(this._menuClosed,this);this._popup=(0,_.showPopup)({body:e,anchor:this,align:"right"});e.update()}_menuClosed(){this.removeClass("jp-mod-clicked")}}(function(e){class t extends c.VDomModel{get indentUnit(){return this._indentUnit}set indentUnit(e){if(e!==this._indentUnit){this._indentUnit=e;this.stateChanged.emit()}}}e.Model=t})(k||(k={}));var j=n(62149);class I extends j.TableOfContentsFactory{createNew(e,t){const n=super.createNew(e,t);const i=(t,n)=>{if(n){e.content.editor.setCursorPosition({line:n.line,column:0})}};n.activeHeadingChanged.connect(i);e.disposed.connect((()=>{n.activeHeadingChanged.disconnect(i)}));return n}}const E={part:1,chapter:1,section:1,subsection:2,subsubsection:3,paragraph:4,subparagraph:5};const T=/^\s*\\(section|subsection|subsubsection){(.+)}/;class M extends j.TableOfContentsModel{get documentType(){return"latex"}get supportedOptions(){return["maximalDepth","numberHeaders"]}getHeadings(){if(!this.isActive){return Promise.resolve(null)}const e=this.widget.content.model.sharedModel.getSource().split("\n");const t=new Array;let n=t.length;const i=new Array;for(let s=0;s0){s=n}const a=["from ","import "].includes(e[1]);if(a&&i){continue}i=a;const l=1+n/s;if(l>this.configuration.maximalDepth){continue}t.push({text:r.slice(n),level:l,line:o})}}return Promise.resolve(t)}}class N extends I{isApplicable(e){var t,n;const i=super.isApplicable(e);if(i){let i=(n=(t=e.content)===null||t===void 0?void 0:t.model)===null||n===void 0?void 0:n.mimeType;return i&&(i==="application/x-python-code"||i==="text/x-python")}return false}_createNew(e,t){return new R(e,t)}}const O=new o.Token("@jupyterlab/fileeditor:IEditorTracker",`A widget tracker for file editors.\n Use this if you want to be able to iterate over and interact with file editors\n created by the application.`);const B=new o.Token("@jupyterlab/fileeditor:IEditorWidgetFactory","A factory for creating file editors.")},77748:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(17325);var a=n(19562);var l=n(23359);var d=n(79010);var c=n(13137);var h=n(66731);var u=n(85072);var p=n.n(u);var m=n(97825);var g=n.n(m);var f=n(77659);var v=n.n(f);var _=n(55056);var b=n.n(_);var y=n(10540);var w=n.n(y);var C=n(41113);var x=n.n(C);var S=n(98561);var k={};k.styleTagTransform=x();k.setAttributes=b();k.insert=v().bind(null,"head");k.domAPI=g();k.insertStyleElement=w();var j=p()(S.A,k);const I=S.A&&S.A.locals?S.A.locals:undefined},97491:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>j});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(30397);var l=n.n(a);var d=n(23899);var c=n.n(d);var h=n(30619);var u=n.n(h);var p=n(26331);var m=n.n(p);var g=n(44914);var f=n.n(g);var v;(function(e){e.open="help:open";e.about="help:about";e.activate="help:activate";e.close="help:close";e.show="help:show";e.hide="help:hide";e.jupyterForum="help:jupyter-forum";e.licenses="help:licenses";e.licenseReport="help:license-report";e.refreshLicenses="help:licenses-refresh"})(v||(v={}));const _=window.location.protocol==="https:";const b="jp-Help";const y={id:"@jupyterlab/help-extension:licenses-commands",autoStart:true,optional:[h.ITranslator],description:"Add licenses commands for backwards compatibility.",activate:(e,t)=>{const{commands:n}=e;const i=(t!==null&&t!==void 0?t:h.nullTranslator).load("jupyterlab");const s=i.__("Licenses");const o=i.__("Download All Licenses");const r=i.__("Refresh Licenses");const a="apputils:licenses";n.addCommand(v.licenses,{label:s,execute:e=>{console.warn(`The command ${v.licenses} is deprecated, use ${a} instead.`);return n.execute(a,e)}});const l="apputils:license-report";n.addCommand(v.licenseReport,{label:o,execute:e=>{console.warn(`The command ${v.licenseReport} is deprecated, use ${l} instead.`);return n.execute(l,e)}});const d="apputils:licenses-refresh";n.addCommand(v.refreshLicenses,{label:r,execute:e=>{console.warn(`The command ${v.refreshLicenses} is deprecated, use ${d} instead.`);return n.execute(d,e)}})}};const w={id:"@jupyterlab/help-extension:about",description:'Adds a "About" dialog feature.',autoStart:true,requires:[h.ITranslator],optional:[o.ICommandPalette],activate:(e,t,n)=>{const{commands:i}=e;const s=t.load("jupyterlab");const r=s.__("Help");i.addCommand(v.about,{label:s.__("About %1",e.name),execute:()=>{const t=s.__("Version %1",e.version);const n=g.createElement("span",{className:"jp-About-version-info"},g.createElement("span",{className:"jp-About-version"},t));const i=g.createElement("span",{className:"jp-About-header"},g.createElement(p.jupyterIcon.react,{margin:"7px 9.5px",height:"auto",width:"58px"}),g.createElement("div",{className:"jp-About-header-info"},g.createElement(p.jupyterlabWordmarkIcon.react,{height:"auto",width:"196px"}),n));const r="https://jupyter.org/about.html";const a="https://github.com/jupyterlab/jupyterlab/graphs/contributors";const l=g.createElement("span",{className:"jp-About-externalLinks"},g.createElement("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"jp-Button-flat"},s.__("CONTRIBUTOR LIST")),g.createElement("a",{href:r,target:"_blank",rel:"noopener noreferrer",className:"jp-Button-flat"},s.__("ABOUT PROJECT JUPYTER")));const d=g.createElement("span",{className:"jp-About-copyright"},s.__("© %1-%2 Project Jupyter Contributors",2015,2025));const c=g.createElement("div",{className:"jp-About-body"},l,d);return(0,o.showDialog)({title:i,body:c,buttons:[o.Dialog.cancelButton({label:s.__("Close")})]})}});if(n){n.addItem({command:v.about,category:r})}}};const C={id:"@jupyterlab/help-extension:jupyter-forum",description:"Adds command to open the Jupyter Forum website.",autoStart:true,requires:[h.ITranslator],optional:[o.ICommandPalette],activate:(e,t,n)=>{const{commands:i}=e;const s=t.load("jupyterlab");const o=s.__("Help");i.addCommand(v.jupyterForum,{label:s.__("Jupyter Forum"),execute:()=>{window.open("https://discourse.jupyter.org/c/jupyterlab")}});if(n){n.addItem({command:v.jupyterForum,category:o})}}};const x={id:"@jupyterlab/help-extension:open",description:"Add command to open websites as panel or browser tab.",autoStart:true,requires:[h.ITranslator],optional:[i.ILayoutRestorer],activate:(e,t,n)=>{const{commands:i,shell:s}=e;const r=t.load("jupyterlab");const l="help-doc";const d=new o.WidgetTracker({namespace:l});let c=0;function h(e,t){const n=new p.IFrame({sandbox:["allow-scripts","allow-forms"],loading:"lazy"});n.url=e;n.addClass(b);n.title.label=t;n.id=`${l}-${++c}`;const i=new o.MainAreaWidget({content:n});i.addClass("jp-Help");return i}i.addCommand(v.open,{label:e=>{var t;return(t=e["text"])!==null&&t!==void 0?t:r.__("Open the provided `url` in a tab.")},execute:e=>{const t=e["url"];const n=e["text"];const i=e["newBrowserTab"]||false;if(i||_&&a.URLExt.parse(t).protocol!=="https:"){window.open(t);return}const o=h(t,n);void d.add(o);s.add(o,"main");return o}});if(n){void n.restore(d,{command:v.open,args:e=>({url:e.content.url,text:e.content.title.label}),name:e=>e.content.url})}}};const S={id:"@jupyterlab/help-extension:resources",description:"Adds menu entries to Jupyter reference documentation websites.",autoStart:true,requires:[d.IMainMenu,h.ITranslator],optional:[i.ILabShell,o.ICommandPalette],activate:(e,t,n,i,s)=>{const r=n.load("jupyterlab");const a=r.__("Help");const{commands:l,serviceManager:d}=e;const c=[{text:r.__("JupyterLab Reference"),url:"https://jupyterlab.readthedocs.io/en/stable/"},{text:r.__("JupyterLab FAQ"),url:"https://jupyterlab.readthedocs.io/en/stable/getting_started/faq.html"},{text:r.__("Jupyter Reference"),url:"https://jupyter.org/documentation"},{text:r.__("Markdown Reference"),url:"https://commonmark.org/help/"}];c.sort(((e,t)=>e.text.localeCompare(t.text)));const h=t.helpMenu;const u=c.map((e=>({args:e,command:v.open})));h.addGroup(u,10);const p=new Map;const m=(e,t)=>{var n;if(!t.length){return}const s=t[t.length-1];if(!s.kernel||p.has(s.kernel.name)){return}const a=d.sessions.connectTo({model:s,kernelConnectionOptions:{handleComms:false}});void((n=a.kernel)===null||n===void 0?void 0:n.info.then((e=>{var t,n;const s=a.kernel.name;if(p.has(s)){return}const c=(n=(t=d.kernelspecs)===null||t===void 0?void 0:t.specs)===null||n===void 0?void 0:n.kernelspecs[s];if(!c){return}p.set(s,e);let u=false;const m=async()=>{const e=await l.execute("helpmenu:get-kernel");u=(e===null||e===void 0?void 0:e.name)===s};m().catch((e=>{console.error("Failed to get the kernel for the current widget.",e)}));if(i){i.currentChanged.connect(m)}const f=()=>u;const _=`help-menu-${s}:banner`;const b=c.display_name;const y=c.resources["logo-svg"]||c.resources["logo-64x64"];l.addCommand(_,{label:r.__("About the %1 Kernel",b),isVisible:f,isEnabled:f,execute:()=>{const t=g.createElement("img",{src:y,alt:r.__("Kernel Icon")});const n=g.createElement("span",{className:"jp-About-header"},t,g.createElement("div",{className:"jp-About-header-info"},b));const i=g.createElement("pre",null,e.banner);const s=g.createElement("div",{className:"jp-About-body"},i);return(0,o.showDialog)({title:n,body:s,buttons:[o.Dialog.cancelButton({label:r.__("Close")})]})}});h.addGroup([{command:_}],20);const w=[];(e.help_links||[]).forEach((e=>{const t=`help-menu-${s}:${e.text}`;l.addCommand(t,{label:l.label(v.open,e),isVisible:f,isEnabled:f,execute:()=>l.execute(v.open,e)});w.push({command:t})}));h.addGroup(w,21)})).then((()=>{a.dispose()})))};for(const o of d.sessions.running()){m(d.sessions,[o])}d.sessions.runningChanged.connect(m);if(s){c.forEach((e=>{s.addItem({args:e,command:v.open,category:a})}));s.addItem({args:{reload:true},command:"apputils:reset",category:a})}}};const k=[w,C,y,x,S];const j=k},34072:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(67996);var a=n(85072);var l=n.n(a);var d=n(97825);var c=n.n(d);var h=n(77659);var u=n.n(h);var p=n(55056);var m=n.n(p);var g=n(10540);var f=n.n(g);var v=n(41113);var _=n.n(v);var b=n(31569);var y={};y.styleTagTransform=_();y.setAttributes=m();y.insert=u().bind(null,"head");y.domAPI=c();y.insertStyleElement=f();var w=l()(b.A,y);const C=b.A&&b.A.locals?b.A.locals:undefined},1951:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>y});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(73961);var l=n.n(a);var d=n(84739);var c=n.n(d);var h=n(30619);var u=n.n(h);var p=n(26331);var m=n.n(p);const g="@jupyterlab/htmlviewer-extension:plugin";const f="HTML Viewer";var v;(function(e){e.trustHTML="htmlviewer:trust-html"})(v||(v={}));const _={activate:b,id:g,description:"Adds HTML file viewer and provides its tracker.",provides:a.IHTMLViewerTracker,requires:[h.ITranslator],optional:[o.ICommandPalette,i.ILayoutRestorer,d.ISettingRegistry,o.IToolbarWidgetRegistry],autoStart:true};function b(e,t,n,i,s,r){let l;const d=t.load("jupyterlab");if(r){r.addFactory(f,"refresh",(e=>a.ToolbarItems.createRefreshButton(e,t)));r.addFactory(f,"trust",(e=>a.ToolbarItems.createTrustButton(e,t)));if(s){l=(0,o.createToolbarFactory)(r,s,f,_.id,t)}}const c={name:"html",contentType:"file",fileFormat:"text",displayName:d.__("HTML File"),extensions:[".html"],mimeTypes:["text/html"],icon:p.html5Icon};e.docRegistry.addFileType(c);const h=new a.HTMLViewerFactory({name:f,label:d.__("HTML Viewer"),fileTypes:["html"],defaultFor:["html"],readOnly:true,toolbarFactory:l,translator:t});const u=new o.WidgetTracker({namespace:"htmlviewer"});if(i){void i.restore(u,{command:"docmanager:open",args:e=>({path:e.context.path,factory:"HTML Viewer"}),name:e=>e.context.path})}let m=false;if(s){const t=s.load(g);const n=e=>{m=e.get("trustByDefault").composite};Promise.all([t,e.restored]).then((([e])=>{n(e);e.changed.connect((e=>{n(e)}))})).catch((e=>{console.error(e.message)}))}e.docRegistry.addWidgetFactory(h);h.widgetCreated.connect(((t,n)=>{var i,s;void u.add(n);n.context.pathChanged.connect((()=>{void u.save(n)}));n.trustedChanged.connect((()=>{e.commands.notifyCommandChanged(v.trustHTML)}));n.trusted=m;n.title.icon=c.icon;n.title.iconClass=(i=c.iconClass)!==null&&i!==void 0?i:"";n.title.iconLabel=(s=c.iconLabel)!==null&&s!==void 0?s:""}));e.commands.addCommand(v.trustHTML,{label:d.__("Trust HTML File"),caption:d.__(`Whether the HTML file is trusted.\n Trusting the file allows scripts to run in it,\n which may result in security risks.\n Only enable for files you trust.`),isEnabled:()=>!!u.currentWidget,isToggled:()=>{const e=u.currentWidget;if(!e){return false}const t=e.content.sandbox;return t.indexOf("allow-scripts")!==-1},execute:()=>{const e=u.currentWidget;if(!e){return}e.trusted=!e.trusted}});u.currentChanged.connect((()=>{e.commands.notifyCommandChanged(v.trustHTML)}));if(n){n.addItem({command:v.trustHTML,category:d.__("File Operations")})}return u}const y=_},54336:(e,t,n)=>{"use strict";var i=n(40662);var s=n(97913);var o=n(79010);var r=n(3579);var a=n(10395);var l=n(85072);var d=n.n(l);var c=n(97825);var h=n.n(c);var u=n(77659);var p=n.n(u);var m=n(55056);var g=n.n(m);var f=n(10540);var v=n.n(f);var _=n(41113);var b=n.n(_);var y=n(20813);var w={};w.styleTagTransform=b();w.setAttributes=g();w.insert=p().bind(null,"head");w.domAPI=h();w.insertStyleElement=v();var C=d()(y.A,w);const x=y.A&&y.A.locals?y.A.locals:undefined},43947:(e,t,n)=>{"use strict";n.r(t);n.d(t,{HTMLViewer:()=>m,HTMLViewerFactory:()=>g,IHTMLViewerTracker:()=>s,ToolbarItems:()=>f});var i=n(5592);const s=new i.Token("@jupyterlab/htmlviewer:IHTMLViewerTracker",`A widget tracker for rendered HTML documents.\n Use this if you want to be able to iterate over and interact with HTML documents\n viewed by the application.`);var o=n(30397);var r=n(93037);var a=n(30619);var l=n(26331);var d=n(2336);var c=n(44914);const h=1e3;const u="jp-HTMLViewer";const p=e=>``;class m extends r.DocumentWidget{constructor(e){super({...e,content:new l.IFrame({sandbox:["allow-same-origin"],loading:"lazy"})});this._renderPending=false;this._parser=new DOMParser;this._monitor=null;this._objectUrl="";this._trustedChanged=new d.Signal(this);this.translator=e.translator||a.nullTranslator;this.content.addClass(u);void this.context.ready.then((()=>{this.update();this._monitor=new o.ActivityMonitor({signal:this.context.model.contentChanged,timeout:h});this._monitor.activityStopped.connect(this.update,this)}))}get trusted(){return this.content.sandbox.indexOf("allow-scripts")!==-1}set trusted(e){if(this.trusted===e){return}if(e){this.content.sandbox=v.trusted}else{this.content.sandbox=v.untrusted}this.update();this._trustedChanged.emit(e)}get trustedChanged(){return this._trustedChanged}dispose(){if(this._objectUrl){try{URL.revokeObjectURL(this._objectUrl)}catch(e){}}super.dispose()}onUpdateRequest(){if(this._renderPending){return}this._renderPending=true;void this._renderModel().then((()=>this._renderPending=false))}async _renderModel(){let e=this.context.model.toString();e=await this._setupDocument(e);const t=new Blob([e],{type:"text/html"});const n=this._objectUrl;this._objectUrl=URL.createObjectURL(t);this.content.url=this._objectUrl;if(n){try{URL.revokeObjectURL(n)}catch(i){}}return}async _setupDocument(e){const t=this._parser.parseFromString(e,"text/html");let n=t.querySelector("base");if(!n){n=t.createElement("base");t.head.insertBefore(n,t.head.firstChild)}const i=this.context.path;const s=await this.context.urlResolver.getDownloadUrl(i);n.href=s;n.target="_self";if(!this.trusted){const e=this.translator.load("jupyterlab");const n=e.__("Action disabled as the file is not trusted.");t.body.insertAdjacentHTML("beforeend",p({warning:n}))}return t.documentElement.innerHTML}}class g extends r.ABCWidgetFactory{createNewWidget(e){return new m({context:e})}defaultToolbarFactory(e){return[{name:"refresh",widget:f.createRefreshButton(e,this.translator)},{name:"trust",widget:f.createTrustButton(e,this.translator)}]}}var f;(function(e){function t(e,t){const n=(t!==null&&t!==void 0?t:a.nullTranslator).load("jupyterlab");return new l.ToolbarButton({icon:l.refreshIcon,onClick:async()=>{if(!e.context.model.dirty){await e.context.revert();e.update()}},tooltip:n.__("Rerender HTML Document")})}e.createRefreshButton=t;function n(e,t){return l.ReactWidget.create(c.createElement(v.TrustButtonComponent,{htmlDocument:e,translator:t}))}e.createTrustButton=n})(f||(f={}));var v;(function(e){e.untrusted=[];e.trusted=["allow-scripts","allow-popups"];function t(e){const t=e.translator||a.nullTranslator;const n=t.load("jupyterlab");return c.createElement(l.UseSignal,{signal:e.htmlDocument.trustedChanged,initialSender:e.htmlDocument},(()=>c.createElement(l.ToolbarButtonComponent,{className:"",onClick:()=>e.htmlDocument.trusted=!e.htmlDocument.trusted,tooltip:n.__(`Whether the HTML file is trusted.\nTrusting the file allows opening pop-ups and running scripts\nwhich may result in security risks.\nOnly enable for files you trust.`),label:e.htmlDocument.trusted?n.__("Distrust HTML"):n.__("Trust HTML")})))}e.TrustButtonComponent=t})(v||(v={}))},44031:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CommandIDs:()=>h,default:()=>f});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(30397);var l=n.n(a);var d=n(30619);var c=n.n(d);var h;(function(e){e.controlPanel="hub:control-panel";e.logout="hub:logout";e.restart="hub:restart"})(h||(h={}));function u(e,t,n,i){const s=n.load("jupyterlab");const o=t.urls.hubHost||"";const r=t.urls.hubPrefix||"";const l=t.urls.hubUser||"";const d=t.urls.hubServerName||"";const c=t.urls.base;if(!r){return}console.debug("hub-extension: Found configuration ",{hubHost:o,hubPrefix:r});const u=a.URLExt.join(r,"spawn");let p=o+u;if(d){const e=a.URLExt.join(u,l,d);if(!e.startsWith(u)){throw new Error("Can only be used for spawn requests")}p=o+e}const{commands:m}=e;m.addCommand(h.restart,{label:s.__("Restart Server"),caption:s.__("Request that the Hub restart this server"),execute:()=>{window.open(p,"_blank")}});m.addCommand(h.controlPanel,{label:s.__("Hub Control Panel"),caption:s.__("Open the Hub control panel in a new browser tab"),execute:()=>{window.open(o+a.URLExt.join(r,"home"),"_blank")}});m.addCommand(h.logout,{label:s.__("Log Out"),caption:s.__("Log out of the Hub"),execute:()=>{window.location.href=o+a.URLExt.join(c,"logout")}});if(i){const e=s.__("Hub");i.addItem({category:e,command:h.controlPanel});i.addItem({category:e,command:h.logout})}}const p={activate:u,id:"@jupyterlab/hub-extension:plugin",description:"Registers commands related to the hub server",requires:[i.JupyterFrontEnd.IPaths,d.ITranslator],optional:[o.ICommandPalette],autoStart:true};const m={activate:()=>void 0,id:"@jupyterlab/hub-extension:menu",description:"Adds hub related commands to the menu.",autoStart:true};const g={id:"@jupyterlab/hub-extension:connectionlost",description:"Provides a service to be notified when the connection to the hub server is lost.",requires:[i.JupyterFrontEnd.IPaths,d.ITranslator],optional:[i.JupyterLab.IInfo],activate:(e,t,n,s)=>{const r=n.load("jupyterlab");const a=t.urls.hubPrefix||"";const l=t.urls.base;if(!a){return i.ConnectionLost}let d=false;const c=async(t,n)=>{if(d){return}d=true;if(s){s.isConnected=false}const i=await(0,o.showDialog)({title:r.__("Server unavailable or unreachable"),body:r.__("Your server at %1 is not running.\nWould you like to restart it?",l),buttons:[o.Dialog.okButton({label:r.__("Restart")}),o.Dialog.cancelButton({label:r.__("Dismiss")})]});if(s){s.isConnected=true}d=false;if(i.button.accept){await e.commands.execute(h.restart)}};return c},autoStart:true,provides:i.IConnectionLost};const f=[p,m,g]},19457:(e,t,n)=>{"use strict";var i=n(97913);var s=n(3579)},55575:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>_});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(83275);var l=n.n(a);var d=n(30619);var c=n.n(d);var h;(function(e){e.resetImage="imageviewer:reset-image";e.zoomIn="imageviewer:zoom-in";e.zoomOut="imageviewer:zoom-out";e.flipHorizontal="imageviewer:flip-horizontal";e.flipVertical="imageviewer:flip-vertical";e.rotateClockwise="imageviewer:rotate-clockwise";e.rotateCounterclockwise="imageviewer:rotate-counterclockwise";e.invertColors="imageviewer:invert-colors"})(h||(h={}));const u=["png","gif","jpeg","bmp","ico","tiff"];const p="Image";const m="Image (Text)";const g=["svg","xbm"];const f=new RegExp(`[.](${g.join("|")})$`);const v={activate:b,description:"Adds image viewer and provide its tracker.",id:"@jupyterlab/imageviewer-extension:plugin",provides:a.IImageTracker,requires:[d.ITranslator],optional:[o.ICommandPalette,i.ILayoutRestorer],autoStart:true};const _=v;function b(e,t,n,i){const s=t.load("jupyterlab");const r="image-widget";function l(t,n){var i,s;n.context.pathChanged.connect((()=>{void v.save(n)}));void v.add(n);const o=e.docRegistry.getFileTypesForPath(n.context.path);if(o.length>0){n.title.icon=o[0].icon;n.title.iconClass=(i=o[0].iconClass)!==null&&i!==void 0?i:"";n.title.iconLabel=(s=o[0].iconLabel)!==null&&s!==void 0?s:""}}const d=new a.ImageViewerFactory({name:p,label:s.__("Image"),modelName:"base64",fileTypes:[...u,...g],defaultFor:u,readOnly:true});const c=new a.ImageViewerFactory({name:m,label:s.__("Image (Text)"),modelName:"text",fileTypes:g,defaultFor:g,readOnly:true});[d,c].forEach((t=>{e.docRegistry.addWidgetFactory(t);t.widgetCreated.connect(l)}));const v=new o.WidgetTracker({namespace:r});if(i){void i.restore(v,{command:"docmanager:open",args:e=>({path:e.context.path,factory:f.test(e.context.path)?m:p}),name:e=>e.context.path})}y(e,v,t);if(n){const e=s.__("Image Viewer");[h.zoomIn,h.zoomOut,h.resetImage,h.rotateClockwise,h.rotateCounterclockwise,h.flipHorizontal,h.flipVertical,h.invertColors].forEach((t=>{n.addItem({command:t,category:e})}))}return v}function y(e,t,n){var i;const s=n.load("jupyterlab");const{commands:o,shell:r}=e;function a(){return t.currentWidget!==null&&t.currentWidget===r.currentWidget}o.addCommand(h.zoomIn,{execute:d,label:s.__("Zoom In"),isEnabled:a});o.addCommand(h.zoomOut,{execute:c,label:s.__("Zoom Out"),isEnabled:a});o.addCommand(h.resetImage,{execute:u,label:s.__("Reset Image"),isEnabled:a});o.addCommand(h.rotateClockwise,{execute:p,label:s.__("Rotate Clockwise"),isEnabled:a});o.addCommand(h.rotateCounterclockwise,{execute:m,label:s.__("Rotate Counterclockwise"),isEnabled:a});o.addCommand(h.flipHorizontal,{execute:g,label:s.__("Flip image horizontally"),isEnabled:a});o.addCommand(h.flipVertical,{execute:f,label:s.__("Flip image vertically"),isEnabled:a});o.addCommand(h.invertColors,{execute:v,label:s.__("Invert Colors"),isEnabled:a});const l=()=>{Object.values(h).forEach((e=>o.notifyCommandChanged(e)))};t.currentChanged.connect(l);(i=r.currentChanged)===null||i===void 0?void 0:i.connect(l);function d(){var e;const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(n){n.scale=n.scale>1?n.scale+.5:n.scale*2}}function c(){var e;const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(n){n.scale=n.scale>1?n.scale-.5:n.scale/2}}function u(){var e;const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(n){n.scale=1;n.colorinversion=0;n.resetRotationFlip()}}function p(){var e;const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(n){n.rotateClockwise()}}function m(){var e;const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(n){n.rotateCounterclockwise()}}function g(){var e;const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(n){n.flipHorizontal()}}function f(){var e;const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(n){n.flipVertical()}}function v(){var e;const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(n){n.colorinversion+=1;n.colorinversion%=2}}}},43017:(e,t,n)=>{"use strict";var i=n(97913);var s=n(79010);var o=n(3579);var r=n(10395);var a=n(85072);var l=n.n(a);var d=n(97825);var c=n.n(d);var h=n(77659);var u=n.n(h);var p=n(55056);var m=n.n(p);var g=n(10540);var f=n.n(g);var v=n(41113);var _=n.n(v);var b=n(70047);var y={};y.styleTagTransform=_();y.setAttributes=m();y.insert=u().bind(null,"head");y.domAPI=c();y.insertStyleElement=f();var w=l()(b.A,y);const C=b.A&&b.A.locals?b.A.locals:undefined},70496:(e,t,n)=>{"use strict";n.r(t);n.d(t,{IImageTracker:()=>s,ImageViewer:()=>c,ImageViewerFactory:()=>h});var i=n(5592);const s=new i.Token("@jupyterlab/imageviewer:IImageTracker",`A widget tracker for images.\n Use this if you want to be able to iterate over and interact with images\n viewed by the application.`);var o=n(30397);var r=n(14366);var a=n(93037);var l=n(1143);const d="jp-ImageViewer";class c extends l.Widget{constructor(e){super();this._scale=1;this._matrix=[1,0,0,1];this._colorinversion=0;this._ready=new i.PromiseDelegate;this.context=e;this.node.tabIndex=0;this.addClass(d);this._img=document.createElement("img");this.node.appendChild(this._img);this._onTitleChanged();e.pathChanged.connect(this._onTitleChanged,this);void e.ready.then((()=>{if(this.isDisposed){return}const t=e.contentsModel;this._mimeType=t.mimetype;this._render();e.model.contentChanged.connect(this.update,this);e.fileChanged.connect(this.update,this);this._ready.resolve(void 0)}))}[r.Printing.symbol](){return()=>r.Printing.printWidget(this)}get ready(){return this._ready.promise}get scale(){return this._scale}set scale(e){if(e===this._scale){return}this._scale=e;this._updateStyle()}get colorinversion(){return this._colorinversion}set colorinversion(e){if(e===this._colorinversion){return}this._colorinversion=e;this._updateStyle()}dispose(){if(this._img.src){URL.revokeObjectURL(this._img.src||"")}super.dispose()}resetRotationFlip(){this._matrix=[1,0,0,1];this._updateStyle()}rotateCounterclockwise(){this._matrix=u.prod(this._matrix,u.rotateCounterclockwiseMatrix);this._updateStyle()}rotateClockwise(){this._matrix=u.prod(this._matrix,u.rotateClockwiseMatrix);this._updateStyle()}flipHorizontal(){this._matrix=u.prod(this._matrix,u.flipHMatrix);this._updateStyle()}flipVertical(){this._matrix=u.prod(this._matrix,u.flipVMatrix);this._updateStyle()}onUpdateRequest(e){if(this.isDisposed||!this.context.isReady){return}this._render()}onActivateRequest(e){this.node.focus()}_onTitleChanged(){this.title.label=o.PathExt.basename(this.context.localPath)}_render(){const e=this.context;const t=e.contentsModel;if(!t){return}const n=this._img.src||"";let i=e.model.toString();if(t.format==="base64"){this._img.src=`data:${this._mimeType};base64,${i}`}else{const e=new Blob([i],{type:this._mimeType});this._img.src=URL.createObjectURL(e)}URL.revokeObjectURL(n)}_updateStyle(){const[e,t,n,i]=this._matrix;const[s,o]=u.prodVec(this._matrix,[1,1]);const r=`matrix(${e}, ${t}, ${n}, ${i}, 0, 0) translate(${s<0?-100:0}%, ${o<0?-100:0}%) `;this._img.style.transform=`scale(${this._scale}) ${r}`;this._img.style.filter=`invert(${this._colorinversion})`}}class h extends a.ABCWidgetFactory{createNewWidget(e){const t=new c(e);const n=new a.DocumentWidget({content:t,context:e});return n}}var u;(function(e){function t([e,t,n,i],[s,o,r,a]){return[e*s+t*r,e*o+t*a,n*s+i*r,n*o+i*a]}e.prod=t;function n([e,t,n,i],[s,o]){return[e*s+t*o,n*s+i*o]}e.prodVec=n;e.rotateClockwiseMatrix=[0,1,-1,0];e.rotateCounterclockwiseMatrix=[0,-1,1,0];e.flipHMatrix=[-1,0,0,1];e.flipVMatrix=[1,0,0,-1]})(u||(u={}))},33389:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>S});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(9155);var l=n.n(a);var d=n(65743);var c=n.n(d);var h=n(74955);var u=n.n(h);var p=n(80349);var m=n.n(p);var g=n(30619);var f=n.n(g);var v=n(26331);var _=n.n(v);var b;(function(e){e.open="inspector:open";e.close="inspector:close";e.toggle="inspector:toggle"})(b||(b={}));const y={id:"@jupyterlab/inspector-extension:inspector",description:"Provides the code introspection widget.",requires:[g.ITranslator],optional:[o.ICommandPalette,h.ILauncher,i.ILayoutRestorer],provides:d.IInspector,autoStart:true,activate:(e,t,n,i,s)=>{const r=t.load("jupyterlab");const{commands:a,shell:l}=e;const c=r.__("Live updating code documentation from the active kernel");const h=r.__("Contextual Help");const u="inspector";const p="jpInspector";const m=new o.WidgetTracker({namespace:u});function g(){return _&&!_.isDisposed}let f=null;let _;function y(e){var n;if(!g()){_=new o.MainAreaWidget({content:new d.InspectorPanel({translator:t})});_.id="jp-inspector";_.title.label=h;_.title.icon=v.inspectorIcon;void m.add(_);f=f&&!f.isDisposed?f:null;_.content.source=f;(n=_.content.source)===null||n===void 0?void 0:n.onEditorChange(e)}if(!_.isAttached){l.add(_,"main",{activate:false,mode:"split-right",type:"Inspector"})}l.activateById(_.id);document.body.dataset[p]="open";return _}function w(){_.dispose();delete document.body.dataset[p]}const C=r.__("Show Contextual Help");a.addCommand(b.open,{caption:c,isEnabled:()=>!_||_.isDisposed||!_.isAttached||!_.isVisible,label:C,icon:e=>e.isLauncher?v.inspectorIcon:undefined,execute:e=>{var t;const n=e&&e.text;const i=e&&e.refresh;if(g()&&i)(t=_.content.source)===null||t===void 0?void 0:t.onEditorChange(n);else y(n)}});const x=r.__("Hide Contextual Help");a.addCommand(b.close,{caption:c,isEnabled:()=>g(),label:x,icon:e=>e.isLauncher?v.inspectorIcon:undefined,execute:()=>w()});const S=r.__("Show Contextual Help");a.addCommand(b.toggle,{caption:c,label:S,isToggled:()=>g(),execute:e=>{if(g()){w()}else{const t=e&&e.text;y(t)}}});if(i){i.add({command:b.open,args:{isLauncher:true}})}if(n){n.addItem({command:b.toggle,category:S})}if(s){void s.restore(m,{command:b.toggle,name:()=>"inspector"})}const k=Object.defineProperty({},"source",{get:()=>!_||_.isDisposed?null:_.content.source,set:e=>{f=e&&!e.isDisposed?e:null;if(_&&!_.isDisposed){_.content.source=f}}});return k}};const w={id:"@jupyterlab/inspector-extension:consoles",description:"Adds code introspection support to consoles.",requires:[d.IInspector,a.IConsoleTracker,i.ILabShell],autoStart:true,activate:(e,t,n,i,s)=>{const o={};n.widgetAdded.connect(((e,t)=>{const n=t.console.sessionContext;const i=t.console.rendermime;const s=new d.KernelConnector({sessionContext:n});const r=new d.InspectionHandler({connector:s,rendermime:i});o[t.id]=r;const a=t.console.promptCell;r.editor=a&&a.editor;t.console.promptCellCreated.connect(((e,t)=>{r.editor=t&&t.editor}));t.disposed.connect((()=>{delete o[t.id];r.dispose()}))}));const r=e=>{if(e&&n.has(e)&&o[e.id]){t.source=o[e.id]}};i.currentChanged.connect(((e,t)=>r(t.newValue)));void e.restored.then((()=>r(i.currentWidget)))}};const C={id:"@jupyterlab/inspector-extension:notebooks",description:"Adds code introspection to notebooks.",requires:[d.IInspector,p.INotebookTracker,i.ILabShell],autoStart:true,activate:(e,t,n,i)=>{const s={};n.widgetAdded.connect(((e,t)=>{const n=t.sessionContext;const i=t.content.rendermime;const o=new d.KernelConnector({sessionContext:n});const r=new d.InspectionHandler({connector:o,rendermime:i});s[t.id]=r;const a=t.content.activeCell;r.editor=a&&a.editor;t.content.activeCellChanged.connect(((e,n)=>{void(n===null||n===void 0?void 0:n.ready.then((()=>{if(n===t.content.activeCell){r.editor=n.editor}})))}));t.disposed.connect((()=>{delete s[t.id];r.dispose()}))}));const o=e=>{if(e&&n.has(e)&&s[e.id]){t.source=s[e.id]}};i.currentChanged.connect(((e,t)=>o(t.newValue)));void e.restored.then((()=>o(i.currentWidget)))}};const x=[y,w,C];const S=x},45695:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(3579);var a=n(50286);var l=n(52638);var d=n(75797);var c=n(28006)},40516:(e,t,n)=>{"use strict";n.r(t);n.d(t,{IInspector:()=>_,InspectionHandler:()=>l,InspectorPanel:()=>g,KernelConnector:()=>v});var i=n(30397);var s=n(44539);var o=n(5592);var r=n(26568);var a=n(2336);class l{constructor(e){this._cleared=new a.Signal(this);this._disposed=new a.Signal(this);this._editor=null;this._inspected=new a.Signal(this);this._isDisposed=false;this._pending=0;this._standby=true;this._lastInspectedReply=null;this._connector=e.connector;this._rendermime=e.rendermime;this._debouncer=new r.Debouncer(this.onEditorChange.bind(this),250)}get cleared(){return this._cleared}get disposed(){return this._disposed}get inspected(){return this._inspected}get editor(){return this._editor}set editor(e){if(e===this._editor){return}a.Signal.disconnectReceiver(this);const t=this._editor=e;if(t){this._cleared.emit(void 0);this.onEditorChange();t.model.selections.changed.connect(this._onChange,this);t.model.sharedModel.changed.connect(this._onChange,this)}}get standby(){return this._standby}set standby(e){this._standby=e}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;this._debouncer.dispose();this._disposed.emit(void 0);a.Signal.clearData(this)}onEditorChange(e){if(this._standby){return}const t=this.editor;if(!t){return}const n=e?e:t.model.sharedModel.getSource();const r=t.getCursorPosition();const a=i.Text.jsIndexToCharIndex(t.getOffsetAt(r),n);const l={content:null};const d=++this._pending;void this._connector.fetch({offset:a,text:n}).then((e=>{if(!e||this.isDisposed||d!==this._pending){this._lastInspectedReply=null;this._inspected.emit(l);return}const{data:t}=e;if(this._lastInspectedReply&&o.JSONExt.deepEqual(this._lastInspectedReply,t)){return}const n=this._rendermime.preferredMimeType(t);if(n){const e=this._rendermime.createRenderer(n);const i=new s.MimeModel({data:t});void e.renderModel(i);l.content=e}this._lastInspectedReply=e.data;this._inspected.emit(l)})).catch((e=>{this._lastInspectedReply=null;this._inspected.emit(l)}))}_onChange(){void this._debouncer.invoke()}}var d=n(14366);var c=n(30619);var h=n(1143);const u="jp-Inspector";const p="jp-Inspector-content";const m="jp-Inspector-placeholderContent";class g extends h.Panel{constructor(e={}){super();this._source=null;this.translator=e.translator||c.nullTranslator;this._trans=this.translator.load("jupyterlab");if(e.initialContent instanceof h.Widget){this._content=e.initialContent}else if(typeof e.initialContent==="string"){this._content=g._generateContentWidget(`

    ${e.initialContent}

    `)}else{const e=`

    ${this._trans.__("No Documentation")}

    `;const t=`

    ${this._trans.__("Move the cursor to a code fragment (e.g. function or object) to request information about it from the kernel attached to the editor.")}

    `;this._content=g._generateContentWidget(`${e}${t}`)}this.addClass(u);this.layout.addWidget(this._content)}[d.Printing.symbol](){return()=>d.Printing.printWidget(this)}get source(){return this._source}set source(e){if(this._source===e){return}if(this._source){this._source.standby=true;this._source.inspected.disconnect(this.onInspectorUpdate,this);this._source.disposed.disconnect(this.onSourceDisposed,this)}if(e&&e.isDisposed){e=null}this._source=e;if(this._source){this._source.standby=false;this._source.inspected.connect(this.onInspectorUpdate,this);this._source.disposed.connect(this.onSourceDisposed,this)}}dispose(){if(this.isDisposed){return}this.source=null;super.dispose()}onInspectorUpdate(e,t){const{content:n}=t;if(!n||n===this._content){return}this._content.dispose();this._content=n;n.addClass(p);this.layout.addWidget(n)}onSourceDisposed(e,t){this.source=null}static _generateContentWidget(e){const t=new h.Widget;t.node.innerHTML=e;t.addClass(p);t.addClass(m);return t}}var f=n(94931);class v extends f.DataConnector{constructor(e){super();this._sessionContext=e.sessionContext}fetch(e){var t;const n=(t=this._sessionContext.session)===null||t===void 0?void 0:t.kernel;if(!n){return Promise.reject(new Error("Inspection fetch requires a kernel."))}const i={code:e.text,cursor_pos:e.offset,detail_level:1};return n.requestInspect(i).then((e=>{const t=e.content;if(t.status!=="ok"||!t.found){throw new Error("Inspection fetch failed to return successfully.")}return{data:t.data,metadata:t.metadata}}))}}const _=new o.Token("@jupyterlab/inspector:IInspector",`A service for adding contextual help to widgets (visible using "Show Contextual Help" from the Help menu).\n Use this to hook into the contextual help system in your extension.`)},52638:(e,t,n)=>{"use strict";var i=n(10395);var s=n(97913);var o=n(17325);var r=n(5893);var a=n(85072);var l=n.n(a);var d=n(97825);var c=n.n(d);var h=n(77659);var u=n.n(h);var p=n(55056);var m=n.n(p);var g=n(10540);var f=n.n(g);var v=n(41113);var _=n.n(v);var b=n(96741);var y={};y.styleTagTransform=_();y.setAttributes=m();y.insert=u().bind(null,"head");y.domAPI=c();y.insertStyleElement=f();var w=l()(b.A,y);const C=b.A&&b.A.locals?b.A.locals:undefined},42147:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,{APPLICATION_JAVASCRIPT_MIMETYPE:()=>APPLICATION_JAVASCRIPT_MIMETYPE,ExperimentalRenderedJavascript:()=>ExperimentalRenderedJavascript,TEXT_JAVASCRIPT_MIMETYPE:()=>TEXT_JAVASCRIPT_MIMETYPE,default:()=>__WEBPACK_DEFAULT_EXPORT__,rendererFactory:()=>rendererFactory});var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(44539);var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_0__);const TEXT_JAVASCRIPT_MIMETYPE="text/javascript";const APPLICATION_JAVASCRIPT_MIMETYPE="application/javascript";function evalInContext(code,element,document,window){return eval(code)}class ExperimentalRenderedJavascript extends _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_0__.RenderedJavaScript{render(e){const t=this.translator.load("jupyterlab");const n=()=>{try{const t=e.data[this.mimeType];if(t){evalInContext(t,this.node,document,window)}return Promise.resolve()}catch(t){return Promise.reject(t)}};if(!e.trusted){const e=document.createElement("pre");e.textContent=t.__("Are you sure that you want to run arbitrary Javascript within your JupyterLab session?");const i=document.createElement("button");i.textContent=t.__("Run");this.node.appendChild(e);this.node.appendChild(i);i.onclick=e=>{this.node.textContent="";void n()};return Promise.resolve()}return n()}}const rendererFactory={safe:false,mimeTypes:[TEXT_JAVASCRIPT_MIMETYPE,APPLICATION_JAVASCRIPT_MIMETYPE],createRenderer:e=>new ExperimentalRenderedJavascript(e)};const extension={id:"@jupyterlab/javascript-extension:factory",description:"Adds renderer for JavaScript content.",rendererFactory,rank:0,dataType:"string"};const __WEBPACK_DEFAULT_EXPORT__=extension},53640:(e,t,n)=>{"use strict";var i=n(5893);var s=n(85072);var o=n.n(s);var r=n(97825);var a=n.n(r);var l=n(77659);var d=n.n(l);var c=n(55056);var h=n.n(c);var u=n(10540);var p=n.n(u);var m=n(41113);var g=n.n(m);var f=n(67613);var v={};v.styleTagTransform=g();v.setAttributes=h();v.insert=d().bind(null,"head");v.domAPI=a();v.insertStyleElement=p();var _=o()(f.A,v);const b=f.A&&f.A.locals?f.A.locals:undefined},60885:(e,t,n)=>{"use strict";n.d(t,{Component:()=>C});var i=n(66899);var s=n.n(i);var o=n(30619);var r=n.n(o);var a=n(26331);var l=n.n(a);var d=n(45145);var c=n.n(d);var h=n(5592);var u=n.n(h);var p=n(44914);var m=n.n(p);var g=n(80171);var f=n.n(g);var v=n(64368);var _=n.n(v);var b=n(23546);var y=n.n(b);function w(e){var t;return(t=i.jupyterHighlightStyle.style([e]))!==null&&t!==void 0?t:""}class C extends p.Component{constructor(){super(...arguments);this.state={filter:"",value:""};this.timer=0;this.handleChange=e=>{const{value:t}=e.target;this.setState({value:t});window.clearTimeout(this.timer);this.timer=window.setTimeout((()=>{this.setState({filter:t})}),300)}}componentDidMount(){b.StyleModule.mount(document,i.jupyterHighlightStyle.module)}render(){const e=this.props.translator||o.nullTranslator;const t=e.load("jupyterlab");const{data:n,metadata:i,forwardedRef:s}=this.props;const r=i&&i.root?i.root:"root";const l=this.state.filter?k(n,this.state.filter,[r]):[r];return p.createElement("div",{className:"container",ref:s},p.createElement(a.InputGroup,{className:"filter",type:"text",placeholder:t.__("Find…"),onChange:this.handleChange,value:this.state.value,rightIcon:"ui-components:search"}),p.createElement(v.JSONTree,{data:n,collectionLimit:100,theme:{extend:x,valueLabel:w(d.tags.variableName),valueText:w(d.tags.string),nestedNodeItemString:w(d.tags.comment)},invertTheme:false,keyPath:[r],getItemString:(e,t,n,i)=>Array.isArray(t)?p.createElement("span",null,n," ",i):Object.keys(t).length===0?p.createElement("span",null,n):null,labelRenderer:([e,t])=>p.createElement("span",{className:w(d.tags.keyword)},p.createElement(f(),{searchWords:[this.state.filter],textToHighlight:`${e}`,highlightClassName:"jp-mod-selected"})),valueRenderer:e=>{let t=w(d.tags.string);if(typeof e==="number"){t=w(d.tags.number)}if(e==="true"||e==="false"){t=w(d.tags.keyword)}return p.createElement("span",{className:t},p.createElement(f(),{searchWords:[this.state.filter],textToHighlight:`${e}`,highlightClassName:"jp-mod-selected"}))},shouldExpandNodeInitially:(e,t,n)=>i&&i.expanded?true:l.join(",").includes(e.join(","))}))}}const x={scheme:"jupyter",base00:"invalid",base01:"invalid",base02:"invalid",base03:"invalid",base04:"invalid",base05:"invalid",base06:"invalid",base07:"invalid",base08:"invalid",base09:"invalid",base0A:"invalid",base0B:"invalid",base0C:"invalid",base0D:"invalid",base0E:"invalid",base0F:"invalid",author:"invalid"};function S(e,t){return JSON.stringify(e).includes(t)}function k(e,t,n=["root"]){if(h.JSONExt.isArray(e)){return e.reduce(((e,i,s)=>{if(i&&typeof i==="object"&&S(i,t)){return[...e,[s,...n].join(","),...k(i,t,[s,...n])]}return e}),[])}if(h.JSONExt.isObject(e)){return Object.keys(e).reduce(((i,s)=>{const o=e[s];if(o&&typeof o==="object"&&(s.includes(t)||S(o,t))){return[...i,[s,...n].join(","),...k(o,t,[s,...n])]}return i}),[])}return[]}},94206:(e,t,n)=>{"use strict";n.r(t);n.d(t,{MIME_TYPE:()=>p,MIME_TYPES_JSONL:()=>m,RenderedJSON:()=>g,default:()=>_,rendererFactory:()=>f});var i=n(14366);var s=n.n(i);var o=n(30619);var r=n.n(o);var a=n(1143);var l=n.n(a);var d=n(44914);var c=n.n(d);var h=n(5338);const u="jp-RenderedJSON";const p="application/json";const m=["text/jsonl","application/jsonl","application/json-lines"];class g extends a.Widget{constructor(e){super();this._rootDOM=null;this.addClass(u);this.addClass("CodeMirror");this._mimeType=e.mimeType;this.translator=e.translator||o.nullTranslator}[i.Printing.symbol](){return()=>i.Printing.printWidget(this)}async renderModel(e){const{Component:t}=await Promise.all([n.e(4470),n.e(6331),n.e(5592),n.e(6899),n.e(5145),n.e(3546),n.e(5930)]).then(n.bind(n,60885));let i;if(m.indexOf(this._mimeType)>=0){const t=(e.data[this._mimeType]||"").trim().split(/\n/);i=JSON.parse(`[${t.join(",")}]`)}else{i=e.data[this._mimeType]||{}}const s=e.metadata[this._mimeType]||{};if(this._rootDOM===null){this._rootDOM=(0,h.H)(this.node)}return new Promise(((e,n)=>{this._rootDOM.render(d.createElement(t,{data:i,metadata:s,translator:this.translator,forwardedRef:()=>e()}))}))}onBeforeDetach(e){if(this._rootDOM){this._rootDOM.unmount();this._rootDOM=null}}}const f={safe:true,mimeTypes:[p,...m],createRenderer:e=>new g(e)};const v=[{id:"@jupyterlab/json-extension:factory",description:"Adds renderer for JSON content.",rendererFactory:f,rank:0,dataType:"json",documentWidgetFactoryOptions:{name:"JSON",primaryFileType:"json",fileTypes:["json","notebook","geojson"],defaultFor:["json"]}},{id:"@jupyterlab/json-lines-extension:factory",description:"Adds renderer for JSONLines content.",rendererFactory:f,rank:0,dataType:"string",documentWidgetFactoryOptions:{name:"JSONLines",primaryFileType:"jsonl",fileTypes:["jsonl","ndjson"],defaultFor:["jsonl","ndjson"]}}];const _=v},367:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(23359);var a=n(85072);var l=n.n(a);var d=n(97825);var c=n.n(d);var h=n(77659);var u=n.n(h);var p=n(55056);var m=n.n(p);var g=n(10540);var f=n.n(g);var v=n(41113);var _=n.n(v);var b=n(34176);var y={};y.styleTagTransform=_();y.setAttributes=m();y.insert=u().bind(null,"head");y.domAPI=c();y.insertStyleElement=f();var w=l()(b.A,y);const C=b.A&&b.A.locals?b.A.locals:undefined},960:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>b});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(42875);var l=n.n(a);var d=n(74955);var c=n.n(d);var h=n(30619);var u=n.n(h);var p=n(26331);var m=n.n(p);var g=n(34236);var f=n.n(g);var v;(function(e){e.create="launcher:create"})(v||(v={}));const _={activate:y,id:"@jupyterlab/launcher-extension:plugin",description:"Provides the launcher tab service.",requires:[h.ITranslator],optional:[i.ILabShell,o.ICommandPalette,a.IDefaultFileBrowser],provides:d.ILauncher,autoStart:true};const b=_;function y(e,t,n,i,s){const{commands:r,shell:a}=e;const l=t.load("jupyterlab");const c=new d.LauncherModel;r.addCommand(v.create,{label:l.__("New Launcher"),icon:e=>e.toolbar?p.addIcon:undefined,execute:e=>{var i,h;const u=(h=(i=e["cwd"])!==null&&i!==void 0?i:s===null||s===void 0?void 0:s.model.path)!==null&&h!==void 0?h:"";const m=`launcher-${w.id++}`;const f=e=>{if((0,g.find)(a.widgets("main"),(t=>t===e))){a.add(e,"main",{ref:m});v.dispose()}};const v=new d.Launcher({model:c,cwd:u,callback:f,commands:r,translator:t});v.model=c;v.title.icon=p.launcherIcon;v.title.label=l.__("Launcher");const _=new o.MainAreaWidget({content:v});_.title.closable=!!Array.from(a.widgets("main")).length;_.id=m;a.add(_,"main",{activate:e["activate"],ref:e["ref"]});if(n){n.layoutModified.connect((()=>{_.title.closable=Array.from(n.widgets("main")).length>1}),_)}if(s){const e=e=>{v.cwd=e.path};s.model.pathChanged.connect(e);v.disposed.connect((()=>{s.model.pathChanged.disconnect(e)}))}return _}});if(n){void Promise.all([e.restored,s===null||s===void 0?void 0:s.model.restored]).then((()=>{function e(){if(n.isEmpty("main")){void r.execute(v.create)}}n.layoutModified.connect((()=>{e()}))}))}if(i){i.addItem({command:v.create,category:l.__("Launcher")})}if(n){n.addButtonEnabled=true;n.addRequested.connect(((e,t)=>{var n;const i=((n=t.currentTitle)===null||n===void 0?void 0:n.owner.id)||t.titles[t.titles.length-1].owner.id;return r.execute(v.create,{ref:i})}))}return c}var w;(function(e){e.id=0})(w||(w={}))},68149:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(3579);var a=n(39063);var l=n(75797);var d=n(85072);var c=n.n(d);var h=n(97825);var u=n.n(h);var p=n(77659);var m=n.n(p);var g=n(55056);var f=n.n(g);var v=n(10540);var _=n.n(v);var b=n(41113);var y=n.n(b);var w=n(41782);var C={};C.styleTagTransform=y();C.setAttributes=f();C.insert=m().bind(null,"head");C.domAPI=u();C.insertStyleElement=_();var x=c()(w.A,C);const S=w.A&&w.A.locals?w.A.locals:undefined},70322:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ILauncher:()=>s,Launcher:()=>g,LauncherModel:()=>m});var i=n(5592);const s=new i.Token("@jupyterlab/launcher:ILauncher",`A service for the application activity launcher.\n Use this to add your extension activities to the launcher panel.`);var o=n(14366);var r=n(30619);var a=n(26331);var l=n(34236);var d=n(90044);var c=n(94466);var h=n(1143);var u=n(44914);const p="jp-Launcher";class m extends a.VDomModel{constructor(){super(...arguments);this.itemsList=[]}add(e){const t=v.createItem(e);this.itemsList.push(t);this.stateChanged.emit(void 0);return new d.DisposableDelegate((()=>{l.ArrayExt.removeFirstOf(this.itemsList,t);this.stateChanged.emit(void 0)}))}items(){return this.itemsList[Symbol.iterator]()}}class g extends a.VDomRenderer{constructor(e){super(e.model);this._pending=false;this._cwd="";this._cwd=e.cwd;this.translator=e.translator||r.nullTranslator;this._trans=this.translator.load("jupyterlab");this._callback=e.callback;this._commands=e.commands;this.addClass(p)}get cwd(){return this._cwd}set cwd(e){this._cwd=e;this.update()}get pending(){return this._pending}set pending(e){this._pending=e}render(){if(!this.model){return null}const e=[this._trans.__("Notebook"),this._trans.__("Console"),this._trans.__("Other")];const t=[this._trans.__("Notebook"),this._trans.__("Console")];const n=Object.create(null);for(const r of this.model.items()){const e=r.category||this._trans.__("Other");if(!(e in n)){n[e]=[]}n[e].push(r)}for(const r in n){n[r]=n[r].sort(((e,t)=>v.sortCmp(e,t,this._cwd,this._commands)))}const i=[];let s;const o=[];for(const r of e){o.push(r)}for(const r in n){if(e.indexOf(r)===-1){o.push(r)}}o.forEach((e=>{if(!n[e]){return}const o=n[e][0];const r={...o.args,cwd:this.cwd};const d=t.indexOf(e)>-1;const c=this._commands.iconClass(o.command,r);const h=this._commands.icon(o.command,r);if(e in n){s=u.createElement("div",{className:"jp-Launcher-section",key:e},u.createElement("div",{className:"jp-Launcher-sectionHeader"},u.createElement(a.LabIcon.resolveReact,{icon:h,iconClass:(0,a.classes)(c,"jp-Icon-cover"),stylesheet:"launcherSection","aria-hidden":"true"}),u.createElement("h2",{className:"jp-Launcher-sectionTitle"},e)),u.createElement("div",{className:"jp-Launcher-cardContainer"},Array.from((0,l.map)(n[e],(e=>f(d,e,this,this._commands,this._trans,this._callback))))));i.push(s)}}));return u.createElement("div",{className:"jp-Launcher-body"},u.createElement("div",{className:"jp-Launcher-content"},u.createElement("div",{className:"jp-Launcher-cwd"},u.createElement("h3",null,this.cwd)),i))}}function f(e,t,n,i,s,r){const l=t.command;const d={...t.args,cwd:n.cwd};const c=i.caption(l,d);const p=i.label(l,d);const m=e?p:c||p;const g=()=>{if(n.pending===true){return}n.pending=true;void i.execute(l,{...t.args,cwd:n.cwd}).then((e=>{n.pending=false;if(e instanceof h.Widget){r(e)}})).catch((e=>{console.error(e);n.pending=false;void(0,o.showErrorMessage)(s._p("Error","Launcher Error"),e)}))};const f=e=>{if(e.key==="Enter"){g()}};const _=i.iconClass(l,d);const b=i.icon(l,d);return u.createElement("div",{className:"jp-LauncherCard",title:m,onClick:g,onKeyPress:f,tabIndex:0,"data-category":t.category||s.__("Other"),key:v.keyProperty.get(t)},u.createElement("div",{className:"jp-LauncherCard-icon"},e?t.kernelIconUrl?u.createElement("img",{src:t.kernelIconUrl,className:"jp-Launcher-kernelIcon",alt:m}):u.createElement("div",{className:"jp-LauncherCard-noKernelIcon"},p[0].toUpperCase()):u.createElement(a.LabIcon.resolveReact,{icon:b,iconClass:(0,a.classes)(_,"jp-Icon-cover"),stylesheet:"launcherCard"})),u.createElement("div",{className:"jp-LauncherCard-label",title:m},u.createElement("p",null,p)))}var v;(function(e){let t=0;e.keyProperty=new c.AttachedProperty({name:"key",create:()=>t++});function n(e){return{...e,category:e.category||"",rank:e.rank!==undefined?e.rank:Infinity}}e.createItem=n;function i(e,t,n,i){const s=e.rank;const o=t.rank;if(s!==o&&s!==undefined&&o!==undefined){return s{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(97718);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},62062:(e,t,n)=>{"use strict";n.r(t);n.d(t,{LogLevelSwitcher:()=>C,default:()=>x});var i=n(94307);var s=n(14366);var o=n(93037);var r=n(13105);var a=n(44539);var l=n(84739);var d=n(24735);var c=n(30619);var h=n(26331);var u=n(5592);var p=n(44914);var m=n.n(p);var g=n(2336);function f(e){const t=e.translator||c.nullTranslator;const n=t.load("jupyterlab");let i="";if(e.newMessages>0){i=n.__("%1 new messages, %2 log entries for %3",e.newMessages,e.logEntries,e.source)}else{i+=n.__("%1 log entries for %2",e.logEntries,e.source)}return m().createElement(d.GroupItem,{spacing:0,onClick:e.handleClick,title:i},m().createElement(h.listIcon.react,{top:"2px",stylesheet:"statusBar"}),e.newMessages>0?m().createElement(d.TextItem,{source:e.newMessages}):m().createElement(m().Fragment,null))}class v extends h.VDomRenderer{constructor(e){super(new v.Model(e.loggerRegistry));this.translator=e.translator||c.nullTranslator;this._handleClick=e.handleClick;this.addClass("jp-mod-highlighted");this.addClass("jp-LogConsoleStatusItem")}render(){if(this.model===null||this.model.version===0){return null}const{flashEnabled:e,messages:t,source:n,version:i,versionDisplayed:s,versionNotified:o}=this.model;if(n!==null&&e&&i>o){this._flashHighlight();this.model.sourceNotified(n,i)}else if(n!==null&&e&&i>s){this._showHighlighted()}else{this._clearHighlight()}return m().createElement(f,{handleClick:this._handleClick,logEntries:t,newMessages:i-s,source:this.model.source,translator:this.translator})}_flashHighlight(){this._showHighlighted();this.removeClass("jp-LogConsole-flash");requestAnimationFrame((()=>{this.addClass("jp-LogConsole-flash")}))}_showHighlighted(){this.addClass("jp-mod-selected")}_clearHighlight(){this.removeClass("jp-LogConsole-flash");this.removeClass("jp-mod-selected")}}(function(e){class t extends h.VDomModel{constructor(e){super();this.flashEnabledChanged=new g.Signal(this);this._flashEnabled=true;this._source=null;this._sourceVersion=new Map;this._loggerRegistry=e;this._loggerRegistry.registryChanged.connect(this._handleLogRegistryChange,this);this._handleLogRegistryChange()}get messages(){if(this._source===null){return 0}const e=this._loggerRegistry.getLogger(this._source);return e.length}get version(){if(this._source===null){return 0}const e=this._loggerRegistry.getLogger(this._source);return e.version}get source(){return this._source}set source(e){if(this._source===e){return}this._source=e;this.stateChanged.emit()}get versionDisplayed(){var e,t;if(this._source===null){return 0}return(t=(e=this._sourceVersion.get(this._source))===null||e===void 0?void 0:e.lastDisplayed)!==null&&t!==void 0?t:0}get versionNotified(){var e,t;if(this._source===null){return 0}return(t=(e=this._sourceVersion.get(this._source))===null||e===void 0?void 0:e.lastNotified)!==null&&t!==void 0?t:0}get flashEnabled(){return this._flashEnabled}set flashEnabled(e){if(this._flashEnabled===e){return}this._flashEnabled=e;this.flashEnabledChanged.emit();this.stateChanged.emit()}sourceDisplayed(e,t){if(e===null||t===null){return}const n=this._sourceVersion.get(e);let i=false;if(n.lastDisplayed"logconsole"})}const y=new v({loggerRegistry:g,handleClick:()=>{var t;if(!p){x({insertMode:"split-bottom",ref:(t=e.shell.currentWidget)===null||t===void 0?void 0:t.id})}else{e.shell.activateById(p.id)}},translator:n});const w=()=>{const t=e.shell.currentWidget;if(i===null||i===void 0?void 0:i.currentPath){return i.currentPath}if(t&&t instanceof o.DocumentWidget){return t.context.path}return null};const x=(t={})=>{var i,o;m=new r.LogConsolePanel(g,n);m.source=(o=(i=t.source)!==null&&i!==void 0?i:w())!==null&&o!==void 0?o:null;p=new s.MainAreaWidget({content:m});p.addClass("jp-LogConsole");p.title.closable=true;p.title.icon=h.listIcon;p.title.label=u.__("Log Console");const a=new h.CommandToolbarButton({commands:e.commands,id:b.addCheckpoint});const l=new h.CommandToolbarButton({commands:e.commands,id:b.clear});const d=()=>{e.commands.notifyCommandChanged(b.addCheckpoint);e.commands.notifyCommandChanged(b.clear);e.commands.notifyCommandChanged(b.open);e.commands.notifyCommandChanged(b.setLevel)};p.toolbar.addItem("lab-log-console-add-checkpoint",a);p.toolbar.addItem("lab-log-console-clear",l);p.toolbar.addItem("level",new C(p.content,n));m.sourceChanged.connect((()=>{d()}));m.sourceDisplayed.connect(((e,{source:t,version:n})=>{y.model.sourceDisplayed(t,n)}));p.disposed.connect((()=>{p=null;m=null;d()}));e.shell.add(p,"down",{ref:t.ref,mode:t.insertMode,type:"Log Console"});void f.add(p);e.shell.activateById(p.id);p.update();d()};e.commands.addCommand(b.open,{label:u.__("Show Log Console"),execute:(e={})=>{if(p){p.dispose()}else{x(e)}},isToggled:()=>p!==null});e.commands.addCommand(b.addCheckpoint,{execute:()=>{var e;(e=m===null||m===void 0?void 0:m.logger)===null||e===void 0?void 0:e.checkpoint()},icon:h.addIcon,isEnabled:()=>!!m&&m.source!==null,label:u.__("Add Checkpoint")});e.commands.addCommand(b.clear,{execute:()=>{var e;(e=m===null||m===void 0?void 0:m.logger)===null||e===void 0?void 0:e.clear()},icon:h.clearIcon,isEnabled:()=>!!m&&m.source!==null,label:u.__("Clear Log")});function S(e){return e.length===0?e:e[0].toUpperCase()+e.slice(1)}e.commands.addCommand(b.setLevel,{execute:e=>{if(m===null||m===void 0?void 0:m.logger){m.logger.level=e.level}},isEnabled:()=>!!m&&m.source!==null,label:e=>e["level"]?u.__("Set Log Level to %1",S(e.level)):u.__("Set log level to `level`.")});if(a){a.addItem({command:b.open,category:u.__("Main Area")})}if(c){c.registerStatusItem("@jupyterlab/logconsole-extension:status",{item:y,align:"left",isActive:()=>{var e;return((e=y.model)===null||e===void 0?void 0:e.version)>0},activeStateChanged:y.model.stateChanged})}function k(e){if(m){m.source=e}y.model.source=e}void e.restored.then((()=>{var e;if(i){i.currentPathChanged.connect(((e,{newValue:t})=>k(t)));k((e=i.currentPath)!==null&&e!==void 0?e:null)}else{k(w())}}));if(d){const t=e=>{g.maxLength=e.get("maxLogEntries").composite;y.model.flashEnabled=e.get("flash").composite};Promise.all([d.load(_),e.restored]).then((([e])=>{t(e);e.changed.connect((e=>{t(e)}))})).catch((e=>{console.error(e.message)}))}return g}class C extends h.ReactWidget{constructor(e,t){super();this.handleChange=e=>{if(this._logConsole.logger){this._logConsole.logger.level=e.target.value}this.update()};this.handleKeyDown=e=>{if(e.keyCode===13){this._logConsole.activate()}};this._id=`level-${u.UUID.uuid4()}`;this.translator=t!==null&&t!==void 0?t:c.nullTranslator;this._trans=this.translator.load("jupyterlab");this.addClass("jp-LogConsole-toolbarLogLevel");this._logConsole=e;if(e.source){this.update()}e.sourceChanged.connect(this._updateSource,this)}_updateSource(e,{oldValue:t,newValue:n}){if(t!==null){const n=e.loggerRegistry.getLogger(t);n.stateChanged.disconnect(this.update,this)}if(n!==null){const t=e.loggerRegistry.getLogger(n);t.stateChanged.connect(this.update,this)}this.update()}render(){const e=this._logConsole.logger;return p.createElement(p.Fragment,null,p.createElement("label",{htmlFor:this._id,className:e===null?"jp-LogConsole-toolbarLogLevel-disabled":undefined},this._trans.__("Log Level:")),p.createElement(h.HTMLSelect,{id:this._id,className:"jp-LogConsole-toolbarLogLevelDropdown",onChange:this.handleChange,onKeyDown:this.handleKeyDown,value:e===null||e===void 0?void 0:e.level,"aria-label":this._trans.__("Log level"),disabled:e===null,options:e===null?[]:[[this._trans.__("Critical"),"Critical"],[this._trans.__("Error"),"Error"],[this._trans.__("Warning"),"Warning"],[this._trans.__("Info"),"Info"],[this._trans.__("Debug"),"Debug"]].map((e=>({label:e[0],value:e[1].toLowerCase()})))}))}}const x=y},87456:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(97913);var a=n(5893);var l=n(79010);var d=n(3579);var c=n(69704);var h=n(85072);var u=n.n(h);var p=n(97825);var m=n.n(p);var g=n(77659);var f=n.n(g);var v=n(55056);var _=n.n(v);var b=n(10540);var y=n.n(b);var w=n(41113);var C=n.n(w);var x=n(39817);var S={};S.styleTagTransform=C();S.setAttributes=_();S.insert=f().bind(null,"head");S.domAPI=m();S.insertStyleElement=y();var k=u()(x.A,S);const j=x.A&&x.A.locals?x.A.locals:undefined},42708:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ILoggerRegistry:()=>p,LogConsolePanel:()=>w,LogOutputModel:()=>r,Logger:()=>d,LoggerOutputAreaModel:()=>l,LoggerRegistry:()=>h,ScrollingWidget:()=>y});var i=n(94493);var s=n(44539);var o=n(2336);class r extends s.OutputModel{constructor(e){super(e);this.timestamp=new Date(e.value.timestamp);this.level=e.value.level}}class a extends i.OutputAreaModel.ContentFactory{createOutputModel(e){return new r(e)}}class l extends i.OutputAreaModel{constructor({maxLength:e,...t}){super(t);this.maxLength=e}add(e){super.add(e);this._applyMaxLength();return this.length}shouldCombine(e){const{value:t,lastModel:n}=e;const i=Math.trunc(n.timestamp.getTime()/1e3);const s=Math.trunc(t.timestamp/1e3);return i===s}get(e){return super.get(e)}get maxLength(){return this._maxLength}set maxLength(e){this._maxLength=e;this._applyMaxLength()}_applyMaxLength(){if(this.list.length>this._maxLength){this.list.removeRange(0,this.list.length-this._maxLength)}}}class d{constructor(e){this._isDisposed=false;this._contentChanged=new o.Signal(this);this._stateChanged=new o.Signal(this);this._rendermime=null;this._version=0;this._level="warning";this.source=e.source;this.outputAreaModel=new l({contentFactory:new a,maxLength:e.maxLength})}get maxLength(){return this.outputAreaModel.maxLength}set maxLength(e){this.outputAreaModel.maxLength=e}get level(){return this._level}set level(e){const t=this._level;if(t===e){return}this._level=e;this._log({output:{output_type:"display_data",data:{"text/plain":`Log level set to ${e}`}},level:"metadata"});this._stateChanged.emit({name:"level",oldValue:t,newValue:e})}get length(){return this.outputAreaModel.length}get contentChanged(){return this._contentChanged}get stateChanged(){return this._stateChanged}get rendermime(){return this._rendermime}set rendermime(e){if(e!==this._rendermime){const t=this._rendermime;const n=this._rendermime=e;this._stateChanged.emit({name:"rendermime",oldValue:t,newValue:n})}}get version(){return this._version}log(e){if(c.LogLevel[e.level]"}},level:"metadata"})}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;this.clear();this._rendermime=null;o.Signal.clearData(this)}_log(e){this._version++;this.outputAreaModel.add({...e.output,timestamp:Date.now(),level:e.level});this._contentChanged.emit("append")}}var c;(function(e){let t;(function(e){e[e["debug"]=0]="debug";e[e["info"]=1]="info";e[e["warning"]=2]="warning";e[e["error"]=3]="error";e[e["critical"]=4]="critical";e[e["metadata"]=5]="metadata"})(t=e.LogLevel||(e.LogLevel={}))})(c||(c={}));class h{constructor(e){this._loggers=new Map;this._registryChanged=new o.Signal(this);this._isDisposed=false;this._defaultRendermime=e.defaultRendermime;this._maxLength=e.maxLength}getLogger(e){const t=this._loggers;let n=t.get(e);if(n){return n}n=new d({source:e,maxLength:this.maxLength});n.rendermime=this._defaultRendermime;t.set(e,n);this._registryChanged.emit("append");return n}getLoggers(){return Array.from(this._loggers.values())}get registryChanged(){return this._registryChanged}get maxLength(){return this._maxLength}set maxLength(e){this._maxLength=e;this._loggers.forEach((t=>{t.maxLength=e}))}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;this._loggers.forEach((e=>e.dispose()));o.Signal.clearData(this)}}var u=n(5592);const p=new u.Token("@jupyterlab/logconsole:ILoggerRegistry","A service providing a logger infrastructure.");var m=n(30619);var g=n(1143);function f(e){return e.length===0?e:e[0].toUpperCase()+e.slice(1)}class v extends g.Widget{constructor(){super();this._timestampNode=document.createElement("div");this.node.append(this._timestampNode)}set timestamp(e){this._timestamp=e;this._timestampNode.innerHTML=this._timestamp.toLocaleTimeString();this.update()}set level(e){this._level=e;this.node.dataset.logLevel=e;this.update()}update(){if(this._level!==undefined&&this._timestamp!==undefined){this.node.title=`${this._timestamp.toLocaleString()}; ${f(this._level)} level`}}}class _ extends i.OutputArea{createOutputItem(e){const t=super.createOutputItem(e);if(t===null){return null}const n=t.widgets[0];n.timestamp=e.timestamp;n.level=e.level;return t}onInputRequest(e,t){return}}class b extends i.OutputArea.ContentFactory{createOutputPrompt(){return new v}}class y extends g.Widget{constructor({content:e,...t}){super(t);this._observer=null;this.addClass("jp-Scrolling");const n=this.layout=new g.PanelLayout;n.addWidget(e);this._content=e;this._sentinel=document.createElement("div");this.node.appendChild(this._sentinel)}get content(){return this._content}onAfterAttach(e){super.onAfterAttach(e);requestAnimationFrame((()=>{this._sentinel.scrollIntoView();this._scrollHeight=this.node.scrollHeight}));if(typeof IntersectionObserver!=="undefined"){this._observer=new IntersectionObserver((e=>{this._handleScroll(e)}),{root:this.node,threshold:1});this._observer.observe(this._sentinel)}}onBeforeDetach(e){if(this._observer){this._observer.disconnect()}}onAfterShow(e){if(this._tracking){this._sentinel.scrollIntoView()}}_handleScroll([e]){if(e.isIntersecting){this._tracking=true}else if(this.isVisible){const e=this.node.scrollHeight;if(e===this._scrollHeight){this._tracking=false}else{this._sentinel.scrollIntoView();this._scrollHeight=e;this._tracking=true}}}}class w extends g.StackedPanel{constructor(e,t){super();this._outputAreas=new Map;this._source=null;this._sourceChanged=new o.Signal(this);this._sourceDisplayed=new o.Signal(this);this._loggersWatched=new Set;this.translator=t||m.nullTranslator;this._trans=this.translator.load("jupyterlab");this._loggerRegistry=e;this.addClass("jp-LogConsolePanel");e.registryChanged.connect(((e,t)=>{this._bindLoggerSignals()}),this);this._bindLoggerSignals();this._placeholder=new g.Widget;this._placeholder.addClass("jp-LogConsoleListPlaceholder");this.addWidget(this._placeholder)}get loggerRegistry(){return this._loggerRegistry}get logger(){if(this.source===null){return null}return this.loggerRegistry.getLogger(this.source)}get source(){return this._source}set source(e){if(e===this._source){return}const t=this._source;const n=this._source=e;this._showOutputFromSource(n);this._handlePlaceholder();this._sourceChanged.emit({oldValue:t,newValue:n,name:"source"})}get sourceVersion(){const e=this.source;return e!==null?this._loggerRegistry.getLogger(e).version:null}get sourceChanged(){return this._sourceChanged}get sourceDisplayed(){return this._sourceDisplayed}onAfterAttach(e){super.onAfterAttach(e);this._updateOutputAreas();this._showOutputFromSource(this._source);this._handlePlaceholder()}onAfterShow(e){super.onAfterShow(e);if(this.source!==null){this._sourceDisplayed.emit({source:this.source,version:this.sourceVersion})}}_bindLoggerSignals(){const e=this._loggerRegistry.getLoggers();for(const t of e){if(this._loggersWatched.has(t.source)){continue}t.contentChanged.connect(((e,t)=>{this._updateOutputAreas();this._handlePlaceholder()}),this);t.stateChanged.connect(((e,t)=>{if(t.name!=="rendermime"){return}const n=`source:${e.source}`;const i=this._outputAreas.get(n);if(i){if(t.newValue){i.rendermime=t.newValue}else{i.dispose()}}}),this);this._loggersWatched.add(t.source)}}_showOutputFromSource(e){const t=e===null?"null source":`source:${e}`;this._outputAreas.forEach(((e,n)=>{var i,s;if(e.id===t){(i=e.parent)===null||i===void 0?void 0:i.show();if(e.isVisible){this._sourceDisplayed.emit({source:this.source,version:this.sourceVersion})}}else{(s=e.parent)===null||s===void 0?void 0:s.hide()}}));const n=e===null?this._trans.__("Log Console"):this._trans.__("Log: %1",e);this.title.label=n;this.title.caption=n}_handlePlaceholder(){if(this.source===null){this._placeholder.node.textContent=this._trans.__("No source selected.");this._placeholder.show()}else if(this._loggerRegistry.getLogger(this.source).length===0){this._placeholder.node.textContent=this._trans.__("No log messages.");this._placeholder.show()}else{this._placeholder.hide();this._placeholder.node.textContent=""}}_updateOutputAreas(){const e=new Set;const t=this._loggerRegistry.getLoggers();for(const i of t){const t=i.source;const n=`source:${t}`;e.add(n);if(!this._outputAreas.has(n)){const e=new _({rendermime:i.rendermime,contentFactory:new b,model:i.outputAreaModel});e.id=n;const s=new y({content:e});this.addWidget(s);this._outputAreas.set(n,e);const o=e=>{if(this.source===t&&e.isVisible){this._sourceDisplayed.emit({source:this.source,version:this.sourceVersion})}};e.outputLengthChanged.connect(o,this);o(e)}}const n=this._outputAreas.keys();for(const i of n){if(!e.has(i)){const e=this._outputAreas.get(i);e===null||e===void 0?void 0:e.dispose();this._outputAreas.delete(i)}}}}},69704:(e,t,n)=>{"use strict";var i=n(10395);var s=n(5893);var o=n(1649);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(42769);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},8113:(e,t,n)=>{"use strict";n.r(t);n.d(t,{RunningLanguageServer:()=>j,default:()=>T});var i=n(7243);var s=n(45409);var o=n(84739);var r=n(30619);var a=n(26331);var l=n(2336);var d=n(5592);var c=n(26568);var h=n(44914);var u=n.n(h);var p=n(14366);const m="languageServers";const g="configuration";function f(e){const{[g]:t,...n}=e.schema;const{[g]:i,serverName:s,...o}=e.settings;const[r,a]=(0,h.useState)(s);const l=t=>{e.updateSetting.invoke(e.serverHash,{serverName:t.target.value}).catch(console.error);a(t.target.value)};const m={};Object.entries(i).forEach((([e,t])=>{const n={property:e,type:typeof t,value:t};m[d.UUID.uuid4()]=n}));const[f,_]=(0,h.useState)(m);const b={};Object.entries(n).forEach((([e,t])=>{if(e in o){b[e]=o[e]}else{b[e]=t["default"]}}));const[y,w]=(0,h.useState)(b);const C=(t,n,i)=>{let s=n;if(i==="number"){s=parseFloat(n)}const o={...y,[t]:s};e.updateSetting.invoke(e.serverHash,o).catch(console.error);w(o)};const x=()=>{const t=d.UUID.uuid4();const n={...f,[t]:{property:"",type:"string",value:""}};const i={};Object.values(n).forEach((e=>{i[e.property]=e.value}));e.updateSetting.invoke(e.serverHash,{[g]:i}).catch(console.error);_(n)};const S=t=>{const n={};Object.entries(f).forEach((([i,s])=>{if(i!==t){n[i]=s}const o={};Object.values(n).forEach((e=>{o[e.property]=e.value}));e.updateSetting.invoke(e.serverHash,{[g]:o}).catch(console.error);_(n)}))};const k=(t,n)=>{if(t in f){const i={...f,[t]:n};const s={};Object.values(i).forEach((e=>{s[e.property]=e.value}));_(i);e.updateSetting.invoke(e.serverHash,{[g]:s}).catch(console.error)}};const j=new c.Debouncer(k);const I=(0,h.useRef)(p.DOMUtils.createDomID()+"-line-number-input");return u().createElement("div",{className:"array-item"},u().createElement("div",{className:"form-group "},u().createElement("div",{className:"jp-FormGroup-content"},u().createElement("div",{className:"jp-objectFieldWrapper"},u().createElement("fieldset",null,u().createElement("div",{className:"form-group small-field"},u().createElement("div",{className:"jp-modifiedIndicator jp-errorIndicator"}),u().createElement("div",{className:"jp-FormGroup-content"},u().createElement("label",{htmlFor:I.current,className:"jp-FormGroup-fieldLabel jp-FormGroup-contentItem"},e.trans.__("Server name:")),u().createElement("div",{className:"jp-inputFieldWrapper jp-FormGroup-contentItem"},u().createElement("input",{id:I.current,className:"form-control",type:"text",required:true,value:r,onChange:e=>{l(e)}})),u().createElement("div",{className:"validationErrors"},u().createElement("div",null,u().createElement("ul",{className:"error-detail bs-callout bs-callout-info"},u().createElement("li",{className:"text-danger"},e.trans.__("is a required property"))))))),Object.entries(n).map((([e,t],n)=>u().createElement("div",{key:`${n}-${e}`,className:"form-group small-field"},u().createElement("div",{className:"jp-FormGroup-content"},u().createElement("h3",{className:"jp-FormGroup-fieldLabel jp-FormGroup-contentItem"},t.title),u().createElement("div",{className:"jp-inputFieldWrapper jp-FormGroup-contentItem"},u().createElement("input",{className:"form-control",placeholder:"",type:t.type,value:y[e],onChange:n=>C(e,n.target.value,t.type)})),u().createElement("div",{className:"jp-FormGroup-description"},t.description),u().createElement("div",{className:"validationErrors"}))))),u().createElement("fieldset",null,u().createElement("legend",null,t["title"]),Object.entries(f).map((([e,t])=>u().createElement(v,{key:e,hash:e,property:t,removeProperty:S,setProperty:j}))),u().createElement("span",null,t["description"])))))),u().createElement("div",{className:"jp-ArrayOperations"},u().createElement("button",{className:"jp-mod-styled jp-mod-reject",onClick:x},e.trans.__("Add property")),u().createElement("button",{className:"jp-mod-styled jp-mod-warn jp-FormGroup-removeButton",onClick:()=>e.removeSetting(e.serverHash)},e.trans.__("Remove server"))))}function v(e){const[t,n]=(0,h.useState)({...e.property});const i={string:"text",number:"number",boolean:"checkbox"};const s=()=>{e.removeProperty(e.hash)};const o=i=>{const s={...t,property:i};e.setProperty.invoke(e.hash,s).catch(console.error);n(s)};const r=(i,s)=>{let o=i;if(s==="number"){o=parseFloat(i)}const r={...t,value:o};e.setProperty.invoke(e.hash,r).catch(console.error);n(r)};const l=i=>{let s;if(i==="boolean"){s=false}else if(i==="number"){s=0}else{s=""}const o={...t,type:i,value:s};n(o);e.setProperty.invoke(e.hash,o).catch(console.error)};return u().createElement("div",{key:e.hash,className:"form-group small-field"},u().createElement("div",{className:"jp-FormGroup-content jp-LSPExtension-FormGroup-content"},u().createElement("input",{className:"form-control",type:"text",required:true,placeholder:"Property name",value:t.property,onChange:e=>{o(e.target.value)}}),u().createElement("select",{className:"form-control",value:t.type,onChange:e=>l(e.target.value)},u().createElement("option",{value:"string"},"String"),u().createElement("option",{value:"number"},"Number"),u().createElement("option",{value:"boolean"},"Boolean")),u().createElement("input",{className:"form-control",type:i[t.type],required:false,placeholder:"Property value",value:t.type!=="boolean"?t.value:undefined,checked:t.type==="boolean"?t.value:undefined,onChange:t.type!=="boolean"?e=>r(e.target.value,t.type):e=>r(e.target.checked,t.type)}),u().createElement("button",{className:"jp-mod-minimal jp-Button",onClick:s},u().createElement(a.closeIcon.react,null))))}class _ extends u().Component{constructor(e){super(e);this.removeSetting=e=>{if(e in this.state.items){const t={};for(const n in this.state.items){if(n!==e){t[n]=this.state.items[n]}}this.setState((e=>({...e,items:t})),(()=>{this.saveServerSetting()}))}};this.updateSetting=(e,t)=>{if(e in this.state.items){const n={};for(const i in this.state.items){if(i===e){n[i]={...this.state.items[i],...t}}else{n[i]=this.state.items[i]}}this.setState((e=>({...e,items:n})),(()=>{this.saveServerSetting()}))}};this.addServerSetting=()=>{let e=0;let t="newKey";while(Object.values(this.state.items).map((e=>e.serverName)).includes(t)){e+=1;t=`newKey-${e}`}this.setState((e=>({...e,items:{...e.items,[d.UUID.uuid4()]:{...this._defaultSetting,serverName:t}}})),(()=>{this.saveServerSetting()}))};this.saveServerSetting=()=>{const e={};Object.values(this.state.items).forEach((t=>{const{serverName:n,...i}=t;e[n]=i}));this._setting.set(m,e).catch(console.error)};this._setting=e.formContext.settings;this._trans=e.translator.load("jupyterlab");const t=this._setting.schema["definitions"];this._defaultSetting=t["languageServer"]["default"];this._schema=t["languageServer"]["properties"];const n=e.schema.title;const i=e.schema.description;const s=e.formContext.settings;const o=s.get(m).composite;let r={};if(o){Object.entries(o).forEach((([e,t])=>{if(t){const n=d.UUID.uuid4();r[n]={serverName:e,...t}}}))}this.state={title:n,desc:i,items:r};this._debouncedUpdateSetting=new c.Debouncer(this.updateSetting.bind(this))}render(){return u().createElement("div",null,u().createElement("fieldset",null,u().createElement("legend",null,this.state.title),u().createElement("p",{className:"field-description"},this.state.desc),u().createElement("div",{className:"field field-array field-array-of-object"},Object.entries(this.state.items).map((([e,t],n)=>u().createElement(f,{key:`${n}-${e}`,trans:this._trans,removeSetting:this.removeSetting,updateSetting:this._debouncedUpdateSetting,serverHash:e,settings:t,schema:this._schema})))),u().createElement("div",null,u().createElement("button",{style:{margin:2},className:"jp-mod-styled jp-mod-reject",onClick:this.addServerSetting},this._trans.__("Add server")))))}}function b(e,t){return u().createElement(_,{...e,translator:t})}const y={activate:S,id:"@jupyterlab/lsp-extension:plugin",description:"Provides the language server connection manager.",requires:[r.ITranslator,i.IWidgetLSPAdapterTracker],optional:[s.IRunningSessionManagers],provides:i.ILSPDocumentConnectionManager,autoStart:true};const w={id:"@jupyterlab/lsp-extension:feature",description:"Provides the language server feature manager.",activate:()=>new i.FeatureManager,provides:i.ILSPFeatureManager,autoStart:true};const C={activate:k,id:"@jupyterlab/lsp-extension:settings",description:"Provides the language server settings.",requires:[i.ILSPDocumentConnectionManager,o.ISettingRegistry,r.ITranslator],optional:[a.IFormRendererRegistry],autoStart:true};const x={id:"@jupyterlab/lsp-extension:code-extractor-manager",autoStart:true,description:"Provides the code extractor manager.",provides:i.ILSPCodeExtractorsManager,activate:e=>{const t=new i.CodeExtractorsManager;const n=new i.TextForeignCodeExtractor({language:"markdown",isStandalone:false,file_extension:"md",cellType:["markdown"]});t.register(n,null);const s=new i.TextForeignCodeExtractor({language:"text",isStandalone:false,file_extension:"txt",cellType:["raw"]});t.register(s,null);return t}};function S(e,t,n,s){const o=new i.LanguageServerManager({settings:e.serviceManager.serverSettings});const r=new i.DocumentConnectionManager({languageServerManager:o,adapterTracker:n});if(s){I(s,r,t)}return r}function k(e,t,n,i,s){const o="languageServers";const r=t.languageServerManager;const a=e=>{const n=e.composite;const i=n.languageServers||{};if(n.activate==="on"&&!r.isEnabled){r.enable().catch(console.error)}else if(n.activate==="off"&&r.isEnabled){r.disable();return}t.initialConfigurations=i;t.updateConfiguration(i);t.updateServerConfigurations(i);t.updateLogging(n.logAllCommunication,n.setTrace)};n.transform(y.id,{fetch:e=>{const t=e.schema.properties;const n={};r.sessions.forEach(((e,t)=>{n[t]={rank:50,configuration:{}}}));t[o]["default"]=n;return e},compose:e=>{const t=e.schema.properties;const n=e.data.user;const i=t[o]["default"];const s=n[o];let r={...i};if(s){r={...r,...s}}const a={[o]:r};Object.entries(t).forEach((([e,t])=>{if(e!==o){if(e in n){a[e]=n[e]}else{a[e]=t.default}}}));e.data.composite=a;return e}});r.sessionsChanged.connect((async()=>{await n.load(y.id,true)}));n.load(y.id).then((e=>{a(e);e.changed.connect((()=>{a(e)}));r.disable()})).catch((e=>{console.error(e.message)}));if(s){const e={fieldRenderer:e=>b(e,i)};s.addRenderer(`${y.id}.${o}`,e)}}class j{constructor(e,t){this._connection=new WeakSet([e]);this._manager=t;this._serverIdentifier=e.serverIdentifier;this._serverLanguage=e.serverLanguage}open(){}icon(){return a.pythonIcon}label(){var e,t;return`${(e=this._serverIdentifier)!==null&&e!==void 0?e:""} (${(t=this._serverLanguage)!==null&&t!==void 0?t:""})`}shutdown(){for(const[e,t]of this._manager.connections.entries()){if(this._connection.has(t)){const{uri:t}=this._manager.documents.get(e);this._manager.unregisterDocument(t)}}this._manager.disconnect(this._serverIdentifier)}}function I(e,t,n){const i=n.load("jupyterlab");const s=new l.Signal(t);t.connected.connect((()=>s.emit(t)));t.disconnected.connect((()=>s.emit(t)));t.closed.connect((()=>s.emit(t)));t.documentsChanged.connect((()=>s.emit(t)));let o=[];e.add({name:i.__("Language servers"),supportsMultipleViews:false,running:()=>{const e=new Set([...t.connections.values()]);o=[...e].map((e=>new j(e,t)));return o},shutdownAll:()=>{o.forEach((e=>{e.shutdown()}))},refreshRunning:()=>void 0,runningChanged:s,shutdownLabel:i.__("Shut Down"),shutdownAllLabel:i.__("Shut Down All"),shutdownAllConfirmationText:i.__("Are you sure you want to permanently shut down all running language servers?")})}const E={id:"@jupyterlab/lsp-extension:tracker",description:"Provides the tracker of `WidgetLSPAdapter`.",autoStart:true,provides:i.IWidgetLSPAdapterTracker,activate:e=>new i.WidgetLSPAdapterTracker({shell:e.shell})};const T=[y,w,C,x,E]},4380:(e,t,n)=>{"use strict";var i=n(40662);var s=n(97913);var o=n(3579);var r=n(13137);var a=n(94780);var l=n(85072);var d=n.n(l);var c=n(97825);var h=n.n(c);var u=n(77659);var p=n.n(u);var m=n(55056);var g=n.n(m);var f=n(10540);var v=n.n(f);var _=n(41113);var b=n.n(_);var y=n(37347);var w={};w.styleTagTransform=b();w.setAttributes=g();w.insert=p().bind(null,"head");w.domAPI=h();w.insertStyleElement=v();var C=d()(y.A,w);const x=y.A&&y.A.locals?y.A.locals:undefined},15771:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CodeExtractorsManager:()=>F,DefaultMap:()=>j,DocumentConnectionManager:()=>O,EditorAdapter:()=>l,FeatureManager:()=>q,ILSPCodeExtractorsManager:()=>b,ILSPDocumentConnectionManager:()=>v,ILSPFeatureManager:()=>_,ILanguageServerManager:()=>f,IWidgetLSPAdapterTracker:()=>y,LanguageServerManager:()=>K,Method:()=>w,ProtocolCoordinates:()=>V,TextForeignCodeExtractor:()=>U,UpdateManager:()=>Q,VirtualDocument:()=>Y,VirtualDocumentInfo:()=>G,WidgetLSPAdapter:()=>h,WidgetLSPAdapterTracker:()=>p,collectDocuments:()=>X,expandDottedPaths:()=>S,expandPath:()=>k,isEqual:()=>z,isWithinRange:()=>J,offsetAtPosition:()=>W,positionAtOffset:()=>H,sleep:()=>C,untilReady:()=>x});var i=n(8394);var s=n.n(i);var o=n(14366);var r=n(30619);var a=n(2336);class l{constructor(e){this._widgetAdapter=e.widgetAdapter;this._extensions=e.extensions;void e.editor.ready().then((t=>{this._injectExtensions(e.editor)}))}dispose(){if(this.isDisposed){return}this.isDisposed=true;a.Signal.clearData(this)}_injectExtensions(e){const t=e.getEditor();if(!t||t.isDisposed){return}this._extensions.forEach((n=>{const i=n.factory({path:this._widgetAdapter.widget.context.path,editor:e,widgetAdapter:this._widgetAdapter,model:t.model,inline:true});if(!i){return}t.injectExtension(i.instance(t))}))}}const d=o.Dialog.createButton;const c={"text/x-rsrc":"r","text/x-r-source":"r","text/x-ipython":"python"};class h{constructor(e,t){this.widget=e;this.options=t;this._adapterConnected=new a.Signal(this);this._activeEditorChanged=new a.Signal(this);this._editorAdded=new a.Signal(this);this._editorRemoved=new a.Signal(this);this._disposed=new a.Signal(this);this._isDisposed=false;this._virtualDocument=null;this._connectionManager=t.connectionManager;this._isConnected=false;this._trans=(t.translator||r.nullTranslator).load("jupyterlab");this.widget.context.saveState.connect(this.onSaveState,this);this.connectionManager.closed.connect(this.onConnectionClosed,this);this.widget.disposed.connect(this.dispose,this);this._editorToAdapter=new WeakMap;this.editorAdded.connect(this._onEditorAdded,this);this.editorRemoved.connect(this._onEditorRemoved,this);this._connectionManager.languageServerManager.sessionsChanged.connect(this._onLspSessionOrFeatureChanged,this);this.options.featureManager.featureRegistered.connect(this._onLspSessionOrFeatureChanged,this)}get isDisposed(){return this._isDisposed}get hasMultipleEditors(){return this.editors.length>1}get widgetId(){return this.widget.id}get language(){if(c.hasOwnProperty(this.mimeType)){return c[this.mimeType]}else{let e=this.mimeType.split(";")[0];let[t,n]=e.split("/");if(t==="application"||t==="text"){if(n.startsWith("x-")){return n.substring(2)}else{return n}}else{return this.mimeType}}}get adapterConnected(){return this._adapterConnected}get activeEditorChanged(){return this._activeEditorChanged}get disposed(){return this._disposed}get editorAdded(){return this._editorAdded}get editorRemoved(){return this._editorRemoved}get isConnected(){return this._isConnected}get connectionManager(){return this._connectionManager}get trans(){return this._trans}get updateFinished(){return this._updateFinished}get virtualDocument(){return this._virtualDocument}onConnectionClosed(e,{virtualDocument:t}){if(t===this.virtualDocument){this.dispose()}}dispose(){if(this._isDisposed){return}this.editorAdded.disconnect(this._onEditorAdded,this);this.editorRemoved.disconnect(this._onEditorRemoved,this);this._connectionManager.languageServerManager.sessionsChanged.disconnect(this._onLspSessionOrFeatureChanged,this);this.options.featureManager.featureRegistered.disconnect(this._onLspSessionOrFeatureChanged,this);this._isDisposed=true;this.disconnect();this._virtualDocument=null;this._disposed.emit();a.Signal.clearData(this)}disconnect(){var e,t;const n=(e=this.virtualDocument)===null||e===void 0?void 0:e.uri;const{model:i}=this.widget.context;if(n){this.connectionManager.unregisterDocument(n)}i.contentChanged.disconnect(this._onContentChanged,this);for(let{ceEditor:s}of this.editors){this._editorRemoved.emit({editor:s})}(t=this.virtualDocument)===null||t===void 0?void 0:t.dispose()}updateDocuments(){if(this._isDisposed){console.warn("Cannot update documents: adapter disposed");return Promise.reject("Cannot update documents: adapter disposed")}return this.virtualDocument.updateManager.updateDocuments(this.editors)}documentChanged(e,t,n=false){if(this._isDisposed){console.warn("Cannot swap document: adapter disposed");return}let i=this.connectionManager.connections.get(e.uri);if(!(i===null||i===void 0?void 0:i.isReady)){console.log("Skipping document update signal: connection not ready");return}i.sendFullTextChange(e.value,e.documentInfo)}reloadConnection(){if(this.virtualDocument===null){return}this.disconnect();this.initVirtual();this.connectDocument(this.virtualDocument,true).catch(console.warn)}onSaveState(e,t){if(this.virtualDocument===null){return}if(t==="completed"){const e=[this.virtualDocument];for(let t of e){let n=this.connectionManager.connections.get(t.uri);if(!n){continue}n.sendSaved(t.documentInfo);for(let i of t.foreignDocuments.values()){e.push(i)}}}}async onConnected(e){let{virtualDocument:t}=e;this._adapterConnected.emit(e);this._isConnected=true;try{await this.updateDocuments()}catch(n){console.warn("Could not update documents",n);return}this.documentChanged(t,t,true);e.connection.serverNotifications["$/logTrace"].connect(((n,i)=>{console.log(e.connection.serverIdentifier,"trace",t.uri,i)}));e.connection.serverNotifications["window/logMessage"].connect(((e,t)=>{console.log(e.serverIdentifier+": "+t.message)}));e.connection.serverNotifications["window/showMessage"].connect(((e,t)=>{void(0,o.showDialog)({title:this.trans.__("Message from ")+e.serverIdentifier,body:t.message})}));e.connection.serverRequests["window/showMessageRequest"].setHandler((async t=>{const n=t.actions;const i=n?n.map((e=>d({label:e.title}))):[d({label:this.trans.__("Dismiss")})];const s=await(0,o.showDialog)({title:this.trans.__("Message from ")+e.connection.serverIdentifier,body:t.message,buttons:i});const r=i.indexOf(s.button);if(r===-1){return null}if(n){return n[r]}return null}))}async connectDocument(e,t=false){e.foreignDocumentOpened.connect(this.onForeignDocumentOpened,this);const n=await this._connect(e).catch(console.error);if(n&&n.connection){e.changed.connect(this.documentChanged,this);if(t){n.connection.sendOpenWhenReady(e.documentInfo)}}}initVirtual(){var e;(e=this._virtualDocument)===null||e===void 0?void 0:e.dispose();this._virtualDocument=this.createVirtualDocument();this._onLspSessionOrFeatureChanged()}async onForeignDocumentOpened(e,t){const{foreignDocument:n}=t;await this.connectDocument(n,true);n.foreignDocumentClosed.connect(this._onForeignDocumentClosed,this)}_onEditorAdded(e,t){const{editor:n}=t;const i=new l({editor:n,widgetAdapter:this,extensions:this.options.featureManager.extensionFactories()});this._editorToAdapter.set(n,i)}_onEditorRemoved(e,t){const{editor:n}=t;const i=this._editorToAdapter.get(n);i===null||i===void 0?void 0:i.dispose();this._editorToAdapter.delete(n)}_onForeignDocumentClosed(e,t){const{foreignDocument:n}=t;n.foreignDocumentClosed.disconnect(this._onForeignDocumentClosed,this);n.foreignDocumentOpened.disconnect(this.onForeignDocumentOpened,this);n.changed.disconnect(this.documentChanged,this)}async _connect(e){let t=e.language;let n={textDocument:{synchronization:{dynamicRegistration:true,willSave:false,didSave:true,willSaveWaitUntil:false}},workspace:{didChangeConfiguration:{dynamicRegistration:true}}};n=s()(n,this.options.featureManager.clientCapabilities());let i={capabilities:n,virtualDocument:e,language:t,hasLspSupportedFile:e.hasLspSupportedFile};let o=await this.connectionManager.connect(i);if(o){await this.onConnected({virtualDocument:e,connection:o});return{connection:o,virtualDocument:e}}else{return undefined}}async _onContentChanged(e){const t=this.updateDocuments();if(!t){console.warn("Could not update documents");return}this._updateFinished=t.catch(console.warn);await this.updateFinished}_shouldUpdateVirtualDocument(){const{languageServerManager:e}=this.connectionManager;return e.isEnabled&&this.options.featureManager.features.length>0}_onLspSessionOrFeatureChanged(){if(!this._virtualDocument){return}const{model:e}=this.widget.context;if(this._shouldUpdateVirtualDocument()){e.contentChanged.connect(this._onContentChanged,this)}else{e.contentChanged.disconnect(this._onContentChanged,this)}}}var u=n(93037);class p{constructor(e){this._isDisposed=false;this._current=null;this._adapters=new Set;this._adapterAdded=new a.Signal(this);this._adapterUpdated=new a.Signal(this);this._currentChanged=new a.Signal(this);const t=this._shell=e.shell;t.currentChanged.connect(((e,t)=>{let n=t.newValue;if(!n||!(n instanceof u.DocumentWidget)){return}const i=this.find((e=>e.widget===n));if(!i){return}this._current=i;this._currentChanged.emit(i)}))}get currentChanged(){return this._currentChanged}get currentAdapter(){return this._current}get size(){return this._adapters.size}get adapterAdded(){return this._adapterAdded}get adapterUpdated(){return this._adapterUpdated}add(e){if(e.isDisposed){const t="A disposed object cannot be added.";console.warn(t,e);throw new Error(t)}if(this._adapters.has(e)){const t="This object already exists in the pool.";console.warn(t,e);throw new Error(t)}this._adapters.add(e);this._adapterAdded.emit(e);e.disposed.connect((()=>{this._adapters.delete(e);if(e===this._current){this._current=null;this._currentChanged.emit(this._current)}}),this);const t=this._shell.activeWidget;if(!t||!(t instanceof u.DocumentWidget)){this._current=e;this._currentChanged.emit(e)}}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;this._adapters.clear();a.Signal.clearData(this)}find(e){const t=this._adapters.values();for(const n of t){if(e(n)){return n}}return undefined}forEach(e){this._adapters.forEach(e)}filter(e){const t=[];this.forEach((n=>{if(e(n)){t.push(n)}}));return t}has(e){return this._adapters.has(e)}}var m=n(30397);var g=n(5592);var f;(function(e){e.URL_NS="lsp"})(f||(f={}));const v=new g.Token("@jupyterlab/lsp:ILSPDocumentConnectionManager","Provides the virtual documents and language server connections service.");const _=new g.Token("@jupyterlab/lsp:ILSPFeatureManager","Provides the language server feature manager. This token is required to register new client capabilities.");const b=new g.Token("@jupyterlab/lsp:ILSPCodeExtractorsManager","Provides the code extractor manager. This token is required in your extension to register code extractor allowing the creation of multiple virtual document from an opened document.");const y=new g.Token("@jupyterlab/lsp:IWidgetLSPAdapterTracker","Provides the WidgetLSPAdapter tracker. This token is required in your extension to track WidgetLSPAdapters.");var w;(function(e){let t;(function(e){e["PUBLISH_DIAGNOSTICS"]="textDocument/publishDiagnostics";e["SHOW_MESSAGE"]="window/showMessage";e["LOG_TRACE"]="$/logTrace";e["LOG_MESSAGE"]="window/logMessage"})(t=e.ServerNotification||(e.ServerNotification={}));let n;(function(e){e["DID_CHANGE"]="textDocument/didChange";e["DID_CHANGE_CONFIGURATION"]="workspace/didChangeConfiguration";e["DID_OPEN"]="textDocument/didOpen";e["DID_SAVE"]="textDocument/didSave";e["INITIALIZED"]="initialized";e["SET_TRACE"]="$/setTrace"})(n=e.ClientNotification||(e.ClientNotification={}));let i;(function(e){e["REGISTER_CAPABILITY"]="client/registerCapability";e["SHOW_MESSAGE_REQUEST"]="window/showMessageRequest";e["UNREGISTER_CAPABILITY"]="client/unregisterCapability";e["WORKSPACE_CONFIGURATION"]="workspace/configuration"})(i=e.ServerRequest||(e.ServerRequest={}));let s;(function(e){e["CODE_ACTION"]="textDocument/codeAction";e["COMPLETION"]="textDocument/completion";e["COMPLETION_ITEM_RESOLVE"]="completionItem/resolve";e["DEFINITION"]="textDocument/definition";e["DOCUMENT_COLOR"]="textDocument/documentColor";e["DOCUMENT_HIGHLIGHT"]="textDocument/documentHighlight";e["DOCUMENT_SYMBOL"]="textDocument/documentSymbol";e["HOVER"]="textDocument/hover";e["IMPLEMENTATION"]="textDocument/implementation";e["INITIALIZE"]="initialize";e["REFERENCES"]="textDocument/references";e["RENAME"]="textDocument/rename";e["SIGNATURE_HELP"]="textDocument/signatureHelp";e["TYPE_DEFINITION"]="textDocument/typeDefinition";e["LINKED_EDITING_RANGE"]="textDocument/linkedEditingRange";e["INLINE_VALUE"]="textDocument/inlineValue";e["INLAY_HINT"]="textDocument/inlayHint";e["WORKSPACE_SYMBOL"]="workspace/symbol";e["WORKSPACE_SYMBOL_RESOLVE"]="workspaceSymbol/resolve";e["FORMATTING"]="textDocument/formatting";e["RANGE_FORMATTING"]="textDocument/rangeFormatting"})(s=e.ClientRequest||(e.ClientRequest={}))})(w||(w={}));async function C(e){return new Promise((t=>{setTimeout((()=>{t()}),e)}))}function x(e,t=35,n=50,i=e=>e){return(async()=>{let s=0;while(e()!==true){s+=1;if(t!==-1&&s>t){throw Error("Too many retrials")}n=i(n);await C(n)}return e})()}function S(e){const t=[];for(let n in e){const i=k(n.split("."),e[n]);t.push(i)}return s()({},...t)}const k=(e,t)=>{const n=Object.create(null);let i=n;e.forEach(((n,s)=>{i[n]=Object.create(null);if(s===e.length-1){i[n]=t}else{i=i[n]}}));return n};class j extends Map{constructor(e,t){super(t);this.defaultFactory=e}get(e){return this.getOrCreate(e)}getOrCreate(e,...t){if(this.has(e)){return super.get(e)}else{let n=this.defaultFactory(e,...t);this.set(e,n);return n}}}function I(e,t){const n=JSON.parse(JSON.stringify(e));const{method:i,registerOptions:s}=t;const o=i.substring(13)+"Provider";if(o){if(!s){n[o]=true}else{n[o]=JSON.parse(JSON.stringify(s))}}else{console.warn("Could not register server capability.",t);return null}return n}function E(e,t){const n=JSON.parse(JSON.stringify(e));const{method:i}=t;const s=i.substring(13)+"Provider";delete n[s];return n}var T=n(96092);class M{constructor(e){this.openedUris=new Map;this._isConnected=false;this._isInitialized=false;this._disposables=[];this._disposed=new a.Signal(this);this._isDisposed=false;this._rootUri=e.rootUri}get isConnected(){return this._isConnected}get isInitialized(){return this._isInitialized}get isReady(){return this._isConnected&&this._isInitialized}get disposed(){return this._disposed}get isDisposed(){return this._isDisposed}connect(e){this.socket=e;(0,T.listen)({webSocket:this.socket,logger:new T.ConsoleLogger,onConnection:e=>{e.listen();this._isConnected=true;this.connection=e;this.sendInitialize();const t=this.connection.onRequest("client/registerCapability",(e=>{e.registrations.forEach((e=>{try{this.serverCapabilities=I(this.serverCapabilities,e)}catch(t){console.error(t)}}))}));this._disposables.push(t);const n=this.connection.onRequest("client/unregisterCapability",(e=>{e.unregisterations.forEach((e=>{this.serverCapabilities=E(this.serverCapabilities,e)}))}));this._disposables.push(n);const i=this.connection.onClose((()=>{this._isConnected=false}));this._disposables.push(i)}})}close(){if(this.connection){this.connection.dispose()}this.openedUris.clear();this.socket.close()}sendInitialize(){if(!this._isConnected){return}this.openedUris.clear();const e=this.initializeParams();this.connection.sendRequest("initialize",e).then((e=>{this.onServerInitialized(e)}),(e=>{console.warn("LSP websocket connection initialization failure",e)}))}sendOpen(e){const t={textDocument:{uri:e.uri,languageId:e.languageId,text:e.text,version:e.version}};this.connection.sendNotification("textDocument/didOpen",t).catch(console.error);this.openedUris.set(e.uri,true);this.sendChange(e)}sendChange(e){if(!this.isReady){return}if(!this.openedUris.get(e.uri)){this.sendOpen(e);return}const t={textDocument:{uri:e.uri,version:e.version},contentChanges:[{text:e.text}]};this.connection.sendNotification("textDocument/didChange",t).catch(console.error);e.version++}sendSaved(e){if(!this.isReady){return}const t={textDocument:{uri:e.uri,version:e.version},text:e.text};this.connection.sendNotification("textDocument/didSave",t).catch(console.error)}sendConfigurationChange(e){if(!this.isReady){return}this.connection.sendNotification("workspace/didChangeConfiguration",e).catch(console.error)}dispose(){if(this._isDisposed){return}this._isDisposed=true;this._disposables.forEach((e=>{e.dispose()}));this._disposed.emit();a.Signal.clearData(this)}onServerInitialized(e){this._isInitialized=true;this.serverCapabilities=e.capabilities;this.connection.sendNotification("initialized",{}).catch(console.error);this.connection.sendNotification("workspace/didChangeConfiguration",{settings:{}}).catch(console.error)}initializeParams(){return{capabilities:{},processId:null,rootUri:this._rootUri,workspaceFolders:null}}}class D{constructor(e,t,n){this.connection=e;this.method=t;this.emitter=n}request(e){this.emitter.log(R.clientRequested,{method:this.method,message:e});return this.connection.sendRequest(this.method,e).then((t=>{this.emitter.log(R.resultForClient,{method:this.method,message:e});return t}))}}class A{constructor(e,t,n){this.connection=e;this.method=t;this.emitter=n;this.connection.onRequest(t,this._handle.bind(this));this._handler=null}setHandler(e){this._handler=e}clearHandler(){this._handler=null}_handle(e){this.emitter.log(R.serverRequested,{method:this.method,message:e});if(!this._handler){return new Promise((()=>undefined))}return this._handler(e,this.emitter).then((e=>{this.emitter.log(R.responseForServer,{method:this.method,message:e});return e}))}}const P={TEXT_DOCUMENT_SYNC:"textDocumentSync",COMPLETION:"completionProvider",HOVER:"hoverProvider",SIGNATURE_HELP:"signatureHelpProvider",DECLARATION:"declarationProvider",DEFINITION:"definitionProvider",TYPE_DEFINITION:"typeDefinitionProvider",IMPLEMENTATION:"implementationProvider",REFERENCES:"referencesProvider",DOCUMENT_HIGHLIGHT:"documentHighlightProvider",DOCUMENT_SYMBOL:"documentSymbolProvider",CODE_ACTION:"codeActionProvider",CODE_LENS:"codeLensProvider",DOCUMENT_LINK:"documentLinkProvider",COLOR:"colorProvider",DOCUMENT_FORMATTING:"documentFormattingProvider",DOCUMENT_RANGE_FORMATTING:"documentRangeFormattingProvider",DOCUMENT_ON_TYPE_FORMATTING:"documentOnTypeFormattingProvider",RENAME:"renameProvider",FOLDING_RANGE:"foldingRangeProvider",EXECUTE_COMMAND:"executeCommandProvider",SELECTION_RANGE:"selectionRangeProvider",WORKSPACE_SYMBOL:"workspaceSymbolProvider",WORKSPACE:"workspace"};function L(e,t){const n={};for(let i of Object.values(e)){n[i]=t(i)}return n}var R;(function(e){e[e["clientNotifiedServer"]=0]="clientNotifiedServer";e[e["serverNotifiedClient"]=1]="serverNotifiedClient";e[e["serverRequested"]=2]="serverRequested";e[e["clientRequested"]=3]="clientRequested";e[e["resultForClient"]=4]="resultForClient";e[e["responseForServer"]=5]="responseForServer"})(R||(R={}));class N extends M{constructor(e){super(e);this._closingManually=false;this._closeSignal=new a.Signal(this);this._errorSignal=new a.Signal(this);this._serverInitialized=new a.Signal(this);this._options=e;this.logAllCommunication=false;this.serverIdentifier=e.serverIdentifier;this.serverLanguage=e.languageId;this.documentsToOpen=[];this.clientNotifications=this.constructNotificationHandlers(w.ClientNotification);this.serverNotifications=this.constructNotificationHandlers(w.ServerNotification)}get closeSignal(){return this._closeSignal}get errorSignal(){return this._errorSignal}get serverInitialized(){return this._serverInitialized}dispose(){if(this.isDisposed){return}if(this.serverRequests){Object.values(this.serverRequests).forEach((e=>e.clearHandler()))}this.close();super.dispose()}log(e,t){if(this.logAllCommunication){console.log(e,t)}}sendOpenWhenReady(e){if(this.isReady){this.sendOpen(e)}else{this.documentsToOpen.push(e)}}sendSelectiveChange(e,t){this._sendChange([e],t)}sendFullTextChange(e,t){this._sendChange([{text:e}],t)}provides(e){return!!(this.serverCapabilities&&this.serverCapabilities[e])}close(){try{this._closingManually=true;super.close()}catch(e){this._closingManually=false}}connect(e){super.connect(e);x((()=>this.isConnected),-1).then((()=>{const e=this.connection.onClose((()=>{this._isConnected=false;this._closeSignal.emit(this._closingManually)}));this._disposables.push(e)})).catch((()=>{console.error("Could not connect onClose signal")}))}async getCompletionResolve(e){if(!this.isReady){return}return this.connection.sendRequest("completionItem/resolve",e)}constructNotificationHandlers(e){const t=()=>new a.Signal(this);return L(e,t)}constructClientRequestHandler(e){return L(e,(e=>new D(this.connection,e,this)))}constructServerRequestHandler(e){return L(e,(e=>new A(this.connection,e,this)))}initializeParams(){return{...super.initializeParams(),capabilities:this._options.capabilities,initializationOptions:null,processId:null,workspaceFolders:null}}onServerInitialized(e){this.afterInitialized();super.onServerInitialized(e);while(this.documentsToOpen.length){this.sendOpen(this.documentsToOpen.pop())}this._serverInitialized.emit(this.serverCapabilities)}afterInitialized(){const e=this.connection.onError((e=>this._errorSignal.emit(e)));this._disposables.push(e);for(const t of Object.values(w.ServerNotification)){const e=this.serverNotifications[t];const n=this.connection.onNotification(t,(n=>{this.log(R.serverNotifiedClient,{method:t,message:n});e.emit(n)}));this._disposables.push(n)}for(const t of Object.values(w.ClientNotification)){const e=this.clientNotifications[t];e.connect(((e,n)=>{this.log(R.clientNotifiedServer,{method:t,message:n});this.connection.sendNotification(t,n).catch(console.error)}))}this.clientRequests=this.constructClientRequestHandler(w.ClientRequest);this.serverRequests=this.constructServerRequestHandler(w.ServerRequest);this.serverRequests["client/registerCapability"].setHandler((async e=>{e.registrations.forEach((e=>{try{const t=I(this.serverCapabilities,e);if(t===null){console.error(`Failed to register server capability: ${e}`);return}this.serverCapabilities=t}catch(t){console.error(t)}}))}));this.serverRequests["client/unregisterCapability"].setHandler((async e=>{e.unregisterations.forEach((e=>{this.serverCapabilities=E(this.serverCapabilities,e)}))}));this.serverRequests["workspace/configuration"].setHandler((async e=>e.items.map((e=>null))))}_sendChange(e,t){if(!this.isReady){return}if(t.uri.length===0){return}if(!this.openedUris.get(t.uri)){this.sendOpen(t)}const n={textDocument:{uri:t.uri,version:t.version},contentChanges:e};this.connection.sendNotification("textDocument/didChange",n).catch(console.error);t.version++}}class O{constructor(e){this.onNewConnection=e=>{const t=(t,n)=>{console.error(n);let i=n.length&&n.length>=1?n[0]:new Error;if(i.message.indexOf("code = 1005")!==-1){console.error(`Connection failed for ${e}`);this._forEachDocumentOfConnection(e,(t=>{console.error("disconnecting "+t.uri);this._closed.emit({connection:e,virtualDocument:t});this._ignoredLanguages.add(t.language);console.error(`Cancelling further attempts to connect ${t.uri} and other documents for this language (no support from the server)`)}))}else if(i.message.indexOf("code = 1006")!==-1){console.error("Connection closed by the server")}else{console.error("Connection error:",n)}};e.errorSignal.connect(t);const n=()=>{this._forEachDocumentOfConnection(e,(t=>{this._initialized.emit({connection:e,virtualDocument:t})}));this.updateServerConfigurations(this.initialConfigurations)};e.serverInitialized.connect(n);const i=(t,n)=>{if(!n){console.error("Connection unexpectedly disconnected")}else{console.log("Connection closed");this._forEachDocumentOfConnection(e,(t=>{this._closed.emit({connection:e,virtualDocument:t})}))}};e.closeSignal.connect(i)};this._initialized=new a.Signal(this);this._connected=new a.Signal(this);this._disconnected=new a.Signal(this);this._closed=new a.Signal(this);this._documentsChanged=new a.Signal(this);this.connections=new Map;this.documents=new Map;this.adapters=new Map;this._ignoredLanguages=new Set;this.languageServerManager=e.languageServerManager;B.setLanguageServerManager(e.languageServerManager);e.adapterTracker.adapterAdded.connect(((e,t)=>{const n=t.widget.context.path;this.registerAdapter(n,t)}))}get initialized(){return this._initialized}get connected(){return this._connected}get disconnected(){return this._disconnected}get closed(){return this._closed}get documentsChanged(){return this._documentsChanged}get ready(){return B.getLanguageServerManager().ready}connectDocumentSignals(e){e.foreignDocumentOpened.connect(this.onForeignDocumentOpened,this);e.foreignDocumentClosed.connect(this.onForeignDocumentClosed,this);this.documents.set(e.uri,e);this._documentsChanged.emit(this.documents)}disconnectDocumentSignals(e,t=true){e.foreignDocumentOpened.disconnect(this.onForeignDocumentOpened,this);e.foreignDocumentClosed.disconnect(this.onForeignDocumentClosed,this);this.documents.delete(e.uri);for(const n of e.foreignDocuments.values()){this.disconnectDocumentSignals(n,false)}if(t){this._documentsChanged.emit(this.documents)}}onForeignDocumentOpened(e,t){}onForeignDocumentClosed(e,t){const{foreignDocument:n}=t;this.unregisterDocument(n.uri,false);this.disconnectDocumentSignals(n)}registerAdapter(e,t){this.adapters.set(e,t);t.widget.context.pathChanged.connect(((n,i)=>{this.adapters.delete(e);this.adapters.set(i,t)}));t.disposed.connect((()=>{if(t.virtualDocument){this.documents.delete(t.virtualDocument.uri)}this.adapters.delete(e)}))}updateConfiguration(e){this.languageServerManager.setConfiguration(e)}updateServerConfigurations(e){let t;for(t in e){if(!e.hasOwnProperty(t)){continue}const n=e[t];const i=S(n.configuration||{});const s={settings:i};B.updateServerConfiguration(t,s)}}async retryToConnect(e,t,n=-1){let{virtualDocument:i}=e;if(this._ignoredLanguages.has(i.language)){return}let s=t*1e3;let o=false;while(n!==0&&!o){await this.connect(e).then((()=>{o=true})).catch((e=>{console.warn(e)}));console.log("will attempt to re-connect in "+s/1e3+" seconds");await C(s);s=s<5*1e3?s+500:s}}disconnect(e){B.disconnect(e)}async connect(e,t=30,n=5){let i=await this._connectSocket(e);let{virtualDocument:s}=e;if(!i){return}if(!i.isReady){try{await x((()=>i.isReady),Math.round(t*1e3/150),150)}catch(o){console.log(`Connection to ${s.uri} timed out after ${t} seconds, will continue retrying for another ${n} minutes`);try{await x((()=>i.isReady),60*n,1e3)}catch(r){console.log(`Connection to ${s.uri} timed out again after ${n} minutes, giving up`);return}}}this._connected.emit({connection:i,virtualDocument:s});return i}unregisterDocument(e,t=true){const n=this.connections.get(e);if(n){this.connections.delete(e);const i=new Set(this.connections.values());if(!i.has(n)){this.disconnect(n.serverIdentifier);n.dispose()}if(t){this._documentsChanged.emit(this.documents)}}}updateLogging(e,t){for(const n of this.connections.values()){n.logAllCommunication=e;if(t!==null){n.clientNotifications["$/setTrace"].emit({value:t})}}}async _connectSocket(e){let{language:t,capabilities:n,virtualDocument:i}=e;this.connectDocumentSignals(i);const s=O.solveUris(i,t);const o=this.languageServerManager.getMatchingServers({language:t});const r=o.length===0?null:o[0];if(!s){return}const a=await B.connection(t,r,s,this.onNewConnection,n);this.connections.set(i.uri,a);return a}_forEachDocumentOfConnection(e,t){for(const[n,i]of this.connections.entries()){if(e!==i){continue}t(this.documents.get(n))}}}(function(e){function t(e,t){var n;const i=B.getLanguageServerManager();const s=i.settings.wsUrl;const o=m.PageConfig.getOption("rootUri");const r=m.PageConfig.getOption("virtualDocumentsUri");const a={language:t};const l=i.getMatchingServers(a);const d=l.length===0?null:l[0];if(d===null){return}const c=i.getMatchingSpecs(a);const h=c.get(d);if(!h){console.warn(`Specification not available for server ${d}`)}const u=(n=h===null||h===void 0?void 0:h.requires_documents_on_disk)!==null&&n!==void 0?n:true;const p=!u;const g=e.hasLspSupportedFile||p?o:r;let f=m.URLExt.join(g,e.uri);if(!f.startsWith("file:///")&&f.startsWith("file://")){f=f.replace("file://","file:///");if(f.startsWith("file:///users/")&&g.startsWith("file:///Users/")){f=f.replace("file:///users/","file:///Users/")}}return{base:g,document:f,server:m.URLExt.join("ws://jupyter-lsp",t),socket:m.URLExt.join(s,"lsp","ws",d)}}e.solveUris=t})(O||(O={}));var B;(function(e){const t=new Map;let n;function i(){return n}e.getLanguageServerManager=i;function s(e){n=e}e.setLanguageServerManager=s;function o(e){const n=t.get(e);if(n){n.close();t.delete(e)}}e.disconnect=o;async function r(n,i,s,o,r){let a=t.get(i);if(!a){const{settings:a}=e.getLanguageServerManager();const l=new a.WebSocket(s.socket);const d=new N({languageId:n,serverUri:s.server,rootUri:s.base,serverIdentifier:i,capabilities:r});t.set(i,d);d.connect(l);o(d)}a=t.get(i);return a}e.connection=r;function a(e,n){const i=t.get(e);if(i){i.sendConfigurationChange(n)}}e.updateServerConfiguration=a})(B||(B={}));class F{constructor(){this._extractorMap=new Map;this._extractorMapAnyLanguage=new Map}getExtractors(e,t){var n,i;if(t){const i=this._extractorMap.get(e);if(!i){return[]}return(n=i.get(t))!==null&&n!==void 0?n:[]}else{return(i=this._extractorMapAnyLanguage.get(e))!==null&&i!==void 0?i:[]}}register(e,t){const n=e.cellType;if(t){n.forEach((n=>{if(!this._extractorMap.has(n)){this._extractorMap.set(n,new Map)}const i=this._extractorMap.get(n);const s=i.get(t);if(!s){i.set(t,[e])}else{s.push(e)}}))}else{n.forEach((t=>{if(!this._extractorMapAnyLanguage.has(t)){this._extractorMapAnyLanguage.set(t,[])}this._extractorMapAnyLanguage.get(t).push(e)}))}}}function z(e,t){return t&&e.line===t.line&&e.ch===t.ch}function H(e,t){let n=0;let i=0;for(let s of t){if(s.length+1<=e){e-=s.length+1;n+=1}else{i=e;break}}return{line:n,column:i}}function W(e,t,n=false){let i=n?0:1;let s=0;for(let o=0;oo){s+=n.length+i}else{s+=e.column;break}}return s}var V;(function(e){function t(e,t){const{line:n,character:i}=e;return n>=t.start.line&&n<=t.end.line&&(n!=t.start.line||i>t.start.character)&&(n!=t.end.line||i<=t.end.character)}e.isWithinRange=t})(V||(V={}));class U{constructor(e){this.language=e.language;this.standalone=e.isStandalone;this.fileExtension=e.file_extension;this.cellType=e.cellType}hasForeignCode(e,t){return this.cellType.includes(t)}extractForeignCode(e){let t=e.split("\n");let n=new Array;let i=e;let s=H(0,t);let o=H(i.length,t);n.push({hostCode:"",foreignCode:i,range:{start:s,end:o},virtualShift:null});return n}}class q{constructor(){this.features=[];this._featureRegistered=new a.Signal(this)}get featureRegistered(){return this._featureRegistered}register(e){if(this.features.some((t=>t.id===e.id))){console.warn(`Feature with id ${e.id} is already registered, skipping.`)}else{this.features.push(e);this._featureRegistered.emit(e)}}clientCapabilities(){let e={};for(const t of this.features){if(!t.capabilities){continue}e=s()(e,t.capabilities)}return e}extensionFactories(){const e=[];for(const t of this.features){if(!t.extensionFactory){continue}e.push(t.extensionFactory)}return e}}var $=n(28548);class K{constructor(e){this._sessions=new Map;this._specs=new Map;this._warningsEmitted=new Set;this._ready=new g.PromiseDelegate;this._sessionsChanged=new a.Signal(this);this._isDisposed=false;this._enabled=true;this._settings=e.settings||$.ServerConnection.makeSettings();this._baseUrl=e.baseUrl||m.PageConfig.getBaseUrl();this._retries=e.retries||2;this._retriesInterval=e.retriesInterval||1e4;this._statusCode=-1;this._configuration={};this.fetchSessions().catch((e=>console.log(e)))}get isEnabled(){return this._enabled}get isDisposed(){return this._isDisposed}get settings(){return this._settings}get specs(){return this._specs}get statusUrl(){return m.URLExt.join(this._baseUrl,f.URL_NS,"status")}get sessionsChanged(){return this._sessionsChanged}get sessions(){return this._sessions}get ready(){return this._ready.promise}get statusCode(){return this._statusCode}async enable(){this._enabled=true;await this.fetchSessions()}disable(){this._enabled=false;this._sessions=new Map;this._sessionsChanged.emit(void 0)}dispose(){if(this._isDisposed){return}this._isDisposed=true;a.Signal.clearData(this)}setConfiguration(e){this._configuration=e}getMatchingServers(e){if(!e.language){console.error("Cannot match server by language: language not available; ensure that kernel and specs provide language and MIME type");return[]}const t=[];for(const[n,i]of this._sessions.entries()){if(this.isMatchingSpec(e,i.spec)){t.push(n)}}return t.sort(this.compareRanks.bind(this))}getMatchingSpecs(e){const t=new Map;for(const[n,i]of this._specs.entries()){if(this.isMatchingSpec(e,i)){t.set(n,i)}}return t}async fetchSessions(){if(!this._enabled){return}let e=await $.ServerConnection.makeRequest(this.statusUrl,{method:"GET"},this._settings);this._statusCode=e.status;if(!e.ok){if(this._retries>0){this._retries-=1;setTimeout(this.fetchSessions.bind(this),this._retriesInterval)}else{this._ready.resolve(undefined);console.log("Missing jupyter_lsp server extension, skipping.")}return}let t;try{const n=await e.json();t=n.sessions;try{this.version=n.version;this._specs=new Map(Object.entries(n.specs))}catch(i){console.warn(i)}}catch(i){console.warn(i);this._ready.resolve(undefined);return}for(let s of Object.keys(t)){let e=s;if(this._sessions.has(e)){Object.assign(this._sessions.get(e)||{},t[s])}else{this._sessions.set(e,t[s])}}const n=this._sessions.keys();for(const s in n){if(!t[s]){let e=s;this._sessions.delete(e)}}this._sessionsChanged.emit(void 0);this._ready.resolve(undefined)}isMatchingSpec(e,t){const n=e.language.toLocaleLowerCase();return t.languages.some((e=>e.toLocaleLowerCase()==n))}warnOnce(e){if(!this._warningsEmitted.has(e)){this._warningsEmitted.add(e);console.warn(e)}}compareRanks(e,t){var n,i,s,o;const r=50;const a=(i=(n=this._configuration[e])===null||n===void 0?void 0:n.rank)!==null&&i!==void 0?i:r;const l=(o=(s=this._configuration[t])===null||s===void 0?void 0:s.rank)!==null&&o!==void 0?o:r;if(a==l){this.warnOnce(`Two matching servers: ${e} and ${t} have the same rank; choose which one to use by changing the rank in Advanced Settings Editor`);return e.localeCompare(t)}return l-a}}function J(e,t){if(t.start.line===t.end.line){return e.line===t.start.line&&e.column>=t.start.column&&e.column<=t.end.column}return e.line===t.start.line&&e.column>=t.start.column&&e.linet.start.line&&e.column<=t.end.column&&e.line===t.end.line||e.line>t.start.line&&e.linenew Array));this._remainingLifetime=6;this.documentInfo=new G(this);this.updateManager=new Q(this);this.updateManager.updateBegan.connect(this._updateBeganSlot,this);this.updateManager.blockAdded.connect(this._blockAddedSlot,this);this.updateManager.updateFinished.connect(this._updateFinishedSlot,this);this.clear()}static ceToCm(e){return{line:e.line,ch:e.column}}get isDisposed(){return this._isDisposed}get foreignDocumentClosed(){return this._foreignDocumentClosed}get foreignDocumentOpened(){return this._foreignDocumentOpened}get changed(){return this._changed}get virtualId(){return this.standalone?this.instanceId+"("+this.language+")":this.language}get ancestry(){if(!this.parent){return[this]}return this.parent.ancestry.concat([this])}get idPath(){if(!this.parent){return this.virtualId}return this.parent.idPath+"-"+this.virtualId}get uri(){const e=encodeURI(this.path);if(!this.parent){return e}return e+"."+this.idPath+"."+this.fileExtension}get value(){let e="\n".repeat(this.blankLinesBetweenCells);return this.lineBlocks.join(e)}get lastLine(){const e=this.lineBlocks[this.lineBlocks.length-1].split("\n");return e[e.length-1]}get root(){return this.parent?this.parent.root:this}dispose(){if(this._isDisposed){return}this._isDisposed=true;this.parent=null;this.closeAllForeignDocuments();this.updateManager.dispose();this.foreignDocuments.clear();this.sourceLines.clear();this.unusedStandaloneDocuments.clear();this.virtualLines.clear();this.documentInfo=null;this.lineBlocks=null;a.Signal.clearData(this)}clear(){this.unusedStandaloneDocuments.clear();for(let e of this.foreignDocuments.values()){e.clear();if(e.standalone){let t=this.unusedStandaloneDocuments.get(e.language);t.push(e)}}this.virtualLines.clear();this.sourceLines.clear();this.lastVirtualLine=0;this.lastSourceLine=0;this.lineBlocks=[]}documentAtSourcePosition(e){let t=this.sourceLines.get(e.line);if(!t){return this}let n={line:t.editorLine,column:e.ch};for(let[i,{virtualDocument:s}]of t.foreignDocumentsMap){if(J(n,i)){let e={line:n.line-i.start.line,ch:n.column-i.start.column};return s.documentAtSourcePosition(e)}}return this}isWithinForeign(e){let t=this.sourceLines.get(e.line);let n={line:t.editorLine,column:e.ch};for(let[i]of t.foreignDocumentsMap){if(J(n,i)){return true}}return false}transformFromEditorToRoot(e,t){if(!this._editorToSourceLine.has(e)){console.log("Editor not found in _editorToSourceLine map");return null}let n=this._editorToSourceLine.get(e);return{...t,line:t.line+n}}virtualPositionAtDocument(e){let t=this.sourceLines.get(e.line);if(t==null){throw new Error("Source line not mapped to virtual position")}let n=t.virtualLine;let i={line:t.editorLine,column:e.ch};for(let[s,o]of t.foreignDocumentsMap){const{virtualLine:e,virtualDocument:t}=o;if(J(i,s)){let n={line:i.line-s.start.line,ch:i.column-s.start.column};if(t.isWithinForeign(n)){return this.virtualPositionAtDocument(n)}else{n.line+=e;return n}}}return{ch:e.ch,line:n}}appendCodeBlock(e,t={line:0,column:0},n){let i=e.value;let s=e.ceEditor;if(this.isDisposed){console.warn("Cannot append code block: document disposed");return}let o=i.split("\n");let{lines:r,foreignDocumentsMap:a}=this.prepareCodeBlock(e,t);for(let l=0;l!e.has(t))));for(let s of i.values()){s.remainingLifetime-=1;if(s.remainingLifetime<=0){s.dispose();const e=t.get(s);for(const t of e){this.foreignDocuments.delete(t)}}}}transformSourceToEditor(e){let t=this.sourceLines.get(e.line);let n=t.editorLine;let i=t.editorShift;return{ch:e.ch+(n===0?i.column:0),line:n+i.line}}transformVirtualToEditor(e){let t=this.transformVirtualToSource(e);if(t==null){return null}return this.transformSourceToEditor(t)}transformVirtualToSource(e){const t=this.virtualLines.get(e.line).sourceLine;if(t==null){return null}return{ch:e.ch,line:t}}transformVirtualToRoot(e){var t;const n=(t=this.virtualLines.get(e.line))===null||t===void 0?void 0:t.editor;const i=this.transformVirtualToEditor(e);if(!n||!i){return null}return this.root.transformFromEditorToRoot(n,i)}getEditorAtVirtualLine(e){let t=e.line;if(!this.virtualLines.has(t)){t-=1}return this.virtualLines.get(t).editor}getEditorAtSourceLine(e){return this.sourceLines.get(e.line).editor}maybeEmitChanged(){if(this.value!==this.previousValue){this._changed.emit(this)}this.previousValue=this.value;for(let e of this.foreignDocuments.values()){e.maybeEmitChanged()}}get remainingLifetime(){if(!this.parent){return Infinity}return this._remainingLifetime}set remainingLifetime(e){if(this.parent){this._remainingLifetime=e}}_chooseForeignDocument(e){let t;let n=this.foreignDocuments.has(e.language);if(!e.standalone&&n){t=this.foreignDocuments.get(e.language)}else{let n=this.unusedStandaloneDocuments.get(e.language);if(e.standalone&&n.length>0){t=n.pop()}else{t=this.openForeign(e.language,e.standalone,e.fileExtension)}}return t}openForeign(e,t,n){let i=new this.constructor({...this.options,parent:this,standalone:t,fileExtension:n,language:e});const s={foreignDocument:i,parentHost:this};this._foreignDocumentOpened.emit(s);i.foreignDocumentClosed.connect(this.forwardClosedSignal,this);i.foreignDocumentOpened.connect(this.forwardOpenedSignal,this);this.foreignDocuments.set(i.virtualId,i);return i}forwardClosedSignal(e,t){this._foreignDocumentClosed.emit(t)}forwardOpenedSignal(e,t){this._foreignDocumentOpened.emit(t)}_updateBeganSlot(){this._editorToSourceLineNew=new Map}_blockAddedSlot(e,t){this._editorToSourceLineNew.set(t.block.ceEditor,t.virtualDocument.lastSourceLine)}_updateFinishedSlot(){this._editorToSourceLine=this._editorToSourceLineNew}}Y.instancesCount=0;function X(e){let t=new Set;t.add(e);for(let n of e.foreignDocuments.values()){let e=X(n);e.forEach(t.add,t)}return t}class Q{constructor(e){this.virtualDocument=e;this._isDisposed=false;this._updateDone=new Promise((e=>{e()}));this._isUpdateInProgress=false;this._updateLock=false;this._blockAdded=new a.Signal(this);this._documentUpdated=new a.Signal(this);this._updateBegan=new a.Signal(this);this._updateFinished=new a.Signal(this);this.documentUpdated.connect(this._onUpdated,this)}get updateDone(){return this._updateDone}get isDisposed(){return this._isDisposed}get blockAdded(){return this._blockAdded}get documentUpdated(){return this._documentUpdated}get updateBegan(){return this._updateBegan}get updateFinished(){return this._updateFinished}dispose(){if(this._isDisposed){return}this._isDisposed=true;this.documentUpdated.disconnect(this._onUpdated);a.Signal.clearData(this)}async withUpdateLock(e){await x((()=>this._canUpdate()),12,10).then((()=>{try{this._updateLock=true;e()}finally{this._updateLock=false}}))}async updateDocuments(e){let t=new Promise(((t,n)=>{x((()=>this._canUpdate()),10,5).then((()=>{if(this.isDisposed||!this.virtualDocument){t()}try{this._isUpdateInProgress=true;this._updateBegan.emit(e);this.virtualDocument.clear();for(let t of e){this._blockAdded.emit({block:t,virtualDocument:this.virtualDocument});this.virtualDocument.appendCodeBlock(t)}this._updateFinished.emit(e);if(this.virtualDocument){this._documentUpdated.emit(this.virtualDocument);this.virtualDocument.maybeEmitChanged()}t()}catch(i){console.warn("Documents update failed:",i);n(i)}finally{this._isUpdateInProgress=false}})).catch(console.error)}));this._updateDone=t;return t}_onUpdated(e,t){try{t.closeExpiredDocuments()}catch(n){console.warn("Failed to close expired documents")}}_canUpdate(){return!this.isDisposed&&!this._isUpdateInProgress&&!this._updateLock}}},13137:(e,t,n)=>{"use strict";var i=n(10395);var s=n(97913);var o=n(17325);var r=n(23359);var a=n(79010)},72825:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CommandIDs:()=>w,default:()=>M});var i=n(94307);var s=n(14366);var o=n(30397);var r=n(23899);var a=n(28548);var l=n(84739);var d=n(30619);var c=n(26331);var h=n(34236);var u=n(5592);var p=n(1143);var m=n(43801);var g=n(42875);const f="@jupyterlab/mainmenu-extension:recents";var v;(function(e){e.openRecent="recentmenu:open-recent";e.reopenLast="recentmenu:reopen-last";e.clearRecents="docmanager:clear-recents"})(v||(v={}));class _ extends p.Menu{constructor(e){super(e);this._manager=e.manager;this._showDirectories=e.showDirectories;this.updateItems();this._manager.changed.connect(this.updateItems,this)}async _validateRecentlyOpened(){return void Promise.all(this._manager.recentlyOpened.map((e=>this._manager.validate(e))))}onBeforeAttach(e){const t=new u.PromiseDelegate;setTimeout((()=>{t.reject("Recents validation timed out.")}),550);Promise.race([t.promise,this._validateRecentlyOpened()]).then((()=>{this.update()})).catch((()=>{}));super.onBeforeAttach(e)}updateItems(){this.clearItems();this.addItem({command:v.reopenLast});this.addItem({type:"separator"});let e=true;let t=false;this._manager.recentlyOpened.sort(((e,t)=>{if(e.contentType===t.contentType){return 0}else{return e.contentType!=="directory"?1:-1}})).forEach((n=>{const i=n.contentType==="directory";if(i){if(!this._showDirectories){return}t=true}else if(e&&t){e=false;this.addItem({type:"separator"})}this.addItem({command:v.openRecent,args:{recent:n}})}));this.addItem({type:"separator"});this.addItem({command:v.clearRecents})}}const b={id:f,description:"Adds sub-menu for opening recent documents to the File section of the main menu.",autoStart:true,requires:[m.IRecentsManager,r.IMainMenu],optional:[g.IFileBrowserCommands,d.ITranslator],activate:(e,t,n,i,r)=>{const{commands:a}=e;const l=(r!==null&&r!==void 0?r:d.nullTranslator).load("jupyterlab");const c=i!==null;const h=async e=>{const n=await t.validate(e);if(!n){await(0,s.showErrorMessage)(l.__("Could Not Open Recent"),l.__("%1 is no longer valid and will be removed from the list",e.path))}return n};a.addCommand(v.openRecent,{execute:async e=>{const t=e.recent;const n=t.path===""?"/":t.path;const s=await h(t);if(!s){return}if(i&&t.contentType==="directory"){await a.execute(i.openPath,{path:n})}else{await a.execute("docmanager:open",{path:n,factory:t.factory})}},label:e=>{const t=e.recent;if(t){return o.PathExt.joinWithLeadingSlash(t.root,t.path)}else{return l.__("Open a Recent Document (given by `recent` argument)")}},isEnabled:e=>t.recentlyOpened.includes(e.recent)});e.commands.addCommand(v.reopenLast,{execute:async()=>{const e=t.recentlyClosed[0];if(!e){return}const n=await h(e);if(!n){return}await a.execute("docmanager:open",{path:e.path,factory:e.factory});t.removeRecent(e,"closed")},label:()=>{const e=t.recentlyClosed[0];return e?l.__("Reopen %1",e.path):l.__("Reopen Closed Document")},isEnabled:()=>t.recentlyClosed.length!==0,caption:l.__("Reopen recently closed file or notebook.")});const u=new _({commands:a,manager:t,showDirectories:c});u.title.label=l.__("Open Recent");n.fileMenu.addItem({type:"submenu",submenu:u,rank:1})}};const y="@jupyterlab/mainmenu-extension:plugin";var w;(function(e){e.openEdit="editmenu:open";e.undo="editmenu:undo";e.redo="editmenu:redo";e.clearCurrent="editmenu:clear-current";e.clearAll="editmenu:clear-all";e.find="editmenu:find";e.goToLine="editmenu:go-to-line";e.openFile="filemenu:open";e.closeAndCleanup="filemenu:close-and-cleanup";e.createConsole="filemenu:create-console";e.shutdown="filemenu:shutdown";e.logout="filemenu:logout";e.openKernel="kernelmenu:open";e.interruptKernel="kernelmenu:interrupt";e.reconnectToKernel="kernelmenu:reconnect-to-kernel";e.restartKernel="kernelmenu:restart";e.restartKernelAndClear="kernelmenu:restart-and-clear";e.changeKernel="kernelmenu:change";e.shutdownKernel="kernelmenu:shutdown";e.shutdownAllKernels="kernelmenu:shutdownAll";e.openView="viewmenu:open";e.wordWrap="viewmenu:word-wrap";e.lineNumbering="viewmenu:line-numbering";e.matchBrackets="viewmenu:match-brackets";e.openRun="runmenu:open";e.run="runmenu:run";e.runAll="runmenu:run-all";e.restartAndRunAll="runmenu:restart-and-run-all";e.runAbove="runmenu:run-above";e.runBelow="runmenu:run-below";e.openTabs="tabsmenu:open";e.activateById="tabsmenu:activate-by-id";e.activatePreviouslyUsedTab="tabsmenu:activate-previously-used-tab";e.openSettings="settingsmenu:open";e.openHelp="helpmenu:open";e.getKernel="helpmenu:get-kernel";e.openFirst="mainmenu:open-first"})(w||(w={}));const C={id:y,description:"Adds and provides the application main menu.",requires:[i.IRouter,d.ITranslator],optional:[s.ICommandPalette,i.ILabShell,l.ISettingRegistry],provides:r.IMainMenu,activate:async(e,t,n,i,s,a)=>{const{commands:l}=e;const d=n.load("jupyterlab");const c=new r.MainMenu(l);c.id="jp-MainMenu";c.addClass("jp-scrollbar-tiny");if(a){await D.loadSettingsMenu(a,(e=>{c.addMenu(e,false,{rank:e.rank})}),(e=>r.MainMenu.generateMenu(l,e,d)),n);c.update()}const h=o.PageConfig.getOption("quitButton").toLowerCase();c.fileMenu.quitEntry=h==="true";x(e,c.editMenu,d);S(e,c.fileMenu,t,d);k(e,c.kernelMenu,d);I(e,c.runMenu,d);j(e,c.viewMenu,d);T(e,c.helpMenu,d);if(s){E(e,c.tabsMenu,s,d)}const u=e=>{c.activeMenu=e;c.openActiveMenu()};l.addCommand(w.openEdit,{label:d.__("Open Edit Menu"),execute:()=>u(c.editMenu)});l.addCommand(w.openFile,{label:d.__("Open File Menu"),execute:()=>u(c.fileMenu)});l.addCommand(w.openKernel,{label:d.__("Open Kernel Menu"),execute:()=>u(c.kernelMenu)});l.addCommand(w.openRun,{label:d.__("Open Run Menu"),execute:()=>u(c.runMenu)});l.addCommand(w.openView,{label:d.__("Open View Menu"),execute:()=>u(c.viewMenu)});l.addCommand(w.openSettings,{label:d.__("Open Settings Menu"),execute:()=>u(c.settingsMenu)});l.addCommand(w.openTabs,{label:d.__("Open Tabs Menu"),execute:()=>u(c.tabsMenu)});l.addCommand(w.openHelp,{label:d.__("Open Help Menu"),execute:()=>u(c.helpMenu)});l.addCommand(w.openFirst,{label:d.__("Open First Menu"),execute:()=>{c.activeIndex=0;c.openActiveMenu()}});if(i){i.addItem({command:w.shutdown,category:d.__("Main Area")});i.addItem({command:w.logout,category:d.__("Main Area")});i.addItem({command:w.shutdownAllKernels,category:d.__("Kernel Operations")});i.addItem({command:w.activatePreviouslyUsedTab,category:d.__("Main Area")})}e.shell.add(c,"menu",{rank:100});return c}};function x(e,t,n){const{commands:s,shell:o}=e;(0,i.addSemanticCommand)({id:w.undo,commands:s,shell:o,semanticCommands:t.undoers.undo,default:{label:n.__("Undo")},trans:n});(0,i.addSemanticCommand)({id:w.redo,commands:s,shell:o,semanticCommands:t.undoers.redo,default:{label:n.__("Redo")},trans:n});(0,i.addSemanticCommand)({id:w.clearCurrent,commands:s,shell:o,semanticCommands:t.clearers.clearCurrent,default:{label:n.__("Clear")},trans:n});(0,i.addSemanticCommand)({id:w.clearAll,commands:s,shell:o,semanticCommands:t.clearers.clearAll,default:{label:n.__("Clear All")},trans:n});(0,i.addSemanticCommand)({id:w.goToLine,commands:s,shell:o,semanticCommands:t.goToLiners,default:{label:n.__("Go to Line…")},trans:n})}function S(e,t,n,r){const{commands:l,shell:d}=e;(0,i.addSemanticCommand)({id:w.closeAndCleanup,commands:l,shell:d,semanticCommands:t.closeAndCleaners,default:{execute:"application:close",label:r.__("Close and Shut Down"),isEnabled:true},overrides:{isEnabled:()=>!!e.shell.currentWidget&&!!e.shell.currentWidget.title.closable},trans:r});(0,i.addSemanticCommand)({id:w.createConsole,commands:l,shell:d,semanticCommands:t.consoleCreators,default:{label:r.__("New Console for Activity")},trans:r});l.addCommand(w.shutdown,{label:r.__("Shut Down"),caption:r.__("Shut down %1",e.name),isVisible:()=>t.quitEntry,isEnabled:()=>t.quitEntry,execute:()=>(0,s.showDialog)({title:r.__("Shutdown confirmation"),body:r.__("Please confirm you want to shut down %1.",e.name),buttons:[s.Dialog.cancelButton(),s.Dialog.warnButton({label:r.__("Shut Down")})]}).then((async t=>{if(t.button.accept){const t=a.ServerConnection.makeSettings();const i=o.URLExt.join(t.baseUrl,"api/shutdown");try{await Promise.all([e.serviceManager.sessions.shutdownAll(),e.serviceManager.terminals.shutdownAll()])}catch(n){console.log(`Failed to shutdown sessions and terminals: ${n}`)}return a.ServerConnection.makeRequest(i,{method:"POST"},t).then((t=>{if(t.ok){const t=document.createElement("div");const n=document.createElement("p");n.textContent=r.__("You have shut down the Jupyter server. You can now close this tab.");const i=document.createElement("p");i.textContent=r.__("To use %1 again, you will need to relaunch it.",e.name);t.appendChild(n);t.appendChild(i);void(0,s.showDialog)({title:r.__("Server stopped"),body:new p.Widget({node:t}),buttons:[]});window.close()}else{throw new a.ServerConnection.ResponseError(t)}})).catch((e=>{throw new a.ServerConnection.NetworkError(e)}))}}))});l.addCommand(w.logout,{label:r.__("Log Out"),caption:r.__("Log out of %1",e.name),isVisible:()=>t.quitEntry,isEnabled:()=>t.quitEntry,execute:()=>{n.navigate("/logout",{hard:true})}})}function k(e,t,n){const{commands:o,shell:r}=e;(0,i.addSemanticCommand)({id:w.interruptKernel,commands:o,shell:r,semanticCommands:t.kernelUsers.interruptKernel,default:{label:n.__("Interrupt Kernel"),caption:n.__("Interrupt the kernel")},overrides:{icon:e=>e.toolbar?c.stopIcon:undefined},trans:n});(0,i.addSemanticCommand)({id:w.reconnectToKernel,commands:o,shell:r,semanticCommands:t.kernelUsers.reconnectToKernel,default:{label:n.__("Reconnect to Kernel")},trans:n});(0,i.addSemanticCommand)({id:w.restartKernel,commands:o,shell:r,semanticCommands:t.kernelUsers.restartKernel,default:{label:n.__("Restart Kernel…"),caption:n.__("Restart the kernel")},overrides:{icon:e=>e.toolbar?c.refreshIcon:undefined},trans:n});(0,i.addSemanticCommand)({id:w.restartKernelAndClear,commands:o,shell:r,semanticCommands:[t.kernelUsers.restartKernel,t.kernelUsers.clearWidget],default:{label:n.__("Restart Kernel and Clear…")},trans:n});(0,i.addSemanticCommand)({id:w.changeKernel,commands:o,shell:r,semanticCommands:t.kernelUsers.changeKernel,default:{label:n.__("Change Kernel…")},trans:n});(0,i.addSemanticCommand)({id:w.shutdownKernel,commands:o,shell:r,semanticCommands:t.kernelUsers.shutdownKernel,default:{label:n.__("Shut Down Kernel"),caption:n.__("Shut down kernel")},trans:n});o.addCommand(w.shutdownAllKernels,{label:n.__("Shut Down All Kernels…"),isEnabled:()=>!e.serviceManager.sessions.running().next().done,execute:()=>(0,s.showDialog)({title:n.__("Shut Down All?"),body:n._n("Are you sure you want to permanently shut down the running kernel?","Are you sure you want to permanently shut down the %1 running kernels?",e.serviceManager.kernels.runningCount),buttons:[s.Dialog.cancelButton(),s.Dialog.warnButton({label:n.__("Shut Down All")})]}).then((t=>{if(t.button.accept){return e.serviceManager.sessions.shutdownAll()}}))})}function j(e,t,n){const{commands:s,shell:o}=e;(0,i.addSemanticCommand)({id:w.lineNumbering,commands:s,shell:o,semanticCommands:t.editorViewers.toggleLineNumbers,default:{label:n.__("Show Line Numbers")},trans:n});(0,i.addSemanticCommand)({id:w.matchBrackets,commands:s,shell:o,semanticCommands:t.editorViewers.toggleMatchBrackets,default:{label:n.__("Match Brackets")},trans:n});(0,i.addSemanticCommand)({id:w.wordWrap,commands:s,shell:o,semanticCommands:t.editorViewers.toggleWordWrap,default:{label:n.__("Wrap Words")},trans:n})}function I(e,t,n){const{commands:s,shell:o}=e;(0,i.addSemanticCommand)({id:w.run,commands:s,shell:o,semanticCommands:t.codeRunners.run,default:{label:n.__("Run Selected"),caption:n.__("Run Selected")},overrides:{icon:e=>e.toolbar?c.runIcon:undefined},trans:n});(0,i.addSemanticCommand)({id:w.runAll,commands:s,shell:o,semanticCommands:t.codeRunners.runAll,default:{label:n.__("Run All"),caption:n.__("Run All")},trans:n});(0,i.addSemanticCommand)({id:w.restartAndRunAll,commands:s,shell:o,semanticCommands:[t.codeRunners.restart,t.codeRunners.runAll],default:{label:n.__("Restart Kernel and Run All"),caption:n.__("Restart Kernel and Run All")},overrides:{icon:e=>e.toolbar?c.fastForwardIcon:undefined},trans:n})}function E(e,t,n,i){const s=e.commands;const o=[];let r;s.addCommand(w.activateById,{label:t=>{if(t.id===undefined){return i.__("Activate a widget by its `id`.")}const n=t["id"]||"";const s=(0,h.find)(e.shell.widgets("main"),(e=>e.id===n));return s&&s.title.label||""},isToggled:t=>{const n=t["id"]||"";return!!e.shell.currentWidget&&e.shell.currentWidget.id===n},execute:t=>e.shell.activateById(t["id"]||"")});let a="";s.addCommand(w.activatePreviouslyUsedTab,{label:i.__("Activate Previously Used Tab"),isEnabled:()=>!!a,execute:()=>s.execute(w.activateById,{id:a})});if(n){void e.restored.then((()=>{const i=()=>{if(r&&!r.isDisposed){r.dispose()}o.length=0;let n=false;for(const t of e.shell.widgets("main")){if(t.id===a){n=true}o.push({command:w.activateById,args:{id:t.id}})}r=t.addGroup(o,1);a=n?a:""};i();n.layoutModified.connect((()=>{i()}));n.currentChanged.connect(((e,t)=>{const n=t.oldValue;if(!n){return}a=n.id}))}))}}function T(e,t,n){const{commands:s,shell:o}=e;(0,i.addSemanticCommand)({id:w.getKernel,commands:s,shell:o,semanticCommands:t.getKernel,default:{label:n.__("Get Kernel"),isVisible:false},trans:n})}const M=[C,b];var D;(function(e){async function t(e){const t=await(0,s.showDialog)({title:e.__("Information"),body:e.__("Menu customization has changed. You will need to reload JupyterLab to see the changes."),buttons:[s.Dialog.cancelButton(),s.Dialog.okButton({label:e.__("Reload")})]});if(t.button.accept){location.reload()}}async function n(e,n,i,o){var r;const a=o.load("jupyterlab");let d=null;let c={};function h(t){var n,i;c={};const s=Object.keys(e.plugins).map((t=>{var n,i;const s=(i=(n=e.plugins[t].schema["jupyter.lab.menus"])===null||n===void 0?void 0:n.main)!==null&&i!==void 0?i:[];c[t]=s;return s})).concat([(i=(n=t["jupyter.lab.menus"])===null||n===void 0?void 0:n.main)!==null&&i!==void 0?i:[]]).reduceRight(((e,t)=>l.SettingRegistry.reconcileMenus(e,t,true)),t.properties.menus.default);t.properties.menus.default=l.SettingRegistry.reconcileMenus(s,t.properties.menus.default,true).sort(((e,t)=>{var n,i;return((n=e.rank)!==null&&n!==void 0?n:Infinity)-((i=t.rank)!==null&&i!==void 0?i:Infinity)}))}e.transform(y,{compose:e=>{var t,n,i,s;if(!d){d=u.JSONExt.deepCopy(e.schema);h(d)}const o=(i=(n=(t=d.properties)===null||t===void 0?void 0:t.menus)===null||n===void 0?void 0:n.default)!==null&&i!==void 0?i:[];const r={...e.data.user,menus:(s=e.data.user.menus)!==null&&s!==void 0?s:[]};const a={...e.data.composite,menus:l.SettingRegistry.reconcileMenus(o,r.menus)};e.data={composite:a,user:r};return e},fetch:e=>{if(!d){d=u.JSONExt.deepCopy(e.schema);h(d)}return{data:e.data,id:e.id,raw:e.raw,schema:d,version:e.version}}});const p=await e.load(y);const m=(r=u.JSONExt.deepCopy(p.composite.menus))!==null&&r!==void 0?r:[];const g=new Array;s.MenuFactory.createMenus(m.filter((e=>!e.disabled)).map((e=>{var t;return{...e,items:l.SettingRegistry.filterDisabledItems((t=e.items)!==null&&t!==void 0?t:[])}})),i).forEach((e=>{g.push(e);n(e)}));p.changed.connect((()=>{var e;const n=(e=p.composite.menus)!==null&&e!==void 0?e:[];if(!u.JSONExt.deepEqual(m,n)){void t(a)}}));e.pluginChanged.connect((async(o,r)=>{var d,h,p;if(r!==y){const o=(d=c[r])!==null&&d!==void 0?d:[];const f=(p=(h=e.plugins[r].schema["jupyter.lab.menus"])===null||h===void 0?void 0:h.main)!==null&&p!==void 0?p:[];if(!u.JSONExt.deepEqual(o,f)){if(c[r]){await t(a)}else{c[r]=u.JSONExt.deepCopy(f);const e=l.SettingRegistry.reconcileMenus(f,m,false,false).filter((e=>!e.disabled)).map((e=>{var t;return{...e,items:l.SettingRegistry.filterDisabledItems((t=e.items)!==null&&t!==void 0?t:[])}}));s.MenuFactory.updateMenus(g,e,i).forEach((e=>{n(e)}))}}}}))}e.loadSettingsMenu=n})(D||(D={}))},61132:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(3579);var a=n(41603);var l=n(39063);var d=n(67996)},43744:(e,t,n)=>{"use strict";n.r(t);n.d(t,{EditMenu:()=>a,FileMenu:()=>l,HelpMenu:()=>d,IMainMenu:()=>_,KernelMenu:()=>c,MainMenu:()=>g,RunMenu:()=>h,SettingsMenu:()=>u,TabsMenu:()=>p,ViewMenu:()=>m});var i=n(26331);var s=n(34236);var o=n(1143);var r=n(14366);class a extends i.RankedMenu{constructor(e){super(e);this.undoers={redo:new r.SemanticCommand,undo:new r.SemanticCommand};this.clearers={clearAll:new r.SemanticCommand,clearCurrent:new r.SemanticCommand};this.goToLiners=new r.SemanticCommand}}class l extends i.RankedMenu{constructor(e){super(e);this.quitEntry=false;this.closeAndCleaners=new r.SemanticCommand;this.consoleCreators=new r.SemanticCommand}get newMenu(){var e,t;if(!this._newMenu){this._newMenu=(t=(e=(0,s.find)(this.items,(e=>{var t;return((t=e.submenu)===null||t===void 0?void 0:t.id)==="jp-mainmenu-file-new"})))===null||e===void 0?void 0:e.submenu)!==null&&t!==void 0?t:new i.RankedMenu({commands:this.commands})}return this._newMenu}dispose(){var e;(e=this._newMenu)===null||e===void 0?void 0:e.dispose();super.dispose()}}class d extends i.RankedMenu{constructor(e){super(e);this.getKernel=new r.SemanticCommand}}class c extends i.RankedMenu{constructor(e){super(e);this.kernelUsers={changeKernel:new r.SemanticCommand,clearWidget:new r.SemanticCommand,interruptKernel:new r.SemanticCommand,reconnectToKernel:new r.SemanticCommand,restartKernel:new r.SemanticCommand,shutdownKernel:new r.SemanticCommand}}}class h extends i.RankedMenu{constructor(e){super(e);this.codeRunners={restart:new r.SemanticCommand,run:new r.SemanticCommand,runAll:new r.SemanticCommand}}}class u extends i.RankedMenu{constructor(e){super(e)}}class p extends i.RankedMenu{constructor(e){super(e)}}class m extends i.RankedMenu{constructor(e){super(e);this.editorViewers={toggleLineNumbers:new r.SemanticCommand,toggleMatchBrackets:new r.SemanticCommand,toggleWordWrap:new r.SemanticCommand}}}class g extends o.MenuBar{constructor(e){let t={forceItemsPosition:{forceX:false,forceY:true}};super(t);this._items=[];this._commands=e}get editMenu(){if(!this._editMenu){this._editMenu=new a({commands:this._commands,rank:2,renderer:i.MenuSvg.defaultRenderer})}return this._editMenu}get fileMenu(){if(!this._fileMenu){this._fileMenu=new l({commands:this._commands,rank:1,renderer:i.MenuSvg.defaultRenderer})}return this._fileMenu}get helpMenu(){if(!this._helpMenu){this._helpMenu=new d({commands:this._commands,rank:1e3,renderer:i.MenuSvg.defaultRenderer})}return this._helpMenu}get kernelMenu(){if(!this._kernelMenu){this._kernelMenu=new c({commands:this._commands,rank:5,renderer:i.MenuSvg.defaultRenderer})}return this._kernelMenu}get runMenu(){if(!this._runMenu){this._runMenu=new h({commands:this._commands,rank:4,renderer:i.MenuSvg.defaultRenderer})}return this._runMenu}get settingsMenu(){if(!this._settingsMenu){this._settingsMenu=new u({commands:this._commands,rank:999,renderer:i.MenuSvg.defaultRenderer})}return this._settingsMenu}get viewMenu(){if(!this._viewMenu){this._viewMenu=new m({commands:this._commands,rank:3,renderer:i.MenuSvg.defaultRenderer})}return this._viewMenu}get tabsMenu(){if(!this._tabsMenu){this._tabsMenu=new p({commands:this._commands,rank:500,renderer:i.MenuSvg.defaultRenderer})}return this._tabsMenu}addMenu(e,t=true,n={}){if(s.ArrayExt.firstIndexOf(this.menus,e)>-1){return}i.MenuSvg.overrideDefaultRenderer(e);const o="rank"in n?n.rank:"rank"in e?e.rank:i.IRankedMenu.DEFAULT_RANK;const r={menu:e,rank:o};const g=s.ArrayExt.upperBound(this._items,r,f.itemCmp);e.disposed.connect(this._onMenuDisposed,this);s.ArrayExt.insert(this._items,g,r);this.insertMenu(g,e);switch(e.id){case"jp-mainmenu-file":if(!this._fileMenu&&e instanceof l){this._fileMenu=e}break;case"jp-mainmenu-edit":if(!this._editMenu&&e instanceof a){this._editMenu=e}break;case"jp-mainmenu-view":if(!this._viewMenu&&e instanceof m){this._viewMenu=e}break;case"jp-mainmenu-run":if(!this._runMenu&&e instanceof h){this._runMenu=e}break;case"jp-mainmenu-kernel":if(!this._kernelMenu&&e instanceof c){this._kernelMenu=e}break;case"jp-mainmenu-tabs":if(!this._tabsMenu&&e instanceof p){this._tabsMenu=e}break;case"jp-mainmenu-settings":if(!this._settingsMenu&&e instanceof u){this._settingsMenu=e}break;case"jp-mainmenu-help":if(!this._helpMenu&&e instanceof d){this._helpMenu=e}break}}dispose(){var e,t,n,i,s,o,r,a;(e=this._editMenu)===null||e===void 0?void 0:e.dispose();(t=this._fileMenu)===null||t===void 0?void 0:t.dispose();(n=this._helpMenu)===null||n===void 0?void 0:n.dispose();(i=this._kernelMenu)===null||i===void 0?void 0:i.dispose();(s=this._runMenu)===null||s===void 0?void 0:s.dispose();(o=this._settingsMenu)===null||o===void 0?void 0:o.dispose();(r=this._viewMenu)===null||r===void 0?void 0:r.dispose();(a=this._tabsMenu)===null||a===void 0?void 0:a.dispose();super.dispose()}static generateMenu(e,t,n){let s;const{id:o,label:r,rank:g}=t;switch(o){case"jp-mainmenu-file":s=new l({commands:e,rank:g,renderer:i.MenuSvg.defaultRenderer});break;case"jp-mainmenu-edit":s=new a({commands:e,rank:g,renderer:i.MenuSvg.defaultRenderer});break;case"jp-mainmenu-view":s=new m({commands:e,rank:g,renderer:i.MenuSvg.defaultRenderer});break;case"jp-mainmenu-run":s=new h({commands:e,rank:g,renderer:i.MenuSvg.defaultRenderer});break;case"jp-mainmenu-kernel":s=new c({commands:e,rank:g,renderer:i.MenuSvg.defaultRenderer});break;case"jp-mainmenu-tabs":s=new p({commands:e,rank:g,renderer:i.MenuSvg.defaultRenderer});break;case"jp-mainmenu-settings":s=new u({commands:e,rank:g,renderer:i.MenuSvg.defaultRenderer});break;case"jp-mainmenu-help":s=new d({commands:e,rank:g,renderer:i.MenuSvg.defaultRenderer});break;default:s=new i.RankedMenu({commands:e,rank:g,renderer:i.MenuSvg.defaultRenderer})}if(r){s.title.label=n._p("menu",r)}return s}_onMenuDisposed(e){this.removeMenu(e);const t=s.ArrayExt.findFirstIndex(this._items,(t=>t.menu===e));if(t!==-1){s.ArrayExt.removeAt(this._items,t)}}}var f;(function(e){function t(e,t){return e.rank-t.rank}e.itemCmp=t})(f||(f={}));var v=n(5592);const _=new v.Token("@jupyterlab/mainmenu:IMainMenu",`A service for the main menu bar for the application.\n Use this if you want to add your own menu items or provide implementations for standardized menu items for specific activities.`)},67996:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913)},69195:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>x});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(30397);var l=n.n(a);var d=n(91249);var c=n.n(d);var h=n(44539);var u=n.n(h);var p=n(84739);var m=n.n(p);var g=n(62149);var f=n.n(g);var v=n(30619);var _=n.n(v);var b;(function(e){e.markdownPreview="markdownviewer:open";e.markdownEditor="markdownviewer:edit"})(b||(b={}));const y="Markdown Preview";const w={activate:C,id:"@jupyterlab/markdownviewer-extension:plugin",description:"Adds markdown file viewer and provides its tracker.",provides:d.IMarkdownViewerTracker,requires:[h.IRenderMimeRegistry,v.ITranslator],optional:[i.ILayoutRestorer,p.ISettingRegistry,g.ITableOfContentsRegistry,o.ISanitizer],autoStart:true};function C(e,t,n,i,s,r,l){const c=n.load("jupyterlab");const{commands:u,docRegistry:p}=e;t.addFactory(h.markdownRendererFactory);const m="markdownviewer-widget";const g=new o.WidgetTracker({namespace:m});let f={...d.MarkdownViewer.defaultConfig};function v(e){Object.keys(f).forEach((t=>{var n;e.setOption(t,(n=f[t])!==null&&n!==void 0?n:null)}))}if(s){const e=e=>{f=e.composite;g.forEach((e=>{v(e.content)}))};s.load(w.id).then((t=>{t.changed.connect((()=>{e(t)}));e(t)})).catch((e=>{console.error(e.message)}))}const _=new d.MarkdownViewerFactory({rendermime:t,name:y,label:c.__("Markdown Preview"),primaryFileType:p.getFileType("markdown"),fileTypes:["markdown"],defaultRendered:["markdown"]});_.widgetCreated.connect(((e,t)=>{t.context.pathChanged.connect((()=>{void g.save(t)}));v(t.content);void g.add(t)}));p.addWidgetFactory(_);if(i){void i.restore(g,{command:"docmanager:open",args:e=>({path:e.context.path,factory:y}),name:e=>e.context.path})}u.addCommand(b.markdownPreview,{label:c.__("Markdown Preview"),execute:e=>{const t=e["path"];if(typeof t!=="string"){return}return u.execute("docmanager:open",{path:t,factory:y,options:e["options"]})}});u.addCommand(b.markdownEditor,{execute:()=>{const e=g.currentWidget;if(!e){return}const t=e.context.path;return u.execute("docmanager:open",{path:t,factory:"Editor",options:{mode:"split-right"}})},isVisible:()=>{const e=g.currentWidget;return e&&a.PathExt.extname(e.context.path)===".md"||false},label:c.__("Show Markdown Editor")});if(r){r.add(new d.MarkdownViewerTableOfContentsFactory(g,t.markdownParser,l!==null&&l!==void 0?l:t.sanitizer))}return g}const x=w},57996:(e,t,n)=>{"use strict";var i=n(97913);var s=n(5893);var o=n(3579);var r=n(66731);var a=n(10395);var l=n(79010);var d=n(85072);var c=n.n(d);var h=n(97825);var u=n.n(h);var p=n(77659);var m=n.n(p);var g=n(55056);var f=n.n(g);var v=n(10540);var _=n.n(v);var b=n(41113);var y=n.n(b);var w=n(80877);var C={};C.styleTagTransform=y();C.setAttributes=f();C.insert=m().bind(null,"head");C.domAPI=u();C.insertStyleElement=_();var x=c()(w.A,C);const S=w.A&&w.A.locals?w.A.locals:undefined},34572:(e,t,n)=>{"use strict";n.r(t);n.d(t,{IMarkdownViewerTracker:()=>a,MarkdownDocument:()=>_,MarkdownViewer:()=>v,MarkdownViewerFactory:()=>b,MarkdownViewerTableOfContentsFactory:()=>o,MarkdownViewerTableOfContentsModel:()=>s});var i=n(62149);class s extends i.TableOfContentsModel{constructor(e,t,n){super(e,n);this.parser=t}get documentType(){return"markdown-viewer"}get isAlwaysActive(){return true}get supportedOptions(){return["maximalDepth","numberingH1","numberHeaders"]}getHeadings(){const e=this.widget.context.model.toString();const t=i.TableOfContentsUtils.filterHeadings(i.TableOfContentsUtils.Markdown.getHeadings(e),{...this.configuration,baseNumbering:1});return Promise.resolve(t)}}class o extends i.TableOfContentsFactory{constructor(e,t,n){super(e);this.parser=t;this.sanitizer=n}_createNew(e,t){const n=new s(e,this.parser,t);let o=new WeakMap;const r=(t,n)=>{if(n){const t=o.get(n);if(t){const n=e.content.node.getBoundingClientRect();const i=t.getBoundingClientRect();if(i.top>n.bottom||i.bottom{if(!this.parser){return}i.TableOfContentsUtils.clearNumbering(e.content.node);o=new WeakMap;n.headings.forEach((async t=>{var n;const s=await i.TableOfContentsUtils.Markdown.getHeadingId(this.parser,t.raw,t.level,this.sanitizer);if(!s){return}const r=`h${t.level}[id="${CSS.escape(s)}"]`;o.set(t,i.TableOfContentsUtils.addPrefix(e.content.node,r,(n=t.prefix)!==null&&n!==void 0?n:""))}))};void e.content.ready.then((()=>{a();e.content.rendered.connect(a);n.activeHeadingChanged.connect(r);n.headingsChanged.connect(a);e.disposed.connect((()=>{e.content.rendered.disconnect(a);n.activeHeadingChanged.disconnect(r);n.headingsChanged.disconnect(a)}))}));return n}}var r=n(5592);const a=new r.Token("@jupyterlab/markdownviewer:IMarkdownViewerTracker",`A widget tracker for markdown\n document viewers. Use this if you want to iterate over and interact with rendered markdown documents.`);var l=n(14366);var d=n(30397);var c=n(93037);var h=n(44539);var u=n(30619);var p=n(2336);var m=n(1143);const g="jp-MarkdownViewer";const f="text/markdown";class v extends m.Widget{constructor(e){super();this._config={...v.defaultConfig};this._fragment="";this._ready=new r.PromiseDelegate;this._isRendering=false;this._renderRequested=false;this._rendered=new p.Signal(this);this.context=e.context;this.translator=e.translator||u.nullTranslator;this._trans=this.translator.load("jupyterlab");this.renderer=e.renderer;this.node.tabIndex=0;this.addClass(g);const t=this.layout=new m.StackedLayout;t.addWidget(this.renderer);void this.context.ready.then((async()=>{await this._render();this._monitor=new d.ActivityMonitor({signal:this.context.model.contentChanged,timeout:this._config.renderTimeout});this._monitor.activityStopped.connect(this.update,this);this._ready.resolve(undefined)}))}get ready(){return this._ready.promise}get rendered(){return this._rendered}setFragment(e){this._fragment=e;this.update()}setOption(e,t){if(this._config[e]===t){return}this._config[e]=t;const{style:n}=this.renderer.node;switch(e){case"fontFamily":n.setProperty("font-family",t);break;case"fontSize":n.setProperty("font-size",t?t+"px":null);break;case"hideFrontMatter":this.update();break;case"lineHeight":n.setProperty("line-height",t?t.toString():null);break;case"lineWidth":{const e=t?`calc(50% - ${t/2}ch)`:null;n.setProperty("padding-left",e);n.setProperty("padding-right",e);break}case"renderTimeout":if(this._monitor){this._monitor.timeout=t}break;default:break}}dispose(){if(this.isDisposed){return}if(this._monitor){this._monitor.dispose()}this._monitor=null;super.dispose()}onUpdateRequest(e){if(this.context.isReady&&!this.isDisposed){void this._render();this._fragment=""}}onActivateRequest(e){this.node.focus()}async _render(){if(this.isDisposed){return}if(this._isRendering){this._renderRequested=true;return}this._renderRequested=false;const{context:e}=this;const{model:t}=e;const n=t.toString();const i={};i[f]=this._config.hideFrontMatter?y.removeFrontMatter(n):n;const s=new h.MimeModel({data:i,metadata:{fragment:this._fragment}});try{this._isRendering=true;await this.renderer.renderModel(s);this._isRendering=false;if(this._renderRequested){return this._render()}else{this._rendered.emit()}}catch(o){requestAnimationFrame((()=>{this.dispose()}));void(0,l.showErrorMessage)(this._trans.__("Renderer Failure: %1",e.path),o)}}}(function(e){e.defaultConfig={fontFamily:null,fontSize:null,lineHeight:null,lineWidth:null,hideFrontMatter:true,renderTimeout:1e3}})(v||(v={}));class _ extends c.DocumentWidget{setFragment(e){this.content.setFragment(e)}}class b extends c.ABCWidgetFactory{constructor(e){super(y.createRegistryOptions(e));this._fileType=e.primaryFileType;this._rendermime=e.rendermime}createNewWidget(e){var t,n,i,s,o;const r=this._rendermime.clone({resolver:e.urlResolver});const a=r.createRenderer(f);const l=new v({context:e,renderer:a});l.title.icon=(t=this._fileType)===null||t===void 0?void 0:t.icon;l.title.iconClass=(i=(n=this._fileType)===null||n===void 0?void 0:n.iconClass)!==null&&i!==void 0?i:"";l.title.iconLabel=(o=(s=this._fileType)===null||s===void 0?void 0:s.iconLabel)!==null&&o!==void 0?o:"";l.title.caption=this.label;const d=new _({content:l,context:e});return d}}var y;(function(e){function t(e){return{...e,readOnly:true}}e.createRegistryOptions=t;function n(e){const t=/^---\n[^]*?\n(---|...)\n/;const n=e.match(t);if(!n){return e}const{length:i}=n[0];return e.slice(i)}e.removeFrontMatter=n})(y||(y={}))},55151:(e,t,n)=>{"use strict";n.r(t);n.d(t,{createMarkdownParser:()=>m,default:()=>f});var i=n(5592);var s=n.n(i);var o=n(30397);var r=n.n(o);var a=n(66899);var l=n.n(a);var d=n(44539);var c=n.n(d);var h=n(85311);var u=n.n(h);const p="```~~~";function m(e,t){return{render:n=>v.render(n,e,t)}}const g={id:"@jupyterlab/markedparser-extension:plugin",description:"Provides the Markdown parser.",autoStart:true,provides:d.IMarkdownParser,requires:[a.IEditorLanguageRegistry],optional:[h.IMermaidMarkdown],activate:(e,t,n)=>m(t,{blocks:n?[n]:[]})};const f=g;var v;(function(e){let t=null;let s=null;let r=[];let a=null;let l={};let d=new o.LruCache;async function c(e,t,n){a=t;if(!s){s=await h(n)}return s(e,l)}e.render=c;async function h(e){if(s){return s}if(t){return await t.promise}r=(e===null||e===void 0?void 0:e.blocks)||[];r=r.sort(((e,t)=>{var n,i;return((n=e.rank)!==null&&n!==void 0?n:Infinity)-((i=t.rank)!==null&&i!==void 0?i:Infinity)}));t=new i.PromiseDelegate;const[{marked:o,Renderer:a},d]=await Promise.all([n.e(4507).then(n.t.bind(n,14507,23)),u()]);for(const t of d){o.use(t)}l={async:true,gfm:true,walkTokens:f,renderer:m(a)};s=o;t.resolve(s);return s}e.initializeMarked=h;async function u(){return Promise.all([(async()=>(await n.e(8022).then(n.t.bind(n,18022,23))).gfmHeadingId())(),(async()=>(await n.e(3825).then(n.t.bind(n,3825,23))).mangle())()])}function m(e){const t=new e;const n=t.code;t.code=({text:e,lang:i,escaped:s})=>{for(const t of r){if(i&&t.languages.includes(i)){const n=t.render(e);if(n!=null){return n}}}const o=`${i}${p}${e}${p}`;const a=d.get(o);if(a!=null){return a}return n.call(t,{text:e,lang:i,escaped:s})};return t}async function g(e){const{lang:t,text:n}=e;if(!t||!a){return}const i=`${t}${p}${n}${p}`;if(d.get(i)){return}const s=document.createElement("div");try{await a.highlight(n,a.findBest(t),s);const e=`
    ${s.innerHTML}
    `;d.set(i,e)}catch(o){console.error(`Failed to highlight ${t} code`,o)}finally{s.remove()}}async function f(e){switch(e.type){case"code":if(e.lang){for(const t of r){if(t.languages.includes(e.lang)){await t.walk(e.text);return}}}await g(e)}}})(v||(v={}))},41884:(e,t,n)=>{"use strict";var i=n(5893);var s=n(3579);var o=n(23359);var r=n(69240);var a=n(85072);var l=n.n(a);var d=n(97825);var c=n.n(d);var h=n(77659);var u=n.n(h);var p=n(55056);var m=n.n(p);var g=n(10540);var f=n.n(g);var v=n(41113);var _=n.n(v);var b=n(23865);var y={};y.styleTagTransform=_();y.setAttributes=m();y.insert=u().bind(null,"head");y.domAPI=c();y.insertStyleElement=f();var w=l()(b.A,y);const C=b.A&&b.A.locals?b.A.locals:undefined},31217:(e,t,n)=>{"use strict";n.r(t);n.d(t,{MathJaxTypesetter:()=>l,default:()=>c});var i=n(5592);var s=n.n(i);var o=n(44539);var r=n.n(o);var a;(function(e){e.copy="mathjax:clipboard";e.scale="mathjax:scale"})(a||(a={}));class l{constructor(){this._initialized=false}async _ensureInitialized(){if(!this._initialized){this._mathDocument=await h.ensureMathDocument();this._initialized=true}}async mathDocument(){await this._ensureInitialized();return this._mathDocument}async typeset(e){try{await this._ensureInitialized()}catch(t){console.error(t);return}this._mathDocument.options.elements=[e];this._mathDocument.clear().render();delete this._mathDocument.options.elements}}const d={id:"@jupyterlab/mathjax-extension:plugin",description:"Provides the LaTeX mathematical expression interpreter.",provides:o.ILatexTypesetter,activate:e=>{const t=new l;e.commands.addCommand(a.copy,{execute:async()=>{const e=await t.mathDocument();const n=e.outputJax;await navigator.clipboard.writeText(n.math.math)},label:"MathJax Copy Latex"});e.commands.addCommand(a.scale,{execute:async e=>{const n=await t.mathDocument();const i=e["scale"]||1;n.outputJax.options.scale=i;n.rerender()},label:e=>"Mathjax Scale "+(e["scale"]?`x${e["scale"]}`:"Reset")});return t},autoStart:true};const c=d;var h;(function(e){let t=null;async function s(){if(!t){t=new i.PromiseDelegate;void Promise.all([n.e(2353),n.e(2633),n.e(8816)]).then(n.t.bind(n,58816,23));const[{mathjax:e},{CHTML:s},{TeX:o},{TeXFont:r},{AllPackages:a},{SafeHandler:l},{HTMLHandler:d},{browserAdaptor:c},{AssistiveMmlHandler:h}]=await Promise.all([n.e(1039).then(n.bind(n,81039)),Promise.all([n.e(2353),n.e(6275),n.e(1673),n.e(4090)]).then(n.t.bind(n,24090,23)),Promise.all([n.e(2353),n.e(2633),n.e(2707),n.e(4928)]).then(n.t.bind(n,4928,23)),Promise.all([n.e(1673),n.e(4981)]).then(n.t.bind(n,1673,23)),Promise.all([n.e(2353),n.e(2633),n.e(2707),n.e(1909)]).then(n.bind(n,31909)),n.e(5244).then(n.t.bind(n,75244,23)),Promise.all([n.e(2353),n.e(6275),n.e(4001),n.e(1969)]).then(n.t.bind(n,1969,23)),n.e(9400).then(n.bind(n,59400)),Promise.all([n.e(2353),n.e(6275),n.e(4001),n.e(4855)]).then(n.t.bind(n,34855,23))]);e.handlers.register(h(l(new d(c()))));class u extends r{}u.defaultFonts={};const p=new s({font:new u});const m=new o({packages:a.concat("require"),inlineMath:[["$","$"],["\\(","\\)"]],displayMath:[["$$","$$"],["\\[","\\]"]],processEscapes:true,processEnvironments:true});const g=e.document(window.document,{InputJax:m,OutputJax:p});t.resolve(g)}return t.promise}e.ensureMathDocument=s})(h||(h={}))},51874:(e,t,n)=>{"use strict";var i=n(5893);var s=n(3579);var o=n(85072);var r=n.n(o);var a=n(97825);var l=n.n(a);var d=n(77659);var c=n.n(d);var h=n(55056);var u=n.n(h);var p=n(10540);var m=n.n(p);var g=n(41113);var f=n.n(g);var v=n(25149);var _={};_.styleTagTransform=f();_.setAttributes=u();_.insert=c().bind(null,"head");_.domAPI=l();_.insertStyleElement=m();var b=r()(v.A,_);const y=v.A&&v.A.locals?v.A.locals:undefined},71579:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CommandIDs:()=>d,default:()=>p});var i=n(14366);var s=n.n(i);var o=n(85311);var r=n.n(o);var a=n(30619);var l=n.n(a);var d;(function(e){e.copySource="mermaid:copy-source"})(d||(d={}));const c={id:"@jupyterlab/mermaid-extension:core",description:"Provides the Mermaid manager.",autoStart:true,optional:[i.IThemeManager],provides:o.IMermaidManager,activate:(e,t)=>{const n=new o.MermaidManager({themes:t});o.RenderedMermaid.manager=n;return n}};const h={id:"@jupyterlab/mermaid-extension:markdown",description:"Provides the Mermaid markdown renderer.",autoStart:true,requires:[o.IMermaidManager],provides:o.IMermaidMarkdown,activate:(e,t)=>new o.MermaidMarkdown({mermaid:t})};const u={id:"@jupyterlab/mermaid-extension:context-commands",description:"Provides context menu commands for mermaid diagrams.",autoStart:true,requires:[o.IMermaidManager],optional:[a.ITranslator],activate:(e,t,n)=>{const i=e=>e.classList.contains(o.MERMAID_CLASS);const s=(n!==null&&n!==void 0?n:a.nullTranslator).load("jupyterlab");e.commands.addCommand(d.copySource,{label:s.__("Mermaid Copy Diagram Source"),execute:async t=>{const n=e.contextMenuHitTest(i);if(!n){return}const s=n.querySelector(`.${o.MERMAID_CODE_CLASS}`);if(!s||!s.textContent){return}await navigator.clipboard.writeText(s.textContent)}});const r={selector:`.${o.MERMAID_CLASS}`,rank:13};e.contextMenu.addItem({command:d.copySource,...r});e.contextMenu.addItem({type:"separator",...r})}};const p=[c,h,u]},47375:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>r});var i=n(85311);var s=n.n(i);const o={id:"@jupyterlab/mermaid-extension:factory",description:"Provides a renderer for mermaid text-based diagrams.",rendererFactory:i.rendererFactory,rank:61,dataType:"string",documentWidgetFactoryOptions:[{name:"Mermaid",primaryFileType:"mermaid",fileTypes:["mermaid"],defaultFor:["mermaid"]}],fileTypes:[{mimeTypes:[i.MERMAID_MIME_TYPE],name:"mermaid",extensions:i.MERMAID_FILE_EXTENSIONS,icon:"ui-components:mermaid"}]};const r=o},90288:(e,t,n)=>{"use strict";var i=n(97913);var s=n(3579);var o=n(69240);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(4555);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},63005:(e,t,n)=>{"use strict";n.r(t);n.d(t,{DETAILS_CLASS:()=>p,IMermaidManager:()=>g,IMermaidMarkdown:()=>f,MERMAID_CLASS:()=>c,MERMAID_CODE_CLASS:()=>h,MERMAID_DARK_THEME:()=>d,MERMAID_DEFAULT_THEME:()=>l,MERMAID_FILE_EXTENSIONS:()=>r,MERMAID_MIME_TYPE:()=>o,MermaidManager:()=>v,MermaidMarkdown:()=>b,RE_DEFAULT_RENDERER:()=>a,RenderedMermaid:()=>C,SUMMARY_CLASS:()=>m,WARNING_CLASS:()=>u,rendererFactory:()=>x});var i=n(5592);var s=n(30397);const o="text/vnd.mermaid";const r=[".mmd",".mermaid"];const a=/\bdefaultRenderer["']?\s*:\s*(["']?)(\b[^"'\s]+\b)(\1)/gm;const l="default";const d="dark";const c="jp-RenderedMermaid";const h="mermaid";const u="jp-mod-warning";const p="jp-RenderedMermaid-Details";const m="jp-RenderedMermaid-Summary";const g=new i.Token("@jupyterlab/mermaid:IMermaidManager",`a manager for rendering mermaid text-based diagrams`);const f=new i.Token("@jupyterlab/mermaid:IMermaidMarkdown",`a manager for rendering mermaid text-based diagrams in markdown fenced code blocks`);class v{constructor(e={}){this._diagrams=new s.LruCache({maxSize:e.maxCacheSize||null});if(e.themes){_.initThemes(e.themes||null);e.themes.themeChanged.connect(this.initialize,this)}}static cleanMermaidSvg(e){e=e.replace(_.RE_VOID_ELEMENT,_.replaceVoidElement);return`${_.SVG_XML_HEADER}${e}`}initialize(){this._diagrams.clear();_.initMermaid()}async getMermaid(){return await _.ensureMermaid()}getMermaidVersion(){return _.version()}getCachedFigure(e){return this._diagrams.get(e)}async renderSvg(e){const t=await this.getMermaid();await _.ensureRenderers(e);const n=`jp-mermaid-${_.nextMermaidId()}`;const i=document.createElement("div");document.body.appendChild(i);try{let{svg:s}=await t.render(n,e,i);s=v.cleanMermaidSvg(s);const o=new DOMParser;const r=o.parseFromString(s,"image/svg+xml");const a={text:e,svg:s};const l=r.querySelector("svg");const{maxWidth:d}=(l===null||l===void 0?void 0:l.style)||{};a.width=d?parseFloat(d):null;const c=r.querySelector("title");const h=r.querySelector("desc");if(c){a.accessibleTitle=c.textContent}if(h){a.accessibleDescription=h.textContent}return a}finally{i.remove()}}async renderFigure(e){let t=this._diagrams.get(e);if(t!=null){return t}let n=c;let i=null;t=document.createElement("div");t.className=n;try{const t=await this.renderSvg(e);i=this.makeMermaidFigure(t)}catch(o){t.classList.add(u);i=await this.makeMermaidError(e)}let s=this.getMermaidVersion();if(s){i.dataset.jpMermaidVersion=s}t.appendChild(i);this._diagrams.set(e,t);return t}makeMermaidCode(e){const t=document.createElement("pre");const n=document.createElement("code");n.innerText=e;t.appendChild(n);n.className=h;n.textContent=e;return t}async makeMermaidError(e){const t=await this.getMermaid();let n="";try{await t.parse(e)}catch(r){n=`${r}`}const i=document.createElement("details");i.className=p;const s=document.createElement("summary");s.className=m;s.appendChild(this.makeMermaidCode(e));i.appendChild(s);const o=document.createElement("pre");o.innerText=n;i.appendChild(o);return i}makeMermaidFigure(e){const t=document.createElement("figure");const n=document.createElement("img");t.appendChild(n);n.setAttribute("src",`data:image/svg+xml,${encodeURIComponent(e.svg)}`);if(e.width){n.width=e.width}if(e.accessibleTitle){n.setAttribute("alt",e.accessibleTitle)}t.appendChild(this.makeMermaidCode(e.text));if(e.accessibleDescription){const n=document.createElement("figcaption");n.className="sr-only";n.textContent=e.accessibleDescription;t.appendChild(n)}return t}}var _;(function(e){let t=null;let s=null;let o=null;let r=null;let c=null;let h=0;let u=null;function p(e){t=e}e.initThemes=p;function m(){return u}e.version=m;function g(e=null){e=s;if(!e){return false}let n=l;if(t){const e=t.theme;n=e&&t.isLight(e)?l:d}const i=window.getComputedStyle(document.body).getPropertyValue("--jp-ui-font-family");e.initialize({theme:n,fontFamily:i,securityLevel:"strict",maxTextSize:1e5,maxEdges:1e5,startOnLoad:false});return true}e.initMermaid=g;function f(){return s}e.getMermaid=f;function v(){return h++}e.nextMermaidId=v;async function _(){if(s!=null){return s}if(r){return r.promise}r=new i.PromiseDelegate;u=(await n.e(3763).then(n.t.bind(n,73763,19))).version;const e=s=(await Promise.all([n.e(8606),n.e(2601),n.e(227),n.e(4507)]).then(n.bind(n,90227))).default;g(e);s=e;r.resolve(s);return s}e.ensureMermaid=_;async function b(t){let n=[];for(const i of[...t.matchAll(a)]){switch(i&&i[2]||null){case"elk":n.push(e.ensureMermaidElk());break}}if(n.length){await Promise.all(n)}}e.ensureRenderers=b;async function y(){if(o!=null){return o}if(c){return c.promise}c=new i.PromiseDelegate;const e=await _();const t=(await n.e(6986).then(n.bind(n,96986))).default;e.registerLayoutLoaders(t);o=t;c.resolve(o);return o}e.ensureMermaidElk=y;e.RE_VOID_ELEMENT=/<\s*(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\s*([^>]*?)\s*>/gi;function w(e,t,n){n=n.trim();if(!n.endsWith("/")){n=`${n} /`}return`<${t} ${n}>`}e.replaceVoidElement=w;e.HTML_ENTITIES=`\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n`.replace(/\n/g," ");const C='';const x=`";e.SVG_XML_HEADER=`${C}\n ${x}${e.HTML_ENTITIES}${S}`})(_||(_={}));class b{constructor(e){this.languages=["mermaid"];this.rank=100;this._mermaid=e.mermaid}async walk(e){await this._mermaid.renderFigure(e)}render(e){let t=this._mermaid.getCachedFigure(e);if(t){return t.outerHTML}return null}}var y=n(1143);const w="image/svg+xml";class C extends y.Widget{constructor(e){super();this._lastRendered=null;this._mimeType=e.mimeType;this.addClass(c)}static set manager(e){if(C._manager){console.warn("Mermaid manager may only be set once, and is already set.");return}C._manager=e;C._managerReady.resolve(e)}async renderModel(e){const t=await C._managerReady.promise;const n=e.data[this._mimeType];if(n==null||n===this._lastRendered){return}this._lastRendered=n;const i=await t.renderFigure(n);if(i.classList.contains(u)){this.node.classList.add(u)}else{this.node.classList.remove(u)}if(!i.firstChild){return}if(this.node.innerHTML!==i.innerHTML){this.node.innerHTML=i.innerHTML}const s=t.getMermaidVersion();const r={...e.metadata[o]||{},version:s};const a={...e.metadata,[o]:r};const l=i.querySelector("img");if(l){const t=decodeURIComponent(l.src.split(",")[1]);const n=e.data[w];if(t!==n){e.setData({data:{...e.data,[w]:t},metadata:a})}}else{const t={...e.data};delete t[w];e.setData({data:t,metadata:a})}}}C._manager=null;C._managerReady=new i.PromiseDelegate;const x={safe:true,mimeTypes:[o],createRenderer:e=>new C(e)}},69240:(e,t,n)=>{"use strict";var i=n(10395);var s=n(97913);var o=n(85072);var r=n.n(o);var a=n(97825);var l=n.n(a);var d=n(77659);var c=n.n(d);var h=n(55056);var u=n.n(h);var p=n(10540);var m=n.n(p);var g=n(41113);var f=n.n(g);var v=n(9979);var _={};_.styleTagTransform=f();_.setAttributes=u();_.insert=c().bind(null,"head");_.domAPI=l();_.insertStyleElement=m();var b=r()(v.A,_);const y=v.A&&v.A.locals?v.A.locals:undefined},24039:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>_});var i=n(80349);var s=n.n(i);var o=n(84739);var r=n.n(o);var a=n(30619);var l=n.n(a);var d=n(26331);var c=n.n(d);var h=n(5592);var u=n.n(h);var p=n(70933);var m=n.n(p);const g="@jupyterlab/metadataform-extension:metadataforms";var f;(function(e){async function t(e,t,n,i,s){var o;let r;let a={};function l(e){a={};e.properties.metadataforms.default=Object.keys(t.plugins).map((e=>{var n;const i=(n=t.plugins[e].schema["jupyter.lab.metadataforms"])!==null&&n!==void 0?n:[];i.forEach((t=>{t._origin=e}));a[e]=i;return i})).concat([e["jupyter.lab.metadataforms"]]).reduce(((e,t)=>{t.forEach((t=>{const n=e.find((e=>e.id===t.id));if(n){for(let[e,i]of Object.entries(t.metadataSchema.properties)){n.metadataSchema.properties[e]=i}if(t.metadataSchema.required){if(!n.metadataSchema.required){n.metadataSchema.required=t.metadataSchema.required}else{n.metadataSchema.required.concat(t.metadataSchema.required)}}if(t.metadataSchema.allOf){if(!n.metadataSchema.allOf){n.metadataSchema.allOf=t.metadataSchema.allOf}else{n.metadataSchema.allOf.concat(t.metadataSchema.allOf)}}if(t.uiSchema){if(!n.uiSchema)n.uiSchema={};for(let[e,i]of Object.entries(t.uiSchema)){n.uiSchema[e]=i}}if(t.metadataOptions){if(!n.metadataOptions)n.metadataOptions={};for(let[e,i]of Object.entries(t.metadataOptions)){n.metadataOptions[e]=i}}}else{e.push(t)}}));return e}),[])}t.transform(g,{compose:e=>{var t,n,i,s;if(!r){r=h.JSONExt.deepCopy(e.schema);l(r)}const o=(i=(n=(t=r.properties)===null||t===void 0?void 0:t.metadataforms)===null||n===void 0?void 0:n.default)!==null&&i!==void 0?i:[];const a={metadataforms:(s=e.data.user.metadataforms)!==null&&s!==void 0?s:[]};const d={metadataforms:o.concat(a.metadataforms)};e.data={composite:d,user:a};return e},fetch:e=>{if(!r){r=h.JSONExt.deepCopy(e.schema);l(r)}return{data:e.data,id:e.id,raw:e.raw,schema:r,version:e.version}}});r=null;const d=await t.load(g);const c=new p.MetadataFormProvider;for(let u of d.composite.metadataforms){let e={};let t=h.JSONExt.deepCopy(u.metadataSchema);let r={};if(u.uiSchema){r=h.JSONExt.deepCopy(u.uiSchema)}for(let[n,i]of Object.entries(t.properties)){if(i.default){if(!e[n])e[n]={};e[n].default=i.default}}if(u.metadataOptions){for(let[t,n]of Object.entries(u.metadataOptions)){if(n.cellTypes){if(!e[t])e[t]={};e[t].cellTypes=n.cellTypes}if(n.metadataLevel){if(!e[t])e[t]={};e[t].level=n.metadataLevel}if(n.writeDefault!==undefined){if(!e[t])e[t]={};e[t].writeDefault=n.writeDefault}if(n.customRenderer){const e=s.getRenderer(n.customRenderer);if(e!==undefined){if(!r[t])r[t]={};if(e.fieldRenderer){r[t]["ui:field"]=e.fieldRenderer}else{r[t]["ui:widget"]=e.widgetRenderer}}}}}n.addSection({sectionName:u.id,rank:u.rank,label:(o=u.label)!==null&&o!==void 0?o:u.id});const a=new p.MetadataFormWidget({metadataSchema:t,metaInformation:e,uiSchema:r,pluginId:u._origin,translator:i,showModified:u.showModified});n.addItem({section:u.id,tool:a});c.add(u.id,a)}return c}e.loadSettingsMetadataForm=t})(f||(f={}));const v={id:g,description:"Provides the metadata form registry.",autoStart:true,requires:[i.INotebookTools,a.ITranslator,d.IFormRendererRegistry,o.ISettingRegistry],provides:p.IMetadataFormProvider,activate:async(e,t,n,i,s)=>await f.loadSettingsMetadataForm(e,s,t,n,i)};const _=v},87145:(e,t,n)=>{"use strict";var i=n(40662);var s=n(3579);var o=n(28006);var r=n(69540)},32822:(e,t,n)=>{"use strict";n.r(t);n.d(t,{FormWidget:()=>d,IMetadataFormProvider:()=>_,MetadataFormProvider:()=>v,MetadataFormWidget:()=>g});var i=n(14366);var s=n(26331);var o=n(41742);var r=n.n(o);var a=n(44914);var l=n.n(a);class d extends i.ReactWidget{constructor(e){super();this.addClass("jp-FormWidget");this._props=e}render(){const e={defaultFormData:this._props.settings.default(),updateMetadata:this._props.metadataFormWidget.updateMetadata};return l().createElement(s.FormComponent,{validator:r(),schema:this._props.properties,formData:this._props.formData,formContext:e,uiSchema:this._props.uiSchema,liveValidate:true,idPrefix:`jp-MetadataForm-${this._props.pluginId}`,onChange:e=>{this._props.metadataFormWidget.updateMetadata(e.formData||{})},compact:true,showModifiedFromDefault:this._props.showModified,translator:this._props.translator})}}var c=n(80349);var h=n(84739);var u=n(30619);var p=n(5592);var m=n(1143);class g extends c.NotebookTools.Tool{constructor(e){super();this.updateMetadata=(e,t)=>{var n,i,s,o,r,a,l,d;if(this.notebookTools==undefined)return;const c=this.notebookTools.activeNotebookPanel;const h=this.notebookTools.activeCell;if(h==null)return;this._updatingMetadata=true;const u={};const p={};for(let[m,g]of Object.entries(e)){if(!this.metadataKeys.includes(m))continue;if(((n=this._metaInformation[m])===null||n===void 0?void 0:n.level)==="notebook"&&this._notebookModelNull)continue;if(((i=this._metaInformation[m])===null||i===void 0?void 0:i.cellTypes)&&!((o=(s=this._metaInformation[m])===null||s===void 0?void 0:s.cellTypes)===null||o===void 0?void 0:o.includes(h.model.type))){continue}let e;let t;if(((r=this._metaInformation[m])===null||r===void 0?void 0:r.level)==="notebook"){e=c.model.metadata;t=p}else{e=h.model.metadata;t=u}let v=m.replace(/^\/+/,"").replace(/\/+$/,"").split("/");let _=v[0];if(_==undefined)continue;let b=g!==undefined&&(((l=(a=this._metaInformation[m])===null||a===void 0?void 0:a.writeDefault)!==null&&l!==void 0?l:true)||g!==((d=this._metaInformation[m])===null||d===void 0?void 0:d.default));if(v.length==1){if(b)t[_]=g;else t[_]=undefined;continue}let y=v.slice(1,-1);let w=v[v.length-1];if(!(_ in t)){t[_]=e[_]}if(t[_]===undefined)t[_]={};let C=t[_];let x=true;for(let n of y){if(!(n in C)){if(!b){x=false;break}else C[n]={}}C=C[n]}if(x){if(!b)delete C[w];else C[w]=g}if(!b){t[_]=f.deleteEmptyNested(t[_],v.slice(1));if(!Object.keys(t[_]).length)t[_]=undefined}}for(let[m,g]of Object.entries(u)){if(g===undefined)h.model.deleteMetadata(m);else h.model.setMetadata(m,g)}if(!this._notebookModelNull){for(let[e,t]of Object.entries(p)){if(t===undefined)c.model.deleteMetadata(e);else c.model.setMetadata(e,t)}}this._updatingMetadata=false;if(t){this._update()}};this._notebookModelNull=false;this._metadataSchema=e.metadataSchema;this._metaInformation=e.metaInformation;this._uiSchema=e.uiSchema||{};this._pluginId=e.pluginId;this._showModified=e.showModified||false;this.translator=e.translator||u.nullTranslator;this._trans=this.translator.load("jupyterlab");this._updatingMetadata=false;const t=this.layout=new m.SingletonLayout;const n=document.createElement("div");const i=document.createElement("div");i.textContent=this._trans.__("No metadata.");i.className="jp-MetadataForm-placeholderContent";n.appendChild(i);this._placeholder=new m.Widget({node:n});this._placeholder.addClass("jp-MetadataForm-placeholder");t.widget=this._placeholder}get form(){return this._form}get metadataKeys(){var e;const t=[];for(let n of Object.keys(this._metadataSchema.properties)){t.push(n)}(e=this._metadataSchema.allOf)===null||e===void 0?void 0:e.forEach((e=>{if(e.then!==undefined){if(e.then.properties!==undefined){let n=e.then.properties;for(let e of Object.keys(n)){if(!t.includes(e))t.push(e)}}}if(e.else!==undefined){if(e.else.properties!==undefined){let n=e.else.properties;for(let e of Object.keys(n)){if(!t.includes(e))t.push(e)}}}}));return t}getProperties(e){return p.JSONExt.deepCopy(this._metadataSchema.properties[e])||null}setProperties(e,t){Object.entries(t).forEach((([t,n])=>{this._metadataSchema.properties[e][t]=n}))}setContent(e){const t=this.layout;if(t.widget){t.widget.removeClass("jp-MetadataForm-content");t.removeWidget(t.widget)}if(!e){e=this._placeholder}e.addClass("jp-MetadataForm-content");t.widget=e}buildWidget(e){this._form=new d(e);this._form.addClass("jp-MetadataForm");this.setContent(this._form)}onAfterShow(e){this._update()}onActiveCellChanged(e){if(this.isVisible)this._update()}onActiveCellMetadataChanged(e){if(!this._updatingMetadata&&this.isVisible)this._update()}onActiveNotebookPanelChanged(e){const t=this.notebookTools.activeNotebookPanel;this._notebookModelNull=t===null||t.model===null;if(!this._updatingMetadata&&this.isVisible)this._update()}onActiveNotebookPanelMetadataChanged(e){if(!this._updatingMetadata&&this.isVisible)this._update()}_update(){var e,t,n,i,s;const o=this.notebookTools.activeNotebookPanel;const r=this.notebookTools.activeCell;if(r==undefined)return;const a=p.JSONExt.deepCopy(this._metadataSchema);const l={};for(let d of Object.keys(this._metadataSchema.properties||p.JSONExt.emptyObject)){if(((e=this._metaInformation[d])===null||e===void 0?void 0:e.level)==="notebook"&&this._notebookModelNull){delete a.properties[d];continue}if(((t=this._metaInformation[d])===null||t===void 0?void 0:t.cellTypes)&&!((i=(n=this._metaInformation[d])===null||n===void 0?void 0:n.cellTypes)===null||i===void 0?void 0:i.includes(r.model.type))){delete a.properties[d];continue}let c;let h=d.replace(/^\/+/,"").replace(/\/+$/,"").split("/");if(((s=this._metaInformation[d])===null||s===void 0?void 0:s.level)==="notebook"){c=o.model.metadata}else{c=r.model.metadata}let u=true;for(let e of h){if(e in c)c=c[e];else{u=false;break}}if(u)l[d]=c}this.buildWidget({properties:a,settings:new h.BaseSettings({schema:this._metadataSchema}),uiSchema:this._uiSchema,translator:this.translator||null,formData:l,metadataFormWidget:this,showModified:this._showModified,pluginId:this._pluginId})}}var f;(function(e){function t(e,n){let i=n.shift();if(i!==undefined&&i in e){if(Object.keys(e[i]).length)e[i]=t(e[i],n);if(!Object.keys(e[i]).length)delete e[i]}return e}e.deleteEmptyNested=t})(f||(f={}));class v{constructor(){this._items={}}add(e,t){if(!this._items[e]){this._items[e]=t}else{console.warn(`A MetadataformWidget is already registered with id ${e}`)}}get(e){if(this._items[e]){return this._items[e]}else{console.warn(`There is no MetadataformWidget registered with id ${e}`)}}}const _=new p.Token("@jupyterlab/metadataform:IMetadataFormProvider",`A service to register new metadata editor widgets.`)},69540:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(28006);var a=n(85072);var l=n.n(a);var d=n(97825);var c=n.n(d);var h=n(77659);var u=n.n(h);var p=n(55056);var m=n.n(p);var g=n(10540);var f=n.n(g);var v=n(41113);var _=n.n(v);var b=n(62129);var y={};y.styleTagTransform=_();y.setAttributes=m();y.insert=u().bind(null,"head");y.domAPI=c();y.insertStyleElement=f();var w=l()(b.A,y);const C=b.A&&b.A.locals?b.A.locals:undefined},15555:(e,t,n)=>{"use strict";n.r(t);n.d(t,{MAJOR_VERSION:()=>o,MINOR_VERSION:()=>r,isCode:()=>c,isDisplayData:()=>u,isDisplayUpdate:()=>p,isError:()=>g,isExecuteResult:()=>h,isMarkdown:()=>d,isRaw:()=>l,isStream:()=>m,validateMimeValue:()=>a});var i=n(5592);var s=n.n(i);const o=4;const r=4;function a(e,t){const n=/^application\/.+\+json$/;const s=e==="application/json"||n.test(e);const o=e=>Object.prototype.toString.call(e)==="[object String]";if(Array.isArray(t)){if(s){return false}let e=true;t.forEach((t=>{if(!o(t)){e=false}}));return e}if(o(t)){return!s}if(!s){return false}return i.JSONExt.isObject(t)}function l(e){return e.cell_type==="raw"}function d(e){return e.cell_type==="markdown"}function c(e){return e.cell_type==="code"}function h(e){return e.output_type==="execute_result"}function u(e){return e.output_type==="display_data"}function p(e){return e.output_type==="update_display_data"}function m(e){return e.output_type==="stream"}function g(e){return e.output_type==="error"}},65463:(e,t,n)=>{"use strict";n.r(t);n.d(t,{commandEditItem:()=>ie,default:()=>we,executionIndicator:()=>se,exportPlugin:()=>oe,notebookTrustItem:()=>re});var i=n(94307);var s=n(14366);var o=n(5061);var r=n(54723);var a=n(30397);var l=n(66899);var d=n(29939);var c=n(43801);var h=n(51997);var u=n(22441);var p=n(42875);var m=n(74955);var g=n(7243);var f=n(23899);var v=n(70933);var _=n(80349);var b=n(57257);var y=n(44539);var w=n(84739);var C=n(94931);var x=n(24735);var S=n(62149);var k=n(30619);var j=n(26331);var I=n(34236);var E=n(5592);var T=n(90044);var M=n(42856);var D=n(1143);const A={id:"@jupyterlab/notebook-extension:cell-executor",description:"Provides the notebook cell executor.",autoStart:true,provides:_.INotebookCellExecutor,activate:()=>Object.freeze({runCell:_.runCell})};var P=n(13105);var L=n(28548);const R={activate:N,id:"@jupyterlab/notebook-extension:log-output",description:"Adds cell outputs log to the application logger.",requires:[_.INotebookTracker],optional:[P.ILoggerRegistry],autoStart:true};function N(e,t,n){if(!n){return}function i(e){function t(t,i,s){if(L.KernelMessage.isDisplayDataMsg(t)||L.KernelMessage.isStreamMsg(t)||L.KernelMessage.isErrorMsg(t)||L.KernelMessage.isExecuteResultMsg(t)){const o=n.getLogger(e.context.path);o.rendermime=e.content.rendermime;const r={...t.content,output_type:t.header.msg_type};let a=i;if(L.KernelMessage.isErrorMsg(t)||L.KernelMessage.isStreamMsg(t)&&t.content.name==="stderr"){a=s}o.log({type:"output",data:r,level:a})}}e.context.sessionContext.iopubMessage.connect(((e,n)=>t(n,"info","info")));e.context.sessionContext.unhandledMessage.connect(((e,n)=>t(n,"warning","error")))}t.forEach((e=>i(e)));t.widgetAdded.connect(((e,t)=>i(t)))}var O=n(44914);var B=n.n(O);var F=n(26568);const z="jp-ActiveCellTool";const H="jp-ActiveCellTool-Content";const W="jp-ActiveCellTool-CellContent";class V extends _.NotebookTools.Tool{constructor(e){super();const{languages:t}=e;this._tracker=e.tracker;this.addClass(z);this.layout=new D.PanelLayout;this._inputPrompt=new o.InputPrompt;this.layout.addWidget(this._inputPrompt);const n=document.createElement("div");n.classList.add(H);const i=n.appendChild(document.createElement("div"));const s=i.appendChild(document.createElement("pre"));i.className=W;this._editorEl=s;this.layout.addWidget(new D.Widget({node:n}));const r=async()=>{var e,n;this._editorEl.innerHTML="";if(((e=this._cellModel)===null||e===void 0?void 0:e.type)==="code"){this._inputPrompt.executionCount=`${(n=this._cellModel.executionCount)!==null&&n!==void 0?n:""}`;this._inputPrompt.show()}else{this._inputPrompt.executionCount=null;this._inputPrompt.hide()}if(this._cellModel){await t.highlight(this._cellModel.sharedModel.getSource().split("\n")[0],t.findByMIME(this._cellModel.mimeType),this._editorEl)}};this._refreshDebouncer=new F.Debouncer(r,150)}render(e){var t,n;const i=this._tracker.activeCell;if(i)this._cellModel=(i===null||i===void 0?void 0:i.model)||null;((t=this._cellModel)===null||t===void 0?void 0:t.sharedModel).changed.connect(this.refresh,this);(n=this._cellModel)===null||n===void 0?void 0:n.mimeTypeChanged.connect(this.refresh,this);this.refresh().then((()=>undefined)).catch((()=>undefined));return B().createElement("div",{ref:e=>e===null||e===void 0?void 0:e.appendChild(this.node)})}async refresh(){await this._refreshDebouncer.invoke()}}var U=n(44336);const q="jp-CellMetadataEditor";const $="jp-NotebookMetadataEditor";class K extends _.NotebookTools.MetadataEditorTool{constructor(e){super(e);this._tracker=e.tracker;this.editor.editorHostNode.addEventListener("blur",this.editor,true);this.editor.editorHostNode.addEventListener("click",this.editor,true);this.editor.headerNode.addEventListener("click",this.editor)}_onSourceChanged(){var e,t,n;const i=(e=this._tracker.activeCell)===null||e===void 0?void 0:e.model.sharedModel;if(i&&this.editor.source){const e=Object.keys((t=i.metadata)!==null&&t!==void 0?t:{});const s=(n=this.editor.source.toJSON())!==null&&n!==void 0?n:{};i.transact((()=>{e.forEach((e=>i.deleteMetadata(e)));i.setMetadata(s)}))}}render(e){var t;const n=this._tracker.activeCell;this.editor.source=n?new U.ObservableJSON({values:n.model.metadata}):null;(t=this.editor.source)===null||t===void 0?void 0:t.changed.connect(this._onSourceChanged,this);return B().createElement("div",{className:q},B().createElement("div",{ref:e=>e===null||e===void 0?void 0:e.appendChild(this.node)}))}}class J extends _.NotebookTools.MetadataEditorTool{constructor(e){super(e);this._tracker=e.tracker;this.editor.editorHostNode.addEventListener("blur",this.editor,true);this.editor.editorHostNode.addEventListener("click",this.editor,true);this.editor.headerNode.addEventListener("click",this.editor)}_onSourceChanged(){var e,t;if(this.editor.source){(t=(e=this._tracker.currentWidget)===null||e===void 0?void 0:e.model)===null||t===void 0?void 0:t.sharedModel.setMetadata(this.editor.source.toJSON())}}render(e){var t,n;const i=this._tracker.currentWidget;this.editor.source=i?new U.ObservableJSON({values:(t=i.model)===null||t===void 0?void 0:t.metadata}):null;(n=this.editor.source)===null||n===void 0?void 0:n.changed.connect(this._onSourceChanged,this);return B().createElement("div",{className:$},B().createElement("div",{ref:e=>e===null||e===void 0?void 0:e.appendChild(this.node)}))}}var G;(function(e){e.createNew="notebook:create-new";e.interrupt="notebook:interrupt-kernel";e.restart="notebook:restart-kernel";e.restartClear="notebook:restart-clear-output";e.restartAndRunToSelected="notebook:restart-and-run-to-selected";e.restartRunAll="notebook:restart-run-all";e.reconnectToKernel="notebook:reconnect-to-kernel";e.changeKernel="notebook:change-kernel";e.getKernel="notebook:get-kernel";e.createConsole="notebook:create-console";e.createSubshellConsole="notebook:create-subshell-console";e.createOutputView="notebook:create-output-view";e.clearAllOutputs="notebook:clear-all-cell-outputs";e.shutdown="notebook:shutdown-kernel";e.closeAndShutdown="notebook:close-and-shutdown";e.trust="notebook:trust";e.exportToFormat="notebook:export-to-format";e.run="notebook:run-cell";e.runAndAdvance="notebook:run-cell-and-select-next";e.runAndInsert="notebook:run-cell-and-insert-below";e.runInConsole="notebook:run-in-console";e.runAll="notebook:run-all-cells";e.runAllAbove="notebook:run-all-above";e.runAllBelow="notebook:run-all-below";e.renderAllMarkdown="notebook:render-all-markdown";e.toCode="notebook:change-cell-to-code";e.toMarkdown="notebook:change-cell-to-markdown";e.toRaw="notebook:change-cell-to-raw";e.cut="notebook:cut-cell";e.copy="notebook:copy-cell";e.pasteAbove="notebook:paste-cell-above";e.pasteBelow="notebook:paste-cell-below";e.duplicateBelow="notebook:duplicate-below";e.pasteAndReplace="notebook:paste-and-replace-cell";e.moveUp="notebook:move-cell-up";e.moveDown="notebook:move-cell-down";e.clearOutputs="notebook:clear-cell-output";e.deleteCell="notebook:delete-cell";e.insertAbove="notebook:insert-cell-above";e.insertBelow="notebook:insert-cell-below";e.selectAbove="notebook:move-cursor-up";e.selectBelow="notebook:move-cursor-down";e.selectHeadingAboveOrCollapse="notebook:move-cursor-heading-above-or-collapse";e.selectHeadingBelowOrExpand="notebook:move-cursor-heading-below-or-expand";e.insertHeadingAbove="notebook:insert-heading-above";e.insertHeadingBelow="notebook:insert-heading-below";e.extendAbove="notebook:extend-marked-cells-above";e.extendTop="notebook:extend-marked-cells-top";e.extendBelow="notebook:extend-marked-cells-below";e.extendBottom="notebook:extend-marked-cells-bottom";e.selectAll="notebook:select-all";e.deselectAll="notebook:deselect-all";e.editMode="notebook:enter-edit-mode";e.merge="notebook:merge-cells";e.mergeAbove="notebook:merge-cell-above";e.mergeBelow="notebook:merge-cell-below";e.split="notebook:split-cell-at-cursor";e.commandMode="notebook:enter-command-mode";e.toggleAllLines="notebook:toggle-all-cell-line-numbers";e.undoCellAction="notebook:undo-cell-action";e.redoCellAction="notebook:redo-cell-action";e.redo="notebook:redo";e.undo="notebook:undo";e.markdown1="notebook:change-cell-to-heading-1";e.markdown2="notebook:change-cell-to-heading-2";e.markdown3="notebook:change-cell-to-heading-3";e.markdown4="notebook:change-cell-to-heading-4";e.markdown5="notebook:change-cell-to-heading-5";e.markdown6="notebook:change-cell-to-heading-6";e.hideCode="notebook:hide-cell-code";e.showCode="notebook:show-cell-code";e.hideAllCode="notebook:hide-all-cell-code";e.showAllCode="notebook:show-all-cell-code";e.hideOutput="notebook:hide-cell-outputs";e.showOutput="notebook:show-cell-outputs";e.toggleOutput="notebook:toggle-cell-outputs";e.hideAllOutputs="notebook:hide-all-cell-outputs";e.showAllOutputs="notebook:show-all-cell-outputs";e.toggleRenderSideBySideCurrentNotebook="notebook:toggle-render-side-by-side-current";e.setSideBySideRatio="notebook:set-side-by-side-ratio";e.enableOutputScrolling="notebook:enable-output-scrolling";e.disableOutputScrolling="notebook:disable-output-scrolling";e.selectLastRunCell="notebook:select-last-run-cell";e.replaceSelection="notebook:replace-selection";e.autoClosingBrackets="notebook:toggle-autoclosing-brackets";e.toggleCollapseCmd="notebook:toggle-heading-collapse";e.collapseAllCmd="notebook:collapse-all-headings";e.expandAllCmd="notebook:expand-all-headings";e.copyToClipboard="notebook:copy-to-clipboard";e.invokeCompleter="completer:invoke-notebook";e.selectCompleter="completer:select-notebook";e.tocRunCells="toc:run-cells";e.accessPreviousHistory="notebook:access-previous-history-entry";e.accessNextHistory="notebook:access-next-history-entry";e.virtualScrollbar="notebook:toggle-virtual-scrollbar"})(G||(G={}));const Y="Notebook";const X=["notebook","python","custom"];const Q="@jupyterlab/notebook-extension:panel";const Z="jp-NotebookExtension-sideBySideMargins";const ee={id:"@jupyterlab/notebook-extension:tracker",description:"Provides the notebook widget tracker.",provides:_.INotebookTracker,requires:[_.INotebookWidgetFactory,l.IEditorExtensionRegistry,_.INotebookCellExecutor],optional:[s.ICommandPalette,p.IDefaultFileBrowser,m.ILauncher,i.ILayoutRestorer,f.IMainMenu,i.IRouter,w.ISettingRegistry,s.ISessionContextDialogs,k.ITranslator,j.IFormRendererRegistry,p.IFileBrowserFactory],activate:Ie,autoStart:true};const te={id:"@jupyterlab/notebook-extension:factory",description:"Provides the notebook cell factory.",provides:_.NotebookPanel.IContentFactory,requires:[r.IEditorServices],autoStart:true,activate:(e,t)=>{const n=t.factoryService.newInlineEditor;return new _.NotebookPanel.ContentFactory({editorFactory:n})}};const ne={activate:Ce,provides:_.INotebookTools,id:"@jupyterlab/notebook-extension:tools",description:"Provides the notebook tools.",autoStart:true,requires:[_.INotebookTracker,r.IEditorServices,l.IEditorLanguageRegistry,C.IStateDB,k.ITranslator],optional:[b.IPropertyInspectorProvider]};const ie={id:"@jupyterlab/notebook-extension:mode-status",description:"Adds a notebook mode status widget.",autoStart:true,requires:[_.INotebookTracker,k.ITranslator],optional:[x.IStatusBar],activate:(e,t,n,i)=>{if(!i){return}const{shell:s}=e;const o=new _.CommandEditStatus(n);t.currentChanged.connect((()=>{const e=t.currentWidget;o.model.notebook=e&&e.content}));i.registerStatusItem("@jupyterlab/notebook-extension:mode-status",{priority:1,item:o,align:"right",rank:4,isActive:()=>!!s.currentWidget&&!!t.currentWidget&&s.currentWidget===t.currentWidget})}};const se={id:"@jupyterlab/notebook-extension:execution-indicator",description:"Adds a notebook execution status widget.",autoStart:true,requires:[_.INotebookTracker,i.ILabShell,k.ITranslator],optional:[x.IStatusBar,w.ISettingRegistry],activate:(e,t,n,i,s,o)=>{let r;let a;let l;const d=e=>{var o,d;let{showOnToolBar:c,showProgress:h}=e;if(!c){if(!s){return}if(!(r===null||r===void 0?void 0:r.model)){r=new _.ExecutionIndicator(i);a=(e,n)=>{const{newValue:i}=n;if(i&&t.has(i)){const e=i;r.model.attachNotebook({content:e.content,context:e.sessionContext})}};l=s.registerStatusItem("@jupyterlab/notebook-extension:execution-indicator",{item:r,align:"left",rank:3,isActive:()=>{const e=n.currentWidget;return!!e&&t.has(e)}});r.model.attachNotebook({content:(o=t.currentWidget)===null||o===void 0?void 0:o.content,context:(d=t.currentWidget)===null||d===void 0?void 0:d.sessionContext});n.currentChanged.connect(a);r.disposed.connect((()=>{n.currentChanged.disconnect(a)}))}r.model.displayOption={showOnToolBar:c,showProgress:h}}else{if(l){n.currentChanged.disconnect(a);l.dispose()}}};if(o){const t=o.load(ee.id);Promise.all([t,e.restored]).then((([e])=>{d(_.ExecutionIndicator.getSettingValue(e));e.changed.connect((e=>d(_.ExecutionIndicator.getSettingValue(e))))})).catch((e=>{console.error(e.message)}))}}};const oe={id:"@jupyterlab/notebook-extension:export",description:"Adds the export notebook commands.",autoStart:true,requires:[k.ITranslator,_.INotebookTracker],optional:[f.IMainMenu,s.ICommandPalette],activate:(e,t,n,i,s)=>{var o;const r=t.load("jupyterlab");const{commands:l,shell:d}=e;const c=e.serviceManager;const h=()=>Le.isEnabled(d,n);l.addCommand(G.exportToFormat,{label:e=>{if(e.label===undefined){return r.__("Save and Export Notebook to the given `format`.")}const t=e["label"];return e["isPalette"]?r.__("Save and Export Notebook: %1",t):t},execute:e=>{const t=Me(n,d,e);if(!t){return}const i=a.PageConfig.getNBConvertURL({format:e["format"],download:true,path:t.context.path});const{context:s}=t;if(s.model.dirty&&!s.model.readOnly){return s.save().then((()=>{window.open(i,"_blank","noopener")}))}return new Promise((e=>{window.open(i,"_blank","noopener");e(undefined)}))},isEnabled:h});let u;if(i){u=(o=i.fileMenu.items.find((e=>{var t;return e.type==="submenu"&&((t=e.submenu)===null||t===void 0?void 0:t.id)==="jp-mainmenu-file-notebookexport"})))===null||o===void 0?void 0:o.submenu}let p=false;const m=async()=>{if(p){return}n.widgetAdded.disconnect(m);p=true;const e=await c.nbconvert.getExportFormats(false);if(!e){return}const i=Le.getFormatLabels(t);const o=Object.keys(e);o.forEach((function(e){const t=r.__(e[0].toUpperCase()+e.substr(1));const n=i[e]?i[e]:t;let o={format:e,label:n,isPalette:false};if(X.indexOf(e)===-1){if(u){u.addItem({command:G.exportToFormat,args:o})}if(s){o={format:e,label:n,isPalette:true};const t=r.__("Notebook Operations");s.addItem({command:G.exportToFormat,category:t,args:o})}}}))};n.widgetAdded.connect(m)}};const re={id:"@jupyterlab/notebook-extension:trust-status",description:"Adds the notebook trusted status widget.",autoStart:true,requires:[_.INotebookTracker,k.ITranslator],optional:[x.IStatusBar],activate:(e,t,n,i)=>{if(!i){return}const{shell:s}=e;const o=new _.NotebookTrustStatus(n);t.currentChanged.connect((()=>{const e=t.currentWidget;o.model.notebook=e&&e.content}));i.registerStatusItem("@jupyterlab/notebook-extension:trust-status",{item:o,align:"right",rank:3,isActive:()=>!!s.currentWidget&&!!t.currentWidget&&s.currentWidget===t.currentWidget})}};const ae={id:"@jupyterlab/notebook-extension:widget-factory",description:"Provides the notebook widget factory.",provides:_.INotebookWidgetFactory,requires:[_.NotebookPanel.IContentFactory,r.IEditorServices,y.IRenderMimeRegistry,s.IToolbarWidgetRegistry],optional:[w.ISettingRegistry,s.ISessionContextDialogs,k.ITranslator],activate:xe,autoStart:true};const le={id:"@jupyterlab/notebook-extension:cloned-outputs",description:"Adds the clone output feature.",requires:[c.IDocumentManager,_.INotebookTracker,k.ITranslator],optional:[i.ILayoutRestorer],activate:Se,autoStart:true};const de={id:"@jupyterlab/notebook-extension:code-console",description:"Adds the notebook code consoles features.",requires:[_.INotebookTracker,k.ITranslator],activate:ke,autoStart:true};const ce={id:"@jupyterlab/notebook-extension:copy-output",description:"Adds the copy cell outputs feature.",activate:je,requires:[k.ITranslator,_.INotebookTracker],autoStart:true};const he={id:"@jupyterlab/notebook-extension:kernel-status",description:"Adds the notebook kernel status.",activate:(e,t,n)=>{const i=e=>{let n=null;if(e&&t.has(e)){return e.sessionContext}return n};n.addSessionProvider(i)},requires:[_.INotebookTracker,s.IKernelStatusModel],autoStart:true};const ue={id:"@jupyterlab/notebook-extension:cursor-position",description:"Adds the notebook cursor position status.",activate:(e,t,n)=>{let i=null;const s=async e=>{let s=null;if(e!==i){i===null||i===void 0?void 0:i.content.activeCellChanged.disconnect(n.update);i=null;if(e&&t.has(e)){e.content.activeCellChanged.connect(n.update);const t=e.content.activeCell;s=null;if(t){await t.ready;s=t.editor}i=e}}else if(e){const t=e.content.activeCell;s=null;if(t){await t.ready;s=t.editor}}return s};n.addEditorProvider(s)},requires:[_.INotebookTracker,r.IPositionModel],autoStart:true};const pe={id:"@jupyterlab/notebook-extension:completer",description:"Adds the code completion capability to notebooks.",requires:[_.INotebookTracker],optional:[d.ICompletionProviderManager,k.ITranslator,s.ISanitizer],activate:Ee,autoStart:true};const me={id:"@jupyterlab/notebook-extension:search",description:"Adds search capability to notebooks.",requires:[u.ISearchProviderRegistry],autoStart:true,activate:(e,t)=>{t.add("jp-notebookSearchProvider",_.NotebookSearchProvider)}};const ge={id:"@jupyterlab/notebook-extension:toc",description:"Adds table of content capability to the notebooks",requires:[_.INotebookTracker,S.ITableOfContentsRegistry,s.ISanitizer],optional:[y.IMarkdownParser,w.ISettingRegistry],autoStart:true,activate:(e,t,n,i,s,o)=>{const r=new _.NotebookToCFactory(t,s,i);n.add(r);if(o){Promise.all([e.restored,o.load(ee.id)]).then((([e,t])=>{const n=()=>{var e;r.scrollToTop=(e=t.composite["scrollHeadingToTop"])!==null&&e!==void 0?e:true};n();t.changed.connect(n)})).catch((e=>{console.error("Failed to load notebook table of content settings.",e)}))}}};const fe={id:"@jupyterlab/notebook-extension:language-server",description:"Adds language server capability to the notebooks.",requires:[_.INotebookTracker,g.ILSPDocumentConnectionManager,g.ILSPFeatureManager,g.ILSPCodeExtractorsManager,g.IWidgetLSPAdapterTracker],activate:Te,autoStart:true};const ve={id:"@jupyterlab/notebook-extension:update-raw-mimetype",description:"Adds metadata form editor for raw cell mimetype.",autoStart:true,requires:[_.INotebookTracker,v.IMetadataFormProvider,k.ITranslator],activate:(e,t,n,i)=>{const s=i.load("jupyterlab");let o=false;async function r(){if(o){return}if(!n.get("commonToolsSection")){return}const a=n.get("commonToolsSection").getProperties("/raw_mimetype");if(!a){return}t.widgetAdded.disconnect(r);o=true;const l=e.serviceManager;const d=await l.nbconvert.getExportFormats(false);if(!d){return}const c=Object.keys(d);const h=Le.getFormatLabels(i);c.forEach((function(e){var t;const n=((t=a.oneOf)===null||t===void 0?void 0:t.filter((t=>t.const===e)).length)>0;if(!n){const t=s.__(e[0].toUpperCase()+e.substr(1));const n=h[e]?h[e]:t;const i=d[e].output_mimetype;a.oneOf.push({const:i,title:n})}}));n.get("commonToolsSection").setProperties("/raw_mimetype",a)}t.widgetAdded.connect(r)}};const _e={id:"@jupyterlab/notebook-extension:metadata-editor",description:"Adds metadata form for full metadata editor.",autoStart:true,requires:[_.INotebookTracker,r.IEditorServices,j.IFormRendererRegistry],optional:[k.ITranslator],activate:(e,t,n,i,s)=>{const o=e=>n.factoryService.newInlineEditor(e);const r={fieldRenderer:e=>new K({editorFactory:o,tracker:t,label:"Cell metadata",translator:s}).render(e)};i.addRenderer("@jupyterlab/notebook-extension:metadata-editor.cell-metadata",r);const a={fieldRenderer:e=>new J({editorFactory:o,tracker:t,label:"Notebook metadata",translator:s}).render(e)};i.addRenderer("@jupyterlab/notebook-extension:metadata-editor.notebook-metadata",a)}};const be={id:"@jupyterlab/notebook-extension:active-cell-tool",description:"Adds active cell field in the metadata editor tab.",autoStart:true,requires:[_.INotebookTracker,j.IFormRendererRegistry,l.IEditorLanguageRegistry],activate:(e,t,n,i)=>{const s={fieldRenderer:e=>new V({tracker:t,languages:i}).render(e)};n.addRenderer("@jupyterlab/notebook-extension:active-cell-tool.renderer",s)}};const ye=[A,te,ee,se,oe,ne,ie,re,ae,R,le,de,ce,he,ue,pe,me,ge,fe,ve,_e,be];const we=ye;function Ce(e,t,n,i,s,o,r){const a=o.load("jupyterlab");const l="notebook-tools";const d=new _.NotebookTools({tracker:t,translator:o});const c=(e,t)=>{switch(t.type){case"activate-request":void s.save(l,{open:true});break;case"after-hide":case"close-request":void s.remove(l);break;default:break}return true};d.title.icon=j.buildIcon;d.title.caption=a.__("Notebook Tools");d.id=l;M.MessageLoop.installMessageHook(d,c);if(r){t.widgetAdded.connect(((e,t)=>{const n=r.register(t);n.render(d)}))}return d}function xe(e,t,n,i,o,r,l,d){const c=d!==null&&d!==void 0?d:k.nullTranslator;const u=l!==null&&l!==void 0?l:new s.SessionContextDialogs({translator:c});const p=a.PageConfig.getOption("notebookStartsKernel");const m=p===""||p.toLowerCase()==="true";const{commands:g}=e;let f;o.addFactory(Y,"save",(e=>h.ToolbarItems.createSaveButton(g,e.context.fileChanged)));o.addFactory(Y,"cellType",(e=>_.ToolbarItems.createCellTypeItem(e,c)));o.addFactory(Y,"kernelName",(e=>s.Toolbar.createKernelNameItem(e.sessionContext,u,c)));o.addFactory(Y,"executionProgress",(e=>{const t=r===null||r===void 0?void 0:r.load(ee.id);const n=_.ExecutionIndicator.createExecutionIndicatorItem(e,c,t);void(t===null||t===void 0?void 0:t.then((t=>{e.disposed.connect((()=>{t.dispose()}))})));return n}));if(r){f=(0,s.createToolbarFactory)(o,r,Y,Q,c)}const v=c.load("jupyterlab");const b=new _.NotebookWidgetFactory({name:Y,label:v.__("Notebook"),fileTypes:["notebook"],modelName:"notebook",defaultFor:["notebook"],preferKernel:m,canStartKernel:true,rendermime:i,contentFactory:t,editorConfig:_.StaticNotebook.defaultEditorConfig,notebookConfig:_.StaticNotebook.defaultNotebookConfig,mimeTypeService:n.mimeTypeService,toolbarFactory:f,translator:c});e.docRegistry.addWidgetFactory(b);return b}function Se(e,t,n,i,o){const r=i.load("jupyterlab");const a=new s.WidgetTracker({namespace:"cloned-outputs"});if(o){void o.restore(a,{command:G.createOutputView,args:e=>({path:e.content.path,index:e.content.index}),name:e=>`${e.content.path}:${e.content.index}`,when:n.restored})}const{commands:l,shell:d}=e;const c=()=>Le.isEnabledAndSingleSelected(d,n);l.addCommand(G.createOutputView,{label:r.__("Create New View for Cell Output"),execute:async e=>{var o;let r;let l;const d=e.path;let c=e.index;if(d&&c!==undefined&&c!==null){l=t.findWidget(d,Y);if(!l){return}}else{l=n.currentWidget;if(!l){return}r=l.content.activeCell;c=l.content.activeCellIndex}const h=new Le.ClonedOutputArea({notebook:l,cell:r,index:c,translator:i});const u=new s.MainAreaWidget({content:h});l.context.addSibling(u,{ref:l.id,mode:"split-bottom",type:"Cloned Output"});const p=()=>{void a.save(u)};l.context.pathChanged.connect(p);(o=l.context.model)===null||o===void 0?void 0:o.cells.changed.connect(p);void a.add(u);l.content.disposed.connect((()=>{var e;l.context.pathChanged.disconnect(p);(e=l.context.model)===null||e===void 0?void 0:e.cells.changed.disconnect(p);u.dispose()}))},isEnabled:c})}function ke(e,t,n){const i=n.load("jupyterlab");const{commands:s,shell:o}=e;const r=()=>Le.isEnabled(o,t);s.addCommand(G.createConsole,{label:i.__("New Console for Notebook"),execute:e=>{const n=t.currentWidget;if(!n){return}return Le.createConsole(s,n,e["activate"])},isEnabled:r});s.addCommand(G.createSubshellConsole,{label:i.__("New Subshell Console for Notebook"),execute:e=>{const n=t.currentWidget;if(!n){return}return Le.createConsole(s,n,e["activate"],true)},isEnabled:r,isVisible:()=>{var e,n,i;const s=(n=(e=t.currentWidget)===null||e===void 0?void 0:e.context.sessionContext.session)===null||n===void 0?void 0:n.kernel;return(i=s===null||s===void 0?void 0:s.supportsSubshells)!==null&&i!==void 0?i:false}});s.addCommand(G.runInConsole,{label:i.__("Run Selected Text or Current Line in Console"),execute:async e=>{var n,i;const o=t.currentWidget;if(!o){return}const{context:r,content:a}=o;const l=a.activeCell;const d=l===null||l===void 0?void 0:l.model.metadata;const c=r.path;if(!l||l.model.type!=="code"){return}let h;const u=l.editor;if(!u){return}const p=u.getSelection();const{start:m,end:g}=p;const f=m.column!==g.column||m.line!==g.line;if(f){const e=u.getOffsetAt(p.start);const t=u.getOffsetAt(p.end);h=u.model.sharedModel.getSource().substring(e,t)}else{const e=u.getCursorPosition();const t=u.model.sharedModel.getSource().split("\n");let s=p.start.line;while(s0;let a=0;let l=a+1;while(true){h=t.slice(a,l).join("\n");const d=await((i=(n=o.context.sessionContext.session)===null||n===void 0?void 0:n.kernel)===null||i===void 0?void 0:i.requestIsComplete({code:h+"\n\n"}));if((d===null||d===void 0?void 0:d.content.status)==="complete"){if(st.addRange(e)))}e.commands.addCommand(G.copyToClipboard,{label:i.__("Copy Output to Clipboard"),execute:e=>{var t;const i=(t=n.currentWidget)===null||t===void 0?void 0:t.content.activeCell;if(i==null){return}const o=i.outputArea.outputTracker.currentWidget;if(o==null){return}const r=o.node.getElementsByClassName("jp-OutputArea-output");if(r.length>0){const e=r[0];s(e)}}});e.contextMenu.addItem({command:G.copyToClipboard,selector:".jp-Notebook .jp-OutputArea-child",rank:0})}function Ie(e,t,n,i,o,r,a,l,d,c,h,u,p,m,g){(0,_.setCellExecutor)(i);const f=p!==null&&p!==void 0?p:k.nullTranslator;const v=u!==null&&u!==void 0?u:new s.SessionContextDialogs({translator:f});const b=f.load("jupyterlab");const y=e.serviceManager;const{commands:w,shell:C}=e;const x=new _.NotebookTracker({namespace:"notebook"});function S(e,t){if(t.hash&&x.currentWidget){x.currentWidget.setFragment(t.hash)}}c===null||c===void 0?void 0:c.routed.connect(S);const I=()=>Le.isEnabled(C,x);const M=e=>document.documentElement.style.setProperty("--jp-side-by-side-output-size",`${e}fr`);const D=h?h.load(ee.id):Promise.reject(new Error(`No setting registry for ${ee.id}`));D.then((t=>{O(t);t.changed.connect((()=>{O(t);w.notifyCommandChanged(G.virtualScrollbar)}));const i=(e,n)=>{const{newValue:i,oldValue:s}=n;const o=i.autoStartDefault;if(typeof o==="boolean"&&o!==s.autoStartDefault){if(o!==t.get("autoStartDefaultKernel").composite)t.set("autoStartDefaultKernel",o).catch((e=>{console.error(`Failed to set ${t.id}.autoStartDefaultKernel`)}))}};const o=new WeakSet;const r=e=>{const t=e.context.sessionContext;if(!t.isDisposed&&!o.has(t)){o.add(t);t.kernelPreferenceChanged.connect(i);t.disposed.connect((()=>{t.kernelPreferenceChanged.disconnect(i)}))}};x.forEach(r);x.widgetAdded.connect(((e,t)=>{r(t)}));w.addCommand(G.autoClosingBrackets,{execute:e=>{var n;const i=t.get("codeCellConfig").composite;const s=t.get("markdownCellConfig").composite;const o=t.get("rawCellConfig").composite;const r=i.autoClosingBrackets||s.autoClosingBrackets||o.autoClosingBrackets;const a=!!((n=e["force"])!==null&&n!==void 0?n:!r);[i.autoClosingBrackets,s.autoClosingBrackets,o.autoClosingBrackets]=[a,a,a];void t.set("codeCellConfig",i);void t.set("markdownCellConfig",s);void t.set("rawCellConfig",o)},label:b.__("Auto Close Brackets for All Notebook Cell Types"),isToggled:()=>["codeCellConfig","markdownCellConfig","rawCellConfig"].some((e=>{var i;return((i=t.get(e).composite.autoClosingBrackets)!==null&&i!==void 0?i:n.baseConfiguration["autoClosingBrackets"])===true}))});w.addCommand(G.setSideBySideRatio,{label:b.__("Set side-by-side ratio"),execute:e=>{s.InputDialog.getNumber({title:b.__("Width of the output in side-by-side mode"),value:t.get("sideBySideOutputRatio").composite}).then((e=>{M(e.value);if(e.value){void t.set("sideBySideOutputRatio",e.value)}})).catch(console.error)}});De(e,x,f,v,t,I)})).catch((n=>{console.warn(n.message);N({editorConfig:t.editorConfig,notebookConfig:t.notebookConfig,kernelShutdown:t.shutdownOnClose,autoStartDefault:t.autoStartDefault});De(e,x,f,v,null,I)}));if(m){const e=m.getRenderer("@jupyterlab/codemirror-extension:plugin.defaultConfig");if(e){m.addRenderer("@jupyterlab/notebook-extension:tracker.codeCellConfig",e);m.addRenderer("@jupyterlab/notebook-extension:tracker.markdownCellConfig",e);m.addRenderer("@jupyterlab/notebook-extension:tracker.rawCellConfig",e)}}if(l){void l.restore(x,{command:"docmanager:open",args:e=>({path:e.context.path,factory:Y}),name:e=>e.context.path,when:y.ready})}const A=e.docRegistry;const P=new _.NotebookModelFactory({disableDocumentWideUndoRedo:t.notebookConfig.disableDocumentWideUndoRedo,collaborative:true});A.addModelFactory(P);if(o){Ae(o,f)}let L=0;const R=e.docRegistry.getFileType("notebook");t.widgetCreated.connect(((e,t)=>{var n,i;t.id=t.id||`notebook-${++L}`;t.title.icon=R===null||R===void 0?void 0:R.icon;t.title.iconClass=(n=R===null||R===void 0?void 0:R.iconClass)!==null&&n!==void 0?n:"";t.title.iconLabel=(i=R===null||R===void 0?void 0:R.iconLabel)!==null&&i!==void 0?i:"";t.context.pathChanged.connect((()=>{void x.save(t)}));void x.add(t)}));function N(e){x.forEach((t=>{t.setConfig(e)}));if(e.notebookConfig.windowingMode!=="full"){x.forEach((e=>{if(e.content.scrollbar){e.content.scrollbar=false}}))}}function O(e){const n={..._.StaticNotebook.defaultEditorConfig.code,...e.get("codeCellConfig").composite};const i={..._.StaticNotebook.defaultEditorConfig.markdown,...e.get("markdownCellConfig").composite};const s={..._.StaticNotebook.defaultEditorConfig.raw,...e.get("rawCellConfig").composite};t.editorConfig={code:n,markdown:i,raw:s};t.notebookConfig={enableKernelInitNotification:e.get("enableKernelInitNotification").composite,autoRenderMarkdownCells:e.get("autoRenderMarkdownCells").composite,showHiddenCellsButton:e.get("showHiddenCellsButton").composite,scrollPastEnd:e.get("scrollPastEnd").composite,defaultCell:e.get("defaultCell").composite,recordTiming:e.get("recordTiming").composite,overscanCount:e.get("overscanCount").composite,showInputPlaceholder:e.get("showInputPlaceholder").composite,inputHistoryScope:e.get("inputHistoryScope").composite,maxNumberOutputs:e.get("maxNumberOutputs").composite,showEditorForReadOnlyMarkdown:e.get("showEditorForReadOnlyMarkdown").composite,disableDocumentWideUndoRedo:!e.get("documentWideUndoRedo").composite,renderingLayout:e.get("renderingLayout").composite,sideBySideLeftMarginOverride:e.get("sideBySideLeftMarginOverride").composite,sideBySideRightMarginOverride:e.get("sideBySideRightMarginOverride").composite,sideBySideOutputRatio:e.get("sideBySideOutputRatio").composite,windowingMode:e.get("windowingMode").composite,accessKernelHistory:e.get("accessKernelHistory").composite};M(t.notebookConfig.sideBySideOutputRatio);const o=`.jp-mod-sideBySide.jp-Notebook .jp-Notebook-cell {\n margin-left: ${t.notebookConfig.sideBySideLeftMarginOverride} !important;\n margin-right: ${t.notebookConfig.sideBySideRightMarginOverride} !important;`;const r=document.getElementById(Z);if(r){r.innerText=o}else{document.head.insertAdjacentHTML("beforeend",``)}t.autoStartDefault=e.get("autoStartDefaultKernel").composite;t.shutdownOnClose=e.get("kernelShutdown").composite;P.disableDocumentWideUndoRedo=!e.get("documentWideUndoRedo").composite;N({editorConfig:t.editorConfig,notebookConfig:t.notebookConfig,kernelShutdown:t.shutdownOnClose,autoStartDefault:t.autoStartDefault})}if(d){Pe(d,I)}const B=async(e,t,n)=>{const i=await w.execute("docmanager:new-untitled",{path:e,type:"notebook"});if(i!==undefined){const e=await w.execute("docmanager:open",{path:i.path,factory:Y,kernel:{id:t,name:n}});e.isUntitled=true;return e}};w.addCommand(G.createNew,{label:e=>{var t,n,i;const s=e["kernelName"]||"";if(e["isLauncher"]&&e["kernelName"]&&y.kernelspecs){return(i=(n=(t=y.kernelspecs.specs)===null||t===void 0?void 0:t.kernelspecs[s])===null||n===void 0?void 0:n.display_name)!==null&&i!==void 0?i:""}if(e["isPalette"]||e["isContextMenu"]){return b.__("New Notebook")}return b.__("Notebook")},caption:b.__("Create a new notebook"),icon:e=>e["isPalette"]?undefined:j.notebookIcon,execute:e=>{var t,n;const i=(t=g===null||g===void 0?void 0:g.tracker.currentWidget)!==null&&t!==void 0?t:r;const s=e["cwd"]||((n=i===null||i===void 0?void 0:i.model.path)!==null&&n!==void 0?n:"");const o=e["kernelId"]||"";const a=e["kernelName"]||"";return B(s,o,a)}});if(a){void y.ready.then((()=>{let e=null;const t=()=>{if(e){e.dispose();e=null}const t=y.kernelspecs.specs;if(!t){return}e=new T.DisposableSet;for(const n in t.kernelspecs){const i=n===t.default?0:Infinity;const s=t.kernelspecs[n];const o=s.resources["logo-svg"]||s.resources["logo-64x64"];e.add(a.add({command:G.createNew,args:{isLauncher:true,kernelName:n},category:b.__("Notebook"),rank:i,kernelIconUrl:o,metadata:{kernel:E.JSONExt.deepCopy(s.metadata||{})}}))}};t();y.kernelspecs.specsChanged.connect(t)}))}return x}function Ee(e,t,n,i,o){if(!n){return}const r=(i!==null&&i!==void 0?i:k.nullTranslator).load("jupyterlab");const a=o!==null&&o!==void 0?o:new s.Sanitizer;e.commands.addCommand(G.invokeCompleter,{label:r.__("Display the completion helper."),execute:e=>{var i;const s=t.currentWidget;if(s&&((i=s.content.activeCell)===null||i===void 0?void 0:i.model.type)==="code"){n.invoke(s.id)}}});e.commands.addCommand(G.selectCompleter,{label:r.__("Select the completion suggestion."),execute:()=>{const e=t.currentWidget&&t.currentWidget.id;if(e){return n.select(e)}}});e.commands.addKeyBinding({command:G.selectCompleter,keys:["Enter"],selector:".jp-Notebook .jp-mod-completer-active"});const l=async(e,t)=>{var i,s;const o={editor:(s=(i=t.content.activeCell)===null||i===void 0?void 0:i.editor)!==null&&s!==void 0?s:null,session:t.sessionContext.session,widget:t,sanitizer:a};await n.updateCompleter(o);t.content.activeCellChanged.connect(((e,i)=>{i===null||i===void 0?void 0:i.ready.then((()=>{const e={editor:i.editor,session:t.sessionContext.session,widget:t,sanitizer:a};return n.updateCompleter(e)})).catch(console.error)}));t.sessionContext.sessionChanged.connect((()=>{var e;(e=t.content.activeCell)===null||e===void 0?void 0:e.ready.then((()=>{var e,i;const s={editor:(i=(e=t.content.activeCell)===null||e===void 0?void 0:e.editor)!==null&&i!==void 0?i:null,session:t.sessionContext.session,widget:t};return n.updateCompleter(s)})).catch(console.error)}))};t.widgetAdded.connect(l);n.activeProvidersChanged.connect((()=>{t.forEach((e=>{l(undefined,e).catch((e=>console.error(e)))}))}))}function Te(e,t,n,i,s,o){t.widgetAdded.connect((async(e,t)=>{const r=new _.NotebookAdapter(t,{connectionManager:n,featureManager:i,foreignCodeExtractorsManager:s});o.add(r)}))}function Me(e,t,n){var i;const o=n[s.SemanticCommand.WIDGET]?(i=e.find((e=>e.id===n[s.SemanticCommand.WIDGET])))!==null&&i!==void 0?i:null:e.currentWidget;const r=n["activate"]!==false;if(r&&o){t.activateById(o.id)}return o}function De(e,t,n,i,r,a){var l;const d=n.load("jupyterlab");const{commands:c,shell:h}=e;const u=()=>Le.isEnabledAndSingleSelected(h,t);const p=e=>{var t,n;for(const i of e.widgets){if(i instanceof o.MarkdownCell&&i.headingCollapsed){_.NotebookActions.setHeadingCollapse(i,true,e)}if(i.model.id===((n=(t=e.activeCell)===null||t===void 0?void 0:t.model)===null||n===void 0?void 0:n.id)){_.NotebookActions.expandParent(i,e)}}};const m=()=>Le.isEnabledAndHeadingSelected(h,t);t.currentChanged.connect(((e,t)=>{var n,i;if(!((i=(n=t===null||t===void 0?void 0:t.content)===null||n===void 0?void 0:n.model)===null||i===void 0?void 0:i.cells)){return}t.content.model.cells.changed.connect(((e,n)=>{p(t.content)}));t.content.activeCellChanged.connect(((e,t)=>{_.NotebookActions.expandParent(t,e)}))}));t.selectionChanged.connect((()=>{c.notifyCommandChanged(G.duplicateBelow);c.notifyCommandChanged(G.deleteCell);c.notifyCommandChanged(G.copy);c.notifyCommandChanged(G.cut);c.notifyCommandChanged(G.pasteBelow);c.notifyCommandChanged(G.pasteAbove);c.notifyCommandChanged(G.pasteAndReplace);c.notifyCommandChanged(G.moveUp);c.notifyCommandChanged(G.moveDown);c.notifyCommandChanged(G.run);c.notifyCommandChanged(G.runAll);c.notifyCommandChanged(G.runAndAdvance);c.notifyCommandChanged(G.runAndInsert)}));t.activeCellChanged.connect((()=>{c.notifyCommandChanged(G.moveUp);c.notifyCommandChanged(G.moveDown)}));c.addCommand(G.runAndAdvance,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Run Selected Cell","Run Selected Cells",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},caption:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Run this cell and advance","Run these %1 cells and advance",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const s=Me(t,h,e);if(s){const{context:e,content:t}=s;return _.NotebookActions.runAndAdvance(t,e.sessionContext,i,n)}},isEnabled:e=>e.toolbar?true:a(),icon:e=>e.toolbar?j.runIcon:undefined});c.addCommand(G.run,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Run Selected Cell and Do not Advance","Run Selected Cells and Do not Advance",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const s=Me(t,h,e);if(s){const{context:e,content:t}=s;return _.NotebookActions.run(t,e.sessionContext,i,n)}},isEnabled:a});c.addCommand(G.runAndInsert,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Run Selected Cell and Insert Below","Run Selected Cells and Insert Below",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const s=Me(t,h,e);if(s){const{context:e,content:t}=s;return _.NotebookActions.runAndInsert(t,e.sessionContext,i,n)}},isEnabled:a});c.addCommand(G.runAll,{label:d.__("Run All Cells"),caption:d.__("Run all cells"),execute:e=>{const s=Me(t,h,e);if(s){const{context:e,content:t}=s;return _.NotebookActions.runAll(t,e.sessionContext,i,n)}},isEnabled:a});c.addCommand(G.runAllAbove,{label:d.__("Run All Above Selected Cell"),execute:e=>{const s=Me(t,h,e);if(s){const{context:e,content:t}=s;return _.NotebookActions.runAllAbove(t,e.sessionContext,i,n)}},isEnabled:()=>u()&&t.currentWidget.content.activeCellIndex!==0});c.addCommand(G.runAllBelow,{label:d.__("Run Selected Cell and All Below"),execute:e=>{const s=Me(t,h,e);if(s){const{context:e,content:t}=s;return _.NotebookActions.runAllBelow(t,e.sessionContext,i,n)}},isEnabled:()=>u()&&(t.currentWidget.content.widgets.length===1||t.currentWidget.content.activeCellIndex!==t.currentWidget.content.widgets.length-1)});c.addCommand(G.renderAllMarkdown,{label:d.__("Render All Markdown Cells"),execute:e=>{const n=Me(t,h,e);if(n){const{content:e}=n;return _.NotebookActions.renderAllMarkdown(e)}},isEnabled:a});c.addCommand(G.restart,{label:d.__("Restart Kernel…"),caption:d.__("Restart the kernel"),execute:e=>{const n=Me(t,h,e);if(n){return i.restart(n.sessionContext)}},isEnabled:e=>e.toolbar?true:a(),icon:e=>e.toolbar?j.refreshIcon:undefined});c.addCommand(G.shutdown,{label:d.__("Shut Down Kernel"),execute:e=>{const n=Me(t,h,e);if(!n){return}return n.context.sessionContext.shutdown()},isEnabled:a});c.addCommand(G.closeAndShutdown,{label:d.__("Close and Shut Down Notebook…"),execute:e=>{const n=Me(t,h,e);if(!n){return}const i=n.title.label;return(0,s.showDialog)({title:d.__("Shut down the notebook?"),body:d.__('Are you sure you want to close "%1"?',i),buttons:[s.Dialog.cancelButton(),s.Dialog.warnButton()]}).then((e=>{if(e.button.accept){return c.execute(G.shutdown,{activate:false}).then((()=>{n.dispose()}))}}))},isEnabled:a});c.addCommand(G.trust,{label:()=>d.__("Trust Notebook"),execute:e=>{const n=Me(t,h,e);if(n){const{context:e,content:t}=n;return _.NotebookActions.trust(t).then((()=>e.save()))}},isEnabled:a});c.addCommand(G.restartClear,{label:d.__("Restart Kernel and Clear Outputs of All Cells…"),caption:d.__("Restart the kernel and clear all outputs of all cells"),execute:async()=>{const e=await c.execute(G.restart,{activate:false});if(e){await c.execute(G.clearAllOutputs)}},isEnabled:a});c.addCommand(G.restartAndRunToSelected,{label:d.__("Restart Kernel and Run up to Selected Cell…"),execute:async e=>{const s=Me(t,h,{activate:false,...e});if(!s){return}const{context:o,content:r}=s;const a=r.widgets.slice(0,r.activeCellIndex+1);const l=await i.restart(s.sessionContext);if(l){return _.NotebookActions.runCells(r,a,o.sessionContext,i,n)}},isEnabled:u});c.addCommand(G.restartRunAll,{label:d.__("Restart Kernel and Run All Cells…"),caption:d.__("Restart the kernel and run all cells"),execute:async e=>{const s=Me(t,h,{activate:false,...e});if(!s){return}const{context:o,content:r}=s;const a=r.widgets;const l=await i.restart(s.sessionContext);if(l){return _.NotebookActions.runCells(r,a,o.sessionContext,i,n)}},isEnabled:e=>e.toolbar?true:a(),icon:e=>e.toolbar?j.fastForwardIcon:undefined});c.addCommand(G.clearAllOutputs,{label:d.__("Clear Outputs of All Cells"),caption:d.__("Clear all outputs of all cells"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.clearAllOutputs(n.content)}},isEnabled:a});c.addCommand(G.clearOutputs,{label:d.__("Clear Cell Output"),caption:d.__("Clear outputs for the selected cells"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.clearOutputs(n.content)}},isEnabled:a});c.addCommand(G.interrupt,{label:d.__("Interrupt Kernel"),caption:d.__("Interrupt the kernel"),execute:e=>{var n;const i=Me(t,h,e);if(!i){return}const s=(n=i.context.sessionContext.session)===null||n===void 0?void 0:n.kernel;if(s){return s.interrupt()}},isEnabled:e=>e.toolbar?true:a(),icon:e=>e.toolbar?j.stopIcon:undefined});c.addCommand(G.toCode,{label:d.__("Change to Code Cell Type"),execute:e=>{const i=Me(t,h,e);if(i){return _.NotebookActions.changeCellType(i.content,"code",n)}},isEnabled:a});c.addCommand(G.toMarkdown,{label:d.__("Change to Markdown Cell Type"),execute:e=>{const i=Me(t,h,e);if(i){return _.NotebookActions.changeCellType(i.content,"markdown",n)}},isEnabled:a});c.addCommand(G.toRaw,{label:d.__("Change to Raw Cell Type"),execute:e=>{const i=Me(t,h,e);if(i){return _.NotebookActions.changeCellType(i.content,"raw",n)}},isEnabled:a});c.addCommand(G.cut,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Cut Cell","Cut Cells",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},caption:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Cut this cell","Cut these %1 cells",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.cut(n.content)}},icon:e=>e.toolbar?j.cutIcon:undefined,isEnabled:e=>e.toolbar?true:a()});c.addCommand(G.copy,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Copy Cell","Copy Cells",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},caption:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Copy this cell","Copy these %1 cells",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.copy(n.content)}},icon:e=>e.toolbar?j.copyIcon:undefined,isEnabled:e=>e.toolbar?true:a()});c.addCommand(G.pasteBelow,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Paste Cell Below","Paste Cells Below",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},caption:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Paste this cell from the clipboard","Paste these %1 cells from the clipboard",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.paste(n.content,"below")}},icon:e=>e.toolbar?j.pasteIcon:undefined,isEnabled:e=>e.toolbar?true:a()});c.addCommand(G.pasteAbove,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Paste Cell Above","Paste Cells Above",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},caption:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Paste this cell from the clipboard","Paste these %1 cells from the clipboard",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.paste(n.content,"above")}},isEnabled:a});c.addCommand(G.duplicateBelow,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Duplicate Cell Below","Duplicate Cells Below",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},caption:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Create a duplicate of this cell below","Create duplicates of %1 cells below",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const n=Me(t,h,e);if(n){_.NotebookActions.duplicate(n.content,"belowSelected")}},icon:e=>e.toolbar?j.duplicateIcon:undefined,isEnabled:e=>e.toolbar?true:a()});c.addCommand(G.pasteAndReplace,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Paste Cell and Replace","Paste Cells and Replace",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.paste(n.content,"replace")}},isEnabled:a});c.addCommand(G.deleteCell,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Delete Cell","Delete Cells",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},caption:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Delete this cell","Delete these %1 cells",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.deleteCells(n.content)}},isEnabled:e=>e.toolbar?true:a()});c.addCommand(G.split,{label:d.__("Split Cell"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.splitCell(n.content)}},isEnabled:a});c.addCommand(G.merge,{label:d.__("Merge Selected Cells"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.mergeCells(n.content)}},isEnabled:a});c.addCommand(G.mergeAbove,{label:d.__("Merge Cell Above"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.mergeCells(n.content,true)}},isEnabled:a});c.addCommand(G.mergeBelow,{label:d.__("Merge Cell Below"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.mergeCells(n.content,false)}},isEnabled:a});c.addCommand(G.insertAbove,{label:d.__("Insert Cell Above"),caption:d.__("Insert a cell above"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.insertAbove(n.content)}},icon:e=>e.toolbar?j.addAboveIcon:undefined,isEnabled:e=>e.toolbar?true:a()});c.addCommand(G.insertBelow,{label:d.__("Insert Cell Below"),caption:d.__("Insert a cell below"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.insertBelow(n.content)}},icon:e=>e.toolbar?j.addBelowIcon:undefined,isEnabled:e=>e.toolbar?true:a()});c.addCommand(G.selectAbove,{label:d.__("Select Cell Above"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.selectAbove(n.content)}},isEnabled:a});c.addCommand(G.selectBelow,{label:d.__("Select Cell Below"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.selectBelow(n.content)}},isEnabled:a});c.addCommand(G.insertHeadingAbove,{label:d.__("Insert Heading Above Current Heading"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.insertSameLevelHeadingAbove(n.content)}},isEnabled:a});c.addCommand(G.insertHeadingBelow,{label:d.__("Insert Heading Below Current Heading"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.insertSameLevelHeadingBelow(n.content)}},isEnabled:a});c.addCommand(G.selectHeadingAboveOrCollapse,{label:d.__("Select Heading Above or Collapse Heading"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.selectHeadingAboveOrCollapseHeading(n.content)}},isEnabled:a});c.addCommand(G.selectHeadingBelowOrExpand,{label:d.__("Select Heading Below or Expand Heading"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.selectHeadingBelowOrExpandHeading(n.content)}},isEnabled:a});c.addCommand(G.extendAbove,{label:d.__("Extend Selection Above"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.extendSelectionAbove(n.content)}},isEnabled:a});c.addCommand(G.extendTop,{label:d.__("Extend Selection to Top"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.extendSelectionAbove(n.content,true)}},isEnabled:a});c.addCommand(G.extendBelow,{label:d.__("Extend Selection Below"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.extendSelectionBelow(n.content)}},isEnabled:a});c.addCommand(G.extendBottom,{label:d.__("Extend Selection to Bottom"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.extendSelectionBelow(n.content,true)}},isEnabled:a});c.addCommand(G.selectAll,{label:d.__("Select All Cells"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.selectAll(n.content)}},isEnabled:a});c.addCommand(G.deselectAll,{label:d.__("Deselect All Cells"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.deselectAll(n.content)}},isEnabled:a});c.addCommand(G.moveUp,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Move Cell Up","Move Cells Up",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},caption:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Move this cell up","Move these %1 cells up",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const n=Me(t,h,e);if(n){_.NotebookActions.moveUp(n.content);Le.raiseSilentNotification(d.__("Notebook cell shifted up successfully"),n.node)}},isEnabled:e=>{const n=Me(t,h,{...e,activate:false});if(!n){return false}return n.content.activeCellIndex>=1},icon:e=>e.toolbar?j.moveUpIcon:undefined});c.addCommand(G.moveDown,{label:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Move Cell Down","Move Cells Down",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},caption:e=>{var n;const i=Me(t,h,{...e,activate:false});return d._n("Move this cell down","Move these %1 cells down",(n=i===null||i===void 0?void 0:i.content.selectedCells.length)!==null&&n!==void 0?n:1)},execute:e=>{const n=Me(t,h,e);if(n){_.NotebookActions.moveDown(n.content);Le.raiseSilentNotification(d.__("Notebook cell shifted down successfully"),n.node)}},isEnabled:e=>{const n=Me(t,h,{...e,activate:false});if(!n||!n.content.model){return false}const i=n.content.model.cells.length;return n.content.activeCellIndexe.toolbar?j.moveDownIcon:undefined});c.addCommand(G.toggleAllLines,{label:d.__("Show Line Numbers"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.toggleAllLineNumbers(n.content)}},isEnabled:a,isToggled:e=>{const n=Me(t,h,{...e,activate:false});if(n){const e=n.content.editorConfig;return!!(e.code.lineNumbers&&e.markdown.lineNumbers&&e.raw.lineNumbers)}else{return false}}});c.addCommand(G.commandMode,{label:d.__("Enter Command Mode"),execute:e=>{const n=Me(t,h,e);if(n){n.content.mode="command"}},isEnabled:a});c.addCommand(G.editMode,{label:d.__("Enter Edit Mode"),execute:e=>{const n=Me(t,h,e);if(n){n.content.mode="edit"}},isEnabled:a});c.addCommand(G.undoCellAction,{label:d.__("Undo Cell Operation"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.undo(n.content)}},isEnabled:a});c.addCommand(G.redoCellAction,{label:d.__("Redo Cell Operation"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.redo(n.content)}},isEnabled:a});c.addCommand(G.redo,{label:d.__("Redo"),execute:e=>{var n;const i=Me(t,h,e);if(i){const e=i.content.activeCell;if(e){e.inputHidden=false;return(n=e.editor)===null||n===void 0?void 0:n.redo()}}}});c.addCommand(G.undo,{label:d.__("Undo"),execute:e=>{var n;const i=Me(t,h,e);if(i){const e=i.content.activeCell;if(e){e.inputHidden=false;return(n=e.editor)===null||n===void 0?void 0:n.undo()}}}});c.addCommand(G.changeKernel,{label:d.__("Change Kernel…"),execute:e=>{const n=Me(t,h,e);if(n){return i.selectKernel(n.context.sessionContext)}},isEnabled:a});c.addCommand(G.getKernel,{label:d.__("Get Kernel"),execute:e=>{var n;const i=Me(t,h,{activate:false,...e});if(i){return(n=i.sessionContext.session)===null||n===void 0?void 0:n.kernel}},isEnabled:a});c.addCommand(G.reconnectToKernel,{label:d.__("Reconnect to Kernel"),execute:e=>{var n;const i=Me(t,h,e);if(!i){return}const s=(n=i.context.sessionContext.session)===null||n===void 0?void 0:n.kernel;if(s){return s.reconnect()}},isEnabled:a});c.addCommand(G.markdown1,{label:d.__("Change to Heading 1"),execute:e=>{const i=Me(t,h,e);if(i){return _.NotebookActions.setMarkdownHeader(i.content,1,n)}},isEnabled:a});c.addCommand(G.markdown2,{label:d.__("Change to Heading 2"),execute:e=>{const i=Me(t,h,e);if(i){return _.NotebookActions.setMarkdownHeader(i.content,2,n)}},isEnabled:a});c.addCommand(G.markdown3,{label:d.__("Change to Heading 3"),execute:e=>{const i=Me(t,h,e);if(i){return _.NotebookActions.setMarkdownHeader(i.content,3,n)}},isEnabled:a});c.addCommand(G.markdown4,{label:d.__("Change to Heading 4"),execute:e=>{const i=Me(t,h,e);if(i){return _.NotebookActions.setMarkdownHeader(i.content,4,n)}},isEnabled:a});c.addCommand(G.markdown5,{label:d.__("Change to Heading 5"),execute:e=>{const i=Me(t,h,e);if(i){return _.NotebookActions.setMarkdownHeader(i.content,5,n)}},isEnabled:a});c.addCommand(G.markdown6,{label:d.__("Change to Heading 6"),execute:e=>{const i=Me(t,h,e);if(i){return _.NotebookActions.setMarkdownHeader(i.content,6,n)}},isEnabled:a});c.addCommand(G.hideCode,{label:d.__("Collapse Selected Code"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.hideCode(n.content)}},isEnabled:a});c.addCommand(G.showCode,{label:d.__("Expand Selected Code"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.showCode(n.content)}},isEnabled:a});c.addCommand(G.hideAllCode,{label:d.__("Collapse All Code"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.hideAllCode(n.content)}},isEnabled:a});c.addCommand(G.showAllCode,{label:d.__("Expand All Code"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.showAllCode(n.content)}},isEnabled:a});c.addCommand(G.hideOutput,{label:d.__("Collapse Selected Outputs"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.hideOutput(n.content)}},isEnabled:a});c.addCommand(G.showOutput,{label:d.__("Expand Selected Outputs"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.showOutput(n.content)}},isEnabled:a});c.addCommand(G.toggleOutput,{label:d.__("Toggle Visibility of Selected Outputs"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.toggleOutput(n.content)}},isEnabled:a});c.addCommand(G.hideAllOutputs,{label:d.__("Collapse All Outputs"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.hideAllOutputs(n.content)}},isEnabled:a});c.addCommand(G.toggleRenderSideBySideCurrentNotebook,{label:d.__("Render Side-by-Side"),execute:e=>{const n=Me(t,h,e);if(n){if(n.content.renderingLayout==="side-by-side"){return _.NotebookActions.renderDefault(n.content)}return _.NotebookActions.renderSideBySide(n.content)}},isEnabled:a,isToggled:e=>{const n=Me(t,h,{...e,activate:false});if(n){return n.content.renderingLayout==="side-by-side"}else{return false}}});c.addCommand(G.showAllOutputs,{label:d.__("Expand All Outputs"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.showAllOutputs(n.content)}},isEnabled:a});c.addCommand(G.enableOutputScrolling,{label:d.__("Enable Scrolling for Outputs"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.enableOutputScrolling(n.content)}},isEnabled:a});c.addCommand(G.disableOutputScrolling,{label:d.__("Disable Scrolling for Outputs"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.disableOutputScrolling(n.content)}},isEnabled:a});c.addCommand(G.selectLastRunCell,{label:d.__("Select current running or last run cell"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.selectLastRunCell(n.content)}},isEnabled:a});c.addCommand(G.replaceSelection,{label:d.__("Replace Selection in Notebook Cell"),execute:e=>{const n=Me(t,h,e);const i=e["text"]||"";if(n){return _.NotebookActions.replaceSelection(n.content,i)}},isEnabled:a});c.addCommand(G.toggleCollapseCmd,{label:d.__("Toggle Collapse Notebook Heading"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.toggleCurrentHeadingCollapse(n.content)}},isEnabled:m});c.addCommand(G.collapseAllCmd,{label:d.__("Collapse All Headings"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.collapseAllHeadings(n.content)}}});c.addCommand(G.expandAllCmd,{label:d.__("Expand All Headings"),execute:e=>{const n=Me(t,h,e);if(n){return _.NotebookActions.expandAllHeadings(n.content)}}});c.addCommand(G.tocRunCells,{label:d.__("Select and Run Cell(s) for this Heading"),execute:e=>{const s=Me(t,h,{activate:false,...e});if(s===null){return}const r=s.content.activeCell;let a=s.content.activeCellIndex;if(r instanceof o.MarkdownCell){const e=s.content.widgets;const t=r.headingInfo.level;for(let n=s.content.activeCellIndex+1;n=0&&i.headingInfo.level<=t){break}a=n}}s.content.extendContiguousSelectionTo(a);void _.NotebookActions.run(s.content,s.sessionContext,i,n)}});c.addCommand(G.accessPreviousHistory,{label:d.__("Access Previous Kernel History Entry"),execute:async e=>{const n=Me(t,h,e);if(n){return await _.NotebookActions.accessPreviousHistory(n.content)}}});c.addCommand(G.accessNextHistory,{label:d.__("Access Next Kernel History Entry"),execute:async e=>{const n=Me(t,h,e);if(n){return await _.NotebookActions.accessNextHistory(n.content)}}});c.addCommand(G.virtualScrollbar,{label:d.__("Show Minimap"),caption:d.__("Show Minimap (virtual scrollbar, enabled with windowing mode: full)"),execute:e=>{const n=Me(t,h,e);if(n){n.content.scrollbar=!n.content.scrollbar}},icon:e=>e.toolbar?j.tableRowsIcon:undefined,isEnabled:e=>{var t;const n=(e.toolbar?true:a())&&((t=(r===null||r===void 0?void 0:r.composite.windowingMode)==="full")!==null&&t!==void 0?t:false);return n},isToggled:()=>{var e;const n=t.currentWidget;return(e=n===null||n===void 0?void 0:n.content.scrollbar)!==null&&e!==void 0?e:false},isVisible:e=>{var t;const n=(e.toolbar?true:a())&&((t=(r===null||r===void 0?void 0:r.composite.windowingMode)==="full")!==null&&t!==void 0?t:false);return n}});const g=[G.createNew,G.createOutputView];const f=()=>{Object.values(G).filter((t=>!g.includes(t)&&e.commands.hasCommand(t))).forEach((t=>e.commands.notifyCommandChanged(t)))};t.currentChanged.connect(f);(l=h.currentChanged)===null||l===void 0?void 0:l.connect(f)}function Ae(e,t){const n=t.load("jupyterlab");let i=n.__("Notebook Operations");[G.interrupt,G.restart,G.restartClear,G.restartRunAll,G.runAll,G.renderAllMarkdown,G.runAllAbove,G.runAllBelow,G.restartAndRunToSelected,G.selectAll,G.deselectAll,G.clearAllOutputs,G.toggleAllLines,G.editMode,G.commandMode,G.changeKernel,G.reconnectToKernel,G.createConsole,G.createSubshellConsole,G.closeAndShutdown,G.trust,G.toggleCollapseCmd,G.collapseAllCmd,G.expandAllCmd,G.accessPreviousHistory,G.accessNextHistory,G.virtualScrollbar].forEach((t=>{e.addItem({command:t,category:i})}));e.addItem({command:G.createNew,category:i,args:{isPalette:true}});i=n.__("Notebook Cell Operations");[G.run,G.runAndAdvance,G.runAndInsert,G.runInConsole,G.clearOutputs,G.toCode,G.toMarkdown,G.toRaw,G.cut,G.copy,G.pasteBelow,G.pasteAbove,G.pasteAndReplace,G.deleteCell,G.split,G.merge,G.mergeAbove,G.mergeBelow,G.insertAbove,G.insertBelow,G.selectAbove,G.selectBelow,G.selectHeadingAboveOrCollapse,G.selectHeadingBelowOrExpand,G.insertHeadingAbove,G.insertHeadingBelow,G.extendAbove,G.extendTop,G.extendBelow,G.extendBottom,G.moveDown,G.moveUp,G.undoCellAction,G.redoCellAction,G.markdown1,G.markdown2,G.markdown3,G.markdown4,G.markdown5,G.markdown6,G.hideCode,G.showCode,G.hideAllCode,G.showAllCode,G.hideOutput,G.showOutput,G.toggleOutput,G.hideAllOutputs,G.showAllOutputs,G.toggleRenderSideBySideCurrentNotebook,G.setSideBySideRatio,G.enableOutputScrolling,G.disableOutputScrolling].forEach((t=>{e.addItem({command:t,category:i})}))}function Pe(e,t){e.editMenu.undoers.redo.add({id:G.redo,isEnabled:t});e.editMenu.undoers.undo.add({id:G.undo,isEnabled:t});e.editMenu.clearers.clearAll.add({id:G.clearAllOutputs,isEnabled:t});e.editMenu.clearers.clearCurrent.add({id:G.clearOutputs,isEnabled:t});e.fileMenu.consoleCreators.add({id:G.createConsole,isEnabled:t});e.fileMenu.closeAndCleaners.add({id:G.closeAndShutdown,isEnabled:t});e.kernelMenu.kernelUsers.changeKernel.add({id:G.changeKernel,isEnabled:t});e.kernelMenu.kernelUsers.clearWidget.add({id:G.clearAllOutputs,isEnabled:t});e.kernelMenu.kernelUsers.interruptKernel.add({id:G.interrupt,isEnabled:t});e.kernelMenu.kernelUsers.reconnectToKernel.add({id:G.reconnectToKernel,isEnabled:t});e.kernelMenu.kernelUsers.restartKernel.add({id:G.restart,isEnabled:t});e.kernelMenu.kernelUsers.shutdownKernel.add({id:G.shutdown,isEnabled:t});e.viewMenu.editorViewers.toggleLineNumbers.add({id:G.toggleAllLines,isEnabled:t});e.runMenu.codeRunners.restart.add({id:G.restart,isEnabled:t});e.runMenu.codeRunners.run.add({id:G.runAndAdvance,isEnabled:t});e.runMenu.codeRunners.runAll.add({id:G.runAll,isEnabled:t});e.helpMenu.getKernel.add({id:G.getKernel,isEnabled:t})}var Le;(function(e){function t(e,t,n,i){const s={path:t.context.path,preferredLanguage:t.context.model.defaultKernelLanguage,activate:n,subshell:i,ref:t.id,insertMode:"split-bottom",type:"Linked Console"};return e.execute("console:create",s)}e.createConsole=t;function n(e,t){return t.currentWidget!==null&&t.currentWidget===e.currentWidget}e.isEnabled=n;function i(t,n){if(!e.isEnabled(t,n)){return false}const{content:i}=n.currentWidget;const s=i.activeCellIndex;for(let e=0;e{if(!this._cell){this._cell=this._notebook.content.widgets[this._index]}if(!this._cell||this._cell.model.type!=="code"){this.dispose();return}const e=this._cell.cloneOutputArea();this.addWidget(e)}))}get index(){return this._cell?I.ArrayExt.findFirstIndex(this._notebook.content.widgets,(e=>e===this._cell)):this._index}get path(){return this._notebook.context.path}}e.ClonedOutputArea=l})(Le||(Le={}))},90167:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(97913);var a=n(17325);var l=n(5893);var d=n(79010);var c=n(3579);var h=n(19562);var u=n(23359);var p=n(41603);var m=n(39063);var g=n(66731);var f=n(53377);var v=n(36060);var _=n(87779);var b=n(75797);var y=n(69704);var w=n(13137);var C=n(67996);var x=n(28006);var S=n(69540);var k=n(58130)},97846:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CellList:()=>b,CellTypeSwitcher:()=>S,CommandEditStatus:()=>N,ExecutionIndicator:()=>E,ExecutionIndicatorComponent:()=>I,INotebookCellExecutor:()=>Je,INotebookTools:()=>$e,INotebookTracker:()=>Ke,INotebookWidgetFactory:()=>qe,KernelError:()=>g,Notebook:()=>Pe,NotebookActions:()=>f,NotebookAdapter:()=>F,NotebookHistory:()=>T,NotebookModel:()=>P,NotebookModelFactory:()=>L,NotebookPanel:()=>Be,NotebookSearchProvider:()=>ze,NotebookToCFactory:()=>Ve,NotebookToCModel:()=>We,NotebookTools:()=>U,NotebookTracker:()=>Ge,NotebookTrustStatus:()=>Ze,NotebookViewModel:()=>ie,NotebookWidgetFactory:()=>et,NotebookWindowedLayout:()=>se,RunningStatus:()=>He,StaticNotebook:()=>De,ToolbarItems:()=>x,getIdForHeading:()=>Ue,runCell:()=>u,setCellExecutor:()=>v});var i=n(14366);var s=n(5061);var o=n(30397);var r=n(30619);var a=n(34236);var l=n(5592);var d=n(2336);var c=n(44914);var h=n.n(c);async function u({cell:e,notebook:t,notebookConfig:n,onCellExecuted:o,onCellExecutionScheduled:a,sessionContext:l,sessionDialogs:d,translator:c}){var h;c=c!==null&&c!==void 0?c:r.nullTranslator;const u=c.load("jupyterlab");switch(e.model.type){case"markdown":e.rendered=true;e.inputHidden=false;o({cell:e,success:true});break;case"code":if(l){if(l.isTerminating){await(0,i.showDialog)({title:u.__("Kernel Terminating"),body:u.__("The kernel for %1 appears to be terminating. You can not run any cell for now.",(h=l.session)===null||h===void 0?void 0:h.path),buttons:[i.Dialog.okButton()]});break}if(l.pendingInput){await(0,i.showDialog)({title:u.__("Cell not executed due to pending input"),body:u.__("The cell has not been executed to avoid kernel deadlock as there is another pending input! Type your input in the input box, press Enter and try again."),buttons:[i.Dialog.okButton()]});return false}if(l.hasNoKernel){const e=await l.startKernel();if(e&&d){await d.selectKernel(l)}}if(l.hasNoKernel){e.model.sharedModel.transact((()=>{e.model.clearExecution()}));return true}const r=t.deletedCells;a({cell:e});let c=false;try{const i=await s.CodeCell.execute(e,l,{deletedCells:r,recordTiming:n.recordTiming});r.splice(0,r.length);c=(()=>{if(e.isDisposed){return false}if(!i){return true}if(i.content.status==="ok"){const n=i.content;if(n.payload&&n.payload.length){p(n,t,e)}return true}else{throw new g(i.content)}})()}catch(m){if(e.isDisposed||m.message.startsWith("Canceled")){c=false}else{o({cell:e,success:false,error:m});throw m}}if(c){o({cell:e,success:true})}return c}e.model.sharedModel.transact((()=>{e.model.clearExecution()}),false);break;default:break}return Promise.resolve(true)}function p(e,t,n){var i;const s=(i=e.payload)===null||i===void 0?void 0:i.filter((e=>e.source==="set_next_input"))[0];if(!s){return}const o=s.text;const r=s.replace;if(r){n.model.sharedModel.setSource(o);return}const l=t.sharedModel;const d=t.cells;const c=(0,a.findIndex)(d,(e=>e===n.model));if(c===-1){l.insertCell(l.cells.length,{cell_type:"code",source:o,metadata:{trusted:false}})}else{l.insertCell(c+1,{cell_type:"code",source:o,metadata:{trusted:false}})}}const m="application/vnd.jupyter.cells";class g extends Error{constructor(e){const t=e;const n=t.ename;const i=t.evalue;super(`KernelReplyNotOK: ${n} ${i}`);this.errorName=n;this.errorValue=i;this.traceback=t.traceback;Object.setPrototypeOf(this,g.prototype)}}class f{static get executed(){return _.executed}static get executionScheduled(){return _.executionScheduled}static get selectionExecuted(){return _.selectionExecuted}static get outputCleared(){return _.outputCleared}constructor(){}}(function(e){function t(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.mode="edit";e.deselectAll();const n=e.model;const i=e.activeCellIndex;const s=e.widgets[i];const o=s.editor;if(!o){return}const r=o.getSelections();const a=s.model.sharedModel.getSource();const l=[0];let d=-1;let c=-1;for(let m=0;m{const{cell_type:n,metadata:i,outputs:o}=s.model.sharedModel.toJSON();return{cell_type:n,metadata:i,source:a.slice(e,l[t+1]).replace(/^\n+/,"").replace(/\n+$/,""),outputs:t===h-1&&n==="code"?o:undefined}}));n.sharedModel.transact((()=>{n.sharedModel.deleteCell(i);n.sharedModel.insertCells(i,u)}));const p=d!==c?2:1;e.activeCellIndex=i+u.length-p;e.scrollToItem(e.activeCellIndex).then((()=>{var t;(t=e.activeCell)===null||t===void 0?void 0:t.editor.focus()})).catch((e=>{}));void _.handleState(e,t)}e.splitCell=t;function n(e,t=false){if(!e.model||!e.activeCell){return}const n=_.getState(e);const i=[];const o=[];const r=e.model;const a=r.cells;const l=e.activeCell;const d=e.activeCellIndex;const c={};e.widgets.forEach(((t,n)=>{if(e.isSelectedOrActive(t)){i.push(t.model.sharedModel.getSource());if(n!==d){o.push(n)}const e=t.model;if((0,s.isRawCellModel)(e)||(0,s.isMarkdownCellModel)(e)){for(const t of e.attachments.keys){c[t]=e.attachments.get(t).toJSON()}}}}));if(i.length===1){if(t===true){if(d===0){return}const e=a.get(d-1);i.unshift(e.sharedModel.getSource());o.push(d-1)}else if(t===false){if(d===a.length-1){return}const e=a.get(d+1);i.push(e.sharedModel.getSource());o.push(d+1)}}e.deselectAll();const h=l.model.sharedModel;const{cell_type:u,metadata:p}=h.toJSON();if(h.cell_type==="code"){p.trusted=true}const m={cell_type:u,metadata:p,source:i.join("\n\n"),attachments:h.cell_type==="markdown"||h.cell_type==="raw"?c:undefined};r.sharedModel.transact((()=>{r.sharedModel.deleteCell(d);r.sharedModel.insertCell(d,m);o.sort(((e,t)=>t-e)).forEach((e=>{r.sharedModel.deleteCell(e)}))}));if(l instanceof s.MarkdownCell){e.activeCell.rendered=false}void _.handleState(e,n)}e.mergeCells=n;function d(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);_.deleteCells(e);void _.handleState(e,t,true)}e.deleteCells=d;function h(e){if(!e.model){return}const t=_.getState(e);const n=e.model;const i=e.activeCell?e.activeCellIndex:0;n.sharedModel.insertCell(i,{cell_type:e.notebookConfig.defaultCell,metadata:e.notebookConfig.defaultCell==="code"?{trusted:true}:{}});e.activeCellIndex=i;e.deselectAll();void _.handleState(e,t,true)}e.insertAbove=h;function u(e){if(!e.model){return}const t=_.getState(e);const n=e.model;const i=e.activeCell?e.activeCellIndex+1:0;n.sharedModel.insertCell(i,{cell_type:e.notebookConfig.defaultCell,metadata:e.notebookConfig.defaultCell==="code"?{trusted:true}:{}});e.activeCellIndex=i;e.deselectAll();void _.handleState(e,t,true)}e.insertBelow=u;function p(e,t){if(!e.model||!e.activeCell){return}const n=_.getState(e);const i=e.widgets.findIndex((t=>e.isSelectedOrActive(t)));let s=e.widgets.slice(i+1).findIndex((t=>!e.isSelectedOrActive(t)));if(s>=0){s+=i+1}else{s=e.model.cells.length}if(t>0){e.moveCell(i,s,s-i)}else{e.moveCell(i,i+t,s-i)}void _.handleState(e,n,true)}function g(e){p(e,1)}e.moveDown=g;function f(e){p(e,-1)}e.moveUp=f;function v(e,t,n){if(!e.model||!e.activeCell){return}const i=_.getState(e);_.changeCellType(e,t,n);void _.handleState(e,i)}e.changeCellType=v;function b(e,t,n,i){if(!e.model||!e.activeCell){return Promise.resolve(false)}const s=_.getState(e);const o=_.runSelected(e,t,n,i);void _.handleRunState(e,s);return o}e.run=b;function y(e,t,n,i,s){if(!e.model){return Promise.resolve(false)}const o=_.getState(e);const r=_.runCells(e,t,n,i,s);void _.handleRunState(e,o);return r}e.runCells=y;async function w(e,t,n,i){var s;if(!e.model||!e.activeCell){return Promise.resolve(false)}const r=_.getState(e);const a=_.runSelected(e,t,n,i);const l=e.model;if(e.activeCellIndex===e.widgets.length-1){l.sharedModel.insertCell(e.widgets.length,{cell_type:e.notebookConfig.defaultCell,metadata:e.notebookConfig.defaultCell==="code"?{trusted:true}:{}});e.activeCellIndex++;if(((s=e.activeCell)===null||s===void 0?void 0:s.inViewport)===false){await(0,o.signalToPromise)(e.activeCell.inViewportChanged,200).catch((()=>{}))}e.mode="edit"}else{e.activeCellIndex++}void _.handleRunState(e,r,"center");return a}e.runAndAdvance=w;async function C(e,t,n,i){var s;if(!e.model||!e.activeCell){return Promise.resolve(false)}const r=_.getState(e);const a=_.runSelected(e,t,n,i);const l=e.model;l.sharedModel.insertCell(e.activeCellIndex+1,{cell_type:e.notebookConfig.defaultCell,metadata:e.notebookConfig.defaultCell==="code"?{trusted:true}:{}});e.activeCellIndex++;if(((s=e.activeCell)===null||s===void 0?void 0:s.inViewport)===false){await(0,o.signalToPromise)(e.activeCell.inViewportChanged,200).catch((()=>{}))}e.mode="edit";void _.handleRunState(e,r,"center");return a}e.runAndInsert=C;function x(e,t,n,i){if(!e.model||!e.activeCell){return Promise.resolve(false)}const s=_.getState(e);const o=e.widgets.length;const r=_.runCells(e,e.widgets,t,n,i);e.activeCellIndex=o;e.deselectAll();void _.handleRunState(e,s);return r}e.runAll=x;function S(e){if(!e.model||!e.activeCell){return Promise.resolve(false)}const t=e.activeCellIndex;const n=_.getState(e);e.widgets.forEach(((t,n)=>{if(t.model.type==="markdown"){e.select(t);e.activeCellIndex=n}}));if(e.activeCell.model.type!=="markdown"){return Promise.resolve(true)}const i=_.runSelected(e);e.activeCellIndex=t;void _.handleRunState(e,n);return i}e.renderAllMarkdown=S;function k(e,t,n,i){const{activeCell:s,activeCellIndex:o,model:r}=e;if(!r||!s||o<1){return Promise.resolve(false)}const a=_.getState(e);const l=_.runCells(e,e.widgets.slice(0,e.activeCellIndex),t,n,i);e.deselectAll();void _.handleRunState(e,a);return l}e.runAllAbove=k;function j(e,t,n,i){if(!e.model||!e.activeCell){return Promise.resolve(false)}const s=_.getState(e);const o=e.widgets.length;const r=_.runCells(e,e.widgets.slice(e.activeCellIndex),t,n,i);e.activeCellIndex=o;e.deselectAll();void _.handleRunState(e,s);return r}e.runAllBelow=j;function I(e,t){var n,i,s;if(!e.model||!((n=e.activeCell)===null||n===void 0?void 0:n.editor)){return}(s=(i=e.activeCell.editor).replaceSelection)===null||s===void 0?void 0:s.call(i,t)}e.replaceSelection=I;function E(e){if(!e.model||!e.activeCell){return}const t=e.layout.footer;if(t&&document.activeElement===t.node){t.node.blur();e.mode="command";return}if(e.activeCellIndex===0){return}let n=e.activeCellIndex-1;while(n>=0){const t=e.widgets[n];if(!t.inputHidden&&!t.isHidden){break}n-=1}const i=_.getState(e);e.activeCellIndex=n;e.deselectAll();void _.handleState(e,i,true)}e.selectAbove=E;function T(e){if(!e.model||!e.activeCell){return}let t=e.widgets.length-1;while(e.widgets[t].isHidden||e.widgets[t].inputHidden){t-=1}if(e.activeCellIndex===t){const t=e.layout.footer;t===null||t===void 0?void 0:t.node.focus();return}let n=e.activeCellIndex+1;while(n-1?t:1;let n=_.Headings.findLowerEqualLevelHeadingBelow(e.activeCell,e,true);await _.Headings.insertHeadingAboveCellIndex(n==-1?e.model.cells.length:n,t,e)}e.insertSameLevelHeadingBelow=D;function A(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);let n=ve(e.activeCell);if(n.isHeading&&!n.collapsed){me(e.activeCell,true,e)}else{let t=_.Headings.findLowerEqualLevelParentHeadingAbove(e.activeCell,e,true);if(t>-1){e.activeCellIndex=t}}e.deselectAll();void _.handleState(e,t,true)}e.selectHeadingAboveOrCollapseHeading=A;function P(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);let n=ve(e.activeCell);if(n.isHeading&&n.collapsed){me(e.activeCell,false,e)}else{let t=_.Headings.findHeadingBelow(e.activeCell,e,true);if(t>-1){e.activeCellIndex=t}}e.deselectAll();void _.handleState(e,t,true)}e.selectHeadingBelowOrExpandHeading=P;function L(e,t=false){if(!e.model||!e.activeCell){return}if(e.activeCellIndex===0){return}const n=_.getState(e);e.mode="command";if(t){e.extendContiguousSelectionTo(0)}else{e.extendContiguousSelectionTo(e.activeCellIndex-1)}void _.handleState(e,n,true)}e.extendSelectionAbove=L;function R(e,t=false){if(!e.model||!e.activeCell){return}if(e.activeCellIndex===e.widgets.length-1){return}const n=_.getState(e);e.mode="command";if(t){e.extendContiguousSelectionTo(e.widgets.length-1)}else{e.extendContiguousSelectionTo(e.activeCellIndex+1)}void _.handleState(e,n,true)}e.extendSelectionBelow=R;function N(e){if(!e.model||!e.activeCell){return}e.widgets.forEach((t=>{e.select(t)}))}e.selectAll=N;function O(e){if(!e.model||!e.activeCell){return}e.deselectAll()}e.deselectAll=O;function B(e){_.copyOrCut(e,false)}e.copy=B;function F(e){_.copyOrCut(e,true)}e.cut=F;function z(e,t="below"){const n=i.Clipboard.getInstance();if(!n.hasData(m)){return}const s=n.getData(m);W(e,t,s,true);void be(e)}e.paste=z;function H(e,t="below"){const n=_.selectedCells(e);if(!n||n.length===0){return}W(e,t,n,false)}e.duplicate=H;function W(e,t="below",n,i=false){if(!e.model||!e.activeCell){return}const s=_.getState(e);const o=e.model;e.mode="command";let r=0;const a=e.activeCellIndex;o.sharedModel.transact((()=>{switch(t){case"below":r=e.activeCellIndex+1;break;case"belowSelected":e.widgets.forEach(((t,n)=>{if(e.isSelectedOrActive(t)){r=n+1}}));break;case"above":r=e.activeCellIndex;break;case"replace":{const t=[];e.widgets.forEach(((n,i)=>{const s=n.model.sharedModel.getMetadata("deletable")!==false;if(e.isSelectedOrActive(n)&&s){t.push(i)}}));if(t.length>0){t.reverse().forEach((e=>{o.sharedModel.deleteCell(e)}))}r=t[0];break}default:break}o.sharedModel.insertCells(r,n.map((t=>{t.id=t.cell_type==="code"&&e.lastClipboardInteraction==="cut"&&typeof t.id==="string"?t.id:undefined;return t})))}));e.activeCellIndex=a+n.length;e.deselectAll();if(i){e.lastClipboardInteraction="paste"}void _.handleState(e,s,true)}function V(e){if(!e.model){return}const t=_.getState(e);e.mode="command";e.model.sharedModel.undo();e.deselectAll();void _.handleState(e,t)}e.undo=V;function U(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.mode="command";e.model.sharedModel.redo();e.deselectAll();void _.handleState(e,t)}e.redo=U;function q(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);const n=e.editorConfig;const i=!(n.code.lineNumbers&&n.markdown.lineNumbers&&n.raw.lineNumbers);const s={code:{...n.code,lineNumbers:i},markdown:{...n.markdown,lineNumbers:i},raw:{...n.raw,lineNumbers:i}};e.editorConfig=s;void _.handleState(e,t)}e.toggleAllLineNumbers=q;function $(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);let n=-1;for(const i of e.model.cells){const t=e.widgets[++n];if(e.isSelectedOrActive(t)&&i.type==="code"){i.sharedModel.transact((()=>{i.clearExecution();t.outputHidden=false}),false);_.outputCleared.emit({notebook:e,cell:t})}}void _.handleState(e,t,true)}e.clearOutputs=$;function K(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);let n=-1;for(const i of e.model.cells){const t=e.widgets[++n];if(i.type==="code"){i.sharedModel.transact((()=>{i.clearExecution();t.outputHidden=false}),false);_.outputCleared.emit({notebook:e,cell:t})}}void _.handleState(e,t,true)}e.clearAllOutputs=K;function J(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.widgets.forEach((t=>{if(e.isSelectedOrActive(t)&&t.model.type==="code"){t.inputHidden=true}}));void _.handleState(e,t)}e.hideCode=J;function G(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.widgets.forEach((t=>{if(e.isSelectedOrActive(t)&&t.model.type==="code"){t.inputHidden=false}}));void _.handleState(e,t)}e.showCode=G;function Y(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.widgets.forEach((e=>{if(e.model.type==="code"){e.inputHidden=true}}));void _.handleState(e,t)}e.hideAllCode=Y;function X(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.widgets.forEach((e=>{if(e.model.type==="code"){e.inputHidden=false}}));void _.handleState(e,t)}e.showAllCode=X;function Q(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.widgets.forEach((t=>{if(e.isSelectedOrActive(t)&&t.model.type==="code"){t.outputHidden=true}}));void _.handleState(e,t,true)}e.hideOutput=Q;function Z(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.widgets.forEach((t=>{if(e.isSelectedOrActive(t)&&t.model.type==="code"){t.outputHidden=false}}));void _.handleState(e,t)}e.showOutput=Z;function ee(e){if(!e.model||!e.activeCell){return}for(const t of e.widgets){if(e.isSelectedOrActive(t)&&t.model.type==="code"){if(t.outputHidden===false){return Q(e)}}}return Z(e)}e.toggleOutput=ee;function te(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.widgets.forEach((e=>{if(e.model.type==="code"){e.outputHidden=true}}));void _.handleState(e,t,true)}e.hideAllOutputs=te;function ne(e){e.renderingLayout="side-by-side"}e.renderSideBySide=ne;function ie(e){e.renderingLayout="default"}e.renderDefault=ie;function se(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.widgets.forEach((e=>{if(e.model.type==="code"){e.outputHidden=false}}));void _.handleState(e,t)}e.showAllOutputs=se;function oe(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.widgets.forEach((t=>{if(e.isSelectedOrActive(t)&&t.model.type==="code"){t.outputsScrolled=true}}));void _.handleState(e,t,true)}e.enableOutputScrolling=oe;function re(e){if(!e.model||!e.activeCell){return}const t=_.getState(e);e.widgets.forEach((t=>{if(e.isSelectedOrActive(t)&&t.model.type==="code"){t.outputsScrolled=false}}));void _.handleState(e,t)}e.disableOutputScrolling=re;function ae(e){let t=null;let n=null;e.widgets.forEach(((e,i)=>{if(e.model.type==="code"){const s=e.model.getMetadata("execution");if(s&&l.JSONExt.isObject(s)&&s["iopub.status.busy"]!==undefined){const e=s["iopub.status.busy"].toString();if(e){const s=new Date(e);if(!t||s>=t){t=s;n=i}}}}}));if(n!==null){e.activeCellIndex=n}}e.selectLastRunCell=ae;function le(e,t,n){if(!e.model||!e.activeCell){return}const i=_.getState(e);const s=e.model.cells;t=Math.min(Math.max(t,1),6);e.widgets.forEach(((n,i)=>{if(e.isSelectedOrActive(n)){_.setMarkdownHeader(s.get(i),t)}}));_.changeCellType(e,"markdown",n);void _.handleState(e,i)}e.setMarkdownHeader=le;function de(t){const n=_.getState(t);for(const i of t.widgets){if(e.getHeadingInfo(i).isHeading){e.setHeadingCollapse(i,true,t);e.setCellCollapse(i,true)}}t.activeCellIndex=0;void _.handleState(t,n,true)}e.collapseAllHeadings=de;function ce(t){for(const n of t.widgets){if(e.getHeadingInfo(n).isHeading){e.setHeadingCollapse(n,false,t);e.setCellCollapse(n,false)}}}e.expandAllHeadings=ce;function he(e,t){const n=(0,a.findIndex)(t.widgets,((t,n)=>e.model.id===t.model.id));if(n===-1){return}if(n>=t.widgets.length){return}let i=ve(t.widgets[n]);for(let s=n-1;s>=0;s--){if(se.model.id===t.model.id));if(n===-1){return-1}let i=ve(e);for(n=n+1;nt.model.id===e.model.id));if(o===-1){return-1}if(!i.widgets.length){return o+1}let r=e.getHeadingInfo(t);if(t.isHidden||!(t instanceof s.MarkdownCell)||!r.isHeading){return o+1}let l=false;let d=0;let c;for(c=o+1;c{}))}e.toggleCurrentHeadingCollapse=ge;function fe(e,t){if(e instanceof s.MarkdownCell){e.headingCollapsed=t}else{e.setHidden(t)}}e.setCellCollapse=fe;function ve(e){if(!(e instanceof s.MarkdownCell)){return{isHeading:false,headingLevel:7}}let t=e.headingInfo.level;let n=e.headingCollapsed;return{isHeading:t>0,headingLevel:t,collapsed:n}}e.getHeadingInfo=ve;function _e(e,t){t=t||r.nullTranslator;const n=t.load("jupyterlab");if(!e.model){return Promise.resolve()}const s=(0,a.every)(e.model.cells,(e=>e.trusted));const o=c.createElement("p",null,n.__("A trusted Jupyter notebook may execute hidden malicious code when you open it."),c.createElement("br",null),n.__('Selecting "Trust" will re-render this notebook in a trusted state.'),c.createElement("br",null),n.__("For more information, see")," ",c.createElement("a",{href:"https://jupyter-server.readthedocs.io/en/stable/operators/security.html",target:"_blank",rel:"noopener noreferrer"},n.__("the Jupyter security documentation")),".");if(s){return(0,i.showDialog)({body:n.__("Notebook is already trusted"),buttons:[i.Dialog.okButton()]}).then((()=>undefined))}return(0,i.showDialog)({body:o,title:n.__("Trust this notebook?"),buttons:[i.Dialog.cancelButton(),i.Dialog.warnButton({label:n.__("Trust"),ariaLabel:n.__("Confirm Trusting this notebook")})]}).then((t=>{if(t.button.accept){if(e.model){for(const t of e.model.cells){t.trusted=true}}}}))}e.trust=_e;async function be(e,t={waitUntilReady:true,preventScroll:false}){const{activeCell:n}=e;const{waitUntilReady:i,preventScroll:s}=t;if(!n){return}if(i){await n.ready}if(e.isDisposed||n.isDisposed){return}n.node.focus({preventScroll:s})}e.focusActiveCell=be;async function ye(e){if(!e.notebookConfig.accessKernelHistory){return}const t=e.activeCell;if(t){if(e.kernelHistory){const n=await e.kernelHistory.back(t);e.kernelHistory.updateEditor(t,n)}}}e.accessPreviousHistory=ye;async function we(e){if(!e.notebookConfig.accessKernelHistory){return}const t=e.activeCell;if(t){if(e.kernelHistory){const n=await e.kernelHistory.forward(t);e.kernelHistory.updateEditor(t,n)}}}e.accessNextHistory=we})(f||(f={}));function v(e){if(_.executor){throw new Error("Cell executor can only be set once.")}_.executor=e}var _;(function(e){e.executed=new d.Signal({});e.executionScheduled=new d.Signal({});e.selectionExecuted=new d.Signal({});e.outputCleared=new d.Signal({});function t(e){var t,n;return{wasFocused:e.node.contains(document.activeElement),activeCellId:(n=(t=e.activeCell)===null||t===void 0?void 0:t.model.id)!==null&&n!==void 0?n:null}}e.getState=t;async function n(e,t,n=false){const{activeCell:i,activeCellIndex:s}=e;if(n&&i){await e.scrollToItem(s,"auto",0).catch((e=>{}))}if(t.wasFocused||e.mode==="edit"){e.activate()}}e.handleState=n;async function s(e,t,n){const{activeCell:i,activeCellIndex:s}=e;if(i){await e.scrollToItem(s,"smart",0,n).catch((e=>{}))}if(t.wasFocused||e.mode==="edit"){e.activate()}}e.handleRunState=s;function a(t,n,s,o,a){const l=n[n.length-1];t.mode="command";let d=false;return Promise.all(n.map((e=>{if(e.model.type==="code"&&t.notebookConfig.enableKernelInitNotification&&s&&s.kernelDisplayStatus==="initializing"&&!d){d=true;a=a||r.nullTranslator;const e=a.load("jupyterlab");i.Notification.emit(e.__(`Kernel '${s.kernelDisplayName}' for '${s.path}' is still initializing. You can run code cells when the kernel has initialized.`),"warning",{autoClose:false});return Promise.resolve(false)}if(e.model.type==="code"&&t.notebookConfig.enableKernelInitNotification&&d){return Promise.resolve(false)}return c(t,e,s,o,a)}))).then((n=>{if(t.isDisposed){return false}e.selectionExecuted.emit({notebook:t,lastCell:l});t.update();return n.every((e=>e))})).catch((i=>{if(i.message.startsWith("KernelReplyNotOK")){n.map((e=>{if(e.model.type==="code"&&e.model.executionCount==null){e.model.executionState="idle"}}))}else{throw i}e.selectionExecuted.emit({notebook:t,lastCell:l});t.update();return false}))}e.runCells=a;function l(e,t,n,i){e.mode="command";let s=e.activeCellIndex;const o=e.widgets.filter(((t,n)=>{const i=e.isSelectedOrActive(t);if(i){s=n}return i}));e.activeCellIndex=s;e.deselectAll();return a(e,o,t,n,i)}e.runSelected=l;async function c(t,n,i,s,o){if(!e.executor){console.warn("Requesting cell execution without any cell executor defined. Falling back to default execution.")}const r={cell:n,notebook:t.model,notebookConfig:t.notebookConfig,onCellExecuted:n=>{e.executed.emit({notebook:t,...n})},onCellExecutionScheduled:n=>{e.executionScheduled.emit({notebook:t,...n})},sessionContext:i,sessionDialogs:s,translator:o};return e.executor?e.executor.runCell(r):u(r)}function h(e){return e.widgets.filter((t=>e.isSelectedOrActive(t))).map((e=>e.model.toJSON())).map((e=>{if(e.metadata.deletable!==undefined){delete e.metadata.deletable}return e}))}e.selectedCells=h;function p(s,o){if(!s.model||!s.activeCell){return}const r=t(s);const a=i.Clipboard.getInstance();s.mode="command";a.clear();const l=e.selectedCells(s);a.setData(m,l);if(o){v(s)}else{s.deselectAll()}if(o){s.lastClipboardInteraction="cut"}else{s.lastClipboardInteraction="copy"}void n(s,r)}e.copyOrCut=p;function g(e,t,n){const s=e.model.sharedModel;e.widgets.forEach(((o,a)=>{if(!e.isSelectedOrActive(o)){return}if(o.model.type==="code"&&o.outputArea.pendingInput){n=n||r.nullTranslator;const e=n.load("jupyterlab");void(0,i.showDialog)({title:e.__("Cell type not changed due to pending input"),body:e.__("The cell type has not been changed to avoid kernel deadlock as this cell has pending input! Submit your pending input and try again."),buttons:[i.Dialog.okButton()]});return}if(o.model.getMetadata("editable")==false){n=n||r.nullTranslator;const e=n.load("jupyterlab");void(0,i.showDialog)({title:e.__("Cell is read-only"),body:e.__("The cell is read-only, its type cannot be changed!"),buttons:[i.Dialog.okButton()]});return}if(o.model.type!==t){const e=o.model.toJSON();s.transact((()=>{s.deleteCell(a);if(t==="code"){e.metadata.trusted=true}else{e.metadata.trusted=undefined}const n=s.insertCell(a,{cell_type:t,source:e.source,metadata:e.metadata});if(e.attachments&&["markdown","raw"].includes(t)){n.attachments=e.attachments}}))}if(t==="markdown"){o=e.widgets[a];o.rendered=false}}));e.deselectAll()}e.changeCellType=g;function v(e){const t=e.model;const n=t.sharedModel;const i=[];e.mode="command";e.widgets.forEach(((t,n)=>{var s;const o=t.model.getMetadata("deletable")!==false;if(e.isSelectedOrActive(t)&&o){i.push(n);(s=e.model)===null||s===void 0?void 0:s.deletedCells.push(t.model.id)}}));if(i.length>0){n.transact((()=>{i.reverse().forEach((e=>{n.deleteCell(e)}));if(n.cells.length==i.length){n.insertCell(0,{cell_type:e.notebookConfig.defaultCell,metadata:e.notebookConfig.defaultCell==="code"?{trusted:true}:{}})}}));e.activeCellIndex=i[0]-i.length+1}e.deselectAll()}e.deleteCells=v;function _(e,t){let n=e.sharedModel.getSource();const i=/^(#+\s*)|^(\s*)/;const s=Array(t+1).join("#")+" ";const o=i.exec(n);if(o){n=n.slice(o[0].length)}e.sharedModel.setSource(s+n)}e.setMarkdownHeader=_;let b;(function(t){function n(e,t,n=false,i=false){let s=t.widgets.indexOf(e)-(n?1:0);while(s>=0){let e=f.getHeadingInfo(t.widgets[s]);if(e.isHeading){return i?s:t.widgets[s]}s--}return i?-1:null}t.findParentHeading=n;function i(t,n,i=false){let s=e.Headings.determineHeadingLevel(t,n);if(s==-1){s=1}let o=n.widgets.indexOf(t)-1;while(o>=0){let e=n.widgets[o];let t=f.getHeadingInfo(e);if(t.isHeading&&t.headingLevel<=s){return i?o:e}o--}return i?-1:null}t.findLowerEqualLevelParentHeadingAbove=i;function s(t,n,i=false){let s=e.Headings.determineHeadingLevel(t,n);if(s==-1){s=1}let o=n.widgets.indexOf(t)+1;while(o{}))}i.deselectAll();void e.handleState(i,r,true);i.mode="edit";i.widgets[t].setHidden(false)}t.insertHeadingAboveCellIndex=l})(b=e.Headings||(e.Headings={}))})(_||(_={}));class b{constructor(e){this.model=e;this._cellMap=new WeakMap;this._changed=new d.Signal(this);this._isDisposed=false;this._insertCells(0,this.model.cells);this.model.changed.connect(this._onSharedModelChanged,this)}get changed(){return this._changed}get isDisposed(){return this._isDisposed}get length(){return this.model.cells.length}*[Symbol.iterator](){for(const e of this.model.cells){yield this._cellMap.get(e)}}dispose(){var e;if(this._isDisposed){return}this._isDisposed=true;for(const t of this.model.cells){(e=this._cellMap.get(t))===null||e===void 0?void 0:e.dispose()}d.Signal.clearData(this)}get(e){return this._cellMap.get(this.model.cells[e])}_insertCells(e,t){t.forEach((e=>{let t;switch(e.cell_type){case"code":{t=new s.CodeCellModel({sharedModel:e});break}case"markdown":{t=new s.MarkdownCellModel({sharedModel:e});break}default:{t=new s.RawCellModel({sharedModel:e})}}this._cellMap.set(e,t);e.disposed.connect((()=>{t.dispose();this._cellMap.delete(e)}))}));return this.length}_onSharedModelChanged(e,t){var n;let i=0;const s=new Array;(n=t.cellsChange)===null||n===void 0?void 0:n.forEach((e=>{if(e.insert!=null){this._insertCells(i,e.insert);s.push({type:"add",newIndex:i,newValues:e.insert.map((e=>this._cellMap.get(e))),oldIndex:-2,oldValues:[]});i+=e.insert.length}else if(e.delete!=null){s.push({type:"remove",newIndex:-1,newValues:[],oldIndex:i,oldValues:new Array(e.delete).fill(undefined)})}else if(e.retain!=null){i+=e.retain}}));s.forEach((e=>this._changed.emit(e)))}}var y=n(26331);const w="jp-Notebook-toolbarCellType";const C="jp-Notebook-toolbarCellTypeDropdown";var x;(function(e){function t(e,t){const n=(t||r.nullTranslator).load("jupyterlab");function s(){if(e.context.model.readOnly){return(0,i.showDialog)({title:n.__("Cannot Save"),body:n.__("Document is read-only"),buttons:[i.Dialog.okButton()]})}void e.context.save().then((()=>{if(!e.isDisposed){return e.context.createCheckpoint()}}))}return(0,y.addToolbarButtonClass)(y.ReactWidget.create(c.createElement(y.UseSignal,{signal:e.context.fileChanged},(()=>c.createElement(y.ToolbarButtonComponent,{icon:y.saveIcon,onClick:s,tooltip:n.__("Save the notebook contents and create checkpoint"),enabled:!!(e&&e.context&&e.context.contentsModel&&e.context.contentsModel.writable)})))))}e.createSaveButton=t;function n(e,t){const n=(t||r.nullTranslator).load("jupyterlab");return new y.ToolbarButton({icon:y.addIcon,onClick:()=>{f.insertBelow(e.content)},tooltip:n.__("Insert a cell below")})}e.createInsertButton=n;function s(e,t){const n=(t||r.nullTranslator).load("jupyterlab");return new y.ToolbarButton({icon:y.cutIcon,onClick:()=>{f.cut(e.content)},tooltip:n.__("Cut the selected cells")})}e.createCutButton=s;function o(e,t){const n=(t||r.nullTranslator).load("jupyterlab");return new y.ToolbarButton({icon:y.copyIcon,onClick:()=>{f.copy(e.content)},tooltip:n.__("Copy the selected cells")})}e.createCopyButton=o;function a(e,t){const n=(t||r.nullTranslator).load("jupyterlab");return new y.ToolbarButton({icon:y.pasteIcon,onClick:()=>{f.paste(e.content)},tooltip:n.__("Paste cells from the clipboard")})}e.createPasteButton=a;function l(e,t,n){const i=(n!==null&&n!==void 0?n:r.nullTranslator).load("jupyterlab");return new y.ToolbarButton({icon:y.runIcon,onClick:()=>{void f.runAndAdvance(e.content,e.sessionContext,t,n)},tooltip:i.__("Run the selected cells and advance")})}e.createRunButton=l;function d(e,t,n){const s=(n!==null&&n!==void 0?n:r.nullTranslator).load("jupyterlab");return new y.ToolbarButton({icon:y.fastForwardIcon,onClick:()=>{const s=t!==null&&t!==void 0?t:new i.SessionContextDialogs({translator:n});void s.restart(e.sessionContext).then((t=>{if(t){void f.runAll(e.content,e.sessionContext,s,n)}return t}))},tooltip:s.__("Restart the kernel, then re-run the whole notebook")})}e.createRestartRunAllButton=d;function h(e,t){return new S(e.content,t)}e.createCellTypeItem=h;function u(e,r,c){return[{name:"save",widget:t(e,c)},{name:"insert",widget:n(e,c)},{name:"cut",widget:s(e,c)},{name:"copy",widget:o(e,c)},{name:"paste",widget:a(e,c)},{name:"run",widget:l(e,r,c)},{name:"interrupt",widget:i.Toolbar.createInterruptButton(e.sessionContext,c)},{name:"restart",widget:i.Toolbar.createRestartButton(e.sessionContext,r,c)},{name:"restart-and-run",widget:d(e,r,c)},{name:"cellType",widget:h(e,c)},{name:"spacer",widget:y.Toolbar.createSpacerItem()},{name:"kernelName",widget:i.Toolbar.createKernelNameItem(e.sessionContext,r,c)}]}e.getDefaultItems=u})(x||(x={}));class S extends y.ReactWidget{constructor(e,t){super();this.handleChange=e=>{if(e.target.value!=="-"){f.changeCellType(this._notebook,e.target.value);this._notebook.activate()}};this.handleKeyDown=e=>{if(e.keyCode===13){this._notebook.activate()}};this._trans=(t||r.nullTranslator).load("jupyterlab");this.addClass(w);this._notebook=e;if(e.model){this.update()}e.activeCellChanged.connect(this.update,this);e.selectionChanged.connect(this.update,this)}render(){let e="-";if(this._notebook.activeCell){e=this._notebook.activeCell.model.type}for(const t of this._notebook.widgets){if(this._notebook.isSelectedOrActive(t)){if(t.model.type!==e){e="-";break}}}return c.createElement(y.HTMLSelect,{className:C,onChange:this.handleChange,onKeyDown:this.handleKeyDown,value:e,"aria-label":this._trans.__("Cell type"),title:this._trans.__("Select the cell type")},c.createElement("option",{value:"-"},"-"),c.createElement("option",{value:"code"},this._trans.__("Code")),c.createElement("option",{value:"markdown"},this._trans.__("Markdown")),c.createElement("option",{value:"raw"},this._trans.__("Raw")))}}var k=n(24735);var j=n(28548);function I(e){const t=e.translator||r.nullTranslator;const n=(0,i.translateKernelStatuses)(t);const s=t.load("jupyterlab");const o=e.state;const a=e.displayOption.showOnToolBar;const l=e.displayOption.showProgress;const d=a?"down":"up";const c=h().createElement("div",null);if(!o){return c}const u=o.kernelStatus;const p={alignSelf:"normal",height:"24px"};const m=o.totalTime;const g=o.scheduledCellNumber||0;const f=o.scheduledCell.size||0;const v=g-f;let _=100*v/g;let b=l?"":"hidden";if(!l&&_<100){_=0}const w=e=>h().createElement(k.ProgressCircle,{progress:e,width:16,height:24,label:s.__("Kernel status")});const C=e=>s.__("Kernel status: %1",e);const x=(e,t,i)=>h().createElement("div",{className:"jp-Notebook-ExecutionIndicator",title:l?"":C(n[e]),"data-status":e},t,h().createElement("div",{className:`jp-Notebook-ExecutionIndicator-tooltip ${d} ${b}`},h().createElement("span",null," ",C(n[e])," "),i));if(o.kernelStatus==="connecting"||o.kernelStatus==="disconnected"||o.kernelStatus==="unknown"){return x(u,h().createElement(y.offlineBoltIcon.react,{...p}),[])}if(o.kernelStatus==="starting"||o.kernelStatus==="terminating"||o.kernelStatus==="restarting"||o.kernelStatus==="initializing"){return x(u,h().createElement(y.circleIcon.react,{...p}),[])}if(o.executionStatus==="busy"){return x("busy",w(_),[h().createElement("span",{key:0},s.__(`Executed ${v}/${g} cells`)),h().createElement("span",{key:1},s._n("Elapsed time: %1 second","Elapsed time: %1 seconds",m))])}else{const e=o.kernelStatus==="busy"?0:100;const t=o.kernelStatus==="busy"||m===0?[]:[h().createElement("span",{key:0},s._n("Executed %1 cell","Executed %1 cells",g)),h().createElement("span",{key:1},s._n("Elapsed time: %1 second","Elapsed time: %1 seconds",m))];return x(o.kernelStatus,w(e),t)}}class E extends y.VDomRenderer{constructor(e,t=true){super(new E.Model);this.translator=e||r.nullTranslator;this.addClass("jp-mod-highlighted")}render(){if(this.model===null||!this.model.renderFlag){return h().createElement("div",null)}else{const e=this.model.currentNotebook;if(!e){return h().createElement(I,{displayOption:this.model.displayOption,state:undefined,translator:this.translator})}return h().createElement(I,{displayOption:this.model.displayOption,state:this.model.executionState(e),translator:this.translator})}}}(function(e){class t extends y.VDomModel{constructor(){super();this._notebookExecutionProgress=new WeakMap;this._displayOption={showOnToolBar:true,showProgress:true};this._renderFlag=true}attachNotebook(e){var t,n,i,s;if(e&&e.content&&e.context){const o=e.content;const r=e.context;this._currentNotebook=o;if(!this._notebookExecutionProgress.has(o)){this._notebookExecutionProgress.set(o,{executionStatus:"idle",kernelStatus:"idle",totalTime:0,interval:0,timeout:0,scheduledCell:new Set,scheduledCellNumber:0,needReset:true});const e=this._notebookExecutionProgress.get(o);const a=t=>{if(e){e.kernelStatus=t.kernelDisplayStatus}this.stateChanged.emit(void 0)};r.statusChanged.connect(a,this);const l=t=>{if(e){e.kernelStatus=t.kernelDisplayStatus}this.stateChanged.emit(void 0)};r.connectionStatusChanged.connect(l,this);r.disposed.connect((e=>{e.connectionStatusChanged.disconnect(l,this);e.statusChanged.disconnect(a,this)}));const d=(e,t)=>{const n=t.msg;const i=n.header.msg_id;if(n.header.msg_type==="execute_request"){this._cellScheduledCallback(o,i)}else if(j.KernelMessage.isStatusMsg(n)&&n.content.execution_state==="idle"){const e=n.parent_header.msg_id;this._cellExecutedCallback(o,e)}else if(j.KernelMessage.isStatusMsg(n)&&n.content.execution_state==="restarting"){this._restartHandler(o)}else if(n.header.msg_type==="execute_input"){this._startTimer(o)}};(n=(t=r.session)===null||t===void 0?void 0:t.kernel)===null||n===void 0?void 0:n.anyMessage.connect(d);(s=(i=r.session)===null||i===void 0?void 0:i.kernel)===null||s===void 0?void 0:s.disposed.connect((e=>e.anyMessage.disconnect(d)));const c=(t,n)=>{if(e){this._resetTime(e);this.stateChanged.emit(void 0);if(n.newValue){n.newValue.anyMessage.connect(d)}}};r.kernelChanged.connect(c);r.disposed.connect((e=>e.kernelChanged.disconnect(c)))}}}get currentNotebook(){return this._currentNotebook}get displayOption(){return this._displayOption}set displayOption(e){this._displayOption=e}executionState(e){return this._notebookExecutionProgress.get(e)}_scheduleSwitchToIdle(e){window.setTimeout((()=>{e.executionStatus="idle";clearInterval(e.interval);this.stateChanged.emit(void 0)}),150);e.timeout=window.setTimeout((()=>{e.needReset=true}),1e3)}_cellExecutedCallback(e,t){const n=this._notebookExecutionProgress.get(e);if(n&&n.scheduledCell.has(t)){n.scheduledCell.delete(t);if(n.scheduledCell.size===0){this._scheduleSwitchToIdle(n)}}}_restartHandler(e){const t=this._notebookExecutionProgress.get(e);if(t){t.scheduledCell.clear();this._scheduleSwitchToIdle(t)}}_startTimer(e){const t=this._notebookExecutionProgress.get(e);if(!t){return}if(t.scheduledCell.size>0){if(t.executionStatus!=="busy"){t.executionStatus="busy";clearTimeout(t.timeout);this.stateChanged.emit(void 0);t.interval=window.setInterval((()=>{this._tick(t)}),1e3)}}else{this._resetTime(t)}}_cellScheduledCallback(e,t){const n=this._notebookExecutionProgress.get(e);if(n&&!n.scheduledCell.has(t)){if(n.needReset){this._resetTime(n)}n.scheduledCell.add(t);n.scheduledCellNumber+=1}}_tick(e){e.totalTime+=1;this.stateChanged.emit(void 0)}_resetTime(e){e.totalTime=0;e.scheduledCellNumber=0;e.executionStatus="idle";e.scheduledCell=new Set;clearTimeout(e.timeout);clearInterval(e.interval);e.needReset=false}get renderFlag(){return this._renderFlag}updateRenderOption(e){if(this.displayOption.showOnToolBar){if(!e.showOnToolBar){this._renderFlag=false}else{this._renderFlag=true}}this.displayOption.showProgress=e.showProgress;this.stateChanged.emit(void 0)}}e.Model=t;function n(t,n,s){const o=new e(n);o.model.displayOption={showOnToolBar:true,showProgress:true};o.model.attachNotebook({content:t.content,context:t.sessionContext});if(s){s.then((e=>{const t=e=>{o.model.updateRenderOption(i(e))};e.changed.connect(t);t(e);o.disposed.connect((()=>{e.changed.disconnect(t)}))})).catch((e=>{console.error(e.message)}))}return o}e.createExecutionIndicatorItem=n;function i(e){let t=true;let n=true;const i=e.get("kernelStatus").composite;if(i){t=!i.showOnStatusBar;n=i.showProgress}return{showOnToolBar:t,showProgress:n}}e.getSettingValue=i})(E||(E={}));class T{constructor(e){this._requestBatchSize=10;this._cursor=0;this._hasSession=false;this._history=[];this._placeholder="";this._kernelSession="";this._setByHistory=false;this._isDisposed=false;this._editor=null;this._filtered=[];this._kernel=null;this._sessionContext=e.sessionContext;this._trans=(e.translator||r.nullTranslator).load("jupyterlab");void this._handleKernel().then((()=>{this._sessionContext.kernelChanged.connect(this._handleKernel,this)}));this._toRequest=this._requestBatchSize}get editor(){return this._editor}set editor(e){if(this._editor===e){return}const t=this._editor;if(t){t.model.sharedModel.changed.disconnect(this.onTextChange,this)}this._editor=e;if(e){e.model.sharedModel.changed.connect(this.onTextChange,this)}}get placeholder(){return this._placeholder}get kernelSession(){return this._kernelSession}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed=true;this._history.length=0;d.Signal.clearData(this)}async checkSession(e){var t;if(!this._hasSession){await this._retrieveHistory();this._hasSession=true;this.editor=e.editor;this._placeholder=((t=this._editor)===null||t===void 0?void 0:t.model.sharedModel.getSource())||"";this.setFilter(this._placeholder);this._cursor=this._filtered.length-1}}async back(e){await this.checkSession(e);--this._cursor;if(this._cursor<0){await this.fetchBatch()}this._cursor=Math.max(0,this._cursor);const t=this._filtered[this._cursor];return t}async forward(e){await this.checkSession(e);++this._cursor;this._cursor=Math.min(this._filtered.length-1,this._cursor);const t=this._filtered[this._cursor];return t}updateEditor(e,t){var n,i;if(e){const s=(n=e.editor)===null||n===void 0?void 0:n.model;const o=s===null||s===void 0?void 0:s.sharedModel.getSource();if(this.isDisposed||!t){return}if(o===t){return}this._setByHistory=true;s===null||s===void 0?void 0:s.sharedModel.setSource(t);let r=0;r=t.indexOf("\n");if(r<0){r=t.length}(i=e.editor)===null||i===void 0?void 0:i.setCursorPosition({line:0,column:r})}}reset(){this._hasSession=false;this._placeholder="";this._toRequest=this._requestBatchSize}async fetchBatch(){this._toRequest+=this._requestBatchSize;let e=this._filtered.slice().reverse();let t=this._history.slice();await this._retrieveHistory().then((()=>{this.setFilter(this._placeholder);let t=0;let n=this._filtered.slice().reverse();for(let i=0;it.length){await this.fetchBatch()}}}onHistory(e,t){this._history.length=0;let n=["","",""];let i=["","",""];let s="";if(e.content.status==="ok"){for(let t=0;t{this.onHistory(t,e)})).catch((()=>{console.warn(this._trans.__("History was unable to be retrieved"))})))}setFilter(e=""){this._filtered.length=0;let t="";let n="";for(let i=0;io;let t;if(e){t=this._trans.__(`This notebook has been converted from an older notebook format (v%1)\nto the current notebook format (v%2).\nThe next time you save this notebook, the current notebook format (v%2) will be used.\n'Older versions of Jupyter may not be able to read the new format.' To preserve the original format version,\nclose the notebook without saving it.`,o,s.nbformat)}else{t=this._trans.__(`This notebook has been converted from an newer notebook format (v%1)\nto the current notebook format (v%2).\nThe next time you save this notebook, the current notebook format (v%2) will be used.\nSome features of the original notebook may not be available.' To preserve the original format version,\nclose the notebook without saving it.`,o,s.nbformat)}void(0,i.showDialog)({title:this._trans.__("Notebook converted"),body:t,buttons:[i.Dialog.okButton({label:this._trans.__("Ok")})]})}if(((n=(t=s.cells)===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0)===0){s["cells"]=[{cell_type:"code",source:"",metadata:{trusted:true}}]}this.sharedModel.fromJSON(s);this._ensureMetadata();this.dirty=true}_onCellsChanged(e,t){switch(t.type){case"add":t.newValues.forEach((e=>{e.contentChanged.connect(this.triggerContentChange,this)}));break;case"remove":break;case"set":t.newValues.forEach((e=>{e.contentChanged.connect(this.triggerContentChange,this)}));break;default:break}this.triggerContentChange()}_onMetadataChanged(e,t){this._metadataChanged.emit(t);this.triggerContentChange()}_onStateChanged(e,t){if(t.stateChange){t.stateChange.forEach((e=>{if(e.name==="dirty"){this.dirty=e.newValue}else if(e.oldValue!==e.newValue){this.triggerStateChange({newValue:undefined,oldValue:undefined,...e})}}))}}_ensureMetadata(e=""){if(!this.getMetadata("language_info")){this.sharedModel.setMetadata("language_info",{name:e})}if(!this.getMetadata("kernelspec")){this.sharedModel.setMetadata("kernelspec",{name:"",display_name:""})}}triggerStateChange(e){this._stateChanged.emit(e)}triggerContentChange(){this._contentChanged.emit(void 0);this.dirty=true}get isDisposed(){return this._isDisposed}}class L{constructor(e={}){var t,n;this._disposed=false;this._disableDocumentWideUndoRedo=(t=e.disableDocumentWideUndoRedo)!==null&&t!==void 0?t:true;this._collaborative=(n=e.collaborative)!==null&&n!==void 0?n:true}get disableDocumentWideUndoRedo(){return this._disableDocumentWideUndoRedo}set disableDocumentWideUndoRedo(e){this._disableDocumentWideUndoRedo=e}get name(){return"notebook"}get contentType(){return"notebook"}get fileFormat(){return"json"}get collaborative(){return this._collaborative}get isDisposed(){return this._disposed}dispose(){this._disposed=true}createNew(e={}){return new P({languagePreference:e.languagePreference,sharedModel:e.sharedModel,collaborationEnabled:e.collaborationEnabled&&this.collaborative,disableDocumentWideUndoRedo:this._disableDocumentWideUndoRedo})}preferredLanguage(e){return""}}function R(e){const t=(e.translator||r.nullTranslator).load("jupyterlab");return c.createElement(k.TextItem,{source:t.__("Mode: %1",e.modeNames[e.notebookMode])})}class N extends y.VDomRenderer{constructor(e){super(new N.Model);this.translator=e||r.nullTranslator;this._trans=this.translator.load("jupyterlab");this._modeNames={command:this._trans.__("Command"),edit:this._trans.__("Edit")}}render(){if(!this.model){return null}this.node.title=this._trans.__("Notebook is in %1 mode",this._modeNames[this.model.notebookMode]);return c.createElement(R,{notebookMode:this.model.notebookMode,translator:this.translator,modeNames:this._modeNames})}}(function(e){class t extends y.VDomModel{constructor(){super(...arguments);this._onChanged=e=>{const t=this._notebookMode;if(this._notebook){this._notebookMode=e.mode}else{this._notebookMode="command"}this._triggerChange(t,this._notebookMode)};this._notebookMode="command";this._notebook=null}get notebookMode(){return this._notebookMode}set notebook(e){const t=this._notebook;if(t!==null){t.stateChanged.disconnect(this._onChanged,this);t.activeCellChanged.disconnect(this._onChanged,this);t.modelContentChanged.disconnect(this._onChanged,this)}const n=this._notebookMode;this._notebook=e;if(this._notebook===null){this._notebookMode="command"}else{this._notebookMode=this._notebook.mode;this._notebook.stateChanged.connect(this._onChanged,this);this._notebook.activeCellChanged.connect(this._onChanged,this);this._notebook.modelContentChanged.connect(this._onChanged,this)}this._triggerChange(n,this._notebookMode)}_triggerChange(e,t){if(e!==t){this.stateChanged.emit(void 0)}}}e.Model=t})(N||(N={}));var O=n(54723);var B=n(7243);class F extends B.WidgetLSPAdapter{constructor(e,t){super(e,t);this.editorWidget=e;this.options=t;this._type="code";this._readyDelegate=new l.PromiseDelegate;this._editorToCell=new Map;this.editor=e.content;this._cellToEditor=new WeakMap;this.isReady=this.isReady.bind(this);Promise.all([this.widget.context.sessionContext.ready,this.connectionManager.ready]).then((async()=>{await this.initOnceReady();this._readyDelegate.resolve()})).catch(console.error)}get documentPath(){return this.widget.context.path}get mimeType(){var e;let t;let n=this.language_info();if(!n||!n.mimetype){t=this.widget.content.codeMimetype}else{t=n.mimetype}return Array.isArray(t)?(e=t[0])!==null&&e!==void 0?e:O.IEditorMimeTypeService.defaultMimeType:t}get languageFileExtension(){let e=this.language_info();if(!e||!e.file_extension){return}return e.file_extension.replace(".","")}get wrapperElement(){return this.widget.node}get editors(){if(this.isDisposed){return[]}let e=this.widget.content;this._editorToCell.clear();if(e.isDisposed){return[]}return e.widgets.map((e=>({ceEditor:this._getCellEditor(e),type:e.model.type,value:e.model.sharedModel.getSource()})))}get activeEditor(){return this.editor.activeCell?this._getCellEditor(this.editor.activeCell):undefined}get ready(){return this._readyDelegate.promise}getEditorIndexAt(e){let t=this._getCellAt(e);let n=this.widget.content;return n.widgets.findIndex((e=>t===e))}getEditorIndex(e){let t=this._editorToCell.get(e);return this.editor.widgets.findIndex((e=>t===e))}getEditorWrapper(e){let t=this._editorToCell.get(e);return t.node}async onKernelChanged(e,t){if(!t.newValue){return}try{const e=this._languageInfo;await(0,B.untilReady)(this.isReady,-1);await this._updateLanguageInfo();const t=this._languageInfo;if((e===null||e===void 0?void 0:e.name)!=t.name||(e===null||e===void 0?void 0:e.mimetype)!=(t===null||t===void 0?void 0:t.mimetype)||(e===null||e===void 0?void 0:e.file_extension)!=(t===null||t===void 0?void 0:t.file_extension)){console.log(`Changed to ${this._languageInfo.name} kernel, reconnecting`);this.reloadConnection()}else{console.log("Keeping old LSP connection as the new kernel uses the same language")}}catch(n){console.warn(n);this.reloadConnection()}}dispose(){if(this.isDisposed){return}this.widget.context.sessionContext.kernelChanged.disconnect(this.onKernelChanged,this);this.widget.content.activeCellChanged.disconnect(this._activeCellChanged,this);super.dispose();this._editorToCell.clear();d.Signal.clearData(this)}isReady(){var e;return!this.widget.isDisposed&&this.widget.context.isReady&&this.widget.content.isVisible&&this.widget.content.widgets.length>0&&((e=this.widget.context.sessionContext.session)===null||e===void 0?void 0:e.kernel)!=null}async handleCellChange(e,t){let n=[];let i=[];const s=this._type;if(t.type==="set"){let e=[];let o=[];if(t.newValues.length===t.oldValues.length){for(let n=0;ne.type===s))}if(i.length||n.length||t.type==="set"||t.type==="move"||t.type==="remove"){await this.updateDocuments()}for(let o of n){let e=this.widget.content.widgets.find((e=>e.model.id===o.id));if(!e){console.warn(`Widget for added cell with ID: ${o.id} not found!`);continue}this._getCellEditor(e)}}createVirtualDocument(){return new B.VirtualDocument({language:this.language,foreignCodeExtractors:this.options.foreignCodeExtractorsManager,path:this.documentPath,fileExtension:this.languageFileExtension,standalone:false,hasLspSupportedFile:false})}language_info(){return this._languageInfo}async initOnceReady(){await(0,B.untilReady)(this.isReady.bind(this),-1);await this._updateLanguageInfo();this.initVirtual();this.connectDocument(this.virtualDocument,false).catch(console.warn);this.widget.context.sessionContext.kernelChanged.connect(this.onKernelChanged,this);this.widget.content.activeCellChanged.connect(this._activeCellChanged,this);this._connectModelSignals(this.widget);this.editor.modelChanged.connect((e=>{console.warn("Model changed, connecting cell change handler; this is not something we were expecting");this._connectModelSignals(e)}))}_connectModelSignals(e){if(e.model===null){console.warn(`Model is missing for notebook ${e}, cannot connect cell changed signal!`)}else{e.model.cells.changed.connect(this.handleCellChange,this)}}async _updateLanguageInfo(){var e,t,n,i;const s=(i=await((n=(t=(e=this.widget.context.sessionContext)===null||e===void 0?void 0:e.session)===null||t===void 0?void 0:t.kernel)===null||n===void 0?void 0:n.info))===null||i===void 0?void 0:i.language_info;if(s){this._languageInfo=s}else{throw new Error("Language info update failed (no session, kernel, or info available)")}}_activeCellChanged(e,t){if(!t||t.model.type!==this._type){return}this._activeEditorChanged.emit({editor:this._getCellEditor(t)})}_getCellAt(e){let t=this.virtualDocument.getEditorAtVirtualLine(e);return this._editorToCell.get(t)}_getCellEditor(e){if(!this._cellToEditor.has(e)){const t=Object.freeze({getEditor:()=>e.editor,ready:async()=>{await e.ready;return e.editor},reveal:async()=>{await this.editor.scrollToCell(e);return e.editor}});this._cellToEditor.set(e,t);this._editorToCell.set(t,e);e.disposed.connect((()=>{this._cellToEditor.delete(e);this._editorToCell.delete(t);this._editorRemoved.emit({editor:t})}));this._editorAdded.emit({editor:t})}return this._cellToEditor.get(e)}}var z=n(44336);var H=n(42856);var W=n(1143);class V extends W.Widget{constructor(){super();this._items=[];this.layout=new W.PanelLayout;this.addClass("jp-RankedPanel")}addWidget(e,t){const n={widget:e,rank:t};const i=a.ArrayExt.upperBound(this._items,n,q.itemCmp);a.ArrayExt.insert(this._items,i,n);const s=this.layout;s.insertWidget(i,e)}onChildRemoved(e){const t=a.ArrayExt.findFirstIndex(this._items,(t=>t.widget===e.child));if(t!==-1){a.ArrayExt.removeAt(this._items,t)}}}class U extends W.Widget{constructor(e){super();this.addClass("jp-NotebookTools");this.translator=e.translator||r.nullTranslator;this._tools=[];this.layout=new W.PanelLayout;this._tracker=e.tracker;this._tracker.currentChanged.connect(this._onActiveNotebookPanelChanged,this);this._tracker.activeCellChanged.connect(this._onActiveCellChanged,this);this._tracker.selectionChanged.connect(this._onSelectionChanged,this);this._onActiveNotebookPanelChanged();this._onActiveCellChanged();this._onSelectionChanged()}get activeCell(){return this._tracker.activeCell}get selectedCells(){const e=this._tracker.currentWidget;if(!e){return[]}const t=e.content;return t.widgets.filter((e=>t.isSelectedOrActive(e)))}get activeNotebookPanel(){return this._tracker.currentWidget}addItem(e){var t;const n=e.tool;const i=(t=e.rank)!==null&&t!==void 0?t:100;let s;const o=this._tools.find((t=>t.section===e.section));if(o)s=o.panel;else{throw new Error(`The section ${e.section} does not exist`)}n.addClass("jp-NotebookTools-tool");s.addWidget(n,i);n.notebookTools=this;H.MessageLoop.sendMessage(n,U.ActiveNotebookPanelMessage);H.MessageLoop.sendMessage(n,U.ActiveCellMessage)}addSection(e){var t;const n=e.sectionName;const i=e.label||e.sectionName;const s=e.tool;let o=(t=e.rank)!==null&&t!==void 0?t:null;const r=new V;r.title.label=i;if(s)r.addWidget(s,0);this._tools.push({section:n,panel:r,rank:o});if(o!=null)this.layout.insertWidget(o,new y.Collapser({widget:r}));else{let e=null;const t=this.layout;for(let n=0;n{this._delayCallbackInScrollingNotebook(e)}),t);this.callback=e;this._delayCallbackInScrollingNotebook=e=>{const t=[];const n=[];for(const i of e){if(te(i.target)&&!ne(i.target)){t.push(i)}else{n.push(i)}}if(n.length){this.callback(n,this)}if(t.length){void this._throttler.invoke(t)}};this._throttler=new ee.Throttler((e=>{this._delayCallbackInScrollingNotebook(e)}),{limit:1e3,edge:"trailing"})}};window.ResizeObserver=class extends window.ResizeObserver{constructor(e){super((e=>{this._delayCallbackInScrollingNotebook(e)}));this.callback=e;this._delayCallbackInScrollingNotebook=e=>{const t=[];const n=[];for(const i of e){if(te(i.target)){t.push(i)}else{n.push(i)}}if(n.length){this.callback(n,this)}if(t.length){void this._throttler.invoke(t)}};this._throttler=new ee.Throttler((e=>{this._delayCallbackInScrollingNotebook(e)}),{limit:1e3,edge:"trailing"})}};class ie extends y.WindowedListModel{constructor(e,t){super(t);this.cells=e;this.estimateWidgetSize=e=>{const t=this.cells[e];if(!t){console.warn(`estimateWidgetSize requested for cell ${e} in notebook with only ${this.cells.length} cells`);return 0}const n=t.model;const i=this.cellsEstimatedHeight.get(n.id);if(typeof i==="number"){return i}const o=n.sharedModel.getSource().split("\n").length;let r=0;if(n instanceof s.CodeCellModel&&!n.isDisposed){for(let e=0;ethis.cells[e];this.scrollDownThreshold=ie.DEFAULT_CELL_MARGIN/2+ie.DEFAULT_EDITOR_LINE_HEIGHT;this.scrollUpThreshold=ie.DEFAULT_CELL_MARGIN/2;this.cellsEstimatedHeight=new Map;this._emitEstimatedHeightChanged=new ee.Debouncer((()=>{this._stateChanged.emit({name:"estimatedWidgetSize",newValue:null,oldValue:null})}));this._estimatedWidgetSize=ie.DEFAULT_CELL_SIZE}setEstimatedWidgetSize(e,t){if(t===null){if(this.cellsEstimatedHeight.has(e)){this.cellsEstimatedHeight.delete(e)}}else{this.cellsEstimatedHeight.set(e,t);this._emitEstimatedHeightChanged.invoke().catch((e=>{console.error("Fail to trigger an update following a estimated height update.",e)}))}}}ie.DEFAULT_CELL_SIZE=39;ie.DEFAULT_EDITOR_LINE_HEIGHT=17;ie.DEFAULT_CELL_MARGIN=22;class se extends y.WindowedLayout{constructor(){super(...arguments);this._header=null;this._footer=null;this._willBeRemoved=null;this._topHiddenCodeCells=-1}get header(){return this._header}set header(e){var t;if(this._header&&this._header.isAttached){W.Widget.detach(this._header)}this._header=e;if(this._header&&((t=this.parent)===null||t===void 0?void 0:t.isAttached)){W.Widget.attach(this._header,this.parent.node)}}get footer(){return this._footer}set footer(e){var t;if(this._footer&&this._footer.isAttached){W.Widget.detach(this._footer)}this._footer=e;if(this._footer&&((t=this.parent)===null||t===void 0?void 0:t.isAttached)){W.Widget.attach(this._footer,this.parent.outerNode)}}get activeCell(){return this._activeCell}set activeCell(e){this._activeCell=e}dispose(){var e,t;if(this.isDisposed){return}(e=this._header)===null||e===void 0?void 0:e.dispose();(t=this._footer)===null||t===void 0?void 0:t.dispose();super.dispose()}removeWidget(e){const t=this.widgets.indexOf(e);if(t>=0){this.removeWidgetAt(t)}else if(e===this._willBeRemoved&&this.parent){this.detachWidget(t,e)}}attachWidget(e,t){const n=t.isPlaceholder();const i=this._isSoftHidden(t);if(this.parent.isAttached&&!i){H.MessageLoop.sendMessage(t,W.Widget.Msg.BeforeAttach)}if(i){this._toggleSoftVisibility(t,true)}if(!n&&t instanceof s.CodeCell&&t.node.parentElement){t.node.style.display="";this._topHiddenCodeCells=-1;if(this.parent.isAttached&&!t.isAttached){t.setFlag(W.Widget.Flag.IsAttached)}}else if(!i){const e=this._findNearestChildBinarySearch(this.parent.viewportNode.childElementCount-1,0,parseInt(t.dataset.windowedListIndex,10)+1);let n=this.parent.viewportNode.children[e];this.parent.viewportNode.insertBefore(t.node,n);if(this.parent.isAttached){H.MessageLoop.sendMessage(t,W.Widget.Msg.AfterAttach)}}t.inViewport=true}detachWidget(e,t){t.inViewport=false;if(t===this.activeCell&&t!==this._willBeRemoved){this._toggleSoftVisibility(t,false);return}const n=t.node.querySelector("defs,.myst");if(n){this._toggleSoftVisibility(t,false);return}if(t instanceof s.CodeCell&&!t.node.classList.contains(Z)&&t!==this._willBeRemoved){t.node.style.display="none";this._topHiddenCodeCells=-1}else{if(this.parent.isAttached){H.MessageLoop.sendMessage(t,W.Widget.Msg.BeforeDetach)}this.parent.viewportNode.removeChild(t.node);t.node.classList.remove(Q)}if(this.parent.isAttached){H.MessageLoop.sendMessage(t,W.Widget.Msg.AfterDetach)}}moveWidget(e,t,n){if(this._topHiddenCodeCells<0){this._topHiddenCodeCells=0;for(let e=0;en){e=i-1}}if(t>0){return t}else{return 0}}}const oe="jp-Notebook-footer";class re extends W.Widget{constructor(e){super({node:document.createElement("button")});this.notebook=e;const t=e.translator.load("jupyterlab");this.addClass(oe);this.node.setAttribute("tabindex","-1");this.node.innerText=t.__("Click to add a cell.")}handleEvent(e){switch(e.type){case"click":this.onClick();break;case"keydown":if(e.key==="ArrowUp"){this.onArrowUp();break}}}onClick(){if(this.notebook.widgets.length>0){this.notebook.activeCellIndex=this.notebook.widgets.length-1}f.insertBelow(this.notebook);void f.focusActiveCell(this.notebook)}onArrowUp(){}onAfterAttach(e){super.onAfterAttach(e);this.node.addEventListener("click",this);this.node.addEventListener("keydown",this)}onBeforeDetach(e){this.node.removeEventListener("click",this);this.node.removeEventListener("keydown",this);super.onBeforeDetach(e)}}const ae="jpKernelUser";const le="jpCodeRunner";const de="jpUndoer";const ce="jp-Notebook";const he="jp-Notebook-cell";const ue="jp-mod-editMode";const pe="jp-mod-commandMode";const me="jp-mod-active";const ge="jp-mod-selected";const fe="jp-mod-dirty";const ve="jp-mod-multiSelected";const _e="jp-mod-unconfined";const be="jp-mod-readWrite";const ye="jp-dragImage";const we="jp-dragImage-singlePrompt";const Ce="jp-dragImage-content";const xe="jp-dragImage-prompt";const Se="jp-dragImage-multipleBack";const ke="application/vnd.jupyter.cells";const je=5;const Ie=50;const Ee="jp-collapseHeadingButton";const Te="jp-mod-showHiddenCellsButton";const Me="jp-mod-sideBySide";if(window.requestIdleCallback===undefined){window.requestIdleCallback=function(e){let t=Date.now();return setTimeout((function(){e({didTimeout:false,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})}),1)};window.cancelIdleCallback=function(e){clearTimeout(e)}}class De extends y.WindowedList{constructor(e){var t,n,i,s,o,a;const l=new Array;const c=((n=(t=e.notebookConfig)===null||t===void 0?void 0:t.windowingMode)!==null&&n!==void 0?n:De.defaultNotebookConfig.windowingMode)==="full";super({model:new ie(l,{overscanCount:(s=(i=e.notebookConfig)===null||i===void 0?void 0:i.overscanCount)!==null&&s!==void 0?s:De.defaultNotebookConfig.overscanCount,windowingActive:c}),layout:new se,renderer:(o=e.renderer)!==null&&o!==void 0?o:y.WindowedList.defaultRenderer,scrollbar:false});this._cellCollapsed=new d.Signal(this);this._cellInViewportChanged=new d.Signal(this);this._renderingLayoutChanged=new d.Signal(this);this.addClass(ce);this.cellsArray=l;this._idleCallBack=null;this._editorConfig=De.defaultEditorConfig;this._notebookConfig=De.defaultNotebookConfig;this._mimetype=O.IEditorMimeTypeService.defaultMimeType;this._notebookModel=null;this._modelChanged=new d.Signal(this);this._modelContentChanged=new d.Signal(this);this.node.dataset[ae]="true";this.node.dataset[de]="true";this.node.dataset[le]="true";this.rendermime=e.rendermime;this.translator=e.translator||r.nullTranslator;this.contentFactory=e.contentFactory;this.editorConfig=e.editorConfig||De.defaultEditorConfig;this.notebookConfig=e.notebookConfig||De.defaultNotebookConfig;this._updateNotebookConfig();this._mimetypeService=e.mimeTypeService;this.renderingLayout=(a=e.notebookConfig)===null||a===void 0?void 0:a.renderingLayout;this.kernelHistory=e.kernelHistory}get cellCollapsed(){return this._cellCollapsed}get cellInViewportChanged(){return this._cellInViewportChanged}get modelChanged(){return this._modelChanged}get modelContentChanged(){return this._modelContentChanged}get renderingLayoutChanged(){return this._renderingLayoutChanged}get model(){return this._notebookModel}set model(e){var t;e=e||null;if(this._notebookModel===e){return}const n=this._notebookModel;this._notebookModel=e;this._onModelChanged(n,e);this.onModelChanged(n,e);this._modelChanged.emit(void 0);this.viewModel.itemsList=(t=e===null||e===void 0?void 0:e.cells)!==null&&t!==void 0?t:null}get codeMimetype(){return this._mimetype}get widgets(){return this.cellsArray}get editorConfig(){return this._editorConfig}set editorConfig(e){this._editorConfig=e;this._updateEditorConfig()}get notebookConfig(){return this._notebookConfig}set notebookConfig(e){this._notebookConfig=e;this._updateNotebookConfig()}get renderingLayout(){return this._renderingLayout}set renderingLayout(e){var t;this._renderingLayout=e;if(this._renderingLayout==="side-by-side"){this.node.classList.add(Me)}else{this.node.classList.remove(Me)}this._renderingLayoutChanged.emit((t=this._renderingLayout)!==null&&t!==void 0?t:"default")}dispose(){var e;if(this.isDisposed){return}this._notebookModel=null;(e=this.layout.header)===null||e===void 0?void 0:e.dispose();super.dispose()}moveCell(e,t,n=1){if(!this.model){return}const i=Math.min(this.model.cells.length-1,Math.max(0,t));if(i===e){return}const s=new Array(n);let o=new Array(n);for(let r=0;rt){if(this.widgets[t+r].model.type==="code"){this.widgets[t+r].model.isDirty=o[r]}}else{if(this.widgets[t+r-n+1].model.type==="code"){this.widgets[t+r-n+1].model.isDirty=o[r]}}}}renderCellOutputs(e){const t=this.viewModel.widgetRenderer(e);if(t instanceof s.CodeCell&&t.isPlaceholder()){t.dataset.windowedListIndex=`${e}`;this.layout.insertWidget(e,t);if(this.notebookConfig.windowingMode==="full"){requestAnimationFrame((()=>{this.layout.removeWidget(t)}))}}}addHeader(){const e=this.translator.load("jupyterlab");const t=new W.Widget;t.node.textContent=e.__("The notebook is empty. Click the + button on the toolbar to add a new cell.");this.layout.header=t}removeHeader(){var e;(e=this.layout.header)===null||e===void 0?void 0:e.dispose();this.layout.header=null}onModelChanged(e,t){}onModelContentChanged(e,t){this._modelContentChanged.emit(void 0)}onMetadataChanged(e,t){switch(t.key){case"language_info":this._updateMimetype();break;default:break}}onCellInserted(e,t){}onCellRemoved(e,t){}onUpdateRequest(e){if(this.notebookConfig.windowingMode==="defer"){void this._runOnIdleTime()}else{super.onUpdateRequest(e)}}_onModelChanged(e,t){var n;if(e){e.contentChanged.disconnect(this.onModelContentChanged,this);e.metadataChanged.disconnect(this.onMetadataChanged,this);e.cells.changed.disconnect(this._onCellsChanged,this);while(this.cellsArray.length){this._removeCell(0)}}if(!t){this._mimetype=O.IEditorMimeTypeService.defaultMimeType;return}this._updateMimetype();const i=t.cells;const s=(n=t.collaborative)!==null&&n!==void 0?n:false;if(!s&&!i.length){t.sharedModel.insertCell(0,{cell_type:this.notebookConfig.defaultCell,metadata:this.notebookConfig.defaultCell==="code"?{trusted:true}:{}})}let o=-1;for(const r of i){this._insertCell(++o,r)}t.cells.changed.connect(this._onCellsChanged,this);t.metadataChanged.connect(this.onMetadataChanged,this);t.contentChanged.connect(this.onModelContentChanged,this)}_onCellsChanged(e,t){this.removeHeader();switch(t.type){case"add":{let e=0;e=t.newIndex;for(const n of t.newValues){this._insertCell(e++,n)}this._updateDataWindowedListIndex(t.newIndex,this.model.cells.length,t.newValues.length);break}case"remove":for(let e=t.oldValues.length;e>0;e--){this._removeCell(t.oldIndex)}this._updateDataWindowedListIndex(t.oldIndex,this.model.cells.length+t.oldValues.length,-1*t.oldValues.length);if(!e.length){const e=this.model;requestAnimationFrame((()=>{if(e&&!e.isDisposed&&!e.sharedModel.cells.length){e.sharedModel.insertCell(0,{cell_type:this.notebookConfig.defaultCell,metadata:this.notebookConfig.defaultCell==="code"?{trusted:true}:{}})}}))}break;default:return}if(!this.model.sharedModel.cells.length){this.addHeader()}this.update()}_insertCell(e,t){let n;switch(t.type){case"code":n=this._createCodeCell(t);n.model.mimeType=this._mimetype;break;case"markdown":n=this._createMarkdownCell(t);if(t.sharedModel.getSource()===""){n.rendered=false}break;default:n=this._createRawCell(t)}n.inViewportChanged.connect(this._onCellInViewportChanged,this);n.addClass(he);a.ArrayExt.insert(this.cellsArray,e,n);this.onCellInserted(e,n);this._scheduleCellRenderOnIdle()}_createCodeCell(e){const t=this.rendermime;const n=this.contentFactory;const i=this.editorConfig.code;const s={contentFactory:n,editorConfig:i,inputHistoryScope:this.notebookConfig.inputHistoryScope,showInputPlaceholder:this.notebookConfig.showInputPlaceholder,maxNumberOutputs:this.notebookConfig.maxNumberOutputs,model:e,placeholder:this._notebookConfig.windowingMode!=="none",rendermime:t,translator:this.translator};const o=this.contentFactory.createCodeCell(s);o.syncCollapse=true;o.syncEditable=true;o.syncScrolled=true;o.outputArea.inputRequested.connect(((e,t)=>{this._onInputRequested(o).catch((e=>{console.error("Failed to scroll to cell requesting input.",e)}));t.disposed.connect((()=>{o.node.focus()}))}));return o}_createMarkdownCell(e){const t=this.rendermime;const n=this.contentFactory;const i=this.editorConfig.markdown;const s={contentFactory:n,editorConfig:i,model:e,placeholder:this._notebookConfig.windowingMode!=="none",rendermime:t,showEditorForReadOnlyMarkdown:this._notebookConfig.showEditorForReadOnlyMarkdown};const o=this.contentFactory.createMarkdownCell(s);o.syncCollapse=true;o.syncEditable=true;o.headingCollapsedChanged.connect(this._onCellCollapsed,this);return o}_createRawCell(e){const t=this.contentFactory;const n=this.editorConfig.raw;const i={editorConfig:n,model:e,contentFactory:t,placeholder:this._notebookConfig.windowingMode!=="none"};const s=this.contentFactory.createRawCell(i);s.syncCollapse=true;s.syncEditable=true;return s}_removeCell(e){const t=this.cellsArray[e];t.parent=null;a.ArrayExt.removeAt(this.cellsArray,e);this.onCellRemoved(e,t);t.dispose()}_updateMimetype(){var e;const t=(e=this._notebookModel)===null||e===void 0?void 0:e.getMetadata("language_info");if(!t){return}this._mimetype=this._mimetypeService.getMimeTypeByLanguage(t);for(const n of this.widgets){if(n.model.type==="code"){n.model.mimeType=this._mimetype}}}_onCellCollapsed(e,t){f.setHeadingCollapse(e,t,this);this._cellCollapsed.emit(e)}_onCellInViewportChanged(e){this._cellInViewportChanged.emit(e)}async _onInputRequested(e){if(!e.inViewport){const t=this.widgets.findIndex((t=>t===e));if(t>=0){await this.scrollToItem(t);const n=e.node.querySelector(".jp-Stdin");if(n){J.ElementExt.scrollIntoViewIfNeeded(this.node,n);n.focus()}}}}_scheduleCellRenderOnIdle(){if(this.notebookConfig.windowingMode!=="none"&&!this.isDisposed){if(!this._idleCallBack){this._idleCallBack=requestIdleCallback((e=>{this._idleCallBack=null;void this._runOnIdleTime(e.didTimeout?Ie:e.timeRemaining())}),{timeout:3e3})}}}_updateDataWindowedListIndex(e,t,n){for(let i=0;i=e&&o{this.viewModel.setEstimatedWidgetSize(e.model.id,e.node.getBoundingClientRect().height);this.layout.removeWidget(e)}))}}}n++}if(n{if(!this._element){this._element=this._createElement();this._notebook.activeCellChanged.connect(this._updateActive);this._notebook.selectionChanged.connect(this._updateSelection);if(this._model.type==="code"){const e=this._model;e.outputs.changed.connect(this._updatePrompt);e.stateChanged.connect(this._updateState)}}if(this._model.type!=this._element.dataset.type){this._element.dataset.type=this._model.type}const t=this._model.sharedModel.source;const n=t.length>1e4?t.substring(0,1e4):t;if(n!==this._source.textContent){this._source.textContent=n}this._updateActive();this._updateSelection();this._updatePrompt();this._updateDirty();return this._element};this.dispose=()=>{this._isDisposed=true;this._notebook.activeCellChanged.disconnect(this._updateActive);this._notebook.selectionChanged.disconnect(this._updateSelection);if(this._model.type==="code"){const e=this._model;if(e.outputs){e.outputs.changed.disconnect(this._updatePrompt);e.stateChanged.disconnect(this._updateState)}}};this._updateState=(e,t)=>{switch(t.name){case"executionCount":case"executionState":this._updatePrompt();break;case"isDirty":{this._updateDirty();break}}};this._updatePrompt=()=>{if(this._model.type!=="code"){return}const e=this._model;let t=false;for(let s=0;s{var e;if(!this._element){this._element=this._createElement()}const t=this._element;const n=t.classList.contains(me);if(((e=this._notebook.activeCell)===null||e===void 0?void 0:e.model)===this._model){if(!n){t.classList.add(me)}}else if(n){t.classList.remove(me);t.classList.remove(ge)}};this._updateSelection=()=>{if(!this._element){this._element=this._createElement()}const e=this._element;const t=e.classList.contains(ge);if(this._notebook.selectedCells.some((e=>this._model===e.model))){if(!t){e.classList.add(ge)}}else if(t){e.classList.remove(ge)}};this._isDisposed=false;this._element=null;this._model=e.model;this._notebook=e.notebook}get key(){return this._model.id}get isDisposed(){if(!this._isDisposed&&this._model.isDisposed){this.dispose()}return this._isDisposed}_updateDirty(){if(this._model.type!=="code"||!this._element){return}const e=this._model;const t=this._element.classList.contains(fe);if(t!==e.isDirty){if(e.isDirty){this._element.classList.add(fe)}else{this._element.classList.remove(fe)}}}_createElement(){const e=document.createElement("li");const t=this._executionIndicator=document.createElement("div");t.className="jp-scrollbarItem-executionIndicator";const n=this._source=document.createElement("div");n.className="jp-scrollbarItem-source";e.append(t);e.append(n);return e}}class Pe extends De{constructor(e){super({renderer:{createOuter(){return document.createElement("div")},createViewport(){const e=document.createElement("div");e.setAttribute("role","feed");e.setAttribute("aria-label","Cells");return e},createScrollbar(){return document.createElement("ol")},createScrollbarViewportIndicator(){return document.createElement("div")},createScrollbarItem(e,t,n){return new Ae({notebook:e,model:n})}},...e});this._activeCellIndex=-1;this._activeCell=null;this._mode="command";this._drag=null;this._dragData=null;this._selectData=null;this._mouseMode=null;this._activeCellChanged=new d.Signal(this);this._stateChanged=new d.Signal(this);this._selectionChanged=new d.Signal(this);this._checkCacheOnNextResize=false;this._lastClipboardInteraction=null;this._selectedCells=[];this.outerNode.setAttribute("data-lm-dragscroll","true");this.activeCellChanged.connect(this._updateSelectedCells,this);this.jumped.connect(((e,t)=>this.activeCellIndex=t));this.selectionChanged.connect(this._updateSelectedCells,this);this.addFooter()}get selectedCells(){return this._selectedCells}addFooter(){const e=new re(this);this.layout.footer=e}_onCellsChanged(e,t){var n,i;const s=(n=this.activeCell)===null||n===void 0?void 0:n.model.id;super._onCellsChanged(e,t);if(s){const e=(i=this.model)===null||i===void 0?void 0:i.sharedModel.cells.findIndex((e=>e.getId()===s));if(e!=null){this.activeCellIndex=e}}}get activeCellChanged(){return this._activeCellChanged}get stateChanged(){return this._stateChanged}get selectionChanged(){return this._selectionChanged}get mode(){return this._mode}set mode(e){this.setMode(e)}setMode(e,t={}){var n;const i=(n=t.focus)!==null&&n!==void 0?n:true;const o=this.activeCell;if(!o){e="command"}if(e===this._mode){if(i){this._ensureFocus()}return}this.update();const r=this._mode;this._mode=e;if(e==="edit"){for(const e of this.widgets){this.deselect(e)}if(o instanceof s.MarkdownCell){o.rendered=false}o.inputHidden=false}else{if(i){void f.focusActiveCell(this,{waitUntilReady:false,preventScroll:true})}}this._stateChanged.emit({name:"mode",oldValue:r,newValue:e});if(i){this._ensureFocus()}}get activeCellIndex(){if(!this.model){return-1}return this.widgets.length?this._activeCellIndex:-1}set activeCellIndex(e){var t,n;const i=this._activeCellIndex;if(!this.model||!this.widgets.length){e=-1}else{e=Math.max(e,0);e=Math.min(e,this.widgets.length-1)}this._activeCellIndex=e;const o=(t=this.widgets[i])!==null&&t!==void 0?t:null;const r=(n=this.widgets[e])!==null&&n!==void 0?n:null;this.layout.activeCell=r;const a=r!==this._activeCell;if(a){this.update();this._activeCell=r}if(a||e!=i){this._activeCellChanged.emit(r)}if(this.mode==="edit"){if(r instanceof s.MarkdownCell){r.rendered=false}if(this.notebookConfig.autoRenderMarkdownCells&&a&&o instanceof s.MarkdownCell){o.rendered=true}}this._ensureFocus();if(e===i){return}this._trimSelections();this._stateChanged.emit({name:"activeCellIndex",oldValue:i,newValue:e})}get activeCell(){return this._activeCell}get lastClipboardInteraction(){return this._lastClipboardInteraction}set lastClipboardInteraction(e){this._lastClipboardInteraction=e}dispose(){if(this.isDisposed){return}this._activeCell=null;super.dispose()}moveCell(e,t,n=1){const i=e<=this.activeCellIndex&&this.activeCellIndext?0:n-1):-1;const s=this.widgets.slice(e,e+n).map((e=>this.isSelected(e)));super.moveCell(e,t,n);if(i>=0){this.activeCellIndex=i}if(e>t){s.forEach(((e,n)=>{if(e){this.select(this.widgets[t+n])}}))}else{s.forEach(((e,i)=>{if(e){this.select(this.widgets[t-n+1+i])}}))}}select(e){if(Le.selectedProperty.get(e)){return}Le.selectedProperty.set(e,true);this._selectionChanged.emit(void 0);this.update()}deselect(e){if(!Le.selectedProperty.get(e)){return}Le.selectedProperty.set(e,false);this._selectionChanged.emit(void 0);this.update()}isSelected(e){return Le.selectedProperty.get(e)}isSelectedOrActive(e){if(e===this._activeCell){return true}return Le.selectedProperty.get(e)}deselectAll(){let e=false;for(const t of this.widgets){if(Le.selectedProperty.get(t)){e=true}Le.selectedProperty.set(t,false)}if(e){this._selectionChanged.emit(void 0)}this.activeCellIndex=this.activeCellIndex;this.update()}extendContiguousSelectionTo(e){let{head:t,anchor:n}=this.getContiguousSelection();let i;if(n===null||t===null){if(e===this.activeCellIndex){return}t=this.activeCellIndex;n=this.activeCellIndex}this.activeCellIndex=e;e=this.activeCellIndex;if(e===n){this.deselectAll();return}let s=false;if(tthis.isSelected(e)));if(t===-1){return{head:null,anchor:null}}const n=a.ArrayExt.findLastIndex(e,(e=>this.isSelected(e)),-1,t);for(let s=t;s<=n;s++){if(!this.isSelected(e[s])){throw new Error("Selection not contiguous")}}const i=this.activeCellIndex;if(t!==i&&n!==i){throw new Error("Active cell not at endpoint of selection")}if(t===i){return{head:t,anchor:n}}else{return{head:n,anchor:t}}}async scrollToCell(e,t="auto"){try{await this.scrollToItem(this.widgets.findIndex((t=>t===e)),t)}catch(n){}this.deselectAll();this.select(e);e.activate()}_parseFragment(e){const t=e.slice(1);if(!t){return}const n=t.split("=");if(n.length===1){return{kind:"heading",value:t}}return{kind:n[0],value:n.slice(1).join("=")}}async setFragment(e){const t=this._parseFragment(e);if(!t){return}let n;switch(t.kind){case"heading":n=await this._findHeading(t.value);break;case"cell-id":n=this._findCellById(t.value);break;default:console.warn(`Unknown target type for URI fragment ${e}, interpreting as a heading`);n=await this._findHeading(t.kind+"="+t.value);break}if(n==null){return}let{cell:i,element:s}=n;if(!i.inViewport){await this.scrollToCell(i,"center")}if(s==null){s=i.node}const o=this.node.getBoundingClientRect();const r=s.getBoundingClientRect();if(r.top>o.bottom||r.bottom1){t.addClass(ve)}}onCellInserted(e,t){void t.ready.then((()=>{if(!t.isDisposed){t.editor.edgeRequested.connect(this._onEdgeRequest,this)}}));t.scrollRequested.connect(((e,n)=>{if(t!==this.activeCell){return}if(!n.defaultPrevented){return}const i=this.outerNode;if(t.inViewport){return n.scrollWithinCell({scroller:i})}this.scrollToItem(this.activeCellIndex).then((()=>{void t.ready.then((()=>{n.scrollWithinCell({scroller:i})}))})).catch((e=>{}))}));this.activeCellIndex=e<=this.activeCellIndex?this.activeCellIndex+1:this.activeCellIndex}onCellRemoved(e,t){this.activeCellIndex=e<=this.activeCellIndex?this.activeCellIndex-1:this.activeCellIndex;if(this.isSelected(t)){this._selectionChanged.emit(void 0)}}onModelChanged(e,t){super.onModelChanged(e,t);this.activeCellIndex=0}_onEdgeRequest(e,t){const n=this.activeCellIndex;if(t==="top"){this.activeCellIndex--;if(this.activeCellIndexn){const e=this.activeCell.editor;if(e){e.setCursorPosition({line:0,column:0})}}}this.mode="edit"}_ensureFocus(e=false){var t,n;const i=this.layout.footer;if(i&&document.activeElement===i.node){return}const s=this.activeCell;if(this.mode==="edit"&&s){if(((t=s.editor)===null||t===void 0?void 0:t.hasFocus())!==true){if(s.inViewport){(n=s.editor)===null||n===void 0?void 0:n.focus()}else{this.scrollToItem(this.activeCellIndex).then((()=>{void s.ready.then((()=>{var e;(e=s.editor)===null||e===void 0?void 0:e.focus()}))})).catch((e=>{}))}}}if(e&&s&&!s.node.contains(document.activeElement)){void f.focusActiveCell(this,{preventScroll:true})}}_findCell(e){let t=e;while(t&&t!==this.node){if(t.classList.contains(he)){const e=a.ArrayExt.findFirstIndex(this.widgets,(e=>e.node===t));if(e!==-1){return e}break}t=t.parentElement}return-1}_findEventTargetAndCell(e){let t=e.target;let n=this._findCell(t);if(n===-1){t=document.elementFromPoint(e.clientX,e.clientY);n=this._findCell(t)}return[t,n]}async _findHeading(e){for(let t=0;t=je||i>=je){this._mouseMode=null;this._startDrag(t.index,e.clientX,e.clientY)}break}default:break}}_evtDragEnter(e){if(!e.mimeData.hasData(ke)){return}e.preventDefault();e.stopPropagation();const t=e.target;const n=this._findCell(t);if(n===-1){return}const i=this.cellsArray[n];i.node.classList.add(Q)}_evtDragLeave(e){if(!e.mimeData.hasData(ke)){return}e.preventDefault();e.stopPropagation();const t=this.node.getElementsByClassName(Q);if(t.length){t[0].classList.remove(Q)}}_evtDragOver(e){if(!e.mimeData.hasData(ke)){return}e.preventDefault();e.stopPropagation();e.dropAction=e.proposedAction;const t=this.node.getElementsByClassName(Q);if(t.length){t[0].classList.remove(Q)}const n=e.target;const i=this._findCell(n);if(i===-1){return}const s=this.cellsArray[i];s.node.classList.add(Q)}_evtDrop(e){if(!e.mimeData.hasData(ke)){return}e.preventDefault();e.stopPropagation();if(e.proposedAction==="none"){e.dropAction="none";return}let t=e.target;while(t&&t.parentElement){if(t.classList.contains(Q)){t.classList.remove(Q);break}t=t.parentElement}const n=this.model;const i=e.source;if(i===this){e.dropAction="move";const n=e.mimeData.getData("internal:cells");const o=n[n.length-1];if(o instanceof s.MarkdownCell&&o.headingCollapsed){const e=f.findNextParentHeading(o,i);if(e>0){const t=(0,a.findIndex)(i.widgets,(e=>o.model.id===e.model.id));n.push(...i.widgets.slice(t+1,e))}}let r=a.ArrayExt.firstIndexOf(this.widgets,n[0]);let l=this._findCell(t);if(l!==-1&&l>r){l-=1}else if(l===-1){l=this.widgets.length-1}if(l>=r&&le.model.sharedModel.getSource())).join("\n");this._drag.mimeData.setData("text/plain",u);document.removeEventListener("mousemove",this,true);document.removeEventListener("mouseup",this,true);this._mouseMode=null;void this._drag.start(t,n).then((e=>{if(this.isDisposed){return}this._drag=null;for(const t of r){t.removeClass(Z)}}))}_updateReadWrite(){const e=i.DOMUtils.hasActiveEditableElement(this.node);this.node.classList.toggle(be,e)}_evtFocusIn(e){var t,n;this._updateReadWrite();const i=e.target;const s=this._findCell(i);if(s!==-1){const e=this.widgets[s];if(e.editorWidget&&!e.editorWidget.node.contains(i)){this.setMode("command",{focus:false})}this.activeCellIndex=s;const n=(t=e.editorWidget)===null||t===void 0?void 0:t.node;if(n===null||n===void 0?void 0:n.contains(i)){this.setMode("edit",{focus:false})}}else{this.setMode("command",{focus:false});e.preventDefault();const t=e.relatedTarget;if(this._activeCell&&!this._activeCell.node.contains(t)){this._activeCell.ready.then((()=>{var e;(e=this._activeCell)===null||e===void 0?void 0:e.node.focus({preventScroll:true})})).catch((()=>{var e;(e=this.layout.footer)===null||e===void 0?void 0:e.node.focus({preventScroll:true})}))}else{(n=this.layout.footer)===null||n===void 0?void 0:n.node.focus({preventScroll:true})}}}_evtFocusOut(e){var t;this._updateReadWrite();const n=e.relatedTarget;if(!n){return}const i=this._findCell(n);if(i!==-1){const e=this.widgets[i];if((t=e.editorWidget)===null||t===void 0?void 0:t.node.contains(n)){return}}if(this.mode!=="command"){this.setMode("command",{focus:false})}}_evtDblClick(e){const t=this.model;if(!t){return}this.deselectAll();const[n,i]=this._findEventTargetAndCell(e);if(e.target.classList.contains(Ee)){return}if(i===-1){return}this.activeCellIndex=i;if(t.cells.get(i).type==="markdown"){const e=this.widgets[i];e.rendered=false}else if(n.localName==="img"){n.classList.toggle(_e)}}_trimSelections(){for(let e=0;ethis.isSelectedOrActive(e)));if(this.kernelHistory){this.kernelHistory.reset()}}}(function(e){class t extends De.ContentFactory{}e.ContentFactory=t})(Pe||(Pe={}));var Le;(function(e){e.selectedProperty=new Y.AttachedProperty({name:"selected",create:()=>false});class t extends W.PanelLayout{onUpdateRequest(e){}}e.NotebookPanelLayout=t;function n(e,t,n){if(e>1){if(t!==""){return X.VirtualDOM.realize(X.h.div(X.h.div({className:ye},X.h.span({className:xe},"["+t+"]:"),X.h.span({className:Ce},n)),X.h.div({className:Se},"")))}else{return X.VirtualDOM.realize(X.h.div(X.h.div({className:ye},X.h.span({className:xe}),X.h.span({className:Ce},n)),X.h.div({className:Se},"")))}}else{if(t!==""){return X.VirtualDOM.realize(X.h.div(X.h.div({className:`${ye} ${we}`},X.h.span({className:xe},"["+t+"]:"),X.h.span({className:Ce},n))))}else{return X.VirtualDOM.realize(X.h.div(X.h.div({className:`${ye} ${we}`},X.h.span({className:xe}),X.h.span({className:Ce},n))))}}}e.createDragImage=n})(Le||(Le={}));const Re="jp-NotebookPanel";const Ne="jp-NotebookPanel-toolbar";const Oe="jp-NotebookPanel-notebook";class Be extends $.DocumentWidget{constructor(e){super(e);this._autorestarting=false;this.addClass(Re);this.toolbar.addClass(Ne);this.content.addClass(Oe);this.content.model=this.context.model;this.context.sessionContext.kernelChanged.connect(this._onKernelChanged,this);this.context.sessionContext.statusChanged.connect(this._onSessionStatusChanged,this);this.context.saveState.connect(this._onSave,this);void this.revealed.then((()=>{if(this.isDisposed){return}if(this.content.widgets.length===1){const e=this.content.widgets[0].model;if(e.type==="code"&&e.sharedModel.getSource()===""){this.content.mode="edit"}}}))}_onSave(e,t){if(t==="started"&&this.model){for(const e of this.model.cells){if((0,s.isMarkdownCellModel)(e)){for(const t of e.attachments.keys){if(!e.sharedModel.getSource().includes(t)){e.attachments.remove(t)}}}}}}get sessionContext(){return this.context.sessionContext}get model(){return this.content.model}setConfig(e){this.content.editorConfig=e.editorConfig;this.content.notebookConfig=e.notebookConfig;const t=this.context.sessionContext.kernelPreference;this.context.sessionContext.kernelPreference={...t,shutdownOnDispose:e.kernelShutdown,autoStartDefault:e.autoStartDefault}}setFragment(e){void this.context.ready.then((()=>{void this.content.setFragment(e)}))}dispose(){this.content.dispose();super.dispose()}[i.Printing.symbol](){return async()=>{if(this.context.model.dirty&&!this.context.model.readOnly){await this.context.save()}await i.Printing.printURL(o.PageConfig.getNBConvertURL({format:"html",download:false,path:this.context.path}))}}onBeforeHide(e){super.onBeforeHide(e);this.content.isParentHidden=true}onBeforeShow(e){this.content.isParentHidden=false;super.onBeforeShow(e)}_onKernelChanged(e,t){if(!this.model||!t.newValue){return}const{newValue:n}=t;void n.info.then((e=>{var t;if(this.model&&((t=this.context.sessionContext.session)===null||t===void 0?void 0:t.kernel)===n){this._updateLanguage(e.language_info)}}));void this._updateSpec(n)}_onSessionStatusChanged(e,t){var n;if(t==="autorestarting"&&!this._autorestarting){void(0,i.showDialog)({title:this._trans.__("Kernel Restarting"),body:this._trans.__("The kernel for %1 appears to have died. It will restart automatically.",(n=this.sessionContext.session)===null||n===void 0?void 0:n.path),buttons:[i.Dialog.okButton({label:this._trans.__("Ok")})]});this._autorestarting=true}else if(t==="restarting"){}else{this._autorestarting=false}}_updateLanguage(e){this.model.setMetadata("language_info",e)}async _updateSpec(e){const t=await e.spec;if(this.isDisposed){return}this.model.setMetadata("kernelspec",{name:e.name,display_name:t===null||t===void 0?void 0:t.display_name,language:t===null||t===void 0?void 0:t.language})}}(function(e){class t extends Pe.ContentFactory{createNotebook(e){return new Pe(e)}}e.ContentFactory=t;e.IContentFactory=new l.Token("@jupyterlab/notebook:IContentFactory",`A factory object that creates new notebooks.\n Use this if you want to create and host notebooks in your own UI elements.`)})(Be||(Be={}));var Fe=n(22441);class ze extends Fe.SearchProvider{constructor(e,t=r.nullTranslator){super(e);this.translator=t;this._textSelection=null;this._currentProviderIndex=null;this._delayedActiveCellChangeHandler=null;this._onSelection=false;this._selectedCells=1;this._selectedLines=0;this._query=null;this._searchProviders=[];this._editorSelectionsObservable=null;this._selectionSearchMode="cells";this._selectionLock=false;this._searchActive=false;this._handleHighlightsAfterActiveCellChange=this._handleHighlightsAfterActiveCellChange.bind(this);this.widget.model.cells.changed.connect(this._onCellsChanged,this);this.widget.content.activeCellChanged.connect(this._onActiveCellChanged,this);this.widget.content.selectionChanged.connect(this._onCellSelectionChanged,this);this.widget.content.stateChanged.connect(this._onNotebookStateChanged,this);this._observeActiveCell();this._filtersChanged.connect(this._setEnginesSelectionSearchMode,this)}_onNotebookStateChanged(e,t){if(t.name==="mode"){window.setTimeout((()=>{var e;if(t.newValue==="command"&&((e=document.activeElement)===null||e===void 0?void 0:e.closest(".jp-DocumentSearch-overlay"))){return}this._updateSelectionMode();this._filtersChanged.emit()}),0)}}static isApplicable(e){return e instanceof Be}static createNew(e,t){return new ze(e,t)}get currentMatchIndex(){let e=0;let t=false;for(let n=0;ne+=t.matchesCount),0)}get isReadOnly(){var e,t,n;return(n=(t=(e=this.widget)===null||e===void 0?void 0:e.content.model)===null||t===void 0?void 0:t.readOnly)!==null&&n!==void 0?n:false}get replaceOptionsSupport(){return{preserveCase:true}}getSelectionState(){const e=this._selectionSearchMode==="cells";const t=e?this._selectedCells:this._selectedLines;return t>1?"multiple":t===1&&!e?"single":"none"}dispose(){var e;if(this.isDisposed){return}this.widget.content.activeCellChanged.disconnect(this._onActiveCellChanged,this);(e=this.widget.model)===null||e===void 0?void 0:e.cells.changed.disconnect(this._onCellsChanged,this);this.widget.content.stateChanged.disconnect(this._onNotebookStateChanged,this);this.widget.content.selectionChanged.disconnect(this._onCellSelectionChanged,this);this._stopObservingLastCell();super.dispose();const t=this.widget.content.activeCellIndex;this.endQuery().then((()=>{if(!this.widget.isDisposed){this.widget.content.activeCellIndex=t}})).catch((e=>{console.error(`Fail to end search query in notebook:\n${e}`)}))}getFilters(){const e=this.translator.load("jupyterlab");return{output:{title:e.__("Search Cell Outputs"),description:e.__("Search in the cell outputs."),disabledDescription:e.__("Search in the cell outputs (not available when replace options are shown)."),default:false,supportReplace:false},selection:{title:this._selectionSearchMode==="cells"?e._n("Search in %1 Selected Cell","Search in %1 Selected Cells",this._selectedCells):e._n("Search in %1 Selected Line","Search in %1 Selected Lines",this._selectedLines),description:e.__("Search only in the selected cells or text (depending on edit/command mode)."),default:false,supportReplace:true}}}_updateSelectionMode(){if(this._selectionLock){return}this._selectionSearchMode=this._selectedCells===1&&this.widget.content.mode==="edit"&&this._selectedLines!==0?"text":"cells"}getInitialQuery(){var e;return((e=window.getSelection())===null||e===void 0?void 0:e.toString())||""}async clearHighlight(){this._selectionLock=true;if(this._currentProviderIndex!==null&&this._currentProviderIndex{const o=(0,s.createCellSearchProvider)(t);await o.setIsActive(!this._filters.selection||this.widget.content.isSelectedOrActive(t));if(this._onSelection&&this._selectionSearchMode==="text"&&n===i){if(this._textSelection){await o.setSearchSelection(this._textSelection)}}await o.startQuery(e,this._filters);return o})));this._currentProviderIndex=i;await this.highlightNext(true,{from:"selection-start",scroll:false,select:false});return Promise.resolve()}async endQuery(){await Promise.all(this._searchProviders.map((e=>e.endQuery().then((()=>{e.dispose()})))));this._searchActive=false;this._searchProviders.length=0;this._currentProviderIndex=null}async replaceCurrentMatch(e,t=true,n){let i=false;const s=async(e=false)=>{var n;const i=(n=this.widget)===null||n===void 0?void 0:n.content.activeCell;if((i===null||i===void 0?void 0:i.model.type)==="markdown"&&i.rendered){i.rendered=false;if(e){await this.highlightNext(t)}}};if(this._currentProviderIndex!==null){await s();const o=this._searchProviders[this._currentProviderIndex];i=await o.replaceCurrentMatch(e,false,n);if(o.currentMatchIndex===null){await this.highlightNext(t,{from:"previous-match"})}}await s(true);return i}async replaceAllMatches(e,t){const n=await Promise.all(this._searchProviders.map((n=>n.replaceAllMatches(e,t))));return n.includes(true)}async validateFilter(e,t){if(e!=="output"){return t}if(t&&this.widget.content.widgets.some((e=>e instanceof s.CodeCell&&e.isPlaceholder()))){const e=this.translator.load("jupyterlab");const t=await(0,i.showDialog)({title:e.__("Confirmation"),body:e.__("Searching outputs requires you to run all cells and render their outputs. Are you sure you want to search in the cell outputs?"),buttons:[i.Dialog.cancelButton({label:e.__("Cancel")}),i.Dialog.okButton({label:e.__("Ok")})]});if(t.button.accept){this.widget.content.widgets.forEach(((e,t)=>{if(e instanceof s.CodeCell&&e.isPlaceholder()){this.widget.content.renderCellOutputs(t)}}))}else{return false}}return t}_addCellProvider(e){var t,n;const i=this.widget.content.widgets[e];const o=(0,s.createCellSearchProvider)(i);a.ArrayExt.insert(this._searchProviders,e,o);void o.setIsActive(!((n=(t=this._filters)===null||t===void 0?void 0:t.selection)!==null&&n!==void 0?n:false)||this.widget.content.isSelectedOrActive(i)).then((()=>{if(this._searchActive){void o.startQuery(this._query,this._filters)}}))}_removeCellProvider(e){const t=a.ArrayExt.removeAt(this._searchProviders,e);t===null||t===void 0?void 0:t.dispose()}async _onCellsChanged(e,t){switch(t.type){case"add":t.newValues.forEach(((e,n)=>{this._addCellProvider(t.newIndex+n)}));break;case"move":a.ArrayExt.move(this._searchProviders,t.oldIndex,t.newIndex);break;case"remove":for(let e=0;e{this._addCellProvider(t.newIndex+n);this._removeCellProvider(t.newIndex+n+1)}));break}this._stateChanged.emit()}async _stepNext(e=false,t=false,n){var i;const s=async e=>{var t;const i=(t=n===null||n===void 0?void 0:n.scroll)!==null&&t!==void 0?t:true;if(!i){return}this._selectionLock=true;if(this.widget.content.activeCellIndex!==this._currentProviderIndex){this.widget.content.activeCellIndex=this._currentProviderIndex}if(this.widget.content.activeCellIndex===-1){console.warn("No active cell (no cells or no model), aborting search");this._selectionLock=false;return}const s=this.widget.content.activeCell;if(!s.inViewport){try{await this.widget.content.scrollToItem(this._currentProviderIndex)}catch(r){}}if(s.inputHidden){s.inputHidden=false}if(!s.inViewport){this._selectionLock=false;return}await s.ready;const o=s.editor;o.revealPosition(o.getPositionAt(e.position));this._selectionLock=false};if(this._currentProviderIndex===null){this._currentProviderIndex=this.widget.content.activeCellIndex}if(e&&this.widget.content.mode==="command"){const e=this._searchProviders[this._currentProviderIndex];const n=e.getCurrentMatch();if(!n){this._currentProviderIndex-=1}if(t){this._currentProviderIndex=(this._currentProviderIndex+this._searchProviders.length)%this._searchProviders.length}}const o=(i=n===null||n===void 0?void 0:n.from)!==null&&i!==void 0?i:"";const r=o==="previous-match"&&this._searchProviders[this._currentProviderIndex].currentMatchIndex===null;const a=this._currentProviderIndex;if(r){void this._searchProviders[this._currentProviderIndex].clearHighlight()}if(t&&r&&this._currentProviderIndex+1>=this._searchProviders.length){this._currentProviderIndex=0}else{this._currentProviderIndex+=r?1:0}do{const i=this._searchProviders[this._currentProviderIndex];const o=e?await i.highlightPrevious(false,n):await i.highlightNext(false,n);if(o){await s(o);return o}else{this._currentProviderIndex=this._currentProviderIndex+(e?-1:1);if(t){this._currentProviderIndex=(this._currentProviderIndex+this._searchProviders.length)%this._searchProviders.length}}}while(t?this._currentProviderIndex!==a:0<=this._currentProviderIndex&&this._currentProviderIndex{this.delayedActiveCellChangeHandlerReady=this._handleHighlightsAfterActiveCellChange()}),0)}this._observeActiveCell()}async _handleHighlightsAfterActiveCellChange(){if(this._onSelection){const e=this._currentProviderIndex!==null&&this._currentProviderIndex{const i=this.widget.content.activeCellIndex===n;t.setProtectSelection(i&&this._onSelection);return t.setSearchSelection(i&&e?this._textSelection:null)})))}async _onCellSelectionChanged(){if(this._delayedActiveCellChangeHandler!==null){clearTimeout(this._delayedActiveCellChangeHandler);this._delayedActiveCellChangeHandler=null}await this._updateCellSelection();if(this._currentProviderIndex===null){const e=this.widget.content.widgets.findIndex((e=>this.widget.content.isSelectedOrActive(e)));this._currentProviderIndex=e}await this._ensureCurrentMatch()}async _updateCellSelection(){const e=this.widget.content.widgets;let t=0;await Promise.all(e.map((async(e,n)=>{const i=this._searchProviders[n];const s=this.widget.content.isSelectedOrActive(e);if(s){t+=1}if(i&&this._onSelection){await i.setIsActive(s)}})));if(t!==this._selectedCells){this._selectedCells=t;this._updateSelectionMode()}this._filtersChanged.emit()}}var He;(function(e){e[e["Idle"]=-1]="Idle";e[e["Error"]=-.5]="Error";e[e["Scheduled"]=0]="Scheduled";e[e["Running"]=1]="Running"})(He||(He={}));class We extends K.TableOfContentsModel{constructor(e,t,n,i){super(e,i);this.parser=t;this.sanitizer=n;this.configMetadataMap={numberHeaders:["toc-autonumbering","toc/number_sections"],numberingH1:["!toc/skip_h1_title"],baseNumbering:["toc/base_numbering"]};this._runningCells=new Array;this._errorCells=new Array;this._cellToHeadingIndex=new WeakMap;void e.context.ready.then((()=>{this.setConfiguration({})}));this.widget.context.model.metadataChanged.connect(this.onMetadataChanged,this);this.widget.content.activeCellChanged.connect(this.onActiveCellChanged,this);f.executionScheduled.connect(this.onExecutionScheduled,this);f.executed.connect(this.onExecuted,this);f.outputCleared.connect(this.onOutputCleared,this);this.headingsChanged.connect(this.onHeadingsChanged,this)}get documentType(){return"notebook"}get isAlwaysActive(){return true}get supportedOptions(){return["baseNumbering","maximalDepth","numberingH1","numberHeaders","includeOutput","syncCollapseState"]}getCellHeadings(e){const t=new Array;let n=this._cellToHeadingIndex.get(e);if(n!==undefined){const e=this.headings[n];t.push(e);while(this.headings[n-1]&&this.headings[n-1].cellRef===e.cellRef){n--;t.unshift(this.headings[n])}}return t}dispose(){var e,t,n;if(this.isDisposed){return}this.headingsChanged.disconnect(this.onHeadingsChanged,this);(t=(e=this.widget.context)===null||e===void 0?void 0:e.model)===null||t===void 0?void 0:t.metadataChanged.disconnect(this.onMetadataChanged,this);(n=this.widget.content)===null||n===void 0?void 0:n.activeCellChanged.disconnect(this.onActiveCellChanged,this);f.executionScheduled.disconnect(this.onExecutionScheduled,this);f.executed.disconnect(this.onExecuted,this);f.outputCleared.disconnect(this.onOutputCleared,this);this._runningCells.length=0;this._errorCells.length=0;super.dispose()}setConfiguration(e){const t=this.loadConfigurationFromMetadata();super.setConfiguration({...this.configuration,...t,...e})}toggleCollapse(e){super.toggleCollapse(e);this.updateRunningStatus(this.headings)}getHeadings(){const e=this.widget.content.widgets;const t=[];const n=new Array;for(let i=0;i({...e,cellRef:s,collapsed:false,isRunning:He.Idle}))))}break}case"markdown":{const e=K.TableOfContentsUtils.filterHeadings(s.headings,this.configuration,n).map(((e,t)=>({...e,cellRef:s,collapsed:false,isRunning:He.Idle})));if(this.configuration.syncCollapseState&&s.headingCollapsed){const t=Math.min(...e.map((e=>e.level)));const n=e.find((e=>e.level===t));n.collapsed=s.headingCollapsed}t.push(...e);break}}if(t.length>0){this._cellToHeadingIndex.set(s,t.length-1)}}this.updateRunningStatus(t);return Promise.resolve(t)}isHeadingEqual(e,t){return super.isHeadingEqual(e,t)&&e.cellRef===t.cellRef}loadConfigurationFromMetadata(){const e=this.widget.content.model;const t={};if(e){for(const n in this.configMetadataMap){const i=this.configMetadataMap[n];for(const s of i){let i=s;const o=i[0]==="!";if(o){i=i.slice(1)}const r=i.split("/");let a=e.getMetadata(r[0]);for(let e=1;e{var i;if(e===t.cell){this._runningCells.splice(n,1);const s=this._cellToHeadingIndex.get(e);if(s!==undefined){const n=this.headings[s];if(t.success||((i=t.error)===null||i===void 0?void 0:i.errorName)===undefined){n.isRunning=He.Idle;return}n.isRunning=He.Error;if(!this._errorCells.includes(e)){this._errorCells.push(e)}}}}));this.updateRunningStatus(this.headings);this.stateChanged.emit()}onExecutionScheduled(e,t){if(!this._runningCells.includes(t.cell)){this._runningCells.push(t.cell)}this._errorCells.forEach(((e,n)=>{if(e===t.cell){this._errorCells.splice(n,1)}}));this.updateRunningStatus(this.headings);this.stateChanged.emit()}onOutputCleared(e,t){this._errorCells.forEach(((e,n)=>{if(e===t.cell){this._errorCells.splice(n,1);const t=this._cellToHeadingIndex.get(e);if(t!==undefined){const e=this.headings[t];e.isRunning=He.Idle}}}));this.updateRunningStatus(this.headings);this.stateChanged.emit()}onMetadataChanged(){this.setConfiguration({})}updateRunningStatus(e){this._runningCells.forEach(((e,t)=>{const n=this._cellToHeadingIndex.get(e);if(n!==undefined){const e=this.headings[n];if(e.isRunning!==He.Running){e.isRunning=t>0?He.Scheduled:He.Running}}}));this._errorCells.forEach(((e,t)=>{const n=this._cellToHeadingIndex.get(e);if(n!==undefined){const e=this.headings[n];if(e.isRunning===He.Idle){e.isRunning=He.Error}}}));let t=0;while(ti){t++;s=Math.max(o.isRunning,s);if(o.collapsed){s=Math.max(s,n(e,o.level));o.dataset={...o.dataset,"data-running":s.toString()}}}else{break}}return s}}}class Ve extends K.TableOfContentsFactory{constructor(e,t,n){super(e);this.parser=t;this.sanitizer=n;this._scrollToTop=true}get scrollToTop(){return this._scrollToTop}set scrollToTop(e){this._scrollToTop=e}_createNew(e,t){const n=new We(e,this.parser,this.sanitizer,t);let i=new WeakMap;const o=(t,n)=>{if(n){const t=async t=>{if(!t.inViewport){return}const s=i.get(n);if(s){if(this.scrollToTop){s.scrollIntoView({block:"start"})}else{const t=e.content.node.getBoundingClientRect();const n=s.getBoundingClientRect();if(n.top>t.bottom||n.bottom{console.error(`Fail to scroll to cell to display the required heading (${e}).`)}))}else{e.content.scrollToItem(r,this.scrollToTop?"start":undefined).then((()=>t(s))).catch((e=>{console.error(`Fail to scroll to cell to display the required heading (${e}).`)}))}}};const r=e=>{n.getCellHeadings(e).forEach((async e=>{var t,n;const s=await Ue(e,this.parser,this.sanitizer);const o=s?`h${e.level}[id="${CSS.escape(s)}"]`:`h${e.level}`;if(e.outputIndex!==undefined){i.set(e,K.TableOfContentsUtils.addPrefix(e.cellRef.outputArea.widgets[e.outputIndex].node,o,(t=e.prefix)!==null&&t!==void 0?t:""))}else{i.set(e,K.TableOfContentsUtils.addPrefix(e.cellRef.node,o,(n=e.prefix)!==null&&n!==void 0?n:""))}}))};const a=t=>{if(!this.parser){return}K.TableOfContentsUtils.clearNumbering(e.content.node);i=new WeakMap;e.content.widgets.forEach((e=>{r(e)}))};const l=(t,i)=>{var o,r,a,l;if(n.configuration.syncCollapseState){if(i!==null){const e=i.cellRef;if(e.headingCollapsed!==((o=i.collapsed)!==null&&o!==void 0?o:false)){e.headingCollapsed=(r=i.collapsed)!==null&&r!==void 0?r:false}}else{const t=(l=(a=n.headings[0])===null||a===void 0?void 0:a.collapsed)!==null&&l!==void 0?l:false;e.content.widgets.forEach((e=>{if(e instanceof s.MarkdownCell){if(e.headingInfo.level>=0){e.headingCollapsed=t}}}))}}};const d=(e,t)=>{if(n.configuration.syncCollapseState){const e=n.getCellHeadings(t)[0];if(e){n.toggleCollapse({heading:e,collapsed:t.headingCollapsed})}}};const c=(e,t)=>{if(t.inViewport){r(t)}else{K.TableOfContentsUtils.clearNumbering(t.node)}};void e.context.ready.then((()=>{a(n);n.activeHeadingChanged.connect(o);n.headingsChanged.connect(a);n.collapseChanged.connect(l);e.content.cellCollapsed.connect(d);e.content.cellInViewportChanged.connect(c);e.disposed.connect((()=>{n.activeHeadingChanged.disconnect(o);n.headingsChanged.disconnect(a);n.collapseChanged.disconnect(l);e.content.cellCollapsed.disconnect(d);e.content.cellInViewportChanged.disconnect(c)}))}));return n}}async function Ue(e,t,n){let i=null;if(e.type===s.Cell.HeadingType.Markdown){i=await K.TableOfContentsUtils.Markdown.getHeadingId(t,e.raw,e.level,n)}else if(e.type===s.Cell.HeadingType.HTML){i=e.id}return i}const qe=new l.Token("@jupyterlab/notebook:INotebookWidgetFactory","A service to create the notebook viewer.");const $e=new l.Token("@jupyterlab/notebook:INotebookTools",`A service for the "Notebook Tools" panel in the\n right sidebar. Use this to add your own functionality to the panel.`);const Ke=new l.Token("@jupyterlab/notebook:INotebookTracker",`A widget tracker for notebooks.\n Use this if you want to be able to iterate over and interact with notebooks\n created by the application.`);const Je=new l.Token("@jupyterlab/notebook:INotebookCellExecutor",`The notebook cell executor`);class Ge extends i.WidgetTracker{constructor(){super(...arguments);this._activeCell=null;this._activeCellChanged=new d.Signal(this);this._selectionChanged=new d.Signal(this)}get activeCell(){const e=this.currentWidget;if(!e){return null}return e.content.activeCell||null}get activeCellChanged(){return this._activeCellChanged}get selectionChanged(){return this._selectionChanged}add(e){const t=super.add(e);e.content.activeCellChanged.connect(this._onActiveCellChanged,this);e.content.selectionChanged.connect(this._onSelectionChanged,this);return t}dispose(){this._activeCell=null;super.dispose()}onCurrentChanged(e){const t=this.activeCell;if(t&&t===this._activeCell){return}this._activeCell=t;if(!e){return}this._activeCellChanged.emit(e.content.activeCell||null)}_onActiveCellChanged(e,t){if(this.currentWidget&&this.currentWidget.content===e){this._activeCell=t||null;this._activeCellChanged.emit(this._activeCell)}}_onSelectionChanged(e){if(this.currentWidget&&this.currentWidget.content===e){this._selectionChanged.emit(void 0)}}}const Ye="jp-StatusItem-trust";function Xe(e,t){t=t||r.nullTranslator;const n=t.load("jupyterlab");if(e.trustedCells===e.totalCells){return n.__("Notebook trusted: %1 of %2 code cells trusted.",e.trustedCells,e.totalCells)}else if(e.activeCellTrusted){return n.__("Active cell trusted: %1 of %2 code cells trusted.",e.trustedCells,e.totalCells)}else{return n.__("Notebook not trusted: %1 of %2 code cells trusted.",e.trustedCells,e.totalCells)}}function Qe(e){if(e.allCellsTrusted){return h().createElement(y.trustedIcon.react,{top:"2px",stylesheet:"statusBar"})}else{return h().createElement(y.notTrustedIcon.react,{top:"2px",stylesheet:"statusBar"})}}class Ze extends y.VDomRenderer{constructor(e){super(new Ze.Model);this.translator=e||r.nullTranslator;this.node.classList.add(Ye)}render(){if(!this.model){return null}const e=Xe(this.model,this.translator);if(e!==this.node.title){this.node.title=e}return h().createElement(Qe,{allCellsTrusted:this.model.trustedCells===this.model.totalCells,activeCellTrusted:this.model.activeCellTrusted,totalCells:this.model.totalCells,trustedCells:this.model.trustedCells})}}(function(e){class t extends y.VDomModel{constructor(){super(...arguments);this._trustedCells=0;this._totalCells=0;this._activeCellTrusted=false;this._notebook=null}get trustedCells(){return this._trustedCells}get totalCells(){return this._totalCells}get activeCellTrusted(){return this._activeCellTrusted}get notebook(){return this._notebook}set notebook(e){const t=this._notebook;if(t!==null){t.activeCellChanged.disconnect(this._onActiveCellChanged,this);t.modelContentChanged.disconnect(this._onModelChanged,this)}const n=this._getAllState();this._notebook=e;if(this._notebook===null){this._trustedCells=0;this._totalCells=0;this._activeCellTrusted=false}else{this._notebook.activeCellChanged.connect(this._onActiveCellChanged,this);this._notebook.modelContentChanged.connect(this._onModelChanged,this);if(this._notebook.activeCell){this._activeCellTrusted=this._notebook.activeCell.model.trusted}else{this._activeCellTrusted=false}const{total:e,trusted:t}=this._deriveCellTrustState(this._notebook.model);this._totalCells=e;this._trustedCells=t}this._triggerChange(n,this._getAllState())}_onModelChanged(e){const t=this._getAllState();const{total:n,trusted:i}=this._deriveCellTrustState(e.model);this._totalCells=n;this._trustedCells=i;this._triggerChange(t,this._getAllState())}_onActiveCellChanged(e,t){const n=this._getAllState();if(t){this._activeCellTrusted=t.model.trusted}else{this._activeCellTrusted=false}this._triggerChange(n,this._getAllState())}_deriveCellTrustState(e){if(e===null){return{total:0,trusted:0}}let t=0;let n=0;for(const i of e.cells){if(i.type!=="code"){continue}t++;if(i.trusted){n++}}return{total:t,trusted:n}}_getAllState(){return[this._trustedCells,this._totalCells,this.activeCellTrusted]}_triggerChange(e,t){if(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]){this.stateChanged.emit(void 0)}}}e.Model=t})(Ze||(Ze={}));class et extends $.ABCWidgetFactory{constructor(e){super(e);this.rendermime=e.rendermime;this.contentFactory=e.contentFactory;this.mimeTypeService=e.mimeTypeService;this._editorConfig=e.editorConfig||De.defaultEditorConfig;this._notebookConfig=e.notebookConfig||De.defaultNotebookConfig}get editorConfig(){return this._editorConfig}set editorConfig(e){this._editorConfig=e}get notebookConfig(){return this._notebookConfig}set notebookConfig(e){this._notebookConfig=e}createNewWidget(e,t){const n=e.translator;const i=new T({sessionContext:e.sessionContext,translator:n});const s={rendermime:t?t.content.rendermime:this.rendermime.clone({resolver:e.urlResolver}),contentFactory:this.contentFactory,mimeTypeService:this.mimeTypeService,editorConfig:t?t.content.editorConfig:this._editorConfig,notebookConfig:t?t.content.notebookConfig:this._notebookConfig,translator:n,kernelHistory:i};const o=this.contentFactory.createNotebook(s);return new Be({context:e,content:o})}}},28006:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(24800);var r=n(97913);var a=n(5893);var l=n(38457);var d=n(17325);var c=n(19562);var h=n(23359);var u=n(79010);var p=n(66731);var m=n(53377);var g=n(13137);var f=n(85072);var v=n.n(f);var _=n(97825);var b=n.n(_);var y=n(77659);var w=n.n(y);var C=n(55056);var x=n.n(C);var S=n(10540);var k=n.n(S);var j=n(41113);var I=n.n(j);var E=n(30979);var T={};T.styleTagTransform=I();T.setAttributes=x();T.insert=w().bind(null,"head");T.domAPI=b();T.insertStyleElement=k();var M=v()(E.A,T);const D=E.A&&E.A.locals?E.A.locals:undefined},56701:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ModelDB:()=>f,ObservableJSON:()=>d,ObservableList:()=>u,ObservableMap:()=>a,ObservableString:()=>c,ObservableUndoableList:()=>m,ObservableValue:()=>g});var i=n(5592);var s=n(90044);var o=n(2336);var r=n(42856);class a{constructor(e={}){this._map=new Map;this._changed=new o.Signal(this);this._isDisposed=false;this._itemCmp=e.itemCmp||l.itemCmp;if(e.values){for(const t in e.values){this._map.set(t,e.values[t])}}}get type(){return"Map"}get changed(){return this._changed}get isDisposed(){return this._isDisposed}get size(){return this._map.size}set(e,t){const n=this._map.get(e);if(t===undefined){throw Error("Cannot set an undefined value, use remove")}const i=this._itemCmp;if(n!==undefined&&i(n,t)){return n}this._map.set(e,t);this._changed.emit({type:n?"change":"add",key:e,oldValue:n,newValue:t});return n}get(e){return this._map.get(e)}has(e){return this._map.has(e)}keys(){const e=[];this._map.forEach(((t,n)=>{e.push(n)}));return e}values(){const e=[];this._map.forEach(((t,n)=>{e.push(t)}));return e}delete(e){const t=this._map.get(e);const n=this._map.delete(e);if(n){this._changed.emit({type:"remove",key:e,oldValue:t,newValue:undefined})}return t}clear(){const e=this.keys();for(let t=0;tt(n,e)));this.remove(n);return n}remove(e){const t=h.ArrayExt.removeAt(this._array,e);if(t===undefined){return}this._changed.emit({type:"remove",oldIndex:e,newIndex:-1,newValues:[],oldValues:[t]});return t}clear(){const e=this._array.slice();this._array.length=0;this._changed.emit({type:"remove",oldIndex:0,newIndex:0,newValues:[],oldValues:e})}move(e,t){if(this.length<=1||e===t){return}const n=[this._array[e]];h.ArrayExt.move(this._array,e,t);this._changed.emit({type:"move",oldIndex:e,newIndex:t,oldValues:n,newValues:n})}pushAll(e){const t=this.length;for(const n of e){this._array.push(n)}this._changed.emit({type:"add",oldIndex:-1,newIndex:t,oldValues:[],newValues:Array.from(e)});return this.length}insertAll(e,t){const n=e;for(const i of t){h.ArrayExt.insert(this._array,e++,i)}this._changed.emit({type:"add",oldIndex:-2,newIndex:n,oldValues:[],newValues:Array.from(t)})}removeRange(e,t){const n=this._array.slice(e,t);for(let i=e;i=0}beginCompoundOperation(e){this._inCompound=true;this._isUndoable=e!==false;this._madeCompoundChange=false}endCompoundOperation(){this._inCompound=false;this._isUndoable=true;if(this._madeCompoundChange){this._index++}}undo(){if(!this.canUndo){return}const e=this._stack[this._index];this._isUndoable=false;for(const t of e.reverse()){this._undoChange(t)}this._isUndoable=true;this._index--}redo(){if(!this.canRedo){return}this._index++;const e=this._stack[this._index];this._isUndoable=false;for(const t of e){this._redoChange(t)}this._isUndoable=true}clearUndo(){this._index=-1;this._stack=[]}_onListChanged(e,t){if(this.isDisposed||!this._isUndoable){return}if(!this._inCompound||!this._madeCompoundChange){this._stack=this._stack.slice(0,this._index+1)}const n=this._copyChange(t);if(this._stack[this._index+1]){this._stack[this._index+1].push(n)}else{this._stack.push([n])}if(!this._inCompound){this._index++}else{this._madeCompoundChange=true}}_undoChange(e){let t=0;const n=this._serializer;switch(e.type){case"add":for(let t=e.newValues.length;t>0;t--){this.remove(e.newIndex)}break;case"set":t=e.oldIndex;for(const i of e.oldValues){this.set(t++,n.fromJSON(i))}break;case"remove":t=e.oldIndex;for(const i of e.oldValues){this.insert(t++,n.fromJSON(i))}break;case"move":this.move(e.newIndex,e.oldIndex);break;default:return}}_redoChange(e){let t=0;const n=this._serializer;switch(e.type){case"add":t=e.newIndex;for(const i of e.newValues){this.insert(t++,n.fromJSON(i))}break;case"set":t=e.newIndex;for(const t of e.newValues){this.set(e.newIndex++,n.fromJSON(t))}break;case"remove":for(let t=e.oldValues.length;t>0;t--){this.remove(e.oldIndex)}break;case"move":this.move(e.oldIndex,e.newIndex);break;default:return}}_copyChange(e){const t=[];for(const i of e.oldValues){t.push(this._serializer.toJSON(i))}const n=[];for(const i of e.newValues){n.push(this._serializer.toJSON(i))}return{type:e.type,oldIndex:e.oldIndex,newIndex:e.newIndex,oldValues:t,newValues:n}}}(function(e){class t{toJSON(e){return e}fromJSON(e){return e}}e.IdentitySerializer=t})(m||(m={}));class g{constructor(e=null){this._value=null;this._changed=new o.Signal(this);this._isDisposed=false;this._value=e}get type(){return"Value"}get isDisposed(){return this._isDisposed}get changed(){return this._changed}get(){return this._value}set(e){const t=this._value;if(i.JSONExt.deepEqual(t,e)){return}this._value=e;this._changed.emit({oldValue:t,newValue:e})}dispose(){if(this._isDisposed){return}this._isDisposed=true;o.Signal.clearData(this);this._value=null}}(function(e){class t{}e.IChangedArgs=t})(g||(g={}));class f{constructor(e={}){this.isPrepopulated=false;this.isCollaborative=false;this.connected=Promise.resolve(void 0);this._toDispose=false;this._isDisposed=false;this._disposables=new s.DisposableSet;this._basePath=e.basePath||"";if(e.baseDB){this._db=e.baseDB}else{this._db=new a;this._toDispose=true}}get basePath(){return this._basePath}get isDisposed(){return this._isDisposed}get(e){return this._db.get(this._resolvePath(e))}has(e){return this._db.has(this._resolvePath(e))}createString(e){const t=new c;this._disposables.add(t);this.set(e,t);return t}createList(e){const t=new m(new m.IdentitySerializer);this._disposables.add(t);this.set(e,t);return t}createMap(e){const t=new d;this._disposables.add(t);this.set(e,t);return t}createValue(e){const t=new g;this._disposables.add(t);this.set(e,t);return t}getValue(e){const t=this.get(e);if(!t||t.type!=="Value"){throw Error("Can only call getValue for an ObservableValue")}return t.get()}setValue(e,t){const n=this.get(e);if(!n||n.type!=="Value"){throw Error("Can only call setValue on an ObservableValue")}n.set(t)}view(e){const t=new f({basePath:e,baseDB:this});this._disposables.add(t);return t}set(e,t){this._db.set(this._resolvePath(e),t)}dispose(){if(this.isDisposed){return}this._isDisposed=true;if(this._toDispose){this._db.dispose()}this._disposables.dispose()}_resolvePath(e){if(this._basePath){e=this._basePath+"."+e}return e}}},66990:(e,t,n)=>{"use strict";n.r(t);n.d(t,{OutputArea:()=>E,OutputAreaModel:()=>d,OutputPrompt:()=>M,SimplifiedOutputArea:()=>T,Stdin:()=>D});var i=n(68193);var s=n(44336);var o=n(44539);var r=n(34236);var a=n(5592);var l=n(2336);class d{constructor(e={}){this.clearNext=false;this._lastStreamName="";this._trusted=false;this._isDisposed=false;this._stateChanged=new l.Signal(this);this._changed=new l.Signal(this);this._streamIndex=0;this._trusted=!!e.trusted;this.contentFactory=e.contentFactory||d.defaultContentFactory;this.list=new s.ObservableList;if(e.values){for(const t of e.values){const e=this._add(t)-1;const n=this.list.get(e);n.changed.connect(this._onGenericChange,this)}}this.list.changed.connect(this._onListChanged,this)}get stateChanged(){return this._stateChanged}get changed(){return this._changed}get length(){return this.list?this.list.length:0}get trusted(){return this._trusted}set trusted(e){if(e===this._trusted){return}const t=this._trusted=e;for(let n=0;ne.toJSON())))}_add(e){const t=this._trusted;e=a.JSONExt.deepCopy(e);c.normalize(e);if(i.isStream(e)&&e.name===this._lastStreamName&&this.length>0&&this.shouldCombine({value:e,lastModel:this.list.get(this.length-1)})){const t=this.list.get(this.length-1);const n=t.streamText;const i=typeof e.text==="string"?e.text:e.text.join("");this._streamIndex=c.addText(this._streamIndex,n,i);return this.length}if(i.isStream(e)){if(typeof e.text!=="string"){e.text=e.text.join("")}const{text:t,index:n}=c.processText(0,e.text);this._streamIndex=n;e.text=t}const n=this._createItem({value:e,trusted:t});const s=this.list.push(n);if(i.isStream(e)){this._lastStreamName=e.name}else{this._lastStreamName=""}return s}shouldCombine(e){return true}_createItem(e){const t=this.contentFactory;const n=t.createOutputModel(e);return n}_onListChanged(e,t){switch(t.type){case"add":t.newValues.forEach((e=>{e.changed.connect(this._onGenericChange,this)}));break;case"remove":t.oldValues.forEach((e=>{e.changed.disconnect(this._onGenericChange,this)}));break;case"set":t.newValues.forEach((e=>{e.changed.connect(this._onGenericChange,this)}));t.oldValues.forEach((e=>{e.changed.disconnect(this._onGenericChange,this)}));break}this._changed.emit(t)}_onGenericChange(e){let t;let n=null;for(t=0;t=0?i+n:i}function s(e,t,i){if(i===undefined){i=""}if(!(t.includes("\b")||t.includes("\r")||t.includes("\n"))){i=i.slice(0,e)+t+i.slice(e+t.length);return{text:i,index:e+t.length}}let s=e;let o=-1;let r=0;const a=/[\n\b\r]/;while(true){o=n(t,a,r);const e=t.slice(r,o===-1?t.length:o);i=i.slice(0,s)+e+i.slice(s+e.length);r=o+1;s+=e.length;if(o===-1){break}const l=t[o];if(l==="\b"){if(s>0&&i[s-1]!=="\n"){i=i.slice(0,s-1)+i.slice(s+1);s--}}else if(l==="\r"){let e=false;while(!e){if(s===0){e=true}else if(i[s-1]==="\n"){e=true}else{s--}}}else if(l==="\n"){i=i+"\n";s=i.length}else{throw Error(`This should not happen`)}}return{text:i,index:s}}e.processText=s;function o(e,t,n){const{text:i,index:o}=s(e,n,t.text);let r=false;let a=0;while(!r){if(a===i.length){if(a===t.text.length){r=true}else{t.remove(a,t.text.length);r=true}}else if(a===t.text.length){if(a!==i.length){t.insert(t.text.length,i.slice(a));r=true}}else if(i[a]!==t.text[a]){t.remove(a,t.text.length);t.insert(a,i.slice(a));r=true}else{a++}}return o}e.addText=o})(c||(c={}));var h=n(14366);var u=n(28548);var p=n(30619);var m=n(94466);var g=n(1143);const f="jp-OutputArea";const v="jp-OutputArea-child";const _="jp-OutputArea-output";const b="jp-OutputArea-prompt";const y="jp-OutputArea-stdin-hiding";const w="jp-OutputPrompt";const C="jp-OutputArea-executeResult";const x="jp-OutputArea-stdin-item";const S="jp-Stdin";const k="jp-Stdin-prompt";const j="jp-Stdin-input";const I="jp-OutputArea-promptOverlay";class E extends g.Widget{constructor(e){var t,n,i,s,o;super();this.outputLengthChanged=new l.Signal(this);this._onIOPub=e=>{const t=this.model;const n=e.header.msg_type;let i;const s=e.content.transient||{};const o=s["display_id"];let r;switch(n){case"execute_result":case"display_data":case"stream":case"error":i={...e.content,output_type:n};t.add(i);break;case"clear_output":{const n=e.content.wait;t.clear(n);break}case"update_display_data":i={...e.content,output_type:"display_data"};r=this._displayIdMap.get(o);if(r){for(const e of r){t.set(e,i)}}break;case"status":{const t=e.content.execution_state;if(t==="idle"){this._pendingInput=false}break}default:break}if(o&&n==="display_data"){r=this._displayIdMap.get(o)||[];r.push(t.length-1);this._displayIdMap.set(o,r)}};this._onExecuteReply=e=>{const t=this.model;const n=e.content;if(n.status!=="ok"){return}const i=n&&n.payload;if(!i||!i.length){return}const s=i.filter((e=>e.source==="page"));if(!s.length){return}const o=JSON.parse(JSON.stringify(s[0]));const r={output_type:"display_data",data:o.data,metadata:{}};t.add(r)};this._displayIdMap=new Map;this._minHeightTimeout=null;this._inputRequested=new l.Signal(this);this._toggleScrolling=new l.Signal(this);this._initialize=new l.Signal(this);this._outputTracker=new h.WidgetTracker({namespace:a.UUID.uuid4()});this._inputHistoryScope="global";this._pendingInput=false;this._showInputPlaceholder=true;super.layout=new g.PanelLayout;this.addClass(f);this.contentFactory=(t=e.contentFactory)!==null&&t!==void 0?t:E.defaultContentFactory;this.rendermime=e.rendermime;this._maxNumberOutputs=(n=e.maxNumberOutputs)!==null&&n!==void 0?n:Infinity;this._translator=(i=e.translator)!==null&&i!==void 0?i:p.nullTranslator;this._inputHistoryScope=(s=e.inputHistoryScope)!==null&&s!==void 0?s:"global";this._showInputPlaceholder=(o=e.showInputPlaceholder)!==null&&o!==void 0?o:true;const r=this.model=e.model;for(let a=0;a{this._setOutput(a,e)}))}}r.changed.connect(this.onModelChanged,this);r.stateChanged.connect(this.onStateChanged,this);if(e.promptOverlay){this._addPromptOverlay()}}get layout(){return super.layout}get widgets(){return this.layout.widgets}get future(){return this._future}set future(e){if(this.model.isDisposed){throw Error("Model is disposed")}if(this._future===e){return}if(this._future){this._future.dispose()}this._future=e;e.done.finally((()=>{this._pendingInput=false})).catch((()=>{}));this.model.clear();if(this.widgets.length){this._clear();this.outputLengthChanged.emit(Math.min(this.model.length,this._maxNumberOutputs))}e.onIOPub=this._onIOPub;e.onReply=this._onExecuteReply;e.onStdin=t=>{if(u.KernelMessage.isInputRequestMsg(t)){this.onInputRequest(t,e)}}}get inputRequested(){return this._inputRequested}get pendingInput(){return this._pendingInput}get maxNumberOutputs(){return this._maxNumberOutputs}set maxNumberOutputs(e){if(e<=0){console.warn(`OutputArea.maxNumberOutputs must be strictly positive.`);return}const t=this._maxNumberOutputs;this._maxNumberOutputs=e;if(t{this._setOutput(t.newIndex,e)}))}break;case"remove":if(this.widgets.length){if(this.model.length===0){this._clear()}else{const e=t.oldIndex;for(let n=0;n{this._toggleScrolling.emit()}));this.node.appendChild(e);requestAnimationFrame((()=>{this._initialize.emit()}))}_moveDisplayIdIndices(e,t){this._displayIdMap.forEach((n=>{const i=e+t;const s=n.length;for(let o=s-1;o>=0;--o){const s=n[o];if(s>=e&&s=i){n[o]-=t}}}))}onStateChanged(e,t){const n=Math.min(this.model.length,this._maxNumberOutputs);if(t){if(t>=this._maxNumberOutputs){return}this._setOutput(t,this.model.get(t))}else{for(let e=0;e{if(this.isDisposed){return}this.node.style.minHeight=""}),50)}onInputRequest(e,t){const n=this.contentFactory;const i=e.content.prompt;const s=e.content.password;const o=new g.Panel;o.addClass(v);o.addClass(x);const r=n.createOutputPrompt();r.addClass(b);o.addWidget(r);this._pendingInput=true;const a=n.createStdin({parent_header:e.header,prompt:i,password:s,future:t,translator:this._translator,inputHistoryScope:this._inputHistoryScope,showInputPlaceholder:this._showInputPlaceholder});a.addClass(_);o.addWidget(a);if(this.model.length>=this.maxNumberOutputs){this.maxNumberOutputs=this.model.length}this._inputRequested.emit(a);const l=a.node.getElementsByTagName("input")[0];void a.value.then((e=>{if(this.model.length>=this.maxNumberOutputs){this.maxNumberOutputs=this.model.length+1}o.addClass(y);this.model.add({output_type:"stream",name:"stdin",text:e+"\n"});l.focus();this._pendingInput=false;window.setTimeout((()=>{const e=document.activeElement;o.dispose();if(e&&e instanceof HTMLElement){e.focus()}}),500)}));this.layout.addWidget(o)}_setOutput(e,t){if(e>=this._maxNumberOutputs){return}const n=this.layout.widgets[e];const i=n.widgets?n.widgets.filter((e=>"renderModel"in e)).pop():n;const s=this.rendermime.preferredMimeType(t.data,t.trusted?"any":"ensure");if(A.currentPreferredMimetype.get(i)===s&&E.isIsolated(s,t.metadata)===i instanceof A.IsolatedRenderer){void i.renderModel(t)}else{this.layout.widgets[e].dispose();this._insertOutput(e,t)}}_insertOutput(e,t){if(e>this._maxNumberOutputs){return}const n=this.layout;if(e===this._maxNumberOutputs){const t=new A.TrimmedOutputs(this._maxNumberOutputs,(()=>{const e=this._maxNumberOutputs;this._maxNumberOutputs=Infinity;this._showTrimmedOutputs(e)}));n.insertWidget(e,this._wrappedOutput(t))}else{let i=this.createOutputItem(t);if(i){i.toggleClass(C,t.executionCount!==null)}else{i=new g.Widget}if(!this._outputTracker.has(i)){void this._outputTracker.add(i)}n.insertWidget(e,i)}}get outputTracker(){return this._outputTracker}_showTrimmedOutputs(e){this.widgets[e].dispose();for(let t=e;t{const t=document.createElement("pre");const i=this._translator.load("jupyterlab");t.textContent=i.__("Javascript Error: %1",e.message);n.node.appendChild(t);n.node.className="lm-Widget jp-RenderedText";n.node.setAttribute("data-mime-type","application/vnd.jupyter.stderr")}));return n}_wrappedOutput(e,t=null){const n=new A.OutputPanel;n.addClass(v);const i=this.contentFactory.createOutputPrompt();i.executionCount=t;i.addClass(b);n.addWidget(i);e.addClass(_);n.addWidget(e);return n}}class T extends E{onInputRequest(e,t){return}createOutputItem(e){const t=this.createRenderedMimetype(e);if(!t){return null}const n=new A.OutputPanel;n.addClass(v);t.addClass(_);n.addWidget(t);return n}}(function(e){async function t(e,t,n,i){var s;let o=true;if(i&&Array.isArray(i.tags)&&i.tags.indexOf("raises-exception")!==-1){o=false}const r={code:e,stop_on_error:o};const a=(s=n.session)===null||s===void 0?void 0:s.kernel;if(!a){throw new Error("Session has no kernel.")}const l=a.requestExecute(r,false,i);t.future=l;return l.done}e.execute=t;function n(e,t){const n=t[e];if(n&&n["isolated"]!==undefined){return!!n["isolated"]}else{return!!t["isolated"]}}e.isIsolated=n;class i{createOutputPrompt(){return new M}createStdin(e){return new D(e)}}e.ContentFactory=i;e.defaultContentFactory=new i})(E||(E={}));class M extends g.Widget{constructor(){super();this._executionCount=null;this.addClass(w)}get executionCount(){return this._executionCount}set executionCount(e){this._executionCount=e;if(e===null){this.node.textContent=""}else{this.node.textContent=`[${e}]:`}}}class D extends g.Widget{static _historyIx(e,t){const n=D._history.get(e);if(!n){return undefined}const i=n.length;if(t<=0){return i+t}}static _historyAt(e,t){const n=D._history.get(e);if(!n){return undefined}const i=n.length;const s=D._historyIx(e,t);if(s!==undefined&&s1e3){n.shift()}}static _historySearch(e,t,n,i=true){const s=D._history.get(e);const o=s.length;const r=D._historyIx(e,n);const a=e=>e.search(t)!==-1;if(r===undefined){return}if(i){if(r===0){return}const e=s.slice(0,r).findLastIndex(a);if(e!==-1){return e-o}}else{if(r>=o-1){return}const e=s.slice(r+1).findIndex(a);if(e!==-1){return e-o+r+1}}}constructor(e){var t;super({node:A.createInputWidgetNode(e.prompt,e.password)});this._promise=new a.PromiseDelegate;this._resolved=false;this.addClass(S);this._future=e.future;this._historyIndex=0;this._historyKey=e.inputHistoryScope==="session"?e.parent_header.session:"";this._historyPat="";this._parentHeader=e.parent_header;this._password=e.password;this._trans=((t=e.translator)!==null&&t!==void 0?t:p.nullTranslator).load("jupyterlab");this._value=e.prompt+" ";this._input=this.node.getElementsByTagName("input")[0];if(e.showInputPlaceholder&&!this._password){this._input.placeholder=this._trans.__("↑↓ for history. Search history with c-↑/c-↓")}else{this._input.placeholder=""}if(!D._history.has(this._historyKey)){D._history.set(this._historyKey,[])}}get value(){return this._promise.promise.then((()=>this._value))}handleEvent(e){if(this._resolved){e.preventDefault();return}const t=this._input;if(e.type==="keydown"){if(e.key==="Enter"){this.resetSearch();this._future.sendInputReply({status:"ok",value:t.value},this._parentHeader);if(this._password){this._value+="········"}else{this._value+=t.value;D._historyPush(this._historyKey,t.value)}this._resolved=true;this._promise.resolve(void 0)}else if(e.key==="Escape"){this.resetSearch();t.blur()}else if(e.ctrlKey&&(e.key==="ArrowUp"||e.key==="ArrowDown")){if(this._historyPat===""){this._historyPat=t.value}const n=e.key==="ArrowUp";const i=D._historySearch(this._historyKey,this._historyPat,this._historyIndex,n);if(i!==undefined){const n=D._historyAt(this._historyKey,i);if(n!==undefined){if(this._historyIndex===0){this._valueCache=t.value}this._setInputValue(n);this._historyIndex=i;e.preventDefault()}}}else if(e.key==="ArrowUp"){this.resetSearch();const n=D._historyAt(this._historyKey,this._historyIndex-1);if(n){if(this._historyIndex===0){this._valueCache=t.value}this._setInputValue(n);--this._historyIndex;e.preventDefault()}}else if(e.key==="ArrowDown"){this.resetSearch();if(this._historyIndex===0){}else if(this._historyIndex===-1){this._setInputValue(this._valueCache);++this._historyIndex}else{const e=D._historyAt(this._historyKey,this._historyIndex+1);if(e){this._setInputValue(e);++this._historyIndex}}}}}resetSearch(){this._historyPat=""}onAfterAttach(e){this._input.addEventListener("keydown",this);this._input.focus()}onBeforeDetach(e){this._input.removeEventListener("keydown",this)}_setInputValue(e){this._input.value=e;this._input.setSelectionRange(e.length,e.length)}}D._history=new Map;var A;(function(e){function t(e,t){const n=document.createElement("div");const i=document.createElement("pre");i.className=k;i.textContent=e;const s=document.createElement("input");s.className=j;if(t){s.type="password"}n.appendChild(i);i.appendChild(s);return n}e.createInputWidgetNode=t;class n extends g.Widget{constructor(e){super({node:document.createElement("iframe")});this.addClass("jp-mod-isolated");this._wrapped=e;const t=this.node;t.frameBorder="0";t.scrolling="auto";t.addEventListener("load",(()=>{t.contentDocument.open();t.contentDocument.write(this._wrapped.node.innerHTML);t.contentDocument.close();const e=t.contentDocument.body;t.style.height=`${e.scrollHeight}px`;t.heightChangeObserver=new ResizeObserver((()=>{t.style.height=`${e.scrollHeight}px`}));t.heightChangeObserver.observe(e)}))}renderModel(e){return this._wrapped.renderModel(e)}}e.IsolatedRenderer=n;e.currentPreferredMimetype=new m.AttachedProperty({name:"preferredMimetype",create:e=>""});class i extends g.Panel{constructor(e){super(e)}_onContext(e){this.node.focus()}onAfterAttach(e){super.onAfterAttach(e);this.node.addEventListener("contextmenu",this._onContext.bind(this))}onBeforeDetach(e){super.onAfterDetach(e);this.node.removeEventListener("contextmenu",this._onContext.bind(this))}}e.OutputPanel=i;class s extends g.Widget{constructor(e,t){const n=document.createElement("div");const i=`The first ${e} are displayed`;const s="Show more outputs";n.insertAdjacentHTML("afterbegin",`
    \n
    ${s}
    \n
    `);super({node:n});this._onClick=t;this.addClass("jp-TrimmedOutputs");this.addClass("jp-RenderedHTMLCommon")}handleEvent(e){if(e.type==="click"){this._onClick(e)}}onAfterAttach(e){super.onAfterAttach(e);this.node.addEventListener("click",this)}onBeforeDetach(e){super.onBeforeDetach(e);this.node.removeEventListener("click",this)}}e.TrimmedOutputs=s})(A||(A={}))},1649:(e,t,n)=>{"use strict";var i=n(10395);var s=n(97913);var o=n(5893);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(5526);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},93034:(e,t,n)=>{"use strict";n.r(t);n.d(t,{RenderedPDF:()=>c,default:()=>p,rendererFactory:()=>h});var i=n(5592);var s=n.n(i);var o=n(90044);var r=n.n(o);var a=n(1143);var l=n.n(a);const d="application/pdf";class c extends a.Widget{constructor(){super();this._base64="";this._disposable=null;this._ready=new i.PromiseDelegate;this.addClass("jp-PDFContainer");const e=document.createElement("iframe");e.setAttribute("loading","lazy");this.node.appendChild(e);e.onload=()=>{const t=e.contentWindow.document.createElement("body");t.style.margin="0px";e.contentWindow.document.body=t;this._object=e.contentWindow.document.createElement("object");if(!window.safari){this._object.type=d}this._object.width="100%";this._object.height="100%";t.appendChild(this._object);this._ready.resolve(void 0)}}async renderModel(e){await this._ready.promise;const t=e.data[d];if(!t||t.length===this._base64.length&&t===this._base64){if(e.metadata.fragment&&this._object.data){const t=this._object.data;this._object.data=`${t.split("#")[0]}${e.metadata.fragment}`}if(m.IS_FIREFOX){this._object.data=this._object.data}return Promise.resolve(void 0)}this._base64=t;const n=m.b64toBlob(t,d);if(this._disposable){this._disposable.dispose()}let i=URL.createObjectURL(n);if(e.metadata.fragment){i+=e.metadata.fragment}this._object.data=i;this._disposable=new o.DisposableDelegate((()=>{try{URL.revokeObjectURL(i)}catch(e){}}));return}onBeforeHide(){if(m.IS_FIREFOX){this._object.data=this._object.data.split("#")[0]}}dispose(){if(this._disposable){this._disposable.dispose()}super.dispose()}}const h={safe:false,mimeTypes:[d],defaultRank:100,createRenderer:e=>new c};const u=[{id:"@jupyterlab/pdf-extension:factory",description:"Adds renderer for PDF content.",rendererFactory:h,dataType:"string",documentWidgetFactoryOptions:{name:"PDF",modelName:"base64",primaryFileType:"PDF",fileTypes:["PDF"],defaultFor:["PDF"]}}];const p=u;var m;(function(e){e.IS_FIREFOX=/Firefox/.test(navigator.userAgent);function t(e,t="",n=512){const i=atob(e);const s=[];for(let o=0;o{"use strict";var i=n(10395);var s=n(85072);var o=n.n(s);var r=n(97825);var a=n.n(r);var l=n(77659);var d=n.n(l);var c=n(55056);var h=n.n(c);var u=n(10540);var p=n.n(u);var m=n(41113);var g=n.n(m);var f=n(44486);var v={};v.styleTagTransform=g();v.setAttributes=h();v.insert=d().bind(null,"head");v.domAPI=a();v.insertStyleElement=p();var _=o()(f.A,v);const b=f.A&&f.A.locals?f.A.locals:undefined},49870:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>v});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(30619);var l=n.n(a);var d=n(26331);var c=n.n(d);var h=n(60075);var u=n.n(h);var p;(function(e){e.open="pluginmanager:open";e.refreshPlugins="pluginmanager:refresh"})(p||(p={}));const m="@jupyterlab/pluginmanager-extension:plugin";const g={id:m,description:"Enable or disable individual plugins.",autoStart:true,requires:[i.JupyterLab.IInfo],optional:[a.ITranslator,o.ICommandPalette,i.ILayoutRestorer],provides:h.IPluginManager,activate:(e,t,n,i,s)=>{const{commands:r,shell:l}=e;n=n!==null&&n!==void 0?n:a.nullTranslator;const c=n.load("jupyterlab");const u=c.__("Plugin Manager");const g=c.__("Advanced Plugin Manager");const f=c.__("Refresh Plugin List");const v="plugin-manager";const _=new o.WidgetTracker({namespace:v});function b(i){const s=new h.PluginListModel({...i,pluginData:{availablePlugins:t.availablePlugins},serverSettings:e.serviceManager.serverSettings,extraLockedPlugins:[m,"@jupyterlab/services-extension:service-manager","@jupyterlab/application-extension:layout","@jupyterlab/apputils-extension:resolver"],translator:n!==null&&n!==void 0?n:a.nullTranslator});const l=new h.Plugins({model:s,translator:n!==null&&n!==void 0?n:a.nullTranslator});l.title.label=g;l.title.icon=d.extensionIcon;l.title.caption=c.__("Plugin Manager");const u=new o.MainAreaWidget({content:l,reveal:s.ready});u.toolbar.addItem("refresh-plugins",new d.CommandToolbarButton({id:p.refreshPlugins,args:{noLabel:true},commands:r}));return u}r.addCommand(p.open,{label:g,execute:e=>{const t=b(e);l.add(t,"main",{type:"Plugins"});void _.add(t);t.content.model.trackerDataChanged.connect((()=>{void _.save(t)}));return t}});r.addCommand(p.refreshPlugins,{label:e=>e.noLabel?"":f,caption:c.__("Refresh plugins list"),icon:d.refreshIcon,execute:async()=>{var e;return(e=_.currentWidget)===null||e===void 0?void 0:e.content.model.refresh().catch((e=>{console.error(`Failed to refresh the available plugins list:\n${e}`)}))}});if(i){i.addItem({command:p.open,category:u})}if(s){void s.restore(_,{command:p.open,name:e=>"plugins",args:e=>{const{query:t,isDisclaimed:n}=e.content.model;const i={query:t,isDisclaimed:n};return i}})}return{open:()=>e.commands.execute(p.open)}}};const f=[g];const v=f},57292:(e,t,n)=>{"use strict";var i=n(40662);var s=n(97913);var o=n(3579);var r=n(14383)},13125:(e,t,n)=>{"use strict";n.r(t);n.d(t,{IPluginManager:()=>w,PluginListModel:()=>m,Plugins:()=>f});var i=n(14366);var s=n(30397);var o=n(28548);var r=n(26331);var a=n(2336);var l=n(5592);var d=n(30619);var c=n(44914);function h(e){return c.createElement(c.Fragment,null,e.trans.__('The plugin "%1" cannot be disabled as it is required by other plugins:',e.plugin.id),c.createElement("ul",null,e.dependants.map((e=>c.createElement("li",{key:"dependantsDialog-"+e.id},e.id)))),e.trans.__("Please disable the dependent plugins first."))}function u(e){return c.createElement("div",{className:"jp-pluginmanager-PluginInUseMessage"},e.trans.__('While the plugin "%1" is not required by other enabled plugins, some plugins provide optional features depending on it. These plugins are:',e.plugin.id),c.createElement("ul",null,e.optionalDependants.map((e=>c.createElement("li",{key:"optionalDependantsDialog-"+e.id},e.id)))),e.trans.__("Do you want to disable it anyway?"))}const p="lab/api/plugins";class m extends r.VDomModel{constructor(e){var t,n,i;super();this.statusError=null;this.actionError=null;this._trackerDataChanged=new a.Signal(this);this._isLoading=false;this._pendingActions=[];this._ready=new l.PromiseDelegate;this._pluginData=e.pluginData;this._serverSettings=e.serverSettings||o.ServerConnection.makeSettings();this._query=e.query||"";this._isDisclaimed=(t=e.isDisclaimed)!==null&&t!==void 0?t:false;this._extraLockedPlugins=(n=e.extraLockedPlugins)!==null&&n!==void 0?n:[];this.refresh().then((()=>this._ready.resolve())).catch((e=>this._ready.reject(e)));this._trans=((i=e.translator)!==null&&i!==void 0?i:d.nullTranslator).load("jupyterlab")}get available(){return[...this._available.values()]}get isLoading(){return this._isLoading}get isDisclaimed(){return this._isDisclaimed}set isDisclaimed(e){if(e!==this._isDisclaimed){this._isDisclaimed=e;this.stateChanged.emit();this._trackerDataChanged.emit(void 0)}}get query(){return this._query}set query(e){if(this._query!==e){this._query=e;this.stateChanged.emit();this._trackerDataChanged.emit(void 0)}}get trackerDataChanged(){return this._trackerDataChanged}get ready(){return this._ready.promise}async enable(e){if(!this.isDisclaimed){throw new Error("User has not confirmed the disclaimer")}await this._performAction("enable",e);e.enabled=true}async disable(e){if(!this.isDisclaimed){throw new Error("User has not confirmed the disclaimer")}const{dependants:t,optionalDependants:n}=this.getDependants(e);if(t.length>0){void(0,i.showDialog)({title:this._trans.__("This plugin is required by other plugins"),body:h({plugin:e,dependants:t,trans:this._trans}),buttons:[i.Dialog.okButton()]});return}if(n.length>0){const t=await(0,i.showDialog)({title:this._trans.__("This plugin is used by other plugins"),body:u({plugin:e,optionalDependants:n,trans:this._trans}),buttons:[i.Dialog.okButton({label:this._trans.__("Disable anyway")}),i.Dialog.cancelButton()]});if(!t.button.accept){return}}await this._performAction("disable",e);if(this.actionError){return}e.enabled=false}getDependants(e){const t=[];const n=[];if(e.provides){const i=e.provides.name;for(const e of this._available.values()){if(!e.enabled){continue}if(e.requires.filter((e=>!!e)).some((e=>e.name===i))){t.push(e)}if(e.optional.filter((e=>!!e)).some((e=>e.name===i))){n.push(e)}}}return{dependants:t,optionalDependants:n}}hasPendingActions(){return this._pendingActions.length>0}_performAction(e,t){this.actionError=null;const n=this._requestAPI({},{method:"POST",body:JSON.stringify({cmd:e,plugin_name:t.id})});n.catch((e=>{this.actionError=e.toString()}));this._addPendingAction(n);return n}_addPendingAction(e){this._pendingActions.push(e);const t=()=>{const t=this._pendingActions.indexOf(e);this._pendingActions.splice(t,1);this.stateChanged.emit(undefined)};e.then(t,t);this.stateChanged.emit(undefined)}async refresh(){var e;this.statusError=null;this._isLoading=true;this.stateChanged.emit();try{const t={allLocked:true,lockRules:[]};const n=(e=await this._requestAPI())!==null&&e!==void 0?e:t;this._available=new Map(this._pluginData.availablePlugins.map((e=>{let t=e.provides?e.provides.name.split(":")[1]:undefined;if(e.provides&&!t){t=e.provides.name}return[e.id,{...e,locked:this._isLocked(e.id,n),tokenLabel:t}]})))}catch(t){this.statusError=t.toString()}finally{this._isLoading=false;this.stateChanged.emit()}}_isLocked(e,t){if(t.allLocked){return true}if(this._extraLockedPlugins.includes(e)){return true}const n=e.split(":")[0];if(t.lockRules.includes(n)){return true}if(t.lockRules.includes(e)){return true}return false}async _requestAPI(e={},t={}){const n=this._serverSettings;const i=s.URLExt.join(n.baseUrl,p);let r;try{r=await o.ServerConnection.makeRequest(i+s.URLExt.objectToQueryString(e),t,n)}catch(l){throw new o.ServerConnection.NetworkError(l)}let a=await r.text();if(a.length>0){try{a=JSON.parse(a)}catch(l){console.log("Not a JSON response body.",r)}}if(!r.ok){throw new o.ServerConnection.ResponseError(r,a.message||a)}return a}}var g=n(1143);class f extends g.Panel{constructor(e){const{model:t,translator:n}=e;super();this.model=t;this.addClass("jp-pluginmanager");this.trans=n.load("jupyterlab");this.addWidget(new _(t,this.trans));const i=new b(t,this.trans);this.addWidget(i);const s=new v(t,this.trans);this.addWidget(s)}}class v extends i.VDomRenderer{constructor(e,t){super(e);this.trans=t;this.addClass("jp-pluginmanager-AvailableList")}render(){return c.createElement(c.Fragment,null,this.model.statusError!==null?c.createElement(y,null,this.trans.__("Error querying installed extensions%1",this.model.statusError?`: ${this.model.statusError}`:".")):this.model.isLoading?c.createElement("div",{className:"jp-pluginmanager-loader"},this.trans.__("Updating plugin list…")):c.createElement(r.Table,{blankIndicator:()=>c.createElement("div",null,this.trans.__("No entries")),sortKey:"plugin-id",rows:this.model.available.filter((e=>{const t=new RegExp(this.model.query,"i");return t.test(e.id)||t.test(e.extension)||e.tokenLabel&&t.test(e.tokenLabel)})).map((e=>({data:e,key:e.id}))),columns:[{id:"plugin-id",label:this.trans.__("Plugin"),renderCell:e=>c.createElement(c.Fragment,null,c.createElement("code",null,e.id),c.createElement("br",null),e.description),sort:(e,t)=>e.id.localeCompare(t.id)},{id:"description",label:this.trans.__("Description"),renderCell:e=>c.createElement(c.Fragment,null,e.description),sort:(e,t)=>e.description&&t.description?e.description.localeCompare(t.description):undefined,isHidden:true},{id:"autostart",label:this.trans.__("Autostart?"),renderCell:e=>{switch(e.autoStart){case"defer":return this.trans.__("Defer");case true:return this.trans.__("Yes");case false:case undefined:return this.trans.__("No");default:const t=e.autoStart;throw new Error(`Unknown value: ${t}`)}},sort:(e,t)=>e.autoStart===t.autoStart?0:e.autoStart?-1:1},{id:"requires",label:this.trans.__("Depends on"),renderCell:e=>c.createElement(c.Fragment,null,e.requires.map((e=>e.name)).join("\n")),sort:(e,t)=>(e.requires||[]).length-(t.requires||[]).length,isHidden:true},{id:"extension",label:this.trans.__("Extension"),renderCell:e=>c.createElement(c.Fragment,null,e.extension),sort:(e,t)=>e.extension.localeCompare(t.extension)},{id:"provides",label:this.trans.__("Provides"),renderCell:e=>c.createElement(c.Fragment,null,e.provides?c.createElement("code",{title:e.provides.name},e.tokenLabel):"-"),sort:(e,t)=>(e.tokenLabel||"").localeCompare(t.tokenLabel||"")},{id:"enabled",label:this.trans.__("Enabled"),renderCell:e=>c.createElement(c.Fragment,null,c.createElement("input",{type:"checkbox",checked:e.enabled,disabled:e.locked||!this.model.isDisclaimed,title:e.locked||!this.model.isDisclaimed?e.locked?this.trans.__("This plugin is locked."):this.trans.__("To enable/disable, please acknowledge the disclaimer."):e.enabled?this.trans.__("Disable %1 plugin",e.id):this.trans.__("Enable %1 plugin",e.id),onChange:t=>{if(!this.model.isDisclaimed){return}if(t.target.checked){void this.onAction("enable",e)}else{void this.onAction("disable",e)}}}),e.locked?c.createElement(r.lockIcon.react,{tag:"span",title:this.trans.__("This plugin was locked by system administrator or is a critical dependency and cannot be enabled/disabled.")}):""),sort:(e,t)=>+e.enabled-+t.enabled}]}))}onAction(e,t){switch(e){case"enable":return this.model.enable(t);case"disable":return this.model.disable(t);default:throw new Error(`Invalid action: ${e}`)}}}class _ extends i.VDomRenderer{constructor(e,t){super(e);this.trans=t;this.addClass("jp-pluginmanager-Disclaimer")}render(){return c.createElement("div",null,c.createElement("div",null,this.trans.__("Customise your experience/improve performance by disabling plugins you do not need. To disable or uninstall an entire extension use the Extension Manager instead. Changes will apply after reloading JupyterLab.")),c.createElement("label",null,c.createElement("input",{type:"checkbox",className:"jp-mod-styled jp-pluginmanager-Disclaimer-checkbox",defaultChecked:this.model.isDisclaimed,onChange:e=>{this.model.isDisclaimed=e.target.checked}}),this.trans.__("I understand that disabling core application plugins may render features and parts of the user interface unavailable and recovery using `jupyter labextension enable ` command may be required")))}}class b extends i.VDomRenderer{constructor(e,t){super(e);this.trans=t;this.addClass("jp-pluginmanager-Header")}render(){return c.createElement(c.Fragment,null,c.createElement(r.FilterBox,{placeholder:this.trans.__("Filter"),updateFilter:(e,t)=>{this.model.query=t!==null&&t!==void 0?t:""},initialQuery:this.model.query,useFuzzyFilter:false}),c.createElement("div",{className:`jp-pluginmanager-pending ${this.model.hasPendingActions()?"jp-mod-hasPending":""}`}),this.model.actionError&&c.createElement(y,null,c.createElement("p",null,this.trans.__("Error when performing an action.")),c.createElement("p",null,this.trans.__("Reason given:")),c.createElement("pre",null,this.model.actionError)))}}function y(e){return c.createElement("div",{className:"jp-pluginmanager-error"},e.children)}const w=new l.Token("@jupyterlab/pluginmanager:IPluginManager",`A canary for plugin manager presence, with a method to open the plugin manager widget.`)},14383:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(3579);var a=n(85072);var l=n.n(a);var d=n(97825);var c=n.n(d);var h=n(77659);var u=n.n(h);var p=n(55056);var m=n.n(p);var g=n(10540);var f=n.n(g);var v=n(41113);var _=n.n(v);var b=n(37442);var y={};y.styleTagTransform=_();y.setAttributes=m();y.insert=u().bind(null,"head");y.domAPI=c();y.insertStyleElement=f();var w=l()(b.A,y);const C=b.A&&b.A.locals?b.A.locals:undefined},87221:(e,t,n)=>{"use strict";n.r(t);n.d(t,{IPropertyInspectorProvider:()=>l,SideBarPropertyInspectorProvider:()=>c});var i=n(30619);var s=n(26331);var o=n(2336);var r=n(1143);var a=n(5592);const l=new a.Token("@jupyterlab/property-inspector:IPropertyInspectorProvider","A service to register new widgets in the property inspector side panel.");class d extends r.Widget{constructor(){super();this._tracker=new r.FocusTracker;this._inspectors=new Map;this.addClass("jp-PropertyInspector");this._tracker=new r.FocusTracker;this._tracker.currentChanged.connect(this._onCurrentChanged,this)}register(e){if(this._inspectors.has(e)){throw new Error("Widget is already registered")}const t=new h.PropertyInspector(e);e.disposed.connect(this._onWidgetDisposed,this);this._inspectors.set(e,t);t.onAction.connect(this._onInspectorAction,this);this._tracker.add(e);return t}get currentWidget(){return this._tracker.currentWidget}refresh(){const e=this._tracker.currentWidget;if(!e){this.setContent(null);return}const t=this._inspectors.get(e);if(t){this.setContent(t.content)}}_onWidgetDisposed(e){const t=this._inspectors.get(e);if(t){t.dispose();this._inspectors.delete(e)}}_onInspectorAction(e,t){const n=e.owner;const i=this._tracker.currentWidget;switch(t){case"content":if(i===n){this.setContent(e.content)}break;case"dispose":if(n){this._tracker.remove(n);this._inspectors.delete(n)}break;case"show-panel":if(i===n){this.showPanel()}break;default:throw new Error("Unsupported inspector action")}}_onCurrentChanged(){const e=this._tracker.currentWidget;if(e){const t=this._inspectors.get(e);const n=t.content;this.setContent(n)}else{this.setContent(null)}}}class c extends d{constructor({shell:e,placeholder:t,translator:n}){super();this._labshell=e;this.translator=n||i.nullTranslator;this._trans=this.translator.load("jupyterlab");const s=this.layout=new r.SingletonLayout;if(t){this._placeholder=t}else{const e=document.createElement("div");const t=document.createElement("div");const n=document.createElement("h3");const i=document.createElement("p");n.textContent=this._trans.__("No Properties");i.textContent=this._trans.__("The property inspector allows to view and edit properties of a selected notebook.");t.className="jp-PropertyInspector-placeholderContent";t.appendChild(n);t.appendChild(i);e.appendChild(t);this._placeholder=new r.Widget({node:e});this._placeholder.addClass("jp-PropertyInspector-placeholder")}s.widget=this._placeholder;this._labshell.currentChanged.connect(this._onShellCurrentChanged,this);this._onShellCurrentChanged()}setContent(e){const t=this.layout;if(t.widget){t.widget.removeClass("jp-PropertyInspector-content");t.removeWidget(t.widget)}if(!e){e=this._placeholder}e.addClass("jp-PropertyInspector-content");t.widget=e}showPanel(){this._labshell.activateById(this.id)}_onShellCurrentChanged(){const e=this.currentWidget;if(!e){this.setContent(null);return}const t=this._labshell.currentWidget;if(t===null||t===void 0?void 0:t.node.contains(e.node)){this.refresh()}else{this.setContent(null)}}}var h;(function(e){class t{constructor(e){this._isDisposed=false;this._content=null;this._owner=null;this._onAction=new o.Signal(this);this._owner=e}get owner(){return this._owner}get content(){return this._content}get isDisposed(){return this._isDisposed}get onAction(){return this._onAction}showPanel(){if(this._isDisposed){return}this._onAction.emit("show-panel")}render(e){if(this._isDisposed){return}if(e instanceof r.Widget){this._content=e}else{this._content=s.ReactWidget.create(e)}this._onAction.emit("content")}dispose(){if(this._isDisposed){return}this._isDisposed=true;this._content=null;this._owner=null;o.Signal.clearData(this)}}e.PropertyInspector=t})(h||(h={}))},58130:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(3579);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(35667);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},97872:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>p});var i=n(14366);var s=n.n(i);var o=n(43801);var r=n.n(o);var a=n(44539);var l=n.n(a);var d=n(30619);var c=n.n(d);var h;(function(e){e.handleLink="rendermime:handle-local-link"})(h||(h={}));const u={id:"@jupyterlab/rendermime-extension:plugin",description:"Provides the render mime registry.",optional:[o.IDocumentManager,a.ILatexTypesetter,i.ISanitizer,a.IMarkdownParser,d.ITranslator],provides:a.IRenderMimeRegistry,activate:g,autoStart:true};const p=u;const m="debugger:open-source";function g(e,t,n,i,s,o){const r=(o!==null&&o!==void 0?o:d.nullTranslator).load("jupyterlab");if(t){e.commands.addCommand(h.handleLink,{label:r.__("Handle Local Link"),execute:n=>{const i=n["path"];const s=n["id"];const o=n["scope"]||"server";if(!i){return}if(o==="kernel"){if(!e.commands.hasCommand(m)){console.warn("Cannot open kernel file: debugger sources provider not available");return}return e.commands.execute(m,{path:i})}return t.services.contents.get(i,{content:false}).then((()=>{const e=t.registry.defaultRenderedWidgetFactory(i);const n=t.openOrReveal(i,e.name);if(n&&s){n.setFragment(s)}}))}})}return new a.RenderMimeRegistry({initialFactories:a.standardRendererFactories,linkHandler:!t?undefined:{handleLink:(t,n,i)=>{if(t.tagName==="A"&&t.hasAttribute("download")){return}e.commandLinker.connectNode(t,h.handleLink,{path:n,id:i})},handlePath:(t,n,i,s)=>{e.commandLinker.connectNode(t,h.handleLink,{path:n,id:s,scope:i})}},latexTypesetter:n!==null&&n!==void 0?n:undefined,markdownParser:s!==null&&s!==void 0?s:undefined,translator:o!==null&&o!==void 0?o:undefined,sanitizer:i!==null&&i!==void 0?i:undefined})}},80046:(e,t,n)=>{"use strict";var i=n(97913);var s=n(5893);var o=n(3579);var r=n(41603)},60479:(e,t,n)=>{"use strict";n.r(t)},32278:(e,t,n)=>{"use strict";n.d(t,{l:()=>d});var i=n(44336);var s=n.n(i);var o=n(5592);var r=n.n(o);var a=n(2336);var l=n.n(a);class d{constructor(e){this.trusted=false;this._changed=new a.Signal(this);this._raw={};const t=c.getData(e.value);this._data=new i.ObservableJSON({values:t});this._rawData=t;const n=e.value;for(const i in n){switch(i){case"data":break;default:this._raw[i]=c.extract(n,i)}}}get changed(){return this._changed}dispose(){this._data.dispose();a.Signal.clearData(this)}get data(){return this._rawData}get metadata(){return{}}setData(e){if(e.data){this._updateObservable(this._data,e.data);this._rawData=e.data}this._changed.emit(void 0)}toJSON(){const e={};for(const t in this._raw){e[t]=c.extract(this._raw,t)}return e}_updateObservable(e,t){const n=e.keys();const i=Object.keys(t);for(const s of n){if(i.indexOf(s)===-1){e.delete(s)}}for(const s of i){const n=e.get(s);const i=t[s];if(n!==i){e.set(s,i)}}}}(function(e){function t(e){return c.getData(e)}e.getData=t})(d||(d={}));var c;(function(e){function t(e){return s(e)}e.getData=t;function n(e){const n=t(e.value);return{data:n}}e.getBundleOptions=n;function i(e,t){const n=e[t];if(n===undefined||o.JSONExt.isPrimitive(n)){return n}return o.JSONExt.deepCopy(n)}e.extract=i;function s(e){const t=Object.create(null);for(const n in e){t[n]=i(e,n)}return t}})(c||(c={}))},41586:(e,t,n)=>{"use strict";n.d(t,{Fh:()=>s,NQ:()=>o,SF:()=>r,U1:()=>l,dn:()=>u,hL:()=>a,hY:()=>h,jn:()=>c,qQ:()=>d});var i=n(18901);const s={safe:true,mimeTypes:["text/html"],defaultRank:50,createRenderer:e=>new i.TH(e)};const o={safe:true,mimeTypes:["image/bmp","image/png","image/jpeg","image/gif","image/webp"],defaultRank:90,createRenderer:e=>new i.vf(e)};const r={safe:true,mimeTypes:["text/latex"],defaultRank:70,createRenderer:e=>new i.Kc(e)};const a={safe:true,mimeTypes:["text/markdown"],defaultRank:60,createRenderer:e=>new i.jL(e)};const l={safe:false,mimeTypes:["image/svg+xml"],defaultRank:80,createRenderer:e=>new i.Yk(e)};const d={safe:true,mimeTypes:["application/vnd.jupyter.stderr"],defaultRank:110,createRenderer:e=>new i.A6(e)};const c={safe:true,mimeTypes:["text/plain","application/vnd.jupyter.stdout"],defaultRank:120,createRenderer:e=>new i.Vx(e)};const h={safe:false,mimeTypes:["text/javascript","application/javascript"],defaultRank:110,createRenderer:e=>new i.TS(e)};const u=[s,a,r,l,o,h,d,c]},17200:(e,t,n)=>{"use strict";n.r(t);n.d(t,{AttachmentModel:()=>r.l,ILatexTypesetter:()=>p.nc,IMarkdownParser:()=>p.co,IRenderMimeRegistry:()=>p.N3,MimeModel:()=>d.w,OutputModel:()=>c.L,RenderMimeRegistry:()=>h.K,RenderedCommon:()=>m.nZ,RenderedError:()=>m.A6,RenderedHTML:()=>m.TH,RenderedHTMLCommon:()=>m.C6,RenderedImage:()=>m.vf,RenderedJavaScript:()=>m.TS,RenderedLatex:()=>m.Kc,RenderedMarkdown:()=>m.jL,RenderedSVG:()=>m.Yk,RenderedText:()=>m.Vx,errorRendererFactory:()=>a.qQ,htmlRendererFactory:()=>a.Fh,imageRendererFactory:()=>a.NQ,javaScriptRendererFactory:()=>a.hY,latexRendererFactory:()=>a.SF,markdownRendererFactory:()=>a.hL,removeMath:()=>l.r,renderError:()=>u.vr,renderHTML:()=>u.e2,renderImage:()=>u.mx,renderLatex:()=>u.zG,renderMarkdown:()=>u.Gc,renderSVG:()=>u.d8,renderText:()=>u.S5,replaceMath:()=>l.H,standardRendererFactories:()=>a.dn,svgRendererFactory:()=>a.U1,textRendererFactory:()=>a.jn});var i=n(70373);var s=n.n(i);var o={};for(const g in i)if(g!=="default")o[g]=()=>i[g];n.d(t,o);var r=n(32278);var a=n(41586);var l=n(52608);var d=n(29549);var c=n(34354);var h=n(71153);var u=n(11364);var p=n(21944);var m=n(18901)},52608:(e,t,n)=>{"use strict";n.d(t,{H:()=>r,r:()=>o});const i="$";const s=/(\$\$?|\\(?:begin|end)\{[a-z]*\*?\}|\\[{}$]|[{}]|(?:\n\s*)+|@@\d+@@|\\\\(?:\(|\)|\[|\]))/i;function o(e){const t=[];let n=null;let o=null;let r=null;let l=0;let d;const c=e.includes("`")||e.includes("~~~");if(c){e=e.replace(/~/g,"~T").replace(/^(?`{3,}|(~T){3,})[^`\n]*\n([\s\S]*?)^\k`*$/gm,(e=>e.replace(/\$/g,"~D"))).replace(/(^|[^\\])(`+)([^\n]*?[^`\n])\2(?!`)/gm,(e=>e.replace(/\$/g,"~D")));d=e=>e.replace(/~([TD])/g,((e,t)=>t==="T"?"~":i))}else{d=e=>e}let h=e.replace(/\r\n?/g,"\n").split(s);for(let s=1,u=h.length;s{let i=t[n];if(i.substr(0,3)==="\\\\("&&i.substr(i.length-3)==="\\\\)"){i="\\("+i.substring(3,i.length-3)+"\\)"}else if(i.substr(0,3)==="\\\\["&&i.substr(i.length-3)==="\\\\]"){i="\\["+i.substring(3,i.length-3)+"\\]"}return i};return e.replace(/@@(\d+)@@/g,n)}function a(e,t,n,i,s){let o=s.slice(e,t+1).join("").replace(/&/g,"&").replace(//g,">");if(navigator&&navigator.appName==="Microsoft Internet Explorer"){o=o.replace(/(%[^\n]*)\n/g,"$1
    \n")}while(t>e){s[t]="";t--}s[e]="@@"+i.length+"@@";if(n){o=n(o)}i.push(o);return s}},29549:(e,t,n)=>{"use strict";n.d(t,{w:()=>i});class i{constructor(e={}){this.trusted=!!e.trusted;this._data=e.data||{};this._metadata=e.metadata||{};this._callback=e.callback||s.noOp}get data(){return this._data}get metadata(){return this._metadata}setData(e){this._data=e.data||this._data;this._metadata=e.metadata||this._metadata;this._callback(e)}}var s;(function(e){function t(){}e.noOp=t})(s||(s={}))},34354:(e,t,n)=>{"use strict";n.d(t,{L:()=>h});var i=n(68193);var s=n.n(i);var o=n(44336);var r=n.n(o);var a=n(5592);var l=n.n(a);var d=n(2336);var c=n.n(d);class h{constructor(e){this._changed=new d.Signal(this);this._raw={};this._text=undefined;const{data:t,metadata:n,trusted:s}=u.getBundleOptions(e);this._rawData=t;if(e.value!==undefined&&i.isStream(e.value)){this._text=new o.ObservableString(typeof e.value.text==="string"?e.value.text:e.value.text.join(""))}this._metadata=new o.ObservableJSON({values:n});this._rawMetadata=n;this.trusted=s;const r=e.value;for(const i in r){switch(i){case"data":case"metadata":break;default:this._raw[i]=u.extract(r,i)}}this.type=r.output_type;if(i.isExecuteResult(r)){this.executionCount=r.execution_count}else{this.executionCount=null}}get changed(){return this._changed}dispose(){var e;(e=this._text)===null||e===void 0?void 0:e.dispose();this._metadata.dispose();d.Signal.clearData(this)}get data(){return u.getData(this.toJSON())}get streamText(){return this._text}get metadata(){return this._rawMetadata}setData(e){if(e.data){this._rawData=e.data}if(e.metadata){this._updateObservable(this._metadata,e.metadata);this._rawMetadata=e.metadata}this._changed.emit()}toJSON(){const e={};for(const t in this._raw){e[t]=u.extract(this._raw,t)}if(this._text!==undefined){e["text"]=this._text.text}switch(this.type){case"display_data":case"execute_result":case"update_display_data":e["data"]=this._rawData;e["metadata"]=this.metadata;break;default:break}delete e["transient"];return e}_updateObservable(e,t){const n=e.keys();const i=Object.keys(t);for(const s of n){if(i.indexOf(s)===-1){e.delete(s)}}for(const s of i){const n=e.get(s);const i=t[s];if(n!==i){e.set(s,i)}}}}(function(e){function t(e){return u.getData(e)}e.getData=t;function n(e){return u.getMetadata(e)}e.getMetadata=n})(h||(h={}));var u;(function(e){function t(e){let t={};if(i.isExecuteResult(e)||i.isDisplayData(e)||i.isDisplayUpdate(e)){t=e.data}else if(i.isStream(e)){if(e.name==="stderr"){t["application/vnd.jupyter.stderr"]=e.text}else{t["application/vnd.jupyter.stdout"]=e.text}}else if(i.isError(e)){t["application/vnd.jupyter.error"]=e;const n=e.traceback.join("\n");t["application/vnd.jupyter.stderr"]=n||`${e.ename}: ${e.evalue}`}return r(t)}e.getData=t;function n(e){const t=Object.create(null);if(i.isExecuteResult(e)||i.isDisplayData(e)){for(const n in e.metadata){t[n]=o(e.metadata,n)}}return t}e.getMetadata=n;function s(e){const i=t(e.value);const s=n(e.value);const o=!!e.trusted;return{data:i,metadata:s,trusted:o}}e.getBundleOptions=s;function o(e,t){const n=e[t];if(n===undefined||a.JSONExt.isPrimitive(n)){return n}return JSON.parse(JSON.stringify(n))}e.extract=o;function r(e){const t=Object.create(null);for(const n in e){t[n]=o(e,n)}return t}})(u||(u={}))},71153:(e,t,n)=>{"use strict";n.d(t,{K:()=>c});var i=n(14366);var s=n.n(i);var o=n(30397);var r=n.n(o);var a=n(30619);var l=n.n(a);var d=n(29549);class c{constructor(e={}){var t,n,s,o,r,l;this._id=0;this._ranks={};this._types=null;this._factories={};this.translator=(t=e.translator)!==null&&t!==void 0?t:a.nullTranslator;this.resolver=(n=e.resolver)!==null&&n!==void 0?n:null;this.linkHandler=(s=e.linkHandler)!==null&&s!==void 0?s:null;this.latexTypesetter=(o=e.latexTypesetter)!==null&&o!==void 0?o:null;this.markdownParser=(r=e.markdownParser)!==null&&r!==void 0?r:null;this.sanitizer=(l=e.sanitizer)!==null&&l!==void 0?l:new i.Sanitizer;if(e.initialFactories){for(const t of e.initialFactories){this.addFactory(t)}}}get mimeTypes(){return this._types||(this._types=h.sortedTypes(this._ranks))}preferredMimeType(e,t="ensure"){if(t==="ensure"||t==="prefer"){for(const t of this.mimeTypes){if(t in e&&this._factories[t].safe){return t}}}if(t!=="ensure"){for(const t of this.mimeTypes){if(t in e){return t}}}return undefined}createRenderer(e){if(!(e in this._factories)){throw new Error(`No factory for mime type: '${e}'`)}return this._factories[e].createRenderer({mimeType:e,resolver:this.resolver,sanitizer:this.sanitizer,linkHandler:this.linkHandler,latexTypesetter:this.latexTypesetter,markdownParser:this.markdownParser,translator:this.translator})}createModel(e={}){return new d.w(e)}clone(e={}){var t,n,i,s,o,r,a,l,d,h;const u=new c({resolver:(n=(t=e.resolver)!==null&&t!==void 0?t:this.resolver)!==null&&n!==void 0?n:undefined,sanitizer:(s=(i=e.sanitizer)!==null&&i!==void 0?i:this.sanitizer)!==null&&s!==void 0?s:undefined,linkHandler:(r=(o=e.linkHandler)!==null&&o!==void 0?o:this.linkHandler)!==null&&r!==void 0?r:undefined,latexTypesetter:(l=(a=e.latexTypesetter)!==null&&a!==void 0?a:this.latexTypesetter)!==null&&l!==void 0?l:undefined,markdownParser:(h=(d=e.markdownParser)!==null&&d!==void 0?d:this.markdownParser)!==null&&h!==void 0?h:undefined,translator:this.translator});u._factories={...this._factories};u._ranks={...this._ranks};u._id=this._id;return u}getFactory(e){return this._factories[e]}addFactory(e,t){if(t===undefined){t=e.defaultRank;if(t===undefined){t=100}}for(const n of e.mimeTypes){this._factories[n]=e;this._ranks[n]={rank:t,id:this._id++}}this._types=null}removeMimeType(e){delete this._factories[e];delete this._ranks[e];this._types=null}getRank(e){const t=this._ranks[e];return t&&t.rank}setRank(e,t){if(!this._ranks[e]){return}const n=this._id++;this._ranks[e]={rank:t,id:n};this._types=null}}(function(e){class t{constructor(e){this._path=e.path;this._contents=e.contents}get path(){return this._path}set path(e){this._path=e}async resolveUrl(e){if(this.isLocal(e)){const t=encodeURI(o.PathExt.dirname(this.path));e=o.PathExt.resolve(t,e)}return e}async getDownloadUrl(e){if(this.isLocal(e)){return this._contents.getDownloadUrl(decodeURIComponent(e))}return e}isLocal(e,t=false){if(this.isMalformed(e)){return false}return o.URLExt.isLocal(e,t)||!!this._contents.driveName(decodeURI(e))}async resolvePath(e){const t=o.PageConfig.getOption("rootUri").replace("file://","");if(e.startsWith("~/")&&t.startsWith("/home/")){e=t.split("/").slice(0,3).join("/")+e.substring(1)}if(e.startsWith(t)||e.startsWith("./")){try{const n=e.replace(t,"");const i=await this._contents.get(n,{content:false});return{path:i.path,scope:"server"}}catch(n){console.warn(`Could not resolve location of ${e} on server`);return null}}return{path:e,scope:"kernel"}}isMalformed(e){try{decodeURI(e);return false}catch(t){if(t instanceof URIError){return true}throw t}}}e.UrlResolver=t})(c||(c={}));var h;(function(e){function t(e){return Object.keys(e).sort(((t,n)=>{const i=e[t];const s=e[n];if(i.rank!==s.rank){return i.rank-s.rank}return i.id-s.id}))}e.sortedTypes=t})(h||(h={}))},11364:(e,t,n)=>{"use strict";n.d(t,{Gc:()=>p,S5:()=>C,d8:()=>m,e2:()=>c,mx:()=>h,vr:()=>I,zG:()=>u});var i=n(30397);var s=n.n(i);var o=n(30619);var r=n.n(o);var a=n(67901);var l=n.n(a);var d=n(52608);async function c(e){let{host:t,source:n,trusted:i,sanitizer:s,resolver:r,linkHandler:a,shouldTypeset:l,latexTypesetter:d,translator:c}=e;c=c||o.nullTranslator;const h=c===null||c===void 0?void 0:c.load("jupyterlab");let u=n;if(!n){t.textContent="";return}if(!i){u=`${n}`;n=s.sanitize(n)}t.innerHTML=n;if(t.getElementsByTagName("script").length>0){if(i){T.evalInnerHTMLScriptTags(t)}else{const e=document.createElement("div");const n=document.createElement("pre");n.textContent=h.__("This HTML output contains inline scripts. Are you sure that you want to run arbitrary Javascript within your JupyterLab session?");const i=document.createElement("button");i.textContent=h.__("Run");i.onclick=e=>{t.innerHTML=u;T.evalInnerHTMLScriptTags(t);if(t.firstChild){t.removeChild(t.firstChild)}};e.appendChild(n);e.appendChild(i);t.insertBefore(e,t.firstChild)}}T.handleDefaults(t,r);if(r){await T.handleUrls(t,r,a)}if(l&&d){d.typeset(t)}}async function h(e){const{host:t,mimeType:n,source:i,width:s,height:o,needsBackground:r,unconfined:a}=e;t.textContent="";const l=document.createElement("img");l.src=`data:${n};base64,${i}`;if(typeof o==="number"){l.height=o}if(typeof s==="number"){l.width=s}if(r==="light"){l.classList.add("jp-needs-light-background")}else if(r==="dark"){l.classList.add("jp-needs-dark-background")}if(a===true){l.classList.add("jp-mod-unconfined")}t.appendChild(l)}async function u(e){const{host:t,source:n,shouldTypeset:i,latexTypesetter:s}=e;t.textContent=n;if(i&&s){s.typeset(t)}}async function p(e){const{host:t,source:n,markdownParser:i,...s}=e;if(!n){t.textContent="";return}let o="";if(i){const e=(0,d.r)(n);o=await i.render(e["text"]);o=(0,d.H)(o,e["math"])}else{o=`
    ${n}
    `}await c({host:t,source:o,...s});T.headerAnchors(t)}(function(e){function t(e){var t;return((t=e.textContent)!==null&&t!==void 0?t:"").replace(/ /g,"-")}e.createHeaderId=t})(p||(p={}));async function m(e){let{host:t,source:n,trusted:i,unconfined:s}=e;if(!n){t.textContent="";return}if(!i){t.textContent="Cannot display an untrusted SVG. Maybe you need to run the cell?";return}const o="]+xmlns=[^>]+svg";if(n.search(o)<0){n=n.replace("(?:[a-zA-Z][a-zA-Z0-9+.-]{2,"+t+"}:\\/\\/|data:|www\\.)[^\\s"+n+'"]{2,}[^\\s'+n+"\"'(){}\\[\\],:;.!?])","ug");const i=/(?:[a-zA-Z]:(?:(?:\\|\/)[\w\.-]*)+)/;const s=/(?:(?:\~|\.)(?:(?:\\|\/)[\w\.-]*)+)/;const o=new RegExp(`(${i.source}|${s.source})`);const r=/((?:\~|\.)?(?:\/[\w\.-]*)+)/;const a=/(?:(?:\:|", line )(?[\d]+))?(?:\:(?[\d]+))?/;const l=navigator.userAgent.indexOf("Windows")>=0;e.pathLinkRegex=new RegExp(`(?${l?o.source:r.source})${a.source}`,"g")})(g||(g={}));class f{constructor(){this.regex=g.webLinkRegex}createAnchor(e,t){const n=document.createElement("a");n.href=e.startsWith("www.")?"https://"+e:e;n.rel="noopener";n.target="_blank";n.appendChild(document.createTextNode(t));return n}processPath(e){const t=e.slice(-1);const n=[">","<"].indexOf(t)!==-1;const i=n?e.length-1:e.length;e=e.slice(0,i);return e}processLabel(e){return this.processPath(e)}}class v{constructor(){this.regex=g.pathLinkRegex}createAnchor(e,t,n){const i=document.createElement("a");i.dataset.path=e;const s=parseInt(n["line"],10);let o=!isNaN(s)?`line=${s-1}`:"";i.dataset.locator=o;i.appendChild(document.createTextNode(t));return i}}function _(e,t){const n=[];if(t.checkWeb){n.push(new f)}if(t.checkPaths){n.push(new v)}const i=[];const s=(e,t)=>{if(t>=n.length){i.push(document.createTextNode(e));return}const o=n[t];let r;let a=0;const l=o.regex;l.lastIndex=0;while(null!=(r=l.exec(e))){const n=e.substring(a,r.index);if(n){s(n,t+1)}const{path:l,...d}=r.groups;const c=o.processPath?o.processPath(l):l;const h=o.processLabel?o.processLabel(r[0]):r[0];i.push(o.createAnchor(c,h,d));a=r.index+h.length}const d=e.substring(a);if(d){s(d,t+1)}};s(e,0);return i}function b(e,t){var n,i;const s=e.cloneNode();s.textContent=(n=e.textContent)===null||n===void 0?void 0:n.slice(0,t);const o=e.cloneNode();o.textContent=(i=e.textContent)===null||i===void 0?void 0:i.slice(t);return{pre:s,post:o}}function*y(e){var t;let n=0;let i;for(let s of e){i=n+(((t=s.textContent)===null||t===void 0?void 0:t.length)||0);yield{node:s,start:n,end:i,isText:s.nodeType===Node.TEXT_NODE};n=i}}function*w(e,t){var n,i;let s=y(e);let o=y(t);let r=s.next();let a=o.next();while(!r.done&&!a.done){let e=r.value;let t=a.value;if(e.isText&&e.start<=t.start&&e.end>=t.end){yield[null,t.node];a=o.next()}else if(t.isText&&t.start<=e.start&&t.end>=e.end){yield[e.node,null];r=s.next()}else{if(e.end===t.end&&e.start===t.start){yield[e.node,t.node];r=s.next();a=o.next()}else if(e.end>t.end){let{pre:i,post:s}=b(e.node,t.end-e.start);if(t.starte.end){let{pre:n,post:o}=b(t.node,e.end-t.start);if(e.starte.cloneNode(true)))})}else{e=[document.createTextNode(l)]}const r=Array.from(d.childNodes);m=E(r,e)}else{m=document.createElement("pre")}s.appendChild(m)}function j(e,t){if(!e){return null}if(t.lengthc(e,t,n))))}e.handlePaths=o;function r(e){const t=["h1","h2","h3","h4","h5","h6"];for(const n of t){const t=e.getElementsByTagName(n);for(let e=0;e{const s=decodeURIComponent(i);if(n){n.handleLink(e,s,r)}return t.getDownloadUrl(i)})).then((t=>{e.href=t+r})).catch((t=>{e.href=""}))}async function c(e,t,n){let s=e.dataset.path||"";let o=e.dataset.locator?"#"+e.dataset.locator:"";delete e.dataset.path;delete e.dataset.locator;const r=true;const a=t.isLocal?t.isLocal(s,r):i.URLExt.isLocal(s,r);if(!s||!a||!t.resolvePath||!n||!n.handlePath){e.replaceWith(...e.childNodes);return}try{const i=await t.resolvePath(s);if(!i){console.log("Path resolution bailing: does not exist");return}n.handlePath(e,i.path,i.scope,o);e.href=i.path+o}catch(l){console.warn("Path anchor error:",l);e.href="#linking-failed-see-console"}}const h=["ansi-black","ansi-red","ansi-green","ansi-yellow","ansi-blue","ansi-magenta","ansi-cyan","ansi-white","ansi-black-intense","ansi-red-intense","ansi-green-intense","ansi-yellow-intense","ansi-blue-intense","ansi-magenta-intense","ansi-cyan-intense","ansi-white-intense"];function u(e,t,n,i,s,o,r){if(e){const a=[];const l=[];if(i&&typeof t==="number"&&0<=t&&t<8){t+=8}if(o){[t,n]=[n,t]}if(typeof t==="number"){a.push(h[t]+"-fg")}else if(t.length){l.push(`color: rgb(${t})`)}else if(o){a.push("ansi-default-inverse-fg")}if(typeof n==="number"){a.push(h[n]+"-bg")}else if(n.length){l.push(`background-color: rgb(${n})`)}else if(o){a.push("ansi-default-inverse-bg")}if(i){a.push("ansi-bold")}if(s){a.push("ansi-underline")}if(a.length||l.length){r.push("");r.push(e);r.push("")}else{r.push(e)}}}function m(e){let t;let n;let i;const s=e.shift();if(s===2&&e.length>=3){t=e.shift();n=e.shift();i=e.shift();if([t,n,i].some((e=>e<0||255=1){const s=e.shift();if(s<0){throw new RangeError("Color index must be >= 0")}else if(s<16){return s}else if(s<232){t=Math.floor((s-16)/36);t=t>0?55+t*40:0;n=Math.floor((s-16)%36/6);n=n>0?55+n*40:0;i=(s-16)%6;i=i>0?55+i*40:0}else if(s<256){t=n=i=(s-232)*10+8}else{throw new RangeError("Color index must be < 256")}}else{throw new RangeError("Invalid extended color specification")}return[t,n,i]}function g(e){const t=/\x1b\[(.*?)([@-~])/g;let n=[];let i=[];let s=false;let o=false;let r=false;let a;const d=[];const c=[];let h=0;e=l()(e);e+="";while(a=t.exec(e)){if(a[2]==="m"){const e=a[1].split(";");for(let t=0;t{"use strict";n.d(t,{N3:()=>o,co:()=>a,nc:()=>r});var i=n(5592);var s=n.n(i);const o=new i.Token("@jupyterlab/rendermime:IRenderMimeRegistry",'A service for the rendermime registry for the application. Use this to create renderers for various mime-types in your extension. Many times it will be easier to create a "mime renderer extension" rather than using this service directly.');const r=new i.Token("@jupyterlab/rendermime:ILatexTypesetter","A service for the LaTeX typesetter for the application. Use this if you want to typeset math in your extension.");const a=new i.Token("@jupyterlab/rendermime:IMarkdownParser","A service for rendering markdown syntax as HTML content.")},18901:(e,t,n)=>{"use strict";n.d(t,{A6:()=>f,C6:()=>d,Kc:()=>h,TH:()=>c,TS:()=>v,Vx:()=>g,Yk:()=>m,jL:()=>p,nZ:()=>l,vf:()=>u});var i=n(30619);var s=n.n(i);var o=n(1143);var r=n.n(o);var a=n(11364);class l extends o.Widget{constructor(e){var t,n;super();this.mimeType=e.mimeType;this.sanitizer=e.sanitizer;this.resolver=e.resolver;this.linkHandler=e.linkHandler;this.translator=(t=e.translator)!==null&&t!==void 0?t:i.nullTranslator;this.latexTypesetter=e.latexTypesetter;this.markdownParser=(n=e.markdownParser)!==null&&n!==void 0?n:null;this.node.dataset["mimeType"]=this.mimeType}async renderModel(e,t){if(!t){while(this.node.firstChild){this.node.removeChild(this.node.firstChild)}}this.toggleClass("jp-mod-trusted",e.trusted);await this.render(e);const{fragment:n}=e.metadata;if(n){this.setFragment(n)}}setFragment(e){}}class d extends l{constructor(e){super(e);this.addClass("jp-RenderedHTMLCommon")}setFragment(e){let t;try{t=this.node.querySelector(e.startsWith("#")?`#${CSS.escape(e.slice(1))}`:e)}catch(n){console.warn("Unable to set URI fragment identifier.",n)}if(t){t.scrollIntoView()}}}class c extends d{constructor(e){super(e);this._rendered=Promise.resolve();this.addClass("jp-RenderedHTML")}render(e){return this._rendered=a.e2({host:this.node,source:String(e.data[this.mimeType]),trusted:e.trusted,resolver:this.resolver,sanitizer:this.sanitizer,linkHandler:this.linkHandler,shouldTypeset:this.isAttached,latexTypesetter:this.latexTypesetter,translator:this.translator})}onAfterAttach(e){this._rendered.then((()=>{if(this.latexTypesetter){this.latexTypesetter.typeset(this.node)}})).catch(console.warn)}}class h extends l{constructor(e){super(e);this._rendered=Promise.resolve();this.addClass("jp-RenderedLatex")}render(e){return this._rendered=a.zG({host:this.node,source:String(e.data[this.mimeType]),shouldTypeset:this.isAttached,latexTypesetter:this.latexTypesetter})}onAfterAttach(e){this._rendered.then((()=>{if(this.latexTypesetter){this.latexTypesetter.typeset(this.node)}})).catch(console.warn)}}class u extends l{constructor(e){super(e);this.addClass("jp-RenderedImage")}render(e){const t=e.metadata[this.mimeType];return a.mx({host:this.node,mimeType:this.mimeType,source:String(e.data[this.mimeType]),width:t&&t.width,height:t&&t.height,needsBackground:e.metadata["needs_background"],unconfined:t&&t.unconfined})}}class p extends d{constructor(e){super(e);this._rendered=Promise.resolve();this.addClass("jp-RenderedMarkdown")}render(e){return this._rendered=a.Gc({host:this.node,source:String(e.data[this.mimeType]),trusted:e.trusted,resolver:this.resolver,sanitizer:this.sanitizer,linkHandler:this.linkHandler,shouldTypeset:this.isAttached,latexTypesetter:this.latexTypesetter,markdownParser:this.markdownParser,translator:this.translator})}async renderModel(e){await super.renderModel(e,true)}onAfterAttach(e){this._rendered.then((()=>{if(this.latexTypesetter){this.latexTypesetter.typeset(this.node)}})).catch(console.warn)}}class m extends l{constructor(e){super(e);this._rendered=Promise.resolve();this.addClass("jp-RenderedSVG")}render(e){const t=e.metadata[this.mimeType];return this._rendered=a.d8({host:this.node,source:String(e.data[this.mimeType]),trusted:e.trusted,unconfined:t&&t.unconfined,translator:this.translator})}onAfterAttach(e){this._rendered.then((()=>{if(this.latexTypesetter){this.latexTypesetter.typeset(this.node)}})).catch(console.warn)}}class g extends l{constructor(e){super(e);this.addClass("jp-RenderedText")}render(e){return a.S5({host:this.node,sanitizer:this.sanitizer,source:String(e.data[this.mimeType]),translator:this.translator})}}class f extends l{constructor(e){super(e);this.addClass("jp-RenderedText")}render(e){return a.vr({host:this.node,sanitizer:this.sanitizer,source:String(e.data[this.mimeType]),linkHandler:this.linkHandler,resolver:this.resolver,translator:this.translator})}}class v extends l{constructor(e){super(e);this.addClass("jp-RenderedJavaScript")}render(e){const t=this.translator.load("jupyterlab");return a.S5({host:this.node,sanitizer:this.sanitizer,source:t.__("JavaScript output is disabled in JupyterLab"),translator:this.translator})}}},5893:(e,t,n)=>{"use strict";var i=n(10395);var s=n(97913);var o=n(85072);var r=n.n(o);var a=n(97825);var l=n.n(a);var d=n(77659);var c=n.n(d);var h=n(55056);var u=n.n(h);var p=n(10540);var m=n.n(p);var g=n(41113);var f=n.n(g);var v=n(30354);var _={};_.styleTagTransform=f();_.setAttributes=u();_.insert=c().bind(null,"head");_.domAPI=l();_.insertStyleElement=m();var b=r()(v.A,_);const y=v.A&&v.A.locals?v.A.locals:undefined},51883:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CommandIDs:()=>j,default:()=>D});var i=n(94307);var s=n(14366);var o=n(45409);var r=n(43801);var a=n(94931);var l=n(30619);var d=n(26331);var c=n(30397);var h=n(28548);var u=n(26568);var p=n(2336);var m=n(44914);var g=n.n(m);const f="jp-mod-kernel";const v="jp-mod-kernelspec";const _="jp-mod-kernel-widget";const b="jp-RunningSessions-item-label-kernel-id";async function y(e,t,n){const{commands:i,contextMenu:o,serviceManager:r}=n;const{kernels:a,kernelspecs:l,sessions:p}=r;const{runningChanged:m,RunningKernel:v}=w;const _=new u.Throttler((()=>m.emit(undefined)),100);const b=t.load("jupyterlab");const y=b.__("Shut Down Unused");let C=false;const x=new u.Throttler(k,1e4);a.runningChanged.connect((()=>{void _.invoke();void x.invoke()}));p.runningChanged.connect((()=>void _.invoke()));await Promise.all([a.ready,l.ready,p.ready]);function S(){return Array.from(a.running()).filter((e=>{var t;return((t=e.connections)!==null&&t!==void 0?t:1)<1}))}async function k(){const e=C;C=S().length>0;if(e!==C){i.notifyCommandChanged(j.kernelShutDownUnused)}}i.addCommand(j.kernelShutDownUnused,{label:e=>e.toolbar?"":y,icon:e=>e.toolbar?d.cleaningIcon:undefined,execute:async()=>{const e=S();if(e.length===0){return}const t=await(0,s.showDialog)({title:y,body:g().createElement(g().Fragment,null,b.__("Are you sure you want to shut down the following unused kernels?"),g().createElement("ul",null,e.map((e=>g().createElement("li",{key:e.id},b.__("%1 (%2)",e.name,e.id.slice(0,8))))))),buttons:[s.Dialog.cancelButton(),s.Dialog.warnButton({label:y})]});if(t.button.accept){await Promise.allSettled(e.map((e=>h.KernelAPI.shutdownKernel(e.id))));await Promise.all([a.refreshRunning(),p.refreshRunning()])}},isEnabled:()=>C});e.add({name:b.__("Kernels"),supportsMultipleViews:true,running:e=>{var t;const n=new Map;for(const o of a.running()){const s=(t=n.get(o.name))!==null&&t!==void 0?t:[];n.set(o.name,s);s.push(new v({commands:i,kernel:o,kernels:a,sessions:p,trans:b,mode:e.mode}))}const s=Array.from(n.entries()).map((([e,t])=>{var n;return new w.KernelSpecItem({name:e,kernels:t,spec:(n=l.specs)===null||n===void 0?void 0:n.kernelspecs[e],trans:b})}));return e.mode==="tree"?s:s.map((e=>e.children.map((e=>{var t;return(t=e.children)!==null&&t!==void 0?t:[]})).flat())).flat()},shutdownAll:()=>a.shutdownAll(),refreshRunning:()=>Promise.all([a.refreshRunning(),p.refreshRunning()]),runningChanged:m,shutdownLabel:b.__("Shut Down Kernel"),shutdownAllLabel:b.__("Shut Down All"),shutdownAllConfirmationText:()=>b._n("Are you sure you want to permanently shut down the running kernel?","Are you sure you want to permanently shut down the %1 running kernels?",a.runningCount),toolbarButtons:[new d.CommandToolbarButton({commands:i,id:j.kernelShutDownUnused,caption:y,args:{toolbar:true}})]});const I=e=>e.classList.contains(f);i.addCommand(j.kernelNewConsole,{icon:d.consoleIcon,label:b.__("New Console for Kernel"),execute:e=>{var t;const s=n.contextMenuHitTest(I);const o=(t=e.id)!==null&&t!==void 0?t:s===null||s===void 0?void 0:s.dataset["context"];if(o){return i.execute("console:create",{kernelPreference:{id:o}})}}});i.addCommand(j.kernelNewNotebook,{icon:d.notebookIcon,label:b.__("New Notebook for Kernel"),execute:e=>{var t;const s=n.contextMenuHitTest(I);const o=(t=e.id)!==null&&t!==void 0?t:s===null||s===void 0?void 0:s.dataset["context"];if(o){return i.execute("notebook:create-new",{kernelId:o})}}});i.addCommand(j.kernelOpenSession,{icon:e=>e.type==="console"?d.consoleIcon:e.type==="notebook"?d.notebookIcon:undefined,isEnabled:({path:e,type:t})=>!!t||e!==undefined,label:({name:e,path:t})=>e||c.PathExt.basename(t||b.__("Unknown Session")),execute:({path:e,type:t})=>{if(!t||e===undefined){return}const n=t==="console"?"console:open":"docmanager:open";return i.execute(n,{path:e})}});i.addCommand(j.kernelShutDown,{icon:d.closeIcon,label:b.__("Shut Down Kernel"),execute:e=>{var t;const i=n.contextMenuHitTest(I);const s=(t=e.id)!==null&&t!==void 0?t:i===null||i===void 0?void 0:i.dataset["context"];if(s){return a.shutdown(s)}}});const E=[];o.opened.connect((async()=>{var e,t,i;const s=(t=(e=o.menu.items.find((e=>{var t;return e.type==="submenu"&&((t=e.submenu)===null||t===void 0?void 0:t.id)==="jp-contextmenu-connected-sessions"})))===null||e===void 0?void 0:e.submenu)!==null&&t!==void 0?t:null;if(!s){return}E.forEach((e=>e.dispose()));E.length=0;s.clearItems();const r=n.contextMenuHitTest(I);const a=r===null||r===void 0?void 0:r.dataset["context"];if(!a){return}const l=j.kernelOpenSession;for(const n of p.running()){if(a===((i=n.kernel)===null||i===void 0?void 0:i.id)){const{name:e,path:t,type:i}=n;E.push(s.addItem({command:l,args:{name:e,path:t,type:i}}))}}}))}var w;(function(e){class t{constructor(e){this._name=e.name;this.className=v;this._kernels=e.kernels;this.spec=e.spec||null;this.trans=e.trans}icon(){const{spec:e}=this;if(!e||!e.resources){return d.jupyterIcon}return e.resources["logo-svg"]||e.resources["logo-64x64"]||e.resources["logo-32x32"]}label(){const{_name:e,spec:t}=this;return(t===null||t===void 0?void 0:t.display_name)||e}get children(){return this._kernels}}e.KernelSpecItem=t;class n{constructor(e){this.className=f;this.commands=e.commands;this.kernel=e.kernel;this.context=this.kernel.id;this.kernels=e.kernels;this.sessions=e.sessions;this.trans=e.trans;this._mode=e.mode}get children(){var e;const t=[];const n=j.kernelOpenSession;const{commands:i}=this;for(const s of this.sessions.running()){if(this.kernel.id===((e=s.kernel)===null||e===void 0?void 0:e.id)){const{name:e,path:o,type:r}=s;t.push({className:_,context:this.kernel.id,open:()=>void i.execute(n,{name:e,path:o,type:r}),icon:()=>r==="console"?d.consoleIcon:r==="notebook"?d.notebookIcon:d.jupyterIcon,label:()=>{if(this._mode==="tree"){return e}const t=this.kernel.id.split("-")[0];return g().createElement(g().Fragment,null,e," ",g().createElement("span",{className:b},"(",t,")"))},labelTitle:()=>o,name:()=>e})}}return t}shutdown(){return this.kernels.shutdown(this.kernel.id)}icon(){return d.kernelIcon}label(){const{kernel:e}=this;const t=e.id.split("-")[0];return g().createElement(g().Fragment,null,this._summary," ",g().createElement("span",{className:b},"(",t,")"))}labelTitle(){var e;const{trans:t}=this;const{id:n}=this.kernel;const i=[`${this._summary}: ${n}`];for(const s of this.sessions.running()){if(this.kernel.id===((e=s.kernel)===null||e===void 0?void 0:e.id)){const{path:e,type:n}=s;i.push(t.__(`%1\nPath: %2`,n,e))}}return i.join("\n\n")}get _summary(){const e=this.children;if(e.length===0){return this.trans.__("No sessions connected")}else if(e.length==1){return e[0].name()}else{return this.trans.__("%1 and %2 more",e[0].name(),e.length-1)}}}e.RunningKernel=n;e.runningChanged=new p.Signal({})})(w||(w={}));var C=n(93037);class x{constructor(e){this._tabsChanged=new p.Signal(this);this._widgets=[];this._labShell=e;this._labShell.layoutModified.connect(this._emitTabsChanged,this)}get tabsChanged(){return this._tabsChanged}addWidget(e){e.title.changed.connect(this._emitTabsChanged,this);this._widgets.push(e)}_emitTabsChanged(){this._widgets.forEach((e=>{e.title.changed.disconnect(this._emitTabsChanged,this)}));this._widgets=[];this._tabsChanged.emit(void 0)}}function S(e,t,n){const i=new x(n);const s=t.load("jupyterlab");e.add({name:s.__("Open Tabs"),supportsMultipleViews:false,running:()=>Array.from(n.widgets("main")).map((e=>{i.addWidget(e);return new o(e)})),shutdownAll:()=>{const e=Array.from(n.widgets("main"));for(const t of e){t.close()}},refreshRunning:()=>void 0,runningChanged:i.tabsChanged,shutdownLabel:s.__("Close"),shutdownAllLabel:s.__("Close All"),shutdownAllConfirmationText:s.__("Are you sure you want to close all open tabs?")});class o{constructor(e){this._widget=e}open(){n.activateById(this._widget.id)}shutdown(){this._widget.close()}icon(){const e=this._widget.title.icon;return e instanceof d.LabIcon?e:d.fileIcon}label(){return this._widget.title.label}labelTitle(){let e;if(this._widget instanceof C.DocumentWidget){e=this._widget.context.path}else{e=this._widget.title.label}return e}}}function k(e,t,n,i,s){const o=s.load("jupyterlab");e.add({name:o.__("Recently Closed"),supportsMultipleViews:false,running:()=>t.recentlyClosed.map((e=>new r(e))),shutdownAll:()=>{for(const e of t.recentlyClosed){t.removeRecent(e,"closed")}},refreshRunning:()=>void 0,runningChanged:t.changed,shutdownLabel:o.__("Forget"),shutdownAllLabel:o.__("Forget All"),shutdownAllConfirmationText:o.__("Are you sure you want to clear recently closed tabs?")});class r{constructor(e){this._recent=e}async open(){const e=this._recent;const i=await t.validate(e);if(!i){return}await n.execute("docmanager:open",{path:e.path,factory:e.factory});t.removeRecent(e,"closed")}shutdown(){t.removeRecent(this._recent,"closed")}icon(){if(!this._recent.factory){return d.fileIcon}const e=i.getFileTypesForPath(this._recent.path);for(const n of e){const e=n.icon;if(e instanceof d.LabIcon){return e}}const t=i.getWidgetFactory(this._recent.factory);if(t){for(const e of t.fileTypes){const t=i.getFileType(e);const n=t===null||t===void 0?void 0:t.icon;if(n instanceof d.LabIcon){return n}}}return d.fileIcon}label(){return c.PathExt.basename(this._recent.path)}labelTitle(){return this._recent.path}}}var j;(function(e){e.kernelNewConsole="running:kernel-new-console";e.kernelNewNotebook="running:kernel-new-notebook";e.kernelOpenSession="running:kernel-open-session";e.kernelShutDown="running:kernel-shut-down";e.kernelShutDownUnused="running:kernel-shut-down-unused";e.showPanel="running:show-panel";e.showModal="running:show-modal"})(j||(j={}));const I={id:"@jupyterlab/running-extension:plugin",description:"Provides the running session managers.",provides:o.IRunningSessionManagers,requires:[l.ITranslator],optional:[i.ILabShell],autoStart:true,activate:(e,t,n)=>{const i=new o.RunningSessionManagers;if(n){S(i,t,n)}void y(i,t,e);return i}};const E={id:"@jupyterlab/running-extension:sidebar",description:"Provides the running session sidebar.",provides:o.IRunningSessionSidebar,requires:[o.IRunningSessionManagers,l.ITranslator],optional:[i.ILayoutRestorer,a.IStateDB],autoStart:true,activate:(e,t,n,i,s)=>{const r=n.load("jupyterlab");const a=new o.RunningSessions(t,n,s);a.id="jp-running-sessions";a.title.caption=r.__("Running Terminals and Kernels");a.title.icon=d.runningIcon;a.node.setAttribute("role","region");a.node.setAttribute("aria-label",r.__("Running Sessions section"));if(i){i.add(a,"running-sessions")}e.shell.add(a,"left",{rank:200,type:"Sessions and Tabs"});e.commands.addCommand(j.showPanel,{label:r.__("Sessions and Tabs"),execute:()=>{e.shell.activateById(a.id)}});return a}};const T={id:"@jupyterlab/running-extension:recently-closed",description:"Adds recently closed documents list.",requires:[o.IRunningSessionManagers,r.IRecentsManager,l.ITranslator],autoStart:true,activate:(e,t,n,i)=>{k(t,n,e.commands,e.docRegistry,i)}};const M={id:"@jupyterlab/running-extension:search-tabs",description:"Adds a widget to search open and closed tabs.",requires:[o.IRunningSessionManagers,l.ITranslator],optional:[s.ICommandPalette,o.IRunningSessionSidebar],autoStart:true,activate:(e,t,n,i,r)=>{const a=n.load("jupyterlab");e.commands.addCommand(j.showModal,{execute:()=>{const e=new o.SearchableSessions(t,n);const i=new s.Dialog({title:a.__("Tabs and Running Sessions"),body:e,buttons:[s.Dialog.okButton({})],hasClose:true});i.addClass("jp-SearchableSessions-modal");return i.launch()},label:a.__("Search Tabs and Running Sessions")});if(i){i.addItem({command:j.showModal,category:a.__("Running")})}if(r){const t=new d.CommandToolbarButton({commands:e.commands,id:j.showModal,icon:d.launcherIcon,label:""});r.toolbar.addItem("open-as-modal",t)}}};const D=[I,E,T,M]},54289:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(79010);var a=n(3579);var l=n(41603);var d=n(94780)},19503:(e,t,n)=>{"use strict";n.r(t);n.d(t,{IRunningSessionManagers:()=>O,IRunningSessionSidebar:()=>B,RunningSessionManagers:()=>F,RunningSessions:()=>q,SearchableSessions:()=>J,SearchableSessionsList:()=>G});var i=n(54158);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(30619);var l=n.n(a);var d=n(26331);var c=n.n(d);var h=n(5592);var u=n.n(h);var p=n(90044);var m=n.n(p);var g=n(76326);var f=n.n(g);var v=n(2336);var _=n.n(v);var b=n(1143);var y=n.n(b);var w=n(44914);var C=n.n(w);const x="jp-RunningSessions";const S="jp-SearchableSessions";const k="jp-RunningSessions-section";const j="jp-RunningSessions-sectionContainer";const I="jp-RunningSessions-item";const E="jp-RunningSessions-itemLabel";const T="jp-RunningSessions-itemDetail";const M="jp-RunningSessions-itemShutdown";const D="jp-RunningSessions-shutdownAll";const A="jp-RunningSessions-icon";const P="jp-mod-running-list-view";const L="jp-RunningSessions-viewButton";const R="jp-RunningSessions-collapseButton";const N="jp-running-sessions";const O=new h.Token("@jupyterlab/running:IRunningSessionManagers","A service to add running session managers.");const B=new h.Token("@jupyterlab/running:IRunningSessionsSidebar","A token allowing to modify the running sessions sidebar.");class F{constructor(){this._added=new v.Signal(this);this._managers=[]}get added(){return this._added}add(e){this._managers.push(e);this._added.emit(e);return new p.DisposableDelegate((()=>{const t=this._managers.indexOf(e);if(t>-1){this._managers.splice(t,1)}}))}items(){return this._managers}}function z(e){var t,n;const{runningItem:s}=e;const[o,r]=C().useState(false);const l=(0,w.useRef)(false);const c=[I];const h=(t=s.detail)===null||t===void 0?void 0:t.call(s);const u=s.icon();const p=s.labelTitle?s.labelTitle():"";const m=e.translator||a.nullTranslator;const g=m.load("jupyterlab");const f=e.shutdownItemIcon||d.closeIcon;const v=(n=typeof e.shutdownLabel==="function"?e.shutdownLabel(s):e.shutdownLabel)!==null&&n!==void 0?n:g.__("Shut Down");const _=(0,w.useCallback)((e=>{var t;l.current=true;e.preventDefault();(t=s.shutdown)===null||t===void 0?void 0:t.call(s)}),[s,l]);const b=s.children;const y=!!(b===null||b===void 0?void 0:b.length);const x=(0,w.useCallback)((e=>{if(l.current){return}const t=(0,d.getTreeItemElement)(e.target);if(e.currentTarget!==t){return}if(y){r(!o)}}),[y,o,l]);e.collapseToggled.connect(((e,t)=>r(t)));if(s.className){c.push(s.className)}return C().createElement(C().Fragment,null,C().createElement(i.TreeItem,{className:`${c.join(" ")} jp-TreeItem nested`,onClick:x,"data-context":s.context||"",expanded:!o},u?typeof u==="string"?C().createElement("img",{src:u,className:A,slot:"start"}):C().createElement(u.react,{slot:"start",tag:"span",className:A}):undefined,C().createElement("span",{className:E,title:p,onClick:s.open&&(()=>s.open())},s.label()),h&&C().createElement("span",{className:T},h),s.shutdown&&C().createElement(i.Button,{appearance:"stealth",className:M,onClick:_,title:v,slot:"end"},C().createElement(f.react,{tag:null})),b&&C().createElement(H,{runningItems:b,shutdownItemIcon:f,translator:m,collapseToggled:e.collapseToggled})))}function H(e){const t=e.filter;const n=t?e.runningItems.map((e=>({item:e,score:t(e)}))).filter((({score:e})=>e!==null)).sort(((e,t)=>e.score.score-t.score.score)).map((({item:e})=>e)):e.runningItems;return C().createElement(C().Fragment,null,n.map(((t,n)=>C().createElement(z,{child:e.child,key:n,runningItem:t,shutdownLabel:e.shutdownLabel,shutdownItemIcon:e.shutdownItemIcon,translator:e.translator,collapseToggled:e.collapseToggled}))))}class W extends d.ReactWidget{constructor(e){super();this._filterFn=e=>({score:0});this._filterChanged=new v.Signal(this);this.filter=this.filter.bind(this);this._updateFilter=this._updateFilter.bind(this);this._trans=e.load("jupyterlab");this.addClass("jp-SearchableSessions-filter")}get filterChanged(){return this._filterChanged}render(){return C().createElement(d.FilterBox,{placeholder:this._trans.__("Search"),updateFilter:this._updateFilter,useFuzzyFilter:false,caseSensitive:false})}filter(e){var t;const n=[this._getTextContent(e.label())];for(const i of(t=e.children)!==null&&t!==void 0?t:[]){n.push(this._getTextContent(i.label()))}return this._filterFn(n.join(" "))}_getTextContent(e){if(typeof e==="string"){return e}if(typeof e==="number"){return""+e}if(typeof e==="boolean"){return""+e}if(Array.isArray(e)){return e.map((e=>this._getTextContent(e))).join(" ")}if(e&&(0,w.isValidElement)(e)){return e.props.children.map((e=>this._getTextContent(e))).join(" ")}return""}_updateFilter(e){this._filterFn=e;this._filterChanged.emit()}}class V extends d.ReactWidget{constructor(e){super();this._options=e;this._update=new v.Signal(this);e.manager.runningChanged.connect(this._emitUpdate,this);if(e.filterProvider){e.filterProvider.filterChanged.connect(this._emitUpdate,this)}}get mode(){return this._mode}set mode(e){if(this._mode!==e){this._mode=e;this._update.emit()}}dispose(){v.Signal.clearData(this);super.dispose()}onBeforeShow(e){super.onBeforeShow(e);this._update.emit()}render(){const e=this._options;let t=true;return C().createElement(d.UseSignal,{signal:this._update},(()=>{var n;if(t){t=false}else{e.runningItems=e.manager.running({mode:this.mode})}const s=["jp-TreeView"];if(this.mode==="list"){s.push("jp-mod-flat")}return C().createElement("div",{className:j},C().createElement(i.TreeView,{className:s.join(" ")},C().createElement(H,{runningItems:e.runningItems,shutdownLabel:e.manager.shutdownLabel,shutdownItemIcon:e.manager.shutdownItemIcon,filter:(n=e.filterProvider)===null||n===void 0?void 0:n.filter,translator:e.translator,collapseToggled:e.collapseToggled})))}))}_emitUpdate(){if(!this.isVisible){return}this._update.emit()}}class U extends d.PanelWithToolbar{constructor(e){var t;super();this._buttons=null;this._listView=false;this._collapseToggled=new v.Signal(this);this._viewChanged=new v.Signal(this);this._listView=((t=e.viewMode)!==null&&t!==void 0?t:"tree")==="list";this._manager=e.manager;this._filterProvider=e.filterProvider;const n=e.translator||a.nullTranslator;this._trans=n.load("jupyterlab");this.addClass(k);this.title.label=e.manager.name;this._manager.runningChanged.connect(this._onListChanged,this);if(e.filterProvider){e.filterProvider.filterChanged.connect(this._onListChanged,this)}this._updateEmptyClass();const i=e.manager.running({mode:e.manager.supportsMultipleViews&&!this._listView?"tree":"list"});if(e.showToolbar!==false){this._initializeToolbar(i)}this._listWidget=new V({runningItems:i,collapseToggled:this._collapseToggled,...e});this._listWidget.mode=e.manager.supportsMultipleViews&&!this._listView?"tree":"list";this.addWidget(this._listWidget)}toggleListView(e){const t=typeof e!=="undefined"?e:!this._listView;this._listView=t;if(this._buttons){const e=this._buttons["switch-view"];e.pressed=t}this._collapseToggled.emit(false);if(this._manager.supportsMultipleViews===undefined){this.toggleClass(P,t)}this._updateButtons();this._listWidget.mode=this._manager.supportsMultipleViews&&!this._listView?"tree":"list";this._viewChanged.emit({mode:t?"list":"tree"})}dispose(){if(this.isDisposed){return}v.Signal.clearData(this);super.dispose()}get _shutdownAllLabel(){return this._manager.shutdownAllLabel||this._trans.__("Shut Down All")}_initializeToolbar(e){const t=e.length>0;const n=this._shutdownAllLabel;const i=`${n}?`;const s=()=>{var e;const t=(e=typeof this._manager.shutdownAllConfirmationText==="function"?this._manager.shutdownAllConfirmationText():this._manager.shutdownAllConfirmationText)!==null&&e!==void 0?e:`${n} ${this._manager.name}`;void(0,o.showDialog)({title:i,body:t,buttons:[o.Dialog.cancelButton(),o.Dialog.warnButton({label:n})]}).then((e=>{if(e.button.accept){this._manager.shutdownAll()}}))};const r=new d.ToolbarButton({label:n,className:`${D}${!t?" jp-mod-disabled":""}`,enabled:t,onClick:s.bind(this)});const a=new d.ToolbarButton({className:L,enabled:t,icon:d.tableRowsIcon,pressedIcon:d.treeViewIcon,onClick:()=>this.toggleListView(),tooltip:this._trans.__("Switch to List View"),pressedTooltip:this._trans.__("Switch to Tree View")});const l=new d.ToolbarButton({className:R,enabled:t,icon:d.collapseAllIcon,pressedIcon:d.expandAllIcon,onClick:()=>{const e=!l.pressed;this._collapseToggled.emit(e);l.pressed=e},tooltip:this._trans.__("Collapse All"),pressedTooltip:this._trans.__("Expand All")});this._buttons={"switch-view":a,"collapse-expand":l,"shutdown-all":r};this._updateButtons();this._manager.runningChanged.connect(this._updateButtons,this);if(this._manager.toolbarButtons){this._manager.toolbarButtons.forEach((e=>this.toolbar.addItem(e instanceof d.CommandToolbarButton?e.commandId:e.id,e)))}for(const o of["collapse-expand","switch-view","shutdown-all"]){this.toolbar.addItem(o,this._buttons[o])}this.toolbar.addClass("jp-RunningSessions-toolbar");this._toolbar.node.setAttribute("aria-label",this._trans.__("%1 toolbar",this.title.label))}_onListChanged(){this._updateButtons();this._updateEmptyClass()}_updateEmptyClass(){if(this._filterProvider){const e=this._manager.running({mode:this._manager.supportsMultipleViews&&!this._listView?"tree":"list"}).filter(this._filterProvider.filter);const t=e.length===0;if(t){this.node.classList.toggle("jp-mod-empty",true)}else{this.node.classList.toggle("jp-mod-empty",false)}}}get viewChanged(){return this._viewChanged}_updateButtons(){if(!this._buttons){return}let e=this._manager.running({mode:this._manager.supportsMultipleViews&&!this._listView?"tree":"list"});const t=e.length>0;const n=this._manager.supportsMultipleViews===undefined?e.filter((e=>e.children)).length!==0:this._manager.supportsMultipleViews;const i=n&&!this._buttons["switch-view"].pressed;this._buttons["switch-view"].node.style.display=n?"flex":"none";this._buttons["collapse-expand"].node.style.display=i?"flex":"none";this._buttons["collapse-expand"].enabled=t;this._buttons["switch-view"].enabled=t;this._buttons["shutdown-all"].enabled=t}}class q extends d.SidePanel{constructor(e,t,n){super();this.managers=e;this._stateDB=n!==null&&n!==void 0?n:null;this.translator=t!==null&&t!==void 0?t:a.nullTranslator;const i=this.translator.load("jupyterlab");this.addClass(x);this.toolbar.addItem("refresh",new d.ToolbarButton({tooltip:i.__("Refresh List"),icon:d.refreshIcon,onClick:()=>e.items().forEach((e=>e.refreshRunning()))}));e.items().forEach((t=>this.addSection(e,t)));e.added.connect(this.addSection,this)}dispose(){if(this.isDisposed){return}this.managers.added.disconnect(this.addSection,this);super.dispose()}async addSection(e,t){const n=new U({manager:t,translator:this.translator});this.addWidget(n);const i=await this._getState();const s=i.listViewSections;const o=t.name;if(s&&s.includes(o)){n.toggleListView(true)}n.viewChanged.connect((async(e,t)=>{await this._updateState(o,t.mode)}))}async _updateState(e,t){var n;const i=await this._getState();let s=(n=i.listViewSections)!==null&&n!==void 0?n:[];if(t==="list"&&!s.includes(e)){s.push(e)}else{s=s.filter((t=>t!==e))}const o={listViewSections:s};if(this._stateDB){await this._stateDB.save(N,o)}}async _getState(){var e;if(!this._stateDB){return{}}return(e=await this._stateDB.fetch(N))!==null&&e!==void 0?e:{}}}class $ extends U{constructor(e){super(e);const t=document.createElement("h3");t.className="jp-SearchableSessions-title";const n=t.appendChild(document.createElement("span"));n.className="jp-SearchableSessions-titleLabel";n.textContent=this.title.label;this.node.insertAdjacentElement("afterbegin",t)}}class K extends b.Widget{constructor(e){super();const t=e.load("jupyterlab");this.addClass("jp-SearchableSessions-emptyIndicator");this.node.textContent=t.__("No matches")}}class J extends b.Panel{constructor(e,t){super();this._activeIndex=0;this._translator=t!==null&&t!==void 0?t:a.nullTranslator;this.addClass(x);this.addClass(S);this._filterWidget=new W(this._translator);this.addWidget(this._filterWidget);this._list=new G(e,this._filterWidget,t);this.addWidget(this._list);this._filterWidget.filterChanged.connect((()=>{this._activeIndex=0;this._updateActive(0)}),this)}dispose(){if(this.isDisposed){return}v.Signal.clearData(this);super.dispose()}getValue(){const e=[...this.node.querySelectorAll("."+E)];const t=Math.min(Math.max(this._activeIndex,0),e.length-1);e[t].click()}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break}}onAfterAttach(e){this._forceFocusInput();this.node.addEventListener("keydown",this);setTimeout((()=>{this._updateActive(0)}),0)}onAfterDetach(e){this.node.removeEventListener("keydown",this)}_forceFocusInput(){var e;(e=this._filterWidget.renderPromise)===null||e===void 0?void 0:e.then((()=>{var e;const t=this._filterWidget.node.querySelector("jp-search");const n=(e=t===null||t===void 0?void 0:t.shadowRoot)===null||e===void 0?void 0:e.querySelector("input");if(!n){console.warn("Input element not found, cannot focus");return}n.focus()})).catch(console.warn)}_evtKeydown(e){if(e.key==="ArrowDown"||e.key==="ArrowUp"){const t=e.key==="ArrowDown"?+1:-1;const n=this._updateActive(t);if(n){e.preventDefault()}}}_updateActive(e){const t=[...this.node.querySelectorAll("."+I)].filter((e=>e.checkVisibility()));if(!t.length){return false}for(const s of t){if(s.classList.contains("jp-mod-active")){s.classList.toggle("jp-mod-active",false)}}const n=this._activeIndex;let i=null;if(n===-1){i=e===+1?0:t.length-1}else{i=Math.min(Math.max(n+e,0),t.length-1)}if(i!==null){t[i].classList.add("jp-mod-active");g.ElementExt.scrollIntoViewIfNeeded(this._list.node,t[i]);this._activeIndex=i;return true}return false}}class G extends b.Panel{constructor(e,t,n){super();this._managers=e;this._translator=n!==null&&n!==void 0?n:a.nullTranslator;this._filterWidget=t;this.addClass("jp-SearchableSessions-list");this._emptyIndicator=new K(this._translator);this.addWidget(this._emptyIndicator);e.items().forEach((t=>this.addSection(e,t)));e.added.connect(this.addSection,this)}dispose(){if(this.isDisposed){return}this._managers.added.disconnect(this.addSection,this);super.dispose()}addSection(e,t){const n=new $({manager:t,translator:this._translator,showToolbar:false,filterProvider:this._filterWidget,viewMode:"list"});n.toggleListView(true);this.addWidget(n);this.addWidget(this._emptyIndicator)}}},94780:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(18799);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},28560:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>y});var i=n(28548);var s=n.n(i);const o={id:"@jupyterlab/services-extension:config-section-manager",autoStart:true,provides:i.IConfigSectionManager,optional:[i.IServerSettings],description:"Provides the config section manager.",activate:(e,t)=>{const n=new i.ConfigSectionManager({serverSettings:t});i.ConfigSection._setConfigSectionManager(n);return n}};const r={id:"@jupyterlab/services-extension:connection-status",autoStart:true,provides:i.IConnectionStatus,description:"Provides the default connection status.",activate:()=>new i.ConnectionStatus};const a={id:"@jupyterlab/services-extension:contents-manager",description:"The default contents manager plugin.",autoStart:true,provides:i.IContentsManager,requires:[i.IDefaultDrive,i.IServerSettings],activate:(e,t,n)=>new i.ContentsManager({defaultDrive:t,serverSettings:n})};const l={id:"@jupyterlab/services-extension:default-drive",description:"The default drive for the contents manager.",autoStart:true,provides:i.IDefaultDrive,optional:[i.IServerSettings],activate:(e,t)=>new i.Drive({serverSettings:t!==null&&t!==void 0?t:undefined})};const d={id:"@jupyterlab/services-extension:event-manager",description:"The event manager plugin.",autoStart:true,provides:i.IEventManager,optional:[i.IServerSettings],activate:(e,t)=>new i.EventManager({serverSettings:t})};const c={id:"@jupyterlab/services-extension:kernel-manager",description:"The kernel manager plugin.",autoStart:true,provides:i.IKernelManager,optional:[i.IServerSettings],activate:(e,t)=>new i.KernelManager({serverSettings:t})};const h={id:"@jupyterlab/services-extension:kernel-spec-manager",description:"The kernel spec manager plugin.",autoStart:true,provides:i.IKernelSpecManager,optional:[i.IServerSettings],activate:(e,t)=>new i.KernelSpecManager({serverSettings:t})};const u={id:"@jupyterlab/services-extension:nbconvert-manager",description:"The nbconvert manager plugin.",autoStart:true,provides:i.INbConvertManager,optional:[i.IServerSettings],activate:(e,t)=>new i.NbConvertManager({serverSettings:t})};const p={id:"@jupyterlab/services-extension:session-manager",description:"The session manager plugin.",autoStart:true,provides:i.ISessionManager,requires:[i.IKernelManager],optional:[i.IServerSettings],activate:(e,t,n)=>new i.SessionManager({kernelManager:t,serverSettings:n})};const m={id:"@jupyterlab/services-extension:setting-manager",description:"The setting manager plugin.",autoStart:true,provides:i.ISettingManager,optional:[i.IServerSettings],activate:(e,t)=>new i.SettingManager({serverSettings:t})};const g={id:"@jupyterlab/services-extension:terminal-manager",description:"The terminal manager plugin.",autoStart:true,provides:i.ITerminalManager,optional:[i.IServerSettings],activate:(e,t)=>new i.TerminalManager({serverSettings:t})};const f={id:"@jupyterlab/services-extension:user-manager",description:"The user manager plugin.",autoStart:true,provides:i.IUserManager,optional:[i.IServerSettings],activate:(e,t)=>new i.UserManager({serverSettings:t})};const v={id:"@jupyterlab/services-extension:workspace-manager",description:"The workspace manager plugin.",autoStart:true,provides:i.IWorkspaceManager,optional:[i.IServerSettings],activate:(e,t)=>new i.WorkspaceManager({serverSettings:t})};const _={id:"@jupyterlab/services-extension:server-settings",description:"The default server settings plugin.",autoStart:true,provides:i.IServerSettings,activate:e=>i.ServerConnection.makeSettings()};const b={id:"@jupyterlab/services-extension:service-manager",description:"The default service manager plugin.",autoStart:true,provides:i.IServiceManager,optional:[i.IConnectionStatus,i.IContentsManager,i.IDefaultDrive,i.IServerSettings,i.IEventManager,i.IKernelManager,i.IKernelSpecManager,i.INbConvertManager,i.ISessionManager,i.ISettingManager,i.ITerminalManager,i.IUserManager,i.IWorkspaceManager],activate:(e,t,n,s,o,r,a,l,d,c,h,u,p,m)=>new i.ServiceManager({standby:()=>!(t===null||t===void 0?void 0:t.isConnected)||"when-hidden",contents:n,defaultDrive:s,serverSettings:o,events:r,kernels:a,kernelspecs:l,nbconvert:d,sessions:c,settings:h,terminals:u,user:p,workspaces:m})};const y=[o,r,a,l,d,c,h,u,p,m,_,b,g,f,v]},5412:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.BaseManager=void 0;const i=n(2336);const s=n(1089);class o{constructor(e){var t;this._isDisposed=false;this._disposed=new i.Signal(this);this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:s.ServerConnection.makeSettings()}get disposed(){return this._disposed}get isDisposed(){return this._isDisposed}get isActive(){return true}dispose(){if(this.isDisposed){return}this._isDisposed=true;this._disposed.emit(undefined);i.Signal.clearData(this)}}t.BaseManager=o},44816:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.BuildManager=void 0;const i=n(30397);const s=n(1089);const o="api/build";class r{constructor(e={}){var t;this._url="";this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:s.ServerConnection.makeSettings();const{baseUrl:n,appUrl:r}=this.serverSettings;this._url=i.URLExt.join(n,r,o)}get isAvailable(){return i.PageConfig.getOption("buildAvailable").toLowerCase()==="true"}get shouldCheck(){return i.PageConfig.getOption("buildCheck").toLowerCase()==="true"}getStatus(){const{_url:e,serverSettings:t}=this;const n=s.ServerConnection.makeRequest(e,{},t);return n.then((e=>{if(e.status!==200){throw new s.ServerConnection.ResponseError(e)}return e.json()})).then((e=>{if(typeof e.status!=="string"){throw new Error("Invalid data")}if(typeof e.message!=="string"){throw new Error("Invalid data")}return e}))}build(){const{_url:e,serverSettings:t}=this;const n={method:"POST"};const i=s.ServerConnection.makeRequest(e,n,t);return i.then((e=>{if(e.status===400){throw new s.ServerConnection.ResponseError(e,"Build aborted")}if(e.status!==200){const t=`Build failed with ${e.status}.\n\n If you are experiencing the build failure after installing an extension (or trying to include previously installed extension after updating JupyterLab) please check the extension repository for new installation instructions as many extensions migrated to the prebuilt extensions system which no longer requires rebuilding JupyterLab (but uses a different installation procedure, typically involving a package manager such as 'pip' or 'conda').\n\n If you specifically intended to install a source extension, please run 'jupyter lab build' on the server for full output.`;throw new s.ServerConnection.ResponseError(e,t)}}))}cancel(){const{_url:e,serverSettings:t}=this;const n={method:"DELETE"};const i=s.ServerConnection.makeRequest(e,n,t);return i.then((e=>{if(e.status!==204){throw new s.ServerConnection.ResponseError(e)}}))}}t.BuildManager=r},39851:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ConfigWithDefaults=t.ConfigSection=t.ConfigSectionManager=void 0;const i=n(30397);const s=n(50608);const o="api/config";class r{constructor(e){var t;this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:s.ServerConnection.makeSettings()}async create(e){const t=new l({...e,serverSettings:this.serverSettings});await t.load();return t}}t.ConfigSectionManager=r;var a;(function(e){async function t(e){if(!n){const t=new l(e);await t.load();return t}const t=await n.create(e);return t}e.create=t;let n;function i(e){if(n){throw new Error("ConfigSectionManager already set. If you would like to create a config section, use the `IConfigSectionManager` token in a plugin.")}n=e}e._setConfigSectionManager=i})(a||(t.ConfigSection=a={}));class l{constructor(e){var t;this._url="unknown";const n=this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:s.ServerConnection.makeSettings();this._url=i.URLExt.join(n.baseUrl,o,encodeURIComponent(e.name))}get data(){return this._data}async load(){const e=await s.ServerConnection.makeRequest(this._url,{},this.serverSettings);if(e.status!==200){const t=await s.ServerConnection.ResponseError.create(e);throw t}this._data=await e.json()}async update(e){this._data={...this._data,...e};const t={method:"PATCH",body:JSON.stringify(e)};const n=await s.ServerConnection.makeRequest(this._url,t,this.serverSettings);if(n.status!==200){const e=await s.ServerConnection.ResponseError.create(n);throw e}this._data=await n.json();return this._data}}class d{constructor(e){var t,n;this._className="";this._section=e.section;this._defaults=(t=e.defaults)!==null&&t!==void 0?t:{};this._className=(n=e.className)!==null&&n!==void 0?n:""}get(e){const t=this._classData();return e in t?t[e]:this._defaults[e]}set(e,t){const n={};n[e]=t;if(this._className){const e={};e[this._className]=n;return this._section.update(e)}else{return this._section.update(n)}}_classData(){const e=this._section.data;if(this._className&&this._className in e){return e[this._className]}return e}}t.ConfigWithDefaults=d},39923:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ConnectionStatus=void 0;class n{constructor(){this.isConnected=true}}t.ConnectionStatus=n},97375:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){if(i===undefined)i=n;var s=Object.getOwnPropertyDescriptor(t,n);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[n]}}}Object.defineProperty(e,i,s)}:function(e,t,n,i){if(i===undefined)i=n;e[i]=t[n]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.prototype.hasOwnProperty.call(e,n))i(t,e,n);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.RestContentProvider=t.Drive=t.ContentsManager=t.Contents=void 0;const r=n(30397);const a=n(90044);const l=n(2336);const d=n(50608);const c=o(n(77821));const h="api/contents";const u="files";var p;(function(e){function t(e){c.validateContentsModel(e)}e.validateContentsModel=t;function n(e){c.validateCheckpointModel(e)}e.validateCheckpointModel=n})(p||(t.Contents=p={}));class m{constructor(e={}){var t,n;this._isDisposed=false;this._additionalDrives=new Map;this._fileChanged=new l.Signal(this);const i=this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:d.ServerConnection.makeSettings();this._defaultDrive=(n=e.defaultDrive)!==null&&n!==void 0?n:new g({serverSettings:i});this._defaultDrive.fileChanged.connect(this._onFileChanged,this)}get defaultDrive(){return this._defaultDrive}get fileChanged(){return this._fileChanged}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;l.Signal.clearData(this)}addDrive(e){this._additionalDrives.set(e.name,e);e.fileChanged.connect(this._onFileChanged,this)}getSharedModelFactory(e,t){var n,i;const[s]=this._driveForPath(e);const o=(n=s.contentProviderRegistry)===null||n===void 0?void 0:n.getProvider(t===null||t===void 0?void 0:t.contentProviderId);if(o===null||o===void 0?void 0:o.sharedModelFactory){return o.sharedModelFactory}return(i=s.sharedModelFactory)!==null&&i!==void 0?i:null}localPath(e){const t=e.split("/");const n=t[0].split(":");if(n.length===1||!this._additionalDrives.has(n[0])){return r.PathExt.removeSlash(e)}return r.PathExt.join(n.slice(1).join(":"),...t.slice(1))}normalize(e){const t=e.split(":");if(t.length===1){return r.PathExt.normalize(e)}return`${t[0]}:${r.PathExt.normalize(t.slice(1).join(":"))}`}resolvePath(e,t){const n=this.driveName(e);const i=this.localPath(e);const s=r.PathExt.resolve("/",i,t);return n?`${n}:${s}`:s}driveName(e){const t=e.split("/");const n=t[0].split(":");if(n.length===1){return""}if(this._additionalDrives.has(n[0])){return n[0]}return""}get(e,t){const[n,i]=this._driveForPath(e);return n.get(i,t).then((e=>{const t=[];if(e.type==="directory"&&e.content){for(const i of e.content){t.push({...i,path:this._toGlobalPath(n,i.path)})}return{...e,path:this._toGlobalPath(n,i),content:t,serverPath:e.path}}else{return{...e,path:this._toGlobalPath(n,i),serverPath:e.path}}}))}getDownloadUrl(e){const[t,n]=this._driveForPath(e);return t.getDownloadUrl(n)}newUntitled(e={}){if(e.path){const t=this.normalize(e.path);const[n,i]=this._driveForPath(t);return n.newUntitled({...e,path:i}).then((e=>({...e,path:r.PathExt.join(t,e.name),serverPath:e.path})))}else{return this._defaultDrive.newUntitled(e)}}delete(e){const[t,n]=this._driveForPath(e);return t.delete(n)}rename(e,t){const[n,i]=this._driveForPath(e);const[s,o]=this._driveForPath(t);if(n!==s){throw Error("ContentsManager: renaming files must occur within a Drive")}return n.rename(i,o).then((e=>({...e,path:this._toGlobalPath(n,o),serverPath:e.path})))}save(e,t={}){const n=this.normalize(e);const[i,s]=this._driveForPath(e);return i.save(s,{...t,path:s}).then((e=>({...e,path:n,serverPath:e.path})))}copy(e,t){const[n,i]=this._driveForPath(e);const[s,o]=this._driveForPath(t);if(n===s){return n.copy(i,o).then((e=>({...e,path:this._toGlobalPath(n,e.path),serverPath:e.path})))}else{throw Error("Copying files between drives is not currently implemented")}}createCheckpoint(e){const[t,n]=this._driveForPath(e);return t.createCheckpoint(n)}listCheckpoints(e){const[t,n]=this._driveForPath(e);return t.listCheckpoints(n)}restoreCheckpoint(e,t){const[n,i]=this._driveForPath(e);return n.restoreCheckpoint(i,t)}deleteCheckpoint(e,t){const[n,i]=this._driveForPath(e);return n.deleteCheckpoint(i,t)}_toGlobalPath(e,t){if(e===this._defaultDrive){return r.PathExt.removeSlash(t)}else{return`${e.name}:${r.PathExt.removeSlash(t)}`}}_driveForPath(e){const t=this.driveName(e);const n=this.localPath(e);if(t){return[this._additionalDrives.get(t),n]}else{return[this._defaultDrive,n]}}_onFileChanged(e,t){var n,i;if(e===this._defaultDrive){this._fileChanged.emit(t)}else{let s=null;let o=null;if((n=t.newValue)===null||n===void 0?void 0:n.path){s={...t.newValue,path:this._toGlobalPath(e,t.newValue.path)}}if((i=t.oldValue)===null||i===void 0?void 0:i.path){o={...t.oldValue,path:this._toGlobalPath(e,t.oldValue.path)}}this._fileChanged.emit({type:t.type,newValue:s,oldValue:o})}}}t.ContentsManager=m;class g{constructor(e={}){var t,n,i;this._isDisposed=false;this._fileChanged=new l.Signal(this);this.name=(t=e.name)!==null&&t!==void 0?t:"Default";this._apiEndpoint=(n=e.apiEndpoint)!==null&&n!==void 0?n:h;this.serverSettings=(i=e.serverSettings)!==null&&i!==void 0?i:d.ServerConnection.makeSettings();const s=new _({apiEndpoint:this._apiEndpoint,serverSettings:this.serverSettings});this.contentProviderRegistry=new v({defaultProvider:s});this.contentProviderRegistry.fileChanged.connect(((e,t)=>{this._fileChanged.emit(t)}))}get fileChanged(){return this._fileChanged}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;l.Signal.clearData(this)}async get(e,t){const n=this.contentProviderRegistry.getProvider(t===null||t===void 0?void 0:t.contentProviderId);return n.get(e,t)}getDownloadUrl(e){const t=this.serverSettings.baseUrl;let n=r.URLExt.join(t,u,r.URLExt.encodeParts(e));let i="";try{i=document.cookie}catch(o){}const s=i.match("\\b_xsrf=([^;]*)\\b");if(s){const e=new URL(n);e.searchParams.append("_xsrf",s[1]);n=e.toString()}return Promise.resolve(n)}async newUntitled(e={}){var t;let n="{}";if(e){if(e.ext){e.ext=f.normalizeExtension(e.ext)}n=JSON.stringify(e)}const i=this.serverSettings;const s=this._getUrl((t=e.path)!==null&&t!==void 0?t:"");const o={method:"POST",body:n};const r=await d.ServerConnection.makeRequest(s,o,i);if(r.status!==201){const e=await d.ServerConnection.ResponseError.create(r);throw e}const a=await r.json();c.validateContentsModel(a);this._fileChanged.emit({type:"new",oldValue:null,newValue:a});return a}async delete(e){const t=this._getUrl(e);const n=this.serverSettings;const i={method:"DELETE"};const s=await d.ServerConnection.makeRequest(t,i,n);if(s.status!==204){const e=await d.ServerConnection.ResponseError.create(s);throw e}this._fileChanged.emit({type:"delete",oldValue:{path:e},newValue:null})}async rename(e,t){const n=this.serverSettings;const i=this._getUrl(e);const s={method:"PATCH",body:JSON.stringify({path:t})};const o=await d.ServerConnection.makeRequest(i,s,n);if(o.status!==200){const e=await d.ServerConnection.ResponseError.create(o);throw e}const r=await o.json();c.validateContentsModel(r);this._fileChanged.emit({type:"rename",oldValue:{path:e},newValue:r});return r}async save(e,t={}){const n=this.contentProviderRegistry.getProvider(t===null||t===void 0?void 0:t.contentProviderId);const i=await n.save(e,t);this._fileChanged.emit({type:"save",oldValue:null,newValue:i});return i}async copy(e,t){const n=this.serverSettings;const i=this._getUrl(t);const s={method:"POST",body:JSON.stringify({copy_from:e})};const o=await d.ServerConnection.makeRequest(i,s,n);if(o.status!==201){const e=await d.ServerConnection.ResponseError.create(o);throw e}const r=await o.json();c.validateContentsModel(r);this._fileChanged.emit({type:"new",oldValue:null,newValue:r});return r}async createCheckpoint(e){const t=this._getUrl(e,"checkpoints");const n={method:"POST"};const i=await d.ServerConnection.makeRequest(t,n,this.serverSettings);if(i.status!==201){const e=await d.ServerConnection.ResponseError.create(i);throw e}const s=await i.json();c.validateCheckpointModel(s);return s}async listCheckpoints(e){const t=this._getUrl(e,"checkpoints");const n=await d.ServerConnection.makeRequest(t,{},this.serverSettings);if(n.status!==200){const e=await d.ServerConnection.ResponseError.create(n);throw e}const i=await n.json();if(!Array.isArray(i)){throw new Error("Invalid Checkpoint list")}for(let s=0;sr.URLExt.encodeParts(e)));const n=this.serverSettings.baseUrl;return r.URLExt.join(n,this._apiEndpoint,...t)}}t.Drive=g;var f;(function(e){function t(e){if(e.length>0&&e.indexOf(".")!==0){e=`.${e}`}return e}e.normalizeExtension=t})(f||(f={}));class v{constructor(e){this._providers=new Map;this._fileChanged=new l.Signal(this);this.register("default",e.defaultProvider);this._defaultProvider=e.defaultProvider}register(e,t){if(this._providers.has(e)){throw Error(`Provider with ${e} identifier was already registered on this drive`)}this._providers.set(e,t);const n=(e,t)=>{this._fileChanged.emit(t)};if(t.fileChanged){t.fileChanged.connect(n)}return new a.DisposableDelegate((()=>{if(t.fileChanged){t.fileChanged.disconnect(n)}if(this._providers.has(e)){this._providers.delete(e)}}))}getProvider(e){if(!e){return this._defaultProvider}const t=this._providers.get(e);if(!t){throw Error(`Provider ${e} is not registered`)}return t}get fileChanged(){return this._fileChanged}}class _{constructor(e){this._options=e}async get(e,t){let n=this._getUrl(e);if(t){if(t.type==="notebook"){delete t["format"]}const e=t.content?"1":"0";const i=t.hash?"1":"0";const s={...t,content:e,hash:i};n+=r.URLExt.objectToQueryString(s)}const i=this._options.serverSettings;const s=await d.ServerConnection.makeRequest(n,{},i);if(s.status!==200){const e=await d.ServerConnection.ResponseError.create(s);throw e}const o=await s.json();c.validateContentsModel(o);return o}async save(e,t={}){const n=this._options.serverSettings;const i=this._getUrl(e);const s={method:"PUT",body:JSON.stringify(t)};const o=await d.ServerConnection.makeRequest(i,s,n);if(o.status!==200&&o.status!==201){const e=await d.ServerConnection.ResponseError.create(o);throw e}const r=await o.json();c.validateContentsModel(r);return r}_getUrl(...e){const t=e.map((e=>r.URLExt.encodeParts(e)));const n=this._options.serverSettings.baseUrl;return r.URLExt.join(n,this._options.apiEndpoint,...t)}}t.RestContentProvider=_},77821:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateContentsModel=s;t.validateCheckpointModel=o;const i=n(1480);function s(e){(0,i.validateProperty)(e,"name","string");(0,i.validateProperty)(e,"path","string");(0,i.validateProperty)(e,"type","string");(0,i.validateProperty)(e,"created","string");(0,i.validateProperty)(e,"last_modified","string");(0,i.validateProperty)(e,"mimetype","object");(0,i.validateProperty)(e,"content","object");(0,i.validateProperty)(e,"format","object")}function o(e){(0,i.validateProperty)(e,"id","string");(0,i.validateProperty)(e,"last_modified","string")}},1091:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EventManager=void 0;const i=n(30397);const s=n(26568);const o=n(2336);const r=n(1089);const a="api/events";class l{constructor(e={}){var t;this._socket=null;this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:r.ServerConnection.makeSettings();this._poll=new s.Poll({factory:()=>this._subscribe()});this._stream=new o.Stream(this);void this._poll.start()}get isDisposed(){return this._poll.isDisposed}get stream(){return this._stream}dispose(){if(this.isDisposed){return}this._poll.dispose();const e=this._socket;if(e){this._socket=null;e.onopen=()=>undefined;e.onerror=()=>undefined;e.onmessage=()=>undefined;e.onclose=()=>undefined;e.close()}o.Signal.clearData(this);this._stream.stop()}async emit(e){const{serverSettings:t}=this;const{baseUrl:n}=t;const{makeRequest:s,ResponseError:o}=r.ServerConnection;const l=i.URLExt.join(n,a);const d={body:JSON.stringify(e),method:"POST"};const c=await s(l,d,t);if(c.status!==204){throw new o(c)}}_subscribe(){return new Promise(((e,t)=>{if(this.isDisposed){return}const{appendToken:n,token:s,WebSocket:o,wsUrl:r}=this.serverSettings;let l=i.URLExt.join(r,a,"subscribe");if(n&&s!==""){l+=`?token=${encodeURIComponent(s)}`}const d=this._socket=new o(l);const c=this._stream;d.onclose=()=>t(new Error("EventManager socket closed"));d.onmessage=e=>e.data&&c.emit(JSON.parse(e.data))}))}}t.EventManager=l},50608:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){if(i===undefined)i=n;var s=Object.getOwnPropertyDescriptor(t,n);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[n]}}}Object.defineProperty(e,i,s)}:function(e,t,n,i){if(i===undefined)i=n;e[i]=t[n]});var s=this&&this.__exportStar||function(e,t){for(var n in e)if(n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n))i(t,e,n)};Object.defineProperty(t,"__esModule",{value:true});s(n(5412),t);s(n(39851),t);s(n(39923),t);s(n(97375),t);s(n(1091),t);s(n(14272),t);s(n(76807),t);s(n(90139),t);s(n(1089),t);s(n(86923),t);s(n(95399),t);s(n(67569),t);s(n(80856),t);s(n(18430),t);s(n(90362),t);s(n(93892),t)},52570:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){if(i===undefined)i=n;var s=Object.getOwnPropertyDescriptor(t,n);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[n]}}}Object.defineProperty(e,i,s)}:function(e,t,n,i){if(i===undefined)i=n;e[i]=t[n]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.prototype.hasOwnProperty.call(e,n))i(t,e,n);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.CommHandler=t.CommsOverSubshells=void 0;const r=n(5592);const a=n(90044);const l=o(n(59798));var d;(function(e){e["Disabled"]="disabled";e["PerComm"]="perComm";e["PerCommTarget"]="perCommTarget"})(d||(t.CommsOverSubshells=d={}));class c extends a.DisposableDelegate{constructor(e,t,n,i,s){super(i);this._subshellStarted=new r.PromiseDelegate;this._subshellId=null;this._target="";this._id="";this._id=t;this._target=e;this._kernel=n;this._kernel.statusChanged.connect((()=>{if(this._kernel.status==="restarting"){this._cleanSubshells()}}));this.commsOverSubshells=s!==null&&s!==void 0?s:d.PerCommTarget}get commId(){return this._id}get targetName(){return this._target}get subshellId(){return this._subshellId}get subshellStarted(){return this._subshellStarted.promise}get commsOverSubshells(){return this._commsOverSubshells}set commsOverSubshells(e){this._commsOverSubshells=e;if(this._commsOverSubshells===d.Disabled){this._maybeCloseSubshell()}else{void this._maybeStartSubshell()}}get onClose(){return this._onClose}set onClose(e){this._onClose=e}get onMsg(){return this._onMsg}set onMsg(e){this._onMsg=e}open(e,t,n=[]){if(this.isDisposed||this._kernel.isDisposed){throw new Error("Cannot open")}const i=l.createMessage({msgType:"comm_open",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,subshellId:this._subshellId||this._kernel.subshellId,content:{comm_id:this._id,target_name:this._target,data:e!==null&&e!==void 0?e:{}},metadata:t,buffers:n});return this._kernel.sendShellMessage(i,false,true)}send(e,t,n=[],i=true){if(this.isDisposed||this._kernel.isDisposed){throw new Error("Cannot send")}const s=l.createMessage({msgType:"comm_msg",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,subshellId:this._subshellId||this._kernel.subshellId,content:{comm_id:this._id,data:e},metadata:t,buffers:n});return this._kernel.sendShellMessage(s,false,i)}close(e,t,n=[]){if(this.isDisposed||this._kernel.isDisposed){throw new Error("Cannot close")}const i=l.createMessage({msgType:"comm_close",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,subshellId:this._subshellId||this._kernel.subshellId,content:{comm_id:this._id,data:e!==null&&e!==void 0?e:{}},metadata:t,buffers:n});const s=this._kernel.sendShellMessage(i,false,true);const o=this._onClose;if(o){const i=l.createMessage({msgType:"comm_close",channel:"iopub",username:this._kernel.username,session:this._kernel.clientId,subshellId:this._subshellId||this._kernel.subshellId,content:{comm_id:this._id,data:e!==null&&e!==void 0?e:{}},metadata:t,buffers:n});void o(i)}this.dispose();return s}dispose(){this._maybeCloseSubshell();super.dispose()}_cleanSubshells(){c._commTargetSubShellsId={}}async _maybeStartSubshell(){await this._kernel.info;if(!this._kernel.supportsSubshells){return}if(this._commsOverSubshells===d.PerComm){const e=await this._kernel.requestCreateSubshell({}).done;this._subshellId=e.content.subshell_id;this._subshellStarted.resolve();return}if(c._commTargetSubShellsId[this._target]){this._subshellId=await c._commTargetSubShellsId[this._target];this._subshellStarted.resolve()}else{c._commTargetSubShellsId[this._target]=this._kernel.requestCreateSubshell({}).done.then((e=>{this._subshellId=e.content.subshell_id;return this._subshellId}));await c._commTargetSubShellsId[this._target];this._subshellStarted.resolve()}}_maybeCloseSubshell(){if(this._commsOverSubshells!==d.PerComm){this._subshellId=null;return}if(this._subshellId&&this._kernel.status!=="dead"){this._kernel.requestDeleteSubshell({subshell_id:this._subshellId},true)}this._subshellId=null}}t.CommHandler=c;c._commTargetSubShellsId={}},45089:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){if(i===undefined)i=n;var s=Object.getOwnPropertyDescriptor(t,n);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[n]}}}Object.defineProperty(e,i,s)}:function(e,t,n,i){if(i===undefined)i=n;e[i]=t[n]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.prototype.hasOwnProperty.call(e,n))i(t,e,n);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.KernelConnection=void 0;const r=n(30397);const a=n(5592);const l=n(2336);const d=n(50608);const c=n(52570);const h=o(n(59798));const u=n(46073);const p=o(n(38872));const m=n(38662);const g=n(321);const f=3e3;const v="_RESTARTING_";const _="";class b{constructor(e){var t,n,i,s,o,c,u,f;this._createSocket=(e=true)=>{this._errorIfDisposed();this._clearSocket();this._updateConnectionStatus("connecting");const t=this.serverSettings;const n=r.URLExt.join(t.wsUrl,m.KERNEL_SERVICE_URL,encodeURIComponent(this._id));const i=n.replace(/^((?:\w+:)?\/\/)(?:[^@\/]+@)/,"$1");console.debug(`Starting WebSocket: ${i}`);let s=r.URLExt.join(n,"channels?session_id="+encodeURIComponent(this._clientId));const o=t.token;if(t.appendToken&&o!==""){s=s+`&token=${encodeURIComponent(o)}`}const a=e?this._supportedProtocols:[];this._ws=new t.WebSocket(s,a);this._ws.binaryType="arraybuffer";let l=false;const c=async e=>{var t,n;if(this._isDisposed){return}this._reason="";this._model=undefined;try{const t=await this._kernelAPIClient.getModel(this._id);this._model=t;if((t===null||t===void 0?void 0:t.execution_state)==="dead"){this._updateStatus("dead")}else{this._onWSClose(e)}}catch(i){if(i instanceof d.ServerConnection.NetworkError||((t=i.response)===null||t===void 0?void 0:t.status)===503||((n=i.response)===null||n===void 0?void 0:n.status)===424){const t=y.getRandomIntInclusive(10,30)*1e3;setTimeout(c,t,e)}else{this._reason="Kernel died unexpectedly";this._updateStatus("dead")}}return};const h=async e=>{if(l){return}l=true;await c(e);return};this._ws.onmessage=this._onWSMessage;this._ws.onopen=this._onWSOpen;this._ws.onclose=h;this._ws.onerror=h};this._onWSOpen=e=>{if(this._ws.protocol!==""&&!this._supportedProtocols.includes(this._ws.protocol)){console.log("Server selected unknown kernel wire protocol:",this._ws.protocol);this._updateStatus("dead");throw new Error(`Unknown kernel wire protocol: ${this._ws.protocol}`)}this._selectedProtocol=this._ws.protocol;this._ws.onclose=this._onWSClose;this._ws.onerror=this._onWSClose;this._updateConnectionStatus("connected")};this._onWSMessage=e=>{let t;try{t=this.serverSettings.serializer.deserialize(e.data,this._ws.protocol);p.validateMessage(t)}catch(n){n.message=`Kernel message validation error: ${n.message}`;throw n}this._kernelSession=t.header.session;this._msgChain=this._msgChain.then((()=>this._handleMessage(t))).catch((e=>{if(e.message.startsWith("Canceled future for ")){console.error(e)}}));this._anyMessage.emit({msg:t,direction:"recv"})};this._onWSClose=e=>{if(!this.isDisposed){this._reconnect()}};this._id="";this._name="";this._status="unknown";this._connectionStatus="connecting";this._kernelSession="";this._isDisposed=false;this._ws=null;this._username="";this._reconnectLimit=7;this._reconnectAttempt=0;this._reconnectTimeout=null;this._supportedProtocols=Object.values(h.supportedKernelWebSocketProtocols);this._selectedProtocol="";this._commsOverSubshells=d.CommsOverSubshells.PerCommTarget;this._futures=new Map;this._comms=new Map;this._targetRegistry=Object.create(null);this._info=new a.PromiseDelegate;this._pendingMessages=[];this._statusChanged=new l.Signal(this);this._connectionStatusChanged=new l.Signal(this);this._disposed=new l.Signal(this);this._iopubMessage=new l.Signal(this);this._anyMessage=new l.Signal(this);this._pendingInput=new l.Signal(this);this._unhandledMessage=new l.Signal(this);this._displayIdToParentIds=new Map;this._msgIdToDisplayIds=new Map;this._msgChain=Promise.resolve();this._hasPendingInput=false;this._reason="";this._noOp=()=>{};this._supportsSubshells=false;this._name=e.model.name;this._id=e.model.id;this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:d.ServerConnection.makeSettings();this._kernelAPIClient=(n=e.kernelAPIClient)!==null&&n!==void 0?n:new m.KernelAPIClient({serverSettings:this.serverSettings});this._kernelSpecAPIClient=(i=e.kernelSpecAPIClient)!==null&&i!==void 0?i:new g.KernelSpecAPIClient({serverSettings:this.serverSettings});this._clientId=(s=e.clientId)!==null&&s!==void 0?s:a.UUID.uuid4();this._username=(o=e.username)!==null&&o!==void 0?o:"";this.handleComms=(c=e.handleComms)!==null&&c!==void 0?c:true;this._commsOverSubshells=(u=e.commsOverSubshells)!==null&&u!==void 0?u:d.CommsOverSubshells.PerCommTarget;this._subshellId=(f=e.subshellId)!==null&&f!==void 0?f:null;this._createSocket()}get disposed(){return this._disposed}get commsOverSubshells(){return this._commsOverSubshells}set commsOverSubshells(e){this._commsOverSubshells=e;for(const[t,n]of this._comms){n.commsOverSubshells=e}}get statusChanged(){return this._statusChanged}get connectionStatusChanged(){return this._connectionStatusChanged}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get model(){return this._model||{id:this.id,name:this.name,reason:this._reason}}get anyMessage(){return this._anyMessage}get pendingInput(){return this._pendingInput}get id(){return this._id}get name(){return this._name}get username(){return this._username}get clientId(){return this._clientId}get subshellId(){return this._subshellId}set subshellId(e){this._subshellId=e}get status(){return this._status}get connectionStatus(){return this._connectionStatus}get isDisposed(){return this._isDisposed}get info(){return this._info.promise}get spec(){if(this._specPromise){return this._specPromise}this._specPromise=this._kernelSpecAPIClient.get().then((e=>e.kernelspecs[this._name]));return this._specPromise}get supportsSubshells(){return this._supportsSubshells}clone(e={}){return new b({model:this.model,username:this.username,serverSettings:this.serverSettings,handleComms:false,kernelAPIClient:this._kernelAPIClient,commsOverSubshells:d.CommsOverSubshells.Disabled,...e})}dispose(){if(this.isDisposed){return}const e=()=>{this._isDisposed=true;this._disposed.emit();this._updateConnectionStatus("disconnected");this._clearKernelState();this._pendingMessages=[];this._clearSocket();l.Signal.clearData(this)};if(this._subshellId!==null){const t=this.requestDeleteSubshell({subshell_id:this._subshellId},true);t.onReply=t=>{e()}}else{e()}}sendShellMessage(e,t=false,n=true){return this._sendKernelShellControl(u.KernelShellFutureHandler,e,t,n)}sendControlMessage(e,t=false,n=true){return this._sendKernelShellControl(u.KernelControlFutureHandler,e,t,n)}_sendKernelShellControl(e,t,n=false,i=true){this._sendMessage(t);this._anyMessage.emit({msg:t,direction:"send"});const s=new e((()=>{const e=t.header.msg_id;this._futures.delete(e);const n=this._msgIdToDisplayIds.get(e);if(!n){return}n.forEach((t=>{const n=this._displayIdToParentIds.get(t);if(n){const i=n.indexOf(e);if(i===-1){return}if(n.length===1){this._displayIdToParentIds.delete(t)}else{n.splice(i,1);this._displayIdToParentIds.set(t,n)}}}));this._msgIdToDisplayIds.delete(e)}),t,n,i,this);this._futures.set(t.header.msg_id,s);return s}_sendMessage(e,t=true){if(this.status==="dead"){throw new Error("Kernel is dead")}if((this._kernelSession===_||this._kernelSession===v)&&h.isInfoRequestMsg(e)){if(this.connectionStatus==="connected"){this._ws.send(this.serverSettings.serializer.serialize(e,this._ws.protocol));return}else{throw new Error("Could not send message: status is not connected")}}if(t&&this._pendingMessages.length>0){this._pendingMessages.push(e);return}if(this.connectionStatus==="connected"&&this._kernelSession!==v){this._ws.send(this.serverSettings.serializer.serialize(e,this._ws.protocol))}else if(t){this._pendingMessages.push(e)}else{throw new Error("Could not send message")}}async interrupt(){this.hasPendingInput=false;if(this.status==="dead"){throw new Error("Kernel is dead")}return this._kernelAPIClient.interrupt(this.id)}async restart(){if(this.status==="dead"){throw new Error("Kernel is dead")}this._updateStatus("restarting");this._clearKernelState();this._kernelSession=v;await this._kernelAPIClient.restart(this.id);await this.reconnect();this.hasPendingInput=false}reconnect(){this._errorIfDisposed();const e=new a.PromiseDelegate;const t=(n,i)=>{if(i==="connected"){e.resolve();this.connectionStatusChanged.disconnect(t,this)}else if(i==="disconnected"){e.reject(new Error("Kernel connection disconnected"));this.connectionStatusChanged.disconnect(t,this)}};this.connectionStatusChanged.connect(t,this);this._reconnectAttempt=0;this._reconnect();return e.promise}async shutdown(){if(this.status!=="dead"){await this._kernelAPIClient.shutdown(this.id)}this.handleShutdown()}handleShutdown(){this._updateStatus("dead");this.dispose()}async requestKernelInfo(){const e=h.createMessage({msgType:"kernel_info_request",channel:"shell",username:this._username,session:this._clientId,subshellId:this._subshellId,content:{}});let t;try{t=await y.handleShellMessage(this,e)}catch(i){if(this.isDisposed){return}else{throw i}}this._errorIfDisposed();if(!t){return}if(t.content.status===undefined){t.content.status="ok"}if(t.content.status!=="ok"){this._info.reject("Kernel info reply errored");return t}this._info.resolve(t.content);this._kernelSession=t.header.session;const n=t.content.supported_features;this._supportsSubshells=n!==undefined&&n.includes("kernel subshells");return t}requestComplete(e){const t=h.createMessage({msgType:"complete_request",channel:"shell",username:this._username,session:this._clientId,subshellId:this._subshellId,content:e});return y.handleShellMessage(this,t)}requestInspect(e){const t=h.createMessage({msgType:"inspect_request",channel:"shell",username:this._username,session:this._clientId,subshellId:this._subshellId,content:e});return y.handleShellMessage(this,t)}requestHistory(e){const t=h.createMessage({msgType:"history_request",channel:"shell",username:this._username,session:this._clientId,subshellId:this._subshellId,content:e});return y.handleShellMessage(this,t)}requestExecute(e,t=true,n){const i={silent:false,store_history:true,user_expressions:{},allow_stdin:true,stop_on_error:false};const s=h.createMessage({msgType:"execute_request",channel:"shell",username:this._username,session:this._clientId,subshellId:this._subshellId,content:{...i,...e},metadata:n});return this.sendShellMessage(s,true,t)}requestDebug(e,t=true){const n=h.createMessage({msgType:"debug_request",channel:"control",username:this._username,session:this._clientId,content:e});return this.sendControlMessage(n,true,t)}requestCreateSubshell(e,t=true){if(!this.supportsSubshells){throw new Error("Kernel subshells are not supported")}const n=h.createMessage({msgType:"create_subshell_request",channel:"control",username:this._username,session:this._clientId,content:e});return this.sendControlMessage(n,true,t)}requestDeleteSubshell(e,t=true){if(!this.supportsSubshells){throw new Error("Kernel subshells are not supported")}const n=h.createMessage({msgType:"delete_subshell_request",channel:"control",username:this._username,session:this._clientId,content:e});return this.sendControlMessage(n,true,t)}requestListSubshell(e,t=true){if(!this.supportsSubshells){throw new Error("Kernel subshells are not supported")}const n=h.createMessage({msgType:"list_subshell_request",channel:"control",username:this._username,session:this._clientId,content:e});return this.sendControlMessage(n,true,t)}requestIsComplete(e){const t=h.createMessage({msgType:"is_complete_request",channel:"shell",username:this._username,session:this._clientId,subshellId:this._subshellId,content:e});return y.handleShellMessage(this,t)}requestCommInfo(e){const t=h.createMessage({msgType:"comm_info_request",channel:"shell",username:this._username,session:this._clientId,subshellId:this._subshellId,content:e});return y.handleShellMessage(this,t)}sendInputReply(e,t){const n=h.createMessage({msgType:"input_reply",channel:"stdin",username:this._username,session:this._clientId,content:e});n.parent_header=t;this._sendMessage(n);this._anyMessage.emit({msg:n,direction:"send"});this.hasPendingInput=false}createComm(e,t=a.UUID.uuid4()){if(!this.handleComms){throw new Error("Comms are disabled on this kernel connection")}if(this._comms.has(t)){throw new Error("Comm is already created")}const n=new c.CommHandler(e,t,this,(()=>{this._unregisterComm(t)}),this._commsOverSubshells);this._comms.set(t,n);return n}hasComm(e){return this._comms.has(e)}registerCommTarget(e,t){if(!this.handleComms){return}this._targetRegistry[e]=t}removeCommTarget(e,t){if(!this.handleComms){return}if(!this.isDisposed&&this._targetRegistry[e]===t){delete this._targetRegistry[e]}}registerMessageHook(e,t){var n;const i=(n=this._futures)===null||n===void 0?void 0:n.get(e);if(i){i.registerMessageHook(t)}}removeMessageHook(e,t){var n;const i=(n=this._futures)===null||n===void 0?void 0:n.get(e);if(i){i.removeMessageHook(t)}}removeInputGuard(){this.hasPendingInput=false}async _handleDisplayId(e,t){var n,i;const s=t.parent_header.msg_id;let o=this._displayIdToParentIds.get(e);if(o){const e={header:a.JSONExt.deepCopy(t.header),parent_header:a.JSONExt.deepCopy(t.parent_header),metadata:a.JSONExt.deepCopy(t.metadata),content:a.JSONExt.deepCopy(t.content),channel:t.channel,buffers:t.buffers?t.buffers.slice():[]};e.header.msg_type="update_display_data";await Promise.all(o.map((async t=>{const n=this._futures&&this._futures.get(t);if(n){await n.handleMsg(e)}})))}if(t.header.msg_type==="update_display_data"){return true}o=(n=this._displayIdToParentIds.get(e))!==null&&n!==void 0?n:[];if(o.indexOf(s)===-1){o.push(s)}this._displayIdToParentIds.set(e,o);const r=(i=this._msgIdToDisplayIds.get(s))!==null&&i!==void 0?i:[];if(r.indexOf(s)===-1){r.push(s)}this._msgIdToDisplayIds.set(s,r);return false}_clearSocket(){if(this._ws!==null){this._ws.onopen=this._noOp;this._ws.onclose=this._noOp;this._ws.onerror=this._noOp;this._ws.onmessage=this._noOp;this._ws.close();this._ws=null}}_updateStatus(e){if(this._status===e||this._status==="dead"){return}this._status=e;y.logKernelStatus(this);this._statusChanged.emit(e);if(e==="dead"){this.dispose()}}_sendPending(){while(this.connectionStatus==="connected"&&this._kernelSession!==v&&this._pendingMessages.length>0){this._sendMessage(this._pendingMessages[0],false);this._pendingMessages.shift()}}_clearKernelState(){this._kernelSession="";this._pendingMessages=[];this._futures.forEach((e=>{e.dispose()}));this._comms.forEach((e=>{e.dispose()}));this._msgChain=Promise.resolve();this._futures=new Map;this._comms=new Map;this._displayIdToParentIds.clear();this._msgIdToDisplayIds.clear()}_assertCurrentMessage(e){this._errorIfDisposed();if(e.header.session!==this._kernelSession){throw new Error(`Canceling handling of old message: ${e.header.msg_type}`)}}async _handleCommOpen(e){this._assertCurrentMessage(e);const t=e.content;const n=new c.CommHandler(t.target_name,t.comm_id,this,(()=>{this._unregisterComm(t.comm_id)}),this.commsOverSubshells);this._comms.set(t.comm_id,n);try{const i=await y.loadObject(t.target_name,t.target_module,this._targetRegistry);await i(n,e)}catch(i){n.close();console.error("Exception opening new comm");throw i}}async _handleCommClose(e){this._assertCurrentMessage(e);const t=e.content;const n=this._comms.get(t.comm_id);if(!n){console.error("Comm not found for comm id "+t.comm_id);return}this._unregisterComm(n.commId);const i=n.onClose;if(i){await i(e)}n.dispose()}async _handleCommMsg(e){this._assertCurrentMessage(e);const t=e.content;const n=this._comms.get(t.comm_id);if(!n){return}const i=n.onMsg;if(i){await i(e)}}_unregisterComm(e){this._comms.delete(e)}_updateConnectionStatus(e){if(this._connectionStatus===e){return}this._connectionStatus=e;if(e!=="connecting"){this._reconnectAttempt=0;clearTimeout(this._reconnectTimeout)}if(this.status!=="dead"){if(e==="connected"){let e=this._kernelSession===v;let t=this.requestKernelInfo();let n=false;let i=()=>{if(n){return}n=true;if(e&&this._kernelSession===v){this._kernelSession=""}clearTimeout(s);if(this._pendingMessages.length>0){this._sendPending()}};void t.then(i);let s=setTimeout(i,f)}else{this._updateStatus("unknown")}}this._connectionStatusChanged.emit(e)}async _handleMessage(e){var t,n;let i=false;if(e.parent_header&&e.channel==="iopub"&&(h.isDisplayDataMsg(e)||h.isUpdateDisplayDataMsg(e)||h.isExecuteResultMsg(e))){const n=(t=e.content.transient)!==null&&t!==void 0?t:{};const s=n["display_id"];if(s){i=await this._handleDisplayId(s,e);this._assertCurrentMessage(e)}}if(!i&&e.parent_header){const t=e.parent_header;const i=(n=this._futures)===null||n===void 0?void 0:n.get(t.msg_id);if(i){await i.handleMsg(e);this._assertCurrentMessage(e)}else{const n=t.session===this.clientId;if(e.channel!=="iopub"&&n){this._unhandledMessage.emit(e)}}}if(e.channel==="iopub"){switch(e.header.msg_type){case"status":{const t=e.content.execution_state;if(t==="restarting"){void Promise.resolve().then((async()=>{this._updateStatus("autorestarting");this._clearKernelState();await this.reconnect()}))}this._updateStatus(t);break}case"comm_open":if(this.handleComms){await this._handleCommOpen(e)}break;case"comm_msg":if(this.handleComms){await this._handleCommMsg(e)}break;case"comm_close":if(this.handleComms){await this._handleCommClose(e)}break;default:break}if(!this.isDisposed){this._assertCurrentMessage(e);this._iopubMessage.emit(e)}}}_reconnect(){this._errorIfDisposed();clearTimeout(this._reconnectTimeout);if(this._reconnectAttempt{if(t){if(typeof requirejs==="undefined"){throw new Error("requirejs not found")}requirejs([t],(n=>{if(n[e]===void 0){const n=`Object '${e}' not found in module '${t}'`;s(new Error(n))}else{i(n[e])}}),s)}else{if(n===null||n===void 0?void 0:n[e]){i(n[e])}else{s(new Error(`Object '${e}' not found in registry`))}}}))}e.loadObject=i;function s(e,t){e=Math.ceil(e);t=Math.floor(t);return Math.floor(Math.random()*(t-e+1))+e}e.getRandomIntInclusive=s})(y||(y={}))},46073:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){if(i===undefined)i=n;var s=Object.getOwnPropertyDescriptor(t,n);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[n]}}}Object.defineProperty(e,i,s)}:function(e,t,n,i){if(i===undefined)i=n;e[i]=t[n]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.prototype.hasOwnProperty.call(e,n))i(t,e,n);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.KernelShellFutureHandler=t.KernelControlFutureHandler=t.KernelFutureHandler=void 0;const r=n(5592);const a=n(90044);const l=o(n(59798));class d extends a.DisposableDelegate{constructor(e,t,n,i,s){super(e);this._status=0;this._stdin=u.noOp;this._iopub=u.noOp;this._reply=u.noOp;this._done=new r.PromiseDelegate;this._hooks=new u.HookList;this._disposeOnDone=true;this._msg=t;if(!n){this._setFlag(u.KernelFutureFlag.GotReply)}this._disposeOnDone=i;this._kernel=s}get msg(){return this._msg}get done(){return this._done.promise}get onReply(){return this._reply}set onReply(e){this._reply=e}get onIOPub(){return this._iopub}set onIOPub(e){this._iopub=e}get onStdin(){return this._stdin}set onStdin(e){this._stdin=e}registerMessageHook(e){if(this.isDisposed){throw new Error("Kernel future is disposed")}this._hooks.add(e)}removeMessageHook(e){if(this.isDisposed){return}this._hooks.remove(e)}sendInputReply(e,t){this._kernel.sendInputReply(e,t)}dispose(){this._stdin=u.noOp;this._iopub=u.noOp;this._reply=u.noOp;this._hooks=null;if(!this._testFlag(u.KernelFutureFlag.IsDone)){this._done.promise.catch((()=>{}));this._done.reject(new Error(`Canceled future for ${this.msg.header.msg_type} message before replies were done`))}super.dispose()}async handleMsg(e){switch(e.channel){case"control":case"shell":if(e.channel===this.msg.channel&&e.parent_header.msg_id===this.msg.header.msg_id){await this._handleReply(e)}break;case"stdin":await this._handleStdin(e);break;case"iopub":await this._handleIOPub(e);break;default:break}}async _handleReply(e){const t=this._reply;if(t){await t(e)}this._replyMsg=e;this._setFlag(u.KernelFutureFlag.GotReply);if(this._testFlag(u.KernelFutureFlag.GotIdle)){this._handleDone()}}async _handleStdin(e){this._kernel.hasPendingInput=true;const t=this._stdin;if(t){await t(e)}}async _handleIOPub(e){const t=await this._hooks.process(e);const n=this._iopub;if(t&&n){await n(e)}if(l.isStatusMsg(e)&&e.content.execution_state==="idle"){this._setFlag(u.KernelFutureFlag.GotIdle);if(this._testFlag(u.KernelFutureFlag.GotReply)){this._handleDone()}}}_handleDone(){if(this._testFlag(u.KernelFutureFlag.IsDone)){return}this._setFlag(u.KernelFutureFlag.IsDone);this._done.resolve(this._replyMsg);if(this._disposeOnDone){this.dispose()}}_testFlag(e){return(this._status&e)!==0}_setFlag(e){this._status|=e}}t.KernelFutureHandler=d;class c extends d{}t.KernelControlFutureHandler=c;class h extends d{}t.KernelShellFutureHandler=h;var u;(function(e){e.noOp=()=>{};const t=(()=>{const e=typeof requestAnimationFrame==="function";return e?requestAnimationFrame:setImmediate})();class n{constructor(){this._hooks=[]}add(e){this.remove(e);this._hooks.push(e)}remove(e){const t=this._hooks.indexOf(e);if(t>=0){this._hooks[t]=null;this._scheduleCompact()}}async process(e){await this._processing;const t=new r.PromiseDelegate;this._processing=t.promise;let n;for(let s=this._hooks.length-1;s>=0;s--){const o=this._hooks[s];if(o===null){continue}try{n=await o(e)}catch(i){n=true;console.error(i)}if(n===false){t.resolve(undefined);return false}}t.resolve(undefined);return true}_scheduleCompact(){if(!this._compactScheduled){this._compactScheduled=true;t((()=>{this._processing=this._processing.then((()=>{this._compactScheduled=false;this._compact()}))}))}}_compact(){let e=0;for(let t=0,n=this._hooks.length;t{"use strict";Object.defineProperty(t,"__esModule",{value:true})},47275:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.KernelManager=void 0;const i=n(26568);const s=n(2336);const o=n(50608);const r=n(5412);const a=n(38662);const l=n(45089);const d=n(321);class c extends r.BaseManager{constructor(e={}){var t,n,r;super(e);this._commsOverSubshells=o.CommsOverSubshells.PerCommTarget;this._isReady=false;this._kernelConnections=new Set;this._models=new Map;this._runningChanged=new s.Signal(this);this._connectionFailure=new s.Signal(this);this._kernelAPIClient=(t=e.kernelAPIClient)!==null&&t!==void 0?t:new a.KernelAPIClient({serverSettings:this.serverSettings});this._kernelSpecAPIClient=(n=e.kernelSpecAPIClient)!==null&&n!==void 0?n:new d.KernelSpecAPIClient({serverSettings:this.serverSettings});this._pollModels=new i.Poll({auto:false,factory:()=>this.requestRunning(),frequency:{interval:10*1e3,backoff:true,max:300*1e3},name:`@jupyterlab/services:KernelManager#models`,standby:(r=e.standby)!==null&&r!==void 0?r:"when-hidden"});this._ready=(async()=>{await this._pollModels.start();await this._pollModels.tick;this._isReady=true})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){if(this.isDisposed){return}this._models.clear();this._kernelConnections.forEach((e=>e.dispose()));this._pollModels.dispose();super.dispose()}connectTo(e){var t;const{id:n}=e.model;let i=(t=e.handleComms)!==null&&t!==void 0?t:true;if(e.handleComms===undefined){for(const e of this._kernelConnections){if(e.id===n&&e.handleComms){i=false;break}}}e.commsOverSubshells=this._commsOverSubshells;const s=new l.KernelConnection({handleComms:i,...e,serverSettings:this.serverSettings,kernelAPIClient:this._kernelAPIClient,kernelSpecAPIClient:this._kernelSpecAPIClient});this._onStarted(s);if(!this._models.has(n)){void this.refreshRunning().catch((()=>{}))}return s}running(){return this._models.values()}get runningCount(){return this._models.size}get commsOverSubshells(){return this._commsOverSubshells}set commsOverSubshells(e){this._commsOverSubshells=e;for(const t of this._kernelConnections){t.commsOverSubshells=e}}async refreshRunning(){await this._pollModels.refresh();await this._pollModels.tick}async startNew(e={},t={}){const n=await this._kernelAPIClient.startNew(e);return this.connectTo({...t,model:n})}async shutdown(e){await this._kernelAPIClient.shutdown(e);await this.refreshRunning()}async shutdownAll(){await this.refreshRunning();await Promise.all([...this._models.keys()].map((e=>this._kernelAPIClient.shutdown(e))));await this.refreshRunning()}async findById(e){if(this._models.has(e)){return this._models.get(e)}await this.refreshRunning();return this._models.get(e)}async requestRunning(){var e,t;let n;try{n=await this._kernelAPIClient.listRunning()}catch(i){if(i instanceof o.ServerConnection.NetworkError||((e=i.response)===null||e===void 0?void 0:e.status)===503||((t=i.response)===null||t===void 0?void 0:t.status)===424){this._connectionFailure.emit(i)}throw i}if(this.isDisposed){return}if(this._models.size===n.length&&n.every((e=>{const t=this._models.get(e.id);if(!t){return false}return t.connections===e.connections&&t.execution_state===e.execution_state&&t.last_activity===e.last_activity&&t.name===e.name&&t.reason===e.reason&&t.traceback===e.traceback}))){return}this._models=new Map(n.map((e=>[e.id,e])));this._kernelConnections.forEach((e=>{if(!this._models.has(e.id)){e.handleShutdown()}}));this._runningChanged.emit(n)}_onStarted(e){this._kernelConnections.add(e);e.statusChanged.connect(this._onStatusChanged,this);e.disposed.connect(this._onDisposed,this)}_onDisposed(e){this._kernelConnections.delete(e);void this.refreshRunning().catch((()=>{}))}_onStatusChanged(e,t){if(t==="dead"){void this.refreshRunning().catch((()=>{}))}}}t.KernelManager=c;(function(e){class t extends e{constructor(){super(...arguments);this._readyPromise=new Promise((()=>{}))}get isActive(){return false}get parentReady(){return super.ready}async startNew(e={},t={}){return Promise.reject(new Error("Not implemented in no-op Kernel Manager"))}connectTo(e){throw new Error("Not implemented in no-op Kernel Manager")}async shutdown(e){return Promise.reject(new Error("Not implemented in no-op Kernel Manager"))}get ready(){return this.parentReady.then((()=>this._readyPromise))}async requestRunning(){return Promise.resolve()}}e.NoopManager=t})(c||(t.KernelManager=c={}))},59798:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.supportedKernelWebSocketProtocols=void 0;t.createMessage=s;t.isStreamMsg=o;t.isDisplayDataMsg=r;t.isUpdateDisplayDataMsg=a;t.isExecuteInputMsg=l;t.isExecuteResultMsg=d;t.isErrorMsg=c;t.isStatusMsg=h;t.isClearOutputMsg=u;t.isDebugEventMsg=p;t.isCommOpenMsg=m;t.isCommCloseMsg=g;t.isCommMsgMsg=f;t.isInfoRequestMsg=v;t.isExecuteReplyMsg=_;t.isDebugRequestMsg=b;t.isDebugReplyMsg=y;t.isInputRequestMsg=w;t.isInputReplyMsg=C;const i=n(5592);function s(e){var t,n,s,o,r,a;return{buffers:(t=e.buffers)!==null&&t!==void 0?t:[],channel:e.channel,content:e.content,header:{date:(new Date).toISOString(),msg_id:(n=e.msgId)!==null&&n!==void 0?n:i.UUID.uuid4(),msg_type:e.msgType,session:e.session,username:(s=e.username)!==null&&s!==void 0?s:"",subshell_id:(o=e.subshellId)!==null&&o!==void 0?o:null,version:"5.2"},metadata:(r=e.metadata)!==null&&r!==void 0?r:{},parent_header:(a=e.parentHeader)!==null&&a!==void 0?a:{}}}function o(e){return e.header.msg_type==="stream"}function r(e){return e.header.msg_type==="display_data"}function a(e){return e.header.msg_type==="update_display_data"}function l(e){return e.header.msg_type==="execute_input"}function d(e){return e.header.msg_type==="execute_result"}function c(e){return e.header.msg_type==="error"}function h(e){return e.header.msg_type==="status"}function u(e){return e.header.msg_type==="clear_output"}function p(e){return e.header.msg_type==="debug_event"}function m(e){return e.header.msg_type==="comm_open"}function g(e){return e.header.msg_type==="comm_close"}function f(e){return e.header.msg_type==="comm_msg"}function v(e){return e.header.msg_type==="kernel_info_request"}function _(e){return e.header.msg_type==="execute_reply"}function b(e){return e.header.msg_type==="debug_request"}function y(e){return e.header.msg_type==="debug_reply"}function w(e){return e.header.msg_type==="input_request"}function C(e){return e.header.msg_type==="input_reply"}var x;(function(e){e["v1KernelWebsocketJupyterOrg"]="v1.kernel.websocket.jupyter.org"})(x||(t.supportedKernelWebSocketProtocols=x={}))},38662:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.KernelAPIClient=t.KERNEL_SERVICE_URL=void 0;t.listRunning=r;t.startNew=a;t.restartKernel=l;t.interruptKernel=d;t.shutdownKernel=c;t.getKernelModel=h;const i=n(1089);const s=n(30397);const o=n(38872);t.KERNEL_SERVICE_URL="api/kernels";async function r(e=i.ServerConnection.makeSettings()){const n=s.URLExt.join(e.baseUrl,t.KERNEL_SERVICE_URL);const r=await i.ServerConnection.makeRequest(n,{},e);if(r.status!==200){const e=await i.ServerConnection.ResponseError.create(r);throw e}const a=await r.json();(0,o.validateModels)(a);return a}async function a(e={},n=i.ServerConnection.makeSettings()){const r=s.URLExt.join(n.baseUrl,t.KERNEL_SERVICE_URL);const a={method:"POST",body:JSON.stringify(e)};const l=await i.ServerConnection.makeRequest(r,a,n);if(l.status!==201){const e=await i.ServerConnection.ResponseError.create(l);throw e}const d=await l.json();(0,o.validateModel)(d);return d}async function l(e,n=i.ServerConnection.makeSettings()){const r=s.URLExt.join(n.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e),"restart");const a={method:"POST"};const l=await i.ServerConnection.makeRequest(r,a,n);if(l.status!==200){const e=await i.ServerConnection.ResponseError.create(l);throw e}const d=await l.json();(0,o.validateModel)(d)}async function d(e,n=i.ServerConnection.makeSettings()){const o=s.URLExt.join(n.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e),"interrupt");const r={method:"POST"};const a=await i.ServerConnection.makeRequest(o,r,n);if(a.status!==204){const e=await i.ServerConnection.ResponseError.create(a);throw e}}async function c(e,n=i.ServerConnection.makeSettings()){const o=s.URLExt.join(n.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e));const r={method:"DELETE"};const a=await i.ServerConnection.makeRequest(o,r,n);if(a.status===404){const t=`The kernel "${e}" does not exist on the server`;console.warn(t)}else if(a.status!==204){const e=await i.ServerConnection.ResponseError.create(a);throw e}}async function h(e,n=i.ServerConnection.makeSettings()){const r=s.URLExt.join(n.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e));const a=await i.ServerConnection.makeRequest(r,{},n);if(a.status===404){return undefined}else if(a.status!==200){const e=await i.ServerConnection.ResponseError.create(a);throw e}const l=await a.json();(0,o.validateModel)(l);return l}class u{constructor(e={}){var t;this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:i.ServerConnection.makeSettings()}async listRunning(){return r(this.serverSettings)}async getModel(e){return h(e,this.serverSettings)}async startNew(e={}){return a(e,this.serverSettings)}async restart(e){return l(e,this.serverSettings)}async interrupt(e){return d(e,this.serverSettings)}async shutdown(e){return c(e,this.serverSettings)}}t.KernelAPIClient=u},93962:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){if(i===undefined)i=n;var s=Object.getOwnPropertyDescriptor(t,n);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[n]}}}Object.defineProperty(e,i,s)}:function(e,t,n,i){if(i===undefined)i=n;e[i]=t[n]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.prototype.hasOwnProperty.call(e,n))i(t,e,n);s(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.serialize=a;t.deserialize=l;const r=o(n(59798));function a(e,t=""){switch(t){case r.supportedKernelWebSocketProtocols.v1KernelWebsocketJupyterOrg:return d.serializeV1KernelWebsocketJupyterOrg(e);default:return d.serializeDefault(e)}}function l(e,t=""){switch(t){case r.supportedKernelWebSocketProtocols.v1KernelWebsocketJupyterOrg:return d.deserializeV1KernelWebsocketJupyterOrg(e);default:return d.deserializeDefault(e)}}var d;(function(e){function t(e){let t;const n=new DataView(e);const i=Number(n.getBigUint64(0,true));let s=[];for(let u=0;u{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateMessage=a;t.validateModel=d;t.validateModels=c;const i=n(1480);const s=["username","version","session","msg_id","msg_type"];const o={stream:{name:"string",text:"string"},display_data:{data:"object",metadata:"object"},execute_input:{code:"string",execution_count:"number"},execute_result:{execution_count:"number",data:"object",metadata:"object"},error:{ename:"string",evalue:"string",traceback:"object"},status:{execution_state:["string",["starting","idle","busy","restarting","dead"]]},clear_output:{wait:"boolean"},comm_open:{comm_id:"string",target_name:"string",data:"object"},comm_msg:{comm_id:"string",data:"object"},comm_close:{comm_id:"string"},shutdown_reply:{restart:"boolean"}};function r(e){for(let t=0;td(e)))}},76807:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){if(i===undefined)i=n;var s=Object.getOwnPropertyDescriptor(t,n);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[n]}}}Object.defineProperty(e,i,s)}:function(e,t,n,i){if(i===undefined)i=n;e[i]=t[n]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.prototype.hasOwnProperty.call(e,n))i(t,e,n);s(t,e);return t};var r=this&&this.__exportStar||function(e,t){for(var n in e)if(n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n))i(t,e,n)};Object.defineProperty(t,"__esModule",{value:true});t.KernelSpecAPI=t.KernelSpec=void 0;const a=o(n(51229));t.KernelSpec=a;const l=o(n(321));t.KernelSpecAPI=l;r(n(26224),t)},51229:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true})},26224:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.KernelSpecManager=void 0;const i=n(5592);const s=n(26568);const o=n(2336);const r=n(5412);const a=n(321);class l extends r.BaseManager{constructor(e={}){var t,n;super(e);this._isReady=false;this._connectionFailure=new o.Signal(this);this._specs=null;this._specsChanged=new o.Signal(this);this._kernelSpecAPIClient=(t=e.kernelSpecAPIClient)!==null&&t!==void 0?t:new a.KernelSpecAPIClient({serverSettings:this.serverSettings});this._ready=Promise.all([this.requestSpecs()]).then((e=>undefined)).catch((e=>undefined)).then((()=>{if(this.isDisposed){return}this._isReady=true}));this._pollSpecs=new s.Poll({auto:false,factory:()=>this.requestSpecs(),frequency:{interval:61*1e3,backoff:true,max:300*1e3},name:`@jupyterlab/services:KernelSpecManager#specs`,standby:(n=e.standby)!==null&&n!==void 0?n:"when-hidden"});void this.ready.then((()=>{void this._pollSpecs.start()}))}get isReady(){return this._isReady}get ready(){return this._ready}get specs(){return this._specs}get specsChanged(){return this._specsChanged}get connectionFailure(){return this._connectionFailure}dispose(){this._pollSpecs.dispose();super.dispose()}async refreshSpecs(){await this._pollSpecs.refresh();await this._pollSpecs.tick}async requestSpecs(){const e=await this._kernelSpecAPIClient.get();if(this.isDisposed){return}if(!i.JSONExt.deepEqual(e,this._specs)){this._specs=e;this._specsChanged.emit(e)}}}t.KernelSpecManager=l},321:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.KernelSpecAPIClient=void 0;t.getSpecs=a;const i=n(1089);const s=n(79237);const o=n(30397);const r="api/kernelspecs";async function a(e=i.ServerConnection.makeSettings()){const t=o.URLExt.join(e.baseUrl,r);const n=await i.ServerConnection.makeRequest(t,{},e);if(n.status!==200){const e=await i.ServerConnection.ResponseError.create(n);throw e}const a=await n.json();return(0,s.validateSpecModels)(a)}class l{constructor(e={}){var t;this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:i.ServerConnection.makeSettings()}async get(){return a(this.serverSettings)}}t.KernelSpecAPIClient=l},79237:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateSpecModel=s;t.validateSpecModels=o;const i=n(1480);function s(e){const t=e.spec;if(!t){throw new Error("Invalid kernel spec")}(0,i.validateProperty)(e,"name","string");(0,i.validateProperty)(e,"resources","object");(0,i.validateProperty)(t,"language","string");(0,i.validateProperty)(t,"display_name","string");(0,i.validateProperty)(t,"argv","array");let n=null;if(t.hasOwnProperty("metadata")){(0,i.validateProperty)(t,"metadata","object");n=t.metadata}let s=null;if(t.hasOwnProperty("env")){(0,i.validateProperty)(t,"env","object");s=t.env}return{name:e.name,resources:e.resources,language:t.language,display_name:t.display_name,argv:t.argv,metadata:n,env:s}}function o(e){if(!e.hasOwnProperty("kernelspecs")){throw new Error("No kernelspecs found")}let t=Object.keys(e.kernelspecs);const n=Object.create(null);let i=e.default;for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ServiceManager=void 0;const i=n(2336);const s=n(44816);const o=n(97375);const r=n(1091);const a=n(14272);const l=n(76807);const d=n(93892);const c=n(1089);const h=n(86923);const u=n(95399);const p=n(67569);const m=n(18430);const g=n(90362);class f{constructor(e={}){var t,n;this._isDisposed=false;this._connectionFailure=new i.Signal(this);this._isReady=false;const f=e.defaultDrive;const v=(t=e.serverSettings)!==null&&t!==void 0?t:c.ServerConnection.makeSettings();const _=(n=e.standby)!==null&&n!==void 0?n:"when-hidden";const b={defaultDrive:f,serverSettings:v,standby:_};this.serverSettings=v;this.contents=e.contents||new o.ContentsManager(b);this.events=e.events||new r.EventManager(b);this.kernels=e.kernels||new a.KernelManager(b);this.sessions=e.sessions||new h.SessionManager({...b,kernelManager:this.kernels});this.settings=e.settings||new u.SettingManager(b);this.terminals=e.terminals||new p.TerminalManager(b);this.builder=e.builder||new s.BuildManager(b);this.workspaces=e.workspaces||new g.WorkspaceManager(b);this.nbconvert=e.nbconvert||new d.NbConvertManager(b);this.kernelspecs=e.kernelspecs||new l.KernelSpecManager(b);this.user=e.user||new m.UserManager(b);this.kernelspecs.connectionFailure.connect(this._onConnectionFailure,this);this.sessions.connectionFailure.connect(this._onConnectionFailure,this);this.terminals.connectionFailure.connect(this._onConnectionFailure,this);const y=[this.sessions.ready,this.kernelspecs.ready];if(this.terminals.isAvailable()){y.push(this.terminals.ready)}this._readyPromise=Promise.all(y).then((()=>{this._isReady=true}))}get connectionFailure(){return this._connectionFailure}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;i.Signal.clearData(this);this.contents.dispose();this.events.dispose();this.sessions.dispose();this.terminals.dispose()}get isReady(){return this._isReady}get ready(){return this._readyPromise}_onConnectionFailure(e,t){this._connectionFailure.emit(t)}}t.ServiceManager=f},93892:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.NbConvertManager=void 0;const i=n(30397);const s=n(1089);const o=n(5592);const r="api/nbconvert";class a{constructor(e={}){var t;this._exportFormats=null;this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:s.ServerConnection.makeSettings()}async fetchExportFormats(){this._requestingFormats=new o.PromiseDelegate;this._exportFormats=null;const e=this.serverSettings.baseUrl;const t=i.URLExt.join(e,r);const{serverSettings:n}=this;const a=await s.ServerConnection.makeRequest(t,{},n);if(a.status!==200){const e=await s.ServerConnection.ResponseError.create(a);throw e}const l=await a.json();const d={};const c=Object.keys(l);c.forEach((function(e){const t=l[e].output_mimetype;d[e]={output_mimetype:t}}));this._exportFormats=d;this._requestingFormats.resolve(d);return d}async getExportFormats(e=true){if(this._requestingFormats){return this._requestingFormats.promise}if(e||!this._exportFormats){return await this.fetchExportFormats()}return this._exportFormats}}t.NbConvertManager=a},1089:(e,t,n)=>{"use strict";var i=n(65606);Object.defineProperty(t,"__esModule",{value:true});t.ServerConnection=void 0;const s=n(30397);const o=n(93962);let r;if(typeof window==="undefined"){r=n(36513)}else{r=WebSocket}var a;(function(e){function t(e){return l.makeSettings(e)}e.makeSettings=t;function n(e,t,n){return l.handleRequest(e,t,n)}e.makeRequest=n;class i extends Error{static async create(e){try{const t=await e.json();const{message:n,traceback:s}=t;if(s){console.error(s)}return new i(e,n!==null&&n!==void 0?n:i._defaultMessage(e),s!==null&&s!==void 0?s:"")}catch(t){console.debug(t);return new i(e)}}constructor(e,t=i._defaultMessage(e),n=""){super(t);this.response=e;this.traceback=n}static _defaultMessage(e){return`Invalid response: ${e.status} ${e.statusText}`}}e.ResponseError=i;class s extends TypeError{constructor(e){super(e.message);this.stack=e.stack}}e.NetworkError=s})(a||(t.ServerConnection=a={}));var l;(function(e){function t(e={}){var t;const n=s.PageConfig.getBaseUrl();const a=s.PageConfig.getWsUrl();const l=s.URLExt.normalize(e.baseUrl)||n;let d=e.wsUrl;if(!d&&l===n){d=a}if(!d&&l.indexOf("http")===0){d="ws"+l.slice(4)}d=d!==null&&d!==void 0?d:a;const c=s.PageConfig.getOption("appendToken").toLowerCase();let h;if(c===""){h=typeof window==="undefined"||typeof i!=="undefined"&&((t=i===null||i===void 0?void 0:i.env)===null||t===void 0?void 0:t.JEST_WORKER_ID)!==undefined||s.URLExt.getHostName(n)!==s.URLExt.getHostName(d)}else{h=c==="true"}return{init:{cache:"no-store",credentials:"same-origin"},fetch,Headers,Request,WebSocket:r,token:s.PageConfig.getToken(),appUrl:s.PageConfig.getOption("appUrl"),appendToken:h,serializer:{serialize:o.serialize,deserialize:o.deserialize},...e,baseUrl:l,wsUrl:d}}e.makeSettings=t;function n(e,t,n){var i;if(e.indexOf(n.baseUrl)!==0){throw new Error("Can only be used for notebook server requests")}const s=(i=t.cache)!==null&&i!==void 0?i:n.init.cache;if(s==="no-store"){e+=(/\?/.test(e)?"&":"?")+(new Date).getTime()}const o=new n.Request(e,{...n.init,...t});let r=false;if(n.token){r=true;o.headers.append("Authorization",`token ${n.token}`)}if(typeof document!=="undefined"){const e=l("_xsrf");if(e!==undefined){r=true;o.headers.append("X-XSRFToken",e)}}if(!o.headers.has("Content-Type")&&r){o.headers.set("Content-Type","application/json")}return n.fetch.call(null,o).catch((e=>{throw new a.NetworkError(e)}))}e.handleRequest=n;function l(e){let t="";try{t=document.cookie}catch(i){return}const n=t.match("\\b"+e+"=([^;]*)\\b");return n===null||n===void 0?void 0:n[1]}})(l||(l={}))},26830:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.SessionConnection=void 0;const i=n(2336);const s=n(50608);const o=n(5592);const r=n(70637);class a{constructor(e){var t,n,a,l,d;this._id="";this._path="";this._name="";this._type="";this._kernel=null;this._isDisposed=false;this._disposed=new i.Signal(this);this._kernelChanged=new i.Signal(this);this._statusChanged=new i.Signal(this);this._connectionStatusChanged=new i.Signal(this);this._pendingInput=new i.Signal(this);this._iopubMessage=new i.Signal(this);this._unhandledMessage=new i.Signal(this);this._anyMessage=new i.Signal(this);this._propertyChanged=new i.Signal(this);this._id=e.model.id;this._name=e.model.name;this._path=e.model.path;this._type=e.model.type;this._username=(t=e.username)!==null&&t!==void 0?t:"";this._clientId=(n=e.clientId)!==null&&n!==void 0?n:o.UUID.uuid4();this._connectToKernel=e.connectToKernel;this._kernelConnectionOptions=(a=e.kernelConnectionOptions)!==null&&a!==void 0?a:{};this.serverSettings=(l=e.serverSettings)!==null&&l!==void 0?l:s.ServerConnection.makeSettings();this._sessionAPIClient=(d=e.sessionAPIClient)!==null&&d!==void 0?d:new r.SessionAPIClient({serverSettings:this.serverSettings});this.setupKernel(e.model.kernel)}get disposed(){return this._disposed}get kernelChanged(){return this._kernelChanged}get statusChanged(){return this._statusChanged}get connectionStatusChanged(){return this._connectionStatusChanged}get pendingInput(){return this._pendingInput}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get anyMessage(){return this._anyMessage}get propertyChanged(){return this._propertyChanged}get id(){return this._id}get kernel(){return this._kernel}get path(){return this._path}get type(){return this._type}get name(){return this._name}get model(){return{id:this.id,kernel:this.kernel&&{id:this.kernel.id,name:this.kernel.name},path:this._path,type:this._type,name:this._name}}get isDisposed(){return this._isDisposed}update(e){const t=this.model;this._path=e.path;this._name=e.name;this._type=e.type;if(this._kernel===null&&e.kernel!==null||this._kernel!==null&&e.kernel===null||this._kernel!==null&&e.kernel!==null&&this._kernel.id!==e.kernel.id){if(this._kernel!==null){this._kernel.dispose()}const t=this._kernel||null;this.setupKernel(e.kernel);const n=this._kernel||null;this._kernelChanged.emit({name:"kernel",oldValue:t,newValue:n})}this._handleModelChange(t)}dispose(){if(this.isDisposed){return}this._isDisposed=true;this._disposed.emit();if(this._kernel){this._kernel.dispose();const e=this._kernel;this._kernel=null;const t=this._kernel;this._kernelChanged.emit({name:"kernel",oldValue:e,newValue:t})}i.Signal.clearData(this)}async setPath(e){if(this.isDisposed){throw new Error("Session is disposed")}await this._patch({path:e})}async setName(e){if(this.isDisposed){throw new Error("Session is disposed")}await this._patch({name:e})}async setType(e){if(this.isDisposed){throw new Error("Session is disposed")}await this._patch({type:e})}async changeKernel(e){if(this.isDisposed){throw new Error("Session is disposed")}await this._patch({kernel:e});return this.kernel}async shutdown(){if(this.isDisposed){throw new Error("Session is disposed")}await this._sessionAPIClient.shutdown(this.id);this.dispose()}setupKernel(e){if(e===null){this._kernel=null;return}const t=this._connectToKernel({...this._kernelConnectionOptions,model:e,username:this._username,clientId:this._clientId,serverSettings:this.serverSettings});this._kernel=t;t.statusChanged.connect(this.onKernelStatus,this);t.connectionStatusChanged.connect(this.onKernelConnectionStatus,this);t.pendingInput.connect(this.onPendingInput,this);t.unhandledMessage.connect(this.onUnhandledMessage,this);t.iopubMessage.connect(this.onIOPubMessage,this);t.anyMessage.connect(this.onAnyMessage,this)}onKernelStatus(e,t){this._statusChanged.emit(t)}onKernelConnectionStatus(e,t){this._connectionStatusChanged.emit(t)}onPendingInput(e,t){this._pendingInput.emit(t)}onIOPubMessage(e,t){this._iopubMessage.emit(t)}onUnhandledMessage(e,t){this._unhandledMessage.emit(t)}onAnyMessage(e,t){this._anyMessage.emit(t)}async _patch(e){const t=await this._sessionAPIClient.update({...e,id:this._id});this.update(t);return t}_handleModelChange(e){if(e.name!==this._name){this._propertyChanged.emit("name")}if(e.type!==this._type){this._propertyChanged.emit("type")}if(e.path!==this._path){this._propertyChanged.emit("path")}}}t.SessionConnection=a},86923:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){if(i===undefined)i=n;var s=Object.getOwnPropertyDescriptor(t,n);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[n]}}}Object.defineProperty(e,i,s)}:function(e,t,n,i){if(i===undefined)i=n;e[i]=t[n]});var s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)if(n!=="default"&&Object.prototype.hasOwnProperty.call(e,n))i(t,e,n);s(t,e);return t};var r=this&&this.__exportStar||function(e,t){for(var n in e)if(n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n))i(t,e,n)};Object.defineProperty(t,"__esModule",{value:true});t.SessionAPI=t.Session=void 0;const a=o(n(82827));t.Session=a;const l=o(n(70637));t.SessionAPI=l;r(n(57740),t)},57740:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.SessionManager=void 0;const i=n(26568);const s=n(2336);const o=n(1089);const r=n(5412);const a=n(26830);const l=n(70637);class d extends r.BaseManager{constructor(e){var t,n;super(e);this._isReady=false;this._sessionConnections=new Set;this._models=new Map;this._runningChanged=new s.Signal(this);this._connectionFailure=new s.Signal(this);this._connectToKernel=e=>this._kernelManager.connectTo(e);this._kernelManager=e.kernelManager;this._sessionAPIClient=(t=e.sessionAPIClient)!==null&&t!==void 0?t:new l.SessionAPIClient({serverSettings:e.serverSettings});this._pollModels=new i.Poll({auto:false,factory:()=>this.requestRunning(),frequency:{interval:10*1e3,backoff:true,max:300*1e3},name:`@jupyterlab/services:SessionManager#models`,standby:(n=e.standby)!==null&&n!==void 0?n:"when-hidden"});this._ready=(async()=>{await this._pollModels.start();await this._pollModels.tick;if(this._kernelManager.isActive){await this._kernelManager.ready}this._isReady=true})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){if(this.isDisposed){return}this._models.clear();this._sessionConnections.forEach((e=>e.dispose()));this._pollModels.dispose();super.dispose()}connectTo(e){const t=new a.SessionConnection({...e,connectToKernel:this._connectToKernel,serverSettings:this.serverSettings,sessionAPIClient:this._sessionAPIClient});this._onStarted(t);if(!this._models.has(e.model.id)){void this.refreshRunning().catch((()=>{}))}return t}running(){return this._models.values()}async refreshRunning(){await this._pollModels.refresh();await this._pollModels.tick}async startNew(e,t={}){const n=await this._sessionAPIClient.startNew(e);await this.refreshRunning();return this.connectTo({...t,model:n})}async shutdown(e){await this._sessionAPIClient.shutdown(e);await this.refreshRunning()}async shutdownAll(){await this.refreshRunning();await Promise.all([...this._models.keys()].map((e=>this._sessionAPIClient.shutdown(e))));await this.refreshRunning()}async stopIfNeeded(e){try{const t=await this._sessionAPIClient.listRunning();const n=t.filter((t=>t.path===e));if(n.length===1){const e=n[0].id;await this.shutdown(e)}}catch(t){}}async findById(e){if(this._models.has(e)){return this._models.get(e)}await this.refreshRunning();return this._models.get(e)}async findByPath(e){for(const t of this._models.values()){if(t.path===e){return t}}await this.refreshRunning();for(const t of this._models.values()){if(t.path===e){return t}}return undefined}async requestRunning(){var e,t;let n;try{n=await this._sessionAPIClient.listRunning()}catch(i){if(i instanceof o.ServerConnection.NetworkError||((e=i.response)===null||e===void 0?void 0:e.status)===503||((t=i.response)===null||t===void 0?void 0:t.status)===424){this._connectionFailure.emit(i)}throw i}if(this.isDisposed){return}if(this._models.size===n.length&&n.every((e=>{var t,n,i,s;const o=this._models.get(e.id);if(!o){return false}return((t=o.kernel)===null||t===void 0?void 0:t.id)===((n=e.kernel)===null||n===void 0?void 0:n.id)&&((i=o.kernel)===null||i===void 0?void 0:i.name)===((s=e.kernel)===null||s===void 0?void 0:s.name)&&o.name===e.name&&o.path===e.path&&o.type===e.type}))){return}this._models=new Map(n.map((e=>[e.id,e])));this._sessionConnections.forEach((e=>{if(this._models.has(e.id)){e.update(this._models.get(e.id))}else{e.dispose()}}));this._runningChanged.emit(n)}_onStarted(e){this._sessionConnections.add(e);e.disposed.connect(this._onDisposed,this);e.propertyChanged.connect(this._onChanged,this);e.kernelChanged.connect(this._onChanged,this)}_onDisposed(e){this._sessionConnections.delete(e);void this.refreshRunning().catch((()=>{}))}_onChanged(){void this.refreshRunning().catch((()=>{}))}}t.SessionManager=d;(function(e){class t extends e{constructor(){super(...arguments);this._readyPromise=new Promise((()=>{}))}get isActive(){return false}get parentReady(){return super.ready}async startNew(e,t={}){return Promise.reject(new Error("Not implemented in no-op Session Manager"))}connectTo(e){throw Error("Not implemented in no-op Session Manager")}get ready(){return this.parentReady.then((()=>this._readyPromise))}async shutdown(e){return Promise.reject(new Error("Not implemented in no-op Session Manager"))}async requestRunning(){return Promise.resolve()}}e.NoopManager=t})(d||(t.SessionManager=d={}))},70637:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.SessionAPIClient=t.SESSION_SERVICE_URL=void 0;t.listRunning=r;t.getSessionUrl=a;t.shutdownSession=l;t.getSessionModel=d;t.startSession=c;t.updateSession=h;const i=n(1089);const s=n(30397);const o=n(11521);t.SESSION_SERVICE_URL="api/sessions";async function r(e=i.ServerConnection.makeSettings()){const n=s.URLExt.join(e.baseUrl,t.SESSION_SERVICE_URL);const r=await i.ServerConnection.makeRequest(n,{},e);if(r.status!==200){const e=await i.ServerConnection.ResponseError.create(r);throw e}const a=await r.json();if(!Array.isArray(a)){throw new Error("Invalid Session list")}a.forEach((e=>{(0,o.updateLegacySessionModel)(e);(0,o.validateModel)(e)}));return a}function a(e,n){const i=s.URLExt.join(e,t.SESSION_SERVICE_URL);const o=s.URLExt.join(i,n);if(!o.startsWith(i)){throw new Error("Can only be used for services requests")}return o}async function l(e,t=i.ServerConnection.makeSettings()){var n;const s=a(t.baseUrl,e);const o={method:"DELETE"};const r=await i.ServerConnection.makeRequest(s,o,t);if(r.status===404){const t=await r.json();const i=(n=t.message)!==null&&n!==void 0?n:`The session "${e}"" does not exist on the server`;console.warn(i)}else if(r.status===410){throw new i.ServerConnection.ResponseError(r,"The kernel was deleted but the session was not")}else if(r.status!==204){const e=await i.ServerConnection.ResponseError.create(r);throw e}}async function d(e,t=i.ServerConnection.makeSettings()){const n=a(t.baseUrl,e);const s=await i.ServerConnection.makeRequest(n,{},t);if(s.status!==200){const e=await i.ServerConnection.ResponseError.create(s);throw e}const r=await s.json();(0,o.updateLegacySessionModel)(r);(0,o.validateModel)(r);return r}async function c(e,n=i.ServerConnection.makeSettings()){const r=s.URLExt.join(n.baseUrl,t.SESSION_SERVICE_URL);const a={method:"POST",body:JSON.stringify(e)};const l=await i.ServerConnection.makeRequest(r,a,n);if(l.status!==201){const e=await i.ServerConnection.ResponseError.create(l);throw e}const d=await l.json();(0,o.updateLegacySessionModel)(d);(0,o.validateModel)(d);return d}async function h(e,t=i.ServerConnection.makeSettings()){const n=a(t.baseUrl,e.id);const s={method:"PATCH",body:JSON.stringify(e)};const r=await i.ServerConnection.makeRequest(n,s,t);if(r.status!==200){const e=await i.ServerConnection.ResponseError.create(r);throw e}const l=await r.json();(0,o.updateLegacySessionModel)(l);(0,o.validateModel)(l);return l}class u{constructor(e){var t;this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:i.ServerConnection.makeSettings()}async listRunning(){return r(this.serverSettings)}async getModel(e){return d(e,this.serverSettings)}async startNew(e){return c(e,this.serverSettings)}async shutdown(e){return l(e,this.serverSettings)}async update(e){return h(e,this.serverSettings)}}t.SessionAPIClient=u},82827:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true})},11521:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateModel=o;t.updateLegacySessionModel=r;t.validateModels=a;const i=n(38872);const s=n(1480);function o(e){(0,s.validateProperty)(e,"id","string");(0,s.validateProperty)(e,"type","string");(0,s.validateProperty)(e,"name","string");(0,s.validateProperty)(e,"path","string");(0,s.validateProperty)(e,"kernel","object");(0,i.validateModel)(e.kernel)}function r(e){if(e.path===undefined&&e.notebook!==undefined){e.path=e.notebook.path;e.type="notebook";e.name=""}}function a(e){if(!Array.isArray(e)){throw new Error("Invalid session list")}e.forEach((e=>o(e)))}},95399:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.SettingManager=void 0;const i=n(30397);const s=n(94931);const o=n(1089);const r="api/settings";class a extends s.DataConnector{constructor(e={}){var t;super();this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:o.ServerConnection.makeSettings()}async fetch(e){if(!e){throw new Error("Plugin `id` parameter is required for settings fetch.")}const{serverSettings:t}=this;const{baseUrl:n,appUrl:i}=t;const{makeRequest:s,ResponseError:r}=o.ServerConnection;const a=n+i;const d=l.url(a,e);const c=await s(d,{},t);if(c.status!==200){const e=await r.create(c);throw e}return c.json()}async list(e){var t,n,i,s;const{serverSettings:r}=this;const{baseUrl:a,appUrl:d}=r;const{makeRequest:c,ResponseError:h}=o.ServerConnection;const u=a+d;const p=l.url(u,"",e==="ids");const m=await c(p,{},r);if(m.status!==200){throw new h(m)}const g=await m.json();const f=(n=(t=g===null||g===void 0?void 0:g["settings"])===null||t===void 0?void 0:t.map((e=>e.id)))!==null&&n!==void 0?n:[];let v=[];if(!e){v=(s=(i=g===null||g===void 0?void 0:g["settings"])===null||i===void 0?void 0:i.map((e=>{e.data={composite:{},user:{}};return e})))!==null&&s!==void 0?s:[]}return{ids:f,values:v}}async save(e,t){const{serverSettings:n}=this;const{baseUrl:i,appUrl:s}=n;const{makeRequest:r,ResponseError:a}=o.ServerConnection;const d=i+s;const c=l.url(d,e);const h={body:JSON.stringify({raw:t}),method:"PUT"};const u=await r(c,h,n);if(u.status!==204){throw new a(u)}}}t.SettingManager=a;var l;(function(e){function t(e,t,n){const s=n?i.URLExt.objectToQueryString({ids_only:true}):"";const o=i.URLExt.join(e,r);const a=i.URLExt.join(o,t);if(!a.startsWith(o)){throw new Error("Can only be used for workspaces requests")}return`${a}${s}`}e.url=t})(l||(l={}))},12100:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.TerminalConnection=void 0;const i=n(30397);const s=n(5592);const o=n(2336);const r=n(50608);const a=n(84903);class l{constructor(e){var t,n;this._createSocket=()=>{this._errorIfDisposed();this._clearSocket();this._updateConnectionStatus("connecting");const e=this._name;const t=this.serverSettings;let n=i.URLExt.join(t.wsUrl,"terminals","websocket",encodeURIComponent(e));const s=t.token;if(t.appendToken&&s!==""){n=n+`?token=${encodeURIComponent(s)}`}this._ws=new t.WebSocket(n);this._ws.onmessage=this._onWSMessage;this._ws.onclose=this._onWSClose;this._ws.onerror=this._onWSClose};this._onWSMessage=e=>{if(this._isDisposed){return}const t=JSON.parse(e.data);if(t[0]==="disconnect"){this.dispose()}if(this._connectionStatus==="connecting"){if(t[0]==="setup"){this._updateConnectionStatus("connected")}return}this._messageReceived.emit({type:t[0],content:t.slice(1)})};this._onWSClose=e=>{console.warn(`Terminal websocket closed: ${e.code}`);if(!this.isDisposed){this._reconnect()}};this._connectionStatus="connecting";this._connectionStatusChanged=new o.Signal(this);this._isDisposed=false;this._disposed=new o.Signal(this);this._messageReceived=new o.Signal(this);this._reconnectTimeout=null;this._ws=null;this._noOp=()=>{};this._reconnectLimit=7;this._reconnectAttempt=0;this._pendingMessages=[];this._name=e.model.name;this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:r.ServerConnection.makeSettings();this._terminalAPIClient=(n=e.terminalAPIClient)!==null&&n!==void 0?n:new a.TerminalAPIClient({serverSettings:this.serverSettings});this._createSocket()}get disposed(){return this._disposed}get messageReceived(){return this._messageReceived}get name(){return this._name}get model(){return{name:this._name}}get isDisposed(){return this._isDisposed}dispose(){if(this._isDisposed){return}this._isDisposed=true;this._disposed.emit();this._updateConnectionStatus("disconnected");this._clearSocket();o.Signal.clearData(this)}send(e){this._sendMessage(e)}_sendMessage(e,t=true){if(this._isDisposed||!e.content){return}if(this.connectionStatus==="connected"&&this._ws){const t=[e.type,...e.content];this._ws.send(JSON.stringify(t))}else if(t){this._pendingMessages.push(e)}else{throw new Error(`Could not send message: ${JSON.stringify(e)}`)}}_sendPending(){while(this.connectionStatus==="connected"&&this._pendingMessages.length>0){this._sendMessage(this._pendingMessages[0],false);this._pendingMessages.shift()}}reconnect(){this._errorIfDisposed();const e=new s.PromiseDelegate;const t=(n,i)=>{if(i==="connected"){e.resolve();this.connectionStatusChanged.disconnect(t,this)}else if(i==="disconnected"){e.reject(new Error("Terminal connection disconnected"));this.connectionStatusChanged.disconnect(t,this)}};this.connectionStatusChanged.connect(t,this);this._reconnectAttempt=0;this._reconnect();return e.promise}_reconnect(){this._errorIfDisposed();clearTimeout(this._reconnectTimeout);if(this._reconnectAttempt{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.TerminalManager=void 0;const i=n(26568);const s=n(2336);const o=n(50608);const r=n(5412);const a=n(84903);const l=n(12100);class d extends r.BaseManager{constructor(e={}){var t,n;super(e);this._isReady=false;this._names=[];this._terminalConnections=new Set;this._runningChanged=new s.Signal(this);this._connectionFailure=new s.Signal(this);this._terminalAPIClient=(t=e.terminalAPIClient)!==null&&t!==void 0?t:new a.TerminalAPIClient({serverSettings:this.serverSettings});if(!this.isAvailable()){this._ready=Promise.reject("Terminals unavailable");this._ready.catch((e=>undefined));return}this._pollModels=new i.Poll({auto:false,factory:()=>this.requestRunning(),frequency:{interval:10*1e3,backoff:true,max:300*1e3},name:`@jupyterlab/services:TerminalManager#models`,standby:(n=e.standby)!==null&&n!==void 0?n:"when-hidden"});this._ready=(async()=>{await this._pollModels.start();await this._pollModels.tick;this._isReady=true})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){if(this.isDisposed){return}this._names.length=0;this._terminalConnections.forEach((e=>e.dispose()));this._pollModels.dispose();super.dispose()}isAvailable(){return this._terminalAPIClient.isAvailable}connectTo(e){const t=new l.TerminalConnection({...e,serverSettings:this.serverSettings,terminalAPIClient:this._terminalAPIClient});this._onStarted(t);if(!this._names.includes(e.model.name)){void this.refreshRunning().catch((()=>{}))}return t}running(){return this._models[Symbol.iterator]()}async refreshRunning(){await this._pollModels.refresh();await this._pollModels.tick}async startNew(e={}){const{name:t,cwd:n}=e;const i=await this._terminalAPIClient.startNew({name:t,cwd:n});await this.refreshRunning();return this.connectTo({model:i})}async shutdown(e){await this._terminalAPIClient.shutdown(e);await this.refreshRunning()}async shutdownAll(){await this.refreshRunning();await Promise.all(this._names.map((e=>this._terminalAPIClient.shutdown(e))));await this.refreshRunning()}async requestRunning(){var e,t;let n;try{n=await this._terminalAPIClient.listRunning()}catch(s){if(s instanceof o.ServerConnection.NetworkError||((e=s.response)===null||e===void 0?void 0:e.status)===503||((t=s.response)===null||t===void 0?void 0:t.status)===424){this._connectionFailure.emit(s)}throw s}if(this.isDisposed){return}const i=n.map((({name:e})=>e)).sort();if(i===this._names){return}this._names=i;this._terminalConnections.forEach((e=>{if(!i.includes(e.name)){e.dispose()}}));this._runningChanged.emit(this._models)}_onStarted(e){this._terminalConnections.add(e);e.disposed.connect(this._onDisposed,this)}_onDisposed(e){this._terminalConnections.delete(e);void this.refreshRunning().catch((()=>{}))}get _models(){return this._names.map((e=>({name:e})))}}t.TerminalManager=d;(function(e){class t extends e{constructor(){super(...arguments);this._readyPromise=new Promise((()=>{}))}get isActive(){return false}get parentReady(){return super.ready}get ready(){return this.parentReady.then((()=>this._readyPromise))}async startNew(e){return Promise.reject(new Error("Not implemented in no-op Terminal Manager"))}connectTo(e){throw Error("Not implemented in no-op Terminal Manager")}async shutdown(e){return Promise.reject(new Error("Not implemented in no-op Terminal Manager"))}async requestRunning(){return Promise.resolve()}}e.NoopManager=t})(d||(t.TerminalManager=d={}))},84903:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.TerminalAPIClient=t.TERMINAL_SERVICE_URL=void 0;t.isAvailable=o;t.startNew=r;t.listRunning=a;t.shutdownTerminal=l;const i=n(30397);const s=n(1089);t.TERMINAL_SERVICE_URL="api/terminals";function o(){const e=String(i.PageConfig.getOption("terminalsAvailable"));return e.toLowerCase()==="true"}async function r(e=s.ServerConnection.makeSettings(),n,o){c.errorIfNotAvailable();const r=i.URLExt.join(e.baseUrl,t.TERMINAL_SERVICE_URL);const a={method:"POST",body:JSON.stringify({name:n,cwd:o})};const l=await s.ServerConnection.makeRequest(r,a,e);if(l.status!==200){const e=await s.ServerConnection.ResponseError.create(l);throw e}const d=await l.json();return d}async function a(e=s.ServerConnection.makeSettings()){c.errorIfNotAvailable();const n=i.URLExt.join(e.baseUrl,t.TERMINAL_SERVICE_URL);const o=await s.ServerConnection.makeRequest(n,{},e);if(o.status!==200){const e=await s.ServerConnection.ResponseError.create(o);throw e}const r=await o.json();if(!Array.isArray(r)){throw new Error("Invalid terminal list")}return r}async function l(e,n=s.ServerConnection.makeSettings()){var o;c.errorIfNotAvailable();const r=i.URLExt.join(n.baseUrl,t.TERMINAL_SERVICE_URL);const a=i.URLExt.join(r,e);if(!a.startsWith(r)){throw new Error("Can only be used for terminal requests")}const l={method:"DELETE"};const d=await s.ServerConnection.makeRequest(a,l,n);if(d.status===404){const t=await d.json();const n=(o=t.message)!==null&&o!==void 0?o:`The terminal session "${e}"" does not exist on the server`;console.warn(n)}else if(d.status!==204){const e=await s.ServerConnection.ResponseError.create(d);throw e}}class d{constructor(e={}){var t;this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:s.ServerConnection.makeSettings()}get isAvailable(){return o()}async startNew(e={}){const{name:t,cwd:n}=e;return r(this.serverSettings,t,n)}async listRunning(){return a(this.serverSettings)}async shutdown(e){return l(e,this.serverSettings)}}t.TerminalAPIClient=d;var c;(function(e){function t(){if(!o()){throw new Error("Terminals Unavailable")}}e.errorIfNotAvailable=t})(c||(c={}))},88917:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isAvailable=void 0;const i=n(84903);Object.defineProperty(t,"isAvailable",{enumerable:true,get:function(){return i.isAvailable}})},80856:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.IWorkspaceManager=t.IUserManager=t.ITerminalManager=t.IServiceManager=t.ISettingManager=t.ISessionManager=t.IServerSettings=t.INbConvertManager=t.IKernelSpecManager=t.IKernelManager=t.IEventManager=t.IDefaultDrive=t.IContentsManager=t.IConfigSectionManager=t.IConnectionStatus=void 0;const i=n(5592);t.IConnectionStatus=new i.Token("@jupyterlab/application:IConnectionStatus","A service providing the application connection status.");t.IConfigSectionManager=new i.Token("@jupyterlab/services:IConfigSectionManager","A service providing the config section manager.");t.IContentsManager=new i.Token("@jupyterlab/services:IContentsManager","The contents manager token.");t.IDefaultDrive=new i.Token("@jupyterlab/services:IDefaultDrive","The default drive for the contents manager.");t.IEventManager=new i.Token("@jupyterlab/services:IEventManager","The event manager token.");t.IKernelManager=new i.Token("@jupyterlab/services:IKernelManager","The kernel manager token.");t.IKernelSpecManager=new i.Token("@jupyterlab/services:IKernelSpecManager","The kernel spec manager token.");t.INbConvertManager=new i.Token("@jupyterlab/services:INbConvertManager","The nbconvert manager token.");t.IServerSettings=new i.Token("@jupyterlab/services:IServerSettings","The server settings for the application.");t.ISessionManager=new i.Token("@jupyterlab/services:ISessionManager","The session manager token.");t.ISettingManager=new i.Token("@jupyterlab/services:ISettingManager","The setting manager token.");t.IServiceManager=new i.Token("@jupyterlab/services:IServiceManager","The service manager for the application.");t.ITerminalManager=new i.Token("@jupyterlab/services:ITerminalManager","The terminal manager token.");t.IUserManager=new i.Token("@jupyterlab/services:IUserManager","The user manager token.");t.IWorkspaceManager=new i.Token("@jupyterlab/services:IWorkspaceManager","The workspace manager token.")},18430:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.UserManager=void 0;const i=n(30397);const s=n(5592);const o=n(26568);const r=n(2336);const a=n(1089);const l=n(5412);const d="api/me";const c="@jupyterlab/services:UserManager#user";class h extends l.BaseManager{constructor(e={}){var t;super(e);this._isReady=false;this._userChanged=new r.Signal(this);this._connectionFailure=new r.Signal(this);this._ready=this.requestUser().then((()=>{if(this.isDisposed){return}this._isReady=true})).catch((e=>new Promise((()=>{}))));this._pollSpecs=new o.Poll({auto:false,factory:()=>this.requestUser(),frequency:{interval:61*1e3,backoff:true,max:300*1e3},name:c,standby:(t=e.standby)!==null&&t!==void 0?t:"when-hidden"});void this.ready.then((()=>{void this._pollSpecs.start()}))}get isReady(){return this._isReady}get ready(){return this._ready}get identity(){return this._identity}get permissions(){return this._permissions}get userChanged(){return this._userChanged}get connectionFailure(){return this._connectionFailure}dispose(){this._pollSpecs.dispose();super.dispose()}async refreshUser(){await this._pollSpecs.refresh();await this._pollSpecs.tick}async requestUser(){if(this.isDisposed){return}const{baseUrl:e}=this.serverSettings;const{makeRequest:t,ResponseError:n}=a.ServerConnection;const o=i.URLExt.join(e,d);const r=await t(o,{},this.serverSettings);if(r.status!==200){const e=await n.create(r);throw e}const l={identity:this._identity,permissions:this._permissions};const h=await r.json();const p=h.identity;const{localStorage:m}=window;const g=m.getItem(c);if(g&&(!p.initials||!p.color)){const e=JSON.parse(g);p.initials=p.initials||e.initials||p.name.substring(0,1);p.color=p.color||e.color||u.getRandomColor()}if(!s.JSONExt.deepEqual(h,l)){this._identity=p;this._permissions=h.permissions;m.setItem(c,JSON.stringify(p));this._userChanged.emit(h)}}}t.UserManager=h;var u;(function(e){const t=["var(--jp-collaborator-color1)","var(--jp-collaborator-color2)","var(--jp-collaborator-color3)","var(--jp-collaborator-color4)","var(--jp-collaborator-color5)","var(--jp-collaborator-color6)","var(--jp-collaborator-color7)"];e.getRandomColor=()=>t[Math.floor(Math.random()*t.length)]})(u||(u={}))},1480:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateProperty=n;function n(e,t,n,i=[]){if(!e.hasOwnProperty(t)){throw Error(`Missing property '${t}'`)}const s=e[t];if(n!==void 0){let e=true;switch(n){case"array":e=Array.isArray(s);break;case"object":e=typeof s!=="undefined";break;default:e=typeof s===n}if(!e){throw new Error(`Property '${t}' is not of type '${n}'`)}if(i.length>0){let e=true;switch(n){case"string":case"number":case"boolean":e=i.includes(s);break;default:e=i.findIndex((e=>e===s))>=0;break}if(!e){throw new Error(`Property '${t}' is not one of the valid values ${JSON.stringify(i)}`)}}}}},90362:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.WorkspaceManager=void 0;const i=n(30397);const s=n(94931);const o=n(1089);const r="api/workspaces";class a extends s.DataConnector{constructor(e={}){var t;super();this.serverSettings=(t=e.serverSettings)!==null&&t!==void 0?t:o.ServerConnection.makeSettings()}async fetch(e){const{serverSettings:t}=this;const{baseUrl:n,appUrl:i}=t;const{makeRequest:s,ResponseError:r}=o.ServerConnection;const a=n+i;const d=l.url(a,e);const c=await s(d,{},t);if(c.status!==200){const e=await r.create(c);throw e}return c.json()}async list(){const{serverSettings:e}=this;const{baseUrl:t,appUrl:n}=e;const{makeRequest:i,ResponseError:s}=o.ServerConnection;const r=t+n;const a=l.url(r,"");const d=await i(a,{},e);if(d.status!==200){const e=await s.create(d);throw e}const c=await d.json();return c.workspaces}async remove(e){const{serverSettings:t}=this;const{baseUrl:n,appUrl:i}=t;const{makeRequest:s,ResponseError:r}=o.ServerConnection;const a=n+i;const d=l.url(a,e);const c={method:"DELETE"};const h=await s(d,c,t);if(h.status!==204){const e=await r.create(h);throw e}}async save(e,t){const{serverSettings:n}=this;const{baseUrl:i,appUrl:s}=n;const{makeRequest:r,ResponseError:a}=o.ServerConnection;const d=i+s;const c=l.url(d,e);const h={body:JSON.stringify(t),method:"PUT"};const u=await r(c,h,n);if(u.status!==204){const e=await a.create(u);throw e}}}t.WorkspaceManager=a;var l;(function(e){function t(e,t){const n=i.URLExt.join(e,r);const s=i.URLExt.join(n,t);if(!s.startsWith(n)){throw new Error("Can only be used for workspaces requests")}return s}e.url=t})(l||(l={}))},34194:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>S});var i=n(94307);var s=n(14366);var o=n(54723);var r=n(26331);var a=n(44539);var l=n(667);var d=n(60075);var c=n(84739);var h=n(94931);var u=n(30619);var p=n(44914);var m=n.n(p);const g=e=>{const t=e.translator.load("jupyterlab");const[n,i]=(0,p.useState)(e.importedSettings.reduce(((e,t)=>{e[t]=true;return e}),{}));const s=(e,t)=>{const s={...n,[e]:t};i(s)};return m().createElement("div",{className:"jp-SettingsImport-container"},m().createElement("div",{className:"jp-SettingsImport-header"},m().createElement("span",{className:"jp-SettingsImport-title"},t.__("Select settings sections to import")),m().createElement("button",{className:"jp-Button jp-mod-styled jp-mod-accept",onClick:()=>{e.handleImport(Object.keys(n).filter((e=>!n[e])))}},t.__("Import"))),m().createElement("div",{className:"jp-SettingsImport-list"},e.importedSettings.map((e=>m().createElement("label",{key:e,className:"jp-SettingsImport-item"},m().createElement("span",{className:"jp-SettingsImport-itemKey"},e),m().createElement("input",{type:"checkbox",checked:n[e],onChange:t=>s(e,t.target.checked),className:"jp-SettingsImport-checkbox"}))))))};class f extends r.ReactWidget{constructor(e){const{importedSettings:t,handleImport:n,translator:i}=e;super();this.importedSettings=t;this.handleImport=n;this.addClass("jp-SettingsImport-widget");this.translator=i}render(){return m().createElement(g,{importedSettings:this.importedSettings,handleImport:this.handleImport,translator:this.translator})}}const v=e=>m().createElement("div",null,m().createElement("div",null,e.successMessage),e.failureMessage&&m().createElement("div",null,m().createElement("br",null),m().createElement("div",null,e.failureMessage),e.failedSettings&&e.failedSettings.map(((e,t)=>m().createElement("div",{key:t},e)))));class _ extends r.ReactWidget{constructor(e){super();this._props=e}render(){return m().createElement(v,{...this._props})}}var b;(function(e){e.open="settingeditor:open";e.openJSON="settingeditor:open-json";e.revert="settingeditor:revert";e.save="settingeditor:save";e.exportSettings="settingeditor:export";e.importSettings="settingeditor:import"})(b||(b={}));const y={id:"@jupyterlab/settingeditor-extension:form-ui",description:"Adds the interactive settings editor and provides its tracker.",requires:[c.ISettingRegistry,h.IStateDB,u.ITranslator,r.IFormRendererRegistry,i.ILabStatus],optional:[i.ILayoutRestorer,s.ICommandPalette,l.F,d.IPluginManager],autoStart:true,provides:l.z,activate:w};function w(e,t,i,o,a,l,d,c,h,u){const p=o.load("jupyterlab");const{commands:m,shell:g}=e;const f="setting-editor";const v=new s.WidgetTracker({namespace:f});if(d){void d.restore(v,{command:b.open,args:e=>({}),name:e=>f})}const _=async e=>{if(v.currentWidget&&!v.currentWidget.isDisposed){if(!v.currentWidget.isAttached){g.add(v.currentWidget,"main",{type:"Settings"})}g.activateById(v.currentWidget.id);if(e.query){v.currentWidget.content.updateQuery(e.query)}return}const d=y.id;const{SettingsEditor:c}=await n.e(6659).then(n.t.bind(n,86659,23));const _=new s.MainAreaWidget({content:new c({editorRegistry:a,key:d,registry:t,state:i,commands:m,toSkip:["@jupyterlab/application-extension:context-menu","@jupyterlab/mainmenu-extension:plugin"],translator:o,status:l,query:e.query})});_.toolbar.addItem("export-settings",new r.CommandToolbarButton({commands:m,id:b.exportSettings,icon:r.downloadIcon,label:p.__("Export"),caption:p.__("Export settings to a JSON file")}));_.toolbar.addItem("import-settings",new r.CommandToolbarButton({commands:m,id:b.importSettings,icon:r.fileUploadIcon,label:p.__("Import"),caption:p.__("Import settings from a JSON file")}));_.toolbar.addItem("spacer",r.Toolbar.createSpacerItem());if(u){_.toolbar.addItem("open-plugin-manager",new r.ToolbarButton({onClick:async()=>{await u.open()},icon:r.launchIcon,label:p.__("Plugin Manager")}))}if(h){_.toolbar.addItem("open-json-editor",new r.CommandToolbarButton({commands:m,id:b.openJSON,icon:r.launchIcon,label:p.__("JSON Settings Editor")}))}_.id=f;_.title.icon=r.settingsIcon;_.title.label=p.__("Settings");_.title.closable=true;void v.add(_);g.add(_,"main",{type:"Settings"})};m.addCommand(b.open,{execute:async e=>{var n;if(e.settingEditorType==="ui"){void m.execute(b.open,{query:(n=e.query)!==null&&n!==void 0?n:""})}else if(e.settingEditorType==="json"){void m.execute(b.openJSON)}else{void t.load(y.id).then((t=>{var n;t.get("settingEditorType").composite==="json"?void m.execute(b.openJSON):void _({query:(n=e.query)!==null&&n!==void 0?n:""})}))}},label:e=>{if(e.label){return e.label}return p.__("Settings Editor")}});if(c){c.addItem({category:p.__("Settings"),command:b.open,args:{settingEditorType:"ui"}})}return v}const C={id:"@jupyterlab/settingeditor-extension:plugin",description:"Adds the JSON settings editor and provides its tracker.",requires:[c.ISettingRegistry,o.IEditorServices,h.IStateDB,a.IRenderMimeRegistry,i.ILabStatus,u.ITranslator],optional:[i.ILayoutRestorer,s.ICommandPalette],autoStart:true,provides:l.F,activate:x};function x(e,t,i,o,a,l,d,c,h){const u=d.load("jupyterlab");const{commands:p,shell:m}=e;const g="json-setting-editor";const v=i.factoryService;const w=v.newInlineEditor;const C=new s.WidgetTracker({namespace:g});if(c){void c.restore(C,{command:b.openJSON,args:e=>({}),name:e=>g})}p.addCommand(b.openJSON,{execute:async()=>{if(C.currentWidget&&!C.currentWidget.isDisposed){if(!C.currentWidget.isAttached){m.add(C.currentWidget,"main",{type:"Advanced Settings"})}m.activateById(C.currentWidget.id);return}const i=y.id;const c=e.restored;const{JsonSettingEditor:h}=await n.e(6659).then(n.t.bind(n,86659,23));const f=new h({commands:{registry:p,revert:b.revert,save:b.save},editorFactory:w,key:i,registry:t,rendermime:a,state:o,translator:d,when:c});let v=null;f.commandsChanged.connect(((e,t)=>{t.forEach((e=>{p.notifyCommandChanged(e)}));if(f.canSaveRaw){if(!v){v=l.setDirty()}}else if(v){v.dispose();v=null}f.disposed.connect((()=>{if(v){v.dispose()}}))}));const _=new s.MainAreaWidget({content:f});_.id=g;_.title.icon=r.settingsIcon;_.title.label=u.__("Advanced Settings Editor");_.title.closable=true;void C.add(_);m.add(_,"main",{type:"Advanced Settings"})},label:u.__("Advanced Settings Editor")});if(h){h.addItem({category:u.__("Settings"),command:b.openJSON})}p.addCommand(b.revert,{execute:()=>{var e;(e=C.currentWidget)===null||e===void 0?void 0:e.content.revert()},icon:r.undoIcon,label:u.__("Revert User Settings"),isEnabled:()=>{var e,t;return(t=(e=C.currentWidget)===null||e===void 0?void 0:e.content.canRevertRaw)!==null&&t!==void 0?t:false}});p.addCommand(b.save,{execute:()=>{var e;return(e=C.currentWidget)===null||e===void 0?void 0:e.content.save()},icon:r.saveIcon,label:u.__("Save User Settings"),isEnabled:()=>{var e,t;return(t=(e=C.currentWidget)===null||e===void 0?void 0:e.content.canSaveRaw)!==null&&t!==void 0?t:false}});p.addCommand(b.exportSettings,{execute:()=>{const e=x(t);const n=JSON.stringify(e,null,2);S(n,"overrides.json")},label:u.__("Export Settings"),icon:r.downloadIcon});p.addCommand(b.importSettings,{execute:()=>{const n=document.createElement("input");n.type="file";n.accept=".json";const i=4;n.addEventListener("change",(async n=>{var o;const a=(o=n.target.files)===null||o===void 0?void 0:o[0];if(!a){return}try{const n=await a.text();const o=JSON.parse(n);if(typeof o!=="object"||Array.isArray(o)){throw new Error("Invalid settings file format")}const l=[];const c=async n=>{var r;const a=Object.entries(o);for(const[e,s]of a){if(typeof s==="object"&&!Array.isArray(s)){try{await t.upload(e,JSON.stringify(s,undefined,i))}catch(d){console.warn(`Failed to save settings for ${e}:`,d);l.push(e)}}else{console.warn(`Invalid settings for plugin ${e}. Skipping.`)}}(r=e.shell.currentWidget)===null||r===void 0?void 0:r.close();if(a.length){const e=a.length-l.length;const t=u.__(`Imported settings across ${e} ${e===1?"category":"categories"} successfully.`);const n=l.length?u.__(`Failed to upload settings for the following ${l.length} ${l.length===1?"plugin":"plugins"}`):"";const i=new _({successMessage:t,failureMessage:n,failedSettings:l});await(0,s.showDialog)({title:u.__("Settings Imported"),body:i,buttons:[s.Dialog.okButton()]})}};const h=Object.keys(o);const p=new f({importedSettings:h,handleImport:c,translator:d});const m=new s.MainAreaWidget({content:p});m.title.label=u.__("Import Settings");m.title.icon=r.fileUploadIcon;e.shell.add(m,"main");e.shell.activateById(m.id)}catch(l){await(0,s.showErrorMessage)("Failed to import settings",l)}}));n.click()},label:u.__("Import Settings"),icon:r.fileUploadIcon});function x(e){const t={};for(const[i,s]of Object.entries(e.plugins)){if(s){try{if(s.raw){const e=s.raw.replace(/\/\/.*$/gm,"");const n=e.replace(/\/\*[\s\S]*?\*\//g,"");const o=JSON.parse(n);if(Object.keys(o).length>0){t[i]=o}}}catch(n){console.error(`Error loading settings for plugin ${i}:`,n)}}}return t}function S(e,t){const n=new Blob([e],{type:"application/json"});const i=URL.createObjectURL(n);const s=document.createElement("a");s.href=i;s.download=t;document.body.appendChild(s);s.click();document.body.removeChild(s);URL.revokeObjectURL(i)}return C}const S=[y,C]},40779:(e,t,n)=>{"use strict";var i=n(40662);var s=n(97913);var o=n(17325);var r=n(5893);var a=n(3579);var l=n(14383);var d=n(10395);var c=n(52638);var h=n(85072);var u=n.n(h);var p=n(97825);var m=n.n(p);var g=n(77659);var f=n.n(g);var v=n(55056);var _=n.n(v);var b=n(10540);var y=n.n(b);var w=n(41113);var C=n.n(w);var x=n(45453);var S={};S.styleTagTransform=C();S.setAttributes=_();S.insert=f().bind(null,"head");S.domAPI=m();S.insertStyleElement=y();var k=u()(x.A,S);const j=x.A&&x.A.locals?x.A.locals:undefined},33296:(e,t,n)=>{"use strict";n.r(t);n.d(t,{IJSONSettingEditorTracker:()=>H.F,ISettingEditorTracker:()=>H.z,JsonSettingEditor:()=>F,SettingsEditor:()=>x});var i=n(14366);var s=n(30619);var o=n(26331);var r=n(2336);var a=n(1143);var l=n(44914);var d=n.n(l);var c=n(34236);var h=n(5592);const u="jupyter.lab.setting-icon";const p="jupyter.lab.setting-icon-class";const m="jupyter.lab.setting-icon-label";class g extends i.ReactWidget{constructor(e){var t,n;super();this._changed=new r.Signal(this);this._handleSelectSignal=new r.Signal(this);this._updateFilterSignal=new r.Signal(this);this._scrollTop=0;this._selection="";this._registry=this.registry=e.registry;this.translator=e.translator||s.nullTranslator;this.addClass("jp-PluginList");this._confirm=e.confirm;this._model=(t=e.model)!==null&&t!==void 0?t:new g.Model(e);this._model.ready.then((()=>{this.update();this._model.changed.connect((()=>{this.update()}))})).catch((e=>{console.error(`Failed to load the plugin list model:\n${e}`)}));this.mapPlugins=this.mapPlugins.bind(this);this.setFilter=this.setFilter.bind(this);this.setFilter(e.query?(0,o.updateFilterFunction)(e.query,false,false):null);this.setError=this.setError.bind(this);this._evtMousedown=this._evtMousedown.bind(this);this._query=(n=e.query)!==null&&n!==void 0?n:"";this._errors={}}get changed(){return this._changed}get scrollTop(){var e;return(e=this.node.querySelector("ul"))===null||e===void 0?void 0:e.scrollTop}get hasErrors(){for(const e in this._errors){if(this._errors[e]){return true}}return false}get filter(){return this._filter}get selection(){return this._selection}set selection(e){this._selection=e;this.update()}get updateFilterSignal(){return this._updateFilterSignal}get handleSelectSignal(){return this._handleSelectSignal}onUpdateRequest(e){const t=this.node.querySelector("ul");if(t&&this._scrollTop!==undefined){t.scrollTop=this._scrollTop}super.onUpdateRequest(e)}_evtMousedown(e){const t=e.currentTarget;const n=t.getAttribute("data-id");if(!n){return}if(this._confirm){this._confirm(n).then((()=>{this.selection=n;this._changed.emit(undefined);this.update()})).catch((()=>{}))}else{this._scrollTop=this.scrollTop;this._selection=n;this._handleSelectSignal.emit(n);this._changed.emit(undefined);this.update()}}getHint(e,t,n){let i=n.data.user[e];if(!i){i=n.data.composite[e]}if(!i){i=n.schema[e]}if(!i){const{properties:n}=t.schema;i=n&&n[e]&&n[e].default}return typeof i==="string"?i:""}getFilterString(e,t,n,i){var s;if(i&&n){i=i.replace("#/definitions/","");t=(s=n[i])!==null&&s!==void 0?s:{}}if(t.properties){t=t.properties}else if(t.items){t=t.items}else{return[]}if(t["$ref"]){return this.getFilterString(e,t,n,t["$ref"])}if(Object.keys(t).length===0){return[]}return Object.keys(t).reduce(((i,s)=>{var o,r;const a=t[s];if(!a){if(e((o=t.title)!==null&&o!==void 0?o:"")){return t.title}if(e(s)){return s}}if(e((r=a.title)!==null&&r!==void 0?r:"")){i.push(a.title)}if(e(s)){i.push(s)}i.concat(this.getFilterString(e,a,n,a["$ref"]));return i}),[])}setFilter(e,t){if(e){this._filter=t=>{var n,i;if(!e||e((n=t.schema.title)!==null&&n!==void 0?n:"")){return null}const s=this.getFilterString(e,(i=t.schema)!==null&&i!==void 0?i:{},t.schema.definitions);return s}}else{this._filter=null}this._query=t;this._updateFilterSignal.emit(this._filter);this.update()}setError(e,t){if(this._errors[e]!==t){this._errors[e]=t;this.update()}else{this._errors[e]=t}}mapPlugins(e){var t,n,i,s;const{id:r,schema:a,version:l}=e;const h=this.translator.load("jupyterlab");const g=typeof a.title==="string"?h._p("schema",a.title):r;const f=c.StringExt.matchSumOfSquares(g.toLocaleLowerCase(),(n=(t=this._query)===null||t===void 0?void 0:t.toLocaleLowerCase())!==null&&n!==void 0?n:"");const v=c.StringExt.highlight(g,(i=f===null||f===void 0?void 0:f.indices)!==null&&i!==void 0?i:[],(e=>d().createElement("mark",null,e)));const _=typeof a.description==="string"?h._p("schema",a.description):"";const b=`${_}\n${r}\n${l}`;const y=this.getHint(u,this._registry,e);const w=this.getHint(p,this._registry,e);const C=this.getHint(m,this._registry,e);const x=this._filter?(s=this._filter(e))===null||s===void 0?void 0:s.map((e=>{var t,n,i;const s=c.StringExt.matchSumOfSquares(e.toLocaleLowerCase(),(n=(t=this._query)===null||t===void 0?void 0:t.toLocaleLowerCase())!==null&&n!==void 0?n:"");const o=c.StringExt.highlight(e,(i=s===null||s===void 0?void 0:s.indices)!==null&&i!==void 0?i:[],(e=>d().createElement("mark",null,e)));return d().createElement("li",{key:`${r}-${e}`}," ",o," ")})):undefined;return d().createElement("div",{onClick:this._evtMousedown,className:`${r===this.selection?"jp-mod-selected jp-PluginList-entry":"jp-PluginList-entry"} ${this._errors[r]?"jp-ErrorPlugin":""}`,"data-id":r,key:r,title:b},d().createElement("div",{className:"jp-PluginList-entry-label",role:"tab"},d().createElement("div",{className:"jp-SelectedIndicator"}),d().createElement(o.LabIcon.resolveReact,{icon:y||(w?undefined:o.settingsIcon),iconClass:(0,o.classes)(w,"jp-Icon"),title:C,tag:"span",stylesheet:"settingsEditor"}),d().createElement("span",{className:"jp-PluginList-entry-label-text"},v)),d().createElement("ul",null,x))}render(){const e=this.translator.load("jupyterlab");const t=this._model.plugins.filter((e=>{if(!this._filter){return false}const t=this._filter(e);return t===null||t.length>0}));const n=t.filter((e=>{var t;return(t=this._model.settings[e.id])===null||t===void 0?void 0:t.isModified}));const i=n.map(this.mapPlugins);const s=t.filter((e=>!n.includes(e))).map(this.mapPlugins);return d().createElement("div",{className:"jp-PluginList-wrapper"},d().createElement(o.FilterBox,{updateFilter:this.setFilter,useFuzzyFilter:false,placeholder:e.__("Search settings…"),forceRefresh:false,caseSensitive:false,initialQuery:this._query}),i.length>0&&d().createElement("div",null,d().createElement("h1",{className:"jp-PluginList-header"},e.__("Modified")),d().createElement("ul",null,i)),s.length>0&&d().createElement("div",null,d().createElement("h1",{className:"jp-PluginList-header"},e.__("Settings")),d().createElement("ul",null,s)),i.length===0&&s.length===0&&d().createElement("p",{className:"jp-PluginList-noResults"},e.__("No items match your search.")))}}(function(e){function t(e){return Object.keys(e.plugins).map((t=>e.plugins[t])).sort(((e,t)=>(e.schema.title||e.id).localeCompare(t.schema.title||t.id)))}e.sortPlugins=t;class n{constructor(e){var t;this._plugins=[];this._changed=new r.Signal(this);this._ready=new h.PromiseDelegate;this._settings={};this._settingsModified={};this._toSkip=(t=e.toSkip)!==null&&t!==void 0?t:[];this._registry=e.registry;this._registry.pluginChanged.connect((async(e,t)=>{let n=false;if(!this._plugins.map((e=>e.id)).includes(t)){this._plugins=this._loadPlugins();n=true}if(!this._settings[t]){const e=this._plugins.filter((e=>e.id===t));await this._loadSettings(e);n=true}if(n){this._changed.emit()}}),this);this._plugins=this._loadPlugins();this._loadSettings(this._plugins).then((()=>{this._ready.resolve(undefined)})).catch((e=>{console.error(`Failed to load the settings:\n${e}`)}))}get plugins(){return this._plugins}get ready(){return this._ready.promise}get settings(){return this._settings}get changed(){return this._changed}_loadPlugins(){return this._sortPlugins(this._registry).filter((e=>{const{schema:t}=e;const n=t["jupyter.lab.setting-deprecated"]===true;const i=Object.keys(t.properties||{}).length>0;const s=t.additionalProperties!==false;const o=!this._toSkip.includes(e.id);return!n&&o&&(i||s)}))}async _loadSettings(e){for(const t of e){const e=await this._registry.load(t.id);e.changed.connect((()=>{if(e.isModified!==this._settingsModified[t.id]){this._changed.emit();this._settingsModified[t.id]=e.isModified}}));this._settings[t.id]=e;this._settingsModified[t.id]=e.isModified}}_sortPlugins(e){return Object.keys(e.plugins).map((t=>e.plugins[t])).sort(((e,t)=>(e.schema.title||e.id).localeCompare(t.schema.title||t.id)))}}e.Model=n})(g||(g={}));var f=n(26568);var v=n(41742);var _=n.n(v);const b=4;class y extends d().Component{constructor(e){super(e);this.reset=async e=>{e.stopPropagation();for(const t in this.props.settings.user){await this.props.settings.remove(t)}this._formData=this.props.settings.composite;this.setState({isModified:false})};this._syncFormDataWithSettings=()=>{this._formData=this.props.settings.composite;this.setState(((e,t)=>({isModified:t.settings.isModified})))};this._onChange=e=>{this.props.hasError(e.errors.length!==0);const t=h.JSONExt.deepCopy(this._formData);if(e.formData){Object.keys(e.formData).forEach((n=>{const i=e.formData;if(i&&n in i){t[n]=i[n]}}))}this._formData=t;if(e.errors.length===0){this.props.updateDirtyState(true);void this._debouncer.invoke()}this.props.onSelect(this.props.settings.id)};const{settings:t}=e;t.changed.connect(this._syncFormDataWithSettings);this._formData=t.composite;this.state={isModified:t.isModified,uiSchema:{},filteredSchema:this.props.settings.schema,formContext:{defaultFormData:this.props.settings.default(),settings:this.props.settings,schema:h.JSONExt.deepCopy(this.props.settings.schema)}};this.handleChange=this.handleChange.bind(this);this._debouncer=new f.Debouncer(this.handleChange)}componentDidMount(){this._setUiSchema();this._setFilteredSchema()}componentDidUpdate(e){this._setUiSchema(e.renderers[e.settings.id]);this._setFilteredSchema(e.filteredValues);if(e.settings!==this.props.settings){this.setState((e=>({formContext:{...e.formContext,settings:this.props.settings,defaultFormData:this.props.settings.default()}})))}}componentWillUnmount(){this._debouncer.dispose()}handleChange(){if(!this.props.settings.isModified&&this._formData&&this.props.settings.isDefault(this._formData)){this.props.updateDirtyState(false);return}this.props.settings.save(JSON.stringify(this._formData,undefined,b)).then((()=>{this.props.updateDirtyState(false);this.setState({isModified:this.props.settings.isModified})})).catch((e=>{this.props.updateDirtyState(false);const t=this.props.translator.load("jupyterlab");void(0,i.showErrorMessage)(t.__("Error saving settings."),e)}))}render(){const e=this.props.translator.load("jupyterlab");return d().createElement(d().Fragment,null,d().createElement("div",{className:"jp-SettingsHeader"},d().createElement("h2",{className:"jp-SettingsHeader-title",title:this.props.settings.schema.description},this.props.settings.schema.title),d().createElement("div",{className:"jp-SettingsHeader-buttonbar"},this.state.isModified&&d().createElement(o.Button,{className:"jp-RestoreButton",onClick:this.reset},e.__("Restore to Defaults"))),d().createElement("div",{className:"jp-SettingsHeader-description"},this.props.settings.schema.description)),d().createElement(o.FormComponent,{validator:_(),schema:this.state.filteredSchema,formData:this._getFilteredFormData(this.state.filteredSchema),uiSchema:this.state.uiSchema,fields:this.props.renderers[this.props.settings.id],formContext:this.state.formContext,liveValidate:true,idPrefix:`jp-SettingsEditor-${this.props.settings.id}`,onChange:this._onChange,translator:this.props.translator,experimental_defaultFormStateBehavior:{emptyObjectFields:"populateRequiredDefaults"}}))}_setUiSchema(e){var t;const n=this.props.renderers[this.props.settings.id];if(!h.JSONExt.deepEqual(Object.keys(e!==null&&e!==void 0?e:{}).sort(),Object.keys(n!==null&&n!==void 0?n:{}).sort())){const e={};for(const n in this.props.renderers[this.props.settings.id]){if(Object.keys((t=this.props.settings.schema.properties)!==null&&t!==void 0?t:{}).includes(n)){e[n]={"ui:field":n}}}this.setState({uiSchema:e})}}_setFilteredSchema(e){var t,n,i,s;if(e===undefined||!h.JSONExt.deepEqual(e,this.props.filteredValues)||!h.JSONExt.deepEqual(this.state.formContext.schema,this.props.settings.schema)){const e=h.JSONExt.deepCopy(this.props.settings.schema);if((n=(t=this.props.filteredValues)===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0>0){for(const t in e.properties){if(!((i=this.props.filteredValues)===null||i===void 0?void 0:i.includes((s=e.properties[t].title)!==null&&s!==void 0?s:t))){delete e.properties[t]}}}this.setState((t=>({filteredSchema:e,formContext:{...t.formContext,schema:h.JSONExt.deepCopy(this.props.settings.schema)}})))}}_getFilteredFormData(e){if(!(e===null||e===void 0?void 0:e.properties)){return this._formData}const t=h.JSONExt.deepCopy(this._formData);for(const n in t){if(!e.properties[n]){delete t[n]}}return t}}const w=({translator:e})=>{const t=e.load("jupyterlab");return d().createElement("div",{className:"jp-SettingsEditor-placeholder"},d().createElement("div",{className:"jp-SettingsEditor-placeholderContent"},d().createElement("h3",null,t.__("No Plugin Selected")),d().createElement("p",null,t.__("Select a plugin from the list to view and edit its preferences."))))};const C=({settings:e,editorRegistry:t,onSelect:n,handleSelectSignal:i,hasError:s,updateDirtyState:o,updateFilterSignal:r,translator:a,initialFilter:c})=>{const[h,u]=(0,l.useState)(null);const[p,m]=(0,l.useState)(c?()=>c:null);const g=d().useRef(null);const f=d().useRef({});(0,l.useEffect)((()=>{var e;const t=(e,t)=>{t?m((()=>t)):m(null)};r.connect(t);const n=(e,t)=>{u(t)};(e=i===null||i===void 0?void 0:i.connect)===null||e===void 0?void 0:e.call(i,n);return()=>{var e;r.disconnect(t);(e=i===null||i===void 0?void 0:i.disconnect)===null||e===void 0?void 0:e.call(i,n)}}),[]);const v=d().useCallback(((e,t)=>{if(f.current){f.current[e]=t;for(const e in f.current){if(f.current[e]){o(true);return}}}o(false)}),[f,o]);const _=d().useMemo((()=>Object.entries(t.renderers).reduce(((e,[t,n])=>{const i=t.lastIndexOf(".");const s=t.substring(0,i);const o=t.substring(i+1);if(!e[s]){e[s]={}}if(!e[s][o]&&n.fieldRenderer){e[s][o]=n.fieldRenderer}return e}),{})),[t]);if(!h&&!p){return d().createElement(w,{translator:a})}return d().createElement("div",{className:"jp-SettingsPanel",ref:g},e.map((e=>{const t=p?p(e.plugin):null;if(h&&h!==e.id||t!==null&&t.length===0){return undefined}return d().createElement("div",{className:"jp-SettingsForm",key:`${e.id}SettingsEditor`},d().createElement(y,{filteredValues:t,settings:e,renderers:_,hasError:t=>{s(e.id,t)},updateDirtyState:t=>{v(e.id,t)},onSelect:n,translator:a}))})))};class x extends a.SplitPanel{constructor(e){super({orientation:"horizontal",renderer:a.SplitPanel.defaultRenderer,spacing:1});this._clearDirty=null;this._dirty=false;this._saveStateChange=new r.Signal(this);this.translator=e.translator||s.nullTranslator;this._status=e.status;this._listModel=new g.Model({registry:e.registry,toSkip:e.toSkip});this._list=new g({registry:e.registry,translator:this.translator,query:e.query,model:this._listModel});this._listModel.changed.connect((()=>{this.update()}));this.addWidget(this._list);this.setDirtyState=this.setDirtyState.bind(this);const t=o.ReactWidget.create(d().createElement(o.UseSignal,{signal:this._listModel.changed},(()=>d().createElement(C,{settings:[...Object.values(this._listModel.settings)],editorRegistry:e.editorRegistry,handleSelectSignal:this._list.handleSelectSignal,onSelect:e=>this._list.selection=e,hasError:this._list.setError,updateFilterSignal:this._list.updateFilterSignal,updateDirtyState:this.setDirtyState,translator:this.translator,initialFilter:this._list.filter}))));this._listModel.ready.then((()=>{this.addWidget(t)})).catch((e=>{console.error(`Failed to load the setting plugins:\n${e}`)}))}get saveStateChanged(){return this._saveStateChange}setDirtyState(e){this._dirty=e;if(this._dirty&&!this._clearDirty){this._clearDirty=this._status.setDirty()}else if(!this._dirty&&this._clearDirty){this._clearDirty.dispose();this._clearDirty=null}if(e){if(!this.title.className.includes("jp-mod-dirty")){this.title.className+=" jp-mod-dirty"}}else{this.title.className=this.title.className.replace("jp-mod-dirty","")}this._saveStateChange.emit(e?"started":"completed")}updateQuery(e){this._list.setFilter(e?(0,o.updateFilterFunction)(e,false,false):null,e)}onCloseRequest(e){const t=this.translator.load("jupyterlab");if(this._list.hasErrors){void(0,i.showDialog)({title:t.__("Warning"),body:t.__("Unsaved changes due to validation error. Continue without saving?")}).then((t=>{if(t.button.accept){this.dispose();super.onCloseRequest(e)}}))}else if(this._dirty){void(0,i.showDialog)({title:t.__("Warning"),body:t.__("Some changes have not been saved. Continue without saving?")}).then((t=>{if(t.button.accept){this.dispose();super.onCloseRequest(e)}}))}else{this.dispose();super.onCloseRequest(e)}}}var S=n(54723);var k=n(65743);var j=n(44539);var I=n(94931);function E(e,t,n){n=n||s.nullTranslator;const i=n.load("jupyterlab");const o=new T(e,n);const r=new k.InspectorPanel({initialContent:i.__("Any errors will be listed here"),translator:n});const a=new k.InspectionHandler({connector:o,rendermime:t||new j.RenderMimeRegistry({initialFactories:j.standardRendererFactories,translator:n})});r.addClass("jp-SettingsDebug");r.source=a;a.editor=e.source;return r}class T extends I.DataConnector{constructor(e,t){super();this._current=0;this._editor=e;this._trans=(t!==null&&t!==void 0?t:s.nullTranslator).load("jupyterlab")}fetch(e){return new Promise((t=>{const n=this._current=window.setTimeout((()=>{if(n!==this._current){return t(undefined)}const i=this._validate(e.text);if(!i){return t({data:{"text/markdown":this._trans.__("No errors found")},metadata:{}})}t({data:this.render(i),metadata:{}})}),100)}))}render(e){return{"text/markdown":e.map(this.renderError.bind(this)).join("")}}renderError(e){var t;switch(e.keyword){case"additionalProperties":return`**\`[${this._trans.__("additional property error")}]\`**\n ${this._trans.__("`%1` is not a valid property",(t=e.params)===null||t===void 0?void 0:t.additionalProperty)}`;case"syntax":return`**\`[${this._trans.__("syntax error")}]\`** *${e.message}*`;case"type":return`**\`[${this._trans.__("type error")}]\`**\n \`${e.instancePath}\` ${e.message}`;default:return`**\`[${this._trans.__("error")}]\`** *${e.message}*`}}_validate(e){const t=this._editor;if(!t.settings){return null}const{id:n,schema:i,version:s}=t.settings;const o={composite:{},user:{}};const r=t.registry.validator;return r.validateData({data:o,id:n,raw:e,schema:i,version:s},false)}}const M="jp-SettingsRawEditor";const D="jp-SettingsRawEditor-user";const A="jp-mod-error";class P extends a.SplitPanel{constructor(e){super({orientation:"horizontal",renderer:a.SplitPanel.defaultRenderer,spacing:1});this._canRevert=false;this._canSave=false;this._commandsChanged=new r.Signal(this);this._settings=null;this._toolbar=new o.Toolbar;const{commands:t,editorFactory:n,registry:i,translator:l}=e;this.registry=i;this.translator=l||s.nullTranslator;this._commands=t;const d=this._defaults=new S.CodeEditorWrapper({editorOptions:{config:{readOnly:true}},model:new S.CodeEditor.Model({mimeType:"text/javascript"}),factory:n});const c=this._user=new S.CodeEditorWrapper({editorOptions:{config:{lineNumbers:true}},model:new S.CodeEditor.Model({mimeType:"text/javascript"}),factory:n});c.addClass(D);c.editor.model.sharedModel.changed.connect(this._onTextChanged,this);this._inspector=E(this,e.rendermime,this.translator);this.addClass(M);this._onSaveError=e.onSaveError;this.addWidget(L.defaultsEditor(d,this.translator));this.addWidget(L.userEditor(c,this._toolbar,this._inspector,this.translator))}get canRevert(){return this._canRevert}get canSave(){return this._canSave}get commandsChanged(){return this._commandsChanged}get isDirty(){var e,t;return(t=this._user.editor.model.sharedModel.getSource()!==((e=this._settings)===null||e===void 0?void 0:e.raw))!==null&&t!==void 0?t:""}get settings(){return this._settings}set settings(e){if(!e&&!this._settings){return}const t=e&&this._settings&&e.plugin===this._settings.plugin;if(t){return}const n=this._defaults;const i=this._user;if(this._settings){this._settings.changed.disconnect(this._onSettingsChanged,this)}if(e){this._settings=e;this._settings.changed.connect(this._onSettingsChanged,this);this._onSettingsChanged()}else{this._settings=null;n.editor.model.sharedModel.setSource("");i.editor.model.sharedModel.setSource("")}this.update()}get sizes(){return this.relativeSizes()}set sizes(e){this.setRelativeSizes(e)}get source(){return this._user.editor}dispose(){if(this.isDisposed){return}this._defaults.model.dispose();this._defaults.dispose();this._user.model.dispose();this._user.dispose();super.dispose()}revert(){var e,t;this._user.editor.model.sharedModel.setSource((t=(e=this.settings)===null||e===void 0?void 0:e.raw)!==null&&t!==void 0?t:"");this._updateToolbar(false,false)}save(){if(!this.isDirty||!this._settings){return Promise.resolve(undefined)}const e=this._settings;const t=this._user.editor.model.sharedModel.getSource();return e.save(t).then((()=>{this._updateToolbar(false,false)})).catch((e=>{this._updateToolbar(true,false);this._onSaveError(e,this.translator)}))}onAfterAttach(e){L.populateToolbar(this._commands,this._toolbar);this.update()}_onTextChanged(){const e=this._user.editor.model.sharedModel.getSource();const t=this._settings;this.removeClass(A);if(!t||t.raw===e){this._updateToolbar(false,false);return}const n=t.validate(e);if(n){this.addClass(A);this._updateToolbar(true,false);return}this._updateToolbar(true,true)}_onSettingsChanged(){var e,t;const n=this._settings;const i=this._defaults;const s=this._user;i.editor.model.sharedModel.setSource((e=n===null||n===void 0?void 0:n.annotatedDefaults())!==null&&e!==void 0?e:"");s.editor.model.sharedModel.setSource((t=n===null||n===void 0?void 0:n.raw)!==null&&t!==void 0?t:"")}_updateToolbar(e=this._canRevert,t=this._canSave){const n=this._commands;this._canRevert=e;this._canSave=t;this._commandsChanged.emit([n.revert,n.save])}}var L;(function(e){function t(e,t){t=t||s.nullTranslator;const n=t.load("jupyterlab");const i=new a.Widget;const r=i.layout=new a.BoxLayout({spacing:0});const l=new a.Widget;const d=new o.Toolbar;d.node.setAttribute("aria-label",n.__("Default editor toolbar"));const c=n.__("System Defaults");l.node.innerText=c;d.insertItem(0,"banner",l);r.addWidget(d);r.addWidget(e);return i}e.defaultsEditor=t;function n(e,t){const{registry:n,revert:i,save:s}=e;t.addItem("spacer",o.Toolbar.createSpacerItem());[i,s].forEach((e=>{const i=new o.CommandToolbarButton({commands:n,id:e});t.addItem(e,i)}))}e.populateToolbar=n;function i(e,t,n,i){i=i||s.nullTranslator;const o=i.load("jupyterlab");const r=o.__("User Preferences");const l=new a.Widget;const d=l.layout=new a.BoxLayout({spacing:0});const c=new a.Widget;c.node.innerText=r;t.insertItem(0,"banner",c);d.addWidget(t);d.addWidget(e);d.addWidget(n);return l}e.userEditor=i})(L||(L={}));const R="jp-PluginEditor";class N extends a.Widget{constructor(e){super();this._settings=null;this._stateChanged=new r.Signal(this);this.addClass(R);const{commands:t,editorFactory:n,registry:i,rendermime:o,translator:l}=e;this.translator=l||s.nullTranslator;this._trans=this.translator.load("jupyterlab");const d=this.layout=new a.StackedLayout;const{onSaveError:c}=O;this.raw=this._rawEditor=new P({commands:t,editorFactory:n,onSaveError:c,registry:i,rendermime:o,translator:l});this._rawEditor.handleMoved.connect(this._onStateChanged,this);d.addWidget(this._rawEditor)}get isDirty(){return this._rawEditor.isDirty}get settings(){return this._settings}set settings(e){if(this._settings===e){return}const t=this._rawEditor;this._settings=t.settings=e;this.update()}get state(){const e=this._settings?this._settings.id:"";const{sizes:t}=this._rawEditor;return{plugin:e,sizes:t}}set state(e){if(h.JSONExt.deepEqual(this.state,e)){return}this._rawEditor.sizes=e.sizes;this.update()}get stateChanged(){return this._stateChanged}confirm(){if(this.isHidden||!this.isAttached||!this.isDirty){return Promise.resolve(undefined)}return(0,i.showDialog)({title:this._trans.__("You have unsaved changes."),body:this._trans.__("Do you want to leave without saving?"),buttons:[i.Dialog.cancelButton({label:this._trans.__("Cancel")}),i.Dialog.okButton({label:this._trans.__("Ok")})]}).then((e=>{if(!e.button.accept){throw new Error("User canceled.")}}))}dispose(){if(this.isDisposed){return}super.dispose();this._rawEditor.dispose()}onAfterAttach(e){this.update()}onUpdateRequest(e){const t=this._rawEditor;const n=this._settings;if(!n){this.hide();return}this.show();t.show()}_onStateChanged(){this.stateChanged.emit(undefined)}}var O;(function(e){function t(e,t){t=t||s.nullTranslator;const n=t.load("jupyterlab");console.error(`Saving setting editor value failed: ${e.message}`);void(0,i.showErrorMessage)(n.__("Your changes were not saved."),e)}e.onSaveError=t})(O||(O={}));const B={sizes:[1,3],container:{editor:"raw",plugin:"",sizes:[1,1]}};class F extends a.SplitPanel{constructor(e){super({orientation:"horizontal",renderer:a.SplitPanel.defaultRenderer,spacing:1});this._fetching=null;this._saving=false;this._state=h.JSONExt.deepCopy(B);this.translator=e.translator||s.nullTranslator;this.addClass("jp-SettingEditor");this.key=e.key;this.state=e.state;const{commands:t,editorFactory:n,rendermime:i}=e;const r=this.registry=e.registry;const d=this._instructions=o.ReactWidget.create(l.createElement(w,{translator:this.translator}));d.addClass("jp-SettingEditorInstructions");const c=this._editor=new N({commands:t,editorFactory:n,registry:r,rendermime:i,translator:this.translator});const u=()=>c.confirm();const p=this._list=new g({confirm:u,registry:r,translator:this.translator});const m=e.when;if(m){this._when=Array.isArray(m)?Promise.all(m):m}this.addWidget(p);this.addWidget(d);a.SplitPanel.setStretch(p,0);a.SplitPanel.setStretch(d,1);a.SplitPanel.setStretch(c,1);c.stateChanged.connect(this._onStateChanged,this);p.changed.connect(this._onStateChanged,this);this.handleMoved.connect(this._onStateChanged,this)}get canRevertRaw(){return this._editor.raw.canRevert}get canSaveRaw(){return this._editor.raw.canSave}get commandsChanged(){return this._editor.raw.commandsChanged}get settings(){return this._editor.settings}get source(){return this._editor.raw.source}dispose(){if(this.isDisposed){return}super.dispose();this._editor.dispose();this._instructions.dispose();this._list.dispose()}revert(){this._editor.raw.revert()}save(){return this._editor.raw.save()}onAfterAttach(e){super.onAfterAttach(e);this.hide();this._fetchState().then((()=>{this.show();this._setState()})).catch((e=>{console.error("Fetching setting editor state failed",e);this.show();this._setState()}))}onCloseRequest(e){this._editor.confirm().then((()=>{super.onCloseRequest(e);this.dispose()})).catch((()=>{}))}_fetchState(){if(this._fetching){return this._fetching}const{key:e,state:t}=this;const n=[t.fetch(e),this._when];return this._fetching=Promise.all(n).then((([e])=>{this._fetching=null;if(this._saving){return}this._state=z.normalizeState(e,this._state)}))}async _onStateChanged(){this._state.sizes=this.relativeSizes();this._state.container=this._editor.state;this._state.container.plugin=this._list.selection;try{await this._saveState()}catch(e){console.error("Saving setting editor state failed",e)}this._setState()}async _saveState(){const{key:e,state:t}=this;const n=this._state;this._saving=true;try{await t.save(e,n);this._saving=false}catch(i){this._saving=false;throw i}}_setLayout(){const e=this._editor;const t=this._state;e.state=t.container;requestAnimationFrame((()=>{this.setRelativeSizes(t.sizes)}))}_setState(){const e=this._editor;const t=this._list;const{container:n}=this._state;if(!n.plugin){e.settings=null;t.selection="";this._setLayout();return}if(e.settings&&e.settings.id===n.plugin){this._setLayout();return}const i=this._instructions;this.registry.load(n.plugin).then((s=>{if(i.isAttached){i.parent=null}if(!e.isAttached){this.addWidget(e)}e.settings=s;t.selection=n.plugin;this._setLayout()})).catch((i=>{console.error(`Loading ${n.plugin} settings failed.`,i);t.selection=this._state.container.plugin="";e.settings=null;this._setLayout()}))}}var z;(function(e){function t(e,t){if(!e){return h.JSONExt.deepCopy(B)}if(!("sizes"in e)||!n(e.sizes)){e.sizes=h.JSONExt.deepCopy(B.sizes)}if(!("container"in e)){e.container=h.JSONExt.deepCopy(B.container);return e}const i="container"in e&&e.container&&typeof e.container==="object"?e.container:{};e.container={plugin:typeof i.plugin==="string"?i.plugin:B.container.plugin,sizes:n(i.sizes)?i.sizes:h.JSONExt.deepCopy(B.container.sizes)};return e}e.normalizeState=t;function n(e){return Array.isArray(e)&&e.every((e=>typeof e==="number"))}})(z||(z={}));var H=n(667)},667:(e,t,n)=>{"use strict";n.d(t,{F:()=>r,z:()=>o});var i=n(5592);var s=n.n(i);const o=new i.Token("@jupyterlab/settingeditor:ISettingEditorTracker",`A widget tracker for the interactive setting editor.\n Use this if you want to be able to iterate over and interact with setting editors\n created by the application.`);const r=new i.Token("@jupyterlab/settingeditor:IJSONSettingEditorTracker",`A widget tracker for the JSON setting editor.\n Use this if you want to be able to iterate over and interact with setting editors\n created by the application.`)},63075:(e,t,n)=>{"use strict";n.r(t);n.d(t,{BaseSettings:()=>f,DefaultSchemaValidator:()=>m,ISettingConnector:()=>b,ISettingRegistry:()=>y,SettingRegistry:()=>g,Settings:()=>v});var i=n(93247);var s=n(5592);var o=n(90044);var r=n(2336);var a=n(63282);var l=n.n(a);var d=n(81219);const c=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema","title":"JupyterLab Plugin Settings/Preferences Schema","description":"JupyterLab plugin settings/preferences schema","version":"1.0.0","type":"object","additionalProperties":true,"properties":{"jupyter.lab.internationalization":{"type":"object","properties":{"selectors":{"type":"array","items":{"type":"string","minLength":1}},"domain":{"type":"string","minLength":1}}},"jupyter.lab.menus":{"type":"object","properties":{"main":{"title":"Main menu entries","description":"List of menu items to add to the main menubar.","items":{"$ref":"#/definitions/menu"},"type":"array","default":[]},"context":{"title":"The application context menu.","description":"List of context menu items.","items":{"allOf":[{"$ref":"#/definitions/menuItem"},{"properties":{"selector":{"description":"The CSS selector for the context menu item.","type":"string"}}}]},"type":"array","default":[]}},"additionalProperties":false},"jupyter.lab.metadataforms":{"items":{"$ref":"#/definitions/metadataForm"},"type":"array","default":[]},"jupyter.lab.setting-deprecated":{"type":"boolean","default":false},"jupyter.lab.setting-icon":{"type":"string","default":""},"jupyter.lab.setting-icon-class":{"type":"string","default":""},"jupyter.lab.setting-icon-label":{"type":"string","default":"Plugin"},"jupyter.lab.shortcuts":{"items":{"$ref":"#/definitions/shortcut"},"type":"array","default":[]},"jupyter.lab.toolbars":{"properties":{"^\\\\w[\\\\w-\\\\.]*$":{"items":{"$ref":"#/definitions/toolbarItem"},"type":"array","default":[]}},"type":"object","default":{}},"jupyter.lab.transform":{"type":"boolean","default":false}},"definitions":{"menu":{"properties":{"disabled":{"description":"Whether the menu is disabled or not","type":"boolean","default":false},"icon":{"description":"Menu icon id","type":"string"},"id":{"description":"Menu unique id","oneOf":[{"type":"string","enum":["jp-menu-file","jp-menu-file-new","jp-menu-edit","jp-menu-help","jp-menu-kernel","jp-menu-run","jp-menu-settings","jp-menu-view","jp-menu-tabs"]},{"type":"string","pattern":"[a-z][a-z0-9\\\\-_]+"}]},"items":{"description":"Menu items","type":"array","items":{"$ref":"#/definitions/menuItem"}},"label":{"description":"Menu label","type":"string"},"mnemonic":{"description":"Mnemonic index for the label","type":"number","minimum":-1,"default":-1},"rank":{"description":"Menu rank","type":"number","minimum":0}},"required":["id"],"type":"object"},"menuItem":{"properties":{"args":{"description":"Command arguments","type":"object"},"command":{"description":"Command id","type":"string"},"disabled":{"description":"Whether the item is disabled or not","type":"boolean","default":false},"type":{"description":"Item type","type":"string","enum":["command","submenu","separator"],"default":"command"},"rank":{"description":"Item rank","type":"number","minimum":0},"submenu":{"oneOf":[{"$ref":"#/definitions/menu"},{"type":"null"}]}},"type":"object"},"shortcut":{"properties":{"args":{"title":"The arguments for the command","type":"object"},"command":{"title":"The command id","description":"The command executed when the binding is matched.","type":"string"},"disabled":{"description":"Whether this shortcut is disabled or not.","type":"boolean","default":false},"keys":{"title":"The key sequence for the binding","description":"The key shortcut like `Accel A` or the sequence of shortcuts to press like [`Accel A`, `B`]","items":{"type":"string"},"type":"array"},"macKeys":{"title":"The key sequence for the binding on macOS","description":"The key shortcut like `Cmd A` or the sequence of shortcuts to press like [`Cmd A`, `B`]","items":{"type":"string"},"type":"array"},"winKeys":{"title":"The key sequence for the binding on Windows","description":"The key shortcut like `Ctrl A` or the sequence of shortcuts to press like [`Ctrl A`, `B`]","items":{"type":"string"},"type":"array"},"linuxKeys":{"title":"The key sequence for the binding on Linux","description":"The key shortcut like `Ctrl A` or the sequence of shortcuts to press like [`Ctrl A`, `B`]","items":{"type":"string"},"type":"array"},"selector":{"title":"CSS selector","type":"string"}},"required":["command","keys","selector"],"type":"object"},"toolbarItem":{"properties":{"name":{"title":"Unique name","type":"string"},"args":{"title":"Command arguments","type":"object"},"command":{"title":"Command id","type":"string","default":""},"disabled":{"title":"Whether the item is ignored or not","type":"boolean","default":false},"icon":{"title":"Item icon id","description":"If defined, it will override the command icon","type":"string"},"label":{"title":"Item label","description":"If defined, it will override the command label","type":"string"},"caption":{"title":"Item caption","description":"If defined, it will override the command caption","type":"string"},"type":{"title":"Item type","type":"string","enum":["command","spacer"]},"rank":{"title":"Item rank","type":"number","minimum":0,"default":50}},"required":["name"],"additionalProperties":false,"type":"object"},"metadataForm":{"type":"object","properties":{"id":{"type":"string","description":"The section ID"},"metadataSchema":{"type":"object","items":{"$ref":"#/definitions/metadataSchema"}},"uiSchema":{"type":"object"},"metadataOptions":{"type":"object","items":{"$ref":"#/definitions/metadataOptions"}},"label":{"type":"string","description":"The section label"},"rank":{"type":"integer","description":"The rank of the section in the right panel"},"showModified":{"type":"boolean","description":"Whether to show modified values from defaults"}},"required":["id","metadataSchema"]},"metadataSchema":{"properties":{"properties":{"type":"object","description":"The property set up by extension","properties":{"title":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"}}}},"type":"object","required":["properties"]},"metadataOptions":{"properties":{"customRenderer":{"type":"string"},"metadataLevel":{"type":"string","enum":["cell","notebook"],"default":"cell"},"cellTypes":{"type":"array","items":{"type":"string","enum":["code","markdown","raw"]}},"writeDefault":{"type":"boolean"}},"type":"object"}}}');const h=s.JSONExt.deepCopy;const u={strict:false};const p=String.fromCharCode(30);class m{constructor(){this._composer=new(l())({useDefaults:true,...u});this._validator=new(l())({...u});this._composer.addSchema(c,"jupyterlab-plugin-schema");this._validator.addSchema(c,"jupyterlab-plugin-schema")}validateData(e,t=true){const n=this._validator.getSchema(e.id);const i=this._composer.getSchema(e.id);if(!n||!i){if(e.schema.type!=="object"){const t="schema";const n=`Setting registry schemas' root-level type must be `+`'object', rejecting type: ${e.schema.type}`;return[{instancePath:"type",keyword:t,schemaPath:"",message:n}]}const t=this._addSchema(e.id,e.schema);return t||this.validateData(e)}let s;try{s=d.parse(e.raw)}catch(r){if(r instanceof SyntaxError){return[{instancePath:"",keyword:"syntax",schemaPath:"",message:r.message}]}const{column:e,description:t}=r;const n=r.lineNumber;return[{instancePath:"",keyword:"parse",schemaPath:"",message:`${t} (line ${n} column ${e})`}]}if(!n(s)){return n.errors}const o=h(s);if(!i(o)){return i.errors}if(t){e.data={composite:o,user:s}}return null}_addSchema(e,t){const n=this._composer;const i=this._validator;const s=i.getSchema("jupyterlab-plugin-schema");if(!s(t)){return s.errors}if(!i.validateSchema(t)){return i.errors}n.removeSchema(e);i.removeSchema(e);n.addSchema(t,e);i.addSchema(t,e);return null}}class g{constructor(e){this.schema=c;this.plugins=Object.create(null);this._pluginChanged=new r.Signal(this);this._ready=Promise.resolve();this._transformers=Object.create(null);this._unloadedPlugins=new Map;this.connector=e.connector;this.validator=e.validator||new m;if(e.plugins){e.plugins.filter((e=>e.schema["jupyter.lab.transform"])).forEach((e=>this._unloadedPlugins.set(e.id,e)));this._ready=this._preload(e.plugins)}}get pluginChanged(){return this._pluginChanged}async get(e,t){await this._ready;const n=this.plugins;if(e in n){const{composite:i,user:s}=n[e].data;return{composite:i[t]!==undefined?h(i[t]):undefined,user:s[t]!==undefined?h(s[t]):undefined}}return this.load(e).then((()=>this.get(e,t)))}async load(e,t=false){await this._ready;const n=this.plugins;const i=this;if(e in n){if(t){n[e].data={composite:{},user:{}};await this._load(await this._transform("fetch",n[e]));this._pluginChanged.emit(e)}return new v({plugin:n[e],registry:i})}if(this._unloadedPlugins.has(e)&&e in this._transformers){await this._load(await this._transform("fetch",this._unloadedPlugins.get(e)));if(e in n){this._pluginChanged.emit(e);this._unloadedPlugins.delete(e);return new v({plugin:n[e],registry:i})}}return this.reload(e)}async reload(e){await this._ready;const t=await this.connector.fetch(e);const n=this.plugins;const i=this;if(t===undefined){throw[{instancePath:"",keyword:"id",message:`Could not fetch settings for ${e}.`,schemaPath:""}]}await this._load(await this._transform("fetch",t));this._pluginChanged.emit(e);return new v({plugin:n[e],registry:i})}async remove(e,t){await this._ready;const n=this.plugins;if(!(e in n)){return}const i=d.parse(n[e].raw);delete i[t];delete i[`// ${t}`];n[e].raw=_.annotatedPlugin(n[e],i);return this._save(e)}async set(e,t,n){await this._ready;const i=this.plugins;if(!(e in i)){return this.load(e).then((()=>this.set(e,t,n)))}const s=d.parse(i[e].raw);i[e].raw=_.annotatedPlugin(i[e],{...s,[t]:n});return this._save(e)}transform(e,t){const n=this._transformers;if(e in n){const t=new Error(`${e} already has a transformer.`);t.name="TransformError";throw t}n[e]={fetch:t.fetch||(e=>e),compose:t.compose||(e=>e)};return new o.DisposableDelegate((()=>{delete n[e]}))}async upload(e,t){await this._ready;const n=this.plugins;if(!(e in n)){return this.load(e).then((()=>this.upload(e,t)))}n[e].raw=t;return this._save(e)}get ready(){return this._ready}async _load(e){const t=e.id;try{await this._validate(e)}catch(n){const e=[`Validating ${t} failed:`];n.forEach(((t,n)=>{const{instancePath:i,schemaPath:s,keyword:o,message:r}=t;if(i||s){e.push(`${n} - schema @ ${s}, data @ ${i}`)}e.push(`{${o}} ${r}`)}));console.warn(e.join("\n"));throw n}}async _preload(e){await Promise.all(e.map((async e=>{var t;try{await this._load(await this._transform("fetch",e))}catch(n){if(((t=n[0])===null||t===void 0?void 0:t.keyword)!=="unset"){console.warn("Ignored setting registry preload errors.",n)}}})))}async _save(e){const t=this.plugins;if(!(e in t)){throw new Error(`${e} does not exist in setting registry.`)}try{await this._validate(t[e])}catch(i){console.warn(`${e} validation errors:`,i);throw new Error(`${e} failed to validate; check console.`)}await this.connector.save(e,t[e].raw);const n=await this.connector.fetch(e);if(n===undefined){throw[{instancePath:"",keyword:"id",message:`Could not fetch settings for ${e}.`,schemaPath:""}]}await this._load(await this._transform("fetch",n));this._pluginChanged.emit(e)}async _transform(e,t){const n=t.id;const i=this._transformers;if(!t.schema["jupyter.lab.transform"]){return t}if(n in i){const s=i[n][e].call(null,t);if(s.id!==n){throw[{instancePath:"",keyword:"id",message:"Plugin transformations cannot change plugin IDs.",schemaPath:""}]}return s}throw[{instancePath:"",keyword:"unset",message:`${t.id} has no transformers yet.`,schemaPath:""}]}async _validate(e){const t=this.validator.validateData(e);if(t){throw t}this.plugins[e.id]=await this._transform("compose",e)}}class f{constructor(e){this._schema=e.schema}get schema(){return this._schema}isDefault(e){for(const t in this.schema.properties){const n=e[t];const i=this.default(t);if(n===undefined||i===undefined||s.JSONExt.deepEqual(n,s.JSONExt.emptyObject)||s.JSONExt.deepEqual(n,s.JSONExt.emptyArray)){continue}if(!s.JSONExt.deepEqual(n,i)){return false}}return true}default(e){return _.reifyDefault(this.schema,e)}}class v extends f{constructor(e){super({schema:e.plugin.schema});this._changed=new r.Signal(this);this._isDisposed=false;this.id=e.plugin.id;this.registry=e.registry;this.registry.pluginChanged.connect(this._onPluginChanged,this)}get changed(){return this._changed}get composite(){return this.plugin.data.composite}get isDisposed(){return this._isDisposed}get plugin(){return this.registry.plugins[this.id]}get raw(){return this.plugin.raw}get isModified(){return!this.isDefault(this.user)}get user(){return this.plugin.data.user}get version(){return this.plugin.version}annotatedDefaults(){return _.annotatedDefaults(this.schema,this.id)}dispose(){if(this._isDisposed){return}this._isDisposed=true;r.Signal.clearData(this)}get(e){const{composite:t,user:n}=this;return{composite:t[e]!==undefined?h(t[e]):undefined,user:n[e]!==undefined?h(n[e]):undefined}}remove(e){return this.registry.remove(this.plugin.id,e)}save(e){return this.registry.upload(this.plugin.id,e)}set(e,t){return this.registry.set(this.plugin.id,e,t)}validate(e){const t={composite:{},user:{}};const{id:n,schema:i}=this.plugin;const s=this.registry.validator;const o=this.version;return s.validateData({data:t,id:n,raw:e,schema:i,version:o},false)}_onPluginChanged(e,t){if(t===this.plugin.id){this._changed.emit(undefined)}}}(function(e){function t(e,t,i=false,o=true){if(!e){return t&&o?s.JSONExt.deepCopy(t):[]}if(!t){return s.JSONExt.deepCopy(e)}const r=s.JSONExt.deepCopy(e);t.forEach((e=>{const t=r.findIndex((t=>t.id===e.id));if(t>=0){r[t]={...r[t],...e,items:n(r[t].items,e.items,i,o)}}else{if(o){r.push(e)}}}));return r}e.reconcileMenus=t;function n(e,n,i=false,o=true){if(!e){return n?s.JSONExt.deepCopy(n):undefined}if(!n){return s.JSONExt.deepCopy(e)}const r=s.JSONExt.deepCopy(e);n.forEach((e=>{var n;switch((n=e.type)!==null&&n!==void 0?n:"command"){case"separator":if(o){r.push({...e})}break;case"submenu":if(e.submenu){const n=r.findIndex((t=>{var n,i;return t.type==="submenu"&&((n=t.submenu)===null||n===void 0?void 0:n.id)===((i=e.submenu)===null||i===void 0?void 0:i.id)}));if(n<0){if(o){r.push(s.JSONExt.deepCopy(e))}}else{r[n]={...r[n],...e,submenu:t(r[n].submenu?[r[n].submenu]:null,[e.submenu],i,o)[0]}}}break;case"command":if(e.command){const t=r.findIndex((t=>{var n,i;return t.command===e.command&&t.selector===e.selector&&s.JSONExt.deepEqual((n=t.args)!==null&&n!==void 0?n:{},(i=e.args)!==null&&i!==void 0?i:{})}));if(t<0){if(o){r.push({...e})}}else{if(i){console.warn(`Menu entry for command '${e.command}' is duplicated.`)}r[t]={...r[t],...e}}}}}));return r}e.reconcileItems=n;function o(e){return e.reduce(((e,t)=>{var n;const i={...t};if(!i.disabled){if(i.type==="submenu"){const{submenu:e}=i;if(e&&!e.disabled){i.submenu={...e,items:o((n=e.items)!==null&&n!==void 0?n:[])}}}e.push(i)}return e}),[])}e.filterDisabledItems=o;function r(e,t){const n={};t=[...t.filter((e=>!!e.disabled)),...t.filter((e=>!e.disabled))].filter((e=>{const t=i.CommandRegistry.normalizeKeys(e).join(p);if(!t){console.warn("Skipping this shortcut because there are no actionable keys on this platform",e);return false}if(!(t in n)){n[t]={}}const{disabled:s,selector:o}=e;if(!(o in n[t])){n[t][o]={enabledUserShortcut:s?null:e,enabledDefaultShortcut:null,shouldDisableDefaultShortcut:!!s};return!s}if(n[t][o].enabledUserShortcut===null){if(s){n[t][o].shouldDisableDefaultShortcut=true;return false}else{n[t][o].enabledUserShortcut=e;return true}}else{console.warn("Skipping",e,"shortcut because it collides with another enabled shortcut:",n[t][o].enabledUserShortcut);return false}}));e=[...e.filter((e=>!!e.disabled)),...e.filter((e=>!e.disabled))].filter((e=>{const t=i.CommandRegistry.normalizeKeys(e).join(p);if(!t){return false}if(!(t in n)){n[t]={}}const{disabled:s,selector:o}=e;if(!(o in n[t])){n[t][o]={enabledUserShortcut:null,enabledDefaultShortcut:s?null:e,shouldDisableDefaultShortcut:!!s};return!s}if(n[t][o].enabledDefaultShortcut===null){if(s){n[t][o].shouldDisableDefaultShortcut=true;return false}else{if(n[t][o].shouldDisableDefaultShortcut){return false}else{n[t][o].enabledDefaultShortcut=e;return true}}}else{if(n[t][o].shouldDisableDefaultShortcut){return false}else{console.warn("Skipping",e,"default shortcut because it collides with another enabled default shortcut:",n[t][o].enabledDefaultShortcut);return false}}}));return _.upgradeShortcuts(t.concat(e).filter((e=>!e.disabled)).map((e=>({args:{},...e}))))}e.reconcileShortcuts=r;function a(e,t,n=false){if(!e){return t?s.JSONExt.deepCopy(t):undefined}if(!t){return s.JSONExt.deepCopy(e)}const i=s.JSONExt.deepCopy(e);t.forEach((e=>{const t=i.findIndex((t=>t.name===e.name));if(t<0){i.push({...e})}else{if(n&&s.JSONExt.deepEqual(Object.keys(e),Object.keys(i[t]))){console.warn(`Toolbar item '${e.name}' is duplicated.`)}i[t]={...i[t],...e}}}));return i}e.reconcileToolbarItems=a})(g||(g={}));var _;(function(e){const t=" ";const n="[missing schema description]";const i="[missing schema title]";function o(e,t){const{description:s,properties:o,title:r}=e;const l=o?Object.keys(o).sort(((e,t)=>e.localeCompare(t))):[];const h=Math.max((s||n).length,t.length);return["{",c(`${r||i}`),c(t),c(s||n),c("*".repeat(h)),"",d(l.map((t=>a(e,t)))),"}"].join("\n")}e.annotatedDefaults=o;function r(e,t){const{description:s,title:o}=e.schema;const r=Object.keys(t).sort(((e,t)=>e.localeCompare(t)));const a=Math.max((s||n).length,e.id.length);return["{",c(`${o||i}`),c(e.id),c(s||n),c("*".repeat(a)),"",d(r.map((n=>l(e.schema,n,t[n])))),"}"].join("\n")}e.annotatedPlugin=r;function a(e,i){const s=e.properties&&e.properties[i]||{};const o=s["type"];const r=s["description"]||n;const a=s["title"]||"";const l=h(e,i);const d=t.length;const u=l!==undefined?c(`"${i}": ${JSON.stringify(l,null,d)}`,t):c(`"${i}": ${o}`);return[c(a),c(r),u].filter((e=>e.length)).join("\n")}function l(e,s,o){const r=e.properties&&e.properties[s];const a=r&&r["description"]||n;const l=r&&r["title"]||i;const d=t.length;const h=c(`"${s}": ${JSON.stringify(o,null,d)}`,t);return[c(l),c(a),h].join("\n")}function d(e){return e.reduce(((t,n,i)=>{const s=n.split("\n");const o=s[s.length-1];const r=o.trim().indexOf("//")===0;const a=r||i===e.length-1?"":",";const l=i===e.length-1?"":"\n\n";return t+n+a+l}),"")}function c(e,n=`${t}// `){return n+e.split("\n").join(`\n${n}`)}function h(e,t,n,i){var o,r,a,l,d,c,u;n=n!==null&&n!==void 0?n:e.definitions;i=t?e.required instanceof Array&&((o=e.required)===null||o===void 0?void 0:o.includes(t)):i;e=(t?(r=e.properties)===null||r===void 0?void 0:r[t]:e)||{};if(e.type==="object"){const t=s.JSONExt.deepCopy(e.default);const i=e.properties||{};for(const s in i){t[s]=h(i[s],undefined,n,e.required instanceof Array&&((a=e.required)===null||a===void 0?void 0:a.includes(s)))}return t}else if(e.type==="array"){const t=typeof e.default!=="undefined";const o=t||i;if(!o){return undefined}const r=t?s.JSONExt.deepCopy(e.default):[];let a=e.items||{};if(a["$ref"]&&n){const e=a["$ref"].replace("#/definitions/","");a=(l=n[e])!==null&&l!==void 0?l:{}}for(const e in r){if(a.type==="object"){const t=(c=(d=h(a,undefined,n))!==null&&d!==void 0?d:r[e])!==null&&c!==void 0?c:{};for(const n in t){if((u=r[e])===null||u===void 0?void 0:u[n]){t[n]=r[e][n]}}r[e]=t}}return r}else{return e.default}}e.reifyDefault=h;const u=new Set;function p(e){const t=new Set;const n=[{old:".jp-Notebook:focus.jp-mod-commandMode",new:".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus",versionDeprecated:"JupyterLab 4.1"},{old:".jp-Notebook.jp-mod-commandMode :focus:not(:read-write)",new:".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus",versionDeprecated:"JupyterLab 4.1.1"},{old:".jp-Notebook:focus",new:".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus",versionDeprecated:"JupyterLab 4.1"},{old:"[data-jp-traversable]:focus",new:".jp-Notebook.jp-mod-commandMode:not(.jp-mod-readWrite) :focus",versionDeprecated:"JupyterLab 4.1"},{old:"[data-jp-kernel-user]:focus",new:"[data-jp-kernel-user]:not(.jp-mod-readWrite) :focus:not(:read-write)",versionDeprecated:"JupyterLab 4.1"},{old:"[data-jp-kernel-user] :focus:not(:read-write)",new:"[data-jp-kernel-user]:not(.jp-mod-readWrite) :focus:not(:read-write)",versionDeprecated:"JupyterLab 4.1.1"}];const i=e.map((e=>{const i=e.selector;let s=i;for(const o of n){if(i.includes(o.old)){s=i.replace(o.old,o.new);if(!u.has(i)){t.add(`"${o.old}" was replaced with "${o.new}" in ${o.versionDeprecated} (present in "${i}")`);u.add(i)}}}e.selector=s;return e}));if(t.size>0){console.warn("Deprecated shortcut selectors: "+[...t].join("\n")+"\n\nThe selectors will be substituted transparently this time, but need to be updated at source before next major release.")}return i}e.upgradeShortcuts=p})(_||(_={}));const b=new s.Token("@jupyterlab/coreutils:ISettingConnector","A service to connect to the settings endpoint.");const y=new s.Token("@jupyterlab/coreutils:ISettingRegistry",`A service for the JupyterLab settings system.\n Use this if you want to store settings for your application.\n See "schemaDir" for more information.`)},26217:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>R});var i=n(84739);var s=n(30619);var o=n(26331);var r=n(93247);var a=n(5592);var l=n(90044);var d=n(76326);var c;(function(e){e.editBinding="shortcuts:edit-keybinding";e.addBinding="shortcuts:add-keybinding";e.deleteBinding="shortcuts:delete-keybinding";e.toggleSelectors="shortcuts:toggle-selectors";e.resetAll="shortcuts:reset-all"})(c||(c={}));var h=n(44914);var u=n.n(h);var p=n(34236);var m=n(77162);const g="jp-Shortcuts-ConflictContainer";class f extends h.Component{constructor(e){super(e);this.handleSubmit=async()=>{if(!this._isReplacingExistingKeybinding){await this._updateShortcut();this.props.toggleInput()}else{if(this.state.selected){this.props.toggleInput()}else{await this._updateShortcut()}}};this._updateShortcut=async()=>{const e=[...this.state.keys,this.state.currentChain];this.setState({keys:e});if(this.props.keybinding){await this.props.replaceKeybinding(this.props.shortcut,this.props.keybinding,e)}else{await this.props.addKeybinding(this.props.shortcut,e)}};this._handleOverwrite=async(e,t)=>{for(const n of e){const e=n.keybindings.filter((e=>a.JSONExt.deepEqual(e.keys,t)||t.some((t=>a.JSONExt.deepEqual(e.keys,[t])))))[0];if(!e){console.error(`Conflicting binding could not be found for ${n} using keys ${t}`);continue}await this.props.deleteKeybinding(n,e)}await this._updateShortcut()};this.parseChaining=(e,t,n,i,s)=>{let o=m.EN_US.keyForKeydownEvent(e.nativeEvent);const r=["Shift","Control","Alt","Meta","Ctrl","Accel"];if(e.key==="Backspace"){n="";t="";i=[];s="";this.setState({value:t,userInput:n,keys:i,currentChain:s})}else if(e.key!=="CapsLock"){const t=n.substr(n.lastIndexOf(" ")+1,n.length).trim();if(r.lastIndexOf(t)===-1&&t!=""){n=n+",";i.push(s);s="";if(e.ctrlKey&&e.key!="Control"){n=(n+" Ctrl").trim();s=(s+" Ctrl").trim()}if(e.metaKey&&e.key!="Meta"){n=(n+" Accel").trim();s=(s+" Accel").trim()}if(e.altKey&&e.key!="Alt"){n=(n+" Alt").trim();s=(s+" Alt").trim()}if(e.shiftKey&&e.key!="Shift"){n=(n+" Shift").trim();s=(s+" Shift").trim()}if(r.lastIndexOf(e.key)===-1){n=(n+" "+o).trim();s=(s+" "+o).trim()}else{if(e.key==="Meta"){n=(n+" Accel").trim();s=(s+" Accel").trim()}else if(e.key==="Control"){n=(n+" Ctrl").trim();s=(s+" Ctrl").trim()}else if(e.key==="Shift"){n=(n+" Shift").trim();s=(s+" Shift").trim()}else if(e.key==="Alt"){n=(n+" Alt").trim();s=(s+" Alt").trim()}else{n=(n+" "+e.key).trim();s=(s+" "+e.key).trim()}}}else{if(e.key==="Control"){n=(n+" Ctrl").trim();s=(s+" Ctrl").trim()}else if(e.key==="Meta"){n=(n+" Accel").trim();s=(s+" Accel").trim()}else if(e.key==="Shift"){n=(n+" Shift").trim();s=(s+" Shift").trim()}else if(e.key==="Alt"){n=(n+" Alt").trim();s=(s+" Alt").trim()}else{n=(n+" "+o).trim();s=(s+" "+o).trim()}}}this.setState({keys:i,currentChain:s});return[n,i,s]};this.checkNonFunctional=()=>{const e=["Ctrl","Alt","Accel","Shift"];const t=this.state.currentChain.split(" ");const n=t[t.length-1];this.setState({isFunctional:!(e.indexOf(n)!==-1)});return e.indexOf(n)!==-1};this.checkShortcutAvailability=(e,t,n)=>{const i=this.props.findConflictsFor([...t,n],this.props.shortcut.selector);const s=e===""||i.length===0;if(!s){if(i.length===1&&i[0].id===this.props.shortcut.id&&this._isReplacingExistingKeybinding){this.setState({isAvailable:true});return[]}}this.setState({isAvailable:s});return i};this.handleInput=e=>{e.preventDefault();this.setState({selected:false});const t=this.parseChaining(e,this.state.value,this.state.userInput,this.state.keys,this.state.currentChain);const n=t[0];const i=t[1];const s=t[2];const o=this.props.toSymbols(n);let r=this.checkShortcutAvailability(n,i,s);this.setState({value:o,userInput:n,keys:i,currentChain:s},(()=>{this.checkNonFunctional();this._emitConflicts(r)}))};this._handleBlur=e=>{var t,n;if((t=this._ref.current)===null||t===void 0?void 0:t.contains(e.relatedTarget)){return}if((n=e.relatedTarget)===null||n===void 0?void 0:n.closest(`.${g}`)){return}this.props.toggleInput()};this._ref=h.createRef();this.state={value:this.props.placeholder,userInput:"",isAvailable:true,isFunctional:this._isReplacingExistingKeybinding,keys:[],currentChain:"",selected:true}}get _isReplacingExistingKeybinding(){return!!this.props.keybinding}_emitConflicts(e){const t=[...this.state.keys,this.state.currentChain];this.props.displayConflicts({conflictsWith:e,keys:this.state.keys,overwrite:async()=>{this.setState({isAvailable:true});await this._handleOverwrite(e,t);this.props.toggleInput()},cancel:()=>{this.props.toggleInput()}})}render(){const e=this.props.translator.load("jupyterlab");let t="jp-Shortcuts-Input";if(!this.state.isAvailable){t+=" jp-mod-unavailable-Input"}return h.createElement("div",{className:this.props.displayInput?!this._isReplacingExistingKeybinding?"jp-Shortcuts-InputBox jp-Shortcuts-InputBoxNew":"jp-Shortcuts-InputBox":"jp-mod-hidden",ref:this._ref,onBlur:this._handleBlur},h.createElement("div",{tabIndex:0,className:t,onKeyDown:this.handleInput,ref:e=>e&&e.focus(),"data-lm-suppress-shortcuts":"true"},h.createElement("p",{className:this.state.selected&&this._isReplacingExistingKeybinding?"jp-Shortcuts-InputText jp-mod-selected-InputText":this.state.value===""?"jp-Shortcuts-InputText jp-mod-waiting-InputText":"jp-Shortcuts-InputText"},this.state.value===""?e.__("press keys"):this.state.value)),h.createElement("button",{className:!this.state.isFunctional?"jp-Shortcuts-Submit jp-mod-defunc-Submit":!this.state.isAvailable?"jp-Shortcuts-Submit jp-mod-conflict-Submit":"jp-Shortcuts-Submit",disabled:!this.state.isAvailable||!this.state.isFunctional,onClick:this.handleSubmit,tabIndex:0},this.state.isAvailable?h.createElement(o.checkIcon.react,null):h.createElement(o.errorIcon.react,null)))}}class v extends h.Component{constructor(e){super(e);this.toggleInputNew=()=>{this.setState({displayNewInput:!this.state.displayNewInput,conflicts:new Map})};this.toSymbols=e=>e.split(" ").reduce(((e,t)=>{if(t==="Ctrl"){return(e+" ⌃").trim()}else if(t==="Alt"){return(e+" ⌥").trim()}else if(t==="Shift"){return(e+" ⇧").trim()}else if(t==="Accel"&&d.Platform.IS_MAC){return(e+" ⌘").trim()}else if(t==="Accel"){return(e+" ⌃").trim()}else{return(e+" "+t).trim()}}),"");this._trans=this.props.external.translator.load("jupyterlab");this.state={displayNewInput:false,displayReplaceInput:Object.freeze({}),conflicts:new Map}}componentDidMount(){this.props.external.actionRequested.connect(this._onActionRequested,this)}componentWillUnmount(){this.props.external.actionRequested.disconnect(this._onActionRequested,this)}async _onActionRequested(e,t){if("shortcutId"in t&&t.shortcutId!==this.props.shortcut.id){return}if(t.request==="add-keybinding"){return this.toggleInputNew()}if(t.request==="edit-keybinding"){this.toggleInputReplaceMethod(t.keybinding)}if(t.request==="delete-keybinding"){const e=this.props.shortcut;const n=e.keybindings[t.keybinding];this.props.deleteKeybinding(e,n).catch(console.error)}}getCategoryCell(){return h.createElement("div",{className:"jp-Shortcuts-Cell"},this.props.shortcut.category)}getLabelCell(){var e;return h.createElement("div",{className:"jp-Shortcuts-Cell"},h.createElement("div",{className:"jp-label"},(e=this.props.shortcut.label)!==null&&e!==void 0?e:this._trans.__("(Command label missing)")))}getResetShortCutLink(){return h.createElement("a",{className:"jp-Shortcuts-Reset",onClick:()=>this.props.resetKeybindings(this.props.shortcut)},this._trans.__("Reset"))}getSourceCell(){const e=this.props.shortcut.keybindings.every((e=>e.isDefault));return h.createElement("div",{className:"jp-Shortcuts-Cell"},h.createElement("div",{className:"jp-Shortcuts-SourceCell"},e?this._trans.__("Default"):this._trans.__("Custom")),!e?this.getResetShortCutLink():"")}getOptionalSelectorCell(){return this.props.showSelectors?h.createElement("div",{className:"jp-Shortcuts-Cell"},h.createElement("div",{className:"jp-selector"},this.props.shortcut.selector)):null}getClassNameForShortCuts(e){const t=["jp-Shortcuts-ShortcutCell"];switch(e.length){case 1:t.push("jp-Shortcuts-SingleCell");break;case 0:t.push("jp-Shortcuts-EmptyCell");break}return t.join(" ")}toggleInputReplaceMethod(e){const t=this.state.displayReplaceInput[e];this.setState({displayReplaceInput:{...this.state.displayReplaceInput,[e]:!t},conflicts:new Map})}getDisplayReplaceInput(e){return this.state.displayReplaceInput[e]}getOrDiplayIfNeeded(e){const t=["jp-Shortcuts-Or"];if(e||this.state.displayNewInput){t.push("jp-Shortcuts-Or-Forced")}return h.createElement("div",{className:t.join(" ")},this._trans.__("or"))}getShortCutAsInput(e,t){return h.createElement(f,{addKeybinding:this.props.addKeybinding,replaceKeybinding:this.props.replaceKeybinding,deleteKeybinding:this.props.deleteKeybinding,findConflictsFor:this.props.findConflictsFor,toggleInput:()=>this.toggleInputReplaceMethod(t),shortcut:this.props.shortcut,keybinding:e,displayConflicts:t=>{const n=new Map(this.state.conflicts);n.set(e,t);this.setState({conflicts:n})},toSymbols:this.toSymbols,displayInput:this.getDisplayReplaceInput(t),placeholder:this.toSymbols(e.keys.join(", ")),translator:this.props.external.translator})}getShortCutForDisplayOnly(e){return e.keys.map(((t,n)=>h.createElement("div",{className:"jp-Shortcuts-ShortcutKeysContainer",key:n},h.createElement("div",{className:"jp-Shortcuts-ShortcutKeys"},this.toSymbols(t)),n+1this.toggleInputReplaceMethod(e)},this.isLocationBeingEdited(e)?this.getShortCutAsInput(t,e):this.getShortCutForDisplayOnly(t),!(e===this._nonEmptyBindings.length-1&&Object.values(this.state.displayReplaceInput).some(Boolean))&&this.getOrDiplayIfNeeded(e{this.toggleInputNew()}},this._trans.__("Add"))}getInputBoxWhenToggled(){return this.state.displayNewInput?h.createElement(f,{addKeybinding:this.props.addKeybinding,replaceKeybinding:this.props.replaceKeybinding,deleteKeybinding:this.props.deleteKeybinding,findConflictsFor:this.props.findConflictsFor,toggleInput:this.toggleInputNew,shortcut:this.props.shortcut,displayConflicts:e=>{const t=new Map(this.state.conflicts);t.set(null,e);this.setState({conflicts:t})},toSymbols:this.toSymbols,displayInput:this.state.displayNewInput,placeholder:"",translator:this.props.external.translator}):h.createElement("div",null)}getShortCutsCell(e){return h.createElement("div",{className:"jp-Shortcuts-Cell"},h.createElement("div",{className:this.getClassNameForShortCuts(e)},e.map(((t,n)=>this.getDivForKey(n,t,e))),e.length>=1&&!this.state.displayNewInput&&!Object.values(this.state.displayReplaceInput).some(Boolean)&&this.getAddLink(),e.length===0&&!this.state.displayNewInput&&this.getAddLink(),this.getInputBoxWhenToggled()))}getConflicts(){const e=[...this.state.conflicts.values()].filter((e=>e.conflictsWith.length!==0));if(e.length===0){return h.createElement(h.Fragment,null)}return h.createElement("div",{className:"jp-Shortcuts-Row jp-Shortcuts-RowWithConflict"},h.createElement("div",{className:g},e.map((e=>{const t=e.keys.join(" ")+"_"+e.conflictsWith.map((e=>e.id)).join("");return h.createElement("div",{className:"jp-Shortcuts-Conflict",key:t},h.createElement("div",{className:"jp-Shortcuts-ErrorMessage"},this._trans.__("Shortcut already in use by %1. Overwrite it?",e.conflictsWith.map((e=>{var t;return(t=e.label)!==null&&t!==void 0?t:e.command})).join(", "))),h.createElement("div",{className:"jp-Shortcuts-ErrorButton"},h.createElement("button",{className:"jp-Button jp-mod-reject jp-mod-styled",onClick:()=>{this._clearConflict(e);e.cancel()}},this._trans.__("Cancel")),h.createElement("button",{className:"jp-Button jp-mod-warn jp-mod-styled",onClick:()=>{this._clearConflict(e);e.overwrite()}},this._trans.__("Overwrite"))))}))))}_clearConflict(e){const t=new Map;const n=this._conflictId(e);for(const[i,s]of this.state.conflicts.entries()){if(this._conflictId(s)!==n){t.set(i,s)}}this.setState({conflicts:t})}_conflictId(e){return e.keys.join(" ")+"_"+e.conflictsWith.map((e=>e.id)).join("")}get _nonEmptyBindings(){return this.props.shortcut.keybindings.filter((e=>e.keys.filter((e=>e!="")).length!==0))}render(){return h.createElement(h.Fragment,null,h.createElement("div",{className:"jp-Shortcuts-Row","data-shortcut":this.props.shortcut.id},this.getCategoryCell(),this.getLabelCell(),this.getShortCutsCell(this._nonEmptyBindings),this.getSourceCell(),this.getOptionalSelectorCell()),this.getConflicts())}}const _=115;class b extends h.Component{render(){return h.createElement("div",{className:"jp-Shortcuts-ShortcutListContainer",style:{height:`${this.props.height-_}px`},id:"shortcutListContainer"},h.createElement("div",{className:"jp-Shortcuts-ShortcutList"},this.props.shortcuts.map((e=>h.createElement(v,{key:e.id,addKeybinding:this.props.addKeybinding,replaceKeybinding:this.props.replaceKeybinding,deleteKeybinding:this.props.deleteKeybinding,resetKeybindings:this.props.resetKeybindings,findConflictsFor:this.props.findConflictsFor,shortcut:e,showSelectors:this.props.showSelectors,external:this.props.external})))))}}class y extends h.Component{render(){return h.createElement("div",{className:this.props.title.toLowerCase()===this.props.active?"jp-Shortcuts-Header jp-Shortcuts-CurrentHeader":"jp-Shortcuts-Header",onClick:()=>this.props.updateSort(this.props.columnId)},this.props.title,h.createElement(o.caretDownEmptyThinIcon.react,{className:"jp-Shortcuts-SortButton jp-ShortcutTitleItem-sortButton"}))}}function w(e){return h.createElement("div",{className:"jp-Shortcuts-Symbols"},h.createElement("table",null,h.createElement("tbody",null,h.createElement("tr",null,h.createElement("td",null,h.createElement("kbd",null,"Cmd")),h.createElement("td",null,"⌘"),h.createElement("td",null,h.createElement("kbd",null,"Ctrl")),h.createElement("td",null,"⌃")),h.createElement("tr",null,h.createElement("td",null,h.createElement("kbd",null,"Alt")),h.createElement("td",null,"⌥"),h.createElement("td",null,h.createElement("kbd",null,"Shift")),h.createElement("td",null,"⇧")))))}function C(e){const t=e.translator.load("jupyterlab");return h.createElement("div",{className:"jp-Shortcuts-AdvancedOptions"},h.createElement("a",{className:"jp-Shortcuts-AdvancedOptionsLink",onClick:()=>e.toggleSelectors()},e.showSelectors?t.__("Hide Selectors"):t.__("Show Selectors")),h.createElement("a",{className:"jp-Shortcuts-AdvancedOptionsLink",onClick:()=>e.resetShortcuts()},t.__("Reset All")))}class x extends h.Component{constructor(e){super(e)}getShortCutTitleItem(e,t){return h.createElement("div",{className:"jp-Shortcuts-Cell"},h.createElement(y,{title:e,updateSort:this.props.updateSort,active:this.props.currentSort,columnId:t}))}render(){const e=this.props.translator.load("jupyterlab");return h.createElement("div",{className:"jp-Shortcuts-Top"},h.createElement("div",{className:"jp-Shortcuts-TopNav"},h.createElement(w,null),h.createElement(o.FilterBox,{"aria-label":e.__("Search shortcuts"),updateFilter:(e,t)=>this.props.updateSearchQuery(t!==null&&t!==void 0?t:""),placeholder:e.__("Search…"),useFuzzyFilter:false}),h.createElement(C,{toggleSelectors:this.props.toggleSelectors,showSelectors:this.props.showSelectors,resetShortcuts:this.props.resetShortcuts,translator:this.props.translator})),h.createElement("div",{className:"jp-Shortcuts-HeaderRowContainer"},h.createElement("div",{className:"jp-Shortcuts-HeaderRow"},this.getShortCutTitleItem(e.__("Category"),"category"),this.getShortCutTitleItem(e.__("Command"),"command"),h.createElement("div",{className:"jp-Shortcuts-Cell"},h.createElement("div",{className:"title-div"},e.__("Shortcut"))),this.getShortCutTitleItem(e.__("Source"),"source"),this.props.showSelectors&&this.getShortCutTitleItem(e.__("Selectors"),"selector"))))}}class S extends Map{constructor(e){var t,n,i;super();const{settings:s,commandRegistry:o}=e;const r=(t=s.user.shortcuts)!==null&&t!==void 0?t:[];const a=new Set(r.map(this._computeKeybindingId.bind(this)));const l=(n=s.composite.shortcuts)!==null&&n!==void 0?n:[];for(const d of l){const e=this._computeTargetId(d);const t=this._computeKeybindingId(d);const n={keys:d.keys,isDefault:!a.has(t)};const s=this.get(e);if(s){s.keybindings.push(n)}else{const t=d.command.split(":");const s=(i=o.label(d.command,d.args))!==null&&i!==void 0?i:t.length>1?t[1]:undefined;const r=t[0];this.set(e,{id:e,selector:d.selector,command:d.command,category:r,label:s,args:d.args,keybindings:[n]})}}}findConflictsFor(e,t){const n=new k({registry:this});let i=n.findConflicts(e,t);if(i.length!==0){return i}for(const s of e){i=n.findConflicts([s],t);if(i.length!==0){return i}}return[]}_computeTargetId(e){var t;return e.command+"_"+e.selector+"_"+JSON.stringify((t=e.args)!==null&&t!==void 0?t:{})}_computeKeybindingId(e){var t;return[e.command,e.selector,JSON.stringify((t=e.args)!==null&&t!==void 0?t:{}),e.keys.join(" ")].join("_")}}class k{constructor(e){var t;const n=new Map;for(const i of e.registry.values()){for(const e of i.keybindings){const s=this._keybindingHash(e.keys,i.selector);const o=(t=n.get(s))!==null&&t!==void 0?t:[];o.push(i);n.set(s,o)}}this._keybindingsMap=n}findConflicts(e,t){var n;const i=this._keybindingHash(e,t);return(n=this._keybindingsMap.get(i))!==null&&n!==void 0?n:[]}_keybindingHash(e,t){return e.join(" ")+"_"+t}}function j(e){return e.replace(/\s+/g,"").toLowerCase()}function I(e,t){var n;const i=e.category.toLowerCase();const s=((n=e["label"])!==null&&n!==void 0?n:"").toLowerCase();const o=`${i} ${s}`;let r=Infinity;let a=null;const l=/\b\w/g;while(true){const e=l.exec(o);if(!e){break}const n=p.StringExt.matchSumOfDeltas(o,t,e.index);if(!n){break}if(n&&n.score<=r){r=n.score;a=n.indices}}if(!a||r===Infinity){return null}const d=i.length+1;const c=p.ArrayExt.lowerBound(a,d,((e,t)=>e-t));const h=a.slice(0,c);const u=a.slice(c);for(let p=0,m=u.length;p{this.setState({searchQuery:e},(()=>{const e=this.state.shortcutRegistry;this.setState({filteredShortcutList:this._searchFilterShortcuts(e)},(()=>{this.sortShortcuts()}))}))};this.resetShortcuts=async()=>{const e=await this.props.external.getSettings();await e.set("shortcuts",[]);await this._refreshShortcutList()};this.resetKeybindings=async e=>{await this._setKeybinding(e,[])};this.replaceKeybinding=async(e,t,n)=>this._setKeybinding(e,n,t);this.deleteKeybinding=async(e,t)=>{await this._setKeybinding(e,[],t)};this.addKeybinding=async(e,t)=>{await this._setKeybinding(e,t)};this.toggleSelectors=()=>{this.setState({showSelectors:!this.state.showSelectors})};this.updateSort=e=>{if(e!==this.state.currentSort){this.setState({currentSort:e},this.sortShortcuts)}};this.state={shortcutRegistry:null,filteredShortcutList:new Array,shortcutsFetched:false,searchQuery:"",showSelectors:false,currentSort:"category"}}componentDidMount(){this.props.external.actionRequested.connect(this._onActionRequested,this);void this._refreshShortcutList()}componentWillUnmount(){this.props.external.actionRequested.disconnect(this._onActionRequested,this)}async _onActionRequested(e,t){if(t.request==="toggle-selectors"){return this.toggleSelectors()}if(t.request==="reset-all"){await this.resetShortcuts()}}async _refreshShortcutList(){const e=await this.props.external.getSettings();const t=new S({commandRegistry:this.props.external.commandRegistry,settings:e});this.setState({shortcutRegistry:t,filteredShortcutList:this._searchFilterShortcuts(t),shortcutsFetched:true},(()=>{this.sortShortcuts()}))}_searchFilterShortcuts(e){if(!e){return[]}const t=E(e,this.state.searchQuery).map((e=>e.item));return t}async _setKeybinding(e,t,n){var i,s,o,r,l;if(t.length===1&&t[0]==""){t=[]}const d=await this.props.external.getSettings();const c=(i=d.user.shortcuts)!==null&&i!==void 0?i:[];const h=[];let u=false;for(let p of c){if(p.command===e.command&&p.selector===e.selector&&a.JSONExt.deepEqual((s=p.args)!==null&&s!==void 0?s:{},(o=e.args)!==null&&o!==void 0?o:{})&&n&&a.JSONExt.deepEqual(n.keys,p.keys)){const e=n&&n.isDefault&&a.JSONExt.deepEqual(n.keys,t);if(t.length!==0&&!e){h.push({command:p.command,selector:p.selector,keys:t})}u=true}else if(p.command===e.command&&p.selector===e.selector&&a.JSONExt.deepEqual((r=p.args)!==null&&r!==void 0?r:{},(l=e.args)!==null&&l!==void 0?l:{})&&!n&&t.length===0){continue}else{h.push(p)}}if(!u){const i=!n||!a.JSONExt.deepEqual(n.keys,t);const s=n&&n.isDefault&&i;if(s){h.push({command:e.command,selector:e.selector,disabled:true,keys:n.keys})}if(t.length!==0){h.push({command:e.command,selector:e.selector,keys:t})}}await d.set("shortcuts",h);await this._refreshShortcutList()}sortShortcuts(){const e=this.state.filteredShortcutList;let t=this.state.currentSort;if(t==="command"){t="label"}const n=e=>{var n;if(t==="source"){return e.keybindings.every((e=>e.isDefault))?"default":"other"}return(n=e[t])!==null&&n!==void 0?n:""};e.sort(((e,t)=>{var i,s;const o=n(e);const r=n(t);const a=o.localeCompare(r);if(a){return a}else{const n=(i=e["label"])!==null&&i!==void 0?i:"";const o=(s=t["label"])!==null&&s!==void 0?s:"";return n.localeCompare(o)}}));this.setState({filteredShortcutList:e})}render(){if(!this.state.shortcutsFetched){return null}return h.createElement("div",{className:"jp-Shortcuts-ShortcutUI",id:"jp-shortcutui"},h.createElement(x,{updateSearchQuery:this.updateSearchQuery,resetShortcuts:this.resetShortcuts,toggleSelectors:this.toggleSelectors,showSelectors:this.state.showSelectors,updateSort:this.updateSort,currentSort:this.state.currentSort,width:this.props.width,translator:this.props.external.translator}),h.createElement(b,{shortcuts:this.state.filteredShortcutList,resetKeybindings:this.resetKeybindings,addKeybinding:this.addKeybinding,replaceKeybinding:this.replaceKeybinding,deleteKeybinding:this.deleteKeybinding,showSelectors:this.state.showSelectors,findConflictsFor:(e,t)=>{if(this.state.shortcutRegistry){return this.state.shortcutRegistry.findConflictsFor(e,t)}else{console.error("Cannot search for keybinding conflicts at this time: registry is not ready");return[]}},height:this.props.height,external:this.props.external}))}}const M=e=>u().createElement(T,{external:e.external,height:1e3,width:1e3});var D=n(2336);const A="@jupyterlab/shortcuts-extension:shortcuts";function P(e,t,n,i){return{translator:n,getSettings:()=>e.load(A,true),commandRegistry:t.commands,actionRequested:i}}const L={id:A,description:"Adds the keyboard shortcuts editor.",requires:[i.ISettingRegistry],optional:[s.ITranslator,o.IFormRendererRegistry],activate:async(e,t,n,o)=>{const l=n!==null&&n!==void 0?n:s.nullTranslator;const h=l.load("jupyterlab");const{commands:u}=e;let p;let m;let g={};if(o){const n=new D.Signal({});const i=e=>e.dataset["shortcut"]!==undefined;e.commands.addCommand(c.editBinding,{label:h.__("Edit Keybinding"),caption:h.__("Edit existing keybinding"),execute:()=>{const t=e.contextMenuHitTest(i);const s=t===null||t===void 0?void 0:t.dataset["keybinding"];const o=t===null||t===void 0?void 0:t.dataset["shortcut"];if(!o||!s){return console.log("Missing shortcut id/keybinding information")}n.emit({request:"edit-keybinding",keybinding:parseInt(s,10),shortcutId:o})}});e.commands.addCommand(c.deleteBinding,{label:h.__("Delete Keybinding"),caption:h.__("Delete chosen keybinding"),execute:()=>{const t=e.contextMenuHitTest(i);const s=t===null||t===void 0?void 0:t.dataset["keybinding"];const o=t===null||t===void 0?void 0:t.dataset["shortcut"];if(!o||!s){return console.log("Missing shortcut id/keybinding information")}n.emit({request:"delete-keybinding",keybinding:parseInt(s,10),shortcutId:o})}});e.commands.addCommand(c.addBinding,{label:h.__("Add Keybinding"),caption:h.__("Add new keybinding for existing shortcut target"),execute:()=>{const t=e.contextMenuHitTest(i);const s=t===null||t===void 0?void 0:t.dataset["shortcut"];if(!s){return console.log("Missing shortcut id to add keybinding to")}n.emit({request:"add-keybinding",shortcutId:s})}});u.addCommand(c.toggleSelectors,{label:h.__("Toggle Selectors"),caption:h.__("Toggle command selectors"),execute:()=>{n.emit({request:"toggle-selectors"})}});u.addCommand(c.resetAll,{label:h.__("Reset All"),caption:h.__("Reset all shortcuts"),execute:()=>{n.emit({request:"reset-all"})}});const s={fieldRenderer:i=>M({external:P(t,e,l,n),...i})};o.addRenderer(`${L.id}.shortcuts`,s)}function f(n){const i=e.commands.listCommands().join("\n");if(!m){m=a.JSONExt.deepCopy(n.properties.shortcuts.default)}g={};n.properties.shortcuts.default=Object.keys(t.plugins).map((e=>{const n=t.plugins[e].schema["jupyter.lab.shortcuts"]||[];g[e]=n;return n})).concat([m]).reduce(((e,t)=>{if(d.Platform.IS_MAC){return e.concat(t)}else{return e.concat(t.filter((e=>!e.keys.some((e=>{const{cmd:t}=r.CommandRegistry.parseKeystroke(e);return t})))))}}),[]).sort(((e,t)=>e.command.localeCompare(t.command)));n.properties.shortcuts.description=h.__(`Note: To disable a system default shortcut,\ncopy it to User Preferences and add the\n"disabled" key, for example:\n{\n "command": "application:activate-next-tab",\n "keys": [\n "Ctrl Shift ]"\n ],\n "selector": "body",\n "disabled": true\n}\n\nList of commands followed by keyboard shortcuts:\n%1\n\nList of keyboard shortcuts:`,i)}t.pluginChanged.connect((async(e,n)=>{if(n!==L.id){const e=g[n];const i=t.plugins[n].schema["jupyter.lab.shortcuts"]||[];if(e===undefined||!a.JSONExt.deepEqual(e,i)){p=null;const e=t.plugins[L.id].schema;e.properties.shortcuts.default=m;await t.load(L.id,true)}}}));t.transform(L.id,{compose:e=>{var t,n,s,o;if(!p){p=a.JSONExt.deepCopy(e.schema);f(p)}const r=(s=(n=(t=p.properties)===null||t===void 0?void 0:t.shortcuts)===null||n===void 0?void 0:n.default)!==null&&s!==void 0?s:[];const l={shortcuts:(o=e.data.user.shortcuts)!==null&&o!==void 0?o:[]};const d={shortcuts:i.SettingRegistry.reconcileShortcuts(r,l.shortcuts)};e.data={composite:d,user:l};return e},fetch:e=>{if(!p){p=a.JSONExt.deepCopy(e.schema);f(p)}return{data:e.data,id:e.id,raw:e.raw,schema:p,version:e.version}}});try{p=null;const e=await t.load(L.id);N.loadShortcuts(u,e.composite);e.changed.connect((()=>{N.loadShortcuts(u,e.composite)}))}catch(v){console.error(`Loading ${L.id} failed.`,v)}},autoStart:true};const R=L;var N;(function(e){let t;function n(e,n){var s;const o=(s=n===null||n===void 0?void 0:n.shortcuts)!==null&&s!==void 0?s:[];if(t){t.dispose()}t=o.reduce(((t,n)=>{const s=i(n);if(s){t.add(e.addKeyBinding(s))}return t}),new l.DisposableSet)}e.loadShortcuts=n;function i(e){if(!e||typeof e!=="object"){return undefined}const{isArray:t}=Array;const n="command"in e&&"keys"in e&&"selector"in e&&t(e.keys);return n?e:undefined}})(N||(N={}))},48552:(e,t,n)=>{"use strict";var i=n(40662);var s=n(85072);var o=n.n(s);var r=n(97825);var a=n.n(r);var l=n(77659);var d=n.n(l);var c=n(55056);var h=n.n(c);var u=n(10540);var p=n.n(u);var m=n(41113);var g=n.n(m);var f=n(64547);var v={};v.styleTagTransform=g();v.setAttributes=h();v.insert=d().bind(null,"head");v.domAPI=a();v.insertStyleElement=p();var _=o()(f.A,v);const b=f.A&&f.A.locals?f.A.locals:undefined},4056:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DataConnector=void 0;class n{async list(e){throw new Error("DataConnector#list method has not been implemented.")}async remove(e){throw new Error("DataConnector#remove method has not been implemented.")}async save(e,t){throw new Error("DataConnector#save method has not been implemented.")}}t.DataConnector=n},19531:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){if(i===undefined)i=n;var s=Object.getOwnPropertyDescriptor(t,n);if(!s||("get"in s?!t.__esModule:s.writable||s.configurable)){s={enumerable:true,get:function(){return t[n]}}}Object.defineProperty(e,i,s)}:function(e,t,n,i){if(i===undefined)i=n;e[i]=t[n]});var s=this&&this.__exportStar||function(e,t){for(var n in e)if(n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n))i(t,e,n)};Object.defineProperty(t,"__esModule",{value:true});s(n(4056),t);s(n(78031),t);s(n(45310),t);s(n(19864),t);s(n(82877),t)},78031:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true})},45310:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.RestorablePool=void 0;const i=n(5592);const s=n(94466);const o=n(2336);class r{constructor(e){this._added=new o.Signal(this);this._current=null;this._currentChanged=new o.Signal(this);this._hasRestored=false;this._isDisposed=false;this._objects=new Set;this._restore=null;this._restored=new i.PromiseDelegate;this._updated=new o.Signal(this);this.namespace=e.namespace}get added(){return this._added}get current(){return this._current}set current(e){if(this._current===e){return}if(e!==null&&this._objects.has(e)){this._current=e;this._currentChanged.emit(this._current)}}get currentChanged(){return this._currentChanged}get isDisposed(){return this._isDisposed}get restored(){return this._restored.promise}get size(){return this._objects.size}get updated(){return this._updated}async add(e){var t,n;if(e.isDisposed){const t="A disposed object cannot be added.";console.warn(t,e);throw new Error(t)}if(this._objects.has(e)){const t="This object already exists in the pool.";console.warn(t,e);throw new Error(t)}this._objects.add(e);e.disposed.connect(this._onInstanceDisposed,this);if(a.injectedProperty.get(e)){return}if(this._restore){const{connector:i}=this._restore;const s=this._restore.name(e);if(s){const o=`${this.namespace}:${s}`;const r=(n=(t=this._restore).args)===null||n===void 0?void 0:n.call(t,e);a.nameProperty.set(e,o);await i.save(o,{data:r})}}this._added.emit(e)}dispose(){if(this.isDisposed){return}this._current=null;this._isDisposed=true;this._objects.clear();o.Signal.clearData(this)}find(e){const t=this._objects.values();for(const n of t){if(e(n)){return n}}return undefined}forEach(e){this._objects.forEach(e)}filter(e){const t=[];this.forEach((n=>{if(e(n)){t.push(n)}}));return t}inject(e){a.injectedProperty.set(e,true);return this.add(e)}has(e){return this._objects.has(e)}async restore(e){if(this._hasRestored){throw new Error("This pool has already been restored.")}this._hasRestored=true;const{command:t,connector:n,registry:i,when:s}=e;const o=this.namespace;const r=s?[n.list(o)].concat(s):[n.list(o)];this._restore=e;const[a]=await Promise.all(r);const l=await Promise.all(a.ids.map((async(e,s)=>{const o=a.values[s];const r=o&&o.data;if(r===undefined){return n.remove(e)}return i.execute(t,r).catch((()=>n.remove(e)))})));this._restored.resolve();return l}async save(e){var t,n;const i=a.injectedProperty.get(e);if(!this._restore||!this.has(e)||i){return}const{connector:s}=this._restore;const o=this._restore.name(e);const r=a.nameProperty.get(e);const l=o?`${this.namespace}:${o}`:"";if(r&&r!==l){await s.remove(r)}a.nameProperty.set(e,l);if(l){const i=(n=(t=this._restore).args)===null||n===void 0?void 0:n.call(t,e);await s.save(l,{data:i})}if(r!==l){this._updated.emit(e)}}_onInstanceDisposed(e){this._objects.delete(e);if(e===this._current){this._current=null;this._currentChanged.emit(this._current)}if(a.injectedProperty.get(e)){return}if(!this._restore){return}const{connector:t}=this._restore;const n=a.nameProperty.get(e);if(n){void t.remove(n)}}}t.RestorablePool=r;var a;(function(e){e.injectedProperty=new s.AttachedProperty({name:"injected",create:()=>false});e.nameProperty=new s.AttachedProperty({name:"name",create:()=>""})})(a||(a={}))},19864:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.StateDB=void 0;const i=n(2336);class s{constructor(e={}){this._changed=new i.Signal(this);const{connector:t,transform:n}=e;this._connector=t||new s.Connector;if(!n){this._ready=Promise.resolve(undefined)}else{this._ready=n.then((e=>{const{contents:t,type:n}=e;switch(n){case"cancel":return;case"clear":return this._clear();case"merge":return this._merge(t||{});case"overwrite":return this._overwrite(t||{});default:return}}))}}get changed(){return this._changed}async clear(){await this._ready;await this._clear()}async fetch(e){await this._ready;return this._fetch(e)}async list(e){await this._ready;return this._list(e)}async remove(e){await this._ready;await this._remove(e);this._changed.emit({id:e,type:"remove"})}async save(e,t){await this._ready;await this._save(e,t);this._changed.emit({id:e,type:"save"})}async toJSON(){await this._ready;const{ids:e,values:t}=await this._list();return t.reduce(((t,n,i)=>{t[e[i]]=n;return t}),{})}async _clear(){await Promise.all((await this._list()).ids.map((e=>this._remove(e))))}async _fetch(e){const t=await this._connector.fetch(e);if(t){return JSON.parse(t).v}}async _list(e=""){const{ids:t,values:n}=await this._connector.list(e);return{ids:t,values:n.map((e=>JSON.parse(e).v))}}async _merge(e){await Promise.all(Object.keys(e).map((t=>e[t]&&this._save(t,e[t]))))}async _overwrite(e){await this._clear();await this._merge(e)}async _remove(e){return this._connector.remove(e)}async _save(e,t){return this._connector.save(e,JSON.stringify({v:t}))}}t.StateDB=s;(function(e){class t{constructor(){this._storage={}}async fetch(e){return this._storage[e]}async list(e=""){return Object.keys(this._storage).reduce(((t,n)=>{if(e===""?true:e===n.split(":")[0]){t.ids.push(n);t.values.push(this._storage[n])}return t}),{ids:[],values:[]})}async remove(e){delete this._storage[e]}async save(e,t){this._storage[e]=t}}e.Connector=t})(s||(t.StateDB=s={}))},82877:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.IStateDB=void 0;const i=n(5592);t.IStateDB=new i.Token("@jupyterlab/coreutils:IStateDB",`A service for the JupyterLab state database.\n Use this if you want to store data that will persist across page loads.\n See "state database" for more information.`)},6771:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>g});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(84739);var l=n.n(a);var d=n(24735);var c=n.n(d);var h=n(30619);var u=n.n(h);const p="@jupyterlab/statusbar-extension:plugin";const m={id:p,description:"Provides the application status bar.",requires:[h.ITranslator],provides:d.IStatusBar,autoStart:true,activate:(e,t,n,i,s)=>{const o=t.load("jupyterlab");const r=new d.StatusBar;r.id="jp-main-statusbar";e.shell.add(r,"bottom");if(n){n.layoutModified.connect((()=>{r.update()}))}const a=o.__("Main Area");const l="statusbar:toggle";e.commands.addCommand(l,{label:o.__("Show Status Bar"),execute:()=>{r.setHidden(r.isVisible);if(i){void i.set(p,"visible",r.isVisible)}},isToggled:()=>r.isVisible});e.commands.commandExecuted.connect(((t,n)=>{if(n.id==="application:reset-layout"&&!r.isVisible){e.commands.execute(l).catch((e=>{console.error("Failed to show the status bar.",e)}))}}));if(s){s.addItem({command:l,category:a})}if(i){const t=i.load(p);const n=e=>{const t=e.get("visible").composite;r.setHidden(!t)};Promise.all([t,e.restored]).then((([e])=>{n(e);e.changed.connect((e=>{n(e)}))})).catch((e=>{console.error(e.message)}))}return r},optional:[i.ILabShell,a.ISettingRegistry,o.ICommandPalette]};const g=m},40005:(e,t,n)=>{"use strict";var i=n(24800);var s=n(97913);var o=n(3579)},57850:(e,t,n)=>{"use strict";n.r(t);n.d(t,{GroupItem:()=>o,IStatusBar:()=>b,Popup:()=>d,ProgressBar:()=>c,ProgressCircle:()=>p,StatusBar:()=>f,TextItem:()=>u,showPopup:()=>l});var i=n(44914);var s=n.n(i);function o(e){const{spacing:t,children:n,className:s,...o}=e;const r=i.Children.toArray(n).filter(Boolean);const a=r.length;return i.createElement("div",{className:`jp-StatusBar-GroupItem ${s||""}`,...o},r.map(((e,n)=>{const s=`group-item-${n}`;if(n===0){return i.createElement("div",{key:s,style:{marginRight:`${t}px`}},e)}else if(n===a-1){return i.createElement("div",{key:s,style:{marginLeft:`${t}px`}},e)}else{return i.createElement("div",{key:s,style:{margin:`0px ${t}px`}},e)}})))}var r=n(26331);var a=n(1143);function l(e){const t=new d(e);if(!e.startHidden){t.launch()}return t}class d extends a.Widget{constructor(e){super();this.addClass("jp-ThemedContainer");this._body=e.body;this._body.addClass("jp-StatusBar-HoverItem");this._anchor=e.anchor;this._align=e.align;if(e.hasDynamicSize){this._observer=new ResizeObserver((()=>{this.update()}))}const t=this.layout=new a.PanelLayout;t.addWidget(e.body);this._body.node.addEventListener("resize",(()=>{this.update()}))}launch(){this._setGeometry();a.Widget.attach(this,document.body);this.update();this._anchor.addClass("jp-mod-clicked");this._anchor.removeClass("jp-mod-highlight")}onUpdateRequest(e){this._setGeometry();super.onUpdateRequest(e)}onAfterAttach(e){var t;document.addEventListener("click",this,false);this.node.addEventListener("keydown",this,false);window.addEventListener("resize",this,false);(t=this._observer)===null||t===void 0?void 0:t.observe(this._body.node)}onBeforeDetach(e){var t;(t=this._observer)===null||t===void 0?void 0:t.disconnect();document.removeEventListener("click",this,false);this.node.removeEventListener("keydown",this,false);window.removeEventListener("resize",this,false)}onResize(){this.update()}dispose(){var e;(e=this._observer)===null||e===void 0?void 0:e.disconnect();super.dispose();this._anchor.removeClass("jp-mod-clicked");this._anchor.addClass("jp-mod-highlight")}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"click":this._evtClick(e);break;case"resize":this.onResize();break;default:break}}_evtClick(e){if(!!e.target&&!(this._body.node.contains(e.target)||this._anchor.node.contains(e.target))){this.dispose()}}_evtKeydown(e){switch(e.keyCode){case 27:e.stopPropagation();e.preventDefault();this.dispose();break;default:break}}_setGeometry(){let e=0;const t=this._anchor.node.getBoundingClientRect();const n=this._body.node.getBoundingClientRect();if(this._align==="right"){e=-(n.width-t.width)}const i=window.getComputedStyle(this._body.node);r.HoverBox.setGeometry({anchor:t,host:document.body,maxHeight:500,minHeight:20,node:this._body.node,offset:{horizontal:e},privilege:"forceAbove",style:i})}}function c(e){const{width:t,percentage:n,...s}=e;return i.createElement("div",{className:"jp-Statusbar-ProgressBar-progress-bar",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":n},i.createElement(h,{percentage:n,...s,contentWidth:t}))}function h(e){return i.createElement("div",{style:{width:`${e.percentage}%`}},i.createElement("p",null,e.content))}function u(e){const{title:t,source:n,className:s,...o}=e;return i.createElement("span",{className:`jp-StatusBar-TextItem ${s}`,title:t,...o},n)}function p(e){const t=104;const n=e=>{const n=Math.max(e*3.6,.1);const i=n*Math.PI/180,s=Math.sin(i)*t,o=Math.cos(i)*-t,r=n<180?1:0,a=`M 0 0 v -${t} A ${t} ${t} 1 `+r+" 0 "+s.toFixed(4)+" "+o.toFixed(4)+" z";return a};return s().createElement("div",{className:"jp-Statusbar-ProgressCircle",role:"progressbar","aria-label":e.label||"Unlabelled progress circle","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e.progress},s().createElement("svg",{viewBox:"0 0 250 250"},s().createElement("circle",{cx:"125",cy:"125",r:`${t}`,stroke:"var(--jp-inverse-layout-color3)",strokeWidth:"20",fill:"none"}),s().createElement("path",{className:"jp-Statusbar-ProgressCirclePath",transform:"translate(125,125) scale(.9)",d:n(e.progress),fill:"var(--jp-inverse-layout-color3)"})))}var m=n(34236);var g=n(90044);class f extends a.Widget{constructor(){super();this._isWindowNarrow=()=>window.innerWidth<=630;this._leftRankItems=[];this._rightRankItems=[];this._statusItems={};this._disposables=new g.DisposableSet;this.addClass("jp-StatusBar-Widget");const e=this.layout=new a.PanelLayout;const t=this._leftSide=new a.Panel;const n=this._middlePanel=new a.Panel;const i=this._rightSide=new a.Panel;t.addClass("jp-StatusBar-Left");n.addClass("jp-StatusBar-Middle");i.addClass("jp-StatusBar-Right");e.addWidget(t);e.addWidget(n);e.addWidget(i)}registerStatusItem(e,t){if(e in this._statusItems){throw new Error(`Status item ${e} already registered.`)}const n={...v.statusItemDefaults,...t};const{align:i,item:s,rank:o,priority:r}=n;const a=()=>{this._refreshItem(e)};if(n.activeStateChanged){n.activeStateChanged.connect(a)}const l={id:e,rank:o,priority:r};n.item.addClass("jp-StatusBar-Item");this._statusItems[e]=n;if(i==="left"){const e=this._findInsertIndex(this._leftRankItems,l);if(e===-1){this._leftSide.addWidget(s);this._leftRankItems.push(l)}else{m.ArrayExt.insert(this._leftRankItems,e,l);this._leftSide.insertWidget(e,s)}}else if(i==="right"){const e=this._findInsertIndex(this._rightRankItems,l);if(e===-1){this._rightSide.addWidget(s);this._rightRankItems.push(l)}else{m.ArrayExt.insert(this._rightRankItems,e,l);this._rightSide.insertWidget(e,s)}}else{this._middlePanel.addWidget(s)}this._refreshItem(e);const d=new g.DisposableDelegate((()=>{delete this._statusItems[e];if(n.activeStateChanged){n.activeStateChanged.disconnect(a)}s.parent=null;s.dispose()}));this._disposables.add(d);return d}dispose(){this._leftRankItems.length=0;this._rightRankItems.length=0;this._disposables.dispose();super.dispose()}onUpdateRequest(e){this._refreshAll();super.onUpdateRequest(e)}_findInsertIndex(e,t){return m.ArrayExt.findFirstIndex(e,(e=>e.rank>t.rank))}_refreshItem(e){const t=this._statusItems[e];if(t.isActive()&&!(t.priority===0&&this._isWindowNarrow())){t.item.show();t.item.update()}else{t.item.hide()}}_refreshAll(){Object.keys(this._statusItems).forEach((e=>{this._refreshItem(e)}))}}var v;(function(e){e.statusItemDefaults={align:"left",rank:0,priority:0,isActive:()=>true,activeStateChanged:undefined}})(v||(v={}));var _=n(5592);const b=new _.Token("@jupyterlab/statusbar:IStatusBar","A service for the status bar on the application. Use this if you want to add new status bar items.")},24800:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(85072);var r=n.n(o);var a=n(97825);var l=n.n(a);var d=n(77659);var c=n.n(d);var h=n(55056);var u=n.n(h);var p=n(10540);var m=n.n(p);var g=n(41113);var f=n.n(g);var v=n(28423);var _={};_.styleTagTransform=f();_.setAttributes=u();_.insert=c().bind(null,"head");_.domAPI=l();_.insertStyleElement=m();var b=r()(v.A,_);const y=v.A&&v.A.locals?v.A.locals:undefined},59464:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>I});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(74955);var l=n.n(a);var d=n(23899);var c=n.n(d);var h=n(45409);var u=n.n(h);var p=n(28548);var m=n.n(p);var g=n(84739);var f=n.n(g);var v=n(76387);var _=n.n(v);var b=n(30619);var y=n.n(b);var w=n(26331);var C=n.n(w);var x=n(1143);var S=n.n(x);var k;(function(e){e.copy="terminal:copy";e.createNew="terminal:create-new";e.open="terminal:open";e.refresh="terminal:refresh";e.increaseFont="terminal:increase-font";e.decreaseFont="terminal:decrease-font";e.paste="terminal:paste";e.setTheme="terminal:set-theme";e.shutdown="terminal:shut-down"})(k||(k={}));const j={activate:E,id:"@jupyterlab/terminal-extension:plugin",description:"Adds terminal and provides its tracker.",provides:v.ITerminalTracker,requires:[g.ISettingRegistry,b.ITranslator],optional:[o.ICommandPalette,a.ILauncher,i.ILayoutRestorer,d.IMainMenu,o.IThemeManager,h.IRunningSessionManagers],autoStart:true};const I=j;function E(e,t,n,i,s,r,a,l,d){const c=n.load("jupyterlab");const{serviceManager:h,commands:u}=e;const p=c.__("Terminal");const m="terminal";const g=new o.WidgetTracker({namespace:m});if(!h.terminals.isAvailable()){console.warn("Disabling terminals plugin because they are not available on the server");return g}if(r){void r.restore(g,{command:k.createNew,args:e=>({name:e.content.session.name}),name:e=>e.content.session.name})}const f={};function v(e){Object.keys(e.composite).forEach((t=>{f[t]=e.composite[t]}))}function _(e){const t=e.content;if(!t){return}Object.keys(f).forEach((e=>{t.setOption(e,f[e])}))}function b(){g.forEach((e=>_(e)))}t.load(j.id).then((e=>{v(e);b();e.changed.connect((()=>{v(e);b()}))})).catch(D.showErrorMessage);l===null||l===void 0?void 0:l.themeChanged.connect(((e,t)=>{g.forEach((e=>{const t=e.content;if(t.getOption("theme")==="inherit"){t.setOption("theme","inherit")}}))}));M(e,g,t,n,f);if(a){const e=new x.Menu({commands:u});e.title.label=c._p("menu","Terminal Theme");e.addItem({command:k.setTheme,args:{theme:"inherit",displayName:c.__("Inherit"),isPalette:false}});e.addItem({command:k.setTheme,args:{theme:"light",displayName:c.__("Light"),isPalette:false}});e.addItem({command:k.setTheme,args:{theme:"dark",displayName:c.__("Dark"),isPalette:false}});a.settingsMenu.addGroup([{command:k.increaseFont},{command:k.decreaseFont},{type:"submenu",submenu:e}],40);a.fileMenu.newMenu.addItem({command:k.createNew,rank:20});a.fileMenu.closeAndCleaners.add({id:k.shutdown,isEnabled:e=>g.currentWidget!==null&&g.has(e)})}if(i){[k.createNew,k.refresh,k.increaseFont,k.decreaseFont].forEach((e=>{i.addItem({command:e,category:p,args:{isPalette:true}})}));i.addItem({command:k.setTheme,category:p,args:{theme:"inherit",displayName:c.__("Inherit"),isPalette:true}});i.addItem({command:k.setTheme,category:p,args:{theme:"light",displayName:c.__("Light"),isPalette:true}});i.addItem({command:k.setTheme,category:p,args:{theme:"dark",displayName:c.__("Dark"),isPalette:true}})}if(s){s.add({command:k.createNew,category:c.__("Other"),rank:0})}if(d){T(d,e,n)}return g}function T(e,t,n){const i=n.load("jupyterlab");const s=t.serviceManager.terminals;class o{constructor(e){this._model=e}open(){void t.commands.execute("terminal:open",{name:this._model.name})}icon(){return w.terminalIcon}label(){return`terminals/${this._model.name}`}shutdown(){return s.shutdown(this._model.name)}}e.add({name:i.__("Terminals"),supportsMultipleViews:false,running:()=>Array.from(s.running()).map((e=>new o(e))),shutdownAll:()=>s.shutdownAll(),refreshRunning:()=>s.refreshRunning(),runningChanged:s.runningChanged,shutdownLabel:i.__("Shut Down"),shutdownAllLabel:i.__("Shut Down All"),shutdownAllConfirmationText:i.__("Are you sure you want to permanently shut down all running terminals?")})}function M(e,t,n,i,s){var r;const a=i.load("jupyterlab");const{commands:l,serviceManager:d}=e;const c=()=>t.currentWidget!==null&&t.currentWidget===e.shell.currentWidget;l.addCommand(k.createNew,{label:e=>e["isPalette"]?a.__("New Terminal"):a.__("Terminal"),caption:a.__("Start a new terminal session"),icon:e=>e["isPalette"]?undefined:w.terminalIcon,execute:async n=>{const r=n["name"];const a=n["cwd"];const l=a?d.contents.localPath(a):undefined;let c;if(r){const e=await p.TerminalAPI.listRunning(d.serverSettings);if(e.map((e=>e.name)).includes(r)){c=d.terminals.connectTo({model:{name:r}})}else{c=await d.terminals.startNew({name:r,cwd:l})}}else{c=await d.terminals.startNew({cwd:l})}const h=new v.Terminal(c,s,i);h.title.icon=w.terminalIcon;h.title.label="...";const u=new o.MainAreaWidget({content:h,reveal:h.ready});e.shell.add(u,"main",{type:"Terminal"});void t.add(u);e.shell.activateById(u.id);return u}});l.addCommand(k.open,{label:a.__("Open a terminal by its `name`."),execute:n=>{const i=n["name"];const s=t.find((e=>{const t=e.content;return t.session.name===i||false}));if(s){e.shell.activateById(s.id)}else{return l.execute(k.createNew,{name:i})}}});l.addCommand(k.refresh,{label:a.__("Refresh Terminal"),caption:a.__("Refresh the current terminal session"),execute:async()=>{const n=t.currentWidget;if(!n){return}e.shell.activateById(n.id);try{await n.content.refresh();if(n){n.content.activate()}}catch(i){D.showErrorMessage(i)}},icon:e=>e["isPalette"]?undefined:w.refreshIcon.bindprops({stylesheet:"menuItem"}),isEnabled:c});l.addCommand(k.copy,{execute:()=>{var e;const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(!n){return}const i=n.getSelection();if(i){o.Clipboard.copyToSystem(i);n.activate()}},isEnabled:()=>{var e;if(!c()){return false}const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(!n){return false}return n.hasSelection()},icon:w.copyIcon.bindprops({stylesheet:"menuItem"}),label:a.__("Copy")});l.addCommand(k.paste,{execute:async()=>{var e;const n=(e=t.currentWidget)===null||e===void 0?void 0:e.content;if(!n){return}const i=window.navigator.clipboard;const s=await i.readText();if(s){n.paste(s);n.activate()}},isEnabled:()=>{var e;return Boolean(c()&&((e=t.currentWidget)===null||e===void 0?void 0:e.content))},icon:w.pasteIcon.bindprops({stylesheet:"menuItem"}),label:a.__("Paste")});l.addCommand(k.shutdown,{label:a.__("Shutdown Terminal"),execute:()=>{const e=t.currentWidget;if(!e){return}return e.content.session.shutdown()},isEnabled:c});l.addCommand(k.increaseFont,{label:a.__("Increase Terminal Font Size"),execute:async()=>{const{fontSize:e}=s;if(e&&e<72){try{await n.set(j.id,"fontSize",e+1)}catch(t){D.showErrorMessage(t)}}}});l.addCommand(k.decreaseFont,{label:a.__("Decrease Terminal Font Size"),execute:async()=>{const{fontSize:e}=s;if(e&&e>9){try{await n.set(j.id,"fontSize",e-1)}catch(t){D.showErrorMessage(t)}}}});const h={inherit:a.__("Inherit"),light:a.__("Light"),dark:a.__("Dark")};l.addCommand(k.setTheme,{label:e=>{if(e.theme===undefined){return a.__("Set terminal theme to the provided `theme`.")}const t=e["theme"];const n=t in h?h[t]:a.__(t[0].toUpperCase()+t.slice(1));return e["isPalette"]?a.__("Use Terminal Theme: %1",n):n},caption:a.__("Set the terminal theme"),isToggled:e=>{const{theme:t}=s;return e["theme"]===t},execute:async e=>{const t=e["theme"];try{await n.set(j.id,"theme",t);l.notifyCommandChanged(k.setTheme)}catch(i){console.log(i);D.showErrorMessage(i)}}});const u=[k.refresh,k.copy,k.paste,k.shutdown];const m=()=>{u.forEach((e=>l.notifyCommandChanged(e)))};t.currentChanged.connect(m);(r=e.shell.currentChanged)===null||r===void 0?void 0:r.connect(m)}var D;(function(e){function t(e){console.error(`Failed to configure ${j.id}: ${e.message}`)}e.showErrorMessage=t})(D||(D={}))},70558:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(3579);var a=n(75797);var l=n(67996);var d=n(94780);var c=n(69448);var h=n(85072);var u=n.n(h);var p=n(97825);var m=n.n(p);var g=n(77659);var f=n.n(g);var v=n(55056);var _=n.n(v);var b=n(10540);var y=n.n(b);var w=n(41113);var C=n.n(w);var x=n(51466);var S={};S.styleTagTransform=C();S.setAttributes=_();S.insert=f().bind(null,"head");S.domAPI=m();S.insertStyleElement=y();var k=u()(x.A,S);const j=x.A&&x.A.locals?x.A.locals:undefined},4202:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ITerminal:()=>o,ITerminalTracker:()=>s,Terminal:()=>u});var i=n(5592);const s=new i.Token("@jupyterlab/terminal:ITerminalTracker",`A widget tracker for terminals.\n Use this if you want to be able to iterate over and interact with terminals\n created by the application.`);var o;(function(e){e.defaultOptions={theme:"inherit",fontFamily:'Menlo, Consolas, "DejaVu Sans Mono", monospace',fontSize:13,lineHeight:1,scrollback:1e3,shutdownOnClose:false,closeOnExit:true,cursorBlink:true,initialCommand:"",screenReaderMode:false,pasteWithCtrlV:true,autoFit:true,macOptionIsMeta:false}})(o||(o={}));var r=n(30619);var a=n(76326);var l=n(42856);var d=n(1143);const c="jp-Terminal";const h="jp-Terminal-body";class u extends d.Widget{constructor(e,t={},n){super();this._needsResize=true;this._offsetWidth=-1;this._offsetHeight=-1;this._isReady=false;this._ready=new i.PromiseDelegate;this._termOpened=false;n=n||r.nullTranslator;this._trans=n.load("jupyterlab");this.session=e;this._options={...o.defaultOptions,...t};const{theme:s,...a}=this._options;const l={theme:p.getXTermTheme(s),...a};this.addClass(c);this._setThemeAttribute(s);let d="";const h=(e,t)=>{switch(t.type){case"stdout":if(t.content){d+=t.content[0]}break;default:break}};e.messageReceived.connect(h);e.disposed.connect((()=>{if(this.getOption("closeOnExit")){this.dispose()}}),this);p.createTerminal(l).then((([t,n])=>{this._term=t;this._fitAddon=n;this._initializeTerm();this.id=`jp-Terminal-${p.id++}`;this.title.label=this._trans.__("Terminal");this._isReady=true;this._ready.resolve();if(d){this._term.write(d)}e.messageReceived.disconnect(h);e.messageReceived.connect(this._onMessage,this);if(e.connectionStatus==="connected"){this._initialConnection()}else{e.connectionStatusChanged.connect(this._initialConnection,this)}this.update()})).catch((e=>{console.error("Failed to create a terminal.\n",e);this._ready.reject(e)}))}get ready(){return this._ready.promise}getOption(e){return this._options[e]}setOption(e,t){if(e!=="theme"&&(this._options[e]===t||e==="initialCommand")){return}this._options[e]=t;switch(e){case"fontFamily":this._term.options.fontFamily=t;break;case"fontSize":this._term.options.fontSize=t;break;case"lineHeight":this._term.options.lineHeight=t;break;case"screenReaderMode":this._term.options.screenReaderMode=t;break;case"scrollback":this._term.options.scrollback=t;break;case"theme":this._term.options.theme={...p.getXTermTheme(t)};this._setThemeAttribute(t);break;case"macOptionIsMeta":this._term.options.macOptionIsMeta=t;break;default:break}this._needsResize=true;this.update()}dispose(){if(!this.session.isDisposed){if(this.getOption("shutdownOnClose")){this.session.shutdown().catch((e=>{console.error(`Terminal not shut down: ${e}`)}))}}void this.ready.then((()=>{this._term.dispose()}));super.dispose()}async refresh(){if(!this.isDisposed&&this._isReady){await this.session.reconnect();this._term.clear()}}hasSelection(){if(!this.isDisposed&&this._isReady){return this._term.hasSelection()}return false}paste(e){if(!this.isDisposed&&this._isReady){return this._term.paste(e)}}getSelection(){if(!this.isDisposed&&this._isReady){return this._term.getSelection()}return null}processMessage(e){super.processMessage(e);switch(e.type){case"fit-request":this.onFitRequest(e);break;default:break}}onAfterAttach(e){this.update()}onAfterShow(e){this.update()}onResize(e){this._offsetWidth=e.width;this._offsetHeight=e.height;this._needsResize=true;this.update()}onUpdateRequest(e){var t;if(!this.isVisible||!this.isAttached||!this._isReady){return}if(!this._termOpened){this._term.open(this.node);(t=this._term.element)===null||t===void 0?void 0:t.classList.add(h);this._termOpened=true}if(this._needsResize){this._resizeTerminal()}}onFitRequest(e){const t=d.Widget.ResizeMessage.UnknownSize;l.MessageLoop.sendMessage(this,t)}onActivateRequest(e){var t;(t=this._term)===null||t===void 0?void 0:t.focus()}_initialConnection(){if(this.isDisposed){return}if(this.session.connectionStatus!=="connected"){return}this.title.label=this._trans.__("Terminal %1",this.session.name);this._setSessionSize();if(this._options.initialCommand){this.session.send({type:"stdin",content:[this._options.initialCommand+"\r"]})}this.session.connectionStatusChanged.disconnect(this._initialConnection,this)}_initializeTerm(){const e=this._term;e.onData((e=>{if(this.isDisposed){return}this.session.send({type:"stdin",content:[e]})}));e.onTitleChange((e=>{this.title.label=e}));if(a.Platform.IS_MAC){return}e.attachCustomKeyEventHandler((t=>{if(t.ctrlKey&&t.key==="c"&&e.hasSelection()){return false}if(t.ctrlKey&&t.key==="v"&&this._options.pasteWithCtrlV){return false}return true}))}_onMessage(e,t){switch(t.type){case"stdout":if(t.content){this._term.write(t.content[0])}break;case"disconnect":this._term.write("\r\n\r\n[Finished… Term Session]\r\n");break;default:break}}_resizeTerminal(){if(this._options.autoFit){this._fitAddon.fit()}if(this._offsetWidth===-1){this._offsetWidth=this.node.offsetWidth}if(this._offsetHeight===-1){this._offsetHeight=this.node.offsetHeight}this._setSessionSize();this._needsResize=false}_setSessionSize(){const e=[this._term.rows,this._term.cols,this._offsetHeight,this._offsetWidth];if(!this.isDisposed){this.session.send({type:"set_size",content:e})}}_setThemeAttribute(e){if(this.isDisposed){return}this.node.setAttribute("data-term-theme",e?e.toLowerCase():"inherit")}}var p;(function(e){e.id=0;e.lightTheme={foreground:"#000",background:"#fff",cursor:"#616161",cursorAccent:"#F5F5F5",selectionBackground:"rgba(97, 97, 97, 0.3)",selectionInactiveBackground:"rgba(189, 189, 189, 0.3)"};e.darkTheme={foreground:"#fff",background:"#000",cursor:"#fff",cursorAccent:"#000",selectionBackground:"rgba(255, 255, 255, 0.3)",selectionInactiveBackground:"rgba(238, 238, 238, 0.3)"};e.inheritTheme=()=>({foreground:getComputedStyle(document.body).getPropertyValue("--jp-ui-font-color0").trim(),background:getComputedStyle(document.body).getPropertyValue("--jp-layout-color0").trim(),cursor:getComputedStyle(document.body).getPropertyValue("--jp-ui-font-color1").trim(),cursorAccent:getComputedStyle(document.body).getPropertyValue("--jp-ui-inverse-font-color0").trim(),selectionBackground:getComputedStyle(document.body).getPropertyValue("--jp-layout-color3").trim(),selectionInactiveBackground:getComputedStyle(document.body).getPropertyValue("--jp-layout-color2").trim()});function t(t){switch(t){case"light":return e.lightTheme;case"dark":return e.darkTheme;case"inherit":default:return e.inheritTheme()}}e.getXTermTheme=t})(p||(p={}));(function(e){let t=false;let i;let s;let o;let r;function a(){const e=document.createElement("canvas");const t=e.getContext("webgl")||e.getContext("experimental-webgl");try{return t instanceof WebGLRenderingContext}catch(n){return false}}function l(e){let n=new r;e.loadAddon(n);if(t){n.onContextLoss((t=>{console.debug("WebGL context lost - reinitialize Xtermjs renderer.");n.dispose();l(e)}))}}async function d(e){var d;if(!i){t=a();const[e,l,c,h]=await Promise.all([n.e(7856).then(n.t.bind(n,97856,23)),n.e(3616).then(n.t.bind(n,33616,23)),t?n.e(3799).then(n.t.bind(n,56180,23)):n.e(2880).then(n.t.bind(n,52880,23)),n.e(1832).then(n.t.bind(n,31832,23))]);i=e.Terminal;s=l.FitAddon;r=(d=c.WebglAddon)!==null&&d!==void 0?d:c.CanvasAddon;o=h.WebLinksAddon}const c=new i(e);l(c);const h=new s;c.loadAddon(h);c.loadAddon(new o);return[c,h]}e.createTerminal=d})(p||(p={}))},10020:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>l});var i=n(14366);var s=n.n(i);var o=n(30619);var r=n.n(o);const a={id:"@jupyterlab/theme-dark-extension:plugin",description:"Adds a dark theme.",requires:[i.IThemeManager,o.ITranslator],activate:(e,t,n)=>{const i=n.load("jupyterlab");const s="@jupyterlab/theme-dark-extension/index.css";t.register({name:"JupyterLab Dark",displayName:i.__("JupyterLab Dark"),isLight:false,themeScrollbars:true,load:()=>t.loadCSS(s),unload:()=>Promise.resolve(undefined)})},autoStart:true};const l=a},5180:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>l});var i=n(14366);var s=n.n(i);var o=n(30619);var r=n.n(o);const a={id:"@jupyterlab/theme-dark-high-contrast-extension:plugin",description:"Adds a dark high contrast theme.",requires:[i.IThemeManager,o.ITranslator],activate:(e,t,n)=>{const i=n.load("jupyterlab");const s="@jupyterlab/theme-dark-high-contrast-extension/index.css";t.register({name:"JupyterLab Dark High Contrast",displayName:i.__("JupyterLab Dark High Contrast"),isLight:false,themeScrollbars:true,load:()=>t.loadCSS(s),unload:()=>Promise.resolve(undefined)})},autoStart:true};const l=a},84988:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>l});var i=n(14366);var s=n.n(i);var o=n(30619);var r=n.n(o);const a={id:"@jupyterlab/theme-light-extension:plugin",description:"Adds a light theme.",requires:[i.IThemeManager,o.ITranslator],activate:(e,t,n)=>{const i=n.load("jupyterlab");const s="@jupyterlab/theme-light-extension/index.css";t.register({name:"JupyterLab Light",displayName:i.__("JupyterLab Light"),isLight:true,themeScrollbars:false,load:()=>t.loadCSS(s),unload:()=>Promise.resolve(undefined)})},autoStart:true};const l=a},27866:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>v});var i=n(94307);var s=n.n(i);var o=n(84739);var r=n.n(o);var a=n(62149);var l=n.n(a);var d=n(30619);var c=n.n(d);var h=n(26331);var u=n.n(h);var p;(function(e){e.displayNumbering="toc:display-numbering";e.displayH1Numbering="toc:display-h1-numbering";e.displayOutputNumbering="toc:display-outputs-numbering";e.showPanel="toc:show-panel";e.toggleCollapse="toc:toggle-collapse"})(p||(p={}));async function m(e,t,n,i,s,o){const r=(n!==null&&n!==void 0?n:d.nullTranslator).load("jupyterlab");let l={...a.TableOfContents.defaultConfig};const c=new a.TableOfContentsPanel(n!==null&&n!==void 0?n:undefined);c.title.icon=h.tocIcon;c.title.caption=r.__("Table of Contents");c.id="table-of-contents";c.node.setAttribute("role","region");c.node.setAttribute("aria-label",r.__("Table of Contents section"));e.commands.addCommand(p.displayH1Numbering,{label:r.__("Show first-level heading number"),execute:()=>{if(c.model){c.model.setConfiguration({numberingH1:!c.model.configuration.numberingH1})}},isEnabled:()=>{var e,t;return(t=(e=c.model)===null||e===void 0?void 0:e.supportedOptions.includes("numberingH1"))!==null&&t!==void 0?t:false},isToggled:()=>{var e,t;return(t=(e=c.model)===null||e===void 0?void 0:e.configuration.numberingH1)!==null&&t!==void 0?t:false}});e.commands.addCommand(p.displayNumbering,{label:r.__("Show heading number in the document"),icon:e=>e.toolbar?h.numberingIcon:undefined,execute:()=>{if(c.model){c.model.setConfiguration({numberHeaders:!c.model.configuration.numberHeaders});e.commands.notifyCommandChanged(p.displayNumbering)}},isEnabled:()=>{var e,t;return(t=(e=c.model)===null||e===void 0?void 0:e.supportedOptions.includes("numberHeaders"))!==null&&t!==void 0?t:false},isToggled:()=>{var e,t;return(t=(e=c.model)===null||e===void 0?void 0:e.configuration.numberHeaders)!==null&&t!==void 0?t:false}});e.commands.addCommand(p.displayOutputNumbering,{label:r.__("Show output headings"),execute:()=>{if(c.model){c.model.setConfiguration({includeOutput:!c.model.configuration.includeOutput})}},isEnabled:()=>{var e,t;return(t=(e=c.model)===null||e===void 0?void 0:e.supportedOptions.includes("includeOutput"))!==null&&t!==void 0?t:false},isToggled:()=>{var e,t;return(t=(e=c.model)===null||e===void 0?void 0:e.configuration.includeOutput)!==null&&t!==void 0?t:false}});e.commands.addCommand(p.showPanel,{label:r.__("Table of Contents"),execute:()=>{e.shell.activateById(c.id)}});function u(e){return e.headings.some((e=>{var t;return!((t=e.collapsed)!==null&&t!==void 0?t:false)}))}e.commands.addCommand(p.toggleCollapse,{label:()=>c.model&&!u(c.model)?r.__("Expand All Headings"):r.__("Collapse All Headings"),icon:e=>e.toolbar?c.model&&!u(c.model)?h.expandAllIcon:h.collapseAllIcon:undefined,execute:()=>{if(c.model){if(u(c.model)){c.model.toggleCollapse({collapsed:true})}else{c.model.toggleCollapse({collapsed:false})}}},isEnabled:()=>c.model!==null});const m=new a.TableOfContentsTracker;if(i){i.add(c,"@jupyterlab/toc:plugin")}let f;if(o){try{f=await o.load(g.id);const t=t=>{const n=t.composite;for(const e of[...Object.keys(l)]){const t=n[e];if(t!==undefined){l[e]=t}}if(s){for(const e of s.widgets("main")){const t=m.get(e);if(t){t.setConfiguration(l)}}}else{if(e.shell.currentWidget){const t=m.get(e.shell.currentWidget);if(t){t.setConfiguration(l)}}}};if(f){f.changed.connect(t);t(f)}}catch(x){console.error(`Failed to load settings for the Table of Contents extension.\n\n${x}`)}}const v=new h.CommandToolbarButton({commands:e.commands,id:p.displayNumbering,args:{toolbar:true},label:""});v.addClass("jp-toc-numberingButton");c.toolbar.node.setAttribute("aria-label",r.__("Table of contents sidepanel toolbar"));c.toolbar.addItem("display-numbering",v);c.toolbar.addItem("spacer",h.Toolbar.createSpacerItem());c.toolbar.addItem("collapse-all",new h.CommandToolbarButton({commands:e.commands,id:p.toggleCollapse,args:{toolbar:true},label:""}));const _=new h.MenuSvg({commands:e.commands});_.addItem({command:p.displayH1Numbering});_.addItem({command:p.displayOutputNumbering});const b=new h.ToolbarButton({tooltip:r.__("More actions…"),icon:h.ellipsesIcon,noFocusOnClick:false,onClick:()=>{const e=b.node.getBoundingClientRect();_.open(e.x,e.bottom)}});c.toolbar.addItem("submenu",b);e.shell.add(c,"left",{rank:400,type:"Table of Contents"});if(s){s.currentChanged.connect(y)}void e.restored.then((()=>{y()}));return m;function y(){var n;let i=e.shell.currentWidget;if(!i){return}let s=m.get(i);if(!s){s=(n=t.getModel(i,l))!==null&&n!==void 0?n:null;if(s){m.add(i,s)}i.disposed.connect((()=>{s===null||s===void 0?void 0:s.dispose()}))}if(c.model){c.model.headingsChanged.disconnect(C);c.model.collapseChanged.disconnect(C)}c.model=s;if(c.model){c.model.headingsChanged.connect(C);c.model.collapseChanged.connect(C)}w()}function w(){e.commands.notifyCommandChanged(p.displayNumbering);e.commands.notifyCommandChanged(p.toggleCollapse)}function C(){e.commands.notifyCommandChanged(p.toggleCollapse)}}const g={id:"@jupyterlab/toc-extension:registry",description:"Provides the table of contents registry.",autoStart:true,provides:a.ITableOfContentsRegistry,activate:()=>new a.TableOfContentsRegistry};const f={id:"@jupyterlab/toc-extension:tracker",description:"Adds the table of content widget and provides its tracker.",autoStart:true,provides:a.ITableOfContentsTracker,requires:[a.ITableOfContentsRegistry],optional:[d.ITranslator,i.ILayoutRestorer,i.ILabShell,o.ISettingRegistry],activate:m};const v=[g,f]},31747:(e,t,n)=>{"use strict";var i=n(40662);var s=n(3579);var o=n(66731);var r=n(85072);var a=n.n(r);var l=n(97825);var d=n.n(l);var c=n(77659);var h=n.n(c);var u=n(55056);var p=n.n(u);var m=n(10540);var g=n.n(m);var f=n(41113);var v=n.n(f);var _=n(38026);var b={};b.styleTagTransform=v();b.setAttributes=p();b.insert=h().bind(null,"head");b.domAPI=d();b.insertStyleElement=g();var y=a()(_.A,b);const w=_.A&&_.A.locals?_.A.locals:undefined},49830:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ITableOfContentsRegistry:()=>h,ITableOfContentsTracker:()=>u,TableOfContents:()=>p,TableOfContentsFactory:()=>a,TableOfContentsItem:()=>_,TableOfContentsModel:()=>m,TableOfContentsPanel:()=>w,TableOfContentsRegistry:()=>S,TableOfContentsTracker:()=>k,TableOfContentsTree:()=>b,TableOfContentsUtils:()=>s,TableOfContentsWidget:()=>y});var i={};n.r(i);n.d(i,{getHeadingId:()=>N,getHeadings:()=>O,isMarkdown:()=>z});var s={};n.r(s);n.d(s,{Markdown:()=>i,NUMBERING_CLASS:()=>j,addPrefix:()=>M,clearNumbering:()=>P,filterHeadings:()=>I,getHTMLHeadings:()=>T,getPrefix:()=>D,isHTML:()=>E});var o=n(30397);const r=1e3;class a{constructor(e){this.tracker=e}isApplicable(e){if(!this.tracker.has(e)){return false}return true}createNew(e,t){const n=this._createNew(e,t);const i=e.context;const s=()=>{n.refresh().catch((e=>{console.error("Failed to update the table of contents.",e)}))};const a=new o.ActivityMonitor({signal:i.model.contentChanged,timeout:r});a.activityStopped.connect(s);const l=()=>{n.title=o.PathExt.basename(i.localPath)};i.pathChanged.connect(l);i.ready.then((()=>{l();s()})).catch((e=>{console.error(`Failed to initiate headings for ${i.localPath}.`)}));e.disposed.connect((()=>{a.activityStopped.disconnect(s);i.pathChanged.disconnect(l)}));return n}}var l=n(26331);var d=n(5592);var c=n(2336);const h=new d.Token("@jupyterlab/toc:ITableOfContentsRegistry","A service to register table of content factory.");const u=new d.Token("@jupyterlab/toc:ITableOfContentsTracker","A widget tracker for table of contents.");var p;(function(e){e.defaultConfig={baseNumbering:1,maximalDepth:4,numberingH1:true,numberHeaders:false,includeOutput:true,syncCollapseState:false}})(p||(p={}));class m extends l.VDomModel{constructor(e,t){super();this.widget=e;this._activeHeading=null;this._activeHeadingChanged=new c.Signal(this);this._collapseChanged=new c.Signal(this);this._configuration=t!==null&&t!==void 0?t:{...p.defaultConfig};this._headings=new Array;this._headingsChanged=new c.Signal(this);this._isActive=false;this._isRefreshing=false;this._needsRefreshing=false}get activeHeading(){return this._activeHeading}get activeHeadingChanged(){return this._activeHeadingChanged}get collapseChanged(){return this._collapseChanged}get configuration(){return this._configuration}get headings(){return this._headings}get headingsChanged(){return this._headingsChanged}get isActive(){return this._isActive}set isActive(e){this._isActive=e;if(this._isActive&&!this.isAlwaysActive){this.refresh().catch((e=>{console.error("Failed to refresh ToC model.",e)}))}}get isAlwaysActive(){return false}get supportedOptions(){return["maximalDepth"]}get title(){return this._title}set title(e){if(e!==this._title){this._title=e;this.stateChanged.emit()}}async refresh(){if(this._isRefreshing){this._needsRefreshing=true;return Promise.resolve()}this._isRefreshing=true;try{const e=await this.getHeadings();if(this._needsRefreshing){this._needsRefreshing=false;this._isRefreshing=false;return this.refresh()}if(e&&!this._areHeadingsEqual(e,this._headings)){this._headings=e;this.stateChanged.emit();this._headingsChanged.emit()}}finally{this._isRefreshing=false}}setActiveHeading(e,t=true){if(this._activeHeading!==e){this._activeHeading=e;this.stateChanged.emit()}if(t){this._activeHeadingChanged.emit(this._activeHeading)}}setConfiguration(e){const t={...this._configuration,...e};if(!d.JSONExt.deepEqual(this._configuration,t)){this._configuration=t;this.refresh().catch((e=>{console.error("Failed to update the table of contents.",e)}))}}toggleCollapse(e){var t,n;if(e.heading){e.heading.collapsed=(t=e.collapsed)!==null&&t!==void 0?t:!e.heading.collapsed;this.stateChanged.emit();this._collapseChanged.emit(e.heading)}else{const t=(n=e.collapsed)!==null&&n!==void 0?n:!this.headings.some((e=>{var t;return!((t=e.collapsed)!==null&&t!==void 0?t:false)}));this.headings.forEach((e=>e.collapsed=t));this.stateChanged.emit();this._collapseChanged.emit(null)}}isHeadingEqual(e,t){return e.level===t.level&&e.text===t.text&&e.prefix===t.prefix}_areHeadingsEqual(e,t){if(e.length===t.length){for(let n=0;n{if(!e.defaultPrevented&&e.target.expanded!==!n.collapsed){e.preventDefault();i(n)}};return f.createElement(v.TreeItem,{className:"jp-tocItem jp-TreeItem nested",selected:t,expanded:!n.collapsed,onExpand:o,onMouseDown:e=>{if(!e.defaultPrevented){e.preventDefault();s(n)}},onKeyUp:e=>{if(!e.defaultPrevented&&e.key==="Enter"&&!t){e.preventDefault();s(n)}}},f.createElement("div",{className:"jp-tocItem-heading"},f.createElement("span",{className:"jp-tocItem-content",title:n.text,...n.dataset},n.prefix,n.text)),e)}}class b extends f.PureComponent{render(){const{documentType:e}=this.props;return f.createElement(v.TreeView,{className:"jp-TableOfContents-content jp-TreeView","data-document-type":e},this.buildTree())}buildTree(){if(this.props.headings.length===0){return[]}const e=t=>{const n=this.props.headings;const i=new Array;const s=n[t];let o=t+1;while(o{this.model.toggleCollapse({heading:e})},setActiveHeading:e=>{this.model.setActiveHeading(e)}})}}class w extends l.SidePanel{constructor(e){super({content:new g.Panel,translator:e});this._model=null;this.addClass("jp-TableOfContents");this._title=new C.Header(this._trans.__("Table of Contents"));this.header.addWidget(this._title);this._treeview=new y({placeholderHeadline:this._trans.__("No Headings"),placeholderText:this._trans.__("The table of contents shows headings in notebooks and supported files.")});this._treeview.addClass("jp-TableOfContents-tree");this.content.addWidget(this._treeview)}get model(){return this._model}set model(e){var t,n;if(this._model!==e){(t=this._model)===null||t===void 0?void 0:t.stateChanged.disconnect(this._onTitleChanged,this);this._model=e;if(this._model){this._model.isActive=this.isVisible}(n=this._model)===null||n===void 0?void 0:n.stateChanged.connect(this._onTitleChanged,this);this._onTitleChanged();this._treeview.model=this._model}}onAfterHide(e){super.onAfterHide(e);if(this._model){this._model.isActive=false}}onBeforeShow(e){super.onBeforeShow(e);if(this._model){this._model.isActive=true}}_onTitleChanged(){var e,t;this._title.setTitle((t=(e=this._model)===null||e===void 0?void 0:e.title)!==null&&t!==void 0?t:this._trans.__("Table of Contents"))}}var C;(function(e){class t extends g.Widget{constructor(e){const t=document.createElement("h2");t.textContent=e;t.classList.add("jp-text-truncated");super({node:t});this._title=t}setTitle(e){this._title.textContent=e}}e.Header=t})(C||(C={}));var x=n(90044);class S{constructor(){this._generators=new Map;this._idCounter=0}getModel(e,t){for(const n of this._generators.values()){if(n.isApplicable(e)){return n.createNew(e,t)}}}add(e){const t=this._idCounter++;this._generators.set(t,e);return new x.DisposableDelegate((()=>{this._generators.delete(t)}))}}class k{constructor(){this.modelMapping=new WeakMap}add(e,t){this.modelMapping.set(e,t)}get(e){const t=this.modelMapping.get(e);return!t||t.isDisposed?null:t}}const j="numbering-entry";function I(e,t,n=[]){const i={...p.defaultConfig,...t};const s=n;let o=s.length;const r=new Array;for(const a of e){if(a.skip){continue}const e=a.level;if(e>0&&e<=i.maximalDepth){const t=D(e,o,s,i);o=e;r.push({...a,prefix:t})}}return r}function E(e){return e==="text/html"}function T(e,t=true){var n;const i=document.createElement("div");i.innerHTML=e;const s=new Array;const o=i.querySelectorAll("h1, h2, h3, h4, h5, h6");for(const r of o){const e=parseInt(r.tagName[1],10);s.push({text:(n=r.textContent)!==null&&n!==void 0?n:"",level:e,id:r===null||r===void 0?void 0:r.getAttribute("id"),skip:r.classList.contains("jp-toc-ignore")||r.classList.contains("tocSkip")})}return s}function M(e,t,n){let i=e.querySelector(t);if(!i){return null}if(!i.querySelector(`span.${j}`)){A(i,n)}else{const s=e.querySelectorAll(t);for(const e of s){if(!e.querySelector(`span.${j}`)){i=e;A(e,n);break}}}return i}function D(e,t,n,i){const{baseNumbering:s,numberingH1:o,numberHeaders:r}=i;let a="";if(r){const i=o?1:2;if(e>t){for(let i=t;ie!==null&&e!==void 0?e:0)).join(".")+". "}else{if(n.length>1){a=n.slice(1).map((e=>e!==null&&e!==void 0?e:0)).join(".")+". "}}}return a}function A(e,t){e.insertAdjacentHTML("afterbegin",`${t}`)}function P(e){e===null||e===void 0?void 0:e.querySelectorAll(`span.${j}`).forEach((e=>{e.remove()}))}var L=n(14366);var R=n(44539);async function N(e,t,n,i){try{const s=document.createElement("div");await(0,R.renderMarkdown)({markdownParser:e,host:s,source:t,trusted:false,sanitizer:i!==null&&i!==void 0?i:new L.Sanitizer,shouldTypeset:false,resolver:null,linkHandler:null,latexTypesetter:null});const o=s.querySelector(`h${n}`);if(!o){return null}return o.id}catch(s){console.error("Failed to parse a heading.",s)}return null}function O(e){const t=e.split("\n");const n=new Array;let i;let s=0;let o;let r=0;if(t[r]==="---"){for(let e=r+1;e=s){i=!i;s=0;o=""}}if(i){continue}const a=H(e,t[r+1]);if(a){n.push({...a,line:r})}}return n}function B(e){let t;if(e.startsWith("`"))t=e.match(/^(`{3,})/);else t=e.match(/^(~{3,})/);return t?t[0].length:0}const F=["text/x-ipythongfm","text/x-markdown","text/x-gfm","text/markdown"];function z(e){return F.includes(e)}function H(e,t){let n=e.match(/^([#]{1,6}) (.*)/);if(n){return{text:W(n[2]),level:n[1].length,raw:e,skip:V.test(n[0])}}if(t){n=t.match(/^ {0,3}([=]{2,}|[-]{2,})\s*$/);if(n){return{text:W(e),level:n[1][0]==="="?1:2,raw:[e,t].join("\n"),skip:V.test(e)}}}n=e.match(/(.*)<\/h\1>/i);if(n){return{text:n[2],level:parseInt(n[1],10),skip:V.test(n[0]),raw:e}}return null}function W(e){return e.replace(/\[(.+)\]\(.+\)/g,"$1")}const V=/<\w+\s(.*?\s)?class="(.*?\s)?(jp-toc-ignore|tocSkip)(\s.*?)?"(\s.*?)?>/},66731:(e,t,n)=>{"use strict";var i=n(10395);var s=n(40662);var o=n(97913);var r=n(5893);var a=n(79010);var l=n(85072);var d=n.n(l);var c=n(97825);var h=n.n(c);var u=n(77659);var p=n.n(u);var m=n(55056);var g=n.n(m);var f=n(10540);var v=n.n(f);var _=n(41113);var b=n.n(_);var y=n(75682);var w={};w.styleTagTransform=b();w.setAttributes=g();w.insert=p().bind(null,"head");w.domAPI=h();w.insertStyleElement=v();var C=d()(y.A,w);const x=y.A&&y.A.locals?y.A.locals:undefined},77083:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>I});var i=n(9155);var s=n.n(i);var o=n(30397);var r=n.n(o);var a=n(4341);var l=n.n(a);var d=n(80349);var c=n.n(d);var h=n(44539);var u=n.n(h);var p=n(44855);var m=n.n(p);var g=n(30619);var f=n.n(g);var v=n(34236);var _=n.n(v);var b=n(1143);var y=n.n(b);var w;(function(e){e.dismiss="tooltip:dismiss";e.launchConsole="tooltip:launch-console";e.launchNotebook="tooltip:launch-notebook";e.launchFile="tooltip:launch-file"})(w||(w={}));const C={id:"@jupyterlab/tooltip-extension:manager",description:"Provides the tooltip manager.",autoStart:true,optional:[g.ITranslator],provides:p.ITooltipManager,activate:(e,t)=>{const n=(t!==null&&t!==void 0?t:g.nullTranslator).load("jupyterlab");let i=null;e.commands.addCommand(w.dismiss,{label:n.__("Dismiss the tooltip"),execute:()=>{if(i){i.dispose();i=null}}});return{invoke(e){const t=0;const{anchor:n,editor:s,kernel:o,rendermime:r}=e;if(i){i.dispose();i=null}return E.fetch({detail:t,editor:s,kernel:o}).then((e=>{i=new p.Tooltip({anchor:n,bundle:e,editor:s,rendermime:r});b.Widget.attach(i,document.body)})).catch((()=>{}))}}}};const x={id:"@jupyterlab/tooltip-extension:consoles",description:"Adds the tooltip capability to consoles.",autoStart:true,optional:[g.ITranslator],requires:[p.ITooltipManager,i.IConsoleTracker],activate:(e,t,n,i)=>{const s=(i!==null&&i!==void 0?i:g.nullTranslator).load("jupyterlab");e.commands.addCommand(w.launchConsole,{label:s.__("Open the tooltip"),execute:()=>{var e,i;const s=n.currentWidget;if(!s){return}const o=s.console;const r=(e=o.promptCell)===null||e===void 0?void 0:e.editor;const a=(i=o.sessionContext.session)===null||i===void 0?void 0:i.kernel;const l=o.rendermime;if(!!r&&!!a&&!!l){return t.invoke({anchor:o,editor:r,kernel:a,rendermime:l})}}})}};const S={id:"@jupyterlab/tooltip-extension:notebooks",description:"Adds the tooltip capability to notebooks.",autoStart:true,optional:[g.ITranslator],requires:[p.ITooltipManager,d.INotebookTracker],activate:(e,t,n,i)=>{const s=(i!==null&&i!==void 0?i:g.nullTranslator).load("jupyterlab");e.commands.addCommand(w.launchNotebook,{label:s.__("Open the tooltip"),execute:()=>{var e,i;const s=n.currentWidget;if(!s){return}const o=s.content;const r=(e=o.activeCell)===null||e===void 0?void 0:e.editor;const a=(i=s.sessionContext.session)===null||i===void 0?void 0:i.kernel;const l=o.rendermime;if(!!r&&!!a&&!!l){return t.invoke({anchor:o,editor:r,kernel:a,rendermime:l})}}})}};const k={id:"@jupyterlab/tooltip-extension:files",description:"Adds the tooltip capability to file editors.",autoStart:true,optional:[g.ITranslator],requires:[p.ITooltipManager,a.IEditorTracker,h.IRenderMimeRegistry],activate:(e,t,n,i,s)=>{const o=(s!==null&&s!==void 0?s:g.nullTranslator).load("jupyterlab");const r={};const a=e.serviceManager.sessions;const l=(e,t)=>{n.forEach((e=>{const n=(0,v.find)(t,(t=>e.context.path===t.path));if(n){const t=r[e.id];if(t&&t.id===n.id){return}if(t){delete r[e.id];t.dispose()}const i=a.connectTo({model:n});r[e.id]=i}else{const t=r[e.id];if(t){t.dispose();delete r[e.id]}}}))};l(a,a.running());a.runningChanged.connect(l);n.widgetAdded.connect(((e,t)=>{t.disposed.connect((e=>{const t=r[e.id];if(t){t.dispose();delete r[e.id]}}))}));e.commands.addCommand(w.launchFile,{label:o.__("Open the tooltip"),execute:async()=>{const e=n.currentWidget;const s=e&&r[e.id]&&r[e.id].kernel;if(!s){return}const o=e.content;const a=o===null||o===void 0?void 0:o.editor;if(!!a&&!!s&&!!i){return t.invoke({anchor:o,editor:a,kernel:s,rendermime:i})}}})}};const j=[C,x,S,k];const I=j;var E;(function(e){let t=0;function n(e){const{detail:n,editor:i,kernel:s}=e;const r=i.model.sharedModel.getSource();const a=i.getCursorPosition();const l=o.Text.jsIndexToCharIndex(i.getOffsetAt(a),r);if(!r||!s){return Promise.reject(void 0)}const d={code:r,cursor_pos:l,detail_level:n||0};const c=++t;return s.requestInspect(d).then((e=>{const n=e.content;if(c!==t){return Promise.reject(void 0)}if(n.status!=="ok"||!n.found){return Promise.reject(void 0)}return Promise.resolve(n.data)}))}e.fetch=n})(E||(E={}))},95527:(e,t,n)=>{"use strict";var i=n(10395);var s=n(17325);var o=n(5893);var r=n(3579);var a=n(50286);var l=n(77748);var d=n(28006);var c=n(40662);var h=n(85072);var u=n.n(h);var p=n(97825);var m=n.n(p);var g=n(77659);var f=n.n(g);var v=n(55056);var _=n.n(v);var b=n(10540);var y=n.n(b);var w=n(41113);var C=n.n(w);var x=n(69231);var S={};S.styleTagTransform=C();S.setAttributes=_();S.insert=f().bind(null,"head");S.domAPI=m();S.insertStyleElement=y();var k=u()(x.A,S);const j=x.A&&x.A.locals?x.A.locals:undefined},22087:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ITooltipManager:()=>s,Tooltip:()=>m});var i=n(5592);const s=new i.Token("@jupyterlab/tooltip:ITooltipManager","A service for the tooltip manager for the application. Use this to allow your extension to invoke a tooltip.");var o=n(26331);var r=n(44539);var a=n(1143);const l="jp-Tooltip";const d="jp-Tooltip-content";const c="jp-mod-tooltip";const h=20;const u=250;const p=true;class m extends a.Widget{constructor(e){super();this._content=null;this.addClass("jp-ThemedContainer");const t=this.layout=new a.PanelLayout;const n=new r.MimeModel({data:e.bundle});this.anchor=e.anchor;this.addClass(l);this.hide();this._editor=e.editor;this._position=e.position;this._rendermime=e.rendermime;const i=this._rendermime.preferredMimeType(e.bundle,"any");if(!i){return}this._content=this._rendermime.createRenderer(i);this._content.renderModel(n).then((()=>this._setGeometry())).catch((e=>console.error("tooltip rendering failed",e)));this._content.addClass(d);t.addWidget(this._content)}dispose(){if(this._content){this._content.dispose();this._content=null}super.dispose()}handleEvent(e){if(this.isHidden||this.isDisposed){return}const{node:t}=this;const n=e.target;switch(e.type){case"keydown":if(t.contains(n)){return}this.dispose();break;case"mousedown":if(t.contains(n)){this.activate();return}this.dispose();break;case"scroll":this._evtScroll(e);break;default:break}}onActivateRequest(e){this.node.tabIndex=0;this.node.focus()}onAfterAttach(e){document.body.classList.add(c);document.addEventListener("keydown",this,p);document.addEventListener("mousedown",this,p);this.anchor.node.addEventListener("scroll",this,p);this.update()}onBeforeDetach(e){document.body.classList.remove(c);document.removeEventListener("keydown",this,p);document.removeEventListener("mousedown",this,p);this.anchor.node.removeEventListener("scroll",this,p)}onUpdateRequest(e){if(this.isHidden){this.show()}this._setGeometry();super.onUpdateRequest(e)}_evtScroll(e){if(this.node.contains(e.target)){return}this.update()}_getTokenPosition(){const e=this._editor;const t=e.getCursorPosition();const n=e.getOffsetAt(t);const i=e.getLine(t.line);if(!i){return}const s=i.substring(0,n).split(/\W+/);const o=s[s.length-1];const r=o?n-o.length:n;return e.getPositionAt(r)}_setGeometry(){const e=this._position?this._position:this._getTokenPosition();if(!e){return}const t=this._editor;const n=t.getCoordinateForPosition(e);if(!n){return}const i=window.getComputedStyle(this.node);const s=parseInt(i.paddingLeft,10)||0;const r=t.host.closest(".jp-MainAreaWidget > .lm-Widget")||t.host;o.HoverBox.setGeometry({anchor:n,host:r,maxHeight:u,minHeight:h,node:this.node,offset:{horizontal:-1*s},privilege:"below",outOfViewDisplay:{top:"stick-inside",bottom:"stick-inside"},style:i})}}},30963:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>_});var i=n(94307);var s=n.n(i);var o=n(14366);var r=n.n(o);var a=n(23899);var l=n.n(a);var d=n(84739);var c=n.n(d);var h=n(30619);var u=n.n(h);const p="@jupyterlab/translation-extension:plugin";const m={id:"@jupyterlab/translation-extension:translator-connector",description:"Provides the application translation connector.",autoStart:true,requires:[i.JupyterFrontEnd.IPaths],provides:h.ITranslatorConnector,activate:(e,t)=>{const n=t.urls.translations;const i=e.serviceManager.serverSettings;return new h.TranslatorConnector(n,i)}};const g={id:"@jupyterlab/translation-extension:translator",description:"Provides the application translation object.",autoStart:true,requires:[i.JupyterFrontEnd.IPaths,d.ISettingRegistry],optional:[i.ILabShell,h.ITranslatorConnector],provides:h.ITranslator,activate:async(e,t,n,i,s)=>{const r=await n.load(p);const a=r.get("locale").composite;let l=r.get("stringsPrefix").composite;const d=r.get("displayStringsPrefix").composite;l=d?l:"";const c=e.serviceManager.serverSettings;const u=new h.TranslationManager(t.urls.translations,l,c,s!==null&&s!==void 0?s:undefined);await u.fetch(a);document.documentElement.lang=u.languageCode;if(i){i.translator=u}o.Dialog.translator=u;return u}};const f={id:p,description:"Adds translation commands and settings.",requires:[d.ISettingRegistry,h.ITranslator,h.ITranslatorConnector],optional:[a.IMainMenu,o.ICommandPalette],autoStart:true,activate:(e,t,n,i,s,r)=>{var a;const l=n.load("jupyterlab");const{commands:d}=e;const c=s?(a=s.settingsMenu.items.find((e=>{var t;return e.type==="submenu"&&((t=e.submenu)===null||t===void 0?void 0:t.id)==="jp-mainmenu-settings-language"})))===null||a===void 0?void 0:a.submenu:null;i.fetch().then((e=>{const i=n.languageCode.replace("-","_");for(const n in e.data){const s=e.data[n];const a=s.displayName;const h=s.nativeName;const u=i===n;const m=u?`${a}`:`${a} - ${h}`;const g=`jupyterlab-translation:${n}`;d.addCommand(g,{label:m,caption:l.__("Change interface language to %1",m),isEnabled:()=>!u,isToggled:()=>u,execute:async()=>{const e=await(0,o.showDialog)({title:l.__("Change interface language?"),body:l.__("After changing the interface language to %1, you will need to reload JupyterLab to see the changes.",m),buttons:[o.Dialog.cancelButton(),o.Dialog.okButton({label:l.__("Change and reload")})]});if(e.button.accept){try{await t.set(p,"locale",n);window.location.reload()}catch(i){console.error(`Failed to update language locale to ${n}`,i)}}}});if(c){c.addItem({command:g,args:{}})}if(r){r.addItem({category:l.__("Display Languages"),command:g})}}})).catch((e=>{console.error(`Available locales errored!\n${e}`)}))}};const v=[m,g,f];const _=v},50277:(e,t,n)=>{"use strict";var i=n(97913);var s=n(3579);var o=n(67996)},6401:(e,t,n)=>{"use strict";n.r(t);n.d(t,{DEFAULT_LANGUAGE_CODE:()=>d,Gettext:()=>m,ITranslator:()=>u,ITranslatorConnector:()=>c,NullTranslator:()=>g,TranslationManager:()=>_,TranslatorConnector:()=>h,nullTranslator:()=>v,requestTranslationsAPI:()=>l});var i=n(94931);var s=n(5592);var o=n(30397);var r=n(28548);const a="api/translations";async function l(e="",t="",n={},i=undefined){const s=i!==null&&i!==void 0?i:r.ServerConnection.makeSettings();e=e||`${s.appUrl}/${a}`;const l=o.URLExt.join(s.baseUrl,e);const d=o.URLExt.join(l,t);if(!d.startsWith(l)){throw new Error("Can only be used for translations requests")}let c;try{c=await r.ServerConnection.makeRequest(d,n,s)}catch(u){throw new r.ServerConnection.NetworkError(u)}let h=await c.text();if(h.length>0){try{h=JSON.parse(h)}catch(u){console.error("Not a JSON response body.",c)}}if(!c.ok){throw new r.ServerConnection.ResponseError(c,h.message||h)}return h}const d="en";const c=new s.Token("@jupyterlab/translation:ITranslatorConnector","A service to connect to the server translation endpoint.");class h extends i.DataConnector{constructor(e="",t){super();this._translationsUrl=e;this._serverSettings=t}async fetch(e){var t;return l(this._translationsUrl,(t=e===null||e===void 0?void 0:e.language)!==null&&t!==void 0?t:"",{},this._serverSettings)}}const u=new s.Token("@jupyterlab/translation:ITranslator","A service to translate strings.");function p(e){return e.replace("-","_")}class m{constructor(e){e=e||{};this._defaults={domain:"messages",locale:document.documentElement.getAttribute("lang")||d,pluralFunc:function(e){return{nplurals:2,plural:e!=1?1:0}},contextDelimiter:String.fromCharCode(4),stringsPrefix:""};this._locale=(e.locale||this._defaults.locale).replace("_","-");this._domain=p(e.domain||this._defaults.domain);this._contextDelimiter=e.contextDelimiter||this._defaults.contextDelimiter;this._stringsPrefix=e.stringsPrefix||this._defaults.stringsPrefix;this._pluralFuncs={};this._dictionary={};this._pluralForms={};if(e.messages){this._dictionary[this._domain]={};this._dictionary[this._domain][this._locale]=e.messages}if(e.pluralForms){this._pluralForms[this._locale]=e.pluralForms}}setContextDelimiter(e){this._contextDelimiter=e}getContextDelimiter(){return this._contextDelimiter}setLocale(e){this._locale=e.replace("_","-")}getLocale(){return this._locale}setDomain(e){this._domain=p(e)}getDomain(){return this._domain}setStringsPrefix(e){this._stringsPrefix=e}getStringsPrefix(){return this._stringsPrefix}static strfmt(e,...t){return e.replace(/%%/g,"%% ").replace(/%(\d+)/g,(function(e,n){return t[n-1]})).replace(/%% /g,"%")}loadJSON(e,t){if(!e[""]||!e[""]["language"]||!e[""]["pluralForms"]){throw new Error(`Wrong jsonData, it must have an empty key ("") with "language" and "pluralForms" information: ${e}`)}t=p(t);let n=e[""];let i=JSON.parse(JSON.stringify(e));delete i[""];this.setMessages(t||this._defaults.domain,n["language"],i,n["pluralForms"])}__(e,...t){return this.gettext(e,...t)}_n(e,t,n,...i){return this.ngettext(e,t,n,...i)}_p(e,t,...n){return this.pgettext(e,t,...n)}_np(e,t,n,i,...s){return this.npgettext(e,t,n,i,...s)}gettext(e,...t){return this.dcnpgettext("","",e,"",0,...t)}ngettext(e,t,n,...i){return this.dcnpgettext("","",e,t,n,...i)}pgettext(e,t,...n){return this.dcnpgettext("",e,t,"",0,...n)}npgettext(e,t,n,i,...s){return this.dcnpgettext("",e,t,n,i,...s)}dcnpgettext(e,t,n,i,s,...o){e=p(e)||this._domain;let r;let a=t?t+this._contextDelimiter+n:n;let l={pluralForm:false};let d=false;let c=this._locale;let h=this.expandLocale(this._locale);for(let p in h){c=h[p];d=this._dictionary[e]&&this._dictionary[e][c]&&this._dictionary[e][c][a];if(i){d=d&&this._dictionary[e][c][a].length>1}else{d=d&&this._dictionary[e][c][a].length==1}if(d){l.locale=c;break}}if(!d){r=[n];l.pluralFunc=this._defaults.pluralFunc}else{r=this._dictionary[e][c][a]}if(!i){return this.t(r,s,l,...o)}l.pluralForm=true;let u=d?r:[n,i];return this.t(u,s,l,...o)}expandLocale(e){let t=[e];let n=e.lastIndexOf("-");while(n>0){e=e.slice(0,n);t.push(e);n=e.lastIndexOf("-")}return t}getPluralFunc(e){let t=new RegExp("^\\s*nplurals\\s*=\\s*[0-9]+\\s*;\\s*plural\\s*=\\s*(?:\\s|[-\\?\\|&=!<>+*/%:;n0-9_()])+");if(!t.test(e))throw new Error(m.strfmt('The plural form "%1" is not valid',e));return new Function("n","let plural, nplurals; "+e+" return { nplurals: nplurals, plural: (plural === true ? 1 : (plural ? plural : 0)) };")}removeContext(e){if(e.indexOf(this._contextDelimiter)!==-1){let t=e.split(this._contextDelimiter);return t[1]}return e}t(e,t,n,...i){if(!n.pluralForm)return this._stringsPrefix+m.strfmt(this.removeContext(e[0]),...i);let s;if(n.pluralFunc){s=n.pluralFunc(t)}else if(!this._pluralFuncs[n.locale||""]){this._pluralFuncs[n.locale||""]=this.getPluralFunc(this._pluralForms[n.locale||""]);s=this._pluralFuncs[n.locale||""](t)}else{s=this._pluralFuncs[n.locale||""](t)}if("undefined"===typeof!s.plural||s.plural>s.nplurals||e.length<=s.plural)s.plural=0;return this._stringsPrefix+m.strfmt(this.removeContext(e[s.plural]),...[t].concat(i))}setMessages(e,t,n,i){e=p(e);if(i)this._pluralForms[t]=i;if(!this._dictionary[e])this._dictionary[e]={};this._dictionary[e][t]=n}}class g{constructor(e){this.languageCode=d;this._languageBundle=e}load(e){return this._languageBundle}}class f{__(e,...t){return this.gettext(e,...t)}_n(e,t,n,...i){return this.ngettext(e,t,n,...i)}_p(e,t,...n){return this.pgettext(e,t,...n)}_np(e,t,n,i,...s){return this.npgettext(e,t,n,i,...s)}gettext(e,...t){return m.strfmt(e,...t)}ngettext(e,t,n,...i){return m.strfmt(n==1?e:t,...[n].concat(i))}pgettext(e,t,...n){return m.strfmt(t,...n)}npgettext(e,t,n,i,...s){return this.ngettext(t,n,i,...s)}dcnpgettext(e,t,n,i,s,...o){return this.ngettext(n,i,s,...o)}}const v=new g(new f);class _{constructor(e="",t,n,i){this._domainData={};this._translationBundles={};this._connector=i!==null&&i!==void 0?i:new h(e,n);this._stringsPrefix=t||"";this._englishBundle=new m({stringsPrefix:this._stringsPrefix});this._currentLocale=d}get languageCode(){return this._currentLocale}async fetch(e){var t,n,i,s;this._languageData=await this._connector.fetch({language:e});let o;if(this._languageData&&e==="default"){try{for(const e of Object.values((t=this._languageData.data)!==null&&t!==void 0?t:{})){o=e[""]["language"];break}}catch(a){}}this._currentLocale=(e!=="default"?e:o!==null&&o!==void 0?o:d).replace("_","-");this._domainData=(i=(n=this._languageData)===null||n===void 0?void 0:n.data)!==null&&i!==void 0?i:{};const r=(s=this._languageData)===null||s===void 0?void 0:s.message;if(r&&this._currentLocale!==d){console.warn(r)}}load(e){if(this._domainData){if(this._currentLocale==d){return this._englishBundle}else{e=p(e);if(!(e in this._translationBundles)){let t=new m({domain:e,locale:this._currentLocale,stringsPrefix:this._stringsPrefix});if(e in this._domainData){const n=this._domainData[e][""];const i={...this._domainData[e],"":{...n,pluralForms:n.plural_forms}};t.loadJSON(i,e)}this._translationBundles[e]=t}return this._translationBundles[e]}}else{return this._englishBundle}}}},85205:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>a});var i=n(26331);var s=n.n(i);const o={id:"@jupyterlab/ui-components-extension:labicon-manager",description:"Provides the icon manager.",provides:i.ILabIconManager,autoStart:true,activate:e=>Object.create(null)};const r={id:"@jupyterlab/ui-components-extension:form-renderer-registry",description:"Provides the settings form renderer registry.",provides:i.IFormRendererRegistry,autoStart:true,activate:e=>{const t=new i.FormRendererRegistry;return t}};const a=[o,r]},77767:(e,t,n)=>{"use strict";var i=n(40662);var s=n(3579)},75634:(e,t,n)=>{"use strict";n.r(t);n.d(t,{AddButton:()=>as,Button:()=>u,Collapser:()=>es,CommandPaletteSvg:()=>wo,CommandToolbarButton:()=>Ks,CommandToolbarButtonComponent:()=>qs,ContextMenuSvg:()=>xo,DEFAULT_STYLE_CLASS:()=>ms,DEFAULT_UI_OPTIONS:()=>ss,DockPanelSvg:()=>jo,DropButton:()=>rs,FilenameSearcher:()=>no,FilterBox:()=>eo,FormComponent:()=>ps,FormRendererRegistry:()=>Po,HTMLSelect:()=>fs,HTML_SELECT_CLASS:()=>gs,HoverBox:()=>Mo,IFormRendererRegistry:()=>Do,IFrame:()=>vs,ILabIconManager:()=>Ao,IRankedMenu:()=>Cs,InputGroup:()=>bs,LabIcon:()=>C,MenuSvg:()=>So,MoveButton:()=>os,PanelWithToolbar:()=>Xs,RankedMenu:()=>xs,ReactWidget:()=>Ds,ReactiveToolbar:()=>Hs,SidePanel:()=>oo,Spinner:()=>ro,Styling:()=>ao,Switch:()=>co,TABLE_CLASS:()=>ho,TabBarSvg:()=>ko,TabPanelSvg:()=>Io,Table:()=>uo,Toolbar:()=>zs,ToolbarButton:()=>Us,ToolbarButtonComponent:()=>Ws,UseSignal:()=>Ps,VDomModel:()=>Ls,VDomRenderer:()=>As,WindowedLayout:()=>_o,WindowedList:()=>vo,WindowedListModel:()=>fo,addAboveIcon:()=>Nt,addBelowIcon:()=>Ot,addCommandToolbarButtonClass:()=>$s,addIcon:()=>Bt,addToolbarButtonClass:()=>Vs,badIcon:()=>S,bellIcon:()=>Ft,blankIcon:()=>k,bugDotIcon:()=>zt,bugIcon:()=>Ht,buildIcon:()=>Wt,caretDownEmptyIcon:()=>Vt,caretDownEmptyThinIcon:()=>Ut,caretDownIcon:()=>qt,caretLeftIcon:()=>$t,caretRightIcon:()=>Kt,caretUpEmptyThinIcon:()=>Jt,caretUpIcon:()=>Gt,caseSensitiveIcon:()=>Yt,checkIcon:()=>Xt,circleEmptyIcon:()=>Qt,circleIcon:()=>Zt,classes:()=>a,classesDedupe:()=>l,cleaningIcon:()=>en,clearIcon:()=>tn,closeAllIcon:()=>nn,closeIcon:()=>sn,codeCheckIcon:()=>on,codeIcon:()=>rn,collapseAllIcon:()=>an,collapseIcon:()=>ln,consoleIcon:()=>dn,copyIcon:()=>cn,copyrightIcon:()=>hn,cutIcon:()=>un,deleteIcon:()=>pn,dockBottomIcon:()=>mn,dockLeftIcon:()=>gn,dockRightIcon:()=>fn,dockTopIcon:()=>vn,dotsIcon:()=>_n,downloadIcon:()=>bn,duplicateIcon:()=>yn,editIcon:()=>wn,ellipsesIcon:()=>Cn,errorIcon:()=>xn,exceptionsIcon:()=>Sn,expandAllIcon:()=>kn,expandIcon:()=>jn,extensionIcon:()=>In,fastForwardIcon:()=>En,fileIcon:()=>Tn,fileUploadIcon:()=>Mn,filterDotIcon:()=>Dn,filterIcon:()=>An,filterListIcon:()=>Pn,folderFavoriteIcon:()=>Ln,folderIcon:()=>Rn,fuzzySearch:()=>Qs,getReactAttrs:()=>d,getTreeItemElement:()=>h,historyIcon:()=>Nn,homeIcon:()=>On,html5Icon:()=>Bn,imageIcon:()=>Fn,infoIcon:()=>zn,inspectorIcon:()=>Hn,jsonIcon:()=>Wn,juliaIcon:()=>Vn,jupyterFaviconIcon:()=>Un,jupyterIcon:()=>qn,jupyterlabWordmarkIcon:()=>$n,kernelIcon:()=>Kn,keyboardIcon:()=>Jn,launchIcon:()=>Gn,launcherIcon:()=>Yn,lineFormIcon:()=>Xn,linkIcon:()=>Qn,listIcon:()=>Zn,lockIcon:()=>ei,markdownIcon:()=>ti,mermaidIcon:()=>ni,moveDownIcon:()=>ii,moveUpIcon:()=>si,newFolderIcon:()=>oi,notTrustedIcon:()=>ri,notebookIcon:()=>ai,numberingIcon:()=>li,offlineBoltIcon:()=>di,openKernelSourceIcon:()=>ci,paletteIcon:()=>hi,pasteIcon:()=>ui,pauseIcon:()=>pi,pdfIcon:()=>mi,pythonIcon:()=>gi,rKernelIcon:()=>fi,reactIcon:()=>vi,redoIcon:()=>_i,refreshIcon:()=>bi,regexIcon:()=>yi,runIcon:()=>wi,runningIcon:()=>Ci,saveIcon:()=>xi,searchIcon:()=>Si,settingsIcon:()=>ki,shareIcon:()=>ji,spreadsheetIcon:()=>Ii,stepIntoIcon:()=>Ei,stepOutIcon:()=>Ti,stepOverIcon:()=>Mi,stopIcon:()=>Di,tabIcon:()=>Ai,tableRowsIcon:()=>Pi,tagIcon:()=>Li,terminalIcon:()=>Ri,textEditorIcon:()=>Ni,tocIcon:()=>Oi,treeViewIcon:()=>Bi,trustedIcon:()=>Fi,undoIcon:()=>zi,updateFilterFunction:()=>Zs,userIcon:()=>Hi,usersIcon:()=>Wi,variableIcon:()=>Vi,vegaIcon:()=>Ui,viewBreakpointIcon:()=>qi,wordIcon:()=>$i,yamlIcon:()=>Ki});var i=n(44914);var s=n.n(i);var o=n(30397);function r(e){return e.map((e=>e&&typeof e==="object"?Object.keys(e).map((t=>!!e[t]&&t)):typeof e==="string"?e.split(/\s+/):[])).reduce(((e,t)=>e.concat(t)),[]).filter((e=>!!e))}function a(...e){return r(e).join(" ")}function l(...e){return[...new Set(r(e))].join(" ")}function d(e,{ignore:t=[]}={}){return e.getAttributeNames().reduce(((n,i)=>{if(i==="style"||t.includes(i)){void 0}else if(i.startsWith("data")||i.startsWith("aria")){n[i]=e.getAttribute(i)}else{n[o.Text.camelCase(i)]=e.getAttribute(i)}return n}),{})}function c(e){return e instanceof HTMLElement&&e.getAttribute("role")==="treeitem"}function h(e){let t=e;while(t&&!c(t)){t=t.parentElement}return c(t)?t:null}function u(e){const{minimal:t,small:n,children:i,...o}=e;return s().createElement("button",{...o,className:a(e.className,t?"jp-mod-minimal":"",n?"jp-mod-small":"","jp-Button")},i)}var p=n(2336);var m=n(1143);var g=n(5592);var f=n(5338);const v='\n \n\n';const _='\n \n\n';const b='\n \n\n';var y=n(21326);var w;(function(e){const t={breadCrumb:{container:{$nest:{"&:first-child svg":{bottom:"1px",marginLeft:"0px",position:"relative"},"&:hover":{backgroundColor:"var(--jp-layout-color2)"},[".jp-mod-dropTarget&"]:{backgroundColor:"var(--jp-brand-color2)",opacity:.7}}},element:{borderRadius:"var(--jp-border-radius)",cursor:"pointer",margin:"0px 2px",padding:"0px 2px",height:"16px",width:"16px",verticalAlign:"middle"}},commandPaletteHeader:{container:{height:"14px",margin:"0 14px 0 auto"},element:{height:"14px",width:"14px"},options:{elementPosition:"center"}},commandPaletteItem:{element:{height:"16px",width:"16px"},options:{elementPosition:"center"}},launcherCard:{container:{height:"52px",width:"52px"},element:{height:"52px",width:"52px"},options:{elementPosition:"center"}},launcherSection:{container:{boxSizing:"border-box",marginRight:"12px",height:"32px",width:"32px"},element:{height:"32px",width:"32px"},options:{elementPosition:"center"}},listing:{container:{flex:"0 0 20px",marginRight:"4px",position:"relative"},element:{height:"16px",width:"16px"},options:{elementPosition:"center"}},listingHeaderItem:{container:{display:"inline",height:"16px",width:"16px"},element:{height:"auto",margin:"-2px 0 0 0",width:"20px"},options:{elementPosition:"center"}},mainAreaTab:{container:{$nest:{".lm-DockPanel-tabBar &":{marginRight:"4px"}}},element:{$nest:{".lm-DockPanel-tabBar &":{height:"14px",width:"14px"}}},options:{elementPosition:"center"}},menuItem:{container:{display:"inline-block",verticalAlign:"middle"},element:{height:"16px",width:"16px"},options:{elementPosition:"center"}},runningItem:{container:{margin:"0px 4px 0px 4px"},element:{height:"16px",width:"16px"},options:{elementPosition:"center"}},select:{container:{pointerEvents:"none"},element:{position:"absolute",height:"auto",width:"16px"}},settingsEditor:{container:{display:"flex",flex:"0 0 20px",margin:"0 3px 0 0",position:"relative",height:"20px",width:"20px"},element:{height:"16px",width:"16px"},options:{elementPosition:"center"}},sideBar:{element:{height:"auto",width:"20px"},options:{elementPosition:"center"}},splash:{container:{animation:"0.3s fade-in linear forwards",height:"100%",width:"100%",zIndex:1},element:{width:"100px"},options:{elementPosition:"center"}},statusBar:{element:{left:"0px",top:"0px",height:"18px",width:"20px",position:"relative"}},toolbarButton:{container:{display:"inline-block",verticalAlign:"middle"},element:{height:"16px",width:"16px"},options:{elementPosition:"center"}}};function n(e){return{container:{alignItems:"center",display:"flex"},element:{display:"block",...e}}}const i={center:n({margin:"0 auto",width:"100%"}),top:n({margin:"0 0 auto 0"}),right:n({margin:"0 0 0 auto"}),bottom:n({margin:"auto 0 0 0"}),left:n({margin:"0 auto 0 0"}),"top right":n({margin:"0 0 auto auto"}),"bottom right":n({margin:"auto 0 0 auto"}),"bottom left":n({margin:"auto auto 0 0"}),"top left":n({margin:"0 auto 0 auto"})};function s(e){return{element:{height:e,width:e}}}const o={small:s("14px"),normal:s("16px"),large:s("20px"),xlarge:s("24px")};function r(e){return{container:Object.assign({},...e.map((e=>e.container))),element:Object.assign({},...e.map((e=>e.element)))}}function a(e){if(!e){return[]}if(!Array.isArray(e)){e=[e]}return e.map((e=>typeof e==="string"?t[e]:e))}function l(e){const t=Object.assign({},...e.map((e=>e.options)));if(t.elementPosition){e.unshift(i[t.elementPosition])}if(t.elementSize){e.unshift(o[t.elementSize])}return r(e)}function d(e){var t;return(0,y.iF)({...e.container,$nest:{...(t=e.container)===null||t===void 0?void 0:t.$nest,["svg"]:e.element}})}const c=new Map;function h(e){if(!e||Object.keys(e).length===0){return""}let{elementPosition:t,elementSize:n,stylesheet:i,...s}=e;const o={...t&&{elementPosition:t},...n&&{elementSize:n}};const r=typeof i==="string"&&Object.keys(s).length===0;const h=r?[i,t,n].join(","):"";if(r&&c.has(h)){return c.get(h)}const u=a(i);u.push({element:s,options:o});const p=d(l(u));if(r){c.set(h,p)}return p}e.styleClass=h})(w||(w={}));class C{static remove(e){while(e.firstChild){e.firstChild.remove()}e.className="";return e}static resolve({icon:e}){if(e instanceof C){return e}if(typeof e==="string"){const t=C._instances.get(e);if(t){return t}if(C._debug){console.warn(`Lookup failed for icon, creating loading icon. icon: ${e}`)}return new C({name:e,svgstr:b,_loading:true})}return new C(e)}static resolveElement({icon:e,iconClass:t,fallback:n,...i}){if(!x.isResolvable(e)){if(!t&&n){return n.element(i)}i.className=a(t,i.className);return x.blankElement(i)}return C.resolve({icon:e}).element(i)}static resolveReact({icon:e,iconClass:t,fallback:n,...i}){if(!x.isResolvable(e)){if(!t&&n){return s().createElement(n.react,{...i})}i.className=a(t,i.className);return s().createElement(x.blankReact,{...i})}const o=C.resolve({icon:e});return s().createElement(o.react,{...i})}static resolveSvg({name:e,svgstr:t}){const n=(new DOMParser).parseFromString(x.svgstrShim(t),"image/svg+xml");const i=n.querySelector("parsererror");if(i){const n=`SVG HTML was malformed for LabIcon instance.\nname: ${e}, svgstr: ${t}`;if(C._debug){console.error(n);return i}else{console.warn(n);return null}}else{return n.documentElement}}static toggleDebug(e){C._debug=e!==null&&e!==void 0?e:!C._debug}constructor({name:e,svgstr:t,render:n,unrender:i,_loading:s=false}){this._props={};this._svgReplaced=new p.Signal(this);this._svgElement=undefined;this._svgInnerHTML=undefined;this._svgReactAttrs=undefined;if(!(e&&t)){console.error(`When defining a new LabIcon, name and svgstr must both be non-empty strings. name: ${e}, svgstr: ${t}`);return S}this._loading=s;if(C._instances.has(e)){const n=C._instances.get(e);if(this._loading){n.svgstr=t;this._loading=false;return n}else{if(C._debug){console.warn(`Redefining previously loaded icon svgstr. name: ${e}, svgstrOld: ${n.svgstr}, svgstr: ${t}`)}n.svgstr=t;return n}}this.name=e;this.react=this._initReact(e);this.svgstr=t;this._initRender({render:n,unrender:i});C._instances.set(this.name,this)}bindprops(e){const t=Object.create(this);t._props=e;t.react=t._initReact(t.name+"_bind");return t}element(e={}){var t;let{className:n,container:i,label:s,title:o,tag:r="div",...a}={...this._props,...e};const l=i===null||i===void 0?void 0:i.firstChild;if(((t=l===null||l===void 0?void 0:l.dataset)===null||t===void 0?void 0:t.iconId)===this._uuid){return l}if(!this.svgElement){return document.createElement("div")}if(i){while(i.firstChild){i.firstChild.remove()}}else if(r){i=document.createElement(r)}const d=this.svgElement.cloneNode(true);if(!i){if(s){console.warn()}return d}if(s!=null){i.textContent=s}x.initContainer({container:i,className:n,styleProps:a,title:o});i.appendChild(d);return i}render(e,t){var n;let i=(n=t===null||t===void 0?void 0:t.children)===null||n===void 0?void 0:n[0];if(typeof i!=="string"){i=undefined}this.element({container:e,label:i,...t===null||t===void 0?void 0:t.props})}get svgElement(){if(this._svgElement===undefined){this._svgElement=this._initSvg({uuid:this._uuid})}return this._svgElement}get svgInnerHTML(){if(this._svgInnerHTML===undefined){if(this.svgElement===null){this._svgInnerHTML=null}else{this._svgInnerHTML=this.svgElement.innerHTML}}return this._svgInnerHTML}get svgReactAttrs(){if(this._svgReactAttrs===undefined){if(this.svgElement===null){this._svgReactAttrs=null}else{this._svgReactAttrs=d(this.svgElement,{ignore:["data-icon-id"]})}}return this._svgReactAttrs}get svgstr(){return this._svgstr}set svgstr(e){this._svgstr=e;const t=g.UUID.uuid4();const n=this._uuid;this._uuid=t;this._svgElement=undefined;this._svgInnerHTML=undefined;this._svgReactAttrs=undefined;document.querySelectorAll(`[data-icon-id="${n}"]`).forEach((e=>{if(this.svgElement){e.replaceWith(this.svgElement.cloneNode(true))}}));this._svgReplaced.emit()}_initReact(e){const t=s().forwardRef(((e={},t)=>{const{className:n,container:i,label:o,title:r,slot:l,tag:d="div",...c}={...this._props,...e};const[,h]=s().useState(this._uuid);s().useEffect((()=>{const e=()=>{h(this._uuid)};this._svgReplaced.connect(e);return()=>{this._svgReplaced.disconnect(e)}}));const u=d!==null&&d!==void 0?d:s().Fragment;if(!(this.svgInnerHTML&&this.svgReactAttrs)){return s().createElement(s().Fragment,null)}const p={...this.svgReactAttrs};if(!d){Object.assign(p,{className:n||c?a(n,w.styleClass(c)):undefined,title:r,slot:l})}const m=s().createElement("svg",{...p,...this.svgReactAttrs,dangerouslySetInnerHTML:{__html:this.svgInnerHTML},ref:t});if(i){x.initContainer({container:i,className:n,styleProps:c,title:r});return s().createElement(s().Fragment,null,m,o)}else{let e={};if(u!==s().Fragment){e={className:n||c?a(n,w.styleClass(c)):undefined,title:r,slot:l}}return s().createElement(u,{...e},m,o)}}));t.displayName=`LabIcon_${e}`;return t}_initRender({render:e,unrender:t}){if(e){this.render=e;if(t){this.unrender=t}}else if(t){console.warn("In _initRender, ignoring unrender arg since render is undefined")}}_initSvg({title:e,uuid:t}={}){const n=C.resolveSvg(this);if(!n){return n}if(n.tagName!=="parsererror"){n.dataset.icon=this.name;if(t){n.dataset.iconId=t}if(e){x.setTitleSvg(n,e)}else{n.setAttribute("aria-hidden","true")}}return n}}C._debug=false;C._instances=new Map;var x;(function(e){function t({className:t="",container:n,label:i,title:s,tag:o="div",slot:r,...a}){if((n===null||n===void 0?void 0:n.className)===t){return n}if(n){while(n.firstChild){n.firstChild.remove()}}else{n=document.createElement(o!==null&&o!==void 0?o:"div")}if(i!=null){n.textContent=i}e.initContainer({container:n,className:t,styleProps:a,title:s});return n}e.blankElement=t;e.blankReact=s().forwardRef((({className:e="",container:t,label:i,title:o,tag:r="div",...l},d)=>{const c=r!==null&&r!==void 0?r:"div";if(t){n({container:t,className:e,styleProps:l,title:o});return s().createElement(s().Fragment,null)}else{return s().createElement(c,{className:a(e,w.styleClass(l))},d&&k.react({ref:d}),i)}}));e.blankReact.displayName="BlankReact";function n({container:e,className:t,styleProps:n,title:i}){if(i!=null){e.title=i}const s=w.styleClass(n);if(t!=null){const n=a(t,s);e.className=n;return n}else if(s){e.classList.add(s);return s}else{return""}}e.initContainer=n;function i(e){return!!(e&&(typeof e==="string"||e.name&&e.svgstr))}e.isResolvable=i;function o(e,t){const n=e.getElementsByTagName("title");if(n.length){n[0].textContent=t}else{const n=document.createElement("title");n.textContent=t;e.appendChild(n)}}e.setTitleSvg=o;function r(e,t=true){const[,n,i]=decodeURIComponent(e).replace(/>\s*\n\s*<").replace(/\s*\n\s*/g," ").match(t?/^(?:data:.*?(;base64)?,)?(.*)/:/(?:(base64).*)?({var t;const n=((t=e.translator)!==null&&t!==void 0?t:ts.nullTranslator).load("jupyterlab");let i;const o=()=>{if(e.direction==="up"){return!e.item.hasMoveUp}else{return!e.item.hasMoveDown}};if(e.buttonStyle==="icons"){const t={tag:"span",elementSize:"xlarge",elementPosition:"center"};i=e.direction==="up"?s().createElement(Gt.react,{...t}):s().createElement(qt.react,{...t})}else{i=e.direction==="up"?n.__("Move up"):n.__("Move down")}const r=e.direction==="up"?e.item.index-1:e.item.index+1;return s().createElement("button",{className:"jp-mod-styled jp-mod-reject jp-ArrayOperationsButton",onClick:e.item.onReorderClick(e.item.index,r),disabled:o()},i)};const rs=e=>{var t;const n=((t=e.translator)!==null&&t!==void 0?t:ts.nullTranslator).load("jupyterlab");let i;if(e.buttonStyle==="icons"){i=s().createElement(sn.react,{tag:"span",elementSize:"xlarge",elementPosition:"center"})}else{i=n.__("Remove")}return s().createElement("button",{className:"jp-mod-styled jp-mod-warn jp-ArrayOperationsButton",onClick:e.item.onDropIndexClick(e.item.index)},i)};const as=e=>{var t;const n=((t=e.translator)!==null&&t!==void 0?t:ts.nullTranslator).load("jupyterlab");let i;if(e.buttonStyle==="icons"){i=s().createElement(Bt.react,{tag:"span",elementSize:"xlarge",elementPosition:"center"})}else{i=n.__("Add")}return s().createElement("button",{className:"jp-mod-styled jp-mod-reject jp-ArrayOperationsButton",onClick:e.onAddClick},i)};function ls(e){const{component:t,name:n,buttonStyle:i,compact:s,showModifiedFromDefault:o,translator:r}=e;const a=s!==null&&s!==void 0?s:false;const l=i!==null&&i!==void 0?i:a?"icons":"text";const d=e=>t({...e,buttonStyle:l,compact:a,showModifiedFromDefault:o!==null&&o!==void 0?o:true,translator:r!==null&&r!==void 0?r:ts.nullTranslator});if(n){d.displayName=n}return d}function ds(e,t){const n=(0,is.getTemplate)("TitleFieldTemplate",e,t);const i=(0,is.getTemplate)("DescriptionFieldTemplate",e,t);return{TitleField:n,DescriptionField:i}}const cs=e=>ls({...e,name:"JupyterLabArrayTemplate",component:e=>{var t;const{schema:n,registry:i,uiSchema:o,required:r}=e;const a={schema:n,registry:i,uiSchema:o,required:r};const{TitleField:l,DescriptionField:d}=ds(i,o);return s().createElement("div",{className:e.className},e.compact?s().createElement("div",{className:"jp-FormGroup-compactTitle"},s().createElement("div",{className:"jp-FormGroup-fieldLabel jp-FormGroup-contentItem",id:`${e.idSchema.$id}__title`},e.title||""),s().createElement("div",{className:"jp-FormGroup-description",id:`${e.idSchema.$id}-description`},e.schema.description||"")):s().createElement(s().Fragment,null,e.title&&s().createElement(l,{...a,title:e.title,id:`${e.idSchema.$id}-title`}),s().createElement(d,{...a,id:`${e.idSchema.$id}-description`,description:(t=e.schema.description)!==null&&t!==void 0?t:""})),e.items.map((t=>s().createElement("div",{key:t.key,className:t.className},t.children,s().createElement("div",{className:"jp-ArrayOperations"},s().createElement(os,{buttonStyle:e.buttonStyle,translator:e.translator,item:t,direction:"up"}),s().createElement(os,{buttonStyle:e.buttonStyle,translator:e.translator,item:t,direction:"down"}),s().createElement(rs,{buttonStyle:e.buttonStyle,translator:e.translator,item:t}))))),e.canAdd&&s().createElement(as,{onAddClick:e.onAddClick,buttonStyle:e.buttonStyle,translator:e.translator}))}});const hs=e=>ls({...e,name:"JupyterLabObjectTemplate",component:e=>{var t;const{schema:n,registry:i,uiSchema:o,required:r}=e;const a={schema:n,registry:i,uiSchema:o,required:r};const{TitleField:l,DescriptionField:d}=ds(i,o);return s().createElement("fieldset",{id:e.idSchema.$id},e.compact?s().createElement("div",{className:"jp-FormGroup-compactTitle"},s().createElement("div",{className:"jp-FormGroup-fieldLabel jp-FormGroup-contentItem",id:`${e.idSchema.$id}__title`},e.title||""),s().createElement("div",{className:"jp-FormGroup-description",id:`${e.idSchema.$id}__description`},e.schema.description||"")):s().createElement(s().Fragment,null,(e.title||(e.uiSchema||g.JSONExt.emptyObject)["ui:title"])&&s().createElement(l,{...a,id:`${e.idSchema.$id}__title`,title:e.title||`${(e.uiSchema||g.JSONExt.emptyObject)["ui:title"]}`||""}),s().createElement(d,{...a,id:`${e.idSchema.$id}__description`,description:(t=e.schema.description)!==null&&t!==void 0?t:""})),e.properties.map((e=>e.content)),(0,is.canExpand)(e.schema,e.uiSchema,e.formData)&&s().createElement(as,{onAddClick:e.onAddClick(e.schema),buttonStyle:e.buttonStyle,translator:e.translator}))}});const us=e=>ls({...e,name:"JupyterLabFieldTemplate",component:e=>{var t;const n=((t=e.translator)!==null&&t!==void 0?t:ts.nullTranslator).load("jupyterlab");let i=false;let o;const{formData:r,schema:a,label:l,displayLabel:d,id:c,formContext:h,errors:u,rawErrors:p,children:m,onKeyChange:f,onDropPropertyClick:v}=e;const{defaultFormData:_}=h;const b=c.split("_");b.shift();const y=b.join(".");const w=y==="";const C=y===(e.uiSchema||g.JSONExt.emptyObject)["ui:field"];if(e.showModifiedFromDefault){o=b.reduce(((e,t)=>e===null||e===void 0?void 0:e[t]),_);i=!w&&r!==undefined&&o!==undefined&&!a.properties&&a.type!=="array"&&!g.JSONExt.deepEqual(r,o)}const x=!w&&a.type!="object"&&c!="jp-SettingsEditor-@jupyterlab/shortcuts-extension:shortcuts_shortcuts";const S=a.hasOwnProperty(is.ADDITIONAL_PROPERTY_FLAG);const k=!(a.type==="object"||a.type==="array");return s().createElement("div",{className:`form-group ${d||a.type==="boolean"?"small-field":""}`},!C&&((p===null||p===void 0?void 0:p.length)?s().createElement("div",{className:"jp-modifiedIndicator jp-errorIndicator"}):i&&s().createElement("div",{className:"jp-modifiedIndicator"})),s().createElement("div",{className:`jp-FormGroup-content ${e.compact?"jp-FormGroup-contentCompact":"jp-FormGroup-contentNormal"}`},k&&d&&!w&&l&&!S?e.compact?s().createElement("div",{className:"jp-FormGroup-compactTitle"},s().createElement("div",{className:"jp-FormGroup-fieldLabel jp-FormGroup-contentItem"},l),k&&a.description&&x&&s().createElement("div",{className:"jp-FormGroup-description"},a.description)):s().createElement("h3",{className:"jp-FormGroup-fieldLabel jp-FormGroup-contentItem"},l):s().createElement(s().Fragment,null),S&&s().createElement("input",{className:"jp-FormGroup-contentItem jp-mod-styled",type:"text",onBlur:e=>f(e.target.value),defaultValue:l}),s().createElement("div",{className:`${w?"jp-root":a.type==="object"?"jp-objectFieldWrapper":a.type==="array"?"jp-arrayFieldWrapper":"jp-inputFieldWrapper jp-FormGroup-contentItem"}`},m),S&&s().createElement("button",{className:"jp-FormGroup-contentItem jp-mod-styled jp-mod-warn jp-FormGroup-removeButton",onClick:v(l)},n.__("Remove")),!e.compact&&a.description&&x&&s().createElement("div",{className:"jp-FormGroup-description"},a.description),i&&o!==undefined&&a.type!=="object"&&s().createElement("div",{className:"jp-FormGroup-default"},n.__("Default: %1",o!==null?o.toLocaleString():"null")),s().createElement("div",{className:"validationErrors"},u)))}});function ps(e){const{buttonStyle:t,compact:n,showModifiedFromDefault:i,translator:o,formContext:r,...a}=e;const l={...a.uiSchema||g.JSONExt.emptyObject};l["ui:options"]={...ss,...l["ui:options"]};a.uiSchema=l;const{FieldTemplate:d,ArrayFieldTemplate:c,ObjectFieldTemplate:h}=e.templates||g.JSONExt.emptyObject;const u={buttonStyle:t,compact:n,showModifiedFromDefault:i,translator:o};const p=s().useMemo((()=>d!==null&&d!==void 0?d:us(u)),[d,t,n,i,o]);const m=s().useMemo((()=>c!==null&&c!==void 0?c:cs(u)),[c,t,n,i,o]);const f=s().useMemo((()=>h!==null&&h!==void 0?h:hs(u)),[h,t,n,i,o]);const v={FieldTemplate:p,ArrayFieldTemplate:m,ObjectFieldTemplate:f};return s().createElement(ns.Ay,{templates:v,formContext:r,...a})}const ms="jp-DefaultStyle";const gs="jp-HTMLSelect";class fs extends i.Component{render(){const{className:e,defaultStyle:t=true,disabled:n,elementRef:s,iconProps:o,icon:r=Vt,options:l=[],...d}=this.props;const c=a(gs,{[ms]:t},e);const h=e=>{e.stopPropagation()};const u=l.map((e=>{const t=typeof e==="object"?e:{value:e};return i.createElement("option",{...t,key:t.value},t.label||t.value)}));return i.createElement("div",{className:c},i.createElement("select",{onFocus:h,disabled:n,ref:s,...d,multiple:false},u,d.children),i.createElement(r.react,{tag:"span",stylesheet:"select",right:"4px",top:"8px",...o}))}}class vs extends m.Widget{constructor(e={}){super({node:_s.createNode()});this._sandbox=[];this.addClass("jp-IFrame");this.sandbox=e.sandbox||[];this.referrerPolicy=e.referrerPolicy||"no-referrer";this.loading=e.loading||"eager"}get referrerPolicy(){return this._referrerPolicy}set referrerPolicy(e){if(this._referrerPolicy===e){return}this._referrerPolicy=e;const t=this.node.querySelector("iframe");t.setAttribute("referrerpolicy",e)}get loading(){return this._loading}set loading(e){if(this._loading===e){return}this._loading=e;const t=this.node.querySelector("iframe");t.setAttribute("loading",e)}get sandbox(){return this._sandbox.slice()}set sandbox(e){this._sandbox=e.slice();const t=this.node.querySelector("iframe");const n=e.length?e.join(" "):"";t.setAttribute("sandbox",n)}get url(){return this.node.querySelector("iframe").getAttribute("src")||""}set url(e){this.node.querySelector("iframe").setAttribute("src",e)}}var _s;(function(e){function t(){const e=document.createElement("div");const t=document.createElement("iframe");t.setAttribute("sandbox","");t.style.height="100%";t.style.width="100%";e.appendChild(t);return e}e.createNode=t})(_s||(_s={}));function bs(e){const{className:t,inputRef:n,rightIcon:i,...o}=e;return s().createElement("div",{className:a("jp-InputGroup",t)},s().createElement("input",{ref:n,...o}),i&&s().createElement("span",{className:"jp-InputGroupAction"},typeof i==="string"?s().createElement(C.resolveReact,{icon:i,elementPosition:"center",tag:"span"}):s().createElement(i.react,{elementPosition:"center",tag:"span"})))}var ys=n(34236);var ws=n(90044);var Cs;(function(e){e.DEFAULT_RANK=100})(Cs||(Cs={}));class xs extends m.Menu{constructor(e){var t;super(e);this._ranks=[];this.addClass("jp-ThemedContainer");this._rank=e.rank;this._includeSeparators=(t=e.includeSeparators)!==null&&t!==void 0?t:true}get rank(){return this._rank}addGroup(e,t){if(e.length===0){return new ws.DisposableDelegate((()=>void 0))}const n=t!==null&&t!==void 0?t:Cs.DEFAULT_RANK;const i=e.map((e=>{var t;return{...e,rank:(t=e.rank)!==null&&t!==void 0?t:n}})).sort(((e,t)=>e.rank-t.rank));let s=this._ranks.findIndex((e=>i[0].rankthis.insertItem(s++,e))));if(this._includeSeparators){o.push(this.insertItem(s++,{type:"separator",rank:n}))}return new ws.DisposableDelegate((()=>{o.forEach((e=>e.dispose()))}))}addItem(e){let t=-1;if(e.rank){t=this._ranks.findIndex((t=>e.rank{e.disposed.disconnect(n,this);this.dispose()};this._menu.disposed.connect(n,this)}get isDisposed(){return this._isDisposed}get type(){return this._item.deref().type}get command(){return this._item.deref().command}get args(){return this._item.deref().args}get submenu(){return this._item.deref().submenu}get label(){return this._item.deref().label}get mnemonic(){return this._item.deref().mnemonic}get icon(){return this._item.deref().icon}get iconClass(){return this._item.deref().iconClass}get iconLabel(){return this._item.deref().iconLabel}get caption(){return this._item.deref().caption}get className(){return this._item.deref().className}get dataset(){return this._item.deref().dataset}get isEnabled(){return this._item.deref().isEnabled}get isToggled(){return this._item.deref().isToggled}get isVisible(){return this._item.deref().isVisible}get keyBinding(){return this._item.deref().keyBinding}dispose(){if(this._isDisposed){return}this._isDisposed=true;const e=this._item.deref();if(e&&!this._menu.isDisposed){this._menu.removeItem(e)}p.Signal.clearData(this)}}var ks=n(54158);var js=n(78173);var Is=n(93247);var Es=n(42856);var Ts=n(94466);var Ms=n(26568);class Ds extends m.Widget{constructor(){super();this._rootDOM=null}static create(e){return new class extends Ds{render(){return e}}}onUpdateRequest(e){this.renderPromise=this.renderDOM()}onAfterAttach(e){Es.MessageLoop.sendMessage(this,m.Widget.Msg.UpdateRequest)}onBeforeDetach(e){if(this._rootDOM!==null){this._rootDOM.unmount();this._rootDOM=null}}renderDOM(){return new Promise((e=>{const t=this.render();if(this._rootDOM===null){this._rootDOM=(0,f.H)(this.node)}if(Array.isArray(t)){this._rootDOM.render(t);requestIdleCallback((()=>e()))}else if(t){this._rootDOM.render(t);requestIdleCallback((()=>e()))}else{this._rootDOM.unmount();this._rootDOM=null;requestIdleCallback((()=>e()))}}))}}class As extends Ds{constructor(e){super();this._modelChanged=new p.Signal(this);this.model=e!==null&&e!==void 0?e:null}get modelChanged(){return this._modelChanged}set model(e){if(this._model===e){return}if(this._model){this._model.stateChanged.disconnect(this.update,this)}this._model=e;if(e){e.stateChanged.connect(this.update,this)}this.update();this._modelChanged.emit(void 0)}get model(){return this._model}dispose(){if(this.isDisposed){return}this._model=null;super.dispose()}}class Ps extends i.Component{constructor(e){super(e);this.slot=(e,t)=>{if(this.props.shouldUpdate&&!this.props.shouldUpdate(e,t)){return}this.setState({value:[e,t]})};this.state={value:[this.props.initialSender,this.props.initialArgs]}}componentDidMount(){this.props.signal.connect(this.slot)}componentWillUnmount(){this.props.signal.disconnect(this.slot)}render(){return this.props.children(...this.state.value)}}class Ls{constructor(){this.stateChanged=new p.Signal(this);this._isDisposed=false}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;p.Signal.clearData(this)}}(0,js.provideJupyterDesignSystem)().register([(0,js.jpButton)(),(0,js.jpToolbar)()]);(0,js.addJupyterLabThemeChangeListener)();const Rs="jp-Toolbar";const Ns="jp-Toolbar-item";const Os="toolbar-popup-opener";const Bs="jp-Toolbar-spacer";class Fs extends m.PanelLayout{constructor(){super(...arguments);this._dirty=false}onFitRequest(e){super.onFitRequest(e);if(this.parent.isAttached){if((0,ys.some)(this.widgets,(e=>!e.isHidden))){this.parent.node.style.minHeight="var(--jp-private-toolbar-height)";this.parent.removeClass("jp-Toolbar-micro")}else{this.parent.node.style.minHeight="";this.parent.addClass("jp-Toolbar-micro")}}this._dirty=true;if(this.parent.parent){Es.MessageLoop.sendMessage(this.parent.parent,m.Widget.Msg.FitRequest)}if(this._dirty){Es.MessageLoop.sendMessage(this.parent,m.Widget.Msg.UpdateRequest)}}onUpdateRequest(e){super.onUpdateRequest(e);if(this.parent.isVisible){this._dirty=false}}onChildShown(e){super.onChildShown(e);this.parent.fit()}onChildHidden(e){super.onChildHidden(e);this.parent.fit()}onBeforeAttach(e){super.onBeforeAttach(e);this.parent.fit()}attachWidget(e,t){super.attachWidget(e,t);this.parent.fit()}detachWidget(e,t){super.detachWidget(e,t);this.parent.fit()}}class zs extends m.Widget{constructor(e={}){var t,n;super({node:document.createElement("jp-toolbar")});this.addClass(Rs);this.layout=(t=e.layout)!==null&&t!==void 0?t:new Fs;this.noFocusOnClick=(n=e.noFocusOnClick)!==null&&n!==void 0?n:false}names(){const e=this.layout;return(0,ys.map)(e.widgets,(e=>Ys.nameProperty.get(e)))}addItem(e,t){const n=this.layout;return this.insertItem(n.widgets.length,e,t)}insertItem(e,t,n){const i=(0,ys.find)(this.names(),(e=>e===t));if(i){return false}n.addClass(Ns);const s=this.layout;const o=Math.max(0,Math.min(e,s.widgets.length));s.insertWidget(o,n);Ys.nameProperty.set(n,t);n.node.dataset["jpItemName"]=t;if(this.noFocusOnClick){n.node.dataset["noFocusOnClick"]="true"}return true}insertAfter(e,t,n){return this.insertRelative(e,1,t,n)}insertBefore(e,t,n){return this.insertRelative(e,0,t,n)}insertRelative(e,t,n,i){const s=(0,ys.map)(this.names(),((e,t)=>({name:e,index:t})));const o=(0,ys.find)(s,(t=>t.name===e));if(o){return this.insertItem(o.index+t,n,i)}return false}handleEvent(e){switch(e.type){case"click":this.handleClick(e);break;default:break}}handleClick(e){e.stopPropagation();if(e.target instanceof HTMLLabelElement){const t=e.target.getAttribute("for");if(t&&this.node.querySelector(`#${t}`)){return}}if(this.node.contains(document.activeElement)){return}if(this.parent){this.parent.activate()}}onAfterAttach(e){this.node.addEventListener("click",this)}onBeforeDetach(e){this.node.removeEventListener("click",this)}}class Hs extends zs{constructor(e={}){super(e);this.popupOpener=new Gs;this._widgetWidths=new Map;this._widgetPositions=new Map;this._zoomChanged=true;this.insertItem(0,Os,this.popupOpener);this.popupOpener.hide();this._resizer=new Ms.Throttler((async(e=false)=>{await this._onResize(e)}),500)}dispose(){if(this.isDisposed){return}if(this._resizer){this._resizer.dispose()}super.dispose()}insertAfter(e,t,n){if(e===Os){return false}return super.insertAfter(e,t,n)}insertRelative(e,t,n,i){const s=this._widgetPositions.get(e);const o=(s!==null&&s!==void 0?s:0)+t;return this.insertItem(o,n,i)}insertItem(e,t,n){var i;let s;if(n instanceof Gs){s=super.insertItem(e,t,n)}else{const i=Math.max(0,Math.min(e,this.layout.widgets.length-1));s=super.insertItem(i,t,n);if(i!==e){e=Math.max(0,Math.min(e,this._widgetPositions.size))}}if(t!==Os&&this._widgetPositions.get(t)!==e){const n=(i=this._widgetPositions.get(t))!==null&&i!==void 0?i:this._widgetPositions.size;this._widgetPositions.forEach(((t,i)=>{if(i!==Os){if(t>=e&&tn){this._widgetPositions.set(i,t-1)}}}));this._widgetPositions.set(t,e);if(this.isVisible){void this._resizer.invoke()}}return s}onAfterShow(e){void this._resizer.invoke(true)}onBeforeHide(e){this.popupOpener.hidePopup();super.onBeforeHide(e)}onResize(e){super.onResize(e);const t=Math.round(window.outerWidth/window.innerWidth*100);if(t!==this._zoom){this._zoomChanged=true;this._zoom=t}if(e.width>0&&this._resizer){void this._resizer.invoke()}}async _onResize(e=false){if(!(this.parent&&this.parent.isAttached)){return}const t=this.node.clientWidth;const n=this.popupOpener;const i=32;const s=2+5;let o=n.isHidden?s:s+i;return this._getWidgetsToRemove(o,t,i).then((async s=>{var o,r;let{width:a,widgetsToRemove:l}=s;while(l.length>0){const e=l.pop();const t=Ys.nameProperty.get(e);a-=this._widgetWidths.get(t)||0;const i=(o=this._widgetPositions.get(t))!==null&&o!==void 0?o:0;let s=this._widgetPositions.size;const d=n.widgetAt(0);if(d){const e=Ys.nameProperty.get(d);s=(r=this._widgetPositions.get(e))!==null&&r!==void 0?r:s}const c=i-s;n.insertWidget(c,e)}if(n.widgetCount()>0){const e=[];let s=0;const o=n.widgetCount();while(s0){const t=e.shift();const n=Ys.nameProperty.get(t);if(this._widgetPositions.has(n)){this.insertItem(this._widgetPositions.get(n),n,t)}else{this.addItem(n,t)}}}if(n.widgetCount()>0){n.updatePopup();n.show()}else{n.hide()}if(e){await this._onResize()}})).catch((e=>{console.error("Error while computing the ReactiveToolbar",e)}))}async _getWidgetsToRemove(e,t,n){var i;const s=this.popupOpener;const o=[...this.layout.widgets];const r=o.length-1;const a=[];let l=0;while(lt){e+=n}if(e>t||((i=this._widgetPositions.get(d))!==null&&i!==void 0?i:0)>l){a.push(r)}l++}this._zoomChanged=false;return{width:e,widgetsToRemove:a}}async _saveWidgetWidth(e,t){if(t instanceof Ds){await t.renderPromise}const n=t.hasClass(Bs)?2:t.node.clientWidth;this._widgetWidths.set(e,n);return n}_getWidgetWidth(e){const t=Ys.nameProperty.get(e);return this._widgetWidths.get(t)||0}}(function(e){function t(){return new Ys.Spacer}e.createSpacerItem=t})(zs||(zs={}));function Ws(e){var t,n,s;const o=((t=e.noFocusOnClick)!==null&&t!==void 0?t:false)?undefined:t=>{var n;if(t.button===0){(n=e.onClick)===null||n===void 0?void 0:n.call(e);t.target.focus()}};const r=((n=e.noFocusOnClick)!==null&&n!==void 0?n:false)?t=>{var n;if(t.button===0){t.preventDefault();(n=e.onClick)===null||n===void 0?void 0:n.call(e)}}:undefined;const l=t=>{var n;const{key:i}=t;if(i==="Enter"||i===" "){(n=e.onClick)===null||n===void 0?void 0:n.call(e)}};const d=()=>{if(e.enabled===false&&e.disabledTooltip){return e.disabledTooltip}else if(e.pressed&&e.pressedTooltip){return e.pressedTooltip}else{return e.tooltip||e.iconLabel}};const c=d();const h=e.enabled===false;return i.createElement(ks.Button,{appearance:"stealth",className:e.className?e.className+" jp-ToolbarButtonComponent":"jp-ToolbarButtonComponent","aria-disabled":h,"aria-label":e.label||c,"aria-pressed":e.pressed,...e.dataset,disabled:h,onClick:o,onMouseDown:r,onKeyDown:l,title:c},(e.icon||e.iconClass)&&i.createElement(C.resolveReact,{icon:e.pressed?(s=e.pressedIcon)!==null&&s!==void 0?s:e.icon:e.icon,iconClass:a(e.iconClass,"jp-Icon"),tag:null}),e.label&&i.createElement("span",{className:"jp-ToolbarButtonComponent-label"},e.label))}function Vs(e){e.addClass("jp-ToolbarButton");return e}class Us extends Ds{constructor(e={}){var t,n;super();this.props=e;Vs(this);this._enabled=(t=e.enabled)!==null&&t!==void 0?t:true;this._pressed=this._enabled&&((n=e.pressed)!==null&&n!==void 0?n:false);this._onClick=e.onClick}set pressed(e){if(this.enabled&&e!==this._pressed){this._pressed=e;this.update()}}get pressed(){return this._pressed}set enabled(e){if(e!=this._enabled){this._enabled=e;if(!this._enabled){this._pressed=false}this.update()}}get enabled(){return this._enabled}set onClick(e){if(e!==this._onClick){this._onClick=e;this.update()}}get onClick(){return this._onClick}render(){return i.createElement(Ws,{...this.props,noFocusOnClick:this.props.noFocusOnClick,pressed:this.pressed,enabled:this.enabled,onClick:this.onClick})}}function qs(e){return i.createElement(Ps,{signal:e.commands.commandChanged,shouldUpdate:(t,n)=>n.id===e.id&&n.type==="changed"||n.type==="many-changed"},(()=>e.commands.listCommands().includes(e.id)?i.createElement(Ws,{...Ys.propsFromCommand(e)}):null))}function $s(e){e.addClass("jp-CommandToolbarButton");return e}class Ks extends Ds{constructor(e){super();this.props=e;const{commands:t,id:n,args:i}=e;$s(this);this.setCommandAttributes(t,n,i);t.commandChanged.connect(((s,o)=>{if(o.id===e.id){this.setCommandAttributes(t,n,i)}}),this)}setCommandAttributes(e,t,n){if(e.isToggled(t,n)){this.addClass("lm-mod-toggled")}else{this.removeClass("lm-mod-toggled")}if(e.isVisible(t,n)){this.removeClass("lm-mod-hidden")}else{this.addClass("lm-mod-hidden")}if(e.isEnabled(t,n)){if("disabled"in this.node){this.node.disabled=false}}else{if("disabled"in this.node){this.node.disabled=true}}}render(){return i.createElement(qs,{...this.props})}get commandId(){return this.props.id}}class Js extends m.Widget{constructor(){super({node:document.createElement("jp-toolbar")});this.width=0;this.node.setAttribute("aria-label","Responsive popup toolbar");this.addClass("jp-Toolbar");this.addClass("jp-Toolbar-responsive-popup");this.addClass("jp-ThemedContainer");this.layout=new m.PanelLayout;m.Widget.attach(this,document.body);this.hide()}updateWidth(e){if(e>0){this.width=e;this.node.style.width=`${e}px`}}alignTo(e){const{height:t,width:n,x:i,y:s}=e.node.getBoundingClientRect();const o=this.width;this.node.style.left=`${i+n-o+1}px`;this.node.style.top=`${s+t+1}px`}insertWidget(e,t){this.layout.insertWidget(e,t)}widgetCount(){return this.layout.widgets.length}widgetAt(e){return this.layout.widgets[e]}}class Gs extends Us{constructor(e={}){const t=(e.translator||ts.nullTranslator).load("jupyterlab");super({icon:Cn,onClick:()=>{this.handleClick()},tooltip:t.__("More commands")});this.addClass("jp-Toolbar-responsive-opener");this.popup=new Js}addWidget(e){this.popup.insertWidget(0,e)}insertWidget(e,t){this.popup.insertWidget(e,t)}dispose(){if(this.isDisposed){return}this.popup.dispose();super.dispose()}hide(){super.hide();this.hidePopup()}hidePopup(){this.popup.hide()}updatePopup(){this.popup.updateWidth(this.parent.node.clientWidth);this.popup.alignTo(this.parent)}widgetAt(e){return this.popup.widgetAt(e)}widgetCount(){return this.popup.widgetCount()}handleClick(){this.updatePopup();this.popup.setHidden(!this.popup.isHidden)}}var Ys;(function(e){function t(e){var t,n;const{commands:i,id:s,args:o}=e;const r=i.iconClass(s,o);const a=i.iconLabel(s,o);const l=(t=e.icon)!==null&&t!==void 0?t:i.icon(s,o);const d=i.label(s,o);let c=i.className(s,o);let h;if(i.isToggleable(s,o)){h=i.isToggled(s,o);if(h){c+=" lm-mod-toggled"}}if(!i.isVisible(s,o)){c+=" lm-mod-hidden"}const u=typeof e.label==="function"?e.label(o!==null&&o!==void 0?o:{}):e.label;let p=i.caption(s,o)||u||d||a;const m=i.keyBindings.find((e=>e.command===s));if(m){const e=m.keys.map(Is.CommandRegistry.formatKeystroke).join(", ");p=`${p} (${e})`}const g=()=>{void i.execute(s,o)};const f=i.isEnabled(s,o);return{className:c,dataset:{"data-command":e.id},noFocusOnClick:e.noFocusOnClick,icon:l,iconClass:r,tooltip:(n=e.caption)!==null&&n!==void 0?n:p,onClick:g,enabled:f,label:u!==null&&u!==void 0?u:d,pressed:h}}e.propsFromCommand=t;e.nameProperty=new Ts.AttachedProperty({name:"name",create:()=>""});class n extends m.Widget{constructor(){super();this.addClass(Bs)}}e.Spacer=n})(Ys||(Ys={}));class Xs extends m.Panel{constructor(e={}){super(e);this._toolbar=new zs}get toolbar(){return this._toolbar}}function Qs(e,t){let n=Infinity;let i=null;const s=/[\p{L}\p{N}\p{M}]+/gu;let o=true;while(o){let o=s.exec(e);if(!o){break}let r=ys.StringExt.matchSumOfDeltas(e,t,o.index);if(!r){break}if(r&&r.score<=n){n=r.score;i=r.indices}}if(!i||n===Infinity){return null}return{score:n,indices:i}}const Zs=(e,t,n)=>i=>{if(t){const t=e.toLowerCase();return Qs(i,t)}if(!n){i=i.toLocaleLowerCase();e=e.toLocaleLowerCase()}const s=i.indexOf(e);if(s===-1){return null}return{indices:[...Array(e.length).keys()].map((e=>e+s))}};const eo=e=>{var t,n,o;const[r,a]=(0,i.useState)((t=e.initialQuery)!==null&&t!==void 0?t:"");if(e.forceRefresh){(0,i.useEffect)((()=>{e.updateFilter((e=>({})))}),[])}const l=(0,i.useRef)(true);const d=(n=e.inputRef)!==null&&n!==void 0?n:(0,i.useRef)();(0,i.useEffect)((()=>{if(l.current){l.current=false;if(e.initialQuery!==undefined){e.updateFilter(Zs(e.initialQuery,e.useFuzzyFilter,e.caseSensitive),e.initialQuery)}}else{if(d.current){e.updateFilter(Zs(d.current.value,e.useFuzzyFilter,e.caseSensitive),d.current.value)}}}),[e.updateFilter,e.useFuzzyFilter,e.caseSensitive]);const c=(0,i.useCallback)((t=>{const n=t.target;a(n.value);e.updateFilter(Zs(n.value,e.useFuzzyFilter,e.caseSensitive),n.value)}),[e.updateFilter,e.useFuzzyFilter,e.caseSensitive]);const h=(o=e.showIcon)!==null&&o!==void 0?o:true;return s().createElement(ks.Search,{className:"jp-FilterBox",ref:e.inputRef,value:r,onChange:c,onInput:c,placeholder:e.placeholder,disabled:e.disabled},h&&s().createElement(Si.react,{slot:"end",tag:null}))};class to extends Ds{constructor(e){var t;super();this._filterBoxProps={...e};(t=e===null||e===void 0?void 0:e.filterSettingsChanged)===null||t===void 0?void 0:t.connect(((e,t)=>{this._updateProps(t)}),this)}render(){return s().createElement(eo,{...this._filterBoxProps})}_updateProps(e){Object.assign(this._filterBoxProps,e);this.update()}}const no=e=>new to(e);class io extends m.AccordionLayout{constructor(){super(...arguments);this._toolbars=new WeakMap}insertWidget(e,t){if(t.toolbar){this._toolbars.set(t,t.toolbar);t.toolbar.addClass("jp-AccordionPanel-toolbar")}super.insertWidget(e,t)}removeWidgetAt(e){const t=this.widgets[e];super.removeWidgetAt(e);if(t&&this._toolbars.has(t)){this._toolbars.delete(t)}}updateTitle(e,t){super.updateTitle(e,t);this._addToolbar(e,t)}attachWidget(e,t){super.attachWidget(e,t);this._addToolbar(e,t)}detachWidget(e,t){const n=this._toolbars.get(t);if(n){if(this.parent.isAttached){Es.MessageLoop.sendMessage(n,m.Widget.Msg.BeforeDetach)}this.titles[e].removeChild(n.node);if(this.parent.isAttached){Es.MessageLoop.sendMessage(n,m.Widget.Msg.AfterDetach)}}super.detachWidget(e,t)}onBeforeAttach(e){this.notifyToolbars(e);super.onBeforeAttach(e)}onAfterAttach(e){super.onAfterAttach(e);this.notifyToolbars(e)}onBeforeDetach(e){this.notifyToolbars(e);super.onBeforeDetach(e)}onAfterDetach(e){super.onAfterDetach(e);this.notifyToolbars(e)}_addToolbar(e,t){const n=this._toolbars.get(t);if(n){if(this.parent.isAttached){Es.MessageLoop.sendMessage(n,m.Widget.Msg.BeforeAttach)}this.titles[e].appendChild(n.node);if(this.parent.isAttached){Es.MessageLoop.sendMessage(n,m.Widget.Msg.AfterAttach)}}}notifyToolbars(e){this.widgets.forEach((t=>{const n=this._toolbars.get(t);if(n){n.processMessage(e)}}))}}var so;(function(e){class t extends m.AccordionPanel.Renderer{createCollapseIcon(e){const t=document.createElement("div");qt.element({container:t});return t}createSectionTitle(e){const t=super.createSectionTitle(e);t.classList.add("jp-AccordionPanel-title");return t}}e.Renderer=t;e.defaultRenderer=new t;function n(t){var n;return t.layout||new io({renderer:t.renderer||e.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing,titleSpace:(n=t.titleSpace)!==null&&n!==void 0?n:32})}e.createLayout=n})(so||(so={}));class oo extends m.Widget{constructor(e={}){var t;super();const n=this.layout=new m.PanelLayout;this.addClass("jp-SidePanel");const i=this._trans=(e.translator||ts.nullTranslator).load("jupyterlab");if(e.header){this.addHeader(e.header)}const s=this._content=(t=e.content)!==null&&t!==void 0?t:new m.AccordionPanel({...e,layout:so.createLayout(e)});s.node.setAttribute("role","region");s.node.setAttribute("aria-label",i.__("side panel content"));s.addClass("jp-SidePanel-content");n.addWidget(s);if(e.toolbar){this.addToolbar(e.toolbar)}}get content(){return this._content}get header(){if(!this._header){this.addHeader()}return this._header}get toolbar(){if(!this._toolbar){this.addToolbar()}return this._toolbar}get widgets(){return this.content.widgets}addWidget(e){this.content.addWidget(e)}insertWidget(e,t){this.content.insertWidget(e,t)}addHeader(e){const t=this._header=e||new m.Panel;t.addClass("jp-SidePanel-header");this.layout.insertWidget(0,t)}addToolbar(e){const t=this._toolbar=e!==null&&e!==void 0?e:new zs;t.addClass("jp-SidePanel-toolbar");this.layout.insertWidget(this.layout.widgets.length-1,t)}}class ro extends m.Widget{constructor(){super();this.addClass("jp-Spinner");this.node.tabIndex=-1;const e=document.createElement("div");e.className="jp-SpinnerContent";this.node.appendChild(e)}onActivateRequest(e){this.node.focus()}}var ao;(function(e){function t(e,t=""){n(e,"select",t);n(e,"textarea",t);n(e,"input",t);n(e,"button",t)}e.styleNode=t;function n(e,t,n=""){if(e.localName===t){e.classList.add("jp-mod-styled")}if(e.localName==="select"){const t=e.hasAttribute("multiple");i(e,t)}const s=e.getElementsByTagName(t);for(let o=0;o{if(e===t.sortKey){n({sortKey:e,sortDirection:t.sortDirection*-1})}else{n({sortKey:e,sortDirection:1})}};let r=e.rows;const a=e.columns.filter((e=>e.id===t.sortKey))[0];if(a){const n=a.sort.bind(a);r=e.rows.sort(((e,i)=>n(e.data,i.data)*t.sortDirection))}const l=e.columns.filter((e=>(e.isAvailable?e.isAvailable():true)&&!e.isHidden));const d=r.map((t=>{const n=l.map((e=>s().createElement("td",{key:e.id+"-"+t.key},e.renderCell(t.data))));return s().createElement("tr",{key:t.key,"data-key":t.key,onClick:e.onRowClick,className:"jp-sortable-table-tr"},n)}));const c=l.map((e=>s().createElement(po,{label:e.label,id:e.id,state:t,key:e.id,onSort:()=>{o(e.id)}})));return s().createElement("table",{className:ho},s().createElement("thead",null,s().createElement("tr",{className:"jp-sortable-table-tr"},c)),s().createElement("tbody",null,d))}function po(e){const t=e.id===e.state.sortKey;const n=!t||e.state.sortDirection===1?Gt:qt;return s().createElement("th",{key:e.id,onClick:()=>e.onSort(),className:t?"jp-sorted-header":undefined,"data-id":e.id},s().createElement("div",{className:"jp-sortable-table-th-wrapper"},s().createElement("label",null,e.label),s().createElement(n.react,{tag:"span",className:"jp-sort-icon"})))}const mo=100;let go=false;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){go={passive:true}}}))}catch(Lo){}class fo{constructor(e={}){var t,n,i,s,o,r;this.scrollDownThreshold=1;this.scrollUpThreshold=0;this.paddingTop=0;this._estimatedWidgetSize=vo.DEFAULT_WIDGET_SIZE;this._stateChanged=new p.Signal(this);this._currentWindow=[-1,-1,-1,-1];this._height=0;this._isDisposed=false;this._itemsList=null;this._measuredAllUntilIndex=-1;this._overscanCount=1;this._scrollOffset=0;this._widgetCount=0;this._widgetSizers=[];this._windowingActive=true;this._widgetCount=(i=(n=(t=e.itemsList)===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:e.count)!==null&&i!==void 0?i:0;this._overscanCount=(s=e.overscanCount)!==null&&s!==void 0?s:1;this._windowingActive=(o=e.windowingActive)!==null&&o!==void 0?o:true;this.itemsList=(r=e.itemsList)!==null&&r!==void 0?r:null}get height(){return this._height}set height(e){this._height=e}get isDisposed(){return this._isDisposed}get itemsList(){return this._itemsList}set itemsList(e){var t,n,i;if(this._itemsList!==e){if(this._itemsList){this._itemsList.changed.disconnect(this.onListChanged,this)}const s=this._itemsList;this._itemsList=e;if(this._itemsList){this._itemsList.changed.connect(this.onListChanged,this)}else{this._widgetCount=0}this._stateChanged.emit({name:"list",newValue:this._itemsList,oldValue:s});this._stateChanged.emit({name:"count",newValue:(n=(t=this._itemsList)===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0,oldValue:(i=s===null||s===void 0?void 0:s.length)!==null&&i!==void 0?i:0})}}get overscanCount(){return this._overscanCount}set overscanCount(e){if(e>=1){if(this._overscanCount!==e){const t=this._overscanCount;this._overscanCount=e;this._stateChanged.emit({name:"overscanCount",newValue:e,oldValue:t})}}else{console.error(`Forbidden non-positive overscan count: got ${e}`)}}get scrollOffset(){return this._scrollOffset}set scrollOffset(e){this._scrollOffset=e}get widgetCount(){return this._itemsList?this._itemsList.length:this._widgetCount}set widgetCount(e){if(this.itemsList){console.error("It is not allow to change the widgets count of a windowed list if a items list is used.");return}if(e>=0){if(this._widgetCount!==e){const t=this._widgetCount;this._widgetCount=e;this._stateChanged.emit({name:"count",newValue:e,oldValue:t})}}else{console.error(`Forbidden negative widget count: got ${e}`)}}get windowingActive(){return this._windowingActive}set windowingActive(e){if(e!==this._windowingActive){const t=this._windowingActive;this._windowingActive=e;this._currentWindow=[-1,-1,-1,-1];this._measuredAllUntilIndex=-1;this._widgetSizers=[];this._stateChanged.emit({name:"windowingActive",newValue:e,oldValue:t})}}get stateChanged(){return this._stateChanged}dispose(){if(this.isDisposed){return}this._isDisposed=true;p.Signal.clearData(this)}getEstimatedTotalSize(){let e=0;if(this._measuredAllUntilIndex>=this.widgetCount){this._measuredAllUntilIndex=this.widgetCount-1}if(this._measuredAllUntilIndex>=0){const t=this._widgetSizers[this._measuredAllUntilIndex];e=t.offset+t.size}let t=0;for(let n=this._measuredAllUntilIndex+1;ng&&vg&&_f&&_=u-r&&p<=h+r;const n=v-g;const i=_-g;if(w||b&&n>=l||y&&ir){t="top-center"}else{t="center"}}}if(t==="auto"){if(w){return p}else if(s!==undefined){t=s}else if(b||v<=f){t="end"}else{t="start"}}switch(t){case"start":return Math.max(0,h-o*r)+m;case"end":return u+o*r+m;case"center":return u+(h-u)/2;case"top-center":return h-r/2}}getRangeToRender(){let e=[0,Math.max(this.widgetCount-1,-1),0,Math.max(this.widgetCount-1,-1)];const t=this._measuredAllUntilIndex;if(this.windowingActive){e=this._getRangeToRender()}const[n,i]=e;if(t<=i||this._currentWindow[0]!==n||this._currentWindow[1]!==i){this._currentWindow=e;return e}return null}getSpan(e,t){const n=this._getItemMetadata(e);const i=n.offset;const s=this._getItemMetadata(t);const o=s.offset-n.offset+s.size;return[i,o]}resetAfterIndex(e){const t=this._measuredAllUntilIndex;this._measuredAllUntilIndex=Math.min(e,this._measuredAllUntilIndex);for(const[n,i]of this._widgetSizers.entries()){if(n===0){continue}const e=this._widgetSizers[n-1];i.offset=e.offset+e.size}if(this._measuredAllUntilIndex!==t){this._stateChanged.emit({name:"index",newValue:e,oldValue:t})}}setWidgetSize(e){if(this._windowingActive||this._currentWindow[0]>=0){let t=Infinity;let n=-1;let i=0;let s=true;const o=new Map(e.map((e=>[e.index,e.size])));const r=Math.max(...o.keys());const a=[...this._widgetSizers.entries()];for(let e=this._widgetSizers.length;e<=r;e++){a.push([e,null])}for(let[e,l]of a){const r=o.get(e);let a=0;const d=!!l;if(!l){const t=this._widgetSizers[e-1];const n={offset:t?t.offset+t.size:0,size:r!==undefined?r:this.estimateWidgetSize(e),measured:r!==undefined};this._widgetSizers[e]=n;l=n}if(r!==undefined){if(l.size!=r){a=r-l.size;l.size=r;t=Math.min(t,e)}l.measured=true}if(s){if(l.measured){n=e}else{s=false}}if(d&&i!==0){l.offset+=i}i+=a}if(n!==-1){this._measuredAllUntilIndex=n}if(t!==Infinity){return true}}return false}onListChanged(e,t){switch(t.type){case"add":this._widgetSizers.splice(t.newIndex,0,...new Array(t.newValues.length).fill(undefined).map(((e,t)=>({offset:0,size:this.estimateWidgetSize(t)}))));this.resetAfterIndex(t.newIndex-1);break;case"move":ys.ArrayExt.move(this._widgetSizers,t.oldIndex,t.newIndex);this.resetAfterIndex(Math.min(t.newIndex,t.oldIndex)-1);break;case"remove":this._widgetSizers.splice(t.oldIndex,t.oldValues.length);this.resetAfterIndex(t.oldIndex-1);break;case"set":this.resetAfterIndex(t.newIndex-1);break}}_getItemMetadata(e){var t,n;if(e>this._measuredAllUntilIndex){let i=0;if(this._measuredAllUntilIndex>=0){const e=this._widgetSizers[this._measuredAllUntilIndex];i=e.offset+e.size}for(let s=this._measuredAllUntilIndex+1;s<=e;s++){let e=((t=this._widgetSizers[s])===null||t===void 0?void 0:t.measured)?this._widgetSizers[s].size:this.estimateWidgetSize(s);this._widgetSizers[s]={offset:i,size:e,measured:(n=this._widgetSizers[s])===null||n===void 0?void 0:n.measured};i+=e}for(let t=e+1;t0?this._widgetSizers[this._measuredAllUntilIndex].offset:0;if(t>=e){return this._findNearestItemBinarySearch(this._measuredAllUntilIndex,0,e)}else{return this._findNearestItemExponentialSearch(Math.max(0,this._measuredAllUntilIndex),e)}}_findNearestItemBinarySearch(e,t,n){while(t<=e){const i=t+Math.floor((e-t)/2);const s=this._getItemMetadata(i).offset;if(s===n){return i}else if(sn){e=i-1}}if(t>0){return t-1}else{return 0}}_findNearestItemExponentialSearch(e,t){let n=1;while(ethis.update()),50);this._viewModel=e.model;this._viewport=c;if(e.scrollbar){s.classList.add("jp-mod-virtual-scrollbar")}this.viewModel.stateChanged.connect(this.onStateChanged,this)}get isParentHidden(){return this._isParentHidden}set isParentHidden(e){this._isParentHidden=e}get layout(){return super.layout}get outerNode(){return this._outerElement}get viewportNode(){return this._viewport}get scrollbar(){return this.node.classList.contains("jp-mod-virtual-scrollbar")}set scrollbar(e){if(e){this.node.classList.add("jp-mod-virtual-scrollbar")}else{this.node.classList.remove("jp-mod-virtual-scrollbar")}this._adjustDimensionsForScrollbar();this.update()}get viewModel(){return this._viewModel}dispose(){this._updater.dispose();super.dispose()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);e.stopPropagation();break;case"scrollend":this._onScrollEnd();break;case"scroll":this.onScroll(e);break}}scrollTo(e){if(!this.viewModel.windowingActive){this._outerElement.scrollTo({top:e});return}e=Math.max(0,e);if(e!==this.viewModel.scrollOffset){this.viewModel.scrollOffset=e;this._scrollUpdateWasRequested=true;this.update()}}scrollToItem(e,t="auto",n=.25,i){if(!this._isScrolling||this._scrollToItem===null||this._scrollToItem[0]!==e||this._scrollToItem[1]!==t){if(this._isScrolling){this._isScrolling.reject("Scrolling to a new item is requested.")}this._isScrolling=new g.PromiseDelegate;this._isScrolling.promise.catch(console.debug)}this._scrollToItem=[e,t,n,i];this._resetScrollToItem();let s=undefined;if(!this.viewModel.windowingActive){const t=this._innerElement.querySelector(`[data-windowed-list-index="${e}"]`);if(!t||!(t instanceof HTMLElement)){console.debug(`Element with index ${e} not found`);return Promise.resolve()}s={totalSize:this._outerElement.scrollHeight,itemMetadata:{offset:t.offsetTop,size:t.clientHeight},currentOffset:this._outerElement.scrollTop}}this.scrollTo(this.viewModel.getOffsetForIndexAndAlignment(Math.max(0,Math.min(e,this.viewModel.widgetCount-1)),t,n,s,i));return this._isScrolling.promise}onAfterAttach(e){super.onAfterAttach(e);if(this.viewModel.windowingActive){this._applyWindowingStyles()}else{this._applyNoWindowingStyles()}this._addListeners();this.viewModel.height=this.node.getBoundingClientRect().height;const t=window.getComputedStyle(this._viewport);this.viewModel.paddingTop=parseFloat(t.paddingTop);this._viewportPaddingTop=this.viewModel.paddingTop;this._viewportPaddingBottom=parseFloat(t.paddingBottom);this._scrollbarElement.addEventListener("pointerdown",this);this._outerElement.addEventListener("scrollend",this)}onBeforeDetach(e){this._removeListeners();this._scrollbarElement.removeEventListener("pointerdown",this);this._outerElement.removeEventListener("scrollend",this);super.onBeforeDetach(e)}onScroll(e){const{clientHeight:t,scrollHeight:n,scrollTop:i}=e.currentTarget;if(!this._scrollUpdateWasRequested&&Math.abs(this.viewModel.scrollOffset-i)>1){const e=Math.max(0,Math.min(i,n-t));this.viewModel.scrollOffset=e;this._scrollUpdateWasRequested=false;if(this._viewport.dataset.isScrolling!="true"){this._viewport.dataset.isScrolling="true"}if(this._timerToClearScrollStatus){window.clearTimeout(this._timerToClearScrollStatus)}this._timerToClearScrollStatus=window.setTimeout((()=>{this._onScrollEnd()}),750);this.update()}}onResize(e){const t=this.viewModel.height;this.viewModel.height=e.height>=0?e.height:this.node.getBoundingClientRect().height;if(this.viewModel.height!==t){void this._updater.invoke()}super.onResize(e);void this._updater.invoke()}onStateChanged(e,t){switch(t.name){case"windowingActive":this._removeListeners();if(this.viewModel.windowingActive){this._applyWindowingStyles();this.onScroll({currentTarget:this.node});this._addListeners();return}else{this._applyNoWindowingStyles();this._addListeners()}break;case"estimatedWidgetSize":this._updateTotalSize();return}this.update()}onUpdateRequest(e){if(this.viewModel.windowingActive){if(this._scrollRepaint===null){this._needsUpdate=false;this._scrollRepaint=window.requestAnimationFrame((()=>{this._scrollRepaint=null;this._update();if(this._needsUpdate){this.update()}}))}else{this._needsUpdate=true}}else{this._update()}}_adjustDimensionsForScrollbar(){const e=this._outerElement;const t=this._scrollbarElement;if(this.scrollbar){let n=e.offsetWidth-e.clientWidth;if(n==0){n=1e3;e.style.paddingRight=`${n}px`;e.style.boxSizing="border-box"}else{e.style.paddingRight="0"}e.style.width=`calc(100% + ${n}px)`;this._innerElement.style.marginRight=`${t.offsetWidth}px`}else{e.style.width="100%";this._innerElement.style.marginRight="";e.style.paddingRight="0";e.style.boxSizing=""}}_addListeners(){if(this.viewModel.windowingActive){if(!this._itemsResizeObserver){this._itemsResizeObserver=new ResizeObserver(this._onItemResize.bind(this))}for(const e of this.layout.widgets){this._itemsResizeObserver.observe(e.node);e.disposed.connect((()=>{var t;return(t=this._itemsResizeObserver)===null||t===void 0?void 0:t.unobserve(e.node)}))}this._outerElement.addEventListener("scroll",this,go);this._scrollbarResizeObserver=new ResizeObserver(this._adjustDimensionsForScrollbar.bind(this));this._scrollbarResizeObserver.observe(this._outerElement);this._scrollbarResizeObserver.observe(this._scrollbarElement)}else{if(!this._areaResizeObserver){this._areaResizeObserver=new ResizeObserver(this._onAreaResize.bind(this));this._areaResizeObserver.observe(this._innerElement)}}}_applyNoWindowingStyles(){this._viewport.style.position="relative";this._viewport.style.top="0px";this._viewport.style.minHeight="";this._innerElement.style.height=""}_applyWindowingStyles(){this._viewport.style.position="absolute"}_removeListeners(){var e,t,n;this._outerElement.removeEventListener("scroll",this);(e=this._areaResizeObserver)===null||e===void 0?void 0:e.disconnect();this._areaResizeObserver=null;(t=this._itemsResizeObserver)===null||t===void 0?void 0:t.disconnect();this._itemsResizeObserver=null;(n=this._scrollbarResizeObserver)===null||n===void 0?void 0:n.disconnect();this._scrollbarResizeObserver=null}_update(){var e;if(this.isDisposed||!this.layout){return}const t=this.viewModel.getRangeToRender();if(t!==null){const[n,i,s,o]=t;if(this.scrollbar){const e=this._renderScrollbar();const t=e[s];const n=e[o];this._viewportIndicator.style.top=t.offsetTop-1+"px";this._viewportIndicator.style.height=n.offsetTop-t.offsetTop+n.offsetHeight+"px"}const r=[];if(i>=0){for(let e=n;e<=i;e++){const t=this.viewModel.widgetRenderer(e);t.dataset.windowedListIndex=`${e}`;r.push(t)}}const a=this.layout.widgets.length;for(let t=a-1;t>=0;t--){if(!r.includes(this.layout.widgets[t])){(e=this._itemsResizeObserver)===null||e===void 0?void 0:e.unobserve(this.layout.widgets[t].node);this.layout.removeWidget(this.layout.widgets[t])}}for(let e=0;e{var e;return(e=this._itemsResizeObserver)===null||e===void 0?void 0:e.unobserve(t.node)}))}this.layout.insertWidget(e,t)}if(this.viewModel.windowingActive){if(i>=0){this._updateTotalSize();let[e,t]=this.viewModel.getSpan(n,i);this._viewport.style.transform=`translateY(${e}px)`}else{this._innerElement.style.height=`0px`;this._viewport.style.top=`0px`;this._viewport.style.minHeight=`0px`}if(this._scrollUpdateWasRequested){this._outerElement.scrollTop=this.viewModel.scrollOffset;this._scrollUpdateWasRequested=false}}}let n=-1;for(const i of this._viewport.children){const e=parseInt(i.dataset.windowedListIndex,10);if(e{console.log(e)}))}_resetScrollToItem(){if(this._resetScrollToItemTimeout){clearTimeout(this._resetScrollToItemTimeout)}if(this._scrollToItem){this._resetScrollToItemTimeout=window.setTimeout((()=>{this._scrollToItem=null;if(this._isScrolling){this._isScrolling.resolve();this._isScrolling=null}}),mo)}}_renderScrollbar(){var e,t;const{node:n,renderer:i,viewModel:s}=this;const o=n.querySelector(".jp-WindowedPanel-scrollbar-content");const r=[];const a=(e,t)=>{if(e instanceof HTMLElement){return e}else{c.add(e.key);const n={index:t};const i=this._scrollbarItems[e.key];if(i&&!i.isDisposed){return i.render(n)}else{this._scrollbarItems[e.key]=e;const t=e.render(n);return t}}};const l=s.itemsList;const d=(e=l===null||l===void 0?void 0:l.length)!==null&&e!==void 0?e:s.widgetCount;const c=new Set;for(let p=0;p!c.has(e)));for(const p of h){this._scrollbarItems[p].dispose();delete this._scrollbarItems[p]}const u=[...o.childNodes];if(u.length!==r.length||!u.every(((e,t)=>r[t]===e))){o.replaceChildren(...r)}return r}_evtPointerDown(e){let t=e.target;while(t&&t.parentElement){if(t.hasAttribute("data-index")){const e=parseInt(t.getAttribute("data-index"),10);return void(async()=>{await this.scrollToItem(e);this.jumped.emit(e)})()}t=t.parentElement}}_onScrollEnd(){if(this._timerToClearScrollStatus){window.clearTimeout(this._timerToClearScrollStatus)}this._viewport.dataset.isScrolling="false";if(this._requiresTotalSizeUpdate){this._updateTotalSize()}this._requiresTotalSizeUpdate=false}_updateTotalSize(){if(this.viewModel.windowingActive){if(this._viewport.dataset.isScrolling=="true"){this._requiresTotalSizeUpdate=true;return}const e=this.viewModel.getEstimatedTotalSize();const t=e+this._viewportPaddingTop+this._viewportPaddingBottom;this._innerElement.style.height=`${t}px`}}}vo.DEFAULT_WIDGET_SIZE=50;class _o extends m.PanelLayout{constructor(){super({fitPolicy:"set-no-constraint"})}get parent(){return super.parent}set parent(e){super.parent=e}attachWidget(e,t){let n=this.parent.viewportNode.children[e];if(this.parent.isAttached){Es.MessageLoop.sendMessage(t,m.Widget.Msg.BeforeAttach)}this.parent.viewportNode.insertBefore(t.node,n);if(this.parent.isAttached){Es.MessageLoop.sendMessage(t,m.Widget.Msg.AfterAttach)}}detachWidget(e,t){if(this.parent.isAttached){Es.MessageLoop.sendMessage(t,m.Widget.Msg.BeforeDetach)}this.parent.viewportNode.removeChild(t.node);if(this.parent.isAttached){Es.MessageLoop.sendMessage(t,m.Widget.Msg.AfterDetach)}}moveWidget(e,t,n){let i=this.parent.viewportNode.children[t];if(e{if(n.submenu){e.overrideDefaultRenderer(n.submenu)}return i(t,n)};for(const e of n._items){if(e.submenu){t(e.submenu)}}}e.overrideDefaultRenderer=t;class n extends m.Menu.Renderer{renderIcon(e){const t=this.createIconClass(e);if(e.item.isToggled){return bo.h.div({className:t},Xt,e.item.iconLabel)}return bo.h.div({className:t},e.item.icon,e.item.iconLabel)}createIconClass(e){let t="lm-Menu-itemIcon";if(e.item.type==="separator"){return a(e.item.iconClass,t)}else{return a(w.styleClass({stylesheet:"menuItem"}),e.item.iconClass,t)}}renderSubmenu(e){const t="lm-Menu-itemSubmenuIcon";if(e.item.type==="submenu"){return bo.h.div({className:t},Co)}else{return bo.h.div({className:t})}}}e.Renderer=n;e.defaultRenderer=new n})(So||(So={}));class ko extends m.TabBar{constructor(e={}){var t;super({renderer:ko.defaultRenderer,...e});const n=((t=ko.translator)!==null&&t!==void 0?t:ts.nullTranslator).load("jupyterlab");Bt.element({container:this.addButtonNode,title:n.__("New Launcher")})}}ko.translator=null;(function(e){class t extends m.TabBar.Renderer{renderCloseIcon(t){var n;const i=((n=e.translator)!==null&&n!==void 0?n:ts.nullTranslator).load("jupyterlab");const s=t.title.label?i.__("Close %1",t.title.label):i.__("Close tab");const o=a("jp-icon-hover lm-TabBar-tabCloseIcon",w.styleClass({elementPosition:"center",height:"16px",width:"16px"}));return(0,bo.hpass)("div",{className:o,title:s},sn)}}e.Renderer=t;e.defaultRenderer=new t})(ko||(ko={}));class jo extends m.DockPanel{constructor(e={}){super({renderer:jo.defaultRenderer,...e})}}(function(e){class t extends m.DockPanel.Renderer{createTabBar(){const e=new ko;e.addClass("lm-DockPanel-tabBar");return e}}e.Renderer=t;e.defaultRenderer=new t})(jo||(jo={}));class Io extends m.TabPanel{constructor(e={}){e.renderer=e.renderer||ko.defaultRenderer;super(e)}}const Eo="jp-HoverBox";const To="-1000";var Mo;(function(e){function t(e){const{anchor:t,host:n,node:i,privilege:s,outOfViewDisplay:o}=e;const r=n.getBoundingClientRect();if(!i.classList.contains(Eo)){i.classList.add(Eo)}if(i.style.visibility){i.style.visibility=""}if(i.style.zIndex===""){i.style.zIndex=""}i.style.maxHeight="";i.style.marginTop="";const a=e.style||window.getComputedStyle(i);const l=t.top-r.top;const d=r.bottom-t.bottom;const c=parseInt(a.marginTop,10)||0;const h=parseInt(a.marginLeft,10)||0;const u=parseInt(a.minHeight,10)||e.minHeight;let p=parseInt(a.maxHeight,10)||e.maxHeight;const m=s==="forceAbove"?false:s==="forceBelow"?true:s==="above"?l=p||d>=l;if(m){p=Math.min(d-c,p)}else{p=Math.min(l,p);i.style.marginTop="0px"}i.style.maxHeight=`${p}px`;const g=p>=u&&(d>=u||l>=u);if(!g){i.style.zIndex=To;i.style.visibility="hidden";return}if(e.size){i.style.width=`${e.size.width}px`;i.style.height=`${e.size.height}px`;i.style.contain="strict"}else{i.style.contain="";i.style.width="auto";i.style.height=""}const f=e.size?e.size.height:i.getBoundingClientRect().height;const v=e.offset&&e.offset.vertical&&e.offset.vertical.above||0;const _=e.offset&&e.offset.vertical&&e.offset.vertical.below||0;let b=m?r.bottom-d+_:r.top+l-f+v;i.style.top=`${Math.floor(b)}px`;const y=e.offset&&e.offset.horizontal||0;let w=t.left+y;i.style.left=`${Math.ceil(w)}px`;let C=i.getBoundingClientRect();let x=C.right;if(x>window.innerWidth){w-=x-window.innerWidth;x=window.innerWidth;i.style.left=`${Math.ceil(w)}px`}if(wr.bottom;const O=w+hr.right;let F=false;let z=false;let H=false;if(R){switch((o===null||o===void 0?void 0:o.top)||"hidden-inside"){case"hidden-inside":if(!T){F=true}break;case"hidden-outside":if(!M){F=true}break;case"stick-inside":if(r.top>b){b=r.top;H=true}break;case"stick-outside":if(r.top>S){b=r.top-P;H=true}break}}if(N){switch((o===null||o===void 0?void 0:o.bottom)||"hidden-outside"){case"hidden-inside":if(!M){F=true}break;case"hidden-outside":if(!T){F=true}break;case"stick-inside":if(r.bottomw+h){w=r.left-h;z=true}break;case"stick-outside":if(r.left>x){w=r.left-h-L;z=true}break}}if(B){switch((o===null||o===void 0?void 0:o.right)||"hidden-outside"){case"hidden-inside":if(!A){F=true}break;case"hidden-outside":if(!D){F=true}break;case"stick-inside":if(r.right.'; got ${e}.`)}this._renderers[e]=t}get renderers(){return this._renderers}getRenderer(e){return this._renderers[e]}}},40662:(e,t,n)=>{"use strict";var i=n(10395);var s=n(85072);var o=n.n(s);var r=n(97825);var a=n.n(r);var l=n(77659);var d=n.n(l);var c=n(55056);var h=n.n(c);var u=n(10540);var p=n.n(u);var m=n(41113);var g=n.n(m);var f=n(28857);var v={};v.styleTagTransform=g();v.setAttributes=h();v.insert=d().bind(null,"head");v.domAPI=a();v.insertStyleElement=p();var _=o()(f.A,v);const b=f.A&&f.A.locals?f.A.locals:undefined},47872:(e,t,n)=>{"use strict";n.r(t);n.d(t,{RenderedVega:()=>u,VEGALITE3_MIME_TYPE:()=>d,VEGALITE4_MIME_TYPE:()=>c,VEGALITE5_MIME_TYPE:()=>h,VEGA_MIME_TYPE:()=>l,default:()=>g,rendererFactory:()=>p});var i=n(1143);var s=n.n(i);const o="jp-RenderedVegaCommon5";const r="jp-RenderedVega5";const a="jp-RenderedVegaLite";const l="application/vnd.vega.v5+json";const d="application/vnd.vegalite.v3+json";const c="application/vnd.vegalite.v4+json";const h="application/vnd.vegalite.v5+json";class u extends i.Widget{constructor(e){super();this._mimeType=e.mimeType;this._resolver=e.resolver;this.addClass(o);this.addClass(this._mimeType===l?r:a)}async renderModel(e){const t=e.data[this._mimeType];if(t===undefined){return}const n=e.metadata[this._mimeType];const i=n&&n.embed_options?n.embed_options:{};let s=document.body.dataset.jpThemeLight==="false";if(s){i.theme="dark"}const o=this._mimeType===l?"vega":"vega-lite";const r=f.vega!=null?f.vega:await f.ensureVega();const a=document.createElement("div");this.node.textContent="";this.node.appendChild(a);if(this._result){this._result.finalize()}const d=r.vega.loader({http:{credentials:"same-origin"}});const c=async(e,t)=>{const n=this._resolver;if((n===null||n===void 0?void 0:n.isLocal)&&n.isLocal(e)){const t=await n.resolveUrl(e);e=await n.getDownloadUrl(t)}return d.sanitize(e,t)};this._result=await r.default(a,t,{actions:true,defaultStyle:true,...i,mode:o,loader:{...d,sanitize:c}});if(e.data["image/png"]){return}const h=await this._result.view.toImageURL("png",typeof i.scaleFactor==="number"?i.scaleFactor:i.scaleFactor?i.scaleFactor.png:i.scaleFactor);e.setData({data:{...e.data,"image/png":h.split(",")[1]}})}dispose(){if(this._result){this._result.finalize()}super.dispose()}}const p={safe:true,mimeTypes:[l,d,c,h],createRenderer:e=>new u(e)};const m={id:"@jupyterlab/vega5-extension:factory",description:"Provides a renderer for Vega 5 and Vega-Lite 3 to 5 content.",rendererFactory:p,rank:57,dataType:"json",documentWidgetFactoryOptions:[{name:"Vega5",primaryFileType:"vega5",fileTypes:["vega5","json"],defaultFor:["vega5"]},{name:"Vega-Lite5",primaryFileType:"vega-lite5",fileTypes:["vega-lite3","vega-lite4","vega-lite5","json"],defaultFor:["vega-lite3","vega-lite4","vega-lite5"]}],fileTypes:[{mimeTypes:[l],name:"vega5",extensions:[".vg",".vg.json",".vega"],icon:"ui-components:vega"},{mimeTypes:[h],name:"vega-lite5",extensions:[".vl",".vl.json",".vegalite"],icon:"ui-components:vega"},{mimeTypes:[c],name:"vega-lite4",extensions:[],icon:"ui-components:vega"},{mimeTypes:[d],name:"vega-lite3",extensions:[],icon:"ui-components:vega"}]};const g=m;var f;(function(e){function t(){if(e.vegaReady){return e.vegaReady}e.vegaReady=n.e(908).then(n.t.bind(n,40908,23));return e.vegaReady}e.ensureVega=t})(f||(f={}))},54549:(e,t,n)=>{"use strict";var i=n(10395);var s=n(85072);var o=n.n(s);var r=n(97825);var a=n.n(r);var l=n(77659);var d=n.n(l);var c=n(55056);var h=n.n(c);var u=n(10540);var p=n.n(u);var m=n(41113);var g=n.n(m);var f=n(45512);var v={};v.styleTagTransform=g();v.setAttributes=h();v.insert=d().bind(null,"head");v.domAPI=a();v.insertStyleElement=p();var _=o()(f.A,v);const b=f.A&&f.A.locals?f.A.locals:undefined},42864:(e,t,n)=>{"use strict";n.r(t);n.d(t,{default:()=>D});var i=n(6751);var s=n(94307);var o=n(14366);var r=n(30397);var a=n(42875);var l=n(94931);var d=n(30619);var c;(function(e){e.open="workspace-ui:open";e.save="workspace-ui:save";e.saveAs="workspace-ui:save-as";e.createNew="workspace-ui:create-new";e.deleteWorkspace="workspace-ui:delete";e.clone="workspace-ui:clone";e.rename="workspace-ui:rename";e.reset="workspace-ui:reset";e.importWorkspace="workspace-ui:import";e.exportWorkspace="workspace-ui:export"})(c||(c={}));const h="jupyterlab-workspace";const u="."+h;const p="workspace-ui:lastSave";const m="jp-mod-workspace";const g={id:"@jupyterlab/workspaces-extension:commands",description:"Add workspace commands.",autoStart:true,requires:[i.IWorkspacesModel,a.IDefaultFileBrowser,o.IWindowResolver,l.IStateDB,d.ITranslator,s.JupyterFrontEnd.IPaths],provides:i.IWorkspaceCommands,optional:[s.IRouter,o.ICommandPalette],activate:(e,t,n,i,s,l,d,h,g)=>{const v=l.load("jupyterlab");const _=v.__("Naming the workspace will create a unique URL. The name may contain letters, numbers, hyphens (-), and underscores (_).");const b=r.URLExt.join(d.urls.app,"workspaces");const y=b+"/";const w="[a-zA-Z0-9\\-_]+";const C=async e=>o.InputDialog.getText({label:_,prefix:y,pattern:w,required:true,placeholder:v.__("workspace-name"),...e});const x=e=>e.classList.contains(m);e.commands.addCommand(c.open,{label:e=>{const t=e.workspace;return t?v.__("Open Workspace"):v.__("Open Workspace…")},execute:async e=>{let n=e.workspace;if(!n){const e=await o.InputDialog.getItem({title:v.__("Choose Workspace To Open"),label:v.__("Choose an existing workspace to open."),items:t.identifiers,okLabel:v.__("Choose"),prefix:y});if(!e.value||!e.button.accept){return}n=e.value}if(!n||!t.identifiers.includes(n)){return}const i=r.URLExt.join(b,n);if(!i.startsWith(b)){throw new Error("Can only be used for workspaces")}if(h){h.navigate(i,{hard:true})}else{document.location.href=i}}});e.commands.addCommand(c.deleteWorkspace,{label:v.__("Delete Workspace…"),execute:async n=>{var i;const s=e.contextMenuHitTest(x);let r=(i=n.workspace)!==null&&i!==void 0?i:s===null||s===void 0?void 0:s.dataset["context"];if(!r){const e=await o.InputDialog.getItem({title:v.__("Choose Workspace To Delete"),label:v.__("Choose an existing workspace to delete."),items:t.identifiers,okLabel:v.__("Choose")});if(!e.value||!e.button.accept){return}r=e.value}if(!r){return}const a=await(0,o.showDialog)({title:v.__("Delete workspace"),body:v.__('Deleting workspace "%1" will also delete its URL. A deleted workspace cannot be recovered.',r),buttons:[o.Dialog.cancelButton(),o.Dialog.warnButton({label:v.__("Delete")})],defaultButton:0});if(a.button.accept){await t.remove(r)}}});e.commands.addCommand(c.createNew,{label:v.__("Create New Workspace…"),execute:async e=>{let n=e.workspace;if(!n){const e=await C({title:v.__("Create New Workspace"),okLabel:v.__("Create")});if(!e.value||!e.button.accept){return}n=e.value}if(!n){return}await t.create(n)}});e.commands.addCommand(c.clone,{label:v.__("Clone Workspace…"),execute:async n=>{var s;const r=e.contextMenuHitTest(x);let a=(s=n.workspace)!==null&&s!==void 0?s:r===null||r===void 0?void 0:r.dataset["context"];if(!a){const e=await o.InputDialog.getItem({title:v.__("Choose Workspace To Clone"),label:v.__("Choose an existing workspace to clone."),items:t.identifiers,okLabel:v.__("Choose")});if(!e.value||!e.button.accept){return}a=e.value}const l=await C({title:v.__("Clone Workspace"),text:v.__("%1-clone",a),okLabel:v.__("Clone")});if(!l.button.accept||!l.value){return}let d=l.value;await t.saveAs(a,d);if(a===i.name){return e.commands.execute(c.open,{workspace:d})}}});e.commands.addCommand(c.rename,{label:v.__("Rename Workspace…"),execute:async n=>{var s,o;const r=e.contextMenuHitTest(x);const a=(o=(s=n.workspace)!==null&&s!==void 0?s:r===null||r===void 0?void 0:r.dataset["context"])!==null&&o!==void 0?o:i.name;const l=a;const d=await C({title:v.__("Rename Workspace"),text:l,okLabel:v.__("Rename")});if(!d.button.accept||!d.value){return}let h=d.value;await t.rename(a,h);if(a===i.name){return e.commands.execute(c.open,{workspace:h})}}});e.commands.addCommand(c.reset,{label:v.__("Reset Workspace…"),execute:async n=>{var s,r,a,l,d,h;const u=e.contextMenuHitTest(x);const p=(r=(s=n.workspace)!==null&&s!==void 0?s:u===null||u===void 0?void 0:u.dataset["context"])!==null&&r!==void 0?r:i.name;const m=await e.serviceManager.workspaces.fetch(p);const g=(h=(d=(l=(a=m.data["layout-restorer:data"])===null||a===void 0?void 0:a.main)===null||l===void 0?void 0:l.dock)===null||d===void 0?void 0:d.widgets)===null||h===void 0?void 0:h.length;const f=await(0,o.showDialog)({title:v.__("Reset Workspace"),body:v._n("Resetting workspace %2 will close its %1 tab and return to default layout.","Resetting workspace %2 will close its %1 tabs and return to default layout.",g,p),buttons:[o.Dialog.cancelButton(),o.Dialog.warnButton({label:v.__("Reset")})],defaultButton:0});if(!f.button.accept){return}await t.reset(p);if(p===i.name){return e.commands.execute(c.open,{workspace:p})}else{await t.refresh()}}});e.commands.addCommand(c.importWorkspace,{label:v.__("Import Workspace…"),execute:async()=>{const{contents:i}=e.serviceManager;const s=await a.FileDialog.getOpenFiles({manager:n.model.manager,title:v.__("Select Workspace Files to Import"),filter:e=>e.type==="directory"||e.path.endsWith(u)?{}:null,label:v.__('Choose one or more workspace files to import. A Jupyter workspace file has the extension "%1".',u),translator:l});if(s.button.accept&&s.value&&s.value.length>=1){for(const t of s.value){const n=await i.get(t.path,{content:true});const s=JSON.parse(n.content);await e.serviceManager.workspaces.save(s.metadata.id,s)}await t.refresh()}}});e.commands.addCommand(c.exportWorkspace,{label:v.__("Export Workspace…"),execute:async r=>{var d,c;const{contents:h}=e.serviceManager;const p=e.contextMenuHitTest(x);let m=(c=(d=r.workspace)!==null&&d!==void 0?d:p===null||p===void 0?void 0:p.dataset["context"])!==null&&c!==void 0?c:i.name;if(!m){const e=await o.InputDialog.getItem({title:v.__("Choose Workspace To Export"),label:v.__("Choose an existing workspace to export."),items:t.identifiers,okLabel:v.__("Choose")});if(!e.value||!e.button.accept){return}m=e.value}const g=e.serviceManager.workspaces.fetch(m);const _=await a.FileDialog.getExistingDirectory({title:v.__("Choose Workspace Export Directory"),defaultPath:n.model.path,manager:n.model.manager,label:v.__('The "%1" workspace will be saved in the chosen directory as "%1%2".',m,u),translator:l});if(!_.button.accept||!_.value||_.value.length===0){return}if(_.value.length>1){console.warn("More than one directory was selected; the workspace will be exported to the first directory only")}const b=_.value[0].path+"/"+m+u;if(b){await f.save(b,h,g,s,false)}}});e.commands.addCommand(c.saveAs,{label:v.__("Save Current Workspace As…"),execute:async()=>{const{contents:t}=e.serviceManager;const o=e.serviceManager.workspaces.fetch(i.name);await f.saveAs(n,t,o,s,l)}});e.commands.addCommand(c.save,{label:v.__("Save Current Workspace"),execute:async()=>{const{contents:t}=e.serviceManager;const o=e.serviceManager.workspaces.fetch(i.name);const r=await s.fetch(p);if(r===undefined){await f.saveAs(n,t,o,s,l)}else{await f.save(r,t,o,s)}}});if(g){const e=v.__("Workspaces");const t=[c.open,c.save,c.saveAs,c.createNew,c.rename,c.clone,c.exportWorkspace,c.importWorkspace,c.reset,c.deleteWorkspace];for(const n of t){g.addItem({command:n,category:e})}}return{open:c.open,deleteWorkspace:c.deleteWorkspace}}};var f;(function(e){function t(e){let t=e.split("/").pop();if(t===undefined){return"unnamed-workspace"}if(t.endsWith(u)){t=t.slice(0,-u.length)}return t}e.createNameFromPath=t;async function n(e,n,i,s,o=true){const r=t(e);if(!e.endsWith(u)){e=e+u}if(o){await s.save(p,e)}const a=await i;a.metadata.id=`${r}`;await n.save(e,{type:"file",format:"text",content:JSON.stringify(a)})}e.save=n;async function i(e,t,i,o,r){var a;r=r||d.nullTranslator;const l=await o.fetch(p);let c;if(l===undefined){c="new-workspace"}else{c=(a=l.split("/").pop())===null||a===void 0?void 0:a.split(".")[0]}const h=e.model.path+"/"+c+u;const m=await s(h,r);if(m){await n(m,t,i,o)}}e.saveAs=i;async function s(e,t){t=t||d.nullTranslator;const n=t.load("jupyterlab");const i=await o.InputDialog.getText({title:n.__("Save Current Workspace As…"),text:e,placeholder:n.__("Path to save the workspace in"),okLabel:n.__("Save"),selectionRange:e.length-u.length});if(i.button.accept){return i.value}else{return null}}})(f||(f={}));var v=n(45409);var _=n(26331);const b={id:"@jupyterlab/workspaces-extension:sidebar",description:"Populates running sidebar with workspaces.",requires:[i.IWorkspaceCommands,i.IWorkspacesModel,v.IRunningSessionManagers,o.IWindowResolver],optional:[d.ITranslator],autoStart:true,activate:async(e,t,n,i,s,o)=>{const r=(o!==null&&o!==void 0?o:d.nullTranslator).load("jupyterlab");class a{constructor(e){this._workspace=e;this.context=e.metadata.id;this.className=m}open(){return e.commands.execute(t.open,{workspace:this._workspace.metadata.id})}async shutdown(){await e.commands.execute(t.deleteWorkspace,{workspace:this._workspace.metadata.id});await n.refresh()}icon(){return s.name===this._workspace.metadata.id?_.checkIcon:_.blankIcon}label(){return this._workspace.metadata.id}labelTitle(){var e,t,n,i;return r.__("%1 workspace with %2 tabs, last modified on %3",this._workspace.metadata.id,(i=(n=(t=(e=this._workspace.data["layout-restorer:data"])===null||e===void 0?void 0:e.main)===null||t===void 0?void 0:t.dock)===null||n===void 0?void 0:n.widgets)===null||i===void 0?void 0:i.length,this._workspace.metadata["last_modified"])}}i.add({name:r.__("Workspaces"),supportsMultipleViews:false,running:()=>n.workspaces.map((e=>new a(e))),shutdownAll:async()=>{await Promise.all(n.workspaces.map((e=>n.remove(e.metadata.id))));await n.refresh()},shutdownItemIcon:_.deleteIcon,refreshRunning:async()=>{await n.refresh()},runningChanged:n.refreshed,shutdownLabel:e=>r.__("Delete %1",e.label()),shutdownAllLabel:r.__("Delete All"),shutdownAllConfirmationText:r.__("Are you sure you want to delete all workspaces? Deleted workspaces cannot be recovered.")})}};var y=n(44914);var w=n.n(y);const C=({currentWorkspace:e,identifiers:t,openWorkspace:n,translator:i})=>{const[s,o]=(0,y.useState)(false);const[r,a]=(0,y.useState)("");const l=(0,y.useRef)(null);const d=(0,y.useId)();const c=i.load("jupyterlab");const h=t.filter((e=>e.toLowerCase().includes(r.toLowerCase())));(0,y.useEffect)((()=>{const e=e=>{if(l.current&&!l.current.contains(e.target)){o(false)}};document.addEventListener("mousedown",e);return()=>document.removeEventListener("mousedown",e)}),[]);return w().createElement("div",{className:"jp-WorkspaceSelector",ref:l},w().createElement("button",{className:"jp-WorkspaceSelector-header",onClick:()=>o(!s),"aria-expanded":s,"aria-controls":d},w().createElement("span",{className:"jp-WorkspaceSelector-current"},e.length>12?`${e.slice(0,12)}...`:e),w().createElement("span",{className:"jp-WorkspaceSelector-caret"},w().createElement(_.LabIcon.resolveReact,{icon:s?_.caretUpEmptyThinIcon:_.caretDownEmptyThinIcon}))),s&&w().createElement("div",{className:"jp-WorkspaceSelector-dropdown",id:d},w().createElement("div",{className:"jp-WorkspaceSelector-search"},w().createElement("div",{className:"jp-WorkspaceSelector-searchIcon"},w().createElement(_.LabIcon.resolveReact,{icon:_.searchIcon})),w().createElement("input",{type:"text",className:"jp-WorkspaceSelector-input",placeholder:c.__("Search workspace"),value:r,onChange:e=>a(e.target.value),autoFocus:true,"aria-autocomplete":"list",role:"combobox"})),w().createElement("ul",{className:"jp-WorkspaceSelector-list",role:"listbox","aria-label":c.__("Workspace")},h.map((t=>w().createElement("li",{key:t,className:"jp-WorkspaceSelector-item",onClick:()=>{if(t===e)return;n(t);o(false)}},w().createElement(_.LabIcon.resolveReact,{icon:t===e?_.checkIcon:_.blankIcon}),t.length>12?`${t.slice(0,12)}...`:t))))))};class x extends _.ReactWidget{constructor(e){super();this.id="jp-workspace-top-indicator";this._identifiers=e.identifiers;this._openWorkspace=e.openWorkspace;this._currentWorkspace=e.currentWorkspace;this._translator=e.translator;e.model.refreshed.connect((()=>{this._identifiers=e.model.identifiers;this.update()}))}render(){return w().createElement(C,{currentWorkspace:this._currentWorkspace,identifiers:this._identifiers,openWorkspace:this._openWorkspace,translator:this._translator})}}var S=n(84739);const k={id:"@jupyterlab/workspaces-extension:model",description:"Provides a model for available workspaces.",provides:i.IWorkspacesModel,autoStart:true,activate:e=>new i.WorkspacesModel({manager:e.serviceManager.workspaces})};const j={id:"@jupyterlab/workspaces-extension:menu",description:'Populates "File" main menu with Workspaces submenu.',requires:[i.IWorkspaceCommands],autoStart:true,activate:()=>{}};const I="@jupyterlab/workspaces-extension:indicator";const E="workspace-indicator:toggle";const T={id:I,description:"Adds a workspace indicator element at topbar",requires:[i.IWorkspacesModel,i.IWorkspaceCommands,o.IWindowResolver,d.ITranslator,S.ISettingRegistry,o.IToolbarWidgetRegistry],autoStart:true,activate:async(e,t,n,i,s,o,r)=>{const a=s.load("jupyterlab");const l=async t=>{await e.commands.execute(n.open,{workspace:t})};const d=new x({currentWorkspace:i.name,identifiers:t.identifiers,openWorkspace:l,model:t,translator:s});r.addFactory("TopBar","workspaceIndicator",(()=>d));e.commands.addCommand(E,{label:a.__("Show Workspace Indicator"),isToggled:()=>d.isVisible,execute:async()=>{const e=await o.get("@jupyterlab/application-extension:top-bar","toolbar");if(Array.isArray(e.composite)){const t=e.composite.map((e=>{if(e.name==="workspaceIndicator"){return{...e,disabled:!e.disabled}}return e}));await o.set("@jupyterlab/application-extension:top-bar","toolbar",t)}}})}};const M=[k,g,b,j,T];const D=M},75591:(e,t,n)=>{"use strict";var i=n(40662);var s=n(97913);var o=n(3579);var r=n(39063);var a=n(94780);var l=n(85072);var d=n.n(l);var c=n(97825);var h=n.n(c);var u=n(77659);var p=n.n(u);var m=n(55056);var g=n.n(m);var f=n(10540);var v=n.n(f);var _=n(41113);var b=n.n(_);var y=n(52680);var w={};w.styleTagTransform=b();w.setAttributes=g();w.insert=p().bind(null,"head");w.domAPI=h();w.insertStyleElement=v();var C=d()(y.A,w);const x=y.A&&y.A.locals?y.A.locals:undefined},33352:(e,t,n)=>{"use strict";n.r(t);n.d(t,{IWorkspaceCommands:()=>l,IWorkspacesModel:()=>d,WorkspacesModel:()=>r});var i=n(26568);var s=n(2336);const o=1e4;class r{constructor(e){var t;this._refreshed=new s.Signal(this);this._isDisposed=false;this._workspaceData={ids:[],values:[]};this._manager=e.manager;const n=e.refreshInterval||o;this._poll=new i.Poll({auto:(t=e.auto)!==null&&t!==void 0?t:true,name:"@jupyterlab/workspaces:Model",factory:()=>this._fetchList(),frequency:{interval:n,backoff:true,max:300*1e3},standby:e.refreshStandby||"when-hidden"})}get workspaces(){return this._workspaceData.values}get identifiers(){return this._workspaceData.ids}async create(e){await this._manager.save(e,{metadata:{id:e},data:{}});await this.refresh()}get refreshed(){return this._refreshed}async refresh(){await this._poll.refresh();await this._poll.tick}async rename(e,t){const n=await this._manager.fetch(e);n.metadata.id=t;await this._manager.save(t,n);await this._manager.remove(e);await this.refresh()}async reset(e){const t=await this._manager.fetch(e);t.data={};await this._manager.save(e,t);await this.refresh()}async remove(e){await this._manager.remove(e);await this.refresh()}async saveAs(e,t){const n=await this._manager.fetch(e);n.metadata.id=t;await this._manager.save(t,n);await this.refresh()}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;this._poll.dispose();s.Signal.clearData(this)}async _fetchList(){this._workspaceData=await this._manager.list();this._refreshed.emit(void 0)}}var a=n(5592);const l=new a.Token("@jupyterlab/workspaces:IWorkspaceCommands","Provides identifiers of workspace commands.");const d=new a.Token("@jupyterlab/workspaces:IWorkspacesModel","Provides a model for available workspaces.")},56588:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ArrayExt:()=>i,StringExt:()=>I,chain:()=>s,each:()=>g,empty:()=>o,enumerate:()=>r,every:()=>f,filter:()=>a,find:()=>l,findIndex:()=>d,map:()=>_,max:()=>h,min:()=>c,minmax:()=>u,once:()=>x,range:()=>b,reduce:()=>w,repeat:()=>C,retro:()=>S,some:()=>v,stride:()=>j,take:()=>E,toArray:()=>p,toObject:()=>m,topologicSort:()=>k,zip:()=>T});var i;(function(e){function t(e,t,n=0,i=-1){let s=e.length;if(s===0){return-1}if(n<0){n=Math.max(0,n+s)}else{n=Math.min(n,s-1)}if(i<0){i=Math.max(0,i+s)}else{i=Math.min(i,s-1)}let o;if(i0){let i=a>>1;let s=r+i;if(n(e[s],t)<0){r=s+1;a-=i+1}else{a=i}}return r}e.lowerBound=a;function l(e,t,n,i=0,s=-1){let o=e.length;if(o===0){return 0}if(i<0){i=Math.max(0,i+o)}else{i=Math.min(i,o-1)}if(s<0){s=Math.max(0,s+o)}else{s=Math.min(s,o-1)}let r=i;let a=s-i+1;while(a>0){let i=a>>1;let s=r+i;if(n(e[s],t)>0){a=i}else{r=s+1;a-=i+1}}return r}e.upperBound=l;function d(e,t,n){if(e===t){return true}if(e.length!==t.length){return false}for(let i=0,s=e.length;i=o){n=s<0?o-1:o}if(i===undefined){i=s<0?-1:o}else if(i<0){i=Math.max(i+o,s<0?-1:0)}else if(i>=o){i=s<0?o-1:o}let r;if(s<0&&i>=n||s>0&&n>=i){r=0}else if(s<0){r=Math.floor((i-n+1)/s+1)}else{r=Math.floor((i-n-1)/s+1)}let a=[];for(let l=0;l=i){return}let o=i-n+1;if(t>0){t=t%o}else if(t<0){t=(t%o+o)%o}if(t===0){return}let r=n+t;u(e,n,r-1);u(e,r,i);u(e,n,i)}e.rotate=p;function m(e,t,n=0,i=-1){let s=e.length;if(s===0){return}if(n<0){n=Math.max(0,n+s)}else{n=Math.min(n,s-1)}if(i<0){i=Math.max(0,i+s)}else{i=Math.min(i,s-1)}let o;if(it;--s){e[s]=e[s-1]}e[t]=n}e.insert=g;function f(e,t){let n=e.length;if(t<0){t+=n}if(t<0||t>=n){return undefined}let i=e[t];for(let s=t+1;s=n&&r<=i&&e[r]===t){o++}else if(i=n)&&e[r]===t){o++}else if(o>0){e[r-o]=e[r]}}if(o>0){e.length=s-o}return o}e.removeAllOf=b;function y(e,t,n=0,s=-1){let o;let r=i(e,t,n,s);if(r!==-1){o=f(e,r)}return{index:r,value:o}}e.removeFirstWhere=y;function w(e,t,n=-1,i=0){let o;let r=s(e,t,n,i);if(r!==-1){o=f(e,r)}return{index:r,value:o}}e.removeLastWhere=w;function C(e,t,n=0,i=-1){let s=e.length;if(s===0){return 0}if(n<0){n=Math.max(0,n+s)}else{n=Math.min(n,s-1)}if(i<0){i=Math.max(0,i+s)}else{i=Math.min(i,s-1)}let o=0;for(let r=0;r=n&&r<=i&&t(e[r],r)){o++}else if(i=n)&&t(e[r],r)){o++}else if(o>0){e[r-o]=e[r]}}if(o>0){e.length=s-o}return o}e.removeAllWhere=C})(i||(i={}));function*s(...e){for(const t of e){yield*t}}function*o(){return}function*r(e,t=0){for(const n of e){yield[t++,n]}}function*a(e,t){let n=0;for(const i of e){if(t(i,n++)){yield i}}}function l(e,t){let n=0;for(const i of e){if(t(i,n++)){return i}}return undefined}function d(e,t){let n=0;for(const i of e){if(t(i,n++)){return n-1}}return-1}function c(e,t){let n=undefined;for(const i of e){if(n===undefined){n=i;continue}if(t(i,n)<0){n=i}}return n}function h(e,t){let n=undefined;for(const i of e){if(n===undefined){n=i;continue}if(t(i,n)>0){n=i}}return n}function u(e,t){let n=true;let i;let s;for(const o of e){if(n){i=o;s=o;n=false}else if(t(o,i)<0){i=o}else if(t(o,s)>0){s=o}}return n?undefined:[i,s]}function p(e){return Array.from(e)}function m(e){const t={};for(const[n,i]of e){t[n]=i}return t}function g(e,t){let n=0;for(const i of e){if(false===t(i,n++)){return}}}function f(e,t){let n=0;for(const i of e){if(false===t(i,n++)){return false}}return true}function v(e,t){let n=0;for(const i of e){if(t(i,n++)){return true}}return false}function*_(e,t){let n=0;for(const i of e){yield t(i,n++)}}function*b(e,t,n){if(t===undefined){t=e;e=0;n=1}else if(n===undefined){n=1}const i=y.rangeLength(e,t,n);for(let s=0;st&&n>0){return 0}if(e-1;t--){yield e[t]}}}function k(e){let t=[];let n=new Set;let i=new Map;for(const r of e){s(r)}for(const[r]of i){o(r)}return t;function s(e){let[t,n]=e;let s=i.get(n);if(s){s.push(t)}else{i.set(n,[t])}}function o(e){if(n.has(e)){return}n.add(e);let s=i.get(e);if(s){for(const e of s){o(e)}}t.push(e)}}function*j(e,t){let n=0;for(const i of e){if(0===n++%t){yield i}}}var I;(function(e){function t(e,t,n=0){let i=new Array(t.length);for(let s=0,o=n,r=t.length;st?1:0}e.cmp=o})(I||(I={}));function*E(e,t){if(t<1){return}const n=e[Symbol.iterator]();let i;while(0e[Symbol.iterator]()));let n=t.map((e=>e.next()));for(;f(n,(e=>!e.done));n=t.map((e=>e.next()))){yield n.map((e=>e.value))}}},86397:(e,t,n)=>{"use strict";n.r(t);n.d(t,{Application:()=>d});var i=n(93247);var s=n.n(i);var o=n(5592);var r=n.n(o);var a=n(1143);var l=n.n(a);class d{constructor(e){var t;this._delegate=new o.PromiseDelegate;this._started=false;this._bubblingKeydown=false;this.pluginRegistry=(t=e.pluginRegistry)!==null&&t!==void 0?t:new o.PluginRegistry(e);this.pluginRegistry.application=this;this.commands=new i.CommandRegistry;this.contextMenu=new a.ContextMenu({commands:this.commands,renderer:e.contextMenuRenderer});this.shell=e.shell}get deferredPlugins(){return this.pluginRegistry.deferredPlugins}get started(){return this._delegate.promise}async activateDeferredPlugins(){await this.pluginRegistry.activatePlugins("defer")}async activatePlugin(e){return this.pluginRegistry.activatePlugin(e)}async deactivatePlugin(e){return this.pluginRegistry.deactivatePlugin(e)}deregisterPlugin(e,t){this.pluginRegistry.deregisterPlugin(e,t)}getPluginDescription(e){return this.pluginRegistry.getPluginDescription(e)}hasPlugin(e){return this.pluginRegistry.hasPlugin(e)}isPluginActivated(e){return this.pluginRegistry.isPluginActivated(e)}listPlugins(){return this.pluginRegistry.listPlugins()}registerPlugin(e){this.pluginRegistry.registerPlugin(e)}registerPlugins(e){this.pluginRegistry.registerPlugins(e)}async resolveOptionalService(e){return this.pluginRegistry.resolveOptionalService(e)}async resolveRequiredService(e){return this.pluginRegistry.resolveRequiredService(e)}async start(e={}){var t,n;if(this._started){return this._delegate.promise}this._started=true;this._bubblingKeydown=(t=e.bubblingKeydown)!==null&&t!==void 0?t:false;const i=(n=e.hostID)!==null&&n!==void 0?n:"";await this.pluginRegistry.activatePlugins("startUp",e);this.attachShell(i);this.addEventListeners();this._delegate.resolve()}handleEvent(e){switch(e.type){case"resize":this.evtResize(e);break;case"keydown":this.evtKeydown(e);break;case"keyup":this.evtKeyup(e);break;case"contextmenu":this.evtContextMenu(e);break}}attachShell(e){a.Widget.attach(this.shell,e&&document.getElementById(e)||document.body)}addEventListeners(){document.addEventListener("contextmenu",this);document.addEventListener("keydown",this,!this._bubblingKeydown);document.addEventListener("keyup",this,!this._bubblingKeydown);window.addEventListener("resize",this)}evtKeydown(e){this.commands.processKeydownEvent(e)}evtKeyup(e){this.commands.processKeyupEvent(e)}evtContextMenu(e){if(e.shiftKey){return}if(this.contextMenu.open(e)){e.preventDefault();e.stopPropagation()}}evtResize(e){this.shell.update()}}},893:(e,t,n)=>{"use strict";n.r(t);n.d(t,{CommandRegistry:()=>g});var i=n(34236);var s=n.n(i);var o=n(5592);var r=n.n(o);var a=n(90044);var l=n.n(a);var d=n(76326);var c=n.n(d);var h=n(77162);var u=n.n(h);var p=n(2336);var m=n.n(p);class g{constructor(){this._timerID=0;this._timerModifierID=0;this._replaying=false;this._keystrokes=[];this._keydownEvents=[];this._keyBindings=[];this._exactKeyMatch=null;this._commands=new Map;this._commandChanged=new p.Signal(this);this._commandExecuted=new p.Signal(this);this._keyBindingChanged=new p.Signal(this);this._holdKeyBindingPromises=new Map}get commandChanged(){return this._commandChanged}get commandExecuted(){return this._commandExecuted}get keyBindingChanged(){return this._keyBindingChanged}get keyBindings(){return this._keyBindings}listCommands(){return Array.from(this._commands.keys())}hasCommand(e){return this._commands.has(e)}addCommand(e,t){if(this._commands.has(e)){throw new Error(`Command '${e}' already registered.`)}this._commands.set(e,f.createCommand(t));this._commandChanged.emit({id:e,type:"added"});return new a.DisposableDelegate((()=>{this._commands.delete(e);this._commandChanged.emit({id:e,type:"removed"})}))}notifyCommandChanged(e){if(e!==undefined&&!this._commands.has(e)){throw new Error(`Command '${e}' is not registered.`)}this._commandChanged.emit({id:e,type:e?"changed":"many-changed"})}describedBy(e,t=o.JSONExt.emptyObject){var n;let i=this._commands.get(e);return Promise.resolve((n=i===null||i===void 0?void 0:i.describedBy.call(undefined,t))!==null&&n!==void 0?n:{args:null})}label(e,t=o.JSONExt.emptyObject){var n;let i=this._commands.get(e);return(n=i===null||i===void 0?void 0:i.label.call(undefined,t))!==null&&n!==void 0?n:""}mnemonic(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.mnemonic.call(undefined,t):-1}icon(e,t=o.JSONExt.emptyObject){var n;return(n=this._commands.get(e))===null||n===void 0?void 0:n.icon.call(undefined,t)}iconClass(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.iconClass.call(undefined,t):""}iconLabel(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.iconLabel.call(undefined,t):""}caption(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.caption.call(undefined,t):""}usage(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.usage.call(undefined,t):""}className(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.className.call(undefined,t):""}dataset(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.dataset.call(undefined,t):{}}isEnabled(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.isEnabled.call(undefined,t):false}isToggled(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.isToggled.call(undefined,t):false}isToggleable(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.isToggleable:false}isVisible(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.isVisible.call(undefined,t):false}execute(e,t=o.JSONExt.emptyObject){let n=this._commands.get(e);if(!n){return Promise.reject(new Error(`Command '${e}' not registered.`))}let i;try{i=n.execute.call(undefined,t)}catch(r){i=Promise.reject(r)}let s=Promise.resolve(i);this._commandExecuted.emit({id:e,args:t,result:s});return s}addKeyBinding(e){let t=f.createKeyBinding(e);this._keyBindings.push(t);this._keyBindingChanged.emit({binding:t,type:"added"});return new a.DisposableDelegate((()=>{i.ArrayExt.removeFirstOf(this._keyBindings,t);this._keyBindingChanged.emit({binding:t,type:"removed"})}))}processKeydownEvent(e){if(e.defaultPrevented||this._replaying){return}const t=g.keystrokeForKeydownEvent(e);if(!t){this._replayKeydownEvents();this._clearPendingState();return}if(g.isModifierKeyPressed(e)){let{exact:n}=f.matchKeyBinding(this._keyBindings,[t],e);if(n){e.preventDefault();e.stopPropagation();this._startModifierTimer(n)}else{this._clearModifierTimer()}return}this._keystrokes.push(t);const{exact:n,partial:i}=f.matchKeyBinding(this._keyBindings,this._keystrokes,e);const s=i.length!==0;if(!n&&!s){this._replayKeydownEvents();this._clearPendingState();return}if((n===null||n===void 0?void 0:n.preventDefault)||i.some((e=>e.preventDefault))){e.preventDefault();e.stopPropagation()}this._keydownEvents.push(e);if(n&&!s){this._executeKeyBinding(n);this._clearPendingState();return}if(n){this._exactKeyMatch=n}this._startTimer()}holdKeyBindingExecution(e,t){this._holdKeyBindingPromises.set(e,t)}processKeyupEvent(e){this._clearModifierTimer()}_startModifierTimer(e){this._clearModifierTimer();this._timerModifierID=window.setTimeout((()=>{this._executeKeyBinding(e)}),f.modifierkeyTimeOut)}_clearModifierTimer(){if(this._timerModifierID!==0){clearTimeout(this._timerModifierID);this._timerModifierID=0}}_startTimer(){this._clearTimer();this._timerID=window.setTimeout((()=>{this._onPendingTimeout()}),f.CHORD_TIMEOUT)}_clearTimer(){if(this._timerID!==0){clearTimeout(this._timerID);this._timerID=0}}_replayKeydownEvents(){if(this._keydownEvents.length===0){return}this._replaying=true;this._keydownEvents.forEach(f.replayKeyEvent);this._replaying=false}async _executeKeyBinding(e){if(this._holdKeyBindingPromises.size!==0){const e=[...this._keydownEvents];const t=(await Promise.race([Promise.all(e.map((async e=>{var t;return(t=this._holdKeyBindingPromises.get(e))!==null&&t!==void 0?t:Promise.resolve(true)}))),new Promise((e=>{setTimeout((()=>e([false])),f.KEYBINDING_HOLD_TIMEOUT)}))])).every(Boolean);this._holdKeyBindingPromises.clear();if(!t){return}}let{command:t,args:n}=e;let i={_luminoEvent:{type:"keybinding",keys:e.keys},...n};if(!this.hasCommand(t)||!this.isEnabled(t,i)){let n=this.hasCommand(t)?"enabled":"registered";let i=e.keys.join(", ");let s=`Cannot execute key binding '${i}':`;let o=`command '${t}' is not ${n}.`;console.warn(`${s} ${o}`);return}await this.execute(t,i)}_clearPendingState(){this._clearTimer();this._clearModifierTimer();this._exactKeyMatch=null;this._keystrokes.length=0;this._keydownEvents.length=0}_onPendingTimeout(){this._timerID=0;if(this._exactKeyMatch){this._executeKeyBinding(this._exactKeyMatch)}else{this._replayKeydownEvents()}this._clearPendingState()}}(function(e){function t(e){let t="";let n=false;let i=false;let s=false;let o=false;for(let r of e.split(/\s+/)){if(r==="Accel"){if(d.Platform.IS_MAC){i=true}else{s=true}}else if(r==="Alt"){n=true}else if(r==="Cmd"){i=true}else if(r==="Ctrl"){s=true}else if(r==="Shift"){o=true}else if(r.length>0){t=r}}return{cmd:i,ctrl:s,alt:n,shift:o,key:t}}e.parseKeystroke=t;function n(e){let n="";let i=t(e);if(i.ctrl){n+="Ctrl "}if(i.alt){n+="Alt "}if(i.shift){n+="Shift "}if(i.cmd&&d.Platform.IS_MAC){n+="Cmd "}if(!i.key){return n.trim()}return n+i.key}e.normalizeKeystroke=n;function i(e){let t;if(d.Platform.IS_WIN){t=e.winKeys||e.keys}else if(d.Platform.IS_MAC){t=e.macKeys||e.keys}else{t=e.linuxKeys||e.keys}return t.map(n)}e.normalizeKeys=i;function s(e){return typeof e==="string"?n(e):e.map(n).join(", ");function n(e){let n=[];let i=d.Platform.IS_MAC?" ":"+";let s=t(e);if(s.ctrl){n.push("Ctrl")}if(s.alt){n.push("Alt")}if(s.shift){n.push("Shift")}if(d.Platform.IS_MAC&&s.cmd){n.push("Cmd")}n.push(s.key);return n.map(f.formatKey).join(i)}}e.formatKeystroke=s;function o(e){let t=(0,h.getKeyboardLayout)();let n=t.keyForKeydownEvent(e);return t.isModifierKey(n)}e.isModifierKeyPressed=o;function r(e){let t=(0,h.getKeyboardLayout)();let n=t.keyForKeydownEvent(e);let i=[];if(e.ctrlKey){i.push("Ctrl")}if(e.altKey){i.push("Alt")}if(e.shiftKey){i.push("Shift")}if(e.metaKey&&d.Platform.IS_MAC){i.push("Cmd")}if(!t.isModifierKey(n)){i.push(n)}return i.join(" ")}e.keystrokeForKeydownEvent=r})(g||(g={}));var f;(function(e){e.CHORD_TIMEOUT=1e3;e.KEYBINDING_HOLD_TIMEOUT=1e3;e.modifierkeyTimeOut=500;function t(e){return{execute:e.execute,describedBy:v(typeof e.describedBy==="function"?e.describedBy:{args:null,...e.describedBy},(()=>({args:null}))),label:v(e.label,c),mnemonic:v(e.mnemonic,h),icon:v(e.icon,f),iconClass:v(e.iconClass,c),iconLabel:v(e.iconLabel,c),caption:v(e.caption,c),usage:v(e.usage,c),className:v(e.className,c),dataset:v(e.dataset,m),isEnabled:e.isEnabled||u,isToggled:e.isToggled||p,isToggleable:e.isToggleable||!!e.isToggled,isVisible:e.isVisible||u}}e.createCommand=t;function n(e){var t;return{keys:g.normalizeKeys(e),selector:_(e),command:e.command,args:e.args||o.JSONExt.emptyObject,preventDefault:(t=e.preventDefault)!==null&&t!==void 0?t:true}}e.createKeyBinding=n;function i(e,t,n){let i=null;let s=[];let o=Infinity;let r=0;for(let a=0,l=e.length;ao){continue}let u=d.Selector.calculateSpecificity(l.selector);if(!i||h=r){i=l;o=h;r=u}}return{exact:i,partial:s}}e.matchKeyBinding=i;function s(e){e.target.dispatchEvent(w(e))}e.replayKeyEvent=s;function r(e){if(d.Platform.IS_MAC){return a.hasOwnProperty(e)?a[e]:e}else{return l.hasOwnProperty(e)?l[e]:e}}e.formatKey=r;const a={Backspace:"⌫",Tab:"⇥",Enter:"⏎",Shift:"⇧",Ctrl:"⌃",Alt:"⌥",Escape:"⎋",PageUp:"⇞",PageDown:"⇟",End:"↘",Home:"↖",ArrowLeft:"←",ArrowUp:"↑",ArrowRight:"→",ArrowDown:"↓",Delete:"⌦",Cmd:"⌘"};const l={Escape:"Esc",PageUp:"Page Up",PageDown:"Page Down",ArrowLeft:"Left",ArrowUp:"Up",ArrowRight:"Right",ArrowDown:"Down",Delete:"Del"};const c=()=>"";const h=()=>-1;const u=()=>true;const p=()=>false;const m=()=>({});const f=()=>undefined;function v(e,t){if(e===undefined){return t}if(typeof e==="function"){return e}return()=>e}function _(e){if(e.selector.indexOf(",")!==-1){throw new Error(`Selector cannot contain commas: ${e.selector}`)}if(!d.Selector.isValid(e.selector)){throw new Error(`Invalid selector: ${e.selector}`)}return e.selector}function b(e,t){if(e.lengtht.length){return 2}return 1}function y(e,t){let n=t.target;let i=t.currentTarget;for(let s=0;n!==null;n=n.parentElement,++s){if(n.hasAttribute("data-lm-suppress-shortcuts")){return-1}if(d.Selector.matches(n,e)){return s}if(n===i){return-1}}return-1}function w(e){let t=document.createEvent("Event");let n=e.bubbles||true;let i=e.cancelable||true;t.initEvent(e.type||"keydown",n,i);t.key=e.key||"";t.keyCode=e.keyCode||0;t.which=e.keyCode||0;t.ctrlKey=e.ctrlKey||false;t.altKey=e.altKey||false;t.shiftKey=e.shiftKey||false;t.metaKey=e.metaKey||false;t.view=e.view||window;return t}})(f||(f={}))},45899:function(e,t,n){(function(e,i){true?i(t,n(34236)):0})(this,(function(e,t){"use strict";e.JSONExt=void 0;(function(e){e.emptyObject=Object.freeze({});e.emptyArray=Object.freeze([]);function t(e){return e===null||typeof e==="boolean"||typeof e==="number"||typeof e==="string"}e.isPrimitive=t;function n(e){return Array.isArray(e)}e.isArray=n;function i(e){return!t(e)&&!n(e)}e.isObject=i;function s(e,i){if(e===i){return true}if(t(e)||t(i)){return false}let s=n(e);let o=n(i);if(s!==o){return false}if(s&&o){return r(e,i)}return a(e,i)}e.deepEqual=s;function o(e){if(t(e)){return e}if(n(e)){return l(e)}return d(e)}e.deepCopy=o;function r(e,t){if(e===t){return true}if(e.length!==t.length){return false}for(let n=0,i=e.length;ntrue;this._plugins=new Map;this._services=new Map;if(e.validatePlugin){console.info("Plugins may be rejected by the custom validation plugin method.");this._validatePlugin=e.validatePlugin}}get application(){return this._application}set application(e){if(this._application!==null){throw Error("PluginRegistry.application is already set. It cannot be overridden.")}this._application=e}get deferredPlugins(){return Array.from(this._plugins).filter((([e,t])=>t.autoStart==="defer")).map((([e,t])=>e))}getPluginDescription(e){var t,n;return(n=(t=this._plugins.get(e))===null||t===void 0?void 0:t.description)!==null&&n!==void 0?n:""}hasPlugin(e){return this._plugins.has(e)}isPluginActivated(e){var t,n;return(n=(t=this._plugins.get(e))===null||t===void 0?void 0:t.activated)!==null&&n!==void 0?n:false}listPlugins(){return Array.from(this._plugins.keys())}registerPlugin(e){if(this._plugins.has(e.id)){throw new TypeError(`Plugin '${e.id}' is already registered.`)}if(!this._validatePlugin(e)){throw new Error(`Plugin '${e.id}' is not valid.`)}const t=s.createPluginData(e);s.ensureNoCycle(t,this._plugins,this._services);if(t.provides){this._services.set(t.provides,t.id)}this._plugins.set(t.id,t)}registerPlugins(e){for(const t of e){this.registerPlugin(t)}}deregisterPlugin(e,t){const n=this._plugins.get(e);if(!n){return}if(n.activated&&!t){throw new Error(`Plugin '${e}' is still active.`)}this._plugins.delete(e)}async activatePlugin(e){const t=this._plugins.get(e);if(!t){throw new ReferenceError(`Plugin '${e}' is not registered.`)}if(t.activated){return}if(t.promise){return t.promise}const n=t.requires.map((e=>this.resolveRequiredService(e)));const i=t.optional.map((e=>this.resolveOptionalService(e)));t.promise=Promise.all([...n,...i]).then((e=>t.activate.apply(undefined,[this.application,...e]))).then((e=>{t.service=e;t.activated=true;t.promise=null})).catch((e=>{t.promise=null;throw e}));return t.promise}async activatePlugins(e,t={}){switch(e){case"defer":{const e=this.deferredPlugins.filter((e=>this._plugins.get(e).autoStart)).map((e=>this.activatePlugin(e)));await Promise.all(e);break}case"startUp":{const e=s.collectStartupPlugins(this._plugins,t);const n=e.map((async e=>{try{return await this.activatePlugin(e)}catch(t){console.error(`Plugin '${e}' failed to activate.`,t)}}));await Promise.all(n);break}}}async deactivatePlugin(e){const t=this._plugins.get(e);if(!t){throw new ReferenceError(`Plugin '${e}' is not registered.`)}if(!t.activated){return[]}if(!t.deactivate){throw new TypeError(`Plugin '${e}'#deactivate() method missing`)}const n=s.findDependents(e,this._plugins,this._services);const i=n.map((e=>this._plugins.get(e)));for(const s of i){if(!s.deactivate){throw new TypeError(`Plugin ${s.id}#deactivate() method missing (depends on ${e})`)}}for(const s of i){const e=[...s.requires,...s.optional].map((e=>{const t=this._services.get(e);return t?this._plugins.get(t).service:null}));await s.deactivate(this.application,...e);s.service=null;s.activated=false}n.pop();return n}async resolveRequiredService(e){const t=this._services.get(e);if(!t){throw new TypeError(`No provider for: ${e.name}.`)}const n=this._plugins.get(t);if(!n.activated){await this.activatePlugin(t)}return n.service}async resolveOptionalService(e){const t=this._services.get(e);if(!t){return null}const n=this._plugins.get(t);if(!n.activated){try{await this.activatePlugin(t)}catch(i){console.error(i);return null}}return n.service}}var s;(function(e){class n{constructor(e){var t,n,i,s;this._activated=false;this._promise=null;this._service=null;this.id=e.id;this.description=(t=e.description)!==null&&t!==void 0?t:"";this.activate=e.activate;this.deactivate=(n=e.deactivate)!==null&&n!==void 0?n:null;this.provides=(i=e.provides)!==null&&i!==void 0?i:null;this.autoStart=(s=e.autoStart)!==null&&s!==void 0?s:false;this.requires=e.requires?e.requires.slice():[];this.optional=e.optional?e.optional.slice():[]}get activated(){return this._activated}set activated(e){this._activated=e}get service(){return this._service}set service(e){this._service=e}get promise(){return this._promise}set promise(e){this._promise=e}}function i(e){return new n(e)}e.createPluginData=i;function s(e,t,n){const i=[...e.requires,...e.optional];const s=i=>{if(i===e.provides){return true}const r=n.get(i);if(!r){return false}const a=t.get(r);const l=[...a.requires,...a.optional];if(l.length===0){return false}o.push(r);if(l.some(s)){return true}o.pop();return false};if(!e.provides||i.length===0){return}const o=[e.id];if(i.some(s)){throw new ReferenceError(`Cycle detected: ${o.join(" -> ")}.`)}}e.ensureNoCycle=s;function o(e,n,i){const s=new Array;const o=e=>{const t=n.get(e);const o=[...t.requires,...t.optional];s.push(...o.reduce(((t,n)=>{const s=i.get(n);if(s){t.push([e,s])}return t}),[]))};for(const t of n.keys()){o(t)}const r=s.filter((t=>t[1]===e));let a=0;while(r.length>a){const e=r.length;const t=new Set(r.map((e=>e[0])));for(const n of t){s.filter((e=>e[1]===n)).forEach((e=>{if(!r.includes(e)){r.push(e)}}))}a=e}const l=t.topologicSort(r);const d=l.findIndex((t=>t===e));if(d===-1){return[e]}return l.slice(0,d+1)}e.findDependents=o;function r(e,t){const n=new Set;for(const i of e.keys()){if(e.get(i).autoStart===true){n.add(i)}}if(t.startPlugins){for(const e of t.startPlugins){n.add(e)}}if(t.ignorePlugins){for(const e of t.ignorePlugins){n.delete(e)}}return Array.from(n)}e.collectStartupPlugins=r})(s||(s={}));class o{constructor(){this.promise=new Promise(((e,t)=>{this._resolve=e;this._reject=t}))}resolve(e){let t=this._resolve;t(e)}reject(e){let t=this._reject;t(e)}}class r{constructor(e,t){this.name=e;this.description=t!==null&&t!==void 0?t:"";this._tokenStructuralPropertyT=null}}function a(e){let t=0;for(let n=0,i=e.length;n>>0}e[n]=t&255;t>>>=8}}e.Random=void 0;(function(e){e.getRandomValues=(()=>{const e=typeof window!=="undefined"&&(window.crypto||window.msCrypto)||null;if(e&&typeof e.getRandomValues==="function"){return function t(n){return e.getRandomValues(n)}}return a})()})(e.Random||(e.Random={}));function l(e){const t=new Uint8Array(16);const n=new Array(256);for(let i=0;i<16;++i){n[i]="0"+i.toString(16)}for(let i=16;i<256;++i){n[i]=i.toString(16)}return function i(){e(t);t[6]=64|t[6]&15;t[8]=128|t[8]&63;return n[t[0]]+n[t[1]]+n[t[2]]+n[t[3]]+"-"+n[t[4]]+n[t[5]]+"-"+n[t[6]]+n[t[7]]+"-"+n[t[8]]+n[t[9]]+"-"+n[t[10]]+n[t[11]]+n[t[12]]+n[t[13]]+n[t[14]]+n[t[15]]}}e.UUID=void 0;(function(t){t.uuid4=l(e.Random.getRandomValues)})(e.UUID||(e.UUID={}));e.MimeData=n;e.PluginRegistry=i;e.PromiseDelegate=o;e.Token=r}))},20785:(e,t,n)=>{"use strict";n.r(t);n.d(t,{DisposableDelegate:()=>o,DisposableSet:()=>a,ObservableDisposableDelegate:()=>r,ObservableDisposableSet:()=>l});var i=n(2336);var s=n.n(i);class o{constructor(e){this._fn=e}get isDisposed(){return!this._fn}dispose(){if(!this._fn){return}let e=this._fn;this._fn=null;e()}}class r extends o{constructor(){super(...arguments);this._disposed=new i.Signal(this)}get disposed(){return this._disposed}dispose(){if(this.isDisposed){return}super.dispose();this._disposed.emit(undefined);i.Signal.clearData(this)}}class a{constructor(){this._isDisposed=false;this._items=new Set}get isDisposed(){return this._isDisposed}dispose(){if(this._isDisposed){return}this._isDisposed=true;this._items.forEach((e=>{e.dispose()}));this._items.clear()}contains(e){return this._items.has(e)}add(e){this._items.add(e)}remove(e){this._items.delete(e)}clear(){this._items.clear()}}(function(e){function t(t){let n=new e;for(const e of t){n.add(e)}return n}e.from=t})(a||(a={}));class l extends a{constructor(){super(...arguments);this._disposed=new i.Signal(this)}get disposed(){return this._disposed}dispose(){if(this.isDisposed){return}super.dispose();this._disposed.emit(undefined);i.Signal.clearData(this)}}(function(e){function t(t){let n=new e;for(const e of t){n.add(e)}return n}e.from=t})(l||(l={}))},60008:(e,t,n)=>{"use strict";n.r(t);n.d(t,{ClipboardExt:()=>i,ElementExt:()=>s,Platform:()=>o,Selector:()=>r});var i;(function(e){function t(e){const t=document.body;const n=i=>{i.preventDefault();i.stopPropagation();i.clipboardData.setData("text",e);t.removeEventListener("copy",n,true)};t.addEventListener("copy",n,true);document.execCommand("copy")}e.copyText=t})(i||(i={}));var s;(function(e){function t(e){let t=window.getComputedStyle(e);let n=parseFloat(t.borderTopWidth)||0;let i=parseFloat(t.borderLeftWidth)||0;let s=parseFloat(t.borderRightWidth)||0;let o=parseFloat(t.borderBottomWidth)||0;let r=parseFloat(t.paddingTop)||0;let a=parseFloat(t.paddingLeft)||0;let l=parseFloat(t.paddingRight)||0;let d=parseFloat(t.paddingBottom)||0;let c=i+a+l+s;let h=n+r+d+o;return{borderTop:n,borderLeft:i,borderRight:s,borderBottom:o,paddingTop:r,paddingLeft:a,paddingRight:l,paddingBottom:d,horizontalSum:c,verticalSum:h}}e.boxSizing=t;function n(e){let t=window.getComputedStyle(e);let n=parseFloat(t.minWidth)||0;let i=parseFloat(t.minHeight)||0;let s=parseFloat(t.maxWidth)||Infinity;let o=parseFloat(t.maxHeight)||Infinity;s=Math.max(n,s);o=Math.max(i,o);return{minWidth:n,minHeight:i,maxWidth:s,maxHeight:o}}e.sizeLimits=n;function i(e,t,n){let i=e.getBoundingClientRect();return t>=i.left&&t=i.top&&n=n.bottom){return}if(i.topn.bottom&&i.height>=n.height){e.scrollTop-=n.top-i.top;return}if(i.topn.height){e.scrollTop-=n.bottom-i.bottom;return}if(i.bottom>n.bottom&&i.height{let e=Element.prototype;return e.matches||e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector||function(e){let t=this;let n=t.ownerDocument?t.ownerDocument.querySelectorAll(e):[];return Array.prototype.indexOf.call(n,t)!==-1}})();function t(e){e=e.split(",",1)[0];let t=0;let c=0;let h=0;function u(t){let n=e.match(t);if(n===null){return false}e=e.slice(n[0].length);return true}e=e.replace(d," $1 ");while(e.length>0){if(u(n)){t++;continue}if(u(i)){c++;continue}if(u(s)){c++;continue}if(u(r)){h++;continue}if(u(a)){c++;continue}if(u(o)){h++;continue}if(u(l)){continue}return 0}t=Math.min(t,255);c=Math.min(c,255);h=Math.min(h,255);return t<<16|c<<8|h}e.calculateSingle=t;const n=/^#[^\s\+>~#\.\[:]+/;const i=/^\.[^\s\+>~#\.\[:]+/;const s=/^\[[^\]]+\]/;const o=/^[^\s\+>~#\.\[:]+/;const r=/^(::[^\s\+>~#\.\[:]+|:first-line|:first-letter|:before|:after)/;const a=/^:[^\s\+>~#\.\[:]+/;const l=/^[\s\+>~\*]+/;const d=/:not\(([^\)]+)\)/g})(a||(a={}))},1506:(e,t,n)=>{"use strict";n.r(t);n.d(t,{Drag:()=>o});var i=n(90044);var s=n.n(i);class o{constructor(e){this._onScrollFrame=()=>{if(!this._scrollTarget){return}let{element:e,edge:t,distance:n}=this._scrollTarget;let i=r.SCROLL_EDGE_SIZE-n;let s=Math.pow(i/r.SCROLL_EDGE_SIZE,2);let o=Math.max(1,Math.round(s*r.SCROLL_EDGE_SIZE));switch(t){case"top":e.scrollTop-=o;break;case"left":e.scrollLeft-=o;break;case"right":e.scrollLeft+=o;break;case"bottom":e.scrollTop+=o;break}requestAnimationFrame(this._onScrollFrame)};this._disposed=false;this._dropAction="none";this._override=null;this._currentTarget=null;this._currentElement=null;this._promise=null;this._scrollTarget=null;this._resolve=null;this.document=e.document||document;this.mimeData=e.mimeData;this.dragImage=e.dragImage||null;this.proposedAction=e.proposedAction||"copy";this.supportedActions=e.supportedActions||"all";this.source=e.source||null}dispose(){if(this._disposed){return}this._disposed=true;if(this._currentTarget){let e=new PointerEvent("pointerup",{bubbles:true,cancelable:true,clientX:-1,clientY:-1});r.dispatchDragLeave(this,this._currentTarget,null,e)}this._finalize("none")}get isDisposed(){return this._disposed}start(e,t){if(this._disposed){return Promise.resolve("none")}if(this._promise){return this._promise}this._addListeners();this._attachDragImage(e,t);this._promise=new Promise((e=>{this._resolve=e}));let n=new PointerEvent("pointermove",{bubbles:true,cancelable:true,clientX:e,clientY:t});document.dispatchEvent(n);return this._promise}handleEvent(e){switch(e.type){case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;default:e.preventDefault();e.stopPropagation();break}}moveDragImage(e,t){if(!this.dragImage){return}let n=this.dragImage.style;n.transform=`translate(${e}px, ${t}px)`}_evtPointerMove(e){e.preventDefault();e.stopPropagation();this._updateCurrentTarget(e);this._updateDragScroll(e);this.moveDragImage(e.clientX,e.clientY)}_evtPointerUp(e){e.preventDefault();e.stopPropagation();if(e.button!==0){return}this._updateCurrentTarget(e);if(!this._currentTarget){this._finalize("none");return}if(this._dropAction==="none"){r.dispatchDragLeave(this,this._currentTarget,null,e);this._finalize("none");return}let t=r.dispatchDrop(this,this._currentTarget,e);this._finalize(t)}_evtKeyDown(e){e.preventDefault();e.stopPropagation();if(e.keyCode===27){this.dispose()}}_addListeners(){document.addEventListener("pointerdown",this,true);document.addEventListener("pointermove",this,true);document.addEventListener("pointerup",this,true);document.addEventListener("pointerenter",this,true);document.addEventListener("pointerleave",this,true);document.addEventListener("pointerover",this,true);document.addEventListener("pointerout",this,true);document.addEventListener("keydown",this,true);document.addEventListener("keyup",this,true);document.addEventListener("keypress",this,true);document.addEventListener("contextmenu",this,true)}_removeListeners(){document.removeEventListener("pointerdown",this,true);document.removeEventListener("pointermove",this,true);document.removeEventListener("pointerup",this,true);document.removeEventListener("pointerenter",this,true);document.removeEventListener("pointerleave",this,true);document.removeEventListener("pointerover",this,true);document.removeEventListener("pointerout",this,true);document.removeEventListener("keydown",this,true);document.removeEventListener("keyup",this,true);document.removeEventListener("keypress",this,true);document.removeEventListener("contextmenu",this,true)}_updateDragScroll(e){let t=r.findScrollTarget(e);if(!this._scrollTarget&&!t){return}if(!this._scrollTarget){setTimeout(this._onScrollFrame,500)}this._scrollTarget=t}_updateCurrentTarget(e){let t=this._currentTarget;let n=this._currentTarget;let i=this._currentElement;let s=r.findElementBehindBackdrop(e,this.document);this._currentElement=s;if(s!==i&&s!==n){r.dispatchDragExit(this,n,s,e)}if(s!==i&&s!==n){n=r.dispatchDragEnter(this,s,n,e)}if(n!==t){this._currentTarget=n;r.dispatchDragLeave(this,t,n,e)}let o=r.dispatchDragOver(this,n,e);this._setDropAction(o)}_attachDragImage(e,t){if(!this.dragImage){return}this.dragImage.classList.add("lm-mod-drag-image");let n=this.dragImage.style;n.pointerEvents="none";n.position="fixed";n.transform=`translate(${e}px, ${t}px)`;const i=this.document instanceof Document?this.document.body:this.document.firstElementChild;i.appendChild(this.dragImage)}_detachDragImage(){if(!this.dragImage){return}let e=this.dragImage.parentNode;if(!e){return}e.removeChild(this.dragImage)}_setDropAction(e){e=r.validateAction(e,this.supportedActions);if(this._override&&this._dropAction===e){return}switch(e){case"none":this._dropAction=e;this._override=o.overrideCursor("no-drop",this.document);break;case"copy":this._dropAction=e;this._override=o.overrideCursor("copy",this.document);break;case"link":this._dropAction=e;this._override=o.overrideCursor("alias",this.document);break;case"move":this._dropAction=e;this._override=o.overrideCursor("move",this.document);break}}_finalize(e){let t=this._resolve;this._removeListeners();this._detachDragImage();if(this._override){this._override.dispose();this._override=null}this.mimeData.clear();this._disposed=true;this._dropAction="none";this._currentTarget=null;this._currentElement=null;this._scrollTarget=null;this._promise=null;this._resolve=null;if(t){t(e)}}}(function(e){class t extends DragEvent{constructor(e,t){super(t.type,{bubbles:true,cancelable:true,altKey:e.altKey,button:e.button,clientX:e.clientX,clientY:e.clientY,ctrlKey:e.ctrlKey,detail:0,metaKey:e.metaKey,relatedTarget:t.related,screenX:e.screenX,screenY:e.screenY,shiftKey:e.shiftKey,view:window});const{drag:n}=t;this.dropAction="none";this.mimeData=n.mimeData;this.proposedAction=n.proposedAction;this.supportedActions=n.supportedActions;this.source=n.source}}e.Event=t;function n(e,t=document){return r.overrideCursor(e,t)}e.overrideCursor=n})(o||(o={}));var r;(function(e){e.SCROLL_EDGE_SIZE=20;function t(e,t){return p[e]&m[t]?e:"none"}e.validateAction=t;function n(t,n=document){if(t){if(s&&t==s.event){return s.element}e.cursorBackdrop.style.zIndex="-1000";const i=n.elementFromPoint(t.clientX,t.clientY);e.cursorBackdrop.style.zIndex="";s={event:t,element:i};return i}else{const t=e.cursorBackdrop.style.transform;if(r&&t===r.transform){return r.element}const i=e.cursorBackdrop.getBoundingClientRect();e.cursorBackdrop.style.zIndex="-1000";const s=n.elementFromPoint(i.left+i.width/2,i.top+i.height/2);e.cursorBackdrop.style.zIndex="";r={transform:t,element:s};return s}}e.findElementBehindBackdrop=n;let s=null;let r=null;function a(t){let i=t.clientX;let s=t.clientY;let o=n(t);for(;o;o=o.parentElement){if(!o.hasAttribute("data-lm-dragscroll")){continue}let t=0;let n=0;if(o===document.body){t=window.pageXOffset;n=window.pageYOffset}let r=o.getBoundingClientRect();let a=r.top+n;let l=r.left+t;let d=l+r.width;let c=a+r.height;if(i=d||s=c){continue}let h=i-l+1;let u=s-a+1;let p=d-i;let m=c-s;let g=Math.min(h,u,p,m);if(g>e.SCROLL_EDGE_SIZE){continue}let f;switch(g){case m:f="bottom";break;case u:f="top";break;case p:f="right";break;case h:f="left";break;default:throw"unreachable"}let v=o.scrollWidth-o.clientWidth;let _=o.scrollHeight-o.clientHeight;let b;switch(f){case"top":b=_>0&&o.scrollTop>0;break;case"left":b=v>0&&o.scrollLeft>0;break;case"right":b=v>0&&o.scrollLeft0&&o.scrollTop<_;break;default:throw"unreachable"}if(!b){continue}return{element:o,edge:f,distance:g}}return null}e.findScrollTarget=a;function l(e,t,n,i){if(!t){return null}let s=new o.Event(i,{drag:e,related:n,type:"lm-dragenter"});let r=!t.dispatchEvent(s);if(r){return t}const a=e.document instanceof Document?e.document.body:e.document.firstElementChild;if(t===a){return n}s=new o.Event(i,{drag:e,related:n,type:"lm-dragenter"});a.dispatchEvent(s);return a}e.dispatchDragEnter=l;function d(e,t,n,i){if(!t){return}let s=new o.Event(i,{drag:e,related:n,type:"lm-dragexit"});t.dispatchEvent(s)}e.dispatchDragExit=d;function c(e,t,n,i){if(!t){return}let s=new o.Event(i,{drag:e,related:n,type:"lm-dragleave"});t.dispatchEvent(s)}e.dispatchDragLeave=c;function h(e,t,n){if(!t){return"none"}let i=new o.Event(n,{drag:e,related:null,type:"lm-dragover"});let s=!t.dispatchEvent(i);if(s){return i.dropAction}return"none"}e.dispatchDragOver=h;function u(e,t,n){if(!t){return"none"}let i=new o.Event(n,{drag:e,related:null,type:"lm-drop"});let s=!t.dispatchEvent(i);if(s){return i.dropAction}return"none"}e.dispatchDrop=u;const p={none:0,copy:1,link:2,move:4};const m={none:p["none"],copy:p["copy"],link:p["link"],move:p["move"],"copy-link":p["copy"]|p["link"],"copy-move":p["copy"]|p["move"],"link-move":p["link"]|p["move"],all:p["copy"]|p["link"]|p["move"]};function g(t,n=document){let s=++w;const o=n instanceof Document?n.body:n.firstElementChild;if(!e.cursorBackdrop.isConnected){e.cursorBackdrop.style.transform="scale(0)";o.appendChild(e.cursorBackdrop);_();document.addEventListener("pointermove",f,{capture:true,passive:true});e.cursorBackdrop.addEventListener("scroll",v,{capture:true,passive:true})}e.cursorBackdrop.style.cursor=t;return new i.DisposableDelegate((()=>{if(s===w&&e.cursorBackdrop.isConnected){document.removeEventListener("pointermove",f,true);e.cursorBackdrop.removeEventListener("scroll",v,true);o.removeChild(e.cursorBackdrop)}}))}e.overrideCursor=g;function f(t){if(!e.cursorBackdrop){return}e.cursorBackdrop.style.transform=`translate(${t.clientX}px, ${t.clientY}px)`}function v(t){if(!e.cursorBackdrop){return}let i=n();if(!i){return}const s=i.closest("[data-lm-dragscroll]");if(!s){return}s.scrollTop+=e.cursorBackdrop.scrollTop-b;s.scrollLeft+=e.cursorBackdrop.scrollLeft-b;_()}function _(){e.cursorBackdrop.scrollTop=b;e.cursorBackdrop.scrollLeft=b}const b=500;function y(){const e=document.createElement("div");e.classList.add("lm-cursor-backdrop");return e}let w=0;e.cursorBackdrop=y()})(r||(r={}))},38457:(e,t,n)=>{"use strict";var i=n(85072);var s=n.n(i);var o=n(97825);var r=n.n(o);var a=n(77659);var l=n.n(a);var d=n(55056);var c=n.n(d);var h=n(10540);var u=n.n(h);var p=n(41113);var m=n.n(p);var g=n(91266);var f={};f.styleTagTransform=m();f.setAttributes=c();f.insert=l().bind(null,"head");f.domAPI=r();f.insertStyleElement=u();var v=s()(g.A,f);const _=g.A&&g.A.locals?g.A.locals:undefined},72996:(e,t,n)=>{"use strict";n.r(t);n.d(t,{EN_US:()=>r,KeycodeLayout:()=>o,getKeyboardLayout:()=>i,setKeyboardLayout:()=>s});function i(){return a.keyboardLayout}function s(e){a.keyboardLayout=e}class o{constructor(e,t,n=[]){this.name=e;this._codes=t;this._keys=o.extractKeys(t);this._modifierKeys=o.convertToKeySet(n)}keys(){return Object.keys(this._keys)}isValidKey(e){return e in this._keys}isModifierKey(e){return e in this._modifierKeys}keyForKeydownEvent(e){return this._codes[e.keyCode]||""}}(function(e){function t(e){let t=Object.create(null);for(let n in e){t[e[n]]=true}return t}e.extractKeys=t;function n(e){let t=Object(null);for(let n=0,i=e.length;n{"use strict";n.r(t);n.d(t,{ConflatableMessage:()=>a,Message:()=>r,MessageLoop:()=>l});var i=n(34236);class s{constructor(){this._first=null;this._last=null;this._size=0}get isEmpty(){return this._size===0}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:undefined}get last(){return this._last?this._last.value:undefined}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;while(e){yield e.value;e=e.next}}*retro(){let e=this._last;while(e){yield e.value;e=e.prev}}*nodes(){let e=this._first;while(e){yield e;e=e.next}}*retroNodes(){let e=this._last;while(e){yield e;e=e.prev}}assign(e){this.clear();for(const t of e){this.addLast(t)}}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new o.LinkedListNode(this,e);if(!this._first){this._first=t;this._last=t}else{t.next=this._first;this._first.prev=t;this._first=t}this._size++;return t}addLast(e){let t=new o.LinkedListNode(this,e);if(!this._last){this._first=t;this._last=t}else{t.prev=this._last;this._last.next=t;this._last=t}this._size++;return t}insertBefore(e,t){if(!t||t===this._first){return this.addFirst(e)}if(!(t instanceof o.LinkedListNode)||t.list!==this){throw new Error("Reference node is not owned by the list.")}let n=new o.LinkedListNode(this,e);let i=t;let s=i.prev;n.next=i;n.prev=s;i.prev=n;s.next=n;this._size++;return n}insertAfter(e,t){if(!t||t===this._last){return this.addLast(e)}if(!(t instanceof o.LinkedListNode)||t.list!==this){throw new Error("Reference node is not owned by the list.")}let n=new o.LinkedListNode(this,e);let i=t;let s=i.next;n.next=s;n.prev=i;i.next=n;s.prev=n;this._size++;return n}removeFirst(){let e=this._first;if(!e){return undefined}if(e===this._last){this._first=null;this._last=null}else{this._first=e.next;this._first.prev=null}e.list=null;e.next=null;e.prev=null;this._size--;return e.value}removeLast(){let e=this._last;if(!e){return undefined}if(e===this._first){this._first=null;this._last=null}else{this._last=e.prev;this._last.next=null}e.list=null;e.next=null;e.prev=null;this._size--;return e.value}removeNode(e){if(!(e instanceof o.LinkedListNode)||e.list!==this){throw new Error("Node is not owned by the list.")}let t=e;if(t===this._first&&t===this._last){this._first=null;this._last=null}else if(t===this._first){this._first=t.next;this._first.prev=null}else if(t===this._last){this._last=t.prev;this._last.next=null}else{t.next.prev=t.prev;t.prev.next=t.next}t.list=null;t.next=null;t.prev=null;this._size--}clear(){let e=this._first;while(e){let t=e.next;e.list=null;e.prev=null;e.next=null;e=t}this._first=null;this._last=null;this._size=0}}(function(e){function t(t){let n=new e;n.assign(t);return n}e.from=t})(s||(s={}));var o;(function(e){class t{constructor(e,t){this.list=null;this.next=null;this.prev=null;this.list=e;this.value=t}}e.LinkedListNode=t})(o||(o={}));class r{constructor(e){this.type=e}get isConflatable(){return false}conflate(e){return false}}class a extends r{get isConflatable(){return true}conflate(e){return true}}var l;(function(e){let t=null;const n=(e=>t=>{let n=false;e.then((()=>!n&&t()));return()=>{n=true}})(Promise.resolve());function o(e,t){let n=m.get(e);if(!n||n.length===0){b(e,t);return}let s=(0,i.every)((0,i.retro)(n),(n=>n?_(n,e,t):true));if(s){b(e,t)}}e.sendMessage=o;function r(e,t){if(!t.isConflatable){y(e,t);return}let n=(0,i.some)(p,(n=>{if(n.handler!==e){return false}if(!n.msg){return false}if(n.msg.type!==t.type){return false}if(!n.msg.isConflatable){return false}return n.msg.conflate(t)}));if(!n){y(e,t)}}e.postMessage=r;function a(e,t){let n=m.get(e);if(n&&n.indexOf(t)!==-1){return}if(!n){m.set(e,[t])}else{n.push(t)}}e.installMessageHook=a;function l(e,t){let n=m.get(e);if(!n){return}let i=n.indexOf(t);if(i===-1){return}n[i]=null;C(n)}e.removeMessageHook=l;function d(e){let t=m.get(e);if(t&&t.length>0){i.ArrayExt.fill(t,null);C(t)}for(const n of p){if(n.handler===e){n.handler=null;n.msg=null}}}e.clearData=d;function c(){if(v||t===null){return}t();t=null;v=true;w();v=false}e.flush=c;function h(){return f}e.getExceptionHandler=h;function u(e){let t=f;f=e;return t}e.setExceptionHandler=u;const p=new s;const m=new WeakMap;const g=new Set;let f=e=>{console.error(e)};let v=false;function _(e,t,n){let i=true;try{if(typeof e==="function"){i=e(t,n)}else{i=e.messageHook(t,n)}}catch(s){f(s)}return i}function b(e,t){try{e.processMessage(t)}catch(n){f(n)}}function y(e,i){p.addLast({handler:e,msg:i});if(t!==null){return}t=n(w)}function w(){t=null;if(p.isEmpty){return}let e={handler:null,msg:null};p.addLast(e);while(true){let t=p.removeFirst();if(t===e){return}if(t.handler&&t.msg){o(t.handler,t.msg)}}}function C(e){if(g.size===0){n(x)}g.add(e)}function x(){g.forEach(S);g.clear()}function S(e){i.ArrayExt.removeAllWhere(e,k)}function k(e){return e===null}})(l||(l={}))},68534:(e,t,n)=>{"use strict";n.r(t);n.d(t,{Debouncer:()=>c,Poll:()=>a,RateLimiter:()=>d,Throttler:()=>h});var i=n(5592);var s=n.n(i);var o=n(2336);var r=n.n(o);class a{constructor(e){var t;this._disposed=new o.Signal(this);this._lingered=0;this._tick=new i.PromiseDelegate;this._ticked=new o.Signal(this);this._factory=e.factory;this._linger=(t=e.linger)!==null&&t!==void 0?t:l.DEFAULT_LINGER;this._standby=e.standby||l.DEFAULT_STANDBY;this._state={...l.DEFAULT_STATE,timestamp:(new Date).getTime()};const n=e.frequency||{};const s=Math.max(n.interval||0,n.max||0,l.DEFAULT_FREQUENCY.max);this.frequency={...l.DEFAULT_FREQUENCY,...n,...{max:s}};this.name=e.name||l.DEFAULT_NAME;if("auto"in e?e.auto:true){setTimeout((()=>this.start()))}}get disposed(){return this._disposed}get frequency(){return this._frequency}set frequency(e){if(this.isDisposed||i.JSONExt.deepEqual(e,this.frequency||{})){return}let{backoff:t,interval:n,max:s}=e;n=Math.round(n);s=Math.round(s);if(typeof t==="number"&&t<1){throw new Error("Poll backoff growth factor must be at least 1")}if((n<0||n>s)&&n!==a.NEVER){throw new Error("Poll interval must be between 0 and max")}if(s>a.MAX_INTERVAL&&s!==a.NEVER){throw new Error(`Max interval must be less than ${a.MAX_INTERVAL}`)}this._frequency={backoff:t,interval:n,max:s}}get isDisposed(){return this.state.phase==="disposed"}get standby(){return this._standby}set standby(e){if(this.isDisposed||this.standby===e){return}this._standby=e}get state(){return this._state}get tick(){return this._tick.promise}get ticked(){return this._ticked}async*[Symbol.asyncIterator](){while(!this.isDisposed){yield this.state;await this.tick.catch((()=>undefined))}}dispose(){if(this.isDisposed){return}this._state={...l.DISPOSED_STATE,timestamp:(new Date).getTime()};this._tick.promise.catch((e=>undefined));this._tick.reject(new Error(`Poll (${this.name}) is disposed.`));this._disposed.emit(undefined);o.Signal.clearData(this)}refresh(){return this.schedule({cancel:({phase:e})=>e==="refreshed",interval:a.IMMEDIATE,phase:"refreshed"})}async schedule(e={}){if(this.isDisposed){return}if(e.cancel&&e.cancel(this.state)){return}const t=this._tick;const n=new i.PromiseDelegate;const s={interval:this.frequency.interval,payload:null,phase:"standby",timestamp:(new Date).getTime(),...e};this._state=s;this._tick=n;clearTimeout(this._timeout);this._ticked.emit(this.state);t.resolve(this);await t.promise;if(s.interval===a.NEVER){this._timeout=undefined;return}const o=()=>{if(this.isDisposed||this.tick!==n.promise){return}this._execute()};this._timeout=setTimeout(o,s.interval)}start(){return this.schedule({cancel:({phase:e})=>e!=="constructed"&&e!=="standby"&&e!=="stopped",interval:a.IMMEDIATE,phase:"started"})}stop(){return this.schedule({cancel:({phase:e})=>e==="stopped",interval:a.NEVER,phase:"stopped"})}get hidden(){return l.hidden}_execute(){let e=typeof this.standby==="function"?this.standby():this.standby;if(e==="never"){e=false}else if(e==="when-hidden"){if(this.hidden){e=++this._lingered>this._linger}else{this._lingered=0;e=false}}if(e){void this.schedule();return}const t=this.tick;this._factory(this.state).then((e=>{if(this.isDisposed||this.tick!==t){return}void this.schedule({payload:e,phase:this.state.phase==="rejected"?"reconnected":"resolved"})})).catch((e=>{if(this.isDisposed||this.tick!==t){return}void this.schedule({interval:l.sleep(this.frequency,this.state),payload:e,phase:"rejected"})}))}}(function(e){e.IMMEDIATE=0;e.MAX_INTERVAL=2147483647;e.NEVER=Infinity})(a||(a={}));var l;(function(e){e.DEFAULT_BACKOFF=3;e.DEFAULT_FREQUENCY={backoff:true,interval:1e3,max:30*1e3};e.DEFAULT_LINGER=1;e.DEFAULT_NAME="unknown";e.DEFAULT_STANDBY="when-hidden";e.DEFAULT_STATE={interval:a.NEVER,payload:null,phase:"constructed",timestamp:new Date(0).getTime()};e.DISPOSED_STATE={interval:a.NEVER,payload:null,phase:"disposed",timestamp:new Date(0).getTime()};function t(t,i){const{backoff:s,interval:o,max:r}=t;if(o===a.NEVER){return o}const l=s===true?e.DEFAULT_BACKOFF:s===false?1:s;const d=n(o,i.interval*l);return Math.min(r,d)}e.sleep=t;e.hidden=(()=>{if(typeof document==="undefined"){return false}document.addEventListener("visibilitychange",(()=>{e.hidden=document.visibilityState==="hidden"}));document.addEventListener("pagehide",(()=>{e.hidden=document.visibilityState==="hidden"}));return document.visibilityState==="hidden"})();function n(e,t){e=Math.ceil(e);t=Math.floor(t);return Math.floor(Math.random()*(t-e+1))+e}})(l||(l={}));class d{constructor(e,t=500){this.args=undefined;this.payload=null;this.limit=t;this.poll=new a({auto:false,factory:async()=>{const{args:t}=this;this.args=undefined;return e(...t)},frequency:{backoff:false,interval:a.NEVER,max:a.NEVER},standby:"never"});this.payload=new i.PromiseDelegate;this.poll.ticked.connect(((e,t)=>{const{payload:n}=this;if(t.phase==="resolved"){this.payload=new i.PromiseDelegate;n.resolve(t.payload);return}if(t.phase==="rejected"||t.phase==="stopped"){this.payload=new i.PromiseDelegate;n.promise.catch((e=>undefined));n.reject(t.payload);return}}),this)}get isDisposed(){return this.payload===null}dispose(){if(this.isDisposed){return}this.args=undefined;this.payload=null;this.poll.dispose()}async stop(){return this.poll.stop()}}class c extends d{invoke(...e){this.args=e;void this.poll.schedule({interval:this.limit,phase:"invoked"});return this.payload.promise}}class h extends d{constructor(e,t){super(e,typeof t==="number"?t:t&&t.limit);this._trailing=false;if(typeof t!=="number"&&t&&t.edge==="trailing"){this._trailing=true}this._interval=this._trailing?this.limit:a.IMMEDIATE}invoke(...e){const t=this.poll.state.phase!=="invoked";if(t||this._trailing){this.args=e}if(t){void this.poll.schedule({interval:this._interval,phase:"invoked"})}return this.payload.promise}}},21628:(e,t,n)=>{"use strict";n.r(t);n.d(t,{AttachedProperty:()=>i});class i{constructor(e){this._pid=s.nextPID();this.name=e.name;this._create=e.create;this._coerce=e.coerce||null;this._compare=e.compare||null;this._changed=e.changed||null}get(e){let t;let n=s.ensureMap(e);if(this._pid in n){t=n[this._pid]}else{t=n[this._pid]=this._createValue(e)}return t}set(e,t){let n;let i=s.ensureMap(e);if(this._pid in i){n=i[this._pid]}else{n=i[this._pid]=this._createValue(e)}let o=this._coerceValue(e,t);this._maybeNotify(e,n,i[this._pid]=o)}coerce(e){let t;let n=s.ensureMap(e);if(this._pid in n){t=n[this._pid]}else{t=n[this._pid]=this._createValue(e)}let i=this._coerceValue(e,t);this._maybeNotify(e,t,n[this._pid]=i)}_createValue(e){let t=this._create;return t(e)}_coerceValue(e,t){let n=this._coerce;return n?n(e,t):t}_compareValue(e,t){let n=this._compare;return n?n(e,t):e===t}_maybeNotify(e,t,n){let i=this._changed;if(i&&!this._compareValue(t,n)){i(e,t,n)}}}(function(e){function t(e){s.ownerData.delete(e)}e.clearData=t})(i||(i={}));var s;(function(e){e.ownerData=new WeakMap;e.nextPID=(()=>{let e=0;return()=>{let t=Math.random();let n=`${t}`.slice(2);return`pid-${n}-${e++}`}})();function t(t){let n=e.ownerData.get(t);if(n){return n}n=Object.create(null);e.ownerData.set(t,n);return n}e.ensureMap=t})(s||(s={}))},96903:(e,t,n)=>{"use strict";n.r(t);n.d(t,{Signal:()=>a,Stream:()=>l});var i=n(34236);var s=n.n(i);var o=n(5592);var r=n.n(o);class a{constructor(e){this.sender=e}connect(e,t){return d.connect(this,e,t)}disconnect(e,t){return d.disconnect(this,e,t)}emit(e){d.emit(this,e)}}(function(e){function t(e,t){d.disconnectBetween(e,t)}e.disconnectBetween=t;function n(e){d.disconnectSender(e)}e.disconnectSender=n;function i(e){d.disconnectReceiver(e)}e.disconnectReceiver=i;function s(e){d.disconnectAll(e)}e.disconnectAll=s;function o(e){d.disconnectAll(e)}e.clearData=o;function r(){return d.exceptionHandler}e.getExceptionHandler=r;function a(e){let t=d.exceptionHandler;d.exceptionHandler=e;return t}e.setExceptionHandler=a})(a||(a={}));class l extends a{constructor(){super(...arguments);this._pending=new o.PromiseDelegate}async*[Symbol.asyncIterator](){let e=this._pending;while(true){try{const{args:t,next:n}=await e.promise;e=n;yield t}catch(t){return}}}emit(e){const t=this._pending;const n=this._pending=new o.PromiseDelegate;t.resolve({args:e,next:n});super.emit(e)}stop(){this._pending.promise.catch((()=>undefined));this._pending.reject("stop");this._pending=new o.PromiseDelegate}}var d;(function(e){e.exceptionHandler=e=>{console.error(e)};function t(e,t,n){n=n||undefined;let i=d.get(e.sender);if(!i){i=[];d.set(e.sender,i)}if(p(i,e,t,n)){return false}let s=n||t;let o=c.get(s);if(!o){o=[];c.set(s,o)}let r={signal:e,slot:t,thisArg:n};i.push(r);o.push(r);return true}e.connect=t;function n(e,t,n){n=n||undefined;let i=d.get(e.sender);if(!i||i.length===0){return false}let s=p(i,e,t,n);if(!s){return false}let o=n||t;let r=c.get(o);s.signal=null;g(i);g(r);return true}e.disconnect=n;function s(e,t){let n=d.get(e);if(!n||n.length===0){return}let i=c.get(t);if(!i||i.length===0){return}for(const s of i){if(!s.signal){continue}if(s.signal.sender===e){s.signal=null}}g(n);g(i)}e.disconnectBetween=s;function o(e){let t=d.get(e);if(!t||t.length===0){return}for(const n of t){if(!n.signal){continue}let e=n.thisArg||n.slot;n.signal=null;g(c.get(e))}g(t)}e.disconnectSender=o;function r(e){let t=c.get(e);if(!t||t.length===0){return}for(const n of t){if(!n.signal){continue}let e=n.signal.sender;n.signal=null;g(d.get(e))}g(t)}e.disconnectReceiver=r;function a(e){o(e);r(e)}e.disconnectAll=a;function l(e,t){let n=d.get(e.sender);if(!n||n.length===0){return}for(let i=0,s=n.length;i{let e=typeof requestAnimationFrame==="function";return e?requestAnimationFrame:setImmediate})();function p(e,t,n,s){return(0,i.find)(e,(e=>e.signal===t&&e.slot===n&&e.thisArg===s))}function m(t,n){let{signal:i,slot:s,thisArg:o}=t;try{s.call(o,i.sender,n)}catch(r){e.exceptionHandler(r)}}function g(e){if(h.size===0){u(f)}h.add(e)}function f(){h.forEach(v);h.clear()}function v(e){i.ArrayExt.removeAllWhere(e,_)}function _(e){return e.signal===null}})(d||(d={}))},57340:(e,t,n)=>{"use strict";n.r(t);n.d(t,{VirtualDOM:()=>c,VirtualElement:()=>r,VirtualElementPass:()=>a,VirtualText:()=>o,h:()=>l,hpass:()=>d});var i=n(34236);var s=n.n(i);class o{constructor(e){this.type="text";this.content=e}}class r{constructor(e,t,n,i){this.type="element";this.tag=e;this.attrs=t;this.children=n;this.renderer=i}}class a extends r{constructor(e,t,n){super(e,t,[],n||undefined)}}function l(e){let t={};let n;let i=[];for(let a=1,l=arguments.length;a3){throw new Error("hpass() should be called with 1, 2, or 3 arguments")}return new a(e,t,n)}var c;(function(e){function t(e){return h.createDOMNode(e)}e.realize=t;function n(e,t){let n=h.hostMap.get(t)||[];let i=h.asContentArray(e);h.hostMap.set(t,i);h.updateContent(t,n,i)}e.render=n})(c||(c={}));var h;(function(e){e.hostMap=new WeakMap;function t(e){if(!e){return[]}if(e instanceof Array){return e}return[e]}e.asContentArray=t;function n(e){let t=arguments[1]||null;const i=arguments[2]||null;if(t){t.insertBefore(n(e),i)}else{if(e.type==="text"){return document.createTextNode(e.content)}t=document.createElement(e.tag);a(t,e.attrs);if(e.renderer){e.renderer.render(t,{attrs:e.attrs,children:e.children});return t}for(let i=0,s=e.children.length;i=d.length){n(r[o],e);continue}let t=d[o];let h=r[o];if(t===h){c=c.nextSibling;continue}if(t.type==="text"&&h.type==="text"){if(c.textContent!==h.content){c.textContent=h.content}c=c.nextSibling;continue}if(t.type==="text"||h.type==="text"){i.ArrayExt.insert(d,o,h);n(h,e,c);continue}if(!t.renderer!=!h.renderer){i.ArrayExt.insert(d,o,h);n(h,e,c);continue}let u=h.attrs.key;if(u&&u in a){let n=a[u];if(n.vNode!==t){i.ArrayExt.move(d,d.indexOf(n.vNode,o+1),o);e.insertBefore(n.element,c);t=n.vNode;c=n.element}}if(t===h){c=c.nextSibling;continue}let p=t.attrs.key;if(p&&p!==u){i.ArrayExt.insert(d,o,h);n(h,e,c);continue}if(t.tag!==h.tag){i.ArrayExt.insert(d,o,h);n(h,e,c);continue}l(c,t.attrs,h.attrs);if(h.renderer){h.renderer.render(c,{attrs:h.attrs,children:h.children})}else{s(c,t.children,h.children)}c=c.nextSibling}o(e,d,h,true)}e.updateContent=s;function o(e,t,n,i){for(let s=t.length-1;s>=n;--s){const n=t[s];const r=i?e.lastChild:e.childNodes[s];if(n.type==="text");else if(n.renderer&&n.renderer.unrender){n.renderer.unrender(r,{attrs:n.attrs,children:n.children})}else{o(r,n.children,0,false)}if(i){e.removeChild(r)}}}const r={key:true,className:true,htmlFor:true,dataset:true,style:true};function a(e,t){for(let n in t){if(n in r){continue}if(n.substr(0,2)==="on"){e[n]=t[n]}else{e.setAttribute(n,t[n])}}if(t.className!==undefined){e.setAttribute("class",t.className)}if(t.htmlFor!==undefined){e.setAttribute("for",t.htmlFor)}if(t.dataset){d(e,t.dataset)}if(t.style){h(e,t.style)}}function l(e,t,n){if(t===n){return}let i;for(i in t){if(i in r||i in n){continue}if(i.substr(0,2)==="on"){e[i]=null}else{e.removeAttribute(i)}}for(i in n){if(i in r||t[i]===n[i]){continue}if(i.substr(0,2)==="on"){e[i]=n[i]}else{e.setAttribute(i,n[i])}}if(t.className!==n.className){if(n.className!==undefined){e.setAttribute("class",n.className)}else{e.removeAttribute("class")}}if(t.htmlFor!==n.htmlFor){if(n.htmlFor!==undefined){e.setAttribute("for",n.htmlFor)}else{e.removeAttribute("for")}}if(t.dataset!==n.dataset){c(e,t.dataset||{},n.dataset||{})}if(t.style!==n.style){u(e,t.style||{},n.style||{})}}function d(e,t){for(let n in t){e.setAttribute(`data-${n}`,t[n])}}function c(e,t,n){for(let i in t){if(!(i in n)){e.removeAttribute(`data-${i}`)}}for(let i in n){if(t[i]!==n[i]){e.setAttribute(`data-${i}`,n[i])}}}function h(e,t){let n=e.style;let i;for(i in t){n[i]=t[i]}}function u(e,t,n){let i=e.style;let s;for(s in t){if(!(s in n)){i[s]=""}}for(s in n){if(t[s]!==n[s]){i[s]=n[s]}}}function p(e,t){let n=e.firstChild;let i=Object.create(null);for(let s of t){if(s.type==="element"&&s.attrs.key){i[s.attrs.key]={vNode:s,element:n}}n=n.nextSibling}return i}})(h||(h={}))},14292:(e,t,n)=>{"use strict";n.r(t);n.d(t,{AccordionLayout:()=>B,AccordionPanel:()=>U,BoxEngine:()=>j,BoxLayout:()=>$,BoxPanel:()=>J,BoxSizer:()=>k,CommandPalette:()=>Y,ContextMenu:()=>ee,DockLayout:()=>oe,DockPanel:()=>ae,FocusTracker:()=>de,GridLayout:()=>ce,Layout:()=>M,LayoutItem:()=>D,Menu:()=>Q,MenuBar:()=>ue,Panel:()=>z,PanelLayout:()=>P,ScrollBar:()=>me,SingletonLayout:()=>fe,SplitLayout:()=>N,SplitPanel:()=>W,StackedLayout:()=>ve,StackedPanel:()=>_e,TabBar:()=>ie,TabPanel:()=>ye,Title:()=>I,Widget:()=>E});var i=n(34236);var s=n.n(i);var o=n(5592);var r=n.n(o);var a=n(76326);var l=n.n(a);var d=n(42856);var c=n.n(d);var h=n(94466);var u=n.n(h);var p=n(2336);var m=n.n(p);var g=n(10970);var f=n.n(g);var v=n(93247);var _=n.n(v);var b=n(97290);var y=n.n(b);var w=n(90044);var C=n.n(w);var x=n(77162);var S=n.n(x);class k{constructor(){this.sizeHint=0;this.minSize=0;this.maxSize=Infinity;this.stretch=1;this.size=0;this.done=false}}var j;(function(e){function t(e,t){let n=e.length;if(n===0){return t}let i=0;let s=0;let o=0;let r=0;let a=0;for(let c=0;c0){r+=t.stretch;a++}}if(t===o){return 0}if(t<=i){for(let t=0;t=s){for(let t=0;t0&&i>l){let t=i;let s=r;for(let o=0;o0&&i>l){let t=i/d;for(let s=0;s0&&i>l){let t=i;let s=r;for(let o=0;o=n.maxSize){i-=n.maxSize-n.size;r-=n.stretch;n.size=n.maxSize;n.done=true;d--;a--}else{i-=l;n.size+=l}}}while(d>0&&i>l){let t=i/d;for(let s=0;s=n.maxSize){i-=n.maxSize-n.size;n.size=n.maxSize;n.done=true;d--}else{i-=t;n.size+=t}}}}return 0}e.calc=t;function n(e,t,n){if(e.length===0||n===0){return}if(n>0){i(e,t,n)}else{s(e,t,-n)}}e.adjust=n;function i(e,t,n){let i=0;for(let a=0;a<=t;++a){let t=e[a];i+=t.maxSize-t.size}let s=0;for(let a=t+1,l=e.length;a=0&&o>0;--a){let t=e[a];let n=t.maxSize-t.size;if(n>=o){t.sizeHint=t.size+o;o=0}else{t.sizeHint=t.size+n;o-=n}}let r=n;for(let a=t+1,l=e.length;a0;++a){let t=e[a];let n=t.size-t.minSize;if(n>=r){t.sizeHint=t.size-r;r=0}else{t.sizeHint=t.size-n;r-=n}}}function s(e,t,n){let i=0;for(let a=t+1,l=e.length;a0;++a){let t=e[a];let n=t.maxSize-t.size;if(n>=o){t.sizeHint=t.size+o;o=0}else{t.sizeHint=t.size+n;o-=n}}let r=n;for(let a=t;a>=0&&r>0;--a){let t=e[a];let n=t.size-t.minSize;if(n>=r){t.sizeHint=t.size-r;r=0}else{t.sizeHint=t.size-n;r-=n}}}})(j||(j={}));class I{constructor(e){this._label="";this._caption="";this._mnemonic=-1;this._icon=undefined;this._iconClass="";this._iconLabel="";this._className="";this._closable=false;this._changed=new p.Signal(this);this._isDisposed=false;this.owner=e.owner;if(e.label!==undefined){this._label=e.label}if(e.mnemonic!==undefined){this._mnemonic=e.mnemonic}if(e.icon!==undefined){this._icon=e.icon}if(e.iconClass!==undefined){this._iconClass=e.iconClass}if(e.iconLabel!==undefined){this._iconLabel=e.iconLabel}if(e.caption!==undefined){this._caption=e.caption}if(e.className!==undefined){this._className=e.className}if(e.closable!==undefined){this._closable=e.closable}this._dataset=e.dataset||{}}get changed(){return this._changed}get label(){return this._label}set label(e){if(this._label===e){return}this._label=e;this._changed.emit(undefined)}get mnemonic(){return this._mnemonic}set mnemonic(e){if(this._mnemonic===e){return}this._mnemonic=e;this._changed.emit(undefined)}get icon(){return this._icon}set icon(e){if(this._icon===e){return}this._icon=e;this._changed.emit(undefined)}get iconClass(){return this._iconClass}set iconClass(e){if(this._iconClass===e){return}this._iconClass=e;this._changed.emit(undefined)}get iconLabel(){return this._iconLabel}set iconLabel(e){if(this._iconLabel===e){return}this._iconLabel=e;this._changed.emit(undefined)}get caption(){return this._caption}set caption(e){if(this._caption===e){return}this._caption=e;this._changed.emit(undefined)}get className(){return this._className}set className(e){if(this._className===e){return}this._className=e;this._changed.emit(undefined)}get closable(){return this._closable}set closable(e){if(this._closable===e){return}this._closable=e;this._changed.emit(undefined)}get dataset(){return this._dataset}set dataset(e){if(this._dataset===e){return}this._dataset=e;this._changed.emit(undefined)}get isDisposed(){return this._isDisposed}dispose(){if(this.isDisposed){return}this._isDisposed=true;p.Signal.clearData(this)}}class E{constructor(e={}){this._flags=0;this._layout=null;this._parent=null;this._disposed=new p.Signal(this);this._hiddenMode=E.HiddenMode.Display;this.node=T.createNode(e);this.addClass("lm-Widget")}dispose(){if(this.isDisposed){return}this.setFlag(E.Flag.IsDisposed);this._disposed.emit(undefined);if(this.parent){this.parent=null}else if(this.isAttached){E.detach(this)}if(this._layout){this._layout.dispose();this._layout=null}this.title.dispose();p.Signal.clearData(this);d.MessageLoop.clearData(this);h.AttachedProperty.clearData(this)}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(E.Flag.IsDisposed)}get isAttached(){return this.testFlag(E.Flag.IsAttached)}get isHidden(){return this.testFlag(E.Flag.IsHidden)}get isVisible(){let e=this;do{if(e.isHidden||!e.isAttached){return false}e=e.parent}while(e!=null);return true}get title(){return T.titleProperty.get(this)}get id(){return this.node.id}set id(e){this.node.id=e}get dataset(){return this.node.dataset}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode===e){return}if(this.isHidden){this._toggleHidden(false)}if(e==E.HiddenMode.Scale){this.node.style.willChange="transform"}else{this.node.style.willChange="auto"}this._hiddenMode=e;if(this.isHidden){this._toggleHidden(true)}}get parent(){return this._parent}set parent(e){if(this._parent===e){return}if(e&&this.contains(e)){throw new Error("Invalid parent widget.")}if(this._parent&&!this._parent.isDisposed){let e=new E.ChildMessage("child-removed",this);d.MessageLoop.sendMessage(this._parent,e)}this._parent=e;if(this._parent&&!this._parent.isDisposed){let e=new E.ChildMessage("child-added",this);d.MessageLoop.sendMessage(this._parent,e)}if(!this.isDisposed){d.MessageLoop.sendMessage(this,E.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout===e){return}if(this.testFlag(E.Flag.DisallowLayout)){throw new Error("Cannot set widget layout.")}if(this._layout){throw new Error("Cannot change widget layout.")}if(e.parent){throw new Error("Cannot change layout parent.")}this._layout=e;e.parent=this}*children(){if(this._layout){yield*this._layout}}contains(e){for(let t=e;t;t=t._parent){if(t===this){return true}}return false}hasClass(e){return this.node.classList.contains(e)}addClass(e){this.node.classList.add(e)}removeClass(e){this.node.classList.remove(e)}toggleClass(e,t){if(t===true){this.node.classList.add(e);return true}if(t===false){this.node.classList.remove(e);return false}return this.node.classList.toggle(e)}update(){d.MessageLoop.postMessage(this,E.Msg.UpdateRequest)}fit(){d.MessageLoop.postMessage(this,E.Msg.FitRequest)}activate(){d.MessageLoop.postMessage(this,E.Msg.ActivateRequest)}close(){d.MessageLoop.sendMessage(this,E.Msg.CloseRequest)}show(){if(!this.testFlag(E.Flag.IsHidden)){return}if(this.isAttached&&(!this.parent||this.parent.isVisible)){d.MessageLoop.sendMessage(this,E.Msg.BeforeShow)}this.clearFlag(E.Flag.IsHidden);this._toggleHidden(false);if(this.isAttached&&(!this.parent||this.parent.isVisible)){d.MessageLoop.sendMessage(this,E.Msg.AfterShow)}if(this.parent){let e=new E.ChildMessage("child-shown",this);d.MessageLoop.sendMessage(this.parent,e)}}hide(){if(this.testFlag(E.Flag.IsHidden)){return}if(this.isAttached&&(!this.parent||this.parent.isVisible)){d.MessageLoop.sendMessage(this,E.Msg.BeforeHide)}this.setFlag(E.Flag.IsHidden);this._toggleHidden(true);if(this.isAttached&&(!this.parent||this.parent.isVisible)){d.MessageLoop.sendMessage(this,E.Msg.AfterHide)}if(this.parent){let e=new E.ChildMessage("child-hidden",this);d.MessageLoop.sendMessage(this.parent,e)}}setHidden(e){if(e){this.hide()}else{this.show()}}testFlag(e){return(this._flags&e)!==0}setFlag(e){this._flags|=e}clearFlag(e){this._flags&=~e}processMessage(e){switch(e.type){case"resize":this.notifyLayout(e);this.onResize(e);break;case"update-request":this.notifyLayout(e);this.onUpdateRequest(e);break;case"fit-request":this.notifyLayout(e);this.onFitRequest(e);break;case"before-show":this.notifyLayout(e);this.onBeforeShow(e);break;case"after-show":this.setFlag(E.Flag.IsVisible);this.notifyLayout(e);this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e);this.onBeforeHide(e);break;case"after-hide":this.clearFlag(E.Flag.IsVisible);this.notifyLayout(e);this.onAfterHide(e);break;case"before-attach":this.notifyLayout(e);this.onBeforeAttach(e);break;case"after-attach":if(!this.isHidden&&(!this.parent||this.parent.isVisible)){this.setFlag(E.Flag.IsVisible)}this.setFlag(E.Flag.IsAttached);this.notifyLayout(e);this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e);this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(E.Flag.IsVisible);this.clearFlag(E.Flag.IsAttached);this.notifyLayout(e);this.onAfterDetach(e);break;case"activate-request":this.notifyLayout(e);this.onActivateRequest(e);break;case"close-request":this.notifyLayout(e);this.onCloseRequest(e);break;case"child-added":this.notifyLayout(e);this.onChildAdded(e);break;case"child-removed":this.notifyLayout(e);this.onChildRemoved(e);break;default:this.notifyLayout(e);break}}notifyLayout(e){if(this._layout){this._layout.processParentMessage(e)}}onCloseRequest(e){if(this.parent){this.parent=null}else if(this.isAttached){E.detach(this)}}onResize(e){}onUpdateRequest(e){}onFitRequest(e){}onActivateRequest(e){}onBeforeShow(e){}onAfterShow(e){}onBeforeHide(e){}onAfterHide(e){}onBeforeAttach(e){}onAfterAttach(e){}onBeforeDetach(e){}onAfterDetach(e){}onChildAdded(e){}onChildRemoved(e){}_toggleHidden(e){if(e){switch(this._hiddenMode){case E.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case E.HiddenMode.Scale:this.node.style.transform="scale(0)";this.node.setAttribute("aria-hidden","true");break;case E.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden";this.node.style.zIndex="-1";break}}else{switch(this._hiddenMode){case E.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case E.HiddenMode.Scale:this.node.style.transform="";this.node.removeAttribute("aria-hidden");break;case E.HiddenMode.ContentVisibility:this.node.style.contentVisibility="";this.node.style.zIndex="";break}}}}(function(e){(function(e){e[e["Display"]=0]="Display";e[e["Scale"]=1]="Scale";e[e["ContentVisibility"]=2]="ContentVisibility"})(e.HiddenMode||(e.HiddenMode={}));(function(e){e[e["IsDisposed"]=1]="IsDisposed";e[e["IsAttached"]=2]="IsAttached";e[e["IsHidden"]=4]="IsHidden";e[e["IsVisible"]=8]="IsVisible";e[e["DisallowLayout"]=16]="DisallowLayout"})(e.Flag||(e.Flag={}));(function(e){e.BeforeShow=new d.Message("before-show");e.AfterShow=new d.Message("after-show");e.BeforeHide=new d.Message("before-hide");e.AfterHide=new d.Message("after-hide");e.BeforeAttach=new d.Message("before-attach");e.AfterAttach=new d.Message("after-attach");e.BeforeDetach=new d.Message("before-detach");e.AfterDetach=new d.Message("after-detach");e.ParentChanged=new d.Message("parent-changed");e.UpdateRequest=new d.ConflatableMessage("update-request");e.FitRequest=new d.ConflatableMessage("fit-request");e.ActivateRequest=new d.ConflatableMessage("activate-request");e.CloseRequest=new d.ConflatableMessage("close-request")})(e.Msg||(e.Msg={}));class t extends d.Message{constructor(e,t){super(e);this.child=t}}e.ChildMessage=t;class n extends d.Message{constructor(e,t){super("resize");this.width=e;this.height=t}}e.ResizeMessage=n;(function(e){e.UnknownSize=new e(-1,-1)})(n=e.ResizeMessage||(e.ResizeMessage={}));function i(t,n,i=null){if(t.parent){throw new Error("Cannot attach a child widget.")}if(t.isAttached||t.node.isConnected){throw new Error("Widget is already attached.")}if(!n.isConnected){throw new Error("Host is not attached.")}d.MessageLoop.sendMessage(t,e.Msg.BeforeAttach);n.insertBefore(t.node,i);d.MessageLoop.sendMessage(t,e.Msg.AfterAttach)}e.attach=i;function s(t){if(t.parent){throw new Error("Cannot detach a child widget.")}if(!t.isAttached||!t.node.isConnected){throw new Error("Widget is not attached.")}d.MessageLoop.sendMessage(t,e.Msg.BeforeDetach);t.node.parentNode.removeChild(t.node);d.MessageLoop.sendMessage(t,e.Msg.AfterDetach)}e.detach=s})(E||(E={}));var T;(function(e){e.titleProperty=new h.AttachedProperty({name:"title",create:e=>new I({owner:e})});function t(e){return e.node||document.createElement(e.tag||"div")}e.createNode=t})(T||(T={}));class M{constructor(e={}){this._disposed=false;this._parent=null;this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null;this._disposed=true;p.Signal.clearData(this);h.AttachedProperty.clearData(this)}get isDisposed(){return this._disposed}get parent(){return this._parent}set parent(e){if(this._parent===e){return}if(this._parent){throw new Error("Cannot change parent widget.")}if(e.layout!==this){throw new Error("Invalid parent widget.")}this._parent=e;this.init()}get fitPolicy(){return this._fitPolicy}set fitPolicy(e){if(this._fitPolicy===e){return}this._fitPolicy=e;if(this._parent){let e=this._parent.node.style;e.minWidth="";e.minHeight="";e.maxWidth="";e.maxHeight="";this._parent.fit()}}processParentMessage(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e);break}}init(){for(const e of this){e.parent=this.parent}}onResize(e){for(const t of this){d.MessageLoop.sendMessage(t,E.ResizeMessage.UnknownSize)}}onUpdateRequest(e){for(const t of this){d.MessageLoop.sendMessage(t,E.ResizeMessage.UnknownSize)}}onBeforeAttach(e){for(const t of this){d.MessageLoop.sendMessage(t,e)}}onAfterAttach(e){for(const t of this){d.MessageLoop.sendMessage(t,e)}}onBeforeDetach(e){for(const t of this){d.MessageLoop.sendMessage(t,e)}}onAfterDetach(e){for(const t of this){d.MessageLoop.sendMessage(t,e)}}onBeforeShow(e){for(const t of this){if(!t.isHidden){d.MessageLoop.sendMessage(t,e)}}}onAfterShow(e){for(const t of this){if(!t.isHidden){d.MessageLoop.sendMessage(t,e)}}}onBeforeHide(e){for(const t of this){if(!t.isHidden){d.MessageLoop.sendMessage(t,e)}}}onAfterHide(e){for(const t of this){if(!t.isHidden){d.MessageLoop.sendMessage(t,e)}}}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}}(function(e){function t(e){return A.horizontalAlignmentProperty.get(e)}e.getHorizontalAlignment=t;function n(e,t){A.horizontalAlignmentProperty.set(e,t)}e.setHorizontalAlignment=n;function i(e){return A.verticalAlignmentProperty.get(e)}e.getVerticalAlignment=i;function s(e,t){A.verticalAlignmentProperty.set(e,t)}e.setVerticalAlignment=s})(M||(M={}));class D{constructor(e){this._top=NaN;this._left=NaN;this._width=NaN;this._height=NaN;this._minWidth=0;this._minHeight=0;this._maxWidth=Infinity;this._maxHeight=Infinity;this._disposed=false;this.widget=e;this.widget.node.style.position="absolute";this.widget.node.style.contain="strict"}dispose(){if(this._disposed){return}this._disposed=true;let e=this.widget.node.style;e.position="";e.top="";e.left="";e.width="";e.height="";e.contain=""}get minWidth(){return this._minWidth}get minHeight(){return this._minHeight}get maxWidth(){return this._maxWidth}get maxHeight(){return this._maxHeight}get isDisposed(){return this._disposed}get isHidden(){return this.widget.isHidden}get isVisible(){return this.widget.isVisible}get isAttached(){return this.widget.isAttached}fit(){let e=a.ElementExt.sizeLimits(this.widget.node);this._minWidth=e.minWidth;this._minHeight=e.minHeight;this._maxWidth=e.maxWidth;this._maxHeight=e.maxHeight}update(e,t,n,i){let s=Math.max(this._minWidth,Math.min(n,this._maxWidth));let o=Math.max(this._minHeight,Math.min(i,this._maxHeight));if(s"center",changed:t});e.verticalAlignmentProperty=new h.AttachedProperty({name:"verticalAlignment",create:()=>"top",changed:t});function t(e){if(e.parent&&e.parent.layout){e.parent.update()}}})(A||(A={}));class P extends M{constructor(){super(...arguments);this._widgets=[]}dispose(){while(this._widgets.length>0){this._widgets.pop().dispose()}super.dispose()}get widgets(){return this._widgets}*[Symbol.iterator](){yield*this._widgets}addWidget(e){this.insertWidget(this._widgets.length,e)}insertWidget(e,t){t.parent=this.parent;let n=this._widgets.indexOf(t);let s=Math.max(0,Math.min(e,this._widgets.length));if(n===-1){i.ArrayExt.insert(this._widgets,s,t);if(this.parent){this.attachWidget(s,t)}return}if(s===this._widgets.length){s--}if(n===s){return}i.ArrayExt.move(this._widgets,n,s);if(this.parent){this.moveWidget(n,s,t)}}removeWidget(e){this.removeWidgetAt(this._widgets.indexOf(e))}removeWidgetAt(e){let t=i.ArrayExt.removeAt(this._widgets,e);if(t&&this.parent){this.detachWidget(e,t)}}init(){super.init();let e=0;for(const t of this){this.attachWidget(e++,t)}}attachWidget(e,t){let n=this.parent.node.children[e];if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.BeforeAttach)}this.parent.node.insertBefore(t.node,n);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.AfterAttach)}}moveWidget(e,t,n){if(this.parent.isAttached){d.MessageLoop.sendMessage(n,E.Msg.BeforeDetach)}this.parent.node.removeChild(n.node);if(this.parent.isAttached){d.MessageLoop.sendMessage(n,E.Msg.AfterDetach)}let i=this.parent.node.children[t];if(this.parent.isAttached){d.MessageLoop.sendMessage(n,E.Msg.BeforeAttach)}this.parent.node.insertBefore(n.node,i);if(this.parent.isAttached){d.MessageLoop.sendMessage(n,E.Msg.AfterAttach)}}detachWidget(e,t){if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.BeforeDetach)}this.parent.node.removeChild(t.node);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.AfterDetach)}}}var L;(function(e){function t(e){return Math.max(0,Math.floor(e))}e.clampDimension=t})(L||(L={}));var R=L;class N extends P{constructor(e){super();this.widgetOffset=0;this._fixed=0;this._spacing=4;this._dirty=false;this._hasNormedSizes=false;this._sizers=[];this._items=[];this._handles=[];this._box=null;this._alignment="start";this._orientation="horizontal";this.renderer=e.renderer;if(e.orientation!==undefined){this._orientation=e.orientation}if(e.alignment!==undefined){this._alignment=e.alignment}if(e.spacing!==undefined){this._spacing=L.clampDimension(e.spacing)}}dispose(){for(const e of this._items){e.dispose()}this._box=null;this._items.length=0;this._sizers.length=0;this._handles.length=0;super.dispose()}get orientation(){return this._orientation}set orientation(e){if(this._orientation===e){return}this._orientation=e;if(!this.parent){return}this.parent.dataset["orientation"]=e;this.parent.fit()}get alignment(){return this._alignment}set alignment(e){if(this._alignment===e){return}this._alignment=e;if(!this.parent){return}this.parent.dataset["alignment"]=e;this.parent.update()}get spacing(){return this._spacing}set spacing(e){e=L.clampDimension(e);if(this._spacing===e){return}this._spacing=e;if(!this.parent){return}this.parent.fit()}get handles(){return this._handles}absoluteSizes(){return this._sizers.map((e=>e.size))}relativeSizes(){return O.normalize(this._sizers.map((e=>e.size)))}setRelativeSizes(e,t=true){let n=this._sizers.length;let i=e.slice(0,n);while(i.length0){s.sizeHint=s.size}}j.adjust(this._sizers,e,i);if(this.parent){this.parent.update()}}init(){this.parent.dataset["orientation"]=this.orientation;this.parent.dataset["alignment"]=this.alignment;super.init()}attachWidget(e,t){let n=new D(t);let s=O.createHandle(this.renderer);let o=O.averageSize(this._sizers);let r=O.createSizer(o);i.ArrayExt.insert(this._items,e,n);i.ArrayExt.insert(this._sizers,e,r);i.ArrayExt.insert(this._handles,e,s);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.BeforeAttach)}this.parent.node.appendChild(t.node);this.parent.node.appendChild(s);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.AfterAttach)}this.parent.fit()}moveWidget(e,t,n){i.ArrayExt.move(this._items,e,t);i.ArrayExt.move(this._sizers,e,t);i.ArrayExt.move(this._handles,e,t);this.parent.fit()}detachWidget(e,t){let n=i.ArrayExt.removeAt(this._items,e);let s=i.ArrayExt.removeAt(this._handles,e);i.ArrayExt.removeAt(this._sizers,e);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.BeforeDetach)}this.parent.node.removeChild(t.node);this.parent.node.removeChild(s);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.AfterDetach)}n.dispose();this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e);this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e);this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){if(this.parent.isVisible){this._update(e.width,e.height)}}onUpdateRequest(e){if(this.parent.isVisible){this._update(-1,-1)}}onFitRequest(e){if(this.parent.isAttached){this._fit()}}updateItemPosition(e,t,n,i,s,o,r){const a=this._items[e];if(a.isHidden){return}let l=this._handles[e].style;if(t){n+=this.widgetOffset;a.update(n,i,r,s);n+=r;l.top=`${i}px`;l.left=`${n}px`;l.width=`${this._spacing}px`;l.height=`${s}px`}else{i+=this.widgetOffset;a.update(n,i,o,r);i+=r;l.top=`${i}px`;l.left=`${n}px`;l.width=`${o}px`;l.height=`${this._spacing}px`}}_fit(){let e=0;let t=-1;for(let a=0,l=this._items.length;a0){t.sizeHint=t.size}if(e.isHidden){t.minSize=0;t.maxSize=0;continue}e.fit();t.stretch=N.getStretch(e.widget);if(n){t.minSize=e.minWidth;t.maxSize=e.maxWidth;i+=e.minWidth;s=Math.max(s,e.minHeight)}else{t.minSize=e.minHeight;t.maxSize=e.maxHeight;s+=e.minHeight;i=Math.max(i,e.minWidth)}}let o=this._box=a.ElementExt.boxSizing(this.parent.node);i+=o.horizontalSum;s+=o.verticalSum;let r=this.parent.node.style;r.minWidth=`${i}px`;r.minHeight=`${s}px`;this._dirty=true;if(this.parent.parent){d.MessageLoop.sendMessage(this.parent.parent,E.Msg.FitRequest)}if(this._dirty){d.MessageLoop.sendMessage(this.parent,E.Msg.UpdateRequest)}}_update(e,t){this._dirty=false;let n=0;for(let a=0,h=this._items.length;a0){let e;if(c){e=Math.max(0,o-this._fixed)}else{e=Math.max(0,r-this._fixed)}if(this._hasNormedSizes){for(let t of this._sizers){t.sizeHint*=e}this._hasNormedSizes=false}let t=j.calc(this._sizers,e);if(t>0){switch(this._alignment){case"start":break;case"center":l=0;d=t/2;break;case"end":l=0;d=t;break;case"justify":l=t/n;d=0;break;default:throw"unreachable"}}}for(let a=0,h=this._items.length;a0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:o});function t(e){let t=new k;t.sizeHint=Math.floor(e);return t}e.createSizer=t;function n(e){let t=e.createHandle();t.style.position="absolute";t.style.contain="style";return t}e.createHandle=n;function i(e){return e.reduce(((e,t)=>e+t.size),0)/e.length||0}e.averageSize=i;function s(e){let t=e.length;if(t===0){return[]}let n=e.reduce(((e,t)=>e+Math.abs(t)),0);return n===0?e.map((e=>1/t)):e.map((e=>e/n))}e.normalize=s;function o(e){if(e.parent&&e.parent.layout instanceof N){e.parent.fit()}}})(O||(O={}));class B extends N{constructor(e){super({...e,orientation:e.orientation||"vertical"});this._titles=[];this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=R.clampDimension(e);if(this.widgetOffset===e){return}this.widgetOffset=e;if(!this.parent){return}this.parent.fit()}get titles(){return this._titles}dispose(){if(this.isDisposed){return}this._titles.length=0;super.dispose()}updateTitle(e,t){const n=this._titles[e];const i=n.classList.contains("lm-mod-expanded");const s=F.createTitle(this.renderer,t.title,i);this._titles[e]=s;this.parent.node.replaceChild(s,n)}insertWidget(e,t){if(!t.id){t.id=`id-${o.UUID.uuid4()}`}super.insertWidget(e,t)}attachWidget(e,t){const n=F.createTitle(this.renderer,t.title);i.ArrayExt.insert(this._titles,e,n);this.parent.node.appendChild(n);t.node.setAttribute("role","region");t.node.setAttribute("aria-labelledby",n.id);super.attachWidget(e,t)}moveWidget(e,t,n){i.ArrayExt.move(this._titles,e,t);super.moveWidget(e,t,n)}detachWidget(e,t){const n=i.ArrayExt.removeAt(this._titles,e);this.parent.node.removeChild(n);super.detachWidget(e,t)}updateItemPosition(e,t,n,i,s,o,r){const a=this._titles[e].style;a.top=`${i}px`;a.left=`${n}px`;a.height=`${this.widgetOffset}px`;if(t){a.width=`${s}px`}else{a.width=`${o}px`}super.updateItemPosition(e,t,n,i,s,o,r)}}var F;(function(e){function t(e,t,n=true){const i=e.createSectionTitle(t);i.style.position="absolute";i.style.contain="strict";i.setAttribute("aria-label",`${t.label} Section`);i.setAttribute("aria-expanded",n?"true":"false");i.setAttribute("aria-controls",t.owner.id);if(n){i.classList.add("lm-mod-expanded")}return i}e.createTitle=t})(F||(F={}));class z extends E{constructor(e={}){super();this.addClass("lm-Panel");this.layout=H.createLayout(e)}get widgets(){return this.layout.widgets}addWidget(e){this.layout.addWidget(e)}insertWidget(e,t){this.layout.insertWidget(e,t)}}var H;(function(e){function t(e){return e.layout||new P}e.createLayout=t})(H||(H={}));class W extends z{constructor(e={}){super({layout:V.createLayout(e)});this._handleMoved=new p.Signal(this);this._pressData=null;this.addClass("lm-SplitPanel")}dispose(){this._releaseMouse();super.dispose()}get orientation(){return this.layout.orientation}set orientation(e){this.layout.orientation=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get renderer(){return this.layout.renderer}get handleMoved(){return this._handleMoved}get handles(){return this.layout.handles}relativeSizes(){return this.layout.relativeSizes()}setRelativeSizes(e,t=true){this.layout.setRelativeSizes(e,t)}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault();e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this);this._releaseMouse()}onChildAdded(e){e.child.addClass("lm-SplitPanel-child");this._releaseMouse()}onChildRemoved(e){e.child.removeClass("lm-SplitPanel-child");this._releaseMouse()}_evtKeyDown(e){if(this._pressData){e.preventDefault();e.stopPropagation()}if(e.keyCode===27){this._releaseMouse()}}_evtPointerDown(e){if(e.button!==0){return}let t=this.layout;let n=i.ArrayExt.findFirstIndex(t.handles,(t=>t.contains(e.target)));if(n===-1){return}e.preventDefault();e.stopPropagation();document.addEventListener("pointerup",this,true);document.addEventListener("pointermove",this,true);document.addEventListener("keydown",this,true);document.addEventListener("contextmenu",this,true);let s;let o=t.handles[n];let r=o.getBoundingClientRect();if(t.orientation==="horizontal"){s=e.clientX-r.left}else{s=e.clientY-r.top}let a=window.getComputedStyle(o);let l=g.Drag.overrideCursor(a.cursor);this._pressData={index:n,delta:s,override:l}}_evtPointerMove(e){e.preventDefault();e.stopPropagation();let t;let n=this.layout;let i=this.node.getBoundingClientRect();if(n.orientation==="horizontal"){t=e.clientX-i.left-this._pressData.delta}else{t=e.clientY-i.top-this._pressData.delta}n.moveHandle(this._pressData.index,t)}_evtPointerUp(e){if(e.button!==0){return}e.preventDefault();e.stopPropagation();this._releaseMouse()}_releaseMouse(){if(!this._pressData){return}this._pressData.override.dispose();this._pressData=null;this._handleMoved.emit();document.removeEventListener("keydown",this,true);document.removeEventListener("pointerup",this,true);document.removeEventListener("pointermove",this,true);document.removeEventListener("contextmenu",this,true)}}(function(e){class t{createHandle(){let e=document.createElement("div");e.className="lm-SplitPanel-handle";return e}}e.Renderer=t;e.defaultRenderer=new t;function n(e){return N.getStretch(e)}e.getStretch=n;function i(e,t){N.setStretch(e,t)}e.setStretch=i})(W||(W={}));var V;(function(e){function t(e){return e.layout||new N({renderer:e.renderer||W.defaultRenderer,orientation:e.orientation,alignment:e.alignment,spacing:e.spacing})}e.createLayout=t})(V||(V={}));class U extends W{constructor(e={}){super({...e,layout:q.createLayout(e)});this._widgetSizesCache=new WeakMap;this._expansionToggled=new p.Signal(this);this.addClass("lm-AccordionPanel")}get renderer(){return this.layout.renderer}get titleSpace(){return this.layout.titleSpace}set titleSpace(e){this.layout.titleSpace=e}get titles(){return this.layout.titles}get expansionToggled(){return this._expansionToggled}addWidget(e){super.addWidget(e);e.title.changed.connect(this._onTitleChanged,this)}collapse(e){const t=this.layout.widgets[e];if(t&&!t.isHidden){this._toggleExpansion(e)}}expand(e){const t=this.layout.widgets[e];if(t&&t.isHidden){this._toggleExpansion(e)}}insertWidget(e,t){super.insertWidget(e,t);t.title.changed.connect(this._onTitleChanged,this)}handleEvent(e){super.handleEvent(e);switch(e.type){case"click":this._evtClick(e);break;case"keydown":this._eventKeyDown(e);break}}onBeforeAttach(e){this.node.addEventListener("click",this);this.node.addEventListener("keydown",this);super.onBeforeAttach(e)}onAfterDetach(e){super.onAfterDetach(e);this.node.removeEventListener("click",this);this.node.removeEventListener("keydown",this)}_onTitleChanged(e){const t=i.ArrayExt.findFirstIndex(this.widgets,(t=>t.contains(e.owner)));if(t>=0){this.layout.updateTitle(t,e.owner);this.update()}}_computeWidgetSize(e){const t=this.layout;const n=t.widgets[e];if(!n){return undefined}const i=n.isHidden;const s=t.absoluteSizes();const o=(i?-1:1)*this.spacing;const r=s.reduce(((e,t)=>e+t));let a=[...s];if(!i){const t=s[e];this._widgetSizesCache.set(n,t);a[e]=0;const i=a.map((e=>e>0)).lastIndexOf(true);if(i===-1){return undefined}a[i]=s[i]+t+o}else{const t=this._widgetSizesCache.get(n);if(!t){return undefined}a[e]+=t;const i=a.map((e=>e-t>0)).lastIndexOf(true);if(i===-1){a.forEach(((n,i)=>{if(i!==e){a[i]-=s[i]/r*(t-o)}}))}else{a[i]-=t-o}}return a.map((e=>e/(r+o)))}_evtClick(e){const t=e.target;if(t){const n=i.ArrayExt.findFirstIndex(this.titles,(e=>e.contains(t)));if(n>=0){e.preventDefault();e.stopPropagation();this._toggleExpansion(n)}}}_eventKeyDown(e){if(e.defaultPrevented){return}const t=e.target;let n=false;if(t){const s=i.ArrayExt.findFirstIndex(this.titles,(e=>e.contains(t)));if(s>=0){const i=e.keyCode.toString();if(e.key.match(/Space|Enter/)||i.match(/13|32/)){t.click();n=true}else if(this.orientation==="horizontal"?e.key.match(/ArrowLeft|ArrowRight/)||i.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||i.match(/38|40/)){const t=e.key.match(/ArrowLeft|ArrowUp/)||i.match(/37|38/)?-1:1;const o=this.titles.length;const r=(s+o+t)%o;this.titles[r].focus();n=true}else if(e.key==="End"||i==="35"){this.titles[this.titles.length-1].focus();n=true}else if(e.key==="Home"||i==="36"){this.titles[0].focus();n=true}}if(n){e.preventDefault()}}}_toggleExpansion(e){const t=this.titles[e];const n=this.layout.widgets[e];const i=this._computeWidgetSize(e);if(i){this.setRelativeSizes(i,false)}if(n.isHidden){t.classList.add("lm-mod-expanded");t.setAttribute("aria-expanded","true");n.show()}else{t.classList.remove("lm-mod-expanded");t.setAttribute("aria-expanded","false");n.hide()}this._expansionToggled.emit(e)}}(function(e){class t extends W.Renderer{constructor(){super();this.titleClassName="lm-AccordionPanel-title";this._titleID=0;this._titleKeys=new WeakMap;this._uuid=++t._nInstance}createCollapseIcon(e){return document.createElement("span")}createSectionTitle(e){const t=document.createElement("h3");t.setAttribute("tabindex","0");t.id=this.createTitleKey(e);t.className=this.titleClassName;for(const s in e.dataset){t.dataset[s]=e.dataset[s]}const n=t.appendChild(this.createCollapseIcon(e));n.className="lm-AccordionPanel-titleCollapser";const i=t.appendChild(document.createElement("span"));i.className="lm-AccordionPanel-titleLabel";i.textContent=e.label;i.title=e.caption||e.label;return t}createTitleKey(e){let t=this._titleKeys.get(e);if(t===undefined){t=`title-key-${this._uuid}-${this._titleID++}`;this._titleKeys.set(e,t)}return t}}t._nInstance=0;e.Renderer=t;e.defaultRenderer=new t})(U||(U={}));var q;(function(e){function t(e){return e.layout||new B({renderer:e.renderer||U.defaultRenderer,orientation:e.orientation,alignment:e.alignment,spacing:e.spacing,titleSpace:e.titleSpace})}e.createLayout=t})(q||(q={}));class $ extends P{constructor(e={}){super();this._fixed=0;this._spacing=4;this._dirty=false;this._sizers=[];this._items=[];this._box=null;this._alignment="start";this._direction="top-to-bottom";if(e.direction!==undefined){this._direction=e.direction}if(e.alignment!==undefined){this._alignment=e.alignment}if(e.spacing!==undefined){this._spacing=R.clampDimension(e.spacing)}}dispose(){for(const e of this._items){e.dispose()}this._box=null;this._items.length=0;this._sizers.length=0;super.dispose()}get direction(){return this._direction}set direction(e){if(this._direction===e){return}this._direction=e;if(!this.parent){return}this.parent.dataset["direction"]=e;this.parent.fit()}get alignment(){return this._alignment}set alignment(e){if(this._alignment===e){return}this._alignment=e;if(!this.parent){return}this.parent.dataset["alignment"]=e;this.parent.update()}get spacing(){return this._spacing}set spacing(e){e=R.clampDimension(e);if(this._spacing===e){return}this._spacing=e;if(!this.parent){return}this.parent.fit()}init(){this.parent.dataset["direction"]=this.direction;this.parent.dataset["alignment"]=this.alignment;super.init()}attachWidget(e,t){i.ArrayExt.insert(this._items,e,new D(t));i.ArrayExt.insert(this._sizers,e,new k);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.BeforeAttach)}this.parent.node.appendChild(t.node);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.AfterAttach)}this.parent.fit()}moveWidget(e,t,n){i.ArrayExt.move(this._items,e,t);i.ArrayExt.move(this._sizers,e,t);this.parent.update()}detachWidget(e,t){let n=i.ArrayExt.removeAt(this._items,e);i.ArrayExt.removeAt(this._sizers,e);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.BeforeDetach)}this.parent.node.removeChild(t.node);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.AfterDetach)}n.dispose();this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e);this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e);this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){if(this.parent.isVisible){this._update(e.width,e.height)}}onUpdateRequest(e){if(this.parent.isVisible){this._update(-1,-1)}}onFitRequest(e){if(this.parent.isAttached){this._fit()}}_fit(){let e=0;for(let r=0,a=this._items.length;r0){switch(this._alignment){case"start":break;case"center":d=0;c=l/2;break;case"end":d=0;c=l;break;case"justify":d=l/n;c=0;break;default:throw"unreachable"}}for(let a=0,h=this._items.length;a0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:i});e.sizeBasisProperty=new h.AttachedProperty({name:"sizeBasis",create:()=>0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:i});function t(e){return e==="left-to-right"||e==="right-to-left"}e.isHorizontal=t;function n(e){return Math.max(0,Math.floor(e))}e.clampSpacing=n;function i(e){if(e.parent&&e.parent.layout instanceof $){e.parent.fit()}}})(K||(K={}));class J extends z{constructor(e={}){super({layout:G.createLayout(e)});this.addClass("lm-BoxPanel")}get direction(){return this.layout.direction}set direction(e){this.layout.direction=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}onChildAdded(e){e.child.addClass("lm-BoxPanel-child")}onChildRemoved(e){e.child.removeClass("lm-BoxPanel-child")}}(function(e){function t(e){return $.getStretch(e)}e.getStretch=t;function n(e,t){$.setStretch(e,t)}e.setStretch=n;function i(e){return $.getSizeBasis(e)}e.getSizeBasis=i;function s(e,t){$.setSizeBasis(e,t)}e.setSizeBasis=s})(J||(J={}));var G;(function(e){function t(e){return e.layout||new $(e)}e.createLayout=t})(G||(G={}));class Y extends E{constructor(e){super({node:X.createNode()});this._activeIndex=-1;this._items=[];this._results=null;this.addClass("lm-CommandPalette");this.setFlag(E.Flag.DisallowLayout);this.commands=e.commands;this.renderer=e.renderer||Y.defaultRenderer;this.commands.commandChanged.connect(this._onGenericChange,this);this.commands.keyBindingChanged.connect(this._onGenericChange,this)}dispose(){this._items.length=0;this._results=null;super.dispose()}get searchNode(){return this.node.getElementsByClassName("lm-CommandPalette-search")[0]}get inputNode(){return this.node.getElementsByClassName("lm-CommandPalette-input")[0]}get contentNode(){return this.node.getElementsByClassName("lm-CommandPalette-content")[0]}get items(){return this._items}addItem(e){let t=X.createItem(this.commands,e);this._items.push(t);this.refresh();return t}addItems(e){const t=e.map((e=>X.createItem(this.commands,e)));t.forEach((e=>this._items.push(e)));this.refresh();return t}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){let t=i.ArrayExt.removeAt(this._items,e);if(!t){return}this.refresh()}clearItems(){if(this._items.length===0){return}this._items.length=0;this.refresh()}refresh(){this._results=null;if(this.inputNode.value!==""){let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="inherit"}else{let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="none"}this.update()}handleEvent(e){switch(e.type){case"click":this._evtClick(e);break;case"keydown":this._evtKeyDown(e);break;case"input":this.refresh();break;case"focus":case"blur":this._toggleFocused();break}}onBeforeAttach(e){this.node.addEventListener("click",this);this.node.addEventListener("keydown",this);this.node.addEventListener("input",this);this.node.addEventListener("focus",this,true);this.node.addEventListener("blur",this,true)}onAfterDetach(e){this.node.removeEventListener("click",this);this.node.removeEventListener("keydown",this);this.node.removeEventListener("input",this);this.node.removeEventListener("focus",this,true);this.node.removeEventListener("blur",this,true)}onAfterShow(e){this.update();super.onAfterShow(e)}onActivateRequest(e){if(this.isAttached){let e=this.inputNode;e.focus();e.select()}}onUpdateRequest(e){if(!this.isVisible){b.VirtualDOM.render(null,this.contentNode);return}let t=this.inputNode.value;let n=this.contentNode;let s=this._results;if(!s){s=this._results=X.search(this._items,t);this._activeIndex=t?i.ArrayExt.findFirstIndex(s,X.canActivate):-1}if(!t&&s.length===0){b.VirtualDOM.render(null,n);return}if(t&&s.length===0){let e=this.renderer.renderEmptyMessage({query:t});b.VirtualDOM.render(e,n);return}let o=this.renderer;let r=this._activeIndex;let l=new Array(s.length);for(let i=0,a=s.length;i=s.length){n.scrollTop=0}else{let e=n.children[r];a.ElementExt.scrollIntoViewIfNeeded(n,e)}}_evtClick(e){if(e.button!==0){return}if(e.target.classList.contains("lm-close-icon")){this.inputNode.value="";this.refresh();return}let t=i.ArrayExt.findFirstIndex(this.contentNode.children,(t=>t.contains(e.target)));if(t===-1){return}e.preventDefault();e.stopPropagation();this._execute(t)}_evtKeyDown(e){if(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey){return}switch(e.keyCode){case 13:e.preventDefault();e.stopPropagation();this._execute(this._activeIndex);break;case 38:e.preventDefault();e.stopPropagation();this._activatePreviousItem();break;case 40:e.preventDefault();e.stopPropagation();this._activateNextItem();break}}_activateNextItem(){if(!this._results||this._results.length===0){return}let e=this._activeIndex;let t=this._results.length;let n=ee-t));let h=a.slice(0,c);let u=a.slice(c);for(let i=0,p=u.length;in.command===e&&o.JSONExt.deepEqual(n.args,t)))||null}}})(X||(X={}));class Q extends E{constructor(e){super({node:Z.createNode()});this._childIndex=-1;this._activeIndex=-1;this._openTimerID=0;this._closeTimerID=0;this._items=[];this._childMenu=null;this._parentMenu=null;this._aboutToClose=new p.Signal(this);this._menuRequested=new p.Signal(this);this.addClass("lm-Menu");this.setFlag(E.Flag.DisallowLayout);this.commands=e.commands;this.renderer=e.renderer||Q.defaultRenderer}dispose(){this.close();this._items.length=0;super.dispose()}get aboutToClose(){return this._aboutToClose}get menuRequested(){return this._menuRequested}get parentMenu(){return this._parentMenu}get childMenu(){return this._childMenu}get rootMenu(){let e=this;while(e._parentMenu){e=e._parentMenu}return e}get leafMenu(){let e=this;while(e._childMenu){e=e._childMenu}return e}get contentNode(){return this.node.getElementsByClassName("lm-Menu-content")[0]}get activeItem(){return this._items[this._activeIndex]||null}set activeItem(e){this.activeIndex=e?this._items.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){if(e<0||e>=this._items.length){e=-1}if(e!==-1&&!Z.canActivate(this._items[e])){e=-1}if(this._activeIndex===e){return}this._activeIndex=e;if(this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]){this.contentNode.childNodes[this._activeIndex].focus()}this.update()}get items(){return this._items}activateNextItem(){let e=this._items.length;let t=this._activeIndex;let n=t{this.activeIndex=r}})}b.VirtualDOM.render(o,this.contentNode)}onCloseRequest(e){this._cancelOpenTimer();this._cancelCloseTimer();this.activeIndex=-1;let t=this._childMenu;if(t){this._childIndex=-1;this._childMenu=null;t._parentMenu=null;t.close()}let n=this._parentMenu;if(n){this._parentMenu=null;n._childIndex=-1;n._childMenu=null;n.activate()}if(this.isAttached){this._aboutToClose.emit(undefined)}super.onCloseRequest(e)}_evtKeyDown(e){e.preventDefault();e.stopPropagation();let t=e.keyCode;if(t===13){this.triggerActiveItem();return}if(t===27){this.close();return}if(t===37){if(this._parentMenu){this.close()}else{this._menuRequested.emit("previous")}return}if(t===38){this.activatePreviousItem();return}if(t===39){let e=this.activeItem;if(e&&e.type==="submenu"){this.triggerActiveItem()}else{this.rootMenu._menuRequested.emit("next")}return}if(t===40){this.activateNextItem();return}let n=(0,x.getKeyboardLayout)().keyForKeydownEvent(e);if(!n){return}let i=this._activeIndex+1;let s=Z.findMnemonic(this._items,n,i);if(s.index!==-1&&!s.multiple){this.activeIndex=s.index;this.triggerActiveItem()}else if(s.index!==-1){this.activeIndex=s.index}else if(s.auto!==-1){this.activeIndex=s.auto}}_evtMouseUp(e){if(e.button!==0){return}e.preventDefault();e.stopPropagation();this.triggerActiveItem()}_evtMouseMove(e){let t=i.ArrayExt.findFirstIndex(this.contentNode.children,(t=>a.ElementExt.hitTest(t,e.clientX,e.clientY)));if(t===this._activeIndex){return}this.activeIndex=t;t=this.activeIndex;if(t===this._childIndex){this._cancelOpenTimer();this._cancelCloseTimer();return}if(this._childIndex!==-1){this._startCloseTimer()}this._cancelOpenTimer();let n=this.activeItem;if(!n||n.type!=="submenu"||!n.submenu){return}this._startOpenTimer()}_evtMouseEnter(e){for(let t=this._parentMenu;t;t=t._parentMenu){t._cancelOpenTimer();t._cancelCloseTimer();t.activeIndex=t._childIndex}}_evtMouseLeave(e){this._cancelOpenTimer();if(!this._childMenu){this.activeIndex=-1;return}let{clientX:t,clientY:n}=e;if(a.ElementExt.hitTest(this._childMenu.node,t,n)){this._cancelCloseTimer();return}this.activeIndex=-1;this._startCloseTimer()}_evtMouseDown(e){if(this._parentMenu){return}if(Z.hitTestMenus(this,e.clientX,e.clientY)){e.preventDefault();e.stopPropagation()}else{this.close()}}_openChildMenu(e=false){let t=this.activeItem;if(!t||t.type!=="submenu"||!t.submenu){this._closeChildMenu();return}let n=t.submenu;if(n===this._childMenu){return}Q.saveWindowData();this._closeChildMenu();this._childMenu=n;this._childIndex=this._activeIndex;n._parentMenu=this;d.MessageLoop.sendMessage(this,E.Msg.UpdateRequest);let i=this.contentNode.children[this._activeIndex];Z.openSubmenu(n,i);if(e){n.activeIndex=-1;n.activateNextItem()}n.activate()}_closeChildMenu(){if(this._childMenu){this._childMenu.close()}}_startOpenTimer(){if(this._openTimerID===0){this._openTimerID=window.setTimeout((()=>{this._openTimerID=0;this._openChildMenu()}),Z.TIMER_DELAY)}}_startCloseTimer(){if(this._closeTimerID===0){this._closeTimerID=window.setTimeout((()=>{this._closeTimerID=0;this._closeChildMenu()}),Z.TIMER_DELAY)}}_cancelOpenTimer(){if(this._openTimerID!==0){clearTimeout(this._openTimerID);this._openTimerID=0}}_cancelCloseTimer(){if(this._closeTimerID!==0){clearTimeout(this._closeTimerID);this._closeTimerID=0}}static saveWindowData(){Z.saveWindowData()}}(function(e){class t{renderItem(e){let t=this.createItemClass(e);let n=this.createItemDataset(e);let i=this.createItemARIA(e);return b.h.li({className:t,dataset:n,tabindex:"0",onfocus:e.onfocus,...i},this.renderIcon(e),this.renderLabel(e),this.renderShortcut(e),this.renderSubmenu(e))}renderIcon(e){let t=this.createIconClass(e);return b.h.div({className:t},e.item.icon,e.item.iconLabel)}renderLabel(e){let t=this.formatLabel(e);return b.h.div({className:"lm-Menu-itemLabel"},t)}renderShortcut(e){let t=this.formatShortcut(e);return b.h.div({className:"lm-Menu-itemShortcut"},t)}renderSubmenu(e){return b.h.div({className:"lm-Menu-itemSubmenuIcon"})}createItemClass(e){let t="lm-Menu-item";if(!e.item.isEnabled){t+=" lm-mod-disabled"}if(e.item.isToggled){t+=" lm-mod-toggled"}if(!e.item.isVisible){t+=" lm-mod-hidden"}if(e.active){t+=" lm-mod-active"}if(e.collapsed){t+=" lm-mod-collapsed"}let n=e.item.className;if(n){t+=` ${n}`}return t}createItemDataset(e){let t;let{type:n,command:i,dataset:s}=e.item;if(n==="command"){t={...s,type:n,command:i}}else{t={...s,type:n}}return t}createIconClass(e){let t="lm-Menu-itemIcon";let n=e.item.iconClass;return n?`${t} ${n}`:t}createItemARIA(e){let t={};switch(e.item.type){case"separator":t.role="presentation";break;case"submenu":t["aria-haspopup"]="true";if(!e.item.isEnabled){t["aria-disabled"]="true"}break;default:if(!e.item.isEnabled){t["aria-disabled"]="true"}if(e.item.isToggled){t.role="menuitemcheckbox";t["aria-checked"]="true"}else{t.role="menuitem"}}return t}formatLabel(e){let{label:t,mnemonic:n}=e.item;if(n<0||n>=t.length){return t}let i=t.slice(0,n);let s=t.slice(n+1);let o=t[n];let r=b.h.span({className:"lm-Menu-itemMnemonic"},o);return[i,r,s]}formatShortcut(e){let t=e.item.keyBinding;return t?v.CommandRegistry.formatKeystroke(t.keys):null}}e.Renderer=t;e.defaultRenderer=new t})(Q||(Q={}));var Z;(function(e){e.TIMER_DELAY=300;e.SUBMENU_OVERLAP=3;let t=null;let n=0;function s(){if(n>0){n--;return t}return m()}function r(){t=m();n++}e.saveWindowData=r;function l(){let e=document.createElement("div");let t=document.createElement("ul");t.className="lm-Menu-content";e.appendChild(t);t.setAttribute("role","menu");e.tabIndex=0;return e}e.createNode=l;function c(e){return e.type!=="separator"&&e.isEnabled&&e.isVisible}e.canActivate=c;function h(e,t){return new _(e.commands,t)}e.createItem=h;function u(e,t,n){for(let i=e;i;i=i.childMenu){if(a.ElementExt.hitTest(i.node,t,n)){return true}}return false}e.hitTestMenus=u;function p(e){let t=new Array(e.length);i.ArrayExt.fill(t,false);let n=0;let s=e.length;for(;n=0;--o){let n=e[o];if(!n.isVisible){continue}if(n.type!=="separator"){break}t[o]=true}let r=false;while(++nh+p){t=h+p-_}if(!o&&n+b>u+m){if(n>u+m){n=u+m-b}else{n=n-b}}v.transform=`translate(${Math.max(0,t)}px, ${Math.max(0,n)}px`;v.opacity="1"}e.openRootMenu=g;function f(t,n){const i=s();let o=i.pageXOffset;let r=i.pageYOffset;let l=i.clientWidth;let c=i.clientHeight;d.MessageLoop.sendMessage(t,E.Msg.UpdateRequest);let h=c;let u=t.node;let p=u.style;p.opacity="0";p.maxHeight=`${h}px`;E.attach(t,document.body);let{width:m,height:g}=u.getBoundingClientRect();let f=a.ElementExt.boxSizing(t.node);let v=n.getBoundingClientRect();let _=v.right-e.SUBMENU_OVERLAP;if(_+m>o+l){_=v.left+e.SUBMENU_OVERLAP-m}let b=v.top-f.borderTop-f.paddingTop;if(b+g>r+c){b=v.bottom+f.borderBottom+f.paddingBottom-g}p.transform=`translate(${Math.max(0,_)}px, ${Math.max(0,b)}px`;p.opacity="1"}e.openSubmenu=f;function v(e,t,n){let i=-1;let s=-1;let o=false;let r=t.toUpperCase();for(let a=0,l=e.length;a=0&&un.command===e&&o.JSONExt.deepEqual(n.args,t)))||null}return null}}})(Z||(Z={}));class ee{constructor(e){this._groupByTarget=true;this._idTick=0;this._items=[];this._sortBySelector=true;const{groupByTarget:t,sortBySelector:n,...i}=e;this.menu=new Q(i);this._groupByTarget=t!==false;this._sortBySelector=n!==false}addItem(e){let t=te.createItem(e,this._idTick++);this._items.push(t);return new w.DisposableDelegate((()=>{i.ArrayExt.removeFirstOf(this._items,t)}))}open(e){Q.saveWindowData();this.menu.clearItems();if(this._items.length===0){return false}let t=te.matchItems(this._items,e,this._groupByTarget,this._sortBySelector);if(!t||t.length===0){return false}for(const n of t){this.menu.addItem(n)}this.menu.open(e.clientX,e.clientY);return true}}var te;(function(e){function t(e,t){let n=i(e.selector);let s=e.rank!==undefined?e.rank:Infinity;return{...e,selector:n,rank:s,id:t}}e.createItem=t;function n(e,t,n,i){let r=t.target;if(!r){return null}let l=t.currentTarget;if(!l){return null}if(!l.contains(r)){r=document.elementFromPoint(t.clientX,t.clientY);if(!r||!l.contains(r)){return null}}let d=[];let c=e.slice();while(r!==null){let e=[];for(let t=0,n=c.length;t=this._titles.length){e=-1}if(this._currentIndex===e){return}let t=this._currentIndex;let n=this._titles[t]||null;let i=e;let s=this._titles[i]||null;this._currentIndex=i;this._previousTitle=n;this.update();this._currentChanged.emit({previousIndex:t,previousTitle:n,currentIndex:i,currentTitle:s})}get name(){return this._name}set name(e){this._name=e;if(e){this.contentNode.setAttribute("aria-label",e)}else{this.contentNode.removeAttribute("aria-label")}}get orientation(){return this._orientation}set orientation(e){if(this._orientation===e){return}this._releaseMouse();this._orientation=e;this.dataset["orientation"]=e;this.contentNode.setAttribute("aria-orientation",e)}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){if(this._addButtonEnabled===e){return}this._addButtonEnabled=e;if(e){this.addButtonNode.classList.remove("lm-mod-hidden")}else{this.addButtonNode.classList.add("lm-mod-hidden")}}get titles(){return this._titles}get contentNode(){return this.node.getElementsByClassName("lm-TabBar-content")[0]}get addButtonNode(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]}addTab(e){return this.insertTab(this._titles.length,e)}insertTab(e,t){this._releaseMouse();let n=se.asTitle(t);let s=this._titles.indexOf(n);let o=Math.max(0,Math.min(e,this._titles.length));if(s===-1){i.ArrayExt.insert(this._titles,o,n);n.changed.connect(this._onTitleChanged,this);this.update();this._adjustCurrentForInsert(o,n);return n}if(o===this._titles.length){o--}if(s===o){return n}i.ArrayExt.move(this._titles,s,o);this.update();this._adjustCurrentForMove(s,o);return n}removeTab(e){this.removeTabAt(this._titles.indexOf(e))}removeTabAt(e){this._releaseMouse();let t=i.ArrayExt.removeAt(this._titles,e);if(!t){return}t.changed.disconnect(this._onTitleChanged,this);if(t===this._previousTitle){this._previousTitle=null}this.update();this._adjustCurrentForRemove(e,t)}clearTabs(){if(this._titles.length===0){return}this._releaseMouse();for(let n of this._titles){n.changed.disconnect(this._onTitleChanged,this)}let e=this.currentIndex;let t=this.currentTitle;this._currentIndex=-1;this._previousTitle=null;this._titles.length=0;this.update();if(e===-1){return}this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}releaseMouse(){this._releaseMouse()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"dblclick":this._evtDblClick(e);break;case"keydown":e.eventPhase===Event.CAPTURING_PHASE?this._evtKeyDownCapturing(e):this._evtKeyDown(e);break;case"contextmenu":e.preventDefault();e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this);this.node.addEventListener("dblclick",this);this.node.addEventListener("keydown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this);this.node.removeEventListener("dblclick",this);this.node.removeEventListener("keydown",this);this._releaseMouse()}onUpdateRequest(e){var t;let n=this._titles;let i=this.renderer;let s=this.currentTitle;let o=new Array(n.length);const r=(t=this._getCurrentTabindex())!==null&&t!==void 0?t:this._currentIndex>-1?this._currentIndex:0;for(let a=0,l=n.length;aa.ElementExt.hitTest(t,e.clientX,e.clientY)));if(n===-1){return}let s=this.titles[n];let o=t[n].querySelector(".lm-TabBar-tabLabel");if(o&&o.contains(e.target)){let e=s.label||"";let t=o.innerHTML;o.innerHTML="";let n=document.createElement("input");n.classList.add("lm-TabBar-tabInput");n.value=e;o.appendChild(n);let i=()=>{n.removeEventListener("blur",i);o.innerHTML=t;this.node.addEventListener("keydown",this)};n.addEventListener("dblclick",(e=>e.stopPropagation()));n.addEventListener("blur",i);n.addEventListener("keydown",(e=>{if(e.key==="Enter"){if(n.value!==""){s.label=s.caption=n.value}i()}else if(e.key==="Escape"){i()}}));this.node.removeEventListener("keydown",this);n.select();n.focus();if(o.children.length>0){o.children[0].focus()}}}_evtKeyDownCapturing(e){if(e.eventPhase!==Event.CAPTURING_PHASE){return}e.preventDefault();e.stopPropagation();if(e.key==="Escape"){this._releaseMouse()}}_evtKeyDown(e){var t,n,s;if(e.key==="Tab"||e.eventPhase===Event.CAPTURING_PHASE){return}if(e.key==="Enter"||e.key==="Spacebar"||e.key===" "){const t=document.activeElement;if(this.addButtonEnabled&&this.addButtonNode.contains(t)){e.preventDefault();e.stopPropagation();this._addRequested.emit()}else{const n=i.ArrayExt.findFirstIndex(this.contentNode.children,(e=>e.contains(t)));if(n>=0){e.preventDefault();e.stopPropagation();this.currentIndex=n}}}else if(ne.includes(e.key)){const i=[...this.contentNode.children];if(this.addButtonEnabled){i.push(this.addButtonNode)}if(i.length<=1){return}e.preventDefault();e.stopPropagation();let o=i.indexOf(document.activeElement);if(o===-1){o=this._currentIndex}let r;if(e.key==="ArrowRight"&&this._orientation==="horizontal"||e.key==="ArrowDown"&&this._orientation==="vertical"){r=(t=i[o+1])!==null&&t!==void 0?t:i[0]}else if(e.key==="ArrowLeft"&&this._orientation==="horizontal"||e.key==="ArrowUp"&&this._orientation==="vertical"){r=(n=i[o-1])!==null&&n!==void 0?n:i[i.length-1]}else if(e.key==="Home"){r=i[0]}else if(e.key==="End"){r=i[i.length-1]}if(r){(s=i[o])===null||s===void 0?void 0:s.setAttribute("tabindex","-1");r===null||r===void 0?void 0:r.setAttribute("tabindex","0");r.focus()}}}_evtPointerDown(e){if(e.button!==0&&e.button!==1){return}if(this._dragData){return}if(e.target.classList.contains("lm-TabBar-tabInput")){return}let t=this.addButtonEnabled&&this.addButtonNode.contains(e.target);let n=this.contentNode.children;let s=i.ArrayExt.findFirstIndex(n,(t=>a.ElementExt.hitTest(t,e.clientX,e.clientY)));if(s===-1&&!t){return}e.preventDefault();e.stopPropagation();this._dragData={tab:n[s],index:s,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:false,dragAborted:false,detachRequested:false};this.document.addEventListener("pointerup",this,true);if(e.button===1||t){return}let o=n[s].querySelector(this.renderer.closeIconSelector);if(o&&o.contains(e.target)){return}if(this.tabsMovable){this.document.addEventListener("pointermove",this,true);this.document.addEventListener("keydown",this,true);this.document.addEventListener("contextmenu",this,true)}if(this.allowDeselect&&this.currentIndex===s){this.currentIndex=-1}else{this.currentIndex=s}if(this.currentIndex===-1){return}this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle})}_evtPointerMove(e){let t=this._dragData;if(!t){return}e.preventDefault();e.stopPropagation();let n=this.contentNode.children;if(!t.dragActive&&!se.dragExceeded(t,e)){return}if(!t.dragActive){let e=t.tab.getBoundingClientRect();if(this._orientation==="horizontal"){t.tabPos=t.tab.offsetLeft;t.tabSize=e.width;t.tabPressPos=t.pressX-e.left}else{t.tabPos=t.tab.offsetTop;t.tabSize=e.height;t.tabPressPos=t.pressY-e.top}t.tabPressOffset={x:t.pressX-e.left,y:t.pressY-e.top};t.tabLayout=se.snapTabLayout(n,this._orientation);t.contentRect=this.contentNode.getBoundingClientRect();t.override=g.Drag.overrideCursor("default");t.tab.classList.add("lm-mod-dragging");this.addClass("lm-mod-dragging");t.dragActive=true}if(!t.detachRequested&&se.detachExceeded(t,e)){t.detachRequested=true;let i=t.index;let s=e.clientX;let o=e.clientY;let r=n[i];let a=this._titles[i];this._tabDetachRequested.emit({index:i,title:a,tab:r,clientX:s,clientY:o,offset:t.tabPressOffset});if(t.dragAborted){return}}se.layoutTabs(n,t,e,this._orientation)}_evtPointerUp(e){if(e.button!==0&&e.button!==1){return}const t=this._dragData;if(!t){return}e.preventDefault();e.stopPropagation();this.document.removeEventListener("pointermove",this,true);this.document.removeEventListener("pointerup",this,true);this.document.removeEventListener("keydown",this,true);this.document.removeEventListener("contextmenu",this,true);if(!t.dragActive){this._dragData=null;let n=this.addButtonEnabled&&this.addButtonNode.contains(e.target);if(n){this._addRequested.emit(undefined);return}let s=this.contentNode.children;let o=i.ArrayExt.findFirstIndex(s,(t=>a.ElementExt.hitTest(t,e.clientX,e.clientY)));if(o!==t.index){return}let r=this._titles[o];if(!r.closable){return}if(e.button===1){this._tabCloseRequested.emit({index:o,title:r});return}let l=s[o].querySelector(this.renderer.closeIconSelector);if(l&&l.contains(e.target)){this._tabCloseRequested.emit({index:o,title:r});return}return}if(e.button!==0){return}se.finalizeTabPosition(t,this._orientation);t.tab.classList.remove("lm-mod-dragging");let n=se.parseTransitionDuration(t.tab);setTimeout((()=>{if(t.dragAborted){return}this._dragData=null;se.resetTabPositions(this.contentNode.children,this._orientation);t.override.dispose();this.removeClass("lm-mod-dragging");let e=t.index;let n=t.targetIndex;if(n===-1||e===n){return}i.ArrayExt.move(this._titles,e,n);this._adjustCurrentForMove(e,n);this._tabMoved.emit({fromIndex:e,toIndex:n,title:this._titles[n]});d.MessageLoop.sendMessage(this,E.Msg.UpdateRequest)}),n)}_releaseMouse(){let e=this._dragData;if(!e){return}this._dragData=null;this.document.removeEventListener("pointermove",this,true);this.document.removeEventListener("pointerup",this,true);this.document.removeEventListener("keydown",this,true);this.document.removeEventListener("contextmenu",this,true);e.dragAborted=true;if(!e.dragActive){return}se.resetTabPositions(this.contentNode.children,this._orientation);e.override.dispose();e.tab.classList.remove("lm-mod-dragging");this.removeClass("lm-mod-dragging")}_adjustCurrentForInsert(e,t){let n=this.currentTitle;let i=this._currentIndex;let s=this.insertBehavior;if(s==="select-tab"||s==="select-tab-if-needed"&&i===-1){this._currentIndex=e;this._previousTitle=n;this._currentChanged.emit({previousIndex:i,previousTitle:n,currentIndex:e,currentTitle:t});return}if(i>=e){this._currentIndex++}}_adjustCurrentForMove(e,t){if(this._currentIndex===e){this._currentIndex=t}else if(this._currentIndex=t){this._currentIndex++}else if(this._currentIndex>e&&this._currentIndex<=t){this._currentIndex--}}_adjustCurrentForRemove(e,t){let n=this._currentIndex;let i=this.removeBehavior;if(n!==e){if(n>e){this._currentIndex--}return}if(this._titles.length===0){this._currentIndex=-1;this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});return}if(i==="select-tab-after"){this._currentIndex=Math.min(e,this._titles.length-1);this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(i==="select-tab-before"){this._currentIndex=Math.max(0,e-1);this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(i==="select-previous-tab"){if(this._previousTitle){this._currentIndex=this._titles.indexOf(this._previousTitle);this._previousTitle=null}else{this._currentIndex=Math.min(e,this._titles.length-1)}this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}this._currentIndex=-1;this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}_onTitleChanged(e){this.update()}}(function(e){class t{constructor(){this.closeIconSelector=".lm-TabBar-tabCloseIcon";this._tabID=0;this._tabKeys=new WeakMap;this._uuid=++t._nInstance}renderTab(e){let t=e.title.caption;let n=this.createTabKey(e);let i=n;let s=this.createTabStyle(e);let o=this.createTabClass(e);let r=this.createTabDataset(e);let a=this.createTabARIA(e);if(e.title.closable){return b.h.li({id:i,key:n,className:o,title:t,style:s,dataset:r,...a},this.renderIcon(e),this.renderLabel(e),this.renderCloseIcon(e))}else{return b.h.li({id:i,key:n,className:o,title:t,style:s,dataset:r,...a},this.renderIcon(e),this.renderLabel(e))}}renderIcon(e){const{title:t}=e;let n=this.createIconClass(e);return b.h.div({className:n},t.icon,t.iconLabel)}renderLabel(e){return b.h.div({className:"lm-TabBar-tabLabel"},e.title.label)}renderCloseIcon(e){return b.h.div({className:"lm-TabBar-tabCloseIcon"})}createTabKey(e){let t=this._tabKeys.get(e.title);if(t===undefined){t=`tab-key-${this._uuid}-${this._tabID++}`;this._tabKeys.set(e.title,t)}return t}createTabStyle(e){return{zIndex:`${e.zIndex}`}}createTabClass(e){let t="lm-TabBar-tab";if(e.title.className){t+=` ${e.title.className}`}if(e.title.closable){t+=" lm-mod-closable"}if(e.current){t+=" lm-mod-current"}return t}createTabDataset(e){return e.title.dataset}createTabARIA(e){var t;return{role:"tab","aria-selected":e.current.toString(),tabindex:`${(t=e.tabIndex)!==null&&t!==void 0?t:"-1"}`}}createIconClass(e){let t="lm-TabBar-tabIcon";let n=e.title.iconClass;return n?`${t} ${n}`:t}}t._nInstance=0;e.Renderer=t;e.defaultRenderer=new t;e.addButtonSelector=".lm-TabBar-addButton"})(ie||(ie={}));var se;(function(e){e.DRAG_THRESHOLD=5;e.DETACH_THRESHOLD=20;function t(){let e=document.createElement("div");let t=document.createElement("ul");t.setAttribute("role","tablist");t.className="lm-TabBar-content";e.appendChild(t);let n=document.createElement("div");n.className="lm-TabBar-addButton lm-mod-hidden";n.setAttribute("tabindex","-1");n.setAttribute("role","button");e.appendChild(n);return e}e.createNode=t;function n(e){return e instanceof I?e:new I(e)}e.asTitle=n;function i(e){let t=window.getComputedStyle(e);return 1e3*(parseFloat(t.transitionDuration)||0)}e.parseTransitionDuration=i;function s(e,t){let n=new Array(e.length);for(let i=0,s=e.length;i=e.DRAG_THRESHOLD||s>=e.DRAG_THRESHOLD}e.dragExceeded=o;function r(t,n){let i=t.contentRect;return n.clientX=i.right+e.DETACH_THRESHOLD||n.clientY=i.bottom+e.DETACH_THRESHOLD}e.detachExceeded=r;function a(e,t,n,i){let s;let o;let r;let a;if(i==="horizontal"){s=t.pressX;o=n.clientX-t.contentRect.left;r=n.clientX;a=t.contentRect.width}else{s=t.pressY;o=n.clientY-t.contentRect.top;r=n.clientY;a=t.contentRect.height}let l=t.index;let d=o-t.tabPressPos;let c=d+t.tabSize;for(let h=0,u=e.length;h>1);if(ht.index&&c>u){n=`${-t.tabSize-o.margin}px`;l=Math.max(l,h)}else if(h===t.index){let e=r-s;let i=a-(t.tabPos+t.tabSize);n=`${Math.max(-t.tabPos,Math.min(e,i))}px`}else{n=""}if(i==="horizontal"){e[h].style.left=n}else{e[h].style.top=n}}t.targetIndex=l}e.layoutTabs=a;function l(e,t){let n;if(t==="horizontal"){n=e.contentRect.width}else{n=e.contentRect.height}let i;if(e.targetIndex===e.index){i=0}else if(e.targetIndex>e.index){let t=e.tabLayout[e.targetIndex];i=t.pos+t.size-e.tabSize-e.tabPos}else{let t=e.tabLayout[e.targetIndex];i=t.pos-e.tabPos}let s=n-(e.tabPos+e.tabSize);let o=Math.max(-e.tabPos,Math.min(i,s));if(t==="horizontal"){e.tab.style.left=`${o}px`}else{e.tab.style.top=`${o}px`}}e.finalizeTabPosition=l;function d(e,t){for(const n of e){if(t==="horizontal"){n.style.left=""}else{n.style.top=""}}}e.resetTabPositions=d})(se||(se={}));class oe extends M{constructor(e){super();this._spacing=4;this._dirty=false;this._root=null;this._box=null;this._items=new Map;this.renderer=e.renderer;if(e.spacing!==undefined){this._spacing=R.clampDimension(e.spacing)}this._document=e.document||document;this._hiddenMode=e.hiddenMode!==undefined?e.hiddenMode:E.HiddenMode.Display}dispose(){let e=this[Symbol.iterator]();this._items.forEach((e=>{e.dispose()}));this._box=null;this._root=null;this._items.clear();for(const t of e){t.dispose()}super.dispose()}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode===e){return}this._hiddenMode=e;for(const t of this.tabBars()){if(t.titles.length>1){for(const e of t.titles){e.owner.hiddenMode=this._hiddenMode}}}}get spacing(){return this._spacing}set spacing(e){e=R.clampDimension(e);if(this._spacing===e){return}this._spacing=e;if(!this.parent){return}this.parent.fit()}get isEmpty(){return this._root===null}[Symbol.iterator](){return this._root?this._root.iterAllWidgets():(0,i.empty)()}widgets(){return this._root?this._root.iterUserWidgets():(0,i.empty)()}selectedWidgets(){return this._root?this._root.iterSelectedWidgets():(0,i.empty)()}tabBars(){return this._root?this._root.iterTabBars():(0,i.empty)()}handles(){return this._root?this._root.iterHandles():(0,i.empty)()}moveHandle(e,t,n){let i=e.classList.contains("lm-mod-hidden");if(!this._root||i){return}let s=this._root.findSplitNode(e);if(!s){return}let o;if(s.node.orientation==="horizontal"){o=t-e.offsetLeft}else{o=n-e.offsetTop}if(o===0){return}s.node.holdSizes();j.adjust(s.node.sizers,s.index,o);if(this.parent){this.parent.update()}}saveLayout(){if(!this._root){return{main:null}}this._root.holdAllSizes();return{main:this._root.createConfig()}}restoreLayout(e){let t=new Set;let n;if(e.main){n=re.normalizeAreaConfig(e.main,t)}else{n=null}let i=this.widgets();let s=this.tabBars();let o=this.handles();this._root=null;for(const r of i){if(!t.has(r)){r.parent=null}}for(const r of s){r.dispose()}for(const r of o){if(r.parentNode){r.parentNode.removeChild(r)}}for(const r of t){r.parent=this.parent}if(n){this._root=re.realizeAreaConfig(n,{createTabBar:e=>this._createTabBar(),createHandle:()=>this._createHandle()},this._document)}else{this._root=null}if(!this.parent){return}t.forEach((e=>{this.attachWidget(e)}));this.parent.fit()}addWidget(e,t={}){let n=t.ref||null;let i=t.mode||"tab-after";let s=null;if(this._root&&n){s=this._root.findTabNode(n)}if(n&&!s){throw new Error("Reference widget is not in the layout.")}e.parent=this.parent;switch(i){case"tab-after":this._insertTab(e,n,s,true);break;case"tab-before":this._insertTab(e,n,s,false);break;case"split-top":this._insertSplit(e,n,s,"vertical",false);break;case"split-left":this._insertSplit(e,n,s,"horizontal",false);break;case"split-right":this._insertSplit(e,n,s,"horizontal",true);break;case"split-bottom":this._insertSplit(e,n,s,"vertical",true);break;case"merge-top":this._insertSplit(e,n,s,"vertical",false,true);break;case"merge-left":this._insertSplit(e,n,s,"horizontal",false,true);break;case"merge-right":this._insertSplit(e,n,s,"horizontal",true,true);break;case"merge-bottom":this._insertSplit(e,n,s,"vertical",true,true);break}if(!this.parent){return}this.attachWidget(e);this.parent.fit()}removeWidget(e){this._removeWidget(e);if(!this.parent){return}this.detachWidget(e);this.parent.fit()}hitTestTabAreas(e,t){if(!this._root||!this.parent||!this.parent.isVisible){return null}if(!this._box){this._box=a.ElementExt.boxSizing(this.parent.node)}let n=this.parent.node.getBoundingClientRect();let i=e-n.left-this._box.borderLeft;let s=t-n.top-this._box.borderTop;let o=this._root.hitTestTabNodes(i,s);if(!o){return null}let{tabBar:r,top:l,left:d,width:c,height:h}=o;let u=this._box.borderLeft+this._box.borderRight;let p=this._box.borderTop+this._box.borderBottom;let m=n.width-u-(d+c);let g=n.height-p-(l+h);return{tabBar:r,x:i,y:s,top:l,left:d,right:m,bottom:g,width:c,height:h}}init(){super.init();for(const e of this){this.attachWidget(e)}for(const e of this.handles()){this.parent.node.appendChild(e)}this.parent.fit()}attachWidget(e){if(this.parent.node===e.node.parentNode){return}this._items.set(e,new D(e));if(this.parent.isAttached){d.MessageLoop.sendMessage(e,E.Msg.BeforeAttach)}this.parent.node.appendChild(e.node);if(this.parent.isAttached){d.MessageLoop.sendMessage(e,E.Msg.AfterAttach)}}detachWidget(e){if(this.parent.node!==e.node.parentNode){return}if(this.parent.isAttached){d.MessageLoop.sendMessage(e,E.Msg.BeforeDetach)}this.parent.node.removeChild(e.node);if(this.parent.isAttached){d.MessageLoop.sendMessage(e,E.Msg.AfterDetach)}let t=this._items.get(e);if(t){this._items.delete(e);t.dispose()}}onBeforeShow(e){super.onBeforeShow(e);this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e);this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){if(this.parent.isVisible){this._update(e.width,e.height)}}onUpdateRequest(e){if(this.parent.isVisible){this._update(-1,-1)}}onFitRequest(e){if(this.parent.isAttached){this._fit()}}_removeWidget(e){if(!this._root){return}let t=this._root.findTabNode(e);if(!t){return}re.removeAria(e);if(t.tabBar.titles.length>1){t.tabBar.removeTab(e.title);if(this._hiddenMode===E.HiddenMode.Scale&&t.tabBar.titles.length==1){const e=t.tabBar.titles[0].owner;e.hiddenMode=E.HiddenMode.Display}return}t.tabBar.dispose();if(this._root===t){this._root=null;return}this._root.holdAllSizes();let n=t.parent;t.parent=null;let s=i.ArrayExt.removeFirstOf(n.children,t);let o=i.ArrayExt.removeAt(n.handles,s);i.ArrayExt.removeAt(n.sizers,s);if(o.parentNode){o.parentNode.removeChild(o)}if(n.children.length>1){n.syncHandles();return}let r=n.parent;n.parent=null;let a=n.children[0];let l=n.handles[0];n.children.length=0;n.handles.length=0;n.sizers.length=0;if(l.parentNode){l.parentNode.removeChild(l)}if(this._root===n){a.parent=null;this._root=a;return}let d=r;let c=d.children.indexOf(n);if(a instanceof re.TabLayoutNode){a.parent=d;d.children[c]=a;return}let h=i.ArrayExt.removeAt(d.handles,c);i.ArrayExt.removeAt(d.children,c);i.ArrayExt.removeAt(d.sizers,c);if(h.parentNode){h.parentNode.removeChild(h)}for(let u=0,p=a.children.length;u=this._left+this._width){return null}if(t=this._top+this._height){return null}return this}createConfig(){let e=this.tabBar.titles.map((e=>e.owner));let t=this.tabBar.currentIndex;return{type:"tab-area",widgets:e,currentIndex:t}}holdAllSizes(){return}fit(e,t){let n=0;let i=0;let s=Infinity;let o=Infinity;let r=t.get(this.tabBar);let a=this.tabBar.currentTitle;let l=a?t.get(a.owner):undefined;let[d,c]=this.sizers;if(r){r.fit()}if(l){l.fit()}if(r&&!r.isHidden){n=Math.max(n,r.minWidth);i+=r.minHeight;d.minSize=r.minHeight;d.maxSize=r.maxHeight}else{d.minSize=0;d.maxSize=0}if(l&&!l.isHidden){n=Math.max(n,l.minWidth);i+=l.minHeight;c.minSize=l.minHeight;c.maxSize=Infinity}else{c.minSize=0;c.maxSize=Infinity}return{minWidth:n,minHeight:i,maxWidth:s,maxHeight:o}}update(e,t,n,i,s,o){this._top=t;this._left=e;this._width=n;this._height=i;let r=o.get(this.tabBar);let a=this.tabBar.currentTitle;let l=a?o.get(a.owner):undefined;j.calc(this.sizers,i);if(r&&!r.isHidden){let i=this.sizers[0].size;r.update(e,t,n,i);t+=i}if(l&&!l.isHidden){let i=this.sizers[1].size;l.update(e,t,n,i)}}}e.TabLayoutNode=s;class o{constructor(e){this.parent=null;this.normalized=false;this.children=[];this.sizers=[];this.handles=[];this.orientation=e}*iterAllWidgets(){for(const e of this.children){yield*e.iterAllWidgets()}}*iterUserWidgets(){for(const e of this.children){yield*e.iterUserWidgets()}}*iterSelectedWidgets(){for(const e of this.children){yield*e.iterSelectedWidgets()}}*iterTabBars(){for(const e of this.children){yield*e.iterTabBars()}}*iterHandles(){yield*this.handles;for(const e of this.children){yield*e.iterHandles()}}findTabNode(e){for(let t=0,n=this.children.length;te.createConfig()));return{type:"split-area",orientation:e,children:n,sizes:t}}syncHandles(){this.handles.forEach(((e,t)=>{e.setAttribute("data-orientation",this.orientation);if(t===this.handles.length-1){e.classList.add("lm-mod-hidden")}else{e.classList.remove("lm-mod-hidden")}}))}holdSizes(){for(const e of this.sizers){e.sizeHint=e.size}}holdAllSizes(){for(const e of this.children){e.holdAllSizes()}this.holdSizes()}normalizeSizes(){let e=this.sizers.length;if(e===0){return}this.holdSizes();let t=this.sizers.reduce(((e,t)=>e+t.sizeHint),0);if(t===0){for(const t of this.sizers){t.size=t.sizeHint=1/e}}else{for(const e of this.sizers){e.size=e.sizeHint/=t}}this.normalized=true}createNormalizedSizes(){let e=this.sizers.length;if(e===0){return[]}let t=this.sizers.map((e=>e.size));let n=t.reduce(((e,t)=>e+t),0);if(n===0){for(let n=t.length-1;n>-1;n--){t[n]=1/e}}else{for(let e=t.length-1;e>-1;e--){t[e]/=n}}return t}fit(e,t){let n=this.orientation==="horizontal";let i=Math.max(0,this.children.length-1)*e;let s=n?i:0;let o=n?0:i;let r=Infinity;let a=Infinity;for(let l=0,d=this.children.length;l=n.length)){i=0}return{type:"tab-area",widgets:n,currentIndex:i}}function d(e,t){let i=e.orientation;let s=[];let o=[];for(let r=0,a=e.children.length;r{let l=i(o,n,s);let d=t(e.sizes[a]);let c=n.createHandle();r.children.push(l);r.handles.push(c);r.sizers.push(d);l.parent=r}));r.syncHandles();r.normalizeSizes();return r}})(re||(re={}));class ae extends E{constructor(e={}){super();this._drag=null;this._tabsMovable=true;this._tabsConstrained=false;this._addButtonEnabled=false;this._pressData=null;this._layoutModified=new p.Signal(this);this._addRequested=new p.Signal(this);this.addClass("lm-DockPanel");this._document=e.document||document;this._mode=e.mode||"multiple-document";this._renderer=e.renderer||ae.defaultRenderer;this._edges=e.edges||le.DEFAULT_EDGES;if(e.tabsMovable!==undefined){this._tabsMovable=e.tabsMovable}if(e.tabsConstrained!==undefined){this._tabsConstrained=e.tabsConstrained}if(e.addButtonEnabled!==undefined){this._addButtonEnabled=e.addButtonEnabled}this.dataset["mode"]=this._mode;let t={createTabBar:()=>this._createTabBar(),createHandle:()=>this._createHandle()};this.layout=new oe({document:this._document,renderer:t,spacing:e.spacing,hiddenMode:e.hiddenMode});this.overlay=e.overlay||new ae.Overlay;this.node.appendChild(this.overlay.node)}dispose(){this._releaseMouse();this.overlay.hide(0);if(this._drag){this._drag.dispose()}super.dispose()}get hiddenMode(){return this.layout.hiddenMode}set hiddenMode(e){this.layout.hiddenMode=e}get layoutModified(){return this._layoutModified}get addRequested(){return this._addRequested}get renderer(){return this.layout.renderer}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get mode(){return this._mode}set mode(e){if(this._mode===e){return}this._mode=e;this.dataset["mode"]=e;let t=this.layout;switch(e){case"multiple-document":for(const e of t.tabBars()){e.show()}break;case"single-document":t.restoreLayout(le.createSingleDocumentConfig(this));break;default:throw"unreachable"}d.MessageLoop.postMessage(this,le.LayoutModified)}get tabsMovable(){return this._tabsMovable}set tabsMovable(e){this._tabsMovable=e;for(const t of this.tabBars()){t.tabsMovable=e}}get tabsConstrained(){return this._tabsConstrained}set tabsConstrained(e){this._tabsConstrained=e}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled=e;for(const t of this.tabBars()){t.addButtonEnabled=e}}get isEmpty(){return this.layout.isEmpty}*widgets(){yield*this.layout.widgets()}*selectedWidgets(){yield*this.layout.selectedWidgets()}*tabBars(){yield*this.layout.tabBars()}*handles(){yield*this.layout.handles()}selectWidget(e){let t=(0,i.find)(this.tabBars(),(t=>t.titles.indexOf(e.title)!==-1));if(!t){throw new Error("Widget is not contained in the dock panel.")}t.currentTitle=e.title}activateWidget(e){this.selectWidget(e);e.activate()}saveLayout(){return this.layout.saveLayout()}restoreLayout(e){this._mode="multiple-document";this.layout.restoreLayout(e);if(a.Platform.IS_EDGE||a.Platform.IS_IE){d.MessageLoop.flush()}d.MessageLoop.postMessage(this,le.LayoutModified)}addWidget(e,t={}){if(this._mode==="single-document"){this.layout.addWidget(e)}else{this.layout.addWidget(e,t)}d.MessageLoop.postMessage(this,le.LayoutModified)}processMessage(e){if(e.type==="layout-modified"){this._layoutModified.emit(undefined)}else{super.processMessage(e)}}handleEvent(e){switch(e.type){case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault();e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("lm-dragenter",this);this.node.addEventListener("lm-dragleave",this);this.node.addEventListener("lm-dragover",this);this.node.addEventListener("lm-drop",this);this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("lm-dragenter",this);this.node.removeEventListener("lm-dragleave",this);this.node.removeEventListener("lm-dragover",this);this.node.removeEventListener("lm-drop",this);this.node.removeEventListener("pointerdown",this);this._releaseMouse()}onChildAdded(e){if(le.isGeneratedTabBarProperty.get(e.child)){return}e.child.addClass("lm-DockPanel-widget")}onChildRemoved(e){if(le.isGeneratedTabBarProperty.get(e.child)){return}e.child.removeClass("lm-DockPanel-widget");d.MessageLoop.postMessage(this,le.LayoutModified)}_evtDragEnter(e){if(e.mimeData.hasData("application/vnd.lumino.widget-factory")){e.preventDefault();e.stopPropagation()}}_evtDragLeave(e){e.preventDefault();if(this._tabsConstrained&&e.source!==this)return;e.stopPropagation();this.overlay.hide(1)}_evtDragOver(e){e.preventDefault();if(this._tabsConstrained&&e.source!==this||this._showOverlay(e.clientX,e.clientY)==="invalid"){e.dropAction="none"}else{e.stopPropagation();e.dropAction=e.proposedAction}}_evtDrop(e){e.preventDefault();this.overlay.hide(0);if(e.proposedAction==="none"){e.dropAction="none";return}let{clientX:t,clientY:n}=e;let{zone:i,target:s}=le.findDropTarget(this,t,n,this._edges);if(this._tabsConstrained&&e.source!==this||i==="invalid"){e.dropAction="none";return}let o=e.mimeData;let r=o.getData("application/vnd.lumino.widget-factory");if(typeof r!=="function"){e.dropAction="none";return}let a=r();if(!(a instanceof E)){e.dropAction="none";return}if(a.contains(this)){e.dropAction="none";return}let l=s?le.getDropRef(s.tabBar):null;switch(i){case"root-all":this.addWidget(a);break;case"root-top":this.addWidget(a,{mode:"split-top"});break;case"root-left":this.addWidget(a,{mode:"split-left"});break;case"root-right":this.addWidget(a,{mode:"split-right"});break;case"root-bottom":this.addWidget(a,{mode:"split-bottom"});break;case"widget-all":this.addWidget(a,{mode:"tab-after",ref:l});break;case"widget-top":this.addWidget(a,{mode:"split-top",ref:l});break;case"widget-left":this.addWidget(a,{mode:"split-left",ref:l});break;case"widget-right":this.addWidget(a,{mode:"split-right",ref:l});break;case"widget-bottom":this.addWidget(a,{mode:"split-bottom",ref:l});break;case"widget-tab":this.addWidget(a,{mode:"tab-after",ref:l});break;default:throw"unreachable"}e.dropAction=e.proposedAction;e.stopPropagation();this.activateWidget(a)}_evtKeyDown(e){e.preventDefault();e.stopPropagation();if(e.keyCode===27){this._releaseMouse();d.MessageLoop.postMessage(this,le.LayoutModified)}}_evtPointerDown(e){if(e.button!==0){return}let t=this.layout;let n=e.target;let s=(0,i.find)(t.handles(),(e=>e.contains(n)));if(!s){return}e.preventDefault();e.stopPropagation();this._document.addEventListener("keydown",this,true);this._document.addEventListener("pointerup",this,true);this._document.addEventListener("pointermove",this,true);this._document.addEventListener("contextmenu",this,true);let o=s.getBoundingClientRect();let r=e.clientX-o.left;let a=e.clientY-o.top;let l=window.getComputedStyle(s);let d=g.Drag.overrideCursor(l.cursor,this._document);this._pressData={handle:s,deltaX:r,deltaY:a,override:d}}_evtPointerMove(e){if(!this._pressData){return}e.preventDefault();e.stopPropagation();let t=this.node.getBoundingClientRect();let n=e.clientX-t.left-this._pressData.deltaX;let i=e.clientY-t.top-this._pressData.deltaY;let s=this.layout;s.moveHandle(this._pressData.handle,n,i)}_evtPointerUp(e){if(e.button!==0){return}e.preventDefault();e.stopPropagation();this._releaseMouse();d.MessageLoop.postMessage(this,le.LayoutModified)}_releaseMouse(){if(!this._pressData){return}this._pressData.override.dispose();this._pressData=null;this._document.removeEventListener("keydown",this,true);this._document.removeEventListener("pointerup",this,true);this._document.removeEventListener("pointermove",this,true);this._document.removeEventListener("contextmenu",this,true)}_showOverlay(e,t){let{zone:n,target:i}=le.findDropTarget(this,e,t,this._edges);if(n==="invalid"){this.overlay.hide(100);return n}let s;let o;let r;let l;let d=a.ElementExt.boxSizing(this.node);let c=this.node.getBoundingClientRect();switch(n){case"root-all":s=d.paddingTop;o=d.paddingLeft;r=d.paddingRight;l=d.paddingBottom;break;case"root-top":s=d.paddingTop;o=d.paddingLeft;r=d.paddingRight;l=c.height*le.GOLDEN_RATIO;break;case"root-left":s=d.paddingTop;o=d.paddingLeft;r=c.width*le.GOLDEN_RATIO;l=d.paddingBottom;break;case"root-right":s=d.paddingTop;o=c.width*le.GOLDEN_RATIO;r=d.paddingRight;l=d.paddingBottom;break;case"root-bottom":s=c.height*le.GOLDEN_RATIO;o=d.paddingLeft;r=d.paddingRight;l=d.paddingBottom;break;case"widget-all":s=i.top;o=i.left;r=i.right;l=i.bottom;break;case"widget-top":s=i.top;o=i.left;r=i.right;l=i.bottom+i.height/2;break;case"widget-left":s=i.top;o=i.left;r=i.right+i.width/2;l=i.bottom;break;case"widget-right":s=i.top;o=i.left+i.width/2;r=i.right;l=i.bottom;break;case"widget-bottom":s=i.top+i.height/2;o=i.left;r=i.right;l=i.bottom;break;case"widget-tab":{const e=i.tabBar.node.getBoundingClientRect().height;s=i.top;o=i.left;r=i.right;l=i.bottom+i.height-e;break}default:throw"unreachable"}this.overlay.show({top:s,left:o,right:r,bottom:l});return n}_createTabBar(){let e=this._renderer.createTabBar(this._document);le.isGeneratedTabBarProperty.set(e,true);if(this._mode==="single-document"){e.hide()}e.tabsMovable=this._tabsMovable;e.allowDeselect=false;e.addButtonEnabled=this._addButtonEnabled;e.removeBehavior="select-previous-tab";e.insertBehavior="select-tab-if-needed";e.tabMoved.connect(this._onTabMoved,this);e.currentChanged.connect(this._onCurrentChanged,this);e.tabCloseRequested.connect(this._onTabCloseRequested,this);e.tabDetachRequested.connect(this._onTabDetachRequested,this);e.tabActivateRequested.connect(this._onTabActivateRequested,this);e.addRequested.connect(this._onTabAddRequested,this);return e}_createHandle(){return this._renderer.createHandle()}_onTabMoved(){d.MessageLoop.postMessage(this,le.LayoutModified)}_onCurrentChanged(e,t){let{previousTitle:n,currentTitle:i}=t;if(n){n.owner.hide()}if(i){i.owner.show()}if(a.Platform.IS_EDGE||a.Platform.IS_IE){d.MessageLoop.flush()}d.MessageLoop.postMessage(this,le.LayoutModified)}_onTabAddRequested(e){this._addRequested.emit(e)}_onTabActivateRequested(e,t){t.title.owner.activate()}_onTabCloseRequested(e,t){t.title.owner.close()}_onTabDetachRequested(e,t){if(this._drag){return}e.releaseMouse();let{title:n,tab:i,clientX:s,clientY:r,offset:a}=t;let l=new o.MimeData;let d=()=>n.owner;l.setData("application/vnd.lumino.widget-factory",d);let c=i.cloneNode(true);if(a){c.style.top=`-${a.y}px`;c.style.left=`-${a.x}px`}this._drag=new g.Drag({document:this._document,mimeData:l,dragImage:c,proposedAction:"move",supportedActions:"move",source:this});i.classList.add("lm-mod-hidden");let h=()=>{this._drag=null;i.classList.remove("lm-mod-hidden")};this._drag.start(s,r).then(h)}}(function(e){class t{constructor(){this._timer=-1;this._hidden=true;this.node=document.createElement("div");this.node.classList.add("lm-DockPanel-overlay");this.node.classList.add("lm-mod-hidden");this.node.style.position="absolute";this.node.style.contain="strict"}show(e){let t=this.node.style;t.top=`${e.top}px`;t.left=`${e.left}px`;t.right=`${e.right}px`;t.bottom=`${e.bottom}px`;clearTimeout(this._timer);this._timer=-1;if(!this._hidden){return}this._hidden=false;this.node.classList.remove("lm-mod-hidden")}hide(e){if(this._hidden){return}if(e<=0){clearTimeout(this._timer);this._timer=-1;this._hidden=true;this.node.classList.add("lm-mod-hidden");return}if(this._timer!==-1){return}this._timer=window.setTimeout((()=>{this._timer=-1;this._hidden=true;this.node.classList.add("lm-mod-hidden")}),e)}}e.Overlay=t;class n{createTabBar(e){let t=new ie({document:e});t.addClass("lm-DockPanel-tabBar");return t}createHandle(){let e=document.createElement("div");e.className="lm-DockPanel-handle";return e}}e.Renderer=n;e.defaultRenderer=new n})(ae||(ae={}));var le;(function(e){e.GOLDEN_RATIO=.618;e.DEFAULT_EDGES={top:12,right:40,bottom:40,left:40};e.LayoutModified=new d.ConflatableMessage("layout-modified");e.isGeneratedTabBarProperty=new h.AttachedProperty({name:"isGeneratedTabBar",create:()=>false});function t(e){if(e.isEmpty){return{main:null}}let t=Array.from(e.widgets());let n=e.selectedWidgets().next().value;let i=n?t.indexOf(n):-1;return{main:{type:"tab-area",widgets:t,currentIndex:i}}}e.createSingleDocumentConfig=t;function n(e,t,n,i){if(!a.ElementExt.hitTest(e.node,t,n)){return{zone:"invalid",target:null}}let s=e.layout;if(s.isEmpty){return{zone:"root-all",target:null}}if(e.mode==="multiple-document"){let s=e.node.getBoundingClientRect();let o=t-s.left+1;let r=n-s.top+1;let a=s.right-t;let l=s.bottom-n;let d=Math.min(r,a,l,o);switch(d){case r:if(ru&&d>u&&l>p&&c>p){return{zone:"widget-all",target:o}}r/=u;l/=p;d/=u;c/=p;let m=Math.min(r,l,d,c);let g;switch(m){case r:g="widget-left";break;case l:g="widget-top";break;case d:g="widget-right";break;case c:g="widget-bottom";break;default:throw"unreachable"}return{zone:g,target:o}}e.findDropTarget=n;function i(e){if(e.titles.length===0){return null}if(e.currentTitle){return e.currentTitle.owner}return e.titles[e.titles.length-1].owner}e.getDropRef=i})(le||(le={}));class de{constructor(){this._counter=0;this._widgets=[];this._activeWidget=null;this._currentWidget=null;this._numbers=new Map;this._nodes=new Map;this._activeChanged=new p.Signal(this);this._currentChanged=new p.Signal(this)}dispose(){if(this._counter<0){return}this._counter=-1;p.Signal.clearData(this);for(const e of this._widgets){e.node.removeEventListener("focus",this,true);e.node.removeEventListener("blur",this,true)}this._activeWidget=null;this._currentWidget=null;this._nodes.clear();this._numbers.clear();this._widgets.length=0}get currentChanged(){return this._currentChanged}get activeChanged(){return this._activeChanged}get isDisposed(){return this._counter<0}get currentWidget(){return this._currentWidget}get activeWidget(){return this._activeWidget}get widgets(){return this._widgets}focusNumber(e){let t=this._numbers.get(e);return t===undefined?-1:t}has(e){return this._numbers.has(e)}add(e){if(this._numbers.has(e)){return}let t=e.node.contains(document.activeElement);let n=t?this._counter++:-1;this._widgets.push(e);this._numbers.set(e,n);this._nodes.set(e.node,e);e.node.addEventListener("focus",this,true);e.node.addEventListener("blur",this,true);e.disposed.connect(this._onWidgetDisposed,this);if(t){this._setWidgets(e,e)}}remove(e){if(!this._numbers.has(e)){return}e.disposed.disconnect(this._onWidgetDisposed,this);e.node.removeEventListener("focus",this,true);e.node.removeEventListener("blur",this,true);i.ArrayExt.removeFirstOf(this._widgets,e);this._nodes.delete(e.node);this._numbers.delete(e);if(this._currentWidget!==e){return}let t=this._widgets.filter((e=>this._numbers.get(e)!==-1));let n=(0,i.max)(t,((e,t)=>{let n=this._numbers.get(e);let i=this._numbers.get(t);return n-i}))||null;this._setWidgets(n,null)}handleEvent(e){switch(e.type){case"focus":this._evtFocus(e);break;case"blur":this._evtBlur(e);break}}_setWidgets(e,t){let n=this._currentWidget;this._currentWidget=e;let i=this._activeWidget;this._activeWidget=t;if(n!==e){this._currentChanged.emit({oldValue:n,newValue:e})}if(i!==t){this._activeChanged.emit({oldValue:i,newValue:t})}}_evtFocus(e){let t=this._nodes.get(e.currentTarget);if(t!==this._currentWidget){this._numbers.set(t,this._counter++)}this._setWidgets(t,t)}_evtBlur(e){let t=this._nodes.get(e.currentTarget);let n=e.relatedTarget;if(!n){this._setWidgets(this._currentWidget,null);return}if(t.node.contains(n)){return}if(!(0,i.find)(this._widgets,(e=>e.node.contains(n)))){this._setWidgets(this._currentWidget,null);return}}_onWidgetDisposed(e){this.remove(e)}}class ce extends M{constructor(e={}){super(e);this._dirty=false;this._rowSpacing=4;this._columnSpacing=4;this._items=[];this._rowStarts=[];this._columnStarts=[];this._rowSizers=[new k];this._columnSizers=[new k];this._box=null;if(e.rowCount!==undefined){he.reallocSizers(this._rowSizers,e.rowCount)}if(e.columnCount!==undefined){he.reallocSizers(this._columnSizers,e.columnCount)}if(e.rowSpacing!==undefined){this._rowSpacing=he.clampValue(e.rowSpacing)}if(e.columnSpacing!==undefined){this._columnSpacing=he.clampValue(e.columnSpacing)}}dispose(){for(const e of this._items){let t=e.widget;e.dispose();t.dispose()}this._box=null;this._items.length=0;this._rowStarts.length=0;this._rowSizers.length=0;this._columnStarts.length=0;this._columnSizers.length=0;super.dispose()}get rowCount(){return this._rowSizers.length}set rowCount(e){if(e===this.rowCount){return}he.reallocSizers(this._rowSizers,e);if(this.parent){this.parent.fit()}}get columnCount(){return this._columnSizers.length}set columnCount(e){if(e===this.columnCount){return}he.reallocSizers(this._columnSizers,e);if(this.parent){this.parent.fit()}}get rowSpacing(){return this._rowSpacing}set rowSpacing(e){e=he.clampValue(e);if(this._rowSpacing===e){return}this._rowSpacing=e;if(this.parent){this.parent.fit()}}get columnSpacing(){return this._columnSpacing}set columnSpacing(e){e=he.clampValue(e);if(this._columnSpacing===e){return}this._columnSpacing=e;if(this.parent){this.parent.fit()}}rowStretch(e){let t=this._rowSizers[e];return t?t.stretch:-1}setRowStretch(e,t){let n=this._rowSizers[e];if(!n){return}t=he.clampValue(t);if(n.stretch===t){return}n.stretch=t;if(this.parent){this.parent.update()}}columnStretch(e){let t=this._columnSizers[e];return t?t.stretch:-1}setColumnStretch(e,t){let n=this._columnSizers[e];if(!n){return}t=he.clampValue(t);if(n.stretch===t){return}n.stretch=t;if(this.parent){this.parent.update()}}*[Symbol.iterator](){for(const e of this._items){yield e.widget}}addWidget(e){let t=i.ArrayExt.findFirstIndex(this._items,(t=>t.widget===e));if(t!==-1){return}this._items.push(new D(e));if(this.parent){this.attachWidget(e)}}removeWidget(e){let t=i.ArrayExt.findFirstIndex(this._items,(t=>t.widget===e));if(t===-1){return}let n=i.ArrayExt.removeAt(this._items,t);if(this.parent){this.detachWidget(e)}n.dispose()}init(){super.init();for(const e of this){this.attachWidget(e)}}attachWidget(e){if(this.parent.isAttached){d.MessageLoop.sendMessage(e,E.Msg.BeforeAttach)}this.parent.node.appendChild(e.node);if(this.parent.isAttached){d.MessageLoop.sendMessage(e,E.Msg.AfterAttach)}this.parent.fit()}detachWidget(e){if(this.parent.isAttached){d.MessageLoop.sendMessage(e,E.Msg.BeforeDetach)}this.parent.node.removeChild(e.node);if(this.parent.isAttached){d.MessageLoop.sendMessage(e,E.Msg.AfterDetach)}this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e);this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e);this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){if(this.parent.isVisible){this._update(e.width,e.height)}}onUpdateRequest(e){if(this.parent.isVisible){this._update(-1,-1)}}onFitRequest(e){if(this.parent.isAttached){this._fit()}}_fit(){for(let a=0,l=this.rowCount;a!e.isHidden));for(let a=0,l=e.length;a({row:0,column:0,rowSpan:1,columnSpan:1}),changed:a});function t(e){let t=Math.max(0,Math.floor(e.row||0));let n=Math.max(0,Math.floor(e.column||0));let i=Math.max(1,Math.floor(e.rowSpan||0));let s=Math.max(1,Math.floor(e.columnSpan||0));return{row:t,column:n,rowSpan:i,columnSpan:s}}e.normalizeConfig=t;function n(e){return Math.max(0,Math.floor(e))}e.clampValue=n;function i(t,n){let i=e.cellConfigProperty.get(t.widget);let s=e.cellConfigProperty.get(n.widget);return i.rowSpan-s.rowSpan}e.rowSpanCmp=i;function s(t,n){let i=e.cellConfigProperty.get(t.widget);let s=e.cellConfigProperty.get(n.widget);return i.columnSpan-s.columnSpan}e.columnSpanCmp=s;function o(e,t){t=Math.max(1,Math.floor(t));while(e.lengtht){e.length=t}}e.reallocSizers=o;function r(e,t,n,i){if(n=i){return}let o=(i-s)/(n-t+1);for(let r=t;r<=n;++r){e[r].minSize+=o}}e.distributeMin=r;function a(e){if(e.parent&&e.parent.layout instanceof ce){e.parent.fit()}}})(he||(he={}));class ue extends E{constructor(e={}){super({node:pe.createNode()});this._activeIndex=-1;this._tabFocusIndex=0;this._menus=[];this._childMenu=null;this._overflowMenu=null;this._menuItemSizes=[];this._overflowIndex=-1;this.addClass("lm-MenuBar");this.setFlag(E.Flag.DisallowLayout);this.renderer=e.renderer||ue.defaultRenderer;this._forceItemsPosition=e.forceItemsPosition||{forceX:true,forceY:true};this._overflowMenuOptions=e.overflowMenuOptions||{isVisible:true}}dispose(){this._closeChildMenu();this._menus.length=0;super.dispose()}get childMenu(){return this._childMenu}get overflowIndex(){return this._overflowIndex}get overflowMenu(){return this._overflowMenu}get contentNode(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]}get activeMenu(){return this._menus[this._activeIndex]||null}set activeMenu(e){this.activeIndex=e?this._menus.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){if(e<0||e>=this._menus.length){e=-1}if(e>-1&&this._menus[e].items.length===0){e=-1}if(this._activeIndex===e){return}this._activeIndex=e;this.update()}get menus(){return this._menus}openActiveMenu(){if(this._activeIndex===-1){return}this._openChildMenu();if(this._childMenu){this._childMenu.activeIndex=-1;this._childMenu.activateNextItem()}}addMenu(e,t=true){this.insertMenu(this._menus.length,e,t)}insertMenu(e,t,n=true){this._closeChildMenu();let s=this._menus.indexOf(t);let o=Math.max(0,Math.min(e,this._menus.length));if(s===-1){i.ArrayExt.insert(this._menus,o,t);t.addClass("lm-MenuBar-menu");t.aboutToClose.connect(this._onMenuAboutToClose,this);t.menuRequested.connect(this._onMenuMenuRequested,this);t.title.changed.connect(this._onTitleChanged,this);if(n){this.update()}return}if(o===this._menus.length){o--}if(s===o){return}i.ArrayExt.move(this._menus,s,o);if(n){this.update()}}removeMenu(e,t=true){this.removeMenuAt(this._menus.indexOf(e),t)}removeMenuAt(e,t=true){this._closeChildMenu();let n=i.ArrayExt.removeAt(this._menus,e);if(!n){return}n.aboutToClose.disconnect(this._onMenuAboutToClose,this);n.menuRequested.disconnect(this._onMenuMenuRequested,this);n.title.changed.disconnect(this._onTitleChanged,this);n.removeClass("lm-MenuBar-menu");if(t){this.update()}}clearMenus(){if(this._menus.length===0){return}this._closeChildMenu();for(let e of this._menus){e.aboutToClose.disconnect(this._onMenuAboutToClose,this);e.menuRequested.disconnect(this._onMenuMenuRequested,this);e.title.changed.disconnect(this._onTitleChanged,this);e.removeClass("lm-MenuBar-menu")}this._menus.length=0;this.update()}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":this._evtMouseMove(e);break;case"focusout":this._evtFocusOut(e);break;case"contextmenu":e.preventDefault();e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("keydown",this);this.node.addEventListener("mousedown",this);this.node.addEventListener("mousemove",this);this.node.addEventListener("focusout",this);this.node.addEventListener("contextmenu",this)}onAfterDetach(e){this.node.removeEventListener("keydown",this);this.node.removeEventListener("mousedown",this);this.node.removeEventListener("mousemove",this);this.node.removeEventListener("focusout",this);this.node.removeEventListener("contextmenu",this);this._closeChildMenu()}onActivateRequest(e){if(this.isAttached){this._focusItemAt(0)}}onResize(e){this.update();super.onResize(e)}onUpdateRequest(e){var t;let n=this._menus;let i=this.renderer;let s=this._activeIndex;let o=this._tabFocusIndex>=0&&this._tabFocusIndex-1?this._overflowIndex:n.length;let a=0;let l=false;r=this._overflowMenu!==null?r-1:r;let d=new Array(r);for(let c=0;c{this._tabFocusIndex=c;this.activeIndex=c}});a+=this._menuItemSizes[c];if(n[c].title.label===this._overflowMenuOptions.title){l=true;r--}}if(this._overflowMenuOptions.isVisible){if(this._overflowIndex>-1&&!l){if(this._overflowMenu===null){const e=(t=this._overflowMenuOptions.title)!==null&&t!==void 0?t:"...";this._overflowMenu=new Q({commands:new v.CommandRegistry});this._overflowMenu.title.label=e;this._overflowMenu.title.mnemonic=0;this.addMenu(this._overflowMenu,false)}for(let e=n.length-2;e>=r;e--){const t=this.menus[e];t.title.mnemonic=0;this._overflowMenu.insertItem(0,{type:"submenu",submenu:t});this.removeMenu(t,false)}d[r]=i.renderItem({title:this._overflowMenu.title,active:r===s&&n[r].items.length!==0,tabbable:r===o,disabled:n[r].items.length===0,onfocus:()=>{this._tabFocusIndex=r;this.activeIndex=r}});r++}else if(this._overflowMenu!==null){let e=this._overflowMenu.items;let t=this.node.offsetWidth;let s=this._overflowMenu.items.length;for(let l=0;lthis._menuItemSizes[s]){let t=e[0].submenu;this._overflowMenu.removeItemAt(0);this.insertMenu(r,t,false);d[r]=i.renderItem({title:t.title,active:false,tabbable:r===o,disabled:n[r].items.length===0,onfocus:()=>{this._tabFocusIndex=r;this.activeIndex=r}});r++}}if(this._overflowMenu.items.length===0){this.removeMenu(this._overflowMenu,false);d.pop();this._overflowMenu=null;this._overflowIndex=-1}}}b.VirtualDOM.render(d,this.contentNode);this._updateOverflowIndex()}_updateOverflowIndex(){if(!this._overflowMenuOptions.isVisible){return}const e=this.contentNode.childNodes;let t=this.node.offsetWidth;let n=0;let i=-1;let s=e.length;if(this._menuItemSizes.length==0){for(let o=0;ot&&i===-1){i=o}}}else{for(let e=0;et){i=e;break}}}this._overflowIndex=i}_evtKeyDown(e){let t=e.keyCode;if(t===9){this.activeIndex=-1;return}e.preventDefault();e.stopPropagation();if(t===13||t===32||t===38||t===40){this.activeIndex=this._tabFocusIndex;if(this.activeIndex!==this._tabFocusIndex){return}this.openActiveMenu();return}if(t===27){this._closeChildMenu();this._focusItemAt(this.activeIndex);return}if(t===37||t===39){let e=t===37?-1:1;let n=this._tabFocusIndex+e;let i=this._menus.length;for(let t=0;ta.ElementExt.hitTest(t,e.clientX,e.clientY)));if(t===-1){this._closeChildMenu();return}if(e.button!==0){return}if(this._childMenu){this._closeChildMenu();this.activeIndex=t}else{e.preventDefault();const n=this._positionForMenu(t);Q.saveWindowData();this.activeIndex=t;this._openChildMenu(n)}}_evtMouseMove(e){let t=i.ArrayExt.findFirstIndex(this.contentNode.children,(t=>a.ElementExt.hitTest(t,e.clientX,e.clientY)));if(t===this._activeIndex){return}if(t===-1&&this._childMenu){return}const n=t>=0&&this._childMenu?this._positionForMenu(t):null;Q.saveWindowData();this.activeIndex=t;if(n){this._openChildMenu(n)}}_positionForMenu(e){let t=this.contentNode.children[e];let{left:n,bottom:i}=t.getBoundingClientRect();return{top:i,left:n}}_evtFocusOut(e){if(!this._childMenu&&!this.node.contains(e.relatedTarget)){this.activeIndex=-1}}_focusItemAt(e){const t=this.contentNode.childNodes[e];if(t){t.focus()}}_openChildMenu(e={}){let t=this.activeMenu;if(!t){this._closeChildMenu();return}let n=this._childMenu;if(n===t){return}this._childMenu=t;if(n){n.close()}else{document.addEventListener("mousedown",this,true)}this._tabFocusIndex=this.activeIndex;d.MessageLoop.sendMessage(this,E.Msg.UpdateRequest);let{left:i,top:s}=e;if(typeof i==="undefined"||typeof s==="undefined"){({left:i,top:s}=this._positionForMenu(this._activeIndex))}if(!n){this.addClass("lm-mod-active")}if(t.items.length>0){t.open(i,s,this._forceItemsPosition)}}_closeChildMenu(){if(!this._childMenu){return}this.removeClass("lm-mod-active");document.removeEventListener("mousedown",this,true);let e=this._childMenu;this._childMenu=null;e.close();this.activeIndex=-1}_onMenuAboutToClose(e){if(e!==this._childMenu){return}this.removeClass("lm-mod-active");document.removeEventListener("mousedown",this,true);this._childMenu=null;this.activeIndex=-1}_onMenuMenuRequested(e,t){if(e!==this._childMenu){return}let n=this._activeIndex;let i=this._menus.length;switch(t){case"next":this.activeIndex=n===i-1?0:n+1;break;case"previous":this.activeIndex=n===0?i-1:n-1;break}this.openActiveMenu()}_onTitleChanged(){this.update()}}(function(e){class t{renderItem(e){let t=this.createItemClass(e);let n=this.createItemDataset(e);let i=this.createItemARIA(e);return b.h.li({className:t,dataset:n,...e.disabled?{}:{tabindex:e.tabbable?"0":"-1"},onfocus:e.onfocus,...i},this.renderIcon(e),this.renderLabel(e))}renderIcon(e){let t=this.createIconClass(e);return b.h.div({className:t},e.title.icon,e.title.iconLabel)}renderLabel(e){let t=this.formatLabel(e);return b.h.div({className:"lm-MenuBar-itemLabel"},t)}createItemClass(e){let t="lm-MenuBar-item";if(e.title.className){t+=` ${e.title.className}`}if(e.active&&!e.disabled){t+=" lm-mod-active"}return t}createItemDataset(e){return e.title.dataset}createItemARIA(e){return{role:"menuitem","aria-haspopup":"true","aria-disabled":e.disabled?"true":"false"}}createIconClass(e){let t="lm-MenuBar-itemIcon";let n=e.title.iconClass;return n?`${t} ${n}`:t}formatLabel(e){let{label:t,mnemonic:n}=e.title;if(n<0||n>=t.length){return t}let i=t.slice(0,n);let s=t.slice(n+1);let o=t[n];let r=b.h.span({className:"lm-MenuBar-itemMnemonic"},o);return[i,r,s]}}e.Renderer=t;e.defaultRenderer=new t})(ue||(ue={}));var pe;(function(e){function t(){let e=document.createElement("div");let t=document.createElement("ul");t.className="lm-MenuBar-content";e.appendChild(t);t.setAttribute("role","menubar");return e}e.createNode=t;function n(e,t,n){let i=-1;let s=-1;let o=false;let r=t.toUpperCase();for(let a=0,l=e.length;a=0&&c{this._repeatTimer=-1;if(!this._pressData){return}let e=this._pressData.part;if(e==="thumb"){return}this._repeatTimer=window.setTimeout(this._onRepeat,20);let t=this._pressData.mouseX;let n=this._pressData.mouseY;if(e==="decrement"){if(!a.ElementExt.hitTest(this.decrementNode,t,n)){return}this._stepRequested.emit("decrement");return}if(e==="increment"){if(!a.ElementExt.hitTest(this.incrementNode,t,n)){return}this._stepRequested.emit("increment");return}if(e==="track"){if(!a.ElementExt.hitTest(this.trackNode,t,n)){return}let e=this.thumbNode;if(a.ElementExt.hitTest(e,t,n)){return}let i=e.getBoundingClientRect();let s;if(this._orientation==="horizontal"){s=t1){this.widgets.forEach((e=>{e.hiddenMode=this._hiddenMode}))}}dispose(){for(const e of this._items){e.dispose()}this._box=null;this._items.length=0;super.dispose()}attachWidget(e,t){if(this._hiddenMode===E.HiddenMode.Scale&&this._items.length>0){if(this._items.length===1){this.widgets[0].hiddenMode=E.HiddenMode.Scale}t.hiddenMode=E.HiddenMode.Scale}else{t.hiddenMode=E.HiddenMode.Display}i.ArrayExt.insert(this._items,e,new D(t));if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.BeforeAttach)}this.parent.node.appendChild(t.node);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.AfterAttach)}this.parent.fit()}moveWidget(e,t,n){i.ArrayExt.move(this._items,e,t);this.parent.update()}detachWidget(e,t){let n=i.ArrayExt.removeAt(this._items,e);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.BeforeDetach)}this.parent.node.removeChild(t.node);if(this.parent.isAttached){d.MessageLoop.sendMessage(t,E.Msg.AfterDetach)}n.widget.node.style.zIndex="";if(this._hiddenMode===E.HiddenMode.Scale){t.hiddenMode=E.HiddenMode.Display;if(this._items.length===1){this._items[0].widget.hiddenMode=E.HiddenMode.Display}}n.dispose();this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e);this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e);this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){if(this.parent.isVisible){this._update(e.width,e.height)}}onUpdateRequest(e){if(this.parent.isVisible){this._update(-1,-1)}}onFitRequest(e){if(this.parent.isAttached){this._fit()}}_fit(){let e=0;let t=0;for(let s=0,o=this._items.length;s{"use strict";var i=n(85072);var s=n.n(i);var o=n(97825);var r=n.n(o);var a=n(77659);var l=n.n(a);var d=n(55056);var c=n.n(d);var h=n(10540);var u=n.n(h);var p=n(41113);var m=n.n(p);var g=n(43210);var f={};f.styleTagTransform=m();f.setAttributes=c();f.insert=l().bind(null,"head");f.domAPI=r();f.insertStyleElement=u();var v=s()(g.A,f);const _=g.A&&g.A.locals?g.A.locals:undefined},24118:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n|\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n#jp-MainLogo {\n width: calc(var(--jp-private-sidebar-tab-width) + var(--jp-border-width));\n}\n\n#jp-top-bar {\n --jp-private-toolbar-height: var(--jp-private-menu-panel-height);\n\n flex: 1 1 auto;\n padding: 0 2px;\n box-shadow: none;\n border: none;\n align-items: center;\n}\n",""]);const l=a},30966:(e,t,n)=>{"use strict";n.d(t,{A:()=>_});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=n(14016);var l=n(5173);var d=n(51632);var c=n(60341);var h=n(10891);var u=n(83161);var p=n(68010);var m=n(40348);var g=n(43701);var f=n(93768);var v=r()(s());v.i(a.A);v.i(l.A);v.i(d.A);v.i(c.A);v.i(h.A);v.i(u.A);v.i(p.A);v.i(m.A);v.i(g.A);v.i(f.A);v.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* Sibling imports */\n",""]);const _=v},68010:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-flat-button-height: 24px;\n --jp-flat-button-padding: 8px 12px;\n}\n\n/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-ThemedContainer button {\n border-radius: var(--jp-border-radius);\n}\n\n.jp-ThemedContainer button:focus-visible {\n outline: 1px solid var(--jp-accept-color-active, var(--jp-brand-color1));\n outline-offset: -1px;\n}\n\nbutton.jp-mod-styled.jp-mod-accept {\n background: var(--jp-accept-color-normal, var(--md-blue-500, #2196f3));\n border: 0;\n color: white;\n}\n\nbutton.jp-mod-styled.jp-mod-accept:hover {\n background: var(--jp-accept-color-hover, var(--md-blue-600, #1e88e5));\n}\n\nbutton.jp-mod-styled.jp-mod-accept:active {\n background: var(--jp-accept-color-active, var(--md-blue-700, #1976d2));\n}\n\nbutton.jp-mod-styled.jp-mod-accept:focus-visible {\n outline: 1px solid var(--jp-accept-color-active, var(--jp-brand-color1));\n}\n\nbutton.jp-mod-styled.jp-mod-reject {\n background: var(--jp-reject-color-normal, var(--md-grey-500, #9e9e9e));\n border: 0;\n color: white;\n}\n\nbutton.jp-mod-styled.jp-mod-reject:hover {\n background: var(--jp-reject-color-hover, var(--md-grey-600, #757575));\n}\n\nbutton.jp-mod-styled.jp-mod-reject:active {\n background: var(--jp-reject-color-active, var(--md-grey-700, #616161));\n}\n\nbutton.jp-mod-styled.jp-mod-reject:focus-visible {\n outline: 1px solid var(--jp-reject-color-active, var(--md-grey-700, #616161));\n}\n\nbutton.jp-mod-styled.jp-mod-warn {\n background: var(--jp-warn-color-normal, var(--jp-error-color1));\n border: 0;\n color: white;\n}\n\nbutton.jp-mod-styled.jp-mod-warn:hover {\n background: var(--jp-warn-color-hover, var(--md-red-600, #e53935));\n}\n\nbutton.jp-mod-styled.jp-mod-warn:active {\n background: var(--jp-warn-color-active, var(--md-red-700, #d32f2f));\n}\n\nbutton.jp-mod-styled.jp-mod-warn:focus-visible {\n outline: 1px solid var(--jp-warn-color-active, var(--md-red-700, #d32f2f));\n}\n\n.jp-Button-flat {\n text-decoration: none;\n padding: var(--jp-flat-button-padding);\n font-weight: 500;\n background-color: transparent;\n height: var(--jp-private-running-shutdown-button-height);\n line-height: var(--jp-private-running-shutdown-button-height);\n transition: background-color 0.1s ease;\n border-radius: 2px;\n}\n\n.jp-Button-flat:focus {\n border: none;\n box-shadow: none;\n}\n",""]);const l=a},14016:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-menu-panel-height: 27px;\n}\n\n.lm-Widget.lm-mod-hidden {\n display: none !important;\n}\n\n.jp-ThemedContainer {\n font-family: var(--jp-ui-font-family);\n background: var(--jp-layout-color3);\n margin: 0;\n padding: 0;\n overflow: hidden;\n}\n\n.jp-LabShell {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.jp-LabShell.jp-mod-devMode {\n border-top: 4px solid red;\n}\n\n#jp-main-dock-panel {\n padding: 5px;\n}\n\n#jp-main-dock-panel[data-mode='single-document'] {\n padding: 0;\n}\n\n#jp-main-dock-panel[data-mode='single-document'] .jp-MainAreaWidget {\n border: none;\n}\n\n#jp-top-panel {\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n background: var(--jp-layout-color1);\n display: flex;\n min-height: var(--jp-private-menubar-height);\n overflow: visible;\n\n /* relax lumino strict CSS contaiment to allow painting the menu bar item\n over the menu in order to create an illusion of partial border */\n contain: style size !important;\n}\n\n#jp-menu-panel {\n min-height: var(--jp-private-menu-panel-height);\n background: var(--jp-layout-color1);\n}\n\n#jp-down-stack {\n border-bottom: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n.jp-LabShell[data-shell-mode='single-document'] #jp-top-panel {\n border-bottom: none;\n}\n\n.jp-LabShell[data-shell-mode='single-document'] #jp-menu-panel {\n padding-left: calc(\n var(--jp-private-sidebar-tab-width) + var(--jp-border-width)\n );\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n\n /* Adjust min-height so open menus show up in the right place */\n min-height: calc(\n var(--jp-private-menu-panel-height) + var(--jp-border-width)\n );\n}\n\n#jp-bottom-panel {\n background: var(--jp-layout-color1);\n display: flex;\n}\n\n#jp-single-document-mode {\n margin: 0 8px;\n display: flex;\n align-items: center;\n}\n",""]);const l=a},5173:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.lm-DataGrid {\n min-width: 64px;\n min-height: 64px;\n border: 1px solid #a0a0a0;\n}\n\n.lm-DataGrid-scrollCorner {\n background-color: #f0f0f0;\n}\n\n.lm-DataGrid-scrollCorner::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n background-color: #a0a0a0;\n}\n",""]);const l=a},51632:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| DockPanel\n|----------------------------------------------------------------------------*/\n\n.lm-DockPanel-widget,\n.lm-TabPanel-stackedPanel {\n background: var(--jp-layout-color0);\n border-left: var(--jp-border-width) solid var(--jp-border-color1);\n border-right: var(--jp-border-width) solid var(--jp-border-color1);\n border-bottom: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n.lm-DockPanel-overlay {\n background: rgba(33, 150, 243, 0.1);\n border: var(--jp-border-width) dashed var(--jp-brand-color1);\n transition-property: top, left, right, bottom;\n transition-duration: 150ms;\n transition-timing-function: ease;\n}\n\n.lm-DockPanel-overlay.lm-mod-root-top,\n.lm-DockPanel-overlay.lm-mod-root-left,\n.lm-DockPanel-overlay.lm-mod-root-right,\n.lm-DockPanel-overlay.lm-mod-root-bottom,\n.lm-DockPanel-overlay.lm-mod-root-center {\n border-width: 2px;\n}\n",""]);const l=a},60341:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-menubar-height: 28px;\n --jp-private-menu-item-height: 24px;\n}\n\n/*-----------------------------------------------------------------------------\n| MenuBar\n|----------------------------------------------------------------------------*/\n\n.lm-MenuBar {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n overflow: hidden;\n}\n\n.lm-MenuBar:hover {\n overflow-x: auto;\n}\n\n.lm-MenuBar-menu.jp-ThemedContainer {\n top: calc(-2 * var(--jp-border-width));\n scrollbar-width: none;\n -ms-overflow-style: none;\n overflow: auto;\n background:\n linear-gradient(var(--jp-layout-color0) 30%, rgba(0, 0, 0, 0)) center top,\n linear-gradient(rgba(0, 0, 0, 0), var(--jp-layout-color0) 70%) center bottom,\n radial-gradient(\n farthest-side at 50% 0,\n color-mix(\n in hsl,\n var(--jp-layout-color0) 50%,\n var(--jp-inverse-layout-color0) 30%\n ),\n rgba(0, 0, 0, 0)\n )\n center top,\n radial-gradient(\n farthest-side at 50% 100%,\n color-mix(\n in hsl,\n var(--jp-layout-color0) 50%,\n var(--jp-inverse-layout-color0) 30%\n ),\n rgba(0, 0, 0, 0)\n )\n center bottom;\n background-color: var(--jp-layout-color0);\n background-repeat: no-repeat;\n background-size:\n 100% 40px,\n 100% 40px,\n 100% 14px,\n 100% 14px;\n background-attachment: local, local, scroll, scroll;\n}\n\n.lm-MenuBar-menu.jp-ThemedContainer::-webkit-scrollbar {\n display: none;\n}\n\n.lm-MenuBar-item {\n padding: 0 8px;\n border-left: var(--jp-border-width) solid transparent;\n border-right: var(--jp-border-width) solid transparent;\n border-top: var(--jp-border-width) solid transparent;\n line-height: calc(\n var(--jp-private-menubar-height) - var(--jp-border-width) * 2\n );\n}\n\n.lm-MenuBar-content:focus-visible {\n outline-offset: -3px; /* this value is a compromise between Firefox, Chrome,\n and Safari over this outline's visibility and discretion */\n}\n\n.lm-MenuBar:focus-visible {\n outline: 1px solid var(--jp-accept-color-active, var(--jp-brand-color1));\n outline-offset: -1px;\n}\n\n.lm-MenuBar-menu:focus-visible,\n.lm-MenuBar-item:focus-visible,\n.lm-Menu-item:focus-visible {\n outline: unset;\n outline-offset: unset;\n -moz-outline-radius: unset;\n}\n\n.lm-MenuBar-item.lm-mod-active {\n background: var(--jp-layout-color2);\n}\n\n.lm-MenuBar.lm-mod-active .lm-MenuBar-item.lm-mod-active {\n z-index: 10001;\n background: var(--jp-layout-color0);\n color: var(--jp-ui-font-color0);\n border-left: var(--jp-border-width) solid var(--jp-border-color1);\n border-right: var(--jp-border-width) solid var(--jp-border-color1);\n box-shadow: var(--jp-elevation-z6);\n}\n\n/* stylelint-disable-next-line selector-max-class */\n.jp-LabShell[data-shell-mode='single-document']\n .lm-MenuBar.lm-mod-active\n .lm-MenuBar-item.lm-mod-active {\n border-top: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n.lm-MenuBar-item.lm-mod-disabled {\n color: var(--jp-ui-font-color3);\n}\n\n.lm-MenuBar-item.lm-type-separator {\n margin: 2px;\n padding: 0;\n border: none;\n border-left: var(--jp-border-width) solid var(--jp-border-color2);\n}\n\n.lm-MenuBar-itemMnemonic {\n text-decoration: underline;\n}\n\n/*-----------------------------------------------------------------------------\n| Menu\n|----------------------------------------------------------------------------*/\n\n.lm-Menu {\n z-index: 10000;\n padding: 4px 0;\n background: var(--jp-layout-color0);\n color: var(--jp-ui-font-color0);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n font-size: var(--jp-ui-font-size1);\n box-shadow: var(--jp-elevation-z6);\n}\n\n.lm-Menu-item {\n min-height: var(--jp-private-menu-item-height);\n max-height: var(--jp-private-menu-item-height);\n padding: 0;\n line-height: var(--jp-private-menu-item-height);\n}\n\n.lm-Menu-item.lm-mod-active {\n background: var(--jp-layout-color2);\n}\n\n.lm-Menu-item.lm-mod-disabled {\n color: var(--jp-ui-font-color3);\n}\n\n.lm-Menu-itemIcon {\n width: 21px;\n padding: 0 2px 0 4px;\n margin-top: -2px;\n}\n\n.lm-Menu-itemLabel {\n padding: 0 32px 0 2px;\n}\n\n.lm-Menu-itemMnemonic {\n text-decoration: underline;\n}\n\n.lm-Menu-itemShortcut {\n padding: 0;\n}\n\n.lm-Menu-itemSubmenuIcon {\n width: 18px;\n padding: 0 4px 0 0;\n}\n\n.lm-Menu-item[data-type='separator'] > div {\n padding: 0;\n height: 9px;\n}\n\n.lm-Menu-item[data-type='separator'] > div::after {\n content: '';\n display: block;\n position: relative;\n top: 4px;\n border-top: var(--jp-border-width) solid var(--jp-layout-color2);\n mix-blend-mode: multiply;\n}\n\n/* gray out icon/caret for disabled menu items */\n.lm-Menu-item.lm-mod-disabled > .lm-Menu-itemIcon,\n.lm-Menu-item[data-type='submenu'].lm-mod-disabled > .lm-Menu-itemSubmenuIcon {\n opacity: 0.4;\n}\n",""]);const l=a},10891:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*\n * Mozilla scrollbar styling\n */\n\n/* use standard opaque scrollbars for most nodes */\n[data-jp-theme-scrollbars='true'] {\n scrollbar-color: rgb(var(--jp-scrollbar-thumb-color))\n var(--jp-scrollbar-background-color);\n}\n\n/* for code nodes, use a transparent style of scrollbar. These selectors\n * will match lower in the tree, and so will override the above */\n[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar,\n[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar {\n scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;\n}\n\n/* tiny scrollbar */\n\n.jp-scrollbar-tiny {\n scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;\n scrollbar-width: thin;\n}\n\n/* tiny scrollbar */\n\n.jp-scrollbar-tiny::-webkit-scrollbar,\n.jp-scrollbar-tiny::-webkit-scrollbar-corner {\n background-color: transparent;\n height: 4px;\n width: 4px;\n}\n\n.jp-scrollbar-tiny::-webkit-scrollbar-thumb {\n background: rgba(var(--jp-scrollbar-thumb-color), 0.5);\n}\n\n.jp-scrollbar-tiny::-webkit-scrollbar-track:horizontal {\n border-left: 0 solid transparent;\n border-right: 0 solid transparent;\n}\n\n.jp-scrollbar-tiny::-webkit-scrollbar-track:vertical {\n border-top: 0 solid transparent;\n border-bottom: 0 solid transparent;\n}\n\n/*\n * Lumino\n */\n\n.lm-ScrollBar[data-orientation='horizontal'] {\n min-height: 16px;\n max-height: 16px;\n min-width: 45px;\n border-top: 1px solid #a0a0a0;\n}\n\n.lm-ScrollBar[data-orientation='vertical'] {\n min-width: 16px;\n max-width: 16px;\n min-height: 45px;\n border-left: 1px solid #a0a0a0;\n}\n\n.lm-ScrollBar-button {\n background-color: #f0f0f0;\n background-position: center center;\n min-height: 15px;\n max-height: 15px;\n min-width: 15px;\n max-width: 15px;\n}\n\n.lm-ScrollBar-button:hover {\n background-color: #dadada;\n}\n\n.lm-ScrollBar-button.lm-mod-active {\n background-color: #cdcdcd;\n}\n\n.lm-ScrollBar-track {\n background: #f0f0f0;\n}\n\n.lm-ScrollBar-thumb {\n background: #cdcdcd;\n}\n\n.lm-ScrollBar-thumb:hover {\n background: #bababa;\n}\n\n.lm-ScrollBar-thumb.lm-mod-active {\n background: #a0a0a0;\n}\n\n.lm-ScrollBar[data-orientation='horizontal'] .lm-ScrollBar-thumb {\n height: 100%;\n min-width: 15px;\n border-left: 1px solid #a0a0a0;\n border-right: 1px solid #a0a0a0;\n}\n\n.lm-ScrollBar[data-orientation='vertical'] .lm-ScrollBar-thumb {\n width: 100%;\n min-height: 15px;\n border-top: 1px solid #a0a0a0;\n border-bottom: 1px solid #a0a0a0;\n}\n\n.lm-ScrollBar[data-orientation='horizontal']\n .lm-ScrollBar-button[data-action='decrement'] {\n background-image: var(--jp-icon-caret-left);\n background-size: 17px;\n}\n\n.lm-ScrollBar[data-orientation='horizontal']\n .lm-ScrollBar-button[data-action='increment'] {\n background-image: var(--jp-icon-caret-right);\n background-size: 17px;\n}\n\n.lm-ScrollBar[data-orientation='vertical']\n .lm-ScrollBar-button[data-action='decrement'] {\n background-image: var(--jp-icon-caret-up);\n background-size: 17px;\n}\n\n.lm-ScrollBar[data-orientation='vertical']\n .lm-ScrollBar-button[data-action='increment'] {\n background-image: var(--jp-icon-caret-down);\n background-size: 17px;\n}\n",""]);const l=a},40348:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-sidebar-tab-width: 32px;\n}\n\n/*-----------------------------------------------------------------------------\n| SideBar\n|----------------------------------------------------------------------------*/\n\n.jp-SideBar {\n /* This is needed so that all font sizing of children done in ems is\n * relative to this base size */\n font-size: var(--jp-ui-font-size1);\n}\n\n.jp-SideBar.lm-TabBar,\n#jp-down-stack .lm-TabBar {\n color: var(--jp-ui-font-color2);\n background: var(--jp-layout-color2);\n font-size: var(--jp-ui-font-size1);\n overflow: visible;\n}\n\n.jp-SideBar.lm-TabBar {\n min-width: calc(var(--jp-private-sidebar-tab-width) + var(--jp-border-width));\n max-width: calc(var(--jp-private-sidebar-tab-width) + var(--jp-border-width));\n display: block;\n}\n\n.jp-SideBar .lm-TabBar-content {\n margin: 0;\n padding: 0;\n display: flex;\n align-items: stretch;\n list-style-type: none;\n height: var(--jp-private-sidebar-tab-width);\n}\n\n.jp-SideBar .lm-TabBar-tab {\n padding: 16px 0;\n border: none;\n overflow: visible;\n flex-direction: column;\n position: relative;\n}\n\n.jp-SideBar .lm-TabBar-tab:focus-visible {\n /* --accent-fill-focus is computed by the jp toolkit to ensure accessibility */\n outline: 2px solid var(--accent-fill-focus, var(--jp-brand-color1));\n outline-offset: -3px;\n}\n\n.jp-SideBar .lm-TabBar-tab.lm-mod-current::after {\n /* Internal border override pseudo-element */\n position: absolute;\n content: '';\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n border: var(--jp-border-width) solid var(--jp-layout-color1);\n}\n\n.jp-SideBar .lm-TabBar-tab:not(.lm-mod-current),\n#jp-down-stack .lm-TabBar-tab:not(.lm-mod-current) {\n background: var(--jp-layout-color2);\n}\n\n.jp-SideBar .lm-TabBar-tabIcon.jp-SideBar-tabIcon {\n min-width: 20px;\n min-height: 20px;\n background-size: 20px;\n display: inline-block;\n vertical-align: middle;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n.jp-SideBar .lm-TabBar-tabLabel {\n line-height: var(--jp-private-sidebar-tab-width);\n}\n\n.jp-SideBar .lm-TabBar-tab:hover:not(.lm-mod-current),\n#jp-down-stack .lm-TabBar-tab:hover:not(.lm-mod-current) {\n background: var(--jp-layout-color1);\n}\n\n.jp-SideBar.lm-TabBar::after {\n /* Internal border pseudo-element */\n position: absolute;\n content: '';\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n\n/* Borders */\n\n/* stylelint-disable selector-max-class */\n\n.jp-SideBar.lm-TabBar .lm-TabBar-tab + .lm-TabBar-tab {\n border-top: var(--jp-border-width) solid var(--jp-layout-color2);\n}\n\n.jp-SideBar.lm-TabBar .lm-TabBar-tab.lm-mod-current + .lm-TabBar-tab {\n border-top: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n.jp-SideBar.lm-TabBar .lm-TabBar-tab + .lm-TabBar-tab.lm-mod-current {\n border-top: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n.jp-SideBar.lm-TabBar .lm-TabBar-tab.lm-mod-current:last-child {\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n.jp-SideBar.lm-TabBar .lm-TabBar-tabLabel {\n writing-mode: vertical-rl;\n}\n\n/* Left */\n\n/* Borders */\n\n.jp-SideBar.lm-TabBar.jp-mod-left .lm-TabBar-content {\n /* Internal border spacing */\n margin-right: var(--jp-border-width);\n}\n\n.jp-SideBar.lm-TabBar.jp-mod-left .lm-TabBar-tab.lm-mod-current::after {\n /* Internal border override */\n right: calc(-1 * var(--jp-border-width));\n}\n\n.jp-SideBar.lm-TabBar.jp-mod-left::after {\n /* Internal border */\n border-right: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n/* Transforms */\n\n.jp-SideBar.lm-TabBar.jp-mod-left .lm-TabBar-tabLabel {\n transform: rotate(180deg);\n}\n\n/* Right */\n\n/* Borders */\n\n.jp-SideBar.lm-TabBar.jp-mod-right .lm-TabBar-content {\n /* Internal border spacing */\n margin-left: var(--jp-border-width);\n}\n\n.jp-SideBar.lm-TabBar.jp-mod-right .lm-TabBar-tab.lm-mod-current::after {\n /* Internal border override */\n left: calc(-1 * var(--jp-border-width));\n}\n\n.jp-SideBar.lm-TabBar.jp-mod-right::after {\n /* Internal border */\n border-left: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n/* Down */\n\n/* Borders */\n\n#jp-down-stack > .lm-TabBar {\n border-top: var(--jp-border-width) solid var(--jp-border-color0);\n border-bottom: var(--jp-border-width) solid var(--jp-border-color0);\n}\n\n#jp-down-stack > .lm-TabBar .lm-TabBar-tab {\n border-left: none;\n border-right: none;\n}\n\n#jp-down-stack > .lm-TabBar .lm-TabBar-tab.lm-mod-current {\n border: var(--jp-border-width) solid var(--jp-border-color1);\n border-bottom: none;\n transform: translateY(var(--jp-border-width));\n}\n\n#jp-down-stack > .lm-TabBar .lm-TabBar-tab.lm-mod-current:first-child {\n border: none;\n border-right: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n/* stylelint-enable selector-max-class */\n\n/* Stack panels */\n\n#jp-left-stack > .lm-Widget,\n#jp-right-stack > .lm-Widget {\n min-width: var(--jp-sidebar-min-width);\n background-color: var(--jp-layout-color1);\n}\n\n#jp-right-stack {\n border-left: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n#jp-left-stack {\n border-right: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n#jp-down-stack > .lm-TabPanel-stackedPanel {\n border: none;\n}\n",""]);const l=a},93768:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n|\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-skiplink-wrapper {\n overflow: visible;\n\n /* override strict containment added via Lumino PR\n [#506](https://github.com/jupyterlab/lumino/pull/506) */\n contain: size style !important;\n}\n\n.jp-skiplink {\n position: absolute;\n top: -100em;\n}\n\n.jp-skiplink:focus-within {\n position: absolute;\n z-index: 10000;\n top: 0;\n left: 46%;\n margin: 0 auto;\n padding: 1em;\n width: 15%;\n box-shadow: var(--jp-elevation-z4);\n border-radius: 4px;\n background: var(--jp-layout-color0);\n text-align: center;\n}\n\n.jp-skiplink:focus-within a {\n text-decoration: underline;\n color: var(--jp-content-link-color);\n}\n",""]);const l=a},83161:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n /* These need to be root because tabs get attached to the body during dragging. */\n --jp-private-horizontal-tab-height: 24px;\n --jp-private-horizontal-tab-width: 216px;\n --jp-private-horizontal-tab-active-top-border: 2px;\n}\n\n/*-----------------------------------------------------------------------------\n| Tabs in the dock panel\n|----------------------------------------------------------------------------*/\n\n.lm-DockPanel-tabBar,\n.lm-TabPanel-tabBar {\n overflow: visible;\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n}\n\n.lm-DockPanel-tabBar[data-orientation='horizontal'],\n.lm-TabPanel-tabBar[data-orientation='horizontal'] {\n min-height: calc(\n var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width)\n );\n}\n\n.lm-DockPanel-tabBar[data-orientation='vertical'] {\n min-width: 80px;\n}\n\n.lm-DockPanel-tabBar > .lm-TabBar-content,\n.lm-TabPanel-tabBar > .lm-TabBar-content {\n align-items: flex-end;\n min-width: 0;\n min-height: 0;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab,\n.lm-TabPanel-tabBar .lm-TabBar-tab {\n flex: 0 1 var(--jp-private-horizontal-tab-width);\n align-items: center;\n min-height: calc(\n var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width)\n );\n min-width: 0;\n margin-left: calc(-1 * var(--jp-border-width));\n line-height: var(--jp-private-horizontal-tab-height);\n padding: 0 8px;\n background: var(--jp-layout-color2);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n border-bottom: none;\n position: relative;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab:focus-visible,\n.lm-DockPanel-tabBar .lm-TabBar-addButton:focus-visible,\n.lm-TabPanel-tabBar .lm-TabBar-tab:focus-visible {\n border: 1px solid var(--accent-fill-focus);\n border-bottom: none;\n\n /* Thicken the border by 1px within the element border */\n box-shadow: 0 0 0 1px inset var(--accent-fill-focus);\n outline: none;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current):focus-visible::after,\n.lm-TabPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current):focus-visible::after {\n border-bottom-color: var(--accent-fill-focus);\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current),\n.lm-TabPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current) {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab:not(.lm-mod-current)::after,\n.lm-DockPanel-tabBar .lm-TabBar-addButton::after {\n position: absolute;\n content: '';\n bottom: 0;\n left: calc(-1 * var(--jp-border-width));\n width: calc(100% + 2 * var(--jp-border-width));\n border-bottom: var(--jp-border-width) solid var(--jp-border-color1);\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab:first-child,\n.lm-TabPanel-tabBar .lm-TabBar-tab:first-child {\n margin-left: 0;\n}\n\n/* This is a current tab of a tab bar in the dock panel: each tab bar has 1. */\n.lm-DockPanel-tabBar .lm-TabBar-tab.lm-mod-current {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n.lm-TabPanel-tabBar .lm-TabBar-tab.lm-mod-current {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n/* This is the main application level current tab: only 1 exists. */\n.lm-DockPanel-tabBar .lm-TabBar-tab.jp-mod-current::before {\n position: absolute;\n top: calc(-1 * var(--jp-border-width) + 1px);\n left: calc(-1 * var(--jp-border-width));\n content: '';\n height: var(--jp-private-horizontal-tab-active-top-border);\n width: calc(100% + 2 * var(--jp-border-width));\n background: var(--jp-brand-color1);\n}\n\n/* This is the left tab bar current tab: only 1 exists. */\n.lm-TabBar-tab.lm-mod-current {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab,\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab {\n flex: 0 1 40px;\n margin-top: -1px;\n line-height: 40px;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab {\n border-right: none;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab {\n border-left: none;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab:first-child,\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab:first-child {\n margin-top: 0;\n}\n\n/* stylelint-disable selector-max-class */\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-left .lm-TabBar-tab.lm-mod-current,\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab.lm-mod-current {\n min-width: 80px;\n max-width: 80px;\n}\n\n.lm-DockPanel-tabBar .lm-TabBar.lm-mod-right .lm-TabBar-tab.lm-mod-current {\n transform: translateX(-1px);\n}\n\n.lm-DockPanel-tabBar .lm-TabBar-tab .lm-TabBar-tabIcon,\n.lm-TabBar-tab.lm-mod-drag-image .lm-TabBar-tabIcon,\n.lm-TabPanel-tabBar .lm-TabBar-tab .lm-TabBar-tabIcon {\n width: 14px;\n background-position: left center;\n background-repeat: no-repeat;\n background-size: 14px;\n margin-right: 4px;\n}\n\n/* stylelint-enable selector-max-class */\n\n.lm-TabBar-tab.lm-mod-drag-image {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n border-top: var(--jp-border-width) solid var(--jp-brand-color1);\n box-shadow: var(--jp-elevation-z4);\n font-size: var(--jp-ui-font-size1);\n line-height: var(--jp-private-horizontal-tab-height);\n min-height: var(--jp-private-horizontal-tab-height);\n min-width: var(--jp-private-horizontal-tab-width);\n padding: 0 10px;\n transform: translateX(-40%) translateY(-58%);\n}\n",""]);const l=a},43701:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-title-panel-height: 28px;\n}\n\n#jp-title-panel {\n min-height: var(--jp-private-title-panel-height);\n width: 100%;\n display: flex;\n background: var(--jp-layout-color1);\n}\n\n#jp-title-panel-title {\n flex: 1 1 auto;\n margin-left: 8px;\n}\n\n#jp-title-panel-title input {\n background: transparent;\n margin: 0;\n height: 28px;\n width: 100%;\n box-sizing: border-box;\n border: none;\n font-size: 18px;\n font-weight: normal;\n font-family: var(--jp-ui-font-family);\n line-height: var(--jp-private-title-panel-height);\n color: var(--jp-ui-font-color0);\n outline: none;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n",""]);const l=a},61510:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=n(7924);var l=n(97980);var d=n(1165);var c=r()(s());c.i(a.A);c.i(l.A);c.i(d.A);c.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n",""]);const h=c},1165:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n:root {\n --jp-private-shortcuts-key-padding-horizontal: 0.47em;\n --jp-private-shortcuts-key-padding-vertical: 0.28em;\n --jp-private-shortcuts-label-padding-horizontal: 0.47em;\n}\n\n.jp-ContextualShortcut-TableRow {\n font-size: var(--jp-ui-font-size1);\n font-family: var(--jp-ui-font-family);\n}\n\n.jp-ContextualShortcut-TableItem {\n margin-left: auto;\n margin-right: auto;\n color: var(--jp-inverse-layout-color0);\n font-size: var(--jp-ui-font-size1);\n line-height: 2em;\n padding-right: var(--jp-private-shortcuts-label-padding-horizontal);\n}\n\n.jp-ContextualShortcut-TableLastRow {\n height: 2em;\n}\n\n.jp-ContextualShortcut-Key {\n font-family: var(--jp-code-font-family);\n border-width: var(--jp-border-width);\n border-radius: var(--jp-border-radius);\n border-style: solid;\n border-color: var(--jp-border-color1);\n color: var(--jp-ui-font-color1);\n background: var(--jp-layout-color1);\n padding-left: var(--jp-private-shortcuts-key-padding-horizontal);\n padding-right: var(--jp-private-shortcuts-key-padding-horizontal);\n padding-top: var(--jp-private-shortcuts-key-padding-vertical);\n padding-bottom: var(--jp-private-shortcuts-key-padding-vertical);\n}\n",""]);const l=a},7924:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=n(9112);var l=r()(s());l.i(a.A);l.push([e.id,"/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n:root {\n --toastify-color-light: var(--jp-layout-color1);\n --toastify-color-dark: var(--jp-layout-color1);\n --toastify-color-info: var(--jp-info-color1);\n --toastify-color-success: var(--jp-success-color1);\n --toastify-color-warning: var(--jp-warn-color1);\n --toastify-color-error: var(--jp-error-color1);\n --toastify-color-transparent: rgba(255, 255, 255, 0.7);\n --toastify-icon-color-info: var(--toastify-color-info);\n --toastify-icon-color-success: var(--toastify-color-success);\n --toastify-icon-color-warning: var(--toastify-color-warning);\n --toastify-icon-color-error: var(--toastify-color-error);\n --toastify-toast-width: 25em;\n --toastify-toast-background: var(--jp-layout-color1);\n --toastify-toast-min-height: 64px;\n --toastify-toast-max-height: 800px;\n --toastify-font-family: var(--jp-ui-font-family);\n --toastify-z-index: 9999;\n --toastify-text-color-light: var(--jp-ui-font-color1);\n --toastify-text-color-dark: var(--jp-ui-font-color1);\n --toastify-text-color-info: var(--jp-ui-font-color1);\n --toastify-text-color-success: var(--jp-ui-font-color1);\n --toastify-text-color-warning: var(--jp-ui-font-color1);\n --toastify-text-color-error: var(--jp-ui-font-color1);\n --toastify-spinner-color: #616161;\n --toastify-spinner-color-empty-area: #e0e0e0;\n --toastify-color-progress-light: linear-gradient(\n to right,\n #4cd964,\n #5ac8fa,\n #007aff,\n #34aadc,\n #5856d6,\n #ff2d55\n );\n --toastify-color-progress-dark: #bb86fc;\n --toastify-color-progress-info: var(--toastify-color-info);\n --toastify-color-progress-success: var(--toastify-color-success);\n --toastify-color-progress-warning: var(--toastify-color-warning);\n --toastify-color-progress-error: var(--toastify-color-error);\n}\n\n.jp-Notification-List {\n list-style: none;\n margin: 0;\n padding: 4px;\n width: var(--toastify-toast-width);\n overflow-y: auto;\n max-height: 55vh;\n box-sizing: border-box;\n background-color: var(--jp-layout-color2);\n}\n\n.jp-Notification-Header {\n display: flex;\n font-size: var(--jp-ui-font-size1);\n padding-left: 8px;\n padding-right: 4px;\n margin: 0;\n align-items: center;\n user-select: none;\n}\n\n.jp-Notification-List-Item {\n padding: 2px 0;\n}\n\n.jp-Notification-List .Toastify__toast {\n margin: 0;\n}\n\n.jp-Notification-Status.jp-mod-selected {\n background-color: var(--jp-brand-color1);\n}\n\n.jp-Notification-Status.jp-mod-selected .jp-Notification-Status-Text {\n color: var(--jp-ui-inverse-font-color1);\n}\n\n.Toastify__toast {\n min-height: unset;\n padding: 4px;\n font-size: var(--jp-ui-font-size1);\n border-width: var(--jp-border-width);\n border-radius: var(--jp-border-radius);\n border-color: var(--jp-border-color1);\n box-shadow: var(--jp-elevation-z4);\n cursor: default;\n}\n\n.Toastify__toast-body {\n display: flex;\n flex-grow: 1;\n}\n\n.jp-Notification-Toast-Close {\n padding: 0;\n position: absolute;\n right: 0.1px;\n cursor: pointer;\n}\n\n.jp-Notification-Toast-Close-Margin {\n margin-right: 4px;\n}\n\n.jp-toastContainer .jp-Notification-Toast-Close:hover {\n /* The close button has its own hover style */\n background: none;\n}\n\n.Toastify__toast.jp-Notification-Toast-error {\n border-top: 5px solid var(--jp-error-color1);\n}\n\n.Toastify__toast.jp-Notification-Toast-warning {\n border-top: 5px solid var(--jp-warn-color1);\n}\n\n.Toastify__toast.jp-Notification-Toast-info {\n border-top: 5px solid var(--jp-info-color1);\n}\n\n.Toastify__toast.jp-Notification-Toast-success {\n border-top: 5px solid var(--jp-success-color1);\n}\n\n.Toastify__toast.jp-Notification-Toast-in-progress {\n border-top: 5px solid var(--jp-layout-color1);\n}\n\n.Toastify__toast-body a {\n color: var(--jp-content-link-color);\n}\n\n.Toastify__toast-body a:hover {\n color: var(--jp-content-link-color);\n text-decoration: underline;\n}\n\n.jp-toast-message {\n padding-inline-end: 16px;\n}\n\n/* p elements are added by the markdown rendering.\n * Removing its default margin allows to reduce toast size.\n */\n.Toastify__toast-body p:first-child,\n.Toastify__toast-body h1:first-child,\n.Toastify__toast-body h2:first-child,\n.Toastify__toast-body h3:first-child,\n.Toastify__toast-body h4:first-child,\n.Toastify__toast-body h5:first-child,\n.Toastify__toast-body h6:first-child,\n.Toastify__toast-body ol:first-child,\n.Toastify__toast-body ul:first-child {\n margin-top: 0;\n}\n\n.Toastify__toast-body p:last-child,\n.Toastify__toast-body h1:last-child,\n.Toastify__toast-body h2:last-child,\n.Toastify__toast-body h3:last-child,\n.Toastify__toast-body h4:last-child,\n.Toastify__toast-body h5:last-child,\n.Toastify__toast-body h6:last-child,\n.Toastify__toast-body ol:last-child,\n.Toastify__toast-body ul:last-child {\n margin-bottom: 0;\n}\n\n.jp-toast-buttonBar {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n flex: 0 0 auto;\n padding-block-start: 8px;\n}\n\n.jp-toast-spacer {\n flex-grow: 1;\n flex-shrink: 1;\n}\n\n.jp-toast-button {\n margin-top: 1px;\n margin-bottom: 1px;\n margin-right: 0;\n margin-left: 3px;\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color2);\n border: none;\n}\n\n.jp-toast-button:focus {\n outline: 1px solid var(--jp-reject-color-normal, var(--jp-layout-color2));\n outline-offset: 1px;\n -moz-outline-radius: 0;\n}\n\n.jp-toast-button:focus-visible {\n border: none;\n}\n\n.jp-toast-button:hover {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-toast-button.jp-mod-accept {\n background: var(--jp-accept-color-normal, var(--jp-brand-color1));\n color: var(--jp-ui-inverse-font-color1);\n}\n\n.jp-toast-button.jp-mod-accept:focus {\n outline-color: var(--jp-accept-color-normal, var(--jp-brand-color1));\n}\n\n.jp-toast-button.jp-mod-accept:hover {\n background: var(--jp-accept-color-hover, var(--jp-brand-color0));\n}\n\n.jp-toast-button.jp-mod-warn {\n background: var(--jp-warn-color-normal, var(--jp-warn-color1));\n color: var(--jp-ui-inverse-font-color1);\n}\n\n.jp-toast-button.jp-mod-warn:focus {\n outline-color: var(--jp-warn-color-normal, var(--jp-warn-color1));\n}\n\n.jp-toast-button.jp-mod-warn:hover {\n background: var(--jp-warn-color-hover, var(--jp-warn-color0));\n}\n\n.jp-toast-button.jp-mod-link {\n color: var(--jp-content-link-color);\n text-decoration: underline;\n text-decoration-color: var(--jp-content-link-color);\n}\n",""]);const d=l},97980:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n#jupyterlab-splash {\n z-index: 10;\n position: absolute;\n overflow: hidden;\n width: 100%;\n height: 100%;\n background-position: center 40%;\n background-repeat: no-repeat;\n background-size: cover;\n}\n\n#jupyterlab-splash.light {\n background-color: white;\n}\n\n#jupyterlab-splash.dark {\n background-color: var(--md-grey-900, #212121);\n}\n\n.splash-fade {\n animation: 0.5s fade-out forwards;\n}\n\n#galaxy {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.planet {\n background-repeat: no-repeat;\n background-size: cover;\n animation-iteration-count: infinite;\n animation-name: orbit;\n}\n\n#moon1.orbit {\n opacity: 1;\n animation: orbit 2s ease;\n width: 200px;\n height: 140px;\n margin-top: -53px;\n margin-left: -54px;\n}\n\n#moon2.orbit {\n opacity: 1;\n animation: orbit 2s ease;\n width: 132px;\n height: 180px;\n margin-top: -66px;\n margin-left: -85px;\n}\n\n#moon3.orbit {\n opacity: 1;\n display: flex;\n align-items: flex-end;\n animation: orbit 2s ease;\n width: 220px;\n height: 166px;\n margin-top: -96px;\n margin-left: -50px;\n}\n\n#moon1 .planet {\n height: 12px;\n width: 12px;\n border-radius: 50%;\n}\n\n#moon2 .planet {\n height: 16px;\n width: 16px;\n border-radius: 50%;\n float: right;\n}\n\n#moon3 .planet {\n height: 20px;\n width: 20px;\n border-radius: 50%;\n}\n\n#jupyterlab-splash.light #moon1 .planet {\n background-color: #6f7070;\n}\n\n#jupyterlab-splash.light #moon2 .planet {\n background-color: #767677;\n}\n\n#jupyterlab-splash.light #moon3 .planet {\n background-color: #989798;\n}\n\n#jupyterlab-splash.dark #moon1 .planet,\n#jupyterlab-splash.dark #moon2 .planet,\n#jupyterlab-splash.dark #moon3 .planet {\n background-color: white;\n}\n\n.orbit {\n animation-iteration-count: 1;\n position: absolute;\n top: 50%;\n left: 50%;\n border-radius: 50%;\n}\n\n@keyframes orbit {\n 0% {\n transform: rotateZ(0deg);\n }\n\n 100% {\n transform: rotateZ(-720deg);\n }\n}\n\n@keyframes orbit2 {\n 0% {\n transform: rotateZ(0deg);\n }\n\n 100% {\n transform: rotateZ(720deg);\n }\n}\n\n@keyframes fade-in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes fade-out {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n",""]);const l=a},41510:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=n(28261);var l=n(52269);var d=n(5729);var c=n(48293);var h=n(17333);var u=n(76486);var p=n(8812);var m=r()(s());m.i(a.A);m.i(l.A);m.i(d.A);m.i(c.A);m.i(h.A);m.i(u.A);m.i(p.A);m.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n",""]);const g=m},28261:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-commandpalette-search-height: 28px;\n}\n\n/*-----------------------------------------------------------------------------\n| Overall styles\n|----------------------------------------------------------------------------*/\n\n.lm-CommandPalette {\n padding-bottom: 0;\n color: var(--jp-ui-font-color1);\n background: var(--jp-layout-color1);\n\n /* This is needed so that all font sizing of children done in ems is\n * relative to this base size */\n font-size: var(--jp-ui-font-size1);\n}\n\n/*-----------------------------------------------------------------------------\n| Modal variant\n|----------------------------------------------------------------------------*/\n\n.jp-ModalCommandPalette.jp-ThemedContainer {\n position: absolute;\n z-index: 10000;\n top: 38px;\n left: 30%;\n margin: 0;\n padding: 4px;\n width: 40%;\n box-shadow: var(--jp-elevation-z4);\n border-radius: 4px;\n background: var(--jp-layout-color0);\n}\n\n.jp-ModalCommandPalette .lm-CommandPalette {\n max-height: 40vh;\n}\n\n.jp-ModalCommandPalette .lm-CommandPalette .lm-close-icon::after {\n display: none;\n}\n\n.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-header {\n display: none;\n}\n\n.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item {\n margin-left: 4px;\n margin-right: 4px;\n}\n\n.jp-ModalCommandPalette\n .lm-CommandPalette\n .lm-CommandPalette-item.lm-mod-disabled {\n display: none;\n}\n\n/*-----------------------------------------------------------------------------\n| Search\n|----------------------------------------------------------------------------*/\n\n.lm-CommandPalette-search {\n padding: 4px;\n background-color: var(--jp-layout-color1);\n z-index: 2;\n}\n\n.lm-CommandPalette-wrapper {\n /* stylelint-disable-next-line csstree/validator */\n overflow: overlay;\n padding: 0 9px;\n background-color: var(--jp-input-active-background);\n height: 30px;\n box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);\n}\n\n.lm-CommandPalette.lm-mod-focused .lm-CommandPalette-wrapper {\n box-shadow:\n inset 0 0 0 1px var(--jp-input-active-box-shadow-color),\n inset 0 0 0 3px var(--jp-input-active-box-shadow-color);\n}\n\n.jp-SearchIconGroup {\n color: white;\n background-color: var(--jp-brand-color1);\n position: absolute;\n top: 4px;\n right: 4px;\n padding: 5px 5px 1px;\n}\n\n.jp-SearchIconGroup svg {\n height: 20px;\n width: 20px;\n}\n\n.jp-SearchIconGroup .jp-icon3[fill] {\n fill: var(--jp-layout-color0);\n}\n\n.lm-CommandPalette-input {\n background: transparent;\n width: calc(100% - 18px);\n float: left;\n border: none;\n outline: none;\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color0);\n line-height: var(--jp-private-commandpalette-search-height);\n}\n\n.lm-CommandPalette-input::-webkit-input-placeholder,\n.lm-CommandPalette-input::-moz-placeholder,\n.lm-CommandPalette-input:-ms-input-placeholder {\n color: var(--jp-ui-font-color2);\n font-size: var(--jp-ui-font-size1);\n}\n\n/*-----------------------------------------------------------------------------\n| Results\n|----------------------------------------------------------------------------*/\n\n.lm-CommandPalette-header:first-child {\n margin-top: 0;\n}\n\n.lm-CommandPalette-header {\n border-bottom: solid var(--jp-border-width) var(--jp-border-color2);\n color: var(--jp-ui-font-color1);\n cursor: pointer;\n display: flex;\n font-size: var(--jp-ui-font-size0);\n font-weight: 600;\n letter-spacing: 1px;\n margin-top: 8px;\n padding: 8px 0 8px 12px;\n text-transform: uppercase;\n}\n\n.lm-CommandPalette-header.lm-mod-active {\n background: var(--jp-layout-color2);\n}\n\n.lm-CommandPalette-header > mark {\n background-color: transparent;\n font-weight: bold;\n color: var(--jp-ui-font-color1);\n}\n\n.lm-CommandPalette-item {\n padding: 4px 12px 4px 4px;\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n font-weight: 400;\n display: flex;\n}\n\n.lm-CommandPalette-item.lm-mod-disabled {\n color: var(--jp-ui-font-color2);\n}\n\n.lm-CommandPalette-item.lm-mod-active {\n color: var(--jp-ui-inverse-font-color1);\n background: var(--jp-brand-color1);\n}\n\n.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark {\n color: var(--jp-ui-inverse-font-color0);\n}\n\n.lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill] {\n fill: var(--jp-layout-color0);\n}\n\n.lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled) {\n color: var(--jp-ui-inverse-font-color1);\n background: var(--jp-brand-color1);\n}\n\n.lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled) {\n background: var(--jp-layout-color2);\n}\n\n.lm-CommandPalette-itemContent {\n overflow: hidden;\n}\n\n.lm-CommandPalette-itemLabel > mark {\n color: var(--jp-ui-font-color0);\n background-color: transparent;\n font-weight: bold;\n}\n\n.lm-CommandPalette-item.lm-mod-disabled mark {\n color: var(--jp-ui-font-color2);\n}\n\n.lm-CommandPalette-item .lm-CommandPalette-itemIcon {\n margin: 0 4px 0 0;\n position: relative;\n width: 16px;\n top: 2px;\n flex: 0 0 auto;\n}\n\n.lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon {\n opacity: 0.6;\n}\n\n.lm-CommandPalette-item .lm-CommandPalette-itemShortcut {\n flex: 0 0 auto;\n}\n\n.lm-CommandPalette-itemCaption {\n display: none;\n}\n\n.lm-CommandPalette-content {\n background-color: var(--jp-layout-color1);\n}\n\n.lm-CommandPalette-content:empty::after {\n content: 'No results';\n margin: auto;\n margin-top: 20px;\n width: 100px;\n display: block;\n font-size: var(--jp-ui-font-size2);\n font-family: var(--jp-ui-font-family);\n font-weight: lighter;\n}\n\n.lm-CommandPalette-emptyMessage {\n text-align: center;\n margin-top: 24px;\n line-height: 1.32;\n padding: 0 8px;\n color: var(--jp-content-font-color3);\n}\n",""]);const l=a},52269:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-Dialog.jp-ThemedContainer {\n position: absolute;\n z-index: 10000;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n top: 0;\n left: 0;\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n background: var(--jp-dialog-background);\n /* stylelint-disable */\n container-type: inline-size;\n /* stylelint-enable */\n}\n\n.jp-Dialog-content {\n display: flex;\n flex-direction: column;\n margin-left: auto;\n margin-right: auto;\n background: var(--jp-layout-color1);\n padding: 24px 24px 12px;\n min-width: 300px;\n min-height: 150px;\n max-width: 1000px;\n max-height: 500px;\n box-sizing: border-box;\n box-shadow: var(--jp-elevation-z20);\n word-wrap: break-word;\n border-radius: var(--jp-border-radius);\n\n /* This is needed so that all font sizing of children done in ems is\n * relative to this base size */\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color1);\n resize: both;\n overflow: hidden;\n}\n\n.jp-Dialog-content.jp-Dialog-content-small {\n max-width: 500px;\n}\n\n.jp-Dialog-button {\n overflow: visible;\n}\n\nbutton.jp-Dialog-button:disabled {\n opacity: 0.6;\n}\n\nbutton.jp-Dialog-button:focus {\n outline: 1px solid var(--jp-brand-color1);\n outline-offset: 4px;\n -moz-outline-radius: 0;\n}\n\nbutton.jp-Dialog-button:focus::-moz-focus-inner {\n border: 0;\n}\n\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus,\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus,\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {\n outline-offset: 4px;\n -moz-outline-radius: 0;\n}\n\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus {\n outline: 1px solid var(--jp-accept-color-normal, var(--jp-brand-color1));\n}\n\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus {\n outline: 1px solid var(--jp-warn-color-normal, var(--jp-error-color1));\n}\n\nbutton.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {\n outline: 1px solid var(--jp-reject-color-normal, var(--md-grey-600, #757575));\n}\n\nbutton.jp-Dialog-close-button {\n padding: 0;\n height: 100%;\n min-width: unset;\n min-height: unset;\n}\n\n.jp-Dialog-header {\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n padding-bottom: 12px;\n font-size: var(--jp-ui-font-size3);\n font-weight: 400;\n color: var(--jp-ui-font-color1);\n}\n\n.jp-Dialog-body {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n font-size: var(--jp-ui-font-size1);\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n overflow: auto;\n}\n\n.jp-Dialog-footer {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n flex: 0 0 auto;\n margin-left: -12px;\n margin-right: -12px;\n padding: 12px;\n}\n\n.jp-Dialog-checkbox {\n padding-right: 5px;\n display: flex;\n align-items: center;\n}\n\n.jp-Dialog-spacer {\n flex: 1 1 auto;\n}\n\n.jp-Dialog-title {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.jp-Dialog-body > .jp-select-wrapper {\n width: 100%;\n}\n\n.jp-Dialog-body > button {\n padding: 0 16px;\n}\n\n.jp-Dialog-body > label {\n line-height: 1.4;\n color: var(--jp-ui-font-color0);\n}\n\n.jp-Dialog-button.jp-mod-styled:not(:last-child) {\n margin-right: 12px;\n}\n\n/* stylelint-disable */\n@container (max-width: 560px) {\n /* stylelint-enable */\n .jp-Dialog-footer {\n flex-direction: column;\n align-items: center;\n gap: 7px;\n }\n}\n",""]);const l=a},5729:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n.jp-Input-Boolean-Dialog {\n flex-direction: row-reverse;\n align-items: end;\n width: 100%;\n}\n\n.jp-Input-Boolean-Dialog > label {\n flex: 1 1 auto;\n}\n\n.jp-InputDialog-inputWrapper {\n display: flex;\n align-items: baseline;\n}\n\n.jp-InputDialog-inputWrapper > input.jp-mod-styled:invalid {\n border-color: var(--jp-error-color0);\n background: var(--jp-error-color3);\n}\n\n.jp-InputDialog-inputWrapper\n > input[required].jp-mod-styled:invalid:placeholder-shown {\n /* Do not show invalid style when placeholder is shown */\n border-color: unset;\n background: unset;\n}\n",""]);const l=a},48293:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* licenses */\n.jp-Licenses {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n background-color: var(--jp-layout-color0);\n}\n\n.jp-Licenses-FormArea {\n display: flex;\n flex-direction: column;\n min-width: calc(10 * var(--jp-ui-font-size1));\n width: calc(18 * var(--jp-ui-font-size1));\n}\n\n.jp-Licenses .lm-SplitPanel-handle:hover {\n background-color: var(--jp-brand-color2);\n}\n\n/* filters */\n.jp-Licenses-Filters {\n padding: var(--jp-ui-font-size1) calc(var(--jp-ui-font-size1) / 2) 0\n var(--jp-ui-font-size1);\n}\n\n.jp-Licenses-Filters label {\n display: block;\n}\n\n.jp-Licenses-Filters-title {\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 1px;\n font-size: var(--jp-ui-font-size0);\n color: var(--jp-ui-font-color0);\n}\n\n.jp-RenderedHTMLCommon.jp-Licenses-Filters ul,\n.jp-RenderedHTMLCommon.jp-Licenses-Filters li {\n list-style: none;\n color: var(--jp-ui-font-color0);\n}\n\n.jp-Licenses-Filters input {\n width: 100%;\n}\n\n.jp-RenderedHTMLCommon.jp-Licenses-Filters ul {\n padding: 0 0 var(--jp-ui-font-size1) 0;\n margin: 0;\n padding-bottom: var(--jp-ui-font-size1);\n}\n\n/* bundles */\n.jp-Licenses-Bundles {\n background-color: var(--jp-layout-color2);\n overflow-y: auto;\n flex: 1;\n}\n\n.jp-Licenses-Bundles .lm-TabBar-content {\n width: 100%;\n}\n\n.jp-Licenses-Bundles .lm-TabBar-tab {\n padding: calc(var(--jp-ui-font-size1) / 2);\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n.jp-Licenses-Bundles .lm-TabBar-tabLabel {\n text-overflow: ellipsis;\n}\n\n.jp-Licenses-Bundles .lm-TabBar-tab label {\n background-color: var(--jp-layout-color2);\n border-radius: var(--jp-ui-font-size1);\n width: calc(2.5 * var(--jp-ui-font-size1));\n padding: 0 calc(var(--jp-ui-font-size1) / 2);\n text-align: center;\n margin-left: calc(var(--jp-ui-font-size1) / 2);\n}\n\n.jp-Licenses-Bundles .lm-TabBar-tab.lm-mod-current {\n background-color: var(--jp-brand-color1);\n color: #fff;\n}\n\n.jp-Licenses-Bundles .lm-TabBar-tab.lm-mod-current label {\n background-color: #fff;\n color: var(--jp-brand-color1);\n}\n\n/* license grid */\n.jp-Licenses-Grid.jp-RenderedHTMLCommon {\n min-width: calc(var(--jp-ui-font-size1) * 10);\n display: flex;\n flex-direction: column;\n padding: 0;\n}\n\n.jp-Licenses-Grid.jp-RenderedHTMLCommon form {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: scroll;\n margin: 0;\n padding: 0;\n}\n\n.jp-RenderedHTMLCommon.jp-Licenses-Grid table {\n flex: 1;\n max-width: 100%;\n border: solid var(--jp-border-width) var(--jp-border-color2);\n border-top: 0;\n border-bottom: 0;\n margin: 0;\n}\n\n.jp-Licenses-Grid.jp-RenderedHTMLCommon td,\n.jp-Licenses-Grid.jp-RenderedHTMLCommon th {\n text-align: left;\n}\n\n.jp-Licenses-Grid td:nth-child(1) {\n max-width: calc(2 * var(--jp-ui-font-size1));\n}\n\n.jp-Licenses-Grid label {\n width: 100%;\n}\n\n.jp-Licenses .jp-Licenses-Grid.jp-RenderedHTMLCommon code {\n background-color: transparent;\n padding: 0;\n}\n\n.jp-Licenses-Grid.jp-RenderedHTMLCommon tr.jp-mod-selected {\n background-color: var(--jp-brand-color1);\n color: #fff;\n}\n\n.jp-Licenses-Grid.jp-RenderedHTMLCommon .jp-mod-selected code {\n color: #fff;\n}\n\n/* license text */\n.jp-Licenses-Text {\n min-width: calc(10 * var(--jp-ui-font-size1));\n padding: 0 0 0 var(--jp-ui-font-size1);\n display: flex;\n flex-direction: column;\n}\n\n.jp-Licenses-Text h1 {\n flex: initial;\n margin-bottom: 0;\n}\n\n.jp-Licenses-Text h1:empty {\n display: none;\n}\n\n.jp-Licenses-Text blockquote {\n flex: initial;\n}\n\n.jp-Licenses-Text.jp-RenderedHTMLCommon code {\n overflow-wrap: anywhere;\n overflow-y: auto;\n flex: 1;\n padding-right: var(--jp-ui-font-size1);\n margin-bottom: 0;\n padding-bottom: var(--jp-ui-font-size1);\n}\n\n.jp-Licenses-Text code:empty {\n display: none;\n}\n",""]);const l=a},17333:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-MainAreaWidget > :focus {\n outline: none;\n}\n\n.jp-MainAreaWidget .jp-MainAreaWidget-error {\n padding: 6px;\n}\n\n.jp-MainAreaWidget .jp-MainAreaWidget-error > pre {\n width: auto;\n padding: 10px;\n background: var(--jp-error-color3);\n border: var(--jp-border-width) solid var(--jp-error-color1);\n border-radius: var(--jp-border-radius);\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n",""]);const l=a},76486:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n/**\n * google-material-color v1.2.6\n * https://github.com/danlevan/google-material-color\n */\n:root {\n --md-red-50: #ffebee;\n --md-red-100: #ffcdd2;\n --md-red-200: #ef9a9a;\n --md-red-300: #e57373;\n --md-red-400: #ef5350;\n --md-red-500: #f44336;\n --md-red-600: #e53935;\n --md-red-700: #d32f2f;\n --md-red-800: #c62828;\n --md-red-900: #b71c1c;\n --md-red-A100: #ff8a80;\n --md-red-A200: #ff5252;\n --md-red-A400: #ff1744;\n --md-red-A700: #d50000;\n --md-pink-50: #fce4ec;\n --md-pink-100: #f8bbd0;\n --md-pink-200: #f48fb1;\n --md-pink-300: #f06292;\n --md-pink-400: #ec407a;\n --md-pink-500: #e91e63;\n --md-pink-600: #d81b60;\n --md-pink-700: #c2185b;\n --md-pink-800: #ad1457;\n --md-pink-900: #880e4f;\n --md-pink-A100: #ff80ab;\n --md-pink-A200: #ff4081;\n --md-pink-A400: #f50057;\n --md-pink-A700: #c51162;\n --md-purple-50: #f3e5f5;\n --md-purple-100: #e1bee7;\n --md-purple-200: #ce93d8;\n --md-purple-300: #ba68c8;\n --md-purple-400: #ab47bc;\n --md-purple-500: #9c27b0;\n --md-purple-600: #8e24aa;\n --md-purple-700: #7b1fa2;\n --md-purple-800: #6a1b9a;\n --md-purple-900: #4a148c;\n --md-purple-A100: #ea80fc;\n --md-purple-A200: #e040fb;\n --md-purple-A400: #d500f9;\n --md-purple-A700: #a0f;\n --md-deep-purple-50: #ede7f6;\n --md-deep-purple-100: #d1c4e9;\n --md-deep-purple-200: #b39ddb;\n --md-deep-purple-300: #9575cd;\n --md-deep-purple-400: #7e57c2;\n --md-deep-purple-500: #673ab7;\n --md-deep-purple-600: #5e35b1;\n --md-deep-purple-700: #512da8;\n --md-deep-purple-800: #4527a0;\n --md-deep-purple-900: #311b92;\n --md-deep-purple-A100: #b388ff;\n --md-deep-purple-A200: #7c4dff;\n --md-deep-purple-A400: #651fff;\n --md-deep-purple-A700: #6200ea;\n --md-indigo-50: #e8eaf6;\n --md-indigo-100: #c5cae9;\n --md-indigo-200: #9fa8da;\n --md-indigo-300: #7986cb;\n --md-indigo-400: #5c6bc0;\n --md-indigo-500: #3f51b5;\n --md-indigo-600: #3949ab;\n --md-indigo-700: #303f9f;\n --md-indigo-800: #283593;\n --md-indigo-900: #1a237e;\n --md-indigo-A100: #8c9eff;\n --md-indigo-A200: #536dfe;\n --md-indigo-A400: #3d5afe;\n --md-indigo-A700: #304ffe;\n --md-blue-50: #e3f2fd;\n --md-blue-100: #bbdefb;\n --md-blue-200: #90caf9;\n --md-blue-300: #64b5f6;\n --md-blue-400: #42a5f5;\n --md-blue-500: #2196f3;\n --md-blue-600: #1e88e5;\n --md-blue-700: #1976d2;\n --md-blue-800: #1565c0;\n --md-blue-900: #0d47a1;\n --md-blue-A100: #82b1ff;\n --md-blue-A200: #448aff;\n --md-blue-A400: #2979ff;\n --md-blue-A700: #2962ff;\n --md-light-blue-50: #e1f5fe;\n --md-light-blue-100: #b3e5fc;\n --md-light-blue-200: #81d4fa;\n --md-light-blue-300: #4fc3f7;\n --md-light-blue-400: #29b6f6;\n --md-light-blue-500: #03a9f4;\n --md-light-blue-600: #039be5;\n --md-light-blue-700: #0288d1;\n --md-light-blue-800: #0277bd;\n --md-light-blue-900: #01579b;\n --md-light-blue-A100: #80d8ff;\n --md-light-blue-A200: #40c4ff;\n --md-light-blue-A400: #00b0ff;\n --md-light-blue-A700: #0091ea;\n --md-cyan-50: #e0f7fa;\n --md-cyan-100: #b2ebf2;\n --md-cyan-200: #80deea;\n --md-cyan-300: #4dd0e1;\n --md-cyan-400: #26c6da;\n --md-cyan-500: #00bcd4;\n --md-cyan-600: #00acc1;\n --md-cyan-700: #0097a7;\n --md-cyan-800: #00838f;\n --md-cyan-900: #006064;\n --md-cyan-A100: #84ffff;\n --md-cyan-A200: #18ffff;\n --md-cyan-A400: #00e5ff;\n --md-cyan-A700: #00b8d4;\n --md-teal-50: #e0f2f1;\n --md-teal-100: #b2dfdb;\n --md-teal-200: #80cbc4;\n --md-teal-300: #4db6ac;\n --md-teal-400: #26a69a;\n --md-teal-500: #009688;\n --md-teal-600: #00897b;\n --md-teal-700: #00796b;\n --md-teal-800: #00695c;\n --md-teal-900: #004d40;\n --md-teal-A100: #a7ffeb;\n --md-teal-A200: #64ffda;\n --md-teal-A400: #1de9b6;\n --md-teal-A700: #00bfa5;\n --md-green-50: #e8f5e9;\n --md-green-100: #c8e6c9;\n --md-green-200: #a5d6a7;\n --md-green-300: #81c784;\n --md-green-400: #66bb6a;\n --md-green-500: #4caf50;\n --md-green-600: #43a047;\n --md-green-700: #388e3c;\n --md-green-800: #2e7d32;\n --md-green-900: #1b5e20;\n --md-green-A100: #b9f6ca;\n --md-green-A200: #69f0ae;\n --md-green-A400: #00e676;\n --md-green-A700: #00c853;\n --md-light-green-50: #f1f8e9;\n --md-light-green-100: #dcedc8;\n --md-light-green-200: #c5e1a5;\n --md-light-green-300: #aed581;\n --md-light-green-400: #9ccc65;\n --md-light-green-500: #8bc34a;\n --md-light-green-600: #7cb342;\n --md-light-green-700: #689f38;\n --md-light-green-800: #558b2f;\n --md-light-green-900: #33691e;\n --md-light-green-A100: #ccff90;\n --md-light-green-A200: #b2ff59;\n --md-light-green-A400: #76ff03;\n --md-light-green-A700: #64dd17;\n --md-lime-50: #f9fbe7;\n --md-lime-100: #f0f4c3;\n --md-lime-200: #e6ee9c;\n --md-lime-300: #dce775;\n --md-lime-400: #d4e157;\n --md-lime-500: #cddc39;\n --md-lime-600: #c0ca33;\n --md-lime-700: #afb42b;\n --md-lime-800: #9e9d24;\n --md-lime-900: #827717;\n --md-lime-A100: #f4ff81;\n --md-lime-A200: #eeff41;\n --md-lime-A400: #c6ff00;\n --md-lime-A700: #aeea00;\n --md-yellow-50: #fffde7;\n --md-yellow-100: #fff9c4;\n --md-yellow-200: #fff59d;\n --md-yellow-300: #fff176;\n --md-yellow-400: #ffee58;\n --md-yellow-500: #ffeb3b;\n --md-yellow-600: #fdd835;\n --md-yellow-700: #fbc02d;\n --md-yellow-800: #f9a825;\n --md-yellow-900: #f57f17;\n --md-yellow-A100: #ffff8d;\n --md-yellow-A200: #ff0;\n --md-yellow-A400: #ffea00;\n --md-yellow-A700: #ffd600;\n --md-amber-50: #fff8e1;\n --md-amber-100: #ffecb3;\n --md-amber-200: #ffe082;\n --md-amber-300: #ffd54f;\n --md-amber-400: #ffca28;\n --md-amber-500: #ffc107;\n --md-amber-600: #ffb300;\n --md-amber-700: #ffa000;\n --md-amber-800: #ff8f00;\n --md-amber-900: #ff6f00;\n --md-amber-A100: #ffe57f;\n --md-amber-A200: #ffd740;\n --md-amber-A400: #ffc400;\n --md-amber-A700: #ffab00;\n --md-orange-50: #fff3e0;\n --md-orange-100: #ffe0b2;\n --md-orange-200: #ffcc80;\n --md-orange-300: #ffb74d;\n --md-orange-400: #ffa726;\n --md-orange-500: #ff9800;\n --md-orange-600: #fb8c00;\n --md-orange-700: #f57c00;\n --md-orange-800: #ef6c00;\n --md-orange-900: #e65100;\n --md-orange-A100: #ffd180;\n --md-orange-A200: #ffab40;\n --md-orange-A400: #ff9100;\n --md-orange-A700: #ff6d00;\n --md-deep-orange-50: #fbe9e7;\n --md-deep-orange-100: #ffccbc;\n --md-deep-orange-200: #ffab91;\n --md-deep-orange-300: #ff8a65;\n --md-deep-orange-400: #ff7043;\n --md-deep-orange-500: #ff5722;\n --md-deep-orange-600: #f4511e;\n --md-deep-orange-700: #e64a19;\n --md-deep-orange-800: #d84315;\n --md-deep-orange-900: #bf360c;\n --md-deep-orange-A100: #ff9e80;\n --md-deep-orange-A200: #ff6e40;\n --md-deep-orange-A400: #ff3d00;\n --md-deep-orange-A700: #dd2c00;\n --md-brown-50: #efebe9;\n --md-brown-100: #d7ccc8;\n --md-brown-200: #bcaaa4;\n --md-brown-300: #a1887f;\n --md-brown-400: #8d6e63;\n --md-brown-500: #795548;\n --md-brown-600: #6d4c41;\n --md-brown-700: #5d4037;\n --md-brown-800: #4e342e;\n --md-brown-900: #3e2723;\n --md-grey-50: #fafafa;\n --md-grey-100: #f5f5f5;\n --md-grey-200: #eee;\n --md-grey-300: #e0e0e0;\n --md-grey-400: #bdbdbd;\n --md-grey-500: #9e9e9e;\n --md-grey-600: #757575;\n --md-grey-700: #616161;\n --md-grey-800: #424242;\n --md-grey-900: #212121;\n --md-blue-grey-50: #eceff1;\n --md-blue-grey-100: #cfd8dc;\n --md-blue-grey-200: #b0bec5;\n --md-blue-grey-300: #90a4ae;\n --md-blue-grey-400: #78909c;\n --md-blue-grey-500: #607d8b;\n --md-blue-grey-600: #546e7a;\n --md-blue-grey-700: #455a64;\n --md-blue-grey-800: #37474f;\n --md-blue-grey-900: #263238;\n}\n",""]);const l=a},8812:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n/* @deprecated dead code to be removed in JupyterLab 5 */\n.jp-Toolbar-item.jp-Toolbar-kernelStatus {\n display: inline-block;\n width: 32px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px;\n}\n",""]);const l=a},31772:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n.jp-cell-button .jp-icon3[fill] {\n fill: var(--jp-inverse-layout-color4);\n}\n\n.jp-cell-button:hover .jp-icon3[fill] {\n fill: var(--jp-inverse-layout-color2);\n}\n\n.jp-toolbar-overlap .jp-cell-toolbar {\n display: none;\n}\n\n.jp-cell-toolbar {\n display: flex;\n flex-direction: row;\n padding: 0;\n min-height: 25px;\n z-index: 6;\n position: absolute;\n right: 3px;\n\n /* Override .jp-Toolbar */\n background-color: transparent;\n border-bottom: inherit;\n box-shadow: none;\n}\n\n/* Overrides for mobile view hiding cell toolbar */\n@media only screen and (width <= 760px) {\n .jp-cell-toolbar {\n display: none;\n }\n}\n\n.jp-cell-toolbar button.jp-ToolbarButtonComponent {\n cursor: pointer;\n}\n\n.jp-cell-toolbar .jp-ToolbarButton button {\n display: none;\n}\n\n.jp-cell-toolbar .jp-ToolbarButton .jp-cell-all,\n.jp-CodeCell .jp-ToolbarButton .jp-cell-code,\n.jp-MarkdownCell .jp-ToolbarButton .jp-cell-markdown,\n.jp-RawCell .jp-ToolbarButton .jp-cell-raw {\n display: block;\n}\n\n.jp-cell-toolbar .jp-Toolbar-spacer {\n flex: 1 1 auto;\n}\n\n.jp-cell-mod-click {\n cursor: pointer;\n}\n\n/* Custom styling for rendered markdown cells so that cell toolbar is visible */\n.jp-MarkdownOutput {\n border-width: var(--jp-border-width);\n border-color: transparent;\n border-style: solid;\n}\n\n.jp-mod-active .jp-MarkdownOutput {\n border-color: var(--jp-cell-editor-border-color);\n}\n",""]);const l=a},55717:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=n(35541);var l=n(30684);var d=n(25147);var c=n(88771);var h=n(60846);var u=r()(s());u.i(a.A);u.i(l.A);u.i(d.A);u.i(c.A);u.i(h.A);u.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n",""]);const p=u},35541:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,'/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-Collapser {\n flex: 0 0 var(--jp-cell-collapser-width);\n padding: 0;\n margin: 0;\n border: none;\n outline: none;\n background: transparent;\n border-radius: var(--jp-border-radius);\n opacity: 1;\n}\n\n.jp-Collapser-child {\n display: block;\n width: 100%;\n box-sizing: border-box;\n\n /* height: 100% doesn\'t work because the height of its parent is computed from content */\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n/*-----------------------------------------------------------------------------\n| Printing\n|----------------------------------------------------------------------------*/\n\n/*\nHiding collapsers in print mode.\n\nNote: input and output wrappers have "display: block" property in print mode.\n*/\n\n@media print {\n .jp-Collapser {\n display: none;\n }\n}\n',""]);const l=a},30684:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Header/Footer\n|----------------------------------------------------------------------------*/\n\n/* Hidden by zero height by default */\n.jp-CellHeader,\n.jp-CellFooter {\n height: 0;\n width: 100%;\n padding: 0;\n margin: 0;\n border: none;\n outline: none;\n background: transparent;\n}\n",""]);const l=a},25147:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Input\n|----------------------------------------------------------------------------*/\n\n/* All input areas */\n.jp-InputArea {\n display: flex;\n flex-direction: row;\n width: 100%;\n overflow: hidden;\n}\n\n.jp-InputArea-editor {\n flex: 1 1 auto;\n overflow: hidden;\n\n /* This is the non-active, default styling */\n border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);\n border-radius: 0;\n background: var(--jp-cell-editor-background);\n}\n\n.jp-InputPrompt {\n flex: 0 0 var(--jp-cell-prompt-width);\n width: var(--jp-cell-prompt-width);\n color: var(--jp-cell-inprompt-font-color);\n font-family: var(--jp-cell-prompt-font-family);\n padding: var(--jp-code-padding);\n letter-spacing: var(--jp-cell-prompt-letter-spacing);\n opacity: var(--jp-cell-prompt-opacity);\n line-height: var(--jp-code-line-height);\n font-size: var(--jp-code-font-size);\n border: var(--jp-border-width) solid transparent;\n\n /* Right align prompt text, don't wrap to handle large prompt numbers */\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n /* Disable text selection */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n/*-----------------------------------------------------------------------------\n| Print\n|----------------------------------------------------------------------------*/\n@media print {\n .jp-InputArea {\n display: table;\n table-layout: fixed;\n }\n\n .jp-InputArea-editor {\n display: table-cell;\n vertical-align: top;\n }\n\n .jp-InputPrompt {\n display: table-cell;\n vertical-align: top;\n }\n}\n\n/*-----------------------------------------------------------------------------\n| Mobile\n|----------------------------------------------------------------------------*/\n@media only screen and (width <= 760px) {\n .jp-InputArea {\n flex-direction: column;\n }\n\n .jp-InputArea-editor {\n margin-left: var(--jp-code-padding);\n }\n\n .jp-InputPrompt {\n flex: 0 0 auto;\n text-align: left;\n }\n}\n",""]);const l=a},88771:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Placeholder\n|----------------------------------------------------------------------------*/\n\n.jp-Placeholder {\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n\n.jp-Placeholder-prompt {\n flex: 0 0 var(--jp-cell-prompt-width);\n box-sizing: border-box;\n}\n\n.jp-Placeholder-content {\n flex: 1 1 auto;\n padding: 4px 6px;\n border: 1px solid transparent;\n border-radius: 0;\n background: none;\n box-sizing: border-box;\n cursor: pointer;\n}\n\n.jp-Placeholder-contentContainer {\n display: flex;\n}\n\n.jp-Placeholder-content:hover,\n.jp-InputPlaceholder > .jp-Placeholder-content:hover {\n border-color: var(--jp-layout-color3);\n}\n\n.jp-Placeholder-content .jp-MoreHorizIcon {\n width: 32px;\n height: 16px;\n border: 1px solid transparent;\n border-radius: var(--jp-border-radius);\n}\n\n.jp-Placeholder-content .jp-MoreHorizIcon:hover {\n border: 1px solid var(--jp-border-color1);\n box-shadow: var(--jp-toolbar-box-shadow);\n background-color: var(--jp-layout-color0);\n}\n\n.jp-PlaceholderText {\n white-space: nowrap;\n overflow-x: hidden;\n color: var(--jp-inverse-layout-color3);\n font-family: var(--jp-code-font-family);\n}\n\n.jp-InputPlaceholder > .jp-Placeholder-content {\n border-color: var(--jp-cell-editor-border-color);\n background: var(--jp-cell-editor-background);\n}\n\n/*-----------------------------------------------------------------------------\n| Print\n|----------------------------------------------------------------------------*/\n@media print {\n .jp-Placeholder {\n display: table;\n table-layout: fixed;\n }\n\n .jp-Placeholder-content {\n display: table-cell;\n }\n\n .jp-Placeholder-prompt {\n display: table-cell;\n }\n}\n",""]);const l=a},60846:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| Private CSS variables\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-cell-scrolling-output-offset: 5px;\n}\n\n/*-----------------------------------------------------------------------------\n| Cell\n|----------------------------------------------------------------------------*/\n\n.jp-Cell {\n padding: var(--jp-cell-padding);\n margin: 0;\n border: none;\n outline: none;\n background: transparent;\n}\n\n/*-----------------------------------------------------------------------------\n| Common input/output\n|----------------------------------------------------------------------------*/\n\n.jp-Cell-inputWrapper,\n.jp-Cell-outputWrapper {\n display: flex;\n flex-direction: row;\n padding: 0;\n margin: 0;\n\n /* Added to reveal the box-shadow on the input and output collapsers. */\n overflow: visible;\n}\n\n/* Only input/output areas inside cells */\n.jp-Cell-inputArea,\n.jp-Cell-outputArea {\n flex: 1 1 auto;\n}\n\n/*-----------------------------------------------------------------------------\n| Collapser\n|----------------------------------------------------------------------------*/\n\n/* Make the output collapser disappear when there is not output, but do so\n * in a manner that leaves it in the layout and preserves its width.\n */\n.jp-Cell.jp-mod-noOutputs .jp-Cell-outputCollapser {\n border: none !important;\n background: transparent !important;\n}\n\n.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputCollapser {\n min-height: var(--jp-cell-collapser-min-height);\n}\n\n/*-----------------------------------------------------------------------------\n| Output\n|----------------------------------------------------------------------------*/\n\n/* Put a space between input and output when there IS output */\n.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputWrapper {\n margin-top: 5px;\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea {\n overflow-y: auto;\n max-height: 24em;\n margin-left: var(--jp-private-cell-scrolling-output-offset);\n resize: vertical;\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea[style*='height'] {\n max-height: unset;\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea::after {\n content: ' ';\n box-shadow: inset 0 0 6px 2px rgb(0 0 0 / 30%);\n width: 100%;\n height: 100%;\n position: sticky;\n bottom: 0;\n top: 0;\n margin-top: -50%;\n float: left;\n display: block;\n pointer-events: none;\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-child {\n padding-top: 6px;\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-prompt {\n width: calc(\n var(--jp-cell-prompt-width) - var(--jp-private-cell-scrolling-output-offset)\n );\n flex: 0 0\n calc(\n var(--jp-cell-prompt-width) -\n var(--jp-private-cell-scrolling-output-offset)\n );\n}\n\n.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-promptOverlay {\n left: calc(-1 * var(--jp-private-cell-scrolling-output-offset));\n}\n\n/*-----------------------------------------------------------------------------\n| CodeCell\n|----------------------------------------------------------------------------*/\n\n/*-----------------------------------------------------------------------------\n| MarkdownCell\n|----------------------------------------------------------------------------*/\n\n.jp-MarkdownOutput {\n flex: 1 1 auto;\n width: 100%;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: var(--jp-code-padding);\n}\n\n.jp-MarkdownOutput.jp-RenderedHTMLCommon {\n overflow: auto;\n}\n\n/* collapseHeadingButton (show always if hiddenCellsButton is _not_ shown) */\n.jp-collapseHeadingButton {\n display: flex;\n min-height: var(--jp-cell-collapser-min-height);\n font-size: var(--jp-code-font-size);\n position: absolute;\n background-color: transparent;\n background-size: 25px;\n background-repeat: no-repeat;\n background-position-x: center;\n background-position-y: top;\n background-image: var(--jp-icon-caret-down);\n right: 0;\n top: 0;\n bottom: 0;\n}\n\n.jp-collapseHeadingButton.jp-mod-collapsed {\n background-image: var(--jp-icon-caret-right);\n}\n\n/*\n set the container font size to match that of content\n so that the nested collapse buttons have the right size\n*/\n.jp-MarkdownCell .jp-InputPrompt {\n font-size: var(--jp-content-font-size1);\n}\n\n/*\n Align collapseHeadingButton with cell top header\n The font sizes are identical to the ones in packages/rendermime/style/base.css\n*/\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='1'] {\n font-size: var(--jp-content-font-size5);\n background-position-y: calc(0.3 * var(--jp-content-font-size5));\n}\n\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='2'] {\n font-size: var(--jp-content-font-size4);\n background-position-y: calc(0.3 * var(--jp-content-font-size4));\n}\n\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='3'] {\n font-size: var(--jp-content-font-size3);\n background-position-y: calc(0.3 * var(--jp-content-font-size3));\n}\n\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='4'] {\n font-size: var(--jp-content-font-size2);\n background-position-y: calc(0.3 * var(--jp-content-font-size2));\n}\n\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='5'] {\n font-size: var(--jp-content-font-size1);\n background-position-y: top;\n}\n\n.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='6'] {\n font-size: var(--jp-content-font-size0);\n background-position-y: top;\n}\n\n/* collapseHeadingButton (show only on (hover,active) if hiddenCellsButton is shown) */\n.jp-Notebook.jp-mod-showHiddenCellsButton .jp-collapseHeadingButton {\n display: none;\n}\n\n.jp-Notebook.jp-mod-showHiddenCellsButton\n :is(.jp-MarkdownCell:hover, .jp-mod-active)\n .jp-collapseHeadingButton {\n display: flex;\n}\n\n/* showHiddenCellsButton (only show if jp-mod-showHiddenCellsButton is set, which\nis a consequence of the showHiddenCellsButton option in Notebook Settings)*/\n.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton {\n margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding));\n margin-top: var(--jp-code-padding);\n border: 1px solid var(--jp-border-color2);\n background-color: var(--jp-border-color3) !important;\n color: var(--jp-content-font-color0) !important;\n display: flex;\n}\n\n.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton:hover {\n background-color: var(--jp-border-color2) !important;\n}\n\n.jp-showHiddenCellsButton {\n display: none;\n}\n\n/*-----------------------------------------------------------------------------\n| Printing\n|----------------------------------------------------------------------------*/\n\n/*\nUsing block instead of flex to allow the use of the break-inside CSS property for\ncell outputs.\n*/\n\n@media print {\n .jp-Cell-inputWrapper,\n .jp-Cell-outputWrapper {\n display: block;\n }\n\n .jp-MarkdownOutput {\n display: table-cell;\n }\n}\n",""]);const l=a},96415:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n:root {\n --jp-add-tag-extra-width: 8px;\n}\n\n.jp-CellTags-Tag {\n height: 20px;\n border-radius: 10px;\n margin-right: 5px;\n margin-bottom: 10px;\n padding: 0 8px;\n font-size: var(--jp-ui-font-size1);\n display: inline-flex;\n justify-content: center;\n align-items: center;\n max-width: calc(100% - 25px);\n border: 1px solid var(--jp-border-color1);\n color: var(--jp-ui-font-color1);\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.jp-CellTags-Unapplied {\n background-color: var(--jp-layout-color2);\n}\n\n.jp-CellTags-Applied {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-CellTags-Add {\n white-space: nowrap;\n overflow: hidden;\n border: none;\n outline: none;\n resize: horizontal;\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color1);\n background: var(--jp-layout-color2);\n}\n\n.jp-CellTags-Holder {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.jp-CellTags-Empty {\n width: 4em;\n}\n",""]);const l=a},9534:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=n(94925);var l=r()(s());l.i(a.A);l.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-JSONEditor {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.jp-JSONEditor-host {\n flex: 1 1 auto;\n border: var(--jp-border-width) solid var(--jp-input-border-color);\n border-radius: 0;\n background: var(--jp-layout-color0);\n min-height: 50px;\n padding: 1px;\n}\n\n.jp-JSONEditor.jp-mod-error .jp-JSONEditor-host {\n border-color: red;\n outline-color: red;\n}\n\n.jp-JSONEditor-header {\n display: flex;\n flex: 1 0 auto;\n padding: 0 0 0 12px;\n}\n\n.jp-JSONEditor-header label {\n flex: 0 0 auto;\n}\n\n.jp-JSONEditor-commitButton {\n height: 16px;\n width: 16px;\n background-size: 18px;\n background-repeat: no-repeat;\n background-position: center;\n}\n\n.jp-JSONEditor-host.jp-mod-focused {\n background-color: var(--jp-input-active-background);\n border: 1px solid var(--jp-input-active-border-color);\n box-shadow: var(--jp-input-box-shadow);\n}\n\n.jp-Editor.jp-mod-dropTarget {\n border: var(--jp-border-width) solid var(--jp-input-active-border-color);\n box-shadow: var(--jp-input-box-shadow);\n}\n",""]);const d=l},94925:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n.jp-lineFormSearch {\n padding: 4px 12px;\n background-color: var(--jp-layout-color2);\n box-shadow: var(--jp-toolbar-box-shadow);\n z-index: 2;\n font-size: var(--jp-ui-font-size1);\n}\n\n.jp-lineFormCaption {\n font-size: var(--jp-ui-font-size0);\n line-height: var(--jp-ui-font-size1);\n margin-top: 4px;\n color: var(--jp-ui-font-color0);\n}\n\n.jp-baseLineForm {\n border: none;\n border-top-right-radius: var(--jp-border-radius);\n border-bottom-right-radius: var(--jp-border-radius);\n position: absolute;\n background-size: 16px;\n background-repeat: no-repeat;\n background-position: center;\n outline: none;\n}\n\n.jp-lineFormButtonContainer {\n top: 4px;\n right: 8px;\n height: 24px;\n padding: 0 12px;\n width: 12px;\n}\n\n.jp-lineFormButtonIcon {\n top: 0;\n right: 0;\n background-color: var(--jp-brand-color1);\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n padding: 4px 6px;\n}\n\n.jp-lineFormButton {\n top: 0;\n right: 0;\n background-color: transparent;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n}\n\n.jp-lineFormWrapper {\n overflow: hidden;\n padding: 0 8px;\n border: 1px solid var(--jp-border-color0);\n border-top-left-radius: var(--jp-border-radius);\n border-bottom-left-radius: var(--jp-border-radius);\n background-color: var(--jp-input-active-background);\n height: 22px;\n}\n\n.jp-lineFormWrapperFocusWithin {\n border: var(--jp-border-width) solid var(--jp-input-active-border-color);\n box-shadow: var(--jp-input-box-shadow);\n}\n\n.jp-lineFormInput {\n background: transparent;\n width: 200px;\n height: 100%;\n border: none;\n outline: none;\n color: var(--jp-ui-font-color0);\n padding: 0;\n}\n",""]);const l=a},29500:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=n(4417);var l=n.n(a);var d=new URL(n(78269),n.b);var c=r()(s());var h=l()(d);c.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.cm-editor {\n line-height: var(--jp-code-line-height);\n font-size: var(--jp-code-font-size);\n font-family: var(--jp-code-font-family);\n border: 0;\n border-radius: 0;\n height: auto;\n\n /* Changed to auto to autogrow */\n}\n\n/* Suppress automatic focus indicator outline */\n.cm-editor.cm-focused {\n outline: unset;\n}\n\n.cm-editor pre {\n padding: 0 var(--jp-code-padding);\n}\n\n.jp-CodeMirrorEditor[data-type='inline'] .cm-dialog {\n background-color: var(--jp-layout-color0);\n color: var(--jp-content-font-color1);\n}\n\n.jp-CodeMirrorEditor {\n cursor: text;\n}\n\n/* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */\n@media screen and (width >= 2138px) and (width <= 4319px) {\n .jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {\n border-left: var(--jp-code-cursor-width1) solid\n var(--jp-editor-cursor-color);\n }\n}\n\n/* When zoomed out less than 33% */\n@media screen and (width >= 4320px) {\n .jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {\n border-left: var(--jp-code-cursor-width2) solid\n var(--jp-editor-cursor-color);\n }\n}\n\n/* stylelint-disable selector-max-class */\n\n/* We need all this classes for higher specificity to override CodeMirror's rule */\n.cm-editor.jp-mod-readOnly > .cm-scroller > .cm-cursorLayer .cm-cursor {\n display: none;\n}\n\n/* stylelint-enable selector-max-class */\n\n.jp-CollaboratorCursor {\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: none;\n border-bottom: 3px solid;\n background-clip: content-box;\n margin-left: -5px;\n margin-right: -5px;\n}\n\n.cm-builtin {\n color: var(--jp-mirror-editor-builtin-color);\n}\n\n.cm-searching,\n.cm-searching span {\n /* `.cm-searching span`: we need to override syntax highlighting */\n background-color: var(--jp-search-unselected-match-background-color);\n color: var(--jp-search-unselected-match-color);\n}\n\n.cm-searching::selection,\n.cm-searching span::selection {\n background-color: var(--jp-search-unselected-match-background-color);\n color: var(--jp-search-unselected-match-color);\n}\n\n.jp-current-match > .cm-searching,\n.jp-current-match > .cm-searching span,\n.cm-searching > .jp-current-match,\n.cm-searching > .jp-current-match span {\n background-color: var(--jp-search-selected-match-background-color);\n color: var(--jp-search-selected-match-color);\n}\n\n.jp-current-match > .cm-searching::selection,\n.jp-current-match > .cm-searching span::selection,\n.cm-searching > .jp-current-match::selection,\n.cm-searching > .jp-current-match span::selection {\n background-color: var(--jp-search-selected-match-background-color);\n color: var(--jp-search-selected-match-color);\n}\n\n.cm-trailingspace {\n background-image: url("+h+");\n background-position: center left;\n background-repeat: repeat-x;\n}\n\n.jp-CollaboratorCursor-hover {\n position: absolute;\n z-index: 1;\n transform: translateX(-50%);\n color: white;\n border-radius: 3px;\n padding-left: 4px;\n padding-right: 4px;\n padding-top: 1px;\n padding-bottom: 1px;\n text-align: center;\n font-size: var(--jp-ui-font-size1);\n white-space: nowrap;\n}\n\n.jp-CodeMirror-ruler {\n border-left: 1px dashed var(--jp-border-color2);\n}\n\n/* Styles for shared cursors (remote cursor locations and selected ranges) */\n.jp-CodeMirrorEditor .cm-ySelectionCaret {\n position: relative;\n border-left: 1px solid black;\n margin-left: -1px;\n margin-right: -1px;\n box-sizing: border-box;\n}\n\n.jp-CodeMirrorEditor .cm-ySelectionCaret > .cm-ySelectionInfo {\n white-space: nowrap;\n position: absolute;\n top: -1.15em;\n padding-bottom: 0.05em;\n left: -1px;\n font-size: 0.95em;\n font-family: var(--jp-ui-font-family);\n font-weight: bold;\n line-height: normal;\n user-select: none;\n color: white;\n padding-left: 2px;\n padding-right: 2px;\n z-index: 101;\n transition: opacity 0.3s ease-in-out;\n}\n\n.jp-CodeMirrorEditor .cm-ySelectionInfo {\n transition-delay: 0.7s;\n opacity: 0;\n}\n\n.jp-CodeMirrorEditor .cm-ySelectionCaret:hover > .cm-ySelectionInfo {\n opacity: 1;\n transition-delay: 0s;\n}\n",""]);const u=c},57331:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n:root {\n --jp-private-completer-item-height: 24px;\n\n /* Shift the baseline of the type character to align with the match text */\n --jp-private-completer-type-offset: 2px;\n}\n\n.jp-Completer {\n box-shadow: var(--jp-elevation-z6);\n background: var(--jp-layout-color1);\n color: var(--jp-content-font-color1);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n padding: 0;\n display: flex;\n flex-direction: row;\n\n /* Needed to avoid scrollbar issues when using cached width. */\n box-sizing: content-box;\n\n /* Position the completer relative to the text editor, align the '.' */\n margin: 4px 0 0 -30px;\n z-index: 10001;\n}\n\n.jp-Completer-docpanel {\n border-left: var(--jp-border-width) solid var(--jp-border-color1);\n width: 400px;\n flex-shrink: 0;\n overflow-y: scroll;\n overflow-x: auto;\n padding: 8px;\n max-height: calc((10 * var(--jp-private-completer-item-height)) - 16px);\n}\n\n.jp-Completer-docpanel pre {\n border: none;\n margin: 0;\n padding: 0;\n white-space: pre-wrap;\n}\n\n.jp-Completer-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n overflow-y: scroll;\n overflow-x: hidden;\n max-height: calc((10 * var(--jp-private-completer-item-height)));\n min-height: calc(var(--jp-private-completer-item-height));\n width: 100%;\n}\n\n.jp-Completer-item {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n height: var(--jp-private-completer-item-height);\n min-width: 150px;\n display: grid;\n grid-template-columns: min-content 1fr min-content;\n position: relative;\n}\n\n.jp-Completer-item .jp-Completer-match {\n box-sizing: border-box;\n margin: 0;\n padding: 0 8px 0 6px;\n height: var(--jp-private-completer-item-height);\n font-family: var(--jp-code-font-family);\n font-size: var(--jp-code-font-size);\n line-height: var(--jp-private-completer-item-height);\n white-space: nowrap;\n}\n\n.jp-Completer-deprecated .jp-Completer-match {\n text-decoration: line-through;\n color: var(--jp-content-font-color2);\n}\n\n.jp-Completer-item .jp-Completer-type {\n box-sizing: border-box;\n height: var(--jp-private-completer-item-height);\n background: transparent;\n width: var(--jp-private-completer-item-height);\n}\n\n.jp-Completer-item .jp-Completer-icon {\n /* Normal element size from LabIconStyle.ISheetOptions */\n height: 16px;\n width: 16px;\n}\n\n.jp-Completer-item .jp-Completer-monogram {\n text-align: center;\n color: white;\n width: var(--jp-private-completer-item-height);\n font-family: var(--jp-ui-font-family);\n font-size: var(--jp-ui-font-size1);\n line-height: calc(\n var(--jp-private-completer-item-height) -\n var(--jp-private-completer-type-offset)\n );\n padding-bottom: var(--jp-private-completer-type-offset);\n}\n\n.jp-Completer-item .jp-Completer-typeExtended {\n box-sizing: border-box;\n height: var(--jp-private-completer-item-height);\n text-align: right;\n background: transparent;\n color: var(--jp-ui-font-color2);\n font-family: var(--jp-code-font-family);\n font-size: var(--jp-code-font-size);\n line-height: var(--jp-private-completer-item-height);\n padding-right: 8px;\n}\n\n.jp-Completer-item:hover {\n background: var(--jp-layout-color2);\n opacity: 0.8;\n}\n\n.jp-Completer-item.jp-mod-active {\n background: var(--jp-brand-color1);\n color: white;\n}\n\n.jp-Completer-item .jp-Completer-match mark {\n font-weight: bold;\n background: inherit;\n color: inherit;\n}\n\n.jp-Completer-type[data-color-index='0'] {\n background: var(--jp-completer-type-background0, transparent);\n}\n\n.jp-Completer-type[data-color-index='1'] {\n background: var(--jp-completer-type-background1, #1f77b4);\n}\n\n.jp-Completer-type[data-color-index='2'] {\n background: var(--jp-completer-type-background2, #ff7f0e);\n}\n\n.jp-Completer-type[data-color-index='3'] {\n background: var(--jp-completer-type-background3, #2ca02c);\n}\n\n.jp-Completer-type[data-color-index='4'] {\n background: var(--jp-completer-type-background4, #d62728);\n}\n\n.jp-Completer-type[data-color-index='5'] {\n background: var(--jp-completer-type-background5, #9467bd);\n}\n\n.jp-Completer-type[data-color-index='6'] {\n background: var(--jp-completer-type-background6, #8c564b);\n}\n\n.jp-Completer-type[data-color-index='7'] {\n background: var(--jp-completer-type-background7, #e377c2);\n}\n\n.jp-Completer-type[data-color-index='8'] {\n background: var(--jp-completer-type-background8, #7f7f7f);\n}\n\n.jp-Completer-type[data-color-index='9'] {\n background: var(--jp-completer-type-background9, #bcbd22);\n}\n\n.jp-Completer-type[data-color-index='10'] {\n background: var(--jp-completer-type-background10, #17becf);\n}\n\n.jp-Completer-loading-bar-container {\n height: 2px;\n width: calc(100% - var(--jp-private-completer-item-height));\n left: var(--jp-private-completer-item-height);\n position: absolute;\n overflow: hidden;\n top: 0;\n}\n\n.jp-Completer-loading-bar {\n height: 100%;\n width: 50%;\n background-color: var(--jp-accent-color2);\n position: absolute;\n left: -50%;\n animation: jp-Completer-loading 2s ease-in 0.5s infinite;\n}\n\n@keyframes jp-Completer-loading {\n 0% {\n transform: translateX(0);\n }\n\n 100% {\n transform: translateX(400%);\n }\n}\n\n.jp-GhostText {\n color: var(--jp-ui-font-color3);\n white-space: pre-wrap;\n}\n\n.jp-GhostText-lineSpacer,\n.jp-GhostText-letterSpacer {\n opacity: 0;\n display: inline-block;\n vertical-align: top;\n /* stylelint-disable-next-line csstree/validator */\n text-wrap: none;\n}\n\n.jp-GhostText-letterSpacer {\n max-width: 0;\n}\n\n.jp-GhostText-lineSpacer {\n /* duration and delay are overwritten by inline styles */\n animation: jp-GhostText-hide 300ms 700ms ease-out forwards;\n}\n\n@keyframes jp-GhostText-hide {\n 0% {\n font-size: unset;\n }\n\n 100% {\n font-size: 0;\n }\n}\n\n.jp-GhostText-expandHidden {\n border: 1px solid var(--jp-border-color0);\n border-radius: var(--jp-border-radius);\n background: var(--jp-layout-color0);\n color: var(--jp-content-font-color3);\n padding: 0 4px;\n margin: 0 4px;\n cursor: default;\n}\n\n.jp-GhostText-hiddenWrapper:hover > .jp-GhostText-hiddenLines {\n display: inline;\n}\n\n.jp-GhostText-hiddenLines {\n display: none;\n}\n\n.jp-GhostText[data-animation='uncover'] {\n position: relative;\n}\n\n.jp-GhostText-streamedToken {\n white-space: pre;\n}\n\n.jp-GhostText[data-animation='uncover'] > .jp-GhostText-streamedToken {\n animation: jp-GhostText-typing 2s forwards;\n display: inline-flex;\n overflow: hidden;\n}\n\n@keyframes jp-GhostText-typing {\n from {\n max-width: 0;\n }\n\n to {\n max-width: 100%;\n }\n}\n\n.jp-GhostText-streamingIndicator::after {\n animation: jp-GhostText-streaming 2s infinite;\n animation-delay: 400ms;\n content: ' ';\n background: var(--jp-layout-color4);\n opacity: 0.2;\n}\n\n@keyframes jp-GhostText-streaming {\n 0% {\n opacity: 0.2;\n }\n\n 20% {\n opacity: 0.4;\n }\n\n 40% {\n opacity: 0.2;\n }\n}\n\n.jp-GhostText-errorIndicator::after {\n animation: jp-GhostText-error 500ms 1;\n animation-delay: 3500ms;\n color: var(--jp-error-color1);\n font-size: 150%;\n line-height: 10px;\n margin-left: 2px;\n padding: 0 4px;\n content: '⚠';\n cursor: help;\n position: relative;\n top: 2px;\n}\n\n@keyframes jp-GhostText-error {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n.jp-InlineCompleter {\n box-shadow: var(--jp-elevation-z2);\n background: var(--jp-layout-color1);\n color: var(--jp-content-font-color1);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 8px;\n}\n\n.jp-InlineCompleter-progressBar {\n height: 2px;\n position: absolute;\n top: 0;\n left: 0;\n background-color: var(--jp-accent-color2);\n}\n\n.jp-InlineCompleter[data-display='onHover'] {\n opacity: 0;\n transition:\n visibility 0s linear 0.1s,\n opacity 0.1s linear;\n visibility: hidden;\n}\n\n.jp-InlineCompleter[data-display='onHover']:hover,\n.jp-InlineCompleter-hover[data-display='onHover'] {\n opacity: 1;\n visibility: visible;\n transition-delay: 0s;\n}\n\n.jp-InlineCompleter[data-display='never'] {\n display: none;\n}\n\n.jp-InlineCompleter > .jp-Toolbar {\n box-shadow: none;\n border-bottom: none;\n background: none;\n}\n\n.jp-InlineCompleter[data-show-shortcuts='false']\n .jp-ToolbarButtonComponent-label {\n display: none;\n}\n\n.jp-InlineCompleter [data-command='inline-completer:next'] > svg,\n.jp-InlineCompleter [data-command='inline-completer:previous'] > svg {\n scale: 1.5;\n}\n",""]);const l=a},19961:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/* Toolbar menu to select the prompt cell position */\n.jp-CodeConsolePromptMenu {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.jp-CodeConsolePromptMenu .lm-Menu-itemIcon > svg {\n vertical-align: sub;\n}\n",""]);const l=a},16513:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-ConsolePanel {\n display: flex;\n margin-top: -1px;\n min-width: 240px;\n min-height: 120px;\n}\n\n.jp-CodeConsole {\n height: 100%;\n padding: 0;\n display: flex;\n}\n\n.jp-CodeConsole .jp-Cell {\n padding: var(--jp-cell-padding);\n}\n\n/*-----------------------------------------------------------------------------\n| Content (already run cells)\n|----------------------------------------------------------------------------*/\n\n.jp-CodeConsole-content {\n background: var(--jp-layout-color0);\n overflow: auto;\n padding: 0 var(--jp-console-padding);\n min-width: calc(10 * var(--jp-ui-font-size1));\n min-height: calc(5 * var(--jp-ui-font-size1));\n}\n\n.jp-CodeConsole-content .jp-Cell:not(.jp-mod-active) .jp-InputPrompt {\n opacity: var(--jp-cell-prompt-not-active-opacity);\n color: var(--jp-cell-inprompt-font-color);\n cursor: move;\n}\n\n.jp-CodeConsole-content .jp-Cell:not(.jp-mod-active) .jp-OutputPrompt {\n opacity: var(--jp-cell-prompt-not-active-opacity);\n color: var(--jp-cell-outprompt-font-color);\n}\n\n/* This rule is for styling cell run by another activity in this console */\n\n/* .jp-CodeConsole-content .jp-Cell.jp-CodeConsole-foreignCell {\n} */\n\n.jp-CodeConsole-content .jp-InputArea-editor.jp-InputArea-editor {\n background: transparent;\n border: 1px solid transparent;\n}\n\n.jp-CodeConsole-content .jp-CodeConsole-banner .jp-InputPrompt {\n display: none;\n}\n\n/* collapser is hovered */\n.jp-CodeConsole-content .jp-Cell .jp-Collapser:hover {\n box-shadow: var(--jp-elevation-z2);\n background: var(--jp-brand-color1);\n opacity: var(--jp-cell-collapser-not-active-hover-opacity);\n}\n\n/*-----------------------------------------------------------------------------\n| Input/prompt cell\n|----------------------------------------------------------------------------*/\n\n.jp-CodeConsole-input {\n overflow: auto;\n padding: var(--jp-cell-padding) var(--jp-console-padding);\n\n /* This matches the box shadow on the notebook toolbar, eventually we should create\n * CSS variables for this */\n box-shadow: 0 0.4px 6px 0 rgba(0, 0, 0, 0.1);\n background: var(--jp-layout-color0);\n min-width: calc(10 * var(--jp-ui-font-size1));\n min-height: calc(4 * var(--jp-ui-font-size1));\n}\n\n.jp-CodeConsole-input .jp-CodeConsole-prompt .jp-InputArea {\n height: 100%;\n min-height: 100%;\n}\n\n.jp-CodeConsole-promptCell .jp-InputArea-editor.jp-mod-focused {\n border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);\n box-shadow: var(--jp-input-box-shadow);\n background-color: var(--jp-cell-editor-active-background);\n}\n\n/*-----------------------------------------------------------------------------\n| Presentation Mode (.jp-mod-presentationMode)\n|----------------------------------------------------------------------------*/\n\n.jp-mod-presentationMode .jp-CodeConsole {\n --jp-content-font-size1: var(--jp-content-presentation-font-size1);\n --jp-code-font-size: var(--jp-code-presentation-font-size);\n}\n\n.jp-mod-presentationMode .jp-CodeConsole .jp-Cell .jp-InputPrompt,\n.jp-mod-presentationMode .jp-CodeConsole .jp-Cell .jp-OutputPrompt {\n flex: 0 0 110px;\n}\n\n/*-----------------------------------------------------------------------------\n| Split Panel Container\n|----------------------------------------------------------------------------*/\n.jp-CodeConsole-split {\n display: flex;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.jp-CodeConsole-split.lm-SplitPanel .lm-SplitPanel-handle::after {\n background-color: var(--jp-border-color2);\n min-height: calc(2 * var(--jp-border-width));\n min-width: calc(2 * var(--jp-border-width));\n}\n\n/*-----------------------------------------------------------------------------\n| Mobile\n|----------------------------------------------------------------------------*/\n@media only screen and (width <= 760px) {\n .jp-CodeConsole-input {\n min-height: calc(6 * var(--jp-ui-font-size1));\n }\n}\n",""]);const l=a},40538:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-CSVViewer {\n display: flex;\n flex-direction: column;\n outline: none;\n\n /* This is needed so that all font sizing of children done in ems is\n * relative to this base size */\n font-size: var(--jp-ui-font-size1);\n}\n\n.jp-CSVDelimiter {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n border: none;\n min-height: 24px;\n background: var(--jp-toolbar-background);\n z-index: 1;\n}\n\n.jp-CSVDelimiter .jp-CSVDelimiter-label {\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n padding-left: 8px;\n padding-right: 8px;\n}\n\n.jp-CSVDelimiter .jp-CSVDelimiter-dropdown {\n flex: 0 0 auto;\n vertical-align: middle;\n border-radius: 0;\n outline: none;\n height: 20px;\n margin-top: 2px;\n margin-bottom: 2px;\n}\n\n.jp-CSVDelimiter .jp-CSVDelimiter-dropdown select.jp-mod-styled {\n color: var(--jp-ui-font-color1);\n background: var(--jp-layout-color1);\n font-size: var(--jp-ui-font-size1);\n height: 20px;\n padding-right: 20px;\n}\n\n.jp-CSVViewer-grid {\n flex: 1 1 auto;\n}\n",""]);const l=a},1597:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=n(21584);var l=n(41076);var d=n(26933);var c=n(41575);var h=n(16204);var u=n(52498);var p=n(11919);var m=r()(s());m.i(a.A);m.i(l.A);m.i(d.A);m.i(c.A);m.i(h.A);m.i(u.A);m.i(p.A);m.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-left-truncated {\n overflow: hidden;\n text-overflow: ellipsis;\n direction: rtl;\n}\n\n#jp-debugger .jp-switch-label {\n margin-right: 0;\n}\n\n.jp-DebuggerBugButton[aria-pressed='true'] {\n /* Undo default toolkit style */\n box-shadow: none;\n}\n\n.jp-DebuggerBugButton[aria-pressed='true'] path {\n fill: var(--jp-warn-color0);\n}\n",""]);const g=m},21584:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerBreakpoints {\n display: flex;\n flex-direction: column;\n min-height: 50px;\n padding-top: 3px;\n}\n\n.jp-DebuggerBreakpoints-body {\n padding: 10px;\n overflow: auto;\n}\n\n.jp-DebuggerBreakpoint {\n display: flex;\n align-items: center;\n}\n\n.jp-DebuggerBreakpoint:hover {\n background: var(--jp-layout-color2);\n cursor: pointer;\n}\n\n.jp-DebuggerBreakpoint-marker {\n font-size: 20px;\n padding-right: 5px;\n content: '●';\n color: var(--jp-error-color1);\n}\n\n.jp-DebuggerBreakpoint-source {\n white-space: nowrap;\n margin-right: 5px;\n}\n\n.jp-DebuggerBreakpoint-line {\n margin-left: auto;\n}\n\n.jp-DebuggerCallstackFrame {\n display: flex;\n align-items: center;\n}\n\n.jp-DebuggerCallstackFrame-name {\n white-space: nowrap;\n margin-right: 5px;\n}\n\n.jp-DebuggerCallstackFrame-location {\n margin-left: auto;\n}\n\n[data-jp-debugger='true'] .cm-breakpoint-gutter .cm-gutterElement:empty::after {\n content: '●';\n color: var(--jp-error-color1);\n opacity: 0;\n}\n\n.cm-gutter {\n cursor: default;\n}\n\n.cm-breakpoint-gutter .cm-gutterElement {\n color: var(--jp-error-color1);\n padding-left: 5px;\n font-size: 20px;\n position: relative;\n top: -5px;\n}\n\n[data-jp-debugger='true'].jp-Editor\n .cm-breakpoint-gutter\n .cm-gutterElement:empty:hover::after,\n[data-jp-debugger='true']\n .jp-Notebook\n .jp-CodeCell.jp-mod-selected\n .cm-breakpoint-gutter:empty:hover::after,\n[data-jp-debugger='true']\n .jp-Editor\n .cm-breakpoint-gutter\n .cm-gutterElement:empty:hover::after {\n opacity: 0.5;\n}\n",""]);const l=a},41076:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerCallstack {\n display: flex;\n flex-direction: column;\n min-height: 50px;\n padding-top: 3px;\n}\n\n.jp-DebuggerCallstack-body {\n overflow: auto;\n}\n\n.jp-DebuggerCallstack-body ul {\n list-style: none;\n margin: 0;\n padding: 0;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n}\n\n.jp-DebuggerCallstack-body li {\n padding: 5px;\n padding-left: 8px;\n}\n\n.jp-DebuggerCallstack-body li.selected {\n color: white;\n background: var(--jp-brand-color1);\n}\n\n.jp-DebuggerCallstack .jp-ToolbarButtonComponent-label {\n display: none;\n}\n",""]);const l=a},26933:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerEditor-highlight {\n text-shadow: 0 0 1px var(--jp-layout-color0);\n outline: 1px solid;\n}\n\nbody[data-jp-theme-light='false'] .jp-DebuggerEditor-highlight {\n background-color: var(--md-brown-800, #4e342e);\n outline-color: var(--md-brown-600, #6d4c41);\n}\n\nbody[data-jp-theme-light='true'] .jp-DebuggerEditor-highlight {\n background-color: var(--md-brown-100, #d7ccc8);\n outline-color: var(--md-brown-300, #a1887f);\n}\n\n.jp-DebuggerEditor-marker {\n position: absolute;\n left: -34px;\n top: -1px;\n color: var(--jp-error-color1);\n}\n",""]);const l=a},41575:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerKernelSources {\n min-height: 50px;\n margin-top: 3px;\n}\n\n[data-jp-debugger='true'].jp-Editor .jp-mod-readOnly {\n background: var(--jp-layout-color2);\n height: 100%;\n}\n\n.jp-DebuggerKernelSources-body [data-jp-debugger='true'].jp-Editor {\n height: 100%;\n}\n\n.jp-DebuggerKernelSources-body {\n height: 100%;\n overflow-y: auto;\n}\n\n.jp-DebuggerKernelSource-filterBox {\n padding: 0;\n flex: 0 0 auto;\n margin: 0;\n position: sticky;\n top: 0;\n background-color: var(--jp-layout-color1);\n}\n\n.jp-DebuggerKernelSource-filterBox-hidden {\n display: none;\n}\n\n.jp-DebuggerKernelSource-source {\n display: flex;\n align-items: center;\n padding: 4px;\n cursor: pointer;\n}\n\n.jp-DebuggerKernelSource-source:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.jp-DebuggerKernelSource-source > svg {\n height: 16px;\n width: 16px;\n}\n",""]);const l=a},16204:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-SidePanel-header > h2 {\n /* Set font-size to override default h2 sizing but keeping default --jp-ui-font-size0 */\n font-size: 100%;\n font-weight: 600;\n margin: 0 auto 0 0;\n padding: 4px 10px;\n}\n\n.jp-DebuggerSidebar-body\n .jp-AccordionPanel-title\n jp-toolbar::part(positioning-region) {\n flex-wrap: nowrap;\n}\n",""]);const l=a},52498:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerSources {\n min-height: 50px;\n margin-top: 3px;\n}\n\n[data-jp-debugger='true'].jp-Editor .jp-mod-readOnly {\n background: var(--jp-layout-color2);\n height: 100%;\n}\n\n.jp-DebuggerSources-body [data-jp-debugger='true'].jp-Editor {\n height: 100%;\n}\n\n.jp-DebuggerSources-body {\n height: 100%;\n}\n\n.jp-DebuggerSources-header-path {\n overflow: hidden;\n cursor: pointer;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--jp-ui-font-size0);\n color: var(--jp-ui-font-color1);\n user-select: text;\n}\n",""]);const l=a},11919:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-DebuggerVariables {\n display: flex;\n flex-direction: column;\n min-height: 50px;\n padding-top: 3px;\n}\n\n.jp-DebuggerVariables-body {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 24px;\n overflow: auto;\n\n /* For absolute positioning of jp-DebuggerVariables-buttons. */\n position: relative;\n}\n\n.jp-DebuggerVariables-name {\n color: var(--jp-mirror-editor-attribute-color);\n grid-area: name;\n}\n\n.jp-DebuggerVariables-name:last-of-type {\n flex: 1 1 auto;\n}\n\n.jp-DebuggerVariables-name::after {\n content: ':';\n margin-right: 5px;\n}\n\n.jp-DebuggerVariables-detail {\n /* detail contains value for primitive types or name of the type otherwise */\n color: var(--jp-mirror-editor-string-color);\n flex: 1 1 auto;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.jp-DebuggerVariables-grid {\n flex: 1 1 auto;\n}\n\n.jp-DebuggerVariables-grid .lm-DataGrid {\n border: none;\n}\n\n.jp-DebuggerVariables-colorPalette {\n visibility: hidden;\n z-index: -999;\n position: absolute;\n left: -999px;\n top: -999px;\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-void {\n color: var(--jp-layout-color1);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-background {\n color: var(--jp-rendermime-table-row-background);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-header-background {\n color: var(--jp-layout-color2);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-grid-line {\n color: var(--jp-border-color3);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-header-grid-line {\n color: var(--jp-border-color3);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-selection {\n /* TODO: Fix JupyterLab light theme (alpha) so this can be a variable. */\n color: rgba(3, 169, 244, 0.2);\n}\n\n.jp-DebuggerVariables-colorPalette .jp-mod-text {\n color: var(--jp-content-font-color0);\n}\n\n.jp-VariableRendererPanel {\n overflow: auto;\n}\n\n.jp-VariableRendererPanel-renderer {\n overflow: auto;\n height: 100%;\n}\n\n.jp-VariableRenderer-TrustButton[aria-pressed='true'] {\n box-shadow: inset 0 var(--jp-border-width) 4px\n rgba(\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n var(--jp-shadow-base-lightness),\n 0.6\n );\n}\n\n.jp-DebuggerRichVariable div[data-mime-type='text/plain'] > pre {\n white-space: normal;\n}\n",""]);const l=a},79993:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-MimeDocument {\n outline: none;\n}\n",""]);const l=a},20939:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var i=n(31601);var s=n.n(i);var o=n(76314);var r=n.n(o);var a=r()(s());a.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n.jp-DocumentSearch-input {\n border: none;\n outline: none;\n color: var(--jp-ui-font-color0);\n font-size: var(--jp-ui-font-size1);\n background-color: var(--jp-layout-color0);\n font-family: var(--jp-ui-font-family);\n padding: 2px 1px;\n resize: none;\n white-space: pre;\n}\n\n.jp-DocumentSearch-overlay {\n position: absolute;\n background-color: var(--jp-toolbar-background);\n border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);\n border-left: var(--jp-border-width) solid var(--jp-toolbar-border-color);\n top: 0;\n right: 0;\n z-index: 7;\n min-width: 405px;\n padding: 2px;\n font-size: var(--jp-ui-font-size1);\n\n --jp-private-document-search-button-height: 20px;\n}\n\n.jp-DocumentSearch-overlay button {\n background-color: var(--jp-toolbar-background);\n outline: 0;\n}\n\n.jp-DocumentSearch-button-wrapper:disabled > .jp-DocumentSearch-button-content {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.jp-DocumentSearch-overlay button:not(:disabled):hover {\n background-color: var(--jp-layout-color2);\n}\n\n.jp-DocumentSearch-overlay button:not(:disabled):active {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-DocumentSearch-overlay-row {\n display: flex;\n align-items: center;\n margin-bottom: 2px;\n}\n\n.jp-DocumentSearch-button-content {\n display: inline-block;\n cursor: pointer;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n}\n\n.jp-DocumentSearch-button-content svg {\n width: 100%;\n height: 100%;\n}\n\n.jp-DocumentSearch-input-wrapper {\n border: var(--jp-border-width) solid var(--jp-border-color0);\n display: flex;\n background-color: var(--jp-layout-color0);\n margin: 2px;\n}\n\n.jp-DocumentSearch-input-wrapper:focus-within {\n border-color: var(--jp-cell-editor-active-border-color);\n}\n\n.jp-DocumentSearch-toggle-wrapper,\n.jp-DocumentSearch-button-wrapper {\n all: initial;\n overflow: hidden;\n display: inline-block;\n border: none;\n box-sizing: border-box;\n}\n\n.jp-DocumentSearch-toggle-wrapper {\n flex-shrink: 0;\n width: 14px;\n height: 14px;\n}\n\n.jp-DocumentSearch-button-wrapper {\n flex-shrink: 0;\n width: var(--jp-private-document-search-button-height);\n height: var(--jp-private-document-search-button-height);\n}\n\n.jp-DocumentSearch-toggle-wrapper:focus,\n.jp-DocumentSearch-button-wrapper:focus {\n outline: var(--jp-border-width) solid\n var(--jp-cell-editor-active-border-color);\n outline-offset: -1px;\n}\n\n.jp-DocumentSearch-toggle-wrapper,\n.jp-DocumentSearch-button-wrapper,\n.jp-DocumentSearch-button-content:focus {\n outline: none;\n}\n\n.jp-DocumentSearch-toggle-placeholder {\n width: 5px;\n}\n\n.jp-DocumentSearch-input-button::before {\n display: block;\n padding-top: 100%;\n}\n\n.jp-DocumentSearch-input-button-off {\n opacity: var(--jp-search-toggle-off-opacity);\n}\n\n.jp-DocumentSearch-input-button-off:hover {\n opacity: var(--jp-search-toggle-hover-opacity);\n}\n\n.jp-DocumentSearch-input-button-on {\n opacity: var(--jp-search-toggle-on-opacity);\n}\n\n.jp-DocumentSearch-index-counter {\n padding-left: 10px;\n padding-right: 10px;\n user-select: none;\n min-width: 35px;\n display: inline-block;\n}\n\n.jp-DocumentSearch-up-down-wrapper {\n display: inline-block;\n padding-right: 2px;\n margin-left: auto;\n white-space: nowrap;\n}\n\n.jp-DocumentSearch-spacer {\n margin-left: auto;\n}\n\n.jp-DocumentSearch-up-down-wrapper button {\n outline: 0;\n border: none;\n width: var(--jp-private-document-search-button-height);\n height: var(--jp-private-document-search-button-height);\n vertical-align: middle;\n margin: 1px 5px 2px;\n}\n\nbutton:not(:disabled) > .jp-DocumentSearch-up-down-button:hover {\n background-color: var(--jp-layout-color2);\n}\n\nbutton:not(:disabled) > .jp-DocumentSearch-up-down-button:active {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-DocumentSearch-filter-button {\n border-radius: var(--jp-border-radius);\n}\n\n.jp-DocumentSearch-filter-button:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.jp-DocumentSearch-filter-button-enabled {\n background-color: var(--jp-layout-color2);\n}\n\n.jp-DocumentSearch-filter-button-enabled:hover {\n background-color: var(--jp-layout-color3);\n}\n\n.jp-DocumentSearch-search-options {\n padding: 0 8px;\n margin-left: 3px;\n width: 100%;\n display: grid;\n justify-content: start;\n grid-template-columns: 1fr 1fr;\n align-items: center;\n justify-items: stretch;\n}\n\n.jp-DocumentSearch-search-filter-disabled {\n color: var(--jp-ui-font-color2);\n}\n\n.jp-DocumentSearch-search-filter {\n display: flex;\n align-items: center;\n user-select: none;\n}\n\n.jp-DocumentSearch-regex-error {\n color: var(--jp-error-color0);\n}\n\n.jp-DocumentSearch-replace-button-wrapper {\n overflow: hidden;\n display: inline-block;\n box-sizing: border-box;\n border: var(--jp-border-width) solid var(--jp-border-color0);\n margin: auto 2px;\n padding: 1px 4px;\n height: calc(var(--jp-private-document-search-button-height) + 2px);\n flex-shrink: 0;\n}\n\n.jp-DocumentSearch-replace-button-wrapper:focus {\n border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);\n}\n\n.jp-DocumentSearch-replace-button {\n display: inline-block;\n text-align: center;\n cursor: pointer;\n box-sizing: border-box;\n color: var(--jp-ui-font-color1);\n\n /* height - 2 * (padding of wrapper) */\n line-height: calc(var(--jp-private-document-search-button-height) - 2px);\n width: 100%;\n height: 100%;\n}\n\n.jp-DocumentSearch-replace-button:focus {\n outline: none;\n}\n\n.jp-DocumentSearch-replace-wrapper-class {\n margin-left: 14px;\n display: flex;\n}\n\n.jp-DocumentSearch-replace-toggle {\n border: none;\n background-color: var(--jp-toolbar-background);\n border-radius: var(--jp-border-radius);\n}\n\n.jp-DocumentSearch-replace-toggle:hover {\n background-color: var(--jp-layout-color2);\n}\n\n/*\n The following few rules allow the search box to expand horizontally,\n as the text within it grows. This is done by using putting\n the text within a wrapper element and using that wrapper for sizing,\n as ",v.noCloneChecked=!!Ce.cloneNode(!0).lastChild.defaultValue,Ce.innerHTML="",v.option=!!Ce.lastChild;var Ae={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function De(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&j(e,t)?S.merge([e],n):n}function Ne(e,t){for(var n=0,r=e.length;n",""]);var qe=/<|&#?\w+;/;function Le(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d-1)i&&i.push(o);else if(l=ve(o),a=De(f.appendChild(o),"script"),l&&Ne(a),n)for(c=0;o=a[c++];)je.test(o.type||"")&&n.push(o);return f}var He=/^([^.]*)(?:\.(.+)|)/;function Oe(){return!0}function Pe(){return!1}function Me(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Me(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Pe;else if(!i)return e;return 1===o&&(a=i,i=function(e){return S().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=S.guid++)),e.each((function(){S.event.add(this,t,i,r,n)}))}function Re(e,t,n){n?(se.set(e,t,!1),S.event.add(e,t,{namespace:!1,handler:function(e){var n,r=se.get(this,t);if(1&e.isTrigger&&this[t]){if(r)(S.event.special[t]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),se.set(this,t,r),this[t](),n=se.get(this,t),se.set(this,t,!1),r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(se.set(this,t,S.event.trigger(r[0],r.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Oe)}})):void 0===se.get(e,t)&&S.event.add(e,t,Oe)}S.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=se.get(e);if(oe(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(ge,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(t){return void 0!==S&&S.event.triggered!==t.type?S.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(V)||[""]).length;l--;)d=g=(s=He.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=se.hasData(e)&&se.get(e);if(v&&(u=v.events)){for(l=(t=(t||"").match(V)||[""]).length;l--;)if(d=g=(s=He.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){for(f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&se.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(se.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\s*$/g;function $e(e,t){return j(e,"table")&&j(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function _e(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Be(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function ze(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(se.hasData(e)&&(s=se.get(e).events))for(i in se.remove(t,"handle events"),s)for(n=0,r=s[i].length;n1&&"string"==typeof h&&!v.checkClone&&We.test(h))return e.each((function(i){var o=e.eq(i);g&&(t[0]=h.call(this,i,o.html())),Ue(o,t,n,r)}));if(p&&(o=(i=Le(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=S.map(De(i,"script"),_e)).length;f0&&Ne(a,!u&&De(e,"script")),s},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(oe(n)){if(t=n[se.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[se.expando]=void 0}n[ue.expando]&&(n[ue.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Ve(this,e,!0)},remove:function(e){return Ve(this,e)},text:function(e){return ee(this,(function(e){return void 0===e?S.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Ue(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||$e(this,e).appendChild(e)}))},prepend:function(){return Ue(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=$e(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Ue(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Ue(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(De(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return S.clone(this,e,t)}))},html:function(e){return ee(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ie.test(e)&&!Ae[(Ee.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ct(e,t,n){var r=Qe(e),i=(!v.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Ze(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Ge.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&j(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+lt(e,t,n||(i?"border":"content"),o,r,a)+"px"}function ft(e,t,n,r,i){return new ft.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ze(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=ie(t),u=Ye.test(t),l=e.style;if(u||(t=it(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=de.exec(n))&&i[1]&&(n=xe(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=ie(t);return Ye.test(t)||(t=it(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ze(e,t,r)),"normal"===i&&t in st&&(i=st[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],(function(e,t){S.cssHooks[t]={get:function(e,n,r){if(n)return!ot.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ct(e,t,r):Je(e,at,(function(){return ct(e,t,r)}))},set:function(e,n,r){var i,o=Qe(e),a=!v.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===S.css(e,"boxSizing",!1,o),u=r?lt(e,t,r,s,o):0;return s&&a&&(u-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-lt(e,t,"border",!1,o)-.5)),u&&(i=de.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=S.css(e,t)),ut(0,n,u)}}})),S.cssHooks.marginLeft=et(v.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Ze(e,"marginLeft"))||e.getBoundingClientRect().left-Je(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),S.each({margin:"",padding:"",border:"Width"},(function(e,t){S.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+he[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(S.cssHooks[e+t].set=ut)})),S.fn.extend({css:function(e,t){return ee(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Qe(e),i=t.length;a1)}}),S.Tween=ft,ft.prototype={constructor:ft,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=ft.propHooks[this.prop];return e&&e.get?e.get(this):ft.propHooks._default.get(this)},run:function(e){var t,n=ft.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ft.propHooks._default.set(this),this}},ft.prototype.init.prototype=ft.prototype,ft.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[it(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}},ft.propHooks.scrollTop=ft.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=ft.prototype.init,S.fx.step={};var pt,dt,ht=/^(?:toggle|show|hide)$/,gt=/queueHooks$/;function vt(){dt&&(!1===x.hidden&&r.requestAnimationFrame?r.requestAnimationFrame(vt):r.setTimeout(vt,S.fx.interval),S.fx.tick())}function yt(){return r.setTimeout((function(){pt=void 0})),pt=Date.now()}function mt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=he[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function xt(e,t,n){for(var r,i=(bt.tweeners[t]||[]).concat(bt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each((function(){S.removeAttr(this,e)}))}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?wt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&j(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(V);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),wt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=Tt[t]||S.find.attr;Tt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=Tt[a],Tt[a]=i,i=null!=n(e,t,r)?a:null,Tt[a]=o),i}}));var Ct=/^(?:input|select|textarea|button)$/i,kt=/^(?:a|area)$/i;function St(e){return(e.match(V)||[]).join(" ")}function Et(e){return e.getAttribute&&e.getAttribute("class")||""}function jt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(V)||[]}S.fn.extend({prop:function(e,t){return ee(this,S.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[S.propFix[e]||e]}))}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):Ct.test(e.nodeName)||kt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),v.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){S.propFix[this.toLowerCase()]=this})),S.fn.extend({addClass:function(e){var t,n,r,i,o,a;return y(e)?this.each((function(t){S(this).addClass(e.call(this,t,Et(this)))})):(t=jt(e)).length?this.each((function(){if(r=Et(this),n=1===this.nodeType&&" "+St(r)+" "){for(o=0;o-1;)n=n.replace(" "+i+" "," ");a=St(n),r!==a&&this.setAttribute("class",a)}})):this:this.attr("class","")},toggleClass:function(e,t){var n,r,i,o,a=typeof e,s="string"===a||Array.isArray(e);return y(e)?this.each((function(n){S(this).toggleClass(e.call(this,n,Et(this),t),t)})):"boolean"==typeof t&&s?t?this.addClass(e):this.removeClass(e):(n=jt(e),this.each((function(){if(s)for(o=S(this),i=0;i-1)return!0;return!1}});var At=/\r/g;S.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=y(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,S(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=S.map(i,(function(e){return null==e?"":e+""}))),(t=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=S.valHooks[i.type]||S.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(At,""):null==n?"":n:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:St(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],(function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=S.inArray(S(e).val(),t)>-1}},v.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var Dt=r.location,Nt={guid:Date.now()},qt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new r.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var Lt=/^(?:focusinfocus|focusoutblur)$/,Ht=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,i){var o,a,s,u,l,c,f,p,h=[n||x],g=d.call(e,"type")?e.type:e,v=d.call(e,"namespace")?e.namespace.split("."):[];if(a=p=s=n=n||x,3!==n.nodeType&&8!==n.nodeType&&!Lt.test(g+S.event.triggered)&&(g.indexOf(".")>-1&&(v=g.split("."),g=v.shift(),v.sort()),l=g.indexOf(":")<0&&"on"+g,(e=e[S.expando]?e:new S.Event(g,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=v.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),f=S.event.special[g]||{},i||!f.trigger||!1!==f.trigger.apply(n,t))){if(!i&&!f.noBubble&&!m(n)){for(u=f.delegateType||g,Lt.test(u+g)||(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(n.ownerDocument||x)&&h.push(s.defaultView||s.parentWindow||r)}for(o=0;(a=h[o++])&&!e.isPropagationStopped();)p=a,e.type=o>1?u:f.bindType||g,(c=(se.get(a,"events")||Object.create(null))[e.type]&&se.get(a,"handle"))&&c.apply(a,t),(c=l&&a[l])&&c.apply&&oe(a)&&(e.result=c.apply(a,t),!1===e.result&&e.preventDefault());return e.type=g,i||e.isDefaultPrevented()||f._default&&!1!==f._default.apply(h.pop(),t)||!oe(n)||l&&y(n[g])&&!m(n)&&((s=n[l])&&(n[l]=null),S.event.triggered=g,e.isPropagationStopped()&&p.addEventListener(g,Ht),n[g](),e.isPropagationStopped()&&p.removeEventListener(g,Ht),S.event.triggered=void 0,s&&(n[l]=s)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each((function(){S.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}});var Ot=/\[\]$/,Pt=/\r?\n/g,Mt=/^(?:submit|button|image|reset|file)$/i,Rt=/^(?:input|select|textarea|keygen)/i;function It(e,t,n,r){var i;if(Array.isArray(t))S.each(t,(function(t,i){n||Ot.test(e)?r(e,i):It(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==T(t))r(e,t);else for(i in t)It(e+"["+i+"]",t[i],n,r)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=y(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,(function(){i(this.name,this.value)}));else for(n in e)It(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Rt.test(this.nodeName)&&!Mt.test(e)&&(this.checked||!Se.test(e))})).map((function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,(function(e){return{name:t.name,value:e.replace(Pt,"\r\n")}})):{name:t.name,value:n.replace(Pt,"\r\n")}})).get()}});var Wt=/%20/g,Ft=/#.*$/,$t=/([?&])_=[^&]*/,_t=/^(.*?):[ \t]*([^\r\n]*)$/gm,Bt=/^(?:GET|HEAD)$/,zt=/^\/\//,Xt={},Ut={},Vt="*/".concat("*"),Gt=x.createElement("a");function Yt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(V)||[];if(y(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Qt(e,t,n,r){var i={},o=e===Ut;function a(s){var u;return i[s]=!0,S.each(e[s]||[],(function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)})),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Jt(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Gt.href=Dt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Dt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Vt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Jt(Jt(e,S.ajaxSettings),t):Jt(S.ajaxSettings,e)},ajaxPrefilter:Yt(Xt),ajaxTransport:Yt(Ut),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,i,o,a,s,u,l,c,f,p,d=S.ajaxSetup({},t),h=d.context||d,g=d.context&&(h.nodeType||h.jquery)?S(h):S.event,v=S.Deferred(),y=S.Callbacks("once memory"),m=d.statusCode||{},b={},w={},T="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=_t.exec(o);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return l?o:null},setRequestHeader:function(e,t){return null==l&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)C.always(e[C.status]);else for(t in e)m[t]=[m[t],e[t]];return this},abort:function(e){var t=e||T;return n&&n.abort(t),k(0,t),this}};if(v.promise(C),d.url=((e||d.url||Dt.href)+"").replace(zt,Dt.protocol+"//"),d.type=t.method||t.type||d.method||d.type,d.dataTypes=(d.dataType||"*").toLowerCase().match(V)||[""],null==d.crossDomain){u=x.createElement("a");try{u.href=d.url,u.href=u.href,d.crossDomain=Gt.protocol+"//"+Gt.host!=u.protocol+"//"+u.host}catch(e){d.crossDomain=!0}}if(d.data&&d.processData&&"string"!=typeof d.data&&(d.data=S.param(d.data,d.traditional)),Qt(Xt,d,t,C),l)return C;for(f in(c=S.event&&d.global)&&0==S.active++&&S.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Bt.test(d.type),i=d.url.replace(Ft,""),d.hasContent?d.data&&d.processData&&0===(d.contentType||"").indexOf("application/x-www-form-urlencoded")&&(d.data=d.data.replace(Wt,"+")):(p=d.url.slice(i.length),d.data&&(d.processData||"string"==typeof d.data)&&(i+=(qt.test(i)?"&":"?")+d.data,delete d.data),!1===d.cache&&(i=i.replace($t,"$1"),p=(qt.test(i)?"&":"?")+"_="+Nt.guid+++p),d.url=i+p),d.ifModified&&(S.lastModified[i]&&C.setRequestHeader("If-Modified-Since",S.lastModified[i]),S.etag[i]&&C.setRequestHeader("If-None-Match",S.etag[i])),(d.data&&d.hasContent&&!1!==d.contentType||t.contentType)&&C.setRequestHeader("Content-Type",d.contentType),C.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Vt+"; q=0.01":""):d.accepts["*"]),d.headers)C.setRequestHeader(f,d.headers[f]);if(d.beforeSend&&(!1===d.beforeSend.call(h,C,d)||l))return C.abort();if(T="abort",y.add(d.complete),C.done(d.success),C.fail(d.error),n=Qt(Ut,d,t,C)){if(C.readyState=1,c&&g.trigger("ajaxSend",[C,d]),l)return C;d.async&&d.timeout>0&&(s=r.setTimeout((function(){C.abort("timeout")}),d.timeout));try{l=!1,n.send(b,k)}catch(e){if(l)throw e;k(-1,e)}}else k(-1,"No Transport");function k(e,t,a,u){var f,p,x,b,w,T=t;l||(l=!0,s&&r.clearTimeout(s),n=void 0,o=u||"",C.readyState=e>0?4:0,f=e>=200&&e<300||304===e,a&&(b=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(d,C,a)),!f&&S.inArray("script",d.dataTypes)>-1&&S.inArray("json",d.dataTypes)<0&&(d.converters["text script"]=function(){}),b=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(d,b,C,f),f?(d.ifModified&&((w=C.getResponseHeader("Last-Modified"))&&(S.lastModified[i]=w),(w=C.getResponseHeader("etag"))&&(S.etag[i]=w)),204===e||"HEAD"===d.type?T="nocontent":304===e?T="notmodified":(T=b.state,p=b.data,f=!(x=b.error))):(x=T,!e&&T||(T="error",e<0&&(e=0))),C.status=e,C.statusText=(t||T)+"",f?v.resolveWith(h,[p,T,C]):v.rejectWith(h,[C,T,x]),C.statusCode(m),m=void 0,c&&g.trigger(f?"ajaxSuccess":"ajaxError",[C,d,f?p:x]),y.fireWith(h,[C,T]),c&&(g.trigger("ajaxComplete",[C,d]),--S.active||S.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],(function(e,t){S[t]=function(e,n,r,i){return y(n)&&(i=i||r,r=n,n=void 0),S.ajax(S.extend({url:e,type:t,dataType:i,data:n,success:r},S.isPlainObject(e)&&e))}})),S.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(y(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return y(e)?this.each((function(t){S(this).wrapInner(e.call(this,t))})):this.each((function(){var t=S(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=y(e);return this.each((function(n){S(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){S(this).replaceWith(this.childNodes)})),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(e){}};var Kt={0:200,1223:204},Zt=S.ajaxSettings.xhr();v.cors=!!Zt&&"withCredentials"in Zt,v.ajax=Zt=!!Zt,S.ajaxTransport((function(e){var t,n;if(v.cors||Zt&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=n=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Kt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),n=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&r.setTimeout((function(){t&&n()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),S.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),S.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=S(" - -{%- endmacro %} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/base/mathjax.html.j2 b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/base/mathjax.html.j2 deleted file mode 100644 index fe7c85c342ab12b04f9b122bba8b455b7d71944e..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/base/mathjax.html.j2 +++ /dev/null @@ -1,38 +0,0 @@ - -{%- macro mathjax(url="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS_CHTML-full,Safe") -%} - - - - - -{%- endmacro %} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/base/null.j2 b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/base/null.j2 deleted file mode 100644 index 929b18759521838ba4de43893a3afb77d06f85b4..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/base/null.j2 +++ /dev/null @@ -1,111 +0,0 @@ -{# - -DO NOT USE THIS AS A BASE, -IF YOU ARE COPY AND PASTING THIS FILE -YOU ARE PROBABLY DOING THINGS INCORRECTLY. - -Null template, does nothing except defining a basic structure -To layout the different blocks of a notebook. - -Subtemplates can override blocks to define their custom representation. - -If one of the block you do overwrite is not a leaf block, consider -calling super. - -{%- block nonLeafBlock -%} - #add stuff at beginning - {{ super() }} - #add stuff at end -{%- endblock nonLeafBlock -%} - -consider calling super even if it is a leaf block, we might insert more blocks later. - -#} -{%- block header -%} -{%- endblock header -%} -{%- block body -%} - {%- block body_header -%} - {%- endblock body_header -%} - {%- block body_loop -%} - {%- for cell in nb.cells -%} - {%- block any_cell scoped -%} - {%- if cell.cell_type == 'code'-%} - {%- if resources.global_content_filter.include_code -%} - {%- block codecell scoped -%} - {%- if resources.global_content_filter.include_input and not cell.metadata.get("transient",{}).get("remove_source", false) -%} - {%- block input_group -%} - {%- if resources.global_content_filter.include_input_prompt -%} - {%- block in_prompt -%}{%- endblock in_prompt -%} - {%- endif -%} - {%- block input -%}{%- endblock input -%} - {%- endblock input_group -%} - {%- endif -%} - {%- if cell.outputs and resources.global_content_filter.include_output -%} - {%- block output_group -%} - {%- if resources.global_content_filter.include_output_prompt -%} - {%- block output_prompt -%}{%- endblock output_prompt -%} - {%- endif -%} - {%- block outputs scoped -%} - {%- for output in cell.outputs -%} - {%- block output scoped -%} - {%- if output.output_type == 'execute_result' -%} - {%- block execute_result scoped -%}{%- endblock execute_result -%} - {%- elif output.output_type == 'stream' -%} - {%- block stream scoped -%} - {%- if output.name == 'stdout' -%} - {%- block stream_stdout scoped -%} - {%- endblock stream_stdout -%} - {%- elif output.name == 'stderr' -%} - {%- block stream_stderr scoped -%} - {%- endblock stream_stderr -%} - {%- elif output.name == 'stdin' -%} - {%- block stream_stdin scoped -%} - {%- endblock stream_stdin -%} - {%- endif -%} - {%- endblock stream -%} - {%- elif output.output_type == 'display_data' -%} - {%- block display_data scoped -%} - {%- block data_priority scoped -%} - {%- endblock data_priority -%} - {%- endblock display_data -%} - {%- elif output.output_type == 'error' -%} - {%- block error scoped -%} - {%- for line in output.traceback -%} - {%- block traceback_line scoped -%}{%- endblock traceback_line -%} - {%- endfor -%} - {%- endblock error -%} - {%- endif -%} - {%- endblock output -%} - {%- endfor -%} - {%- endblock outputs -%} - {%- endblock output_group -%} - {%- endif -%} - {%- endblock codecell -%} - {%- endif -%} - {%- elif cell.cell_type in ['markdown'] -%} - {%- if resources.global_content_filter.include_markdown and not cell.metadata.get("transient",{}).get("remove_source", false) -%} - {%- block markdowncell scoped-%} {%- endblock markdowncell -%} - {%- endif -%} - {%- elif cell.cell_type in ['raw'] -%} - {%- if resources.global_content_filter.include_raw and not cell.metadata.get("transient",{}).get("remove_source", false) -%} - {%- block rawcell scoped -%} - {%- if cell.metadata.get('raw_mimetype', '').lower() in resources.get('raw_mimetypes', ['']) -%} - {{ cell.source }} - {%- endif -%} - {%- endblock rawcell -%} - {%- endif -%} - {%- else -%} - {%- if resources.global_content_filter.include_unknown and not cell.metadata.get("transient",{}).get("remove_source", false) -%} - {%- block unknowncell scoped-%} - {%- endblock unknowncell -%} - {%- endif -%} - {%- endif -%} - {%- endblock any_cell -%} - {%- endfor -%} - {%- endblock body_loop -%} - {%- block body_footer -%} - {%- endblock body_footer -%} -{%- endblock body -%} - -{%- block footer -%} -{%- endblock footer -%} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/basic/conf.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/basic/conf.json deleted file mode 100644 index e8f3ed98201f61f24887bb24b60a6b047f4e2294..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/basic/conf.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "base_template": "classic", - "mimetypes": { - "text/html": true - } -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/basic/index.html.j2 b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/basic/index.html.j2 deleted file mode 100644 index 89d894d2135a578b119c67bf1e60a0d80d82787d..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/basic/index.html.j2 +++ /dev/null @@ -1 +0,0 @@ -{%- extends 'classic/base.html.j2' -%} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/base.html.j2 b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/base.html.j2 deleted file mode 100644 index 5b8713ddfab0a7c9815e4827e20818eef62a7761..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/base.html.j2 +++ /dev/null @@ -1,292 +0,0 @@ -{%- extends 'display_priority.j2' -%} -{% from 'celltags.j2' import celltags %} -{% from 'cell_id_anchor.j2' import cell_id_anchor %} - -{% block codecell %} -
    -{{ super() }} -
    -{%- endblock codecell %} - -{% block input_group -%} -
    -{{ super() }} -
    -{% endblock input_group %} - -{% block output_group %} -
    -
    -{{ super() }} -
    -
    -{% endblock output_group %} - -{% block in_prompt -%} -
    - {%- if cell.execution_count is defined -%} - In [{{ cell.execution_count|replace(None, " ") }}]: - {%- else -%} - In [ ]: - {%- endif -%} -
    -{%- endblock in_prompt %} - -{% block empty_in_prompt -%} -
    -
    -{%- endblock empty_in_prompt %} - -{# - output_prompt doesn't do anything in HTML, - because there is a prompt div in each output area (see output block) -#} -{% block output_prompt %} -{% endblock output_prompt %} - -{% block input %} -
    -
    -{{ cell.source | highlight_code(metadata=cell.metadata) | clean_html }} -
    -
    -{%- endblock input %} - -{% block output_area_prompt %} -{%- if output.output_type == 'execute_result' -%} -
    - {%- if cell.execution_count is defined -%} - Out[{{ cell.execution_count|replace(None, " ") }}]: - {%- else -%} - Out[ ]: - {%- endif -%} -{%- else -%} -
    -{%- endif -%} -
    -{% endblock output_area_prompt %} - -{% block output %} -
    -{% if resources.global_content_filter.include_output_prompt %} - {{ self.output_area_prompt() }} -{% endif %} -{{ super() }} -
    -{% endblock output %} - -{% block markdowncell scoped %} -
    -{%- if resources.global_content_filter.include_input_prompt-%} - {{ self.empty_in_prompt() }} -{%- endif -%} -
    -
    -{%- if resources.should_sanitize_html %} -{%- set html_value=cell.source | markdown2html | strip_files_prefix | clean_html -%} -{%- else %} -{%- set html_value=cell.source | markdown2html | strip_files_prefix -%} -{%- endif %} -{{ html_value }} -
    -
    -
    -{%- endblock markdowncell %} - -{% block rawcell scoped %} -{%- if cell.metadata.get('raw_mimetype', '').lower() in resources.get('raw_mimetypes', ['']) -%} -{{ cell.source | clean_html }} -{%- endif -%} -{%- endblock rawcell %} - -{% block unknowncell scoped %} -unknown type {{ cell.type }} -{% endblock unknowncell %} - -{% block execute_result -%} -{%- set extra_class="output_execute_result" -%} -{% block data_priority scoped %} -{{ super() }} -{% endblock data_priority %} -{%- set extra_class="" -%} -{%- endblock execute_result %} - -{% block stream_stdout -%} -
    -
    -{{- output.text | ansi2html -}}
    -
    -
    -{%- endblock stream_stdout %} - -{% block stream_stderr -%} -
    -
    -{{- output.text | ansi2html -}}
    -
    -
    -{%- endblock stream_stderr %} - -{% block data_svg scoped -%} -
    -{%- if output.svg_filename %} - -{%- else %} - {%- if resources.should_not_encode_svg %} - {{ output.data['image/svg+xml'].encode("utf-8") | clean_html }} - {%- else %} - - {%- endif %} -{%- endif %} -
    -{%- endblock data_svg %} - -{% block data_html scoped -%} -
    -{%- if resources.should_sanitize_html %} -{%- set html_value=output.data['text/html'] | clean_html -%} -{%- else %} -{%- set html_value=output.data['text/html'] -%} -{%- endif %} -{%- if output.get('metadata', {}).get('text/html', {}).get('isolated') -%} - -{%- else -%} -{{ html_value }} -{%- endif -%} -
    -{%- endblock data_html %} - -{% block data_markdown scoped -%} -{%- if resources.should_sanitize_html %} -{%- set html_value=output.data['text/markdown'] | markdown2html | clean_html -%} -{%- else %} -{%- set html_value=output.data['text/markdown'] | markdown2html -%} -{%- endif %} -
    -{{ html_value }} -
    -{%- endblock data_markdown %} - -{% block data_png scoped %} -
    -{%- if 'image/png' in output.metadata.get('filenames', {}) %} - -
    -{%- endblock data_png %} - -{% block data_jpg scoped %} -
    -{%- if 'image/jpeg' in output.metadata.get('filenames', {}) %} - -
    -{%- endblock data_jpg %} - -{% block data_latex scoped %} -
    -{{ output.data['text/latex'] | e }} -
    -{%- endblock data_latex %} - -{% block error -%} -
    -
    -{{- super() -}}
    -
    -
    -{%- endblock error %} - -{%- block traceback_line %} -{{ line | ansi2html }} -{%- endblock traceback_line %} - -{%- block data_text scoped %} -
    -
    -{{- output.data['text/plain'] | ansi2html -}}
    -
    -
    -{%- endblock -%} - -{%- block data_javascript scoped %} -{% set div_id = uuid4() %} -
    -{%- if not resources.should_sanitize_html %} - -{%- endif %} -
    -{%- endblock -%} - -{%- block data_widget_view scoped %} -{%- if not resources.should_sanitize_html %} -{% set div_id = uuid4() %} -{% set datatype_list = output.data | filter_data_type %} -{% set datatype = datatype_list[0]%} -
    - - -
    -{%- endif %} -{%- endblock data_widget_view -%} - -{%- block footer %} -{%- if not resources.should_sanitize_html %} -{% set mimetype = 'application/vnd.jupyter.widget-state+json'%} -{% if mimetype in nb.metadata.get("widgets",{})%} - -{% endif %} -{%- endif %} -{{ super() }} -{%- endblock footer-%} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/conf.json b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/conf.json deleted file mode 100644 index df71075ffca8b499a2b444cbea76454a87d09527..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/conf.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "base_template": "base", - "mimetypes": { - "text/html": true - }, - "preprocessors": { - "100-pygments": { - "type": "nbconvert.preprocessors.CSSHTMLHeaderPreprocessor", - "enabled": true, - "style": "default" - } - } -} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/index.html.j2 b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/index.html.j2 deleted file mode 100644 index 30cd502641b93d8243959ac08096b918fc92c232..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/index.html.j2 +++ /dev/null @@ -1,112 +0,0 @@ -{%- extends 'base.html.j2' -%} -{% from 'mathjax.html.j2' import mathjax %} -{% from 'jupyter_widgets.html.j2' import jupyter_widgets %} - -{%- block header -%} - - - -{%- block html_head -%} - - -{% set nb_title = nb.metadata.get('title', resources['metadata']['name']) | escape_html_keep_quotes %} -{{nb_title}} - -{%- block html_head_js -%} -{%- block html_head_js_jquery -%} - -{%- endblock html_head_js_jquery -%} -{%- block html_head_js_requirejs -%} - -{%- endblock html_head_js_requirejs -%} -{%- block html_head_js_mermaidjs -%} - -{%- endblock html_head_js_mermaidjs -%} -{%- endblock html_head_js -%} - -{% block jupyter_widgets %} - {%- if "widgets" in nb.metadata -%} - {{ jupyter_widgets(resources.jupyter_widgets_base_url, resources.html_manager_semver_range, resources.widget_renderer_url) }} - {%- endif -%} -{% endblock jupyter_widgets %} - -{% for css in resources.inlining.css -%} - -{% endfor %} - -{% block notebook_css %} -{{ resources.include_css("static/style.css") }} - -{% endblock notebook_css %} - -{%- block html_head_js_mathjax -%} -{{ mathjax(resources.mathjax_url) }} -{%- endblock html_head_js_mathjax -%} - -{%- block html_head_css -%} -{%- endblock html_head_css -%} - -{%- endblock html_head -%} - -{%- endblock header -%} - -{% block body_header %} - -
    -
    -
    -{% endblock body_header %} - -{% block body_footer %} -
    -
    -
    - -{% endblock body_footer %} - -{% block footer %} -{% block footer_js %} -{% endblock footer_js %} -{{ super() }} - -{% endblock footer %} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/static/style.css b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/static/style.css deleted file mode 100644 index 637af782633e17e6af24001f11f82a1208de26b1..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/classic/static/style.css +++ /dev/null @@ -1,12935 +0,0 @@ -/*! -* -* Twitter Bootstrap -* -*/ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - font-size: 2em; - margin: 0.67em 0; -} -mark { - background: #ff0; - color: #000; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - box-sizing: content-box; - height: 0; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-appearance: textfield; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -legend { - border: 0; - padding: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - background: transparent !important; - box-shadow: none !important; - text-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot'); - src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\002a"; -} -.glyphicon-plus:before { - content: "\002b"; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -.glyphicon-cd:before { - content: "\e201"; -} -.glyphicon-save-file:before { - content: "\e202"; -} -.glyphicon-open-file:before { - content: "\e203"; -} -.glyphicon-level-up:before { - content: "\e204"; -} -.glyphicon-copy:before { - content: "\e205"; -} -.glyphicon-paste:before { - content: "\e206"; -} -.glyphicon-alert:before { - content: "\e209"; -} -.glyphicon-equalizer:before { - content: "\e210"; -} -.glyphicon-king:before { - content: "\e211"; -} -.glyphicon-queen:before { - content: "\e212"; -} -.glyphicon-pawn:before { - content: "\e213"; -} -.glyphicon-bishop:before { - content: "\e214"; -} -.glyphicon-knight:before { - content: "\e215"; -} -.glyphicon-baby-formula:before { - content: "\e216"; -} -.glyphicon-tent:before { - content: "\26fa"; -} -.glyphicon-blackboard:before { - content: "\e218"; -} -.glyphicon-bed:before { - content: "\e219"; -} -.glyphicon-apple:before { - content: "\f8ff"; -} -.glyphicon-erase:before { - content: "\e221"; -} -.glyphicon-hourglass:before { - content: "\231b"; -} -.glyphicon-lamp:before { - content: "\e223"; -} -.glyphicon-duplicate:before { - content: "\e224"; -} -.glyphicon-piggy-bank:before { - content: "\e225"; -} -.glyphicon-scissors:before { - content: "\e226"; -} -.glyphicon-bitcoin:before { - content: "\e227"; -} -.glyphicon-btc:before { - content: "\e227"; -} -.glyphicon-xbt:before { - content: "\e227"; -} -.glyphicon-yen:before { - content: "\00a5"; -} -.glyphicon-jpy:before { - content: "\00a5"; -} -.glyphicon-ruble:before { - content: "\20bd"; -} -.glyphicon-rub:before { - content: "\20bd"; -} -.glyphicon-scale:before { - content: "\e230"; -} -.glyphicon-ice-lolly:before { - content: "\e231"; -} -.glyphicon-ice-lolly-tasted:before { - content: "\e232"; -} -.glyphicon-education:before { - content: "\e233"; -} -.glyphicon-option-horizontal:before { - content: "\e234"; -} -.glyphicon-option-vertical:before { - content: "\e235"; -} -.glyphicon-menu-hamburger:before { - content: "\e236"; -} -.glyphicon-modal-window:before { - content: "\e237"; -} -.glyphicon-oil:before { - content: "\e238"; -} -.glyphicon-grain:before { - content: "\e239"; -} -.glyphicon-sunglasses:before { - content: "\e240"; -} -.glyphicon-text-size:before { - content: "\e241"; -} -.glyphicon-text-color:before { - content: "\e242"; -} -.glyphicon-text-background:before { - content: "\e243"; -} -.glyphicon-object-align-top:before { - content: "\e244"; -} -.glyphicon-object-align-bottom:before { - content: "\e245"; -} -.glyphicon-object-align-horizontal:before { - content: "\e246"; -} -.glyphicon-object-align-left:before { - content: "\e247"; -} -.glyphicon-object-align-vertical:before { - content: "\e248"; -} -.glyphicon-object-align-right:before { - content: "\e249"; -} -.glyphicon-triangle-right:before { - content: "\e250"; -} -.glyphicon-triangle-left:before { - content: "\e251"; -} -.glyphicon-triangle-bottom:before { - content: "\e252"; -} -.glyphicon-triangle-top:before { - content: "\e253"; -} -.glyphicon-console:before { - content: "\e254"; -} -.glyphicon-superscript:before { - content: "\e255"; -} -.glyphicon-subscript:before { - content: "\e256"; -} -.glyphicon-menu-left:before { - content: "\e257"; -} -.glyphicon-menu-right:before { - content: "\e258"; -} -.glyphicon-menu-down:before { - content: "\e259"; -} -.glyphicon-menu-up:before { - content: "\e260"; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - line-height: 1.42857143; - color: #000; - background-color: #fff; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #337ab7; - text-decoration: none; -} -a:hover, -a:focus { - color: #23527c; - text-decoration: underline; -} -a:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 3px; -} -.img-thumbnail { - padding: 4px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 2px; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 18px; - margin-bottom: 18px; - border: 0; - border-top: 1px solid #eeeeee; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -[role="button"] { - cursor: pointer; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #777777; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 18px; - margin-bottom: 9px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 9px; - margin-bottom: 9px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 33px; -} -h2, -.h2 { - font-size: 27px; -} -h3, -.h3 { - font-size: 23px; -} -h4, -.h4 { - font-size: 17px; -} -h5, -.h5 { - font-size: 13px; -} -h6, -.h6 { - font-size: 12px; -} -p { - margin: 0 0 9px; -} -.lead { - margin-bottom: 18px; - font-size: 14px; - font-weight: 300; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 19.5px; - } -} -small, -.small { - font-size: 92%; -} -mark, -.mark { - background-color: #fcf8e3; - padding: .2em; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-nowrap { - white-space: nowrap; -} -.text-lowercase { - text-transform: lowercase; -} -.text-uppercase { - text-transform: uppercase; -} -.text-capitalize { - text-transform: capitalize; -} -.text-muted { - color: #777777; -} -.text-primary { - color: #337ab7; -} -a.text-primary:hover, -a.text-primary:focus { - color: #286090; -} -.text-success { - color: #3c763d; -} -a.text-success:hover, -a.text-success:focus { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover, -a.text-info:focus { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover, -a.text-warning:focus { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover, -a.text-danger:focus { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #337ab7; -} -a.bg-primary:hover, -a.bg-primary:focus { - background-color: #286090; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover, -a.bg-success:focus { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover, -a.bg-info:focus { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover, -a.bg-warning:focus { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover, -a.bg-danger:focus { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 8px; - margin: 36px 0 18px; - border-bottom: 1px solid #eeeeee; -} -ul, -ol { - margin-top: 0; - margin-bottom: 9px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; -} -.list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; -} -dl { - margin-top: 0; - margin-bottom: 18px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 541px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #777777; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 9px 18px; - margin: 0 0 18px; - font-size: inherit; - border-left: 5px solid #eeeeee; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #777777; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eeeeee; - border-left: 0; - text-align: right; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -address { - margin-bottom: 18px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 2px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #888; - background-color: transparent; - border-radius: 1px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - box-shadow: none; -} -pre { - display: block; - padding: 8.5px; - margin: 0 0 9px; - font-size: 12px; - line-height: 1.42857143; - word-break: break-all; - word-wrap: break-word; - color: #333333; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 2px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - margin-right: auto; - margin-left: auto; - padding-left: 0px; - padding-right: 0px; -} -@media (min-width: 768px) { - .container { - width: 768px; - } -} -@media (min-width: 992px) { - .container { - width: 940px; - } -} -@media (min-width: 1200px) { - .container { - width: 1140px; - } -} -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 0px; - padding-right: 0px; -} -.row { - margin-left: 0px; - margin-right: 0px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 0px; - padding-right: 0px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666667%; -} -.col-xs-10 { - width: 83.33333333%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666667%; -} -.col-xs-7 { - width: 58.33333333%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666667%; -} -.col-xs-4 { - width: 33.33333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.66666667%; -} -.col-xs-1 { - width: 8.33333333%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666667%; -} -.col-xs-pull-10 { - right: 83.33333333%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666667%; -} -.col-xs-pull-7 { - right: 58.33333333%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666667%; -} -.col-xs-pull-4 { - right: 33.33333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.66666667%; -} -.col-xs-pull-1 { - right: 8.33333333%; -} -.col-xs-pull-0 { - right: auto; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666667%; -} -.col-xs-push-10 { - left: 83.33333333%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666667%; -} -.col-xs-push-7 { - left: 58.33333333%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666667%; -} -.col-xs-push-4 { - left: 33.33333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.66666667%; -} -.col-xs-push-1 { - left: 8.33333333%; -} -.col-xs-push-0 { - left: auto; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666667%; -} -.col-xs-offset-10 { - margin-left: 83.33333333%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666667%; -} -.col-xs-offset-7 { - margin-left: 58.33333333%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.66666667%; -} -.col-xs-offset-1 { - margin-left: 8.33333333%; -} -.col-xs-offset-0 { - margin-left: 0%; -} -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: auto; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: auto; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666667%; - } - .col-md-pull-10 { - right: 83.33333333%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666667%; - } - .col-md-pull-7 { - right: 58.33333333%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666667%; - } - .col-md-pull-4 { - right: 33.33333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.66666667%; - } - .col-md-pull-1 { - right: 8.33333333%; - } - .col-md-pull-0 { - right: auto; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666667%; - } - .col-md-push-10 { - left: 83.33333333%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666667%; - } - .col-md-push-7 { - left: 58.33333333%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666667%; - } - .col-md-push-4 { - left: 33.33333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.66666667%; - } - .col-md-push-1 { - left: 8.33333333%; - } - .col-md-push-0 { - left: auto; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666667%; - } - .col-md-offset-10 { - margin-left: 83.33333333%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666667%; - } - .col-md-offset-7 { - margin-left: 58.33333333%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.66666667%; - } - .col-md-offset-1 { - margin-left: 8.33333333%; - } - .col-md-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666667%; - } - .col-lg-pull-10 { - right: 83.33333333%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666667%; - } - .col-lg-pull-7 { - right: 58.33333333%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666667%; - } - .col-lg-pull-4 { - right: 33.33333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.66666667%; - } - .col-lg-pull-1 { - right: 8.33333333%; - } - .col-lg-pull-0 { - right: auto; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666667%; - } - .col-lg-push-10 { - left: 83.33333333%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666667%; - } - .col-lg-push-7 { - left: 58.33333333%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666667%; - } - .col-lg-push-4 { - left: 33.33333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.66666667%; - } - .col-lg-push-1 { - left: 8.33333333%; - } - .col-lg-push-0 { - left: auto; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - .col-lg-offset-0 { - margin-left: 0%; - } -} -table { - background-color: transparent; -} -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #777777; - text-align: left; -} -th { - text-align: left; -} -.table { - width: 100%; - max-width: 100%; - margin-bottom: 18px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #ddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #ddd; -} -.table .table { - background-color: #fff; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -.table-responsive { - overflow-x: auto; - min-height: 0.01%; -} -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 13.5px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 18px; - font-size: 19.5px; - line-height: inherit; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 7px; - font-size: 13px; - line-height: 1.42857143; - color: #555555; -} -.form-control { - display: block; - width: 100%; - height: 32px; - padding: 6px 12px; - font-size: 13px; - line-height: 1.42857143; - color: #555555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 2px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); -} -.form-control::-moz-placeholder { - color: #999; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #999; -} -.form-control::-webkit-input-placeholder { - color: #999; -} -.form-control::-ms-expand { - border: 0; - background-color: transparent; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - background-color: #eeeeee; - opacity: 1; -} -.form-control[disabled], -fieldset[disabled] .form-control { - cursor: not-allowed; -} -textarea.form-control { - height: auto; -} -input[type="search"] { - -webkit-appearance: none; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"].form-control, - input[type="time"].form-control, - input[type="datetime-local"].form-control, - input[type="month"].form-control { - line-height: 32px; - } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm, - .input-group-sm input[type="date"], - .input-group-sm input[type="time"], - .input-group-sm input[type="datetime-local"], - .input-group-sm input[type="month"] { - line-height: 30px; - } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg, - .input-group-lg input[type="date"], - .input-group-lg input[type="time"], - .input-group-lg input[type="datetime-local"], - .input-group-lg input[type="month"] { - line-height: 45px; - } -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 18px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; - min-height: 31px; -} -.form-control-static.input-lg, -.form-control-static.input-sm { - padding-left: 0; - padding-right: 0; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 1px; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 1px; -} -.form-group-sm select.form-control { - height: 30px; - line-height: 30px; -} -.form-group-sm textarea.form-control, -.form-group-sm select[multiple].form-control { - height: auto; -} -.form-group-sm .form-control-static { - height: 30px; - min-height: 30px; - padding: 6px 10px; - font-size: 12px; - line-height: 1.5; -} -.input-lg { - height: 45px; - padding: 10px 16px; - font-size: 17px; - line-height: 1.3333333; - border-radius: 3px; -} -select.input-lg { - height: 45px; - line-height: 45px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.form-group-lg .form-control { - height: 45px; - padding: 10px 16px; - font-size: 17px; - line-height: 1.3333333; - border-radius: 3px; -} -.form-group-lg select.form-control { - height: 45px; - line-height: 45px; -} -.form-group-lg textarea.form-control, -.form-group-lg select[multiple].form-control { - height: auto; -} -.form-group-lg .form-control-static { - height: 45px; - min-height: 35px; - padding: 11px 16px; - font-size: 17px; - line-height: 1.3333333; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 40px; -} -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 32px; - height: 32px; - line-height: 32px; - text-align: center; - pointer-events: none; -} -.input-lg + .form-control-feedback, -.input-group-lg + .form-control-feedback, -.form-group-lg .form-control + .form-control-feedback { - width: 45px; - height: 45px; - line-height: 45px; -} -.input-sm + .form-control-feedback, -.input-group-sm + .form-control-feedback, -.form-group-sm .form-control + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - border-color: #3c763d; - background-color: #dff0d8; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - border-color: #8a6d3b; - background-color: #fcf8e3; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - border-color: #a94442; - background-color: #f2dede; -} -.has-error .form-control-feedback { - color: #a94442; -} -.has-feedback label ~ .form-control-feedback { - top: 23px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #404040; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 7px; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 25px; -} -.form-horizontal .form-group { - margin-left: 0px; - margin-right: 0px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - margin-bottom: 0; - padding-top: 7px; - } -} -.form-horizontal .has-feedback .form-control-feedback { - right: 0px; -} -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 11px; - font-size: 17px; - } -} -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - font-size: 12px; - } -} -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 6px 12px; - font-size: 13px; - line-height: 1.42857143; - border-radius: 2px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus, -.btn.focus { - color: #333; - text-decoration: none; -} -.btn:active, -.btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} -a.btn.disabled, -fieldset[disabled] a.btn { - pointer-events: none; -} -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; -} -.btn-default:focus, -.btn-default.focus { - color: #333; - background-color: #e6e6e6; - border-color: #8c8c8c; -} -.btn-default:hover { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active:hover, -.btn-default.active:hover, -.open > .dropdown-toggle.btn-default:hover, -.btn-default:active:focus, -.btn-default.active:focus, -.open > .dropdown-toggle.btn-default:focus, -.btn-default:active.focus, -.btn-default.active.focus, -.open > .dropdown-toggle.btn-default.focus { - color: #333; - background-color: #d4d4d4; - border-color: #8c8c8c; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus { - background-color: #fff; - border-color: #ccc; -} -.btn-default .badge { - color: #fff; - background-color: #333; -} -.btn-primary { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary:focus, -.btn-primary.focus { - color: #fff; - background-color: #286090; - border-color: #122b40; -} -.btn-primary:hover { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #fff; - background-color: #286090; - border-color: #204d74; -} -.btn-primary:active:hover, -.btn-primary.active:hover, -.open > .dropdown-toggle.btn-primary:hover, -.btn-primary:active:focus, -.btn-primary.active:focus, -.open > .dropdown-toggle.btn-primary:focus, -.btn-primary:active.focus, -.btn-primary.active.focus, -.open > .dropdown-toggle.btn-primary.focus { - color: #fff; - background-color: #204d74; - border-color: #122b40; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus { - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary .badge { - color: #337ab7; - background-color: #fff; -} -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:focus, -.btn-success.focus { - color: #fff; - background-color: #449d44; - border-color: #255625; -} -.btn-success:hover { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.btn-success:active:hover, -.btn-success.active:hover, -.open > .dropdown-toggle.btn-success:hover, -.btn-success:active:focus, -.btn-success.active:focus, -.open > .dropdown-toggle.btn-success:focus, -.btn-success:active.focus, -.btn-success.active.focus, -.open > .dropdown-toggle.btn-success.focus { - color: #fff; - background-color: #398439; - border-color: #255625; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #fff; -} -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:focus, -.btn-info.focus { - color: #fff; - background-color: #31b0d5; - border-color: #1b6d85; -} -.btn-info:hover { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.btn-info:active:hover, -.btn-info.active:hover, -.open > .dropdown-toggle.btn-info:hover, -.btn-info:active:focus, -.btn-info.active:focus, -.open > .dropdown-toggle.btn-info:focus, -.btn-info:active.focus, -.btn-info.active.focus, -.open > .dropdown-toggle.btn-info.focus { - color: #fff; - background-color: #269abc; - border-color: #1b6d85; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #fff; -} -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:focus, -.btn-warning.focus { - color: #fff; - background-color: #ec971f; - border-color: #985f0d; -} -.btn-warning:hover { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.btn-warning:active:hover, -.btn-warning.active:hover, -.open > .dropdown-toggle.btn-warning:hover, -.btn-warning:active:focus, -.btn-warning.active:focus, -.open > .dropdown-toggle.btn-warning:focus, -.btn-warning:active.focus, -.btn-warning.active.focus, -.open > .dropdown-toggle.btn-warning.focus { - color: #fff; - background-color: #d58512; - border-color: #985f0d; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; -} -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger:focus, -.btn-danger.focus { - color: #fff; - background-color: #c9302c; - border-color: #761c19; -} -.btn-danger:hover { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.btn-danger:active:hover, -.btn-danger.active:hover, -.open > .dropdown-toggle.btn-danger:hover, -.btn-danger:active:focus, -.btn-danger.active:focus, -.open > .dropdown-toggle.btn-danger:focus, -.btn-danger:active.focus, -.btn-danger.active.focus, -.open > .dropdown-toggle.btn-danger.focus { - color: #fff; - background-color: #ac2925; - border-color: #761c19; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #fff; -} -.btn-link { - color: #337ab7; - font-weight: normal; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #23527c; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #777777; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 17px; - line-height: 1.3333333; - border-radius: 3px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 1px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 1px; -} -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -tr.collapse.in { - display: table-row; -} -tbody.collapse.in { - display: table-row-group; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-property: height, visibility; - transition-property: height, visibility; - -webkit-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-top: 4px solid \9; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropup, -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - font-size: 13px; - text-align: left; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 2px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 8px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333333; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - text-decoration: none; - color: #262626; - background-color: #f5f5f5; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - outline: 0; - background-color: #337ab7; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #777777; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - cursor: not-allowed; -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - left: auto; - right: 0; -} -.dropdown-menu-left { - left: 0; - right: auto; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #777777; - white-space: nowrap; -} -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px dashed; - border-bottom: 4px solid \9; - content: ""; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} -@media (min-width: 541px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn, -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 2px; - border-top-left-radius: 2px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 2px; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; -} -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group .form-control:focus { - z-index: 3; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 45px; - padding: 10px 16px; - font-size: 17px; - line-height: 1.3333333; - border-radius: 3px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 45px; - line-height: 45px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 1px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 13px; - font-weight: normal; - line-height: 1; - color: #555555; - text-align: center; - background-color: #eeeeee; - border: 1px solid #ccc; - border-radius: 2px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 1px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 17px; - border-radius: 3px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - z-index: 2; - margin-left: -1px; -} -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eeeeee; -} -.nav > li.disabled > a { - color: #777777; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #777777; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eeeeee; - border-color: #337ab7; -} -.nav .nav-divider { - height: 1px; - margin: 8px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 2px 2px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #ddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555555; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; - cursor: default; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 2px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 2px 2px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 2px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #fff; - background-color: #337ab7; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 2px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 2px 2px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar { - position: relative; - min-height: 30px; - margin-bottom: 18px; - border: 1px solid transparent; -} -@media (min-width: 541px) { - .navbar { - border-radius: 2px; - } -} -@media (min-width: 541px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - overflow-x: visible; - padding-right: 0px; - padding-left: 0px; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 541px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; - } -} -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} -@media (max-device-width: 540px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: 0px; - margin-left: 0px; -} -@media (min-width: 541px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 541px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 541px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - padding: 6px 0px; - font-size: 17px; - line-height: 18px; - height: 30px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -.navbar-brand > img { - display: block; -} -@media (min-width: 541px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: 0px; - } -} -.navbar-toggle { - position: relative; - float: right; - margin-right: 0px; - padding: 9px 10px; - margin-top: -2px; - margin-bottom: -2px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 2px; -} -.navbar-toggle:focus { - outline: 0; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 541px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 3px 0px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 18px; -} -@media (max-width: 540px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 18px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 541px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 6px; - padding-bottom: 6px; - } -} -.navbar-form { - margin-left: 0px; - margin-right: 0px; - padding: 10px 0px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: -1px; - margin-bottom: -1px; -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .form-control-static { - display: inline-block; - } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 540px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - .navbar-form .form-group:last-child { - margin-bottom: 0; - } -} -@media (min-width: 541px) { - .navbar-form { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-right-radius: 2px; - border-top-left-radius: 2px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: -1px; - margin-bottom: -1px; -} -.navbar-btn.btn-sm { - margin-top: 0px; - margin-bottom: 0px; -} -.navbar-btn.btn-xs { - margin-top: 4px; - margin-bottom: 4px; -} -.navbar-text { - margin-top: 6px; - margin-bottom: 6px; -} -@media (min-width: 541px) { - .navbar-text { - float: left; - margin-left: 0px; - margin-right: 0px; - } -} -@media (min-width: 541px) { - .navbar-left { - float: left !important; - float: left; - } - .navbar-right { - float: right !important; - float: right; - margin-right: 0px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} -.navbar-default .navbar-brand { - color: #777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #777; -} -.navbar-default .navbar-nav > li > a { - color: #777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #ddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #ddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - background-color: #e7e7e7; - color: #555; -} -@media (max-width: 540px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777; -} -.navbar-default .navbar-link:hover { - color: #333; -} -.navbar-default .btn-link { - color: #777; -} -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #333; -} -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, -.navbar-default .btn-link[disabled]:focus, -fieldset[disabled] .navbar-default .btn-link:focus { - color: #ccc; -} -.navbar-inverse { - background-color: #222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #9d9d9d; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #9d9d9d; -} -.navbar-inverse .navbar-nav > li > a { - color: #9d9d9d; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: #080808; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: #333; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - background-color: #080808; - color: #fff; -} -@media (max-width: 540px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #9d9d9d; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #9d9d9d; -} -.navbar-inverse .navbar-link:hover { - color: #fff; -} -.navbar-inverse .btn-link { - color: #9d9d9d; -} -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #fff; -} -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link[disabled]:focus, -fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 18px; - list-style: none; - background-color: #f5f5f5; - border-radius: 2px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - content: "/\00a0"; - padding: 0 5px; - color: #5e5e5e; -} -.breadcrumb > .active { - color: #777777; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 18px 0; - border-radius: 2px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - line-height: 1.42857143; - text-decoration: none; - color: #337ab7; - background-color: #fff; - border: 1px solid #ddd; - margin-left: -1px; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 2px; - border-top-left-radius: 2px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-bottom-right-radius: 2px; - border-top-right-radius: 2px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - z-index: 2; - color: #23527c; - background-color: #eeeeee; - border-color: #ddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 3; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; - cursor: default; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #777777; - background-color: #fff; - border-color: #ddd; - cursor: not-allowed; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 17px; - line-height: 1.3333333; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 1px; - border-top-left-radius: 1px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-bottom-right-radius: 1px; - border-top-right-radius: 1px; -} -.pager { - padding-left: 0; - margin: 18px 0; - list-style: none; - text-align: center; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eeeeee; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #777777; - background-color: #fff; - cursor: not-allowed; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -a.label:hover, -a.label:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #777777; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #5e5e5e; -} -.label-primary { - background-color: #337ab7; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #286090; -} -.label-success { - background-color: #5cb85c; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} -.label-info { - background-color: #5bc0de; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} -.label-warning { - background-color: #f0ad4e; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - color: #fff; - line-height: 1; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: #777777; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge, -.btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #337ab7; - background-color: #fff; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding-top: 30px; - padding-bottom: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #eeeeee; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 20px; - font-weight: 200; -} -.jumbotron > hr { - border-top-color: #d5d5d5; -} -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 3px; - padding-left: 0px; - padding-right: 0px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-left: 60px; - padding-right: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 59px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 18px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 2px; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-left: auto; - margin-right: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #337ab7; -} -.thumbnail .caption { - padding: 9px; - color: #000; -} -.alert { - padding: 15px; - margin-bottom: 18px; - border: 1px solid transparent; - border-radius: 2px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} -.alert-dismissable .close, -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; - color: #3c763d; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #2b542c; -} -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; - color: #31708f; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #245269; -} -.alert-warning { - background-color: #fcf8e3; - border-color: #faebcc; - color: #8a6d3b; -} -.alert-warning hr { - border-top-color: #f7e1b5; -} -.alert-warning .alert-link { - color: #66512c; -} -.alert-danger { - background-color: #f2dede; - border-color: #ebccd1; - color: #a94442; -} -.alert-danger hr { - border-top-color: #e4b9c0; -} -.alert-danger .alert-link { - color: #843534; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - overflow: hidden; - height: 18px; - margin-bottom: 18px; - background-color: #f5f5f5; - border-radius: 2px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 12px; - line-height: 18px; - color: #fff; - text-align: center; - background-color: #337ab7; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media, -.media-body { - zoom: 1; - overflow: hidden; -} -.media-body { - width: 10000px; -} -.media-object { - display: block; -} -.media-object.img-thumbnail { - max-width: none; -} -.media-right, -.media > .pull-right { - padding-left: 10px; -} -.media-left, -.media > .pull-left { - padding-right: 10px; -} -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} -.media-middle { - vertical-align: middle; -} -.media-bottom { - vertical-align: bottom; -} -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - margin-bottom: 20px; - padding-left: 0; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; -} -.list-group-item:first-child { - border-top-right-radius: 2px; - border-top-left-radius: 2px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 2px; -} -a.list-group-item, -button.list-group-item { - color: #555; -} -a.list-group-item .list-group-item-heading, -button.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:hover, -button.list-group-item:hover, -a.list-group-item:focus, -button.list-group-item:focus { - text-decoration: none; - color: #555; - background-color: #f5f5f5; -} -button.list-group-item { - width: 100%; - text-align: left; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - background-color: #eeeeee; - color: #777777; - cursor: not-allowed; -} -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text { - color: #777777; -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; -} -.list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, -.list-group-item.active:focus .list-group-item-text { - color: #c7ddef; -} -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; -} -a.list-group-item-success, -button.list-group-item-success { - color: #3c763d; -} -a.list-group-item-success .list-group-item-heading, -button.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -button.list-group-item-success:hover, -a.list-group-item-success:focus, -button.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -button.list-group-item-success.active, -a.list-group-item-success.active:hover, -button.list-group-item-success.active:hover, -a.list-group-item-success.active:focus, -button.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; -} -a.list-group-item-info, -button.list-group-item-info { - color: #31708f; -} -a.list-group-item-info .list-group-item-heading, -button.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -button.list-group-item-info:hover, -a.list-group-item-info:focus, -button.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -button.list-group-item-info.active, -a.list-group-item-info.active:hover, -button.list-group-item-info.active:hover, -a.list-group-item-info.active:focus, -button.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; -} -a.list-group-item-warning, -button.list-group-item-warning { - color: #8a6d3b; -} -a.list-group-item-warning .list-group-item-heading, -button.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -button.list-group-item-warning:hover, -a.list-group-item-warning:focus, -button.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -button.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -button.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus, -button.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; -} -a.list-group-item-danger, -button.list-group-item-danger { - color: #a94442; -} -a.list-group-item-danger .list-group-item-heading, -button.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -button.list-group-item-danger:hover, -a.list-group-item-danger:focus, -button.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -button.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -button.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus, -button.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 18px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 2px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: 1px; - border-top-left-radius: 1px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 15px; - color: inherit; -} -.panel-title > a, -.panel-title > small, -.panel-title > .small, -.panel-title > small > a, -.panel-title > .small > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 1px; - border-bottom-left-radius: 1px; -} -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-right-radius: 1px; - border-top-left-radius: 1px; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 1px; - border-bottom-left-radius: 1px; -} -.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.list-group + .panel-footer { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} -.panel > .table caption, -.panel > .table-responsive > .table caption, -.panel > .panel-collapse > .table caption { - padding-left: 15px; - padding-right: 15px; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: 1px; - border-top-left-radius: 1px; -} -.panel > .table:first-child > thead:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 1px; - border-top-right-radius: 1px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 1px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 1px; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 1px; - border-bottom-left-radius: 1px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-left-radius: 1px; - border-bottom-right-radius: 1px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 1px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 1px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #ddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - border: 0; - margin-bottom: 0; -} -.panel-group { - margin-bottom: 18px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 2px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #ddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; -} -.panel-default { - border-color: #ddd; -} -.panel-default > .panel-heading { - color: #333333; - background-color: #f5f5f5; - border-color: #ddd; -} -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ddd; -} -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333333; -} -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ddd; -} -.panel-primary { - border-color: #337ab7; -} -.panel-primary > .panel-heading { - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #337ab7; -} -.panel-primary > .panel-heading .badge { - color: #337ab7; - background-color: #fff; -} -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #337ab7; -} -.panel-success { - border-color: #d6e9c6; -} -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; -} -.panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; -} -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; -} -.panel-info { - border-color: #bce8f1; -} -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; -} -.panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; -} -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; -} -.panel-warning { - border-color: #faebcc; -} -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; -} -.panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; -} -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; -} -.panel-danger { - border-color: #ebccd1; -} -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; -} -.panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; -} -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; -} -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; -} -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} -.embed-responsive-4by3 { - padding-bottom: 75%; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 2px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} -.well-lg { - padding: 24px; - border-radius: 3px; -} -.well-sm { - padding: 9px; - border-radius: 1px; -} -.close { - float: right; - font-size: 19.5px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - opacity: 0.2; - filter: alpha(opacity=20); -} -.close:hover, -.close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); -} -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} -.modal-open { - overflow: hidden; -} -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #fff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 3px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; - outline: 0; -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; -} -.modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} -.modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); -} -.modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 15px; -} -.modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 12px; - opacity: 0; - filter: alpha(opacity=0); -} -.tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); -} -.tooltip.top { - margin-top: -3px; - padding: 5px 0; -} -.tooltip.right { - margin-left: 3px; - padding: 0 5px; -} -.tooltip.bottom { - margin-top: 3px; - padding: 5px 0; -} -.tooltip.left { - margin-left: -3px; - padding: 0 5px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 2px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-left .tooltip-arrow { - bottom: 0; - right: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 13px; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 3px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: 13px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 2px 2px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover > .arrow { - border-width: 11px; -} -.popover > .arrow:after { - border-width: 10px; - content: ""; -} -.popover.top > .arrow { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: #999999; - border-top-color: rgba(0, 0, 0, 0.25); - bottom: -11px; -} -.popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #fff; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: #999999; - border-right-color: rgba(0, 0, 0, 0.25); -} -.popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #fff; -} -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999999; - border-bottom-color: rgba(0, 0, 0, 0.25); - top: -11px; -} -.popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #fff; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999999; - border-left-color: rgba(0, 0, 0, 0.25); -} -.popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #fff; - bottom: -10px; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; -} -.carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -moz-transition: -moz-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000px; - -moz-perspective: 1000px; - perspective: 1000px; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - left: 0; - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - left: 0; - } -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - background-color: rgba(0, 0, 0, 0); -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); -} -.carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); -} -.carousel-control:hover, -.carousel-control:focus { - outline: 0; - color: #fff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - margin-top: -10px; - z-index: 5; - display: inline-block; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - line-height: 1; - font-family: serif; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #fff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); -} -.carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #fff; -} -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -10px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -10px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -10px; - } - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-header:before, -.modal-header:after, -.modal-footer:before, -.modal-footer:after, -.item_buttons:before, -.item_buttons:after { - content: " "; - display: table; -} -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-header:after, -.modal-footer:after, -.item_buttons:after { - clear: both; -} -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table !important; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table !important; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table !important; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table !important; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table !important; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -.visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; - } -} -.visible-print-inline { - display: none !important; -} -@media print { - .visible-print-inline { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; -} -@media print { - .visible-print-inline-block { - display: inline-block !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} -/*! -* -* Font Awesome -* -*/ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0'); - src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); - font-weight: normal; - font-style: normal; -} -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; -} -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} -.fa-fw { - width: 1.28571429em; - text-align: center; -} -.fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; -} -.fa-ul > li { - position: relative; -} -.fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; -} -.fa-li.fa-lg { - left: -1.85714286em; -} -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eee; - border-radius: .1em; -} -.fa-pull-left { - float: left; -} -.fa-pull-right { - float: right; -} -.fa.fa-pull-left { - margin-right: .3em; -} -.fa.fa-pull-right { - margin-left: .3em; -} -/* Deprecated as of 4.4.0 */ -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.fa.pull-left { - margin-right: .3em; -} -.fa.pull-right { - margin-left: .3em; -} -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); -} -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); -} -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; -} -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.fa-stack-1x { - line-height: inherit; -} -.fa-stack-2x { - font-size: 2em; -} -.fa-inverse { - color: #fff; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: "\f000"; -} -.fa-music:before { - content: "\f001"; -} -.fa-search:before { - content: "\f002"; -} -.fa-envelope-o:before { - content: "\f003"; -} -.fa-heart:before { - content: "\f004"; -} -.fa-star:before { - content: "\f005"; -} -.fa-star-o:before { - content: "\f006"; -} -.fa-user:before { - content: "\f007"; -} -.fa-film:before { - content: "\f008"; -} -.fa-th-large:before { - content: "\f009"; -} -.fa-th:before { - content: "\f00a"; -} -.fa-th-list:before { - content: "\f00b"; -} -.fa-check:before { - content: "\f00c"; -} -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "\f00d"; -} -.fa-search-plus:before { - content: "\f00e"; -} -.fa-search-minus:before { - content: "\f010"; -} -.fa-power-off:before { - content: "\f011"; -} -.fa-signal:before { - content: "\f012"; -} -.fa-gear:before, -.fa-cog:before { - content: "\f013"; -} -.fa-trash-o:before { - content: "\f014"; -} -.fa-home:before { - content: "\f015"; -} -.fa-file-o:before { - content: "\f016"; -} -.fa-clock-o:before { - content: "\f017"; -} -.fa-road:before { - content: "\f018"; -} -.fa-download:before { - content: "\f019"; -} -.fa-arrow-circle-o-down:before { - content: "\f01a"; -} -.fa-arrow-circle-o-up:before { - content: "\f01b"; -} -.fa-inbox:before { - content: "\f01c"; -} -.fa-play-circle-o:before { - content: "\f01d"; -} -.fa-rotate-right:before, -.fa-repeat:before { - content: "\f01e"; -} -.fa-refresh:before { - content: "\f021"; -} -.fa-list-alt:before { - content: "\f022"; -} -.fa-lock:before { - content: "\f023"; -} -.fa-flag:before { - content: "\f024"; -} -.fa-headphones:before { - content: "\f025"; -} -.fa-volume-off:before { - content: "\f026"; -} -.fa-volume-down:before { - content: "\f027"; -} -.fa-volume-up:before { - content: "\f028"; -} -.fa-qrcode:before { - content: "\f029"; -} -.fa-barcode:before { - content: "\f02a"; -} -.fa-tag:before { - content: "\f02b"; -} -.fa-tags:before { - content: "\f02c"; -} -.fa-book:before { - content: "\f02d"; -} -.fa-bookmark:before { - content: "\f02e"; -} -.fa-print:before { - content: "\f02f"; -} -.fa-camera:before { - content: "\f030"; -} -.fa-font:before { - content: "\f031"; -} -.fa-bold:before { - content: "\f032"; -} -.fa-italic:before { - content: "\f033"; -} -.fa-text-height:before { - content: "\f034"; -} -.fa-text-width:before { - content: "\f035"; -} -.fa-align-left:before { - content: "\f036"; -} -.fa-align-center:before { - content: "\f037"; -} -.fa-align-right:before { - content: "\f038"; -} -.fa-align-justify:before { - content: "\f039"; -} -.fa-list:before { - content: "\f03a"; -} -.fa-dedent:before, -.fa-outdent:before { - content: "\f03b"; -} -.fa-indent:before { - content: "\f03c"; -} -.fa-video-camera:before { - content: "\f03d"; -} -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\f03e"; -} -.fa-pencil:before { - content: "\f040"; -} -.fa-map-marker:before { - content: "\f041"; -} -.fa-adjust:before { - content: "\f042"; -} -.fa-tint:before { - content: "\f043"; -} -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\f044"; -} -.fa-share-square-o:before { - content: "\f045"; -} -.fa-check-square-o:before { - content: "\f046"; -} -.fa-arrows:before { - content: "\f047"; -} -.fa-step-backward:before { - content: "\f048"; -} -.fa-fast-backward:before { - content: "\f049"; -} -.fa-backward:before { - content: "\f04a"; -} -.fa-play:before { - content: "\f04b"; -} -.fa-pause:before { - content: "\f04c"; -} -.fa-stop:before { - content: "\f04d"; -} -.fa-forward:before { - content: "\f04e"; -} -.fa-fast-forward:before { - content: "\f050"; -} -.fa-step-forward:before { - content: "\f051"; -} -.fa-eject:before { - content: "\f052"; -} -.fa-chevron-left:before { - content: "\f053"; -} -.fa-chevron-right:before { - content: "\f054"; -} -.fa-plus-circle:before { - content: "\f055"; -} -.fa-minus-circle:before { - content: "\f056"; -} -.fa-times-circle:before { - content: "\f057"; -} -.fa-check-circle:before { - content: "\f058"; -} -.fa-question-circle:before { - content: "\f059"; -} -.fa-info-circle:before { - content: "\f05a"; -} -.fa-crosshairs:before { - content: "\f05b"; -} -.fa-times-circle-o:before { - content: "\f05c"; -} -.fa-check-circle-o:before { - content: "\f05d"; -} -.fa-ban:before { - content: "\f05e"; -} -.fa-arrow-left:before { - content: "\f060"; -} -.fa-arrow-right:before { - content: "\f061"; -} -.fa-arrow-up:before { - content: "\f062"; -} -.fa-arrow-down:before { - content: "\f063"; -} -.fa-mail-forward:before, -.fa-share:before { - content: "\f064"; -} -.fa-expand:before { - content: "\f065"; -} -.fa-compress:before { - content: "\f066"; -} -.fa-plus:before { - content: "\f067"; -} -.fa-minus:before { - content: "\f068"; -} -.fa-asterisk:before { - content: "\f069"; -} -.fa-exclamation-circle:before { - content: "\f06a"; -} -.fa-gift:before { - content: "\f06b"; -} -.fa-leaf:before { - content: "\f06c"; -} -.fa-fire:before { - content: "\f06d"; -} -.fa-eye:before { - content: "\f06e"; -} -.fa-eye-slash:before { - content: "\f070"; -} -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\f071"; -} -.fa-plane:before { - content: "\f072"; -} -.fa-calendar:before { - content: "\f073"; -} -.fa-random:before { - content: "\f074"; -} -.fa-comment:before { - content: "\f075"; -} -.fa-magnet:before { - content: "\f076"; -} -.fa-chevron-up:before { - content: "\f077"; -} -.fa-chevron-down:before { - content: "\f078"; -} -.fa-retweet:before { - content: "\f079"; -} -.fa-shopping-cart:before { - content: "\f07a"; -} -.fa-folder:before { - content: "\f07b"; -} -.fa-folder-open:before { - content: "\f07c"; -} -.fa-arrows-v:before { - content: "\f07d"; -} -.fa-arrows-h:before { - content: "\f07e"; -} -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "\f080"; -} -.fa-twitter-square:before { - content: "\f081"; -} -.fa-facebook-square:before { - content: "\f082"; -} -.fa-camera-retro:before { - content: "\f083"; -} -.fa-key:before { - content: "\f084"; -} -.fa-gears:before, -.fa-cogs:before { - content: "\f085"; -} -.fa-comments:before { - content: "\f086"; -} -.fa-thumbs-o-up:before { - content: "\f087"; -} -.fa-thumbs-o-down:before { - content: "\f088"; -} -.fa-star-half:before { - content: "\f089"; -} -.fa-heart-o:before { - content: "\f08a"; -} -.fa-sign-out:before { - content: "\f08b"; -} -.fa-linkedin-square:before { - content: "\f08c"; -} -.fa-thumb-tack:before { - content: "\f08d"; -} -.fa-external-link:before { - content: "\f08e"; -} -.fa-sign-in:before { - content: "\f090"; -} -.fa-trophy:before { - content: "\f091"; -} -.fa-github-square:before { - content: "\f092"; -} -.fa-upload:before { - content: "\f093"; -} -.fa-lemon-o:before { - content: "\f094"; -} -.fa-phone:before { - content: "\f095"; -} -.fa-square-o:before { - content: "\f096"; -} -.fa-bookmark-o:before { - content: "\f097"; -} -.fa-phone-square:before { - content: "\f098"; -} -.fa-twitter:before { - content: "\f099"; -} -.fa-facebook-f:before, -.fa-facebook:before { - content: "\f09a"; -} -.fa-github:before { - content: "\f09b"; -} -.fa-unlock:before { - content: "\f09c"; -} -.fa-credit-card:before { - content: "\f09d"; -} -.fa-feed:before, -.fa-rss:before { - content: "\f09e"; -} -.fa-hdd-o:before { - content: "\f0a0"; -} -.fa-bullhorn:before { - content: "\f0a1"; -} -.fa-bell:before { - content: "\f0f3"; -} -.fa-certificate:before { - content: "\f0a3"; -} -.fa-hand-o-right:before { - content: "\f0a4"; -} -.fa-hand-o-left:before { - content: "\f0a5"; -} -.fa-hand-o-up:before { - content: "\f0a6"; -} -.fa-hand-o-down:before { - content: "\f0a7"; -} -.fa-arrow-circle-left:before { - content: "\f0a8"; -} -.fa-arrow-circle-right:before { - content: "\f0a9"; -} -.fa-arrow-circle-up:before { - content: "\f0aa"; -} -.fa-arrow-circle-down:before { - content: "\f0ab"; -} -.fa-globe:before { - content: "\f0ac"; -} -.fa-wrench:before { - content: "\f0ad"; -} -.fa-tasks:before { - content: "\f0ae"; -} -.fa-filter:before { - content: "\f0b0"; -} -.fa-briefcase:before { - content: "\f0b1"; -} -.fa-arrows-alt:before { - content: "\f0b2"; -} -.fa-group:before, -.fa-users:before { - content: "\f0c0"; -} -.fa-chain:before, -.fa-link:before { - content: "\f0c1"; -} -.fa-cloud:before { - content: "\f0c2"; -} -.fa-flask:before { - content: "\f0c3"; -} -.fa-cut:before, -.fa-scissors:before { - content: "\f0c4"; -} -.fa-copy:before, -.fa-files-o:before { - content: "\f0c5"; -} -.fa-paperclip:before { - content: "\f0c6"; -} -.fa-save:before, -.fa-floppy-o:before { - content: "\f0c7"; -} -.fa-square:before { - content: "\f0c8"; -} -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\f0c9"; -} -.fa-list-ul:before { - content: "\f0ca"; -} -.fa-list-ol:before { - content: "\f0cb"; -} -.fa-strikethrough:before { - content: "\f0cc"; -} -.fa-underline:before { - content: "\f0cd"; -} -.fa-table:before { - content: "\f0ce"; -} -.fa-magic:before { - content: "\f0d0"; -} -.fa-truck:before { - content: "\f0d1"; -} -.fa-pinterest:before { - content: "\f0d2"; -} -.fa-pinterest-square:before { - content: "\f0d3"; -} -.fa-google-plus-square:before { - content: "\f0d4"; -} -.fa-google-plus:before { - content: "\f0d5"; -} -.fa-money:before { - content: "\f0d6"; -} -.fa-caret-down:before { - content: "\f0d7"; -} -.fa-caret-up:before { - content: "\f0d8"; -} -.fa-caret-left:before { - content: "\f0d9"; -} -.fa-caret-right:before { - content: "\f0da"; -} -.fa-columns:before { - content: "\f0db"; -} -.fa-unsorted:before, -.fa-sort:before { - content: "\f0dc"; -} -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\f0dd"; -} -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\f0de"; -} -.fa-envelope:before { - content: "\f0e0"; -} -.fa-linkedin:before { - content: "\f0e1"; -} -.fa-rotate-left:before, -.fa-undo:before { - content: "\f0e2"; -} -.fa-legal:before, -.fa-gavel:before { - content: "\f0e3"; -} -.fa-dashboard:before, -.fa-tachometer:before { - content: "\f0e4"; -} -.fa-comment-o:before { - content: "\f0e5"; -} -.fa-comments-o:before { - content: "\f0e6"; -} -.fa-flash:before, -.fa-bolt:before { - content: "\f0e7"; -} -.fa-sitemap:before { - content: "\f0e8"; -} -.fa-umbrella:before { - content: "\f0e9"; -} -.fa-paste:before, -.fa-clipboard:before { - content: "\f0ea"; -} -.fa-lightbulb-o:before { - content: "\f0eb"; -} -.fa-exchange:before { - content: "\f0ec"; -} -.fa-cloud-download:before { - content: "\f0ed"; -} -.fa-cloud-upload:before { - content: "\f0ee"; -} -.fa-user-md:before { - content: "\f0f0"; -} -.fa-stethoscope:before { - content: "\f0f1"; -} -.fa-suitcase:before { - content: "\f0f2"; -} -.fa-bell-o:before { - content: "\f0a2"; -} -.fa-coffee:before { - content: "\f0f4"; -} -.fa-cutlery:before { - content: "\f0f5"; -} -.fa-file-text-o:before { - content: "\f0f6"; -} -.fa-building-o:before { - content: "\f0f7"; -} -.fa-hospital-o:before { - content: "\f0f8"; -} -.fa-ambulance:before { - content: "\f0f9"; -} -.fa-medkit:before { - content: "\f0fa"; -} -.fa-fighter-jet:before { - content: "\f0fb"; -} -.fa-beer:before { - content: "\f0fc"; -} -.fa-h-square:before { - content: "\f0fd"; -} -.fa-plus-square:before { - content: "\f0fe"; -} -.fa-angle-double-left:before { - content: "\f100"; -} -.fa-angle-double-right:before { - content: "\f101"; -} -.fa-angle-double-up:before { - content: "\f102"; -} -.fa-angle-double-down:before { - content: "\f103"; -} -.fa-angle-left:before { - content: "\f104"; -} -.fa-angle-right:before { - content: "\f105"; -} -.fa-angle-up:before { - content: "\f106"; -} -.fa-angle-down:before { - content: "\f107"; -} -.fa-desktop:before { - content: "\f108"; -} -.fa-laptop:before { - content: "\f109"; -} -.fa-tablet:before { - content: "\f10a"; -} -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\f10b"; -} -.fa-circle-o:before { - content: "\f10c"; -} -.fa-quote-left:before { - content: "\f10d"; -} -.fa-quote-right:before { - content: "\f10e"; -} -.fa-spinner:before { - content: "\f110"; -} -.fa-circle:before { - content: "\f111"; -} -.fa-mail-reply:before, -.fa-reply:before { - content: "\f112"; -} -.fa-github-alt:before { - content: "\f113"; -} -.fa-folder-o:before { - content: "\f114"; -} -.fa-folder-open-o:before { - content: "\f115"; -} -.fa-smile-o:before { - content: "\f118"; -} -.fa-frown-o:before { - content: "\f119"; -} -.fa-meh-o:before { - content: "\f11a"; -} -.fa-gamepad:before { - content: "\f11b"; -} -.fa-keyboard-o:before { - content: "\f11c"; -} -.fa-flag-o:before { - content: "\f11d"; -} -.fa-flag-checkered:before { - content: "\f11e"; -} -.fa-terminal:before { - content: "\f120"; -} -.fa-code:before { - content: "\f121"; -} -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\f122"; -} -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\f123"; -} -.fa-location-arrow:before { - content: "\f124"; -} -.fa-crop:before { - content: "\f125"; -} -.fa-code-fork:before { - content: "\f126"; -} -.fa-unlink:before, -.fa-chain-broken:before { - content: "\f127"; -} -.fa-question:before { - content: "\f128"; -} -.fa-info:before { - content: "\f129"; -} -.fa-exclamation:before { - content: "\f12a"; -} -.fa-superscript:before { - content: "\f12b"; -} -.fa-subscript:before { - content: "\f12c"; -} -.fa-eraser:before { - content: "\f12d"; -} -.fa-puzzle-piece:before { - content: "\f12e"; -} -.fa-microphone:before { - content: "\f130"; -} -.fa-microphone-slash:before { - content: "\f131"; -} -.fa-shield:before { - content: "\f132"; -} -.fa-calendar-o:before { - content: "\f133"; -} -.fa-fire-extinguisher:before { - content: "\f134"; -} -.fa-rocket:before { - content: "\f135"; -} -.fa-maxcdn:before { - content: "\f136"; -} -.fa-chevron-circle-left:before { - content: "\f137"; -} -.fa-chevron-circle-right:before { - content: "\f138"; -} -.fa-chevron-circle-up:before { - content: "\f139"; -} -.fa-chevron-circle-down:before { - content: "\f13a"; -} -.fa-html5:before { - content: "\f13b"; -} -.fa-css3:before { - content: "\f13c"; -} -.fa-anchor:before { - content: "\f13d"; -} -.fa-unlock-alt:before { - content: "\f13e"; -} -.fa-bullseye:before { - content: "\f140"; -} -.fa-ellipsis-h:before { - content: "\f141"; -} -.fa-ellipsis-v:before { - content: "\f142"; -} -.fa-rss-square:before { - content: "\f143"; -} -.fa-play-circle:before { - content: "\f144"; -} -.fa-ticket:before { - content: "\f145"; -} -.fa-minus-square:before { - content: "\f146"; -} -.fa-minus-square-o:before { - content: "\f147"; -} -.fa-level-up:before { - content: "\f148"; -} -.fa-level-down:before { - content: "\f149"; -} -.fa-check-square:before { - content: "\f14a"; -} -.fa-pencil-square:before { - content: "\f14b"; -} -.fa-external-link-square:before { - content: "\f14c"; -} -.fa-share-square:before { - content: "\f14d"; -} -.fa-compass:before { - content: "\f14e"; -} -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\f150"; -} -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\f151"; -} -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\f152"; -} -.fa-euro:before, -.fa-eur:before { - content: "\f153"; -} -.fa-gbp:before { - content: "\f154"; -} -.fa-dollar:before, -.fa-usd:before { - content: "\f155"; -} -.fa-rupee:before, -.fa-inr:before { - content: "\f156"; -} -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\f157"; -} -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\f158"; -} -.fa-won:before, -.fa-krw:before { - content: "\f159"; -} -.fa-bitcoin:before, -.fa-btc:before { - content: "\f15a"; -} -.fa-file:before { - content: "\f15b"; -} -.fa-file-text:before { - content: "\f15c"; -} -.fa-sort-alpha-asc:before { - content: "\f15d"; -} -.fa-sort-alpha-desc:before { - content: "\f15e"; -} -.fa-sort-amount-asc:before { - content: "\f160"; -} -.fa-sort-amount-desc:before { - content: "\f161"; -} -.fa-sort-numeric-asc:before { - content: "\f162"; -} -.fa-sort-numeric-desc:before { - content: "\f163"; -} -.fa-thumbs-up:before { - content: "\f164"; -} -.fa-thumbs-down:before { - content: "\f165"; -} -.fa-youtube-square:before { - content: "\f166"; -} -.fa-youtube:before { - content: "\f167"; -} -.fa-xing:before { - content: "\f168"; -} -.fa-xing-square:before { - content: "\f169"; -} -.fa-youtube-play:before { - content: "\f16a"; -} -.fa-dropbox:before { - content: "\f16b"; -} -.fa-stack-overflow:before { - content: "\f16c"; -} -.fa-instagram:before { - content: "\f16d"; -} -.fa-flickr:before { - content: "\f16e"; -} -.fa-adn:before { - content: "\f170"; -} -.fa-bitbucket:before { - content: "\f171"; -} -.fa-bitbucket-square:before { - content: "\f172"; -} -.fa-tumblr:before { - content: "\f173"; -} -.fa-tumblr-square:before { - content: "\f174"; -} -.fa-long-arrow-down:before { - content: "\f175"; -} -.fa-long-arrow-up:before { - content: "\f176"; -} -.fa-long-arrow-left:before { - content: "\f177"; -} -.fa-long-arrow-right:before { - content: "\f178"; -} -.fa-apple:before { - content: "\f179"; -} -.fa-windows:before { - content: "\f17a"; -} -.fa-android:before { - content: "\f17b"; -} -.fa-linux:before { - content: "\f17c"; -} -.fa-dribbble:before { - content: "\f17d"; -} -.fa-skype:before { - content: "\f17e"; -} -.fa-foursquare:before { - content: "\f180"; -} -.fa-trello:before { - content: "\f181"; -} -.fa-female:before { - content: "\f182"; -} -.fa-male:before { - content: "\f183"; -} -.fa-gittip:before, -.fa-gratipay:before { - content: "\f184"; -} -.fa-sun-o:before { - content: "\f185"; -} -.fa-moon-o:before { - content: "\f186"; -} -.fa-archive:before { - content: "\f187"; -} -.fa-bug:before { - content: "\f188"; -} -.fa-vk:before { - content: "\f189"; -} -.fa-weibo:before { - content: "\f18a"; -} -.fa-renren:before { - content: "\f18b"; -} -.fa-pagelines:before { - content: "\f18c"; -} -.fa-stack-exchange:before { - content: "\f18d"; -} -.fa-arrow-circle-o-right:before { - content: "\f18e"; -} -.fa-arrow-circle-o-left:before { - content: "\f190"; -} -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\f191"; -} -.fa-dot-circle-o:before { - content: "\f192"; -} -.fa-wheelchair:before { - content: "\f193"; -} -.fa-vimeo-square:before { - content: "\f194"; -} -.fa-turkish-lira:before, -.fa-try:before { - content: "\f195"; -} -.fa-plus-square-o:before { - content: "\f196"; -} -.fa-space-shuttle:before { - content: "\f197"; -} -.fa-slack:before { - content: "\f198"; -} -.fa-envelope-square:before { - content: "\f199"; -} -.fa-wordpress:before { - content: "\f19a"; -} -.fa-openid:before { - content: "\f19b"; -} -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\f19c"; -} -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\f19d"; -} -.fa-yahoo:before { - content: "\f19e"; -} -.fa-google:before { - content: "\f1a0"; -} -.fa-reddit:before { - content: "\f1a1"; -} -.fa-reddit-square:before { - content: "\f1a2"; -} -.fa-stumbleupon-circle:before { - content: "\f1a3"; -} -.fa-stumbleupon:before { - content: "\f1a4"; -} -.fa-delicious:before { - content: "\f1a5"; -} -.fa-digg:before { - content: "\f1a6"; -} -.fa-pied-piper-pp:before { - content: "\f1a7"; -} -.fa-pied-piper-alt:before { - content: "\f1a8"; -} -.fa-drupal:before { - content: "\f1a9"; -} -.fa-joomla:before { - content: "\f1aa"; -} -.fa-language:before { - content: "\f1ab"; -} -.fa-fax:before { - content: "\f1ac"; -} -.fa-building:before { - content: "\f1ad"; -} -.fa-child:before { - content: "\f1ae"; -} -.fa-paw:before { - content: "\f1b0"; -} -.fa-spoon:before { - content: "\f1b1"; -} -.fa-cube:before { - content: "\f1b2"; -} -.fa-cubes:before { - content: "\f1b3"; -} -.fa-behance:before { - content: "\f1b4"; -} -.fa-behance-square:before { - content: "\f1b5"; -} -.fa-steam:before { - content: "\f1b6"; -} -.fa-steam-square:before { - content: "\f1b7"; -} -.fa-recycle:before { - content: "\f1b8"; -} -.fa-automobile:before, -.fa-car:before { - content: "\f1b9"; -} -.fa-cab:before, -.fa-taxi:before { - content: "\f1ba"; -} -.fa-tree:before { - content: "\f1bb"; -} -.fa-spotify:before { - content: "\f1bc"; -} -.fa-deviantart:before { - content: "\f1bd"; -} -.fa-soundcloud:before { - content: "\f1be"; -} -.fa-database:before { - content: "\f1c0"; -} -.fa-file-pdf-o:before { - content: "\f1c1"; -} -.fa-file-word-o:before { - content: "\f1c2"; -} -.fa-file-excel-o:before { - content: "\f1c3"; -} -.fa-file-powerpoint-o:before { - content: "\f1c4"; -} -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\f1c5"; -} -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\f1c6"; -} -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\f1c7"; -} -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\f1c8"; -} -.fa-file-code-o:before { - content: "\f1c9"; -} -.fa-vine:before { - content: "\f1ca"; -} -.fa-codepen:before { - content: "\f1cb"; -} -.fa-jsfiddle:before { - content: "\f1cc"; -} -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\f1cd"; -} -.fa-circle-o-notch:before { - content: "\f1ce"; -} -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: "\f1d0"; -} -.fa-ge:before, -.fa-empire:before { - content: "\f1d1"; -} -.fa-git-square:before { - content: "\f1d2"; -} -.fa-git:before { - content: "\f1d3"; -} -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: "\f1d4"; -} -.fa-tencent-weibo:before { - content: "\f1d5"; -} -.fa-qq:before { - content: "\f1d6"; -} -.fa-wechat:before, -.fa-weixin:before { - content: "\f1d7"; -} -.fa-send:before, -.fa-paper-plane:before { - content: "\f1d8"; -} -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\f1d9"; -} -.fa-history:before { - content: "\f1da"; -} -.fa-circle-thin:before { - content: "\f1db"; -} -.fa-header:before { - content: "\f1dc"; -} -.fa-paragraph:before { - content: "\f1dd"; -} -.fa-sliders:before { - content: "\f1de"; -} -.fa-share-alt:before { - content: "\f1e0"; -} -.fa-share-alt-square:before { - content: "\f1e1"; -} -.fa-bomb:before { - content: "\f1e2"; -} -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "\f1e3"; -} -.fa-tty:before { - content: "\f1e4"; -} -.fa-binoculars:before { - content: "\f1e5"; -} -.fa-plug:before { - content: "\f1e6"; -} -.fa-slideshare:before { - content: "\f1e7"; -} -.fa-twitch:before { - content: "\f1e8"; -} -.fa-yelp:before { - content: "\f1e9"; -} -.fa-newspaper-o:before { - content: "\f1ea"; -} -.fa-wifi:before { - content: "\f1eb"; -} -.fa-calculator:before { - content: "\f1ec"; -} -.fa-paypal:before { - content: "\f1ed"; -} -.fa-google-wallet:before { - content: "\f1ee"; -} -.fa-cc-visa:before { - content: "\f1f0"; -} -.fa-cc-mastercard:before { - content: "\f1f1"; -} -.fa-cc-discover:before { - content: "\f1f2"; -} -.fa-cc-amex:before { - content: "\f1f3"; -} -.fa-cc-paypal:before { - content: "\f1f4"; -} -.fa-cc-stripe:before { - content: "\f1f5"; -} -.fa-bell-slash:before { - content: "\f1f6"; -} -.fa-bell-slash-o:before { - content: "\f1f7"; -} -.fa-trash:before { - content: "\f1f8"; -} -.fa-copyright:before { - content: "\f1f9"; -} -.fa-at:before { - content: "\f1fa"; -} -.fa-eyedropper:before { - content: "\f1fb"; -} -.fa-paint-brush:before { - content: "\f1fc"; -} -.fa-birthday-cake:before { - content: "\f1fd"; -} -.fa-area-chart:before { - content: "\f1fe"; -} -.fa-pie-chart:before { - content: "\f200"; -} -.fa-line-chart:before { - content: "\f201"; -} -.fa-lastfm:before { - content: "\f202"; -} -.fa-lastfm-square:before { - content: "\f203"; -} -.fa-toggle-off:before { - content: "\f204"; -} -.fa-toggle-on:before { - content: "\f205"; -} -.fa-bicycle:before { - content: "\f206"; -} -.fa-bus:before { - content: "\f207"; -} -.fa-ioxhost:before { - content: "\f208"; -} -.fa-angellist:before { - content: "\f209"; -} -.fa-cc:before { - content: "\f20a"; -} -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "\f20b"; -} -.fa-meanpath:before { - content: "\f20c"; -} -.fa-buysellads:before { - content: "\f20d"; -} -.fa-connectdevelop:before { - content: "\f20e"; -} -.fa-dashcube:before { - content: "\f210"; -} -.fa-forumbee:before { - content: "\f211"; -} -.fa-leanpub:before { - content: "\f212"; -} -.fa-sellsy:before { - content: "\f213"; -} -.fa-shirtsinbulk:before { - content: "\f214"; -} -.fa-simplybuilt:before { - content: "\f215"; -} -.fa-skyatlas:before { - content: "\f216"; -} -.fa-cart-plus:before { - content: "\f217"; -} -.fa-cart-arrow-down:before { - content: "\f218"; -} -.fa-diamond:before { - content: "\f219"; -} -.fa-ship:before { - content: "\f21a"; -} -.fa-user-secret:before { - content: "\f21b"; -} -.fa-motorcycle:before { - content: "\f21c"; -} -.fa-street-view:before { - content: "\f21d"; -} -.fa-heartbeat:before { - content: "\f21e"; -} -.fa-venus:before { - content: "\f221"; -} -.fa-mars:before { - content: "\f222"; -} -.fa-mercury:before { - content: "\f223"; -} -.fa-intersex:before, -.fa-transgender:before { - content: "\f224"; -} -.fa-transgender-alt:before { - content: "\f225"; -} -.fa-venus-double:before { - content: "\f226"; -} -.fa-mars-double:before { - content: "\f227"; -} -.fa-venus-mars:before { - content: "\f228"; -} -.fa-mars-stroke:before { - content: "\f229"; -} -.fa-mars-stroke-v:before { - content: "\f22a"; -} -.fa-mars-stroke-h:before { - content: "\f22b"; -} -.fa-neuter:before { - content: "\f22c"; -} -.fa-genderless:before { - content: "\f22d"; -} -.fa-facebook-official:before { - content: "\f230"; -} -.fa-pinterest-p:before { - content: "\f231"; -} -.fa-whatsapp:before { - content: "\f232"; -} -.fa-server:before { - content: "\f233"; -} -.fa-user-plus:before { - content: "\f234"; -} -.fa-user-times:before { - content: "\f235"; -} -.fa-hotel:before, -.fa-bed:before { - content: "\f236"; -} -.fa-viacoin:before { - content: "\f237"; -} -.fa-train:before { - content: "\f238"; -} -.fa-subway:before { - content: "\f239"; -} -.fa-medium:before { - content: "\f23a"; -} -.fa-yc:before, -.fa-y-combinator:before { - content: "\f23b"; -} -.fa-optin-monster:before { - content: "\f23c"; -} -.fa-opencart:before { - content: "\f23d"; -} -.fa-expeditedssl:before { - content: "\f23e"; -} -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: "\f240"; -} -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: "\f241"; -} -.fa-battery-2:before, -.fa-battery-half:before { - content: "\f242"; -} -.fa-battery-1:before, -.fa-battery-quarter:before { - content: "\f243"; -} -.fa-battery-0:before, -.fa-battery-empty:before { - content: "\f244"; -} -.fa-mouse-pointer:before { - content: "\f245"; -} -.fa-i-cursor:before { - content: "\f246"; -} -.fa-object-group:before { - content: "\f247"; -} -.fa-object-ungroup:before { - content: "\f248"; -} -.fa-sticky-note:before { - content: "\f249"; -} -.fa-sticky-note-o:before { - content: "\f24a"; -} -.fa-cc-jcb:before { - content: "\f24b"; -} -.fa-cc-diners-club:before { - content: "\f24c"; -} -.fa-clone:before { - content: "\f24d"; -} -.fa-balance-scale:before { - content: "\f24e"; -} -.fa-hourglass-o:before { - content: "\f250"; -} -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: "\f251"; -} -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: "\f252"; -} -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: "\f253"; -} -.fa-hourglass:before { - content: "\f254"; -} -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: "\f255"; -} -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: "\f256"; -} -.fa-hand-scissors-o:before { - content: "\f257"; -} -.fa-hand-lizard-o:before { - content: "\f258"; -} -.fa-hand-spock-o:before { - content: "\f259"; -} -.fa-hand-pointer-o:before { - content: "\f25a"; -} -.fa-hand-peace-o:before { - content: "\f25b"; -} -.fa-trademark:before { - content: "\f25c"; -} -.fa-registered:before { - content: "\f25d"; -} -.fa-creative-commons:before { - content: "\f25e"; -} -.fa-gg:before { - content: "\f260"; -} -.fa-gg-circle:before { - content: "\f261"; -} -.fa-tripadvisor:before { - content: "\f262"; -} -.fa-odnoklassniki:before { - content: "\f263"; -} -.fa-odnoklassniki-square:before { - content: "\f264"; -} -.fa-get-pocket:before { - content: "\f265"; -} -.fa-wikipedia-w:before { - content: "\f266"; -} -.fa-safari:before { - content: "\f267"; -} -.fa-chrome:before { - content: "\f268"; -} -.fa-firefox:before { - content: "\f269"; -} -.fa-opera:before { - content: "\f26a"; -} -.fa-internet-explorer:before { - content: "\f26b"; -} -.fa-tv:before, -.fa-television:before { - content: "\f26c"; -} -.fa-contao:before { - content: "\f26d"; -} -.fa-500px:before { - content: "\f26e"; -} -.fa-amazon:before { - content: "\f270"; -} -.fa-calendar-plus-o:before { - content: "\f271"; -} -.fa-calendar-minus-o:before { - content: "\f272"; -} -.fa-calendar-times-o:before { - content: "\f273"; -} -.fa-calendar-check-o:before { - content: "\f274"; -} -.fa-industry:before { - content: "\f275"; -} -.fa-map-pin:before { - content: "\f276"; -} -.fa-map-signs:before { - content: "\f277"; -} -.fa-map-o:before { - content: "\f278"; -} -.fa-map:before { - content: "\f279"; -} -.fa-commenting:before { - content: "\f27a"; -} -.fa-commenting-o:before { - content: "\f27b"; -} -.fa-houzz:before { - content: "\f27c"; -} -.fa-vimeo:before { - content: "\f27d"; -} -.fa-black-tie:before { - content: "\f27e"; -} -.fa-fonticons:before { - content: "\f280"; -} -.fa-reddit-alien:before { - content: "\f281"; -} -.fa-edge:before { - content: "\f282"; -} -.fa-credit-card-alt:before { - content: "\f283"; -} -.fa-codiepie:before { - content: "\f284"; -} -.fa-modx:before { - content: "\f285"; -} -.fa-fort-awesome:before { - content: "\f286"; -} -.fa-usb:before { - content: "\f287"; -} -.fa-product-hunt:before { - content: "\f288"; -} -.fa-mixcloud:before { - content: "\f289"; -} -.fa-scribd:before { - content: "\f28a"; -} -.fa-pause-circle:before { - content: "\f28b"; -} -.fa-pause-circle-o:before { - content: "\f28c"; -} -.fa-stop-circle:before { - content: "\f28d"; -} -.fa-stop-circle-o:before { - content: "\f28e"; -} -.fa-shopping-bag:before { - content: "\f290"; -} -.fa-shopping-basket:before { - content: "\f291"; -} -.fa-hashtag:before { - content: "\f292"; -} -.fa-bluetooth:before { - content: "\f293"; -} -.fa-bluetooth-b:before { - content: "\f294"; -} -.fa-percent:before { - content: "\f295"; -} -.fa-gitlab:before { - content: "\f296"; -} -.fa-wpbeginner:before { - content: "\f297"; -} -.fa-wpforms:before { - content: "\f298"; -} -.fa-envira:before { - content: "\f299"; -} -.fa-universal-access:before { - content: "\f29a"; -} -.fa-wheelchair-alt:before { - content: "\f29b"; -} -.fa-question-circle-o:before { - content: "\f29c"; -} -.fa-blind:before { - content: "\f29d"; -} -.fa-audio-description:before { - content: "\f29e"; -} -.fa-volume-control-phone:before { - content: "\f2a0"; -} -.fa-braille:before { - content: "\f2a1"; -} -.fa-assistive-listening-systems:before { - content: "\f2a2"; -} -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: "\f2a3"; -} -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: "\f2a4"; -} -.fa-glide:before { - content: "\f2a5"; -} -.fa-glide-g:before { - content: "\f2a6"; -} -.fa-signing:before, -.fa-sign-language:before { - content: "\f2a7"; -} -.fa-low-vision:before { - content: "\f2a8"; -} -.fa-viadeo:before { - content: "\f2a9"; -} -.fa-viadeo-square:before { - content: "\f2aa"; -} -.fa-snapchat:before { - content: "\f2ab"; -} -.fa-snapchat-ghost:before { - content: "\f2ac"; -} -.fa-snapchat-square:before { - content: "\f2ad"; -} -.fa-pied-piper:before { - content: "\f2ae"; -} -.fa-first-order:before { - content: "\f2b0"; -} -.fa-yoast:before { - content: "\f2b1"; -} -.fa-themeisle:before { - content: "\f2b2"; -} -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: "\f2b3"; -} -.fa-fa:before, -.fa-font-awesome:before { - content: "\f2b4"; -} -.fa-handshake-o:before { - content: "\f2b5"; -} -.fa-envelope-open:before { - content: "\f2b6"; -} -.fa-envelope-open-o:before { - content: "\f2b7"; -} -.fa-linode:before { - content: "\f2b8"; -} -.fa-address-book:before { - content: "\f2b9"; -} -.fa-address-book-o:before { - content: "\f2ba"; -} -.fa-vcard:before, -.fa-address-card:before { - content: "\f2bb"; -} -.fa-vcard-o:before, -.fa-address-card-o:before { - content: "\f2bc"; -} -.fa-user-circle:before { - content: "\f2bd"; -} -.fa-user-circle-o:before { - content: "\f2be"; -} -.fa-user-o:before { - content: "\f2c0"; -} -.fa-id-badge:before { - content: "\f2c1"; -} -.fa-drivers-license:before, -.fa-id-card:before { - content: "\f2c2"; -} -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: "\f2c3"; -} -.fa-quora:before { - content: "\f2c4"; -} -.fa-free-code-camp:before { - content: "\f2c5"; -} -.fa-telegram:before { - content: "\f2c6"; -} -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: "\f2c7"; -} -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: "\f2c8"; -} -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: "\f2c9"; -} -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: "\f2ca"; -} -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: "\f2cb"; -} -.fa-shower:before { - content: "\f2cc"; -} -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: "\f2cd"; -} -.fa-podcast:before { - content: "\f2ce"; -} -.fa-window-maximize:before { - content: "\f2d0"; -} -.fa-window-minimize:before { - content: "\f2d1"; -} -.fa-window-restore:before { - content: "\f2d2"; -} -.fa-times-rectangle:before, -.fa-window-close:before { - content: "\f2d3"; -} -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: "\f2d4"; -} -.fa-bandcamp:before { - content: "\f2d5"; -} -.fa-grav:before { - content: "\f2d6"; -} -.fa-etsy:before { - content: "\f2d7"; -} -.fa-imdb:before { - content: "\f2d8"; -} -.fa-ravelry:before { - content: "\f2d9"; -} -.fa-eercast:before { - content: "\f2da"; -} -.fa-microchip:before { - content: "\f2db"; -} -.fa-snowflake-o:before { - content: "\f2dc"; -} -.fa-superpowers:before { - content: "\f2dd"; -} -.fa-wpexplorer:before { - content: "\f2de"; -} -.fa-meetup:before { - content: "\f2e0"; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -/*! -* -* IPython base -* -*/ -.modal.fade .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -code { - color: #000; -} -pre { - font-size: inherit; - line-height: inherit; -} -label { - font-weight: normal; -} -/* Make the page background atleast 100% the height of the view port */ -/* Make the page itself atleast 70% the height of the view port */ -.border-box-sizing { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; -} -.corner-all { - border-radius: 2px; -} -.no-padding { - padding: 0px; -} -/* Flexible box model classes */ -/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */ -/* This file is a compatability layer. It allows the usage of flexible box -model layouts accross multiple browsers, including older browsers. The newest, -universal implementation of the flexible box model is used when available (see -`Modern browsers` comments below). Browsers that are known to implement this -new spec completely include: - - Firefox 28.0+ - Chrome 29.0+ - Internet Explorer 11+ - Opera 17.0+ - -Browsers not listed, including Safari, are supported via the styling under the -`Old browsers` comments below. -*/ -.hbox { - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: horizontal; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: horizontal; - -moz-box-align: stretch; - display: box; - box-orient: horizontal; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: row; - align-items: stretch; -} -.hbox > * { - /* Old browsers */ - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - /* Modern browsers */ - flex: none; -} -.vbox { - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: vertical; - -moz-box-align: stretch; - display: box; - box-orient: vertical; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: column; - align-items: stretch; -} -.vbox > * { - /* Old browsers */ - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - /* Modern browsers */ - flex: none; -} -.hbox.reverse, -.vbox.reverse, -.reverse { - /* Old browsers */ - -webkit-box-direction: reverse; - -moz-box-direction: reverse; - box-direction: reverse; - /* Modern browsers */ - flex-direction: row-reverse; -} -.hbox.box-flex0, -.vbox.box-flex0, -.box-flex0 { - /* Old browsers */ - -webkit-box-flex: 0; - -moz-box-flex: 0; - box-flex: 0; - /* Modern browsers */ - flex: none; - width: auto; -} -.hbox.box-flex1, -.vbox.box-flex1, -.box-flex1 { - /* Old browsers */ - -webkit-box-flex: 1; - -moz-box-flex: 1; - box-flex: 1; - /* Modern browsers */ - flex: 1; -} -.hbox.box-flex, -.vbox.box-flex, -.box-flex { - /* Old browsers */ - /* Old browsers */ - -webkit-box-flex: 1; - -moz-box-flex: 1; - box-flex: 1; - /* Modern browsers */ - flex: 1; -} -.hbox.box-flex2, -.vbox.box-flex2, -.box-flex2 { - /* Old browsers */ - -webkit-box-flex: 2; - -moz-box-flex: 2; - box-flex: 2; - /* Modern browsers */ - flex: 2; -} -.box-group1 { - /* Deprecated */ - -webkit-box-flex-group: 1; - -moz-box-flex-group: 1; - box-flex-group: 1; -} -.box-group2 { - /* Deprecated */ - -webkit-box-flex-group: 2; - -moz-box-flex-group: 2; - box-flex-group: 2; -} -.hbox.start, -.vbox.start, -.start { - /* Old browsers */ - -webkit-box-pack: start; - -moz-box-pack: start; - box-pack: start; - /* Modern browsers */ - justify-content: flex-start; -} -.hbox.end, -.vbox.end, -.end { - /* Old browsers */ - -webkit-box-pack: end; - -moz-box-pack: end; - box-pack: end; - /* Modern browsers */ - justify-content: flex-end; -} -.hbox.center, -.vbox.center, -.center { - /* Old browsers */ - -webkit-box-pack: center; - -moz-box-pack: center; - box-pack: center; - /* Modern browsers */ - justify-content: center; -} -.hbox.baseline, -.vbox.baseline, -.baseline { - /* Old browsers */ - -webkit-box-pack: baseline; - -moz-box-pack: baseline; - box-pack: baseline; - /* Modern browsers */ - justify-content: baseline; -} -.hbox.stretch, -.vbox.stretch, -.stretch { - /* Old browsers */ - -webkit-box-pack: stretch; - -moz-box-pack: stretch; - box-pack: stretch; - /* Modern browsers */ - justify-content: stretch; -} -.hbox.align-start, -.vbox.align-start, -.align-start { - /* Old browsers */ - -webkit-box-align: start; - -moz-box-align: start; - box-align: start; - /* Modern browsers */ - align-items: flex-start; -} -.hbox.align-end, -.vbox.align-end, -.align-end { - /* Old browsers */ - -webkit-box-align: end; - -moz-box-align: end; - box-align: end; - /* Modern browsers */ - align-items: flex-end; -} -.hbox.align-center, -.vbox.align-center, -.align-center { - /* Old browsers */ - -webkit-box-align: center; - -moz-box-align: center; - box-align: center; - /* Modern browsers */ - align-items: center; -} -.hbox.align-baseline, -.vbox.align-baseline, -.align-baseline { - /* Old browsers */ - -webkit-box-align: baseline; - -moz-box-align: baseline; - box-align: baseline; - /* Modern browsers */ - align-items: baseline; -} -.hbox.align-stretch, -.vbox.align-stretch, -.align-stretch { - /* Old browsers */ - -webkit-box-align: stretch; - -moz-box-align: stretch; - box-align: stretch; - /* Modern browsers */ - align-items: stretch; -} -div.error { - margin: 2em; - text-align: center; -} -div.error > h1 { - font-size: 500%; - line-height: normal; -} -div.error > p { - font-size: 200%; - line-height: normal; -} -div.traceback-wrapper { - text-align: left; - max-width: 800px; - margin: auto; -} -div.traceback-wrapper pre.traceback { - max-height: 600px; - overflow: auto; -} -/** - * Primary styles - * - * Author: Jupyter Development Team - */ -body { - background-color: #fff; - /* This makes sure that the body covers the entire window and needs to - be in a different element than the display: box in wrapper below */ - position: absolute; - left: 0px; - right: 0px; - top: 0px; - bottom: 0px; - overflow: visible; -} -body > #header { - /* Initially hidden to prevent FLOUC */ - display: none; - background-color: #fff; - /* Display over codemirror */ - position: relative; - z-index: 100; -} -body > #header #header-container { - display: flex; - flex-direction: row; - justify-content: space-between; - padding: 5px; - padding-bottom: 5px; - padding-top: 5px; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; -} -body > #header .header-bar { - width: 100%; - height: 1px; - background: #e7e7e7; - margin-bottom: -1px; -} -@media print { - body > #header { - display: none !important; - } -} -#header-spacer { - width: 100%; - visibility: hidden; -} -@media print { - #header-spacer { - display: none; - } -} -#ipython_notebook { - padding-left: 0px; - padding-top: 1px; - padding-bottom: 1px; -} -[dir="rtl"] #ipython_notebook { - margin-right: 10px; - margin-left: 0; -} -[dir="rtl"] #ipython_notebook.pull-left { - float: right !important; - float: right; -} -.flex-spacer { - flex: 1; -} -#noscript { - width: auto; - padding-top: 16px; - padding-bottom: 16px; - text-align: center; - font-size: 22px; - color: red; - font-weight: bold; -} -#ipython_notebook img { - height: 28px; -} -#site { - width: 100%; - display: none; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - overflow: auto; -} -@media print { - #site { - height: auto !important; - } -} -/* Smaller buttons */ -.ui-button .ui-button-text { - padding: 0.2em 0.8em; - font-size: 77%; -} -input.ui-button { - padding: 0.3em 0.9em; -} -span#kernel_logo_widget { - margin: 0 10px; -} -span#login_widget { - float: right; -} -[dir="rtl"] span#login_widget { - float: left; -} -span#login_widget > .button, -#logout { - color: #333; - background-color: #fff; - border-color: #ccc; -} -span#login_widget > .button:focus, -#logout:focus, -span#login_widget > .button.focus, -#logout.focus { - color: #333; - background-color: #e6e6e6; - border-color: #8c8c8c; -} -span#login_widget > .button:hover, -#logout:hover { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -span#login_widget > .button:active, -#logout:active, -span#login_widget > .button.active, -#logout.active, -.open > .dropdown-togglespan#login_widget > .button, -.open > .dropdown-toggle#logout { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -span#login_widget > .button:active:hover, -#logout:active:hover, -span#login_widget > .button.active:hover, -#logout.active:hover, -.open > .dropdown-togglespan#login_widget > .button:hover, -.open > .dropdown-toggle#logout:hover, -span#login_widget > .button:active:focus, -#logout:active:focus, -span#login_widget > .button.active:focus, -#logout.active:focus, -.open > .dropdown-togglespan#login_widget > .button:focus, -.open > .dropdown-toggle#logout:focus, -span#login_widget > .button:active.focus, -#logout:active.focus, -span#login_widget > .button.active.focus, -#logout.active.focus, -.open > .dropdown-togglespan#login_widget > .button.focus, -.open > .dropdown-toggle#logout.focus { - color: #333; - background-color: #d4d4d4; - border-color: #8c8c8c; -} -span#login_widget > .button:active, -#logout:active, -span#login_widget > .button.active, -#logout.active, -.open > .dropdown-togglespan#login_widget > .button, -.open > .dropdown-toggle#logout { - background-image: none; -} -span#login_widget > .button.disabled:hover, -#logout.disabled:hover, -span#login_widget > .button[disabled]:hover, -#logout[disabled]:hover, -fieldset[disabled] span#login_widget > .button:hover, -fieldset[disabled] #logout:hover, -span#login_widget > .button.disabled:focus, -#logout.disabled:focus, -span#login_widget > .button[disabled]:focus, -#logout[disabled]:focus, -fieldset[disabled] span#login_widget > .button:focus, -fieldset[disabled] #logout:focus, -span#login_widget > .button.disabled.focus, -#logout.disabled.focus, -span#login_widget > .button[disabled].focus, -#logout[disabled].focus, -fieldset[disabled] span#login_widget > .button.focus, -fieldset[disabled] #logout.focus { - background-color: #fff; - border-color: #ccc; -} -span#login_widget > .button .badge, -#logout .badge { - color: #fff; - background-color: #333; -} -.nav-header { - text-transform: none; -} -#header > span { - margin-top: 10px; -} -.modal_stretch .modal-dialog { - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: vertical; - -moz-box-align: stretch; - display: box; - box-orient: vertical; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: column; - align-items: stretch; - min-height: 80vh; -} -.modal_stretch .modal-dialog .modal-body { - max-height: calc(100vh - 200px); - overflow: auto; - flex: 1; -} -.modal-header { - cursor: move; -} -@media (min-width: 768px) { - .modal .modal-dialog { - width: 700px; - } -} -@media (min-width: 768px) { - select.form-control { - margin-left: 12px; - margin-right: 12px; - } -} -/*! -* -* IPython auth -* -*/ -.center-nav { - display: inline-block; - margin-bottom: -4px; -} -[dir="rtl"] .center-nav form.pull-left { - float: right !important; - float: right; -} -[dir="rtl"] .center-nav .navbar-text { - float: right; -} -[dir="rtl"] .navbar-inner { - text-align: right; -} -[dir="rtl"] div.text-left { - text-align: right; -} -/*! -* -* IPython tree view -* -*/ -/* We need an invisible input field on top of the sentense*/ -/* "Drag file onto the list ..." */ -.alternate_upload { - background-color: none; - display: inline; -} -.alternate_upload.form { - padding: 0; - margin: 0; -} -.alternate_upload input.fileinput { - position: absolute; - display: block; - width: 100%; - height: 100%; - overflow: hidden; - cursor: pointer; - opacity: 0; - z-index: 2; -} -.alternate_upload .btn-xs > input.fileinput { - margin: -1px -5px; -} -.alternate_upload .btn-upload { - position: relative; - height: 22px; -} -::-webkit-file-upload-button { - cursor: pointer; -} -/** - * Primary styles - * - * Author: Jupyter Development Team - */ -ul#tabs { - margin-bottom: 4px; -} -ul#tabs a { - padding-top: 6px; - padding-bottom: 4px; -} -[dir="rtl"] ul#tabs.nav-tabs > li { - float: right; -} -[dir="rtl"] ul#tabs.nav.nav-tabs { - padding-right: 0; -} -ul.breadcrumb a:focus, -ul.breadcrumb a:hover { - text-decoration: none; -} -ul.breadcrumb i.icon-home { - font-size: 16px; - margin-right: 4px; -} -ul.breadcrumb span { - color: #5e5e5e; -} -.list_toolbar { - padding: 4px 0 4px 0; - vertical-align: middle; -} -.list_toolbar .tree-buttons { - padding-top: 1px; -} -[dir="rtl"] .list_toolbar .tree-buttons .pull-right { - float: left !important; - float: left; -} -[dir="rtl"] .list_toolbar .col-sm-4, -[dir="rtl"] .list_toolbar .col-sm-8 { - float: right; -} -.dynamic-buttons { - padding-top: 3px; - display: inline-block; -} -.list_toolbar [class*="span"] { - min-height: 24px; -} -.list_header { - font-weight: bold; - background-color: #EEE; -} -.list_placeholder { - font-weight: bold; - padding-top: 4px; - padding-bottom: 4px; - padding-left: 7px; - padding-right: 7px; -} -.list_container { - margin-top: 4px; - margin-bottom: 20px; - border: 1px solid #ddd; - border-radius: 2px; -} -.list_container > div { - border-bottom: 1px solid #ddd; -} -.list_container > div:hover .list-item { - background-color: red; -} -.list_container > div:last-child { - border: none; -} -.list_item:hover .list_item { - background-color: #ddd; -} -.list_item a { - text-decoration: none; -} -.list_item:hover { - background-color: #fafafa; -} -.list_header > div, -.list_item > div { - padding-top: 4px; - padding-bottom: 4px; - padding-left: 7px; - padding-right: 7px; - line-height: 22px; -} -.list_header > div input, -.list_item > div input { - margin-right: 7px; - margin-left: 14px; - vertical-align: text-bottom; - line-height: 22px; - position: relative; - top: -1px; -} -.list_header > div .item_link, -.list_item > div .item_link { - margin-left: -1px; - vertical-align: baseline; - line-height: 22px; -} -[dir="rtl"] .list_item > div input { - margin-right: 0; -} -.new-file input[type=checkbox] { - visibility: hidden; -} -.item_name { - line-height: 22px; - height: 24px; -} -.item_icon { - font-size: 14px; - color: #5e5e5e; - margin-right: 7px; - margin-left: 7px; - line-height: 22px; - vertical-align: baseline; -} -.item_modified { - margin-right: 7px; - margin-left: 7px; -} -[dir="rtl"] .item_modified.pull-right { - float: left !important; - float: left; -} -.item_buttons { - line-height: 1em; - margin-left: -5px; -} -.item_buttons .btn, -.item_buttons .btn-group, -.item_buttons .input-group { - float: left; -} -.item_buttons > .btn, -.item_buttons > .btn-group, -.item_buttons > .input-group { - margin-left: 5px; -} -.item_buttons .btn { - min-width: 13ex; -} -.item_buttons .running-indicator { - padding-top: 4px; - color: #5cb85c; -} -.item_buttons .kernel-name { - padding-top: 4px; - color: #5bc0de; - margin-right: 7px; - float: left; -} -[dir="rtl"] .item_buttons.pull-right { - float: left !important; - float: left; -} -[dir="rtl"] .item_buttons .kernel-name { - margin-left: 7px; - float: right; -} -.toolbar_info { - height: 24px; - line-height: 24px; -} -.list_item input:not([type=checkbox]) { - padding-top: 3px; - padding-bottom: 3px; - height: 22px; - line-height: 14px; - margin: 0px; -} -.highlight_text { - color: blue; -} -#project_name { - display: inline-block; - padding-left: 7px; - margin-left: -2px; -} -#project_name > .breadcrumb { - padding: 0px; - margin-bottom: 0px; - background-color: transparent; - font-weight: bold; -} -.sort_button { - display: inline-block; - padding-left: 7px; -} -[dir="rtl"] .sort_button.pull-right { - float: left !important; - float: left; -} -#tree-selector { - padding-right: 0px; -} -#button-select-all { - min-width: 50px; -} -[dir="rtl"] #button-select-all.btn { - float: right ; -} -#select-all { - margin-left: 7px; - margin-right: 2px; - margin-top: 2px; - height: 16px; -} -[dir="rtl"] #select-all.pull-left { - float: right !important; - float: right; -} -.menu_icon { - margin-right: 2px; -} -.tab-content .row { - margin-left: 0px; - margin-right: 0px; -} -.folder_icon:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f114"; -} -.folder_icon:before.fa-pull-left { - margin-right: .3em; -} -.folder_icon:before.fa-pull-right { - margin-left: .3em; -} -.folder_icon:before.pull-left { - margin-right: .3em; -} -.folder_icon:before.pull-right { - margin-left: .3em; -} -.notebook_icon:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f02d"; - position: relative; - top: -1px; -} -.notebook_icon:before.fa-pull-left { - margin-right: .3em; -} -.notebook_icon:before.fa-pull-right { - margin-left: .3em; -} -.notebook_icon:before.pull-left { - margin-right: .3em; -} -.notebook_icon:before.pull-right { - margin-left: .3em; -} -.running_notebook_icon:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f02d"; - position: relative; - top: -1px; - color: #5cb85c; -} -.running_notebook_icon:before.fa-pull-left { - margin-right: .3em; -} -.running_notebook_icon:before.fa-pull-right { - margin-left: .3em; -} -.running_notebook_icon:before.pull-left { - margin-right: .3em; -} -.running_notebook_icon:before.pull-right { - margin-left: .3em; -} -.file_icon:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f016"; - position: relative; - top: -2px; -} -.file_icon:before.fa-pull-left { - margin-right: .3em; -} -.file_icon:before.fa-pull-right { - margin-left: .3em; -} -.file_icon:before.pull-left { - margin-right: .3em; -} -.file_icon:before.pull-right { - margin-left: .3em; -} -#notebook_toolbar .pull-right { - padding-top: 0px; - margin-right: -1px; -} -ul#new-menu { - left: auto; - right: 0; -} -#new-menu .dropdown-header { - font-size: 10px; - border-bottom: 1px solid #e5e5e5; - padding: 0 0 3px; - margin: -3px 20px 0; -} -.kernel-menu-icon { - padding-right: 12px; - width: 24px; - content: "\f096"; -} -.kernel-menu-icon:before { - content: "\f096"; -} -.kernel-menu-icon-current:before { - content: "\f00c"; -} -#tab_content { - padding-top: 20px; -} -#running .panel-group .panel { - margin-top: 3px; - margin-bottom: 1em; -} -#running .panel-group .panel .panel-heading { - background-color: #EEE; - padding-top: 4px; - padding-bottom: 4px; - padding-left: 7px; - padding-right: 7px; - line-height: 22px; -} -#running .panel-group .panel .panel-heading a:focus, -#running .panel-group .panel .panel-heading a:hover { - text-decoration: none; -} -#running .panel-group .panel .panel-body { - padding: 0px; -} -#running .panel-group .panel .panel-body .list_container { - margin-top: 0px; - margin-bottom: 0px; - border: 0px; - border-radius: 0px; -} -#running .panel-group .panel .panel-body .list_container .list_item { - border-bottom: 1px solid #ddd; -} -#running .panel-group .panel .panel-body .list_container .list_item:last-child { - border-bottom: 0px; -} -.delete-button { - display: none; -} -.duplicate-button { - display: none; -} -.rename-button { - display: none; -} -.move-button { - display: none; -} -.download-button { - display: none; -} -.shutdown-button { - display: none; -} -.dynamic-instructions { - display: inline-block; - padding-top: 4px; -} -/*! -* -* IPython text editor webapp -* -*/ -.selected-keymap i.fa { - padding: 0px 5px; -} -.selected-keymap i.fa:before { - content: "\f00c"; -} -#mode-menu { - overflow: auto; - max-height: 20em; -} -.edit_app #header { - -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); - box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); -} -.edit_app #menubar .navbar { - /* Use a negative 1 bottom margin, so the border overlaps the border of the - header */ - margin-bottom: -1px; -} -.dirty-indicator { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - width: 20px; -} -.dirty-indicator.fa-pull-left { - margin-right: .3em; -} -.dirty-indicator.fa-pull-right { - margin-left: .3em; -} -.dirty-indicator.pull-left { - margin-right: .3em; -} -.dirty-indicator.pull-right { - margin-left: .3em; -} -.dirty-indicator-dirty { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - width: 20px; -} -.dirty-indicator-dirty.fa-pull-left { - margin-right: .3em; -} -.dirty-indicator-dirty.fa-pull-right { - margin-left: .3em; -} -.dirty-indicator-dirty.pull-left { - margin-right: .3em; -} -.dirty-indicator-dirty.pull-right { - margin-left: .3em; -} -.dirty-indicator-clean { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - width: 20px; -} -.dirty-indicator-clean.fa-pull-left { - margin-right: .3em; -} -.dirty-indicator-clean.fa-pull-right { - margin-left: .3em; -} -.dirty-indicator-clean.pull-left { - margin-right: .3em; -} -.dirty-indicator-clean.pull-right { - margin-left: .3em; -} -.dirty-indicator-clean:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f00c"; -} -.dirty-indicator-clean:before.fa-pull-left { - margin-right: .3em; -} -.dirty-indicator-clean:before.fa-pull-right { - margin-left: .3em; -} -.dirty-indicator-clean:before.pull-left { - margin-right: .3em; -} -.dirty-indicator-clean:before.pull-right { - margin-left: .3em; -} -#filename { - font-size: 16pt; - display: table; - padding: 0px 5px; -} -#current-mode { - padding-left: 5px; - padding-right: 5px; -} -#texteditor-backdrop { - padding-top: 20px; - padding-bottom: 20px; -} -@media not print { - #texteditor-backdrop { - background-color: #EEE; - } -} -@media print { - #texteditor-backdrop #texteditor-container .CodeMirror-gutter, - #texteditor-backdrop #texteditor-container .CodeMirror-gutters { - background-color: #fff; - } -} -@media not print { - #texteditor-backdrop #texteditor-container .CodeMirror-gutter, - #texteditor-backdrop #texteditor-container .CodeMirror-gutters { - background-color: #fff; - } -} -@media not print { - #texteditor-backdrop #texteditor-container { - padding: 0px; - background-color: #fff; - -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); - box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); - } -} -.CodeMirror-dialog { - background-color: #fff; -} -/*! -* -* IPython notebook -* -*/ -/* CSS font colors for translated ANSI escape sequences */ -/* The color values are a mix of - http://www.xcolors.net/dl/baskerville-ivorylight and - http://www.xcolors.net/dl/euphrasia */ -.ansi-black-fg { - color: #3E424D; -} -.ansi-black-bg { - background-color: #3E424D; -} -.ansi-black-intense-fg { - color: #282C36; -} -.ansi-black-intense-bg { - background-color: #282C36; -} -.ansi-red-fg { - color: #E75C58; -} -.ansi-red-bg { - background-color: #E75C58; -} -.ansi-red-intense-fg { - color: #B22B31; -} -.ansi-red-intense-bg { - background-color: #B22B31; -} -.ansi-green-fg { - color: #00A250; -} -.ansi-green-bg { - background-color: #00A250; -} -.ansi-green-intense-fg { - color: #007427; -} -.ansi-green-intense-bg { - background-color: #007427; -} -.ansi-yellow-fg { - color: #DDB62B; -} -.ansi-yellow-bg { - background-color: #DDB62B; -} -.ansi-yellow-intense-fg { - color: #B27D12; -} -.ansi-yellow-intense-bg { - background-color: #B27D12; -} -.ansi-blue-fg { - color: #208FFB; -} -.ansi-blue-bg { - background-color: #208FFB; -} -.ansi-blue-intense-fg { - color: #0065CA; -} -.ansi-blue-intense-bg { - background-color: #0065CA; -} -.ansi-magenta-fg { - color: #D160C4; -} -.ansi-magenta-bg { - background-color: #D160C4; -} -.ansi-magenta-intense-fg { - color: #A03196; -} -.ansi-magenta-intense-bg { - background-color: #A03196; -} -.ansi-cyan-fg { - color: #60C6C8; -} -.ansi-cyan-bg { - background-color: #60C6C8; -} -.ansi-cyan-intense-fg { - color: #258F8F; -} -.ansi-cyan-intense-bg { - background-color: #258F8F; -} -.ansi-white-fg { - color: #C5C1B4; -} -.ansi-white-bg { - background-color: #C5C1B4; -} -.ansi-white-intense-fg { - color: #A1A6B2; -} -.ansi-white-intense-bg { - background-color: #A1A6B2; -} -.ansi-default-inverse-fg { - color: #FFFFFF; -} -.ansi-default-inverse-bg { - background-color: #000000; -} -.ansi-bold { - font-weight: bold; -} -.ansi-underline { - text-decoration: underline; -} -/* The following styles are deprecated an will be removed in a future version */ -.ansibold { - font-weight: bold; -} -.ansi-inverse { - outline: 0.5px dotted; -} -/* use dark versions for foreground, to improve visibility */ -.ansiblack { - color: black; -} -.ansired { - color: darkred; -} -.ansigreen { - color: darkgreen; -} -.ansiyellow { - color: #c4a000; -} -.ansiblue { - color: darkblue; -} -.ansipurple { - color: darkviolet; -} -.ansicyan { - color: steelblue; -} -.ansigray { - color: gray; -} -/* and light for background, for the same reason */ -.ansibgblack { - background-color: black; -} -.ansibgred { - background-color: red; -} -.ansibggreen { - background-color: green; -} -.ansibgyellow { - background-color: yellow; -} -.ansibgblue { - background-color: blue; -} -.ansibgpurple { - background-color: magenta; -} -.ansibgcyan { - background-color: cyan; -} -.ansibggray { - background-color: gray; -} -div.cell { - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: vertical; - -moz-box-align: stretch; - display: box; - box-orient: vertical; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: column; - align-items: stretch; - border-radius: 2px; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - border-width: 1px; - border-style: solid; - border-color: transparent; - width: 100%; - padding: 5px; - /* This acts as a spacer between cells, that is outside the border */ - margin: 0px; - outline: none; - position: relative; - overflow: visible; -} -div.cell:before { - position: absolute; - display: block; - top: -1px; - left: -1px; - width: 5px; - height: calc(100% + 2px); - content: ''; - background: transparent; -} -div.cell.jupyter-soft-selected { - border-left-color: #E3F2FD; - border-left-width: 1px; - padding-left: 5px; - border-right-color: #E3F2FD; - border-right-width: 1px; - background: #E3F2FD; -} -@media print { - div.cell.jupyter-soft-selected { - border-color: transparent; - } -} -div.cell.selected, -div.cell.selected.jupyter-soft-selected { - border-color: #ababab; -} -div.cell.selected:before, -div.cell.selected.jupyter-soft-selected:before { - position: absolute; - display: block; - top: -1px; - left: -1px; - width: 5px; - height: calc(100% + 2px); - content: ''; - background: #42A5F5; -} -@media print { - div.cell.selected, - div.cell.selected.jupyter-soft-selected { - border-color: transparent; - } -} -.edit_mode div.cell.selected { - border-color: #66BB6A; -} -.edit_mode div.cell.selected:before { - position: absolute; - display: block; - top: -1px; - left: -1px; - width: 5px; - height: calc(100% + 2px); - content: ''; - background: #66BB6A; -} -@media print { - .edit_mode div.cell.selected { - border-color: transparent; - } -} -.prompt { - /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */ - min-width: 14ex; - /* This padding is tuned to match the padding on the CodeMirror editor. */ - padding: 0.4em; - margin: 0px; - font-family: monospace; - text-align: right; - /* This has to match that of the the CodeMirror class line-height below */ - line-height: 1.21429em; - /* Don't highlight prompt number selection */ - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - /* Use default cursor */ - cursor: default; -} -@media (max-width: 540px) { - .prompt { - text-align: left; - } -} -div.inner_cell { - min-width: 0; - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: vertical; - -moz-box-align: stretch; - display: box; - box-orient: vertical; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: column; - align-items: stretch; - /* Old browsers */ - -webkit-box-flex: 1; - -moz-box-flex: 1; - box-flex: 1; - /* Modern browsers */ - flex: 1; -} -/* input_area and input_prompt must match in top border and margin for alignment */ -div.input_area { - border: 1px solid #cfcfcf; - border-radius: 2px; - background: #f7f7f7; - line-height: 1.21429em; -} -/* This is needed so that empty prompt areas can collapse to zero height when there - is no content in the output_subarea and the prompt. The main purpose of this is - to make sure that empty JavaScript output_subareas have no height. */ -div.prompt:empty { - padding-top: 0; - padding-bottom: 0; -} -div.unrecognized_cell { - padding: 5px 5px 5px 0px; - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: horizontal; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: horizontal; - -moz-box-align: stretch; - display: box; - box-orient: horizontal; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: row; - align-items: stretch; -} -div.unrecognized_cell .inner_cell { - border-radius: 2px; - padding: 5px; - font-weight: bold; - color: red; - border: 1px solid #cfcfcf; - background: #eaeaea; -} -div.unrecognized_cell .inner_cell a { - color: inherit; - text-decoration: none; -} -div.unrecognized_cell .inner_cell a:hover { - color: inherit; - text-decoration: none; -} -@media (max-width: 540px) { - div.unrecognized_cell > div.prompt { - display: none; - } -} -div.code_cell { - /* avoid page breaking on code cells when printing */ -} -@media print { - div.code_cell { - page-break-inside: avoid; - } -} -/* any special styling for code cells that are currently running goes here */ -div.input { - page-break-inside: avoid; - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: horizontal; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: horizontal; - -moz-box-align: stretch; - display: box; - box-orient: horizontal; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: row; - align-items: stretch; -} -@media (max-width: 540px) { - div.input { - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: vertical; - -moz-box-align: stretch; - display: box; - box-orient: vertical; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: column; - align-items: stretch; - } -} -/* input_area and input_prompt must match in top border and margin for alignment */ -div.input_prompt { - color: #303F9F; - border-top: 1px solid transparent; -} -div.input_area > div.highlight { - margin: 0.4em; - border: none; - padding: 0px; - background-color: transparent; -} -div.input_area > div.highlight > pre { - margin: 0px; - border: none; - padding: 0px; - background-color: transparent; -} -/* The following gets added to the if it is detected that the user has a - * monospace font with inconsistent normal/bold/italic height. See - * notebookmain.js. Such fonts will have keywords vertically offset with - * respect to the rest of the text. The user should select a better font. - * See: https://github.com/ipython/ipython/issues/1503 - * - * .CodeMirror span { - * vertical-align: bottom; - * } - */ -.CodeMirror { - line-height: 1.21429em; - /* Changed from 1em to our global default */ - font-size: 14px; - height: auto; - /* Changed to auto to autogrow */ - background: none; - /* Changed from white to allow our bg to show through */ -} -.CodeMirror-scroll { - /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/ - /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/ - overflow-y: hidden; - overflow-x: auto; -} -.CodeMirror-lines { - /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */ - /* we have set a different line-height and want this to scale with that. */ - /* Note that this should set vertical padding only, since CodeMirror assumes - that horizontal padding will be set on CodeMirror pre */ - padding: 0.4em 0; -} -.CodeMirror-linenumber { - padding: 0 8px 0 4px; -} -.CodeMirror-gutters { - border-bottom-left-radius: 2px; - border-top-left-radius: 2px; -} -.CodeMirror pre { - /* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only, - use .CodeMirror-lines for vertical */ - padding: 0 0.4em; - border: 0; - border-radius: 0; -} -.CodeMirror-cursor { - border-left: 1.4px solid black; -} -@media screen and (min-width: 2138px) and (max-width: 4319px) { - .CodeMirror-cursor { - border-left: 2px solid black; - } -} -@media screen and (min-width: 4320px) { - .CodeMirror-cursor { - border-left: 4px solid black; - } -} -/* - -Original style from softwaremaniacs.org (c) Ivan Sagalaev -Adapted from GitHub theme - -*/ -.highlight-base { - color: #000; -} -.highlight-variable { - color: #000; -} -.highlight-variable-2 { - color: #1a1a1a; -} -.highlight-variable-3 { - color: #333333; -} -.highlight-string { - color: #BA2121; -} -.highlight-comment { - color: #408080; - font-style: italic; -} -.highlight-number { - color: #080; -} -.highlight-atom { - color: #88F; -} -.highlight-keyword { - color: #008000; - font-weight: bold; -} -.highlight-builtin { - color: #008000; -} -.highlight-error { - color: #f00; -} -.highlight-operator { - color: #AA22FF; - font-weight: bold; -} -.highlight-meta { - color: #AA22FF; -} -/* previously not defined, copying from default codemirror */ -.highlight-def { - color: #00f; -} -.highlight-string-2 { - color: #f50; -} -.highlight-qualifier { - color: #555; -} -.highlight-bracket { - color: #997; -} -.highlight-tag { - color: #170; -} -.highlight-attribute { - color: #00c; -} -.highlight-header { - color: blue; -} -.highlight-quote { - color: #090; -} -.highlight-link { - color: #00c; -} -/* apply the same style to codemirror */ -.cm-s-ipython span.cm-keyword { - color: #008000; - font-weight: bold; -} -.cm-s-ipython span.cm-atom { - color: #88F; -} -.cm-s-ipython span.cm-number { - color: #080; -} -.cm-s-ipython span.cm-def { - color: #00f; -} -.cm-s-ipython span.cm-variable { - color: #000; -} -.cm-s-ipython span.cm-operator { - color: #AA22FF; - font-weight: bold; -} -.cm-s-ipython span.cm-variable-2 { - color: #1a1a1a; -} -.cm-s-ipython span.cm-variable-3 { - color: #333333; -} -.cm-s-ipython span.cm-comment { - color: #408080; - font-style: italic; -} -.cm-s-ipython span.cm-string { - color: #BA2121; -} -.cm-s-ipython span.cm-string-2 { - color: #f50; -} -.cm-s-ipython span.cm-meta { - color: #AA22FF; -} -.cm-s-ipython span.cm-qualifier { - color: #555; -} -.cm-s-ipython span.cm-builtin { - color: #008000; -} -.cm-s-ipython span.cm-bracket { - color: #997; -} -.cm-s-ipython span.cm-tag { - color: #170; -} -.cm-s-ipython span.cm-attribute { - color: #00c; -} -.cm-s-ipython span.cm-header { - color: blue; -} -.cm-s-ipython span.cm-quote { - color: #090; -} -.cm-s-ipython span.cm-link { - color: #00c; -} -.cm-s-ipython span.cm-error { - color: #f00; -} -.cm-s-ipython span.cm-tab { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=); - background-position: right; - background-repeat: no-repeat; -} -div.output_wrapper { - /* this position must be relative to enable descendents to be absolute within it */ - position: relative; - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: vertical; - -moz-box-align: stretch; - display: box; - box-orient: vertical; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: column; - align-items: stretch; - z-index: 1; -} -/* class for the output area when it should be height-limited */ -div.output_scroll { - /* ideally, this would be max-height, but FF barfs all over that */ - height: 24em; - /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */ - width: 100%; - overflow: auto; - border-radius: 2px; - -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8); - box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8); - display: block; -} -/* output div while it is collapsed */ -div.output_collapsed { - margin: 0px; - padding: 0px; - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: vertical; - -moz-box-align: stretch; - display: box; - box-orient: vertical; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: column; - align-items: stretch; -} -div.out_prompt_overlay { - height: 100%; - padding: 0px 0.4em; - position: absolute; - border-radius: 2px; -} -div.out_prompt_overlay:hover { - /* use inner shadow to get border that is computed the same on WebKit/FF */ - -webkit-box-shadow: inset 0 0 1px #000; - box-shadow: inset 0 0 1px #000; - background: rgba(240, 240, 240, 0.5); -} -div.output_prompt { - color: #D84315; -} -/* This class is the outer container of all output sections. */ -div.output_area { - padding: 0px; - page-break-inside: avoid; - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: horizontal; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: horizontal; - -moz-box-align: stretch; - display: box; - box-orient: horizontal; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: row; - align-items: stretch; -} -div.output_area .MathJax_Display { - text-align: left !important; -} -div.output_area .rendered_html table { - margin-left: 0; - margin-right: 0; -} -div.output_area .rendered_html img { - margin-left: 0; - margin-right: 0; -} -div.output_area img, -div.output_area svg { - max-width: 100%; - height: auto; -} -div.output_area img.unconfined, -div.output_area svg.unconfined { - max-width: none; -} -div.output_area .mglyph > img { - max-width: none; -} -/* This is needed to protect the pre formating from global settings such - as that of bootstrap */ -.output { - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: vertical; - -moz-box-align: stretch; - display: box; - box-orient: vertical; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: column; - align-items: stretch; -} -@media (max-width: 540px) { - div.output_area { - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: vertical; - -moz-box-align: stretch; - display: box; - box-orient: vertical; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: column; - align-items: stretch; - } -} -div.output_area pre { - margin: 0; - padding: 1px 0 1px 0; - border: 0; - vertical-align: baseline; - color: black; - background-color: transparent; - border-radius: 0; -} -/* This class is for the output subarea inside the output_area and after - the prompt div. */ -div.output_subarea { - overflow-x: auto; - padding: 0.4em; - /* Old browsers */ - -webkit-box-flex: 1; - -moz-box-flex: 1; - box-flex: 1; - /* Modern browsers */ - flex: 1; - max-width: calc(100% - 14ex); -} -div.output_scroll div.output_subarea { - overflow-x: visible; -} -/* The rest of the output_* classes are for special styling of the different - output types */ -/* all text output has this class: */ -div.output_text { - text-align: left; - color: #000; - /* This has to match that of the the CodeMirror class line-height below */ - line-height: 1.21429em; -} -/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */ -div.output_stderr { - background: #fdd; - /* very light red background for stderr */ -} -div.output_latex { - text-align: left; -} -/* Empty output_javascript divs should have no height */ -div.output_javascript:empty { - padding: 0; -} -.js-error { - color: darkred; -} -/* raw_input styles */ -div.raw_input_container { - line-height: 1.21429em; - padding-top: 5px; -} -pre.raw_input_prompt { - /* nothing needed here. */ -} -input.raw_input { - font-family: monospace; - font-size: inherit; - color: inherit; - width: auto; - /* make sure input baseline aligns with prompt */ - vertical-align: baseline; - /* padding + margin = 0.5em between prompt and cursor */ - padding: 0em 0.25em; - margin: 0em 0.25em; -} -input.raw_input:focus { - box-shadow: none; -} -p.p-space { - margin-bottom: 10px; -} -div.output_unrecognized { - padding: 5px; - font-weight: bold; - color: red; -} -div.output_unrecognized a { - color: inherit; - text-decoration: none; -} -div.output_unrecognized a:hover { - color: inherit; - text-decoration: none; -} -.rendered_html { - color: #000; - /* any extras will just be numbers: */ -} -.rendered_html em { - font-style: italic; -} -.rendered_html strong { - font-weight: bold; -} -.rendered_html u { - text-decoration: underline; -} -.rendered_html :link { - text-decoration: underline; -} -.rendered_html :visited { - text-decoration: underline; -} -.rendered_html h1 { - font-size: 185.7%; - margin: 1.08em 0 0 0; - font-weight: bold; - line-height: 1.0; -} -.rendered_html h2 { - font-size: 157.1%; - margin: 1.27em 0 0 0; - font-weight: bold; - line-height: 1.0; -} -.rendered_html h3 { - font-size: 128.6%; - margin: 1.55em 0 0 0; - font-weight: bold; - line-height: 1.0; -} -.rendered_html h4 { - font-size: 100%; - margin: 2em 0 0 0; - font-weight: bold; - line-height: 1.0; -} -.rendered_html h5 { - font-size: 100%; - margin: 2em 0 0 0; - font-weight: bold; - line-height: 1.0; - font-style: italic; -} -.rendered_html h6 { - font-size: 100%; - margin: 2em 0 0 0; - font-weight: bold; - line-height: 1.0; - font-style: italic; -} -.rendered_html h1:first-child { - margin-top: 0.538em; -} -.rendered_html h2:first-child { - margin-top: 0.636em; -} -.rendered_html h3:first-child { - margin-top: 0.777em; -} -.rendered_html h4:first-child { - margin-top: 1em; -} -.rendered_html h5:first-child { - margin-top: 1em; -} -.rendered_html h6:first-child { - margin-top: 1em; -} -.rendered_html ul:not(.list-inline), -.rendered_html ol:not(.list-inline) { - padding-left: 2em; -} -.rendered_html ul { - list-style: disc; -} -.rendered_html ul ul { - list-style: square; - margin-top: 0; -} -.rendered_html ul ul ul { - list-style: circle; -} -.rendered_html ol { - list-style: decimal; -} -.rendered_html ol ol { - list-style: upper-alpha; - margin-top: 0; -} -.rendered_html ol ol ol { - list-style: lower-alpha; -} -.rendered_html ol ol ol ol { - list-style: lower-roman; -} -.rendered_html ol ol ol ol ol { - list-style: decimal; -} -.rendered_html * + ul { - margin-top: 1em; -} -.rendered_html * + ol { - margin-top: 1em; -} -.rendered_html hr { - color: black; - background-color: black; -} -.rendered_html pre { - margin: 1em 2em; - padding: 0px; - background-color: #fff; -} -.rendered_html code { - background-color: #eff0f1; -} -.rendered_html p code { - padding: 1px 5px; -} -.rendered_html pre code { - background-color: #fff; -} -.rendered_html pre, -.rendered_html code { - border: 0; - color: #000; - font-size: 100%; -} -.rendered_html blockquote { - margin: 1em 2em; -} -.rendered_html table { - margin-left: auto; - margin-right: auto; - border: none; - border-collapse: collapse; - border-spacing: 0; - color: black; - font-size: 12px; - table-layout: fixed; -} -.rendered_html thead { - border-bottom: 1px solid black; - vertical-align: bottom; -} -.rendered_html tr, -.rendered_html th, -.rendered_html td { - text-align: right; - vertical-align: middle; - padding: 0.5em 0.5em; - line-height: normal; - white-space: normal; - max-width: none; - border: none; -} -.rendered_html th { - font-weight: bold; -} -.rendered_html tbody tr:nth-child(odd) { - background: #f5f5f5; -} -.rendered_html tbody tr:hover { - background: rgba(66, 165, 245, 0.2); -} -.rendered_html * + table { - margin-top: 1em; -} -.rendered_html p { - text-align: left; -} -.rendered_html * + p { - margin-top: 1em; -} -.rendered_html img { - display: block; - margin-left: auto; - margin-right: auto; -} -.rendered_html * + img { - margin-top: 1em; -} -.rendered_html img, -.rendered_html svg { - max-width: 100%; - height: auto; -} -.rendered_html img.unconfined, -.rendered_html svg.unconfined { - max-width: none; -} -.rendered_html .alert { - margin-bottom: initial; -} -.rendered_html * + .alert { - margin-top: 1em; -} -[dir="rtl"] .rendered_html p { - text-align: right; -} -div.text_cell { - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: horizontal; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: horizontal; - -moz-box-align: stretch; - display: box; - box-orient: horizontal; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: row; - align-items: stretch; -} -@media (max-width: 540px) { - div.text_cell > div.prompt { - display: none; - } -} -div.text_cell_render { - /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/ - outline: none; - resize: none; - width: inherit; - border-style: none; - padding: 0.5em 0.5em 0.5em 0.4em; - color: #000; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; -} -a.anchor-link:link { - text-decoration: none; - padding: 0px 20px; - visibility: hidden; -} -h1:hover .anchor-link, -h2:hover .anchor-link, -h3:hover .anchor-link, -h4:hover .anchor-link, -h5:hover .anchor-link, -h6:hover .anchor-link { - visibility: visible; -} -.text_cell.rendered .input_area { - display: none; -} -.text_cell.rendered .rendered_html { - overflow-x: auto; - overflow-y: hidden; -} -.text_cell.rendered .rendered_html tr, -.text_cell.rendered .rendered_html th, -.text_cell.rendered .rendered_html td { - max-width: none; -} -.text_cell.unrendered .text_cell_render { - display: none; -} -.text_cell .dropzone .input_area { - border: 2px dashed #bababa; - margin: -1px; -} -.cm-header-1, -.cm-header-2, -.cm-header-3, -.cm-header-4, -.cm-header-5, -.cm-header-6 { - font-weight: bold; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} -.cm-header-1 { - font-size: 185.7%; -} -.cm-header-2 { - font-size: 157.1%; -} -.cm-header-3 { - font-size: 128.6%; -} -.cm-header-4 { - font-size: 110%; -} -.cm-header-5 { - font-size: 100%; - font-style: italic; -} -.cm-header-6 { - font-size: 100%; - font-style: italic; -} -/*! -* -* IPython notebook webapp -* -*/ -@media (max-width: 767px) { - .notebook_app { - padding-left: 0px; - padding-right: 0px; - } -} -#ipython-main-app { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - height: 100%; -} -div#notebook_panel { - margin: 0px; - padding: 0px; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - height: 100%; -} -div#notebook { - font-size: 14px; - line-height: 20px; - overflow-y: hidden; - overflow-x: auto; - width: 100%; - /* This spaces the page away from the edge of the notebook area */ - padding-top: 20px; - margin: 0px; - outline: none; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - min-height: 100%; -} -@media not print { - #notebook-container { - padding: 15px; - background-color: #fff; - min-height: 0; - -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); - box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); - } -} -@media print { - #notebook-container { - width: 100%; - } -} -div.ui-widget-content { - border: 1px solid #ababab; - outline: none; -} -pre.dialog { - background-color: #f7f7f7; - border: 1px solid #ddd; - border-radius: 2px; - padding: 0.4em; - padding-left: 2em; -} -p.dialog { - padding: 0.2em; -} -/* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems - to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do. - */ -pre, -code, -kbd, -samp { - white-space: pre-wrap; -} -#fonttest { - font-family: monospace; -} -p { - margin-bottom: 0; -} -.end_space { - min-height: 100px; - transition: height .2s ease; -} -.notebook_app > #header { - -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); - box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); -} -@media not print { - .notebook_app { - background-color: #EEE; - } -} -kbd { - border-style: solid; - border-width: 1px; - box-shadow: none; - margin: 2px; - padding-left: 2px; - padding-right: 2px; - padding-top: 1px; - padding-bottom: 1px; -} -.jupyter-keybindings { - padding: 1px; - line-height: 24px; - border-bottom: 1px solid gray; -} -.jupyter-keybindings input { - margin: 0; - padding: 0; - border: none; -} -.jupyter-keybindings i { - padding: 6px; -} -.well code { - background-color: #ffffff; - border-color: #ababab; - border-width: 1px; - border-style: solid; - padding: 2px; - padding-top: 1px; - padding-bottom: 1px; -} -/* CSS for the cell toolbar */ -.celltoolbar { - border: thin solid #CFCFCF; - border-bottom: none; - background: #EEE; - border-radius: 2px 2px 0px 0px; - width: 100%; - height: 29px; - padding-right: 4px; - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: horizontal; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: horizontal; - -moz-box-align: stretch; - display: box; - box-orient: horizontal; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: row; - align-items: stretch; - /* Old browsers */ - -webkit-box-pack: end; - -moz-box-pack: end; - box-pack: end; - /* Modern browsers */ - justify-content: flex-end; - display: -webkit-flex; -} -@media print { - .celltoolbar { - display: none; - } -} -.ctb_hideshow { - display: none; - vertical-align: bottom; -} -/* ctb_show is added to the ctb_hideshow div to show the cell toolbar. - Cell toolbars are only shown when the ctb_global_show class is also set. -*/ -.ctb_global_show .ctb_show.ctb_hideshow { - display: block; -} -.ctb_global_show .ctb_show + .input_area, -.ctb_global_show .ctb_show + div.text_cell_input, -.ctb_global_show .ctb_show ~ div.text_cell_render { - border-top-right-radius: 0px; - border-top-left-radius: 0px; -} -.ctb_global_show .ctb_show ~ div.text_cell_render { - border: 1px solid #cfcfcf; -} -.celltoolbar { - font-size: 87%; - padding-top: 3px; -} -.celltoolbar select { - display: block; - width: 100%; - height: 32px; - padding: 6px 12px; - font-size: 13px; - line-height: 1.42857143; - color: #555555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 2px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 1px; - width: inherit; - font-size: inherit; - height: 22px; - padding: 0px; - display: inline-block; -} -.celltoolbar select:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); -} -.celltoolbar select::-moz-placeholder { - color: #999; - opacity: 1; -} -.celltoolbar select:-ms-input-placeholder { - color: #999; -} -.celltoolbar select::-webkit-input-placeholder { - color: #999; -} -.celltoolbar select::-ms-expand { - border: 0; - background-color: transparent; -} -.celltoolbar select[disabled], -.celltoolbar select[readonly], -fieldset[disabled] .celltoolbar select { - background-color: #eeeeee; - opacity: 1; -} -.celltoolbar select[disabled], -fieldset[disabled] .celltoolbar select { - cursor: not-allowed; -} -textarea.celltoolbar select { - height: auto; -} -select.celltoolbar select { - height: 30px; - line-height: 30px; -} -textarea.celltoolbar select, -select[multiple].celltoolbar select { - height: auto; -} -.celltoolbar label { - margin-left: 5px; - margin-right: 5px; -} -.tags_button_container { - width: 100%; - display: flex; -} -.tag-container { - display: flex; - flex-direction: row; - flex-grow: 1; - overflow: hidden; - position: relative; -} -.tag-container > * { - margin: 0 4px; -} -.remove-tag-btn { - margin-left: 4px; -} -.tags-input { - display: flex; -} -.cell-tag:last-child:after { - content: ""; - position: absolute; - right: 0; - width: 40px; - height: 100%; - /* Fade to background color of cell toolbar */ - background: linear-gradient(to right, rgba(0, 0, 0, 0), #EEE); -} -.tags-input > * { - margin-left: 4px; -} -.cell-tag, -.tags-input input, -.tags-input button { - display: block; - width: 100%; - height: 32px; - padding: 6px 12px; - font-size: 13px; - line-height: 1.42857143; - color: #555555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 2px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 1px; - box-shadow: none; - width: inherit; - font-size: inherit; - height: 22px; - line-height: 22px; - padding: 0px 4px; - display: inline-block; -} -.cell-tag:focus, -.tags-input input:focus, -.tags-input button:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); -} -.cell-tag::-moz-placeholder, -.tags-input input::-moz-placeholder, -.tags-input button::-moz-placeholder { - color: #999; - opacity: 1; -} -.cell-tag:-ms-input-placeholder, -.tags-input input:-ms-input-placeholder, -.tags-input button:-ms-input-placeholder { - color: #999; -} -.cell-tag::-webkit-input-placeholder, -.tags-input input::-webkit-input-placeholder, -.tags-input button::-webkit-input-placeholder { - color: #999; -} -.cell-tag::-ms-expand, -.tags-input input::-ms-expand, -.tags-input button::-ms-expand { - border: 0; - background-color: transparent; -} -.cell-tag[disabled], -.tags-input input[disabled], -.tags-input button[disabled], -.cell-tag[readonly], -.tags-input input[readonly], -.tags-input button[readonly], -fieldset[disabled] .cell-tag, -fieldset[disabled] .tags-input input, -fieldset[disabled] .tags-input button { - background-color: #eeeeee; - opacity: 1; -} -.cell-tag[disabled], -.tags-input input[disabled], -.tags-input button[disabled], -fieldset[disabled] .cell-tag, -fieldset[disabled] .tags-input input, -fieldset[disabled] .tags-input button { - cursor: not-allowed; -} -textarea.cell-tag, -textarea.tags-input input, -textarea.tags-input button { - height: auto; -} -select.cell-tag, -select.tags-input input, -select.tags-input button { - height: 30px; - line-height: 30px; -} -textarea.cell-tag, -textarea.tags-input input, -textarea.tags-input button, -select[multiple].cell-tag, -select[multiple].tags-input input, -select[multiple].tags-input button { - height: auto; -} -.cell-tag, -.tags-input button { - padding: 0px 4px; -} -.cell-tag { - background-color: #fff; - white-space: nowrap; -} -.tags-input input[type=text]:focus { - outline: none; - box-shadow: none; - border-color: #ccc; -} -.completions { - position: absolute; - z-index: 110; - overflow: hidden; - border: 1px solid #ababab; - border-radius: 2px; - -webkit-box-shadow: 0px 6px 10px -1px #adadad; - box-shadow: 0px 6px 10px -1px #adadad; - line-height: 1; -} -.completions select { - background: white; - outline: none; - border: none; - padding: 0px; - margin: 0px; - overflow: auto; - font-family: monospace; - font-size: 110%; - color: #000; - width: auto; -} -.completions select option.context { - color: #286090; -} -#kernel_logo_widget .current_kernel_logo { - display: none; - margin-top: -1px; - margin-bottom: -1px; - width: 32px; - height: 32px; -} -[dir="rtl"] #kernel_logo_widget { - float: left !important; - float: left; -} -.modal .modal-body .move-path { - display: flex; - flex-direction: row; - justify-content: space; - align-items: center; -} -.modal .modal-body .move-path .server-root { - padding-right: 20px; -} -.modal .modal-body .move-path .path-input { - flex: 1; -} -#menubar { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - margin-top: 1px; -} -#menubar .navbar { - border-top: 1px; - border-radius: 0px 0px 2px 2px; - margin-bottom: 0px; -} -#menubar .navbar-toggle { - float: left; - padding-top: 7px; - padding-bottom: 7px; - border: none; -} -#menubar .navbar-collapse { - clear: left; -} -[dir="rtl"] #menubar .navbar-toggle { - float: right; -} -[dir="rtl"] #menubar .navbar-collapse { - clear: right; -} -[dir="rtl"] #menubar .navbar-nav { - float: right; -} -[dir="rtl"] #menubar .nav { - padding-right: 0px; -} -[dir="rtl"] #menubar .navbar-nav > li { - float: right; -} -[dir="rtl"] #menubar .navbar-right { - float: left !important; -} -[dir="rtl"] ul.dropdown-menu { - text-align: right; - left: auto; -} -[dir="rtl"] ul#new-menu.dropdown-menu { - right: auto; - left: 0; -} -.nav-wrapper { - border-bottom: 1px solid #e7e7e7; -} -i.menu-icon { - padding-top: 4px; -} -[dir="rtl"] i.menu-icon.pull-right { - float: left !important; - float: left; -} -ul#help_menu li a { - overflow: hidden; - padding-right: 2.2em; -} -ul#help_menu li a i { - margin-right: -1.2em; -} -[dir="rtl"] ul#help_menu li a { - padding-left: 2.2em; -} -[dir="rtl"] ul#help_menu li a i { - margin-right: 0; - margin-left: -1.2em; -} -[dir="rtl"] ul#help_menu li a i.pull-right { - float: left !important; - float: left; -} -.dropdown-submenu { - position: relative; -} -.dropdown-submenu > .dropdown-menu { - top: 0; - left: 100%; - margin-top: -6px; - margin-left: -1px; -} -[dir="rtl"] .dropdown-submenu > .dropdown-menu { - right: 100%; - margin-right: -1px; -} -.dropdown-submenu:hover > .dropdown-menu { - display: block; -} -.dropdown-submenu > a:after { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - display: block; - content: "\f0da"; - float: right; - color: #333333; - margin-top: 2px; - margin-right: -10px; -} -.dropdown-submenu > a:after.fa-pull-left { - margin-right: .3em; -} -.dropdown-submenu > a:after.fa-pull-right { - margin-left: .3em; -} -.dropdown-submenu > a:after.pull-left { - margin-right: .3em; -} -.dropdown-submenu > a:after.pull-right { - margin-left: .3em; -} -[dir="rtl"] .dropdown-submenu > a:after { - float: left; - content: "\f0d9"; - margin-right: 0; - margin-left: -10px; -} -.dropdown-submenu:hover > a:after { - color: #262626; -} -.dropdown-submenu.pull-left { - float: none; -} -.dropdown-submenu.pull-left > .dropdown-menu { - left: -100%; - margin-left: 10px; -} -#notification_area { - float: right !important; - float: right; - z-index: 10; -} -[dir="rtl"] #notification_area { - float: left !important; - float: left; -} -.indicator_area { - float: right !important; - float: right; - color: #777; - margin-left: 5px; - margin-right: 5px; - width: 11px; - z-index: 10; - text-align: center; - width: auto; -} -[dir="rtl"] .indicator_area { - float: left !important; - float: left; -} -#kernel_indicator { - float: right !important; - float: right; - color: #777; - margin-left: 5px; - margin-right: 5px; - width: 11px; - z-index: 10; - text-align: center; - width: auto; - border-left: 1px solid; -} -#kernel_indicator .kernel_indicator_name { - padding-left: 5px; - padding-right: 5px; -} -[dir="rtl"] #kernel_indicator { - float: left !important; - float: left; - border-left: 0; - border-right: 1px solid; -} -#modal_indicator { - float: right !important; - float: right; - color: #777; - margin-left: 5px; - margin-right: 5px; - width: 11px; - z-index: 10; - text-align: center; - width: auto; -} -[dir="rtl"] #modal_indicator { - float: left !important; - float: left; -} -#readonly-indicator { - float: right !important; - float: right; - color: #777; - margin-left: 5px; - margin-right: 5px; - width: 11px; - z-index: 10; - text-align: center; - width: auto; - margin-top: 2px; - margin-bottom: 0px; - margin-left: 0px; - margin-right: 0px; - display: none; -} -.modal_indicator:before { - width: 1.28571429em; - text-align: center; -} -.edit_mode .modal_indicator:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f040"; -} -.edit_mode .modal_indicator:before.fa-pull-left { - margin-right: .3em; -} -.edit_mode .modal_indicator:before.fa-pull-right { - margin-left: .3em; -} -.edit_mode .modal_indicator:before.pull-left { - margin-right: .3em; -} -.edit_mode .modal_indicator:before.pull-right { - margin-left: .3em; -} -.command_mode .modal_indicator:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: ' '; -} -.command_mode .modal_indicator:before.fa-pull-left { - margin-right: .3em; -} -.command_mode .modal_indicator:before.fa-pull-right { - margin-left: .3em; -} -.command_mode .modal_indicator:before.pull-left { - margin-right: .3em; -} -.command_mode .modal_indicator:before.pull-right { - margin-left: .3em; -} -.kernel_idle_icon:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f10c"; -} -.kernel_idle_icon:before.fa-pull-left { - margin-right: .3em; -} -.kernel_idle_icon:before.fa-pull-right { - margin-left: .3em; -} -.kernel_idle_icon:before.pull-left { - margin-right: .3em; -} -.kernel_idle_icon:before.pull-right { - margin-left: .3em; -} -.kernel_busy_icon:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f111"; -} -.kernel_busy_icon:before.fa-pull-left { - margin-right: .3em; -} -.kernel_busy_icon:before.fa-pull-right { - margin-left: .3em; -} -.kernel_busy_icon:before.pull-left { - margin-right: .3em; -} -.kernel_busy_icon:before.pull-right { - margin-left: .3em; -} -.kernel_dead_icon:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f1e2"; -} -.kernel_dead_icon:before.fa-pull-left { - margin-right: .3em; -} -.kernel_dead_icon:before.fa-pull-right { - margin-left: .3em; -} -.kernel_dead_icon:before.pull-left { - margin-right: .3em; -} -.kernel_dead_icon:before.pull-right { - margin-left: .3em; -} -.kernel_disconnected_icon:before { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f127"; -} -.kernel_disconnected_icon:before.fa-pull-left { - margin-right: .3em; -} -.kernel_disconnected_icon:before.fa-pull-right { - margin-left: .3em; -} -.kernel_disconnected_icon:before.pull-left { - margin-right: .3em; -} -.kernel_disconnected_icon:before.pull-right { - margin-left: .3em; -} -.notification_widget { - color: #777; - z-index: 10; - background: rgba(240, 240, 240, 0.5); - margin-right: 4px; - color: #333; - background-color: #fff; - border-color: #ccc; -} -.notification_widget:focus, -.notification_widget.focus { - color: #333; - background-color: #e6e6e6; - border-color: #8c8c8c; -} -.notification_widget:hover { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.notification_widget:active, -.notification_widget.active, -.open > .dropdown-toggle.notification_widget { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.notification_widget:active:hover, -.notification_widget.active:hover, -.open > .dropdown-toggle.notification_widget:hover, -.notification_widget:active:focus, -.notification_widget.active:focus, -.open > .dropdown-toggle.notification_widget:focus, -.notification_widget:active.focus, -.notification_widget.active.focus, -.open > .dropdown-toggle.notification_widget.focus { - color: #333; - background-color: #d4d4d4; - border-color: #8c8c8c; -} -.notification_widget:active, -.notification_widget.active, -.open > .dropdown-toggle.notification_widget { - background-image: none; -} -.notification_widget.disabled:hover, -.notification_widget[disabled]:hover, -fieldset[disabled] .notification_widget:hover, -.notification_widget.disabled:focus, -.notification_widget[disabled]:focus, -fieldset[disabled] .notification_widget:focus, -.notification_widget.disabled.focus, -.notification_widget[disabled].focus, -fieldset[disabled] .notification_widget.focus { - background-color: #fff; - border-color: #ccc; -} -.notification_widget .badge { - color: #fff; - background-color: #333; -} -.notification_widget.warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; -} -.notification_widget.warning:focus, -.notification_widget.warning.focus { - color: #fff; - background-color: #ec971f; - border-color: #985f0d; -} -.notification_widget.warning:hover { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.notification_widget.warning:active, -.notification_widget.warning.active, -.open > .dropdown-toggle.notification_widget.warning { - color: #fff; - background-color: #ec971f; - border-color: #d58512; -} -.notification_widget.warning:active:hover, -.notification_widget.warning.active:hover, -.open > .dropdown-toggle.notification_widget.warning:hover, -.notification_widget.warning:active:focus, -.notification_widget.warning.active:focus, -.open > .dropdown-toggle.notification_widget.warning:focus, -.notification_widget.warning:active.focus, -.notification_widget.warning.active.focus, -.open > .dropdown-toggle.notification_widget.warning.focus { - color: #fff; - background-color: #d58512; - border-color: #985f0d; -} -.notification_widget.warning:active, -.notification_widget.warning.active, -.open > .dropdown-toggle.notification_widget.warning { - background-image: none; -} -.notification_widget.warning.disabled:hover, -.notification_widget.warning[disabled]:hover, -fieldset[disabled] .notification_widget.warning:hover, -.notification_widget.warning.disabled:focus, -.notification_widget.warning[disabled]:focus, -fieldset[disabled] .notification_widget.warning:focus, -.notification_widget.warning.disabled.focus, -.notification_widget.warning[disabled].focus, -fieldset[disabled] .notification_widget.warning.focus { - background-color: #f0ad4e; - border-color: #eea236; -} -.notification_widget.warning .badge { - color: #f0ad4e; - background-color: #fff; -} -.notification_widget.success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.notification_widget.success:focus, -.notification_widget.success.focus { - color: #fff; - background-color: #449d44; - border-color: #255625; -} -.notification_widget.success:hover { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.notification_widget.success:active, -.notification_widget.success.active, -.open > .dropdown-toggle.notification_widget.success { - color: #fff; - background-color: #449d44; - border-color: #398439; -} -.notification_widget.success:active:hover, -.notification_widget.success.active:hover, -.open > .dropdown-toggle.notification_widget.success:hover, -.notification_widget.success:active:focus, -.notification_widget.success.active:focus, -.open > .dropdown-toggle.notification_widget.success:focus, -.notification_widget.success:active.focus, -.notification_widget.success.active.focus, -.open > .dropdown-toggle.notification_widget.success.focus { - color: #fff; - background-color: #398439; - border-color: #255625; -} -.notification_widget.success:active, -.notification_widget.success.active, -.open > .dropdown-toggle.notification_widget.success { - background-image: none; -} -.notification_widget.success.disabled:hover, -.notification_widget.success[disabled]:hover, -fieldset[disabled] .notification_widget.success:hover, -.notification_widget.success.disabled:focus, -.notification_widget.success[disabled]:focus, -fieldset[disabled] .notification_widget.success:focus, -.notification_widget.success.disabled.focus, -.notification_widget.success[disabled].focus, -fieldset[disabled] .notification_widget.success.focus { - background-color: #5cb85c; - border-color: #4cae4c; -} -.notification_widget.success .badge { - color: #5cb85c; - background-color: #fff; -} -.notification_widget.info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; -} -.notification_widget.info:focus, -.notification_widget.info.focus { - color: #fff; - background-color: #31b0d5; - border-color: #1b6d85; -} -.notification_widget.info:hover { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.notification_widget.info:active, -.notification_widget.info.active, -.open > .dropdown-toggle.notification_widget.info { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; -} -.notification_widget.info:active:hover, -.notification_widget.info.active:hover, -.open > .dropdown-toggle.notification_widget.info:hover, -.notification_widget.info:active:focus, -.notification_widget.info.active:focus, -.open > .dropdown-toggle.notification_widget.info:focus, -.notification_widget.info:active.focus, -.notification_widget.info.active.focus, -.open > .dropdown-toggle.notification_widget.info.focus { - color: #fff; - background-color: #269abc; - border-color: #1b6d85; -} -.notification_widget.info:active, -.notification_widget.info.active, -.open > .dropdown-toggle.notification_widget.info { - background-image: none; -} -.notification_widget.info.disabled:hover, -.notification_widget.info[disabled]:hover, -fieldset[disabled] .notification_widget.info:hover, -.notification_widget.info.disabled:focus, -.notification_widget.info[disabled]:focus, -fieldset[disabled] .notification_widget.info:focus, -.notification_widget.info.disabled.focus, -.notification_widget.info[disabled].focus, -fieldset[disabled] .notification_widget.info.focus { - background-color: #5bc0de; - border-color: #46b8da; -} -.notification_widget.info .badge { - color: #5bc0de; - background-color: #fff; -} -.notification_widget.danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; -} -.notification_widget.danger:focus, -.notification_widget.danger.focus { - color: #fff; - background-color: #c9302c; - border-color: #761c19; -} -.notification_widget.danger:hover { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.notification_widget.danger:active, -.notification_widget.danger.active, -.open > .dropdown-toggle.notification_widget.danger { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; -} -.notification_widget.danger:active:hover, -.notification_widget.danger.active:hover, -.open > .dropdown-toggle.notification_widget.danger:hover, -.notification_widget.danger:active:focus, -.notification_widget.danger.active:focus, -.open > .dropdown-toggle.notification_widget.danger:focus, -.notification_widget.danger:active.focus, -.notification_widget.danger.active.focus, -.open > .dropdown-toggle.notification_widget.danger.focus { - color: #fff; - background-color: #ac2925; - border-color: #761c19; -} -.notification_widget.danger:active, -.notification_widget.danger.active, -.open > .dropdown-toggle.notification_widget.danger { - background-image: none; -} -.notification_widget.danger.disabled:hover, -.notification_widget.danger[disabled]:hover, -fieldset[disabled] .notification_widget.danger:hover, -.notification_widget.danger.disabled:focus, -.notification_widget.danger[disabled]:focus, -fieldset[disabled] .notification_widget.danger:focus, -.notification_widget.danger.disabled.focus, -.notification_widget.danger[disabled].focus, -fieldset[disabled] .notification_widget.danger.focus { - background-color: #d9534f; - border-color: #d43f3a; -} -.notification_widget.danger .badge { - color: #d9534f; - background-color: #fff; -} -div#pager { - background-color: #fff; - font-size: 14px; - line-height: 20px; - overflow: hidden; - display: none; - position: fixed; - bottom: 0px; - width: 100%; - max-height: 50%; - padding-top: 8px; - -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); - box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); - /* Display over codemirror */ - z-index: 100; - /* Hack which prevents jquery ui resizable from changing top. */ - top: auto !important; -} -div#pager pre { - line-height: 1.21429em; - color: #000; - background-color: #f7f7f7; - padding: 0.4em; -} -div#pager #pager-button-area { - position: absolute; - top: 8px; - right: 20px; -} -div#pager #pager-contents { - position: relative; - overflow: auto; - width: 100%; - height: 100%; -} -div#pager #pager-contents #pager-container { - position: relative; - padding: 15px 0px; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; -} -div#pager .ui-resizable-handle { - top: 0px; - height: 8px; - background: #f7f7f7; - border-top: 1px solid #cfcfcf; - border-bottom: 1px solid #cfcfcf; - /* This injects handle bars (a short, wide = symbol) for - the resize handle. */ -} -div#pager .ui-resizable-handle::after { - content: ''; - top: 2px; - left: 50%; - height: 3px; - width: 30px; - margin-left: -15px; - position: absolute; - border-top: 1px solid #cfcfcf; -} -.quickhelp { - /* Old browsers */ - display: -webkit-box; - -webkit-box-orient: horizontal; - -webkit-box-align: stretch; - display: -moz-box; - -moz-box-orient: horizontal; - -moz-box-align: stretch; - display: box; - box-orient: horizontal; - box-align: stretch; - /* Modern browsers */ - display: flex; - flex-direction: row; - align-items: stretch; - line-height: 1.8em; -} -.shortcut_key { - display: inline-block; - width: 21ex; - text-align: right; - font-family: monospace; -} -.shortcut_descr { - display: inline-block; - /* Old browsers */ - -webkit-box-flex: 1; - -moz-box-flex: 1; - box-flex: 1; - /* Modern browsers */ - flex: 1; -} -span.save_widget { - height: 30px; - margin-top: 4px; - display: flex; - justify-content: flex-start; - align-items: baseline; - width: 50%; - flex: 1; -} -span.save_widget span.filename { - height: 100%; - line-height: 1em; - margin-left: 16px; - border: none; - font-size: 146.5%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - border-radius: 2px; -} -span.save_widget span.filename:hover { - background-color: #e6e6e6; -} -[dir="rtl"] span.save_widget.pull-left { - float: right !important; - float: right; -} -[dir="rtl"] span.save_widget span.filename { - margin-left: 0; - margin-right: 16px; -} -span.checkpoint_status, -span.autosave_status { - font-size: small; - white-space: nowrap; - padding: 0 5px; -} -@media (max-width: 767px) { - span.save_widget { - font-size: small; - padding: 0 0 0 5px; - } - span.checkpoint_status, - span.autosave_status { - display: none; - } -} -@media (min-width: 768px) and (max-width: 991px) { - span.checkpoint_status { - display: none; - } - span.autosave_status { - font-size: x-small; - } -} -.toolbar { - padding: 0px; - margin-left: -5px; - margin-top: 2px; - margin-bottom: 5px; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; -} -.toolbar select, -.toolbar label { - width: auto; - vertical-align: middle; - margin-right: 2px; - margin-bottom: 0px; - display: inline; - font-size: 92%; - margin-left: 0.3em; - margin-right: 0.3em; - padding: 0px; - padding-top: 3px; -} -.toolbar .btn { - padding: 2px 8px; -} -.toolbar .btn-group { - margin-top: 0px; - margin-left: 5px; -} -.toolbar-btn-label { - margin-left: 6px; -} -#maintoolbar { - margin-bottom: -3px; - margin-top: -8px; - border: 0px; - min-height: 27px; - margin-left: 0px; - padding-top: 11px; - padding-bottom: 3px; -} -#maintoolbar .navbar-text { - float: none; - vertical-align: middle; - text-align: right; - margin-left: 5px; - margin-right: 0px; - margin-top: 0px; -} -.select-xs { - height: 24px; -} -[dir="rtl"] .btn-group > .btn, -.btn-group-vertical > .btn { - float: right; -} -.pulse, -.dropdown-menu > li > a.pulse, -li.pulse > a.dropdown-toggle, -li.pulse.open > a.dropdown-toggle { - background-color: #F37626; - color: white; -} -/** - * Primary styles - * - * Author: Jupyter Development Team - */ -/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot - * of chance of beeing generated from the ../less/[samename].less file, you can - * try to get back the less file by reverting somme commit in history - **/ -/* - * We'll try to get something pretty, so we - * have some strange css to have the scroll bar on - * the left with fix button on the top right of the tooltip - */ -@-moz-keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@-webkit-keyframes fadeOut { - from { - opacity: 1; - } - to { - opacity: 0; - } -} -@-moz-keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@-webkit-keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -/*properties of tooltip after "expand"*/ -.bigtooltip { - overflow: auto; - height: 200px; - -webkit-transition-property: height; - -webkit-transition-duration: 500ms; - -moz-transition-property: height; - -moz-transition-duration: 500ms; - transition-property: height; - transition-duration: 500ms; -} -/*properties of tooltip before "expand"*/ -.smalltooltip { - -webkit-transition-property: height; - -webkit-transition-duration: 500ms; - -moz-transition-property: height; - -moz-transition-duration: 500ms; - transition-property: height; - transition-duration: 500ms; - text-overflow: ellipsis; - overflow: hidden; - height: 80px; -} -.tooltipbuttons { - position: absolute; - padding-right: 15px; - top: 0px; - right: 0px; -} -.tooltiptext { - /*avoid the button to overlap on some docstring*/ - padding-right: 30px; -} -.ipython_tooltip { - max-width: 700px; - /*fade-in animation when inserted*/ - -webkit-animation: fadeOut 400ms; - -moz-animation: fadeOut 400ms; - animation: fadeOut 400ms; - -webkit-animation: fadeIn 400ms; - -moz-animation: fadeIn 400ms; - animation: fadeIn 400ms; - vertical-align: middle; - background-color: #f7f7f7; - overflow: visible; - border: #ababab 1px solid; - outline: none; - padding: 3px; - margin: 0px; - padding-left: 7px; - font-family: monospace; - min-height: 50px; - -moz-box-shadow: 0px 6px 10px -1px #adadad; - -webkit-box-shadow: 0px 6px 10px -1px #adadad; - box-shadow: 0px 6px 10px -1px #adadad; - border-radius: 2px; - position: absolute; - z-index: 1000; -} -.ipython_tooltip a { - float: right; -} -.ipython_tooltip .tooltiptext pre { - border: 0; - border-radius: 0; - font-size: 100%; - background-color: #f7f7f7; -} -.pretooltiparrow { - left: 0px; - margin: 0px; - top: -16px; - width: 40px; - height: 16px; - overflow: hidden; - position: absolute; -} -.pretooltiparrow:before { - background-color: #f7f7f7; - border: 1px #ababab solid; - z-index: 11; - content: ""; - position: absolute; - left: 15px; - top: 10px; - width: 25px; - height: 25px; - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); -} -ul.typeahead-list i { - margin-left: -10px; - width: 18px; -} -[dir="rtl"] ul.typeahead-list i { - margin-left: 0; - margin-right: -10px; -} -ul.typeahead-list { - max-height: 80vh; - overflow: auto; -} -ul.typeahead-list > li > a { - /** Firefox bug **/ - /* see https://github.com/jupyter/notebook/issues/559 */ - white-space: normal; -} -ul.typeahead-list > li > a.pull-right { - float: left !important; - float: left; -} -[dir="rtl"] .typeahead-list { - text-align: right; -} -.cmd-palette .modal-body { - padding: 7px; -} -.cmd-palette form { - background: white; -} -.cmd-palette input { - outline: none; -} -.no-shortcut { - min-width: 20px; - color: transparent; -} -[dir="rtl"] .no-shortcut.pull-right { - float: left !important; - float: left; -} -[dir="rtl"] .command-shortcut.pull-right { - float: left !important; - float: left; -} -.command-shortcut:before { - content: "(command mode)"; - padding-right: 3px; - color: #777777; -} -.edit-shortcut:before { - content: "(edit)"; - padding-right: 3px; - color: #777777; -} -[dir="rtl"] .edit-shortcut.pull-right { - float: left !important; - float: left; -} -#find-and-replace #replace-preview .match, -#find-and-replace #replace-preview .insert { - background-color: #BBDEFB; - border-color: #90CAF9; - border-style: solid; - border-width: 1px; - border-radius: 0px; -} -[dir="ltr"] #find-and-replace .input-group-btn + .form-control { - border-left: none; -} -[dir="rtl"] #find-and-replace .input-group-btn + .form-control { - border-right: none; -} -#find-and-replace #replace-preview .replace .match { - background-color: #FFCDD2; - border-color: #EF9A9A; - border-radius: 0px; -} -#find-and-replace #replace-preview .replace .insert { - background-color: #C8E6C9; - border-color: #A5D6A7; - border-radius: 0px; -} -#find-and-replace #replace-preview { - max-height: 60vh; - overflow: auto; -} -#find-and-replace #replace-preview pre { - padding: 5px 10px; -} -.terminal-app { - background: #EEE; -} -.terminal-app #header { - background: #fff; - -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); - box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); -} -.terminal-app .terminal { - width: 100%; - float: left; - font-family: monospace; - color: white; - background: black; - padding: 0.4em; - border-radius: 2px; - -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4); - box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4); -} -.terminal-app .terminal, -.terminal-app .terminal dummy-screen { - line-height: 1em; - font-size: 14px; -} -.terminal-app .terminal .xterm-rows { - padding: 10px; -} -.terminal-app .terminal-cursor { - color: black; - background: white; -} -.terminal-app #terminado-container { - margin-top: 20px; -} -/*# sourceMappingURL=style.min.css.map */ \ No newline at end of file diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/compatibility/display_priority.tpl b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/compatibility/display_priority.tpl deleted file mode 100644 index 70cd67c1b6f00a048df1e238f8a79ca587534afa..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/compatibility/display_priority.tpl +++ /dev/null @@ -1,2 +0,0 @@ -{{ resources.deprecated("This template is deprecated, please use base/display_priority.j2") }} -{%- extends 'display_priority.j2' -%} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/compatibility/full.tpl b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/compatibility/full.tpl deleted file mode 100644 index 863c94b168afb6ece344c404731e8ee82a7d4dee..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/compatibility/full.tpl +++ /dev/null @@ -1,2 +0,0 @@ -{{ resources.deprecated("This template is deprecated, please use classic/index.html.j2") }} -{%- extends 'index.html.j2' -%} diff --git a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/lab/base.html.j2 b/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/lab/base.html.j2 deleted file mode 100644 index cebe8410479df22ed800d370e7f3c1c84bba6315..0000000000000000000000000000000000000000 --- a/emissary-ml/llm-scripts/fine-tuning/llama3/venv/share/jupyter/nbconvert/templates/lab/base.html.j2 +++ /dev/null @@ -1,331 +0,0 @@ -{%- extends 'display_priority.j2' -%} -{% from 'celltags.j2' import celltags %} -{% from 'cell_id_anchor.j2' import cell_id_anchor %} - -{% block codecell %} -{%- if not cell.outputs -%} -{%- set no_output_class="jp-mod-noOutputs" -%} -{%- endif -%} -{%- if not resources.global_content_filter.include_input -%} -{%- set no_input_class="jp-mod-noInput" -%} -{%- endif -%} - -{%- endblock codecell %} - -{% block input_group -%} - -{% endblock input_group %} - -{% block input %} - -{%- endblock input %} - -{% block output_group %} - -{% endblock output_group %} - -{% block outputs %} - -{% endblock outputs %} - -{% block in_prompt -%} - -{%- endblock in_prompt %} - -{% block empty_in_prompt -%} - -{%- endblock empty_in_prompt %} - -{# - output_prompt doesn't do anything in HTML, - because there is a prompt div in each output area (see output block) - #} -{% block output_prompt %} -{% endblock output_prompt %} - -{% block output_area_prompt %} - -{% endblock output_area_prompt %} - -{% block output %} -{%- if output.output_type == 'execute_result' -%} -